1.202056903159594285399738161511449990764986292340498881792271555341838205786313090186455873609335258146199157795260719418491995998673283213776396837207900161453941782949360066719191575522242494243961563909664103291159095780965514651279918405105715255988015437109781102039827532566787603522336984941661811057014715778639499737523785277937030956025701853182790003076547107563048843320869711573742380793445031607625317714535444411831178182249718526357091824489987962035083357561720226033937858703281312678079900541773486911525370656237057440966221712902627320732361492242913040528555372341033077577798064242024304882815210009146026538220696271552020822743350010152948011986901176259516763669981718355752348807037195557423472940835952088616662025728537558130792825864872821737055661968989526620187768106292008177923381358768284264124324314802821736745067206935076268953043459393750329663637757506247332399234828831077339052768020075798435679371150509005027366047114008533503436467224856531518117766181092227919102248839680026660656870519062759738773535744447877537916414273813225695731960201874884747104699336566140080693032561853718860072718535948288478862450418555464085715563007125090271386346893741682665466577292611171824603630566046530047522170326513639105869885788424504134000761747279137184277410875086790501889653963569586430819613729902327493497024162264543392392926727836786557155581777396637719128141822466412686634528110551401316732536684182792953726605034151852704880289026831583347959203875598498861786700596373101572717200011433476735154188255252466326297202538661425937593349011249544518884458798836532376050068621642592846188011371666663503565601002513127520012434653817885225166450567395505738631526376595430281462242301774750116768445714967048803440213073024127873154029042511509199408783486201428014040716214465478874817758260420666734025053210770258301838132993866973319945840623290396057031909272640683880856084074738956833505209415149173304836330477143458255392122182045165600427787228431259315749627026730415918788284480861387776822561622963741313757042455994891329525858402147935837823197771172784781720482436666571223303732959410057261198013823025880592062961331779376451095712002657804880609305534363285097361318007609352641433022178279785648179278860331233735692889659274252604788678841566426219913716694110946824811323138301817676283638543509055586012259321253629309578410452900945889359691898530119773072504245947142901057118265118568448317126293053709425035947017896170467736123685473693550284745861983529571359732163074658300874034701710746000610043901285836376316075166271769557170650987918789483866878095921720348313191404054919137630628523999636117012555327177077915365614581485705368226043318519590171453534697226463930732141203751607987134648310813988131178890345913883207316096061002674146544114154467819904646287118265717754983677367855104958603786155827533988249373524569243387591804356649626474238662902445130524602586317948016801932634758421764571464690636412863961281631569864757400316967051470071242504172146891001616233898010620167911221001573704654256075995702596983061006792570753839766557705822010174818071477940146675232243161457268419706781733867536175298421720193131447723568196640393816490020152829309197276989903991189151835572240578733443785749902240313930077949249604262180574560227812460215745022540572339626629445930245015219833930500553613530713715477930732883404570644996135850722143863093072739644146374636489056899665770996455268534855153434797075223910140433765381806486094797386995891433686054900374039649369728626799988893226275448964262589340161332753452344681862464087369507194010326891693962321660519548036617227005943248080822802900288255068028123151514383148062015043188241718267206396226527657616853324206197537029653495792475710552268423047438798345323192044197682178172407679172914625678660132459940482256705871936479420131029186436307800913123728971255263219825069783833367795438719013839531551465141784519538572379316511268257550841248165839474188905516698738790610171878301652041694182412855041718222550405429910481926328041486333480269962775987737302931102388732384983785469714569341192831249477372967954124316419146139331580869268357523339161425977665352042595720060328667351467326737977678984355685084924524636979074533959158707118010715916089942397431294807496675645474951523441277438053916493667499581383405775376083569218716530012540500234641164991838176169540014163618278757372258223559754943966230951109212486937073320728162415952066098481444457928890045571093150523395635018867212797327909560903094178827726933899912736389791688110013626771608639461100059197276404341633767381782738498514999981382319956187911177054348045253315632965926052483712141074513413192248723226461196235002881488246968575393294508023303091125141028170269961962256541163524265132103416972034308517848762152878119117791296682429018433181124853743647074197521278168114576478129552233524686015151419515013705189128846233351610942448826863097094857860157634544346693987634175107580918407824783758376387734277477754351508663116678221399677580241298878733069903685222735814434053291376782738606840856340804967709186923062501803052637271548763041661486346814756018979972397299671081576186616332728749745336024927565015015409343522629692875449299798184043572491209842958009129245946894267732645617807886718395661572921505088303889110410485629613523584747202996056331023157083453079047687345058068528564323623973390405910644967374638306997550031529640648456879187947779976814880556152891809295923803640601984523624642753689632886682388803563535696446126574709701780751095612399258955018289749756863528395286372966711665536584745579856733499992526985946210510103347195701215101435342251748165738473719064968632153593544184967139641642145806547753796837808886554302598102907813574575189430300474872768867246927039425028178785961362391481520586416594778015039271295532678239507447111012254798268729587559337990049267424070974073984821669508419140413022317689836027710847814056222442366077596372796456961168728138800064544416208628530933831787794483572079240436696138017016124630679169653482675382385108334543952051421840946334357776196580146520741626048927006057971873068078125346902283331871401302419517904607661148943665852381025450646386824366811275072134210681503059582856893764772140867519186720023312855409778064359170947241291454213648527797356828811707684581683065154909519905823362398761569277443525424219379215903685260826568013402197308236374012736440396849617980312662387992966811433651833370212671845871814829550821887462437107107262292380657543020110989087164383812397257326739096762744269546227704988060877728440155405202188329137311448200872591505969987115283594747882844397395222644823389351067699728407832803843712369559709369296392457709415798481027006769454251833750470667361873718293709591307310445908310960406972447234083596101670386549659704049943580286730401589635278997792864032395955470421832834818853995612797419707921922885006635245690315311928379688311197706789842026276928454462307267749753323706040383305422681457241736018965493758792056697713735294583784582476416944647679898746805502883992509374265487921223329717991968503600734121619692748804391284305808506967367441656431870000333047597601840652367208751151918143484560928564286540677181454413967033907230159261586876310563542783272646899130038349842415539414021098328706780295296863501047874091599357289772236399737183203471526578045509613011114631011798523627562849679546269080460947951885579315912504827382077528722275514142957200868360642312428284808128906747199818368141932973876335960372595977140634729996649247507929471456014701954073343474049095992274652908962524623205407754843372540406393530121914453354637798747115172424143488248222659952511479119134692797261278937205640639450891300521850702871332113036971107390385849615042512365772522948689983758182642722738834732567353416108694980904194851707811998144382559180714759472244630110805057162913730409919758459801449947973153463034730510582560524526837002668965867662978551964575967095575854598281950720960117536648318843929133011160759717697761948075240390660117198822596730208454330223017593392802498743631020581665785345349088298229420080548618304904838910464047669569563105668502072181557662497201925204856200195253909546712731760688900135007376876467388790083123583782907778673845521385935684582438433066420845460222907027898936733399733422605790101911126966316743860974352204186567405285798055866820260138718955867502548153690681499361690912395081364176999976662010040461159996159130536942343002729236292960115714869479049947435908377023317104491560835902393594448711457373316408857898508980618592924508867211800769137157776247074707682639069930812583727331130931212984002916154369202848886673655408863562855367836848816134447714771114177277953885911782687387160355202798735487820967095592633957231188227024212160104353107770261406724885344731707376052736173147272819251127723891605058491772898189852696183459424701496021672414778558955546192779586784229758015050610219055660470426663638296002359958832109518875283084211594603294880125357873782838521596277451036153875556611004036949067202462936247704268203556405669319377559864066962996611740928668553080658764709152094582699987171865692030268853465778914320794701056400195137153514603259748662846241217850100379371359975724535544173971828479958454843958947451419720930511980875878351626238301518705844304493658675374802702466082321505020445663464914490400002442994684237776242830472387915425063905915763593521567040072556140362386053545315396326631937562026164599976504790465260855579137312243641950853979327676478873564975979077081942498411532565580966348993124359803500861155481009733558798411967777978756060931187265713920655293979461256958101727053121509467392108734263522854204814525950243122273190269810279996647534503481622001322920248222138720153760878397720885922095126259456127909113679884233815493902129267719635293025148023562729223189504235065083916974061435558438576381055940398892928321427664392862306305741455883622736517763922528026916932276520006167068804492336519450287591174521483991510147084940115898157872746718780617042073585694760311904681604898699000003697499669150548779055003643611716468065855338615531037658667853062578679521945699063293235237807898962695935496310843616854153732508161973008455785024769567549449928542241402956267158709889836929708509230399805574961822783386073831522795149756003753206609579484310538671685417722712903338160058646070836185498556562756793327387988832313084055953141604488742710650777537553562850996246270783698909313717646784206460678569956110946172891751069565448946244549997914767543858807456961018760524867496181833347553179860037051582417204378636932367289288095078682529134536408134059931997331845932997938135587898794008140267781538874499832076663289474664043350287521074145546266486509993716536055420209622065367737278411340142567542576748664016698092994571590092521875152524349447908804251741867865198801257471296047077863886105317395157912899067108298101354444816463902217044852800611230056722180809798615314781555683030749953404977088532565365987134323093999034263809850097253695659435861365641901666011607044153151763313418081224892626528207659962293158371347396224902177244900874378090727073587653981527502021092912119842933455563419911579131089228721432387494140087359414722252724625535042687806872824944247838654048912623070772413119989405883813421118573259775523450620827664668048220806506714402428847623437495853198102452189212458371262935253348082554542266717568102236704460866111973122684372296847682893486906299153650222771484284762199863971433034289590472920730039613403604791275448004159580017398589104701414446462023941397692976155444723784226026401057070300070609429347590575561755613863277231054870802993008655539620125361616833583995233472719417826414685061632644405907168745577950278451953280751063576695170421056653399765549710236098910130402551126846637825903855732151392687350479885536317201044454802415942177365298309575219078083132600325124578980787799811886515909499807166198486912650527362712714941150477855260236234055879534248847186244269992968372887866806819790427989219837819502434750795287911818361848053279150555063388837088839743715889943426243914275016513586803905648392413885330314577607520620588835775896309035558307315200613503785536227206178958302540162039392553660591861942200300310335485442962272792789447456629420479736033201554683876445542100965734538730782893898917786815293640818160754340823846240917151686130834251753364922807264458622333116938776725426738718614845449377107567654611043759450394536758816160896958139922923470271022354262949284515004376514396303805949330709228379708438900760872927327098163289581969448569752895544055195777666184696619527081946440277055277289772729348703103799825389257450187688672969201482452445306256708184169125067694063696221980408209810836381047510933883357075024380549283642377720834674812005299905642198690478380580401288023874130120718698895991314409476087690987802429601123327415500264246022053858658834579650799764045983242094407786898155182308168127184072039787479956533333797422910440814161420867267345272258946158530996279188595133464364500006503227595382130554332067662516479648153859069798160053608281548287619043379901424102668731954046081055779587669731614880991901819653724533119387354348083636816500903976117091043177975876559624776767272821318639780789517817595777901615109334443261238329319561977519507556404041385102225183965256318201392162911050197204205271696790397434450429052040600779312776176894696544695908891442292658327981330180176885992252669808620740214426424012938662697359561419994101044674667967537960476023583930581559564346915047302390537721866983126214565190225758125731824147286526818347027126960325859384217342489802674128453979493960673633008076198068862871711362275273106149415709172850229763801309375621087717818152972985991185072187943881955729137942347365151303678569127770712977112642931400722800822252583257671773358612202065837351140408173274527050140680365389096545229508393546275025967204185119996417077950218864988912309938857641747515968078497085374916705381771128783039688209973258584414911475220228851074076516983764702523404249961180922411661967239374715827271961615588550397859002284424016872034583261148485627863159550161256811845910076086856973783761160953252788740161753708918965490378563191374234684766694911722597842520725399683739199783613469576639770220636637709425937965424962348495184466473482057324814437625432141723050789991905556864676482380901079181564636585351888347961210568009882118943257180817582762622370334084960327117327548566865928224072436375124745388472139986255983857980305842545253049093400294911151312163448227692325983212942933212801786063953002531154994519018708916892020844383670899566377910425152778131066107836761946508875798562544542223590948039307991048218792787020138275629015977984158651856710523388987042080845406415657488320314077329491542371497423384412582311976285895295369245450159891889099187278219421386448423867924093222908313406000695148986190573695140317885206711755083724280094819654010882324561009880145868464822910392619153111307401887720515880276567535322128280648519377415579766687185377194633937428552146325230785828333661877875232641196431985154523692321526035729771970176799417506882203364848084757774805755553978707363331182921051065904300215640926011557797938479998011902280851699107757985944482084236255620877216677915890787488163122875357392279749982654479855454675457778920336100161490805454581772675462952047482037449829762051096470710816406408292596135935768971912468732442833371067677555997172334966336238206305732072811184950406901148742630007193082019069407901685164633556669218735580973933036032724524785789923441480237700132234242679397366405825521028093261158701497093277156927857513495344145826547816331322104522062961367900960410855575302611061644303736485937230011474325171634168054221547280883703157226907043081082120881957846656498106372647205292496932509844241425627933017474263735724938600185007989042968847622411283004463584594106664096252195418937323263470721633148082122950802063921722880937615266778748591590429799724452878303022694861970541555539036076752784132845724849619539944465177599027458586233186298912773839698944880462042059684166532668270292079061683562897616100474268507329602299224865723736233575583987248979669797106430056262976008402414262132603314284868422940965261456140605910690107416910402248501933551909356051957926719064666062253244092456068416677563958635306656528253479736874888249825116284420176404735333431340329044418381693755564139014855041085417732963879773899098204717563110406155855627654231860820479174219675453973320417881974973739018975371716914758562895067481338449544449365709923604039788522087012059811110967186637748374060439435965436174862305553810837774451694054093766665428278404354720445892090751563926324912864218032344085957317451059523912594560612175388583777623497177710576067320737714612916654506292852427755049380005399056586525233220529185586381059345579824672194090976131771179122738582877386663528792518410845028904180790380632046704280239163550558813544484149264823803969634372850105593055177719753319028541953604676482098907825590655649426980059945372470217943699901846684644952583411164128275892833798015952269482125766184398015604385979333391858545677422393014709552960636717033440396189304772451834977978762839283702390053897905435445168165367654453520089710066045153758491729182540395901273278669357670013866154316292430118340860625216097769345323804804098770440703036947687496387125197877115561446199702283820459647811007460856435229584558046521201934598558776195064900490007823586215066165057854164488685922080151378635826979793994577108644543483505672901208439188455806167319826927046549181960803576989436006258342025136035691259832752662737954147141611221984007985412927054556521258031069587222488881961497018197386438962849132746999832269682112583538712623173160724449843491116742389111987695724985923567182670596104996891053611186218884588480922798133838171723459916607463226334611653727346482390260826686228804656534933427443145765896881726957002081072708164440901921653759060577030007704017354698415496552195006926958691257160738872926808673557617866096278968544074205176852472791186154907766063040805054015832684921830250684055177264423310349944325751733873609332816307178831546656532073492294655005808806793275252134578729582785345407999473740376352593426458317444823618171416147979121727914115474418572498082847096226300557872097532596992977510931235911061591793999610218077376331469957997092465440743557172853171843546526143017121810208308194430647191680668328178540435488121706293191593325199278478092225265105286524232676135461949350045035411438548662635648364404962411011955877574816591444287758713103661466106948950593549105473094132702763653364483742059176671526075215856411467758654303614843540828874641724812040858550686142950752672577138849935746426193266482589654862775015302122126145196966081747150715669823414500481805409763676194908831152777332666846781049558873417433510844079301651144561037698988740010776106801908601420710372678852961462111623642978418816523036929954938963861397822201771760152111761890834531293538847903259301570616638751781362153631972010107705532063410316410069899688706508307283537636615946368163784531773557587399452078033425640190998342969537016840128986781100630997507284759304688383751453244333653799548068525202537647743053965246635474023779299043713507115957562255401602504734672583752300729538198699487784160203787214498371414449637648081198942373712186610628742780199866005535099609442927879384373044368777659032087598363135203832898388886775190632738011133414069510899763233027317567130765553175253849823265884840459605049011086178707800431668194664016544527777976482695717922797325607493382719787567432856303031789840870528682514121719226676163716650462794323723194184144215272946991946530515129067566911359026796176993597518834764378152978555602772838551460068047448344387890873206342118642549946820641717004767840265616548198017773564015596389693182454759692281525809473565828295733401719942189021668498064243238951464791598805679805895258061936716232067828184107990079865819774612198485057549084870229503277529545633134401186362475775177118703862841099026238405192187006861837706548091192787296881838335106251697991261858390727382770021838312599342419991236716391917012196205597383491740713561347560793359550334261071695878799893927123859692046534232633381407710911431071838062260978801669273195808813682761331579029726726217875813269192068636528642030378757710896232993307272388335833738281684445953017088503388993563759650914520710167512119335971358412165568709207147653106394356041363642260297770418871670218520199926905942196174835453444377673163610591122389308807172660788756483744665048538587365683115020744562833123874418142402595614564323123649521532202674759592913250545586245716339120640390552841078198015614991589052715154774636432772824477308326810133465619537229431422732751642301651605602504655865883170270484530120942368300318904431635365233189448050599327239439237686313417289165445424450644521279586823259930959166235131684085843422439453572774220660911111073932185084592847447018410041005825811983819285949814965999350025873010580465076280844258167401489155327907282832596722788655661744767807631167044630483690707709520685037611229838588992389102910046999406037051559520631865037541839808896640581157294818981817637426762589456725450938776384177295933936985761275314509344663780624676547856032256272697988694430836491691460850060872635611725611729414752253136568210401796597829155335508504809726460807317087353488904527281652484290484467735267238373887746137992219096175108144950726276024826005745002274163667587009328980456247036344926024985705499447127310417186068069166847147935793554184099407441078333840190597285308883934329275385879784197887526730121221892048069704158774925758171323397137952503326732294762152924108381004970676501833518362583608391453287740500821736893525903522978936749904065143674615751388689479968953149029127219042419914120903353088456583181914911555232098879889409781495110394985676953365390685091049059461392445479796788207822751083471578924602211455275590978763978690373800726675618769331009301223957492639289750753609778687234763699080178347183775526045867458740874187058328161646453658682389512515066727073621926113709537950338913756413933067800874847984914200250910352201133376726500433249556965480219465660277886502999539406024150226442084173767549337212537766612154816897428597285502718410302561435106671314012446616203479729611758096185809175245316827833441098038866083655648473286428572987639220169408611724400212758910247738312087037491518896121861580556115581580463888224047649166443201941231950492453635107953584575155451208085525089310374271948067786432673277036771467414343729144434528872833071023105314410942125412666783815493173714269968019722025705506063143299873106739750201467278723247331932212390592521564904249069945681480229078040583428073135046531691243546851883146243703684319529694079379355232029110523581654106131194506226901176334761455739547246162062011417554679490003379432320478371773230796450135043306295390694019890096808871535023490873231241993929910755912551823721507039031365520831164991417104177099488111159461823175548405542281369466176178998917407804118363743214219561022193784455430038473974139761849302304081513900644719078528557328340975284176781772220283611053722790790440277296656853398515545114032071074430480853263717938802140949633946563936617173576206951357196599805458536756608609059218857529734994990349439782978321507765836911569216290124997191511214083542855471821109353704157910217945140658265730124808730121143100139873943734156614168546465312408135332014550652921226666586352353799886598691938034892709954213633368210401352196189517160580397022735399987973901082359723920497065468102860519432153809948940781117138301158868996935678352410621798943617692829033318574653298694876840757263942799132006283471312752296740904662964374987772011410594904148258622222116464515682076280456816906000348165973199591687871737703850725845175363155996195972508276279706772247674548113848745116461797667896587026082370285409952884985312211807502830845024875729502456822442259884700612471551121068424994277656692534166896143838576902064154706666546644900623502112727528761419800834827708113259321705609102914138701508701153117650962505751769373110135832553873707848947912854445081086784870942123395122323011851908360395046745504953047176822156928038691539383924937641460839079173242758982863865570044779818614014965279794930295663337452839047078800986552889873466653355358896968307008664794530611180773349665584517403857895796872427747248588692305126112811425981139240393151415629961915428751285758874422362652767516402574417755862911997063954382939272844996442330773501503299200332170784170180048568338704980163792602020644539507479480063762437759072017130554759447762137705514200395441818817568678947302815026303154787581168549642365006413137601456665725270313735829332793244499289308725241827478610114070327703587435603906014593664471407885803541416638221680700129526533531817406789561016657982199351798109377122458676417561546621662820132870031858659960050889071246517683025261639294168701387643470044212495281407436875721866789471022755880979075004030018048916985212157450791382565947626458643294489411932783025920823331011030482134536334484758880594877463091960454615934338273820399378100065001144598422357072690170215045392593846108092958164120827432017171462060019280367176847793356815178016535296983677865492948651223027588322637406091293699003808817506705260226236345072117529648389111229667000749802779309287499640080522977069422123742460352694760401472300408304048395421800576194381702552682144748163177022146975018157121804489985452276815509145922331318466004770376645788787274041265133002224298535166727027092698941831891279663209363588397381660897457592237320699983542272672095058869646613082504163928989979403036313742151365359837237886733059503088065426950623655447579560783121493499109723546344264756423775232215683147083933857989370436331842850832226538914350871454814862924998212012010330564571431455804479324077325181866561898137112152547155253112980344140807958741826825955793497992669876182152842278980539878248347119078375191537941156202813935209459938065188488042070731000806544595859103010211019144318286203468679780090990604351294891999149090183152487945596229703332204030316450131292517865166868637971778945627276854589130502257728932742456762920505979791715800977841363782433755967935975679390881463501220795022382605683458981595052521979880781870604211981935507557070752392115574716816041062807338895833407502839166366564053468001667573715894062139954154657869980560248521331470898512180246036155059564337402875259707472901165138259483745766502202507935915162072813830806221551423455840844470589926908295842875424655950790634854006187479732538934075744132791532420149081368243085219563708592019353425385467585861258105796599140795213170476982570935295955143545577007210861476058155332484653986126498888549358987765090307732548921069031681364686342548812199547265246390070900498337449182640037115875940149389613712066992486106642664321786299356383535425080251353638030573964777992177143697069809539900188532178904638640045401057645491401927298952932909167471328125439555947068788133958866248901432553765074514792456840963133500640086667523052227120624729689718336738891369860811750131172564312940313328259576219020897293247987771997465503958457197673121654761574115283198623611139015063329933850030723502276511418236947312055204274431654311597881193305044790525694831860605039542381815039618847802140513842536115608600962521925917386255290340148189630526807521075077759776300496661682324185436624838259073904887784166766528487969382373179859540650893326875982502753691953975593603751063208243062228394065666288848150869037806159946874429924863933806232948846160428736627139745753894564529709649953027285818174239135262107193790302488648388408869460175641717117236330359625229606968258924493556354418793923474553980234074547744181595993225020466284245142200604281606159503688956340952906391646537888599538421326242293218862494434316723917031809761975900838905811869674944935776360194282124642497136275082595491619698251643560615924133271640309456826228390404566091469403744771794304777202784256956035396675445670882255534169992503783289775530574067123258184993144174176110502111424777889082283168945958132494298935648514029401430757734702770267427952883562530990582394828624546203819615802767103093358498978527078090807935998979466476175536974566339052725953046944219227445144135915843079451303723245709898896849155865151166116851999660977505139541237344980454812931979247290182913101555078031043923951706500569693010284445836258711662419275875723270758093071818662787863981895383690533047528327594031127995079712941614721089982940155271494594352994899079713723302457873112632632191682371445618736844868058647756750538040579144061429817706741555656654384672256180523479704191751629237161187961895359077729162007027081015602107625994591836126491948544631365532726121230589157327302378824611483857945459063406828504757358757731440352692379868269004649795261610416844251035120984572288747733622830881243911936887684714022133725359212889857762175081295865354319709041234103292266142994708570218288694844556908578844600528330787696255139325506069345589228933048489947856544601842538458351530180698808670883890948818771998755728688051095097478963609691901481399568132082218263312532832008744141877486776870691346612058127230786035025325679095726560111915064460766207144271772008300009774161090717785083535226318048292592034222262991765311325595843305783640097322470943454699329905990852234971580862505394560913872730307447008037461528336755496778980864809713621738468210556853650340501593848519272117009798876540176176084924385444722945881735092693046002962898419382983410634152687809936699364548125045714473645264541448333413261815352806395980434492642696865212015101651034261839756160621738723692712392659875430380918673738285876800376303451288015244941445009279393173708354984556721691459986696271724511093015439349465591224317310428735411180191201778096355114993484902420026423338820407944061319495789960788082162437963361921101437107805514345473773632458979552340268848796804760929835327600607975853762841057813034266729707844999030935826320108386631773524709162124812933759812286564222566127314324441794758453621410872683475932715551962220037026287859125315618967010972693267436663828262987252718722292207197214894319831158685728008192009977457176721327048079580159993192650232010808296153489551317530467874777628769736260531490106332442932188856196184125129195171997845986396049187625002738648084829603077002234642412455195678151512450584986989731011286573930017835663266063059860987266247469718564718346336171687888097232733139999301554573323374499799580333438084227684063310771809985424615338145565839915428679318014605619868356451208059835874617551934180718763067809215235451058299507379742358970335464049937744889912634183925931895914817087035732706233388210662834280497085242160162249035106730104429031287987291945680534518637291958792563478984727322904877864965611041262736523170041008901462293187994196944750042972705581491166036230677436250240686178791356710791279374406393801712658071393267002400548429673508443207022902442619746965410238616295032419846101030661521287475899347892111525796544039037310331452978552384734033025003149378372886034345373923146828384012016427604903630562427883156173533947425692845926351904552202106275147213138378326462971068586102960318982733093314733185029499368305133698569337265499472652326875804838423489497501252540005743361414476070686119789608251406177054448441520340393537698544736809923354913678753382364827693476553923702108768467089595236810646057407918756349865528831129656581835630802669711395609718588557319212827003076852694626687569039686704177914767146383541359062759967211847159869035141399160368901805226151127960970940375095862233129029954448495403585936083054477178076684412207225137317143974475519368522629299602244797745465970161022364450679439290456194157647836992672779615064815321256743994265536274909814567710894314239927417517011801188729407215426771473059080696554166915731736813680742695264973255995264347301727342133457287883827355876756570285772120636081011516249406756539818115274672648814229298286201421151700873584618932421998522024222406054135571782164716270286497477902803861511697704139218132740981414457831934967167206371213171726681919933233609975661867482642584585104548838760016616789388825719656187989086763108993157576838964734527688648466818024153886880264543000568686871772898163429043154946242591037381339096102986928535840605334104277662408857823189747595287658839305894246310821566855841773156422045762372983209464365919338966887648705484355623521140516145116958878962677404188818198178231416304306072263733289552702459221234535544267130797357777697026389465362151139736633439955962479144972166692630256039724480423393093040045048473227629105709859624081330252281557671987358197439510890538168896856454332412485632209319781903317338634419731110548334835548832360511553259454056384795381782665394142056794641273150645343725200429180772983680208025838587367138783244711651249611989908604941436541486642387596373062528635824214037108845430269022057660777433601259736367822377446730289331298301975717147310902545540632385138289262423524897595868689161546193077423026265834560085751086540230878597942528507337756463031106343496064175886411146191418673894535583960902538224774708804193583329289583197057641661105425733647839554140411484098625000576270567866676669265281620153613871523440184755670946203443748018500991315150072299020209348171115946653439308220834151591172907610070033593787507614167380714612194494926062729295128697490303317624293973499524092647086702273514448406538931290018347773864805060711354194977989214242406842657594365630315009744756033713230516186429866219242686671122233432769936486382096454216039263188891410237527209410845409635904076356265092329950728321653551167816130023142666548321155098226728776931721945412728995694642391884310081215073535131227907980377836752932514989351431652727635040649772262937776169530660886391846362925808178308702943063406611247804242137614556414274718641890633694811410158330081810775347098733747188764454596478217447978400506287412360242700339961415405628153327462897328766571193261876647755912998282476801479949827566331744043481827045380577531455918023891850695569058876689629353254077049831948764816407810905012154006589782300928286621665004998016140698694443266791160805355272119606906376292142969648121183503924672111740983199757174749864174836902391423310956588499140254793862441404498373693041601578370926165125593285141895698934860920276408504120574384863668238774041265783737199351223533557492812127065595882952744831692589595887805804405057642994630330380686527074161653988648728130723059426055695143747836493095803517073769895474768652396948215300124840009933208928748127715350996186006412549590635484339693515218554226654806213579614601761834354136466287012067750865222371773573029116306689025721437038603878641542332745872939311986143890674031671533824938158012990821257320552526544601403868564853308570222841857746819361176756511545358550778257916043683656603841681486844904279923482538408589926097858131449076433217079949909327232094313902641151910966559966080218787447707147767948995851368277517404477311519026670126751109778304963334837975776878204599898850226300152371940497409863413001653386328167586986207124541757795770122892112948660732980392707551302705784361460370979650724832342734118998409752356283820371344647905492076896160836075643989111518205764422858479537755059399848858889814090787884661313598774837925737472990272819821463104193618497159820880273770285126232872176550353735489319598034796074118328163404524564428662143919661808748187518017810517308218521348746998269266670288103059224609148879174578937923506877933512157405963843027290238545551022616633153248616957236666645880024149148767907912288633194102668089955297663480150102510487506220139468051951346191741621551585081929394806263269630947814278473275040931731572658270793061033229881416147839283385045948720093433371570752253952215582085704415924045343690282727613733192348635000631059704110238693258526582102772811036251190294972948288427390092252476468906966787379066253684149915270907034379727295299306814222114613864410108651608569272026976977412656253618426008379691248656110488192967820625757493409093176258445147539577249310169651572224253001247451629745531789504198790454817600731190797176204190781072908020187467153667929108107490600302065612950132686188129130303792412166683448358793489967706756282671882488633159182564265371545642268821011056261918422054455585737347721348181864758180635968097422319243082721630123426788882242945577964685303544045589479968448559351281182953520114768410469935129803587953093817219744275104700169308311438199479175505637815995195512722421109032791646777478914271970333300577899210162829082503664259100422986620156710628593717959459220294154570741419117876492399032741182587166805725897244099976095641594778909136492188162139078057527753760648522536961339830612390537307758491509602930769998774894738312851656253250267644777098407896657309775467331286958280340879167830040251755666450969364707489214218791817472456876609651148021041789225917082423560155257435860265274563270053333947349217098755051074348591318950924319665423013855132013566704493167342801312810790759342728847824224010033977915267553859472054402799040466344898178083894851576952904561397043951777511198910987249654463601489264077729862167349520506522877047908238744895390863140328226091077455815728063787487004358254926898427987772609412164797575507808600233587227537847211766315244795058462651724202182842101583341878764259794180939387106412363921255884763125694701954182362359476275575227897870781519428132026186569973961049207773546027186100015783794087433029904757595290978337076298094087870785164357164725699899565433296223864301220740746514972423631781426543338726727836675227612129622376370862107595926396858725543681017708906548436090618141510395420143314751112734624858723376557196424279219616421137306705083360393204701571313673837878315885732792957344012891253450700348639340619173323661889118951662876213111950396591720254543852488488672195973016080983357153510533155108073878836303666962806116236623284911607053406488874379207989626950260563188726580953941930151841902395054475231344184887769666251893580639326807101064814995025037886586197180492061930203806416761041743133267105953829466722236958514279384814160018416528341797760314066819306479112385833083107838447822718661904616433053642544617462047302326106684514836938040433139927969665114738068676102630062145588139113738640000461702113202772736451481651124578502521242042325910102187830560967012434518005040050915407282534767388726607922667120608313188809737205123838978011847430557794737485498715754051288720447522316040050273833444515982769409912379291061368597250575100740093922185771094757977619214710668683047212546798485742553067263675227979434641667162158303675612611699346578108006408136368695330034653886614390885542965507375421363241240796307118644451512230049294085478703950151363463213962493447471659334560399571007213703775955786377815690443311922696237377272760359127051434072056166167394732723009247592604639404099924924352035618281469059291637390748402202666646325931784900328504857180775346725931372087060818485677719425667044171728728490918085663031753486421752154121927735646111506876362897265435244455817350854539581221196536160254404795820565342099243600311226384433858331487835800301982407829275556065597360365969166502593619324383011966834368128884905943289612535942625220046505135235001868080066673106606443206709425407330584256200010899096597458024565199974385712025208997189836274376751204343108638787576474782962457368095881506080971690681332344497998393314091925487910528327986623255414990732230245856445721270049205006249708165357146863359805171513891288220871910218980587678993093105139744197390865312819282451694303801537106578124645956501505835843739985111092074759605473949925723185810089624166824803420172634830503873607122730665085995109583695283743721073432020605172519075929406178331808675015389384255267444040831485341886340975484227703377176302205535508903995335945656941881746177501371661467942229212660832952866920208347956060090256112886073107084646137978460264727650153619632453670780274803136488087450638461257601781700649936306495136572273714473421782302436769337733077151354521882280442099229947532964108482354261136492283017214570859526631990084037398586621039829593376177481132430266440370736587915154021270189146785621102913607271316235313768127839277300335200634163182163101290907186713004407632256956543104606210290195659214867930380430600772835920113556700088204346955681362228473087210532924156476933150236000141295230446630814272282985399112414215852574709607034226610050943717630547365645969596420608078187612064251349087354912350369523356827056560072366597355713740766517497706476589220676419794459334608780554090051164367634314772720365890174747102063938356679670106956794362736210648584113761065790502827548057524467310135694026195655322727071307621767080551053120911322048329340029699668250172098490406578298422098500905313363550206959540919859874887826997433165023405242834026283037883661425573945221900650986902026599993362454830586948127014719677148719313442738595695545051876837355555524207330776073995951572240406855862743289101244904095613905653581669165827941806437336951530072026051386287567893918289709518668967443214283870219910981970082504395146911613715991670586287822571060587099658593469350793471941301664404426293705596574703115158884887074471948396829272266320401530064482802701362130878533291000071142976249131281924707861999288761763619211779767217440036995121744861505027023805947840370009757779314578367332473307249332845991090204278943000387299347569351502765274041203176766055431482465728353145108050938476494533173325518829590583085995546534530403140977832615763962885234121651849124281374317131077513504114232252999055457663963767907762398815999972237518437496446499637941778307679705350167951514870968830004144226492042923911603263323407543500576685136926516345916841311783150790626611617326963196696600170376307626314750882954729091902883529837020660277946768970119146688778316742120463012715383132712075680879560850819993811559769015420146813537917265060427505692506569614344441702874000012095045384620491139865475712798879584177841795873264252398487293174823494049316026401849221597237259328484225344740582992244757017349181700172752802767970901396294836876866025036453722076813349744372637320331542532896996543584700318760550848022671157731931783873922593114170682940872662850070518048570485656637823511873418338131736005080741717699757978221917208297392777259341063136570440507492524807299528378473786718037080110958834497531450769928034736477824534491758132017963819538504612509912912134545105447327077639843172588863436315565397186180732263651833113959198771043739814908834139302038047286286400595483986922257575225732891114157787553751846967463171544208657068492251621158340679966526385034541791566600032732264385417885617426350548679857247432663602052231854158011956113680047979272498139922668119432453965335825237403297333522472803579636687618373528218097882748494530199703151238464602927257012977641856583787813527883921558765200177090954859407093885068952703584067243888798272697783071141856425412996235288623940852612384917800966069135450457847176581131857364486952908061182088248885036291572464942576580012442248194375426776008580015720620314629588529557238948821100211074057749436082279939445829791549435697708857913906768036348099904034217464135056848783052435759429713480709343009810117508403086737776882274096715487179674677326151239529203949441379769512160507006127703990858361651181559399336244208545230900024133009815909945521049160243419787946669921571976961105804014638912360724058411685137253826342243254120153385632835829357126769778435689538585692068102364281427129035875971969197168203466245259180097265433964320682277728059833000522677959399494713700952808407960548481622167375165529468404696800190702135585882997865236072250054268315657509027449419476481405587430656374411677876749140326947526372269513999402085046849922601745504034869736025450335909720554232605817203724319064363896729143532024314748916322425836268787284238302083778756221919117911615704426229218334007713705432254886997762234520693101311250791386944619485000086500539628665354661947435015519418962699805956092250187508634688049907589632426440226318850838952089711191784267748827410987612939969440696188158146519693188101641293694475728138100896004651651384474090505673847905372375591940370042184756942270910400544204745168100669215979278502315397567053023216295792434286220488643845231843693013135639629388656229400107875825969108900593531375569727828570965696882161303946367395841986288390286678243996171573602286094443895778029799638442571908305031405441322664987042168184866130275327195724469798867463741754356874558183889127851180023001012419679543926057188312669677411374772156322108223606947928718950934251943787706592613312733170644734373544423850448813145625014930355267545924990471493162938895308982253136524621400402607656672700335951876396338024688088919636681738863920894597810634358861932379119752685398443716998328622734010265058347667933864529382310630888032404108579660261318651774484744804290226236732700650282560781670446911004114226791756904110155338691149363188700453883349097286272519331499346579178776701963155919605490498843890765695208599696264241359516694735558314836091363009719640287743624840099096640314327521988457551745636388986024150079777746737861111694843860111412896437795478449190637124423442202827931099023100868104494093633885877457844824958322772750506419744119386882513055804836725072915833063047086944629930819532239050944248843924587487237647825753131613475518524750489832936354792279776785570397872834576424287382868746337135126908083182936244518174746020842548215407130029982121519528334077556612952418029206696683055343195092997115804866105284781052668095954765309301033010301763557428999493751989093885351437589749221401297518909482210957707795170403069801307442720515958912546783596552492642276575834945910726551920219391045737620622492017758722109723497323297337792270253365771640162077099461686892876219861231335775003913565728883850040436969780372469962450351484205935904479639994059852628291387160894549422176745572456830393678618684539219146174624434043141248089828365044437905378360930108602065092118818397777838622266646189215487515502986010475343030140046911367634044643699231334129338744447838639517971325161856468294273776546706685233470729367583666076477760786123028023486271219217121098015487995056966818725777087125620814663868426423077820097595497412245858943889758401573378476581729735100539178889776370970069765439464438592973668971895262101384915616912513923549821659965071620542283365930905385604683737908034853903865771007638125423860114627808510640204401198038070034757089681817897920900702043255569488632986018008240750738907678246121928489029720305063039357272292357537476926462776630743117406998838025341345945624547051155494190955055129740337191154634620124301687916626531204707990120919582419345198947684636101857657489444975829140340406209934658649056476138011089487490824624488737257079806501950406429869770116340713960928947523080364547177696955912298691523968193009249256188691071181563029184659320381739302462781548759721448642777243412016240506868602982114659230457298256586227607471653398471539153992561784893768564768673770665506263135161886449836634034610427608457038863384632973340298533560526618905094239848758125714809441692468201311664229163793702370520369860261114229297262505921700627165931483120842527709607617648374922710913223375617997144272718536712134826967837248505937327413381295712801709553428222005694349222022885372308096313440736076304416429993087636168393377830302652420227457524120080751574682355619876642748906504299351228368204612737658024915599022715579859623986593920857811517074696825295322532364797794047668212361770795997515633559863405071982405628884334188051813815565707919385720764732784085819551992285242184839081133124105978311689761288166588582735994649743592405099099984687061142297546701842687959518116682039110113952566781024055771399896386376735931070425296284093205194784886590189829915998340535811513320890348517299216729768086548889776712748415827488022167017816692754695643668402998512790506959571455931514324315225236277371709788461400974965364593798803811099595056857639269787059522877113083127526607461090041353650759101564006605543079950625351704080981729995096734938706773520112745148482169213070572280905046302559237550348126311546613720963945770571265898157252919295595158982634684241026249191495962678850851464992738045161626522720685114805371154430700626783412951603646681031467226560917570062852300223491456990127240122722428461820177767974488531734071701041668107510890990693805766636513864851833778063924705488717881524173840210794731988396705397013961061844634278432418627636230541452868486472339302240046995248188410822840540259230803760087879974999206731473523566617069303553264436301998250826201501178246588824583886218651898791397045515305907965883856765463170370306256034544886365002614004185481787249692118093535263437719565818947697547383727248914831922417888937716962327840066838541485484618516164142408330960492003641467635071095793469928182287950704125048903991156015756718131424237607370655894084315998449440979538733862140825677347782939807862903094446930609969964597375658562521842383935576392031663277017092722648204600980499522412397495551003472758458341419496402164012794242064578212034792468439471504990486491796862657845029628685500775580065629822037600100011569853425377008716713221954587021711051319958025590911242055838340074154149612227942470042923956756209944146407681104420103286924985389112940556266582348763127379513049959210201995251759643500696119090298025154736493085074652102174148713427953087386273076193336280184470831974447938648264986017413517319396344630748388513597586452307432602857054468687070971061954099944079731227358873508086859658304772385899456088838670536812026614820995246240608165199182537064026517972852227478675155354939138501032557397627709110505748318691765752912070684742543849369505531805768018586530950293438839842970528001066901229204401843856893264997512559359076287314991138747555061467498284922985752760222737233638648148357949288903642139588235212272359797570767010508428591192641372499400505774050795378472634965851198934544666433552887592734405238410484036370244975610473363647091955834710479620939088894030613889214017036904884101728967276859927396092028741825798399232236272746667283272003185265564276130722518157069376871212042018825410718145161175806345792546753900068912121619932400611840094761693569318113084673087451410910065327309442311904684229330754800533753555482655076325823195022251879586274927773281932486172095229830922490559869590137690192489267373436546449477846515305759300871415802507463591386822322946412145997681946800230837789576954814840634303247368923524177864639291140822391543067711791040793202362525610161738481469393538902917699137963725766308603739304830042932869624854329904189980938826543918235142785671403778913790783546625616640398316084942798217769832835159031798301309177454592693044592426056632845533169115819820869541439621164271126262663020509127911256212419666967753710863492485234383310663228228518023022770523819284420056207277375470189149164389941296103580181137140361314227081602254602321386910317476038595282445774599228567212607422890548919160471147884383353537230453091550959779195789008870596919516376631601623509975796735171386647754961998040698735945598280231950091410749517149376529030744080113995595027645339177780250476043601441873330035191375460783676845865957071778987851761212420521227686675572345095950026019115712892817777763219119371660943753214679353509580532355121408890414155939806903328022699523011623018601465243602438332993065836825437566714752512546195057335441623744185371580623640325362148714273417767502584323318892323133630757701759625879814243644978003228037942060813812656416480159918549530475273528063752104792494250937508492786794842255273217453498548949748921412991530492815043385969854063762297396780306142552733183089906628996153845766432339155812128824550154494411032742543254033635710476321321543029613742208950925194953563990513103394317927235501060440387527048717202702201740706519038292739467971629886353416013224415170825795890578925765592906246913553702747067485211742892667922580838559882342632120784985213516351755497087642256875721433897949326725196668277781704537922665319005304921866441840603284364727293987620640612347217397895199985088756126527971899364450584839732934003570020073104861611510957119447377098024912576143963433671754478061034660177712761763483437761255886247351055857482806351667494169306058867722689576217624656906627550008846889568636256733986177532732296886981895269529597045303081680515023598992895791538225986233900345733111970912163883383536338847759991628354856755222336781694795939435669989293575853506467977778744421075777128585073232153322961827696979813052210427816680241102812441145820993310292452987197265265328668651552425767433805076984720016548866752784781693840259633474843346068973489540355315686257593176173414109763348576780719792904659032551121478646507203479823634178261373369107769714976521022370681136830994094460263128006525336818823291811475087658847656109652895874333999079590828137562951230230118449838809762364235098111626437491629357649005803482933857106114536231635965619882240505684414652840724244890214831061696361473471261272814845007728105031673294274694784747382931070506713495751065092695645011950205602362410414562659559244188254746281984947795359221090495525408641194391385644717626364428189671724569269356818722135830374897601816508966971587526308620245881592099477519884776972273654826190330914785650634238969369362764774767147761624150887250809373598575624145148302402789585340151259694404231501804132352688234950993072422329373578731970528444442366452092237502500863395140729014125786127992114258128459506908647146718568651033028623483666727484199491315965326144147399681299190710319171269043683667677894682170875496599957337336625876808753199114567953131758297193411898372125114383225541881397143677783610987077250194805589307477142228146065602612484767569828986439965288730634587069778945770551890363497644016188174197365565979132247921267910625242320706080347535401630627282957719975634146123194162835963347147166499464988125104592226503625467736397382009138178895763605389853952877451570312593321614530826159607476222744756486001129589843815567613173100962885564148551521514206396103316284984992134829578133209627323696741174432797308033270415122473705754099316169071464707822409482807684745973323275230910605458199353274652170508761633971547497177633767138309378099919674938199349371318869880483322357941529292488766817597360092228847426990679905297821106099185578956823140112948850010430773318248727202563664803112209309833126278039913724695080671171600795693703930288889671234744014289799686466835638737705691364419821617338429131437437585523977156718906901682703118454110114995158192046436718481776829377400223230968589983250638447132986730160827826650919208782458146243128751744663280637882562814788600632011466083505645546584469689530986808555935974005603415273676399674428923546636430487579355952009478606983271311594621511597924935689012860664098710942934981946167541786094199283275742700572237575881132453173466459567132383999139747442071195222829309415216913557746939652816783847136482082727316702396878784627527510558607199821794111736105489638194314797748499848670164382560687002463952062378740782105836981700842893781878136422073548714326093047078834774487580559678454867300751000140338575236934318916338723495027690901843031726037547813937793068223892883425409031691556508508832629215954811333977606061144371399724492451554411213197043111082752864571292239003032719933257599883232207586710928585341463994720352722121439388468620906103345663282244018310414642905469258765794124893297813537401743175245820052417328689536274677038393702152241243509311472456663067788941978321555233450615271458737380427173747294430075481168432957351545006887287201834081207965834223745131063388803737586345481980254708368505267903366935926469858565662974547632688164835293379433378124867022579044490272152982550147030092134207733172239920695457385244852469885174341655076094031163187375521152986713940592722197231337131064717462534891527261208101330832213554475231292069229512137566849576676953925556185321806310673649071549906720698838697083592984858658839319692040232140989812326504429979401628549355735468170345884495630468726156868496139603265518023339687966033045737008046949442826049473323248748266934616392706663563221123414354067577927656610008812342622400598041672997240663028910473273014820960496034977699771217910312817811480233183848691589783811421374962784592365827984797614032101826876074196434645378955759468732561512842619910225776094684726976221811804894270304351847955204044424756301421918939971182365579251305833004814033692131166413059211087552856296069823093754731461100881044729912937135916417258694915451931747320432238380967224155208014976193744638710993170723293103200147290713635857102986909313629584542535842937907157343724881558904048900387506347191867388521052161906573185309963060960381113798107679487791651651837552045184207260876744492974309476304828729491475487284629322490791298986714068765196192855685976099271401530139728545731375715497757195321945635368729962021633950344104741678127930634956941972303775723661994744756084403633236585796134957352687966169638935479205858173524128183423752540727224636817343880831962246086404075667113799355340146123684644083872088032748968264793266369993347159266963779927559260805712431270455000806067069217273298243886626451979328414498510855224239133918801675126407666397998578021967770219712727488426010386163769001539070919478276172281654785410560868470899364095693718351798243485799415111158077954094718932345815200155391627026981019876513145738370941180709092640610552186323518820791249375951446489714171645240890184022121290945096819895394590985061545885238199311126289763625118495695014180964441250622584883718909135748559483795413873351479340205436849737729375796618585011616646437365775248843300411897994420386124144925059755243142837819121123663328653373943837989990734425857658974790730839273900617496285700676684263989497042937429698163119897167708301541189660728992237106849755981309005571347980224098547195730801224018370349644781948965084598001986866308476473953662184850841383244207495366801343436044989261156509295891177973685121403904853734077061746062219648205094852641973737055252605366825751100921573966801849454352961535684804831828203850907778351410594377446784039179513278439116263678658864555945399480537451713866651997959442080391417411387844560338202136594781560413811891138137560546594031756963917672499338134277877028355320061289075703838925794092276019209020241442507490990139627779886253666552729889020092751224524633276523108927278383801672221541209409774450231466731472130019065596723547719852666480601690487652300479317368685011547462242472894863722597667877197772802892196810517606844368352690774711605965341381133056972222418177673277904745242019776663591699702720269888837212972421732137036724767630844739108542793763029911627141843652660611594975366945345206838721458046854964888168874180577706994586721344550969415491769269300999722734291673109527093058776119061428721869824304103520245299098780184972691418372967738781000514653468645454982197080321715239380831304547148561568717290721381044490047345243919701896330392142736538744373560743475217085973975173911506436850197909378116224251812184975466495856542901715687629571592165863762535957244850543346566472910682274450540371324992110064769035071644589350153022532561640837347047949768015108487067680944837759918271845004824261738711882487133945532663649242273908107061096213682554419671416938876177783284102897578597553376663698817325643316177913508847645651690790664627380356052833879310997719837796215962459655184727876091553024241178991298273374636117022419197625056370810267233178801877628599732588974446223690315303567131057734543200253326500605015083575912908524119130329002792933449262227457631041690692128640461814102902539195275128776254514573114795141272492206761284304189497728057173883656248439878855119367645222312089780454277270646693426268859063311029066550905802611734010342915098548526910313683268124005470939328506232141343023300560222749747454168477013153504499563507823436871973014157505789480463151906081490212738859945280715248146850740877424505711883323034867294833966137229874758852823259567554884326546451766387004601042639106923422389394915537553657415290801550702932307362295139608877542260690112328470237965427448997300749237132201430363971042413629431290274029619690870000286903498980177096176123257922514767053739146739443217838136713115738101443582791407545042437842961792666072633531041033602582420706822469231178385693217996723399396490890207667381292645953502528750706456880320040604469355273778766577747674332574191419833262731178289243713860310269398516270926722231818369783734297567485294179042896731951903842100837519931606256560490918456139494476116474351593451356923877033160703761921857323258186086737347502361822683936942689757897123311631496751941758155405351711615649008715941796985259440955076617315902107557368208527189433461986200542135046903075494918375734909222618354353958360077857485000874311648797620221130174453808881608949082570418657460957614961516198240897519702952021150700584684892050872891983265217751214444995448482956244050653206736853333202284805160800351901546176450839825879855498277863162183836986757060263907464385478230276256124899121542553456078170784738709035213788062077578430313730592371922888954415439699470505937743432846091304742753794320817988384053565745560048379729809593627936546397674653658001166771306196529806546487836259918604676855569963198520560938814413778927515904626438247087221878357648349407169070089065933521354953686824647394316703053955436799690484773393043232390290123314533312520589009869112630654270784041001931630722698042802840870897619297810630918489964247715461533934808106640784035032563638765611069839170719814014544967288562148639090832696494865283602926697778351170086444583030612881694060202843850059919481194528899712477013603599086132598246393872911263374038245361583963278918971008724842960123572290586679978786474117987779087661279616285756253389456002028876412973959184063348089218303585885116408425789421963239667651111994891301523929389296085384606311411246640753884487065158065699008294211900266908539087153519766710923650294473791424917075344444544701950315778954431548829349470526293086057954337461600732584093575369281757186625035023329866100208683314327955903265683050123640296032439960643899484334045133935695271778687829708708807488806180395424068032459221478429423312458683019742692314269892345520966660425890209554699676626383122473698550282372578368618000970004144147753165848983460603250156275897658760869941530674419864837149891261237667512383268508241850457715325423353808649383708925584965667339585058299957361855119045224621803916046159672509587586317315032320274139179399285095042427891360945513743746394672058332511075339361237706870581200980699998261644839590682951422640489489396813462019975371438827668418285688103295455996273199164473971931864368993248855360990987503659598074616866800626493639153339038397762325835965445214691766200332174796561075351969536562604023724296768951241282645528918288490061932595387483115212563724802140256616920739737139426440908196657771317562571376738659397323301715068081343642425835447789506859310610581270183668543461650122959883131062419450179792315283971869780525917802549716372650949459147809833440696614676574741438472936605565065404332558232768015133374837703556707815351468382070169825172030861178475123422267191478416850007778143425895934900561276672041579354284666435023799013039583998268022996324149836923267726085424263086656869927859893628596828733414498321757817676988961626246742171506254325805275530832909683813423552307132362046244367215014936965745963554269704570679276492776317165276848404459822373347639056500306169744494574034934813952984700325840141012498051054370220390038056762235236272023466245912483987070647540599215465035100495732338580705549271525382309875678611940313723579282801074361281988226262828493844457477599666631781955763183309540558310793803864694958674858185820223633775943727574254762166220697892548643928090312492216894168768928677010787940667887895294001703768080825138733372109425975185047172683306617739701233460749050567366454399923997856192603529977787005092356642927669430419128354786111232573280875189195478717044389094780823538147660109512519828579857453652705765652441547324665497157530790761967249026238591516496671438628427931068896671101132981509356753850850871760005367741268452351475333743567975421126471503227861460378459740953099421227739012264348226152038479760132708163239318254713765991655227184673116640267940870842982422708048189646110684425232141615702133717271930012290375172354158312465292256853620225656501851897988133338101879837371199941504630991608762271958189527774742126664592409957481724929724124900095494877310900167084498252869193909112346011728773962529352697037360061998953463068566042756617124101596178689068781950628681376255839014942132627486795119317895216344174775030118751780281650387887327050919187920268582967355437378520391161758787051400543563972194853697145169801920101699886306596811407722618426491401829458101765801021808236225795442168177683025007210096223407081409307354666564968873276217532139977133251761135368704175113581429306047728986349755927605461062822732131231397617473906389841328209963465819400021849468129035028730080908834094088830083433468199364590030129649221529673744342443848986402846197219920086143500039675060135707536636808938665158703006585363671311916025504910389110648794480763927438146850439324825552385129418050843255098508150843613148311781460680098823158563195866773753783179913485761629126542203992130086498226822860115467246062458706402508227523185355135854664618828369393193337686118865984787434928607369369515773025637855314316673723197560941063501992727118532362613606192773000407869184224025748204814360366175087717262869896625038649106060049526690942230561519875572620299143259294820386168527672226079239555678230723934133244747563324601219804103401318112704235823331724600825589080651304794808647889101519384391596186313789415621811769388996264650930939000453131770653392309405631460265860352741120285188105775966647541436959106206756572278602762609559329827793348986752210539775382960277484201535004687825728278631844416590795796493835327004072243029363367252882864430544771637918673366864645076813514321257969940533022099279969859648622523473760784221233280069104140662281543780630871242580540440911972793327993418108118629034164809865044889577313139313753049982246058014171795265829073332018217127124108214497367839040746562199761391886710967530979083529093060054102536557427253793632482568773078204135208147119685031297630872061386528560421424979931686742173753232591615888030300146944415697763543246041379644756411384513357093895905542223419809753542105075032820297256241916954151451902905027128730777808338440338241809050599699367808666775106077031591895591895054377459249819880800298239831180394534193112308923621017900910888102626593287573528087779968563639061415494683196804988126307591618620085715868149639133613612995619663168614199787868141057459567292687220126567034030019542751978569075586547119888926719442967883876909060849962885116776357935528921550211870244210400167472066589179150647829926386582192766673161403310037527144013884264886399794224783160652176639957122565446612732865282843968907129895782005497414200502160792013539395872827626443733861890218493231159374209318673823697321013594545311545867415670910593819246465318792356655431377355649666547866580076986320636675245237080639484127990741655356734200964609316277238908505240984445500654092349479529605137246161487490802533502877767065112467028935134067856048078341959419038109132026897883164732042891191842752936512275530911520760520880587283229174710500677099270295251373233473100523103138035539285488481139262420744469715598937690378624559587596144186442212994152418838035172704789874228558199632223488062302383223035649538379171331981324752147851467020650362354943387024049876969616212524224804863039762877403938613225088626247464559300702347097938938937320671366977956469292755416023689102234556111440174754554340183344711255641457399333278361424925970032895242166338280003080085125458017290163945595202311147607509425494380187198364456971120756104788833952567267215768637463714948509393013907586296547434635986101293851702991362592211160056792279775415750173908121894212445542884765925642895896132699666069634407049392175256744128118412844620606132249849724985894794810070304961216106192369547517891078164575468281327357259874294661079960897072821767569041994838407872666176766963630832254304858696032027763572934002582725465931781327004935510886152585006592699767602302973766832821848971348179472615105121639337995868385717346900815599313516468413565509416228673836871145000632759803296082490567934677834279125761982285929621382028145974354161586201491621273130855681770353962608363354009131911136077243467162038735372019137106861338646941993703403587661978089481584660460232125254372301387660092400127134523107685638072549695757575297120461864688732420349966450898134715258092796464950721886501884212426720249302425456481790300627078117744104694597319547117026936811487947831160783077005237654497922709757700785068978776686319718689429155543809129669950029568218725739702747429501637068883595239702148454830687021062930351802140384549812498559413819152822076465872318720256023282577855076304294047099172246783138808095571986219491430471247847432709111205248278519303882700411724442006704007809318544552046342698594587883894902679229954565243705735829633299968408160847742309492779063302899239408294592161629190580324797729547715588010118796156662990731197321658790000394473173365654108188359101225805881081047809158195018894429262134943998813284380884577139798596847795747980910071325842653917092000973249720051888827356395237248259280871485887365468760311032383793674427279452916561026624492485667161427579730975878386963245058230590084770766408296128774898041682317360155055501484627157971143539867583212437582368126553501600353824969754881773657308692424568496993663824970573491128478411098762455236432263112434592516930720744074233758729039055472010054873205770552155402053726412072605448573345033481015958343872628808666412149372436597207434409324707410248942255342166209531453904682184262596119533397345859997882371874442519924711356275092064035346962330937247473880579937709004937431074378703705525145585339932372352747286794806917731068510238555421342809203115025193491609768414400563279492176202575794628459500506299145359664574121813474192298604628589843402604080973697021057988976233680635799915437348497241290876379926527925077709502984563025266173102527784200926151534060246230470555105531244515078650188009776499924342767738036328831778215286619452709814775288352978225985838252748950074587554546652435362538260081528345458176786896268063190996064298919892482614716010075488909301410795131921603959547958073013121007275046511025386414074677311983659941210632646231115459714501001045386405138537145625154446129827830567339343084271522298399183976997545818949654988212492712018614461281065245715067941254723689897435476027336638027992425619974885016340614834194498218139571991485965974151016256926509823362890923704523963078544506003972739429525238379327221642880762909845380840399563073681082140560729328204447155453205871140947427759545525611861713103961062906546190976714345729740410295105865567580512081055259452465532806299530198608306454120541761592273019507990474148704589339651811003763557689401546690861955783449173131569584046113456844957779817181807258181243742079917868450051808125656018972573898125431682794836924563597726977096736891201426911292762389129125873014477147391425465304782813733097234999930405975818018137461895130577042917119184195330472537058467919341516704970959685565216695463236663949185642969154565602003904326085788428376740545068928888522140995294810919207907519241453601771521327414567651849492694766228852698271228529433687736439548690622393473689325448223325914561458568584059434641560283054038955154038421353898828575030436259400948860438027612086897564766041635748410370676243165993686854525981078378806748309145031344085202922692172432180412112131965435580805786236933658527035590663035064378884616039747809539344777585723657055903881794919910029002416685650540450582557146790967439492149341264197373696391907530086462320576960266060873248751799154829814031691622138387522902229854924315159687258481856718406725795931885565580712618216062365300999280468714029731541314236915683854643303228022591903162123446410029924292107207508926499820080693354703313088882640706859472333488148933946962450828646027384112961198946870320873468898260534448535641014346015629699842215610221340545014742789053267247096820524547471861843414605691251766897090129022651744369025107695617779331442153809803115775499962445928137509585205803468245555501095582343391274867437825637203143367131603144052230315960540974294172275854652897643343159943676353932198778549305951664853126994092566967594200761798369805156499650902623562002575771425115218201055092435800394656278284711062963915505215414494573125711298128352064530490739863313094220911895929841474712009527804841330195229408466110118026528811698154785869463292948719864488738835784571117592541412049800336653049688796039427621847360370500933724684606347338388713219944666758681370995491616402238264456932348699459516914010196354407667406966499385542080862013814061905708234080159766357625216238972932543240800915706833220328214036574416527334782965338393331804253461069678187295322519710730234307319837011198584945733180974956318855133523792973585811112003679688335078102565664468799125989875437004277699086259445835440317571640851132414004545116738229404139394736976624199465023676627477881947465844049461707315967588277657272937366037525608077587893100771597395479685150806543966140801912663818606807473648251707507066320437370566292721198162616781316528353834592466057599642419324558422059134713021646234338413730066050988281843066975670755913463170371455779957511512384669327756331482449811141125258190756485498763160256486498505781177434660904603221684307487205230717592838563193572366199263594075322960359467024846235730450099197756016101769692560262427854894919062112897353642785568490556629090715067601094451190364127092555909232705736488550546188558807374635046824986792018704841146805820220658294534741517015909440879469250406543767664822522447447452407283492815663824492069093569435655276169789417217696416857644830256786663337256136211420356845606902462090926481372673195807312549158630569297019674371947930853664011102783095575367465154476019656576459786729039637417918899913613419068607802326130182634972707959148450174492163400763432680867262925064095369532247621200276137608305985166262502516757925740549846029990227124991695199546544179419727063946863091197069495022271780406793992061533027048082919276069383441042456920273106764401703234456679348155563200712356245362132325254330139665660509875830288853697998396216469202577526394451195826031670000904473218723641510277912356961548502774300578076673047527248043977485046458448597203032570021453157790446137233354421893691297794802291629509102364342836907257645021583388070363974448605127057983455020480266123919109036117097303776138979127318874079042541420618839180313619170325268958634853924429430778367017768674627551461764276412529007710016885568579860615674055114489391704995526448635391941395802178915519903200744993990928913475378943353780874877412114819027625252300014608454524259113592397233353977136398939211912075556200020681924312617779925696048882045907271311455162254638512460618560705320233264693417269073516361029105002241039402146714386367578302470586994160292740420372945389470912416431798991326571176273621161470024409696858624678404088442380257371347731942573041390225024678774087827152791700471919409664201749921048117196107335522216017106674537518103008836629238575903407432425169433092466362267452541459127926889864017274950168565508402693131760152132969864661739911603140968090803194602211102369378999783115565105744296619856128956556355312036387852052169588964268573438691450687183143845747519613910507129230921961148126823532844817652087294577309451402039930205247972472366028815078377817192558252508778305671016106324628132410170675819238439231416940307599180106518354511894725652470425494686352301153954850469967385849433045600797504831668842296802803396979951178008144373654785481716155503353791841028219356571378193992043402449465698702576155064255028675506455735478182234723477704332475707611594349350290715086756240511404236610134342838874372816324815397297086083880393253148635356170822288484901770735615858042734013956109388690846152831735433717710770860142182052764860126695567351024864676035806706332744266235739875521349581148288108076342413901329492100598556050745188037569464138405396212857848194436461457253447359982094661824129108150896943725825844356295285225791089991515404907573426738359352009870502507408470313433246058184629331729095921961743038083378533234927020044941419110863670947615335034953555989238942381197214423092592766782326597060524629043737284821396014419747715673292566391710682970358779859416169094910147355668313772286500779383836755010647887674923284075972175509507790366465635840353634917945980875083534030503853428193741793706349273178698261706885821586937097138893004859692556442691211492400579769101356425500062413390807418772267522191552549844001932889170671891794682239386024060913201513276134331361605835649046523074851956933310777021401597491642806546619963360003873564233541007867920097586137266689034472938627280553046823153420169560236193012752194630053365091886147827143142380982802459278751715725708337660728922598943982588728522670234841930311981642679220102305088264863642197274771442267067536751283821325014536609950508616237036467884756409309837292695094647193010812864384036009785194161652510578626449370282973982073260462533690998528434108662333336335363499848249045769262849324980328972779145661732862829402397301357815432887923046922070955339839462986212606648237785773369151718164427986128153134296207878415107588327446875058204519006648624345906530699187910033311144751771515712218668687491275480514350273911355292066273590441993726282252058977411249270235029570304538608356981071607414348254801187650585686927858284631703763953472568479235501847990693811451720936490421216724142329743969004737769141223984376504274312443837577656898865813613078215766693200761824284950800405102916818048867446212662343143845690754103911009591402077942818092738916461421624786714326744092170708810924026467631523389164396350174582760333155675029938198773678904145750017265591221951943406003001289966717289730122439799649467298370297747308686022656391014993192525447261390978546738572322493139183359877189116657177762306116409078603586044170196740099313085412427897264708063584118448517261720812810678260498271221498413223323515369694808039332615930440668559998161395488901661762953583635843686584720630716844014276445467248737477373828525066098637100718200969154941708318270180451806521472022442624746001972384443540587948098920476925063999995825091462311479886317000101575720509705557321851473730361363187316414053945397153887184385192196056273305400411830693812623184588966984968217020297124478333617279361267943633605522070591339830711388168101036489863400336950764244465982725520223903540051811165993895522240407629670709764086454351435684282763369170562664127840481560624890099792387931043518589547521916973567034506986759090084857423126302321906222560203128345547243037368474743328910678002101400596810875793931789510976079404340309300475610806802355795746557250765560162781117364865816508449293390004270030074247840590117330915732132952380349887285873269336311875206760779398130766767125013838529475540192190633154576455083728558821548977413798598393681893218983219103070035194679437597738076800284335741446912826400268991504973169428737598619020022506956051397117659686606924688532621448402456197764180372862873511508212465183414531753595131132656456378679475808652951568167563599284955825120118727482820840945641274680625111080751867634368567164583173402364142665451043109632430090215132957822453582649841538533856271877987829461184778101998836774131933217059427210234371332759528465469254831592033309440282692932019883060084073803308319026422548241037467500852199814812657075814865608620481269994556738852137134360725125848373892186750490550665369737806263453417190805223909845753052399528979106342726196951412345509654585417775009523750366815190118375437218229448994276530587702710928053981285153331721622187837581768008831165595805435104537071939364970579662315850193749292532276991699650358192324832812415810798918132078352059922121968686102187577727127515140638172679347856128583136577288202179799017317956222475586719405796950996631483812473188603117612275651167896778698339316543123073164779053382803241633713376438176823981721627950776991222261653867941642313035249195784228235754718219636698458255885222339040008120075261495064177632674990577176290699091299230480722724143692983757728830961593115504703436059836680726336561119047754930003899918314164733640652498551840749073668065256747586953972548482984871655650727414259690437889789815296001245877308435713335191527487256831534680954220619825802789911150999485062333528465047294214160905682435995563881021509793307797741873894804519460813858229972505267277312358934623717899808116664060198663686546770078523375949815513376019579871352385459380606285864387684493520602405521744631500137156674526084104549537798706563661432255487238115859863458336508524056805485100266872528594298416701415362338980217942446349080809165275275070856956448426721394688036834476641684373654885501884199668075417089759990429721593953339326635858896286133426475210541949928051158166016822196242151527503841109535942829784886567664979758625932662838619336186909265572214418127334174694334061962232034858988630539274204468201616802126588315841136838385236977928534936970647042079726993543452081299798451165411787336874814329656781920321891225418388542439035040080975024116388837738095573685834065115254922377339377362442679126464190580441916491685033534450455126976988596517865861451038022772145178496216125574199069452136057279232717777890975310318932002981429575340652101260621962805905142771694548126431507834674525182785965641997228288007212721202437200983197857519427686175610689623304336969751594049659311362949897697042547725941276408329261886082717907993166591081720762702470492480439221730289666403984902785276733015532223119759144718234646677079723642478417061521323969036458136601203879738705595615503892308202539058425964524588356412424444322435285041207004406930143294341273968622994997660019685991605313585863623754370873920691078209901832131306861651746444194768780930571662660654934840496607225840634507410477115283946743609323251229641196150707414700636155627139954604144056159087662560813326554445127083002027091308758004328757743336180715511855279985295772920149713166055727426954606057921805226556636857204010676565905137380835738975661084318608958063156927761076065461822424453252014242647050472137405139910128240965912319270589275524875969308721552371192088040126143677149640966389881178413872399710855292171846742234563726154670694334467553194859946927536000065989874919998936939152535640133026713388863232268717583466677930921673716919200486843720084657523020297397141878131185950315233807178935920362462805623297287518685093473066255036634600690556760170882660450097094439751742889478030441404169050651999561409577212540042066605299018755781859998183445426916560662773107960516457797404376237895715514396046456955322163522134397921072039438837479088153885496227998136733239279057399364705968435209244978800384421674280278963570741018696227578342274713537445547031114328166633179493175618834757418218718081241970959846366938670121322407192250527743921308371903119899781334637997271049201609362739335350937726757745876072588506646622271801191798959108061318524518443107552038226454962901729675595031706599295450755954827068998897841282676229434642197953779203601488244550113356234270031825949629504602104868724233298354801999848625163930568834377650825234574210898967446914134827557722057994826168984300080737134269639873626308009250117572013959372487883329011612349628897704690865639699158023264557322030900398640494930884492434905539884007888581533510488950848044498726153507637232754497037659958418080270801067510831540168451362483401368962549179246514877033305469020460789422214527201333929730381287074957567894339814273711141813070050283464546120003412333562911318907463080166316383248371413723718397345384346389739558148437184773453065808956059787355590348542079545846036108643526672604135200185409166529852733670946869551467810361224790110273926875162315694341626997039986141089663036176176021677839736360910879422765111813811172308133148630527629137013630945091395631762506691802319977885238755664237519986192693356758350740883922360697046627598677369921260227609599407678893970693998319812825585403033348207810255774514548978426874129463883340537762524296190892087367894373937512769254374888603416687440196609191106847191961110560419655036908976866472748141028709077306552414865208460660417005487423330654039818984793935163380262666067399660303438439298028074450574284399826282689165027813538468112948248333123529022509330307593019351828218044041164816239414672804118142773738470062487827435588481068206629796237177384334895025207977524218430650386837929221148664838042753980249343932740148583098872282693777291090820918355480754777956341237608831053620276828775193153562127183645114083446205153433479464874346841264141256895097640269387435749613326074522603072303321697917543110163244169242512248432984621487631471490090428659469324916510339034210904608684334853972863528018810207464259497920520893919140378844228212030260451611499885568255910183123893642410197390728517991653815557457577495172234585981959406157728579758267506433714783817591351602852193120486447037192370633495355653386215323706775638587782667012976383637552193714598997178490943661343345793421171020249999811826179323837163290439976874219483985357607978515527389329339834317341115173241076298199536965174391068243889356087351972592371878177593684361201370059271294718174198505828305964497167647853193858141617864369496734438423413723692948554169598190409648490481482902675335666380481247499650812554981188044196223095717269014308581988486917025146217327558811957259525379062244271821635769339621238381699803188401242269162646571020149264831469892771963347920414753496471800527958781701254823217759837880551318017225899086779132851791346144656911007775229421582602866020380860088074055127498585180645232596777044798536525281134081867552042940986483243670674323395016563517074478939124710650879411138141984862463493935921202669449124035935208204898671955106415603593502368690464601604642417264772451464369710262639817821570435432122282938257653969228405231005137531908678462237374938812654031925303215194187683817306380987307436729431346524888817860425742376542857863278962309078564694638585473388821284731754549320313826600526394960127363383720518029371828243196463836928526057748005742719886601978173814582167001107859944337773618866098596903225199456197737901819606329005430252324496147230474355105281831832074485727795940852365712579263301989733805154318461400672874599006517712428825554858763987420153575365722348721544201023750651418371955072643117767475887537927924810024816580397077123834969208578141065719752116025525671760148125439906495545018638690449332791907553272355123687242237459192187395498452266575160247760770547423769266974305544184131070513418915714244787217641612126931845685208121453339567894592862164948791416998346705527504661059292479278874121299710406374637643068961669543868232325338330048317070356674462118119728189765157979273459047809733905522462240798711221118258799085274826987399703345982742505059269206966836383185517942918482651521710713598588709475331595642200449841940858265138305914843049692368226077750069110735306657769127238411875637512419234519165522728641833796419025610388516261414141316322714273669126967918400818934911739662385130436480744729872851697523281459675178758636307805129202892147842484409777959066256331044491242324744277213528626471087506505209179017132029481654165519802692864011937763202692379122762491337449134018741704172624828880586586523938810252162954042677189453460869960780158679021539987726148434299596359119865042500006426070824068079672421616087790028168593075361910352550202978243309188474108814556145050654103486965846407005353354694750272077515562003453786463645687644894501728914502470177520751976354649054471530341853869267908188621563054351876351403655950274036341722788619778150982055563842043300129030883966205503743153691021809226186676236267954996771450967703260140747106259420632958984538712892253478820874161934158054238498509856280938274757518892447645765370709872306830741811777115958098634226813754207913419062929852485682386341481254415678648270047492953048259361624313035353189283729071926896732696042089661960517091894613163683911052819457505749915275901254465527186713784878571315052915273353087743178869459956850370236541569448764064721641427154104627617685228920819932350386740996176213417882115835020239736865694395186469565562521452186651957296800021483532519750547202302019393710338506991549341294394808865879545402237777343508653784366568246421155707682759058817394727192290835270114503800231681554542589013641692935688372371194298637325292591787229164340069139699453757461865194751378757571660903992662006217674988225765697009191359901952983371662927705736525231178882896999211411113361242937206364764326742096020404786360959720384707657664552159124520377584914954729699056258608762412937977484454561822607176497712943945600153586725531711857513774888774566013140854930782151855587332015778373993622610332388908267167674368240053609980087759723138009908398551481522851926410047260567453335741273882537603295503731179688054327966470016742169652361698655531158284910615090011547851070929209874494067881711520881322682077689577522075411175199968392653434019480938879973615494724060342713384387241405859527904001181039528712057694214463809179403239704702295475363956622184695753926407084680148839040009510513494705815715462685239798034757610679238363430259557044357941540300976595925072614954972302722152266115842206218129633810635900775687936716629757056266805599574017474968468091644619002570533608935110279306876029819585471189703674858887715298439998095711077460520665902401431507985011061343007884696233043525859722615869867231499733223386454542383833960504004287010381086678641150956628974466845572742677200531788560837496696308745656052827643929932287458876759151518041788254347478927977702120233145870462968100524603217761242582522066388606851404369725991910918162961619052615819371929754110499847246614312455471052172523349739333443634051525927155629752133278209444639182779999429668443654298792619539085816585177342839665790114162231509538978925032199045269339702421186756980634239393652647049672321091052634804674799494314736874522889051294648816463635988000371522517757429486394364264134459267379776588272125897670849695143276753092874625006543486799287967644909983536394509937179105889282451977237621756606322636360196924411995008953823574968780353975282272145007367983416086173811446480615445373191742702248844641402369527669008332687017768332076931737280311163749840357075436650448831298434208476508612024341264559661441156380356525824584673145181480067361635940795616736540065249147678555436241091793208411619043886416096076013263375533385465325837704243028793549844716969835368483888463285051720997656097204270823549453570961163480710412573521773735896060059025253306838319159316839857495515989744881152797714926151311566863357473040231042971520583660531674136933039948487188615909138363411448027003946707623427498218473345463146640001423641149844028995719219042536293856708042302565892868644699497043628735447460643689675945493325069616077353051132593676423305904345035524174478040891464374272151583161835931519347357265151661062934046999014356293041808936505672299861781789635790191973025657695178085134642925525432030249366539277595725816904447855433328101618725467132107191304154152895755156028958880722713330046658139810306825480237800158743375695714886249384500875467414280692518699136239558268371403738500513116353725864741845202333823110897118798914911286238748735203999720299502749897728262239925599921229578635421518803804134678398813100110699832920591325599944059575457144026890088321634023322048341374854880198607245399533468502416799005086550680270603070083499286258080729824766144083669406604446715764336002369200979170709441691877817666020981118233445471349404196425220791272050814417075689781301762855604202814467512335913630585599010894306598840439483565007958943052563820115641211987497912627293163437282363538708262227560766931761038881962139891616848830812359852540330515477613689457070881657812684848782619834440726452879279014835290292644298526822557663666006515081815973071263872222151254662158799582910548912391189625462384857665396358541227927887524363203771072042315048530293182548098221699284097748306039730446258849175067816094492015109493600493641771144532702999694513474101795059687963153380427738742536273272080984138599403843099382360391213779308478056301765917967860332284311854837327952730387317562301408352895315643031994740732951855432953295282573231834631624101390999063041850495490230213411415050696505169994294710989468934718883599000024169078543315733662367949185856376062168697307049013786705146145216647978879691590887641476762767500508272040618442508391086713006842803450028823385498579687621838240202072275918745881036332008071970392101456021071482775430988573833172046526046886998734175366124158526131909169937244398761538939498916985871253518908470018664331773409661038897785279671847768215230819881451869116550201634370888129334515965749261482714220476871959498048017487806180164603544655310106841255678276644326681573944449100366652643244016432584059098638402124051093207921410346594212124757976742478308289901929144695626994056361441855484485131606151071037151809162399608542711365168697592612085619310566791140976684061464652446135440530891149767594227600999511370464120938990928629715102174049911890452821122212204494651192566522385514436827164010625579238020023364631136760235232157799674868575409502454563437378505152586547562472859049848775662410857852099195354091106966919800860433546517306472048879436905425784828292089183458516089591713136714076604869967296870561084889811181154775887951650452592801943007138840531788969560390495928144241614009763344142371117700643775689354277623547798374944069726965231931254678048838371984301140182845464362876685825886692732733046517160047143576123187355087204159803587718788818291049278379951217462295626593878626126832367050814840268777390768118529272575344758431234476510151722184559112130712005198291855296341940029710575701138922354488436500297461664676328063890552090325296149069248084117227748700688336015107943905376319729316744201713127143727878587347701809756565801561579768669988568044489758229319363911547192353061707748891620068371268508120968100692073304529357966157982521836543802456331228625420940824535334653555738221505259695331935401666017438412326237028167294991125141028858881146488361090771936259022441549929752307386863595966847774405987008757848579816819277438918973864913524231714169950955460396622874769087593281075727962799705861162289696511373160554981244677419129677514274237664680768560966155639209629836665178784239170269809756018160589846290929485245432868757265682311623230936496454717706777950954011957266873248988761523744712234009775740713165892786072981758714876194849620332305401859567850898883086357540875315449391195550614678444659740707597824785429029536421844035882562787584789756701036994809844536152908471212884788015829478968270760695040716653110038359896874446010446005666559356893380834746785834338757582518798571936016638284458902466560757764173117645170462473084936393859556219978995456542863734047398905017181070008555080668586641711569032839549471347170489039922594044064798429841319357968160479726428680959731086892446396682546321112534683393456814735169132471631084296337266478796891968881807263123321781868026189505281535370149857644332579003489721598558680177272097856194279141378420329469357704852025746144961988050924441273758729767838144494156360641709274689382724872664782364595198477853623950951294490877075421266857300230591412801147210325010747644537635035289645763020981704264323471520858224674872315849012682183135920525728783884797726294323972925778288146461019836928442340134580978119872615746875606906374312400033005634036023773952384263800722388200227028085234897656287489174899573798670910685707748910922392974889603902228451098255478874875860487197437303385933506668577791164446171764002275556825224194083332241818873795792014833787030234527158589115390834804381149799958905691994048913515046785582481347910996609513443653852880319369394287717450898601051263980206949984332539002446862561381869507073199425729632817818949684246581462890246445907446282155857820108663407181809223591590106009277729266401364866360355109420714897781104464646333706249957017771824021056564960703333578417294642933685538853257675502954706271289964564944656298663032248080475833518471331279348830456638719776791339348655181223893867624433082306724780326466591203973219254821045894966532071206967249726456348962852721781863486225805789958632296734758957670831605681395718450352539427462948254596830443061195904248668332519176085215975999240123117850957102645763410124989572569249626096436917435660709292495436724529923278282924213023172158706037194367130596172626244071075982761939261754486361161309984158551200751003548570141993922622556494506669619209977563603579230915354014154510666694233804128715437490301581008470632844196496982244588659416059419117658636737593252215993271478063866033123116394283317096300081545085077510749834292934366845927658626070105986873302333023039559899802451569971174486461702524834026193901977826705167921511307252978170128879492934587100737838487658334943845725984088503094990379764357163300416421379920324238981581453113235823759283411223962631790754449365594072239872852874344689139781248354273798621968941991281966072158690684836089691778570070211279700494915578539405282050561592002332892372887825976792151079941795212892906853634019811519285993621745341060092957672738077322650326109232078723902180029574967809357418768328212240394821916503136438103308857894807176569829862091054667105303373261058165460593725093197091892315372340192054872281524855000322592842138816407533546351339532344618707396259462963566342113593734829999948742477278891363545356720754499690555986545983263787990131890417178051172128569591639490756725154472808038771190670356832496387182243727487173622408167700581603654996066128525480036634780570027718918131488840460026451644905438360472872509729064826648965582152571887501872547605509311576123482956957968307497116549891977464738420552969911590082444126907646116694374981472759122083937786170772470177409038596369807035327060955246284797439443709834574378820258840361711794210129768469191474025196017121260621728792220444480676900918161486962426312801872529779958420233281816015384444573385548144003885354679850393928871543536302050529402275538971487172538137039244663571743937397275271255840829735616785149542185523192303264767747372063849804561931710915735509843779115591552627282275873906756436884292750728053820345321216488699889187979451670132856463563767003939890810870258147684926160871569802867126904551947314903591151004772915375721643884372460964094132215369011307507211597489765610811198030954840348401596251419175552896650982070678318311114459491089423268079744280992550361143694684909542163515149184218529419434827276060155325510569538838464193822424686492133754682580932487481165328718918896309030546230650171317539468203207969188160663959093186898918440694262684627548141914178172821515190459404998419294089363866003995925000860149296548334039620159439566482066652600180898585792358432478326332404255387771237905098644838271811134906273674468111371681786211156245246904246565685462937170864132055473270431844886676955792125374243240187516315111933637930502393671111412267285615884324339921722488168630963664045704537646194558161544965718317450825025069066583872148067404323247309768583239291955662801179201584025680919897413999265441194321826879374441950603788682180245759986487740552849571906290025531999627146838375277121247620986592610951012511160824292367600505173865904503644663415918379489896794693303394197089071087348795233231580447268816219857737392307807644962542207069018140461733650375622474279415019640069419822010047675981236090383640353609888946691570855650137754745349390918210875701605806063737629363621107268964025779083146808074141975129481242900939389386972300876535587687758129331887054588633620988911058688477705157164385887737248526473974691368005462141374210529450445180837753151715029655916070984450952363403093726272390278596094224088485916201396586735268017414300969275023070666305421856411256298081554780616111207225735714418583762204192253133819566260788611181582778703342542999922144963218369390107317199065638508745260918447705634273942467387997483199207671212845688010200040109678674373017871232815111422414235433689416763134832255784352712074456436411819359477186016041684273112788897418239451218880898971637518121001985906562474623560445622988757406136739808002251937156264635194555851125594635971132274117477048702036104615028714421692847097048466471053559100582911483023977578624805013957016958371559668943072603510448674394369647176845428844404090073963896720522337306740267699137970069470218660350649607117352259934151950186921129078749355601460882079494712298570553540230334548160700705628047142421906416852436525213939842200980863764798076974606438300690705637060988907325253957066341661298089614740861029135398654691654417617150624009069328136525899277587478506258056210770496262830387681005792881479236447207963533863687694597933024873953984880311778306842653042248751484372831187606255738157502750496080669908037911451861642526286921105341328028799560355917471469658151430447045747152255062849216651603786852169675427332535935043971682738585075284229124639040758611071846163779154066056211140219241437217467899558809725429847443375059811907628902893521389600598039874515891055420498211711242192272077472725352612266846608097615761910262369432747711761378338856723516689488131456507670463961964918803285692259275839291660271810209067101748057641814939556048242036910465958711478698714898947887099699575234817302393142575089102300676955007534128130144384710995654935456150242855919591666406417495336377228538749181690039582260622661239228887062265090291202055444367077426798241309858509736061726575606874853070688153576390265809365160838343661181678463948360959325932876134656323323810175143932361374687693660588281501071519451682770972099980116168731135413967494774028939924437104572244592285452119442162943034090630456357355870888066823679650322490509863926309630759732476995306177306077729476030768984916120600293024960883623146649769318180789486547062505596342806384492098148551691011546911425850168206844789104127544185225485039605647913347168934727948212617656085753826580516489077042766208875469690867484173540543740378586200218848379909879473951260540599700776825190402445218488034378100255159423639284259557985168056217922261636203447128106355976691533554933461525377425634158627299857486509218034776590734878075315036104189957053111029079045554557746202139320270852210007673616155270349327961211977416677308342503530253522316767886091719538592545746945543918737892665461611060665899023717963480577630809034487024550901368278608071456718832619789896466186080888046739359699072657003723619152324264541762980932021760803892387414598104237587917233234842869515800910964046734652199558302408471688828315485178947186895790717141382558693450356207037815077045013572028252696395305774839105182666841902652101591462007372328008271446270828818593885794907056068393078259867533964206488787866624751920410592747562819324421850886386468949436360000283384494875268240697360713463934679626049487069831695263469022637610527161976744298149231872807755845853121740010840103512907710697561405173468942289739940582187878505727672702576015650923514802663352361316243964424407341829019101595048223931560754934464001549413425421266484606344524882820928029776277296810051624092817346590067011759888897828888286054146166880197448677075942469375173415613420248878096382206029662964993941622893085766205213720643052198721185945568075911923899429604432711794762834139135163443670940483610928134720297137920011831801567591287757425757887858678206553462006135230102524797820950852467437446733050747198766247764573212135241728566400027337375843380202766170146849396715737299170466121251354169448205780619930126251018309202482988061198749491883268962296481546819616144890398993452341994472480773805995606715665963005085729649695360795772495777033331267717518956844669235827547336384316691525831626974843169317029072798298282938744146704633728233953040520331420269634888489163207992237906782467739796294221879928962802686075060214186134036515059687257717573782947603038442537079876717973473283238148671361908801945801507066917434772367403645606391404544353271145906601213760513087961536779031628482185342862158033796902769561340439511615747058443744533203924089013788532974706524113858845909841232998862999547649783628752215764161479035533880970165017659565309530941673707837158987985069794654828695133555095609380181042610471052486567654903906073224647718597374054716998746080981799145069882053530840090123435485402812922005986044467628799107434369746141483342830196043730197672484932673073726367953997846990510650746837698132790473704394639787642690291927327336371060102050866933169627104943277247436885927156360035355058219350880315119005959936528892864780155942518499813352322975389674520130491125784915526795283934266095114162914481998449177799081511219469384707074837422773189255237757693569263913521930989261627140784925737441429398264771864820375793808422841306850146115932024765834838909646597469106340998027642762899031235687960675129116042510435062040739883465814764539125792091427847769792468545001844136999806147095874403176642138729047268970423430754843789660005041041105538332699062848046948173774927985619657386536363524127275591869701562077708055680942871073272925256038561478312021639940365279011914209331382307932460679300378153280563154264013245660263221083761000286048317919054681655168658436018708998153040526782018369345106961552353043823388901366192294083758483782454142151532384046479682295557672738725836999934209069607626504613605998736555257619501973974594013327520455610146680995964039604489103828705685240727871442091258935177352321663110012384583831440687716984324879692173458776156578127380625726814735059224390747816109788128424608000136859866661136314353794804135205577404505766337786013090980691679855971993796335482346650726208947688968004201438348004309262160953563545835397064258626999363251872561851775775235019412228012329311523028453569875365287162184205113673332972754577595981951003334588416880360770459071849346956301557346295561324467090353735518083366788739626500587773279572787206255643882183946323217828741739990605514093955637421630511473227298870163750302996144374000934611505942711247226484890992029598920528252709408888905064173863379206208468343603408012343954893848325109727153218125165616062097441408419613444536171458614578760015629645670845631018936395711371470117769673126312762482244168560069983647907436005758913976059449623517408410088554418621516919734500440480121468232581448038353144372796026813415943667555615423160752751848675293792416185483186252744178277578879713637496777000456613047162189757062069749356517432124348017577080505354423879997601575097991268854307343356177358416227838570594031686211541675185634182435561867334233296193875911176170596760971699204080010141960602467847272563641889456246137563778707111711575456498156221615905491814459097639876200874291720119195520936491871694045440364688861119959922416168627345781000413876949340279759751857384943729148611066046163172089715765435962399294319251504360861339198468643854552431544073373873885900234743258866898292966969479867665904258549140800862000436330342817291999700039652278951550039007730528448016491271296040206153020644669624963046824521375250875058186262548603819546380824762044503352067253999472563407092755802801617931224270215063622349820119382868751097755084915176642152415637546860687008757501819344781909987735863388403341850065502158692596899084648408179469720456182298624001220451639938191298937234050597765680958693845824262083094123153525787752246003247004239423463847987423079281422501169206275969474930057871824068032320521784027754706760231101732176755765067560426006928582053748870757464158532190370001634832188663224664228459707356083779802014566300708432245328910587025434407786077676743774159185774672359022339667275816141119786711078584832426804260444125323455356111593874072109601127666686125524037519045978999501577480534039405368956928206555582616457666763029310801673263394448452220659273076954677276810147632208453878428514552616034303733282307992864380067696727265248320545502400563745255771742063502348480608914412433440342968816283911833420382565878704449024235897819300405600280843312229329721079706784631955324969206467411925716508319683616208079132696217021990732351791839535075169166638426258614377745604455352633248937062365822516397861707488459471973976176045524522548631163070242205276244763982553683751801218817861951635606836390594704237046186808637173961841431154186592394160532768193540225383802588692833320686197813114341009928124215018097450035460833899768994225452557309464083864035444862300841828524705491234757372910625482269763475004889521195476305526434545196902614507419848590380324343572362677304380398847940581067780069916941008307492770021641052888395049057564465695201664793065624760995639396050810279471131816315433228441179040782808773052715562265285355139268376057811512774565352894600171990807032340842161629478807648080727671982962319697897769960630277577237526801008422676969668833683378494691065331717427153641027480016179906302864579259538021500682821359098509630726996662855027005740402957482675028659257519714927846674188173667756936205967083502452094295541981416463740962203739309058653761743494374289384923467596937666691721003005540542568413360412626243095254854383607554498874268370109860088365182140406961338900486409851780141626436061157639519120726163010087263612484649526966596381813242772858640180140610136778268580094488955474509494201486043176640046994017069862083392050017420209294768586523979929502013372474319850160772322466047028950811787926946262154307580432538579209561461718372144737880022564902357147469109469343238200272030612508333068242018680514067985156480142428656457617675772576333562727996094607942469171095486353552126279523983262521100134259021125780395901838500049370010723035074929963132794297032809029946008559838969270577318690496628805300053170227609913988327496364184570783956794656923235849871191638697560804372179654154777658734723746621012426863559806451032317837667523213869292657901693349972603428813465708854850064668207189793025116795646731416065301124941431447872319752344163460686347378594642854285517497350990444041651473874001695325642234037413562662306691505490398441219278282594655891815735234291477260479901767300184193761189845012772688438026826257167194202952840959790535383094532603558030323184551866659259188732899186532300861103722952815985857626789349295671448682952232802141070959147488193591152722188649773377480888133147748756066968641445324847519122037827403274981201470970206562965594793428562155503896886279492606993580081238903762331768786138495596647109955042694249057660025898939300846430706249621943082620625956802197357814670676768268220003257412306377167534951906026610052943852318380078923758535279231676878431968806942513934269827052626486953931446797113937950680948175973958724964873982447247325246160107754747300753406754126460228785301516922248325615078877306009595269053869971057972360825368268749806602121070912682299110648956321204513087139072298561526600467103994984299812425499676572530088323380143363282023219991744427851139418924054918738351556506684785213315899072931431413702752828043255205825857654853985156812351660139227627051806838288281458983777659953005477013269695309285003410578872592937600870156090340608773032055953242963104726571757358323891664170755259998682391035071458640598045540853513156381956119169811048398454392475617684987005203399994714884502050758471737926908337378948942906858282665641220795689662946840379864547234200294472217411515539954025060762328673376297458370361406246457310459416259468985811030308128772960287241183205041589925734337662107923606134558718253319440743637325659708280381130917123573345215923429525948141339213415225839818628642353684258611148509395495634419440840448799686834649678829012026038660986442627865577602539651785898184664923838611999322149548734226484603763914919392333816272174842300708994767595870533708600872341543847482523201470284624401495569041236532052584447408721291519148569873842450199693708110196645907528410828463300053060493741228036140468259566825637601224150581739989825807312627796441759463362811906015659027152399873842118161302782350391682984096082337486293775957585239815655059073479941493540633822857673102499965673955110309059030291340794341573889834376106898068917019778456028352904488677624990842114687426702165104996114487027400250147760173372214227663197176172879589196373200643512726400145053078701597657499347882504116119287321678980470988568376492587175364217792993238355060521747447816634795214556085242835497241619463177253328481500905030290813127830759497551478874888009862118463105039319642470837897566092781476266119934788948305620740703311363117569702906516728704328977864233069364916356966185125671754637581502844081512935418785716576191817318866506444712629206733146797845708218017906349835832662719339760874815479718144631615470989686213321565418469203970622116334653927419079973311637068894860034080047013464146195090401915968941733860316354001810479470247061132483780490731704463891751831796844556941899442407054743071713868420196420785129925512326337650213810084349772361423910470918041554454817644188249279995869515832779021575776152603193115734117343449839883142343824184144486041950254613694440261018676804019335760453516239970110715527238371714805332924041664950593121757295706290464616082326769047040779799325156282620324143649285938345978518996486113002459539429036828518779716008473557630024659025601432270465692485174473474614469858031261342278272650104425315408866484864357874275624795424984893431502777062745302602937560110966128509978585804816975330867339263894589191559140841780980761131670375937609952107990780044618357991284561348514172696212513520375434186237842263338627679030744798309538533364222354649316742140699890202493108302578121611145711430058645610096745867911185764913579506672329630813127214601657398856190045894399561963312755044725670588499785812203129033592335680577466639474426218613800199363626604631429499304879639938540445528056090219081799429996120498368015507819312425680025667368409672594557694237480241687242392453521996242878792921278719875851281021839633032536925609890889120451319926833012588276947632444262224246369002374379799297459879715391108546657894573543904548175550596052421967350816254880793460178849339330658890332506706798763683337628602532596985508078017137652430842811893749591637466928090425684138429356657692461214176316941430648183548748885083095021832051199609362061065842188649872660170669373846906789789321448062289988971530222546262169447337761641882508612215911337444322562064025747226834661081066706337122861321133864502827596083398848166280058791216637958001797959749407905149766753503403461044968820737714933891094685379181451993301118008946662145747869072218080525055002817865544724842067923931505563298282056517399697644816732185512362296657694073675659039969686660363786829718467220244872354530205566076908674728853970042475153938895884664010479506299849185156448961655317133060104458451941026261382433617351221744130629991900420529569599245729115162299675380722931570237960474958426494516575403378655894700909822869516189115745122115299778337833856433448128113435147833212250653494673272244245479368890973912977998327131123581560486156411069963779713766723913052794956319311359775962952846158066220511074320187576760405979326441824151473013143791302391438611130199558861277601412418029834855903391721418781081095200819240991325627660692125135057380051042781491573222457640730604792974104681665830862705068338781953311684310316039045892790689464474756721765808761496552257553858769986070378548641426043524314432220699536439049659901232015675656649499500110045972603000142102329825387022588370821965683987255116473724631332797105427396300675410900531785081460442901186385935478935394211253855810838625052818638743554484361421604313768006125350531342033309578941267815170816527020643728621092023805189216117003729166302663013668469230105671223539831917394078907868450321119747678387787497884901388023815564096113054517564513639727509106156278247037222151730707355182427062691499939693307312636132091709792499912404022396950514935200994888187049180675976371359374807849149808177694705146458472573328201265309326341940708574118229347997997482320766298703197917638145524605733412798318855786356407322009491801480328293118370887509396735197668276276378119254755952207602980725619916953497246144061552513366455622330369004859272005956426993940945486989269772189836851931537970994746408382237432400220010191104724155268134186587044965954360065664266527349025701250002805315189385004901927616320321151572049379425973786387429047805870896774910140641018614953454891812025649033040912344835117656994517404789705806807392881021970753874740346918398578396727430148198743264445937366840214969262751010913961242365519327010954206809391628255297834269623463926635047783289905584180729232888316449093987901100512209010305797774642500832076541470347045482306111154061122358976167424242470667873428232714859743635902447234403059760999995664811969444364657674310176627614809009679390771039133831743355146633457054271087136067842235422892834259543940423010171180755024224480278983891789513517117961209506345254320646421000026013703488655035351508310798045998364807707854393928333144440680329290342107892044268051149746901938898839947225570448539980971800867608068758231647883359446701161266616275133227473603561279045017541376739094741228159919399218354202117980454428405996492281386702641159961092105378047888289529112794426515997074852931407565702540901071908759011771935438066786292251496864725346834501551693426779382293651617820015580965704960494168928268094217973571468835401598488011154265345933667637301303434928895348137743175843898615741035124460114497622876476579740924084280507759351984202030563828877598004554154696038837608707770351663669642596307251058507290150601040726521235614024658581398878577428538855231665954670691722187788333790002530987852357050636011480564099689991066756173964062136435177924310894247261963516355242049559052679418935755589440759883660680343622492683033220632633613714339142232907082386978035761811105596524406559151191299549358817597645486168434125311642022410067911679805494638073784044176721299093117101807723561444313334714464337390777095059292765215667474227351628193432827596943664328463881246249522808828704157383527377111481329167825315826078351153275986445983395486998944137728630940483179089439784276291112799858910613310269345917720539014261583334415942279529370549211854240148598185239260131930538154211606899088096748761939846030356933195581894646050010951132837223680398139768242114173440290386562847768803013226363980743781031883425923521703763654651803068791809286597671999419627647534279410222600615468081288832498851356397846808562902261184834536039439422006428069832741130308787676370261764242615570518996134232996109272310008288080871499658894208930605715490398974529647122029613055489889229796582354816689591238608247560622513966720861225317687956207080530382191928718070608538148572837657937956394981568128381637237630602764866658127831563125280240727713972081034790971182257719123076973935176996632148603003872320733771148994842288213300144214619860372360577993420008198418006103323388491858022908611633416884455674388023928937946931643409811101438323928662530153470567760370966745448662903611112057806391658370721921032719943824505638133723301487917314147054416519295250327873695118175151999802556721213553375497551031004364705298909562023959030528331249366445719316499398553523213614953246226769462276620793059924283085607055501148693610531859182926753742950984776717194092747230401664212638238013496939928896904386047064454226512320106806083083905447778462878329629860145247373569166085482931325692083206898723454897441179585417387493802635346587401441424955426376270754485413657982496151076917339463070610934830510663176143403491706702373023888691503799955840306885229796348169411130821272839007307810270847418266965868755937628522293449899609711451446323163150226097541152151373908579903975584545301845414378002740516789213765103716535504633380138193140002109348360178272797804715349638310546544089317567785112489233795727041309043640423906963663920592823228406511306007603788834934448011075883257994367806541078793250520047651153431315839846296991532158134669619099533529746018914117274837797901773049382499454130485957464639383458649695651278286420333286057971301403368288516576626366536998327542604267264334905553506419400063349910843009894092949554254324301865128522800362733294298303634180442410691883413310055504929081675878073960759966923580098680339643195273819799309659386208800617884701246291461512578176148892137736362924923135959883201262392143609413494649012170646206171074222920332733160622125751600203719052840465800383788874428366989726395955897844929507100521926454545251884452257656003626586539575087587986391343820476822634256250788164174769917496167095226087795905526340132481781341978571315029543875219609492460768251409611016055555203650149380713636715695764167150586770503313901095767301780653586609867122918895946106551447303502847449674533706590113045274854007496032232456134612175305815543633638787274523441195156790247582460087157505307424261870835720328685487670071825977090934208749635656016197754483724012892328145363222807332759162993052383423863273273125628762450209493905198182285847787155423862706458532327667925679593093711064531675604529874694565526939923151873341409232292818980814391659204158132161146829565386131677695494136805721089394797368346137800474677315948581932815480171039378451148636914903946352128129244201087484830354454577647794695961876712839558492868043327644776205805862344168033274851507672824381513258136066977124591365474513952821596189757143527932259790562548404215672163681046503226756292685391670521030671271357588462699153721033336921135861716815563486079151854075039241171574500494163104966174561435847459691152858805195343653263472619384004019462943285177675074870396216166835034055489362169049683624527522876936917541875169250258684952479537779310230523543581604100878593220719012753654742648220640135905507240607072345633673608574905781646965559279474466222812502526846710034444722765844898892521632803740391672890478444047954323723368137585620864954087561260173060089132811699126165463022775211137714416231135414426679906393566883738556879255158812283124121158597182623589920723348626269028966845670747828124187993814097942562499540516829273290445162750796493521283415423133693619586221923375250919641995897258175295161362315574815945863918244566808973647210775435008480076436581945356774879581865479547844527007196326537074181471381470563296456186607859288773181700918716316066444226027210865583906672526359350779068042605843981723065542556894216575858661679169823351190605284312475900407090785970026404611107967217266743268809067568014021909560317977274426484551731603161324738681483849361151783426653705500413550740494614336655361524589712637753252126461533615273027137145868194939807185423989658315213563801329781728126545088990258320496731346797956012831272449344109645073966975156895199602249510782828728813731642842650815806254857928256586614555378208027845657086670260435248788353595941909591294732228873023529735518357809849276915808880503277668470067933839667730035099814625125199807209042921136096500090188349258755852380514860028741579552891004950642248914347621201519391511082620660646634721615216580035372186658726256819826525360515791499964162096099330727002735588182365803853854765811015524528477661595123489436271085172604060006424082796859279480545748379774634090745956269573746452127120529793894806944926266994812306496866451836653022464294646300837301283810158191755582472381489662070487061876779493836031714134419457152370928594552022811425344905435019011611518840864192733574046130803307433849140836599207025201244672097923475316038752900796484826387618899635933898618423449847956761973939749737343709642967177998914452157637683045985816603007538271771912123041105019932123198193262743389396706230233353536571244599083581606150391042659133219163895618583722055960905231091159802477318133767450647596501175689236692365725204305575741449857786658376900780627424961159219151344087132834008077778616211084144911953465731998083854847144600630290256420568884176473333010934701385542881530414251972626129188934188098634540678202858184175097352799089883921566722900892168616704708103105453797877264521111209796596902560745235189637463447571837073006392373246643375082012512585686161931958952552964722809195617983454325242692838740755904266409793042113953193172487722751783196837999966094646708952801621993462256982397548891531322512485940249169841446296717337864672836736283023834426210025167016635367042377937384186213482925593059107948857992718910459921500865781194721663813107760442780570057662019941472745520777661411403517734002919532556654956029714327803304562664651723278750695812010256766545407730882226219513863681063799185138676559732427957548814744026114138684808561365497208042558323464322310245975528298608136555889594847647819550732662144849680932575346546004694320327703512877372273718386302474880587505045687144596798175535267565730185452873538524097647715508627204031025201650342373379191857822217394443387060665198810659835931684212545742076594600526586622615132916987293364886301993628420741269114759595729464131339042226320749459554726451339548676235418954546481650180962151033723749758037955510521049614947339845638902009185408086515260204977113909205457430387985823389050943641507892069160931239007839948625897422185556514737809045691422936204517700065358380687749165636919036135134034398460341245645452131888712584103745869412508810960321745162175010539157604899958077047155477881125339233672663608168500632379426811193934103035831342145789768209240891738609718312911567996122393995829740746607062574360230789814200663123998814464299971615892912779381081323186603534744036125615306582599773357688352818746919514581437509664403152641874939132212139910881590444535698108000122378906820729359528931886076778293290862308214525910530939545281729489287594744304250132334982584470776208373317567013226046339707366998454333303695726557634411069627837593538681003306891800536385858148133858206805602780656926254207277984472570513238485098635554569666862259950636758102079750331691558682950419294691330578968960289489816475192091193394801927359665905288389322414737052274061937925766271947547960699982593358005481980527073334116237526812747800204817263632962334599180409518434211538028810734167441561980121662859672789242809216007672181825147556602928365404494814626800566627898932245844934502357821046625135039880139402882154188077854759492609242255782377913797269563604943857216430961546865290552407524030290992148904374447682126834177041419604569718504944647211560125132540990168076377972263357156474662771849832994940952947389439356728828958604006600347515161928395740244663359229135063032922104145415641953511361727045656945671542575280143197227922043519586921641334315845016203572764860155490841532663746071673621138436747381795813908794997855056205062929286485438343842379799054692243519548714281097554125664626406123994910118404272365342142482941191646590134086113140566464779924084512357495108180084031420427367737271755442055704865065636796535364028985675634510166677440522820435025091498742338715501516237964772065560931882061251938010219175278854780904697608184270690314915930374767366446452927766623062185132264939058116082798741213799296525543504014910141370694715337759763669530939580091316344135551007403730229954575810409998206935162330904802612912795547411133062777753573270635846196886826710042595771274219565400251506036385919316185514663348718383867526251175531234350283251545811031363630957355414494760571311114801506828409620152050290193626934392009085131658336800837889576452794228547697702856701402214977940224312914233203080465417355455540551371066376940981885326648793855731469530127048659684758515222171394279305431817838102741445351746287561014113965622402872416497573995922307745570098688727032851514644705387651975281387695604052187044802102209651847929296793181724059657055290135267860201322146897838904173987498826042340887816116790103389829416934320316978723710561824923932562922484477709894577021722793722098504132816289460935947594307307543978416728558483610127645010607221414093392579999553131804718997723175968737243868377643451796084795280082860805864093551608246248084260072790561335429049018717581175817502394478334781783762742651254412092488052577878640626841592754395195253538344418262837925404316249842204828267723820913460303560865192041514177894699776803777483270583959094498696211596360235076277981337986527141785197115283207811936679613972952911814134930464796932683544051008326422462809239610221822234416583006831081717748320901226835775858798498148060825722478757314577461196590061595889919607454041908180971202356478540739913865450438596532178193817762548390768272099384727141007719667354045376593737614233532128815118549943753115409693912980810643872148934284107833060526944647793120761696254298734052596577032876679532379764221584309807703420139651768618686040720571312890414814644969406515382345214414607593053728512475180560070826690298352370805288617434744247248823469571816671767533895312788746864486574332764484147254449873903892474541779555586981202147740310614158255922115657165551023714841795523892901476199125234579182364730292208146703920362145014007351086556151901842974436474376566676514291321208301079564454174041805729370272790515486336810880381386976914301804136082054356369719823966041634422530281755605128021328484380815376499779495342159982117139414956301154886544123231691495194284643735979514547556555115291584965924546939234809518524989804759163046911066463037787917639355833116988657671248864264404558390181547954005309093624106261802701280616900916578365453590634791761332662127305903770272664728886174260079888695641180768338393981312089392891108403948415097994276156435208911799893200431804205533722018570078488170145821491183646354124415811536184246050467502414794885320875407173486883068667598614437622409320632953488333565424437600380141422380790220097060000785674873737145684239624098108968633911580081453121769872945530697929166004568223171965230191899572215682841097328989957851319010755337098530097092396354175698703793510820354666834556691809570322929497396018711660531649521486539063123332061887848412533441161455506758708450930915360743195183893388518627073003382421776420180748232105969405870765420871628888118788009000275121630523736598867420864922089622094071012773306685122558190326589239810736588757712793848404754801459545260293914895335157658747119493084213000023973591787519343629152690840566961438727326191343526335000172296082551159970059852993403912210026731831305561884244221170226229517358446831828310400228975456297525772724494895985599849879146298690786190921402605957721585833878853015915881501451549043626523513667325712705518296531781110896039376203604263271791426552837232481986770831114363542724183359261451899355079175879448402658927402759492279329474843885292737503717042952902057950851480244921916673215041713631613960529859702046842877901179104027239890301765977197823521554906021537432723663536162336781895890722316588834355241756792363439337003792071029679461328775982920857245330525949431803245167082377438368642566362675911518484463066767436344058967595975385205689204080242702676468892862781255538766771274430402653636914008456038528644067982633258350200187094531077119270968570262633576924551898749416052425452674629790735480474895477806944087668661592107891951888381989132220116220340087179556400297954271782507964515494396135804618616580414422233687424039358406153249345387163164333886328983767859804082563675443112728109856610166011937776334850269647156879542813978098729888522241494185877777048610551142963673118764230646322135943387092319865195212672028289325432900575748888624206437890388476729831179013655966094500571731640891731376881875512664121740143352826128903768296883060571464145060793685799422183811000665273158754476361021280492201723479159592979241197313760493559831259014260071799928855934050379534676349400026942183885206747287629408079001819622140244861282525115398345047510231726067058182084602499956300652909789776571325809227954818740068739229726754449922908996543096575755818723440741139929711869680458361288901127373829548260005421162331054580677540931239668176514305747003711312991603629696195737377555414982981895910462685785898537484391915368022863783375491614356293897074802046792647528111602217210709832443907044891119569210630687511511691577676187996077490951224603521964201118631095130905986367630171028711051517276750963125493407292422818322274178488407462558531792865443647105908593726795800496171524696738822473088387050093582467580993211192499679006321343009834241057633602001943665023906504861498658154743839671355211532978386367105567134753644655143411509723053099122209167970660904266617758773320793529998327595590523379892284585152640409086254001277705042476048185973812724143973045924062978917211093251294234878474481861237331613908343234056709873605345765369781276021679880794994616130232855962752230262893645464188198488154130746238124529825996574650522857612051103517689659726600470149867829834624889375375971088212744863086800993520088638374139943100955211981986930082109198587170685293317738749100838135477163613402691547528463964624005077491740394897335531804958693299401662553274131117839612109980386600091723112239773112977331185472523448577038192523202698259078660980501149040932650642149936849920014213687408608699793763910727614175164005938765038837914289429024063978425069464242421988300801450062399638528351043892035203374421470144484281374875348896095300262427366379863222763877678501631458565442875749364903254203432003951556149060143261820911088518932473501781776409434043659006709391521142675588495332194986583380265586672489876318158790171923554067119017233684138081607552957788093560667935083477270162408498645353329413662162928920511012019747744085055881061715721372469108435579571590093117338424408101575026550097318333543699169502780239310100010519540764484206825254058673091762574832758767176141731454143987708684458006647173242119860151860374169939785429137622632997326692869590535136037326520820997755861593610106707012042245474582973126989513471602482845431541435396216186031335197185713893244329691640448964974317292326920699679157148066836841612554830366990633772556709564711325568869528492466851542275018509111404723224779054027395799044542652507761035846716863989344390444643056640193705271511914962218874595526215171394347757566901716221948260863311771418883118205148554239941402498732179461624474256853382566018013444815095611402163937432438981052691369732055333671110565299115021755502508747007765838915693407512428609983763956425614312128684192482405437221011931218814007755164793601262712688359093653237516797361774449199792512197825017220719440338102318922411535788120891017350964726338561863438446770920275685640637795260829693873681823429864446671669660465037811565064464274464555208060170171749013159576654978618044828035173781720202313009740285021007998043757935601296898005784632621233773613881922246245002354135370352783659639981179919208627682193286189467397659768218032931207638077693133215415184265586927600827203936824318846835056450778053953702697851224549776647027590317973869562630230151993015279681779408999453145804820635792615548172226713758279814251291201541730788089911653183087642316957648106002267355587224583456673357955530462181929082532524445599637314172785856235703094322829617473530475622681002048918134251467278642644469191968174599008243207076566342063560542078409831528433268108161128077236857277066423213809374129585787810106043011235399789128939561791141243131391135780900973272090100809312632073350950301480394016115166176193157368447822217691394224979712479656399981911303463320959549263162344504098388705295154995148074972125117857902174938551964472131411510922967700527305452061103757097754699818143219058770810336504455898733847167684064511904442665603752848111149506430358158845366920493142214762945566099505204698353271098585977463373144484433873666776315815571991613986387225670353155990179963069864753273560518069445291339651815851591622315201980582804186705173152746286167802038564266231448810969045181364784940650636035963875997523087301978473183062383509039733151026330858688559710322742269430179938352788806581747924060910039251235777555866152138276578959331744567179323735081805855846333602781641088362375821055185334184280600617787360180346514360956149070704251877688898146255341380324695986979724379172223876873090946954699255367488446682861905745984367801777881442243647868323870787689210552997478089353796718649850623634737711507499874971063710566211766068352137023054300356781368494004927983061393852186864085500710543148722428468792811487404590079639923656520974962667085569339457262254146736447662878752107590074050204981077425313257576861376705364137647654035696929994113354851482839557548366172288355764808302187386172030324570674815194565668905753609713678495202208715886698301829505815524761302147259091222547329697559868827964611786185026240650170264880051243585513936698228987588552570575271770551132952692464198329753344702466737984796026296693858734925303159806903764274739552082983640114874300189385618906155511184268230088074509054418508366533169561820077795779786300318302860018420390700939731623963604953554507910261858405248077390577775161759553763921649925422437637132951437304361638168164647015236937418792002125596044423115519305459491205287158547139378408122044452861757081568103671444707745954245027831702061486070908779502482450042352994057171201330588518438427562332835423198707566991399480637390230260705443817156418644639413684872012841857093541133206248561542927204611979391530061865230762360231673654656574704693775033023976932773886876569359254755157057570297141769558773877292326943773001325099656101439530576844217593785389177312287485833730680575670817317596610557951349980019842597734981024085160862048663066855170589450792839827527483830327789302765772429045983163433687570117687165864162259603702536108290426600796354241822246908954832992874472969968593575661803289695167335623474988329974279915206614463870269435380471444589552998877760043925980587683943903536744536239597544467553929512799685589122945033355826753310581398877256009047752639339921193066921517284201164103701549095393829266797743050080085682261923480385881691780467156669574218358619799161674853119044231545662684454837736870081997295818739281486484541573038177347164527698370111614525066831822292635602984839071627071762080659072536764879446577095073960219878558522519096351217929876455037074945267780148312184577920119245205575863348231885661518627849088217357695589718651723866697076641197098566641425987698945610645835727519996970000154394806522408209081384386945929618289427586154213230340577245518670685973117425261925050286011836427107323187026812760704938525587511194917835059712076694367823994280138086864300966834220665296970569894145355583394602816631918525460395070876661671116222944211636290778268905917519677482701901706274139012830580741913349829117948766060035071858689087828700583783753393479673352311504633585107385688442310447534762656869963387679798887542006054164934446946277524807287955025254219488664908274038213783382046900147568674302423108633155625963882826658077552838049974752210658945999903830152625203283216446173518773625989371314120860229833682854653889308208643873362451813493125793496512092961634771419269735411969360057683253907470073559418386798740447186318830957686059507518903557618278357856120466269511899250556506095080460710549894805129876019027627804365375370216085708312340590432708283218768417489924623195420219395742855756273288149687917518497854365923650843380117131469103554696867496787552849926436271473928198365990499249628170512016135482674479214133463254617551315961406418887612017740638481463212400478396912261415938080460721671934345931434478053720226892801505893171568346542301018920171486276603082200140845321488606766706209750359410321919538974940600555974808388636156944741649809649792389751986120536227110193872869009658236774188098222053656080427924800509128247937399180720891285147287328503208219624224895183071890914899155951798914367849325921936408499041277370476625111734271149056412445765892204343678729008823472884527080124254953479575828094125567215173000585700092954681271265612375564160386907840188293469627460863940334947578867591390291433051033720029520991243243471415028229216929541650148755845662993199016891127058436078981309588892122193693839506992590252876432951023582172299453500761100579668466764316086414576248172014181998215104047135439528431053051820181824068808565126929357186154413908821139228196782407334699520834737054177718839220609814854324340459881610863869867912500929383538741910158111037032154074670054233413060484450723395045354875021223044670378339390109161389509406442913098275591916956992603567411182625719368784420161338165082945515278900455341583132883671147011153343080824756656448422458892962700805551713984974409748289153335903680396636434887506701016845950099513887300406977753433834938726150960766319824263686749782115186231535359698133886757569684439251819351395997953671879378443935234755881181721915868685882000659514612669080630248779831741336813266498897088469601993042218569480509847389701044259744997954345247149172532361292774629036758553294523374762087049638563659994521810303526809174527011787107865400954825319044072868572488377562915201711471721451233529185583139200394365077243962758331459302319689368728116099143658192178497434038375691486595774983873048220651321605856986958996027841018017885362957512826530488531861841269867522717864319845568476592969990124982443413308292478992091223460807834827662844035981668369572060261331963888366384754176760522319453676582244458339197707610027113287019194228341031199351411291192516925308079428610451713443522028624543570635319028528647318907478447133580625835013944116214573759011622835891718814790804814536266131264236697011152095924170597376280453343491817672187455236067813082016886013214853782551593700500416310192963586129982575264505461071598718189553215812042726454252727764945914104828925297370120761498009671894617746254353808234804916471936467714664311215193016473036424972871041607294469624530242464571522681422323986479679439408275712212443283146965388524662684727843637628641029240213998811493418783117579630064447317001019861942116400189173916119549694286898504497663497613329452354432287645553879519220965066227418691949566024223415610107848982632234356613975061518981675779336749079382222087157681369238000828563961788275950580021681369514893391545214408870637826982278610389881194218756416493200641017519785099379695413104368272653255993316346360181139413707096980407880228380948148932719444329329480626104761738158980373449024265768935317865924802991751908034688079243683186752613808853925968913145697732266257409755102750902488286931477284732333107992135244700714764797922688295523511355287696689466831556790290777229462461714649367169403651824932170280462580131712791294877437329248566300128601760780594026239175488849552418969417604520040600902078515041927549807368482603658004277887104943616396162083179317613735093657711233579882865784296478041265985065398642396031172482813991255570559710100004647942900359699055639758435565596333996078064837710865422698982466102925519189172590208238514189371925835928342732121597679177180100919647950729296898704920703864742663013215745931311509009234916214319665625669468715068076358042551483667386017763944304151478045289035809976598645487101520683295217271043969110083913494501290453306020571042312602608125587006184115557041197971659279672460838482963945385961626911267568711404336044534706393932505544312679537252624406741215984135800922724383993423504108392091619599363705438399149744548951707878856125785951109759752347764438537169866163801428680352344121470025638266341529099162029078403805479229098424860521357339069521396903765744788947261195931612038508441363619914278144500077849039837876625737729068317407516007610921299373809310994893528213341490036988263184287617692167752070719145010593951120873645536603011178740652405950662877138722212682803787971102736378358440720877053779939538360990984612334317875585240142463300379857754670683049609471744074840488997445402852925034167437581778258533270644642985591781630336750060543266101773494907557666231076783220868733294957391548300910391249998118384460914683357783311948747639847309670269363041771621446603670241530422960042187595501428098577404585125681448406731421668573729470396658138910433337038916007094635417232939746620375509634883560881308434919361428019641528533457518592306090632157705586022267968100072102875134998274433576311328427590318287722525114464748915255502977988336303336617818608162152545448969587624511516518290549183936909347398114043044445357452499581793293745528976643917107561667959995886248553335310257180697219989857545421889014570197222919769387227772448420172316065320089752379141024012952668989864055144878283219017986681497916458295185743242942820657583021998617391280801214662293128005433450215918233143096727653846104939991581022534077377968294078747538870632709623905951662122933061846831075475907590405788867291371384640694313531782338006347592816617664653208267473680073715829449416610690063913327895872973465741579855089408250823798638355209971589280474352929572649768858597572534070619787296522082665143436813332732273885250128134881845953133402174895059396547069331777421986548835132748805940985612510724879051993516181465133292754088504337958834335711056372499456889719370092639543077007007529203936727522906157442785552509409986827864064931362276060256224823982780536685955431264656638930371053512600278796756523315861846452113902338013066813668767548851413195774996434183232536620075106436778312007343813381491226257310777381524631035681999676516835882579417188203689181526447758593461630905775343924554752722735560505035304549237353125986242442811693311549419835761826234106024345878989285650653243775035591811429101608958149681131198772541866425000806189335839961871825918153646519563412679832413703984724654781076045013545779954056788994317196233090683329019775993296714631843375059768322601881955509563366731548019843353176406318512027045105230440496133117130156812433545452013614121879041740189430472778672049840985426971935624618510587195938504458172821816820969494208139010460780515498371729112719202985119164697309289633875495538075522368033734739875107166727273358709268209851135491335820706317507287804142633290521878017177374896294637872103750631331915037549100417352039497607588852921584196812849487968505346452858026922495081925123182100580198314723020250660040474009623964716633562305427551167355166356298573281530139501339984953108966972509885797659967808447614886975223063491495384067776625249585892315424961022133876040578720891449383139371557286349274725278727819378580307866286465956230025322586094290706273305393139580621388965541571027421256900688198476314036629835883784800314905458169872030323034589860851553520901658028869174424912388205461091398133408436686103618351956504103916158679711537737866712103419477088466942368807618826839173979470532664184370219193838450807038137075843131080083853393330889662017683654765364745016855353676229344180812461962936575262726571316720284781341909144149615397720089318694101779848847012642669180216713999000101430728846153566689687747341840608462888771460392472808235230710238493967856488418365006247705068201653727008174658168546709814531048917215748174655143321239331879609499892716014451498097345074992585330382831536578191444185690844601000475878085623522529565844555227502270751686951355787810043321051555178058227553263343370429242496243116461546909725193639920434566059514132514149565499647213607634529854917281799471352178360388514628427743641361938125520239854477912605301909555999752074451848322723714463690980787567423021173703872840009854843411371971079543752006999164352145240320371525859159253055096418905516745263635565854984959804928994737519438472946597119451838652389784619722869598509728005502272283881211880307722273632351775953439224484402187034210916905245581930304519884957079837016833009533855173935511522409700534565998721049325826873213832010227411915520895931883361758085650717811057508582535634399067600578784927996856175776800446852651155824154727796922405481270046377343988414607625989251207485409520211375573520086608791782920110033508081470954874030760126855720774861476671786812461477029710121629908630545314929017271855894101074518641687280905181598857575108379563849413747043150724859381525263173844628856687213676312726160501680115531193471179131008369523323777712737655934460005544355483999274341685922483890647221826003103694035088148948103706512840854199579286400210926262934349369525288047780824885291602805684925994689070368313510690602612510556468687550530915229185957889539088070048471056033351317474538196706019930799985739476364068889903862913943517322934367562923772150359464354148212138303244862208299693306283476616312193113325965424037885942033399581567907142085737992153415314120225112212168736832974093776070679809919416761359320148286152188785971310426493942059675094941951113006665026063669231928194604273138016299741697290969742398974591746825583953342469125906739012721580466015007318812916978674879309893680136705939817644142157271791459441737307105393478523702532271428464316743640468659308181036434320467223586601896549668495518157029186632192542786151614704726039325267868423996681050289202329614682816847847192049991191697459076663906309047390691276042363849005062300680506712902516801740718029954251562848267058136614002112865630868107426079653345012383224098950490446321903701240091622311487667696837991649262206825579043757530091122822563098134896040140780015012578000801844649368142864228952037257585733812224315178857642621455915764581533414049180325470993820332901425070408928132262506226202531079091820015227330709078856069269533339679622657210549444584953683944044702657219850110349684587975732496632705555355425458254362504444942266902178445783113357166620880220213974771030718356627355795562101718453715470103563792429102523906424467945733853386633697356727263012712227911744809335945062987708607237944742045940310867241676780726526487325179339818544172971683885977236052022362918228111586635810346370071699455705326634565645351037434720198787791267609193227277003795499212592060094487682773640777270149429427324300324814066662317694289923627352392758215396475239110722692785732793179841777501026269538817253023945998485953625522843967616136864085419209335069454134760483124639008493527806469165278915184218065004351313675534411925502376820495562324359954535797887187872576058907920010043358813724802152804883308436967797496311178639618574701206562915703991589448533555063141034133736982015588318357490589114114986520067057065775471728241262835164606896245805029618467962071466610341522795752144648436068026356114788892232061777398320830566756332900903148019068815274532468414073665434889273023849235782529461134764160035457363465972590742291569704075233867809823895595460079094047512514642359679505582350594565993914896639871147138285477811486034167928279021720635294509499952248625215743541993575626954889634442881131988776641848401813722695877721105639971597177794527478119018694070185700086934187866488612693707003011748033423811342413074735314409806312131884935102803773532050996417950565111254592743713415249543945329130070526081410906154746247622539119135214635803806029121078852778031879886534371511561344177150789507077989079480310935267435073346248946607400956438909210164042331377413247952911082837483854332577071288655333481877875771413492117341944743911840004447792819376126916425185733016676804397234339178865646166161555665133421173265764254091480788526091046709178056239300777842503874813541225333993733540256840183660737766915844922441658785192206781593516302783431905056174131294217199186077353965174376907296382517562106341427316332443238185752392204372691704446258998244757101697356058218062887230705992544897786410393746336548968052359742956429711844606716764976827029265146719596588884540684693344075813753618376040091792201777481038448928877957300868459069798553137951408200580937874519913070401027943632967183418989147275914807433765649124649572191411052510375487992440176156059898167440955064358843881536598512947193326379716477679009138661976707205203270511712890297399719420142614795463043143714203722223167444569372351211478178286515448513998615559914163751155179308676839052645304166794501650379922750652104017431046961023992562808064685840901930539842577597488250636340625561485926922077609646776212370582074033802314731830799827715398446185774131912739741205594469290900903028557852539601621347744247315554066214145212875340366292079812799999527117116998217731372879111345670318175911688988776626695257808082681199854129381814441273551656206910923867612315108652645811096777022813158098064057691485587175566903669262536718245132011638885356477963968427656006035821552095151165718528048612649999423090959032935731634908421741243095718932150163371703101973575889826370153224338302683210403481603747042569572906872706059699366209699745762682482515357492496683165437191430928673825807713108682177736794529852191509435240279995504317586099326363272958692888225749264444798293982691569550151506431024924708260401910363749168172060243951860820431667515495527932321653280967794630173454698219576621604827101028496703574031594946140857347846911972557304755255123327525538569856607195332134971898996604175619059644788383865438406189336418692340369208992365940957542541553021194364670083249307236299852665767877003927892394495265072326218668503157322053374180906437863484170931939788773775503110162852523436957222215216502416255752877885161444176639052265998094020142821474024712590200230939230858828879854756869581910557359722124834396203042454416796873944113509028413251715539428819706344338305589190706886325166431315178170466161390863549389449134997416074587125673562322304549193341673520916752429088795707320935424035633355222761217717674338464811369555501259942816091675882640441768289518683565079106364262242519991551929722569711613386794836255300429959830819938901392031365452723351064199551217253994035270619696327991350239444183604928498967177745500831221586439390918899378973740145423386175749784372246621563437579229542838009297790902832638728684269035238555062684216651925723176532884066659478702912334425830343125402140408735243683148823434333811713464634262192305012262760742849735000028674171139796761816211581134672647420625204036126242459490099707321788986171189113162434264722975388977502647755386317248811796595213368192247385715758788108609652696937043404612916478369223113957914628625241599081687676829183376859056845816552157057599078771476196709895540432644820440891278771655498074124235080105083879396122880445861244433832841794735441006500104185675453608919366908957021051910350255720153906068317301333820942208847748398884670840928374892602212748535111624064774625702124734621373170819241278524991457470499854331117977922818946201562109119284679171145847416399642382240749032954422351695133856952637939589996221716144278684578386722434965088920995034275441872121534583827291691461924224724251588693194217191235478516681525878368821378978423367451697417798011073002696335538903084940399073963701687666854617794407706332451476208062587765442499317844005754802327913610808683979083572751125040526311689220321561354163459686334035828866992920408587417914058184107367356810027395421829910739507720992815409133033093315193959733701007127851637202106792917849554283461237372905092999662326740144232736701359899173018274323688090514772712703406029603758745582235299620845063362938502535754980137669302044755456912899427345713073834233120977633556783762242468082499020555311606847915862898497317683617055580525234717140492744750824855502224973251643941809333625094563183899172605915928406890834973980384550087623895702594320764522976933782967256879271003751116065384822739216011516585570609260895829823585916427921872521206337061455068139274404163585900319031127978613631146592709448442041657233133850017624438676318816041882259997132960824701944964518374231844223295433132621938618749832138502238413665811998085330715558634027750078824059952817908292855655582529708438540078750565804642561803975729754498657222877737263586820469260336650812218825270967296967821628429265702135450531298186814613569198912640445150729017096001121517930067477012360370491576039601421754554674010418758740026408905665622297625954406738940602161026263521579864416278401044233321861647997525469297790195640947743153751352175089976192459426536146782591147499114921625862495060579594799648936327959675116913473788575609289565108423022107052444423285689527615379335675367227366447362595619180036984650184599515862161015077473885393899607710140040377322128627977767246652516987383703649705391275477305579724704925494615715476862543604840691234502157507006332438952168440812810520187947098038377006714774939501706309958508845184411065187807920699008035094475242811023624198735309348802204026584522871055785172165699905117280888443747721577513420808447038408000209095797222326035958707312545831835464983765011722680443766712915388309442129751435028577771256999801436595981443800660715598523249430266649159279976443448059324900462342490676411705450826000950946671973312416477618881335665165573186501903755983563206134251850416732070155041933611623254452800576869117484054472511647710160630507533589881984981308140575211406120418192192626774034444004736526642763008221972600222537979234433399582071175410438768815082173826332221180336675108413752538324997486341560771047851999562915147038259558150911116040107778546999552436625218794698440912638476176292373194470900170995601055954974665653906801123508491610069185630334978541518743755068339067677927848455858437573489762542165269388320243839291201469657858335667138215052964518824680092065338517288299190909609525597107222680289891417970897157632049444037099381459298315152601580166430293420960453750571745375183529733761110574130161488095418448315622845946191240151151218898699909724045550255238783644123443123766395548225924357560803102338634641096107539018507064442208104695041423638725704542846346350899665310194604986449465024408455264361161777526209443509872238947016881388614328952438073032510870575889954872633533936042801242729944047549343064336065592780246832430625163223335714791307001582412248640049545003785038142099428767267340473471591217124526803016076436316519382538073481807004284245884889449842182999031301072809892091014522474373344455486133643189878434728433622929629639747139929531624185472593282931575408573325316692998829361612404538703469092281572878623094312563361460974675350654793169460668651101166663721854019900172939327060200634225835409052852719164392884511276587977680950407236239919930740939131426842784945105758126643133570297676801507396878702588646290458752881029333194723080549255593413839286189790160713251224225769762542744680435607943831410915121724630099470277191165218605247624837821992278163841031031048473337437020664181139109776015936818818082103776724407432592712961849478460628518061773851355991889417764693523845381846946167075137914624609795892779801187223722526160781680547660723539162493106639382969291577585845288785387306307418960317986912418277483482275747326112596014914438806189409486964605175277197471761140649709620246425742484137471786390059317953102284461306014511104836581356050658438103917047460873189586386466237731919694609155247703184102554401868527482417145692761237566777038997945364569917675523465249496156738052380491322829585174259705586105604947375910095544594805289533982555292894358994072920324216606947705082329272303799393690476836917294884796551107246427844266699332777865319736222261671170114266716291566703972359137228358441004299274087723342037648608612556354331152689718763166117200329041268120295416462233338373023485474588723503558084220539337246519868859913342168433720258508508972614167176729324018974548123350740932744356154706200642102536452395941576482488778122549029275213753424218889052148362811902840995952029489991627787920670561595937365442013407076558571343535562918846035190343660823144009624885109501124988150534077461164845262912809159084550045419384528369260431915617814937447187665776189642204318716594753645419738748238950601368872390393127390445893853259105583069427553066019780976012631709363560388975332790801866003748521074808803666027889219830160437293279161270433313084165079118687350464324541211146452363412538009820236425597136076539998993975097784884942681998561818878053144042672318518983534946608459412107184048641565267681729479763523175236382798502825519907912724203964527854835463329136216059069128418446711456620936144107450431602742578122775612647927953457683941380572601243449889274031221835674717115043757614627530604386629913483255832169353448059345013259279267320430380327250772574379703183790096967607866898835216585767400147703292413217143001979632943502197353407784148754226907619449363788267498365927953025669100700570774223169288093270400050122888010813941685226596104354753615736128810715024484345158023560593683889620212932326409409627370450131647438927008581017922661508941854586082039706652469350071849200099482194848076198790731020977821126233639013854247050654676790360656631618258924972517429110869184428133459534430701501735146344783233296662193135492906675761942770447598437648040092959108675422550074852529753083962097658604318522540474252888584069994444563986868863874640586285568407850234451284213405285737558457925044716502805063543287351239790827842490264754450269941797565447588892941811538505208851583118505926587745715597991141359231684311345633025286228775774781024261412530364863850384207815180218989399126397032719335584346767426279697663055545432279381460209027750545333758054631103790984015275207037634952949806788459486551578753793227925997838125160266511714257101156442225649612284448005598883443903610173438625525033586735362700976057420275084324343206392701970585019286715278423756860982280081831562612713351576009174715554318154458298627617612758178264441682840774085854694648649887020958478717890553664307058727554474753281946847096108926931553755835727417082774040459238043311292184531155557520964436650737015381582655990265073927397398528175322771944332867902472035573236814788444916585294895480431646075538452417391195078534266039568217182773126309585441948960641264877685289116345635424657929963016653519413825747710601038805363558013376199213025191255368168377364945418296791960112688378716452848996316763576723394817866854258471069671853634080768763241144358006372894636912762400736365406830603756742778313977118030599240408993064918295059609414018869523704610331397977575292935073658820707643103781180084134275006513650772415851265688182577810188520700369650089853553584050003700978855398467515078950064014875471637214561014157521720971991891226347799995328311444141904839685919136207623252500019813767062308876745385646119496456815363380452284205338623375458571362191537780230213755774606307162723259547135486323953652199233163174358519266525983075352445421600778331576064931222472528582514949647829534065263974113477749947934462653984447483206953245121845467162830872187422866707272330869138002012112258356585060611832463679795033738209002070307569032281919161794715987895903496933526995875563700148660158190522127225536751469629565268461713686991784861606973471360417470680946452229772727833401704625602755279093529088980614184734133589413979174447094288940984365149997652062087502228494888084450206967756890463436669108631828225883257615907262479112491506906086325436909201848652849480708436493901417285575545195520321074620861848592857345879611405969374804104521309689863665413523370890896003110068192010148202409908114169684868126436969803769582128324889141227214296394430778750259463762444093958386032241087195386327471232923016496473946606833587078402349441432042745408067080664159793715845959199327870052186160028095379254817842618747980870405714865640521112315171722189405665303578674896941361214697390688173723071855204674743533599215225432130565976249501890238862017561203408387349696437085167198012803482475797954678854333839874340163543653098501905740869721008076630922603931021894134200843605868799270191952975720610362619224046554147448671204940327741824197729198166765487662034445588530249078381318829742085189579301211591348290803507065734626937673472533863509674248191209838773641922745112593046950578457561185315968972029291478493067254365398653352801504602898499751176669091548124173654542746904093776685972116581592300053259235466174772930055162819311912338576973087134785822572758833275562344108169061987262685385130485966959960656280853271246805996400830634113550985761333752845742619098839093174978663966318723585813025376897868886895667973018455512136309916307362268001225873228989738650432048470966026573556399061793768374794574651805028893591109723775256110754717297799925390497312179014254138271076050057179597577385542582547720797498914819669377259361377229941711275806334355229225878238007288724999892260492269821655842845244161293915156652824464849334719672134755216121955142728111100605531085116444600826772790654274659594168979212425946645156703241495269888273512746594482130982696819899273289097363738685640065964912442398552767675137311868527365896624959802023064321846088689094173368917353292507663216392659318543434324430628156203465506103092070639215370016266060212476512491990331224408664209998911613231578795434371861727439943126620540323238615664612873257155608489465048798914890172875901033395731543061944458786079676215070574336994323997959592635001249524035286830247798518579965188256911857715147602405371256835424323575451562369982253430124630764765716512834877755328004658366617483509832213937953998450630169886169456713094885605556743411712304438579056187314643987708274220395102294418156623621890609397606991145633581034660686619796260500016283827920345919676148819156090666899374924754375086096594245272301273628295611446162231980893683060332838859969494598066861470690004078494613126138154686748889671053396403937682568376343157791402053821469594369196994966786485042592358173675133604845984653087352763382930707796737568138803767598323637017700172433330319443478198677282786206816844689675714061176609409238799184425932187129957885559653604011139545242899065817458666847756564582616407523969324838574907676940151374300226465940611805542997780134264203909019153494156994637702367227392026173155933949305630988034411077835542716841539964795629422525716281767673620781005154107778492719269817428375143937441942745217575007456677203830404521114330371587008631564686553150465610520543917924223017240484772156985475481481720734877331455900811105185461380822661969270322764238029764974721744213451063491566100813417494719215401273899092380748145557577396562235344864273907058925895008494204847512469835857889651227100740400904395953387252837266495654926132159129242537461593080531192574532676573247399691556155499303193991869173680967439748512092561556168016235070989171521193019282755939797760082625654045355419315706723301412690708862917977259608916653425385974986378308185959878661644621927951895016456659697069668890883562432156290310880253295163454189715691178340078320294897456902762118975084117765405767304071287156788331775362198673690346037518542904993057729750074368118639217558943906387399474916687016658439112756589551155085589454586469553051387169616732829877247131966659601703464514935953769452578206365147129822638376334764395675665308665288897187903890402706121768159225973510247746927336865210136316105599853719498600612569125121923367607469017246762025273321166741877672664593737422728909754070827033316189035935426803547494675130448281089500979614825247259913007910954844037550159191185036358199605173516948654138024685865405108011210785417150478196731219448978758997491746628825822826874464845244089737890757688881837675166496946513884427531986228497695553256449337447496545718526384100299166632724708750799946304800448949259807218901782588301600510185969868263731866504173631618342230045359704826491460486152594079029484961806146026748271432275382109478063478547895212560020152466249526986249273256857034307404360478797016772003585448625602951517611862866283669410636369973557862744854578398188925123374522669302381365113533031805153009144416757269621882872859143876121177644987544788940400711385152268903421902460431745872683383122046087662449095510012143360080221393447247197978182414184656010308814388704756033951600914747483618251093243971126420051305849588194400096802058300042444076926665140881452962210342995385615744915760981949743564445110769708329040175379403146023646543360218968730892993480374333610998562992585614091436930123587000478766119148159898287456824210142576321436487059746738047537806501374789377076575265281208306059814274856841784371732926703790183433380943481726979406055186092354524437474576042507288006741204622221526707449374505944223994825239722016210990649805008558509801645897365883654560037918656488649961517029304438209751980873132710935183146580509220841224765920230690410982510668573130658636889884512276334109436063237764406659659127762111720627294298065357841885019681876337457010612890519923758149646723484636328621915085900884258873711459179739986101810152335681914070874757042874623937541517670830781776891552530254480316753389178756110220918365959320165881831892291873534982190036133716255140398893185673402605413132876438622050143956593228048524623544802912281267280551193390685029077631960704985412298627761371201934543718147009636941141357241681847715969576551792001711093050421973398128772797190790698188185620381499955079019802987097064819914164448177373243417035349536529892445591664270869802092744172187406673847201789379929973221990806250622919376094942457456743783948061988373477895288106327721836037446949219323863763324415523252374123756313237063172347602076777417514192157924635810188780443577566575230561673687982805739848337987541280307811454244032425748009463381594938652008570313534769901880189674375725346312097413938706427020630463964343125143249896295388218061548948964457135920279155689042363215259017779290654565885713457656653714081238716383684449987677986255174029477826476738030333594001447401961614888424917760953455991413373583227548570919223372997270755187859920941201556012704830676003215703564104453030082660934917308019641934509916203466811094853156715924458718086880240875164560974383226387484963816000104250055537242500621493970999125833028769969439877261983135327034810774031876317097812261290453855952636327144749497830574371450583320008014633092260610193266343364300543437479835115570986377541705612278330228662674992508209159615167307564919997475625397376411701201024614751969021639080019870598649300982844882337039567917457754532141976050901107029560812863932272813798330057184434037589899717993389546171797991396699151894464520080161469947005133656029588934899746792135623825087876714431527796276833502248785234134127095977498684866153169577181646582244736800505150850320237975389691099865571784846854455087033302525301244251579587841626148132862292387477879545822959618384258426758093571850820262562083336758207022013463524283366227468151806829584221844460141887864163432156805119560683213912049511693195310096144740628477766342015473923385633313156928578193535264728704946530867950895855642591061525675568319478078782863593765346648897850645964315715469891390288396703443138440139359797668347499733337871390563379073125103755765960588346353552619710324680427030560891158346402384078993836789201095225992431996505619460744952526200077144812279279248161532759836553185492476152606300015451143796203828850181532700343402345210549364231838246485912162136835678426154285465355552797196853718581494721555387986683467778261682132708826600972668675656252348604520401004854988176337657687855855784658838503591833234812067542148566699961449316671007497583864812073001609177445444953692554071043235661135897291871503744830731261775123951894584824859934789630500161944591814499050942307624721479877737911264387496713757026899558661756509826712819690576103640791915125002143965279167781423097093683488376566501231190785446456951000223133384914973060617550086905727234970326651105428776099031287268597981792984719657556086730762279458965776463444469853010624267210451561028908034451936411877156292833228401455520669709676715852929278375000255309164842327681346372844749057934989673043515360472977952435798672545121594100802262057534022674710636262478907175939117224034398651103003032966746141369586936509779289791213438650987589763706224109712854789229860853843942042532989493567236627460894072606153540686157875652678017773073808164675756461069845708908316865150174863189423012320032287253729932805078272212444248241448696689782095794929717473468796517596902976959378377901541961864145695457172652769259576905633250805297800650749162896943109691506620361506197640973561961977015491448271439756267578015537098880369764791269656179647166913985849233328602622900524642315809842886147278411256917687288654263594341619305827221896129990925061777424996461096955964396268822492196792141505353090620446758389650744133665598109854753342308125311462709570472043610461311363862032102708400317587842709536301746918883333606214209395415922663791776399034989157231268532992830936317050930394216883399920950927386953828151214012475251779863251629196608854480866445870338195159087931796819292246612175248805605626702615666214274673925133918735927745341282695094260631737948473009927148586253356019928385366352218264364087008192478051203416838432753826723630090016137372955050601958233389734961167237608717723523204856553948670519928298841600881013742814442299717237259718211025332317803529281826737109359481896442735896467971897420506037047545304152461470698903771925901087101503920022806687420171492156771539994276521669243878402102594774443358955576624227386296761237442801427487187364459130066206188582440682517483192773326580303549671603858119228154131990286429293595374176504114686404373722546846227732958712041709474410013504419480011548561411733043790881873138479763999427312615260407722075966977284075772962867844705302774680343568592531718589910529740948327429181697507468182924551957171848988040324953752114901649701700068038586544128031171235911468931116169900618359963162879184613101736476947551030954931080457613366687997701476832792717056460890983339033503216200135056513224049103061726365293143551637812334832177790506251618617090136121150158454992240724460026068129285803558326172125733065308735550708494216792294686558854672878586875067439669415780473745094451605461553838066301507951557492258727882095456926008572261226990539351833529896339963370217020956987200786582359852792288291619889863386572097790257672578176468168730923018282616160180733749730041965033414669605062715340576446761940116502953091321061686944660031405995283595791532375907208311665050029658093102230657329591776369960875726834816142294521154613049557739823915414198471013020411179940282468684546839344182742695279282706077879997131337636030158388353837385985395139472876229993362514583367757111194125232705450876488077756745323878956008026300175531278383841456594572813365722913881654506437604241794980885943947240063692152187859320408371167522243985462396259962630043894444329558695876308723700406732643914579540455796558256902442020353083867899059440156732455639400048369512219496042820038414852420053318521773896669279294178012871929487587147377275720836063726347574186961000447798424649723693152623365090688491635930415907687809171558725224675007067468944911565625472886735733758056878758279903538741699921092128837552465590904636500677024217452639830929314120415921735391895787958581656607203912535425241161123935357720331507924538543745179052934738517547012294297236910488815980785580309598148065112519195558107564419520224024965995503182902866933521721323283295803924310458182864631089361867783014655597001893759540468575174337218595236104833417993222125755898072448251638739318063021564144121617147495143784285054765632592762076691493380340462476081380882882960820627270720049034425518180748169460001074821197386748185042773091626339073543135564040878551366377840637127683930868134938600676414884924283805737406420335791393061977986631837111900273625694340794041135963415270893223072986868327865934637050862618624969618820557207230356259949368591935353950141308637522122218613054015048335034884476885862584811108652770825666537184491037354780284037860002907837614262236602497611455442353640497902872194036820440582913864186343464290145282766616977131887354215784222890285338307329976588643372676628127488649370015387834489497736232349495685805879685122996717691593397699744561149152686314716907159881909881938906613887407749332339260241181508468692474102704340890581960495801843303956386272001932823130780542719426555078968842556268176030791268581492019175087575469399937854674810876928379550188412900586017050308748521569321313663167973323415622847690458746410249245561929566875324264564193533466690107364976608931112883027392162109907541867705656025414613550909034774491190238180807427549703784208360304756005300231955813424334292380485438856587252338618159996333470773894197111007808453080793889554695679991463851674031070370149426271607571267979276642177319341157752062957543981406912908854688831970844679106229267791496790377289272419140361202496990585199274671008901548773343712931608925292015211553775788147759025858025325873300699852253137602957992067552261643566155043629288305243175242070123249503754372726617897630750896021399362351430991963406260818284847039077065433090015305517952727660403543892866536128493988416523311979178213200978314970115147084064691875674783827067154399899718083087801485546073209066035205913617968881159561779004336108353338049953913360697749248323356758062323746368543772737765020134599750524652264726067818533158834890039277168170590453689030442929352735888852292930674542611758284124396878842827013747451943986171499226268237366036637060661880250988796108348423688153873055075896048079572851311579489932385651824977534201737971607775164772767312788267455483000887208022602295199783177142342656735503019858737453872674321418535662327165546249957403521468907934252232995846688635677859702353820054873434982835519219057469419135872968334913716406758819385904001093385474464171202252766888998391938297092273852740968496285554053933609649541621587224675705702079328316569877117723489082034568365326141302201576407795300612336048066098723352872168321227143690119788878682561959175635431811327048763684845898665441029539668625246053937023450529513507807660162624083715711481807519084521683160076159674413377860142349580123733155717289071581308754142643490827034835097373469486231174127386050229820526638533373307261445184818348817067806781339694332837190047469651810098394744592042707964357987886566542999274422887476648770259675603776519106955532087340151066989127787883886492883436149944843213124545413382670100062237161500052926696658066571871909355240270972889014672466093462742336664791723840617541730838543467340511597371591938569090130703268274661533739197597182771381296013187751269577349767024172528605941740004882814799199788263720825180578874543301647433596471362011251212735636548953331264762332006218024747562278016568914355245257256978098975257177107402317284083527560882104375032497067463180347052011513546528960216395278970629193405958398325724475883437819962532454818524680410951585101236109708111712641530122159859783367110219792625754495049578158320437456624856847783454889433245992333429914991757230058757136367969700220547087972846959925045561731323176057582435597252327318752999716778710896598398428300807044189720130577372208127427171837505427921311415059788864095719429776437199443060140468217699111345785826960031676513578004271491300320804755422650456614137940722171268664448923725651796859713779507386407308457177255269650553118741661705810913150016983757953547821492870090197355179784961782348988988148467181553812110902895056295110160978667571173070188097152979354472967474301035653274293546792019099341408445181571669905440078566148854178738688702259360727562350040402206328925249945892476901884545511193754105737914279670505031097303302386448465470613912801930565061348797452026005204065930607272730823633834587247585734720381726948417104372504091873149035167167144634176159137305582439742647843420863369030451570377290917993495239123316616339802696011219504815457239015479078460246664142794582819380300657848498045993425646494065703424030769664316395115738284000850017388140925933785443735702959743289150361484864279777363291855768288016184151362655079464867009281081256031933920705557752161075320549626512896314085270143554573564346182266651504168874054058278051232635691683990200088872516300756422767551784653122615675995643802530286119303010678349673049810724552541401665260811544610472794803171019617725093465232937844184918945126141628512491584562223078644377206210749272511193769438323642753164667270882774225323403134521598651959182102984687923497888213361017274574682378229566079872687691884378425361081913667730175237400804800664604020214519804344343882090374538962482123133323805116923713244239823917867609849945653120834984752463679915543977816258695485725262637142681198872890293486572284626561804554913030790956491166408131443743113873956408304542371952992543112724125855875690671481693860218702815267838903120425160026808875498617172082742426281424106443266022857178124032297302314630292331341960417605947850819433782957450684802863738767315369530953928830057921982687640518876092577752379437306257242830096831570025909270588521429124886871582511000583468732477062611450109161800201509062108466899808783442507407689613206220053848924104222451517845960378874715165776533300599417156223375320391397831767121251845860348733009469384112304548883622826151658811646719188109267376684674041170576124317756956389425112563515814889209672188343088276623206927927341235216616079955400329875717274961189298120770500149103710064806963030002794701065137794367415903815938586123462906013994615551098152903591896728044574833478625122940788819640074325762349629840057862421952955296740705176364582185375568427849871881433105757012944056522158712087894828907343279930899054227511877846109504815708409115471824816824542351658559116775030339262010444854650561984887264420846891988674049833174906165060180967581633645695872964466256833266195370004168819166018041066269384503207211406524353742787415659630333963556031755360791583442242603824524589292456216257286247994318945226721018415093794106933164639646661831606100971931507871744557890894899773784842643698035891563311411643806209313579419207917124449954485963722941106833633283930900272535892342543227845335793738187270097304048478326990771031297021680930568392100969589295964497883378369536930002598750998013452758507322057930659773658419053334261208601520356875562600458611312058385079912698047493872528263280967344189759549739821422653550822645826523228600938009908246347145480163107015862769736572949233287773244995880901229338084382849841912511750179300388868038284871916497406989559453062318051871742291180361753271779908299582882219733298091615759466666584641906358122554836732020130937570122750959415199947562044438458116112535413184657550013229549488875958154216876723748137099081804232918319721266110848690770465282213906950606401186359170374955849361875956926480946693847410156891249303171845231829830681554196059354729180077072794461880073415278046261188729464840370777359444215614909701516005122688843366176177289194883759358921379518171033988858316726720818956127063456110908423806328399588691553957931653727859413290809581432849524237369867243686112637173541995678956464323746938882911485883597326145975094617639854136134655807333235850925372072263334292439452912637315204458673655466922539685500598511068195514485640481813386690266902551446064208795782402059963663006473954304825787153972114144860860853654561251726401714922276592214733340236201580414380767510638398131181910141980531374496019258799083363453048010198457456401525012469098466295691226847533557897962969639949427626907434311559666663284531637977742948622237868657016103945289349217433940283908340619897219502710337865820354627212835579149855560816632570376436716709638458759298786707764226742585429917891234129339228361477558314277339246622944050237347229677528947903459891338362540344560249582103978983447121962805820895646431977997430911149241521792830037753693421998264468330808129843053780573526023328558204493488838951933723313608356313672905293547630851255728948214136521778403316976331661831737587685117360643225439237574220244905642104564430846170453845657749055167319619508701263471938324641482310558366749208764701681027349392362031201671970266325098431783932317694204346614070136997561226367789394124833315553266610167412890101866485530729269328804922754798660108132541775833478018141909171016408716542785042575838236055817724715917206001496880838615437768322260275312703231163464325204648770831720077077345359998258052208520948771064513015746453391209198859723200060930959812804998193328194187532047548389760757225273227220841342798734308475546519240749882866716433781412791393545252900389271368585099380749732634682992309140474092162874665818418581957791466617989953116792844621204384040134458708612593207855706790564962288356396091074836841712329145721826543649877070881883389111102885212910116811014605870474303586533534042218885437111246695328016864805958106853582804909488706530675530512209341502648117401709793866720534240762351303803371011760238991490790048285322093355340745110938463896699578181581941272520401802364660974967123103670583951377499001881321536244333200177469406969888583859594636787011671668838704029810945592464437752352519239862195376943260222011574787909786814512985390157981131625650070974315576718865037238890390391721812609682054157678949941630288900197910923221976021765780427792867573163399907326893269471075244182874264534562637879125861841406103420802258475144261634143707803678361105213700123639984327857098180773747046125342446259460313994312906979263597277118947305819279612219720677523587801241845032473739533057217654206939355454254714463720108590380467472527918237392933718053258602270160623078255866915571748893436343960393230639469130127374468786288150516748612263718525586832229203082307748794080278423493100008172640378341546265788537530664929570971380239432551067102572022531904963057446098655250573328586785853948120593278422038578071794122476753732735620208769226422309161874975525684565054251717342916126296630348044968362667311710784736825177760922868732005755451068622020047348129375103367467216037317390170751612486707970524758529148351032345071878636607951932324287247885411321416368687613530761102658885086087305137652526609647735622565948837236562305331390951197737319361673477584175892999073341721637007268904730214356776897334074522167451731393347855234760320832384306813102670568958994953806523349566758799709120476332326775737714060930969607617956702036701338584093208438783812446420604195702696022173998538806454136308266279873395002136513264095303797253797421253021582285994109325349642231751575026453813380925455305027183359554115836058253321178763815343956956904800464200083423739405440047133759670373029709277114160232877346859381479406870952262059923039804246082581456160746347387030503106073513683569530950788692856642099224252496359640233868853108714659092474650487634105418793026031562576744094678885630571604625279384131290943916580495165255977697113229556009415909068740039239065764143510902365119359685777154176427728656760316689596530108493086910114458367279970136956678407549244797182170049237522913729210605541264578402597889802837000563390998069351163514117160461585281226631261290555875418976278701561267282296245007972156059431269281573777342017095034917689491974408198926200061545635858336952219283732797500360895570723194013808000424348628634609297538535487377720648328666778390868126915782032727246082667579675014659055638275651315756145182284351099810039156142597803893947322110460092933139908018062455575802333702138657775787560269424499355019330212302780134632073827465973849082401305722652867576738232166435130424850880685166709295841521277884670129317122046317026954765916473156907721536497649947363322879843425408575249553432906991555972900483585468147260117694254009344244136663719572224037959573470141332729637233195501333306595406744650385061714114726854535693299691486068670009091142081479123894636621075392424035005490362727672272198986622838119509730037953047585888908468808478660805127554559457980136722754617490717071003742839021451640523840647705094439692173083885213701756117399126025148238746152271875102213780306593629515628682934542135650002217686376430832773633972192933699521139582402259673240425064158457808676655169894128023979611041005903299458211588506836288819640427680623323182248774576222647312652596536148225797598267796233850138884907594221112484141821357805005325159556799980082253272102699615335091501299990490950109909757809955650633965387465649236824081446377530250091376937567938660282189618127427381410332568153737047758233045698264035795733893143104217148790698139287341194286285202406151905004477292370434161177852948389067597792773053620981146728786468630385544668520903871986918217757817352773276936310172964955782527674991044983310628106494074238286395599981571617221366072479943298321506851203256134225867527819014670905103507789912348288210154018265877331108315458212842048613986946520986734955426167039402732988518951882363174897858290622410707338525088557191826906787884497594469368806140007215763914012675099459974611014523788180784847208642140254416889057618328460389991634061708651612476297547784297748944254256943562660781832325031948952910563390082860215401276184690579293108023941669565658934184619269023275002531674699822277148184686990032927248795629237072867713690343658234900958264452475329973620838122689319622927821939448461316011068428125548466810728846861053560393710340196425844913386215767294536821191400228260339303207451615601215616720899889351694392122150627296729113393745243323894225877194321840830868837948842469146210460449986164635434549822356706972533785593365657556678041861169846850357049322987611250058760245668833443669348760339228533802338557507117414320722703702486334439198126843512061455201033757334146869480868811131204781808504219066657679464069567885987700693585313498203178223301276616521720301007180908673221838692154290996737290476517839877388650562540320870051636889295377527773481437535991776390569650036399179672922975561578655959357717428472323780068064930333409879520947890444638139554751402585476909453763874058400929192511490501344470394705172585164312669823000179668390601852622187581969385526489719557056532862024844929412178350961304229915525170169455489803271852598963992214949457075632928514907442869032582548105341738072996376495238803745067599600847948845462448961351961184278190609007717579319772167571486698297664176946528113431834263577438086494932808709070970858771586216756238180559361327509040508310356141796960774510915215841356805608172123105550051937559227916100348788225021051497573273515662055690952385065012986454601508584674218709997078793410036304373175038794692040744065128778001242960086926178958460870569069712791916508886155758401651571773929009847050427714775417691609555080371418910747214120206789694094986286662900650039367539566065633371403187842739163747591964723437156743534861197973575157316519928028594367850679150640216632988027637821842397732175862583958392360546448592697743647944437645574418759747378238922861649420882324346619752817565925608591258924880985291404357308049911568756842325899143813260257546245638763427840820265182188662472653631962003642620634141963481282414518244061269677241123486030815560163964567978276604651930803265408454983587822571730110749888325040244066043746834299543101354146504340123895694132635857941253452181209209379653825210258905013484990854677323325410900891295372928620517634131091483779385001047340633616798421655796885367276162775332913439269527731767161900266526662685847434522083371243474490059111234767388086613418172015230900225747956227455280629172001215548095233497584072539443897181794151793951053640430544590611903004714536943997072839556491505104625730479612291444189256276946658802669326197340032079581387892013278815487873411227783834190711086673469577906477521160311800428126747699729217318915740054852794976064276526253563233948822093755611500014715021044293176391218076200542711858563874743288115486577160044467523247030824275306792217087256151882859468574746989363900360788297731720719104270971736520341080070930620685867883219218880420652409781942119291370983059138936082624904536542931085670452937511767917285627322306316252484354821178331315090768855718358410567384619092252687598773756694399855368547062994574408888147797416992337350877085828964008582581679900215547779515152771161494831399463914310848031119223824389594897747675720279575924499358974114098289842291318495854829883240407855588035931352769499764813446623914800949438929073385964339671338341740408135234889310132788400880262240692497881738086657051059620300594732778093720903553588315431039685005409919958197946764125674910719345800912575956170592960210418433528854682054817628760088738380171144554433890646352514785993380422734707940863053483773159366237592182923290087968785517633912400076705186718455609845540155543627555289313754280774863009320768164744701522073876619400872875532815171924341937341496937661750410128962649103482636936029398391126771955439305481285215688986640733864986525790225662625691703638942447941040379699282402519605784516647079801269060870833174023959659039932906669357962672790675953673680295734836653177024298457820271044466225265356622670298144082089631578428106300431316562910293564570019853783516497482604525518477776610423672406447410007663928729429679650125306820931203395621513991784881436514423404384322550971804172914365320091165921822437802069023751405327848225707232304358160317666989866107757201979640844838100972750468290778187265353807549266748776932107467783796482311803328982582452529882645736286918507006762790084059228446380214105953972232067196141310000030558366455280385809327202253949971851226328989259762194466977557115385315279003078352006235583346883357406946347445864371834542402912246276161706389765593934633057419794814735519958056574343395944342440368385349396559655265374580674895097944038410174647721533263437263948981373568433440666572661884396503536325394421950447959349378317168918273788037976877633698386520804383677581157137653791862918798708333403361078745933456744093793405681656318868425172705038091416196537615468643280095349403829746465688609626191608728402670586014859954102802497633950393359323644306865746448761601790161670796603929797353746376483023930247988416591846639916796400742469920031884987610805208696084140805413579263941429785096169964566047179112846850903349039616130231386332010838923669332035935698945899307801528758859970742959691046715889909971478021717237556698627620746056206828944911085580926175292993544078270681726514629660542850312963477540411347472741731328412001701401473797921081836900387060017165857913670511761878393750029222888844996580533855736542010907110383342090138098267824908535821414519080781365998869438015133451683295133389668485000825667348418957947119909831460424176313497772614290717349432831291484257159546230273552289560640575196216194052550420774341620600401145244165213176532214465957171596846408744864098069233478533470887141793972420119877876115069689884830540407986851656185644130492988586773587770162627713219625719738309435978265537567019052862515344583137541155787838693896967545189118845805224904046717497106587135995881751840558107066640092444769568555989528408365765567945502659252468659607220505883908225232379870765459499311868001212828120569327863064643680837196889243088927292131509664550632569385899063784921640971383307723214112956198774782607921263785577767498740469764630936503203589929707000445433002381825110883399373725647682692655776783789106071281701986067691652773736008066974245073810113289959814288350005890705130013274141646672739540556912736085026783255070553345469128665209172343140062424737125814998492439401054518247270253481111888439093108597454544081252426176231424855119735185757779000434210444544439876553563462186720930040286021277721429775182175586423211793405458283459476238682597120128669593311630857095604629035119266426509169669752011904256579691741815670702999717902743734911102262708487872918759251746206804673271131133742139577921551441159127161347322521879745449468075316705130816194558159395741996182878858609744264158498452048494021494939149133934407767648586427797096379942963715091392226528379655405861498814981081155816944369055439617818856347558526696458152847689029243107909122333445553625657952531543352675715833040690335801546918890283821772117769583997218493232960655555274157578653599756694622657815890188764361609494810948251848087531688043111364909671599685642956367388802439238946412337647741982598830614106148110665453470609847555965914180420613355981527821808346256513095252356579663161713423715342660258055425565421494219613593992545587356063137221310068753915179771579303856161852159973506900950926334598329503441350685983862236496590193941323678959642545558908727784433791051556014462090621298302516477696516942271912144612379913703882256527061804058277969425014054732837566608744467518127632624171476722279969834915672711075767429824584973841466233875666239137631663766390404580430892987892830885566198792523435085424145785601008004185733270769533300207097945929217504083797513859677158048638025648778818790663439505342575461768353028925367474885873605737708077882546363769184629768479565462887242526193093172171981216841584063775018211747349163341570449961643544057621648738168455057529610600178738424277111865845120448570112912190963518121604105431471781265140961671319276911122707468348435514641532001674375705768745559045725629347669224886303560217278626468444389557233616495203527177574354883936084497679153895397057283533060164618428495894312761038493424155890766898898729487822210005599136103228921613828440608099177293323741783573876550041362040856727933078922500992386066765350117097942769766895209250121313035296783763647705542447381220220381421932692243717829639621354477921565410143962440415403315582225046336388661525422343595988620077545562535084158662348276835144133369752775423831841063320244185887425969856225503736438712471978480604185773614674854168195219017972191663504097721214271548312703807437873034438613150147038316270404774418435269677341131579157515202951175190213284555243931423395017396955333346437686861108631144387479676375925774239397107232224004638609099913722932164362167395805067156961719395405579932057758150042186934505619548475659681156815002270067142223938203679035796347580095911482788904347288041958538193609521871721319309512545060548406586387970967402901249563193777802009276330001733300168662812324494041018901136072591861223207181595331844982953072149156376605284242114444949400030538167238536891673254091146194361996875951654960607119455488998588492659949048125393420135460153528466141988988118184867977026317155826652189882399169201567840642614380356393899748407732565702872282152686657105042522987742008189510625786401327882966870361638054280390851568856080272959211143734356264949436593678795646049818533996550822829248906465752542121790828207999021355543366231878514515072162255107839561666698931388154052470054466800658459222600355413538428205586125224965002556530053066047344362756912390927341006619623074047628569002285254058006751402033424596484191788251325036185187417498639611179058495804507444505726754744472312606803858076752637011868764353936634816042701320702504893484914549610486196591937756311045529322836471998849215613905905748457025538016709217929634826769128960474644324116734309688181213135275842263629457613072050930378120203393973265995398728442958478753782541699724745161478821737484251854148858768025634650323086673640238959326639516120981197580027108285278679873179463353703551145523325301921864946236021441658161087013636319304862608819975012827307918390371773703330470096552807749270276006884431179715500308238503349133019065962479228837683473813661891563472582483617182414001212140281863051738829512429566615477680067669541190434795883402165789776177167519377868428297280567636801303588813076114074013937627350551738095824107253932133254569348553967037470348889317062753331916536174822853507126552631039540402428080196029447481036108989026242889079802082177165512983383119801706419633709294191086215384537335584090688069728736785240186246532526862501461295977122576989937438501327863066335693881193467054695159622559481765251933700814243681547250719647316447688278929573527529807356295452101019361955488151210675200616538681782301652950371884571062557307116496764750156536708972259551203585502223235702381587500253136973515809708776078734298205371494245757707149019703620195247137870624115002807347425918688838525154595468703786676870457075854362263396056922050695701078675367315383509700843458529100321350085107025390349332033642978822613893353343856121521628556727470284237345978923620783692704519038302081676231013667765811939640907961189190960463478479343691223211014643936633792920851381068080544820915349449683271409602379615263324688033467312856433899167470209715781031481235851842640167447774057960982850276616864177438664635767525965073468910466990911331114754468978857430051732887124384687257689475576432670280957454323434469107310396829935077556167880115122170557049443457400352635871392830483389904573436742387960492881266462471499221601121655994431576375988183925397158930868364013567146875225144637400289199503890541120566237381357315770007525585671810351744021448240123434947632653013591965074350065199874378116194983902368369349186196991208021512177526999789218001467055012083960858758892006972889184946831373591984369721749482960970602568016951675075693343286538550356844973998605130307872058326254710545393769038870952473377141256919537589949888942059629825660323459095958463331704079544187483238895029458148808450679348275724937296598377673267568006731254652510505551138360041053588058941687815537210222962429444113139935486910209284013538018181626379797719212077788193212910529902681476053988486235074165689045103413639013837705984565897929271269454175637316868333489093630275473548309513656579964376614016545045152838595803238658977611273135637285275380738918336700253384808133131389266760555645469770215074081257950846121930809107214234221136965142398063058358535706033189975860008720565740911686584372357073619241827235137618436994244825807555152093830241203557634040163574082168469950533930079552303051700609224655831651937223229972329994988896198114522270133940206715316172994112276165771119839173976933652127433162408648800165143808540724428585326520245005057639529169225538263992029506135604512139135539131438247043817240699966493313133610438386119842082024731271743514477596275271723338304121642529869717284623366958960075483736862489884097874830449469199044321704516016913700328898825769366678587449601514877756304150430184415034551360991614181494741798679756703605063555705972929634272370321507892018786788233269180661323256054040129731638137605816509958950132474333857526050735245523431172506209034007744278026018159847705131255629618979471720403327412692487403244574267664225039148212892479516911915929131910745726606305904453387471374067873495251162135614746808479850735507587053542801237763638000879017404289360926673053433750225860163691979588898368566540262983604488003144068892715373595526897697684145637763612277728648026830206311775589667310585923983727146002658607317715785227283334580339229914257601466402809024104419197580919835880093629719203832960157647395489250855799031695941131279419507792849182209183896298079060460730642419738233611299866409564656531821785088324570394083597152189138843999755594549422760984420752313817505406930827852174970903539173797565773173191298723858399617268947444590262451989002375704984047327440654505912433351625613537651615344434158728024057958702472279209827113586543874321651786765570417893946966713699674886524018646969941719838493290319093705555577950443347969508892992024637647266958878993882471486484227507936447124246379452149317606307861287603640332843153880700460896090019306127575923570478266554067504907958472764009288161942665345775126235769389742462270312391152793365949763285300125865547968334215708845115625822718005636408491411428853353868108640312718578654249779233274697162925365972219630092466142634443065139413284696808886080175806798091250129710271130822178572721097778933244399293475743622901080060670020760517726357397591185192063062432839351103467254726057794495380114267189271500671873205262570390908768915815732958800507777705866241696805645063149153735433008728141997368687937383948977452331145772113410278813808779276568695301209661027542545876480779718393264556770597609788601752273949490875448313085158953957264658696423567470141533704961458800707886294154861792143348436799746183108540157869188233062978559843554660399614064208440988728263626019796651930847573993622046738502154812447259093644402392407841343526923406744780252829144057691620498806603095164367826664256231315364414542497704355271974577583963759306530103456155578266603159633146806016734101044860586402745834305148429383807696775315488584599522883993854401177013229016968709879879574982221475228545420600812008667822384619567761273171722873164359602707661837503144653887307872253565446577503395399487652052989576792191458262544464277234586978478535278314223375779437605186463485496207251650855785012867332642576800406719928887689923959373482944387194155209595176751736197474221704725860537194175558141444729513986809970259092343893566026613660579882222151603032779594163519614854623053579667645832701366057578896901611000667626581061279104670697198947706213403510227635242411856469382195150505824436350998636862091911205834163717342254459226967024530498958267982242493595443030033820913677063763791048418262437226954723216779423334127929030467956183790921774898539545722513663591952555629578039826220837872648918705330181826449101887757090373491908681039851592164192066273464883269261614887205214707059933246474137292581297915494851257027014475113622323658040230952252342595852831578857611444842547353373133910149076442769811617391583950353056030051780391995638156921678585100315342629411450831146237854754288306193641579068256274557639236643761620786100397041285234905229715021201555469024830736477924081257934682789610362312112964219749942134717130086734494525092913012021725066144154405568576626518415120689242281205834278427725780639391835697983878193078461466555251489876013474310326415105008680394697966025574962603544929551781898359914042772624761242605652690634173716921749098220433376483713036677038029810343283406486111966985998018709416268036586574838218040408222481740480955630729164894820692893882591921339805840580090576043378838088661724721455294873732802747015530964463425011754664177500475154197462001994367800456930620880858753508186834053875701939973083067896703015527311425233130039532248779060667888144839188349526197804987729910569197452919882244208109724586573649627028298218868243261968749582444363321036661538697867447253369086467841386994475028585777095639964775225103696600679815379996234911499783127899427408721288327253613388910426768982684941201604632135480825249980437452106060838210673051880115952625201243775695246508407936483339960342625918475537628910758633647289061660687557901423026609980865740443735767789913575987316295330000290911773980129461455757254575568105656328817991620189689668582438208440100169427504424806957562560494611394009803081953093705073516801779284712800536089662948330975993355433324249420338449383068911411702373627024823620963622594098025752454974548513970457879355926546532057192049772474282967334163255970184892643657037526336067412680656795245875451223148936477623445196551796490053674499627683388757521899652760169176962870390640141186763252760018670500803437200287432590431809462381292295521762116912078299169644365340320647096056316325566500716421693475733112416739015209538423398921339545168366940675072679941157196463632412748761235564778240268979398392886218466105413982800540994599773635152935772077830774402320647525737913969698349479436982407392891649738593318367973857396866083965939826774482751866687275299605477762618034575961203030863994743386779308724647355906604932825009614695316729721066873127663180419321051122248415176234730435833603618642373114042423456801610279926319796666043895148291501058979706934476488353185365506562371451656596504579447024210797511448911674551858884141883359476788511783165717482384146842333659230781525554258714356442483695355285394838113848443876070172927231282747735514351026794174328438179585658640034926658026517885052733652379440017313473078454005063437827485666046574112855190556208105859717486079813753940574968040326687814031366417087202058323091251416642329162439257456418442671235119070310259534154780099244805702866377841936447100884232450540886508871217653954110433629397703549273000968154271231114423251642091579843812988146625757408516670494446242519980434745552459444727890147144873702981175385524659069023597467616769249469270776144690743287700611462648987873193200778878256655880305767930567975571369261344245942046795108292777579258286347802270708182379200647723699024545810648324225289614350408246762370360043951301014948643373093945922099295748621096543799060892087795915036365924124355992758928914628012930751987342131141985555665976723489141020873944669213621933439942124397354310617394447680878105446663561421575997602399644885088381882971188840560423581342146485076557845683288162372992034365007355152565067039109445734045482954984247274655965012962790775414090881741105364244538027192097270970051812262736313309685855019328860793686474224271681299290664850212483648595687254735809261815505006397971345892349943581243224143106595315920196505444346412138774235731756693592800073875387744894094057571629121600429463786378878430183480567637765213193981407792084367935034989608333893767794436924032895253919984281426151011440425062853051841598879951679802614909881736556919426611116067270660730916138448704238562742473378396089038180221967822381033815973999005087259350289890872812303739831764998879774245765005982474802834202757471713878815767526801856666302543327373429993842511524094664353392994760586173501652243465619060346190334203161853308157700898224917497095876549447806957711807103056907865887639112812400433949482460926954217316937296691660305268130567464813380361427666262444186277970421013400319206036972163663228055960513102591035766690451778411539645674183270872742889396820337184142700591831933756897989572372129574132642340061693738227913812364948862230860722826487963937502228433911096352038465375733560687018224873295554014068241980589890280988410283423586042091847269780581887364707527614339291687670591514522249827030964992433823740530366909699084389302050606040743015994726692955852246722619362639530196438212269715321202247921004864818627695088826316540796418427150402684449346576724385910924178998629964988752337220564941895789838120607966236570915478273515051187372951640384010090397209254718849744821347649709015953825019027817895320306448633260074058991722462644555887284590980831407688511501115522936088662608855247784383533696481294828943860869818066469246091165937514460741164750129538639758889607870831781388087435432768332238159796603039643500296781216092458690080038031173189077032262079927750290940437911020144647553567795200635390474482087626666275879978572055090309767182728672696659180468588872133118946625888052476489085344481805457066334628610642212560021918618686632928424612886478812924839964136470006502563268282496335948092239852431142340622621576336752542309401658471180210890452787255785011992883338666446077488620589973998153074159616314407821835952356783171487502468036361780361510976700489503096534234273964402374238251490621418716462969924823217179054787345199130358153750524044218036639321324815658456310506373644363558278324772662652617790049221110963632927703769504174313016970693551351290755080033850421695253695404313476657063439866985951021464443637433379649037026057123922234140060358155417593001223220000993676806925167549206562755240136678301606751213432548879090169102990744484278284743551878253321326978735971830967603001614904285391360715472727840687370217947161187783048830830074731179625360614886648193325478076485647503230934569160532808555533733905586990526615190341536265197880322748303972525624907478677733980674660616026848071992146032197430815963905667736721584685901977308754119082135554662321099699722744658488768145589963618800083633698314933572707199472411313810448357038336286085164195907563280849352635034802138801508231844966424372454483486538035781820778381983069757612981375432177418491585650657340774299513611580806438124632635996817288892350510528510868038975097782594310849478873394355178342629359481306179972140958377623999407756677837544460189746243683912724199440376972597668463260323874438792447975246534632314309776784217057029397080174458210999234121886064084796689983624876728733667448709420756990507054114184702001889384457927328188822040204505898208326507204983412764291973874178200045152915993086945991861065659860531076524468243081024122831015194397349987380714459933864884669033940312712905414242005321564661504288888298563317386753957137203828388648918879720528614572822720267233047355505047880088302991433681502342020324685713487439668500035413721602318021719648107627534039333602281330115140291226516941014250619095184071836443254559945073372679599095893307970228994895744947391246866526990046427554086592193833004050953938730105496741530406352550253985529067889745219657722222306973123422498225498149342586202832994199034583750601981669455383473058383589718942542389421996770127566780383626273452383292758303238360532225516385351099849323197308313137498118369954544421415622650006348416818671434835835477971822516233396609047789790834116542754057437856978997348255741186868264282640785044458587470547955697718851366164211732991932317397738614850670226859249243180029941008280938888567545960508938466096762298445415014488210090871100667351484444934212583556024333987989185023037195647817789835843081438839375520924262555638752510933031568805092684658343975710033067526647692280033216892223976292126457344108178950897549344190540088982753121767885101739857732597860871610346481708761200244489338802667898110217542248907003049718688572654865524579049946515782555720985233833716088151630760574348203528334118226049131174314074662499619659941611458662868936552762523826998012409883712512038513014671927941132198488658310537313204983447942597874268950942353619043450353341202253200376960819637498448561042545744378777418893278106705117616888709302372746942372079431292732433137494411008027358051149831322807703823648060856147562386900656683239175767387819565922899706616081118368925385338783854671116197108739425529310212580634848448448221885892816388661028043443329135117050511707417931868398187112017627172984721891346646686808431277070474254585145255916103505112781387591264747414272658547271312864057375988897254567104575479692490070360630264177234286064069059652507708217577520031967188675611635533010826749715718025254027373874858196859216208425864561122468635367146817017178476587439326269038110207150707872720853013439536566258463208609213758778229847600751848877763397060821967625200019089016850390488499309527861286670722847266394308425257755808503012811145412339028127460613080980828485448981753666091841545002596706849717407183794846922536311073272435740825691413153302120446315275039803741216732378092986649679150297503884501575012943121485712017162459467696569890555024382927223311161933373237680571773985075114733836437120782110175648749239394134809274964396081637710267829292495605562882459836330121736135288984731825229519983510886370621640795078229112333733159318131676911800200020507199965315830905488481155987512609163141341961542101299307269524934001233757318046017447172177965122498914562764169356327921888790147194437180228297507836071066178931823244172811137662617012675589343763965808305792599164865272717881228836698347391364756800453208770514038104504370045431825889354795839704269491667265337302336593298457104129228348807296691446154358562435597211757812203839671390226217037014577352986073173773557344729599791144109591138098134903471380833566563223685333318616847549502480171342034440748578755594686053456805600213579546907731342144414135941591854776569695671244432105350795459935934987236685400074344418590398258987682260995962850982422038758775239252306254462424809126403029633405525848494608530788216206608243944655678306030091187640967087291784430555744428757987691754520440317159159443577471569372242678162882024887757415699995836650472044477878491798792881180519822893698136997296458838573684047328853665065208776746908428383376850219003645191049804950336666744698513194921233155955317895625663327926151007644630112179662862982478997734112118942184550299309535358480013882281915398890086068950742907899586605979408650610258685295036794927527871485089014903613656718471831657233811122121185759398272967089449789793772293989307969527557066842017023720170745108842230804283834000846756849584103749943690633774295418228681297059725661503353028797314168029027449563755208415496381947322479600026445375811831285909753101474022476709502757314538709047422477390980664061130179477871330076307682967637140075305700087376678773948876990273516956080213802893532400910812924246347174406785650008931361803526887006375745440802755583069906829888357505309333665061757948759212980592142470976443083310886464114926397993968377630540724797965055882159854490103332463360544009474647876679130617725201665102277627019017609264670136780131890819007949391227306612092042614178231375279761003078410738611060019949283854448119299037547499501674659685965882659912133796606557737604087328670539298302780700238700292540743236257394195123349163469305383211740896223524915189268889387239941426856678407642565330110650855680742013318489231506609691045571244709355064644721146983907612383260481729013959474040194441216988438115238578536748471230845921741766179884184013416839778370184020730110014311520472739149631313577274203774819356271751742572832904593747070766346889893647272904436800522161774153943528718611076767170656244434980833862503197014738555016839051130055628639338285565009375263754580429179761033611556832601889661280550674746573117035323552492213522232371640287457735176534654268111983446150863983871595079240540151763865304391162483201686868908118146720183835457044214737631558455325169128040394252291633368069640767305790918244803068037930627089021375315150661428121588918921186292158946565567834624157748589578900514183830425897726217107833898342713107274509546765568742632171742656905996954714932750183532545354679185919193069880431551490130281706648726065580062893267983809955063421731387659274789988806816298241651059372592113800804528346625393701023429010157901438672979335724003601744270345465462886904098063403130763874322847511134488242876150657873147036771061634381935500946985630340046749416944481874476577379777820926687709506367930525506827545337331989696978666380335514124766316546689832697262231090138868262830977443261171355702954632702263811133523553658708276269848941310473117834777918964258784365447429840745369721419560510787757399824944631505777464140717653190324236309622678567582961183089369964001484952557288499535311366163450623512036170508695751285071154687107553516223979966185743956636152403871131849933899866858517886585126085330687442716717535068322152742547117584778067209477436096349453425477083342822109346678856420949340221404170011339271948800789447984568962131506145888113809384140311357410351466738384083315698745178213448873692418598931524905278502249546316759653139061866812419570960523861026062510532516852487764864453365903687542611174320658335120253083784013303577283074974732912772805699348402872088531835521666469767309998987560693513857060168418602570954369721747402665969809946319706978846075486258605731873605829219038218348671200689597969096949135037495820223772427687678909311564618781102685339004132168219546331803981047565960912139659918935930576651701746625030504913654467092320209348002201312195044257290736322401821278692218026687582201412829030959036798581082984715095990223789968488335128330041217980704884262464496561813678125618470597893109835958293842033292521827024717776464607232265437103493969832471311834591814607654281736201305369316756591820009944247947722659698301238815452385868479829638488674138332888638634377677492777186291701577392946227084267526163498833587695509272676153171613366452110847851067811672341957142067542294081979391381098181876495058148520315343219841529120987129838980574102138094434437339809303587048961555031806515391166405627858029018882903327949419583547465996344599096852399072538587580070548634254378556578120319139657668469934650360792393068237965075890285527082854098403802042694995006485302485914887690175337069791891745079826373146328059454570914734148979910267031823124184832494051781524308059649053319711378723757021800945027160669846966719047451199608370607876235886303570498320500591267877423792363147191569907221969540729346333197448992562014088112389107598968912863451367649108582447197343406527909629691095034165560765255165404644303273581455090753695268152803082578323096828893997734425368132910171695970123222278784569840730749254213493486364281759732555048371901867902945571648979479130938044795023810431940526124972336845694737987922230338165466535421469979806954712993388205147971533596654667825902615208954730853915867702404310917938368877425720385581050691800917263119996469178924893390533996498274926004478159688662920826826088752587696485588404169281298352314765612030584356828794632547332105329334237792343322382560544846029672800509219195939761460227352092576864864450895757276790618917679922587059787612056287295788951730447572064567921536092012273437597662559623885029610770504426692575626548122717201500852029648467934416176184105296352400910857914396810721943578878823028642129029367436099408257212038337453202570058219651779865025458930793985272013915724294207228969563173465716858474681469074705201625232506734831219294134133407556094083638333772559063036175950172126560818392170208177523344528446725427704242443386898988264612476607745777277199333970587347055775150211773546985037015283965083420067942769111023168263658904105757453529508871161115116786436296806485058715545186332550365890641464660902756506413057685716883693764352809849823273745078957445692923982135709019089951828698680594901952984597436244620236475236217946686749494699788124027330791053097872228332730482480156826350208538821427325195874790714314610337004542302137514545234317587397547998958063446287680777219388825654484250637227135195834498706772015218725179916185273258027706595619214181951750713086802978813083017506246345890877533660852665520280838166013260090378369873218275836338359747013129343956682395016121660753494371206288706360791358099145101864675617628165322610389470588566642562861359274006281604701341157330436896431901180132493336590207093767519750469561891317088174868753364913182387395395316995451487539579424426379331208369418867483017379391733753064574920499652816681848545689408746840999466815075662176127101866781538174594077714629787920275344267851493471458761228896104888099335955434027927679564287234540648453854214181577788725556152433285073370794017294570512594095394340226739235384303536664758116985300512692313239918316700646475072583166909457292681864152285136991515106171651079627273794709937591943443437205562543468858076975462965276183139863151248363443072283069452575575895508014840993701207165481289316745467812765115165533890843236020539592453609787660863462202119062731299835849056456296133603839219758205012713961920984238362377142554040919513510629398494280817764955438537348484760820252547470135129896664548122950603646309950632465573956834342711057652969752434556290652101878207298490478166970343267410186978785074253049064934000718095831050987533786542027844224150189094917071666541999645487770790338000086085901488365913083700514143976683172011929060814978505189837417104424740512839970871259559995715252265960759447631510229135188846994679761134354482569069410830623035898656352826813855081031123611077942555760828846767968145459104821624709227948294559910973964400273731567566848175929832235187847107615020544101684695980500178193491754353585518516912638711402759265955467599952147947328758990444310730782627918390324024039079993666989485013348803932512840457714764328953197219127068381792450605606098605523038508097417971554540381802608485760694621273739145000883783767897989761082046971242668081697243283012084641700125891229987843882384803892001007924269803236114300636994407193841916450230238600054392878078658776499844096078027935316028140599374046349765255574076781574275746264794482923554880445987886976180504179263720621150297783738467485911598197011364671831703462826021575477306449571191089378216726887343717414902459509095814065103471125208171552181353912606317911584390124876866456022800716391874830725765481700993343454711626603433572297925575342285843593040373023290296543356983910198081666782611674912438945178973688607242511645444717331677010270120558038830311599066507536881322381566767835603967962671917225266989397390266618543095346012280653318325028968525095124657359832879972674478938237767664555989090879200570470301143573678782018407303427621932688457817128335119822543029638949386479880202528872532658491652293433930199554716480457918726162947563805376350939114388552876627851129763163159087595451113069741293708215541257567566564545868780072968687091326405347709503487491430250288156800541812973947083229255910948688889929463022607521339794776649834103053112799581485968316695373160278627298604406907119778094625822333698747364561264723582515968457039964241455577068523409026231363521381014477947714767599712595953284432856929700933924629687086719497031741519083972381538140396920951115889194821713511266429108373983471543008123784929018843591155273611989932416470561764685811820683908596158667371926766018802646315647125401788472871367521765974165547433452514715665931409369601579524539411081213920971821710667114386097058433366674866275568091636523701298405053915596971570319221399921843827504558095615332217586864681792564777682063943207067598950469074510905488741555866878341510888195570751257276480479406401702329787215039454364833035297483327353997165912222348279313797786604164128633622575734676927679260918855618197878017054674610451500549473493913243000224137352885331890201129132497203724562227762377597205858757245730087821451456584711817174668319051957205913219599123495142010593158516726350867538955529339084095178216005409061082284163676596302419566548427403361452398152554423362075300770973600160387832781330176892036984775090036876223879691761259647861674787857299651847894900880423126208743511999927472182145225204554404143282213488529348812204372768368433192413913728901032550733237960219894597775045945214441071370559644678633227480988906709764813313816082020294257978679681732703292102411679629988758271458363838416989376336868709375578494427644495371321031707329891467679290516430727881103431050127597983215593616320073951130854281119983594838642322553955823408019745547289951599692548261521795317065247757792822620348052154194500309118653935930704793891706892025610746054950089588158397798370766667332364199225234748817326530456333649265072929704353466476641155984403066513923701294453453431586636368805726921326721042188550390321685436718011043157295270827580742465078804262151373889413179887018446343085075229066077364222172920031826295425648272394959419098840692742737104226003742088450088803472210528388863455697650055871507390435835468643565791007743160614350126959735194542412357989915364049805642426220752096356102694145463170036823405821007848898825187842873937185108473264327002270016941120653031573090109756374109921542702838466843747648542063886950347286870784080118239490201962025551440472908499851461220436987058936537838291316267285501554447385906496049201751074159605964409962253853760111219253077662992439258776610967306499835725818823614320802070025555867826410758215650076888572851015837625393796242355040228396456443227064689515451866549308438254584870510119454157070026150455946473385383220916605523227134464112823351625445970002922444699985760204479989919821450305322364563842199291007366053686140049834741242839557588086483849311571809996116409563273687836960850241572299600761529671089814081273523931734824682831775053575965644104553672533661422962095332566062659926624305714956483531520924192864874002201283631411626456562897191227438288961624228365716188183301298239947356349040516769790085723470212834302235288658951915241429462564575659428000497169483236529238034082096753455918371023293441131512580526054225498224471834246156031944420000670707485652736041657819878420914467000065591606735896504384858136981282987526413976427106558256399121982608031103013961625915152056077562634423105207844511821469036779945628551467991448772116315533130731348975213416620996418652959168795235593508942657441834019109484629430650852844002038051622181764849890644783599539822533621536057911858598851970859192607597661808034174060576323022587072646587891720093466494402754469578614903565397733954337071454384185900524358543929176410884057994043342272901842513790741454389361399357848424741834610038152150509790741856028082480415640931759014186566236365575842074392355188730997072878514045419718024265455690515393509702520903147541321399968761042201822537919091684889966249290775406812125676330055202350055935850606408969854444860715994156891996649343886407711269920664451959691757622244371312252899385906891591065348517345232859661183708405621688910054613485648296898627299618780272222201152314716630139990374533728775689942489035346475499830732819019282872227611763708184595776284640563663178378757850388680550507919277022897924526868957761426878122293786545205339787585367463180374500909020352745158185506241126117315651824870121616334617249305987736045926080793326736248527135295467824002583139359273728198521560337641702933648403872595904670801482631778235260229782777903604580095014667012350033021355125366312663940500299753274727100023442154282677208526964889831615114749743070383384294473931306485787253525674597508690507720071644357243539828981451999946597790700230459423222924625865244617413073566750664507977622186323786562107981822186217362060427323257298020882327796326357837372302707782712835704698404499611876592209679500463027620146903184994837346117721000735219534391002839361037480188849435175935349407581644837514130518251906908041399331664878549660984437370264140066559645841254964371825192409119574228047241716716255546084895605800291954538532190739930605525118403196082465994075459368746148230635377267819961103330199475973674576665172858810911209853733239056887958133911950864210669750744695291906930727446919462565423483020180798883494979809852733423244526054178949562786006404876632048046681031481144659013926143578022100459955610513300740481314157067403418559944964594809997637463169326906732396729863279159044798110034214322878911091603793492001356841437098571591225667120542613699836593072492173518921245578730846486532962205659265427018472101213256429724549410840770996561190456515481756077072615856375191784170711025638256284506379476742567764740354181098665323962949468218239360827135635554248089474034909039436329308156991613122399509355737712428235449831244067523240647986959495798285574947002461823812658434087532534429901909469209905744279359515384262434171730079479210633713553935588065404197453837047479811728561698009771836351109883640606530410554255049185298151067568426150701907590573869675369171760033077175941302699426996265493841825996392800123403981376595932455635429315151204109408935426304557629778740616156359243869092567640886064066261357504901987961507126603223798439348275304050868673514432725015966010091218006148079750029733508405473170823039147781126281003073129646999524834520880371546995316597632647614764292389212052198462667590293828369105757549399683034730011940032547838610313895632796007658636444907920263915230487580562887454803094666489388744681169147879231142369569710216933216575345584114842327078135169534748337901566070336312356006045128826116991970211744759930345820935710316481471789331209357622985059672060818069069176966085512524598335914391395972787821123783821584359945853724308586338787756271876290292222776232219781898918605857816956761375833862404998479870620557504724350514865756284082081059221864889999170365842782135134784187188326312140749820287817769299516831569171855411213392286806259411175750827847336222303723265224090192532509377092004344661556057463417017046792458065954608077572963107264320203495279539757993034130734259759167466688057543041856806227197565862849924031765360884502241218881146744913995994110730392779836917648817224141485561823973160119194214418127767764945307346540251620023075873893435465656895808939948082843369606431256642326641852396198014230163302986845576122339858475035140708201398279121740563241799260230726102893799546471840490289244991217748366246699870720350836347985358332901032186020767772180375648787791979053362641384351771825476987608977747744468853444513406081640960313621444973850400307051031621150371761489116450997733410200510206357994668506450726169669567889269188357209109614309403111118158374592377549253608983642141768498892030060639875772907219033735041880257548223267024817246322118502293764037989501709507092094185129961758538769988237256002223472372906479621131354690707986252595766905680631539753755063880220472212274085472039925838270645910819456919530874295463514060982533868642350765131369686806975245287307063912457548522569080487931350932786906756984311668404811008453384900280108894340772428295603329442558843388838311281728522345774499226350423198209318110524821400469227072692568233536579278667515734386028393437873668409992152588721773074344128583536684927035459877550882257520108788099290702846221053744205852922227440208613664598778589271369286624116562248671779768908677075046764068732519160502767964804150290473472981356171692600894160850778459617115311089347207821909210432313939298849272111839362334318476952666394046770994474355703501721701148030200200400613637494513393288124828860607479968788921799640209544325023625522530606935098785708106802305870674887895161110978565721636331249041470191644431088723180694409932891326656856528666027145189064940624450518531610814527038489146696935228995235712532260065332741020622035845037888245834583633498259406895907447268255207337426382488092154720211208120198283924339167252081117179791395391494215459933969552620927203855257402332680060589659142474280230406195059800917533216199474918154806413074850966804933019924482689908311882623444690089665894378281850144807127317582953255371328402186843421592564662071496561194361577531174377874532070291263572487352932888532674660789102255600825502834554817927241898994953074737650992249546095535649392249993044389678452311810933763030156724372445613212938776454102800054322399253295599936805905932034279372591569338593976624161774626896428719279556172821073405312389630631442069229644490164491041572845362375920014346825987243952412578868417579664321683400542428937334695999253144555146430742420928865349659619830697574703284278308482567921966176858855851459092151749536974515328370791817790889719433743033774879497899591672763865441278611698790323251539086537908791467876572453311737946881723187497341950472322422836780530516871911769738971309081169430268407679515012894088756808360551034465077558828295404778373027702293973515775343033077996746755012465543013677146380094368468489675168717761217274876487179227189900849739512977256521986114623131866711445557925199627790784178276274275866942810397758209183227301397886612185660387618830713832058745566632207066665708860596404945346626338784878899737879139136414315497819580927338447873905127340566583483762247913635921331232131529803299710810459500975196125865180221613172569732321478193719279810935289200249888063387350407462784092460759012982912168783556046828189131535730400638707236756004021569680155983952872524995063222046097838938930605609469896719296288482455888905607211151469077850390914878275855585826919234513385433609047377793625480788633036772995838169305255437124874569832257272917393581986652179945246660396433355238502151493550953906974876342058669944868248840440443891450982668498151843444818103192743085046955370706472756156953297631774109782094055668287667205131368958047647663432402589521448020974832043246863271291398255767209696208283696339820253906502568695701622926004565324631501566993231629272586548627921949248809110702210740059004513379274112469648605570752142079561316990395795904618398279409744541219019528546473444972138608142184472695985390059191051896300668634304441407035690649427376685154001569614583583084086147566196450829524012972433478050437203883911133657567712970571520302120533629671183085294332839460793756674647817124332008767250417897349562753071934727440037500901006778732798621909059169798613125049064142514794889730199309349961846596762969777768195811386767081666679544396919786781816850186570435985365345232942991343704395209176023357051341373922585125908350159177408442319713700371231546069128013528247503004303544572463416358191662538142787137684604482880513963834316646760477326472520476702733908727631570428346312227704005197775810312790120783417537632616044661349479998294240884589455872785247980937763517203289261564111609203080870496242730659166714814720459183945334007314706705718660136365138864242980778447785418523347934011620662826121480933919476014469552433342207742823625734224744799775246826189618693215902384611374996343265379411487281997550818083864032452772215794435153338254773946289239358032865072981914364733742952084534309748691700131078345216960014343471501646268260029776830294037999807294257709828274913036117366445246946564469520219269103325425019822399786035603844151098499311725122304163440305689254114715456365678958283698623388887088369594909429033123901072671911088979462003937957935514753967997565271566610010725287024624503941726350444350749192939021380800745411641348913694500868092922992251081696861350276886472015150674307412224626927821486473468085162690596337624877517955369251767492306476535120751526315668069211005481316251211992041254304466609134776909319086224831705209744278206967226326799743556507293787696705094864120235595678157692668584436117514920346171243208175649599981671536005635351438723078075031971512154637477053406883699273370900332113424024617022346214531489025901228135671188223504524209684511839966096879274131462697534634653318137471105591462006836881143023210692802702202222405595328356081124974872790125842166021255754191520101777567353817770469214353057067695569281754037028220543976639747626093784085808547241285890476850077087765538688454806389850298673892783768377928500814089536910778614687966353136301090376861897418783109427071499590110807527728380375229692310795363386890864415316135949528451253013966627933559836929528632671512766801502955894398118130946206726124224617017038741254211876291768302328756423400747279030010934951493293847398514696679910696925036766280623302945548467684015937092531019903929421355721960868667672806750961898985516306602884282564739461837808179410374970530093656220446546428848272006417799234191069854944839523169143231241994879503446480400738797304805138465981497677096737536850568981598609801121355724309408839027537971958474952234514046070614082921128710599065491812898792213411960916299530467235135456756519050332755789024979780508753107172515702127942258351931469359693009730048509454489999633924258728214476916008750654626708996181375504062234989356953055782697658572638086715851505286507409557976051824845446227754591046733431190747973115283935152732426739383192785919233356983245119283068453955922679319837555887969731903455355008936415884652588713865858792733517614093929994402497396002888441392938028071144410714465197479341954562093308818142376351203115022880765258773334714442077140790181366461282808280823644672378449294098500200566310981833840717333496643493153231006243176183865172085529436920008234960842358839690514564512491600385374474048256402610227647271849289473511364115662828070562412053430214354419499282164458749516902396914406275102126045553945706536426017292760920713760088625425829191314893114407001421638453228538982403934001549003536183079804841934195985810167065972417129846123710250181597533149648339241592964887109841071305561694465653252520728391763222705485813889512190767879802156714888941326158587423655081977391685942163292667884385882104824687384524203119828015684118031130901846324917126587183573868545937304750157886310206002005610250722296016308595341858703707592528327608431888072632241904697696345769983806468771131894769614021584059440991177242655056720861281403689300570161858636003091068307625420909594280873196784556993547525813684094243239625273491136656210618189724594624957254751566552361188271845198648527677801406049168371844943975689474286771947161468065617836406475249572454662658250200750964759618194126350506772088588631959144915045013322215389173296916908537631871013446632697003677688044779782477936360532622119885972111170924232989942642466130569732766278923040917039671641716061840000979014189075444972617416000651158321712295471141899516551755006512791991144667090333412185560613277741120631615515190286543947551120680799840403947742762006700050971489564336549643843067748834112681685171308783130117184742091863233147237930345591668293108853074295483366960201541311579991105797063265645808493354746995079591862666642458433235176483572950065292385200507797632342575090814684273168090126400394509132801012799997227872435943805525665357435921722964396427514781479999597956817907056371813929051565887393629251230668958851950469449149914214642458335010046954991085277150591032306087639618277773713626508714707555068146646612506421942790250196468307091864705679850938300990842113316412068408092829136828048098335788377372230243906844734029822329549293044859910801526438747179789729158274812940685736730654673603901682889807300795472344703695650440928960473529865795219776988282678995708191618336309676188986660779129461624977144565009817486451293541654285314078642612579555171513027306738410804240033024056804841178068417403857061290036828128266448376177033216490854419919967791592313927492373895327930282971616720177958837052665779625187076562134388658137694251759085002934730927349176514012345415996601983728181718681813417605230339820297759386697017356800135666749173585247861045472928138265673953028627646441465239609421546759606197799485973691287952585663716620340441774302494853572029764796967632037245369890740933315113961603842567967236928106434772830761897749083741300709105507588987017291860406077443825037956260318551483609761201608139292247488720248017623544897640196463755866103462994511136497050418383507452289226733193499380413606477881823810996164216345664780491201868095330295455293878210750225129779995748545075274577496532684396469654304647790550684778781900392699593319551293884001546682770654120011849338793067546981518973373971647864852883282009913899816864040075650024702330205481864208781860092574822253819996719401143079572544008727841488377539811414693985153012633178246812936147149240797093373752967807092213699757284234816887728690195533264224375380338674151816697258428095963475602163971744413915759699298018646471559944155768988706095981359230666943408382999863441605199628053854471561476520428082477171550720709939355878615600607530019995403487997263307480490016235775908026023685800026624985770038241718699807244740862997703508374468584005488357208004057918559352138389706468492977036014065155603487605705088662902411304603052833989230197855951167296605677355481544965316721377161048791509130197675195184430789662765553041629435065544753960723533631135678561646294760923850708602454506220855181403110135314877201235714775070446466320993735320756135701564445233136948195177711825167645775171085793734002608606895745650395191601620976209852387518703779079271738398896216704533940839379099424095116454340910108993606194779264630587609953591474475863347280484285051614259074433647195138111798263204466657719355768018853812994352176861181849660392025638899902456348307746061986755786755123094526923175190366568561562781762635911581455978586522957787590703746718299872210014290369907293919927399937803063735341089508992929315436095017241972845874827881039793326491163925817300922025830999441426913101165314602460875152565539558771337184116047587098550715518472724017453979353485509634443186062089128437777564442303498473010007552860652703641228474548686471104845864433062774548031182577074562493997354213751662736443194493667690495004428438322192687190301758670535449049076796296178237689476003507036036108291075630894878626930329034764475565304825615955261580002616944227338838552990833327191447665328165221642407525735861769282514248456367516514703752989640862273378356443849530714938377464925410543703991896417243680248886327343711595679168394839562181309683305447725090790479559553328940147224591759399915490960611394728102430656589023032551218864471583060734915542644584920680599431651618507235444807915156311712067266356917199713324962581802894960821700353753973578662936826095330003473463991677298749654111321079557570763658862362867574282669510128150412286099329726606968667901317726518122286447869531141199093130519259281499434883859731660478742895865426789742648425291400733812453144231436106533300182436885955194316727881877305524831728729412156376553968294654921031266504210825452700534233511577181217402833265919981577834667750595574629042573875259769664401750946337376519730502890006025294410425616324984381552656820025951685303246091309996499195243293489000563539992576237187318060800949441595784259127691404161182586382189303365580381692559006555013481037935530524295109692889968978226619082172042505706312851557753050934117490294328474201549142928016186624900565217373237392247148589568539595650838154862623007399964778253613684968044427057817231254465485051069549815189144318746043754469150041466334514299060777776237790791568548519730220485302495935002692203877115980909328935198074300047117726492423732104666920655028223525660416229866339487722434806391514445519634500012189949132229529285604644828191937156028531538509867048206392479577111566331829440477533338359776445724423646471870956332615691858180247828587136367665756597376555868465109517524696119529574162149476468353318798983164476482147955588405583045435755720414122066758988343991054727595868539872830298366875573187443839557133006847840147323918633486560385320564329997067501732043189018542579920447554342851729158422590344898766790838039583246504784441592457499017660029178981925722799313634237493093017666751729053369070592877248907192783768806685821881851616977726373578217152417389983650786884660950560215767855932890009819815718724389736019305019629745815832611889451994080794980959105588297341878833776544600305199283814454199420838832309516379127360768524560053215098832512447057617813529821962619102346341833594397946649798799152717504110395611680985872841414028181070908848553463000233342028205090263344621864858141371855718977828480151680450804856776144601133314095353321523364396477314537976608435354711845051045642059968129194004457617444525865479611004650645908997589856457553553452216093601960317216826133612926853368382923781386042274617344753274611158619464056942458103413326852602747791480513053238958234902635582964790855577196512126714736848386081449584049107923774267820003460903656149230411291860742477446365116378696070992380778811173953193143665775562554213073529771498792695788608374590542823984141441996550444480937433847370061813558384738179049183669843994905259537032821447752028532963687670872515343219945751743233036546502501767262361514107643003336378698285136674970165753434921068039018338577393405462662946866044858657435259779708008816303135336284869446451910355900031694726715541001479806217811025122605515693522610548632360837324685399325494336200666605722375474153490381950677541584294642007597713297373925380744092233013516232483984866728797373157653505925434885170987282270729956883990860702735986982468025318250304507061184019517683023605981182962970611872651913744370253080031544734942701685669556442702677448931467403038776493737730154950013082932903792054036663608369965983403079176071360415252687348676829852040915823307798605358950657099380625541544169025584083844179087839629415294743088932138777246447790448563371780239365091821052696750133896236850967211479830801837351648471660733174069968803656759532666630055995193587868119810450457749348252914860154371868705048065156625024296416607094865976441725372058551007022404144801967348860359933461243607430635263367552047090186862468275341295322705365076732592422710914983903265130699106853914802675455512254253294755727240728743576731401835032034514392350487734478730325246010738484003869147034808035077143522145759723306035480631312323452240633567156879825756229384628904356829068331734046376012314618216940336835213612622692795085551435276073451166522871911499088656670399444082250515606746210646225728195020125889006507770964072462683410270430252549096862456451277039826021405445540933766625864323708080013476803065441208514114481902571533679314988427318152390819043364517596897366360397391390457033187685595292593028132729734459246751496376424460064454958535694940207080665939639244815752836029946662566056272909690276919340065752896513222645905610550596308247988900482232061826596937336915681867665544169650667098223228838054888149829788084197624103435091257809840911204875734806367352978911420495323087864423953396193685061090874648054492915408840618991649469008714898874538391505564409631594154053407589040166980618155686827353265767880251612645156001719658146698276882048823312362108766588719328687482581692961469842339940436513313459037892392098797648233039867527761037305050051025094816718890342007094371520001992571028695057423630093862448351209403443975000787251433028261752099392328762536396213372521178838938074631161913751031829732703747057005130481600665255774601400283098104541848887759047710317009086113324437991723419775931507059899728245143151094235054113971614082150606208494104303210508741200331979518246875672481784297069861525818036337741980713219539860898527511460508329046386532171869023376451923729287459650731209752678395162611148771421064671142804062167850374185050156858415474330320147391726139779557423140273862442795498336901311426677644631671442232643929787396480389514645947376501956469203670975959604736439397005233064396839678135936910150928441343951363451817808122520515818391674244569114561518425872822626237197814571536120828928594939983927327362598815700338750696466914648536004288191236647232397832699448954263533703289407081049546133258119194073893369083126222227267972724071257404441938641372243646002545442860605953526090407905176727852178487056300200486368432726336989299258242520776344490363816357994333667530367239289970413595029217398155147791095102151948176669772540239879091391239716204218540280515450873332841770200180400684757785821385727668381823071004745300513913966771634130684638970488221111733033789104668570050611633836551771033095237785837368258858156149359035634439661505161765905839006084042022178494880963898774206111987259634148981489485068253749622016168915133230543010074274586789574300384799424218500218895637205878055951849974842176746864367543669748980212787063808238246007219217467196244931837700242117601231057956114305024848772445280721082737860825393092257546560975823244391191670676080851353864088187497851473482676183517204838584694360385549260459768252900851860093580018077700467162895249838227681916923292253793914218699855079888607267960862281283322017677121794886420777898327977775169781333123209963796560336686166486561054733646290138374554514435648962477640824831446433910185024406447194852572013887687830010447732695821087723527200110601048347093090099059851824621818442543303556280855008356040208775684538389774531248605852815028177168330157671328068787239109525770034659167900967390030225080205866191716952376911012211247114231054093555852853647136351749872436935056933473861574799763129295896526733337375188848802600282029356276457731530682591037096470829753791372839957924805186605391662667664959244195474872896662021840120394622501134188079941910311112522844467102458051690709623155266363162389814581513153383615557297511857071996211218871798538131419324274554444280142409045114403380661536480989150291693912866125710987606156959154292266440174792476236907224550990008279689504748859230527126334658763889453038895986884696394841121976590547843391651396865429676131152586965990764957057136429997968784538549597800561335974529098326560180845495879182155917964602296484723379372771309871519058156088405371188673789615763330938052788760055078570404187540707063433868411245082805377124904309442002674570402269639744591791154088838058836183467146364803595155437470237832409947184524772222497101651125379901688854811620633188271470263107804638007443807479849984828356967184938549156369266400901564579996710127325301039837594148667862549125614064536042565511923060808456241804755562189169037256965774414468094151061890786195112862871880128298281322619945754538749283543692570668495860411535143964889354122506920384809054402607729167780209251159451255918099766300127802037606527018305415255720331974317999929802774711374305695555165982284167894268464973523055440320457171024061834236283357541787840871070254833173339679129601170640025228386319884894989364570721045443150677696033451628670982700900483363724075176394400206784280755330574177960469337396038953066909091542547523655032686765576054041380426255873063637482255079920776484972504969659281136575856535560743597084615806037878818054128464378687705978884312656451379918051290599447816422825869624655761468847614893577418428924124805170916744349700811068503657765941557336336109857186743461173265623202583085290676397614474852695482492920419827600655657925720727911518890316977386379608916310061753120174328347141563184701253277954892243696727130144089658634603089685455656607878443918870885367423931010751682646869294040763203247658247653984547033729800238572681636746430854861986447901541160707253714224221775673459786963301600358979329863905027522065602257052287727311561912373870300915173202274810327430745747919494635255253358994569810798423106988952928889159230822716504954368988070323671947740786737414275697676414213888698607541713346925900864762112894963079013678746949267258691758854301664269089329816950298094221829037793609338035407839830064980776618322534444610571947725469503705283416638196339482678303563130697889218267455928289508577855463099935204930481679896153810785225543195675000466718573543800447269055408382790309548157992484325876788747916601587478824319095965614108102552191451197182561540206238588887618761914727749715226875773518182402280917252364644987029512822532311089503122178859010787012829581522468437659963263312177169841292484668966388830541776287260784140965180952812200227838574956612586935126729931336111172759664895155372362662481345386835671368619273942442257062486068271078810103449083878001884022214798603769377980813233849369870277486829007008350093742930441114905527924257779398574264543299931944101578881544793944387231323349421384143015224143812258469085306086570264431178004139202458990415625202800600224059700447213428218432561416505057406665149721730509242988939792434964510972026973890737545033019731104783978815691664839310169238671927735805233850973376707364850129408269411312417883884505192779355923159381921090534189288494267660446975896645342820194974732690839295557738678402224327969788714543701566419889661824598967516609728806939127812085729897736812597118950450109901317363280976363433890158864524971320290317651460175140397780926852109753268992381985742394641906508506058138966623394716814061884238666269425433857083281106103823011775272393880083112751515068450041521529950647299681698181132688451327663816516163626605783481868644749961475409799242828313781683491186581318345653896644261414038828772782726280810858677847532126141603628849057905701302054537699772309142377480354684728173470228348546296591766057784303788575198539180816477823843143514059618379256583503731811133431300187375129286857608429623813330571459811465014809016325592850794703300958157768211132427920769176018322403644443901141888170829863476014664529984355905859975078870241525806885242052918000195467095660474641228032105295940633615059997700107708895503648388895763612055713403591798735893712446562933473691856336532326964750247185958561433928923843474638256773226692759273006130634532304723226088867256170361760292545724941023631015639105689527090738762802219005481131898552573402771666877716614472588750015175925832690537118813305100917780959983675445076127440088109558388923785963367021634819310122447297571738590850818495115224632105412654663749154591347654869648433090734125505640037985226926830114097542899223734382796380111750878279781188208702022822119009177508056133754085727339310920636304561423041563119915723103442715197512926551284512989261057786127566921059974703969595325515984976530580666047977930293454326360731492182418130176403025212024064328048225594754176564869411485957416863611557303212222585311540601140081956640806553640632107673428472944927259306041507918795925551940613676819579426527633777582620485732670576329526231796845794852719207087127746684069282484344393841519355762923713217564106270441316837019474014968973512962749399328356395879636734998608945382595470647293807148702900504595080429630355548390824337088071258879276202644543263804513442457652574234445430527589155729280271651966621550668174955439054940496664436748212592672258182820939042325598471356627141608179215544883471753970143358207113903077724167913707448033976998266009934128288166251186532041383770271972202355970775437305073767560997376535455681825786467361474098473806132701673831963032977986918206842721047116541718512539735796755038617151099932572765277005956166367834618198212127539203290335937032298832145473516648528293068206535853721488803474068898241536013829528368209755950962607953546370546306791786500469367382349742596249886018130495437854878308427552552114722777324585720261539062147945957738244142280686273381205832547232604784263474271184808516124515280803157848505026237167709395989380841716747885923499203897391028393331356129384976452484073012458281513841785869917415712185523506113089987207262942847753574157859181969443009240005511543726709294823436256974967966118333823002895309068858906708173364700825436713216787833302465494577462358221710427340763581469450290156691662160729952961981289417534914718958674956816209399896505327676283593878134486640623105494813500759697597813581194018309962553256982990759594657823951561976402628801316912985261876127875191535526117683525985004586986519664791367298843365377693389886664107282670299946258186923954187335014888534409144779721488939500850353387439916620014769950133878195473511663757474370940175245094496939044118006025842547001232365453281141566300662331201292067324509501375302250845773598522586109451409442051126329890407899351391424640023018591481230877675303128940817801959808951912086171041034461598631464028809397664241914996982795312205193516427900753926750282581735789461296829559488718532042329934510400820173082983372200318839315665640980300994913450118096023084174115617080523559647124620979211945975195481894906804436036023937488720524040588468200921327512271521083799620642206671785540709821358740347184868185246622102251391072887013401741116268777806257467083299915688071671360098601699460470168994927212895187720404011424985806504425059156542684646086680787391295474999590676705745742200773883589182996178957733878415597121508495342760870072165232019873592101196385329824419464685852182937626266142633889526100864557234372819952473365436051616694943142100463112525455196078551759903812629819837870721268682268123556784268716513548162236718612409222215978279074915212094116002911565514291525319420894802330091443151235361461033802531982297489817937928047914468678816763699751815732474671719944698081507786112559541943483435906301186692924162942129661113899951454726454311494304006909231410619412568104679265022838279447284392625444149685878207218559667012571876436024698516037889956946971787888960708926656552804473261470640668797664374999387450996549633478266271031065908217746172692424089493822473557923082286590210596785325389054561563294034634829521090335881854821250801091597413182363724370053815915424450984955354133849420597137746102671173855589657516531329482775426443794916032892639867567244172252462568154026021230895791614046445851105971903973696426789281801467287169959563266333768191744020904794193106404971150555550702190687326115036303904111914824517226998787721392577582051600111609898008521335559443589193611857316015402115371308482657442337071676792151651836637089609352081487719052629558679499408370638587514950354122254603511358094146037058518561696536122844171281317648776196603052721746560225686475237601105535235457779278474594681313141039482550566551297293088345118695502801777557850858904791370500887793887252874910387301651369101565823077569215585873051725287444738199119833085410068224949810036991683068525773755963150679929223211951725442953209799549322429252027024639688913140728016740728514909023781083539314788031838559340099880676653160537456800636707337349678585951219270258826631450464549823994300325215548672687342082069642477762178986242164971723992276147733668833836762276421359484095568969347240497106756647979699633209082125846754154041281467578740296338703128737220552959281343764496653578909688219106359675241068068511393316487722044902930861331439415319804287225340058903906510788677474309193759673335205514753022224164305849744135439181004579781842109056103163065740903802053203109503325562244687541886695831648068532502728035928967712408844292377713893154346948612678213680749637076920608901998659611547954230205928606312778344237107082192542706401076014315581910016145657336135451597584374156610829120619097364883305250032821510664185175370097063586864810937992348849894902693282694216333962905691060990849860189525379499087995071196023049618063328430242585982678728710091702576378995015730999839776605005587687735211171784366951441552707747212272301018549700386887790278541465184770212930431363649545957592851325693713247079459735486103249174898126881930092358654676819879525028115054303193879190698481906719381796688084422555621291536703191624226787374497101463823718888601798953685737397698864514235007755211541573152139493073871612972934492934135234861163504254255576926560451938587925558335586921679808431169962882239183411267714612314274862353655527078025845263510471263405525074631850138707376041991780104797160486012998289578591622484165814254817098065886122704747357991887154871305110649516186741548599882966518383550592679142928877327325818158608797045805228019120640204177549230086717668914040750050926009912780573593729189580775259461840186061389072351107439522834298339078320170903347964360933802988008033508719173411217575147328492058064348677517478042627678811286080624664103391206398895260668445000308594216730649718738544627708524734241776950864248421858665585435209011485182998014127084860296444993950483264345495847965929303997583005862411522010274172332980500957060333323676033374009579847821303133687784459174843566876789025593803408893557807648203656328856273364732699380028496524917731252685974394320206755595939211880599188949904778755235701880250703955793160327452860902453935981237837642390330970725946790476486507685058354577504114252356917128542652037735392108991649331881172879798193936655555587466365198822423227492806949348527253483274130136348325938143987769572059259612420013606137865151732215818842491780125961389624736450995605948899884233993774985002881115105980768830897116238893717859275444306866953338173263571080443772876282705992205841802900281617661538519017479532744751411530062986909185582963546550830399670775366494590317992527862867127670899820996941806417906900647288811223634504945852219506468613780169846110022076283116196079790583206885788048578511505832247073813279731181875591952290960866550685727461240777950808972348365808861514082377846385757074570476552484736629641385357193329236539624948632970363107653336108579576273045729756969100635925003795653059295451966660983898903190617588494321447636086757844053725672134828853460885685889130674435336482614031796097808799074141593165593242226723790866220919954585492648980318950527555373476773150362123704132646066089336829191227373603586150490198991077339091579485333505117847096998334680574260568641529818033354831331243161186656766406484907688905967601532237561887355645424981103242254541589451087209847483326546638828250413145848825457178775764698220706923821332077354811736753581853255374274981149984491106214666508981629235139264941149969530124741081968599624383238867117484345993577357345292851174195657501604864874445377573541452401628782569376951571092704134231217102107503773214861536042072386592735775189447857630349373151987311826655603372363417692295973822841001285829866074472768135078666304713814136392796599701492980179121476891779829768050346591750294215358699995449972619398268962410922620834306656082187452955849390880473961940120912388862432268342195184486843902408409183098122034150053133302888079162400530435972113697165491848518649321741659954746934198884188215210839301507684881900080577822618494083183304899753555826544137746550160901745752435486651049641623341221183473981144354578751778480248388298435190793655292187517699877483023759718992785584189596627606171737738479146836273342685273383006368847826907292387441737143381684987006344819323770880407728590015701244358921836798688626032050954444970617208160775145261916988228001743727196060183382998607517879672994679591438765097790966149024210895040759684906413943697285948920961046191931231855832965128744165830317464898975466865026521375736570581139127781481686017158905176160306370799542689945677308200312872332545342790532279167180513200615694444899875593847448231180841751920080482251045527366761319881609249302133372715130996449781728038335489953576108853276612068757019733596146518677175890835518488443522092120327035527313568333914310945508802955082187236061683278784978100169295082879875474842696614919985676449438171901471865076355092236549273019491213159102598490469910189636966853203293655166711105325550462607848976035521689862209485370515181312076388935219309885259865473370016667053644449360009498820176554235935643073714443913125715778283674883300333017408573086119071945461096021545931012582984631673776150607172816302109622809496282559305041698611490440820668233585294731938093591634900717419983880307782537528873219363411985945652831934007961538137150418876824578132763225260299732295407340535002621312248620416866166562072472797432233176218926160010353038922462849117939001664968366313778567975623228801609206614547399485077296338389367012362582420967414057490973256334450370196449825359361560762633031366375104397288798677924506121683320130797806109854092568066257950326460054705094985876425910477000420675917400337618224710890426924832898549642111381045381109468776046951965228818293685621284807037252786390647126702766958580074555115425364618645928944582247706692998290010516121807186370664137534466464600652149364624673423870271568833289631334330479937865619465543497931922763979688962253163514117894728014501389073936531729382851420208681435324259811283759972781889717210066799760071216455904528497906896555636793641665286905867555317303154271496444251146497719500237515597572325104110973439723101151936282008937291830186199896639355153465593962596335523393012750787562731784554670494264865374821152575087217294365705686681047529943912672396599172670470104970840924402995391632823900130617200603841374262686403892712062790914155146215493513037398176967329082233708338465386194828720109482810434543330280258957415037057138998264253813840302235396979457676741061151798478571698638099522096214630985375426741172119327189165839801422910244297219952465133279263620139140111507848494464473308229344350391675160403252227857404069302542901767113764032820839561898548644117915410301802735820657339015896767760947031276380244595829082256592992815639342368910263590081913643364747518806945322862777811942829374043307426314974526483501404508498948834675264471502772425181396596495349314449085707231132720994330047561054372478767085338702638993829386262147245549733767009990245578299187972125991892624188810631497436420653069572312962757955636708026087789901430897291331175980372964439796890797584898849267555694506713674911611447110433671985217591098792241745702586755126518404692331221633313393671094903465980898225411328175782784153695215371764812383008211604322666947041500561372434739918187706554496303414820806949030970436055745272321848050225973598678218970624082169283613994262582823180671435514534631464102870909910734633532193640934622367803820744214556080321028839334589454792968212736327312888330925620915552899983253777377784285933482090720292542324502388781621516910216185999735994046520634161667271885864506544483692248025772870699311456514332662775953826065602534033392484120923321763705570023720242029161705879422084534767616284926538711622644378245884960008027918254506138709011759725247309827604611485907076740369695596588742381604979679199749376529231591196321573646009107920178746459472636704202255311291877629831841354786585277213917266037490541340107851154730396383056913269981264660768583732362646192364433363047665616989636216147927954530557497061382931278276847186537810716858174446668715659577356809204390080231162438033059301369943474386895363210984831610484244887858166402563021253446851997807998029371208084936937284797297786058114408186842671279639734067211038212496337376192851643118433168441817120217506804063918160537263090829984746571274829214978190154888816403786988753601781617012531170790810911215310063666798765588197944108097636438127580807708140329502118714877843470896612776999070746371753657864286895033825361431405679641986675570846957399787575838910350432867100875988050478732542002663282613894043425134530766722433440905007581171037308391415019736172484870078548139996295801423122925748093686655073871243235856340770636705202899394258335210240935202333961519853618012957273653158166161096104719261276135891473064905844196879709464725467624049531957167623961166228626167423673487774535589391030071595958576526277611603635057089984961323863424176073163013900057423128598581188498144533374969798122191305714483924710692571115790454651101974199239494774093281217083489377514756011635708095477836986579281475241421681808760803483113682754682191016532282955000850941243178760788527843575778338135297747110541861987942450756565471069342558903286771637086965305286487789243169671620551776940144834413243602329305453025499617845225292285723295304485551081605299114703686849584702337656084102231942044214154952310162842997709170582831830717791261324992141753660667769931299362093237537631816803779822042086993514746965764401607180224531933066841215525093711714659025406076836765159045827962686084346059466134046177944609903054265223792299395396633436237994482205122424864756619199976783703632156660181045601769035882994877529945780515129572495255712108515624737550642460832724107580687951488115206845318912840891705006758360414130378171214003157633984102003790608372170817831015385644156226098145029985349044228033537185933107930274319785191950220918260528007987127235168607048508303818816242077739685663507460805280685366555228754581383750818404770758181913925594411055647870509038542854045843942862969260318345911686053520293771865827955948968341181087618630278411831075425830530726555263074570419298611344032583487541662233793552486110622867194190954862136861735019329614937355812537991102673115482648747896259709529231953145843772914024630181396376226342861223776348868587207627662031085947474638456141856474563955979698594737589268769063944824215555953960193220206489941867496809238401875851554286744762636694027590547049237318880757297190261813151438167469599761285914925641735367361176762059134745489856227029967877237237882433957082924642834398483037458084509204354276003445595226047776874510224171326549818150362288863403539947678458113168012476047453016702845803881285389549727180470794188567300454875992447158212470708687773720941600241798889969855619749287373557156361317586997406239783343833871906747175724475807112497713370191525948026099516061664846212540086553183779974438463408872274454926236485044116864193681351520136808678076390029665495802725996645794856643637949767854071882402864457271516462931722167349418811892485071553978507792445555057920332471971097537430767648773211233976619830625326086959411971756050908106832022061393306354882497108457074797052213724834047492179225865219352986706556898472113016418665465452940514980173187579516810953956285254168549718489757441373550686730272810015226330853307290223422353866159582032765429253365277435076084845802978557312991631847652418506027546816932858574533568969196201158418959762797639462802159865320712300941477292165355692057338986358760267194818627533912970899845793860407269383004596149022658376266849335009169749773218800269955744956314022066011316762836348487834262127674401543650837989747003223239210408371706931190869153711956855260159186177376199926339078667451767717976539369233239377865360484746175183106149645869140744832939240791371434561453049582796095876798785599375625859260302011050345843821805272664963815382756825179637308417369828425034571601392932942773568482587571413396848527757712973455209291634025683205884971739649185180547801722015819939377134737810186981804513295531794098663738075141057401606002980962744774335794289830184870450579385258692757949512964615491084937134391089867491687976334660765528130756370358443674001346715151697024090604532793471265412921425078245874162789317226064933360586408970627746368093060967056544643547647425290300495245512699077128484773388933711974322114618432271388339995097858049997631181305203423230348484990459049855554170832726137084839631041760788106933592891095358505872399523452044142932913242475829006909871179122411350328900729504604162684308505720053735088521778368114049137407108825241714275830614159867746143491576231823053224500446353352933940525880679053962960085686664863321583834384534939025752803516146721235520494651679166420223823282817627280104259177420869325400821108262211908399645772508076584661518277351173166973434996505979832329916928170182863812041888367084635979547821102964747008777912482914512639830973115717530835698628610183170394465975586466153409329413492177851252728134457520515453140773454916340618713220289611526395343069954215434156436014705173432815492335713301516348911660626722147617936537741881980370330298738174852700774025229872704011424284034585821744062679942012898180748589476718539310469871813269825384367444735775684457466300314324223010670828686546542461712841525399597358598241929673983812400476749618568256677540153949424576616883546503140141275805921642262621334218482700348632800525839670746990861613044805506658931531228775010426560195868563221054006525045360823916906562214400962573277725307518047645179434881072314445261568488730337839028184833256803128261427867934682928824950534408655013599209981518653786593472798963958127794953499640071808419179587853923807570167688993722196088585188745517931928617166175596956506154771145097259864659297593772422071286110955314913690136836929472106053574232501866530852514370965535183345200393438767184050768242136548643620227049614219274700206247112921280310820432359072813655016300572563815472927840455103829136676617274152354366607633540218013145168513001618912973929094073907905367345949880485405856106691186217525669545703061307298737850701892285342913338382748120824859729388895292558689264916071522583920478439311543666404658710313554609162668631192403944013227909020243946653020678497657415574856918443635665346698234002972459890242914752041667728905037787108477814989399563724082102741503687554500322236370537405118813836146795388808303576053376779460101860474149693373177084953041132366831401203250655833114423390094138356622363884436981315393372949600217703115971648665703353539672103366275311877104864963472670588784848042454416644513449314417831592442269620348601790944441075690416286229307376327043246143095232004295914138088845234778968744673015674875916054680212920023076570209887433271096714158445141589289037290091165074593451585777296424581405770155692985327158601069187373746559996880605669507011217566012948156325363776319719305752661923662567753884667825599870864286895460337922542532010320468935372404267986251964299295101795971353241913289148969763346097100471655567867876519883530702241800350896941571665066072152517039861297601043176898253168368512533496988644936839798001641785571860994747951847164288818006731881967929014982576087958787179121776235597745266248968333733968433808681929593896046504092762406718625222196082393731718831028838069002689177041730816646342982548696594560573403192750534889105829673228099021988255874535169161348671301512519660733897699986134062630919138652067565506792888093593520362393225555827092911224464281593387659416014692660143704915318703739312080294477910697768257748694152661872185756204148820701402009224031613576974573258889439970161119109422939363075616151161902199202783080375588316899749217083130591862043029289974941586935984997461834358252216655949102548588673958939924249306094217299638938217013081117335738637337151248596554965318214124712793854554549868479055017217322403730885274131072075846696824029985647698876159097520849551231773787965577739475975167891214201297312787982778748455017044790141698819261905864009573090509532344101510924910224648617764150956187366970707705930051021533202005951476968883463575863587355526287015244291520400435268944765898005834256858068287349902025155912658019125062197902361195683098118570850833466444641921503109274416600628504030527026556560777969664971094505988587039168773724118127314148591804332934866974901596310527297791798494448839789337468182206891632066731780151637571367242825733773716705870383136574601129376791560759896905107466147295330376131424399958987564209643409197838344282897094127738958205168362276495349308538564053247280186757973142628821504521060836328688140423714024035795516631668327150041167289852560603304055983309458020772894793046239282218358652029219884300306652340638684770251067717040237851264899999818636432093620255652573519148860281859836257851748401811434285068464270706814729174301966354619209384837812239707164492911096052923637422800694857408327541054457223226313798038141332090503122021268871843421082701813195078207725642693427136909145407494218299527058512290910812517526865682037382963017037490532558875174892091256125008145727059664393916447571324295440878128290025205550153199122954053883443035382892876959029820119566485222257413569163622193124196121129465914230750263391898958476279422078292967715416889359727871278171444618399034888726388076993689048155035359995875893452591077135797293823547568862809378302907454924554566210711836696720961026801465554443109222968333734934878208184956345060255203699683827294253084958194270007902498083342967058715606043450637187341351828742641436733094027342819478035893281255466804950327608884685149937351415763240099930760615713341012343260376897619494357262470465876795988549235810547395541890552777170578872064038052171665000850163250844399810503359323815200834065726621451008784299893697228369961188855237395558684957086699130900910000400944194483372936713371465475581273205628159946588699332260219794721031440006588945435638121755624819230781463178087606982069252051329401302503244466489136707821321271157918163064091227576134322181272352977544236744101701625868734591895720528707446704338928153130714881952645103896455918160722247953141002151031277308903007746906942216596884803864059434224309880000809925168351824191838377619362965395747439653677543107106860422988232205285604170580755279414909913004980551879622112665488369649827659651656418771074990225249097859504517832226733447443251716215521518812761795851178613647104685282376001276917977263608688449743913995446235740409704714308073104168169935778464729595678687197694158651958783567570582701103274477058437693906992871405147234821123051496581447846347748349679857447875482112000749884375939646004344449896687704236195312250112240753917274749999888001095144276633286975715665067866550193479330634054473160275798007084564143102756221948709541507690178478824542617023538146116032245226190111041814147172041830789775851966466248661387176734985654132776991107405245050595724131407763342120407458499793863476113423834346514520908108269968596152395801495775013106960662680220012753469228415553832550522203940540451178972539188900299066595953316098388731831238644246507223282907859164402020634071104287254018095393043911206076360071230619303364722758302478834790861776090608392652979991141255679668117371618625649353654826858609278786977502422044674642165635726546427827500477584475911167852215490997575686266831526951014894748465153566041691571214439525950185466887427198133867043405105557764739236725855991606883661873443195201202815344759407365060988888046285026251608476712847946826208627791223663305402685596647610600793250892052765816855497291609952129427146140009494572593805171273283894208814629039331009972576648858701849655850991318928886933144684146225214698673315994321533890784927953481159938381704549900546975093044233331142972533317987790068209792539849628079553034187481262134411817710402930989790715365042650680839140422739921012408781707685090683756225923812783409467747526505916328533217046225979983290424695055123498393435085161475309713446164283155687196495129331622770570534608139416248504896848944024291718724819551086761956018663847992792188939711898623862280860983607289758391777720282522476010495658895422489984963951598392433513910385350225720198952054009977950288639595699895547374011428212509226111012564460751450886323266572389247585296813203543669650558222328641417392146880471670746376808455465299505769715578703195797405353815569890911832076704228422536681069631446021382839171431988018765363933475874268845732391883765162057282209171949472269424242772913681153817979194184154307906622945338205683377703014980538776785335197828468364596379880850352173040845634832020677101877711147292245111414768405693241677441163367618881991433268176676716977301813395128293464349906221739952772622887410217879489540198386467732424730946349466240577118558969369878988303129110865727094936194763385560554839299671053532583959520789650579765352212656755535604068302633631718455061057111893454825378371983724247758356459659359056070081854664538293215512270997531838118613349353352623723487676424119061130853937393114361396859997663106769580179166039488414413942226805931845299216824012531360261967747501029065112057913325061794836243737928245712864830221438063687427804286162849686282717091109517259397919055108676245630633042908676996031639033464776557754574388722216844683206292112633108270264318993554342810714517267592462530640853042776364020508164082051085583502008511305976235432949635806981227786250585758680650173239818528462998729913816411721231740459580132064034715830892770388692103204208080575232064873388191126890531757143647353440874481205478765269457987105756409326449940069107922458005407527611148968052031628959514470984680713128928183807683202014290939610324645411781992953931930598349257392156526156289635130359777442537640794287693315134990237422085990375001831462451916415789667746065208516162800009522137288657468946498539842718932020321301393390283024093699380012695403966610095075961787630231004828672416300234793720960824368221776453195017850166380057371584925042719586552353666339995599101469447378460105343052759622767832992501211102014232404711383815296565481657836267742992185600835086808211691328776498991268248732808243157390541013119607215817022100604623974953843012232121691228499763689814976258675460650470448315949934165701954347959388986609845210810603721871389034063328469107669508941443179394476520688552087547766079103679260710535692565976912769893786784038056601944323877639436205793528637106497821943625772669023706783695573851913097844385268588608189654421455634505300565781973486926112778091225538645783168240607762552646992501356612310665034414996319012746920132043138298317090418545567337955657326356304796325267204644113094263280530930365803932888590431255123089367247067241341925263302458998025225133250308662584782908337107264127455888742706140633882109024955540313251830632418571250907595929681216070465893722925019512450072748656678534085021163067825035370489813410653825227466834080005980948905104411886992708537668251178733781279941094104870319849492144986508600848045045950424356146954002181579819102868551367019162456281225492419773168450780480296942372980059023901389972780616375533404853256141640182043759550195547700825039104962615386870262219155043345775980339776233112060154030783221101788237309829010068195365749123093484521533889024021927210603140212976452473735039175831065266235161658079069247009489465685012558145510962566424600332401810797145022847750437216913229452125474192877403158740385681975254389189118123247417441274361212301584599194612546979061876652136284491706025523680391202961873831426526817132953319087796577847987150739073537183157470361558362329810474272957745880772672574689986946763889806325975624371583175541956865490076708595543102949231743360754824144233407248361265474267743928129963504847713328454683531691382494826548246958479471480355325610382771964226150099669861741228746993924487855000166708554527631681024130214181146321442383347367111465203940429500610827178385508670854402240614420479139204623009958387025618148989054228660858014332734344855843512252783380994934571242570299460896671948583344348951554753530689723805152253198954499257718014998166891242874102297017950255972414919643241705375355487359328423228863243498301848215929712711377870383981256527168951451991857188415857097135013170150500752369051992283852087795225379664454616655654953551666966690691316252036516767856900046050526142537250996512148594330971305363008350103853263313379280959186789726541921778525360096964696170001272076612491097802680486690858809047495231024443431718247612878067540171122722677578394861020991993869964255190053032595040624716637296626755608661409691992834862336656191286348709063080986439841529052946126563603495700200895370408380813235381714639888835158606446919857324698015054668161408302972438272458881864378967712876737093056513390615711742643993620318184575409566930319836816118713319234415762763720595496686217631726044706538027939991646258466695234908322495386491563567347840125483926927218889165977398407722267302348897178726114222524849184672812423946825753627663847018844432458564317796664627932921408119953263834201598972367021734573502385497636297627358389551999738441380571825873259333998192608191124987152520231284705250291851072478216581578349461821782121631333820120687211322449357815523256666454819305708144314511779073584041215960178678988492303992853535534787673070494935623310546345301657746412772936898832670546248908055153840590191875935384900127892612149742647559085199222105751716320600764925354503127318045525070431894331711654765807615456734573757150043808171288222484800269028960777531263935746409055003262147672187282930716776335409488670438059454309556160835380544579806134617883809005133872546220363039273259392563813847327087555158388166073933722019098434111282851299274197443228446908392407315665283577480518380062002466590581097770725530898189081701843015995305748406875590303370593292830047449992236270870572159048452026411331015100397933185425919319878778297704220157496653696458741876747294424492876190491457550607370439017117247435298230028022789486355753794180297357175063078632702864983626248661960308534060974138109375079246965931314423964870053460814276858291540509629187018140967720594014828147231502973056819511625803747248165491316607332701076996024517125423344776634546218159862542117477130594991089788164311450669262388071847337512786450913304060997254046220609521760009218028999882008097831120925017340152570922319615311599793938687918115159658594794843081583139030588213480945968865965665789921563312946457445505982667845906956513832297815690977059198509140346055809680939034384696931143999767740321857572693169475268641823065496182144999642668731577062664838522783135642081094074902636621557452752096229773192153472897233035079876128684075500596016410723460645644755023390980844860572021809354334635206542428597373018458413169084850486655147615947128232297656145440137046152687392774672992514881374026313927486056997769974427854145701014400881278277732569922433468044931190934637144565669587299104878266260730090030841562264691993633138182138333623367764413847022241416553443884530173986439406165233617670633808026535373625524736614216960978383652463394045252179617981940427713219190509806200076247514300160390607324583016162409996675335126461500841194921990279545408945379236577402019696318477543052073205859196113374779185480897995470768042806888582283632080909634817593508223082956979010987591950930511433128063523262240500581597018395438741431432075898294548561585962059664652863537828962971208650890692382562786478672219407413433941963248464077751978799097174629581659134621707740548208784594138404356007090070839382797929722504952026694769309943674097608471031588816069358048150075631972912758208701993092489428252992998557982440008507017612842153537224293106069159927173816266207943815203581774522848375798269556438854826366354230169387565315135746293685310352214286164671065334858677201945967259247398679044861841096868906130988093153668742061362281200343180586470059887476366824925085460564472471720592752123594315249215941066680872419553697557658034070474744590369232276192566417169368520624903453840692778252222268434235697047741011752087864111813495336927778002692823290567090642991672793916911115556648339163669986115612191449602282747185460231244838745970100486796661990530839074522318931412523519568207607620406094203949160875790320958280666810319653432024894460073986728423242343386136584023904197485866321754158889519716285371687806390835115532176271368776197337336232372313648781014162181137126351867312736616173809681088426381315696502323566467567679143799486396235914133879196335008880284172661336210720925243652373841277346394564256955406337463036989495656082508567878885450015678101255140169397874072462088853124301234100532600338551261351668280136401673594302392435719396983553235354665753844729527357703695692057550361350664165046307703488315918857809545657952946753567155432434519013457005147918568274692430736471415881796187912588031036927083173036255303142365310689054552981295122940790145780731864555976654475362283242656815392941562029330541401282451642935627872613184674761481405200037505277935252107240098011899743133960053237746914828827087247848415881238289995519374897242705796855687779465260129577174822979088993582289323428894738543387334654401435248624019994934687842407406000474346381005666537274998522894181161661053577066566236805212945521163387876889926839835164653200244246766597673484163376466863065523142148676436740654753337774087629813512427481383196920225320531009778911386268456014483540733556592267532212886671187170723433168553772766469904548850327511685900142256103790897750976223184421575239220215648579204351105420264186185498146644215879461462388791677570866965680658873948237582996851883664245847759816083420149015325761859601296764316786362124885702338582033925795059531967746271964305132498391517814867427656888783301092611221737905293015506136737568690955425712582622562507224792673667178341959731170610912628698401372119838951218919405527285322173979572959002918432512145409593307668165415047877003479997530628450750237577399849771872121878842564408061652500812670529376233715583142894928069205862775132468777062647634590683650027133864750054161346591498394953204731593648982401146280141703504848490180429068873729196802066214094946571243970248748087758668613612384640229626403670724688062765236263055792863255961918657002172866245237890886482687242656090698398640794928773590115146471516272812762491530869355757469807639892698898683756185127415802829072695359059460661214255492535627811478680010556193761902149830655635704705269531335172879920150969904245091926247322901783000343979010641164931311625892551609818096343006464915678488741802332101177779240892066023302549261730826752858023418851574062259034880829991972762572346034102290706896360026289760283720956346616465435993666813656907178027358313456593414008453525557665726302587119733452812257009884960567909036087378691819850819969571193610262889624439261088354763168433949742139019208170544113715846880547694331270098176265430295056688284056928339864531970144353254870907102999880550752557150099223356836388773024920511479229117633377216293170476249842082378669017203400072714559868651709186895608591074523154268333313977364783194083609167093723421738997917191766013709226853645606366139079530025626737438297784198216026741032875696787257582614745013354034099465027420389936276065626832924536856162349241289809601477633353999322155032149356127025807752894556393220375342133382199732132796053086062013345321158831638805742245410895298114339866380392569720958001065433576973444127169292329317309622899202207137814870897619084710123228641190968774762779708815797850577147009171970281959978185298329948047804172844299847546195623940411138908629414673888961417386568179611991958905736160113647949846815912193672415587983109861405524325602631971287341692591187749694910289066325859218070568615375199899427791679154596568148438823867453966899330695594526218724266407432696674157851554321076938787856393366472441250976804906041603170016422736655048901452673262649079354878290483678793990405773068737402559704599888103950331272622511156081967360354121195844531880081862870429118760815270928297152559912077444684252295026346267990858028054058579552966991712866727378379810619848906850893193527464129486539636190154352182480115175989257601615937182915238607585850475767652391690118238684996144662875057787744240553479754427413658813308709337263668775553355360112411721850046909139034620165059097758850660658904385076767596747375652401098119637194397574046508525277682578956912020052482998100845793790308484758132802851096838418774541922126270151659759619322735381323707277774207643371530614491240509116913719116217955676202907032018414114765719236897942321324003914380379809674741343575694760769859295414217372316492695170233185952183488924929187216579815133901082562498194924456247924431921666363160496371203521495987849264783248703467088157610521326725629770125528979343620128049819413282803377581472954464408754452152921435515049867418309901989532930108520562582692698702137926740165617503827194686076516315267513680247636684374327349282706912619900081555497881820432799972916015301662444102556580648289365110973553256059018166730472279719166221420606234574895128148950759563553153100066778416979596556965262888850634948155118502567393785557820544401643489141069729011693407545273196147605810924438521718995050805111222592791449433215007661152145871383211575516483022425508064392458584585249471577652634253305217393652616312395473139396939597567793864338763693283580092582754619135094658977825122332596061488808715773496036172286480231881436675469382988814129492012440879597242382220241892731888781364716667659736703445101524882523543203629577111207524490093357181612779080753621854180874853100293699493217506685124744911091203611210541635058424024903317539428751193908980637637848085711186789062485119162415459838412717894195859707655616308722119339537920289677717356104078820022334735122394696389378069827811356591760474613988577671628102138293170789709208322978628817477267070502484332609189486159922308174604885443125043248160064694957307768073807917033296572812808697196747132686560840404232607552423187522703538287463746700199598492778592691385474637057418198873877390150421841399337460436150132847657664930177383943699282978272952130572848672607471493546354835575997385108829057666871535206782976928116157313475581226325673959490067089694365904338558450023759657815773583648533705438325349538987471007079122288337658487680190168869823214732378465679282209707061521779545279168060697573352698275158171011584509189550947019875293330526134863271620653882674422521714360934040689554410690552609412050037009842217133065931311487227520691131164751635291760091664667962717138404542048885074162700288911584356751296543403092321988274700242174298728610403723520216515063322082973193851747539119840967997776413522875198373832399305046942500373145478510634328392709085125215560636127484758724182373087532006333906701132263648448569475438135139715750361462411495776814097370104686864015941662621951519574852401847595392882159630514256161027350098800743252241155792276900542179811682601418561987946711055132255314895151121940117985789175167485307444897843694392561306918932595202915706284594556649689189013809453978422178680399220512630283229165765649209435585941443912690498714173990208307189474132300652250840472114184320885087043405048041847413269171285865782512691503719560890389970954897096352121025405803784892888818582039156993869482755072530838653189651464764454534908365336262004435621328823875007576944205870134208292219440846038322161865045368713273573534500355516553896975808037809949057932458657701423528816416313464901846509859728597417251288061522664749133821711132015348947987614004712303556592392138582665056654321991370188811154649194702722842161415288017360593135110986947894110511792572143395197073603449977259704739914256804753510362555586141050342118874362806530664644463689322988126619985719577547394812312511535081838846168396814369798935353180439135179331164687054745400638662275070247872848865508593639020104114892595711359665742828472296840364951417612816079239023815229829263812677049043698716646170952365119904918420929730183342295940581517193272090845504805443884850885069367442437346517060095541243831669104050646054796148952100061012036592046043101038599527851963444120492941664558252133871038324639566586357965998065553305906447353413932076698467630225233233732048539415776156313592251454050331755626396023234764699055162929394744223531861243081165440686159782836803028471227999509370412670860885064171672147413067342921008673071251948315643852898036353690730853642148761792989188808784045769859207875358776634741504578769209671626430399550254919526327559504051670701478251095828246750133481171601050413536595908687489218349689932640916508837982500278145512062672870550180733497976597799100301562176567793132149038566612297544887630692984168497937883354790538282522160757092836426542055234339665818381911954013869217422354395366351163177467012678420621627653463362643798300899198328215062406118575875180910665105173874998910481952751718239019729452704502568292303959421842037836840178109589176699569701194285221895743816939993410312756359525325388611738022084429764898805635901803423083637633312703585430305259567375706268412090771831248240035793914413178194166457844502234660612477223880690139240315558175079378381631728587199445830530030699783427697453239392177310539057310499134213987192705711500606485159281022513145596171052377540669240881797877292244232686253192460376546240399305041076297510715204362626628076638080483422118692616197378895338533608752234045861832530517159578923520644639725664780855830970282018635185110505627395819825355795797653992386807161890562154513189474740433472311281998153442045721999981011974802943500628214955571561486450489954043203646816831419044140002896957461235590353043483195795163620957191499825833186241244118443116224598741530511800838136028727592575319836999079563144259526483003828133678711989069551263192028666938476019791943544404428092799770567809127632224487905784735893152528061379194135207387924812237354294830720358400298140271558523895903397294469075656694048821783949494016166266748716900583278424725004193707642813940852910416652645159226902840228835624403501583750871289053912361472759754862677408681672977408275701048708014290790726533329168739500167335477884770468461334089859420778000619847771588038324809579959882781551818313710972868908332235753187185047762896542734314303701887912366843806019665787472905948939053458026761164903828160342554725565929795599593664852029199864941454063243468479871726971906683318477901230581409235223798035737668687735752303905281226397263718027027555325654394036956060892792129578186854715043622634028065734219381701794651980218018485083877272833341876964074789714286197345957135218382903712650618276485858448115289239588260372905027286682531791184690909571816346929960662912420934438592936269129430771577682346370270897212329869600928863179701032413388402333058736974556405164700133854647159962116146891001493493463762047290361770055278984443982958244618614872580273482302307134694621652787883300489969646099892882225689827893474624057875794731445375794874098444042660776587332438744920296099679814882356032297289357800251499300265956871859590461051229836694213935298493276158739413157017433477680268822887081335677508293005441089041243095780942384938708776695023289487182553847554666009919451429125382013439057685765441960591535074782535321799239544751077997456485190604341082864232346672586629817977379033555154494260854394534096206654430621600766320129270328793338407940168657096900898014552293342032141595397870067993247645515573243477284289146413331782264411509284708842506487429338047485713275093349021073699026265160212589235364657783962048829987527520014524610844715193901660284202830853868169415075928792166381439354401661996821190001892292388853163155246675780117251574855807205321512279362055564269430955100442231542490116055807110580037454297742438817376403298993613421568632728300939562403672221974625778507035887342226372238768892624268121248404852025701481261669892424126257171793160249525770194187889029262718888005680501491106210029331455868940739117156881035632624604303746840287431752827159370238947094785712491290201186095320040636796667691534108173597408371422673893560630065713014441426894343474702264053012050624498842603556423714056108690311418740175311441227967502171959988989483077749500415506221130796147850327618499225519322041913604140578374403765805180716879541367037063609098353189393928213967689057064495924344947498903861148810464477911058426419759313265769960019735346688405097120640743442625076141529105041615050818182575219057873466297262757069802839070015876892830058252605199409505292654026222632231771498890290863085649089221871269821299612969233546051980163260393358545120735067158646570822415636435345267496530413713071671477965766020772669461551953957782175973937684434921567028792567325150823010736880617496806274667794533847057293236502100328189876503369792102834985502644937005351227988336423345169422045118738549774234432745044077813326477157452759491742775569906953681475050421948435945812519188152738926708302891737798515112239472222067777541697247919215058862746199999218295150211264115516868743002370658853475145225362403105608647343211350936524692258636042528104958482082178780415790832833245741060249070663757360631159474490704526744769647315728526973399649310612741206258964098261170220894529111344167970584824565266924128991691577767415162830802296913913495535071810906265055615362344763944933962109047054109317131303748444499928186100343621032580339416782282299479838496610942124206745331539519901211237131097429980668150260793306549364928233347899079598819249900015149361797542697195834451054270990711089261271113119257232249104527092999351267763709679075930164185304645652008277112891347478314960312274216904320990698336149270961879827938227600818443825339331259367719577119827192527938780743281926237783033587602050741933021751461938795957226666020771196135377773198102741754646770654022489101050995895388930969630614528184715850321729997172429664321702962971111114045355456735228569636471098137231223704467181656412562014736141745680463104654869110146884641375544793895997594891600259010404150233199900773264715014945839931433654961495371643043931359837727397793403919292516311046262476209714962569464325678699014660719724578855327703046197923887926000988532973132603695480729022122155666503960210964909397163984278487032504595708236688266918398471438590982011944115624206761261628614584394681104559967542679384274617094231825014824236967562816338663684741689444109431196304320955548681671112401955342939172956605586209270581882764935543489444318318315531362453315690282848041925630987112987066154854204698968390439334853097615881010311891503215418710937208638338098931560734520887066184944161229172293689251101236220071866131147593002275282523394747130365693617525334522102741994810414057260307114386752233525361461519479284102993704772625599978416819173021257547978493471405006573250565284470861791390415230394937565351110361873903440706384846804551928497512120069639314054255438309003309354648648851048523358758641061037652315152398776583849865906556171053302284397446304989910409439864350675749489506022593576923272548038111157171559253857705693104797336456671818354393824721472705351179432950454707132906975286675226965578397449421285752224866237319835830857619613683512720139579832290718575191419577089966093720273994175385298290592084692388460363349461384315186849515368113114710046137244996261149029417867775332274075178602742001936867860350874668510185702592803102272240949385014261753129681777492931660428453728687155088860954778782993476669562945645836322431791191704701837360420457051678637422257774356943615893993663419881640961767801213123640138108638880193763092604817743944124240032253216364416784138848789454052164052691434691549921743840474980181482668482697499290535260242252616937054011552680496917968612101787384829764827406323057737658144945899975493633675916630119062367853436428002197530528560444990384185334937687794360968053878690688530765886747228796320996699615596613770290768324855743940844362017644501343425556911669445359648490904675133602096215673166848183560092629147962114475114304587029426753487319956739102735442762441441421352239239455056189163504632878437622893791778841849249488628169633986793353811623754995687289364684739052071531875193546090022459979869837441620439532625656096457135951171779304293067785743937783745676509841955987869391267924658593059776616664040500671184734125484100475642052432371826274819803898594393965363032894514108155285122674760702762033247971001409800817510628864611433335873089563222016617268262021784085465294075150487931430508350438215140280129716739386991487819970857562815314978387871234970571505338229544876145026014735584808106656837588949813648256029251917792891397378294370022206539010819392034848806188636423425642627053257107783621718247055142575256600980879801781553803954259401230751665494137354662322375829899491246216515365037263848493160920843334599597136796466015703655417356356439765854575176266182016246777547853724913912364385861443837086896913704285769711203919835693588434768076868878830045625031459301954856768267290926330977452230116375781816753967439580500185974830413560860617820954632211235709662632619693557232761151606131615708063899840113375807776681424291069342830629768551271836333641367128102603930620424782136908294964616758108237846156318861694063305722280337873054554251374044174275157896576023621719624249023730972559261803462340472803886020652485419607218208687003923608661508737534960158856984611847754958226761729332892023975491338985364073463512028778512511047456263491619472147344891281660546729845596888442454955781658634483812061319546265857469306907409435430714456346926900454875870541358829703736985342765595213421318693101141929304698593517548742389518865452062119455232936575013698363496651421712571226354718404858588383162467141021190038866583794639654175275477696065800383018745498715402400711213985928571901117676848109273283784096978708282273093236299939598249138852415960913011814472100075995196544931502620681764324328601801354302676989204248877337580684598524153445627513415087120118764888611044136965622757656505656365729992475943817441073326329174974910412952095577203628606781341824738035517036834991423630359189464540407563021586408969329083376278210568074640788749903934315837337341018979729920105320894784473246694725764934292107081637506362372499928505062488809815559092208833487105201675115930480157994989776562072186602284932820012099570860814524859576917149352005638070602754008057740900938979354456129830837223295124484659941131128547304958856124402660754555460911948527466720981482127357685242315438983584017476829504402351586345573558661751513546726674100212663050597602028920434260585302763375578376386676350022792537344874888327141384584440295041927743234358213613389659468494271082567290409700380596486360007001479270829203715349265681155341911905580176077869932252418054842382822685867266682829738983743436690116204516707307875521348000423650378896226297656774312684185412191258729251253374653599272780425524264807006221773391660340507520410691543447216676280936017970753243508871673052879581194087201601267259366767578910630238845708119819060922978485185044649703295636960900260206366996572031948310572080083418183115434855404143532551929767916063711702013283957067193473681322681939299293035194091743440353582709246685969617060935329973304477971025633044602598512185183799916811899082653362217275391862418988027960142687071570272223601580601625575073822981021669798920324538228790062475112777393896351778726454191419189929774560344780540189791747570016312264426463827141634406907212554934693400219266853722912777366347900383176093902100111028605517867370580993553789129828330852719241476576316679110332475110743124705746794162869469439724034304635809909491841520192554237996075316993287478286031554809147927492453286092772629759109253264870553304674367249063904178693051664199601020226592990770502594271212799533120573123340925406159116099930381561498078295818868217931835559509713092373321129382977002083475205666823038123675373657770525687014607994479959298336454324230315870929325993206623081741406709500372866905498688790604884230829877256140714135687362816796051108784374661042988522618056651919813568385125083673536599425606302362050883278268476575938225561371985870615087330501069343466532258550897952040897524421171226307702418212772275431439365791147063948533780963616707193502858489745265628335021732677251572426048252213393730690459609310792743854921973886135740317607506145091604284213915921321609303213179097840383646656092511569482962544396659666491826804927096932310076046336640304117444562329890296644964511638123668096717093580545286842128027024188052379338930356161518537253175039519078802635153305736899936074477286030476476937506423370194019415609087802565540710523171162970273293426857962065426295900813899397854260862519354510720243733508843079196019489129447608136334655953769212678427937706617505905440056036885505308614882613862536560695893679670415298943852092733910535842706126622497912516761865201237082469851312075927503087417469462732751016432765601664211055158072477911936392984565466944089233928487266495177992840100386259818296607445904801012510338210097845261807431758404756700239502608831819062756735131929773605800376606885716726322912585392414479060254319740984714745737805300521019517541283193970664154444924581078432469223408382410694055740784537381014614432368198240505978602449618433048314433095908375067289328331521185830424445801144654269011233018390185619446863420105372123077147145501513673781104074485646857255074869650414642415407623056254356092889551292720498551327793460369206040803625300849065818382775343022197952883559676679871214538758459423659200031082661708927596966112470670178926109402411583175751671542214897806809637537954528516399979749175787988057812103539717832805346381428027810306703091273733989780658939763954771221962472580191164968745615467406067531861021584408157451832489281078564216795084387674942767633639947531103353294045176880381051118194797615012326632249305517065291165718175252864465817262943422177291448894211938372099754761190731166356575260538450826007736739829395976979850606879984315379115516819084936429501554239014929570251174002254261995295534745216529113784068765251945592644955214488671243714998282194007965914060763554793982499894578686763702102375590376257007062331110544351051636136950493252030247630834911496016727660608762627577382649658677725044883525135948090027254499941558544699444264056650502772597721185919722579885238948485972764233719782073556584031816314268843850933337818528156111871312319080181727100661095489905240067289361408783458406570978687746414945657550959906693568763816320714507597422436044474765956012930961658072446981896963362271923788582504705708285355829314275451014918804233134099532096956697192615381734685499647443673269513012668956082904885817997355625205850239456050310709351797205989883244619650028176909405517876798007434824104642125020336744851479219616847757520078187904924099335699707514364013833217431921626535030237251350079579337966071888363676412003130093754902072090575632103203040930834649096452058663592290082114798390135661965364567694743972016501897125298956161600799260219218897888444086496904914921841875052455921698846006398008245944998726109230531519378618181302956963448545888587110599995345904677718460054555678111254448395697758279166874719295725726858011666504163928331583860036923319027816561368422025934996413490378429251533722149884931039731686180126620778326525809721903206082417053321163583961726480035141392025439949612110187046456937625791681994732076821925068255782569939607312395224413003698317768191005127979979608382967616275789695781622122701068713507563808123224599138266505383591973807645924224408811841958249574791832504347162376486916504793389955305106722168183061389238369519369341155791996853942929745555574359748921908880258358600584871956009798353347780538165253127603939634240664460498098085436415780789367725495593648438374462107893080219761067114516574690123584350768552205396105310270849538151828642347634740980591751675906665017391453562424977478571084365372824229681557274544855986704490696193408774668087643025964874713425265584768716095436652379848999193998909700647821753131226780984579979350969690023096579175058275730956781082631483565503573779859733688483342714746352116287952846863947158909123624651349130562429007023761711974898328235325738905773105924088006005233581766873422916864553742316919023510369018342632058684247880081320653324349253830951855478607762859352118544320716947092489159039331061263101377752133253845092119548802832169589047764726165992842790933163643069658107390996714401901548034421159030121511240826920551766754749109743093483678589454523722508683607669363260625226675089443289729069175837931911553651303116098675944583557863882406551489137037953301394643117366243622520177908136175047163735402689742937555480137828271350410703783142133784547789316998859864586604417700116023734344307943087979914130228572215650099723849967594080010177850705244117031503404400693966930243775016389801636440491111608061864592901194730946092997220905246739413586231937187430460243862979159235409914104198136783018433651218328968335268699976287064572271652471122159118442990067323737826700949931304918117278803582181182986699437159335972786168567010572196592212635256653809624663146976969212228678215302888476659526777703110084568512491561638993530197886985068204146009418014199489651572442587236784109063358636961755569287201357238564142715451630743084611312880804176621643863227544269260614663677131347826612266990334991613765100145157621138538060832489814767387204856062400413848799692035122159739714337492477267686121617039145221035183232425261159808706851584206740214823166477168927978972687527272566274156866388619923290660291503595979009975381314452303088655503289673717390903997051139500877136327726312007488651185098344276226093614368658175262792207497626769203086488767203685150175779773283872145253820846557103458986397501074727044628239948801171563376812644716228542054314957507369220843377829073991467388299086138989943271081823039949655281185218998304736325237372436417762595557284211071111164872868380676760882359150643250738972096982588513285750997281130671994031028768702801933684496977534073318303611316034119636606721288357076510600711874467508034595814570940932448099177484997950517270555772586723545448615040405574894765675468254312302907436540844745158265101228651562782847219357764815850548809434518228924387986159948293627688617415446778232454975874251942667221389375123680783214978846574161190125695031076310375693760364824086070345271318685008058663022958309963945667071648437048504237086060034728048637667427652649622570174363632550333011536770554262285295487427120042522787050548612798246583506233895821930516823732949039613164460941762110423587980923131985217705420713356515085961665632279702857222457888536025890800247695037265205243913106020393993933605111145924151650548364208209130294222940953295793238777840178289636713954698998467088961283409091968018451477919879448571548432956252452041373868094688190626753938223360779207203571103265421549939651612946721605990477254755222885348786530517617306399879959173560773622801907194829826041423865756285571530074912114950368920753889884916909311030239597656260946584459562665287487691506415930195756866332551548212279687405473904542968240654236778036590811286293394065116596642078693017245377418183626227193201792185413640099374365721652217908699524806889922395128526767137120137911529698151985134439335406478560260099626497874052689498097724779784761601722451812118907115424042355208859639740783128461584392440831855183912527274534316215484414839831721379246607147321257632171536233213945566187860872655700572923247526090603835764927238295866406211964535273166251991888706469431457747837598730406405442440205796285782745650265453429215645188217678753276997781101292563129357832172011595130893569685025636137888912179412187902555928926968259486926483473633242541316781319313508070821863131163115570777546211549266774120698794519202454314128937319938694965042398947276893803110452682780910131834660531291878890039020453095846069811872875059386265510293391805793971891611722480828734069365245047178530600364671980279037508574518347034826534999068025237654595686234110324290040837947214716952787678147148558539588753847626573737059919242383031964700088787907931019682742365981883999205780623194013423147495022757595341805748635056442584679884534352483240968561568728889031522697386087128408761568556266015075783556865087586524625725765430166521261661727857948361211610163247948604800211380190976490782177763645769005996559933524457320748533760848290123952446682184484699270294290658255163444884667846542310751839843514240212846665959359339583891954941707763623916175533070667028644123124323767712499317296947653211358587999397786840342831841139851849173684813423153126891586791522314098287156892825315333185780187052989140304695124596550291047655760031728987544557342565546877359192076316053142319766875512051189457728646543825444310766186394082437621109184700154452799384062426137707961209936580157067484218622368946878863724602088005691072504089536601833410660142932258536409329682127381765364234085957418486265021800397004165322515486494515699268562042545748982991938425568715996532176530568611994619377299770757109793146682984740541681576361957975049728488464040843621204293681139599502483511589059270507925936939751283249942173611324946878105569420997701755158240615616348258316179123662968996391685140739855020320331667901160834863505342970335159365288334285999796675338266782332895079011389452440847960541024305295511260692089490536620758750628986253959899889867573160396763962495233466352702402236096921210584149374448644172389693673954839253351727559380526794294443277238333780257438758138480277345305241607543637523127244397751130889440164361517989589042101368119219365636783664874831223512214823011823341416500382066189327163370122768050741462056783910517694740438456391219529244188387834899236285029800947029756978472684548321558173400281583385865997282723482155418478854468212078338252286402968884474182257968688736541816581632879457787497298210956336423790279466924050695917167170852092310629948082047231881991158690454007918520530288083186229650742423183023295203247847786008202986298138799573364879759839640920383335850272148034718763527262248702867373740885185854884148999435199020083850732402208925235171608148860735958083091698977811416340563997495267906776395096826022184394852880774494111456024849991135465209273011492421704871772354058044084873119326453842316520758579880039758409879383730017602261233273311992853874219658832315447713476761501408410725959428025691414020364449709925492175981425586813032759652048346762749375924369956597242986383008685481352638199129271264098151630582062988416264013851894702520132195085142164866047226786088351491951398098134942342657599187454266784735781333257093645565248387851021040563454695753446991444261348670836956137783691583110254189960664856227623380150243728665336339095464327992050548494674517031145933736027462969370884289942748170407385706873851745942409669182095782745324208319358439265384768389302858245321553077008306991958550323017827229772054530331167959611792384473624883319343767025646953232817128102214475284203410974012344778329467921723259588308747714717858295857526927440383779399578329051494336170639548812225086398499825168507212005403313338778832649579945506792463266133101939649897511259838271924930186947061570353221867704988856714198171873251126041930158800124506044084074099002342391458666943179455302484303090250956952511233322296408765926756574730454998830937649230541445415669035027288874517455708399256423097279086869864758762468068650130664860026332739829241850083457612553483266706305481676317096198102955518425515834232608722941505636345783665814853356309488190957293811289612794927498449613929332971785451463113905240689145613318959518214586766425367268948828087561402867370791757020459815937501764040879882605928582272581193631797642040513795365924018756962827166270346925152775145913354091503546778367374227663618866146441975767861734703166729823178361884788785478171795063823217267788756825166046552558623811947289637305107093631831495980169732288471524978389643052775181711896938211049907415050380632489497322198150070648590535373076580174031807730320664213179831975125617766000971895126101745495990170349566863381508145286006749532094547874570950509048319509989099757155029025986447319432464799816657407387779194040172997223253337696184550286568248503323419795109773475353119684752244643250705881613010293006512851610309922570441420606745930735232138690490759447135917857849233152404648937358228386354964623247708931827656707137321005693040513584581762297514732547404581215726411376688524511525568602206080736511846470215570671421361897901208402126837292442666981487750087950157713245579569366724011522830623138898610554928752083903231459492054022313427102399354649833031212583566039340543248969706535563235357083978026812973068878938893849261794874278872560439102663812664077070765494264997813218692276805711833900617524905787608491642226209914732278317595734022839445130343415756089837039854746076667625756450843768479372505625966027605676239147409965363541678773636982818542104718964899480067531315187639797348396382148735692192283576556128582509022338695697504142781969380128110411194610650279562315360568258745492487444698501057892808307391164305673863175170649525156305500414558195150089748755447556754573946936273010492163117247512568650775982504017290410549141649704534902539554705096716708737275802683119475992171983769281901118818801361096618955391227375947733398910540812427500091155721389460320770910777087659056435835563790596126390137916289166090050788090067651080984620164953136349713935361089195725398485603150061119807695412187163671493068047963129739926547807968814137061529764094641382115013781613425052895010375647174442325382894895388285865739750897483357952053989304804130469281689476090988859612266831404670079144498115420090144754194790316193825893458596595101075214307266698182291331200733938332647900668828963200289226219541632428922775053855053327567146276887268207147711028795864427492996962046176663894816679095292128534191930216754549157511458343692839519532390078118851074412325105180830301494626995036875454247088345926376288102586903340512405026260229319514330862041363027255382109065654000285539547185392551962268519419974542698334970138204096007810811656241768562734405116176555273698011355820644593527223675002197512169976682895047844940074469970237089903932455412775644920036635564129483304681672422889483798970776853432108604498263247284937140593537406946844361563131173042778599981879074078932441418757916726441970013266384806062669708988317243034692712787404753391250284126382950509266231307671078560115999380709148782568191610423826510175904378805675144645930538732168137437523243564744647005178465596757727083023543883025850297991740297768202871099241867405225003740875074062495417845823792828309489822423751395223543894045892973447037326720177337347577636024001109191523362421848597691839410973032752667915086037369441393945512290692553666660218927950551653754772270902132090528208210142653414079704447733881645817491277226601069601825743336894782544286925762445374666918788210265133578593786692414185182804175822290833691463105855255232752255404014547523015180117958080623958690563907942179645111527634357500972147407479260692263596419830936519388896779679494173219084819532137342495545970987808016280559265682735429737401404187638109354853570668456914734287940671137036066654047317052601277519621482183895914032690234729778750438394115992626212581700122877331207281769343284637118330206220499431886338829911030967039590368720599508574200012573905437472040642003967641786221259269274043300324767415619769772918769508554786057998885948076213747824981217535627530293932164901769753877615207793827501232346050665434873981098124748520333934317444100315649009127127634822920898930531584025009604512390434600476179081080774110955092232793019242293586351113123122881847632067498387556129620614491638827135589645235318430995474835363855051468294166774986482135622425088497732174043957890030415097671842617290933995567438521909391395416201985041823181559192736825644762644003321275475425027692725069726415894580711711122782316462743219777627016293712415586093312549285603119225561052709382865191858648471911595568127062774928479577028925526919933318794858775164296478023929839651784886457939214996207622514413823247822811586836103491428390374025055495297845232599346892488579867469772310722447036772146457241860485049385840752572106709386903775267999524574188127372338281574833256816028207720359029635373951279174673958751155700039967382962640910680530658379017280308862839023835419194227218992294213850116382670050566548355889310241171122887314651485797062180939961181961631812791097298998861625400309499912799335851501623088740672566833990500481264167438324227075632096780853552560051821136303605336197498581219745301960017867528418691962951267657340511366626319889847687741442518795408939644790164331909761323620877981046313015725376810208739616155516962325021448107786261744764471288887911046521107787778759563934787642957299003042289109146783517331215376784751134678931504752426796368350155951949924254357188034261906813773358471040626852834937212682070803555263970636765133582855473957530628148189246350971685746505494354060618423063054173426131218220784245551247819612242563469475979260194665865621169351783455952726186875051726319563884744742907817645823117430412203342457840302583459869044829459500293989567929442770873899188774008884150263729857178982156628285839345444602491702078014507889696835945056956818466542353662706598639817402069036765725489397355010163985706313713391170940675597258022845006028831849915626631922317510770885188577652117034709348289193881673670445231638463533899226495299685473462153842711693402211850914511987001209215665562895958602057663352386869493417256055643799828197948131906786380761998076477560778911817668410010189152448648822994027660304318026081362097984152269815945124930055833681915426495462774679843308317562868370126448783680905229723739058041224172087162296863540210329387685696015156248297730643381619350795164161461963960852143610088123231158850304979744043083545194063045736230888179534488620396541312927480123662284407514835494310852798402886471482342639996440584528942978945459784719085550320732063832790201023638518099802034244999748502117114477809708863178131053915323022661093851834788754487686034480781212889296431749200319977883029591757753981755654914812712678851552358955295324543789183116021559044786799230822379338571153945310017046546106824649237487424446528670362148341165821063702188282501439542426130506599407315061925240744124324103006711363836316872620822973211012317957581864839034675313245765627461967006680657410574880653336708733955563940191179910459217356706045900735573558877704486053699818845472940021087572015772198630904655702370881945562750035785507566349863540702088557431687922058580141349720434461679444184744084473100438291754962192624245933975780965869481031330721791352148365956661937325863420996298180362794729873662500572247806415775207541327408621554114906020805716523345910328655558563819676727065104264941316802172441389629810503983592870760251988409982647036382830038808435673213064438182726745393833899211486669013100295349197472917284168253213764532217853038948211109116355945603256794910793498519014929214783375141903159318298847625053135674454839054842627789283541846029368182987155160478225133792407509575159614203803510363466413227978025713369422317704397797390858426005739530593177792231081511868949337344966974575667595650162028827927544921988198280147752243336419182085275778073936892365209739072578188970985022519424898556647744917788431271366333225606170687518314149812918228404984582341306596216932947279135967872662852573024757960764565845791572582660307210835382574790336696748131476751274336057598805514001261584586668749587642780243547783177119312360360261837947357367928483437686570199161274995807012813741784628397352060558691083030917273709151029071837657505841568690129324167845087613293696346090854190522100394096104213263156291064013039565562500815971665897391828787813787566555273919853358101916834555266828706219329303129700766855872598326059516255413209818278926096899172161217722703465019059599617627072533442004883940406084073711578700108019160669686332613132826936937066049319397585364960295491211560824701670765792907904315926006397003358356634331245068276636148369856316605025544196279540048476738562631762384881203016162831263240138936504673159992092430718319919504500480580284460437207618077392781533307834631060217487665652912901452665403290012678930303805960503184535807827009938977660950292021226370586433071702620419468476853324944921294671121558733045413547161801321673253055673324607296711833529315867346996820253231189163197313171580489952236115157631183571365493809156512962488982708492481617699077424775324852898512627044762566239025194807466861269864553320014859727377199035519114799278228119493055969918474189129066868725997395247332336944463499844360705065811846703083069839488874900234582011670055030295273971375416342816607349004017856609399501881644745656263125573757836237873170795367311968574683103523680222637607946772452798757167631607274971059532771379226776778791983348754160581284474165914738572288006324219674894570850287706159396537330935299147932266397394773748107146071251454857198431454952232471670980473893383899908821123178515761643821312391508074468643622993136620647175038650517217053977320182340592383271447402701039199593257631648225948339856643561836404682916876715295475720047411969054234483679030211802613619626923533153329444644411398063026207154922924316736971512236086483640520128440019221344660942070208169739271596592509158811340667407494400825165763610313565752627125441920362599046031739427234430315459840141673975448615880312301457247583301184519562515907121725425964056741532345474712475385451558336648918904810792774954241513350340520083057203029187776513319363630881948922861072185376052620299332063584726110706805764571952299362936408147034162896159315415017510768923169894761603420424520356586713258174306482628368052222448173633492354920455715452314502655090831407745209936985227104238821520893507241431813193360789843810952232090644414633713215163470010899721457998668706080572277955084732360155667707949873577285872820655508080682919358968226518350362120846654769437993315366930045838572295071376824654595206071416218276698034384382076326970569784370209205659683622471693503628002516364783553867874253037401929530363390720482408392842328893308572088723128292528489792605347147311750380142451251248445118919880111717521476467673699469373836531824462883876762056050803100868756414822861872890018401012960887534641267181965312785435810216891247572733067689905990939137424040637854117545897600664984257039333802212199556997023959330406273547841225195113960832710057338493737587189759316293526648043458744835126328505203268077386968110473417868136684437994020696770868043990405849719327224223625904526189113914152316647390124094823526688020629047118765607192995759494955035056957076109914475616709344685076034059908914140317784739038984232711757994089714508747609353774172649306138655406469910444754264052283226237117233371249239160473921641354040451668421108747957783119491953824837720995796028575653634982212483770575936220824178509057279497410852704977820740709325151506143919090079932871126564853244391926449456192319702627621212078799747698035926523456909571578803777224147202550771727109832474817127951054660679819014499905430714786810134069536062437494591136116881768548090616145187430122052807745794658533659618978828045514767334996873188788900599224324214082837358105431990859802555373725257555182183642189985340549812357208584231669461268295993801250049894182003161915599103947389404921306925272335023367452552397976275370920408307528829244292816086325132668417405600663286400212906234379082361593200080353973812817553677434351481546302824606070543699277373560143678836934616978793837365680470241698994849683775781027266428603856736593428997143749012682208919986460939320504252032404195853195804367355328107427996481383707780997189788900108299316675225885761252015447712696091585998409935486021110037903429971195944963738331031430349260599859191759260906930154628000738169571396948984176565947508340975917892322979509757578054163568090540950744701778365590014455542488317133457175258080232787218778710582552770328472011009057679112954415582324153109075911886456749520662816366498928954677924906414399251792316605704300921094337720605791410278771862156849893372944020262742216388442332599835611800182311934319627637955463490275203493779480381174372436885452597026926221002801503060532389957151724890706412700474010842994226313575118431527557063675161230262543587884003027349221438458085977055875941605805838911977297708912151154910782922437720090412624742183678149871580671574371894759439387021742800700811765801973387929906452721186856136776958751797101610092070451874456212140846104335646670013185851713516800798622190494966592119725533042568318585308860394989747301006317176786169364447890103040495120181184153597150414354007977122132487623139139402890967866398084502285254562922935588067600367314553081628543177023312476655850728163751960231041758259445620019583640508458622405735642075670791236167231328321827007574046170209307904853802284176977139640406820472308637204578475021626551867649577952293052481077158861826754051898131189993473946595133935719168731608080846436964928669454559004573531289373168210100401124629596976739692862937842478551966373113047891073185097607966979067534637804445984879560291111628082252250024138355048195023647585001477101486130297793710131677953934032457283029749283476509470506035350789259693094254354373314521515948676261727311087665821253228679867231647803044761955429152709804031787804028401032981230976073814147229882880582200943736585173254575740682284223835691693909529861353050753088217467664365436372256301564620429759783170095913901323316311598007646832430987490785543969109118014661932652448757925357908190699823529315477342369618613379207328489674928177662280101030055696302401239201562764849098705815775863140345111513464431469800826831026330049542832679163376731688800670144562565582023629311250024405784045414740116677179575577117772082059332259951797313494700835066740896158462642949018958110254476857395001293652752807675729343307656554521380793803663200147663689043880611516680906060910706542652975917680280422604174541889563137268228072511198511354868399211065303451240317841147195995276796828461600761960076671864338872472127008946787983516215011444155474851078813972550728395107731026345622391019982433093095440870296892180405944640538604844446052676480931783350532190388093810080167291215247272370038420510714016945829687407447983331322804921566224114221876565477559076004593369884096560146083086819773792523820724888988451178931350023391178797544951713280532725135561598197845823317377099516400993985606495121517896932611726789035237158144987709147610213422447028078474531870927381057175373391213872889077882371331605556925563717411648803983494933834218043267213058806995441082791671976289882283483441618309305311875416172596514280082775039622641512597923458529069032104512622393680273497170768187898085971442196531521145613787335522475532585982647517016509560884505965485542202570242452850473978931899450609121196908653191023976889963250880069540499688854501792287524327383001718296328919859382092507597322161746528469063363509183474822322308914868836660893250329209725520512879851616423534010516073368060002242956241875055406973659594523606308479521321507531409855765767988415186849889605904288801809388330011373479071559417914266337245358599553223133750557638293309541260139950110803974928615078497918363635617600534807287783949043056781043496898155542952912613599936808041692232875966153640427541541866102679525610021052448050848669911738961523003852819696920032344138550917954882990682658172050400906425250422527981843544203948377888365425522980396724846954576675105778251750490222773408767946715513179373051561836187192225595687152037100087521972126845081173737304413353352207667646218510721372664239902245217282504809665694301272062523381562438845770701318254200569708663626078271628869036353330260386455401935821767984931834133909522119576789334067260367715771506619489815762630453914082202083236113331095965758243415352457401282862279167492170474540566107179311131562416284188243417081471496248395785523695593577432632192879876278189661341382512132813146604549488444881688877845935287860376399001675694352976590375729517033700152346323931709691339786318060581833134673594278252918602415702244099417075628657769433685460782988027467207791792073261934280390392529349586923480085386889808748988952659846393022393989574950567746201501349086880073355296420315566835881185480014674237644298024269320183547607514545736362020874744529987436623224007814634322270633994791195768322805168538084257975458994099259271936220846852729828240448257958419999292094515622111594162705334271021707927920011492786276896275237986475731600757474031341748315776831549854334820431006027791941524955473953162835419364057070029451576043547509940393784459401046554696432741485076392095019223024800573284251000682475026145501206644920785777980381848825435667680431342377228837979412096782281575016383283212107625655335203598173283760620775596640158851442964434354763094773133202155222901056960414734673456179529489601592398105175721657901005691008659493225742681032774132294061623596965109244336473151020367229626942632632766729314637272291823928341112427263255455555542325941505507313501366857188167236057321248853177779903460703830255180945728898248439942529753812016296706137952413399851918042933174398894999517151010422081728576802102865085337645377847951082297499824043188768504057997481551238019620543005948529098099343912885426349550316696413984389187419287554494637167760518687718156936012832424070995510403420777914884122096752730427908648049216944068137367271351359760690320872037463320415472450586462890442820584039716350624535904658298776960508835718062021770745656002738711728226778347236024341250328050573309950402830742058086784430746216784095090623376781298025722947572948870255068468851925954944017715552955226309398845582908994309165292822550744277016656267713616020825874897455020905957903400315033681677266777521061709392335910684324308987942947618829270355096284790739846069789432554271819428103978557941132340556721224683804233056931624242296713168916229113957246011785064442624633350418443073153719764756168179989201859600648189447781719644878807926166149351915369033672461918732396929827357552323716215843153156080480020152899363535664914877686264252650164035369762439082153977722661183740352989928182420115049470405405834152304382594382492785933841888533611938735765026838137532353905517659237952828968833255679125384226328024147029640902548974604375925969885936804238870211533081905857027856639840170616122946625089399341468138705578126239475491855220466160000149436227254759464942435462666490527905841862771834038811491106799794458210616469367336001877050610129857913179802558389015885670802635252991396874468773871613778429836191774037292103672335001259427274718949130769178771921003993539361081250715913261548233605047092050889976266533879419889776947651338179029171459498756123712773695079182095237656276710561518487193790112950638777447587081912631579900633168976389041855971450257954160276773015486232857214795410442558379579055518908253151346854231692751206703591133968882515948973820233917070755977324983694525337351765674162689369498586586821701711352295294850336921973523081930105963307128168432952687807125005958083853337757759369154006718892139041764073104739688401495942917343014174896245243199426850523163751686381387138606013113688794885639312543217347552927279701053002230929576134433916928908891104418915282244364126740334349774503562298215970455072706396268297096946466335472122989426756914985709629534647337359911349119242870298420077106180558037387140430688462746979575738489679802188091085277531547301026675409110899207745124373598918216297955746605424939221715992684568261918707193340969719612984759867819787298022007315749616668137717640103465454830903039504075712869434697509046241337404737327470672683014805762423764902342661084331152316147100915035762372076344547323518459083154706984770964400334335312205433221577301730843815431236264914251959915348867728079106419878765833965508132181881141315996253898543502938670868488062742955524128399992115414770054969996860464232647018772136639702550179676632308998993774150475176351836575280345535448509710157803468573067540831334251519819958524025886736953598179134717678771708404211948686889741492592193838836842474193437588007581907997457229827477301697815015527450780447895397373441532174780602192237214244284608367196151971270020600120680723010325637054098783239050378188625705585283228180438565712923885139253080907712975391646963556467805647676541014929343390218777969361485312611827552863525062373921241029104172006348506588883210980749144250289326486357688838602361189314994076648362427752281978103486214077335654025499208444158588763434534363949234699491119923420697738743231385216512440284950122963877184418592509772737301848212241971909342902908025513814100272053524600789669202575331821832221676421918957860734147466987370486778138852934992249502690560448728765923868548111451017465923704706046550056978259605841710419470436379361754397748806507529353564663920448481120301327992808525348804727973903124663285692405845601890251488749926036407495189098152946205773357608119187707629455482294865750055699115095710398216899472135720856894298450987119577754502671003261509622269275260826754129382183261081872580064999681187052506017772750199685028074766729734628339666616384625351602226371095186545362025249889912976129737299926441871363518558384626696150513870280528553041843597285818403269425435336101621306455276262437288711316618010933175896320754242852535577372018946545260564409207985411070389634436270529655467780697722422951431772893621204382117227538418109865051853436586876564298306852700664929058172973642137586950739288854208470919634185256818203208070016822913978332736793706227922439785185574856579612309447716165096532745718733924471806439938877794900344252720273525788499124382635899002069607314606890479194804607695852794509672559294187094415828370452790631810007612207570817961102117087409167896687341928687998402825121401442180306998164280603239324637725388958260988139115872628159878440234211720695026192332128427447867141557844431818753750240208098247982788649173061835730872707658156836959559944468375315062374395899771440497964804846989520790388907333381208596947431045511732737715524929528470792785889456315637520263489261731980380937517865194886314591792084947318234591817039896769930088588455807849148683233119876106118209024450349608221868156536221623875133325391708526752452011106618539090849413127561996338286227078950170891393217723740953934598451206015929081300689067388846755060098719036144285564119348084438151501135292556249518879374009630494745297112138463192901384063590267958074778134228618491822464072856888493453830806967416368514878291472828755008186679727596448327636339203916935667586990246912921187543701123419272097164939291746045833437249241437799271804959130498416277813714398151345635572600377622905332925729916874542360636624360577670263090215731383635302414199077859336365231941375942404337369142305912647197465520432494165370488592296742114978954481276577631750445571871704021903684079322423714624484479003039298897648764593536482503393036970553398933988363688038421130891996421836398036662566911247372634893776121662730283086740075051644084237194309822409796406721399786503932957922489142194721172510023619612952119103278790572887171925773990201092531534334594657869048196730706479085599321037818258925143901659517546309268659824418463355394483178104178146350360494493132167488236386682127180282294151242893185367020657905885130561995391832889386216486833597320931308792555197323941380529736802478336076520768511092311411614424556113633824754434459927584701131873525428558978785576616724814604547060060399063685559836264400817011200598977569284895615699130528836872515288457344608464886139456260914653938342031579685257332079033921178915215597305331707383339235977584467271595090377250731179684757680277519467903466580400146959037403385329430854751292263480442521182066092106690089134092749387089494289315439947471329514092844218628666174616599859930355621632609570505860051249959342667766004081524590815989990238440785624695055223841191817127141376800645775079424540716133169931223282366063208346375159468182359748401062744977832296041099159077408931593519953947442860009456763555573129257604256399164445233802658112855992591763525991130185668762656930692316827265501809229517134540242798473891823005635807666854553226927843919911568835731793417474409981450904241687044465128781769804105398651372375889277010796282614465417078743507035775782601061224720481972020026019939640455668628127369331415481512462672600032355535391213042451691463268393526656517586932465580067541541646607218320127675817297634141187866938178137548170664932903257575923156498658587017287909824845327109095001472447652886951115988152059534793013662153920239829759012025153231652832512934096760874507580302794582005751352482101795506597129894494541505876900910976959609682333850606672630359540631072398150214571155144812734654992572487328770083669637948254657181557044902868374596673206896794195739979720286607180488996899835393758276852989954363727961457248574935363910985407633255834364203129441342124765878690781892785067753969673192981543363411648222117196007732197494638190253696956791588600885859038538713139795850311432098721455555926507829586904417650133768027957596780281452661498550822822518671927973758206581170153351824523707327664839516293301442270150398265510345777233185711723438430817095988209999585336643004682965142591817615992204525627145885244228987501096956056375704598797610519875209483311693535221368811101910081072089332299749201044762397466080759409308109784888366602565602482998413201866310722395051341760617384971732708929482729500095346727776318380413983099547591112257203993082398130942016071668245630436065785395276292583436584887765108049671494481166284559516183415698897104924406032156282635814751257394513976941508139882614617223593152066439774327438487679318394939456438776912592398480233860312321918211538880174041520562734724550333216655859898014880165095003233464016963574210148663114352929697543255093669922007411653956886118823771468438661752052929167981234154729188642073330195287214507122150781050334069462207153367286057106629545480404067066239949776463829056020411777164724553203184449007357728380220487896878481151270877552455880108342536362291803525550747881386479507914941353335762928083769718405835446633249785494463659495414405357495230014485988677872036661741150867521226164606149091617027957752155284134347037261691127160435416489251350624668221131713093720240823269558708084906801891243545989908734001736725415397446493286816736091297591069510237527212980201997921854451558698101271000282623082671296023347743450825373491199943986852032441994326784691645158821034486409552444488830628347335598834249725718447913913277832654887819511989582435625908380330989284903954239781487964574101074357645696808224166600916202123550609705577953036444102558953961125658686898517680510761574781720729693217908298423833080968624395610936806473408416375766316999838073357423630233992803129614542561794079747451448803009041415742471245885958725236205177311457881244476769356887503049340474692606394685514822481146734709681235607073512059820608956840656634172099586196434268697033883771984564663412849911725366867985463330890860046325186619932948002473553940874888486668434542371412198582149027383246856201767180536241274072843038396954027712131053380550412017316915276334720131479732296577093942464220436283628934116574351609876848018540619311557600143656183821866614732647975553522271526529756189196344197436764606670351479205891428683499259611551758355850407079586944205457357590427716394570713361430295489202399212191615515134263421246596667707966032936485316302657193324011196638266466377906962581276116311669772557593693096638422461626607168223890021208025228142803268530317723501659129635417877091928480273378941357943724827217891599187280705635546343115366710537478803142545156362199288400137372719973232936652457278215753888940585761117873914461485872509287264550696286883152464958670887950084522740773717065032071809774107746207790029061969781522281443008073962302195429211019873957821002711660805110590094201423422864853980310522735238801084699492187866391666440942970042466164266315665198586347001614028970825025777732470710573492519385074198378993359455232633975708018264034173774339137297091913430878292151760318020907819840401983821320438269789343111665714842074951300305878834271001398188461685805299896728067886483086421820293892903235449763650646079305645753968614411211787222166551740693932060667967517614355087140347330220637888873192737969561198419277962878086004670764885417571157139838389830896719323529807657716645883712974749276408385458044488649829857201915520221240043620307806489514520311413182467094507826937471928913701665216618664436812438598026605254025682699601091884180446102645993952677838529761853210463551996153947234098518615923604834944059674359057510259690685156159425234296000485768360189678562723403559747212818995505499475262968088521513784302322315103409165474529286314597425682138497363981956433953566747260647668919007191849573359275662753986051885053560412665860635448751936468495559743322364551980244204848370406998888985567751699278236838514489053209443542564109260222621730928765138860697374733112416920849517625130367771498593208917413933439701262407463387813672149296717438659998824152270874844868140893764187427637713139732485994989157663550216451853031385837527671877530371263681237493024710608689859176427274288770007282452971187268310021587371796481371496105607359766114957638811865217427640709433321305035168612516889850811684486170961934603920793893326166120487405042250241482386813388664208674733690125299912871513437393704788912459157473710527643497243529458998792862239485609072966505929553564281527831489539012349640228282063350687645506499455496043988191533401852955371306495813277166878667288225063894209930855813387490726539763133793396674232304702876268954746807801840249884307402678682203720099989278251601984935600900359201395344234920920748068523432402166486516737797036247183646467848091074425144973052165592290893633580721924778783682516010559776919956578923438406451196313367254777613992044746354614465273557136370906988007390351137651038536485375411842544298367441271698832985978237962574894944076453631075080043759594657497962598077757161411592975734207336460308986914860875167350899247965932309682058984838486023108499290163611452635224404731151278110846440481819612019682739232386711097335944173715159936540552029110662170591162383642017663138117450143016909179034118263651675624352854213748272246960508339519294668841761893510973913959067697184660633463716259649520962004550522101259419576619374354497236182399327583491518416854835151298740824779136628214017489400960740145651114922888140506253748076157725030525571219757432957925334824901082698684594083236833470123540925866178693255181832164166363369147975726489106464807486415786530810805798748067312970831310767169343023512564790307726651682589017961247635667655778232428425782495504135603708037449778083311032448244977631640111370223286032568348184357942040043529660011509920780679301726268472413396821832502116864649470779420881149092585722923154013871323741447147484906466693821253923091218138972298388307358943816081901780501572760926441026105777868218449111039157104028802010261155463514276950926640640247650517510573925617067590364396329915591660297316049050865621529383232911108510996265235046917329921604498074642902448450033559076691191870408547890407792412765124799030160480922268028661511129652212321895647677690408762804527094688239358577206721990942166385790873547225493904581940633662270568912174125724931801055310928678022543884980101530140839028190977640811833487723795685214064452010255339898702085513060979739923274633320940043483309522685980152697737395126739972022762299137991625345435666329462836746980600846179127214529099882143605842934831521820758186756775680571879444128620665478338751623931799470137389993847046070866744273987411167150948744064689952032715546043826970874163163510714600980354726644061001402283864406867632594010861206748804989490720549204768871281039965269539024381658503159457957181115078953710859395128581690244587532012587105790438615073328925222913255778604961999724337922370451249907289640807699624474193492960342707986561387553523765679863662700261064653766812428888823250495725145969470509493877817834897046222152399239130641536577746412184832083863137498052759089078318449712882128072114014284595185104883601079918439292234225298087926380789674666287680581549412026834183963703277837227404488751681512449959123629232259119044847476305023023187343054487123490367670870391623675150952464256890048760289901205588964529251569994012489803025043211839272194632468482327857642801210503941537746362629067617683769610887380907693419489125873484461979067738780120330717575381487958656229263548811407221273444753168800721372320166342066754136945105871854254145359017910162198231342829049136492206638827969294784414425910657376178086058871410497469732226715545663914547958788423390409654901536531946713757639731798063631326818797063101578213979135700620485864548923495875256528991755411029463695383556288170773315320532191779979893499607733891417388380219880589009725017817981214062999179950218042176321874613321720147380305004558264431011812331780946661284126355379374254856094634514765665293941250119290288830806900265965604099798694384060076524026972093575218436475503451674521902027657533871342703890152263928573880448252192661466255945998340484898971532913581651337941319773813667086454470379121624696873797725799448697788297194758845042673442341365911663439748335811414531158970755255400790558490838178567427632569128416876429530112966816794637372852232089069032400929941762723670477122486491197060113374212709848018274949493429003791170073056791507276353334038920206333145051222221608427138881595226916960241696603196437934727163976067149064654508825641987088189034953966104071066450707786501147873694632766190517318312394517335326123034956584046414290562347120942229804360910277471148986972017708262099080146505369179354633288572614643142849129155586819729004524991000998653948244376502286190271942408373766882783735148306534343936818842171631021316525849287768007676665509921161374583771375991326108050039206766324034728838443941125608025063651046104842193274296158059745685268343237861375146158125100087383188484063263983779484014748800119931841362930209076883849914569387404873781322211170554641539544266090724182415129032809759015790977493958317568426520782142186943640398060313526390416395723923857835010698114062223778026872694621966082026676455451904297597531903695358630679884288064256744733473222886287843166458622976604569449285402862831531612900060016909985376951149072702818791023948005917574172710362800546283563209893171719829557322670935972060336241247691963558900581623234282942967980455247827051666205341477160187912883040236496212409884975383106541251797716757178260270568641855112514099884038001680288707645152072941403892651107507500190269775252038373686122479622230288691856716201621118089738354992379320671487093350013447457393884519478022252881632102330828309838421859518970328332583237855110267529232875898467354334411518712369207372803294725061694041556801617720732369249579988367109498066943730483936473677502475418469911544019461082393737116558576088443325489639911153532560860006031351956263981300536799611619297372018539519337753620050825955786982564922614410045499828032964624715092492415614851231724578569878131240965604923203299947702496734516816833116590379040391305461997280824733473430243030717200651408228213602714990577893358728131604978438544000935390686664365867456388517948583379849719839493744470259558767650166291742383719580286763498371805116245236560455156933431642262693873629499781284344629892524674257116511923748904147515535540208070270362716122493417340617091154312347021985397084796765466415027324077779415985780747857192451460784490284756426643001975869887595996865311577687909046573274582988711413630512360892476385795819973944377609025952134882949358379980135689081921693454643771630565252886462339540678082070037973785299015137722938017427894787970473537605975638946695530313825910563091786880885693790243885860298259177354888557536383861903400880893447984052090418701514854715707661735151198883278081122437540423744570109504211309860267076763214322295790287255535064545432043666838594544849810725696249118538760387690777077753807792417531308248390875802117983138432293204595457222587197326787329948078163515425608683373903940813375398329530297032197356431477372079026122024656249425259403732262732610571385546814386293202851328203973438106376514354932030364015964476686775294667499683004339806841653211484589791279338788278806202271249592905593079736148845064762620315442313010938258452011993563560831544677374707413017973043042076381810102588633718201569497910068171357284307014820775491959152511615966104794491840840386064172362786715849002347252770098920662967851280084846085715060738737155367689872460671848986079524763395499172775191164901062826943213450385383951596247040998052419493569566769322043480405266799093666623147505673099065859112055712872730429020929134903268292929165835358627103437084356063412891899607454455834965374513318747726932977551841761533219920541159752274135664518241527935265681599071619539032808599108971228106645479506752870042126639292544568925296289060116803101491693616215137455224507439260416953511187962901336351455706845476993164156565432495399016411105117269314401587670994160456556043949840482938756072825510051986892908818096668996907824478295983963481374943256860026165260062639312594519614180710442663344890111010973513938056407189426779212367086725977124175571920046774006888446794014259021107819661472405945403495778818724383376291706086156526092452674872009966868485171495661343263193613791782764765752210876883673696069452567114351240054059471576014903445263922471492008026019572202511887606904289032488390229941097663912668255459562042929470724676445273320964650459957865653725486430621052476208438601169760382656039122955070151067830539735823992620831068520024522288071033215414858560498425989025576281738862008491370855769665660033064367001220548649929402839844964631282646182089542388133663430419801333117398182329825345057617813637529826232196457795205679114141842908440696019887526889452319278799308082171404807456321098155632166442459585743177337616205804589306666373975347621394537397582507810907550232211208066582219765501757322247721893903351974321982514864939050770966050542043259279341300115417791601889859267457810249352163118365840112013849585760189776981834004043576247621379610635354363497552694671365842274276518680025797006141729728826632378440956155087003499428783274180903152510277863477758632223758031260751636498904958518848213085281413807959111559891689357217826979350542426820678965822797454965786117069048262753946062710298091321331454140417459298388931201628316669805909853357625669287512189002166196928291627065176905723963000143975895902932721368643315915661227438643886051256588363307632323846300385096525181231182889659006674992100247136667205996445791692351268436414146740823454804955692196567668745938664290947673536047286442812808946186451952266425041708111115249991289405173012564359955998589157501934286369548884586087894503758241173701342940081320269980534154047354927997543807192668475336644470341932959861220354749841296208853594548130802009620148341490048180099019559180781163391089658773212651588338452970872188515733398526899878544687322771323223648204117613724921346780818058135109890448105108667737010901614039561745499562700459856095465810462851187294004494825508428002578134273836568360066172060554449524911140677890517577487888385964482459797358827223953953158330635248644615692748246287041877353069263802152218429416035989086595480799046438615198481793220400614705426801374837738238638669559220906786177127985544480451390573307517294833325929542901308197508670299148638794845207990152929319815100522664075892486454220669879822015345442065016976329078987090508390607535290325697077183262961875004182282237446645980777782759519264953384500043363904627947008670204018818300380982430604345557654096261363895667290443052410646812440438555584331767202409665499907349022719147048627133087379353752279931845551892920731374076900119409246999350875762139901766558340794366609603214356303843539534826275546411376051138604213485517226540319371558487224524564819632942110766400460817129153617280062485886488354938906204867005042527838219647864960335907526029474873423316343085907311771330977325542612618514334705972357796741923867724931150936522473754615931691081069065084073903908888801154715106628795249976876342337985358658219092581790440334657374485866869094886267843338062119237709723239674871102160389830164593045494237025025424902757454127655776469750517156575731104211131497782253767922366347193936151808498144420087399741836278917524162256674053048565596421786504218227167880572226727018588248755392328270541247091889667427495553686106692950520594232892689954882951676325952676573584006586166328447908699267699698002801410845417208650207752239076387430558264316557260978340220876457908509113299187391800587855952892598487995880205653600962456566795527556304169188152096802498965474253119364660206450580242819554076209023388302323845648729203347989256955327034467625828541126708011533616059142013645684298415413914455763360002257119744883484250755597645705936798392601620029252873206708515908824026956701277768381236267352234697844009613226901067676937684573926010509397127748736895385560750432564418872185110310638190632356342724064119018255714253432999783288277091654253748463418439916382637425496444648686575155103093827686250366756338460931317705499750972148496070785765840407490547534098538659830340710198385480336505944047979201451080572702561234935175885191671078461794653649246035592608571258164723152905509173890574560278060396312506059574180755575214095949264115613487702944063319770675681338000376977641330285002234793813169042646927121330631231278748791399108819828594296840671044142511036445861627059141795698849136183003678530809057496698134593180006510715779086146132700045339247481519867629717190885984680290940643333874089139910345548077702525215195305123606214426355316234079564050021396162349329970813232012852932825364473046523931094975105047136598594396154227095498809564795141292905026084045428064597136169039586429982859959968620564337831764394803920284719999682943801575679211836467971766923387237440110924272704347833694620293360608109879030649545937153461239106477125762934029463129417925667739201561077032874747459936951438283780216088996343291169233386959370123084996772759897935740775688890252556898063979150723762908976891798430762404985076193085346408507435433736412752297260755365378172460788525291937537969633702853778439945973363583537470724658855510529573604609031283040585932716156668393074717191897992355972590599169539958801414054634320261675210090901775397632052055924567664938642285237650986027920702978587901724848634715697250565462322814276743681177641357283506007610400015914345473919212508262196040172869477224145328231626071578273689357703759814199426587074492655408702984400322480202096261378983180138570125233948732262620307123927023152941808179649400593795970836574485454537641059259735090292849888904933324864857478137897614910067664904850025282471468811375826635015734633849523250296429545332069281879028363269139310927504673322023390086847674601904562482867012497435820957645465580696777425380964149858603011194091518803729206003928115383783624346112801965652986622466731034384960075871157145268417389424020767085239652998945921822232541700966240165502921584436761423512045918892840469329775227769684473411644840668574929256570295780804459894706093177046795400193048493786572861444924156254759243040662451415471660592155267755055173758921322742350395570832804248806340509517835698609107233279218223576372572437382497642379000648271070794902752222125057471916156562083920619001426897712520565961490939522771080902141623721153738332689511117328600639693652466561736627045039674874699069302627811631078298646963037811598641090522479538144025417852379042796901251522065358688937753729346279837779616647095762887539351797094042762841461310414041009281363643988558377567188470832763754471484611335554493225940567944398826535537833472064775161218886132502092438530996909714637141779922386557464486750217598588538049281301855123738199302614584615458074550106751581991000569841356427682038473524035424704888345495595857990061133495113883925847982151143226486384229772983423487351391159866200874415022724574861341855351370224283724810245735747007826012607644091079024926656269924080071913380895844043887624951480655372097799626978993066287530982088518618449555466575492291406200368990092497859803048929517272063021474857043924277111880990759492311621768517947818092718275829610908021007116807063558877390621034394458170156610569741983468354470412891997623853965413978997974746789365909967112559523640114569079116047401667669028320423846639455966683724216975465769564594220767796719864292367831925083778380768151892946643272975301594843800080341859995666988766827172789533472939934842450924052838846673812889367619481056731587215651680785134199519542743334069561947749408075579520555517262081473240867376776643160258986010657879699045267955148418424981657134033905212151082700995483365503644825654678014847461895152170300319752257615186879601309151190844319181404879894064509519835140471119962320770042941546055157099320179322534837946205073448801138725524283291428787426481996177749785365225296038340386220831591993367123470995114167324370133303207152332124216969129188526861564999888345470130773708989157455653166905163410189387891066706274497930162109018326983678218501795085319978414930583007640169358958546748829688528419619988787672679163170949406656990532439539596444282040749320147454811013812888817038659694392305917856581585341944860191282950426024238825574063711076793043565219857020874014841892769941683459903319720561923578034239144763664392208550112115887352818163605771405127299023618063751463990817615392281185028190354069424251806204008234281444435850927922535337467885826016766079350057162209880533690429432076212358979312135957799516505956823352151798387115564169100112341581111415410407598144216785745713991323074046374332213501906335221134731854368891313675953554075506143989660702443037135475282111591850424462489918133154532637017625572651502738557923927379990162231470439811274079328764411483882988413753243574795450438178586704414424208874598660992402596758682845768907066101708561003420456497809978935937905562657193169660945398788928217112141859057206083695030953106314017315838637265964226529870101244778772536936117541974233080493123348777140109071299793751816714268181819903791533994019188423025960596806767748408390580011712988912477348137295698792325801998100154294571523713694053116307721349357650364673869330001835967820498755449463408347993152914551678008833290711057124146429712347550719466578189523254157714405309371487470329790455998870356860078749696803251580227999724592361600045808393326367505305586381653379842442543596897575459631868153201232679159621368288191182956414859604276330213771301149136125940447085648225709213917503600891876792524803769646491660280442019517472506477527096188565379569796433964873582697875171460627475735249897920733499540877253036106316866602051864252532939879953057082043843658779864516603109929754710295045154800564591678210873226618090908285969319386217769793375466606462577154027118851342697393906567109623000735372352066370728003686435651355335071465407257669065769457674511742320597826414665662691416142169720023916793987212427789270489380958422638794424739890731547541825416392331110933997380109465101263234729931865216446535300491611027492503953439124375398834732899666000070200248635340731992197169636215654856035635942173152355345611530229904117914114359451413117731941516364434323438280715339569445782030721369051640668419036752547208032383915101855048566052510521799151825722305239537163288342430832983530886222118378217955196627422206828702493621503911281562392709611627344438259733891187745489906334969188567257547539858564717843288105905408011325792786710005100045765068140531436249673125017886554763764449470787564822760397536708089792751264536892985945219395296220807828034869377730102122970768002756472243905186267086684223981265418834927247465574260701633427006325568142629380967202902892040221764220135016748597699493674007315063080375930133832410931431441664131669653736590945693994340795786361728426558387107851518962045831675856334945160983489591804738654009060996406815700098434019462930518078583256369245558324705969919245228949210173943101673109584075055567008323078135850406877849125188199915900405548796585028096905550500986715497350345044511155456749753279665849426419934963733176494146907475541158588235141987579743842873396097876624770169006735785479697456460224882717085034259929199829075003109267478218888257909947901116176098554142525408280362562319554813554164311053013830642281930889742463302512145853162411269927454344455753603572890519156680201440945925545734755737685002195899316211358208501772455772987704076202999694541777738175440015836862064895972173454267563813993107839724304970190448362179123481912671946532723158155032174745592182183107493984013506225157515791755205054785688886206070048010416533637729708888744252767020105814274612875242610127732336707539402417574458045054417380606726775010102648008423458788442849165401887978069857181498409178511544098309524763094937399896239500129844978981907138514540550791570994572868971322749117701854351263052103674590898633579065483729384561948114429696292394063768872789669339227934996285503591025209034151383765897193268195918051628212947934252596662615860417633297302157244476994935392573976960328497646618260474174509478357345336275931522271050271949002274936119906436048321898767994669307898618041535235837917562885011450618096263463988857920086778596879773801755945008215339693585775467654545768644600481970368685902239806793288904293800113012421438264954082035169288327724765077493588895018180945905787262907931496942353137068091552028029980197607474132518337848401323980391768458156875735223643763490063822684412853414271116901140608649890089015550159429824295610237576919648078157083825249984490379205229370537166758837957042499726565018237072937550350541580101291525423379519960454134222558092871724648657856254539877886904619460827711050933300120617144994578684659353911396987339807058720375362381050303786052808286365713581224892092456820874749642744093306978829164787071568890615221359473062848553028992097283103670523672872292361173164979687838098789843628783110093260378797895775946879382457286221587072473534978505699903352539704091474350745032903962910370132684162748119768034163544565403326397341731372534033032717091846930204706897813794625038692963698773623040085774186240351941714287244906417723999165487361184531220068043072726805704102945612434582497930350219252144626480736658387733366225072590631173636210372979135538382022838218580287753741547744372087155135090392771507067159221324881390631995197932172433180591912375235863317929714562591917915814406669051191732897854779341915619795107992021970715936302251388816325492814531399910463655880983321560977788809250918780216909128744202430305430891584718299576449003040851653035548361638872447659364303221998095125815158472979596747911055618547507190207138616821866687160639889813848822301258015108028957801020688269014053595699119752313079765335690351884815635967633240694668434464071735309417450734627425109602573678691391673921915470355894140327009080465300188017871983244046993516371234598392613953311531333041874746319136869964878627058576862612247844342322110728411144966275515824374552705527017384968727848428695908329712724554178638961177014336457959961495971189796319264878016005974447051805791937782998403563835009767471348860895789319577299468417979383183433950332314005975940026823377775589208215972009506517164096801715820364650455993860986249540189258708678982400987264742756730822769625461559932955995636755706488740486900930505349838757455042515083368988444978256327373598582039081867622686305508896951014012360463197947419219021278679057275406392383052965298804512070296214084848410713970806557881553287040456550972223491572233333021410249619051946049322643896121563870101584114144504401244592486222838839284538182523939097368817792854379711929428157208236650614445787596514221181362013598357624471152117605386354637844360281117726062169670144354410343632919424899612342217976014667762574894500666804703057940427085765286384385873746378004937973141053606025189550361058633072901290743531394473812283810942306776541961682828449616751679141601002516498477186639753543107813508973104561592771773314374033121025904714179497109299003168162711638119436561219164659179994466283010396540789073138379591369715664321788212742317832475613475848271274096263127837023122467552861723175534430001290660652393653302270586552162510968837616435504085592488747250339986137468589187528112551360981723894419685877894801036972261317646121461202754848558545235089779991569118050016157956334731547200976357541503591841386621864768345584008503720216808902307151969539664663106299942792265179432859205215616602557687610777739695868500467260474453908498878165335613056434450135102450437794075407275172942915043992958744973587244660208204640282408844105547962370877056751781392574643678912884071153553695374241751337270702318943157459708419949474710582559155345942630572234670806234704091889103421081326658912890588549252456056985325647444026321309416978693985302639061897587421506494182635542738333507668342064653610148528387122646027827261951864197034257172947809154955704842026497637572131959356283969387272272391264105273221141618492152785552290666411130978694437392240626667496882702581376568656375888862766425534213303775967493705092094663043912147992370033488972389615239643606781303338432847047585956229522591174826591039844011386603452336141683785663675034702152638296712358316479912628481237109706800856454757534180192815472576000582911783371175488975275435209789196774385375268499680368818264939090490530292994635498697981667741322599381872819079671112609110042592006540038267672451258990749893185762926894137967930911987907857515266979125166411471511297203787607772522639136745762526243027588430319836128879977034359590561032900246671443191623692276952016293954184943121061570351950593441465218862154368786457482695495332826923826184812955174310593548151233440960661837743108455667097137631503458063690569556014800511866618090762685519341718633248679067413424610027596885131700339549692104319383778723058402955268916609505798058822643210550562117149561712916038585513174336437125786681649325088945726373468983247893488080906386682836840694396098080687870349474470740664449055984001106876729548473291479174864291439954730827761775524932281465184014842165423471387068635064465532928640975645970380214308846039311251292838038427939794841872777228131990617210546732195192456476315872775013041525501208114926912070360096560471275483529999914535384548141100105371538256491415880014263090264632987740977127361642045221415359812522322787936056090113467462804633541947252416611489099287212806961740301723620576922769235322556480157090553606773869072274503468948842216973683402602926618341184544986116850544638346983514346265017027947494022904712062234086490954864918385818473134514019635382015580821819817925577259495091199298914987799624785655461237007607550868364145417998709793732071828422372503130034674404180070869102013722485745452805931162550740360605356498567891538299749918518728594930384318088336975408977491164167292517282302510624856662704914106071573363710465908057997825715241416424746256044117087816864711071659718663219551893818711784915300486515524614299713568404766152987995747994059687982311018368902955569177714843511664086907331436894105626365106417887047287735717281133342892166365339221991229454981855782102647023375668724231031152876063239663798212568081860473223481274723526582864760765267652464920915452103965100297460773410255372011380910807268052904213250950779909804453483427027150899029835772823728915217903268905281204622065717693480775686450480802427102163227257578949043067868220048895707859811261966289422926683495895536216768461712063826326387308665336543431740631382807205050252978864685389011124433592138625525326024609133951344241515468420758134599462027851315166784892425681781834948231412845528776010464709541651231001337912259720673505185848158457668311822198628648751638593101043025455930174408503001414124724226365388628273706809906851812816742009148402823439346086599788947456671878687007558072440203519583496450443787792150891699152303430941662923322784225307029087938772276209639785046349817830288174541622865999269878653739546022073760803681775070259357338546976733991551433205273057970718626782597973511403308051753552033653599711205950647672639016690230381339599559378875479414988491159553725921614511864679701625973911372965765539112282552916868037145547121892979939852131521092795063496980986087427659226962014827265102237578022807780721657247760538283201428583983874398470777813810488978056082580696209921057066105750553112929547390673905541198822004026032786066435378453734945197708306237477753735973030212102029321710033513944816925444180116446428628056975623915017552107655591220507301575142231285974291794093815304616543783510441318275386318965184136282442860016018883335184129152331484634856518324521553072576839670319703074247642285565636991570182070435225991776105096168471662408427513050553225788389957576218908512449246712751477986786498976521308365319447385082576061489310037244377985595607032763727173777784723089627375155757101589314274138129847456453646931015792535528231689862557487591194792831922096493781765044202327135563537604903996498460881437706634048106434750358309109707559861432871521009882796592695910180030202158646395536364880305790662215490643205555637406442333114720819233505243730367997138225511505737296165198327725661908705139735917866662696256420025743700938568499436398649146754028891091215874790279298255985610033464700437727290245336396576269006224018635153512845501803581039058636114667636920285604071950477193870264410810925174858741584115138872236825858487367943136331793279973303389767649049636196862576553791937736519587372650204283485588721154978453562085927110498578181148917679365515103905330903569810703322787560928903453961253246819610301900198926618178060492333055740322921947254703089224863269649969663500388891659434403456356981715628238087643613238185393633081135035762542765400995686917431749848788148584975392153344328167600146489387791501821413091916496226040747493914546495932702275815010241464265359848439742987948273107471180354958530918448007219191954373154755268555807607984490436553000412881373078880293466364541110469509038444439316921014426686687411587061712824115839793837456881822091760210108712090408401763706130131789138204588168967573632424201683632008398831753361589520390169191715000482852361670085258354550844248778201402751962263317040183127711270303800033006436933071814353101160509564260681655612292789307478349914957089425005675705485833767227318587417995219259720710627311558443733726343625833655904003267219666030586578607318926639815447724492372349274840448373708762383921289308553153601269226651279767445062344724202001349433457237417540253613367198932760485922881706010744741928210622254797459033462134419989955203986885179674962092644341087482476938976219217272416671278185795806685172716620403862594901855331361177317926419501223051384365532915419538946077483996098830589187318849384557266837217507483913531912818666882713074262620013336142972654021829010251804230409376970714242981509161982523535963010388854564757568300237711295995577950711293010761615288033231379885724247877247733105607042691704933344384368943107319125578211331746517252866970554762151376303582852499491892117827670036127570846425961271546961621499217752032223401441162868713810822111295871392304959811129095669237383346943740541051540687528849777523926509720948621572100083318141077234129250990679580243034038321170946432103409910981636510137930432779461910741716192243726770337437176655049604056212117374735018377740120819117173957977022480917826370283786199565606118830858416317377615303903846137983278259668570095182503290610430142056457408311664959691641782749800502407293016942324817360891740870017836268363532676742691444804419149876755840237751286071329581410886215808420904005720038204662895282901963679306899749102530361578808174495622019166075993692837567451060141167449031974280738702140003147737556952544951806274126516166650135371264072566310069143805147423545873980219419909781227165692025401126695218089944450005916683305589846772950365360147009134809656785050018700637024655480990745838348760592159325421463044620951203191041738783721365496896711859041058575429793757276633448123797287031119130147877644419068898134286863689639171107303409212153350068940990411488812171256152565088507074740033693088702029265826144354757579402601695253228550178556613632113247909421681710380571212585027040123942800810976145591634727139664345311317906972078808777758005687126086945153259007381985980776804323439006656930856140335442216771901184071832601589780082560848270394210178319096869862436788039942347920290075207626827255233664479470433361819458305474220197252812757100983606655303645922830508925638380562284366046703797457553280203071724912299113790946270588558827356390839350462221639017280232664680687334049816726242071048704353363448377379955215209126977248920949262460845671269371193088959993285673806067770997357818231427752333902182398686521253583108944670861973827382872272635213779792873566653939734981223200034711299960311441763835673360762779226129365565572218223975551648727647516956622500460027213274661504519495685614016655492296791916361692611277033770302519148282583758508786323955627612487284546894979869294106562437617036837814449217177047929280638936673703796474923318573160504820022985900168609554443942177215061617769660675065935261831008999749142038140581154060693283276668052608010274869577185628680441936733739480664492599192804280929454052404703720598087654540109169926629986366040605338641429385295924322268959637622317843110599265148623698256020546783309424804668404317277953226484946199718553269429163162559136163053155419070837489654104484761681117644386896578764636327486276850192996531214340244721384906218125555107234683384030191426964985084575903107988427599345229741830209450449697911315927404922008729225011754052373827531027672235129210068763404105242042992474430756632029919936419060695043130970194195293395014816941443098159465637018071149292955178239661429276003143584455241176644662096806012765573878889330018651196579718996839635898824433199164879807518759707560607482544945141157598521988760435827381923084287587394048595730765079060168870713952436666974549072383647427498123894853243236597011157749157597952086374529532733130286628042106487209537059136275988745625072237374090266826486628241606517574308622980885265110509858632796086139917535235870284518491357257923325615598051658488075420822284652805280038683321848595574931964035542100161000335702153209887561367231222035934509048429300429341518787325248757321942085194708988587266713164377355799254734551537846785223511392588968685468715515937805701861942787018917448229009885464613452151914975069774115506371341625005643800343381574885334203337548147755947333321371781594755916013072906154620880745770180843542261985969118840870182052526976635083002348702095868276364673807548331548543924215670498107344618105217056516402392342003393479169307466934134713816710779979828276126001353066394604719849870245726947339866725633511114655773412482041195994531801090196568509846598258889975404646436656645350289170457638793117894118550945442021254213944879517261818024884690147675177231943062408727991705852937993093092420205887648037336300542168889270076561102199640235015922742555656254127985316930543601148580456536694294092827259487384542133193931763444927576365123760269359598906489680198614985775109838685575170890523756747209691859363036821242174115669668257847681295201253595700394094487933395027279493718739974420704325592836805682473957112096887280035836364396997452720855113139021444810596747064605223186503024564744295839909995067603079115991920082645794873436109845247139817866903748893956749679832369361706458242818475657819767557059243202615532851972666511464984365383317105991748114764402724757096429610073377972017512861483827707597047632559435310234205117681605939061018154476602273925441076206196108586114874115386556916102969904518216626013703734690616084378746757852219970780678851596478713845936445176121589196028806654103590335792683964521847196207917651397201947761581857063936115267842893538090168388972377501977019488625630718548997562094882629493026955387533960788367037221346631055339163578722867157602145841244149167988314068764204149963566990945206148600435938646080176677096376286141622324526135156791791459106503357400737512931628603712123323454973957549382730566581833489887726252571080888322292814834838811928478694802161776201527218121417483089446268890118400654020137325055797570611221041378422352222673584896295760827117436899996546945243702898938058197570071372439604207026620449018436807074056568024167733957613525442325490052595993918103818950190473074020135424403059484903695807743436407096917098495440970734156606860294167835785233266037603908343137383916095020837826004916320018885346632299081950120066967418064678819811474648835219676351646287540410358272140065758539212398211790986054342887065991501236975886998570764924033144669909783511965190626243769004156330184679382013628305336816755388275666043731099233876580590675599683029653067935785100019372045325204744994069978783102081588845366488744449948037134649885466756220201267427314245042158517540071691520754391782845463246536262115818220983380707583161715111743256095491902151057823302117848274972415080863929432109472895917382475328960257473869094280913044806907603649451642723684041252230275654099763988518939702634182902777211437887136258021496828994027702124825039018673795777384999085298908522761770657313207057104090540004998422864927024574336603708227559794114609653865620466884107434695679802569208577268312083565092144909619107500098948531055210654589138579227558389076155864569461807320653307639107255093706040116910870538649166653460355956819999535190812537609408304391962111007343240710531940124457315596172326623554431773397239634448261969264770421642526189133219454983659250680629685016941402440044465752385667836624165888454424770072782904398995543882907172789173535087150131203650819161888182618082746337873423025415905708430620501649972408471664640359454437912283790574751043514903267104704934225039895687204830271958343443571350520451390168072994641562824091379881502882829745820548311204743094116407604283828528859016268173003173341720942515652356402504769152945433360417803977197170978140646235361059404084158836817926872779338420889473495715392081894360846370794026652069702773139651059978555542722247270032499001042022030463399220881474516025487571936605533697977016035016321199717430773012684765702792359035724275911695004713474367647187380499138017168748162173759101294557677098266117480772915943857626680927425440966731504640698331667044222408739930303973264779145202694487755863949045126530399033789836315611625144397785129705184537839172433033852686168678149040519266027270079101727302815953985873959034735679284065693536882795549255585628072657843694165313548455978356007200170399614680519301445733597385057744880034147280372310940948024278030660540789961222055745441323488924027081789217444481597348249535311832847290227725294129656290430979224101373789033813831458177719354964477385705022013783417446390204416370905859937037867272339878090406103803484446270675990144298641849874988344045319831168141803843682247318576687319402664252430299030033285652075905357031372075460039898520034250774502160747279578993349672277619879000975359926941317471958635281705855445245114034906377688816728337163234429904023349027991524995602199980537390408090719988887133860744652523642869655239879901141093206350085784603141642890620749644394527201177080464908928990804696575686037650845950502814442224824093999209072309475642715160801425173508281090496301368321412385964412727232916713142703759257733842205856703152531901194450491889758089242976292108826307460510450128185444044927352245757770091588760891920161122893559785432319939096459821965064543540937512125432956642611155222697774905813152285735020592785339683991618798670440711271032833275891298810049840272107265506404119327552868431997444472112416763297216538587746014562881848431090607522110955946844553940076933162865286195944443967831087719349279778836595036059563072872736272567061811679913762926156017524151327441748498191142794488834420342016094940815545149475745897217161012109829245797165729633754366120785711569677135731931659473239093380097240060503734778594185449031048554665069745729592145148338935902433657212409151126341472954424206948099356355612640820847682878205536449456821535139749733228345537217419470337817734001241066077576765068944256154180252363732997973399327992112505348284416169268474086937734733403639303455000253281617588112687608387649347451857186678223282483947773303108216490389066541258900789610937573374029906736632525919936269909933356135887973702722059305225674987842017290583345198455187761622414197554252850054991498533197693487120222965128125041943179416101044864886119985811572535203546423259913904308277753419243944888251293009442284925009899022639109807406362248543529418980904176759088665473654704595820960510576970869011434118359091896280863446021263233343206147648647680554392588989091833523368264297180625204930931485971097413906414180220093392770978291751358049525885389821965248899442191822009291507820577540383384215981434559579887298325223356961534603988119340868368520243805456935763964964080468028020408104959376557693669287152456924493989669756836435790031308787812557929848918722546335184201039535711037013427029494813276651128296362669612999939433973443549207278563602466695260479187218261804479660292325159589457898935302603415785645165978166646407068470314347123438438803740270878305989426159659248705514464849951758843274445901347341158634841029773435557258680471212386348146112607759370623043974997618839837940049711454519934949783707336706063091463190273299820042889183712573282742814430623140121756052255888478934955793977773616764330653086756536175768304059294076126051638904134024452985725117920528332521764802097992197212062900224933797095214293145384971366988193743192546299758764352336819467330277492970757654137686616021450163680096403198110077527483940551241437689936218383368874369545676621379935687234224363495359581351991045476140596723265230867576074406665113755472907359132741668490164669607362494325683922933097153225892417489474587489211687242942844249225361170512873861450590796305351297711957167005221253112123380731154783656153081534131915095531421889433872369253030642433263913757208048225594237109657504218238792419567820510742891404809874080716572002255811281203062757301478456924915932934783850113756317767157217192946065156939403717958859218640110187691097771893807831370806640421481719789473233699129089867784588483071499753827175041528452117672517312836134258097859656970066581432348256687953275323179232981841157044485355210593306853582670410507167330016908843431280247390203498867957706079355479111532235457955379610838086798008586516885897002520424117397982772225924207980343399209992998108267376338102090544964907147518897178863890819555818728620442133864331476791911766449380343874181664526643176994752968071276005759954913753974381292740805558957072041813107652330277554193274345243089080636203663640506429889463724580583706003804092291028420998799338553818891329578890493655874780291699159028187352092991915955731832580288211428639950269329609397824455344121885958347974903422470032109912656709816515543955016712672395005094236035097383550359827857282960330318345222722713960654221477938462543144152166016716368566499297209423434348629785068588728721538398261096092881411644467336168254625478428489949431689414477549550120522527077415838683601731238026289583946071458744956011483748607546885995775161402915259532373913692343978959402053609243564185506368014890012885076442855383691737045870149020558023622131284286404699152056374493329000946367833399358345220138776030579555097959201914702381617985326178347516342499654154515671454602099230986725376865962883211295183729173749901447450076547505324691224108651616743940909949213597475861275529617803054327328165784767653387753537415738439979636162630647002833400392750793299964253490328240052784909807779356489271274707066724233200898420573295554859915066894237540586097972964172569546470912072104568515417671712451718165890636145817364472135962270718377323715489571389587609201685434434083424488662005354844234473575605841382820130546199681836607393256015073492226646246454719573825800307480972040776623029589222090892483699419872488854359645456394848256329459803551939709376928146379845193620307532312896559543524500791194843218453735940339685013085883196309170563453533430685664236890957740666352198158297537683976071008477119364776836167413142478466367915163021038751956836880168611067045100104512216682743462400363541068706506097942185672211804939186171585405083837717287532346671490970572480579294688582003043660222485969065795061910688060142654110333143744348350148720698122153209324667441608564593374830832188970007766360523827355889314219823604406892280539480882418496711633393901805073865669117112013700910311181667122997519537724835510337462076057007216954620845074824154113884779488328232287082907125970727727991947487915830188806121796086389784556676063198180273114254482593982040002977122671259545733453352883472778815613574285063115075357925264650980737671427286723914850185553797894772904479628948347474446997209972268299699672947304521714246724990980259281519926478341767785410470967894381967096150144164521114682556547223003574048691663526538356054199434522097962739420960893767137204487575058504225465659104748421685983760732633071799004358721861297520719288470582554835301618188962613247409239192289703744591335973593887893330103343979273679873772659364602049984623360106948397518714287239394327067772288777291891534023631096385161880083212798472993901092493389616037116252090060787876515767223382706219055000586344250318096706385834856300043179552489003125176560655072988140504392269412793348124474704578399097319650249364051104535762630827289666692944344257605921456204409676839389777719166063597063467628140557006634428529397795252248275273609309247560123415711546984390747102850734659297250325272713270266146920271769584463185466208210050928655429100168329813292644648653019244254190399113607503325902785113916532269527140360806884032777659193237682645687059219358074589017210569760851716713986918239421714112724546016129838751045263900052940823294514131637406252749283990169586036011870972281469125642921805806821127007544459488634379523212576365027472547358231883841342853341657467217571089440233525721477801629528299266187828792571792824601602862775608072596400058212552512188586884900509918486990724984410188462477967333473852109839913361080544037529480620337927808477767131759144748889718884009716945128180500126213545165188094792850917606062774701399949594497766392204287471927858620615704796771625449015453218072600982823763669645665003259796976211349430172666799535099195956575658330397185952387325294796809516218669848589110646070116908509879953029307135958943885717514335743037070856988406876084288739383657409198402899396022943146600082504100745150485987990791019024534271426406520579610172724862159511616707584959449037780272738008040710646731651886963137787216635863208371572601457777538193144385493223038818766450959215584070898480046892146617196992820854045380796361324317804226326607502196997905969159927159583981759390577964277224935278082815069648066400085930525725931438356981587969258156829138475051080897804631221574506116775920129175249789057887884455611233696390259806440206580529003030430796163449069658562811825608909316905278675391917514086343564360240537086036522540943304593852168265394515562386341742787724954244391274382154233929816954504679629026287439118606400193083622481772620124969047007972060858857821154683075854336520513067742335518194923360074493826970072745373810157624923477573366286537278238930668918820853514358542543425316662360563861274013177565662301379277892441419330135352996642467062401271286582539037591394326334687206857943950593317659760939898381252155524751432270181100899585034762317801691445040849693620463510251405164879205363333648565025246803081229450795609355688822269556424288213693563507519755026719742390710147011916387142325108100688640910138679332631237757998933189824795379779362534111467851955642042143380869744102151137246803169421327403168232994972213408648466581374237322750487755516095302470139430561996450919726094264087035288273736477010002483864240217815877423997469059127212536504624106585085118589978777615554332266702315100809129680490588953504000057187851473269709778270801187337225480622579870889671608849646648504726217981962843496932115028645300610118681089202867855563300857646181282768020969068187583946557667369273798541279819724601297545258749880817597086208730638577380986549151450559581568452201503902797098597410625198271736280208293048161139555774590862093661716355378759554941827766944108134403186521846405470444284167166178676382740338321209396163770870182429627361851389853929429352581462775003006673172009613289939391041131572537462648626466232413446311754122303919607259039084427688510375471941620694365767782703560410330620798001562908475187520155544798828202017790727948278658323025722018006149393585761155737882084865977223432214681902497130043377334467588027191870790260006374754056112419686694581224397489379230972377226558680335073146924680271668513893171402909990446545116050597075610014089294965482873708587608283863944980082456478644240261805272696955144447375292452167690891066015749700365311643617983090605277931922344440393977423269771019914896955556211283028498482727493150316631724994519662373657419750679707672067456383889269216339875775100066301294337639698694678897028444234144698749317177487538330178541399994402645252529236399322865364543826156144794438036775849671415758588902841304643167490916288404307411348312811470447084491744302801158866292912742890887955000546709819733337342361039279391854484123231469035245473205946768684835244131242774285949714432016852199746683968679748424958907841102537901576357412496691343005317359057502451552077614728902334833012924960044588390573339657568866801619700453192369101622315005301216121810389133856724669294326803750737759903338748009340409561817484181069316757960939445027660453927002981909872247685874081385606519597260812876882549130832275923126736010216128443490049211613968008860342683072943290092300911720970103967265542700198921425868981370216016124942184621595687864339731189848480197396046451473214542699243146139233502216611957182673635673136018938213100474602123775536434848467953695172915862946505861580545226794286425125464008457924306774562013751371387343707190053469359339902564380954678515204759166386796338473647720877762234123031564377411487502965240696850018351530126418316082596422768895375226805405808918566102203490746316161105475638394196799284539560674044824754753715330195705452907155254309006108026450838833062300115804057478835206141544839505103255823270535488523955153653332144623811036376765449242253607274757804435741993682356610646886651343366605522379768062528559639584535537346408889834590838659426255871344112395417156347874834769566419594228417258333161892686738464042915422824265325925115312629925481004154721482165859289168078428936797397973563786223860997763349568831804935880954911178278654996547610116080813470605805495588905122020936858338826248437000532414604774082581891028250485620541369613782741890919524209285681559738826236251066987917755458184178408453198607471433829393042615802220433062525811012335831378067264638954223853673431605040540746264551763616830877440362801373019663225431988439011862277860758775829242971372590582056746411020241969136772694086015034684517486039266286142080080066138215487546916220015779773124056218693078239725079362588550097299028661699469402193012185051752985502315848968359320649488415640166258050675458146776681878449009039149405889665690970900622405741195395129340708626281647389467293510091767360646165099603560660485785755148159651801834264793150930499229866344442739823381837478170399941803150513385646705910128719073787736655886809704363147240478057491455905827036153608098630301957747491161122410162376591174682269762639208426175055044057770661080112774715202148809378782842025720860726077336919225798347269602643388323530463917045923010287125367155286241601629091152702342636219226429319710458462848689211744350080243722711134561852149989640345456586213150682340027477904392488608423653177995110964079142444398843860963716350715039710199250320826980476745656092583163603199115326675018400656009808925968045034218001549789520094767834604667330675240453692731954378249595550626108111499227993465919936060940637737758135499251696580837202892351737731105324527741172266288816920062396349020108868866624755377955392663504417081867749477527445283992080885416847371292683247141406546248063572962288466880115007964726475773198679789655582884284823097490840301983405985286205432917729427564940532231926654876439277694719837544613651561194421483165053747190581864266961870930192652114057733331453579009842113941057508977632725106093333816318477148434868824311002233068435585685916902611245204830629124419968168511185093665691906025936811194375321526812225437990127394972183527725723421745924870160165528707552523256549490227837553246920478622976750413824733278912111540427474962121444945908179575074086724442179315286661734833095187835983392425364077020377734487725885525241786024259626163478041159963480494408266318208855482357519022520467228881517430224237008137736968943150535563949177670632422035642355145523970014432696710753175384066885439282043723870369068997581705175359051105934466795900741372388028706375066547801196269901350505623140219074729364323388122942994581664165391979459497159511270156103858470810457693531425903328226501614366296474764611300731083571709333040622922007962008748719626216475693561389828379588048525707957712632816748330384961090842162401732453894311605715478741639654271665139831944298747931310375749622310955969016434363384076716504021220019156704900071922242315886487832342540872717830123314280347808993631635597659006367786325914319717524131987958976630100833454839605636234634479025202765076874375501495942042235732848654144505401939944973631945150069729382957290128036421197744592193852364224518723787475984232806623796133531677065039754027862486817749378774463694751374768773414815070949712535315403489191756512529273413221911786701920382221906148312275012076662236736214588152677174745075162174628474590641483553563848190159605597372987269469764741354479824739538562052464566177303930497369928012373891759194631911754555290710620548126261493275386480046946089223855933495712854427312617382864766389480415050531657420092222844156324212304479308527964770301536702661939965861544522036243976468079021942177173859691390491380039762606052830323480400598768253698068307175286602938287276657131407348727846321537260254803668986534732911972944620746868656038191943776727181363000761215364495470043748820900129695712540855219803179591590938953936463256641996109051667618658782190500599136889438615860189122657788655618692618829746050043670239785979267846280594767105258346830676821264745751940468576778051875174111393094664414462792689459568427483144982203896962830346088186514867752198187801699960843843061583710509387870534764418645184551024116322932245492593394345892536180542292123558219572864649816017322764734825663824142901607137796906100762719758886161514650009101316046248960935908721601778293368553029398362796495147333648279336474555959441689456442370965355162207301287658572183658952005795825860519118811665558399769420106060045167319964659750713132269948593256063078426822151277611226287273390998789682104179020895992842474382701871400910033898924112911578538986542937114573628461834864121365415486469601521425846370590104555847735102503485334993555528047690103309715988637011372695115535664254912372798015799879460164375215235312000173860861002824443697353845544895402489434361592280212036753647856069329568626918445706872180997153302731633896450836985411754309358202435009748237813534112547498278895654586702137077832868195430856187785793653822252065813290537890918490538703058763530056136719519699783108144958198911822481413482575305589360502558445888560076884794607813681748300003550242595282921984082754724050817668999189028547066802788220183560262575141998170570889855059831031645422484232577614074143280418858026121290478485709546222211946995159720560579250951266410489378970533035253140908174119010999859980308703141903539693565166985445709591613835055455691962436265304580026109883894672900119754153060873339745471049021609272206766273672937201756828168830175674189965107296194036893309368951526455567823378957914362486787485640299504189420856209302284860329801290587986055506333937396927437040455396871434368875000582857697182283124623129665154589966488299232785445014205920807731652488135837515263391125580747258198648384568880158373230479970048429881767617810245499824701617282576995947303501152104192471392975794622190572301007216214469466744159977221078108123635791663243617763931251033245554890625637592968028100164750674974490095210892135193662409518773730584891704348326483011491096609935962537068116968998140092550633704909696456695842089629675337970501219958000520952229834126255401497823167108189412965011771337464880485439860318290297401185264822429170265953216288619758785645048951806631907078975284717182175267728889076776763251735918403688427735734243970098694857512701991669772777045845601682747078608282467243399802480759017561073079144932524409403069295731842160771893963661852545603923455993815783578715956849863913674881432461290930829217781428976251366542144060295828494084501564129140570818464765555541007531067327975836440530917693290403295385114387716803457204992751654377499665687825096031432266986366585657185095103375651301723603067267005371838698526402951439700823880022782576862699211745522119265002525369240583572077208326197426595725952466552276149474339283765295461987941580983657321176480565410843866501050455793309706601142934080560066823937120593486310842894085487336907371772895395583739159141125445832061649892234145788763250561572987658986238377944522816304528733112398695928147036362366221150198430928631628448191808146700759014937092079864846251165493839214969329018951253016040904583538235841264355196922099883184655185543228042003561565648158069252434777062582728142435557452648624949440658644099303092052805686488107653525633273019716203779633575699647161685507892599940585997161242429262966042282131407431163441666385543369314128609140527481567768700466053291722262010416603258125144434251246034226701667612622570384586340615325623397804087209637588502046871294294230747521687819059095442937729847217034619339555579747038150040552463147401100274553459197647688657391227621168506391092506074710862134322073689161788743033617544995582734740835120120718731945365347964052213732091802765785535012141445129796864634742874316128374103547179983375221491464693685355950636546488262437844629534752471233616697432591133621783760954620053910601053719153718431087088895129986784163183339461733974081529952039327454624124728566293228573036389259991927982868986591315877924063494801598710499276366866975398210878234741501564959947053490530409648491931614998507868109186331853792821322643704807402736697120450401503198640016179907229742265079371176018964259455067065131053715069522481607499552468454930177636584868294584731683311810220731678240774572153693896930166966138455703999985069845500335757982482957665722228000144009505529066263336924929748816677405798897311443671070938691416075829604660038477540540577816182569576533426265566025961242834978173207589210800319190396882464251901525301756681438123948982960946543292611822230412573743356506913595378233165780509577936169359057818682847364008043046044899891278687569214931267965252840069549113549713489795325580250749322514158333259066397788878613935959683571532597233818415980198541501442550286983147805924050078395253610904324764293954738372450064536913254078270617189316321235047277560978782906195166484879155155069147652796496840194645575612765784206441029483524517680447278953890177142438338893675194416810626583982398575709226518736704705067157133639389887706907187957432759747334914734646469790445191560229736472337286863095635510254182242876573848627208843223467798223859773955179554946935040977691592127230073925073897990802185483032946543424203932256079937545745051224678162027305959542549978302209759318576451834034819303773931543715444248599985159641065977640417744548092941464323674767853143275179588354611682118291571793505760858175079476242160562540874921633275182919243160304767429825927348121476005164800653578105649381723382790290992504556071569766960320273699244934764728817751695261958039109905996359729207781790359683910746440035880580129114721971860638332224378800018488368374253592553580897785080002846943781391167508902399210793032111472182152907240433393580016525656015813695111776663940571860953232078013787319677652665283810298005410051061776439341928909299168302229279386157449919129347504799497989404787667357063239658129173707050122302965946134863431094307260868535512700439000692106368195145733550248411117616473467426241032878949415909191531767954279325729872806430678944215974271626748609421563026726515143529223625873236548008482122707495338287385404052163452570355291154492345416061797564199741165646773027096889562416122587854551416791208138728749135977497514058244470060374957813955529914858261474733080431674392645907260554602482914506156160126746334296968137807716815433787757820240507035981925045449384535803571254704284694895472099960522237446058900248236600174526546585873424141653088194912461761940621234883647553018045789339815103266568386119892976755263313846632865003171222123529347755087773253453641297719267303031359783540242767150817286406001083784938161466066991333439436268705789243120856144072173131072449873934025444423941593720252246700421832992416942562181616609274941320056472599198500550666551836915182469983690122236508189441783510755657538341262927471087183838027618537769310839509445227109583241439444152897966833156418767975167271964728512302799889423241156950291301767215631060839413868798502455973563227294371245748395643447548031092770706672434783092014551920188418154477411752107983688256140295408796333016195720060772794086423806652397108622330566394499301271176802925430545665285878416740113374749041314712423698545520899306211368502313676326479515557966332829906098006053264589009184477415242035276861771119466733968941607422741705274515703277911222190717102456668138295124663615918973627163433115206463324353478431980135062243198573373558863541770446420788670205554183106025157528299484464353896360990048443253843882157065633017301194451190439188785147021649948726591313166379033006537139948313298608872647079274581924888802953846420944958619571715759915618568559950612241952056072667340473091803149855168065459770569113078618039616294538904474154221484840877791135141752591027573393119115758741794489785297672692632623002706710967154495868011647073946114149902479544846388558607179476963806163751401543517339721578522048627343485571131198436079847657626931691891667815248546951066776232703123792008656833583292184012519419095888538155896092689915907586854314701150943228701154882455109864182762760988546574486329267539672988271929024843565548898363354375186784388449899749973082478153713101224467017307337492568758143545143521072731190144204692760188626756617962415178146307089041634264049709789955624915589389380954622076949454143571977804116832718118076039738179134091955882313286148797453444725143663444085306186717633500117419739020197107324377448291397462663586246846251841606990090186476566562447173367977781942872658906558355140440980254515443930969701664623534983993439000389082752271779109730470525677923663075960968884101681240989780705170138686725223563350015573129003774140616770474640463757274548020854254953357278769857080783436979171969774964267376048071466474449524293287149062035025149262765195920002645784090895923186090431336156528170666780897493198228690685659575453195024461645407702036305121763562483146552917104585190469044566987331728143288690510963387224259069517265078463725407739126659870035715987640590532573853356667167821725687050396825015958023250791286741673760480792959903865525616684886868540653048168881165949411766184362324539310044309673877394317469967427789337060722996995939971022176051844831489393314048291991206695450695620768913483227397294034754847921385091999362587816484490274581446850551961683073929773112057136011141557707481551148026153264688063151078584526583688215988655598400648264820239672859814979138126012880107686011386808971191907934700549169601694319376718729387348450500679838396605632655220111394031236641389611062852941753795013372515964096961399647744086169882603637563654360027879043903140110592597759804439876720828735321391421555456716543003195973279331790743752676644465253225328929751679918718865151500400123172156845369438199711490859741298535424015112732673125906977075467247177205292201378649921478280115801358113678520839729532010381164251823708856911164651974287683347864401591790641648234972351495641744345417511133109653300953821174229514597624694754913201753038559010197664764954716730709476762394747196824820405978145001004823929720230123688753519135338664168668953645121853862134332262988699678719204604708940856644105582697038949500153967013383454147010153786226830498802717646008613139248306662147965734268365972048853270583955023003976751166164660399994129008123686372364034460021323675053650012685417479981349251957053264109670721875609737963384076224652364528861346934270150667175374524180930818865580111906673956869809763293375712516233170560947908383612723130826278780779954566275883472984625596783551628487341663201932184400130993944052628192890299681179150086803113966470062978976144722233078616140690499576581575339883116069035184136299405233045827820235374517984571532883579723657829220754633715246380211748185737752504870838469280442690242447917650749428705287412643495372316263930553422788131063781127713137164392001990698428829999602994575005391309790471893180773082438232397159003622499477751985896535608913406999921816577272682959090916347296059113885251252249721509832597781925436621233739565515703212873673080694011053957198540041873339772973826643829508801527104317550396374087875001109648947981005202829653065953377263280618524575502065674142527720003287607628934742243094594765299073034508397117613656344510054147202766304759547824062581159470756614450680014732180640703336033745043840000396155487922899419296341678733939130193262610470035385765788097937423390057383176999178559204162944796928228795964829566836274386508899878022437223024297547758724118014105646247575336092867662301195539071864362579047042392833837906785639305733698094135323583388012941862635764742442112307770738364912134547833378825452010020114384591447175568896552380347437293225277634557841243030385468178630935818879204916691724133905130894457135384956315399447252323901322830132587382662342836779132853619558832770302698898551067761433896109876148926395599633230071083303184503944584746170808355274680661789274603623037779508859567302273834828731270811881663260865780793040413982486494775517084427096990796083339535009556672816760674710480557252404059008907987511307902344810322251972187003349999613088832777951468731160543675329835992598805492306466455620311969556558948552252850246655669287760212549721003666330277256601407605866161590016476946086971795967453446556122638217629579882344142273039110920185004305717070638755186547885577013362950610310945070928900853172977415593504015015335958308599881406896025865116674693655859522648566563495922050457682207504533383733418314948903971185388259393681959334269747303407561186101406363382875024142526683471359824916854502817855728568901683333722051838805751113669379459210911440143892026027215272947505295367062811731286337146562682572423967466414489371414278162068642446057807882326019496668959734561355650957009523905839859699693420056393505207812170977443894316664204582646469094438936144549358010996730630881222893210357184631314871319722995039108543379473315688598097143940937451030964874665820470663102203129143152059053664498278941747385101174480593147111009612269203936406044804821914208042390796154944827270551556380691037385042287781804044589352360669784448281177720510946555160314387476227747979869152981401092624135682337138485283269265731013151462273631676971221917425279496656207184050875570050347275453410239600144990437296321545074612736813340645859982246425114179356335672394897092916015259092346465093912874425066393190027766740164896439133506731349322372052350609091218265751496947367370725707427086272775229024379806551849783827468316382407091542407612584425498979988787201607682433300731282687159620233345187071550043087509740224550125106000673950461547775959770620137337666671365824733209814866974080673164553152249734802681289857519846971394061496920870579032655257765581177300561116094367925281966857463476916461132185917877277179492555066275422372994407429023119751034532512731136184700839652781962847219602379299516301512492029860466330222647067443167706347782240196837072681869138597901710000815913453400786568029254829314164609135725942740541702895963562831318832004372495814469300196805297238429690433951389090424863034766868755143014646505432666255207073124394903032302587048157379093013013401442708564315341896284412798738746596772493526944254204965940534888588475785592872403227646852550761271794056032604014860627697016998119203541853407920644321601088385142546651802659036347040562645665427504850991515086173162414658530589380027363143179435332230650775475552178569325805259570014789985056028541827375070572756982304477213067345016645722944381468783865568572158105524183943317936917148758763291058495208578505779101193974812589822965476581070099847274602218264386491164882016083496927079240365963724489177550291360019321773237671335025216792866531516919346511421510257982718756457774666510535429441428222734777647086427352745449968599844865445158948433948799685534789431216191366791253616585491008097461818558398918922956455032819663040260102675520940413246939557882594716626660174535886188305398914281038345048488493420590600107074728860251293990088923957667137192002779294101444054854438174417855752139571962334188383216625301599409957435438124496266301398983731076375168053502752228225351287917343608197123065293670717236605551737237557098626880416860984712194987003250370028586747874734493662148459695158074938102596913227001660164240303814231597154276140129625151267574606875251047335918123533094733610101817095163138451553407352345516843954893551899620807488457642702024280626142379151665207970641008518720879481776387985060269775668326310079415787977680885172406311698836435268032831011195830128995293236995138155239199902316035094097796625717207051936473300828925478775922912056253727249106093469369772443570645083837671341423313932433804893004439828784688759994494043856670085073097694494522843686208382473190287793534374364510247111988300686586977752535097487111397275388693926042622091047657026442990424099831714483634078553710842303671697969554264310647219360483707408337947140874076466854556142402370782006444278539173647007368369342926011293480020476628227758194469965523173753062104837412774403567874416845182640583109739445930343398922631262357002431359114712754813133554332848539626765125921501364299156474068792115222647833157152572398792725118050030830340656213432833679253638080214538654420013651428083006855184554805715451842986839381733921644341425922669708328109585858236170289471305343047752889856832725899027397545975386713609138560635048388869419555822813993552719960529881987360770611828909477606750303264486669905914610290695367580759778970855494012980473699751506821509982388953128700368371396925770947100121496625673803193333486417565502104595640457374594663343282915682119787700620640771003820656222515076039368984811897842749535483810203605266668254742546512373956485259014135401316563582821057080149270164480629208049784525795036259071529446912316776169976332689575979568400385531109424607407682267994943990615324007531719877385138760580107233348375060590532319012719910934027194884661919242411460241511629982635998161215168053828668470502424767819893336431738334632119828925212348266983288036683138132701385974159124819235182340748989991903745374665116700633170170655020019465108909568241063586201059741383145099055897250258418258720477689945271069538859640899577675726869526462867442300530043733390447700692884646596228476497244314486405685310675798193680251093561843909083090418415016145299072539182993471446515441714395662931655206556944469993349558066843676083143113652227700647181220125087602804311981493454096817131585790885318217049706538459770372962896599481780703264861176814004235471241861749152144481316314398047487263721924266582246210597859613163800061387081781194052637140687369005179627638245214180193446402170936353742911059472548846625518439622355726707243570059341320493010372507916608418563192379961517647780783939784971175835150313720009143868025796879738519931522355425831521652709415127837661702534426710284382542476807049380913712587088157054300233521434758068221540142897096566583959796400771124794347187491823262415933793945379462377477870638395870234834685500510903442542731148968005788221087030304579793918773741523310683805546451526269470159761402680711287596177569415789190878476017391795824405278085595701655349597558098921817967669900460780344711626590362856489086572716979641618630886148800622982589972873932745516899075649652962710824669425905009906522816582754520781524379428445598568052346251269330216384840843956850763757838696802420516778562121839097689790886724775834267616551791809642819662352554546195060625463208048993299174686771758154174562247552776094882337007796219102962734023531958339699971251735052134274299022868325779800812101771460195169671519116282646594268722378324574835082602756421861316671867576551645817158087951796591423760188053672622000272788853225275793722279401556808285255871738674884381575134741321007106807162853110001216528351980130222500095307013275209055393712979004322304863500582184253842114173756809829267503667988387911534111757988786467391702743046143039461032075291910728596681755810611021585353222490113945857404619556529138111673910995671344103854542322496737968253181569038027117179112839027523970548268156075414358566976939920019037367800287417083260213785588108439576806710377595247825831860923019982994156579776063344045121884250071612057779156749806582753355516059530508972125227504821297001855325399579616170172136991629388520942136123741710284262704855242024296666013728546555653860818539905874574466618604938170386785274958178290799850384317872540068068274410315672750416920098065341426205005708142354516364820636993279229825637509277083921374317773100024448116249190030223945262013898593953657995809805951966745041229803865476316226324496079660331457772524322561394487057093906622461399165719288935230828281300323110917443151247766115881524373411039134573149295387610796958464809523675616696041587034456634062881741407561685678864634410329293037370056457631344607824075379489763601918264930059101109491830960632730643848477505784912667839507257185995863131743674571862309172685187423438938084114489795268481471021190194450298621949858271916166187800825696375882429347708990288625772061769114250402312803743219358982315947558029819038350578599779998255492994041965881578618759328431427326544026371510019037595753196383604641118429262089626198064519716608253062991872811900093434360920877848827759841536699204229632682940637159187869773907729170013123361723503665296614983754679012618496468380850188707056253212563366102016164124513258738549171726036238675161433098899893427116998029932463750256286934325659784155076610629091305995098477717324354448332964713287631321100272613287635690020689565398026879195035116460970721320170177494355558343263586913583114312390934462613878961446534551612924290246135855516674102327895651561055159825458012037736354352904150339532655985406215297239825993447849511085298714278599826167751001169974879499173811274492836605571905946863813721215880815105203086127146119328340804431288627722160167941379376204229779594209325786038591555295193135309772505361196124108040328695237144048731979162744733004624089908897517487014482613659483775777375990093551248953864056759733701382656050547859993798887390101542231904887909489371440773073539799747306818732622571700064181581425666463661959459970998589029655713235882468697513189959910086802015138112722972792904853717027306763167873663368189347310843003668414268875245468338833809817706400075680037522868338669806550454711662242464012119676317967251816968432299121745499949147408711528372287230351040224553620341976305083139120709274102856131337994120604686514805919226110209291753990802504022976288762209593723514918668280726945314235509176488121738550690689018808859475582080898437573067194113977145396855687747438316495645558674361145913203093927772754680353959982122529019900293487617729431646721566631532440480615499332136777689312649888759859919482157551099936390974184086961342962203779127319841150666596606103181048557950796156896218588975191678992641031453176440237717656200750571373699083048759277580195369914765913104774392316692826741663846016021311558888562976815766443826658691034474298122865985500670510726638871933492447478636196136441521683543506671087723608545240804129595078684830859731873954518582862318800069170174914763553542485729750137607297474583233985834905441184512332560466560830470240121390693931299944611405011198944626347567534479472274421654414261801142074298146805842067790262768744507398387705797652291708562038086665331751026621126791914343776902457266417055826322202955067629761831378196258433171588229539600419676833511474336251143154527219291432831320789879687151748287372112592175408838407569508228450888787595765974321868725663072453822508410527992151290833491672587637361492616136509682549058197110228834132934290872513573659462168996398030975150701459032771780998826454472211122808649250850945263338502038124059150056043614795090695088758549334464554802205008806641217009702355076934115773001888873337261572887545656002300605782274983383281328183234597100492653889243627645194428886644023348079339214115475542348399067361049511164938588156574064412012666053968030563661239590869072497603253867981746307328352454559315044762805865498996243902943994721864343925659323474461426111296601500194234198518378359201837540640371331824358082760535281580901560291704845653927792435672867203974351895869405164460193224827075156201496235925182996939069710555233281481015021406970649197532918854197084402929524204254405360365976485727667058192027975933709505395381916597771584725698499170848182629786137170741390993187010951737785879988105932034110466431110649364556077424571574900645550093189725852398823347456710589831195041549576364075636828740327611018648690946225235745193762600354126838762617287935779211705311881847167449687577731762544829613625505715834674472327778159857598763444383219644860753396680268005159514163088090572431465101516721459953795042117367259106942134879875567250323144479741827164659288962248996973008614954350621046792616989895333411551945015756052239379039008042350416922551673440494317080109331419065647206557607139563320774283970826858559688841610515979264204915700628364303472772984574057120769909392387021424404137101464214759712060670742424369326557849505706460548039315721074883034215504541042061945907693971934992313852569163764181494871662034803750096028868324605127558423063580494948837863248701567811190672752322360436970624392948027042207773750738036774521497271619613756462136762141560238486960910362688781368188358778045456129374274555564144956815405070440629992393039119367730434597511170073691515121726669069533116833380255614515429528458038932242007425561786010757081292144032542576066742973142348736574032499114506859743764277817252545308257302925016071844086481691141396062622093185971377668858507419449362791481329727747971361352784030611967296050466788326084489940351296651972841811270030803855503071555851552696662857026854382779135346812193153346474065940810263958875048339023593753412703936416995317808273468284413188248095956722949013910120167621814781025539318935876005158547347164509179697334619603806673352393988548463234006823041079759334241331723963193701805539165813897248401598705531729039679954155420741047974617465277658769749627821804754659183061227490773903409947387708140086778926834401004760867594878280014184644916385166547720890666456427122891057419821170827666810220054667235392621183494416499926831868065860796916040762390995113252001167235139127692656184132094134998578796924566662657640916852153946018662553139986455639915091700133344824951454911604622981697341714484681409312949638463788336460553998424969415555165032200943876162680964243304518595678286681204685479391161323583442077061652318459409365946563589100137444297696967728567085715945649475447695453078009133205379258398249507823616233135722947972134239582943181554028553417263947984175696998629733988693819936667007530704064579254092883615142921978482764540130444266265118477827362954674047050718125077045659039794783742512182121202706536275238686717741910511706916482374984454661038375159242082870798224763029405861406503642330199441634731546238382436404739627459414821513935421692248868947305345016331808922806061291305001373102638498816552470654466381184096117297224804862062626073397324421562536149177897309646492234313779456104576239621286664741651056870677120497436522023853651958691738350183663153249057996591973694042659266734584387340566695012260656450236522320434840656500401349957228344368310381020877180701705942205188948994165563044283505148950863223462558562386004743121688746056668808847880611626825521741242367079381436276903283930620746345157548551756456408072691525577916477669122242856470867085679787069389155847376518220426777719443825658221094622051168424136511690660690777753952480550950636041673904166351998275821224070872353583946921672170514393834083944595549418383483279582559530765937335632843626553937581954945121896285570288164184273463705311640742397691087279317486070180247420124576773939138827571594253688151965225843991098548740106567204234576024876297429305444778187329738985877371457340449461484402044391683906645148647742356211755218038244313599479215385895784157882875839361967566734581525834152372331133089267594634075435785898133384076108650823528249459723138508818058494201408916736652260207301987965962733722173833536436812376872372305044598262954528933945429527659479887829220409720637802411376320575901609783205372754364610147085312228289455058848167888744086391771559078685533754927728430502912973572707528681679350911352369632545823779654196860633288840054231226421387581478349405290178242640643858516387977424144838274490370609086659373403016137879575911357605805040369174528272143727137756586362514074920691255143089319415554539083517888247461209651975215795384294052644066818660337125928479758003059428297916560769184796448038901071279001969759385136258262837993235477114774681833494581275149070027093944956249691578579664426162584235315554058730403998053262608429266126709419544826990310847626373626289979079576886962666154107593980191439040520960068382620313462899268037593496358460546210041366517563700609426786153316608196457531867414790148373406293748607766674078309906037687399699706457161077514140809044667342665582259974746050170092861541872676484231394791984300292314039726396191943888657741382562596424011279281582517972866236301919905970412983783135150347954118883009576105158751690543548695453622202613056413510777218534346937827460172510555019192629300447154891504705326473025443242569706181497445155311910219041648824597227598457634256668248383441982552152905669019734756597587183840573498989230820905267662685502730576117115242824100763780168150991631095630756805159050610804976654780490593225548505596256284726107360799544412410215774133652255394166375357403257535537906692026379861173826030753154264527350588126651500139274937177774441210003526849745638060271751568731641755534501763115720043312848298656371283344191334205453377148039143238928098473012151887688858622346088248258761378552445493043450583835451976253828218295431611551906155274712619784727013472026706654074420273051202709159203655253234843208842006012003277137289747582154381532285727470037821283615885731166455591248033533416163425692818321508691549434599317839991377768318348067483073438335539286725165065534875072127677925367385905345456281470808422034917049710949095556550343563884425271226334290259759465388375437848807831121762267978838795559646611681279781826203521476495608110105605885928329170360851414610910787358678360753332584337733869353374659052657358226499993278149683300755450864851675755309256052529214964936715829743429478743246725871053959104839429377083308821678100319733314279476599310411678889667887479163987593497110568728197055097029732555186427597058305226260921796249750682733609505349147863114853187726987895361054012342727772018846035528364863128531552433207931049914241411194322050573082050184812647586340485469101705408472253484880142151131838518341871924787835221817337585952382399492924178448787931483912515623315331243066923005354480155767180245881705379497930914258316272911765045674227760763387831209247970065117079474074092104043126788329500770598568840900099843269020569376077914976316289095190237818338879241717829422237385665213725008231549100260304984849659059410535132911803610931239092145690397914739468893518064314379583117461823506571004088770528809806331891857181252169776177244701236854788756036624582086185742491704807126012182579382790489678705297636775964521640076796056448238949000003473177660883696487276322781434019198904903167747993998642056968119737418462972746354734308721435284266793895371658562152432680547078087490394537349040796686054125699617833891537950097578281084338509955487960616692634420166214325209518288397119781233384268996159256225989378703098742712262458988698236060111806957495063618710833498791651003002635576465957249785878054173211759006544043365800956887997656821344500689427978724918944419047624272609048383010335715869395765154771135145569711928090142767973297468864373475760233018888093329072150699292495342882564506901974302575356361310779513343830163390210448040246814308055926758661725564509024197623292761456086242776220330174869461594333415540936118648486627818769676617975244478118526761806428322697248609130386321540058574917136205552023730855026890135421455378128868321968483553544039996223162928072326686426243587340135655293946035842894053364279923779583728953663297747848248852414044289460309690151203006597131702798127969837858354773092345129709647827010827728023616573146758295345256388726484664175437131412986557092558456437740916886086351090137407205129342660906087923157345570818581873045671367384478342553641254871646846943763550648398248442376652433705095764027884916107198244363733750224218629479080545569367302039573581056804637433358557030471673312614453774077226607499585442777180498704512560256687356419425039065377199445823682272115928915888777210299686268158354199498468887944774045170384367644694136430525527172080894166409458163742780362877768361615267877173498917417126554256907444881895485089857850969815624241893685607205149009114598262750051578106229403592712323382865321891659477984603770764616074666619374464981620910139343493793699396848322488065047665601016214898450277815774189609731184902958436644913738324530460176153163000457506531347064873312604464391960595144470184533740330312402729080857165840267301893281713866791889800357243871959272815157281256983990781607887773828676062233733880814712611136809589935543628166166554098831643547753779568992289380938719737956423899068433561458978958061339838018373918087137092119784193758751531361833180813507231648068184381287414410018762284911995920010510358730287355734728299052986607569170643368052524254419771480209149382769338606565948688104208287427619688844006808520763792434618920198976294094424673320724463342149230832410159645804829221703130320287530718026982360987656387198746578969596103598048913192457367318825439403385043779748954755099420189855826412760529919467802768820102879794515869381425520764230226733905241989799546368743314969110416822448408941987361592001978383857606551112997493127319257658702560870889318104480292025595825217732422337541792904373858972917760534220694169052596353445983453800694393999305524697176366703200235542639400525099775771029528729994672867681033986460596915826009842960514369042057982493233199802743460149572327832446975411018999737291933431236082157832961376283852618241166668427092337001279691298850917978515396466473170095071546522282052296125011359980882064424982948614934631598526127130578280242187355944519478712144372293380051910730114541183346100354860632052285457982145192786569239796811929873031952881613525294878030506004648215701212462897887485399689124014019904856521380468609900924774225116976896045056716364523280834209135437380185009827408202406357878207979971531930507007291407376991849861570599562050483044574083355369907642671388952272780910668210290999230280133850402052585763170991093384980643932253455111316477569955520262661461758594181049806185427967349101528708492283604703231670208777920599054048221947893496001585195075956336843406099189245884141132673593043808954899661209321048294560192930350792388380372435881154518444235268664718024778816247602786878251480421037952539073769023104941265730433781039870108677652049843760839859579894491126745559219504871679578789925875113829606081525215358593726858348100830698074616566280511376579150065885187332232260567181331780379292785690826256630082543463481846496655403474730640989584227675731098132251388402359305325627082208255431114306804980194455133664230718111942958487369741795674106294887116837141858570077916540881322885024069633758854065757050902964685604188289474113724752126421696301617503202101711728864541415321868594282989958973806832800534182477973310067942675162891007508811756098643667924747786226138687203469298380506503881053297150377588328385022238449406815098023011790979477197857076884096178509415892863580319451236739640132342233369030676878630192062160656418826973431137532981625311142628616515538034314334513909279293449815420026144622527807026782085525794853472361051857659877294324240604606328368666950569105438555095552636619404441718619175043743009746043559733359597200779597139168554119115342325681269203125666224685752351375642566633268238988759552001130261273429028572614874703840275883859098543282851982312975108054009965149847542516119200578432216679260407688147499583021960803791782808203442280998590848080855132812765895315222344375214567036119839052777225547575807015363059819352210603144483595073323128702120377269690082584086868505222919745288108241832265877632315488612871406159138191139088212100240478725073066315051907804515989667962383449822433573128969219496217057832343949266112470158005523631181269326248006883916521211115458329810796253660070744556632185170633519799951371903052966649798806032301122341267390355645525944664485447805460556432100304120110421363768118401762863642275243961997616615540699291371352997395709569848258325543121390843558205426948446452190578968287701762310488380872283895507247875043487014905911915596653837994641242253625738194633540506383667065652356089162674926820228123943330460042842573064902969732503771730659194183542920736154812676764151004966907025100946078509837715479553255736642593970776973049325808376633517543214433019380049213185190265970526912918507499565010134581557948329402846333379503618647048247002039483983950007046059295639599739219514660327624755739048191437413285888971615339523786949635034120005454852036798433297337866680974849315746967990444837021135920520647170690518227512604004538476121809417115739869034268209230877416205859190325570351656681947539598317075668947145237239143691323790381855324724273907909197179553434153902000559440578272237048798391655323181026704654882715494404511522035395009883169125324782829116979478448405136959252832856387585525452889164421226564158921684546475357532610810465363716519995144190727959275174416073112601976077533192565498830704246597779388868680710355145598976791501895780554966382721740548125418833226036776025517208250441079835324771644573744561283985036435775067813478449725706509376495689542503258888095416768558200845602001446551223390996530893226202673096195352271179016910719136780058833946740821296454559537109539953627029261711260295953542683399626204480010581648066673936542767090627499255443589102327875908494150076877850525200034754429008688683000658087913991137964371713602502624186264960204362000228469078955652466684392526061303662637175329899112015005066254097975029760937331366143530674303552461684236284225098105049456848187324204490744116199539516638336021413593911507511566961891480289746011492407791348059612991028297857726458226883197318666533388361211355081374783431765215260571255494007676427907902418034940956205675257509956570246895329018602547107274654280392287216784866193720618934086149811531237657447286560496414137392768034834459819993045004926853857378217955510414008103742241733779344471459193900980794398185379752179222180698576597615141582901208156093686257119099483446574660061599175685649458611138753289886467996510228446849568088253105599510981369762954444331460278130793105989347087742676231880217588049201181788050852088027048204013124088009822123180171838089102963186184776589611862739165166686367011206290054530214708710200813180739328933528590637439021681945040713407096483661645741336998753581396114725571353624823183055499803988431673647187994339041531709664525189520218334787313315411926533429915383405091330069239048557412029517662334082803035425606447363856241162885272311590388260996795590257665181016870081668393340328000568037230207575513495731228021413446544662461213425379349562428382144461266502420557073640501521137992119252432953277855422193731948553692457440850886906659479677387119309867487559334088097800733223768278998091158727451359155580464165633513313448844910987793555498333362918499424658750029183272338682785007497238226388491739094933358993454444812730968667427239051782589049401588580843319964621473646239660984149948451369188149507819831437746828097656470951673890057726832491847464914928991213871234225501877507831119680808086603455756795879356419522447965611230281286714620279302139967413255367091701040998277856571179119268548222000335443141511953920043374695363866400849456045335177201621654921438008992141422353877328074571854759228806608270045693599276148445541744470388673647148502909793821910242899914253500638906089769684365420281556389992616966858568539860866312418968204623659569771393313069729826286274263158140405004568717532846637054351139766942150865989129381387727218796248828998993125012777471858688103474357783780396194766564275937354520776707774125789738068328362093287145292332790362638784556862145651329954645885216467979195491400746974461410772826126339253220891442681935302758993235016834495158239077812905512007593190252597227062851455409499602065915081811030873266067669864907978934254901964223035245481011878605393923876064832334918873315557687795904188442333747387857984772012829964305022982415461879958889117641139781767158765281956551488726259921147137231756400386813546455966397098045512808365492357784246436912759615056929034033294785113109119258828227531420352854276481244990436137795326425918795448162071956981053034713451119052450416691670318798464091592030477842606776060549942978541068894436301557316157186297926303924137331226421476407072778380517788607331027821857830255207628744550431098990255270804417362802490860895176872292757820953118308718539915003182461982432908776192505464906432427317378074681930057342018655437987247835953612135046474081709219257429701441466140080384567951044482249516929681056678963279840578823174887320209122659951842618744819333895468777370025771219729253876208040642105312249604720030274408704086835533786976104882549500971063997807271151966866890535451129442871159215368946082556319136306761670517277323987157275605603936878193170650650617909952272507724543360721861132030123496481352262533216409392361665570421383882570178501118821668888180502392710188984955149721987265153358279931136159397810282242546861570835102946954989506523711780954590366106587929346753808603824814919171212890564072866754715738629580592558483600576530467923184827749057101503232144243788402407844496406041253641261320433826098619691935845007707996470097577590079577258660570398365558538530036701963336147956427133319035162457466826531320473260353810559032287087186755081985757147681960341013153155759277966101603022711994588963314178773466578743241395362311784679213438397232045116809507470407025472167890148160793522282518102646741521922669145395155004376042915816890486019349050019933533125961343794434179356384409193286891437124331464720434389845780844760589835757086020659169765250977886418279051351850169944042110703433303530772116601301292958367761788280583588487406419001812860300121798759433195475417539141440586598816052800746105037726662086341351249706080042355680757061076489377265511800683603916985581271420345313553339740376573051278369389921523834940533804842310316673985544721593640327130181014218487576717725499052594146989451784433153666062175921038740021233266897166386817165313760168912519585405799213131080815833310841132818877802026317250171813970960174320492487050014936175738253605233417543749388066311257989212591385098188245408118428027596126621537008661257812681287382031376063046675724091678307672440677450845212049112115316901330653501872294166733837473927783299609651342413312795962907856497803828743885353247490984069679995169367011681300092113920771311938419199032388811905212770827294887685640788679918373983588231204747765053705758807106789042129900296682556092571068735610577744972284244039527703836465498590422905461803221218618225682374954853994893549477800596485228346933377545499425730321328867501045539319436784707158990645628786738197712130079959593623238964296720298729146455897925944787960600996877792632646980892733290108401073484201235559538665542100615590412412750360372662275476159976492684736778208306284920763479416757470905110113047667291715100660703159778013048210338342004531563199188966013154501647690049940435158234944612508187898800823976523757282380631689499778367517497413631644408807397304434414506644167696901025938044893298525609301385817368562967532059237286882654587919070704474367490617566339534732191742280270991473092650300085569242121740513492037111459439003714668162540685591745221401784296516433857312629408230674532191797732996313248981438328560439401053657999043685032677002124525441574057831965941335906482185622424937069580042364661182362425893179260496392469054299425403702599558477680043533080912678234134371299139527526488958648812743559648835086733516839191961021010864169113802582522738706925950564809422995006570053687762769400744432895835913403838723978217578402710443897575593718755474300597060543464675267768966683087993154525239001199723238082769346297954457856268870064515898921192998536396413853306934043544635991045441613591208803342438798478041757408934611789376133506310267035868514524228180792591723047061675434765245293632388914185009623058930322132009215452346276990324586812647575845923364937896749546917340296839229655343623413518546368419908704044168163819340500162566396326178840129279796875726589698625334016153599037524678032114042830535422064328955444474307519860420475800157518193313932158949379694327787984417060319697919906746183971824060151699158481408898147860478293775171949573831907161029691459669621443125762846383211432994952540272758733920043153881686456168242165213973606755455481182894535067038133715018861220568834962830804476707268414697728167291679659431933330181989806645588237401256965737409507611110508260639900708703147693979881508320013137302156905123194056498893551374834541841449518258084270288512519417608113950997703467685199895247286902166557122631936402141671974581770483006982665069519935591320565920613718518795655109851328051803963690737702712544298546892473270730370097441642753037140153892960333546837748201705165345911177929233715995963540992977003482203020737247347180302490938583247271954393989920750791530340298434813353651119779716290601769301835260830711873239161695251913966861208553122522459290407369958318777477326773707478318502141184556141387140249422054496955639163394436571649453431027284848306325972720875590812953571361769538528620699805583740498165450349271667454676681909906427855763328252338531851631596263856037940368391806776726838266913362250474244511914380524110789020202086340047157322676565047532134189685178442591241846207205583454515944501466731801347972443307177285142670223806550433723162862955651121860665396641128852461088704315242041878116602861973147646814786748669456516745433666208128315357734261063478515392017835726430372893506529790652836876122333559307587281651884475222657912715421764247849595119371844674929779693229037342113862616623446580686100335784837054061874368737249344589304214480137567321166290044432974509611824937355440710221516688161220511720552890971331855537900522002674842344224317161751631762508602380673926514350876184141468045450632977480416174630024331109887730471116702427928729171290013086827246131279699815250665926962306589273516140402185538694296481159276568738033523416619442816857630930421740573050090734025133024958054114637358355770954192960790498727984955397991834512825750230754817308201732192698470925830267531668555962028104490373924321740649436806687440263844358778790553190183449003526797742092276096705196680135851771716374718047452330812522217325797324973032707489567729166358710522351164300145093674402846902425405480543027471380171151618261756889441371343033806485057346352442968053159378065900524931069407441593039818124545413529617378497736848897017259056468015736428093135894286374912906433616192203548045055861674713875398656280178679946150982163294348952480451099390275856765136116474346882182845023958197778851303152684504211619951795747186535055359768052293409824931369966066495952210780863859901458121515525864790418806204689548022326406305770764952369672128062786491742720240289289756263517289993749094206961804024625618155874667746589010585414644843621009787977961797110256806376443569431570864567568061836644275029994614089389538435130854223915315622123592722242999034155919686424473170634424554549416705274165461541309931808679894316331725005244064595694290559153680002216599711657737092887362656424890949771553821863211953964810762963261064593453635708366380626332657421526105905330611196383046218363520983324621505113078425706180226850658123246251400766923162427034584820106598371456264713128246898762898000527343488237339404648491122305077981621618080645608762087888816806979952335766854824944755621388095350938052126361150197200011569693711960841233072927783737959473421540136883310173362277502719076762563851474476271577793889135531752254012855769866248788429865985188046192461791570352470562056028125244557253911012708138077065643111737835392196874045251512405251258481644282899475493034611437093352213800857239959734813261812843963925118109103520788971569983369378047622495922786490863867834159384453178947270381799562811799545755799681325513939319274905508459351243218535979052282455065156690636196796287222274793496122582250866717139709004110649973657834233936746572637897327312686821860716837111565910638127565106890195056551954849138007216881497141088345589357314454265901415188168962045412069149968872582338331283699221763157567428761219578336212463683809776368073724488481132719041875953776778568683265426554832279275481650817567705869531070185502332771171524709822064195723559607261389761103059220182947995595255150633858236158103077615921048897161719252112282435852594080810251187874531694162560792068034363684597615227140065717017571059058318331255581195281814508972928221454617094585108277498665329893943036026227320485095126864756234198633566038605032227628074649145710298534271057060522535711708936037973643839016155236596232242364913702116398871651840492804079854428916626260542049962953711311457132590772930698118815848291443090823693653545123904365094052122476709608836420182150179817850782448104168913169200438472834954869029110978117752739560022497922534122682600854942942836754461083235534431827233940367528933171461898886302337728199926555443196253662646911644720037347502689401282528042598581824857160809041698584622975078078158410286957728414169745553434657112093069095546347098523104201057846285613755851959491808115819597758177741869858950412430826931468305133748003472789296987412306615654540234664068474092074777641564431822848853661775481225988567882882417642508014723652838071846078656574403690878232242056013621890049835560306033314961948900965019971180121065627427393542614657938857286462360297123247723763457163296116137980071019576511802659946350799994780555593518476481598966885189417578778888725787600574706310945922749323608292674645577599585849638286110599822027870022039475254036535248642607709888919196003694666875419633546017970670830575035348268077474224528463233768764627550481333057193669732527444978950744185075545743913134237668602506061902787151348039495196700986456614902967084562333974065517586656219377955536458052112363393777166338845284539516597215739135449401747836507155005935668889161314306767694092004722801731043948620319953389684859029303853849226509953926609412477374230005922981607879619191959527839602457558537530293249547170260902274983463717123995507974979280446183618834088376016457467036573083233268284651563807161668986273021977601882452717626803162411379523398075514589925610944328542550087247974824106560616190447996232265399289296648792039430919455190241803609075818233759556078036735450669908475774724204485296235931002240644520222214452933782796154485632478661138614115962796749629616164299932185354427355147113844198818255750812483269686539121667195347957991520934132651859212919482071568073963133833060868833666310146410055936095914398531574623801365615900680001110931953333959365748330536308125460950566407012081929727282801903544201069306179998382230545690833412352890943642530183377663201673381148647932502171893776769682078742374663030456583458332292179864247184201674760548591195453043049112818987314583755901167024426654846732496712306782217793839195677788964492337980328606507775300908966571876163699013251164719198721118561072139478925950976006124550427391140571923125738428256922453166183954469182314856649462350248741381583124430305905497686942500956642020006547667743631759754276055922351647700205720119482144643401405720970320102604012489557131283195368035280944844674062263170707116625358143786447982006322790919891377434365482460713937069093969820832984697543132020080989109175246802342618365002612369456572427744720635492590329915669544876052274070591074822524730592640037853524164174813600673813840191499695015525247376943091757695894286935867996425456519143929201762851934024531420423368061248157100663756417463334969282049530117733074074590372064352965816139000663362168283509801574964124689028889544092834300633297575216303098296755061518570119590869883986244638159655227213621400603176907340165711125788421403845790576181521143643855136047527328245670252963769931031615945665008268432363947797519770574850607265721591359096558038110879572843249758984082067536887734314774490742283026947322389523341931896616776248760162200381291637841799876841546955959979180740859256230534229683621864005280861175181800603275446661726288076137810706481582766654879222222686247400584412629255566396901675773035864083342866525279945995045568552872851063897281199745455836808102293603731361485451563840408164369418170322715223833365804581918177741308816465585878567644136142887959898706115440531965723000401852490315284762472538032205991616720994823493701215867485924110733135443756369716547316016210004480846678783167277813996254458258668260789270905934409032537889062475706445751041326379804221050217087613911395945066224707223575428500836607358302154326280186360304442217958989003520452840949660130802317400964129835016286414618584594314729880581999044702862540797068592252137005988573652809398141261151639303012347795823682276671712894647376848624321709698794829379533230357664730829195571880105228921414449257207278948228497952936589395838858212299336745394727852782741123026897136082977445089070962696579547454642833335913152405433816607486144968764169544137279540637413460093059476619453610665916077309605856159801756592056342935941736969088890136391372838733857212856208193609660941255524524589219443430532615131203827697496522749396987367954309865080083663194994145366297373032264664313094417769318085461775013458989145546918152692798342763263877544199290371813659599866363873928200994066981439091505268624504118825456843801467206671890182433686725063774133350038324212216632772754916154008054458571675031910887662853888775223482800667557829892567491100366493105287997979805796161034936382887784787072140114340663819860802250351179605133935546243423789666132040335567018051660836246275741836798163209999290792325734586013507134675071473519304596818015142446721719445564927843416514949055607880065366028704292583167786831225338101818046902928281752045541559760134565956908038765003205424018342741016974247556531978383533777682213911554961714535431262942107112871865770900023190633553191378345724250853263071510918764203885605284430585015160351203144577173357031830187936294835411804019208334038736017289311230796046703147809229751930484223141623260200425415211511220457770436695800272099807300191614138596584841723648823735972815183577007056566703200419331607149865723503072307098904567344097625081602258615802894434179163329563103642739425788546820968652039670411422254930345674400699623397484941354158362518787793428097159032813219595180513109247203693217625223143833192655732409983472548587100824239094642938687250180062825252503885747842943787315155299645078667672198371558831535343581147310896663362008317321081404393785932457444251031999817656073031439450248657886237321362854703568656176898581020887839874398109883923108866903589286547019945180617082837553532183689276266716273238462668677261666189916765824600062066430042563704182816902871380373849050211377620803912145057809454730061093105005998833292117635687350824120948218818057037363982506454138045924301134054912064710069691872378209907174258202622405856439261497601778704769906140594862780776129211777747323946945484158670501193085231234159741830793120384650003733564777372489968653845986465718439231135182152469656275358648785688237259633844073870068390371628212787613279814061589174608666026264588994801333667084949597490851125756163517404062973147334008429260912321939647047667516465477785506582513277997123333015189511103775823804670370861391637917312064842317802590279977086881354241152506888941664428186315990448069207083069004143459464067177496099998456790966499099934787416608884095827426901202585778688672563408879217234310658999659725014854539973316097460674061458604926831030118950529690959110949780390234050704709887476664838698070422069211281349049572890831412458712078155077783532342908737049529853729666592987341493776622028351856692875745661961612737877508295020755309027633053775436290764438737526137289031334790555938673363362315514513934950144177027534663355961153688585964008302715623097074253418559978626818165773549287243009149439056711678010621857949059038650317464536770561742892302997381945968631571375644100726329318065190032348763314011728095408032310191006966065647705370628335951181479518581383979607928821109351047869078287660354699233067839180290928120579620241000373429482767192820219232004521591585059813542758529499001439554145050551810237644910874847241051182612532423324826708997686576611818572425988563812707788581470601127760337251051291310077667100836097998093178392141546320951875895094831388040973260751606027575305552965007147989612818442519783316716644759666450761801151442961224209952259971596468823834576438117231767181420121392622607195116124149043631824019745971519810175096463352942774951301262757586757172486256498495417616069165590161738213899897270221219427395490315501610624389986068329203656910813568826039391040836588570167188851780029747963556808836654153017437661205486157955418132902761509618959339473229513428627960210837488144758553796768412122517863378884892643745562764229226011626706359779794125496816052642920249197722908787841960412004658727027486998514042012437274225567438196946203156996456946154541882657257740645207094938866805489927183668468794745611817393880164074417399035378181112350137125459442886305523525097055759475085463259596180604758196081736421368366875291747790304416001485012342634830163439228477409455594305508815334433560970904519067167984056480813405579736386966970485691582436746686627136112218852320712831929292607217178466159894641188729405813601793319863130493887331939498486987419513080473853207408071071125107324494264183432741119817452563556405929550358621039812593224695349712303764399038528013947211518063812556164388391821900128672749377912070644264475391864635958420134064069705543765042809675612575412376046397012650171901526119978282563028028404503090973501831023895536408349909881806318491244152198723255572881019361690608887069500239517122594386555826519177813182787189113830260606432807789871228637878777857318875134095528348267402778923089104561424537303254593756623363936082930411410025081311491835934298132877114281688073763805329873840695770834360669354284539274255717530890834834538328752477111792081256354384632394307300624060089441608346330080954342351709118208987836501181328320479073239259085049957658299182779806366773498667284887592818515601837332069079137375512998867126526648851535910042944911267640699621477432099951751233921005334273736037245574414076099008713584781309103168274064823146979849038799705946757195628626039642911797744817230361314245289055120414252525834187452386155908544294144499808296559291600727900775469807125175488676244689711158557509976589659824357224241897792186639403890223351133369630827405308823877211451243008281596572404224126432863168053254747408358480057951357445512931505600816903878889937054954737861232700847626338289430910857579819713690004750213043352559858083928829210288544591917407457580770029006351654154746843439952936922225435101970101869148906114515202848536780741148797823488697240545763920216855638564589920662093200898827724429010138249039390629318470306498410939774556696628802326990229754233798228703418755774075697678527387398272180902619831484193375818115191821659221886219648046755080346353533512779779978435332616756253595216587093211157976599209359079942158929130624489326179494753493914169367436437556227199744622348605488032863482709732363381340242975750790675420308665982809552089265750304546850022256019856079528509489095466884635859486654166643616930446567519282085436462680558523570461559101587293202505534604865789280705245948721248408992673268113355340131127178533260411687212958111584920044137509161984360984389007821997769338924626758269760501423782207672441782125376167195056244372029963342074148677942577063379059946222270136147375129419225521542407213060652221753641416521005665041182499090696714645063346671262817724520003534578284500617414830280455636670761008861525733291496606336584647231635868993642774497352940848213404506240729344558594830648696705711720610102924841966969276853987334256850678846629516501631589872776525457290750271703512503545579637945539682303350865384862868591497428974059694327891747254366751931359700418397249377172129884868683643469229284881667323695207597176571194696483571846829182357231420985061582597618027128190512993570306829475882722600800272291426740069663067517467626423809370805340083897745336908328473531508086255017626391592677633553146240758734184016997286729462816940792672103491973606378172073036813239259526088006697169907764695270029285393159777645378954048330184914968196144268522705303824276101038208807903095789402067346542482977823981413108596393412899519050621882297782860509597464739697597042983144894611995647260553769617019801218884381454409267229091122296140004337471137592880671205556480008674863233557905916960541267988254087179062037845118378233517383232985972496068594196096211162957580458643494325456416836589551331982267514691253751887861670869026778220435293093419282965546953044966503234810999295479146422729655086174551209413838477587332129212115340847174655451467264330557038854188460571591630814423454099589790953762631872218326966864856346536453085523306500284614638571940611578423738400472667342110977321725281075722113493787950454622685924855887659106351461111109512100381687860034605759261133026284936828112318856756116731315787657033888089264303063397665668226143993427687673327009970931427612834738318003197869876032307142303357546353333702369382699268426707254039190003207341797874686503414296262893256625886811908583055220987477297265572007412872397472539172988749570897369600549810739447533315202921726600994847757263590726682736298882499222035881759391319689408832283359947575796357621037384416036625913432293387894276505434757300788408675533370364489364500291689997226169896607785426943841679300919992533784089482659842175679359757495896781787765394121426565073508155574060399690050408041342338035567858728496214795772085091515335363651100554617931117146689303364835099531155762282217498266415871518823010440804214729806023138255785488313434910029314474869133340374431772715508444926698355153476531345225204564198806904950840107928606779113284487295123583225434372509077167509200110709398908619832331423765603125363873347426915522744032002584019862440132400268327792396626502019011284438806286312455368578696704233552525730790936590766268816576486240904156127275129477263249821434656688233332535321370836423071740378475624826176065250697218852916267235943926327927184813352168932223476072655247407063372689759952582550586629697394597217469280458237800483396257884718463290428991157180759502611423217498787153344404413982356872800018067847919653297709010658393234374448359166435925149690470725837236857363309772664895728180027535081798837317242841757371980482318333191963809946557037796564334291738241448064472830366451039755371120032827098781638043719116226337503737699145034688835355904287280403124929092468456082427230996615938977046406442981606874598454574128458179257232493640251449846555725591232036558099226449183733238710308834043876202809580630135925934338181944526556509847675712951421421552078833078845920604498236996190808634084440080805387558071181833867009973054421627623467244789738903837934034908988893199927986944559973686935993846169041644892070365404706741282921963924242647408630268485874484795151691433885423130781368734998365438429525532448777292499969351585690375377205094522949535060446598395654048060464414584802864308133796408675408123217649477778475810411211424546271152715890683809575348880570105463898626657185666238540726871557032868295102468018072438866810386546861529709624708990700576755633428515192319096979140170925987123641506241529751815998718139758343355119264553047432259341828761651466581887504162377578580334020735585916554229173790933268026743300914699955279069373472359038294503816665977886831635496119427924825765006503728610268904997201181122483046547261414766073394497660050590864218928070766139689113641192260452276172803992569335430359082217555191786711617758119925503315716358210446027507018264515215011433982338437177120750952046786506639336181129510414526291081884525906580193986976756522970102717076824106261083149438244098086351946469680728457025766509903287257506742494400736450744763883314952390799113021665311951845614630310681986533505767782922473020664512963269263296428133559782233588302954527358883141667300917050516504729023133778821527873508662666887293538596710680778706034970892554089319501150584186869327972145054019916008675885456945787648139867429950403812739001893828341686179430638841296017521371650036686897604961152301754493443802751914569190710011239505913756044876746597705752713524435927850795529777152221885047286825534494979470213757882489402954164387352018161615730385530294862614291451953929841298533485857750877183533228273132325418511869867068939934893111377411374617231279345089567676305611596698452806917865358917944272806172433657838484812395534289938633666542356609489633666557797151187532445521911181919738342567737728496972295419235074686276834043562378133631779232847012783949417508564742410558656047024963468440150065086795472143680209586139227572418161620679581713037372831612296623812708054286059348316389281567689097616184856614599065899602821571760358057927589958815795370704475001576495573919509400864341513947849300706954904361406243217699208273300794257321427110433244339206687022723453791103313252009883458428708415442080872631285641928150050278279524550509962835489663574051290438791370428341606436102245619513666184450631262196075893503139537020062889122415944886074585903254209235085570164939377567611037488127475534898822828121262392456528331801894476094842742041715931176321217705003007886359705580306976779953658237013466210495038547149563545080264532903515806695218733949892599157974878390024437380349412854850865509404771842915413196942694148036640443688506415584806105557323452455582305920399750681122795213008768751747426677626486703330274163027550456131628120551610709819385027607532970345119702279945621600803406604046254694842310242821668571153026297930535342520429174075062512077918008309999822409236289942048812311048586465145257882989313253911648718914437797267372310823611332698059193498965966331702486538842876771153231705501738467632830375254626863701834131237243956481281590540898740358995316672499687225477108463627624790249462564628372327050740270479072599285151915524345507132662916678962068131092023146655643158102957454130129080338926912213703859450781959053674662176180324379430609125657157797158920664234461889321267770177611109100124034215379092794453523467186039966540400235051757224413982905829281290007136331312046640448421449257298278408279842397281270436890361883136586214487666082540945056357925796002971080873310644409135312871615004860419280172033649185947229220191339451915662346895501376834614523125679222343360554692667738973850947628093466279229459954069930969020833171603793091011466896743506489904067058851275593135305233063676257289134770752640020919292429998946145629912752390125977942216073574937610779111227496884919407844506381376525518605078195147348612414523835452314772471157170835089706047088062651454314695851801599382336926365816047702417422154233096521103591792788407195848454263268716926336011420558466974609743787526386584133119954697087314418279674171968200524914229853638365607322409143236893959994988762331346881207603496805364901951569278639846469848979922801591062103020302677600575631627888424470483436598235221958320283632403105576696372435115684384929900677524875129824506309199984751457094521864994018401132365580747119522812795894932727664679077813230027018990803918031972789529504797197619643450161568862081196421130881159376911061892189434955020961777824689469810858772050651798561797226306992682959238260958007888355023060711698094896596127965870152721356401416165642703155280091169880841980458433001569009456357310378015580325986989709199945717428178784112770547056905508623952985858907507500563548981213640152653138868797731354940808325938328954360456676362816615535948068244563885073221023870256578640483755192564042608588303143719964234777895412774185671450285901506649949737024384970800472615882275689169938312545309195041266219866756428956562859264233807122091004003488368023450638716632354046918166215654307040213844663729005975970081569744255252396156217756598084779672172479435565696556445720831504618981050427338430064126724363234366549815155901905287870128147529385507373549654299333870085064733782555889090702223205321518983291533227148139045154980258517283021829442852158155403359544916207840499702869118132554407006085851252169562036294195674487101925572607887083311914264634255006883685722366595883753508056865481498613624188366700847115544284862868049383985217384014382448590727737848943022780734155583460538440033454582652910474398763351423685649272995446824042178881556389522602782504527412416177416911532269895257486660542855971533172258145619699119493219813791549025837895089891602475450982350188725147444823439691019594353549630401900028062098359074192240796524896471082842440279521579859521047439134208681299732968413157834747790873248244382356569104325886098226259018164981566419762730859480520516300567305734155714641778996647392152930912327172892224258171034643052976518148175602723128174781098257357446616360268455650645636067145998144295710167008196676015919889706955265386197756476653465188668702262323911349942604815519380253347763206759926108570955909077940362484967842586050037950420262527804495508197908445030779544903211017194849904984500390584124242777158585119381212066663793024408791952935629055484584074045734754512225237924010003107893912381213858850373803715113741027781718353162000847325479458339919755514517625801472960731040444747760546414508733662808309674426748878665052447002062053122165191883776082903968375542768550051440990356931537886698659529778352691791670528633775866762473942939035565286347905888756407140476998924931410792587051736100481914677738717437304849745087125858126860532537686897441749043432064855974554162660182539947074250498318126340044363583663288023392741118737966576321021558577226236025539338318840684907801297698194915058503633112755097676836652224006210650698682261462645855450459581934546047051846581956274034116018348217504783828656485585052429805015881732852014720269312561285326809468099170591697290071506053579810844679792167879532273651393672876765718362687718409412248792027815786408369991699135742344208318806128596248627300988858983079773855968476105822937784531901901965411456268454497355740015250421982360841184955606578956930674598277355309683711283290224043676433992975591540178268814031730688601078116232362442263670122464659467029304221082022680190082311012989815791183700199377733918786054271209514328219122523150875610059632779650704066959689458925328869740899587750243135809777357471633568497198568620656340385628476856741794180212833928778891859229362491540448149931128898024894436019471602886754373828403798189928035154347912129677648867282445443230872253657589076443239544185782587520951384182085127384243068980692158553898101318550276466826248250994312898739129282893926385916854366138301106906392581766776946659200853551736005253520054303090267553446300515547081019854823839023144766447472134019968317052305464596291255667944825876875729903361112256104450592550209593741403316851045053882299200810284397907451723150160372568581241494432230331051571167021352616991235666233065866605939863969642496141652215699720080147311250302527751612510676361193536270096916012436407212665829873113592430655045438710422952635325229114223820069281354651445700782831508268527146511536489996118902720689534421492183105192276987146484425948766623415925704748957526129762765317597961652696611665368370697783627343500219135473192741065266208495436682868445974000272800945489915944280610645561559474052260021481036288729708977385170047376347371959113763276866214846815304780901967769202890591657853552396161459270706218319058865226805919741638092717064441038476239022566810698846452710264484715850298032114619362389081138487528527630457927028617480582665936696484759775433839912487428254082524922667310321346915284295008957527468151329918966421038261981285443695257524371585295038622787156727295427676132070312649964385399340477157807786129275643545372336945872896090952952095073143576485989711519747139402043719476542982295033168388684184949017098702821178142287277767781251269111689732845424004958762724425220068515311229120539797553129763110656021458895404468628594276339604347438049152222207549353255703124975033564746401346194152989731751218229433755549678990973898762588920933830980710905915370655655425475383099956309365879031279344491773463658599285991498341493762574248963664861856441990468282897490611224385619674375963227762135750724486528592147072189332300206362197387309494973387474882408690398977344078979669345540133935055377570816011318021287396522592700926526292748081667649440279376884008864669187370719780285258140749809688053809473416976188506792574935388852583221184183156596117789615765699506191811218287642796040943787180651190497361157232394995053459460710154661766627338379276078059489433422660007083635239547947509401883367077721253660392783241223273705274589050263410851751149799734106242634256261772089165886852947741721454405020905687686179959788603395264902958308421126911741240231554934187022636766946268891204100127367892301953192221563084666970573697983170764017168907429266687724781346408526520301146319950827573250020923953839774505710841937968035993739633353026229340827572785835632686833812306255790150047602612265573757681355200985098059940436731347000686131241477118044518542974567715167696594577741618554336541937238118405423197286367457200726557842864098553856544569938103737295736141926238569852193644633163602818230678669106299967575858267342450694902295386071804478631040107150136432458030188052065171625912950960271845272663798860121103569988033761464535702078068364191931167891833437616802416166307727720422576297900091599419438820105181943931863436898312985834765337911987490613396643801244519272761550201265374231055751850932671317661467018741321018684555316058306134849059677622202215325922349377978080948014996741666963689494567422380447008497256999061868480121015851686089292889076718393686968613005099597867589567280371813970176415509136990602324881088219828586614050532778546329013081658148514210038133363190953200517247930513247658733604262015507442419437973533859101050173429881575566940883709212036527114896212962383551398783178253642086981120061271316332047508539859087799888518162548843340433140142204199215460386838902450180447559823788816362866734769460068296485108157242753307443998689009965589440834407809655116797595121015610560530481466015028816521796168825464697597980076031436613740499575907924976608261359473068145141768369720384350680033213788415609159446063453480078551046105993523374283274792035607416016744212663144044374190610049583652402466097324360717049809742888376417421799418390515016775932570899276690896862712868998467818656961368162372523282425663713726449811677606552495210034804055969151223581701235741765611996375171080220837331334563904080452013530956782178306096279782956218177105653988995957390691460246224871305402432106827771781358785550641910945986859150090050336995389622230858526449919732638891846619540538560177264965836521771654172230601672451284258322322547865197819441560044043664151913370319325837310021513236846781810362788512628656089752709986860389349129719539283091801928207363478957500158388143523173204071137330735607094771556686153602569678794067566873889203734742819788790743856971532665814429719365873739821373967270251927772857720401983235044969735338791165099496136442706041664128810007610569296158865754318658612040280190045836346890346624603179122554469558330030709807614221747767095743506051265898946905887407687749163946945866843855605237999076400125593259238011568352372838266494148672098574916088309549585604353786388066959623652517132484901952225970905896357667623357224131660812061316947311460639057236970334373814854300247940220584417114282600277950813786942749279417182651588536493694777186721955409958826807509976428026111509441449999388241317490786628557148279222677960366165937384610701417299264485729412567990596199300398490479872013570841206145528879079440571579496194031279783040071338253287685264471700620679720305316364472577751939752200236713792597204258536343289493649619250513942747462808608390711602580728226626041076538033677939851005821203803012598998116329649459601951879261569586083190227063263948489950212502161076912519883602121959489625429391804255175416352550422356320980492109120199182266530137000319972456915638596561085476023956227443296437338909597517116456045282708923108997780779704597294760086469954276126037313012986525092861383418553965240669400969871402065132054590749641955384271820445910094947944064504869367383476542090627884482319624584398128870032464170499830667604735336852912435268143721948927681069501878473828064778442279758754685142072928757830506979436674112607827361570077145897614537620386294806658766064040861559069328630505779894598215500061926814626121635494621940599760956598220354074594854952952480181702799492399184750613844698281728618306393294645463839115655601743116333820045709283247652931603165219703916571603779793368068020440976300737000981167282969142241862761218948011606443387643112730450564298665977661129020083588465435001956272377408525876495002449292316132604115432998976870889601007251855003650726563408186521450256210094547977413586628491276219704010177943340042781596474799833699344183257858602998254376009089537623096434027897734090541071327275988224884339190507746875250899779480291036432348875116629109431519813297955188045404023295731585727052320565973030532811297911659423874718059638630902141428778666892316511015048091700500503630001780599751499232335185049572893742508499688284450686973515080101937694400311407473738735395746508877128091229436809284438081339373562860040799854268916384869542659589737763029120014919633728804041513609987616790742062884330832920968925017424689118373506193482188742058410060165118985321132167476216721115623841354428551631583439863410925356918150487246899977147191545448977335958007285979049350700658887049996733750167805386227823519992506611402377235396421096365988737225506522007449127657273515084412826137217162192051273349409005570732401369818802137469760475798678194227084338469958093737605747092182093978937879180558679981695701382420050093619582139447242089855131234749367823780940402752302283018130024388090944816404580248584134477077874048005977776230167167263256690744417271866113351263940163240011923443106661486381745608144421317785632719870638473280290507659583922675649329596132163119317465060792056004961340697275509111218199090294930359383040412739509406444348670474464529993870116275733656099436076723736566908006560347618498766149663976671148749097831507955352613976071674502535864991614251667703702795942476999492627667599896862116054731158674673391628849882095018528698940372728471704196369253779422388493285864696573838504925076661012494638060511815154488058379813752725085698197416347816105157191480853784856294154801671678802932024015632116483682634388378334965304099092955127696896699537170123904678144372066580090286108359124329906225750612196856249817326937143238033892843181290231438964559039739691640914068634502427530918357785646981183397654192449271790281524927427496067873852031804613336943125034862336002732489070103086633702660820602725893496573453020635394865624773954290704767451046632307180133236124925189046460755535164422818204667977164577802910381208853929417741820564903370130058369702879993203499129096019583175356590070466385039517028716946923158517413535902724273825378287091266199058480965018586125432303504299053564873032903274213554039347180896497119374076564411998580660499595219527096690361817468404852613701917159866514691970930652636639781361222463723970655091927957911768818282567373553835660663509869844522590922145041621926958877448810682242273375554907608329263874792340156514396882651166849379827225120924442289493773124849354436700959484891382961956864917401398987302266175128365168152705520941762844156486341184646049996459886090920992321761570825548898427618132379917357198174599392802170062625781163787690220076427668267216543486022332635304771210835611226710375964389738432575086210367293207734358327945092172951396545379846107611528880133321320812762716186198620045531911802560422479005515539384482872759312281827733377399774726391364571859235809088688126966770729232026253535944383922766946255289983314317313294316508883465805628418450359176197092604694672276146081920447541041250097164698897386327137665999692329944857350880376984403256853957860120750434157340390746246427502288132888947575815262662804162865977110734156804755103222878867215054753515746938402633641860474266423130427702919652839120703830021461703576985902426209944556021665439903109902074909386899590827212726596684209031388085717773528985625837145546274075551047086068250168150415575714053845458123692372772330498287480838812702763006949301581141961616618884440198366593998386228440699531046451303040986565283992383780992088150923105259383146411362966566208245807075465302982764392841945481798789433401750722076643493922898335830104101904101453266137550643244089272240750209812575714575259476027832776386761154496815761997153748907616192921426618234216371328743305018760804904261214760172175458437287198470338929273355216140129611342459526674156593139649915641136771523550149717785729188971501495094129841580627894044483492372380642599619103761789475055263575387479992290301287340167745518492076864867304149625292998867495717804410891711117265082544115249279440205465228379229840465802816199192177247509022636037000013561504097483947628887077478927361369694914296485165741811068793046490136820691596047826003388738110607937678827736995414710361313976777631166792469226346867257016452820793530432193224178331959416023995350757886853903173292398722174729275855327553303185833230294064112636908227239170979031097887651459369272044919783269111985570426785268962642420464276227883506390536027109919512088292623785230929581269669995457908445922863649345491086003349522509786217062726524350296458915535603514878600636761335109655893483866235266644209080254278499051370763622537920576611803920560470402180306053552271548825022828628619683230888552020255201864696250731521844397427337702865074891510642268533868492356553708435683316742175316390064501506007106107922313918157776851838050329536330796409132539845834974967535423381836947124160865586199560724482633387682754465437809037035433899716890551847487847033218618442756645659911314193399147512295996248859498267981723908547513138970399578274706341349673963293544917067671361445897037400230651926890068484124312949004722241599975210323625005476815987097367249748826074227660825197517617571187967525510361330296706810356400267206827926591566048997527660171752825886542197757963961109155102795347683121621354844686674753663975673657172892523819490965507907183055365981875769593284511751251029522770420632883124230739603521030736386977651491730464331358745209772396461354492132906391267683514665057102923086997993629579036689458135320984545012223862956544569102434033679506372901999159471025073271365359194092063374947370807021065659317319995603769698030779238448916329393063076032528915850691265529221249289353063300330321955884912869981621828234134763576118414869732510741979062187379788016691280264913368901026040123390174192872266617642515886465917435308697415217958808789690095724552034257438126743575696135826917935660580648107965513474762429254417395631135243722019746520297324740153212056116034118746968352607457234762756073262183362911301519324381614570866618994886291023122484350182444807353731605761414446222899341205341966968490138366203618643709458018017686140604801679791820896235460851653628475087778240723471425952811782771592918987674245843471946210855999338387388753644329453633141435708853846713194840921129113918329470181928729506195919924169283232634931438778593593512476729281246423031407411198447286181007026172372291163970073380472475053592899004288816380222567106508480608089559689673133538296271711810933391526506721406262829705742254306238571613522379307256576667392469872856675848013091368569241233451671291356010637332955777933162693050355266645892127684595181545126234615285807536543202659143337477959850570764607160548345380619371535822210643514250999760847292809813925808897503462646630371113750492138219289303528774864714009579544592900965761029957648096693990269188359687459229484275075329587307870888096546509871125037766063407087359451183154755601677438739813957193018698036527537192939797873216144855207123905285638837915034623768832670355954259369405206119402895355759411366846619445346957944845137821565021763141885706000470005559322676281500122987018935315064771184600245255297518064745222589914950087324455638437874442359474291030501142940762241119099357009591307846658669960189016234290289984759830305726073800329112936967866945338703592685146665803339273382305084736395780870336811745361997680137303325681855951229073871667257912702227890915552710488395242341656131776850050965223268203060782696530557955392240601914082501917651457510108147505540773681174919418802146248854824050646298161148612502137861805251839542407603247403166874291534603415866239659826348110858497944922919431958707962558760643301498198125354109189677018814704849996770020202175385450414133339559765506258380609093053463503521311287857727013902143125239382946711842298667570696505441748002826905962899031514201681415289906030284811410302885268573003842843585584106824950214720579805647862025724209543047890361739454278103695522946372147475068090708585270670532331051965111983017312889777216913529383685711434137962777019456439077721962754477950510289561320684842821165398859072903633482281694410507666480929209339043971358524379298772804424335268586027931021448308419641751018411334737301126479209083497740250476198446285921771586209375184056816889654483489555179428120841186626549801749752038534194611837200430448483838892071070599403455956247726181753987373411309634420052449093002437790213449317194681214066583959388654944226575458190851069999207291157151101989583390332239519994363734260865812466274775766946704914255487784931002378413036888375438466051885667870177223603107840784567366809682235069439242194602448046450449885257495307634065703409464508296976887355299312227358799918244068266791117513560764259996050702382889031427343336440284483922780957522780471145745784774706236655648842377205545181848701478627521944527389095017349591864973963829261448518259444412411129293852503385177078894076305568711888265049754043566205103331190407481396069846754445437970387407476281397569762285810041407595562199216983937654690324000263219949483147731860119658027512420325476876250960921336439867514485587517861973858545267912429859871559256955004753216526384024372193550710762745357762634324081627025036953207048906184857780563323050163867539820760096225752614439098215446371041232528271451817499421225927261583567110074324303322634626700588773947839233757139043617396177216596125874382111286371344616755694365008679831917973654096933118874755739642328065281278082683504702528741996856595510078736791445249958812423168343513638569607582672496833222886881443540232870960722161576337260263852368556776476011678308721628930135093981856448069992616334307061343839920423196338550494387688995851400438515576262994990803543601531798416512449894683674302401024123337168154630381717089358950090538276788565315459608732752955097494924301614532293180444072067835008587704981210620381349664674995882900909514573527933513672525927750280911969310913119852711068800987712258196737290423970722757092036132016469999492294231621652027008358959856249952269229903936767452924014702529819717890996705925536738214749376130478137499733697466792269282089577041640966517770106059847009516563189059025906467726804117322602839272495553123002735928618229936503655773777735915636216860960182629551158987067430858917798562427754638833622248764042601791607563362233862444814401961887650764226450567133732485974878892941177996195113728083337930022604720969799716035790867823299676659894629959161295191284362713447582099096901416388752527858704071438967193282238567736516547077147526372335284538442509366129292739815041414267724920480212740031298712398016165198348081527585027543933620663166156624397344496666516131932523526536179861202249002622158955584626696233013121335539113107394184885738158644177831734056744605635192959313625098086061083378502416582729161682480857125301089101311196773964469043540248333423088292586698007078677836275639202283708664231817535546773955136856251067634204353407771603546058017091442561264878593289188580679131948615674610520298840978887089763857351430116707951032639109233458157163921429939354782074825233478774546488787474938259756709349219407071484394676272369955252287613676114039201906144399017640111718977887441535385121553082476662288812658531673906301654550663042851067272623212043597243813621675386644550868562466158529152516018661386177682849781919267059565527083848327453493266914294380595174798374032652757598819605851176292156476933421309380402413580962414916704557823801356570044359416792321015411750121543378900924991221625402869271878988243788450839153519668786684464362719537395584881331992475556493805990739416085038953660970674715457416440346657581595852877604535865631198739044483101986443805787021059103527171812027609807959059516737562504903182136038806114775076683365001093879562741113472094382321928612180406576230589068505911890746998207352282106589923760320269949388624084027089584670358437081059187534242601161911871613934255271211508892198866966261405344649814915233238282689656092778627469964999208033843047566906423444631703317992556340134261564651244721746902223770817559958291838502440574181904197905223850916771825008294572915910107807099704525694198583765910919954845466359172641348530426071223684832065922600803183773343981227767156407794670707044754110758677668909069891259574172442291420152340034474628313154321044226303463981565471011395507205643081631879335754660462310720765167325015129049909073311697453705865401362072032414071317893427866816968280849630364090674876914653906842588680654713955998578134159055174172663976622097759331336553072477933845409613156754350738238522342690860948882508597699072463452845176966635375107029913802330216323482991992179924980369904612515071934990359379545131769296527361033228871350892399560881998541702470922765323948046777209689893131019791476167381419104146211012076574351910592069011368308981553351053725582231871746240804828733321639331414251810318936596360536870461301213506329051920586886677281660099544779078177038974390472429312005464909369677791471169529683321005663795167344731389685977201752623135761457299937530832200320885950534167694918321709609633005130558240226516097098331470425899522403750476145207690132729887804437531886384452964919962353753231206817805631860625301205814042652492884197820969644184274395516412688189206775037801657491992150675587356861987104605711971891760441644683706566401081129479067956540565455954038837618136448890177719596105213705324952289317307259377608046986243454472942530644088053668324066877603558914008854049854930320526232909685850833470596595377821913032532572361423679970199382667399671868515359827372052136906744290845484566280908906487414538967396743224280660553571963897085825454715623252096860968518696683919406512030409669484696625150396654792344976813446227145689454541394615575722610643669565327214881412021031924109279060757473984412939818107022859604461190438329375080772905527517921329427663640280138935440891196418430306526824279195624825539215296704475945054974980415736202118848149987184077923649747964890410286595993276822801164047007520583766323417042467809772076074186304645740214844320983725352122247368065828455983007058652664909469486501605862363523985775317048530313994174392368104643138059763003636248379332438641029980955326028955122459708759795442948232359545939436683961496844398680170694404820669145598156687810043463938082346962286759705495136120101571122735680253445111953045097234289304843044488544267957236112253533415626464274085514188155499794402198586395169938187673810437550344075377489373345893914204113944656542510314691100605172548117849014497798605111655613714806870526839555243942277278840230633402788049373495869539453810786097908060207433945024840289132817107379504472472246679395181453222976242967234745122464003584175551315819149383700072533832146530396236010172015740050323700156217044363989379844224170362992186189033917719502087249205633316511919743161118858408522488356441560455980306863282281972104469568529640683642955194408100337558031754912734541987130622230306256765077811380933593484002899268572691231741450409500553338058540519037756278970185016941521559940779543183766263923117528604115163895914191999901127281617005727160297367623131944103161567901936790919434252586976122206267746671996671543341226973964285006152660521587121252179342905445775510729847454896475427708223381483380663620078617234800264471990871633117255751876108385281448111378406335938904533932791846070175525757701676718998231426867500969955220869971154582880385183165061891968858342088816245487599174795127381399106483006520395477233285190250777172727173342950887864435699915937141926299713867252436975245257718939859440279227828134645555058940484038044041969130499661667791043291109440267974303476632183276984029676967011315468749156509350715107440149456366892467356351203490986315394079785853506143144479016785954970944500952296086595696893965997607450057151878297953021350392233459069071751073015267052224747966219676477179130781892182474338480589345821030358953852569454468336465591323617635982274462621457060367693892538108825404077375544467399193740003707375625715223652855041041697935689666340339462849456030856369297659189464584743906496058649613745825764071893231631945782340493273205684639598279552934462141777749754584331980147267164184261775697760124821522186334240944750375269463700887550222624938970269928735186786474365174115613226233719075225253660394164030247678313717614703248260345931477702164204852783390356923824132726591915922614476932061787258830799247591943961242241722595079111835681097483708372633504118643068371850422095756063231240464355763360368324012485532354195989152611429415870291382137443975622011355204953744447221408430115980415188678350698980238719243349123483531446639677633788573822351327206518718983571880708647226507662044808678954428366683068945033921668580252408128385802722600669584003011469632166765849841764197174010484081963816551670308335978000223274137860989665446423579025374205733325214798850951201589206579482705552324875874428087525268229636690276182755704882133327767061104401851414304922875081561142546610696513432953735099633184317812747264841617749457541559317533478235337466628528496502903553379711505735063660847009044785590145938547235106889470632279527641390624655101817779863969228147976569276964315324253909312019578953306436124951455452377552401175698800085098401817218175465537650458047533515739933636702496821958508128848605711719254980046653116411421590266861891893680772552419634602103098081221588383606601700750133792729721671275931209022386287506413956036335786359232339620922034708725603870795353081498467102797737612235654695061416242230468657233216194193289550333344809439518501111440784438772848462437881632818271470066782306574273812653579007799496289386836059940713297092320132489217989209195878824917114418010088360836521100773338188037153972721252105630340192964925368555369922896174094746562091918583604639939205265408893901267075337185573011933858083341485754880085992315139913148793782002425538586678297325227753507268472710647968796834775264827376040898216512594483689504064005957691509968931996109389864521501956852323601652997047531159261821572502130726367890067045885198038024711240344440801895298976894551740620192837431760155370165577345490210146412349032871851013352121101045520209226797737344989303543939437790743037094736782506561997695921622162184289692624404945422949147307693897930901288048840850006285534200588105993159199277496126307670320066236418272542267428105140274981021025425288497913294786232909680462751955787592852403778433562047680986451327265475253430326310944102292659631407005600102412809242922830778780315707393399316515386252496309480811458152544409977168314507094108915851308635391849639947342180345026923002253353863655448174489988197124279582774632674905552417731251506602272082708839680528839568181922693603877907640532567834505498743554521313491371288756441219429944709562865482046776385301314532458733487366402371002041405940547420138390545942204738888491601109547082695440507382875890803077728296831082791528926468735530318170467566589002470920172542955991658033409745002525693589994587724236360153702710723571213282934105323043484031708640759820385078241681693873656118619538803967196605772769163903192156879563471843062569423184278435813541832488177978699213839569252216510262736214581005420638423039843236258981563662986997543583084713193549593672675395899492875572367492169888697531594986467425024780374261737079984781417250203212967094910540794774717433835197503288692611216013822912312300255311703622220812187846210022089003328360611601978676258133145352712234852332833541377346985491293272611487137774842369819586311663442362574386169204451080945969179239701751596965054933950313808882667147960553928089145416068446020785789746882560003120002730893576252303274760765979570078925600918337004627414579272332706898502356576087003347082133783132233245672134333772268116561661553999603728965551221971212761836603407344378813001194378976856387522425562285213432122774154577716371141496363113243687149088216102373424996234146109157923341204221588439156175869985313786122455684053664258492168650695585830978879126036315193685797906511880825327515119706862983981571653866456021188015238275393313427540810101807164661906801960317116914164647158946364820040223964059756232447318597846446102371771713925900050067831169352982055732258461832202924033064804085544433282489713016006465973153552030796809221008612743414585643093405976973446645055481025579629466776973114848497305833763122162909314091014460006983602116927730886556990217843410992872922421984450604722296325849304414521763822485769640363467334518200819935668435497055449725063076250111364203096160507552359927582714813942299491930306642149492700800570036089473134227869707293077747292970858902011700547654854297654665883807362436264364017504700476530234280798363613940582737627864509042612089718590736019240203016799824762527598673421363618554597589997479930682391348211351394558486735649882288735561651993273226600264469777112972941523667427731235459769408659429480388630839649012030069376025591224371585333297410170058389244411050215317372103178229739591422044029658896996660666617933134806657194264535743100518741540156658211225930988179134644156300061929342667653071332600797961830187726197560960724536260415987599713666349970902118058950552608986455322219616774330644928482134392292641542220038493491351124326210471887586708274053877620678933064172811000207954116031225629588984551008730071617118086787289703027353436582961234714374591085085360950114775766317501902210969288242104915617050122687681150492452776282212389260356316790133817839388095762251067287192139218540899583637043199944345686183453826686716240803680968335815112372578423682231838934893005143599419597042723500993781575813134422840503694118349029248044525080115403073511523681548837494791845062285241092311401304276238115062397275508331374250494931858220305726187540752714359187542692109191935815675171911419277365084892367237908887366679553253621054208460027323203992712846783803291687318999565788195464243750628534889714014824922958301717523877320862662769609753701262377167932668609532874409302377664204855285740944334313257060507081994241658437198704882983052842561121916401790463678346754886123527764123480770214680626429958801419934411635289642966456088974291257429529761302596455672622751317004754059217119014896164658752484205669289495224956713323697849289505205968180858653109676493981849596207338657514607138182123279342211550871010258260925409361452778485395297239950465687385781852135589222789611423509885111851408724668653751445361333657876562265875478239817627647223220014401764314393088511366730843985996710580881557205580812896850289070771947315081967592749781026160696835407502615752775653592912778797958406471567130496793074425444882769838981193898867470818500615677726280677966017661641721330922657188973950842862036974732053385680807826393294979982199903269945600295374760709648212872757843894809047149260304444398714605351676054518332221154574237449115718889249207454575103347564095909128173294640791952153603665672188952879616896822924736385136931006941461666108757654228256284621348669989868397407151348779478633704121634890197633324372865106230683364548639980142885715213502957497356804979575386605310235621216611855148793496669477049326123822925778395850600039988116845610833577244033367576173915301378903275709347892427932208983959891973818733750189662890124261935023730300911208599856797302003326689186393068460015231070327290068273098332880865587307537251681130446099502426706413262418872543611876074566599089770416828080276200359335027469186751851135266920052147516978155599064490857041210681522427636925575373627174389056502262339487325915729292279348569563253455809815357153174407388590693558800687858344041541894462835456162283025426657183846409340395357322908478268669154287587751390091287765012332216383376739980726680231173799543470053280761681468283528385096766433846078915741061846514789542197549170960337282939298172535051359037243486647434878222997048162692451223207247850730249903702911012350423654246972244435389730503087296230511246917808742376765318873079583186759166971360762445736489598839732117884272264063056694136451024157434900144228969095126573678260617557372975497232557376160968896096875857699954114452049122493191205639434150620055635634002118811499170242997838157129146622502210000821489621163171132414381420464133306223798162415352202224481070531938563253880677305998112252682435609838861246032102640382870150809167404376539689381630509299972310391603429390494337595343523487582862126435523462729819632545579914880661584441142321926895031082598687367920768614538324143107607066768727289556989520753750233522371810549465530253694004071772477968866401637299253265653455824112749824145574757687646454950242857659888471900093140391770786571837916854400716086472704134549606475967746019133479960266330231275817088403504976966146984960487632977213601984616395658961928879668627048120360297972727370650970883629640450160674290611201977516680978227089766063432258515862354535177774000162832251886876260487462649917495735192853670381937567689786844683344788301739294866132112685834569048330537275291566087688921001486166050304286179502262714572069848871080472455500065043635210540255782133091232616258716763116380609805059480822375052833248137450693454367853940654535072389362521369222725585855514400202105967055868723226607740300249269700761175519569595042901619126076878297026923981735742926810913719270692630091452668013757567666294806938802421740425125244311817700245843890876513292240274390752343577755392617881681082423104907718506854352277513317262501391904197139168120931986535302506739803555285343176411454856247152627405771417652340827150085647589849318482946973542689302549523409107721323202604602763299994861362865402646818469860707483480151329845971845786399980241865040251561668189140929306483316684306502931990219686496408995468628703822567569826124212013055086810918130563125544537018572513819359146699014212032849589570617345060364348735696846430663674888548990321914717749445781589308855822870839726435177552897989914238911848385961827623911298334562584424751647390987417861174294972753826326583025864053452364053967958937339227959373610576632166234262410626889491050165528447157300407434727934685848632712508695382392454738758418284440025441266010455683375303871961435857688436917425207403569970063736878044869448333391920295105798209840706597298400388672648881054094908019916469419227346081440291023310741700604688650781655519202971778230693678281026321882321907013303335301020188438441318203602053952930097951757715918995433274943061514856426250391158839633803417584678513133000960489491601318332452440144819088359816801941235929774749279881850918395507838313073649119093706906413440991343594238267196285666063145521071991936471245594355490033955010705835642011881777957896860854242287947018994257520092897420690833086948520828144126941738986795268807547292411633497436566714217875629961191145147994616338200765481601422355455560066046439439359998891339687266134570242225157744882378843173722710365414261679612915677586401683849841446821418252749990841641611889321010832121806895205633350478543467760578162702636581369127945971553904329495621884206510693238550832972996505410725934826309598992430836728458900656366379918095338903424826342820740333797445002967364424271815291475643411141599241182606572046967664390820300647617032274113147017569430750982144315114439882708535930249501963974810137204801811792227369609113061856201192804722225315779930084760783688263243211955264647772655048990820798372197369837491812299912834313154657844314332050713657970227055647183014248006962061921957703633357729690689801044903676694158801165867193919196969726611435532542218338512880012784812074203791647167766086709741413060993541295778966119729543482031763589827023619833361516018007774933592760781531719590140209859799755792726577072594599023207416574021837779197680476058176086931443504787096750559240744980734629074274710801672697615392477809273096937769638126220343196006545219341656689706926601247606338166569763572287974119337117515714745676531118462682169813863700964365997809232860353022852126313454639953844148276893040027297630469282578546553130320299245566405603027533405416657546792070780718108005409461555548081031120961418801808478853624454499324562007996813381471787217044741222450634345784140745446616936927443044956206665699195920175966485658095014911732521079963328877533860110253744387791949591623982484389018792216472781905177470765321484298668551673098210683190754956305945326787608722852300106054296059973986887494987470330836559972639838685399662145412000538785200437226133755700495551788147521357977197254889654198711694751389746482108473723021819362329293840494563963960100138830052399016891623116031745879384242019899075779866927731332232718615604373542169096260103952178130017216295419596473178099713430531213871475039104818642471562832685051934863046114977438337501182542451195681442546094509984072070197204619493254755640936134548118510520004766397048317130060183741221586294005916617253199222942353363822504679990609151765308529357812354961348317322231386128212524998107841463873659813463641115984008443027101525034629821493723966005804183091802235099944776290705289914172856202169728486267775944475850897077151769328702312540732948040823692790679389043075972587724897121785493040739575123292250772280241194202877524585038467256129608797284722797299299781776648588687895426751725282052757281434689179806950358590247735024219080844982208242512801553295468101710214436237836271279416490614541089473179358590585189626621783743879777933982403334207834782609085994668875795973169972735526823333928566798078676050639891327312401060982484207187422460604455131392584182428874834003302439873494547654899840457348352549426567854471587885320619680037192712424964812201250306184270578102625964194755426010213502177699344384504010940316859727432086605882734457416428810016662357961544804798116500954019691013351888721319090083864839321274891561110108235217824114223083466899672944533096893104978064118068428003809024401746589366398297878976797526330711773312927967320672632291945049613759979500309046125995111535048266822658110751126437518502189002085705501302055606307521331614451764748405125425799445979602129366108295627919663485500662144438537177001334226017544505166621318963606458061415758809710818195167180493091409406511476261300709941758646135996959945619503568160673544447320299271260759516579819259765563827769816769209876414253787821262196292363970576052194052525246090629314138571177314796958801755961049847252692816132421672307673734438081086503550639435042587677196248876735653686006349531358487182094733941644920033458478414745082448120351550769119621667549724864762991972860422781907410914353273641592039838343900153321148487569779679433126667371893705428096766834711084523923458830976627591600992484068216100336602248217292583024303331021866387065476200719984311107203691298774802792786946995585896858251390202770064244707145874550840200270295037863452489419862703392545592464671711977791645686358790798550600508623321346411582726717583366140353462747403419923332779392269671847643768504350663202207132721912753335070107661632374241277217495792773595059911380582832807633046909623598085672931026695552695330562353180961832471049730011455993602042515261536065853522760843872417701647580437097556413346839693727982871388409988088072815099944565124614944627602804209652194249087630566265643313947183916825292889440990471847485362547149056154659627783712892184962162190185236203672997477192184408227174262884932976177587016782448343342833090278621685430474602205499932775465732300042516528311371188425069566493053288572205222491182798079242998673386074444044599447281876079833715431782097166935601683594066406531186634006268039311835998941853834907593834929878729165515000784039064716660999503425553525895600085242102941548651435273119372105448741847034218422327832508323261601252606676926602445631718755865191046185431949634884570292914110889163167339613556464215071316756918502085807388718630028816841285906815331341211688487023583533372168118986447322246616510264465625807501450556244488385795858526762256246809142081324474602404106568125540447993149687036125097185510989579128918689836028651496494404526576199656988567284360335663643435780998222440568865093675977241602241750461467093633371934377207839732112740540276041528488798882669262353186475267278534961274212072034226618245205174247716284983071015730207247497223904308362284881580163710052073650666775799890214881917706276056552126133243459591123740714055354660939021428746629388443564614795977004231962826565896308779433606168118705244759366242952541278548357145719405720144663880633891185074081735975855793947411214878585658985215573148896024854902235138799956768557640640050173081811119627190341870322420720253914140531170374564191243200908770664374859023339703201216285501118626104919920834593736862311574170564029277204000003824507522356034257210947453136249901601303902863997223637114608809189648696071759737926013626709023099710255946820774512712907136519316154429083886099827545132476396672336783000009933171046083914107299329985068409312773725113702001406134904781465801527064936226366585520993821860562066204167615262854078275703266447707116397411335513583302804896785839536255908821931308501039155264899837854168388071725804253664003337034531077701852474591377946735185009153644467297593232518162733138916695432927728439637720984432717332420833266361064665030498605709802074599700557062051986976609021907124500795721676166719325857110439325750361358656737230059109666354637555379077886331604274716759807598069013349906697325070316278793342024995024380217157725573884832671469431496604561454773968743588247099067785531588839428156313734498408118591629684503803093103746682194906707033736214976060960970647691178243441047969106642512826200100109136422227332030415449698496392427145293966757428810780929415695880939451416427410170360898803436456347914393581522498316545614635370325320458130447624307828491345747237387205642945495904947206864952116770953235950315483656186393307134261355710675027345351293147039209430356209187411512210156966059549093363791313368383598029016998085842880375458705216361647246182420067429451784198883679882655517516433814704400610939114904437815584051486135091566078598965630164965193059917312865164585149910958994142531915503065399824223802175756911938884165592416651929447600980170026073208963948965626395813163314730092392850958289081183080156763507903704937107391190783844591143000892387265029248599651968793492855789832499127461489836794090495400494903199358045249138959928734854798884298437940807824905560706823025728762643695962614947650829966181482546493821789050266543177208730495681660291189834060592203683536418900962050060188156765853890108952532243931774438278857977675348362584047315047919569521665913452253306888482166889507894055071162167061564935657474769645996607508438961628714709612381884617729209054756047397872487257281405067330476009337908373181761386788613932762695274152359338734445683418483291771182970670063268610919943689963824326268038287721070199733135671345211685117021930678290261413578687010418682772562084604118758656109459424082839169037339002213142895781024180039384381386391895778322831576837092301591481035030386846777873797661538090033658385260792457643282214135973010466609847086031441605679978089867628738701857355445933329435417834109122689444451112244894688412641512823818158833554057376282995511986759524842277617132272285266800668115019361491055755568306827770562349254923665825126960411402579569365842186175117442114541034802003452124615024727122930857910372415317342165190723173077897834054146632818004823731948410835586598023120897706061889803815052219115774742607486646155922798637291007035542922382969557652044228447328316378414826742143875881698708570158960749340438461581027459528929500365655703573754076844923908232941200032799474280087855767661185677623742531470270230951857994004401817122473072222395100870739373071649143834166203391170463298835069678158959124783310395305461797813170843260330016379281200510635027582072117611985547314747879175465227117388250160552283408804527571959739380395104567528356819198091876731890455831212401985276003440568874127447750361988276225947590463635084153149576985499168234430873570262148988391985347293477896368217374083568562184570496238837888986449282789447536659373667015067456392862125140393840460604538940901653949257180965768515628204673644758413957197253337635402999336489561189528902290817855565129266417423615301329199066593686608490608943104587019272979155378701476166090825562537861673569909683334774475318279307364125700837760245070586008260086534204416605762553085018384141470601543547134412529606962860351031277805443127193811362345332884974244147665819965376128364695270266499393018462760858260859305613698938703062500375148166648546791734381887144653412292357683744400108807548351961101907787015179420306678513237630906044517626317876561545116714748137266533104538351137090313885855966827295558513416969155375120817810796797083902213769089856184881428019762301045658465752771937760021151604835680572166650224302432838241963975981491952372191523009007296799810022027394059946046256129743327573959329773254246877309655188358762054095193405850208583164468096371173477345341937058696487100154659924523564898431063618542332885789508465810611244274558647809443757141752988881126724047314335662110696113091889071818464051667589012132544328897171490224151141130883923015643259008386402693425520018500923401436361864693020797660811626590279355918138957042158965868168451374901857735708762149046806656249290317861716482148408238286714651310355822164059354589255259948411680226693703815072178173369979099775352109251423118089441633037189406768990294035701848401201407145474637110742330561497682850546410130445205238368830124422167366025932145216809484943633899967721970794459164732728466177135647674268260136128912430553769351980961780712878523471863250487890679358678627535893059864787149236587783002503971738821788537474128481278833847046482244383150290286339617113239321073421081416479311657207825811707347793833573356933549213686428146223459469446332813881154935385948649597300458407718271841673859755939520659700744993666455707765286582272730326940779748923945980667752695409822558535704706185757941786076592827791188521506439303201566937459160043649594654553327949580584527056439811526337673073682307097490268174674847537126953352644787974944218073729754245581753107156833501921325607522904091489015409455638975601746613832138174643480010454089942134202224042511139498452007455933740233095777512032308562412318057954091654866992962921864913397725472359709533035056579482754500973610656582064730459705933458702117184473587746903408299831205361510156720729880101310430347106554348541440234727924543634705263941854688189346310878886308717219437842241157254312510415357786863169220828859824140469487271156445677066540347219963513160119831058670989524644809640135822918321058540960490235212720342895034573809034443725386523839104829217535621405697089416329323856726088190638576220421017316620039219148713532208396533349139349109292641583490031848066855505777859416059430117090823413277887520206734401037466092268775543565569134169893829324437275123876425006392487148571248607557765471662019787650912490744535490017651852784956958228455874509273163187104869022494825703232184665126426322997303901521759878571391900030846376663141525747835236619676866736375604754392187162643719195635590270721352073025013961772579565218899149617065374297489283711557633002339225249344504284418113200521596208852308327066223515250762461857987090823369287277397797510182115701753387254568563655843988044204748881114488515582013822047941106747503763383022857840542740682929820771330576908900148610204358452795425252865979562233419134293811670108480730362410089602140495835303509548977676373415694745825813258271601143647846893464631082690467574466055226765037368399728633041590021300747817362648806083481769515798471893031512136656370490189952959757165081912455522976388561141550615653960052952199890800313837744447085786400190557142153599869078971842459681485617097563271011830972926207244417941407951696619547613897678997086295544608958665311895032526857443224627839759368060624522696283032103837308411973877302255121476933497655475121703821918756186897787271549097441543133258666042051673357355896998299417705187053027888348794178596403555610340003025018629319150636135080770700113654446592098522287811588334797416193048782150727886011915223253762633996594619168241601714806276500475358878660763051426885942164303691098808281352759256510167469998522060434854728126066605703277913614586619028812369189025690066828494000843733789238443867059819098961042382629204976667498658058004648909079693682870086306901053727553089704382806937113517339162590299831970302694271757654023442096230566196533908259555460003417423990726152726225766287128554528156001294974506001316624005193013007007589938372256035034950077179515066834606206981921887237242341033955652021679713160857895823180479392329999481968900187008553212621163353100211207419510734404068179557501908107804269528150855882895603226364568759579252603659726477207375838358148224965840823047396012158777290314288264704307660325644995658820012755845898931719795567219710666638696374474914659865527337100834989232418387215229561826155033333161223842007328280289208492623731636747461834390667377065684208030760988418559829971315267036223597813282042814820768765763778254952301241651907500033117805271701998804573709261741831489568295197393363866276538361277148909613474386935877894488335509334980823136378351488661611356823923546966038367291187384354191807096096134634724241643023309515023686863838202068880967251696909462071305645667043316237710027395085685933077547480106925560844931294183701025272490345722612010135492919548177802506065740926110417511290306358659056311645932877056316852834344912256712944210093810323455550692736179642773574943565087230834763693253943746699971850070788164527237718605737324719378151094828340791415204154117266223639524010355112570078139349801003623461231497028726515527727359553217913366231672437492728461195327016333859965996892021116949114860154711680875321381371268717132341278122633014895524664378206394787109755468850579839732890351205149498946495187500950260449155450478259828613434253978882441368288714557275809405336484786784960504467329780704956651155605096676404918121715789766267157915022248676175370341686289799194275088489374130813669971379076245304840817262568438376871973662491885766506559482184250343580643950826493843587202698754011177064188777738643558793942917134706163481126172021870939857443737214300809695617433426514362364697163117996721708679167189078382322040216485953067268886895286797000913679702008256102338899889326697175494044637611897133304836836694098056933156275083391710737875832231292150158724704872645691198259291877324775241740683100396089593370842440943434063766044929457824573230721262627440887404401175531554047685550885176197795936658372107957102823683178638716893149223458814249985747111123988535215211485215935293604504975681179384463035874507455812514567806197629173039119469451811628145367367635395549942644304122782255448287569713086059855765254745946204013236467331193796453981545491528672528653458467572268075351990842844971279208303220699715618808998700914809761883608111998453371925927514752001174045334943218602124631226319635646324327775379592581575275189037016364195936940480752014407398084001972789599841492168691823688601445085420231016667601845681157588166492618144702959599297217798624967667276318215902085936812321764839814018700790860136624681998650850252157987942447147794814900854250591652687117207399157785494051871251546569322678644325426385497699797920209089187304202605470636380659060733465251804849217275400851035732742374792072549129203477667937409759979059475466433783334684225448983383171703318696131803715278157087797091609583597478325381374105575444622600954303421745951696901821574982838922210482663224545863363896089516238845615178130908968181029081632345954033022093103794289538431173554896145921088814773209150789980826289578274125431223876834551021841728937230880917534581686527456648642115391983485861654049525275938782076075622731789920403271337110984008092688571294895309965102665835343819354564830646427583704139162176647260092551445418845243439403609419370944780520819023655132641979420932907720675888454722534526788092332342187680158925793430264666064605629384286222273627011904598572037091223630442535499298995757555072998575224063008847231500419111929228524546539599023751400943048717235896261614137409513366971729961701369461283716054601559641773023181923602390563182789456649487011268325385240663593300544124275300830853554397835640992497062784792958311791765162813989544010494296210242023882171374686150840491178857110918718789369897149676646845003396797221252267440986839217938462247622296650631166834484401363812456800624792973952904340848608688179080517746715628220495506355345619379487846744504564090561477963210840786440842941686553052426055249448813875347374053877154413594743904921863008389937571029802503355780788981581936195946102685271470864475132731303415748680494173991784586272625004954993444668823398521574981964104707987006631299018568193690149197685340153623410993501412315560228890050056813055110912390597869169725087107326202004657522265687474502176234882226936544510995526754157692893810719920644369480727939754884071929072837201700332304772134840870538110804566560092648497184304652789539500035683759323773193974186518238574889273140601803062447510783482522420230147306549743004049288604252619534868115959779216640174193626750553008244959595035810905255625294146791390339683813059624807579218324910846492582974664213329098433116963219111632919084054768603978350732674918739907302252097005802821391584549271239843950395513379155294483566968241218144487870479893649229408157921299036801946055528708178256471507959969717187562090396935851303046973698891804312406819485899758307746670753024502221465552770254128457307387286117768658186676769850556398425949538355248633326138277180944207125031411828638516288860966624688829359210427420230872946467783420254325065028451385556809732206393619504508551469024520319422066613148225306060005606898164229937477835505123407782732189618293278639626312440925428576908297265219636176629664095174283608351147574612558551667811095747258721188705500498083449227200543611613744723739652180189664102411766274319075064961330665255009343449614810732825317393900116000887927418433569966492465294152673889533267764518352207594571819126687464924747708777480873880941286156941407812421597099313288488080230041018845121605926050782191166361540243852562222102223840501121424475423148755887165431442054988076980096455650249307424787970106776764605368037881125517105135354593123487538329766136136775503034789893078025156340284470150028024334164879112549310761463941664374482574676717570154234034094295329289449195256740327629190814913444427009558113002087005591375269190929253184543379206492394071192437370543329565862222230237377142746204457461688189997782865126466122644538796591888487637830070745800395553762890038443792448198372676559938389159697710290730771477307444174583383614352448348027696769196296351444956799677253003730210693770227715914956990591084092327659235320927056014058689346155132288796692987246304061182379445657964890080661853878476775131422814219681281217170789889697046990371929276651132805655225587473598821167250206178328007510321682318066253148618412088958688147468259700339858769779021927516192868466055912961743328018003066269581796812227019254612105050544329951776735782041400619006586458492957088523334304580371552397756769302483462947311309885644474756792718529316344509286853261952634303966817699224114787311406604302209621768022991353979166718293001014711447906881425664698351585996659200464236040155647692182523099671104295812468210367848368063437258329645558659712339027533505770448395175101657804982178292712380874749876534603283496398307702952032894334313407526097131689374889442758341297572470934512173151169436506158109562075414841011753169968289924289586335850734501571276333239488203314434207475902503138210224351425154659741223694964802955378467239260472731596780618923161091734482284950321617883409749432207397980730029821075776420849403215067137275608260618257953184856794310336072810443944263533244877132800982282898466428461753732609660045929714380217402216159918033010191883118324511391125185588111224987014761909392874740509137914631751542085462436730277382425800475598180569489303215139278070574500869470150175460964221705050642273332169982463644799301061787631324914969880140454317341619750582079825925951734520871600831388816274527229535706163277829931095047642275698300847714626139298559797265118242408519385454398813350746783737459729157670466093474339253549221094143878093791468553822223324870682142374454100458545868012629488815014012264770255136788103393348085957519449724933644259092627470707820202570790571247320665432606138905086731057867042853710060697035978217785124401978150263837844269726385783806820322113438345088872584480924250822057216805485325233794885713432239583912992122538480385607471686519151142685799361596892597440479575078453925541944935948782866419404138971454647595760458907797733930726103157378150271941053585708934321811377289662216096058877959897113253134799839969029604112177313669365270966238728266910044319617838228361039046731428484255165490756053981516622729399746646289946380068654288825222937247716827043024005815415717730009384732081044565571354817514196698204132865005694353714718996203211090627085533760209460753824948793979308885423959160574951616628726567790563794903317595483749847623230544220969235645935695485941351057044069817206493971229493534791073226533533042059150869766297168218665397493102813032726736319221279411091638542986377096268161811467338911401290204595451295300643567666660350104713255556908320985367136485965721892279249314282952306842487652089196216843649972242972301169926356877297767018986669711725507107136253155827775322206000747180843074926987947629387219694849046643102643949007899848619249158270282514485461180083388903166962949488472793675238566473203705841135005091087334424183605759419792217610715014274323317262215357698280473612724063086434605082333646174919622446295428599430318845253592727225328691262632642221035977796726965831611818133197129162599781709733326742021823256885402287233983026835440913684317023885707010063492689646761621536869816672561515772779119086450944706400759675602690360352572845884608746014894471808745328918774468311008431542002715079123069912920286753053925001530676622144381683325401768507239671106773491597676454854016409806070934568563435143673853188359788508203425498771753786920924954717948732807053104653447068727259791544681942914633268119765784017531377691352887617614093192146637998989931334534751574212237317452594332902516491292119071592222864795878592989224629432543447328428235216888056071102450268934253338384234139333412933125335355097367721194299051375907612613197436983571853173411188165895770077802770167487214239085882023339617564103037916354924764340439879646023706888895072544021239649517622165753330371781247160080318684295402993630883949846281000931844712960170499166777354385714328593462936427790097553125714290701889599750368560982160482451474517822235684658807410903320517242908630642339729966481582476508981083911778529525273462856342215272290577849118958336803428704740700279001619672444313303393462297835882444159633640999304127659636574613321111059543311361550202565560868571293307491563438153057461243920242077524937519613272510360609756908124018487123526012497853609949947874116247891842845314162872466044287777456737847262370531172003115279843769337743237974974266022887975754936183880943310245597472359498420383141780721774360352782288395198271448494519394318840272660886544403964033528727651811040435580201649438467620240368014124136880909235964199437197553715764239363508857548722830284213838707469418824377704689114518879686805779645913885135434755547273511402389811434098981125332811553797620791401851151040977971678448314075787868315630241950472651277234923468581771025102642236142857457588920384374053441872725900221665185287198972072511876860422053080097454329060255627490912192924769436710300585487252125160357141459085962879429574613915979390717301516656210800365079771256582874242946871513969851354167211385860246214376305361441188225987825858513477382153562227766039392480147312898704768396891013517929301526841827532597826745126056008024663466559019786776573428941552144789531307482597190565781346374140939129851481905149463820779614320432222265522901441355604107816282878884565611108657160099192261583858435016051316355125612412283143600428872745354577337789987142653509213826537315130392822599553952168658825471044635873672757515919671001178881769484763389146478416745080851119356613006719125923000501692981110214947699709600549171635921822347432987267113688139989570543180922715174202993399641102074443418474144881887820569562665359177053175473497904896377752996746922350015355667918367690488714566713344071638785699108118214239000176669065811320842350036689701019728335202873304036451331497208881205168744350481454563139679167829854300233061395548205712852469258935213819557646469264864417580291673539266994368505064525394137647544702114967623015496596375610605643753576784583832139094447572300579630611511055818149641040972810708634508827987174566657265473808336860213473225597157343473319927998524486158320107183930637199631222423699322770424281388342583047406815634989453552449352392573334416623186392627615865529424099337042950256901256962217592036372549067740777401472178633331622121739343391700491752226395672723071252813557532532620529611815337139489665408768333708944041658621741842761554806347807820471118285932969970704123101109132056837638490170056326653250961753576285904168923411088052876061065948903930799131923339656317718414031861370160065344752382893097422798201791653867560947429282719270938343000100389520506350940966357480137402973727461780394594762420387457621763218033647429068304325157241806664337530786347636656017039163077252564828834922011838256619500479769197702753095808523493927697451504936444937696600020537421909151463700979083450683642504973807064470060861253875287921480238699096950330725058262185463492740067253749890375610248129981254467601933386057235086772289910950759798799608787071552752373336272275541173730456233460954980103227685290943205504978583920228831204357160875617342104969228801737348621091353718765509590013766122922702239125319340561833407112770326599992633758018033294794350736373203199820351226357825719391310363709397642934624846849811659637861173609350406903299901744371778264015002835539313680532177175030596425077549986267888335065309699131106575831093660510511913965264975506769439302022105179312953654577409996914675505127686889275892205766541263921861634861279508655883462340469455908806039353536782355817442926029152138775476786923320001953629148677147132952767202599028977288156998696422264928968840549647505052483179942546653568582866001894811570849909993185767473437391015344279416570223866336898630887437591127410050128143056744145547775845297464615663831317651730612076276363049313666741667900660262581791573853682571445119531860777661871662531813484237209226041500128515368579454358042505325423181104495561877430423503293548066997667121185697962177171965225406990020794598127098270004940168719900302261699515452186336539904191550295085316940918241939719058678529858726474663469037303543812623476668857788528784520545217273347266699264982253780381472769501149348017079149392742640823746670809323272835081980466343616613854140248039482413829655874297302868824903850038450194881818039155051264257931064381971588772617500602247928420000612933323084294391183820259999019151560994433125151620378176123452360271603639367386217366796361419661050672642885045871123200898045616314753906986998655302336234686789148664358141534414525497475526102680846579804766533222529876187381201190982539509981383535197705236594104241910531841281137021402985170751795148258759791112496556831025063474723945523773175367162837158905391828014878943055483083400605521129601205356934938348764542408319759288041942690083622257814215892558381371648843601802769698790943993433008523209250717350450776138302190198130711367570827415850015134181090714332766487515993426739177490309843197361805458830632579295908723432908839242829592607442513150540528327006550575916791798453805471459904114782531866898569239358398361585781247926845431699674330011080343477829819680269382137712227906774722019240195715504870026002045626733043914183599088892371438706635691626279264432403842302658467930273742372588827152576266069006994336135152608688831632675378949042026321259769881530306193299958512869230029162782537503174720300207923025224952584137553069682796134521152233612886594894518570698501252210593942490686128215958919172120865936950483827010164525594310528716776822462466342420201638813706931327696099870644673294501075105567760783967473092812581309701046631237242051879096985136300961815824777977201440016068407836785977171550917019121170403607895841892167468274165713563038766442984095050983062278298193979576965418839133151537753361978323246912223580577462653809834551054568494904253641002359504122559707001694017677139514290172942144649501823901003374853803155201022300391595199961138640394168003987125249257375128586350602405254844037250394466878378736204140972716864508762975242369408584072858204929172145181178664362531618094843550718060530331184563495080340508301936271206940931885347291234803505256046531308774265844057998160503987004064361915967842225112580446470049862691827250008040070754828642120032514174317326696601843397900090429614088388190197633806943592482261062088042730656519145139465617055543804543948215624689086955858300014290079804315903181066652420067337776381982096421621599050866828174090518142328067944400927489239879335162403349839838808283763843291453661603600179136141803916835867806449888331139613586705510025116567905376578106744918886212739890327964440045259275359715402723715304378623844475502155649947070207669429613557874759503447584249464807778071093234773401596303829921995113464445966424980790612948032203302405955016769026724110811086469106492855550347472638073643577567710088820304173304424211572957448869143604306144258231941831985759785279638196743455139015339446215113765093056260389218301876878359301637271471716054614745286698232693239707145118407832462604428155489466194799207613450680150273129611806604355415227892207859208246738143688261049298685879849831195838511716962609831577813113084627886793579897157957208244967603189200183351961858309550181461466774029617513357673150683560660888810508236898698662096116791693421809352690163279150885942418204857958417641540186549772392580700352987699488901368593789242039553752468565365289258171324175941155918126891230320953420412366792175660816830990885376024152250949345401516890162024133910869143613436219083901467851263763519659857849627441878842517158890436177737902707797361570085072782688819419076027621107536969302487222266716544122771398912366792848404345888742685996048248525520496204767556972092478648005829112258848650883547044941957474479151345281093132234812932786557381808117870341757131539890229740267861451352349183367879004821941751421351413575292851344547153297285834367254674144212401074331210846946118351669119743054484624710471945497580767202066342143512295802206569705715124289165579710861081522902787427745013059286785251272412441139293035246699523108328959022757930259459041707151307190815790948917899418157011461649800774813695469107085879216924339961188060572673818294162107983894974649344481239460712319366207438296121612304152665653384608674058586808162398530687913930038165258513587940725605279231139964269238850434403789092936648197933635565802359005224727629001745570414385661157769003134899294500704731574517138167908476433874117722742194459353657985792395466389970473508899384828818045687614986280742497364031642050502852982587908427731769597309292525049988971199591785731303284450460558539326325220485999096656226278260222892029808560975067624442963177544418458771550570247026695367934335421878120897280035385194717793868423484051461685263424687770414660418096985464352503689585083039465896220519537024619364621769652370526420134107542903108537475219829625152953788168121309574295321511144386095738963775987246552112585597830362353268159942600555468680450621048903466253383383144418717664440493924155367924725352374101458138974558084113780962026361257727447550955341326497793954139839683713732149811402777727778083994492958805368736766598566913986896311390840405599895716539500371760010646214769004885360161536428204362003307838213636724128728262238956126434840142584279298985950176581950643285195617738044203263557018879503752035026599894348934997266143842529933250675265444644602712122568819980343354295237547848652285389447324351472834656028198332678513437705535786892404332767719020135524743950757433740810695854875506052562363649336272385125364388157549027013631292354087362033937651428150357610646797046970661622081760788213467309724165434388862336019734657581596713661391124452701388960635684277899832182289384399899549504119176672988936778125122128023314388573365477533154146327423765807090230106171396774428488931794155211494724110263100444349330240632687049135588223778625145243975245162097269160719636706972562636960108523449504377615667377370540873050798529477788186547918305803656108351155303811051036129033567470058085803006646360702998173520956801869226975628929964385043331983321819120534308831099872600364039831736942922958324030752629830062228252309666296526457732915969392555399427181566005916083518985691623957199156692835042134643339472197119113302391486599514821525228953194805263084483837082717013939420926698334697189422614730172680988239173844071286062342659223214813093769146371084356049438715008653694345455705196653844902735028123453372609224484382744047519684782884815434642961409872906651886056022564996887411932071831685764517327705057504649384203344608940049558056083820692480299258314585300899432944568269873336568221841110918723609894745724243531801414815216836324448072790246045578567409916805464049892123272277324180053009316651762598206187367901143690774677773709845926058722611086842664853891557701538538642229618131129745621363125976799295403610188260503234873199322753863206881131396225308652019843869688423146644088033735249595702461835536185419696807363503717812787440626747484654076370503606449028085959226919529183954170576011281068271335607893474791791165163533072570908792960041562714182883400347030262790646475229177678777915358364148915486957589248465350457779392570376079663573800740350607298993646898148856812778450466305569344641515582446922252122717306100786028163633298386229719656227444730985899816097389903893686806883568573277130515761431334313841497842073567772270694850784227176613816392950522130061551607987725740157540098314537851505104615838351651929400289181337223980685715606853181223023321591188039970970357705900757182128661932810657600505017831990192979922190835952731297696501339947766830507592216706031260469221435226255619513132061910831809811916372448383860868912870329958182527567268641466785935108523751540904319563952801333823702277951870697058738448851897060315944222355164987203625082087130235627936851755471024590654554831212512314421702558107061266444413048799792828018891171857620269915422853122492496152601139164063474715731419309650915953714630785852255188066170865193097606148440855164832520858252041649652697413657330974165773822040774858745062633088369602953248551858777223235957545288609971025706142328749768080195348976941850244515599999656696691686455760046506938294992505045452867959628267470940059433448560837001732884829872077726061288261910263187377961369663202518034355065765989775259085446217068162403214702799783349166612323859119955101237752181591795298821679708070609639334332679515868464844414498071453050344259129248494606484718910363106750067226200144791752407846115517495561528559259361683142192098714922019505782045659382719475286540988798820164381582103536859567167416494877926913858877953510829798920928389195235195630856387998072655449623346903445366168416691718525617940233538995806832865015214679686690161219040580395000321783586732814375557649587073938022715898560893426485680198854302511463552152242603533162046345281719935182010709207842779005402703282480089961691625286222402723615263593736530214883543675463658712964392516330962576333757884580761632160395888250514317616040387734035690166107542364001433733822133188416846545285653208138162436859567380544476026205411119080369173671710076504140219063193125588722880429061465763017358771073928147123855228527198351028624142293731306400804558514408566014325837563456859014347429335724495298721353013228422660492331485126833188525371941775770332563550658592673444001274924999470090145387685445675414831897696264096843019598016397975789361639377507739939217090674066274422610463508470846326145806248384707765347259452369833240558282595355368354187000478983977144433667247105449186265094898111079218598454434875860738532239595842288058851351126396511833861247227732117814867112802772859092937425298191895450178102238275385129511423755854571472268292785896340445634462636177985713261988461998373491052547189697340399409046511420435017553587858323676626250917545034140388804338027005133936034373184543559428446344105958444778977992281524061815434718232667393954173548383623949362498677179191568951022634647905353567812000564194929965363455701244904804727028452637597608720948944811375834687972358222846588095137378068383043527508896283063890958897538731502844035566955609458485146055757976726075850763648584008979065089316908164349156994683496856714674588127102816934388716471799587335762958212023217165531160972494623290891471856501864707007168241494337756936037415197330813895687097854048607581118225811935224864867207116278098449476976379457932811898340418034645505781187623768903876860727275276919088391698950137847557898189801583098884046007709781582713548251389452028056545684599264971912179152314250442552746050162585578741890383189169998078547634491188201374411241951101898788986358982702394816672890830712511030064956581134757686434213899226446040152894181011082453508178844355395148873474615961161605645752228033930585339299385002309839718800963868907379429715520293131810184710694825436735084441922864939924700518254254875067542307438928019161991709482769282517368117910139856397081929389811811508568893839966389129814936664343670210985387664911855372049015679086458496364350976125704535234118316408982344675322238870667108345426103497679284630805921178513607400969316591180216011013995258134850262023103673476592117818498502160669547829418477321213183290129106013685196418618523355944245250081006930175309170714673327393490482092802175109093663320360793245566057972684355667652506044792349995534043827958835254017420466580989859911458068213210015824874681668014366540662603816227828622765495447014191468628612234040534071771650893591179953821145298378703285390560791358732784336814832228656220368298842148160843560443986486650256444307933721087546955695959680525911330600590449496908566209350681375076791029556215278738316954166235721059135411760327110806880197394515781709227032306681903369869589844984543296509994260727615198889881193295666370925100485351894303835301908046638799548162857764970962640800569969120191775221443821438115343872315709333368451176129886959822515938350266146674067623134883067715002265030568873875555477049134626230877616166566871643306654843946927777006823403792249444149740262741539030581163138995171791783394817314672134774051844534013204934115456726156953663209957890833928441710534531193392537485341288636117432879283707769149173812307118699488300850511836768733560648654132581679090910995307363436931285724018479713325574939285375370160362325827724008051550487975926011491678671579302479512013596717344904039122350809309859429115503420306520358221847608468622619477877245816057608765683496160289309094877291723395905846132677108119696932320304729200761240386798099540702171434496804132020803844825939815051613779583499760694420050979096518105255835756511389712508349714116579883229784387290873971700021505802438637532684302990244276085199652539860839805689240882553632255533614633704217867087217776910607397851867722696833077059727845232991936991218366152029763227203554909807148185966323993164065248999740688829824852150130888167582549647261233988221886936661051766153279930752285410332231718951174393839119594124591044290391668461376340453548466388332545993352806341098211100056498311274340555293954553098174699578027895358047326204959617027692023157505203760262642028408196463799695916519374032866853840389063194985561870076901726635243462779643430336126438193450394519998689284639755222998346958358289710170910889329963727162722217034861793655613467892808957268827762472030066382586363550807085763115794308706280450061211178871571740510455010454590512354412891941627644598372444229962992811718798578277755578496044939138908982970127668764631962372369914767113131221292109968166080801865970664123174278008360769122476532261190245757303649783247220332367327738136060139944691785965454140960855687273763570055823269750448879904574717217213703445321084099906698719238198220555773452396416429658481090932615422800679460363702954217691458887804506938919157993018525286840309151088214735161116344025806937615012830153415743392861368194365343985424994391084692139783113977663563709076117278865747635343942015553683352103051129998657369122580381443593033134831016210212813007925694824455270229939316164092720346062937049469855681658020060618027302282495593133587185166799813437811770951689979661102190449850859871604556213108173171576833116864456859037142256978950271278446520141137899268491198398377592452864591712706088239588157054221039175749002691540590917880950213278663312038273523172198280750325160528477762013612253292323967100581171229836037650880616764047396670505519375374071746624158310409768619110704681769746165654939146232842929284343449625878355352339301408416875281107603738873965188398872502593877979331189309057574951187944599588627136340638861492848560404334082569397712438870259025505483420572508449072757422059593591895949084506302573800741918770527272820658469859108685799755930054845304914543267644327662180576421511873006032081881833113233069329488540227995417154818905485334719069070929688114438297228732668769359906730092965285696689240492639817382529219839370464994935990497452954519900374476583724698075859515643199389974602882928069981050683965039958711143153686310522944606244568063694145325575767639252930409961448961482277783736552215495810466158407159338359488861307086679548628210320084781621136447278932063059142035748443335942354335454434422332611913504155695040734126071286668883566894066842517259677571578693512077181411114787195696100522993677534093974547570274919596152223799584593064578903313360666073775395410532297960133801840021851060169219249363573387355416315187667062647765976574436264356101605492840833386239863318339524093149710260250392165696777572662933151744361465329887827790923536216877841482449231827843531949304018661946578302492123389456446863424883479212642677177331774255558180407354499518648732818294790087318663222128835998179449425421696242334346511397026571367965401951271886361032081788802623600851033346008877811488480405454664577956346362961801763082400523134040150798976770468424577433081877398176246597496710797544404091342727886340179443338045133103752719930966939489848032224179939725410299621277197159117288294767179528682079230627576919607447514650694681402809579843618855803015807410002660296454269862887398360554639926459675249629168721194134807270266513167832218925903272697709859893604672141302272418220594573155724422039917621590629725118986900024654158145129593650827634593894902087805948986324300382224057163910195958284789602439902374181880374715011604900716184466331812561319692096418916317063021180025919949499105081845773937529111609615471133797721990368324492499202438084918351969412974853193668036502854730364991892312416241378057211667161804121157691988894119482178949833851568500519683498995522026384838346826278312895768059414185518310684086304942748725178695153873771459961735757859068415975146368684585444655249828863326527355957033443323806455160466927950303467957539551887226031874299587504549442165353765344193068249154732879225872064280025158277989102817115594996611716634941109931081886823168919444687994070508384106145615803016719351149877775589791721303061554552567888346574674557750171205562810546223657407792374497189451340495445476689859981806698326567877156039979774808506558740659549361300335152803845500619899394951779625067944251611268750024784381699381907525427715535232149049125379802871922432639435201839630154206257612572127159784887632672764756200542770021710224410644299680331127629710847240897769682986645681845220104361357248210730409305817773913889397562617458442354341840697484166393247208592832880641214468134080966958523459210776511378134842090907091536340919215164630237318470834999583796352304553912519616180186996591638985256951455808141186569222932738990648723473354148320432813012934416245297044295141280532319754558614780717991697396041324572606553194017518206606233002576352653961225066035364785443199334624413668275348776820089381741855921846967661500806937695522773488510597086407845938649647357718471334005780847995813722148132427315804236659452227263709320209477311333270103515698374226510558310249005299784752606425002196853903414403198748730578494842598260694425205604746160884280681098169455957100967986916044740568131461638958445331207247838518935737286519846695259574434280512548824470630370969603291995573956679111834265243633820761530131088453449221489387012659150491712463066040491589212802026413297135593268720439715522391168899344467859976748060643615966004132016876974323934926482430014371862858388278482212203771101347318503136306020728618799295287848058719578600789904932505901105276054266874042613003505095802961038981022160084964048020687969021461449239049723300808890025430386581784285308353722014263936215067823664844271036855678259842510813459364414633978757817608310844386042312958665251832592610661086922758444965670883531941969061905284729253188888166216025396828008829760726670749535439282208495573181429852627237713005603656768428621955909124696907006087757114996720120794388909773597073710502241322480716108658074686635151645872492453215661235751870224532123402430940809112243212223254673074923703967769643154655626343045694233557295143611854374799402167973053231391853118523877060825816255310144437557831904370270051027759224554504732877847942629998296268046299718357378879569255134894158955698272823931510979409332864669289606471212701512720045917475412973762548823684101534544563533598008362914648569351317344953608513147895683343237093578472389501446637701244360536005882712654805142076632171340084751264032038816087862301266475630329733604629732795646469201694855317501020332340932243057771188298992040036490393322843017450973659982755649218049887461352423562695576294430706828663549458498525586881602719465643853763242635161483574632896552195034876439421773408267557680385346389188353288939571616602083251961955830266182022559487273093628324823022637484748930711098651705159870127074577708576400137612261417368876157452259141704204797991561119021598096756783931642254482963483861537068263865233526760843989509589792803591946466816806189153195878651246522192112603298027481437363265053213008221321877119501478932491522331821561149943826233745000600716462900510505095607195533461343022926687676909076773444751919867230501859448631813749712485387415616814678474949678122189750676897714318144000619068327694489069040121626665335931030995116749793194067069581745279480794621907635295085532089799178844684486446146049600451783202333384695465007956915245195902602866585990852745922009486264940523043354966049106151243293573757009950445848767793496279443823807953082992166656624003509069410686872223040113118888096114546585505962183235058810521753505497139875229763544640974779943531365348531059517041065265028443925160439640128039752886871698944830140508242645060600275052784604959479891766990994507596952312386719188801872072273545904987702033296602097033266291779382478820909782456840588075890455950789148095749101931375872526567699398160785722132064634900700100566964098115558720966413533847858245206548962233892422779400500372780111159450829342437579847614698448322808889606655573502066418846411640734928992265272923058756536005502536484201340761012589614986720983810184125578616151030705389671357304446823203204442953670142505144579991899517735456397403976563749658336515938470232675782309439654769255228994468109485315545405160776659877266614881427189693204849400925271451476801807622680694046278439258005242300415721120232955272913709125555422726111244081088656756712447639314406021326609907724417226822303623858206919726138392342780751377790943439166317841187812690666165498004932935806097774822121116952058382913668780167332793085764353448965464042395249304524853190521021447369615699466194240354223797960720813878835121784481220421614078842328457114221344743308725939845004719180972905521177587517840698856876049080946699092775033921822263437824679991108866853546702808086225987828757537621309166272894419578153736649218253723671829046906566681448335381329872449846926659426327672242962141290903333743278434753561646148294148402011990685931372123097110606905239427389024771755647501649339824487548606967101459592188588292975315619764469669439683854758303922974096328910051984423650815574541839974825696972080740688021654228662177546576044458869634533942250621251758197397675641181066746656150264454629738140493212120550170155809045521650755367763726660557235850103024939996652977373763474336255435726162962118219390533417897743300045683798042354613718086154425161910701945157380528112960482576032155494129984031502108579952860170409197098466496367654286577026495408546330648123873294772224746454590844092855197466633353085971933917303587703735667915739999305449559026264219312849921233051611058181324912666927272908516596820686541874574168979616624395611210504387302750084027328522077953121508147764100248598526622650822027907918890902071855556009721759569869508908213875685866779427364478321700155006703139824012947942523949932727377028261397591673955059190340123729521852787746938217318785569134860604645797382655915201588322732142167835130986808429174181782782411022951708173314241905392406832536842214637659229522178339887653830642885665916523661861788157059724325826587381616104084896326442761317178359929391965758225282964747580494973350396333436090936009863566839655501286071985582205054041827432801268322726633200011372781996308639304330133675313465502487588168228150401104465467190030287503321231553360111014092457709617370251482280605066666537561466432465049338974940423664604690483074829901555611247026127487125656137804100500164261844868024803692855409196083305376178346459068844369659584234294293527089063546532049446405995649808403382631436897489442244727384740726175689307464935592990140911284816275426603970683948585165767852335413085857848992881398403156724387918635849624588110272501754784003754304353306080273979096432692049727125778913048811901340816123617493652478425014704202515336734732593625355555150162559987846144862252602848174388259471686602180281269355530759501691989172067460738663874682281556060584929823457337123847617398786179464155475883062679945841304704120861165234199941124520651879200788349286970950658156442367103582613913585499814822186796454948238206460155579684846846610630058296752782620342105468891946319951549308144299120809821434020465054276945604177746949880436292599360996586407531401251564962242846225334851222150699880770671285148020655065039661341031583781105260250818166659952167685958829733787809755196769645685983132436393675334208318004557417479366715368733130067258672685231099278111661192090325145583015431626059113348300918799859988286972170468220425234945388940289959839714435599635331126236795863083437691999873343251561177446416749261820062238946235240162731214143180496173167982442630171312107885708173164845746343734384982767018973871168079798883626931309842327323240347674103375419805052229098120775013472273675442029151298494608323061523230817377726095086313005514946179657077984080849927242982904576981241146609312614621739800558663718640779398049629460178423524122978159595490637598574488265949627929687190678543140634404516066052800188598258741243648407053060330184768888135463129639280176939508022886132031804889545532648288151194442654477925541699860937911293058844634468881638291932172498589023329994186189757404023676682478648405767445230943789535494322261116650094408654015406561254923051010743517265305343993952069162608953101404217448689697843970893297063252491069264594663456059306573549803965528090247085306155230805615157917796032697200530170927576919980154727363050390728085102076590922472537846524506928079459375791421325425424107093016523388888971438597329303244629282712362890247800767194456407592854166112277940665562736411631603819449000547830769270264782142184030763026549151766445686822827571526873324752271916084064249671683563549530294619468660381337883217324395574162488628611726290967421076656265047570051764460441318703666166436044615771031905925040323717235122892633097836373701822193097772565068872764939488838943316331834648578110770877706735698257740974657263293240557959396709159914164755052164105962022373052110577786918444839110242764098190298411218867854572908950618427443223722845677898872428432709493451570595520621612774458992230272217228187567679971548009997120445717104072512779651124284265718545939871377562880107031993158883536897168890566036304738040624488042096258113797231698195761873337326495138251154825685707088986989259288139648476576780227642563623744222032390374493111491261175160581821094076194121894144280873195921875754945814459496014005081847804015009366729943557996371142637064060738669566408994805992255661614001520310135763458871218297030836519940534810672761002238711718211860444966887391633027813798649746841912358241971508530006634326679975947535811752429465741001949906139948814355003910103963517866547266894635926087633598501962844660771484863740311595272453866511464859147425997505989982346333121600873078321748892974247055840058331299043201263567029645551234276735674854936735789623718613100823918546411936659940122659988352524594451476587121670599714259523607877442386498563531951650314934051337787722926129661710081253339663353357042057051963366494102421406100692223754424251686027563367064437274954868288174765905659508318537059556499633835274591483964650150293424858058035399049415959368713778145833651128615797665976367327936393846289036388647072406419054010634237257577246277779019492278306685388140501984300732916495467770877664510302144401962272317114999269357616385761595538363180440876287177795015683648668132847521615299613050523138604303448883483322492513233924222540505352201852700750387476243003768677920638281406614888965737222441510108594362384061811988925782556755757213341762712900455544049551179794255354909924683228256695460358557387598694000586402770400438878713686372040849070486141640609019388677658561071886366541202325385992314223431763202299173514265960000438580857282701644276762906670788231438774291093417540198059989167238540050870704255733467430649054161904231333947542654722082870901225798891888648855970637432878484779142459234494886956664486846882700516849443451892866480581150383078143240966735907597826643812171328405924299335698214922897681367330416017280965485281753254608114147141923150714115987324398929033307958989214401206614750543892931396902275808544993624955127242276927105001401016901125138203342480257031036965558974987571940810739571645250497744063024054598291113774612806875925769504782138372910849094501694634287771443114925923300960748569531311808358715884553408204968240163111499347310447763849405505344588474552604462614293037889586521678565269550133347125837205335490824076759120632892183031218507944101185961922051433301459471314855457087414502116033364941413983007192531720708317440537381246188910025179530494097287863291809940828187502799331101642894499006427641091845898975677775842326546127160118292864629287178215241133407376983587823911919925264851858895568942724779966623138785834690067353990196556881046555142527030663800297404492149595447075096003983964666279543856127185057262834690486933563016936026764596775765926994592218665940719039709967981196465209336492518153815699472131804149127962433781576514244230717796103504145224779918361558469383520665130766938196379146751700078917634120018457384300421406947158444747578335421907216784866885219285974051971714187328863730447046480390064658586433155297739145418820578870079150874688830135127823606785965205515746095085241327821104103869790338426092090985175429395120009556067623344484890445092643416380927139647612390517630318026118364478305376542881670362193943653645618153858103581677197005865074914541116812723043733839332658396213410937051361620940777427450040136118635995151573802577951692278898042285259250810473135825844425850546243919923927044175099325651076742223007933102067668016676937305478888227533443447375507342987537163809060446108794911605731154693218682129703460043441930812430969222531523844309800381062240745247291569178220196251124458762903069898519057968024174374104931825660705176669483212139271041185644712872225080452880978856273649669922318899822748025046131467428413422112192997431666864359048194889943489875147131754034731208805706652142765478360380991784787145596334461132790074784863602594207882618121437416973327414213658895638349430615625018669267500494202819836584745089266438680214842070099746578730814301826849666869261316254616746596165092411293352163007319599405808854955500945880570234677313368924595998026659581282371194213510130636780724022379807020096913430112248519188588572296816881457397971456551083573164734422118985920451547875417483549416481622348507920734637167250442696143302609620735808549830380275695372011309931021249319709643436937630683381425256622352389551177345564965944892343416228984058350009574891655543668896112118739768526615994943333869771790843126998440404154629697695841865163341175691288173342962417985374836205604537642777866334068135665047822762562344433154075416792927239740391342850850777417874394523092334187169611369664577540913245043556686329111099105350193553445326803267086943713507531405444986879844098106049063761286483998020775912380433401588464431150284307207619839339520438317639860685377460429824919777747151583688621974985621728602679277595089521169319140204206981922623196188787789634057369975253580013292138326012998541353107396025419533251655301503763398164376260467846218841045095794997022104659840395559946556614515927816356709507783431054256411863766607675042190702575963209075862476179885161415674882676491573597961072248810192902180392212712058274216890307758383684785519271751210774536512583725898781691750259564301948807838015246374895278365372266642414908355824985676707498609197811060547021274000429070307702629055521830305663298987522398309606919179283082970590819394735437606512048053081329523233310900825362980278846958295802444161866009458706074001737707740142868643784704073728926054105381243503335554472793898677108444517336042682540706940559717021290034418185717895197549595188729443316842749334943557955863975954620927395063959693018968578514539407711778059940296784473475635283847260623110837003268741839485409012053014624183461176448971379696732253512356124085292479077524426639085535740416172860194676080149518817624779757456381434515127175917648466002020475529685038100853710790564974173956108825814951774057768922954675826024767766816259449008093018522044185809227387657551714626903909773338379252493771082702316366813062654260198406176384659151199283956912956113366967677577350841891040197354879906551881389679035033752775643512029296348044805733917280960671924976991576973808003609145109055727273061702559247013329175101180668452044293617337218286655458666085335324598330954573277817861099873945355409224402502633543966322187716005466145027717487283965963797371661383321608789441932864688396804738393328812366041501929761110979838144113495940249979457401644298818981805339752184044955234060322821167472970709339106163911395261525104323981876666157761819076564390380213600508658240028606067033971035365135352201631347359996130808509872686717340999334000705565529370829352347078946375295669266513758499584302253742940836951512283458661225371351680176662542699547648962527309744998200000859014458961734865993459389502210701568048700712303234527667851183087613352984395482567112042436615927488701324522769009398119415077154603807006605490578605532678738306245902650265542467076273028458888506580344652171611922000715956940738854721590649387323935863284224781531806796508404726658951645271798815800847893078828664941408157502854060820031709315640644060046137745010389164686699346966025895171998240304418133934529637421549345044766728081549115436627829394265562108179475289174337650819461813641364143329353898530329992823751968286498580904276160436078101774338687154510065528848299650018535135214381265560334536288628627243812036608719102777193301459601437499288587822743368395635556378661604561363661414434342630122459492609968921171209608181495916284241357508304491825059101069249355403536228272158260810727551040455006423362948834586867466290625523914301089703274068564887944307779602119096796806430649128937023289503380376879775170868197786549794374685714452257951065315866374184906529687131655827902317906028638022611080812993442243605092431581028907269684010937696801750148132843307870919115876206743901271267994039227557557037714893853060512041315530464322975517067462769562529382861922571051411042028182588807593302982460932349669637036789952909997155625919151606934191466667782433505239410722601825478195285224919066483588236015064842009581824313446635218507492546101051368848953510817410205546804206571461690419692656657211525056348344788487555529418606146479826787486785725802221820122551886776060803696297710379103461544421692243120383539646025442420527314201447997780498851317549862395914034324339783276187615499033757676333173593615995072579261497303515981796985073660383544327255391245678054582563370109243180069107233258257093814373365224916029165700424620298406972564455093365129327185625713679301718024614245571872380245264118265392083848392004549432651977683688402217323622652117743800635827066464246220122847162053011078355135246318666015867356428397805381546276416604574579827295734459226926118185805972901470209524883262073653681681237911470492855574461311739552419509208951282295880418647010886856978299022627222696000243463399550097451847604404907211932078482705880921403168650384966340500444630774186236381460312896203961287464974196455444230768369006807369156103727052237183852853650774643053812515507527290533705904111709411918709113680692756304152038412030363685406266806853635878307670254736558856544974152257379978663306582893103254603246347108179416995682311580078983166029877412245953095181134772393497015717923880536190853881023771331746280352243161243105343745831069088696703489495156592869345327658953652189399505420008799766983953899838619867022572556178971301822667796212193417180928295268544629571768813615335627921281488917472960276064221350077469481010440736235975044882651465036409230759896773350413638626968193157507811324088174496520684122974166496994049473542581481321700042711120751123402472270789646487298174667285971413715915939771426319026251557853274453588527668819671872445820093754206001769633135703193126964940295613089732995804395310774662147194501269453810472791209122669967365367459217723133559118729001182980864960130143749731889265850574337625012703052086170777749595947388816019253318943416246633600091026222100144601497167667028784569459398701938255500241059227372463206503056008461443717991448080256812747791785056685102601000493533314499257142356569875972125512846446970335055445748608527918216232421900573234640993202218611867298703900796918558693944318237712613594098107640614514175976232584447676563551987244433186368810156786338824636392454046806490688131553106655067034646783928115014738797406478359243959955711902262625684479953554757189991546279223592862262926192395544663819779169827637215051909619116384088203440492105183939750104417722288441548798946368582052236040515256572989332975814029121010358604374860952639930595317700012570472117342582238098586519404045226902843287061828425471344981140059248757545915238639072105908952780221323537482686579067535265427677861771903059411276987479460317108023023448784153781430738903630823664708804374557030638092153387552623895511303380004377285530091505138134114387141284086957375192947369695059093575358840263016197252072812447083480162982102801702738386460703580768146442886531030290002064072996473921167998034726485402253401026402441591582442423985171933305613471913755223099955748085217385047180638445638472126847017477945369083756412113332291705916592508493289345954755190833399143044604081789612611462335644274380951832737388369246718855494174845565612833093921760671079846398353575170084394126355761600532134186045640155803423490210112536449941615004197666595604719340453957660826695189921992832839352601733172557496043658737787142882531774424746298700404077502006231996989876836499422557722625338931643323191438416150313345001565306221452712532045669992412312974770653716136177837693681235485189417078580906883803420908314833419242007195758045403600280920007156537799627552255544956301382598144733789232494053498812417982425116131085191542645881925470206780067264744121483938287613679679237570128268545960483481585727290925944834213892472953460782930609255617542156509703674382666891333987455412297693042983415941700310888760887803436774860770971223704415426482103481904667167946824775580684008307300676169164676965965280028932864941477393134744257059451607991004770753851583883824781622895349167569708551069611503591118223669442702995266376050792976063454429606509723138184857274504214026062040252419293740793416682710164277900721831701164035060780838251181396033403843295983956775109422181311319826966801300926801933010025755598013342915734907087642161788648129737398676496615667619715287828188648944769245739832529731136589426989295409170654136504332691267252094870195513964477612187806325112125793934384278712942542693206715656629338527373682049026309212968026668056697002481389713572297166116333670285646933922832205855796900261857081714714821687240234769599781470404026711748564979576819327158003802502914543738915082101336604842505503016319377140349040827559495718532974641702210241641306686356682820725576072760311031360415536635692259715523371845774641523333708480017589255718563577713182927813595473183968089944043007611627727678753583648155642172416427673032103851288807546287320347000240975930169363907562402092027243200294895278351794144696117776586929860709994821430539602240952639398074074834406260254692184759587529457123415005947698786812690856346886772142347239196769434003736994684263183107966790908588956669306555814750743839999575253897880611784526715896980299895698159017047714078944887148539184544962683423259407584785688876823501023017172164184690160288405092864740038731141360187779727993386424685164268432210125365888482750534080587096797741341293578404218802698162312061292567038092085191884290981382648498888986896046891132712039996798140160633315202401486604889956741123959756057053740268814874500789341099382788941450787381630413607679983462427901224582267614936416009154328335720958250170417275416663342545652570359726276858233863897661768175418623145177532015467434564643923882008007798218496880647774785043729078069843593493594213585540255239854878837584117466440632137670749772729040983264129716062161484959697469640307813502637802929191263105295478510639180637880229861846990917386841243950463530957429944462249187139829053450682842438206164607509619259295586572381113714120425824114005371440278206629999118624626612155342185404089182651731672461646544985333415017804379179723022156718952996717456545474036103787621753489168912416814566597354925529206923246722736088443297633955126685852506985190573084832577511664119918369632394352766788139793864929639356421699164239713389811542344819871699315835578855878690983561272276847041985318981138079549091218305886810491502959663636846736389958936344259860485855131454132007396765277206789870825436925546653655993654336278412196603123050397654138824833780888897678130890392001291330533072342615960438750659424974710895810269248497046924846598457155349356382483036999410463147458478000920729766284390240119078738818749657700129568817491376198988792287347244568335279975811852954667377300040660869718975402489091958475901143122129348421856169562241601541510842351335057399555719409442109955169193511067620571349350688540531483928478432286011164739529423334334550864163484390043762584432382833746912091758825283941743363370023326619567744168715934248039327221191616302941776327491855908067744826789780189930010641322131142156606237013714584960259073447214977244277598038149173907347977393968097445809353787291710111871976876887779049913983636331079720032389953364640764535325817183309715267920182372047942043473551152930938145585977819339260513893195486820741487358419550496116916323150869345728866504857634303858725877411800345829899429545942468073479871027982292151596128214441334892025155542883443767490084376938148208840081831381603046971939937089473598128534943933662042723389843429426866410982904913734586485421818387147695950432240285798753778543017098911920912461824184130185677132466599296576676926179873232493541542257529671768632159256714709584174569945262065717105845542387672865439152558777552389569113007457737823074442249364566772327147454708715611142897450462034839307058007451520513658588826898082085653053670554612456393337744210819015149712711114934712573333915849772734938748468926762968864271688830999179206701141309772828182165322148994307170005218460972888065068883016608297764272386651636446894577953166489445414026228653323903274990819998270872176559798771027817139494601748344193688040585112232620986343016407725257029945821548832248736643221848852811561949498336416659825143185516164604489361822005226597629560318434161783535974045132506960176676896337826506535616215059864126255770548265577866549239203041344652498635561943914503252094106247540148838258124997334611295108447105761994604924893220340725512393765063305946754069559365557812104765075122498083569223371737865012379165893541692979642755963991064911977441456089813985068930113514686915455948609426310575743101177834643793094573740727182616690899649618070549122894627642155965153016482647198544786347223179121408271154038426286207312810688673351943435716997574856992959766998422007400684387744798503499017389406743730514434522203417331974810164189009861102064651979542148925270065106842630640626562411880672072294415959210578453087117155040067605916284567983254425116834633579194897450305668681385104167548869968687300254860835376690723025198190139482980137509588005796458473146954135443621554122096579543588985118893766366121312581082121860170106886660187090131945281584949209339111334988414092697671408478709308135273321089580571218785183240562675286845706110288138250594810566593605184910304708486090980455424712068209841900467465531120257408394430246618710887454815543300546239034492083272461083595735932249207078202843993623017970080530253974081958884949121872748063760655038399075448697084804978672598473777282136094610254925220643669648013789274278193280854991942355849322305813072332315157899760656206795052223326418387868938777478966734958104572285168097740515359175035127572647224686007155220475463440524217421478663345998850986003545144854742516706301048950809410101294337189843631416534276346244309604927119933773639756716813865728996828656004017876744363233322726470970154885929530801187230018050635549810036236481433966310299687417832662651547604922000446039449224139547902209563792071266090716477439691089619574400692540526773663552671309021848868845551707749312447572135236514063650754961824019665464272395570388814421989655307158441859431110306806949394777605794004210861226870086693683540930099892916933083965449562711372113118524505877396393532228845688788868404090070893098947444072461517555285146881857688032439215857562479082955949749440437558814366539858522289943268845025161354838025233411206048742800549515265673443625870854512424543291488652895467977646944296317830433293083028306335506285003052176499249457144289721424882192446908533342502803379762064927448831799445430985500508596139386240877207174513334511644240422070338099975034748569151226876577350422204175265836839530131843848093106958139990626509826316629782408622326447917915388732045588737021140939982224374040023953767068240095352699219285501071760466553622155819780109426852687596447802517611705148025887425902593438825889117182611016256369297536517330114500572355902358997780864981452600359583286767191477785203061439770614951817857467975988844068074487806249226253821856459212779893899085963679781718936630784958518159103486160795209845739023319904441705221725770461072830057925052645829764181712727146997378548799522426617841128136895638512406425651646238941951548161158382045159385774494561586353174210280082717826959933023772270201425665208316349170931670309481328715481942221301015785181809648245061056211527116885371512872964818717611122098224299131387570852576807642834971102661968877091309843967510802026404873747079367927221374601081082934094723332770787459215532806233360182902343683316350631729995759620101162778716597690637699058429525434484671668484316846272350578943677262577602025552346817012338974910073490472363442270711040455796502998597161895449622192701452788092638717155559746825983489701574094490424055619166843352267496861567476287068638506131185904213999185482181135409013730594831190777903451415386939312648688608487197590168942190887597938062929046773334303004796759095660987307528525741281622152155786579323058665494161757796992328577230964513429404554678483219843744540225370693575909572058406491221572419639598445149339397157475942813357003426794668655079983041019920499143244556163208204192103712952927623799264069030332670810059506821823430141538054239725683755497352498657810158052124781528377242622259035440114352745734917138747771963250083503719870791514488785652423796768639567634252294724376613495949902784463476100846222327412124669485040250784767550802266165038399190034889009142767745207081787503672059555660743391216936087925818452867373557300768610385241798328555899284988520843001109199933343240953258551459481772307006454340834294061286259693981869708918158880968967832780170888349353172472290968822416004460313399813446561576394136991547231987383905879339257447409735453193138379580058001068523693062853602027490376087881747555414201916683502531728965605436215765871153710729133451571427384231270404355923010510778955166013678150110727447980701380284853954183194425595334412444070137425398836416980803821611744644507859067267752989963190188748092632622940705683209465193523169975803880693642006282874099336385709585605135595511614624343846686377305211649802154402113708898220338508357959153163426234115266714521196855901926311147308437008560620864507010437391127162594040756583207371984769222323105515010597422922586588458827334433831747078405155093112661646642219414642000317427257998518590840390511024333119157622905287317110327628193759058845437897110820133561837988190126478749588642144695944683288886480673717970167795287232091229188226297633150666332150922608762773563590378817362770599482126974389981407633216771652213088182893120282005863864008175825323096724489000695880766059984064059766873064262495347101063034062613727539011213393483762284335188539744768533065527502627445560115159843356092044158076806114908743490004634523161714444048873836094669246303637781422474019524900739018501856664168900822683246481025822571205081934827148010492799236529122933590575885971706729070610924586069446038801991698221934182293788050968701753029636251794613770731707324411570860160400677869327663975121914840888462733476816526291178644822760914007395635943493962023975857807502229195105226777234014099679857549588101015761811567402519847014897585916069954096735331093027403994422783438544506618499046921710717392509010493223219613180418434916688876211715538703176286442912315995907689164320406927255924795280348197541079773877484724446566933818307350068855833083000621715670474376725369789921889704778455555787449196813094937899605246629705061374353787527507315666576463347558286499333276654993624525615121531103404670443715313296305405031923845981351447361048937727367272132610651565706050419048256494658311681270730894833570514886045085348486720584843714514950067365389172824324179172408503170475143806809772757072848849562019745694581226150745430108665986528824829049515336121189667358924325505469884644349658871897806330003667861068303424658289072081447354841349060899790159296423950699247365100976295340614694653088367758889499294919283540127204213588499942299574431801530067410090737622218734331631150635591439352825353338007699539722026990722066349823789406862342561276989228209026615358194195585676591145249828880400686881810277261789122657816836839605913180454436774735013375968173573090281714798992710547615377304713256067543079161060050424405845569114975475112765611038705484788141011064443988863609567487894685742793379010764630552264088104381241904591721095886159793648415146440995563743215803770840896757703836283054184284070633099689128562933924987844366791842300235413055248890656960661987560128259655953768016722172909190231020799877336833038674660361875054527710156992610645393510009930465704784546202186179851094120285806959745405032765393915570568258615332955656912554773578879705827832200298502729558540270314115779596957400637363378349724444257439888382646390536266879623762774018816090795768633882439851858707868037609818803364153724646280999456241955699437822960682769477875247628237963827558818344341209617461902536737586294956928271555649774254315815763176012118537283617529328141648191188803878143966153554410965077404868626731174439331557959982116524578047703479604908239705802626536585293428590601840882960224247306797653948815766347249516429135222004798829032714640037079733543506910283869497783269369091523920539952503083183593758328551956828497036756053816704490167320974908110959764394525855211483045787003512835929758625955559075916019551202072600645295547031275049645741658424293379201078247877934028167894318633730381652014299287925532713275813595231219979079789794746540925230995765486294280971372364774652176109049317725532110681679883171548830857251027521708039632273956902480968774379096369477917277675371426044113318816047137415129994251293756224209998068122676680426300835466295946252696033025930756647978058779016689487522872843979338890662829228175698561786360911405375015561722491013196592494089998973296294059391439789426518707028426641621901051433477223310933334947535268229088731122496717501690044399265111906663481768205227433280883091128745650862275948443967475710932023213465574586787367808494175265085144249796153752793640987473622463527425739475715326806469717446395032202016831487799048273247359380768242708776546702905830979059325364848742745877322969113614593827433368881294000308025816199291170301275972820593889073742512104418987075675220477332794391505669870075638629823745265962436023200382206308877167811523661055270803648129407043229893551498245917101085450327509654633291376269498642231474056837526652165178025595040960186690126116809177628608875990481105011598473941422679168630493479205429400468614718093912405492193773961997742217718974338224853831745855403779453865572031759960381160441188834931889641025754705665123897106862216676850479468377332419085361963464623302015845192549045749168927934154456448237953378824437062512213824480350281763046070168419262389782742933054763889090105952639399352379502518662271472919657087172553434382579950780969034108286858381892778233265992690858854338820998395396641312854531095127132543062570088283562003747702681905684784231201667221134329597805811818821637002708281793871849867758786633505412776801818271778389004054208480573892209649172403455074727570685283219171146889941922052346846052813601814901978371105695835745167575660745193500248310908364178149838357011902467475013305665796123430441417920735279860971274130336442921545068198797232103654008946410722257565235711083537172637719390056428931099848305345730762586951586329156244642480415057574449555390497716494490168312913057454988336433573562403836185348203464869800867148702150441223021457454376195606567875907417903893397881904247867238865677652200903306512829887919039543805517987020474548219014389472368425374371449385906064180409071880640078981817633270938563708689189404625916413787291133141348586947140864739693716279374314652731242316537297475522425878928539963080124563051496039785561553398344611366459697889899090699704280568813307496683058390049301637402714971616294795228073493249430967892882364748301128710800704746238910580705954072340367046176761027200050352171518713701683776201914208386010838403423272121750696974637166069703173507555133466864507233170803560179146914900192654128604387198563982928657930506610809639562638284894011700919514049309872985881949855426220673625076088081902277839997829799177724781143608430022934515901669354349109547868243683220964958696393343027677941881256940745054490030364767609027779319674671436079845088812784642319223565749682536287297660264785585087954415880328325088402656626426846194267794858582420305109359906642743877800810405948894643311768416115335200259870940482288432576494943372097856487524303354257023753595271482058966829363872119714391217023083286408976490998345225961110189956475084174578784603411523421563861981280017916266659931193117454958141437659730361846838363642880801298438854440331648266227562181493414088643399286274386174002971629475452328767261637368947234724676660791767978672041933020424472290746472157859112812548654037652129018300235789517611702989082602762471319996670186106404413145398178731621467940488127671198108938639798298076608421754882551697321316892490721232787654834175053392254111389380209427204456284824521901478472471018807843297550755333855404715744397953212507107917684974881792260554769534175297352991817965091601026028881978076397547522532661094636025619030421306308356864128358922681596724647661543484550234750981022080065498042642110217604015669924828343507658362372005059062608801854606146027781031461242578615982634431281125048434487454099658248572915530231614275797491812454028576056106305499341447871592738307912559690774660428725994300302210899373132633644371695965259460650660043482172807044153026372824052767787777475166542120831489062148603115483435403395198977432709108394652446815346338400001421184954448880480442611890215192072291629913232964358722909017174701206137658440571328246616743914411261040713079493894148096851318703972794479067625423969073869552383513087255919421767940132221417072969719928111281528630439300500347014224374130633433565842096643458221614803893834577626958485708210383272626984989908749139691023314587893715715156489339203259943525015555441190292067248452600789450225505292826348839926096800605485191063907958617860229272554936723449654398699822363853295443396358281005760106173367794775010003973947322099150338502924789121971470766653676109222660530781303797257599844819812744529204137346440826528095054290804029371682938068739769272177343437862524040585365722860543751184526875111955181189279322825142039582408442181477329293637114723487067698943754719436364584875419725776744043604547337390659232071744679898879156383815434201851575064232899719956782897316764624053322534346482637180176923017252753045293330281718158727857096249180369673933443008554790749150622191966927278523175812176526484973042905745910449985812574794454459826269848662033362404065813393601414268585351291204629755414722438833731447913578384626907112324633045662699674721265020149193372122279146412977301751136418586889584984414700314205314713761468490559321545752280218765437030546875537683659451492944515649570362401564385840743492104251439104701472289783169180092724280192881809909721103603087019799798919055584441839059883992520568019976382093465944862593838479071814043024162237072926803636169281577531668830379687581274727768687436043819037734333785469680641388595059926533253262215155702745755171284906420969535803855090333445571865590971383674207913669516467825071448978310695665458508670812001650271605674051461937678379039600452612598092278926643144840051371520513027865325848323237694022057547895617385146867126485284411268762873821762325275434846301348391441631018015148463451721424421911374911669586749059154855827513571438668309383676416121821446617381056826855321309254313957447652721763928572422669830609038111741831251011897280665621232897124154843512526605916196092184098741641854759219523360907234780726114296828640350655448091683007130634694377906695224974920292889021715359283614926441848678431423866367749481817912483053806401615734714161263245990990200353428124907017841293455259565588019027704430316582944670623020211226632467863292963820678281028057341175550361667043012704637366790372007445559611329246284859293430798290852988370081900084212033885926588551252211042941922060865479080550234046736113179925964470543235507013311472317952599766410235767507915382907798539028013597031900706274391798413489199932688133524711536634903324606993365094099059657572920398929158074113026943035642590937890821183221097867288616740311636237492305991252026572581918819698585748703381300098458673017625645150314312087251212154035284177473366448815454810050138079547804776292998479828578740652703086072954171075080849454948572496491493089173627822632727405121078470000853422515933285370080873082579546592059909773452958889259915698858588391729699783519574232209619372986039171413822806162585032393602905522119208695233238239151155265529566222864313226856481406003513652539292887838220591091683245345974261443851893487749225122389139465814341913746235844924946999416309456853190568637855135384452505485053377566128474503411612341978099013415575066068263463746011457121774980845641509556208041735509446472652897456572767421996333740793891931463538729267486652553181205081315531782436169651518126807291297104197678538492640191871576289408711369884249047519105207448365351004345576826313492443219158440829686471617907265163806419383314319902698549556266543559660789532037770849592481114655320944783695300895072595109487901130597411167865623057250908762930817884810812372081305184725355527214630148225299683637063934599076497361989700759214963290710645197323062353728045844687350580737254170333310110678586337800499878040162236770389588182408444943035952966237754115955970663565822847093183120581945337321896023564830661974942709368657651214882873179197791234334227681826736004771295430006570860737565561676230272095510454090288914632343369577406499235684802599841413481002169343905384185003800536289209335515831093761374094082831109007192819964610023329004032331065818024266213784640665393695294054697547343973043432829048212935684779554640812801891822224974497697704874079129349614852190968959314343671661144054520410854693681981769545290087437821298452755102947897506853789732814830334122469977806859696799370306530381939815052205612374238310994401865436089035824212302169277797222272691537092832687783799085024284304687948797898280446471537158989562715359707773528815543370163086437218995163284105792238365795221414251134063561679855462878481362256738160144361098178114494289053088535524256255336921539357074027416863665314611392406316603123226727342407713822580997408652274732262651404629499040766378799583939872508335146784859277344978326037102820350808348661770166421266588765515011545266665578969304545606264822655921499934975772408970981581384989838145305389727504200168843881482210681258660044270340392978637615666597325690517774823791723969353368388308482620651494596815353663666833996518602388384634242339566638567388158844184071251890675514412684718493198769821734495154329967417973116393025304180889346645012535451588977198605229558592440142175570126940270480746946202750699176803973800433329951343635507238177998101629306974968573163879140687216695562769954390495615300836289615356938558378380035038777302124032246118474180280850181796378272970656351737917743208005236439225028447908297566674448580333384476353360656950613166793815228286796020737501041584011728208824033170008019748361534881378641125928810202401314060735722119666476985799596978968586788253305810634818371054195467059358372516144199680031624910898305343683432613961711756076225612586291170767786913299770344343705448751438790364024556033520205770084524013111918265224149690183356053853117582157234623652708812259071576271845500101855546290302009198258314388408079011738419221033794119173180133200002031730644291890719012259835670258760963247888675295182524970238927049833285287211288910068740150536336234138036860050871137049972197328117132416564519299556270770430729953489383730665447651171191524465412245030905510366749490489876076583838447724808813196949680931803445417515136507526127174734115482849508715307091277652018788904320743427349982508438391585986647336135611840392317223513357969057305780873741440865819272550506037416864160560977982594244418855776371213744369893124573140628699811779593735516147006586760636538754593864730337151890416073567646390680826216920539204282364661156950605904130348930393980531248386546665275365353283953803807725746489452630367300170546932159540434302144623393028728496590228565853221239514813418777737723692270670280840220011831650891618734657013711635644753429104471436613051487915935425365979070561298028672216765355120299663349504185906724442932849191980092988941817354267257786524587625039334414970154726246499524869508908846183205593403824749615638633263257911751351873131579004084430893711228010961676907750758289008320121071872327531356265289292336138311712795187160422497269224822128013004654467164706362976568399379549138014219694119941948693278712129511998156733179018956053689726035042544327823695908077653994047507567237467845857495075209494148547690535779574281899651767019734094919780750114445457271505219494722534693152598231237591118703373838984152867898352120356539377314595543526210053898165488116965224586531506423941578613954557312529497564533987800449641051581991478232092587585615458330006908989018497183151895972593365439884110742167782410605145331443944766969686719462274727402677170939728679667784796473124097880028143577899743815731370628678801327125427107006729327948179367622261594533523505114818152966984052378839990239279826545754048618911795779585284601169183389506536002710698735416302984464020580136678497910010954437482228518181579769375574765346673777029118562762659007350337182177431154848961261617461894445779314813999444740768066952349877429037049238087482242041312623013638203988878732485865043850159110318702203122872131572124734964293150168046128644130455173972173987031297549320582553824959155760644220918777204756938478179515994469226154986926566779210776040760110205395594602580480607839768900993217665148855519216851079009938158971962277247626880776913631726103014459889455865483963373520854516444011253956668768989543290724896632577269283338985111682676304247368742134789182256858519763287724437722394318480914960103038620806895258256408650538260676487307389847556605245279913636787393038709477662899682562186901369964987842001293453643567028074640600075058777581838900121489250118382016566408582962422740838472437826980969224618878437317580625136949752322228357325433481444550610669136427640717701348880246857139092605808379036433451126465208470292752073380709661069374781763213338578688769168841055696855096162478553617440980846160056717159703931616263467299443852846221375191308874149706517878812734216035688469473456531537143227436029183671153680762843092933191280592654347425940196159858510673216117084088292004829147458250369070050022876594165033202418408464517050529106739433902493708445892554003195072902641103781442224266300122936404190840093379728747145930690073007726136426479648951741437698397634363992191190628284520471363940087938423671968923366047814593909884469384684955973539765260620910694611805327989217309056677480482547052819076355259679624903117843863822072138681810857163775019007639147078832607706704871666867608922242531351123364917398142571713498008241802344759721429793754667805307700902302369417919375319297792231366428548363375844083677983565685253286808339962411989147095154732367025990263662673393360776449901522354018858725421173066817332025434862878400570909951702671409652728447493828379643966404938712492137903657569580902797060220373678237598319807202398988590540071215341441784951506147627613591974723332847977655249666899951084605259280727817592225387280848853708361401808876355802546111377760250186210787632475898535277046128330752594757578478752488381658555111152414158291899818795216469017807969420030350794296950286194528797221610203895671512483261603268249228147932451775937275093403206243280116653876553237847562132805923426347501226856851260231957063466026057967534583978231459321912798596045562229589154337677179365502610931832978155735293989838576874115924263014803486426277585476690261097725072382225228460657347399288404977878603619276033685603193352603634327454291334867799813454376595994548731183241455791446757967040095144050071225312753669162280222246912705178411219731432275043776738185655803935807616369079959507092997472178795284088529726962300193906241461008828259507373929906585793007528771739135984069697988284573439219930947680484567712567185637903531422512733393473576562787126829906822001835226542971533119953793256487840869877032876301287790627795860596752613862320973658293027147790563865763712646194838231030341361617877806868416126168739152306699384276099633810471868635293994344926655051887523332392032248682582224730695235860533552201671464794997870715189292808023142990099703502600997168203522997950424975024910055552612818462988569153220029679672217931470335123432262499499199808253754092494110308420488563380472241855738297339805769391739443582982050147522582675878153132853390307176897206506116555961299222995173003271626468276831320230348369848546345754272627165976890687710105406711584828140971032310453626854226750249463631391760329391453342807657560847039128120963501046475147909378088062349035857398716496131151931644162743299231004840099734513154887474602353431570275598654641993038198324010282712152944393684192663306776368801932699217678649297463259871627621682850256713881757532849785441886755261707773458398569049589490041583928179159328969225634994255470115852278849113259160782625139380923560012115698312746494673945757635516769880524181371126847587010119813704808427816582892125007878735690972935209895155761570098139181825181995139010338832386997523540530236985339902927210208488948056967267272956097895676895909424302418260414874936226852610946067453122705752951492549626980971530919793652497831260952087065062749841024840517462202607791827269062239528621082539357700917479262910907305992956759470140320191778131559445746612449319758273851453399751397787336006134175509429708485308002290304965974173464810630577087656301877271320321353387062505047973210652390213770919156554976990012294219796906187076737030498668634200135271655416171857707848130558071373114134274663092888995058510593311687801207386337416690451043090373525735637337813697744281495445933515102450559833356688813610800940678205396663002789831710839981523654586142280199663906165549067823450691546290106542541335124029818816561655125756632939294138453174125176207450546638453693682876212260651256168728407204824756893870717573680126587915692197618004599858861450362383996996465243213762335174882239432761690033979320159613159960256386668768789057872326059388244444430151192155244964844802587423465511863397971757739040266197969050767086504622030954588590392567090974254644036346161250860425282237375152694264776216375684091087523291822143207519646907936145546428123703414914508492037678356374744892771179626634986165296214159084572298555845377681110399136253481057368209704767177032169759395770919241834669895700971683222059677907471704132878473610782806809241651366740935832888021577162868757796603989028535048531052711639205653051707949082349897779846369411897754436813963824643858773290898965982184874034372353055556730609965205853196869731195959974720980440104155146907798550695243344500620227807794619513499993863172652429573530887171569609790432153800314773358219688169580141073069426904435507336987768686088887370371138739084770029831881494076809524899961500194879018637237592534250401683216659960448252825355478828164136640043463633681763468469588222005451576526045668308146389069158393339527521520740796303523949541212288216187379082717245590833684162458937867632754834744578997432113612173671510231898713569338459365387126976419781144761308977566154320703236110959838490859313578113041513743856890550760673544972768366236517927973000502044977231621466055551724998059606818162770623459341408476470208071833962126047510962075401847545174807134233007886189230804780665275778892859307079890022927514649349125159600016573641332627086369177209312056999963550698631534048982116287283549176357652582388603752837292547470452169877603188272773348474357324219212155366484642945576280146324162975752774976803826909891066106560870029391513625340311955490419824569680185285191962426485602152524383754652491827586703390471035189114255147672884879596278450419940251713724796683870424240865792156325587082102572568110039018713363746945829778959966871798497038452548660931461442970709452847080075822920670014538833696105760577163333231119681281680042353104321751203087212837866010372554992909529284785722618937481082765074225657047154916969384484707987183971147528213088009959024227816623128282893209360424791320536025097771537228942494092117067419380536151875234168482998706303394889849034345170876738417538787169737207839329161442790371432568158709442675775189921104199975936288329419173552049078263151367970510166459768085530204309987418272522763435240559950359116667259877167292888739439404088154667582662835280605259320614585656633753118647134486539183494372057108170235022980753616585992943026373981816991752378702263441865883314433822560931656045552719276170900350968657929487075493794186968952670044188751862584147897620207028811487300511939788107809283275563037326060841363550906710970236607709112445083017255515564810566931258632030129507968515669631102013346013429681440242255923720775205148401826668269199053250969981849092351383614399149319602505145808035739328859391736067405872955441989695946266691298199850702797027587024555969978406909607027267340466997903715960448214096755115953284189005049568022142477943886116596312056676840003369072754580195833416462749334148577286134120326705689362523736059659570889855576921249597248470314624194500150110539576743531789117288326120406516999487092500326265068072066317568194440386570853466083679951185063871363843726213703620245481022978465533745490140775840880606414720882432002728352084232303016821188528822935413692387710546009144671609933599561020766927216935196749804906857709169100782190796178927147982405791737922538534439122883547942219869935332584451854548421444581380348624854758796011991494356982893967849125786350179147818562100613711520282708703373330578365020069906122165600425213281712158406546265098029765706408765470194762856930048997559762243191014823315355240317367838678429327971916406124334904608151325204134758429557362103530197678269558000981744085348790133584469528234528299083295617562105024848204714631788093815918396869037239507483759453846651880855514929463795437731733025716675840476920592070511588756720760546312441313850522537521373084424465986562919597724487706510600161568533947176381769290765488176451754495804518698354943053931489930996391812057457936832722275706598285356377931891580840447105005569494888399412024308117947475048128332425675821534399887889637415465382689442640885718215847740506464241290480953053166342248055801285850977134467675118359902337524320093699237009820892980622659569235306399988595982074216710008404418381244196056248093170655030749374843294028225131114320360637332233272556553150007501602254213924758804872200386333793944949938412160604560598156446325296126111109161022793854547886288470384332694186685361544406177392043613583730402866158797429717718050675288018115745816317732797985672954622729084257405363925505512797208524254191865681050008836056279081344999287980924846762918407186412155565100119670182088760628553906666145567774700257897182724547208977264830978199532146194175705893050297221703885197245090056435714728965403090522879392403147553467993981916491906837784631068691379156646256388262903320839578490396815562015999695542044378136384881429690187141518726091162446850644392199040316199042990146257878266292440068840099356984191452291593160287863306834065093962077133740688191956202356551676244168413637356891094104728538120308731259620551868000777610829893202993369025870070482032005549348172814279161999046361841365197886579265657296364201895447733304807577763307885505533564181156108976844430922669173188888772911364737810875160646219126077949710072792591162737684401261150380184436992067824677719495721823720647118725706369812968563117277031750986375195570118475002066617061561173894803063594333520429411906506001854575874958975017468556614484782951569204092782627433508376425138259001000174470329165365873132033113852937220139569913548826823883875224038888556277821321516039305500666720698661137962710426968817153702276666416233791441869527874008488796718899896132948709785131271243680766907498119508453824814900441145769393134121023029141426127807486366408386819914618871418273821741092810027112035284026031928856575264302337529168024984745584691697153427894155800091303207094155309579369265458291429534728784519935319156416269745812523484109183020153528651222356302838963639386234172079379626515374512269769619863628735086430987508992373006452416148961699817796256075295518958542575373049250193616150397758157321114363639209489284888141802113507225086990273434493609158384208691731204815389588317608768180300759867908386829494260474016736754740950526730584147462055575047935022243523179805159980029585746541077681028156126639086883393630213940194924433478511738389129764667414775530296696246090644379894131271245431343734166688258798205916329225563741217135447300952044787279876173217818551506724143314288623216927163660038215272189718072286326618157841838124743524502583773759612877625003652090389079042523837272718302595297617127718031340024209766180149081116216361753985498520653205931730392983585878300789857194174628742188962945546809546586400743986169634859395640133092312027643495383000215347467493525894671089268934887417940336372736787917505126630764165671709567171671376710615106686790688465196989021540758811008036127103017057301012839710013676475776814169989891816715524471425507046781104548120259867489363530607552462530087922323937216226825174762528710008270259131072750861929963097427849301589454052410315255874982750492951008417804504718605023426619769087557020247071417826247134665009153862940056869814914433947261138937562504880766382379363728594355995149146966480908130052364754446622282592596375171484657256969687464033129580768034872654912207279505486892874552244088913481075518124033931193244081051604681770609650381695899570428343130552133491533867122639199678328278907663194830317596951580087776807800349333600990682195954376590303486392476285445764497683197436658984518933361687052851198959214125754183561427288360781211140986309865016087273602225954900420342641168220295924879801152901714740340528404464908887843875376621394754554857366044235769390858393643600174016126391938591551727664464710421264673584934150377794147170920560659793473114597258788689139716757280447363158291475908347146526234365620453521915981638064589804086447135773901097785360315276748150489123920018866560521510550329229320433463375691894239254923750110193571595557217848169906570778169173981807686780736504188959500271519006414886555852950205389873106864978566997856061195189184178255344232793331892386407069086214688812396383975437138826181570310665944132700280759295947412436528004819968133204007319900101632911684977973460470728540736144239972236836262126209930242895038389501042109167564007685408913626983075342840693856545449717129714764619432937860889623854245075156032988843817147212205321811544826924327331486838005330332192041684424137232822930760336787280006871754116291586332274335482456879079422787388427660115317085893647809460239369691127176399941230922212634099260697956597614448494518443321026835798929144001757232223052149409704779230821764893981892634168323223628697229962265534868132353671110413238366377505884926123300375301318018665364223934016065854180368769894882354116632812840340396220541966095214023012908510313030037896264709828839001429192867590741451504157500528220595623877413531470291040368198558132969771142209000872901166759494821062735930570047445523185583862549570745998742226209409523265304148665440464392289095436482366625491819675526819523875957412106786835384323590113817895537455418208891238531875607158198037074679398295759275208466228342046400317730388825098962785895650277730678784230216303548540671039140443481964413558867918242871262529120779461491027215640901455779638715621270218362820378290523840809784361135044741800841231707793250611634353375834561307920172091855658898945167863975713587022025981316111957728404521239961719032319348741308277932543887345992462334298016216873712149223247742576959916897896067193801447576793642056187170762717572913285060699747549446831979946880912379543122730874787995496206387040266532118748872437830758308351622846769376845283124431743886543677548388769844198677219763136008864047071779018157795338633044807008042858709867891816328672568939461599068935667429006420772772781899230698715151491063066796178186873750159392135378020383758169498448451807118756776859551632481736684726079012711832642590676880324267492703945022150772863674077454564340813049830237712798097249600670265758637206209140681488276168357359733993594895809005569663145488528443145210344607007008555390766722293877638236774816593432096377896288669999898094635073809414674472411454548346002700148930925585111714333916832489985955180332648788538245425975718487176007516778059534207530892590377971967330837562932366912637673789884946274647385277218111860621648634176235919870538671057718986441453725875838713708570743174433277838782998640996798920939167665054624171536594957762941595543264324387942623486855820896073980902627827098246558482385140600052984188333657953814972223503046669688646069204653522387093693992507841005666183536983164360688834557958636650718538445335522880104485861088028592528802972091744917728050399981807275547725825719644380449494706255133781058220626044947372307060717077835352811587012142598734354624491557011087019919303552319448526546440609163665197431289858615935930104818983971181815193638916103570478174245422275484087529793114033590167890340208252844870515547826386544063361731368540442873683933661487540800435284908420245481138712599267284338870978348368607232367413371292069857681410377844933968542844313797860939724728392265211607241704398592708123306959435077391213512357624380641453329633965907186926100457359659635980838507189448303620721191597078749466104279987742117738685750200251224520114133334069239389962616630083935521966367579796308229973347482000480426118049341484299353502510709098040801844958128403298729722761554081808266071122132862088516730706050040499154221891920735063143883121259480074643595225096242327160317398217114162766705639922105632804639285516953153395773964540022474049149224361459861823452957741809233730876915588456846438802991119917679449746128188690500858497624932718289183344845777174831299359745683514544765514093736416926584874602581324848627615979410345730400076547629529462799689847159448292693632908666496661313656960827202348172855339316221768553578778086112307855474485063704213079733083796226244219635969851507756880485478071113990267061836590597721491491124687103485903044952644846005468923123122825517216089787343476709390838843461796699132060362993699350759259024041011062972130645179630932005962803731244949237579628012026628491614374416748148502038441771947484983694009124833718149016178378791965697994223995637367519992285040495363636944655458234883848999992862025430407819773627376320311345405059265409596145416919627377989512099161010618315662188922286810696053704869575148475814405443251924987032938586975687327591649388430735811757792503811763688670903556542469290383463080186495334325119008469709529894399717035894114893797322656631204850365462017374438354904748127362120429067148219412230725895512233398452641179906666366912967026436477726534686334217286653302680301505210810888323623502281962634750537967981825189534481684565531100620037184691934219666983958880723357596188414505439313031559393732695873183467246376232962051771313744871023594547240220949792194155208087718456543391967897881887291423258400487113455060865885014869838022374405805195806375858452070679336652766041749048151963032522823801976006194824131103435253307275678232376889064581342431536336186460551716558388656440073827146713559062240561943951019293394828661776781484771291228692109736451609100880187592174383203286108911788549071160879955548858309474283514648484680198013120400813164071088778468777266989299845289897524452480970374872166764961913324877874257309263773842979702604824244243711001631120311953165607171705793046229225324346456659993854920572036047558159793069290159117549277244972866357522674690563686949097951911515735574212083412805209092042258707884026048811980317153736152033874891505179610290781438092143948030547625790650171400959375512549768278269761062755857172231962563533231235854415825092571829610142211992873807803182679175810686942039987773887334274377292407504554645391773214716407600886134148517928505997206778288856265325795751646077165345115681351995937384982758492425806506688878808278516053834297360834376026025295539535592279866689416759095409747297444317700075270228464444521842239061721183954641967189385036126163054302840882178405331909921043808188279729001347400419055242087478808133759539598903187698879222054872421784723115335184703003935100613168320782272021434837545541553315800427245678384844485800220367871317256367669218641150662378923986168343344183559389118227158688756080472450463768634096460296526754303413021711988387956058779192313151800722557844867235658780094981939706222112614705704068790138854293449901345852944029740462051363058168768908746366840528382401658698902262138977669065086538288603583202187848543976460579083161622178455086830553103595791777205687864161608240217750762122502347792904157651304761296761172484122587662261398914779126616017709998133759821608558764875358706926077022473301329260709401716414055549744263833168323984649599472011018791442586859720977485031707400464679078843848986756273144854624665029531409261543853510745660092975598524164489293194153388849102130207705190202195727891277757138522744993494735230611654898106022273153475249433723451905689105870762280230873912915535174564159069240653064931816584019755037091949336957066072309087665344282361823547978114774722470959917218749701552482442860975811357819963112986398870619365020327723563238802814933350616691730858115424342184183644675530784712121056386309813789191873476638847209459331150590899689868971133384286435021068528222446035943039242576899926594575050512372909001586877597135625060596988488372614312305210584492774779433969764203958659219250210978500401153610217423093744415000995870911505729115858682171488234962037890297352052813113786617090535839472861122243352169179392854794796468091507964963617759513710169715322109596116635141961155998586817343991741577453130958117098263633790309260181497675562230391908203304425641568930451134346658677074576732912761290232050465536742490865708363729067174713857380715687823982268751099529949406435533079346876189902830801059815214601979460220672247438555934238948082761159311167133730544503873158010955004682574137356468124799385936974106763831257022847289318185349550560117327378518799083653787931976009244314285531886598883991152522990551661175846877337670136723494921076435369797575173951416418723352408502495545091340701622226560768202711006153113391139734940280776960362243886548181114391324805728752067227777341491437159436018780617953401048340663358378905770292965625385969426814143584219574930578797258503599840128318555590328185334925193070870285810565312150627758715805459476662555154816077256046050540316002334174126701559956256931376347945736105259182994623181357086844074023078060056885184588656979520351456503500472373870432430941725900462089560609633488511475784757913094445539518329579462924494072876620147538126094912111996759195971608768702389554643426359559473370612036295197055333064035977766270738661783973798202171050370090004516472117038865489116204408601186135218471369004508786694361247156946432481479086408840570851066682142376349922598685267490432911765971122487117084346819706625303984546037352119003325451740518245751578385471853193360928395897286243360074824445249419719403282883862004016360180485906322451584556750123124624047441528027444874454451156089600973761537847610582029007240769964453613480279807372492262586406119141919619415991836614589752197537778446204485809647455790216218075094604496214033978210847776391044122183592584096103334923596427086776396510618446705029382349535125671563087728746846559559625552276254291153325204728037105123510074949575476729576238898715911927807540019218853776690343585375679983190584056093445102881896260018147557462959941861219984171741731927600093562111406358388879573209972294726078412392454846647517976340156241357733708129309841035594906765530273192227278931747438764372944059659579940395631499908151900607190330358379381205447932839255510472802184936970428610231975217171569850081935518537007534889581880507823774184519083594413928322632787303585659269656992092912591380721755680568204976264491034132638032724394598286283674055276502365470568313948028963192156343464386194078252190920997454868976587020929637924800679581025972504700868167303531945681581406075864488655797708894869902534729294719411464804518727754656838127895022553913314138422135435770679789405612645507651604215263364237357668062616428868227136333990434352846453327916058574437025143242708425793850646635469835342223165184339977918792098806959864676325119406719225951973350624440198043126362001432644576262259427669562194549346948764004578984323868783950133191379221242037005834515444999803700875663586941872279361022207188204284473687276157513264024067606684503428467282388745913861024415125593916600778494504055721374570561235208415723901107112600974755416904363762051432099444705829319934335760409755050869736001177425945062494027084093840361292347615237398326834027627480868212074799373230119800822550509250289733877154860205220186334487169468167524608714161099392912899571982313560625207992556944978641586165251466638601181117544026598805143720160396583132244688405365305119258416975119851854931168138607529203075074989614824278775472143071542381122600416928389510293196332768969156093196043611046666336213188774637850933609218264481533086557842996921989971024069755659101111078123597467981750365499848330771849817682333792118035105714859456651609555521984538533720154726758581399964173677555019640474348801734959813414461998063038379717854068926820849687004893790892314128331761707036783137417671615042027587362206197851832221509238130297402659937543037066935650085802844264609239582058732075240148935486837020473135729465907499263504625146910108396035743924228053354237129156336439462034644925711919118674169578681664889755631096458047637787745263149583440358246246482949792223243200696963303423452899670240050829544352222069831135360475890391968362078634921085239323067442770447147868091823630123909068279153572966537411527950986517280687398241540848397502919055676284298235304756518417188712500025347716276173041725437992414254151810636648041563049607053903292168582081389858543661278281502523970724353340889088580515603250338970093606259494317631187060846857701565247470857886296561674756470715639678264936527612054257129856468551925637459927243944419292182441165465190493810753393622722503296674788194642403063203825037342709818307918016478325306745185766490341553675129505793884540432620745374862301328840372608844843320078456860274020373875537967418471069479933124336225426933637488384039573672936719364126803341984403982448639077712956519589594604524924645082689003057142499426319733094087171288876617007377289825492188060675420943804323366299463629385208452129910536462444273658245155826744324077922965378422969125748869520566779487523375578315320844073082514824691183556947795816912307371274315986816715459953177588916642141771531404300821958305822355116129994275479069770088059892005121338730151792751165399587026344367209006607799863952221314265180609392084855748599119447767362019116324523053884281293115939837868918947364638014849989439622996609428267715082347163246868555372537510205565238975719553295214760954775401205750505168370036185144088364266380357074391544643851476403937981227262593858719954547027688682433159808107269220855786196261466196094458780448600968437173306126536449472746440978016555901707856121743474066945091635265689594209427526872845230608006698703004474581748428672214230798175517785232084070899202616181666808201027908457081580456995622593295883345745909819061721322233159657323382175542485259390432969445618457408149563475013593489103734616634238778702857922894472678406656995271787135904015126961960141878260999160148914169679387016340446518811948140491924416341967185495067703679535256301798113557995927837422953572907372834439774001813500533952113941116988500006460498726994276752140499630567146170462613065513450192819437418849093711904368628590229950143518690808225211482172531927003397892400981166472194219408377551353990252121758276218419005813921543323819632233131190430838175835822872232372596792728955692198706442082100877212508799860370375505362900539089795901598642854706080789339945683735787534826745828293730212265604330215510461860155353561957931101263480875102520243901814538302997536368886287957609138165814476132615256033522291632441797117883582371336643642829139947182474832393426424063557019424518815077837653287338354789314034002199287179986133481037012975657549242730982006659563538172250802254147108006007697484155943876924078899565178941531704338048350694509128546275661122948602382858106973709875857712185566249638005994269482967155387777191842141850899005634508422607102120979511735064037266264990697039451145837347490231546249047662052427399431099264372385783491136911678079961548930428219346653032212219530898862591251016570341068145616873738315893132779047375903046670145655170755713152181950687644417010766035395174162684148909011481793780104068335871393992868877724583123522511423179178067175855363294670134678907134995872569293254570552557332890406996414183263144395559818113546069835978110088920192548669363319171866546771982089051432726843534205173279515505759719198748978231960252663246724937104448067792286737215091785141803472574988627207470458274306063633525958275219695169147011730334130221693069057479421233653765692753447660762516704715886885770633645263564443045693739378925815807724940851911294344750870643945356989060485651748964262622940706213656527376979405663723241705630143754613140032273647766314045643963786989204149819198409377886375175604658952086127624232514980601631166274664953641279936803112807004747776168843107276449958675065338376797042712927299137607452341248218115103608127918998036173924152266945423466593307985142438531537316529083753009241929273010579475347881677402993247422643492258061248219322570510470175820402721727075508160928058693434475566650131172172358578389883187780079512560554480142398890186493814348637402428463723183310772352752529424642254985142287112260766058733395040545555169707116273112526542553514274719259925840283015965410661977567057914720633213992706624175603324447033230764805607767882275336281991628382728608860579978459785381902980802071059698351495476866795803482447036983119028279780236078093436957571964191305214879631755700740064187364662781674719245893949317150043536015043592334684914107851780572577403745664489522347906435467501288121728311119745231182490535146170015267002797384618957446036554328570140881742338493414970404178412223105381860001124309960612721373024676011034592204478069077640218290426910732954874417938501397003315094774800886435970918267152282653120478645587155635826549206421389524875258335536271788403307202331511237341908352493131583983857014107206647263736701910608278715005665769980450382826734602491378332621963219806194873394380056319891624082131819255583792954853758244622323380825854997017646438179886602786930343850663647515816649730826752079803163647202858435381999132383512374801503641243515444390992261078713691974581121607497625572595947215949356026725299864299764871988498500857844869306517239634328756016194302351688871385027855215224384699911048305750123365497220847433117541068934214397923766734160691459330117640825979836774160534737614088485623125832448866172070348159887710000699325442788389779409434663380890157335364606664683973276518783421394785698109312329622032851022749719763738417485182091222099989536062851601010597444977389991534461218898408376919254861910915626110490133883121571104611238051905897951307907088833054999437920485757020054019504141704016699628552036058305791412713948893095716719937883239678274131582231845215757743645844739383061133291281612262058441384301347823707598233799003864798649995106992229440748354383306369681380330738609082780275092253463616491613205711289433088131402142755639682541158026409958246082057192270238757323119336469647238489223239391866201621194130688139688537088048490831299572860028227044597492321619781123813329035450206115400467321090900925373065821157731791332846116198713037108248750101446404401410011445475676992378860593652410786508355131246786993938280725007046699373972381647961771166126310756903907949963878159163217784302681376860300862322853019623280244717603000360884045435185958728536381110654138232126784406813636853859307697715919791041279907295838326610624955527176098265057285888415965861511143524487105098262582757263967852691635485908510600050670343798320980104892387517374529898767297423579876430210651547841116105935721950237830825650961570287491443686025677319238351389608413784080491930633823933363163602748841895213501596495793528297003519147683606451991695240917498269895773494461216837370659738417397932870217946960646586818917039875049583151259860383994151607663701618522183699313868437247835737270050202247487593135212892206875091649355276338870972377770566475675994035783435126715428896382118264759603926327778650520998179142253090482300361896674492870807206530740894193351579801274520473751841353703818543064114190385128117180062703224584809497597473995457077753329112915943003144005597439526485758586693823436540018838699939685056772267508724962101514446004079160793517639555942374728527093942075377659302703323328381236783894190691883506558848539091418433228984523956124765691306976045462649445882746032656628651731674631063236343769707082651763440249391689483669796589011085005447110464010747469434359405910824160547379876200785424471510472840579873048327296505497463183919205873063418297618822272977732976379150494705105292089328804989140983878746827693328997627369048670446136915113063040826475753790132761279679437607791825661283440966851020761761790154699572854671306528033237721881379401840931299149607685134295490065117368386813272639887441356754503359685278936808839032615426105497362482584658328588670243825580646983805904212107768974869113840407452018618581038433888225529542133568275323723131531945185834668741699011931928030513898454085608782049328815238556022480470979885477413195725408284175115523185819373981296645643395903138698092534760831333908648334143937721373451266388691339658456386914896902311359476644159735672353805146424898493049997107494224196115788854410230622053784640891075474252113603732715644599712914143566737542463565071505589176628155749982275268272842153899774302414036326568602921819963613260872194645909617648357809570624885298923557641475545345026531171153469304227028825893616589042800812575116851134273610621296136830639873074597988079838469020102499093100214833575411722151136079143780783282563723855252835672341967667809648604282833373703025496545977752639705146172631137063651722883420258023098985308123853987340764128718048446673876509674297722352740260208035814638967265626707949667323285074517683896313067181957339367295936575214111018446940587695571801946528912047127242979947310687278633699429274476757346525301146204529698612219203136840259312162953710539772244514794388621840640373877146583620753702854904130624207991309088157300141672865894096660612576367560289567162310832590351515628870215514065550496405330503105950266687225653565527609207041345535514806833085384509996657931119428001994773294700730640735068048495885502652240522546028475856890576447881698440729549485469158997303070902829848591639274368157634737893438907638020746498101969560763202090145273909473223215259874501668946396029893743498501913104959160812407913848209723783883238004406026174023873577062153221275244613149971500890021043764998959680339508804156202783844881300201953394085702482897467445187407945403455348237264048601283140167005112179474740426495974762893924752792261690353102035009655777931128284322205653773357597490193879104223916113877407834378428011632660934507750628140849255142872175082560420298657949447973146836800635187647179330935304032592400395924011721057894885874834100867808490833390566873579609442663848846658160161988684394037989412099277749059629623907667502084467007953268341330973160071100467728106147377555633751458468662356924798881353739267061661771332375847317766197708156532077802273039867145255434268372431494998628755530282724286269944192961482004633377816565232660960424271043017633004240522101815765281846931869541094838711186946608231938549410404078304244984039947902191095935955564206917622749372839963254866209590242991862976267431933610769222912957689615713418830267901107843875219972544127393495505496527244780769296039781320743546885853042763724359222003570055961011784504080397593428411828280393350552374330430682098138195469340772553378852953396133480586874739068150231790326412279869646397069179327593067325465929017567661973979857071388981590863890282425975843756001598845601049294495334289592226772719822701838224938760161589464708245243396184329246353550817356337233774769634931635187457508021760640367780158404098506048370136978198528378212807665761253646307875926638635404140008058102893762283132404959460860543088442894505883183777115450579602452857676070076857439975881820314324548963847601549354407919258333416455439903442538209732829037902822755255022348512787533767024538603807971676964436161824648727699233656655565852813494475458278789176673907873307390098780446815643034693507929574872904217008593596550411581218158881199145709238147096230829543138763558785793569017709633898223102641311649895117612809306740560318154232305108045052613105961081958410664411568454133687727483532421063699357112649269174131522367101937683779476504903210718289410603308519655796815274094822385922379513769419113178727205382591703880619848011979228311671120585989624764214194069688702913192645956989338998283692431616366872072156537103799060834218512726042282605819205834803692684975605585818779160336112877266828047208299762343337939160968916303087237657524135717867559557215359135898761322822570880217209212385092854252068506733111651465637680949995514980805696850916913729578480497007191295227073696746790332487077982873245278820750019805093607373611771470705325762115856679605434092066302712248706949686681643550701575126164615334068243447860305463823856618214086387349420618499158241712777846834118201398876196088300833670861433629295386373827470927335308392087862388228327556269347743827095714720806412687629895958099731029727055518109416079714337477954079604641836713437397501332542136565835101089463907196754480740223485043401127451314443911481688009217829233251414475850597899158447850853767645571456179357975455374928367689465175365609104493485624939682479168621319202455035436143475407176113217894803612367305418571643730954349643962929337369086462171382891614931155816861551905704152485111211046945973914694773192334424266770954830334892990525671203631619068024951639912753923489693391477679140739429763273748700106621982247163573067568103859125323002792928224047026195312759839838648019071038437401669717795150980890707228472939091491345022003166103978834126779769811985329238935674826238675959664891774766916098112720164942421058246949153005090702361015180489697915550762084085623805436417308060825382708467460539132979711333819204465750455712363437000397340942689566420118103924237986994974232427470997496552160575081580726987997859047062187200004875231859932775075322289110638368559796566956853214155571982109410485302081902023088129005689905334593435219535017940816345969472463999187323770993587414279285127565096060565398624324919690016934529228853557539525923470804825499794702718728549826421717851430672755986487518977565056717412242708453099969364204485877838977138880169771393209317440488962577750112515018373073978665564615570934190629404073345236860851870390248787103367131825622869933463608154725727255154429531798245046852262923034276309090560563808409661888328857973665898379547293442647619582879147964787352908979803838679959797143981843351953207783433950644928385958456359639929207720156567219402098130193884045088076481683910132979530682178206574591553497133303838284898767642703385780559892546253069538923177548847586873035138369148204374305908355654213861889762088934125087685217779998503351382640318850822253937114275101504222331744621252814994146163877933461966612959780857272323721121646857030596684379080568581826534153946070318252988679177014122034808906416292690351505923986085139374953381017005853523428434406083645520970720934520593846133651969478711888363494964559979614535499083138877810214202274390766332269710732857980175413219171001822931699061735400208349805773791286041666121458978291179464023195722961986511133233231028004429137471462159168684408936029375604986864726962288064900323210050416396821000769486526779125808117681884061004202445159484212487386245102747270246202546292400137092409126865341251953667381164363614931873322877072734248257402893666276567050247583697854879277082204657933388333579493343685337358211759735193921976647937815801943372253985478154526401188754226439327115502322201328404773172138330437746082539413917318372407330352906340995021707060211153412050153440888998657437208614037997258175113960057928316208256772421891851814755049719935732512435761239687455227994100380915377116962437657583316336933825768757999060695078480953122071755362928965278021201648455523439487094444058556393217077981368523064150245783500194270494783726583052250657738222198119447004974653911186849279035871549292552956394033894598584774227153564047612636863180374480379695893251423357182257261315951971304813671678412455142100845877326998433626015933122328804302292011330532356222365684496827628217975893041191798336375853038355931527175416574004211755859424621673647092279255046527912953063759579477611814082714827549066076030774965487528110948784631460394701260274108600667587821513553782054547424164208078248452642821947163403351417716966429127886892988267322943162367312712182247168751213546231125858340842252237931367152331910340156472073754015662113971337923734670750331979468713310338472559350649956915294517245448824975888638295602632043542047295282998213796755287141782171099674218333858532843786434639459505634600551359100640705182913182013672191368424340689218905959431746118971823334713772828196854997582792800761885651646769960727336573869713866765115259838821033984923200671908144701863514736930399095247938647337399949231118097571988188773289037145441368441083522486998130078619261820785094004409461936565186430297114064611308449023370952255992461714133667277297106188762448204092380374599428070994591221127013346114674518403681534549153703614077307160621974744904994084311281851506152311371116485825478101442826355896252857554371636520965221048972755169015903622135725991328508444454313770129577764844768600866626325344754405946763164934332313769098750173084084700666913943913309886097329658074082450779123245182398734283745270626961959787920288179503953169885569579899218110524710558004141494452490455323524370232988424624299672869006876016037019472333026146113438153544583801162337326431624256423581017494852130267131804387079580274394188970790625944890087455391179846802454305468833745556954197892482569400752852416158164729934352862527430876037075699454353325450776207234703874207825942456073543933583535375414653481693685078589273431769547081040327705738059641293016370210451125414696038836714333374817774395362651769158683360735870832946127139481023501693152990706369763984217899574696141068337169248669591957997146974088136341786936584078452550541944254524742573395884937457695955294334205110917399809869401564680456926408742697929286090597452846559006573523168814311787880078635991186149358896226992264929758279103668659794424022009272016111208212811134166076129772523054287266030464670853317724984569383201779393636235793778514548502593742724540393605018009744933364638255724994841149305049955053515218533739545942958954622777211763821091441921310158502526522480289235304329446341245279508760552586564137441829344929426589382110896003266461243670125520923573845875820897453667440352702590209638779120624513111645399363703660771331494894158835163664941674053251161217644410976296061349720048067787408644005076066774299258564999045598063593041258229865141502755151864384729451853780696796341260297357730502072146375280036631798822154930786754863175035764028551115078887909875871475669987640694639363590523086654751904418287064523629514732889924121033950445583696132888123836751457653478187060671734251733237000814932662322161990886451028714889159530693400096903422380754198135474787110770346659543137337643854913835197461423596868251246209805251846708734650645551371496856893273798615628484849202666723556476871255314457104085922972161125486189146667801324548182758332925734572744539310140003853614801597354483200129337641077358968179212950758718996520668791025389743244235733780798007652436481079029157881175758831982440920756154179744626749777254043695579010870460361699455428326999395928768052626084433463399320206746394045513367176869273672774431057456890370273541927018111025302490193889927159235001010423104663109171628170043655552346638975285058425184392307632313761200556356460319790758271087614266237022983991817331168752861261018261410510941087724735396016897999055765864364483986689320191624732904549587215033838343288955234210476446982751485294680905889636637629739596140076414628135100352138669172818118020508311082868861275005194005421123169594291153902210610225896904455560723806659566030890866112215804249241014179822029765097653270394020162418902005902564300238929299400115819438912363787288468011095965185311923708759405541601003803821362755739261367160181663107946770350095780013279059064204015495486240893386520835161190223453945937921358384626623145731279370572143343191572590853933635833218260027836014025516246583285040119367898507401938078267256198169805318245552461374858271279965597412089407303987777174725361787650833654201660089274897308066693123686975134249195139721590964245106290120835219123463196666698851427013667571239858593361675210769724778572807262820560615093027328342735530266631301281365285171077596302419275453118626090342905205214835263996993525605821654871793836273794041009627593364261575071485856339527044112157156042201483783743417507301263851526600962532230270795672814751207378498394335549155267415678574065358459033518318160826145403176110941651203577676071447684971194380370206332940546455832128578859368930407593248767135967459940626654682307089008575938052611937575324996493819527803172663395530827381245527815981759060051879544859695554232546780756955838352433469445666744101918290245230438781389491446630148231350610000379877910569257766524203475455291906541380302112115033136137849981785270443985080759307010447515315231106126310145382071739324398233499092505754108543412783439827223821675785043937973802914859035563455868189577298207245259514267834973188827754050750242979320110257087670845648655217234592623699067158151108249969745087619267643479539951301352368002539728219648537026384871758143931573216402629218797811815510508272787134363774420327094101986515422519339335174028624702847457905031349965884675497196365868659895645382951674606224519387799920324700793845806238569807251134992431838272897384253558633047964439163955298187231844871122553160722132015437381905365947065078950646349979764172535704899233114673048310571549316612006729992050207307191293596000355443365661493731526906465861490209256657513304388174793631317408459119901346190882998371378448824062107367178142420481583305601570311027505919376795981649443935699920707861218708567100263292510681638261566626907916855767197802635157443953755903233565491119878361206809180625826553140911673865668245980502707719638974973040123596217768658781371426614588596165179873570548118691386586606230935027297810104357706750534711922771846827118553352312381778091283359963024593574186027651248408885239193337489863945127655418400548727223386448029907866647226337748968205069563059617588643153024206981011705532559106797778130013857190931929572222391288634716913090775170003257648352658595361887975972447300897699244258198457409019812745598226484023040291265324570612721937305200679656321244410162993585740068329485692568998666508337984712269212771053234043184935603960553002878241450978047150645484774002560661031958431889906518950488907168365314805757533854774961010026042647293920593757018078101718810529596510924185808031547867505207489992415848095481678968961284078258713813094812289013772506545362124111909545788917305397173390114282984875391073166190794941116178550247665763702359110317461719628470541210006384377454353085865874666041725483572627310500814146544471852027739043025856428205389268394435782262050687859004921835223076168028225258824302454932900424983917407564017795778764962783164820466500523825854507292835991891241917533447565450978198330979560634052687084213816009733481350191194056092440573378685270964557811176240454589088887534982088449783703198832558823002121833776486380783905241044815838665684300004681951993175087119283809955167209506224588558253360459363080545151053994233780872672401733196732708896764012272581254595350750721740251189016422403597451218692018199603079122559257969840027307883099826402627317445480635819354282592726850869471446181990481320736312708572333231608137508025859479951653754953371386441470126642075293342378824347257156969985920807479011040047286804863538987081378252787060349346111207830790287450043255016104196467757674009621948045347801279579725217135224067539443630486317444569402543466270528832597276088010289094123515124093964128912140394473244453184287049255224831399597034870842934659927927811266321122044282457561753077872929374037669396148132330457208384632545971657465738943711009652535625953238585978948877392104434589928906178746598267474693342051473417115474295956019041195188066110110545251433648631062120787955912101333527774915431047075560908046976997391667655690782054846561425618334328723387813315490245503653336145143226294895287222589598332145218952914250557313909975595099518908636484077494954994295551286501493492307033027241617146258394025322013710896697615763853865021889385878556694841757363848339883270155651548994408855879487094294130831139598173029310359655411943548487510101856887968869307356087260451920694013727594877353317016837576981570643361796425809550400199123895673436019880016620042707575802828238852229609907723895599886620822374399178790732367695699519389581095001568443140169269139305532384974843289460496082396697044415040568698229593919007103619245762449443601768337900711525726507648635938479261083605083073110107342269353219595951621964247937408530519917745731605377791980440958821300751657601030948350234334564384131420191794932489059948024906475594762328123222930904644196714288295899409750945447764346680039260031934518147424156486664374676896108373108939427786105310098609011154016243612475918681912897282959755067404493586040706832298789992660038341261542757401107623805075392951461098125009543549995635327336921779604841779012814000741747610334913853784037602548673407896340188889495835419939971636745338788641578652542049316781972087335948518131168920300653791341964819264474361463076118858529111703296849390704837646249852486347593128118936948742124147067814589031378562566317415430052847219875816958168353099033220276969924682819184997748876096767862420303112829353683137150310213514815469948996781834353172595804891151081342784967297511527594100274684049161743308747222643690403655610947164195884270670936836060204468552346227639140872869372313552855189409062629532515122322936850110517065549241541838186893233102179313723163235407560109912711077415974514255388530199117619568158327153736825234596917075228881224898217678577923567515934025428379686260903388855674181629409264831853944194951939522561367630565907606588767893181662801487117954767212220796010475375502642672386178024923801049716478658140002822933350682189494031333058659349624190040060465998294055700782343377685476570228783608532894730206881554100526414387231627316138122639549928817526880856834891645682589607997036354038817124231864489287855992295186701259637021542494574786138157195300300302183627003915307438049018962503092628597020853184817141132206649048859992707033343944319665180252394310305053705988726821439702891140377089723165627144890231771979692723939864250046379269136027043552616665593595839905644935765941279961962963155240717215287261744657286393521516936942629785288237731885919952874973841558865825668716018801401625890188031168922108211968179080690451915194977858087898381276790450449557595929884308364049045225263672445699414749037454272828928018449790101003784566260491198765461902913676919123157450460652589816141927528520179459336928538233524324173299413757001774087162318311301547383481241903494148302062730891501290309549410351704240657429141409287286616623366248331098035269901948052902353339529716305076854436838313784205569816974058175694182775720582225204257485597525859415008425990923235844985972969173108828988709700790526728533437013833301199001439370508074880107843082284609485850003325526481608684133804572702020197035560857580860443298216086898618301911671731706676372624622702374332280647361244734238468882553138979996011840382083220383967938152641697244389582568866185906112918781870021585816803405653077654085487330362135721913290633709851537372330269819834957562320092943236149190774129585457519616688973996040661700287328557249327413197689475413092149758788592578142941699285445927942557241574069429301139064949568353509958687551914207718564932872832012954755890146188677191567115359732219821798744793291613803999759557377600459726173653406550489380025597023669966853104588001864461047224441692284779396390139731987006241007981927561660150980803562261912223337178309573758443676438343550976202129709069885857575782127193096037003876055627361469398611909408468896627678655270588396221117966629775809871903720009759509197374556833999070225327599349626871824462833491461819353806150248135196819340206089875632944751150583046144862853952474118788913295540417758696492978964366956182391578548131872255664912696616695230481895192656565203797153206164018583778465529890138379050021513819581945345321844554248783684205142233997959683782739428163800648846030688333386410799206057135977744202736280937577557935218186235093103640832029348896210275516991131412360093107375352118521370920168831137175665096553160834424931982119516653344095908024739836480722954717222903334204316579251978079494432043159767232428054861789777442114932851174107734406488318545483380538901681539329739304594751967029807164383468446387137195048424766454812642927787354091431559620952439590086293885940616022429740588809032028722878214508875900908506976068462608778389246620497441447092185614305258077735148649043049578121337366167662024556879842659073098067625760719109135620371462470809842164876812614387637350759804161136256559691814831264635955275153655883076882845203958343290632837418601612893492227319430099747613302706630144988358996921630329728687228191710655214732499685117886232870129048641004813257433705143133535194213588019306808413471879597446914678816134090594780362747628306162260636219225665167051848953843670554036860455375279444975480814817006776104313682565743595419253194919842312717301759113450622261891231275760086150516183963025689833815451747420172599981945561851312385881109591523093982208164516316562391766833253048903339852597783410031044934849693877797442272444984310976426351033192139188584320207667003836642728906316654299645123363309448998879571531923816531522864728550958907137050582840711927777231230143804430431107385360017431778974469216738961088458306850497361447526457819902134430309621881357289438375976561692267487464007804601339599057806318986021155100687480394492675957272744393338519876438727627472623730261410032936911494448457051068595173596894225179995721505114403711973285645588093094833115074890365951041931029376382723376530343154572646412535212696719972082006308130068987251921865192896351848950053422186285774962682368392386113040344589161630747286499552612945870952147296967341347754073244012159385147837941835665014931666481200727787674067394617881274889574051772541845461132428936025725807021654482081174531923911151849314721140178169990913645279238223250595192384741344995230468358844424181236625629753680091532827272708360249684400759267517735520806518399757183738125761285731931531993497054591474477235172696356400557101837169722625042613579603402197541696432343302491390547518966768037206496105296682611952861012579984675041722717866825798501966674261071077894197887812963174263797530369500860551085240553009412882204793538601079525750507206742591329379423470051058760948071552782661501147786658881787953620790789455912493860830073657936665615673290456218747357113695015564952818186286158466521480595250011402819323759453752980192231192941561023861022522144854364287826182286610192209972194828547167552809122025542623915056340545574787665956598689286844538862524600445152517434209888170532879593269927871525115169294867324017338786033942182486880464847783697014472574465679255511918285333893463934834403704390750493717582834076690833589110802966075554937653188069268625759456236533062408867054088831038981407580979821088245811995954208240575357953555574845168952368168929922363605575218921347743999508003732924952172734650277606233742357100571165004182989545324485151499389995113449489113308240769515505359730734820958699342047683368194202138411662435093161098816469405620265597958703821861234102003750381686072195140090206690167277382672105114268134140908766318969896144266974903739139366304445932477718171823199405509700033694064059585489268039141839832263407657872944235785496441794868076726941286265904104093582084974306187381328134001582380987166834890345712499935851316531835039127189198560117219505718092908829077268767216483740887951340211882890714897050641961184469267288843459650464213277611161493585867007945110991036710517854969981654559563081526199452218826382665475146632649580722590074198036371115151553606705548090681191599144537292099125478246642844196488491589804398666286841298937640751823049513572703839665796732610985738707511370954352573928260262891403871731374681847031434466122745545925819117984879557456256222420363832053111071100960103178117145082401388826441544341585791983794465443883141816219883870144996204831230436070230464899130190451671540034620160664836511623773171315385239758046322709945664091448604367637929675537179939959119741487194083861928927605161126782120819073408342504700197076804392422489121213339962441245357035386674414023031172786016670341410373065087666687858913924621505282821771630264077066914971423231848796824147966383938261572080689251016141637218999514156384766410087003580113045628435714755150593693788160187639750975842699032277310495745573383050541301139213474738305995943757779273253612936558353309802355836492173569436071148576163356382694214355712276826780470325807292662309160382824585679751102376352764335204765547717164502619552197186681195635356246129063227413673724232722187918075795592754277915191532094803394748480749055291261239718639269280534949037279231906510485046153462564778779775502910052735036922742733760946377642621380944314291837816546139430112044537867315146809124279447770071726673998044265419536764593694016151395752617550383736205118742304865710453294884027751753626098986578636983586964349332209146349619614964646645759540071168468463055634288018664421150627838500897429381413302761345753968986661347282973220453283682733193474552646598250429753557585792872547236949672524548894237518939510163758632893158340098658390561990352546342033710279175686678492909793506172378671332999798406834414674704461809960459331756813700555805724288287197477799179452395452250024221821986672742776055521938488546456462866309555426935795461128632125594311279343111054780806517511213178173060879487552785626241032905126221713142676311710652013209200471375629166344337103627567758583746374914777245864576037531435015233572945277737602893462160764208827773127248038287867390952237211225529634820488383079724768871552631928628672937185151954622732581276239537958914290203764707509774253545326482218093306501028669178791889753508120931141061106243997747600176468274311768303595834315634682297051021805167278902466727231567382147085169975292565701671452320506113827305935287277052582051915463630080877838809212730251342414595518660873377782340634949520596322500369072197047751582468653595263470369294534462849168149953313021406900220717997300028430965578215071676968086527333050740055511838268335659074935921321041115267010894817381764424236623757150173867265304284713999902067745186911297237213787162243924726063111642809129080734075672416140814593944010833220692156972798743035141904653387816997706720026217813726330139974013785705182861349560445416730456689472041037726927497230473439601285550266609157632739711964834829205321870205865646136602398200405338433358490752246654149312732218230162958510268644773326456084460984429314060478418316387642475967620471223750909787536491139514006281103362168322815683411465310795586650771080396901079211068068672913364927835354125479584299209434327227170242418291336497992275935677329386042133587741747390094369250009160437441306991771235506326009921654409926549778598271709763322107901113566989933193345098675573134609825238232456929004629751358340945619154359801284003307204565236683147809179283992305235627138200275220974895734652113916564132187871611185994813267190033081521869500062480738811496255787918894623297878577536467429745869950247218077937829937315907810247830435915659555647269033249710750764752842958241907787355614051322167119929942042741767401294116242663032742114501944345266729016433660838646067969482901689330979194199912502985615833432851844193953469471413899626950507168236016344284943688389895979549718935781110478919904901665620618285387969862314745511747873672607631294852114157114470867378577421311004351549046064961463214715785209985871520357062789616946896549354400978813278390919706277609559240437325770389319333338108092591219420983969449063048623192766620027107537418011335872520074694582383119955129532976189926036362860455541319259802268332145178657160549870895687934158411846135728036222707319405099948655012045099996054930895736175732134826829381757915072471870979314189404420682662247008588195384612680138744176183823964399595958845834524269823462846209457265690444523021370159560343822289379396482555120782545671207253994305775960549729704650843027983871611723998048449402050127813707513219985036821269787657675950955999112609390145207311081773239979492509747119469765305302181460266994751840776998415238062949611582652240975543666903829330251816563255418890920398677541894352183133179532142620257956400563469595383976282317092085029775506823989305962261040053922769857798694904584345620084883051009451151552019663002762457990216763252719919600523851688416224875124978159927199988479791432861250738314490646440265814090956412432992612539522383657725943682581751052458532663139746690082875181010121429091053287633410738384205446226880362988511434474850460335100170784919644826727111298736981490494186546554987049826687998081099762362520253481258383682572073919340716512105943729114347335852809301716649387346882747919779221301338219313859089592693680708732525508972066429159414581628087857146909390317292492777619709689385951914151331165437299032390728877158186651860440195182328877779708968312580790416793417906689915869885852566679472415108265381016020520952441127867662021677851094738560790183043998115771659114696972661629230677651990146455663798255240591290761405343699808729230364079171875872140496869491659636507531235951395631893843896969063344458381945764982929400671144658587590500043502701101521024251949507179730818217348916982358281212754708773688354180212313200606697173893534072003710813578101790581761523264243216599481176159597860323573267669515894890450062689771064913439887665619313655445044443104038104615998943529251523843444591021313037312386655825707841029709707343024538433042624984818879121649284783562329243687588598771909850351967500007701597907824722584189225006645141346542468506090294906709741453562766656133341901510346466262920178461045955305619220444372816560297468843979199639853716259842519987809002734937380146455760921976477318960608269460739492635388629711577135291478446437551949204637168639354923250205887243792270382459304405972080669867842074225470807338745477110707234664185386828947374947676622374676864671172411564942745775232880278605425657123206638675561599784308216981631626451834285276114763309320902729020500183203568787649306749102665651978712985968871362586526208897764026371796574529936862246435349696278180676692183836045348534007643405029747715944694807895305225333262894965428907199911059723318038997118385285759593131819780861363925684669303231150332011492778293810589117004297288914896390276363123657103027274967955887354029689417269815621233258970588990404110441554945723670007231312463869576364777252243962901756552739778366545333149153250368877034196019682496391849323706131821887531881004682804104126517222671715827532550907196269801091780034527999224420631323754224629484640111940934769319867702272317226386482376522057587967297128106795130421160442733306579555033324391360253400489130956792669801094272945010837316668187251045595601616503803614314233468922180888098858098045528100662455661956513318954977781741644422596514417088479118990347717751242889035343851325356527902168210351052327165424846316818906174463241468636999385410058055533487834244390106257383565687203491025712935536166581848991994715232523977888844919776598814156512941697593470093173600814858939257382002162951167419405132228898802572528764708787315046131122592999023975973713536248234566939363597521980726141119380315146416945017961038048880413258079116262790666690169394175724438090511354071286667048066766182791578878440067232844100256475768761415949500028750181479163639849087270200615222084809863364652367714366930457467113859552213961370126570743264258132804493260562407284023176153222020083672743446527270276743022652524791819954324920117261364862555202164762181602391309980263280534002337112437959372352232554466385265600997559759310714196526869085727887768906558735119740649931412423376878141717509618446698155854780735486187451172101749629996295455771938338400273028091482701884808554105555309566529127386112055357471161532854766872862027203038256118256843397768243440247349497325186837460128639007033816443310488843301248539297297649481625728610028635729209722006120490046878839537269482019444295228605675020063635942347146637431033925489957358095899343235691514615722446359002404612951804858223394497147318212330788302653639362091564764476246592885059971966359441166683173380364778943540491310009329636330878762779754982939632778506155426691389789642652803938892306695023966254448989018927508801632166658641574381957540732044526053852849528725092168618649158452545310139575286764079360675222414665555096609900683623656755423802777130970996548843227274557599415247442014310771664494924031102171912762282000658944878296791541203119048799290948237870377805376106682196066146578281484939000086726175134975276244285371320884245130151478136158845670015829641062459622345156328495117769622078446500093154198001941323607661622143248937753888637525456905071961693222095372041297301828581229996866763995459741762942867331909268180947577962412673501112392484837976423948100632115398920074554155291299579680077605133418835874367827960866311158523087288413459249621368254523154297288426367630232242231912419122220344785173414528836493418706457976317102147902962033394963826276140613599173431393298806946475840808902636565798470759535013256875412184078216501633793300109297709848683164504832909356668366890381615538842881083726365689960120110603732496429115928868511069553912186830516596265156937293465588850610425865650475763848964516217655157907472032480408842360909833271255794828432223635160270051635958717255075064596200775312360664087336535937019558148417053413007016183176751290021527793424847849069835014725642342738081294992750288384286649827772834531528593015580825552578443551175545221445911536518580966707934189130790541892766356701389099806503731768865295439978895815052356920651569120908395025809631214223439252639166018588388872018520580052829563018251170670943624965204826485686050223939254085437075042961961846412806057802910101862834749334548544947221715902272509026290478160845170766041423945792731012085278274328456461401769351842820888263992021806344904817840163588091502279338995915786808930239867968014062133903926356531969557157950677829007122446387541857669213816470333310449494867318862749935063786549380771444182324489431501941185093206483324891182698721859818657107003677838882006641517586736341354238972175094287785490978479935267486180652428407879759553648475874387485332015580783434389104048585067343632281152542806666285854308300507173052667141732306750946117786419015771087618961446202150314809620489504453793841300766491446513852914359840437439979154507628256774937328365020483846964689258164850309665395550817372302340475147848940385789836680281824149689641545721200966786327682822845571771897947362818140889963370924868222995767903316334041579712362379043474977226135636193517390579816078969102314842544488321930066532231121317247206897239393733379035329087747398904436375078521118183631158683211885884334849020036217948616709041585863325740530688877514217383613865621000390849749649209929780861408865366778415267467813207805491136032112351854479797213448350543002782764323755828247598396833470810714768122522594502976889177188342786078786417636312933949930906709329255463611061539726369761674547058243684063086414994696960543298587979723850588060626791805215743631667698962686509415687238700396688131087881991983118990916722390170959867923923751167110893410140505865567659134252976569623280422679878884090397182207251865165151263029386461972957286124416056072605390388545295367189354998163276850251233881539772198029994181475214529218136987337486172470371581301012594932668440075477554468014191317520850244843292041095017029106231540809341778880198480723211875746065107908940664951520607610648929323452703708687200719469414130109570478766174611373245879113322300185522628034775247884733817597138357992380422305639413911019825078550320726820012815912515061916129203150234983531888410939696327132917867936860007195350724008793670109240829774889823300794569796550515414625197282960921511927956947212888820820657132702125199553575903466652455524458397583866498188045716891868579179612648809158864650511881241929769382358178873916482543280399210671721167706047646240001981573608333709915718412898547855905158943960691152480483125152161394508003435263589909185361020022730142058163881282061252216403249938034713323834373793229269483361146231481346853111213455638060815359774644790357749175417930962645008176823213956919141520001552593150708994615139565799242755187319271056936027744270132231932115590142813146334389476088989361820941220910088733619997060667215335170389288161204741325144343125331960492163465644141549227307021894219297909447410427331692994789061794496407737750067261896758171790814895515745266144651400825878140961127229859402825285325235565862148842454916138976272241831338634518042196109789350991665562543919167755348517560140476358838576351491536974668580594826748515730556734953624092774430313677317329976314836935960127330030841136506313948715479011750056953011638616558068830768945598770532970290706769997445502600148990951127562712147341076961158334799047181074902493211446006068710054885487299997198039339053854609836168129842274211853756259782274896755480471997103622208838474050971159306883061045231170533250450314178288665686570952079678070120186893782062260030688382422137529139567456750495703379820109904026659789609013368985501757283734394675043093897687123000532105310013341424507646230931575303646881178913427703455776624343981472755124786622828715102147262609286668954512764927774339085371219566899418512578791735071682000805497960210087378344747832681747163705760820084905299219945639549773916617789756290265388365223906729757420715289490229661635593711881732784278584582901948514464483085623199070292450484234737521516334683597725724398495673698107066409208792858847060614409989865636298074100203019372372561011274422093388548352829687074268771964432633114599009096968459136873465628930964303807062259934253475535937017055690764389321999821084820546279259269923459124640853063027586989564395761444195400376551280708662876754659591282883213832195396456393601121725096671857354952780182671061300019790419263009476855523864840792690781643000569965648283811226352773597550240484088895128979477724754318605202969945150508549729163408441195123747171077965519285777918618112777295252818502910313536268221791803522113462513178184155069301907522299361507601740045291749837124203001339335843642556346871661527033121719227335628400187647272447570391512975247078951940756095659744922138656222099869048398894137880838303137329769804569660940057389709859669288968532036675650188391544843534851519271817060789704504509765893667678522514399427383567996804304612907964622266018006952156610494199176519000698325690467797246938539367025100890986019483931245002341874533715266155882593403637453390368859405745908455996516948196789129696468832977784530924777074711499871451402108764797184224340553197670704879292234883137829522331524788443212990821412269576936008014011540779809414455730812555906817261238457379144381249573433117868234869338623551060023436874359271790900162830880065265346340113300322633408859978425319919835892375011166784834540772044572172398662161133271435369762864589254074755788200882074476956946776889602499386888947942364780482619516588629233691184492948545131663594047096972300138384035020738252209158894345645450254846444066865953517622330103736576341787556111822773248283708312877030652691319224822532050217177119409796029807050150623564631264694032106478975353218850609634863932834428754694415936799887625137050510880845680955118987631732066210937938030403435040306570775495943473939074832386620728536581267094746964455258360259045686168230714824690368886953646924254014562945112693787600454063664727527289989000009469816140980716586666521147202610081907864470356571023577675512426435242783932175476249432120980562750488284402747572131347206986858515132047409249190019603984899588468011873484708640440219589620876014303612322797667368867266298750580283729621981085452699674031997202541104487430943255210039179742489827981988741324775900314804305562734165147114821524530580324169785856054369762182138851402479317287533013085935589845690543052593499005766455868160683795597099081036954139318766554001961704891896689403032371288281579760311884408894063263015520985581650700985791351569502730002340751339077716645817419783061242598462028282677742453169226422858862923433359918800864487799070075802314803494631517761505653876480135476371428563572370374869769898186926593454746580747770456706372745485553204151140472912917866685227857483955727688151822091804986322987445099628830304388376714592106203251856392455092498224401524036952979537403878430592942599482104521335934241455757966838294279508305205749049620655231523680292918002402384270007713073482496258291727498774622235747265563061233100159817483284398467054612557279394440706347459176322611657324671380982190108264378953914624072347182460599009575229103409427357289030322425922809263309244939062698021473246153714538983187906042284296570699075649579100759716353023548085495375953784577759110371627187813365750932338983548827867975462245843581539040886657642899592463594619246191866404341226292489624424641378044422001202670674348576565763496909653786169403306962696173608574530973167947030714528330256880119967245437700351127760981413253386294276603598669229710872385286967250785936349127253297838995707071352361622622619898386200433235736897415192554372748168315953018284345088504435473625290332717128222450623020723469498224852725646536205453022973385919888172807446505862397965919862688222835366117697163669981095990503437461582126817701782755855989583177040482755099974874602444368804271898068750569120868012609026704054037340040333735180154007802732681242396493661102618219782187113049907501799880725628314956504394401603373633055920027268810635591190150143033026143030376666166899470263445391408622240210923409664672008698753592693293440574042389227598200935820248756871773375250617715893194217057986374676669618987538061939769524627745842649248709830795893105934834300317156716681902555709505693217721800064300253829604489229314889476369720879042050803350519931395879730782718533305616308417429406024155407894894095477843265547331796712628798092867187895962275200128681381772610304119931100599785419784699997517125477608228245398250293563949771172922711762705628238766712877263471194484746231535847265409577235693283594120686222801682196903453825454225907442912998638829099555130034175345380013002167086839466247254683266904085930988011423156980982277337162335443934132509778771142280875601608136045014437587043783996964780844406834013008425798382428779065078980960775965455154166555087359287071874241005016229553832461329008655723946575492133137997933933147858411555330526559867997476869255555820232928450759028767817522866181336715593784521456902392936078872911635897260976526003202200597825743297795848492562051086067447364214872969178085295622606230534036192749634283263321720993200824645900464504544432178080745027407163989855500782499373687694587936153201012229762183385739709605048839131096795856560787457792139451085264396791467556183609611729981519983664841098899455889948123737234741684005915949479694951974661529888599852511380652245073574125896707432921352381630463170649306011264107877250404872109735117893065498241665208193982344089138170115068101054299374474067516091720957859131945183450062947796711059163081542842952407492087814210166761213467454946698361780897361071801549551736298603552260307430811658499980236516568570205318570152141457608878298562918195939573333052836045481855193769947430208159200004592884420040089965792218076418504804165245931342100686955716586485887512795243369962024135213133466798639846530737172669739246099980600892195723097695067021244067440990546409110672605203027982150716026213805136223085742945128889794167894110258453245045909450858316764323442358245206480675733201534126053585310602770671273029154514013355526851748129591688060761538758313724489794372958788383753493485978643332836324890488621877945428503322645658676488167759158864492503215577615849573886288979445213027698729537061591300663638333540108239126932882447856127893957075584364256052712974568478264093019700245321280368085716129704271280926942973177472060369036094059931498413674681901685448160686482484324135166743452083363797970888275212968431754846673242421364653551739700140689840651923415291393605554895325842398725725940087773340023563312527350889628642214806973241776164753898817275692557915204973205682778896241621638015219626354218125478238805157161607389403630514006715996676734130830253722141772917279280557455240745010266888085570544176754465884914692012405353042624498017005046599759874449759279345438713317716386029214675613920460416591060911249087812669542582473694551407829702428190361785983650182682025016282087104550438847024836928339344684175571092188658072319613098638565155350634088324607488981740253223655667337375347112851620856882695833840123018461933381619830039482846308713118731370433814802695150268390709839405610629734801029828247482973250351317378741850798875996744140003561269605286560079909159901910634630661963686717964585173361612587019438362903607910085981464474995319534386266424953288219197517003861937135897301434096017665117837972520248477823442496857290239352936609345577901169941048379494301989224762109557359485015039025748390714119254670391739482971434752677180842302799115220889643644110750416774855569315814930491903669117054577424736639709305764678623294820078329149405667942970298463308726339828747758908165742247012715839230993912365696574426610626176129321319989197229451247913088698250206380109372691445118589004366083528859488628868680433063138905685271734762398834881938203345625487597262890026168555231638434414592617911369353298167243938603117784280620397203514612677456540128319849169421840097991632651313793587793408131258267539818061123472086399908483850011168169063650265477446064158682691175900553624885905521275594699367518088112869961871562353289236170201939564401584734798978258622746319502493562023017269263246251107953519382442215859138152039026563474531959956733299386047031422204190374517769888034453485950816868695302486316980402295799230435202896756962986834292175059596148756513972963218661575076062997727876435484545423914815418829617710588126965386372443498682672531254553659600174290594330026176220457499583823834981911120802166757131481473347480185379072996349370887323674481361744716776730814712431923481456277614050854874529848825447481432909497249015908687682589561408217521438621874165938855341789051676593598849795689827181388997818948306934902162043414039823315907502391881510097492921478008537492981598495258700014267735716037492336280046103722849834344950159460873276661039652288791841558756084177918640114717585656670378860097303047601671742948621844129202399661417566980236954428674942410187908360487435081959477834124343360289987692562263017676758243912755167018111203582020783985012309560202301394974724686808469224643974636926662773530912041935590114509909880411614725253939679177506095834716731759037612473028119141042684659745698903202257406921912521708984373396722838410844718710661913621530677168606570938849796830718871658764707800039098583125936241487854832232847524152718866158993594496710405797522742086163297588575105092637500010827828949218661809132189885022012438348620074391506857936982630507543879127571911556914754822015409046345274266999607004462685770267116519301332178013778733331589177291591987046402972405900499260165276720466077450902681632874226085892294366873177965929170631344631965094265156818465044192682586944963468299443933745779713879754731303393260154293156339401317824701164051601815786752647652836377705521688844263625152190461382294527160087973857589633897698477272499406414149202336669422923717780376085334452215992733913844562473286912427092567221748862448734405109740453935092373945201150356040421460618243562987206816971182908664992812158148692046742027530686462009474588298115177562758664595143356374081233601031899082259752770029772678150617634788471187163173745760664501247385931426180682257255663460021807362977479995750002338425411789126557463434396124388977465440265320330496387948753093793337961664470825914129110861549706565127865559827632699568355731528261704809394375576786399282138207102466398407857117358779140426823873228836609246723947830292322550058551439020189544124933467739314598577054958998804697745131757010247958754154762950186145509930072861650200404268334645519864510907971263646501928768017946110784708355132500502422335222842821597173051722862807422097537996820616875029089200833296851387481701609443051391147339376760383619514667870219462095358447810684318064009930328935377574552262109465415125626029784873479105394255413146345843667561110279057380503279422642842735059745161649733376972693372966851356394829023790334939255110510170648897803659995792816719698315007890174871779260892510284635765312018344462144277332565070039459156253468382488616493794867968044539601520774776518794706303564855340804201439675366954782229796559154337086060929737878535207459727587091037595742165022478704209330626993608838344351529783181311114937811055439331896557682366327457169695545512383003594027123475044241020219658049239010853972811807250528918194764062544970571096455994951792423408425977566761800021571814663507117037709736133124884919908230162922555352130855701358985597723017152580656860820325522740361149579934211713606658031899847849464069187637451920334535386767947138921168161967618553982290604418376926126478916199399543543322282990532440056180472175996719649350615576101605445434000068214302752798697680306052858826137805579903123053132835482539692627145188017134183724110770162543129386670829139194363102493732651343647257276401420493667301229260763364725054092734310019199187062079175912436114834290423294068114696201422210082117200689968030003108635420747599311246843557084599848458502892240054597773913197846046931206654699204317706576965275877445781784960459758946250938231551772743879182636345017057492946034468603827257446605641846959454968580640382610243619364485813208739639018840075711225658912427852812606928314312318605719684082698573383056757028742564954348563836219934035148885165647414310892034459249985951578107261525255047855865258031657019333688793470340394173780022973976710147978310409783429624218286844902376690124914982788240061970912798104197032527160776094032322930071527269648284708296120142024695818220498753858662575752402147659328100235131400063020036374915261763093804264881336491480952867800202911114247344544234623875482663359986591440413355296629332986769221316527459478799063848908328247264459717014054356105467585694975147495534320599061703791915656082510269319715099944618537772130151585052951869472216790826682694302909842445787023554136622489795379859589610777897792527758752933810930759606604113998030451666004200315169873189487446288028611748387636994462574999017822675758769448100699335694886557421461639195947585201220998938960410163901780313812957612107754087187566752743932644265924581895711054089757441762411682215457876987197269778308448884591759106638862168146464589504540356463938988698507150408921665300847892360500262850880664709294770125059300544999362397018711634914553908772128553350279671423840970800428787383863316113656856842591615899594407649005895800638334111979331527796639964615305721256656437599805115771267644850253866528031619563456105332325091237347527820472708117816414394389595914646809493038045772273786644057364262764653453970242771193771700267283084638664470542019531566405896838490272929190876614663594044035183690355159698911548952014619220434740942748529979462464242605948543538174987084871568768096273834251104125701279688834025782269092845592428166419562860915233936030430741976453186873462131520416373273128447850658383192327951386182314694235883146175165368319440597176027287944713057318132673375504343638073893176467072223120559072960675278281224783794003910292176543970807673156871296499199853110074885274555910483665341002809643322557084431014252968620616433273612377741050888385733251676687643015511206823138106823767382869047135551270598235205649384026490624853862161469504128206894252433611918931501519316041907276031317832117526858538661121884813388237216856540787264199489860461897070061362316938521022147529780592379586133386576391750996580645721811761455947252615804578668236472233357581239166916894587220503760695459564994916831705690136667981540825201228558321293833773882641169045850440751238760782069867504463928521480170306563226601027574264677245194827168366314574944564917815860236235422532575271728476572356214697411143662953938350200383483884569326733888101897451875770345004920145636467775515813321654577498915573677273656786502646783270157716308111981443338933432616247074460611331493524419595944758940821931129978158986687597978972152330607921608402575096666341135696513004263819078716692650090060582371804854774956697204302862118554022321801754180388403421498708564033199770673883770106046459861397003588065205260733601776514529061080728919286651226627571931666810099921306171339733711203354936621229077539481212646111127026484497256558356106299500313938430548054964814634474205904377867831388778326824342565853493708090520847787542849301936635271630218472685916079923265763095816999182243689995155905106988626789103759552478668468337510580626139266782819121242287440332751876771811011167380470551386033202480086577655472950618332955761396837425085015410745081290977274684811368878039981747182940401860998806471298118077265441295198362538083529991041193844506561623228469463150222059698557603494104010446386778752848752686340447901787981296715249075977643263921685426015283227839418682097536940001935703254142196362352899907882554813117783449078199723891296838877499385242611031253237527328841031482019974416497855965262671941194057255852494076373548151334998409073405940304400079527861151931858254293551386051928656137779681288662438736360954738713532796812330995522749569479811210103105028134580322012714064423812757998411648190865995605972583464617976867017421162203214905700895010851746356241347450344668015224381895418290573053569376493290282455962163545575211982847991785175049983950473200685758138926240437097881265650155040741214006659283120788317888601629420915562288976920087491768166928726854540770629978021380343940876334158164493421810573482263751939846181434515216683490026859654271634887398766661856291946652180603320512304616951989550087074160123383631481706155200440364862543657109680077558076069763224797173578291027204625567180416094279885439078020089388223512103435285524483206827706724374863305596913792098132048043718987928964349044635010983958780692074363124495360044048769385728829366958800885329343604678133768856390606275439718696251567429552763203096511710274185540151462943049420072703060696815125637410765144382054349223468850615865093342807369389629379796309404185964892131716577576459042283816272921409413997172931053218232181944522246239265469810684163058335685076666124653532338896068401668775760206573974822951429673558277089941651273852681864014662647507366707704069091332662587628105447606180197946423017944519262997765382835524326417280523089314711834842469740109991782121761778736805959800329235127664427958358474379726695507403179776378990825281467295931179849643937162213496502413246777258582266685055252655552726154609234036856416500278534005747157419145942733289199821038170748842886306352192468479014464482473174035705286316411095305737474700706312301819175821810032143176839443771020327979330661319309436505255672463543481951332859750289224146166739409283589078207323267767975635563585543567732175879126720616037273482989742733411708936331446387721572302880595269447702415481680478236080247703002713746931075023767766032678061115771701914842888395070137371088218673622698944866662606193163853758728581297824569819168427922870957241047947489884404023672860640678941039434738369288098999629274114457539317990344298297188187838382669662827061835736847315390214227440375483201630815376549167173484122852250488119075216007003742597060756829687018188830556783628332965813613870274508480645103737753787565983395291701974194569033555800243110377538304578264654965363651551591604189940022567179092707569529684649661087998837093823276242280063680100625422432592040013176271428325168946036956501890894597678104549995130694918769815260174226880311526316127259177105760415478139958393148412116038841783662009228149649688784238040614111847323723981582397876738613277597866462117120649913514300992853115880480901262830638045247914843225771214552899566245398152082198333028786174490461633172775507765333449486094913367175730384771844695748970024866592390418692561370874692245636542008248528381191536441633760318065421633240460682014909420470414700472534998154786220831316248582678956370290409507020206186244122449649337309915657264121062340924695906277850300815868155655930703921440455713939758221351874385934753077925041708326157760790275512967246997064090204637555235509191844255490641308816728202553199265831665145306409927922584480217604392097769154436819804484882472876123600174232601579358761337513409286569855156981221661087491352283134060808554420678195372910724566097403411951066057183439071141896184550695663101876289979281791122932879398484129211330717620795231067693860321129579153056883731907337148871485114170059573597726028888351501727756075126412923609584191842971114657391266976179326295231257233240037601339958469821421514865736169630188872212157053103297585079036202887244748629418531467235264745536039879934968775586235588408088368800199938953076456038516939492598624519602716446072847412476024353393395978488518437786647984089763065196805657181257781448985894719793682110926175510230977590129835695310397238803246958440742324549756587455896325256402621207170299645690419559625378598652719785258072117972250667653239025997733130785338755516579390572400017299158328846699663909345308934313170616113706461103742937386599219225014005986657078428974581526573721481599852022305474347613098009327760265996258044649796713367459020193922580776659844571963525353901931225716945998716226398750710255317695159346441437378100881830917001013706501996867400973715731738216530648713563171106923404433722018335383902357693822982256136226233912201542113198319848982668103980234382315709795857665052589183894818991790969238513534242286016388705823493944950971433517663167559298462926770027510540934960015357929485808157051859400983489462524283309935028979204958727508203100090365555149719389147674589285409554495511835656150682926780843437263780690172884304803484854951838008130577141144416877554225806945559311954767585924605182039851138682945662763731429020922466532394759995055315251089734961905079812692074428474165105066196493654447965736881241924685600382645473737339997468739897676735944761858192296907714075995319103677037697546418141453139235574426264515476015844503563000536463906686232856377063412397603030903326398064080802741692910127805489489295042809630637431484389157574594535846198823499700633991094984853713002688145730305938506987155831633389414698727080846419088819866669515324595698837743139540914119668409012295996419196058930739168063197098548894268307998740253955164037429956153221671105243008517696591912820458840548263199504925818849954575016110108706325219420302768710273168034557918513376603390956612543969552623967085496825866559277971171328602872941650916517061722050397349331412389828637783989740991489347006268045061874642931952460622986660378523338739596252002895013460909514726955361797060489444297123349682484362493576685100158930391893285270077012063233013912336083313482907646455102727043767352781808631921186094365035021292195432828747869216153528868347048036787814519062972754523546155644366677922590244136201957617084348155258732821958567671755052858287247804620837536575424799314703679408097000980111219387223183339953063703708848513542504902190086381345427257486111810792298567276003735683016652039721533579616787438002584180329739430861485317281793593666697014979690414881209274768351834283822452508928306567937317467834542340204125410913634182224645090287852957353286700213136788756664303480121741191297352102301073931555712609506964671314392511356238134190573565670223296128057789441180676908742700918158525676764481040785310621827232803585876986469700893219458022433812169677062523166878542048536442323287408450359765967876469467373533866743640332109741459623352341895951578628056063689394879151716532780252434659129152606250864536696408296322048775764350493660650563861486375379743350549280344845253334249459327696938448146021763395636197197845220440040119405971431686363058808541750389293771975259850733462803285536498210800485299856760619324233436942510697478544939317161163480168714548262187740848010743818141319440425340828756357692791840169122192755660207350886719705510658856666852059504681928499000700962288644345612175210462214183964020963861765268451518205387548589313802968359936819409373808909767008025182168018232993097745205129550838976554862906200701692085600860226800891694505810281187129806003229372545302500059897457965715819620298538619780930752694422857606375253790942851713590299060338566770212099327447675517664887280395778432616024557278503685415542450334333507520182053685083208846776411193786364628742744771141481561688839740247463235120804058647854726881316380810314791589995886772701114760891072240776428815212031175711881280847370595779364167716814231401362564216634272822947511818462207317504005253141830520928199256213582961003184346476092375415113003155176578668978013658513184329175772797012349524268203905392372336767523768736543155008426664197925802542798666265654171514360360352294260059881971591003017600310726587073785034006007613357127636559039759810323164298561181889091533636242531843939657665500340620617483038152689462157178229385727772681316405524125665921234451631893670956246859727492842008641991224344173236511818137361812837552596869997055212378500789274984454141173397243238408867405453114867574396738714819710686690944963279513698710252707596702764472801534284833969351788500177523260921749590606308118955784816430412582296008096462796825637490094882000683235300531633413271742454291903778399900631275797103206000614497415388882147933620927413872263744917515170633520920395738524526910588062046897757309627046077629988352684726322143392380911475581071630127426960721651462675633838909128770592325379359078085698651893803395151154218991564954951226446831168653157007401358004036787896162124196388689290855612132762016465158204755577634867489545371234568431395094782255420893182093868616273294322808152914810338769390741841801575210778254719381508737810606121120616125688311254418367343315903087026894607254976378862943215529979291354069437867049838127444751143907595446825640326599051695268182834362946417441041148751302357545647578908973518023387830706621504327316187259499633610039280750844969756051186977294129349444564768652637601212715878097411936105706733581208305159763748153277653565952967357498039502841862207461452798231133883071486474884374403668386961462983718474114450997254230997375280437983048253454602917603785571419835309684780909760649448334945153485853297070991841441802626056771103331242117096184179809184194655150682992195716782612648335137160363579637849743656969696078621643662024560476525637123733416642507042661114491312640938064465071862969294350037796096106763321738014442599507019892750068507689455071253219808489634392600041668329279165141025473257941455282823130201884861836401180333641003919835715764385571635957794121019357856925834383587011094975714407199881174225665632367797473397480984516466493427426374641600304201777987246762521079504146804276690671087630842313268638493651576545851662638662520686150689346916608703437228552549439710162220533681725376644685234290767667198066429821712617973028758749440526150564026096685481591573888347154720126679791204689501287211282808946043201343969712567195993030767425500390339242131763096009471756272979322576365341820418131175698674128482134052982849839817423084335280758681495880805495340960723127882097249902915365188550598718681693117447819823893389008370163366112439416323726259363581561670587699022726810901471661537289634911351160068362626598778902713003058100039380288041061233042307602296706944048833905094679315074225652898150735004943994268546258858776161668182300553762168166672542689936488733190835451388631236716738773059962078726161414088752294739652920281797002172005464975401433210817465912768859546223015141902638428962943449750134911039180271319084322941500216976813231007812199190745901023047668554127709692394477850126054451469501495298532361133488670762680259209206423637383789187515166402336314925053902038973375597433348780641336545316526311849432919755472053494140935571378158914654173526300649988459899634406163822899438251335158823472476594251622579608506823163826939340285166736828749134577905309336417956430003454725995920452370486248795394964640903862835207901994285478259881190978774388707231880438012607156246056398497843992465698493986259634389481088500029003248117643764791110483541220476696438525838850567525883628548390490447497352445221081628711379289713170566880628472559667205331162718832837109777519308551300827766296751196702121564944069771698364652097047749695139003136866907213309726384776363341321958853173859329103407014208581557151207389292119914847311415505012057492036063090185578030718607376468694565004187205792376104521018590157841086877035429903209943670315831102973880829841860362175972611139850641357614468306941280319481109724325640370784206859058163102429437342902104988624141935446056347645361607620087901083366214257455614751786692234792711951243998716620944124699944762292440202607249901566835347100190630689782617447938320893868527812887551832630518457410908836478485131220378647991998601700838276323155187238511711871924830195191829254428593993869048187250478104011823712765654534236270010084029083780025200547131058160444663896277508603670373102125120549622939681378219957343049181797982755333618673222415002332543739545227230532855285850302612073675891371110390399613101486166247390272279113372654092362147591736853199658059395635386591430641377810048128180181667270356530403640821571689390190259655508142319784140981018133748402190438191892175599929861393573781949455059284776866886765556391671212621844615542301580759345243706713661342971628980831542454398560881984062395982234358490345384080329537960993528726441526032991313567191854528309497968729351930441408394529513396232385617809612057889669124482611737851909946566830341367668344113606279600465802169287590600513089442073367942129932694748977774199235762909097504163025782082370412583942150827466851328598209941727848470716963759870523262767761950871021328716778464576459571611883428570154898252890005801748451456039465815910663577476601104832358815439543327535249515608878786027689560535241704834957484631125043565348722522697982885924772667164192785815249820660265643151065857495625855279179940647289618342219574893998859179648451113686779481707730642037563032237633493362792293572736017196731112197926428543791535762924678223503237723508084407044689152259455489412559556306714837469938649015144594681986686823895667027148872642161967320041134640870926241086956285490588549441849920264772125892303092153969458916547323300088989303217192749562671915558992326591604556440382888893358056026479128587987128383327168727571360593453935945645138064429357070199488301638041191914393131092940788319711395120789676367709678326812230964720706187001365531799413275237968764068759034865389301992743859701319049639704070503072108486891890307899600032786247428218330261309860738300107463922578911444067376975724859823191373056492797651708200940806245881263244887757220028301677063316257716450480319272091402161523564237882289199834210201729272016272468796140358897664928287328936241976576141353821479905553317656105814201569631704132099680550448992139388252140577670085497841859799546388509845044544177412402936043793530103634283793493377466167048401250997396714463394400494502672084597411615468844406593724793503372198853896378930484005164211586606691059614081485002121926072136055318793899318718387464514897880886458905056309475697212058071238986420742912807758810649574736193994219307250375850886399212616331048593675099769588781646539045931134461269573455386119038050083158847018009842122737925946868923544863283681141850584873361363376064242311211212918809433045815070608835357350657373355795679602385231093510933700009823858840236727843839124169060276695662222495359013774465663510806185026599175784969710002714852218635922154603366924843025039129766320040690430038515307365461040513487356526122369373311158398741803751964850729485695119222322164666927073359283905695373783362568504545768262620115260711667628914162791605667761428406982312388601730724698653891024092423073426091164059911635718513573521931563727218140254724872965822169719412801479153428459508267218906403854195062430157979402830986226432326616092545138069461800463861741316900090429965016851968097934121288154695236135002902204953708920879461978276524940466906923209818829559782750623060052954801736342992433470714141811564981469751180485103240683432281970785359368928847613188920601475653576605183908744628758080376732086604205450466040210899077853174172515451962161137666340484088895340567052623036244428752331966368427762753643438094472020382726715350532706083177937096113184362187935034384898267129319976222320328418266823014037426879589680037294961668838025408839227860139870559837960900017453156675023202499322999010176415772007144810899022869583962770675016621846744459366727755287220353821748567033365184085131789751064615556005594637545473154064705512377338928390353522594250059676519975143414585973221747247721939120730334156118173803190815300077108499785634305990772181916828220931811616585732423010945981924431909408309147433638684662478751250693093612671780484524044297046089191180058888914370035965170228556865257095747351568401810990397522527473664813215190161773950570965613270846746600697942881594405953733700821022451237669305215712718547905320560656508123805673649422700364609693354973343648925064562080306691899932320716672584418533100041287104293675120706279146711630918288517781866212687268572051949081103612143553824910347583974413200597168316433553772399624072686647783645402848940638461413890409908702186055245769698645117531109370873293957101374074278250669482200557913801441755830414013419308733152632776029931161651477860103180423771171918584650996452633635603475048845250786778698440961669281239960361437693007078659822015406704478925537387250985986232620740056934559776665283259794225790488403968102745129126515581553649052717914141728962088110527133258523259430842441775135430691034906024497758505227807107976121593558255832965526585790675270850487340670875419406945050263346773058666216224880469899900927992115197597179041014711400537763390058562151498738764707659432267980945074693572872117180384425526947004912094230514697035038834100923218239182615586174110404153260394734332619998345588151277919768027743774680518253164747050708887920920650343349103182039178557497369555677947012888059916773841090791977401570377524956731989932843337367001399268453392642636704772808175229436521747792816098840973090642136396352228869167631996289980362021970292355745579065887302334308852585220750219748818371126078272301261060695583087628960736211064998542897563650098768447650978611423576430630776916752939925115169715308670705404009664043712570237580750357701657028372413431906438818030019909196471126430847503533376424232759544626573612555324809141741578741848339028924686260590334258948890813013380568159423351514982467475071855456556074055531116263204972803549896262941605720525187571149217960100082939772230711858548986326352449670327907104223379233796856134772200236045621329218867444582951571653011529667525540905970837973937592415512338907565406488568375216228153740940193098620699247633866312951937388870708130373606935748653575378066705953758794424734726263154097941031891919823443081389374279180526664114174608156135754667395525660573054786618343652044647967509352536195365473321287574475078273185818314717672155382987618920003052519637902418225071728702814299096498117100105470034105870163035517405092051581774180633675056342704310385185969204000909691244355195064958547925456184432693896741333554461693383350871969957656228921634082055799638148659662672811166733416659822204153659575575969324921271852265824996721693404403714666622027667044631641570240131042213855897165073018456315102826975728428198812288146690786727097797720015278851928516976846515278117152068665069291122566519489143465152900916581723446759740049986792184354595123079381954112360345882907109260822663718034407142272670963319004497530585908664908059812701454282485588692684822449371931408739463675962026936368149584055114690137753227851279182744533356550123291165772963491930019068939615722290917516659324786928138932796332979316721070341298515329592491176928568214484921571590136343834189172325384882840976381405921516057487947169732685700897753067478074142156073621460504589305892196758252694933177428946100508002409800921545264209612996601820667105363730857890964446556349614806651475101120762033619077886999018168256551667866462248880581385196616601209950736579314129435147268736055912836987236548154515972200058889349268089486584024611326241556707414120563211307563487375698048366369296189201451159796752083461920076278389564128305230337637352582911229973064353131054935340841665401737745131713761731632597305668692447877928084248518725090549377862254926163193187025290426017015845894824779143721003289134770807723684183449275047095523021631842864355119615432990229605614071381003503102386846207624811653314035331148653487609838664658604327214443851067149676545674672547248910223781052198257434173077783546808826997465429206446590391126750724830920170783020941308398529760199591455134358780525274842466806169676126004137754368940179463089137669408426853108231676476305107964499682157490243978739357163711261672669569511812407532141416877780184621782494409276449284124520122776188316096517691224217200631725780820705088249489313936504040284524069456171760575926640459971368910808474704619170218509355158952990500706847705614616614052036560909761153095160737224572131980089302804024071772765548572754991703660989158344131260286105858827002032690251147674555400598657083337308337359035811245603059418164168585072875913418184843208221889901929046379623928972046009996519463679988763962648967944655705066308507740846617338508077734544337689841467964503094925332566026424197055718978972865030239862839791829515746317119315958681676928466444854864147630725550887693750320171911968208390428691696761209895849232820515604806082449499739670589545780779713640488310095237040342908190688404862363545327407767905117953515632618778670645024963941296853375775220875712453748572840559232521371935561568686123753167924547471322454343902833470233041054041721641198119428930476420358677252025688495067624397877937640128815631340953587762517871847714553817313216316267397358416594920477968207972015210427444162756509720134526696321490250270726346030678125038586079589415247304942350604048016020469246020814975996326398038158541668208294241582438025766984798055023820696089466505295260710882885655079733957069646682022007006500115392005023292721861400615636406098278556996940291658092471330364678102574906077578694991803684450102530849895336473035859594058866599312884871627886703486976216315057491349427077537083236470849045891535049175082236995757977485697901003839755326902285480990606459484853662223681422466788871292876466815132122046260306943654228482998837883898452971323577104149372581529632718097183588694099757340363054864281072253271877962386767285775829841916409602229140592079270795245516177412405864452164002536143784086740016248693354955635655302829777264032846108603758690777525359148209298367782186973870374510359217027791653822220581714086703635805362399744855989914316451322948521882720162331064234734827964449497710824992563159250702224147101936528828224284849810854234245699900467235450739394713718949135336482624606580859415762555830836567807413630295865070741690739293822068971460569728289534083465313221094594934963128107516836633124012394141388440272830892542220750909237803098206703501019393314850728503927043911808296659374473922034046931059540504580034692005572805313335320338945439181282246197158241037346377436566621462800945657812402793286814835471625632730897354693829414428532567161775809389923265608860380188159938228832522264791135396334290456633389410037534682460460753720972086464988217718855456982314450027492515477405916632237661528644917421559587256942593203663443441345566002254002012559662957890773947412818437254346875698472275026523850865175936476736139993361395835470685471769604979679599497053120931371508090983196813828540569574674381583250963669656634741422661482807870752963467724825341027335838316298540099809152805880531402516169954283297976499200101480910319057267301212999620267504195125193429813514208687595129595355117155497399557928307966420106332060668626095237222480755346398160779553998545144005395026419509984112647074868428140627608973373171189380661367202442193561682343669020286613934569931147292517457777508727396371979969501882247076752847973986729311843174174013994545879323924947038950067400306424301191866817826135835922478857648483156171713353550728382662034930729974313736376341803552729303653426555387632589064611186172312907686356649199228639267120324154729534369780470279267195685886611616359818440622920378627595772377472762564290153765148758791396633976878096394576169692696944799241300033305575916694010561224803033579696447153274578113909542027253459146281932967419178159521536988992698532764322169615923762847524836933206415507858803530934127139798224256749800292937644851341657166283092813260405946137517046886754672354964225249337753852294761285375279227154249348450692989412297791183727973563430534257787610805521714555703947889142554318436884629123719422035791596301098572226108337565959345706379160497573848738537383831562450086253436219167445003985965015681286206057576064149342790491478024776210080893114141196388818619639422972711877596023421748248051078287912616219459478864197144788909528494211411053826937590423427024322162646118895566959487487933454251973277727423334590337832654683643639823894810669049749161354101400482782055847213946369357436453732305528347778499723030479087591517711964788214172176171562440820448391906486352336370029784955324037488383899441768127700302459248983356485864102024302031679705425486261686802323763466267346814317571774506486270175297559287418833866830130602892676481938682776715491900721933646615648386117290919786508913622798455537173264965838309268463565228841378115544221827700500583308206482426160551143441468193743212926490676183103767983106774855134062252010607045623582984107957474270913579060957659177381878442365722174996890238130066548367627646551148517802772896837472312729623333766760746907118189020148648215129201634240632413990077315794678795259251023354073049825737391428571540283548829824915153164658693359363730720907387334729131389523845577476977594688832209522927664479556127666993209014420781141633318352188439429513641740476886779631790055561915900061336469954427849887072310260270228658385137827486543640589998775330830160402896925533853558295415993204680040952651928872136853968165539154858526541671867078671930425627706918530815080646376794741599371209929263536007552732241900123956674240780162376582949659918355707199015958116806915742975493008971724725013292739118252469023380671239704146404665158498353026956753912296964867644349223655406446419664681546665238070891398936922263552346463284736833028975899759734266179696198092297233984674011580519682791809481333063808653758570715108048500768811682208534755375278194293024354564603032582340571236219507032188757125577649192784464350011848702900886960700905023187739513003884588168127008317000297295466849953233482167385015154800810818505524292281583595454198751787635227097880310444385103104727454195928631410902993841454182099594059982413978970682147715896935726747401103084338519249658872302739556886155298827794384780633385732528726959920660006513723318493124535945651377806719088202576137451651552337392266777704920130686997911359498198315032690770439430721935019896196983658665942899160386826071172453946743250569528846935707569091312564316534348377544510804353223775843578030388058549746973987945572689420546422125765587324905585125183678005258693663001338998058158555762495020598295832942411196336345282164514248639956306328594142918460070706887842715389762070189189498957770586478652754542900900077100347663038283801218472088189966002829169815897023841122139046566202366527049660735025212777023130672775872004682272847157680725050173618827238430796086308200748804494691727291986953286865955132844030918438804321442342338399513483810955051075312823095016792131361933928940454071695681844572621524551154222540972944879878913330596837110403554599941931230246696927685107369997194441775411803489539900105371692981710262508697433296304086415409534113664507660803436377106027352452328678741695708769267892160816688869199531208901932827341724395557058882039370384965257794573134471931862072813240957201922592637856311259261696795334466526770329934319908186665460162450101430415246347033929112672142956161910177642469787883254846659879489685659096535097284918925590705484716256347009904856917970536406656847724132121458004441945613141945131448649021861908136881127908978356178186338256969867703838418203436014487516679160154090970183834945737634310356083358138529265259329914590549854731758812459216742298321608160392513774443928563079956973502342825926825102449196268936039143747300545962882326271943190229379512628320349613333899709241023433943044674246400622032482067702056028897635113113717266201994143757169270722830485646955854999076621718815862682638420010009804306942146678789858096913100159174166397830492557510709305553485352844857100918942698897918717966772805260134833117583213092498758693742305630859666160497393955121945767929576815648197141011068373284968477434569609220838341041476376006697514862147374573185651724904874975774764480353031439551358109271054703710950079158478455738347587150064571412517852934696549659459134908980164617726629000297433918064506017173160466130303270172404341771507912803243791814357622122709616437368576465060811405762449889321958455485921726043098817730421410312591823460869488096528123877642664804773813450702557859112737618142660779376793777303200516325553409381212507422400778626820146439880079860308652866910500724924068667920385266632375512317418973487800385693356517915819284368825712922735398412221218901054350427552786264829996224143816203918807971988140080887047403445595053588735193431712107278240347898233341707711741250182160464315266132116046674792364970807048205002387562997643122177523040703944405891232223802574963477034900204168352820716520209453536598177111378148544700044549428144130023859103224635157905327758870663432685332544729537860429981612950533589085887384922201492088298885284445257319045663009896548291470794034986396081677910109434766488267662350629000767243387085418960071185449830995515800244547411347102165660414448334865568538975422192131006683570281642640106795934154829599026447095702143807766106770906845129707009027367249340981408033772179924327860247287818053004651262336749694087967922487491991603105961551107286577156894586898413879354091351442626069009872097549745499683567447925044633933022426637276193493688069248350289783320450945215160117419226593595483330403459215111118336488657837492083498290257042739950493226268425611169594575258179009667182043093390078992996953785698726013079784492136240158101054784170740000497352383636082303281977732220955201781484771172500302674210477391644129846229535207723797801409339939728081001774903689533193593180398249388399057885229472743701471806667853701905142490201002332720465676033648126823187961365215714816573213938811855208724024227416815659745937660942300862153177709031885252505525456993308770179705950386788143764304448764320094886237795860239335751087348505227148491234733555293700868608027384343793797298500658163414830786128469299022315213838569354054023917217615401153471883066831768604919547469569844207986088008564642875814222561669030233231229114729760005452831434578295601730053879245977693012556933893229851747172389344966718369466607233185230947619008507118764059087205901214997615459192524906487249519575932446770548601126577608533488131694145323659621623913274305849966118629708006061700325488501970075967372456448136594705000869267412158622555206903195046355321270339784428584135966092677195495794044470582554987650623593194776344615448135051409392407975716394985348162503259439592785245163871199693936298938273240909910183453518332649346424023837051587853534606457322334308993015328367187663220774876073662443498086047584231865428646969619399824500193282398336149947284717042230172550329127309114279745142865727026040735097835760935101198915573609808226269352548572005560718622577828010210955384344620382875421489399117412672419872065665444759377766489255282802871340997218445164972248410793793733524855275476885679447394580852855626562538971267231588076426760753809060298104041520039703800826475771477910696038994267435056000891574616172672859663657918773234829061407831024414461884520604579767206376104465140494507284639953018499040495420691946414806429914541118483593131751847493810985073740715695327733669164887321112035827786998962367195979118094990216418482564231779326207124242040512029143085278735553625336373507569748257164425801450551854791112370858484372443763832702801349587848961992739218202263614774525494670774209133053179893909462134553762221159769497504069672373294767070448727533409623472150999500678776165833815064392804991550484842574643192421630564401426989053426068576598039293900212276012103346542644389989117637626952364933048055454345899502537331957857242665848820068407273347859757856319856193386627705476345148544756330675888263266846672708551639878251260396339678327007379879637865788124647050622301467497500570507421649220352170916000182906203178994833598792655707836088553594455871123588969065557310337607601159818214618141473687866216725271988248787830728489680247476576347185148610850796449231719849693986793076511646627996347530907776219989319629079388425196026117141545301663804217276631223751288419580877563954266921689254779469176301417175040996871608856229944741567858769436038384886064265293839664247527982725714185108981936711667006677101859259459829559470131855697846144136975259129071297098810183605482557677507123742389833291540583467144162212696538258551050262047645029648158862881825917589607303187151819716241288172652556899501400070527822180993074130882080351553549345331481008245078190831975791526977525130744680128450004904828088102481301663222409474477290413727102620184905712009787693104650827031316517191133927645757285338817334113189667459155907940460875775632924908387727172093063123774370097398290156923631838835724177835746104982165652414077118521306390509049977508221782492167546066462925910726256189644836437767426347579486342751487797050553822796114279862784982329510916151041159299841713651587082032920626539061591543832601957599228768478656477179238186982331352854501118838113451135479736388243084522651434078915678593782944698658184872735580465955117457089578783207627707109326447544377718226161835496081373009542498789544834602880598279797381709306780705413214578085217782120381882022211286059701218861884902382524204087478846078290775128679211778721712948129290427135826587565706142302416141852973357804349304542251700141161639020811411219536970195150770997608780677148484245762460511883582648267654997040467219150894361286611077230806663179484033580613126771571142035178059247551437386953039663405263336849331207893768239596171032048149006579893948449132626320587298477299045459272910438691951269507802391335829115651104047132155227772142912970104555199499708460490115633507634904894360473000400898873384143060409879474355914698681586617971695272077730555078596750856210365679954056172435134010861537295296131332687290705612518908151009702263949985829382394004115349602419880842715731249101164224017183857893707085744673350470954054147221154830559910213893914255894261434447986788726676600563018873766642725834864341828530183148131663107655941338315303647476677809599809075327284946441646706899251321448089560714930909484698457406795149405414511907046269155225990355835766775275205994084933930871959203520846463497115459478488468680360988159600414220108711770959593724393382158510952174885730162069529815323353276561044829906477043787928692122670805552580762726245234649960637150575786391098683360281546287121804846810900273307847922350205487992015660800017351763651862878526625574522348805041479762761350032249310252669103438469603814142823185440688163872213796211317880611759085948491064931446733418514581108080933291289832417008214127713585708635892616320615484772113085335735423972056175784551012354223022749663714081354063427585819085086361349836763881768330529234056916266690947496335543552784373739760109764790688651969950971393747504428801528213344611257203967421764606133309081753543953560799398702779390818819301794946714407256631595615965874778743980377556848954763172122651636218875876386882020811024380745604754749586133784192160931246092308274612951906433433154349302532784914215370360741222383432646645381614064434941176395123555101885341949942315094153429807139259866072480204980581447145690837475879136994231359655396343771807589499420775669660444465210604250707484170590876183861926744976242757834675558358688091138649382197414055015963482303905163776363219581487212123983813373244508834659904859032798181186324532394333309247975711545310272566274178097230335235928173985407574061943619495503867651944242020711735380226654352759331486933814633857586292431936982503527916476187032249714766334345163677237093377666960597926233373378644052211240493256029630419567572501747481790756411598730810009909160170656437881833711872913319519954999160622489164599914387823982769699067035161632483467054715134271552757376447207879752226879852254491963392822992427381425966772620397908826283947179611687003712780857314408511417001847008775159994364893646595143192052758283815899567774628798169718504441471770283513422491596306124218355681955170290671120187826889173211551001081854504990999384247220790439093744101324249097095760183755336535132423750798148882878255962190781674220508829897476830190073631628465672639249391184498462063083116193378318976836304788720504650114215402220022845635032278160331835077215150975453544474656007020779916707024425075517237098613529986831384991224822576489381672497073178275427157452741919427209728214585968638719254103052772421893164068930997047705721675587191772732696370836881174893148060767100993803594786022560167853722550316784358718983632270212243467806035560504108364416278117903509040703152046690719450250324268138695916489782379228556751553192938093910681189069774049305645629767971315671141581498746318694249798103106793689910272537970328097972888030963445573326846909520967386562342151796443974522074760656041015398067012041616387514859187591079199953799434665789778876010816371653046582770290156836082052962112762349784270943282213365516868341021628681270943217100787714585549304879625443487323526877767842510357318769507721018444947360892919240323232117825636903052915627798335397420887517795551271178866150297279549605189129856967608128834419233919562487598461352200710064239579114284345622683251620457745251361370170058345600994406299519913274826574680056273540339525896961707738351464765908953494682228007419990479880094677677791455917183330426874157187321092006134230047227345610120132487986720880733807230017529341983280807168930593476009713126245512792797039348102296295047819070250648262717856479684696710181108973999691758964180697017118896282121490550559992594849425152598360342879879637015664719222830562063631924824615804463977308106773275223824852412499284417957238150784197830541995108190574570482802190541578233039958034087951076723606958306686255883939708486771924330946837479554019568473181386625284711927575047948865535260391319711713185362316557805516583398173193312632861032509401510712482907953173640105660082130882813231119130334993049664974597234915570610851317141623473855661543274296285238846807589161716863435666434208496981968048861214924976080229298029671693943339467004750312319557566151919066003670997063552989974169556294477482819513643017351740455129139038884835677018230585275133464846777848606573510613046779016199319001941223611772202793772001101721495638391145442739361687485550536074545649497741761006358700018911546130468545012039210114503886747224784260113475705507636562683654801410093221099886728423596872862305781075434674934362817134060339308425372378923716834552432529132299276285876056093672858089128869681662807441777928757999869462367706587761781357823373955246024833362090730769326712618418371830934243813929144384341337063229872476234296818538740482087659844192861024861639803548723599502835441050853211807095241304036824060602107766820643977117519902801371383684550983817864973314489483208770966600508251373703181448800002949754863156410904529845085595464814610176122471311891639991751384298259135892628789614385755546702446448260734132514349614250666605138386175788435295287234972584021841376385199359596148777658132433605817583708151780880385136009728919081766330907941763735655366698288639106398337517211365389821219511803379595367442131844096292022337776871855487487627268645315880824767731215879360429948982900571039950367365701552373340279081169079667700939156699698877052915118490871114981796582409889161792973855464655965264398477603428247651240347819177873067664390361789513284450156365443215031481990692608038933650404043512915788687793388446973337530216210589039441815934408459786726176401400311148409860527675193819223271994257866608800425429284776621748385694844926365818728405092383903880454405577696002280116025701887464600087274173987757777392584124193536435848276705533511384650242999026367133983844820134633647567342272282226921842431645475192498568055996915170076212733321689884363237783184503119952674615660933276394857956373582673956719021265635879593270577439307244368551528964269699512451772877787217123177185400715221509546237942848262429517819144836914532749944332782295447718468797199214025245129445485000148771277217548312784340791928958013928010571870470503345832282877219969441938617280604854219444407748881204888054136620896361869437754078895569451268696691359284152205688751931309529556691350763981359263112148893108151268675761381013874543947466165751619393089311202231814635760825637807172475947562831206738045583278952635570569630161242247924300660228775404899809122991384188305343228170633530026330555494568905318622254717169045634619308183074031143821091867913125659111720405097235848645249320917035058822018749323967708470546130425009985117448185048425101697888706928550076060021860520831490080357644260931966411678351899034219415230688956708799824508028142126866437430257154834201650911832140941931331101973298873580242661313562418293154478361537697764627506250449167835064675580762063471227449144903126572052522018107243149291187994074462231966653593254732732163698975141834180063384225662622553156178068004642448974456460495264296273163034005083529400914384647317478589902656308788856186659217695891125865660556914134437423488392937509352151389888615759430309674695948226929413840281845689529534066404877834262341298061490987016344819895231445396588919156050984410563047047471594137754750148211852152484377232298606950246736256629861642427044060161515528312401478486304013231039213099708976787498427026455497050166865624713465680332879248377009918010190373110301705056571625930919209253549877733108965174592302723688797015987571624153742458505892246302519049635124481877729703545442027975504689458892470916928703878141416751934984589989668857131441052498148752954108351186749335168452431029587057651000764401132633802909367121891581578631388603294928284536886965414454410883315132301355305601981872557857588884421358005400220197151334367553880662949995311569003377919965740579459953333922280698229518021767441844144903377405775489351600140468434484996929831238382787855766886181128578439461851899306778501953526269608677464986056878701814402022259483585624802599625242115302714497934268203950595048333207327765379823175727729849732015998350006021098730321426755348587791266414693218874197830359557097912438905615723851082893942417785136008108851418778411381280719684407821513309849928280386242029675897715290702462872317467773217892803351604366788574268948269231706185002156549307400609659083306000024961872832004020240826233601958237066776322047709904636903506717206533573224114510891554610362467481035444154832093034664759929831569478512836643979447456842592156481153975256008952734818710473311245145783661066843444127997255704457226044906692541985292695296199768524913300516121779322150042627721230558150093359345850593821255565103655809486555170460985200286708672144286644477092564007415989623380914051999754694768653433441690990393529357304277476594808496642338776752867290469377118710520565764332832053633854047271380515439201064795135903383958241230352849400784202558655079155412907056563404918343989808868057081290854529249129337819210817045020028558345145278266156512764791528903640372528301091018366496849820890143592243612937237882417236468029672195935847659658500759118949098212833969712407084327235065935220598736717546687678652782321855411689362329683779714651263398898828604905953220862240972468090241294493058838304816274775889095865977295216970583631580272213869450039965006846577333617466623858673224776309406068134145258544473645528053862013749534947384975011975625255694164299829947185370336643759617577658190802797746287951552812059953516644607354128816507009643267717871555144186345124470322005760794331145030944616018982185267505869049238454826667940820887979717430125942839146810676593311825501692689851629646983285282427315940434369269973424748470224887564637855995020163408222095316492940901253519337887218750456780966951322560138822916708343825324055827325578682118955566980900641044035212301738038480621283765341209545516857191697853062061174044480363012262136725655486532394344074864434991648896179361848837814313386183895313113102956987420879604809382049062610304854602366975677679468880327861685313067823858530975191345147531681949133111154967822507514270150777603490702911785627903699106329237501547656874676581356063244701568123868564639260966209449393475618054105009361166743608228158835019877154917925689384053301766638394766247867894943727240061162875671915258734465961365270479721554442951264171700675288767795949007559710550964389800226765914486508012892249611266524851856549507077299846758119462486878866740014478224747698178619735063867725950878556332008156717267339694938277349483271328190542239991291653738914440848336292093285408211596044571835795751171627986802177395141079600080249706404710118797835020674259208487862657221343861490484961220595840683024963057287982838165680469404732849708558041294064849767066875234001060420990826793929557168654306126864593512453264090723245962405064853224707361107260185752841039157072895513523027565652224680165754584141034460421231552073550686675197481935511336026651185362828814815807482986269291485246348703392696730537459736576086471246510281265031857575520383005990281457745206352150861488180184439874166765388226605578696830403926770079998937604451764997655718046325273061775016266367293418527266744189577493136890162791232492130595951470525301558221073101027136348635849542177121957219445360018869826840967382329870128404154682941738262266690082989352603760551899556665800783105817140034189617106789400574990754506619043867569177101900744025505128788310363072596876787465324795606129955230736735628097748552777778246648950058012425235484247169694223528962301071115771972645324678972835366967637671961543668129248791819956349987969598047275964824845598590731517329144099168146262062728685318613463430090202225446894108217207035851391863727646103501843284478346552032995864340856881544782696388577335910867572410520101195096060948186267054744790603791814496344729777269603376569913528475637308222259334732595577157453547315029311424641790698011994938392352853538975799662578131636453869884833167651599446054448970891405951977135774553247581093838064636836805962460985503106876045472374234949270732938518543151063824782702191338630470116258367562129991897278264093538060796599577802872212817281282883503624458194353593506739716149954940647667006993870465362654231727982378456154586944137443387093813837287628349582107052472250977745561710336353492840282510796332498413538200337195339191008025783214141515318081780970032149657721124341576869781725001308108258001690428067230659536710420604140715604965811087067238394978396097374038411875200592465728411354097144902383909298998502270326439386928772530235439798423504052757856735492275879314733456589461645082511230602489234225460153707696854577699584385852945820258182065022203734260855824887397933098897378285819151328917588190017971225526181991720362656197974719528842247478560777124404729318954198232136764262026037656681812364828184261826025182441835439106406991156749787492004481140378238779489552184573166288863671690289952578489842979111805702884516057231436865924231989852214907665675877001374611670938828976645804417397698867145442224265316419805344991668349628205491775047981761581833967213106654033234609212062018791995676487089340832498986495683852968522188370473972362855978894858485178023282954682757810521966989177707845307342562652181152300807776530456519281122193663988339850243589840819593991073101918620201453701069388720869965332259731916622694927408111704472082171300170133716107813432616480710360373520679475339366303221753175160145280938746904854300231131050716102799229960674258711651942486212453548169830644355942564859137490708554445817957444601386640606668963958558511459453304396407766055290886247629588789838866613660700656996602182231627788091439724794127723263989577013086254452621324154836883579078336045112667862872969152735833373995321747110006692985761226047995328682403015787023381012970852534475719644124722477148256045910349931577879286408247539283402382722058124425781824288678010470904863606346269843956648092361692101419320519997765595229318382725228400876369874232614574278270389517456095755792053167358243598148082187509428601753242371995272029047507853076181374787531675604094321074849292674505429741202259108195465104057828380053873365099313442002127482573801894404504328083473354742647506673538932150660530622157477279095142033076435127514274425559660805356876058013219622989325896145349613979032831352332810698126172908060774922386944890259945690803614394813045799593301010807505709567114602171303728451915870465001635884620624078788021206017366159321754705293196459004600117743981846486025208961455619937083898773436685261319038365274188670631504066924563101654049462496442207188884106939472974281632196541450087742583743669069783740710828282533869122821897233110781242295413706542651229374453923446938337144221629080305226980716946133856299676345968528407572406928858702896185712183443851964265134896896050335682578941244173273560486754859275440365880257307741002868852505805016311329179168453697244756368539030032179832166524797160927140427148083198965867652193992288958098040815268187978159512687996866258341040875160411527714568505005645502311252313151390799508453033693033219180727868384504826711206624141078437670277873760682941670553522364709513773227223847365111084685358209412314556374397028128824185063210615544788414377405748717466985728865794017231544537500332410574246713001199449081485256665933939081870390374121630713435072275049493848749383819418437832882434918900857288511521330512315320306930245237165069868686703751055770813254572265646153840579942004546277294819118628010170571295719238145402963528857882803699088454587429522160385280399910523541028231973377583191083290236788421662956378110358145579746680022897651782947637611289305535891280141106560946392852732632568730087600198466335644766505552983601982874341509360997887373044096992112784707023050640478817438200439868956847273521957408863440995555830369362133297798503647531618965418427098146078907670373425601063810030104831909507018457593521293011384020431739601139801892687696256315712641143501603930106935697182698948578882801439542479037284584982763786095293588942007019450555740256485301848086935100559659411348843491646500651602341595674929174996242929477389933301808624673784734064139627823621210839693231132462073458262563370612318459974665535325120178065371217166297737123516848116405738522137750919460763263606423397855319461123423897861585113084269709020642535218714681917038912111696714904911731811142590394542360570339809979695339156150978382600055322522442872768987480493610611481730991172492524262300413275390954030186630749142093016917205578024760097345710941463063771968220079240306268701935332340086037288762537884899777003297570185001422439280264912097126555142636160171165548146442802428831434245519056908050385179947963662644095397706283303353255104410396481332356761157474347377924142867617663539104678594937868383846444175314460001707927610225848787081450825337586433986843841906198768092362516452129727212160253112841673349547014066786512405889169072951253105229908558197121527314040101049154090399109741537506852686497680438222040567742499061098501375312858753782621620413240027564545571655486753662381020769291181586863931465741844928380153546808208598969217881439446542441272715724139943281774103513679769087996957395583490532795330372755319826660694061401940853712986064234089514785634650594643031674120438729134208413049847674948514602833860965901405109366744731093659676006947178543463577018904244637480828291918789284491165701631139197893893275166879514550386660111447936325160487010409729354906197833737800009783408779611708857488972221661554053300559656985483054977421117137496748405331314305717943417567611562537922352497280168553231976942653037334597927615210636586264861096258704893423902838276165706729850203922310586664386731414034105757760230196721965793288540413922647410148707617312783504864128753172385874728964737147842792242149771467517758029874101362415360300768614189601320855899545602814970022721196684344487580642996180525149477430517657538405370021325111292793761641721476034918126049814885370899447037762199512475400083712371931972906960644078940891456020035450797234037249657638960925554760804589155081434697302452805655338211981848291639891459913899015221545406844522277439066505637120469229571020628192970525983410156290898785095509338886475945251626958755271435722936317805547433627972516397026446905102024267633582426607926282072359435791543814275801002191010266371590712506308931053993101203884862500681692224735978005007732086253393525613794049485319996659112370875378295681562808432154979468635379375244873876251887291352744157434551134966496457055627972446502941839009246056886360139964526933851756653926956077719509009813910162289398944065169177450142899915874784425049534774326435634613981045270128553779204958774754565490268939324970290838898612771992776878161054719082107383993832845045106368531742519605508035690917058051025340349263606433243183786736062619736463126684964095725236063365471313194215933172267968829158325089292638737559953092006824403240272133515830007992991464233847263812017489820620253823206860840473998322105974688109178895322836607046196193328825418146405720657618789386898844906805957783741713809826960477176848830682910017868597830547925536783085042594386252264878405523322202042645880102524170296866305654502551548231405574154432500790954873051657596731431591899033628962904271308008575646812918870141678686590072240334382538871475365964051437582758502742841930830495176149437334358588862684886310633727915259799484254228584917040916430221387514878874135124365714925346264331012853600052737876665792361250241376723453741741926223730253176275285053444710708076673459583795995701947542817358391043661964581930582841793340711513687135381840208206675529226496606145543362982219513921209658282639240993831855436115792197782408995215819414495657362465248364346755065141843340729421573950730055819130222291655527128990964120253207854202472695136049582431910376593654259422978204200147086706145235218527695586594951389334402937635557780153306055582229576101929638722185998415425219769792241985780752477977303012754432437117579112568063346767252478783110592264570526006351860381638711818307766255676447305322252187032084859114392417007821491598378282082065329851006366049422585879594495929491347622675716307802239760495169837103126861204057990413483181775386565356697672604508428427359438204678607141525813872435805538160065957365272378257156300885964076224306444919621007970406239193389787287415915735531785910897466136459592051794968041295917758857104168921658019024228215904718323442286700182689266489173769262057195950663384908610679312708809333353747534500324820400542988460231472589002846175523377267440199844472501555595182022798522766045178597453487366108870998383068717104436010726806066136740498045691558257129591744367892120466204415558688349613754982829869972927017512584916326364565835287248182471862247501451535347436590305767355814000741258962851679659298094471213787772545028178980382318858208150165197695331850086324363977131841174807058791983615071873806872002200593122735152794536411604146837158126913200326689499157251351001506168916257940619050522213580993775522682658261455483143157172033483300408379101972961017496437491806413695136224002065079289863265871259333363390008705201894797144932791209840662800651275330446986931030734920176022972195852057005749587622692154804091099109210633952388995143480357564131067367163619698798839617042792325082310759684637257353491790169221447311092329260428338936131261961047002315505172045965972228479635819245811561686530010512241050755672762864506990452326950604085951492745748283258274451289995791608156313042666006298225471729302897379412358755958392195348566878727901585293981061895327157192238527425140269872331477146202360664250202875203438790470684368245345010472590761927962216255768196006083576703252991112062556919961746238644749707281035313831663218400189078838790449886660338060931073564478772515066871202023070222821850203412570444249021556358984462898467859173884041770848538990742895548598106819643941968262927366906927176024536625009410837813410916799453992631780260366320108706390458018432602769892928893479898486111707426690740494249751145348338832107534415816771560010250954220627817587121446147379608620280774030597421372278607808908907506725222581162421688592103857287372031224698134535848739859140798473887234632424044516103573354262084247680310059777603412564206369306113488413086902824004153530963008250034778461193978757300663180050958375218631898314243122150668065604086411230867537317095273924113255561357884162125083191372683463731661363901691613663578820271464614107802678622932715712105906110084703614502659088531835030772773611320290915734713175925723981798625383986787625099311831625019526736256577710576538073696430765778117898761927942793057046772528088323538159707866270377130469344302287453549726701214876330962444422768866671205662708083069805402697893977486410695457868881318758117006948504465962657077154544279050483146750826272747784574938005664420206254878167515493240697158849024303304683388706263610524262470081774101062791377888456502206806112387904491265838224316834615411924722042549959574710877872043838088175014601401500455857414171134573157350986050462546073777495583074187121444778796079118198019387368084613429423672466075087403207864616166668904224657822865739224390388959516033032017212539626154664316429969480981600029418594702841595784016107150548794605390590790856880912634664193746947470926717836483516205158117019274216762645513418849220020730287612115346202906809448740561386548643082833640246608485140306443865010036958976448787258171707507508429852446853507759860046834506937858413388083203185735267498291220388653468982670939833273443523771135904191554159819122364229245837088313427165464854897563206881812744779108624629322460441712964253561332807880465308034426075634231301159799712170758532551933788342113561128760603950780680292868150060219548770064763661131022776945066787656045835977243314098669595045806441384139680772479770281240728804581574148111495410569964337930904188808658627502521102690936012892963932333091238742482072493646885510218002542960436861353709574843727334868104645486440156466551211261545773424210515841671937961419075539761871346089160227920618428190199128584733709608442699463859593914067123586465804187980025769236495961585064033329480148540569960219792153698432036190375180496023965461997002487340001308707448765489141980423714600723142310081412780845102198846732293640402638513014984028228432043673366169680789927557316468361917477948963069826372296482558318584691868182117870792052158889556667449726069358824859484509757612387483125824795379256666223044742308271179700653535614046637008804540371266230056917178370373840488604110045611555778178506029910552101704859183800918595786768859676864719263843907971893752964433016342289326941098497502952287450372488689761680948090329477509716808404393040271679648601578032725550891696973346472490965059161927302369451840900453509766090370266683299646383233899598460929564426364548466352606710876370431179665279887259202637368886687392627318453634368291838191218522352511114651248278300455265432929283787190714268359734209484926334460284032890989338162438775474078441770273599978743086127498326751166305608036239478080191414207023438130967353708511588583845689355068072475945097150157295239281889596593476460328474167867600916486519928102953989883065703126057467564078267561125515016329822451961080675462166734187371123204323942706338641285132125815595873094968711465441469734891387847892027868446297756810901185321651311449794539748816505602067615753120490919425748526328755650416799408319083333460823877282318150378523152621101600183096113997114321363098054489266072959882959224194447509096423283299809158606676091037516670636032989080919306977941890870177120443881930039352634501895002804184795438386648174702111592448049500012731588060810549530001426383258789437745161204742541832137998412777769515574931201986093617920993410397780713184151204161225316938108731005068842764332104444013684562217307441078095890389295936205850875486190470278940879933386116039113632240975757745929016844647455744166921962446570413496494640240885197694871545777799683233080727196809054364105826341584538613488913069743379814570618856594699238042297655123696673881062789581771044234667913343244962676452905242056940011491628647626117156800016476268072942086591693616477315609213980729890426442297795702449267054830063614826449810415446098463703351177364545496159403406445146014836191592125023500688237558426933439158171548687627328043968805346472274261639938972166116739311102233200967459436324324604477852077711754958716463930257950279732588999599714516107873494377204767765966486513099060080752757313411826937633851564157460661455048711785290645882339196463149844443101576463346593677880712078730997894040286000451078709079065167227711870027675286694150316454672869526201746774598646517404700310224338854539707791302482256051331067607206572167712827821456109700709685290256565546073882692629940481539821097463086731027879292093252544484913830914638697714540256175459926730283148851750828707345916970416217505101304863418606212141699005200132084283520941793669326925773853579799941068212190852187488353426775671761202085276341486044212267272473226092191133369259610911246494427909171497748814757251734043424001305241617798362445649399970861779241016127705921426086580468805178258577936460057977622645530592008065612884628720790803243261491282930276181342168404213357357324470514244779394163074569749712181983293862363879818564626284698274152865227358819974121581529556677914177683436967226947683599014121469337127777770369864629541003552451690127813241365069635693656753657999588234842313783898215281696193496236725933962207258899984955126987514312117882764436520150975486325954084262931880243855823638336372587643294599315697979823980303468684316850276631743092138753911920437386411057935473935140310120306714358540505886560851662616873103114398540678247761365778725266651244193758716599240229970915495737950653988204345260931103903319235188606368617915312342800132576708359078576812834359983222570533811065082882947037572619644686258009528541018169153111237263732238152746029146281229022415801267870641211583024733599375647257804556229698278798593779523259029599013271179652766337894153238656002246609802248549022521114549667236383532625254996314897775609080331814516008469403858671828749268322356971176902417369957381189320484457210259695797355625922958613351093728100567029217620787952509890722458938213513146568665337762833991560102200661691985149278649882134724286450371631776627833561755768225957664011669554780178479827991379119551642912022667543690471880157485976154882785216623879716938363874650371559287971604438315758144353519964040261766545930082557077414764227775509628301428599271672717847215315257034104228918035348714877735385457029017873206787757621972786424858832494087925810517965252670138479195302615664787181338810461367151582419243408373146490534025151292000689944505612947731749164384343987700073979881438682126253015335377524676022224520694977529495368847726938571280884925503728662452571522395390892365090918464095303494556585810599925145018648364049842850302030041739942811233839597943907675749643551913496035058434564509396981294070775662420725814286299915357623806240873497189153153951554293833280454907147694524014774936302156145686329857065055568958947739146965881636624529439769046125972682578239272763829016083064163742834076098111772426535065306104406201319207995952662375159230065146849193281642633256607994430135502868180157733474803008595271950446361902077060516198971079890754780369755231633442883155827845960209096717790657140625113020930344010972261509143553499935022416574718497500502358959439976334914207029831375370062199384785910139480112790826583713070789043797326130559224116718473215932917074557016732323272840149944822910217339033907676476840738783609222623536173512030008696254188229274552620347744486479713686485687062125634901253164599909311526355841641117465998843509405237813541854640872203761891184544684060625806208263530629707959703230631011763420525502257085155053213145655621479655129986986913110636759524586931635258389168221345354073484178483320225444278377229169547923961749083169530369305670323288163290305909649816908261023103781777707899777418319215138469157578706438808617826965629913134888893796131758209266873287091349937701194878310496074282016860815747103018151518257187598500665512428372504089101986333931513105080048968671516317713316671229886790342459361819454657233919492690739820065073848917184416704285912784497393228587467276067204863190098881591885684643707282601890566161164047166559193372906204609714875298797706550433971651555197789511434546056236690885037699634295805725394647575820940745080907424735338581596450413354307479993691380311795070529646245178688194696817313908443848118707429925229993026825519462839227528321196822521222398223259999577446460295102291143246850210129680935820093455204121002026963085106621926262263502615593226748803261181144896767443695039585982245019538052918725672365324824894759753453258662596855742188558987776811558923958395251622275093464767263883973179143082485427917695962159760421070635020288934202495917536463652090071880274419872976572517663126997742966819173229182620989332253461015788902628790011436369522057147004577659103569049291262303528465295619466200659242248006938391972166394394492690809121098731022076640461380628484596908063974706961593309079568981430696662608055492643977481958705102631930380363340969790548408976145885543281547386473402493860675971498596396964365193185526191036861350756257190623791110987403724225882870012746583941750256868434143279432606357655710271562869865728960278572620171295282811697225118377686047371120977796520734995566464021484269946037095452367878315572121670302786248041799178485357371033785270500923671062855967805908690292923534042001439514063610476835673249591062258952762443373927611148932846008792691153272193753534127565898476819201705880600890743547839926863084418144448482904123945359562338950511687082522635274167404090808460922935624727360883680417014681963595228664684291290699844663324770940369890433674720349392711838939405150638360010855494843229889719317129382436487075778016938211155918148927481019181450362198502982295753509303573148821715355605035114303969239549406436219701189368847127547433720588642746969050835229104222076688472492576003216697232849072646562257407074731542851360010511851618186452796753876154124709004036822006234729978119881896313035758579825730120713304076221776303288291883233133276595521189755792464701034457271466139869718503596507858003127015722236996037762013373634586835620249861371692621695128745802202776220022029601410616279129928052271443243658672808673448126423711837885441888144423630721201711478923091060151519132745560221389059606284405272522136512094438292781591398010389471669973922745389321454922023283674664337649980410876083011295717843977061559146156663883047782590921706330743978511582907480077398117899692654420109584635284261073413302893336465688108141310396086724089532435442004636280110425715205401134883635431066251093525202504831813805379839703166259434801099891285234792987716435316708644953319059050362931494210657277427351594809197606970311783113160225480640289042312352532541040339738374779333987298453673460119980787463415868027968052512268951827118707745283983938280601431228584017852197268962945720432217121149001828283631891232925968039778521127975610381519377598867837162304699501757298511751860520789804887324689387288143757769257827013441545127014685294739163947136255387699083316802435747850175832140586722409925599763841291241157705384469774625211534746983306139743973231616266566192890921544715630466617940354292493968917312808400644079616971068553353621382938283359241674792368497411367850714820240030939990828474566854587156551097365781254637811001710286841183233666023566909186840193482923944888080017857485443386756147305504680225762096175126111291792160882131877657229386233848244024537491594659686739221367475484541649482559780871474562610504320468589598723680195397897553953604121477205784995849297705426640031085067535095103874960814420428542094164837602187277430578047614055866148566755023042700586620429827101603461398852784684476214654935583017773880108387638159474252409376771994413737673581345740603022102515211798298729470157647045709327248947151182932808010286635859613067769765095609297006348771643370619647329598557953105724739129379803409139783963802859774189484038882318482036194912695520662778265022805346507187373487964760578063730040206131877597893757368720030889857957231525428415123419375811025882122657098710234075155786474255062160407721597284645691205437832984106386403746463731017105412515009697062207861239667314428092719710764540431092858502986033708414402827051948219921164677867470596068893649698138040916396339122039130356039705228594168212089705440626546125260617664679358030648625451244585339742033379862896535448958473562364576082368561618777144459839174437013570495943752149425481921045146441473086514043662792868459142531507268136500909454158854974924330935083996633999525795449910437970573295878278790738393626852291543759877916433376242813804487837967382135995034351196861558947554278208822961065079827411942369227836763424196457843807960993232485010011064749172884410096475693747360239510476642814172635744505627462774877404894049719579321436778119432783886499631983442605457948012094740161705722166558555743377715934894818751785226905329631331140961090167857621091656300256889955250404096414399301316785407559832497756687340930308978388142428643603132321889342204359689287206760291658535156632389070943411873590764466023593111218104560943609160165638963056456623291570741036515581832725522239238222599847523978224531612123400461124975939747509185637080529533930254609739558760766064435477298921591598367583772265856168491415996826542852167704855593279382904561144822909385938946693852256872887516699413306944268012750187595099973999700174652080289544077131404954956279527139956262415429999124510588276155090564069897856487852299023327436453974941845088176229090921685621060395926879400558719867068593072576730900656992741903380451384692966291931037099921491604942281017822849350715023322147129117048022743367806816126163384215253856561817400782636294670735364054460101609551833984550568019862273451613084298147610019150098456095709599677623446488322594741002944004551760192503484109123741822418917301322746975754595563106524198748799648264995057204786722487319592182526184563621668965259733363381810669322204414973710671779764018337055649134082836833889672524932917174624747293876359199894150189139996920293027173248086578190202616180753171863601667422409371241309094530149807987697934774250548229833609471334096102026266043351005419885559865806550820859731595641744465254809158973209491072644792447925308505276531818728198560957538175206646192496346197849819226753959229369070270985107757417629140456966874824293158086511763187880301122657488933358428141607203126888303716027107253477329411934962392242308286118551377635695278922423281158556152895046329956350160406300832011219594565008204184310240010227170684296052364428707537851613752025149048462875873485997166724455126636756430041485373775282285157200133006372809107740781955683235883312476902791943356045456535173864494015615223958481853503331761307273516472123621525414924915318058235898842382579411777757411379622631899041027089208043809804159117001759339196848427311535320332404258530313651573907405392904536810132319367014733834945842003872371188458342109964180952019932633906665893170663322075071404227530134793916484084234907761048009966557539295872968077724348030648451845736034229653558142535796961978751303975884904928639462402110389626183903038047039672437499121350567007930600993892648187244778310325248426756873328742860844595950202648037082684576080544521570232566932264555333742254175080481105956700290407699478894856026135033005420400233341559382258199404724244553133032070613458202655221374583920543235984080824967931714322670489785402600301106994530930343042845574284001240591659198353453025443593386274273274085699213216243088323344768089253490769531686784737662106949826103350965184371157887351290623012919160126396832138306479483056583431830476709563099895866459505683137101401101980046118383336881405479928622271125999940666505488495608414866328014037223322026137567056455661181539218013195794803515906800603045917142270441263139237477367805169192519155951687732349300148376629436854551277573455076577082325310953203817993084598173105841063644884496969914522204445144372122107835749558098078918769813407061106390724978231186412053235231832245398422888646312060907494858456352470983187136427390855275871231403931268418560128688295933812683802548583137222359934510839685916855787312631421794426272332574476719935244535885974186095829323669409482882366258994389642203544640316633365644647184032592623184947516998728175712249820066735957110292156708945721289726158902593240111319057613144081810334026741392515133085949615023387568454678697280035782904296507393555808080306797376495870971768970702365087161868181152560384382708600259012873535843190903761642985047440732251958557252680497057545323154834434733558485016075404818546116954750721107576539295306552714614139027989728212646353989779540087530363923594172689867384746780250474672867626063513391707265122469611138744012640198581339632486759449324968311351172246216674032635453660346224662265018273527377234026273276669142983747267395021858797372653539880998921713278588991093421682005575611479047740573852499283470463416854382697355324517627986743426549660691536424440751740751117693762806396710595861988210051277299807647058398248123936544116265599513683964480662350439787825970330900500346273184170679679641368131399358033793000833062270283807272542163735605091337224348361968162938928367740662492350278562341974765343183820590274503586332320122820164521168685637441302768901970753753341655539250388485016636447912106435940637193786630157106428911029757738957605228096137897664933528315101694195856077772079082083599498354879580449899511024414293111548772572805514734106564738901479670104011625603802728965696251159823074357315246563326607659805299518147313799863325016497899756393991524778571496695568235883360654492966097665599990631774170651443696920407260130730742173843363759222857820489499559047928394055632705715988797057622382420132450967270858362640936076542506034448964322101516619356872782056609805282132943937699622147253565887368278546820590765934995175120584627250323646792818022151240044026977717728223213197179482783259992944788158542101791928326732233032947331219580135908231318141395943097666735840882416807753230348238980161698276614036486909986856389080829557947759581736558926807267306535333500959733981018456406684049094509548826642619175960142119660776951644835728882023143182128258526197021553080000780183078941006082628615962898507441761417949301828860695989196141484945281602541047341248501326942072283436814446023168197062531504626905195522589820530638453839371822457057348784542143400135675954907859458040337068216915413851073117004245899162139194261922022140662550947779025219414701225423405480927823048752243512306246099729053402530541390088633934462334662615426515139617284066365678831331915446235675885610561100062367787374102077775811281937208851251154196840550428879472263682050140307561943128319738202748305372003121539740656644046327458302042895708469332699221217692983605727479765778157662492398615053277734550818701617142842511927251874806548662496014447597274356682703670225586274666126802952406393025249598902071706965333908110670670498184638192260931324391036015613122995681119667318737105268666760875341834030741844890647013461218585692754349172051707400228692941412402813559691503472105775374703641219455182044356622858625581438277932880030057156512602944875299872302235980936733062548230609580153067227754039855887383508669290736710757733150860752350521433283825094537504910148443480931706611630022471115341318873993057498284202067489413359601047918053009059889637341379200861410059176877500173820150900473313462308033224784305990383589122594329672523912119401180485020355699780154426672407012010036102193137147774741465814263492740925942458712447434338259255488044586406503760379246001568537165523430647598361410194501204733620630866132829167060254274454953370597351563718937271133871499691024086856532995953171139699543893910255030141195115491306676929459999244147095850557584835530504484390069098806615579034665384311355897400618374854616730477603297820378156794272868245384840948419832562661613945802712067297538781095677552720473499760884048509876178419907963478085021258094279852794472902004870611697823677106993390909378232706021029906985759601439895679277761343517471847408862685279634240698588434739152217878560939585798628333736160278350585695574120235457152974673163627174243738633692828081630328663026446721093346553243895068138432512523726835782056401779956581951228181288063212443522429788170755239410105540746172006347745850487116137699302925503996311130831583383955437434042171939860722810161592089487393216359966331778697614702612844891691793301898896601857948153560244420141646457133632115782146328737289014777307776521762184017829406646481596659973329110036441400478768446514312380081732945472282678605552281761066996621862423355062164204785365359241077499403292625906501818914273225133235928026897116972491329277083640726911447398610444684541265781635849499851746657871828368233450806974229586359581189493972962386469113379250832585956119624618507114757980743669677876268764504268217432485207311415813473833888146626934490537118183782716759564581212754648086394347956578304202509335521255130031746366462918125702488916213405059902854525530257357931960274664729597092944382152634273627592325434146050372134534917160194464779787286275586361077589529285488540021216662437563776100751186700883775614980755573194140668288677837964433405864991591494956431761311581230659981810264821487299054691461339373568255729571093226176964344292663039681388987036187611382018622765770597377112060664442526989034306734540041572265488199641246116562807752589637756066491694852981003688565786796587394846380446386698835292945707497530428715408415066997926977958891892276441683991112236127761751621886000817896136058359104234393629630410332832301549630045596020702502790484801680230093382744885325867651592438622760592468682979382192888583617546026350909325138333373040435758277101771591755460062442171839754700691740294626545263925421400765972980746038744913438657510364194665776454956892310745933253651115444023210735640637331979204610884519476513290298237927135573117176099204461595624217535150931201790867869672685490288387298427591650046028017193700945677870002253065435306402729454419751919861850427599032058816063449499076961210270610750609109033665483521174662794100211443674219401086140937682504492724857071548133928736235958934372953623261992196495486851469282827088216369153719677502924784783506009912617120852979833443939496856044286042209056372097360796176928806598373722965032282310152531790655181979685675658248299226579713039788374325546884296969691631353302670430301134836520111005138473061431098287545461871793697642264001829122403002988807141495445241716340674361537118198237266106029788898061225547844661374543797400868264203311865086165625685057515940082365497846935773928460284553528612450972303740715567272436557220656444360349812979074984773919486772216876560851631468073742306062332506935875221608870774324089882088713859322062110019472484165378347954471265750806801842011509329891718410316865121301661999670172508233453702439617404407944313139656403620501950351527454819699750109466341578632462682965975772575983052515290149658882841890075885977209313562752447055151884688534820108036895971381792694435991857931157369178649279094004503156594640949815503566341602378708895893954230361517789362946494502462386580552534170098353577815837550602414219155409789049487918790528571161475673360753081596675639039092695382927880385812405661968049145195544135312271347913125522554266288446084437000198652997132193987185815875433681165894209556670133510856760827177308726749440012372202876967602703434983195723485856864638631828352002242232947271962141886945637064507636565817266216490582194324186544060919938039456380403936783942771839412197690632306727713534204042908357665270958883768777615398424643743489939802401389366476378949162559559364890701000240513894841188000551791376375057354316421454237526698137233202686775617882739646130972487081491129792155704264526247177943103942848228547688683100190052866192458616444770294558015425624669128682857789747117603945856175289853721115028422080447569189548091824517699479932551251830070341953985724817306491309624747293982712776954251638570620036032404019344222711808592088496282180360225351770617854969739631123332334682322321807390300099176475559229346779535980326107914834528219198341917158894867496904151507959672546194130980826917354019387722591911290569442808534374746567318177635635716721725224121754881816402510691693385842223471353996169531773110286363204250206142532948054486207009835864738084228549223884759269474991823906477773537154266942158621373460749937054925099974325072367247789559400214936710616941112539375336576279027013242383615909600222339377217450980644046027215391204914511334185963432508685709419449977796855186308712501176389857528137638258979739281797243625394151167209265473051741507798655425276477183793082993639163801011708806164991946694038811014409785220506755741995756893387895587869146785133073926239006663980593344281438425158315435927096308499323630428047161234188430060385271808898331518488991112983023459020979250627808420817128563399131406042218526237488104881006863338692102551647189907210698382365993681307453095647745213636617532041819199061621940296223406271990230027900368771236544586233751353066054203096593898584565272697729860936227937495628115719124844036496575830558016634484529615202496290167193098165900032167570300623970473642745514982667995786590851779099639266352353440547256852957438546466087739003132593628190903461450059764004015258381586952926822429355988154534374945459208395005808677202641438017743507093756377307324262522619649864249559959117951706922480514827255418256251022800614958690361982270124214691958807789118154392010431318871986079859933629985543436662458572653006555792975656075310905076370249620125682452169601720248129896901954843587137653659384336263964159268195523256126169816920256560233230957048405376538790197891351769569259091847171562564590864504654981526803668379589882900481583501193314327277278234862536179963039158979157142942521331669582787285210838253639051020607004926096630339536377792424388906685852461759066089105712961391285866349456701480671862964148844636361391984285417302613441301423678359688158855185814899150968623138223147822679357262087463823508879476207290298271486764262213226238583413425687077112025389743314919687441696674172597104920100370635430339210187811868395103681758981996055514071127000211056458582436624290151501195295401438034252706030419415016723275011822040974911924993448849990112038876379175700053315423048469728410300076661053585389611529689571150071310614147393740041130144842337721970316556833572171132105419278162084503328962436342775482797371047644058231853998733472969372853075813164666843840175760022846722901886106493601545762837511199534041405031934163336199159048736648480998789673171718779962828795348395606806071116470649005826253892981471838606985062656273915728117284365330873150794710086490769411865004581370013270529439471263866624584898433364801830055491842345569184631839128250595853643140754704887591641883818512689551509598067095607525475647905248845958333904500280344059101411231127459865626968685372587261918470681156092455786816868792238524502104315469271153549532844272522685829036718539052065639389024085635434403637621984678259715813992696825086843364517329897184146973541638004887714423224673042355675162246866339305090491366031330922430158880153874260171424964054983141757314518306865658687075007816660757833669773128538321586655086170837534596045248447842412107584546417835876194915499722272592810992589044475161785129309013387439708119663768192951544954325232980834873772812666227538012271685307952754974467756128119146629919064758433025789265088437202076773786216973290996276510834707690830644338188393950162937895640375952205610099414486788477803865419577227760724219296560352366157852389758954467407158605855110409344743602125679200989895619075179775836488961352481045608238474293624431378108643209555530845998475159491836376025687190641177551101680071973217561507879047697356006124960742357486955253708330288704805571658040978642788535870893636982507137192570476847602279755107783524348079875739230659493338343760716778195448588900526101114009430688329351756302146992054071103922264818502444246502124663864532569515832966425919353163760669055116950621564876463097004271738882638619625243482178354996783660050298643606836263513587427234260197174658218727611259141727953838253534570955528914469477968840103808421538522806550633608365618240730602598097862039157362875085589003479543878363321611217498907101178314975398296252015707253899375511964601681892385576840733067310031943869786594308851789103666121187926135146658032982793452852795934888045869642365811507908242965986114037091720087310837013982927753452289562702030078385320118690863338172385320098631853990897345334361427483140156147923610970206101177239328322317021997541387981195287988323881871732974217205498621579426902391460464181213109096912979661466462492564746431419511751671346963267651916996521204651873510084719192313264454940682480669629398456457483893266962141046919070415081492075531097690400809291605600959247449517733119626486320356374930463872817894873989267579074329166692804365050071775153323705137129633222661954351148350583364592974769611700465771975808060442829775413606381588201534885453383733016435744439614514214569686850242045077200688271517954249889119169192200140322833313618594640122091934563350510763921708966984270165537860225393208050916471518719003119163526507324706265001843296949374152104903798223412247528679363655035423911003413039309297490557590235812809805006000042575406662773809746348973562358271683495900100237608648454055003785714627297866617923171893084676761678637037193812987875042199732097095945530437461473885224015981858749530049811485885527002430136318965680662719909248967398670820375914798926538887678751446291716506359937804589874401210821376609800268955978590480790343147964549189403450742523715334327002293664447740217077575279577543248187027403432314115216638635172024335054059024398085071059807735249911843360243106528681097495186231932097249950842670917141587368420255148264200397753632850125282666971580336756112038853261076717892741917215483915728094827391116821778354953738384085784216591808936571301732670599750924958630032366584364789750940163263170410968099116620495150145058872515373485239763228944763187032131011716350538553800595230746072116238954225798082267790987446896613516981113274037557977092546673908625927950947099562055420936166980352499845225131421016591384466560472488593248969888950410890225912385614638611728388437189125233616091070714334905904449617737033957650118358858899164208872039565621138906079860448476276859601066164507332250070259912060329637523445409995294767784633413749661289696265143941521330283317720602566297630702749592341662597932131030243738936376818098486032322556581716456906575653998646253891924358289207996464234652990818949912150554972112973217180911377605208060496969206858900487550664837906298390832033132186406596800474718722263034231705938006476835145490597445822601522625535691558288276439454507390822420076871756978636097890215495158717844061897835099236307085703139537825080949032577960165524712367845243358966116123581820467235737362385633630402176531520270432753555470470251696700046240854164848482962761974854682159866896821886711193526288991665041709008980585593588386828628984594958739483407978768784727289306860023348921809243999812680442578403789365834073095885854375436184929396368630896697530403705837211882617890515940819585922740568740423830332241776359871632782923282286844742047029559874460393301458913737715932428940726567269953574608959057555005501937129895819290697754745389622438903266943780158592308460534470931407286632325226918371715144795159966229374921613575484207791716066193266318561657114180841132781464590143630747696222093915144216939019556300672489269613006451110802208293752222057184901888319239508665615156442735959616653197491099329703853720254567196976975418215085289122410257113554312214451297635525249186122805877887441178222390680248269026718433705638262553452162715699925685861340704465477971173886785761327244138959006979009410290439163189124378267208283432812515841137503972484037729909692307682899441862815244798548205929316350557072826280539876617060722781119342427649294569429586172922365412239764170285589305988001806814431840561956643128938568705712027330727469263016638544897338558924674069601638407601492441867992187116730849991073723333328701990160476201735805468221327673676320341113327979917986181088765630945744178923594826851035841789245845684729502911020746331211962627043094834513269195871246378711034530700428600622962702652674023567027379427119929089276061175108473985925259719360348725433944822988716344277389780730556188676759429565850518652325044086981930816505742841947396832787562427581558129307144112301269377268245353541407683415130507283541380053949347011937066464314513285921409178064053341227277728175010066049203457201652962598770933694277755648295443991235825654818355884115154987794477956779057667242272698105877286603985567020934613430686513886377476134510970131258193223019210988450855821097680536409165855251164304237727493631944338596787110206935121705739247289326582317509362705899995285609604145373611761616398339391198468322186936271857089013233841052375675623419079609502404742817373339699552176575176096378142730456441394587137091829605930986820853596207983720627134686261325400874974275536181523303709361133217174241702930477380335888267534371310896578043431771117990564335613490829491888457801506877952229339542663235658072734344083406090042760859644456026994273083798220040705203650046740516217711034316929145745626468556827168239834334113091114505188818568116603186963275872122635440438433362440119101840841697599275151751342935832608125475768882008472538566060120787392940360872996420499122167469075321198074878272943580563314569257908537900166181497281316784812584170963177578755287329851281459999272802149791063217452374655540882384900948646248333106993726452078790170226005538882792741872919281663155132023082392143481762636142495795210011390301173928518313568610537382859169900126367747707937856928100918774723773629314552975909488383135648131297862272590655618263353376792229524794903985563281617648528432494370207023730842265575247951401068930745475073543628545332717263871325483248188532232843369290935872104746882595782248372775953926875135445551019269672455360555462899142143979183053114492884165916388066658006952267737365694475705958346542563776383469990575997547771224358195929456931445318634729503982247404932188634456121465660582432234568539127323995416708085747065567405166043140818736631740837868274253356322863572876173573939343950035480648654056590299400184968753542107769335077934022048421237643460712838986705798870352393917270840895827699783927923988287328877406223573807061747286151116333077738471785501456473985818375285126242666209744579140833721539994819494889934952722797100799446286821647739685182476301163254300786332066497301669896332216299771004829214546849593956367116397237449755568931915378200520818540665555854000282172243984225044270538893689748376943006063040705190463649571664904676312597876648631245311241279141963971331876369863753733373295161732949331971443573103520996560081657643272875364644534119704259742676674138941802478168985788113707395609879546030771466160734712284230522506101990932870184990616257341499714693368251774581363370424168556264289378616999797873141172268707947885631147212428952165085311080764553481316714926363471797232322952989017247717723577413355818277022578057447709528829853757418015110328118576300144723079301410721083756588596657961776583265731845748322152865059606468892991787951139128101063724053788594738836941269774769155634283851878993833423219826378794903928553938500413116447515985580467506817840764112379086476371964476144095674004145494887956515367466091140290400600259343917139376898378192255468445772905301219509806810434829962782995765420167797733057934732551078112503480118226351815740164572427715146257545962823808782204073517755213306107304297968075389942899297477491069934112706824776966015032453590024885183356276062772745411945890660753006136352041053298996398776095956381158714099094114705423533489962351016506952082203618588819614974383348071497239377346421912395626826831073505119974153421919762296703567342183616237714440906677792826510097470404144549150286465720855078117536475096786907998703579627637150604370174886889672898548800298858661789315291682534630000807724297000209321602967193999188804287289527936906220348998557764261185978820105460875241439411510173651422021365289983202722284071310962212568233710474030473986331115900989018277562125222613497086008353535204179268565577859106771693820192611294827301031609759344946343866284711598140212189091805351028898528935997549416251185759953233898662253646212875377175931593292047691858461686375276664117685017082942571388579991224405811091345455456203472899919311268873414529539708497410900713985118843900805532198880010813023632207045667273682765946544222056628212998061822776986055436207807494206628944871801194570508408253281648118411662498045475414921095553552196440268149422611032598730307057197648279680626667557570570400527455085185158363019790129654547811341586352099210882583197640683096200232601591908253790126761535476053577721221150862984204636520215806764754400138005461056718750825950058236153096338358903718454731962104678800828371510425583233081048249092988357720226090623239113343999839112253153018840500554943210100724414874747484842218328542864724134081453479608250328644186056074590882248083417344467559141562640542766487936135013500037488658178565969354161678955591457296789926506097458720362867272862197308817570267631412956186068362317439139165527662519711299157503406409231205746630909275119081500596193068619648644387424396025242499757992671594408919751654985586216378514523502741091210264313169246722880599141799313418528027983901307297070715929670625719165793889209891452860869896256779854559826052646661588799236655075656156555408879044381678249902462269522996160410503531538533805873262962278950495491075090801472262346667347971663639971283418846249412066678440198582157452611975338280403546796848144086447460427750986891906386309546432147813860015206959939354313497573090871307321635758610168067872940870844839940885844403604546772455976135777541746128679219032662067403237233668042593274913160705697106591040989946358379869788072194887340510401975277105166196615496322901822378843165221928567921730570083841920514620092795128108561747649481809339350105964255478755864642749961934175027760773701959146350841793021941424351828669003264734058597238599653531486898692467986793292944497740971403657785200092056267886645108048419776806542572057308394036653471683708698667747251203098329341698384088956722506614608351635958299203288383696550778637556442894500007227732314305570684769953773390918325922960978108423735385456992705728255042066314579506827080436803217097261018219009752385701040934119037873951034024002393033584228686735195830312265560815955150175988364342628197934630329485287062886321776068777785294254939034847724087125992196961458154510333004807080733735312233648279340751921102613633117002348984749312000050388064030054944684252234396214349375834331607430337071107361820545376434514609209879552772451227871940488951175112589232479607465765013248958702879829125022214654452890088425852099418777087344814346598677972355661987981304535457016144065708782796526504282352890782182259777842008950511505453782212978012642225400603512654198801423821215734219059815605938777173445067922705037185378676324660818727400530028173585974828887171516566628799785786460482064059319549429078869144372794742625665326339855076386027182966127208561361440702979217038170925634936195400007020565958850206824408367906020026467804615737125467645063267363325930126051429237765677201023425415152327562731077846504766263100147858816049178502535313076178324006226935649812633947667861711083388565349589592323909238019927642928977326262175778754185381130289804726400806226767887477037814180180155698466587762489070007366433065417147597648580014778739267589721488281143579704252958230877619970418681239806159717371258554534985185383847364196802586935772234222586340770854453129517583339490795582840064998046538124112541602732051930018926958365416544486040761525289295186774433876698740894778258856989110473956941852294479284456232345945251770162043968225835218674587859909964946304618026887538890031557179664875073090162488956750618386725844704279018950236559311632220950230873302713952366229638662808626651504259430481047101023917496561768799417556331059640437493952358244577565449161228699021734700673687741556198666943540681492874008989674621314869146911945957321101417358452463976776475439793769092752096765916441647697850106937061809722661117185423690310283380340443257794177746323561456507848605828793987672497219711075714972822423126424681787547864857932867074685022178286341602138182690157387467928786976006163458980106169072553033119567614115204210242375140724347266583022886323399389800924649324982200153395468195290462768190194629758490921536877005482069654660783361022027590030731467824568310034433167464529687068581051138554902731731324420375992786799484148005480739582866564341199263057020510126701656312632249768384535708915086888237745193075852606495243996864354230610418893723806208852389900341486569199934822075343294695769979936339265833468079048684375023587183949197563695959645463075715523345013352755155277766735488535823981486422682839220795685116816508284175926424887215459478478204252471856323390890392874093701671832627132946805618124242849812245650322896813452423674861038024538121779035623096960730255441816648554732203352991530609466392950295879510651017228578973837479422516461387382495007753058344532479463418759904298100097463974108304517989205710087381533287190704893448112040287589611510276045754915761081453731853070732521296734938238084737901066974487941839318794678005151764189469077029130146435823285913052876485154679613127542241233288341568378850974111554956640262075021667390975526889359611110920213008783596363584517793009154041421680447663091664489470431575244561274430338957904005257275591092351505523741260267804138800538225888370555715749989527662694290382198781361677390978567523114815438007047568923518699076038508738959239860944863107034167954984443372035360038927220851663801803738448270987232402359747757501319371808099809217806566865723415837665144706227064121572377225943306925980402378926937688096363036160224173670828061413177908858067940695106779842590031086064167254623141752721531737219676706505077020219035425434518953443513509520883449204092243747350938014770130688436911630260713112246330113544578226265057780431507020566554373214686887298199709752523502231740330050892631850206773987024987722454257210236347691600417032575910752513284272850355734153889130533090726493472676950776558561738127178323007120245975872966192079957956820566296369065230064576041490386713943272711215198594171324756642425773659222867596710141708479895002446088869147496851335538473847041152157914927791911867755981023609575335399440265730907603914681338561534838721032283883965060986092792246390634740000128252947986632857149206778510011082218707004209091138757624098413233805947801147289225029039694433311528670509292972686127711287561563082463673672659078694793923154547170510275711008775850883352878027103748030674267203118507521231767573490201324410332659048584353802789993314863089183406112522791815404742806785797876544854128171461234172102504458440436712753895610031560922580318809996855904688384160829317012683957533526623562641874489943864677522663725813645453408472752748158274889645079293658058992079744833081811846483294932078605595933780518514930784380176707998809398290361556537852643770701950100324077207405587225425806180352352848147401494829245704714328491221874303067722162272333018348432758315367164185426069143404313565579930068471222521195077189628222591731283987537891839539158074257396397884171249086602576610607957254932817769692250349497339235597494260505525613929926980074525423545258232691671384948007730517887163436585537291868091682682964105298143357711286820751285602916579692055994541923057656063268186108149980106402724343746223648161992532510959820607620740756727199813052858012927463649655603369434109216412212650239380523901309201212645023544315969292735148423544209853997644179017511052044221476698367353250960116511984109598885586202229823603958665789069291505982419083142510299102566502436423787320316406237482399544131828980367063089852618870110448263892959122668011488609273705536382251222756471363659881460739760722797569949163978173481912143998451740728397127704267094643018466604927462812497726356969605920527679254399874634252494759481675245300822956462802476593202772255622320059073150970910762694514509922744365862834741259984098306912345748097742427925690725250557664167601197046235103861794609533975750927083971319308382289023171535915526205368309099272152087684061815195994003294842032921801397043117533234070342648354577777853226988041735069456360514080582697004615069377539056020293248953269763336708533368145448362287886965253843703564715604808462855287220560280630484649928414726124274352442951649234695816217481444819255191907091406544440938660873894557425978481305981479005243320238121361792075940288531636831414398983079051063890690461406246470938785764927806696150668977208276088001831742675610327431874352699761688112507751009519655734805732699336969657066176260082934963110422279215413643524180194244274553539847898710639923250444715852136368760596006057114757792764883218356108892376315569041481363448795973472574537652771606844259148425559251771217154278904214606547446520104842727667895970057262055863302265195942579310859750833508811581019216084013019631000711500548134868970497194405079011460028968757604972778779874701144617982739392345001243120730659357944228834811494644198119583839639601966402124904135665980729141411272526963421457676176962590423388181611233385031594169770255087704495442146435117947996151663053294149368244716649041709014342224371974167357316836227611304261601308075030793394060143265026028504701775346993611936018171046295033219649170350167989495345080915970120951248068403199051595430573266925559268924081938097664860900715442490692825102976787684066038579056230723509945224119499103873315563524660901990789209868321306756904831799969967740330109277968392419275245056360526359706504410725699013871863496437800721804320678272719113071693779150819851901417923751515007488679055791729576456189251547145391167223985087277795676749913668718147567044918965452175077744732134748370032294670573950753003549053928870429391434957928715113415058400334894527792052853259258170650235697867055847977168580722145430813045915508050248189341719260621984642678461465317272354484170367385550403178125518504525487384808608479001401021691747678619517745609243798310200796302314270255051608206301515387292716385656099133115418464837318332740193065763601375993741829143806578071493644431956442823756922296898756375197298419514213846002979422655600139185439228598655001049967949547916790950709012240463483273771526208329402786656013220441167659163172593156088587041706233702084074479635233917611782733083830249574420601366486178355276467922747939338612901860551321298882474668852402461117956579604570777969725660963538917240261205005454941694310490373833769325067641898165549602179179144649937121886295312361443368235955026610754874640136038780268816076038660989082195386362022781858529760299692823123859893670827266538373795760608165717352616888093003390700045641606086011061516758671672915436211697450465711104399855812591610244220682663593494054399592719194354569945206859813310674176095507017973941047211276968821579527362345551234507071944796331276019013106119908732749073826424524337790115444875878636568725256449134217862162798247359317050258065779008147518367366686830754504276416913586585353335432516702761928557897922156750098180599109256510105144159806593071398827059572924006086553766097236561536550609262179656415538508823687857006800739317192528639941253716048524019039810747822624257929952713178074269431479608201830525549042680973511011661871094584466141276611042728120566789761193257530382171997705852045943305865897540183883788352167798026574832642523763921392518093630049307422991634408256319208126459443751412663799686522734483868845360773146833681581390480677335209263545917595582904192744879005475662141964464641443508945355594856981217514236781729582161915121572035998843564802848323520724338465005978290469249468133972708299687492465675508886751065379672264201762190646729529183935414384067740561619469972929317983283557029264445077646339813462588469950471542628355228670265887039358240732530935112787433322039524439127764503254990184586182287491876225210343007149596295490798994757840370377879655698231547517035056001754093252355838088058092953560075582229888772185389257668818031074770128042053409874452262702906590321087153429343732805232536687159853895039248101844125269338804166847109359128602870947912620569260801773563605702884892140561664988886232657733057733939279448050636270271722134280127014816743206913374987282605236737322269154043688823768370567512266421831209461057647836677596565973283683614699762211549158890098625183042080764764546177735014000304973229783253688168880957468025632139166581421691062291331478717634715274678040606647106787704041264829301458223723985838153901503432997736484351031276661992410764696676899071969722535485154929476508159088273280338333627312066323713625646967975304930827447669934811193049838457892583917555828710664013858368418076029382911680268419771431506355552260326593030809021394350922607012311954760492776958560992407357788300294597661757668557638177540768857141335670965374175970172675541391515949229864802029863964162938720999459710914157532312634554383041129591447746507796871025374605855474588087760180899749831114280603020707700659202606076231958768227193672190925505884414936893288134332422170239049547272659758211349546268791447007838714115954340995324650192104240680134513758417902939525067194871877342759448704695450686461040559196056015552752495049391398741992628934403474907229226462213478361820929654614743838443485725817931703408115700907468422748032745066822885496543493489212578186163678585518956857107439708399138423734026530264440245562113645621825185636918160283052235447340919374636347212235506696457103156341963163982172702037899710051638767819984620063895784345976247972929283103336857976562673581905905637911089845901232933458344587895718804906935120280697537135656240371134873068554003352684375711421855655628244509901663250352136317508558752462389362117582184226583229386609772970088244971425883265330465735325528572457524359040097335484244455388192629815300606995513817383027216689995491453463745859167267698283841048173156422754645673168497278635061010226914544079652043131537634014558491988427155894413696581251349879473858120102505999037667384586724284185758730468749200389579380858420918468444669544070166385555447842747538252871750651665853686099593059082292976799941250646944547550001896854590258564824151296875900347654365738917723232453508814246910591653923163955102705316026915634644693959102476657780408186001573861991703236976043757637450349296432317625846015032302723723864343625578750939936437714062408024779925141571889196873216404219209002558286953206376539727244418076433694458956671295073111395212293489127471581893742920655390491316223474857197336744883108121474279379642796596794759147215622227807188451740503504399134353777651989029310573519312623134533836136429775730480377743213480096263248143224878857379865647857710107544915039321291188169701369941614323812817344734668475244371356268440676340480548427497417529556229445649870720547995781322492359332553648135215278787439915214349109359343588729630543510998069438243262607724011356644675971735047678941481389416949906608445944651051863311580529645642047115775754430071856188562814011335011576778368615890170995588760340636635472735699940783432481592308400595255074946670194138705572483202398801416170898957536642901815409940918447537305941545863034598956772444918405579205880372851756978366698255649329080650033270484641041543826651579986417017065929058755156028202250558089733178812336320687796800611596024220624466606682204026864309595429537092297111483654678434853158249562369083113636511896491969022213351746234301635729821543002137902020665541858687900830965482018070212355607245659992617160478389080545295929630394791324806857418614490244829903806931556271079201146241117521196734678714058521634335007795683046485305657364210108049248404874596716013552713883113102598420974197448760313244356945430983064474401957803973890067985743570946076202318894025213728243165962905939529119792136301065435026517914563352217311113349945412055623632787525138177064734767668018839641571242073398525765997921797498223755620865942415446046780730735178235441317741330447312018639346748927148423906411074684882145744351620251004058619973925013435771104609032115655922097640711533014491126467090139722698273301183297880923971183708424900531704858490772207278530216468616803739075055220730171863808006110667193602701279888566743181429733071519430413268683587860113826572505292930211507491886541595889705286021757367248028218936528710338099641315263351535282118913328119916916383697605222163754046973804224285750673305527103523917536226266346497725210864310857365330154054333942512744841346183938185064058172566832026082478282659420718867499650758700287347492810663310146027384402296150520234019651077431632030123821440799916910227685235650012819924165105851472124979337502508891141882377970252276142532098128139397574644853316933728792812066487427701200310896815907353556551409328512301861282682532011415191600528428695238048668981557591996507482279507694292665067186397077760145139750248395134011357043769844254368398849376995213053854990866829930755825044199691498081673271315478482162717076771509279128528627812753854387047427435000756850589113696889326690468472782808322083738145576370587747881441969033230661355251417948825432257795142576752979982051979766575283898323617099884339179219786874582097937108485845870929369000240047576960005410281000068946915171708907019201506656313459229163147195174428526521655391745955813962095740569054010598978570423098197495153185159526910085118600872188552203458175271001481466867769181063268415208230189178105243950293266006510524136764005441282854822931358173307174240332692794751235161006504225244085949800519388567710071602361343474270947774651119278266679450038802978835058611108790122785674830300636472607328362936203860708373875142645800058127245937555069419541359309139754666274638330587394584610757675426508088604410325847707535958390160829588342000960518699157536648668670693988269840661517375919774650706940590154495819972000871148559507128752508725446265084133890866487607111124625659624832925381133035218536638886080963902288640758759947959150698432976183680288203728783246782797359947461934721623379005085100437502968350024363593553104623771206735486816727009436561107988784558829587639455883917534102974257683114390595451622162787225031576529013712525738762040028150079717960789391509972367757709898747179513479312543884371476915636883743178633725356427698977484010910639091364312741685863258858260741769707796427974927855577358282939594708841469530436469165814258868101208188799155664419857205851370405155010569979164716967079530784367470987047111621585864929113395253447518326486888969257372003977353074557160332012111611585197489315015014428733080957546808714379355470003959369962117885730327604690012301876460275567078760831871649859239774982105629330567083666465519979969626013851665143832346531031625466806273752749931816541896024335228274231967141889733097291284233812844528025317340397925730353973224875670468981265905746489262492147421799042906288759590627049123241994340203683620767490782868653760009489975014151262692839693352380279279512507155192575874249185982498237835899763079022895301289615712094042158261871653267018305984786028856259547789251980023062609589788940807513907682903830668707766527019647234196828970503917323066157802545152806497491865867300331381134666775408208492446344445164234889167088722464654987518448045545348094063531555139750178121258740879221026011015335379329129148598557099720108203246695004095076380199883507380995813223795587761544147049895806424458713358286752007252460010777444541387659295092112979265205153340406674716475040579218117972907036345287869002713671525725065806727008634163053674434629284753153662829464617500233485902325858832316627370585557259676856426419541250242897757900972330064862238650197326722865411133033958867036468872391890338616502375048687539575372129169552082370029415328169559983353436256076295248293648545867083971938176848585935617838296470757477487000313116112624282041771842515508400430321071980970522400353727972969532827011781944633002955478564452963214216220484831196711896631975720426760987796238988721073187723222460761963453040440306126839829106002303920156645899017440499036229099197144453125992612514939227461426146073730450937838137169161277840353077205209320493482730421047259213006765618772588375710481308272556083118559902071363176050106289663240311690493864405126968841984384630839803993135668178545448349163083663871325314704988554130619960182329036397244514712649907713196331182865684974131016141048287675687701666876832460776579389881727945328978853485353558440834898160147502445896904554907412227304397023573350695721103147657714123118384316706970240772666303666244574495181437324736406458740961263281598875017673634573801272826005596929513834181544916139801215939258942839374041794521943363288616856955819411046366340961896678881627277292537637522329175371325070887576150163425221410347166982667135017964069095142473168046554618650203845801473851209999484328240162707516087238453860285655258333035375510069907370514443761773635824258638216840160255792397991602507034378381144416032115494957571754251266583904319749405854442774414547402817743778384194944535541866849932275415260079125716959668965638569437246799858943337219850962080206205856116348379752270051075313289188403404044476776490488174633789945835891736965149235767391802774764219488978031889534142458902775973007414015270755933447257810534127072382031440991667928064440645532687740338410073415957400617837063285638746195883804540708522582572656635584182509027885202608393667601975512258669082086623353759888356054612908252815869245146405339673405685560345731572071432202364166260147158894420161881961102431504909630689693336170211976668160322675381339890638364812642497199339500099329622463137770672142538416268193219540151153376126975113809604369545049758633433115697288375533045762093314517537053958082718582015404424149881874318323904542622790695441638683221984496207623495933189721065150913319524384422105392362088764750279401000026070541905232938915085578716771215049690382300600725109570514564429542848358302715569600333808368970539126645529658772507194126451995687422490307658239332926251525708587069753300170294801930601251885594755104148278959063845533928898422334608290971598452169134661437672145302945050330223344968193526269213015954009362263232064559987728383486031306244391209493582015389473758201607820162275849492729280445373058488164900384408184520338556977182300531778671597043716706616392753861710845378651971621289470690984693942724216223706308366637125461910013113032642297275386296109230696187912781512644490097931433781190909967800995945389537826911811567911653980503480637281671080653988081884996414169735556709915852816228336106935737562961053682425007493455980512695721855694103724284635132503241400450228534119316870950794401633530559109289715150866009248808494295875078236541260135413234452125550170228898451363514218020301670271039755625263188721064421119585604788294686625650322202084308071820239207136144013500398004109090794239563529894486959403394200174525037570866574097890615646322729447599534281505620693843928921393100497959738632549982159898877604205286627537045967639152323261626956649726793719744916682045679777171451024826756497636110729521701095312106750375405424633645225995040710517136537475855928760487050354762744745019488142192082946022114364415329569369549468323280166391766906261864689155794802115496870693447958082281248366768995930648932331067208004175966029893850435910543826444396950730283060216674155552921005647615759038173842355421038742095358744210000603464726391490045184990581892309463934344322392753708351595740452956069326013819081814707585882074063400055224133161156953472542334738926161959003013812038677812155869545725340211865462605042339755582246669732734269720266946624458536086410817146328301582078867540352364747488659441849972553806549035691193952083299053178880463678024977094787844556169798080090651236273613290952801776741927852822634406095868609382025792824546375689497607955131060803657150339652778753185383509160326260609546736307703457773517065915287910880967333342958302224334163151396392259833461018546918396361144075783519778813533176310589200030553159269244464337216425129736004425019674133708946711284689436480438018597103243456370216475662152460034508511878482277704584362931306453134788407767561886716559844529291493812309134610485276694264249410635472380547718975436694286117146514156763579715505404887856816122371177504025325249387755334911569308598614720284025077368061498055920834614427479232743861711058439458190270749775691591842613765664100851949639139168286587173140479063107929141629649542263599343659868774362257694898376249947644492731995225870641687830826047983811882126784598700518427580840650392602133112698387049620094641048159967390124403789896965785629410976824798174049116371649702153047011816744510193676180104115533810356115577790201228742857160326064577514066491477469541576659333463892211946298748457843583072412799260756379339243176464124940364764807189307230225022693208999659006551480845523875254357621008011487551028743715413506596705394383262336890421008871515406824179885746245040375024938394951147897380731461011997597238502911086047983410287491206573159303124817943775321907826276976996823900107266397991872668668021984586073366765889165007702907444281744060169397917037253271010829112436116909486367606110337310641472191696714111450192327140168413394641580206279277318945873993208377510915361951591808715046267496125431127263212731229235706908951671774071396588116552916641364065719546985377400413564324198084658497839711224601058235218552805753412883697030839713170031753591878853516565787956573952973171585563594518714805537583543104888205003000723452290892780364232757664669533339239272346808054870248993927357630043343175021531527641281353067997465131665764276228339226581399028928956798686418256318278304636850530690013599180191583252783217343942829855029499495040485642872394469675153802763906191098905802965980982067383950431182375711031669986401424120853935176829910085326375885894067311597999566202814100226632469229983482470878524059344748171519814535903406576287974015916870772151413061114093287946360508045033063710754588238080317163018966394962868756005756185498504118880855086475085389494973150049388138413090844721855490748601043978706403027000371577311756522951194373316328441757803803735929276071492525227182245207564290112224140760089130932721292388252508625807761588293818629660801372773813551598460869319661438924645495500133276873968242811965642381452075560846859116839556215697804114814051223117081356899212633692429469771341298691702455168654987736386880936227238784501700363556574002500451559197049297188981000715665931485245014306968802713434034935485609750801492983574480874800469578971960344475477737815641343708272322677094946095911558327523447141109856629001131314161914384617020896111469295837737351047211286351819840457408789181055580240371188727721482306380511250902663269909045823611284656530768429488902694413132895615504228782888531150804282504591550861252057148359687741512755187774582897316484696601678870134152039771396269515446421732632916115486266032846474656871184196814008113356390241688184199056105571446112446030383673660131008444412818996924081989024133961327917302386556323092403809443826906864338175619536240908975185318174854290129863137748941822517010816523557517369572997738670077259414378884192701918875017598715061728328070446126506504298789512069230088071236918689453355893826020294877455366880280771399265176777579502067598300487192771795490338413895789974436782733328381890005013968935758346722640792263112587447796199193773555563512348873222800695502660697056775042021437457634452760758017304429358264552537983181497627193820723414125110135486109045679269977784847222354093218195588797761957842667697882792064641840611425889088867146175304080750972796979609621971556508298981188748043487501138855394301011532715848173881420853386988948992438428331450492961037749747592813341431768109401188654149610266449108835979498149190535781615839347318480829269778868494078349139204381882365502388679797254095678657447853459229536241943448235865064103075773035235644686540088411432956740885441952957529398301278694440962960823409876771438953450732859903262426555169383966486161291067046177648480228822593128096062579310328235680891609682895480974073644680021399279456650781462269822163170623690749258204404154670809802580625477370384316165763591296920550450212082872632934405689574687076167916584355738389443682000181324739130293281902531131318883117912559724126582422941229629765664724236869903795491673441210286982375959296567013207553450455273058468330085805167998695441196246532430344973256148467895482721636567820523088181097834463316734047331192220062320847503323930740390131421852814184888063627338270874212029229466576548314961655310839941721337335243272511374952510955548100800347600807222702588172911393438055714251462352948953239475329497493011217552346904492142138047105225040925815110642581951695670887633997665289058913947821318850242901172947067243664532707784683843906343479971281804831105831247040510191241844814658471400014889904212053169422558622549692584084026484402913462862584063236008452851999890659011595043417869516077880931888022728053829119046844868224747497382868819645315958061184802432453535758222955502526311531497041066197684754505442977839804016307050886411492931903582965448848783516988866935228117032700432848274830319746479422751973288493450858457989300601270392642119525490821073459260374357028655841937387918552219381988916734157470604344421182937440195425595832071080545112248086475708571128333158953136031574965310207309551558467048583696210711683857598570333027683377964997151615464024346562088287255399075913307560817130450790298944186570777862689205851390401400660891357868866941365091635412168960914228857153209328459168145958649517870366412657169149763144656972806695853805785920148353947233125916282424903260486961991505531480229069233690432238313638829758598377251952129981699949004486418488411999657538753967789717603286094665762139561726614908428349425733150028004433518714325063219346942853247040826476092043947439431468610048216485457772208269893942258023702189716846988318693350611417545239888513018337766767050050121315919313999120037485560473066297779208122410848040096570363080898811456082461956932951201171642266076577272705507624594600666717626341784164425768879764137236948409913888020243350893402437878643615329160372364012198726210165080712923479258507700107945030252953859659945884539681008115111823019252477070995660448246522684278308622031457055538823238947422331812376761404867789687520802286683933887801708401835078562561188899598113349295334140770002266508194834782156798042737709592137460737430214845376426727020246663007831392880490189062363301434886981835187792774388374227574668530877280285058575239950359043795862851946421776353558323312021763095984410955240023753126520827383801634824862894542217106505646583603827759865074947562362967675870886414527540157504937447050262601383187618089956631353863921920397870602562621153539051391816352205572480670843800399531810408495574306464105444345248450651754846980596699908195870684247162791530595792244698947363883667873343691366962702921105219669785411688740961179086498833631525457322700327620576609221771047944551031991931988542523267572747896905167658989119266242144870801869792744988045291382882248389627494101182571748738515256852676029803221491147274511156102257181142212668303319287233668866909393942575558148781048058664004826768836457937507989422896804980566847388150482923975359433697828820414764368004710037365293442895343007014240280260991996537876491749693879681109761138729478367741776352915309280324468227539478278824266088587910649865594277070464945367770103675420180802449355992219043605343174837675593833835010397816236677552041093575447540802844630452683682705707684661365852177932010729266812346676143797622310241676636369322563322391429035527499879201882343803827908899839842168715318187584655542441678098607600641146484085052844328143155066647921695696725060123331486017629702454787432935215045715252753786348705239688573369685930038031987054939686039726960983386077678644821193330533127808559763401518267470737005946490192559853184671567887754086574182649344888348539212451256616560090705209124840222096581764567936048942926133041129289188718150531562100503881302493729041602982165523567117275661507789738053802428137379161001880855027550348851504078042711470351014710601650796871136308051463017554715994926470038111644388546425968974427934809066443569803613431126013406136074339529562569329632307540984205449658799205792605216086802109997581628545257941678063771500032002393852836187275708549759785544251456371697219666420568591152963316954281554221522861149957798003831684336136706973046753987298217376483406479111061087070562094437779417827120463265422995443422562712229307177134101910013667129430388801828844399579040732397164704893082792849104080396184298498420048090438678261411739117452466958703090475436487169625462436422023994084334882384013468115219204813721494306959486583545681946068599530824638439345706364360321648082612132441661897284143625762610185658240528902015366882298369029601206497757596487921561354114987290104574165539827462115467614520939899382355407539343450930620351568576339417274604866093539511325242190742821538986330876293406744372919829667469885275214018129217101539579264832706943079640307867362579517712682030326729540648377156957760650072416371314926455004002347746793547420059654438740571442983622252228406458830528654758361575003062025688163230033389576848767732919730095897716725665509096111181486890958023560910169399137749386458672781492475638715890989966310882614163566100699505197597112521831535965023733876348289826483895526973355834448004783824180751070418102040336543976608216038823615464585790446062461556436434472423259053560795830336908244882756753629250741647515786871257638553693237421491515589809982240827617963229731151707826572105070195169752270563316097657411455989890273940920365593134879350719570897627982011517316013553648412374641942780747085979306802944312889455198579366287178122884271634311963798527939167580756967513365365880611134084554662197734941846490863829442328269180119322637497643982628117752356028091455307839880608116817498418180966595445457048394060748256302149863732422274568176161224914865775216035006505529101114781391375071939114829225796986662271665898223375645975346506669626885501713237632259619688170878697622673994994089605974899997459259833583191354429998491293861312832422736185645866612638512921128288817469995200820621452778969052481865572499051305625786134413635962430754063020700764222706733954404863470381116527651694252197323976894867146034757389157661836167279051908713013095481387621347737557851529716055150382978793826373736261982282664330500939274023129055227615950814141368243171517614161741901542967849855301865038827109805339942895834623907139506389700175279057686541181842863162115032361853187063370210720364488974207974770114409320131161961649040128173331621280787708703935270640306760621758214607786443533224366848086845395589853389453598789334432216556416637991805347340766960328179718875640049917548384555857475761051063391218249921327321822799481479229171231616405327021075585696733277747959356610224993323393832553889863958823679795470441949289969321405749024297783462043851113632369599024506349401174784400239036022414448553103962031281963472977646407440209481352592750763660302893844209628345162799188842958433347828458443385080203801030921658675633466598274261188258011891237275756779605432230686878289592423309721399189903979937918107093766767654618274446748542883970377222777513271709655231407998387294881011623287966400051526966049129701017942667267133940284020500852880267417503807180890317377275691380604133415383238997639199772425966168494497192457031456054561193863372182780969710882298655137149057671348782401325866159695965721353221648621574631352787294925699132984757018093736704594930868983329652707331924309383973838681109128013884030245424213196507401128863866242887736567105638267197400217867951096989658575893291219174007368995526309277644189006786897251632224773564290146024057906348237695878494989006068105745720664537157864423886177271994900508864964370673120807138814138216334953151821143609061916846038018590288403093774802131962155225268900180233271816585704284661601460575160047507351176315063374745435952064185310561014481555393989359545259621164130488907557086486496302815346566592478508305773244953211502699502121472234862622535769621168910288813798861850988031317494437002781420468934074077465576533375121114964268585098877906023184744467302113426461770969435646884295409016573304902809433401933919064457703803561533299146993672487749984625059463362480828056089250146042581734746568419479650969482521352894989585105321389654124907893782183907237146520913820061394042790860947811822972453869973676452817806559217213227166844810513951547314864502155049801481127693846620984940544071460508629035994704696547603604564012618165978400219609930536251345363864801258062002336574470877312497690495445340224864854653487746491241519269575432677545627327346110090376002763450878314190851585889884285093507912416588334324680400469697042686436364728148236236108835149450873852019408148366987960085302381842564544659676029896267031849043968998983479046492372535093213100708190737768517154178494344267858130796538095210437003573576020392697555342926185223498542450943677369071513751575520739671627649724376882232453304592086584444615120147556719512274944159156686320536893238384466897312932629456286160954529841944451144971255674605195814719140834793251426096938907214295099375442563217743317350925359575370342772512101433315507532921745664113418016031843618070070673767393820332397525342291287084780480719424095545843093834993055818910458837000211174853277708162974394951088565719334660998498409495085249538721634059368665146356234255883606283098389492152592559227946400215103931984982159640547925413849810383498227593728116531439530618431657054810444452840512655730296601090226846437959458922311092890995513080688573143184000301001514554085225591728917126849895146792248257606791080243604757150926073622902405367062590513084284468578439400549098391491750190413549243435730769875870300148337096877209359444524087211946010344218695979976859593111819560706121020635602935611482444815825905390423890063688078420737106021981691414210830698256760611149275464980476962468396956120259740317840926566958764762494692874835429320646666864375888867117264244394737655843561975398926866517055932731700539080097018003890248934417645955644023338973190590251816401949215588929562718600830208725555784465782890553992282185507582258311676557548110564035208079615045705731146358360792617804203931868203952307298310542160397764072997681629351627372934512946728939705720680364437869985621244906756522721407681092597508941840305355736685705018283777814824813864006502239256378660819475466953167675297476639303226230008554060859824728596146226807106469747276160290522938060726019843954099015514297356654413994174989557486193894488502561036721029467516656530073938813284538000462537559730324241481264270097903803769792329950741770035829026460178962373323882414992494436793706177444682839958936347939526873771647317739423052479251455841870341212123494323048560649904645029608248161697371070492091127760946024802203695205228509507842974355398085635860251932475620567931769734603796381872462144570095711658381638183781321170654537854587135159863500821228986350734873969175592785530424272995462742997729653061854418759225727062464697416570944528598328997750550926937901977734585606493420745616635522730661604546397183473290668770301489275453606926242157360479732813966489176145372446586256921716694069495033580028689244947673918838792934660855353014159048644847235743067596215665223906964538879912474878683934716667261259024912882443482907682696954887050325762895462468463765530542522781978939888092012690435506005385658245206926238149259150177683108865987110976721169163115614650680877904912430463461127829806915846156751809049946239623063097586925147626113469244680920967954117814379600531192711739902610666538036563455628201003900057123903922029434981117764370082571974113366759849010694997173943398427673602596629537076282650068838483932910914052064762714841585017926108599088278717097662588602287395310041650451331563652291774664780276249691147876128307297397870459063037326398387724661804625678627707760457224670818313262979446701808814102053605595870689252863800252409831127951698740677084799649319760920841072560703267584668024791366014357103518423734828592105034882267224077340988363404339452167617050584317660075326224677487397476580462604436594188483858810874483141962159862111093676017505418423080324106070388303653833097736300862199976049138061415312282779420745448854928147388750681811480868434787733170537897783554296953465570839715408545283685480694989516079312318418073889476615225493219427989564647093833857279889614680296905314582134770887197215512525985972448498778572004516183225660330791977859446507775422384228671420019834018387418590419180686286924280102055097079652440723993518062546218642853859930950085016726441536888830894843385860137011867520659952945352289486490203299412829582039632841356131521725026182507300484063401530732293835651008060343244678455998850061022105311506251617461051385707695716307559502149629665539099295504662093635855243623854377729563211120842316266631936381152079821483721151879329860589320035870065222450380641731893037396096484201542715225199369512675827352858723505669447415089360945748242485112674694968958489116164015926162924480001122633834854853857148369898196595975333668667996404055296039302516150304469170579596218888278630797215896584738510258965382005192657885413285858688435084674177606600988038381408535723926883459476024350804305816872500494476479412946962808002708528944157933285227918595553222987513658559672590794985433514305841468061030888635359138426291602938130316841878337929525976933180920772030318988391520025192651899262823144810648215668436512543017110382926006003733988874241097746794924588546831894284927114536633226192573517961233939943663838129520049428757501902844050966013445840328702286777218506656635106084335625250138514264267446610562763092507038972684197351822647269025377785533021762159147646142634447125648791906000500265422403867113450475085204045021659611012080265407989471103847573401349828077210452154924655325164623771497221200315626337976568326861603868394698208724303509520113194508417044367160016891011666996677714686826658054809014519057822185906663088614707423688241725254923694997828217772845784319870861041644716702488638744533233301171558582465216846069930773940545932661194767677393010684566375182274305321563778760440153854392320838803202502609119837194177502984034148915506341670300087852625648219448991080953127778785360831923282201112282863771654576244083229834516877169424311397184370079695676032233196500808217174504595629883393699960017001169811717230432000457322711587806566431486482384970452363634533925311116123607124712598894658763324921564738298041475143249349782803758239365224167641145592251525764331985384243731541026306625464091303440589715988620968147248062456053024441994914233994263274607243787439683491287444585369389027097868082239551771322106352282249002076577269841406978935176620009454075457546295818177016128471541773482875674375191548254422255009381751397030511485673997955305867008018484538585051987884112629535879457661171772722429064230750667452282447535589266446243692856057462327213268358558275540933675276631543625242850996529106538005491667773411352530346201576542460579098783756939946031322808861419733890471970213917913351026762323042776747499367381345225013133516772192882822849662988336188426126218186514254956435310313699054311321390934021869571473660526796079763101133473796656441939057694138550453494400913556381027876822709255554486778741016495467311001201112091507577082668456096268781630473587045303019577687176308430057727975120671582880757764418389442782742008699157939582835126930241527288269136461357717792650236721911331540688281892141194657297547020008668025050028496354268422733987875128652600205587633765781571816756026581972430454141765276447272017741710846098800152121526872163150880408486059615424507413191006569679236800491521809063277604419175146922468118087594161697045430491644574692437135165301922619658516779088248123860567923989226664965108472191884507761386164628678182901071257683428295909230384135974419378186517101080281633551495158336836084580239549031369504361747435781696060597573512559830048580914367020343188601839957538553689342808591521472224547364257232739654154670163469968301993181465061074985454649408191831242878241633164103809248677069892158299944880743030701223781751335287532425692048135565005917873590426478197714842819254347257810280450165679206352616131678245251510518159302926791452750424933301005446403041641188835388968937211386266621129366539729743485452314192961999890017749100248710750378762736843346861074854680416566929517725803850947584533000569974372667658279801062343735049724809045202326006404186091237782898934221969283857274543958448535022652068194984091428176380422046046057834633972706967806680940920592186446858390553224058107401877581990202899982730192722288345506880178834765293676822825045063776176088847439547162694112509849913257406644091132293785013666320539395627561403397331963622366090915358668036974175958257772355527855202196530101315539730799886676280306876190137331858865339512076780949460569888992321418231576733830633545227182032724407224973754648438931267947397328094265595212312076850903165139729193122361419454979444909166751797862611928571548703473221458214350676374845401524115143600904936742840914542326439255339697566738248251520852068632275040027091950050454080560270338657090020704941954200284466567677234519476659728315332535053534160072528967781521028174554864323773052841978893292122098372735179003918405679523005426236811393461400693407075503730372146658494834720260937870233115440684600194406915899423554557013666288360135258726261798465838799479912876656425222166776262213512468384867139389876028467815775915317411926469288417217865073563978720348525380201084613360178132333879080883315316454974966473720018662621969122368053738381409780666585572952136947652102699804930498679178056178962652168006968155557474358719613472041864997494579478816012268256441541801719230924521153593386345953165121092864930098399447730797741748077456608357047414681211990788022118869472362063107844145453141043885160176889883006140642911699984028234097156858521947688100463374810763562899633177564400822693458163013285265671848472207448152626403197769412862515902388168614427561884216952654575829482239953207229624868133073229105637254551675533341845337742626168978832655314833884475473629881205581373701161285413763008188475591588099156678061084211980606550137747639686767751646486973942660842728553476171261062344746531764205629818268190883067531376099938973227561558623343550788807330045287871416329608564734777093864943300522409049721123185742812089725523058136321465704123167875224264695206795800839667763055334928552430959224696779737379889728558760817018579395434013491254412342386467869295557375490280409909260097132842323717048626133586407032635428375949480368813635139151724023714270957583890213100328633076397940952853085875698370159647171751383375745537509627949087076206783479693049140017852288098305700626106548839408591572705948710368877185830810399753945844788078787521412969351829044854895030309759057038452917335386107510833260647287219279247627852165411667520123492631306245297084371703648915473676299847093371618691103506000823916211524063891658114414238831142547534243080700851115929653843960411122991686531409593255751627598180062173567339949341872315505443084807541734947042536483802598930391502668951195273227256046882118145723083230054924128911561853402918866826979071456433960337461985606527329365302705263619306854354411771687269824363316702483265587142503875353138099871765713573029155984388225185823635725396475038143495928770553213843257656383273522392593452663780412764129077392299891521400647878907635212383598495286177520411421270921096003105035084894645082410724831982869679099411881507237548850880928419436105847258058187075830634485140589743855628295123671290239717453994087739762175876936501279627394065294757947892374467597632428485740764285735363571476514527714711025566201072770017744055528083572480773609807460168442080471893653680737984580816056231610644994606729199875311065509273738906038005692975695449700040467206137485047336647030547070288539061605676492231194227820237980970216103886492982925610661114285033913884882194233583835318407694705860976826342821845823376642336799172662836321211565032189136120007542500632959412981848621895594008402834582816984903440530226694637971440216789113014201119760319420443373241109460137594659829386084942429391945314418227556018618297358060005299660958453833293796040865220388868004146846043951007922585073607427158640306387154382608873078138707691445189597669802664657712247456017713727898111973081162273733827649400934279932260393510061830619029956790780444525483824527543779097489530198976040880164839613462743763592995478121119794056088854340460647462178978996238705805219378788454258606016441051481630434812983253479350784419233318786054274501370293626249723233515616674522554834300078119596555209092044766590775619234564782956335770563375586008003678881493135106155413730057954783810316845525198503056750517421273974392163012382694838155571178021632088187834462559964430933647188087091333306729934480647788291729067425571714612894545341785267227100269361275503782229116508144652827905644980780833085486126480347131749593017483714769668036300941373921661377628897354653020979082365735777852337696143247448835413031413730325361582437733029749571461145256071776935660983051248691156599058920898444542275108017353945673195439373347412131561327238813180192849834373915942092948361830937841996469721370968413231545517717843722896408843420072088790840057021795777224169637973843019292393308155527296340495998481870786219857082931561142319916697008876806743001112757063160282690527658190359755483902096975886694251839208870109958280351526705815177061601868079723272046124931936233734648972330577276132217435840403814898858080664655343639960869959548596112166014536760572869238725739445096026319966549142536030440321505490414960993527972163692528333004055064444887858204606886277273248318893115421890985624295851672940555051754074361249376177915439989125667083561580440148283643415089832133217832022866845777978207279946470014482041817702542518612561273558788617479448499007894505630569020262262294244282323202546475149979124856705151014066149868809102307345666825747502741473420188480658315308640570613305781208187276488770736672452678366878854151363403723132829408380756046812058770113796930315010877852202569225792835489369585676912749223889794985889881274858501970689356143730782329618528890265720487838774071941547457756198839264960697907500977475580180983462144632217126017430948437123777747521818646604750942267691852702021186857454380327485097177059472221097554599177825346473623675454954416173675804791573393113813326155071598639117391240098193113903050507532707181402117341058229275575765650365273594823273336033191728220920957583310730186090493993093021830595945210321689462553646717581279663985024021076174115999414492751605143498095543020807714907240615959347611198388616535072263313856713949011607529869019135072898026520007501012524863710949582675817298886715848346989979943957819472157101259178631127980940591398320859193013843406649244840058192007879422842565631130019956776091476649108526616547945651927190843724981421110718155818158613314084006579609231786463321806988921073334041538269003849042194246029211778784711668776968363170163127520077125533138029938433525796903437642855397251898544516656457617409372484196053963407803318655864635424061012500901902468682137809344227153459760044036433663220591505943049493488652827059178690649331316757875028314881336330032342228671452092946314167946321385233601484974027772526017665240190538947792472548945822226964067895632389004631859866797861297580176158355030008523019346908912863121953259207013612172650816556369564881357821289388907881294802682435474578177119460765093975612994200440030884030314939197517076654262389119677443791906382273962704122911877405635919215867856702460202545548168833419852615995792780700464716560473612857551329283587176863132496334928244396577704924775611475370158097477035570218600626229113767874936473248613936921016688904688350007137757875663578860564947418224629066031791981241335735979157977101623300837978323814789491000458683111383742533805588677360566641632103255570861940497233983306060403468846987040507526088380853580541988084637578331842765338647098493309321506944229659453631743624506643245781808551497600502977620957286542685178449700349530826930079046329313807218385836642818314710790650512349897095113892264636062589781487310596772491695344914404003710245023898326417428115899603619191643502390540237703321252006345106572088016584587440150919929917650766544893476909466245640616856092340092639258086799703356111071653675123155021722216827533507564177631919899407299156913177398398174080600150696374105009919036899475915050348236990980272538784439093677874935950290857442920041607857948762094769890671819141255769744824752786329938946112865624048502709245430624627981503760626139748564986464401187673482055674742300147332798656685144995375203200668982439815662636885575638596124485842585707227052891012767414270718723942614305479241779277021906338000965744026276365995325713246919686636471908282990160949501688965890509648749165077090900550748884089385693587280335971823530360649693726210942029699173622387419618588608830298301998833891846135027604952063130579943091025142271857501147861844761251165528460664017928894776986145452702617537230376179672209647120550368175167612539916099926908663610230200974612830623781045447097472060281074322091583879102937534318231316106943207273582489655419952461080527446155036832327115490686232178719734464663558200735367715152527738679583522761552743304859859911763112433671358445104240816894540146667316605416887400299356462698014141660770129513741508074516945860321019905744986434099809929938422333021158129572442287935440934528862160873941011838544818279455856102971776633617062130857355402519409815205819100385096295654077958104132134462545575291340790760004398627548882705196427807624019608142291426535014723000874152699263542140445121530912062948766049195034974815813574734699269049528068828895457663262451204621935047238824955333142252977560967874349380594042279097454731142434299844348922352724978789725126125445508028525092032758329458043488782068692648357641162837002847872925003241452827347302797491340107617005390192930763486717683213998339670020486027828200338771648857403590041760462169886132338899704221417671866653172181985237930704844902518901083844314104571015211866885885346122560975884178823551505844350265988923809436826704682241601007050454538131095900836805231401436091875718490016629408967965685558077700710954504612061129881300394159407296724647661530486090296981527575487949078658085920639119337196663149351807173250174198708438920931449952530903648124572887760981026653202560652908391247053715883819109391341294248904481909070777749309485693551933671340334619508631376561596866006511397169057735027849474074270301386389785658193871167975811818997015325229000959394639721675025469923293432526001202166457605091834739974064156468137066837481232001989302378187524077389530356722802025461541586422989189375669366153369388103738321816773709318394497833305273539914009882885293106210166266707534787221163313069024152286228562963816085134436300270391417220585524036722773490796476968826235753147893950876178559338219640323539761893527712011588901301817124260645291158977447428495100089166774548913498737088465430358863639036837740538780404329040118345678939283018183294778306344069961320727326383473036692225608197478603887248488873991498246137129557502838956070689296485239985110996250590372539172034179775075235634827046896311469733670341386422117338578773359704041215544328817749108355046011441781747019366381738437832062798188486305468400870919881409707639717468064364207225839318519002380255775438914929843635972677140195867910272125556140473314072249651787309858719503989816986454003937422695444757333774612815741316908130227910350054012037672352937610344420759502702923978643277442591146540869446855872299573257640554655404490685270631175593064861482035595109655989966776616243629931053330967578789657545573567352961953935116962588829114886446567610200370019144437013372080095429257545162595690971028224407723857290545418515004014927948634432393660602222080614605163548290296991129078379034861071091336188529453394936214713987823819562692911621769655965613127547475976215968930672581864865092403778775769623803989826328933712593844774835710752139263728587821233892317095993508425383054806990062233485064554464244401595540958848394736035483394339028043032434456010125522268880917090523099644763570133298789441327954290178835535862494980170136675849012767149761427142490044779027145902713420949042407268303882913881847189496343145328656077977342900075876554003369685921405997027163938566150497410305109341288995873338463468502019737605828350253599609790526827489256278088839578694127417040046784832850874499903861711847892669767108125940799991107492157715182110556353435743198637774448178378885041550056007697784979638682726688481281795388934542193415517219643578023157758193863236422039922869351934866287412500975325741698386350834455038891511651977619339794244782189843808440223722375290622009246150349019902407872712760220560946999453344103539832205850056437666086016130834911109294513034553389552190387801997773922512899321093890639373542840402014642560446352776111811365273869056178088603349322227612042716004612031483916752182171995883239644891419832780839410452962773853916449519021833293849578392374427386519040274007087264082143847656148744746943673094681355174219986362461999137785362032510848825303611742374704512513361196009914396886204587614341744281883614683837870052266875163401408924803168794860354091598248556474273573831632732657832320298058649351572642089511093087153262658253288598679816160414740970470496391713615982666720968109203520793133444801474568007298085290857970815620340773907799851237836371678058037973138485976474653152743108868864701838396172180505313511907122113999842500710346994341705541006606795367300907837605590810055285790123374718499555982565669753642098007722552637332288831746906905238945589321905895390385940936966635074703608014360898492330920420657119642946378808235702342429400497861130855575842249859650530253904159669684611327215589244965481743424307062222588028131662939149398764166923405160979868331501087938974792988427916516018599924579356036532145416159813480554307117852302964276433995134516154014305442264032624968957589080068464482922691980696102806944623529593239994586145163581744355386969872495396357687336027693553438298058572261544302340783982160664797375642126842564509367344384401691083187051071648386485099116588222097180958873563056144913662362837320030731259562892569947976861071260176063525611224231426335957039633553174311451088536464510032518757658604897757298180976882533730701110771274995719305562099355348734522578011179922565259610678089608958922687082350912537473192940085738994138347498838154519994661171461692859738922924110861125906761890527003616890666267981389566591467750854417831196193622918709187735174015690505482449448978204711881999834334448946994684022543027822067535236678690745060206587789052715318992777308143547054711756669486120914242269524394819248788292577139485446034936665650969774816373264202793039983396679845244210637754071488650262910794047324946688004623930783671114621453271370075048050866725398200567511288337378096327102755961186845178560295826581006390076423826584856017924647679013360306466944097536335593955827836488399474997534346055162234983813113992504112793637960824358091767633046179286485515251956742413018309140127631088204394768957670235604192660520985575910996324604795886281914640205762018038656873167654266731841844510725292667924651249208205043223120533174463313785753314042996708534309025590252171537395304954526646208925692396161402534727774806594252518817744397309281510105503050621398131713862055946052943256771142381815685706601317900675005975128148768314525712726654184033248195753822017361559175498597838714016520179286094440847938033638430179411728517487588214124548386875047501718069560316086122884220385339901734195644388333676528477153228474731596683546744604255610485296750089767916518906274073049217931415222509171062780370674223338085034929651072689384822846080349185052529446348999342033216878603273489880573743809386471267734756180963202401055934520245690310010764509605586961795914241235703444721866846973792493223024070477848191800096586422577069345543096811673598633972880880974603939547248105506907643650662055871760090973353176357443663196786549019112676353205789478630900750195970579876722978665275016580998250991696736969870194834166263713449820303827629021005136228101893700646281717634771468395989623441383747314470930665293657348538408456933438336139743594740825908122494882954719307559356856957945690669477825085147973904349744236533301280661123209926638386159499715746862934339906049579997346009857464078240000368774958730466783120642222774389959816475044553095717222149830827315972797277122925061282984526042729370536885225766368640687966701853100778140508041746319947009281087267745883842560083581553755246431831417213329623552948479147866649558191812854919197461775092302182143458890945630644198607054074606610373990205066127716292714475923890294672202504727881410674749126460845115439203246001595856579367401118330660917234414490986469148290583937991081486338491984716947410800864254606719689765532325644503838240474435907867050949246426724476067733505985799168394002590016687851280449875041726737241203566081473785020545230436424978849257002443016185782752822445440455421554086763287572861863022124612519589557194270861799099023874815130080050945186615839910193020606745078726125237471544059230780676483381727264487892620096047019604461527688098238619220582332200500282541630460160876230152169868197083766963058100157127381032611241614253742515225820453753701672777912988632237920198330559724340068697013948021110084153246862142041572970103589463810236384162109255792684737008781956580088925055077582637964803857163200885076593630310941066085488702168802905151797065272333619004548950710760687860773685940741710961137813999748812835696243762772872026735883501394807883189393192247361295982722492112252003207844927847062183190510322802766221008937979087959060663240962365444503635074626500848501627536911161059577822237406492324910943886612525855441347552473065964765046714718015929713527554072545851132652136789625068207010858728401394649957428360265618038407553092815396767831470900339498531584751709245872710272631960416440615794370005340839856525778865263160096011167353684087037649671740503520002756273795834967328504816887322503851612835574349449612084996095485906143238524755094672558269392685999011502721457442317130715265597162389243634582737570957494526713721930261747706206400060213149578442127318491083591366341444730971561028247908425138381107651002537097354245287660815004222657768780451375114448092732848262388736295568467414146482569337163234365995911170604156422514028364551087047596970815388543643943919704896117983714566825888313307207237260594509507127796666054527149072646036059906714468666981582407739563962440070329858725702818965160500323920881032044195065706393124522459968908506375348100612536384355502513147384013969465837799680701356830520974387305349305082445213313749944341673301538751970292097283040068587036378401945679285422026791304193411050743822735014780106261837563262187811637970395404155484746819330836186492205021797073257343631219489694485547779919254934928295567291535342184183741628234867982327099367952371399978006520731458950766300557614778598412391312986380076558495581570932492869353816586038704700833800592898175512777126350792654998193628652192016361435061240619131854030167770432439721691899403500250719282002198726710013413526989503695404219133993442221885058193127896639890074126190793900868103380288718684877517413936715214379210179272797024209843491241262832242276875836846466164822072408405798227110977309556193514342377593895233011784487349885868461892436889872354732662869240749910855384100222501511820242500791244261251103654970775415243004717714636345817566006698845558129498313278507105023554644732039781322895184155536475023958814556940497912386990394151692498962718868439339845279639542166827733489649466500185248669020211612366637365057656242651778049352950296089087382752895142731693661279935722094860256189659208548034549964399849928391083385608101466022324029731549501255628874168026190447854000018761512662188833111985483807718073830811348759304498228126830594632692590050520192891511347792637920881483624951811830389753637791768912752658709181837347724864098285017849479252772089967165157239190980715135056669396146826794459044446213113597821065451308828975622094060727652924509335355454384385542279389205009233816371276749068542511124505567257417589913163727712849350278813586084416073166951694148447491917622718034279912281003771757353307156774596688129314979675785743185433037268516717751217503295626812213500605349791566695538640354478118822994464431585480537799351998569352408038644101081586867719906147603152881246709197521957239372023746793658275893876745259742524146593627633067806640254133043153249373564379050253901554947861221747840431885319440056902634264304503855547625349254686964794151344689379387436902075812787675796394490528266137650390297371372394812075718151973833680267840377964692806489023093267811348411349098378650982997453826808223910403435300402993221385570080545486355939968459079558386578797583479662496600718855973096604104070023640799504113006103494282660913592602752941443192179665073317159507004558024756609478409177172694225397173875700508968795563771052140525139156467406642321534582005808732032137672406944136742243683450268279762219728902474850830358086031611775614708801128651191427736632455206673775614835794010117714377506529178992423914445636366895156644474458290059213463301666580323181641525685444779974439054251955360155929429479388256515314411725786174559637342585079820404782323332699547979400683619789495884064787030191128613493461200468752856277677435155770314697245762546917609147183166884398426694916716934848907858511301333864803698317240965231134092710843224314414476328946893765610200654391055712163663026514391541326710707610896556281290159888769194876560652310411020800934569821818361898633012666306305553991429050192726187079513598039686445505807773471937733260997469217700190510437941092917378825555371728817740775357170609762047088152429987406996134040268573086572035578853672024782283893154727306439593461250531380072491834696477003053755935378469295343950660431626080727044373951945286925065716282418971471648526654976149192940990867276135070084336454754966533572259717715250411360052632894321092500108527721165924091512583912334452122811485562117505587031637770953608205671273862614038120373162468454042532616047273903147631068541853633475723962359409158554276656028335452793000860723356032836776296102785442859907844275948457378978495352931148003897267769649657078699431949139973698931485290900368428879217077567507377580388967374559712182054023040234501299737201672377338432635083386645839112021980969482495450073724362685636184986266793118458804848637125134286932378397733772376326790345133426544390304353075220392368297779852271219359869990363884423964805842294696195768556145201409476033654631126377835440423001608254994786547227621266894545313825188922596648008074812561764347854597575337629590145784276074872405955787012504278541660906096067119460712248253676932989854085113747652868792042999488085727880553720211253814747174226068903181421279341766573836353821865411068620893948398959712216213553358598910248119076682947752648728910085229923235918755961191003349558740002319004666577736961102855380612371704417465235554761890862475187450358630120339067789908928229200111290119112214486070760994855933836180081236272334796369001064297927089732818192727795010008617498838222890015581503224060433658572643843273096147178433161580951666194616470266227730388861583855870224694322758899373352239510357327877783629877879114779470187309113454938741036834973593826834950243200197250521963895652048122889528897158353588703681256086336121851962867177133163645459438821821312767855747429089941299218098267244714230940621204780752703462392337865789513658635525210317316452535349240473797452078288874230731839963525827754558704359607162046323183516778409302378137046656632983339897418277080061758874155200805712479150799943665387310746289597229094603431068276122798980064770296218048317205434884320875542088236742454028423131121646174517389093900270254340751022338291648023929111951735323587522904001959504105940007555705750650296678294799268805695343443887765670886967181899415706164011181952745693091158705931108552647933609991125479749151701202215938497805253837235678981887989648296486499829801935978613890929252354454599125730849489972796932643572052944407527813972279924496012122011753293556808429164876115080487369350416317353106806662939746758327811202939469049686823270629518890199901277695180011346472749867361190145059167105178867799121396212881735545289920368580609626180507035120359267972028793353017534037994331391940247044353264144907294752002363503945055297460086240418774682909649469156450255465812013419423255518067319400617277670500468202840887936490608040385905867040055600696770100840246849424816759256322284562378170879282483921173587636051631237609721937796676203226522611172474083099882300079017338490682825697199008308884497897691706625974038110653996911370936395128389434638729720002037016109449548311239910959453162815743695280322218279004166247263277412394221108320688786920094077493561812734660289761497551488172410423709251478675342185118522384155171739144809847438126741541240686357485194812225550986257236750355154110995658121937574340868536295077363999789639412337536199179805138659932679258511774171194248862976963845312239558563390073318427834066021348261733123412903599693049898997321694937421447381604224518167527903957459767853715909632175267148267000863439525740151703098231749280786410121692816574107239955453573386824407151400939660730939969023122565015687847444855853927287388441082971559655343400123550938376771780698017025285529485066584695429861147234046882887060544955866408369403851193269091616421864132579349016874053373493993204336273730228709613453955319902717554188299454040041443123069094327490183392983688534325879340119794047728820769276454773168857301522292356637840939136898099301949600887907972695285961940177358215437250294784698699349107998436113428197924815289722735548135742923627096577692997768485060642117792989060403641153187151695621707393403416768133174071995778332889782207802625829225244375562636249592550386579232547113838369470298496626846648838618618168207754559474237338503442034963642564566531187435394438989670037867368931550757566177604732594577502882594171837363322221347580167776351340244454899660582187209114204290173766016530410241340259879749594012937973514129320677426536300979209611393134603478915692460925315229516708771206621277210410997792915930289951209728293460884698681979246323645553003293254236354633543646309031524423293627576475364717440560289709176329538967577029945421000330519072233256666297947950784206084184822049357316062739206175607105066162305481191250760176559276466057143177216244158143989185758136886211894374114221364462895099426601840392733857626600502033968710101258384550036909089490554578753306563401551586032843726390913449907323040670917532828007176234550221872516401343795693493557120846890443816840452109508305534493214173962444626611775679955292918061380697163622060704781262790143801928280726823371519105399481670607881194498434946668695505756172122207155885528156834012698723224119780454742145202282103234357095282303277130169205645012379169755658295592878509098736409241277499155604414196218903537122759613698553896598195605256780001483769349073357273016079727493065500661722472785836740470980773538345894260590444873735898176546682343337247044629234493519535838202050803363581195890388173187266479503107579198538878302941429981078802000206958250799606749517624939850645386423640069268843160409605290039157461392547543196035576048023300585739166725879079259996731225035114760668368387383135206059796387927573642803829360258520457867935976874298335150642442173354789954379205316607467067988318217447630599763069089424317144157518854599095111189764062061693919788694546764710117173723103550385301139966968668670048553567343799158767353993002270619078659480495331978234084897871045805220081164801821263905169140532763130707024487470023216328387754284679521447817523012548430627730973046709104469624729740094261933045718660377195759351631559045058096037158929649930255260790528033802103418800720479937442333355502233589639073880777971542520334457131259770892277316730018335769622576436155636260956654901786599530535310402586032229913341394339605541900025376258170193146455619714026254167087434726663796117126752480574296441773767739110080029921207211537743117372081422692108687506525127694626247357489824942770169917849746701001523087829958947137347058296814772002895643938744452417779758060226497502747790045403490381888869032710591545470316940579644439309946534813925451024528026064278155015933165267361758093992456768248723702837418267074325915743054815111875739831620124222812800534437010311496525472569718879708242840863073111375286727386444875988795432777411101822027312775319357335275814546242841102189047051757389186812145210181949858787221031212393706863791259452774548179200708234813583091347161087227156452792549073374465765425431244766835305768751816131401499584209871441598429248705515858372991085684385695786350703270896711791437180085332237380762298310764588207474187290970788056799254611981240939379112348074151895579650829969025672647492477267100855666485705112879016890316253144604417313616699926795318800775517335056162131329958964588303872870169192901344006204285950911396767126910319271762358872949405268647049663657179273915820488180114531729711893590204880679842961990380878726404713201222011397855160456889758574769579131686275790868145387793279359757003587821366450160906669394018945466464219210829492909801676189780807835210258749469036274903577626749229908021088308879738440367972801473196259710983478062819898660074699894640234695969695557177568213601392619420837453979470777631914450376537006992345807448549784530788379696244451692827180977728426582951291284729831275300957995667396578367778862989060281729339546678153845053828221860512167121851663387293239409727639433378452318314430166962030228762919922884050370394430974120548842939336658156687938746958497319668496584143554949456931835372027381632535744579381509986491327641778360229747695557259685433809489190663830967710160111343402699564122082145636371224603998897477146772566824589263181516648754632860853727218702960334212675370440419613936988307384252054873991448313427390687075204024988470143259905632090122422669772007038464519798210315817589410870886862459914850792591985681645554520720084511073387470406236979742990397428333146230196786304915800745513336144208998708044996003810270309325865196255737248811308432019970239189888942926724691758371126114195471136114563067788739886114992952459324012550620339219064628339297224385478486036947213728073784523282842183653803517188167851158653481913698678592914589572703093086828664204113679700431189623915853378102201378315242019578981638504646598082237730235265031036763475142099736452724096005178853007255841228842227166727987459518330166684436855129466661490875909238970067245749667921235868187728010799219566705227817589841499682188154894287226020324765139376494851400507140018004784062125686086105180225756013404179274813063802584058846502323684367352565640091733427492486303879622421581459685501131007970234354108693826072233654143780085597726169923782416544132242685330780400419248360582342033451459069456141216831716890075148132978585406362939103862743327365124606226937028208737667615662532439114603551217474197807519780936530653085507847998541636852006591617625385335083813195314758597032337643677761847180077596882403335166214411030104251515179564165338945177354384692737172517494548338995266128859440609614855124746296610773015041293809290393290678123479648240609299469257575156444312323778712856367826691124841529432347043341096774730898102988305152765624694779094111621981859374752790609104839263389015422734045312801688860557204244910725744142327526135461697209494060879292918502681025503987101452908531263009400805177284910742404639104525855497473301569147429391527675120251791088402757936501412523096944655731140160318970103260753437039145199624794822231105932745106044771555647744234697852375526899512753134125115638465258732391837813704010369982326089012222057541404447041076879370269396099121883005183069837945466868438278590021631005702074520100386640542626783230236449105976612130825358015898748069303512240429809918316916023725956037701093906715317188666422840223235241784070545674731062045473968236323441110068451729809239573742272525021633182470692851949438195833635282719674625298805401208583701304839879871038677477597222677838748668515334751707288378843556443314423586120620316133893840904373112230175591229993484306136638294374028176434774230995646697160638252253359622133172189792813508213392704563589724805098616167046569140163893024898903262073330200114713190418002234201770197338172300375453187173045018566724760865378877846701586435918752188103122669531255050898675511800579287840471119605939884951853864992477150621648020957318705940220597533951230942985823463929262112943229358031643827525567947919369251684842172517067939856714865064994398782507147959903455503615426525951046220645271427110197308859390931066268706799957170512138676039651252590346159674412914544469620240292994686300948509321287790964131709831090812063441333919300844562338805944134334393466662109049070244212006160723899787531495590594815652049164406123918112187485865006127915832253601336809903922547082232011023603286626774767953050013653636902197451538228166935381698803025250163021086698185997995987205755140719232631300369211649712678013879809190161644449290579150594029491537036481043194335279873037677209323497567882690333515639731993430823702308685057382849628570210731489150090600157874260072040450681841356891328835610145936129485629034624472549704333214075444432446788674657728132008942158129162414219217342831065453542396892104492594174637773787131959616864426672422285819677790206112090626461433423717697964917884337955232698583223878126200267651592943032997370520795782653975221950960711427578935108547559070800106031497559831209381171539401735842801545432141779173607348530849975277630384302356632119585506228888932557511082806098469198684145261863604683066827479010246045498576980628863320607692794252995085336466115416448771610871175018194591776655064417879622141002816703649295837906862400977497391261820833262648033667164445944180311517197168103724149078411781973503214323904433668178115325733064442356354679725491939044232213272651829622668707550843925247356926533591259827246179300297970545941115306970358758118606207578635921337432837437641589358434786554668155309829250437938137529282457874835019125454768173293912627324076796904938996678040308162902753448480015265781300720011485638950448463816429674689402488257844776604918748236648126135192504089813598926426753024091852705840854020205346223765173942090332120387355822565187282982227153837140936839045273888633976005881879439475283008678199055229129580187175618990347877757770149075121123157723270352161983341956203860942591915732158154665899521563675792141425042571911259271722895939951555419960968606760249178001422431435440144699817355197756386652925036500065541478702468666598897950427922679097834183420828888436416048341297830171760400771619317307107389951630497777718661862039101871056200998793850364137028703448142427292940787121208919325670914602623429031156061297225495864154616472438017745262204824867338427306214996309215226041083811011105626595397454476910222287776988890240998891584264190387694746725653052123119904642249152311649953088057653262627079701092705399608164198836651741395943002854085846655201958260585185672002373936739657944476969216262208724559436233769440016255318008043555603065695475930416429567334730283361898910810308474413803917216618062263243511827867515207726371824126769997859510074630217600192143802806285721722386846233250988459182220516861786769964880699489903791010961143327600080552837634162119702271768001878829550368642837597203281495751236810038246829615335916003062343175615521237453562741434932665546185232930553407206589838038121139617190071973401789662578068633941481318369817066838471745416752464624730755361736096526059470067523949206445655116687521960119508670667035056746872841729550622563862422063694128154780694764190658064988200231004754676516697714050175278509836850300606124336260145403544164626947965979430029919024410032121383545643537199252308634913856483992508740449536344459575236105761567641407255568226743275285898049213697579986268662251549324686208210110092771740014430723538430617535735311616970034815326649113434570804235708050915028636334126823585264933022655459857558475707282278949347015413454184246085874252277163182962479132274562843107888405123388669728671535774120728143616813765044486785974322477796346468031647652344500300376051623885490613629553252066481054476118057385986875684383332537519737935822530249515338994234779000130209001114926637731826327494736254239260553745352430152726555666552844355656582675733174359393608878029180316248758129132115548597749994191730949131492098600864743433570119823309056801831724793603590920383643563869120649650701141523242580698801908794459808243355232663899310076410108224184474763461551282254298411351128726635551584091311689825105198814717329789377133086830386090193668049835885759736752671531560796300639829733327290446893134118694457514300003752460052429686574638538230785294798367753714392013370819230696930758271115443135764573912793152675093579771440440706395299987277906692142776974654535924087501640813442862135379078261967578321411992040288974473261615070838414622272825942364984948472434337043561099217686446385821712321353018710154191949512596776140613999153747046141633874303681752092409453779093195260403808287022813485769865343506404671765476894362795606237517166564139830564764104170743464911550794097480560077201190754952385609661267704740635239671728052670921620730480785537666402815308561942228518185268289253164148021556254434928131092343651920275203134302849353456082824474100108843899449617660993967153516070929876109568930447409377546939490090207738315485682835123157186065516371756893106902628703808640913901579821911742328795877388934007271684496612377038379742555914123726252141137085063360439489381156257676209442310999691614033084984084404830698869074308666455545236296949579221469240147316692704283152549369679485730796270612667643864893490752583564517255800741215577361925017371844489986077316179847603257901345687199901587305096105373262604445893947492922777750321676100985702565463708423861391889837032233559963887631850138122058900117109404789447742276105101471454684539372324372020497189443994716815511055362697018262500911763813054689205173703339584409148644722657091660023035833495992105002720297025442165714680122043576256643624062260409076117976409002540824740244076832561044251983558650152491945726666154531833345171819337189369241546115090955524421007342328622211572646226970141384623384237955867603858868552565090046778638730027407780863226171605997976045945563324810829213532817769563221512779181871348547226188416418903604720667059307698152901349618953120994161524040983297799313035635134967584866603581391135956671336327390307090958179617504092358295437722313952024897347577249911173938821561139857704371630494937187159216033819660288519997360547565264311943792048929249653826597974529197153474499235781503467500063354142330822782004150564793163521608640953806592638233061882889631759086978570236799775304740987310667882381167140893961162513012180033103678026569031815658853028081805403568487958505526448714292863106189791892927117229879028970291312711240391756988644305239024329578800187559101671327984625274251761012176079899190224722376093556267432111523893273369270632741488539775017403483233249955085356733799280897903060114025531033583054332659691035152454986749508709940116597976956147173263759722140713300397237539392394186107977867687665035411000072408658695839814452327053021048059892807046014919534856487038243205078496890533550058202542334407773604334627747686920881521394265620229741688224349092866627822239527296313264664784966360403001365748526615410857496304527045017277705274472492567317260972963723414995786773548313575407839898889642908297593179421191673834595184225570719071997436002417807389404238979628976462317717107823779524319479385333523431638949150283950555588505413526658319535695013733962259875891698982318461372234629730329341159904205561465537256104286463986678949795635453134547747322596071635003392466177199307158350388772725559902491878698328834843246215159712468022208760653151218230259766195669595059676008250575592766315430346374184557430084443811317318289243291036556686110518528508145343883882407058515199786757307064986379453974891883014063264637160800933033118700890988279536884838638895726608927436304408607454980437692645968552904130289683063967425527770141943279206111296605256367137171783369868131606988443397601041702205900368236481155269512658156140402828272552078515559013253951038179775703360637620151861008297313260034033623909270329612331228534808559692957755586157021588995089489290924192948124966269703252946999440718463130660398970991843814644734935355994663101005961035552791883179828401457788013452826312816244393234315168702996669087584780835426130664724352385239346126142040700713699016838171008823830259782344603514530234352430050126221859511512722546862180700326296907185997502580292997444757583172786859877169538450258983759131686134568330808714996296716940253656057958650048661680782427173140018194288701453905920269205245020899141359779072514138872589476149868684329871501295967889251436551732716456996181920865261132167016240926984061580039067876902652398709839154131829010003225496046266166493445759645879406863560111758653541029469408921950708039174008594736230634379058656354751396866031436233050090920483292879251842728690170640578733159110584197071672934393280317479923272010156976754512225670309006422773728587469727779953172032178803536015258374209097084448024209035916359140905685145850265603385565031328673843804186710701157080819999517709348328374085024538180088212839037808721362432539913152709133860263035167118960114310321149784395423243227261411482748923553222025676989492067521703707223301657358530349888880800863379270619271935624286074972385792612992542300713274965592954472368464233031045843718927946389091683622583755070896784680743157176016635431311104605182708882134506977809834950754082888012717913354486137173445016248925467556373833427834080410517348925313121467669515767318788009908400793722503546336766959305759422459873558933793109124261232204877963222073397524346161752818184817353631387346890582380658294319593725107444069749725691961076788570060645431646904108433506287358576711211559841696456829549408302023886528171937328525459202755173404275762034043933503579687847728345820015093794821153541165557433210933540632315603623332646758787427621144754217462051451408835241925516604724916222203948005090918389992396166384248420777516300488551034557312246170789208916614546122703651956940022992383057246978948191452441347480025796529593633223356061385429846080289824721526400133295586426705807701193046234261001973987111684654505310223505440338310546613756343680292298851415698973700427582423619289039131525459241151720647264246697314512109667163148404343612734839526484815751897548260208963985019976906723276027338005995813333503045647141003248070337139380677784335614204381881858704364457219631831995316896327059358626358128566093140402862124573245450723848060802243858034580376147625353583087764760149893538224889948449174493969158864033588666482845877539032220799725839905345326454703965943333367705920856928538104194789652241197377135864508103940612707925946310503949650163835412162007646531271613169031748242756635531826991479074837578546749324534596497734263922544638193466435288099642637865031095628553445180641580917911809986264860641223519283228110199525344924252187148504007890470195972749075973835434651810220834107213839344466384814007531988990808155705991746656734895634388576642760644641709572165891659955341028207048139816313135130236873086902694169288880065593112581535265945426982544932123721355651082782659573167356267805454858886050624561297918851723572655688141676937101079244035486146556097120674558143006799859489563034644292240100502136576330269600798216841788666071972911885969606470082124659617987478858156816996948419333075784105840196639203027057626434834585239479242512590899977928352373166005404313590270508654202456667185415975808036046598646236928333350551817737459126779578883222149580228714116762503007974142023406788974298340032039329647535755630562688901007503347817384873599175198223403222227657489467205453929528331613471022037105324700117817767811136647322911196406592565280922133127200105848129655040687575599107915729108821612594226716166721422293728438095645044708401646687106733629870464239393709777942428556444900741496580191000033456819869287758990929182334471821192424714490562957542946327138073126336982308303436200524168288763973639136067568375958021011911274158256423532809003738261189753137988152968359404072288039501250304640181846980569442540517987071535671161114437007888418682366034767761500507603372508290187568864660027321236151833511805931989588999464842537379575108126075983877237186670344052095961855398743092956928015182404351079912343548281689647865421357073404875041895304824083157178734361656194696987692432331495635160305408942666254459982331879899288885271490070274869749918620192159634458152723571018043882819369089667123106912565123947711277083342259354951323339701473592962365324844699605679427702929014939412362617366222428298217261374413473167495303933319042996687362264885845368436728497115319682332113838350001723298135775215670455865554315385372753627346394545684627474605874274320698540811991808149467826649557482922645682130989032312073662429060435625231822717335618863107603747262184047577448505036274942446204222028299807346526425797741459491369149075246038597236432017229423683418436698490372247369723096042795057313935544110093527226527040492272931721179768959703453426057347347835075333030489571507711512584302294090376181472753421308485732834902835075221126638146307829963081674176228655538970031773018164876044483975057082059840803916154455967059825461053822973650922989792260386735090644315915447563361573676391090116076454870571572599591189996468674819277365165068738637233399758893502033769935383544220615645192794576474351958616826370099379205142400322822479807958688977293314908961686504703353224132770319766834474340756245949826521990504013540753709465135655647738474044795928361026687681067646835851243717619719658392528053484387624303074681868403905493735460533931627345822671695692730342813774993484757091285157406101991804557074420859583758765242344068073161413870720886907281763622168293379336596772299581166148833939223497008297427083829461264521524310176401643511447489883431593922710908368622141434062975681286986475494583064863280345547335158481054026912546623354320373734469121569077996232294595168567464928212372827365256515200437963560769927875688154242578928321135931595452957948180859183101271954614123845435317564782085118643280764482311549405221416779991416281470870561245000522506775139648334201966160813095579874868899740073826515840303407488157003626523898056442188096005535596548234771820245032423033345333873440967188839813083806281467705871924112935253768057424453489350085312267731290326527453534635079074562275468873497789380573594186726776409597187575839139914418843143620515594538903004022715016286201696880012144443271869783103529372280030569350056042438819253468703708743665140235681089651875812990009293515487788520259371768925621880616168087850236690756219960975987101650098372110897729976294345001121290144199742306980010061974155527369760887169063904315905690651907771515175674846454342674273190318550058409058765050694012300050195513419532501070226250526848256162975339669349188602562258263902097638589126538648790214618237549388959148374346922133764986023882124344745949089093919547695488556478865492817509264230739734258407234914714117275996100069890176756086847641418934106468901430610753276899641942664325391020295540531877742184334216055409141474611674128620671906318186095470766283828877104719149181980923855784837388090142130124545352729625857465542987987906212380833760596589379735047066314311284278186002617045180534795087880555526570854199973530716455823468265257008875177614423756102149409052912184857923186620055286034064298243816062119166858691825496068807006451886973533982353652594671711318474602343836398311351122929382408843982304299413201519480765114495491327853878874406991047533696520092000991886084124641348608344896190419452727833274594803045003107957552586856979555199706037158982690441504926628465497260876188614848416572696381660171005709060089664005657742110896403671336597704492997799158075049924469414835377759598601611125837886638527463176139313938257905649867244394463773957411495901612608203713231478435289140072927699995294490565282791577871338154943370014750975254284186812376269399377080355321449553171054055970288621244648964201095933954102452630595460180907927288346177802235751791314476837278605785845274754392401721935796044865966948046235123351785883444869381238691201612348503740344734406067163731179185740392407708818165726805634594579568717759392618970379190964290115094786118726234692212200696546799073105681839038974115191899010293763882505401795842326603956539467230531782450315465798375674623741960631381008378358625672598734310546486948377926318179919472176407603658312110263715451328507635319082613413198928963726985447475455333587614013067030822978270994225557890125802377796239650456024909808915656882170548929517568452868194529313422926648475455536126094139000199027033124046778785368465085324601130338348535023116742279253512545302400755657268507538675883687627544752889340706092447138917013459025189557736992995493717500412715299157716997890517346624031144314948427821231091727237262929891171700329470143864483119083635073516891812013986545417577710375495520140384839824781586063232373288863649975663661743303685437627409698689098436095151796653086252565606450508705535661307483665383420733024312893201341823733326709225723155977599380441434349136760780492248806420817327199554414819854516005523540014200555817282301574618684428053522313093110052822354605947605695248584090409973849732519358652399326444236163046346058017425139907866431667666455041158449316516425246554134897158175230407910854958772158399680434674515628617563140453875462837106386327993678892724629380365388056215801618906082635811872463315890403451526998540681300406044323929518966631580962214695666791624834649460321135831316773459306686597048204760216118822346720263322061992242308412188416313443712692738890406091603738826451083964669560804577734950914854325815311361031924109212768873693722074859273770074001543513037836525035072604627442845401229562936046415031978718044817041820117010772367284809524513237067798558453185560435592914719334518434175419508178890374182415926477812759378719358333624459844110406176343839171924380157241380349380603061455900292842837609327454879538361605433871454815192938512179940993702656781944422566061458600031580896320780894477686119865465949174880931373041503541315926639478781106293061655757087741069096911402764466104488511181280232820513113118131350521457155492986161744860958956861153080617881778709842512524034068928791236880480483976414314886545112442242578614442550320458883550724874865911150493590568015000175656238972098310647002911419689645990571437005361590951596699365695272902125530814474653896522719953518708550414345028698723984741750889777520067018403998373708588639446467660647942104513641276712926008740706133847527665379914413895921361247480949100891559747115444742128316123628305840361724649018000278101739604180893284151134096622431246438436729266769999677272302675842415547727537216717506911288336698020496366640936831075742454486548882236267437654794400239505521618571117976484336833693240399746111971748677691810777360448614887005041573774046381522043901311460263291236059621669019667886772751546840557426355180377893211787384095593528170000621769402792099951521102551201560965102526116718021275856882032297702184422109852554138414626619483132113392041732185494834689519725879875117321259386199916574862311430202214064817208650111118425993530252131114102110471572996528711622668926414109280245216857573736197455654685206012362169233864969149336526887427708590755083137116247735970886596170135074367762566679119346699048502691638323729605399276348724960536190876429433010256774169676177273444115077420177537817666939296246403245110315256428986661515526165518845689939032407360918680951464623871580549689173844906988894244159372710589561921876151778827599169383076157843982862388141271006265321241672380413556222561274608379530571453293422704814977456320877846377753697511431455932145726551034851456117630759516669961328574392622169411713232415259222866004749292395266265906642495520084023265320881277955969663349847498581467862706914265176341229846862075960852201793372687694015454173442084777213267577652067990003516493344636655246053473196680971109693182363946561755734765649899310651218548102053229803631718772791377660625549196363307124531509898849222208019584977526956695746222446858287283889804773780301316225838658886721574212067242256210984462033711092349073690438378714851977426132704736221603383888751970194584604071257516485252474337193726743438171646725580719378653955792343255853703519403131913199348376739912573366101960329428571050426146341569733884411302572477687865539647149725829561885051460019164381535919219217966605268808235819402456964868441154388206841865868559051703463026371971804567347564515502111463953405578203164811846168576337520291955362174783340447023917522093418683144628965251006048574482815368199933678568688688345205324804460265475398918702432541321767940754630556374653673525574014311118378389536352843128387933276702851832958432201141227070762351048912635500812813273445735375281439673384272560618084242501012714237929850844089627501920932433203496758282213550498587453391310481887127191568609860388275506738615362974734137529069792344468894022152299377783166174576719794644435721845823045801260134751094273536486975796900264126540906167390740612057237934465974736064796986888779028042178352204926858482752736738535969788048070164608335777967918202335389073361458121662303097800779330988389361131891077530777739243688530029495978973494862120358757088367551112623777068119530332747882628249705878958420325324071928362711207281581858419837939527929526448586840579809087080279773310984050837753803284443791331666940491520132636985460118673268018014301408169865239725202363295581874558166203127864041139609664397778671311125738215333902632600770309212902009069535302033950297996310659989743164836863061614019579270514221020902991989052412914445427968166199516531953560003746969245577521871379963772259097965112613614022052800023270316458558877229836095738976843473750414692659745608333770975955775843454677491248709370208940583609484645910005024714061695273339247809557308540525530080850511460473537654811729558091321507912946888467076991732991843814176873277656363496493078697691217840248924524681991186214635980769562116164261933112123533163934942012079368106627321865117095205944734602238448895793116202190160464687708678725086045477158359234254118734313263056574713899424631700420698000182818313319610276396122449069824289788103923573359403335849117078936601091999124365546729912869885951726293465765333798483474415852750043043674094469322521756369528103339721196756108038491067552521869262304411884604268369883853672595992086247303523178624648653863025885748180977334973875936581981520686353951087852908046940986983625160615750377481687976354813394642018010427902249188861214691687558467023306921596939533575086381023246092513706000028926073944398191064651702174392633776297766131625785528414415216484748671507807095377625063759112900616755009215650008091686785731143869376996985990199762893983842366994885452991011835976377304672998406204093858358896167604397666050115103905187169429516632697926637635414341335592537711978438129286683797497369459936589671780322608283682395709952535356918368986460755584005398232787088664618724445433882912540371118078756553360808553847361205631677947640226100929340482896373254596394007904333441685212957761860305419104915285617968461619619102284852721316097890278893605174906821664618389394603727076518655939725436471703726922119583811422382855192052116479531664474952395171345937882142791751121389143418075208957217997192376863974717765711221518716888095321945251614288722134771006568434564986992286452456450701378246271941408925153752927802521498679800570595772593743718120634996729503768774239843633013605093283417683689301962305476379486110827746088826944014568815931037008122075972710996520027391008051203210645025441049647752596081460877589425643450422931875510928222121263157365660858389792626216165988008369288976625787181238491197515870276528027181879376565591425757548782979233228783956427111199116895800178994377148480776259907855510062293071092234051160876473438375169445015809991253601878138620752628501340194216866545166018937539424192326088580855720357803981586383756766684701125545986460659931953622311257573125694106631961259624317358556950556711747640372702281392917643168809758864455275464321000581989922078570090610119037862431653992289264274157123366338881590689817849858315426841101119145124817857722233511641549674205561269758883162757973769937182299289758806977647384221113420182196302429843125409992339365910890430887481664410683472985119090315605680265188207613658480288107422077581302391148271723322181961207623926300187986521155065027113197184284795074623545536022373274044043779990046480895157270889961076626592951525564377508135909034646217473100970216569225010606368596183170336933681298575031865044557232438244902399068320080766939933813743941160166717890948251434431011117796628482222841488179140077721900620205907894126378195291179297820077602401832617814134432166208347850927867201466027730859302139384138307628219361843153800639975877259850614789703053939171927902514502040370375377894212152129599763746789137172648713107880951314807934397766641006883935894263922285956304666998070736051983428709451746047835202064166113142445914886552902022022603566029108533265328784942477303700203757810082805029828462851786776944554645550747422648832407231283595524926222823142754272363538919966728885291342251229366923250932562406359286852789903372086608190257183674803537228902104273045747790127417903222782574978618116534705568494636370265072929399176980369808394135156997601895785873799191245161612520397770832277996423222337394369152780685354907982131497876327701453623071685476238397833882025032831011728179672909218445631819025553453542561525519423465028309477338036290477827730335409257646918575852238616271132927470184575295147776834459631728242851726128622289016791242792917574184057638129667367751667291137964317509761633423578576225273041673093908960619690388269463843821909726472195945954211436766627189005398640934963421685500996969656934363401274461977713069905552820625193116873183306800727644321056463136917436348012851183225672684717235741130654122994526083357561914134261228038586177012842615428974823257775882182557155567988155578591630415175305671892120509209024511693415595505389637364120246526840299593309348837438870532909344317207942203346811698587636135448509535601094592085323939353037076597843939219044351408864750319253527907773356196603133261322540037919140961011294258683119467211636045357499477365362853735413446906090955426445514890325802542554323036244426189032506886802838320413189523917316843410411507989128235331024379575952556025258736667288467504049158330244368498461794427661066867978533496681779201852769971141783933460504912128328451819902699262112747781062947061495930285846814557810446928365775128973922658120529963372406835609183955004776558085059279045999290831539397039668263418076095843341573217475584101373571377927441568440178284507174250072062881608240020313175247989085706483733591816754724175009265925226246661550502120682512289928466277199190058495747775014065439497808572580183803022303483131030296492683205686657481510437855643283535588196613289740874730781946194265130196015091217699490867759511717931022875894867087221155301077172157242926135358129417899676366712992454759385909075203783452337394898029064227805311810908411097611223084748770713759268208829677955657068463558990664440206284803202063329646185275948061719020199237310243069481843843679882994966314162988400499725159653248947366988320378026544115670692264687412554328151850139304665554509920558446816920943470872954705444858481324631450109631831410955607473731815787584999898882607601183439971595003946644243454367889284267011604225266047030320325874561263931801025439428882974131269364749818240610653426817281697147227210607628485315968627298467388291439228594884471480852889423062359182508140966613149146873804683824729739715853568376982292015029035930184841338814078979470127106608065439021439960425439565233489000791960864144505699960567505096760016139623900281733995971802452074012946489539327163468009896568520590010975804236295314124134244566238539585744579271277962564447620860288494706050196876552634552999444079772412146048212751027273842747348788217667167127948062435432773694828471773706270169091995396856422157860001784233293672698807240582931657430998341156872956293622463559024138794715354644301666052581231936949555753605064039256493550554214455052468197267281975225489904916424061094898710614454578981232846089998473161181048260916126218207862283538650232743446731930569625935748530241904113490940683011838808178432647963075529393669869779133382465638765597307333744416034202800625575973400971463627248476259258302133717235801317761896501066089921900380739927542864905107810194028130063628456339993883947935620732650864214036050167288459082985976726390740870956310673275183589220437973001038341887733930496938417901406321393590858392043365693455176273489320269217521204640214228030828954131642351691150054495841124399553120129489168808087183590956907948728670638172657551893427337928424030086370182503324646929012393869014022243652403854956991192748294536243228725385839020643763028408171787708919227870125141146262633731188629302977332495772596330976660224549543580599167669167550030286515492824744212707600037786411092086460413632608311883736056378836308057247001293627552698874246037311803116697327856458065128977235050389521601302421049773031712544441743807589634690847467766545095298891551185595216165230297696733049907965337790246392937178726548362512127092022265338294039012484206006939663065114710484054016493730971461291321804596640040305410258660322359941899649148412053421533978296776052280663276403274017247342145005459724074201294282897192719489752670400813167036158822909134977245680569848627360799647546179461363129661170486279073108348745592607725772601308030407981133735738698686813195169838261701530745674744608524882986223241928057540596336260136882626713985335817743330978802898160066819101104048881934996504345783850462302660693873459628932383268519709811781827263912544064193763796784452309571377766948608791005354271101800854593145022818121163056386127852921107337281223621492382847254931717484167341517549515427751179310111534325004497166228723994631311108536087741970560905163095157749233466777404771277335854006279488841373330407184213676212699309565333808878498813274608017946256195877364546861473212775758360106958231889785095347075598053695133033112937464907377205825789730397234278746570330221941011744450205800028033903370975831898109223981256987269563822288352896055570280038168529906103365615433987398581110480581133758639807626578284261339022550961194141110079526649652777713711443999627576126176151255789854608495136068346597178964242269406781341841408517536033979364301505413310896479866392161999197499898334262703587141917174250132674245712785512485903822180260920044951990648354788536887751901571592457525164010881919016942618675505768611455297343886905172130275532219056017287748955704810001012605027971956934230354122445117848118002741429220790566369980537598961183133313297190937795805712550352899711774663466693900097840434206047708443889709537859820992781714523408401150066353671151395536938521575605139398254808299848686502235001252539031590023015881360561070009832864337787257736428587762813790297868912735339962138834146980740579855269566117940248782485234772952259818865216471248361235738577562335605737048595935828891465095295352996392039823506306131633738225164903710999544028844521958459884052736726743789696810939245202271603097248218143864785288463746557370956777690288969207605714957177947603743219569594145172378206966116395795795935981238308310609119886292128349350009845853781152714894827925875528878219575430140405488274652590610044183576763004844238435965500313708272588508958714360222052811393221298505358417683466984928900038303303381332782386225150851677101795194776373963696683355718796537727798443468905845629686262098937695474563479747095247447474113707145487262415464286244070889742897707268229929920056183525224324456609073471989285397673931782879028985972494073908980780075345413302821744254781112308290823073275414962461922693944616045200420165416222787861909722321639661925153748010583378745274500082252446385884756200768014766535556115587714224894179410154552242784893161591426799280366151252532824889868834626883551883793424099666276929205471934118238441318680094834409268452158016038059694338784856228610054010949706799067561568717541453540351337843760922375540693479389016997961851213581509866120415304041593319000214362865162489081926190130834997266983339701774902452019443744971153562832820354004322620148844767218880684007114541387429284325521844347895390645972326157153913094974432152195623703028315601850796158044996479539922843462485232232125491364379287307980768139026882733449634099340546020048402615003234600804533022407374943320353680131750532794791976754573588910658437597332987282214277850070527654784223682821549144368724470328053249274589502298646785119731071543719957187315626561121214186431828185202136125920437710487626794914057778192246908284384050078328294036973277217364941204363358145900866555095037415425897366051600532597598708520612844710687397175604688608684817654574695900169717550062741052135225955322239037884892324374065315184236399187975862112064828540367969578961907877143369499119724750664092019216159848111321499085117330513589243060290788205422439788318250581986920587364424151888748728215788439717137662787696241550182151906588903233835763610519204188960748691244689017267663592748223890718612786318754959382586590034291506448637794440877687349915968961900657585356024995329161200093342231773605924823780786341467023322765642186283567260809187836425867187578998975219420762761621624048916286384464854093016247461589890385915193315811685193356407719082347112609415504897536840427811262232157462207845697712358172548902218467607742650682172081229496324352960618641038405691746410467971500692182264427524587070814483993449633981859449779306530785936314267015845820730827544262535919431273481928740813198728217880254820039714012827886885829213855847122146728366421672172594437200433957889503657006021772041671884602639323536268032967187732232040677249148565389482957992343481587505037504932684933520403285898542408166688965129756672571187838296584751766533988382748449173347483042238077193633223077625637938595692441517433061437968681012904766369208739341498874670119709752789124834014681589917575628593368953420724892153542519197360163852931257041046380024091869430504003638869960888692641143341991847501811889161507379881342395002799174029935597870298037308514078592630465837216488885298567443081537385146983475083421143022791323210493890417105405132200345782038949253485846661626420892204203943518897430313272730499748959831105199756898733300077498406973985522600488028550825225984882836822712676656951226737079034006324363477454952459424413173539290126962309576657810837308567500873350494944145280834242452856916027766157888029633670826963892567032338775086486797441664057425285569917867586254210884186764650780453852472053778297469102069740086246519415170176835290746965807681183690095226746348591818457053401595359643277596610292424271313781503687953251779083771862180670623024525249674152718448036148921030415584002698333651851459562495079180742462366491001126561375569830653602865003931788610844932114576728960942645818948019121039378884409421147486140459747446532120040230264664469988081093501724145798885720507469657031075221964739414305578012512932559190601440837923584944270406244295269556733734002951565455508256320361173165093689696724832709643616305089514195371887820547579647038846594730342791692863414248496109081356856215497539139280397638718207162131224997375651400907019100751755649020048296472086992327697034903241115728999376754795498517005492759039555983114802442608678627343906691145631635694739179900852390749240458548776876401750480095829631040844143320437970611428078603556660354347429548746239294947266587978869298099440246374148952072294003067201185111905964578576884440281547722881767393554197099141644065317583704514671222740581900302105136548582174035468171659685244621817833757283869994099458540072543316938498452546349589886619040660638615565652474647192529773009137848728561973896594768643672920039085682095984378084637441696378086608260672925350183117737640518906046662783632244702205991567174611381429564285542448624549724537792450212183917082705019059868449051149490806711463074523955573727222503904936111677992769554124204179302354186850686069948208058097201721613872922544836241955748925148806455000029056657830405916727214686884028748537884902407605692697646840079677526509435096466334558921511750739215811786852332125439215794442644223940753929220340029319308118245389943944928936050147600244585377937149519270116574175541965458254238794123008880692482838732479540759584462341071250607333302259664977370572702545611645448379082543161046655536628972600777819419403801253636433309187035072857587875082627533602222044653270620813621611529005334465284722607308109363280104973454189790719367689294918798688614766123956872949418776782849844671246183964210395949865524226028538596939737945072876238922276735486858977211761543001564373719961164031080376325650974605066244277287883001361797691479878826218209705574357090600615462917610111123317081369124309900102062033500048006736020212460570796789303383271435901918278410620465591809931485113753243033769041186175742888504199313864302242741236789944819513960933580469919619149916820344737632826707176978417038053921593173436983283510314345491466267419236951423581245089371497551130904028384225915910893176111286462270688515952786133952207477784090698282736275329318944417799242318359759868301701643420753279198263207360928619381153200233042583756717666451897576143295767461678687512671528322434026120420735015717957616578238654382575353397186770433565772489651036862368226619133361789653438052487251081734251788734683500546108522551780269447304425698352154643573451599874226110682198555386981312199676423009645170793997754339047111452813897816618946428908354090203678836487256664723479634029302386490477440032873221685682223283934994040578181194838922502663942795234568893886832973308509792436341669518333063802463440732206007706161334501549925008934138421346917851345842187170397512945205069777560974848944480839705817408302142244629751268261257440039612376343438549791360950305924126927826377029496328144985844050927503921791908575384821528140923679983263204766000976144970900728906679824324641615921598694688214258370183534513388948856210331140534991635763722676631077745599047714566641659018477916251624436335130852090280742127422146362450738761505940159281744547585074877823986159142375283614190875294166545761773883402849981278819193055402512461947280397421692129037718117833842663667001079266846911820962416341240451192084945068147806765620252431335136708574695540685946117192522026919622458182037946127088221992661280491180223720126871624278822920266832924019948644527180691836442103393853415181288865257401292883240312350974518276977380582987073791330709196727780410731105351014066292532287897706382626341721383900405249063082770962783058438900945793541774066091703895887070337458787329406630342824372300495040584594882790021972270054599638026856101596099999148114080514404129754071018071550546107064845533646925661086016657197456746191440333173030339069699369444168630980725478283833591424058802897191404741576511064287955587373752431820208424603419070594574429901452636820712189426963925550663534889180751286297510644062404837334974523821702724249671870525923414671347922984803889825164982383114736333534839536104633842793828681874898190822317418591434307891220874852142199251584256680176982708090803949224335906778040064660909811925527307328301660184607784560636108962076859983243613429833416623871920247508442480260627141695037421513082221699190645319773010908225792982538747657961817392984510439870345827553609994340925789388118479776022959054901617460780257771644212691018177081619476064622401143477188608298298726335405822380725607238158759342550014429034270322545779526014699892588984822941139041179121593692670578476783667987819213617461345970804022636973445667366760744278222121903907606093731745122687506538926305854424620429119607608575243799357855353892963793910475153017724338472253841444931024733780400670030932486259313907815425050193121105935712752255414826292193385254066665893726902398136262655180336144345727718631057463144320481786941582839392889621423174956293485331843488202035888189885687364895175345581814693875584278182706907189927998026222029740409953999990617090375243115273775951394952860644655906941765470816126478906982610438714039465041845452372914838823761595070690102051300528451766434815543658352665891607953406333983985076453470385546889409816858128784149278682940746643645251494914432302513129966433499525483593157578770288139351491523881496373210106653713964955889135128668106274583737237254049044395180085127562736232517369557299754285785087671658865833815788424464641751206888042243549100037426595688124670839694672843410555525949315488895132720073329905808577965901327443901564822736906959639943774413479091598815518174920722034740849185527904919220516409172522259622304544658707908885783169231462629899246996867723171451711098676711151648423246982771390989676657570771571495051971712918485640880318721642576307963555263354201561663653922066301515896998678940222459068794411711904516774025011763771696912727167980040320567928806761730872065313964678716402285028452049438169599015502315524409085424897862110296560398533242850903055373908691822910337190641689458536673990804742862412569355339492633657314025485239774466549694050282314405766861585645079974702148258024321605822332801308414024797265824950283018141694202254773485500390614153919290328861034541867612678647910605123653586955479204852136562444721287048247346980964670493944468971125904370857144838331680607622011065191016029982373116268730096703732370923799434650498633430923212320649274784309961867692432048515474661291280918414734769523359250400672951232778143257459599861094950375462781831192611179322233598563206131436108924001616447513092814987990696441361339096559957596389816047884374168165006979115960652819904709101628121892117441514923611045181857206832021230638032936251802575960706968371927460676818025455842655967262254700824322858365630396366881886372528621316586187000406915307142270461213760972180131181588671674522557963623357738314469748153295315299552637750217510870396045268960668869150650673839964505716443945512241322734206506158685974941365569490591918990544934433191084097346232286884214804113009969721671970415253188369389769634589404402611596438841157969077012561042947285985489666265030749259660571316109263854982406699276730602109667455259093341162556140863182466084558525388928352772269235990370521052888620031284708769060538278886748486341530719453163836957952704769471579644681991082041534806290522155406179791664035136738419712248905009682712748115216826840198644770419054633793751611885453757040305698029579686131565765657993425848031487055709244108029018862687616819382918954668696945635836584641050473507966160806124729859778666029935426460950162778198578174120466409856293668289151349874536951657910416058002730539408739312415396335087071702305485350765676328098998769825620327848796466394066511386671506131495172039871055847683939987421274470166160044548742250020147569155636145179054543083752532163189914385050547987103581077363555119241751905969786696029105687751382981672836629375672732202563048815202932135193564930324127904134548970253189258749770913396945318411842397535133384940415673955167047676760978945114157376563848435442129813026383991924728778431521276479184656087472481023727053024192641223471646975493299100051717772242350691762243051734738174277260052178666467265393514487509868428536438676137486541437943393757896068191798394706429507155947805631432398022732315102414912825988706710915227509436493532676000316361677447218352520083460121804886658986483362078411693901234564934037400744756717689354760149177112829603334202840415667653521909657929752555911059011739152242708872585034157579752872748698619091281712263265310286045440263400881737409591664755024399714011531847373503108655611348587667368522350391239660874415821756383301626925288171512014659039564584806728721313846705582081013124212698452089558861045901420617792437699677244168799753418591998708850224802918596573341310059303178791700764427087064691828852036843703235172787346220405432459817729021219802746297985179069889829546721413281167177895990854886424326912753343853418505297082138917939748232393306450820044549652324199207245840990646774700870886648762690567672475653112059619446830988106429899385904212420427150559525535614685145704699369151406290154686736880042060510425368343472626580761611531729500004667015192492569438864903078891152006539476616558890664762653358231381558800333724180862892955229172471907296511923743753335650848280574735136366788043704036737909484019116700902419049108816927788833352960997836981130911978286134650436880046995018431991038949543502007425033812949333224510558380672626838773996236517536325709321367018933786098404840289135735654560364361073851511940920538572901684401063057189340539760082492898380647632900763747706071772090278624919152659095700599248489176533709750777903392235284957118835865366319608944945654195391073627902565015390740506747927102019610071241461511174673365682956849171121300567620713683140980911066856663701533453407089175292618858398106713715670867139316986092513171827086176282346463302552125023415024485516899524549196709785149216706973119356460210455038033309482045494611044155662887296411908673093873013241060467409611512836124747199393389532921384856193167268724862465610154103430003365334250083069596965591206747257805820446949113399122597757245245921463747567225749937433573531077469641916624727120003653826355247719000472511153729835429756288356743501702528373862345615407721509684971626958276801355765326473568244971918122935792366795762739436574270331854665066322072967549994115779442352186040474149074734343999484802719565006883475151355642275827531945068939303889566086026221507907976260036155023851075064013397300518957163662959230703617081020473225900054742850003491023741038055340598504727268761285013021094880192118643217304945357792041831482039047632127715276620226316463953730617516509865485535888649040077577816856933275017645328195767143750434748893575483418139724379729140725399645101040870032430932831275564131063404533583316399153855306712998575368737284764235857922990672433295832499523033017442237209022788494738255842527461835877870967192019652611165908064817776037088485811324468322723073911855310763322458222915889934599436872335141690190238511515792345742082677660097408429911253534695110611124190902728934808425056679046869567795132865343366775893187231392150793408528032791573979453838942864512115807203863316165233697105221953911632423493685571729465267650988715670289161880871864039519942923760295324761951883484034183536311374428925056680882081665171844562320429537192157893199267815394082323912097988902973414141459681429086896506377006642800177044045612799804796532230086740448554175344400393726567720442175394121724603412361133251782919752157414782348076835731617457109959138847521450917365229189251395656571800904241731138239310057608089679953484418305236505875289241346405587982172631681544563288500417263890405918116417594268465703782975033044044222090229357473387759794361676601800235710993343184276489394074970666397913582076296819269016615323863222734924562392258998570199756844206855174228391488777509013918649193857533074838229880381661803303658847959721203113769446498721325195360486789980480076360094319616011719277042215026111963172385977661652570358573136013865844813738826828530213853210934480132898375117696643748002796779742423927477516939034173010177256161093804850724252413497981442772959686382190493724017598046367790016220884266383554554081270422426403434469924639278612280508845270968185115439027709880865403391436843612782191751873889587373586679569703311248084552369306510737497235767968471231236124473592360225790927614555788324213148976632288297599485907295529792215095262003318476781441482868823589027952856335341836993590499697592259996005223502564656558613353512614240369838253104215903739229760507406733660904988279628401193389925543294251357526104397811725738705647894989812051081620882153890213575169848134262164742173095253449327509614728878631528615861767756972877567712454077049117845514076313809431315260627780740627033755792587189148334456448104345966386270038383885960850157112616649488491385768192889808973020291008923287670977886699043237450440858846608514764832748779069617343054510055148329418949954287411541032600664242436770736867218978860881647720748881417460876467736062098546175140587279849102554495217737780297961630529376600230653239349206061269160402006708128339903066507248791969095642313328320496438834700796320081909607463029021766891125111290271346557783162132559562694045595481643966287781568840026073035729915135075344827541351341215150967152729155213215105096410874799306874090934487045098949120443718137887123668112011799126324048670034342769003276312103655164191791804856077756741957400096087178458984151491203071743396673063258505161065427039806559727178058816596608756356438964867104968733602128256575154016519323891886222824962989403263786376371416693056632495335891627704540369816331878026130410553442675912808644077982789522763573118402664063815674988810111535140196309004551048450570890486580878244803777261414818453691587266096957602239088499815889458503239277851533388977925337913807579245532578078884208152143658495722117786224592067121116572255870680201670561544500950068428040168701110246977128032511006362522472368341752144679033579389076753373755240663703262222031271803757557392994672450493253707114150011980561758131325006891901865984142180314430440213860649872995425002962957026349315738122144727108819570740393866716853679078189661379229115407260452924520351855407385248208828117602294079491264833023809424982356183430776938604863451109123336543200675893087249993430811342064575558463044205328354085787621696998645585480993734119082002073994851732686068733587463045636246645762064388258426653639469543348381886643959472885448567367965083425519820033181127047842814152642348821362732622123585056228803975585127581347951329132513182019939860921298723971143215965506289633622752124299416511348414552068693119595690813805406445126485431401976992118708397913471651103214105731394018687522819057140803405552422223050212614322435206206349037314433828621208740311032342437261300838304485250782346847453583690759935839546183271053138214868308542543253118126050789208328483464736470470836671159451053404848295663071027660254211282794787347876691400330953899450987275407764652005254974059211400219585043709020297691657666901946131316248774108665638854304708413222143870939974637565889848931194545905234651794483211556061868369719480332580805485980429603026131003238525148885217686309573358493299586598757059746726801558101097367522377275373363010119246354718588051806500223302118423601293054053031124509675591648573565393058772262359391870809621736677659185998811195817193377082575013760917335016486236650347605627337767566066936628393136619211973989718242084804416729439559858426313083083697234559059425969167266904608095318968288025876496705351521757730705122962265900311044127774383794347797628157001735306166742463841746252035196143343737282827148746615258259298404999341855540800168062876206582284670478123670688943971870885218120507956621422700601304018639512059644664172779637566815191660520082708892452180239581031616501115151258407571691339138758457239142689795134279187248897376114659960080962618561468378089347882630947790642365396802696519641697253614273616533964705996737016015940949447581015623934513317108681460734381327969516818469497549119791723593524594072224424142760589834333834038504028105835965923548298660369787332390195916969415625436628096386310631556759428934032511464780913395664732269993022222341137106795303715509884959719863244014298323653031401360187760965804358186240424662095640153976042038856495639197221749398504971311964899895983823558450036813251322919488961814015580236031536154284188392070697708730567297980274646787914863734380630294614601223944934816432078094064960721788926681898030623072064138083410885911644545028665435011437845655673393117961048394123873554750779292986324171155549811696379490102781980727717597019867727026570460614032657187128115479966364843744500853836748424644301263794423959132887326503501112152956007111303376675271295515675569174835541672035196653143130091463672342379242138229613036041989217512496381759788915597706041000404813958561264391456883765236596299879504167761693760874433343060324493527362307544703961194328705728065091551369121101554878923655680402767997665317594395021695307277561877387653697086708486891819436746765937671798885084027568818446580181453527943316684625115324475087952840652690695598329140253389757134672699872985599288416317598225483878773700723739514147166599193905750149286083567755169124411290230290877169195264933728275540172781852792501915172841809955971401177392125773794376502500396366215480084030214696837348486027786545848856818721512367739117818130733291904146929848693462659847550474264574102366821874445840574528804659732164673950677833225744739553123119786247612901531663185659112253869209809404755530249949530034654796459870459765827714221508895662443208652316837514443975362260926139148278671544778728623420414403086860009969156107159258545740874198016515594701142923496906892446055635362797238431243580429337643794922445259443911240133102396327880622234805867363896462744455284407114967972172453508900457796070847423737374464987803328738522889243327562983414945444486548752133176237862869460901454039115922161055962630327423342613715675941501369938406347459934040084093004828278119577552530853068588224621159940790031946689244184396544925851495030996118197013461754183599010630215877046793463097296845207083938350239497472787646113437537372666412208010624574158220852168263304434116045326130595881545909733229361710120072323480735490186290211012223042344328744669138432318794956109203590598907627361223818831776139537822547204669546411434256420660766704144489299510771570500828609616378603784277342877642332902581958006636239490408158939443722306557790679154805411992401481036901880980215272690950609256293673100906460983339803853846964188099806224866111054648071891212216237933781973345504158942486640237506403281308021482038360330781681702896212685400011636780951917832343304773566025029267042045062321254835783149770287280048745704232194615110598763507765483595642703606538308536704886636122345926024195638397250741805031777003364707357415970771797882928141222285032172137575375254198432914175032194001936104456814601272167076959653421081210714938270969352193733246760399405484894839697109425880451252740163395369890358909138019351224747151743773945451107046214013232289826651945985883831125101275870042410520046337574099191259517190976398195425644454278869131138280696690991625382611009090077906855169989543923103191145299354954379693713892427514159196115322448123601847298481165337178690231228957036151923025331740323937037519110233037863614208136769327917078310965562151478433247847337046396668677880315717943080685556597934831873897069787545404964766273260680926949997474750301838516652638638721629668250922692377463502727438994142098848788269361329671088722840528286389768904487293193235821797243773393085870804097197065918012996659385567453048074868334978612021048642562592893185593356986116946432345872022640460226939458555539872560318323729412244350423881488257642103266871231721950246902691429796936248363053051365220628921645955261538634228093395299103639573558883098794625024011702010244633999565798153582513958677259359022597969861366624721797410219082635889486351793079866523764732641015003277875536218229662835800508255195896928452073643762335232091846755517220405074664164503542095836176203215169082167476574611039458909789996045065497946472915752635012451610706732540697733335391355334641076929368617575394384726782445004718541824493752828537941193401227969100247587877150197718810777718583855205324582573198638014372439712997450604739402564940847373375067745027656390836471631806101302667354712340428936236981365400260687123739608589489474372516753252619658292405060005011397809478433550378490921157477062559885448916982596231596217025360775600602625532894071494983805671040794469346939123339637066909354473097411855693588562507749048226756617783295099702666965307234153130934184328636856652453525273923752376507546729652868152115939062628177530742776890285527630654267855676890856125897920967285431547928148794240475085735441073275056612180414425369326118146537074248004734592613675260908288727788023844510818722347945510637619324095953795736876754383570580675871170372806058375980891203264726537612153192139022510175000157510024360292783519644766269115685318519211395972443355263799270511139012201025281044799930653370235958005425273508753041714711975763747354056028579596746045136961994930415371862899105057063654227797243250631958932674415150286446075780264019203946047428019930143126393503945236251467368863929766501418881254971485161601895255954550032343753486637791771755473121106335418370531370881665178136536956213839584759530372498577705050538928540901223998867176899690851810863787664808222166666279141795546143261479978249496988887882976174003535550225019542556829350669334128121973075707717590160409061090953330401179738994738421524438314164632704586394674841031005342882864638342508456877881544815585581978339697882672389392186016340296938620267375086938821101549426960579747706676309702893862266406706631079494957235501072714723892385014079241670837092452489869645763869859255097773873153515323871752018659078222167767737026285325769662124617451511403975227907747321483727680231999133728941405318224868855538360865897999927922337430343893628441918123098366547054753945951799149604197433719907455536519556013818361600041733012345112428750494956318940155345518434427229551243440659363052848854669095505705971640083510486799677653679006089919729461757910413422936269928046386628423060369585714857765801931586587904547066845635086774518164741653672267761972476968209015694162966107911159224654817075535970401012134625788868898782477240708982050818637213683674287737907165840313764843723298010848692360792433796708639322918773548921114577846563795732812557191280715444906144117236647893714465039715209178131797912568611144766930767933404506915975337039983607835179236571941572331419733564110959311785929584065611475207544951994144850682905249441594964560680090930108854713843314014476524049764702931799421563545792865850992098521931167888678565565897797011472566025682437505358690178699040932680253081844342869841373196881748481247383573106501732967139753151062159324530741397705857291475544956758844561070842674795771008108655785441224129149801782212671868178040980506463216224274548396271025328587516564579568427296051447302817633868989980961879153484864386813722566756168490276367491840691709859899128323836577201686952537958059924659407917621251877044001794237350037648959040631696726749913122069110974208865628830170192164252763470668601335157026008205176506129006338579939107756267968438891487469824692913801446986653945957864349786556455252088598316557482054331203250936597358796271658384644748269234931690309609914900903668229147466995247105591945389808586326735210546708139583420830022017098941425054413165607796722615302822072978572163561745107680593574175937508698692280314746943795968458186274249123662698596317251125424810453733795317048849954679782863716718442412406247954031886520607760631934972090315312156960425493648729897731937128843754523699098124593886979149200441181809025098329238619935568224982045112197933616535373886481645097415257553653457688352450538326678609276931764421050201348486680626167633890728517444761877535079457009777761614584161131888137826130453170035231603172086493967023291980309951725470137140023868320438913921280462944803038132804494821199604057767554582784191774353304202367094682928528423077465789175928966214730064974141682945497802666435763484619448229307828869728483247307643315651415016062780168041139409336426335104622543305090024600010085730320463287031115123499762074961179496213763735471821429582785606681579228935088810323103861892660595496438375741780801025006680943752063583048970176372793916069533203602767791577231700431833676563383586796872266177690190289397569488597402561956952178711004660098993943935740471274797614810442658598930090762319307290645179205726799283314653543805563081693556561713901029961177781451933551430009465389719462990013099930071300808438546385064771526799270665744951717713875204242403448016485239764476061944751874711918993112574899908047571659960655834307238150377802907685957611382350794323441434349281044607347895099967928332649166512732002274722748103679605828454136843627428235831087856118409829022430692195415588764296259766009407071710837858505930839151747606304555311569651555044148872156407552901562253281947922246862537378572038726522477996376682940670622258178461900132634021972004515658679701523229936155551429550065551946607843155614883796508349493373167981465938600042690010707995812542136496974203711599204682907971628068215297379284461523723625657323741899295057446361511346698715437281689853717104729407254147351457845271120003777815233581054101382406134950525107758795914296387772512296171513081038312302323036069662391281770863539719404524155570202428693141969696762311264688085937624556613212920131965630296309231494834742243317027571971906331615977231081713312406250555407147053830984996352523321576235913867439042926446557506997301004720544440900611392489168842569953056863949135127634383225081913494316846207008655145788070736242440745453182654296158899632845075178393183388819884121155464957644071876844951347829492978100557471160615638703969984255280024279777685856252637454451705213718852063432464602851897636232706615625688007638227176515511866607087581908907042282912672417548840582995662177598734216986164965238985530542978374746356556111388889098973986407263738910468241545764078656108369187431967649932207847119638041324405834496217063247374771116533016674184348454544083139121561350138800582167037246916369805591313253419947309597895236975696777995386949219455142542741359095205935600733202646913079410054694453574303590988306043270517516855483044880295456546195831231562810305821569559984454892538809712033227344500549495696774713081218057051599958034746007905905037737774121513938436173822255924794024788449215669343084223134682744623177937919365745831810952369987832827944801455523957285923940276240488904908523282973259301722168571536770198234411002969707146699453679525911073793875051826721796312885383660400600079601580232223568283188913594703301863630986284117001985581475578480645898863350107631284876575074956512331678564215525519138488982294356939597367899046239995838186988824312383261944407393429086742907610777604351814616351296232330315424061588254502844114491428228231106132807121212060737958868828077563722935856934161139640480133252848941345568077728714812343565702743101887264939533239754324233902230954175791997134465354086305680218813152368161544660056742577135246530799105493439238119947432098293483554012455964990360518906821931650063197477352135763254169461856439754163458847915367849264560741388324728103679947691536916076317407672527056878333598988863315496269015662596440823571003463449320227517345251360208498747870328594298453354417381579648720060581862504611488106009920462510525328839389653025284866087458595824971447557421631770557961062128469505424664519345076783128943849504078177070641359935156599371083620538871901560586649577421946774271530690880002860454347183763394842321547876879969552778778312679138752670731570625195259994091978107572096648768245155668262502316755422882590031983463743121314048536511538283416723200459536401999283338169528184485910663539240831338124844047305848214591345761249375610817463298163295667426335706501949062681917692134982429139532700974869354769686428812672416707981930084987084868142114448512646553655415077630672636128061578795927670281247444822388519766380012653462054572118834017953946321482304480055445411047229227630344615887279577615243641561637469774097444360811278613046540334087143753786279312827416400818264208633961126283602863911728878230968545340928371736559427668528276380802302082511896616055923812039949521340209405356289151939890898546843296762814373486333499608701147249104299688974158073900618734241669268161189401671949302171711227993962316936677948519400388456110712073429790390065943407848083537154854454209097598415590539447596649947900875080359498062043864156176579507880447499881140897827298110272418425075659345774800146341855169658620715468326361184309456455552899515842230288624753341545620266538268674734508245085376185163406342351484331480108278539234779027672953771892291676967421104366847427380950877345511784224731991389024702789486309651776812818975200965144054955588798282362139616806150183284380148220905680648586387438152064313574575243153923062514165192309515928778116477010633907815172404221162099419032127053778406585126354224566431675953626777540973011432243784749350980127947225188291528067741861241428620479970147011062138586313117753457984416277773383034336276179715986160132993206872410043580754967313128413921518416724605136842732462723158812683100099458592045717307885633576246990470649774547378103044958296089018896671696075380316822285231137031349126551188260811024923762066282288477846596244474718194542333547947267928386065871536780593585506458626193717868620398806912965939844953772510065894603718758635124604107677201397667908769886260550113736399619214030086384998840476814574062284688332365009576096237739880731277035645709601167559303141227593906345950480476225634590085252357732714998153906186089861553875816084572935860642349089617816898090809049009459008672942643345662674278550013098187257880589118178986594670497469085516643981054371713623994580622172092237646217586245772023261550633032990121100588289661030287936768791969945749302540986409727250453046449879724927387677753318996974356843152275131620906356219424029449147374296923678706873245207915365371747588133009049808498037147542120396234396831185908308687162828217380896702501361655773962410175211414885019778864803544726979855539158893521032513045917779016731341605372156435642776916075264416518682123908825257482988157637392386133425160235710400814116120116226051229075641709596979339364863793120101206765022748429119361169891783110528769569189662959174742026494602603826043541622528736259239807567127613912204659754167085536136008073448944218745385456077280763927676110028560223939054196635530226074119830406904435644684534829179026632941073786737618733146695698883835718551165968049968189278407106969845539059941495285941433964845497956475143009687036352934466644241240879240543857764647545566372601941797888708755704609413809026260278643086681076213444464082699809746566525386547026632785240165724282548503263284932181540815980966319885280132257133136143132155810701660364046067411771011720372775907326336688887890811775104611792563208208884132200243693920508912002403070820396249737056923867899544685008357595675617286286815813146985850539986356821070054607429296707786221400149110884340134696129890123119641288960035552899147007991087088019629631901562609683918006714300340170481028845525305759883262425860848208032028407037769134433436376399571860069719536261575944144871426101889761979992803755349108975650900214622333694237648516100852014825141524098018556534205265010413909179796037964096982170679634887370107259814814432142181104639764228823203750381663938046128917049611500505099835605365209724222085182745358632606536293093774123725256102244083870521137446844137325583113368642474233699438831910225375221864728003460405838998484523627824869110818018348243519264484979989487600813274516996118029069549241456325123977127485048981765195880752812718488716531783104523735934164150045585921169455468287599817363151795839593420410452260807516016200915444039117271581451394131777127828839799161349889679909175617585007533569368434356735142839266412825559024002845946193344591919349211174151701215557688348309072009549974924036589943937232824424079698131097695424715919112928943298498811633202613271494177354612143299326312440327046643228682391612761798132081033244819730741373927861686179079419563043752490184155330750549485700820776182376450042772870609409242821234594892432240160881281984376367091730906949837314369138648542241336688397427707257994916741307582722487248729758776202366683234837510162754478409085061476289131991780323131062054394144301241371115160864503693749430768556691781843647376870990733039829991142502272297375520043565488444266373852187159112355520465302062729175215307331458096520916156452316003142566021443820699323369103660347751596466453472064603512517011216009932926181371093073885576889867910909641036199452826370700313285849945291199828444383376170216272675765823692500679095850399199326609022315656486662153416658286832547431540856653641865673544881243922274386974177588219611353905884322498582833847791960665567925730349974162900053811779122103727474235268167629765190754300572335977302684424622147223993881158981635622612364782146362004529073767070134298889047521793076760127402426034848390182167412500156593573712850241601557585381633208691367106273587916852230702521760330122857214046692334784784080076413458794821863655918975595659488654948490232968131370514335984560875330521715633633304527844257497189100150416340571129268082950608734247068656766220789770091020318665106181999075782300352380581255957718618300226596883756555073535078121416645256214593965003026779797896286489268162791245530138321266156512869060246405555210822453155975142962949516922790143494491097789971307389651063242123571849012433919384475681054358454978605205801694385270818212157007263422782437147578515047294232996305906831491013623258373021947749357671964812869846575846584008529264286591275073637757945143074919767991742365062737003159125491664545542528898003465917858620928772659360061341460037023001976406622241643212728490704063180586056370708175378744861693672473790948397471932532677445640071164489428199013036792427805478467866970810063406410959271741207400712635154940486040597264049812235263283345797558433721968479246647005148071409904992957109062111632309774841262322210773648522356666381024385468790024355328372804940022054241692565433010384068081109136169278701818866938349247164694909369709802995790913905425837485395291635843994277443230374241838614190321500493022860178486875652004609659841520069670011441456260420843668266989820946227741234192017794467475146443553964438362799973012068983973939147645368233815654401218275438514465564435951712792056313795306193982842920576317443554350444588186667609239735852651406772785395151802017710410770761862157197812021682092282800515253992426251294665367311155954098372938083038706137628412117870774974532710722404878053796660427977907113989272924719660215879644067697020197457201347101882678149886787879794946430659486821693418010245246002452455903754294092619363620885322948326627120849681964082977727962191239861552901047963732537830417060569484235172044827301148771768217602287061951384646874429526998030733996724341246323370893102210288132647866789196257418732771854610073312480528412974337359781080596867923155712393014169145843019881038250313870700009693785367741819310452778973378337025019374818604736696061093195228742702065923123047157818724387934933985967585759984599589516227633101030977233383989405589140341938154268829639421227435476184964935441199263643698009874161789407684021843128235502435105162141426906563684613846929584391258198363277696389508197499645753830729028369755934873540662906247528346600865524456930454893159313967908395686805978940364042148526540155384448105937266630211463725713644704222174947916828421882635614998556260935524229357257487345634157704598297208036529871035114740485801837287498253740453173719785360757833921669010664951557187665068330773791450675607070617456635292843927533660539302422868515467553324620190537205302517559014521893254196997566256240213459346450629558013957768726873352381205183388948991064636595205902340403755131459499885966054949916378663118449574346166327637498655209270078373922763775517933705322866359834748175746957556897746748397493873090732070785690813291808696073368198825418862048022702979662020510069808061287729616971207567920820901554776862920361460746826372302899936852359393937336172522350360281403392950207128790727671328116725604513386759973188177329380947925804264211155097566308775934617023442831610252111442778602197074638550124758572129987258355292304782492716558926740409816959539280479554704945608951092627070975413645439653243321030061572097524893870924933722025610233921809005705037398367292445850353606175565961542165493098985057713298275278475987930588859246496156325833614782431746263322392313461065824318542212287096511845107835099695636415039196873850908756367575614591853718554850787139963233100983813742144394989820394845227812372378730755279217226416734316201611212678315695031201225811786906865758402944392450531203888980674903348764664382912782501252369231572860299293487594278934996970885248363304766087348519048736971997531261003131539727258537220002249573526560266911613227683761368601961214463426027000953213491840197730078488499800483802214775833058192097740122123258735077207437992536159394826851840551354793426302037005063518438726895712760553633957407229215782165197104755600123371314993418928671527049727251560888750856969966779864224110242638446352917272482053952686422280956334089587258580726740677663769534752795154437392411176656952000941783984267427940359723659274219756658217384617710938230013044262347377926594509173810742160445874104051246455330424039945131973102871396989355086392641223991592739045102791935575599871265489626095818075977953573741591883678310801039322459146307905367178843242578540641321384855975940949020295142826818397491275095574113971860539600355950257252109420390314799049134883439159215782880736766155237706550653317141350786099591316172496302512860114825631072271804495395744924807115368768753577833029029201148920215241193681021889535470385509096774709519183858091434906342190732862332008307899513804822288626810370371793513805969871571984959689121984879706063158626210657736289704165479050921673194074949830048020284236938459745263902067541518668270427909345021781643887861569067939903766256004289714972111733561951884997056229948939889795551183255225656541003349781334379667209625183542145220936961696049591616086709192631360257258742586913371604696466632187050242099760378917732543482475080393332107191833264638004308925637324854010924902839471842556199886630322843435316838500550176764594070425368740027616210757574617980620740699196244015413827141775421804867539305537133069758375302137776792005814721009746465642384880668947054422119352075529665974228992993948733420190249695650280103654871608144662248110264958114641796136891393548126431403770997345882898153418055749159106357953316683327945247757532147431482229765366163316909092350537876908393405280979328033694226252827628194105234804066153591780941560400479138401897378319681833361630017964771978416459708971023960107872623630871260475683712290366806949908575510439346940342642767092331040425810859130776525380050135775495729441472038575742039908906202248414017019038792373655586035491596920305970038607718578786237708433027119049004707412959223597519757544065255125876400287115805107102245422290470441429017536004067408910734938016086264362889265287650821817355112188619420879331695647566820673054258274683066870494561953845436850810736113540696691162405410830210181714889088624652253171009085210599252113771703833280801174558066661818198141830190926733439294802524155987946723972821792402779312231960661587229208728315319680985297931950493063679085408463648165272025379226790530007729375599031026071000330819824994900072584879224644883155813007889992301633669895306641504959925544192520452406180239090509236614819465093591749297667073198602140296135593961859572019507346804423211885686204769492047650107334826626099063483132071493616826166278392018184084674503345928785744440801023236856622560496055806833292340303411324171816640158011027271203240751499850245115087142801421269443461805771723391591212511067903259908978771342010713345564827116550079661757188420405119252314364199363563317321747865515026604856672884233991160939583377579089478863874002720084603974206640922866056200334336500957259917767094015285565821762875290755659565760283973457466704562418922391383357086154650182219209994821829824780646356697063367310608319815784434515832977852863513675447905983051992800899440576193730207650981215057732563688143776679912908908856593413754125099553402309418482991262944017953657281768027687066559932409561021734611678535963970031052106105435948330898667384433187417510519253072797560848435197832740788466988821996351407441003949839263423790575599619162765489877306138494683213272820747364836635527318868146645586657887963436622477564739682839885379423513906824068847616393082103461920262419203552390062418618222661615105595269576283766758878442282855285308746071974482068795614236406279426932319888811498639181989949406165067840682328963478175495180856190354745714970827597861024812188224272331154459760641313682516003751404753846874136071928722319482529737880663562528597644455967856706444885308651123862419381006390539847500680468982304227230250507014032718636729481680271809752350352650597047775013380706929450832898780742341132984555675008269922529315813546937616149461224586983112961163481405816650289563000583286024049393009847094062332662285963047842254713393800453315020821327036983754314279732056660394027956021844253094061125225909843066216659785084593731105187923064543032751608314150176766032254491680133719154653271555845510119668412123212833033786337385599753974684103769576486626198089025176152876505064749385253476279271779225664695664747114542764341161643209834279704498830747322078489937573823086496477556115596983960291906697101276304677147086448968201318285119328800257223326674188028689150970821697382043559883889551858992448990120358032377346713447599301982412710957548004910189188061835587012204683160150829744181876714642023773485703838792202359735914245742959272351492554078756355039315556901638347773122436794379009836459457880869992058114537273545815318425348071533509596941772975511883349211591017877391112023743006446104255686793127941451085549057716912648683229827598233240964168770079363466039329596716240781706102754923131514381743590897519842462075111910813789973093857384278701738088412358478582129084388336560093881769877837247777435455919787515236032201177740286061673083640678172911525379839124444457835841408548899604246945905270247108407914648616544898794409269000901653739558633600870453666642235094231156072799609736561719894353147360900497367275529828652189527282800627048581137930134906550591387816399924788817312479199176754480881058771071007855749465322577934148895671834824904550705221908472132393331866719118616433079905075600771636078857429103483324347311384076577549969104993736383868126500540621878714664246241753215861724771544081940528765918359187330606707023034835287588111166096356049505556611257030280334210101160193715032558693050285988406150143607680104080207739118571138985146954207660599465646660259417580087679270411128971569031626367963948384318538288957435211152270619619953217704627517415306606808235082348931756484770949357040853766850726258505575409107567449660896704225994019241245860330451819603083090437564529500424360675059748730241576054923454167820167729623652616204799960121744816514764074535298634465019193330775428697330366160911710765081416983129615547640828570857108441574520618682620134789463562386148927291477993539573470643280585507097867468558936367212912432429792427962717980080524014977623156627401945551712799269360580549681817665693738922143322588700750222265001379368097792965011629683595339256299587372907306879702642759063134327319718227602560974355032383554607567703300565493618329662335173435420830013671433277735691118507325255343465846675917320608014155504392299957340239952370987950450163206850626729386136374870476288986512099206804941945402676702447332389207825522127331814614590887649800519931560297770699734085723166921314407741950781478903744805819432416467539115515367369852334365458372512283676371806408077603806682311755653471327751064175345912211160144378583201532688046736891213502665053471780753156444989235001737691106634583641937014581692695517747190729438086281427169531195407182476114187228842158017175833963270176509174545626258752123048676964805358441552970881685786225278225373848754077659743493088344457326707301669241009699347849133782946609741586965547473170835277751633834474115668767532177640874291057862290313016857790961486718464695157424833353784532476046402106606900022728308331338241884650678703248942467045972480941306402059444547480573160379056673197576263962637018088211663885806674882392630151205510159209641461537968364894853240662293163332115450496013225093765257581884122551207212637960416782334267112689172034408710420062121447747659490360965608036945868620130464010852576914459207255890146161316913178049521512089793158603017309243596980503153388288982331496089844838600776484749043994618999037641917302954267163737240902136461930264526365022912570419928678801123591479591109669507764855178943597869079734928322170988815310169767023133691055916144716859674277518061653275094515362829465191013704357082995539396600465915371213520770006078972384748066515688148756016934129943969655367945028913879395108766037194641001030200068971352100489682350682193980333493476148449779948786670896051150563131273576611663200227593929902390160136150264221673530589338517991146751349380592029408806535407790073364011553044887448569318419003804375351198213495737849584914262574293682366135627066569545540479516863973569643025738236533078719924764266976001998036868090442096892565781140636340360797643747167518947325184683435241675660666692716521365748610612592172693226079540429151826654291889528527630306244525373702763553099274766421586273876705752747414856875361754900080317572478172821919627870696515559070030318625134242341966755222494111993140988620008787425922885792301647299956668512291915230601706580504098072505921634581597341330872457660688341139159501955403753998116104522662649130891542054907325155762861329111146701789005996300317109909813557482152954946336136422021419242715520273443641544300245241711931597284071273336279860201617638793683196813714341045420897181353780994865261459004048601205602377050392749253004002812869035403085546989350401275626531193052278067552664553455870807651883168396333771972078011514133747041802511626197070094768691056583532118613011971427081609388309259006995615377722132035016701640524575447556588956476358200778023839413807064796704285080024092412506397250988020356095682198828572724482179554340777625519172075981332245045142066205729795004059232819898083503362719087505949710585930131094190847333750366202618969008556639707685761398094750034725832883432730892307612338682109945712297917882281391565716757712826377124625798052153262165269816340738069855484591237578650180195897245529866442769273917523521883183299229472631314093888911639933495912627094961044850389853288141046848937367975474943625329096915263965380904902208695309298524767692983319050308013900754146783100799863315191677696426681943755198821715286905981771318185194146450502761349038366931378236159558189664837697380722516401083172340928784323449487771470554150786229626920405127579788878687323285024604772544543365973614858079024935929638341297683135824477576793046816995398357623610768781213986346874494919894118490136168297874614780450663084938420827665620251046553309898370035278314389731385161109010997857128820013124607074256671155451786797474021310089871526253958541376524852299835832370640514596851904872331913480644155663301165842768392499462149867454587369963136857946162593550431793276395370174568722468505658212718738351720696079534082804278066490129190614174706232138745961292776370233677019144523430676785304402053645998604474358073298678138085429791077812101921660595226221861909410735366781166330546507710175358459335653729553476378046489793711621615799810778235542389611317967613789079046300199034176686085202659562397567264113843483679124439304167530079119306745720762085033949309374900628944327250369920148185407484867192458795723482120398133148424350194886591899006442423128029982482560610522867083333112585203007496625733407879947160893203350533626555803499866195295825683283421166079130226703956147952694692281209589740577398698557280511951946158365036675980510497912673759820893056332027886615879777699913730579397714881213243065461757225910975098216874661565731397964973847404811090206260227675727719755738670623106324984392295706829967410784036837178060976710650964301296146231841869819545252270637811279256554467308927595944165131075392546291723151828273783389961915562577149722731810427101518378428953919938834738622236416012635345942953785019556909042328213473850764886266513939635047307668060849585530159979143756579151161382443748792073033039707732911974259247046776034142434872830064490061775284107953751401111072284921316963764906371444673638543267330754545046243687441314704588287389104065671074877793190963795477521075639102199112458228372323877596592449531168776878520344359246262008894970085921574909134118453197717544744087341312522428402239983951476833729553956647801426015908286751344458493193291287201337028831634983060987611838029625708624469721565181163993212007799172349215956262162865966117883304025203398999617971189777838536114437265987619454042215601223224572520918885445524064631667281236423867990257801058837149916951415533295052480204270902008453212559720014524711137471025046481093381786629926382732371985102810092272681239778710257997079351596834316589193027891121274895540486345747192284198355429633696853306286503747306355754676704269677273049200076942718310830175093211622755423269842386883376524702017012154842747751853296294570194792316995486573399447454624052493170584196374217633212263529150535263574733886962235822480384967107141135410586648034208775249316209901431781638884997165926001603177427088229631205229161113500116228879815968019577823484614384473046179290814547198061383784844856941529805026516478779313339912855703274775811620214433085944650135980242927673510120081801677414168138461540712024705500226625042203700421779963294061921704463223047593936847103758158270140084970622975005366271314411703127248636312591408894436310334243013377158481384551017134225837461313518936737454552245761713275577122495183457615942042391919573062514701930816918705009440968664873035249660189532679222553702826284820380265838921857385544700602931924567424341896058433312093220262988399608734544588472566942998196146003658435099212737356809318471438214668031809572116745841642209054218819413150270254632435715434448686983163200792080285456721862621696960023282749734069703123740299408017022607795327310669958588784175939574288429686950602091943800740910180046030372350227364259798015560852764779460583702310544705113038394401463577625386822653421987470709582441748655520884858791585033714068428189697303906942297016416752800490876587290133357535393852936309608497368967002123757882846229051192169537039500175718571856380564316143832908974785648976249970501444062204713369763214694909274669194924633324838209239399786324756732096874694123966389745907807456685703517818140583917259309431455641904684313998152919531095067429075986693033836811480923384205320249232843498929503907720177796068877369536258829755633411084103492961551358936622940428643082948990501784675167259070616947614565403033212551894178014149078352055003527097382144648190694442516042186538501162215693335095633982074303109332782647162401464412912282718553132016211445580837260894470772566670805821953669375523591178887221567401129487652576865291712752929347336671151178721550943756911081971576303158295312177728230873431589817121005758551989236240947316706821981661558029217375359722827143958743668601479826630263395149285596225094948556879398753258327691632146874285359766439372376869944279265628816044051064309888303235326402526134212010928473974021969378076161236259398947645075730244054114976299613908771612637453632448759300673414805290211267649713361261692573588550542251492711677518615514590263880443839801070973110399125602264217502015316916999039086755553711635301390896445430959765715840343229569764623587736519898596584704791235427526682242679299646922927400376218259725273557775687007444521060903892571978085939895740565183275714876684061320443877811317108487361190674415011009296808808824756570787847115511880372535684884832049618715574855638690555068093983758484406340203981483909368798444278171562166447741980530958909477163536345080931458687557760881379572127939263739772233909413607585214906118547528922462587946510707367796958509795137904594180501177280405479956560399917444827000800746609515498538617545080267931758784912613167282784683049929908851149607094891435760660516327633508765923325585536684437905572858436620194459350853447086360965741017758549129264150204726245315544342910892414336964218457267772084357356251057679389963204977780952716055027299748257353242336164892348432480603563054669365555541092031225194964428596229332913506843392982124851300841947516605345809339577040958830936835909527902199245792376012186828593270742389483603495263893643224879744911519591633934707359823748882189773849856670929124025124198890575027167637905693330296531839293362041282005238989130772662205765558625465715207436725124005631574348877376820746612159332762085756482723655511791932766179313554601478024831987620666918577903601047496149630021994861851354787878924773590927985082637495477001194474665282650226121485613442119382547985099573682009446194202963559210624558680617420074756982705545258437138995833534173469835384517074353399671020588671325537917160292155475534352298005804250799054405920425146649066639902164699607910991689687216111567627389658145239587424652521991578023365058108909084559542355941394481833537941719944579899267929601335350211118706227418907174949194332685149570964241668463190716423049092788779880522450542398814362405742830058448112164182920358779449630431908085149284599758219048440461323265622544512253712880675818534065417314456599019244462265744845411546687020782385048533572941557259865327412646938026091329709816996114855276154279537173571006177697952763336571825852440307396995386854305113662216566750972852568818325769110232403398873289675655904318101657494795123584498042475746003052634049849597000558869738017765974195838554229645624163500116330798443556603898416647950063122640077530693535227764766936042498560065969647743175109944553982936304053665487757954965167735624509857549477966866535652027803294756635316283191881950123936773067637028920446737898838362661552837816917038044597610754979533737707266654145992269656141112266062198729388229106149728996209538027672685835384716052032185491178228260264816060072461446006015916242807029423657665898110775419969496400476873211174865341741682479704683194933731725866942976886930886010086896582604679789585486359415423077078915071136325584319866365513552140333865705170445627992581401652316301350877789525921512286909715707426421580802362705163076454422680965798661012412212910341531203777671219035299050860037083053965086914490692646362954737878862318624754255962634855426729169381425415138523956685802323660954004851308861830768951056937439672019203048608782351242491639555670516537006091596784150855526357195429328684883841346126464341222091515369445901848954829229708696659009212669030380297135800197227991326390405647392617732939250186488885575756042846037134855104910409069462977276563374285722368472299361760172779919791940387508545421384411386765857111599982005840478085651001742015586957845521995989233260744698732206045037002041062194313917841219862685906031515680837057558238322867861364611810408782133693122753986285937598807851272970950075372092233217509597252835069671972973982289063874393824783764601515022492151896336012982731081647376791143750192921104118802632225337595269672331538123038372727259320922045455438542712267161714669877216713188912892177603724696204018622979156723177514876738098740677596536928981542276619372336156378480919015900733447095650439983084472137036554999646514781020546605436468208548947254278409321855558302872194029561990251884255866560068647775788713361243372829675041356416888792506060916384859463663767159784016165399821461058888373503254613016781429692634420024350105719473358943592814310080446722885902334101311263302296449770482217355478128099729401180471819925199549618204117296745087875949676805189629330458608298066491147990712594478924407503782924357934884099435474034247543615538019223602494705037403016353871842141530502551849786811673116423920485882820538857750723597335533682777729990268532488985894667341229943134097355988201727769564720478014485861728948195668663714055260743853545106298020240119297896662601859499699771826493668398743137071279331382849910680870176808742035647600662913269183212685549617998294173611374159914802503304898845114254265900675558015998986019820572059045318553124877334869830404297383716309835386119129528536100192222530448658105729432117801887217256733543200305138664592576970625548727100382529239616871631862749734027160268084428321007329461778846631173062367060572391152316138746453653107962893753166963959381756409991407523743056445723054034119341998651468214354879233017082574309002695546504074389073790157932570221685754223859598449397677859801186324461989554973177972692471850094157411192431061642540031870811178804220301911091546348916577106442886513392023105175399788544745733912181312332924262090108187253666472413565738346258201534108350131141652697441644992820677383761027960947599905297318239390924779112829804001002377172498878064790169268836435891867752719436506348889057554447441157223162298238152896621194073031424660803417402192903036108277612850242772654940362177849424798643343423663273202052317940808973719646428357111766882902679191262047506892326143379388728271709078693941371931137748676470049611753328498116088022914348945089661222275655874797846315084187914131369373353121501508491936548906810769872740678599764975482033554586689825715771128549535920784233168507484407956671529602877436590815339582723351150063301300973445339136628150198254691154079886716476059554980915170777075566125021611978978897607491525483045617067757075381051286727131399532226348706790802040537357984147860298853250528371223493613121464675295749530554802839128140540332175278751691513294820557520014619522190119600190973732470519726013518157444750167776085102728339518401226531807065746588870171632135663646608834094530129709661922323753301395516247333616182817688099815953446545833163870942365476323881701039866390619331591080637838882415030885118003587646340015588599504862934795303140712454655001859571993781193139964228397715057569871522392084749188343893244425398701583342545024701746531027397884895942824566182392337300220808214481125863943318539632397228157910953235935213525512972058955006343161001946559193748629119351135299205986859163701485624278522214437981326392684827872745176490142677813766035761244193454904009759759530483171538590577655388028231555676130778448625845115225402438250389760178369277843289519332414065028946758687531818204204723757063969914580771107111719718785183359518689214128356143377202461827431722332231066018213459562990550733084719827540159228389445140394223098609612006699803450044053539220933606024787640882946102788917547677953748706427888452017111729461983346766328157419520352580795368526580296424163216461828820401083739238191014901211841993963744033400305407356705226097908209729836747039067078902600195524238088327860735809539829417349701130354841769697706307039067674455912752036129272982227606671544244408005638773595387488407342568530877248650286114586993089789135156643175137305116485393444650597876071781548187524102380455832497226748353715681307731659564976526764196562479035349374405931524176822723033160754247152935303858552594139869515486114756024435791320216671062318741371430510662440979126962414627926580294913435589872280945021747967443438690274006702845687964730815986024362186428203652335023347576913060997509026311269157121133603344960619236291181277550449328181102105013613190034112787185344460890633190391282549623425587962626040487286224913712137675178104784875174845013838250823950161686433300750110765804247089400463539231091531430896374689362828782018935339367114737246519929184823701789521985596211185245968414059875987604537484654609899124956269691132769196770041299165853527862287005740667643072627403766930456482751687537232560282373826379478345342391305994501292552460997820254743595814614081917155058298400421915752501606915690150727810851527885693810778683912684595856535552759796642510216845945522312587598047062232465634838795226749691017382513173171299382437029072152042433946739157465113495076812968812423960560171611883010491101480790529046321830427085372895227511600300901046185222815455984265051885184389379406007815559427536713644123850749322094159913938810802535183181962857586908785437944258422847336798152731159921911043549456347925282807827517075810848194116665989020317167658258596681073610540467837431997737648498949327598557948707151144820051485642289255643406591018011508494702465520048369582711169896390864136745745896154963952665106945700792933677004060155278151480366648156347673216077343761740668616230651746662174286430844625956013140271033884794518276172942018780111541726430090929551225333451298297230593931799731387570991792936194705673742255430871525910872315273321853531038213941419717725450939151432487025431129074469993981574441960804583495741636056200252535747763815535206606027095362408167694511588662906518270083277946129657923429980727063491139308742237857090221025059750791774508672586599173138894659969824116131292824873485644610643473935037930921273066466965090125312710913300179679811382044187916792569984192189729589511003570882068326810241624828812354539887591061122682326653394495192534517996523563632880164079312719498646877040530254400332499193442643931887696892541778719270468746614266631956754650791184009877297475447080492512903797466311167046975972891375680012758399993202031428852279439325430457696761081574918712756262092183616701022914032741744815695351540925105684392093706101884096153722506522128343365735200135634138985597179148646205474120369812659435590954440767723690783227364531237751717391720204129786752455792257375389870032966499382306194739427568828342760017993034576286622954720376912822572223463755932677811883081329657681102236242751286678382791662928922551490326900034564004783275200312979585786043400559162510353377470666520896002074437582343555967565123154516048778705836344796666903873795525825521652506884637119809563781991259407986762424490189173972045453091076254541755255448534675132822963992976692514644911849924650150837805003237682127234886836191934717214079573445784956979147758389980576314459682793818543514308377184308122979111761189986453752953072031657349340002366222738194627701280046153934647939688951357936084724061482508489854683800130128000577239454727510129194842415225617051364380830072736281280495711660844308350763160589003696725479884929510101803762009993063889785160969993007324849173489553227060482183151477736125813365175541268701676573450920168243107683262948633123927536876404747901703061929320809624372084216716163501379223843596063305984616778427662169247836466193243483771237555706416191465035140476657276768720110027644935308981654608768824221947873092179517488439820480230238618174125112572137423564722735557993539515983591918451399844447168043334153437855497865647265595466578793999152690223000553539005643862059156466629705384651770189616463065876945766928373686504400627166355509209175967948676205295059266166452689297207178810657886330869622517978426167096953340215033401872508761829022620033482786199526708989842465313320410048195528642997162598443121453947202011188740624377221372452990132207861701651642767631579846182308963105734423163377353076250518557221447904167059905218793392846902600643331638128789979625299001933168415310288493175248617954266423779963697097406742583235197266997277965510844798150335789819449715981616153237555849145738513334906668924442246672935128616170063004684823799379452518188754522449906804985146589266251212727331199430622881376326396457336949986239555378225154627636093801109584950535717690212977034318312959256224028099406299415127933043806942551361505305951552370839883704116863903634353569973999624562603570780497114724411292563618057921922258405984351127169460824793867937105355926272395056375789347296097004900701313021900811085005138394101165027215880923908952374763722641089547008412443698209830792614366990327252886618803179078463217004194704409761131723352374540922738286831557590257778278384067815696715944204541610241642721401457060045718644088304712818300546112215783744006341085514062613381577782722323869927253798282748194256483902535230217013953480958731139088919808176229736271366982642732742631880974432154589610204391533635705230949925063929882404739850618109216556269384601563820366976662235981467142984686620413116554451796599995583219576670441952289853922224337045245232488888939270904898404624339617844216628438121671742938348609569051562187000652394323562196455326002505708421285061393355616560961783708031365113604979829735787018391071560969641138861139183704166563667668637095590314636992960007065137498835167734742333973723651131131748384922174907059286939031167741145705634142859515514904349343807595673850468432976704360707041452698878850814139274181811828224884363694731203096451563363775891446923771015812617419383103147863769145119337370048600423581274489134776014479042582460230786972971352994882913610398119058961938885294502946618784240914761470482533947062021233459474317646434541385965470149197922943669801762965118184642491305398243693702002142348137433369318127742181265265251020362243967271792160771381719656056873947087998074066690802765633442739291090919125752375120891593043446716412804218409097241604148887532865715656793199659650531574305746601554659767444075815712346567155691690333974072902866044232371790321172189846470684298222867705660270059587230429252496745016759535239343258599813678535257806593303800196571338049937451016827826035334474579647992550610569537770575639422596388772575569078772152227768149881344809992228989117179838936725458109023477197969356854190342814139660410937202772218080467859223854250924816800342562170753586155208949703354138798073583267434980389669793103607212597911269454467456413175475828906454343535681801044986603298470823128098898672567577743652909951487525969505803807174156272810466185651235001128404541205404159474137211413353013616041425597708362437574258732899290768003156729162613121922837837937969940152978661274863422604010081219156630214174452145276535118340058285241296474263374257689041788879753650797839764760086825524321092474245217893491163069847963465764918211353385183141422721852180423721343216379381177759762909677152657630535319141103505107034678636140717017011876837156064514004719455003452027972496632302570482681076796035962870055703958082306253360159391278829534408838348593654702054547641887377687521496213608749276004043517937990992751194088511681921172132808306091672711449340216818857106530631480374325125952069316049809602447570758222647968807156480492830654574286040240348499876954369228782135979040903532873628594759292770792676648636114342442350194926839511371267396510248133456840577923811698272665571492965694659305492268924276504685273482374440649848795086512108424495430675713213008235882227288305562181922539068432985468519316191868003202364179072975566863561977154092828560606599490132282040676912494201363695714111500221946088179846352076068817710659837530800040970914733160635684398637553747940489573711701133543524798746652117936987815444936363357483049489233969031807307876545545411169015155130048944840162184286415530527900416560183519709198575599921269646946056055231787964383749957623222679396659148395834932721814501266729122678225259045426499587316041207390125006424097971778421236799154988021213019336918551999155805547976744470288563489913273264608415828086518735280228553995098203130255721304016896611964654417422349955799153378396709185591834302388533102821906054420677693477994281943995272344696467452408020769811016056589260464433867158367715693854983364119724605577418571883038613469823929305323307022209988055727755266934966516724999187894397536375601629292887771108084067784178935219913641451648024365703460754089131658737490631868936186571646582202245852472837481042020296133527427175170714255517036906586032847282248178436928718551906770428007031217521814325424192009885951299988273363727709988703533581069353352951451283579199583823132315411146964902241710193735846909162599807767883974372580099301741983788834297063368777179576679245314186779641755746826050845816970841626915223470319549192782116981692171196314803324774102629664036224745819878135980923312895243915727404377486139305213818980798231297701581538789358807552921899667927841832253884127928085174393608464239621070115573818983139409178705719018583300498822712012775434548589377045493233224644287950116053982031102999887155651556611350906895218256294747866283777534975773400291332589275385598048996948974755540531295047023348386313786387045350589799628252005443843512240096548047675285571129466670430495454427710835664025784260401157289488001129848644695129667366287988431597703696267060351922782621573868672135872361523160673925755366269359670887879026725338522468259862661900381717126380117618696854857912808022412103802294803973879978615133924458818954043562459123461899840483524599784778117363079969668665231669990833138564624980471399657644820739112384440678083957994413222267566503729613261939389650624029123235851373965189479635745300315026203983589736562382114574335073288927639687742341541266607111954980814990915901197915713330688325642024126347982908629266405308015140653544036752668954893682192408093390081455794139963213282404428764762186325545407754818304443808855141188051640362468391450341223542519989867103543969224676182631748953437326049387695903349156617947480243205364641797359177077611533123595925307279144937866373209784970259350065896090633020647559318311475005289486718130185138193131806762947847120129184701193619749229922858897665421692460153940759492732191325252809201004189761135642079149853386084480996058431041550379718483836496982954926284728952586811185522271413007868466179763086976607103191764835298267030822177639008074006645881052897941041476645083103535675764052521977871056587858212133191099356278126324497109684783656492319789585355960303303239620182108526413144553978517296158384874456417188546038415794589407380782595119198416869535010478350456931712770390445397441998769080142384083762088238868608664788367286660846576316643827760482895585907608153122089960174878490386870811197472939739975164873291075597155128342516332355474304095972570747833235649782596544864922209037398178863684103662278738880602448731527843365995573951196436292732171052475661281187753098474767713712600829943078925194489847238488888924528558044985104048073953516658458419502169760178008629455200525044105466518733130254446928551747611972685405695922433329624439202390911977169888973430035730613216163720659866530328447859891183671257236742206494734632114395191618026126987875862703110541006219511502714491685826744333278292123566473391763883176783658300333416790308846434463959601462672201776552962204543183515618373340075831502536470741580788242130749033546305766545957431855921504017752615219854776369049010200076033353220971370961855075724414740135754728893489051318749552049553784158150322614597372287070928043644329501970337941613917661686636284935896197342826062836234343015839267716043210847896565050013677616775617971408217795727043988197690868439454200700889359132403737605404437911725202968036882769395669432797597715824415378051773127233129159013833159725502459858408104782523054180917344217328777982192885352721261179396665169164846552069682310278672565627817687453802258717207859206030341239745154837560542598426577990209469688075790911260667509247132946831141281417693802429293499929121168888562680976493640245200986720944525216911008054803303400116110532755000619735902590463959601725846424038220262208789850310375089706477042114388147885702931652029400417435575620237026188473309126220463413971067794757646198388183848516689355617090380130819018605062397243701208352391842375043486571399453452601058430803887695723954042791805372888975615825571232900065591417873620564174932696828519215904704703880139519459417527563086385062651071475003834540889341167005693456733783382920232784264977617324125613130042159936554286830106686581403854446169288505343198511871498770932152004777712392212656092786338847132875077250165943989006186471259195981045650941631793641155412529455650513387239032872035242945261640574626129986159338032515597804040634030443132779341903019432328467352762046506735551578862046876290114933244390632485952834916498245351636312692471381673100251834768736925838298189323928378188409220230267964363106991598894238108969353178070398604163355188190211519913485683972452291943028403420919283988189114002048960107276689688889341555115831908776273650120692072390626752472313164165712196463256504713724216274238564583256068127500642519014743209553750089280917477383323239494340656101835403445986120540766877920346758214234211024969337094014515620147797261176452735878581364955663936826418479646163835641705618467979106567210599207017134052082869272533585144616869500651532207881720057535182220331910687405641227553860052313408279281574393576543688443203423094615624636323829909660143479473581254060173688315590857045201140643823563980495471345508776767255280570243433246404776955956518577531214001148899068459823552502409039343337778547697373206931896742761753294524140570570079861876723804193739830269697274937686044807594200408060400212161591352360169621901899721093077645947584226883978946992538917322947776369794464841078045469612995518775564782815496880282025768480613673145593501082820072343223169697316165371998522082939436518781270670013083103804639093822081202503391280509760420975332276310818266004252085481460759960478181580657691670952278730466192597669932508345184516969545735010040148171966576941993195624338210958052508379889126080909172565366542788067692048703066995875397730667718045659442497956388065525888964823730141934593359619978402115693771251052673158079881807569967700384664678902234641437658832095317568635181436713143917079948522611307516983029365436293318765339726137345127002679684987334692485942356879938051785997256505121402077268351762182539101225955538618265644871031973977493371639204098943559841479850222182325769101777490077966416098715315846666156157215857132088749332907157449944258071633198518011122233840481844208243410228956511592644136139164402909491374819111564879503528747362350331865895881704088414142735592922818655803165726118626218760564921004613163775570741223094281430398810551025369904024616862825141648286293876950501755300894077806011915478961648233000546310206448119949890434478291916871550995450800308349240567752404593152446251606128486588797798149078746567955048524103139382526289482446860010395488913503787837372831527923165789124869592715281892960720404901447666322005423685600519001120707475894376434078677427335395889176357823405180653729192910499851535861366730114088274704578304368616523139186163584701434138391293928461641684713255847185382753344271629364643111690311467663908199723402956238356711598148753924759123849623127439738382357552990772155286655506630668010101219180105243066693047166506401840773730045568848987666544990120114832715702544899896776512807287664224230476001278904432672274242553370138128988526345196743601445029182503739949489498045681202804179513886033023098062333022213302959676218130391516867956361494904028732505765477923298613297438959358812137757524737552215092215239687084744907881154947841261554873530100008223506199400961683087417227186921844116293330515496920461195659610960304116658529217360102073129099341226390178641848065990015163405361539313763145323639317569899489827308446803604368858638774737807142048799354946775008074036634218814771288689706993099103407391862705326415264118241982781941336804007170754491149706209223861756847034152636225562716557020714808004951228331542507885732387971018008337431176213569245174116625450695476544708967325629769464420565387962520540989112862572388344395389281103564590155645917660481878185449143446769240699651709990491335541328137217109721135941942716282066602681162788432574951852193920977327188468908975024932047254959413098703693710450996027953186639141715484012615159158661355646908447448046042976155867758338956294508242431755260186210408241114314797009804582187577779696948407698149332189141096175709277896695222321921343158266303168310114017161480419305525918382072448805564650372248198179017074077897279680426423880171189701952931792529925403232815205135428359391914192984890426374043120769328773907915283725500277649192460054583030470553841397025433070775327654692605331773796498551358887903469054099590847929246789740047119287930238541944935992096092612391434134404776852469517910684392531572948803832044671145681067466267675823161929099077960222171477366504613391133640798074632822802167600410529682373448717213657964662218776565000821141202276186855812370016213432376864038592023132344035503484430531326779514158684666860027946707783579897029799550319469401213027600331190148432049821860362501842208032040202401176616114348481577387226136505240871531538122569445379432595027829522328514112560619104098655146416194373387722623192638004368785837743489552483744407680004133968477248714401715604122223629814243063984701935375276478010508565445858045090479674945606215007916324516376015233418531806286277986878234555625756906917284156734670754583510349127512153190545899237354804075626476073404669501014911689233000538044714845068136084129179025485986592954133011827102306498572863155512126437556741026343969847627438601009718257657263825252943874757023541394641782072243766805287326257254474271904721585771718114925720485790286215359787774061693569345908883754008316687787457735660019217905493651172820190841189147191651977579317135995516602149956411521876887321136196018313592718499604744426387334996131996698349765836456211336359485039148139008630226452490958643791893842130086586832965011829791892320061188850404510726692113152461461519345711941151050715700519057381587129331772486010411015464707190136913848798073278292480610472340441482545533754430727500263506360311273257859593033069572320965173838331690888152446543053039984629273340707409715646624874696204939093432188588837870345023336481782680000670508466284827795062780046623826405779378284054323220894479087727194708417701456394256299294053440636583355043237498186949419675505764429645824796285862738017976489250675559625736717348970447907412772562979974147114887445277582151328972668739383886057148404553553431759227393361217578267233941318292409606047780962183936111132675120417100630413066619325269022163913053520912938546711910817786168854865439970441200118204343268833091680233709021235333321730402667938370836148003669998129139923307690085296029175502770102949845741904465089873521423678310887770290784128963334327980259804421421499815926396422974538670721277473789002467939054363320873859573678244914370102218574421317126479271164188356709943336747731993499112788680818894798608614570835770114764257699183735032979046830062921360779551564051592800652726894977760062567080029300811076752620551386816378815508776675848716876774175988931359542475452333994143011647980000758513059228112548814100371364982258546987994307743240908545204778151795380689660722073830022797326120957244908388795346708184600792952694226816779919814461009446707955801338633634931947974468671248127292763753001242757906246912138374878741512461477000850569986658693688395640117994748487331724431504775639428197030146350442126150976750105923930996066813956080145999299833723534316874841206268786174809204411639676582752610200973598244812829049460630474318465843453006317671119687876248433296630888690746893386963652771594035315359135770677302416016621800375838059571596747948024117948436995519904284345588385713364894280330138784887557197991020976224635272540116561502187659811562803282363367461178511796261512764537024328122398024140718577029030346290184712870890005197094728845445363425722587563604104496617079656082134873173182393200466417273085251075851510612333306934180231900505911717565370314810742790124684616313557878203447825491704902126532326268303742163234853800777564616584443936003349332901747834293027102507458855309837369921711535702130783995342205611352561151092830347193259568147378708781796091877514278951654389829585630616870982305332439596533742919113989284457460358684999996083526896780676746754793410542561253534485966712460065927646426726554645141757839483491153063131878670753097104511427587247804727984624187725182926771457208394284041629343371712111363805773896871209302941767612857402796669497299692568747453987342116817145915734700506502949099762902254519886331322014477056907766518821201918579364207787705980835294449970937200621869185887051372694329164378121926593814767817572772291371320496817635047086480720583913721943377520666859755329621189877385279093329255340034632454692705931741504524442277794508464532525171527770727243118287966675588318146793599871466076315512500106521146537139831402080177960700251915310625977505078473037979132256159999446831091179535155898559876043815729611082949645181071171524505730176612123417493466994438727573892821522046964558556127954920609121297092054327592758373877610075761442647091757496362756772464202478287861975876816467606341252759409435660481026976890599456377354090985921163316520868958213832926570264886277078969028439211660856102028190181559690693620905938745876870280981376144251631567536735908973978630837603145285519176553820913321817382135873328050024846491932109043665838766094339114447186283121644615691773713674576865432784772373479834332076209514485857904909572310907081595728251723158177885653924397709823052214458518174098305597976193229727886778537965582724820647448567621930461165033397126820141891260561393429711206575138470755199940636146595994663573211988939841608644914055083885159709248628268832369412817652391366681850600206492694341234363562014326522009864165942006359647882710399928405098343234338003217638170127807213982096552335097935081944251442719871589384619077149847714784915887753248659789181833122195256130668404322832993636920974096248261190046898750418035988423379843456041527704757352586082902261351941228015944953554024749047230074129070657443878570124596247103071687008076727393896982378798876694489108550174832197814041963665680428027262616203822241112052921611167357793037839529277358228721441816525568792481546526944146730568533569973487283115900903771622245334872691412907729751852972256169367342716038584336498814595120793790357713728506698726073722870462263378134823201670021417363244116825438346343728712433706260011186082160446117606005349804009416502217008867912529962042075622058800296505520404775603520047319779899300975611297596624620376846945439897341379733842843394658721797468549051912003762105728187492160259171693627942496637956097158570700419050228908585155148924910884800635128202390448137231064990889645188087101025070680603948177825570695290328154725842044611563967755027705046896571129636529695998543514617595158314648891724261385741879562869819150538441733776017907122511984159172703693431880166663346135209953297568742880408478401113458325452291560993678527634091503278661337614779984416688001697035396922257850138367808310645777311656158847102383445129247103703371514919749946004046056913207189596030053754243398507486791177947897978637008212931170013539407086694463794143175771471562167969191001599017265193586096021241574915392697502864308734808390709474584673801384402137986188306556435633154157411396377759185378323895276450992171367931924567996067208140257768565140090819879579898499846103735631309768284594524164459135608977356462470147703406201203027017573930039843692147662692923295544514955029667041731864281410324104253078134117798584702559496008579686892195271306124274025653091337001610626735122111173890716962023798108859207004795088917178009278264786110163076878281250486023528632736182636352845039928953792120434767702486189401641006856644403880679509502907954669889354108474287730673679610667232756043349797356991872604068444561619450110701201631039152368150352477371638066645477005552180427327143568263363573889139146617974089307597131421739856820080629357052826245042611137762041149367590685695720701632323012929978524768786762661321957704782771642482120491462515106730940678909271173837169179748020228636588964024546049421179166374572327677796543539483750241856447546712008671817584621436067190851855468501014113826532479447476308525189207158400596064641187235503299136509592489290903420360227528005981577886414651011788861458007882492461763817419992147360332204086758705764035537565579051051691504115359083314736648563003300174278113053327828576124363236779247879422165621263793525295103917340811061109910380264360824281635986469072244502213685511152222682922996473296004680429630706502041811588018610932525970686311152514719440027960865201881527386348929370230860137618482268698364665857098571363834849840337969006665136599115135404447078682823511697900108443825866284666556772651740401910719076160046882826836574153449317302058654093959793086218834909128762034308276924451375295403202134031745837686462587675384397596807604050259873263241721976051199339902239484774512129528919497951714285323722423918691056301110995893493463843242087183391991613071513363424467251964043513341038967882378333335138644634800238792320710522819516878100839975862185335867790711806333302727191945027478954211588328554903112177252353798941089828845874193297851270699351817128092763918227660153556099400969863980769403905810414392659231511489250192200827452414924568345282684836539685705050363944592363992261205297424511366869540745745744730891605151798876563606247636421562300770822351873200346434522250706799494601923730597130834554073855565425449515560026482999004364589873388109459296850657638826567518663864712582886186298749288134552746978438885353392341800071312094455470696142191341358745456679664303062797907655472510903110258498054827097656379512240065740565020176610608933526044037035201222855047011487639368766343233637483133134595028913429128577104029013361507062099362736073873653107786119239358548495402097738194072475729233867853498882134780543184794340583459209263993857591733157639246027114461309479915083397058812561426859209963717897536724598739660231742273792223629731969810748461277389237950096575193091378965245214040558056099208003261345021805328562327824292425892879506699617227852197028202547411582461961851219610379092061523996717524751897237856557147692907388457064317411251619189920195213581274970417857543702343028094985726592466768606258906484021622858926236058467816098229155603211857777940254653583955256685699938293423137004736363042769555628743811898036996185664066911568307415313071805451767156089203798577461026729278815568449536473589080218903698431258136992254784019149881800460078967754359035355986474530576241114471622625934469943178788094491380036227551040645415465250256859170721036353243937084338575339272514445932512506263645953501725783674174662979102019128182397526773798171332076263760916515238010525398126235076436276355627181373029461589613813921113121878997553965693771794921028196907471565793049895281238831157074852564528116594934885538319989427402934943661042421291721418670774281113955735323708971947606321037517637647162777287508204730519383003797679699465194767772903516663655682774981239862914209129391107797792363117695026021645381174802624177110584841432155110682919896685539791176527717724905116085066855786004283392727974472454885098118642640778392047347263609117456767281994606545860596164351751636898737675645916748802605953720357433651273670931851573153430206346171835655074252540881124144383059484651230965154099945921291928978299680207397306932713324495965169817382480516937124022702597151434510458436675840202591939160626466870636038607144156011666853507640394723944670499318063714014733848603687253648735584339846537624296689778648020671556966279974765743050218874227308108772346691877200569205748821893614907295230101993662314584780822701981081736303889812107192294382628827025390380395689373858294238471992848528564465420044191976197595247003967423037754859493078538665367917411632705381984949573515281691173484376657109126912604470253215319337772073504125943136260503544942233817987300539614771947164714875448526680482064149453077210414176056481248312549146497431713460094538787220496854698854464660965106974398741484906879292810182113395323002586197872080157209939453482154342035587590134902091312847527738515998663196554103262260774149133766385988475845270150484715472920618712155911406734743344171269851593482150877351274457969421210791072401809359146865916855509632951453426159935440468569617671483597713130714233110418538467132217471209847352315966069486967487286175501037418943535625005262049656988278369782306271255016806079099820287454484307428255509816887329674368550874976179737393816690710332087979756973403625226151236833583291077240484788084435526611448287008060941226311162925818011109312584201429373515702742927568365673391146453401217163394526792037468866382000170233188087360885096220207424554579912792704670551910462916257579797926220933172193025629198974944775352350869541841850174263788411132910073746961925294131169419961852260618216692929688418466506560256255215798452123056591216806705219676570686881177220700188595093009245627660481699045323765361291656449470522563228949727548018018798327014540402637236783076686177080722016738713384016139873574831987998886518600614608404803319139405320042276857208521317876589211345863111805363152152261631758704037885399859973416934091048825696631085023140954165354290900935159665763426199894643105266119912879536531878504598607474686560337419516996756468452671269581764850368320903003806451331382221502192108835798443835319762048297154082846047951306922942901165443444376109721354535312002617519684734665443138574291426434336954311283965236647977127913151106897751398911513038172866776102213563144754813322374424648759727161506410638560187793906014967522874676385557032119547201715567276553964367193202528208466611739132061335817377773826941938667759278716379010706540592787962639628672399472735260865594790031965776361736006895186841807301280773257454516190772520721344906914753644361469802589486877664627791099505362785696843365496056783794537825093626105182536487775548764106581418290194548965779272307761930809551260506436689117493776682733646634851565906171904868649842614810538374719352344009539441550999996948548590688357693074453824520160218555295934440794849175142953619131686560522481528078410582462566471518785802191425942422971502413239276720620593300923608750731804144189146184397682234051459485753674317333578309682394430435138871610555114247650451363456009557747651949518189239483431498262470632362283325339401635671702571010841776838286626113713498392548181414462832411638148223153195501324596149576357674375089099386489393144814386646713306614232326797034997456932702050309062605271250734079010297618591209949467519378826301165209506827779151623176572102970799669977145836932471037463658059540467166238835983732632792312277181580426112647246147483397848501240950357990166714667741501681727188130598469838704488628339208185848441558854805864723112770616031165443489411026936337385017676599250235003107181310250602699275417022441270932362212459694779954772744227458908504887255127167132521385093737332589451541687066098222820101912070795104017524662595362414858609398334334704691248808325375882613049291064923005099050646125584163540879490245257380589618113223369934682530337614375922039775886185551576169793965251555791553497237415735056253029229886628821393862601782103500757864369209928860485744852186182771050770431699191434554582424080781932695399093330672212479345477624877351575961662483452143631924476028176515499651475672446925940864542605108246853388963298191564188219120729033604674632494302026930350782901681062150729395437706256059694634257938342184682004741229203823883534041617497787471969529168512298668287078590987889291771789037681023839982469903891745448381750403615989214459561401366237604813087854423008626266675107296197409860375141616041718091278513844664717525107139110155954063922477266080400140920008404896298993075846870336760693442895895887116532017213422108644558029507961020509150972732627013907897716200854960228150861673570489839204861901500696829801327874003293700347335696413835926412611556959894759409949333208249402886891707063209737015582760115374909970198438392164537055493255472041787944237145336301450434548776279564415635051803072055593717737087593811200513477252803085382251101645027434047756797572186314943672173281066146934881105167710891695650695586703021449682566675409084527274567118407952797124784304071598647704091384127903812075567456607903903889256175191426336276704044643407827647712611338092854911798803764761361568961779435796509237379756581313834577513511267785756983990826372054690906668446867304792913647913915311597783502130612069509043331497251051138770951649284569792629903396410301934570733215176913548284574469271244653915893919723071683908419728580374640886722722961050127990294604840856568837196628708429388380483193699593396331119876887980108422601304291231362375636622064547535955306943265106478094132266911264961813939624556625192794354253596295781308363928954339479365560082701078252782311506850058682398868152988647500004747953345692335439333877258291142782282482404508282243004762663357020077620372458402212676366806786390915203737963992979807779334484467519155721818143568020527047434214516176506770659437027174858683786844734451810368699153817466992895711052170359090727049851731661077966905158107402673496938553375338141529120829532912140703646002658518450937181766194549408639173098143107270985374223875649463154663335830405829354767042983995679056413671603410694379188606000845137587440663384735722710465698728303786007406173903310218146519808432193863963612565424688487561024720407721138322478485166694530847628770496871692454654371318431602360464600276675925147913193184408969390869401022701672953026915094528912472593816552793986767020981299387164725450053740726624371812879542297774497835547657947713226359468265124679814080958471275874642779843892532873036900115587473508299874323339130598395795219913039720082719256054345137254804128011319396185277668358529905330357536622422737943163818836400317299878127106169106365440590934505438586847889927035502440316187488672681245272247794462521583211898328269950150131510093387347158341347607784048838438244543506643771690825309164726790984919675656426457220818538486195252436502328112082840113764393082226035615996919998686595517130440854291473827569830771313040297245618884076602861362922453996628214429249412909983955046117239799984110672508178130475595091574500442452641214215652057557456360828735010776966445019989974434318961548859757537309635722921428427820640859815079775004881641158585606016727680208518471636892315825416022905543127409362387810680681793079735543249364562438768529303144149691253327561258762630473419108331113433312599073742101123320298218686323155953411686405494337270169073451329940941951293799066621908247390342382192516725029597159128161311686241503308956508715096945683554475051641345472904088629449910237248077200450774926519473931806178563687725589479672889831736250842966536438672032481080467392945594199174399959930074588739202223395695514581114491995060311742958056446032363867379280722862405406752318330974978758018480694582717435705926500779142180243586255436640170764111926282321587936696303216778773616863347622538412830242693626813871327379198866374665309802264045671294075809339677553616967455477036708498754905229999445685623547491546095823180229105308813104677404155306696695938689050600365489599645723739894737260867707986255103053205226851163197572895828790972954141741887393892469349271755409600647982616649098798711827806310210712989234275935539777775369370479346332302392887470813364400816155061841278465231272778632793281455894389675016720391647215442709995044356647493159213413453811650912921618392270266535916963067472583014280091423041870256894803750948597250884342826616807644960063304847986863158016604462043836775193980006179702560645538856728941956096044937953946486607937097249243394514691985504896696078684368982452643326511276253783034006561594887133824726687325917741931944209092686250082732494154801766601458787303365233847409417265484416425138312878955495310834269074996500511886162437187859170868696860955516154177516334566324399353050400762697231140321484960038173646123001380287667640968808916725496687902296096806763366607730754455743426148176052309742516370953094797553938308578740953302017075136831492497534078348262645925962021972159212279321375280638877680439475666632438374728799793031881234811206209363516210500974538458164821669102490634785290061202132620032456745681289129062267369640451645619440001716531220810153506081895549725594890969107156021591942994119735635522539181175722012867981452343863386312978592211153471413057004524695157569758324901588379162215580399882197751656983710957885274357814303684303114764867279158455998817841879558334231031810673241623306528999822765582644022601097544569501620249511689709993583165651459433497964621901374723886517510210664464772358798463293418494483512040256455820871065795591114956561805589372061942221309648359138427968805798420305969928137503906486546631663542022656845767748467407423496794447702017536924296514349782060532446725255012051885807874381104212809391610271887292785561574063680991582377828341565100151209727745553648893527877014900014936011284556358267378482722247964193208450568898871886222953823940390732801393961788801741611798769442011324063362898630886366821004561125016437246544184236042627579380245622634346648067566818553690738605971090128696558706706625186493312716959312698536494560729878807103729015659130035280532913275242153625160051599428669234223746950580606098455645391682728301679679845908958884871827234327446588205560046137527099712026061858832346681125705914513773300749312743509120031277846203500115558670656854494929058392224700211103876967068509020154515090779795147875630204850977854720541169483483080572739754395882218842185907321024326956617261561753366227347430035114228632482490793452294577443595344959279915250131551915033554449116584974598198826609292791997388093694676444631988873984002479930693652126344740773124159024930816391614237367850350027617861051829035605079467069328266788794647989312567575852230498065759259390446974555771643186447304837062054427041942822708282516161623189665439709488158248657181903471066288016655198544029802081967665123437196824265601540288712249848949253648278168610258340330527229415811797750406067089144093259225968156683930778504261566345517587063024199785814854683550291020969858927562577521811783449158767040649389616808896641674739509030632087522533664181196013921514888434614496821429842630009879409456012899754571021821694798798991227818136618779837345299640295735580206987085288813532267937851753219390872848753048433769338905626232075798540552674272555502901342345379932387053189328703049465487145703670140213216037284929346714506572903502146181863805269348098055694711737534033250916819759857230919115547550450302398234512929216580795022471652060357492333013289525915633145787923465888664671422468980287283474318417805629465188682271403626818565355135839464533524386994107141754062655204506261375458796830771019539772872083347840897613115352457158199221473750736063483851807783443624006674062808320962586274495699649020459105431521583180773252870426963578658287160282309487902281682994441852918353602510610696012951190348218369134535996798498896986174447323302590358030479991839945455864142029037831737373841828815116868950181325773491962960664895312318495845831171085016441800234703318931423567882898059896393081634953758599798978591011900458310153416907816127377103465614611584394839205944728426201533687280008323736610062413996962525937364596783418768235534310059775393799276413672729175689276588404395205219667262089247810169182744769326666900261192609610531787232638623609166878239360009932599546931533801762053205220220701439959852579908198606602122240136134833087372597960493419924624864658047099001276439014436420207050603162679338773173652134499307917476776732779896546885692598237182590663282278765097716241050317473894720081841706044158750555481382173834052745116903507597233509292354835689539921929047239690191971172717213569826434415077279242897180634132382752626906325057531500897814132937982230308828354298534263868484812294483685418246869408136789051917279763659739398263659618115339217158520266299088102266008729028843339415712407846296344668850701534792743694022631345632949255570556116629287405659169622251725775477120616976419767338780584739877091309468853409534353214898437787910581231586754831387130266577333701503001826370895619607938913295849995894862713699230821745033775271796087383788179655047542194652112087813462213999399447095940700483264394275272824621319693021957054081786821873759291530871121738052121598492688474920557095260594047580583887466283217351792048047590632928204385585189023395792420961673545352702090190058199606291259498143130978253743162141791191357843602893921856453683380867501762329151339977699980525742749532787352955029213438978388138031999491684497642843768234300392854961421832094263261411461854913203446735109162501463326454336828882065625597761071876252115819608506604477907477330905753549713640474504450815587452514134665370948458413857294606221471570759678291259172002665265886588672297999142858889954650462419776838472993261645475082003775067124227092516982624186048962569070065919088374607124708764620062921681600806686804660227519985901835521753851895498148283907573654182183373323413240386060405297468701963711944557873093976662834371292101729508853790004792490134921900705538710405018181691016924715768921991061417247281883556335923280283733914393665358366138643704077819401258774963917678410626649136147548461332790297408317855200443805553397426478297352633557026138893722822494101892702134520818180984999083055404182778765221167268052428444086465867438074508546390783918292844373198171654981010473208577326935717535472647308872542200778255493170339835484778087122455293979558803464662081362096681117252989906743305968826143813558953129113302831881437778974602298667495586572544093188895916730538987859435164200859687005225441897758960993727395180549911835274718997762138564317272019996042414277776832342013694903152998162132613951623602738443581403411633850884120105702540331405887525985210290376053548305007042232939400486427375165108427064768703066400758914992937212054452620690558585973554250618460975586309014042347669902102323236723552732268408111152573246972581685210820227891069125597985984858781993817113348956036673651612063527792774194632689725316133475539984375844726761393713697059454644021451514118508477882805426090505315212702010265052716443885102254304895125497017553570317979135895347780666578472487433106549965734305500199782191057196170443988993530700820931844683857924864947776289059857677144772243209878945870574823788234587998937384327238306362809942742952687455793910848791931836129192702499609606056243698056451686385835827803419494577970577790421122890287387478008274224556311540396854551004246700308344962842425088347573074189810108846132606662543157131762429607857892712120416772702553781912022572719903187816227461997664053784487133500614382701933169466699820699241159972261085754295695114634576103252217998119323931029608529545153305006673831570872259722578337793497889832305905042472854044587260822885368692031454323080880000106746581927124241267292223032775363891758981460906005939540504009262982310700886528211013530624487775498697518236462553645789806612478872240619415020469484263384498357561284396111572787188853151828773075587395886482928426435073895449061139213895578493868855867755058038326702431659220245871693186138702044525620993131656407979668380486342339902991720831754437181910853927446837355510151586022130751403607356577932583120330850852708186916550164454157835347104333475274265437541033082150363712118557574404884663710117396777185590956416812930597580716174073481996225901294661855932869718498794130918707143522050243587393194552740465899837986778361512692292717988645406309940313071721627272035384415544342982332935947636842730078455045427983856808272125469094059027364214112093046576109469994697611427913101157675721413902654673693910695315119787567396562049588126345797080092968902772936531376538986208496332246052884777786511703256420532818195557970451267346211891280955784440309180052030609658256485280635540630932759311334831106624116091093852679204308083654285256053563913797883031116565091800497475482943411399507792508211330545879808189057997148447769723393275742593790153161011287981961341580957085004803123025226162843802097821809022181567903612250745696257223472020104711684439214001687580005605031791365585994352224334640663761345328488549501679699763433819318158741727655850895747393481889143717154914576182122871563534547432763697599631712025763147044768727767067464034233923885528313880661997344566369142688410655202898289842942573103917966651220318965649115540477178245724040343764158593115405175910073527302732923726390192424638101867668030088146667930052893119024940156431336254629869438441017781006021403977756921194997314997314518151148026814033477140602208057536998025762105960562465360768566380851830715338983607550507667753538135305509166308665729892063740450209994522934921397587053428262235767631085197986713537737798947940642776312198156597079154772269547903852855458398212753070480462776734453543592283652121443122576974298178047727598639362074814663205545173621611520680577432697136287389543303433141767349717170428572109556554029437066669865584992277424148298942841995847162090085943362596682014125569358852724153023371023809119703075982974253683862431182402059544085781413724806358474476158176541156757930153032464943113704557682790200206784378572922403703845902117578091962245177623724879537266280964380552554042278822927997090295620436891893622865717178609805200293792729523202660565312610073690938431525936712369376502661731996300061391680066516654437212534870523238142082555649939728862376419978361506297801552057080465166465123507103203499694965067116219149605728294478761833037367542313355637130144161247535120626406515106161080916752471095151694335589497218430643213128361559277443440511922287713016304779271285278511219776100421802880592396234782350116379940471626486842305412388431758611062974356089738251061961326297285162601874236484832007310983363375921390503357263727709292805901423615950427568138736268529895583157836157836635310107457287900040687826007168164161405430254540320151437864355685524615549421132966728648604150897084921163103969004518266218410238782147349842814278351244006994638364448201786355276509599665456840208132370216131495120651153706451477326964031475818693662407932324197652073789262016781723000967385244109099746614726030193985188968633808811100528583942544078033848841413017508093343129680957782938830135060411047957075551375085595050522635180091519239813403209711780528400685423998905150435223874471433566943208164049789800693620415275640201794906207718888667055940540785384688968940161642148726927911643739484371042228435602228166965151681934369901404974756298490252704139663642891154292764754192052697239859241171344008675737644672738159653160882629195773052456456263231937934573082281186452076814034701264750984469383843114787261348415709038895467586522759765525438211650823308640596505031658752672281187541882552117115026455161345691593333833414195214826087890528071217485909856173353370323726821907595909356177137447616995688977573104352063306988253969653366371045440722290141442134848792440066695858436741905026404349229802221870020756370044921759696362442959606050256041490879040987052874185545297594793798502130026202546998302504121976853505346086272102599032259755298716756840993844312216344758804016340015647013285027652188949294993694944838757814996781532733922433071189966297149983284061664803498219440830610248979325421447734749616625948783263363008748902600168917663746187532632054157901282087640910397666323918261721280043652076656928457155848910424644138370304086839039406437483071679274547257207686837449962730383268047778410796971636481696256232523591811795423643954183500252724680267294915886632259572629846528402558163097135210214508685353766598169161058331592985734686157983938249651759923298609930055897063532096026432264287952563064594249775320417372614578779432998358935106317871236911263785345458074705583303138321776550807881908918521366960515193908620474796717430798566485044022344414116362557773523868087032181120000701655598285274546669143007888225652262819535119325995238458268944927593858779791823740712838631905130262620596127044863605561182141901259689778404683674601635898119197575257224628520133084991965204658023259013699172218859720932032665313632963233877078871968824616205476052331593146048782478669617302009220777198558512424508734020327928513274299911925427756891691555102007929103224190050678916396269330876232729390971878713067972889628595099450827350519785460091924354078512518920889873418376140760954530992334349703692798306548884910078856690494415381680150878305217753431627489983938503872972113095195383236243001202284166064788593921687373610621848592884137063125277691006804856641328616035725554897084255432846003176451507764403751134956048764721722937664488170002745678208543646357878592834123271165294173530925950988578462833664489128905656535292948405032909442377590294901122360373520316349344937800052621391981067123062007757199058794527315964203176373467680168827293346356034958020220905598880851496700758345560478476700940045096418132826356057381773056149095695626746493257624837376433520419948453410123939113880124054112735758534357840125793778250176433756993990573891511353435313906151216526041811654319951117768889045556178158701376825686919391272919681102466198550510585567323580700621996422689282977511887634184835796304220383498154227491363270685135993306367757834388535599492632688359144253973782972382231606542570946170833629851765861682939873920094131174097449635481525313874767117925614557163719351255154455642006048124141088310378269023981169442066750092917550463281697925433901703515955264074487397004254473397870918009304885057181917914649268008253284053385633639370340001292544934611061035271789453469924149555968646843851843165415026884326789734365035333390348828314257551107831047228598678525907143879628420676148253715130658118809892870207631587098919037071847627062067587731558209463541242228511946422649885873820802626869183353971920006352240227112833084247696163519555317502900551331713378783012875417543610781893281093069512688475312496077214399351693273413385778876506598781420080012518580802256037496249649556710871968786608949891512262461988081231905720453907169310760914287646601514239829196090807182383706449179973145714683139222133170858558150671668770259371331867976227247946630001547222060432830607179766633758874606753947810735516895773047047158409408173718673115859934650674234465721801452776064723054602307983172989717802497174509292918011230632609685499134837865723403374024551577282981401981743172728352683836699327673077282340678988619196817518719474393171580401039993980033376352646588863734184482743092673018912815397520351075231440849709413512609793927047657033963918630158596032653425145632801476543141535478381962740783183932639042774350534011668741575283729116253849655635373355207207330503827504602247151625932326563544408972868557977405044257658342143521486317979136469537447111315766324014715535054470075059805751120073072537355813062764511793677597621905132224566413276808812111346845743357948255749398535495262781997166782908330079433384278535634553936264404632794430030612878233192017101456828409345435940532625493585242327728400087077503189436541406307076016453428253569598649218606046947831876968020284656248743171709883596863737523397492003503541312843010407938143307381481221072255579406243067033293984267759505328301183255233805479168278976117477147633758898892013950693444654324324232061149937239171039622197706434367039712481261138692599684026761647327160630701821673455859032520822803214172079635369078252603218663246267554178563037885016955513356857428519456291948797043266954816049788656672543926650869625374622747210888428083473207756796730348821636017224881258242392032218206688162428403255342857475189924584706387603341863377536064191943605207941170478081990231003899215629003974673851307844337263450694385247420195123660806928365592658898192666800506996041563153303838107609049240629732000408585376821146111106316110397379926884736189970709808053958873351748044194279671070909424066967738739060616104371963688180650759950225924934223273141602240232999982682170850284667359148397727962179140335816673481042948364622661405097371018307698969486653860839478953286339511902157413632472172404496751780346552704694332170149399570321921996981704608699169570227298980803366988944511929413032910297009221703369719907422555557100602828575562440496969571419290771064425377318634907940495160931807785347643558975288154030889816060857519611259453286128579106081962058759957296526431632180806793891061156007548801079820491778225184466436968334048072149053710048506293648855826943532740657364206588182027665344300360835159721406288314678157581412424891530558218811651134899873132979833005247054858093849875797879092970677147706682289662015584328896044784739259178683348030715833881196757167344422219681553044369456340148140070244359527113749529117734034269269674787244973045728825580582690161334298414819488672455071261523097423530948843128842195417004655888792574653231318216868783168284848793235633684201978951217338373354695262492720761345282231574534567107210699811180958535155914780243112815354712331134894792505818088648968447026287022919805716658360338933991314647596947233732799015128621877851893476450059048701965848112126996899086069450838472904435281722819264349259732898019439964402038573124783804345826653899429437256930579122214924957047466263181555408280888326660359959633328572125115686715752821057578527086552313763283200854850431013127674154480192581638613959689003394588245005922411820427251473185784802029249159707917400479571266161953915418911601497503961404817720102827038181011533543593629110873847230953912045394329672390624009169935891511304393081772108292458685785316888214773119922714077175469139362155182386324931030349832638985497010398129204174845665478392647665908863773155424966062439758585363518675436907726194401958072783961709946792463818530093373069022110151078463466227249119436811754866534426691252689002032290531618261811819787080326993536671710802312240906443735484617001343569510876278025070627262997981830259401441183734388458117125437538798637016063369131567001178263595572613745492408474278147934844237863640728773083956592845423542273949854395038522334544060675458882002144758787919967214453504699934734045105887882555933422665567245165797122833324318729873779345369865479363010617851006099842738415993370598748331257887648935004864630755193419729273002792809421615455392058240222743234201591114988529040667443540669074465188312609205437794862059395635459384145294121743709442347657088418895707350935219232285074790799309871273090334812331435691531193535453494801387030198923139581864094069241405608831496543731165477861484713355465081951598124782077134857923011049921627973710756985329330689853495972472599258500692311008255816968628746351560410588760259689847394575280585919813758949548851814856239916024985339325873194685446092058443589384985370647905991625842091004911543266579487118755484604235853792911745677411649235997269393232983387113428109938842429838834230382614204730941502323759766123503601804622598555578211857000754564272515176847825619881752629319808462456304933218443491190210916424706917111922273954950768138017943020918880647981853720302189158899236086031469188834381852102018554626612045973361104793463788788175834772322027480418197460559242900823237340874328526169852148492461733265066329277575213384932246203166017732549054454710823136785409418801319059082183143081005229061050716324260106093559412647765014774998931090570624847650922480132023697958725882996925849130372076202871309508126133146435491102754367194269518184779976967344469286665678079689074952333000936546283405647458492253203309295633603804548483919582711432091397253276220068248558100368988806770845402290403003205786478654754235021840220750941312581448095679657709018885718223275476583782836935804051521224236916857157702092222763877868919492875353511029622671050766505019340849657450695503091358863685708406120603571974218424146635135353395960457808587987973070521883805425973471366784584034958777578212570940846981414490781625558329872150649132963251098145339162683921785101980305050008905206097873920386082287515166807021969983842467976003093019123630048470217858970369100999065706405861389655639242892410410120265044724999704001013848617795161531757968340920140470498403115245108047955591276069866836499976402130386345108290982398730632755653575832793565988183288184615336264164164585726758270502108824724412588693117264270761459206506352163221190106471190444173192080288538519864321291507904283284859032073590236030589640406276940284444036898332855735164123705845276013877983956177565582644328520724589883043553965639789412176198341508968055655081618994743573858426747198700415623916366838102438093404933086967615214447979563196507053087068568052495181105225386433578705217362347501400132704494724839382295786931131213523485648493474599342829054554820574407547605739605783814058844014087659276571253622704811463315575259836386468625346090067874287309644536761859253797111297329460688229684844821774109692231862870065633204846503273024723780946811240343740235736476667715669253061342598712530011848436237843497818328122437280486003760193982183814291081770496192561515426371398677552732371945207380329823012747473597906554429962143549119138977993560181578777910968950706585871849482982416116193718666036264789685094130499857710359642618864913310154650680663179351843778623713874287396215715129482232498865671338469394397331471239641499815865063796048898141857240326222635782636568673071617664741242467930468651571235334677231726797317622584479874023268195686928546010631208898631641154183191391293288870898837187006183769114486873635997844191304855008135239845601763735483752144847386694334750243858775486749743941383716209223412141400376737162793273716829930045231071391690015082407270249373376810951275456635083521163674413863251849408925964324310144409582220029136465489031784213395323280411516608744068643587675487248747630200514867604764773528410798983994011166556547794704824043411390913083555860675091879732104275376121834582360426503781438996491863258217848241732521768615618752362655972687308616711256322728089471602440156848296276042786774406696121452373578012772226976616542177897755394268104408809641252251778141483575132021975337419684030067204917067564374894002351817362072514406853039244812679643891369990599853997131868731769876941764050564558537523812651667250426401946758715595722348476321082797987912072760180355766055149345681624401764031558657451333920163408308950484601442994342177277437307385971000836935507260831194474453516821166581417369218648699436679781032378111353076530950031048336098563982306732831345575712426975688066260304953412284142402413975860776139956683353773384381927846356247279108178702335076961501617460232967839950209870491590164793963380687229571763402636688041471453074473323426485501447250182659807645803100761304528246168517862995028240444645535364842250439859947886229969243566632230883704726544504302097970400599608408309508579607388838149718233443972297344201474413113477155379933790417069362067142461394631346144667883082280611977525271462844013388830583665885964056754647235308734816416249159755972148611568401683313233838969620971274554792466575866994220800591273335171768949436288297480248723807016560872512627280116294026295305819370517992522291083931748865126895348606104536629297236764141885256243892836694606938930088069979437489608859885316240923944489918803162758426638332706906787469183825623275708331086132109371516968350356231974225077889367316091604202131649177347394689810271618717502562441936911615175622705289781076025311758511130616466679846739601218213895690577689027500807326431098289266449646242344435995511898174246637527384999681932739725972000332192048294654266592034219235323979893773932626813644638421314769147119486260761791005060574292519100754763124503624354303874057653017863403091792411400327564575963529634793651965583891082859611660265851308894671164420120583041666034180712200951545584926622069343373916863055996764556697086522669358464792380421197104432639942247272602315348083564747523189009259155232706101225251121423157725463438281902316609022950746814197624496626767938661047240740598701132418440580042610732620449528306409836501699717401685114508268646428174840070829375321772534466494415055026614778034850303194956912296188889320184299272629031357028070406576480590094520474462584513874239927407277875620727402720059848850942690971418942810953382409208848433125344352183785281282277505573173465322458660067537940932880799100099080758245127730229100065186453773969079595601958986988300735023756457724608744483829720583151084307936078302937735687260485901433340516542589517427738300999241747674374146239339128597920533641778483460085380109682851197142077167380676080726660628153660844997560988665455978324151231906349851222262920774707082011125595088580984267569818875253532650451515000085204026204547632577805172895147309149953120592632255533043381767152509980856220626504144041936644054989977276998938885521246543018174784382219169253889851078409190530132304087598629842964770254670159618091347070512739519880434819143754045280424142986952528071825777655944146866477946372052830056042738604138181093881893923642413110061831762374747988130538119406456779125696202161126063912335438125073421508323023164323739310586969200626062327462881395578859635124135159629889450534016703125990870406013810728239794315587268976859100140578869617068798482688641293457990274026377811015311158408553623397970668530654167578848279279609684135331815210597041920549493384406317227891841540015873078742677480791107507577430933974533183449682004253087766006313512760258296506670489811531290572920261818544776060524493081343607602764830272992781081142796904047362090506391950495022223776595643518584419322677931061079656448672488290800463954759216911764269286484244437039501301379351976156044840820595418239478010733764192131094472903738777321330434633155699407237951874175097897049885196067955252256592729909934417174736289718281733538364717226467940081987679332096765812452050957537694990528631257843743651134714577296691595097682668811801384731735978847812411366784113506596453610171585590674003882596325674790292899659618847979337438073647661627916896493767018309421684046005787987085734618286821477632288217555622975467973613881881989279814577802657522098164726299542266672770794309312707680628849230404163341629379245345047235124270359164293080432202560015393259486995893560901592795060378560824151929172223516422404990906454450014429170637249613108627608059632004020808617691867559624352839156571425106940843358519879454627632290501328540488105302840179589897977848410671386130960826668929553682377668777262742632166087357413939830230767960127588509889877992714775676588336235124214262374036387402311225715873082709855824627292971557178515645487762851493920473617542932206867819250679058694004787039942470602957575458222017986706512111277217052830664501078580610121934154087554271642020950347916418078101068712103358901174572202394710885484277198460600514091474360179724396936184947908470540824520159278919720652265331765659595582082843259491111841401474951097643052438610137531395845911825643938507880530822958082457558216178965425776552442583325989054908188746308014363630920837514441306520309177624387548717008710172423085273820781385022338067575838838005636074103242423547385439538348042287307647965452888548968724061551287328231399335137681748461632904950641118596653903929228873087700737578035967064178130548390827685578005657639341521088328250454376034590899813033454826389208557750649818532199226142035477935571659419371421715724847007255281683536323615403903256451144499193258687706732815923544032152848260493513124551183798376106094513927569100391750549057086577086412316855698672206048741726519590355341978645017561965977764690966637263063172702759194483474602134927302571934905516646018298754330117254419500033732933733175699557157460208975423103461507600233000591859922936082203160842782816044195811264390883938991670441654323490864817422521513854529664609882249587849180070914720730603778641973926648459110183528495522050593362871953850446721562837002165267746706179070158823942365335788111315969471617670336180739518192371865174196135503676699134586949338973566712854752362770266822326208387825574816108997528040704198434617588336433724241448660839757229741837646717855229748388765374244200580005444326184196695167763119588569171840279778785307696441189569101080372327443424386093403767149099161133517259891739308410685847035753069089817861425943641131236789999485760956793771496931189538183231680893569773454924911456431518802281796559074638707482050749155543360246342495571960756612461256798880396170366951236721204920622792258176173048518774762302676887027651311616620562313399113743050648029987351589057594288772843039649761852254332216046617234203767790816183451550611893946161137577563092572241910822428791291530929050982935141223422693630388665011974278849185897485227478316640495721533533608101196318495493478078718965938769620615805943369113178923476367853862887536337724868286951511457933747988490858659747180169681327937925107727476444977732146186423945600644708865985315793242002223816641506541688774690285294146145508023070261112380819029346968927361632274208372526883456691397604672836109272903265914747081192962020637270149110889246550264557911926040022869439696881971548433550565299450117803636454261580132388928210956304087693906089045260018264250931304013000520018406306799507614997556573286670538763057966862415556281227525365008586088563082689698068749445805305447967797933069717805464947401620619842351434744786722732761558886892470748465891927152008607400757979702425989551515521848154086219546602181014626970118088983134460452094196143948351256832606198179189747353942535987545415472614168105020775349339099339266354719978401879119227494058129449442942829015229524443377321944211517033879640114232898802459999727555627466780329324456818184737908124795596207117289210018259207441946971668469989554852667793683675955281166729257008508255860434493147931362579890244161392166947906848188993642816321206277213005842375942298331670778200486717558076151885744734601999119909756753446565826367128817174968438836660331429243269905387281503813152983668326953828999352823766909236110498676680555056170996289829537689570057958874438500318181514417261480406667830353730819491239322426695306300825980161811065500836137315337021283423867717452983558845636249930304726764979568244352153049358383659951187583871705129917323458613344722436627421811652755419415425060381159030196375974268838622570073863978778809686886358924926848278614107290052013215542507478422282400947818419200694063530321900955003233095468756063003644723726490941070366984933663963089349750545697315062698576508091660511523257392858380652885966250107283450706946161742482777206039496658318055934858186439002195402570894050597843762297811694383668054886649986063958294934898150728370980380144893012336116737499226567200899645953436436426353980309020418867199664258875185183910974153791028426299955530467171584704405768584795942322623300673125191730898404215041824759269259925721671405054250391991587116513614393890286072194648717122340565838634346977343877819913505074978053125170756090037785816542778811804598803907322618602278110804280105494806308520158510462660690544443878673847478076997043985768489339574109022989648532672817780893347977765690153645562000188646268289652596021579054421368302294690655548322942200538639150757403789954544358120069513861216277793771263453160705239142719967945951416237383307526261181276618536359626243545198997982120732306019507062662743527977567964313899826566817353543956686869968118167330323528807785453511465314366240357694120498788624404510785397714985429250683186224222413465565554411111435815767603822707710185471527892526452378594563033305337763955047261905574305691495941519079676304570080639546399727597545787516836273593169475862640445408690746584893768008241479313917582249604010983800474178122459653224420160411485220756003367036221655140703298908751694419406499757177144447407854647150261007144004559097251398678649290861992401702779486753637809044225418514385591966750576601747267099092401222796516131656338878822055539070743751656408219275379053920006393379230753189632799154168706338612449500573439714017021566907815140022609284391565844594281605033731950573154502032607873183339494497863449406156836182980773573885237825146229995096913233204639274172041593582366256236812534685615597863820083097926920815785750671983228722837087601040987172388316221214987855504411777124040027689385124384787240836024941947687835471834166039961279775017481011151694016752302669065666428286881391849544187931777141620692878836671712811537598210034593087932649932261782640934250897463544962295230396564278785988164569052838743066905676067170878985536341084756803142716357397461958857236779302958773669392556325936330253413602816714419820790361368424757068848623934231899649068670016090473924468815525686539495457114012347031495330244935312268609420181707894740893861001713823831113369688360899814461480792524991630317792335555538159674388072252693717168005441271359432920965392118014965003429070005963471718082338945410435134009603464493954825269209917039611740829947270953052419825303101361793678219569549251937469656538199387390642498587466124947430583408818479880088341298812743567278402818799056632929611479105704791234781966538006527987930047363709475153600557540040509814966013319527513505813827248421962905628710342277374423358825416058972684203192167041666193700869753586280872478373883134025640177789365930926012473215475999745412610122135594364089275255772340979588590631924739851539118801743966570842483238587048400846120493968578656092547209853155730528168009962409601603945845538261870794170926059646059964676209050624665860618689778929334671624784274481263402159896423400312894797795577869956174902453505872486862985125480755380464363163756217938170267909295693950634494130498796650269320360219545917688650617903129517166571574602023045517206052669569728212738256456813653966941448868015862326410655278490531762318652773774396977343270457667065521198070476608198322273028207515474590420378192768820683036723548273314145613933506760253740436427731628223120510145341874728716484085843186641998076372914002009504870439272726449374151227786958731826962817963986706436219032625511433391226485549947547632758792620478739998021557863153423694134525865638732772004699990674675073074971035233696429989507004342064594217782698670514489961585072089966584778991238489191384995445638080505493286504265168124524505325052037407911130178065683190584942424017549085024882618301908679170485192276546201070026001589738811241494870641919121011809515796812432666062822539167635435689725873464679992125031232188350216496093937430343480663964379221473394539787684945370709364318315477437783858278421386954756050585399503633690713235274548315747692536632630755848273428974375535874102605514484979649708842893421302529751665249734792204800527992711516751062375660766101513325047361410735776356178248346246729543450175864149560931265262339318390076448337657380613683200716294155967930387298242479148843124942527167882278335624989694893653125635014571014053278257878609042731790078755315282423418632892070320637445397008061239486932446303730544822929426210712224964160887424446792719934033906770225253251588777125869546314311421389822792310267803702588623348109404536876706190316099822843279444850609424548285719568927293614821330972831922593113332995760698729085790183364004930862710738901603052233266121953752462834324818702029253539992289440420191443336175124039551756185503693573052739387847552454326816179202374596393040688920983554999245519611288205924338270395015688484154914908130516252636359985868422924084843924622242177210243438521057607939575048189696670090188558918586273600848181033363336958714154857473761137146346592696696470783465199885506694652381168042952195112511212796598252338232244580964262700082628441326507354521201661834639875697928558518853073809389864579097404473992210292228941386690950422656399909643276125688804573493795797446488104631262152521571586634151536755436701789020369806792770435254560044690211164488385984422224614091319273797596934308096363542429203234454032254497948245437416294070365237109173200555041754270418899619111411578700713981312046406172633393299498048133671783081789792558766392063718825660251467853211746503143641614660349976763720714562684158252311848616708714515617518621922848469263767724463342381536930342106093761416744154120676661239810782129776349005958821638437396368914684039329452441229231712590647328150944861567446458509900525617430998626201809417818677617421457049997658755295608995868286066557262370718369336831440895024936765336164844601227041534257225351919252726449911944083597574481554574724930877130278084740074456569031880530380159956031512094170937149392771341426300807659604636567304911887775128415996088426314568133709761234607623327433734240888507987452399074936726627985224555188783675461906376569491469778222724846938994666818109910301768029350942492176658951382926381944816608173342134729863986360343665419206847949836720686364517449265564281946321412347249067168173627248587890355900969189337078655916351897105003952485908800193410620168773780952440426632764196790649424118090536367534630431292561533637377785691132995794521381452856835204257183617728003053348467359716707975178556866639245894666639075541972702058929618563891931101770063188296569682259976828549413766984394998486461919276493059029132182104142809905176656647579866953974364302264696663195303077151059609785290193433533217541810213569338996413247774502129351937673204752876624010434685499429247091614955591343535335073504894906086798909777538868199109656163833719164214773846251964219282980563567584983234569629012762378211351540344303008032206761031343986493393490783114258844932897402967333605190903943991966385838603992005141193933066130313275319544054931533950739575833264453143011388233613970763245618769929262251091355038823465566756475867459375233742141568420549579767335135876302907120582623946245759206297263684111000362508008849318463840562992026677789718318491460963564119721112013331732272402166773298128815905615522835103064985637278072961794868512825024301690910954820299410024347158923574826385885286896638359437820714518127041768716728842403863777215466873200001819577075325070378768591522722678754799920362530981339882962271995347548293822763971734164323344784975066945413388733269064764282469362420063709692614908173224591478853508745590860528798280932012512892876806099313099230963941073824612037243848699976324448705268927842933953409644115708822515114696388012723372577023971208783981133083960381710450903077251152154996627751770185257023708333448526471340733019444815322629860568387838879313747417118487366438416136215106988074331196806241833354961508713217743401755818293422767345163673373474451115152252708061342219743342433144236752632127467732057523534521132047985827456075992294241142123334174970250054122304626506620349069738386326557279778196878158018551354647700189414925835331253869970034421911462990172635554403092833637779439660522232530417321706108040685807040231931439564198827678973393708856212736485531213467997744050029500568679408520536057402245494757054010655180121236339782917316435465596723358220957943172199774046282671171143454538328715109660581452326655979182688338696004258281506167629530694663506416140750868062764433861518558648549612412929005070779653905859906037568932951058926138108755060387043578167474638480344324117259022849079093314473133992233512513409986982969384061939372121515725398390148171296945682650731495896370341555874270192149481714645423926344647283664911278927874398958327658554803706337042557312767859608251706906361110623804585460183129085280924395694971076356559151919802281903068532050434548696430558718504680281081296923468063220626785779863007025433840985897767563800487560117236536104973831214339127279014115521466160688005309029899934074865713705696318335461444053501129393187763356892931278122168607237028471107653978326652594318091048786864610445862118425994291252542265984569019253971750183557839074135102759823908655534747692215657888551071921432711586991698124408907411469542676955455194433332794612114666081916726011527515125000902206691507755517278709253470543034535235730991868556768336432868277171935343884306513759164437474921125402452197066005370132650855980934650390983961529795722395509499714319274158040485074671245365372584974410653818710078826906727094301023547962819420350663321498335715126898121313501716177875697319988240884407363522871959408834147382553897909883020551053520135872362382441097535204223157697717422215149877095700676047988430216188363238310032957349022046516031775501427658269066756879853519040988687173529205296108494044151520997106272760718371750972614459081484749353089217905107778450176032821293387348567445563897776010993746339617915659163818630386610876929776569316698946511061924280063675884179437643678485213621160778520580455569910093322710477527408287514607220683795749711823794366813726840986652436309412746949106113055354173523171958064803007934773184327812817662129086749744857384121871459064956645287229071903738407803351532876768278062033201513241075504168789556101301444958196645526282090764848896438436305742075459460685519247506646521421204023139244825526805749209694688040413514893748312825581660436748261501500739371973573069362984426831338181721712040223059939386138776194783431726646941629944089841090232519121796275739291653427406703771268210211273160094837601806030179219037737459113592449552099131174995983957976605007418786706071237506133866205882629299722967194823108476198096845708360210923362169964723568262290386204888458361551767695432657613912966547525614108280261828138119513349017055158924532214252985702456348421439636638083748098262028823123656016963919516127982572929027178422632337733122255372167858764710935754274642888616185743754694915604222395271596610236499235676263551430331586503564513338188938168602535373059071616419072197254141537702215159903973192266696750796205593247694742068365943380091426930211811297305022217666884400121960022855331506025434147341767670708091068608780764333086962793816068682423562335002544505370497483749909172075955131803576737727294581858434009415321208418313797183068770639815613741599843314929653691317250431515592962567377406724963179030016370582765621979819256446658498862195733838298748093116159069535333831808763097710425140794862733690457969895025331189860722501327029643810876785635959244006745085044583005008125855731520477754212587379816288683111988466928798134132756158596865606324111487837331691079610972558855396876957457694418636349510466967936904877178108133626501513263540899878542908078447048543618967897527996504530331951779509228710891628977348313178413443444040801339263916174620236448333137534363281671611535216196255427170243483762413591106988568680631455311822567810358494081115317721868423426732845980806496419388723956347891573708290770971244216128998667934969076614510965881788722592878644254537851253342940316134257239024777879050761646535773402988289988401913243924051494655733852314068781696187002325913689658640334224797574816924748448496937037421582226246697045974969378727336683515937597249804668324980258847346227067352547476394604570155407005538433946809618094364000889050839838932991750509004125697142888182720757256233938890686324913504444619466301544792542028529082615806757386857989511125679737799966049956997433284905899298433686267185922547791763985598653854012541300631326328297204352433798299631065578929105831734242838499743644135650194721604627538814194064978818012178262865695929776714743010931804848859477731918922534484741397523414245762748669390953953594526735410656511995360326785459063926259640458635447067866003782424216425750075971159219090602949327804544948192276212542395790264192134440651337087644840385700186929062440021310311689655902853163411844831325753754618889563884255935098181222881069208846828035991489777581887324562378505226930201828169386165914283118012657415615428484609227611421051214539245047492858246378923458938614443761108056161535602322916029069735162263274231479542129193013597713844671217871530654369454508283230247156187432482521777729114119182368514679290848896871271185854729546774669106313785259849510774563480758460419202695934189478700582475582631959011842846437832827941670181200279397524984959101710799899163754799242144457823791071870885248906430973658845950786710119543185572432872418424340131385015276783823044432739574514249649070496087394631372645135441589498647132300534978923828027950141157358373445163199129405550255654816042673211434766171312439108304384972688583989279982369434438319710807438795854505778483800031545711726509570379733760568261600073769192341932899230188989666024566325650151687924093235370232377002307973371943801101598608098600516864799275862395966688914346714197479968873341254725102778955722673762493097959316247116772296514324110446947313595184092849178225074363476452692792053424336983002979272355233144980755873720106463325975906864207877479369366170574550853132677828373861298150041078706484286715398075463660870231013038197044876795033185382793555914985065901302065187966327419456872365430827008111867878323989518237050599730455897263016099853815801963238417464403494852027508441847601084332757836485225736252062391775005505372748076254446572813389136727351929681788760490121807542265094434053131749299191667261045633731806403066287811227330820149558513931141354584605213818290561827181332830244286418842817749170129996368622573851382567244670437068144895905629687523220098178948829999618102884717017093393318908774608038433446780688775213922320343259222009468200260381427746396031772541825672861851093124299672525271470534170127854990883696868910678117477692896435135925465811962726393545730547341617653905703084469854696990819875565068727888149926385662501574495947773638174080681181388049300557880493792114334217578123121204795505535660673031475344218332087277828100468086619744073925466037914175400573391485257797576489293123120272079833334606759094801363357990207976344457652555985606255026733811225538522238741306135430070595018420619058049082862450389272972357733100689109197475857134367046515996875586472766513423225346862751308301152962193181720095600979384875945977268024769590005087068509192644151041602257455613961234109744259635773302243011962468861144973071925937453525196687221434188363260977342469456493837907680533344844205835590966769878887918781211205668924294447989957444850130823162484458981652605975808782384685712565650303592829617386010001177342327013847511330506270763923331740733731484858351852158960267835219192201172865036138728158089306615168815294702941417448775106222722944433566153604067396149598819817354231430712348013296771966888131294713946216539507400364362720486011325953953174960357015426679760793890637566048762854776365186533564302925076163042448995035134951477310495680962852868066075394301991092138067111083516543601746382905755619247341097970382826781958356553427900327308029835550244156574151548924878276990009266804607767697338388654165377636236982746316379960564409204531291422673705973015563489902440728989067887876490585243760227993864446002442415737866611296186109614038266751553521753928803394292043237722950800716554587807026335188890361677878576830596544819690441237491548560484191470978594665446393350114630772493765337549268610760244192853047293398071206650135980735947608366382238461320660561214881335652710302738922522814387540838680479207893417726340974703842318983413582951333930210975151498192083082283402687382407198478471418234658486348200765877614850840302899271196608919932432650925789199296453726262648884189145400095131505495895524824402184277821819238824708260858603186658389549004400914899859880384888812811836363180685890633590779921221732441438955064669278930131253794711457458342057589606633065963751410749168357030778465552014767169485768134775195027005925907303786259137361611810389798521202376966244495244886869887347762319504226832394566536916648078131413383167641462873381493875952246056692084621010932101008577175530589469310753615502783899595203013554961167545233028107099143098855477878476878980821580858143781190412560432750340729926359545353448468914118718066183324263511712199947076951216973386771935471295423742607024515336218439208825966406662836114114391980004783974664764060228586348425205069904362864219735336927262642036715408269860764263311519091313733756237731329169872020016991964141562836838001919605168153078959707722154727651777295847224220440007586972413623467630222593839113317243028620471144088495027585938160905886342275298608188345250651007773494535889209702061760688855126160784811420486198551146496989890515776496234115262543817581935921999931690734527526987683444534754306839436425559980100124630962712637372201590326988521476402342821277847812015888304822365954601063653706662350833071482097458069476432804479397824424551435360469556672008327081871424487904226390884958067309219993536596361512174691520715543912182017572339644648121990289025034370385044308475399347084727613499746751911615600212890366932435356725452586512197906046573914610334733668473106949739389408310216980597111027231916756066698970884937826819270490600934731650309652817741639546396207612720535615170492156339116425587672757951160379515089075767002094713211577605076260063062670881308335759893198642478683937330371873522655551034179276747206349963078344667097827025400513734766961072825927666182978049356202424809395824359801162345369720197970314234957676461943900716708691144900599369536071126356553150074277294535469095844192676933858243269200693111913681754107255069091101198036605028118256038829245772814772666763612880080958787203996373106813369654826473424489554634792729088257741586471527610213822160596309483089215468635822245841854969797310956829901553315922360431937731899573990471199433333445259857013005293612557379068089632206807751103652626890994909076847495044650363973825608804027825643213918129952072651740523976209826671878687083181380692889530289120858120384545808168835088359051119755453263739582102028528946607082362152616569430626832778098662345825946975155406453262509964811963202651169328984756269287087118648123248124491837478823819716466820989539258765321413341841464014999383820249289760906316024636097135627997922174867088080971974015329741886512123863399088811452675420274434527689812156787046779646749550837989795210143421734976548347820512415513732619729531253006516586548119948437814812135431159008248208548969888469184305063523529934338662600759404861980985985288098188712361344657793949982148376766313541849443124604277341622360125352739753104037551851709140178079551384621034379872053141812095622174333846854446725121392426526084842101676748974122388875713108515837724506453446492869122631671189161029325506419724538519332046800472752424097377128520582123428587299145132945459926636747004594865520224087151193353265545434470562483535079631533188918463650395534116684987316691133334609763910697546340506358189756370963752215876662480198671335902115532592201614683980376874090234835074433369829196899016517406336765611901131001290008213430491890293078871527209928981380457921027325536436403671479769986142133630898889645623038233513136647070693689583814877487247392355279473737265301955695441384998474627161338074638616132008562044280266777906756245937377520170486489318400300262661913556375967201044472048372811475568656910970857730709579617455405472036788018367378718756014882427690283639554738571264490397455809240418244285113094050149697027577579904988741745341390131763419753195272213322114651868713163885184779055653001124421742143177907370619091272863512587558723409940881838507547448937825574113434273865846208978992384099250323794769240530855292725205303026673723823643773870227798960949292014578712256473876129070423956261615120168449556995792199712764161269328519284796918038732265133928139292427826701168749037312967870050111113817721145891305382361368205984309521117475779898404799238244702593991072632317684139970758024223438564513515089331886078832094847057404407667448401449543565733801598402232203791245982098175462958886526922283322895979056274948453589396953714186725921192682786092623546048173412800104228862353292339864364806420994898855191109908574067570496552513768299056680217426543350261422763899572220153201333186642692506278108361800399859633612326853679490824736726567854818246982130379291533040077711014637008776973759192632641796131582141496788288815122430292409641551741171327168233648983512764950947071893412192228273909095975939221986413096585821042685657424922149473115971365853180482031433270870229741888275571020048427338261636562831986005086766262330664712244702034135087678279421774921194563760151601821753935042702536170872817353931075519595330898906528728218570436759076814206799988373802878992740101053579811172968624267159916477156685185465172542651953694267319144465662302656978909251075063070671671899827432911555774221024932670608894492969764260848148344900232870660515676653608219423332583079532291819959380017394092248785378401458702808321341282342596388627564902202824566574156333311298354928032162227367134708696198065674039662180825921981580234920844429388510775513661888727981587361636880429030212768307935982912735356923043073682508080154159948822781466034268522366589952597893539942809515997774712215874894497993478585418376684169783594992494324243090561299298640617318869341534585025639988088573506880124067931841335396945047981467812775637789820487565757967065298377287487089524690028449911648470757544795674055861076304447251707126939694763727959155055100968085202679666283285397656209921978921029272993688898045647695438994660665701647713359597267657520393973863866564512465929437720010125769576332959221591115749193151418814380978403242471648892145524844141540199228452617140073675705079221161518724126870252191457422388341052320938608459468630228924181688931064495157832577695571405292861012015882511802418231880577571263279655746917221258131361654605518644061470568377712590921273346557303933224442026510123504780993236160656964505756936989123232607623899088036074650076557896615195717509386335105129429246589914326464669518630206243779084590202100125076654886426127124749541011575749097531146945745288850499851025187861467949579033796185629950806601025474462385154964850776546349298752727710065626647316376385356626667005440162199980884759288834400281097909075541898818907000965298845635855551323621782333877865690470604013796422242769131886398838229003224813907572034518616188401503316546169601633310603520849839045203935600125050293002123522662129268121389007685136541545078083347388497002557161676114997800864045230876924158612134638308961266642900788065197396349862537666156166191317808819217782787021578013507736428619882588220460826121146882243328450877288544255015385919138577192223723817489427968012329019136819510246770811271202276254103686418626332352681263156197128368797341800726307053316919835928957492548040996901958440689003125454360824281263252438558852451899716048353689134583748510471967687125073501741208444329383044337880339317198060031988428655786729709000706778384907258020471903499030478992620449500284018762966329457778293819972571330680960363923681472180521683656852280663858477430961870081883832686694576379915977764526930232009723479401830358903896626974842161221276570125815633547257986395931287592772992467153984028225441236906311672296972325110251192426677245420574861070253469903297818489530110273853000581090371553070837050660929695926504980244188399640592807381953745415984255219611900068864941477776087340383212642929891009092515060053904205584126963268411431100121954451756004653332248237138583310481354255130453766043811114288996894368440370184703190301928090547330202722724993245167600733321037576032921719428310799158668825760051006663607840463447311811711704136637784552087481286652757362732443243078470075541692653515693872038104728372566105604427715324315644164765667036718316306534029048358484093688420100716205366011481814454404651251762787902556694813256862969703685602833891231444606875729300617070466288641884128176281501074930139256967226574609934452124158076273218249206276891156907797584580476669676501404558536770434376578657977994047652570634919532555220308771256767074441107654075543748819559169527410838451530250507684813652621348647881142313772159790758460967679781720033770671978104632887350095587536477216116136495648017966122815037386177361778947521193425716210540236631841682117835990050340502527658837885724115594048870999476451159938300288968283260662352074263701616218213537244683418814478314397706518671145202371537614584933848494575892405185326685762828908078834393693168364863652047619773145582093010377551460426845405165126107837247590565235590938759336653451840158029424459269778271650494950622870064595376164233067963818241610852354326201810711863196747587828566378122636301577840869422706896353923754163691437703945521244077155382130806295389159938307023324207427002723120142640706773110902095274218271221671944360706476531410879566058668609206609804867138952195458582906126157747676642647193305445977457248362435263138246025813084565935379752936022927499514584609288826069149475510698376114441929264147889219030360643671952164968612360520614972407106846569960200240012631769184099519927890662852565775405641817481629223531861341803058359341503804760967677824593327479079953315640832348858839197524881678163449161976637366244633816492692542352338210956927415727745711277597229593291057198069960958552915437889960127233039894120182053945615629100471657996166781646059598064434635200896984519761365842053274631279923021537640029422494412057951333111433260960826820357770551621868251628572998645700207379925454127511471320775183193620632155751762312137970892734563031908925695619582495618155155470820588488009752507422241122220842032165771807205664175780061732245353116426809192406195228317526608335231757814782803026771370204158575548049231368062714441512696011868130204662117721809049647102195882086545143843109134657248354643442751898618889897245485207351326567094357483996501017058291255720015547858826907075982262383061219771307062587574568334586852592058892956169607908605689301931190875410127510722081445109345660326698066502369904031934323423971428007295687855852277327271114194648396227677904950073755558025879940263243432883805325992220332960109135012105968073437001882887598471375766631866369907081530848739521741551579417003340482108551249422177028832608687379077937900868761078867441836839104961903559952119383842577479548566984767303857551556752000147164953256304009534780389311808089124682112276742001895954647741085510615928773239937368358079449064243044645524871894626080907054928092146898188401252154588990396073305353335493614142761289803388587384120824666985053167148228867715174357889297705195616145259768506691133043793642726357471461374544525635291774409742888909345224202888674187471235050029836257529164269872891544360163431450639152252043269837905832571447833376620782028988440001549783874222422898625955969101891730165483128378292283779448168176654531575685472477015396171924259477038524608538756241657316259724453878301086583568227602168677190392850932318814464435427974950765715393693983714821835006269462719361033251824730764586359908399103749652278630284635283994471601588696455731140221130953757384272612110225127947617571008861114341100035373041652122095715453592264195275055602206195094680490964686874928124314540169720339675325307049196689998530693996895572978423404706647042632288014621979600019994470093656686891096985886319753745557177110309169285499448633435785044168302951620537503053180491600428158432877159416311386061511653316608798441607412725853997871221321205565313099945307978567359728776915536253997911813213966551441229248820613167858263747807323062126334363636695538483344907966483606250045186356138818873289263913456875686397824206780557002893287344828307076421272712993366085574457438737421146853831683304553214753390199934245340890078403826428358298188685938700767179656171437929750403525180259045466162745609953957249443347178951528349867911955017083488282397223755335425935076991479472513422213053535086407702480881364480221050121698397500567575250148599779615115070146934788992811760736379255973026183775744952956524683516407435315182344450436660797161668596612374114285059014292200343582958645367361152265058595670280901562326945696105277302775459057621039074532595064099038792909873282663852515434844486294516567824731406111111201504509075301138527256155241576293782805385217937634304636900445244861386695357671094816994408741051366638760079991317143889486663082888499802142992850480390684375279413345524440623801619591853623434951956595290590450629521228590336198228237822600425162984986077256629429854831986033976446594896306897652369989666141448284665744411187056289785965799663214926440061098783376907654574976500402044353260582146603020556310957719736704982432859784261654828259894060085709879701713635188328254247062000462067252008160281966235031333012631956914385991881802670901631412086678123837105472203342143448397535349435657965287135679580336634604595318650225492712818865619097663453527352350473182763930309409172195928356920528828852129012665640115186369766841477120883350688226803475209813430061054858692808006595258290851442358215232809091293078639422205750792714869415287557255387348457201203117836324452848397643091564422830650512830326542676290771265077775404244198391435319866644918497640610377035614227751645253166694183316944782781297006275540486255454372741430083906541459612729648085078937823646711259469232192842350907366000518177007784506599062345970183198430376893112525704467725051436268339222534794995207339594284371863609936001617544464350338937737358059541459626804531491316927740322346745040522927272707952125663004132187250814420626418286093036509838697219257853210785511406695695408395774210024442982815834550209374956558416418311042138305890136315658592508080777106120721324036424326276096456792220446483857078649192717560753055456449974134934241288333433371834543854458689968339745946068022144111442261049804309362022533079279240865126690597996516455420472529877815527073856868361624705258563686816673467419795054017929494916929575076174539954767452748556822437974186560538326624482763925641750915090921074427974909395308575117379020253368584931804198558656147268209136602852815857978967228579750052778702643543242784694750221883476160982219270877557886634278801606300600683286539404415539325902399602902727497859761721751244461180019796442540074173198512700697239306517280585493193956508093100195344237821709982072814063910550245114515553798641508291690596960082911320289556070342940593088840233054905926437357439856087808913745249648541981961125517632292927685960435380125238238189431108839984943939584173200105209105789287784256738258509690958479869701267629786758517234596499028485518171533542285867084914963394465120800911138018241482864757754036734281876484278891704607950646696024723807556458355066480971427187447442162361922111538720333117957068582983237760211929876664012985766274179908400675303052972665502354650931512142264784978268621272651741405626133279277169518778319026814183603591044766349923506705005803457947232018384580625638997340513684603860260535176057173481663050384660544412831061488033913631214209132963105485201908608479996671601952607476059501870190712079990981612232958037653988754592652046584958657553559913375107574126425711126908106010288233951811757448660343256741072187005085403031698359264973246827542799643535579327940381426158598273238494040971793136931477459421090164310090158286565789032241339346108688993978963860791333831245310106748779435322750793661388259533948879517620420367152040009661986351385647844015464517730961110200979971337032370147142238592615753155660933011637501798663301667144584830753138219737074494533658664124361897264786520078429063604803018355510886381806117555359270051247777888087288416565790600018767675439291747277347413309026424868058354584992082874018253923721021522822945279791556149522613805819699933209477953012280814469742279052395092345011669566049309727836379636614356729646648318989674766515329518059229360444515616595751631174546770239638462222511392933264093402199705749408026443997663079914913012820308466278228852007244444134650599903793967586209688316633044435196152485214794948886313743394215641328075799562778854978198788981722033858932446046238618588540715114731327212662244979624695473537110047455700773238500315059307989351759043992893559177378908995653820549309051949638833495832545917237453565954553800512725074712267180485214536905395790615527850184987811237210786547241251499731486445688534215404081340205167170928691628388791107504462389187568600543257589142144790033370373356110963991865228639589653766772074985976486957541215688180602049934166103648137248275910487651917009473282835453834100677222850138999565649503655328064994062173073900879263306598405897727598570669837169980394515204292467397210597324546689439716974929341721330575682430273018985191669759700563066385590038737062293946894266857927592618135557012427827191449161867383637229088756521409755250970419142065505148591790026305887956622748000224069542935846708155385954406518700373967286029377773710973134743104719239294371672899162269744588323116541512138049691906581272955027818452827970536102929633633408289589614726444976636636335226455153707294740080914559320311234474685463779422388164721612853468869198725641378267511702853313448219894744061346987062315973318055828018701770483804024601871019860191702763624329925926537137885878987942558073746006020578863967823215802405657617787453457052043711977049550451520685003028678183146384077381446967462265526609604560957015512958883863326151157655119574076425309073380982955847890936328469705944616278409995257285570488572328118719040219742029863840613227013385864529448738243445815459609904593187945919781667870694222280031047382619897571804135953423057250241092039167156427532727822701646596621789418756365991237956444399333292795309357819117046025828695011817304021651645663784114144526802453386100447105266380656219525668298383913961017411517455056758278716552644524680136492815013809118670816178809025489082925314271274538174203128990307369364573911147521866904033020810738048593971149644443980872781317315789331338894624826140368822842017037051896738500880307116448768474226106006219800382633445676867964906091682221534499378484573496489211654912227381874757303342471855166779406898573243090020598063866669996251644844569573803681000850342659170893538016998005461856405747569362577342605271320428513796061709330873108342036465420435962324572144542459323327109406857060811339421668266639617991555541266349529040672646943218954983696479827488905900223405768330144299522339935861465701486062210152901948326050510821454513899936687900163393384123547551841477613716472422460059789413575891225759439299413451989486989757442336789460632019146620489881343911766435073908136223798473909434518157146091719651550338639427973004760819289539373472940431728435569773507903905481334558774231716478402697893140926179045451901483044002263067915976808675599173449486685086035063573575598726388862988635107285099978072410570864876907647271220520362093500169543921185145686194193689937013686208632656237129077465938321124917342751888045389443095335550639250957392726309560154515795131112812017040353668632807037185101909958210832479916719513625324782010274376271807129674355622011601859816732019248893508192019226993288402992852111568468227392845765252859332206395724541872793329539808217316433533514503227976309306969197425082930532941734101355077907029246112171443797924179439810456547048575023795153785983056570263126713864417353181319856993439274230137174258350196901839718035439782989168082518675853110806901703387472210950646735769101670260656977960687225435682115026477197045168871000426448697668487960141059037896293074918550240504217156156184771634026102670730552807325962030190912223751330992073138141147069205504558407292397600432908642638791375780741588460954744523164336932544637203690649570515504868315254570096729632715292633463860830440153280014193119961989231645415295947454186999576415471052574608170159673829087760364397448607631402020450661017751467286503859655671176692014481623771968174040478265335913977565135518369842291100565289838799855262145218079341807125156671543013106354718086120719828051261479329985718546802857267229573193766081086180847438130180682106747057516895573725032083138960080317091470290329341028855687595610956913048107976260572659581161995691870203803683893324800207107331883931902184220737429081058733671655955828739299745713034266943832666906626108989132263005282553550447711617275676168126065191911047549429725608487682208487018848658889433440229538908342204974908428964339593215939401953720740131687332921919934051481144021705240603362631269470491820307645583431758550686681255900476433650974907232844780465593791341897604433545975939806168392274693410560109456474696004619960522613162130108015064159742713700680155713264241146762964302174954309566507135269957786881013859205682739646398673661365347054252148664949443122534249461962993305570601357341713114499640680436921265516007935302821430828487020738000944900954939499184243756024464201400570969553633943773682027947609600997684691382740097130006708293965582710295089098263747983217358068510908374775975805381014626070939088510870819686597410429218267504056304717300169691650093608226621929800804931765106701979397618948123176566408464429071136864130053518679629907189298351201005131738879996393341251492462168125917237005993842566104666851685623814799982921374952391654139856482139140562249759926766076120596028954896868537972191037956631483054461379263857649819485432246579313118277177146570606835542219284456002137469275824853996995968114242661610408628119757713946700565616585398850670068628289778269740405655032528790314916363593065839531416614753570292033696697525325287126262436927670991263359929548588112493658140792110820636730450827534043524783876480723460511059960085970881367741903150633509388571818163730740990825344085147468568983521668926854210596416978129427801723054432262173726456325099277714688895411197862719975589296790887145377017872209759546682751450893971439968333312117992293311657213564347975003300395436598234782341310496444674518597960519409569110553354838924242919937347626214078514241466914051161470865800272231069419776595495531402696962593838652599137831701774110584118154485888475483760887179947371511869675738229366370556268097074038274256076489882857484968356104330122555881053675977881564694664522937123993533946572273877102021765795522592855642506635178344083864588990474607997129500560959194820391207610971654544828349991489971494470040946552393279630224033771343949521519257849767640292725942956996956744527159875103514540561643115064967290945872248506605777238751251033727234422943588389328686265104467331635113729832636314195698094735928947349595518529596642050019836995407189248126481416040922064511998704392758250522675050147267348977709964250474377756407740752556936634556770173143055664978738713594104297237039999937171467099044272940246120259838350949268226696709323423322085685569093496420907563721276494460771318849321190967972819672554139475780973963391573155100732755693461737889555201474642339614238435684661240947338963184838000640587590016258393269785016896198432749693212676837506150256154517574945925706270695688165032125512525030970938440632134715659350481844135001704339521115115041069712779544806201799948798467743623515709965473006949587178252051240872810075767110296044014434417820231144619809828778627905986025863053764047479294778550202602902555420444902829316531221266923300664787587094300392528723814221167811608750724558797635060947479372565933009181561026468276402569581185694491546330176187635047376421761778727416934961895142748553186380073548840301598795077594674625629585564604219649325506341939528424021796332877050374325449261891068597497770398630387328585947317191696685363484426923550839729247722717531929512191069966762424282974669266887377869010173934835680807656050729395617564959647055358707913530412164988007178031556128420143956593312599243604950026046360664785407561857520154195992334250893163967447909641039058891783277960640829946477725385631090965752465762737878057708819485499265641251799960835010997146552757901689712115287866766035385836906511638592460935259488468339381490911990102191530440339216815075782268120440588153295855173577733929659763168761171431192673832630447862478179042709886291479460547028635796893723753642789024551668502483730374495016204810952344312793530913132715653805380057205583895081099217374324562866581155013255436482208625253068121364824124499590767471243827828072757697222607966717048197363878271881565738266484536242821596939482507301513717080890440092245108012344170607810700189352753868140905399310152000511413967961656099913611943721188760426488402736633143841176859112849094357234799649154275762112668948125411373332321207443508960909279685895813052504565281775775748542873231785168774056267957006313180355704515002359991877900372061121720989557542346699025892031906979210031884930399612248853056687392017433330258543900190980370825545875057381586215785800372561587566446505218111411973453366727352115210778761835789055459400013737241737267743865747843218928173014223766360239625115044275519317870697227160539401196316137418371403356217998547780114599568872245260129478516820358628834804391381868479229844556871222820630701718263055400943332144906778002520027221938903199645788251564246347859966286536207542879062881631059829690910509256706425266175864572002618302081430524428988782716143286933839728115221764718219051911589487735120043968306091164663219472551075380688220582689433433997387829952533689545993848488236176007082643139978590986687463499171859622052494554471142182608699864111946634307738447284452194143025557346293509169837146901507302660446811417622007135042263522864349765192888512006000726585034227196691645819809126061963198781020332540088566711023648638650437167361400723085838560350663461448545892595600187630998394259372317264563277322907716107726030413705338690559830254945084674747934113850606655648237576256109892472126515494124458441768785415021435855041324098173241826609463359878968824975096174982343678977936834534531011274563858798258888847516105384648766020578147294878344955993802569300066435610302637514122007624092519378369605614841413725809242756182230165251206348400691975275277975690862402116971953892929440765905306855062907282413646359935663832548931563977214616574979712999163830522735431139370434628579171197109493045543913380301395658719073283367818746346153060854885003631955720648420423812213538615782317283643377014288852752390400142960713480148067238940679221649663816734759174590689739333195384346716378015643599306296362335661994994356998003266726421765865382633206421012643006324710455156241601700066668079660910095981755495090630026400037192170893353487393260181094434079594086792822351024570473727425965935041649159879346995704089170540880291419821278542043416640479165576059935125922906079282719091742390624261667066360523667228414140452905792895539199948824785545571582845449319230880515354496268499071328164466392442382262051238979492968072055965435219203592131602910358004011788942508193439218687973222385960618625785515839935360724282356867427685819501850166084477579772877592128885767286743580299105217127974490043725216311065159525628758769406252028714698086639673505317422642188950666414224519388021388190087359338614995423532794385016090759603653684226777946079195162708229957278515077330919033683843026159371767092708975658408332033664517194738605740676126146952622032702513170689450025852818898677170863771984657712237824717394932000093239410800655038416977721383357069110680723905208465320849524337214271333670496118932200181871996835176766635061141494896086466828378646070238518844570033343370951629292778908964624361957841834981841077573880567167583272145774831801789247762577791208549154691105074118193666613616642278149000782660553780607048790601004434793358358912907657111297708365609911372479948482404080415363061255806313541546879325891131257695072608551624593843229614291702839903691639478564203642082858141700200871329058513449025193655156461006781666235616761703784351782748542222008454163028135342565021845939519057339139932645309895016714374991384702077958975294624411695245807965591970421329198105137912171731950625223578309554373679234287617944431084534673413534561242334571778781799221082446939885518899242846037340394632475873288003663545316467091331537250630806123459734788113648912052410176840295817928160456796104308726926985526434169886280670307757264918099417413936128894866612938534422130491097745368241758785111938598446442762116607942480014397717742385710401050647974585729636968040920010555352543498914926171201517174180597206221997969452885677524187541296317271052925173941228987684524811004673935358459441107427063884997173914888404833784972810485905828074064379081226706714811674101722920538952138736910879186957814854982761332926188717134894268571106645563227984603276181342842541028764530033398914894776602973041564168730970434352582651846525589246265454871407980963127318745807439745912950484730326114398645016846084988016439485423908913978984206326137452103887716169149735386599338370196691350861680162295255933603687588499649943320936443600838361857222950933425295643161249273909155482649812354091085019306370010624649635226532920122893875212510117658583122706615455377510723672254343062268739834178964283046166583389663324492531336227640800673597988087801880549153789343397260159497023204900477617088328977076169975716756825055469966033205886493790612006246273094290216209023767130377694744098158747555470357653509514116825676199516809780617234968394919838611355391636551818151284684046139468661467155904105070272329225890833100063549447438982388575604023741231340830505636771131289645233727594208518627973214990486630127687420610976027821983858903837389499122109328222881734406583925592859097136823859400973324229832722560532110940417885117510179725176989041403900803217848855729726542954154573100855679007177294488915201879736134627281603442074371152467125584565079802758317394957586923227107318606870219821531696283246479075998054439983186944949117494864071562466684245955677566546489077075592902689248950133800445672063481136068877144540798554337500070821433450669517875900353151954130747840801124573502549757120259506241090301983658998002564343665213693326153049429453733115787659462450974424206796255011702857995757362590886499617456429813040874323584973142553882269977166543384821809788205131667202258520439495532692090956817687579953426828962811415531897895350744591936805261598987548034531990882920427553197481974927535475275523091593577274340215287587419108227371468831984622220316882785584994735253356431420252066489918720928403186979585691431547380843427912610690546067649952508685061537265429595946698900287303067051862127380329579081407697325232913054814463630302348896934288009278343880894099387557532378523522043564069528817736649892939889179408948793998589099511419895378004446323898513523490574114966256672215612702751652426903914634849982928657217355421997299250914479169102585992116586877173971519927744355578646095238090173818519116574840165564667319380728402593274948369151676979013779717305635513134231959296896551225966928951355772720935378500176906589817092731722766794638618049331381551353126094414563536472333021084982362721263678103500778337485445795442325032313557984811870140034730956265929075769522790786629473168119441792976130069100874723850834092596472475773230432784463525901179251756980243761651511133719643010843797813324663605267928552893975008786739993296538698479207314984205835255037207814749165345873206126156862082121828423165182853196300374918671435531967525772044944382557188667142918698026662144829040490441552196171986667215954424868126739448397026980495115390697690832507626377993167318883471837171569800275886942731272138554114912047970870165933838321273636659519425740214918385441021692203985575006335946519351244668501432883533410586338448629146461474253134348799155147056099254684813887955400103860683133977696595742905676722966592884733963563250199440872905100939485878629069581866234018146120695875680438326949726283349127120837924661082678905446377160236191957995839003976267136232877289977090626876504334169981435574101896565389863883893137186089046246019394518863419234860957342504720356174620851963190491660430189307502544488946557726913186084506143797774549846274791067292496659519353539774421208684931364536251724973107550786984765318509774470442125260107136296269099515610991490657946878754778124729408987143553963939431395758790391463407425151728425085167155977976147555768500388172918550391481974746815834867070726059871531787294265994490841913429217043790533066787612208876556202357619405432428596387453020905684954334564856943958038560884609764274453991446989772282558416442241957355684186055644384726931345766025566861080200590424115411508036930632536382721958366430771772372229498056726401729222203622498223811734011442013244839398661666651586753756962946942354317771088466116001100998929120692351591545483905028779442714608809584750570637993464462963529190793553211795099482731776614251548605873195124955728424421171977437326161785239671033318248320518286313475025875007296791494240885365006397262651650458692703703028086155414980467372895565234812600669742127870822037214242117551854599402729060529613764222129659459708090470568926120280824875428565185844996680394316374911159544718487977512409326824322155144675532902922220396587120862570940662594952769706077094510288589387013848752814408204269344723653271244002516324708929855397325471669710073806877221885493736291835280476524476946763410173087313543161023947170216068252704814037261990400767280799572202860047606229125773169484731146681732957755935646135863119628855982608561300739679310803176509293401133077364036101817185601919415613943203469441776386080014773869219804513675562976472284828077266097466460764392938212840107510386880393874701420657559716863826293703451905464384415146292566665643524127299400467744338070147778959267776358121017068412524645089889324777239467349517235818591161380696974663712308589048625498087484885903103491683236717618485823103948765864209344558422509378141681559032316192428446804653477039857194511418376351792890146282141019121554903712762056347087197661801607919989841212222204338247464668419528788665879210072049938720621045310255912194551289268212854124130963566525030761639067192818505367238973722440379372559455389978389183880325019156855054594463551214467768275081897890614820281410661057661465968092291687329395692912041207251145259371921339759637477981113338530712521759323109068887969777095020610544896275305883369961004140384309694619670653249376159092870856013879811251609712068485867952419789883812515207251046528520637157803818248061997831435348120844390337131510251467917158048870157771765003858563002125270555535533312401775233042870185585792403007369677511002917724884998123945071990312871837048209512901313794783876253694459726821826589676077196216180182162620800340928538522853937872243594643964760950278840693488159415506196940334637530941510735497830315944495808801098064521310717211987180670998042571468500938941553349746620172400050852699186912914649830299920841726853929368972462066541761167323252956125153569136227498313769318788843014264116601286502056952852670269486396027860929224491033057801789961089303016548759837573246835037193163176017535758129652074276510993420280224020956332043768107877564103861941853072088127746260691375278802043706378329924270934731005384582296015961009405560811025785606450636194840807950736996518000933810079825586517946035872549177220386477315833979344803527813442118772017030052601786435456010984515064258370265654620820143027841413364647872461866911595452640017940798931718028366160529686013143826247696724703476811178069443550251381431313542804243503013918047911049167946645697185257040171525497240605662136698122740389002914917281718554141741613733929463552424235493581267832448857233074938940272161122293012147280043499159181407534202055283839382965558943912497326295213211930866250532534427999269224550083567321937399155569879882567107211461124198747415933858855351562639696884058290659840171523660564431391664511434915563411632678817921327892152154969755338988989905612252016612959986440571506864057929478011594313062606483457954198940318772593117638612600699050287188741881938971967789212001693482678782930872999070034579458142589813025767166163347616361310504119037160005241628561120619149571310390724069334115360796269255580744769916519188358826929265551466703962542371645935608271180961203334700464363563451817725689387348333997324806515264707828528874362092553872789193651718356464713202984054293358360516946526428920136395695171466454429856755642415884373901981127129972003536698782134016921915871037264340693726147954178329979505071707334126652344333897894479487296352124560297170033894165182650499179260964603409286556821179471520027105993472338012041454979801891431606385867935582485932232242050698545238036210710421629622059592374384066167354130122709013879253563529091419824045615716467757646820875059645219053947389039397486388262879836153289125734444479287284963525052060781065586407022845110957154798052859244957299571759407092126510812723294832074163466403606536195680619279878404755303016147143402843523233966032492903172506093925840696266234759607461535258017745550989407622964812030626655346028300220199887473940684073300747495252466145271586364829373233513752145313074532914785026536566022749365363187767267826282113077897494840820659835988778543244080455968343865856239115680715951232917047826618841628199498123646350157289070699192051251248406631250359484366552125119927809462332354397003357066729204766006417242066873949195760594876635437182529208164632783224646585212302299542599749582479180207958835845288696141152913459603951400105562720232385397348821136004677633297306348825089630110496565997764460849302294471544411384047808140910165532755427812796064871663258757958165825475636249307264543363124200118744226772051687847560365570280120211823815745776106357738435852261541564188338950379251455699237531787733333488847495436739924831770711475851894613010427966264322117687756736871739957595110110813010306004315665007365255399808820342212117761108332882325483958142960302058753270672862114071607431060587115990961359259713974798971556173311298410516843019946421650967582694700145984606873716704962408250801117189428120840048599930433133410086545718119385635647757161581557654029774016528670576251885612386079171990514598877543276485540793695254348500194317591279596849986980840775298462037499524693522002586110313089763283336950396154148362755342701743580179998372849732740875090674094873883224912228433952754840518858358942070976589631309077529276771892281299348706948864822135689760214735856021818600115341714572493797494505207724802259467007598187659835313332364498792702168419715385385806923352719238336843412326194035997910591293087053165805506853782787621060492853464873307756285889656670208185978476262482208402709987828830358011037277806594323041750050104723323957588429407266756477205642027550355005114572977139251057502920210225030443359278736243750736481261439949362715117352453294343584806952089811057501513917337201866929163230174415650990221614667750588087680219369203971601934070736783984859031081039439453332790463782375876826784531049124722566490763002380025346840434700449134450756818791085642198560023977650727873983489078652933416537346126424928807833850784833863967288059534060218934740117422919936830383349049837880959548387749353315896981930281249042196744691871684111908133727274343378251006085227250255215531514071882617195658832879480881326721535391287068871376908432733496632756986206740514419662307220537120503157859768901279833970780551363916042832815656863355660509211378789868012529578471877524051038253846579198270467997689553736651076043887929867027713988401831824436346247371771235591643058609929340534523938251588643368358669767311032136239573268472094030426449971447860751349590609424291148363071200116829114631258048064599881288393493764934309850432792601462866549860919644277638406519639520709279850138903431617158969116489225510627736394341996418784546367161499648570868586753460709466964944435621195821909715962324007516134328654199114662883213113601368457115610332575102528851629978764657756318971313101638161780580580015230690623438541783068690509045696895302180575860098369002743446311567275238123620529623426170833694530733292126078621556502052959757897455640393258078233174521303247345487956256294460296205510399410716707239104022231794460289701468350208371675185018969993156903190069326317531182671232067004821857270217839344492435276149971436535151714633075011168011057224665317491523372790517429664913506003269695924722599394938108168472591116688429227803667759805159539050122795904049929561849021938157079730643309669222410764677005255958338553225691620757926099588704112376573351079313036139802152753906008392480904308298101919578425189498293653251681004841228720355454830480587763076623737374052032454391972398188223660324993434759638280063929514939709399584099430394154477077811372172231458120986943813690736981664789110952094397064364690433970537902519350541878200967178693501645148707558554045860312513043498394431494088861005318809007171140892920230076397789330756728881982612212903822155496689887953999729715301976655240835696136931812010082325166196074238380075831366133081052736726644189918956091400557041311164640133703527127409154950907826093287114305037571718411946257324617734278087048221659143125689243670270316962352394753426570626963636391107006382742532316085471197553824436850877109381985685039995492317333272795140693423875381868758505374593828806103931711315066254685358023431536010709548720353865418736187911281044163596102323136193868156236583363175998003691120225738171137032183118016757864279443838497297490632743047831509448988708658729090018820445609734437940391227450275723003484508193150637017295809317974020849261761156459508357951088483932117149283180631635010349078955194550957885372047955685234993197084537606306288673054221255269526322260962175495167733499155504823779008093053039598375542352522212546628204537663917109751880741858405313596585344012293443653354457337551259690292733005494515050360497687523915440015620193775636664560099128679620549786470685199675722635217975497032216416332358591710248782845952323171195386198128316192692650469730023448749094017743184242727870371767485457501659172718764190285454685031080552947676609495606149272461181436219715109800943816112803440298105659786261713830008793892533820236412174280493196190062561808231233218476373092338479145469311994908393047356710433137822072155004859096037760256484964767028916561051737920031539946958396713693332240883890184527257187734273859024636800633933343416683208961673139690716974278141064778282655694366131851076961595033426252977760544819597570949873636575484298817959538439265892090961860252015655379913802416326313127595837644757785445434523211424059873210395633463513992075845816537306904812139167531496399740743733606905972058673768081341854346301173216759855676983845028867668972625276512356509439611010092131960089212766577306578041955063472834676054811686835635074431222417410043699319760723138500897503331250686709214275027723890111146535144460738664219240269600285023489630201186259591091343211120493949726694669044051132704644023118276979479980300659323935812105654996925976018244251414970890944066642765447912703967154639346228655312569526278052842401144908882275936311142551296516906645386135402130786172316645639520720342915757030949409947144576614991104751298125134045560457473000096009605669815841021308639563468585225748227601961011143096884143771819453358017370677889646718152601105661738821390803438677204223999419858660339874010133384081225424004089078479410613167404074246791276329241090630916265979109358045187385207964601925276755939095913887710704905418810870992611943719937525429791565818904334097033421151731669256952381845240697627469394824327899637579934721118693511837824558495755491613886189025325296985595866145494415044045708182059733129780518520166058762941813014413663526886999924090560239499012877250727373799929723440899511759843055401710424492505218557357013284011200298880862109516779034512449640575471764134993956952291821055204468484754713060338318084340280783499673349296838062607682191585623079984390941514402163581773601150365045959381434809740001949182135249691986051623268191240432653179225232928512368299927426782762135124105783360550598216332222371506967450813552911990919886363090118212226745648884204673078449899474062786365824383728641588663905061721667096326720661044209369340015720257459277864036807980683804763973998626472625209117171959867648102399866072255162414360913730775638855264266659979765187940704168131529404735303103252401673389612154469139373600858455031790064515302408351805260715026388600816673012098438284736689827780400560342327965910911228044027262097940145152194170524151485330451405488586623800801320531805901129250582064109354385540959128649359047982606990958113522407140450453877262105071885420856751169265343026288105029971247529273868294850704820952378643703758744522916906416485523043718605848738814774795730247759187903309539407072407212606813980208832070639207661078738389267014121624794633554843391157504164929528541695919577342576936560490900246223003297778353948037079210550118232766279066264512207516840940082268835665213798483632203317286714015566690369456122365219827243090590771126588526218800528786643313085173187927684119163816332645123129839389276613657953319313800791084174031557023081478866607652997986499892234552452620792853692000815657894155477940224568603411685858704683916876217034969816443821829711654411740147271957014338171624942759776808958641108005563254147745720797072258872843811968046024042784604954158438842286502131639434692881906158728351783877005566472939666095131178261363718627991430229133961620873402250586335768166578285337313742635766635827350211365578996611992869322530845366196949770195399574151067347479750310914942177795079279039400357628235297245879025014530624194684333250778275957709210420737669960271297819503063668487183987214787473657465153731641984217317788140187595817432906704765675003459987865287293935990407267758871775972513546078673643189018568865854623164495581988817229438036272622621151873358206305193615016907004231829801191298836893767798919967790932271741892544524722212699804700257386787416219128038602517341920459922657967340750866962798101079922880868154151954018000977729271689040711103366626712855379453280031680460649861693165455475750046838080913261771572684344791555576411936055765528964407909371516473968458023285259487532015209711700912607279438357612282149719035461204434135490929789392978494103105364980719345909081043325285041983790998813129228485398401347771701304574498403872767538143615848453577269769030730698505707993764387583529812498941546079885801503690339197004019971732124875523509538254399413631009133580030141027176245643290418646906410698177662787036697650098516983522563554273628696499831681319732179186323935237959284801480446006105019143700738077995941461312342273349864462351706843635345565602390891167269070483949111097185700880297570728846825860303665094406775005456104934873119530161540976050685193779909450637537634879308071265937412592932742679314051964279121224657442957651637834771127750435570327435767470718360436569466201253571459862425454761857051363489287623541913902337955937052436354898286202820234245919184608712109539582843075161448101007391487465039681010487638794818638769633203610476347928073271729289453130466475779308820793182054297232714192446506615996966196220048365695777109140503348804078593868266216800881412107483905279838660185312975600062789381096927146764857101406868998800566158039397356953531526861192347949586904053713212897448417722035847115640539394439278243789819990972550901024071284286465026477330366201066181699692032448982202942306353734696549550218068152087642762151577005914031161429062260963540624375194925722002990908406094171258533581532491475337559942466020172616579429967122879267763100473748557709650220459908816144516640690927118243718086231913040156988864660008025579888946362501084002782338982822449245236916305472882317400570458480007459103259948797065907501473313576913254501566723313188213902110794805765964806248697577682607115761449108113677518681827144417038413573461620303673503459914785427395522408894576847739858004026449320848691235138585158361125870171808152672969614769059889948211439317587115359062245011626365390061082617704007101302430551143033238656868032195399881921482408451936907019482860510987757477040908752441551954809202555823327570200029999366563343462423764700388409250663645290078583692367826436834273878591483972124260256692716100453076799016031139390293980248176044801847227845692229681475614604982768178978719551106914821168959665094243835686810507914881199657247077049355452393396094251475405908750980529793281127949995343577527621180028201860689061170782501266863790770016104486699475424001297081751870352119489764341807559622700378244846608832121330242577709263736451352558165414665994165958619879828346418504588708291112133155455616847010655303291307197860238743033947450634297634827331317850432928120320276874385278316973418235573894516912134725617856532197722787485038574682451364981037941572981630434732099582864094759317690270034036393407243369408006471904602196124855267561459382610772120658298940288606077395690080718019160598244935067668299333462703206044454909476246337191506941373233095557905715703986847649621412500331897356329576952459719514645726831036641885684511175479297413339399511806501102879771102948421526048871865748141814531232168034221673346018166124312469609982606109083235180630498320234532002357821998350306694281981124300542898336950300698155238883270771123877506923572737620766576093331268565995508019794059665021814212451302468179416612289017985186775328629378338587488745278416414634921703204542169631158714092179822766154321434939610675120152768976446046103552927339087890288443886624112834671779401315522724314835120712695601031689893963893847769102800602115630143586519366714527550227368740070035944581946426000430346642620516947035923769940980869570544134974470801599576047184851723733959594167594205446063546865779573875024741666357401441374101715429019531968525612758923656838344087115666422684903553530063413968077295364492345602815110051496748533466156583834576918508031482447317401275904627048711003255645273973059307876180230672325477413274347366223597665609865636522871537749287008195716484562684896396834084164017311519942537783459154370939132771674892460553257639021776104237717480637173036838589032246778084437035852096565621566634469348635754623663563569033558759802350002959152040579484676461294717398904936959641712294897233366028929474658630405938771487726299459040850127161028033098467120456255798318940082703184004803429255264648249509320356379530569703758639994003299376519839331378906033831876128929805069556018978036408864907713822162698952267105659900230035147765347890460131102362438028916303043384645401131177163893398578027025161984608135169597463807774591981589154099800506288517289705804534000165910068062686548435336939196974157186359626133583006071298851033586154156807496474652655776589663455074056042377694206950612090723608817116054117923460018323457314242834941786255084707170883713821678525084573384911714718101308668110386143936025463204036397308256933427780418183324458901391140672182774584298602457112770406176631951294165516340074458700272005872440093800909344603372294946332873503760111689215576925103531447427608250229603821720686797283302730425352403956481504366125737818118722160720750919197527204900063091136035674913117385927722554063621105645238115375422205233138053599857375967325911414313954674877440342378753523861742664046284171628699081246008554040598278582191861549897076712117522058562664546358421426516086951996396033278853653469232152329413761271463276914830423947095231282802182545202455988192365726277469445882817752677596205565315385084241688623583707528646318246117206742606150824290771579909886006770287260981982854470393281097433597286925291491554906453427248264942333429804515551241361915584367359467317988900190378965105230316386067151736439889297090227127291354425946819879106323561084233106058076403140087007243545595315292547972002859569754053573231343030949454724224077919211685783295595216439190768189183558154031111611037956282011370796937130447051730182869900686864388412956507585574509417830629644114008567167235444198729570943348097976176708240071159009201614966175295819278146754806345396179172755699313726160692401526589062559646573522308239268510059873690851445399087358919096974315401695463637469117104740738842467442670715423329347628588351095106530999162862851428295661476822911942343973367772192411667965223133124986576990478949665640817247351169943915101379448653379983078639229257626539619712587173030466128552620209593837361345887951212537754137066586805774166188065913584703035987017660209244307130077843178741366784440459966274427056126836380813360997653059871886745350739016922725393175736022833252630733650433818129949275362139931894231730762324153632390469946809734351438800439388229269557621368389924460273087683879611179946403922742899161934388434271408020769763624784510638651088262248821134366933482199504279701183961013974580623979224350291550433826662321112783692389174835314466541541333837957246947420521010090155959510482384791131992049027560674406312604407221649156667945315219184141965746592460654614800586830892361480162433143162875684755565445576480433702009569258982847423383309407494962269912131442416686038198006497246818513788016638034375080584264334838614065093336570685306210755540287718983595879632119215405901558849167668542391286474121397659357852878927522055023665921796983820040643132010250524442891250954118793960367366800637522275938474214445172377505293033909520699591340769036678497619006719841564129563155143150701579338069109110278653378231398208925401435439223451331314553095606406994437625096314931817238497967292814997646380583223084586170338364329303439701320990365524484865794243360427803715707260439191144668287242274312183821270663299924763643504903698399193457193882714637175690426536957371702754765168654561090606028382888647261744144736808981159946112201785921554035965047552652671985897103554293015072586624570600529898963265258815773229230471093563580799781196774093389847129808359501802123676261327007095034924372346355439924959458743265204910847577214354400149013945121605846171937716266348711715508413085922070005678150766300499236823726664677622625596146251186129598717962805851149222342097118964776920729620069178043295952106067093540819800834395068458551681504006371070647868321361319158462485727438560354132030100660708211568010442980849195581046001378790249625115787541438759517258674503950802614524920593511762232798545405139258868908899631069190183850083975836876385166499931659343907530159457562227758273381019337726113755670262764057250450466813134641222206000108767493932848572998052803586672629851505861265963859005313842405091261172152005741352316028896903006982977861900329532469370407530974537744033409584979671587245294857845553836926904158903643807278579472267107013309641924725041150315638164054472642585620005458096439760734565507891553229362688785351986414638109512441244735715631877962326428337890060544583877165570934945528976651069730971969322851654192473410124472279617389171105245425072824447411365073601132336052195361884930553448774055929175856087945139301947368147899038972656497944276359278532674268495221525795921854276206312330546901399007100166482029067075675725183428279886851001842340058040654208702264845311941997693513327261413954134266275739664110267396108203847223350966646488913522252099112970411629985532865969238765525176029198574341658962800922090879726658828460454015962411256338607715177425542399630322059312581042329846892949056535558335499898658502463711822023207223068610343576763806482188035381099596397106361128736988091478055385634225143715221856162373609204648230240443587551036307323442372653461693873978654492243316599903762296518183478107162943528981667542804283629843236352503285074693306736711507189444059592992422312123876863563449173364910918945305191450965470758198412064176783806183508083714919575657683682369312200289248970247516408487758506037718388402569500109270538780846249940956918381477736520977722343397027883792605168074326655857383944653449147769963842436884534370311679012972024177249508273794881747510382195998851433645962075060273463498973191677175515031846920834514738615987048234128264336395877641676873044727688544453789113583906541458223907654654625290128951192364304979466630602646983651767605390504773287998383370046665310243773504088713182151270560067473248563592677588173669806975047673947233661937109933412009874906991368337189414170618976441816691052604214259116853101550687093668172502482975777484820046728777906020220349140760724146969186199907129562314898440559021961348844881670507848171652429818486733134731661370147401571111086223399277973723571738900926903544413105066082610757420408143260640472914940727408437137341251017301334312696020558865725868645812002214375722181408697758803242058283985675335663578297815367263558448786397281638907834217274590581756538045880128827370366809715054406624185749989589434994875218002579599047293057076552604730831578058318293985618088792484862243492880391303865564562354721852352301896754311128340010716885043092533787026489032014392452635329384666713046359137352783571446045290667129483107511551598376632424386675191471866031151517134268307448690472913420858751490964473636191064216767220797704594129559056065599850534894378464886330054793232462599291302243745525213827459915601905994769452807799092784817120537453037946110568470240755953369537495629925946190104542273959063646198756491025234018643878608337461845452609321915469183447518057560906540543642591792217214567061599239975273370127400367198425521127692289901485319367063977237167547702343764421347351223896889722889531401830685835014442985262558293565088203110136102205210798593280958752995794151802999293079271510336414292360483337929282003430077399201054731701910434864344463437295284172468447377418548786326563191807919872169431103817685763333120946359448464299711658347288376866165224701539650666291684374091587539500246794767134509496809349754821509743055461947420278049381027906071174853467206706452551729625379499256792793883717601437562445104380400828638318796065904270783600120364779795191083137111927210740212821768716565207281057513229167107470370629493405920469793971842521047319180344009041633394981662901265735681883487364037149374135174485464217813768094612833776765279425994536494099140145438775647544671151272604233283768740690525173609393727580634108733035002875107254408153002402460070175863322701102994694965629997440817183744344920276294320158547995641595499882205268443739525870869171079311610040011521619416844904511361101461549156826309698061659458086134318151099698561576241788822986904468889882401743154869281760615267181313351613721790299621475841069117015539072471753242570655744602598616034537691323574744007449714778864697514621383794650896047156850646079216883788560849865310431128132959095120499711143792090134757542347769014265879101568746989028105781214127287222148763700970688580772332282437664767228220061425976754376625170595520457474103602217261271251516923912822382592185680891144025778807798704228700509724933677192722213717947851226475168064910137057174372475798242192213397787983420723884156808533890448386082128129687265550621646340755810229870330083890270434592984142193917181301628131295475132642514642037132461111189375344945643323871665757258197255747018833260921922546960699842301096456207495997608943310619170065818599978736629367820602919312383877436876467985637952595271828680162544230644804127004105251514534648024446117607074879621313591617136865095202107965428830713900145847749898808954173106697158746656250814934779875932470784750545766302985335094321891727019596737358969442270368969694263008451726555664125715380000747873876835064087984924731344776171475382032865469383194280108367081383033725239784781365910341115110500873834947996396075193444652485731305083457668029587834025158857869945602579238011168292622236085116074456938019421293163093227206291553128331840557161943504001698093584153035963993780650712938339754264970897970198953693022527278409911754362863004527063779832301211604050735310166053019703742046497139833829551491160073949720419100932858687181529473941402965881635561433460301718210442788418168387646768854228864309074531967259896223534809377704883872820398356237845987103197564453426250954278554495901843263572558069602758243441500227106982502073210675947223468326866484881521929973184104306744578318930461087331476838429065292011572525044638356388026748653150639246512696371036234702727921429240968848072105138319983434876394867451665036562265032725896274159577344596590751834934448930997376527224712239246316763839106735772813154581474101659489739228329502347685601674815845480077244418411256537316398428905283276373352792889680881975540994419257808241542705696475403963828012044206066805366058155466393343492031074912557612237373927721019501906893942695538884343797162774933629702495554784554066175957995949427483333546672800222896962392495426201012527832486970806486722904450734381176816079051474565206767885563708179379100741393694925591355318522385736333871051486080700050700629948135347086111471125041775445359301852390060611531747652850382011746346032366806190562386199121248836704865048031312661903550128615164448217230261655488282786660447094899576549912425030566922096545740875091567595558461979768723170857786863325525451817804913451725764902193445414838253162003812883181624758243147856894820080469118534789489987211167468399770901092239894777307291589240388034801671698263391516229246865065603508787741535493489194726956761271186511393477191996989989762569715350053991640865422506338022346454609919342886030631146837335334151086679782443742636479864124528562940412997113723416278447745326924199947790003116267022885931314275376970844010154117843915432528988736211069218639940101796286341457968330890854949894467671553149733415360977758745359397548719238630680956037977763422541849525002389687075532143883298974819106796943187563087331313890484117595972859611305930269741164002381533714633595576247348622442686325621343644157083648570282880702067608694621471569737190865803300233803193356365868298861496759773227057528600154445396717708282765830257376818563421354388623377654040575197327544294116275092826577478191961751398186857864840202814849394447444854911822051666468057541989107646292523998420821523595747450183787012756589406653992298620741198728573366493757184921666781368150343065580185510735875766290750694361994642920397182996574179065027236133437132318955252038874273569394861999771170944009356334901989744681660281368073588655280440255296933817951270862906446047775806467089098150185386279482353580411293578433378849046713757569101427638468945602664914870030634656471006042176690193770006891548907188981063839813934966170307940084827996116432438682225790382751642242652001399594168263594881848774773897629570127226497728957991868285958250069356720151020023446391531187365548483235518316828674791824565330332459032874402358344057266634058257428070608720648596377282357263467698125771744152349136627093867372280032038655896392253849302794172425170401857059337656027848495625008963631695729075084531284876606624831947153691447889480814165195130782053382391053820722683467980471778016688795423017684522850273167734225755680684709772241509504947158098482211065466416959870880496421295812488490718832530232555577805813800168137627891030152172738661714411874672995497406881638336554673584299072929084444632812235873651265548061934660770624183052111000802356750147538677068841293063382403887244611449137605980117557333866596123608493253771028118144349217284897758934080041750740465864971590927301368403612205373572932893561969158587535299830960103322037771776917314858367768433431431384910539622034787961031188217621099195346390715280271093843743165296494127623874146117545322494533271406966477795843217544123437398658497523544674132902578500913808866159646252529549963333183205335923095782875205076613596786801939751758569707389998157127658952481092199907014843762068514049815359394638247108653178632061423387262038196282739431211057319224019283500652540353600804900374241847676952168294169465061270506166589286602714514166592132903248493717933174790558633751894437696751023808180030617164992369826855433156489360665554263161542663500376619893221409791551985307309066691370535764402575906952390458897274376252915569492567810655711353746085598375608936853252024140210119514513756026211906248616323092282876817062531511472776145637149991309033487610910408156911703435379522413703999540941903312051468982171532111459223119008688318193081574476429648370342979498459291002054726843058674042781726352354442611287388632631172006761040139363903197589987289505309755505549735882512371059485031709204773229793156515095609490449332358766576803892524144749090412939770110564138816872064667742889177310995499258682551983367403370839666900854726312357677731930466684887270864244683091618759423630651676806775699740426557734288498444378018763809402321621727741781368091888455619269942934901991481488385188119775691561650450748821772617925743071472137699930856149610017575487088504507023520059295294895370025390396785190663201795675357076719688392683388107800182140652677692609348006363790648878660564122243437691024809149607922830152681746479353309933825588876314948629937786805722410789251570379442141347077600386354739145222711812270503887214073890894066555657401519913871685492548838223687010312647616823029458951514783242921127337921657890701162343560138905487726660608350328589337227950934818133674336153385910594070674612727942560726506637467551460038950058770478061270490714318237166407353077808285184272292815699244549267154859636105171291752842886714937131971983628726716399987670427930612243351507056727742910377831883592359811788884538913510209124325599056021033713150018522376499911417907874419104006978669654879897250350672379064628799094201801458135538855833866167819172099479481330652313976233307820801709775265552617809054721534809618749515872055441627733631519824965031982705921564231915028060205199032096251579127213541333579838383978731051721037410036080361980565776365716065801496314960825027755917367346606712504047570586359609621800492184087050188565339649410436194286687612503176102912795992237714841402919989720337041566397084425406622535970772091687049623900214404608936173269527805485222854321197446338558377339271723367364864526169685359106033129016025142043185874233446321539704566748477199199547481350850497707533739138251595697819975184031134240235726951452202305060326062667683972363450690894256312962673666883270172684620282544197044846510341555470023645924512251428647195312140686851088821008038339220486172262720955267100330442890509005640708513161991796390262251917405054643402808245937520273706163234777177730819387571243449797510687652498758096152567094910781194347394267015534301763506339063134618894090288857155256619410853669934429686347309198179727475063559728691511072297064434958686243188785943259936689603205781199108191679336966026092550253675002566111613006988675371885169301735451638841872708168708938748329314831503586017608908206139687796548731639752473311812890130766243470541823525942263413487831693909808530126690616618285746186215114487403728234000032480975359627773293163486566578744099000825052173761965136405678400978584263212609481871689932205215482426629712619863009203816879811892260572098985840763665692857127383582179670344325263541682022234994074555271979742103563136081982305920478504800635989641384907768120244574266341158329945229314505282191931827331227535796147509038854359439948543822862882881532195671369117931436380431636534429925750963738999724204146972252149011645173006766331432348873003449409184411599726841550952851485601400776611691177795772958862011986584020935561805214438105458326236714663414116171031623131720799427554113768432678633204348291966876369611379252062155791479697222968059506006975612603731187849519913790761308584556902229694150885897832905407561253890475587322697918093511306911740657200858138302595013043637924264472926439088546407204844521734531558353555074508273844239575901605811831021552784511000806323283186322252578166979396659670881650846697449373498699968972713921301340317854450938109494681632722580914200998749629102052550202037498415823502679111485173918710208368604298171342545481210530812803924547922916325917677006230050533173993014992567841805823393257289250313296638786669552359732018583819773970886917141817010833671600685756525002440969733223985080182995647757936889271252157531768610369646691809504524960302138817743436647598196922914280929981947365778195716248746593145975194809688682883701329003676701418547177094778119661191091407234096612764892819109586641372325819720366112071415645003702173065953355887857334960835089936375091830484007061176431686562421853506692784607126955097541816250064316956125140139379064075124944838504625885595793052877045737340731466739444505115408480353954645939189644024722738749879905649489836337813214469605000439701279728282593919373193043423740906229352702261916856183754197288723077147319544333583286856361579107603408051363798552374742625141569278995021325549707029420655148293909528687345796116711869026569207009960364406727070442982496383432021230465719686253801243938360180990362060629514029686194674461173360686249715231723240772762223527282288027017200057135458687261555026940664565498997238885352315589689466236081344832307765580340426842452641107804096973690956183087530569419258951245969275161463193590595474683470239758314956538774710464357227987414920337954119130697213431154448882534163618234449278231300132216762728395548717470733175512013728310430384195634322957905668164259169441987153225551881707836663790707044653538277114190242344599295347882170832604073839972709505758162825691275020912811209960763496197140729961715736550027827988810244502777752181205584326111394499507476923989628519535184577504799438823055502575513209322645965721993084836206329426989674206944330601276015255378868829139463011821719028680878829662753362056725240593088408294373787008287817882123976881092116520279192623182081157974176578455839338132381089674640319571636862465302646813478146498689863031466650805257335656935523145722316144585022041963790664478358364579067414826634158174989786522138050713743387569079325767245953565398981578611994048311232813748221908984906990100366724248297499345715287442290586672457944313124053955737894890036285358410477258532333527294741335904709379921990057644666170901887954551089436259188601582225249220723891121902631134287146118264492525428625578606843534940746027526061504436754682722147361011108546154400952522912822194509037142725876421608836822552640281790327690778498251721315960183027487563730413658722775249000259133007783638016196161228365721306744257482599620955713416646076057363848913990525202080825783692573532033208967133922763896200274879357395609337730136294436127365495694043553159930005745525493622683275835668721784434174124125101199306449370538964327590885961943773023024971871986254687253472095138771958450559330249613517224716541318245264057294251756382350292501212013239987818900249603479406551411127836767517363093556880191883638214810341182237024834743457740563398872371690351497845782034615110342550375442260522696146640947132779487192712283041841371702549017221764266285879581223635177177151256378046611728048171462144605261449404813138293106588809271302294834410384887923303032754419528956518214443393791142033998253949960074300737588267928117943353652209189293688033747967386214025898658194865678506660788612983769593262151422611616231395453862734611228666620773998469173944562358834019489151698384467785882119056006243674078036862330359435898177324794497075986128731674803713914956483846086079006239487295642025051521935030909122098801529398583236408768794898472671170749074374344101036137037098778636808169360424193928586117134981679959460400959182244996232503438427745194405775790744457163531894810524692084791344110196241914842219134423811642362734382359958565938046077194693385985323540918049531241809687532463603778818120643527473118241170433711517576194475448655723802137379571495927205521187813976459408379656086234175860340799098360181481926494010410422766266974274400129367015180845143826832229573440012675583928738586542716224832652460196370624178842177439222249881859548931838321708200400406270745572132377962805502735985726309348232585728630346414139046920485384139127778783324709009003249276042385761286631278441996702350886191257811301108599970702180697884082592258532983589823908417177157657015547188616987578138499590324106667298940380421882806720577082666667578375309540132143710198821009509860629953450657127699086088144176419334190098928355204217213084976407000945676197515062973466701123288600073528262009789718717754262455128412596008067571055633845636563871765456729866250099949022805334187313749208175579126090067230881408141117942052343703738855216576611860477278131269231438629638317499518912234470607690593117281184216842404530014287228264517672469510691752804918939292960360984783421403398245154137414667375291370346612547831400779467679158233204998825752460282661750857400611607265928390992706628523864858324656242642182525940599620892736910073578992466043871304335941694504839211005795477177391642036178390956471902737720919880094731792431068170886948708857114053831316389131303547747071776157682906659043384120417916002133860105880270051669391408057264186270952016529009596456525580461676360274978946577056616696364179862556191197385083865906420654759037005148756608226647156637470373580564332445622605798539082700838300820355396672085416763385859489358140297766333506089888026216515387518296419547342896652350910272366081673019090314344833619035958408034246418785009794376516068599583349103041245905534786794025042536765741146843256591749738819809812303411858951190144057854795667030056294204407154610675512379605168296990971871749666052296401319656266404812932037774757535949089679848146627809286135258465994782082836346652223703276936617846511436641918106030331875524316458435797700357770323356831264776227644314920581020487227905285361970113850064279973572384148612280824273040846787231095706374375462137549331664496600766808641178550843609964293888203468663031521854640422551062493584313633842910964522243658341270930953793167429352388519982105018497565467128087490821986495285592236164530277025264206210907430942128992875612771716778315758955905635278096010367406630265808658363229838875678229102071564551002281664537097012278972175276356370622468435400091671599639267042274111682059190830437240762770572526354429827267241433232737896093714357825527619706042930571046586172258165572052488907998398236581371181133285396287672948419002525895246531653696900022164320049899045845922082887453175487673382825155575807603008332316005632034518803290680057653714460097870554667370348876513223141968727860621861546565901477786289067622372334395063480493021829521513292288407001622034277472021470113541284350345513411286597761714652829052248238093184905195866048981862768723122882503674221248242582824839209565437163221503559951901249542561373790548452359636884006875063939936334706525391745407566989886367931995173110097218904021474382548703214330348203834117374130170272692363462862990591433831454904201881460095585334808189165039667273562443816681158537835149770435400171274968345328755543066902458564577960587668562156014636911978826412500366928218385741227827350702819644340422018436085758307832426063283699036307967601021053392378882298654739662779758902569041888764650535755337505077844410740194370599554957031650342000450869479890813291619018646404831824349503487206050458143227068025951954860483851835319528869596315814578169300582028375251491205641624292861410186006360656623296908182968690266047645870697040096034212264997077317300255930026616533407794930380426559567782731074576047203349018852755802175756968822131706363152310343925408627831153678482883343724884767481641065309018846123629136929319751639596828525129404323401235726317928017721395882224530359907920549601819427051877129372988895047674335892397375190558519237699158643646084274545789285600680997189766407314711915441692604778928927711454562607485322086331773404265597802881063443106785183031062871748353561581264925150039375564227190024110407698342140001591050240809748734495626665969227635263491879428628291920417389765702318273649805632873964567573317110317546614520072968642948815613237318631129941238537136457880516635942379827980390200251611190310972008855187568721532690497907597444785398502522992021642750562330711098755953155808951161378420235645109922485366682496690111684649492431370320230824915695813933858613923867853309951107328742488737574948999647497486188406195559434775464732960262613397677708456914213313850427955435230400171746011340060367934365114564718622623184877501543000180164829765331385120814562435345804490825829656905962636636834666238317864248001257159006191633167323497372675056057610601010001675617744083191367964839263236896575226717457430668361585325532390270824524056886857494918387208430297913119805758224860402375424857028848872143300794285842295745237860243407022267313853539535701119802279260683458070492255059581858579138120898182268116057975854469284927368880714647268448871847021431077197154316928312488974856417128289718800592836736449754666595508816304844322133311485210439970264109373651792432159406234153852754939587664778431990969934421738186178327816106975108586404414850627433163020152142169239170137969788747846028252115442260370291109723021038856017451181450474878309962080985188592640362143107205062704913060761977993774688791612037167043738895465586526939172660017108807786792177593378281061516417526665860278742578276513030068741421656335350377180655224520004280249410042409133924702412838447802023999890889855953579814209607772004596644362475480356156432669495909386004049592180958501804026813751224328592208119177828133954954514060415048250915181554472995460622119371003218178350175725454664417604265192403707122342263437559838229604165183784427167211876119663000358072044469870052063659083716268266795809867307016885000146571267447970932695264124467406039095649989913806510421868029971724039786659901525152040804153241858689188156096050757616995948481193851334403423654389270924361302936250310276679387752075621540610298279563925479718349787277126845887872985544782176150440698817115228687197466475176673989822683446131760005311827121341531984832651013082533861143671341486893723202365753528327881390389452633228950311499714106212700452786478873150825778891941587312798292767017676379617902611041066089509160358192397032311542564156976017791698530520157182317209391000155564488114164890801118470630689794420439660584049456986867616541860636965345931324956476389325115331030683238869660464847778215479398437854624029451233412871750260122253176197656643614212368373201620298820638551997130557221660041001839588384007697715471051302609625669425026369551173298082910345593430176753613015590674415429101664814201523729535442372576658297207358847130441613487540601096854216685367743143719908698618099635459321845751804604298539500996973869190290338276365336979349864878114424550757444597709560667387953806463853437060877987435954021415873786425571313179461066953294794496731044397300453118053031234910074479827477530568807102819163066419875644228350643902497680401954544171623171019939655288036218877796292398044519390653173231493189776715937824690000180838434434414212737598062892824475486899177411695566368516701662953741080113244717792240420356341626683194760062545020912965481072553322586132121272623033460855000809570563848861607677493828839707100512603998297822810396336196559874817594605212667498332550372228203130583229565102454075929666331072650914909135917644751888663338416285651198004837345569049658414819099028549622290666520249781834282116471460961213300869793176432854662225842628712961866636851191069288140022260877117949275203568077732306999916637788000416781329180838207080409285541352062466887499364524318929552740261431379372816603145180537334030395230217570743461392770925894605000211984763557063383225902555575483352202383373766423569388550164581602753878198378799890830925884914128661630304192001586989049646652216297138196071845763923778333880803106291361944697562922731741922627317470577508066231560461653789739643181798405524841312202985758072012612547310958018202138717668967358670878262960175021460605089747791869148104003433856984235395460769189395185567004042809858830390348081828518826617178734557933151047440940631923201058922320873434220960092859025907152539993906908304220950018002066465135094303219563397504295675876613588983495407448999263537133018778076483861425227817431032422696932398079331592193909531466108306799557779388449623030706920694393405897164933286212530975833342883882179353367441687197908398384978985386736987267527283723330409559240272422591028187860519339423438374938376692800087102484419245651765051057211079156384192936710271925666032774647080404339780235016546827401547514093525973454254713994355677417371276088270304715858833723366452592185111532746672892648768669509087657807085794528311489624937179296218329227957578101515909880919967717462407847760224817550264955421314629838806754719838414417853402327511139994438142275168206489752980452424443236779984540180635341250620313961289639440176288556943109363618699163290924533061720288663579534170314060918725419446253396492456588522387675173952133434392645548827743053237299295307640788639366403559771547456765510727040281631328703393158250812335764805153574929022402646444537505288981601982639253834099914235323774464343070968914457203786899921757695604083195031161384654262370450746521687442507022694531253358094771863375494830357672939709968367215707283356257365394312472212351195604939273834569544971965002610890460869550506901390308388665713046555286313422414015473725213182130103917040357046423988740098682633299372999225781926791036037900469410364989538886811962562646469154816653529940072284774768179094926236361651453483538615501306690007770659059483696790357357511069118589043661974132576033409862691590850307853373035660853480795120657388645717472432209781628266820006340310713218574759964206369643108775154208672767324481529083819277498606825799958029857107581985984949804286944282852301878415940510037758553901117613403280179448175501579403958454493930327334067083734579950723515373543007053118396216469958640286200740712875647742799910251664127307697726786630332513999259169904285971223769723295004414263159282162106265103435031430853312939560308466426589668953275789180053779105750303674644941474487290336016517433644932236509089364198396322114261855055546120256290741981634925131349123441154612768253791125745898730184507077640749381459667278923681871786957862524308984816198839744616737124741475225027203056028483824416562223231785140112252156187018134257701488905533756200016704152515964491797901492467297923291010986403170873127412646630372550983173964332795197898639898755579397007294315487048919941158184045227022847398446487202622988209561292084592775404310557105478815506824076167103975599540705796234252453051274030667203984562551654891681427656242039375083039864847046129651237484851857152674510853690952185132895695647476629304836746630739168487325330369229929475885086251541364154455452918206260232842767868567889740884121570946168777106327123140023335029815209257001502971432414557526474837360524720916766058401561019473298818028908990757973147140296277832870062673231201049506326830793692017575782811363750249655732433198202192108293320692975429752382045925920892717058525547137271169986911911838373926035350358741356276834163712953182980297885555364176493387045023620171030839728138698735881574035607185763329377167432782198844158471302428582227096403656260486123313982758287025861747291165410411851196488107694889681314747958794766699492482254715724334098316707212085707669417244067052895349277612972972206357169617933475114404146033953767992743144753434032278611318221719951684942158227996053713253592030125415040842553194999177091839699928093085919310428231650791554210434290365233003700488668739725615442390551997847223623677697094097407814903614514306931837496043347199661994399697413188629552869579301441669385937238694423459586789070781321839884346836425812946197406529941117547667811650387463368341938001435322202603731408913261882187090063566802945637011059574475057591789650308984199537068844581340302322645518280710051012539529445464342862107835930335478760251530280616788626074774654608718220735322636290297321966911828864942890717106874409417556077365124752707126057137310972064524934564119625956608246472459825580026425172526975204598405510501666943027921219062689500854251965649379969103783545286028339485645482506263498497195272777207546186783042539687563139704536854421337935913264349844870547999404929404394195812648023061528286692477705462215041730415383159243868192524266073812774781842605220112547499243715279225569468257235064032838411439246522063689324994641925384299293142963334969776094766824704597247598175262234035956467654546557996647821912821566970312217405289389376611225921939079426215163757072622508377709923491481708546994838994690114547231132343557171220289677759784339342511615931203278943348188848881939530401141248729518800016302158135226562997307093851055444539824436947470059446721252802890028533053759960994584199623129495650786119809165554132864407268254428950903445571270111443917309336844225560767080197834319119868715710490551207892976161758851971439140891200694054564176751896015021380112123673670325330923149359451114767379182605471244340925734429559623668733332143510005518670281657550704326279451331776368001249512564514128686960022180485564124837422799655203642992667483276093951058417101506190456019063604647378169154879395834431008558717616327757700862759141274718625525491374442926790991296489782646420907615677224934920328036534289788596355490130428990647013749645571655925980791134613527452648561321761091288713408060227846465974420424339060354315991769591200678567584475982041836593585517072043205183731587901260934043353364920954613001402702467649838468240368707333187865254962662581482061267110197272949144234819271681498876964736558234069869669624281618980741065047117269655442753676767996431145584846399399083293324911639711591108422535578685219921600851774847532588473911737425109526843578902786136059000903565154794162195063941152677665546679904746784203037199586704681593465479050852969625407196801866609650932264539114914925551097442812103234871612779261974136453815070467089752861341471445125406406394532216809827068462767323644691716495422138495503147803832318027980880920614296215922678752425101867223541455269144400063322158018592808365582282833228977215018067187614175969928983805369320126257765523998254181239044731163366772809426042928394347132252232669817761812898670782544706894773667178785792391663031954664573126301171896672790727370667480631384304210134644583246655069188470460520187168730399810169040468834752814802076418827977941337463953001931300173881988170109338388715122976561234686122292234583610520018969696650349318907759916949372645348133982417912069563419035903727969586085073258157903500451074240692894597759934622264117337961945195690209807133591415645808464100033222594325474879434567534166399733459389905159816076760896503795604816139403416836843472115413736017724853167653049899732234039925567736573727492728221948509510245266055339538112442096727174941625257224755138855318034817908707186239671374457598790732820332445643188637210296900228349823071367191432561745052691703723689597323975442084158113123415281125305409626521841789823758110559246895006757149270747593819600202404864100689820379331627001268558911453721926396305597664922516515694898616259355704614517755684912591078131464950414128233661249261822048996666633025169472334957645076133000459287448182848691702723493338262200597614574256113963773852278581600882723339270760951339771828224028093283321978361900280522294134793130905953083631972513662598409490207782886656099103724797150059134425795709626806326082273848926330010167930048071338149392730438601205931236209583500754192033697490936766502930364928067187679127460912200087310131682003063569057684788888087906665165211572421289895665781166064219683983587575976488594953497996843841645125764745429303385464591811565963811208406873549049213213649862960250264165074506768026803827887901718355263556500539888184300369340013955097378854601034073634942019631390650533572138588747476374828711976015433751039338554982232662008997629842364143481255034648170384380522473481997898142107256170060567731543457449646950309668778050819254001385155868337116033348251347904000144570464873561604611434228507104340909552042138629704981131385867094582435408758584027977262736192373188475843868262026747982796632153058124397580119541152485402700789716846749798986378696604047440701536224078850934837584381036901842454177089531100654124485960224468881932397429505293043013636785912380016187806114043939415152114731560571218678440719624393817311081198023616368338299315045717438665671539440690459436929566741581376318479465978852197284537950485338036036667884582132436916794920429463651707348901333910760384533896840575891554936856838767887293194306639960485250276809934066898074990020929824839678653441432146556817196247871064854551400238121182295520226387633323420764407110716005044037620712579796383118666169262673308752148506115745381385913187519917003962004762011622661416177272685479415559205847719980567897920314880815528468025008806259352210767722282333209613774778908858559027074430622386660188090494384203831819427009929521037679384582104435986033540795442267212394855356328445003846913155052213641874546899590785335328571948324890850361662294711507191201645419371705059118548770443908308800280204972978972812548892524259121811275752770761534714316323479965031257427030968554874986176049590684687450952820834622047965584339547618645014598471979642221559026657053785756893342700614416132798871577424362569192660090816804555109233049294698333535517189911461421090892081040685577345754113744630783927735389010376261264210540167704832088981681839228634524469786063938714131381903746819539955575324611919829282717826830317707449745423517968817733577516674793472053183220655774793052418477296134723713523656181216809309068133592455982948236900151513433632110336428197323219619459146953311966929868310908044120927881123955812871538978706957461203812167053278406569334863512838471409408217648518384387402647638038455252259277645490359283487438703223264865890804838361051628509226288467995211457893058986730782624631669550234671553381569893743311469773431777606097239604997505481594276419433656233819257124088165545035941295632713500748197332876866322135000612398435353530979945905674217953186214155675818200898079840544720431650994242973548496855850231733105529834384480472890970287532831242043439527365073480665956521609202840741378288580281147436937756572874243604741166723091636630866435097848185172669466685695260955536611545828421200255925132734152102434415810238052553976911731918718804904292586723821873871270757112613471248517406725112135812359511705980220190948189764188578559622869735775265302777779904584659105652831174538639014206439026671348196144313014749031224676212987542548829057945044110510259968814067102732021817461078553656055360400268998344787240890370250090683050165356596364829946622887347888937759648570629942878317528131200359815313187289536627926895034705194959735635446176238086203008517000013875573207663860427884647119824032328982816720585377193227469556197942468435582741370451259121539496348235940614121781931538938184544190514164572795070576110739144567123242478056567190679197369475546811406675995741807452903489217131065360166467369542089348124987615795811081413814489691015359209181294008479517217656013912032235474906510862841846518044065365740159643543420662838481079382450730122973178349895582390702382655280162128557560539885721565590951611495345469427989553033667213312605950582342218322636800617603281459952105795473024028677342696343679184832623075062512068098101869666569943994822267067993293972210142642217732549175198054545353719252983111446777962277530724593917506341429866925211816541030630287848581958845011012798180611648746381420460062289520973519726605752634769501235514267774175738052618321205793723059260848581751550783145503855332005276504396568905892675931428138443435691942894994871641351731744227286089603146898089810376641722188560241239973522469536520391871847260402083418153574335206674192666239040357253582823244686783261044467404781910523970057233699312733825923720046766704050314573004528118871900632852903946616570807268846144186883226728160756039392774318274294980266696985013662800111661224304402345824189004944828287968010888527278611927909531143142051838519963345807863522592435522269188420674189815971933000293216879960883703962712716073924241946936144012417202892085100105130323629054651948739538494961086477555384292859881524919916609508223815411724584816680056925701000821932772078611301033055433182030233164625752067417339568943703881156908310354910261095722307395173988328622804913412917647403471328118292064551144571528609720304305442333977374789438565496165137925704022303028958912264994963194125723925781937677355238700683762707594583107945869262212442549967412291983747734778173095584701102765111560022894958032453582371321149863226466492068144877356741944331186674992034077878680175642112686863197375739465697685417054687730978416890368803881114194765985437803536384381198587309148363156394163527307924954221660231935287034106257315006843204911784460589007413304870541755466811874640425004991954850954077568240328609382593016765398695272985748293637850322933651656508240396815487860302475475969525445230381102381227157129616083236266644917547249825374923601517526525132964843365455978754449511070864488297076811605176442477809094829198927019887896664430248575429995505869636187630006108870075310052521180543522169058046984281178510951590593143789607657276844887236333835467807768794409141198706449310885902600362352928329509775411518670734349044855601908576980213415548846794640522751316411232663956084044790346685483999474170182755617089140510705687281088360767114344243872962329566800938729453615482111328464335295504901586292470313708637674644420735300625579564918051714676341353280331152511901056503081024441986308980016137916167508612361198268106834431286301624824494473039202563699430605812839414857073052690384387766735264613040292721434617578992468534800504543818842164474550293360788142335884989416310939218023704048301529559842099423032580140750474840943842460104244094486933636431825836643849334278709332406484133068056969010267998013285363326972763827515644289100555683485808036553473205157620254398050612338847062053817517339421034925719044343849986002220213986654739048121887069755342623315316377739471401535217259173260129079979054763267777361637823363910363276465195573592456512839887539377146186941727948136024254529069839405050657566729464343459290245182371193801887025700414195544476046791962537346246048013933831684162820546740465157518231151489888285828426517187958289575264399850860409492596715481685197209409490956489863978905280883035252216364608437701434697324359155110164959989541237141239644039681898371355258249785093534715844477749288940877635985205392828513450425357888586133569936840159921618036614987068903036876373903904079518091254290137587904670586874088763949285604892839059269097991408237359890631528281994483461887085601871911840667295440826763182669543894483650728679860980510069915556513444801299580189168421344886859059207848500903001419686115522898911544441004974250601135358155847610316611565225966922711155263546082689187828463711489377806070533666602015391128912604656351310165799679931386741188560990145649385847877678289382091634045904000954043256325633789033877909778839375903173140974610695237916728326319185885519695160321000548785109278771092289024311584946862876911146953185968242886576554235613226432561022904255729888879105529806386597865499859922006492311841941763152890632124818010697715427214918544325785956032196204681208201287793179698023981665595838412032828931055339172313321358238458135355801030235909313478451627853968662296319762159048930340499979989158363511775375067815795914491756347604800875580337004727669151792471268803288618964118851373909036675548272022872333837101369133687552698723352795298376173477313161994464148424666494699123423211474820350849587549553107927043148756002840561812173227839847692310078817384923817978981951961775586304919396915580786083702153375096644483879386406391193263022512634661050741580613397225491772312141020548364650715857629794051737201392689863569994431270414058071470985486408889210069441698841097057277689120069407921583396029446525089544711497068420209105090507281958137842700962896306587394769686318733006279749160630813664993809212232030739747430048577242427151603769426993460059834445615127743346644572346456418413809177728569768325085183531949108914748002869274905584933238387718815333819770610294617615660911833302452329308132257653058161960295333585718040925287037394057124271792668327472420311459170233960151886467127350527720924010616844759529050034923903056964865672670645815662491286895778338124121053243263122959955592234335670780990739673744870898142419420808483779019509010879451483386995305171567526101036073134808984777623003215371615278032239688738266739642049479333934328363019566565996770484054507014663622001283030682319434452312884976700757813898209531252167805371298632719500012592250547839541411403072882952881970591300088311567014256676291830685096135309725056966628363803052819890476731671798637441364496698028288921231573933635444037819703658577252033656630170309299742784887497263542046521891597916440870747701939868094462762788007881081758973046399726821849442143495017385276741124224104969424547622127345119085451462683510394265299562425887908715549382349112740527130700837849971730824208693912887115624402373529698511734641545156590373012730602250889680923552799999805066170213258509364951855231556033367405044596671369250511822648040171951615427163354519193783392595972762818547753935736805353760002425569328345858308659061038049736123871658694092675363110046005660974933980706746818363575342886956562737153802507772302821017355737334087540464710782890100061644983258224029392042234430101075856797607614616943019662755935869330477634510434565137780282244180245249792643958212434011658644311613053230706422423131867729352759135771306966370650904697951244745404068110773666312654634721832241753906118076679584118757664878357386531203144948820865616815065421998518342946371622186315761098097688762602702970358770764602592186694729638400767885308812479641698235307226251956457019037501973241998205972626290081438679005876420309051257721693945889791313295967665645791071895089102808410527940630399898139155431831591420223353693642931671617164493536165361490081899891291896744060935362519195871524187206583309728403812340577892280484990764645003112048113231826682289861443732741775963741847989292188969403950788433340609365523863152331327738371474260334326305375512471859641066198441151987601863327920059377383750531782603323972433217584272582592979563112654526424174030159345191606906660272357614248317547036246524464986573516911601785963236915168109267012838567450645310208173385506784958907814772576066611729616499876504290174646299533014711397446902476589599384769639532793927099016868193179758578863384345944866817280459097303947227724677085451654919313928543823927832941443678913628324117537848838620794821195444353493432588965015825253700700062175358836559637116870983211219136867334807176081151481705853722440373476214194117046385522580327439747197867141637919582969839372959791730963321401130987368306360049952817364377930847970476421739345916447989850284335593980359820556782635832219584279020766347432397554213869563015978227538342057316485515873185821261718155154357657430871948882547217464291261165743365997070281765804217390052345110685232137412639590173753212763157907602621853753798156142437417579418791419611479996884982510061594809168384389290008657219475324311742414230005492703585589684101367851580380823373420989565665176279910827526101254141077348078754053995599102050154661324132085943701001423626270838166902877220971555890956127570607361637711201711591627735599843124631526115584043265949175787106234695774314027381284938075818118196738885319361623089797136101305741548541953128932589516575842604305934133306605239475950147226174647303774239061427115118843610387982842549307595640611153420187429134283618843181454140659595583322555492826464974465061827724027588481388920123754092203299757616738312704751424633659677081509182374752266772163900872002434623391457947763031889523190735536658485792157163162270038981124901910509392814597276078099454738211032477428027673467211671662534905692803021147639073196981423973068248167095854923811218404466832014253483076567172955371555946660106013013851887895589797057165532345124587251736821729761049657692418276141661571502801673680454758486114667034475128188298038816709037322706589592777594044498020218436411327774156580330933830659866392217577509083423980428896705114334088853263684826585749201740922830250895259754825596606217328643762352182844214064046305650468661884708218889271416137152804375070051893301231475248642277943923966181032603959831410637137629378276740994123486305126018923498646403598248641379034539608943602752473418895588883729885448488682445023660401395308164176315687998672741827861494184157839229091229864256993084977443197015217463622121029991109227899075333880344712623638881559950303011343221253235374192064991581690769837496812441859769961811271711608727813172927853886929263286346692426116058720783339235337024323431877284485511730722500073942020757204037903501444615896853957777451675996942076328516007705246966826875848265685598817181218465126056951876671846220420449549837454861493358024426641224186671345560731776134428506803478725073552089605059371402233129204325540695293850370569632120396591216285615125647075182994179351193263032871367945567412450962611405311188972974888724178010539909997019321786103070415860195048835618064235091549929133030495126398125990621560576019748644225495973351917821908586380476800948769755638279446557608427593311300604240970027286928740803522588450502524078182477905859816588067985505325350141777269598355057400725958853474019981760841379082484761592577985450579871051024210093998743609312551044509525406496928943908843129420607237114487694394681536184371486760101182324242111876047157871660028025018041639874159346154924208713737520450128387437008945984737088615529676907633579652066279065593841851142610522456957560715689893027720860359217396074146638856608675134205346338912389318845369142624947468245472170549601155808803915473290237181020921959677742349169433020427048042969529835093449077435969748319505826418102988090452767442206141895908830181577748294864089400198649896716156189369720620093234043479138087817480818031031905817689557755859812758344049975038263907145013240872030317127804033178826362735894743999172492635481173115017907121128506212714610210491916023809537379517422256209008184850797988775388818661434766969760874714327043803000794842754149142212506300693108192795045502355105310170257685689645342467487894008136351451616951734840596322945894920306019650629372598147948989186521880615068187338124134003667602341893935964181375629936269057540936026383461699850745341482592513762915009967455796097049550580378905835357139270802173486272417598759052400819220457472382428822431792947788538285037848084997139412522989783845287356535392835179188063869703181709515088292836842233500287241455124589529245177104988221592130953066533482577904077470554864024678517563981860968468256081049936961401799178817052271476976270685168460036264360837422303892937218897970349895957133292539133435635221821453980671367892848908237257952125726955603293950185624799982905168139592748947395880300965025780221850269963468223462101866236246229643615482608016303930602959953821832358319277104302008753108235546257530510251968094725347080950643374731127137500710484615241060091682381348701240887139094968233603369579569095549138097236653641310693351558580307022806190852560750150411126297877738173607805003017991051067738498386291553120199957808368428199613295593987981264590401750225521064526127436411244892813083719020866039958455746088499679699352891537351672377027542907310979107125268747311695457396950828475061230112696314028574575298072785849911980913391735284205225355613767111406673081335315469635537156577084141907450296015668547293689802751640766606303567741221375318152080805647499334565625785942051679221917620976831148446812345326471696116700685330802079615720765819290472222019768015790937126540685700566643165331712043068801718877774872841555764108577680320429979030149026344434615511550935173287595979318197386850532153638731738648739725902131150562489344982580855609880712052560108546554054217151407959023450170115878639886260314104446884608687372091978454082516886917143605429074191309625787085332127543519220171972348468168951909376471634513761530409890729872178896445616167006509844072974303574959123900714281761916029928036224953452340916421560957398311284018442047989023415983224132674527279568832859806507460025068345068642488322105046260774609052072957730884577865682274254556823730687454291494495593568547559827146544988430672144212282767759544927668919732188691030135025602829332921692870965178372135247757435654892006607437835177132717797341586731841517208704910194708666794769319046028951407621766087669136112394435494887627039068568551177712528030037355395240355258357458123104470130717549800490148636681272395104829441648138426714307343449201422264825590937643981123821286400403941601356317640085392124812100080698288979118070181515506566125126115918142731553653618289658980278313162972635738686708225080178707803044732539460404128939756982246764248690009579797509292816122340805521103441324118813900629137062371771671908340196003191945102035709387379533979000848489058454631024544815138287612470314745475170174677560557139354082714790333116165353347315271108148819936262584602708038534653894169124311171932776078900063604936179468879867648148287959272131544749674049631521932602951952189920397964766794388815929785036806523234364507103610991307527907115330150573879628040687353490615999558488197017569983471551407788498514125940271477939919101050988362247611977716747393834714381039005464503646640436241210165357220791167371072855811068169226333968540019270943033036643221553201681485133952090932670515672115257773236130625928300377081833163300412653773114611060300863159452032394398506212449301517157279369100469033183327852458521266892060028012837653903740135728033695582879083683788782851187765979225988242447800814021795166511832933406303788062392284972368763497687297196439101664320845931395588786119416866519497416533322263175476643224643122815004092155016456038219556555217651841968522045824863691970594216799874863782899099122724102065902309061797858553112278762290366127766997178472653309443280572923511274601768151101540424422795191616307965305975341535003013252052567701903630529289137560528311245208763605750992980909724440119912578452732813809748443091293815829905010815959154087589459421175799638042844890757009203329996219665612717232112537244096130482446103026633844985789468935764627716065627372873993849597671913152337937491658091372675438183728833579733602044885495478865029867317102395532437293273066015419426326111366282452630855757685413716859868804810160883846830136108642068737523205662053288112287043884415419350238474215416219908099630044350074677544962524163362854978823643726338401465330658188819689678913031910406791184668426632783068304564839812182316493360145484892913625679758463685256990120266307832472943851927904033970587503551533355436559255107414305435387608742431111987424252604425058541036505533938520291965488187325314688301987246081816692469350037640485710324892177061231272290622073415223398735062608392042899410986250403738377841445645663611467917796180998874834248846866690523501646640112155391201808555724538019973526173207479052611956036835462700942354742497975906728252477042835428336223663360325874571751376947787057606550316443886267085463555870916478155898716578255365807955106006582995761654499410050553698519467255366790760022767367730302848484736666156029519713253956460821999933479946603540371073918966324666549502849790121171917513020876781545730964414864196456893398291580207753077292333660364243614515963488259942016222997608133587610909284374152556326538262655027263825046422264689569752055812081030636781770491237561668492667768378271315790428486305442385598887329682384413067615069028116335230558226234624341062418895498255102904466472969554669236420955541042881819591296601762025991733411710921110046030191989149252776053455483368389038340376306397585628966269706545245134788825712479650963247756595109493173323186677155948020514165847287060443452573413773075375743207702063575431356672518185006014901940825378957865675223948962505245023778918739951244148959140711218472463904026902286136619398627856514371895699460854739697165643297904756556903792284265331968352694850568984707747106184139100362792678681715783159614023582500189647297560864666854177322805694822493473937555154046170273656550297262588660165413096480254414831248051436688580170071671244516330102839179219184918392733097603580519586426415362103902092775241226456356465643726551408885302808701143928071417934353445537226324261147756356427139952735151516128270787049055742978340754230233161387089617043969182643721856902642293175297440942415650831544816902546418645915212888791143925067671889764959673935046711446965072558076078519876347102280786712516759091836240167335736498300115860607428712361295583648725322242768636980253022441825891799968874304085801744446478398333274826660921127588720265347643988411273434556265704950344403229570300599452825104840442907338862620792175320972885423138822001963370754536700566196652743970216825384555421252192004644163695949106104870072282591329376220281127185888492828776765713048852824449942567410136271645585187544044622356240591429854073426848185856069926126905930458140481461268098364564277933722055823975659019296407573187866229604894028804717982652193352530223857883062648987670163900897124548520642100821598725664730331109541551309726986032191343093632700743975285901848876811749034045697171660405047227474449623471147273553815095051898551034525661239743476447604813369059724478622068672981549661466495888943222407645966222605602388678324597286708454989036086127366844028306466526592126612025439878271590028060316898017446693524290064094369102824227365499718995120277834864542601203465163467834371206952780736297350729401527971922040402832500302728571644259204983642776769021797988569722221201911311146614712741012401801929844453038397729315354883696607952289051123947298795649153207767988389173821518119274980425191867459438358506916124278727210032275186642686613960837897164324638287748143216657095195148535836034688054389535016591815226538308435986715113073259989266969826216977738066077667823585137230161927145539296445289662288880776412680321561841239316930993295047501304280147440649322259227306391438203504951685927900035815103194877255709814260660350221990122889464767797576138698479373788668769937127661386308869953843212749755943238918983784452678935392821201086569810194499021991395684128436528452145252298773422220124145191203130313952585186118915835710749116780104511721784120001837325491869953597235023227698257018019103508199870538661218104207646248169650214077520382746028053124985919873795899047754983188032982260221558953559697110557808807040948640703392071358043300056710601317844328762549813077308466948136193451479818880140234770198094418422708974855239745786636895370694034463458407680372031770586397353764807923764827841780121208991360573989597334381602507547661460060744730292245534408911245978409356377372143491214014392679448700251920131635794448065301772088227427748857766345584538388634597636726300508390710556111072586164114707784890489042525695883319857398694920424091188780201643421662159939928524655946628891979485916447375996528744877595618359550159079723851112558073054447026278795230198075464242041999381969757834445129617474432936914039531104920911173985869395723030747490017556010771634050519142762432029619905525723493623086381514109211813445853622305685853517404943682776888224059720985763224606683042515662626663642750318152920633794415975808736580151034157946838668657183753900193242991291749315040248452610334030928456123724025362042361920136721601021002897416263969658454997287175835236861008379564469506587278136900922676504276695874344600126047511838975233924168466131656371688493195763971526361035107971661592548752790656669271550931532096631916524955131634542035118491502796834631271409156126159384200746920731544961503174723113672482215159116920751676325972154273097105507187369755619708468977039555285523251509688378892648009145748152772531799791929048255073698816519050380805870576388274779971642514337750674442146522823812743805040377002900140388502245088219943610583450269335590075288615370271705756053399903839606933030314459510270408487914811719107736595053689905714037524215923039318898003346299491698151294486776926733815463355825153895823667195991887126264293578767732918140731370118043054877857659829989075150328152179626253095523825311706012635395081808434182042111659091800582153093523697630862326893847400976615501614068587781208906260930407537311352195261386570576116465428293200451541284075667822193741388241834876848674665623615896514133095445695908653513056660477995537149782248188949979788276648204133173090165950440804994264381851055504175612687363981392384916593668660556787669298956429222516015504094936873013106567645491223318627377139864892149755741312994720814042068867649327099406129628314916023267856788581587812162114712477379996796287325733469713315039515115687209806160286142910522920502211438812081920725735073224136025433900755817103489773850457391562340199956033803710147975826877288461181153513503433668045980412060340588777977242923351537667622475842025872978849535926654216509796730226078185897972577775226998510104133182828108114189019864846283164937986815074826545057420105252040637497512115973436759206165230482072784380930016452881445637204458605572066364485481339500969467999355063743378024312671551782247494805055449022527475065287496058691821931107558350673849437548150792274666503584734190092446827565531996104462948835630795346751164481781357838942287067418036457121493213528088049854821478077855098852586900393573450400624443169803816869980243436255424278563863418045004016609007489785340220958110106003635660311127665775013448975841711433764078463206687021075607752667002172279834145340641106102624174932119848721271543141425776219999056214775112557341405926757093312145121633720285735236217632266376250542111584929818289063076305553802396317310794757755599373519368795069155296726786478869076989449099863952610331743122590798953534623629382657451679235664814699757589714094867474870420527187017737043391286778067104419279647472143849633332781376129128722675243131273173297677496242529197477665974266560380506518501081162821588326637750113118863063182453874818717723008682582712010389399184378786151144970269311439687725226289831583073639262640937148228716799324026081030121958048228206497752028985586274023485086145563951543906371992557452416081729939136903371961365191062550388251153328834722037829374215039372042772879336162373766923674126387169152173417238491535715113900100413624524062036512666953837565898755764270014613722770497740437581126300883208809397553154044002879506697397921570749055343382303738518959303674523352203669264433605210602624128503108551829574285548350296361666638555616049342429162624518151565784999652481704520022487896302639244105743713068130651866738479565627585174830601586086102139136009661204646680821080641562420671383175776137276079667572382501381466391174658322974093063601125240419987995528133487701952647264110472641414900886991582533188549179683790846974870123326379757970648720057577718095895687849709558056976762207034229272902186656856541744531992949231994149851849574257677103419836546358950055421064218946183024148393159235711985052339230605973128134397165593214534441347045005439309317892064644974859177724240373177015583686490256485346395832770878386382492993197757500068047049833225277458902970164274348795956250381305311873241221021861288321111718703924080618684394406881140248720798289723462707643703696648901102918092838940506122184017748707180710021429298765495379241661736425673539623291194321299919770437986636323765356027371896202846428846935731172573394570415402379419200609897515211549450145540508155791263030295884929023821027732724456652904975112189313840239637282675397249900647604041252661089645521885738998792899159547097059899977735814600005735700764376219304536283601630341329903744792575774807553376242663137781744044534040674162363605132376009650268637310918045650785827597322687963081857233858878507814031249926856632284789779005365324593964844482589039170328167058445463769567468840860321770797169343581498074453000699158298091451557073366437348283036547683690486998880975245613883719337972826827256599489683635268741639091936118702147628772502928120051372558818021870283106928776400794201643926658839871485154905502569750953181189055685965071783556008288249282381471648559101649522693680945962075236798021755999911705045191248336417871133047342015021438862313932066294024108379143534777573563113214705224639660181477328166305657064730442758818416282382609068500168162487954131768170375666444748665398684762869568395828006918668216199411032153772345059722411959292286419434632359389974777434405637018744041018545488749251371871525519004936744647263706282854960423549907067050800537269058929666566363051127473930694088721873283520886006424377433291045707062311873271403519432388757123656486023106734115706781214217527033545117556642175487807764683923602978479173008965268162869740430838040755237725209436818266897712924389762221030013500208543041957736711045163025067324215513065340978811222341688526201420842806391660348070054700648167224636399079044551209300952381204924017097108375949320567110211920410669645451542926312860041780290146305875752334203954960361760217637316571362346249875778624371337465758359143339703987590110814099215145096415017752269986804377317774712984889410574518366098636837895379451814818301004715285046032772648927486646700665215678279174897985929887112730939293783202214332359935407309831910268827177906591049208183981552532042589774894456972111631581362265650264791768055739143400622378817588167744755956736181003073174005863045895007385603212530318281141334606768061308077705434595098262383212999554995997869922037648467608929621573635180787459588426252967013064086915037399754870040934242083651691857686412392778822072146355080116418106360475937062605724042661701812662557787024259318797730629254600106054045982505243078997895540434129896330706245672875477301088445069873097968871606151820655924862541437742589107200675266700029521007059290410316319901356083500287252563464559770596244080309579683959400988957746012865763411935098345114183860640352544879513151599163767796776907296508647124985867101995666146076130457400329938570947151195032767035384587298389701657584278084256914308234045752578324154999652480252077047118969050485494669173411393612550419526784101806256787937253063906195103635452952211886521205043609671860943052837361335003045447658294757083994376586166852074893435902362658575709397735145557093825737554862275765051716822416750121523906335469409025161331487875056106379817149898287615191966842761567949958320645944211711476976706380939237282028578440346484787391581598224787594727542392912733617998008072253498447157877099058653185895511430747073529719771121412478663678044741779472044586939980520394291437497281151904621631941534945123713864675537068886046762440636012911847217486084949163118709233417094388721136148302328622683500415153600283621541815545063291543423816823755440696797165447648154751569455193805738797776026977920302298853982509545925251180969974733543601172359228259612221127775656596288317572822294171390186733978433484611299754501021549885217944064158216409975384514393666823549258599725611631754613944327154736537248608733058441429666926846869422206409703942277483983578685507904048843729510480850588724874320895541612048231865759883542172816811739371454756153986293917717385209727517622713155020979633997892979771938008055360781677929104455975515199340579525510942212507192560845968960411762538384983166346717730050828176069696075732007354967101881478016806657234301614046561078788536730228875676336877807018326399915048082513831681513256706302386038878763893549149679502825435367794952646567065429769832780794675829588080680547155331433332182628119627914202372673582362235837342798440444932450799393053583917844557374545724179334505219942269753435119187785908406351074511351222237528862204819673441036723710926905106500749270246924319480525557255790201620610987225597776174104804192165267597552166982223548381829232303661691086854966569060161903165658722089503745714991293631249305054474520888071252001670944780799691535178431250124561145200819557740157901672514174734092399768025193414357119683112773558827922515380315163231946735410106709410534707071639743447603707411857666759675074373130102883281649100041170508020951127848277912255897372053306310588213325798624034353190312715072516145464808777574230758304224870631396072727033367812411779562070943459693626845055966699112820516352148870889574146526387260243970425084074916741219472189216776313434609267747258704310271211071158471044413702994440598320578101772138709509961086421765558079703981130448841270080543604780242885744148756360945240335157870538553459300330902074618687839717537414254311540645563041116233493075240214989435164918841102714108475436998926159486945541850986199078950633473433232692106727468131091757727229345447280254838311486941914142339559168491775084884412378847487595116429656178299675721531269645691609015085103187302165801849411737822509163055529676460664185162218028060218748517779749637450042205598334510042958365173755326546171887242335262083493481730682416648882661832313320335747716940602353091379405214469824590520426855572261988029678718776551020579419933618559324673062280797452979107228329514827753686532263066580783918842696391870992468584682892883234897926647719831762293189022235544916419127144196777713166477789475434942829303445812859012679566271767145989057963843179895448967867287734193185219095076722340138651251150277746008475854665918244096590858523851272530666700448960908096153526243725282064377680261862278961961318174667888224441178374567353251474540336213357208228323826821639859925378680266139757322220621888919754589367962047330888246084642633098940280428033216215713648029935251792733147886389059528774268015105524834504445574780325673827006914513153971615662828391046639476719371199887039917259585684065164607182085605279307393043316865401842177980438824209659135324022944579531113661907564306418685665165042227786046152878492528028079572494352199217123016305520021063687660554984582386982717825473278671783541103501694027336717365870854024017053848442767300660728084813642222550894300230999289849902336698962366751231528414521472839626912215617641447071136213091051265406352191124537534244235227294349765273361870277469602114501390553019197238510514853319564869008105817390556971124506500069705706412531633939182975158016185292764162065387053330695170438115525101631889983994805401905101717360072815810183833750746799279160492575216389825285275464328592098871189721118651596653890029048497260028132488954458683788987036462253922966195960151141142822169470552006228430064413750566030449289822354170768451469993933552432697904133262751504644341396291473168042176091787056485550130174270711108361743894241949887632733313764884827344976053048276146233272688435616870490027642130116687854295240153352830838831504887519741378483891278275070918146792861560841577337518212616794467358332002766477958677448215452608701389559369712402152734053597635957421586872103229966272473590140108099238752414327703983326402538319872837928255539145877578938893739341796519468906653219595861262343374511528961174212135066692365454333217752442979311057637187165388455783613784690760845312151440977542195467959409352583583069376534645970465223836276600990614517688642037042244509884260891484284967657138936668923927314811140226489643620631372824625860635466224433184097526367872909675094292263437444293345085038100567306761872149250369368923833664526115906137870278181346852120696482714289929966232304580872078985982976896004728860591896937468635177283544318809777168555264796263656628608986469195229054072565764637081207009235567132708836122222049231000674955368055645065169230004890924074107817818316339157669481409517008170106517430641831203085389094540657358146746220878918989097821777539014024628418061162898573774739050172274196502326046101304748487131631198252169089848391518189594405790626121502474540877401286030208493724284865565932428897034647130450111349680400906189807118291928558659923227948363995429530872880869587693630059839536501529873909974413194240069243316419831046834309304683778934618326542923322028926940879315488404459667668411398067949516705747866277367511285965731524163427764339079049110948058034981257593604630772229680628783063104201931182470594352133078816975273453996643593560777772005340765848867570528630242400388786861096367011746038268961684775781290674959529803337050979498926047701293195525478927778456238321894278064606647544356787133688495397036064653318623891254795772667205040262780890396799293682948923723838310480575171241015619158929094777773692232162462542163788872324417630522816710941208589470012200148580017132913085000501063149503339463060539009007981152983235536655007129909263853867219215750096372678810319722178720610232168746900367833394821467708016213221465650598721530965742916422386026645985021107823122031761692598395368414875257979284025578720501221673390072224385164785796271949394754348359786587378531824952390443201348975872762079817999323771477011116796195354216980465174191600485224365816289090055712142813264795592053186383039326720032181356699462562051136270292560507676272187893724650536133460288171602000475810396204175853420640588326809161922891199609485717838546321277717573313163730104074385186220142834810511259154011170266832780113988045604047911597564843222984940795534972973525596857595894571281761467347586853840991210386241913868807638348952802839358739987691658730887954826681926400390070426838363226178983842496455479996191476175098555672995524901699794729792820993855457579025498524290362797140799694960697071322359647056950645119126514191293745519041556165570890496085574168438298552245980855228179507842346711759341870161804887412616458367363396294304833850122973623206392543453179334591370964453659425134906430441740932879045116374541515533253896034684197966419409955440053249811331993886726165202678068157547132275802615288116323721985710282149962348584827999575631820797676830967894631021947762343857238744304215654459525434248519465659857178089642985303144371685383978761763107193659618157113409710263420474958418924116534178393707693274003962331768936459709650569047687569866338180278146260477507039559665416885054408436887344177834560578254535703130564559974589547086413559231581714514055138033822623342685120173197533355269540462764933587987268410807366387071302634758504437220756611066998637254051259211988279893209307591038818295791208053920026607899525638483981759875097878651900310835051170067196762193598620857602534000126249626336952542188694945637621714029086876884315552054342066901536272909385396136011982769499714352156031497505061859853052444584235006312595454071339882871533579415942662259559215413672186382077028261918691337670300354646530486006809172745623003046363320657602403382432799972145588940091209780912888863261353929383777427689652612358716506990120427480722417907081211063833220068387400304579171038157673376728700534406175588515387813117739515123000735512042670409241602470430904284435836479687028678618117345668978195427228734458447930672577261442708048594838950972041958873166177742372055034217476078576889290676054899827914596297217538344737101656883832540785798545025907495284293585182590493005824877835526423224582615331949301406741416728626942397422230287176260406663279870482499078031208768092820238694567829796404608435599430469702130554069336765472684244441594828304408290573598900133382084192856589055869975356081693924001755709962639234042634956778905397965028307638458211261047081523934798333923096101628568267892558555783235446540995059181361074579131773038166105509654866837860686595813706500747266889289392064219532343987970608128841452818858944579742558136189123060724464425543175835386171351414291798406396262800647314269493990444568201542532271483614323072178794431714187400884280683490285117218911793900706395514261751649952127116140817169616182002586199362764248665465027637543924993006330547832896495192582865936346717308957694221075383438540923724886430346700992698425972017086451448556445327091331563516400134741397308668213746803595524277319481484788761280277262906003621613843035711593717047817776142248665524748618131421243537958036885971398295060604555062127626180397278733297174906863225203856297221220955677976218062149770707943670363155426086618592490266966414710332269950422817181893152806726646942133607922225327035796240182064546122657179248368479280746295108810934843575805448636245199626631498892917392655439339551138931768443092718596336802271234475445582582279224372271813882681596738125752080592035052489338558517689607238728427661463645782143628913618318978551080284009885069732084007588888582644338222442977506314399818968916597322304964260520552787654750040579759665307294493220726726185625895504533613019444656679036491042051113128355723211081074201575454927524309311611084318774651855526775457398764507157876715639668675298074659334370836046726170683897459714953650167201418006637957148999192644402591848120673870987713003699880051966455803105437495973852989567465834953792238986513862326333715279125484129846984111544836506149370772866692809851306965282501630814491178858150300203001668436151544828154410656758094483245800196946582883405684329350675995994561423427068801167428925171920468186057058292708745737969935964480282196377884916832841374792514739955942883812777603326597149312216546980601545039015327746052362931432871083515814652457437349909567315734797653381487918481771883353464988516416036330681068232453228682918767629252601715029418624490882574909849878822419442030948589905557645239927857291892054720614085899877379389724230129157907615331460855657470696091101564174350542364694387488580678774773409121793178878318965942387707809667041165685881711314063603180210316747985404021481502472143351191364077602066670268757776725596036566884492275383163238730770421844241982527638916468196844534300819304414020081587575581019342104884115188088848535413069003401192975845123222283739108760441321316325675231781475318639671069396877375334951247279793497301308736630000384801348058846204793283753263180811506713472370445937460146311112872488859735814187111320515324472520236184649859413736371462213154357166659279046332072224264082334033261234015708629297802822964064287434698720112787451634397890373829252256752369777443609190427472370275224414119130538580513718771904399701823048249553802750366343107257766443714565327180067657974446306488766561433130837713664277907260004473862972008641603681829459533410574261079940614407335864690908619929384030193007912504564348021595697534714699993404238309825079874460176664529698353220636765008787657063147751147047284452285324222754524080031468928654021982116950722509052716149733380839646929355941168790493092812458249889059432649073467016706043709711822814183404169100188797024549423499530429285193006941578526665017002651557141606569594070296285955478184771879791174404659415206078901236316343053657202724312149526751405012158469337715406384019028558247709280625856609104204663205937173211111020806798250157590130683124138776785646434574627367001065762948794434461141570111363457657423275725851852634101129737552083266937619372059587866422294158483410126903597321924815073401908836926681830700271259977890054027977569377320244312867760931855903305525225377114894978314815299776274552025648682373354353313368492206440973474447450642837011276431927789045314165830919836505190489376476733734110269977195896386449568224811301603675818435609236171582021896159179975964578859177887337570168783164303214687293495091315811163198364835235785240957662938392994212658395222853441399372165019113052650445782187645323242842825888737100957809840701903270651899158754341016936614741990822145161877315497229311217043274989771283366190301881042312289421588531768378205714161250193262028124712554154058536638643133080378195733051204108281134793631831183827681546636242722653796707055339050028913028485830178734311084229941968772130631794657386702587570817302251812802976364571420608003356433707404503832305422594388532391593758571739615908192312938691137394787063422976005909736899122976634144994330736921262346458907001423219296009243646641787061494699404071607461355541715448541179998259230535338243041205998922360550006157033338346705851191476168001668432141184441102164166196031087501586144989686942406569337794205608250286718352298939028162635649603981565196567389925557376561728473307279579323058846126078305071555474095441979284273994441601571484748915139347182596083224079977400009436317387302477054346527613904327138670519130177994550280915655073231687170122064305924450685677501485870259306377567271566303969918961620570659512488986451591802242777208036440100538593611052097844525901093334519182463318541924982888712875912682275720394718952537081207548508576274925614307422005174548507361155800914544070841212881017505586464681704486737977696579956783993260602108143355245215431213704098211113544097150148336900598403723254450188371967817641841767981293824297975902497679369911320397814169643059241422974285528656856174841394366266167996414571299134732702899183121652484127099541138790668695291666340569316408978977962722252109304625380244596871950778225868115368389181591203393562359836685306471962226912393700930547377270996301075039922843746594024071817153389988106639871742320228956736063901620111259264097440872565394229515447092391682906854579472498647922189530243066719131586282935249343319983277918545332132602696264818909818964284580222703693191146568671535308280355030747336819614359770488560038553670680100437582291350703390359292752515213743470898307940700990080741551454253592124501562999922331953206727714895017004752289171376389899743832908895882247910005372276489667886345333255721658174378008972488989739274126750647613503415534746826806959509600609042798667414098993439490268022368407773228107358117869775400048005401780998932962439406897811659592016171614628659989610889907469334300947718115021956707758509857924175657144264350929869219953849940721849534077401619225348053502806536851525473474912750056623329633744914933311377178451968082219941227031339035439003016745180391777790363034632680298656620832195909417909534464749484988885635406129327800672073881156116362247314844128135789321809196194362277990272585800014762140960305056493387450858354355514690707897822033890178911392436061083020903848929507620176169921764886379343776701063370046138660106698974963866083652082007205635711791056516599024571901942413035715722842801980399835898627695908922577253701884350961078674224134841613491226501803404202598338063554117410912631931407353651547439312889174612340153028507774965346958665782819572294790991748255280192209627138193593102312791111521493227251478625382511116632486632178738551531609155412904590078500087762544840685443838894132879864084707479380369734098357476630731690894781138425922160276401097372409380588000993787824793682116301192342703596592360272755563296712664317511880815288510586710843439170965251180284350777713046331813972715180852937140455414808598873766533943015455304357809463608326232873341891611021888878477633556414370964558980979727446749567513335020536029952965187377910911703061535623038237682699104994642579094815454110497032170188579396311198447808288872003961313993751570627582365048721798630220183860080975168870706849849804110438733264132921873353457244010904372636379270567942625064630072104123601018488477495384828612913251937188720909409249172709608916280136916040365424481385053486436398540472068335755803517631062165915744999663343840677438283862892958610632589497999979237573890248958861672145380669825815570878565630845422244563552863150318096592042093509191483785914811827838259520974013558769120880744996032444128071108409150920157549624276631227109924166253227656392197625051535066465753803231273552797702955558430492811615799661630080363733239645597764430834263565698616444619660400798721154205711525151288629874110300296115898715583120053626451201148174640800660192092055909068727318439165894548893652670217515885455956598382958648713832700986761683308360269828315227651197138271747215429552111789842259871471879756446288868308270913098680287677749126282898486325733589083057443876045781009588936031934272092030690858656880261807901715906094749490522643625719700973351309224567486572160058287078245465832865772964642085121675159447392450218214841055799712043861467019618929907839250788762867677065245816753380145981416753044805286145019448676018328956297348905273356738027781585475563515142289385238880424428182239445402562569034115085181189639649961961539250785323710662444516037462749500068661744680935829040663313732271438991682749889830892826329713858820789416711329004498455084070906285918207596205008301342763045806334733638049367749042216835472063693348892155907844597217916487927962490602811817092126168369721518397188176288343768310784365313993380265906726136411840268208162358233795679844733748288797779086589115477737017142184898415037054582998717083099982224207129537206595955931651506287582834372580657823355124001192023194942306662685237107643525637270812733411082116064061233854259743865909264918234652868591161903991233521443772113912897135133076433999659556112816788056240722185416398301390575325359784621123309745629514393469808469282724397771764895875555255331433290103697581253048291270282708475150408229615304551250118462373453479849087565269024819278914367975394014598443758687077152475182032137259876558039625463179650035985710289689700323193458839502776918961925069472255533703318948434346698895729206420005265031379551587512310232256379640388524457319569255313615484314229753147913076154335296817427941456784230211337333073201792773588175510684902522392523921565166570360112524861238923638387108637891788403139778545316115945806514098489287452644864082031227472596177115706379966801176907036939699936114342159109364560246355008433936057177238613883536378309916170818696146743091766228896975809812006547266915892420797381178513736398633381750416727935430894350868753173883078893273599929892505619807586314417936680529581528185172124303052172035390234217291388026943470732945861370133772208688314107271136108762481184617074231032159341749753041357326334574768163925989139674013364943695980411959556691425904660887420989072550698629598852901010652840645617692515509603437893330176355260757751693420494796229607001033641913598299908007866942656894084754687590084901137335295179183971489205625134081307656102862331569825676990430311601090233584346576665593469637379064803805938270934689500592027893988929711574132234453698612573899698626437312307114104629320601665528435965941014016952604561844050972993838840965025433470228154810414761976617791898068233973118825488084049902711837254562652410364317722565270957831169234995519625690200467147584340757582879744241319054555761235942821462286471957245265889804701923702228915386990858070174523620591660823295061713188249895381639560928462042898142719890587324388646830542979368951099628232809644169585266300794775135517024927973166446994252033813635684182458880542580904738469725273666847978153481933583979666989351281718723985650151895545208729048482880512267128751171994332293034740069213764087443475245160576073304661983949112892139842758042875451622679406835525666899282493236472511160065173196112439127346011006252834982777303859905891403617440566938364056200936324780884832322145922644475883448318434844848931947196350899531425613441177289374207633162931949748934290713170658165151706778279592486498151798266173341737726827263077754201150731897841213147762491304962423508536414071274037327879793900975941579232280311316207717965490644411283579205317850490580282995092971881812577123507030866674599866771099131294107253021150934605543012482573025407728911537219145445625928981112023871863743651283094409275797673758443285676814516319559306207618337494696820174676338384205612057847429768529290287799355039586718613991147399829414712699555422722088758618070856902490493883825037960816032257328725021042192576029329756759356922270337570213732636826085439382415921894359834456791768412081597064459363591118724858805362363019081879594979164591928552110383895632176571484781965653469978960720609606654816172281384238988597291960748017151400201224064625452418456414929181118428182699575488634351249604880889752980314338531903383200611050371598541134226589157749566379422810842342121945846967363452368356060719814212420103904283652125209633034467307316434383952919543223340483820484125599791963840527679793424783152052298528166538645929683177883672777593899923206201278852735126540696876940559017353089326688853308611703973576554837572564760642246648699208450213651658328141721973806319361349411328213033405482422614722911559356137634660233087629637692615743115317648373598602411493825036655102143869525601697978445813475163614179321774255633920910601869129652420941463281297193505116441936877220806081089711149355961889254115420164716284253479419627176617325666266420465675368421752540552854684541651160202321018574077939427999166602889654146958088560029197730419722455333354213344755734828244711231861342865204853954179940187628888197433307580122716813388988612331158081341805235350990520781182351238519351545541072373999426132455949179137280793433772088209203861209708470540716181435604414283553122023653091715613322236423136199733070344423651398577765278715365478331185925263259420705844362203184862506006767239551732577434023500216182508296092219104911471299416572324070148084754402483611163982630293982704346521572617522996971564213494817975417260710483556617201531557921213904551524387512730406308008872715495985926964841943477953973773690708954871015927424815060833650203231631328699222075885974723247326046726991606124283962523712138887949872173507350376205524268182480172414624013827224940216880554220546606930251675136521477057106722582251638989687201782919094241763534748621594490980285679484031311446031610742206661290272930398328662016469680815929880645454966323522144678121077230922764240007206035897269760602356267576176318971528015575750598298582295627114827480866914719818865528438456197188976574463863406850908771370237276618472933244345852962605971331254009196007767406193573609554044292954673024456204726952070832328680125308502329124777616233467765937549667479023678585695184887361725636446079359385910769960234561367423145126551239304085191916767726015164313748310486832243375890135436720403801377648330691496837125728272508668119705594625429751974948453843461441902056356078444121762593116991998794673001624622887974910262511494249534064621037333741255393197547901176807686283076412034384787348701911798488971789016698723958830484612757960337306724720611507391609200430298320525121526522663837457360506223511410164805431160551351495030375054533542182492640350255266602085099448123482763933078966833126848533948756004334873964444289504905524213903250490737373796494053178344102015328356733890695695548589423581752201684319121883640562676351331853794049253849257294838145690579167854639409482856853480448244172356029772560748092671902042483468485346097115935176461292553395820696048744520239155375704625038737235918573359080931760935905397489600554571882555868743249731292104163396176214246766455760018573088623870502031198712734461345692170303961996048599819606821775371269656513723508336889426171941366731409661119652942524632208855633032437030899947566448931788519547295108166494369128864056905733120981022075773863372434119190772410989040648138522516479974295027301568966254499945125403096003282057239286886694886878084982516644425479793180825736130988256546460926651327072393363918104376341802461981373902905593822697493649005739309388281630104394796935073409859694930793465311698603662755205770710055582126127753908614083238133474632419366132349912455174978070398193057522922868371837645027087533263123000153365000909330880671683855806917902317660010652989267955499361499876474432679204222184603891904421499607010819101291792896259519260470643841340814431231533927172924896523993304168274332945505114555213051781920714395123707978742031025057427478832040012153614931217595352802300065862216752719851062305218764444290192605912714716772723306052677558301336587959047985121455726724517955943396931220001557919827677291020623508551896877656263334336542301865099706449180570159177694841442465129709259708392059183238955397762381486107667501784031504992782414356142704744409982782995484063185557981607027415027459434674726156364335380788334491176740576869462288672550536148846040986352408704868535945518694436153923292976738011937064424318752294817039581314189814537557235032979906157148938211719543571041741704259644653430534994272329996612295667368856222900637811642489955628670934265692438281216670916195487200120290724948854545596122683759513857667451022380568300223937923937968465858588672376713131025012940942639649323361963915132980250626595633339735312911466559783259306421459854556269373644196638227842573858450522228772232787877339174167501808064122752492875192229954885398362318683728728173281755899062352691233045433007883487308837352482434680209014226146630543129706427648688929924410849759146687463329004455925174946389392796254619503235637415224865295520405833635015111275729522841427044785994679804689004185815751883485288358680796059644520792987574998928965296955000767985506782336313136241455270560205783647919746203467789060015631481571564326835820113009637386680767904632267452959501584599268689999525427733965496053114852077761123472172860551162403814286008564378880324537815325982747676349421000560782977291797570612652835437559653814280265198246799564522462639558703772591492985910569477728441201463754755468591809876552814800063735889028615106734301390642634088464884038209775865805695505716672447056022987107100661449248006294364828351931548546599970067878117753797121399671502009407518789883881307737934961455047841019794409337088564589256104807591798874181925762674630448938206935791199998300952379095129781436016112379163463858945838941928506639346787763882226643864739651698862758290899136141215478703399067289992377363613581641414066487709571406025380230026093948140509738906911713711354380816970906610495504933934508344804103433171445065422670042994598396580404496906994804902036486443799208107505854244128853311086921465905833798083786613431971865783157487293874065348846181026599765090274876274105830899384584571631090990857732323948406540977057646082474767998088648073819852595536398626298346156936913189734027938742576252590135640449874994233320936973065160168399973282243352079634654794103386277940926594548020937412097051198538470391361418786592200531278048365344235561063881944299444953936437551945090587122831776800189837269579316079742347828710630375104362042515415963788965818338002076152493774937822136343929640893746097315572121917759082355209722409125151597656569859352893074830095182707355289354325827816732447154033062750847562918544161278333896237275957593040873550596663786979222136886285102244172525479416178068846960595081319034317372938592755984323423453602591655488255278593908959467889566793930420631411970785650910438060811675056528789199318879505826943561635224126685109932661328408829343775872767483319540523015947830920321283830575434991000947454751981933742246704131130125052924945002533743766347315037408017424220699769145116750146791933904537040563219065978559955288141425904066824408128178438392413752653042657735859114739294894512419986287077424066603280412111828007243275848702413827609200532709214396672573415085438177754629309462272659763034357635005378823073363606900078996069094528234134118121820132597182297319419442530379028639421094463708178286315250226235970164610853132134699579175996497626832762253236753676325544966886127044324147798275865730196021103608224797045980572538999235190798067469873353292526110125578012364231264994680189731941398027410086592963994206296675551395898625426302415830755391946327679798723558696583786114396448259395459421043332748034058140592554750339775776195352668921711631345928103159121689524679154104302014962509986816961552135561357864654262583967677620193389723404275772173033878300204899166058843198119253860122337722411059970369324529978638363045965174075289547022849861410094771476080777294362518042837195525754888777929864917637088603410885500611233425317046564902160738296350340562556526449465326371697337714363048520260448454947292195303663429198358221172004172344434970353653780058627106029304585132851576630685425032127612844949241073506015854915238681458716410677250042571270888073460952935425504319392421723050398277960452943389901627396959445932365222058443091094797052599093128227312949624934841853065142710111955645399858728431137895502510925809317464929116120931429871200388562734839462627311786078905646416749484752078148496375917067218301831253234246948965975883811687957872398993564001333773020518518200754363908248980820426233248564294728868230725110169233042785152352539810826958768479600411185478929250666904824020152944903818866234791964941794557081068472682000792349739152930230644084314644928286069851773216587063868021039895617467197708702285391715845726367702416168823034482256075097750218915084342622675401771369185950588824498796723021319061203561361418498660763596936363897102419831717618310560822982604527813962561841744340695778047058463923361313579042138784595108615980521057325461340085573198386024696027510827573458014259147463056051528417760189795851515090052546145539017974145490590333481414115557500683044315844490978985761837051426149130525508689975336534658068766477921706581444544826646195305173311021634498038745795022726361401299470819852982833081640673983082632105610950472291204051543403072896528005676934470376310972584733958370622970522490779376569147457889507770780999258839012468685170758820347120758323348342010956663639745097035887446391019541566497582085222583241904397613664842600111240904069305067004225072926675774689854570895153547192700024670018477540525288246991064479224227667893539911940272079942423723572045321138937775537890729521741978525145371793702124659661609371168546900655834961693579313313253600589725825956621535492797031201637624694581827112817888619822127778618782408419976223463405395502145751123220889142169860334333997166944367855486834389763357715767800279440043393593738430218746625826898741756291362048022166227195400696743039476427308932557610357998995897582710496465380672631311755497923566952390388150108782835107203691280578444459205686448809636441299101600287201715582937287252393195154460501657726850175119413531646633488421175027066017412522644454123612360577579100531600180370421801923102890105825170942724879347502066603360696189195977420179927490679011605336105643362188101579360325844847533768893395269683448103210636634640124474018499774977840277677310226541242467533268944773641761312900828750489199187355025681460800753387879937871557353452979375208189267309676944725181012253103104898919464055520841322395693035875957870194793535639322267922009553154189459982980382246254939432378654020637193331760873186322378689794980329915257538763094030413361928291741820408895686972991525570972742466509545288349461694043854255726368778309892608218842526707807171051303130230208181954543471780877631617594206465820887885076679419598461763888636025592685858505424964527531690833843638810135629865250566363532436818500332753075654887128218342817838163208380960830449915947841767533773484668377268466645438799956793277007745857945446016425918664430816456099861420977462797336129024824119740462939517727578251776419021244381502747300095915748237195184968933732035940528227489160613088473448151383090795024282677377892138973962352319626315312099198166977935364070961960707534179554100114043176260105394023206040705136794969804283672947806846258586926172175620749954732034468868998709012973837482121498077061037850884400267792705444074567890884141002363970784984273298932645949611946819689570532071291219187975210810931220182690485672260812875366218912107706229592325069710912474191210975940371783439006747513961350022838577376925112820261111832163511264823224293373175989273844451572664460984110250460326992492070975144668456735713118822082197086470745816068089814001432388196307487560165632690725081112561434468741617143567580595773557002909848650054928813653894620559298476928480162561703778468491705884381248367638202563973351091482716028724947389973109080781273640844556985797180560257880749136955366336141080330073405859968463673773287544323809072621002892231496990582307738059269196897040897274601481474362214730092851791421833265179196216236488701170970322164269975227627886736893822638453239273228524707443549243354217422109012909584408036197141658210885860150329633723347181639767201548809464628475840887369120554229210662577438826826478296557908400243584634367360945361178385179123402209393013554860095104290242443048549025324427353655703129783961170654192555890135239154597470922789628319318448838970439640495635720800751867958730026275051302226350230131116407123052800310099288587974849831019642028298656930170417507141116835866901082777526638227443544190117244245903923917486149020691614938488896112411037934827933587589324430113512305508645770605050100196080300731105176868747202138706527038237174506816650565908918234175449190765279346895625548188387711968403690822354941640840664950427935249559764423551087225593050941333697088902788710890387664108918283260370096447320266313052724256449707615166660485301183889837367820019966653100135774252293777759800696384949454398885588829729659947303097594549263561562157818205614819988078572422212932830394649888885221813488634225797669657795719183067988330603862114472601352729494869698240181610428243503712979251658950707129386957231370209623971387623598935726597254707318091985458508920850930661259988131064862117020389894888063238994491746050226383151701259556453493355302324567338388674103924578671386775924252740137693057072636242976747788987382460289458663141006757456941169568321941354680709949684607033107038282145281238717407397402588844733633917375178859512669729255789025895153292434991078220709231453557177501518569479733815590413454887094754389380610968771438472572781684105961855520072501928517899943256535932454578101873161689657391329685757896656488675493344208688492977737129671665170583426515448481891965867393013439134805049751148695194512028498576932613250709457553874060100384939614661197092680045583976097292001548121340836764255371380765830941485593921154776014155892670034978086414728691637453098053701871628001297469034736184533715707955628159942844764392710638115971822636323074400983346994170694719794770247151400296381627279751112844898284647227323637200339766916796274643061687318091220090469391027861201152420940669091513131142772484581054103001422847912927049228879500024490798089845103536549781778739822062013658349348046852256453155827682381968615929622246711014944376708597767353418847336384452832945589474857946710951290636102578291318034530677608479604111327186772904033011709948066926550073822532472747425886887795286317640859183836170155494984664980701142464888867637771128837538018052049159914680614757824450998613595829318122316223107059509494256357726302660035394262727954667328722482774442745680255679895738587699764711652711755259933194575101942082755650488386117559922962454481784120024400342098489462647720505454137175290098111421017071352768664741694822191660879273510697803493831801522287134983757007407743574274141729269342946761811559950394903953803308463534796101683969525739018977559952371887358031737311321088178343321362140463650165723825953287149549485737340298077288017707876880518944286989387972509540734607537656614052779143198009898592662300174482389589138909933505085331492670657388242238761814460437996799383598498854537706160134236793288065104222504505284774858256695160220521074492986267390139457074887074119877163099830474584592194253831060125197783207030013255360663683489594115321368498922754967144678367442462011234446476118547498887620669539433165235683946481009731705991814096178214454289149471028535046450153464569588064218809646119430918623555287349334507852151438255902653651778089202729034017282399638939518371385339135586350716530335408724672916778383439306156388749595815033123685464801511732173859382199325532340061915958774964025415754190306324869350290586971503303643677880117823847027169756697537968919508452431114498613860430607336134365099574780006375849870975415147885258162239372186652888272086180229609796944757167241288301655749452020592490013925993303561597988934955610164728631210559766955386259823289375621701068106942182621598050873872304340835894872145158219837288375833092995625851126885142699498678468772553419695134927972380503070444354527665367360325360289232427667648098663265581068952190192059632303234053536914036153998281388137824044231396474479674469424203081253898561952887157482984532526018957546923612450581041546480431427599940622711078293179921371254193645249077325181788140813891949450231101899725092503295379856426407073866781266818730737603879173532340753153443463236336016498799668315876601550766762019050205835471197502186699648167961526146378966580445588093668469607733653743646295435454227887183766948840980106735019049916423556094430994118939428830167424835205493084907384367364029697565312817740205443610595781949628016236744928597770536408751195142462698649101727311657411429628183866693667714625146874825751532748559029392037276417752101527225854802694805735293628409959084789725143671879554915120587375511405038978818240609515699892500411420212278477445503286309000977963789507097138626992869328774921783931280456294231699595433473717633607065586292634557241254725083610834652770639339102097058479961050625186938847536812251199255758513953904569531887754591177958654605963271752627815809826492205339600734565052556414594226346029041265171731456371812704770181523254518454897295262116827276708332391376807113370527290668633618407067215484409764130565419259646931237163409357377809944909770340018576483692465297586100169932488800384560627764904374592756794635063775361476198202360797921383033569384540046640156081828059770159497634819766534719562939984221829006165609381453059333730037740849993453368192823073630709596641193296629706691040141160172984767089400127216107865611740515262631040195071287420521824039731390444469183663298026371319451003566798752155182017713040313061023422934004937816692029216782183685454558160882150599710540600294031708668295656071920129940039069358611220609643827588043737533508911317000529649022284737485367259785421000930819436282876472267152148344805244012994554122513964543485363416616882907150966569183938927528504329533846010741456744871989207631845150649033215506590057455018495243471970029366753019303906572360294163953397926546276720430607230435331102481722639688732023723128558350091695068842976471896605442004350582003046262729962312184858186433416209659393160799104810761535606004167385961628796204249280278140636042913809490132975888343460215879639124891102906417093065479108577904658193655364669340223377191212121518406766983504920208062015973055702343690379262425772029616480250862897328182120912323444744381505044627565901584136639179781840717909661083229302257646759312470965534852664137948659439858316592245105613993681764592261552120801071671714843310034913948396621819994055832775539980737395635883737374905433949510365432690093028977451973242558050740965349526262307375656182160820765198011361856967326874695157385595183941866541717893606649233778994693622316004681998916780614352663393469746602111766095928980762713892887590377769901574912492533505385814456270269200856808961229391563871627332477371544022171642623933036453304880102946744660648989018184023431451907828019987609742028722395046003233933578736887601919274898959908098995462644292295961451420595677448212692299534770882076999329733352181202186820656585096965201147580726925907684431061142205455526519887079041393543103556877450048665479697199159042041107924095145685115755970796890886422980925732050063868525547951774176821768746727042680090377640790704486798449786814308972033557237144390037498649005554964120334103651843917643420832250986411407737970271824486165630480413108102331701993245297349288115977641159169113889366614295469187436968510196547168443742793119565833616074739026419110372469372463237587632458306988182366914966113236824307006450535545089605537427911132176003976159168823221663092718710132538017041442278636875858288039140995884283629709594993336253552481880171840339221295554877823617821328854449484002933865893512610720120320969366353050730182224079496316870909442995701449752543511504405717443237732126437734275264458864871988709336505613447448928743700831509657953316860426514860831215216340944035032922658204406927064534539286900922976206500699656600794310416392610783735109336527413220725015183071750036575260922583314954294845315288346458585154797952448719267609391850553355159955240996996923900926321185603531326253044041024972108349265079625476842481168691718422522272566357055706866546505992370748793340027398039923720435744203890592221524162505510529054824731097620726851946561996195384168884598971591422300514329588371202971413788468776367876698598569354586276101097366940217302658564923383176072705946131066098791652142100568982631210030798351374279354340128916717676824727233273712190474483887527991093404719442646710001917066143051478063477292675704987834543897846080952826633223245437157948191487821630227237445479196273140115285879878243203723390619835624925177163841564002521066111050417361539453268492496863156956535696784554921544482105037954796040709050207905512315193810815110226801014110720504086493510970557734174784690373960669621599428335619435957593951051372440437935281638695824064478485149693823008270549820142560525069448481288994808156856117398274366970016136827132357049583140679212919302899309662969200986134749363867584099085810724556561509457094000539060883907731979620147769722598823203770398823937427238524501076129233455611578727280499944356459847703783088010969444155549186668428269763954663070040728310107297226615929813777219126397813717401853976918131356590869370558543637120088964186008471689206359475856285475457517301934543422105987220059412571529115462362177916470797788902124972802416834935246902727931678257348732054666564070722535610255773130157540482677017572009510131253383560896194940786194517089925598453579347527014888019408814030820685301162429966515171843884305324514735261373601932492372186712250683405686328257954215956449434451988698440229339392593456618435278359476587397905105306208515938983371069550590735624271107771979192536707232791674314142136406003641704382854405637513720940902416540774119017178468280042783096897470605261254523156908594433985611323832363315214184265371179217110975713694758008162726715532065672124952043463821185995500881666314877024145192573283506414201582690156349083090796202979928865215286421483979772801382605148929356154308076417748738277688329589648204753716193901750702165929398169295365663843050052321363063001916914456696273091859260539613855026954986624402554083271353077178730294619600215036714031667219994126212135368637993989105731454462857630264161607200573633282799827919854383013367312575976319007806435528682598508289773230198378817439376913971077621784963381450232545310185705386052763836834660851270602922564970414889050242774520105112115350462113109894775612486353319303823227549858429111840438282977821035585581848053986503555657923280362596188669223724036174402669707636137273485345795769922838552087201268969472955251345859658497305272287242071400018300836754959890453983627179240172970737305097136089001756993476860996576099784401120057465835753549104980490866681285648408875519052402641833315278623432679525691705785745753373488661099978313657374394632798013298094422012886676689756508870744423645361349196317378948521263086766470871356720335703838895476116599252396877815617378188829342980899642307288615647899424516185141169482090001797603828942320952298662751222705362829312245054097521256534056642508795327468191354851075123679843413001675825349260776007148447701115561962709122316760488925304158164108233556826336903013145313929744490650709229136097019732128775940547472980616279472831172006175000673217321521873664107471451560985451474681280787363004598602286929278817382551827075904614336386832163669457836915294484726131284878593579352710188869139243863103046323985686695024738615767714708043846853616491783290752223936120445126345460466931637182497595861573315860057878246392962507220654178504223485695734093089147239965889206880052066178872891098203713157677626922369131641645836979666425081712771080281075783356974259607502785091262842026976424040095811088473854326798474120977576102279828024534600239530938936015252643818288708331879073046958505319254106109468843826117628246505830261386719097662904140039668638107595359971104049726809805990097055233308930455111303605360841603049048304179199185718450286284034408408841500655804702941655732306070598274363732205728689708785864455256539731633053587212134597926590425561775810182588914449942454377383664678176383822463384685387637489662537203068918727862517340498649539626227786273051149945425363355905984843217278737262783440534018689791938099553046339004314485431985803515286224273877217804536727044664551721443350361560407571684625330010718156506056836855559226267466137053345755737276138347520239100654079024386209966497712471676689446697157582845236958334935045073887815531283296501189772549923885644107195913603966028239513824093131259589501269180866066903854061526657674369784087477802702953328737570676525828975430834592431515428419959681868538928064791138809216058653123532478448479715160096133796579068048285532635621776212523467574600748835710906857605259465439944294733259065174020705996732933176497436543188114679399210028239316592102395606800681094609027244330061431376109331606935698177540520479281916135871141036118998637222532080066530732292833977985918175050711460886363406652355050740066434664794604148986810404651260179264576110437883703224030624320715081063539735556083416588082382904385614816439454978052124142309968229929814746350856686115201930482284044364741900632857306324435040286790243930140717728778238425891537084019561521492810201692695586224810450994145123024824880183447212514458115132287696446677620565838881297948298449041690842271530624258354184780009812579375798101321040142002328966625959452542961627822593249136846007098473382251927804042010919804297449218708121327223377620297085087982604834052702650094660730231932587109437658810001710846980878307233742324168226587612468901045352090036887448633876200443905977618820360452348629090126511139917178530433005908971375087259277469343294231758119548805344765388860141797871526762135012519919186578297896413708903321066966702411190761673545391386280086212863828352465885378395396133509431337705315447469237045634730558535610506896298187904211922461495628315182690421168121652474989582416507319766164215535004918439509926402797338145773163804404764257478228744176886731424753659596285269904087347311906742403757995515207506026849037771880167003857073994533646812277021930583520236520956376686363694284430976409284751468004773328246546583397311112222825176790122547283351597082530194904625275883737236674617497231420590061347190827705047609931015179704705042000893631395980049978460193798250551525463033140342802600389235157934582020803592153096861247414087934776705334822351688115284472499781190609895006583290316316338061880531232790868173695171384524617642091085378421607429458674457366224244096459075638299901862484402373159326512870336230237469613318152710064753819507066360276569255845444449725436432255402649913539767426417283764821985203006061979734201804217757717808767474570057251551540621647443143197432157765094345542482076655509845744840780602712838799768222404480429519801487033829054929777390848147853346537706353949117604278353314625249171963127917778850245776167682557781773140322140559969771677929204878550877776500349566428064532135142727562716968478722466734516634440930917478294974345118138799293861707639683427506683900329166905793931855022765314505044099426156123982123997642335469089505313976968618117962192612642768226746444293309207497474410792339542705672217039216411849318387518751415787374376964301905625302093784848351457431085801246297562784119753913015868621619874538365788162608967838798350119210450817313912929920548744641584495221598712530743888636291954642314861554382616102592604711884335119540219504521554998988412619536693470508745435092807134745739002285544512164898125012029386265242260594646764001018546543284288089327355966536830994890367824164647902189653040727419025430501040346196166592174190526150414023033252102306512235887488478557267579878172961889948811936093546869411902449882763017748267827355550748607172485190901404586834677419512857158352819342769194290699941574542338448555630528365062019046650550167108704041648609215125124452523967747900994883054462320831105917654597174500385231967618795223651191458230385600649146260560513577471393988140274347856556596622550715384167651269180635237579365561072635763685582170276940286343923633636609468391518410692920916798439252856826550489315923350862429921216065670177164891112886900720126717914049029028420581671233779070528966053918191844669373577596990500121725252490342875302638570979226601989635159020895608436338054783413935852454318405319309070525634559586634892648463609040479420166716567673030873747270346349493896497481674292412610580889862960850123773989752405589377296081269541462858217716741521572294882054994787022975168624599135708134818416081042679526658285409016659107980218707263534352795036804507850538687075307603104160019077324870656818253167138151246440260854120438282816009265893406051661952894471793539941726137953634184822756946465526818922373978121778253713505462494245767555246511761350329835571706207092946359502666335023337161689212333491686495430111742125023786543588180684942253325106599161576583098957411195075848487156002800410223001301378082519520376382678211633867958808237605173174778384905113873759185727409260599953865897218954276412898650151956257624847646445634845565931949016640942309833129822903880448664521981828452913917942127030788106737302873961232943193165786515852781990097085155575015419048798494840650262536673511384806629277323257342872166535904918286091412730474616953651421625062912186254378279011017228877287854058615679637973622853281246669575911825643473755983090888982556826481120180436384750091410241937918851276651624581391519588035964501879889427766236692690837845026012808738715651040341882225042195129116822398691283827313616753420693564355366735944147749957456056067399361454737504020606696048736319158601054633653062356086541240582713720173981313910018764536097587116293624714597034288837957281777717570100483213575978104113322593486518208587405670244165235414318532746700359489786739751131204703397840916862330796646551263095517387242294274576552920380980147634305046372132925074541476241651170562436971859872996468761942078194301157039007179917333872130366293505956422473473785148601004836825963019102573186043788912771823863080022474146182898117084454558518791094151131916370987300235793393613418812929541840648588860810939943012049166407044729324521712655937374659462927116517183823243461280140386482654303903431661314670206697518710922561508763777612742814508267769467376794850410894500593071222013195118596119084862657619172626181558853642707013542155378242831960294973575284063985658932977843697861455323885196054062164503257803318562243596471265758184260331886851482015285137373628897925709810077219662990097938502670364121738693522709876190600729316151922854964441771814297523889154234996819207138595851894924965563271792995064924775621859529269959488582250179699224252930899346846526897023428967294743835994727388077341540950654064601847295841992108972132618899270021249394039462462042775610609351403544676842770099980903562890165031618411787841320759655811650248349059183462975571622385536646198199808888997491914677405262481022109547540248813151443772806204544375793186374535331625644615043515443039915334206445199223009050217275696878311858281008691227103184744236444397593070836368248208308372251760599849963644492320842491086391797771806125383155365852338845611591521882015942925770488388596542670824443443055956287991307973633509541277264982197902194848561109607673475656559556721635221941269364261235367706788837474900422441511092028104398719077340238206696444117968061967338520548813574510837269046121143400082705078076289085640000617285636312116188090431430281136713864381216011810931700016861523359600493630921349981694526179928147955761640656521992186538310381620086385837282451931201895659917319391374839528137530169133428129900219763537917682236844680661540628436240986579575405256955996325518523924877052755577938035380756750538225812644053237221391438616445839366039561360093597131643807989219807444660410820605008910139959383644511729011648449095986024845707547427186200047301589894500293000140655651890835581261831151001349340860492106702180021993860523018170473250179452918377666581148160127295633652636901746909525550129328761634242700879792246900130515634318339732985165303751776189481838093896129703876899639793598635236777999523869289709418858843428913458325721848349986982111291678418304633214946092860746895927002592372641933643307521575026193347158053980725586912022896800819559772555699836867804669782837224394790120304474087724253251563606527059896778816162871077475326064525452484103558378036414144855789962968827434299589210773850720014137164923285890563496870346407309132133179142780644623559422510915336848379525516907933400334095796668179204440064244966387084158413399355381135806890476511480411065262144491040250944162277316643733740323989115837688897233005615453974189800086443169949451803506012690641678210729622732964469287340783812606657223691129654298238674915220980324537530777559544117920168261698289013715760892509888697443881908601976727070356292829051762866899915373346942848158820581763278203158802311328846328063833998918676177401223120139366894782321807308985684137106120187029691774730623835146426405697280383608187626503482903333936441370651305980539768634377777069981996718898999203647244612184681494550284333251518373052973952996544226090132388848452119662887047453972508990587895993660905045510048944108889747047768108078511512100480996196997604064936740226464814563517851090326181443188640479570942149371818993479398463095602030574168285266888348570883963722655015100058127145571723028138792177710570889646943011228272293166838174569394298751435964090087363459693758742999047834988435082977840204346970142624365392727474172659076491770962839052951398485718493313741284743275218370095248469770007246293315343131125465038288571788091146912270368694976939275544097940963733854249446140057098172419362288634479725370103076040761533180880226646810357225096111648460150122550790176235686513922818583907033669987671212352493192925556837249984013664877119185879958957418267443470480959495054450722439509075259168769063325162406554684985938770534954796928468740817161736401467192087605191111387658340950469782700838103390618517609463340516991105630832462776874521828102741396221557926843254226433702731967401897198970695803258435603397876307148463577823300315930027867438299708419350688448651170364584496447949153267645719976745788233998588491984493079907376614641686333064356104064302918094316366153301113217224712542709196722416511289275318167776374788428448246602370462777731422870060201834830879011989580299872692927225403963544244463086731696242650476098320697761254109572776715237852898816804922859708633956902566975507001296378066287543762523448659131828082239629404293644917895316651524879372395752675113545449716864591777793788051983361554863863556492438072240876939136648026808967114766389391637379744729983591121536293780780024159495186339671124448924766302520205966338978129034955267362147195703882702197375428181056382129522175994002482910220491181543480484491928000531226395847172277453055561125085121390127310915911666036834013061527470995300193463401282179092752721838081792172311173175687691247046345827972680514579622712523892216260227489063631601432274929682088654855314706266245991141401190059721695685997048808461196550746329999798631337938111201794519044025654390985126094415638547492512716053719950094818228591267537110282748766274362279958557441218642734298160822207065798650322449629583852081585903391808643407770206098328567735519275121080455603242041333534429367830389697979333137650983151839283856375978683755031279197802160160996855778234069060249081862340501870207747132269078857962589500833372139464815356054012030606832316701797929718669924522815413819577622406141973852157732193832154934202142270994955560417979153258542884326302860911046332356390542387125196919062016716115654835651252667468025371660871553206373030416107724653461357641884600264356392299498959126851712677420808624500892976962291527893444542187029493529512053598003907745184825006447486017496535983180263878472008511451437548690262586228585604018536178998638949317238992936094742959430022000508030670353556353682523738600675486197667706072485421768810751189082643860391046428676556867048289589424100316182926243070869550463236745028605531732661892774861528737328058153746156401699003590859751432024538530712092554779043620585498014459277586478873989327662175166342889066633222422130270680190859052543961144771319836719281319713914711833049179058018559426887062048089599899713893351746480813661943744948444295078422905420440567202726515099424450840475034464587007812298901333419822641095581867374921076417940080138063523017000880149930374679907037812438923514241881532583045476237359741138943724415264816821381233115044488606804886548015455320222442300380772284743268505787550190486836974853600899871632537282103699097614018734964494659778602531538694416917282486807119003967362610747998591514702568061815386925762730820963018624189552163873261864859578154696525955357137515186229188277515648263949388022708507867652795606175710899797824885427984159964095818722629906136876431780734532921039737938751160305665125571108599557811817737235674765066262467262215447023786836958608796876810057889815964545296571867411879378253649083993638185980006388771085874864269286949372702619537961532395884448542708947250038773972718600902992888905045224037405533838618405193216197210944610502912206938013636865408219581875868277771700419560093121513825813416761654231924516603498499474902336106302837059454847395366108497948200681106893364145304167813219639717304347060254904564048404669654356668021512623550678644305289194010186409258891211822943441406813207729095229993139422304219398847379978767768133153538581065293686297758243083926820805085532212678303454458243524139297820943574675830819084754258587277362698167767222286615528087572395375276414042223545478276572921439963430342148524598944930991476096565553113331178563068891460117358899711421711798933861091506272145109912165092434545933221415731459579439987312117652449969163324135673600961563620203003773758163741969077272215090337903329537379592672874320026238201803721196725337909108006349787896060887358214313411374272052236836452869741140055904505134912077629864365636988346083329811078050062145394388442102126532445595665897696618707630896970196876382199103394160853591193843086001467189857077369767684549841503270651691174135342088566824879317769438376189169372564623845537480719943683087058626067157588177751243217205401599864692256044774878644640506337239858011444337295135946883729409717605935935309725258063996063639358366642610505872875109723478737672250120473595464131205926133835955087789504994639543852522780803225311637712151649729489432775449337657917427732028323209708240121364138052245559361140073419728055932603271353932929142541336817657835766616991501446731369434402550436429405255527435788117760896688671033518393354782727810301582136668081556872954506842392916177607492367877577330728263918291877686657400688183442923160534633637909949124393674700006536151333611158248648770827198602721039137428390855736139804011308598111772510539844255942305440569481263876983838223631114931373633104396244056443949586651456222406889143181741467529715360343019915377076839816806265418302437109640345284264950121526001922021456289471819246758336270611411313682763537988201936286666601383480869505205894121701558188805817391148599688570492078450478958782623264759782027608816949938434440465145652688166783897582513014686881061573039434737884441688337161824206029942721818907391110962287724753386335937610765544828949251602001445152511647748714136266232235803156721711409209834872483969264770772993093783594390256676875119372692439862439021973984145510909608971134745667784643092402202876897352981779889408361097545345671183050468790759638311382587243695246316437551427612962308440400302876549884261697522460873098364646437325340703048050374546211710885991380549875665661878972480274908445090646479921928505394446216145504926805877273520224663467768713838962087769925717629078207089125464774565354796855811216121660533399121402420754556733416855201926667894113569836524807559461342470957711388894223343519643240565502206996991225902844010243626248499642805622805691081240918605376972536472819022198942059889426748760325382912574741358076330837744625221760681172781451075914275630932894181778181816178472196881400656147721080088026207844405357092123242858067213075296056165122902877262238918779691734810331019184316890004072267873695808476649130310142408059990094001610820308269761222481627772098651491353796936517064516037437791706781014699367636066644204915146696629919175835349564389523759202205996985818838561577824950743428935899865965685964059584184291185024864499229163638746700157373745516783969129423668022519871258988740063759949515653256739721961697698191946766461261858695510083226785448240496380341676244176962503132837105051555641497479298519453139999217417816505255347193793969086753871710019352028137842857736104668891034343705830732447716729517840353224294530454031859510551614680519301551981806216727087767561651545421350656006795550685889299982322494892308586159357936141890123408610346833644478977801189831790883695778606008764711838891336405240508047611458875674117475491103335510227291938220937367114397295746709534210840743297760909850026876853355601274908046505500700780048741772272870834695292711038391595073944249002970822979544737903192623190187774985780198303407918623282712993561426298578770207625215321331907955363786724980833583890195972766352788946612091139275229501702634555249576917770438755064271398381198076644492508246709147991976559018114558209499372006394802572950094105800965403119015528776442401566271630417573890585248998744265024433916119780850563821896052461141573940109720025149769575288651171957958726818482668841914672907226008136182972136995974926506059145179689681575390115595187099728179426249698527391608378113898890639327948765077466281705552504091334101557001170221566094312627478848819667918456864101928595824754329283783646214629688789448271452583710327086372258984286839117262559909599452709492189778372280307722776873144919083373486879412114189630714919228661673736009410461359200404314346164382362817060867804802116883623991141490262774248069843035621975365028897156293392070107060550984088861205950575911764400766510820107116803346502749203637572436966232164781868193406178557726907605980790912084748295427085267053223902979165547710595345125468654741476426077207538647464076769455152784250901439649612158697271638842208103263794232180039412273188562479469898823371914645109094058977666371447967420248176233920807426053289458460006295174542867076635163073285860428008520851373623716022746722000509756929506588710551531032491660237761855182015327229634954433663229661173863563781778307340316172497644917798573460098844389730734923361198396219050345401816733212776807707604701490187101407582505895436135493644110098575516344830997959074054611000862132149642268075564945886313566780843485959514232054737407413124929685268948886514699755142862265394463507580954065815828062774197631529065628274630150463105142486037356891268462249834660650859643161097666839773262642100419464602898169823772276413882705628641943407030513648598715494119747271307465869392229045828807314581769130631478928271447833828596554241135223583729666063638855675881600716515190475842797734650412790733521666729418548609350314374190802406775236567776694617300102389718824835682459252510188225705802092103836085581742978320904255343658419553005910447256162276193714002444469004222098440446854037195399098796080365774943792645284436967063935776429697917838608652244838524622294350366457193338361989503503337504186541494512464097030485411887329804978441854141801973732750110488059113878357170008648638615328296879411646209286470155477800654778129512963077791442805005570393396348695963502270551042654609658655359780402841412463110229675142060865701541851663704698687126497070541193517902220671145178798246941511605861140582834160716138293961448764712540870626244041682095577232150601135087402991491404960976089919983852934575878058278260018454787654630456764645449646628671870458714224778004742148445721726075056987180241934218127988363325884649909678356865114845652109250582977386280690210042944568310546838971477717719078299320394741371710787726520005207448121962009452831990777034632546659174469211180531627780051410443803524211509348769847991420249566066897062862383156153209401237702025776616118350730394399497163471172608340082679380496790223327899387813802116251374255975972449391195091852937811860410722240803329950726999536198417662065509476930341602007727678012253788009312101697983685291351740757741397907603303685783959837759803858249069743521135774251673005788910174430986751992401728932657127455142957934294207573085659385272281050691796908569515220474594058539511880376010279775285573933404265776735187643143969142437847932350080014880334659101427370392452219181623373028108305985532138596853812039191701113683752194662617578953446272406313587909376052952442377471438821657032360793903756714148224103682281534642176689866797023470745236735517959533097126038485411584134861528178040683138327785858619064437047770304103579067950526808818969347867726729922702009388786037281128018333860889077566410144740901726207481473913287172983625865672351028175264014837675849171556290462054083745572259659825554332694901260821163839203599493556655969351882224842764783929723496421013490233188568751214484894927271761414481210511205335392442721483834442241366121401049118809678474650755938872922251546406154943519288346936356923903678435920281342085571628380525438737282471881388795593987694642990037292410005881049396714174641229948132341830308907178597047374216500835000564656762907237462525844194010983446421647572569208195432912777926764276453298729186245344039565763655814875478530234434278648063593589928771945215207260393093633187850083508060917839958577609657361202280572260690014116878846264730027164438332720187962608044894591147126410373758369816893678128209855463087095338766417775910068845193448877302755558066040954678150769722908959346078536568130416041962660779857528554328266275339430078724215707714220262396900416295192811255095020118433921486831820071601681546843650388599439407770862854591118063192845364542474746593139375887691121180818365770293658211040411316139044282075096350740839310175649896219004752477473880285305613837506327884190134568511341681410109293844055314949251424434668135954264091422906459388782252116297905783584511315300877321219859074865843290603608882061841096023481287324647973489646155209263053603539366651543427661912380690092131687616371536652380993507705790808370157924350622783414186231206991527464973599096634069018616906871008789069389211322891859392651761630295765456075272874240064560592744474269923582825680418324311729749829541130069668806251094678138033749581614085516258956274361675288776590224917895669523803462868461937794053184617695037544238113811910254715844654965125004761051397035153608298930030132821717400548051970551919835091245005568187131441167659249899789594766233744434323856454666889515053112081404281960951339663568456359568088807394489671264637785023265147233767487058315733455735023172152929183576546059612925132409651777955493842299104335164322804157203012520003635673931615327267702805121742065055617063832437844301654595509950274883323372004106937474952754317587365616039912558070678220496442632366375843529914267649472261237165472414646638420911746513787761567765118526067285156415353129394649121195848556139859826412850210452802017805660796093086300953717311356544121088429910227581509767576236360770443645330900510673995427880338366151618300587791553095233672678445519760043125657878673563786621990509605632089884251824380939497292565485852112782492315016640505824395562732094425004894718197012883880254815252378516013785177630676926042798883821545434069184363804727574153424058049817597726705329762205232320561362381522444457725121858400064096134792507177152069481096069376389740308261569422346977428947193954837668567635359170209452796698105827064252045992331353571600342488017048038509564234851579137985753638728665130031236091988803106701059431490148729360883741657418194648716030466830527099874448499432391454057228858839917814872849715557461806314991524299862782502393893207743089321407515828811502570962630095324693302138549243533837795444871204852862568510983720776952771673964407861823967117355397626893717476325748622839018346765428695859748987909593244850560903537524672701720918101449136081060219401142958513569340996548912922756119392767792291218224457646194240366017714045499527756455514015850375184548060486804781700512207184125767062610082775371782642903937035503122216848126910126832543341504906236800063367312039918885760046173274924449189355925319938850448502985855491565832666184942991810900598526872191959427865571842898554304982107843176918188969082863024919401882700213388091166270123907264800335882257619443739412791202423815488881121562093499672646364645512502066834523343791652886600506565074157133161273040830301011107112955823021530537178690045821358736862957416612186283934510984573387965005530443070294513772012337127599439172287205646713149643301165851606771680410015736552988871362701390470737449091067990148390611116818575824031567275998735815496377057814415474652331194322126713359050091681058875624509576991549098251034189948398401639162966826342151944179503716465980895632910652438011234526561484109807473134274514161549241383701537758410123677222461478649687524358551182271951631133125812058143949656943084194662792945180184801227761798780198538679501970788425823437381999830622229669733683747820746041381612811367504444694669231050235757399323147977487347862514605139389469785429330279041677342530682991108625710732312226155094378796882368579691247773238882746662633173931884889208526176568602118300347615015504193998904608971537304654245736681218345840513403456708899860241296451448028567718707369320622542677359575379459467681304188223066668842917451715355112318103267254096832778934426660609275254142629421803777538973640205050475343205711377580500473637186766762338046080926601275608589505802001074808626291278388355868251361621373333003980286686262338040851688667225997513887294551958951919886017425715414810085104526673366061876771222215509461749550439220379206396749288087549436796759038640512038860817130343872922268160520485015529799649209578951047228906519635560039006281500995804643549623652068353024740262688961772370316988903174407125197232929951791573320118263555782673396604331799328742812580468790342479962062136138779503157068800200509427659392809924163577691043812120691442509649746173411433918277625901704592994724560528235970697668225359598141196745052252788336608188210465193723431327754626217049482313158662390318418886065095339130919286518999579887023256445288628412306872226234318477156621876020637575732790014180907963996165299868405185178570196862743023589709427325755787715221872033796942138637814797598877206966143580327321969233509338801556449408774716524111033666881973227087964197872763088888897362405970814900108302387814979553109126816254437311136620367463596918545598404151447114104279018663428012350004503887901295917174548985432336222662638245309164516221214558584194715212580052868756579165622718326143266662722598092481486614000061890948039244417659976393544710877853241893352149194160412006018316214398675772657653998341072114664922088248689954570281314946441186666155549669789285439986681098223967191344239228219510776726642016665840766782795955945198917849383255828892237970813674673407683381928345654538736576007910249205652729845549393609842098745790382459555381401943891037580048083334700650840290263189009271100481522239449735928147015885322342924566749638366560733867412681850993896489962732321826643607752631215701533559055824819642488405504305979054639278087543426950016687811361029487659350179921932931742822520662781277741391506862232111854522343905492362272404584325769369608500723235228296740010708696580948273263858791566759121717475333644061664561420026662881114012863764141898728876141413711016193888653158418015367374065787806900037193969883117409120220300971684482546677370028094095451843842497844902792716480989568229552490294171613575554680203310448031950769233872107137851949720355871577582337825110988586332653387006173873560523988397767892271620992857340853283566647931808529403757148120446351542249906787001664666747917019758409585031461268168080959840098050872178459383228433135094916602487462335011842985990517041424216238550781481226617839347414028820933460637263131859777140361058748116628442721895316741397157710200110852316217426457634060915985894637120701895820182330294071118871792510552087809775860447688456691153746915548135346421295752020658269645585203554759448198398809986927628687638704972484715631346046401507018423983509670219676097230149153202476656603320770618463734933562866992084979391656338107723351738589071597647680769643572633454895713980658093148981666208564129829416224792790501374140950840834884427888148292326519463778943845421101254593594426345540621818036651415624722635218854637856851999760728024738216058573046123918422444913713634629236974311755892873117735483998929096217711835280113892491856832385191716231304991589174256708618903912293823967163717961844030282361088761903765200558171167367051621230175840410783515050500761216014196454081101534258859119139823261627362591566741393358980995775155059909310797613938937625653600081166033884274414290221444453715463127933585753111268311547222189962049076450430816604500075418121386685457523927609160208682681737563426247596812066580106448318981953844254379094702769354449890861992158296255506498037189430658469498372291946195278033177064414680515282390007927171933826290157464477057156158131119530973792185937527705164217607557083057154205034987702413861731274271448213806087149754663721532450950700409543080697769358727113851692522363971532310029323460070686262492971172808600961036914181842589511363562387068788415761555387015854508492399564222012547308292570539507567673081447297112885899329852567729644881526456695116082307503027887095804794737420104900754568421041207457169985496504115115344755753703900677479090331696974191920885415686914740585837768565413665262933665995173829109229564351665636453348899917263464411977635685625431904348426835547029166754294032431681018950031976595275003242298386737379323579755620487410163300163103545088647237984089610622126577410220777032916544124921826082510595469173694129567658860720540814296721523109835255115598488914300137254114983075696514460487864023726679745358153113768808698318434726501339830661673603055580886147488079031103204475693895104602344524177353549011773473184531608614303032003101880937406516362353323167663290129304093323923968701832828757196244381169119700294288256072181784318279012986133575779437310247698609703343575157024084294418588391469953566089281789917605958250339359449934384406837543375207537120392968968137929470134691126217288361204650010740305396507620263166678142339746295984999302622250645464155225333127590909245917966643742704240984946906518471434956946536327835141453760776523155001805817887388857450915094834645347934125300003447652085149815439691625706935011363956279061602273776575850072943714039111954878870401491590833595063637976254906706065395272020691886110775692898611672649458648093756890247592734593732241880793868891405964150448699647678335535146731538702464580843767239198305197173229680520157975984180152482650571559433545281291843599587238075145913421878253542762095851038783966818602968233569699405927383693887635312245771721065640759474761904932961991802523096569665936894132501609162971800826833342436375677624220597533747089631442355723975445938076207276365407814371177319530645279170507968052829120435376028009921738693341227040879803075327254419368871226253130865129366253225600956440471756368817849689376071597763362657481094159493393359509974299381435309911479129765362305329662762363445758652996512082736178985129406626452760330513798348352246982400979535845743972736737464885352883669146756308135952490397931770804951500654181813291659248294412065521309183512572626073601552266766768993443091232139980746606936755224992482735504588675299025146281534723230197019798775758408598795633939349593244563243912358584525419516733669175662264861176123452852168448253791849288551949165224808680630462760438393314783253362925286995515635035498997593242298854980118619023120912516062294636283673351965338989675828633195742642541342789483427099717715136849269879476243173127947476724452803308271343500331785764124843886306103146800188656940751692517816697664194747776817757452989750217435465089167108748737864234057365822789992189959357158805494511563208419318275957689226835898875498828294573857748405794113061742622899129766304782043518692668978336878091554216853142472014800557680637636025766926959448782516715631323436207212300794570115111973053676891345846975436043429817394707018569819292349994893268895741141386587499724473489900665792480077585468836777348990817325443854129458833007839926612325684268848332623333990312559114429550892429320984823047702903944538077846717371613162199562381926300999436690970064994456349709536312276895080060040131081124889788588653222605960945599002187740164341541236630782771673283008063681422867918081936007007526494314957228008327240583770079294427897750439164962612628641867926901972205827296352974041642583559697654924962714680073478768614967877172459077106607626078340547409626209553503923941395919719001151177459500927918438751096617958053380625834850560784671314118074298396340896733504664550025852809039031901177112880445456380954995391081681734092918090129220325333289171656224179661812484479709105386260507438817788871094035059585663062803322322847418770951178583692295021857820066065844684686063308905286033589782927471590514025104376305039558423605238771238931793809666707765974340017368218306940650506067747785445434092859450099617990685368047975008690611252964846447593131814346054920374101281164114586253981681128582931713567080754039293477976307065579533139424046241785298191030766787990946249719118293159906602321083185343011311672469508280011740237982814734426422531861391283881219637075496517590610746769469213186323140563064496685782234738307333526541277164763141474226777729943913689764928481232913847451497603032061595667628959482519272995557301770567140409889700539038450570403791658300654196704726826797160000130627399314454959519643086457038318614344456744700464355433011670362662695877619451040969001412302525546484316742091880355369814630029780028835340175353659123128718415838343301162630127955303660488729136470160941384480971236111396978182826917481272887186652317283513066209077428085252756657649771491171567390162267921921823095498703187475476359609836693366592277131318462862595281428174632133951309470506491928500030578200502886016549504369330479319296432412062353755256189059403122130990971240000457161884017146079454402220122115951893030239887787111261102708618950529854036859244693863215417566636111013914672265817228202076850471716034109122124281612524123341680758590224160226767756185242683859259457085791050312228486670499996644841766040219650856667681333988682479817148582972160700169910167079337436598351302047636434179313267548554520583089077830989793006901309101880581678118391828962710018083652706217855765671250339156291906720536769658082385426575958075285800039270555202800415299492838775068498230657038345406478810471973990692845107636685945922214371405152412136467939671946088536489171877447715656898481708152120353176020879260661196027066227541859610156691480587032399330997218353991974587581376348247154183692983033148983591675370065527440682269106178163316768504115437340428666262687432827911896104768337094748412764913568704389478837013562758475023949258317153579539462559158340473045781123106583380165123436815163598453249262512221246173261965089443112932216174281959098166878848539364741739485995556902944501540634364988652944645815075889697872379473101631205561631145099798364750193847039552151417964613070140392551525158479667611623390124018864456013487765874958258418273564246837827146726919164070905380447487412882155452666105193574166493280578188970516123400665227311089218583793479823912930377400865871928656216551865535849550261356048801559699555148440076826765278803182152857305191424242078581272701997329808856249772741080119353236025274879297008820921346987053169093765781597575340668209415781453648195386407204300828456212273568895605144237529886501090298815098859349823204645241382425959631400908328119077708922693311693963631460292753393969199970100245725129675338890471013962233373281539689633968450433521635375945672726322356722259534060293559231731298635509679001716659267192094858201776824066904550594761980443004361772015523072018867223566120724796061678131909117067033510062075823522793889698531972890830744361612125675531448656796635129545804797204248778757189590098286500044775251205340387702920107334462206902192857241771365055233481061480341951853143609649096317047695097281791552794046616169464642362972153093999181473153933435958576852476358571900725355263741716883199682651331095132711882902397119615858002067913390695324362938318417486108833768923306649849065693283307378609200600493120720567666758580062241057975774420058137597694983575460408936290237493326891046214682892338743983716992950635145451667332632466890844674879095085663628883890932796936620112914333391418191441196881769639006467615610269158295963470751780439159461061601789883691747932834996943777524787236167757808193593139989365401861351974529257008882200350310936877924485750405022590464926494912748117468127886886529038523536920905615641667279365307427093022262297322316803320623279074755745480637389835987680793303511148078406892984796831832619463277017251943819076280533409654133560295128327416480533341318709383214009825328035406436698394226434014275973287332369753784230623303133230362479593388569140745105557776485864460075818767755903206558866669241553594366108288085815615015380611912450256448047205826869843774693654719126788426236464407285476889517549049421347365096846936559538730078795139202667371170574128038705592887297347950687421197687050418240407301641425011465036731190609213714846309187273938255999860076477194323011404647001344034272108430668013644037075795957827831455960604804277162150749232193583449115573920952808534726054971990589747328931226359267381633374588764307773017839499131018309652515522847486386637138183061521241202736241748792284201400397681904418003879256064046022113160416674586772504857547734863717211695184669593804655117880259567578784859025563344756325755075909949650851549197043922432520829058524066535312886195733460633742227498949171488253015781219643020431655847562847546551135702443950182849450097961681726592323106951574009682746149829084603674741840038919421281598105911332709110226292679929134739935189060243221317898156553097284997231240710187649649819695146026546990299439421888007109126407724417711149135213226178491710688957271385595903545997305340419722417791681847545559397003059976763967034444932924516216140532269120838243783910950650452596914793666988297557913465366599251659046916761947230540354397712060917576010336078849688150417817578405105738662437166222179559925491736009999277071697074286221694563183970150985594078389422128458528668186875878672738139049324707943571580536203477180697937016570595596944882371905677056251744260512612610563027045046703152402964326701305006354338136145770300809836794089471798674712804427402641716491521945702255984333813102110553742217231160836083364283151573597629215327480364363222355477155916139969324122367934887617512200539257676972698555414091451811318990221787596346108077920966492495719149836759180812304609106326258624046654237887063523320822209098699747375434663583445965871113054131054267820356156285321283669539839074957319007505962302523240180351425360821206791513109288393899340574655205042381110574877873081726473201350687358235902776006153578739595026173552270727350512768878771295117745839457557049153575172644420011893985784853732124423129522553858160529867684830946677087732733871368668915437583402708097384794000524562835142769804495684457653741715729442939595647714363087697351840185425798567083055480112952891962226471700348878127496680785344592656192167932993225078911038213935832424130134022494054906801607351264901765594503841698652432798612039605606228182049639280294965363837600389262702435571918396564967405761995730925133886200889155887525167925532369628994274804134519457568720789587519050792141585310264755448188317373949235631139949516762299968014093836965783683125009298320903028847267109915893553668248249165349863176048816835003772303735248759619218482832174321027365434882187759181050776673026709586161384230916361530999634253166067455110441603222172766614919225097202130113455532045817195318425366479033585795789162025728258050420843709036786747022725912509807792078889904082522235269423914617013606228665093177021590462167029623276277603951848007450017866435795494308256914325603916781552868826553564675646149596758871181146774391625126893681430138025436333837833172686661159618575316216380526806276638649417323926240460262094224545881230372419471227897582104791656720945209529121791742143870626928555573243765492469123240567714259415354694814947465105688702872964024598615346816630739624207979170193720361351606960487708613836901485231305278158381292293428196352586417388379741879435246887634364583499286650886114812712107934479028616589094272523763465636197124737893102404547121560247917054305955775217640292791687755722594204595096887108380200737529116647478226767358584466721533631148290501598852043846446156965699212175235266533013062543089729554388662593994839042968048252569201871346720200201434891609129122777751173812743364732137362112986000738384095616479958638983461793918388442086370101584977872392918531395770322867811409770963602997750613775980893531387004962161119522721992626522942866951534121410720813316792198888249673092033994942420773844548442502629347766456379943610782064296382328595534968215883809746310452120187157569419161171481725317648032850844521110575399468491807068220027608723980639655241937187128658513116483260053488574120270122525324612078772824696863756830228945117757441620810861765758858263447662275534381739999999815239264271389808896167532401713340402815583076463520159611943405945810799627744626642622173007502672768841407619213359655048915578015721176927286172221122947481565699080538992068503057223431859456765429852855375996153095226512432881396607153171227324220236728228927809023511206309095998489721046298663495975264156705805212570830261705265741894838628178043660327682406465599681799258511326981956396769996872676348597230112614875164265160163100597095043242816188707176376773227216710120477368881016881795042740831419762535798485487493312634604065797951750642287960989060660508505927010348241303492759952632622955510058729572312978265807224992615642682597254571703927900959184482945964159728099990446258490511512971831956000053767447694528114133610728747576367795947428900019813795682844732512184893839560082766373003247386013657163735441862888527195096165756589796704202460411986554496846214891506632111892194400683949779088621976176468676615167872751152732057996121135868819200420996552767616384376786549854985884906472371081166166263396124496255333518340580804202088911119950358397507930070553775005501671823511586612698873030557045492802652880439895822515276969623003487486692528183249173915203466635553499705762453548561757754873675462608623806059329587812462963101103678943801333968140420121327927872401377389178861546172940486592035811230938694588400670799491659275167893452621107037546529567017956674095021392924805500433401511795987959612041052901695235041433350709516931439469807815107788329413606826420727687769190284491301247567718802710286963842726145675942483622305912319319819593511462308618737442052130020240383842181185350732601035720691172998366170932254966037844410427129159624297133174591006453857337747773443339473744029656976032104000714966591854224278750158306448056752987117738229745821110325945484021773609597023903402437938697922022885168229215393412656472636804910054927107704697488848077699498743058839245113797250522079198027540891020060324983924119314195004568004959790497888655309880444109970946957408298361457684606015539011045899478055236634028052721665018020187294012281404777584931731001653643227331980278210411418830400452465347166380477618384054217648616773569083052515676054268129068847147289383935885690673256397434985942811320181456090209549226633709685246185476198902218553854713461732814975634446636239989574004261674887316754528822265693361027451230966546626527410929331747012468125062902326167099695244932149296688374604749353143023860983465193054750712348935123392858093796436780034400082760530845288608302170503214214461784857232924177227013912170375464045970841253701650839618207721921803529561338687037211805878069208495024667510448791921217893190813377881928456529436881995479167028672344426630523362319976711686774697480901055275892257126660580875626905080022420346640200717980735405748845180895488348867272717356372561324857545930014015546023745239325898833571652454215830020092711376034026439748368428713644316304405893660363605798848686549778676960075304006169291038224955446526935815212801837840553906324034918569884296479746268383222591497293363880916099064318450102067707553984692238149818225356195531268254876722104510604850207113791412303920326696879837379405166010384497397209067976877769981689312518579110220159214295224452419566271561934466260153426681808793433972222272646775156771507781536911821915086996903640973661884476888393835587961631316500807715937448682671384566865159907353375106048470111238219006659287031467731384806379999487054899297562007132530317197061475038649879646829400310551302640551520785660706576630731490799375737580210302902100279427415832921539792750207819743009115353911540098553092356026214403357684849879585794131566746706429692598385323157254038008995350952597270194069000481203688458792389147660320404441921595442303011661307711786033425379046690468717576342221035903598753131016665831432297760800390403851015453655725969431156448538236253133084068363142258269568833277688167600111170228267814041487328711887980923168606763013314410964245428834153137368887140103598488711065278526014257130072454082121103737443807575313551493097609321937209921199229744261569964106548277652371598950042936948822685349709654295497429096262227346721485515170758850166170794868492052033229283214321805601234100738265845641256997149209421017698823161293186564215260660854747337745902495657570173613890608170142824811199701490942892713935568400645279799545403687005863483166828491049045384580578020944812392283777818258417057202061508088706296634201999391544545961065085472622338082034417089421609931009486468067790461143281249250395271420749480819703158208754675255399358255984075293497392912820115364159146824077604304199680666103609906144545350231091564324264795863254104566820841700318290530598987497042135500522589728483465071574256636460838252283085338483425972231869245890148123176655531885454941823453989028308118845007902953459084440222590612171933816109021164220469100045755868745880171000333563121674323458751962314668704713377201651179158378198957080889908709742610252194911961415847106266998803100005840391466349771596942171227101558181560970277070555499372777741224357094254612716662946124623469595158491553753039797190299752789219815088847667768482927281711499746760597609653342313555235375450684327732865765908213756327033596167578101248695511456442890372063258031213314571154589759295678570378945190205490752731173154184154057766728274498859234590532829083081256854311719248594694198816608128981295063180372480013900565708338498033588052459928783766248773777100213704723458719894743373073925380600667644671667698337160018060262878090591148080721764142805663124928316675812750315457371760357123513343530230852115579824185946037035137264826952923350686998780290238177304407201792722946217145132478612023701908591156540437808392835895606133438943718899080731909386309205992221714608580557913265903742486532903327809746199216410595189857659947270978610417677158346328214188686563852101347840114563726778820098107402109938725442655212781018917582002588822564516146319825090904362895795071262562160425587299299625917837284828251764668645006258650666128413987356185145136191803997736401589260786487290587554673723897734210697959155557068121331185804363783787515047830451950941110589088423647522960701580014066450213485634121103802447345075790624333946503701247599117818515789852912200047162702443571399400458629019920394662686034616533057914430216884501805432099442493562448021742243469974180554566815042560767288092811235186388120309221287227938819922421786080046227233702535460912277978442607556850493822136242743239122155733255938317908233676537207894489791949690199268582154825784108477900395386915737821685190912822153709434198390286856979973186096465214920867059078689018829790521367755494517324696413716254698823765530107924588328898050489358494105574730861194483720108421338670238144126961046502575147364037982324165056191679527030982241215011235176882533286763608684407279262377653448347728341070229215847110380640489037796348500642306637755530191064715540505448355578184370607428557408202594409463973726110496662535981163272111766493306239792789009538907610601528503623437685771734481649891518591746143198613858105643353173688523510543393765874169246265280691398745661509939897339554428439892627595393327586715666376774616080148581032007308882892591197181648666076085513894559248823441979239478180621383774885102995492298032969202426242717343109397876106943842310514536730472260118999474856529445059901926320671515865657481565432200129870931577147749203570758469098923482370845865307284403213661407724163811548206934149153538317110203319050580448295078402360855288517603757448846992157349410251422422913964133933055161470446404971183199704933272586797589774791601516953753547379609453938531857292106029339452781254518078802504262966147385272815120894268888533944275012308761844459038388277634041833228419108778046596895193539844582932583971262896585012909552729818639072680528463731136593337515813877555085218032042866394679449948923439355841459415032167815655736296844858862981094900637415051498242979248736104336899337054247222705879032595828563864139603070240661720859288331570515638910937646719794030620696727723415095256814103229424559594312330208547103280146410703043800472271456753184033914906801710542819752030009369402411542671407878988197908458028435206104622613835226714516554222792816527157092881256037658847055936741001089019486174581248870216938080062105888311316390872162529632605038411410076333446240586934539498833263336858144409273975364436233205019068079641252895847583653567686951844557209728038509043263173743643657660957599484996365934222500137751974234544928528982442840651692792665813889015967307435068628558110443211257990795634368488928629202557936818131944210567695235717392893026825014423488788563958269118904320729073106973670460690275942150484747233488732162113825645243746644019698638533416298604687418639674262590928688503160662867905626683010113174688557761600204249392479009869558550789843871093497464740581898561176024681450317580075576543554894978370823129786044928518136385514498325161582542065932227123806066381601654501628920699514370066485651945864617061561178212226343604917875135217170783231590832811585398948744898016028632965975030416565691111773575355085266626887575779146436251267708401904481097515723348826378727470455360165676913830769175434054567578545315176439526606663732474611248499246044166170150433719873221104263445921069410087103383403778403727903770446886037685416607333292209897128537449274526424925668714880075137058116448913368560654380242420540784310755381043312839018256037172275326105008425592409242384716994123814502097395269028416260338003511532904756443352029227894439217545296142075050348308220422212480940997597378909028045008267288644670149239706255523299999325423334863040227982563371690559023627540136637010837931077188206486848016066809700589407920889676037548783286117601752790221346323955296610019695609035444095678481236005164900790698562714362704105410809747378396299665172313212676990567903476579653040442278823810634784198341827148747694340942940092779360666286261732214052449303590140275607688785609382492088148274882899849791348949770315053980730786774374840138655479883677112058097841748414145087598986827493514505760787831451844582777759198246361985589657923482579387176524742400786889627393666253989882221464323842430179924458590591658488541256242188464263443700884601712227494922022715586525467703432258949965186127605495555187312096161468318718858848837763877987889041327299382490164355488149011095831977230232561303619803442985863448003925048676688640347124037293120851530616261000508318310708946436841895823797883304942608606600316242164045319096459794866119009406729849752271254297869418826605957554284791238060497097919797860832593016117456000774564383376290848891227363545282677214164576808391380635312461327285014902124936571623909335499284897061338275204468920533480605374100728869509406851420469723839162556150543560768852514431146290736070967381235386079327209458077031624623995041799619502868641533171767864400979642120931096060194170028600800497614631172685046182084179728709479776451554440676447057805249144187723325541627389434766819086408627802320155912924642600296062113234981881332169285335443302780735101801384409487854191858771954610615041253421938580827296270859849452212510491594049857174008046150284705339462720878293201289041017974011605876487344194388486957625719817622693494288928712842704595338059846556246740829175682494396214868971050427836118754981482644708230999830138533062396816155136203720422872702547683837848904558431819679173257022103735192771959375866314654382536717194815339534914279542504324761336378119117133528944994591109811099290480651707313642443234510632824265036385634702465536194023780187355167382410322829367577743603858977576237226845225783937377950081405519864952726853162208730787857121439659827661586880837319213061881747950188978270401898685781107415599586207312750876458816578163626528491455878283418330064668487437225391110439480699607518706933894967299038913171873643211096032858515233705982639637528251718338806548581804255494990435367226517910308198807772946806516448418367749975620658981827116268462588860272906784896976156012372866091974005205055499031632078257136758774642943743985926898695066650676208235560668473252652298041304474411807336133723554595616657677144898155692768419450180044719878227935686383254334361946458727562890944540540120337039037616459957264849739555297366574739010986650850045688501008051194811562450992884331358763156654070876987605315465279944268149269056681473643050761881034562410300903864042757978493984601189655993048204342787077901847593634443584903233418909211880078269332270465214740005103454746182303211997738157008459465087325201358381606593729048420919184304904847290902714818254577651361003262912308914894251382004754934133570044377982290736532868099366967443385208769651084506292533922268878800038631282011717012701171252892471520890010825942944414310398752489763821508699150728196915578057477342919376959767888404771616593619694639980868468955323732286628278321814436615682558089178782788274250089656067299450447186800735592174661822326214293939505354665558199006391836771156043109942300003682566813217436089911967049131781255436924851521123921271815527634957555092914149561878628975688901114367462199533461550445560226304664972674035167663181021014823400503733056891009239082248675073522317168498433728355731471177804421702037808493334554489004115624174889139123622483989205900535919976462860990691771025103691883267425801905062144569998122821067144092185666133718681292413783848680872980111383953239840706355345413343201750224061694652110825530193282872784336227820154616590978461952196253780386608782199823642271172074866883273688195971191369827875787373866944670891738052974881035953165738881388502851156226699159787434601046531841936625096435147681370560237890525018906112355816351466810938161215419818871732280903166577904267883697721014694617686302397239325794907423883914715590921769128166392393046109391727196080391926658613882815473290076307845308752311121219833642462949946388874910979548052107857655372936319569589484497635980568918168024140585388711969050648204572207910750286022960009008055662036695753757948172637299010342304416105923786240624330829438835919285864343281665024845480196317489520331800447689535840333077897738114474612662230967248752866752511322247303450806732340719350096275771131622308023043868626417691894688072618555035404023037802914543271066326134943001015415045128239028794546911432826151854526836990007481436800355254792372548814011474954134779673260423678490220725479886810152788241548277011297055409305011897040838199047239614140217292193911340313809787804427663467049377013675468891627302682138707252778072652682027548829987934303349770681250341903761333887129980153239210494081568502102086364013524361958264461037784180825824082963503965000415167272792979368541230468168728377890550132355582924468696407923754567378187883759571764148213320561481743856403080465986022479915592327081583789650439725161490949691800371347760312243010149753494313709040412261627161445279242350897870652522704791166845336794755465355182944048350992194083195295928312537482739301971351766783006745294272055889438930464443357598860099265489263810473693427015598710646693874459314805024717471959510576932444548166614578391039927608954178701135271595611796026980822982091197009258203544671786125163893918095478863667119835461175396685776024295711737794219472971286218058071523656648896137236864454986383865635746699749245121628303867407090370587027065883755773589732632303167953165862172251197843430993664181509042493248869537925622093651070371133976241529966540783963782788057927809938630668339915638373892027555333823289415859723874356663381728566607085957356251003534482995721538623491852036964256582202408521514820324156640888490169061734365651782435342294171804258665089508212021718660095461462976310023398041917244957563782797565361406290295124867209802961007229804528345287500733341793015221039687075770911376428238407191937366710162989067956527413172203846220996941954636676292355496659472542113471146256969421190461064431294348635506486161891815936329925047912136599196354888304271440547466450597621673481984785245718147820545100935898058504130966643713038686641103156387653945162447627325715773864317233460588234655001132807054891172700976680059408801193293296127176602646914275130477243129684112320002682072482689171030110011487865769161016211573976381407831302607321054402926710633511566851359477840150804487647127426092261355189746793490952779828093660044940377786465422316759940875289949901357075193568685719224768507615743009499988809707015383992287429895458612184113217024978988846370420558664161037134786131570779881930252833075929345504599907608483259562655405186969298139119924867041926679684262158183451670836942449832119327617907200715114727066621509221370907780698452874589887019850891684008128642256647756744343443252495587512200912522692704474841786367949929852508767192177039568742523986377527320016773152002160534009295959444856687491091692600669879368889614432680830616231913121552021947381988003616110946212528288666715466313949305690905363421835417192394110136170891353890695157326649438085243270314227624279034639247321417967209784030472808928788115478691524744035097575155578075812497152951395888033177977734948925243266196547210718153290775617384118268032058377229740993243783122864020220170395278361518721797361601624589134149053608393908010877628400014684010159944961079587092765040344551565609396285279020198483028156526072823064189680561539436544465194576623984332957929266124545441231282068349659175663048904566632840474646731281570168233591055636748819125646403273556762132994699510693245671796562487904645906794983809590458352276287686883245896186239911985363993077817234060717941028095295537699309313368254234480180450839255833082835133205480442246688405531929926426188848660294761146930666841179119450493735905014113407000039953259049147413703976459457867297738859585287503927379830582904871510099141740180891698964445594497534465518486949287301523849959714721906033732432603220813152449262499066980921785857119411098385953648739839046433071517065893458533727675341657973693826189871889061200280008787866024587266386257482810972610412304854533793704287668289726857114284131546777295147188179497173215333834091973106909535694606786928790543759532462790436238301624732548952058440092780595644921133536568541162711784176369019878032418650816633050145017638502134019166629264686115089167155086179138860703422573453680368157727554956602003954493015995753447493493160268235829685806141546895994403236666893426178953272925913473216518046832676663218029073940012747881474045939572990445912656888057918999943588195363972849116200086360278000646100601199953065534354074504874754195400633569596156123165228451675522790982781943291869142702901611186070026556753693356424040956878976413952674485747966202740955597998935576117382317102993504336701458987138794399338989814500126048637672262998013965746826429512675711323624114899385383366256540511134100199204496033000765545412468281017744843275978300734730699100884580856267384953813145218022605442763256524203327445176468352551917165684549817355467302685124677685577816366454291053533582972505726767453100681485834726759675107137320065913631824800280661122031636517691555782771848158024316110500759149987967843551383924670135546562012357642643262151745470889135930630867776857129298879923305233203847643714798926751092276973623582844393104398641536082161409448233938038718962804403746213220697638099088242219062907016819913328681022732245569417802190630004081120423806772961547545254518220477858510979453682640678185090961943163697013967140093917774001207560228869567413238420501972718674947207475931729404901031782666500849027978099347557220473908136732206829169679649992487311645741376066444608533506836577279199283830512239186191738198752374366650552825793071660868731842634359345838972568343313092930400074177468333465539532136999808978861100982468026241262340362290771267581385602082366119237857974981470284966370646366841244662602203757987820794988915927898203536985080354818829931246210551999173057270677747629093051567918589998115786966089739978487512435308213884728808612001702966532881716793694767326979975526417463262864599560838020539714294998820292669280403888011377383076535401194194648610043403160913486654795944738317001802814278776691646193556870147835270163868905882741329750111639735164436099137296913261291986975970916710557110132744078481935832847908173063787312981082064943264590194951000193379893664160737752077741328607754001579672783435647006925381431973857679617186237643263944708168456591347540831259120493506631010411098701995511415618461728160242723910642572285625708777626797078217078965601715921273925110540770283580582223011922139446241939891276784344535119781631943573732709674175292397524452893932241247126926681441785485556427978126619028370986602126190639426038179139511962379713891251512134923787449638037494304268792936081925799229822299552290673591800261575794124236681019581758038964967631538705420267930864545659287684117914194373176331334799090747221157900878734466544039860911375193309465644403964901406996315076540469149215490563621073989021802985556752755942298774027228309271411348648823408831451077996862138079247894500277662843640378792234297806382480259614869816476875501381071882543846331229731247517293445234658628084678826205277365301331363323474732850015363138397574055313742629223413789644446980075890136577018243085691635211761031732895539716250262977072387085661431904245499334090387809425384392178840232582642274276417039900198054933592065564599410846852726131515185261918153711271958449117223399884238539002956260201940549368958902906730984261124573856397417922578730676911115602524040661686059873787300407535685447343957624647483949659676786820430952575538426456310130100115271467282947405527230294971270012649444257827195054190520404798375571846992061111059011904756429472884702590107484589919747514503543972474612957204510102073128452706091315007798640182681587640477347402331807974266490505629234724609079755092978095871911475061456389710465570097589676073519447314479675507638836434847244400860488104237202554972809927464771809436285172187403284575101602456530792416547318761715942562066520811405107672676125437822036456569703849273442343718770202707202665875241938389054890155358239314861965242936313606384847947975711170182001243205052682471264607391503996068170227893140153943787487995259881210786171930837705651751646512919605705923588016470923881041089591839122173991338861590528680276875544400375133944805894754393752065197968031023723059258921978963915642650613900593053680772186556572322088931324216465024421532659143299298123769934539425123212776283698064136567137108542072368471305619423806858150244129341227318883913161563053042061092690353623213057741801835475414662925114365937813445156089218864950850237496404193265007750573038432683977799849552453417658684908514080754085182256133794669004392161931401593370463194053883683379279167280448667086192370918138714539581122537011932939554068471368237253267796180197788617141202780327118904925071602811944750360931173277168041381091118120849120940850049908363253732703585483889739278227313786488293317241796493779695745747772923137693730793764978708029449198628265356454707661418616648064996606252062607048969148112252853907209878289261891768845610362316787011189424385055561034977456321918996444975326777210675143788190648911650665501948701726054344549800771283483909973012111565743326543147992552774436446487307472755592235206510640104937049106476480750812137325291952498182112655614936825071686618713872082164469241772869741322138155955818255177244404997350872372700610402577106491483647788625664589377619769394746307876040200853774168969309396391334121138443323691521765696282044537708721040728986700481290765084050791194565706471436100757258797230602420029358033354960227286507780803833226803629250286102848167931598628154067604124253320559554491098752412103324460434078934344065999655430189632687822734889658563305065394952873700725499304041135517484999005349499912996574842585312742483754268259576907739297096643555457511465339523631003771795690711525740564175497666910848116947055997772620896460717880962974832253457342216412686845656469258582757854165991502224900591305354378681697882692881339274369021560229096705645337104162246732497109333337504775714532740333724490091485688092392195005066595131925431781782087764792572184118160770186941460445610785543324880058852707403297221140224656262507717342086231920563127493044041952852046938113729298587549646613004459564379773719747608341435118193926167183001115088065689518733010793223051702423955889870086546053069244552963971086205338800268424500229523603035673604608568955687163563353659759796127198536365298738178291782053400629225380704574676055571325780445977247424882993254584557171397479984706805140976448566706738819292600564847969605121924269706147887985699678064126205989207511325612546148020230576317443067428441976577516869269509623151258689722429555066516275791404151644845061970728745668598670941567504242583057637399697663688579324172202528563303234712077163094099827597266913470566130634342131903928931978991015789461720116068908319800485876286240378041804597978428090282065544191529451800277984589448388562869222933154877057261095495048860426618473184968509572558779117526579311224335438672961612246019866229202173706371492356349103394346721713701175605523394456837344330905524413343226026274755133952394142609993462177072545028962042186190447476492483885729528620744086302945990558958758072291690387154002315030157268875833740125501520385271135202148194613357184615138861205446965253883553737252969140390361112724194289827104843593912879319940780706142682349959603385247685540433698564411136947054806125405653859937793304309344177526613573831807125811698645289618005583848840900392858172475797567365097463877348298928710619104312413281175245100401351136880949362413251932712287882479756500467018320127422964416687187281637536071559759094249735855410566448284818575641645114508558703975191759424361288155040888890311640923045599587937747778200595350147030581554225086094135773227025771715194990939163936599326903102387918124027656349188486708057991147984377351335704378868538703198763476147635197739234621097774987207543409112036768339061694599755302976933744847199902952199631479456161391349327205561646554900084841899784898817277076651171910871258107486720557386475587448237332008406753130319159370746779238628923779665695803666177431005478609283976632805184501539687491925665223144501860674615881965507449802256154642627556627649750245760573874295121482354267715500298220655930868132954478249090169664787803293791775000181281167071538212621184713968751178717414018165821095646592692364327255266094901575600867684131833923843857313673474997412626292211477351044195197156342242176275698747576116659494245142617244646909480317147876776100283843601805189922644519996583743565804351515898153166153804955380222169977984231740955133804021266320437111194258719780306120960628977697806392437291755419162379009578378878581691734197114245709827377958035411876547132776499407423668816223041362326880687610308727905452991564776950489561612023525313034979758742652510332500775562044607079273954298458231254496809778795012364046869751395403466705244543019173203057220708013994092100835499535204128426401537194237780568553242971472057000159555145597296057218023021759263797692586730227532485845198253937432095210705361006071390032586866024855094286858615920054587759064490385689418396713994650448305338147121696099178707412120842952318929549280922071501388918924321985717955077348376753243409995353357208900742007722640207405338028393423195259629476390777386313621298267166366973984095920930038107904164120047250058890312582507464697609865403924598569239620236181578747542631612946456090931827403002110807547335507437207978456606131164792373486709464673307350396920835616532085172866579522569295079671827027739369096857687338459855341048876270659938141583557683209661846280562413483128166357382748135468575018534148741822949806851280474916552326979183946180099130770429678848978008731251583599613202769611823156283743271966803910357102012300721508575106120486586840077622995876834979058866365919283555788788901168381313066649870241673423846915617279710994195820909063908794448338192054055932758913442399576926523058106664117783368284108653966818375192701945812395115926916982897573638326554549904378108127656766690607769091971041655565304345438916149254262447889493912364493119659574347951757110441656718363756070287897872297636023048857617566106034176435331672209947681453575459191385245721026483646686739005750101122290426089674472117395566320953279278281536383693483878493355896133207281654991126870797844257367132856739247207139468305873126478293070845229252667074589323583491624673287986150069171125789694878760375636365925704312316590146753368289376070764124546601832121336594743289342562363918676931122822192933751926876705152330620130605898857764750000656265439926521702649728429839782778778343878148811629433838767386125362926755530461565468114876900491655405293117356028596522801124316521980884883476506797687286766918187343679079683360086580877059650964684186180878410832290242188919316258188695766569336348821966800576386271587452381726275896096766069985721682375105534146331159675831098264539011865832538510095744267956035415367660281456413521349740780771026844135355745149382025351452200097292975823916745398596493480636990349366227005701418567493145892972814949444210182377455001092713301203033611693207069353006598619091196879636022967044847804969907820557342980250092960689338783773998680648025119934757759707531805119603837638694040274565591232547444171546966615885805040796898742238406853451268256387554900474754243099680018303603873698205072256536383745564098926304650715780503414143651007745963629901880106299783786897114276355188087159403429123213360784081518384179503962328332512988702976465641661283192815059149787618960748409313842169563617251172911440074805963007850112380798621767651310020058270412651315620019568957348906778998668828469574255952829902671756909412205859789693410643517417019639989717211027826454981548337840605429358448283694664210302717226269121833490046600841343259578619651776411222737710675674371799580983983385061713953208642602019513964578556770919831392696075831274595662091340549869855432042553332684309636274408481804803066685588521455166800812531856625863232984382207308934236062317042123050326270205159350203019588919752314268592976772995714298281622477204160830556372210334685236804222562226084170158057672030318302720728925902918421146844334492812811148399147341672769886208741397878840394616325815814388190724058926438996175308552424786998786992338416152079472317014660207924037962021472026544618356089823090582563223708783441942617328258217952369850460517700202370444906008317698872584370387325301634312265295794737105253860391292191074125625231095024508096149535155604422102976774665542064439397046696270166718807407299304463264685110305422653230606776495978314554185965602106534212539757497909480729585006940732659325525237748508422133430625162439042967562885096742120193975828138170850799096404586431666247850783339401095760522492317006413578144628731853534748489967620934120487102165780653142590727247122972268521843352383330624998591790564728202840955968961929662357496273069058816642385512743700467304789248679155114813778922321578430722248329450443436164625705665724650029333368926550175801928308667084000990788939728585857085492547496834600236134147901172606240670236582650315569693041413672524242537110294345132932718596421752400001896253039549012919682277097090296776131597854924179827781686382045483679480369414493752472557750142878596013975331850738938659500469059195046242034041234351935703882272371365651025516696133460909086659813991787968216557568465478330559702859785102468786084052422497041490719186516194869743262443941361389479576808142041034614693910733306184624858766825004853947293720770994193781959894917396230084174550290029400121796286936820004326552669531611152132217376327253237341864049565308515021931672985240640144568406576167859721470750500634050828806672515952418614894155392250788852567374125616171905864043933380497583729147835768569226327854499935917925751164954415393197690491435236565559548087037662419364563312919939654518677948322164022457927704924382089241940861488403934132846231427233087249227331443328286704852885600944438127065628554837636478441455920933600361756949598784839223649147282772709976458793868095714532739336941582527562356996843758063407889359040947457536522535675432314123786017033394015953530628364767072350212954710970255095190382156239676834102475808671406251781893264995101825737643267777842458708503058921710362184161110740594811522162141974044863671756570245438767954727150449109444593531060315999293421398865026515030277734059726449345841899541838588327258367171878383466123267374874968693839415973305105925447361619863010015701959634815918117073614836483492463185846747053674097808120854025089917119084175047941193323683642824054981235293987208875992030265268307656141128376691758269047131015992355206328278846588007400770996733353738720859596587215251002179659517302969143733348285082875940820439823216577096631821305601349895829994516043335342006789976883196282556922927857659043780612498262392304179046943699326684164173420690247461662911414196328741401679938564759609954757464961449892653406476499566802239623627774638253564297006456032908326044305112865430037998960836706345117127270872061976718797067794173583355539984644939404048028704580819706818379541413695078952085686156754956006767287198918954386452972315885158120067704654355535811366548870153290313318544024837072478171271609848746248735355622199933329854364581847906739682803944887381905696127272302184263452847200928014976550136494078475767260070182638882560741441378065389121549640830703340632153343778768461113456895737675600805938728236011469522932551984049918701916320309928469784391708444149809393386395872467554951288435466623887553461538215791659124557262581263447236274510340555770018684535822891048986581110390762168628800140855922425101871988188229741979949857104688611533105719492660016454985348467566030956920951229887469001869919636462760323165901307193416419983418801245674234453452093549536070507110024909650405569148467684015468341429862986076885299157766957776208720174988246251458418157629441965871662146142422952901062641030039182568643448554839801661634452334018452417635031067108190836244521652542034658941730845497827065720918892938611087939563402612294875957053543483498311218082215268877426103132619771722597767604940744613674681745204425317469023492156563136861341382016353762144589357325449527748989820372547098752060965523295692917885499032938781185302560347326533050192462018962580997317938548856397289310849717138301439464511506855498012197491227681492803093794932535187110550116012887338942960689486901679087166338771846579591155985342224384370994711826337824354015229168482286083773912084309841653763113394585608996615884200331499667173432039181440185810764226622488503053675851231835645145395594529240251710379039507232553466982645514434944406057703894364105226784163329222501858124614231888463909835869473207171503668504424807273941721484032179874917028918771516089454952257406028787786103665744611884174292714748340962535381386708946511172002558703660672048696015845796315593389144325924214359828963186751544670237085180680376498171896517704690329083412634616965219127882835779639517374102753494289373856685852960632094250711361649201045132518336675037444880375312226763134300985250713677711642486164528114798689314432800312355854498322279629823061349037585199126897852720233863858788257621867877514629568179047125668709148442230050115388084941693905738381863384662430036853632932501132473250400029653926202622335840997864475911149644954709319769134412472368906933614841999914943077135570927975907838903152147935418699275716171264398417540938438502740350102842554241848069732358365793431132045160568962379240999564086268065244889008864477868988275467944650492830657062458979474186254658687527169697882410881445501461071789878161079020681770404136377735040205088803790984211417848314250105616769345919020145188352445712230849051778050352135718734791788568874789230949367041671462404077549298739373225496760471927707951488780141208136387521358416476496963307025783581575341208311072024186636755375875793263903996312605744119001611311407480572789118015183852204878176333168099308713624420731463293598411384335089536756415200783257088381228637857672417818940695414647302812243882268763154756209982858275578937612028751476200298387997238630775706910464961489341639943221160774522409349241950634337296761405677329175908980318423945190211752938857778902101775729552416426045084450871949385472048224726733799026598966794017313588680900186676913193504418492656764216560786843418536814832529535689744540385485114845167593659193274893912653861588826668237964933478300623233697061116634729208375950294669866062723638616567770642750187963398061144970845541923178317634934864152621565464093914731859211879612745528710036206747272162491758633654225289756488667966350951253170241422881204985700210469700941487928931657250347478022710013241064829993167676042855077318707100017025606238616703019927942924965374214855195025469315562393669156129755827834373134754103409051785946885364025556204639151850209898563538136830966401415899774223044678335713396717656934408348151535470330831015012707987046675189513158512434556891590255732830126289985628367570865963665171942301522539384999594654885984824360275890296164132746655752037447412374329063255082046724645834512980373550061687003808483643156150804193565637204897721333278901414620580742256519972349014047972834307537159584288369268825957773325978177813099574678373197594146053761011509314876089742477486706526170265847920187962776907491617081537720886756273405834011945990897917413923789658512630892103301415023687398219089387524311700857443915387334514027869913389668780290090863324023501981415818662838545098756010213899540591527274885414474928511498543393751113045260017863751218496368867140462315184115565010172790472559284573602924034294716026861752061824571301916302433916936984964214385785167861431674222870511823617048716124628129202336828310738830837151592838432642573262157387513680754392204253926062408058695291361982545643838286360453933703498652818296346633354012303744500965692334803021258971598160215946453572477561383053524906975679275377901060485207328968502891823302176467971725316925954311080622472802595499432689342185044596557640958706835282368927757924723282909428674160930404463484604227279071557134913259349008268748879160303325383651808201465210535301778955163814005286980855313460948922336769610667769718198919340643184113804071475487675162773267331301653230274345023137874230782004337268336448633129683694451219127813656091338253308088444347739192735204307467503591913446907377019656820153019926524679977938980360040820898929520888805991928323365917661999199940423801404548540695662311714021139044959452364738220862167087271439745375650484305454493453222366180057312428885746025062361724821563133579811134555353767517234227710647075453500589291027539117452276217220878508868672452987069934260651411946741483438618899250003535989433188463097023376994328229414906777200167600026817513760945373068146082018918450443284135315611687713160785574052096573833012503010869828717914013746302247319014539158291875376154526296858919806193188526424623857530646044433617827276340593130065302415981359085375130164721165665309745443339251714053755192901621885316807442445461002724886075350090960229211938182596551337287832752630303201506170114424536244375827148562843232911729892457774552083998216600585143391312007468040456612972130029492126517131186729032597934068322571719108936979499592493363345972522682711569840401500028604981078015205862286949912960589968423125083334837803357634629373313633969573659235435098775655213293934826256236720169468853637896169169349430452474487786276971171598344801394792932228352770156546411471846785514418621285456872484632565345508091414288223749888391451534551206753249404643818997155892280678321908001604178755981225282697634370470648162553357314981478702462932539463058426699889136332069863469824262051138681412251227651452778001073661956273333338788461969227487964626571071311774983597995659926123555844814716919320156663120285161287465300666730858212309084808568745779496663182685505631922558379062231848629028104424642940666017988460028775036322288826176504648783129554127101942830898647764245461852908990144372044653410729879434876477071562962653797814107875919123656503688614865951663241216808279544975046264046733554876482903735117535020510254604085178796910143799054820234871380828985944329160956239907538993968348805116135802793755716357903098295169700287407617424202553430121111516936949983920628820150383164486638699668283743915171932618447596691237858063922481194799154463133597507485855638170561712890517930911029589740168985625369923249376691671239574216948484878685335336896003602500731072196078301257803457776105350253494715842363558889639259312087877128254459057301372231689562189991451666150482527723954042851531476348332681598912376396442338360095834164404998569170886555046117366184984342249222196992161536389378085767288149429887914740195270648745994388280253449985462267292426859552582472212860035228852172181651582420611018420600863566436418562503322610310416183842079124867065221082521231603487913810455749507533362968531694757521336509456552655947950329547552909676940802531530784237620380235863196983028257858450630212728977069198836928115116107773850059532833224461638722060940082643976194290310962529850242192220210459131681895231066505877018355298835532424427446406699191803021979513537136262816246579988666810417439364185111146903057930485111019470266137981267899366395965602624313644191625452065480611725507838962842799424990087658380873214069399442882123269731975258089892654440806867836538008264879384692136096544291774056345409625694058982542897139129848450044360590133586828152163837468586489262658753377169154546144791955030426113647670282829417177830593111175344734664916715071436520973683703712861759567267197456727093508665649733528626066370763865657629098826423034310925747097041196563447730406518479113735707649695628342997499579743348225513317511514155701727706750816910367326734618189347659143379498960675242700909756258024399167752140036799334632736210259173458941745927009097655319132029302758994761775902973609747534806427858296197108003597368354704127256642870061466733527060627097819390290454901399684127346932552997139513040997474632237734348921801860548944315924569895157354220556180620453139577775379139493665791418888741478142910800235232012238927396109421085529237593566040539536440850219462444704242682842996619349918435423781535772374939612175018884088611553616163052922903116567349871317619763540203131062509572549690363411421542146457927453054369489816008173585597378527797141119454630098042458039247635980263038099918713249166253834837176698552141447418714949304084375523332998201220510303790790780364786976371623879293595251536816926841668095373578521531718748688430511677084935812220238075313697319033224960963335985283551573949561611601326521803382561574969580674947742393362928202167820721112755823278817711836541000448631529148508277226288917643215084593114776359047922474703929843445480587826708940497606059550209064407773603193405232310831873083985776048277286114966775250280423136325879740344195243505812270421983569563571159065759687161351218202698479169316261653285447273350978258298286215732166126270023077533107594837013325563103491409698613941190138109672235250475265175508016854007767172521673420204009406381941501287063926030827996040323694723358811063342077471684766785151084414181649992098464302612251758594501322953825385266839220844702882036742543684721367934545946420731405930265876237246074883018159016506737656873807042567186985450898572105269733743406110989800324202345205440185868130949665091283694489131215826798084511808013728075907895078711622063240385121256767938224251447656453424531331422363846411749001223812877035493197199564034325380256995851515887486849472215554585733626602850415559828333941798012420233787128880811040826031727113659326623598202078909379218892845397973696387418924461154727385038155409626451066150803507344597837611836554254654699604299760550524451691251139964863126307373544116145728176903703837263728768518502511690197200637774013276879594436191030631238221655150781765335355801202128666312243069665509465226945630578645940136241353238773615747837678597391795300329010803262886054177671448780336499570771274428927895417566609151160996101844234348452170124545102410493260593768845206393543042235309368135779642939266657794638556871751180705947469156005684889466935369775925758753374514064432864831482303443542908213629395323239979308907032702147263258302858738182324860580076313757472233905401994724594197204987824231108489238964420136794707181093544165025942177200781507262551706432852486846089830664008191940895114147170899926586019879849817461842976476177609404489742781083937872975512263701692572575572730305622587460068418855726810455243883014740577172007935736310688166701140263948341458483519716105626156657181680811969260857560808159890268858036996625066023639866179436898758741693145887689709263004846868804028998925547392925976233931604433179297905331077626743814121484903119504440607388929032161428516880254942975752478976804948555712789233848095048110664590986550196623093158738250165778686269974440054736352146100136448783411769662028178831633236822934394632364597325957112290900110308477474068958889993496706780206173493154052207988815564142532766489753262568259895893779988556941393233851974715623521710209115644379491397413383778822018924619001440395854433479664959781633193801817566249773443661228354719784998965401283784378384935996484223684300161951858749366107332039688165801831092306841538683569922393924721279067816116152508050915691852035432302780106277458932384990491202394292845506166026263759443234069965918705048084826652079810388407782269903239730860600134859211157862230813857837346906229103462162172702066022306331737809488495126566975916605985513383818329697539108334116022536699083968264602512911154909700578383254470209078465858079296446116218652359116235863847226409523887927841261460323274160727895006217135806926046197867340966251891832837718498956359489978847573530238441395934361396116925989274050056438228557627451256696712975946769020185890387637455326167720024147339201517157118708447007907675245644184991384594466403162500023989414034959483987097068071307331068681673713204914343230256668905216369971394135182454857520871229024373570049147110810512705953835365667844595650979965298141889845739515230110561067081480814389727270724673750118827582078721326238888689772169390518218219409187896265242115991292631105221063370787419878120460971823149777259812186384920168575037312125031406603119786455048657013019794400229580952765295923974091251018024400412233812759503684156683189991218277491322622657103448979965883012005418966506337413143148367653773736173146226528704393618981462650771631780163130064019139107611861713075165756762431554335931628823929643252094676007622987311793086628467981990822833563352210748405050986604909233461328361787978069852890750712612378751396181948978015167665729110428174831192638675356721506127703913771062800810620399745997770168616086792270352426495724717634154888285620804699868104555659779151109445336401449264449777231959456589930199289765197421742279921337379661022407276756535778470671440096126818847532801362627230314105413776164796205132148298592122435298476174165665539648470201610670685102895847488169772565509166222929400966838670381082758432282631181632570881621170778195731686334393785509989059814696581105331642605835341100441595336968113648359059005855056050694794135376124566871620303257886576310457017108461185641474568029655917172390003912776155085765133097681852793303460399861456872156651288534259167038185180218170749169552469284084152406170402278858080237402102465567918290287939578216485334711457873033061174172887140957712696249671681166122066961530070745749638106693856172612379651450288231163536053120756544091609434956053507471538741447300503433204689245695830721654011066615652359520332643695029745344677845594900966242493465983166825638158421590072608887950198104874367448379323453563717095768791695166232489417213870595370095618206650089959661031300302200879629383255750158234843949368424907325070225164535055367350466017680479664625063361468758275422737455545150150711345715223852622965349930757001960343936629985272820871416141225539062108029140783114016475456143899031766003326122446170558695877928065979437008919361548985026990384326311349563244745499530763351866842730745511760676733925894204845375578977740152721683258546535588424291582654302985194717727683958817568607893496157853535984146332848364633179696796486011792203130849918906878481636130645996908245365895947336420576694389220936408198862743288620306642443836859250931615418463328244770263900875900471860289095100234194047377652530242805197833434262674100759554377617132601141924688296808363756418941321947742247652002862483676864518093747251945659378187017697675726158276171140509070412836955326675825413617493590735432007455193783465665624125246702796083386192072333529007523546397899440877600025605067938890713532140622105602476952336261167874328485703998609921199919801070337060828481065600613633101371612564514973237887005785108072182590335006128244873883840053669813259737329222963354755082242870141359048193976593457873324930653972923526093332001348888237193952735600156986258505746855249829889711216664572154011904144738302492498183731156675530688459122609343125167567146513166531531446600706655340666309810797490587243909073557639277624185426409352596644207578809752364434354272303280836518459231750328709137178706656063198636398767277468757402291444945212780181430584063493270111482164063854341897058396211818751814706299752578150480146723052099121281173274483515814491411480702002353312614382698515291586758827640401278028518072347793317843739188817122989097638091029181880314415539071039726959337021197919315115988390060842484968078845915713833347008092275051238477940779654569098928702131646934758598532112687152457583787109787272286736643338645794176602927590135991700198143039734550239783458295928632071562904909982521085372171337822269786701698780122590467170835301255828331733699455558449250095022156401932329398333469772492303461725047093276992452156667673306534038583323929459740204600185157346403404446695783262023077433191835078250219698048439307746835939611006847749753983635170511577983675147261670591851535282277492299230719800753999654454228929186349033236348358133673340985626928440423578589085441285088023298585207437423041959862557109400573740442044017655428195634924820198822397913397216341950190425242540869822345175960750773789617785577452327756724727022194982377650696422204149719971729271884627065546869636774702762881390454391784401762917534544639332439880710950027614462314417415107581577026513948589005903992304726412749202595282294496933058465820289893929996326850601247608604549089418505398460804685242955444783827671342538290963244887381728371142360852726509856454322739521536608284017577231782218109604073610773727491634805762867701633883209910363943909203677221141646504516461628709088935290711044988629119611218328970671126767299872943913299703317247165223539817107655330538482522216071260433719744243954484410749977362426028411622502048422066680319473653992473725369714090061205877317057293292788194231798193232670980283102641442322009116675608793262758844046436789401528262162539397753451583440522763616801489442713742649091470946921746713511418086806764174319192821262094156308487770256590501288002360609134534201677800618048855184804234938857129639955530672592215153642703005554088773771772000247034916278498193611075450931702989735580693920964905747447527552324037185651658799147711209517663780639322563229858233932033672894935604263281161906155656081843555596295177694884153711165906976629360226009940555729947372155283694184871730670129620639091991535530820610265437875145051049299036896483942376426668309856171875072966704333318746871351638712787717505960216388532500831107922068319731399736873169570688912198346218596073362226766101813345753654167034981318304748560519220393936936984651529144421573829830226893556305445048445024547941195160178813862723310891709782646503142959860369326779263178910705637053183671941007981060976713420253620577790390471219465220900968388152482578517814096476888841436080474083273327501282432073388475056130797733340244606586782992675544845486582709702403932039794422776650857244916068146841956718300857065564171474884488811758294340123812609837274923807800239310183527709009365933447831714857392975374420254350450942814616656393724318506307760708722313613529550414055445318115684824487085143469231302448128550498881141211460596229219632708556026160441483464459687477927742350517649811125897731660120244536501112125990719866427159161913593892496130011276871427081555110061657995898308157766767168772992085800504914119081944104127924136430944006528127425057114980261252771979419426269091561464369178946130692464079788004584817468982894920916829287320780233737088209951561761804843229114231419429221629120272325803041392431109137623967925636785313859768878195697077865924027512982555006510068046889662711688814118950109665080414034315116815764501177465022451230689385521048639863514098326413201706145299631877954445295521069279803446068009414184975591181373121188247093541415563918855089010622178522819537970034085712636955878927953537258770826083069581482253019533077629552010652064529113818314553559933566364911302182567071392568915915268199072284911025866977667122999898856888369855418263099238327938906020250361040088715427901499021970758112682128832389725220558628695894347641323904908970687271891892605492198252824057763028766336030753190186093770826673708227404374593448246262467292115909509888183971351667101927109528556608861104130611021644193369116263516850817785736334233224885347482552851568790648282183346587899944483143606671273437986714458567783958323413188148413627009827488634774498144719960034745405953445600992552324738131951303374825384878811008343736369164834308748414734492054925344108943756799040355918684171521153027976817709006219446714963558552772873476865500497669357266198666076789042115216742125707614277167522418132999282095226537326760452508469117707226671150784389852359873996271451071797502672782464393758626288436762294694432008984303302327907200526757998381847539572899179842704169559033402500956878116012514071776305314045283910387506499007246204258555569350462842221455079677912561284728228129023086112683376079370623146540174546755452997722569063268560355758646054866818601512122166312439689683618964839842847172425867335958162198008029639733660743190771763020012692829925474304767059286200304894018535126931597290372405432770489880793949985785407160152521245991078428717015664042491017987136408193643296008870721680493088332506824151413947019205181273487529409456096566988848388054045325150038314122973079925810141767047867956333391048639137310051565306286795018899171304950283123058066316067715340880864977916829992899304316875008857278506928908128298853829235859375707112579921742183620294518710612087144971792634284222356423878367977229185649618809343230357584254634996411024454399955439804308261219775624670669162053454263463306227980696287006305498678555277136895458513023540363915890859606971345096907067820388722986360314672074470507009911061508647189527031611881090098097762487484969264504530380302558270755487511648431613379546851679800399245107895139580594837290679480944833343778416214829912135009417628648653544109792888554689301594965483941194721590055026934662092818910211898363378842049524345967694284001969939971178113851492800552244380785760477652538524224979432137254094047893701661536588924959795042777514014556222934447989044501222673909156042323876539926311826182532139278341895753413109073676839354118557367587839319930793031118361264366296428430820072921039023986587535957037012048063704156535688956870027680912084548544012894740210743904193534475769830775365452506875358464547356346288058785347586867919294909960295774317152052620328535355351650352170641712392869769777574958170480188517245662816535074584267598078477987284028289059262749319214167197142415504379404784187228034191490100383856828957206672387777619289807639460576735091227983814658781131905586676503227173525658852876792857944678251161068600086274443342523586514162986009670108402616591703565552496929981242342839439889580854011714798763611592849917913383805289517364680900442619590083818291409799873349235302297034358323421464777460718331733899686967330833254074367720820867338516304910385474805668648667095199285320489722539867643440837439517207562883346779436900065524960185335701692018956784121496572033155719929047962292012965513642326821307747323624295394606347033526511261192554722835071662706501397892480558625758645781826573004821620594965532445134406791230693984700290012609028451114987839425306690292011483105355473472408364422673906785809695999342078760401460861507343415156127028118854993767609312061838555665347777449508528020650098908063166896258672685794630314411794264490105141459212982943520635278722393722161090403165672980421728504014795150688224497829840543623876084883493898348301321874474930600604240059307580243610859849624852122865912410907235946925216225367531208995940207073638533561347855768690029128448714320622153895786277684761840774045252898662723140920296266394844022636912513053260001327232577693875140579620850211952711946477445678137156761308898616868429048372936027563679334626616392936337366670554026646607936717235602151884081804109254068020296305849799374619046476556264139173166059328322268120303036438997950567478381739220054887670066160498684710486850671463565645189274584363748292453301523417663091196022656787649780608584308716515262692379860977167137868114488494756389783301598410983960211458052561762582184247989694106802445185631059642596233252628271734818915006124093298257814289460637208380877281825377319463696887501405669480285659120419848607984998946954688692728977120247342443985941384190450796926507370249715732553016151591447302601865941535257977864746534988580495290688473675742200795956316121156543297751359593478864740741814296206690900330221136379691752403908823561377635965140047999799484717862045089410207288193708210400036264498184931435139402204002235419604853795522834302251379215224495377492263636672022398874124802273122238734904074741304446084919975987529048869994484015623655669098452894030623155099817899269584751238904136435901465040145323975399478557584211072846285516566472363917281341714782520020540668352610438588003575219493804806031949424479255011626919711975562397777403285453364699033370527197450838807070148999959716870849381672425615322704802452245336405392638822675854142777957061456977351839243157353802073047474777099278503160727744209632601838308835801512527788226280077477021175001315161719322763085590090660444387185301568187133597505594261043720170145576412359158648464531664217013666202671141625816763048544045486435532669743436534572360893432043752771027397555558431385476532757717056684802914935380322767253339344684838194431310718103506483407602900423723960820923967262417639367507250589477649649502970800791509546743185303485820235554459179628805260614993822053439638026924916230057947485984135897965780217991116733780533359355447176622205112361501816830915406092400526822176819756906652428039804830488179385941237681463614572511468210634730808039745264124067616509477460290664905932573472247949010898785161150585803564364414844018011587069889216673788176629504045693227659187640500159560261582688418097239812727487690346347741431356344141273609178080210823587299473420042709457893144951812317095433336214783879825815988930126928652260606106344093362561382001221517038515767060258292763379792571554880909702283376039508071236325174684944919750190983259369179592602640117774090629843865158219031310343083916852540313537624388970221071802386135202427732562268714065041487197123719687729406543682468765604215204594600490713593063157332491960685660525091894746571065545074936425080765280318615770620822081313566121253644452554480291956273731226606130854933915995764425781921853051307022680333982726366869292094240305214165778484789779350427145226134353754203879633808724797954904753197168803438320671404430252976610702029965354908489571429834693289696123206502225477807133341998820432638880716636085798887634192654644724186889692402924285951385168941883146896083217232203429205012714745969549373018198455971603125987736601359654808969253675216522485095232848834160961552511000106376247776803046720350810997718693773510665276245220494086969395453737805563898101634084968397928160618212696271634137835901878476659801247448044942372099961032383107047694904997848407495465584830296381096595063647419668334476065488955218922945953075159060363761616537495519917785312391356230268411859777935823386354981030827325323423477847531882589086145687516366836301490501356525167597494527648497780619862948226760260586064636963857966654711451429231616169946591276370404280882557372542690522641633473891156846507985466009889497333501209087879540395900097223583050836285357519279471528950641422345472895327766890276731431115209015322402615056738465746907349820403817568670231947721755476164461550901909855810084123463182367736671263706444382603824963645637921178898298356732636670867973764228842956257173765697142848437743322457495667490738189589781344139135008454244843788768570456166929521176997105783309663447307917714703838728383390743332272060030264531706424086111638435381449328381783469953405512986610442014478738128392654102515718911602705760793160105245449645600372163909060481663387255282549945969434232237641398912053255006112874640001184534049329356152997366669740292383389360544777139548954245874643924298077814524499760323323274780705692415584936511425695252065977169103969749659245070004051119083424094340199224908463525227953842556124818555271933897633223606979687875180995424767517744800707635234681282497247484277597606867848157400734958505098290180381137402308281242405389955671344459008672323756045948552239665603645681226134496839282372029793341367264833417187261995780302354445656695158416354098157553282313205028432548923315415168093686103134780874367233476687029863587554924549454207793422478712641320023350400572664431725283367285372873384771150061830495188630845318731231700622456130869078941698004835635003529211787445283953145883152046337615994865680831468938703345451431300066026889476863025442284253934016282405877748140389019602311861342616614414604201818737868635291840737144183084282185027928681502793168916975970508706120177184469477512451612315872597429829978313643561336454466683610755130286888466846207284822633168856069162085700557384952301969368107293480499495571381859093661872546702695932146707600255131905321974316270733635995285644946588438168515574032090444116508897860960505695644914397940757356104073249905867172721385831879942170163241914725692879042647519491837687989462541785567683270410507651167399120243169552380877096594680970062279451744354552891644533955235889587671859259466671667849483714722120898201953983574636729723327287724533767446577447150616253100341364310772313609704341464290646312984215788351117531987953220250680323239069006852014496857941771141156355927690578159626908682472195715014772662276839321607706441821011787934351262026151739567255124670168486475174055619542329242764605459889296673492058349725443174725234105238274968196715570938870575028472963106300020682890514405298347491242871028172432574148699841319905298106664233793338700544377347873736834946939226159939550302778662065925373315435336128719060627893805769424778542668846117717666695317322591766273885028140196783580310118927241590310455302084867388854174589005701597068009437647666785303302457165430941001585773451046964831630328211363916999705920909713666277675190325205125002985549413887383499900300625151809442032284158200239252009947282484427865213244968961857339926527768875146428890827917414579808972312712737515218259820263663891327458450045095645704997470519222751726105281583590898543986076204207941254090154948131233054015616414944585725240621775187123919576574199890205697811994141536483295718345988925297500384242849489813256735226451471832485858394883557213857937463161212062771546107462508645123928936027878032056266613017134219163997318783974191895377582485129318397131681063787607970661840661046071589077875616916193694549569822356705092371050984076409634792868810115318249473448167409766187479484805491430398780333931137156572004211871837243254208330909544207542398825558543992000809544564996506866948257123190945126357421774736967525039576476115492930229297932595811761757157503293801036085066193402366811314019289916049598149548386677129563105383595487367167310116598707542446182055287903403362370148358617726648440070507467207006551618713221645888224936741465670473249185229910427765204880743814773008734576064518695231746994716807053145857770007631784394673069633396204329138885602298252869950312561177795222097257989473859805960430744046330234297730039068110769181563124269516815094099023699089425129045750720996894084540574067600598943083080815327900058233191922098478715385128854777553249257333686583386080503542809917423384047496016582282992835768605361964615025179001810045248215190595446598531380492561752823143920042948957355643261893578218378787621554128137552131813799575094800744864841131070302111002929336609768134309961118953677889863092356364182521424888312677746982505107846077040741743346130382708088386261100719540427640833594736749746907450624600257688435775017237403573019447484844258165199430432960000785792036257603523162388019868648929460690938650992731509824523417696601408011376911042214722566853719016851912221026535451138567769516559607791787036130442548625682417886048314379365113005542394935650596417186292072795992008699908121680194987349619797339824067756119025986225259980053119133972050381582819900630125605306598864321014182895358053868729185916302149701685932344608785679251797585345106817660333160125351075502935043930613180688143971245419236744694287335437558545938077842324465516649753372972111149489477625020692130291415487300339179724494483295256727336512822865868917432494025794610880932573697196415082310108614354693507836817691268477513589025289834341789948845959456341816285766004266014780884252471774801193271229505042629867735157777088420828590514892648150019610726044634968524079618437371664592465581587766771411434563086717585403737540310072214830039663053862338211716939907399943179463471995267579053645751144471418004943327655407026685302376439140181309896433518331562753446320582933424820514466952023431103075738791633216116045114231859641393214930957942584470561965313144965113713331207421954816630701153370422685552429225032771156978490322519542809147324592088542145389166523411637075358664182671959152915075746367931938861611496436015007530351581617038777111833258538011371834355890569302753252404618838781672986986090533519370940003508699292945633873736289522625873467169900301090830826743296907023986112390814292379001643363858545826183155029647129112190849251764781240509282645143398144286731693086771203292241373546255006446367736841886609429795100738184620451667333614170166296322937066658568435930987760637183500070246922094001628937529049428287275614601751136053606527978779214692243474656151181942636867574182414391123574778609037755252010537260763123582173209605040892602746105968965005821976323956098902698589937664710131322216529889992958216537974593314244486206336652810572754428857712745094311497085221097912325736410532500937911976030970593059268136544380300342672745215282500824085899791630014175274175334432476346818647382456616281144434147341661650407621969865054592423825721749552145035904971024958924186625745004906381848469347759941055964401448629701613134273691310484372662455283557112018953439933511200608709702017834418426442208024591125986311704296705988047563037377946492344467456040736099421922378294811485728289440504285737690165063903902582957459764680803446910378186030761682887487467925388768808996338485866153306917853726966722671804315551333539875063368153774009040266808560730235870767629095511798690645099690673754618415230938904879003758298815197946592338855341517452234862348829439274044259386735295165193342952703502586781121327469828321795209904106147489346486694876366076196395000719603479932797678298717647344046761355853868753072583402424123250259329981813139213776311015631442249646940231867470547546655906622414336106428647191662589023072111370107166568647789431043897334807214663319024494972142363211441113883643352070710066668898293350492043159305812791673158627182696816210126668548032054408010745716516187473373128283690875785091484688371184058696465613346381837243039894916597465226990464732561365995757695424036066676598852133463239739515960875470740682206843379356223019419272768057297255815745699150567890547148555087916609648200280839469276660180681276327520938939238952472676575132830004308946697707080147373041969899842008065457104743271258745807626992130262043053602025149369717361529119695584560181036129524701743733230587113918945324632531659472965104194621336651363088744247412775762737635271709864751565652738076786508674476292133251812879486452642539378747931517502070298063136068557058192206687326187310513934859443675505535295753959863896995046481685771963542553840643468396539600525440021029921287192457850747037777053289216482798547789732030733914599510417137647692267328429080562792370411365751189908727273117983431973027000233320922914560492808033945435888599432193373304389597541058506840390737316387957287676326540061110665662027258732261538029994074519020754202124761512652274757146534361465440649284525230518061183982621094885488405970055406443854832173420869360979126937089570472565754990950724672615824918317943598751070223301023431888184633138605204992874578128753361413024268895886446023943796636548259805659286707699334365154499102308461729189265376554454444438399625639010404794636938670785522292150089651071437188811032441254420745445125229109638517514008709530714917882660276660566774280940613045093594678616986784273716300849885009043626502079191916065260260380024136163328434722640010508720768483605238061346719669200545322435629696351069058539046343550429360096406453595923819847825788581139900130841389430844048718043527104933457341906907087542145038193240667962278945013952614395803291534548292283437918857049495116421256999734530277980638502809501239408695979654613782056448509682732062969654170648931186865360318038416304498334147961793882378528118445096191028729563637794272026093761125078974398983241063950541921984893392025378115694061554492141138071769842562391900326707056017826166097553189065520183588346424578505261458576192545350108021868187941916203239625995076876441078427658416468951501813626343758626878096502412924004696636701392861730361773295200115001497306038349148659772016092570806395400586533758243117690008042038065379377199751378911051831637911527557676755298262435396745847683217693951147909459483753608725658180011420087510214770887965489361699131157925267374982956404236379146995480360839884046291967559655905396358500410751130180051667544572169687137520520978647196750956653085906819794474590758037651589478278414078024769403667026995205291377597632197636062296214637494950525897404110709846171597449848258930771554500594020575724745068659561067111942464875171034935023062549244056646155374904785731708965640567383279945484685425308238855049922360406432572975559971712591884698641781067962563605175754123413374084178634396159678891191189827360710909873346533472520933926475854489958805906224994980043253737039021862769916617640940698213519414812074957398020278516680561638747407127445714250755160389469496869007646448576992023794199096722204146806734632786646015714758057310953575171847802669870653046528084103182231099844787325353272816818938420572153872504569313250800867049187441135248840019224312154948364090808143573607595763825518943016427660320945781396029794300767219682220416078851296154412158828995727708719682295288826080330271306482690085039275716880606523773264343598861265954526999619870110454611842029982540220995729704707204448409325207223255624315562605283648968931270146268770354066832581803687206130038738304734757700476821192256861464539549623644443183604973301093221956513981461731499302818989233106555362044279808054705467171161223857853159314481588731080585774368521744647518635471885372511098918724188519999268292585548259458817217864903436442420092971791928219140441776700092229515981983675214513775867566635831396682377503730809373835158614747912283569921389421171849708578868407552109863133533221683967128446675150904196033420888578332542229775944342013335845974844884107161720089188162107940019183234122971325847781524807478881057879741284916105351395649854923410473971207835151688219500263226706979896685181189677177324523151983161552238363656563033627418843053836206417772627144140509793677857131767827902290108243251628726492565685381010731202845163305465594860726957816029950194955840869935996640355551528444223054494061400196483569657741643583692909106611559547456932278778442130155505306007322560782744881301764459495233474617819040397364395987106030000814521142066644188071795510257879228015152120981433422844039905020035473031363396330209031993829137031575381378283434349548555510460376502794131548783099147519376089319743490528503010026952954136173493392663413718965550499462831749684980416197778241173474605846967926190759558078680616525889838765782094939075515439568736609638859671253026583258420842216717558449281011666762997353178431282735651960542604742706518777841605796735957463611071430885444552942745379559672043761183686788086391278363074928896068062790106965013443659355680373280697641729325229002494384174924864157673947839418407293414998002551321742290870161286098627524570375489296125469322547425400867697716362881362617458470247217841406816316892325891457695086747821275407775551927327575398281265833554416934764602255791043813871203765901681546242873885296262566095945814633123310477749288593712540737121416979761647448450207019641640655667996452928606046570123718256757596392713950246831293949325685970739053519850240271413573936343625260204836101672186797343882685609439027521776401465057865620274804288988066471942253885129400115585892174760980736795389075301094157620439047432203326102320259273620367178662938431763549752203534960052399085595541406307094538624353464572910277304513745896467480857385619545122225812486442582394881201400564906644104349728446319971958566766399794826105570637051956258815230040811989885748050681308974727416080999827952718777756215206399268399503519741149780557187265634631661309898445259996776223847260153938455931683780246418739007197373734300895293207375042135384487790788293603674526775704315661830591751314108857990073109622175047376273546418929239809732805567470798479893760394546822269341579164356679983387973454805453064482123058952017420118729942857106946537962066481660647222907264306711221354299704700149838167172148633122147760803192711022984843602509747398120054529481914268051867014545367495855557352392459605478553878651471225110523945823766966755105691599270075105193341900039866745286920436078589838442584960935030368840107657115122334474859636468439740369677432182607397055525543087831866994208344536277152696124670687797910819916882091144589271314986662876900327128879024923931092581007627932627997202811461319879590648296542100694390021862599258435453757850688994251317977056594442010804286057925961682498564575529690335738592690968008597085825966935604538744329212190753538354465095757357275779998525775315334690393579027200360774291394511979607073695611143202382400362764602439471847305593191616813093509958277200995884156541118108834647846139648170432361814848490512977233740691103340983024086294019018596098091840184773304954036368394998962380218842011168496115298886734514567097534756183646400446621293059071579217051059314368815920683756978073781015203737071765464325968912689395202692628112855439653122971890664355152733520294580987260524250670937801300137750142605437468943512551042771686033153934555495403752724196511796751640564980912670422699153674829259963604867771854987698329810507056147118909301611897105492592290186996023440823212528254485641328877473938649462085455595329816699673719097153281406226101922760645957927637249194367456623125608251226152643679222941295146022774758191593993894415232947410789652125256696875503066101213001513828852630297418045804672385988521819617264055454934166066857961866448778439669768306776632158836427468176345237455763782850647601162083738831175157609513375032882937127942686158887493597263511437177856152855163186077749587369268281034997195300940466970750757220366083042760801723416063423085477569544676546392131707351175716519302802081571560335635271367180790067275402051516529786861755220593319656099852560368801057932722387054180289167369463667381689394946167918533674193277004009216324495256659385181416338560091997131226521559295946075293304828370515870644017259401765709676475267329079231341186916784904844447189857163146533354291473162660297255700708713812262374497401130891536973741232633181235817063265582455885037280132085595867575106366608227387385215154260700912158487317062914743123049413107983702899611069778052979252341208674329896663051374845671245109113048012549883073466599229216867456566607101335201127581922368587074413779645948427001785917493927911863767472968014712771978308989690380171325054336909294321031821698721630539300101920274427961887617269945596995783123894649599007806802518446719858565665364303359438937731243919133656080315167560427901643959160140050365319496375629704110699132825213128818832911402334934814654642290445781318062741625466421885338688564038078677653142214721200901603631096296863306718547135907512216219096313464757189176520464422706429104648269597790425662462768069152794833169755450050038506473432199822787122826797269226300245993899751099819683407234441016531783749194843189606821577353959807448342873243816427270657553954161689263568278934705184226187072638912979929521887117197513272662645394548915821411865960903286573403929113016403105536198922824540492172515545461121204453457118098896454085051435992604021334242836567469138421406706876879825709349046764955548333093878824164769385868413737065409506273596438292537156838029129120093268247519711907273193455695164145704861021742471857321120941394032796102011228441365943833452333634571758139249769514942799834283611156537564295381785556912703387920731426878537635638079810635107932758187390144929720964642489921261171100938154626344680093057415517098905248211717023452661605869189169716695813216128126680404396638420074161442832784974837021070574625719269616098896765614350435958861819543538508503875360701635762135406116520205684066866099099157970624172477852819086558931902851455581739333033576789437922022487165629848371603594741677096433594508625461200223183118540734835860998898523337940548190610370811607031085469130328109039712015669652032640077084803881924088154004367129872020432154079142314504174472048766632064180077552976818785051181746373133789481016562755057264115452548993847654277158990959370762490206919597789147382406172648956760564748931230683845175387139625082635140722542719903062548066431895376257811388974063078688381640219139806576311293497223099766856278941818142353499020555849922894912858208467496018796441506342981342252216677778569189067661694831809249858187236936768531414561038398025723679912101995221348048740381880409121145503482826269969575395038754043398348685167810411741478438242742877226945872487620890084093144026990115950062321017921304574198290548738883203142664216546597757940066063561514217371971568416088820097328157556560528832642338892338387473204602461447113020802024741296018951308324778691526889080975414400332451097427238233205347504300912049782517017208877532593250305194442970943302732571541319043859090534828776819719120857043825404358930406364653678825146797365940849609015652226329290646327258778062329481233081662191280313628390280116069456439164540143190486892693939008292319579458897551242353801931767743768104309410218795549469834122884405349275193279969872267294467195453073490521942094690192054609754509502460087536660494888866183690622547439057569312073519544764479934241592705851426309079738691837661324938774824038557552553325368637612837931242911483624249793928422635467332738248253837277597841915443130953035134750337764483937778014652625311331379784408697084801928441015312600424289280571109672212114379528632693383894866713073395701964357144378459250368523504047034086389484438931224379464799040399895733833845706954430991263824063288203167842809978405306629408581432776257914249838144001195230103189559914385036656346601928767601630382861347157512848880038016611446749445032276118992233512199413907714999518177522508273033405833018776461962817001620380910182344498288446208243180200540497305019550320869063830137890499061746897079850227791020652146061482055777336076208816391753802940974658325656673816077624819717938575740364533245349022825932181027604743855994349245074882753168780802891139378188701754241972500237126804881103324198292860181661284210341086627432482025883395259391612205061378982652634720115129499623316015885642347457898871863589687404066660457697210264997591310670366703832087529832204459111408793624611574275868745475899717848531025856678057367830191467649617672116976341067387039276176341914455194150436980467665113464505443395722165272006380817367278031786347558517295535522413127104172497939874087475783352230619528498915381915995642526476013223881308431445138542238789558852184578977920273462879664832149501661553088674135253991185367905691513928694873019987703284703871910448899266560844952835020682454142920949454155240228238563491244175348191865833693221020104015855267633546932009249287351931964581480183756906966608757647976886469879040275175352761554675102178384058098589692629075485221351516130426753698207782042097123555789750711799976811485552776498598532507312761543172489192421754859334866070876296766926944090672622111466343019144705080565535762605436366282286102062782522750563455832000063861747049182608575633743713019688104634035449370017873229310600685844998605282653012141813324759402901644936923812270229580508847581467222665814568051187315223055680103150793510696121041022731408417142340793297679342361949574643835898191904620950406614968888139131462488815720502841290790794428407380512837976349045221303576065780897204565507416686261607512538420275537049933047386771961353952004731807995045686691882444986075280788494397243680993961154601215781987778891022204942665720207634937603660545879332235409345587251838603163576580120734061283526987602648164181937239700284828697917329722952232477483198865275023893076174427279944393586204995904190153808287020439935589387767930784106684449844694646369065104458138354688481610922537972770373343203516191572509723684562879508295557125333130798252033990283435046572465132112024105616438543775777713261342965800329935427080958244035300862446838878244455340255531503049954927268951193052426967375562787070110888163980453209877933469095432205228024111802634625266997623465908257946669894771555913719560306113219230384410314014747495943554554767996266845932594011624449036572023285880622552860715246915799788223009616321389191942896812847339330616348663222642898969501998093676057230194354195893094898469098307628847123817207438296661800581453438522252304441843687802975027955207333621483362952198418091579411297503712229937068597273374309770160770860156901774784817586615348463563487506548427898126140939349814297206892858690453262946072622834176234145947939628283823315576821282080427117199372834793393499761276535459414345718474441254479303151395368199994477351291156882171173576281796771460014555977074230688864879173140300836321039260837942906301630296151522893564725712165320534938621840243226435276848672558050139996617882834596952129961436684412440150669248390695169245161317358548613457042567498981527085697213580296245110504932830053149477831647336142727199843284664028211231729892488636697771113738016959716064146847334420234748265695712324522077436012945344037802459757510947726399800110711149938946228968291556704007900996248694432320638230450122212205456392342548438729598449531112629636993816461943108492199375943690720729299629611247004771827617990109041819292306528650654683502688860925102844840832694325533519818568564285405262076973990585454149949409269200760710889039983036717784262646502021333284881873624221771266718567812066330973583957675012885668015482028350937089382600667777428333440073689612030164543849204534482739474669592709858658568754555861992426662417191396041512683692245924282240768218807620797245554669928020828460965263906923466078912452361165392687821737300174621119999680048081022407701443936989508545768467111441830504140729337397556448790273200909585176784227081722906572863608318046132835933345908913028975953994178091448517246502971218460115128508250014248945289951794966787942432203815268561624882348577553189632807015730158148058675106189903624174848348907428994252534294862334386773185147096574948474002826789140788545431452876456439529756916979600417369071224933032396780129409693870503140750812188810676940963191601947128196013951421222839635138966611720467053501004639578615553145934387997809477880686061245392549379073332625087738974229254000560254810977354488806874757967070582811635249838915235305537990389276124725992778346908548925849214498971843049563806407480274691085466282190989210204839839512476192278398209814561586291206429154903149678023652047091971509430222425181481584245977868079744882734514687245074853305039384637228907599243667372565919992134925351417435147234091261733636431914893976248035230178770339900454508112956663885803903149937562320171436508451283531598347899017819628378131337093901387314297732119682590868583098307255382175306970384650624532066506888129963773090412757906411870471765859107856346862179212655614355305678894224835857158181569289439866267278312894901178712179981658479062078491223846055283954536480125502845784712134416521726884173091099520493589118102972186845716002434433993268879830121433135096212588503102199004816209038287265090660014266538076573353288716024407923500533708624770196771667580343288286022992576836465817601547865756759341664709551237564679804068333311979095470968112905709302720396159599698402665577082935542613916800626795907538850687100509776731626432210655425763815570170708774292865574594175731082842710821949782430562771560788721522806708660130880909992663829001605808037028926864725624967247468258389745835695173932685046855104014965184279240676889891032559223775479754839021296065808879099169482800703019275666136003349548974760898768967865072147289698295917332243641462049888145986654654648902989251541160806114506533087372342105777600087321814638645197930843803858302887707516009189982918303694130262638670157518440780458297089958733502158812746839662333719565921546201633383345374538928598615383998227773017418700250896927691163911914304873240770228798863841974692735536840025993641337364923437097922257903820525101931310241150895170068985193446192928913647557063585673551398544918958672714376971686025398386676372929885973852962456453735554575912426011232002818044694748547578419594770704631133701058436213702558861404528374605370172650382992578302131351595965604308636729134146975973236851254213113219766857967592133800036012064481941557852877499024040038637738750452294986771426619745069668492069685344730882232979308404161128110734965405626741905781289862962913804041982788194049545057239899562360112137596450033532378252288444727807644978062123296766338817985992085675790966970478728163559919334452187841082252332738786864748100742611291059709172043396165749333611232726395082110314804694546215557358274499599907664983884531477727149631218486666657679592340660122917067314518949945505229226427122016556971486228428032201278379009715506520701102260926846148465845437233227333247910156011606426798225927376672670043956571293523966374139447132300820112541279788417805631214435520323848409387444376608813762537472321908713361362656750027711907344092257462549119115384981386552778473622797354343174983937623214721178749019104194822141313747814268838075541340352465066169252287833620691982659312519082841204709450859156072864099246544778273722742329411780479480446286101279512376683388644887773541357500641692902235114891172723017890150831690050196811174339657669351799047184284660546173035440822976015948863157340895345656226063293237124481937106316589299070014430807511427544137568330611199282173998248241514878282124419234028705674792473272506703563541582037720934949637299821341813212812924466728045379858353216118224495392044093254303681446809119356647042463099425982015294605712583119884768989191054816685690739342998550473307006106099285981017093396572471403233920349422419913063853893788347176350880479052138859086185634589743885001051187706748783523842092647495984953950285149462075181743980796957628425347512973354235129620801062780560628004561295433665894430314644057989879433724527442503801453654300731434694854842482662160168415909869506888499927971385785613911174954646934356892689866212454197332683946683558534049795065198243464844474738532254247113776813055696466735458268104732386249680601112926561550581073102553878583559503972225201378164008395805538415729103073193997503678120496162309593779545387587942033199947287560437869496543261278049854248115396770449404170355503388722361080466800890812523243770808516514361565256696090991855014700794401651618798303283428184149037814387498181508407327118666011248607257650918819757079124302552482157195762927528873988780441443675790964210904188842512537129506115461126193083681911366175287669921325820458459072831569192659773393760012838260676705232115884967162389156500051675325049530149191537551556780304979863995304790363843097475872559179308658925721082076772824848974930097009216593637659584058437513775118247118368512631176645671890944927205116405096463564748197842952789061966683715248388621563766459210886286826435725174481707728066764470010455106042124587898565907143480971090635409455215235697994101198698717888870588525502943311634978588564121399554829774229904673277746661739229150516625058355422960250812024400619113602599884945663019436155396437230319097255050523238985970552287950689392671133964429700284265800992447973665447100183934882945961802349543780470328772163722042106899481868453695379913492992239612083958315093972381493368952318231168423927014140396832496003753886965056687885440261501424282254710698778450032775224977088404302843683762184096624822591673555047755393157349649370899798617674205777628705377931495660093709781061693751150114194659656534900932576174770767906466961838367600042205432463544566361249346048206702116162594297382360844493397594223689594551534606914582400277203631585716615851848748467611166618122515363561036897316396731126307643155292556001841091867847863030382767410310337275679542525003243881954809949926210855602328719259787869396136503328292703798580706610942870420312668129150896087229185471556263031466103554259666412943546060259725024154454288568496508506100194503817856087522483742667251732583383346578678643427183718874211796281265531019091231943713219922941902383256229300243100484916378234612406610959508060022667846582022444581435794342289614489286022246828963056279912680637252054021872105102141858846171693751527340545683643735215077863601371211694747123297033437801126006000920311751726035056122288608434960642039127140451851085825452163146123636348865383137768825652737419053323277724171166024408551378657595726296901188137215586502801696559602102617593301013249996767989313599712048211677609753555981398335267198249876670480336170069823612548483286015758406413368689426425725873932511602283370819227674654369107039484342036859014980530442272445437731086167492417396634029541224767894352900150096327059858480333456188746549585613683953582085246976906645296026512589404806863910712861633158389431019180708879933456973218371204774763048658398285695025146207549600690035978238116728531403405821518755301698689773568014981438479256373902977590675258157057074597998132082651351605613252336292844446656746506800289330662818997895702532041501631578221486107656505740431009143289279621290900985236168542474757615626735924922988397378243555042003125880757285316373868132049947379627287639101114075602581082838441510771081972805620135146437572347670632076003410457028696524007181979268522662174633609009604459902618913999200455604637287025379537598242271289849447006102095032521731071762963284884029664185946451735441544271291017754302453615749729295691700804443298138848821970463328241644867024799317392901874702495995921985183378123669727958179965599702620240354608293905768560413881416470183132776632624960571976342526604819508195013660259943717652628983926923103495192557301165989446842356143470390252320574538307781181778682161269015927058622950050261734496829200689378647945171687760184410444615531715369207682144141216493786716083337765628825298754734051698329973881148246192605814750094693900774793814717849226964039405801185068529470808403802327376534754654701564357663330357902275748073759634779075957889513965882611562347468029622964220203798374418713135255584059314256923455040776897000317575702133994245936093718819098533371445417867084926625175191080918882031092344457769332755830698763089137013413774075117792085529171512803847672759892034978943188138380773706114058395618603774251150578165040253619648383044824355100367185745668112200956143601127032140880934176592717176725312350269599968966166917544237825314362051776898250068874651832478161689165591579883845504622455882348491892382339525542038001752247845052240171650543383646406798050443753194032675953360342706004837463228989625029668886537304160323104281361470777072398895604416218970403554032695593073326759343541307355811074395118800808876478416458980244048136970707258906609781983886148926866964427135146178598365157717533354156899781922110351348232243691359061058033338756712580146774102560846835402936023330838213347890644630393416910586469400055702051972888139130190320722922110803187764951695111986671100009203362820531343306356960134093293864737400432449229748623299903744741586499168966566500051705699877328083463512447278455795462002133161595032317429524392820751871958877004760050280682752047024532387529633908811984376482303711044052433389126234699946640336143717507565011685460280307193388747901493413992592945991015614740107006367190633269501112298802958566193080211128181281458302180639795943649986798204007593437629469676432309778715483074251401705117585186661511547300315502521952591184747340859170733129151595275490163795812030739024444338434682992694347052515706512924349870555663240438216079149606910473038734181149444650423411588952659528710706297526236955578556727376826780179562439483334612633778976360401113703938825998861695707412617187439564310244670037717899958117939690820502208732434606662177541395556720413776028613067389018648819755275011572668552821003069180782925609356089838730722811376503373573920751203880165257590383218930824356622761805737974250202157543634757165716509445310137633476118620400496035700432433080345754619112288016824761394643652061067248557141548924139590418465699499899700087296096194587460178304989873312256285341898278953145546860394294114745150708250449233701286615121334533859294615077611807707639184881398296765750053003522587008464305179855755109386871922122101035726338229857311456373501065320202386896907153108717750433654680643568783643678367267756699793475972298991188825683834976377594561168760525217242102982450643697839593504631591403353672639528685290672911042706595623425187975362140831397154228708226231918708033443558911986191917205948731272722248417376041306364175907395629914058483828515443292052512383038251145155261882393137497942423438470817184462381681153273818148323642517882986540378914587848636914004323004487218855610629095051003768622089007411777083494316777922381230241407227765220577119969722183178415117733318967061063719205300482198711013623854168282877395100601174241128609692062639659649540367931720009879863692559104436905834512516915430850027324698900041312726471971471509375689094629978917502676908413376352213742253315304985324667200492804084698513441579092518449989853104660018965960937661229158397809792808694597883187009974458126498101104424562776312855548531265488567207770179934888460526299997146073982227334081375095083842723986366757502521048047992025188070587814225378719796176337070748178839820136173702804818827377553163222201345432260107184005407395103686348759012862848694071904934089268378930824270136424414609652354269755507728189736052664705110626156638851136228639807435302369193515423302010959376415840847167567587019181202760418728410987451299352349589552365756897973647272338154419548486735381152480208730173979502423783102550874908341520284698308562099256394270458972878151885424055592866493062461571088423107576577938100726904831115989511994963749134613912592148285415247226354855416735933010035352347075214031032645981562660975809306872605063417423141897589119775493013042217880702213940157214149805827941092767828582528314569920329224967805107591189989888529478469563318343288312272042205830974552809132210459069581447767514121811909925985837279460158889072040195319483247454229581089007113167681865184863522649876979117553430478338712419123479539002250363377892623088223396992031674134920568223594797477323748628649300459072324078296942130945178735816024667421703547874843123643094106743248090060304920612474571738058536547304457143035657471851670932132603122376428402960903149249392811512927309130508969980615976842897144687046280740984038492201824166547841604583569818807034126286859385827157520916734577925119384317750477950821474433892912085367615176486917776130242693384307776559375194708167209778327106557980531908706184940563668511898050589603260797577259418908119123684407005038030900830609179821810715126294022814313813308985523364555827456888344376988209069094312322322475765780197383719280635407946649890641769933087753805769374104853576385697507191118265071147814522618436341196777134629373229876143237130818701251932630156077069195532099833073897524834692361344828915606053356613144345015788420327137987645764468276404406518439041749165243804913201854906575224419582960958374995484780126763552568429317948611933045229154330077322541635305988714530296380122752179337642827448871096232003885259380652496278281672116345678578820716714538069577150297910605034656526916375697361907526492703559624393865358001096005961144125818484543278903880486578298093756530318318616278372488609852948842522159923366437433384245727366112704400784147978151105176809758532027919389368137226589363805176208674166261329847609215065357057809449073574735304292464913532537962853533148011103147064990216699809067970102421038138215543589160159219840630494975317767218635054489725119810604954181406977473978015915876840799150235918515796396954791649880820032483661177508404021687240063618363523042619992487941358770546870297623591352212027908227843749270811013446167349537064544964609686802970084130606411403554130803571207529061854764785095423398621245559162207464209025967050199643681752837259781340555519989511522098039304782811886345600346963198458171855014756423131464315850938815548930995972348941151535884395432989718741174694386486815661547580662366159809496177503129081052159643150297777291162584386112862139424299233463778954853832169206161435615610760816922229303245222760878541596516402560898359541498834699192560454373426874616403654326856344578734441572259255130754732863380338741131415531262510949686961748807158731984004250597279649923422240974785034533543611018926178687570680026837876534430880687344685443051451798154976540617941210018088748288166070799046957382036735207029029686746261468298097105558198343181748739844920105861394175795145630596822734369249781414704864819326345538007556650597612513877442056078886195572788649015514349429409804168486705785420483668782397758428316712981154811252933779737987437600306593670680791535849462214262068733103840647188281965041419609329724617633391895723650201852168795500675666027633437521073155650775320994190510968057965165622042434811232587400366688532361581029952151402346247810896371132455268823250362466880642421811127166174899224958161921313390723403525262384749374564882705739327057489846730478479689459884924686567041685060569961869963409745849484118702510791672709661078170927278868090449766565131865088517835771484823230284587583395704652736713394535420312955715790411509782084218427057682034711512337176441893348207971314066517466579623924384410356817392393690190009439977009330379442194691724223533079803928317050554113480227545802443086002563158235035281525182697196886670578648798589987500496890781905646430581837652634436509577242346852673959031241254278369594728597812859105305602901688130561217794036749911015486888718513203606292875558453065528027767238913239869888957385699879682422634646018985564796427809067447441146923697754578662283319653997527137798504388765066603565892310939401626637213739841185198607674102223258638396235462814748912264300724274098852025450394711675959025128777268972692777125644112061408606538460073103966352916132585481281282311563687940446500230626526398575046389689469536925161681046411178761359887844760679248104043671600686896908202460950964940087045708598143029764512283506646659273615794429668293116656301805635149917873597702393805303126328057548252729003879947171450943778009640823797241507437321158491179581809744230499502280662582310875858701604194547236215565591668150670571468913155394723592735346356633271690890597010035003740167112728915488335702464709648294727708882031379708237148740243800078512921661101031320091891455738466994976732825720567354433210403621553789915317607124535988887859303225410692398396442321442472603982621685822928340878613402279574109824243037337459902743418204782344826292842719894510004367395259490367461632947128961779808926711365567391329743539115198404208421241013813068668408135267604773938213913888791779756774753166907479068746185946233916093059105232209186028653124551766971381517795011456987355899861364915101114246283078803131002620421199883976475634424330910389992941143826483210895957432709207513146204890990167123287043286328006675794911205322823566536103357808764267429279988922936464797717857079128007860320532872634321894935137936833063343869597403106894998615771394028548723886954668122365115185042544798558735133355819359667053205430007807267292538823163652397843096991546501887295416412227737641106530895007815341182320891840933002075664996644188331720660831592806912573618263818414608130226298273138796562140577635030010879222043246536954447587287968637428087704160301246582791185386313106059079590177673395580771118311485951264749681971499054123539748597358293479882834931161250304757915540631417338474035949048223731075896786810763237731654309955229756039261113990830188623752573399216527956907314542628400360592053336981300697404413035714238770486019697305000107477606788561796361334316797003016254395072133253554052431412008888893799382401590681996728611237321166955992928669059267337244064138566188135647917577226572050608123743064400025536035770038916151661844805948862770573722911338752406618834947770335455170232597544250592515657615017798509131644154572773513139111489655313622841355278647605311976565857785887710882067232661519990048536691615318503495612044172348635341781824860926200835700708281043619451134333204743472733025061234308791625918071417224228317503940870545550956925399299887954827350083918512106209283676626185261811899948273765094658128000744036280952589345569671807465513544030576742425026384659716163337350704149858013162136789902985529698057557746155199026686329564957964147395768045766002074874018833130455997865844691764603058518783786312361080508985459573659274708895452282444198294191114842649792364414590140204305124814931596574354242978595321084116936898970181964971721598152562119193216776204793211602263932475047265267497757881068200816941982993130305775915275132920586728301734158266713168085242894004106343398187665860761095922196296141686161222790110797694988260499242684668137554250523070571842103645785823512349783525184425604685027067235813631391763736609557944222853114367466468468779367375994033089009875230063285375596428385178053295433297608524540003377068625145818611803427953117309459294867353716264178844557549136601100896808565351964215316212760040059756359490813915852511304765354316126178265704538571358266525259451991488006207596845769166120924308739607406053569165792573771766799078860822844078803645282625341697309097300384590747594913268667225135535635887543164005099548013429577831631402018681844037492037712618060798528944203541011457111268579844492508379420759998365729788000102072357094727665589045220893113567264276409686311610767166444524644765114289852569277002290996675381378635858673991009266239026578137179437706718237379527235392504995464537412246254611695388934973391097441732715693551409879620945582300969216152757359347291276578067452025727293071681720056434385967029854667397822852198358511521439064539783548835997077948160929983999523900761130479867210774273273516442543939473852213876788875099142592296329537136997568290534926339085034534317334818904872129153885298803751270065150073405513894542503887483688370059580608455616587744250719251873948439142291331574257542695859828179209897310526564119979365646229874613692261628372748248254181110806554290403081302625077229536793256008716131400117220591614858725323866696385236157938285617834544510810902421741397045157049897643249418841908777084403982345978270575255275136143414922959078163423754435350189934908354740782739913854067223863101687255520592162526663029989008838178020980902988686860542311353084767846240506972370185957736199898214276707159794268234160257402474268576626221562719065756671953634283256853809972396864050146542605331905373742968950821715128744917500792338947840095322284509152235963289458665220866881693301095388145722270350174602950849632325714967038592798985724317874063064216883050964383330963295699270109914638621852428445045884144321853339270925610513912366266956992727212291278198415081487847367366552131299715138081063947101901888694000866936772621858578781283649732108775414350591092753132034562043133083472813338283794657129951087813695921373041231282914009938763214877115255371245194388684341994332393422725142089834283417276880779934326239695206291389712339093635527901972790890730301307731986669762410428897379944756750286551080257761619723108584878870290701856201304391700544675237504015532658845895120416379234035879236784147134251651314899658858959086838939170227276909148339763707201591129434592957967769258268621188763267698873990956914007002977179528505262192310262489672651264410444078316421708542924798511582248564221491598183352404328635588221982160355521848900313912019642435557753237930180589980528960264395738456153271749984656137404284742086743713275240293201059536274063628658830794150617549631798924355568831176859024548475685361985935261220368701659729610894272028804170915204025950695632863420141865830557878708986277011968333329386232961025762325767005383981337978846411813099402145838712845591538414405034343804151841716724848942419186105717138445201662799397358689701604225617188774429623494831552479497750982745836422264176462424384417897269372248306973525277755568461336680136408557773984827388155714938143698683088321823176182319538153030512850822575033404563201816540278485227454419918991711965404529535755028565833088593227725531610127050816918475138865241353777856911100135430759297313463036967472060446072394396079694181686228039164770193816651200350771524022893897014052770887020158327890065194841417220624285122285107759369830519112776524422938142112353545547876241102228766835749191263268003165493184686322449432652982729080239804173301581654562726103488106566862498511389474644975782882272377529967485393236003868533522643759330492619856565801542212420346393427937847197861404932090390787360559910227292954892946694818000539040858437952963315047059634962805305148881129432359670306274242643469269728953511459574993954339028355148518943495024202368206762334559523169474966868424420210307157952300897234080550404252948137928592635806354680654073948420869518188239099533885833379122839698532594301445484982789440128371354677474945137185229445714525146211419141277463895191035904973147277454457369439610893685101228603029979640330617544802595912775136264522185232628999902902653236260483439702056127715294785747368806889443429222203651973149163437712190395040832654929109376598456959032694091504062067024621056459289613557507787529227080423058002485670396646569236719452720629554240955928345829034375728882943890615351983560352537776908775445039652600436406835288486578018699138202527800913616511045123993676673083237194161058240540787401741332609016043885058156596757504154917774170307385041832259267015375368726719033421613196588512089283996391560686043567036480438793963818018902727702581579094706568213893797962352507149373997807469511883923089078845691505922063792752873147999028189974774519258636941393416825588084083065096250777802607830484288385337191004324244126519417671381677259869801356470196036733363734612441412932375571285573181504080120409748606067038333421694030774598215693921248307202069493748759997924826916995146987859908362654888842681638824264714372665648010317624426288177755828715235252580199447441796904203045333014081040390569686483778897612747105323377413783066518013371609779663287123170105676232210388284473490597774966855067799886292622807878939023162191704061058046357320845914737936835218302252574730168625759796871084091751659507706619620312567743485594752646396106901287596038937784804034824276031249469839056132856633922819230167026992813813569880675053768936368229439225710306133868698412562044252432873345257609258886771105817537423384614905758141635515298085033286560139826599204455876754829388207874327437705061401693104633711867774572185616096853738586680379383735453766444984187416068032202878834321075513648158759617916766074310014387524634000178166563465909017734182138425718138657922820870500000067021570669317128702095929209651242938730005638686622182326131128249731151834362386560940117971861023379049534682280528095091247809348111473793790148933692403250638160263642742212291397775761697761729709907978514314353804707206368317822554598820866385291486359042304522539146296454328683430618654796651052622631397630134240533119830371288215075710414900765419339850571627823956566946488218794067061212016665974667174456607394553184908330264021144808990804039795712474796835677441357964895766812712646907605365422326473029506989599314303734300000234779478406899836965446679234155779265397417401219606192480374949220399182562152359097064426514208736235804627285914979127834446626377561627801505699652174128385920431476785359182607091985398621219439351552479501513433549568807710917302134106785692985277708368309662173263124879385337322418189396051935678920645654529885348621617489281457600475167872865800970762016360034726123335100992198035390911089176528612271906203329722698954480824090588401053792753198219036080203109526888780340980697824639593315912533934749983788323904533715622552012126631294608078966127983753517234994144720804367016531590142335411170192248798298221856617271224171559823722982626486584597389993273925855191302625140409606730404234034573696479095921687879439537183461532733411675219194157111102558940026030276715999922893871960627168151157449277721193361989308898254495710565969554344693780685124620617833077997692539310596570147402994196525441543650598359542516546625725962237653843420752431819075954582814175489705554937107181801276960776404235296899049497227358024674634196039928524377884268811163094557019604736730749562478339883525846068358611397014696913647245743970617029245330065995554906891216057030152538482281077334183201971518248978097788807995191624125409560113499343798163327246297299642630093833323330116349831825007825829896984471567921309876028751001305691857774520101929981494853780959229520033988913411229132667500988692628888349534538988127318436613165525045006995650565161087224987544955461119686640392784985635456065276887782060286308655691198211951115209706328002058326523470444244584300732619585474388192903046156164680308457619507595667960106466070285028001747387085619742454473257935277952031311958266546753141493970853348354336085173151078028537864222281659709189474577449176395201430976464408007056818281601205103710503847086365850458635726954243436419966131826844837492586811016187188406402408031617114393426404759161558790178527602180145298547664367154463774733383880758651665981243266642918458407220788208546977750387601479260746601909965135801236466496662546032050818339609294022346295565030332095633890165968409750843758119521878770019019435493967576029227813233053056797205252404235989057853191091963688733449490939618376355522457918276681008795369306218312706949755480215450433983971121974581896202346871491679587505003169217672467176827257795622875716238595343843232451687042174330459900362904360611293910467330453918388148191736060079711711889734472837497158908261219217387764369209238731654984196191002585758097520180467360912905704977855691012667639575435052291252736351144088351264397998842329980968969758471955490396271694534011859885678783271171624568788894800461861434649951958060175323509283087965580643284605674722043373108576928108658043949301740215966793739580322597708981299446012749780351500995122829283191278306980719862111484397167941522854895277938488212834315449992433194341593786193695234174154587912511868354336562768766852668681109259739052496427411388398863815901613677880952410243056384450740328814194435214123426294703355426398038756726660560558791434286737207361376355502464153327038300269878813929225498854390140583437848638906477944747299016145804169115588436237041653203064009697464842048500660424680345983861234841755272202725358212761142302306306888697233035712853306216556976152443753176957066216628010096463900971780496187002107912580432793490884384158849290570939960281776188944520012644975569586149390847604955796307427379072581572837509954960108522943369824598896597940972998277250107245383500435398966993350763887638787817071498264024660890644184784599711222304558681542768160923908520995870725840893623921330850020192503576264349653130891660852065859309409180821143659467869246012993807580238111567403888699836355973139257442520362117076070394730429632670903146979801443375853804074865654445510081293188214961333825512237297155013690033111437675159775670419843005175738960656903709878311932157062926838071722875508858164725871139111614555539793944131867741237703582923454394521123593599928572075161029963368660987840673999190889340493492644561021334211849893873757613274363210160968642309360557076630007583968039935322802604302582707467352372115608730732132965329637662494013228731423101026766248705437585189941227323118174694565102918405705189228657903162008871962335201789236025468725415286397316425350054938244886697500253888018922122475019595463655920543729395745977713903758141404719253448705916067538668523256322467386141034408110665310742292960678382433183811281032804505375044959656629148554696604306606253370779966511416663579516099995962998923058344726804831252871704181221146103001475860611250365822833105398269573874414781377762344553095318147592882301473348369611437359265628534995991797640133633582094301599194236701131095819681908128489870026845485566368199030255795126183939078165684068662989729110837229256496938712466776752591344021950203121580940518599215032214896815278531119351091125489788727420077000913024000661905709894039824905245170829425995469526201969195968272858013918923053403675484087893204034916752852714320939702702132854731040276913148002555293845793574965992664352293041512304531244987280825670722200941315028454934872993792986744531689593250353533830468465803198266450819484678008666865732739784271269138213975011699945347480681119944422532893187238213068986247791047141481324343324646955999929068534245713983840873516986912928016587646385835838690595378206232644469324268496536007812928738552193938629144121847622566084186936098169001232874066196820165895625132374504210830170554747175600612898736971250011297904343727992549112751765427581806566000473453587118554593486940679530414929503538711354251043375049377418223642358378396506627129258296603369173379088246133029834188057247118526277989106316060991194604134478188204304961751842722590418475789574791382958331748513903294405554142780304109436492798084737802820018645499082399309567281562094957203363152569790887880334608363221456905676158368157410117696023840072986257173925452095371260721122134713988178319004998442113557345978315347742216628399609804214560746501460350216316491259913971787553596516482348509260922228103832133678344563150077916248484753859968054917516072177173427868632617035816501232655439385758327241507595918758198609876897001003364895501774436792669597831848879277591623990323232386052718611555992405200727161703131177181869349652761555133572760618493297127556944409809470821288187894236207822830042671126654642281717829411843576960517916068382469970482722629628869360028520397186314050208257269506305865050046136621816308236901321620072876215055457203677688755230491025908620613030509511044293005777969560969883569233185428994523092204138705346617166021049691211900803205824430431624392681001402667744605492672685428146407323720432200756101997315919258761697303779716600314630994275477032056250521520950200633293602923961877792136106480173466443466021248127152682411363352046396221746625384527549209658328111284118310617455144010153693643119307934829882332248600164504902927370872155285871619202831260079454752763794336614234617518347756469748007629254133196566787429354031527158127055208436699358301930751755157572365602104933193986824620727894098630690732816472600986367992256846126450957522782759565600448135492266253667771502276570394824094341338653485392915128293429072572986712050348164041818858551374286708735284980077306303045169409079392775667270512418595349247056985549157906140431338948005121149275718703464916691914718696549676503424493047786541219483376385324736910303552971601276916732975467045347639987367471003676728623646536051594231311139088167252679793612954620244844097482303642001540151960550276792002484612375526285715017495496869099204512755650833080544564274422607517325018913719155329120359957962693856526698656179382689587522624468977408774613657819305296072442342380498548697530273944348808714993578669718435036728653565356763041085439024127980142380372637312588001178031971919782108507168747439663576294782011678403593299894051058135898598333801726192935202868484525373911962313560993906568024106784444144609642817740777275703137467657547447438633085163815653401982588224337366511071504928329124002977203639367862016163099056534039593331794457759745536729543531029193095753586365293243976602507142062257933374164281847991642912989675637552194857599790679499911880728549787646623603949219686647213719936052169764960317007764363327524166001967450209665024312578462985871166918661283074050121562808481344580131744305670166910353450078526987576385129596588692566575687451466859883667238555566714054682168017700660120495867214351352579831898276939286776543237847229987350492922255643486635270765319216132693708277238770721066087562776689626719672125999118442808682973230863988112454362780561644012168425017741873971510949760265743332405266616386751895154319121172679127569800077964642797408354204205536613285483069410288716127502074589382831699229867953206512366987706676170372683050403334845864158886113045360410566440511433187395548345280254874693368978140850668291646130203553371386928278080465460286549078694001085974022327888288112704118883032843332975886918211649269915239903538687069083096882180014609384117812056875925955763141023750464228595969519048131905579868714389527392919765273840633504660691213914679547339740304913757430989370951610736044696844471369923605700880285906437861851459000816686455389107586106320596853204608998628661749575599659973823481435373950447964508783103773485767732286746970097113271978992680884093423086185261867749784351520245026135181302659381305478887730585986641483321874056938461402117621219526988294264292484644139409224390499813114913331461242408538221339587411013409226615965243645143682978434288000113470013009650883707666395411701867834248740283060998888041031236608779296211573688862945680642928309370387350604532449515365180376602838413388719774184733542026817813975953990781148562345444070208799010394913769954968276199347570266554608114604979293796408687404748409465632207486289279187471348586466184065595078783937983260340116514537624360665315863465937754288426672098046220243488231103505699957454226941504347555084958179008039333327520575508750654148698606898619438981069004011754121782561788088817834100984190921694909233341814075177693775222541547465879904445026254859720560806376602534823363386725742250957220387158172728507834688077542720695180596340474490137774463926628354993369311502042924592485430505672303074837251450277395956330818812149401367415962869944963465302059747061243642729912271339996383355829910785236776845954857092683604580562049321891157088503713064421006703493670243950951333791105856104458170272018936638895262073443014685082619322040124383617200974720684714315843724383952022282622039041752065273916620563943226790933722554764972211277008116043712791811699560339917255543835434391960774810585823568049371691394035750172418518302018021392917419500554002045566164547761880220072471798121978129171945939889745813339449861229059761672267397034745737900755524984427103405388315557627762495566600781821234916416379871841318502963429989755965650404697712345194411182419887678362205744364362450549684987541226117605382388342624514934815001932049723379561960441287125466494978827495353147720194207058293741762052664703564292575011288355365082205023733174671330345040988399552490502904107643767864947283396264181307526780551653587519066352808233534653055679246739021009944534030191419259427782283418663843668198542332070061673574285208340603103823206674763859297861462698830950061852396911161165086828750675771913356370009967417598647372608863757627898833676455562661847506775998111703739630448506807865250493434522242669470154347707055201226014069697324778068521894346833789051004202660257746062628669081026281833280728303871138654378768358680924883108088540549646910553339003676191419243790360179047508187689232946256820062885937325975820286330438298303372146082568589956140944996633777747277496260581248763918748888134931834064506654290324130299661267471590062571236390935760291772118074962179071895010307430511416276167338270345425201162615671532630659841160403271935270044827283313221982635434491380881706607451613788471435598731516693530746133827050757190458615442705864137365319834218752057848050875462557937135416211374326835400242962727747123877403219354420264112414802225614008781392276396959087308589928408638597701142296545254916992154424158184633619396429643961918924973390481944881731193788776708418419861187304978838510585596361086486577323667958770688019263037452550366471800002351722024362816448625576494142261255330306266730735600563088560613365210994979428583188775368101276632492754057633204926490416169485534410549019188505943703107680051070640489590159291251902912370880797821363579664413854890048101911557955571701398370500305732293381202859637553156748462781124284582032185802409879386298098319779321266251722142987538829571677724172638057785249059855389667823741455539086107660882617262541081506449471665948337662573238196926635687799525202945171232210944061095335771427457154320590861270939981833867678307143737229892051641607220940772950639479446573754166557537467063531235334114756089052218777199816262026406196322262798267758553874648516242269436106584926210355585727743467714199937903337668884307640129105974530211288684805939998830015403768799600991126859889336767309849034162412928892052766208566051244970911619345908032828480530657167945106448527826156943403348436344819548909089140830741309096241552200860275560966842909216238933436077185427954037820366299748612733002630414584970036932121608350804841298346689293667750696857478433551010856005347012189044264339371525759148562242752789831705681670313755018834903197679903412104420482984034809665689896452820349568043571950274851192786788798191037767823433868121560713205339256004793856192512994767849130080576671628169465357114219399634855302554284319586271400375190330309464274040525101130386723922452417198177814517801017697986820255630796611811614786985121020114426081870700515540301634336195755620987376421355282574719520995391635112983722258387156916185275426162836449435658265987153383867987820777148991509706999845745108828944820291962548620663735318979452062457214545497822268953443581592213766864656695101423685938346988362825630266469785257745973821010034020491873397724053033665192491679693313937791582551702919685613209022256925402903825184037530576108292551299133319233182516547994784771137202942742188798825963193382136515536131481691565246115347819771504998969100489896595216233378695199494053249525717262686645834521146996463482520766835726898865298314019617109557387306015395415829439805933276299488901411284421304315217060379998198032909036792717357674635993394120159409972496625465024456217499695343090864789045056915645145318688969790853878281715991513185012426523265439470492172788282952214354860271434531188377421886700913390812854150494245302091765510383241629563392307322233297414830030224092070686957260418552238762141368328897212514256083678399673709909226532478988286063324014898549986174117930563502153689260811609507657596911218885995827984356799063831964058002110529684885109266057133003114679294473434604366531638305419142003494458188970392801009539461038918554912761646772848539808631607489675485555408031478828248020104364560300979070530717047500411954920633355946264274230003985131396362025756530051761055898471746802135845805297383448096067130934111472807767587836467524478097729135623647555201146607458551507913659579315708790219625052197154173227273806172136393590501653211616635608422656034430691430298813642142800881138156432201248094296488865947530327914830675612400015627403327978977376490199589766864117649552853458843417013308673956067650295292635500862769537490821684431024996402786096972429969724614168586399397904337128731239099801431265877904897887418673314414433338564160816021396697160841864201457509732336131739620430060939886975511201105915113167326244174154277839821547377487341531193443005921579488282106862467930574975785024281245704925486506018874298839944407745480228287859172880769017912896639008331808089019096864205217643149117268111033269416854421070169947618442132701296869157431345131049932485251094822756352671291406548287843437623999331030763796174289716341857531209529533178712715340501611968259436050293378812238031334923514740600759137527444972548676434858235542206251706367768315493231902185043856658391522949105894542978235291418970332940722710810492082647203748897591965172853542832452453995550813480702207760583722868412321105429510819028118712376009318495957811013540809043670513812873712863634577486015591387748447327251175056138282008290910897075855572338598774089636593301812039686628506498032374024192963389519603648266821274944061846363759442345729130075616497112231948096650939953494612566492940544789386396754145813719372452917198674613421143100810231898144394769255277217739172887490744073372238635922630267839204481742776167911433637409128598706541103064746635708925655661534005310268654029780269745586801165365807513332707124852076389845058300248449635894003449802412268445454708715577432652025669865893460078348069879684417377799098665769034840706944634830302831768701198643129177872656433584604747396138024341462043405548343270815772667428448262322810283595659091647567165561791818122976912231251064723610955432218340720040132274052664621499019723653343215970716640570283708729058824875551891869585667321092556949476434692847780627156796297641042014175473212479959511443389766575198700299590073308608890763817333207249138896746530736043199112358131574546984832424151710891663541385934273983585124370803016064448526315696960358860935216166416007994787028405876662208544062514835331866235015151995810950688749508571816340119770919504225840663394690441162583235924025963594575800354408888090714439675112499864310908808856360249915318586108432710698118592494316757332228234483107742811204355027972208415369863795619264280261311605440177090109554904613849455305419733545910911428731858476449732115780803090768121738436092375675732929425690322169953342587351730619012871291163655850871893533874556830159077371782328809810024956628097570353655186735141382388619204244688500660416833550000609658884386371748411036741209134190893465473921715193936047228699325164128496090472434164810180467561323946259631747043754458887812820759418937859629206433920025061686757763627515742345300599438368246646478270973368860265224990269671670776867966280891932600830032335252493326218434464828908866707757737338802240536633821231249281744330609899899576919245730775919375938433821406014758962722387015505101195075764171471212984047846120686361989253855027827450420566341269872713945692966679897728996404958745783097359384628364215318517740736309556282793295998419187718382440877388532889562759075289582729353953252677177661635464709610014577562650682541302152335622350692405712746231086317637427788833314538769749257019527330560413831902346625275621472677344588102754501819291147685552131741058725365661807699449547030301037558605807001560300403124555931075371415496971591299030848681813181721725083546995146614847103632089736221397720306383771816894626055867407422785653559137493452638868968080460984307208648719956273809165171782322851733730891798624251370397413026528750974778781405398250194733648454560916679133590392970435347615557319688861088461905517895359714666579877754340833473010234907482569018102473279862778267838073682285702950107299086213843522989396158203029120156850513540173852119344942364504657612580969320864992760099790885196869755219410311720691682778019313823014474459710350505475377616166540202010412145032788630678087389043482975851164022490756902486559559040765434556932739405032104922555946852320722079343609634964588848789865530982566995047361265296300434112581397686658470537869845687760072171593319338434253979887544599998727755599192898415827480163388334854547254707053020701412226697552816376667475284607693574393743303049336110258819418950109179031508238857146904608386397226593591794051832958429364796313804366533243050769277197016203903153169497285178334360083694795982714020965537886693205093841334350613896706089672339440039229235683403271745720147618078123840233065099816506578134695298877780141510223396262956520005320702990702449366780727823006168301015083018708449096610790636927174756067018384400347715819301637198700651649672195775660190217757464241139817912382556182766289327515796548215745203090867778169829263753239832920544361964571779701712124441212166029664564385469133626258676576611743832267385951502226574996731417152897066967023614028584502607789260211176075662240630883837320154817006018071674221468560150039436108365246816589921215633295485402281199530738066360208557934307076717952092607892303982194463940354843173110896741365837701958457571428581699515973351679393973299582755576355806388646091048568896788961306985718282177501263266791240472557943339340432214762586221376660909644769121869432827264880730550295734139531938345250326712151021717057131933628079877369689786712257493961565080883871615826003621349418671710662664115599530503333184390535582894703433307183796259984201298256981907207354699143945209031353819268570924164653120856351002401724429444719565763439301539720322194197558889867039040120454154348257324603975029758245930701383140600929996322074590110218942386115703637589605087413260684971973337955246215625985566379645664158716823848913800374497978453578128545673409669274906537356168130731836530723484800845723767140614509470322497686242774090457371591630319372457474736663671204341237511448166935142035443284216078066931095100955658669340848708400129307057696709589255379558786171165069775604679396461238278912683056736187071700588365280872460941128662972388841535366405887286415237319429608571882228049963621432075161847622463188791763866312643014051105338553677872932034141417154626200123551181632492315547333877257818570147703061552110164719871303038699898404817213108214524869526235777206559669850291566591494526082810992059192682638835916868412548125878201150298240692733586809928352219195219167579398695545540555198074027282605575842907501033397608725710333467792007158091594435317674151395115386932366230239014133657667546329634432063413577285719190642313649237800814007552442268186050497641946757917842355299676595589073172346787441587557507081000526347331789033675710626802544321137446695873458862508389612771922899932995234089604344556328759961582561520267612819893756366983721298039797096417954170108179283305781146369478941200298004232878249928297215099235823949451412561799823338299430492166734990444493949379943372488318761975745764144981629479223717394906926475447317002821187015490632989765842999831798078361056363848319128703404304073528652143916661693622144290176539793407384804800732904016018039866824556509681295961963936240389667068642660093122218701791862960222302241986941096204113112893717672150032632095076117633164401229287541651426925904098680093724897716193283080552327095216521150461875615056657186673833370026419891103148360841434799606697036501572427173334255105279146543157209869561639738589889403276487060117929247862583025109625730563586498583307786862243678777555338879414331764612431200721774335688386487207975576940039452200152153974859807476064492529574190140499919594736773609692091420462105792631892560739706747183050518715281564112438428170951949715804020871790322141739599714578365070451812334204506080468028917638935193328438722280821703040916944873480129183192393177872634160742626499147493470754282315519733316029680494166251763402589736388639854982230864567520317596762981225986959682411446155608146806272531256863221662759384505205948458986584576159657759400626796000658102432924218013393855738399490865881373859405313309203866820712150780947500236244402888402161777409257799218189120113571075518566608094280134934102910517759119736263576803202509358196423204991887788023529874506531188171330346189571867844186334746023487374775412742266298107759663493328270604341684056553437176201336249250788864588916934671285839168169765636951342437848625266579563914248550578482713489538894946370970905182279792697798452043500472924901959954201264231483418591252318164251111734046718349683822041178865820546529955857702314954505244849790576439351152207361740809485326677193196940256491972100899738078143060860767406441880038056597866152038799015389649754127775887672640177769153124034790017564063101057714569085915366371342639552316319647947237822587816859466596549047311844293503629750334777770531381291048084888690819625951576167340443016083260597705619697433015815359025239527565324753509064775482407151775184349287172375861302699885457227582758016984440117453520434435536323030336202512021631565705750717197758187690888342113880674902402649558619659539191997075982116517368182769768667155485057458439046705735237732907409555141806603773975022397098475945240255297263868032628793664660407810889305165622876093989872019983969046870966640120891810368895127687706525568204191071338449805400118335828060804206004486544068000330738174404872428848470830069395667967178562544438044490135614058304848233644421828777752397427283871530484909215515977467763115358257905621960351900185622675317360378961803011030164643965610102788956833977209513409882703617674712266101148687367584719546414007190660916865735170991706818186546464833678327604042365661885403881421237327661357352638465568822369082038837986921026222816716109656843486213120073319851616713209116308426906532769517171114722624599236280458088307135672784105152708812679393894938506283024783398570615679045743774538503169610816850760603254128878328367343932714563389855340824822430412358470039572827509819657830701362348392590287332102068281111003313431043205158740877253128499671788737341393475622405248083183397522941013835500140413092210327515778879757795874152142138531274480933371372736887810201141239758789945191862777437748807107133966452819724952664339151407194922960743098857801055862784556814290410898339167035774829286417265030414157051700256903454139259164684040465992190735800161246374351074746238320429851704175189825602835424943335673537561301731063972407467108380554336620549782773142039342696109578469223628946358154883372482033321038350802233355112787352232652898513212365541761968703495353944685825475532780873632397583644878388664344155659796384088406282721389619631028955284344049772781449693244601395811335955534825087245853717943420445899909016808708815572747819495848869294594776605814852313441443209043269312813856328016543147116049424652524296559521430506483219724634805380535580661439208593742997084425350419495548011986141700743908784045903079270876545968129421272417233303292957677248030344873410412020429931175868157257468921730384148101951928395154147662056260717370767259779172152775515371709943270168471994476660300242901106090270764489631925061633331617857863568631030007067481794142581853550254387458598493649921102118502110597671406125520922459068877147482747064217830898157329724067443313030636763978182400725612599147296626641599284271981236233801764643587286111167341463058418021232577709925887709644787702335214956184901249868138200648173327702828042994469385513779118181596083281632014215463692340633055576276977310885915044586602943935459251748597307914092294182374076136767914063405109883932989818961600178996159547908484097642127042809501269794430974047642117720862440831589074608548436798038432268414800659144747630342350729082839127189703219380704469943263052065704620897800831832376599958911384301862140013900996323910027339489934880440977648370991304379429866089295977221973814117846119652422507502374271091977494965220793752451700907301769348708990795529502508962994600195568521965929146234553600129719680190167381668609712291347968438006869339740380474139717860813937490456463028958949992896185538615553490829732470045364005067952931336402968834153068041405013879072221364693828725044874956766532388504273457967718044921080252013081981104951487715459509263118406090826076831050775155531546640228094786790168333469888601233330635248956815264952989227146406797487629894615416986662554831333530427606727826404930267255637975736157613949163484301275547113389338001974322712026491215398747077078413398460580519157898125334188181632900862464187962766842011892548694666156703275333121140429686858684983019798117720495789429721218548755055757702308237607634856407359629317494826683797106212900358560050569980882309319864678733626738838249998192264954340468172681963617002639786994906045085794278557927529523896173802285421449948600072040105237391458647002850330219100274082856335772563621898366975706177669032503433349342885189086308013082249962384109291944389492463091434805178538951361408377000453835918394699828103059175488157843684562714484968299688725111043790588612993672418407671788099713414321643862934083201006894472088724048232549363904292630625575382632172685750983998396498990624743665051348537808073859758334952364996862055466083141252484475096054392948322139551312823960038286639262065757901622712244684931685890552205403301234411518482989950984213382044791822685592214142399761521382905466954070159467557879675155980410096596102291682370310020139709054239620886860158528086093197895342203114084171296999239967971276521812924376100295621439400357336738754806833802767556752636612978098520479101995439140267891484960503635746181218869390566339177928725896311771594920175430800103781466428016478729517126305069983031598718314231641398168640608227704307215453042763955838707678008870265383290562000016598351157683049888425801882683809166268335129532354014305389637584119987462240399347626982760413792505468640553226464611174823181054139011722049614958695640609171663581559217116176096123280435390587012210540988345544179954700994797095418293956266693898020968922004520305348219682405187168653675897779147684020980668459751518958959124929001142255701539344387083121617271788448028347071469104851032323733038031515608286895523897424967987590722282789032507160325247555177010608114170159452718900922021556598476500313946883441118334319978973178898757493919780109727597835330505175931897314979965162246845409734520703401903088328309042320836771478333769294920605454705900585845874544421410085975565322668776954305148385680031796850694918734184845733043475874355657369539807760092042333839422619839779737542224893688493376212882172020233334703008795369367879380107824655961989194494421062637111765248489029377499988355043327991322155126824274802517212741875594841598359636264696603158699554557761397592169632478506801780398003967767546139319328506512941434807267702504617723008775533626845703407362582766984004530653056355155187849150118123973590866843856372013939156829046899949534236539865703328996898758934476337392478763302405778182476179697038697524824642354681472998628589985275723212098239630439627959419322958891578582403353263651363075794206341669342314442812626031053004650985977707754357945797079818949967526681003919754606473946556493202318762814446112668596664050591755705086397591502233201533069774563965366459464132794898838615634779063726876208888015907642959600219759473542809534070043348800580129296904975379365693042014496335563952427275878278931099184384901389538403856591062531481354122494220589992319372759795648474959534196287375738033483075518291980959328182307786129438897832915732567656363391967798993821009034848259578249523982064483133450780071860929736367342085011428325593791874540401191601120965205710589696101877709867209577266161407116145215516203808398008036796981761041373470142164849603381816161803054540045481366881233884530332130007724693268957691163173214221939885981329098562038729503264984938199515295678657182022681629337188591760617072149891562701380200461181590258787473061070321727286073993438830888765061181373492027610071070314528333916156061881311592108547395484255295945285987705788208256762292787862309755387998604754667276281054832490208008025101409632093384891662792797223451895662818007019684527106102217025932938668833578291106018261706766816691636207822109550071335684701459501654144519903969984647548158661148926103430489536205983772578777715721473728978466120072734232473805735823873840301733539708767313269101093362968401290098275764453813712630004503016906300864571705936116960065894148056257721141811008932670851040196992205215152382694966112986191556852732398027020419470111822107271731749351553792166597686036804400175380932220150099146730948020530345581995655376368275117686178573245026648842107588971315215917868105379821379312555039609429893160269695330774620547727023987166668528676669936627045908085648213193402828940131152485937682927167579245878680632005129622754648661750086003684095165768349629831799990089965097880718788464611594717083958856682555962643837540195956245199592471638853223993459623384666270043030718633660986882021308258091892359943435313548530872133840950748563177212363169453378339247978706709727384321973853881504494480769101038336139869148580504190017596578545817068086384422461022581463375405973692519460189187395264348304965309662475425823477418167231289916090743818539982322440384152658720177431051550187422859319139905491948749703887151392902845006223072258674209419494068503072621815996420502292593461810108995755599067928557629750765803315720531184153700965820527834040459108888824784123773767735471072610937930817835991651238844376212868169727144742805559189012068879264084873546682612570862467909554827370769958253936732225667535038882306671811290090764803885382777723449005072539846840047516411939455821955094086955888703439966308649522307810288240092062462835241810205838152552302805328276877153212095873225026134104869329909080984356854098495760550647724281078434622340620804819477668594953695350194117962871131402121514037810335742786593336238432346730438987056242882357984008002522783262267714319452229975700855306616570400745572578631594517540990606384834064577561289912645103275460013841075639274519133625638399238270539486477953752711478604993094091458576496997047167225313103118203030846872621490370283259212418755682059926297763687697481764271536837795656887416404276590719557244153370548724074022774190715754091703571618356461741537166820903377203109322142898180910167357018617589444374268337863187048950011985357209501084689067158310101900722111309585472905870333758863666950658259648366641959355163433102871024768547934759206240384567108208118054400915517231008807009833573315862275480878712057670593071638745423249021400201867471301121820391407305929642669401909878064066480702548201048037505343242062358176641355139505126643084974614367053684239656036480335727242338235159196304375065082350051605067154070290364461596354859052266583062789892557136404534560655708373368907987800209057344292776501539481440221041696728438959209078428767652985282644035041846026148258569800657447573301180570576272899736427802236287274503856909317455708211720377909767926816302077980522543826642047290667868695888444211843804722302587608039458444479657399881563653935494968422047494479163637124140747341472242017947881870475417910451561917940529742907485725470317683836804318839282399646266595896048048128158103051060029478413586582562561599096024790206923965791188259475054982615888180668434945455435453352155457725718730906088215731188091838937817809493044003737363995303465681991468172549579852513202025343454972946130907593405478867948976595886165836998831903982714754603614120815794101139154102963728724016192038500814927904940472001874207098621024528046056099578166781877116579486104204873796295124757792171769231699071595758341962886733233217818226630267514657637457408626065297245174680494256940611186491258181262441877005530724282750913328191055233621632066457093198514248655825026788558632673074288101753732354325430310546277224373770222594487452027011494410681861338881717781158376619342573991813095276686681516383332440493521694113609976114687432376665790953989453928001280584267059857224433571311679131907069272476676183782368345887312998183266059256857056192994179958334311502856865135665994574097680751823716543936641111057316692287502205647208049337592045692351977701997574935599854431586282288915783349235929147604142777304990262528103636649130112732709960176245603320312008460185181929433586455203972749023266574549784902027990821312844548323361583694524923671286040629286190724596545998917623745814607419221313537192400824322636650545846723843092442767287368601321894701294524171112105529584137418192673689809908785273962690770895444389908487397030877457694855002461667085709435610133128168549699014340825016271171222825861121057440250022669772014509529979212418531866906994318571655744795927785439331836203976627788640795268952365152705991713238570049558385153664297692825788729366578534710981390877113912541415148726385892951481844845136982828727369883887737843062818197086950597742652546248388312265036393590193332695817524720750946459119340001953160354181717348987479946243759405940695961522288160403836457759462279628658251793613327140965175830287301289869044028741104559718344952294208837870727195013819995119725977332316696730048650906026803624687324116697419261513914223641701389257791174299196201424615785372191460361419404976573521516887874162172296033548762811212902426081529247468212033821343152974007398512925186906856316235015537647680378870133632969560261559416970239081283917062106954107542118604297779275031665638602859103027478683267869074550067382497132678943535247013374217384917885743527512337421011765599846242341485103367015389264261262247226326611671750427491674358826252549378775158048578143289160996516795386266565615608326434583088848730539769399971379875563291300799947434629517396918523551107583074033256858368032380997285112095800227100632429368144871329925405046120919341096943757673374864200801866689950505773558678922708498146600261499320541390459344022173547072954669306487586758297545878026210716381048741211378577550980120760173359610686651657116086961300533489614992029373883745735576419078488178720059133995639635662408496019627478903308256482419120180720010560829564519146811176555574324591055287066411028633336802354375746695714818610032473824335042947955197703771826733050411784391221716198189868862192889252418660796592358662156673582138536617069948013443852629688472965589002477507619598139828069707899720944880655433678673608229520096073095310649616788491638756874669391045826422331609829679488198353094026348589126567210080263319744116657590209994219446357457691551989938230263926364768428048084444338194921218107617718431060066067640818871684859704519010941183947526878954827950557405903447458468638079054043435273861688551463014366451866990273908969393767598753561970320440663650185046354861632090980661018779887446363533244481806339337563837755925031750701491823431864323798704823123839058050697590478359044987088626187633417113628288879309215201926886365151460769784646517110501133512130855899624839019185037008371653394949590366424349625451851786461429153112843332583082289200683956624234630678016501259514614514595860601638012946358745574902833733342531138035145885365147856186351831409787626751492592245146570853357697810083980037314491222398839331453474486811577752330683610843626239728087453667837469820931907137818099818414647835207477089222927004617269242166140145103645504146215171114441964765956914362720048751906372043316116321900601900498740486121758716136739959462493193596336921985140454738859434645478043250495711868051028990121137819650870909013355989236119234277213277355302303472912777324246173430583646482920679378570180871784752277475969086206976608958898958290803639133827777530558394735570410970951219744150876909359389781809107393938334450287864486786963634589809292388594002321535860055547273430595732859428406442158403050105654147259202126483343556405685845952814999292197425838416697573761600717197815375796240791237493499381068607863550086387654305437896755866037902941388687134874671012367456046052898471002740641483255294574296300128512333106181230760067119068935926338898977175557661039220010533796741772567035699138371904224208966697403086800879255489880424997763260506589711655798114583434672430275332846511381303785042904446046635727180297050466814451341020813476702253460430620868687086572842485280552746399196090865069454942454293950595036610937508793442855805260989995318537091969239043806429852969315008911087434984139208964516108083490477507795090780965728720115919987865602044254254095514305959175945856210769294153106122840151892171906208437751092036751170370726533471137299524207360451191836994376125787511172090731038130116113831127751363987659611427286530961927640140898895310114946353323122201679562272756782296413439595494264963254868977749966147499548935835576576319726735629752961911187442776062993687897484155850108639568434934045403099838327584403726994895607324405756316313781309600559503291169474737792809260678604556043965152840567681420478643606126522304908558709696795112549060954560019446849747935046344197597429912091715455483922685192961938346453102302488644483778635144209757475890604725647898917557543290602047965224566177412561634427046912470912991051279194160585443810361772917447442930821119487441064031536197370058703492909714268580868926275552431038468716610355854316749883094972496573776187935950784317607426009109975407098268476080477294509364079518809378776486829856971917951808958610574881587181933829490647365857953070424941736310837923024113504210446421074957409784252545608295796589702093869636026656539525370752496366130737207491749613399445798742952250374882435029093014578760280262565951811107863715060854241794555097441432511442629930575795570976041004977456773164062311476958884132844701232701361607449858352676205164322746013631092568409125652497256479516743595459703514638892766127782093071068340908905766213786559256599931024715666424103281522357569377046418392264616145157796996480601418739595408932338620762087707658212124619855680029674405220817186717978330686421390942661997408181812804499005650050017735365911712389032291579216288342889024801897242994976343382000730904658558942317635542577011038587320619592426860449730584703264610550078751730482285078655710041336926532853321365938956423510252514788179932697942173923190665599616026000592943402537740737332880106354792772936894108157098707772171260738796243388412850810121440361386635840036988878372865611032054389146324427511338139941290032485467110343827064066996705971699271837815133187610434179024253369372277134453305321099025466575511778384701328838436950318562310217251541234489315048501540740729617942046362096156341126466584302573385393083953274963655500299931991294316148396265428014909855786730890141160543593681755140896952335493882833144044604356781252014301961798970104687212361038649246349812905592502095085250434720959736170791655799320832644642948341405099029257378896085770818118024769797435906893736231712129184301775500168083224966919626816198426393561571695703987752700624031216965805698274432713530336720300418241322556884332845541994908422887632402802054820989241044873918322272590113238969929684526989095856613359959558182984870605770512149251911868080979578324173440530386932808833620985436084533291006671008631657208441637768599627701622052694587597976490657755896934737810196704351808489898307911511858129819888661135815760272918312527710618485074039379269499182098434424211101674303292890803133227930520767350450828047361030322812137559787686392392125619342436957173459035590435190544408362070445934417926034316720303972171604903306052268681531073952465035841404686809640799083210380769754199651539038073480845704997537283458622001241830604340621910720343906416039617534719199983958487236146259576224194739611982018088513066812925951924586415322313316444562426726957853320648644603110132916842840331761749236788215089873668364804794221977673926141050709190282280402899459957885476435229872509733402861041434880734612042463660655400201786739884652625882257963449407539628096796031722904279346725529381647129938941673245538430041010056748982512288811451879544843052453752583969477083633745786228797654660622158916333643994869720579055269783871121010904216754551885891006001691967162358119868286308362067315988992096990616586369712521366022692023883310474726385612967768688907326842503862721529928629773074734416488595640041425992066096866109388226910770295618593114465366803898186013237999759845083456887890898883925073135214089409626212656706281887831179331948959970191708149649682228460258558664264841191183597636260759414069828110190821468556496816671215737810822431605797550884730513363541924972272968515232339919042211217980400125104312422166692141073019987769190971193389446919201850060021911484208613083647346117725547578310300502838166410324855801501212061961581385594180830134171966818918507114096374508001192719217468093330394375131267166828653575470302514841482408723438544433556570595986007832449527442570804241234404122156860115188374559619093386729414029341333552446179231715212960924713014902890677266472734027710155619502885812549931403873060291717981218986112088111851439458182506817725447390497679747564918488486371688502190001645215112032643696258737022259500073831714943428781467478660591291983293255400249157612438111577047507984973166923676501219390610548578180273009188138343444863285326237598965804765015676072428064057949812979035484934190791105015781487344665543709857921612953753212212834030857475865059126945242381781245643633529750074437456281535478822219607481529563870445492598597480018174159045895513550494164441652345654801142804800051930806628299503652478787435396630999984596380469906176209832542177991562282919335509709460571785991794078572386420569675278050110879211018305197336949646021304617265825294630771045503701685788416043504988395271660683322666206053423691375968504356089509410574962699704898122263965232087445101643587334704613634510290907262175885148279614668459245475286327871544587707919706807367103594560011353205088221644118044167747413803973528041446625454059603334207656788183715406106306989193373964180026152228749754907762248246045360139475400252803779210732689923963797183954101306298998589002136096565363799219451825749863076719146210053229224127295564422063450222028360457417017252659027663468938596936726607597436367056717544050213857954530837415539815185585888096387594889716779863635226823699981620520009543379399546223496452215233201916756124712809824242098803040174746043211997452966062838212581418623309757343208220727904565161614783177551044564172516993720973577562470896278847800276277359076028219064434901683181944476212504087232089371743572503464482776481839784884655936231576944775271749435127072089883805295485488495518393019201711333451083769960685616590081930737182350019643874076085353629876733217014812516610179284944268939049061462252429448903962127876217143658750507856475541577579253785663653684924945859782315570036024088077310489872980379472907285045033652061851510728409235977911907092578770489722086258397981162055467363052269285753251149126741828083219696648838308051144849874465150488599452352694622822894847703845741390669083522321886115812222380277950779517828079883434658316570632257120676318479769987344321401094021822115544916606361747083209170255530800154156325560409175700109668871285213422149377744860326119531390754867071596476336151646299213370887728581446555491926159694677752639363053791637233812385756916039260451079121897435929899940514679269838710336921913115787203670581289221993718699717972890472040074152190204769879051291466298699827280422667247811931448772670636462465125305170922734992721174058217448922657911622735934035104106418409974947674679454550002426008984140530517218325281944575081276157525710791537486054765722176844822024132837611754157261179168163367664905370338986055678089351129570788486458137450590599946441127145023889029621275368751815947132419144752407272689975163508174068910946641442168671034995406050047855772345463414501338987236483542735889076487733324076326231427643660063969781685316827099188297766024743962324517266479691265748635740448100693536446012638822359708247847542671543023391449948080574201039592317548209708295395587693074931228869248440843778760413616211737052726502653837558575425899033248523900807743819445880466918263726257392155875246073367784644902155490182003408556168196875978668327913239873245984821902296305501616709619408745128398908430245552963415055787703457475495622773403147884916405418724520580311486478558342196712579890064241395485931052266687033337248857726693949686979888921125756999638954634323664818290580383022264595440082379695998693232820896897128706086782419412758273742767139630801525382827159482750651589118384013506759912378484510070888660141957447376717390341350076343425969024592024364856600760790218358475868796562664402308221394847012857976727010657806855025308272151814579386756610471724962311826841670463925150567337206886889984819409033609237470029527166652729074020245014278909348826983568247236806187482607303587917520478047769140481518078943264656791006725668929770114898529965695038530011423479678170358752650005024530114712478109028774968031129422009047772512282128766317856680061158796447306023721570086942312968972477285619608427473206757136283000509311871325041661179997450346444078540825845893965487507156010444492144199768110162205451161780862366035688668767700994259294703462829572731149943869735799655381587071112342847731878898934595237693624385002446897645323758042319747103642037757260997314103633316993554185138816685693089657122357541457071361311169043805024480750949348219707593014988415993004311180855462325610620751253094755970919590635887216553820074810312621597981413324684883701474668163536401799415041127004347335214449092106921384739125045469187052236253802653950802513872919854534295424011356889845255955926278648406712636728332066333314459637444111291935785805786943367543390451255663091787077317574827695571578900433501626780733271082005118053393650381461628867774472499645217648224421521620982427187194433707262821153281266969470846660908060113023204834697264355748658443006791695357874832697240308645066229404595915071874793835872459619942122469669630202967848703947779323778248145644620845363276380915864138327527783343921472571182433152081109082075149816828177193531287336266943174934012723837921184582208966910536714689612940270645693826115884212376975735489923544326980935088085811769620471868586292302763074868085662241064424729492111510030527528801963496087842389549195416610263634468584418440326051985821798498598575215341686333947020119787469007733598816848711055125980080703771718168917011157001948901767428949605965767223106649630262261012299768337071301945334274374053647292501679539106794511262747806606175168281368286886513404027421541250964654294320407677067378687569979624897881688333126250196562848530084535974311868257287239688417279432378574198030443948055065334376850244904521870427691847715897904594176269185480537380467227038824803977713382359001951240413273624521586112014629346650559489462484701864910525990899460412380499843550873437737172370857106028402865114883079455289474567142987832490850399213422023561789264548045232613382734794079089676585074492694858040603585385394308251581740702847078967644585620454446359141652646885309280374758761986137452866764366025637357334333219313412179454638868986215219587636413662890491579964659914241667647967535795885684013867210285911105228040104424601992839098950548365237405367704110013153808625475819631358993222523407716973435371732090507657087971545629024835362831793844952934419708275596993894970848643293210482282272623674780626640401016179024424103787712551244700421277215909605865542463968905912943095649928660437714788559802458591262000337722925228766704521955008354924361260664469110975279715338019910490301992966275602356808796096123870300975060148146168799329533729986567177529178142791138220377351306690667353183710601302480514596455713296563624066118914153750061800545006112514705837085333946157786678761027296127190645542428404830926661873493806944512161881256886490293428076818462559812263173324864029948878889474894055283471722901207938420796016036380903603534408123416232653765116118837379802653631781833550290554868349632689867123981327576854124455895159651429177861638064901903103518201561554847485473606696777192420536231600418808410391978583005384983657153758047182560145827392267588756446945392742536638097881715332651288174065388731525177541111528707575131145916099167603880978032982855736339131735992824769833831398598814563455741072736056593349751995825808151295408258476479045659062128605978684362186739271653399421274522048942692080244494710155739479912675432527222109897716770387261453019689876071988454171618374565870086965551782487235272430250119679589385102303762838904256621145872591853233577694477875644119379215922620667784942693654389869752840901898017110558144222198656209508088383641675580191908292489907265675383978593447773913529440538716387383550571281170871581722219255769405729963742752058174939574843179572125409584252372520025452862591746865168361191788021326522097097767620068897003620374148678071891133002575107251501921679567521542822399469991818140158744210027649457098045226291427435932030339878028652162491691692347375145937670494067975501150413080488965551698295599660369452406972913821829858681899332834522623521230167471067451027592085940003202174903369271147477766294520850376026546230608017812299466529536743578791407859547007843393208845460906169850365924332805506513414668305801667819040310982238990857895067224254120097750758706076388594395416481052171724660174711216375307080395887588434954693193877293950619124463599518167508323934114818114566475009324763398592283501877021381786802689484644898308141932963422146257626398437961313048180924973927413727021420643439669446992853186495411365834231544050898662558651515872954529883124988850060571193683493509931385541889862279496555638572157164151232284960275135450610235033498793898782145450720603661748659057541147365211066065895191307304859847671273893912623410643415480249293412138833680125806187319785050645679125634997176653561979206303899666753273375464023389584090716310338486380803065679371773964697012095184925554885861608534122379614381490410164219581818825289954791777320938808483275108656235425917071851835102175514357482116658238725067375415994143312966551208802173604680616840684544657903962283304167573115404250705776855581633946380218532361762819074849487950531690806358899563363269026970692550046209645922720406542753420098556176296828612960795200570906860853193249436074333104678061972173127673221684604341190551986723960766939115234170261838424336348027948014154917582009956907942000439772246062121039164603757261475928404044715788613159726178209615586448555285591541019037161260797037302207438066804902272178462750963093285513497196976103391991566156261762716980105152182102850644712833365787668456192435345707177819777608008101666962400624275043131314731889028968234740273613191796825112638717694392280632149527911390336706011901000883490664223526093705585940055501100550497560515058081731081957440541979813527888480253327120285689957590975688021279356761536207159270166457561565469015730779740492630878740829043634193514630874088441204785522911021811180209377870835112989177157794540190535186016345468879607353815895740206802860363893655180855508882880450604749425020901747099424951439489043290130861768611102521602122649752169600679217461418397926086799316241404172063812784796193160416801118034034849505102374128284928853774228212792306992242871459388709254950793610322853243464063356867768507299856190495409194121788460897727005553932727682058289869575891257563082348299746217006962389067144395980717006845994330712382056311613571914382542966777139937381469504679247719631860324665041094082179115660609057130230844213988789821581380875315029165280167080851697252901256936003932374091906552120902500733602694429839555458210475606628870518344935057221371197993305642278048399672320504332600841922490122221196871119868644498407776890692593757714589296166999257532542258619230454792699788955799567197894434263583929546704862366574106724998575382972115180210394303490502378445614850981842883296238031542381311902103299753956700251833222278671582091888326638706980049199600667700451282389323535356690268821104200721043421269093198839354936140453170586340367907745775369598975318037435977138080782640079865759108535185985809089904909316487202175272805789856595631132471124482666908579262785851857044162836878827584219618823879201264024990495374554159115553113654547504950791849474416797834671477917261655914423006998947506367662946844263202463329610945872737198583354899835478679244877706028118699975884393218096735876501625933443234721967393686584880532624934296185502395431786950391632368114773297133010357059282806831056936975876031965942912159693810889264912545706230113203605502024933674624864603667807849492212583058260625787568979538520345705667929722834646805829775387090855706559787646020686381653312046873427379113295006395569098749973431133156331198807892749946854548929732977935348798973346642319405773643872066909170384734393441555851742748110832742710361346733176997403659672977917796998816571945005694182152031180162376342914019143350151336510054708896367833432682178622068597260718683455515187723588311807107629524850134956258854739439970673427741926976189108015418381257685473316257106893817750148864540502227631739559331969488018685806888355153202889644312543967566409426562814546292541570778504422824787700881743470942618862363739193340759476183196759706614110636769339255647331201887566976673807927969774411735301298858771430336552984107145401812786567482975466964339813008502989652798183122692181556934751343373739418679282709799187100509688226196247021819735270696471351901550883099639183526547035166394510727172480781675741017502894224733494485034929408533893201308840599647312809498074826629522529926681649255645106817506782404698869627165082643401875255799618576302470933078246497057401459410343705316665559930414161381287875130980165410676974287397338879862721088671192799011094710491335131390368098389018582988803508903056094267208121164491941576530901930427423055537178909797689195153562147074261417564498337325132937292049428145900085029241354939858390570764710707730281540121805145876103624462436573064379295612393611410200783920732474452017828396098331477472856109696235088427092669517138054548038492416784045867095603765329211896842301073477535389590415787783353162877597278362740835716067812660323220204349401975530381290420172732123087017361708519166655689827201095116861312676048832692653828388556822439522455698044612362558777757401427179086226868295443334184673026294645150185728878097811388329416972430963467944367534537804286947296842043191708892184931751476173248224836356274576117217958304158218059856856199300101042825935458380458338439752685113295150560492753836731492765351401848987075130733479427079234089171103920752240671930660822799134889405291845308872326790815176217345787205247779026135316816134722975229921704173042423455962428564187621489131575500254436594690014716660814102719809377587579689496821576990681367222997898363497401931558563620010651273190103766751696067625629842597168006912353155154443515288906131461085549512500548951234060199118937733365435426491797872473162268067983574332055275491092086349128581389941715286920023224772968864439063089631280648403096022818776289827833877173330348559885546447675807110476393841120498349196719899337610731600515973292093514968820650553383261111531489999562514985477969265105510106566576156173455737983415784229762140167790999154301372166359865686645354736452849215725081640499720419589531035921176180745124844197078837924864158886155498189745615301862475455742831162994447899831308657260892515311271317707855743125177390424607503180071177001873952124172913221520141301641884394566316934393701763492591363755078789893337426087003390433488047361245520886196280446168036850920769665975533864755673288364682388096841778264914004825978042838135977320212233524311739287067410385153568777822264580426339199406680532711864216727932043612946100703248661812269275207450201705588388164259643597265213055238673221350430714743021002249570537548721330003536017682710057107785379306738921624734699792758130087626798432314252142059172918724370842020386947202727174845310999591210579178372141345446661538826838888242025820959716221273530449434708985648982177005707431160291418742080273993899222747142994903184558018578687437568956102487932758087697619921435193548732604551288006247379793623382872855678197136222755275838946603541019774066315711044556549422732354319098160918963629204953102903272297039054104212385330256074934601336457999965361403681897020077932268382818672799338263953676241989155646162046439131841274532871449894801578288383772128147138554320049695087440539485663854808775086522874893939636239394565712449460592810565602811855911464229314621003213283207528076025878383654988488691921389341277096285184446183076286654434941969983526957715563814560158547476585586387148821246665235161622611645447068839404037502925505741553815577453384301773945526388400943758588580341078343147695987714960611630170206594859606564673873402416614437064468439787843874359201663744291297578247583870434425525621290949141656767476136927734297941169746329124838557580010144297802451796737472571500289059319295363513843251986335480875388306358897455492352272802734946900183169358924579226579064739192497789911614102031720537057045361873105190419180652185997682392544025059254003616228021427255590982902169873650411724370224382711238170828246674984234976032057832377531800562525019594870210671146932452531304092495103398020389065885388330993935228513612988292988488653005236807993253497962295643266652871264512472359334317316628282993875239501318023378672451122677945637565200805973085951802737305728159768307653396998872298091288192365723543457974125038231416214079902685275710072817004879054423657155581752441962790354224505277010722327188687964610677962152305620134487449901552242613785313456789741925742213393291302953960928761038383215728874139334916228479474970327015362031313350744231525174083384204561215623263632591097916312946100321783028117569607424787699790701418649678153704268589698943673989326095748190773353516776986291957223474988385581914831849269376734611820584426245260778408345726443075716419353328312834102065139872865100692804689412034919557926562393224069681028461029286534847535879500481035537989450133048824768388316140350042979036585171849094476409868019772302365292689475490501631589856895572612318657378111322631212064306483913911833571118909405209765830691962505257622815749491983260958147534293579631188851947688130945619052320699719875706522964791080412084249308952531281301792791486558869270857248268030456908791921923197835011911365132872640443204164237431928716287540880420881096139450978175768354581309054994999376988454844068291623401121129112011728981068364418681307888846068753862099486486626474279216798926936516244652877394512552151138838129947040238216920497177399656971279001538332631677395071776329255618705387851779738100185086550414377645596831649176143792960431558901821537907930436069412477233646588386107492292959884698348994394085835495088609335862038653869547629775631086932827194357917564728003951154968906338869662415149433563741028888753735599212040516843479148819842278164542008255716993380255810719136104250718483744327322627250770116369356334802963204460732212979532155730187821930795903233298215598731786165092692913245803475529997698835895482571131519824940598589467864866547229460378413390723044741291464034135484177796219366568122906421105113605619689182520551611772326783180990751758101136269339725839511100828968956364910459384923631511514550274760010284613193440080997719155470569153437011158958662370077918433334054826816555388396190114557263203295763297710251714597924837303975243827844146213089259062616217052300040457773353285343846058337962375939184542117143418788964916856165121135895982532998906101238475340105685477476367221274750825661659428582693750979538978019454305776891594444221449444107964562380781775239275030714099297373401979415150665568296733398556510484687891919699815519129191279502411577636034048728063547036920307510833107070297058401664728276852185299871669799524921484838802558088686935868109398439640376173506835670695490210788674088566741512303859027431330240977469907354787061897109748750487370731627592342469296902807825393671621105409963531206393649027602477909124950213640659021006628160278733075002772474948640049665058684876400103846370011946505247359051119005469564560451742902345713781760816942914890273883383013957027655504955087992524029414142062711509884904175108396544655238188601523797146576332251792868094727769647925365863895097340661975944798365548320058123191227891840737265925649595353231075529707947190084796359863713401914822819981102795336165154039562412489406872144599324844745306696991893821269223994335728017045531241219273257658622072497221906460546068520000862806484441392599397421901724499229721956060435964363323507917498730806429571434347303634822939002178045827317357266688226764436570458615418123763285041592187333585323968609085674901408774549786849601500345094029326253243454608800671392467612172354248050334818218925130108877775972568146689812872186664224815396590687665602536762576322591606909995202588245972228963212284051821875471249474365130115347110897930603127230134791537025303070825025799587279208563365604561865374451355585261195109402857897672501260575675594068403067008267944179902602378789353754791185796117637050560035504318098222729884716955936209592981955593826787551831347117623061513602464977229277789198457160125250569154639211353877582244841694991712157935345718446915399665196899098637722359759693293921417025512428963960895199852430875906830044026029576805184316543262380594984142650055253246288716674061559103003224976875412356662092559461740919701085069378227889212518165935647978826823814498640623716937466759449241356978038506450870860931644732335401550311835727061376869838872228837446645835853338172557722320021300424452445528095589968938515558569582534330980860291836420150674591407841761159017984619949854084249195061491184661825044104032637023695046729394004932393660710813408443589764764335127799581856126178133046906628689853335711699416346429695236271704434536820242714645740861701018206016581016538195589264299754554835260493195363576685277833796935039810919674439354389399643849185130330503422991530923312414247322016390485283363759008720650904938576150679346054779682970363670724881924436251637253065284654201631597193079143722190607458810107838123273944234502918623351150646517550231512417225742393881976168253283340697754011106955764920711347315264459780805198893350276640217190369647697222700986748304238909919924262880086746665790351634956864472772027081722143384181459507870646388664030595142590909104766527066606370988591535734230983819178235931783880358404670791883600840395341480110538250538777953534008356932170801647445982581584121660555982173528053720234509270784802379018507463254705911308587033066237280164669492482949762018600184978089595535226303590832270217829401644745740067929502430828213971426662631655183239136275339871442568332522054360031740174424193078088028259268880888366517575932172468734027551750814120932812399167165022339827444153571760509517465990684482722779213880555564364625367392177437814546163270715318130075535154272271288138771238237834520965903704570679114620121455824955137713790715190940289241230928613059399403080457135632777875277556291263296025364118942690202402124000277340745277660128527834793937607503201609934666426534667618586223986157819294831704138711175214566437816646944376922442610280896416327836387105078808150673218138819433969288687790423845087425093502629919601348376965514984287538921749856467006522407146083433170301955336887214379476248029645887477523929812501668098319855646970609603177425232485509999359447782604919012524199785570749359003064266005184177605306935057580851347174415384845581399237127478236766079353839193996282353817490970244950710967771546857879319065225137385067668079016612860251493878317095397011356360336516975354950082923571528456981955542581495040636305514088184060590342752407624887536273873624802253318588495024642193740407664869083132311906562448931703625855928966803920720769444389692137764526085517583438595049583289655106549708735539325565521423146500847675537543226724100397692969481735770698047921245588081149974358037445410843645219925535588717405712398887587005314917665601883159470484519942407955815889217793026540032676374381584555433526684408875613144018129184663142200351947650480203309617949964368251749465955826554252338755103507285945849248914610017000559419463275731613829539414705346476433705995207080994675552077081592581708062944736931838007220558704892038939321799056426464853144837504435608582754189330473314809550622591702718233250301088460781340965863072435922472337133388563394739538661445104797211907134225416406687987261611908420385011354018135329862577941721562916065918258098218449540891701119020281218222602546090216619571044097502928530914990997416086267970172184416085129517125356156134630141393365598706947074889685872867180015617559575514423825864460782056900670974451284658660928543068467068176605026694999966573396567811362478220832630400082832299679705986358436370415002006688174097141491108343012400493641901132000192059318952337334056681819765818324270306906866071598185394171568624533029315774463672416327140115948028732244017947810975052842539609256523968432261607617045835495025351490134359817398631035805693204145510818762979567550822828110022485708552863556657376725382078529035040889331279976418586643597633065887823074885534540524307656249535544691754446157725630498242086286362888740661365753198943211683079046706719116001530265264135600259860278422474222177612888688343680885091873670481370104464146096611890482214607416399768461131590494960290366761455484612359583137125732450496540309497606199647280551419747113260241448876459746483878948830295703088386414273760355191056205353828629961971059185474434790180480596211189027572761612909233437657952546675541348429088570035153735835420384347835024744541187619930127933621816068136680264726689586128997493351276491421526108667028428259783209581146719052423286833292035965660216824203361357749883793111677058256628873377172101206121282110764411635927487991053941239707898552385527924108693123711929474577276159484950637834943823842896194066254076833589334872149098742341868016605158560287014479930521189396676475741477400476197226387289826001780153064927583616270855257871582067788330221145849223118166700056959757940346318314054899265251553239909313747712417207953880036633141677477794625543932535140785091820288991261106454470179075448458940307876349662860027450630028183466869301700041971965379224748286226524361008338895864620380343331881683505572100579024062160423806902904404059652295115382886224633381234254654077702763745229071366538522114824697203691635811409864959145638684783650694098808710649635725679476089338494257847493957599992598873896753716876039767794111986291936223448386449976596244064393261076811302061762041420861974527080818760969022766505792239467671259505821148348721469806978565663572928325995382957748489014246526468157560477467160589819515048778841616673503717857809936520822036781562669152524019903548380846488081889784643814801147843976205739317236839402945696230502442829660209593989090338349200144368404115794125392806686148847659786083740908355477491321045716908832151967389370055241365137460834959418792995309893349800695769015668326641336529263079615643507273721538108264013639541350960276596810690594997760945779533993304101404489924903736382038188917463813052059604084981590846972092189931993862288488031838625219192731168070508411323951305270615047514137088564879060358588585577195020732296937792411329194433035549609006817064379528886859981911383717043581328356375275589791861693568498297183227660523907819606824477635263459667006078406332438512707824168974738985815145788322908400644470121709411527702222052469070438918706915141538257721824229273476009202874979282667990630396481531106615276949531513616009024972600106434147768852336620973132299018867308954429033544113825617937937539299151421714297681236786372053921453892719358287146585307137905457567667340803738476168537534594533715372719549437040469346585949395262164488934448286775798836940078685135426401303206400590504902238442305201793691160469793735093729609041032089239975105388463538786341563366482733911555904577839862981874911029721103438817010296290867334411678866190305515938284318601451569117434281328904300668466032586014865380156543897420255803281669816236318849588409543181190292058015716167157914278905996037077703595758936348049822786105718036118146617685808027692504866460197445503393948494947913221592940837330648952485168835175655977089724013625827616003311977431391659997531911385722817081702812124554046882950247699134965956065978691249444439460555621807637030355565103408236492206312560016312807268653436506522703220240117174575462123092597590038494867796023213306960530161780954098201802523580746931777633114094719729819685831634828378874705776969751537556025433661183153122596987072390689930529123907066173547469394325250813977213140443235566002417096421771242511161024168937176168898743096564379907656006255934759388622288835478785578621783578527124655788992272338315415287749383821976471145687094803128669469626708344290535008546704918325754500451288668998711750455808064051496602518639709926171670912681377456810837841105826619326482566591281129300267585767101550726683252744494691490901438962470611036677995481986562780214973484008878999752025719430927823135425646275947110787408757312460328163825046225742629922648988339422338055084572424250789944965719744040647320403055225520953559818565604104013459084356419762519099353873057131544688440814204338139276181873991083501881761356167322791521472861725708673392715485012553726683344819684688900071564295375934206540374404145777601733057062660378358473257746977322625855392257271276917406851954718626796176447646578490562996043114948260959009905954006489579052954247116454360691382041776832158610025159910669503835808336279427991246205896214039957095893357002811980552924486194900638016429781405676109232216483648424755308791121895389158115065671540019456920205561618948575456467172774289406124988858720129323080675215296885218014195530425301407498206062600858874782488361952276984237737731367983217376076321513272239087974667158262327409591641018750416731689618182378543081979556370410932448137056669291814335138356327670841124095052354182166458725872639387076009935021325952147161977399669657997236581807347234420999129052010071151823170136629759489865761005752694510787936311594725392881301240518361165140921056978600556815560895981685263839770701237630246652104247666320836018292218638743683070505333453776514840625598384543812679940960555130070077921947249008847597959130531095579980395423539918981274867782693137085412406203380292230719419085845546270881274874811607998047104542140399968785999448488455161190101607811288452479505804420196432904273631416188876081968856527030082840099761585624115762365725312321105062568553109640318959769419524088170145111456578961728597289510485339487176753394871891916991328333408299579676344132276790498862618107641138905131228029701835720828098784548977197815492406228174940112807798835441075895949857272154658681096350091294287162013404537992975526895713154849650005196923726216415511217253118275212687671773045824786716386908680688964049053658056826575933618757584861394520304169064231297260307564179730402810517339898499108149758339906381788629250660530149770662136672939893051205850955107680854008043906709191345982312254086631848336514067344205989655949623695217963446199550272099311904174912252186626162961865265286402920125423557597135562792441545220101209217886760732345325195597753652172467844513579664929398328109556476011834096367987727231703688739647931687807120378709160690272220730354150441247901816605527547559804845274542722803401315545888131994084115416972746410282953599845924339054182876279847475057647964102971607421674674851581276457329144394888666792365151647510425027156291743306612718610303815243108757423552264552135022849766237319870102984392645724175017068257259646754616034939596552781338890373480732884035943530389716021711668871788574071705995797240423538232449507029408011622514746928282020062119438594893818095830798074379504190804961854193048648970630794854785055069295684132148480366657758204211752256327221024963234081727277297993934204817685236921326768538125427847322752325741399622094202609590950417793108374003042295532866476743470332401316940933200439746066184639732436548304452780134294652821840150153712127607665122344785251524110124430057200433535415019684887446105685282529356407812397636883271459388013146026891899954717142503272062210935890194826825505071674418996651199235316341486181821613153899539396668240948647190652066289728192342517493537303217449884698204939468949758723206849761483167908808416422270129689885440255448591277444870073714925456766477451998907706424328495579797101706609754734003652439505747241878991805625458067875789471021486358837069992555434309547820038102767876268745339805031181524541158394073865405550857664388579909737174380997459643395313317587182638200180552245228187202914442715534788108558746053462454747093062707951940346763676898303983324375305913831518839327017906048142659003979301595442454119163213155696054414910200019705061131909950186763458612188054383504994978914946098483491036736463811843202225841574512353583508741083852809750234473813950454551050925716392040449903693140021507768337176954251442486319970501243318690005898981933070853267671948967980155613524389318879913595414082591207708565762100642372156517445192531570323999446330234053092345940269119929824720775015291891425034379268237975124702591391567949678251982321985213688396292834804880642819204680945931973743337864102861860708054476907646834753367885081934733152110027931743065738788597160269120156219367586062695681886585941899765785907573742088288588939493953927896384320099818082284434548107441694308111109470025311355689903836037892339960019392764723599743980256741940594613852961222755145365946845395219197848754787336378164717555431328867758485200884097294404393707362691681584540327611933620917277189579579242179924284014767469131194199370194381553179927647794389072030541573416759736624878434150189951355259271403019596348849234104679060445475913692972609936509481183131574520163935425443565634742744622056867689048422920443142519376382490383025769678090579995558220195243854711972554023580919115733128093029035486842736002029945703801025865001912209518365321543340726506357958800973710712948792489868079042955500752878668126389504918172991520276081169334644506119541743278141708214566635641930942832533969577382107834191171474544184226138445047453080530834040348044166409729846506180457408438893677890922565971704478011601587546479400231647500114192225251603738429192926988520526341662386147251328617174152214551670630630377252220445212727831113704562794381072768809703479235958007746855348720404711448876185500720230984627863958400315470103192423988384937207247921584953321865535301153315340749881365493135761311487624021178833499809739196806684037176235197298389783815381966722019639876490218121450756654997686533681727929552398401569554027742169532047915894546098617565743759312890765200318528238890613327511634451011193436868120302265298479309383971059276917629292067867561305577876512237438297117745667688386435202837307300647374697594332701332241249550344818807502370891510931693995348575186379123656872734570866122748265402575776288160404027015713310701309292894134125847994381601786973951984607991100118368919175396439546725442056387882662550836928148991727488634394722179171008829743766950335673401050730781544496422025794801105519022435830947486479573177568358876858039486313786094957560484283026980099341438509072212852895020446873470470275598185169706796665364012365515321600347028358477604236409762095627672492692189149455015915661117471089480545974212629842272302181162554505606827628186094191677504517296675254566654062047661184600197985887753846630030168451203904718066400696811872553792806120055376035150675718792653662924077937680695195200802197981166175959106304043404884726386962248502330415080966020997127517273584576267863455592696465703362761045123838434466197445069121630095728518878769115480791643467323599871868289293069095787867011689071856710602224050837578105125674532027227125206441179106834836100516876847239216984661521808231907429253738735172868956524321554970267055163068633008914983402571064026413339089144971283490307828692276308185021734871294944354586446219457166978401350921208070504518566445203654569328443235482716872193500771136660626928395425723533074488272829902973218505486566967589612815332611564843270899562820913208149787389309046845031616829402001843705986198089895210303362275792822248826717295748231011923316013096982011008597963272116345390207754882752771701874902515677502987530567148052012199602720324095220940043835393232350945275685778217373762599463560789317165543740967480770717984440747522754014187399607803758819867184121635626018714737881108211286114978030176629755593989680231074578993709911521419017653170349008940973502110962399253344508747577515754231895862127791478530085985135865174991838776590974129426051823352375851300123701406660504377644661651274807159519776793276505054023678256345423494066987135796807539455614414666553322221226592455993320243029337949442203955754331115237178351761704069482257796834559399708063359174565778194691601468201228867244778519169909241488754627356407613398591085508841766267069481773785935542452385872603485762096908227570055936744095671480719217168522718440557006359784480004248429146456067214120106708589429336207706749528045191319034119338231668249003283778959038425314578374211445277168771673033914120250536702271250094167577329707537949831416329332169988121965103264712212485506914010178441113783500383455047314252092599635768069988476424583199768438138795443229311815406378724578849394019392989718422873178944933823525528913479717020364655680276076308673297029965545016728484903603649216045028497836099752324092151663030765406408035942756057549321269281432645283784516215740288875633518698390739357151355238330576455258400146932841574726188225527648525724814291815334342890871304766153237781061325471719401113765392900077522332217074253490606618708538785511253143079275832576619743880388406228986805559116300079808154095079827647688223110585563160935282179559277505704571132186765590785462116420961111898628507616931339586434736012595997249013589869023801212684479208714091572524130238169548270876692596951644290283983418298704863587275649775188012070072899506285605889450443103143170871045105880854234137911981609923213040962691232150393293417394987992117519402917611990157722144048725000751282307249709534766124571070330188569671583216092538533391071685364041834636286215601327828243053671260960966167951161905329179382751733365172979006578933743789655517961929878696995357483390044533655531223061990720079262068018993952798673471385643559949736726859595291711302357893346094937933232468570070948540356794707142182502678416716895043897466897888038001838379455888207256219763558418063360276051917842467418599393303025879914756236702756735491193010445930553336555105697353244921691825052963009246164583542273064757895486253407295066229212688280691864322320983283848001085638978836356538331104666268660310278675021966798048130720704836997703836772875935053691088812165581108588263429734613527359728996859267365405109547478003596111358290578361201750928964038170557565916223484801555633779227707939418947010067307487165517604383718388616501283408864170210944522501446390473232881853315723465824517017833272739404559467719624768839017154558168578673604075341226877944700393269164437415204932733948311726181037183985769437639973459224487440881987124785411286730475073157517334804985223236668361434445488884225619326288615235182822064734919863615657767332368130667380195936749351067843853169310338586107952078853371371654974910237785174886707968657558004897054582170697589145540319157247256762018634784959719003670139643917669387131911404573400433819067801560341103284012699519769450472687208823572217190061773543402976377308530179360424064221655129851474068696092710794916056154986060044686427332765605513257850096992141042304941974587981386283611415211637015067529398062486968267821986964455687714904004428121289317665469755654787215006245200745858364829251496327011275906954485625355774601028737142529312334836752624999231927931264683933654663377669132801728390028957993585880956703994651397789623467902072931994127557672778609523364158904061770626150014781757200637845383270166168969206290005716595341744362491635719081206078634273079593525374194321634520077904127433475287850624185541666935005549232907765013542574709232390819563975277768579249673187377836417045823288438609266470709217777155563474980690457331196586261567132043336130529484404383317282300185048150872920191590698835921499196817534877522916334651835670032026900744226165581062652074915651362512421525646197437650275557039813187485647617906482173798263832483063849023591326888656012973901987079417351616478209163997697217230053061168839304211395867090331202110069828837068204618700868658429660138067372682175553208837413472186447750674320986246424598050903369519595684072454643872918510131068514415008177286658693085171377688201025383690215255616391003330434575164407933431960300614287197787589961487115529461622868566812312615684967615543969784150389373747844390265273842328979112427617119790896131252222002230497109633661431301921526649034974732649847240360230600798519450081297939319137612664302962404632203099452023654336663208834644347843333554816054996216324780872156737452424863373565841472982596474348821607401348431075514887721032096745377131489695560366578880613610058766816803955459095018020854199826057788685609780177685729051723136186733904344607708160728715228085865869134520951478090339992083963721868056533988012311429779114183460484299358929139981261375388890153342606029802208324746910947678211083310123411684094896864312507743645610450740116806469632770213684603014493974325275275595163079292293717031741379983925060025088308967302374098394024699996319962849816409869463905369839777367133856705156806743094064653627645222071433090194406098688319473844269498456892265482240785576049646640872733045150857803082507469057393106239603557708012564228432231811863155896037660628558597029838777115123313026256373923925595260928084675598991263704499343761633854574060740532893673646080874096433314241608083924356033586719478060894316258023862639726950789636948184324033594973351540598885530844219350047224704345207853168396640059383455513399449743249429078841821897376669766066012578936852179676654009317852576828954205296501056674294371203100976757523535929486350371303598022881589403245339615389600204224744170879272821964910067327277910221151643363054322928689628833354539874081772730299650514332178789742326193978732940205471456998458708888925781153458590449212426611219900043313996326084736781449761076022563789434242592424124331274777607111621997638395997849856223236469635096468745534928194244719650511949970961539620153955311302481255423367091037954306176257288250571399019834682074124373150499079186331235048009027610787430196044657245475859821495328709271008799239718150088574392061813569652727787274919251965267728296421887769427252272164117940113506602412864708020430442535902504446752124225648709273738449874377387058476100986666891775209393494405486874796223989523499810621416931158549375430804327607595019247823868519784391515392816512037699751609762062518316577824105836257256647261438935029093398021839203875010636846546725955498710695714721537595821498236097596880780132384130826298863224709145623184216541861238551130128017421437633330258558652916556923984054336124785978346290909688276619244639170469380538582231917770003949056745375011516636718673351657611675138922616954236282226995269872339126939753265543518293261147840501202036237480246079440074770668486547275265360931375738895591562668855127090376442282392768321066050893451009851474763882843162595408470020822674616530692825018319624858278944207432967004330510147119243717542540147756963558208947383655204362444591842946988498237304872276938447705900003289861477751494938249963960743961329609705243947845786055739470874504395267173278032182263134110875668884339264877000173809940359813208509558766414218886315924856402882102508600270379425249191740729709484675306440251788461269679536871004349581248205196981351764749887722739828172440152987123032853241375624111358877224114484668403923846412287970645849656551628816984446944460183539864040062614258926811570176099467822754349757815360874391107880438431196961489369460333894716407581153454681259329927627501461846679807421938590758268332255284188007425891860221398015660003850298590851511968163081897518395828696375525095986997574819117268572574158648982314759903487695710697815684699721359812656805108438106157603453445872439915948624072300009730601191389071831502328553871971580441245483112401859935480436500260174268164038217400617684119869513904245610596051103005145090116771624050271522359000023148542472325619482929053232415754528527220300283286071735128996526849293890889033755042281675573805817849600642565509492065764548696309265432737940226629708667082227491882190362372313554480954049930635254405875704169422470203618027634413507986995008525310591717495619867613876328023019669279088604939235364807055638089979979768638687508880034288529540806764503637872336997413177849819807223259903076522496317641141170282275923360863728485541980405295288584753975372408213853766894078778435473999651476320197397802573954594865888720084805648713257845005875638614752670832938797470649299471788505016330680077514989830540890565294847957686358386234595084866801454281287137064859109655105335426151655442877918352644940669272022653833825569534987517994004012798985528299676387609652570112297185713498791511868972557413457386576021690704483882523174301517996223292319690594015862418858712624706445023646539397979413827228749528213538748539639140305959224533331512755154843791682459837366072723572824544337387445835534019179571043494381523487066880580439240364690121696239390885338068969721951372551031036600725580968300358911254085591504444901723031833373786891808181566399798999560780487467279834700599633263960172033676344750367735477762980150974457813245069799047219657710935707447862471095280083220891758008210977304355498814954524893380369911138211247143066438082552730980712399846682742786574275878224672018732651509780981147279722533281923498862807572089432422545138978107905663341899984862823067721433758894292549570651518918277980279841527876332686531864839882443888808421779366857727082783540200465317748192555607137039375943168346690543930355987418039579268795550156650647173852587631837277424524604386258340486267131795500239845844557092246558923961559217186300473135616212629960419422573330573898234048399053751335059579037226653286897108524372754269762006056687017729820745933723511563632260349631251876301049241652793840747735151950142896151804055981135224168326456816027378073164349456261356057807386106018541670584764637516812522697452776799051704344695595264785082965798865483426527796863929693854868506198725415216759426385149644769644426347115303064898892909698021265221121536071397226066051196508662815438442150463320994536056484723536996534901961162269421521341448801745493157987690353298459153771526816942278369696033728954175539932695130272739772793264570258365175586841646159106370744002699979801813931026362760909262086495087463333410371892853721952909267337604077950811518093756479622678145466935623043551906101552633091675998785639165378157179497256461750641556807164361953744227823969597808400900556461376150705267128755121832742932953646054366641731834391733780035773844002329095391737456182448941749306718247856664241426236063625377398044009501687055329957193692203980560402636776308275578954053418166293070269233593885971913915203275616367628218932203826013643891750528428201119436518600515075808464188683072721443146552993297271027329541323616988955171196859337093622051916978879012139225160710635231063266357904017346546252665196348874076133222064581083544530663755425871814166595550908273797480108785849122400192208361219537150928228581340796771437012899726237699943100602833755756832370966971849746637378238857113597245825647587237293101244500147476297202386282589678525852569291452918744039373851461352672750497260571854178035806720883875770645363519919549613130783158073086030883886148508797294177343251526494050187035841579682610654104412955021418434067181979673127895089048378525814660540386861554377830656757878609949095231041540717591771818627304617564654636230402350408400158314982704400436344103124547838265124494663294760527047946320588651869154587089137394622507120767825813701916057359450672474798065374457067962644212002047413337706689699370723951774237640284987772543128459464711149114932339526354074897107479224457628532373484347088342729866237519078735961060075361554000154991210521037804050602204967466086252459349379042503137021352809357298432597416286524515303869278718291906416804177519831757826132148880104972106442438225220964253705975261514421276086068189937939367720499059655410616765104940880143311247135953296041162554194627512100051850156000797182330571434237106277933487655556289581987809765615865879692740794566933145082008858568539596653510332579066636398077752241591926125932520595741877929037637753969377321077819655978471212339015006898000833413761518924793544831396906563443571298101235187923761161776362561192783621874524728661872341924922429207841711337089054198037338664992812428605816773211180818530370400823374603387453244851522251329801199530674097486280136815529407310782878453111066118749425643213217746140653151969631339700083645886627214423341672597086383421312694394083874680686871218948973027696289317862247451348115708125035699081969361535663011599185730658492376783860630154466386457500186282355353115358546510771462001427586706845474743159043084738702131104492085448548778300318056470600444802594056785505556875896496688325805981855719198404402298124868684691600985647067599200738553722283252443011769614782993188198083760164874555935033817027657708028165586010347737191064517880985177701028578675740122020430180128853252923124495494749744215636708760097654515663036495358105967443096205682833887802286712248339657818256811240155383878170372894955237265398889184536643887233520304495191230809711056869676823992057997161599406766902564695655329529502227151307877986296686478800726466096862081829680755156369266220953351526133872578917386177050041508907473770970882392411380983390470725530643749000844668081694089267610833947012175519426479831462741076757650055548584968706152665082312135363199107827558786140963828716710857321101488691062877273245639764232078216090132154563978326758746358873255347588045332418568832850267410888144259150521791233194217974144042193889063134299043459857729742793006211500433846603950148684891878899008479957103502725301624605276904908909262770372972662703413310714458973879979669601047071749511830471271035893385068544929832763618343515775695684983890635085881166048997710430778455788919737822759962611297012234175557366247844660433266235871863843622451786544422728231837586685680586559588475348309278358993863502263391441637545411266727770530246376608324457537570993150614306695643592959609434940282992169433725472892592222534020819390722264359848563032875989459904640420874821556423566535800171648866323506507774839931896116495023388942491794503782325718916290270448525273812272496217986592705060845341025685029397926285417648778570579935466498487789838610133874683809852651239546124163223939228668663721279914338398771046775820247735567474145025491467979374957799635695852996460431202092092284038549031868527165628394912440776299763932980904167596100472889991091570958356854109056484123064774654236200655568240510544070566461324004577174133599546670003001279409207474522487881155677780955299229161222804652729763726112458430467615959723524892468091396916956120592343831565864083955724536580450951521566804277657877237272755246143959096990047703072625256617615838130006080113843963540582457276135000811158134202102748046960912848983280123793142406638846276680966763609048917359410049466703461608464629273500410842694019706838207387314553873827322514840015753682095974080238528820543427088181750445077534730851733681637379771923205702650026565636870764542388247963038598383472422238238283847828236282773457771781090481321012104142835209863958430032048540496955604212195980261747896478261116693392646172927798642769289713070557160313634734877386823447224097599211164062021159418952080146383435809600876632775303002436263224394874712898191912811966310759716877532851948021282279492980492157699434098280893503852473942783771915051527590112487051998987616648928566500215993129927176309623808306896247282293577615691981836250016340172592774011073069904589961532716038467431297219059183214359859585774418249839075867495433224274961499011233415289716851711866412850271884176033598191687359851066309846857614120836967426262496688379382390395141137441780682634219243688181292917524370714658645212867330978854683421792008058895187189581509406845945044586953807128007821815938376641760308587820455832817004805468765762880127082014069721320179795360039182613390934081234961787989725081490716031680711257199629086731607774449282741522602271677125576380192344781545464219896932110341835703343489426410931870306164311689830751450704077325702086768039878077412742447028077730650248327533473590444962488068585956047020374964454622472544530005401734212810984064442003704842899982334306497313981063500658018652144444371856003539913569838413013014753223969883966366606397024814133136648352760478569267728266638619272494892883746646933385211232171634394004533512704318735880487641428794910843664433759036285352594605223757561435336939518069149626258045340402856127074671939392797575581144839360389890806028461824987576463656134083088452835435988085290134891662102138048034577612923299808898315216322791037213549391091237563400558277000546606986506577603279779754850097439351783589971649118834332567403831520555130062559341253132984631488991981091136425864456439726391188964824041975226549629915894331338124810145491053143568270784374508026522738601937409724559349494668171797914588055289431804831882815244267499017461145552045336002138187386982975482123051142053211291709589509794663384969677880917958562219897711177235419438092716307293501314144854345836836975540079796143509360073689268477155096230515625995217019082858463827915735929319416650326498251820052128479099825174323303510706892028199271301816104733947771686728152675259918715594650160873956569438628352650765890615746124527285122860561580844542855428118309568958341520671504620554798351053238410736696614271461350702185599188697957808735704464774507454137314208174259808646647876904398738179907789456170676410197235406881386971149470878955116997220613896857927214633898025453172999837622015256981664337583252513358697833057442933862302752900955656954003624879508033888679820891508220152714658353068302603420430633882136671895611424209764155148745921113607636824603307413801929001310901989318399614825730306128608881962825874750416076958294036379871002413054841815367516453645716751323934926592520744510125320948763142474835309016993510230442374428176248985914475330129561886183288784840474289759876247818923659717654692293571256704335340671819452276548777738006826609473992467585808421255758320750966555419846239158624614771176446068538432002704922261177442261730556873322984425252977433000650599396407388407760595189783289376955880901194696187478602437500088945319252261304885453932404482892117342961033788212319749077542846088158781072901268875236125434849457485621164299615601918267783243277582255340435735838804583145524488179661233072315857268690242280612565037164907262001485985244143794451223384324120027987328951254861215617689555602627245361622202328071713192176562006986732062515385338293906375052647861422954834520600951407121004479732434324363511647084844884494497348568506173396176179135174919951196087735038909122043550952676390647272903187270474425906709079343520774015700792447791932838144968449162843283986697426050240510853566495303392219532087560714951721933804453384012431891073335753818866381115392787640786895984403709605387909627334721717731753426016243772894205044722122298646491189732549445112357544633790308941881629757675743153295433167121513396579842227047224478870693325356368774356133494710844760832999102620273766231051537668629385883107636224897480432236208624971833923542943587855271146910530339804287229011836066402728763326717608943913414271368298334553881257537402655920241087988044106525489099070413463303476949019405081821690181989757533611431007277882615718480733206052272723287343841874914199381490310491441527921097453374869626521726396850175597907669617662655353470441721674345396725982063966820175096642011342410397156764855030037758862527575290491824536304622742298950293876569948982829879721279725045423809684118604825281557075299993940699666633607376943211445756359442503646237542349278362953306675999705246278359373348895817552870613900689544671678930973849754275295583021905784918630726973465793148756317647862511038848202483702874626151708169361153095563728257561167006731890932741658560768953232192455291831318429734886746084949337868524221770931796301484948812254020050587041257264344383627582206097000586383489744558958993516116119768004842306541283568349729405732933028471093173408696621833707514840045596344565867371473383962490384169732276444314552159031123587648744787737531315987047754184867788292280342429565106193797886606919398943346091038530544051701083854247305919533680649035062393493927409666761724254687486984265646375671763199014916169479990283488156343043621188159568443921203378029122720439424581706876539508364818726030475767037490646114755086293227256336082739614805295705939357956063683262005535232962366464470208752260992405673349166484050633455852862609625509124718045992993283997065670772210535149565144842835556275921316754705215563491743972521640924838745327700284515405977679367278061262254129132204495229600871541237480716399855818594959066050393176736963450013061837611623726732545753316402963640086880932479269824952387430445033760028744621936079344382838446613919685316193979876798128187665876729856997101422862371999330439846322198493041043825725342479073543879945053093570824365983879091930915607083068304389441409534493575712964316872888412421378463397350704138255789248963646789585000636260986451292714013916815369183706041331352269134369001198762346613958286179674108249625077988186732232138834131670759981459476815503229583607447684970747647489880397239751614658290222604198219885440561488138341403191451861422847457503649239172860290772979184775070229563994573384145472623201970770718873231630030502317798690642466854567412000352796884288786135948842111028563204144453603211956502602126651513398588048470761254485355360971876144295939641039389138840496062388522782101656161046872360274229939421903803561793110918660255227164516551982126070853208249772294317590415670194521923573970379615382815778307095672242063570117703116046228410340337010240832917732080824447964548524531567242188758215584826309164525702291347971883825658684957252726229703627549605792428755855959367584778241007894407624908134198190591750630560487581035147337916445935766902880421955153166351492127945343175846326532611951620997588040363936079270549977097712566125595785718881211253701937157788027614763190337935115093343774336798508479134995406967618941733417199032592111346301002867994935136576686400273558216279913812940177194884343864968655775197223944770144168535004104129406333960361627795993450516196444823235421182495246570105019236353370799948817342551914956510080524164783561680760287167566468094835893108985318157056242523895207268594837118983291551392036068079459173074489175366765569348374790274272748011331881977588470275821876088613287544468344800217348169204904905798714771442147926461091748752191082320129559077784142219264331919969380810523529287662141891502324719608186686250429441348795092850495325842933676302925571814229817536669191562990010846160943145751673599835608471579278929622929496928796692240530387178652030911135103904840001299438242510630888643800142910596858653232792776475128971673804177306484256910419463880996659548035513105798680853591805713267797653654052583924592358200887195715803114761323705353546134202278456304796069898551048435904905370227286420885540315709193196607999096033007143766640482406635684250597309154177123945601710077328726432326691614421468337905199525659296168296384503439388597853826713260320359074659950448604688044133013792963063047413574396940267871173163795582976150302704993944549088632904547601692539506917922787519151510780414571547739795544837533007170847572052433410818153844564417493089964564418449876597743710775829402187048925010539912092207489389648483120012418843199503348682952498436763145162179930144186432679300452468236025219552200864726293858962476810195728905487073317106044262482050367008173826140736343395131037337813943160781565313731366387515071473716853278205287633897031906228084270090268634594174888594440609503952580835893414250114142534485621846395489560062507589918104386571276472692013525752705811778761382364980290313330245751178152618201436564151371286064158772168456744443847829690828155018506129564180426652650369783728551368523512744252743618872518383276851480208675638950215135981830019126672977629615206071983592139569944073333021701939823622072687437780796054741511145411139392294764441300576849252759729511173424170159856089296948529309181039964225492823368868213325275844490462240225584304166399935644880723438407292957560013706205934449375864249825675173481078745326972756632683997126450161701234564330166161050621669581908781698524288512738854499585673764393463453731914524818082391818956326377438469495659094044601614446318609756425368161203924139651020703062953116513917320575547714324572810887144285101316095893179319225797356042617443695428822049873319958333968281359678535864105599334661573997040562767213931510241527488911175951842010044376686004073811102059088659780913038209958790777106637228016228741375808180861077588091447406269576237507593547242648163151021780749853573820584082718461350816855288781841197473901581272827014770545621788567552644841408815948145310471721133511776499833351220547192876154165555271678028171159061065162632710812992056572554979178907021907810910485972159736782976502475165414399591731982887705050582945457881932998182517297326705101565603223027239106810497948686116941782323171365373443634135489638234562907183016715620285742274077868865013456599947736911368609880139998152565515491807898355574300422112096033931576850872955729190130563799973873857069400717848827209159132190661988066576426441646635821443207843319093347657787519596400516148413738168417478381437811841585836459968150611305772469514470186950228648541055301563490621198231774905083594794722566044595596583327107640106527259215782750147803165753829245849506299032368123114313469659501467594237293694981937526907549088888073777713488657572425004858603893583730251145091579594483680016910532357724083970912116528823208357591403211270205511193426012752577230535314199754953099824971864750799542100216898839160462565159751328289782259036753575379877170937195557577540107415517091202625312405301024260294803887922957316983849315217704550312399196918271999247687548319261050246973276950189101819521131938225263480131606701230876510044561320737157419191084832762400253919471062045701952063086557129960132288970315780705116475831826146725018998878075607291901889285505746977259806085813190612628279897388360179876326123931999218880467465108336565166332006456217156751964279673402737017236494109484290218490770816418501805384296188255668529350376538104430872666762557650897963289014916478398546124388000939828261105281643915231190401458620630364372175137148534891941317239055412003349192224314389855525824281621400926606301958113183701064140287855531731111806541640591188707203914520225909729587946138800914643592733065612691381914151871302526896978187400176978175450454608545793463521071324976508217153707644818049947928185066661716064684344654788201050196002354366336615188899804028860143192741527452849669118288846012875009751170713580263448176493597341499175150022370366802314912400978764065298079101351394025951481062225226353455720378428874049741901473477120774102462531059981451806350635907666636399664843328326163733123082262677024250728892188848352440750284121851317561033570855203906154458044147143524092255677523502124249987592678318662383071911999937594054090283364580213752669927821651521297082142667962796638804560735446648300717562231414524051510972652386008111561264571443231054321567840018339207235912629414669858357178129905355180165917541660165809915311368399442839397677764673622300330466949694708347469241841539269959332805497569361458434429602862198580106607619267126543222369824759895339428484848859278811163515428537287419562386052719674720334038684824450848799546706515198510821260290305096321124519453421716087168544590205088720217735579945830365008730327287590747398594825874502750916320094611432646343676127416530236875792270113204706819834090070102727921271614049448771403435077741949633416900231331830741276324424608051568094677573218810183113298328579253614618294244240676867987628794649898987552800583054031260950903081394809681754717056539584905031128684243837191754512637424907954282189837242922866223386811920008196544638837582701322747781560292052966404010256045387441642296677438695953999451599576970465251069403047607474696864225612260809590605025315667850496814201797147496791782252020594843961247051286909349101807145929869439710502555892053391857082139763758507605716968533312918354828933185165746295957496614839326814619333754103712130858037916730451076276114212425633012930214330927190565477656821877816535092772838898803014025927618823717245835173167913346605317203966331686967917052864738741830425857239011280659596239571275793128880600988074444596227442240047892976730680465135335739156960491978560639917523250148901170692374829976467864084615504526878506597832788437574687188065086606267087739037585455682640168645625773468440431032465929490873224706028232797644703286724128913597499597465749354245352143764588179417996896038083368374377815352412188281544693247192145475349891226357720568249617679414812544444841924019289540992575809908725667250938970798869708885681717837019168150161749661818807266440214954251471899320732108184424246803712130429462246793884096420879573387699295841015126685777555490885423594743044113937360271112619790166686157220422254069474067559159615400261980815624175442970444337629283924242286379934355594054115721585253925493541607529449683170171973842249259217389759827168004800340551690710482667855121503327495970989009395999116858458146333935013087720753504584380619897465456723340384748427968378670467987690934694938875871973076792437819231411381881967353153088843806425634175953101547611221242811168718783032155324537548807312623125703749304317099511292984822821885465739026726791759366805466820245192491320722640792909342828780867978991396004275391443841067672633927686604896491419786363686968720767753540062438082983315187709691459308500630582123826713145770641362573249816197067829326144773853800396689787604677175826850194705093301793628458301539480455910930726063679666134441196979003764013238597003438496137452107250702662623709800931637885792484210035054885761069685577923686513469359524515299595165552287015509745059188747589419005545115275400322335703957956479097451050185110172424785099406364172326625350012038151808873050006550836226660881897176073256723928292923213530185482713354546010994925530928170431741896743030719716142628663185024704789591988238076384508276136808673620024083803874993880940173595028665523876696445871478732975292836711754402116523062462158743716895480998094951550604708731022663824674957654626274809896000429922992977121728331228518176602784953044150168811726231976801303273970848315799442369786346444848487943133005678982079183606044651905524290449094450166513888602246209728924902878410819896465263193960157174991931184671575349855301597845055311693410448533315668638484156423160241998474438524084530681820773675294590076127569227193111735206370801172701852458405387585091927681703828339730509743666686622496028525042850613657262626481773200517579692409393141857425364545912267622781545269880028074309838745368535532857605561595801021315850312264847221759054328645656130086132762796353242405593928744658285406289497899124418129794554999134577024541128730643511767671098660192171367253610904898392621486664618562618936174242420942218354377049582300681513435378436241048698060688034278982149081670866038973250891518865376241144720814577863684652800856383868998132173681906728803535242831235780000155636748757523350327171990836996885462369928724571576639997672896968222498232149904149854304479289098209508385418767725749821231886785901987164955037542564872999459515966050003924468878088208476770363026173912214717943983449190101224072495051002544580820901705321713217045378246784946644773616877542177471675965215552809350598458111667287025122372506166367395397235388867926090806765335246365268938662154561981971499668935276919416308726869877364352533015603034249447830891147079923938882868865083896584402656742817819860392573085985862339783235139717941323352208354561341814693204452115782020317506604390574604823939948482764804571976732060480514269188112600786053071495503378279198440815651822675237454273023197815118101442901072776463689682051580189153543600416233487053977568400471281005061532011068737587401012867194977957049958588543239760175365013699965907662917499162488462668508719289723728341065943922663922179475527737055316316743212873058559727968932043537565147317527938703217552198736594725572227829601730925802918865229723536699689785992832964358724563845326835106598155780797758814587196267237340510334144138445091219522277632469237563838147445552003838687780900031153376597357634018060686678272092591229721081965104048258014364174586016859696490324279553131418225486589208036406210006875186125395192446733541687918016873549540563131027581747713647286789936589397520793683208776489230069455802133639235300410690735990788978266780148599212891508738112328577513891619646341989470602602332694895188877891612960636659197665728954822631250147775335582174331642065964634900160327877760597638876622859967197170229460121370075897758330706935403037377274705058963910585851877539155613442016196401170374402569659371631567293128486962149680787282779054516298872167184845678880283227471810773814783571914790996961114918029245669141369073618112669002911741849360724265698024218994345104386057908745748090492153407154394382145836748580536136513067235305638842788872136370212425717113514453067713024321232753071079917696617890265563620397027355511249021301210170820751730185897197560722388933890386355883841768965878882577884387276280808783678244796848649459594866725962401463812095305579679731978784905676475022006630843539192411537093434401990578526317171723691036686384714990661944700503973935939668479196010724939936366737804617538335067138198903946056401236457246329325571887278176850388474363821169118304439280833035990304535411605487634892013157838264529338662738941142312899485010561634435805232814744344717445652993391893560691044302914333695898317149713223518652183449969867663115949901310321421856609772861670141881421845483210399311756615561940070633961396344226362433588251598525299589745582784760747628229964959496827679690138133908172753310460058119500782244100899579559215633351540238163912898062642867457993478281251864934810644032994375948739050860385577345100532166925189453047563181660185798400974994459431585086482261054873991706862435865494938309417327787963287552206994083483284968227924005326234393051724750361749448377776162636267182724693789509129358655452382390565245961750348041469890512307054128660322608222574209716177263794268499539106693229459381022565446727872231347687993011594994404502668432266915475637491748494200250045410166462840656851071216105600461379783302668779576830585365410673472469232792614958615528268069213376595869012076690013560242418166400355321626486992472281061110930995347639141338553578924007328682851225094365176121361124762497858660407476340062819236394922895640176165186553307453834710659119519556742485451898896120381816670751653993506313223590513156482377934097801860783290961721848004007666548510703892505358892112128203574750052592209270766331546747409622141377821387522235221383680352465178714476490457619976234376532558989268731070760857449016908313089275751629574937204939676396427507961240603876449076033217364975430331386577573513196251446233259302480703956309885249498494917371421085716853334653695682264713317726260250791746548281905828739552878383320902320990914528660726640693369422786984203113563164863799263953562633829685219609085489937719660804434061693537704454129342583841972883850156311592849995013531833659894537990794119798739188829083204297837396456502312847517391415393276133430181362546993887031262300603572636994956324201797191695848407826736905972109045182827826168418167178638507287531427535318449805031693129896404539946727953680263581442058543995645093065326865309385130816648212874887795801650121432684568852970659242452181138563217337351837567228849296189340204787752018483189796145588216414597987750428272902215721156882130810544404375742117920847278422101560435703452177949477521504726918002699137293801574029734341576962914343060353958495215018790275191020697603015529026260712005789460974416705434867000027977456965043728726822015856822948230047833931658251967256685412269997597175437004575122900259033119895419890799966098760194564819515560357719909166209931815901715527733580046917065134678729284573694578455227250580579232681042852108536039442343064180888225524399706305357679356911679175249288949398950056899581543144515507819403408043194453219101914532040187807242842688819418437455001544900820953710979971727918907891582844490371502014340298149097169221656281845797944670950214521984695769048195079226142824499191932779096046540033906542448863208854463810611669151800524151620194073256754472427346152999263090530742719506385981813459216414471450431162551663514342250397074750968988831912847959157496656515774854241742722015474178251291431543142794595946168578281774181898703352575216221449546115351244652503018645707190802150828006357157173706214774699933122299513189680809150284832159208918221077732826577054573883470519569438798113190232709878012885907999522431834504130971531111262290077289923382730240557588923425496610078891886329945058988817600952736179438699276022071223979500310432926209756410077146755502506898151439026638564145795529277726740811236964117655960392775363293155123290102909151814971759840812718369448260814172858156657035983082195605884435139795102897641283370488325290988152365687102739442229524137357593618126799744032736999702567074738920906446880034381408915191064718183236251993718121958866351203620463829343011219469162631425980168931092301489078429337143750233058766973915551957130980291183290496832715740793823280699063029973589054506383142674372993329390811780240713877181781787406836541660615209285227545270355380496648716335891354558425152065411615619352204052462658352516192745893299768512953370411967166203353906681301090957497043217058284903800950695350559351507893306372116392233845604959429751988544248695648207331062436794851091701787710480020479063728997599950066372429344581330416212199468772118990809477934077964195022928956650374023262062510575312526466787808651796053712231971046518876379844211524958803295352434152539077527340448349082886751999711004888195652891027681879268078441381688672397589010284368268292815289857762311880992752648919617464675049153007263332851396419926660315687841618787665130442400467301326521855133319697413578020570244402279789090111594977361623878958757596434411974225948457076897990233644119841185540385688806957426674335328871416462776934209571094875911795036092340990681811170909572109298236524876172838043320717906897994516148566367049364549268203779662820766228164520903216639675126462530457032405056056530244300878440148965900497357031521262678960658232310360431664693126640207034175840138314056132513568068396278991635634736704971797329984267811218741107155889014752685611147947194921338139399655928474568805124733837220031324603880620589179366680235552991834390333695129330933087284429831474991349061515915264501810101444445513517026113384284673207944313906649368390575629045090574951596874272718144171162408275903887701423408321388730392880951775371912534735029664060635303307440368426111745104190180058100138646023985889172406649884232100643891469759645904326252153205951586650641261155134540725848714572924261959210095795952785910291881953634592444053343373422509832609460773662991256414151780953269672073629907273439453413212043058596847802798764124100725389046375183181676926435701211211817882782606998719914739728825493523626074079909344957257135721545309668108409078490609658359335203681891369171489069734049383224457673768668144788789847459489549741991811699772474253414756087396495396338319948792660530452524420525581649041774207155165958271211635964601828324696466884903167219953919253294970384300433487667155408537263101589769228927035630043514741441056310674112692121145050133447735030028479991111115117804657624993026248346164805113063888254729289066313251047913597910835886386963004062869644111398958374502850776924867572582470690881417149177722276345388855338167924864334458929497267432837566774273161351042641820347965244082647361369549970067164524723301307301646867908323361180634869011521846444959887452446218742862589402005512380782585395629152511381897091050462707192242785002046470675681580996219874229978639456920937215600740017991083853095053594105327763421359690870565837639517868108200261994043365022413397358457575445936842995254241549623479539279890337924162951899813097459623044609436303772152939677335115315695416851539226181487149395525050089411395186644269371367263683279776226060989879323718301391354343605219599741520171094156206026527254735858920805419011494412171912383199255091455620506296416354604130611041341856340659421848728096511646648367018308280731040304736366816560423129232331197771571604185912314190396765343304256932589859832166681985187009121585397562147475578125001251240577894244496010702001755478112274551171245362184573354515036247004633336800026123852324721430219728021603189546132788416568024489435804188886106122540274054544177927960563467930515301785916662703401476249539772471057597175111494003074990650765215175231110180091622536414688056939190860814459041778047286830809319422486903102045156211172750372273627403893287308497944185543424635960797042480295645635260723126170847643008715770155817603720486855528590166767304627890324804543256247370343193752145473039238250138038725027582687162319445073214476292121215274860433724779763291517240705446636272070105041986825705085675535576113216460567679178124234585677730908762524693113891586987849927125595726153491412752644506734549149527686282851210574521249289459066425868974389967986742143464280218837396582628454320402398103973388821399463088391460496051498694512929623258276558049851841780044347042689098953563372759940864523246725610542803383760142826926196048611769346585398118602216512054941745031637224883756892953157336452308700108559558843090510345721535039389793876385382913479869900013667698293213149909010533546576292098803042963525089196512450095351971840288839384203211023747049926827427146076366984343296724206496681810083067932699078913361560769616289087619931497210537410352801723848983891976819097901524792668296957814520814343756835803198013151288166212297109435562607924692023870133974654154599997589866834053913959621705307376352450721706041030424614030920490629639294561117611772046989528842924837840727261463485950766635707451726667127554830130586485282942271976907941501464250805075106139514182820862314816882690343882994121886795677342043785134562213202458251106324556562437226683026584212758578879883222380578473829022233562070608160101138888126836346427531386106872590829691832536689332014019706445132926463291663370034441853826291739747550264655017285917432870574639461502278912380886281355702887484135656809711437443278548258179955692159520759380311676477315954092863702826665934808548497489649019530708394005596683404259372402307593371595240270199058931927810107445968211366293639180071989414586049023722890534879212824498288641916488625402295485189770862100937101669576135569706857762652011978920591202837689552974018014642361419881711123375591573657539280321751782329293760139387390546387942939377045861910615018693240919019295355437944493136261325146508166368755977859889073587070061499408905607358556533388727036051864849866231723416509361177372995282359924865908162165930570656324471731275438343819937021256592189669031004431810167549792495210802971356820071766021649880724862879535352506102145806189362754592171880383077225639509675836938352733253155215327330966854943764219911237984990547198335432279254463048778867482760659346015873491552134807324553696425140924619864542353707925149040146488651272301275117534866628080388266983315344146631839791103362291618896200218469260946021455686472905944923316594645121226483941215522985195821121298663486772655026404061804975970416478332884241809402907448615971258387597971651139338774372580953785470686969946654538794964626960006418223450725442213070181133654714906863201179306502237967629728465595859171884825343610412710033174137350718069895095286597734172626509435256268594606393085630892978399718904239212139902585976184136575401013336248247114063639791537308401195499459441536071804961186401581096778595510041476535287976840418582881255335750541252480896096314668174642870296467233088586194483332432394733145829035429806659588678742204010714936620217310170852666917568504398464863965136357553803465633918214741667699282903171470648038804016976830371085764690193301121936415345452511418224995384494385049274090991506483705043795018052086826996541921349086803305001947952725128840472170591973199248709448384747013058434094724164150014137074633622191985756797896693603440266276985948526862878409300906040919266115114976897308717363333306560060531589101917930623644035044418331585293772683731391459144769820818887403224413064897001610162829322091891459146672611253785478926540193580567643121783863326948656435761649332638049832833721920550379379316956303690939721634662040087049528431935318687684298207294001552940624808318135501236984694957082749217375835447801477003048458891418234018401710403658954473031578096946004221819614945484264710016318480252533122378864063340648624700798309932433211880372950382250910300047956314278696462935128479607459729516881168951231813437775308640009929693232470423502811509260862755198682318152628068246151470623685209581614630384849649108844063945026756962176310492254951229555568899453197253064386605230434886501163327668011419227494021571254428268217796193637759705165227241574102697266333037554823614100027741314314173794952590561134948825723063782884833019227033229796204766332629289123505976344748915345205319798924673618823281813343024274349889837275468954830409464016107951604783969422314309395144627317164672591682696771548573725808635671600364121223428724447202723528839481260404820488335454944183109162184925476236052465399810115471292099138518565744334412576733687572556724554500954718386414455562495232482009867669885327607809403633493456879838231093659344593453448402830251133147772161421453310387340660876195218793830318663412457151029385759968641844115895790313262966107918436135153703324660980691187557568512530131516260612193531441168626897346172245126356865177040179059362638308974738290633190739692223953161075969486820341592608461531181093282304365671643395279636426871602912718645705203994689362553143186569236841541849545399396972385105615331357488829802773272837023171879738312371453268416354273672629190754353035898600045110017814286516726353977562270679467483345070594395656098789692611389918141840243057567901705299514014689045606558658844331624030983202381572727107318620539562571382760263777239423222326996420152805467495587617254768015759863118060462863122715694152470037645370561877809605127329312116414321846102598854094538758146503168181262814903408179980872961279592075669032940955470749492398693599135053070911242109283119453973617658968597234269037966486340194049383124316793478873200634100376287435324152528801282564590208845752620054726490029191552123195214543676834292656663697644952891147688386356261477543300965069700980072992974101177522441703215107022817158420965278291663930407292170749685594426090962265353409192358389664894640205878858507267869984445916548782690901037773269679191436615531079857927663888263219057078732462221403980087785134253951470322192238542927742955528000347825673839638473338865729373063982125102722216776828866825189220367864281300515160470566122253353386267790198518502408894130020884358972383474186917040059967915478522210585508824415368510079413358866741515649599500557068740931472353787472162970954213753317805757793977175512688744349573974739739636492989875408526935986415341685034758260573465219573315102244617319053314513178435458667400209817681033834491832329937278480160624382478615962662279521291788156064569610836210302898121156467056639454920643289420268840463395557493397357856208382979617877326579660749505288807248077042981724536223435714670317103423930438585328529917554538212234280799327441603409970398718347948096535752789664056249196249872074694339055061863083714265935337094993786049943429532381266691074842953272914995822183811421694773482268052261244183958373518297191762221391157505471476696224911519689142950108399329617492553618637226162374885993805473319666631153463531187326187611642568868121358709223293120712095497627252410240820032268718176713707319596632356561073118347395081087412607949873666252517487870212002387424724015838324042739192851582361660189429692670444980406914170430468457319629643539365892704652705239605261960856368718957153370172386348317485267630172042676260736155894959141341647063696373628496130220651837055526054087356507471313198536135150731844111535823297438880965839951865258071189108554373547008591784245620765082786705870512560521833148070037460183501035439033618335532455387936364648407560351328087898487737067300748022400085119744967761167873624291676392973376059854666738653482268426170754729946396601179103986117187826180200980173444618176207158166474121911455259951220352750711535342981261070051195494045836113000970290058610962341527826270602786933878422929536164461672080835627528905186229052066344563437561405398124011165685306548155292926861058000657821943727426586083274187004903894390082763390003812170732686535741161924414721555216431651834388497645959578471926629764810787137811308884159230641789270075120149576390299281766878362262749499930893459686603258757580394354082041380567458649526994136826486471658250644005888331639609489935970937509038047702693423085596806070929161271451377654828194206262569495067476819682455939153579312209656913934587551494568436623304941254949467992543643248271842449860260539637509011889404534022550797193319156955967782931678514779082037489842681776316056253304805998895104453847445127016553808208780601950726954457781193015320958569450315973122076074536361110135950565965414530668494241047116010678582202006050031348651045032748608681172662880070779873764194458807519005615373754769811038261823688441525774347891663800565569013301848309398311717881692817612903182434686931505989619628871819661985165741848906971407659383787533525126807127884855334402225004762999546892088870355875041549702633718972093771176901587409970257346513403342977534820769627312771177220882096669961095983719730601086687040932170764431141002479501536864098451951390222069203984583214140986424039183040597795214402134663745575421367779007117346033424459561907459058771621787860118470649517085499109888284615071216480161188385909177097211719493024312581054111330345350395950287191290050893635325281495471696506207350784830117387438073808511405652108534195847605392451378154419028620302827543635455244314809719631756242100744902215044171810555807695100491286920501271475759802867956767324025388946477422623258509727270305566716145664413954931782642873903510525969621190990260864921506799368718236390948257706251676063638890338524707319783641866387757893230004404624488944862492335583683938616657284891263970809192184948104195174026000407015056711408768720535253417642415623016930908846236001758745498589815901707603720341603617626827823818837419614664806381215195135088096339564563909885890025815896424725179444518475274227357783191379375950701364873310157282362235448025051501072367774529642631456974265033530232625056024327785706066187279278534987447575840572730589471684544820341990302572162251045450970194865930684093652960343511955458714025680889910262568537602988919902068051949614357991389504054166573338856327871340252313937715280601686841149907096750185074015251376660658197517316329577624306477142654641052562657706136268244933775250527064138169524589184810187014135678300872753640188335123321245795357514292232206735738708348525897757945623878263170509178205427495435163981788075786555086380515170895958386523670656635124314437550184866512929525382199514276176277769106466022144491970394795070013310886683884613050410526255598706860589105854035331534606881175783504410729649293296423164523303530203631755123391573908472462657830218476238161233878652356719980348133249959814108917873196867155725670404071618612564069147968092482905576520055799442738165487984079384654244048466064763692439548755782611397057664844836831219711122671401827264156564077775699402481144838191952255715371037675768216963406289718797211361457991643636645318755414199193903774133310601886432357161748034953635645675814536830471092595350054156070698372085303612661612777827685925826588463573074207339536221138754128380133320820900631216805855258276216206018051285008875481241297777366907829930854583589100377299155092076937694796381551157005721811483256726644792196954492156971827575872745589067395677481668892785514245345438019274428411787001825929499370101065614882987719412094555595728080731291202036037257690241922892609433718830693097560410682488975933806515118873034998819231332952081673596814730775470648750527378995754571052908518474372510647765554260878057825070144544155607070618475387023768022864501381023989549943978408801684224972840751170415689204937355370611282141658090807574445584353640186614262848663136288937928584151312632562120168993007370229399153437163684359576286900776214446632566387476726318700352144675093777736536866595908545346766725908092000884285152026898099043280433351375091373766248992253922412255120266898145503757466822125328208780434142014277130439830320100421909547050805896073460851409888165090107255240941702955739632127896989979645126122594435053522809805390664338559449713961195622654395946058132502501756241191399743348654664069681874412394388833351859754824729898213680330587382842697666887335593343508973000312738812766464489438371823901921669302568068561852671040710032189046778812972034521992036561678966785482266644982117472687837382892879445047854250028291359740343173776604932748070017581910516950129330676720293769737944184304942415649554960853636295475101244650633781189467458837022570347202601014377283244498082718401532905607645012684479038127268758391599445310112701442067863119888977623025510175658470622585970282002069784886911128039292509358894037878750428710566812662554157759188471204626402538125169908420803293569797280609234356286278196502165991172020783399038396467583877750235695652212985256325022062463832801561915338126529224247756882031586791085757129090758914958312615050601767425809492563083924088144857212002796691060505168829650855908994814971657050619016352290300813876133957281040866733941594641904374551107147158014374584731634724087380094576544269801390822796258186588543611378003216820011573195387173356672931595937038427415903442638330586937730777820325091093472124917423360344958945348042541945386308695133672556716867167270126180323300147743063909649915384325512819020094319555768384280999961314509491372523716188413318393417795352386679164710487137801311884164284916126667566278938874835756296182130142491899210445660627615258532979536851747303188001769647528759899852329531369197313724455193110472135195091917118270834448603545616475717351743403138142890276190614419831015743663096088647551821650605492368728003529718428320786473987144849997935671468376528598845709843021419118411932554039910490168423537311623939262636012325222213116377335050878563424440113632580189971821848203648705004909493802410725907060062422966871780610432384171125807442752044103102503168380873487495279689040329011472429994668919581405183583303494292318594099869392026603475741019980157381922227107001382258054656905016442960723385981991567242819238872045494082864249426888172896839437287096865507756653101761812808808720613104949600113139496930858640957852779593959993409125388312256066087651232629974492734853448290132779339100880361538707884769915306318280363263378791027968739158057224479905995459304906767093097720372218819969009439746684746236962214629126038514685946117645483271937662034843440057678957452949770424188547821829750427241108159069701348466022780624084785139783080657155521337340010313085088851645864638014510266639872558569028572773923745761098415866148541726275248196759244857473910303756583114076787302022674211113353038479949031605981792421808505720093251422187284935635081584996411090454186457410249346977432513139022308949914042978908813178212372380151041150459656642906143382588228945941679004233301066471913603853205235512301093107434007742548838299908814831024685265855668296880415002616312724220055581070986913943147598908985053524949894671917718264433665129514196239020910636386364385982526033689582587633496801353441785133204129920174548748360208582164963553191385613582801441169677660075596566111854906843214683646889055101424867869306146596455221103773010862826140495833911461611136814432570813193879207489983428800412709995536152300883059476882651384062762419913406838599399407850999576312945460468154888957610394531536550370754834418007798252032689554948412383297617766910448590277761815669875216480365845419734273395964926901057189897894693124838828570632528888177652449314130217441836928572919135987525018540839581290024663327967953550705344944372303024667539770924699902724428913894043797676740555042072723120926217146149247140919608105377434104060355445608704239373557438927330419646319148463630753109614585122594784285653259057373055800471299378330641470937528560916891968173747804459277640598833905168647357486988734231059758456449400675614306084545569088657488839608439110087031250167286174338890671832215372165338799182215960605186778083601155548303001047648208940875891264399809876604141996451233104025011790882255702490920519804784556353589222008720139243916831145709066560382432688316364896190930186965179677578134963250252398863985567144735578162592965912586125085806751722482377001501644148671748144981673809261942237237162121692588501788290362953274356433429621275623568970799479485274473879222728872322980016604843547372205632521933615552617617547816448818184217748771617730801587946438874212933476606333846186250782982072371582613242793939866080561305357495311334042246197022509974011743563398688017208478601863495264526726948950296978113039112025785222329050520661554240317082621270281442149623503213318789987712970001474687625880271892270619889804115581994009130493690690145674643375584297353287311789693688561188817477618356885316123872782784223232942101722320874626517834473643311947353944150644036355354126936274523393101540816185244730823335511032719238120421645338509237971799840663430044057057118445832486510275354834316847709684082136475287350896212301123645954753873071786937538978924910142609404093238837597553151480279286940729537855125371523482130697955635761693119014007588371185189800207499705653072032522880193209619258326527242012373700884551986916254947191837566740886296065456220299011896273700673801014110556223377647118721401426422945637802222510614955607056005673078749515262907404929445778383580539171137968742864043629662021061843151527511241955268625965252433344114876922277070686582653119730807357410970292994794271482059413049032666758983674270032882421320977871817679794506469962938626630442071875499000041013942651008204275565457405934505531386730903599645704207238604216487053401455391951134480702082915863437047166057058173236492879296890925196959397393666183347148418488874076375720778753701664247984804960503670786904771025982979235401617047190727231103190425182740291246100263966970771079995106898563348008830524457391676981108496818929286447174515388611295161043259671985981149721310336130771536957271477571068959569717086164581782411048966598384669324850982789768044551526528419272853997022888025419026081814496221866499054270692004974094217630438668968845613116399193175310744014710431766115125864186362245008664882505975150435792822475606001084631576039866903441180578415802361416561025807144627581144354839829556017922362373411430111858149043875051625158085123294262932027825774836966079813830331363669863657904416894878306128496697382372330820152491637398733623191241862534047611062834844834474789865583486190787355467316227559700460972778340508783847312309576908353927214571881376755077525736959276955671056345400830713226792324371239790294374532709960952849064161054641053321937192371377722481319217408844952782920966687139376448636186673939715048132991054052160284936557312999548506376610606811453085232029350092204625445589506997005030931106799610916099789242683539781561854356880324145988989071579727957565070088573229588716492275686656252718367235604864676221353341194293637185538340854966855551603821697135013772106827571069479608771885816510259715568431182471480683057034874744206237782534498861647994885653756536240138091035003280660548835363749457152943492031338688657124758775324541497119568232426842275269982654768096412358845085476378810968586866737830442957901278662324702038194243845838966234898728984585265528516718832906829074239122801295574464645903616517223014894311489961849966549647181738939790333517687115423210213761425629265976173871920862225409234264854069880725100885804229078006061169187736538547747936150290544519731065268914008818656474557594700378928481017884463548311701297217317471013753520031166338981123765682559566537576157343759661745466032446159631611476987940981020658982732692122317666505076016673805068962339200856933752998109881952674653116476895028599191707071245636291998971935414431943879446503005867510455249080641012537100703842135845562071308222720743496060845819214969751689451302931539277371941135171459438016016068240852311283854903101053438092521344017200291995076338785732756736917636531729430228927197110137447683497823099393406739772055520987816707178603799519134382344004984182822690689208758564387750807892388895573412253798811900990851735366668835197118066703488832776374072614710559408171797477770335064463256367184382382645442705087644721964212288290537982975859278715418814209431055688333037546269573378615560910001076636593184202329533667959488497901452034305355662778451372075586732399354414217140023925264301886817102477683040688874496945834635580277405134232770265930095485554934374066938801327406240589933963639603124983687635958652811775364830692910473285953513613710798942497108749328956321113701733153291276310830730715934305962527179479530643201454920544852095203931654860177334828554010452671348377698437642567001624412796893860261818815969109626590599148125170817229212544691275875038629314939591731568154983752239399846433351976700154267814028597147056817241354225720930466460985881025492111204554083038830267755903355775667749441224359930045869095463761665698297489268228754477201594435963562565434270027391097894667588919420618961465890759990035935024609987541493011331572759856385675072779877690027226019388331302166763859424902803935293858003995605772528853126794177519811232264389167042550590936918254095625091516557057709311512604166792993236444313578416189514850077922236749805352416449060115815532702368370328524983177043080206336411619542571449884538353927246601492302181466123757292090575934669869266072914070338290671510609141212571232585634186147318844049099410113864284272742439533865903205205239161900285320766742044620473144564919340005443195862895890632239770189713603386649326094118886925234714168149487662854418920326396898483472301225149642215988749951273302067869797406070871383231230929620676589882547585262517852016804150550370789223705542219345783676420748124844748005747324857178624956288368200674336914381912759779497042998675392017544456084364159254240585142451081431925595814653451166961056024583456013041484209034563490077211286443370960101132255554184469288289376836503956741232654848343170990641157252785304508744925742983242550688834596379937916005888723561298823375823003179772596903842972698859860973745933390374007743605255222134501996647941479166754913751166289338175496455165507022464835530737292480179044655672728039837347430908494562236941151116709726637447396477726957292722130329564969433138887606628643889463892105472162401286011277741962775847777620040954926107269513011460612704113512010381459807049213474643501256243548875487772223232263513626000416879442697027002824919872487616946581675305276473662885612179766154663667356887960707259863722931172498270343141002022271352525715689137126263826088583806555658820254377116145334690390154562326103961849495324924929299843242799647029037836524101972007088935603607076073231098519639732632272911259314553260816005128614813792859526096782642073021587249087303530610673581573370888913320968027065628578330943792455696177575588619853859138798408366072459913994749804453526405905382570698316953717974777592889709318060918506292114333769584231699311044081070513327019104701463358966039124216612282955298820563733787937627853018266667369500433552079824545677575618163340829946046036281278363959030308842912690182378398424214597426568496326689635871230433299899842416754627226802428479907187261781393322552644274399439508026035483491472184424320288679851378363415553286751055196570571728423872181049429315803538966862720669455688027637575775180402674697542867925253161243586726228150109908329151362498366146971567770288657048750715331031526284941645315908997979848150587447185425122335786651089291555008869514891737169859022286155610373937206263088314184686451501579509264411754653578269419099882608977931108835872510090303128615514963379904068740647328080937687249185402939600121870762984559551830085625885165445434381740106762320089598137218011614795176387947655098604860212167575217936802377772596676728312886514660345761539027533624215734768139462432844619704290734227142334254489910085778388498630494153460967533663190301025250785564535555935178662232191308103854306188429864565974690416588894243200402492007009366287691477312672641606116895997375023129027305043747954756865652275048197120864392276406741298179816681953268582827101339013562122450700257059077113289280522581210691079649190985374402071352441492580950703743326218629408949465834267891655077319281359599707987916665987262399446888735256089227112000227690586865553563434336995665497265030743779017267368857232699504519331587190363866412385863465154759620769919521842718909592545859295013865185622598794025199180134796159380173204674808032735092455901358688147953999061278230387027971756141325801925649968484455617758729425317186070660536779375438003802757341094749449179890347344086232613373498280402630327870971993307453261773633807655721765960587822745542956784959984244507391433590332896528730517450658340572071407727131205595410754517093837460101051362655439457737836498240732788623774356924624285720239897664640529033842779651382353282324624284776989083112958065111329395902884015898193189238951161188501872127652703445327720893461176070621479372659824619187671915346103157871567777837694680410835081450436024679858746576320990008252073574022368156539378518889823411407066106540050611436259437104498151096513203137686980072965747748298044907808549882643051047811585594005671157245160909413850464023545435943845091536017007849518656143260165187138790920713024255352075977757570329019345077158478726602238442490472745548055515979164410113145451047814070282962639113871731327817271489843446953236504390807393194166544890021713880213825342169501321179385186170759757857166017551539364723264089314985243827396743528983285601441558256722850391405627401754113443405335505270501721168186884776319853231543222860633891740527453719364230287204380424952943791256332453771859770081804358151660279110649676501639549514406158607732870164867806973283992651910433881331984457898799969011461001762946234200672456812828494080837584921236706645988277724933093621680380267760079631488048757521872908531916768914634340575829232587634553553648835205178468756193326983720585044918793753690537183637970534855779717987145558399490444225522418498225274578743671835339345379540358929596361518359863560146933904756171708131636924470524415144302322496321842377711957546902653125410248513932109101922991691203543281766753128412801255210243293740135747785029417505492644042054353924756224480871226624947760256585142039587094105877930036342711522154916662429613438909979070645362608423359003008147056789349858547555968785243449592022359600298609482276682724949245204451184399347836468055619215555180168753053282361853116784627616256211251892150610258761436610438125973867832880867032892142024070652635232589127231335102066546333295669874561331956782917792260188215795418813228693131826751088765242419825694172074161071691865915792417123190882287916915530461800437058298054344487833702758472342190348883849844345929181409935119950416150730241598632899808212003407468567452026564057178506753853700323248670720312057775072862335767548203786093191935165612630826745553273015281786732120020383825601763378312486537812088568634500943842208875897495521020115608398207314240285398638279961176376312772429857105109747349926086356259245156331489646274432932603109729368760389912323599515516711904315254679698582877674556579512741319848039141869389091440146161592319869492117348963469107865496483873295904182405066914766523205958035783999901983781732716682308246002104064985923971749026111411503696745623564485868876185402662954015476501562102728947485269320556300791443253989392087057836736646265988796958113450843174166139608509781005731677699106326525815663862108155385087385190783243026274622052216460683929695509607188323080521761798426410698930332428303887481976351172879581439068464633058338464237879836058833582177794996233842620108850288171720468130653106994006307311690377284419155539705316816143329443183769581739722175630190894916264638358167324492556276209502532906363066400769250196020555512356536635212802447428078627193465749938235176934613779818155933048635405954587870975066872669326732029855561879899710565434019647825718322963334651114541132151209241283182039682273351743158439793817778755521835492158359176900977411946639376782052458214405368700675028193125026524883622130006162433241702548789284877674570485323319870919257541846667865399315564596289910202269261911195940969425579435248016506745867788701692343407949191652443934778957394938046579654802289071519338603297527409989828612205988746963229080733115878422201835155403906431224026656159260072488514007330557906684035838560665406202380431944734217749285805997398709454007719442385746017499700287607316354915619685508712521218483379009784575504866783601970503965919659028321955275941678701854383818522254273825487696280698225984635182169941830561220112111007089590828681964900395206307186226554669458390729538196916589708610539827757073394696828337849046430076486464020509711850999651164315325993835468866049633205745807733036237697399452881828203531302380341729431292735836058808653139367751687704169263633504931925079853338374237371653578830005586416399393182958416213831424658207736550065333554736514729273890191220618380069782271518671746678456233765235354512065136715474158791053145436685643586139522815143618374683787110093555554982042518122056397878958702299676454369960559374844834497857980237448701706221130017792099393221127073639703635111450957317778087050742855744934340433925205884561541430209350998538882669274779982525337671188544626813820390356669587327867216453673395911389179496209251365516853042964189833497312244740213938451473830340615602727671520532013365813099159853557520067187852037419801501191115407250613355304177778118275562660246608620508070930599941658404343605384744062736258657756447497406075788500986040878084046257806765302498039721483584001240387995751783616039229318301978811291106137006658621365642798676605386905797622143390680213330483056593888254914425175263355915264767200229562678726373063869988854708409058675882230722825290027987092029847200386737685913332648218381835486561188332783672890274027048105153572671575496249357420121364943262341756360895205452630286087698834918328420097138561666079181671806033507205116072094013597829672404184870550134672428280383591315866749204773661496083358779390779284623306108212785485061647006388267697790387414346081046746740971757701241164442457578726871589232569445537055217125822743507564815094110417782742774764005498594995827203555941275894596970412923053027457986380406936282920033458097099587021727155657788281917211462757518627760363616593450214531683000307019419108018286853566906023108237610048300278185207210272789608891804349472621428387958782449069200807945426003233815414556132244781722322599653665980756639987187023123271373974293664216624849848110582406927903739441636638630886254311765754894163899028524173325233154412296617395029781208307156558200397076245694829161766882638287452316532984713762482969812746459842499851686036743492865602593390079314945034298810351415680529505408034631035036850761914916539363761064101394278644660141141762938822242715542787434822343148342395252759374157111529097356547714170121734529858168413887547706608291104325010668074854967312098847066834834331580252296902979112318020196484488778539262683968390161496271211381520462696703211740285835566515086811508708577080506502890545092492525846598315955486638949318431324194814642128758385828401068046397149499207169149375349012778525413552517216069781580642310551095579859620323872091392899889452725653043590185647892366423674162566814964754984049336975327295005019999208915442592501831430741214173973812269568283198521886376748766391652605043471046578312210200334994982355865193574920205704685725589039898229125348403540943615563360762822712959692357882213640882572112863596045546746684190644295067655508268825583318188129209994911007376504686701572041767415537749676858353907935876812570284396505893699518291484507157368222467204267682309282715090774772594003621340358153137126495449707153007577931202195292142679432948485323500192212688674681279398535430798396271578624100739632448867299083389755372381661279020203211262660767607461259129119443173943464659270628670974115888921534100401405828997466686545771959393442841092775124382458269593359504146665697381978971937489325291983069550483427515631100889585182258769204050051610088325027358486865936581029366992890344694731274741893783742432641975395130959245834738558998519767107636013420031216881965818603285610706470928372640234495289487249829051788781305002016991557651218562514407199249636014239349946087664307232081935571649715417597166579777712222070205125812600655382011900554610372663253601957001309418892958256390026607064360591145303012693317726620510588633758338656539885083527938696824560122313360098637099202184970830668710602911406800774676468425787460205928182928023864788309106185327889241151691687081006354082533744279366546836248805745115832200225892515168500979898865224703319993829445048192419192596591306114323126423452092871663513802392286529414531284951808490238756295966785895440079768645164532845946157335723648757093509777859528073132911986997262357169856388486065849751279449382010782285487709230323585886967748987417098397090972191537640373320186759917460671846962479885901354340139386688168516904810556622976687894125781472015120925101115866696108030701345189992156144141570325836057687898939543574980693700325006274684501484282201617830376457218070255100367872128941475763872785159123761595530512689140540286612126498936740596523638414733688867590027473394806940961060671835431999215626343127343212672236273278853992393374550132795276079627804622598219436070907862228399598229459469563384891232118743868908611937978263205113788491392414571496895277101168271005024521283192490891930274767160736819862692294214180320866115216398585675366905685161167652253263509709155641623777639658027824447248889403641350100509138154721024828611847513066761050368538951230151303253375373496962101751404925246272427597016874717192806752515005450153580456708313706977538484265917315813169544376616712381996408568841543279639837743945089766595535217194944045463231493194347188766338062877123685785548857166549006658790927701449261259807374354236732754687768486033422599564058505421371857742619017199420278016759283894547215971987381535960899567327245265437704721910873206277322097977669024019833481934344426207793045758520531853841283245612178952391551747519685604308049867902404814434874792186803403346061370977714189096638915070154041871924864386936219291273335857448672691348244954909363500740088720664939728666567206288012738940891654903753742504203732008843612411765943442349969264170342011588362125790020729509226871771715578323018213384996388342782198395432262618287648723941547498949674975934930330998823593314919765146553296802162833409995265330971948679995707397766984747564431967467185062030392626910641486548778236410339222151826593040423181887875496233973249831970152953637345479185207458597266526379346492916532455344421425385397482251800515088564646767951944928307783687241960387835836083964564211414453675942130827641234406563062081422941895576605972853346447956607622436629167446062898430881052942628174722330043554324808606875314204899906275050806783944116560159193457410311057677004957327223068632306283974250487832126226458096628808139025521887483065253755252060863199830662720953522239744447729056240104271539989441872062148261061661411035228085714980139579798268060364172374316435159074943496117909755821539829255999659773055347579433189254466991909658289769447850318607642073542644523148681020549063588157530634370321108642354240297696134952141933242030183943689478224348228650450647877872540559193416253705759853169755277775950940161544973169269026561184246570613154761880280564481730582436605909548956223864503827433165965266127743195400592754094354984549212721598724807179488394984179118174122983432376943844014097583130980454597984408119558462769840954950831700278587992992773091411803714822965512220964876222423989462738275502240718256318012260123303358199382241883892647765970815571336414891704648940300492604146903261351922043491628137864642071685624397740013376499079319551029262555304599655309931372007865903869079048535512714246419078268463504958864568711512193760415253404311157888350269787355452267574463018485790432881721168523566589007226933560675473489649334350133184728488698163108516594823555432339994091890784745415278936739939445431378915592780825362898034903532232090868750715118228139174726192892244773710792269033657354123006304252518608983004015886096373927308594320107478473783772757748138519910433341607283060554378764124933096922237493315964631601975788265761428934205305517356105820572746749078361619878871437192367974159642500828540022281454579758598663779288071392288614740786099778083212457673010127824916738182276980214569848789053201634762113946076311590532659837615119393736310594724652718421110397750675321800859632930517766345889158115076705873731072390890649608678226093314284502819366668612104690823192717771574194323429811301069412137624706241179625164670218876854573609934177212293318390296712635129684442857566189864448445318884756735848130101170550663765358127880354942178877675120156448650317699530954978959674979396825612681759895630208965777106308286421781279383525374200420711704761828094673531651360214109341242259838592525965322899918879337381032499438103887716760691827368779205219782205783675752178282788149034272663672679216382325585655320493439433635748538179677333562474609110116990110967359882766114687296006329912775713528743157630043744251530012442071026329717475646705860521927819458222668896541398074225692074335060325436131906228714567757385855328887083677325749511634467424192838993323055022569159644240646083291081012855696704455887395400621613465444573475397212476391109285678800598618935011703046442889888124674651665010939217286397112300208195848090166300485533843037914147322725617495664231163431675730868252441367156936518109022558655427737801046958444256220279010961989987145560705942020862817500143187175228568789319840298874600660104259378857666658589910765887956642923482957214381121375564656032617206528668266980070914110898368374121297350273554178371144798546217015224361043323215585527197627543032098886807067659666872822647577548757273993360265038378713107896004548616975812678482573638455507987001255695534003653786823478046241430642585316725677387953391417049658034084001649919481657585151281161848861015195616235705300913928197055609685784462389068238995572196483472028857154429735878496861030984017465079032082068860240858261573094332778986417807990268888956260386459815304088651288656469812127234205984888800778182016040581959845738239629852384690195042370016339224623889426799064013838097564674420662134339896424032364088824000105435049630390921912501068109501066291658608847616304309866644218658435374721633841358191080209426665297189295116729428571278482003503956953035610418006735263876739018315892620694341307656555415795604563906619630466790952435686793686607268428368028288949829857398715984236303459001604190259400813856693461271568154372868554258443020906215405884145893817902353666280439714573284364167344538584609890560724276409645681055254357721895066023572702885645251982664566246768341340824621386644871224961470830923952414054535826795069716378398829706965341502540575494646764253316954374029217534794543831013543200864714604928230306601254945023620086209372752667591306078936954881937253840364465556061742186067223764806420964138418447235247147686222143414563221477102339999076200814379066705094108465557714134885033679225511196054088059649707140772784773244012710557000081145594780390072032279817488336714525713262503640647885415064283103039646182472396351160836188498705198147413505039595852449443724528545758860264236634556502714762368019916527482985759439125119973948636401849018537205197632123654064353441622503372116335767334156918348918321043804843347385216597143264159665947497727696708704489163656373963873973965105961518240282230364568718861965792271281795614703319611882924461012629117130553656298319330023079858115188602766357689810162830802446018405822164793354915967270665080038009761954561817068865975357937065330337684715369935681569724092018801027988559392611274483936041317874724229522066840382102317403999512381939905305271187522191175569058549369179436185102107912637003441303533620488053692931553625934709355418292285933554166845582561636056425533077826306750619668262998749928039331493425025956300927059631929849231919252193899900602036146311910389916783128701117483009196849219663822423593940675396131683501379393063900602052296113882364344797408018476269043182756503946554161907829655686418869582985029361215262723185198582718537188289575779082459840306884300513025804541732710335939273701142992862856120176984492616951765911697832583439802559719323101266208885344240745512045749020478744601978404000149528865896022432435530038138677926074266687072419065907564867982179248531463071859773392335330087889787924677582364547444662281233651994362190598519869581991565532271519548784255733254004915957889570791068101075995249936316433421925746971948592711140047620418376289048273481559247686074772998690909940153878915393259640931625313563902200492660941021863909886749163281418216502139261999230944885873336791618293007154437341588578397656875726658134087246871788783488229413059038585303205344009819219568096556065648568642671853178505306573973831195343897812927201208638264128913892456352143277291770575732895178235185453309678971657123177405266554212539366966277386161246140270996817845118195355831561081090871547580995191280126972285655493191078200361022763239610879695497304663797188185438779874467124432948172182332451286786021599777361670525563857383739126758383164672229896326189035079533145126487144065181889513008235758627613501404264087619724665270609532458165214921174002023162630900218638013510310075180094767998089824719941970672615795720594576683229037939720401517728937616456184948992009249215582624560310335808905315185735239794280694690869504030064446853728874905417926643073682059412926125339275632984898093235211161689162289763580380722622058504258352999960617706672462349576309042084473361645550765196259094597715581583077451104773599530180496800995976023257830189655760630702825905262512616896116312347548035997234381129711883294790289567828865713273328873536644865808300357066717645209550846612935987946170626260430109797053042161104192945151882346355204734049060446085875872578558391799456255188787321739995574200475234057482441733482888140840891996873441073886949361270822255939842488407850632114328907913401276675000277589144704409820037479495367196984673504003929919315055512384501093551425403169023787747627850604673758946702986881750898954950992962554165386110554352623392490448235088414681809677548371237909678543005580016366041001577588810954944297872587012187494168890550911622907895054175203144624930403196303711261370452243412931827678153265861356658146825024678761367160798168401276218669192569347980170376728845353112892435774170602599872928242329144247250576423381568365036661866497854612891979160545010364596136555362563480428324582600624972201756309221511763799704358899020579503002026866087168232759771431761942069277716493976482114003968295988438864302483670499452712011109451306585463654144897175732405512983860790844436572318712861941168794806981518582859744158745804193142456339262901300089236683843351625928319820187825622553925852323737672473127474574645486979481622517221947550280456270798451579142288133549013241837892750064613647850110125704681750279698807865786316475011059426585418987834433062325441687571262868477074432792610682132982353508818727076663547502476305582335622655303478790509652264206086063941278067325659733344166348454741847581281146061835351146930980259114723310088867246202744518252618617013186243365709834588541703089647371907045511232382040819645618679569243973054989497538621505754039257468110900203688503035196224683953711608321669128371246167076863054062794763976541737330710043912689911027155021636235517016722265770045842454459901790152021141946089075120245338927204573714588452981399056670717862810642874661586848697663250080712035911979978942458470210291151348192563357989431631832484925168988116698228544046929441341463404014478786771567291453858328860010750089425945271781474476472208553253893801874918130707466596201771204745131204953727960423841649761248508943462251735996372895364851680658575630843399975008302038386453900334401721610435658478842332894546083511357001072487016645091295047270082783677756401274484697660155085150110837260349097335683532975061796907778314776674871197503561366200155781779068988630706800309683529880568444649763431331233029115749551157090945064324645000020763907510023579674564959594691084935031612756371912836842388056054742487932605283228527557568956922799101332357764674852299157927246798430826064098154804258863316710396594732153226533208566840638157059765179828669466606394122958464421134169911916939297007917438636787674116715680070476749849202638201275774227726392168851204252419312249889144079489643781515922300094422160217061715311804087914397566309192819534256438269976009244601273464371315222238892369920565637896247796228110244634054992431913757359724074733074299600770665479993987229954189877879487053155361895087891694267684777677516207410972893149312147687234851288950574955543270804188943551112497876578111894254328245291706110908704635553238043807168343276643321005619655044657225838593974264479579921321315510416810187620433096361483858610551645446868661491623839955579016681536758488786838863160352569320926279685296254065982768627877132577644280146038052282346572915747697324680639616092917986194741544472384599738365964725960450486493647311840450480426977260860208535036830435533606359071761336731679873790499970299441960294326498002659206224681592986031638385187182987361988143050781924588362825543955320807826540500083689599809532803738652321221081786011291435670821954427203626207484209982130748695021777158658602617793678083451055089617839168102227695421855790613495353138406378776671695858859611128808012584156232013735945293160577224443247968328824358234792523222485618643347406028762265875796964009951963749433208959129918873469372094849940036902847204942288119852249376408129149638484069168734767813130833314179030754630339876623327160668022339548902441343664058323645263596670316300716098550402848454464752636494226201298087014110450705534117529891066191376387830150537146971005452201030482781706869735096379684903627800409933132054479543091010953297857868734349845763826798546021335314880331772643904051678037991495291584928587554774176134244097946476252626627204954542030532655396870721523166074333656487532402169026293446811063086128280389473982639645923769780650112165615802977692938403593708982927890295249773490972958545984576647920104531123546578777385333238076969071575247468357581829019418715437863101707453591342732076518980551492650746561189748129937169140690117315952889370451173318967472989369424365418416484093544434299079516242538333984447086519419754671552460125391073892597263749977957017084154777621259291476037934778123615129799543187491668692185667364019952805271958441629960179142338789971978611238307888163435519149229099153489456638192478207093137407949251189190476105886742138228961245017532424044956301930056339454698070884719681208843984253362528714798844739673860788457080734307594656007920531832685412461376998711826471781773755386847744876367158913450540694088968870517741032968316826813839060721789886559191693954523721552974968344468499221786854240594036229212070702980512968026705131099990097910247549060750455174956226962287943268679859512689134346086444852205639440666880852629452190791902019804551398127712038079362505335841521582830025088926102893506957426894882441920442566469720948336221101660559509438469651472828874233233973413187830073753303599948791135817475547478962023588009497887063965490288391643654326831078693412204728497404043311017541349342382736662837939215756365670740036431859468574758820043143532761529526691118795856482094660644882588926643018710255569086765345940642201167818832255212479738335866344184971574695530182402386582913156604865144042263577561071994639382203370530482849839587174027909887060151918139191566484278185863938142528104845588636778745269425582736179552460749943380770915902477483019826942535357157381718322672011239300475569127985164813278973682992697523683215532208821396194468984256271015508394501171517063215425080107514569184712634535924477248732789163692532064213380350705832895218999771114997410294427894656641443595777322491131287248725359440712081467434019726980662700904868211275755036426788710682611067209457114280555582054588375831793685630552642319868934566509228992650015771566453648546350156596739833954622043565732332455786048958415696150718507358999563536222756730582872430107647029049956895025925209702798422077733711524198758131420527021071405638757437410650857811176021873395670610816142618913490613838462841932720221940995610218958335827324748479009371296276577970756113678088551908287071597042624039766974800021148843925059817869497920158728351494661384653607578898055350260508734734227657703742473557003349230182172318269825439890821777034407337835216126493868968512400824839149650309176442065307808847159573473330723730608246758331565900999780020506610663240981088876573199037091277335357672084559588013552708308359555646027585115240152178748734361352235233431370339669467951402517517787111777500548806454160268876668598196856249828475150717682166597440229175496815138605389548098219296975550150097599008539961184294688715494778531830155849176089085301869929608101172947018130067913837713484541355340115947511289706817986394182628279278972963029100616541870063059310589013308928007894559737451602739177874256489572621536430903786176919834289247551766438365814256113177666547353629706948921870088128354850351920114893223359229574947916442094486148758752364978591237250207644418274410061432434674776033647005979583238749479093545456542993525258606099789816659554976667779087460364517492735407574347915467163693267910750593398726983375470979481934696791986458260993381684998950856711087152447693915433811220436142243977853045328778402982045610920445547118463719936518628219186448436131936509566882070448380049906515401447305689839481024014780614523345841423558825322970942517216440122346543764559617564298625763508135753820201717069347263463815640739296429265262211324598914116412695098119675601829576888140388498958752914303326680709147172966269206518899819891242753166731707383960815043586866126832575907153597013082707821982598129600654685835202000805474631900781050360220755846653808184525137612036160076635388775218780664944052838121998711969020001560538578152663498657873192589135735935079332463203666951765273784391239504313802923985856640998406215723639345476334851724493544584525622518028820426802322603393552361058816265430022068833005696567253786762001084189518144366474259549458448248739787785912544379440532847914316717411761701669930072503281292316238674918492644564206458160205547024536201726201369387861121677332533636296712919458905114254251117728029290640845528836379103840635275764014167349885905893233786069558160257483656749301014335892492415571367391814300716292938687884472814366126438877299371992182326723418557661626529649075856726279173852093029384743146513158039614797645471022264330636440874800320835618830862055135023458935498544142381710938820543081262588783717389213148928214593324892351957075180678084093446840830175643659136404113610275939730703477276110198796829131293360395027713462485252178709179219919115533988414783108933801125259297735357566439869696054595954370767485001125971343326122810022878077998113431900314162338676290903072447648540342417382261956985030036198276322118720583760879453794792642113033327453673018810741275994893285799608232910153664291256308602806297888024997939726997635293206149812568530575315173074933270012047817031960942345785087257685221802724639817173508105201951269280862661984434516900803489772735203180394953443331875139324507635744804968449406726368530998132624724470718969552202514750317755559870031159726635861918900887191088972464736520228513625116350960540795886866763541319059617356154494946870417173549605399774614045823079059494320340253121695466005429436576818708068164824763817433737807250304155870441548495356544655679772077128908087282975690177112163412370838696997646440403372636747740051205359500718206432877852018461278066681559224714892582117624498335093939562133212716259760447597245313843837498221476760913388031152015505564595669317570014774673447588629490625667413144746568774700830798103518807085245989929995535708968278760963934005362434682083579238699498872684191159169591516132384084391544119860593904901630338406257918473634219134572200660318469726277725642110323905540628556836155179554240205186279993887092057777175032424275925807684122028450280091342519019939499691476074887310563121444792040676553885482703101836614380419695185335399569019297489668240372628744911052003683999490466235423494518701197878576088264493776432575659072174958981452222635328382960996031422226916006761989695192766267958452569020688959947473605861372593646495462420267158146369753467079258066552483301773229421309564728217873264986713362563087935158531294984349765874954704272273539574256367259834604381777768803884652133863812115582512329930486253974917720136639747198115701519091847948195327792508235992730913195556480222064031250199219927084724386926854536353771913575184460134575837248220640868696434278766677040295779159168551685566482644010089597538093639519578464935005618326066184731696904710570768634456089571134653280603687983514167415648193036990830426885721058447103309950556102650563508577061099233967185312245676492296000102248901503027304228485023666294836594852873656078310031835382645936622897661577625372273009844333330154494212066054201697296113298329478598347999209948087348569391996044806169350530797261585660414998151350738774590358101463846236147802060392278529245180299634160625844218081985840729568122113507094589855351939438980265656206655014823192649385653850218407297396040496941380726946903034482173296612816465704951888447553601974956286090008437058685607581758203308693553833585528103255653374302262111590579183214708005644582088800727655293067167026137147371746106065514354331987288144652213808454648836735649343461344891600912229194178241626296944126538465117662045493651862060862647270672890254876095279213096829099221843892220682411403506197418075224976204222258944988166826627605272393116735365990891177701915032937382555704727917541227521591831603639435940586959594771873972821916772565560433120112502157407630481246967093216534744316463912994986249021250785088463286941217286534226338104765465325792833036354288234332040458513372771314683208157296916294851008991960098695872630829670312173628159444232863971047659016818567323019449707613935323614097082814448091760871155423050288210271178119379311326221011675799554848427817477351198769173351926019111377619629629311322733464064873923401574376091314316736912552838569554986712176473576796362000312817660997319734477483595728609604239596631574555117316172690532710921954174558551309790189140976559384798400994984610764659723590646179648932244719774173564604557136682370978520011287193803258156667704930947654595030789431156247440431152010844000638574510538861700046912546618106800683552426917850934433906144038669976067486002864273244361612588821917370715919805763533380718641649477377108445289533291281529430309982978433938047754865434675810966401213469721839935269735319151858392732718236456062055926920912643908289726707884426160934455712155062579755790637142057679194107532836826547185511605397064965820437670908351215909814430247059672257600484885124574766488654636592337671312677141082237563456587663898110107246787552704715512632499186594576413368677482841892549427333069698917162101876003218570658686485168547209300762601512714751638317799631074756449277043635908847845617541702164999342692463427556491442334430427367506770264081025199278332616883516626805554375764092067664440281305192947396891422083522357247569428314714523353109337876060486141919235893184217171871834704917396583263890876994439103423765501316931711624062496295268849808107793106326604308103727096282472546298086223159226724960393428346077401023642912430505546056679378780727030627150162379762748962072859456107139281093920532266590369982215204195333114514951416710869040731339564179510929007838366700356422962704389476282784397016552275421983031963695350294226250338924296287231342502752758048161027268661905494395673201137236864380713350474006276743997050811715062435200072836917264149558895224483711775986279708690321356306022888731224416922976351428185641771786030830903965452708837010142460322887996565027989068459517896683558419650321521853209864144696109723311259292823569243868450210753539564372463582440074180435243190686211880981318948921050735915049418080100145269279275050522587981475137017490062067780488544991910142092267146424529534396191417021157141425695876168962463524451981428309446484146941226043821254082802606659862197174510005899725993346753774457975070257315409692920419494456176866549931865421748151367378597559390487612934265416006014775995428045782334395759816628847203223021550278213397524751775856045555403533357534673057432833450341530939518584738649459843865852437713603099418174029858915809395791302887171539726335914171242889058524786180317648324683221706005301792524882966499851307353436588661382414816146874037291592517606091203472236658911248280989708453235368584126820041942108791930710536243196620464532824489363017667014667017999491909599470425559936546896743845129795819726005174441232596383434261800319092741589095641116992519588130741526586469118685217936060597027890324625873315814356688170970041500350778419815280784695591328523763613354619510436193884045393281824705794261154469488637935037811556089796491955787109607892240363622955345946337587958026899343099715197631081096907175505440909857524815551382222456344292924047170181825579448346308590876510524974114707075272847273170090514283935153618999282645342950285342096276715421338996125148906524829212473530003462987950661839086964445489423898599564040777389859663311018201083300840231827648364360003174182805967726025065917457783693686705415774312880458191851789768177948057312018477633974777773566027947038210672413374211826580988627307399758282206862896574835700017749022513655330114772101763880073275164506018196013662931716352020862408043013237440883974344226655310014969001645357354117644726586332877689782025807268202813848541802740067139228158927980941505402328594758843833258036126534477445738580289244083373206232042298690629703038490320479945461310677673909387945823203045772465600811379874270922379437126946538021147323607704866074255068222889340650209605793719243511819889835429312496634231966158207202741826471297046288932300091866100607232631232442996834441290029604978568800918272099568182042278911138771506112388015878105548896211885362139998707436307501185752869699683694245578096061402682369727188444883110156897022468145786949078600216178020549209410090500764883825115168692831478526596462918619410717763244439816338286134649760075936970783670934793905128617646487216191784661435839237132548418063347712441797492230642137838096173560901312526758193149376879670757044302219383766728258352455468479398643067410114106807667337862597328590476934488442883642552906038313840569607647467681768262364167685700993599060961672488990939551263380381361105598493755583998765653746803107063291488507935465578268005466031238634455162405176223339066446469441237708668593735215887907740730694140596843785456470060632832061207255128633476130862560237567868068236196614925264659854181933600427326005274245771747396808628134478744368817604505509944652192680752259729158042394621016532052696830745030762093286514331459956075791324696383200619791116621323396069200415344710119288148261868777021134049477760712116754125722852895159752400540381454883099525513809661111349477329072402909118301488482061708925404565098732457713624038322952302619910921875936543210971202353393514128987833609273792505260003596496375039426744989285292037425073726740263283938261761001277791862614468467418507134251802803884522129989540539054606427851241183160987344554292594235536576113729595189259383324271184445954872226514153323215852344243659305055300173238955801241629153193767808326991629021354811183020268103132433734441991036762749819140669836061863547976009801518492644477213016545352196597600053817027809136752542300749007922731380741178215656442865582353057260702419966884622557893262097647242702435058511857032184379095688551729558885589798302759556054959138848760790756379950950674115210801024685445864215902226224979385198287146764806117525817703178320179913078891864029049004439334418101914116362579981040940742082509267056285449531764659561658416442184592380710285355159674861488965800422291731647736909339142400028472814330660990407919365976745599968285238603588419497216891457358057275300789572313512689437117157476053417907365289570091622340443445232872059580722969431367141846727890515251800108992748564450616665539804000600759663252559335931841982587590821865753879837829661508450186698238141177892165182917386634234303990069530589877465871795418139477593322828200987185477786703461750792331211758125600753430387976125360038283181484531602111511123326768481300590064109331605698678687997444590928919177412534283936557949322008415387590198062279501153782258804426296304819317561252646535463291290680419187141037443494523169444167732399755822481081797308631870601369143608489224177192740780967468791128674311762113509613737400644832329949836881843023227426242844390988925142045983114801026009028006423022927639927647607879474913957816914807965712146456683921215431023666805072283927958427853485879157752991476753181787423628709270762472163354647468558139632227009304904065448611043517733653224523182114931450838080037109497583939662088513500002202301839724764543071134075129167420793277847434706581231692175894367099152820996952072488217957291763663146299246152226725851504854291913531094393577509656843068966574596437498581985454514341063834185165549113745610972591843684052909789297907866070638201584603556532490953356960713832422587636213533227353025757717508308974595955533401522503926740770201088061145873608593940256190097155165179617513800402609538874212306492501944568055489265978350512456450871499968145815143078691175264234027442307969156161621033792340166599723512923784366529832981557833394367865690873824381286423662619899651857724933752091285426187906828404042149731056990661719911649088301191911979540793972142103930303384256626915694258144394858309801435318258793336877338426855449167345694611792933356603857204613659741002339572488515221387638187960056620319636136734769088196716722883157065066777365780425290545420998882578714630418073154408121621594237815079735607020909629405471151862757421052353074362164222665908973994479531726782445289316861881035263177704572070809213587232411113643552788251368663923372801568750360704680486775617116381705413951902034896667619316615920459260213696931345627452444301806148816999166278685987546174229494684829306948828601139432917005518127463563288184989299288135310606749295444503902808561584162546512606857949908781071509286115913928429952866938185988167457697296886804559662630261979260021887234112658629669407882432013676740798280565331386451788156445941021093618385820748629779045279418523989768231793680129482271744448065291693715271000758490575320458717557266924475576181377373469875893759061308174870846822981266814751750647743628651785235048145080180667036112628841395925337380688801332303891122035637462912896853124767794121363234728031934976178687053295525573859892282864843873794318636111222847074574736971892675052043358724717932825201653562676125337531738030602828437952669156695655940468908971226390664286591979058369999289547464782799110161294270082581445527216221634086837049944540266311491781624948013050774744928008412934343341273753801235180217208604970490654409232957274202539118810535739184943560789648527341179292687421167380412006126682521408583869614565353902053717673038903798117435049148174214248705947802966493268822947738876521462304878988433571805063534446646498345060538010271655813286545152153252496330633232739834277935911368129905432224822778423755305303175361753305994329128775914270968830045878279565842380662607729329921057432145617084425154174596752750605953047035967635074880158527818391717196637126773134577827927758715862041405772282236809656970722202880884387826019820502606109806438443331912618444485126930856594067740652934180988768499028202182190919019550717192814853274807659122439983371096006768220960275621932099486478701749113126581305009953798362692161570189994885508565721058811311891019890789425203914820622239169363539265203990264153972071196505460487093675149953570112865788891383527057981603070794361755103313026299329081250318109674219302257332473246842085320955087773140676301085532507358571140621905440250966808532953045214507844525496981081134616133699288265994885018485321047963679684495110797087632207041023300405209802836120441799833092162735583286627252441550494857003098071176666976227876680582105744086537229945841860234656287357288821942717980730850922909777778024338046625528853055842673394610313147832190347741529430303511728830614138398385939874097234524403649882853792648776274979783196403533334269569615729322591062076670138499750938992445344435536567787995477700288583295119166460812245666822918510039623886651778759720246096959131781420852475570506594632384670225164076564755567229434627981407791277874167082245869734121557374446064977526603337185476941573102793361081250495668604704179765218672848327481341899383907808215216790153924464864324655086616751591967539015082820034512504638306145232660659612099301391043262752290100335005133216491898752975795146664404288557456762782472065220681517256400482346693765877473410242153430851619309346659427846095983551484504915376038276814790110676348403033404180302546191361702158753399046480282082513724931119133444488482385879288847881128623886967030872753609596330820897010861673126004240562864492310251879582550832844065832194080231239269371819586607521513201002617106316396632924444321777622020794053065499324979316413085126216532066081168292611077204429834576334627408560283361141938708464112968564994643439740981672742826102060948541005452080863699043672854526550420271094962475665477582783771133388036483802462796334137355138721702764028350185145267097589302832238366306411811735012176582706882712731974517420910009071832904806107198287188862241323099211851381850033581368823476755761557872575284460070145689824337595004633006463678206707135483234799818434015868058915752322160932509548500184516091149306668838312676424926207375294034153611954439110017706655817277259110357556601227993417994442802181824376870848266988479390435880195254765837516752540651182135081957287112132788093111762665157082066238335950510881567183001754083327322079558810587659678305213689254067851241335669115118706136471810548990747894326478853198155012960309792367291251589998305690569099078250001939722224010131762444500680274444920051660842787306720210940319808995108646379608755926173189433841548527002637796538181004048710788698632201974465882907748132562895659269516381912581908884186071589992828902317599607673603974355205614146511364773400226728519333177772695486551274883831612169516691080553931694554068559040167057273570869231806409339651817145024088290124876958352748205168559480528914301467429254590680235465137137167511245289887114520468459952145892898289394230106350322552931065897165630484730848234281030848338928572561325814720022807879432768634467552184519648661784330125825662252075779447931329952106904817851207995088804436918327807792656603887451631159385076204107286525414279534878351383398149823698980196734972625430449759924249078566997821624469633807274211388438010237606409483781985251423040533305782562780637137328353319932030875052936800289694355818465108638866226283824220907142334141578968628692413385419861289597681208426308326045499566609415134305108632842936478703854672030011363654634239588092302461328732031592526609131236545843160144943601547131551187831691577257609040405347320592786724940841068173075787494748843845740812735969315272885167062393873761175078165336122196777254785194780344029031773957479943333950891013183273690992353976089675111551276883152194441907985504088581687407983611660490112458980879851270934927086405271290003280846300847642126754971474302606825834751638530300306177252077611333144772222137104521915665721621569366696164643126583385950921716996852160701716685517143002288699489091766584079738283180798933676194287439487967254256628652460580303531782248249565370162523248940606150661478744892780175103087675350502975503524886953952465467164284448727387680911972492059960379014163058474071921886233296672986293984306746697557863735225919811957865375791694720450075653259285309460572416392149757620770424115708761636126066521031856276366586104598828828203882702807661426295518509939845254500247854978142136179171639761408774768675405702330319981303859316127587702626840948811655025326110497434903174671841594421927727800181069800183371658906858002933117833824982612630385774690389499035885580759294237501004338868522777388548840497490329721834548666044547208329958497337973810031509526581117639426112766325329274969610427338290331553214841137691627001321030101272696261291301053996524318007868546945396558596161212091192879820539354369265411774150914625685927389351340618579112851006507090305365423288398870478861442220923458313116583434782944237660670451889579597158231811686259068441664488447357586512911151993594123979071777600094505443896170598397470405500563737664374570349085966196171803454082940400434670961247464144558555421688490842910484315957266665600548923844108955777103061798893570155700876458213828842295241414420093586892431795164193685367088064406743364874404637627759644051620140208462767302144416544363560998608816920688954898794552844612002005965490913166370705485746847299057492694465072577732892222155926590775504508238178237436468615193604504439004534435370808570967535419113091575605772703299000859744350197289634671892825237890787250277246949737058780410993230089517665288710603906580375908519170184268619922766353416695039359620176600384718542434224745892589207900396211651322326640794372175610885070713527048609647090754226642426862721710919474081650215777048646585440412723717481654525823559527549121234424705877086752076366696231994079349124648764888854512196897642796141426528256581488401238008703332145507112944924485120715511667775051778837794479439532212507086202743312342870658742710949173583410237011756834835487428385418264872480368787922216896387986905854261153643698198298298704632598698563986983244307903157544875928045384826062011008089503984651211432211446364735430270371462091474709749874060587979189437977294826130366119443071993710805188841638184403158131533067321275781933322938369719686136698883248121062172159698631306689021515694641234247106351552598988991957400596988806331015106491583168871391700249469432654583366512275102457691896979662112866823997994485797860718606894981337295572847980430293336141911185166674415401933719421932669242413360803007013102091565921569039331004879200473853780273037335116228854881669562020604378470491557093224101896605483255620381351094265617205847782329293166548207588687941557756380722016686856822644847331931133904455911280238969057920442382018109724180053986357639845438649196096219512051496885372184386494784324570536101816255302613239687547441401513598666059528520016489246876970733666758082090556470675243284807194384079089183503918170618270817607066066186850226209907121028802448095003818320573701411541540656388632193046670511360352738525887244527136683363471265933617386113060785419554866942446784481046380186874529168968906522415772212683028433104229499602909443222689524934794762328298074321210882575187387230339825976906985550112103157575884946099107048653718646977123547860023927938269079324054078202151211013683052431660750892696775171335090065574681214947508609570636603924126917165017446738498299946699209757449287772146442001637962363179820415590052779856522901774444331135474390163592203202599155698433126898494758142910151265745856731857618901768605494074062256374101683818815714365119162540105612953677057921864911806937438237300830945868755673456050475414427921488837063347462210319542867604127568414687401069062266871964672529158420841691104433170460183355985515555517453472547852514302530485810124837550875672908160108350086745431248234660625343904405720960872170456747634941966602272614197584741539323936363884789980915720725262004679153752497556394626003707596747395981049574583260142102016252578716991618455537382649322408418019845023706323003307315050094613104402094509505857667311354961788140506060419246471718850150759395706597104928180578486284264850824078672913118291804292984965064932948511938169248195435416987137615683101149771474546757481929872300773685117593908456991034910328675753684689837828363200000243393859083248853295551742520356247872843807046943830612660712502075458293975614944668448108685734708600460601955041862110054179849686785542087749863844604712676954767097140332352965088212515797539756334067993020659497786212365903988875785567575413595800346074687499965377923921496568969011769300482182363657795791061651771249095895470909718074079477513973661912388328695725277353819797029850654817624042260495707665115609119341709547392351846236432643601561447489921357427883338548867439500167735018185842011817273552843119456095199977432880353335868074081662914174764393209891168470472965441084978984958259492838820038216012315454457322382217429800330135768339866533346067355109993857481769553340224912091833325056561992643155780708811454557737999490957252908469444622940499810616090253040335982536344891497103596403464687224484493294611732333725119922530734738237608091846092848944200291166697125663232070596412956964727109311181418885103634391625749355764361977029774312446333086251858176327868028167035953068976358953263179376898780920003293635778268984680574277522486638632532311789210710359020886110512593205423307410662428943523703692606296139649524734698265467504919210756593828440331338491003230166279159876487880815656422896127009949916399787427571193068468634782629710742069157948980426352821037408992833992477070766880950615021114166598276881872938985986132876445607777382566739164184465919329145826357626252031345654493273960196552459068407771075528339753399655920607191412689518813676357539918292448637689045983360147913543600169206241058935897871320885600563513193098231139250279872916625283661158720260672576821228853379829832969887078694484814766234732619638336055570762559658484545282034897958614497764091071247221967471901438314693256711407698703077227293597064199761845707291345720461859730308792660248326846156650381265945501030751822969381459035358013335152720144568465780685135623803368274041251290000513075328230411723714449167310887862312970363671268984993485677354398932943699260843358535166960093803226426509823100069616668246924838559580869810819107231420571549761836053139499618568558978396010107779477492400059368095110394718336644817327312185395505134232632227064736318532722742693204211275128242472413372207330821957734063083846440274889541963273198925186227829385196779663455756533885689671822614424958405874052422645580436360390614148865190109677799456204723658082466853711730215450483748848092993699201101173703891063101951859609179058874914387546654632821230357660498644040839511516883434674832311509925076800210672531026555153254121380803077784181967860429531204447068047528407471876559569551425301926346135053619770427716809395069763143479686112539510857856625324753912864499255304474810026614870656692700786143614241685141156077561957163342093039915602892772235665354407373699683263017022518360332152457358829019570423937055472835746425739708109757642307387346784652379977664818373867407627426201951152676777716857117609874529746489817624144086522158900593540380437393166839468296278791891613417336337324616008136316144800899152021988000752297370369051642470389121510147364803727860531106045243109066284832389799507953630149082591779052601197122442039900117546337044375421187995415149036915652230670677662622109878253794744262230431471268575172795342902859177901299997034562206457301102630709420780389097808591568132090435986413815083737112473929108233765314252130318067124600691873546434922846565325696289168837882507375202083363314522910594072159329585952750257722165658076328754821049194096450029796465375244419134289305328449982241651523549427509492220047278378631382366876446594832532108909347826937303538573040442343227592420937685804530300601594014389320101810673692219216662337373984664146611153918552547302967766020494461301768189818237847907859196521916495953303819237329821191661003592268301570233253515112474305244195868629043438384057376233851712169551574268356355606044567712799077413888094915540881576891440188620866601047553433398603187330958383417707237171441543300573718958345744223456104585223259030042114652661605351485871322866163608262612062703471125815712888493353033552504438730909055470528798444648746483011597447470280572021879087398638774098839172266357871443264460120665345360569967056245124328117972452197606975379615211885648051163917265592276057411848044488244848758762198854003878638830463825276733070594422098969612547075234480785056401721361611285744865111125115996239766798824736350513372626587638929544791901325363593180837995137825352173235476120804437629214944022403948707620711480685902637748134836731552419947290981096305448877337823703386828539615970080007105420398343222875372890839459577553626347415225457458627317563010095028446912265839287902142593779352498981552528970028172079031620330843808876659420961907769945125222490802732955118815010783153200867548686157882916224041911837419345154890863481525181491236159591978950125249968626319492689390023296074219287482104964091203017040625350892989588122165025104199310167232596836973026179398769744258793040727019612777701509980829671971774829861423750936208171230437349761681609312073899817041173791533845327158242964728266904760567406569858504083954281077623735338620399352785040848190515534095821490389971640734449834461816766207711880559193972891031742481912002152759996184094232262613928215174514561999880338845108632035084591916482397051731609198889893408679520195564617935555350762633797660054199719794065680371870296723014951299933472405320541159713490846927295774485628556307202770799554488704852210811424545759264382982351971093775031172536131294348149699338617168461417832629748154182945617649787746228519273765818956142875109314091234742177127607208310832082480203460048961677570270958073916032320696624444075228424201307453027241625880613286421181338340325345453999267191987265882113624149172212666352466999996311196127409376974280285666935135736287829683644579436068441074158652118619041097090120823514402414424559549304843751387253192400460112513041544951856131758282580457925085144672255038316135347923182789466176992267588925967402943454219080855504266536592541352422163437576890004836902713004775058628084224399754131662078952799447790011074992821761077834717087488328499307758407448613957057827002536976360654505751274183059509525671467032549353005527817522583935647578675480169441956492687843440337385118390901308873912006611902047903398392814702684267505501102028408873711919108580751984473216167237915015130054043840369971052962377250685376196693772683852711170781905147192254432247061932521526733883124114841481501518445539586392893784362894930809731781882500370243727934366513641442629589913688509291479089234057778225868930079058534801561482829323714568783671782711634109006827961645434221233180442026109647075656004544389367244721727180196342290224724053470181233913952563801349695194042720046428779485411258542212754605620734392693891443934149264776707338246635589855071757694045893319148394142442455443549256371418045260224449923973157425025061181397424505993991214855681534168500191856813843618797610189349637213985558661934543156751880962179336967724185297655027354804752014566431652636873272667185391380683481288568535932895076422677730158033959162113965510819419454050110960396731022647082347453303203521854650404342655213408551629815847068103362106141826362201835101757795673334216036927350616192563808319645983720769886174439536692751771899916085827163276668580145794798014782912501877287816274239318694677676490999465960986355218259412135187013380130061917129219579154166872043632473858756553365931949810049528694891942788017181938355364171872669043825923313779432143336142198829590008991167888534648002214108138347940067972778742788713798766915434385061366647706054766625971437307489901222939273930411485881401291255552475945563376019977870574721138389805439544460405933248517908140420188812452645628221237407498010595772734751892207624620680119144527461418668738270787850993225712418254269756482724271345253369760165091956729473188417571906806162878266428454453685595050426301101353945483654149741992266972712347346177890854886559712357703275335339844592603263402861446860079893792780554539910603243506896918685958078620214886222579538913636536215995252151314259335423804435191041794861257197178928261322931530627106304074966476440620898209803366878514799235718536655951786979181383123147017293945445852862947368468993427415519369689742177900622755454776126304641016469494603703233137304984412253164639056058887310202206889463851220603304109613638601079981037589212766715762013425994686526287958971439620547664941030788992895088912385825195348250765079599172330588718181413674370646847431147961112160946164479181327954458779478808379807067296976871805696677945259261821094824065275226364852709172596697798397385699477809713084647768521799508245582129555756482511880403694776817514689569977413639821393896569172061253254571690468106855447859591460309706908716795529037631684207526855181405170018448443031999207109853075854065746247733765015768551853798915139932137124327576582339782945933228424042000328032046945322169217466341313776163675736896854350370549212631316402327784399560412601957094435349250310150939465412778876225025227610138166831176112436185137414710159117724394488220043373107275243098256094198507285856929410080311713789126096592633824705525946287239584412624615621141291238034781486886642349156364157366821178064320027597880176246750510063500498841189496972084709595580836502544973888242477480990652102637056336000928165615734838171113210539459211485793209596735820102802212398947809320738415451193322271337785650742690948076522010163194487701016417305304988662647950423338520525808411006614602351263066365551485393735360275186236853020104654651271441654884707173050526453019908031878380147925076394421576402743333511658823384143627239953615197375701154408794268831260790344550583519567251859895218183686447254289801618630347930750912130789000579283512265749414385577489337053806066405074419661202886164373066172572611259766365545658047815755087479197907524957406309365995682079847119099061336315438156667315583594244071634345608432405805126317342407785903919989995109714248221655150691107535263274769444370872795980147326951698340165257521741124958328018713217826470672808609444008136000365889883112839268903396348276897162716861625610400485575798781612951958267755962663796212897428829899647460455594050457385367753195544823901618819647953050640637318609216647456002405077107948071405073360553571090500221541566837074929366386989245222185130185290341201445909559147431794657832607537545626696588305156394260695480338023319697654007759462800162905571760441327420220186620865887024998542031688026462053612520217144284927183841220733801196483618851747525673717986864300650093804251374194761903904496156098670717998046917632639760021132780986034576978519284098488275108832393994753678914260834711977584575775453767327961292428971312305529536616558123019615279783442956712899481475359473088501289345196949842391906285625248304043952643853089272050960789113549390575933692266671733117378391103837037481490458891358502934285390362161474612978045215206764876279908015766865278382875105681788087769907317273701060559347944205332492579231704447092678072027271918868524479634356537033853008682213088302953321353875087034626085852395232375489657313903083216941488571106660827730942132627813803883151440638630627628779914705644843479133195487623830160455008939572016777754949177504234869682854166655991284999027147309257354761209740108913019196187953823036170970878013431073192659678130353816877264008439571113639981969368936711872660785589964559591493397523431943663776935044852970871758778378875824043788980991421050266179594500003418020834451876588236261904873189538367472711768166680763537526618188023108049190909061633679572369470006258593380472383723803090043824879419522268159053326966374497928439158065072091734121214899066584531396628344759381063487556186932333564795307740749639547747486560161201508495461516498652496917802991558705617906523892214751296491142360239342382044041151709713742794178556213049756750960726747594046364560059530087661085371295219196483782874653149219580718083744854598192106193002075654601564221472522708920809008420510625922089530847880460374751348335074993340116194137642447948905035454318498386829935914832068230528884317199597363463592363372465623875992210600441772733095046409942816575912023959841714794821901429030039755664059069200607682802496021669422844016973296011426101348621692570451062620354624872927406362548279523653935471580808090218778952097553636372816424480927505654564229800842112767160536334703411791537252894503394124490738011492785265203146822698895539406600932337239229174911328321938869212462436003697422097097397745725067083952232775978986623549102348183526068887143540023779671615639918278074603476716250549574257355281600200920763532654901399158223946615816387230113520494691112378396131015373963611222478720061894497392162838818783329343151464714468612304013583359471919657840656844717379153672478430084098301863651523916330338760915157800840545893190750261510508624918159711203141756487107903168073441844954480669842482811207908448882512702177267743106035592351540337561565510296229173414498716419793388469575025584535860222793143007825705146949584603911084978430147910229795662062888707180335082831720673003815598416018547307779687250253710993932393838472828972227474059227789060161550947201238229322230846995467286572029152519736976644804314931574097581883434176226802400839317966222075509591521255507642669458590364627234562775054621426887596049516396885479155965086203898015257516170177849017513782241026543691754270014433005754550654240798670748332020972848965976895993285683850926750095208969816439309185485585228605389399165599580910265328311121349836293385470431723363387094026080481324828395591867214374586130704547269108854403450733147442817041160992949295585451594233355899736025857946251260953393659292386981839460231462442534097566507283128979141098070544254593972821187327502656089337107209341155404130223589730710085412609781998078660747967434038293497163768432378903962861019460178807063274592186566739272637679135786701253471705545722937829657364772791743171972402980009440509365641324411733987327211828580814952578980549941886367406578894851275607474809028964960352078567952646839895087637968501260013713204443821620435519816308755462490082779071408025630627769558081626966652820202620923425597936020805306948069742926893546746972560535949531103192931845363787933178162630467785641082354292096174711115495233495553477567414170492916217187468469251065201746709200547763551701078921091019900510690699042456119881254234191263925090798053147080562680720151390196912022947345537524767906789914681788934890358086193439282407655501642222431783627689376214155398051934141529770836530310724328363221871531959782330114308806493081873544348959649809323878149821885259723087235463872345292619787936083107029930463813216964068529123231753556922079461513112181105329354761388484064425996830346863645803268579129771345464131601442373258636376841139818096315972938517981129011254962206119213284609749515689024195504912851011171746344815766424829623489296198276518207534718069974366314305466048885516766172026017881663209855227529404347423926621060668185957254689882859863465017236687081256951034527508483191260732677043797792908309914574717913248393341527455051884210530469759108425746251758827089313759243429616262399938047822120280274726352516247720663079498472679070107448503028505986055090305692764394018207559504080660748486761341749572550037271783874328422626890816323803915689269874017331236643232015506638359131728849522279428775480160773223404327647045498844494205114869905617970595229945439200531041305728759359098194378901489414705049222353741622699166679580530262300764432502151347261977788356009823637562228609339666423416303133016918805303793063883038442975610855087733696455989457463925986912872213928816204183096798011996685891249552555191943507467831166302965700424483825681576437169170958478367752665499632000385735101876326404755087406857062281737853436241138046224987758479470220659641256051354649255979631693043967617852146248250328497439486533968832379655918311082233633493810777275138015369570325519754726212421842266062103423690387964972726959799299505011842197832973293601343005337747588500021760487978521125102372656455535784994787653665639568297485757540047163134494390572515796320788917341085507174806522713723865774373335274246088518283203437065295712244693298365073474172611952166529511669346227471512770220007179490611763508452985146632963773784486206510796954381944222631007294936152775777905096239484342014011477409034313895013314789398460102639243513619236642861267787396657476716227987211190535417220350391082693193264776264168522109372492808102188623929637773155271063390393590030396810823511936301269982449625581714112621686883904914151860488417281135712678433987646254065669890954721855975391628578230457105274398319675225901574808850363934144116005014982236116637040640213127769895450616910847159919741340000547730841785598959950508396361452564142046426089577388938388002929842889617805099182745669355250464974830544253666635577702385913870015513880211676143632501694737851496158551875687324078141577493148000131302807330497446632008206353688217499882497435226211408471037537166907906396892940406266895505134381363053723150186169073179167448254817408139081474082511438475332180990251874800323930114494676100750442853279776758891467222065409219595781896067065223501103780357108028156283392319004506671976577563538740513470082845601131848661458106112646903536374021575263929116858056644609258628344797547559476099504767223877720597194125466289211315702654238348818072765894782752462110739453714568125073682154388097107469190735513144302142761761386179328837469940696298057126868826083147528127376521058340986513468134667634945716780454964493997124729745823995783058965210035879365266924093886430811126397321095814121787149410902258552624243856680697790935055596878216634400635864232995292526317023788160435346367168323744195523074512213803475747665714671083790921463880076467785275314806141387350823392996757452961607790619607856080635423840102843225196786703600990130198488469179361745794770937854520663709529979956064890766493638543423624416198826003689487834805143103633670614166842586842564171103506560349552616991830885294638655508140490164447114073664592500331266693859542299443279563155798179834196245701626413363323240513793545582509077351862871536027487234308842197819190062387393038345576860445566990973286858114955991138304967585451126992397900704973955737999847125091910709414109709577743239121244895586175481169270347405222148258562065817193649484660684963002217962345013946385089992294158818379990169358107422857947190813232330063556364529400563540178844529791509024891764039602815879157275657009182280430985746525370029410886914015179542596961938048828644674700968649819508421670202587288214814130300399833347366390624728027047948703856115281979645630648081190080402745771430289449738961760966066279328369847398722169569823777496156885956605847664111477489220973981982394836017388841983095809579281877266116018477792674111864660239289402204756341349605295931563190513375931079597698075807925738830435537915757395439291521971746279017544109166418649228660494066609348244601655995602085030680095226978916049143217305932729101614580915592631845215986126885298717732668528020052960548914462085270181339660904195346024545562904412850782686515455388978003020965933896129543448952390797511969846064329950635042592291852615468635492646070305544851445965860287406882059446867931388270517118718369860509582683312460077402908838875593773364805727075104309708297400350214014022596330017187637522677180128100569791678263340142433939744695815132735274618279718165364533824726885434787445414875271601664661898123351398292779844390500183818971637506356596944022165430834340984270788916187564344464557890465783851730278902912308380679005465128613722391903089549657767554859279073976933428945192014784418204694960217403272817640122763358851097785489305630575514057745258099877171876600356623584885521464953656066378645788964141275318552346886221624181137977179849760258541841388455510823744814487658167234742909097225461241461100384299575254839365366994881137895339676993804201308263359788259734460661428432805786555117880232457486495647958123793350884828520924192018259059998490605024679106052771025143950739829325674777240434567519847204243853562851058076294524113224754012489701996165324264110548303781792153702026242231408789755468845216391987710803503684354583821167544772933530365283435323260868035514465002137382091017713035409739605388516086411505718218734790493638937747574351910219084253968400768698711964035511033530417016124821756641855938201321978627855695894054010045090115368305676805990934641812146594786669933614223642635205289846143365670497806879187273901136711826078474739545760217224493897067249031200964175436494738502618925588756716302324699615282179914137757917502877885279498718849339468217024674683453568488614778288213610430367090851761443123561835286081353724348185214760834643500871686175930428652529655407373242880016097156759761347459031798036905030217712426499472946476466472102825577301422789604775635522214897974978960634091365282441985332348543406595407486952950953310364879172546769077336914863083482292206990336467314044922200588273001094918000613983739808335758788510118325742066076733395329601664186827893067959856477859646875305697372520818714357968385375142726716151958291457972712674751022980029248723004755423807007072962613753964189941151812686051560721490813380303014658987958411373200029740854401625739030589406958797048011212589901029933201743901908511806072539719739277468517382907276564815703846506063690938450750844203513530013197986571001981546306327164927648476282236059291416018035347423704605050335167112934258615225207965852609003642768072463236208445665252442229575529131064017592176912448248107874720159525492974533142888897191230953902251280522997439973171948469080258370855862609266179515783069037901309000699168978798273552816835745655507445650479110117522058618366456927019446090888486546892777851994884517777307848512656267528368590442600891517140032439530825948146506393689373512269835322975959428336352045114779373903540503918570610328590705503241671039518086967798851834058279024756198742351319574265932383733860152351143039694986960718580155998554890257851602217086560539372365907099201496537818168858196962601105093297446381552737587723769561724521999665673246535134786649309145878776063425680387284764048835269170359555275292344938525048198737435490810593667316587599101903470954907964999945847929916995113931376844973388510132096311551518321203615200069897326062854462680197926970265282179413950919068884696117044857170056385146735771036674482586213163546663246684131930203329859114614104707888665206026117999312321511798735931019393408493791993282879774609840148851731653708260701827003544872412055423342668911099989133075007903565563780620733336683411402588464053212083941097030221992527503709156563428271478983251021617905472719421416925823785624202306611374234856544709205935433093727139681505470205408838492245138576562478949874099508246676776736544731890351118692745339485511770760771750501509721716435104677551500494658046280496997447376131527649020257922228521302038525906808204401753849156878838916695881341186889722783146024250122836762669099713482698388382149169095106266523029199817785147085825228221947566929072221776657272986224511347181292503267089026356717670276329471747160777508421015956630131849165513510828850555476195882517548989006147100780391468410816746186281983603561023942275414302555689470710312994214950968797704311465975619540073913463732402633923262217872890155767334948970355705348897943015167792203027339614410252130848318925224613687364975692839020446905107913945811615216216043801232938088688599338107166272002850623918804048733902778490142075381057749790566034909607291800883439271768111840075537689002897590668067855953639735806277377146850830107191124943466576480407221186993181591480198410340504750165069154181548597611199370600704194503639248903878936952553218270651163661968062481324493367124185179865283138717530040270393391215428106198116225285688090011590896726122931358487511981866863905225446083244132109183771722944932412204695613720474011025147619100869132979420637805979327520261973228352446358167565838998246213074097296609500482492087025390578665635612352640159671371744996926911718556380165490675671060160163584825182872888842448905393877972666530185876440613480258863098969119082634117829738958712389880950075266924693012445327381869905064355699466606007902249123068190131220473735500923873346507481750935227863805406552563817054473080392222418917114080273950454252106932533617666832962712212184692525695238383370527204259794043349153589545306972767479114365689713002848120489908715296401313304601374762247655402764037075809646849764539608483301837543251605288147693649237326271564355830737080943900201104517996652777100460358075005771260661540560236531159443712438568078426872471088267737089555962915792939411233676984622597285166825083165653911735339985133497383533110745386339500229602782654822687144805148394062145319461468792823165872385679723486585785071630112256179322331803675704235776737616374137160625223905459476414238377840739694782757595828508594536013816710985990558639465890847384289972884311441515686163831659182290825592118859937983155622913958962503508246721941422303891857122254622220215512347824548810730132759089553780799558733922799903673723225556797159466331776044377633789191640683743120983885450269530407394131478315334207149185923278531358937581981479542665340250137134244829853596629200146449929141242093152948913400059092024036820402304966990272746576770300520905673983795413262877666902267119456006264831847906506086435500270904060741657159217689069551200589508429909696416898898491501297853835094008897316046558727394945180198921435471316678170918355416112969770571458680006562748995568258790911336026906102470887260491690677384853396493530967095195029891585940704700689540951548814058911392559821004959747232832108000692338612232625491984675496947001958655729528257409958677390967722260269143642540700983206648473952625328189334721943965302412363866297077700365475635430877378286286103881337686981789994050174090710119027228318052834926337677657913141437661928537448078715234694578593791045459456386588225092645753553345470908266348704925001112217848549004952869348424084058613745494374152421897433842820822657451675856630519189078071658153291079438717674695589782980552512849184892642154275347847815152778495853189439243423542323853171294603044028488255682373396799898836695149685036304425452711756620797170300899354514151535881617051043216866027986330089933153283572230301336222001146627114174851938695694730568765685604881969469420808090808264005800842776949894209080321772757416530292575103048203699499776719020368480352108626862666443589344419318885350702197695374174854325352729046326222191475252907095652112352437722443099974219628022784939605240654683937353363008137491481984013114856144704393289579609870857947411982568825693143988104847463257491197253923169238158109513429544070994232906266965592868853909235310328977145108817740304824395245911033830776804083577728154639612327898121414915704125071558594639876105924294201143591683922926611623453606710186044071253811084799941501854040699724030373216894167037531888149788706031562851119582179364290925070083372642584049249695101960545807551529545299895410747668751630728181677408517938280724259377595077970486332568654313898705906605086251226573635674183077334864026850828523386379758773451301869002881993131419540684154564788094523885459693009266803140412000453782961530184368347797104061921383487581098507434995184885114543181024142785918007488350579614694717040893430458403894508464179511310558059818973039794552356234927313536042917223759626050025227139991869961228970601571897170673727263408180831207171111845191127227348232907552584720067962331569115730682578748050949754806861537741201069323462348943751608020749464638521599710883681777183879747040465661070918872056415806919687601047521648121363598746636160708908897001062886852736071502042141791086301155807948326534104515287346784089712206098010237056004948021973866233720802448380007286652879410131964927854281165499703156860399608416885422250906351820317866973724010691145069109078753805051061785410870183685944641421653586616432553290090090640094890436836146917181131294080219231982782849100663326049999915952950756586856467486413212743878052742354734320571064398805610581926138248730021500943281611080732554066655878059349246218074089660218616892379622160316173686118247425822940995489114323087915050959395257678656123031191876949891259640401412218825253584520011103779907339954095201373688459120710356015855174411085788299482343724208056444591655541125274307998702508993447558274372878323922022087945859805027075524741291094061760456192015386928635560082387053531228168430920443992017931441628902106228656290391425766515661826252331178302084004547395128101970512203390535582058652474400850953612666130219735480898471589927111246532786953867423490475387158989587885024478424071745414870852525130179135233824726803184761841078538287011945669567337203707644955471537865729621312112953562241109419083309618193024922977855293276630683480744914488124543859517559362418671440349025662006899369510287634829412952956820988888490091702141455100862966754856962647153036724746549153739691591759559288239336774439017521638027029578657363443752600530973548785254839279322842930234524110921253667903404077845556795556510941995631020068499321344241638176339576362231396197028170174206003020828918265256133888634913602483359015888432104067704128896737733839447747675265937552562621092931530323233653947788012470688740743214357503567401667263484036791581249568154843225610596285241303230539962077921908727059387985641770780278175047090344067892072559821114989163905333117330811916608777677751370668905939248524781371037930851717921373603596573217430292454189609794493412987054913504429064953442946392338428546038441437184806122500353508926928096056893976485004087836485306447130234019192159966836973652922583811728986658601036188082477423018915300840694560067817622762797191137488534945528290719707318107113222555597556068005391176845619707470444421776501620397986168378400527977113457809627365371494063616026663537612243802974773727996791957097875028128802412288379523485036452793961762305987181136393012944403068030171783051415288516163440426913405858549776403884955893625325523941530504558610333558718839608566311900341523728297961537062126005635751202706605647164438738874966268440611954712948518128860955758585189548123303348059214841362976064259090228866911882862380611893184017473542793626761537428931318063375943079336164474099841965499700251618529367847533358578117589918161278949490196377025722911278280977118599691216695853724104388093999182047296616609247713350593125965808169056521289804928602687793000910466747410446038129229447132537918114391793519931725510066483192661249349571704327565998642708773640997164967305415663005490097665024472026204243584097454128285391365077691167931722050626153286620335789687414952078592778112789240358597929738107753327769016603625252118120018746577138083365175068240907970184649714977057332217608437034553861091875573714795149898923543989023351752788246676815394163034299766922010381906279549878604484964475932234500384159347099902681669435670605066510836087835579833837067022503014255272635339068321109887910590307376722826163456052352348648560281088092249327955442842260704337107873732326821103078356923731123777545070653393780455627694986594063296254377732331143641007676819885196903470640965370242644212622644932034244786564620480964505411335637234973192670385960364267778144482776016819086469838823436818998420254218211032479492665893573544895868340427940585148464366996286241274019357026975688721273550538915675467585806832358457384314014140309351031194847878495767466612783309371170661730809011017532746727302303713566576620491094292072842176804517899061154990470807522932164871671709403297939654064880010371881448248139743701945060696775980122720222803953118737929213817906025566514958325892886706766011983045945414708003080159516189019509030302677977944031982686761300429593717610078092923236896813398067552002445923929919166430436130071192250585952446437892813017990571760263409486514056595144900750580303965933350086364936729206536650813302410332900854796350254446274730554542677739744457175223966492714208260501371536875046927989403035441637993213769862720401006935295759894868283060628478942593982640182319463248201971737459446207245113228873959546664716800006239640505343522215517854893207086999505930069835062718121370992435325516393747017242018122227628121347264887573963313520537749100768309359795677453610956634964379990397890715639421992237826080744193399735204591927979251101365567253191658884567120134043016935204180741137518118415843158684304244628179552973422430035862531020541505092158926747528413467066561143463132834907076118563232944202207603360790012186674629119473070688642416736326653048539636449856944234414329692532662841498957936100937109789809163683833152638537933732461419073701169469840123460051278508707035893499956905732667053735331424000315775377857280477353790938609462163561586576390553585297463044085956645553995001002669322108034271288646584604823208193417597216555102639438863832657921993925268536819645909999536713474587184487679408386994756241755492816894196879742070158728894872668605249757666435769063131061885877884063302737065881950171264968958081944080451364365272916434777402756778938984179557226623797654195079605668759958134695986068687372560155082097954531609029337777345755464955373930500727734771696823384029888737207278675555296029904714424313285584323550665620544556870131232466376207764817517639116025260862001026945742425122136175609354427563923289807861202060533448784653544793809235240978149924319397582041197289725225705547351166630043819372693477991173569046776912240310334682644816076921958109889821407030234955664134275696702629119246156389533512420812517467284559977964864395698962573370249363886568697491847374188574933936193191294190475707925505885390418312031470044766128555678441656189469948280494875949530877813022248099696407686937854143857607069562815708605862320082961590846525573102840548437511103106945562746869946403376210544851335040568967361565502630571285965038218992888119762258310817371777605240085139799346592667123751320038449901803009422702688027178758113923825168503548797482401808689689430744905737080915327521871887880407142683508892807547663360268012719009085132557591171035713487356061288422144738584646529575927346048432208947225758686178377211480124992828105794608082378280590042686405989073370029315336424957891720113808328758972285902042803402549983165473455297841854683947434953150355239240166628331337708624662836768873611131965866188922324458045602079532328212412693637951017598132509894206978161378238946007757925271674263778584025786558316346061818090817401654581049065469870618899100285418568042385787336186518754481939909860658627725941387682767051933908402356206322462968134800197493918708938278207442906017382419402517668781365945649490942360924364344838125754877860249066805093754917973768499201870104689038361312569281205269439858329493330024910234868556254355141590032690361626107438081401795458061926773711347059681997470862526297645781305425339868200113451751354514961373890781808484516135926334543804165635755324990617490536989174236230393533545170279225416511615619932741072461903574809045535829782833789388670422623568222361158918444515765213868775853583316005684672762245232554964230009621040279686491257955453435426023227079147150739958466318239475684294213699951713170581453336575048425379475412824097191209728878282330344440416453639382555350811466847457182488286754512971536241381015713189032986219988901570454287840373351505559335953368554578484745944342215260698914608812504866608646035849851325235800342175019359632447497230377485754149841279222678887039870889624106416168753451569720868187461309523472907954427753722568517095296517537658969440746865901918141585766713794910454933055659175495685139539099310580805117512417313441308082077389091342778465133613112790649975973866224921235102644646389097988056835352815465268394734204015114634541236276137762527127959781947380393103421726906133395786207587720946828234442015044832096276941156862069526704220759465605108301369333361920816748745715337928699489641728867594146552637624221274605095398519075105606849256007658971750749178190949317495463438524756905279788214939973576164231489417509743097174230360193415141096482123649819410492426492748606904593742771883739733723630823426360281194193453410360187185124391523247319169702156038247131036689094719468568523341320933230229770858690246840979065961730601828279858987812147552846814794744112724217030883139567839859046005670419624465932488719831575437680972375241014973930640363098278596774246822956499130344674636395425329393481395073531845592946164556061737216369847977889101867043411289580417631506539040620142882703474803882081839515777232856982703801975103638474096395362352471805231233090131409011280172939321653523146647384272521919358886727187362098024143067750585930969626334483905464771138064051748123301012802206190957341766071566386788009670634704147304374676638258867368026522138823210987933188108328515199568322011221193000978635769263919605659843783936579766191536652941311153521957944995787359893250071528375654358485598861426548568545253168087894838532280396048599578536339812117613502826083386985991944675717944620138965635890068472742613536792941768064242229374204161547053411357410485676053603369144746706762193283100563425668095146385982839305652005221084431363886941902696968727065168749688102900030954468681153963276817352424006819332089207240378547613362219206738329201475991335366512882658340208395510844912603953680538911888583789697226761287894244655420643366397526307340357584224360740918297511673620777839488593846283110014960448024472940075826334890819507221888350914354017053545502202774141092430989239563492221451819078000705579687479128413360048390523180005565129094575741975001745631249237742317130269902120406294432293212179427299204462031681210460481290224128463358313887032983687489891910388216857802744800640658530507187966036228650008891363485159266127955205286426885295160808628768156503471147171846046948474880052974376390805668300194657299581640653912666090367121017329867765137663966965895635090017174898150931162564075028919715947557838181360185135628893633452331526821187374269379773147707396712163476293406793106148016657561117263458314328024653911952004345862513939999402599218273754295027001180945850495484480088099937927137566691412023035236091798069840567572103316163686815556226406170512479838253637607885286581781858096438207226871910897200667162630478372584397440682374467001545066916509436608616133999538720024684988587207698728893695069563359279680595284774578915852994715355128483223385603698895979194552562129207630845089319884575023432085298561597211396809016582373262037483418358920706538606331900568287972123479304078767391316663756116939626946189064370628840211466400016531784895816729388177821929387562672856850833697424953892670874586794077020073249283121270922243503360851196986471216076249728089084382069915474592091043950901010958018236816580118068679158581650966099042059843295816468141508579568361106750549183051631125141568957851031048108729410312700987403389140344804698222587423795193818955320679000427883437990935267197398573620774678830376791046966959765992210955661695531111897512570058990423095381974270074917150237266230739666127046135006822285606827753270830395911324942663126254394178578076550401133297843905718009593263765659794795176517621161386658333183466573771973254071609086890523091465762675041694937189808008559311687715108639453813213567218632047341887667392346818555309991107256046345194848144531696387561135718478794410484407991554321358026230965526544645320240571363352759208027076431137208253577124080690592478376095502264305714359024643130240565800421248464151367433397706204155685001629106840279896871893364731620909837794392704275502229709711429891262416025109252825280932645665981968063215989321682853328496765248896418306121047675426816762236165782411218262360358222035616112456495754867336903786989907436981235884109391851450754343432499807077501020066975390549238983136384610867439985472963705231901383753407267073920223066601437768462492979020378146506132240484966830219853333186209795037151316204666662209510517569034603296411149381022947736658175930432273124480179627503834489266517195165393725958940470100406341020324722145439995519628868074149662052739239529153256795546269177424110798755557189072522019183834628884468711967881963866342284483646168469044743503227449423080589959369847691592919537151782039815867116698831355952982092217310811216638214150842040653751001540609876770018270023911472283769302419279690120851235062194407559499520898214234576759853261063147935870579053462875783821510389758092873187721140313015447925025653067058480359685015369184246758309297011212477703527422129209834296840791598427645402313255672693693161349762197756948888201166595947429584315343976246629897906442202740570855935528367429519852178504158733299001125801597521249825851803751615414051621846054955658043531744701115411523166103503051350741422003805926000118191784313855273938132703464441087362774265877570137322617800730496871478881839800324533827913542039800288880188396516725451570207088951015957625284390955345002163202239660429502837903968816394867102398058495292669087934652412791219211217419584518587917867718410580829647131433586681425381017515567179293251163450670664247654471778593170020738980885430145315452035458906729429740102521349357618671143590566831198011719216193502793812119342142388868646452476425614821739706294613328096982006675131282179706340629546062965016218547661575716818913375775394609794272909992619280346762787879682270348460228329735426396595401737048314776728284051546158790713977553233020655995108320218119840154741960251982718539621370245785390000898481367148041508352926354920820630675372802310808081586965408918530549639155194207355246507869308555809445964951089026084314838556130769988708165964636760330891259965338653205633564648340575802717207997776116745104148199256335100160084606615158225832046003949929356100369262445466138899660319693687418640578484711617244425282826533554457578951154718280928150946639735174196428282332877803248405859443305908615731741009004603775315184037451580510774173422282053277721483049597901175835644923132386722546463473678661484536747427433791471585624943241401476213179346000989236503345331866775697492334767397130961516120964738222351674502957103973346502396344414173408132047067115777152577303802112158717498152008083925190446570265783071818564946684854195566746192748554352789680014776716847571376607242428542410040525419401204861687392814214351425748517012176123251291229190555883001521398289314441124374105060356665159562843192173697986462225835145407919425446109127253460643324292037547826154380768605913192969342119576045414266955238437035811332438033373763346687719191414508403810666844349719504132393643905621507196903077953362248818932306531778112868646893328427315836440253057580522364633797087032565532506797659836000110196163845388750773551581939202488713153458663648041590827216458169024761819178932416049558748578827562524111268233366103355179570296896986188202516699928893731037753260914201233876324980841882395539255411640833800374638855398134016538915667590087166606272601916777648831627991687616983683017018319757881374998286108600138739433199241606783087311381173735694805139978254810067547591895379072063773923331974059656798024742349236285988291820949582613259285577332383332331724521493533979847372784257205306086142833261014674737282074990287811686688630838483693002181973022440827777632625557150471123994377160381699024734556095246490424914450790985798092714530420986363666478648262915067225847227682399455475092094656516437369150482131006186472270576608826828424296659221217424650852475370891083551571502561116351390286225831651118403035592384258391570463554452569251041039566933010294948732005213701569900263486037500394739335682901554244582490831013296761039042209287251632735437370048865916234171918735449128865841872152477298224592953203325134760692841272313674215295431650188067349599559821594869076170957540174830529565812320954447665660092590041663489205782193486605109484324554500846931583061570226735632885865542003952439367968047652323046184159884369625209420893286616409999898448900391502369871628328309308226622452056153869158496344823654435656287307590613436990074651809656586117614028089937426731223194104318759001308248717326214243058095459513821322754916378881029176943394976439332487310577041734079403855898247746606450152840129410187946491689342072235951125295332587406771746571693034865943391365947931417588913622767553095767374776304801627470257020186017936347194701473109272388008516230908145033011444263498241485100031038531395677074606257748538404378243693548772925317422961635493747717888526154776899060758339354262099011272714987378017665028943261077844784544708383700565351962742996264477793363221974627666202861938543806819737155623273735011438039154749788549648027820676951516814505972044347086763842531295351877499841438503670756367381680197424458795186080790211291430402044787040694827826382398720841551817198575133508585253530496330529292565225655363702590137892125499978287286975777149759324826944622324083159084263603608128254966277052426184833624854690952053014323468480293705339432245703201769729420074424565819878944116746741927992611833829831595638145967023303488900084519185524823658563636646608947351274496503189993756224937977976999331128410373835762685064275100363832760117065095277553330329965176077702434302826301252204964134807636311563052488336020600695505755444851776250776576853650785793125482543601414142942248604658211720489545995927003437360831759981449888195433360092877953672251864943663898589547510337037946703726801355184057518911089063796888051048228031320468465828940377075585677152360487889126840235881538974442362744711813514462881475341820767795551270866246225474639399405906173228505938013457079999763998469687183456164399948426916721582193767563881179589164066619055107990203417763826769779710796016972049573012640870119977012445480862717999111690414784153334386966101361236421988966773925251257222884925872969735645894364575859025762372862297835138533140872051670818886495841785724400578251881148403131383158492857104308779383848491503316476728377302111086130097973127994816523768638367240419697778312564950969174416716816264659525242093578014445343840020821721435469657807607624619149914674615011380730956674290448280191242041938298822893304767425383580789115041039722159815276251019175583564468231443999047759647260313080588766693351658774159995237781941875735671305401121827238894124927055591286410745345586160748020349789232301877004190349660089489282227497274989832153678428324451272486877248907373909053098410596423957389277062234457742267280493498666665172114747974228796071964446784981001962575193437587833895545410165138893207447690734005168246813052221292435049344045060374512993635849428350156830485171246409754209942567149771482692571704649814876309465353790852959970213505376202502095575354876948060604813904808969503454745075042092987258792273513608522117243735631773857261270874203756463819211047240538618435131490664787771265261433248175115305131237356149902906331561541253884043948404774525431726567899154713836977199161240904369273027966347359557393656675572325246399197947560670635184858260208280570073810268268610901839749840676510004384080928305586939631127333706492635072780012976727504284161312957450080465083823112835981511053180081104087816008556218472222130700438376505074380490260990230710538487304813141725909170784635924802003026645566265156758987281160283752717611661738372021871274389603825700329137237365771169880435343076646011588243077838509164893317374797119695661742644675024829311869057582071870733583012341260354532143147301323850309567535430978924700147708684705445097744091537616708831283618692554799405055653821982102557368520677515664766272246483313799582211975858583289316967466162657574658847593657216968624184249152683707885841910318799055927106552713747950475122194565338352140097820638690364784014546600434944194859354453188824807656260631604958733826070688549802935539687098538484893239485134594394736829261482586718097989085612320197701227064520773866356214618867135445690441864930630704407275368022357641327632499898433926175387421892508501327444452541733151662938076380196120602131954773327717513573963748601503586346975651845681704057836772498972372631241618049697036678940589885606363553801713003518368889578436204626059441401849123104076475673578773460854670583878595146526175950352311073659754918991246123855274543628983112218084988578008779916637088097047608793757387267258940879443205444856826979192183370934752668320858411836963341560919012617010425180075568755559036000446181926773960593948448377135191827834624917104972245034241025284866222988916010753525569246206563488702383282923782573253938911707905845024077417980939444717991889996977241869228722074006889767385099486311615329427905173259405076889507665973695690384261428152951921615577605791531491989801617016228214979651866700341638171449753547803303151821947349329238487027491826025653883030927592065940065073267038685207580375283158423196817420130674668148516356421702710878986768482879247312792969549338502903188851950874750214852714912102174895149728851801526893164206943535360573766082336017372618858006001795854527481954421058863548853063566686085335993089963715852204114324756825633401822451987672107380919192410907563165012894041563990009796196566845479499981223851275530022529834216953648910044919623218640864234740312820676750877083102516550229214219883779391882451361428237236836452851732856727275056384072018422613941048934739312011579504135843031406562517009985484905914335105443459586335366304807249463678138635557922848737909064498737890880514135132218443856600390355069878588302538834901054958757409784706559390265092012484464253017922671088067726390595707303409565821944960871741808817719992431843186950633805469212479835003585294122400237592974618096348705013971334012335816351694756101151599244221296629701614950242253558872652833752974531703423733844174938509754845431293305291275001547392452198714614243855867321937905761919350652126252327765946523038269696790733998657527039057258964018184896503559100558100984257764325639019350989767420528582767684051505171567844233037697926700720548010611669152717027335424720182475655774951678609427781305580220701593261588851857659909051172260307993895032715669361644429455460887475453883010818900606088116207793615553297299993622449894377101404841591745359587539951361931866481903218952217940890147170573020213947311672818141142133545869786997310618807115913513074254410523849995212867960865266678369048312275724784896706136783075410312211226922312154810020509252425681137727957981779171154688076112397375840522424444196443534704613704180019543567858915127767181563347636841696576330939611643696716241629792601590065926110747070016438140994081863455496066542417787459439335001592344455842342430658547669590011081572825701647825786794876586410376141633067557968484065454640474879538161787314782549738890514834959802835301878846694506475224866348600537787653644863815806040416324852204591463098712659832662826858711916166887322941885882609541917940790977917526478911471580985280513622539335518733114482593607932378174876753804407443928628566703922506522115739486445919186455683619059895636136884691119343495959887949077575490968886285820984391965730011693422548909690884179977492804682479514287449321403140908320887677917225669591969692111385599687300032859224887362148624052390827858452622861470988197895291973000139536246042038581785425667489617212223496840163701438325299365724257407226918607160945058878284162765299691868820087750275900795043822261989717333818801628178871187008102158785980005016738152722045164801371425629451098352609030654989497603885100676355932762854434792801207121837525559356106729411709855323608320292682881008067883183756170172349705691367679877015985486401281906803977355368194230428046777444967603406072127558873595264308130424070812462872599649965467391461423206112168920509114401708918338819300884859055932483228753009605362116358814184839711822097597423317981854960114368668443002080002907960567346659562263857561640218756180058765582801832290219745929112423159239680362167412326337581098154467287818879661778768928759984823883164018252046540034344252220181919675568677411482426569847463762524467800895025464730017646224165562724209277000998019019485657640828203404669255520021997783286798568298012200332802936109958133120041690302484663480506550948952282031370057079372003684079461384786352001652299606973282643895500201650378007764208091882227101033811232044189361069723257160060936480173641156926317645114657783981269902507773090920940408230387539936463086919027258083443357986391056552810665434479312475152292888045924183949326448303668498287663859440882590529250644025553038636791277264429402073694835227842471748081951576516772667902161536287979983305756358304485631780932365422734723491881741137568351195914947220958771585388309022104854410782622479094563945016546951554350473361193429782453123687972727627840490650053877328967655281281249191415271772180917189054083008441268370160662239433448098784896554688764630841365617821437644917315224375090318672687839132401047777753903325971465461640153069084363900121169316810605265257545448978587797437002623624837083091886788353929396868467622192712304168913213850733737840201331070311750833916154530617329543074321159513352035575506661567693131600317391096697722182712307601010452109653265195431808964160990278458534057879182899009930485089462886026202922718159397858176506021260877224513673212752135233362703659682512699199995587185552421137276519344387374714119713146972801569434317385799964681747483867566087836876801438408568191746003655536198285276753419610654577968324845676365973524194746036766937996691547219025586612035367656440387920686577903986460103042196145854363212748384000904299693076357078922801996239397728637518089508667431876097210134633389364744102773779409494038416421157059243029066653344908104719816911614964993647787137104425071045531609402548375939297457811969118279220065294163266797594826653807771123245248490346364534585924367994327346705810839098298187597247385669866971053807835013677607358783016568241167153082813462749742204039258477049672537392823840823197728344687924308788797625734071066592565188468127517420931967304588398512212652597186203118961224526037149550247640889122802686708414086744282133697351218174795729172060629679106022170869071179356738926277135058139573567067480557238553047159601750978629090977789423078521904246145132029735321084583402070245148199962912279995242154753741932953588355285468057130762395286888159603411747347963646666664442658494049848327297918207631922374496342267768819049704212342725720032525801884341098666113654514135957700029837280351638545055747052327317384834807579510647480367415276883990944581210917987879068794459483818810350095570717815116779528395729648476808506973421707936345942917907783617211047739606574868858051547341410114897476735714547556971284430763399028255591931209417387265790370295995981067559679563700871374219025119989368684829645612196970451032741359356009618080844571330957421462567109294856377205214093278159541053646475856754240539991940346163020572785831036513058831597673303293026061103432040265809270371192585113352153435944390255584784852511369555404990346120017718932437408841981249615868036383883224099061108456983998205134666207767230992187856295007396015552008958045053199405579598894898712810372386993014926227413187106180669868380324749770520199876504752346353867190968601270975854109405023296471307472060658814966293380132554289796982679146174385800785963616280037715964390570868289862711279417801904308648043997019188145296829825244242265989878018989093513365031020274163101971259569704621392869581534902600452748480653740573028439286542229424002041319249680026422260466790487172557439011930218322771178132703100236571699214840153785439949712508237096441577339332345335886825934888226489391349772843883194920592712681390299772208659791371571362407212058676297688617023854454525918124040951263115923187279769357014115617773984072711805413333666873869247377545698085260639172329802555144917522869454682119770825035074857404324128840949179225272718561856662868071303648355172634075995418950111122683282025850318396427667694205039158803303971692322811606404514928534209704507098346942744591609706172396322916858946288954408902813290644524620023740025683673995837241742646367510563090884682828464214717858586286844364047213645229566131440333949202159020114054561110585953856785299659827121280367117371941086507060280257861394065988224026762301440412996437889591327802429670857652780833026424117143974654438857761049454533054515412110916668648383964270153250543706326968418819763209555790720865288018045337728070670576464436181108581353241981965802281165627953079453622141412045437861145073252714927288001975387608394875234414661888329343873757315877726438545964012052123699262554808747059409388065432750939978193669313910289378009705442222175496867828138985667402857044620072545275799518996824977612949708584462357986254604853454341896739333936274372351900594057544162237823478378157271028055239903802688402235540606400838230353977786955749948341745666545934387064627523044336639710083322599206471179714326165101330976425808510845708140018110889734581015418259500178301205517860700167715492393657867732371961673899918419574245573660656208501799818581332025433487711619439322838557398275521657920718307927141602264050101400442864571844977913035254099941877813531066542980135073271736210850128616950040424597423338562928068351554451299628667980456837748253846144518202994431777608184190258369877016271904083253431116206412518399840772351402743160429149605547673414083405554074233219983620260244730690371597100227053886225126560844258138167313147793315736183305799321202999254456858235474809038950005070631693952074897316008842862880420352187840881589712948076579737913097940012523487597723697580494532913190332145929429482257344018823909814752016130959455783885443220242706671926427518044844393162262320098141506445195986835298118610198855474373041063685549544840206947923996307876305215703624968540386280077838131059896191843792980788974337599867335907989436153791320524953285349652065185341431070265108730358049505698264317751318443222232559561161222105309500769592072321724782795257466307086865636793303668597945221738178700646629927708417436106450943868674006790249626159047591959273409414806107344544836328077218961330235319572999066933353736376727270703869156536938794899750517639118870280659101867582398880298350247223089446226470788643208276327451020680923512392567537949576791759300708116375500355684437287115276545782238700662042908776282568804702684650555638424291740431861830868210726602518855406160096420424139639128823393476281152960271919089341226801305559706550847259386370520037921136222246510616795541411195446154981876402389284910661728832887234157638223661648854286201650262873073135754091396968049860006466701922730414946726258959050462895125941675722143232479764051412155402332912014858353309346613114071417786836101250168312281882259571322711761661588993154323581633648822409942518499973076247396794040517914612150642688963224788060442237923403454525199025395069872896157136542992496150225656584459704052316200744569966142816251033078041399465537072402582708878630716695444401705285649243224531699785269294083349191546823753298122750558074916115711484015677236782431800589072826502179033773374258540848802753234200862575780276769331679963864771514720412733958928544677519045423195721904215898051650616701353643962915884653683550866179165242760483449094094562540578153597369607127435512063220783565743733241725272047105278434739948986304655131857333948103505763117684290590227444739934210706719634062926166154986578102517320125035385530955940789309183846112358038148772579100498771917030013828679411831977050508809632015145170661603061210978040911362162163952034572718771050378991615192841822654399802956795482312713671168297636668392726692656617050132655375742862107360771539509794660270217299859717005769429660026153783673591784607309619532495690317395773522173206937918395072703059172572981904534839744396129066261246097653406422934331769375242924848927687176222901374386969218319026620936288335998111135960825857834373943306565797003078641827968498031134427674480340752863986919201180060183012949995618219310134657075976314173064374555167665748923298881974047301528017069650751974253290023665197082215084846691800576487618553649515789611986819953697769183748786713183450609619599405288522287599925924531170151107292243479924666572372466277036424915214299097225623673467684915482017763137899478556102605325117102327476276775575649768308715786202050786003728296535738826981697412624021456774171227852344290653334487799203049346760934608756066560154699495847300361242628929815563847777194995677956380884351548121519363835201461119391978287988079624569366574496475224853017147378886942243928553543102221501697154265215971736105247908184988545493436505237716836573344951886728638885357625656555879742692153573770531957709370843205746248554412038595339742772320169323247517846604833866977710157474365018229892541929963395651010200800866446501073254383706302253419852097274126859573842934991052230040166276767312900876696839301230529923359097823953828159296497766216166797659961748243467390296839647711817530398285392135085733748677275522914049331763032922687493945250574782412053251285482964814445685622139871315341323848970881531221991432590790429339531588656380239490771499288602648349051674341291340867609935870026466362024628546194626187599876409213495984643930741411147613330967124484122482282517398299608045005179815014843050989016590142069460984481566571154482681882859023214621849058916133021153586677408835640669037030584331445860008959718055671748656599487893901395861920402636983111822044505833479034573387859236913986383243535737685638763999101809381544587022620406991995494291357398315275656124808639511059361436590416489943591862281228962981345989129248821591690659057934403322816533047643920010116726666789983869427332456647984616575983243557185269406000556803874267353110839137358018019437081911419701609428481717482805475115488810013686431414806590228111703955941314528778671008918750562257189532917269241148593137040384403240034421243024218738208821747354655602911485381580991550727366977739339249358498684795826986249790564653922882767145071096712988335743960406775639107250967355720811229383603772502572659848852114716026323282773962549033025205120207328844421513333140182912701025297459119296078662413454236512007800350452430691446147969161022480195242966812293650419902280176343360935624559436976002011971996407322946215030799790052822969499804064593723753253786301980203249232330941540823662469846263313231809342971819284931015311077084138638479637266252967823209247745807523252669382103122069485699291217241105973056324147395233444351248124314463538149290967850742766231317338467152417718318216864785478829860403109124530057721503424711917569905092403335741048666404675858223945010976498171473585767429924033702846960891442028197583546363470639558400665466713798062675868355447602822356103984739151264904701336418409427952754564245171948413341311153609755273477993283739671881450133770617920034045587171385458230674547016163641298795456246332321303988628760848176779333555322187831799371398725965659354355925180609641221367681752243466384215833564179714007068379519852557750741556272005525287281915402192889720125995284663753683228332332902979102942370896740628222114060854267566904414093580964967482476423591402955545526998990292279165263363249803412223553864574019858719456918314831144348566109917356441115819215880053403837819521555117873245712828227132574587389735477067647760745486765202666948693875392984727813015510813760192234914337583093872443456746167931731623197455158640431082510594702000914390047861586601791601734108489993339649472360243813354553914944843801859524549158198034595685002496132184539505853068961597001691549280822739616550378491027700514487418202382025038929385234761761754134104433008916521512033530211680992299475352518357751324188185718400920341815833331481155850703564676519113110093640566552203702930170072506733248791481164733281198161579519952163274625880789534667610500922262497608203993818926814636864574315301473265339997064962754021255495281151267041784446081111625864137639955108278345056247626224103187789129661711699211083575139852368829416917175249208422669104213344904402839237816730870808139954513905576698668927836706376784377143969768837850308681172239431749966128400445909034610319992817027904965861961092005668067043445636876779962059482469392128342193970529734630563612007350752914784947055102159677676818487656010615366549113953083448593924310621703849663582740586002704384197422861960081162492163374107126080271882280633440696586344254114269065201274162425638826178061064854416690927503459288352587474187869088857722779823509707631486897998521758541034437418909327387209827323411802526665322094101331546380966339154554795887183474426843993696449231805912671455158686075979156800795211042562738193075034929650435913186670365410516602550473375370296008085657174049969510316875145075386486743601626743470762587324393852719197513359904075035800963936016533417065155907767061088546244976349619446324117903708451494058422012086641369211775046152201580532061012394107525484107596270757358314461656703399411167201835503065288011025390436087811920335178274683894713520221377104986944449814306683408675912912776565159432635815738055144445011887889743960482140882082505814136082020194526735619784997970419739475808464868260033078089751419520217981012768821773433380375916334394704661444833747397724551994102058583680876878014914721705077359495922456971483320938999706233198967700527692721260271610047567833095542157886721052732176900044116521061654724715889705559896005394018091721059155777303224922731301723395993867777615770280521868972824841996918967261169798151649378749989445561439398701992244868744512266624383851457697618975616543916656324030324466208605939291643137133523777293877148040276970314377307136886493739681556837843089944970004389919084368554389929957419896087145945498232460627243969403872830391816195526522457224050627386958071254214656308426308795783989371884822431533614040915683803249925897487741158920887291903567743880878353046177742490923638797213497542239683336324919379230110969466230701452290541814097708294388635616351394399219298300682266961227658786275510866914507774026268384915424498750476012970852198690395938369468073427047532972037907848376033308207582441157385803875032500818025507883007105457261878180398946656521413080485973327768006925132579585260377959154537822192431207233281617246238223354453247581754558964832305813286735806701439704486951596385015334788929402052292789898510972462155742208280534206088641512135103933323461329801693049870594913313323190861118410957221878269708226652327272616984908956390020796522054824631662472757962565650571205573237667182040421707677922399651727907958052694167745436507377587059473430273824656060108864252095923858593456489930978443224031346202252349664316433824266950817890919298753040192316744720391754489280542382886334374707944066325769040483865656433203244097881813047525122366128487281134576827653491733799151689701409897603068402733547831655777324093144804590595763656537490814536217494340041945839955581463096934893617355814466523255145926179060723800630846055402326679162939118673903167160623579601195354110963525141703666410618802402981923871626345351447834127580993338861765039015233521447708209301187728231914478588866016635194741167618719235674309707972852166242474051295769344276807952302402924596798519543748659967244424587009305838517732679480516099621388121602230447139776935981744665044439551114290041046045739692734681538918340690757715103395152882463465146605404740530161556340570501762431600383599449092994739420772807872300481012832105205588222721132552680814304757512328158407860832740560471106853924945919706073580393956122077304493600208471816434771970127466085222127576658535229336722127238300285700931484258996819243018964665951526937289211052541938788735653626162769344893515029205507765419372443841768193204288838485954377314704033849548271086264302448515959244917074457364356720660594374669732563350288318579849654635575287260623248064075137616417094552270957530653371542680501602766568315327263308773138720374408123646580013288569208003136318615338280801853581979643050482969645388197226241731171624567054629277447815713764358846081191737296454880296786728709768505960868899345145316943568447638350035178342592196409906607654679111017179094463551674576656157062535812718903390585743811596430144898259257934296975421530422698887073940805331401398499101698986854074878930451430190618252470063124712723169758662547324289732239204705887767209546195496951915230995484448929718746382552617769582463915891823771752165702412278624164505832320477174563984710054391131256178532514197094872626560247738483520529746766715310389075428965237502300333892203468135850251125354248717291135841656694646753783463069578440325442666725762732915463242779770706016573884036984789669660340335408087735587869728283385583067515585121864659486207338502313951448189109482381885950777085431621880504495190461707781553268427467503619325150286216384806200098173298678608654367585962358029164119391144362811053328054259465208570430545859716680500410554683381638415868143022997362672117407755406537196997387449021586144422876555647561621094421300683399098981963405753264919262111581605589446397210518100424654130955081384913605983745776425427794826502460943797499636209856316433404977422670024772193498825893267501770371243955183418521598908203133381046542804940217776947434718974582944480592600441163411110015607405415383674523234334727149548415860364253128363970851540981276152999277407149979071158400819339777025692600668602098860075460439001164273799689405373720893472457538362731236258937802765272469365899147814564510970026983723739638036981388245312861220457057983413295047859177766335360294121991379345900938865384365248780401970979445625430734120601613311045653902162375191031404422856151275923795154367677800960454010393376673104372198671781974736832352365146879976131502570517920660789721035245024096178033140014642597634123623255566204565674656434072534254482129590827720898645380210114983060775956222781179838292112466566561710190377689572337346503196652219563168160481537362692929729237736063046075966166579861089770872336400864327436099181466079644698252240467597402214232016743358264626240412880501863492096864307122834659906003298669881803939571230565560299777513901976693056910951877676785307321179805944609114683438432670193301576466129102748315457877942267126569114974831846810261028194561457321839642231194111912646966945586884238260006626915168793448807910943395555359902043499988420320769437186068122766395370956251558566775096147284992490401557843828885656500645176971710887239920101010649770596710197626027162943422221003964219310342173121924232177407704714068565726215819174076971711299182553051741779940552748676832897714412515903021942580149984615511611889217287136558036373417433262207711694897449268358454108286644412205338813437759492905770873416934095638485218194576463347911495712077251025929945234115971532043637569612129995912267247329377086791286285531377754021981318950026213302884321164924123253767417421287967354631718911566126018726044625474697688529080084223768863876752199344418252465658153706724530346596827778495218985076808790725964260112946142380013866388989840673617781687955905065037554186749228234247268072834605719884544415371400516592179699873359667540628993010613582434909307841876884925782579804095587259303619732110700417961078893496161491633557637162714161173045803688585017460547627815684119532034333696744961376722111335602341133130493571098482884876846653413486642518504446202585350976737498077080186027913535562260897643330620926778188652131495968421433897711667859257051652857206201275554100022670070127955461140591552790057344670639616077969788586753858058409264374297060977008440695610012131987597809729050432765762351886229592243961236605718125422905373325773017235561625631531160711846137905368172503660844592029338907281108031783376402906152387835069296854572650716582064280135753172919978014684673738105757787168373375684585715173085216015621456694163168208367251286109418361742714129237275070680166488661654399781838337922744647345274021172529339927465458586459017038876277588830622680303143451166024623122065165077782310200236422980547309939974258827158258300943328099335535550443072910465181290067893977087527098715541404221211291738120255250094113188747573217003677727924212317847279762077300814250719457382198998946285993799939337521055308535088738524523823726873750624949119638281915577283243031369738436887366995794353561979840063288230866300911921600625245609464168931381985347099295971604654897251857462722033307220912159909769856418839365960768379778627975576149948735893272326530828347598026328086015111755014397281262958609366258494066321086154648589707237958249588343226755578901316909675675327644040530800839341560980852177602689493993142755781170833308782094975198345020632394749300052823997710738542800368522596455164517783197448772586007602385690957214107366669829371692822678067860920552870868534960080654037472665944581505930419611025094000799891921662302303212234698619475148563194299916104129046704720358559996865513839302828249447158754862547949377508552856013853444735992268062953511340335338693272139780198718914832469967262062374320717309138776656170536499056916838394267486097456830939740221201130007535367077235933150403204505893929126135522596970450906987951609154745940438793447812985357308097544318402793696621729042238484712796028533709516594507420896822623048814059483896018429168723065934665362190174196279284733823891894775132502271537308023130664545892100880286287322669326532146092492793429227565927362897528902332915992213488510897519472533303919217577757691275021706244904910024143738543950293250417583070218921477307014294572030575023609961962145318403847102183852047728409350075465917348179954187395445123165022718533897581067181684583360241616839315949083320000162843476584544817262301187221030349168607879496046449252562186213291294708098253312454128515285968868042574984607999651928177890566965944831936751941255752684323247911983072867183883087386350371097308371881399378513915696206229459401109402340623881968673281363903732772702113708671875765775088503035451481026902631900777995399077531220872004789235011184769007183811480809531730644244639264053250278663454317435143491021611613988000754493839993092721299108742830377602518701656499924745261652839872970867454787012137952579310697123748296576491600720668891302023892921708461217325448966727623205200694346596853582034912310051669939349959379057790874140954524485489530006673802645121878952119388573242928214023115432851142417246181968037037838653053227591343657228909039665664305777090615363355308224196221900721168039927283767586101655611434360361589762564324350217456882727975896680066091644265968716588816474741054650995631427718661370113940591163892525668558373936396605455415393458480532053824846497032203191087664625332412335392352489830345297564584216238988070483833630000283298188379520161557818696429480177789005746840743031369821679887614137252160910985555137985256150399923810684150557109155843494727534302520356866184158177943081701305828170195999250258089093905430441753729264549731253161562846547190834624035636435558053555835572924588052694263426987699446702472502796159392060464812648959550354206612114746610943886658090761242569648476030162676600970992593394075840694639270139883252289069861555344914210571219300123510532800173659783300648670812916754331747741641678428197277426070157868244927891209354615871963501262325822847012217433799750667115399167926147418756613835210023023827793776872195833829804331999799642370318517070189186608644808365369357484269263974471487181504010498522616599631601511506636105829625992728822165630847957324598983924137529621250095454491183251339808004872433693673045891009521821018270864633552890290380490060820342552860570580605144567296493415683278973135783273950532657608460339017362326382880103568017330124325153819289663994999114339940417952501456074953897874284359248941772770234668503565986332222003635979942036131147119530868857622802881822874228892522516176878233177090332611384347766630174788267984642166590737762845610668346749727703717484827203941384043085516866636771946594268971096200205909654037827378189441201093180595322274256214403304407486320346854533784508228844103117071588852334398543735270643462981530342995371180745768022285375169169995940000822499141637679390248581387905087855436914285275440852585550972315282737887061526331843817833767477073086763564730919706386744582163508782742200959301733430913207007698375307659397081565813739388404664409024943923366337550637711640326372092485073460729767472611152070072671926997238417593518530566901944600794667911636518030673746247345254063321049653520436173302658824500564447746389334524602134536538400047793353345666800362894307737101674284532956174394777762360047342675332590778710214055430821262382644168670007920988367475548852106674724966185127547849415893046307753475240251250929736028250306097329152861840272509577755984323832859932772945163236608951249641263254598496106848952083206041817824363621245365357879184428996915979906136653571140660729730712884765151515149550772388664740289753941775594117803599301667111605346373421751590021458386491092345424514469201030558397467750989057546747513402582911850414166646919361925406115903091308255170132209377874271641037274959684075987988897050271926723931429589392893352365847326689652058291649363126211455587914010983178448276430157734927184827472019669421903835901220788307398121685796698652299353590118650946930534735825555356201917613178394957664459220918173220840703647927134369553591878671978755364570285612473022421231512330229848211889003602674500453543709269817637561218107004423509042370996982683582820826195943221953714047610445984440762698990519578267063905781338193582553555784596419016872532297535095602208177277101616991390716407533267193237767857124090490459189809524802400562737630047089211649177568749221025198467718731578557047709109276207476567878893045453687048369310541247593246180372028922030507148828322992287460485581042509430510001345361655170011541613284992947839544933450661703241611317527329735170942441094138203368618261721553552944893771977136895595371117171580059859135960344262006245796039087681607760992306769885280723801227433369420215487650794373643463614405707472569567108212250005658880343223462532398377680316102894534602153343204702400282249082035116159420073367619996220794683058902353316068245794381943053765510001239505160699495435435764454167990142283794610393497013892510325291760241897010833225778042261473408216734170734531008328040699564712902822175203197171968389074081893020513775118784889522564347421350495320317789929034154788099338418436630539443083889394808157920181556313002728819968110440431467532201652102324132006705430625968373093414399758635134041060822630378497402083804301040622992125909383694399030007195343434489057197756151786894060073938408589178979068635873094005436151272120670701730260703216028149206224511302180184930306974225125672185746805931259732124636353041544327706478512489409423455864512997575811085191241452372532153796038301023602713959844614309793780035692516145932930869876240105734712098314294701571762758861635157823334324299011934184404778207984236172177825812133488445382778601126656846263160846529025678232843777267146714638615449338116033952217721316906009376836256117336432423348572112011389763442913100729019915237526258551020117026881974403392602939108593153548638135817609306280530241402404750851663465032278183323358607737499280280757979274570380463440458825742638664036304059322990890574894349266384322860798026785671411254557167908113531076982783825975094631530367318388302618162528920631833425241207236347265766365281557603994046229444836225880873403111205513733896998693063001244109257677575201292596212448003039398877468918676850023341848798663128895131946010412203211497388949953295684608594096206439408660588374487949346914656201497839445890144427731853589984566452632075934337745585144085268934107852970422243086820908519975976785000303228707584287946187108479309134089175871868217909370987185250793516631047092946958094023260837040426158945243384720454921146149655591819413321857290157915407550115014762208759098446987711660808357512979269234436270771111415863771649750965344420247262338048475246498683645238071781438874322376706500193955470001547516021101953719006232948127639858858737299395377426008376954355389678578485716077761107374687557063400597195534369066652388534683994281504743558974447603627301033707029798174112987523318734317932058805362754130099932150000394196026610249858308069151138067093033408126762150479720955549850035852024098612404892430327020477822703742502339239908025019034124167347669144098696004625313033650358119133238809932328354063119379019867146383586021063172884472649089083747825176342881122489300116763477730677651415208259298076701458011782716407110131740835879187811965358298750271820605230958941318738305819585978304030481676715494681889596776293738591951807132475775017824714626763344639861567314499964158859526310807325275415750008748626381475145579459376946763727692109693687316518604106774775713217474000752628195396352023013994972243534585919060078318819875883211333475421800443188191236020159246567563916987987276283565743334563061401910659593814489367486002194525448207397578730416722388764571280932696544688611548282621928124971730054625496212303972476112160426144401533749801363915596995570141019005971863811985565611806486793747710490031989090940649099022249284885727979167863226759926417462556435477502929240604381788917606123533934411205229606084641809031404470729122377732056930149130565932442195622235837534181431359490851898364314904207738794801751781430295716821358058454876533460512239463491443961931949131622481460965741773531854958358709322580413967789548482433008956774278731991288483597205039600746442288588075772713221586335448995107648473496412704411766926985264210357237612594794356916196014682869635570514282880368831884707886496930595883366296569343981542393753607352211617250623637501025370697864505961783868694185617676453467683731798714594599244719565888874095584651289233375990922326410291330086245083751037885983179912418241236466641110873821203692620295363963424783735754113575190077617591333048844384410913727705594647528610780918257326108568889775200793956378132837373784702930403378116765403334703409253250163728604929925148674658783111288968193331950056021523356391281563413547868283618261790379050808937792709309124361678954972408020405970968734339066760096439576590228885411743328719043312770886248960462160903954106466014585203931791552119642394414426356989484375850005553202063401120719876914253099592971773081583820788491126766386161455668966556063225899697569089339502451623381257585475669548018148512869001633253297007951190067090672992087384288047464867489917241704866487675952448724741177335965966950164756795660692471850920766162060019298764709562557646094556122604415969431720416802947627166899331180768987872340005232204878584935311956646688604321227938968261760305794276823127033108549373771965625687801892956336520811878704219212464108466010879206008460194835505302006202549399241086352822618071507175185932228422685350451898623172431307715895937146129013804687567645034565722021974969653922868231590451408161030631564921203348921584860074040486987757325514936818606063545717126133762338249014733620906765619941632098437830704841985876368271402269249505432715413412020270434523995201955525323730094819481459090285951237029498064814437771088311388072672282175769459415652798320843816548477259535523404963407983050901261135438119895064844998389608752331897067554252649275704575317674344400821471162697803418038648666978814627973080950759429026234750309688746865244130536817827465901209011427718180392387392526680592997224398256894127802934256906413278239066326996690645031414389365637101640239504256641128839357240902664399079545026566282808358765445776654686669714930590127607604525790723460541278610817239269817478904209084033570708591605955766793886962046129081905233783145822404464865568417503142938401495133639480765902720736742160989717515765507863693602171307831046790733059606300143566973979088449810995132427573313473968297591081996184639966959272006227034222476757343844893963341114685505688109276386620335516445191172510529912013334415033353790718964638178139583100328616091143847946387459426021461991459418195378678319790944336969387157626130956438615603051112292897201908359164624766420548180170275227529192869678061168644750149835906816284474421531477874502388770040609269671254811080732051211858586328441223219343963080454238940047354063665651472556286006569801440774897555134455579513861044362448169863537749939091245080795504847612363402648102780661985057580935342552317303388826203576922987520294303100450804336665003705607083354720405928401997915060663908114899503751922060184390205178519038664960140993089439687215756260853117316773322985662399160836761368709693871628726490879895318695025145046008131863123333748605463180114213940726392858821410612393153676600879909083339486658079082270340794330543197618218563855474236461432859005931502164977014666641501909387517575934097833082108368201184957729836501990360141035060023602953756067538761788091523378569720687463309837322818556418047259907058833495210563310752864117255389045818504622171130649817405013125965438436358125556148007227504932531082958376446295752765577110652229574169994208688854745145976122268790166261530930100073828951987630157251002672393228324117187397102775061087905620885845491558668326732808563271537262434931947883398598744458198618975810776237400673093322923365554612559812155249866156750136469068095298154952884785556064296928294967316713797819117940372833704280291826142990123262192774295749479535396060563812406655600608939507965092134007569864172489268173102614940450474163800329007600435451025837308087228279042049351837725989062484155613709622775124101424690730050913633491845530626598641313848591420605340220888124352808418926485044243462188439923587625806337726897863752830177723644756348209393935509350551900283148265655966292955900213371956798469244097849543608550609317915984333611215199549358805637687862262678399801677664437620833557022127961980557521896543053196621765445055638738041177232390817533428747528294925453637559592934658750760720805935294865154097153837477120190157702081825349301551782551485146634993615064967861147804609044095854673662842854287985938164560352820348941578179018109739513653296617155850143136632982989042235201835173949211167270302981087458247976112662437115610334772627237533791194043772374238812665441320917003186201314746898148635799860321549889033740229346379020754765180695325608558263446795427538642811660898417870705512917584152298728483504310036452780442904199127713915043592143765290367808320500005608690966576783209234091047273847248670267618617751657978750411674476484262871155806367639537403164447050264841129734045385355178155164282605014815576083343204280680060681436800947847345077307901553891928786091613480274831681170575903616309793608921997958076074310153798353759400734032953458359209694616263453371198586785765400569698065000132056464248886940114265863570689470924834527172203042795162143298097528253101800775983719278653291226145687740035217860823400674406849620288161693611792548257977795895646623488549232258226841973351296317992827878147347649236821939672320447263416354654593581123559783399068864968684433733048254787145565607127322461571446773750138824266809720869233300258524384821330087299639840733545366158861186484608472156579272551009446466369663953670477987718206356465527337929523395684602706684548248440017099329745193977895898430180224374927246944794069553543671822404358018899051863840536505918878837902157509515703858003331612211005178888661184377607371343649039770185203968706937709226211553314528974511695185807173251714561782975605731417059904914261857118533936701257281041783876640201452248048773764411142259296657385203314820619914578660882752115559180430421643426898541809773007491968460753667192238961892128253779923949733803617491604975878265464788144056434687981797419484539174497086321441330288531415814093018624658736245992908598290981338175104639112774372213844649549272546551202828157162565716464301197442818481338004509550989324609237849041986940846266046158223052768728560929326427790606184671523171398704496637766451918153077844582825314599824937092915430556021197050689712534572220848207242716450442117216207823562298323752987888089981555214853301872396954337925252788217340073758748080386066635849127504742567921046713852887376433611201773401882913186307814284148859837421949364136027244303176836870971677185874911253603566269771848898393451883326160081493777180079175606805223324736531569093279260459779483790237410802575111965709859329522992961161766469494543005877308898057195907356232410773407511914621299768334689879283547272260317492872303928110081267944586254966922439182692865674774969263563603039715297747322888638897369381111199022582873056917152158636197796805704930169853183201933578234937702041388366085372227213342410259233870853738350182594800579690528768035580995849210451163937209026584611866357219703867141974354886662313041483003351586004034332207337964644136300516062630598695378575911549765646376140639805947027758884858579978105066422920717990875886145930875788809991396987625083606710641353094640055872849491288542235081218299738257311076963863484142944217016133458169625886775725071177685256945642619907404163519872669896702851620552022250303021673577266560597537279853490417752651882447277598004282066144653321151841890165424322950621209305245696475846262802146312480956573074559193313534481316761991345898467776120819595912260232446717502890455662246691999599205550805334972875332913336691948396994208577261857463437411276203126857186955319533166596769253000824810563655075799914731002268259158052923359310179967568413739718828138469542190959354206133777836781111368242003883319428085150806823527223674284715171294827751368222582882832159040128298978959211604856537783123340514548536163127799777130593219827245394032283888947321556256862319388667769249256217569374680125619566904762364204790925408178078174726974465275667833636770719189396263350787529999819354698859373970275055478492650685230093057139596533285275499557051221693375601537046045824261078576384792182620600092538057853026993536993060767326541483696140866452976601043577255673704023817846937130579358340408184398452652241789876914508964155313195714788087962262281499294767269641011686332369044137515879719102531413164975845069952580216194571159098035918796451630650590624735219674473414795047144602329921770523122922291389615247440213287761707551851963037179852870240972237450519096579544978187924540455362381623186488187824119060461920684367753200726075900173520706699762866398264049617127253753983702074587116473366245428999019737735152218450611527929638574615158929644339536950115078420614690658619863180688028438341114279219648926697043443812642496273583860293017392415776811669264083438890589910526546615695863668829989206484196880798153239093472225725400759804408308414075049627011708239687125138320507131566939838340422068980356381240636630732574651956740999081652863458844297584599353618841601815309951347860569660608582324171733276020002208762093016052230966194795502781264654972392007926907638817520477166046462867672691242648328238910033685671072658855341831461034973232405033374480692116819233102545516187516083496584716106692884994777572512609829707342763596716020975498770338474385131692613884194233452061044636839556615780576058629662022366325923490528211340230501637436089507278874135097553099694864881720548470101419786817763526382567957035105016377337654326307952982503092592216629762249334437907077447532052719086771600287904847662167723821934334922264400042096709788993872630510242618410169179905054458243655137948841042936133102249369368442277904568555354273189537737558142695640965016661640064776122832133531243850655223833429742313004342943451581847603772848984390167508545928516460341157331585502425274752288648712689985930120596843576312151986873217733892663957625128310946830419440806566836836379202914561000483733236031937721253788600735235223648606049405779774673191931548118754258800461004461568468501891372051318892403933843683283751784383963001647225133850905387535137491588706281987761478677572192598341863710921146343345130185957668128147052709164804680733240487788985194416950062921024476112116185791286209201279948765930287200641576001973496517391141145399812241755816582856537319726144533964285831314797259159946777647820928035040279415918829371849494974593335171327520497362293364799979289008580730636015157916649070262313948895152780301770736231224423492270341270611577547300242049719069271967943295942076973383217082996823532320853984434987575675762334513792501628556099578304052774746234460538358370427416385650207254205615108720649552472126926574295251421774676316211315512818153392843907940149434913788017927414459661965437928320644405814612903071337911079520423043324720976661330189448066880910917691363778077084432845061987302133696674378046315518709875647251123219521827628456003403241494665149221788707598885178586552377502475325082732323514389257827895784550466957899379734755494153331423439251158703374455720430521328308460445253759226296383677005113805327605852587171270315308297692397121435275944076114318893132734277773307398939355259727965979163031250187379055724348631524150139423969308997879311102071991824555441809861668342179141136570348009347633548215042870817100185962784142373482345494059134243698479027767112192132267183538693962957475843449107853541025721289118725102164505522754334436502399160508286880895504625056290902796739529858263957812307443779767757034728445934169338275368089870239665468130855002554142933284204490716658317146411736476156634809539558128270924861189733559578386730304365779775982981410539008042212576520809439824640810837881986313090847573892426007086506548134891779205389955896589146320981102721159638496993376294422404368805216950571757049386685417866367349143070853823514134377947397476508097010096705956520344082377434515161073152818958279034878206405171429683487408731873635121189103436851567558597908310120976395457684194177784179097273205035459603093417309753357051148058513882678150333026336716177436068774918487625228707305388601280390798606174408041099234022193955874544371248119819939282335427575979291523608626462848927445213251389486116203280528568248419117147967510764069255199182305586850556724806400263687591441797255670022424935960436275554058821831661094181363492512027453120704368909476700319544516548216969227464288608104121561025808215724179325380495806086750778191542773036603940822601124061032477551821478519218116223476041247090994187646470539161740354982277395604997018165684552190098929007617752408047255835124246013411941433931194927549795318506837673719639042803358538038882301313312464030300454802799842771486561612614697820569204883281619528540587261307202642276224871631490552058629917691200824739627176907073665141081141449907506962555129986070463755300598005292632938964975368599159329122987819888598216560283797589972341451290513536430753754731358506815009972998662424120604855622869408041879925472294332731240748582834863257113892149145900310333356421108604177020516338646244095482286923477910511095525952457364867869997988073968895561065552831452320808486210011664926856355796410392184422242327620797081199278852101569171217735602565955242846947562292763396743607944548386670651510248000705801724531952218281316636659760452133327797019472548266577453067359336968082688501255233120785899228060576865569467820553327114903694135156172896345218990096047563817990301994280255545250924718898636048385911969067417900815207471098853136619252328180654671356432487253552199368755540935213161940973112622193617795089394241752223329914081302094214139152263137551067107032143257372630441257786352221637609690629494377039541976391968728151880652853344514920533036268984159552337301979464657284247739511068747884913062174816410499068257318235222793209887958376793613015894992247795913252544532457052811181024425758295098305381869041207567307084130394547564435839779128625883064821300379922624849839082695261980046104006593292360394021938479048948571097919267911941302789902364249718192259813055042562539195072873889629668449143363369781644898986492048371811715093222718245780751701198856090491987612036976025783686551973857528472440103798832026392934660756461084856409494125271585313394756900471464166363332042951692176301430786557058616957183796369619281365628093875549015165734656989496492520291434147500944968044334325698064455185055473207727737091363841453738809657223476500282957186928080300719300563325855205184797175023674001974258249605180578780184884081901708454370453733053752954162011519596112665913437943432221364174742733332267842974793802670857058832946917632053216529201122839470863740177626601445402994115935674707760519512856106670258786124746551746390159128174667064761103014516986185588372684499807864499515801689143767317375430133044470555212319044698113394860630599036530655656568287227555401484232173989194724185096419325208925802127866446650956451956211640938413468713697446855296649069612224769597877635729280777141412804477939529768453847724916749756532294874784421145434556688205298045661967780669767502801430494840201293908310858124759100125475255956758793599397536381265173295310502401144445720782332420819267573154285202172855321731186557263627287147929533382456579768625687902908683522251359814970623480854334627715967100919101786713425274534469271296153530592907547378162396686628866414231219570742992706620709957192208335586999073412354432440901728859433275672535510926180530945025792181801638097849685964549250402598062954356781374046964421304231095003145410050924410288101138237747770319413911466291164860932377944677962669645865904168604372992774279623009936005959311510036394223537266705861628292445730696444865095690484101521176121799382464674643529298646550736847811998306932344982338329762186306099758601487570075624221973848416700226224608241300818916589185039448842834140175502052786178190982017601274858804426930914184724966525524140175143639926329767767863953795633956595611694179914921226105261983855962236014974044392268538469678634238762390638596930316152219448218985684387959780522061657062001038617663284043739285403735036402803446343609434059734600489908299735932032417716220486382453333508448040117778304785376319626743450447242641671724222994714436869792236623070174421228223180703904681542822428992090862141688429595052459342757234904288295164016121718058046675316273817880283705613026970456791160476844375331418082949991460068788010095524689634237604260693962627051794930476936723074838611651347814296345634096308901946343133051425453345467993930596544399625079839161345837639681331193082543062202866108475143282033521201719336060213879904303552645423833161531800501082320904320651984538444725745391544897979692256438634496780923993193621753903007020120167131900425250723520336541929312028293729422434321910683337890876873251214880325123343429384300937054531465356864711329801710944440071430307554521821901694283622125292852378727720355786042852834930057861907095294103851790137676598630557539820088656719881095328619429565211322676427182366547026249434967120647993904374565405053998450635635570276384518018686402454436027267525328982810876369582635323035930514218925765585311163974562786713725836323089172878439956420821713626587917412880021623749330096387340689756429471159907314916594140001728996858696287228655834554701961725294514397021271476089664889646290406994832615626614701039711441040683937512067585182304856420514835575822905898643402151806313464180352733138135420879570481138158369366157861059333557850550249795009665844503923969050706819105938215334191068817070104853081628425611073838592515775825692324797330935006178665520010775030575158529977660316085313842876893731889461729157237493573510965690451849076209269382501663426648412278091833879000114041912564304001192763752778763178695993015620330005686365862883330324824079968631351717546706691600865948086813849370894392239657266225606255761040860849485588979916141333806780340317649513098311898519687339965344950164996298385816305390584951016300281128909266011637139725799005900830559772393342966455075400213508610650371233150452184835258116284893054649021640896206389216956782511920656986357413517130421867435638882056298595802160395493377323944495825486382411260249605667486280175230681068456503745622470300158093032410020061759038930743436840989836013442078289637944012441401108394378913896450196102668974128904517400758475454123899599922072842061164660590292123893642166006220845865878577660264838730570730319655874496474861887278349410950136938710251595669248189971796145573713591045283384460225086136716203926280931851413463511429858918135996737003116843966713886473700868652418334591816912120198464997963730251870078430776031573394540758909821631053072424759826089343799903281628394068083845430390662138264273536296401967111831507329563981840976028917906136333332943429074499110169445003571455431005835455468973487260891479220625615774106535825025236973668321386805717567424246472095593874651378324077283098384255889185293744814562289487201553967130445382180005149178593108315117173835588981473006803191723877014199282466780391555876913815393863145475198222438418461531308989764101070330169415870089747851773835964036556512130082918195000418733520956086998121236121702228186076867970160806279743151920442519442071567617685709380876336560162291157360525010044909796791591971778856903395103398473035463344643721486278069749043120961349095914023949993852169278466803946426094773483493934973372956471199650631091468374859616639255126274491354725856183242785237579838655804417609999028941486957926027852214460646961123343051869421135232361953250146469410667959638060056245066770765544027546533761229167524343691104427361324988013941039894062347197680540025467706216871803214549322687189143846273368630446690182286748489084561070082359945935333823017047620137491095804155790293312518838221641787218375673531192785674290167463795248544696882856263590650166447494838991011380710545172132839375380328181361419672027727712822328763861554599181683332945691409911933000104558658535048821469607001717095945389208314401275940889563851250244351535843640733916205350216855935331946392819543234359936445532196288023764170722025552018977345778809485997596443861936806085046357351499928563035246473401800162404793763635171615464189483899039907311898843384929765865002422203145612229727327203328831206783977689723980279518827148556191686110843552979715655541550790341552360434705409456305053681515024668864162410847948453950990050697972711151234134991209040915377397048455932076999649952318078063902898387806110848334288900899890168385558733311445321292917502923330860070873362868995900477932992533986459731409813355581562874893972062836479191723038885259408953268276964724321227017530570786561656026742199596933722179045469786631078357123050513871177740277544480103063074541379839598517365267992483056403052908609658024793290659177794335404832757580664935293669223224171060482874180662264651860696281966447935285155557288421553047202338800159025112046816822277823038321796231120834082907022779341503705452827221692044660695484767126247829843567417497311410754040028471948879288130478333579714056257258541837122722806543242384082638163194862815077962075723275845347276922780496335483563850931697850305718295453587000618546285935548120443919739947659088755940320092677913439405816204623618890548161768423225502661460350233637094147154827398980685307075774849950508352094600821704426979749079334497414744570523507830732064393274036475542805185177193533852680863835762625408653822054157426566992778254006745434575724880855327466430712904302797771010911988817224721831669385163115930489300990241006907774846096246049516479045327683825836020252496971624347865494985314168833403579944252894246846281794807584070982951321073043281554771207072544036425529434424980208051038151325287713218887181833373589056092437582782371623027999816934892268810518846257590914564213621728127662460723227890246076527256390886986768230781564885905615877083443848650466726073787298705790943246581874307330066929631930763407857580311373551695973228494672471412169437439563791393279039449375195772422211840470354052987080258670819379596227431734010898629340854206600787823745561009096060315764503882132498718490328908416588772961986481554432836587532167761585791023378996317454001150876676870971189562691932218639592246330399468605182251902324326855217079711082346118955822950616903247459245546676836316137636096606589668896873147294258226650730135055204365544928887212250911316514635420666483252213836438640125997025597923029522975820200632484045426621423967370965744322618367808362333533924570886263554094970532429984780644767536492992427692801418919709622730944768150567609529409619292359352031869935842202116225164549300083911690351030683096747062164128347055226384805852016350967529177807744815647281852109657395386275193365015050795866932261152399199552637829164663636454823626851280306300947327822333805444441195306719276769648281760127463531328087390980296869580148861943414863940022116099777821040547458350834896916210974250276873890137632719679387873011643958475995391774142248777738340890834453992120099992055449978511917215057230857325850779842751631466640180074438320961506813646689625294039232832003914162061887084593883600518216692063860913165856130255022398002732092317793649574629302406161396585296935443197713214982979516176514324768975074274081312743140425232685476242957265081436907347998581505567624566423262307467174742909211772800423572380169778194012228350551303956487935740734492896398282867132902136997091003925434832395497585364141762600636683923350166710546840385878345015909733024533074010325546799896525103135402910518837050345157121891618874149370211722307864051595240919459833940076629678645122200884608472402548792298959564271651445835581163699843029104244006087706768031981806234525311077490084899069816173279845469021290436675075670544389686787678753466392117246617868815940615567051099514728327656468846392238919578420216118380658722050927152100233627664523287142382027668333751993442881278253989744162005512396188445787521770677601100972473483608637048116207860696752082195058807657322501075293718768205180979905687829104049388105521855196786053854482999965204075045179866348737941265846722824668724400595142969568024428425084548549582762268366579170580388870792575180528619390425174786535951454135409717483134749635506491741009782894179669172106066898024641786047397261987177118634601846843515820858258258258876990137693729213262554660300125315172712224801351135522928379745243869431147146064623064721288352138214532671515294306051283393000629586937829936188429372771980689059630707336170795824769665800177364088953207500499460893589419061274579964167262896996115892008511497820628264528140623571604406363192725063649023726495738271628641560721693439508180615629098400101516838105790681824069130387366515331400562715612599291053002670834639934782780423991845130697310363350785489546858572087811547698701168336083058765839466340913543748134004497601140077567049870463163976460353209405107187533498199531204553475472208245369367893672281871508393743551813364251426318158065358949575501901830217203591559980597934364577386741423932325351854903788931223650249719283816163151895897427219386924413634594601464437530262940530568484887109834169769805061741434966964063064652147874830712235150593549358502118767578663472031124339081030109328060493859632847873436685919811155516497720279066907868851113346576260609768775007936793865736605743728629741609059426325651560152131038171695434858214636915973328719545769779892800543990971755595710339877709598041927150998046858852172194588968186130871319745365385410806172315335667986901505737465549215932550327532512895326905497137171506175274232389779076429541305093314882128856748585523710873984516394780809801856886887468297951605673363547543353068216260343631896319943322910898401507365379507954005082156113747921421399528341913062657953464199674786099655952794796168255641945951284659152649214542209160798559773055062845340475402787445966618211463055320738478779385778916784219321106339516672088535162401118243727547347648394108016407598564328044336437416596009685301264735911264405714623632887304700712252171690619121711115933794681100125535604324488675918494309196211662630818522159755858324577948902676897075763045291659476249044701303715554276838719305206128229943177171945688773087058251501748972520991908317748728518383806271766565546163516652080392359959883765880442509925773787673298124285836300253065367824788776202390131351594188331868456909249557529087000801836927064131143807397266894118148972630059607707348813730983460726057655000942469917588755033662566809989441813340411750369383853702145065754481305074498929852899438469034913292422205051350767008077670672612228175116276420138801245592219448731447362783615193542941359288368834603797825761554130940331787320197866675818442495376603647306898935763755430014406559460868509077429825535464124952302048308160809198806103647206521568635643960253636456113389121289518151025233751784371963629602527389307233195953516452645861641476819714102016177780971193389344174515992737466946557900684201630140716939478509233279954301794849366260201304900166356867817904002315316902790633424676810164811633542315496982341200677767449501220840712607218295767046675378703336508948725060838230791932092408766600120224206994193503661645519815298941958688311183216375326488872817193008993261305439756219737451849996548234752024463325641960429772613016245255194454348796289284024815194266634362890558852280878516746795187409343070885177949068548114240161293434551926576323349841257012932697893400903978394862440212752462687844096701892585507617902945589443883062364810632978411773336207309642414008137288070286832281226716142767195303802141910089813848280134046266401649296643812606311052315939579008913068771113053580101747796533145783896293247035666508532064716648572807265975874773899301141357672169451637109163824083170404691201093903351712957411983135085585977756565158072322733114756971068575267449398734847499342643506624899141293838649788852369893781703370054867895142274155127057143778445029835108213231767531164789526761195534404141469038729837553923188483201869224126597125051718404190520730314162654716765746515595422988802990012710552735777580439828305779248231331007755590345267051995509529364872718642007744778771290745395649223593309944616258097457281929048960751742265559838443190624228984049185932431566038578496531334315599083397708048949656372830230450906306108824616042346421620994513656815062873647421005016785580363010956633696817450478569770117273419609728097258278508393065206881159838785522690563429445751664177290958528323378139160614515146636424971241257923198112969901809511471171821168320917180252063227075325535376293617566289223670637127350158185374658724875131103776673758304167079089927465082431409904168723567826766247089614190399442979675276166290030156226584319872416320520108484884923836184512886508728154250268994417508305903080714346256562714316432637986524721362983831089524086870322757373882852029931181826400827547139443492762895268422694977834232192861741793973960820029533590513744412705533597773873914815813786609464959753060664744702458534666400325190644344531048628805923164545084104881112813257782609886944924559748902021350543565012258035395330351831109784848135662994820388499455238915600338107406184460398648831101310190158905967871124079707894364885150994093546602957073118090864373744761521128438837405374591714608542565091443602403230948712690044245397566622362685446602604204604634495596976745501537173119511154566061489490818049941601373020525424110403103783599301731819717158855122738200732845656638391134141645204379127559404411345429230376437341662291132358322678569412342229684198262810985414706803672309310206244774086128988954089751082700906682485828926512913497620633148388308157877689182459776979566903019443481769462695213144461455658635182858907786573779824285349885113824248823400611062345682920768015524433490033971289145125401069437275126948864980308219521376497539479883876215618463741902890222634894543222679709159060485706190959396784796181780204652826493390741946045985594929809000971869360851961386130112418224611574720418666026913245735715893525381420759384196806595734939220529668694700547849042063313029686418832836107800613847363711916016924685872685002160839478084918246539198900264747305007961125699576697770644889074892949274604275372638820144060130346176612734631010255783838319095492438523776052265184157976520432049897317542775272744230679997382515208884359368711452122270708406605474670394552747843042867402743887057744416845153362684472361351715050781144494325435287589893037289969569276600053464604761803264295401820942438744110823199340429075650968693012748076168202978459792867559111568336730848495765234898798112606682918023471791833751343227117474222211344663913151524379366116061805609803235022637840055809064153784526069825073331693983716248492157073887141820443888681793139580613808510343794600947004306306706565898409076099264566357515517681220733099694133809068387869711517998911130064893160048107942132047151535350661012376887772973590646668826164179148941189033164868726587966184850005465962199920569793344561915676905371751671891756264840087375948129136551920298603931442287806602798278005622681234838721923855765931912498375293419415762312808832151009019990034175002281883712535093846104682621284265464948730068524335198455215750125916195284187670743822780875640145586343974739277992543949671051421227716936677040760111713785415367175796436351898342602222221538548072357148924167174411995468624113961737297128831603562476517335796020416121419915841041962594863147236293738409630908531336463672434552728830260749606052744688395816179228080991904332856688160311222515716399305803766570997526936647968359818426049101646996122832512815778119673964199806765358491881479332502281998570147404828737151714074877742594472885570797827671520889113690150747996238576806045923861903530279854237447962779612897582655328682461731457111309399931650607063536707482283880869836901611264028140238368460533385962918647521064553246170497051644748649402553699974407775793681831159673554768854399873268880700660888973318762528573905958246981738093240886807234186128011516957988832539427428921489055623908795052983546295452298726201422839631094206890594593765663242806065197948933025491215072216828976907297252316525634534100520031859344814212019558485911201849700860107257758037797467040966093247076825919951868838893962290637521991549627403582594945376947600890056863577352312643054022234609554550525318441195032676399144614832947110544106591518263028705520502494498986731970057994706881523876246051957429958439825920285164045636195633678673442348511878708627793785132767212940838634979825513391064903022981703621612132777183605938119460188541199080649938230368325637701781927150996362144130462689849409869624882515579880467711677704732181503703447688497789156946713623341883761068652675357169424337637693116705290769220805732133079300067673072849948733488538303040916137914457834887504160182008825473788727786282948229254274998865867420994888129330747000499044750843672861076537790725243558434976428975678899353079232845060065923774491342740132588778942701811117904327852350836712757959314358682545168643509406980374970151515569341965654132500683521965368992689152742356196247344634830626884044511971790412888028818973267971290534969631322847202502439235721423501994261297716331120682088495077996285122203556138281543688837746907914661670373779179956496530200626569319164271904635981879712708316140352107829302111071338715682114677238483294660202889277221087669535272906395933069368298255821950655705591454155488702833947236450159667345550957447978267505616511397905154532097729013691256983710918911404087473899962776045803321711689798916924537253738237071127921623634543419848386142417692384824863840958571945294861012713223395159893839257158310505179481382696193106068241058630400466260637271662612740896300700343851817080990188510217442768050169810231039828297733921770765389079131259073086314031039392395316096339380962793671192134309671444863645890062884903817207869211902478689921587875860739886595612862284975950385333588842968658847297131441539904379837644284078894258017846978992237627945971563881796268235089510203397665099242132409577980648884566579097969277196536287124847185891249280400278499656699876967525111167037937764050229794985392636911244603658817395098229591258842234806966534024117299717838015346712442739949920054327916777984874063705485624783582220186354776429384541825138066233978373081020553580532282330289745702162371989345006144807940574171092015335515320515067919375668469861065499754381935707347440852005850864527457636526583025850205184215163453080337442860665944591648150048188578915499805575750267461292284912443063391868046779154810931502468977464826651252928030962509325188593469717256909493253577512404083255830409741826663885254274054600449367164119253904895280322415043249977703628712606479890880495406213545041804431807174469285157184832987183118133997445063107149308251282998944836723576384988731015027440521096152500296795275457021992069011567955092041309541445126928052772096207693863711754250100242429019955933813030162822176741460906550258666208849202315193094269619339681524871239096633474656667662484822558644705834358194281126432094631803984401324442198220654588401014784616526812058656365356748511635988521809511334123937145244812411405950808450280616327761485714099826256761668304630529503057898841121205086417692045135282010217600599870946263627995623810191726949482046616019482201169622568237747805435713328264561327383169461606265681503783092004416833949942102177732521723457270706981601084138348951712714643445630713136794982139549048298393855828309812955841455475548891515899738032024960085802199423323970778839606861078507900067271458877299329287710051569173941879335807494306298073539843552477911577145756037556558511261006951491247788041892907140067801699994335564885648638465531309285969072751767072404511210933801794642678662443166612525967271270219672720003449169322356556086164982307801941385842480380571698995001699623313961933077000761441214014247162641966963237502368719198525038262573484787621806972863045362435776015272891671580880789462732683245859299295033678856175639578427590809274841882803464008972602893990529897798599579050482726022413412843484599250618194202878826969144315124272982745828241695049142904491277237224456704166318878944070180700209819903531803023164449688893176916539021469385308999485596502547519184343587803209110966896662438161614764896333325324192988686252287701693764431894384960746184283727704400284285987457958139970514492341424803299538075591743921038201632453364231726702270982625815916917203161800390881368294893291094854399261255780009845263111299487790499794521608166032139340582996453965682089511187159559773196741604403070537839213503029807469690396330749651550818320491528751714482193981293595365076478436081829066077361954572801338477728096157738349058356470491270587713558748999869600672627558112828916971877615568035445239884600424715975082312769706479865487454396162428064513049321945740315909037578172741663299311261448979334665783456333770580282516374084725255337340062445490024039227860093001044409933812585303573541404168365997023260499661893691306832864860552882879633175771329685799281355408916571373026121561846605278030883178381045900318562601930181293610996824961020337110449221826901651401305741377145163568157400552501912605523171083562285989121860197689650889426662723341487997070642910295064024698020262700377851738566357869423413547474281346176437838637240029010694181693571607500013496136717688562372286421638060906241443289178688503686694033766812379069666508972011391845976571497386454365521897700119043400186705906265276297252000019855062070231019898140971641488992274238417496881319166401382627079237758208098317171232300134998716924574152115386040643796568156778638409871535044913735611054261386295035407429513807926158607761553012704452335354474355181703425274976433184427937897154954337165232403370571325563090990497559448755646673149457776162833193417029929589097164876108683070224177415102330889748563179752455525863416233398512382272403191005779320042195057552422902580374428374242878500060362004547766738157773244411510617658971284060197659197179882147125915917027669227597850743590316452953906474021105395273428729908358980614086548930734655229962315912737336833100454306169100529999124920067224236407984473835502041415668284097263787074451626108127652788859556475540000860105755760824819435632797001868721574616029891691391807085307516263531031568090130832470016439857696992727947415222612839932862258416569057327675784591630474776414786998925431098662219955670336910808966856010487700278366748338879449446594698724343707189912939406542251263801578832395183835616663176643900833497390391242156740910002190777494869465415182750769449929415896979980586905408130604004313970335931943341620421194520347324060660982796866286860902796467024143688212619245829546216828221618053939299429349183316085898397772041782909088647866010810061620033530598785260200391203429495162629632058877393648634044516302327607940173137103499827205560403639809021865210019195168952159855397720571296295327770717297059730506399234358382703863910088681419812609281906589265602517562497841118624033732555910972298797351284855125655343760401389639883704425866532006368383140717406361909678205399797467122327233910950718164247191152666399448531720050799495908728562521009959278842123927524269024238804802026008404080321733949954592154049674495805689867792601523623239423767837096773881100691610070075865144605167623155867331077103598492389869293753345006324285235087401596338913557783129557609375774476950476586842491127704519512585093234917474316638086130554504122873556682284384109170919436431062115302940314058960206521908308953473314422744590361420636125924010376510257662346909110303360920293258523989793758457678650080123469531428197593937673048756411526618644669005894191754696428263587494482715060322874870738888013794752044721269527203094000069647267508011893148486502195732713579072439452101966234654575000258187955092504700812433925652045220127142016250626017357124599912207846017485676727999702391678647323932189789033164370202324462128160614767034140617393336976554692260388323187477905662611204848136507146600649016703727583373155240909509222187594295853657168835157065086567471831529964560657282617768203174945689279807942736440603142066538647154487217360974457398308060511131847638716401311792207621481567635958642050121853653478416134273255113761674344217579579929744024682409145166803124720378655295916237231323279377134346359085931302053759940375155561724682339960759626515231670125669204611198204794930325705338010325847082208420549198652571524682381123452050018228920633510230725167543334611189906577889708124744425477772718454344586200817505386108869866502231559406673343684621169615925269630368803481641468006797951554336556090995582871821097568417744536605034215525145614425703892301680787422822831466238854453350170435087824370574527892119924918828833351497352204900199302086824281285254637885566515937331084281408460086693709134187772122179698908721199061867032045403126876502080780408926709987179009786953201035100078490741097604814644812040310579559660121190405263056656987657804919578084672980656219832231114262340174534776437777392116537600541483466316344054668138176647733018781564635917353028679473003924632772096476071425340417244097138440310617333745426480732669494114873820560472919782878765786574650113449099176454104596370761046646346526424690264244611863707125456212945771209983373984456577880869824856124004461260688248121329653888128550588404764452035625144418867191267163975385670014940148228809013269127950204894147339600365421197837834858376211901090145323049130623841615185448060509137573790057115984548470952710065804556578945770050743675841738217130780099363119025118958869427847671277184960723411031096016637747539041251887182451343437208300941761540333634075678256825538455226932689199764823234964382325995615828505343419017107766683226300612504093545074935004412477562716369028514693509713608659872020592356673685923161989841501635353856850702860878262202193297754868355193174906419401522732177527203255664305150289257638372254612289206904820576991028748429337857822110325309673303721971991935467049093978220799156346230706678481079118145025108907521025455106624540149554971136029242973340260715669351724173553330300470836447676138659351305821579164304797921376025835224686496930548567807267161090064492423771477001598866552128488749925023781567043498667879543027504746699228011869136912606506113939776305497028365497544179680664671607758822599554596662940741073169100958242811517020223139199789972267283017923905634599255253807738334325584904843094561058394265466338879084100242160176841751945168411407163195214119361160679135338754383721768846122512279315151848025032198431049293857667068549714737067198724947921985494425375657708154512880543812306491307521409972270451388725597872271446407153521843185560969871912719559260773491878953664513364360116542192574755731560549801851481819389719422496632258786925565677081890357686454037513143081032396901864460178962201440788254391017680235119094350955785191867080203407224583318453928990849923693206697942758885359104522861654890835258681835857675340746271037688471218037170400104755833329629171590513431044858072572745617835317895639317971574470561325000620398693201880488768902427025603716062108471080812858380872919165025580213699053793285943390749142068922812027489162600866254468476091218935428088853797117905357761737505337701886373957083563420354916727034654265314873346843315256417205340122297840912016790093035530330783679860516533572152161099119193406345931802612356049787706417956511679820901731438851755916602704323269411315682833944401789320078731294902789585386946591083847812482444787867385356466594949168577691855529598262888609959733245102406163001374350564169578298494017534011570114239728515488842843777618597235862057517003330661797287215718738863068310217638869978903246706401090756335807686167127087279585762642417648168502178006520220562847982478333998964996754045048995083308220673674333071567465561870976160206079458866059584672912720791507355055356930032452793593458155409772414271042468213999267798728649191521747904023883085093995929664893458778320120342893461891700438504496861425837530605202693173994969450532300187423011307524541949694114690072344260662585961704186935800769256715830869932265018068567665722317307128646296923723246737524647386201232837111730259073174327392818951763698973510651216507955196752156986631979971289189937750705164311347587742074354783293950251593694033986525252934827125457822234277381405798573538059785654086814609663305361833931780618561781592673191702602148334443450584877257189257863492829105627125533144446061715108721361180819533510958379716698830268901037168428957842735380575087694224751890820416766066261108733944709329349682040050499495560046356538290739391927214429970589457529887446190714567302392897434349373824190061369448148109826217954436210670219333287855798748085850975194842923448945967589610214253288288731599697361627667405405651968910413762774071867785051831844482972873351974439828747825829716531521567959074235347390285015064800755986957965552832667594411364948915618051887375660393093719405246758160302136855473085285479574138413507730552332072162948947357813232165607222878312189743497815834528766323333706623583520093445835805272726186211551263205884053858502930372402092893248816996689418553702598981959734203308360970563001342211942698400018850267732648322281902871994839140346941790870439422994172754460705245920316636186308145152062157323137733929035980910732204339892883373588508064932342182434412886220247286746462089363460500458509638682621459445312155310294401955985343417693013231299805396618975955953628577225802401742348295218855282083328403504296209790940725832775804203722089465442858975106305121746911215217519474368532756762698534559869945035728046002037308920624688383361895537318392954048201330264414402227203360490287397039396267633877805504679652442950973885580473493260088681791415571704329112338925271425782370078251378653079572868341693710319428831789887679242365960780729408675937981523168293669952047046745103838856137530341860604693026764234625695495092990662971640638529863989652137112812539580446571506087277785184752721278316770389585581033362247975187380018270159722357046461148364441792534387018320767467595795386999247371672519152675974888137237176619386058114294284601939322860532092488549852612140454145582347675871802693106573927406231569121100028081909474364395135872698732505095866396152237267374409963289075821734774339389693162338720188048656495550034392509246520609179610911559727808772381776514004297718927512701311162298877443230193951228401937802479662259619721150265671573761950328393319276665038073176875193245165155087793641947370642282178841906210203212298386120077363770414453373825064149018715290504601998657021489013459866141593570241866964485768531868884112425704578125853037843887641944057496870715384079209856621367373513068129272423711549322480165842360702252918616346005715842901230583213526390745476232922797842083293005362144661057047201905601314703981933341387033550513711042389004048309097244481904642403239624285000089649630387296567704772338102425775188183437774964380539318627348863177264873786956273602006924258828759048471875358861650878996590154607635270930466140817500069554438034656377089936292210491937254436366285758758633777020834323004251799697247209747085356381691433927070377208135775789729245404170227207665269989325395810123829939631855349847982480858746151551015877448325399213257495652565051730067533573569315602442969993448367839638813186257983152484968877224848217500052888048606592685262036422443751376888300660868403421298208120235855462281697363486587758378610356407846395241718338002677481299502206656906111029163481985486282981615702162705166081548277947027375891537773449854423911825967779159701980038504374294642896475573722237495332582132344307373406013951795976020068966352234780483786497174998127466472672507485741119395313701926553917362609946795547572267211951304171813110322112660436907434530208257264196822184049357472883006552560023190261064714519085172585504309911496737621543856461942291003456084551724122412570788602681673047746450088444864405853311064583066778414909675040726149786481388036764148834081272379692333176310462581169989227059654145228466097137188855047016741209971612609133367498254914410329934295989085859923881153073846264217056662780753418492344279569066654109933539082414846281542134465897335982301662540854278126328401755367501891778404129751984551169095324759902388783104839971389179542747001049540243729845998778328174713301736105854752386100934342465956101556030880948144526239431388156890145293254202174123333409256371818201582664301228565626957545012812005212699009509895887223887181026145210968579869632492524110970759625774761851168326870933885679036499374663244150545046747775672612451055834277609396748390284494628475889471945889579383714601800426216628853661888053743543511194013145618494538686546306227931286312243378629336979786311357900889419929021007646834913182669863953943966425329164446813719009416767111428245532963414405083721259983327230778104049654947260752040810469041344741900869210677973725417818648857275960560084918065742190399891043384689251435416798510588814207689548703920667669855853758876850807000719270511633992538530067557204012602101496714305570427512675381231574974351669858025350220946806362959039948135617995639499580466228407639595326086123699751639445452448771002076281557885014420416013120086984265425691590037300054216190935645473598441654791936139982316149120611938790510276743996239882905378024344925369592038201530499064641508497759968974443778481593990023591222016861677358261583520262353666154890760804027142200292326304802280776088162236435009839802445590649993529840397098573155581631209334133613269200501292509545229534263092612883428390349592606270397211707732902506157147596120640706169997664831797625727552002337225127369413720473945692545304188303892519655086907299303439819534165823471492210741141613826694934792508625638937558652362415169453806799082209932375509522485825805834502626075835933000899190594717492726120591093289751581188037292759644587968668128778029293096503098342833868358765432957584807530311879808466479526474568385151631604368560850555950070609297443577171007856928726319225251119688214956887839893716631661498317003870330180264412041725292764433477097430003652475535811151354193175245356876477767188362782393601468679236101772488670686558196651654133733471936139883234079184959953575688398952835901139231747040187084423058783739655301494362513778358007024899368480565611350110001157118976302230960601104484520198536732670600404809936448668082092184801624634700113314673475728551523690845199945941317931993556022346687356476644264194895346817525520808606804214430429146665627406736384536584766973292883064016800950865469623100398997249851526558654960308364887409708219374000138414637723324622085788393825432221574226122479630112770219017066931610033853913682293347452154459801131999693466627747518783384755272519079461980910761887887215283533984761403604747956803047016507018064858651397586250845367417336818795442822277735927722274929014170903269195811845122520310448770864600140674708729276404706822102682245568937091460387395371075829318998243547682745149359091809787437055074759825096386634222211887962589070536749127577247072153449157825403164509547026940451591224720214850551558081749272900087422614179750436851479496966285998713957269579581268430705968474975593747273416149323930763644012389687603154637364561022129046594105210231079771041159614091522051782443064895627516281975769422009561080619018650922987056918663555085187548325018420967093218213066646432478245318091953460108147484242034899877300742124019662288951338851058704320744935795970473561269510999997701622445128414412138946008448735739100151016460797901786297102056583593897295328613198553925014802557083676213362907536124866221917564258854673556634398469160264745243616225611423021732545544338222964419820615495075451189535176148256896046280803629888491848034794806457434238781317613436082743597268550744898729346524193827912973578444436913787094653240536176653632098172296479008551869945961085004457815861899814837519635755600427941782096452444569274122319962723524097378054915865459979373768449066343497971496494079852383066547237036831119024991840453282629354170486465741164604718804419826229752536068401217818776745006439662347769194115082030241931331524927193632568121018005680214331994335870938457153159325084439437020028443898811398912801885320727862864289062697805317112317209866412870919191316456816560486768469657873508506513011347786098596648068212704070942583822845342618881649978119732602733247133700549066661785878299863533497415751435369343388184930978533050848807612754445873164101415156649068567378244237872645639625691057591282065678934608130575063140438048511702341513511841742682153338048321592180484408853481267460489289059960379695895156721724456354485448779039070000626490299920535668449498011016511148688404153856324183496323713996241516587766806360536447791949253623271020241876532683450488999065531623869370276871536178944369161442457257235989773845393622688079314546170894671411816283185902493226111017910160898804142798329590694250228341847119196075156776393956777750080297179632142912518787464524345715955156065203442670650950642926224435159736987683213365852875251412340141911062059860198814440915945671109660311894659126928698125950580039160548210079050755657894031831559122576475549413057172873100976452523842164715908264566222503065015267211262788164641040187151936002255955347935850170986444939111089934369727904122744275974754759596577564896552929626795270670079774359113611595427164913130799046917259829203769123524328593803203688855515121632413742697507683557276968524483874864967362237344078083393899366829352472594384109336159631561105128693701275954764200151444361121256442098487239196881761220191144109026157969007353467080569531005899289172057287743580126372053385022032333831745960103162569870865641533539332365639257967560826918115312017547834602180037526778175841998484718308275203960777792133859327211842675854733182496915201515923808434335726354759801743088170718138112095182194097853043748604499980744332774923345619066883111433577756294204034581851753983677287070620818276169510646367793054042522237462990346870794600600503669642823751461184330024958833617555184674211070312930535087627154235144399738899318700857790471720326248989275091306298698730626573200439707595598979704481942985606335958391755474691899058924636112886776382976475002638349843346253325143334344702987025905488555137440056670349732548303464316086540259187034750508357899470120770794252692182878485920555455754601155516326161881212662477497420597628655264842048034442714406582186498469963365029792965871340156039902161367007165001798966433109311297030684386524445851547213985437405018375810104185398743638588218218731508633233311593242724743382274919460832727886835507857941543343029522943312221677898592472702812858722299004330182189961693186557663939005194683114276537605213813810738800043035092436962329002693330833157178765116530220504435251842297830235026618779305471384290547808809517462286659687843519225564834810082449309516570223130814842050624020052088201182428621565344902651679003346636477847175725955178904979702346685214634295329671784579355944440403817265360558823597298586254124346181641813181450891701767863376862922178152129608065480320270699672737660743579304704156948465718506109476814224365976915812144869767692561722967936331780985146417232823722772786077145576750131039433999075234001879711445129999651662167952496306121393563842388821530114513846637378686725650103845591969933640914204316697524593134581744710742302498072631814788623263923172128577874271124299424005022802255967306294625426411114017834510543408866475639203315546873219482689059254467192202889611110377283681025778764094350827208056033004885063767094387103244786772430769912598364809920395520090204830904399147927434297984515301711530070393308494890192580457218372197164555661664275515301135797483132665057252991090447737915279393705464299740297205353651886767760855630818605355457097045293745580137422435321846322368736998612032005989002501625688617348027328801464708244948753678062470619413842633496770866099132222565654679275154903917556591400124039998323800830023331659785854917562038137552647306525800051566019878617197249329301754362246395338075513996578261156781550458887843287743314559660917325941541566704986258431625084350994179878106079657449778371578422191389477056119440386913465253711313942809001403381379258080915589800989632365879324818235876574008766610877175333169760711731566975533765640023062631454263488587563166648824154483892823189995905183810089888743373526113715815142012804693173638394624516598090070004866342339793227624960744748632693141025623056462985330253059488803500644656558936230718314844961658964350048261079004766426424304921057635927879745300521392687912652132829136884238492174061764275651666140603423645055991254172297309407794457153825407858127088969060706449512903190709500994563076265220521206063629385671484339151116362808806767219076502515119152260430802566179761509461098032460288375912466702274989397163785144890717100791283400564661216557988117232469542030909402500832009578957293424123526217353676976924326852563081180843778131642146838319492117479813697412848434511887030669124598157808110497295991254627752614027961188598947779092437617198016821167891000435620340984614591176331681505213486119323737810944147387009279867503334557980400996135618438832156349180768921579753328952606342810186788829219764336245781922431129653172587863885632898597893114740595116306861833197195270328052276234294925829902902203760985876881183680575762011860716471652833473384118803779045147871563715226238650558487848085971877538924168919663364019449150685006388948242589009452226809477040126504279685247682027897192490289555738953266623427622455745867939402155379293540758249830729089749961113690810667725390651527164164612732598107947751097686277211614135855871327480642275163025596477954557198263630235116664724405079108783398423456119992302631255926537456403762936883142099726917986171873362894623003909377691783981747303041734138694868682497697662938019876289558732466448474895679963165162345427589594458352869485797529988282454488379964146004298598537382761238446971490789140651053793678514861366826604833168677483258462655072922145020917602714365954922926945608271428018270565571355541763214760758916251291443659157639431631174739901392455721349867403873816050341159051249327169069087112704716972953206499518213730870998115726517527846788462595797132194275231207139716682662341209722770373601596709778976439200526732625764540585130789301244876556296556838058719011428088880814766836272023529844262724545176662383622497239319153944034284623750830048320123912140397288862491761827289331387261760400445588988518464019454309562859290142997547912373865485264922559568088472770346849579288151916505927218654269049804550892022016115915869925749289128722337086426198531046681180799202676053345678097365532911884422144858003222323293120599655418320296528409257947186753244030966613624105535672696114623955860356062627250040374213284467753494921606272217658848096130846116313035884713536063341258989106686543696699146446477857905262040509994892101170310474277146437105653497984114727483310584674080449252650971132446970979318040955879781681506972174198009784403495700862003615473708139331421827607043607807522079297990648695939271361493302061255354506658482537531147385087118986380905273115015738569836938047337049449089048493985629700709448649685888046874551396621065859514150969569168890242989427861631874003384193606613723217728145735851850422615593465476228656873242177252256509284819113899048129427723167313304863761967238557901800491056656160482388811315063089513214537370702607912920375100129237937978497229475439472845078800599894966702773158102143449415125115989001998343510949709698973024356690130733595622962177534456154527559645218010254511519676620315757778610440655690216529978514537664588151557719950944820544351601724801840914054743007894224169961638300751891397178694024540663198104900097862563393442539898535566461560952355020809250893463767564973961047904413476723553274876322500539411804661990439617053658647338110901227679419897123036247469706202176772706261007723638016910481853830787518602926603839104043999321645270426689280714371996429212640619880901360946369791050216173817677206310906848615721745019252364301293247984675148465434417124286217827198876405822911394298695953387269986280253287611804616218608362980992287451404803515035719583615695572363860059203761380889558546516850247355861216348003174656973757473722351458204303975069849743172980317685844466597078978870835876884666143995000364385176742349886260260852267154394277622424688127355272136051889370823567020778058247232986610639395557440208510728172199262304303401358891626963929730423904791640137503555901996936598902139672260011415496820655337238787693435947504180764278121507560601034826275270628538044014043756371057677080179912353831872089475939623390697593126664265618628470345427383662078822859454530716420297935466051698890757785383799983018977412523845352178048428831725634401608844931147660125406349980239294720198086277936133710502393637706336073867392091024692603659566359265652673046997793957337343928151219903842401606155908211927366829308002174421162313479796348184825633477324966972959618232231881155349934649640424331219503848417091355810940391481209655140710151339053607269542524573550866709401655787675462001913482104089114748739883764482073256408147742234421395238475814397503805614133589120535168748640707842996432989478022102629797004140400286988270470279602044529342324823686776427490374660975681369924758436241237603383247491957523525392430097773357551686414344015938503373942326918031372125520125773280761908701308507200511601336283994243695514799792423399049579576891061802168530967559148915735036697965637725957483629339352627622165623397059327571829274496047930751936631054975417834064878093813692659697165651992337441102980247966033937604108112435162717538966913215445750616653588749377047008912900968513255432603822563012472397464985836703929418188081034054601446390775896185156224617308812306229698758117929525423749280509057834227703979812716375266848497543516234265250037073779034484742129152184906128692835412444683097742436305573254358967257306828449397416511469789791537491058961599746388790446042832578233852103649354585005952126259991589163592754376733727165301668701661707995081906583675530876338340739765091613405402013605920105117274922207562504221895736752330624904050161667646979370988836602663744872285603644480023383626949076887972044173922571270560109160053295219199790081235191215378679488218327598707890402592198565132422166466934802454545415184387244676797400596199478548013410977401796320013151269464591193432096172410205548331143396402752837310186803163706363096689674769675650492358505313069555663963251543731961268746175147493964848567256724103718933852120214801869782739758242157449734642507819440468347658413912604670164783896462664018332537908931164593736813975464948439270045549621052491354001982926154848649351852390954612230261128521923893737667381126089143953105615969758692185344733019343268904324956945115488075357144804627092138749897270394746767241685559956219303469485748104398980670405450013373332489005774499589864032231475489693550144065859708655801990851737718052070419647729805181515380999566829355768798386917732770317627510496233892024729033319235102925017983722226614149942239114154335230483072530219029747464437744101035072431903788835701148769694240707971397352227336726602927761210612252459199642949185633707415858959910271992197152222068303497906242468822858807575216997544715263581918705035930310433397247728077594813145878424682159763419775501072996556525794920203024619095969304396310923663230924301393049633079072793781607218422905788595998092701796107990061765592367235071498848157654764231112226391090402250147569797806835053534455177666865441900016928483057997000210503805939554620246591664548563315953791684426895750957955188389257379957924867788540461246690191528021044504617962521734634741458600659699997186266175003299650654586541480950668903001237831548673894561668159555821171315345591518393641614772856543391644067673926021620559540584766302329226925453998317971769195107286712780945721119294773905500667962113438175718022644357193981639851646617532251836749998054500108012750644016535035376678604950612318075996502528359021923347115402696874967397250780391476126267714576792538193825944067992064905794122568550873529636446397505070641474149983783454525606850008192117973353583100853497737671433246162449695836140067475496097926191144033295851052363673891428221273515619418536894972834634117917318471914724388392282413782234582362155069018674435831030345886706631821856306598259245935670734001779483982635844557630792875188571421312328981474393566210641151303183269238002753113623344020801978405713899073581501532441352305191400510708055510356829156697051732061782375976459401059651643355394347796337232779010634136575803500047165489153126994790858525648537560003216529926871900010538035173859839027635727239506466901192547883017393321849990151450694804828997323681163302475084451866723817084875352416674352754348470399676093048459441225055959485838561047075242129684445154018262304783613628642875749965476018513111027258182140778318557966637912014751812035663410427672126453883099921161212670035292502473886019974016271341933648503363117742734514278010479098586034591228103001658326458716404201601806474180645545355326898540071588804420643112993905439117132680253982282286160969700436947542134474898933146402228696887657839763088821903482371542974143908790458281377564459427955216035438064559309604160783607933245656888154382408713005955372949881522880523424658008401650791978589275620423180071363013518624338295131377629276876823062899244542892958686738452062727242457291989279382382268609180535022873050943747453519401115977949443809976134474370735709864890961953395739189878995699116464335130829372926759361738790280080315088449241210367050260189954470537186576590351921131476065822651413925329591983990110550883439693525073932480738084204163145344342218307148617674586938007941257082577229608018761148089346602933199511587739149044574228919633313365216113063820125797190232172102107307496130462681823643804066212959166115049763866497249267003052843889666982125345149737679614338605523924061364605760143548981210541950767141627581272060465571675634436637704210519224472486443345182807179745810721680042202588169869368997186642012314028854891296442904651384839013136483376990698437927363802774591624251755678750865098214386818454631715342006976875068113528045374032131379071916689205606541937769116688855883599404492184536015050317667732063430298280103093092235870231298198987839997008068748466209109115787315142625592206127003758926410944353218710338000309544707252811975817212231498072971606694996524651387784978799307689718482781980468740432406012941884393822956383441817751383981810154668194023670720898782465513861937726870240765399994329118625867464810331393126477808694915171668085384936155527671411687076030533088544584207547399075408691554133115389857871714720285463987702786249723130667510369361844848831096153918878244823480130664892422726016375245482984081777562522083388777793024652737751497227748281876437222329152907679516985127393502920346205108993861413960060387849817722125060452469359321031430683013125670229316165662778511130069058321039297443559047722285166052792611691846331010230803202105738449208736764532572442686292953952978755528891510455430071058513893090671704792053870125553101457406149782958729494495100317625258088484446117369062842968426126200390223983759138207908030567094801903019143250168608277129497285044475000088922537210235922431285443010085702949908304694272550120464818149583441363515739421392502400650406209154155338238330409805443268416894738818002454160466932239220840940753109579579916261028921030660973988603636024458109551600801032675223484702926358563990883761916255006225231690847677316306836441314352363283064697774536351235082702920661977961196424794012227060786981162677840431901934676915032469666813561788008582296122652261008300230825936188189374751394690809799704744472718426501139327132214406332587454736578712349492869783475137607586627929870813783528893007574495624584549445552150467212367515284914978035490739345835039453399828746167414090457935677250824143262265771305971744865521299381862211283750597108581412629147159627512169099900363346108466374673469872060563495530655792283170940995151393647080556819557578175568957081099502291009847580430445422721860811102498430326959818808813530168877101119950429383176065811511048031239116017206155700116500925880383917899986127799345182092467623196924810399613245250718224008237369185131742463779136863990933764369426275743678658621242321604928479593273077796572713213237595678010019985086262010909434466000928126258573760720689881690691586947428369123385252617072272352972239624533618735842554462040706600061260280347647042843629220076656763836114684030830821942929745371977502139034085307144495207415374645919524520795208575514783312046274555864199030740357309185574669900640906548653037481802522194685024045711504188619836240525781176613538214230206473971769943493673056189305801556845367864096090015759193840063211257740750932961582305102576845034162248695915280376069556896583199263863085533107358897678481284962350474367726360398834936847892587582100208803009398489225371243684257171609858299890019612191087343509767722516105903382888701124754793169554935424892018820765049805003195467219898300983138859465655056538268041594074219529410667320164577868359891377922768155637634586247474750789451035297876755369409073957262399084422306061325305153471685484372509463159192139274894444484657730899828557292240687347853644534878042272756158880763005648842098265030551933294514433787789956381453812916572935570462030234696643843568865086856588161814586937475024917955879790322892973093822588265842597368925175319476352578860542032266205782968640271561246182390302254995869598237400873147640811071503828318679676428136320109305241713166687023031724090036734545357058074121112242231235474782511281140044083575643808311898758385579770180977582435482228344879164467612096415220485916645018897067220465458200083743362048002704755823897487869639376017484380208548521751341223198648774733395691578963104493137519594471279506180167881619542754419522632363307552782584349115260764882509448419553078854986154468392314806985006128955333991188217528713982240104179930567277018350502590851063768029180196642156932143534959171480541958427890231638155099217997626907083181613999837829272327892883337415537387326375543951908988178222021337948722867092203644980999939718920023936256922653996120587860020192258208290030246958601544667332820382308414354160194940113271545703707570873520014630754748032995769108840891763709096201897801739861159586190556310240260415416031822999488734599329399211263092224270086220167764760491769460333701816936457598393339898650947621408505761791139539226682519227303069827428518435594615754710811182760110339470732923992354053872792930746341745985151915711763339372986278275145978092000910725867241528553731098072644187023967354477384946747085615222555185498328365699122506430679167969416656540173339283847911551702567220587660363739497021633229903603671759839437038044720639946293365874891218674662706629127629783651235810114332478500132399153365681058075896625593352381203750129795616394089384204085581318337712785704527738044468115067725240258573805940075592226203897372838509372941762988270735617994972135763896401687365916974059134023962868765209543150484960412035404815057991399348862140009091198051852516053994251069197300175367855235653502111642754457769111613489470220402957592501520321389731622070554297626695336220011067484690463595434245847817096479273926492772498855130982857811286268534628026957753005141541084384190524462688918252076290985073509221343754262272480154237941100651776726473740149220378498688225191523038137375608342434271321187460276527328774684896216496690872840227257047323561037720506556102322975208358172805807623936801536275024406453272177289589984057759329215347394627547328806522155610857992954824641459110382383842335654376633951341209683677616652996913235132843557003457714363859159801576867706780154568195271871161391983723442251517871311752810977916652335752681049112687472737143477193188877162583559108866028614921042807133095476977022168500451539894713524440994114211432143677303503867950671985294518765428089279214703671324257701947756837359922149848055685477520635004335766097459261854751324787313572015675250876389399553181397841212906786966122776717102397913783334113751011834195147286440009922800311254846158967613619638765461572838177538609727867355423349181023518279511844898408183609671561993432974308465977051471439923922847053485172787826907918368070911397544046547075773683225688968307605058983800809790885423757449295614412501243463473050566586119487915672811780873620334534660071901107955490635340595316288810574857279578872090292777688527491125620435577663412402275244371708449647559906328035899200786205031018131612760216537198120249474255756354882643349848903854462239495687787365186730094374179524146470379398951070826625284815202517640837710864031402392066619005996487566996037267525184679269509907589152357124659750995777633702277758159470555422314654241899157891912934746571049823816920818615733669334619108796727677364151235267258601386391100519441037990660583619626246722572614220322181982209732477384648703044931481183635012475587269073237173771771185113316513794655830386772735152207120110831053417000482589836032134357406517048566319683129591102898189798727478013642467580111844141700216882124576904191825991084968288129700371233806293927572890631240878745771939206402529517995150218223453213287144149965678693217739158089747871459580413429164342683190223647186767398983288773391775416906103101463550566295467274219936225458770822934504382471071068902670781085220388522270365447595668638583986512712344167581138153370455066973290128582538620180708869767605026273434158715699268842173049652435907522652577432584555217168445368415896954770357682158041342629347675911363778179797536515361218711687058493612914968658103488286432135686193682762281985294081368415736596938756778299375442697060354636144739575925288940296658560603328270934758767596923218407721297719960074321976931425770780344518690926158318965905857631812225798647856884876168396492269678861328894239422472107019642617151124406466982568527513155159103404156882549218275598983996076352796059841068294403332329490162640738731765379196047215557051513323113270430497234818757888398565241200422238839542956551030086522420174776819061332981836520495463990906285759027913261265688100434406696589530656826803689519985653423155371492678286432792640192410968089384284699634534766751558095061631120869504915143682844231522742222417416048427461262910109841281695961312771759699768933243763166055779696541858870952798583741127384299182028248319825074982788957432683332683406515850895613327742071658485499939847012448298045549653474012423501007023455405255214218396632594977128125045676681668337803759784311493361098123218247569030104493047980985280122257344362606851267431856245872958682572164628335631862717947076739365525870610436178254503246071000431963283106051124441629779930024192968732458109357443807676801147877436979234319160504375669373165068111093632764099890217681825987706386264792132079801744284553198761540581477603092210727416048558839790196313479762839828760915619650836559285357476515741092194787072686437364223314877388070040023340974160371350531797722563396610135500762500845665590219676772526593973224550593101731411162783688526062468034994331978490707663776288909319917396454470953013790663568487114037566208170758895318731769838907148836208614993874353031623099784205046760309163732700244697739890130830109619912467694298220588677137189268344326459760556833338797209853255521353432103417586346380145270833523328492001076463737204895171219586281320370425271495831063217117345137818756735184543741329130481631836471340930329626470699958975516883743983480649161933579434914166822120649220308506067049066568841574915174486803418420018966890461421584687254725435011782351389497578550578218284018905862388061813303462559425674621641798364659361606638260109372151958611087677469455829282559567497520467664726153829909940437687908272633495306966251771538314519762259751848608804543640451391829163161281343661284913118934700213601658614504656816893253127161770766016632255066048605164080573578508507786006418465023822702393107323877274041095557724459631534852916181825272472602898875412148525640801792375545571912846191021550043118288064825466604592071517855926020671440920756119186648552721264298228803545787160974114770280390779336593404341700916689214179936376135461417772825290286875237140212328173249291685891130128925758000505805585873914391330239557648957694913631591666988463417101345370622989756165689034502232540165750374198902774300098983080863721023211833324649185565541498662009472578366382984060535151411800383186855570714703229757442109932791100358720777774097008842302120445693614529967987561751176967738833616865447101216654572480671512625328475501977819801957277346277005762652174774268680563678978893867350293121032797102411422912821437671384410451538340452608624637593066277848821586445978885791923046043592736387902476653894489178175349391299528837611319802488175567278285021687349407433758902135543130785021284278480048835116249297676413691030316644632382689447967516822575905238414412492483437564281083852726284690947343198776639512866328137116348596038468000588039103238040453371856358327879320189077189983294047707144561782359141466762414277659602762146085492522779573580437177436512290367982479070946795054774792824007988193184289570803761138424515369716117254441555972001705114747671709722747344827452009654167097172941574373755649566387977987412701054374032157830362206284238100412974289955415260544089246342423241092212536545709871409326183508665561300435030101981575918419873960692043213033424831944587097301653913678239627367836582571220628058677884187789275786484444120658951549800828521211578866939476910331621718500985958346159902519377268566907915428567060075665678937235769245331980784212909181561841091221273639207656460345085319444121308597126800094760562179796308485536002978291653182695317647080133015667935271218783276473458103830120333143782862374381092798163650707091084666380612784871641386926799079859161777950182807774081245387554577544185064971842999882702853851661859777778397116796154733726130839007118271109888607557915507831762082432049803299530793106309173267546646952851641072575032447177131903973020603590225808756680630324518993058714335438698331424165934572515341419097198146067355794452532396939683918900060426749809056936302973002204474019070938270266719659045383142147292215151458394460459618252416453589017822149335719545592000467229615707382056547414452485611628166196742201316940785125047959601397045227503973310180520757521869130469748461085943529271713941353975620861970689705738154075978567198188355714919692083495693663421237551431834078967187643159192138289474931262082560293872625139790478561448568199579324695522140868518056022426950289540286042671665373958152623891702064256766702870171038900552552126506351000731948883885862089685338301049936040989739160328082530072458013695503431981079823888597809730709119184459901511871136170651870042606791987866457677608338127690072159980383940128361524445013326923806149490138464063411079149938074860382164604127676396024090808619027013560233459814148569515568000518779250986880454356613528929609590176967520309525561121686800996882629820145307398085674154231387847413102291297039408048341784433695078841065690856663435350981482304444421365001570145747777959099147863141804783015280673684786639180754548792669042637696938410428417483187127237402638791949850781734117448719449094919447149497637044972414136688343809292515067134987508259476868288615901625050930048613756215147827382767089890001520100299362319838240794450069435077825590790052047655194551164751528006453811234222268641708289985832873006878880479082183885882579008682959508628392320618635744264629768862086071987166335716962437598786192091257050675298708850283198160591766069123564507691197048733148194813983723992598139294684095214054863596144865780611663059762461840901512893419285892078484985552787732005639212808085827087451990012752194567619744530332527116796366941848756607288321943857429707934097514263864847204647847328880732770623784393898290634378636470647057728703792267189661861801666625676815001301766892124171086183661908285698220480425879103165224195389808133379890734212546132115514200230867017739918402310419661326854567692191396157819561969927513685244380242330447860925846363017523487013445828696404097423709352973963180558375006750795858871431380916431554689125922546593397082208526628938308867364996429725657471221443960610462704525207176663167682289981584763666038791008528791374288443207109181212847130051215380117682317159326000421575658065539777451300247381558594542665495145511767665565144666910375918390541693487803585298918104642778026511336404387003505208226591354646052748679197093769096313648932700409394041045200368518135244321300241126550211766322793922279469739104968435119470122770546886011678289330819934336303074497634204506372101054923450956774262315977623443698530831593094019649214535574568932307811850682807195955623687519640453619648349722349842716564408479185227065052715270867418802698056418082247733167889462054538086750124930260301120322190767640153528700096922456032303261738974014561116499123467395693670321770786488055670248878519875532153252582531766258487849109985930119919765041191187992025760026676835904362200755390422197762549009406477230184049222997409658294054744952783044948904233980484133462137797514272928558648967336608672380082382913682680021788774930927443976336493061559643637155444944220654039448276882206804936477473584080212778415782027343147718237749949124706343168457174824674127608416958063455025466394946457912458344202333757510657342976327254428922074964406476453099982809285529106635259782279342009767040254860387111365122942400188754505101097648848269781979737672013534043408136370509091410338912894138942536853020055193240943557739712176562690611124286445641225658155660607663327658182708541999301757621266428458072515769886722936292235370972916240445215498220563210625635259100792810626929159133243507553281059207744322480841937224330830556524121575530432096734555249445695665465247445844793031415467321709211524753154747451461632517800884556813075219819123103243178686500023727738915321012267751944786401933317374485272424564868083415255794277148940436210809767931168426998805359729192843437457744032043139460293746440258371134657709112316273475133099958040119270920320197849451968312676900425603879691568523627215696650581938441918186099258091019771071010576606651154623441243582424941876358921356541558788337363940928890382012306465441731478435536626248927661428584226747099284092717676732076217236404793749428969814443301165866344014777723780496964545807250511984417294051324414062267280008152895436149796728673180395789012285964993569043073731765639811807182641417194257032747320797946548532218600625047865125709808351481929180175972884523131331586829078634511697507919862232111388218871611385740943769248939556474204514574643521760997940437050392444132242152259706420037562104781898898318441570906500750568171840260586332934381498194344297001764438519261720875041031851507371219895669099757456489402227812711011588415974029428558397311940685609015621847713277834684633660313829102120666337344878004500244588515554773743113946109656446739643521538358044069971376727495164226952464234026409675143956592892243292534739621383448787789879892366306728675157129721157368547424017361645444703334046957409381283470617793967426251937727962309953244149639403198864281088103274519411375630981827297382356888640142001380370919508305073637169164026618939672644382344991282622603261270491003762309299221359566110850744759579009891296643933099365127631784363956866807366670129912833533302984892606260101770819826528684709680533047781641700126298057484222578091707696325347082402358082053838851689135896402159552526205749702748932701295513994947190899984957102057195621445620288618052575277963770456930967146139355571251166388179105517219109460478583989186205613784925020941105922923636132896514220705879200462571108396974966688817370701162352178832550605855584288178111142749672507692383087564692829147657983180515617612731350851338566179191011298159844822200047078775516812612221576285965276130763711532203855321884285938149227639432107266630458276156105776457494796017783974629654303250522197033857323156558394520222593509253164889693415059482860485091610618441761484812082878130246183924331547944649355821608094402929061908261816602581062669872515064006362444225677704023463115849700536247641175341819279892265820544384041513758991100506438027992609430657002840248845940679007084749950127817680358032856440940917135086159086559796482415989224103840195057998873774204085693213854392596449913175633973069726477156666208019391519380112658037356287883089916359153329838041528877545700529960393946925993711089981926279578621487626022576646121308499070829249132978921023654619513272838418814854531709591947067533309710308576637633918132522070944004266423735078664767927529789180799377925103873033953620530744394848397802882234240694230354076120024708534563838182447877387211266998946108418966876934960673503821514633703553513560043821415899067958303091092107318068798796414820043398307541021642855544528161420286466256867961588655378083027844215328845061014301436291513029526543616362310520077953207988675066501371480024076567951586141718929314701832036357099640957730362672812649886556790598962158205648447365974571585655254576646254924414684532110276632474834318872315386369403763873210689900383356672189257214654762341572245188532064138328972320324063584624741492219414563673015994886910199747545494155619385220099464411738624553059360404533034867847080095545709821427126107851697076750701905938421230584835970672384201997171078724028828803372073778303322245676431395457650383955872135779930733648434789125863340137552750076944147271287664698220110318418055180707476801663992320071596051112462392361556648872392381587657663722219157621797813467091661100861845119870512861456848497782412036398914190449170260559281102529888293140005477469699640845309504546858597298776755389841407356259641924349757132892710027988311952617957306212104652130665751087489991576319984804313074130928399114210687431967493200092370630200994155327767617478588288170473786686582006932674766565455106161120846259782545203187739309969424549411068488169597051792375501580582871537660936778351063976769028844842112068198009186077718239461616823035119325393975990031097135184612945396042958827581328507382606936260190196241882826447450067012883794368368835554001702657173280454111592798063647776383448138941993737724705220558468294930100791908768874028338926106491135607200934863367194731716788974051796874956866497424648150464672687683066146571030203403773200021192363105182989620331146452936789561275718837301098454686746402679908017487368712293915467426887942203254411785486196409496790892683967530977679752678941747026283374439985532850195416504086260428540241854095305474539690628362454274893687536731993206260682703367864067367870169874221712009133548978651280756726131124597838764042669704403915940242821709697373225324994638132613223799446562591040227050302390662424770357880662868067839426815830222708591675227523527000339492201326002290348316714787735205201544777937419723662893363940923477292973009162011691172220094955211097296156798425432356061782418229164417360550081669096382542062771060223436853395945598756919793635717502781376638360278270476768726865592183693263424951236834513766996918891785951982439782798994915480431884842025123992710102608651237784573832021878693481456555949528643181756752446100818636025570718352182384586682954691970661484833753052700663644223137520168249893248638836747264939221856620857106999525575195310364591387278592483172930718001555504474659942644834529265407025462081738163125884674765639487457066662902755984736411959609943422217117003778485173347446676724915734642193976487351680815903143885627388625664630302440655889107397152405672840397869540034513403842101534191092369354892619989461178127625729259079365274648488310358245738910448890004588968601430336326113306994157184004113831253647526322507395566550151151764721932782580310334524253339775709659641727016376376643933268690128609709931073857851965882966812361865097294274230228931526908340371795269040992518588562148662207954992604390957784784865567648183309294425080992433900087071264284589940153628755205318978595032034259250284124514642326337738311993356530590757517745925538066238865396254296589060444557443465231643552662842793558825645725405532962214763687859450131108583655831728756225475959007790970425521733328345343207061520117236232816190256722437328767921369207843387978642204036948364472244896634977569269428749732593570757795413899873304101428762310390834494371142530366125623638927421748285226573470122456085757753234876418457928430953930085559958232187482901381522008338900524351496843681721454376549508285331886321986193132164719273008861782345072056579141901857125495061895408924996832501817334308216762107589806660312317690483247166631373453230316274477805720373804958562344408228693189076096739158936370597812374932753509213755760891816865459506210759424655930033595350315296242712067042940796360647849286796839391064921109303350746940241143072535147650893907527350606585457376880149735846224942995587337944006961464365236204413907462184890651870632815215767019787627179527559693953397091774938014706270372911526915992621254090414756324327103282819192139905256775802225521750307639401760466163311291076337122201230973429922440235643588253582013537616094068132391852933583246410478892580619336858703019000792588991962019020668106637744416703021337938118064173303928558272415598819395426307309089473591277546803829315891602245647452876635431020723381052263622087492824084292325654079437383954832405593704713849151930342954670291025095104807030514308473341691322599219334589743380534723604834750986799489962382200073839757185856966604509169513510729709813522787686309280411200637074776577707747013374612327579454030426462465312990630502437608285685778344890912480663889927212846063190487683728986742773615615770521552091443720268546306016503691823124815761278335191858029361876584507517910172177079164796240231458197484237182769419495142232688801495052928765621914806394726282190779123253878268140861787594315253887375873625241888527930439019347512591390901034888581832339084203874279529753558149882424051443492109931808232283902633175552596786417569972612599895921717450952398298705979546632524885468345494892899812208858590337412327720669364115277722902665955605392704436668561417576467324784173887253127804505456742957298524178546252055776949725168625673494552131570677009205838100358705481976505838470964971180053358111717340574267448108791844699555953021581178830527279344115555813420675877233541967438099077721179451364388839653352804976207122554100039764945959909185978260981059413051856705484948364865884713238513601572911315989316735054115049507337662346041887964094061842267033760921755794971010825484577623822550251186838979341365270922074730402015559394480335256462889157367952365951873460140049286258112854017535358288832560466007903762205333344539298451805785829268741000632355783311669195090739963477174095149894835270497338023275974444661556609242999230743250250378651289840126635711562490309945221628141040814905225731417642429425382627549851329280743739206172116502449935491722345283254141857413934351660677885742372206718588420464964927352270808732738816893960861613028979877453670075136786824614191747191749633096903743676948599479563482372296599620103177899528573927617954000619668620954777146932109626939598912755805329428905658167983279561815183785441487636128856422786402726394153284441645564922318473223765123105200090113095334492381571936678440692081249977836653970708455344286319523705026892830987980490876556541367142912439996224849924701463622081620207500817447073164779880216563740658774071854103705432192729902933345357189151789460089911751760603393497500070235483809408724710813696262140409991093840201971205222836883605890562568219756208454325629961489587390134640094041635114955253038510577679436460701495542410348118738557760287516572891933762487788301560174036258276400835373345052486191007363147335565864498524668543471423554482560972342433488896594762227126272064110476095451668580270544595261924698650649060803156584222743001098870638049735538684341819763968355408103182402414344569960525282878142139310991605505241961723297304279057334809033405915076532589103851830093451093709435796906229760078742179786553657660128309908302522591751742531493800784322216608486327791201176654023633217364275212463258824832285719548233918752869589673764969964688658073611723299768661469819351577148506369160531020156801053857586261561835074384233728544890750122272551635913763679969495390274812684738418983981715717932208363771775710431371980102472591593856142459395315240887812297777672910302692602083280034074196662590091582962535220308519774778313434438379345760471917130704259896363983566491780211581205569128170499638160268577579590775876581925795662128250394028142957448042827799699081892691315040005103703728664220888138226659270096469853952892297785088732458488563724068898622909192783593984446815382682371032318290261389514886015236431419806569606217056486830149439627254014830463665409768640713842980001972188540380993253983012860697960056678148860149133605595869498261263903173274720917828434351997700254548415393943369410765819315152871288782817139696279477940976003006426028780488460263526737538077296146926850865491884336632830070557252671406017702253449500722331736485550557110935360013259551173715015411245807874413801975918848508843582150442708340586195649700687082629856630855386022263271510990450809569757110660758703075505961195419707403144395930684965571577849096031142860224771207589188876564384951066682437278318167250983372197829393203241875127991151925645656278018981285106251263384806541697137151928650572400058341693250686487207705625905111498697322692851717807371790975737831789188653557582847692150940581372972886111520711404554123603423373076578728496961196539533203162127543385499244059541316917582443894143969129217315371033184778068467278993972114121440481442263252170139143259375883761536664270014658199512899157667600132736462051606178039077636619749387240915615801589761478045859582223402597722309053214663387956579640778217372587103642300539736961980235980755947655651648594147292624210801468622340797522713712962892058964421700977926829717399337857874002141890012321766305768365795559263861895381632866978002812676079416002546578636076497204046562705837084744488151398878351885053908815850595932530855696364848492125907266803909610567795415890365133711669811778171444705095688406466094199771869893336912696975722079133867420719434173078509713760400879568022972811306805573378581610287689234391137681378145584648971597438687946624248431727960737979829975486035150127341865552949865076652435102298413878182962616699601723169604749829165912053403047061740216402029118858913525866948647415830988083930992364353862973095054509777656468522857580758708782262233169178337283474579165435179085821940346103821996193784872939772740439012811946042992093360009019492473629219606608855541006341316423037525658596472348321252140065967356496517867026142017733736995824834398721162810682474632773750681423853384796269722256503606163177525315113462623333766179247603741143588744375850680422806436974220475107732281986456921410558957108880316467583922440662547380482137577331237831174942636056147342267768672780904652404977878433261565061896639204032692102252548385641023898286619892318050778905156528101262786642626594902673428074969457776973384139423058517676425048723957431197887233850030139801068290764366401096667757545652114580033522086307553681860103004843202745384763622276439711380398470997497193564957250394039794188550944134827178341069396520204806740792244909049293303305894071860880825831956160733547643373677231985127600509626638178363350775237922021948943735701676278596810628789701871168645408048273007351826439688902183570113707865933345349302214539835228932864960184897287300290268569195969589730806566614720110191551686395829732355316057476274433165870761471381234612200758555309164430401812157555222554850404892416035590375776051405762708524704761634887030471612858236670324309449661187608633318059053670582689876547282451849504045883091501390327287437506830237675372050748012793105226340614094837938829143236039177122158682145376781972862264349914453420189420487553769634579998420378287788439993694052099789585913791912022437247140388903441262464716078874277697646072327873011811851294664362561851026963404961360003070066882191684468895209195337108708382282928008349434100784677645037129980636731903978118647001613585963627442280168518514352358693450503468205179494238962577058777555497522488833685513806019387691487545715012723405341375749821871060166893036161108274101752087464033750153425644705892062272271984582711852002148626663769949777709402309102751212491845094973316169127232541659375933616134799721165536120224017542869274806179484370787754462626134407365098699848607269004633695062807663328574007709308209681289264918414538959201105625116415983165946468642303181251088271340121728747938541710685476805352619557623823112837113519775833472919982709312038332098242471289148028449035978478829945904392933306352102801476631544854169806153449027129749485981198862064185966519645754794311763634817411861287953014512626067054482842701484570732255345462350864489918427164180469864264983613111492246924746888345559125296644031299306803677640856259688888545815550490322421312104062220782057198080175893429906110314504814079660593694183753467382875112116194106505972651099136468184621945012453579834229649684239315559145886311149364082289978728455144307862415100176626425224731099531668357155223641328284682109933417240809174082872221823682656636567530574889985334007495674357658871539382810090705488402495848453523198337418137726125892363307017004953035070062542308636530142538804196857461991465316514685680122807563639294667129189624341883967748269207348790523768797613855033873950803641304443696841284064933515870273842128622582412520908837442444431673107153657838991243357897553631611451125977459787487829452447368314493442711645208512154724702375659217940225303583185416350757125679829232261628546907118947984216559528473360946176730725633869498895554855024312866474337881484823021106048065736141897585468084148122868467762312030821668925772108552885022734772208661831047856765318491034045661356536464605781687621410951387777334889107563457208120064504161437079682853915321875111343102598016010648800540276320811058998914013178918457761769628462760615886323432495893257593376422847212926497855788621474190308781322028341020586966713621663185596519734335456537545905519704016349156149483915801717864707286603087669377230220964390044051907167716940346002546904481984687746785257808686974793320374368339434653858535619549681316553848770624976780088089641070363425563906329446981427901441982602996277184462520875692647972389396669534995164404852294898758937688402449505369048463377965330086308930586808715186911218967953517844256200871307053155480572974907176064020171016205327535090412513915368007916033314412708931262874863157378409325571671274932370832061864964371304192267272653175726330266207130943264728717211369231611530706938049046652506003023442121222839397504612244639489567171214649735953716489120946170540563129321730643745795491596140641605112514882808876358711839801578183516106064736762417546288021523537322336518332340751252860466985480354777907803256788690094040189863280709645628549445856152218549536310843931931511273679535739041975794979534415136173152597148121615305410476361147521292577292043117266565582658764323259212037491165356826570962806635614504520219816074774413344319712658311749266764248182405051577053714599844188499316528079655727130189396505535789224085056809268312955619267913113689043198764827318101122720471388062883828992883947747246709768819347682779115538126833164991627032680436120978167400601495233804364044150799355288629854221415876497556964159058013898459757595520086735771571935282756550517609435411574144190128634552422286961835297364800518502469716528710905564964792039826526784569120955984395435532118501204352745297177720818374780020296737389271145854548781459599272483915079330354448956352299793293275193670086614266629500736899530390190951699626584995184392531172008639882835831082877823851786199017225925173272136287479551423653474194593990837075617133037610020017250802364271065266358198167023241795498396360141278823169672661512409764415124490382129219102973712766999930978697221120596049483550284073930768329854645330905717546049837611140684293654159609432085024911697579223259097921976243722390994710858510946950930690803932664693084719737718505437058298926908989049687722211374784360441355928393713288794182169833164437579532218385404968085029534434630964472376934786028221105703626300724181139584750329018527576391359385974908846382661992324034698481105839915388397706382725420868145134742820051151264593731118095828270084494016070607458152989666184282880096119948062069901583971192794648486111570086947970409890620246157777904656888299723115067801082483050748392608391281611039362175723006248323737256364268499688759696091563082276820811307568557637936042031861099812207258138830859845705232060579386701556900257272103329265174330268698428382661543710538642194375180190010611647125704450794169070217796375450503314379863532806523264091098872560589960630544260271890812304290804813496834448330695005102199533513423996410585659462452219650854918410832521595448929493686163200402766819451287730456398441223163094857510468196597370083086819186641583136809902428965796150282748641014405994326757210584995132673545172557687339699715939239883521532978511471757582782903342431622602959490831826845119840061272679491980659629967909476988846935830448399736675997171004935734238173654612124323138786799241612114133781634262626427113296520528576364950414321826139726076406714736018363220023075746184946261427854524251774467499185443751740181123535333245777250829315206782109490111209592780457171751909440331498722286114505064000496692193295389775598878675751496623989498354883534206863354901912866910786087274299798225596636907639944616971435705574087353665541352204685618017886167685049669618635192807994312996801999535234725996695654640474154730098487517688090167832989403640183458889157448989755088709543657792780389443463805402286953528909633961910087048959747560366515561276481443985109545796684759281025743413650596505079419860800499431350179576872439225064849917081601078192966668106147476667366285428063264627070411588386210440861229951682646618718874148248434050026588470629902846659333680872051727837476018277587538724344053048165370574924363833675150363321583511801503272160742522699206043942099274215642538037932703341258926912089691893868990199303237032434838324253010725309570655462244336771646120948469567787942057473270698270057445570674847482214403235724664270488386772464468756583143156651622940791964819209560461863998693666784979184081939927872453957951628157382614115853936384279242204247620178789438635506957079389774424555495103970327749596906396249567553635056848741817438083263905420488955940712188160447895494148846640551176443662505487988444432002150535017889609454343565375295286178936764517023041674692692146813412601289335566400895141637529308517626141920221891211451263919728507744597903433087046934135222468521430768828524747993620505310956762453516968236795301993231878538832557482393114448470162661966392437474047883807364574160235760039543636942684396850620768681261246837925708045188167423901854777961538428818254419003752936218642922304198986360383102937982451585957939182657984938076046192348318623950977261943732819659640152809869941080974601297285590513571754168919746048353378865278428946319491223695817875658053022559112760344642670846246121806969287211365943500514857727958086517382133941713071110782615539943736764164564282661855462228643570997119876244972055626958085474680981687688498010715231333876787231672807939627531305529334691879852865312962654551569580474972191311828084322241910360802499912462009841070733538683152504073711289579977164350315770174097631600596818166265339276987517480033135636157935939697552077274214965635233815657705257920516031180762207128378096289152811648524691783351633666426687403875521952727325768857036639164800287888044950174633400043210649398286910072256337045281778794982654469611541369165226897740541349285353721220980313016381217304379083829810352039998641078052066733303385922439210208986214243745048867751759975673423478772166961742784496528592998037370741521459445502398750901224066010334326360662285596399828448057730926370412962150499052391048410775275321081954470630262373600466224730462340022535244755289955922043444363157956422959547843814276460030121917663294416889558660327808581163089164988280929876875660016823747743560746733869294889183026905907689057501066025480786990575544148021189217180218935980827548587280012423921465362191301396344114622908289395186662315795735177724163844465015176001696086414799376701756410241333729511424189036390232587741196547771330523686006102635312606830250470050344535274485634102164357200124612335727204106852014772992200066841307387393378423173442344522797535738909170764650403375554880343110058134079494195036557339190952808168796794942724618146442039656263158664737843179964484888243233597754488419980819642879836838047120648879010470175630752519428089623027955909168208908814345695539523225977266311905523787546531596492377172003157781913977586209730621295906405778691901366361457675859915368361691215250723847255049449327833712026705022682750963925287014822492772964770353486834588072764058846200300296083406366931190795226653410523980002129439372298799891723895099497276474686591451132655483122055308034954620767183860301433614837415704430318852748924362778585081015806751911584010511293098783006946920127899396250426938176373051917844924130354601360488590320881945197964518952762301722479616094562989912579583775603322343919667857066215750873901060361084153649816071533878497550408756927868098132403429274874942926990361381779260314216999493755859066967646428247594598825133678427514492607405638809494843423543497579837096276285208715543231397940838066173883323708413471700861013143591872102519622756034117033730520341127441520161369024271309825551080234314714218158328143301427357960232285837455929250768777181712713954998260734116932659522693982326907185347169232995129895031995958952647220456125096382105069394566003396827285821497883481097147315811126404538735536377632430054748700228020187208117717397174558335875163149631889258181428751346798046807644191892504569573112520705651339456962845660215213212047084418270774339109216366772263998372604419394715106893786950443452201708649923825329231321517174389901966843481646069814583261794944509576220793091905983228281584623873379545883166626080900559952398887140333421419451202305719465850038427234549087902228193073686384291086258800974001780319956556812262919592497511810421655165447241242190903717141211503294878430728595128277956585194675754756626405001425700293277886413614143159614265823171614666381597131081013948922623966325843617832123240913520484138829508288082852520336606603980476758679757536546344095687763938577186573941864692507824441847237754485907950063169489953075760068960694526001597833203721663308921217397633075178892364844213533362404679691852394603730900828296229034606825844767512162984140081613164885360328943838578551200055341898939715892749466542045604793488055989003711381605165065489943601969864885449609349758071632565742071160276048132857364138771063380174335035509990609241724831713823312212995055622697403756351343051258572698739066071850490902426536977053133926717846582305432622876395793814312326469482458403241952456300934119043961912525085013519025079772930638334847299840578307224550085607979487601527828049989101699518165684306120639684419119546583118494913035544675082177320791908214616650637972178400055902696747845950552079230152765998551267456290077791993176604844445080297605638149466402600309335384822533002383549124735280954185164844876384911159720992516077290453993628693880730103079044945390458706989304779378913785227725328217498026241249446688326540343551195434099393724772336955982442400948873525817728626459673344769537190988514688779739375177107535302590095855445371168322028728243357159237219012458075193728240692050415630236969455161573983286314174358574117332661581031921539384513951975091197429684628484347439174814274977987548234494510089578030718889346200447247972343783019899616437011738591701902176260793455552685049209731296489521493034679594343222741704289859105293795614972778550350321852013735925325444138436937005875482100648086038586617408093009375902734005109866632057302155421630286329410331359892686475817114666041396817708004969080866149998649145248989725115560340218965451344702502008397602351985774961357745058600048448987736120459176820976159767718020363700534890310809695628389461446836528444791371754607531944195640959682280668819893894218567888070995451190114102123183997383902014234598086139047982300191878990571009696070985218202123068381846228664678984670751090643596722825867201001431618650240158570191630513182436093829021903102454480707039701380070109326056849367602603343244761136390584784469152057252369600912621457850604954289400101031336934108043398810819393349575509327030965888633174251346916633737127232440084219200395183994267812223913681248188837552257693683412708823511156504966358146597126391721360901663972417336741209862902300867031650589267040827879680182072446111297487206882082575643290411977775249132139593872939456538505794249559583762153705983049332431321005995113256571276520581453233745777992301794459461316597614233488021218086183800943634401194309355789721531908102959828580250510058999656995303204637854132213873982155839235322020603859751513863658841911855264305569419028613281238184828074296014730920246092996896603435531429773936035135313404209165063544065383350450840484268804254482874548216237298330451342229121030540168006108386962193269977504883838103437872456320288982991871733250193177942729187920923311622544790318425642421694205898342864151435357075010554299638982470101084685788400135323015772805494892627353718664774630546969109842495349542167460702498605651634652866726262607990172213939969787038299539123573988951054753961143065352405333995962126072631347773785795143255317035522850460938325781869313955190828316364801134576790414949554328186985300156209290141120492057471765764909688052506614336893416380764056733982229181246021795335242268551283807373083749232748991298055368683505995920136600186886007203202970110734016399813003447027073362781507379194496419173547059894838300875469799538955460496000466531876981557660522641233164011020215747282005626938914424568140468537843086839187038955617428772406697445883187247787007172512876165921541420367462636090163292122700664404412337769983046727089855187879580401301163399838032827099975125738924885003758099059564107407799187876801737856491353643148475051218229842813307813827741325602183143060775754516685782432523345547825917779177982821756425920885048059462450284518272303117319720941012325958687851420243433090461315990838420246206759142948866628931655464228412997913122606611557820764117157890770577790509556059593013084189719109575173782340697732813743435762617109803110239118216188411061295098320674687690078827740702506154906522340808485641881995941707135787945205258732484903630678710168715113413882624464258433097569387012146364805790244679030962253375378671291461011303447512117642231159746521637588548275052251165598419978350350149897551028105091460754126646734273224355491024591485084847833372017063091534251761193205943871853312131587732930722305741115730500436624600504649945344516422007860779616457561762607429174574962024528394340091609046974801300265463442456061633739740445101539280865240566736628515306346047922665000416595411834767842118071252208323253824266992586580743212907785906070926378661665845977909258546429866448179309051745090637345845058747191923237618258933998143631511996362402189659032090379683302966529932744596128556098359379210065103520605551813227230577839900168949510948961316928264141514431914069166036540388853248937667055284730921591403113033179479575487172033311309122944142974870547785305983035622016203487213771304287854009615154044300283821259957705271383777513817904252417354457120038189902387129767323628104794335476521334239826140316955993289886793052850883649213511203643791972282625076187650145967076432336092087197139484527242935206426903955775442182903859254856475256659125816389200582436927566079643192920727806740196048330948216525935166882739183913260655805307020867230223231540646944266799462195206994707557890545427548068282958229450045779528204587951865323790764610523613832384804735339039664694647693120795921702079627931657386579825572223123849555182768575397271053662582067327982680402252691278020699699326684537512132154772073221029951639422524437999465670683289460754745929432858180694632038233470530534556658969562127377778124125787439145826683990124978475378282884600486116301291170092944111315851243011318108397674462535277023729994472308668399800509758317481930638378623175715521591842949286766325286386466024175132433729347949551383864441439389351471373119603226763611757422358081830992839617854964682968048159545591115321221127214378982079939239277338119650897341349503950936370160098890338915564970521220464299667277042401243417120905746507601325540635272274537899167613377893198383687577077078639700024866174403871175823227740497840406250517816794075784162551548815313767213069965102785776348250981109082107801131083801341228587700578005120089207246194139437539803635806737663066234829768945321146809655332338403003921277681099379889682489877621751306996096004464558943310494489706743106550681348930808390106025605966737005913456332611695129872618559686432954187997962892486997283760572742552687103689913078796561447029013101329997097463189189333501316855172657579343779271947298315870304264022385018724982921400016932219104112173262718828049755420969264474265998448194563442643427175131132526164901162863674569035018629392596407544715518944954393426927096471335793767769713383948946138929800523101445014111108493510297247803640515662899758139003778918386197423459427301171566108961264139527376496133495228519271522559846990138846629100971593521434674060905001307512463671575678999929860038005197847644007426951200207073002145485960613074271644848734361580314264690768508932980695769785851917065851090890785361576557541895542387840603368385698001613286519853982788629110905650551323163243959257522375181737603385481654618340704897120652637419389855364050055996494216087897036313730113161088485256928604924312335933930854994063484602387567885782541767462291108738430745281586932288910331192313637709444304772822464343092788581765685417309102851839329643232563730287422390966959880130118549810776820375824903502460730354765239436140464932268737798141469057708993504607291445635601640271824872152094407851899788142051529951851495601458412421858789106548688582418377300713323539879404434327503586505471740140836881634945321790054709039941973932921045062684331161760619758777253201090029274544965251493483259916980122708795840264534473114447303155668394444985218324929648027053333774259256976778249279867808033143052050053642489005411249112229163094159449295484663819774496276923686545327147582040880095853785958993884868495503395082049850447466292199319665939025955450139453304688866136664533935307857983792020616612418705438142968491882514797292189408168771402815615627047281033469208317284434011319323166788399732214055795940025825350817675725784427497017809491158057928341406642371321436548512787251742926984856437290669021365226449979495748089647179889505991288581971196555847831496499628425897964718210342656097448047197072619131131080570183822898480590303732260377908392942780698822569882479906339435779918087909834273100487667244731849550899913274750706857758229083663793862551730078281800537728846390465915159767301313981696254936018805082061197358309422394063239826428060301590517848929239193057035872170375742297638279400904643866517873616478766019988197097643859052618643481134414072512817305394077492662062158239749084566941790031035165433232588452351930184897668745799697509055362707529171181446983731412615457589176139066645939519009328336700425826282019112640792679459731197704388948208899883836831883788944696055070804894522448626691688063230212592035189770310022494537231306001709824462726090576535306058575789685125510305122341106197363091625462199338666673964661939164302863718751851387477954411283082348081813145071676466321976832381530113716310367595218956021842503344737734919786159719572190586031364062254743444052614996747370631838913429745486297229537961436600496938969936643735058714515038439972478037594583004417906751780096099933922949784554718671714942981383713047287145033209805146836398907152192438289525370984055825068189089753161796664592439552534593845634663730234947916355795561821588856676897121544770880905687302838706574324547761400351074027682648016007389666514769015524382944449261292641959255045300822987795371072662792933586286375630600476808332593960907979432247614274302372996353809156233734901245661665064145712959768125935251356175460127867353039756750423635648825063257394253955670682369769241252075835228036374573096415925844515402803177364465196314793745648296100737216257642825957710397429711912482858861449328642219732381589709842587414644462099120584404329103776306654799598494483975774299134723520671886588462793045952742438105834542816907159210977323187636740480958374062609102577416385227189220714039211100868320286966579286372381001625547831160610668864013786122974328671311010306405736991389703693988180319798560968169843711833474400862873921893556994285396862653471913760573206583825657046367714165362484910454982334467331242761605446612980598841274063601667349415761647131866129056287096501772386455358248021654694634925131886293807129785397112350477622882636849810461275486597967328955978663555373856692353423511046597980852609267077924258457611342953258989607538571166646078679167770650362586314822518861559764845876489622058508183899509727463067318178180085375971989437493673034393935209733102843308181599288484013929425437227315760110681860442618908562916770473470064823666323007079638820115237673391542616793384734288522319989293684041404921984635841678151516836419637863649432274682394848357450274468644147355484214172344958485127934680985961125392613040984315247689337137056469464346166244112126621759450974713390233504045956990710767260694093981065183990194255001971070203823547073242992227979722611124348383057283638431626116513230939343315432254935903806204492840293621354384592370149456279368092654254138136699245019276293332329092619189719975497410356295754670793014727444554887334175888438802526386878594547708777700310755900571654915333915369111734373692255948590572719656633612786879526912114113431448737574745011475331706842821589278735454026241058168558933204035835150320196718085596063236537035648135912224582621134098677347198038258611479720299660830727724000767708282537748160721708749082295394023805329421661308638900192056635418476740965811829532145235534800643374563276751246162806314467475909667400140515051835747265036044538126051645506424196922501037847898055875275659044152157344053177721745435995886971559792451149691214736287890838065786254269633800339448497693053257784068796713314325749805291284734617516075472731921023585817922381446961743056952243101080116803165126084208155964502769777124243116305166076665664455888278083395561419026287947571484784279683648465080934296486024547080345927633398954029043445159210982713615676891328493953761066882459708553235364699139944199847177867946830996476002721492067573478072700276559476200566230824167706809277342812195836584773253622553907127992191092949026923358373744389805459060522601196292147583760533479995180656417883550912623298724991798652628342357965650024766354520291429565265048267803958322184439515148361420120663719800940788446376146349113018505831015214267878623427244509512046826204053656477633238654833138650813973578748241563275770264742616792248884932539195814949991375657721272242321655551120280027452457704351093515779007848266739398124938422125110535203852834903452513186929358889320503174891237475421342105361691360323627698395952865856354555133823784045910517725846975045112645590899136318051735163484750424186171219776995938322481264020152575279734445764323171900087372122134339100226951404824641233013354850102791167192704762914201082506501054153737235518301398477564400061550562094662581145217923697268755514058977227080611431629717481299049519359146577321798127521884946980344610701501549718912676414839390712717582898380336034375180716314302599280565030298942526449652790743677352237592543772693096578301792708131195764005463482640981674918232725391966256454656188573314404085176903984336831891787038017827657381654360554625456496603357312595575110373573021873519022880507919010504173098432374651972974501205107386522675552846787773491149853717631807869491407243134243169803670812849501042138732204879235751674552757066437765119314559533365539553624021769188942082100095807397716657804084126655040546810480682823673714281988482774111717054752155777654116137206471757275466110708741976811357023055084395874806028837783503425874607554695280774750950580524970775247828767573809151903584575950159435507848787855607945238155626989723533467384422101414128082627188529851870539537738228673785540851877948282418460809407460600474023782021328262932055849620185258010584776486600706192357614178568530148936794776482017442482063870242448886594405294767694032261305205962884382165142384649186253412237913199760519593655269728441397291793950247916271524033843689181704699642179090357425584124121686107530880772781379708311866851337014991514120425959741094523917137210049765604833420888317942398036109547881939354529630396187602542527261808312091730906422651103859950976578967573162050798592395841090306900210453057427645549674767469809544170308876903046375138285651475219832116913172495317910710871926614190917823655773026982132649042345344852107771351722945388095933314755698617800705568001116692836289989991840036157414580390151250369809560913690038929970060219525839294086763102687095436532424952810468646572293686319025301649448619573342069847208340140101700892735513157339936260772558661848336391225632017088813223385287233688950638074246020650099564571479493214981439050643062840403146638847650436546606806996730460271186269601785151640007658992418342425284357190484396909151461121266764936545652586725251916904522857011205094506229287326500070504059757738589920494750748189089925610294055863643917596409180352075001580049198890683859564930844852386798476925030550755785708793144246472722575623747937575762352677611535517493826032034016441690925671375832062012715727999949246359156163090776426186119628609428730243085035390762548506274606773070956924563553477781532416072110514707846321794196862042632629844648051819940696709076312056026040593405560929913800851151603147259639507665597318322990832835530081910073242195891712608336578624758546794600462521920931276047373689362916279472674374943786669528640004586976399822802960333610465890782307619189400862607383440341370620486228869447018610583851210426072658007133362297606302970468383995116642179510707379232178469731702342423664915922482240232994928371757066390741679382316422404466783149038111982519992677445947458850729789780584158858205907150621616571507407205340154096290688053510460169965979248340481851061000690871661103450808775408335882603341083879935315252149553410217432275140210125019887233941702502447123689246669658502227289114827009288663680982087676246865342958212372897236159286917130905479837631301753534752266350756492186456373938639748834982294653346599979737340251553717499421583042950830952936079406946961555233502150756437371758149824709880475382829435758458220417620058883267528148061547142532571926620779908498091161763033248647322373969366832819841566427451974855187790526413369829712083533667791076325783336204252981319869354993376344467140688407993877182971320798113710257119690823773126889081099206930468909492731596506585688991847575984985453578454949591653407656498811012075777243956151464403581395228614722394558921947089062948226898937600670875153554702744463452199046161858203311637244429473817444400312221761535719719115396545897106704834533980564762891003457678127579869976837049978899639928236184602169109976821199055083500544754748807402033930748312913588193805416185895623024383957872599694681318398768774035812620513759444206119047816588008929503702964982749451376425036391035605553777438771122839389720361431375753993528893228939411122147936824278851717589128675289753001025672869972769094259190559378832741884524311354367670751046163900216535837938971588938837622191465265581823618516428122584301845061653568386247222536289278312481014389736553312707038872899922842486900843490331120461131278553765828858475189535454112583848129244579446458296346067990466760474585098883931530967595402635170322859154318629608929860357582202837931787375522002293693188657622146623035035830678569460088951249406112783005218115397854918176455248245323486974702561632546714624154535640843284919155612821417820862074833616728744900620950592556826636097384040648917328108730611159264772467218991582468086133339357389437010672072825570323287314768023591126157808618641499001809499813215198834721161683011830079327178098347022123663415603706842344010221444450541398888008274759255450737565349226760405610329477912002181884498013688144105432588277471506716044690427388694681457382788532965899223168537438524108144628729380809848077570676772946934647285993640683473599123606109735223993592493225309131336289267599899633679579923057467173461840663116333093091015186843226058779102069757133075663095245651974422881039610883910206531596027586534652166353492423068992026185994868667185317040828299540137554839135341818499606046588585525857623827651768451184768561963656057814659132036320497045220173705697671600561456813326791493615675727476093250158814032409207888002150786794168034276396606785808984719750540808115681649124235054409526508484290477763428584821430158790848095105284033866925432439795203959873268384166755904540874851680034305661166985356026124640008858181665398889606071225588370963879210263155174948658059489540103146783213989068094770827809868900636292580564350668548088012596768619088146573316095060833021140096168068273439923870295732115362673572682631113557773416244527093578854166673505184867064068777461712245667273977218174863292544485802424139213401486448184214567600437384875572890698832828388548816748409302952306921999106552759190496121953642506561344069910658320152490898062142597339292920731495556132547520618231311587440931293770800989368780331988634058807765005239825772841090720253015590168358029480603488507681398580107244680308252949244505444030493515229195991531007039365284736348397339935834431403518033949720844189409934828697571464392536545411507538070707963768342885811362564026069600296619415670901142027169874848348850038355684170633507346971939341921518607866544985146182126031021557663272246249624912331092821165830505454285512734911625745250058370266198625237260617671322773110419794926066725563752312079921741473443408551101404680811867331042101053478346046125331138867061215782416452994704565528022710855737281947550309203243563329361511908200486963771006165112294333785619314716704180442285565662858882955019825680527555892201977391479147145544197883120531149144751643133653234006952193214342890706127789525854272194149697351584986032918871617564070153589253627070184951840584511140045851954754995584902289796962338609201689079852903679306506242139092119404650007787760425426334764839306343253880319515526501191220246241158861412800249337172278797075725058599798371231142101667476531222023914346426324758140402083003357577019690965921497583718401599785825475201722527850622056591320632230157186119844431101504274605811856275953986716897701816787426451122385022772661230205987134519664541982529315375466608347363795500705483751719698523016908659342953031917759933091831247889766029793522922035989024816188051882399398777289506204378922468727744893439757058138427416713036840959026842369428922405856254328566061086898084017002541614085164053645874903375978839064513300492301874245713100643843456536306762261955282235896850410260195537883640858270750117134934946811176771871881186675146239208517884770958820189699540491402216259093691836431869469431315091229983311848865931256445045205176974269760686319494143866938717193499980711062373314043985356153307114713990177880971212935908813979785242146666301938515358105569714535010501542211728635952458511265106926518735766003465914480966823380364483422200988954700917412774880228872612052336429270057667325725199678777314084040332424290373197114827627172527077016555352536347141736030846204820774418361690895978580768950193745098814922873534779902875064055045681954529304015872961111077641249495270763296742956879319655444337534953879312359776224913728876252726384437750204855936519616674534174787893827905367664087307368741813809060427935733580865761963543532208537175884565686502925465739003752035841553610010478357678963950268261990312284629036623354021486532147755398669527289264586925346262000163240621276083296016616657348028910320815153284237745665832865284489555333936837602765704359482950461446333320941886800121082522533046495231612678409357010036743287119586797562337488344579096840928202431334686856612458322124577927618940962658559182894257320569287724630015255229921824247585881995792298340024969516911126846349358295940060412518369074043037621049386001119710354029195351854864666252188075850841945901762019623614411759727202695728223527525885609998914487009954483315567868021026066064975256300836871978324460552943561751465169103916415043730289242681619432721671668142981802049336363087236680579536232724350507540003057450735611957395219725162894113288798147102123596981643491960946393891383348545711460108726485782176153516720816325876548007475435765081529660155985913593111926239179626736852435669515647494744954089925181373876074130729200920582652138306093619432977415571516149708879117738586985288581246979374599021174009615187909755827542462180202013561618359880738587193016326240326422068875569123883995347654620611200705647323093117045044564664118185554358686393954904271876777912291097906645054932687906438860753655393890767812145906477418525854879207761864285176971305104717404463940777736351727145939461626643489339385378862499330499085834013522501562270897725677298412167062046866232179249030276671709538381563810207090365320701319830536475972521450315952925148664667515980585529602803090158613607218992293983933864508065156804074227344531201332214495961151220349493580749406091548581067959470705197132979609685958036177876653076235249437049504697092173256103613593056416142022860423243507944171685173012794825940027154908140619828093847506729173432892118155494115387879549847885999814676351065227953326943041538693657777635720650382796009150347436742699838306241847225518730791173056597057370887620120631145519842688640778898321963140079246235667274279448709057434529113956609915871393725306923109749411461019300196450656309988524627808567965984453902783523764721515056938472584571797790989366744026751309311176954042494589882282785655926398506278482051831981603393516598535289803843275053429424719962084926766615775385960028689382838508747013694472728731798879182763327514540467518098377434135962907644328607475534563016508656488572306035577346752956861277930068490668698114588600916395481255742520471767505919903753559416966476513702389517363523374719942657631643633324158555259042794965922635082137922275025051515387392247967926956265788759923187578304323681031506528801356213998750462388357384774999075199138538926046884820713726905632035323686626705904713920048561736731987231060808403667591945234920954093981380563157543816720739556547534710111846258694254792292229414005086597100365678846063263492891149625243088517997940179803810989721135026988553221330052489903644193235032319298860406357387078559632447376313381122211518390241815093915852922272073514787791604101327163679239632928542392786660908831586160028778192218571195548793948927169830816054010636637140050881822746380626865782634028447981572764967894989240979750190703760755235172044815272524000545423549308666174984345159012394309794589800785982926501540497135719297179188562003138866342526322135599836383551031960760644978680018249008161562569750278575554117903685803923225596790856696859527694095609624596131674910269073972357158385570492809771797884287521270141282421921950480034842577844579136728301401343822046236220133958676346033794609764413579200782839341728066167984555364072830468890266359894120035170875502708844231391209943737019270232220379598826181958908199981384117142657629099815046793451876198943554375637243575064594850557209053245485772073716534872458588149810734186069461611062112045862006146071898096860535058502733577036068895702463864727834461798390533046779501857071955956536507679317416061464345666605637861294952209568095367212283025646677866493429226339836519513829474901589865181206152999388595342985659547288321695452304202957045120368017596366767988844177168193103521520645426422166739964287378443940292230994632035364208279078696195688474693123324434989112791163499462031552354393752518137710019080312065865237087393482542907123492872293332640624145417178415672358234760373471807245486040052507628868148751993399963188257000442127642193063518113507385335372274249920482872261187490188246352211913424353586128397199065914902891667378747472451316905814448861481163527689206392618113272256625612761292438964362365556016862072740376514664262405350787829154510960215842891646422862255800068757938681750686729691923668106895586879247251712803058246709135869867662636393525314388626992143441264869670064372387226101309567313400000885307258096881827621162277624290733497636079494951026296742141380097241589537526463327295873259989925983902920495975214870009523403009928953117005763868948009847423598153009801099406616194760079228998776720179230210090075838078810405732080696040925560079116784777251514488185330525793327208541192164037873850895638621284159182302231033742150385106804251956714577080686036808098831379274323490115016816615390078532511847345238506420204929934081008853466437922792650286220819872284951367136631183463898164367420218832955690447716788704638563646653409892373703157217475395875655542862838368229709012751431407334450171072353247266146189794013755549632278586273080880485023398350673580741513028850269637832116387572080887828199403044090879293120362586670114206985449686386660459029774331823214556333530816078795812005481655235071662064231180170023998462996205821461665292740918670852453728396102659622482243544974896001381840634236507927633964602244638624349561155580257275138347080729992858621892536055384015671053014742385256234503033294064753125300510194596626632430725245580294442447113077986938356618461162000899980974902188131151562423792553815360644204664735140690183013617805106762856208531730034927874714725290788622799001230749282090062719025751357580275380239170379224626490162439628578202297040646282767472373083703105551120989383338059391112919752981995517322092041758200000118749460390409510930991500976757564886819618087768953783713405349592250642595230874146473361564363140039887751967802730288283863098209570103220274731647887099233413788085260196604102005093712873938959722707178254965544590969639881025520066720389787739071985680384921524359328554770576889979176542257632643164958390033947081917038651979099522631500282946673783210618889135879663067133502036425934941679702320604547419765841197754738635929711264690456006734606120135841896630566600503049676222775415450876655125569161448053539574615274488622667571613233429550273387749317067564756377624509117428788118481233916858049090793380534054087343371466107787887201226157626034679559779017004737109262061386438806658994045620857019243348566916219007889846945661198863145789760397441856729151515165450671859980593399650810871660115336893556727390786215416629173293827688571060155980837609152307684065185418835564650220019319130951233932177694474599629995779922410393100427636098571248466114136603485952482713192384336914401077288864342058212651868124112635349253266808880880718481159366961314499754391913938400460630472030404006215722527826400564999145242822189839014786389077074572361790244558521297408714770207041018734923474744553783217224150162989103509330165408402032548518475989029437707492394124664539986483600565396052105564338735236719950177208667982992332037148348929497351822457087355231299744937307839318453671198830644697463548314526135624892268329082362194859414970030795982996021277141275674101455907004259075997097833244684985885710344659715706069567380892718408750530577342093812902728353921141925028450381577565072450422890385261965107357328229535710220614326960396270131046661744173964039563150098459345555472070589010727849929833219368655203998789558613336654878340541654344312119721116118704660406442004849393213437062720993294052289672575975330005535330071358984197134488881497206703133583025774763856092745718734436201686472309059338404065197988740939704736062635517815344212779828848365691885514942327679458207010640171966495941826083371865519194781913002134861406555406214800612168925542496660766990956824357293070763705268504813053308425239538414509378629403470108102633734239825569681836017543267601397528909845068953505402886695254680064473050237853008452417294196861272497050841130052030224000052525334815688720204257797695883399021503442293613901815862050846297445552161687704628887019153141103510305912479891170548193445688495584236248150501491245056624988952549118588758449219142479112761330551848165079133445014913300825671534134245396077090086166330252260501834174304491215695384895000315835462617020158343487708697304772931045532926310950334837123683064404241132507388215979368620711026773618471436981501710752526748898743741322091427973767794439950322108453411537400625398646075115311093025250413661467254076377715930965400642203560390926792733574472536487702353592677066935336376994593927690354453261167509371186895578400845558608676853002980710358170199295916443285180954019669030865113040052956260794608839771204710970074501608943580526243365886908083644889587862322571326107014720382960842647648597035866144722845910782123045707124353576183423566032078028672338891682969449914636611866416218026993163502117584341212743371961998388591424680733497796779567529813252029940583825791254428183379914054577314437441640857721990619247555207887465650808668852689061336696803078179880668129819828497372480624402093340542602940712924331478175877929558479919326810326800688984165528315581842918806865372199980860103052293610007823338963697331633702359056893656226903584610368836039486706679059759182351455412825702712891219780943505762269848757104801765850537658525286154963836655599094077966309170631321782444986699264080760241184420666049299273564118360552220425741505319654050205427167408457400946426440893030729599053933832105056431622016836222686561859056757545127214610879679727479973295681618242438144708322992166992159375993395240224361368183046891491089323964879895773317373418425283965401862614547516355522784087440288525085482492403889128745540139408191040880904566384363736108605797787809733821470268572111815564822383443985295589579137059875966553327572021509689424592219440370952751015726103167768999283230407282053287452861479070386948103865294674149427752799842206912040884436884009784180615589562674863403496183663814667585815286067851530529122396877262201320915761456380573735506492946389875932276018159257785657282835402751981927524043805655999108552487002368606737320118549100802880130667455071102594107349239002173976045925047337963944897249463058750358628506372726615382237427309285410001226208960760164789241560201165172911404041849765064153490893501005358899766880214919343574268741258978198582301618640585312293004298067453955299929762831735339866984397864098239415228606580537522233424316253548017286060352353707461830242027775608472907361491399481551567443634463904312554778327077106414623649789685814583557269374850579483976415687298472002244177106959300949921228927139034416106726668070920734213118925039635073784058218579489390594503220808633232144647088004141381459139530106965259341698789784882044655697347172673497705730008815901984379024337624618748691813760776343906614821557586869581337740234804263383749363180172171969643558358658904700039370621533082767390279552722880655152034217360973379641251435301950555412650508928869653554500854601671552878143602277920126356561421831417937248532719401992140915832376201004394726115285539601960434934869597562865277213494080248567909635937502710947779015194119919498165494987193953642297570427019228670471026397944634057897390495667753223254417930450071482482725093790176551107367927684190690177291792511627225786466175482392904175660754956926225058942952543456391243411565733030867230444328384551329818752399324037946177720771778171677793569379265601830879006021619865388930045755445686527640479616225849591072930471550261401269240854120699182056956817791060593070097812207283080736387220200899403527123962220222099234295061526557308867737668755977940459020317242956480882110156528115104434692883321417250508593440441548834967279146947073795668306224849272764160976037234952593864928903351963882525494938882681459331441738016263759098523326440072081418996245795886277332295229788445734483297602800777486441156878786555660895585306060409403974914634063764640458090942193265379717707241613704904995761499304187981101749556855323838520820110039448814490777022690439568245907449997357498663887157895967376934999381620048309049634162425177438853684039851498420766599025372786975784232928241469297728674448726056494881228097213497223331888652534963411825658348793181086478593002754947012412089245404188099115906351912409017386643055584564028242033709736396224533775536591699352930203894654543996627716146072245541835839542056625911658834790247707704644940006222896068756384778489308352372588803553450307093532851347154215570067452791491612285470446480557571674856076710500389390270789237283837522496770815727038436054892926153277121726020335160184305842826840835095601604125334874006727001210956163759911394277106147861782712652025827225576263863920501535236426218290020492171504661220479759173145357780859303774212378248649659811282111003345975001058668415605882499071167747453651745656505725671616163989507655347406938307203052261315075206176929338254557943689540105251098757191762054849108569612438600151700843309398634297050392867092002267516574378239654705014695085328959185876593333057335809979189682439426437610166800909132070414364168754646799011607155243177704378786553128605353120860560723945517286990590805819117450493456624325540311329379962002310009723060693781758632847051752433654132316415343455366924593462340152154140087359105142071609990175005602867431314124317599759823348330456471764263631229927162980604542774839339601169649265811471214927215257939589575201866176349189418834888102352910940592627941369509277551546792644577285034226997068645353967945299580880696548123765258486259895387852113222985143547228701344326114532872172796571687686398301623004867533616986082623372920161854672329684536410132192848479998865687089367395904428963426456167567320406712139733212680891751604355422650533156214237642183129604788431760970603539900510519320745109138110240675857895536993798894386693055489899867048251159945986911861459812038872783983961285894287390846284579584471258071643974434914153455453502427413605461747721834990967680606175921313417074422869375880827998274830731883099872720857120808406293565335690248229645110076029897421877776317123509228699391218509830895239417192473467300084502665947873326798101925311011325859247528699233122392645813619656061695700133770083946450893770968749809399857708525310851581071345842909918165528432513580855740362013204149567920187306680664465442969408214455076618603343125731459514988637442054758259122860440906434812979520064059134194861757500806869235618207710300771977439808399887956428512642002790335186085273693210289502187148367248466982884878412244181271863333486601941246994275721767352183573487888029562456795441503664845885856436896243736163532704334651385615578921171297599872837466084827250460583200008606601914424456145021686721842540890763743521135078047315969259883346115081119344442712513752288659955282068447280304734954779994806253110732813201923851535899927350172971977308256369655168744389589536241669300559445050088169196623640677208025327020815251403712407864996940552415536994971118240587057463095882552498788101472638346389794668405613763485713396485669439468084036202852637874261841320598407011006135631735652182048417673491980471929822169211818033305916812625876005750826667667466196680576017428868482921199035252224603084902829275573631081264409811000140260867380227174853447027465006214850580404494686172471207884707478797266737574840021357670497770308884894106241219771865396299955221690031990342716985959433539196784975835937125870209000254034063311020180414692364882137307783649904775904106988427121037302734353385128399859772293093238632077772247233409483313149548518622391863621919670411151082882293417868471127557918932206514591266850760308257053079589592001637862731247772701036229637320908682356984055943060825849489643931484273703155879579262173317757319650053478978674372461265703368422687655580583807595655772653272135728783706883143767663152792082763448212300613021890614210325524068695484000017136868793306239312940621259971497478353767314192086888373701080091754145022117944080595780686005417369848979532839383876159824433470373646814837571975874396594249080331137850664396875756783353187254204688432653491961612480602097193799709405012799106101789918300577236248102666857761188671685075474781566803405806225085273958204465819069192037437024364347892944655936945163612840845552089736410732013677103175915824075530539479136242226952117208990607069731085874625470826231144076065446539376626450785330423318995432729006057986606799059953757318537882086715045600436648204112996999231628578021997582000526346405504683732498180941181547216229396941882493497816895567632933926838211968648376267875661537839772379985388154714685398917590575734546104172498745964372782358246038390877879344493034415795540301785719440956014501449695843407935298689529179049058781986643820098173391486826138204307784389257260355153918093491931700791684039802087088707039082077279190233770714195567259749588216074051750075820357607680754598699951971791322275682060891675026132374323411742774959678279027143309859722860287213850081268106475973933244722626253046222748356706662938042705197885777029844792919052476531772752927699407916504681189293232112384915616451715022883122767142935368429897733626125386216037877925327907665757105847806466867338932959385096037483273939451421357006268957141820595031639068210895134479822576999897454878658424418645047606111230017218771652057880511479524401106607185989880580817379769635696198560635493647055879267232548132317330962843751898473216053557854785439492598642024654128373219976782294260708443092224604979289360971441045781686116684032010491534009536013871426864989280978742839327053143518592300037692509665927990971322370452518266909779211918880798787019123963608564931333795473147534150829595685144766517754196586518456630391676833587082282817558586578597278441919964457578070402449350202665598354329601290247827891653868492623154061140504551635729508298814114993415818570892770989042627711687483094949568240952627464123450241580010471419382703020349270572378966588034405994427060686471582979932748338833806974893974506327911835175672566751328740866770362581603976151979111233716015141980374964118101311760593004072705178488793399401597361926811686888267266990793804405479647224257003332443883694357696503378408817428753883390646839232945358878691357453434793980454035682954745952163637748336916664723964363083664028914363743738899645973167324786012663022230844008105623601257941792932403256510775118659008768431562960530482078506224473539665328054405287842952016900530649267152245709855787973674629729811717911038176510663685656066489565319631196293564816553644274859060568391232992498577905956800165634270860133451481302639996763618833364924166482696764280767441573538051552049739894349286877976810344067349240183384278948015067381034449925642485851526137863504244578609607654717827527391927902613112233817864267468029071156853641257597917431327914390655442878667437069036189458457685932835355016559194769595352973248127538819861156014233884104259019219662423323476865524304160568680084905529627466425024081922073119602937497886657441743822950682582555578385715567341741772750620940280343752049814536401737891570647734376253019603307081457342746885728574236031924893097530857640800460191470838095026159772403372605486519782492621450667876851288535555098640635258818049999142380262629210417799982029271519005852171074434517672419017745063063791592194976322808740522400180594361860660286749738337225792432655163736002288302763853287780118688560998842414341280584383260171330217465454838366146228806065843189726803156590289853312823464248331922839358239271446436626801675249730304853587015869092166677216603072844572818860049647693361307152913580096258495802277319721929147993947977940975844735430209939394863694564222492503330872363934637429474621886109174661929038422371905815450347592353466697508909045286443471150618262582000637737561701293546820858825850517757214109211613890751045999248899422719349904661924570728867044676041694674846911444592001587073532632640548602264748374826439341425357664847005751037985117458921136577761758285088790737703866164896712359915065547161492265183821682967980641083746562691260023435747256758788200439489893992995895459345697274102223355950645589660051582782160786974862134327479789951970127882313744450824827625843314520320648985769707904638965882313331246759254166394317746076757080274581816065653425615387791178732656967806524068988879222620563750883875164143192701736109394431798632258770916426789631338934869470090208506632345389317205204676620732977561706896525080428216983835069331168356456234011049960958978203855855637631756488064607400261955997239636547757863959467566384193203680360701412079062219441055809547811331909630154485140579902743599873323885226695484764441776288549035236038161029655881972388674319702718027205836637847625706233431958394112538073827310514415446794706789012032341180791916805704433830098633088437221274229910689047511039500472588495617019735207115980851326419636154861985869636363871965589260811708589248031490577288441651766363362271852560791236530201587585404215497379837468414994104524785775244039271225074193841851460948891464908067675970198971501922012969745496643719280322507419451599632835346493972598253409974069018438417529721609474463226021839754501317498430001631155900117621662646328756763047953990381291131868158904929200809947945671067978826433621225595315693425181900814114716610386422356670110649345026118443278591991353992578265474116996044112222828001823388801173227721644215250741376766598094425756179256733169395031878185942545242011912314548195695250997364944604879725888362076492666784472587606319061537536857028633191075021279954910572538011327631987454402192102543261139187307837226103890754744211506480465845512432707457285814458826154535184563243923492512572518930849609241084851363869913154931269076273675120629304694868533217622378452318375267176202446236315503762548107257536350781382920669105309381821333559774536655665496682685357671293383749229012485257740023064219533822735901444145486288243518199271918489867665657775197067521695770446292128914354098668084693819368412189436133582244144442621379559247377329325432931372978930537213663444928070650297417318489683968507595330971078617536959780953928247535862607053011486166769465663517430766462474925811064422179027114960259081560539489965658808163726757853743580215430594824950835595653134809277457851699629071021553607105050707654131607537364966989846816106244155918898468210627663854681947508087057380116671434061320408245051327222681027810180211196654770448660089527808794584891251425339084293594456477581827816442937002210061012760196661217283160812339585594834868153503601001435672482756717005513328026921649838509590593631360289807033131985675683824381011221359500970645841561424607284050147186581580826346716400513705473789515841146201268885229602451232570477579077278038772703881160510626896900583546862238413807189665080886177355526115315650658633452216867526325757585994598880394024342343810788669274319168018032597762743368281780078067439499728865184078933209066396366532227739837731463292737235466440635645466206553326773521154504367608591198531336516299919234797509631908755787523373914033562106371598947244139899668994976038472697846582011073227679163073230864835884174744890459698369262282459495970379303085198148933087370011664134063309027460672180012707247227080960040015629496650793457456333808590824710889173217479198937556137310408021630403366797057039607924182680765829043546903431891731893968198331044555141034834225035726788195619929043589010658464322608130257411040656723221503176003544602165451369869966508932927183686058765380225629100201898462426958470486849023222643805483704253054044517206117557626787765509227487103667892310564641948089224282836983077602769984939833940803610605236195731149497573434242720471069545394143752113498982032622209376594920564829953393852895753504397019931917272307191428410310946542288443837983004449582922545058225456453827905608616593962411394079813874619701175505546897511543888832020144619398081448531925551132693916176647531641897503200267746802829481086915112401966129396564227657457081287472154324073905199236913035167760830305832257038719505222919919017642144482273827940702601996376310486936801451256312489036273849636776555141539106233252977770778430340488152217303107053207781588846647927855078552086133812392784282332078264574039682259891950493395506522097073040504402968849428524654806549281463968490164572888487838129132591095841377953071434814938809092960398485713480402756082062757907710165973874961067662328398465245997531919851805674614167860052876089215908704075443963267799885125236231050315475374573610342770163199246089004051685676850262298200348079761226848966120346809464043416377211194785464644669618894721562464901152555915780832618830092099368028225112651732538550934683084671834451416100357881223494877048934340193613546675261899177985467001308327400479050890381042683073868430138579499552526942682605384284417878470335881133619478446166240636702632765013947373864644025955883408579436662255570634720079373260703221567512163686977011809397877470809535724941014243253989678213764291870390138654440542154470912012972730976727677824683980057106789598897568943886906635453513769861738424921472158262203890059475311208838900908744733147996846301799262163444365346609510138565243309027381848991745462211897215334453891659120220318697497642145105363844017587793308576957629418837042078693211705922362031620581672519444211324087794924169064462251882686810636265433407250032114429782350727253514805991904029348956607551971667553573772665391686198093407397918588968017175655260067166088613030082746356077771065214464152713870722929079031239822597438990467129578170592149858247312205155087833718918003721240121439193486945661997084620430695806517248255523860133877294853583738270750130696743712068138450822265981306406138221358706118566752499729664700158082399742804007068741237360313495669438418418610394127165877830000686000826250784463783168365825350963817864062658504251127805343143993902746039354948994291421011535283845829351348194666703096123983843981320434036667965701776902916746293863642662964324989134745502671490096286528394798471421519218084355867125527817296265568975503328098186834667187300649364069489173483553053922779932460949081748947863016698374858868948902898927160404336914571289358973965085764694419617186943175127180070560562053173523550765875817336383823750551380752711335602567672841407089165973729178195587806526149270208163364191568271095584640201505665542991034130430799356662600935354695314255427071253098728105110704985889910546729612179092251935650220443275154716681582555487888223732334025002898960973705294028813173059474237090993760892965215129578613828048876473210935461292395410367786114834068528241787459131552092359490173245554588612809136871967137951119221928586156219887850415605196632671571895960308944543023196044764090064654627370960964698766686500065276224210159252862020330194026021227691013263834923219088385924147239635216175525431510909057744010201141724736848118557387885586897719843050388037568588123362401740519061081199959792058880521522165926625687620932978566194790576711891206816148645210438072226774813131552849851212926385952407454264534602242123074878212827883584125675333361794363423785244778686764176870831581763910977887012329844552721684055585457213611512846060470171189065719352016520663657568965237229371101889985802702786136345408226758402761452625592701320885576834755146284990428613045991443676370690790461836804407053435739715393433762251590951720993554825710198131285125144658976244929169993012805880768382840786745535526333627141349771041648081621010426057072587868047685734403828433139762115523611782226668574904501340141634596222937437302845403641888880761710031961457361777101897930388297043753949862125455221951500552718897276722667263879732388495983181810477554939127056631915971836266912445862885676388152792704808133313166739743504323269210753510858392442567698422962247720173276650741737928822929014134944176744975563488774418196021797225644086252596310737567796027386347402804621869853335785190049176975559455079199584446993450732873663497248080829003296903989669681591138024224716435790684265140939053800921971580586498797418213050287471397771303206034364500468922466417100579438883027019548558883442712565121943446237278637459244796247207946389919909846503791116666773701870040056281117115979334771193281099805401493561313867021349090600847581112931595211148652468326948457847763316297322948782356375509119236052339927095678685926799930201249700831511102768908660892941976323874350020234731913174276378971944464673394375479755241646562570585185806833882134737277068063626501112084538326701862163944488877647910800229253224671385687000681931756308514401294789469275624949682929679734689130282562454635111147610439786180484451305549853663824646520771167157445168533963696215840186341869554209838036316024028909340931724038732293568566665896004043441663943850450394879667267940743532658228646988631778172201885201376695563031714341911687476562945510694495174221153055692440697141270743459725320526046859924878695852120361447841183869608735698293597902430275277764026944125343352122572549506134158104304016881838930107347423003680834637679622499769967730769177874761477612699447231058864426566026896786568234429041230727800502488449775672910652857978140363027861974869351528113634929980277228719461990508865047859178321396284776699339224686504256257790500103709055349539394916869155079324799034923329003539012890751499082365067121258282223056118417740652759293102920811362590074201275479232972103493840594956281709413096585832045645248037165749923140884718229350521440074884515160542333305079525384189493664229346107207019817344565616547839792401428133813748010292620973583876270989552702835440233223381448620024015795548623778892064369312897861722122008285135521038886932091775102439513015781576958002790316035956798202750014359242481812961475730956955763937622666455613504520627317238643948296164206392898508497599479491206065903407320482441199440876330043550169450320484492648756228285885402132411840199183846520562575644637061284773701018650804132394717797080113667994798334492526699557962696863872079305504368673510721226900245173288458214165836610511463169859135048674159171829809194857184173883755917038458599098621363927141221571310405297446503597845940794556009240448690263312751548672142501122672342280995322059101163143203681451885933663373220136219405665441412048221113897643565902648418281971397180720053687376664512326525457978852467062917318369736979201428157645450406888420869235495842422799045436066138707618786727410442023625469830169997249129824353222569646600857953410250050510674439565756750979625747866486363835553275206544993878201242972102507209010573657165161254191900847391792955142905527775043081116362666934204040753473531642159941924358612916731725329421974531484984504237500297799435985833995669094267138201816271367154865167136746914279108032135649136657288155273718017218686831846762596894357488837179339040300014805043726218841880631235588148140044068301181218887765555839577502780046147823636203750042440293261806920770296609687133384734266815321709277353038828904325220403858792384767243551961020444269855789248085009703631436744048961395315004550116706044853451358528307606199387506042669597958819166536219727660161569212077063534905325393696192747362930518868018435966382622501082929464834576551747698653824250521506233925601768045412772764521816105957475491164851953709211597083346102968444328831924353921014069575203385254055238821111221880031500626999024227993287174808504393743392493301307168970642039336908677884292024918285607733559396506596043258030375395990304344785266056797550118131228354924337964600946149614586965233606214282666475716731943995979258977010521641901436142401036696713042396867379920000227604193256352246051407639319915493023919697230968604668513677453190557795643362643691366253756775560063940261670284800517981217045507611901968175651132869783299235094194368705890832751247135857147926411533061754473487728693700834887037357395228631158565089255113151007983680564036603347804003843140561404088417377482426338011359129070843907883382590041820451145715038558279999747313099518161388417066254954431645648874464985982286518470141717436598773339303069302626504383046220078740638004075599192288500064962701002709011374654483479867423644042631189682280603339383025591421450128177606026181727524984291667353190211542188247860954641571805364686684053102522583414501084473719918662264747998694930735917203790982265358076242426267404803569046011601635216170425212228503453149074313134311231712972023630098291359735602727350829648991627030379364282888431257231006032904265152608517921150717325184963440178132527540052677485087582744026552167941676900399386537245382683757131906511785345613554474243181276330100313856443040947205599614342395110465680323377291326689158077794962213842118916426567000915272610744742306413268825121380334065932273195608718255099670978446556470398497482629041799746743162994896907069774336234111685041256475577990910639827353403533625760093686231996629564201700812255472938161232053669312642471744013843080018448625256993259266018260188628247032450208561189815445877735067616949268638982772116574194101167310872558267343304338009887865483930166997797864243250343730400664130373867929659471419544522731444738608098017264708148564165381183212782294558839239777768428404553069292432904915692889432422235097722575632018103056406489171527302966851995892693612854094126627098219709231022667980835641058541102117482833817220616833015318716941902778160393835209324211301078858879660321670612932028465331635471652515151611385406298980593242285602558377909376328555061701305423115364954703140807556051181338025769516442588998612571048213392617623356509299385742872805792407086213350831898103297797138719315574658035763638579712671938963292247822155174028463200386726423637429417849681300340866670499021961159489609108269255534576791620115261137911710081695007696619038462355236024471090746541887518878893707140491619373879253713104245884025235635936565352667410639202334540455577597454789627555839433467235844974914801493162614260463211193640110343202352632709738777419919118321547470781152461723725851426062881750164127019935113202292269219753748013862085697251297407713584029377558435395462387348932152830911144436129371901807930101025730593004569924803990737310296877447541307881468185807667198183553461389202257524218642138431762895616558154986020285900792200980460036997931327582974239997203849026757002522044584154971716263874817665906819086471376007984516963554933939309541823184489803202566261223182412361066278987367991165017675235412259799556227350162956697870270803165856209774245246820346552764315084765831885317453919014241135440841954440120919773869100374934138506515920944305458618446457000659623083247392806572452341540310211505540429978219575367624414452688872343550753375236280128013828621179825691903330949024386054876137364055329120094558060669934918003246077405323171107171838841283470803679279765326211515257591269287906450045343862138969831022003467705362279730526384289628095700059350528734482051120038053253085248474307318688613496111282256408130437588401319150404481707662573828651201247274351261813814068105299947136651094990042388900623709963986666811060175921164459401085610825574356648034735756808024684958995830601510606067523307954760521634313829251718779597347438772211398764530751163521911849025231390850845114237345746805689935720823023433543332761436594696007155519289504756122316637989036323569129677475953299325277104274665834693556940197564425547234542444631906666674973654198471988329271141081556670149222580946088138946901825464332124654395331887043460494037218428745471815789154312881685293086371205149873640726834844994836887599269024965146548077415843569174088897285048985299500275710820975377065847281298732606183931573471842773322840827200992456036729108501588003911183388410218419155638278226467643548064440221713310105561156429322416702084394612878803913302361784873125887237855564781900900239243037995864599235782174106782677896481002214362355545138112255789305087380000341414853367050702493222110830831418164782112483946672853240015624252068141940795542486892869895126565719821868756779167931080727111385649252301277157304765612771250381922542878798635172483309766496928394954233817605368923114952835304329701767751942527115172392673429435058576979630322444592692070378867517850370933172220453216429570800309402063713386427633563176329997300297039054109655245586931630022061573450763793971756486924260279447308193851817720082570225810889790140625961442152485803522235558626359147609135558701793665704456168215528814548714507620212986035438683629741489867419508170913377395559400704184414210021999200415265808832426664766061380039527664375589941231574354332057929049726611673658140111766825706358552398815091389882244726211960224287485027789027512636389380260847550428647054359403145601919075219703527495726514522336323502793304789858118251479336849684553219684811541010386650777474333539968031031894425833050060189899494551455318441769733352010242714389228077318938499707100502864926357686951256611616536075236707692911033295560723941684745049793213931312516096028752515920998709559607173402015490856470602449585861048792163870770419419194734490864303861606631564450044309944533550465472794789679093441656621137735306027723636475546681483560080145436207555510936917971414985896998449213608141648935150786104342525785468873230690978049896439226126739190899355041199394404202774103758187259912641238787902528676733612352544006491891061948442665682580903961534579811935573750955105557234966237645663985270655422678253486710084171383326321162359655506012558603014777320865254511507020774514741961769857526066443667913076784255002178235639280469706426633866185443626074657949784582649792088529170054025722762200797621617891678932801287212730164306014346963359298092266832073375430380757321518281084002698727444732686055175828008647287577157315491978191860548044974477623172440620301409964775451744766302577128877313529851669287330023819496806548114544231975704332885758476305729781755309290739896094058486086960787135567326820813985434182106091426089838204700418826036648032276924998215332575409266217453834301609264908001552502458480161143241240149953303311515180571105700913701078753387779413549075454137286192385048277564499999410260718560648285498865578866564258540190503149435204993260469085058695126993706088923543084322369085061346140892820891504700821201614542216595156436583672947326498082582897622871009644363571104250595668581327348717572128592569698467250450310110922083471297807020889263396131395661442364126482306634444046448949854705856637548594085314839020358328083407112014162274845370271761818165633035695783645601681517926386807359393825694457716072904770921718199823182944155781675974703938761399195367033314394824238702380744016077853828212942863604967899677364793512206549634082940278994484197071186959553548151055861982333444568552331695534321543947468655523880916367582135611366996113778313169512631255334001793154906574153128150497241213359967117083309179547319070004236345346006962786207708383691195681467500444917649105677767073530293804540386760506802605128609747526368035607099617125275474442788691580353710232903889513981839313674128782714112478730294644658101031581157822454173820771471993643303317837988295065286243102493945325898436858556276534110966915817698754783746480491232308442533333423515929626590876252983004892294768233801956559109855304655600077817030191508117812060215327874086895025964441055732667120147823347571697545148476434436301984986021429508464287268497885158731706736802118576923729437300172424391935975041633432390122711201768791535803996937744252031903629276438847479770225304260583107252072571532190920916556157461011424407860054156280825244947061841791352326929016786928997467531111773435015332516502214343412165958813406656011683613444669537224556222304140821306726815788010202392182190920584351177978031379351088387958725542793607980640714695721493192267154245276531462919987013195895682778206373030751873614657191562827442635471629320730392552887397954940166438058992319018998216619631428215185115050701643270991969835345364819704976100914683364118977011925939944229869203642573562428745586928763822341656711528145143218474560868772398857988853995754953638419195090311536019794421739945335324026505684550463166312368808419766078940417369972790094035349782567815923834837322367028983316357179518318935305281405428636837114126986710617126175767714040681184721885905936486393086104321510855134625736693402223340626555731608680354389772806425916931698708276056001065427106585923825811872761251385542440307830778606907716645961380230473469451915911157245538499647341979871299621284652998341661941745148527117847860311834903656034039621415898046381623158680845495194415126023739280714900646137022517156919047148267525799865325007235275714844771857017520576997366059235137276819824763827199793619760965845811408009403128815023861748385493111804486312016422852511802725107955264144565381235394952200965045859807142171314279614010961332547259497827833044724802309782609419482075486391309463998904591456992906999920798840928349091692689434692643752295796581291049015402528752936646783168494107348495370229583767761662093710836777198268815446192118630107037465525628989543165290000811879310382144280846279641414689955139033793600015883611716896395647284210278478265295209917878236296713183241475662317826423798533218444035634242019057780661794780625272730301690741761632703295950003135659668275183798220099797753112622873146444387316220452177756139904998380692031614762865904380246377655357761496229401400863623755028849143691514068902478272636529445777960183981588818993035708144956628015741347395056293177590364002643890299264907136735077322903083073037647381160059394658230733624601130821144174808215749517912399770857047490004650874800703583996207601602315678892871915348443130712875303992684542753402271662870203336815922527366153246721557900878630087227696507215111749591693672420284579902616140311634802170712457690637618865898793363540092660733525568877350215605942715960364439618096149438076792408549459167692128461506508225076939408409388559381513258575332089429327277221595738609053221862714101289928286554937281385353232779743267959208505822899909185134063038054097665311702901576149767864347811595313491287975346144070094526710659546853273993786818119616924093629953617312109188154228429296904760416951918997593867203390816023645506132007084778734326003145424472617584532994752689872759709775312620766596860356212337252149824748174495452896097733346074228769613544211564289480762660213758595493527266674469226532033440405929113002338203363324481704408072647283278461346495592162691268158653153026333209507171047477093012963856223007331427249425734421582126631561615784157721232368198426101950154775194202782766767715828326116608741174090397572571675150551725957308575929342678867536317075861014449225632101710764825187020456834333476047167882313909216485787913336397163191483345048502014223038407636001740728691055794361383389497264860268481039821264497331632069746371472074773644994127368518057089700899397888202934474941685559578471838216392022400790504896087800116346789474685035204382948900863698386510835876751193473398957973243669887875085934183773238030094744288709818229333438341441693081035202493680956064353206014967766448120413488350134059188465629223727776704746251214043669265946291568649992413722493138944562564651250694001591076044936798745252630013724745715504662872163944512439777690916519713942678239516216551247998468076017969409721232948858904784389259825005062478399889371345746787845158871175306083795471792718535857552727392517145977067446356934071527320353437233501915103119960158701049457010988663457379796933813157895984436112134379739395587170260294523339033240412213751579281489615466019176034824891866834568999956108507962380179561556739308020819898407661708908492074561842478484823120110651065831251409247128209921422639293525128796992180614562580731659632914951436050360536923990918861041473897948056314432826809179471802254710405301692872823690926304269354270695842836570563913479021942700631628820511786220892787811064394233372819313677458681147574345509875058498194052914033585720443148978570139992313278563053884662556341659952670177938040556648700349847703396038473246598134671690851727669918751237612013401404604639811410434687442198557370992925513355825567039987860576357836575735632654717468118760532811936668978435860738739183561549060843847714280468137828513552097196262396576647283628993631143166088215251846313036260397974368221028024558364093361663256533570160131941545359466539337975632985636674061716357864151549136404451012579637363455114964733147750201051854609344277133318008199040506381365158053924510505410174822416539786133887244843078297520757270216463826972149860566298044714005420292096164292720951631921347733666641818044152373191760250481287258545726405577950450479305171588951133203879925310597196699256751695748644559326257282308585476421163806679337682007537703028488223940157558731656912875908409944101872143003483425470488902104540554032597251130985327670139539653602273983889582233114658862155751563408734255997391940196499677624267697023464309681881374414775211213107043907163947433457609764159719824571890610905842462601581119266335113771179552681435090914576076362568766630937451770553401285821272079744784743406234655049299757543762090114074124247034317336900500145673266227758677178516688544533572905129315063336054651378502392917969693112031171846159518537894216102973940430083307254071808421408253704846949531077862929087323974129863159256934797768075303604323276929832713276722073467866192880340584603335008553867120067779193191312962680193975426798496664910961333405405770790392989224419217004530411734877487071731227226992943224878381261271558506897937823980002591258575622289261753303360222231389273114454155020505592762190456715833922762429379520541432817784959986894261279874723033372809559835033508633627895643946781878446540439082538900117953244213107187850928882119999463320642449483302409850547877852033948394242485289342471656622729332056803340654982743622402443363363745860864582511529173066049729188784134428938338180911607696074582248050086723526019911231526510595764147039272135580308818983852971451281271595126142283465601852735967952758841432675348799885309752342129200616993866975473227383845831866383696600337002645509328991782356163656081912149038188238030078660365231834927096424423462771477397076239264990257302061089027755425605128091568155193507957438508251857164538378743537473689509197481266614120652294526854239404286993846810591439940002330372048209378040745463285966028292883535699819650986484066036067592737068581641626486313450611103456654924878719060539712453566852546526557789044004698848586722926221460713002222959870034263622361732656796467736046805618595429007952387808364999821029336565350396835336198070436990996991776715272519395301672307128659238260256715988554867540355819074138434615773520702987590947785500318058815564078068659456108255608956127172835895066781880834662638164265233729640153199746748384867523535324841808396522872055869465990560983014249000791589006329077113911037375082770734301202463404682139567276329684307867501077211485735788432157646208275436631325978231778373315709081805110059059976460367852135297883950115081352869009047174732048506690462767009267034635993722242367195454559261306680213927501212194325305637606530410291483732139400697518738680825435548252281138817112922796096379136298743166461129253678825953390878172682863778474750916974918687096309224060801957677912300081806995205450025246034792731452022575691378443796155751282657317470624036941883771134100363043049605944474443706439936009977630293808200920167301142882175389679866075143472484967192143810863705758624588450166504038322586163738270448003762879098809398391173416316477870641105528424674000545760785221104167226894966579975726805368636263006178527699389049831845352948132756841345446483401303289823659154281329239662106306011227087473061202383803436729671807581814911611871184180699609013734764626054402947199758837579351610803102710374990250622754712260275323006890800721615582526555136293369811259291937687233725210992763027086458624534953534026632628239935316968422681774921272693751883242489528380543530848746450341016534881370711925934784619710563264450239312423373540834347235619541117973247951321102191021823564668882021808083932122584461204755833378588104069890812305469648127334293516699553176470947541017769687344149130464070603439024723371790575078193392180660560898021293404368670785685836951597888347307259098539739486249221700772743860023387045421965918559160196765814021924761232118017700432231217260649776674718964717525284543676413104491894741695501793739848000195241963850330408587210173685227287175075286957655184924754223594834336623275916372263431878550656607723536458813049907403223448646491803424193070791931744121802292843679478017924971802335652474033511531530981727313463880592611092415887248823617149529312238940512278203981648789173923105830763505237642778085894983665434590232500754699441045331861081318850294170816025635636523006059486269855390566966694958896586348868416865591009837520432119640598672225235735363629869498286208064315141694473267114401873881612530475673751722276039897302362751100213812917611466441703760224155359920568428718881713702457888001494333539349289218628367268137765291234347013525883640395762195525684635568896885281450977607018796888582132331303619877648860660691614629108608967910846366363589822662649288798518378262745605141770892466142185579645381670471822821668653350292476889339984340540075220385028834760173377847109811650236525595637035932140648027382549384530683991199514723762282975003663377705677837969986600190146020656244320700932767550925651372554645200996758234796404981934503944782242758131666967042463539316364793717625077017335509617823490992976462324243684851363266604932075953175312990181833558333199035011873685529409131647017605787080406688268879280303234613628929866358859688495216363029567343724986809085284996071573818960556216403052487950059180575678652845221555482273727189887722512847603068378558774634175961383557635399926369227433045775908952094821062008375377220037080337520452156433960719606641583750102068328011149348531523119372169723111066786830274989124099174535602433490035402427255223654322812498433284458936484426740903888467186672220862508762997891304730133430799435225284316891320943192387542809853197969272244321141451291776951372842207111109677065227236559473186964414080716414504210144236315727878532795918707521257598566045721352683261056951709579595008415767849584157750786666900656713911702991092041805462325648548858198225446176871318787567951774312762745432146308556371934260970820592964463831384979364880642870856968429083254539354833770616307448708234180022684856842571367038120954406969824977660675228289385538740390604002426347247252864336283602343383773360839650674356917753891705243791105681373646008872138005675924378000132556932013224150278684359414109358993004435834058396075755924890935894023797091760372418915086435245960776805655577602497437162123531144558350125003952215257977567054367754750786717344083969907644701733602697502934738468383585753775757587536774934306434222972925991469169379682819047067190023339516532768222830554152987597515550091620520030561121521563759330810692813035908030652196213980474536351875416334298663115011231625414622595345907968957836410626936470390972144708506486465766621345613260926222628312762085849712913540539391575614328178350212854985126395898455794752418721231253899728373771781699616229424834430998922702162132039341615446540431234077593661338518674565333375924220916510115108200988649040879714921722057737237480357433406545562139814379936392983497029050281081558170368737953101210174566636642728644474683955061811059301397182774755537170885566476613699193273244877726846228526360532397893833976051132739353591427352897337566431902565234717316252606575955551937840442061490731745211300022056106984375226723133571950074009826923091217073458247691970933954159490930263881492949828174291719116306037953912508693188107947125283525177969943607283914125809268105353475910926789868841832451936500074386884720973095492335622654033154813195575719215843168582213822559049187376492611306677642916307709406946629372791016757794693270387652459016295110264907815357313401089446818740288073526393353452234061039971507221750743114918320726780684272551388436257703462040541247346376611863149696069126634646925272833836555311146993557973868354185504751559607869678294134793561578252057675935613480844288709895877044436663291086692070821054419192307588205282692708604043527376232736719470346694168878917586457160785076516370440920072710911548432333630984185524499224656814331945053481180184800733335570303197525226433203610923835899149602568712529887557986074181958819833612920038573327267851134608711082224300186830933827043868537396298784399716444455067288538057574721696501383937739984126803782277332174624938601482077464487192906844471720163328830846698400076806749566895519146258094636281834168349934999355887819917842099558304995732571121563551060903559839574557958454292218338172275948337416325645524751247719798298488848322642574904951429300715048202672248741457356238884014018816393284589247649987438340419647331915980533099659329115316628869692076805828919721827584591956612581707384056766319877020860144828154995553103881072128618659653097633361882524674274174287663075642668131159809691831637804417006609755394994741928323540976437465734870880153683103514233944635988575646745971191118050587966624350495830093011157327223584007608329663556448982150836672537824767402221340222367343001677756101793850438454818934034808263105257302784792382624271928334018610588615804870570950169818954510207703487105242285644741801963908795055157748172626011092996314472475180548852484951917560280599174432637270237911218781123552346828429323115395918471184928241635571966113406361373220159472582820295533348687539560282018743295188467435818276567698612193838400339180784892086834891215269180781220433255907939007681454055286779659832584984492667708882877305291896830092828994203854640413176678538934338073487451403589720303288684975169871813231701657213658789747187667387322661809242789002065931491486566971481594508856756044522385395073391386070836352283517185167005864231966972946569138735366392246429534596168678444372931701539552423673386365695947004061275116187878083944399956802686139784904229873370696586082677330165857925551082533223894478376648020768867222739703016850491443886301315865919199585028005329683830908540222124573913222243561398604197444820639984173078300424486469122670817900298138790774713524829834616251811118784234169443063006704908319776212196218628801112765456783521619227409886807339562072495541996914775234611821365052774517831673434250396935259463610647029591634217852007163702285395444982244094332235205898296742016188708894182644497091852989608847128732799496892815318463794393900532107255952943243606036453635978649691654408599579920441853097920713290825217292155577535592034771847133003279039406999554028353230653825295989531502487705939496594658652682058832618810104868478912646969193005919684643272884744611880877277824995395444549677995047244307842310736161279387155821400125127295511985639079710946177219279614299955890713748001631430434973918610017942789700543317574973149091349124539552649473547772026593268177537742142052533228857021421554905332914678473433497902806517668623004993975088989939843852948055860151094188455264613905359185883875500651827746066577158457734978954528185342968226658396664997591040717277762915233788148268584515975728750336727229071537502597245338736965284115953595554986472736573516064335692438282799242558064812837875029270170167542003000600346716687887472225297466504640848162340957761040489989085297153014611953626034040413471034216777693616065662108692617753866569077240262391673461450973826428456170615672671306184813555206170859602270618182626918485570248750365612006313125878572924680873135803506090804434416317582702971247442049287474776392111624322689583755421006304488140697252477505853900520981795100917915386599109965614414002139485850520033535557506557135511313261055686501105663549298430625595061398561247558390470754491612844154897494617361321006651636402038561507069061890474004504887879091729576951319244546705754404718072059230565749159156240900826620579089334041536822883450512059621664950124201955791566142246771912617429063022270757613619183356727246785618670048471251851778476119652468497141793438956036148349940243759566758148914909278988338923397398492381842790834187552652964420908252212626284232767563461279357740264302117679919532383591783997105124722431133466060190015284783434199881431592795580063272503380012641795108944323080407812623586411123352779666595155590396448463165152640868222496779982343232854760189085069004622096759954369642032087197595887658982295167305191684473370972384416026078751260449820319161977327998113884859403576579455115794574236983862164107977766380518206622294190333907255773748462346774237432383671942348502058984617794121573331613900539018835798865548743434173487288878672028756882763030187042281223028568098716643390587275053298433458697147224521444302602120867027757140251283693922089984948150177069917433042663938155394739794153595090614776052288657929914542794376930555887826155324744690981443014733589410201315004308899097163238459372911359357680281844275667703700705453939172114190172216062866405852813643457597050629344364976661834006688468231965022599634871519245644495074261821228260370256229243423902801310028179321881206272750098191809619114129196205832759209600258259234813722832145898052212415088185976897297151183184359448605805230188723524383961921141721280130801543751734610569225992113284984052600222239654597521255657001720186312724225123039752294089083311703113797816374567342093793313476518742294771862298256356986748902781534889559662709916804740827420623416769584995012913084325957445373721646315579156498791553215069138142065903464987657260006533615851325322414326372200237206952157076668115639671681295135082604037391771709019613385136035054054469514038304326050878581844081680665097911126082157866106466957309851588988096770499637387622703124662569924200814575624914630673610007953716998896882202656420959388526314333122696819646838356685978007877964585399606639085814509672003278131921898135664390315253780946471106484763355114754617562610755144055007275806503454835843487284447144828739452884121983205317241605923398625017434686700743969227269746683902825186979747351853571228845851908925506820104352927058813837626544401986401578591592093558094917822842623610724646685167446192597181035190672585222261205358597210691316335844596763477152392778691254021795286522463170245731463904211581229428888418273041247491624606760857657485471570167919508871247423295112526964441074866968463336310062218309381283829507617204887111504026969897709880818494289813686061474734576447571042220314892230850454909404409754470213712292801954569020576144743557338832596529953496817739267907784700596410250798756253179874959056748212740114651193860705857598379034636782778653774374733448178780245322380093940206639202265822856461852309261802260693192483992480609735385621708083469922616101786662815372555758822929340417630864687868544433242210911033000518502975923899574326919668165070123995973317815614010696820888012206461178737747671093990971313075419151763483487652645626980886723826804041939120782349000291299205506502540037866823663830499249823560532395137867346332057947803144854675267375545080064579922492523980943425875896478838223788489130885621700470880627198698939495221179277988494367032226856742788342404073459849180422956490802893272596077354609050428754941682549887080331648185512632024756988218233180885439576359715772271955033855214111789189045380386208514389818654498851655340272365227859490288963431692515274428569229458960078904999611097083012822417784733709413583906605662157275899678484636985713348379311050632999723713123186025280751951576979697136936668670715284747403084143975665453764224196639384147740961139365154104477016377610860373902512304336274189315323689119184950787331594035434209686247832496084339938217109239956284813598967324267871558434206190711181209988061571998359184552708359581237157203060794647114253390312417828859192982357500975518087846688053891246192678833934876302458576151728132916087306153065089116773123356592246115359934583857306920185721994297766477985407741438324395291171419074143081313941898702732601466501521256516320037514510630814084493239189092966453527361225238946461948990967552231238684161213917601779380628365940150113829507472489650337456940326785145255305896386913617279705089120746518768847994596695525477347134176450528329226848229796259180515431581941948733363778641663876276865999667673972002971645685290637457398605253020485963768287465291968830972223216776250290426939896284821410687076947780638035997864778667068845194164004848284652594689899513226656987943222586606369985539823744786454838558971883634390564514552572168575522732870368960056123635201054467751898602990681643771131626918974489687604422820907327540844866928436341021576358252904301133276685358752051082403151139075486537701297727550060896366933424229138153828070626739596750983847837399514119963405678896339106511282847875698965937958917571496513096124837769626280606337649766784765127197354439028444684322392701558050080602738469560489063072207989313069861433445866075601653949575801611075672063177134969788278441037079959969071203001059918342678236262755245295363177813015536090850336414784769395041444867068631528567443608647700421529183773982371094127010763218260103153258334902879839154436727252476623449499121964898341719610772978844434207017197275021840968241950989071039270005168023653904180478064735169173001273701582809533282733925891217131868060545224368841965349519593049970451136153003550229720744939382986896759322542626742523446675807095000099424530249751363367410769813168366609422631603516601791189707216785254655921531708297442217957739869550182851213644871622537090362065061342285094024508244089673890331055717556017890009861454749965366569285854850380496384182916988811795742842770709150172944986205896380681240402144845387666910324154325335750391945857970390991316876092773475745575006530760079172966831003254374570528244821862692669674821040839690064591970271531253029369484017361953200837186426376867645683720046496226221632589464115278339852453631525033763908425465340399019784590460138434036994469219973150238746231622897980894574456421321498518779307829996782074383073850304792855705538656438762230207804063742669607398779771953740959049068411755665852588212338398298000469470574375010661773375141181861089686756291948009427742894741171324687950210025704984309496906071058419219759775941607069236111391375465703983891427890164773683338681469852612143914987963586399359426969156255245662914680273953017678820610368819924284053995804470782468556279967307255082795222971050801817505399600488564703568530218998535978953489174040338984510346816426879626192821433566463168360480757358796696950892052501031883404910467238467258416285514457393439173474333644667503881952364882003895478858470119269649506959457177013006226493797378952333619929643237968276028768176007970634314177062199522717633016566275250512403163456109685302007719574298114479219142626786013086449994940004999294707131535582840334679017072871593388347109518703668598545585366724763852099949154103233952724203101898905079809351305626419574781509056788713499933507917548017122102002750803120132806958178465179066468624681352896447776142598830574753946658978796225523651759391137187937833902826434196912498799824809722587719756435696842338417865535403768155950986070651985788624471832921063111278527234061910659313729551815331959506485977189328429527228967379027411081449441726829214019333061772931198273249821056742757978460726888963573916645900650518879404803544058903527217974335750671866124252654677144514204802112149951936202906360917186375645383204024594124133179038722895900543721293028577667624324895748162536191762756296180197046506005635842108676162085956513488931307809644390324077779204087203758322729280620338528758863330752858559901239858056664503884343433989684644766196482105662327639610682895089559388021169137434203426255916507871529812156005990696362641341910870592753117265044202511816870310089295176781412219590249567225786770052007410825819668895359757299246682159362348129778836769584709323193703700437230798561761542227007278410108119223794732714615783133210844713862409112840522207626838316022905405571858827502284693486274017712481527497144023458382367000083530948701589839131272445793584073900353551700988884452045810833890462804080500077459737404697244658059671517084631287996380666589686683459564451895637584776553526931754449972376700516126946613368379249429482152154424329493940551904426860688567664370471732288661782541183105116425100976860079659470682749250313392415682018866354076343604417107455643133997717896700554815508270728759694562249423450674503950834263356693687051912831692981575547874933416479675344235279334702708045391055366180980812386618946392227990427640760978894240485060666710686729825347056201686691278820436112794880166747012127744660857524461169413558119529829731711184694536628052678999925018940963944262262322213166881239116461861092123833391222909276983139741864376299085329204717173443673073534719232242275639693682097152147187312453253807371592249799761240947674808407877848659429702871538104967090658609609537195172197673008075752776583763143096649635582940582433321309146322183927347764129389105318928388911144107489662073563286807961310323660611078579531078030867128093129289660394215050330977155704822361758816415662190059036629749516908081183695209060981498966883694956388078133260543495805386378248300499496263233537557848222421634908237314791853746588001215753989265244714883618457992207169078622264327165346567077154804178350097594786633150048479577108592314714152778710568672073043204391915024457746243436184210035602315857552813452266393041037120712470532339944920724352020356186214844271643404531373536439880035511113487145739663408578146087131758823491122571026691124196255820083690199656673591190877274899417622789392733462515613461140389405841867916176386682005924599562049181810541921837131190391256634442764053272434481085002693701800121653532486957447772852479169379875060612972154998950381165353621404644771498800759784079182127846228677080907426426618698907732445250298779663746880637986997738964008017446260958037814679168270101036618164199336793859365481089035935901831174294954845851792949197717596465651229149640370828588643696687670239930905825781853815439870049461785048757077366140787927549766661344818514539583178714531160347242320988360880389622346479616683973832202909410845896967274269704893793708418393374248875213869010632580147290545203701777402848363453204307062844886864820425371540600302641986284124743699982559805249564351314030691161265719325429835279865868573134141553887036380810878570323218383572147037515971141420948966073956927604790302996841246187249734406306492740236912641800108002397948302343336207046853622997454710947843849073766644036855883762351917195734053852039048560759755921289159521712037501844226716567199372843133390256530703769774687626056194605463317096903275213863854612470929336261551828413727366162521492267042137370193614399886372856824916856241608045422573855066745117695015268872250104871939672723822944933721207120934352770325162783916628677417101391418136668361695413117700087920328913602952261568721182843614095894332950960159066410173055747921827515860972688782360545624498462101028633863106068143418860722189281975976546153771627612260299052845967698473105932426332067864226878108336021790512491880317300235943576350877745434534548736982995654504832207452365141354221307870417954555608265070677425376526852497474016193241665852303890277309373095945296760023689608770946217531373322182935623645404661304629608082266059674941627443595263413482523777144260496327145382620251704835027773310172564203349966170699646942534027903466698974498387602639164519437979743797937526805485536645806414186241393692067518566583167257155504382986342622640206876107748251757914320604239399490756810690918905977942555102620489179327378859454909886315260680702916350421505228386002945612955236637035060823839765135070194602796872535622438823538322562176595497677037485751600485353264000856023307895019559337946251815462776021915451297974575234432602454196736985769607497276738893412996434172838003098156898258297569814777874774950866064999083387939796581593020906336873059085121309952568504212231492040119051530756919036003532243179178305008091770841556156608348937971410475802467296506074141185700429252816469530178109324946936684200227612446549010586832273842284332320588403605526609410113630264536285401858681921264291759806949792151229830543790233518712721152541280739302050842330354668599879839834171440038855144921378660388052909797344756954482328255999406874287696673566603439754544065610913418100373588094510721288830400345953278002702623408527158119681158426197823138553526292986007982753730091539244960543445607062980322543749935697303243739904310740556254914664556893471019164577717395213325830361883437847991465973541033846608837888968716542982110967041217076724071198150713345405817183372302576331704317923042243893471954737734213995297646581922406559031797099147140653179635306814968349941384490988041037599252678161020491912091925418409287540604089070615275567861596029179708307897506438962717393389427168505232906102535881779140989270258678541005116869813314896478170455857172340441593365900472113127377969001719437446911694723280255727113919821339574313691267270697341856994617121028402943880884619846799846791551101109910277025383981752801174814376221880794831767359881086692679499521501080988235974176683732825492941815063183298155818092694583197593529810303381799091324498228951062185161872301352231153277440389765605346810292209638821928049169789992934971460363039431122756164071019854501974134058829522545612306108884351843015357652937439324728632541496657861648791222227030969059700440642299513141610624562798111228089566271818730713430245967758075638586719453104782847630007749813171127905078422884645813833128985863546909064973583727875061125671815399777647373218362791634628073165243641396874975251628532729528112306875520969851227259036327583591437229102360654016122371847075848079347072156203632809592465149863204761818803274892069962645675349214057312885480901324010160047169203232486516231157600818054927870618991664641989029796717842696715060459508301208071767382354400937413182534052277885817735785732087082161084353042299243294743354221556107568699985231872090654570881452487905278167166798316243809782662274509309477830689181719887227521947335663918825427985430672066089685459377483925428262441130836549433443909208208024505073920751523901179885058335876354743696931032851194964513210646508984847724346142350298490053093445289514685085911635290937861779991317664131116301729922213051377713138491435857389331379029470354403215891855783966195295361945339068330805781786849228932031894165456462047966455201002701392230453282589580362937430565448997959072297157568337067964821678801805959800795708961920692182578260740885834243480400596477372497927477768110890590168537270158784055587199936372479843944885178527938028094118250639039109983467076591085183679098418395055266013207596727145873376058875229079720319668888999092225523175385566031303779886466867836175769680336385859677158804782655330629924984354997720845082284860971406407681536613110573839646134107572636356736635904448433189200218168342241935620614823748806170858243678845781643557059344312932846621470796349723066346463557678119071089538659081984735039457396400796454238714521742611902637792825207279278448364096290473017479377861453349888871303907177196046436984191108300894967959476725103490490468011850242564550438798938638746035332612179688893268529863431578558383122142300408639005148667976892813674272624412846018263625661159258875159073554111866940208059405822465607145530073066329275136747645769387132368422314321178243895507549089952809557509044475750641026122457548139101119525442777427548598056359713020587608501753206722049158081578341100525720039881984179890345596672086433972028492265595380813345653965420325849417952991426237397819306403029000100665250363235796387893129453515015188949966848361770554440595943466821807721645058582782486903449261691581365065481578663134491216020727411711450500007116468163196517076325958372275053202324176301648147740299309781920695874212861981566975268069186212887135433777421458293675037832155810407737490468402391132196092894958064602287388244283768884675272233660471991511146216567757253199031645768370775577527841782870399607478545627402249792067478491252351989178956898477925913756320673093494938475318476148959434968702004978887532837252722391046213102591566604460932197583302445080706239843276012360100074983869791829432682219555297736528696982656785510290886006944534560664339725323851618375251956227445164187637887063288860105027398545628953157170776044731181681753363201334243720827684320794464165489707869474728945401041876017112463860853073358966317958658800005556192553293202072305335542615676061675049201363590568939543437693912061089585786617983320836715606074157092954372070842966012917893159318368037544463110421620486218834599929170239332788577689799996331800511361780998545046537749232203207909439595260836018852567264201854550805022349133493742947909155602034390082606216801835503147151045348355835020664887415480026217333556620661546795493189610358405831756502913801704709895830487879897554901623376146763363087167710082064041016253387110559061677516580724071515520671360813483968231162715936434452549985796925268278309245713003320221845435948827658137658620761080730755245656191548834101805063713791688981594602389904606141104125962527731662010583610219965857843161603478515724704139562830289320485692868782603557358793482573499253209999998367323654559871847053503229554594575379669227063421419504999080395523791249249577863442219246027044425260137383365336131961079631477095383963450631497663202341379387041166871308225097728962159671238356666259163194775969160390793512778122371573827381861179463773631572101602435303587797158172551864275125772210230086609893789614215163170085346433757835275140205387167762869990445568669343950986962136034779160092022301084424075427210236460523794173606001141321253664629666700130008076884864143864008869600356702976312558607333662940322482031253277639389037539254642102997275635196972081978903313593400814906155639224245466073375461630545334339551702021865745254142347923049406888235370284997272121198857617621348180939384281483915152718347022095113407909771277966177160462035375690989510134863393955299027004246239416699702029033631320221307598383946563919851374872268203956614392584194676756648103048220238479860485910793360999919272999699776895648900495034294054004844397896180685980639796529206497637827499621460923442005570625931696557736253530805748216314324122581158861496495719608515034251940601593568072085828486028123037693701038485995454291429384848969906438588405867346439576458383015660163415639851011692831665556983437744638474297038229652655678754890904344316966507847079937924745172968093170547416311259395740059711560042694874794595313646838068034142036221493233244724867306308892339717013412765682351526103157965432884745868481351054850484975928892244274234682551661447402123956896410136671527517991614313974708313875173940921287025483806714577903745066337715393169662353207285271948424416853478044355439077042551202772857187197168033557575155078045911769583862210089738937365099884515415969340621825057857788505694210626421781195594259015863191814414315009604484791136020995505883345685182884086547068176626633367264156153516613931316064397526456224598433522227099433984406314517866257027203558977459469774244013966789818242592703017503873458625331653197414308150403377702293203997250062420286552130223320956703342061738722619201478673405005517991743309196131289067838729613500401571857691595437511640002272852948967485116334905775432454723845309150522668247416508820260907133577093269719013124618249762888591560405064843360589341717304310333672151232616161107669002634246896711786537255781481095204320869209990509768310440951043331722788440438545782121663906286332323410631924742247392140550764093608273345563972682367597694098565531855525477402015403299296225153986521387032931187376607186795709524076365183066182016013193757190312126088587578995561930646476996087991332403656350434220147061605392765743180040224527110642387666716333591267410712026600886072745642287376100202202132767609624828520080181349353601374167611092786201342369881278405175023620956981771883669978266080557535789283918966664372470973947286662132776214391636069178613400846345350626183365772511200412851080621833169337996538893714085619518622658694863446553967332896409262321678153900167893074323229564300831659136375657537412692871748151450661394841739637682937322611608578356824987038871743564714817152857732452097308537630201805868936659477782104242512245547513321118946498260603107010467317414497115836132084540430855933496096307366413495674671843453149737124549845571367539900189168449041212802994963214425065078931200099298060693023260056057897518164855725528206846938592366558730950519134810494035447756397868905466432980587596783877946764099917416557757446855886809581789309785815067083022752310090832474989358835155804149330357128416854719631197548899467968580960570906282777388010780288278108111949691081156043598398933685710065239674666978109120856649089212013778712410357340376457017813363087279963126554558609703483021628706474865228447553801906949789511269726406443161110553668914714136865499090181954811062819331079362522585635011963014622130263449677445020007413245043629201904468194583210784579474936056704838674278653173464279717750400110969688630853270339998956040721302205632687080700336438863502721330483099312018063884662892699276573265919276428827034260062427284215158692654080123915449318136981752303225426047019378521405545947656920656008697166827450507701532120182623117284160364525340302023966940433150560224699407264579180991748365203486667740260221318783958387673658645639856702516823617269938081134642031298076749138901795275274737745270231393448065536373176895710329526380600097325729182274349642649464004564310264401621835393852196890737914777324291385487453969162831698168868616011574469340651080191347902133639211189510749557421510036084402503841989612407318798075328105252896744327648815930755912582369430745250614458120559292800145128558703422388515520267506672676712567828633009735649129787704893780474337035851404764646792859748239509561735383929907045408617353874721801426973045373875081933596422296802585671103099420559955606553551399376543557256566967559994669817925435672290877712735315564580886335520721771291762496006436184185546808846253796868324851463614720508352357347416743877314066609273088408111105597172608176095666614915292678453038318097496024117453461911667906484181103643254091164575230520471967247673823854356958187606635546125978234685152658742731722185655315404073776309928348403758978978207416251698798974827914413971385947945510978785170674847157156933456007253543082320322092804948056623007994945954866935603229321812873077988802214232132437090686398075101833644181551813664576661130742267099381179701836490671019379950889595600641128344824108637126397168965379334517290194941445942370790043900598214748643557850728453753865088813793161860789598042941577364144673888430148814661686511969075057571107762394948829707585652125507139835118882596499881194121271914836984892288476436288755742690456685386516565496333025429374801465329866757525131959969364135161907136548213475863903944836085661512512825120272935772108300246605805965484085209251756248243278869690364698105921780908763036956530633861965833435854708551625440578423566180631204408104251623254240090545505472237110238319969256381263253453109121147625868855058383527792415404342948611285053554065778964472410084474210957193249890553859962827667047889102954564126975656922376570229368073231970509184255871491820912518951408283279241486205492642540062618252575907315469729835382485711004717726855941385575565425425537352668600453726904464062043570547664048656570162414660014471497557492104806329256768618971193302997723188106678619034478961705090696419817590405285145009676840273766187229568472419550838375734615750034626343052899721149281292273689511440371081499446458926151718527704321422767498277695129692760689434085712125672024832435057276891321523381440142996677246593961040641482685448637334186024272196934758525655742066831330537705878994222804086119764538552636906296737116862303695819017309206612938382402692461407554998367341485150700831445546414055466933486638891168935811776664474054657393330683227265751671774551509378114555998891062705375840930914162500178921126817370792417233302462432771390700203058719346168460064868095150385933441547043545285907119366838215682647845926064467281058489926324280972530592596445071059000740912238170073614638627171916649859379774338137142855378397701885549685792730175479438508311985726927850820887368568131812229670524393925366134103663414356112625485438374596969643628704050074064540179101517622961751698584645376021028632607080745933780698780663103945136224896428854683882464603737394393568152597427692679685003026958315522245952372639306587711463381462945848998413955182751595441546847122438908745876751731732991462114022055691671721302627634249556096070919761589960872007323405260401657799700888139234785150365224701394463935137723164022369920282693928098823719768169343060779408261879493889544528736460070266694579242452374704770268449706470922399613518458640120619364500500341635482199318737508897866809198049904652912991009724290836328529766317897970078447115046387646199414957005756006544895180789298250769820414728022225111391577376182127956320081474347095275387609967128394457860337173704567006678562881770923466947846166169411404332910667718083326442877173523402024918858343963606440404234115871100233139338336470046290889640974795872813501954928143639978808533115864975775662143475330025375961249560579021691741532755515734752735167180673939710607827354462469936960709626310407805749716695483546415879393775603372095852131105879013281106223451376473667688795833555643981219361273747724861344099100829152749903129259735688052468803740775551662069796921146742875079838122533797904684826744162192940010064303897701208734412964841623325496923573692955452447105169583883659451111723575266181408445629689135335671568256735305822911948236542667870181467723942384766071400593617361488048113159733874231076637504431624929153049231355118991423236549673383476772537215839186974582750825064270744392436462396300229474582297903046586557780250869699741974009494696988639014997296282549446367062859956751512310920493874462230021129992021416363470775052550258481146304013125088032214852980918785822446408763356183513277494427783316313372745969465828671914981282919761016920015803564392816463587638967532502091476492676058777982571664959065067180957538364507690760842129458770877123282121759728495646920480437326066720438341023066200776416657611677398621722470067710910326644369708273759064945609128844198539449814827236429518736316717176597947418909973480886649364462605675502494115680884559024340461114652764748373973904835077970926356393733937461271224950332639068889923620439608401108976497365496824216700557330850208766042645269525199143032595436097577241579773268300976327428204293743861394602191514507654164065080858341398038317684696341487195967396253352108336267879382163733398612603789194773059902731776830408347578587180567221898038424988443180864054683855924944693521782328243743894892135119621778859578575248014668808442230186959388931015884230662881608302555102060846284957763949978329554271626621119035621316178026344479973830210510979284548192980900971093472893945480053176426997090594941642839520426007343613313899180870622550750394069295211088482606667109758984925554079675282689786071419114744070667952123582454526188841114800169469333275898421076243554945675243908357058938224511986276012560475691337962792644709597087050367812673862946897116850861096348135831141823124640653827698631764194886575621607696232932172411484221002962181065483550485645684193690031173551704896891340811739929086255551203759328102130084485474848628563802306649677520206255903400597201289120286721495967003991502080578667608396906255988874926982456456492799273103068342971938377797967386703185844207068456887186956164129586993141195297188092486920944290848048926483937508396503625233774079603012461474769626226310129131634284097709404945733141426072000101374157959028775992003059834137934740235394366805582076120110705447555057465146152491838069216311521796806562420643230599325832576357237947017631685460506504714547499437505918685491450102372264099381461762228437648857748674210810855306347807891374504864055869550797617768139289651770997715983444712446262738096844813792441306101791032513731468503299388169211629113368163512756613015923926415914415596639318516253347797629712519836117628026123635373902235491796995627779041196296430771045544184649470236189231041330200208940453075778302407075305071082688780585663691195216066386132857153438327050349983803285395422666918680175293306824731132848696175299191879118721172265187161148794235489995149894053766605041455213758721906686879667474812245778280043086290711684317507910180435249620664852400354123912221231223525305674266036567281534775454969011516893986968345131107253213754286704058755708749135251180949636298807806575251421050602078403933612990871465831932906274580640545623238357038686754324353877314849787357666213958340499684735377289985811823038190291328569340796305034957524757625812184500159320365932094190279781536697545543378120127368073071997462506692171782942914426285510813521469526304073436702933205113242693857050739950859402338907952262345190909821996700552926294120685895320629584861000367209080747992816762091112468856830919815321038851323842919253517961167088821686015246129762981018757217445400829000031343225879288560106600905079699059135280469861021445329933524631060750673826417367496819990612231922077015778005048776966647386768708508044839255575702080603128282864730671764748100771483463507110471900059192496837546843193005948674759525332933083862342250887981565662861328651060074383351661082181426027363650376988268950461788186346372395750667370967219406665031438187828726564686406835167389468252121076512972805520442355320847623570790529429378427190146493991149445524632620029028218045348838747654643502597303476728082170255317333261740256269761239213244368885974242981873257028260458151368997648645995279834779709120596688377094615487046839945645850517340973281439008301793263103724565230110383258387157233143302828795147779858587066707697822612732909466913933728365597548569833199423949609431660047349322644645016956562231777359810085388867551057403940422258847085818760768373985951409994307185058861090526432871296019232205828899230756416129239027777512270038918733128523336525255203411136162823601134997200213443905527933954792899443660085315525757165136840607226904534490400026247096359952816893908788503664605187344294908162474197043919968677605119464782941316066455331566841471937776384767887905908074874818940900147603165437057818251476800906658449398664186123780436836036428190661293506736697482033806701315668358443024027159789161857769706685974951759209553193510966884415632554487928091709829561602147833974346346212107597415636843081003489543461650875966782027059934746590635957457248958249308522389465295297268428061179994434409676288217161793119964387522936044020788123942238608566349365499622270456157163091464259744869211272573303269527851779995241197092389833011953072157864349363448406856529379043006134160252810995433356172230957332214285228888976974425956557274447865371964620228491695953858013945755586138683659889726444679124653629330372009480838548102799090351627686184642680112346097625686245717027547529045755917434953641388263527582881312086203980042420377122128212337189440432886635731840324361862479820279831928759012498451876406063801728130198269212968784793489053862881363951472732241971652445466275312049772199975420382965922846841385073593832760134685095417566118006981476215934067237536927632591267722713424890333915693790858704500389738153863055765233270968507858400745158513844364354907242499231832213709989437405121958076211922597907481722769204220386751453514518504534037544117738327445837723082899492975300798179678550191975944979221912869676530603469304598229579129042506288320168219268875681426415722685814891012838628599187132865506224977532118810624096448197374346663070962220751376915123427149158372062316726304420571244415978221989760381847901971091444667291731940708113423095456590452005258679750678833308846465478140673329053121174155228981089119554887167727599490677447157280508397298358174656313261047008922298982101404720377533179480869420140575739392239270512791670673978552107066470104257772617501119090861016745653629206372575707334760655997781572379667022280217315606074805472331509054018985374514642671008561950484067115024147100815749756685634517068989929191978125432153059037569566175049877768253511550038547388419673488775538602489745251304267021356604632733243783986439811157040840798970287143060891016216327245690669158583122585458714135283412903386990789541986985256670049414517037915869234573495838669552448112332064289232437062054543294297194987643336350165813815386888596174523049760063444218417846512976820336494375208922458691355492402732757261564777022143225691641665862677315624770270794584361144804634911581712540728550713632393255010925701066656130600646329510435422563671588980279608053560028105431962002610340090323247549045504416743032571193153472974956384263854142049077486985278866344291763107068317204789073790382708979519840724469923687564137362222149380532328326118672470726313821143158816917938559225132811307063339738120624404438567490432731150126876545619606347729581757845514357419214286354057671652933418076595108382422873160492992238331038537499571415619673884864695532150028250824193333518878244306269961095899093364602977615515490990980073272822298359597715918886182863625003843203671200761090447130016473907203351535243603170692871590047876719905017304719480082393097161837610113309662819213771604053296210038400596751557999839662134554129685272898485336896081553291598061624261339452488448968917561094266908902154919594571673807065158663880842521681167053875912776377406186804088983848932360519312697949039972030192976093267818531079760098936039614354428888052110680094396980075328178282352549268261516859126838233837294027342444124475206563149864962499165969863924777202924223377260770583627843028262480784390573001347801508682958898833699202141985780514798265890821885792281601470389698886929917468231641403229343203134234294553367293037751189516484500925639731334362304628142266088234583075496364753752367380664840030274690836495291583353325402139971444977660874727641061386671242370175135852986684822851258656135460350323120571594499129745332060801771277492334698256809796455876050954357146200118073891065120671672299365792931122480847859960588386841068592606134563033482441431697700680974586153145498316016089329015880506880169664127626331530053275563229197336183255296950822759055317944527725678391408011262380179419926436848343138422375613626861662444930337818989771992974089833683238135814153063826393559327245254906382352407747281520299187183050271919103903872656149139919965910861398054239650928928797596553359977172524403067396029539447964187069396550141930618161316708150990571815841327214325211500685198530071655419310240327264862575611614869296441603978156254129588851222983150771584993329877583190829181524771164061498251973620549302015788615355415551030369878512843811194640684735413852965639429570176649206189695728458467533877499718038179466531704420990137880477955399173172695956474741219199809690813353359153973772101588731044837657138544965612198818081811402605700131876572457257633597623452803708798184024428174977536013030674121536885276775409368511553036957120066084309628259337526340409042380443306750840885640547463827114748802999882395173467036499567077734058050477178262641915142051836727415176210876388986233362563498284747025540507435251747647775450634843702680971748161827287319988727054338545244669930606378389161612741826592667383653079233268958062353890380341139836953171897127408213503581076325584455031445684564140127408144600869794363871324505992531611456317240726473789723661349935233012625247168445072360433384159884405080403530929819902196960556700581746368548897113006235526355971079686384719060423681452387133381457767546844019986272109470990114452464121124741311854127033187844155091172188806231253491780491641966005332560943682488952902127651046734139390806637709809295888763286237612575814284266818304939120750954199287796450958232192566742078440067903841982069182025790370326916362383877990131480467554087484281777080578578861923833756231970838693437232715927527921087318760835650132115312126947953239671613301655356022155115474098838102721183987190195181690760814352136064204156546754710964962399869727351095861912378011497530922479079264932215772939225261386426897107224313358076451636225803904803905664147992062422976403788378543365580980648732964468908139159099695849906948756210218448506942110953812410156893889566169960231239443925478442253464618756143627701573051706494102273996587239232594689929357469567671114618682658259646500494149308427896798288940514240811239119747482999008229691941900074421093592344585788011653637864674338892720752073403902710251774919924629654857601397879473457738551797500467532779206162275663078268005503863517551019418826511224631490989487044264580971701579284109670693771224170902628089945058553640468364580589727637480198885696781443936178016565402816044424403845983826612845226597138164530337440133558830858907598281239844056137555776701578667303107315875431526635738667047003977273862797548439525342223303354426014856952552697989805030246614506828148748349085360065303738408964599387820448925080203772155802727608127995265292686217645524608898225058333730541317586352069403392171373885866181448323762688951335915690795484892393725817654269731942301872080632047041426239037370567581134780309594923907148484785646756795764653226373230862126427738721832269449989092096179681605114955925687392558815518801350898863098134577144758427614674477517484387786568273877228429883936324633340496186284909598838255662248015055457901108161960901020936441152866827307715583383472971148601106284957421772849404374697373088141173850628425902326722675885151039426606503536537259009173722820002974568707651763478753524831082716531958833244400710104913644110580768526728517763626972369488469198034978813762982410353097947566239375153992194194048165012329367501467383416156508727188103676403588935085825790090088804614756763331611414763323465170761530852025796660796641195513007379401092259297575294760317426547462209359742026899259420103975584775171557728647343019490421206562744730300513141996807182242935234309701613035392495247809445562133100939852325171159304183508777940935679301140835544489828836281288688567664909233685485648317741525127853718601684076074784014275320369551747379068825031331210537837948609598588428710262468047724391601133977480994295941615645032601387616173054183513042998902159304197719137763488706676343986853472834647577511024915806006222553290822233498181721740258371221096752949382381758355044208355050998667012879367479229171700056229394029593093597434531604129091773977420079070121218747975194562527637777461625022079011381785622097076906821641033728693916647944287551244908095938753251019698101030579098346573130034604721071187167506648852334843863939769824495342158637040708332722360627250567648855192759047890032379406898696576429024102371952143167413583008878336359166164894897383809501027806665652738951255486788040113726112191106733526831413368755102130803131138467482230150872409426358933820420929727942806802108865388155596532669795520761327332865461818222653742204854442709379527963332298877618001462605852888509504565686263688987610963967484759775554143315754839225871102782081038250698710923077088077069358333494470317540175741235089713418635995460049835990698883059293103677830387526714585880810126539878729105929459810453665463196417546251320144112935983279476747671207116570359754064930843307145210021120017119669339091407074510315253726531857625997747610800514055008743194706095366721127497786609036194172794644041516168058763008973687966365607375619795688946694645531527565460112256375884586534541782968872354415048963372789227547180650524904716177096764379668437766464775576677316187520407945805871410248748484663414831514709264670689456480383744878464944205663269185852577821060363043692728939986832918365001566651900244618666113792143643202728629801827425961383135153051338811679518828323767115403092045235512915417016824614376707589384403208092896388474912179845554210898445255624365301654133645337909959888697416232694403324473966794496744572627161877651826167455617920590686766063627155081726242246454728601837766731164202441616351787100130652109431478332000674560870685152282136611843578357111162792526874691064822622688116350387209463920824570248878251971533241767275365891977483954663960418293076888595416625345370854398718124648247066825889164482177687953043877974594947864453010877350262819243695354667575771796153272020388466920482726702957939754932606416387404015289311125555749673875081510219167304235165853034213275442084128872076401127114389530696229916316537473000970147670523544495825937592603649723251068739454786410404234706957106185164638033019971574828155471582406101973356559970185299560613715928392105841091657982310172099018078755086762771810602228919566952111092854521929214297674204795533062672167374209269229165549394499842134276112776312254569753524353131032969340868530956844135340895264254947055875435757558521013162537835536245792633077772544716482402381327647560351458806194587731300924067722137046836922879463656594055230925074512728646930508766654288797523674573929813502583847446428529921953784943258607500812663858057552640484725185089806952448591818151651399557434277102797014721504113791472672048085475579430995551096019358756111616750877895828767593007917260298621170553921351870059533889208031960463898413664497903060492313092535270588030176094065323766178241459279422909026806452754549695869310937539889205743998065128093106561272742688970475806074355102251116954079535133473242468495860311628764998995677503830063060891706496098753406987705705945956930547623673480271188137541923121818479075490095729978748578924381913060983157334283035350007131363601743270645871692710843283019095140850555207958432724999540169612310119689559685274759494446298553544702648874131668711633616117830826148816578342342767663749528384198985785347209653019961398423297646718457601103376159034728594428581451918718066635343628746034243426087121578726375831749476586212069528630705137075799909671204985441069805112780049308023147929174775869886301819431436970885498277777187760153895693776824074185127544810833557209619278244772463560494888362836059621974893048704364360708024659777653425184430464994507527558287068108543469855246433289572792059245019601553163831172195364408799776543007638024564533804908208110669836131577287885265377981147841617882479419885668359704845801345653511166370479160348056366841535558589243358635783307591318213435380930046575351053523362207541910932462238620902738777562205352383030500039841838813170239445510121797518654519974582919925093301845271613857037112569115734729647458651639779286954343482426960032432401486236274982305689433211337355366086371080756960186538621489433060231936961224268608538780710817402969368231168883394342885608792222209081424580494191565621381894298820184589697907464290470499381286056359811392296002256799012561532876739632779155893271601336428998746451854841941695203110288955116796805878770745187334090274001548794917143197177981454404700713805183631687611368403776344036770136298234988452759373996262285480875122119226946973992186817724548687908841224809601935642841193597022275458115798364799692420132164363901265458441547343421406868455994743115730636851065107201784117315626101442775928772004066976341896782379420507275241645889379907770911078172767156815321613524815776987945298952554314758236781783562879702098258004384539705036143824874114315865524670245021972690429269504382580715056146565640923348363490629862915140422829435780825425959866415611154217961796966102282294226956923100786285851799445206176801689781006210619291463447901320276355796175220489064056923049106504957339609565387680220535637353713672890820612541386486632737271696493296391059516297507126800567792057492417495815358246673334972121026522479005334262366801040446991473311381183731833330878991891884288014646146030575677041730782203006180268756389000046191741006894315118751303554971904032747045921103165335416374343861350792489761848461276164180506794167612898262673595734365255583148217996535756426679320439181540822504267189020049335293539440252859299813053879040023306102393618886578580336403766570609238045917716613532267993999145108443645122850149333814478930632050747363435788073396957195675904598463766655779991969479372784261416159350142699277508306421292155767717373824906869860823990202892519213958755343232839482250013600202657282459671155414285005781137717849323324740790919461913490704586583600640369416095774339983253396400602065570267522787643403412313636632156299352737999382572925681812302853772919283883512637799570962209733248221158463198790492658495966024090082631911982384473814087604756559592647016659387964092062789401916359737313370260517355255815584919650537320890285480342581173060172594936169147433115799880927995186029169391587227150406439125435177343837206295659743565566358657670343430315691620087059039665373434464148080240296394061761667698260510405382710635588385565727868868812027581613653156142016730910695942760108765579697669884284292958674487673783234352659786025684186509432101664690211312586903678882485911193572442682081860936948873025682656516756677296670984348271504240672868585467380265458883883911363016665026672887748778211258947141403513428858977650989984121168404219548764978078400407040942255043376552724301433726758280774876877006015902671750659838439157393583102859160212340213704376356426768160714056856822067019948292392579102017891572355734799052850406076369754694630483503332943901647833899312817634857151273744827148650403529965174786398588925858665211481239773734521006931914711139443059577486588162244445462646905293397243408301932486344423805594066538243875135111251230465282261094496465388373825918658453107639292004379275630649548427796902441328357630674670011127225239952240438719421395895343118013014599801198060324291295169756159389188290538407900476156505396669123373414460262367505104258505852610867025463721418585593192173734366287955901874399942660775025511046537677422179321452453447237808773562851755498143486765475751483326168966028182762873780899829604360180203001350515190887278956309573522329541974076331743878739583274826510923206610584498874918439164887864823424014033228200734961723923932065709931304665380512978858156418009218536664253424783500589678612620995806285511549024582166169928649650074162846749891362445561862162924624593470240312685535398560054768930638627389358042995536856309328107327309100004066759487047891978210526522728504689376330612427956695028674355911341507764856052900506317968762583777551174896167725342847870155564929276967698627567891051524999469997742588732216613203460933823317453964129554671055853400932962266125137096069861830624857383772732343357262511470124479954380571780408674715849775200986388979117281481940297148818964998365559343358491615284218837320680867136628435137432609269419819726592982660809983101884973939828320325663620793817521033964691007119677856042358588367225888260706958658897645724205271892160323968813049947890565288875439855730969254142394286515974421196185193065286141482523762646069800727840376260114245790300655193854332838640426940002864274474517216667882462659973488749432000510305622615615347841005670475228683530481800450180024028411894485828876903011636484148999647973988486223099694825749691648664134267749745676858975023590623388728327887736948027351401189426720745334116990947550654324633984634294401940076366980839854065141221105047963077205938814579843095956052174035789274105917399858542107628797532292482223179575734175228750411038985667317780877739299441054137416131829813648703638425032439929780820963069387956609014636851039247039828272023154456100829552623129935596066556880387853569429473221666011547826911749938363182980009157136980128047464138962180575920378242045281153006265799742620178756532728789377048716636086661391419741166745858731538077481608526469593033897217716564606451471343877593323936456127824325155029581487911807904016910949631404644902443889792226547003584182965063670572293428111559746386175978029800706337891947107656362887038387507423352542708264370899310174461049851060134330855248576215664109292793268774526863212612521019764906644845543586976432876700997666809872154249948914690926696925790831317148595941655043049142709799850600354841077321667262691297814573630796209616054615897525917713581923173445070069358311191454072224575998042459911656184654279785858277303459029557084457167061893083367104460937861434366460765333453736623530022725530709482128204649882901061664675431773394470515834735818765767479475598396393986583027536920909774399869753681884430082077109267717867400111564336104297523988701628777302395014583278737619556360669069381324859620084907485526254269390562441001167419007375556581025413819520783941390830381091045839178899914680972724741377821503206723237516328675715580322489484271041681894319105308141772256069540393440790987922446890241532192785070235267957822323521011585069066144378993344675252074141197786013189845741753567817874089572917418451310983971194601501168805363810396324708371058684024152299257084942195387181052122093023107313250231251552074138142262809548367236442681008756516332841515299760282336449732252074229634271649021902879778849182344268623946167961061369258006337103782047208737359338911265791392720780556433298328618605585753789989252059167990612955871589436587209220051411384939097638847831589375325931709921150758033795061627652116619656047658712489786513590733572308027087726844260569334176608250486342203820015074951312002134526961444826251691750363155927421242827203739891222566776844379007713173497019236955074903122287143216285373583203302970184098044380771217916491548430300452368694339740499879398284549743599516077690522548285761985127611809769424927540238331771020445099138593676418594117579811039707832294318248728633005211182305407671503777508532309283969406490089388499879647063272452562870934277261901967821710034241041361179468074879188354689784875899647404884323977776732761210614217603087999477844682309233271638533139645157364269475136647298404180132363066062827881336816242573049889208191042855687432791044826139332620123244556292082524739437916525988255590393280307069357135372341318111485164654301226122764156444120232710784442833757617861226169934597966607000424314207409714555267564826324994408349769738713138070851178609116206342035712699898189370742286018290396555131146874444283596534370830069507307237050988858850542666116265360513950429064378302900070893837120622265246190221912671167333345485759878367971269959280248722222223889982154285465145527266410615307897586982044320039592188345483724767353728844777998482504788970459274764731571575705363861666242451976489764024449942043694031873716330714763712279783803645635280561462549253011435224582801117508507301346566074934679151362665287935733894805253675506077558836849099309390383452006264991485362329956420678960111904509567640598080496027371349652027765484546907135904193372966735673297945899825625308698902241898138637961653034645532519867391995800350091398353037414966465016056208439468709039412714833602748828630779233559564133867651803141219556468866672129386828701528388723719906030071060172742860735765451733041945210129057474422095436482247353477356413723403256894072014315830872701644499202761656556655701355797295977487766220793100933675500096411098545627064541436105343228034015150145594554004711948273945056047936108324152920606226583488571524409058329913161440559501200923030774130582716227054467617011324539723562693320743964961484220771551472174400127988489909477223893755030804599325057602166561093967160788968897821042005965661171561390127026167411875496032892425027109670169671109209822099170710389597852337348142777294391029001087024918263451974171056173171279179425621286656425782999212807470570001058137666072454846011157149773999742053816547474967696099785274742756031824853009369898664920771807378316560976280768008514602108319757415648332655083559950649546797161668670558717878473818108357878159950151259862662479811126907436051062325157051654922220507600908292500405499167915216433165919953857201802099497865053571570835629860058583343913822277175567823311329031077933420691896224293642172448891517815812412033704238202388219585565348464366620335795688676707914730960134154120535507165169345648621698995656281816289224113010124360500603890711903679997106125609543120021135045849465650277503404030449600688087921735807906931829844300658655589469611603387444388790071602115669803483050951808402040977686474648680457749098344306602551847206531701849826871782109632625207520239425677004750440575738998059310088583892792994245185997771362838307628875458787935654734598484761416761850776067978102021883448774429959059455138518331269116891704282854068165001153432048490232716478679994751926704418875420733470570163735113114442663293340017979205330578283437923882136552580418030143738239958521256946441114183940972195148190402239979613678785248671414251422696979758426845918888561068671596400001669734703901720897815944418503205483526725581289781963668527275234085065825140863110915303317515816902637103885891751220094932669267690607163245457944899312254003602224148963950977193347154671731533570465821898211548632512727518558007565864135942571387947237031995549536006399446733984481937951417696164572286151821443217342895515716006722590082934886031382303087615028314525748901193091626235024366738020056167351843859673120077747430189791109164078565922202062344767947966299598118761509314970187190261805692121186600294159707635034814494324638996048676728396263313602515107325783224799526335254280645283132355747978875630361267368029851209463643494923280284624636570601888560121188324115227083928539242879887877036239004925681308178356500883798405145301050415334904475998768972902769410408317937458102642556665026653374308741036890228526418104567476533235037535186225124668930020783906077882183947697507660459019786256605204036269605954373099825529185485042659873933652293923433900266987310674596873471202826714711212707060548527101135582314150805047120873580295187323493153237790742843401628456855877894297438263936189106417655896390883114838484963920974988966813713044656233105535245686008394242919441913536559594988794525289050012029326203645397671612189482256812244254480032345062899908696553596043656148335203191592843499279981498223239813454715167838258220371626991729337416962814235862190989011680813045346839888699948097082354051302017340279350892234215032594769358796140167686637624015883941850324267444159977005615264660919577495445357181975531475362432261358990688941082976531597620673464194744450753027890758699221442266450173184056150083614555896460951278754959524481881459120120005514251893247619163622373348740990262314285575857922235408038649693454287484671461884287606865131875220327219277809703249853379933598162020471223206645862183985963085539399206485126122663546311157537963318163702001007199162983530461701427843276123620209415646354954411677025301884707493615226703983777482680418135239411630211865787258233943472905003714001933928939501658608629631252920237398311548343528985131225657417877322723546781419295964107397410730855199397486123205754848475693538493184546881799413937849016944554241563404642803742716482334660116376819754217749697763761952364342162430769186818965902093121575825850146460164428080969874703618079665844220974989997860258022471352782883332488066923587554094738827913645428321723854525869854191780791642612922609675744127468403127165083502750124786256489266086421636050522521803831717723517811494122388012697611981134188839128786064653954264452989932938783275275019421645994777371795324062676348159167433848702188732310527887623558542270947931635564935858828734298509825914862043298186339289636114487242341986650276340797693183539138025368289340959106269739174378875767364854530300650030952319345849883507687896164167011954668222635309804188465438948290770691965109111094805414267166747215195049991813613655769433890994812584275702840763958913369780842668146314756887479347330016588616641719719915509020068176184557422655127824793536387143847563991223871889786079377596952431702023347292718298151609861170302817349001651518004436659354833113991104654334768980154650115979996849878328825647908005913855456979554112063856876586267116327627479284913828369393273027986250671878268796616105421338324231749804993047967663885670758408633273786277673386497566506448703651004526972979753982324510297929043897274880488972656796634321707391742385444365094675627577790632628328272288471302706453449447061999363625200642842506389605868558099460141446099375056186136886841062707069174737269234029719601805371224799995358333512970403461562173049988643040632370186592726519295538989728052148862559467340696933549358019694721826343812330037338812768652173417406411837657533570850900602701804458743095873582471792837104035199546873923494843556093868293205153420811657325006625140183212812477078248036261336283290664773111868587193768165590173617137887548732734437194132472625261928454372052547663458768769629065036327124498669541637840370887805113856618194306940956520631956467480252470568937313110100723762159367832318343256379917514321796773432018974467055649606379266497818864052089272660541152659268059252359426286462593674708651198584346845130289542490920050149303066534404553676595810297751685503115484676810635194187105717800473846766785679215084009915405487866043138494483332665676662852892277756719738611289179163485175335778643474621383852157446913161349599628786319511509345607606484970794321372329474114035894909528207743816527038285938891073763221928894718322073265384085695654140658927787928262019902403391368992993956768948781728893393191523338261714163950005978886521739926110977897237132818138358163115764400420039609740549367833747228290888397265848618958376815518069473924680625104224111366546590094354576643289263920824125674535643854095071920110592031132484219600819585739385490819751606117405961104067543873191889603863384529839448115865160476138156706684537341367656967656107930982526659828309304934401592968940982876723001199140526789833351639795907920120185032033761157014658299549735084956652426569361790271268242488486054062661197409152432760600517033410731007586727460661926370494772395943115770054468065006646612556974047708895611689517063769110601630049699965213377208130805924190225875536180453188328720318584300044948127745485198530709827578142338314624741856429475780901274737106333252812222292722709794412527370694059655855395200083849564876939128873770580605871379110210154035973990053764229307734930581927490974617837159783963572131809046505093745743148531991073371723013257634681884280437983315985129994717301495880310292326142492568543022585477173090549499730493722200078780841317207125018738434258157923781142411451125260228736139707641714493481077528052218757501630734975163997636414719969128538255628620586362952777037322067840582042043121956933598762840121811058570084909611058058092565092182695523016718170644509375269230066281640675013747143670669709392026867794097879555663171653646431722410720987210639657893909737594442513435974750002333937832476341684588437687504180281854563229099229714629499881929030518786768176548521297279873060785716813842906002394175474526073890259259077594463659043290034665535794771811500578050118598190368529366003528852328307634217519540709937786893075883544541812323239142134401125218847249108492498147171728792982698032575681232526588552438009146812086524259172063914021641271078546311045892037807398261070537627065992027483080412437331414861786825797561031093191897442080331308741802511498971414279709473910411743553923047717938267283191469761294292742809933165405441467674007135541641073077261475956921616415874878925115967304270540138051731361658477173815070215817629352486826890517868751682576158727748765662408508096037790142082498919867776489168358379636331110163298900435910045864741795474126539857086115213705622135490476413288152718448353819548052279302827871738652291762431068804831213761819750964672364907910014671422449775327794478549926516185967386740347687934081494485290859496508096795852445374617022217796539724813018833466972480556203271424184606314179581242370838744818588270208238315890967967566640344183903759680268992589240256334250463582764105905590112156060581569121033400728240285636682777917952463164145557859628910020340646204020801007476988345451060999293108777576929715376466032612057967549117693722129727470204614669541490922063203040479773899551680732860036035396663478025773092937424154039225670802476524868672866668610374094289583099986072456419263362382665875308266923265739745514144583519748787761967247447865085469424353713092198799964949892580077250905079641402975960606749385672603926410431558547280002884464752599442249651600585354853013957252480164566772013338140093815377822474508791856604946577790471476936924347165840373204734390209470497685637545719886237326574342208644955018611239136634723738677069282347457137328991275392808518445516997651359256672517926391925152391711259522493187961645229398244062645551264361863002785457106842563670919014793814341710123589715836648500901409119864633676562740214069769595729565630037037186462287277134068988695482879049265859483480063549761178714395002686864599418665302589622097727958643780762809022906324217596955950901376708806912911080049768568552709440288951879708572534844007626477858822676621358753939694669656267799011661917035472398614733423056690330262694235523879465208385347674753710658926884079901553837615898153466312646594435502518831689845458911985449588689953128234458483757204441746766507498979192430082076923968182758383701659800666555503067849246469621536019486464155085612763909657289478824392751286271516520236083496521321742427208276626074057560594722253094515530453066402413549973678850588225992431845850099878267558518156320936553471520694680391306277634186198549304831239941680839815707229187454598789830144301297801072415281584958752154943435138952578711887276797681394788892531656302418579658136158507409223246063634071795185867686206596871113495880056603550347036421186037958167873631364773723109896202135781080828846870309209419688315753840128623394096631724600817842771425216403995181564991574303392420272640950279793584206501689449310004131374903203064720127319547459308167236460131311840188884319368425183437679912391413481033104335279432706870842915194773599607170444581419909771558072651678345259253634806486484962285011246144817118050711821685897115627986728875884765710011338820303211227376862432671066040085332703481175703636879217852484296151396419437196755618607863688557217139593945359412429929010229364674358654977231857150191171245314320330389258686988535428641672951912673411793860234020205263894936408513060193484254272873166798187892897428803637000529744366623095996559146337288364394945293375878716780195072355721344291852142205999933641333508962750804184095336096721128252473754811831214385301614891995591123312911369776546748317354706510664761190690509031900476907102994044853101666202341867610759059185640444782209416367525691430608630346474288260750871612699691856582479408478030133848524003691953278100843246792707690015006378399732555783168443911031645121581610103163353661726734040896257210296504293802624644931926739703322779062777774872086059945068155838880042557910975494538143230984632908335798427880364563174449337179438999038115609877561341565922318130410033582884256216641117858060849208175233088165726636344233991103233289619007097108210937340369998642511489187566592918982256712650911616578281094021282288283269987929346382502489977344364957045756785145761227930316291904253431469479785217409394034521403789761087896353147139191754796280518143188825567468336445321318975322998490570814993737008097186613986618533180827850924946982792473404340142415979009707898190924145275750251495669376613439453903612406830365913351299274365837684459028323237679564845030927667323356528184218217480146303236221604133451544055080219926323151664951897226716980310949618255972967384157437010436130471605146982342455377528382623855742414607443443008938747636421761623477268531060235339243253196801636485559380140079704088771857535818634834745045430550005575298324701288944595525982730685251156124426363920948791172407469842013406396231308257556554343999045543134589058509967718892767035328675607909817144770519570673861578130459879156067111688114502099136031314727589606945124212530709062705472644628493630085973015587200959611799456870178592051711440002636711237002007387645172595082127756943771176457655478081703424956922526302248823114944912034770707750139871125765721348014430337214797615792259059996475292178266750530490016447301984791265171609081209591497622181567512242889850983236690525591406494764617545927849818582784587685907734058145157661663081137755845067697444055850896664264589913235008592229793178042207545508620153646026304125392977969440765226700140733992630786863065237656855589133232966693500651330943715666001725393215590336543045806203718594300163133069597592112817000340730195549895009405264764732293001122103377798799606917699421131734654378060862271337035578700619897530464989111096125525252808894372168783078768939515291570991233426991027764498258899553379284737973187891362267395887328482544915535030827392991119360048754105989964155474725319835528741344972491930294221845992243651656502559476818310573895827519640306644154867949981319265804785684417704372461435024065301772655166742879158093843401944068798884580867884026978294692541866934331960608882773388618432572984355679323060842281298141730868934369687508298237999704299219622228317624152196720535558718365336729201274749825775208999079415114923700195196488741002453704757739845585680056262199417548870658435437933200026997656476280073183841829376804026056352075631880197171858239681744791986449371376107626360661317066006265104230239484395231045866240766652212846753211620814961208743496912506685811087842623502447685614197104198899872855457413874003848796494140340032650182415689331725432897870462884287632462240304615189008215772028914339497569625920519579216036383718406249292613459894839607931665318911405009582452916743906515871230390619008783969218788857575070765044004931129132496849065518873923390600732898807608874144043972597315197471892216583560999913199284491946006101780068744960053189425778796883624522702665998965550731559894095828548536653980640422895326858263661517360261916433395417698353338920851515099934964772534907010627417228498402742598085553106744039395173421187201289141789684225723461809766031445536735139068720811825176066722236255704346008738339507173664021376493745196212900543598943847816491860206907236212315148585404461185394770324970879347089523121869617654265556094366587697069611618666973326188460862379106003008154430140347646724093417810902558524686893446654340973249732278655809078701816196801273473934337001687168209220772529676389972540614778717312104663464754328113642766034354510410091768102478995632987284493369654528105606697868390357272538886838109444604672620741676221764765977929093277217751570529344333364000976153949973901522696893321097181538766892401741811102049824091247349094206410155070103192834476717727686124066142826557745167626324620693495204754168249623543960859313080959836777056655871262024305431164219869653992157228761918249401142277412252113188723833456120624318962082259789369346711664020376456723123188607931459156184846472918093844854702312417389977209114950857415803972970838779796803869477696851364958646459136108610714568074920969731727090284268702010822003909314274488708126476495989305251397848438468497265792776187181448480523186107483615388479312210619869316271541324434598012154709299162642906956741728841233748848230842493348489847809748764969214556463764293620683789037037065290470151346596607545918724367682561242912151174494464482972068368914711190384572711095791557838482369246342772539304672400527293863111018342011433812556662840687274211776440056564303560826265031306262814473702748260994577240318067494113928314939745597853624302675718206057406792737765959595168600505677017686034329555282547403163705597857652868187509627941212724250180650574535139810150184297174510937365171314067884501065733241155618379639341882607396196046967518396808544275466035022550433317343823053647360494061924037902140495827998519661425330172211259837098436823701448481205365530197091841245621946914391231001693336696197097841688434432316297382754374796332404616874162519872961077157466389078624863897962144171903750945080497211255559710449557261064465939835943715757881416852368250630240787984432040801919916820586032483255138436201408015269194395930430047651868844428620219505952843397592519185775029690391955979351818383702874404809691036889542435019996772821167904599002370961234416000036047252914749177793280296481156752841420265645407560332806315731179716223751865982134176458739434889563364321213700214412931195800485574602868003156582998690615736380529685940085792440141353512301978991698914597091773979066923642475649904568486689035392457965129379269533107598668457487424355476462836565331228978426337067411776411562420955746257044972252751393543080698703879080145339316954182042605018337176052354189354662224088746842268480639503704092564265831698770104363859237773484445983359175380058744174126749661260702659176707029138492473728962032738041776410523696923126282431361112862479760436972074298797556648874606388089592235996168979846224883130633365678553999937683466001420213863621775667142358786548433501666458551579991525685237676634818478424095701538705135970808120572600214435740429725124957502837589722375417600316581524902636891278327554205570192510498943439156049617344490795527705994413978346560152745578414104559284623853179994507808421096564919999302152926709744643658761914727793459257108164895910038652956394034494431263445449636226961980976130925536788989597184139291196860829362554160476414922539411260681639627937194370356981109823379159942413452991102338578978590865842914486952038120400136407699691846658551755248737642672986425386129538867191337105635667538291255073961850223838899826085535985171324319343013280786898164691368393138917846153238183209664949011223325731529948508361440917502282122193556453526080498759783015204415482107346073144028114325935310054221109410251723119654212705202045656097165627764602533112276113734573696401806871735160613718604524309445722914124887291252883627307985141796086092447236201865636712063176959658046025999941955913350766613968751590518501197745409319873442349391012146186998952296919861351182935972629645245938222967647178313785995803785967697572971402421705064644849150092596869464791142565678344168701760067356261525959386764845967765189832593086848050691813338609772890121197314943665837845443303645091557428081636065784190078582895400791586484147153371478173659643863514233403039366428548728417299272024969696018756299021450536404856894989560544019576982739585481567454452486892338748715590491950213163671367593294090371940658801969789860549362069810737622041755646610665972842730529260098161839777533684146702756575698097221999329752271121906384985324806911355089146327778217789160780490628032397340053448324803076517884852712241294881066892777671422635375605770008543730339613626114718581117139323269977843314395733049974186888459338289259082716239289704934548644252327846270211876032353216521406823970582017025017534379620201127674536097388853910500921338532109366989344292454680321201706892418681429140062697659824836970391667922840653255069400922656804494015332562571065800094543333791863961875064095652788778529021372385726063404461319546350732355386592105212166957814079383137141508056792851975154884544007840031403872589787314176845711873221632829184278822313585990047011261057909487760916751326422112562205031532313035702595517726644701275299864619461289541146200766139667482505941211162212360182943587867243300220771328680287930397793924667588632820749579175954192080854876734092581302995553068023800569338455729695027816577987914682622200158675259468954800230308117017349695490923926698661464279602516120187909234961751886014631371453918425104723414821337101292386986820351516110431754682816802611205477156261657388140486664246062387524136799505425105677506166925773178792062856912525018091445321239162781846517330992069906089396300364277782230566746241913621349857741413340138389115107970726367874238570114967994823261572942877570019295697096596786584201760545728462453850954518907714918143714781430646097705693991492402486236540157699581013382006250336168200549424811032591295817788701714626615428722276040858310531990032877539623783852704627411054955629234167000388688966430334176351952570230083546458241078077119914995217601134285090026018617012345770667858527710554240504353947150235287218991655653010788509743747737870919504114584299527693652210889225237603253323225658350007284594316252007857131550885626750008606131695939493463670637924153714208737737111438432339838447683486058633879336447401429777791923324533952615269925580740132400645989374780895955473422766593281405682710402331261947765753144312887427844868195199650042966251409440980361955877542367359378529423396047038399905607982810321001727193132034683812438591083377634727076666815799427553274793145790392965281352614454833180456842793292504721006535364317901066388368787436533394110810303904720431100089171774161643617935764433256214456267963530695795134948791801450288685387836286850343072468280591144546073046517660139558416208847429348053258888401599020778736169124542475319673233747391757257772460145934533801408779188354517713126756853877338917182369294033605157788936248863459889836692519332666667748355443355580797972277591877227260913233647924681567077726889928296579183270409778787416091990025270460866206334867675985229403374608340621573782086687341799078230638048352154647314156758495603584141332153112894599670266150801706306141862157626651711997830355803982682278488285098776540260332158614725392896032684264240925251643599180545953066795603543209491856218249293462970311568958498006507766476835677755993804793477246490877237947731803743203784838022674877167373300507576201114725904986899148203510072635201839291813118800346329239354348781678165231624906921308174814261424054416076664498306997924217764750979619844144916323371201816560223537474490798133116633849207396194510368138026955092410250332263222842107429160274209442010437339236504897259075443620664553883471737524437112232747503221522198991330324450393539264440701457981766636022946368499844075747266282543971203905175120496452299103963326870724093239124508664753246044856636168610693343851785537060796018914997757615138592470041261051402466397514802841940463433771024405451662542811242857563957848649640678795473609263789065895016766620323562692170100288012019031330533591944278038538105212671934928147936643859801820463846190006255035540408680409344125615984100232913467443309657268675610821609163268537819404599477123882231185855746896552814864541183890328245962962369440114065464364746780347682465291007166116477513326309647588901469013741400527519258493769614498340504712933598902166550424603847983241779151614076198899759910704438667933078161811478158596245334232921734896132399846177526192651949693796256521335339615959824150576160909816516346876897342194563023921459844722355497845089104019510295623659331061224091254067317896046676534047940123185300217117260283323699951812185533603739494664546807332943082871799513793523517560388383009313486937909983295608824715438478675615957800504808132410568479430002023309639080251058072303789458148713830451091429427634322595283346998036790317617784967969049707072493468106308803847814818215104460643684639154158566704723889448126624512049217652348961341256298392960765569203735736049850283653846162529648727778979278735447670490697725512532810759323793422691831475864502507747707863467875588253455189969027227193134526479435826004427852276440257933781757758520452547253023815379993101029082597001937513323335233863015669150026640554328473700321618204587326181822880229029318630985824716660081172975424433430793059523350451096306709636808096440201485506733209504335889058475778863486661445656664386393052508465022900674749236621218162687107820428894305554442132370485034559514555880459350594802458829106890113376765478391634152809976753190259102813886205954456077967825119879545693691069731107335447315004404862205979951967018176440070641841201069350559228714368438263058733771121898675454912292394365914582874669293257237335510642697524024112509416908091323033449229885778986324060049716336189843983288567705399045474995127169286336449221118452877220816166732874276252018160180604181106956122711999767364921084094525610954675439136510715382553923730315470195130744970878940467799749456840394681805222700191570922781513311236817732803881625012353036695750998263357435172681658895278918795046497847238587745303841690215025640011112019041949499171650002508568219864377191194853566271116171115407962530164047032969937920496406101063607158593729623616869720261187116736916555634303744015780332317107719743969742512310386131288745907139979533575559320594573521426431022459335556743605079468341194852107289710119136419147111332482601369674995906426771228408921379303357399607779256704710458983344208408970496740449848737326083932100353871199896155475979895147622966443437226212028576343378602879164851167261858613872265148327469060605023734157823586275042243535532316987987566468797791687248365441617824089419240463235315391396723645915850451499722400659369968878131268079842920368042299219787393453192675104899406451348087091760662556324423892509841156051557830084093917335251792327589436909562433537793374657076531100272278623096693211549231486626819100651552428970707432994117271239998924149084980564689100654195829039490395589057590454506983812944101315191454340541811958463860821765242767550332135671547534729139416424805644956341391555240531510004866606100997565025440101139561511014105560692311212479318724616288663296885808242942638061215835715585296048742036148587165713381692852085140599869486696965690914440074125336572692650164797751239371930188253168570464518342701386392176102212761750843583521749217420936828696688654378544880106603842902214472183179489822670375869024016000132208303513315314672696517766342462356176255947797445351903328241426905681267043893396142650507648022477957427013666063112349019044321126713401006071227827397838189619035811226736637636293455067256188898043751027580201822031321228040800050406649327499134144413859621580324545673008527244808566034146495732440671430306088152568869066571380955072592158129765474424633817958222635192625598013772573830977938970140535386459131412434996083488873093253895777445588011678252631342511200940114139535197239459367545415743784412436714627075285993055590315656994116578608732628859697583618727386490883295331506087287737226903816637565868546159431403393209232227171363878326254071013126141939309801614773573367793876740654884333674756876712457756251767211679422540369297572161967036150041095252458845707986846054663397770449875176628549067063354562185177752165615965840171402074430616574236042091842000498297581736648806925215638795055869337768626571123494319097597098073438406262904361304404636830898900018628049133074533257202492528278248936403462179247248802560980750707159134436606297058500497585229516839116540117380992987551581312759778920596277284889843011847729763883034950946461875839627144159041732130152041198349436123414017038875492428614756457768014716813671091907504452127742116850046703651270897203857742299402283033685160163495836946889324564873571887950430794209639355079428862045539131832644078884991880757020223074477189851575359099353301543206714773569694624117067885446694683000977464055453033171574356490760953621311861477782777444608328289585834143072007120794209581143055272210373275719970166751036148418049167730420522075067856172918949459921247830441561312021387893133756745301471216024233650807262931673648533538628000476879971457632944150610439510121759215667333776302704474950173276050040392646025226917833890189347528701465218707859114658738963360378860836944874183090573253341654026255970498239177952710068461710659350029999275759480171126956333953288028855142945613183142562680290152609217979232639421444173509163234942740099432712854238746104559254878958862612731857418906666240805957721096725366062389429728758160058739889137925807983247364034100429273664582269719371489680743575252139301120293292416854030192385365173231050624025608766234264677956600919203663351430986100065300962383681931520242592953123836106527476463847481991561740995039362477330363448730136901001816986943762768449181877594987054449730579671973544148704961652600045609679169129620029826770238974162083837413436646534415615609243257296615279659621578642077497389293112026584458857240391815716551187843306272713609539568544240012574695603128705196069163042250475746094315410383302205242266902032377937404220933027864881320457941540358192491871484329558203776769808287387027767871935376870540331375054413696670204603491656205484016643290484475837446093795066433061759883435671005509141061342546368009615354874121530744653430089062412610494715136032876619651860087995383821850845088164656106756913338524187425982275437436498447574072074649446513642740724559618103030662696804341760449078374913872152407712160917848862708333078471080627766584521093814353186372796402083600293400865064465416882102731886951698166787534535564856953570990985391373319922328137241819660206808952031690827128218816703272490119044368350891974127441976844449725442272952065894122446662497260409530652562881262534698983718220828335247887311670555893371873881542554549999904582327376589012505730707846022821285346768410004196483740736265329529697324216620419726237509234078806294789971514991576314249763277762959162442287071055077783736541595726524011433926705495845048358097374187857453738822079828091756467599708349523475961390245692344322372296357233794249656795735628021768953031688970548566590691594714722221931403629620890790796680871031243753828815853938321352945183697734917960000641204262131286156142189763832966672625535943921182546244915440549487274629963896482723979603347845367153113246641427932453959898544448315358144944925056933117694590718347238720775883971858946731669603216502394273913049622630144494429574448646779172803231256317523218336677181594212738136508175279767795538210845618493518479818735266534433322239892754448077422037919987117068564883455640546075022792533837946849741691564500495281446248517908536556476306342829091019079899871979192200548065741759703619150269509026984895567593180857377138718916119409655700636151757765964192287488492411846746241229817508967248105802876093167971801159160123794298905563285802173844137751322321416463128843248135650962447183551954895899854459559938651937806712062988681212852497136924361555031105877088304138902454602233653335666575037712221346722471551287822651319020163208761649503262672665510270719588678280187687374196667688661260571985403962295215874423583036170834840683707609258750597644833876923578643329234666897793458316842135822670370252579091369724969013070921360766103352793039355472508055924885888649280170917413786036201729033663608590116627509491088350497522567927167012008485243360038503868391291638984278691310049320747694940298974357927864624465524721729483401466420512574604165277198747514019428507016033219211692374246364621973262774038753095013022014511508476588997549333250467535052821882460640025799911175068119666055442188404446753024597416557645396353648419945232730680366149603431550807668188478081934231652030995165987993451874738249046374243342515924862248014718410495904249777400329167868233219089149148542494315335026593601478256639853945822661979544642550436307024926468966230552462716899244363243332128696092422335287587864204963851804481994397648160746289283682727245117348588368176724522010418916011097791304312819469759846250626252700918121393434903477773436004299487081264593588283001129378124874109689799784947000823572362010520243756877089126284118184078531252121377083469144736312746206865482197149714385389590851033277974840829853604628274754055538177685633632603354020736856853834481816087474194351608489324505126061755830271653579605951576273202259453105598600358256723397564374897984505808526511397221774476683682758162544442268430164999412004066073614384122847353017406707015886622287894263895773222961229374331248239428599627419689018206906937965052823284355434348596725807141487826727677433059163455280149719420338559551949288840008868436400684333133853961698024914997447870150041987006460917029263214150483938927171668803503829676945508719202166092157151532017107965033780714669143809282170501856574958466962854057530181317791676951644627508323962235260943075924877640873165867241300943143509193777847064573899476017700533613402444111171538562976367247987443557783426447961184495622370882928471826191257409979553537575488510553510254086442882158433907297630524664202688862778863840629058297885184417549553225000943130897503260651485988943106995916307586123529369317098367797079338033769181303936390938471128626541955227272874722172228921296536661131127636153558768641853224301642885538971789114441277446286683633046511595732416542181466259866755156403964118373502165558869405878071322900209146258151978256293770580210364208785225373991637774047634740187791753837487062657652331191250058683526937995492928241532210002076545003923608339672340573026190456148373828698292373485710045464179301607492816854676807532747490385679116025024690247995869106857558991083755535039845007596505482598770775173664799143023635244676445408935795883287001994181817964210765859215181047429001318034689037272451171386449406167575195274888460740235100026252274157413381460067991067719268421928060418329653089266139587742876309879829294841266873880126015847297658072570035785137907379495812056776788357774432240863301511260760573359151936106087667490075961696822862052602435121527690493731201735152494126772489424504394007028183471195971303853918592957633510185447892938323537787279530368237564605255436541300261846935508280930420569900793096057753494038822603071210847184710003499833079172722090064878428405687613116931948293055995246486183219663816445937822708952025474913910126488754289848770973422685753838394912082081169578481430551718878683836568432035993831882260624293798308526190953356512458111353544185612649952851152667645081047717132549878527987100981419501261780108664912930486197574118558414785733879075151580063912244003774280149897696582404002030002312398880434142523083666331351260171181154500503899954405248304014400441562357593915750885834319832026432085716864428697037488616315616593806269468817337570165732621670725841014707027325312015600679677917832763214754262202801804261982513110010161076465036510279781063115106824144930766157008199356012917895883924371131807078432712994831565810516836565752685173896099230379410242563556039222592905280257256455495088126547932388465799410406725765312164195841703612129108788381350411593965991512016444526232632928369874493445665361181990501317429806176676528454601178157360213481804754130013657297706203395167228048813278496288988168331911384231138621073359676442148960771987156559409301251078877633626886489545432012247713842260410549936766565653762782648143562378611874936789125406136963469785840030892764312112199189889432471124472451374420887890413365328477910963766894421921194071691437146798851941108621408703088787862475221163947924261666771090411743436225311960187856677828782623138579266516415275137024524979071108828949461675277084583917027640368921007172286873853369360876526274643564364645430541384698553577214510359198776863523944758051129541094582601591761621213920944979769271952675007732428317378650180747113050103614966234613149802726037806489648328153019741449255022202519600641066424510379567873387350495136116411201348057397126910231854821592364637050860138649764816379717287322200385709190597586284264476685371548024175006924070538461057881298571765378722268973255643869439530986580610803458721081706223182557887451240856118534644169243843109570683694612710102119871228419851684588599887818323046153250752720801886153400030576490880951386003840273518410181121176716114339883023744283689528126560923626271561243731247474671965193515852586752155013267178524603552262131447781610091476508839162841948041106696515909752177056475112004782660130471251479912084416741798490200103153092163622861715774278330142775522509245574398540731505492841414554644007943441864232141858405781858110043622860547032144178410463616435480067197729043391374549873382790821394147909393198523967110465235985829733961221358620224024133584046065447064100943474533097753505624180513870457302553884157544327641966392124711430979504176436204136040678134794052726068205240821470515986274107244863720386684556506363818669813093169253942376667721002600546960764638463480342648751824437888206021408508553245836658189842893923389414910470348939652701644148379872396612878464657874481423388942721729869493445758128250598388553703840969666167195301646139059763625739681854501158059801768499522885890677349523644440101514345735267897178502522313031051560684814231394572557303457369781645796567945158780231764096665843655449237184580881362211398597799604969598543540078852514898206647932870771933277135123366423269017729192994857842024972045062288738546706375299512536438206201981218259189523181481493957751479278842931116985618941933596974725144463759519889434910266479236678799272951050986862151948444175347047079590367518170448408720177669296235929061752590470591317851286704324431920517352312851850489833153444483485689561394710419974185598979893894321044114514717180129805708269197687789186617430025881680499410354009046331439789758454488506355700031684274900747053171443960417194174090150293012544953914170751315509411018750888615371299847268245726968696068053702631948175980387049297548771120423329625835409233794233909006256636575667079195581013727735925526488069721713803881217961244357474048202287414115509604545596068304851347813271556002702384878502266117934661322270600499262429987522653747107063039253095922882914020416393336477839116958616422030647005788915668135552773517371660461770104690694882256401296308675889667852388923886382679355030954143091236510225489622756205925686609593777038029407296465003564713652913781645946390255663339600994010834145738912831876318630779705525696462350231939039272176787421242516505416282564866331570873121183954643329978398462004503349803199605531871382007369047067680159481954647197722649887357912208907937458781600959295938991926961188829285909042695725517751210708797217741636087059143672726260823270192851166363716348759554243944935795154801551093522999556341152230641170078687172978878908034356981241696968319105892977537581108615020912297652766496433560006038935905798896996150799926429387180815691595818277796917498574968640062307382865649730728782847214356482740110484150198383148032717101319434232134233566293087991726353072039221567775809067899591576275566339229098325220985757799949173983373459929767830185313790472800014043528931590761398496421320967679269542736248162068242031436245391926044757089699189084900580059206828502473885779173704800891747947078795167433613010255229949507171606062325328197463686084297404515309127147509303516876874551916321437141465051521684120167866866372306182421160967138545662637378447852245054480947764209844744571458826459893791769106786751746395789833322031759183586972298666963283536613295797498117803594510362408501880796790109913153944069884521837879642493251583985190792587270323002598529003199244758609779317208886781342218698822165311125634152154631752557638759763057436925152730436797813265179661266883045687219974263359941889230255911515161660587674719556215822616371443902658876153441603543398698548212648537582012105085574889890987454629127739624344549902076078982950971206374311750151755714334146116654807418841684715148232924655352554757303069793988751843177264032629501799214771736174702299430134538625771085431159888486579839163579364511265359693366842012306464468450317454891581292482193662739118466156683387310184658388529660719265984627538682998661303347574454811523401228930571852700718659757750525090467357055598457439141590376141082266183064579338797562293183799623999413748159632410575053924271085636037409547904593296953145164563092684564654137171130472093242089854904852245254525892093940252354232749854850382033889841444159766606870309638260496333717131726406619424821663579143894995782185812433731593107518428201919773710841322827831072644226678928578029767187303747624009658580776943824209588457281647859390986022773352316490190338344424322157244288933223986504984370559311471680144236874358053566854531979154417872716389207115382491276966925044316312922852040166237044326345595934479870166769222683412699677286484805900438080374044555643296691119019858451566597918226581665525086340762971801262239908260210678734334415054154189814526890631135532455668252276429380727869950071067569624349003418504067662877803766230836972690072885496950761749958992971412630116213698839866547442021291481339048312710687566970525244957980244483822625442409203738602541106300512692798104848937948898244201025897015033802916171487958231801477275186035362900149898288792313851807078882291905970157838924538850214105583634326597996244955277016731731191678472589388337490937405820294111424415424746984063172893666944570710704200318001686286598406920000149405201674891744798991380505084887922867179561247814414601448270042349883628742983395061885721407206731411493250650939011772737778968775635814784810299881880805410802744020237729178875550432383985996951451308708240863691264213730840870986844507295304366060344794729680151188350786614893704272283785957538187706681375351511279773200225538900865816306589270817439553534883759250554425888270297178733362196079777206018419697299279963729307089883497209185009611938410927997171851553738681314787290666517954132862924553456376409500233392942193167373088247858177620338381589086849769348764406556491342302788877732808074249231698273946541273712515280427270662304516264125003580448100925197855419080027940142804446448512711727518202983038112122376567728760517042888975150030967562763818762626803061561686380421553461875512094234437552029684334450188661527441497289516523811141305737183536821633660201944175970100929301303369978430492325111004836341781533189366408919662291460013796790077272594203918988076170332785505214647497067480096576696455519796334832476629194914589633989747457225609181792898029444474658099844861883285499345367448202755604872121782951965161187045881614869161563169272940704867320868156455692248544335756971012851998930408624732200649122002515145176488900081933294627185898683779731515639094909569498628905141721820861531537548518700069201080969358729753153302521442077317217307396135591242258134354018036099990728179009902214443275098052811531177368228761171848763059350394191015562123644585419882533121228496872898219247958516428112234156596710858779432444743724183891678871787500001331145128865335510374743440276164080451170231425055290888573910327384893215870892104203982149606776909537706845081288553212452382979012846896210465323990271754191029998971321353778616703568475744263520586477372862673953279446553715807195653218439958984908511399567130797380393068267097049397835526872575680355088074501937724154136003414016060190353467322898982572826752838712407732003608057188737075087507541733010678679504907087403581978095819462934666751069129139684245402172840831299412693407197793387909306564041615272837152059056479879454358211281313836463355474952300175124039406750649878335572223936480400194437655400703733277907228536879779358517908651897023725819343590620063194337742822410870980206670417003987706681307518723443396288857943240431481898041202316108805793058813859825280468795831013767404124233754708550617241383234101602432776243071455610894690244926781598878593709651088728295317054306759175933148812237624617558360329639825525604938070875111233574753722580780740764912211838870928256611704226288400226844626631466509433074087402064266485810108085166142262822096629694900314841983817425166037698956291482502231321520254143033951983656456971920403533305994555149155753346521742844082379643755640835320740660413843047702762842307211152150122913499011949592912321098848704014688492964737600684098720321140417970087977700311303953058140588573829381491846290457269828370414208653191394924653230372264234564401621235466192924759727824649369112027862046047011181054831910366521694375595861253227835680397061360929391053235763201824112426274081084956329711860158288316638109979161706940229605919617438375688368769744840057676209954757908529862035386189567413243604617565148143524748661602018824387177991582680670185124505110087742500561790626649186437148842221670351950467331288683475241552703013265150401834362399950922750618721543415287079312237611506221557936464369443845807628063186445418697779419235017056452525286499716714689002078346999472979736375974703298051863681779695808115113646682404166360310520873213667171591810345917175263107227996358107336730441737756104558111373412007027324239158665425755981186144667982082421003546495869114534150032197579148114690268924672594892879432260825837592790009471811218702521254309559785898951652038466149035540434209973813693076487965741559481233012593443079855184562285582061811411387751233921421607417860779450579485256816283046349073302812929366267026796844455758373476452238940881946573088093063750237679951968091262581980862217304075280986141377393777983557408404827506342644248546015052561942055545938322923850121716126374126974601287781244634489631332493312987737135466988364704854648060819910731302140014470544744439197463061863724655263241615364679761123636043024121625257112431439724552896589984038272341456082800622895378708820214013198396818111287219782035441509994219160693029918648839786564201971060185337112214821071231629767397507688947601195920346110453853639001156292433026219277701170958245961502441287460399946337673253751488908539713194632521130948880224583886821740443424323813368009725143257018523060260787526327175163548540866583445997863813072602194144855292917652223179420870730853171071065930178707043382651946774162224493244357312793740013254101280521144654420671421317902587923371439796515497997646069953227276681985379143433163359210615502506071129981410594619189228787563250205831280037233785219098158944583246753208857456502027969448193121626567751239648542232425697257859452477195613480803131543200479855483730718802246376247245231189285673369423401729622228193839578162457280899392989591625081706232030381046877765303759698427338729613022088780670034135083567418935998159472780506387836047552112237987950527320839683705050022067111621336318714364877964328021524922336081542016448958249092618772630124802776009556442674386010103996185841513449980954592312848189973124041193102023496775461619854704172077744427817063431269791992011434236842447431300392708579442283047906282832355039225664865506195494764620158248099706022011254941032960565794575140031910070666797859366702467411868349387112705161305158913057879326826895622947649047046323957003675239717043537123911482048963860558823241053405029965733556300907134491712855191506878211836639777375475303991994796221601218733224450320122207921743488347030610053610899727197513030191730781114188317511601665331602734366194537158014432340670993284026211520615684201739522705995392154548181682464824137078837661084934365602394772185811558112627433804213267520389054622504965346165621992208279743504500829352079075484332058510141294237407111149290491935988841585086836787844475861600085860758536407045487553599610566501338556698316017199958083320091591078710971409805093123167925347755111593986214597581326919922558610643913695315690530796394607232547347087000327020998785849744801540172927310232427718479703365631681890951529514926819585841103870201974955554725430227924447916107779714213933480534943461713579265516101135623786776769333744697895799508225847479045155043108815056696207348171684620133387558916974785459956459188728495067372442261402200576886923847394631061189923256049168248553199697355775894027822747345364317688234015384086263364296165144771491698263580635752360497714414000126306511523493873271432349541852469577236162397186272207602701689693430618234650390584588925048481868232687441601221865361345609297138605116917965114400325395024546530921647891899001796828365846789043421439671119536582377943261508941238718569311002850271736661324854782262890572156659145729068023184429614748965491929548016721698358431298212192698424135693502424945325373044572736403504093775651227080243720497685275166318975304092130164451150938461616838841833014870855065629982015786517957920554808179500634927313402240587967276364951474347426653631020498401193736248432251266197303585359883872726821664589319804322939595106874062801690281710704883554419324649428463502858309525970366386434179446753237046513054415672917306754846966821163870475078249564244375551912608124635342804902128429820894078653871627356503741125767965494359884905390527103448874692558029372763209618068198024991464651514448058772702581717209503846913867795155754630232411924206557925874626444014885574023273260845961639057625233231760401997262636030667890146075849845322689174935306162967314851671344463765901494704960827757386288306917358883869175921629956043420066978504255373130498683878825498579151748379331642556066619706766009613658752255551659969926496334572840028945734719670624192111166394367783332248254797861971536653562295857270725982170075717348410537318331275782124989094960106904330029542791104076687135702895864190673170509623601579268483382365825059485383280545057561963176665111607292152123807207812125621844825062142761788877838822156415207468986279641282734107616450614625184974249184471103585329826053018485737743740615309605150000347914421112336888221596366914353594544682181848676363601852144626444778151395761325025084637861453807922570551989794934442799288966497014626507066011117200238743650489555008089665989343829721740788909124042448772337676909319476304608032639403968210950837207640285612760356416223963225985314973903487968025754321403555559872649128713472685514535661868114599568219236142836481041119817117379407125839264485417217486297872452293419857802341895716823986200887467234107884544455384454742324838740870253350735680048772647892614891380621934282643327707007438889099126128631677730152933645546169128376419410583184761789182377209383374558773548136610016879898483053272344910565692302289227491327831445508165013575780615439320911859108557554509978434072193219234058764994945711989079523477053034444960444493285019319267721231520268413427532490238006769538300404377497596151483370542558982200206642683568397430722811155079384148659855875088913969148277961875987034759207137315302824106143279604022285260831760798167013936512283025828297437967598396333418359821199373533745309361944107721757206228495713636825333850757758833713969534995501899368565878423144110024042418569058696485288895839529083361932832698289136413013241962154806674649585058782305125835618839194831294130719403030039482186307919134442125406974095092601152532487473301745452461243659265194831101936203903525796888821178389631824286564609611594290374505701878460711905696586248852702842322001673701033127297620639036127699623951963738870277312112146571867639561602140540332426979413606311292922750617009579965679866025494435301550770801231855289055532608327109898103616392852378514802430964138768953896979104271500033502673720527584480802271656320619555349191408557696673738102290299626573742452594012186940458311202230666827241211243199320184082035975084739774588306000288057168257220003048030282206203908426199051316170949766394623389779809216273570975202362357129711556703375378764008233985775148108868063548095764835786437145918112659310276626436207730294145350046553226499295284252787796965623087483742157159331401485464828898263638507011171637000591319412492278768288586675177019254959922866332489388324176025966217310951278059647509590068041906771702336004226409897526473533397227815187529495020161908644159512095352814888818881498082460912218179109044140887846664809699759834995034917791957445311330139374499823126116062403339089806657677763243004613916306159974406346408534753930954526071802046798058634762530785256005994698565956696851438458434425453896295881870369215362835025540009818196123958138757133680164136861109624552590192037213107000187461415433483353961017691939699794707100578863484365535982114512646776197837763240459870321360421058366604892488326282179567657074566010644637363108459663992943226447725702229620528066280086701635798193034431404343279386455954048965727207655732718590408053112214304032508979800917226131652263486902247870453233279701548724732315232751878007881454377875271153587874755140287286862810069152979597358657120329764243378037079786956685759775743878278854042781534832934312134989864204468102851022048367997081435813273162734447073901248218134041584227556423319918193206824216621696149774156952861902963611076670973154638003888290992305068109165352116163922201291813210332207909532438811245810520078058063162119224319020535751140058277851724987165641652642698279836198675321014312781397558379544456561268716154009690548794140879681627345936353424348925314678505867468882849542768063842236917415837669233188386104800845663136467988272529485800694391370715827866133153310293471372754094822841307939584524206060191180753729068853865714580693490518694255729291866185826233689143265034612312182438475299919901635099981888482661100154059483572084406682318932857233390326972731608582830214593776540409670051025442842797984152633849050279074360280658136011684544940010162064008001452497809301278570064134233404178766747745446784813416453923268079778758473902014224938767186853867694929961451639654510615560432549135398721828990266597660235295200282494173932940475837945550456929647918354907140103793200039870199157833145286231635307969863076310696736615695223964757187713927277764692990240081734828530262807404469302697788227207626380014817367540967809299210504604445207506150923551333625178302026541698408816339989579809129458721296283065240374966053716373083736190791343740034776880202002495854321751628951752678591150730567318009076622369525196017164963770955532475637950551327206275552017911297227817250875101871034882182789828539475460369448775696899295465586775881061997759265376989368896448193341138485683493842960749781505843692230689063623720520590399741293477834272076402773027533640458629136330865321753906838498815017444242030585920314574639482676306240150374803762047549636987611529994318876537219104206429540103759557807292146633492573184595630045915244159911723915266895880843754064268759450688554952220502076916141680657133689372792072276253400447970734292075825430645051631065058220694432004466293154982870438292551644625263108473066786408040384815718150915451271239134379893489941698690425608103755459257623175287995565252809563083695261490741238960211093866529737049756643516918997927306428362418793395230636083743625784770473032206937776398143631076644143733961578872847194195290905333510699697253660694803921719348348073854775658730237824540435972643872108918292883421304517974116635529748124303620626615032806081270036618413220045377594738648851286601138017902649196337921572726474827741880963185840564553042300035862165610915572399412502681242527456249225430641938315575485464054129166444333093190857678439361797633061148577705980341357224635538819631299902319017670748828093305253115355822212157718591847221976773137987418729010779015408890150123189705395924973444971422200264911690118141622282388187004215461425369095982651554094932922946073906701885510478498347595118298094164972582855325388273331418331120934793308016699330081076047415233439980955479218662398926318116824807026071514068642709463078834549028193383976445563583520885858446828919094576368618767390586275322135170095824948661858786211954186276552460607713483919533738890381265623958985815634181934836060273431221934363825656566847387964814243070000727776221141296312633774767333160035737668473113584218655524080811203823716151599570506698429963412687375780578343358435521885340229388309330672189695051148265182327597320951324530103409144361618638362278284221104696937964098665920831006038702860515215219348179008356368651052987775455404651432793794731776575999824844093905754840755641201703367210894195327524809172685976203409943853167271019243298844840036085333056118537564899293608334311366948957062027225292926238481179462748770288963563801836823051362478024617578805713900911463481439747545805994571697946688993979325127431423679178692150335227933796633769075516545442699235400335908645801583147356223245636733424442561567526164371124617765402722826149062677825445837523841832327422780271057026965887229120318970747284661538401980494451189530937577665059480917006290718384934557038822209175515098242681961158518685516174002769605079408230956786280802506697856829194109081237936070201331186764890697290434243079928156767822057149521184597415979883404518383974935238653728814955354533059143623796147778523623902679890229881343145225165986818136214694559959724810948214197206550134167937775288966178099895113161291464647720243531549467112049396520468976002832632849673402782369241237476271605934066078538214377949724378831469047173603234580775352684304380461826242495246026155505954456089918452441416043833346854837021501885459402012264099788215431924050944941441527981775855805612153035954702447359688469508523040067762607617394726665415998998739012825114094179183674004886904490403610252914316474471864795569539908193565899579650442689795166325417839255199418249110386606132559218846418371349157477405417027404219120823802202402263502393746230058284140380307143225373557434305314280533677607171902060929496939187382837718749872613364087814190170841038390806134000881263895781689542152975752695537571475106085046668856795197505810865753012278243137568355023348079927985863588656477564885261015661730204383389514964677011482381515665955131266384087299570901578712136286621925564588179285441822441590965092552970950940990260523528380189357060370208536628975065365861646299454629987839735925705640709451185444193940317871446356181207196143039268764442550369308793009867209448080310715149094880028107966501188871469608892271676280660574601340825196599205588190351190798522071266834794915969447659598971382031880955293948882804173820839038680252224290365481172027568707509951918300683827815077409108416063286636647978553162319982682658000262351411072923368946217349072838947540492621640412869064609599538213567732710826099585462099080157994674280953449606309663572312970546044486420815399092020922729322003440234950927904114743943811556431177119567898430657888880737616049679672303979996316545194433126809299963391320570966158717035144595843398833986428867618635963838760550498692203170866129925031427787354800681478963138095643470553293561672724104941865019076543569447703445518422372427097566119942576792802346205336879126380077636922971232962542309425673056642887570663550114908633808102531308687162110320830181967607521445142566805403735337727361000277397521050565452347286516963520684842523834708850944938397959655688677706991835171505252082628940353837563067218422045710484769127134035911568451400410845980588989527671389269359194793375194309209096848931671040475904027945918893322173021303558938402649181963364133324661331230954808867425274795010818169621891317314299587341596889038299774668869402551676406456081805090886242952930851638496126741905567510640535638469631311469893026697319101008830006281085679789613314437795505857847211750954233039479483234711141969809574828550792698151223262077859559418307453746804710015100458053972028005852932489139416082005072645669874083054694200246903570327081849501695825150010054407558915345267652120622629321946490395414227628204273032064867992406202047290960764635414238720669301506069088495782052077745574287499872327622766799584699450390099677382671800534027094747502737125782788554982881511020424474153255960342924555715133621435361931954729180980243388095242123877072623293363172461958959665636068225375289003789998360983569905581235591175487121809741177839071645984695803539467758102319549410003946542567659265332451186582839472612069192780011494249327486009874064084156931102437753652193697203889566082582298489068418878818169506048775210522798061930682956129024715478559728377346940048148827531808584737649754013001192962164887382052429336000900787080316431490404359276232522046153412664066577442134067059655591024998628737960699223052148387209467846674090103059089527584604640151776360778163993370851179237771003270220456384678465863285484459149969184009277492357988735646126163804581606206637362745315188911913878888127301410811303264249845330082343180479012710959126476597063866626377060634807462974704000318464285325808477696493066334741727233813910541556390638983703766931506362274825673776103863346497649810410194342882867082898511478020062539591046559465536738804573082424945621050511905753738487837357863070421234184551757119523296922419202558712963556004099815322689941958418767068580940777265759053856399941535962603093356090195646071899176335609309340120610771349672192794659552727271544363874863994034503713137245390871160636452899582040711122077339682070455365117707245877984371919114644008020548694354447217564761946994226642440513956052036019751526307880649845525496329032135384452357434332926197435078805223398003175468157004736813371806438058401466459220557558540262589165137040693502408213511342567234357405705555536111891873899375487742271791017215268023118060142730225725300149005666664611715025456548775138192070963278455610169433207369966983852278326728017820849216062279801284220237950297102397359390109171937713264667050630697403666219306449796218875662742554788249093305433246918338199251319168198632305175937419548751268408666877123404264258976021575207254422823020717701670543855886455285422022847269201481029149259071566337269660530569398678574033819704499700673487793635896785076313936289952310280779240675416967722014173975107570860007317164916191768789825291996077895085316220829698346238129805198278876556477621280736489612996551320528154750551440405040835193660430627626638163642726748008587486700897639212021789880638174048122628163682544449581977457344676490356850704532776385331374280202620625978012886028735416177125476449906501372318330937338187237418786269006150781675884591219189709899714525907709697768499270731820419621886968334623760183019720144872330944300820551062486364283913073185129400489144507413822379554769005655311828325255313688597959603338102253598608364354903112699241460874454099556083624765824649851189801462892790630809944619378436180494179867099100746858011028994387245181272029456702755137117989146359982206493936312385980175179275823082107211493169842672052068878428181978610169274827355645415355254392022568480867898136160509195049216211081419046913493468282621593059476424124448323431659800989568851147861268954395270773067422685033454618444822277952710559620002869212305094251834895139969167835500712431824004841342072433724376380790114940403936703374918042279215710265808467143664308240682529424704713430528966961528898587289975784630618378611521676492526069270600141031570172555446220963754677523531270386170536491850438643344788838252119781521243621535457165645408799470083189529168402967316830130881825789158850355033895832815928314173717306706652101885179338300291898805664760157456762793619095897975486147616523177805632289505305496250118013663315138755368571861988884442725444703641252934545787653184573060830086361149579003879411717787828302987013663546002757791367849577752485367142372810742724453722191314440239347985888424498900767353451341748362656663717963925963425887188063042323664639689726251156695194934364979777467833167448213879804581455656086233385086885015166838347175540898894724751711136464392464112496298654550545394052500739946010471343771775165440442954100071638619269301763786653578761191436931496214472838012053128280507588187464481759510434926121719938162775066095381655812038495647189619713195719976431354928008855991939418003482356923075427972802990779770400185529213198909596186008398623736250377279331775362548026361079292645963800185222463441607104136352142288534661025434093834719484630250309041822778234024905334738362458290531432255044283390654349419161249012432186520633549846404252855279054029722989192272377628751251708058726105895294727891998817582089096295356602242338360033242519231502653767742110506695684001387373748456535087275984813320529557835364400694389361528465741857795930771592392625635068099825440913772244761702596671752273715325193218085530896411230340935891909524005870047409785627842624655634078616462895846501627625698569186736122337810799161079530371576726048136436974934431232749787495429451775497937595193412562675965923847762246663046747262522878654708119001531437147336154244852930640292231151788799963038736330260877730838953254347165402698090288666031155375959203838161697002032579810054886784888276313247625732792715165087784855393622880117704805369816838778424102846599409894057488884808004165772669058564821736254918892656662718410779323031070160558857411441533935930404384454184230465885716385593281103640480960060150298291228602248748118146069558586975064126055699981436360581990214937011029330938987090745734353198078994362197855203613036061339641591765188570866432798481224367337481059516361205835860008671759423799560362996205543268791031763317002124569137220536164498998206499120465221421403367103731332403541762630135369354228694987575628628545039981483000584486310447051470602777942215525639593850837805036688618820370014143732780906727227001988675718039152127747822173954225150444736302261025885589829157163848286745282850479478608786357768802369246337668302650158115241184112467011341243779206384252292361047572123038682083484058981710760868557878681972943443545042994496368982214593057569013106861221372040697228159630408379886535964103553764626378960955348059797761943258220409285936697466040396719783662201712562835234230214567715176585479602509407884462498357161237235658167145722158415955802154806146309847970518827414209530355426850032769629449638392804209540360791428894351502811859644180820814527054805809595491838133673763993241681504726647357247195127923221838827247506200334886801085264447111608384842472752065661727732451396474947568770175847311921606502783240226178333067034508117242125842050030245388023918989613700787956404422434124155697677716571863896624642331312254064271268394816499929628130427776400473975244142872653098770332011971686122768532983627481917561140532739859805987920279848087528559488289226289792990940768081071261064967107614162810058852469028870895820716220401902351189619577209434992744575837504652760866954883776323755285243436597666207839304237194480372214974399086062481730169647214516699675667879459624871431169303269636314183522353229338309609791218646536611816477941494857618636126608938748871811418469795951433985500153104969850381554949608254848766465384764685746355216019133533425665022580360294647167054745750727294282893051202151559795959183889824632735518106354189855831124745112652992075191332473902517363619669376031642061101258169484673721865018067602130497908763599451385733796691567609667925927293811921162118596491743290192410639296212944214861142154604786332017196504250247554960865132670958857801736972905246954561613294283839863765529979841002190743945217687206201132983258670667782701671028495331173383644180690277908702679500929208336385536104279679005177426021084703880766226190225884255533853179534993777673320282229416216305458313780807031123230438363840537474688803742871779004401917119484220926561489953064016292284592565686444671560959495757931824009017347230550691718815439336357898124721445982232925879845317567176553892870546155245176248755837717060662418057585885932204527678508493387528657645365825583576654008423376439831641664167123826483572747772978051135952706116297313270242702036271771953895162626011180107889467415754633866222520142401607791672639397725761810475660336584346222059791558845262908992568199472844059044912808976041716046358028735674740991867695746683848451470613520695083069423229138020351688189226302407860927964037400022104488401506923531325682576424474286236388730690867578883307567501470647035888164968698178171460479353899599087196447224043891943343690758517814049825186090863395629608937321756812321980449391779740602657668920784189789289518369417643752686713804638095348888576386792278206728054159207203274351070386745791668557391696736536422636603442698791958913069554085350596772980566641870912172322013172897692831658489435623049078089479808471691316790591360552366463019515210737034686722641553366522762438817504100028811606799822878763918613851303598762893879190875296533442937672346263174799404331336540552719000175197278577336500366527787762747033993856363353655527456037670731736411589054688168690389725931385369906348551534272467471538349132734128640291652521660118459336574999326694330846586365341097924189089791152679179298350485555515682652713586485906900309333325666860684369985627774582735079841071788195431443624674958021663903740923180871574421886943786780969272004964344204243742335929071738073566032488094374401954982431343398728933781111884824107108854371400279446772967871629301306901201764996660062106953602934861619660780481338149873222200956824047943341030801237401495235701801554581695145094492414684927896008929667777830198211896131795248092913183701643333498030737003606431729571567509532816661601412466319598325102006443378754416696008625860525223769270198350924086171491430894493613027172441928271317676330739648485742492539572648688039315255019637056033287204992623627638107608561800898801967959073133243240079072732268335778551729447435405712749795754852304244199673393740096758520111686929939143577203836632580222667791978799062301000623908921532794981887010012314599591297997842078647820137621209436716951821132673543323665646555130723602101646836912405509336518424227886386764743092334653051839183025286623018944813827618753110994924570422788783687180764019877331975534770061996087762378483209246000574119328078325732195456039389722858149458165856316896105144650706199791066515205353160767753436488231149517390423919574357226222619670192985694640829136579528488133070101000766537054121323185855125364037596556672840379629620957650121819444328185445785956220457082204890746455233337201274678469948523561895618247797344037309647274128227587776452328536483244327751071798165057335348235678583418698958002179304090433667083135366912183029827543338461658547108322693226491767587274754837119576012472411599049536187383750972414146543735614536274039850363532608592177171359035715600685606949946440156494133449895743576972786795725232282795515498436866278074202512285604037973990303011379666584792410799973017821509827217749122175459773395433707883359547362904131762077254829503453485892395839334455019417583887614511712715228530247371623189609354710442767205574550228174607319100207767298688540733894059145892690486027339829677854849452130710640561989493480668685676610501239936647107270829920631599692656327541438893538639866445452792329877977693366569532593397750650246111599651534288567045793403887084390099858475896879628119893673518626779604407565588926442899989929139657453631177681539296065516346880154077310855204127692662282795433436430872297466213875340087708030627950419855839420599919126480271446647818934910010203513035228867710833024286392093163144746861834970267630157139856661729992721535794517309648471788116367265145959195816856515563470811298459733991312827710700623724501832715713173162718032198989750858747700721748394837605830243948594357401916587986764946551570249546012019672220968816251452033538177195788888921142447243129279581705124820512670687252113756314220672379273442943620057206106509518775911867193765892321219914530291957752315912451072183729319441542921833545397280388677053139674187607563700517210337699833856231249053869379040079633062920176291244009239150034615109001972531201858552916521051012225689378571003620028266311558247059575786503393857708612002556084976227184126283033310926695666686024163972728112865620542556792672785889948006176807069636090372696826506665668413871160399037952362998588704026113141598397102699441490147760693818474032057903114870047654702133682457554405707119911289094186235828556496297021224698315562478850417251695117817977918778532153159611346847914821619666338484587773991563572964995106644816653980728842091725165994680955820820571255894677166054414742558055867461309129122317704383854764673576141084608654507311721500044071086152719754565974108596539097418706772586650658032328714648483813943792547804401699843109069626228800349093336874078115500765512857900789548333797797121056187092119600240909896720079971246916034979937735817876453821762676194009244958450822700706709938021759896302388147948164120554454915524403155178979363269368334916308780279622924448216370947323875518237949232351797964072244933749664752704043421654681855848523274482383652049204545020189192157260865637780734536695912039939118586447070375678363935261588932392675659924384815522516456437847852006899107843667589216334896803507555703278629524813263343884796251843504165663449061804452557598410159894755092590453922869274665392076736330848104615951576708486083048278517501738391731563404127530777365369761908459101602316615251407374245030115072451641744264780324378181400310030717061922355493144795319246538097903626352406212884801662226493199398299792662858351762346039189196740583857569312487490443714730185495941790501688935250538375664347779038004087978015385891670400689496023209940175779005019523851948851228673650266267650380496127972647563997661500387797817824382192935753360682500792315822533694353221488827886407356552903109201922622954227513084228043260970385405544904916094348623988522545169078577836082534619613158464131695942979190929529775418348717290018794095262105779043642849229278442374694252855978710179580761525463005393045472722059810660644029049741954036959802138599039255296462849845440988659405687364143501619075806483028632896666608575264714437277526003512872036997515099718641067721643189863727195423440153213614351159598651957135185243586414219289302473408627940315893475286128249729521094719405165769489179234843919807286760832215488587185826709110854245269135462068206162926630931500382831240865752224672617753424833902857200863769752794616932060802223529615715618369047768381210346006028195340426016245016888302114876537140191015473010845637059871599020001919066475315058631677917711985250822054244118650381336455600485196393518974220270519049446176929496479849165723723243068851550476087648646508365669808354072523620880309854454167587483315380873833271937586745121006297374760198584394320489004100074441206037473116428588140271883259739141279245150737423308542932516647431304215990933580809874363919588312327322688580280998920819037539419016997029572441774839349597712901735862807655885327289621959221650447547058651966851182959701104933541888742241877189719143795212327572869785930389361356875762839214693913172222419613659269892308341810968665068089696815344099821052996455184245194157894993675899317232102871282004060891347317241395406288195773836254460494231146153620493930917387987315662705201178291686822695684093991927504064650652618912564503933793337270276718924327752862392249826392531531364681674908709621784491368447965137834343868877138148913260355920873384000130276477559419077732164030363094801377010646145940923337054082762417201312913058590435848163517897032265190281425691071803126965087579053345682985224389052920231908398718298457554550891174827971881503289776697336085523801359872634726426046208837635932605465960044961138685391022876464410888850797048114763628581986142530151959100369068742386919952533317031518289541456058612744498131799853130036884288827368098574826968966359070851374445244695547430293332738727676145493200100011524872448579910705650737184378743532455763220629069102487246395893832910867148072040729194546798455786829446617624517516308616023421018052448475569768954463950983599978807694925762266950729473614355965595418626458010466769558735972003677277299128619552061825635812343628031971787727617016237805157875253751191545300504005078480222352169975523413777372983932062781672313247478770420060686271419683727366095186622089047105698374875784809942268863481783080335665866808123039025835924896210018019582823369464479040040927956432567491020145247826639550260611636294496704375133464295249326395153821268507209910890855001837036975097830618152392327264064446558642714262483578019129678862418670145794841181105508006966050328531544573282681512021057003034408776976652241206732971597870632944589238775660599005513839407588189717141768088842257009015459182017167700929339263389350689346104822269142037083275505233126754386666300374476032807457679961579858816773364121482594391863845806070440595904739608476271411635891644484776927040278857842687606476707170894924614833816003101214116110433984221144389043883363660923289194471894824441138708180822251209920036977384863575290303778263017556215626171257271328323643049853194284089083361811409467520810623504955176599168523541550312979126270951255284710712339220374774797959220261205647674788055396859739015026779713555765086590232390203273667346148041900614361133869858695842448152130323568004939749093431617605987800254581113560126238940053701937842553889268521216235276123480917815393085267837830909914685933789613747235054174121988440975052951799439222990948855521745444174458274517994944709552074059907490346847030654518253596115190261061736867191912972263580208788314124292858729413554685082048078977041513425285502645672118435397299189836591844510580121200841421000973994470448441872103133849100347990316467202351246370514345071069378075634571768421460311380618566596775912579113110552227429197185655672167337852709298756976058759042436779389527029330090377570457756016056063259374050512668042981529714640502123375712622256311151491064955727165930132756154122708384403201140587467124869228045036870277419742111755442700705539890660282367683682352613678247421169258816920637583358337398264803150987268646545816973487292555765528861863960057209095921114166702802103446535090768237372422032129218154182315041055796495863689036744711071783310385319594783959242267869059092625009255530038913322065356340559825050763207585439141431727662906271223619899074516742304287879862655306491548948727648390546986328882343673808748623725446016857303462604184089975004198514962025050129812698286301949355562253485295314443299286972305336806439603022797356107689698240787944748741230817160338953359807494338665099145820250979593056583469344322119759829677006169715229746330054116809823820805454826447639862258203088134390517980286855746359074543567486055106645311528856780129965831232081342401427527463523712136643795852770021529372246232462233167410120841139998009805412799191455802284985671859060422406279723052514989134336605607659642537741481166525478666361255120908035619992647800851654674451177759796160821179918072972190766948945263972673454812689749824294986796796255685135355894589405917168746389195342893440922594880706089008749022554406478156159837712761379730174439873520571511846864707878850805622189161001292198956093870030605748760361895872531764021672706264333460791741392804166702043776395857185652414810173879470483052786046600176743981886592707024348336467111717459711870648908998305320659657314580824635898041023246359709392537362446919488590686653861164198525251509661967649123866954074165022833044851303259089226400628160043544670030140473862267436346101640254970876022847141144567539030504062359967086121644466003040430781463539389878494921661848941330853204621194299196154910280592127441348682235285770347733457589757397756969540442848486306645319626731775912260558988212029254300805200514751443522280170653237015588731655628286470131728753871494126184352256247988852395382151906879994450692405063217579435660462625536413892508236181489543101485938207026504898605298077697083065842447779164591331319663936069030986760330561567453766487933637968068105819691361152505398175039656641562522959236099204614635041899711044857325330413861107488576051524080733661387619826565492622140730554688258424899445227546016175367281018345888285907290145464151702271991071357036993932275336782554046002279593685888807740848829408951334023253620692682688831797853539903927831021732247705952239561067616791832253166728761768921311828276859282289666479641396666935032654030364573539654183104253798292086503338502146820466797847383505626131519647827225773832060308318463153167837155596462422212441128264980855050930142445080460488787014112821361782218328324879932819932002231120245381228632406549588294911838903048228418612823744595486303026235478329028252292545984580951149746633506034793858157261254748147954501208355217827283459660144896034995889857251035518151790328006728288820588402087251132920305892890296362084336812270748955217428576268470248522641276068564842674783883999280815692774810090498581378062455692772834680938299949716723815419484995376628102595789431031921034797111325494369237801664721226891103186035366170932971359666063396522614279912691071358174390204798974639427504915454801375120502299263230616458156761710797239712027880680684378339672348941658518189634334975598984042630934154490871549945300537086277378216845443575314575459957369423730821840631818770027153897632946323732582324242657251843784105181319535151184652881634300631757206996415891328007497773523745380913634587498939381584078861367383805804457996659592646485660764312040275285013656794600524302383805517098657773591183523803250715209292207907756907060751127633269104395754483302955075600855818116276816504137769869006240734910790294870617425097864382851020059877669360978036907092601402192669943374045268814009154473269715619573174043253131881494008781191745522708449580393413885977709783404353091906308077254476288551950836439645152292121369476721784938968840441469051755818621516931639932142978169193928422323964769644438203398566597524533667197675567765832959972430626762795231417388179846901758754885216407595040790782661745245569074993982023495008961523477492628419441104854699494967471278847840228628997243601600399505673271613224637318128194379714997697340744172935626747299587000324068507816196128038718151579568506297695545284614950263654590730861190492936926199020772345889418867883293680542933104221034884008669848381705731992734969761575243057913138096693803690735665261692134579078774103337078541464133499058712494632825535506999299004547318571233962439189262714865921497873314857504789836697623188299884196289473579023019705974480676725675731835970142051180359948954838732998985322242710717788185235933883114021905033546152449029806144184020182609871837944916781798496057759688489356409273982088253216498633630322003578776353907118473189280762911055555749078092490080273160880821903925860316084783563569603074070394810005313217278543431804110532163593248476986571779660085142705799445832007409020539715564929043521456086140024482100993295347232866808492051761061477523848391866173460939140021401032361020506471751478445452915463013976156171212401669973726506104000509658043993792558412284124714350133451737680400769866335284867198767189772701682472328130944827210727259683814181961603773960518983862845406468149912143570798105847098313206424165634049881697535193511865738685219777704025092397683065992811021829199536814045501091230034859039736256254529160412086974357896999868563208475753754418747895544773364224378774953526369386000019228158266656148646676906997230364092809005257844372128765309700437364154275916618401256360985119989629548248469610444827581697101638929844443949860263877177898980281518135882495354173749926246416321564671142391591973890796203239811414526785633849597345500359867867727142227395442629498472468155903371176795704316055401411289991730701117993128934438222231803179001267071454826685209448059663964090195544380730884338020423816912751325250517974599653129369925120355058015421613679144300248454645790577700246145339302069980016722265809700157611102108702232641116647631824448834603252952575529305617963842063365182605414369823833384441179740624073184231036079541151513551755961182805765570997417719803264697562234756367545369146159642143366401709114015506446272338438659344712025619399776966985955891168465250765477093090132587135946679154084736384273426895343712569524136396908740626794093341847601562766355733547260940799997808722201042604043318178121533337589223791700227070702970786133201445912505847595099467989298432779820544413792863374658404886844813108242943430409668568803288295584479271399413154154268702999396564167311930346507752871400162150158351627841135263477004749544229853884691261825557989131567265544753157312684488398157322217621789611208010909228461817277791945298134043230221631576255352239887280682111343327636474278598603762051435851762987835334978526560420771780706340100757715119588359914269389099485602335864419199089502408717284100325220821414704807852406605597016924848021401728589277203180976828377825071256806826716428982046659602956433385198644204122532972983046956545611220863921531878578786741822617425888612460795136591531646476274743075485906924131433099481251526437767728102464914952782322975843970817492852972512317688619764516862077119368343419017769026556428310739204018611596783481422212694321993083513466455581084488139629388280289162195612906785005215232145849298353190713292534327098385572984007366145181276700588075701416881005500777369351559280027211025059698659821500530203512879531908233503045973028512178594423451589219060242199951954350056939245801363050895619687882115177074066792830629627163854066642400863150325898352233816450989180916915698335516759315915986334855898312398031797449717171033350018263367275135119150390261638554252988290101795408023225581502175735751498456094618523715348349591407222970170628218115998433621295079239455462867120482493923358426256183531018241045373894435456861764661735820312170031873712361545927299595173915364578240811846326077807102171281858678592664642129759437115907424840088346744479433311524103431638597518270985317410485321955418215331851646565239135521359297390709818072084321256523790535127298931236839460263637597917567927212234613422619172143211669592969299457446835967229201697059930463105248475827203540133490923424075872505988968396137318941952142424402426962987990032768121568953348170834842360160887735702706966052144477379996851494149630896131908000712451736070767940415776496649580061677725621627485737075909493612107071709377937066503065838777285129464656131622312698398058721404529719950773347472028301929722372635453512903558246181086930624750655973782050238878152820040847871266608145543507141035965040460724315598198053043724992703495651794643148433548187402520514957123654704695656403616021352833543500162078616587527645996593403315905464202943658344913315524638814457895315424600502648074166130381774833161542304547928920481767550582575993358074316045301084410574143887394841142714989504362095834805425393519035814147174186390434018313423334972101142947722957001116968341324324535711995189550384091659193542350045552194776916593568304246089058889455185287520218135682497456963874935133218979893920340179861016070736475355096585292818185545782826985214680117065530507754028017749240570985063820285605377100754911057857587821926994374723031529166717225149613845545926553760613048544562279820152424437345702681505427027015514641036385101944574963738037737909813479275968996475522558856979535048655405928831101281974270862913301927455797658307078389672941443582123845319361105073787387591343418736879296651235678201836612626857891825325635864229053502863808204997919976608828518144592206890524834738295227624014791244021075111616998518323467234965366818662561129592844598124933591320834157669746267971994931121619745930222149157673568197084369654450274071428797967326673927710986493434619412078014085518265640124644462284503793001427009301463823971190828984867792651018496661698879397215529595445820211363107633440779724040860082996151002899049007863949301958258218991416928356506898059363051541514728652166947758884987526816451387268356603900336730823417732175576753289759155753165551250752785807950043186228518754172293443189161546596665741635362136285850284088250521336078432020498237067048829227973665986133146155097260493327990777499279164467846169750375085374627487075730793112981285113661442337644300164625326302352298583656313414909053613778717253476414556952926842289305311246170895507267057179966712356730935889125893406633158682592684114599925099004150931728728597436464593313328485107128601086352297785230108596887066721474516363355697126367814575103114486840454768771871255434257754598044303354834271126307869400796376369990697483076823618610572347500895319332289104118287507138008192513031334540658031124272047642576425356536952608214007875842184149936523438762131848888946749826749095866897495473663957588762093390042665272553731658793110393676935406701226842678838756861321812561942056400652883314081292004868346661395673083573335854497912794012264790070558855237264321202626588160635385177463173767812387168419474662349147680732772423104858641517841675198864610486162243648973205046714640930792912001870923272535767677929103781277889990378840430213658487622721715275857983195386742271331660517802011473284242020692314822518039000362914815062759464155880344413562972699556897862791485325411550675452427241297543911084447649997429306922982092436121261236928497385009484265626710909902648030851211488957121905256181927534459672168599566821202276460460626606334504336688693825095928731360764155144516041789333364741714841107355351637545827507140788172811290234757194407221079898884169641575600315302429027484770280440891080337023941562308311282438702705155316161182707239957004630738141019124505116888620534067138611775333128761658013066623662567029806732487189559228875783349426632966389307190802509751622164423082541508314782800026040135358868032038664203313594424662228338193749163155472742860559974860198857738255761457746201301477485926278389919894092087123156045691629936398115455817193237725241893757992750344885879094423434118127069043112859417751763662088332969626487709941562280587790427332623504475176182398230006846190648419351070174017200688165223359783356550817484469009615819440619024257786727520799835009921055750672316220279348044380704637458447039196821020786047960119932865419688962374036840899681221099957628434972588499028418584828215848648907099000082116507631634195192700715814710920642302467556662765462089287079165429585873886112404605444114091584473069300285141963151656205029255742294616074053905770264881704034191226038022571780526282015429138324056362579885009700878453569597934977297804224533295515629579582254001008129128848771466780051015605996531534880941046798653881485985401314587239859462977845849733984705669867171482925683094071902021834380325849883961615736818034147945898391091375274534443255169203739808092188272043835319846419619066149422563124532055127026156487398002878570670785791472576490827987591255478513947470210477779068097784968764776827514640434703916626157865831590963771747306025305750235015281972229241985751811053481078466473419589685694007265848751096163554050814877380688456215745721276481117047906508951436131938984960266055532050739107898197085617109624642569501787910496556439971213944315636234450885592242884407254877397919431822248777544573794115029310513750252452711513397719751761784459281713302201506961167345485463646362971526059408740955389768968127919646775178906874453434131600481250301764697299320154836107791450163501027606077457318400193135668494583009776352399497362529644863167991339902528094675467569592824415100694196439129201329299899017508300415989795871676313826594282231850790993960117133435508526325294679765625191402661717733767746616515872724085496461335900627915292573962547675251682720774390816568496165701070293962028667867859194738156074736736602488008400668304925976198345453305620178781996934847910919001502284656018094043701308499706212699298287027335360404005412029781871448974167240749944414820982948852952873955344043970407083341308649821861545008856478318469498656596865061017583625338076648419381795002821881830870098927320659702756051740480201389578410990152333000702303097893932901264283252001261644706996911388872569199995547617561097560115082078632096439622801836800853220355011129771690316492348240474609765748105987732872120850620680773601041986023783066380890555770255963018762398830761213352603190724052329168147858484063241466064510866398059380842142256927696974584220607298291664744461845857377572187291035350760587664249577118987911086963786530261180607192795401179998357856296754674137140349198750989365485848208251740242214471692673477740392930377305542515978778105280339567694394333405739123099954313506396976839159442206338917439141832258290375671012375270571419361717835958330006572140695997373529276026101481298407742005144813104214659831790959990456435042881640552457244260511705809144648373528972021609271221689706172560816849212781646408439868991119522811843464568085492613346176507351683371078530180754177730954210457718124682453720330973055916984291157849207173099543337404697124768840017982343564004523255325842387712011838331411896466622865914822834991943453642066264269297870559863104492999247273390178373179122272209891129464279403289942607651284244097091461026691745616392372785739273119306465468115453090365344099024595831432000903659851633273393420110679172328513204648384540941349043456406241626678756911179728421191861421867106897700536140509027993497405911636739603219725386980446645934290100557045434688773032380496742751044299794416763168532922943033777852063860960244545757211098324308170067520694222154132883826376433447860916955286685609350861943628983104804567177265156441856509420575497948800546535773428239837791597779598364446600206065912961919527939489275748176283696175466377525183101392134151660804456489589960330567309847215159731633655472480157959918307611357060612455716479329509763984712230148266914942984710221889347069726764082821169624129490722827820308832755793441571565068552280941997016086960149684364112162593368135735247038458244703697545478663684310639445221175964181168617570735358793548642178955469439416225746732556333175897020649564592979494148145997228836137498376393179584166475402288362901553930874404898862163364256155828133613223803168448686400610910284877081988730626018989893518882980373750962039260581502942712215418019705613705542429779118523475455084135372017128333866843091767691483350282643337797438676985176685493708153495596390339449711363372236599990810404402301532092680398311926381663243337295562673494819323723001912593762614000208415421744121010319867974138806312819681101403014651566122700268916169231817931662062368074916204666483678626269547584937438229643700906217813820509889420309042983689451029695906049205635604456585903954002292490604083918393452226304701570295661422736132705390063492186930883984773083338885453638592377215600059028220519245296410861734908459792565545992161198122111304455718467049087772919169042763527894448292913411739610635179313111311832683427914348663854274634384813777408644263882921287073525791560351085195887008071506643784908778604808235965874535668382155572074528184309009979242984923236190033558239112255647478438269679695757793961289043065653691655557910577745214631898749745749565746260356456897375471422068035280071572226403732967845780708124377722356655878721401478992709293955113986650101346478591643528523585629407139804273243310538412364148838765258162849397409079712994911106879093422551902382063895607543182875514107554722706322000666162148706881101326796764382743983285778701046104991311351009578294892022625970073854955954535027354275724213375673854225575566803158806651508857657643648797780569507795053409614197548517480512414160526789920036962107269588307429135210257926497906640235051235649274207285880414794209024673105283225762789619144197521069319639609407648457502133076772976334231076509648666265935592615767403643959177069446385904747526993538575227849356091529848579890792344547837565395318337975478466574601644902515520928274149294839198709884610893857972717389468837585405559032166568882726873423742657232091949701582524519338991729593878859605119569209142540596117774503781512088346342520429805556796133515078498852522327641714758568444311696422735951706481215142228098698504322798116265561308839328079587003268838547177206796265645514882999737457491037307081880679851882310477714814779536442645904692204653893336618483725539774760961252182528343398964922577199874763964210013931344366602492524874192262050096544617496879033064170405059129779883564242663303879182996584154666878777729203350981519922392659020303621015302934903601176042150187270750506378498849799399835233113106957063361605931251790070274045563539368276718183794241383204076009577398241461648530120139878689161934744643831893565593931222837969053805088831023146730885628610333496504416255621392872002544749539300519134840997123526821343952185618220261476363667633955319937122621338085666818231421230310285568012959333275030455987053259435313201295081840953325443417267257366406984872356023055605234483293945846559141569080399001871124353597826032372665931920329115391647330961677997069094516927420361875370455874409425608910994148849205225419516749824979729460415085592168053856249720907335029645638382286152999684361225090685294531271512879066527116697886209843176306123853525819181007483641798097361855568519073349801694508886375140790782786016016519645969709344844855873003883098007121792385709175980488603281497999802500464594636595113153311135475390441296304039890017008933648044303994078217070140948605203012013255993725610756522871727621944404229940119366415408349392506961010887227282359901354511774962993929806139591586884071168315683508580009535915134082956403305233450275980253658137762699239786601362051858654928727898543890930372767497391696708767316789413648307917729268598317178507184560322923253896137300335322981054292150171345483290149772534683798751038641845167042173105161595238341958512311290423173767203431591978983384916415011096816775102647113316132560532265873319006616755285935002387964709846638690226692995333005105951429944916255269917925652202600497191022038504174248664240428625870049518052575567380722899168036415909814581933204698858873056007430887174350244226732993115877744527641080888902744673116858708471689878416210600962078292516536957540096321701367385823077584450525345360647015287696730994075155233987505532946005950072515947227379757764682750559840971426720220244421515016457926963791788658363454980307252343807632253196985315881922945480201120542378839167059158048435337376058163373277609387544093327600589740796425412069320610362477941978957519505306855884631762170127886204660326712093960884314855720482514931654058048669168722294823711413773256097947093956843650109037963678619145512247711510855523622353599755947738458901458596601826679117668982556751041722737019682854970638618794588593482405613028358841690512996369161959505974472913949522963527646849304270469477475923956837757505269445794939619753278939441835892279295255628072158539710464489560373143867377927577071626045424482561788693023348784126190990552319140455791626123988749803232882379706735094897682477742846519475596048069300936742850301089371466675407231391663223098892185048765953497633200861429227622352746697362235945515841125995464866503812507114487506894140695850549675988276653490785197600151949290017130958290734930914407168173955794865553032347153202101556453683664988147972572925150499711119819891351669132069474177847977017454966265680257142310750860843592318227202181278494887165974044929849027365933747476461411022916963496428593473375621260823979405648011914005309663917129841736938484354219992638775393259521062099547125324313383260029575212312030302734679148738950401547074024736215363586890837214470917354406560783164969583646369370854648677284724560128068479057160588135422788023996952423010523573415779446619885909373234110291585623723042858057700012908374843871596739423153165556917717982652243573719358207249320432482655604652030104115795642955604924891749348116727855228673841724180922461019450691903017701391782932059331422924838801969387197055690914576479626183976531457982242636169301401220608547741757338939929852228231976071267623028015008756311795568741153861079061165589800520794546004860399431188602806814816727774143671487345906043691907161323317649013894890803125854545161069367170355705335072720860399659786408728425614613420216928591877703810218901586599276888679408104625747512980012407939296489528391746694241868202642152103459900228857062727287647312879839384070355519510077049578244451260836741514483293669810796397238556024493404742140336607016756032978452382934637735330285569831856280116757942535114695632384754093759684117775277246106873065849637556071765936485134173829630009440765949908480433833408016835241056770145790762002067593624027541559045168846795297790685207344230472811020008054949187810945535097017135622740199954696242111917800028456385414760754795772492688358434575327993880747683987033694587964280599238901690729612452278921447711462951547914441721049534000784683446128333640223621378618678698409884232210422467622389679076693581587634496651545095653735371761823083297349742891857074027225674273090407588965762362051225246586623187702827152139038268663529909933118346446539039788900656835647388101036944692888686406312607599048005453457771151473201681827660532545665085898350831628573186886139580992494217142148041015020112753925178280787137310538173965589425647558641865832361915539083630865553093408596642665951553196732641430284998563183090502126401037508205031138969649426419843522904727479859208444350459798901621328029900068749968886184587982615771548064216478517613682523477484223947014994973747883217348305567455315045416251557201229975079690641088880663774849708536850051745540224094538920351996712769694659606476347599752891420606767021251241768871352474184540734242318862601880159907029452029196828410134933825198965530866172363449053927009692392091482711625184170618703511205542876647278380858482099809689605931844795001578709189535132538804355581383507670048504528577555687690207299069444809219702813224117901170652243101921071155081947729320604474055529087631474946767172958578889780155830460577946087230440525816835578693744274928279780611851558893878633385355455453405359051602916609491394539773249514188769954924564759122738402324544742239314766098172946968294861668255425894909180756612146115346676413091452312633902586729666423102614375570645787427821988258810602772246939107996008557153556000642158952132514348042506363363480329159898682176832354409942054944671930434306782319225005226775965823584602968993469990987183941443205938486923636349976683453192737613932023761791670208565583162126073720090912130879495633850336257767122570639992624614408394568669635924926691732790793857777429520539973656456882144901286174704537524207341345133703541397099075206315385969615313942880074614183477632437150296049625845082116205248242723195060279168299454573901138547133269135737256351169429215634456471872987667391694140177468182204553493368654205266345396053456656893896077994615687251811686203625368366692322066712372391377410025502542674166307160532301140302388141788974062161789869713487756941749076400252385043717228419725660737179381463654226094725245970359572435789227816370830028517051786938643797762281848464398871499714692593828501267047257486337628681838902430118656764655710356291013044408644795573554551408900005479758381132470797510183111898631372905507209075767134760014178914789163992641483088305034080497920846587516388468011937174388287200339533465631469055755966559194802637877834557886246728943694024914897117412000213503446906449066067223629911546074302562545175034768869880993617789184956408064371607013147920717281448447284007539988583909174956617374133511085724946070053934172044416002462288652706678686150239282086766707288123077626496343532777764846776902416887159810499789499809732949445647781224320020863105352132802439993716451806507662807613169540602441330642431139414639538885098952236102512422016350082715203445790631332057801899574966157591469241127275798289111694477687377291850180562840680030726003884153163213831940080441905073592985250230258536673258893491492127383383098610870524118234725500864737802775329571912908609156860101365688134431482536847471808926807498007435647058424263188743070500506406902293251997323913582546691747498131650160818024785113324641534739410366360848538244918920661690430171270779102950327261394044079282554013106950956717619629732288302411308558559744214687160276383047048622386557263523181735191697923931999708633083664647405742375763020828289218980060868797581935025139768282516125622079041896575890284851545869425808474390534576005161183679087626745770320764486724059766924505931577198217131382720651322223585725377661922539399893315014647808131432920445059862321224021407422819598221053021071313203284699554736229660871911050004569703880846604112728256071164957243030634240394658699729254506578443682288740705991901997984947265747422180831023378217231701842167772557901776106974459331335547640859168694797679591793080372245935595842756631180872703960146312410708743516439591872052109098555528411567765507054069635548236121634297123477442423270096016572540849328635441012800506186882682084092406875845544530022994744649954591204748508212449986860077856121455035700334902060935787728218647766243574208891828258722351940523075481659118092970314891089794000219390582188125532027364441183717154989672797973126479653949628527470879654475731092366760735954431573218320490961736755891876763946646286905086927431310974156565358296014423611876363328551642451797324114983498741865661702698303009928556411599619489151749141751388563410263577618376486612535215149140459194389652078625142505537923615153246776286011777853291887990982676840879246783792581721752493891761052187292644337605803893666782650416074518740098649880701705666018937707762320706782448369056155150759607684801024607398766013020247303531508187879748291020798547206641211268405741983484187438879371190399115806743832291518425999450593080244114140409151566115674233498609736704484219552477108015522620479018097893870815834746535847748544608640428868613618328159491625748660269414256013382476087611656194512438283711406799991720462033760271641268175496324172511834902838040124882209374780331146484613455215445370195081581585839763681603160296108125830532765722306166858287108362179836151564523968306771154895597951533036788084748462299276889236069792545423707977944044110601173456711049316969190323450941181548998676556137034633547086128719122353583400311004910700073248574155349183543018646173233347287271943783639580910838101371926785869606255740391380662222715472958193702515034522189950960032164784878779402357592155612010720158391088312209628329813199994291048493557821391919890758070625741472413153237702050532965149346043145617522752553618344166815017053485877030976658038177195182911008067767732623962753111120902665021898814763395305908943004435972609689638328183670652614931271084080344257673973462557319167714631631231572549699599343796630912794160191665552385869562205408947566223600059673620082719735049702642049864062100527929534602104241672985966825682971659420929085862015303776582289110463600995920273105835828010621149067917901764492376507312273280162884571075309904827579095097552949575969661918000201435143302701031722013504504770678274096076407160349021571781776018284000432814578083468345703037970315671668087837622353399797254224612066373393768839503821418272399589963914209128726467528192879679097577095624465882458293457793590112712052387533414209330707402109057114041690867534560257599918329980921988175714967784512654313956116582833508916111290525558173780381178489820020305166916239190886456676372788032827295592276442552923736119076893909288754609863285846002875676498354211544952801694035112427086206989714452835961245773601854975205886467348481550386888755253365561964237609557567013791154011982681273839617467679384750999128838727787571842276582397844501197487505592147795617119615062225669655447644348150665949880166343605027746388063956537876465678471651999153894065943209075991559086676395405738361931324289340059830423885484685311971887620454954250373760559081580414052806268246736007511854774888743816555778754029101779947869079013818058355420473657554675462647800335216554417186480692974479768438107839497874713695090420209764065019722994008794866783908951562201262603987333113664525057356530692136584570951118423136841732900127641592882420003778885593806469200128382677872621842203204936031216534952373232658199191895511439862085192113587791973516385898052657800913379602362728069784723496486255697628732312784140474661977471683494639036290122112570176551226466807453433391837069386839898672488230559360311319068392541975371413223260430311236909917490867647698110470841864535007407808070042591238434197440513438240223099307431446475227810843487646687512191720345549407705620430886087717847267587973347590483273025986207001054493758838451452894915136074077973722074628321427465722305643569501080374818842494232263589864073865418754473168664583365811616592748078060915069350875248810286134269731289835380755743072727334667444546195732461725318138785139371281747606849159296758461527589255605359305057804662119207795729798660172084226327552999552744208246284103378177168503411698880878460219601456622901632321602761529837662407396601514593034160754417363557810379458921568681275924066306300317675266696327508726984510783526964897299799132496184695203062340717187887711792850902335084207418675288430681024878775342022368884086700138024913968078630082005538433544301861320978476107545917479131920737343336936904046997750942785355202745956196189408235647637326324220121336355713329500006116595056046072881140939576694799460423586183169718840608859099274520620317510579844297058857989662031871385414873680799648704595010728805939920755090933257375647806730467924253618465927183683518318814560191198118877901535339187440122260958102205510103878605757926461321004793985846844099661744748498043826356921675030620988989301445980394562717943743308869545325383758556233122353923128081572169778805432898978766841566792908786433339983270008323723370507592543281963934573417663774539499816671207469347832654965704933161805984711023569759312829192868671379525979665605603563430666447798493995693495639863907089400960763704393920938731121561637030288990015003055461709893257798934149208325215540751693184711257051778055481326453750973908484192350839564588036620176909868458315935392693490738974519063113741385396734374693503306605876789554789266022685529483564436893497186568974623145394824640537086221646801688317114245181154499023274250848055153731010454065211444495562829651245296603870589694826058136943585072439638935209620817138048553960246022136601212451618680675698391456075435236596162669352428600588721947543405266683421001594769397754474889259964324462037651955930433146994036430011232877598062069235227106863633245104393416653818438701754221635172892093770825348777489478990080073242600292725259505285425269413079400468975030829613509367577277580018339024873770836540368660221106522500536709746929640286225943563077952742309637309864379533001499364091334332925922391118907041014497410291057811834516078915822536971549712496513238884397579887464227962102022239563617624044651186151824384021451320855403571286135996332097449048110336859837605195032168235001947801370160045174726600526673218610538231567613888057563025489718978248994355357069098458920142719499073581815951451289076934353365706346234310886561928419494815202729000325105136656395443139106442434249017817144893982738213067444519695925563220309568934558558370059741766313616089739747653418570099071984427156014400512732246672246708126244258085317484801744141033961375719813315181573508252840457071800318791813664424984331826552477904792554302496350634641103159150719942351430170627008286563597745276926497385318919904082371937030344143232307601900368915142623863198109494938349266252720966398495483895331145889758569946919458557472011397761347036333179352274664707620091648570488532182608213399267085483174679476859590117311940815154557221850621795191239949934352611058771407661163225925396295536429317333402265624713956989881905606143980712907858388122491757481402707418421704144782561630945763627110420319993650794513729452398941073202279215924869110963470948346982505807050652513236757705881364563449382571563627431909907156499933223217728583441481801434192992839398904713830840439818174369786144804526099384906510227144850251699654668727431774654272016316676510934740538620023282728011555090086685197138358622502046780606681387159460915473164951653304773002969997622289776737739488781289263208143800677295430260941620834163910123544422673893826060984516123822938745439849908598728458758792436331315669613559971335917781202157932524236949725554045025192755042260545644170979263513778477534385943142324394255128195172690833552320871687905122253443110585036836823775894668943927006519443042028522661896608800768753492195663660740801630706087645230072594801880152472209763034620408264180115603343556250197122569797563076567849562059807447933310987815231784847082292088062679351540835755101169581819099399390832834654377978535940928415679252405744813975553087682772736656359222098140150569197705981882760969558027779340522210237398981763628366683652459226542788590675924583103996949967831270787016225952825646887796669198801883751121740108190910884214075562936119914108488937054116053217123622208096092412263988998025507006291343724310173416296241023911267245496117526232252517418607587134376290206824115897638590520751962405794881587986447115326220564023538116002230408198597979194682946778224452169430937745093451325222418297565118868085906898836166618098891937066872815927196202783364129788512917496250213567488677841424600987985584941677443841391851512770723554264606273627816437103498296747047921552544701030829186103852234565630910510495784980447189733082195317800411340252891841669822806117592394867901395690691618855102758289879283179771854680639835345480347142654017936631282459356994529221286402326261746595490926167962899427987206902504178344600655662749753626856321609194256336584944154826714500008836880093183013682535071892182236519832617947715543040494241622873500185122305758995989402093633045785175198055078540923479544270140301318334690646511132372190303590800263160311212940747800139618509336876175457241784581377544173665913432442866073744861340489073733315755735607325969638165385393252847388880513977810802076184035926459885261033924715397538457809210346328450280009768018331684613452900396582979961380852340990664545971509712227097564667335037106804353536225898306593453454454304737376291565604552428137600774001864281537628339428522514585375786883067056945806262605525647292651846069011189379107571398352634648909989049098893340033914275751932870384965904637254387054489228061740976770897129359936554123808670715167383520033953497000220684740523168090075985415146796302591264507406498568225024033315322077731144993389707976899144494494512087719943746633497599023656377415649306080437165283424888474297783428894434632071079273286429492825185412985375049598387763883226117397764070651667248252092026074255860925707080008803932343516969316952707561904529266008438612368841370814071587634892474297592751634679955434836836386748812370217167196449357079136156399106312513415035394057251803721119257996727524569870207586887227011881962406585708469048351370020672584636696987345999671839966123500669801640419651630110122117652753991773231930946637263016726533761452011402850798197476259587154724689309739112219355910867968961363945776504723413929952261499867463915887893933284437253844950793310430474423426220911111695443264580988642027765261485842837128207923065089233451354219418312084940283839097825643335679562109609957711107195546878301524002542371329650069980243581774930588484002489608932580631612481824227040849686050397090141475868795212468773777055908583767017592202337735887587573656995484442898717617088431819992149925309325299455461695331827353739834649554448765092130682148409423103546508810249642151900237059428503745398261563051695280934155444516237259948413766221057987818384826659880866285390520554171157983335078474521801825271919182599867285647221000819147932939639942229493397501585150494160299894721679527045876803444606104424175502426173961332890059893532977298839661170360660568809339559934154210453772390099504284019695726598977229893989706197427531676752561866681419924120826838641608568604935723148649261685716232815278819115029851456898676249500564623970384795393401082692355264580691222671300369677576233007206065920642041416713188808175412467098418162295359038714231171372386287526153471827548273825386504038666289491728605074265929675994728777797631111703973878408531927404513725918715068248981578004021696880728211295355941613872509438762218388226893648162972227953109460292654895905312806127437802703126282600268340859361034503124805628522093723362537923163575706621644546144736134837636760560882802391615411896704546968446124871920193585090760243907461025863358481518561858393270235997256050938256062529634592676562712051942521131738720341725945730717185417649139327392138441018966574645817629611575595113535870863433004011263058934520784119463963570799883771902101747964557324695358374889566233347403570097228939190402029805247428784126290184569551815887247154847565631918713711142136227691599484646380835474101669454351090703898121138596794817211866488015992309654496319005951110265553241550848270119783176183789180293606769192096747976459604475815379333803434793122827334542898021938498188603815481064382201281720298138077667699819632832602181453183295122668115564291915205177786542568631623638427773739636361438544058113871595382577289236536653357092659019706798549345138516554394787999321567299599067395786467159297214891583296363549754881321188706782182482422561192818853635452331913590603329427443966260003937562874854398297582102456502302469526928213206832904220850396006177277144963651391195787372191886734549695170976859240685630201885090756233206607327762758826870200518051985576007093162056708861494640720332253755464845829159000484130203259567282083334522436878046673109770953210904357373709361929273834814203725599950925135203442191690011166470825677152705959784571536043029504643302713476301415545237090136596035631474731723559328281654317249332562612443818289239537819147778867746014004427336746364837098181847778477169312870595971391591719276022907584568986113484292639616916933326472484413664057119898784154894785643702203835877192417989211259421496164798248819190493053830365597567786317072532758685928534164110416716025874432217479674783082943115956315627910455890425208940454047933665961114841730303619900962725697685917844998756961842676037819124411984012875660214416174914156006505704390597018629501648983659757369185114829596178632696255694895465625125540117247194953362415679880491043873593306758554270144919828408139064597708281602791745738966055069225227444915199510820237980201434451562839444690709662935138880334345955931090755756371964627137210316962634882654009276985846594530538933235306790098777427327397860295427731568277351226659397515063092294624263010725847399203057896049170100499625282118073188240770926307757909284102057329851001075780912287779455355830689279321034952819238644047218877217794909783535545009529675283887726637361682263011668329911129763401660559019829847012972765429933475977350094268083830487354208479622557932200600918240409451100106674661466121872372515018576938364777613471816522304494552878047760384486488146930804497350893762859836295853283916285043475247694125556379988308486821861591357080563681199287837662947547574875322050283163094941159146459147793260698050101724807982877207428314961097664320099495783222189128680314258360273275352112283256995842486200087257765289188441226846229971511006963931819168200817154231277386714362669412638816483945142709235597027035741867439856203942849515253764853528400454342045658337933542932158945134760877913130022515791116338087978574139424231178168832986159928914816597511863644436914009706587511776870525545851221581704352686219694969785249355764619091356496623763798122569330099004121313460930266417741457295293509707075834991500597332169246742506248291472694000048860221384491555852882498441079397582919930256178272753286919836662616254135532422447467259648014806406484326158986113530823068758838478981172069974097262450542413632763797298944601499254438406043481901161254886806267075435498125156802864981262508977022040270574915463400549081361653397823298434760658704682987966350361009477113152678400972171398184617799597175076700816837944462750575676509761591417194677527042227345333969621103477760108707070243535682102335001984101820887919140728557465307941801880313826763797019580578248630189973673055577674671247007219261038154621749906534161464013720950223208956439396409412817158530562112104449850427967289871779196033687767551826083016595386471672863434460267827129739192814793469799100265910518990487511250099299202530518275950450594641059015311244233738133661494894146078159816446554472239691886226372494108644273974241856761193279342746012880320023301499071649147912680374060795649182002436974588547107192575730089861486631160020313214394637211828629122492800675412082494680917195027920572879718256483415926963054953167059438350288691481740060280928056472183140767921501939789545255322332560226922280141057530209813480248197557644415369879147060245869589517371309286352994810612980373650998779645217099105402365522014629618887787173900150424304860460181086015221376677845896028874220916889666801104797410326619253650189718214015887981480761179710646111346623438639523587170806146439147283182686982916241117919227852326008304342261490416426047709489733905940164858970540427672123821565162228601395076577476789628000611300931290059025407720848836787623270483672188242683231660703141882208016631302592633481061002342234249539220596400093211119931866548756399462615006711334471397653600267845252712078696652992686614868515510881879020412596830778256102239775371707657788127438348962505276241315122728853324221642652194692011234987755689949944254792496831404616429207563484040701217881686309308273455510390004488250416691648116853964613601847634679468024491460398566077635022435288562275324257397446635250024434458975106061357891546851037318074159147937785652280644384990997490244627391385203460935753668047530362486221400423195407327321635473926821561993085720871887092978820520049930791686118154322473386756902136583249613077925217144372181832681497764148672866133262340589215899895863966211391385066520753270838963109405487724787226236423715414878532711227539107581697067924246260998822244055843752035101359289809596085839704813776754965927923018060956179069434270521789528760806910124487965167028954779728383086296412621835748539765330979150170237131694956463529336987218282774911408250404331735441213366175538430741567929348786253101887786579177112893712990824203656172630675233106759310571234994961525624055489522085321983838887125142060485486035535205535857079535996949984829595891492778964329733161123204604376451393276095368042890196775814435118630837682718470196771754027745012565865479408333909034929027985051951296338506111563737789573400958793509186077661773444675460147721274954436061179031999400237139964816711236480060494721454386508479191429396305671693824634215835666295545691551200805491753954199728413158947949398935802958574432338820098160483168330752750260963444494689504719734852420275546424501975838148591936364526893107110764450579383792768285112207817134100110040424491410134782359647147340465866196155847462509033533869743838529055443675903162573383119377345258172421100369109894305066871688101209152937486197607162271368929372141688789001415834728877774870576637957492382731975518998479928910710102131954904044419637623179128649940460160349607737763436670283043320332479966960072586481854547629291673389160765058411348147702313779603075775344711637603274351340899336979043016354384897003217093547922090695374407452364892237123847137618939139962160484994007569226764287279908005242222226749723308010824827725930133849866897370980773291199362863623132002506333036950777571304329062738234274965333396878858587412860089612929622297781682254097128136867053976997727909956354424892951972448950486136403811984021664171891435123327072177493715998705142348233705422977623892328624599419148134479539907662314978298137044593915668453969329066914918142511211719633164249350149604276184418181457261101907981928213877436605657741972270354197089402812440111030543271606857512644404670423599024525569568098067278960407942616834024139053356543914234138636781751704326770375638978705154624902756470544720324829800659301362315092560300825641520306036627386323086827252445082522442230896979412545525872386864827219331437236779329175226601850238249330802154589846707788344514120510860669367847920565109182022484310085501775425987826051695518511132399859391431490770122162310329101564147985837767995814128616035653099414410652124135825871040502553013578413724567486805699567003398674087858474359750125065591058395428463255420488093265449026739940648323928827783747767922768418363294551524292257399230794443548194301547327137917151076339825129709565063094394395436275049565602568561086129158550432518299493820702011406467837845055776651497962388402981073208118912409087289786292473401322197361905908285601388834737176172380876511221512191053717885528148881772022568202871266163005481016755667921503150450945020026220214680893631502924057612574616034184507937340577312990926788434560564491669514438476056702515261955045178526207655475174552978323912440264725373674726375330109019834843822033995572301651940945143175090309901913828779958867163612306408950898982244108409740817290385756057361460079747704097804942172098972895583666324739259800766558864520625609502027291562010445943496800419338136863200028814303019671697386677902534276715773664098493931862361903234626940436568481769898901108432869231551710955744670008717889166019428394778632630889852149588273495413979480322818720041521634955503066239928632650154475192825327286890231187929255672545234753409110818743295326160074089135627524427771566200775091294571679341920019348345655880876616987979001432563256262339098006025409502596269287356833158888082068598641587231323311180974977715504851482503323342334587200885361821670593592200650200647651944062609243151702719067282045968725712835849371910548593700136731059769842040723644388029289835178012411685828714289354564390698447494396524393847491424205540040574030970213072813980684498150324710938156584671835612704543802586668321744886427983309032308126006200408460560743826253417262988410431519964376335301941722553141550721001120057935351558758564485541416650368319506768969769717566045891883305188066355471398398152936974952524773632630463209557285961108864555002624460393511878734630156965009318671924572982296748233800093057636820164005610020053387881169715019803026781972947910599898039661869815847937126324458389121690465874341445187775149607511255549465989533100324019325655468912005012455439907145647007824319501268784773961581707722786005871530662295922874228504100932572513845060371551267161772305762950807925945251685786804884454648052666710564071160609577510317349838838169087708904881906868873502155409420518694347894172978635451023336954859348233240967105441953483836308124459488156243515190127169818957419378548481776866306487063361556200817612198710375490823355700523281652146729332658833998988193723590663556690721388522047262523830935863198728800794513916510444023906579152158600586598795150269183052751515562869313528429344419117095361007129929521358859143734810060294637771055786486044646406270141475577254931056636248487524196614868975256995265021931672122542254974138496533727417763813654919975953182745894444210719858322623459470510067160493863399333252132065095433321748451197647424933958596120664848068366661376199567700356851351060173897620496714599254993354722123529405563835922338376586320050685165682658413514160241259784190674119876095331277413006206590535427965348604471672589553864250126082724529762820523875088101868345669072980889573212181308389944689855927037909755144090685955459048662500034808423344712787694583800846286022536264222737178075264360090284122713194851795241001818282335457272024819477656703334320846507782256650741391417134672139319149650998880673357244222692965573786348082619056052734060751027213616824158802354104251025570304217067402857007022516748248100895025399471359104108605251628583141547222816281990921860111867092977922551009453782598801547856857079062137445883689815622546989241303499927041194650294114350036674909996456580619992126329689839624881560383084112721193500659406916686349722042400323456872207003212473498560311103604845616122803647836469934062711376422923229540611456184568294705902487040443869336757149821084829489060753066348935995621946741258875397162585492858995905090336597927176701597342614574498074578917092837050944730070564869928043543099311492190834078473444513428119281737342007327318337685340393987219412519202784223292970116406817503082753359289147062150514334402438586352318008480811692432184983639223693688200220066497801574603969646666122064373907851253830790730602250156658101692800155881102843293091187668922257766918473324084600321393688646220953216385812658045737628882056424026021648674114222295774228029213530240523698638524743376967264953105952454847139821181452825843858189364290999353331766534274855273240152007337481522835709897089479923694762875962285936820720505636927840051484385681595139737795971533495452977397239608954161441977548850521788345453538622617577146980204638577152072469136280770150256328335446118233180787679959914672481093140850177536701376495703202652706932854857971641645585611987903783886966451845239264611409313598756321157843911032532197133870495810292225283466845426093865715254638014865575735698009753192402717865712129159277844966288937407451489708976391399202724263525121608747392032645806274131477994250514493738716179908857303276876628924446026342125719315022628979262288182012323686636387972219922210978905732582578588960248978928992797431450324725611534376777027179554015454628749787949323995773776118773740450715151392524483088316068547398061758338938912200647964992373594190205260784031666338810829690978753109379347611672858446292048290806244848315712706232797183601112157020148144065760781226880235141602017190214092320087507824609582381328106716099395501452189889158734340651001011488916097057696852881911327069152366032336615443984201969317458167392784818362026202612182536838463359856690520228960037775551364547424653863982506140928686975381083349117319842900875107179912649886244822254654259751781106161729269008959192569150096097547053115333902954821392783102386869603018953835927127273198682826771466033784176086801267677199983994602361359734440194890209534057866770640461384859012551543063980761014526602283505783911069608738572593414205379466622923270920517369301108078670639803710982270703372253625855115017366299523394930529589076601909326136040269590411830260105112994421960924014520426430347148440044435391195517414104493380845741353515344284501748187306685810302088633984697800771644729279828066143055344927920997921982522709192622885229567635925437552141305687080241596775923302866707550772255632674587425157502166935024239322177425315084585361632265943634724346679773091524763975071502575154179322623798086626731283098377453406404190634954289525880031900626840072621830440806665991698886583962125061540470307296157654804090495490063529373616000003500256346099410013217766862524188737131684476792671872775864392712815289790569869974929875869216320662631887484418134034188504507462875595725700137927240322407479266905206870487329008637954449452330865768013635129484649993046917952748430927547659789962053426369385260201458499197929015302926101972612828336728395347715600722318424980408209970533346831746131178754603420891045326742999180523717468528027741469371566525114634057941389517009270810114943451553848143868129482870745383784057454855811143823307607623257142558522771314117719007334470875941361290432833721792402638388926098695479946149314058578487561529264475487770935892742327140823135195156976784125105206192662620526362453224325627657532925230270568293946671501700328065566453269662291107510745723244951619598337630941501179492314036242471132280606965932182096540582488487950712816368035741447715707779647286737207063388490606780120731071896234586080636571337060263499366226186074873702474239388381391214918237625773808363583302516848565479335476546896582604417149467148454418897527859175262605882961491269455298671209629421989951779936604716243762278441054581368473155979602449882338851711719441706124906193634903213508954849888820515778957960476208140389127817491849053124867971028879574167569513066160493707836711315298520726387214416181456097458179717581647396727702648783836341495201837018705712803252310141498947193791316334343139273236144025572243932935188760539944479442405386569235076346316135454455623446989566648007100123509927685865601736641473121155123212247266274643174154586151790072069497966920675323231787886320473807508104590161272100944038661445139514118836367455944730656694200775135733093486949940717417246101661845906527277572667800311173284358709312433047544026595669111468525666694256891366893921460583659323292148794499181442851834730320580608026543885490004720763569344264406269139887456101800691349193549082389776560895551241619996807573653244061541071398963051250313601205817138598338160463708149748149735248241245175005005574101629478619302663106985325724964400343092799604763285699724022315244572148786161664675840241536344670627214893729990571824056254571644452744898085786524945761035214072712772019154867456472236081886433924589636249520590022482746732255619467350665177541256753745503342687510994408003885714506525992493676032914992643585281147291304040319124254690229792806281920479699469494912590509989896949295154243481624549071929606828161523787983090191423303302707254842521952478719573095495199038728003119392458819487339353333698575878427450256394612828546740740593989389379868725702537374091819736579204654842844826678772298376232942461078198873962842000136706570401385963048922989759378257755351259648847868125754843856422207408514289324966600792498516976609316139779995363661396658798086040313359057748995800581326704329075030135001689214885879164387632442474988229958039718659835385746336660911976102667307511094634519588962375013383840230659104319090386119552573703395667834703085167137766846683101537904485643109596087917052020234476230946542171972536254945002744750927011168253472969559589729843887108314169288845728330045005265811882435877039800600421998316650500104325971551034186200463869473583872732459371897279367283101662344341031666559114751110204464237305684202754983100505193210097702270338881030595654591402876222130506830244187572035941314627845870675403295365416117550973834820864414868957756443603046067915391494472211886746862089884755556364900239426808490918943555186942625587224562624107946326011150324677440652758867876079109551335686556638971649890046843406794575802416199620881200158260953095321557043938538255509891640148993066722615461662044124494360309190892614282570518309220166167639884562065467944478794692895390555089040206751663065485025572616699171237461359711148033704944039831570969596433056351876186009101600075379959162035954034820231525303541894629198751406813731821400202191738795632357978269519805760841076572226183058168218842752467458948805601019931059390043307753355545742291989335678844114292017127247371842642994133030491806373670353428847795567671477030751792438255966941809852223059649731439065235891562514329545594895793880730479649965425822377974106330949589870501837853402877617361234028161667259573707413447707458747665547433795292231830514488162466078022526904228864150382272742724903328194554922340458565240374103990611327910613009258694598228167387781426791559974728499349092314393664057807587015895718018347562536925492798338213478176449063699631703229134300217488915437912691593521328506869129163220110589969739479761531209610807791111737140232408600485254981216460531844346446017978933216682733606038542873007693393230890718402634645850836627494086035329242375888580180757661872460657871924627337711056560048676254744913719824829553514913642403783239035138505836855919342017183864096981467098621579265442995487234299947811168909707006983846279838698785102088100879194588264318784064153873998419960240428883683484061359589614613906818513224785349011719393395044660216777648500055510306017647092394087338456548588477363718453583081789139680046187321458505315032287442907129067857573984958784272932409990395817014168786953139059262203889253838225980966611205703961639815183298766867135595454991644563909658973083899012954232101731574414460382599887577893884490479938060240726202237324304445017170798773659172216592266704840971638438247107928866887383010978439745845105259826693589177596577709930729807586486815293733747052684304712338054798001095925354287865134513028148449755856056341481937148855585139476640088574108600997656057439669414342178462031848353223943352541086201607378658499872750207816949583329745288365330860121322969548636373880644656902681203058122264373492891896171250582877867499584801976043689285029718845235699907370846607032067434767387010320425554719081951636088650892723686093391319778202514736641171756427932818199219139070700277373437737381620364321790452812781085322046035072122629653670851308488401607102431169611118916401413173070312853016971287856103110799554947109269872737028027943109447259131017130503638615982038449480623521159065249454611908786588718978094306856122194362970460302921581865352098815594520487868220263662115449828276669099151962024322462633990743175416693948321091321565302555028604873919814330398218353624397897718030524774295227175634603962126516783057448598524907566127850486815475500879195019832337764420506448855001589859934818057103917038940189275545997558818003598017855250100462129888089677574843072520575611229474947092321092822909727161997745961606022819673164356296102942140437567808903188796254031657549915014215312017524025308357481021640407007633646163820950121205200857506996812525327330493030149150899045853270006011259780462344120062229870608470740924075297288544575471763577199858477806897245891309356264025452239549914003841879883953733481357138925496682448303230896385866395094411758308817317546825503224427657862989576585241144761422163915753047592917530450205553242842873400544522719240688043435767664025425192535114496644274360783866975048470182783027846397029859237465836623693138341659280592871075232674874561810729982267797951964097231357970648500681429865637167482292294073975019316309032256106062617357206162776028964735959478364117260183452896602486499161143737765678358199951274729425291684599883450363032089448233797748956183179677107441466246557267816536952564764935847416095186365717298333951670500716759475497745483776302481950171057515838407911037786467931404107631997379737983643063227489476450169164742016602329720549722091157767940191766899580069888742659661065541239512582576885242179305457976031080898687973041491322730716557223207992123411214263646031674789634642481689791653484642457924753749544449993976537883282594283799834288198601063439256375874758722499100979934957390286677939906538896661219485683297952298296125652653957076920421171994229865747170811235408503275265572087437981047632576513034530856000567657718711444292824119089265909241051089788230033822258802112615250341884849444921970733916115073799619760567362459743658884057264866516309470280960516196597280767278279601828311699156651673604527137101840752602749709854293391927535677940942910560600140487263344572329346013632154315811492630853872230700686356460554241417041548976799886126308836753692831005488190997450137951845084768210343591907835801791597378867265397682703190009445217622630231378611904873787454840625946707629817956119330759690733756923615974044960359285720353678575404411091643207425424600426133255831816610241137632347469131146301508079180073426051355377085868094866692696393475301697451628704114837503843503957616747837378392800089191247399274911381458090822273761025233470542852568415982702729339973894888248463260627791528950104207766922988021266701234426741449750323152938610965352615396412668382931554051470800985757158162430249751702625551230598561183874584174841922854238367185296823535918894027541366525336773128983102700624513177999799264699475176747934280541190625169264352578386022954145188299071506916965723446945398511864394478001266691295973172058835397707348380836552937241946656983338616062524571918508381743702523694740497781571754284286916016864872954223533078547955569351726245821323688476184884851722692426141777823168243972788978806410527501346393894043194172921491554269501657103442976287351934592854287137308545436151972003038361200424987929434689907553039512137080482727609208172580236109747530131118215011341118789429036890987102728948107011551318194389051581460817363634795028749844770027414508280629228080078062075693409598891874694377339651576178972329480829623188662349378535834678915278767486471549458739803286599795891270269395533027930534356758205747666738237120133878877300650545337324888990135277780585276434630780766456174768912790089808817202211638548312575289681255949493592476998311705456751867962718587878789524357792466826656701331964684224598573975785931555669754266391129627334005918092863857125561144691787164231585546081536966717115889496109295090137355439679473052252936054874775389287075656437750671020976511293108524305781591319977254842129217062639045435826315630109853214891260067384426597927358623528350207222660030239547615679328687790986021048003900940088690493921896712167351692243474279827364643735408987760360734221850491544694345383573930892824081082993096621581599662896244970621229044998163385508893006588994791721514935346552624696526890598919348812265781113933385124876249310644539491688673682011215848337780960860988375969219955919696562772177461808477330666918353426291139919963755416178647977934880825702318176017567100773309976336370680293938118527345464941008461409351392899120492457141133123335657622986941097623522168834917815760370364017812423869406739775735388930143350511651193500804502153029240405158212357875476624814441892827228100131746113563257508616469476672826214534670104254405718177566055143613294516289892325642637655736526783216637135763592818676851127655436554769874363510521042665224311669701285644353774751950937352057876775764162935621716384569225245781121811765906675871943458010035693802454570954600925771081396704964770938409492242950790675570252720928629667883080038447565810325205642597858531607310630733344042143206032147714678352519050403689177524913222002899319776715528276060700894946976529731977867449956917690695020593356219723663001785746238499364283774474670754683106777704991943383608036550657332168268403529550474763253417109472212426239786267262615668867510116524989189722828827274760592570489028871607693229987222304905018496555860667986771506643905225392938795734732592660091440754329756072994205743245428467193823224195273647365960527019875017095707123139664896338536813905185211834305328667022821269403840875279356962316087294475592147808519329107362769047535952641311291671749670966458372176988099829439552999881525106797861871264520389902738781821723432393264186939721438828955070729632246802133271034882809383494887618114056334736873085025921577290986885476527267827230142364075098741614399101599014743618119334635746072227213195337309070845031161118360146434051092086588448699036150428059952474730816418684587943792214003034143042723777205545920994500802165851613433693376983375363962964514790940548924137910030963926793658265322070594280338534029133026335794243088215977177102002218112682309184309187794609634586671599589320508623046302178762609427963231551710607014788191421154552826171218293426530001518597129359442135050961975700930997181859076805394663688801931070920283206701217938337236693350929875994816121388080321999462970859512607819845085704290240448757108435365108125305680743892998752641845327287365372261758778778195881957390140852074768529463193011173611133467407491787718983411829056975952600021131777880470112823518408556484575395477383918032708264678666151247564758857304863064721045318235518719837339173108571490829551798596657711798780295843519035084193472922859578032360184366380709813502449992265638965975637407404061618735036673968402563656586444115878057926055057220957862090053772406900070423486088683147426112316440113084921632343417851569032110794751469626625144316698064068482718348396628605777347402757193459973415033008595890990117706994998010549682757762360818723765172156766788386845675465376482150048435741473921095769463392736153710753661140913127257597382711819612503748896773604214600287201754224664125521393726074842039758563650639517290752136690659817763058965291058441660621772674523343822323377123321528753641618511308761369234946735939166555786125331142785193838077420935451426165553390931844492890269849159969017907935461703635071673838933755343929368534197784496401102216046107755312440220553063254678932968079132680825103754613571759197101613860620368762332474938419490008733607587100906993327282158673410850105748125330085702207390213011823069222535793403879606203555776375382008700917558321636026752411154038571419357339195992619092413736173207969825912186168796403567918402285455100904063998490231847084717585106062475581588998244066903568566204134840073756762473258361972984370253581013639395774755252573562173303221282874018773509070496832256280711358450158738593549258967122563147360131190321696954445413868523815639306385297208737626429765050581541007440774340906758025386656921683800757063766110168123679209331363082340892981845776147588478344911732563259793797742915540572506687610370186140725863774402033125780387179281785055659963350918844706263731325438865448823547127095626775403227587613619520358633334627046996852030257601461195455761169574712231830960631936754039437394453483266283440871579969093188437241245845085807183434161127317797071943556720025889420150099983825575650642672951092374364073654610984940034956848294739867339839152565778561429502040304676925844438036469867761407675331894572783966511110203544666030870975565447496844362304856351328606179665477232272689407196241085003854673126678758207908778475071144913070995090719406149239419626954463371444351404577281900287596677593633758732643797433487065115064783933644052925719905935400191332163440115514900246046779427943206960681983571919807698333332874727140890796182763703763944828754410598598318358757688785089769307899778073283610646454208560371514653864155593237710977641702877451182627993114282674347885587398431476147978107013340147564738452409099213900971276788929629183450135281039057086419608997778652345183013993971613265367309698509097789483668073852757767041299834578468896378674635911883546099415934254693347266810401202694831676257326132444218228513798811726838868721871964736341154594521257629546322107293729572997073504534607624524864695399239877926743894276032774791070459619034221558963487334449516265987027337668191123185383951468574757821023520585769702841859633740481550385912785026406316132164522270129849233540236549392324219399704362164875063728239067137603188602549920363545161780624919024306336598527265539818546449963237221196246089260982762306270345985779318973950508870839960387305364261043556036537899122385013350007180987230449547070671792758764323505960732190682455976967281352576608849094169083056327741013603896877127894324780306695423010311646832308044907579146302020383727341689740415434714247144137879830370420046453546164514007655295245704410872725698926062167843969105433132770351220743127775847220713226519238755052978412072199248389422111860652781630097768873030159367168544571531966700486895562279097515234648900875622244576250521298494589781360873272592020778889526270547891298209716121745098138766966560271332261049587930198517600285823590120558121565312294782637957707019374387388932969182886817109874793796752251043010719359213127842187934343444246817942543498266435791238229059319626587509902067605628385417092114523325923896054580293327760405882937946479685120713746490028869648429245492850857531543170021224775189525660936351911541328669072349516298044752650290974536936204588081912047862879186184486970373520304928752704430162716745560129910400647693606602891921716120258673145105085043230472276396287480035213521744928906764017829575072875212542676368683536476253895694369184533473508245977540532546866595631916997917115696348610566030661860987492140609848972432402453251253121012381676049068454392488103849097118656330566310791342056217109980865757825393289890834156020917887659610784764354222687131189646096707773763998994026615717651944643863636132608106641355511257526608124382983468840649031060535668111280685538519601265269020402477447505928429902471700626445322485199521885392770149399569596371983178257637140649924613345826876111060839326735126930001090987633522323166122796359261912214916925972504795555585380409480105240068701440396693225382765978755381783349252822467537045940822621877697101279713923128599464445636689418845041561262854614402515274382717852432431807352379256768866884554697939434046622164117582127861400184021313867674022747636191169825675507132327601981117435925201334380580559339133122759006475925512145199601666492955542699559215576956464456852406395200392216631805344170059994876176415194420611483440237953585563686763595207289545673189824727733171383442656869247238411320073189637636230157847424739561266929451388748605318318253350073306928186303541607713418293645866636334681640506532278271582929459867093149694403085409133643297147621667973918322792348167230877315080188172905548029024915693054302062100257232512661460506026198741199817506805912830562518132313031135376968768505177133315094001269653072046569740461821946946055732802306544444943304044685059964118962404622042045174688101885202205033608838765571380923711293512981632433066110058970826023633872081671467315617656546375395452325716041450311527040062948098563746686340061782548000798005388334968715883391995250094077386008318749354376228303075222669706586947187158135400546217359026045920158996106133798629244622483702268165444729481213856251507348334315312025042362036191120058238237471371451881805336942765449013934479454984565378266356830036538212393108125551881689248849216219759991499902608016344584332261597345490924805141145540708871822072365893506409979444725444998475772350510834183000085749980846642889429225236911030489190358432749427385895755402825188740763019130779832394668750051997648998750257673073790497538589048673631545274170388464397157873570826566580826770027887272281180666611966497018050454644449609788544842355520787729488133128044859636226897154777880676504922910542113019841909819657927392397140948104455812418618246822018285924189724382208944753190288591738969236534144020962827468987347240941217860325868540544252037035221998265123990491059657891101166088274205816771633534149604939759028807870342994096299462017449860684665767380633561323485305720693607661445555903868091012209101393640332722633106350819034482499195989006191119019067653589330860784132210512360247562682928620498286138107941477943151233262895252413620801797176670298598988380469805550510914799235113522881552787016081049948432981540406912234364035252697968969240206054443554398880245052301585287819342347774351389713085714654382475520920287540057014776642045112627695879232012619432833250000833574816199152092171362721037409524386284045425595565906188576857443856883125513085167423996661730215963119362513978148954744915826369305054972030935566152486704611318823117576159930857936458970124985885197067019353597639654631478582933813695515519441164786540655602550149127265274975184430479578238679215121502784708322365799055000777976563514707853620802885745729835819878502620340103800478410526578891322241660652696682394711911661728020127882120259817339439837915264766038051070300130821766937002791199396092151329543514994739225356347697062759472343242899645510035193402794461711461606201114447444487464697509575251623634286778754437032167588383669774746182403668787824143453506956881434708549369404637681637336955592274744104939579058489217416143895518412919128605537968114384495692064704945976980353129172817614476515473854218712361211249075391059977278402296117273683259417640987433288638435477446044130498120970525736142219598257426844873361173804924135374972174063248724794196741820953617510499604641112841779609462098440838758196282699396941826503849365144131304295624586305496692060743373499015898046914602510616340084003747510138530451650126568872336211036254087322270982067710721260309519440718052981998357421179057933583057276407529332263084401898982948105265346779714958884324784744311803565816450429382822312285947713932763269663764520350056081851727986907391905388698448576987373553127987079603403394089435582949002739746079595222383211719097586948748703101729873118494159683985056003182352390828623977345475712535726130212339004999709304905459073318130427528021681180316381514170888718510764899143156280921600177209067452117255579906651272455520613890271638116924771845446541461170703597206006476361064646979275423171771432332817495519658591180582879050591582501011891277539578232456028447217693096165382565582990516153241285316028215297689911675938850132464879965664681511600165548112420726265388719144591944554124477537805553177678813957543394157874899077372683167636196641628551758921879004671526414417132546448060397526196197426485804136232874739008756702593198864899041868195190045727353984159860337227073312755528359992288569219432315091078020193183442382555887170524051356729716978749072700778994050693460053783795801848452962771610177136948495131581871634060332769130942215822950746310411155608690818233287841395283687373906735873996677985484035135400273436031298573944515898011106319072213183854705589218243996253216541944604040827838007781885563165385633010474870521797924368594610566720501908579209138811227089096328029597325578409810760615085434128046426708707079915752496794951276173184522448263640813427251298381061566136740597887398605451813026300963956612938705163963727215128335805896189132236705540152888259240871802462724014803629294450982323326200690310998419652610954712023051895407246926358959111429160367535707786075417884111102057331862135486137377996880915548932704729744961710374226454915192502054034266328761143601789414240132261170700558280137944637940833004903903657923869944068869010131360264149618700342353479511561860759784223290880324937717737610330659393518862402503296155117054780721876266708141387850002646858220581234692374363881570392021572922423240613988330377172634315680688383216995951331364170021502652475576489297358517820747987245844667767562244461664915305488649390052415196189958086148141754694500620167422920844828780562343703765732344303018737771307850643496623050845643219105795826125208068732599933577156689745755911512851057647379666298293660977474105460123726941897838046348438128338321521533353610442398381310679680897907116759750282634008902591513758349880049104681532463976327555007378307921502603353879302424092453426140642361519676202371871768958984919927747041331671145751618899470069109511689286838233752108617546940454125769813979359825570942476558353643740351630670877671792191384857410080473792389687048796837689617307881047407912417901992765117906430417400338372997254832607810903824851579094839572249078071469425499150125454093255072403469937174179483298744276741308495358726447573919070124948110154588896179528736963506319636518056153002161869573247390806955125027178208272667897837451533828445562028463400514416170069205459950483312532741971547612964129448997031113607420397322623746427025434581447319522157390754016595119342104002657186388214406913110853010064552577166390567469027398629678862173896821453679208277865315363057239542936787478148606554779866507795639472297479315994372957032010903352134606049590050971167046172614786534133030061163877423477427550629160338305093260060014226283157300610432553787542585385217717909508334169949758437472712483383341594800674929391551906934704341517802066814632658971862669507867576502415634005298553261978710154230082431744513891592228263856164327044475496062349003549250591197624115232482815371859130860342001002169539128987320089029207876822953002493057650083015276563303392349147164670036581136315670913558639237131613387163822548516613871420586275229153428184141007382470932083352419374681398018281338897235981288565091694478290260197278556404465589599047047506209108918798699406030620435243570020887657082423955674770321665560360946232792518915294142174184870088193980551367960274198347563224576477310079438971406015433799329655029168017356162834001913506901939701512358468307680857102973175186307720692848920114714607940995886112223773382096334941795665094915245064464953267141127521676406435273450813372249796250584561781380189799955858684830855521071989593845781920443582480981281299784195218847215070525490091520507501589225969669309476642293512649996764738084557857084866360543501832834366942009089956279569757497118685176362249375241498305100051121927380614381205582631094806251799090784914513631377598320177865329561849300062055598103312564740109103975442585241520345709410165261255303589011159023376874098795192663053746106175454369044851879685074624230510812780293794562226608487421244725922954276327684961720076230370343789623544883808646447029153255633950595628269303850745229126892476007520035974043283749770897612453056193507484325879893593231798316397693487344065648122291849584778450539970691325380548134177955188131147035185031833427631850473437997086014623717923151331164933677744699181782829554244749561427560657529185462593453315945769435521184015475527705473476785525091639291936179014029774526868776625941217000014991767317843613745817612514309983411883747864192533304693499759206899033993402342370906092066036015657694663634355176324293320169864260916712320589674689452178709654602094339274159927792984723748557119803795894866768875950049238045352343652405160675062401349826010781791110950494124953841440565071887208975924443723174817178133645586924510967988990888284909274901439274792741137881519114076013998832971106863584789661543786712980291953520365923992541363548659463860989510368358341442753276601733967517476805249293852416518750516589430771147931727215534473711199611125808014751555535725437906582968484618706062374448181081714667678822782475365619122830128232794761392820776634581091106180381787969338437014481975924426493380464190945266117095989068656092455266323613555271458617589850908004506758841633248079703783039872570071918789552858372224366224107053487117346813911131723160272669609117121592658636065687238446702191604654830443837871593246946747758491216740792945387734341058198581074439421613468383495088011348536056506042937158384541880742318086484047698048642866452226099481699368845552194116754060237562047331857553584307858681628114423456080700956543179508422760637119817394857215695729352065263382385614491674132653200799000418390877415604382749936936105712371203880793653146857772485341835180970168439357066433327253611875055036498187112899029170328613075668378007725319180217446921351371093003225097810099092543630629071187913893109485099452227477910599124164468677856340658269559425986297066947440549502165097739515695196501372708843696396453372567363684131400013169759493531395963419500707059146308285206031346470357874022523069139561189607049215397556866278420260873544929348418197239826489799456653365896689212457718766166906902107299522173783632807291733587291291415555305963412969148380036303909207788609100837702781786839926597799272227373168553053193508384407099752158236601461458129237409187497304958045392005617558942877603709494623861514588972639349513358181059548409181349194850104195974272621001328676163230735778479783480974056291901542033238700675523481516516316606366047526795396659463658407979938974112380544059203367834739843434483365073012570697802548255461827503870753456231054565587548362489218947522364397562580930048075009905884270056354194474035370768772271803437568286430713208664213213120713669490792196453028194293956659308260036662525320448357815031101419921417277471470153411512299042261534977736210890006750232510238468730484234363982397307532037943688330252091462467785847757855689309790254049390770956160615345118137051202969836588747270624612419938003809664863401391525990495667975707460761500728626881847763936563741131135857938697960435778902661501062158865794181603100958946477969857095678873329521374629702733227097553971232939628753574410140941496909439585247345650412787454069558105636583205784709866913427681755225462688089479102854677149273307414968564999803570870983142211501326856520510279499203662726156115675159242285057537866806367669472064722820432954777263900620578595925169619906121259418460336839613080946785551321323132472901882340315056196283881736636967417591543404803556228652568109637220140788994847626504566150276584138858805503861270424236737807926043411919227444190524214661176061406761338501734630155405576513655891557512421526184667313138586346123143138635630365056895421793266040871595278280645865536296939310804000975704709252649143607475806622091092104666852801735971850133155757989278765901560736491607616009429237867134108528510299086039679602529325403709409924963207034262771009812998705276728731148526776445861889803434137583124909175160799021123458965892665602326114423973387831606565562588324393954378375393001025719169484236929616143032178318271082885063811287381526653519975479000320249751281816457038583131691470071398324642871792238496140449230455907314899291607084053396844536980656470796817255113480632647466151840887078679994189679823355830231457445013679711923529807522507227627752268904576593000605966772280017346974754726124938239976907839720752170333908000989174596672570143104027038457826768978066573522607897683291456507913389807992557409648231073571707052661433911899364871157095257381376054158339231508269553648164474445944199415530353417576624125244614290181614150010455716360709756926827666322774616712042482602805339883220643274125997527458062080044405600148444160836626082502381753317481462532852802386487560375057168967965156257203972638840480140910066875224481619152282509260256485310541555703451766662811023378799084850580943428304342109949194932037938441533437782680431949020916750234137372263407735542405631427381822608766894748102192967933676872436115425232684900105237056924841805015202701718049566141654785612761287259888595795125423169823641052230433073580569142657728143120176315919926729844603916576938100367299336644441712681204101144542460166949754143780198902616383115315460529595973521266844883782030704774788398452932322977031405939171319175517684676780882420449597120008606584651483421176457502402333228736744155379776433988562688677711087224076410833518592399398030022251657276211566012982390876559858252532078953069632054758543661126662682175782369928206385863735168030411383207232290416916065685186371244999451874686540776968107356750536145943968490828802758400204177202504810916356274137144088779488475980659639298067771712884979211225322084296682873039978444942039364057059488205634015126834302589865073682684369341640059003867753621527398247709719106090296840060195204444662232093436054946866682061925675325383295878498297080958441725107330917319503880278639900920841830106805825913042798587146758287690420498434163850014888748930570900410713522264623813981392419304733845429399937712984267827893316455134302927696171352915840936762430976540773432787169388103682335523829782362123076199743491624589396747179938499628956925076500822581396110357491108528881064702383872873115400549149646820917461297557258053087237658343100660002970117794741040080094414597948376849967170357189192801767927448168572689548008895579907793210951588523049691727990471068620731686718112715176120764475668750982300188408011871518702577876016627456791033959430429749712904129547537104043949592942365927590439618498121716185280652144083289132374787729568318943026408586675834655233895215870746351375038074805903961540618210778408731924492465603603343204063933389853517220334170449462535249468676070992345309963902759564704935662616658830144603016435477100311664741125441751978815711851166029494947345370385180593830657664104429703486534806356312213432441341333987092440426130876568474327394301081525533620015687999662999064040765683201000065202819865510644250264758004170648693625922908633685646467775989691405281793274758050734589903186719882080792823397262534841824630324378009182227051355613326209737950301423353245426676178952732094891141987023407360934599368815012806970963246112545499815429353946264693263949889724954525548150057071195908186988745119761638239412339413806041365999713589097235004098327831364802932577234079906412981394381238467544164582033633363496988372127694248341838986253412570987142127619671964302372593599244464363857118140911237592312313078989564038955154519254627474940712635632131999678186671880956542988861449468580368327450687573680612134135189556404676731359157301691611292936337798574449438203948140736833378141645066817522018839948632973484300167496894187390676041969165110406197453900141022970969025707264330311756253461211662972250751129942472930567192338536956328554123789477416884629292473966307353459523558413005489820847174622982884714184954543649584305940693278553327294645920681641687057764941027806090733834259237743460838372178975820683791116274265924799545517323797430284134251140120816008980204324779718591546321631488785317378588553553330886814361524071643607283618387021817604488319849238553095276799365004599351156663595518647100900743237423330004792412859265109708103654284489219900081011382839244863518272345743870210103643347870839180841325938788421460589687987666110503352046690712442475652228731729487744550174342927183974229507180820439907283411638263297953207076849325834766105130602127657801685108452136686596496387794341286329769066391062915282341986001034250327646865846280969636939943975568867983371135897977119466382790327871208470657637820052987155726263428871914006318410109077092698217759679089029854208317196382634843539481916987523193337196055977492769653483127419108684209320246690086417436415245640962188075230235747751637799285437106797677567441644164651286527728800408601601502116272114834138552073364586879805907349795879683342173536618222994694380194985637350818590387771036438803667954260129123397088215174213545572820085519007843474184159456536586855297411560389157706997219549160656041894681659129685289216028864554779787307843373063864340375561382298459521309365283199261325257090530231165387430868641475478777980582967469236003702793102791601037868179347041607473714325876549254831818979694524696512390483893262328884626129610553569672993491790841091965857829877768178456653635522476460312874959520978897298993084968014827289502475002559515284473751649403717993097150342702646669193122325708510567830105933215715083091130059797196291566467595653545346089989056438361829640815545443952894875981503886007907098540657135593392920320495245629704236394532653592422359175332905412794187231712703209904913887014705110773663720533679686288590416089160019925766382346287071041268968184904171762080379555284562178706626489759606818620889968665952272989473868916030266374977733222837256647016735215574327315352326016275883796930782594513312715326120062403343222712419723273057656605141305194665601451634214224618453005743804781022488638207690825085446792145889949156250153359325838380967095467449580973019215516416039501733850205690707383928313476653063875295637165597479181066078861964928622566500053412576100700449271585030596728083248781384889306635105191981797038335038678858884211504267083925513200275948228964327043048606415470364965417537707202464761733020678905567608111876967784409898273709232751938198667792857017634044923174960272463032639562472571809715035185081410283628427463842373612982968859293406922700857567314476652814985656726849770097390012998667787059312729379044154086006865824200092111845734818349973658665273419908922360154806224768555223840163207928581780431195305247804710350984202201006116343120234196844268056396309211405885347730747957685893407185383556183803830260752573299578747146713521251313381430830010191427948864420495787009611644266546039367795339935531591212186838591263785460592995475356547746414657176350760661765042144746361629199792707272981009006011795807483972726218818966423831238413731859393876247966479520285580847203872863303554222988974081923539040513492499281681065655225359893756470129767722423315542006501663329681597982517170979569498052397706358654710494024704352545728602600703190476919122516620720432048585372091133600133517985665530596080500732451780638383718733692805568971292009595981992470714472226284214868293499455578861164982250540519475586091881258410702418991854030172648056456459550402003126238296872525542035573976131855110330941334694118486561166947073751085225660254897049448040959153870742309291307866508914174769320757120473832275695371373484438288832569123348831290876924161448221643007483090187225467138646973393095165819458282817633732023898077515125813177490037715146109210631964928218338751202407404373372637253701743862468961248564878438820008893532735182477291617036260620805395442096091991246778576638844302407079614464234518389622592124373166961428300619686598501013592012465754808613008963666605323642113295027132661647521686295611481615124972069681763543758637096221063081490304157095576556027323167159377423254066273917867540741973808013500022931210615003264741421616832479538886306237965057206631163320970833902172495722574659475066231670987154464139856647813865305774002882664656406117388405032181929158497131453239316474505142599603281471442441527442287116442593309052489664679622209795235181297938634348622518099149295018884550040205734401763242036852549326461305177598128315747700796064762269221016936703905725070162461129256048673753711660675996591023309171303915064798600395471232606353311219420019244066749354283865168391969464333674140958498765387114185616787214496745802154796832835310032143627033383648643509640565509707310581515216841350758800118468346247980244556536681655175094056223042019502683421270657766617703729839328415924054768289977308489898009255175476151349599249382780647527325655019788763974527821771719723127525994527922860490088054908325289738052799090043972900756763729154338703181378731853065071280741720639051327339671532557897431117236544714247241653182703597134295783516147971600999834840783129182360840180071250028706830496410775684702550167530931869976168774868027989154665958068081075200336861662725671474344564350740025426289564275473706381753346685478575232974234916238630609685540181245123393258884866247193198882053594412891806286889699013369665638999554350464863276248065140854080956002220146415761938052055702808859993752960324739635060214742843436326660099773079920899352413072402433463799973521581216197155378727595176211653573195753602861262263978070063099131816687482242882049546877066858729048655603115333586058301997871234170223829629775376991081173366582820174189540725375180901687051380147406086642783714186982550897552450134241818413364732663620416018453915522219020039116179369387866186987702888235395773686666027450403142460008176302102424739655620520452427953550271419923458881725957310869741394472671645115760857200081886740358555109771382025550043657928354688132069192060123585492552662533556352345994863241664027951545405757205149992319777456993809221985805373338305727206053485476282143898535847894242072670560075304473558607356739719552107680225154896878785347894951544563962779216369941762070933068338434054070025552038031331605878509833305938030089890317882680574495439840345694574674489548971462423850618496304092332260606191667308491250920087091015108601933671209586338279675572644374638501465829149630053492939665591437810942970934638734403078346139316393517740953405075097213466142348314279311246500267085891834388859677683409055670093451001070866745607218592972053674302623618278606088809315653553743799931808557250919778805963335983835571423092079737370282794139083562121962203200032141230789770501990423005775972550632911171918123519344212254477548309929091368055883268144088644284932198019005278435465893461485563295613411070375916469528851613251881982939757202800710997060276599258462847753845727964534636680071817159332273927948281516226233253979257182042870517149447662998838718107041752798500665592035200002611930433230418132770698832027567941575696564555574333679490635678496333438503777745913548664890141083547530654259868955052720183729525113672610328913889285685257080841023998108984798374697411683451374399468538465037980772588959299688989252405025894367827192266030075316393242001926419553287150451026206210673232080907348849448939854520880579417388198213786772562966343175865509398716888735742003033311690502791783672212616143300636490531896505144570714749283721965530875191463502354145012187006277278540139704221489103725718810466494769721241389594363674218532550649632657042667848401631883686339808749043765331760958427437315639069009152724830446638512238973012213653116234239457971537633620325786299483918148579359659468711766616791102468863575668599881102551439283756607837323004278110514086731273622587828234048976839397703931424023452340962053518753823985078987848182604635899350907065412868274344770421127926303957142174224597550886423758089006147460577626114574272119357111879309532107065903165956509714552298403379236391911306351813584234769423588138269497094042540647346344582767744454185322859029511709380617806538040171174923003310286943507817775977721538169880546294920154410905232795029373786001869418097036103476382592352476770887633171935957018952548337755980243723182729716599188828253546295920813552482708369175533745274171231921980375844643693346613920307764717615234882554574781052873641705618061555769644136110809211768632395250927292996985869738646019242261767770018411369850206657389342993548605132953954780435908062714372518611387981511792076341862953135086471924461075941261187756120048096410735937127823828447114745704387554127323679792526468776535667837288836935353086532668921939303473093874722282480605625532185578087524983511416935232106012902258035757429848246573849034686316165335777380750685639453412054410409086370125287270754163010855748776641787948746645461498792432865093795179794542895449531400052188181985171213505695743363921272569968578129981108857134643388855394534410229881120464215974074478836969497866947656281289144001897377975462923305606038583585405199875848589615430235512279336641193714446235516511623443881975560489987139205157845291675009294759648367697249264527783778367657699861577317211768011059771044999808541649388019055251004321118530562124654096951577040255177818245155511659368904362964076407612887262254192140400017305715705690779410064464175937574617728682093065843905253279491030827376531845497457955724659897600299870951026342335767665760711946975025806796699483929511695899817716827381916519752949484187391747763256973533273846688249171619596879061149844184970131700138134857079673986708816059909555963384941976392644481261610126235903280767744712986057201274127745966176668766386895046738857558196522862490203078897950546374942810775279331179961023799141302987197659836025619660287164339851644606614540449629391490427580316020151668899652285720284341407193453112022884169298622164735830570024865480972170497832137012765341132492135860235231186803451649794483170332585845950029972788727066375881296850936315045238116759206601656238392982628542357005249400784214760856229486982600773879792786082053552809828034277935326745273885050802474724602658064255440313995535266320843926851368962630695761198037468452669493333744133355739197855974708832524059984171029459382278154406071686724208745086408006355555959431708595766531520758013041069019526763784041497810971399306254088182217448128759313569291463343417598408132856249547930038965270117108808193152459412708329101320555527680462900918762991663388635720270344547683820557047935491281367440555885041539400769114134034228932547029888895275501476978018931384239082704974527857604987643625024015664262801553494382563904009325904219395732458784770599808642895323947603343344306836244386224624609475121760337275102484968498375967017334558056989326459862882911077356733121187294882190390196078696550292068591438738772533590337469933695004888176097022172165725499075089305286141383100535895952294303854950948300139312850347270175440849314001501669185989980371418597321845375019480530380741896246644275826232325953466107107746849659836902148939269369031480410820479288164899387711066539355130214161396291548310817097409839146122858971011084874417714250382043698440944461266469873230117038519320478296812440595327274833170532347541647666445766790978430166269403184520350518197416693930606803664832126556599585762064108132372400054433264100544763995564467589721355444397171441881309070268755734996362564115863487751494185031514479215032358422280028881089998238536059256872803317460594273023261804487912355596659736605292835137538729839495227086272888567023076833080069683410419582636535200673297927463888574223593790903565300342905036080044518396180335423163106623852911483799331310258097704563496922420307058810957508039095992588281387916097017179854721251673955844343691930222468209864159115090355858718422993849570724429542204913015633817053093714048019519214945047180604724856901738191597374299370352731810758498983689845724062754928240367058756828792332827580643561608554738196153418955281885985644100570872311964926385674108598300443316791088586555639779771825569848941244113649923239851425180978600053514536094981005137588054848077933521668921301159460739595916358649248285350038090175025083122945535420154648921159960889087335659949444368477402044069509517820009813065211878612985207799585189541880969824160808458711718119005636470802778086495398807680471227931893017971887191932337290217969367104344378678353758496055218183745347732807269010967290758209900323079105946791809134908131378403269469896147128065407510252201572797069114434833024980639918059219863778020758888862198080951932736120102384429284588712722298420561973729362097667891925456780166390691224586630517881977885184472554328832065277986929907830013423877055558336044922283719695138487935305141914440759282458728251501504904613761865663989166193294981304616437305133550564250046288323328400681464819790820234491486574345292050123749108793255902261458395229739184355793730542509642709916573707418768270923971545113881004966735143848318245774024181183967052311164564829574596865260370173490244783459441338435717047079608846139766540736614496143258499258331739459439436453903046960423000780713612991159802614366716050910371917955786155593042810739416055053385985912141095891049373975017834560345406479930881428765124111786820553511693956950337083401675752444453185577929866193766845661757589285380905410962156575909340486057049650788689016752414521892725759820351366009412133079517797455034911484973404250345770618147982642576646894982842980191398155158639360564221186559986669767138264658335298083687352654261849657458631781031631749560976213042755758911882624525375308041344473666386208447653541798263926695789993810451007837383568727030055633977420705131342557090786770525341022968153521508929154077379270701854184339735520632080383119265533726547904304878586913598754470988012141151274974239624235505179260655218259235400082327158472840181246619667527060624487099896708646226451128864913330760226856734532552473752593962727914054077826103350977426656788843971588933539406994546532456915985560195403886706040304400934814166715333735526145420405610019583127373640346080037949774215853846092849043700179133223674563592584791841485648783836956644027995267801429039906262104868074648558673225205230771563451078398597644721503593555426351245546551512163011783748846375677862965976767323679190122338038780666051635847813628174178082655852417700612084170895261576784140163863232697827266721049578443913501711304110599434641496999439178453846912328634472024244324432956575854740129370062292398494067142503680038892476671653814407373736114123361569571553368552583446868410361842201047318027152500204240029263657156498500015083156601909942432570335391205349273429162648096111897405053721852039296425300572226225209828360602558537839864993674928064734333251352256677522552441860645529750022102980472735529867616386275950509977629954432448158537341666377036311287713014042827060198206719961890428729932154704614337606459322482327683909379067806059584599901082780958983362349628804645134646099646397475237203727584087075004672790981140931910747458590216873769466180448791002535573805746141269394580585138987311047534334013137512323127290632324395135619821564065260313180005034287894602284971299818546017656180287209642931966267209191918918100029590912178467850031422734293572015625693503195692750015837194829472088963777781342589733344000274520326568253768296747246285901553371519877964442500060113894493438722243936878901874084261764487029184145480616217125165849102108596645879540062803968437298201011535385825650376983542516145090434374277355563733936515202102114689010282406861443223972404894600436301728643145345386941670946685103551050707027147329766542596542142954736313726015083669952139781790038205967468035579481309443682656581242868918956988563663383549160509174796944787809127173378107689069762297407561750315620568694904673329708545159042900110428552639060505541132042344203470989850142217205126838796008109538541240154418863956614150755153250806448094801941903468465599521326880658200464956487835571246038621257307513293877029890375297459441173376307096580216525263481625444621943655022746622250304086134839329773816056370596704741311940200571543908187915202322333120008000455576733308213032371066254680806858272335646184615436186313179188379170702464729499121024657537249847910046531077427802887445582353141665069378257454503191326832570962999753629036102781375533724396215751022795309786759101868352245714809508119445304426126160110572151377059690319123262915394634783041259893672758406930052351369828585401277357157542300443508660947692093888572246414567489135823195763066653294843666947006013096709490494113485739908171557216052247877286110654140337783439084478895671788209567567978394485635011226575531344003087988344833315783126983838272930519852102101213391229960372528173026755777757099919314957599453128982167074604973530601356473775454374819837477049760918407132793696058636928612334168169247261874876690272937872098767929508788782550253524895201323107056517226160509066895521845056845651341847727306385452229049381808911145725977906893220202030317911908971362757879223549882985459629736443426434142855751008767730297282330489796642951232534593551798075594242235146050057485436943354152121643497346672203410965003958238725872013924255316457337154576245792572777892981097748056281458933897012452111152655615676524432610685225012015632017196653935225611132851308583976784091977821567528100766940576299855180639913898478098074019968262261420415663137645712048255764852167062125012956576826702003798406267870098879763832458078835412569564751650064416159318104439178705250607761217271628829326412191337912849678121968952500484759447748659227326548921861099984880936011946616736709836101177707543539422443567739080268299036056764055465583483785062221107416961408320434590718184254050682557357801814335368725076499176133327370452216299991241131330046912011915750863354703435667159871717153188103589144596635778214967043382396547641921102892260122115558320245982846927662813387612707823553283721130419801053841929000332613010538011192725441778606770608130075641255397223472029913377447663879304765997934188549114750525792511954023040326412010065522708995793576421697112253170458979860849812762283421151595026940798101597739056573068522935508194855318793339089912268792576623685119966399931486616950887843956895893952279984024943853432423384769223115799985495355916059296116174386972955686562577893307527106815488439363051156975865020576029107295404633520869217248771061643522702493588739522009532583647750195651575627053284740759353920223137436692514504894636956451858517177815186945787197887341649085710685119940891530876096377199433153957171825604027342836354198105045748704600454452601866826758681761137231039457869983562781440360067638564232673594623674597207457050848654760168259661345509811057581705578370259901091227899202352175572768329899184266235963665594235592179256609017019967035463341763627332322064810184158846584545454850547308450505265624771930837013022075893651148438632752419267837504204772104530514096531047912554309138314938888708582503208067022410192533302383811210384323748255076113042099385017345494402100860494181476960089619497316954762436841202048546104264851949317849652844596551068635295081272261175324300314880215894130019603561982762270337268527270477326232375731633681862695763504180920861563852156024307262741349238313539597958837062631204939793213702222136318308611731128586044747779981615574650403513608894061495951261766722165077783043721003556996446120362575376272283719996111186200390277677859412639403119709893395810061958156349298459564339714361965324622554852272005056449755940969452606173539478076469795344939325820306333940702799348811766778679907955720936085328071320372429774136942689827575654884223966673042958906787823246241808717217535053160664173709566353159450927177097378086191605377251233109275842157102710995176258141800980769059432060898183402337489745862049731963085939316786634847458757911986164873864494516367772578973667528445357460307900153412373218487051009725393113193807332052306151322947280282334064472740856342572029846247523599624492087537389281359020568147193347884313636042016219723976335578054009673105036121501142135705953580376370306151193798918201055435172171169979071741274494743653925786478217111714897365100736011357327619897139072330555176314916302560449506855168948931611927392752354967420379405656392879177141590846056616396323094695440780217443588287931979123746877005703467503106725639878571484211026063623264317382979448253308019092980574907885386045022632839464207193406197512491018180343069348042218368464652798938033227037847808487787672290911073281554725235320635782875916918762857021715912449161233925762298701478919277737631788411714137349940956434206670976243963134108456388411700188190163823578014979104538265545212596450471815349827708157040920269372045196982197340552400905657646612367842298580372268359993796966473818355820295582471966202649589773929517256493478281162594705466266930870919420252657670498073720512686356886860561413610471280178753756349672390694857584712351638198143751089698063098469849301195074431728587098530667811828156026330175899183743942159497629167298831532224322340073248945487682712215444027663637255054876337223214902473436294206160585708591622626699325246048851619206879854685578239118207075224934094302867630936379431201435453292437054676726719145603377977919182673874687801638997265662480648110356091817567631389622125034038260834459321597988786458088206228849294064253883618205784247547387504356897652258715131594264001484143252943372115429568213578528792589391801820329579961338301843639651997094477728790449132898341689442262595491164397528991462366142940096131923807661608597844310887850507737804157250941312169138868990840306612059475916940703829774379667685779837293410135768614051447661254671973270361156633792915721514045858115163432605103754905567662949481589044957383209090375303488383706034319497862981932377964680099797694228461435654108105417725458659027282039138373811408461926010271128920381973276567144347237617432901405785044720187235092557210987439420861220188288954225121665284814285468494486025186822990541005221250585106729620053902088002377863315980655057978585695108859800907697558784237288710032347209597869070774717786881154285229315760653030030765676912305847218490313631479418253902845947637482146807713751582753947466198423644709729830048408754387104991253727885933721321300880567635768706035578490816335485264535199950225348218999819796643718522853931197597393011542966569619502174381703205783725333977936944349739574835570684566122607740536616881162929569650945495829556000923895109683674504871173598716553269489556826953867684011207160529345026360195048478611461639587987263570925026989300481986857751442407236956274583196681568006993608318238136713150625925001197850463160856353053372780004015635425748896436993431066645808095297524080001089883283369193415468865606947545699806028764669599990815592016086284047962668821459129130464620961324664007519657169085953018287384529710462619300220815836824617816042018659481979176237067101566311908134304253313476397393236361294336408565352202124716116652903516222436222426388759905662132574989462276515290107070676461917583155423191576604777668637157781481532270118842463752246671092931606492429258054716867197780579042626014687749727079198150470938635116116213182733196648962123452222602727224823718654357614431089596577443486160951063072560461728646870801177894888091334565600934823108919173182558999526791963189807696669310582583890037640498331014338486073058877211247125804912452576231780012674721205028694384281168148447179520416469800715300443600879814453414867013337358365877537257210671832914846320588726625532180761404353700929663668919019739363704595676100782030377504125623623954298905414800304504306951545638384422909792191219470466714778453473403522160239368387943177919901202032940724639076107633789138727514073336743296219740023989894785037752648223483787802498374947837480569685851498586300675516831911082453708500495244049840323950057234207215117254342760014005921028918023393326616367761386059794773745298377353062854903936595089001422026015396399053061166337813767792493902377641791762033503208393699189480609421769579450960434862493057785184546321979732938417626355650516464600647115382626781634240759305426365197440560070032887373954309781526072508716325563069055847110119841186333970443456432109526312188482476261028565455960487256569414859861786811687605107248955094885099281151938267095279455220723406869989076289397059167865998548670908332419877936059572093830280921306890972535259525943001636628943933299376596096995902180387900467192944085030696991295355172899661387631162031191616706282600509416887999565040954019484031774160643188816972747693367331295378955503721009605721112038190747972907130725037636513381107313597813758615655847839837017850974557944787155206761956553770675691121584656817231106520955764943313628237267400766789765660045011984297864928076007116780707633070759301418429981618683255986368029367246455491459077055278638604147808498363361098424811470238963510596321724371215070987183509328250769347102689051415644390983631912914841103158574508220307476237315885429986065276200816421230252080514215470627772106975694867686649753979058860456132624742385645094282111953549732831787313402233676004392157455646536390051437604319627462761434631765143255618380916494552878910715451461615918052043555593089106457063799648583865303813265851832872881919618478309616524732126086178744602860562460042464120433960325672334602234167732716198843201533873620291850782019737361282699443167100710462714339280923484727320569705520436763438899537552867166129576230316248151322399142597351584482490149811718888961051934436907502798163740189671254268478305332113546372837386395345286016823896349418419976506432380461863592793325674786665766581703303985613630013543926467856947681754094324410617473808315756129557085496386543500599719117597909677775274836480471614970218521559365084120271873815958532990899626335723616543892688364980539803772067182596313593702538923956835525951790951230330078357012271709476049757937218564504948760532952268724364166352910256411883459939654698226047478821646163774661865056520995278795714954557239981607869766588246023115684922721494992496945751669807374653040073726763517349134223187601997278335649218559080874376013027506382019751440938820831280253823252958634228063252397959468612423263324937768977189047853876991633424734915975295666364789473850657524264135656381463680694164014434550325792608588900759742636324802122901354733873323176987546639372544462887024710508994499277794684807677423153642964370536683843435559885689937571251254394751251610789774918047890061545738382851172743450363979940970357594712710410681615226849595727650500963363686322062148083551836433947737888421609667789951102130155048737477132385932893833076590937534734613682425258985464910520691909969575021650536618705300184341612028801368975074719456599739392378755985551851996483730981655336426834201415875396463136006347397487143640476803431517927352917476313197022674133944064750031370915026745622650170428889578721450986699906579099096843010098497592863552073606388706527129967852745051941621887173949109629253844586491734358731523562474916291919760987285782691221517299803069810306380390333949274306187692703291430184472258817699467284968101417387706808109812917171516035069718760249643086081879203594988898413324313321243805828461263302405495701223288673641571645665194155865969498514465566693595109522490190214589386177361967622294020514880580082306308527948369568920860615297726619598393866040981358701714433694716093341257077850489453731699731956470187081407842030930367310722776153186994494574653607388807932861664693806187538999424032226696769175449230028503171924528915321130074886564511540192259186766927490253728954217540686177757837914748644282235098803043397221988829436238839944477816526036672323057179074940802785751062008342338071651666377853650981146059940172989538021404504747886251001427738892860262373963489986575199000737591318869027347262309482293355287155536228184864104745725966420186679054438319221289873108774323982731463014521610084994967962289878379535297109602040750469983090786790901526756041143249677853857704993401023098049810859669393109878253328217625017084004438997138041004366464339596738962614533944514609047885171622833637520817216367446221183220216534558635421338127008164889421808804298510013199826285336323469441341616368623212521847323937042496085498595321389336111193208807251986496179446416887441734547888047360057901878789029241124418203370555000292304857186007683848346609236499102559792613268236355476515436747289763459049403068051688001903748925339336615871428588275181947014613607098765819424950152956918601464109476710054792482849200628489969207250723257853384247660745816841403471225442198363700306006715819803689831955032066598539374996697765556970032378799089012045092936086792350962435037535534624831008133787082217956125978066248225038504104169656686010762441778495069911563976278731483297839704873944987166951376332745737821771971752675773677546208277119135447706899058826361682776171303605990839694475827974626816817409365332162459644811184666055683238994987596345146052949787212591330024112672943712222919750182791134332556501075915052456986168729556604181712202108937047367510060452853842282164613192261203501673881444119843770089109615730968570397615969595540653267741737318689851881455591722053050196498528079749754976286550627384029834218556216783944715582899762142984822543817117594530638066695287516081384558224491289048742972243393944639923887813870094811836848578474054056399600208350983711949502484458749029597973949507452107274577311654132047946783365459202281601730629011597696184475185923385834599039610936895156307823799077570975237787197759686854393315717754437679614961373325596391199264266118623174040694951501290828871119111471630809641572237818486133355055806444626551132046300086077325734616031866862020103407152829216721719452548629828737947130491383949704920416301451339292689165210785966823058785684948455072997563880010749249280525459260886895385816821726160032624878262473027015037893872930881384182045949447683828173593143208621188671821101362671164765272724844961874122692209524166096237420831537044946173877979153273429643656934371504083634592795236272670455814764028015252861187324883467963318306173273638874045460609305621857670911993324205529620434853380636819327942324975774800760662380029318976953863672760241485800040553984314181185207257890681550829932058609106934954766098109829409631607265856106540901475145670250335839908813960742741089751912574346544458083679675757415175422333535699083580410250039296552630171941148078499189758301050317795233321117351857828825801372007076161530846215656516136914846454107182492412894325832156564130095963014230765843430470521856738691266788513875257889528820138049224316716768086548959169788303577336122840898264222977438887803982580524496286399173812979638968003331627733729558938043136146512081996503340988115993992613037075595669520339135784037333388386084757443230459991120362870551972091360870144911208485558646560155641397346814447394721891709634309480206291770781299357283182924544637556823193834051673066869921116365748493513033484493533238406234741478585753382128899483800381232193952313976408822307133159422192149296344317463252150782072432378530973605978468423582732100421718410177047049474691667728172841152759932868495049103173603713999972113441496398049355303006247268458506511310816433997915923185124252952756469684619577817296670910111334583977998358691364383303984809734858899882296733324304232953274148330519898929731015531445230637765859838655005650765251710397769746856617129034721695840305795940807391184897557932442639864377631549060159133427385043032203491032116767613693322068599183799057840151043628910344665257029484916303810231203601799763226442328390389316557724154540470808184547594180866064689961633903521048012830090216592185968837235975837085715704345251563519774970852049047288446132042771882884579263098441633785228446307489689143888990574186724888950001119976176486417206211097525372031697120458136911440599023785940374106448248208778176515419829334468606318877960027369429364252712351649073694321571464643902915037877753842372120676461416446935369035698889603462218899042463075821762731784342135741995546514850251268507619153063083600275623237303663612289927595079463273714631291282605817572532688372774910426414701319943261436473257099374658276078278416743645811471461477916414582552629389503016696092054139925602231851037868272537158175912363729321741717448447671995331448698055419585236793336781085638584428746583033216574159827841560837221563094403828343121162664455034647257349894237102005299930366930468241914616560581015715008477997226947681452103069952610183568630418615901247147977076581079225674089164522174139884212909976065567132845056832698574636362069631764981069128922039309773446922984393203288329385949493592387141016045869403156763377277990609126117209920612817988151040113028412772095473501604406696338214201729410922521035692254145126872669823184889720692231180607073757712150345160336683676305277879858313031591439525756246401705351561227330731367505412190693646502974415555814494491986451173318901602602127570960111354916843182428916852936088376791743172342148956547061658625193070979445426869433666321990506943368903994197602670728424493489340386467068674008543580965336874389500229254192832804110394671472016977178719927082497475587724088223437889087612182660204092459067420974380898393494272888960622314044013183406586688745650904033186954670914969535306447683121752924021068001803389592797037963792203127837738144882402626664514043628507295391489212903616929835792786206060706154881673814343396184208371477809875942466470530215446483259745588698876284026653637015392085141414350502597841909973990366354321578505983190014343335712350688285450291041735624509046772316340680914961382850340773907571785402485623934647829069698066419997488333306836882396355877008274000036883351072137305241508203904608298443405392620128842386041864065684341826236555718079694817508067392401466145152462630919204595828137264316833292731232749041543326051590352337680090072907022745533548236689931416814598324223516870251713804308616699488612893188883032475429016036665121933943896503171517753782856879727531895261973823755210323906561163314240240804479977289186055006773973836145337079365103760327828051673977427872342583856181808419631265115017519556730650331853036122069609752081526904221718987708088001630151657117812327031431701405321346897280966416867696822458915926479499849700385795638238968604110612888783949298936073979441100046541936180098930977694139582456201072469587154484507412815661858527364661490639319311139636910077625180726012388946740362151392949089535560319513453366048932234219442117770411021935912062415966740655690931176955514927651834743136478859397890222007633666952612321368255519735581068045795955582466843101417539495471677939696407202245202945635812500596351083109134294868109242243595439611325544687672607338775955215828982267990956529089481779060204260782571287704309724964337836447874719072143314124181758429344357071729639001166333566473342291685884275233670113019105995102542442561859286013536564317020087792587127680675710594350765640061125388130467545943929821666393572220693137443970281839079919241010019837269433438140352294741528107851922970859997959239008874779084687266592799762748456401146979732399803860716706925901160696726034425843950256178397680539623307597097392014004545998743519222461812928470484048015094402103433907519343856241890553319550725707303382525961968013238777314619179269563090203689268756548784400704340123472936165919901100849652045920872390731721127570371237712477949927359202995888146769794050815445704666544713467222898742638004134862084961178306071321260636793789205006805055161838537986535793938131176502468621250713114401568178401836078475799009340404072690034819758754952477257138152462829467272365108320303253175852293730443561832301568414474446183795981287467542350963445480162309240313590658112709782201364502976917462945813636345054419307887551525986283237827924639007150467090545800859535391818426627609341263493394226915793137316654037498445414758693724237765570474542421420707775008427063678495364641162360396532254947341833149869699025921992657670775888938299741040892197445495208772781246439859820248522991529229679117716755373477204580962233260884349756936880645167018533523719633235503058990454268603481277287078759640571703642496210345888309699524900892734173755403555668883747859735557979891567043947504650206940165064282357059671647461535207558165309656034753274122605848167306504111781034986455629836540955512363809181079235409902405056594103863767447632597223825691427676801896744458731661400424502140728333842401143527723965474848804121080211119053156773120869402627935056678816725860479262392976925374997054509678113963956986772920503680265141929081712004500084026738052271616494306893275379668376785993365969118028197560835976757495981815198481681355034796015730458744213987532540149096702601439157019985288723291868739591427289934018535255911397234388965999475464235110114678163261910815313065471526522925605058052047751250016896206189096193391946919107344189803745309770538842001195543737256237075655649774491412309553053045874449758124934783381558199942455232297658437676306132085011549730004056515874016192883410239154615105371522184314630427204695894406019922296638217874159567167820425696033286639147747368461393138862550330591447101190974905217494063824352344872295027623744020951389248000536626616344574631821863981720500278386456135181176424682890926846406197643701012840140628319741836873827328502728880247683357117004990867788861941279272800031647892486032239264592324145555362381904476469357674639244557878270579395076179105567066968547301772812405431157201193820186943211561366659798735358053702233497079806917753604488640928112657134518233322136074764599793888949987970301477128520376941082553527519606450806704865847580446895129114224438642672731699568941486444208579818129804310690064407275017224498305347766836708600801473537656966150880048804577831178385801187727997919109207058653645532661216078728348049598500861612824729946208890393905698673377766616171520065682110523020415138215078256847777384693819089383746446730369591568313534766771500077348287525625554832978119514866160199166916772357610099913545781203703109239860009860133313980579468449206517532038784948794295271356769602329166306163384155873008223959519840522105628007436410809359489293836979092619371394019549937027846085846191291147067184474901687600162430112902899121172527260315910117590381547871776844831981115742072391801117600815879437747717105106527716048920331064952485949555266762544923740670878176450389282284612164289553331771299617554347907290027326956034626348354841875633832891287633340775623482259842786979543799029469291267437746472178963463956362877064741858838342229255795828557344074621328836850937485496957056023438365799418735539042975624042512930077044873746147258860562783227223592234657173642612184594436654002276183639004697063157780068516365972523657910337737850191926922862072918085334216436334218834998584771931115631278833555351813827675495139609344709800846161275185336839144457150979240811865185171600167092472944382267664023614282911018893723082473583960162416914227048333775368844067488268285997535508318358281449902592627859907021001545426699387767092948679542066831652149068478712559768794449469290472003743794634529603141539809860963399885137608107065458175082629070382072089058438845695550156234384093709416566301866349284493666638185174874738591664282542274727108366634930705202079669623301110310372538306866588844224931190568732341988899670324884915125093166834354424442154454216027724458400471270621817106470167364280332352506300889973839534284729082339124454562107555384044869915378484576339922097287498218952541350097756677388929044767271765163477539641681269764561621776819066327464576625969946596609029814860099889720451205477556298595181418161149273613084725374553662935237875214896689431563132263625297314578517141877314604487215113251961306596405068403010159518394378673690150508000739397031100069246150666597220863541395964959062677601363462226913802946944991835220058157612371077729966013758229626374887270629822974866431492381822037362348784183645200527653164527446394573480280394385731572509257050488261552885733728826390303507904610005364882587105351235787140629761258066176519553475518677733425337620181808048708379082850271693408508335882165359471965770825717283553447986547960415904342666951674339210655725260921697490570628777861083857251724263852891311778697081849980994386965127739697833856726016045251363657839787933813823315019617874784858970839492520962394425893814800575159813278376012973738922868765996418314461619080048148288169122914035790034419544754374152075571719909708630851172946920027457374451992608888316114389985920712501652785782950851436280391702801033785494497729698275064952887559174262082662620409629819984573745211206435878923278123992836004243071472353747500609500126844472518074614277085012385938714294034301647230713694075084722199622809679756471298299213319381345312729371229844148480790145291773830978243052626073926038967183185835799482939932577245088242164988615586183205956510549863647153441952004129786160456456112549018425274171938169516014491207269729118401961156462409436035598217724866472482330759021700297660917037328820648904997061430031363097036907342304066990862851474053634271225425943333143701114437428383290453688559728093924470530448653584824791391041499253594979536514633256644698867848894075163121850789782522397715397905546622487513085300263976630355329173290598662522159196800302771291653794367882065083958701265620529318573613311021751442368840256526492488546632779797917987083258984740547388662060247636411505249220049396209174821809402516784097051963937532420918767321918657063828184404039528803139290453881170965385782293494599695065500703953928364241156313383931475356477965445525606794779203234668538080598720524331469834122812667426835406275305165621968791967918325859156934751310314201735022139739934949530401024375643869481489106356774994139591659940998398767829291514764163515039826982677826665862468319459886921937629598472046164713316078039575960984613799058267117309738171637384986326075284752353435115062875745649176474270264945338091217624118105624250888617983592659856955400211877586722588270837177229635528103815421111927326216555653499982235118426427511098784569578148881022148599208363556570635429607962359549364658133657291855148223264002711281092809376829465866157172137537599560757803690232389640649528913274639074985096679651064006527216307354423753809069482105740133030057878801707184885376121080285180251812284788788713140482063818067384302536872551159698017349080236267695567189732511526759794069529632779948989914003437550200561124273144565118586967365872275616861448460429210997471210372201012388473151536840052322798316608259867652840707883147259314773666528173775220877647992895504534074964811035382170113581273423129109871666197574645608561734552474517746710744808225348554975421226140051941117510752400490175129110896565112698166072068706791086439247531857981141797206258077025018530083156543311357035027684496577847167322307164015482665235740795178742165787542776185081969622507183126424105022999892161068058099842593078697941286900054410720040533662897840492367310322975007884824155237275689557651284119864223203043471158400552786078456899900725683789441055835824361452459249983113075539984640898265591918767042245466494669058875279414210049187549336673811087940972755130296808847553471748114849723805545982488864873535197656890285719675454921525779297504203650079653554790440074685155299761903588564341804125108425534879227583402558234894682635289408548570639759362010750689276495851148491369438218615753783806929257119305090901392288774009196849119513317463977377036216838282283232516311810026114116665977107788265243586413813287677066925873536661967216738302572868700691144362049267839255151677682216954577289354277850390791316084692929775073149720705530624916253657679679841431608319797625965932852898790856250055049701480152862180412325603444833741158175427327825310150917745167572808452974403978055541151853715853951031413599170245626261893978780477514018239446075530806164746433037035347215587183216213992914349971148368023414088926421940613230488342207275371899909272365460883158219991620161930319207333712650214039781118372331280892177040851050581867621495534531849983366751528992395911091914132555302655760794435397757930956089814595615153296523676333514359618913156272247870046717979066283260274707490135243006203520707351867926098837278682844986525199250502106935430069435659412795194745065314168421644567479951861475134579372507204982099327165599750838250064727689236745032641094308593361930056718787675551788414278428083333458309403329387576358821391119555587585943745025902238539015551944821462813562530617792016102287226541049949411037058666357162320167986927338515600028279591560113263671376309082696473258108887243901890632554746832288370114108940894263701032074808634603192425765866471419323578965601041433422908582756279748652762882039005075960044792671369571320700529688778484758057019756709204899380026966980306745189863222061279729417241504100878448479353718935820981220525405735133636822364389237547536370550585939429651703096758437915250598895502845066307848976725518420629922299674120714516216156269907712008437097520774674336916773142806382128160167872580051278096721805472541305647980658698075880313160415662666788679560919208116825151111890950010865474363807119122306187353633529963961409087390633242412757954836955973233028117521963799745221008264612187650319917060282941739657015917771410539020012901713938923007445355532386814335077526089778202891188372914857255181256477649665424309292322426730523080230428171407522792666656526609890975784173220754307671132473488839098171669346430312714764162286664031288513233641451912012179493429779369268573027765357726373851340970991880082958827100636317436462042442256165240820386253998425942780518098687737168636986741666396609745119006146860364739363519767755376927238347014555679256023481232040506191162655532959636072836139091216191153244119308494046360812199394106557231307888872986468567675809561001170842920627373166499975960764038999697212822401274880315543852547074065041089639833872739352647079736163441818494808609510081924241078002894026337395013296934013620937208799501771283433541739931775618976955596732757095746993471296624884331687078800235755478054066122152299731244398338484405575418671178167884022754407159906221345968778229367966159885689029409595702551296494856195534358188089159990589705685552520133223508035302068051562868682417071955463052877420367615471051811032935053297948257004991240619101333159424186308701746955117456170422587235301296204744251387344406672118032715590527730595419041536831756817723812496641702759546122722560640185514378452120407315937654845775956165573197671637618017098907049828231324917362456659193994448372934793679410096625594814587816851435893286695326790833495843487371930302375845598020127280238291172559848797549693593971616677729367761242259618632604259990103706952260903113687482796800729356043178209871420728482093010474683579083062762712693134514784851706263173403714522304182213418937503610198261031078362670853265497429645115995450586472218437906259606765381617197221922109868194712483892915085498731271054290517615619777425332702681287255259951808426598766067667815863295004472675150643604557659296160371332438279059473261431429719138488112789303075076653780396644763222217228526958084389891309155558082106103347714799781715856163424697493093717399910187874138706896015933322038602499220194367807533936515372886079312129430810595566406011217371574869711854285462739322970653262827828119920124627735256082303164794641481498877977076144000606946294189185293512073063108797314525536634404817254751671927985004356386633874163281306282489372411255557546939026680279124988104977396914060132926247123883673476284053998585617463966644731063716593969292034714021866060312731849933310755593741255443404465406638763708091381235564488477249196516096083011022337504943454143041881817699063701317013008578869368555830650412674755599377272278731264568984562485692876873145199388657780313576860736410148955280336430164837859374660255816228485308470973097503914647128198810661980477993383497012790488165648411466907559691402305136251239521869415997038654869241428377397666495086003696202629052153467617136325099498308463141047836928868575472560678515139565195557272646000120831208796789304230107478582391428713272632922199998341073608341824287447032599552302629539180252372767943742232819892788008253572544887524956045836381649790428178131315079056864545807027684810931122437552332779522964934263036856724785809157342448838611545599965050797904859547354266631176674475321037890572993778767156621924625822372216399844522383113939118831648921162758840099038633970448449535197432412342730980937510993392493907315477583807849448309576700736220078312482574728741911694463741564993457243489050733029537024625400304144661312306239893775698040543616363817775715182222808148084863153587282563141007977207100949730198826051803230561842079718267155359281182646598241559283522111785828951766767976635419507443297337935774135774823387372377543433426120873726757195538318460001976362721714325042415831577717750509443761675093877973870058058197766700398677840739233482648954724940866547499268665265175194081609519039385516491415278075150104103759188057846050181169909105106399495340908259829363701977516310234304642465551600085066310049416490377394273977967835763743361274174494932244917873300452325836598548127742725641802343610643842471697400410735091964062096664303626455222307942442722560416707249944312687541566558907309922592760872048126485049009658907776770902925963898538989983320034193526553225955944016724508470657731309183280640473809005173773796688890277822817192694343899002177614678239330508049132376439289877128366894601384615962846439316598071009151739496387611685612021031223716752660218265402148482496292016947743873404703059837816840124450162804649753076175607883501357322618683584184020118023784345924874163781292826199137083815314883375153581314532249802254084611563753126063394314390903294040478235754708357045591595117739933667392729696106620841713640781878172152543347999183220161369142915269848788642663298342623680177084837085363375757865034137997529515488189240534017341236954803655434125210668469384798357628851023171989450564131107928691196022880919134791538635887377926921374416310107086557794031980006983189673574037152070895497732647935113810961900714790946281343629579991184876805428783756506855216271576686589278792889621310227520762517334702849039449504470468155582623245786874926332750860955269422982285163196991557023582000745376923190389112999394755075388466482975274191101293780001425889936206586863824391223048591563397509862042255692726993203811269996064149018862197129978982175963572594206990040241393102578443168563459294492304171608036747102354355431595061297243863621685797788924694275050834466912886459335169670444120120142274908483894466807146409739202176323254517682366132039919315443158307900404954070476428969399317341205791698415856637948511762879407698824636328661820854288756294176515142936669050332205766421105497143735916941594611120633702772287478592263177435345414742085602372532168251422507734499325322717717302514522496573266255736791985669008310903756593065498930886798230497213050442499792191123507189108747384335508456058297357895078002222878444725375827043451044689299907699895212656083624229718060899826324754418987917098417203019026022905350894636804061509228393894822558489969127198763304057890387844330648246988095532435616928741305254730753660021995904642007722527154043485333949787776761870076395480193167560469809905041834618041982354699543551559113050342209516905803556341108565034523846918432701983082869172654463767949279928536694906250991967553689068916633498041832693941486522033671371291265212523730728335230567179422532580514664527859164609727064486001104736730312597005765225994771847552100010557548471842298131227574045174549300090204373562170506312429144697012792856497791384642846481228121652351154680848149291192955923106318518356405938773053435223579401364610064892088092869234925348339640454008189871043373476255548589677674989943778222295968502892067032506205160057739637014701501437310948753888001994189794890116816486287689394033991066144401701672948635005965436806639944745256208628826078885545139591212003023884441592066153191073411435867529082039820877418928185045596065579597696999412809312223289284884363098703830525243317077988007451496037160986683620208023689624060529653260001117415322247216160483802443332541601675688756662560076507811409684368378654102980342345204010438532881575005420772551387300870550014611878710143385794759952997074831783256323889710337004290345520355459534029942491145114097108095831481041512231406777660425328453119463160012446161550809276558972693284582753438384088006832229339589263525768442325422193871774353658909639772591710131605169903240294395136337817887250109262327918972331841122515387033000033155093349431798307353599553739458792876371686082694587995271121412277065264881868813492800879887131947781223376091744488100574859664534570790494583977855411131860778419406454803294807347322205115271192141333417598828572302636736054243714778286852311340279461033510435872493995254549858748442312328755953517596085809191500334361035138170487622892090420631144421394697655117307899183774308435964058481559067071472136112632617598533117518661150116867759278618879219914726914567658633820505277908457389909489345559237653920712639334888005492532752484559672921134146043947314527559274664295668203342472960334439191984436454314498036019245190986991512795862618806812515629852577098433424552894640434333282427985586693925791465940891977754267042706281693412180239981497149488849515655914113196001551474193635679356146172734875067190035247609076587231338642256595712404128139381818136946708578632239522609748741980612454066346248978929759748067760544171135906099598667875961877670147515617337534903255636302337977921703045083979870929250810213133861793743201596495928521687678252405407845224993122567268658193844789821395189310569966356669938001827135675562593536895010177890527344218584722806031542051884823866669781914915053507406835556110458544168137908232484958424634340131123629880432884518035053710070761275642900300549332802567890828125327945217702318706200780307325505112708699683483820567413864921119549119859169124652654165304579424873240670604201565243964609585319932858789040074420231267252582885329711412755551682214378406483898507334489851994190623289927834640248310750387521277460222388238499410631897690856490180616697392214790778086341894295937226346332822301650619131820380683881981126681623764827922376941389972332304623238413763121064023688381859662142439628419174936995793523482022961297444035444138807347349597027788532262846037932549748131420920104188227813489939699201399759278293600722867851938115241250435535695140706144062265737526964489531352219255230884065800046863759802828642310434698388345140973835812177826907629088828819563316293176667336444629320703119638681199544363642659210456306831652254774100306717021880903715018081788290265922551012483258734241592331796237442781450997715247566530108354215483962454333662115400044454983088159888624829421989111778788839708746913083542709324005590589429555905636849898298510383380276382091786456771794667577853190269507496108458500711851053319789702607426140817147882765852866969787505513191729761165264210585658122473905409840317416335368453508395507940929800200015625088598376514034634122585893585060381010556395790638306072772888505047530573105190191321679910373538335364179405492985562816315741239432915946775335279589517404417357572869148587296296036917801851150694991804783816611847985174312191878190763201383570890581762033365488464285478227152822075616261387115522556364329851958704325330051105628741313622929709100786248511721013758419043230714821342839261144490966414999275718644042705724546063473214381101511359761446723101821022496723858512765978105629806165946709419047952874679378612353750767357342099544915506593316849819250654774071744679674270533725058174944369584303480163197967059125531531881583112461081251932366827548522993601593802594218389758694024909872719402205348836684321007696327069681783242286093362750939689711345241624606233595950849091773722812704811633021109972437853210683313181543468663604102611490937780238997943088056992577381324874363779368623751796625100019925959021087567135055255612690546672586878202579288860829265730217911924543216171496545776734580160095903307104789565654641234590426469049842800119047693109534666586037086947427233034506272725072294411251772570479355967271152561390803833732469253417977826382760746085959946235987177394893625248874016374410335138330146489136950993854747146755938234629125360035836454506322444384910591597216886761105382471760156420798288848198098384980803052788192965267677420375286534251009581095568906832768772988364196336635142612605588437194243446110255670870575688900922528780202269115229114002442204790708586238595412472771575226464941546774799423231848894619437364508737330905270063288508991856533803819484555852226767320113828045452245811148053819020846201427995576855092068130134103611616841634928101927084416856729172466090672510496983508849320332500375417701984155179577818784941996914012750471677740484172403195230226627941542692987099762516008553412787466484179554492812501905340210209463461509892551996420490730263271484342829772817376721596431775474726138276145473885916308393715798200646931406927610291132462878524564221104751044733593849281054241823586170724294792393793734470911929116114088503697568077919361948207003925803559327894111937518644759250885258150607688386213641872838524629318029551674093085181449846445932181188110973761654480204315890871563417369414757861083031943850626825958769010660444893601781996376748516140584039259044482599183227168784131030711041315583197789636426648083397131676987833326485157750047155334984560891673943008079261225093633193708020551029071702745646803621602452768888630592261420850999312514936065009024928694495336957950657837469330773015888979686384767170816516742985668651618040555575279444969227754872636282925179381484622205189391826869815487452759963497511983046504883672667140727265435055115520819303548179291020388111353543967852112062631958404491798495947304950932778500348646336721408817448122447014764523844466013926801626727437029772096196347818007291693517020987468561356748316790876314119167817608352208523396175227106690834481917551871934856001076426309739911686379145833404443136294018178985558867962195354038350840242021808920377729161079858022966787530096185174677986939202488290324563025380718808920207550592827835322054768618847080193403103286144549272137829047196976374527288298620217069892344111265143779872942963259729849222351110844407533639168460970683580181863793150438535035377547150595289919222348616119569221177088942675814673372127480065759288763747799182688037334042937557184520113353454779306593254331882109878796789561028681762987078775046446210563009876430876020306697069278074512222039606580855452102760159665417848988325331034919967908267539641488185148020292121739451811547106796449604697078015637838260957648719549830666086506295029032363310854404817892775323559547810952189996971407608067775380026978684207356185961794249572595444176281616283754885024920622346087751913669983579552889477924922645825754228493708457638164627155626044841981496954881925482057679108155930807954804965463486971557759782290737955728643346843587185482786531911731903751386879855346649954946553296902032064421041308531999557899897528914208350666385437403282499398900434806989558830045435360260475020281595797334928188974854677267087363954816859703322089410399410268286759931458568501210935873484952862414426224069805021488095963054789169657864375406817298502146745835717106068215844888585336115417959090286355589356016951993694004116964145111804798503160858940613100126664875387194684749124036286789362123835196987954496909598606014835149736299835936422881626153450641728914379165520581800254014087590470373336386059055932745077950905998647861487518153936900364907035750477563354996640065848923658945974633202441688121450807208366261784591050376690209650289805965479703137617342202408849642346407837325902395593426992324086055170827287769330178651951788208184411569074150056045276321077352744442132953719462519085296677756905836871157219936390990411526118132273193230089064720727522274137400215145632281600620791688066332354894897899394003299915041224835186594954544804001234974097241256926864000901292844391338540427564551758020413201249369497585332810030929092852960480534575748955280222875065447861245433666609601953954136933824337508302559386853108521629689051307470062682608084953651158082866060228364175178614392647071369567228637792838863870396493185934893423881453975249752132429752116520353085608770100939694502542468761959336632258382843689975615592281314052308646559375054992260807919208436329985154982327699966036191707941794183063301521632279569784477876757380694522939465908642295911397768925798934083468538746445054107620746664437745706971612093717219527974881609685562320549173635707525126822206870960281744551979205686550566718170723161845626144450897493581972631819367202830745767384875268051075444236475737006026152914276588443706436611557894013320329456151799733426639967836402014484711494806209105274457831566190266172961148171702139968345431931220295136713638828522119018569410032278922562988695323440112691042267509185174877322570197941192003144156662357976876374402348883779223884719277273046122340529648348190989351579854070706673784871276114378229565396546024261393534567315459216771271481827622582764963775550811095577670827935350807120869060782003908485604297634835842386455066518058942910842378694699417420326819201263724788553967897780242687954089797814450791670439155344575985567365178463914388871447609154621450532264236342247098227484360552062276601092083943610218819981695086587669493096080541071421234781205222601737105492130334068764735878301502995060605318313581105026675449122316216440837960965592010751638825924121740781598978812432841528135712010855959331878470414555158958189280039301878046341641227800482490999341973774103200945603774812547380286057649796304898401435956611554859444731198748421915588288146283985884256969535917424942277904595175981387919565285766746948401811755026940695810238159880560186907871952295751203126933098085317327334282321794864796700204041641737499297991557263068353050481129128915336364901023135282997305352285858667729837954028470811038044909666283571999210922401571120362965972359727523551223914511126065078793567888809102432082294774208635704011775524028286595120416296726269289627025419767364091180089300109683602479154749291592809177151009501415973651988657981918800890899117532251931523339801269893089371879025359768114498366686786499091417170187451182897534298425651732699290688258733688435635168144497845699178338459381532623917033088331202707527007830567974925719760967403301749027345285102574488603374613316200229373355648391517354010602343839332651719274380369374465222690621959835429654528955893440956395405976478466684086026767060748052052177259374653801448098893050413647194121074059035350241519049074689265166258484409783699899841717575077615484629384862615712427448722282344756774608179147397035106597441331830587427627169645086779899035108741118740806295507785440788972079252506567709738228461060476793315842227111110280311425749783492244752778023779580372172536242388524606894078642591497392803100623616821700448207522453687748648577992025362926222392643132643551884401332389577268878031444068480863642002459544592054214642849056225243650889458047473319124748654255943213355006748892395712319806447432979206187198599024171358394231885966819700149810602056414991872409354089348328645011763245889123873778287375259779818987819265099387433002725234076041398778672669101377474579644213163353505154962870705918726757450267396257625677513886408141899157882128272047693359042218721935088321420142831987072043150550283324776343194615567473996424454563464168343559737714084990891450347429760165094096226660353777145740045762762686232433327136724624448645868576673475811980346254255581795129890385393752052653476532193767593431110738761249116615414845059604652309129451898816912088416039682381778809726619331249775973107924579565117010067908631730701806874148259104848143105955933151997706985776566551275094421035319421128544315425757679071123312033796356812405976488930684733675089998635770594843685121658252211154549939352512078055552203261667381816022937434983060837246566812012131965737294929423923943494266750659931494875583905771410580766372957834208631011654087886346716007122291604493565567128787000156582402751776987170980804258294211576815613949431145770389842786868092575823629843764984293192612684409817823383347779458027908372110596995718369026676079532894496066899619645606398053795891168092329910723829799548831366429715170928015569330500167900847432141526384304786380426048411743797320199301486195875794362665445654003895234721127203080793877468460555994415995492256817259469039201058738454397113763577751818532484935733939921981609173615583404713279474685524417424932960204061171187838515237375652810789428084222914020329323509237222152666543865171247472399510589075143818208045313829807025730898486697601384577182808191781816664823028293956955134012054721482199983912560798111508060056002103674289296687427273566790554170049980695514774950061899345636589619373238156562852394492638008121812960907297385296326226508175351097561466266164739769433935200372949555214068738948350533738913936210273528501197080607726747113145644150206494675015234733592215953575463942436653567819802905527818578447323637808015933821672929988999936455185191462340263847162671534316979670142037837372966708860924664027458755931998732469379253281130569090209652991867455897051659199247829737919930784834908344587975808810355481656086607424117229322176954206884367209002589160331858786050359081733976889300365422388383606826469766211546953196778475775481264898986065248153273970079456416927109172383509905982292257813688160718844582625254630176084876889529854005366018613319324262508076055963358381345217579229163908422858869276648807098458525898199807982470022255715605967723725710238821395611329398506344844167757449189167162306310371662696170755738044104064130122615603070967005469792709996653096622345260978001771047285567074065220170705397001486170020853770933715741664509855631704066855195201994820323930724646603369775089125326732407348308520643607677699309546224129522857099491654695939762870773343380655179353593810892324474234250845866166547139166564070972978446425668339401312418052748417865552298926025389406438316319824171710871502517223029997383651791962543041649157202283840417879964481126617561555386166950097718985498780964651313220093572625563887972469561695375306833935076238656398759706775176471533159396930944540824113787816814139723636931003978407669750668650523029865331883408561478896522557321852374932013396263714475400141691208955801563348362729079138851564429102399688939824426634201703832761246378869689458964685751597828707683695473159942861635191570750464374845276099330838291878144164274594719879030322888441349308090761916229223330011319157789909437841476469597642336847032409278946945344650053961505405768234437043223858254225350626880343874644227543921388258971452861084963434005322721047568578870436449525281537971242135523688457452500105606076305119190200367746377918214633036226063212876432432053970933130258432939649553162450878320502331482593174296099349537422141376133720499201451440698293593560500660247874817353943287934299905587794549964846273604228802406414362900015113189059345725626803425275356841393076848016123513263086035908639576041263709296750269051492122059103726802750457576501305102758866343849374381184368760121661185760101414559683505289084916337743872133196205616619084720157524874295546927913718778882969553707815813883291105975082254554872454885612992252789756727124928322066733497025625675959080030548826333990515032400912078723503061166074251802220992269806592322636963161820993972528400371324763958917128349006357891595504055492919535562754281119025315190388826576113103364805187687240424107001417288206714435065808682575722981992715679289886395422351675119532299104365032209500799870651118378137155910140177240670621905090801391246913280407106334507767672057421808390907337075174975342445570948574289124579181435473385935015586864062734912101972233026660998163592673604806649377235420823198606624187554606750583718204884052913307650411523141612975035054245075968376125528145681655801194408289009344656992440410998893777771921390867300283823496000018620008370491902265356603053408560067869200610891440148013076245924594966571606366284236876705343926187818443279918271781643150666177780899734778695265122717741186848923434842117446873798301343104933199838880265474622005041028924050642375720737163457133690932333878309283298007323319898066394142517344582886496481798918548442021672758626009516601045825873039522384191207460573513728047060245946620792586533619952272202580559498707716305304232987218299526083865421436343879934561930693373213727987275903573947219843541526694706864759457475215597481514149447931401488731289244518980599051127201915975135866081357139642342431515337881155629119121938226671948691705723296756120190162504495884054771317555229158706347571700499209354855866050467063669964025426962406970318071771798710238176442082390020949594292263969056036684877662119336886008687777055696131476351844583793390612297513408233102632590463829021452656538780021109130662319766577394034045276764628199419691700120598377632155459045053389444842856020050804091686756665930210460239722682623669610640964326748944336578266267540374226780004428071728727248614616243257102316965353850783041388114472201834952449338570350882236113538381182424194164764002435855619770025080191057279242033810764254263062455979600955679787427912467574595956588702894528559128707553421665434597612435399295779803000123184361332041769049844388321460407577558635882839135255358968976197482233621498154548462310704863099348154133962615214758928030203854778531989276010733000884128124759215485034721558960746513937575551400445967623018119149959371550221187832234567760556300187313147198552197010745248629189569696806972371727814199830387393978131566960588101344221831286087204422630919495834218787970601617433221520573754088786067957166836704843981589629753514878832758302146749164698280329693995001996830283803227775177041756370682271047476222593858780004984777148097287511490665226939860262293084854513516389816132460176791457220220908563875911179612940581761764666883807204179474625462915783816457907598025876025060292850006307356197144694320708852156064428162217204922652293709625325806041353116753754675895919846579789522973427715885968785500536265648729868831967783220112706857464367092225055061622055016482308181202779069848841373739043834022689599152474629492677365274972333091186858478786257283377640508178888291693489369473732675229378875428011648543902679039258013856505689639714349406587943667001819068404132367895493283097551196243811843800156307820667187087044768596294040310118829094038378816699224450287383203889553056920444675542892773309025500191851298194181933808306418653281443468259730305739123878271059794595440016252324066893141335694099164022553965202658662606351356679278091392225358362539626332091374771927920448311510788748860327817251207536898845215260916476487363533809571146024797632168428630023310228097105024541279798563893825683496210789399616799791438440054692666639897864800593290996196889935041735870318622258996196612693202213510512363888605492501459193097773624230259727227233530038489103685740437803674223456663292048031981841386644334347614300749147626293205583264991276504563809620182254258563302088059775351049410816972635189981842197936080831059432305875964728172692429002684896198827436373213492556657372662791682824278547001916110455446133588205210266903322281403662327218124680752181588817006642265940419409705240933100911807261723224159133918613893784354759909325598450229301908311929969340274117015682696340935439219750861448945705317751789139293046659940017064834679789577304461534393948741883492430145534761034833001070725556324467549550543365747125874642487928000795999547450937242463305950022150208899954231489673017063703426724130015906313789385508137500503099556172332482062341030981340255010538220912593523350794703852334598941914926229119004230979532697902809197571374397803865274062274999086885709360244286721506018854062822471182444481322842163379530734091609239689911155085427986809017865518922405591630822818313148019494149945001313922533943844429952132957971484902884278125561942720232101567781115337584227232154784670430951760452455527000375893050484355250597914404207744812302838516878034916838575836107763378735726755755863785333799154301652381110038371593530572062403318967860799418371141892016471118204973355404087886247054285897846833148119186174629557441417304556044187087431613877759089157042026474689641656828342437730837581667240466934082402614940515436707473709830251680872272604380885096294205419590670656726748465812301981256043185615539837992503540576873558037290847292287744808995092014919980968333927827128996636676494887115568557864112953228670041624168591691348132867126431112339715341881241617294667891151087946510940475424096532077821118647332226123234317275145042324120247784246101077203055796598936921589772593447845552162913926002986850735985675682268656817906100092058573656258085651729562997811438016067597234543208150736358959328406773656114370122460548441272065358977467864142014934814874293055509409307517324867302047797982785432842274471012820674339594153403296702324058688276777680349609533807294910991278900497796889286151893205193952010554440375618182555921468371517823946415683238287798420761155722346893231111009408652932014990093836584434109089926390103167535320577572461956987533026591662122199436501259518732554425947382109515658300698513268026938796340491059514449737234396951485600542610447715056407303345230494569854693437675211280488983279843018271145020657978709215189825965444183786742659111296568501618836834271800324624674616915461776520792880489692308540129019890189133515559559938431668554169524189237154700194608334984424504698516587753097390357715796601455968847604743987067139869984811358932339642070235293199832263136814899974884936009339791056935345524457775527741668017626791546386694488261037153694491324759757872181370791257021842015645429281136437557889932361499987608719592166829449069025945998659027164403941051899102898929212744525141007943802487543976280669755387019552653669271818483210738794149120241311528932702511853835421442217741302043543899594555449324063195296046311686586265471308549006325801854269056530106534111426586432378670265799190590635059571838209393884132308578382081555738099467905744939227750451265328213169078114707449445064763000455438695461594666947641971902624380857943665401644431867411266709755812440426943642085979639248769922898147466108270386765606057398436239923019762404979076077875186504393124177642374236529938868710054107819309130734163247821458320438365049230447894106616838479596212798945137535332077748729526755348030263533214493010714403375648641418116721951079035290287719691811005096062421947791329705447226818897423916331508668598115377196421142921682870101092752012559558675954633733060300346063146324225433549444545433982718452234857080828942781270891835333459442087513985981428670234479867123372420781813634845662814584247153552334202904383865908264341814589943314938268364085137926027563186956537214362371802959420917176803423691387926779722579487397697789321573267597779610413505134850901705512207411857926847198702155059070038270376983383652486821387617919422478541442642559500549696456265348815055270688680127382150309622432990947101228376633152951291032466572106312930267704182850894344148459111562983658490635044089837064870258002038106337092942063313515371873147796600498198244354618801577142274816538226321150875690100212235676770706815992653945959769293824448137181147861591372628788914325546075016072114566990142939607378364472657071366733404699830884696800492196812001043494586031275868909767522685933304618487635875563838479049230668821001129902202145437193033968076880249955257118766713787766048982682742926979690972305057773066939053616802905774510582332819090772882592178134140605435351795087015654840311256988140446144593857868912605593028505118001423019254759285063573970840573789998174641332210088281969519068780627783563614317074711822456718772320223070809922746524958848707762119542097353831696625219878075794518286123171706259328296039419961736408849271758052682277136328916445369260140664450654693970476503233280488399590299382813882280975068169275261939390776841699298570193203684594499098894089365751013958079768867782859103271241753443526562539235554486729067184976092088535910755122110673526198501137235817533610045846543929661313527978942545732961440014816911786938477209769222696574825547573674226076747266069531577053499393225440740628120675206797928579872224676686822882655895231079705534053876830324676439886561718615261919223685580286881905785392429582676981725165400891401951273087239065547031504934459863460373182553980783449639698705110213405007363286532672989758358144528423155911339749968239966134322238473623680293287512806440164464893219862975591115542768689746131776641067373587432921535440124102487832103827128449147618483702284332920500415135257361427192106434661043891913728331500657968238498243801790728536079592084072382857275853845546673167251791147623056137005867369335136842648456309546176334948224650776826414700561001401440911850602558638360488273240086858118830151475813190752951139113945865700710069665157482289306969513507448615224075187609033823768392948774497767125610897843191780077873789669531788921676998183220061207919109625284905211785853510276284270867615420423550625098560645105004053140552573656615747929596022074219014780349937547667029787063632812074831042186571514921345652881107926182677855393594707830522814199652663288476742314718309614730211046703648571739044284673430453289436429987638891965491090465254981840343896919727579417095377737164917229715432453032631345640927935890734732652217181444991365359873486230819267257295489726860567169282811072954899016956194870332354398163219896814466603459570707396744546535637594539059279162166148092743360054578756776732350545015901182540328320671297949917702393012825531712456157166962571672643056310285309021553442381727204803314030387909198099739577829857156025284521518356433494935746402876073424938214527610984226367824428911187900148811713448956809707180947135177949810251534484505523553731856781821146374006415626346833035993364085572072764246908718364464377750639227869764006596470925227650186044295757595415311009496368122851842229739936582160942040892915332732613899200140936860872361992628468293755665955559505448622242096375906089463311018425787177534149566691671708377355666123266882745144588981800934741175324228480220732052096398356894824760763347686927565777822843284895509111650455857231567504020621229327740820920312614927350800116021639386478082467459099648179338660553034096362805014587854271665315247572885984834489104166048231959707976321126335133505725674872036611189521964433998106666956451896492559298977407918023601279948430329282446669971982549328601161601586341634705239893518851178592633292522584081022478410230007941568029911712291376091075565631584507062027935524023583069667652427234328646429101218213950239323281057086453769168114446238682921526420650288706979260284586611093994449912128602456235739238385575952178217237261676234841223927352682415437844544287064509486405671606058207383015053125130359701492523516567607059933655669146646851312854423984181062611001278617819927557939549793010769812988229099419166878344803557514263245838327402917433823853262158942918525177851412574642463400312490934860171912978669535233106262332367440875659116584808022077449699980638388123888451607050544273407184075292037727653761078021118798942942528642176659571043627045694182658357107508811169680789950647830530457710802251289615617842029082393543100298489545749387799869177976192452135965602912515378660036736732165547280363452292247007650598766487816864746209285892820166879410883810791233359714432947753311907073996574272191519715555397798195451524124487436589279496474075209642259371103658181323886280318487712214815929588647866848094321786498483593650815645623150674527653687064879708737752149701602327632706149887671223543134277351668482808320675602882022372026934429421246407797691424403755026779981822326046598609533103052603896737289883685507557191438878574086547915353754973130590077927000051704009514298153998105165572982794226475218049521148772774075606812922400926445070385981604414533396771180269006802591898932762882950551963930335148373067490899186424121625483216093840542985616072493411571337898883431534879801333559142322028554277483135165575197395110112191617477441342547151736767953568914411335723234656913786611854398154529803957565476912603414641014437753581862197232418333113662480430294507415078209895498002787320903500472877985310911646527354127239285728304740041610630594481423051790475356350737605007707427526968224553421002623057894904746736328777818334235575948873707278063018145926319584327423400850886568165171182362772498883926314223903915727905861744883899370159046688448911595259874861830089731406134082737143564942090501557145521764610558687115248753774823612680225192431759937563146781389755890694207468393510094347340334216255782322696616388153003572157317300314631429886177170505092252834091978331416743159686327355269843459255435490430172866749940239003682240496990188838636310921337293533673830471483243985006651055978511319705509100711874316546381658950332118493666048879455994886784654265998244981874889656776793838322524959769133667643942562027312587260743159526255823277531100484520576999541382513612388017927103203589591890127634445958857683470129906866427812187635454106218737376276639289630965515774279280679008839429379837994487071261304697367774480715234967755059165893857628342201128871847147451953597862748347714145900595290495530022873109889428653285289406440100924913710190339890166034065728982415237420069278939614588125135889485307522269362825124480745524475129561988711646225233424398967160772420761032069937308918825716805703814647725173390152745957971864072895564848611127333629149511226727369823331918206018559575693397752780388247679069293669668624239683587555560177517874530971983375830251437416619577339815651298578286267759264168481370489317422297467174384425736697661567023003809481672928430304441704006554341545169892127536119222952546967765604247372899757023396309074544135498417566944258286142659795392511967490100158445031019289713107881200580092974516537417317944143830534758911410299761798759508985048995412359272271150210922934479620440210196557085964435969795442758972826781916709958147970637516927778273610304280951369834636631165411502713711862267656391899795537868044521524186104931496110953207299971912995175725563995207625245502235399992613324930911775613419432700055408151515517678226381619598692284653649767312985954118766385943857761188151886995576466451363054674214784907978013146120632137735122204447097184595249778459957438595937869832214812415473849095130805095073615457348789486032720174237354273983598291980835140769728716300608447448404428821053528747991089222672300570430013996148512634136420031793752366471652644550940159591338963283972407959977447797622479591591428260489166980914078663488822673564558485674126607992605048450848508215323341567882666646727370178853099567069762897794686291854935742982849367424967143217120722819832530931785662242708813436741950965949841630474520831593958377561567463513571970749799275804383748802512528164705238908903381013786006761670916750241787570951663047514028985001066556200341915507856390471785448800259578648085728287371004007741790980520659694239892719461531860391081788928649372408483974211183669790518170154375971236972249634584415128036562962434769650193854155282785714522417043901589941003446439033566304269050275403081743166802069371286571640797410658769996253431242176931578092853747869328945908561313556886294889511366489067842662201817333151804793424782446287995905977583367641841108341522537982893225122076201737910105810301176895332931842363273045748538078512662148660283734450613425313355834595742581557747224702536527521863715075882202341824605168784953165121470633243300445286701441393636024281673033513439829771450771791065796348225957044231566142837010990177205566432384104182345921835314611800060901901696252194052262184751361788188534307360908259851120375491573209022716945824263676949487139358432397567925719973538329539352307643467763805650048552336072212670234813232124229510058797863809875937169721722338331059626221449809992115977470309547895633050765697685382401524948691378342016228825040023640999726389584881308303444134514632026650083064269880460128335294384545868362434379531511382151457238775560092826261437923920871025630642286437725286297576561404764366487163402962906131792622524829018326057834349887106930288122392742421512325540493551309886403650716453526516615644802104939891059780360971688480874271710124217902264640952481249880636967022607370345688838800176428159416270965817183314081031866202999423552550097644907024564603078110048751239541069489321803697491648107731040945716064092358596584574289035637981095007515301789061766322788491082341184316002576797564699299529748302433755142482154310931876278515453197875044827590888725779753051474602190387880110571663671251393729787525655451302392926230055039945706601659534027051417422043447462681791479135423227199695688380481617824460024741614843308735700709148964656112541559531425420803043632033540473707734388263049898527138236470836862083025560892776793527467878212181969268020415075849560364565301520949356224506353341211733160675841186509332894304904795596181805417189012766652079196322443335543720269858671851216094125380964733204605176732293718788068445416238395927676965324396341369295446011527743611764897390180111241658856097517258814699919317607265802403714803992824635958488929095033771219567679473086970072612964072339752922844760466613229615570194211632111878142092245036676102479246739930255511459700141981497179818535256426478142069600799368140519280573292074190228261171914756296922354552195206697568875331211592347320520225864973313470327669191119120255476987237065486306013662790190367447368659777910795508506825625509297723109528017145533987593593043522539403957144987715947455977709707030468852162415448334766217054425059227119371339014221784505509157125364822956062807282172620396310552021035826790832646097185075346268184532071968635849793160288189570387225332985422031018104534674718261342870421917859112282746420103246313457100530371989937502777120912556533358461234481756934076068594854983961942419555715833852666775002306786615796646813262297610233417509079616409530285921225084768929562717950198583468167383247079293992325643530153104885605901836125383102036024442497644171402811858286868803804967371747442380210433588294762896746544874282493960500560007394689445863196011609215950528065884540808355718205192264948142738542001733524978039061625697382734300472805500431595722916281476759132630163880748425562492389828158200600929410298263545332859499516312860435785585074028643967570516171570711167940926113521415549082552342510128096643974617490152353556131730663952944873823962923685088506934112711359221306352934939647213011963610171245229525523740370180078700491534759051613822783055202832085661225180377380417079774366866510203770537606030696440770898860765931842778269752073602391958586192797903470922779610206802135253654013382517616727306849735810292958040144116163891736904599293164840081288352201817045125031518704160907251426879386604432523784050857251592136180814811227695990741391745840183155444741119991761125949095214125917391324841084330781999072547916978515667051198232782567205532359474475528996735078240611020962933837282646141370421894159538895678239764910902615753206719352324781363449865247011178033654850277994506829787629226521809862809252534820878707568726815057483922722291692774111366165894271574129148100712045937735074044863108218842903383111689627718951599214970765866260956241362802672966320882802615888076426659707716547290110575367926327358097532523553627321890179303275424484341062992835202051351404042404809887638440058894048403909845301567867054229004578044566537582298606366805622171849868975553868532647121923153946237203306044122474784112873081289025283842889216504204033609948584218488192306475973169812540309899982559791982177996171746164537681625664307108735167883708534264218981898196941056082861854077628446634357655559189897492326297039875548917570526297078198710615806608074710981301435031046909327504983897033055159367481164860011795036728364596988069937926640254664949358788183170104732098813395917703970321217686717532300133971272127857655525186478399037083423536941907515344507351523063139770095620114650710856716331140429193048408457055975447199712641448842452768341470202701326704004133654173614310812364748953324093050793598447135944127062726828763525617803323991457446868138572515700358294371829616843783124707724026052277080506270957443455261562887052017394601922033361786845269105471259267570661695991235245309253711861549914572324374250793846028642891540611765112375427891097882780529530869494519965613295280404081412698105044162492434546171815784925463804646223192245534415661495337636556652963466175332707747145751981671689096275962082496888900068249369720143362301344000893339090177837806081292760569129908301474126631679181017765413371353837583770194679730977161936683920554996066992107407135987535571062497341346992099970123695390209868615400431850885359126126016692428618291422430208684327303824182262381297826398512519293161322045702157699236298358772865773195991314730463964440551485137420117544744574424415049013164882828284254929511765327061302544278800573853628974389640692720185895263263326954453855341230295575409570447343303282585473117387195983999515595863013152639802927652391347787236366556242140638183909530170938467567333890977946548491194160311157111891379623065440963724185590000704755823870671228410764624201536884716901277295413615667710785801944686298054770726333598241255983456813840086053471209694189017564008228988490411688924752217758311455918098190984493410162337187979649863539154850792814288617414153966156234702951938985757079743832320742306093095859786593204672912361496262069845934436106052909448244580777084307798796383192164540718001647749561398291793901560593066566393704705476986559770924272564900614001986207455697978008506629728415191505502082253466671314039892097425313366458514118079659348565321010287500090095810882798025884253287326818712828123134372124207063617137764767502566477922047616538169634258516183394338847223823196000755575416464970219481518460416473421878985474322918673803536890035047730105519458347205451784973518780619521012472333173049120901731353732316688962157720401500429940658265387790270649508853805179040377382398580797964704146990409051643012297851258792660518095379075365029024167250916746634588183918197508256693543039741925020847560570406951457545776317181016152227707673186370421609417996692000784655713736113694715260530734719679795236417005282011272643179506940835770684754794170403018185901138931737149480218053378447908238050031527948673017733749026937558476644639535476987873317530579760354265879326021047163859674810845431111115211456846951893662161328654050361348500047601773291671671081864485716482364960488864649442492887017044894662142398034144221355509075260255342304006229442530738825958236061779190187705185627033442675597436310852267912397128420937080633832594094647159096230982901426107832230965718710055029779620686423792118361608414649903159243524356052267619891305646578077010927882650814250618151009751518629155025935273124446647660341986922255522243612870872807903982518099784064862477189849386593417114601381987928528663759261418947810605434455209044621852798390439762213399935218494783048245657338932018068019366088441208643775405288497087700571681451877196663197734289506193413405568747865989887665366051717294499102014544772929428705567128532077291260611779353260594404907463916730696178413332930188163203552183485882379570488306982960651501709837571352004933175472626389213740927627156086223952628370319216808046820681865575391744493925881410422168730872578415863414563994196894450994396804837905198153396008471192601772468963299451331489988625232473149495282388179975115622847555305632341724712048777488764355388732840909353057883135224455485716938660378259047075533614722410926398873291117828607006849632768188256902436320960806101955828285451064343988445239139601121355105898350639166424630612016218971423062601020508210659548541562628266219236026956806497713502402692064586829768356870258605602542629428826477583550545505417644317134402590515958701060935152727458655443025885758941906133143099151797740294889272701489040704682349811931726866526517904272732091004258101671437150281084549112191146869696379930957128618705257555981095884315526615675830652940141976684782783771946616910673744059854322540971698271076730534230380734271737444753069187859859276141038274438707142520183805305629095591048467754163299429622769969947639286267417466239398563079945124466573867364230653746407050077221217452437776843433567040541301006050118135122310548414895176885098222414493609248824402833099874591395426902593627158203638488704134087192690646529459733021175541356520578094822205923011548767378076323584296133159620286329835131117936170768812446016772091170970461882708094289770847865700189951405949066141901187607669028153183077143347910444369858677294526996431533407661209383079828764473272574350429034624599645370479589606016814753855449438117407112692505155230311781538894577643117747449901344036861792761598083655912320884909421203922513782538374486730759873674603448225786737640742216441904952818592663462919689103565789606628125207909711584674390144013640554033427407360768086490074928284394549241336155256654443384700092141688806776351487364031541872140378932568895190120954699588536115271895176807031361245313402678828304400043917006943435980780757170625439016561364290892723890803855158286359681211638923762322074069103330490301483144449744774421903665391576250526606037350864180337804378105633633137848212792587109124824683109751909585132653041340876136684005744463333598164817419175503833855868431171013852176980258814655213687523203042437895442621523702017873711395414286370884694966651862528014568914177487573657905738946828489162281646076930871111914397938592489165748286624006199978182556600269742354483656550802575975536919478103638231167633595668280280614814048630471600509654729456556612080138517809724749600816372396967273234563827675300015028457932111640818897188604706486857815004516227711796181817341969420287818242829621767289083324004754326783489570233093833342153199471641398737300205337914472292190607197575202939109675017591708871177394644627309133506990921820599667404785182290330920200545251988941221072450480820246127824207088709835769786475569066058209749221386378657895421118933694438653618173465908354149646811737126090060479447811340044682909693214924900437435587426094028791812452032500919256651340428851778750008143610492571381459753083573003847334496405985283364951666860380064748521416963568006130747364115674050060136027279835340596837406670782579225762484436070231638796476376179105716856961331811274705753260747560918876614568184972678819265790254529799254487604819067293420891802318413635202690385581082362088432272991697405969348180548783063848868602235489304993096658661023878902924672137561342989440596073855422921280045532442503178528875976862785702061546056875592485627007702538573095203455489975201208496922596993169129097959014988640519469715826584804513610721619775901877129678938811310697074014968933213052826514741064381406045405858239818569476179438354449299782240760514540915895899607105102911514067255035871619129354465874907030819479881437965011794194127027304921608798568566241989962990106298725090426956569734392819387278252693534400346750602595366077611992517832255157928622110412188443886344980824545051891984053561910201747981053128207893537261264599076922030953175644332643619700697442856872935839265607250866604612780322512148167112034241836931929506246971761262667770265143570119368181535803853712598124858066143213803798175425811828210885700039884790544602616425908814219965197002235117721795820059976533233411557945798389258788944724585191810543185022646069057651148816187328441328004986511561138167731217668147316232471934612428076837343354743850874881368670857607313513858493757051011671418883263466905547562405875219606487105496384273910683871998739367812731274812332185338210656595516938290871306089699838431902928035715066627790560443798056664167647353346285730731949977920509348346193836380641284279369576437501357806669653062225614687717934967140586200972567006778690343848948835922638940285753405691319624184590488681624758270806374505336553876742377025128968572854780697308674251830819426766144688879428244445317024956241277360589443024531357892758734525949033635492733952504718986223553314448794684517619605962712243019561013159341675502809521622502157951411942735714061311275826908632173606648214251176776331093203291929202933976940284555515628995727549429841966930320429108662511087622742476902956620721956032813509089056590832407882960919356757441537079977801140926923432567676280060796906930489007518130025028660029619784826820275681393702956592795576812485747003196187103040610518113877388468739947329093819854321690980387572136328902322588308900171483986903043248221461335042135342457010250707292506391807097817064013057432716124947529882069571250040226631533688876603063116870468073113493111984923186277673176059176450249946899189313310071789180371891483374341346778398800280020886592537440176299147910257348786684227724731115575294468969166015310310115757995952351085694709308163440763419133446337956676158977696439505723232575958789234632506564723139343955842530156245915108608776588505174034980107411116144562802755780826778468091630134859505507513090184260482641184984425737659724526391802388202294481860698362537291685714849847214393130994723958290699168997521172452106280397249396105257204148238616041134289329766040265976751542886619773471545012886813852099947754261544154065205632519074976243312978798848838562600884972951850759673590183922802380385083967722875784943751075024244045873412009675638581113994184341501373762455327066374395473877241088898723695233986124533168004048113134780370118594703942824139626598075582664649093272422220632325083933912938511352577858901462008922131397154643304570290889678180822094260051465545755345588603751779765119399233232005780408565044772914644355081318985474495079147058775453698750277887148827294452311771395275412253459879904889058304077652068136657453675465598040162381569622378551040060153910201016678586548100461606919456991786860925104056456554454837865843168533620524130393954533898254557332689823224527521077886530396586960978340654989985130090494177098451300467222919353670880182451472442026081178627965105707646224599188631889564076091005227237648911234353736172801475577521147951296728912313473835632194270166567125223625739137189941526635239810717463290456585508212584849264676172106325578511569216198624929126224683081330050067024653552629714542500194202536234511112378974832954575918155828550594440640801041356985399973674975327429426551501625480270446516901414026968051990898809845508238673023763813414704837884250235893900955948460525205834178608466735674368650755895223096004057278350485113676423389341532511955999596224501013468287377932229998179570651712472043919202091136193671400176327230468586981596004145831547789987868405781342846732994314062591301805393477714242685757228076062608005164270408346854194150325380492706694378379997878805198398800059280464466534133648531394956124805696995711462408482682811284542576675863156525760145118796361128328033589901399585206074096776302095568983845439385341571559673171107497060250615744158571016594214324376220111529205140206025980664366110315248413383045011684836902464703998958371088485851023746930726825363206536930784313665476187893318304819974958899990771809233845617790646982042633692098264419206669720915329636211763757155569361389058896358644538321565470411996521094632937458419870852238962051344155625186229109820927166670707734336998334907670645704558994999245085153691850163889642242829279970984555800623717807970566473487812517503104196820734732968788269270694024407364269780864515423814030656268781089870549610078624430013164062543129251843755588542928486992220793201885308704626459978310182622330469339309998889205645516979606860923499832068643151714951247334405348939592590033742438979078601690890858023935790890912300196110491249082060449826092069908799409031211143592910336255050627473898945057608147531712985106752453536577103866808266630152828383694231217273294678953651483084223912736285382507030116621694505926010513987676625496582628751337437880513364783102000445672235103038229670572831010980422827727930275506424592392987080818965353908292148202363257505822198440717426614530714277289418884749820461845185536837610650732285903955461268069515124276380013300499689304603231882203599186509320771066453671242360248411090480633482688637522277488289864293143198649265595398215006870207864299483143716766839047310014776402529934623543759642160661969582521551497218657866468038222981081122676585506865024799918774736481004921514758120094693904081819679313307925503522974034928503302508009701011929449552177981661979101184317734905894689130831493673535141169762692194865382029662525362132581025719322731676874472618909894164879004905739338148432711106171578269266209089978704786998602344223182994753980076620447875491614885529799953211465757920205968382297472084841600146923104862630298617100285921136022308516463119542138096319357364518454069042014228970545075815412663104519615459965239779699292778963676287017094419705030809652842354127245524655110590202817480622292492512832049670542861139369354543773671941844780392802512079408969390162639071466911301594773362549021024849536447651335156843413406296195306119675263109297355387547007660092405794259467388414402389085771898303792874330634102881006949968474961792019947877800173222970628671435657537667496992543129751057066254512946787841397013329244323399321497507848459196439053955944038731811865216339182087891955947515432807064836546984311801672725393154273157222970786288898901352304403107913962449298306329747864486167121439771747198805493845628667901741981991630054655122335374369178781310699489958063620554962484424302656293624944392285307943770645764899447318876281042342778827969820911502230944600036271680226290819459769978208060209339727731486787192892950445714711231960170192224504064171643734985250120272845577962806673988543081473788803200919556303459646146011405693142995717583075544183475179989178426101975516842164920319391356489711362444899616733923759864893896204254097178774904026714683815576492496719730605250836664203662650133445141472091931775863128733394611224125034131391453227896292816926783726445055227327327810414506211722190791810502973183903425005883077933809376484837685767085297346895411051789525896845825849443496224161278774237930498094722596968873106690691042370873686842965669108557849145078479650780060131029056773397548177596476807027082299647866782118835715348968785079732066385511630135350954554617556033058239322625055771922191597926397861218227821327391006159076354329884956073979739380378764494494850326311260619199144289206561356363875584291854703695115527824027300182738865713592312514734619913220692079542042373372049607737017294325356284378780817558049187111881063799180218342222150489111739675969050333962645498659301526160313949031905990677471932089821071318237289511435303887529692249966943106416525070984782690389292335720858968613296755383413222629577745993541669013329133813103857560487564889458484956273793964370681851275940766951186081652896087649114152394214497956172109392399794629599159263284996940773738471564551213601695129471810327371794669724161315220766957507285191181741582188023119580310433114948512456413293822497272736542827085902647168015850384788934487767132208873430323731028853356322322657866027788618642476424607198094298086716587726794874990000775174644507475969087511234925648910037864093492895652835581734770192365434362443315378247033131230889078825897364007083356948726041462622393111756405967852928008324100647472125198211745615654362545397075214066426748628045252886460370368938070109179468426214301009206824074381260942465463720647687769707196445849953895677108222863881208435777911400070797139311576954057665926038167931403776683245446796550817218790901322624934740675512862339268329977143637918201048988770351006099981359035672461122779540657227909298702228194558394004024826079750933293799076428161941231692598353131591780963911655489634751589578030288622959754799232070406636031955969772990594597787225248900101118134350973987804112127435398774395449819169644470157152846965444795675899955120478465586743972459131045237143259575519518220148058904568549945161768472811332691058172172013499075420027876774420178182868938163407968421814510447709247199411539784257359864031517876126722256866569587456697695708483025130396152537910332530645161794804847998888284074763851264247736748672570776453865019007495701570956154087290699275353510437030670676041966370519699786385363662523357342757277757505620545703799576162335582652839722252851396795075500331446969010536925346298079745728347889616845782610188004235456889160931031495108693758286880950177687988538754928199573262179567588270898610683307421292490211018243075386076868950698208073650750168073465120626967295606724260706560271609549854039776545126789905769027061313907233243515902181335688958362357786955180941576685807562775758909891735194950931503137738066064794946000602619447509697710103642918720947109259237128982316941719554947691990866174662502344857243868779126567550623219335408049707709716933864447166460367253221503191226307834939024201490036683490441722264371449835128481870436339145434149962821404554783339282101621561268015366476216358130025211333806059764909939713074148281858219210057911855564594760159405816789252463459874729509490304340256989419463633085207313545024561640644839737935747190238000810099765133014820455489995699113853929317267978170823572950803284446653128779697944198386601527639709914390037275656228475681908415307813509919740027853889316653923954038038871114262069002172552161760753983415934978908062652083531528297250060948382321331072008365426225965304454385718542980804982839695423929174934254148278958991058852567171196216847254724273716546445685919991145524886590319775222550480002063793634726392469100777529524570423227354393844002926932827053595977147752358104290545475328078044932140200637615525488167005685714796768338921513815755796032114119481357882403821927279008186015937050927965933563012985255603980329351213636206161822694431751216406316295498294531507156832913619632682777049523166568104253945937740446612176122581519561517588359296380057123186558097470433977554889599805677194677264681238080070242436082049414125236428560445692342042212184718344894389109167738122071272516040647644566360092775289220131476181746755715168624976331522919555645991494780225186706943195349324676278597781093206218653150452053196086646333538839015663494509837320232475768773834038268312777270579088486712528727339370454212116032773041673572289359888696525339947794177678961675670667671023400508594409784559612925704401302951667830083649483631527102066492518350395577415106529776037198875123106974404398629808241995877652536434691469244616682741919235418161723273336006330444711645795769907517465149719948604005673769247008074185811942516003316009178659528553967719508299862689533470630183134174603913832282214392940148351565928993384814573512993495936680759124942794146668049258475360535093948442473931739545480434186444242003120445145402714525724630074625714174479802877789823733044997393006303063240207636621621867895270321337243436285857470416095054039925383626360387591050302785435134377853932832635766570449735807670927914892196981534154230498135439189480957502185355997845893224200160668219878290780022814850598254090446045665319906255927490288319430043708713647833829825901188573110701906984786779645240838782164010643076096296003208556786863849182713137144595378726017006300065819268131123807053172103924548982451949984202906512246411396908656723411512023198811633867841563766123427503326600576483166808010512720586344915578654973577203979609937130551764999707016343781201217375683595268827361231182444836715174318583092881980127831557761278481410512202587390845090061379352157428184317137234479075209216021756829945664954270468083257313220054875397045167167464262542009458912787846926041915024011929316625982347671608324514465209454588622618627784007589285268415197465840667104119819708377816284682326714636202826392692875343697866921299945947431926240627539317825985360401113973003826241618534120043620130929390981300694458543425396623564891082612543270823374323416037562769636701269444856834265559756643423190086833127958136828541803027931920718600045456989708627880805729627037979317749823144891259750506694405930218818743062853528664800693688583882268582135220212028239784916561268081489276646155605891859134070638724993198200296551408930944905108312701533648541171412704614480582364329532702809847687829065024945601022803572202001665787147450840948794905919981214785427491308019311163811473737301775439601301303558633155610657140329551630879801761916949331820941501974401637822402253887488126731967273386987187037540801527886694940589178562306411961253113491252027300142692610471849728562588307748873905505894309868249521163247548315135735954357608540759807286804226146517674513955096557457173031823628029204685873674699314364793415989207494827926924110693238303114493057948621265144290762875002060504462366065016973181273518515052808341306754763493010933096388527991663386890268082276397725100816111109668525039483688916522889337769206805521054298633738566219953677388871944446234665532372728521553033878003853430297785215657968542244380304663619217231301206578000684309304873594451002944016086841530632978058527411191146021942126893032317906905891515337175696679763885263102328289748917893369193182469157742740880938102962509958536423852374992807203950165554046125610091218834731492343498664814961644362456270308853185584387514820458547659973218833195758598559405326014574601579541411551988294360224616552790799468463804365773365511171201882177069159022590261947771084127358156567359156144504545991503960508212970050704862834753206708768451903837182714761171680182626264349074371756767986814899001413069637759889999806245202096626195951497714966071176419818322155715388762324854441883025027681860215838315090141889754902955719108599134532031658629562813623794411780005055864450847025864046280104507964678346296056669204079406031974189022786106267262616684439260255949319205429026032333045336363989665090308016658518333032324125701899350821027944541909751045996772217840247789931314624393796635655000310426016761820353628716963267006594378881882406582799152814436833616677904548189428460388814071631964973890477413679098060295404407327110544966240926017192998894660104806851010172613529658158862168594803529095021479278023713463601707389456039415389862731630993976196478408264455996516186520179805233387497360342058641141695280524301679166313900327818202446092906602930359328714671229287378017556844701888744674234054536878558593886335950153871428089485587065113578853133393545838523138186015785764349778668556329807926929439537250714431645683624580949067947318646836868283910611121236325809483135728090122575971995673316817639755092151997701937785836514760699673165517761669035839747648563357136353578766435581087199801476521606590724149556272282756918655200900744164983722987921865869662074446697088705963183352276227473735745778664477681400739994572437084836316200893243409954046730094597034870244572558013762643622218376947287760347348205525944264177646035088240918100827938050012086086349308761814025460927719915404471357864005662124602250256345142230522803849095296342205213573035309923480772410458100801203157651093284852440936574247182313130782972333160402450762797828416364762240054882577766803843583662974576604152736213907801288198478558552007150616350357760529341836257860058097043753977918210553544654377387268025270721093718931955621537880900912023238687324173891216256210553997733991847784326879483889007188690718268117840068528243848932869186014118822641928938259214837913593851992510708001919687107093813558284712422311001310967135460678725242160836652043808395248102484488228000049419388178174717963124329161176715281967017388763397422589845665066925062045746982939322033887657447060591668221536854446081113049082535110692224784834857093067044653510850744406935711031915934932790393895869573104074388046003210107176736882160468675098118934950820631260186975073372243689781730835070949244643450013702605503905721514881902227859309940289021400678744526790028497748914031868036176397687948506505381912161457939741872887275250978631046837947643233433654591013190116860781210205773889672660489452304424706861190655577675602789759977927482941122641668608201117301481888469370360188957031028054882204216757436530273605245374582896724967074997120763835030544563379254889276738109786100418563505677666540826044214104489942413627632482513086759969675628913460973077257261903002143388786534071309659140196438171456548200075819023181585329212374924214199105604193323443858519456450994621969756280384542390065675819064837285858378720452534101550607195694144030906810974863215105320632866728449459242632252431816164521995578873395173950167402317787009305886166412546047893569801131814032079360999489394082786960428783129148004517762490895707925906164924548855993398188438852530843332424598555830616226011617895969103700063657088206162881266427269617725121091048157454967309919868669148776577712952939318582091535523125495224810714886023617773035927359865007717936014519613235495828283682591316582106655769690392058825045875652874562247204832708490452839138018584804436947660575449660812239728889775238643576439396953222312004307880179296456975347611061020228801706675282680361078991613246530061106643015725137519022884261973544301173990103943895097051275559693508940427454333225820109010400285914536978720790220700740524815844678568081718069020827083591750232056161158255853585983724893760572561715810212356206303942529481110635145996977498608609656147290826132094390418873280911253507918880791320920402632699294207454763747116244096358037088431906299729706354848400784384636614196693047780380126293476458063304278928222706428933132886347524487513503910613733479318252546211567838609418566260699103820334520759200954066786299868799504365572636981614040619724232006321969590833107342992409388480191563461937635193693341513612165225640379023352894248942065167822999064755675466504800942832082614876604405727248221532106777566744562876115547076866301654671378326132416883412132212666031778124287094950148502528618150707495111289400935752732147250737831053338566356402094182393196767909836470676844499582716590069594566657718696621590574696461349667897389789025500385753978997354072219644049327456918935236033020287075662403153589756121236907530990077407308605701145306812413406715561275194239435762593167682935690034582031243869450582287469405499646042203421957574176013606387644500609842691535795872682078929183083204061176350251377083925256527093500554824001871812613311294524112700434534898715804213289663126100434274730918187079881787874213235509210653958641094022833098977476425863954507809362926033680177034393862494001216545880466154856334877376877049330361700583722413490419867432447622322456622822542219952689275727689556260755362570504643928521493691110022236535544719884744152344911800362161025330794024265942627658955009019376486164606308197176822084042127611685786543133093781945701455670933992710840212601837962910879988776605763223779927991983802299059692064260259913963613854430992652663983488845727265942635586680174169976741971666533579077062437487368594819361278113031080744156382313754660518109394290093737039061850498756153013910668639364215541434881049296071827927761056703549213417759502144388921073697054152212665987455820425001239678402708060533660840378301159286122774816395373289494370827362964161198303432698172467207872056481802943830805561627131214860686383071849377155335112878312255366770490141145919467772030375679470782960606616676040744628536777855459909702203575390993104561727498418323906891382157175330248578685954576911879260722176031301403705646825502874199390342734422580139936404366472613536342020562617709535454025070098770238762267950292415771626369854897225689884532681785721684506458549669533151110089510019156488151443156869113334784392402570697008323361236973627410055915096209726934375856604622785136839780603417578991055655962142018974957114477683931319562266652791044743814601494482541429542575402136549010266013053329120547219564999244490295055180385112936151710121365637909529004009326246139657363593658761713996710276452888441776158054690094280220548583998586619815605123090141922243108985816091471335596383364760152089279920769358378935435559081395953478792575079874800627295302165343168611510801247986766047085641258800411897712141456537721401973924206873033864279478363515415068316120569535402698977679453448571704935805287059935506169455564295289441578717639980378777893039429275236047460826708166773220311658102837000996089673202853679716039377693129564063730383171287374988464203395131642466781046892568184669707719779184516158172719126872020114178350067531700618634179915081891796786349228640457511859419539467325078381565655145452274785647142838191509407304843670340718982832418334313053665575227253387616747054471186896139927530514602454685880702882552729205152739094188213344621695280987063127381624262506464253843063148812226084749433882425576288139624012709533173524410317574974634162034717668564162381903013520199667878232084356710263697295355549193360803376283962917945955255198573013364902304447888699830042909728008395407977149872710254728319055559693903233096651172703376452437292269524888560234177505691886390009812374209839879064154935128991891888013290735494942670100399848660265565568541665371507200472724281825091846371394574235920375863553634597741864055069681807494462548466649546429772620820488735941808630695486662402572350800716935399653807607190372108990905358120383960146923545438320334408933767473821650135055198250340447138990323703198721580227528452442889475162409000167786144699667234399612286275882827996854473256698689565010066841168487000758137642670350257942234721403498224005477325918497045268633061173108750344960509413986133180798452224040943881224603768549261283965435948039435821613625772579670509336842805735078747408460724023462102787369540468137763167739567408594933590859748188248770670335822616743280587507605900403496982244539625641602583057951692551504566869737113462292065969258893596112338481186987901418704452900792869060020991077862652427774374187958434878291413607913634571377391799620765801637180896038601754710051177917747847135118265951039249698524937152339555492628898566240474772709253974707432651120362970563183690813680097601605098214525305597665947631964156122219025233352961415980809950957134903325211982127420948931629564894375053237983732350075083613649966286799386262791389412171781143055696268284215128008805363227637580218323236459274492175931203036714116781550123965885034092619414005072064446792141830427627473999009424986699752169555906763858916143205867272607872022169435801726429479686105479953006165071569777906545045295412605423079596208180355086031336477484928669854369228519657934787773436131090423979159915276239303677395868157228220751882710522727330137694769136284461880783277076480339874871348636935713596848631253362898853075633701865740817602355457899515645884125812992585967886966857479258151961460543888110612904843789834435499030021821844694345555369111340588662504020331554326097992933736884448396400957524836763637885787911513866562908042917524856156294694841601999434185051553171343863043657395140840755865950263161222830374365116168386901215347983196785826535058299259858491786372365709277780411502642718485387685747020832629282057229442638412909313959527882045167225392536213710371701070241831299881334001885734271113842413306777699210358106951328943016884751202935216479213684607443575020056840706138523415339916641839932412158201727282418302027980437235885764857043359404317931967544857829731657647497979302667793017214179447768087148344329253361752000657578613550084115398096562236689738782843085889595697815489895707606258264145264853648959752873114777158812660824181632853831825163421149762597122120348210741439941618466855297332096757873590555286495805747257865814569438344745183196544440425921970180122963604673515374208496555795409091128972985710757809558343910259520983717418162285793017190259113300428118687961512216077620266414505088090715612129234737693422928614525839506868154563074488836983263540534517476316533989096284262724516938546495077742132226926781354565290895416708654863833631990439073824210970916360084068505740311181071909016919610727277057774192110998796522242038551961957004038305588901701152461841382776415894744672000761272146334992122809504227044824800249674997078867175952260291224503613743607528139845544982576109339040253188328053733757787817291136844660608823639718902727121769018780994333941581527309518401581255362289458253953574202164173819605267518185788384400575525374984533648397837597387054927509098095913298601538526714364210067976777336825415082883782183017186224439941271313134330945349361735032801753892248255559647490830098894676556020983613119375893246822292427316125467043886547796217226532927357735247508843452908908358361398631163467591565066784910456263223383058606883024058795458729366028436636597520151125443111922105437438846030758847390112851240977717983953705265260503293768513019444544599739855169882104561539584976981574462263564042378695578741230986655893114406530182688652199891533762091182195370953413693806462348848999836641298299554327735094903250395083493003876540681788025861072970718423442740291904983492774536564351016707944259725847136273397164155991399379348436711222247288600606828195404739812477388303583509998011944825809612061201452757253396473012039153155685926940311108450074618126281663145240743886220172919214638444309271737331770506100435115219426186617962121729957831595482262191976855697702630034369973181124281053658211787685749822956055171120616586865353985811962556054932176340678862338315586410309369785352229759739859870360035404594508683858482590039084115418379060411622661318332700142977620054961760758994817448312004372768212744888991524700876037664227964789250957869945476084601130417786837126285253717543801691011136770844741784766492596152056853382544874201348814718836955844983314901357849168377256040419266910230176837858025722292472682008129391131747087222383798510260920196469992036720030844578575366835215009122718139059837549218612483183730333138693299298448779887770574654108918349328888512610176395315698128469215478139891502052683763599355610405073375250175297883307055057287946146223353095437289933962627508389424670291939155970143191388739567929850805472771243935630733877064620867559360592940033317738255170084810418254167979493475011878893459088345528792118179911038968427613626308755636574089432781356275442559378366520933542606444051223662800021332017218491474138880188965091674117129216217747994749309810179351348004125119204273819320936817895610638449413926267437808601609408058883367315951046515228017369847161892536479780216082604131317035472252037321606158863498414743916769563784473297391865807598384058536344357565312718619697642437330573793509442838318480015330810054956067971531137554745630152591823919489043113705453459242901010114439475403261323956382759835883767074227141187354528749131463681385756508781493151170490266578112711287583643931325917981633277243296366051800514786219412355819457720784928774778000337509741515818871791062310402806550040525451399276552083187448032503779027878531788545890005418872351518850405169614993889669739826892873680829697035824025397319872019899319666718428024488070188385162136167095703182642637660064512122636006432231442204404109596551381320152572710021086080153773143647193554593420928752837322786377218857102388122724191776157345947852855797166401835140481081841852810669959098684359296740956647981214503392102572563775147716035953260414438645424271553291698344450969558399199210382304181418606974626519247260582051329938467864471938819381474671978783642741534904271806304629983878804779575454319360491065166588585286097563079017846911199067450222801454736232836899389585352267596859365320788070019750994589437882413969328451911815689123858007152208661154345943769290548133996460943115619187600405190853242713451019677814397496474069741642110833282152927698632658145720893410333713666781563105765380810033930459119491781723188293582343494965497809330693282793703469215310762138568841031004777264551813063480289099401777238439767800178985547677494483273187581501154517805370194347964486877396385172899736898006787910050247986025134315660728007013138985492591224844320904751507613799432059003279250331446162462503001907726136619340542598025021065338606546358641871337349710080311016411236843001700910202600745234123822776289420349579687997985977698418866563261200154288029138343582893442064679590211296280995201565668599299538436365295971280055686542892311421065949043940351285636701644370295178421754759751751984815385731469998028762747680771781364364737389596688406481493763263449218001625391591202550676978738955789526217010481954711013001286869162334440877331456088249758640897728539028782847523866399917011266789774780115576674663601989985803719220478602513042265367502622997123087397493155910245720737604853117559125322988768050607733902178700638663441182589110795294219336560642206123641205626286657899897204944219475500435967063305617531429815131954456249906174448236752005683612559260517568717534975883320543073555219470785303334029093454129803097744936453525074651233103057236969418079667412210288241612055366340627936842999612623199726624369866686747287780992067126560509279540559227883110137324924153897160996341241293039505789883229487221707579753639540534712861750233212262758099996132759629422447861196711081845059655755992091502859101705138531175841647020694902880928490965839719911576317982342958342767875144814589346804230502100748759371863875368463331404224979429618907613821754752597171403190906765961101015679091068146959766240033888757553823327637036080513007318847010035354512583398759470183036857968943918508632710625548452539890735991503674597774815047870023947215950543317308261556789017315897273114138696576010245029054807502279621901559062163752120280447966866779608561809844436723302772811206316159630726744084287933253775488823774142412951379426515921210087935749492462033023250044369105397470809400193191227496956362800361752428925915480785062111409566884700284135300287184003626779631652073659038042014239955379868783790746631659602416684064478537551100881322747039644325740403660642906508339772966823862064933818868259116647013082841082121126628427361855539995094510253953122191613035709657214888272492649594288083191302211163985572989129628193718809785480202542640379705641650168238224868785011082772373114653749292582478729404672384748059542907409448198829943968965772921495780323833488867512099684741040861372336200148797708000408937457525055502385528115808467441899400515118989797406030827301873553496927565054248410018330882946243801644599838716481944096713647680381212500649958668549104104910423621197310582654669866747029154635921075240828412295087984156793133533990585701676695009488974315163509305416114275648733941791428889623681778389492158476226781688196594612258979854592455428220492111795641375088313722665072413095685354581136636177645555896397121527330182166835642757736163480571196232401711248668730859380371729427847402136640429466876226865023906635748317117536934501953581906487371814694954073910805493146448678640055637272999749226974789623090469478447267138043218065221667105911393278461135325202986550823078832731602523987743611590369102343187601487331124499502050196227684588722842547745929572256186257321201838295632342848145672117716371849562956535838869458379260834214377422044477074346495478470343457859972734194199036875377204748731303180233874116885262537881601612954607373226911268695760898723743473627226226453280373130850941314729785540643140181703041859727588458898010962247831375962239649242060495035290927472728861332935299097573795284511963943960006784170789269969649092305173103699387327722184129527888861883851120981886471747345200267123702873047322729329293854451347482967261842944198608580736776618926572916241909763967071574345222190336824907043557618102803706097064800636973628064366498000363508611713001488249254349117515975017036717663533058525303628275072525191579612121095386352924634373607315942512889017570359946283704825465960638989099796199838795351228400962901140486921328267576572240051700247719246249046822491252049271675816837924317751430014128147060232508731836156701729849574182384473852938032003638674029973741937135526402110167328559683382921085642210512592016619357381061260579420142370523683093689331633643722261331102841297276399296799743470087159157343597936211239791051063415298079881628404329070809255639345303536341635003057413725106313184660443807024586975963293244748059782196602929777659620454355768508458698652895312492070411673588100896271509610313345424794246506040045579134147612977593264019005316527305442351973720215764575499401188896943082033348466541529584237156978878067145846978746183985550545496893711136687801103957243784246291876438101779410970575922105044495366307595884054012606929804704967917610700461167706979694462372176220700990743625344759362810356025237775349974206358186076387288732497970953507729144279496733442162762329141439485346817435230657693425660490812368977052943243484630998184895706503990191012158381307061260503312118332726152083770262848544752462662095335869719161701934515075200553586575705494424788712096095030151441538323774185956536752819039452690149591702345793762301449635767128693720942208933228529633066443870712389326845131512215736984791463833553833084160752473891745719127832580502053246388856530919757965762453025060895513162433826094990848563978650882176805787274690839858624073589190768640175290408548579256061216917607203961479127490739243047863131476284758914623734169856331871870579883921816793458623247829214783014160208125018580277066257465434692946770539201283693198512976075465505131534870036865611844537103128533238699857263392675369574342253779310169282290489851522042862657826463388679106117331334270922435307548185937846122230912093968237900661151030652607152624132648614804362083554021051376538854551069719793652759327581088102724842679102547626601080488138557162702226431406265181637663469688330248616829553478215437782042384494579790962542999856593483400421543814184559147670911419479239998999533458572535851253992212940266648962238894803475245661560603303877447053062961554729914034160108333512260632320829375645982118109999788113557981392887555063500604803756991152035649384563525885995784518669519408813470728112073346183664496519401906895393811633874525121523045625070872123013577350278928815562221601991974420126064197099982826774936812600721978448468204840811541722176639523604543046574598697475654772161121736403586111964739985595024886030722996542546323833640602357880576846397626708572598247920431836225203123162724744234877088428918304491319639306375299928996062547525816881833205791318542053943629693890447236200719836889687762152385809761297343182300012929095535444776069859927235670126748330317556714128532124235613497533622764393323569941211305707991551368254730180208613022664065802807771656073490467333072273567552731354866459410789903986282473854253433979702517909480920701107577736189624783366631941933533324921158342644367004989459340836069950571789482979663845083050475660064894998574480637788917202938602841314978928008298725253341771302402094556178044636959065532463740325706057209547369218388092089802280009667130511807024359842457608037003462003170890418709342109473475100589093838485632353666577293167735894248224373794289420339714816495651615297860324089368177237642971440441026603506651156851183772933481811647881053690895229424150817294970497241820818559022796789942737428157333982896858609646621426892945027227512294347858898438828745738227079628676120871792515034724292306613933522002224852915775150561096430421921708335110491675956967873956665405831498149906902387277525435727967337267619422362744623984170908769602462988238646567327497834421157318537943718122592022910543895295033917871466359809298501296398490410490701321787939212018798629033374500942981219056287494165634854740110404809674166086873158568054739399486817130964424555905983096247426378507915565588212045942650151886175597545605336895085786774061785913387855371935939867871308527522437196798888284354218127607893157238640025174453566708789182301285540667482753647399476273886060766575652971940149724025183228519295271151145282967969540535126936955789451846470041753338058099401373500768148438089819272724164076208523942455322509862245694442904804635649298400274505554657850723743730847952472215465692495798962285420880498377274768382116362990143399280244162170652467459147942631866792124605413747846820299611987664201461710286797583079697791649061379206781371690888846030176938648780393267928148274014171352778479848858371710816171117392124333499902549649299854535462595041273321644175739542856182084797934034357526535065646504952457274562237457861325865533471531104657608251177488174841675254599993227828108958660124012849991925432586188157105829298286430837810740986013315138114098770497925374704300867593368506470931906206353317574855427288526761334497972955477765732854285720541227754683691960929114491055785949270888911676622909944919651675771793407898362601034145818539952811360574006429083778003280688601196569322802074973879180225824456653126215473230203872751105775502074630722011299794810003319162224552301335724327407601930293214761824848171653609697383794300056049283059833416628452537540701884573286168229929131994185926993116557583173257143641054236997510708161609142183191129964385424412154994200213767271612700715530966635761365735272260147266542512125569771772843542431261338380456802192816232276470970863909245398798585192772317957160083127778577835090641586226105066541394003990903113437992340138683085666968726238618983531931383517331705964607383734886248667213592758758634909359077912980829733880463266157021068179213309335749948441921425362126659822654799292326625393092335041276161712570830040220672271091807081985966958266983942698167546618589560501270878046885417184976426150194324152413938687705811423766424450478836647400274720621184834177262891219006243122601028239716223235358645587430889019353490612807006273410416787498214117061183607209050014385772541335590894326821675838522414986236057589554368081328164166613717560789138877046444792114888792442278900483441230169802315221445778435824425083144270261814205975293304668001360602773400186537180849511514460899275448767066113798708781524297730787841443735026143342377465243536912995938992621505475989068058873284123473363207114951874548169447000857720803555033584126228381839998269749891587945427863620280247377727282961530770225221830996725006565656876889482737705084229008603077224030453785581328048053405435149735787612398370788307783477877288238455927519173556746325569004818956664514446362647637769245729857284492082151939924784888236843101303848793971016761015350413743959634344107660602579801006156998852618318308623771880184819613912474512590724898724769163716713324436199634668645730080978760435763201022700234608688547759196826366637960997264790236473964587398119075193563693745944084262226515119975490137961794584790490219598408953300721238696456023879601708296254583098058671391567535989573570088077517672900443190910325962312071949345551021476916614749067220890629522935049478693307001017873784181491401111618059153759278199392744086224997839520154893119507700751043743147344429125774723930092295829766401819974363966184953943659682594051397876365084591652915062741496264193662089856255963041796445155597006971969675085476458396108853852986056626760825860333305035423927247086265423088729961269225857947732713863477069994669077305229017225161613519120609217681397523506496947935504643012087877854273988912747719495404185241488131691804884917286914351862115605514295844706871736953648681002532540943748885923959853708565387685870075200354266562229897995560100643252986604731553125947451252643297421775465829854292262265947815667774395092692698939660238977634467041583004322776124427731946933098640306917238187217818631668614764774549397550217207670468644309888752110078994189260048758413845806110554032465786490675921403345043709440559501187502998053653577408952375153833974029493593653628798904733943337623747205041115518402104155379023754134787090418814915161250342863850722083656605163783567127868788738473709378928061581723858737689064740330179335570909142904459273309669360976489957867583945344551361327593329438950793267635383889121542397967156383891481008848042439979957000403059020536008772119981627433654100334415456327964111830899949515806795861751142908860517616271509212026211397508031835327645027422704298761654236712327653622889104052532605518839983612551404463721622829386200087029762842502580599568871094772698801916826472659774340690288846508102090067483429198493779900259251684638060420420634454039901126924584359320704019079337287760173493604685833346126707304877668968632217837453378806670369487577529411292443288037095600963169225736438787440058686044465920602565894158154199952506002469948775106023306314733864637543406346243381918284938908912945038373902499574961830242930073215515283759865401225354621835684727461144246852615759758317428354321428016744431268529614129580174391159692647901833152606129622873817773945147744200185463894541782089662097563979775945765363613191386109831928927859447006663885890045934248008786113216562517592360666933287066558622228326897481315050156857400438410805478618054967509079575172905840370769376768772474683586795266072744628720306299904003958373748227151504282680422067669443109373984711851348121695169262012252059011684636664646765919396866215803762160719683928636799284531629224416368668933424664885702054358684058086899718256567006465419721460834263980707594581194598766705665014166866921660579323088744328427132887016654174328709476883985830706137259784874912866145521166868434445752783090932091654094236010169999050730312045371042538053692821261092628853730712380626553111035067189672247216023708045997246505652792697766276995343182318607849637531195991263133236093761100446940360164198651353157720973983419690022567241958876812048103061298691462552333222109822835071510121920045181852277075245318436788021757274347487946852914944419860923685514988987379812620823004254351332453390767554964643184724079386476310425770805942365659735510254575546662031074563680084112312189649815570633703835549200315960434722868931707604722913693376437718601389937092434765335342291840229521292309995417719395159090463535337209114639295732640436631585902257226052780529018354797712001098329783250765555913660805990811461126195413300937513474081877575656257911106446201794511710745716006582378301830256658000841849182412138244050761984287610985514713738011987006345893304309935628026077740698274600716782057776351074940400572303036779249417333158113424595466222027416719480161452059640239399186608249514396099081946476575340300235573973021153490783356499584161603556895324854037776083827784218794982878393331735247415023045994616415509261468389287648562472832495738688288623497518412344517785171044547770145146345476374312351957544287333927804698655343214060116640288712082262801909235347796951649809235615588808735180944186711140536025979801576245986274887143174772531848512061054893696028308301807193649801051407832052003181099539241062428526339380978805930344102602910943025990990718790242351942722283015716183953854076657610211866216545172114726619325288654283337017715208991706519850140266384900598568056095322298980463180320761541094169738239655632909129606069732401846026754747454189363654296381934014216297481201121416443805109838882213492702766498978991982672146920227972662936575324853790500073964673787617436115747497758420193127305773977604650955801730720687801200835403978087885675634257930981477191537460724891259168053724403329504536394873289983776456415864592884809501116964400620323467610703824104298043599740589726325664220479324666347220127071383729571209046219751854640934632061054867072246048750952569767299180980739124344885017081666894783557400942734511573456772246748101388860488205113635571387587327188073510625678661129981102533003570330195323573165414250288950992717722985271187120326618293685279439364323377038969341016088989054881943813630818716090793780156078439967813762236600829447828648770522545267077106076640309671511120649032329921044840223726493439854333966465051948525997574363826179244583381582991476184553110951217376574329007252958212257108081263435122613399531946073605440631322915170219719390363172644875697359148297633069010794856557164020349210410706790484013824301180880757854476870279674420649817927452182401359621267030275230385036525084308332710363401651221034774476785882481925959610391119876259052803252019718093504634594151439308196314482945519542690641296097045710287736422579216587300895415985615086596959729053444810687522297067735912645332209185263555792006004352708403377225407346626145639569229841476677688497269021938352028012680880818894158736255431598914578762619463092346989751043768700805447147719107463845590396257391034851524304034978602749869149267269369469874594685689033190569289447962331281242427336952474348906421245228393736520913949276619608714564177020226662981002390468895483257998337989103711520921230697813759228865797738271733553678428010282771969057428111846308328606856242999749857282265488297247049776305189844688387638229312537913921905555099113165582867066292982514292531248359558225832599441276401120522912382488537995547461828219043199122189475844013290325959254948149168766252205769643623464537614975839599334269422961714370470827643735145135442783734890794131481861388905092770134868700395806168485911665738122710506406814931514731371481694583946625930252120053345326962699139918602852726678784727173954342486305580068205208259271760121451692259080167965678594971995129899647244832567919310902983741809850834844995474001929810278037438535333459958884085132913269921185946556796307728268671380807732798077455963455273541836532556122249828534148775308930698695982279032921037817679447148048538868791280199469091293205965396830869894160590728371450012847066623585532792347375171441959710987206019850706581925810776857175395599730967562473643473783989258818379246112224961962718163243498030792201738936888944912803129744600296554011747487905828337505956973764622761788934047270431416537180498825711361895585013113575103164249185676051174737288307030463449928874878847717037340358997698274943330118377297009026250257627177787577139124646383181382245850008908820147004158200858497454472518910864006431598269924300381022724383532580483180643256384871868689175962911414828214848883122868027261622422234456181522759871449682118858763570347786652533848597126837810291700332324323674365395315863228030703257171180807043778804192936152019489762646384003473479909739697202342340588245849548109726039604709140370587217418504450831755877389786225074880581056159136561132117844147806505298299888823925520501896221157554684119541816215648212365509318736903570533369470287855000864984227374245910865139122198037992344163272975147969629506217881578528720830920164615481708352295412652723763015710503813183465865395313302038975184106871031019383041580395355209081935815817158035711156840325548078810939490046387909493767836474945903698360875324611256394816784624270566763146129027399679199555014486023722219225965026024543782829740915324917142323052455671626468772048785309949433000824975436842244376661873508200999287153049911049245293504582754709693697604611468656374749157712195636574506300749715996204130411434953017265087817608196822849931847049709925391200843415284695473284238049504978612746938586437842980202493215223823886208773620983632336306522106362581719748650838381699411266690976238078109329882287633230646890030939711033136649305260149041935466300232871545913431358253873799676935416867144754588201645479139652178974010599404785874289282960455508524934670889803194652945587686332473987691137149304224505602562311014819712750548092804858479640405629941582345422011680561730311349025106298340298812216958015005675003265065655595917941039789279309635362649659161148035434178745744225224780227168339565324548138438453943533251683030316251620213805359115460102272508111748763907317670054473649223310355522922118636078038914080605650097150009004841055344927762060011044024168309980763049097403874530236595404660796491634155534174489620497128979747113871843659155194798134344800332489880393162699585028614935823504020492449367101435156873973173190052691430139853262135378530162395128150418502398894122896172187105088261399695289183692272516961061576511365331897316550008863473069660551344234127029270943994492763172627415803091569451118092229020714306401168616912104197011689788575913079550773508990088139736155330884963470087985159798684892311412028427408571113163539484421248659214899059759749355897899250397397954089792503595411714616145970222663729179997319825204821582940239350280990405122683437934019844630622256622447608900171140254751616914662721380381725926401787851579418594904652999492550604408096675648762064177257354838088176441582444956447507169886270096065851241462005476164925073833902089667458497642795757352285488332703379414846031727787179173566407083701618862535576046112670148424143320757889842254678682842539516886818318301065302390293913579654202627088786600466960848453549518491448397494894666896674990042932166012088445281403490082823114578986455341550569152917546343308494032687445958049003138600017950940891266529500554564883426076848294209899390448109768840632793284091608193669488718890988498973337613443957950174506290928875550749001949884693226277936282305307092374592758686008368589611221833344657611865470876830306331287332488343404319262058224529767382343587792572159706990541523213073277039286113244536838803068790538008379425644979068662677457601160474364428897278442644288494182814588166803772964767851708594746418021412826758905259037756208551493373033240794557529504780639132731868493959061144933804034131931467702059562730483842052136878345327946163455974666732744923393638543059847914759854190894498425996965594960327405482190964108197096762008939427913953400578573057463146751095305753961788905590120564733802683576987522491344287340773416245600400005043022594371517070458492639375410946015386251707345415599674913603616448199044823426043369496440768762876867034774004634168282001557570464371879237273890230241267179690375369338025589378954859251231727725580721767770225280774956313538295834487026360626596138478659592110139067775753157900454923556765543284125056378717158747637620564443893434414253509802898042782856992038435204433935285936019821131613806566351362204114805042020744075801039934070406507041436744199164972361856407173455415752649134701937799438757173942110819839794951609359393119239210358610377268817378753994235919988452250979631722979906225147716207017618600972039741113536335029849690534119012184128971813282532753192295472815159710425120406480333044604071355692099005920369190247962668695574914847119925243653105401853286822598727855908272525109650998361148888891193431753807409495032702999310131861092669814986422857695090234851947983450875646750603195411127670062357681432768851127782608903109854376566240025308327747307329291230294757773631277179614856328656084241568185826597649569520497424118778521349940841269254510360537012317792229057513971187301479137094426936684610472006881288449466568572681203897044059360247480210642674003326469734514408247369390609120983048235663222030563942821335172148572955225015995921444077497060995823838417968481063396163170797184158559260901822227226253576756321064960514722242898808310929004870082169431131193153611476380295148198288400198250078048428147114256171188244019970544057799450801182722753013160926412506114784573903211969444816716097892912457096179207162262395780585867916675349180194955398085623353077618711504674657819818988999164331163298339747779093096309904956102983880765740315841208702760071915158885660332912953278801839859586817894565839843062698658223427988621113222708663937254301525889097302668035340860478723795321399448662125059266500238643213935611732563777011363691180865234692007510109723545631024963794091083804597375303602437309146688567285687095365057682856097789718141641687776360582273561503804285467437516028876511926468686997232493469404277890873412655021746515282597688325853050989972704456988152097477682001032721469800108283515512635242596119747883384509476451895684311187259481231914278653628204477774929272269697101737393368459759425256769678511243851242745483346277940020763665241726858411299135798841312244835102701723500866383166974226061637325199140207599689120063815878372971972977308637355331105229083806860344835800704623174534773587983112867774197867601252639184700335704077490467347554840322198335274685125601873684023783865163526859454210252184476594318513010953332318796586277373241306156912121765274108941918719448622909402465039000221481967161905588992807470673428941629384853177857729237629697624645483849632585511980958061317309680873431641293012169951281325771095298568351108568193844474916143120462086178816107857144930097424959692965507878325682199366515868366768762147691776372498221961250012721647865225078634649732130085777405579989329827727358513469670801279863440524746711075409942541541670638835744969534869749842128924972875374755923686425980498907587256480595186864483765143572737784720300097497297172814208177402951964463721671705181832979880637819127352666209362754177355188240338606552308796274409244239586031337490112948292669188180672044263179012524731727265976173332224901448057305691567767191632083983792019699861772675812898406089526268087734310919839598004715831453487999271678259016815034962564148911463290653643374819960476593986017256916157651953393749325601113445616691443179435408219800823586831316927921721575288989083581157244143424259337489740763410436132861843172251935625125454232311543031795959078989271309856631809671734060348757816973027025975545469515777224386269547305927093853614175085819060840440691209314523701295815305302293814277198997628919807089309485688950653541432470090862384641734684119188532509441601951529584214496598440239626090435067380289129966574451781619287729242160804594841530195356935547205694035751279971236882837412235495993718990462202517250437275393754344528873700712846492971623503187875508930800429364900816513003007560902847056413603430943079745351544055287990965232674927533130041478046977755902764769662727086286100806843557646537364548193696980066797504775441042384729579214959407802571498222296681097550528271105584372130144591024385313797646542028608388756582484371856289428943098502331103301707576736889438228592757297975315186435028665914182101256329732683072856131535178429311987815026435063062287291961249503246577018018160356641010747991896308049643290596295538274166464182651828520867342385120225015803809045383440597847207406513987315668288412325763053611693954887259809713386365698390669360346698823810782288836027575964574889963846875166440166583198368062121768363757993971956463194353109052564138468904939282518043478385581315048197576708595992091424328860844079933660304408008658129809193746855925678167228689267619123062470645904628199627781874590036694021768417755683118324648575178482168206108763210639758176882794467718011872892160289367678768163025598002285485163390907486324102357409402224454943086540971215967099813380846072114699562768633539118618238514535138055350395160730596119591993490779708939725448985037567839044288439570200380761444581518325939208094932766893741524591875831217134325834456858079346316484657248800514531607738330246002317334308688125483654995142019119577001476450694839788494767012166655289575790843743436255435820583841761704494881093629808524005559503769448963013006349419079027717878001113324677591109191891269761501976918534266254295150562085334619419628162359867698991833797007462582007698491171533843399170658402597097748492494778986321730831761531451144616203317003401378160562397734352531554253353323684640358904189725423857619540534191389653068605498088271168192611288646120889659540514581723476587036412626156510808566383287197753713537415379446261773230672793200575014159092129701183125714592592442162981698892100417470058309345342721932476139728259909865529554260810694987287605022681691286482694917511187125532581954740277407844768564779236211765380283525729306385207160781908044648481735035418646462757913817818799245061115540236725735280340016387808285180416501516981578302874425988120038217824883900302741661157414942460457000452115084677540173405433541092460806453539456680956906858413747615762695010303415628624607059580727566138953649013525378958355412249231770731203605863835627231629543848883762154854358728478388251367915633789726230179029998841716137275381637781474661099571555902341151243762088820540121924519880330727953442398909774473219836078166379918888600630115243969126589305615325951911912740401046030260759692066172563510344769942567684271799664262997556383029999527888765189120168160898586486431071356656967146149232864803574779183795833936649006606178254129382310000113367236169657221974764048980014785412083117486851157184623400011259963813062026406913180238054543193374365952205376552748182975493740264807791292071261315546168047361932760684476265426596619644701589500285374401476864687595868920693464626219801280605390035918353411866341110038341904679808970453383004060823835393139602102297979702742626954541621794156446949684067836801768748689858880865661110781638903733094546804718242662408339134595018630639975206424863716870641175926674828365599974774896874548550208758405223914400921553154887848348217606673703459405362500358550917042010217994880056043554815189033587211150242958345521553355414277109872334508595819377559222215787615217167840358488196621210801686743027633794909229558435582331127272166136583161843537243411709000058028083984352912959165079259361191375190147164454536495783365245972607323614138730988926772679976281455773889454800954706103402609800587249709974453233165068083145737647155167728491887343979476504026526215240145374758928623699108507626141481243815256155895640122322154526005745713780148697557860986064419539227384762596194223816941641812428249773998767302341880230655820881908652721183460539526752314484200297895480145262146756629564335672436728932527933674341895040757993691071117517822895298577293031770451949322875480239561779811753552827015969437789011721710432877614634707330290267913018671582730558321064579050312951377642365714157088141999490321675829417108596730367608834685216833675702134726821728738799843314828673021518025043821376721856282177141238019187461654351377830556345738999438705457452069105257907840584318655487044599362752995575763801048917851557143311361352364231995017629063627450241690164123877189581337041143355666988517143468798760184043585324822704573267950342659602361121671742860587350341738713834289855702309800373115025238611581765448946981678006485042323792642136256764981045679616242687489772869139412865769523929532857271120441294137006259059113736432506261525885737348196218662434706982025412583726774929644270032103554073436535977609995605303264355630578495466402584921075497788597093555061326327731400008239885814744195758853111795832482973987562376278501260465287245428411415346918639141684420007117054717778201035143310896501757226598637183244850815331539626645355102014444872413952480838807591558564533601029352174297785541449998931537124522035113436189703673456635594777098204174956102413948423690564531384862737522959973862761306688177401703975847453881747306258309005332347137647174570261178197010883637228356969759243560735854625196487215450083589528303013134015753213173789874227462931125263733785926811003565220837666723498316165699759474937619805441885412195029218468043921083924568908068181808680569433458651570524774115455131055697865835075737882507395259243644972314602643966697489487436062833108562704041237252462015686971978009350404046429269172262114126141326753651597197083893661808910737357335474824402068498656729901314363587955860947380852097467659069232104809656604879607944969032203101640503938900707372540073904141854726577677764919482476250777113122838769035972207130273656884134289917721718180167637476089137843242172849703728474655450075957092075771721980550968592401651761884339363860862431753209329233112237765368102484735042086427331073089142375207238082991969891877235757402888368190835620455024683124203984402235301255577179636619862308371548119802561407790874028301739197778001849657973237676272959929633775446059211106275192125342145259318780736893833060800078322467265045882172252802668124309270171731770317223329925150918243214402806428248192042797464421239648962562086358847064373653581639659744377333242873212103531060336763341101724686765435571712090843265657221816416522916407517221003216985192236636497472130072418975532324691513531421868399552486424735183088740665379138493142993100769373116307589270560080664405920036098283529216696295986895122256172881804001058145425242179091751775204545827053529041534463477854236880145311890555880846611504236500812068463931960133785960870140369270685910545225971114532347252925432418892170584083605442389001126997937213665027187352563729552857149607204738779219881622149015044529846792837824500823281688772245902270020925722574213094033426222608632907383087407447296074230619156206223765435881702084917551488587004312835511470932272457733958998858697202699888990554094294309947737215031728205641491282774191558892916179635987356108025742631043076269231304948067348674401655263953118119495272123579875229778893102480671355209379480691498875104403940976313327760598904926399414136058349180543731705258409491795652691956103769474813721947606871346022732421336277203957478580551795421038655773449495225245088174868550571419272381788955106340032831528921981026640053797375587878700653568159383098177678520096086029861804028554218244606964614833206878600350689713804841868981913374735876912932508135299226128831086680592253184404818737670248456530845878813217729619098624989612200642582656932945687745347832917637806704136435253245653420700289780260666569701903504626180237044014337076090369099965038598609915759655155139462396430323909102003062841954979588914612572589854133053210773883075065964147990218100144821697180259720568761681740456820246401393201335641360483728030567419560124102535215753524779619959015783396206245680591025630098990382726863139293665336496133157675337505731506119214062698638994067925605694104311112147118389813750268897240218841161501863957135712137475213624582371694264272048577014475774961915382970787413941968460079282619495050098068095391139575632444310684068082386621835361211437090833400900936578083822075139384279662485764332466555319241665701125006748842090498140887304690031276050267226343366754521572640595775699630953325482482196874188992444552980722684787970087283380512247548566232616594146852586106027715342393003790443764787109096728205033226155411478990197513321862250156905586010193744883675963101966127533262995558089070621708223778257660224859687792930505041653833450496397088038005835297611520413310032255712956798349074810794808134223915206534042321785664666947565593607669915232776863603505075238948403000531905477039023095503125827107914883384036357209276214276660483461753394145832701679808134613395877225276695707397882621672760225216499553803312119309156396971359206657383819222622800369006955241656802892582632803750344528530191528923070361080099224934698754617466580924912791942914316880475891542548823926630802234061167066939691472780419263123558747080224018447961278359939162571885829183641449394951059927347093275949122471463099895758625305127837010603623860545814360428378508329091245699529141887744115792964049889894512621661466960520009942028749887261394256570066084366192677892639778747390470038953971070455971142664522478776993852183672501809708115644676040373086115655711768249903447595744919380742647386635785551161570440340302131483488822638290219397601204797530746192165299666869672005806542652260735328989971339361019846104258136142251148065646688883575630831991363556600234669069608209782377147553434653588338744393312294097457558860866655006743011187312379009469209942137522978781641291135637585376548360745419167383396167403644969947857217277066691857440993494301307837938820623559867961631474167037569099201980706267884561148629176527620386101556614177566338630847839676091281963264130258860248859222869243121920276638983249242338025435847364351298961852467072542206631777170576554871885021511326519716883697049892351582210195638873505257383129468918314821392743144774162999552566947999377141072583508770683016623536213933503704150974895544071011976336161596802896815761159635442859316392368644433495118400553896666507201452284691626841116178595345535400237449337731353716393356582609110984665346050127336808746697070637550508843782352821174277785221869486927711917723340803623345977398832367156074732716859204070727735455613905628142821138627443500013068347912910906127179076358914001737836685938760594366265285847530751594539907777766780439338753056887126596675660827056797460240012291198794493240572463316757246233967808272612733239508900507149741881616429143334967409707973255071913189916112975754336326703559876410504638884099048113824453670294079230061602394234061080472462631564579834475174026338364820977709653113799931112009096058306051051481997510683915953492311742690181810831790289530837824524009504041877883779844158944681262586403298688631383791171397421996408318351064219150449281416890836156544682394306710990205137276423334748211090166959000027434477260722943396356096196584235335794428486307703815757047561354070116145056910130274988886516373530460526189990478287536781300961867289744436353457911960849350343644256010392070748018706356868246402141659615637954102814920525546908382887247752312660809129606026975493943378724129492571290263027613083039936736447131010529274819879966965191365729234161989784962371917444360766229502427574587969110755065514082717846881484699194591118528352378513408910198715027501734313969907907273708427664922053930166470143903853373534363205531210080482254974219401018993233269428168326227789685046982315680124511106987985564435851859826640279455788163518345590295363601824038884629688966867093442766825981624455949443989808769083184290605145026420795968990510056322320764370046135971536154642450497050554061175575253100626684140503618540551287019324991110466108359879854942487549358986048418334899881036284917575487840643444508611771343056590272448670609072482856286562367877865787547357344187390612808239054247392624927855026743914667245341312449938318678910446662026608447186450131651140534085187547451315209765456194899919378392701311198734024559993529170031031554245437153865164316842448349873806809046636941666797274257022834937087528300898752193912498001174671158436840876075235178322800070870036740338356600714287317637489199603443547695807763008049458301999039045255437897736041500010948585829976880417160407516258598574713907137757085805621081406989283795381677630722406746115057891555752846200962702865589007815711161395025361065115819813539059078734533365036793177384566618670824369143920950601013525987739416116453957599852927446497903504909672883874973097505866124836319140984569881533958326867634373890981940410634559892565206548322261693975922672134912656754780358826519836917792350324550274733741666707874741958370318796369850103266238177523474675438170520396329295623554999745352553362983790473618257998335057803945430893753998712410710894468927255340174591573780271331948988915563599505343079964754992758508210968912199876753741495654818228917635582615974314109079222537648466394029981005501938120630814372886183123469738327495625513926861472075089113780752070107293525780093531069076871268757449733027290533178848435923510481122856309921285624410184933719320516261853773378734369033455976311733870276088789236331286764219776475691817662530165749137645056711104305053127441186538507987773606252171111884706319394671378524271696505384157667417364897885151315289357619922796524401509587743768752111752459834479531006850921104797186800895939037658965510239093332091426671495820945317530798487594599088980723655615500415564541511815950801368010212703613437140612429276740260931837767910664090421653371658982715262766527710521345209715516230463539547444260940533624399680365718847148199643727292450467893759010847249555912530078114448195835602346140341018949999022850446062807957302651860678462135300771735431306428117935103697189805432134485626106011171673362896602366017760309231303703947081745116881189046196898898885083859707716765641311424303354376372446972749458256146767624282210488973332509509349874086835000320970694581998961336328229366703907039143414936881870973389185297351373593356510653152807789145361633596798398641624131697428760542492732472918018401146943222750730763990279125330744840452228907637379351509284443338028335920337652347747522640330812251436179387795394237049362552976116355112959590220468398321054587058561438968654261293347077297884019597777722276706322037015472823477414749133986188531976729417899611532226603163440152309525250526197982270417365293255004112884456090634350848114357724912476212669324167759605989011576264126651659861414517789626476317824858378297333860978306103155108010258619598502741660975571940177474657806256715242569045446520836940892528471732649788385575172359795238581028979136034215248908457305413662993238738700508642748836696448305366380091855911061701192287214700187699372816196689098606202656926736200821619313657727729112495622091574959344420547979538736930375414961046908178641290912520399680310253877088163993313250608524087991030830785343921698712074589609268453439536428844923940542428617527665199626858941414754435121232281201081925227667204115172332487916898889166655692978674805022035952196167547694636267804143079680984204099055728355972055253089599483096647952150653688002507660804553110450445208606016771562385997254992917654476533817649580184849116076772004178573210706577086107465463389255474055192372819311900751435285036626762532745715692831352289338294516187859404975312480157365214807241548267964995300534475284329492644233140036081882334610752442628500858946156120586558631654102680643608645960336563180325558264359889015718395735728767758505363948745435133202866675174233769100664854254263985940725942847356172833465103919939550322528236482917865857261680522304447639949358582890481167181273194523299916437362550546060560882224053852905439609895064516378529057486392553661860859140905386968173104548688602702803211897779985675074599052914683540999275643571998758406957190260948374263540340734921454043727331943629151727360290736966634849594080573751429327949928799103514885177032428994873435081681412492294616144509006535387821389223629204764748928295348461285509480683200851252955866610603054962624493677501328626253919885071520880590208006877988900778627953562456832145067052314394856968554120064988046806923745873915031362242195460160811260759179597752770929287096227366167584468686640662369732003593201428816447116277839141002778482285414748326612665207669489541991791987896624489614807344985763959975334474743301320089160819010881294886848459548324413960511340453841038288351051661590202675073585841831142601083731024581954853066143518064836798765341561988843984558493667113144117752863352702856588559439399048880911193148158838774572940943958920637134352604595723423166527710561068484109477667041123259150160554107297238694346276169873070003403367933130674067800348691500678246094874152265273255900688534990962244969261542666858816982112883292567454028397301418892435900689052449759382578267921160291445486853237642466210732152324659894761654486791815515849496275276596461696469970634895074222702062089177494921683073542390344029917487463137472435608005906850968478761038034451982866328332553407300574302550655892336549032731611416163213908241052136429206196698333995794037022210160402583869626705452500993560836298392076572971321443827551830474681976137354210428231477604438025481890997484857503113250777381803622909324646295080832117677963861711845156967419104719379575001583042567521124273494452234528053352912900638857654727803904355936705554080836735576197704457919057206270034326421256216858228070593911352738698367716315830873935018524728010391437352584264243633817508675217547591811112139110902363254563726384160446448704050165784889822528368544863928381158060528746430320293257845576716425368991280332596399894996542409630614667949557509741522359941704789675766349776264794914527357601971183298255694863908641879626804257087837741593189183584129174852977305861107249808885024790588451415725104309587896652209205607899750408258301850034173370982348892548840407053476509956047504383257711195746528466418414327199497840763214683861116070924317892104018382178393555491314758868142010952152315121016139831003098457607617017254077244197232069876536180008251864540665512382998917902533106568420639055708514780630644822967671945247131404919505956166025052356478507985169597723986614273651326620446850663776398906527662682466098858131043894168303061440018148139223446342977167821966445178395099894417663869738548990654836551727121381093192428420577375120888999687221384145317575903137044035461646281338535703293721234900362268549969775469705463597461578819008495976151850068644784093314621657436144177494441120253652777472462097319903600558235325938038084242889038847843170891161659435981041512343989911831823417972466226423519707115511532126449299504886399101213684478402441841702962087943314041838162595083492637786077414949959805205786056324923599431356718399114699044267244223703130894602517348042116081236393236370142699279031865163738840720136206669719835726496689269841728604446112811313581186784805906703876940045434109808906946237149324718031046335363910737017623575241648578351153996605185788803610367956020424711936289901317404205968423633538528588883743376814526021365355047177837263821753193298506161387463639050742020568674085118426302170237030430597128497663363128340089938237301640837844025734401123766926287574076105196920475624419676521783706725480719552939471550384082339353276135593821392454297216038187778666406223403007041504262444988241908750156869182088380544109184142637248246971526966809976003277291192259436579082831217179187536953161930793906403738985880704340668237142587543202158934849584156351364867921679683748585951779181034142629319768797395957533339930953232272529492084855984124551464714989671795426545896327890364961210736135918382948515774377278739727362389966834081387559459330044745141925816660258531186543229658011037188089415740017520233032961405781046270520912435932406180713984100305261914741914944850720094047261916371023350765765293792321151212544183369389459602589027253581446112859490137339066713320059638067318586587769094114074462780803733126524044995972267813539172126899348197833611792587316952431526244515429022148875833184538211961560473122892523611096357894680353487208551425009216425922340980191144278433707854818202521797153653743743757958588455944284359775474804269780708736932701509493366445064861924487683821982857650849799575102120931029625639145859849160522984469616481389535531280153387160377492912483794559175858497742563074093564413253870051524448312430728957213883373742772502992509607244090833466115701937610805530438875133965423444726730986282832421399615198441143066898129644925104752784933789377598622447095453061512786620168314167213763039746316336749919203915057832931815292410026516796862815766103053106535609927529788787181531860284515847826605633761971583464381290549861054051122013294802826197986308818488913319469620575184605555143093551205958157592569901749841374172500651630858064540782793439248978350470083162052672232602616686506537609393324872270516450450757196497058418163280511410195902261343747874047341885478471296415475897843044187355825091309872839137004884816262863224908995185687322708662483154899155502629104750965178781072923605068903037530437017278259940619397024282821220632373224324303838409768563792404312121354118434821569635766060034921835367851696900902259927386662569123191954995428178786202820827890986914675760575598219033305569684772526264945820644145513480210105512213154467301206390265556146483833576987507780280984574125581357887662055382818542560987606614261365277307050621764045937811727765559264961339012446124215439434527469028471576637301460728285805391097889378584076389416411603773919698291675095197498387500931180523953257095273541901665630321905477097862023964238506940273938573318381283917007273462976138457110432395191410405718379802180138380752129151808067851213950532526636177641570828769861847430762489234139742830706999957960550957561505562817270667194528118744883654539952922979527154516125601940239588437153401299270417724033489281789785113859358922868358184042456849437101844431543130113307810123834980660441477049028764105699315103867157001943130064871621334320914651155280517032413297082761644078667894032327142758974606735955184088093663758551810520955525358776043812886921400950504476905069189168285431448103183624746163208902516171322190133062901941588154952642386088387448258286114485616198242485629282811619026854323324726180313407066143008611769829110453947300956071501978784642376910231975495164840092385174349872261070522682152967573938918729302636790482345244861258981343324972154768041527776848516129835436084628764149474646614171982000168833788627829944300308085753204284058106885637443503696273093364397598111277221291275301392406365716699744967858486983785807473808360697475308894305215372853052332158506639195596838688879350764836802622943361251444750076501597318415173581779288961690099703042392640151493322586442034224930581863426727113575352997138712097059197067267038778967718421025538484704184447407536171474629256086914500148847016134847715754984386660303502069889787174915786933157006032151616669056176327870934085919387009133592572075760589026890380635593978216389042775025089793522102497351920922971895712596968251895362774292280801263011805999276875828087876572614557616837191964413723680421654515921416543806995900827382848788826997598695262992438241079530728668865889433998320103585183490147371514700201544069852389762335073455345417145897289027035898182914413723374202315238261998720675515233505673037628331959070442676075955339416166626650429688370581260971642880374136104980405433205432324235941963580009661492009216202124668099340277201992831411432840207762294593582462266257188561337551636288191772171807669765496620908739815362999091751461776485809625636472686162160401550052293367951246600045562614379934982150912458731315447265235888794551639085208703867478625311736309430248496739139969637342314486710092485031887848810445899195776678672022529240993476224215913605130406793277643547313835493125002220637404954626442831622659992975477928851545919714195523124625813126874981727819596806821231001519478546238004808146903372085215126153050802543733227808458484799693625215076864477904908466300340008342163134944308641178204893310928272525140068648631453567795041853590113407849175570930348973121819600780155166091693779377084600098702988033640510962646407929206683506541855343067292342089727413541005354666260443164910266747082098553289270316125117358443736511759955124604656527248357501869958504596490559548549260163976882356588241703137767125725157033522782303180528902621121057387912112291080912376545993405498353231485234444314919523216681750215846471129052390553813423079826618690843074152517086984417742007234354997712332357912893593278681976899518629652205093577070273736027428830837809665622340341857235845150063056229030018176001459406104313276913188126577276464333562651443488376998476541522186829081789628988747057708552048408960664654263117277356480776957391997719907705621485964848608865769076792911135157545254013455684218635617116696325086061414701240011470118178062686617451419892962180069435539180591900108652923142382732692883835903414027945904573577899738013930877374421722922579888713498585497305267574208631135456474358523251266642132256047826457389658624171910548737300279396233849078300995701595610292449948909148585561891954156874795651212546067544884970063293466930949299337753999587086883637474653599319150543215920829952915464118648858717175509861559810553350756614330287342165834389614603924557592779587932324643070659677975928320283922862343123723420359588034301211923723514261061355915394917074811136527565589404460140164153990050062508597717332906001151723788934361995191455464647569378296582464360748682951027905463447263075413981419787860806365637195879082382943662346350727766509161196595371671116105559122642295571521072416591109829762838128955230358999267152282631439813193664351373860429441058829212868434577471059419518049530888961595190641069616101237132735643794779002256002563158644575322898170222003581955132600023427130513010014749465371205368879330875745090636589484527150269182318788994647841539966306889939927315221887092991510291133409270096896074534658581315511218296799846243052118484024329180678271232058067663035109838610240917943209303339180285216186240174878500266223000108793948196318502841531671910181961092707886700720192049490369315469932525976177654251575106066481458950810843972640744805172074324743968171881060116961551662170172140911010515481473441019515199794645930430056432495669196180711022402261832479169042471464476126157798885259926177207534561136125627516762937997373120673554318817098062765455821193453454913745025818420503646820455763313704141114371596186675633517217774596067722262000654573674464248447981017128551079784273820164149304908020372941720435182924620931774084763541693867164994588350844622304696259801005256024718592104542657934134454751359886222516313265142225756052139760083485358501435194963406099561428826514211965140991982635391109527676715290919337674627771783160394368908195594293878778700178053539704558491035409967797999322869142553181992565638625760463145445863865307861645637030729011011282872474135068464337256965977710498899697338224984176913510708369660564737363520822548353525373663184027845565104635402576391350811526662503238802760275387493898795569861551916027750039161234335713332203336839274193373218105812859311653226521186011898561703085500437805506601680320526973230494052782947545489950609254865448487637777994496290845141473950925382467647057316566158396051970268761126205802666210013678650841248434118049706529667405202600797792057639120923028230679430861312477932930724997352783239924012297376094592890520136725942129830334162208458515500139260683177665119113449542183391927008092964544149593503892075594346677822727040947993523166048905909875291831810390395743504994999363315896485563858627162489523869203745583983727087792260038275380623298688823554363294880444835085890123453892791757531474952639163213226613607735198936728436593426486333956695067180872743610019628766985706017978723202334255934088301153547518545429202906327509939370546439186227597166759477166971693562435871615972158532231898838430509238697608705809597812753349054500976105834830946631437261317480234506502244571546194226345023985600212446123436984133727913777167280256713344303115080231104022313396139709328929140507032341919795424721333583245156571787251014113405654040464501862281957803519236427386002633999507350679321294503817234346846309158378678428285267427485500197073624857035094116562452186400914895072334069117884663958087047914721983085353524316568045833248123833882562508525689962091568450188573872801277093773123410981144243808325342534626940961238148003016157401838094107273128963093828160802707446303954703068944478712088572039784647407705238905293702764110483184466102936004051239074394786814042990047499850528004417204993692864658436210691559540018222529759971208442316039832034732646396827966196077269339947863276189167132477516028468162866195153405045504872506643130311846460455778296615420439258039201515953142465286308953507154296703798936016836782892381224455193461023068512133600536142436397237694463401606778212244475933446789016930240001519022617925708210424989944036054666719215560170348152492642165081202028765518596697424919319228711625393704770206616143908278016549351337704958520667186745551745418214128291108461512138565809755578195471398284994131678803117568323590441409025873297556324157702872991136985341883757784173691113445248411932510779476500476886560662591485963829622231825148753951317598653205393397709522534145834397831536080380507713324485068930646879643796807399435589181467009722253022827306188097866191013095865149277529681052421008046015688773019782052940686509818063021676848852597478256548904731669750394660404145988002995261764369191596791680969985010846116217370289346864267592292168938042287671544892635887546922330689423799788072327473543658675211584129336482420117721207351484297768713355966347958782571124387188687564571267070423103869311417958716932888821514229062995177799496065005237003801749274331837954504758565603570927247738085403317622034532035933712218717515731958896261747911144807374330545280194938973246958081058136944273397141862567725236253718880751166260595483826489563128768220442304401548295398226419868521708725700717530026292683296255219910232761348779180290004862875934654011415945435253839667850814248882250032774334099775852289162001967386593441435050281654873113368781440299030046426734159158256699895719894943198310431926082842719886949536376728919420951045947767177876088048171466019208594340846368509581556471383586607152502949900989784871737822512405522163940270888389326562383693040849934200760860699738935330788956867940466878821646326881181875215994305957711304943792196584244518774921580459093049495048053266586388829081520791040284065615487070936957815271640089979106738163632033375562550380303347398459767310054920675462686038025799988736996632097188877389945839365859815531866821584404594602289510620829506286147665037029602169352858682355167758417152186696288607258921114456275895833941380350644471065991613797357266679761760844489649466049040694063085052672752914340258734371682087534176757607041194847904164315985774798979840886641017526633682591123614354966215285443660991246789221092341284681500496177060206040351778723131559707800852254796445608829064664264885882840266731220490042007408158710596423207978774988846505788726466413887650877776794963206774848042610180022680953091048478226243406093529174479239943313547654528024249722291650293549024909296939374139997375662251224765529876739663299997973820729737919301041578421190663699437965385082029548595745383049027528810525297731360097598861132290378872472466714252619112109956096888674592361631858191021689115776976060784966264464707272556148264280356844211569294142769224337352101850719006903138285167025785578937121910787802806948281960568052380355150590960579168094460677877921387825490794371452470405808030880173152948658536164363601422196464548402775833900017486009081131839476644572468741083671547626890689203226234363496334707743522560909584276619874023716711381231504512821222077847374645750116690322219530911656432142735686994842987011405084682956009080404264333919110034976691246513416655935500979073534173545650039326924609666953002738685577896934172290616199295592192458846177613220834599462302707824657696892977214346215621941154598750513670930656517482322550750985032836088219133736135088451625433674967977284705501306715272883943824306880315766693652523735409500894849786975187785160022390045912949368289999853970788102857437370910352071354227921824593149598058347777615157565170581855978434039092255347994659080812848895784977046427493136035542021412780984140388795564712863332794955604797032201721298820408947273823389393432132666975762887532269906293571366389294216889526264932008275526824753687223555201669409430290898555391029518135819437014552905302706664204955936445765287960054819229409165554257401049477995385058612479702020867406349977266658093993507767478555069845676088288455197690415328184299248282221388637836589356763310208459672643345451819603074351036805759149731647999903630990546551205775709883539458868520377682620882593595134901997669209249265720760041710831369663910691040558334896819350943291849041966876907154367002530363655309969921644835235446882089163101199511521634866137647675477453865973187709560553016512191932663073024355483939964584823580275877721938445587172333506886906081434122084083017455194849474721550980684164114121490097575816405177790977254877441363392644049144414713251876158606859286696317503871990580637343878855694696409780891362662511589120019028288884613191224403050073763826472408120749296587036464233362745027065894594015932698912128693355280873190454214373104518601934152097444900697821739182234231642978510739365644166436361545836346407681079792184168299888811995625690193350314096023097528579159034654291084389900073549341262230137185562049736860924369997638726415106620220366876881460721213604988404640823925364920050133504698976287850547539255308217359196043568490161187780318242094230907355263390003287695342434698599365454647435411772792748449427157302342033510061078193710419071813663064562278414298362537943813860196517738318136520499178427491388811021117769992431786452754455216939910167525233013929229327168717254873636702023824244567377682433689433966266840582002007440197622020198035281185178482021247513923200803508020149747759061269455467271073926346671779935356609208688919381862639546599810400245774756538858646454189499556058567294011371290522934553941590650121354849207363752784171350749665250883404730979388081863083600143450789919908018938908569241688858763024109354690931382183465610531605113400093366796971020666765244082897032359604472688524946619600542678022196159073836342289385783648346978654020943685618953511411168037671035710821666797162149787389591254222306160026372801045294954831995834244447284917105418681788577163552865073823862931998382134620989869544162154756202312343045074803579513706032894979643893865189489170860138942916759703467027267653591461211887791479942676499267473007419408152724451190583307077476729005578538263950949407234233028672275465644912726330209916483974271512628079581202492961953187782723789709021932914078773908947398000953849119390408580393946226035108125448532234487572073661331688188154024551412929521279478455680530101770213392173110055499319072242775070483364836959872798893558920216670513273645096127121368510433592355084134004656083921934846703535634631361398669526104776211331709731030383355807220307174032576432287098310567469967313536094079026218370850259242977563174737065491021316765519791397503134427401591013923304098769911960175008660146423821832642865000901640217293722806869716838405176986789204658685551539434113807701407885630078022543174313028369287838036169880232823447693309853044417719112487018460791162400908227280646151708951447314897066168772173759082852278451587811004561703572064983471378072229528507125034633737047978745563807942488164794339095240870638346688339407476700819695833647198006133997848048482252079979812541593388240153168505336428386665375247184324991592286753625236833168342555481115487736475011871382625751740912387749945218277453966624150375158056615599117279107928465971662249447446735983594702410099291481310198885812963353889030471347729407323255157226121976105171953655801176746378486418259819560421550042314810077336084917902421731921000354401463062029097131161408840171914253256566267271666168786055920291334789443743047458815850847533489899997619876785185808750797865694260458790855660368807587706656307663441615003282894310128761196358425326233725734636392556942864387605670692121228562186761426629636129308984365974528257980539603857722995385497333500582854877948017084209878243762400734088056627954690507514692616198343623795485032043416045137356615718064766517289207112611332136205839216181794337680311610093138870627012251581000334204303925036579452198884113963392996635581816704762917708501679436924240245024521354995490296011987273875337397976227769002017622450519654768977637845180516474442967771915449519471782303896464784756012306863004602167661325806748451762262545017686731523856652725902202747680428078636308958762906435092607009486391391022450481242289746968477208353101393471360543346984199489597635570439904084702758327972181778526549085369082848970503284140865602081642380060239734220821156314476742190580223780433835778838774658718840180517320071241307235464437977799471196449306007801653521093397016247717886149089774083101315849305926681741831906879333858633319368378885584617948480548129336638947851077047262109234122965169126185615041411758260425252069475128638183155078030064024097427590807725009337377169802812810543310373312446437248899203998368843024490925323987656718380019652206194257382003450231973049384993714572379504453741288730237930754548819060363116610481875600356890550282417275976777841887633810777819299367094703781475031412458752340976286445057581410038865445105545401424995060072265375971746309100556662469520430019545796703160994190631607315242261937382801836908973686952056408223233514851946410528336191050880795996596865901538627912437742777464403689131997022360287476184472601952151140732655575791423120734132043565006236972220088568926797676386215843172594186468835381699951158691836772822333946231736880699861910225596744643377747944294203566243770101387442361412073523364865625693414396584677514516688934673157180180615277412838244597289307068883189563890667989936532781259819016890182325303110322032783065439882782735842712697797653388967434693330762799736852010178422635349719491281534718895072398657180825693660961416625783128941872725414565915649460350701430209019258366618652252698685985998071872277937679702741173633058771242109518556470722151872726735545004933561851849556858888437334143293263140811358858422994683712909718872927453790734405216832462283632782063718235758921947733486304546245037618293265567045573985576210585380800611125205633943561126824883804621298381890612432190636259671767983925711730421940094025027295766777875974906018670994088662634497630620031142878714232147928099547076796787778304544185124199874939552887739052671749965062364470406736101555792609629672699364230578453473902670017142238347277038556611075410838841357492550156550463192498661522188534611195512523546210746691122572753566044555290941801596053244132508255354908477443695984186753941916427010196814021283289211244761564645238646798874070700115005426400288162623007393508418918931749113959369037867455618545376240393122629191736326160579746685123799142056519743317928076870042037565034673314786299930690216431978134541196626580636700448046680068184679926958349288933272746245277952768173041822811239944007263898996570293469551135320794900985976866260295123442513151517153352958562541375078293898780948590725920455525573979070957860994209825828785096744928292700522009705363410667422557940563984658810909642967211081281863050837155360163852498730764857279119025037329910356843857303852031245990071673390201023336521905711143720387608507139583411185899740255061735919968436733420551266777411890891012213155455662184378919445530753940237647609215984902270901654313590798371755601362573960483775130398959620918643134921913969056936682933434759886398237074953562153233512758798329806288886573883693120749697205177403572860419232637873749424252630221898605343335907721675654367452904302210722216519024803836457603174389043915126581008123692094302476828459030726260576149071145019091161535115599165261967469766018069668278231590913827093201037454787290493849754354458168274916053601877486203757892737971644664316602006277175671249327126726560619143131699821320678727287039724083658447639964873346260628650366710312247750699944542484993820228793604860749687633722315026455723111831110824840772891417768141071428050011557484629730581526595332480580433714304784908393467266376020177699780526731762803258669348283977622766309596914197071319901237398095094649355361141738055070164471148950679272767552231240944181833816938248226053828877030803360740562956459607975807811291773562765691620573601452151062508791327922080159023958267310802356457482335126219998462323766218071988230993035885576323022227996655006062399763607748246985866719043266662493555792401642965153769488506765497137739933561308174631631937226433939914399030464169337728903397102738444557818157533211782220252160548787227758476336537183664653578172903314487858630985744218694870404136704413184195375237405972646499005504365948580255785075878685078724810686099800328352035620265711805849531708990152287758560136164823463924858723137323738938797923143858906693723666521868626223182581933240421392182749150310877519062656185327732506351828297921056214139437090871017130377833191908411905246993866429794556751952697449511648521176213093043025158135160366948449657293844455690763467281543528503957093700573640422471890155362753513554657036932941358300268711301299692251189666237196629963476015668592254745040716107683084368668638412013524557859740712859208756962802395203470091578894138655747625244229990100977755717189320747812553493653277644842353153782938631349818504027289794589563201850466731698564406762475683425050457778096773373828448161137217207774554458227013536333988972463099087547349393047989027857754753004542133939188564448184367963273183969844072034507504369411602101334728336529833127182258014149719752160052871479795661778423069667928340488017681253040489337134968886091956788274025100191402815195140139320614105471097048045327729462757365871835268471514002128262801399116571215913158552689072484466716800967927046728849137972274430667424832467712159893743542288199717201814506724971303104780948179984150673708660803961339949261482706600836806387805003658423329716468277831659439228447347680461132662205786110602705131013327172620708934445593759197305274981155163390136917600514689789036916873074846795347023991888400769463362108577408929865390958946728485771315388948583485743505363832894335233461849162899597164195899025203851376448046434822738717310696235097977977589441071192931709678901911566892215870461301815009763434175540257524462384711224594108229582076669105416009269935333821944926789437043028571806564715548055483974831272684987129597101507579649599110002921657576787921321647687624773752648893469283771355383935212193990851097934874853307309677305328493890601435901593637169888866483812529743662840432328414536128452276088096990159845647207724794717706890034650016158823087359896362348605411127775227474319221466181310054502702178718328752936634792212123880891693989104156732679836845530680162738406990977107793054241099681828785868203815221457290928083006229277625546601383423730666987558461438849076530877584850378735757279229889853145711971662767774097168253107255803825499345573866448517836181414711355769165263667209054955707165943299518044822922609844595099641379761872642697462569652414651289366705280819437223423393422723775609631140615049404734625765939627567846537713772063827826493410722129894137457816695591964688717034590052956420039049128629099547569114895329885932100216713532274794621661698965511786966098808813257024654743059873961748077060377694180673385797378433582674824473677961553366194305162413276615747896791577367929007563200366554287599149727350588221202478166264826404586051835999710093985805705223187782314201845243035569890880905898683673495178210731336645144497072369910582033074904840208435821251480442419964432283927286250846735831402873264638684203394527959813504078983375877996034809215029893806624694191239792554994997107612239594277565943011909453236111845646672064123519759556820427756366406044720600003697044019664899484856983000942333818317179945949386911268301878377597264832143880920543575495868678033764887675511975827265739329657904500913154550318436847602656305326957303291231078893099490900241825495706279432705590654761957640019592509036857171200689203585783986929052452964200029440097112927287941316063136138523352751150694464419550456930584930227595662241293484402091876805488752814586608426379237876147194248687393055595350217300519278720169543127270078275751703709062430317608496691299539378222903858564175561064673807678141140502104356080262599218104507367101846421006854005812033147029858599763403551971528989395012812505982519108886217202093448962013478832591117357676786410565867099097849187665345367458173433266648405597815068634627514429483161471711710318926687246190026487305889946316107047691975835356760632015166753348220752668808621691494988490255474100137967201435368120051863569542769506240310964957250799986748131392532478915895652637826432751986412705948591592902738119446733956150337857111676487828882498935155542006688715832642130736015959761342970941502685777928192148923424611236989690853716295209198975119722567312296384892900573463727705481812892513508475666826709932904464861365073457417630527045526418309007447695641769702304633148639935749919293489823671959103888351533488084523159482749787648572751802349697896725839340878569212613397901760281400384017666514889949273485034485408987391342740749258516249087104441351437822421093090429557796166476251739565410847633082700818818299349350340529766087155393677969011045198504134650310517087074055561474594156191690910199383948538217767903979998510216458624330743587225534577842889534451692067146972686655942077533355591334521000657222613402403730067242992571993546852455567830589975679970593481846770568874989873253169416283413537698882748430998483099899234641162624711877494312432786840339175369276131173605748117214947888474778628877669522233812964410354223748831356197210488758456221149695966935155418129828274969725723121109614495217660549573908133735874012281950742494183143397355106731315459842603239777599682705924532936767561993252415420298524964666409550417561017826425484547168225892126400355746196722942607370069667490303589611691883047734845230453160232801985463576911738532552790523047894342209712339991603895739573191508060033222096748406776268401390019221594289624134202800311497125858275832329544671335675423256180937824023362105893124005437606143938619767319913149419090242499052934271305217187965358596654086293918482681731153952079540695043701099389657261730033951064204982897079226973842301407590542959015263174073773343350878280615333527031592361189278989167958254362517250102073553057238298815038447166569989841074411558035563187583064883272592375776002557022437831158181589110797083732225446648458227878015622410413954934777993671776391595757500170118787738006575120849481486924266705992665404481780379330722396322658818210652094667472526892489613393609916258795962895746123099147262659355722985063446225271518354253665852758121306402487606317563793889404996537481766314762281861565604760201167994498407265630823479135599725150543664950890066322600343943645598640489864902390565799571990770137665740440330186933096175335212743696941714868414992136422127805866632154430892256269366827831537219681395710472461023766471982927198302271454642298246069948646961008962017839406452067684898208748816773505410960883583943920911368971860016313765387570387214409386273023029362013513271844679822518909623356096869497103077981595283918168685097605046126240261884268410877615740575506159864565568057848276173926859986477783860542717847031435057176150002717969561714118982927002266782020073997512105265761061655571291183109712306201698699421813384669032003852044521469171685321852779971310232179933735457532505717589019145161840923152384403609743577720411934517978955091508667051371583638154503370841727620349580658136300378871298214758983681521879162449729153135553607802509845939628366246672279674703595450784637487812586758957314189423532710304885105167769821185184897686109614188619756213233232946053339822468104288789679195825445616781339565731584437839774054491963175485812209462895440569160620558122410167301522367906871991885344551076603788941871220051198644397523851440597472041832557477140730042437525932557232528152635648525757370876841537628487835828915737561980164832423697557500396565710421277756480494309874090053463485239732320196382470429895820916924673196919844073216749231120733639678796281421445053266554873251012772336228060260898552856768634744334955503161192937429492324172141143499257006406281582848142212220433212564624955396471992260232384514075255220293061064653415364360954241935397920035015424398901625296527275796181656390356345274292491316324112070688356245227092269417056637922108739328195473600996249738482512082550545872664293411103771827718919849549457943575792348244391912150495084263193724340540426610024469162618169161158682386617617871168127649246643450442340435705135525930600778350376002524332091555496323769241347707921650883192413988222165430864761229388737576784255931955057761942546251433637860605883714652300978757311969813294572938335559593483257174457881638932611710471878446979337978671343085177692069871659838857100860718291796947350274161037552252254966994012185995831009322889457149975768687872284377647478585683246917856732590362525530003136955918077278875490859638138395244720636221150378205247507599540566439635929138884214435157469832867815641100077370516978383087889853003210332448623872023635991965422670550182980022507817392296698736879702474311776376153489431159781628293715669614755312968976332224970983298293468274812951644647010379410000318395209321101223648177730223886704928262319402720805889253969333834306335747012241926207856977243328551596511271001297168766726808021723351057410585100276233194969476312425582439253268450395727276787005534784635279729248838804480467841573371147004820481028427989921085013383519028128620240609697057831800496028339382665221768183290285938964720071361817807224895655559374169632875444690966353032638524246709030641974915816345865484603966674010560601354201565796787376193837603611074914671236336947623126526732053369076672781921947767420807126145096713900756038288719293528249413581908755402331149614282527443884949111324066888239074582614542175017255517959762176436640632191257125356378181592083882685916469689871045481152488709673510690142884334522149197524088978121682825177416883844978214838327747306581639591747627651450761192698594224254582104492197901714653775369084708250249139073455134107019502291618804345081915093460420912168149387730799012949011987415908628228459210649467226955567501307404679768671227064281263025938552804714309364059363116463596323407088030512942469966503978774033031116420348640510791069641289161121375848090898490667537773282056055051115868837382735000906588591883828692253308214076190095665416848251472326409706637636019199503042904166157824927763664915704499043390821902955564486254616409326288394423311777643094736897229733555023320248872524837195170701332293761482112761574507584878210908238786983503522051964650468170665194821591566364335640947325132214044472213611621078947900628959320483718838504576590490341791034064997664284800892032571188775740963374847222382623188811594563372625634292146935407191835472146169225136984756190985995510011253222051292649657750399362548578589977982234552573758998634696446872830642779056670289848051734813646150645115912801279653350811314501966135281877057561364577094194662119312177901983997461388607547490263398260982361164111024316354805647348646241540753133331455838736214237747917468859109478676412850235016570395211509112022478094062898805667394545216500696941297038713027413017206493374282836849397603109327072178262383623013423382801117123456564378665953074093828995065317463183157704613669838245667839894309546819903991313022880954006579583760875656326433423578085320107201420840224113489938906990865805871840804550749506582831948783761454671177319073769889676708891762049198288379433338139374919615729797299685868169242454740401448648005000306587849022299551457153394827667592897444802142280137161666854852842857724947835986534673850037144854039098643595748792900161768374517397978917555444322125404244291113581778957107788041664423623806500785543898546059984177523516792051740516179552936472880367669439506142376337427276512906922824622177281787389288037271646402904409494197946714205137552242369792703104374404601432788137479599840068265980820559541581883186656554998181038257629205122636444063787146355456982752792817132508352032421738078024312050130574113448155779845646556609734153758721575454077039593541646964656411356152423500524178437673448612121684013831179264094800857027841000507402847467628085017945981514375397355690791142689570225370578952722534208601079835360898074964246333329782885409538719126068767100888704965305706249127089596011727246965917405625408343459004107902220177437345438173229442883202291726138105963926511193184152068326057790635772650067585168495365121775324008368670721202740128293637437888008414124271567884329159460798982768468230133226317857662421405332316530483260645868498870923439226165173981501126927561181001316512242482282309993374545001351947480323793701948336092614598167312368813805994604051259749010492451459505035800855090049879788478739666633206125931802092403893338280101832912478937211057047110440802286462151461542029233247538347238430059252739200242654946239138800525022922249553788270450565691977288223476760048692240027780186620131977638459942138615558447539076585904923103477320376853463900937764239410365334817403987476090238338820396419112773447374218613769505486540254303540031415520204893583424984943699824964188956194546560212368806583370422318264864760048716154473981032956731233146774871272769965145133261585181910399405217710747719808001120433004939329800593735103037074221153159254006616973369511239374065554891567558938378860682603566204557253118383586811561916813957602733085864535725644748304196980145075475904894937165908539939850972385269952329114982891572684550654971741275491906131236345383965127208568658376101972550277516067227128522166813017920655775413353686031417994117968348267515801698648622753199369889834309998250569177352028933446452921371840071891965059431679832115092328166979780765826037236122892925521778593758760190122056561533597794603646761151595140375212194061884066403777705830309216534327907639004001234494384274333808984725059530239760945601617164337254041236701215691901334737753816871824295523738344500975108463312423126954695717764740358384082252788434928787753015119060774409169435459904221849497490961973566853084682871543414735043447188840589851548701595632900519258051114013687525583448557207031846597190939515798524809676673491155077492572893749997135315503043142326086419458045063212181034201704281748180308238393944093404376392966118178995809685410742963646550569497507067136890192468008299513259409841679810838498503194914371672625275293265775835088049536870302030972611332136396887727075121033833771784610363119144258900711456209085883958699541070278972865836236536588814685659773489299681622641549751409082468943535236875490244217057841677166522393414515579625126924301309343315553185551291689130871269815398557224343839611669350855954279005049622833197882646473999487977481852196423864070255201317496310853686325540811140167325277025507933459732170763206509599115065111126110790274897064254666618214976147059766061140678883755089630504585702972143100827928755435304007512292298114167321554842588340714695160175541914376627361371565099099014991348148955456950895666258507650786218252808377973489176989367809296391170225881280778824400766911663029671154888369636685301334396534734283935767492253597165377285352668334293438493597186464704697159740886625208892076605303770857843286215405849661253069713694986183442360919150460131055934405014529360978228905131586333247064936693948483606181012029714864134855707989450614003269911927917196248985692810093741370431173414304771840145781003611732502305631410534141065823107558592907950073318298930729984624444978391852350786302257253473051748262479599402961843607752348738555108867822847579175425648567976434041724918167310012152840816456721412970183940212805304539542464469015495501409752646471808054476424582957699532172777323352686396230039090916795756787330414764252486701157394923308041934030229699649802417328189159884225759857011148233338455512162402550475790131580917662518165777369068610469070476066147910880203190677428591504320747485281154834582166794302089480514495702929792346552030159779144813367284743091703474620074872943810064639340752059646323141065124304569684145158369567853698657470020996685276027597497300132429263420952612945006065976409365484886524251566963587608095713304738728128917432643523672716571387585539715921077336915351378478866600508726275164896941833064643812426740877582200490807012800808044437374270772127792294366242559824789982126877683996334407574782010476266579550611019703427304645185258951326217781307929541269423373178917292100557959393654495497308948154113505157594268764555065807277242451579862541365980130867137363550866162535414121851655198567408275502757227169360777740602471504293304753615227714785373900663182220554031648443290802973605844738030062463299449639150826528279478347647052424374959956235205512028072590970875386369834346379628736858784061172862724750354635848312066640411729695284428048690108473642562166085996325938518593902617224596421222666929642489503129008415149769008010474359874456207258833062446514933318979167510351064016718592684163006707724369786504648315193990247126787799834275045773917214797777366946187220890826157475895403985170830447550719959346626542200880166043702148855125913657586782673037703029849920627065468229325049354732495028137434569844735798068367818875022206075882695291379463524854617240869910803386542893362335071623603510285276409057991283896980239511294760985368172435145684487523046899235421441550303052038274018447851650108077917418812004990414641477327570078334139793563938022114922277155940869854747384897378316895220225344915660854334412043058988788993353024056249389220508874480843227118738254851432315834748154589227633784294514835247649244203794759746533828697062766184080772455428768362663431926031306404306399618192261526185952827523211845765118553768355963083646047251911490998330689933927080303202783983896605472363964833928963963249629637133819769523819060920126489326147528059518197925950207425347800217179840346617782303076977007007653649345702059290146751334935448836567686708535366591091913381749926600435691156010384175310170876515883288019047402199222828893100781894765553499254210789227801316891174259312330860003291567773166148481224098575516667583801829811411674002442273063432448480912385599052412513706847924320802155474643145346274615874341055606149357836868296952844523533430116843200828075154610482557832225336244551557699398510358801747869856462098088953943471902836257153056755454449781798889954951759079365051348219643615380840917922298007662518553493486740140374869195046828928175677438947133595598790234899424451560954953916563542331192086756206326812472997660345691440677208044539056174820536398272406460047942208369740805353887251675171902698493193765086210409303792023297062206861005639038919195020573778780480406134932598261801788171574126294622561428456421004411860546942019424975882099202953690686173210335836291998708367688686092635137525362371502230629024051554855250501474081323544001958510045388248073058815451944473805166259153313698714902071309596856333714158361634863536875752497157455022998464920782088009640156761194022943543896348395013215899793298042559636498062418024182456215904704368200780257571420138866774914682205567839693099954338280587987584278882193895373842914023094444301105647615514283852021740387861597693009713631765201207266498253449612017600742521003851023488658827410397999345008554488177210982946869069001833737666434138297491715133749954828712777778118207922149914935320624335059886201152813850765932691437128406736339510733595323709101058064608208950694721458410206458737075726033347530361933580435084424169309121770956664165743814442860410459314254004086380870824909311537259460784781207727265147410652923400223142207701700013763720453202368273431232227577582421723288877489037218593919245158106954107519430885623188679635148921723761503729116647742369714050336905498754589995324909065246408714636528628200575825672909415287073776674306422748781876670068467811236255515472419137050698329020385645652583554623346442398957603021065147515665735376554212986587934526336528249399453724857086046403278102309773486870371188069945563901708834784454238500141135926211093676459966761487334260546322637710784776115466572877883521868607527959138289919213719727567106377663004168783385025724009159954954109883746772073729287161779622005089803786898785979745625726444363145092628648305734187801495501149388168737962395301266182157553817582207115005102749435208422559103482491887509011734492384656911791071208730355708364640772078448606264740229752261116538730452430143751549216214104995555979414422114284875378958307418319989384177367600608171580711088538664039447155491192030078420248347935249928353073910579096208445724262131814584707658262358300626617560417268059034413151560424143327208095088188001897521126911408576412099829062662964036559479664590295477621667223548115812618919620016997652234635189310693438132069184286788259181726113403506687641567770907600802521440941614328842536218086025117558762464961179883782212871795881584587347878310260056800140713498425155898469541927538263491884209256868066753670305706706656562006449449583848423164283501116632507538629323506759486869828230761676678222014400130036772945381838091347904011572119164148026268373726590098910342520145436785991909954612121271077255266399543448544089432992949873810865808805571339867911647960810450758612361416115018119388663815561618901415257486966678934955558682552673760531819499413203434566436923069931519791343030270902678267031782074971270972308157715508758308192110995881145688069257354177792954493506182373256928999484332759389976152031512072760253389011189394548339766549319823057380625858425894679843872906479486487012168377967494160205646880006529827570400184012336974679325859510520058172799331876608155092756480629970566364632618030248020464207330603351542080491892888459140035219775416933977100774763638698669454554296703719275640762452071325074627621273530128126433114004539426364374045349276950241411613363419208269192244428917372963466833799090871589373998424947560350066682336080801756536705756327550875125998008103236931456353059688616644698443863017437752958510600361482046482341828881024655999888033157481507369002498702132275027545219623616429725416322406904227753398021270573240975630883270187168438054936083644860170900508453674943904672302473203674053566964929413552660257074064196875256207013029381319229319723926677512009434678915563964598237196941826891558327324075479676528184680191278068845444721726184523847533113460260745719245303521299204139885124982679710858571082403594809928400692568437344135246748806794088474427998136662260212297565470233507878088775043612094173691884399454870187030081606182442677325515665834532361835317297391042605132696710129936515347346213499823371862734306543188877917267331218958673846546472000559634806358439522020522395764618856825031281917806149245862116666039307864405420189025893336737646637710407796047394432373509675345146456598225832333324482743823381160381552536106646428713492039059648022923459437162409339397280028489554804867853644720449421711459023007985601334152813272422759625857213047644833810780557909443216223019160817262470467376399494535145421797141403438223964580162610189259362389676365289254103639447234233459322549927346898694970421092916752854244565950167649046106832486044385237167650962637741037291779864669259089193307975692670973446063977742985029618170720776935895392769374247460114438039696637596287856052787867942337878619294395819983546492247198895960534837634187575304319714016158637759041748296683412889196204991943448905691827100758182650475749606489195438716217955984475685560550290359928958376341309093127560074213016592803432762775072191955100258772710134983873160129576799849207791252250363882332099723105597990624597712578411191870831137827243311604564179298336256104399212997397389174061261581741249175449007401877875153323787446223787917320925133071637599188222738362099807599698118547737255965792918170408044908684372452683309173408520603721792038483970889606149240976082315028336468453919011143254915913427181640339567640489932913922838392815568864668441344634615902567708973386139111717301137912787421042512386023111165221829331025141231827903701369072138741415207276973373251143005269604781377203934301961116506538539844170273376912565587974923663936693283642295646436898960940299074648094611836186863878271530572141013382718071709996506877126806477800373257357658468428546107393014339029922454144403806786390043407110667646201319140090530617431116558792550369787380565191159758969689287080760822288557869249649427935635434696796004253970695488520178776876920685142644765655528065493827419878311601773758967080748281973229582798325235602239637174856375870652779836035264857875401548228266803935944371261409291756750790943590499578470664348143343635262644390739360495376062048325337216388201612676715839195732055391275138032814646657284904413177997278496866702898196451951857406864296355434371083593230274275842740995345248649879331686836711219573791440078470267733668733576043505228267297804952528552077200022137279940980122355247319635831911352970395321867556126435860242064393441588262905055574407859136437328094194395282413679484739201646754230361722699357580812119494822930839092650273288444548186054531819570852944180456927730005087032415665043559401446210405119105306335847134843975739356810209799645406415921817860540031527493827110638246356230207536604004484926128499698095819408970757897344808592123072251822269058973891871637334662516008600902148365862062587107127072767617169616032616032723846589870642424237694206567993940385325471467710901262332772976235189194809877509166585509355891515048710197112554046907497260556406688427846713216855853119714486808445790529096224900316441418732625145019819780835499647326539825407463882007670970296751377954379479479844606572333867633084577667249278120716144596824699089177517301838111167975033431509754446099306303550851941891875224843252054678584110959306867644366008748382575182259084277526128730995855535159703891515701655892224312500916730648933808913578526444459482065898259459312069944844957629770765729710528481034468504682892833057201968633851714451260477078309366481629708920643392851742905891159433297085431261572563470477140893232029826858589642932354159568009850815835310817679083645951264190677765031625056906376313175529609165507831603401015887029933549910808001412645431569768807307229209544180616330921225434317186120364800512670056935511553163240443364049420311602681611209485175222883949392775009581867799016163964338054303267324388121647651731080382681847855774374130322663957427326849449348545288012081954738306771162453111637476048657801176777560546114098024223799360669294597615607231291598414205898731154298902427238764694731873379866950498294483839915168386931641414854575681366868445338329893330734793313786516045199126296683422546550258768293813214874020059986283488234600032121424328554458513161687937439051074552568936021351359488601236513848293695535323285720512162610828912883468765181403004720050772486697549573039252463954010187208329900646997214072026435027997283985978066975221527986301771154128058175032269831721239263402150755708854631399236784286029428636060883411682330199584097391351049689713166657083285313228104596698939063380342052401730754300686528092907533411678089162873748487731735178956291318091325385648229046229208081462396992436510525316679202769664031813745297460637326709236117318644551127214553287265812227434458719898147079150550307840502112736733265567284720257090384287385163472276528491821180928167864161551989440187928344977759424417098787000901263802410446738793405521254135874647302581650884462798244542645487248962048827708331823737694244358207817964129853082270327391819902098103825512659258170016695266830035592948829879285606907510825170453698763646244116165574827787240056047281715770678142948189778049039859790597345514758993273058054108676746899405022112503886445235837011897713485477529146431831378679759517670976603744034021629368346349960772764927026142055177839203949609670502259306251076102252535095988333797150688976353356156668486813347393771343668265781931585012548575727183112797650610796700667625233045498203784589177582529922677631947218561997285677420897936582281430824150617074521023642325680204441487485407170467948650085487633911402628239594848534152499927816971327197354110389888750576463081088347030471871732911119872866647806036978496764297523853589802891022081100100734192863921985388398518139276796617199210782029631368662634493808035609384878880474938144355421099181380151296141825890366473819058141349722989146557602240808882161100443040351618116054643058889062810969095806927602078635660792495478080892828158135192423613907911749508444049325017695328371059590033679086980801240233935273352346494072426430418560955185736898229891510782140040903778779903740086704961371720337020941827427222356251254622687639613045970607894269726069012057895133488314538338606736980282404758317154851272399541054185253553185228824639482965425371585216438796088379045138400383895745831827090786443524565299707803674907093524516294796132170921106581834886205073172518497699226579606083533345066068009956432249536286428279008345644931997350980006415143557512037407662962699827366938824501982368738400547868960840053823926747645611122668266905995056817456133101259604597663810440897804050649480386381394467089340660337249307657654706741876107020655560301148864202511889512183812812046925230376359349662001419885471922101440981528622742149474082682718195914589504753417912503862578848011367083876114056964797690556406746850517654685662732904520272793326376730730421982921422072942952492346910897558994585729631246185775447526623576681224999686227517526359402426868464886681704776603243118571448072605698446505530835004935906753636433028810347355801507597931192969211311143938621832795751756708220682613669744584637404975778264966905808133400830443696126194826659564287441108621440750980272349424497307999021015961588900067529516734389209348604198794420957765602128321292760676666184983331668760722608264513514517430496058315746596126941587137799712838090897501685012583101700852317956956476987019972871331513938529155972458975002521988886697271331992311503834912097358652165813066974936290901681579095396174018281394253780012438033161848142868475809032889682305487385508618205551247415295710165925134060851606568812394160932182922574921209002141189205055885558321297301236671033341169845739440574638156307373292789830967763306186444684788990315456299492794323832123020284937975068430024434635856689805780276749330060935987345953446209242035896309490395657073342620701283326582446550822419060701478968043690205714224329480878238118273089880904753868080127239729211364670271588700585521438718439795657923357527184845818092987969550800072092118008773879493213856945610842177861220617981260385091394921544773946824924521239831180384951121733631865914974283954369063545495703525331077130382104576455905343973988441817347254085584562705190044136778127852176415761383259893879544229156745496165799347165570090744695632769856430001738133838194413042201752498963113216123743994091668799676068977823401145075867575695503413643590334498156344751315539710397523111058317944956413608588435435724106210103894052058890662080665574448350391913954749616131789600995121316959552422674066426404450340665373136139048146810981273686432385798182022679704530539598533094961876088108576008117460527432752041860410014097387884207284003157498132627561529034594834968286527204017766747662203198725257944913056089355986514415885999549670158218936238071698751610093523859640054313910374375488572273330571708316878595823632260919036624284900947386586209843067160997955115754660501031887731159667240388212905122743423882208576786106955866773595800104182280695590738207912812953614374989108818313681473686577812691307533322337729214580800098456840914297961112662715464656369442374946821206212334437060908668855830049905698515528366892460574414601721178319304282613636178251860204262565237445196483979880022124877065779398858716718809476628069308846054755269321148304251134136886757459462859919585102344319931862527709506063825067590987061932295590664332401653886733281788869121624553870258439859605005255896461618095439878823470665232413044753314589611181521657176478332109595503528059299250850431239191000468401174191670479783449415726173011259978171375574030356648349881883311724551103928403137147875432601057429270176080129652402263209662292642543630769687941762395705955663952534081908224954602226075548481429691553559070349677345127741655881143838256000466452281358059853321117363328894990664896379696198640603658460368357106007928808794175921107791998470426137873679531269155812793512230909953491422248396360942884332565979303314228729089756620130395713156380509082523561755233823893354977672321598101527793900240860629126897424853068482360086131109520165662329090041215880209997062942031199460848668509367248370559188388640633938118103885005839323070983086448107521002774697644651046110121446730607848378786373170971279527195017430358098579598080551851354411500327212044936336207126579217518174980417297445706292045462318548709761229730184697782913687145157560974907642907919520197724096434365199850633814079112120082862751931526017866782039577742111361763508866705136398824169777470407973529667181417864911829831506184161876498219938560812777977101350277286688361652165727769690756801089145740320673012826921601033472274736650079497915528264358637339707604732190591390310573493434478580894305111237972370736433640269965095967212432255087568693098572227185926747106164901094115857097459517844771053952564300394742361646946053356758546168193174723173982178482720715343022572135263353279222245871103841240456400755904645591559413249148449835032740616791479794776043535923174485070003631651497294015222810268484719422893115572918348759033032379068216950016042428252022163320888681428761546201861623443118756617347777916124618229255973936296676609276258594227700922065183748843183969798336172696757576470270464051164675384056066635931402391566053848849876419131036808955907551840890320946438626618759983570036766548398101109820751555925622237663806733469779207812363676913793944175110178837890961637278192321202247282623995108861434161244283625477375859736526790186134143513731387722768882044678683447763738762975393708032562396945437967044957638395774063625752641088499064266999174165206413056919029454453019602806152036052670490202264546833254756914627593261923346822557436574785967032803009340942503702486314982128742755466006137182836779981295717294752406341325650303582167279678230575624146626611090544363685665599991975979294677989233523220980225116145520705978318416180552443846269002115941238895984905846629322542473871100380184802461812908825209902963000066577182885572376208132763293135270166887777172480965303460722863134954906524884612142104265176743956096756299114117645868780257929916168632864197730419910724384263249694623175528203492252093599123279146085171758743285476256789153629941893144419772935219273165612059835868622500951071333758184884454743210241998732263874556810135625367709998321525097931041351077023126327105073583926047597770161494689530129135784497825251070098165377740141512755169713628983996237577306352085606448620983649944512544916644110777807488097028158830999468779050681144186867829145386909274060575781615015020927238918071079277691876645195414849784119369535762148035414821645473984327769101630588449545821655726557654229742350866910911024128278207569342633618785014279404482032942571583465824828995638917707235813560215220997511690476842160728337921867146406431953720758739813111470175223937242381114144881015639335958806722547767611028051725436102947108651274564747532598204648715144310104985929465424697525962762990493814826024483666884692666156608513759741247535437916456363283163687425354487242886897139330025765437887702625309073364264860364818635180605287129607413418423625558889799957802544214427127058101284688479509290496910357213952712668257768125767395802616157409435535747931495732303014348253026877603386598489017590801020428552650127774266494495265358791650792877873532833930900022643847653342907092711526995713274664354493345890095595451654769447395779831227960927193963567980606494500911377504380836258548180560899546290835336335454458621273275170115361549744143825061305046821472750845719789095443530820520001803993871638849050812957134485170159138302960292069074080040979697033518866512233485144035717985597926065796162787099247496631879752234720474002804545847799132344488039734061509603215859055555056435886380804013353807861204838029263801254841900231532394670306576927267262191576822435021973970701425183787018277226120472228249839930474898095269257624039475400292464845729335479036759459491362273326745564676328759703596687935673648269375469930285940566266248641439470073694033774855714923507451435486130890749365544520842622429219525564370525828131499792198229803835167449462845607972434541450376113709794880940692846719898618872098368427781866616416750790893033907892538673981815114257830484488045046564868142223230885357602065276259525581001749064371599809905763853887465395848584536908760504648092632751889954224053481234162737149662387694919897178792624425125001649268537993380824234877708971292460254027147462971198608940664323442155921752636080683040984153114046445929977884713978200596042658352392449362113842001110419442747573107194758010566268496084978781795025208166510231670587599437334817087400351314149081402126278509151177186569612383022831620711531020263357693458257857797208497658169148593065893023622426013524982571926255489500491545272557559667181874244030934706198158731811254765494685070784797937718077241846563269478968387341262499184434037547232662385891319188073239277035924741411232782055672662572480587701751635534549741041865690893165295032772893356835998360353253288372816595812727276743942170726920022861346450983929016157959830431159371551731434219335221660239022109114104417377548676366145899058272323734616270720945199942354403043634007499604154286064775199777033190151964011400961314591099418069799566625353215615746201996771352523199591208098796533361001247018573845659282732176161489314863198350059254785183490768397568615952264944909845320137601621440532312362723334444939246010618907386678344957362496908882315067164283994760701793963941756867428611863421392946798275617277667302948627982653937852992212487095163683595437162206778251232969789017846890313395031148287714817890075196281922148504273799470194490218908488075789489824324788381005760915697423341792510888248835767104523118591714275594047013760414032751854167223805890954661922640448008057889669770001150632776259357849134300109608791402682116052638718791197848877787872097511481069295030428000009183627820484244105195097019002066372024570140619382757541561644449872634254956575712744668042537897859138841094719186330527310576781561491036578485802783412244018817546759349741413197967644996444536188100427547566874123235622779674781961295681734059588228514317742139461592216815768903294524454435546775530539468817635066860739443923322273147873963804074993957580080632594707060467857628516733096459777921664388613019115245072931572603828878595892831029345433643701173054726722498156994902905648497158432935768228130558470919852639853982673674363094513680950014118890149296409660808190344548737796696892829536327336829464750613984185602548580882285911270255599817350349691235015037301832573138786538193872701687153125385906454420623191840490617532003787640423765971437215046578462829769094899860623832101376969760737198817625236941317195139455035319501561791942686009011052849126310764357225626541942223470746780056360602079266161220560202179087532336839406255984865468273922821565953738903044736173890358337866158092896462579358364768529288667380714894773674657642908767587471776513386398186841520940220165506409540902659719057215162171239332098674225829435858408793752858017568445224605158732301521659724901910003738788584418454111157018491401817482577408398568902248428256961008732355599893372614794907283534621861678984004802202301028885463806237318790572313196426530172686471852349005369371099610118039946290792807844308844039870400184466810677991670821254678710492487704291764701616382561204123916220268722558187416678333793348086147029873675496674447788791286500895478388540064439233060645522682901920179412912071619641750591028513099481884736453237709051255350679452032557505060315730919288940970090497112413672423395804161448068574545062488488655818593717285893505716746212547943500237354473512747978348573334687451709044229501922898700492539358429851212648295089538422270615984083188073560337450402316777606433826443357254609604253623493627793898533277385264942051909319488808679401766801967083070326448190929733890463710373758878065761452447466836483584341774120040669015830763669677790902222206753402347857041260865777578302631316170292034032286745309650183505808788576449014571646626527537868725172559471815191651682091489259141187409623672710199794397284119091727337448648057869322026680192957514105818991127634550508723798105933611395341494337908040100875230357509238925433570058856505733903680752244652192591437115392259847942361681854330530592790882212309327413108553790433287373617924636225369986818631973452198388099364414212464653680336024907240288068985215855321056094758247000224647747790455435114842142652566055653566362869339287954322479858639720541043158184754956641167168729275579777122563223629773561799819933141196177952763622575607647025974622787437501043640276554074061982899361828319371099543646660107117739692397243555897748836005887313662270511541893416763868031696470864666407271358685242775008783419336049031718248469221857525139458910834166373722160999721638713545084697995562867852840559006804973061642266740406043281739173589866099001027096517077739349818869446457518340842813275504421070499454897686825998960927609406145088908445414612007808943459659654704702416342674888639366486653887149586076825747215816012223177215883668057443990692915551824270967881903675549703219298708617307457506049586468236966821100011678289245479893163220231292864952322468956295629595831363490930323879409762158510334835092573163249757228841270759748236680863290428896934025618225219130342354355564122847577128630290488183435449808781555466710782527534676761432700434310708353973067699832163490871284240773075383163863596364726934954857985243643109008575198719743240912072470088933302401415557125973808896413621942595916629250761001694051632305471727614676286921700603504097681488857543288051888283884499541582614962371033456534149409830380997221917623015864224808420851496473891845626553392400331981807609362662736772580404717366072566680842766645542305224788702594657990827527866703434373219086341972187569084260481961290057161499746559786178915756805640452038682461018997735605405382829088208607911876218362024526287896874670005252343498763619526587041677496086712897043048080910287094647175452294137951461565318874328850049859309213894986086371690663388113145281676681682710294289941292515366808766691069068169666963577245145313797381345367686743057474455035959908943329767819658421803733352934337059241247439130465007991187067865160657799807422176591976409359350247847920706436180972838518094833915985144747106408881679780268420850770461891552086962671743137442837459498101942849945200495118570847125224750825997328641431235126203537840737209079917046709657435921183472756559442241521463217154349054235631940991795000911562592275616092092061877576395480875418098580543506735099282804731822738820709219184373800477257999734237197548317273979663964027670680984516455836706200785758081838492300252438483037375338674023598128382807197013138774214299287182788405398754773618984303716496350051937322152562095931674041940982579530595108534627722377100490353679752458805755546617971001055502243565104524684028222840392690681048035521249233596542784274851795716420081740652345990193833885743303274905753737153904650103517549619269457318556861460137310221773025087586019533234129168938741729217894425801780183432722395555067262944387251194037886351830954301839502332561379655822491257643532425715285445657946136844513950133632670698460117595770032893505685694281697129713307443268694086083599023928140704673293647891003243040916371448019612737251450443740762162459570437738820240723583945836397434319554121171740222705519580634106663951286671859363752370510833532654649131086989568064532178762324035523932684285754576702377219946066347751085088729745368200652434910217588869858803211334182660582681273647210719595066853853219905339610826898203540484999992860296822099291423594002719971395960680991001606865740361873320816254815901243659617202492166017806577176717737678679274770564647218507599666145307607592044580507840376009949988159277970202660572235569538930588737724398883249241268325646839473466453038723459544102590187355461224989985508354162436935946730064171490527795684806461987546428172829548224008697067547694894521426814291783675139256461385582312698096167023042764864223599123310705123850861675836890443918742755648678000867974509891546331882851491906448222525784768947006447709381060501153050747754753063833518015805579987474794980559236604831002391034616108967404490869452890713954727676187468195770673401811004753863190993062114588634014580043911028745698642426897769341603764570726903807106496360740224285112002952259786217727025581047994402577474085752234382046751211921535259185108560179565469795337032736495917985214412150154714976637765900277495948161508045871892834425759572353770364833953265132760293921169485650853977333263636539570272838560093103824501366826744665643242407314292219832903884351191101347879371104633574317310616030626264167146247599826577219301966591500237414268759720915514139053272849862362677067479371804220995009757798705946219204838067674474741280822722958221804097999835236933151245354484688144212873941543030475802536119512765984292345948788594418492219872837772383225907568155125551337757466420593710924579626091278436954216292349639599791624169055165501682772533199165231283352208213138771795606820318656999780600038324958555749332302660135320872393031816986398702657869276467431270356865743522266652331361084018565475310327584565832938979046526086387329511347427487317876125553645344815168076970751959025035248702417127385890812856587567566648703836161459632130247131051532180780536769357295034695259498125843244904695913111944644229470826514274713433633898821498493349380938960541482160426394959830797813415511445470500581076142287261530288522235084688745397988141572874205348576801428788672916412347700515166856780339851463691125560427278544434431188305458306134512389385705626021846959792614153000374041765185288850555891472893819630355977969971292752280468140394900047994679013810827703024305710654864717556678254978242753698835928494256501168517303049401279571635688960557841826846273337903054798716705083368490025928878038559117275446227545772792287634050516650281719693239337688896498252561372395867643237316989924668411746708639241144807159659424112117179326010973638739636598514483129869479718911003325832236340293844252205888000024657082067327669134401637143502135099032597119506249233661340021413832484082416598800458068366360851877943895679943143248480040868317219438444938705509427976157662590938731857300922447856615886624312909013697590494036036687173955002991363683395570626160695837268208505732085442652715389131304655915348351371618183449151580688707767365977675903236095577289717685457953692928137935931836412299254697780271534581257021991882173883872373363360732705618558046319305358799409838773383890125851911307888681152637956814645660443854965963964587468219553829129784144660433056223680828569608831820069812586612459645037328247143100115306858243155101611729464283052999280277980853254900693163890697628485581724159022221944051757987031107977621673117935626944033747088589929048000467589596740290626492151073464577385197155640120686534376762847573369747583076630872246246120515635530014238144064685375027911179371001178348742045381435167056323878132691006294840334194291438020685523638290739118551983669857492389785528044449208959146210363117351505647118376164648557544834937424129045655432873345292014217758111244158224777778735070784675946739694499556095981199556918919190819133231283566666987948740712312892006801992803805156532679790704491998325068502394212676117020416103085434892069399502464810619839444806236317879729659796674964621225315367620257205655863921946961170718989212199253390371772198922494355385238373950041707466926125515746114928644151636422872427097951545897461256115753928042832636795421934529040439706643984364186565041729443688742920530281553219717043038759366198861270535633300257388876317921871462841799763524907613695938029857670794730918409596361872434738841911167481648940404358475143207010174855454835338068942699779004283541824850423869319534288756281178506924449980934484913953418128881039316169923444994419819157338094960163466012445066017082941025280353911840451978769478951066305723557470677209499133948071616586468989799069054179382897344420757338341019063230295486033208637476623262412415358702414758838040786547626994408754338018449117868615910766652832566614971253027504240254735132586731987930660066591710937499558867916818377922442895323578190984779103884751356860045531901635189394515502635980568742855188156297702197754477695381182294039425091564514246134847670680974805682030111200844860728783285887223780530312102874477080229209141566711692549089548268009472915771643287373938968949396755541152719153628252616609745098073478274072382167591247353693078714530495026479936088638570923791361956813344567447734148324793898323712458735826514287901178177833821662196187878077139586142770091306754788029011702324351762205346011720329101252545181547095268721947462961439060859401475340598481123100961716670649993744697932937690868238984359665578145879529028745534165361392947269243237484326080800071779267922837880762535515375583677761575183600980380542671334127143263930040222365056410646076300632494963439922785285957888039784142281846304873411376353890938293019310749969047745775405171173750189924995478678132338281171852968789392804163443496702085123476207298797520780230181655185302304698398563395647037974611403738095496088823022748179270920143607343285030683658087189104482780140335842907006286935734636474257204344364709774849014351406201178588591122608635308287318361824689104299931023746066291497572882752660655134569924754277633152638918801205375412984196950030738656831800404652940099133370170224139363984522776168613608209781663400499706682672708899357722448297462936520083214389518870317383067247197567619404484042699210039406326503972342583256711678558135014723224631179661662754565052418627187923320530603242792950587882625731962581836275754898246558009751666019681937041569466348527210441323381892550229229510208731545621187691466572536123756557509519722892476595135323394615906364812223746507258548221588862858420502920059009557918277418611838295558176825834859085891239082314160239743722402636012197214132303262042873000124262274401112680480009421635356782247920604408767398445345399762137440967577928785019019566463577223506086199086862168520031192322070107907464681551769214719723826525449406951816441942257127156078445874357598777288971578287349112150663154483635687434555893426303532240257756507225325734482971569554597281015451390011272571005320739858279628962204466674504470568192562053357993893279521123220124135764081050996768592213780334684578422548690770418101795473052650037959262794303638900630684688453622760247224022907047519317342660080866153316331058075738516525532307453831396282510675654305371917685157591145172511891121410652300367430566536279370881305066301769217736108789568153059735143126622926582519297019759951945315933896508190675805327001461405165031577748518947543877035016635926768216246180469542443872122945069337126208723838584565492975032429278234018847856191483905260153638756704852264175230414050291931872478453245603332243874664357766902485323436774838604227520565694571530842387875798670617654461051120645263261591881264897131743564362718603144239417034448414127352244750426751271064962516747792455049941819956462249646133702489027591368856910423517436482006332120611858056990219785116864802221912676116278119944621058594396205663095477513263983129343042677698595529725094742334840584421560666984661689379278726006710224345534134563752834033309106708981624425922984511522721088836629953512223293671731478432427778650004822759547237435729320364309478707078496196008990445844068345598862951417186176345307899668645403617613122861825202472855466595203729444042080973356480332841554753175779365093480766780143487467907508957880583656840835716633413401988906766336391571944645156796077988791691190224445929220743074221359936405282119470053480486885820685558741130433110348237199305676128738426211036227022748713218152630442966820519540063318057655223185704372316241960684968431792340969493500692258578188432114855617673315845814934139015772497603566624678939370542433185425653396285758290670628694340583777607195336636426210733894696865100525277522585752445752671907430822921251882334659583431752677478296824556472136305770659548564185332145358299927028071498689235626456191945060802805969812634811722623791405414456742770055982971140575299154814546944845932858608827737860812070585096229055642678796526162697995839255986408753440788601506747233487737462828303503650124601642425382572338180113142115208455119188403316836818888153630151867083801016973015226751692616027530967372725848304853881585655241258421917630357264065793559098992289127717628301802736115307858727691609743339291024995867016087815202007373126945076471183696441853532966058642624379544915421619956989376065494181889717714756482884784349097371653625314490657296881955073892488610549920366811836153596921784274888069431397364957824946866861670964075185007608979549244501170023958158568861941313601084168496587659945858899672187180392367934423244379315449210465040906851129876485910761235614268625827128654070833319392055473734875683355800488319620828910735540750594445088889954872137271210557394731246032188176919794246124862569268661438809023244582217337924084567048349772499582319701057334581131596653169496209780327940781348193998252415636307019531588993725110508446299706965263641841185814545111310842738509474451494500114600037358959977340312577620783800027955450015660179248829430883923219352275221170855008898296181363318971112695048354849214196889365951782535607591332440061408786563291149198807593506926356344849110530523654206843142010072887063252815556867626318454938334256534423662180427975076227484157734718968359600242455921814434167383579460904030020388977345010145495112984861297943055122558903606129396996481061577883588309108923702562544036597412735277422645354593109419594964849603277180823304374073918986580476149592422616928039421966957188276353439000932106629474989744787846412129907635565795976320722486845949192536327814489521876824887464041461114787412323994537929414596372772063514508480524157762228926991368462695647973187048620305235796124640368206697271266103613584857258053149745388074444834670722514577292074524251772711120752231003573280689458900792859929147888107251052578132756778994439918883883525707224892239093743671153565143405397447283829085455140743098644230802309550181344962071807931781086699871193497604490184518252918475758230638893065762898748242781602835159539439702586852270463436747055886099151046800390537679215633703889031738773382359347277785379457821638876651423865111606625997875346455432878727657055951531446056998480100089115932946657974357422884005173621359375373593418829638834692913495825837935000292040428666669549117737246801620737799835075795278717784431581064990780243665256095627739416993534201047817252245035335708513978136383197052594849899756358416014364761786368652163562966369741040315096972014922896762188749553628086893612779904990083071843236328790314450036138290033874616579704916725781117210319602014377636349738392048630505403817350038635190392742528559541659738349375845950979425884173134728342476659016627019336917584898702448843795439051863621114352515535291153044277015310427744292666127852499408324657790462166530886525804601371757268507662163543530246983060579898665782720692453167595430866406423846761892819290745513144017770742137864407992995391873982312636470982296431182616035900470851903881223589369703167881509109113658985553094684732994749991540574256650323850670265403372943790388819956642332401911933180099251032918167799840467952879398040505885195488796093505364440742249292779467793381151278491827792537297475418662565677843302559097719153850060983786824161849218394467961089262245455646962198580762296285679445923819853549952152387342302481965991729725317256755470212589993456223688724609528980365869530211884068562260401978747782234546968383499158418300374088665833887175219681606996259734671412208112136807312981648755809978467128786726298944945974180282147209928214048318838370465001852441645140937310265030824253267966325926144648559583833406027493978406961776131395827390288524689419287109714643909705204928750683971139236828188612795018422387747970603936256008429462108032690243055904160989996067788408064094092156984785477408758256737575433882686338178602347968144951341175679638343162746345001072416865587580767103007431307390758143418813310689157844808928293273705019098472396071244642002969709254282772900039027367538037563418321151846460986475641476931745008169887685417495921552821397584645128647885999052689110631170941258190567983532875861980819214578352172204750029093219856931341512392227415947972741709073132294407898300248007332287397752742154256669218347168888530740361712169931957969847173262073679291988354236623477828576829478846214870074793527366133472301507011471296909085556737149099635013139166434273138229895593069617275505960703228538702945384905144946471887802114536493371260740118467391615296022870704852816392749896531803609016921252965303849465683593674392919423411494721092791933347412144666386847145531829821974821448708734054783739961195383379286015584231263445096341417273680052507643608493954629721552322490299754303946099436533061672578034674475019136436933782075116688512174047439287207317386487293615333405500292724808173578364982723765223508817750078096153526154890993909318448309164058194765029960771668182059545024064292273077892058911698276422336455907277649200387643963986737702810653404688115050998433413148286244272495557353828892112832142058697786289368995631194181172856480566313094167901569501265829195659145075972355802516732869872591138233223807179453715263080483559103315191060813479084268952768986395484249585574170192516809281061498597895945873144949716599017018167559754588705670646284306279687847327288055249212319094074608908488882489864077891222208394855420895933040137309427290347420920796175814133372705160438620546696716297400250962477358680152783390206862812944930781670046994111195362615322494149160839676695276169537111708589495637192936109465873860121618460371149735580462117286221233103130823963418547571173706159309009129941536283983893428766721452721524717610972356647442104489001571397838239665859361442612911362491142391964742456303035423600061774176456128040160605699756504189249305522254675326296463499332209692711291919010758436407828133583670202192794796181697059274519502687718784941875668908678424515668020548015283128947652687163692098799129722158057698937627063282242189537419205682613425937980372034618689533791088953838959051086892471807225787007820814010133626947389736756268548908219419445725381971828858798265274779789282211261536352342393760524668579724672233366123838017107103400106176161837866982097382153976635302794470943072423861080291586986074176306608620245012282296712421205338423046322439592234952862362277998093358640426025329332127582764098297282624528004977708972966033727351201191239254459834812763753322231754311507712216510370033812806174331647855861913209559229346170460310316749885337372011492065706046027045704976643769939199028758197756015616035233975321530164810724934141350869268517518452662654726812103356656021557641066754898789563340604814621401124538763613673484063031670534062725864927442375781161042144770958083440602664112948218990492308503350420912534121211290007098085515318030211256302751874839615033573315664088649743488071058774561074244553793960428847135819200241453757937133994284881459258005167053944959231033941456510819752798347020544800391860316456619770934183630251315844458502979476009091641977480082696813669369548683081637195899216440158034521999900701007624262589538787480444790111735806656007784941338985860540115326909947056968577043865385446652174142190037567711376276085728365469629168071861108020334191587184944235641128355744544560353930794942972299308495407628325639784594651280065373203554883330396949441105414012237401430156046968658853613753300170646767667163861147534922610951037421234868630275400089904703436657183609423385925129059001516663817153564922110616102923574834776173688702380256861716906029211173075104218194188856718336351493952712436678798417246587532280776235678881510426817070538608336621625051337342971704762687260271489902386544743201707277908088285192940288019045171985717651719113324864924733010423143819081260332302851557395674643728831873481139893403542253920878867364525216206385406883440946123923457249374821490788704133654731731875699884048423025263435597231331527448291021693273046670238217586673559941061770912705522074631513579539490077785448571105052649386081097146083233414414374087871167167424673421076379463331060665393326539793668378440252441245270029073515043797247084680778783379975786146798631245681629478801859278190223487988466534854701750833495337695533043479914780909064282650262244864250499454690227400122771817666215745809192665815545789449706026125151138765581668361077625221871373978408238573588455150821740952220915829292388298633813638230252573877722290718503328789034132613580532821919333375832334819822916014412885877019103200037684302725943044639347354054528301505350362578607206747441139602427061743513720847235358985376089338256059617320227154574436535685793793504712511046917164024038281880060671496521140381491570625520702990517162856857891941626028152536407130185250291880424526762071352282123852733386430278040748574889371892489542006691914926056791384236588838976589799157222227821022849253761369638053998234624503009456121187174973149053679147317474398394898233464687211406974083590078335397071178608327845362901669579475832482874885053042587964627931562640443296218582336555361218721650292783256037965494901985323839177113140814992423000664621358181840009189340440883810252664190132724635828073827538296188598026210182972438519255578730985988824458210224308459620377503791649373399771746912365154474521784513072079023054375864576223802860055413126867652670687447738724269851065711231321456156595417301010000220034966060472672327235408070365159842597907540740021727374258827407734190013723638920529435508583167059728235341185348064247057832205101915334364796390518378336382201769124187961753850231464172200589033236573859316073984225820830781454136732587269972574534388232710502629885773643731046491831940942001804340530016554355807236033028547853390066193193547391547938966775240364594581226455946910671520191044869639860364782335589195118287166724043813233909302640324149279984752656047465159068678551195625374552360623812635622621055327116810500862391819604099523366590321024589130097120327075036507605912545424046635993317560604049570366121384090403700143985096223686166800516630317567467313033526795080781161581024864690574543302710865562351203245252991167108657500154540931956975588595879254857904373056440423360370977506582610480873198296384620026855786000498447566355871410051847041743466409355405973187557704644472421815477720097317306963731350101498530063347462107893167389072281628670077225003981771091227809996357786245799919451579746974101637250456262616575002948067174406443042453585356756347188722291079550028970516497172339479312496463076779293196696877918462144973132206446632980191276174580781072657401198243704141392417227452877514318953524505522727292500262265157240442497146355200559021337750506592993956007349845319806919565180252211998234092060900540310631468528066128474481559983616071259861061973533033242033125399375513818550069594219129400930255950091253999378009083081693208510074662412547897875430872699707787589781691224822735738319887361494701821504636754765776648729796167014097230133070957928252111451772532341469830109190201756364763809942101434995699250243940788683396753592596460180454234440408780313892430113237496919307361718099802227562191815914094989924398850450335207287298875161343529143565640506611293308570981100072336253196539727614087451781114106915985324535205324547202491633062367333777765799088664475864704689238799418954593836247901069697261458844310349706675767208349928282648351229168840294916099332732159524602230169385019615295946253708270337432392121174623243485088792210141380694074846426106028738484042301130234413517180949554505480117507170127730730759783244637979192593873301886424255088818390788232735435787111511232131249766433495636935604361249637112384670009322818311526746312092083452290788005556555089503942374757982619902865889015211734253283945164315838065132600589738602282932652619840941085480210035911875912107392527613603711268344688558198753522753251659449154951076511918584087082200962014558738837323457565014484539825093173914615456417680257108303778244783810136385903743044363631491885404042296672375351006879180502552558929745768867728555393902873225338136626908534351685601823074776441312420980788741339302415925568800272489896514538391419569033853958158228624391758896585922268171269213047813700216947882646759593684169108542446312761305043391561076590333984758265013666709675502934164336829148274310052398814494796141232373575183715744735253758691162266388401504800724666299938090850014168916835886233806093614164488470468447522220884835012819976719955701849870011505348133982228454739415351158928415561757358400957732578315971442734850276378311553990638215731963382828807119788493293521079519653885497831252050602112295562177549636251437475917210802195900919727523017955473980948664029314247783421716994786942728126837476135648034372956943729206951695078920086436064277869447991341080758234449698407956955379830918218652544684028359122003418416000189016424097967782005633101497770843512810703673884449463652222472567212099693385844538648101455145184357468460063827900686371782506457595015231995324986367940308285919273196534979494013191608146301190748438527871989369554884394020668884000202333543888525651910507026028414863883638066452126165679474158891924742851586679887940517679732749691753149025498668969327467252421338332812219845875643370399698800129719272695168415745906423656108958089347752808905875267482495494214867958634787836485573516347429240343862049193427582912482959974747252926796644056687475578244729693293086792007489935298790845228908995869756410091253858436383524804568060625980312709546145441241275437470747918325890950231225372286541518192463239396006698172029934204758444233283059887634697477724535782107899190388901874442001339189715473802835630800020303158296908350597747510986470717308161486964018545193749830921605580681268391139295007711769722000885397245401539940412315862353389081922112920068411040122934071815238019513234538668373469538167938028600851061859879650737030457517644830892526876771654798464576203009708591777672283362024370393042986177249252397524658321496948042923072496040707603594657019653531718397833881380792278655547602102223717350356671030768163993482458952757436257542261742998867780596807870280913423262242346314575625911290043063970661929577648692284115311378592281935714724259704308602593181784564903368626285505975927545810596816941195281905430289172652368089550337278564696271944276065021904924713889177312888911847112731191295294278061732963650438557825103903616196091780239164217855603723775288173785064852084496536526197677321082733212893711949360906446721180785095594477943109664024519793538403643642046538174341386328476070763784027274780431015420205464530789827473957969355720712395019724462743693074255526028000298626604454295228171554302350371472323966206881708476248960825828932054682550930570188381952216895997749478036709499501010405828548698803365900241928352415137596819670969447597927429721507201503558828454045841596975006638099824056750253569772057717451974457044552319203311135489953832322471019703797919249477631561124471874259268942123125993289306213096386875818895474657034899021949151131848330157944676636472511452016749255320369099197171200902549813667350508750597262112092907285742703774372195704687115653860517986604865797776706174196242731296181378976715433438840227571140195177148978722661097984668708609382306658297441826420995708054449188193314291125669335131620241048341599057251683543981346409879030700024107510281819710378795095650411557652784160144744763277838773550561843813687082324373525939245939261326730575030688227872393057952247921865153103947114151814000429026495086571079758863828825150773021202184124038611142010759740927907928890913559890671185174797391383968068493270824019566353999514464566275495561851850777832065697106137552845083372472304502436626006705132466969709316471552484832193368674680180733431704946780117901650421877073694833649428456879144865279988980627225850057213677379871866597244873098554980132959284804137883491939704035614175368749562313147286275686985892896094442221847574325839034831225462478698979573770638565377024986073805842557390201126363244535214118065042858114334204597007099813460321761572188807874853095232749859462529395243579023854518758229413227698099933394150193852035076561847194005468107500783201095061529580680058651920672652723762430354907609323043610624446187454429983347846873546263341470037365364676381520222063144265324940035754460467654063608036382206078845958907128069255258245467328124076391373418148431650759838983853724190935359196214340805024049482006931026542719560866543038261135596677030170530310130613615052603967791598743956802802770354025052601994413095121472005618127717386515318260682147471968083914949460825394536313934667102799378396170079538126376791717710424281390911350764972224947962064905556460532848227438967786695002232299015201406593531093138053989272078405707703548970272432094198592997129015111641382502166341697174980783921588408212620004617691800077616849259631337179669661980452325133308078577996565458071671918161354120446757097328052198098872085196165651761438004493445315904956170887146536949930461355802649601636970327621554785217521272470022874186335360000210993728100003524891727002802549705291524582544931254172623370487458968647947131676571359344803058015991856676847522246998859329809622547062033120393481158430520729869665239510061290059126387588591738624890641582840247954431768978264542085739465698122424451660607992221083971969461827525282631534213366642709789159757087258918770224790815634478566426071638080304311164208865264946522161326078823051200815055329754725192009663891785305130540983412511364571997010028203694597029539397174823528906255084502054287090972048326916622391656021963306030575909053086500117136803631980558152017206672715016398664876977722410246051684224577408055465758557094992091984113457124933874774747958213815283406411195626873531781215194837440455104105283710595098150247481276202220046958919750797527544788881400590464022471806977626950081506966141938484789351253435073047110689012297913079508337771859751147323681025138586428659433996937146203244120271431171488197355503377751857187865948482810119197016409939622452948955914279852227847531764722245314386992326798688266523995755692987205732427363523417696596603574646333780394631574380419526997878690033096305578014591017455629963934951754693490511345478965515371507810042152373399695207338736742268972386217429730243562386343860427812237051634823641080886425599541016852336957866690572389630014940416020614224965470921311119672039411555301528119959229079552993670185576947428554204198217785984711405166529748776161667334576445043163084664838885607096835620386071130605058212795824163590265678340916272357807577892516527899177791477131502772640962130382317245530617432793937396999519155598243067554752423734282362498537067460968114395419307713743756761293658559408314090701048220372729118584555123752321522253812576142974147411945805438492320266526447933653690919306026848131204011270952509326998700345526965231733936155909721865740824611288576707822651735404152731616465829250998886597686193450249528557952906750738026635498656204942680011864305275801220581597804614766712732719100688539045035300891344410310174623382246177890293087626226685622968461301118068229585164562707959456796904885829627339229335074542595246581029514183413121453506760833801104606780007127560998083514284000771611436962435460646026931703395797089042541518133054177592936771643111372883627969179238648363487236228970716349106688578282607926786165645413533561709805104925123623420917811360940596490398319463413072900889195008721635786613095199451158627005381827177796042360193701356190396116132013480944158665660454003306025577103715116384972366344115958650532308534122891426045215543848789593281961428373186369522687232932224044637070651249932290111830170285109042163997356283606753811338253691666418161137447073610329503392413218929908831653267928411137253276963086782226448768133554938336258209957134796457155089511084066816665629406427312627267266190423940964277608226547199322985408624109606922956741786749127584152429346347112544523680508521914203307739129568030812537098031948609203641908518470908395418171172571016387119679667212143603550987962535202276787402608982350974748968006822701560478970795472275550764511289112216930140150887245392460943885566914465684363877269723849208747685199543698361975030466670622799214609979911670814963399227142404956215614001597458699144663597534590084628744873899885832243775282248764295044794344263947701038392832024278039139384685230407741404668057109076076741452528571873799002647906653690694231265015121898080256544316904811329636841397166373337366245918060059767635972343694885282219364890286834234549498009489054060448553472959949452083174600508921718739733633412320107035094357554162707246586075171790347091590476919527681776686488227443086602757841799592851278979768197848136045642526046508860803882289929769533159421826004120758215702169216466847697535514615259871697671869108672534296473175226219277055964950895057033522898731956047144773717669476194670047063933755094960133589404937982872518407576310322778864454813981874807295995986281756830861979524079453966209096760152616964393177783893755354159766262964536678402349866299551032401463747626343964500862662477386428683880045126795678369247520026602363007678767035232661863462275420260826258712345666428123114458636426120299002441750321536506655228511809243569233986882403410373904296262762412741759178476758209238480404424104896827938519594447041081300395998603595126073392303231524755813275843934844839216550741940882958183254835293910437872424489239090414607944240968985173200624888476385804743374276242593722446938695289403138943822116879752131444137894477125060146684492337520631646616187869922180073909594334357466673027831096742504454779071491658582890688297873712259516614077999257195906166882784407955387629689433240225835842368103599534241045698233639490575641182389331427410145737619095701064027350208077398623060526589594622912314209562016932150702255840471043391981500821682230920432250215592280826820898293158593607818574706427748237014537347764496914577996385897523802131936383913390470820236268347199001973613760247067555736873539768730734636080782044034587580597844483394276473979918814765452822312652519498734964073269228151782004322560179700545502373733938027414583847217574218620395781944522938906413386347744963663394918634458028960323292270282288379488087655048371919632386308128406610936256588052932456192198213280017502374013128844484372256617125410246615728327134113029196977912182547152772800034172604029687323903061164730693182611095469741701397231825604205141024461575746630371820054334528808074078965988362763812507295502877503422772799904742616730753305912924158564195605143151828701126281451366444664675513796456724450009888253232823472959234536763604976363846364365874174645584963012396558977879702349231446726326826037554544167674542093294508979902818224132614328697184132168992607699423775675344049718706274254487363864478345662752268748791933929027962937038437538755311207320147770260988794783523638743235514944820223742704629629834575675234092124004628159316709274396956201546727224536170081207612712632789555886913086176241552531585002207852876105989665668835569562778447866094911284796557023381474845666547510027737441414162786621154910794226101752114950417049849909886767155287710809550263113875353930998982608199847373623488798983594371439354261666406816211421729843811123107061074718132123118370027725865268682016141982472690784878479556183041584200325317149324883910140229947205869024371603675290543598725892992057568336266506978595670826490062653502915113784188735299777427993363654152915784469870081209008216478922522820897071413695773640143879453710398846778993548339843059600139615303533515431900642685917456077877134006641703351108437602254748074558452776311907332985466052832512348344879708756069578962328194004029656226969784607017412005448091630523702726187422102875602994698672634051759341008584423715628095893324848789536126701028905768241695230400913706865527587483732682001267413124141327604439852756436165971049410867451838501731925878712707541811966330769267875962044125846504823465809390976399444444299422729531947834919245849825402004102585884379144712758309418685747654701457191227938755732613955684662842124721574021145724550341119507436530491958427149326305755173720366720153166508422267391858779934820438845585728656182030902726215077298211933242267529601513311306170469331367310816481474376341833391249719559538753545054676139347694169658373758819845262856977134747840434659474677355509330120945887346424070298704479288725665480176395683432593455187945011546709916231270400138678554497186957308074758938398384842747447522204280976269691591346433112068377820502950125445746990424944684153862558240459175524893666196971437913216069101797552562234462631220825693510618323760510752081876162500511686458050370382679579601432401455534084685241102997527444005835799271912782260036596686088449130731692235165994781526854255823358005606427524853646930310285293256835961465723061901459728015514836758692581963307754914562485858639835179802153281040602639812693350041223720675907564923455580336274559052180489876954509779213869223992012270263194565076222789623629006514930520058566719305509359550628372343814422210939036823975171795227043908091686204019912539414835533469733137274099929637486419682711170189870534713419290129825208341408374190829006072547979077026787723771871048073126419109387237178678834446626428403361187034746525573979632907065246683899909047903794750391588202088784220974728624923774010220793855070658286789686381315378548557090650916782561776234151445537019859123235544081996685292701750175700600275158411505825774301137099561898465548473335504244754422425150604306851458665523277635917303243985390905065578795164968503368102309158792430611987969892695044508219594531356205254600625818456309932658777076340868771220106377150756369372115235034431595622631039876688340020049229619036495335548011581037165917021151797517644281540083371150314605962406759446112287977902883126220842449340079108722765257099904133730364883788547360643100242938607700283675581108726460301708905468717937388366626675847746113511882360216037246552322376249859590351886602659520251529430995590543853276233932887193630166488954799461940951307995817952860021031492228608112749317892949822750021201317847883973494656722196282594690646462318958734725359380008632183416909332088960711681509396301187784489494753086450507426349483695762286679974461218951372008366845747122795583201583516789485225758326047870654922986876656879448296821685710626183488124794522105273677329017334542459491044192042264381086641928792711748634505773731949087957932522542375402538312005267696398672653143071994194865998054292554805611591892797907144514354802033016288725999614495385108912648391839231523779280860052058397574970999167694394117874915761673972278014572932612207066236515884348357103555842973219742261135791462559771025159161040110310212416607169437239263918340588641760257757148998753192276194478573172635049495784914633602754359924476730225795801138938510719545891981684035713068276302337220517592032647867411229050489781333714506126049343531469069777065445017742932476709076456350670561985938344638323048440090958496698242752342190432765371156609597397130004067301654597253494077683907229559590447625798207285619477285601820389069481876848519934057483567942191860817730057869544581580847915691124843322688835718215788301933145795649809463375383401817010849159434439864185636871910387896525157446000692566911191443178479848071421457689874488417486843872049283126832294882467019669851253192069309285520127035381346877131861140378068929334659823638634416201315388960561247075362281619284653902684466723057624628288119352576938167218806254361769533905274894754605827785589387619980442741579186454456331460185193239164317301216004606135366115958422976878950107916298065780202684675099016195642277220516730243557409373419669851751817332041257452626950312939300219626114695295743270017546773872072408690092799889907970573309079122874075458994951607800509674844313603716040312708431883735027367917169077721756919401553304830850152543019935127105359148968108977755753671842465885399553162737344023112326703008854598182559731549576240168106277920732996993818753440434624863725401140076731598397033897137665616105965288788748171654421871744337226944851198790670804591860436031289721068673133457078707970792290845279501884769291959156256757088478408502751943668273723132895526581359720147957030141465887583477752564586737327718831001620921691580392435294177788721085004323096255232447877143725989510549656815089193220425531680200097815008539463907281399241565774041850346769629960791517930429223067491952229055651612657519520124150036862182693989263784724088475265883246643392865533968379453619934379367493087231046324372625388355281106826085311916563757112359137275033630544725243206801079890280612025267152806534264095920957877249698851136221543514788082025580849936999501612087340580349639045788084331215505734773964785334758025826803236020224892510518561407679313033115911432211856990480817324776104818624288400550397214685719035340388881253381101882069379662048927368486292541479367014352711571577676663938689832321286904736265672175777532380662297423856571196386155799904710497346082134587186868657382826025269622994060863053400152589531286682596803983947771006057828258744930495346920330590382329577381779206378281770694582952037732139414844156230078789534962243208791761116053438215066208314039885937302281060554038715471278228844496092614936001119654120139827314740367791864749236762502153751719698994237370634266568395615782996365162284664455099324996446488074560773605391032093495314483272005551365044256651823755327655129734006077692491964655938059290565431852667244951907949100926467886578954714238196490381139270738016885099215057800029821577033192843833371405096680518179968090601133925068409156890157326463456906300013269001552991172302586164724714595280660353019215036870514175086283807267591782522843560458242162970555718297605181550198526320095045064701253829145065741600203345574559497036015763307445982899618805445247646695682816220171095994858640345079737411422805367017234534877611437509464165785954740907118618753794325550865975797082584894827687536151273898124855431592634357752237357536379088991471685019246964605106777508270814738150868894323635568593120458004902022312685330609718108509194191207411991846954669056889255999216079528545056984556093041128218690898896109921165128067178685809223334769693255461384462757514583699861257337019241880983446077610592742486745313970989509480181094706703412677050947406105870384251513325673386077806680083156803660153284031489005611468028567940305251780141815160584199738710626662788562153453485301239397053235566748265233818886863049835102124939880732444126029097947268486522954880251046935338562682422949507355357993827403862468232066628120682164495384615103950610963720651924785752164378947464788345709362704713734253707499311589905002474904438901052866096568932112839557616473674790450079968969807135515721450074187693053950213691761614396297182403685371784692054759048103467310310982073877850001839213360676109553584422493660376604927275785494337368979573602846812946030585345549472164030983212310127584466372542095828077218877139338242747082324598437557327926618985612483631587450181615749572691921689159245816096997703521714716733481391105620011746108027397726116571839944174724618173209233806225097005366736731950977263135063599357541676651287733528051392420436020721138648447882165354556377702841348145734376085389367733149723794897275251496486757172447595875663016577134776431334387349947378756103093448830629366554139434703781937112295347567763432079858782902260541166382032665249454539629807769635470855430920675463462094978946876450410599824353404681647046449487906186448336964806840983489937496027293562840352853065668568794544141745167034887357332289627202851963784030620704656329936400709065875384706515638169459927923423927072131227451790719481087117129767060616952019358599974814922021068234075506153051877123301889143174924179437322555600563806919833760063312257242627747207770016189776054382671341010951480910489708744340214372283253081805086391280547577403575643215019707062618995218352923883211421443732469175854831305435746154432160905589316783032056938442192731092001545155347861063363151387790973559442638951900653205083103467589558388216887909262957357692110765279260401304476832273923318504680520888100290047828014798222391380259856407693058375682640746227053354317400038803903550378590607711979784911966479194083984750171023600430404831364213447914846935471317020093932993261353045452022226598853571665990457454960952849183102728213251768250438600852108450465799905221543788793094731469873498760779792852353791672195672249051748690323531419607286475338033586564583581176304550527986339418741688104952544065173904681676216440434930048865339334533422459816671980765832733574173370145892207503157183599874592750099649638374029843170103841756553567815516953166428928384416302948702044530783322514334144602048286372070525467156222109589377399700425817944083929086246134024364184192887845822385583766411474603595681048667410594475025872074100489950190373037828577294132359177075066197448176845739887922389619161961908049185383446691313852004692392955252824030606082722610203137018433523782724902343439453243461688978170262850300630911264476889986750870944895304756015500719728815370290314295195846071939038185961349185039297168234068027812995026035623946983516736348226252197158132446195952005919741100194323441317752638418562513013424448689420731661072785347253661897752407484862335350562073298419183883697900252002281483565429315864085079206355924798361013458839981986891560163122281953486288247902266299198428686412586832993385343181740409678522501594292127314541810351350972693335288827733893424888608090854318836061649261040936052720268487315573052590082892706742566009709917234948740454524313132764677799094679301854859766980661210373879695369838702036616468677270133359252892861131846990280985265007181434992891981962833781641207049843627284267842837063500087146890348424047933395153435511589519078459430490574114370383174809345814141285568636751467107945176388247780900392049086774902842986723014467630817293955147854021727448471295740252125830937969565559254773928681900256665401750945746220617529343916066791867098433267514415902515361724203029219250060806523920332893888857239717118093454201963781079641879861592480389527675151214073725310601789578459571109341234192271581443268685734800607862029011250014742733139835244743996710236903672735329687559626282323466803947811091635491273973401932275601899481724425694443310470594743579716960157456588281683399082940015579702885398983584727086063837928643941702012313617725001256937880429616045794431133203250532698605943066749001406778273224078817242021917227053750090087230914498867832622092180994172476439902558984624597370237842168128688656085588759375569182445221931863913981597598403985430772216946171718147958434218718590176100242309088351794890813118665483360098443403833932559876732004020912246605244383085215605219615556832441542468547540582335148606938349498791727369308799509623281784020865488588982196570984831929254506854248251801582414283781072956763294843050044456332521164024849833198095380633365713002269458305963532979584350768272095186883716979294208521903649219601731764545528998895190316717306665281399446984988734896233037193049742427306723343896034266980292283090698879512790437678606470760813003416155644819102058225573456598621640132810384815888729502960479672353968678293048948451755695582734420582123688268793087673649481506116706583183730098906443664213634764959536661881561924339710101661270514903864301235905194456329165391732045424067110364360790918112582520907021927338728710424417683305882578336828196780006284552156305192844313270404601417554013734276838982827903576053011558027388331517008199484916569501301900307081357382327346897717093640921615003987172570796305407091453884981849619323120024580121073071656990032171063644451012079114568839364864425875258032634384763701239636493943893698822559053616647523778475596179798288785053591935259586957039199008252020937536898377822083174927143041975862150440719468762073166784400308208348065529071822623349469896404277090904637173884397300949275713044395771302390539626014989920732583311523918359748128334049351528472580799790641328597887613929777709089097395949596426050762577167289456466845414412382768707745883397771786366150047324133808215416135762351667166349517074933901896702164785250209358223880076632001984983969415867297153034426796723336649634220739831249191718239134393463599752725035279082925550971304781461238588721541653084296159510544988369847458782806189682663240233679186867230522887241878488099366109696733097283709708312624011026483775087362030459217462917959976186537944292468725631570938005814462140737707474959503201131359831209509953250844271024328287329197983803120791162356100953715443262713598342927884206607959299054592776104990369288677078958125576152273338911062725029658898704145185188264073422012692236952250680616636374711972864292598758006574536537571820030656076695158890837021315933244402259786961647327692667326439563377257373878435403143493671199055081054387920193090087565542430334223389400669895957511228102640560303626060513512004870040785146947032238406791192680598994644868382363097720326650931813458991401758158473420896472175928161917043814956243612749295964616401034889853382581935607157621592384201995915500743835354103203320060830942141471039665933750442188318627794354335483104038486946936766294966236813657962885541615449392104695508610310472067852525010094593941264934799315600339375542972314367030787318979657690700061356523516362151544872470958338766215755364839694474041483962515001286640744863318794758735093867148101108711729684982047293823908531732420812602896727179724165262010541808631880774950172689836798231522918087612754983944233339197411592078265642596307296387870629549924489170556668158895458880747047725846117056447309886927729884025097898836698077750719730754106717435109196473846861158690545225652300808279862397524313570076817082303833940770872080317875888378513519947153412135736680832721326357815427274625531127644048337620305368632564728235651215767581656241314381434067710768674609082529632448453617136321033000272519595829089662787826924207768531952484186178029231634046603227126130201609984453823845251561978890834283493138597563006958506678677952636165040691933631903394970729924733474259146051758361741629770436134982331458327841079033949592582702010430425901106442835533164524997028392057601062541576207831014009004426970516623112303593163245772760765952301598915354554774330228486314659371948318247726174137490727045670423483889990605981154534663827748616061157912997402494479544644663951605834007510048383872141190975135669719432432543657493007257047557804086443362753506101702134312609252052881721389211850677413542534603575688905295121017604730380153520554797063242025324357996795492378829469944200825149096591162881463379613978134315505704574403176754905623962746944970608190174501591555106302328065664876422748501636117605447195172308111321515397703097655456430916678911088018687116514704839561867554903321813835346028994058553444163798765662923060478534896606544247223091280032543444256769084165382967899634180783332866638678426405043695485946587306861031135841482083069075905388781578250080134166247004035263982380088938905155116991072771599738306642494902791964702452248488685923823369955759355877670250087656788861526741946645833858216632663469613991747606631789787665232060719164531633418054207533827513176515672362593577745553752696277604309391604814003354969241459704263014888396691317771562653220480971680821575124104115089688664783310783243696436505458318612474049638961122349187222559433822387133765969602887345015495460170021405303960338503151725078561089826412983269928534608061495499547169241124017385155930342183234954082972219501163027144398267007109067047257649453126287721725882651122798301965277705192018936594318921441118632637243877092182923513049443527047129556997395331855857963259605594669658958805926703694364252881957920203685195286335861861432070659211836210009526977867973821098991740944518319247340600673856946214663324250934441767267465423213851422549045805068822451257622867555283732211702447460502396440898733446582159576976348551276176741620716082659081623450260735034351441951860807611210589143417528305647397777650557897419031986817052184154699206202077548348971994442557140584385090014351667404174527432322500475569040696725692205713162902726572349360804899032754425233141482940052294432737469338456473406777540045853988444077043529362469333634854705725755049737684844284399153231750617956950586003215448213283259603259091087634352961597922987393414600602096007502060680120039290392151401142139327562963267398395053433804706235071722206225937281056399888563872059554232400704422982469656059648982435233021164125049363068997552470277044783214999612120504411264043077949888220587553938329450506937817813945275766506755762468736056970056446432190851227822922764896467812675602897476563673614637910182400590455835577186412237729461807093344740043072343309824486660741272805886484171922071953784453664417353737758865416718509941839276954883710013392552947121963132956979312916861241508368707519259422504235820206417821442982161596240613873025169417702902465797646782649599477999214425752934145201545020747294553247468409789632134112219588378524760270474268886827005601855834786580487687992081918187836332465062001279285106130946674209069365699778274631931002056895665272074655761024928019542298167337870397601021774895538146182264195461559174839312987037738805790747862721500573796609620122370332677781934701018677915422834573967150518437557679301555521967254588823787183272453253693162923056963672857836510017052432115249103592453386962478808513186067803133797803924367131976741780384997619769330518348997969896557222036951750953413209687274639923094092529238438690162268441249870608364405910742707178297329715038620728341918262488686603076850313548858058857862175329612653571384862477775109213965513148977058494005077652931710977058144939255328715774736940687820256393788129189110565328083455275310847665973072477218302622616992872458770868550520822574713301696184923072352469863925232082887261127823718174861964458860183017450270508569574614682728688192123045656969343042723422142312418124877912270768592084316202615996948742138104464265950751255019846246328934010500546407828721568223649890534173964063621883774266100551177315523262080571220406989613757191090139685119873697687384978631778248654148971878853642999089128207106916107311329362712167664823753390622351558199745156653169463375666383659557598607888980336636208816930469639861598380899377807348877481739147644654126987475334588621157087642266287782837174058524042665774129648186311131946484486786822276439404770692983333375486758749779122836008604920815715540457854040016209515679069480438884902649239890077999991038889476130966887617189795975412863418981373807083804894103538072837607778134361374909121041617993848104429292626014095141788839601086772755278931822276380111919466631289188826602671007502019408084323437569054784323483076301278111888414364434019165245374850981400044869181296551673701023617474631134660103379453544078780730844986079606543503405329782396986351843017055894734668820189828580618169114485045891859230985258099079589975863853241449473617877071240402122525046358454856703019330112077710399437247713091944661780879934067401264553294054661499379603793069183426642006718115800907479084874234607833240025698531384117468435697650373142710263489564501430540284613891352128902231137681795671578085925031906473056080722708958355199127034717484970294422069134894766971227139695337074855661964324027626946164461656435239029750736721063088694447382880160156245325019499430925748244546684780553380700322599218871552448580701639428663435968596694603735485479700973108876639822015078386972765346501252679442568906464009397015083129616618299762541418389178150154446332455595323461450600713326690564949919787134377294340124528350945509825354945631920715250886932004961836038423662661182956978392780873094379001360342252390997933247417321200650562525085856062694122431637146498856596243162344260915095698890318886945996798182385130181849214183581448961870218020916140912515296418314303167506436839735451771943604063963699565850417055657004598569639745737308145901164622842477441658176707200014510898418044322073173125602962894244767848980259466907746343336994257704069525051254973380914966458007441099351411276306709619071196947471078322440213827289339173302568816145483590878645107015627932244185804718181233546957760482653622468037256618613591979743317831461372812835248509502017919767820889510872968832052379190684371519181948959720129758614054743875718397284222696477397954891132354283086190771165964895685442709504504023567171162686212623619230036100383460779077204178387579638082347160161342933455420183058369788907707600172596970227251818649301249892650370900068871384158645113801175568529035812311908278497016893304747605819852026407760114538141174811800840686788578190319087875588692884062247849956922809042160296255379607230253688650337551251674226311771190345347104574832394016443585547933784262854878478735745353855494551767926951004834580208358413050550352042976346587811151458414010275402212742709286262407357044712047159944053601926117909160096266853918585983860755913043263559440346472187209578652003897417987430917347399054275947542933340834859195298561052563016429632110319705828727232040562945380861207239426749155083326123257710118758868192437139548468529535247993978716229735524706639407331953084578532875131660226974557285071471368681662665161182060117709394499629139108723908605830382689687454886471767393543690717364685202818471016456805064481039485674476614803855444137847397165450088809603846884891122297403268861037967615620941185075182014967359027115254858844419758775595563819591260808026699119979565956404982268235815530323888757027458517547485167585357327649861047550705951227525790416422488777760416700244996582243995641038494692311701904768494791721082264353427097954651106722068801196815698491274519810649681425663270821905855547542884041424057765557127600058567183032264566888856207602952860282357972698765446782497992338409811154816394377892121906963650108625920461674450332429849297506890854311734417784427070063334443023332175840936543825655146485706553531365627312962662496276729043244373158948429595881702139652025643277848779009924775066276632646544276892744169221117216785868664082837011249209506592373809739278857203780980309608862548408735575472429531509077219979089628602942611585003988058166703835892613554145847006333179681443021363900598613067036347270048135921752460079515668883093978078253916697792079019367516967566133459789904983407728906958512673906619620362813497287846283134159514389536350676574079044979558145523219269022656288370223110836818723627132927365706501862152044288680100145556929384186168812046993935818485847336789559015026421922994927097007739592156075938740465389147438352133300242889477769012482208047334225743993916431917630423097472239005536169797980310908451540911491789652976855228025020290680240980271527869256185213529783167954651958537319435639773695675365795592294876997169594555477155641303195310480673274973210223474663448810306609915095413153801315818389702476403716360904115668464157627616683425850410398508865500447906262245598740104878837371146292341643220583009996282852836633152188654855821588948016445057716903404297887029953533922487328546006736759863678921581728274879585327420937086543959077308440485255157569685294806323728172360552334463046284933783263598183751241900110147583339373304993940048713582356213839224419757671205706745421388325295828025433048510868552595897859231078948880687191047872011110495225696283386157371111054902358769363409311009692926201286101492232052273404402683223378679893172658952983672958459830768381320468996778499609882302256803082958147954533406049600012037114999905318876577081253441048451751271672450530373513843404107618044470731967751485401029554934332287996671227231763128860523505327526417386690116981036264967602987109981189024838355948664126361375565132649054098802276717601192649936666790862881657223953926960959178878483256246583096324981302841312656793331496795916659313808404253404220769855674685120822779354150692762937902578681119789782040691253642148473195275573917179373079894454473538813373816375224985997779272253560982291466942517971701664684467349067264639131715793146429389921548550661314177615610070882012852902373535547345365817359200654182786227452111461466327264201744691955886895315955206811775926371521350729499911828689441696083300953185532530979391237863803562040062488389701971141237687723112066426293354141885510953720641851960821957074049827625687676002518219071708119198463170456039788964031893731874934955494849765616183188798458197674353749735956591074167126780578587808626215811600684146218065182999020531123254111835194690022198089382873421304487044179654837327083674861726227861864189501120869678585849791088537192459977472625406082293581415406022829180336370642957148984143028322499400404581578433037754564962534426270285416678848804042797771876936813660233992542830549496495283319558927408421354630752124428237093561415690133219691625964727205502020552922625331352170133213370401885701637160723649439908692430952729101900556916488938010164926706933701042289436249552452538939643134635540825795594389798224646952758489327059672936706876241427397254611905365631641271089016897013089476579833570286416643707568520659494329442227023852128140148853385266959134304705025039159807483142015810131634697495889039780424439949736379066997607520417723104454641635579298835357750430228632216733859957703541749864019824934219554919513780405534763993543500906056883274884892747600937655485095363653783953828129823490387489375554809601121536742408325819150542254174427819866710675832900170454076059877316894815260443701835152875868478245807465812198723596603475209995373139791993555071994965566561373383703651140879546344885241937686202707244716533694078554758530673657210394874008864125890990573773908201992546385185200181101792750072779033434691736635301390369218196912632262397932695090765618573761866869216530745567825110392909785569124676132129755341165117690068889749959248208530573179943851842304320104225606819200251196471336683224085544305834364938879115875079859217207967065684736008618237443120833515231807269508151485090293530824032064193043598548712422449593512191835340543909550192893586166360530955431375181427209052126719194376950019568834406543689188326796649387127571086579094739516665135447354405571402768886671950698544266257729193200535078646614186177106045022862528647268109325822690578763671103073804283152957948118390073170074351369688915779834543005098811302294892161851299611179854445769911053048098675492728322274836069011068592997247354465246177224424041594317091810409918369762130626504463074153728248790708751013013546407803307777719760655800097370781118741458575769884079380708727108332238846156789349414659761903643536183218032637775621213557089498509323823750135016593604740214885182220008267862367176919640854922021923196807505278994028150261535857309223208251236354725819125171801240913664848599182685412216106594798497815038570297493949603478222327557693649184256370123901919638466611398194844223425805945663084459157475808284290076619858206639140007137323333983072665623793083341915301809168828271985234671656214489172953917167869784415000836872298872622438975781367707783070626408445290260748976160841371591878629551631286948370018161441146583640134981350062241985657927723930758698252524670595230868250546797442143806809879861937877021806783961433506807223408794256489892669105028592617649725805210616215743350902153904357790232747519836815569259213875352471960739821971278582668548324715024950779114840732341273846335437801998623783667447121174240883882290726674749200638642448649953188278685289966895896760453063565600868842605049927955166139056016872529927169219840997390229391777605951974874118363180989561246555564357932278120092441462910242809890080867893498889035718413904870838923445142950687583412651011309846795370222798501570407797253107183488026788572757328624295853321154711631952050790943778809774414384216524086537877924908883711016962208941962271114149494192510403919570842922896674036433916784868599231165883583402842931255180195440639194322511171792742497393521352492475137118693927898449269423883058112881285293529674099693189176295758006848257849009935055705680974746523351211949030999075326140983157600436508326898845678435192084457987372167548068837280507965492708167946590670405209055007298670159250462641439782485929935094276636966828619703896485771933540524208687050866568391523704172720667619652227461442938602808755868123579782290525489212443285084827556702980248940653351245809298578276342182509512281043327047521472327780652805453046401276130888988295568896391478424846709073974288843137252468389604064925000221455601363048321730388604829798957119114123476888152669166133121810248131276617284145264516808597003093436924845734516154893581514942853530503779804906509294336036551748817010869185197001431586811198481349319149327251203142494666056849808009121763507613927041355108955609392879395214819783424917943643912748421331745587788217473301958523087291599081685379193985839288779716827088147210078329079501602103450889614148955312180543974106742378595085244530393562064800827013361963590239334915314522704057380024804629532834844038077506282328501316937063957816783386147678948444729246046732113613470696806570329676289154161669362867755703346886886295393933619812695701171894037426759979187178259270779520365077949488943834910817293562152246771517292850756053447198899191240624477767771850053488683487153779938064397347324195560809541008136505773189946886994683598840473326263428400816232412633525954633493321933563559178012854907679613774234917796202961399020028118352881808889601482854557662607328337467512508051565891011554790491168885751887686609211918084754265218525510729769588817758471699854974827461137383196018411981679103037782427728445680830326712599759647635876898200875534582427510931216367731356215831434035320012628797928985360979533791485401628525425037846245839925020404073231509722918493748357538114341577427814095472494462105830401047196074114741999020469635510912347758111503864672863694088337335639027060835107695157762801571553410735513880850433792520955962133315806158487107427642987753481143332975067921454474229243694415770945778296935164141092940570804127949998259608916829289459274042005040655742590716299951264978933134279190268751466148804694972675322762353408968115898942521229604798120798410779784174885923761759328317534346388033074907498717736680723504864874731201134852123764564006872342514652089807901612147069088432420824824597066425452797208702912993058691167896239023802236138133679561433741878357715649664426918502122791939384526342079203008028106485958584527872618559081471823547578715714508269198157057735213903741993811572291683420551854031850061278552834488936349589040308795499913973053887495067278418644703248884624663923584019406014394163132567117340736516412337026592823623607169502975782258951240369883646090079306084375521814191288443597054494496427643298723580052162036363196567756560331676813710683108156609328578747580705126535898491016052357667626068604505226096661333893908083614125928421491854310972283178425580188718496604255932278031881193239697123039151775753284231238945039941012733014015455791120745645604055468004537802077105704840966337399646876422743627925346920643024865996527293019546852360897020156657297851772211114670323521605964862063073835097429911703593419909190233345532726814850613748229822111378664646221355687167543681151406998311384658730081204380070006745213640350876808442745593490658701117222315568556626611837864996031514230041704634374742081877970163402134086222957958812874760234472089859970783541885226667059818556425246568535847174112592219119649600967101575716630187604553579569067785619059267558447313101103094825692306683566113750323120196319440269105162421172452966915615318632188824714980194194074564092186874474816692899950069340923893621230711712114268902442002722747784147963836277179498595130039033433890932060592416201457549409410358233227923270451153713398204865242972880294764260292224544879072738856732781064619679113215889826025901950336473138017664097213334158935569456465000380610622411962016756276686541795578152117680614448812391469215706670584465667234768614369820959482724049111876927153287838960029825104286289325225485507024310572461790279389042461286567197361715261829060713867111261270143701605015535011253482496866471656378040778562202209647106194919650146241962085432962238909594012223032360400393000843112051981571829441333418871278585388986249251906595448639398270529604051544534864661941013178050531400266738736338644406251610048750700737962896069532501350849661100421716113488782662702588270501358201768852448897503311028679003674424854659861918810323097290104917782757667203834363657950821329113269000526345491139172333094632808350599787912617459394880889305185964399493853379058106151625960167831109486969550927652268140942018540802713861112471317110459212590584777009516222155022423954268392981274531373616105204768663185068281084346652096288192640138289202593279156990425028486668113741886114862747317664696677740613369027990307620892475284174901552997753318243547431539371184370238128556640956893007208035735059204938363064636404212013421079810553333933776621470713565715986231688619627054387263429505205300488427006770199483159555084678170414091964672575449660343320831980921182637247377329667409446693389370102869045021377172544934805325990257653560690861902231365288908987213681296176826418518802735295207555506371066173214896974886514990913785974130273534366453564035952285097409634591145112218919877405213105382606524898749826707743234148763811635242038492157287304663117523741303820724422087681252198799046684675186869620489185241803726082517548362743397479492325570289244942379192420259826636677095214493531986265224327554445080259467623212302731670693683041457507896964565912036275815280035704853157042351183777612935648628261139372536432524832449472162529249258359464002709451725152281619582863389367385906500542970655136628393360368530951320344209142817995562355562505717246072241489017420520427343947163429759679964712502603770407064551867516621390030375151011132746193676913678631050960708757213380322098529884172348742369022108264259056528289609127262307503775038286189248976961032178966741732781895115453177765922165535001234473169205655179139616567416144963851405470988260649189974329850508936172478547452876742609572050357488890995943147068542522214918209589295823716079090416191125435882703000528370298427221415831135232469129882298098128308318598666016504956369963181642187851141195735583629192017205670642154945459127051468072963711073813725481235948462919122990839220746444466829616720932997923730050296205995798468364610625882173423685945257372988318930016702293867530034590436362143192544543090583082176347347639572476265605175103185602051773616207609459331968121969611490573620264164377204662366776611809975741598886329818397472801306237801288638866653468936676803742846208618381442015464157011457695242142392382202828940486585225380612178425956467708334921369422293982781849392557664736780646044307199411527301995597516781167298257017206661350074504539918074432082579777464539794454458513565809582024649819108443862510422586408998590555196307373151572276031971121226137000378784381568121621927561735545728143122827300902339609550389813926538986745993915311102141218666151669741447503383863195130881737329867568362438739570802405190853351131981554675510193990676235003883096772471232183689103872797824198338011710561002039606677736974348823652669744657225576710814793839364893696825662658999909726344333735921272614875237035127740313024800012606831368386542587132783217853273763913681979408563877576855110312415705844330469027390305969272214160903566385801256876341898791192414783162253167007919530400882268581503817325427032587831915161562514987324587012567310033934897957522511603724768432043386572879968919171278523136976081495227504161352314848194010243727770516485973514696274258255371033125180263692365946196509054164476529101302907415057369258736721924047934637597831977674128072363838767574038666686669002958250063732421526104025231698634528327291259716203714107695558398823872639530795265158260432940807076162689032366982137913095314078941450142605294314701226045313101135247446379805855769414504373730601633456281118929215596676303914916032330346662200431315284301095831686084791453041208991775114833071037431767836916306844074384475089121181729153723671785226346157109526232293694970098335286965792142926084760894886625125369378400971386920331143262900707827154693334916386002612256317405567169440200512274905657524090087142316993496161426674780351175402355043859844649116843034972768823779191330731996411960550649050817932472448306910190853520251205488878658579844645712528447728468554282919447541377078477792642091230821773124390821578878668449727365079797115880335700291402816169441660106421767120464797814524067657364968513750100624048837241102816192979738578941053249579147181385668371736157382300431368399135139923317746978116823328449854851992618537712865308350317513927104350734987247149647488467521009067887970112023416980878974757938675883400579159048309535330716979824943361950487359137875280289899174868754126730598060984540748802306783744173801046926153451713837506645324341444005092287991647448810321489001813254049478370163394347115807263642778224993112452018057595386232360071634260718247554612668288646074653675767573508678510520513840968296865692719235557485357486966587671842194826217964081130172847679873994469963677795477804137027739787237897878574955299422525617140479649768844002542992467399150193879678026909891250117859603419830706367361735531579695880525742831755330419273311644125165945289711502401457438179734525633822951117835200243694264116667918235049547863980930913560128858188486266729977521897084530011932955041791268314549851662964729752633606105934514458437595577528998193569484828326776909552816480892857919449359072850782060624104401954916473193250766226924870238032590470919773585944974558137380009378957697370610812006800118064309233914659533010834422962982947430261401606629132510960791244224500565695322718526987666312892826951819836580473439432913183386794168415089319383818548504539369499071021487573371347852013054067522401155737688931100879423095460415800074382775137012501148469325072980602635207026190426434851369250295755885567076490368398635372149400021908913497792536210965552327965717978254597968929064947649522209515369674928589714880676058368743347281312226482554358194486605253657156619523206486695162829405589338068831173296661478167580708135456187973337830625435091215504663496230651746020602169465889037582567172888440791593995736336653801164678870436958900111818289692999159091775581225085596413871866658079486738797527990490494129609037403290305776527658577425841671442290239922136137213735804499883596039447375749689845191511538760208444814765679260583165837847347051587679656787465007920316403259628517914260160033620342932810793577387085563380847797770120428434356787644676735733371088899280663310956370037576439380003501386470742140045003516535109210980137814979180420732378718722511809576280218228088791522667236958235281566058489401296819266366636950545742773320503203268582026888553378466449668000940322173803198116115204267097805324869159775358818268179615314869739839037436786710871423004843696258471438493659844019627370446181017522286382221001702474222223356664982927993437234891472449089628194739303902728665908969522226064581388176204274536475618966791407827548442937826056563799667471515786396562973633445125393928977372374464627502297812365907051165169772781575234301682030750219688653149789498791065824483452357550545460742360700739393821687081177657245714662706360133906089960726798887363948772939526553614424833902169297454705518603920735832582334722851601764507516806437371105185457628641035195046960080283425733000369105112602482658278851722877858410399937044997449106302567325516988743458158075010765651436341910987623429618680227766787185565429408644943567738819444099142215321051550498414170179095862897701442334372746645414820285068200766563963607808750380313071450169739019924335562194659576383495012444975140160195064659498424005495413915941897251930069980324979138375059075117184328891166439305478352050017356982791837314299352323646209869792657956516343995238085400103379462488981096442033603571452373129738437211587429596734206809530644271399157740740453562561056596246003924934339129808806970371013065178423394528819676695377867233014771978347950550171545077645376205391520444101894275349431434657813967437958027396660140424127612856661720248926273728394410004579567632951072623452277565788334837660923193521415074465481045562598952074197027509476198242140344919547513954382771814630989543574711370895989082242266719579207879697958761467741106898133270837917044421134060167497164032010616236186560918858071420775137895966522767808951335842383200871444293611847681965768164572947995189864588034622203671087878952528760517582924700963688523997294872505134959330414989503175234651105561397559964333173289950338714303821829973347212350418225672449803700288573025580265963399259010569979236323701420318436344880800489599808912873751427374675037879965840808873137162722294651620622435177947533926322723311644255529886771061753905858243970375317894332162354279286189810771714031103789462296113841079730950402966688572093202009698605765557618395031133922992106576608608361560294363821483984725992281403011452523119773096413154036463225585724816499135350668276887860160657993224030527564316254718037681179219896787577533424229583106483055169872631967874264836042281355989837364830213209083539131378373390834660044580351323928612547715918861146844421748163978465023816421086840072177525203954477842104837642246648832224637227929179840278824244061205343672396536661360285772655647365704400086700772705962375423213543398452821250015246879795271926911065676254381029791321700623042944487464593228352157115866497164988498936751868463268687343563815845028125271012044531586266408004714127364563383818197639253756006437140258646092649232901714803840012804800931623357545291171577241416969748653964437996264122215785057940344557333336254589375575488642107455198850872885482145965823799085145785732665928762653039280971239649126149117809155017826044237024461159956082407795912435127875839085412736783422615721580248548895192619694290790883826586181131797120408946643510683340009720985455583864887798848553892748098943324032167128557506169109509376651757888187459444165407780055619481150779684365166798183155456278212092502411984583568902517686575800206619987395488575379992468888268545841610114644436625316102877309457333622185038256390525754608597089218498475633513226971770379845415510705451372544845262399417507656578356202184695683578145632767064508598010320464054029392174950784790669805655275566321148614959921324403922310129724599710145641362348778640341588067536124140678604098749127242858738716321891299097303000188260759890319518538352899950778690308981714626113513884915868711826673210155697439926208831121807704215094716541724768215019766925676818583294778603222689261311032015609670806806366143176938274498820344992151829441998173047771321212374120196761836759686954854418566377457214922871637510041214025923801174819206226202511230118062973786338383732323867584640228994432709741229782346960561917955682960618495829143690546913033317944468223595993577112696662010364227373331970213477858493200151856529235334582379495134351958896557880880724541905379737085893857949622185414952827824832771605992493703254097676781776951890053307459708139310621474996829976615984702309281251362156400999904482052852235304004176304748703363402143048726230013154802442660189722878351989522050551604939291530907821037065758668109124132986328080438677290049689303406910056124206147483020588273915623241052500001368260792747014070976181870748337288773645408962659643291275866601867894395922021565365911487347687916180837167207006106398071638636575823762209229163429515775881283163845971456285337361560827926159386070588989307706979349501842330259089566884482167132585528025989008267918287944876311289402650950737867096229919147151383513626044383613605045492122292355779310159214467740437350691637913519803312754603457301472399592860517968037062468314286500405327950183754764461379067319622746150418336404747062629854181785609719537226811007874732952084816377076481780494121359524110801898228613619666859068498217457631647001999971569887821501556914285141713451531663644142216204924443396348234612929046153955229024777958443021958753227421639472774523578021229142281038951207935462250490463265675176827359646626622028572187027239973360836106527017897372424012260057961506481102359241840376259465852247121130990022243120734096110560266115408137947903433727552467688405579164354347811754511479423886718290586995234600297223139367668699026079508104459378170242848141036617086987085899849106107434739391791549933289606168865676466823134544882334116247750313431744121727953085779553828510036851435366929374933997881821527718472479680625442051893200613883256572048847216034666264405344869661118032946191342992444223869503220150013261971139947568793055075492883238373192289652130330150105419181479733141967802588774276393749693565937504747571552262368604652590631780478596248668578599510621517808889393619135089129280303007967138593774140676943630800998359642812445116463976865560560573062338879267416958884398234499258647549790195237666119984400930431247512183409918655390025485634385809371862443298970867792345569242051178797453540817560342004673293256659527282379772249633814649452333966059417800107286553801742781729258520465250790469440770073838922398847275716658740059230598786868513149280897800394492828162464215171763836838601171504450210847625736223119954598492509479284888000613703468221068999734595335389456717957921758835438160782284910762486866666198499595051067229317755773841924608411182752298010008452787595005100212284503205979614635343842974264270897167171930439122950130480578245715926376307221229546740816145729390852744297786747115644639735388037312660038668150627271619187362856313883502305486629465158210410437884658303558568888390736083051681110458360868315318209010232690165335407480388494886247424113811576189646686763088323554785130632702230044187861154199082305123557969109815619073609980869632394958140551147918873274543070382033738258941972010450508218009393254638291761495923140305194518354941088358242978616082593519726066088897858278597221702995351507174259113729809480281749448562484102991616040878713094057867587606327119428754416695064618811188531374615500318803332632557032771552055985361380993080399179984435472596563393193774986089055799215262135581838751014066283693457060589597656261991652386679617892637451083356694485920523165914573791828963735974042639389802987070598537319906925429279116929731033920229553527869057192169653091222881648625046355465434905993441819351759014539606854894088513981392714493376332081884710840622706244737061953778338793594944198340047483291519668321038287375176863954084124778862065670942097073248406067354910057329623505212530303445010709653017249792604909853322943089153692517459267406490018729863204369336993388110417069076222696133936485069730976152686809127801849974658568046382088922198382300644586597265592885614465321642459021141237316702575491204484199843921703635619405000133898341968833503930622436125416155241738474600019900684676184338325007832199676395793028271229004628136048580331598993112639106277971221333691915968370286160047481212697181475970259933402984075131143943678109457586481493825370218869373160090428879139087630130929558541335334799756963294194966366604539656334090773011243668963269268042035929563655877875327403667289271251476067211728658415908554682472342999567760712022829848205284159985416726050160710814045231607231657027586668938219954213106061713604541859517064310468324456647807309311980260708016509176136420794035366235692951239107728894151381077673581312151533966039441604980231545491107631422400950020232084729904234276422125454884763417268348981837971566158077558414896661728850537262540214367381100555197190303058739506290592619091055964981352273250308998633203097534466822872996253616374815317957802491270276077132067906283854105548330620886466102808959111338169359828996899241148052853365231604123202749463669302765157763952194146128130264970928626110153528350765096388249751367113830133393297286345654515764316442435204324204871620555764921139865678393834332406924559365191976333281639163026034310354246302959475717938002145094314480670842970325204595287728497113113724436446988455058346763661699092431484470080187075145644518133130007578175928306977478806803129752238670204474583295927170610704899697719825973733994477024533487067410155696061622553359604672973450716627886897029737470096786618103772804183981452248964957013242113893193114334278504815776939941762042442245116029427571073923076621705196195776504736376501008408622360171498676196720735549984217811624770737103686679197615051577736456176844242529385538249961601823329434110100063015092967739601530141606359273020175202794712442281238541206541802262994014595864106580321699182167179549166017168646182787871953886842666799835842344818369673652133510073805998779020477213791688354556378908987607649151037862268073616574047543738845360476055351123730989948712782821029658612647102322991416570098436857858074946164605401332292979888164438971173672620776573585745539775775190215317227579986949357835127278830552028052425819519037831626178120259832777332310673598686061773328278428552600044018075336516910727594219640974599920846884431389538238713197746550845132545694959030044010650189282741305575772176284979650974962410127619588882260560697038809031462975801679823537349657229032177272424381957880855891680717525310118481545759280700038393550479318477029564608850209061664262546636833053107926909552533950363527445054130644399996990949383047966480608404348095132220214541790907365976771835735282997485902032709006519891793022551844274674618614654074675032481457835480673529733871061664431837507165893724673777024603201562257879724994920015666969345995522513614980934005368581747237565320535490669604805864129590540148324199312627997747488821263907375467602332736502785500733372223015336203241992212986821347794590103885484722906854624074608087663532243817857360346882165762806218881912603679406796467734445589620052239444540501680629080591915962634688053586699509296343014402949446935084706928996395855885458763266144753453136996852593684896444837790458403952140415808662639354021099247562913588805812461670240929054230328060001151094025290391571397504700317837939636711748610633248769690766936882590991402569524022825854342166286683206787373167687299204922387491213937412468651257818315799511014021528571869557825380880674483682480162489396675205591885394237166568024612023261225701921505646959285955960373000553488464797969797141366182081706134813699118602772667618369491178750974803416620857435150358996961905510546201767402318104917765262013825334033975245293724525394716801229963272676689375259908841261759411339423897610138630060111954607452698507234623858256000340804201755515326129076700959992778982131154727772153030493934533737483001774837053267735776536878968173899109553988504812283618499003896248413536318471437923603794493240553889656774856822511581741141184308131703247684078547914964957771077035142286118445009741147201657546141504906423754071975772095367457811750372163362594596903575015351782735003045673741628517520671026182643844178512284529411066606830652200170316610859006305179256691069697246141559807465097947566884843100793375128550147564878805099875891501137965708257624912088119879039529457440443660766905128792836940598565106332217083646792897416316264614447835106356473166826823801192785655788341446807533589043968499510620595078949264497667521021333535079990948858522850132081714398920032700269613736122780098673334483878297545326420932652195331247127672941387708381992949265487931197514713458487923263550150780726114083440096830462155235403547552665673748438266065617495131012490442634203592319408884552142261977683227275574383194107888246215906736342314451004728208083713334114563726441421157669386129093487783234603554525093632831955004289283046662458330575943916042927981366636402420932938511862996247981088670748601941964444753296063362682856043244008284973881208848215425628451897716601239916297707696068508478340205975352032709267311623736355979701534952467432689598064027346635123419260677533216070594570095276811083964818644426788511791599337049917587295508103360933084617511831976758094007716448603322316953410921187300337626850897942827942772759910474459659692247945735305852507209204925698754108675167507847391080352410056258517401571515216053356391023681511692956927957868383578739696845622013735870082577693547165086664645034717302395179380761078056063452293896689172566438068745904308193175348475382780014246920549312680787515594750149070284498268153009140429399987330208665435969653089674575318488751163037470558522736739919431391632046381300195784675551996216819535416832566647192051279772083659427751393941901338604980430861848361731902864858531351802217135558250036154921776840116697168272418543337285574244919179120002659450005522764715046634167003215801793615990256841427122893958794045661324123308872439734027989262315495979083362232832298922137626233103454409009135906634461151790736621477677772210861856367152997288090848414295226663701568772005300143439680486260453464754565226445296174506159997754173695382599032239064627605825312541361036373622063157433948910167990138385455413053736318624477019636487967824512521178877676444629499695392781032745924612260708325702160014833074586097986870856509102708532798621698885990573170564063537493523886893563286932330530096670191685349286699288333289505360050653722209636950595018854508823324114843062611858808701680998281165611454523402501628473765558881773331374147543607949917160093298073283622338303333539616343706446554784834286031631460172935676498397387092375400806392663983319398198187044026331438363511894887604414584256659650742320899477664829687832608316369942801177116521219251137720728690090533193293475069916435680259080625373395015063843153073264163507040281348666843083690675311746165712833100525251883018526902804818400264528941766035779874301976123221768753685201023084095427615469889962179557478379370845463547086632565262319209588490335391254937878560471862361167868183146325510671830952939441012069272802837254897090862290097100859087211403403078841742879302233926896269099422724598005715023043022538896108394188557313420976163420858400107594063784127742636784407586414381723262527595908773259899759689311588295528375591616005243308726679924534672836911234173518735555254611217292257584325817034992555048916629799455793085209398004455088191637398950390494068504862291246117471934840404651636791198709369118210678363276074589783489946171140940028754495397656121684948219108583107231751525511409487900980816074912157613464355896702308759199633319627392585871392047568237923389872771716001004145675097957196834177490335962802874884607628885996323075663538162888601368381111946860437645708265969507436108771482433994898624595434720685175284825323840652686651666384545676730245099663576732377308539619184770533359029261902980143761152001549018783018385789256899323806697925509612196927807477848246406310523668342422268652747706407914281329522484984786859653903003251359478205538668435147115303705644599062563923441998513318551612547644519384753205011485768239737463208324237576824317393197163040402747578269208206664499916660467538470078400630390036795861995940499352616358275331447050815121136800612985267889201268466925764958076540895431075545048912200698104682066903684822516602692610983456862427385039205805909680391006176251694214036153404649542954931217409961965487442382666340990368856151915556960233107550488300057888227642725699134211001031116353858675079639162255142336509918700938895863085992935298273851412094385346668245359036208402842206640178423997160036836985455503905673210985393369876832066167619880133577888289870400281543109538019882154014730259675231281711951465457232537739907423965857021883797518684925995542906127103804121034936724470494192741611413534330873769438211249031948825323312262031711612419139484771928926118021614270349519282983730481282574985083602874154520279776170274442047833288459231281163064422290398379618069816808652653328595425597903430746022973522795995140435380196557378496045886125065243836974345746141599524835303102619864953646274779069191114674938352614879944051344538454384807584625613683314263232398839499964232385145149863811925185740034858447410640188957316052378497366599931117646281923166617491169470061625658825266743728939936170516201864818163850798257313227347675317144491502856636308381245898095433468251302757260241860600056406379394650565685530020937713815660521237546988341380294135754238806744938587937626171447881655156425133207931144528716513070064311762501200911421210812867174429825255106226136330792328284117931092395539004938109416631686018729938595728453357959858215761812489176358733524546551752129074706272488241206047313047887725416418321878091446490891373850575547958638188759873400847443850410260877258996476099556193441920235105582821578993561398271642629989634815556502585142555418579875794068848607943664768761044162681622835236117912594695441675827600688918983428451875807298032441842836378334677144500749807722957290186979873120923939198860159735772376212586828084971714020688734250476406716711714142636641079440832495140890995277728609777286816247644794732183320004090257536514081575238445797327734139868968056383192689630275253184394108926629556462608000303240870655287602186277784620831897787127565483670134388631395800575016593410050797956846898455246006068832602445566015613587658853904976843303525582204869983662711414174909853272842357686579688459200825226331376616930046844286140529003803691257613009013127208608979510159141920746582357372303712238584252110181088410713271778159111827557487156834126484116416708244743705781891282863727606995267306193790830110472500891786973404662564321216494812160840231902808784406866526453690472586028237870203661133307807290745580428495402014635611288193842616070988587635049441075473388619850745016205332145435536430588162026036607459964152836819266142046298629522917731983783102585033644228157888488248230110889300289609518703871721742465159364976119961189005434572262880142930365507217419663100701978098438584380616560783815382221244262674615556173384616729655325668044006826649157964342462770439899444008778963814408358924260437195214259809316018953523905915716711328311104258845433360857430507917142983766642054915528730420837808993546546054489503337531078948158100667591300611491102705139367190704960295394757800611739149029670414831338590737194541899638236178508287841655245373429254888254049142839011605642676117971583830933980691935007188787078477962243206619511325256133057048682097746696037462682137862086918478436918805417428034176305698319569476622108420969952246500218836029284209579729016144129849286076446586062607669572776018169806327902354548968570023957638171431581027008940526419814896413649549734897246069090435894748758098026933085578557703210770915395922362262339716146355774885705473087247552245520429385458324180061535318059631267786949628467522211819716257406776362297267986711309635411538896604896868391095693522650409445520618151120725426677685117677695908520649849320105824707289260606681852883948163320827872988870584830712817517217214642553371732675685080897798735620072187150402515235732337346534007930448880145013270875542282793285984056577466145847165127621558835402084965325101716023843846923936300732927854124478014523426295941019647895563017070491986531958412702095491562982333913279185755431535938755853584349237003752695526917433616921639907617612047247522260703693475335735823285485221841811583661261700104834371087095702694345585094593753643313911554092638239605177132377227856940688506917847499097541357856359947667823981505691001946654862404493486892699450989728430934148073655277012708277323821565897376683246480339455621028589873801650561817821337308329273580111215254930060151796377890635583308439408050732664399214612811427543511359201834271419153614171814631118667338702262050331321610287524335842677224070490695044289944650858116311668265562749450874486116540159088158464173545146412240497917050963313747601045138375866364193076370851170905986993900613911433409468310045569197538068508016866082231755380381179622485316235337804179332162157292971329312698243829250816541316056247649436055610843081274207000940427259877752896834098617924703142016739297802768132145383853686486300701084214592608296282165972324641822149243295487665806106726949762127620155482128438585242871565394745202358030558188156136965723987598973971742457915125817648021259391212583475512346044624446829161930345959941282127620431820029493382182219953694724032629599829788158192302023889391297773947912873366984615828931247442271746685545795132305215988790518283768310951482284793521205721958172493468378650825945514684023711093425719191494011302503373471880348457913385967449710741616494645369498591065734520843615634989742838176022551481301571505023349170948444368657036992962063453149590563041111344576946218661313545435152495524589482732499688612819074396784086829639724749226771009510184443579690202755265318460750293798924028979948370123913123654808366943567551928004436052965054969700490374017275809046995370183265091235019134119902408539427677970666409700442849268392557807527603033808399603732782142239879802183338316783962377393451223685595465162207010446500864545344538869430083431572763678240264295246696812468133257706540306957411123629105874388171804525088592712519842797836064913344725273224494760092069285379764843965431452324504849082567448495855497280573616170602222888708069384109547917930992162257162660756068094946447639833320949669916435722489278622996458818576433321193030571439755446666015285267964231875987175117016999866816293190129833833642564294194448492744490323394789648095853847269637440472418713024265748014020467009395429293860256085552883655177918775744412874296721447699157126607695446709086014964439126024500833458122334759607634173081525249040304448052704174909727598437014189759850544760919350910445431006599863859083511896285695850143586783246450523871324734908861228755866692357550162685175869793703867702865855997531721192646953561206812622487496062342189548261167013283201363930851519564836519597987411317990819818549491817590427116743365019238104172071168993297797142365562348371049397907240946971857506105165644489428333559375939904752337596905535284978023794938922809535048563499812843828181905856932498294900331559853492604441066271379419122468359244230407938643135481235010529815287579899343257755359961851256840655097454173827848908878134558254262141096080935464025968221966381244981920201931382723432333833934347162010934854083374685323951762039455141896550479057114120379352429698619443060887325957403244395860703896736557984139152140219052564253671828224490593316666761999847602551518082103727886098949119261596439751518056941247455967844957177783638560862697278463049362384160416660636021564756645873402439678965509922967041322791022462461202085300339478226155051598133578337372597547596957135872492648434850857832273419583500797225227691818407599423603055190854452931374464265680431953110510950229886147156763518823231500731863011927385682947669283112204853767240245427721958332245155454267955966445206602719649109636622098164426747985618809185504488189285673752312010534151728517925475197642571089513474088894339339279001543177816376743697443678222496004211720129507257544724430072354579050412366765756017964275462607406758817124256282800547134682174085851144504917488291479427011922226723445265022607196762168977317828373927715375496938370865751273308130307373978252382027752089113863082401783563056325933452905746866683630061535383071818319634842207551004446202536748762217165228469295505914973921819193502057406749631319349636471239697498607640776903152695767159125237931321544832428290314420538276846399239940791400184302269811045806607477401422768499634071228187636240109875290481215204483547497186214161465646191703182173750186300716541966432081492063578523505332954836960862516959581627755571036692063234415635365547149921043790896754445701773458446044587999678458684955893852063634199941435661541156093489826618322306957982177149172714164229582393119295550209091124829177073059050494962484878306870871883901308206174378540361080390939323030125008485423522783232434650544822992971994626585296554424244565411257929261058701115359333398701719009257897618496546041195162601066776932187460249001028958390028804461977907185847342991107853936873922277215656522694993572680960511715762523356647042860618482975509976417933724546528563302200513648434463036617957132887091478213430767287866238551582413129809504795781830272253860128314967816582667236307442312923389915969951831379809074923878073570394721057229476824133682641469438964278744149068783693890375113674815682989073072047626240082529012580986698156628063725285400535626216596864472963289116815441416755582816158343718234412284077740460968220724792377024344239443033199237107729387996043487980485482953433457570655854079037174406010644440815555511256652844866184323892661104306254341133962730146416783602954962981216951594817137252027481331604829819905203060031749230264055723454981137139156339056068070330511400645164845989567709149818743136325914416452196925177167396533607984951239509515711748474173845345561242274425955627709943718429887231055221283534412679085161764436260800827884090863341556143149401134665742986346083083469051657105467073852406825881309643880007660247883091079971556676371999680299640253974444485284146531375154867176887553664913377773854179312869565720210159407571814466080189388529542175011269613358616181309875914277493908759737202594094117872430566627304588193577690202812069804845586227027382158706467540956176232608277197352051082253264999125217245040949463037084945426223835545025899899254158916380258020392629945932441532784356883647362324467112576104486093527312991098507857463882889612222913255425708058211028609078557941300791517496633105274857816601913885683896702550148539873212624726256431774113427881725866600163337553951671905888434811169738995827868683810465718659216819665445783425209648789843641042871468932373764678291022400698402068415609947257047951993636033709200559847028574617709478168112527606198686157005927128249721004599140674961530189403260037637952735360181657226994373060019133030129097596912850684634759757373556615674097089018834473746652365702630175062182288611464275380812923218931520419692938296189967200585612712572599828011022660288631869571653406145419750201067569264795652928087333919287655746796359803438797491175426798723698515100964436293432283789768419007204594384458261287307153676299713506594135826863952976537241595042908447006000597812689215234474130099167807474334342580057838702774730696658273726810699152439922068431688849798891407452295507396444797721234511781747839620289225555190791281716017734071671119890283553151618000154323923646482526763605435790878243169707869603040707986987130418690316864518509733317266372819792383374441954563464574493614607525412988265499133858984663217466055218736717828044300254034004401371754920770293118788478994342894037283506936761487478402183069258730956244124479579748715894667280231317546959168770010087936210607965311024346275993072147686817685458287420564825043317128610856947563460814261949747116169642001470561300154340903237549872283474642818591221365460818031742915606343840044912911976107402873362707067002168898737508563520908071295932344727771276814905304751630047690835345315865475728684827025507172505668178792506623067838945865011865263035182502794937596226546966854811895041720904878736927215733049445659395727825709965077941397643316137808001602167388054288250536943659230397725421196302288477951325754383797359044988231388981600813537612705458922442723183255341236169370446126644991463215699676687028080290099893916221717333669233227132499758361740244889205476004837557456001761570274788342108661563688944843321878148741026506545194374561590353321518093982682989868385790917167859331413823054230273837582639999005033143962991916705579831487461964960428176113462008810434550405039422850892695263140564899610742901024074189076170272206920886452004789341695760910409736995937094994273012230341453508555670216643364362029940817789588803162792560885809385331466064965196295283725183787748801001877614782576041465418330396428806583628069473246519318483676486867606222879130239322409237126388346417654075519403915858271994707609058344023769716937132492659296178052644730706183414346399497505107387548268642764268546987676033557846948190392378334207214947633858500598346436814298059867242427750577978689794199662728626356861736659729400491966118708168225728201604452010163141146131919748197683253965862120528549064888599333944162346111728348640496763998784188243357220414899017511536262102692025128759541553920314273668649931795014944918339099066003444096278333875297587326404333055184914804366453189397270330985322003393339607628092887214728759937467511234306901608738021418559092212693019458429799496664239379657264745135252446817939201020093850384666723893800402745533010949761381094925582788297232344459240797509590755930477258362129297217185246043673850248714544139728950683449953700352328335321531166991260101230865369071034866720507037747027840473599636598666864201871862648955421602907777372433071548261473337824628155143544298094101353371523861907717806281934433510885797381443380009316126444793180644100396395824212071678659104539134790274068152038283183418145034234319797226474035489862583694197614776549986154453616543681648592223952776584452127838250197389889190502752328325464580133471925835984841441810953063253370128818018005723776752326614453830425105111009097187555236810666041333297618349424480842862752613973713315396291207248678556168034632758626390940874511685061932524330637917742598838634068373496775363154496366550877990449861809984463250822543799742275008022814428824663041788580975870972246172625733299171895590079272446076283306521531358735538766241703968373939280988979547865345446768610143297628447776696768415421414555131065861595461532748357684247019992383347050686683795899102738719170845852695915290331765890270883096285792247445449459390605183649351550415578917047177980462282929451281052095263939607818636875538739530562707287816231786058148681156362526714342438518426685805851047126172220122232887387175910090505404741334864674629547893487279761214110594967633931939068463958756095599877917901904019867364849260401481554848509075317113357602111457904306385873361983241615501992301784460802770309129633562211030135981559926509074466534314628577556556146169687950424498325229881523509308892162828379541455009351529092159361581515002025216054821239724581345684901660845531114341497367690401845925977907496997529123552742089025586460802434903357574714315768710208632146622980850188165981272807203083858332158644283135351802711361268956787563298866080227291115607164635075803001458154657634828636448436176354641089062574868997620667812978657499383490425778834360841723600314290352543781779162621805037233691039063755707475333148389542149455306004624897961210797287530189529886584150008308102737808650504410617816844246868326742063326981926323042081201740488622277887394436705384143589321391015399443155848952716040545990919454423510643428312372477839225732074882739945127000152666149190820148650520202217686134343099311868665325667625473394259766780849387672946746842576816242429904475025613872298401843401386514298526954556361634770554134742567578113491840169974977262894730990992674584602234628215598419144606129453576618261938284516306370991229740247108949538301676312155831924240886051095419541836228242591354925515669419502779094262326031422108815205052519893172941249157045601238967368104887242692377980436236351563068449199763232191771555250128383006123382111210679830081728924403767416916983863013972518614416625384851824446046864361943892684743060340887521884922249882719003570217858027635766566244762721909120328556439478137387229763855979053013371215222519999450521099689066872387065263487202588974421489115902446092138362119901109024623654575217990361897513075647354237856035352089584430575718560586576205095925232626231187911997417918000137117744767782144177309392685086658297466958774140713070085524373217982612600185598401605397404907608512925584518397543094843215047116211230471884741210275221430480952970187753479206613249864788328492975976473137923567189302684806807342609192654172448742028006688101725450090101720099504876673105262459882299461786127918210816333009038355714443051313621806011741647038232928480081782062685038151416792457588976092015994654112735013459520462197905591028026798344561022167090391682333042652202268381811908867658048568545662701062023601143114601109213883612578120732967082784489161171117428168450970495062437504430611748303518148447920514383448755036185293776311896032707585575646491041930547678854819700293443905044844333429110238184583096128349663610773940995785968159076078790538294300124251927066165614013417016439858400182922442332104523120628975607768911197955253257376632757981335534039947889544857368406806723205096576271867303839558505310776054590720339038626959302863765569196708627390653426504091264006428633164775756021532347561380032465403343604982201702024369248964643234442475763133991315129610532116141458162828706123751200859683901358244027094594312064814361890884711878058013507941318257129651714133733426122599648096499159060300420005344738746167700925059091589722726639726073430493052294662354751894563353993864036817607734045875139528055242294945826557140240787588468800549213955277583200029062743376063978886182825324092487955244289701602048873803396547925216800781825216637646311655346661389347156406594601550976779277774402609262869974023176113993673807190665399566568398196003980417265096871756141844554859570961467360414490596869172021148018673152347423556346724220759726100924969263171531982917278180807834901761749521870309335906828445021607974273760654984836186530416707205773070869909969781987938505567576252225530684754901187309743384681541150939428254669715304952435780269061291906284286352065901313073032108446841471393695079353746745665013958315360377938939317588609285500568126078055122571227991159832389786403441453966048497804843939514590849272114075993251333200050845714574580176885140008303709302022445397408453787703223974053699484091397334147283876296922537799666371575790693137468406470155350377550122263618665897388006372189104602635329938839741280397591756244377187815786136684099164536441343690799065890909169887036574736631606934696953120764960461783888626101701603148952734883578018653989096801984638590597984483504932817263345179312129059913042562520699025076198833781252814377444225931318119699720210098580025176246516866527173003381137925686394580052972705048437616170233710961744264609151685431980151629613145923871449901160345113263051768993685304498673309461025540839196648785275713694397805296980708860575571273703696274046038677861241226275433898225946520272661845042420473388609858421731122500414248649085983859254753965546441535838452987848521923142836740793810800361764315432551699597412307623043228141107329041020138869783804452674741947829129398209252789604229020753858709993819045963788974782290988772031524318921828256521316954362435911523575859841426877392624010632617797034485877008811569903649017879789755545625763933684698302282163224105939303576216719710842081254174926190024980156817049540141480563267121793944941809646141463419083264614549334260874377284104330258861204331459441120431034621782369650620104847527099106440662802471820150758174364703816271263450430171627349408095144989561938370608904946753397653138780988051613109250722257810757768986454363260989467596859259138645945117863877336333522658246486435304985821807484138280286677952316462381875507745746958973639895957666354052595982386927617571830987764676175461745902361924339010348481997399146752335032044530609926632651893698027994474171011179147856856326774978112010756948157098880625084663255035445762002790121700156491934345809873242464639524796284781604703299963739756244221049484860496696641001366430324511233574909341810049581690217688294213836947110890524179669116091752674349435364497181128022865513454510493296072063499173060086795417514058939461995516426272024093189791602382822561641061948367533979539356949199281530673898565274116917979741454495151119671344333911129516220556781245442617324396088482833493709286603549849149941910599468181039589215125070583656535296697762000507303568289630749144597509620585540879200686046116891986843069669127698273190674713694674250844802552891365272668527214590475203212770443342737145614993661470602813077395347448172639803905793395033219422937807818043443692359673633712835036481175234681452639007316548823616982202460554364487893148285644437102859317774546632026293405208967556550785151199687804002381096466027840457702466205630279860771262975392581322986708983664403963509352186224293103465586213494565617748167532246059330790559833492263284030521450676287856791425357687517937518145087351514235255139916920328040341571742725752692701628540786786389741710275700245130276119565535853758899251359311191668525266742711693155703769382135137312355292530435037993081765186299877230379967807394188985120101671129933388714084477097701837242165237161335775843851047324349213013837372516538057446132373560350815997792096712257794426481886038985320891729807583648406114658614899774706200317865652096710787094598724884288280730443046029657812167332449650365348578567194842077277492992894611883369157514247688903344512883020270617265059573634243768350397327357130484556618481892535694704014454386092259579925419078070219886801456321561003518102737192164367027113437170358697901081635699071502975929611081326463406789104237936793508598339547620228373764115962481319394158158347350297152853094212808497529193831014467745845988337218964131128562708437967986377977504673736889538098411099929975412059484846952818403058659603820978153687026605146532260650644498104365706594297677477714555351172100987538590089586280556584959639520013183441932086299236180888936773371269968614651635372123886348364325036352416332060180680143229109725196161344964634630144515584937052525269347516636394661212465964643651958766653360993323057558999905588778220548980698493520229126445524984756947984414248471964047229990256088001694787959007575202282502231278075031557024469597015292824956531062837189652328145433547448456907962681451145245047746331208584963835793553854317845598020713652541434968812849954769064696687228059190406173716879656714687700355810359899048460845141328961557649921986047191793833952431697042700307269095746899255499676056738297780505002327496609272683723868000315099278327122208824193138962610733182572188899570441956233317210232572756195863693794961886813266755859354001649166106600501738106936481898526827021326546066968618865269944916232401694458092219367150123280229195834824092887698747311850938464026389530473432226519683733040365331805507238983158877422499048482515422479924549664671985251932352345646554732637691974954397062869830755745827490057678966034572312973520989990145389222727872088302893478250493142097285255897722813597567556839941417649363902164675745451742589920741028613614214467673422777966166707725817472244176233781074765577675497445513873013291786334360092341299436199010416366354756737754415486695987007149640014551188118961268297183824736772466422258606695620880067930653158113068882500813308990511289072051728376161112505798641222725096120016880246260777736587418043084784199950096396846333520408576918040424527244433745927991845294571643263756150655116901340014934785318072726068324765380366821650511217810096145186042566996980828430499415999984743709702014194024081739537158805108062827843818382125268841006136062962560076714876119753791974836907006996294956246818552120312981856278516270429057589217569871254482760388455174645502552659960969871496066659636127106073733620113229865425620926793981366555871818045799215783581656466319874115061066594190597648693691419196715746854005127600462199234470356607415467273081777692530766056058816428495065436773960659161157198329760827081549319800140580318191115276106914815365622621468776123443799004965373979464284901094830044476746108938302145890134487173517439031613848457960198459378521228161328836436233577209973995049433658065848143628106697870153516183973995078550729802329271214486759494798348062178909153810573882222820385347488720614922925135262679250407222351595053138524846553618509714266932217328110531373095831991256896500766278160673114958326419020162972585763771458333582821258807066785880894060099563819706857487986525445535147204921334968140327362755797339240885958566743038952947021875784301968756964124837980824595742633166428789563732251193942251161634520391170858428181441304987279279999310954419195750667199517233995957102167224436536047400648098664672910138840564824451059625636784934429153251221586203494249142793360304963066610075192570106647001059104504456787416854758988967186966566688452171962663429031247243922584616520663722352406527069722025993527831491120508675789257861946498486152890833079405027213932009797181735772387026304217398117537606369708313317553847392131328648535424508662627925764888608978844950475806201600222733275135042275098372510698790339515668239723479831731671282933083618326484315399672992002633366589088922698681961030595955846532928257387892039576756112279466195857567965626961927792937373515744176797553700319499304486038026124872860690997508259448189193902778543742977490745913807412667354148522845278787263683006419295950543236754073781758427372950512841134019331358347493594004855714912389664867219152714466327932417557799385477708677408630200879339418711969464380075251287607937458317668148817191807761680616440953656153978600248534270807278026613734580876963046292775045946539162313877062078248586209832882321547906517050452152609489862009761045449875429482761063638272566326367599986407773588409260962222230574534279929614642199900037046593590550324063332474269643766943974961884171444755498151518883898922774926947718436473373118003148730505089218666787011042239747544420264565077550747723475795475872134680123162148537165733714602570582684650267917482230643729587929563880163550717730115759172797984701180685670438580489260792981610191371735329023752162225340007203312353186816165680565478547979810657005296137695010817100344205287191483479208399004877727561947478591012433577158792441068399426338005931980163123849287453769469278103008003955758935430851983065869841825803250003497258651296083803392055311930372338003230062439628704724377591991294118121161330276813395281741636870203125891202487446659275112461606592580619228313121241937621478053374945342706315493094318169696313857202749407547042405372587099022971041755209571299008819092596713197523683549710769928218450877394112301736549804201319093587082622204241550457259797031925571539342700954977769644708998984972398522411986698528407086096566505816315912272811528035704613182482033529804162624883970277457635698132383673564947064855184876047318601194210272909497799498921737175647201529475108749841772843492046351405469308276127027052094982378269742830904847201194135750940428183573399828568027238188612428087486040764844776788788017444001402065208751162178144534098815721567141222136169801414334390384035762317585994778504992061837623700465539563448905971017974211000318801349521388805486592633445269569852732217448814542476429503615927872718156459055972645626318185075811945484506884362695596103424634288046749498818557010756182195615020975417024145586360064342800211859195172642300228612588571118919293605287666206552089770890655868502666187756193271527342220703967739886145472379914195770622132882058867598691901472237385998519005956551993561481676276376013391948455310857289831415792034661860367636934353302957305084376730675525001952517200400698056346781935656177071480260665380172554154048421890893954263326421780698069322017880032597265317344938439589948578220211052534690803323132585059041455668509213803187964952959011824182834695393766614422910616520765591522858854563047374122986142438360877304047834489947446432910170069738598365539649925558651518185426623660905897332461082803267763962597661051183573768504204022572621276032495526450743459317120646204544341196946922709823751199860454829878196547630171836667876808027919909666262041200296108765522319275346080792514024668116526074275330060647378388296222613350854297713243559987254151229256171916156442576799774576263699085371116342326371223946161586170985736914066241030299349051259503615226648010996385484554928979367221013414851482348495152031630497098183120027633639697751485471235752294812396524446233425139597139932003801988235235559934607832704081866315100309229644958469882932964341284810917628267154546507692570344871425692553387381702364882744624497595423675784339544267070625600527304166777283828401024727555400164380112216668142725620218143788861567971446346235071781623262038102658785296610846195486727415706366613297377018539246615623301925713296789783395237162547630857196024452872984874788355446760011141864547849854175039803676428015289157050444941191715907084907206504621809605891161631447742457679028290148087485962952557113474227009570112305747982492685528745800085207441964680949651814687389446620531125129684752308296348846675581460439709791364921234733568634113614846531627994180075602611685449299289282011655098125163840520077302124345147748562503425204313872307231746853733820796907625222761247607959154097353623852102242753861803672852258716642076312162025621693254412704752294089820417842549522478725882218564374788289260370741040045870394992416087216329759980399076287363539285482263220587718669531419277343998648782156012357529878445121020269508770706106145447788862051428408170253100475751877862075352136748542196404785714803921065018654504327238370940221018602837686014852638956233890314167894277672024367290679169987174028638698522595549264195839801378210946331312549610975281446297632431270815987705558194499697408462723872741270457923629423744237758512305006149217188831350821007841814613824888513755590984879743130029750532933204807242338280733738164775226571873379162095252798319496940067651918933061291216277794153877100099546476982333428369697667851441347526585002949810632963299349747596251738609783440212534385423541912453873617704929320321955832046067602990168286609845001819463644629054033988238724972358159608328912479744153001855765185921776177257755217234470511222277528068577626358350514549081191007615474842377262042859245033683051167531120065852294288586597861868972345296134650592362261316963363543296519566362568915466339755622675149478209391589813844246990817853936949487714968968471076755158449692273535404999608134599865499559899632490588704628522416918713033775388326265082019760339629425382424487046715999822578365834163776887680445879390302390971785378283532762990958611956043807407037559901675623323019953275621261221500874893711374146818784977031605708908359348346190013838879650377187144221342122082535992555318969165100207542249798796141092607662241376270211054123597144732124390674840083167040883990698386802190183072012541429940356535212295168073196151858160781822740799089799171930473356095101591394435268359418445984986200445277611107124821385444668255523907755141199302352415132250606977987473078456286312237940915814434085339327279838935563605027072236249139696952340177614132519521809026347591009331032968701352848081854808808946702825630399150400399387719359206551554667957910787614696184104201055869905016274353980565213310918594222222354535358535057702477049711963049588173736837018997268294877708775644077322597173260264183854432924742342768929951428567952575396906996058080358779646837743969460382846339734691768995423442401679972391539140455489511706351141707694410241344455069463917380678610776597434719821929311443202293183610991561425154076718611060399856721497136427786830461467029248519582818786115664350173046985739003823372206176033612786640329445946537166003476920288192662468223814644109852396718507432083056397743700613269610319927510790387154744572411877125193432701022332204041304170849026352892311898506730590196794358306860399458024615272496557695460346346657776369478047859247499619139077577351005146754912120758896169914235331035042502575521854290282038721940343058748553183013065880481873196771484485127185442796034651843380129460401928500298349909732998159312267666809603279947499229525046327525132692838793612251767287150385481643240304405711901690379624255842728927980128872786646688590930534635737503864371567061286255846352720218054749633131567941328598972229631908481591753472246965702695644179725000532706145435166525042874822250526772303882346399043878956496396311934947311290601272999154357779189067360317358618666373575065738049888944030427190471528378831250060996185669589323820349786036523128287201142318832971449446034902195024632825975796633812755337864529032829370647746229073319017818073427006911090506208675921538541743900305801598267772176860042494416802039359544630254639619011198501964374301983403037460280686553206239472307228442370606267437412908759132623930988298540369674652564242525591439581297473225812360641893195849574492044399759020391825559664573330817982477266545605384960542832179867773032469880162339516465378362461150854807755830577258411773580096435736397126557007300445458085845135149243393554967608630758567236315721554130192283290774316701300637354293797118133689983968519042767280985227937469114643461113932367069111514402258137627459724370027094051660647998129480335622282667312762091780292731985862464188742911445962830349868606454458684943491826954928885572944667827404346539976461083730583092287386047984260273012687252969308661808818977113797091739429940960679637941802165097813135197288667963223929491314036622946823181320897119959452736253517179073007292991875443153850461259041306558899576187678703715710932679595101288582093285340658612057002366468271539071694291230290264570763136435429248043179922538210995668926696803717274282862780699980712648716314882943536524142247300883206254227921624532653021432441682295120503878903518392484951114204183403418817400119504657027415883514311947774883405103035913785368955507315327647158384566000664543467993819367690750736717930851776797367780272791289010707196582352599120254199807870297863901382386887920533058939762598407080524612789392404946589103869682521118942026492021575671323795499909958008200421634078235591533025791424502108531588275190155788438399925185324137820494394388178409302524291725248006064398986984022349592525767422244501914974091828686340411974245411527994608221567916519782305456754153481494724777645066822896863475557547018337302178289764643665901191314059748605534807905816169803452276593439547434702805875248848542233598791581557914754818332704846057763076738034242128130314424179025995433502867439931210411794520781212692026622835147082871827473262339926103300547822471817685099111158825763329016693252441629518459527482040464633556665500628628904919917800622712133623364022134693458151670023536579116568055196142409854854490718020691545805048865632117594287027196896109206002051278884191550054159606547915708674818750010596772949608040473075490802349026592786006137885347205535907806075703702926943837394894173099922077064787682909157923113104116327014224377311755573096816788095939088705317173484412055107661429161153856160422908510280078048033602405333633869988588234479187748654192273270369928351883370046431209468329070380589089393507187657110879984788330410093853919894410781673408404712166909556053090685771380113856483024629073106862765576971282190893327606757636276828849953924960658610981551757655646186808477932479040287098771580868957842054274688116177057194194364049079327237551014425848005844978421615655754366638958260425579186132054178275067861255228709751908584299066568672846805684711746794613153702306098384430969529243484255482751963839432687122782004995419699265592542761995306590297606966037413218004075043703695766369315287167507778428696684461881110784993699408711957610233146831265337893489174772268384718526720403733306629652304539131753974681520057891854179496434725596927331229403582946115500784672764491632747905652311116880512214024346874840482567910357058944069290336407205000374509851296008435896607608267398131856685276044819372978853142370526769030416385539599749597811115670379052249856407600893445077540772548146072780420043246177052488472688241353827161349474129079277552333792031391714562352196242123573953899566200229883369864288008148935309562332497115626574796464167569652073935662029585518105411161163652695101861246076622511155734661189685694897464438149610458629579480779991334093252276104823727923092923139992208414980407413272092659534428291245930829015706685633192799044989422957574895064602076006756217653096058962047964733026640571100925271465280556559403812936410919641825586095580622400027361352640723253581525176665182678270382234768033705715554594993175276842638757770925239199519270362674351728854100228100301205098871282092586032251260209117711149958137802771353976209097678102354922487563444142542715319166138272871388610978711137655965400087937973844780661184621858159933511581491275328807665419996033963315461061653439266254023367029835834457981571715610314073448369638347815440719613293745868241469968639785506802553524743222114901034057253545862442800695957833089311662446265411492690435632072345528968223157388020091241468213902829212647677004227150279962603236530006726464360143061970201015507989908867883374597096858669925945118542009414900812560701764442833481113744471172453089939257188234635210579803054447847185262498042331541459768298692118151006846609085777510432953000237421359582527807117449881684159198229761759270680580924097549338745910630305433468117677789369088606316858447280443967632760846751868852525042232213582043931002676151081577683899323174907174977180217638309650628225899570345905667368442738079406215811231619857769512756473849995811024947367191737835301838294925210209475720195152393563840273064621923718231754438830762470246982772789825863142423740824010954187155049640252532715753878985066657624646053315581371429430507397778212129989334503449223025241345299301523630749657414500467628814837814455847066580323868690686661425863310262954785053139388537714183839470479398705986036891155636088995667208265663358369589198905543594674099490320023508787404869098914467183746512458031314798441394534976748313709714026470606256788530829444441021994930435686451241853202330944104631951634592680249792450228313350642806775826603413683272902642434837787646301988190132416244453346741521499105623441751605728688274353024318277913565523546713196481977712244076363987753064845158233904837272907450784161828577939216125725394640658929774385400066299340076916737500864028956742743066910601383487449770966238650648740739483111916271394040171270679766978202607136861341287761675811936493070592209520630599482418040810189712768426033579832125950609288612251132283252981185802024106471960431462177517932595530668758620896033830978920431213019260497559623426757874950493328582580930066093986556192780750372629846114024858123431431473506504396862445487330036688329097469197516381828217877308557123869827347855830791031414703106220753024903237931849405546859574212633727578140171975242944553329315064977209154031917545464233168958161970498579900085160591069475771076490081206498278867684174592227691020736807427901161231900220743933205455358509268237123572226541834223334502259139450007782192166362632384924402468132067288120916785410771484181736174474957120954035235375502530999670062787227397857031513957915613099135221515869612075975946989455802761513632459935059796117962572323484821175988215366042937241520197032449677123354301324925737151833499870676597610669411514610658627797940156359175716497996303071105923438390243133377334463435709738857647390894061684960391949198317085505864020932362932307740770929945928123299107546520427342730767479218536247182849182864357764188651581911681851792338995764035563968139829915647083871734578050417584773473676198908780759417681612825786021840057190189828382732301554660710250881317906539951134056806292648111755588035595149453837610529527405581371086682826468687456890152158634971754573031334508484785428851045744827803814530523727140483906873441577588149081914720926975174628220064280512551322850003328486934513078243342985598548076270096567174510074960078247418772530719005630527740223874606852830456622513631588267982231437344189402741472791782629980820389212772505020742434532654964828392065467175851790841024271680739977924203054630418576218486880430906929616420742475984262661114879595441269047053605164183838962857059345013340615432538059424442041115091820443108654875199363532589689039883358170595553636176573520683924582278232315247537332964402381059501297018800987050598398504998499800401451728932380563764065842201563151040459593832546008809418194185590734876859730027120901941786277900089190093799047377138322469627546209150923024648649194804649468459314437276173081657303800920206107560080623957252522322535434891412361472540955019251938995716865128304144748247420944428950726256955449114845359768672162642555254313142783669469776039421650495283287607533652063150762128514248107592469367455133820831220316503226142915478463372191480937282771826225783058369547940242032590086106874658062974327477333528323032587061309099045562152895450031099408595180407457344138627770587166746629740812633412580945465961911398772597559970473273935087518190243235198213673032467144633424097269589509373969805681774536705808178712961126018807309783485501542107918027759725428237887773870294447973920738041481568225797333107627734303912721710553396101001654837259461551608818239512206442856838473313655994100015988993003019173277703063409488378261280492211538078069143477443133370607005313200456009531283297705570272726008936818784450109019542595228535157110852763376614540703691773201098711466197014823144483821883976594703811475245417336108240521063022695749773815441220310618282310793635280858287393267982413220809599569776726880815142587510063257883460748839063883594228131990965914989661724112781953808815347669398273501874991954945451068166484002636080313815091725921867711567940039494838088444519351881637565018808316988396345823519742984573942464788343176250561211228739871030562217236266635593682297618239426660923498520668863714603985437417656749492198559792969115209872905442309141740367540559594973604207986561662703385843583552005966650834193039892129826860597813020772361501803097617478541086684484198074826000783027221427188706712291431463007914049387862224431068905636306015673411582165628228059900883572744818750645143767045768530608555774161293273445460411555046845245369789988696043604119853864137955176814126398658198234252460686661449287006111313551286801030173248377130802582237761969586614706570564566271203296441098511664703772252509024123329014855387704523244989581881143767016189588150626297783546404592901931465496512585791695082658230398334009187792297385137646919816463381117804051656135085730788069705231582313177937842148656850175160460423392564179906543414098663827946914612022763468985214686920183782473025567487283939012590398492575618973150324789885336684998244140184816784784873502846991188126802821175071354277617118808665278211712387953586909370860148144194576023124390505183629596241119699944897557610177673797858072651766080014477033295938456693071526189312250730790901388881913193481395750563602622316870959783662474492061397833076374194813997007791385950151239311889219697538177182539710546374811767836993302233957197960606732547008799886368593243520118690796625767006331669963061356138206322942549633718110702656885889574392279625323638243574696279843939554381041799233397671376375754629352128930090590866097005257985084157028688173545537971359943022966804217124798579426494791719599816085455146877036594821267841260904035223510432967013314315943387234006131886281893142750096897070727573375083441040082417540441322764414517397208257402257479053980039918446176384094324324104125098490949419455853974880822245363642973799833943127052491508557156168302918831204732722783759848038367928423141397295228816120542096476869599506951227612275901930839788569191026409992003950827230255201429889023564941304322448155651168840988153293853627850586670096099588228483840029183827165854279299112293870629073746256021428641795265329389337041786135130641309149672727016095935375515151050244766808673853230836064625702979139564355731858227385697025412596689697493285219215678266254568803818197360189689939764635609966272027375947191012531526721377469024705156608283014565984901117763950237160081527981859374978403985472339044731231063947679266740252535879964402775612047155744837360061428957997732173886230692470536199987356053605255817699484534443207826173877865582454816742808728952346262810682878616503998007021105641057721215914567870552367843422786722242683140047803558772903048784827768995087808110332629043312439531675905372599432633975863227195596635487283713747932912841641642298572975402054150631325865118120566428489313002595232751017858267163011358403127982793865435447754888156218513924131455879435347497018791669612645413982910307420379385095806489424883550258884057909954997261164295325026290815556156852710594107371594871951065098044103679555179351916054969034310192244531519310753159226295541437147104083707433616152784382897906228229607819117344629119334620209222725831444417288110561270363645883323547625889944641980206481645539955836752362395891310035021454643963711051092669515911916957947876589130235202616725823325800165096098040089103276124113622788073972171900514463191889070784822646045479085681768092771289242604910238010705707720857543580076807624133538391709413310038518943469133014498528412336879986929729803585949479904759114939101293885337851693607381715891270852428606357125087384575836301998019854888141598549394523453994909777689382425905783696185647650255140421553638543821681816423554202999412412935171564805208051930695500104814855242615591336931642593983675626270013779368703521743533465685573512502531707573280475367819667380905279643833219147443682891583054382601331025198129134992294455670943236838173719858501853541633903198599381084355889670600428155454119018570915181755458353264102730117039913285535571782097168454504006439380889587023288772495535498818089626438653356715577189557230891043899998818711414425389428453258629360060302325436157220083008804077905024201156941252175394436960143456601652920469561344608133246719778447108493062762001459628511739578694469696357077151729716048015039410312022201273450853576982789873812117609716862017240141585725296545870122995291965423238306102627797142541142118803988580440348304489952807982298461808497446185036697277846545297117968614457573888069215796466312511345011993106440388299183377744056439533232912792746095363961831771994340899999922402925171841159879209898680707138223302294030897173911787346956978294094028044807732997726455706415379224685812558070139204179784982465952930863789730039716287422889712233053166818356669421915261418624418555589135459181221369522969759492147583185783603724511082792216657752334646741321429899321529095607015676387094235347909446474576130556124316788353377030676832742026891756215784257182771292684012744761985093869836542099552163859159976796159044021088533513619941078363985758712377850153915693089770416693848676141168989398651395558251833440089112270177646627707149585061385538606005342047570787660401860004622896908297165596704336856970471407255866081938836169463717227001316482748030642586619952913005915639786316256748039820303257665356284181729709250884502524613987718768773633961604167350173828713292560672090715438533434132056476719725958664633158011358905214223043693944664305501912507496772680336746177991536786993580144646419001436528143363521112834951608700663234148708234568001081938497438291135405000616146394865923779370255457887161527546132892484939542754232245683395303632514710631319337037109045756834461723121937841607648370682447136598290209424045167392526489195397301241481098433906952208972574878398496733480400671279217586269660376123914340456681724684584700041936268389313811667770041890901984230417133809738053055006265274913490272875363091867533442786141803354122523939931193144506240157331439555137499033347932517153170993131914379034800560285717717192884464108146273179084600624510313834571362925891667776708729983293188840432017939651529009413831445992707627318364414347021737643454806303019601496099422099326403792505061109227203899989708419993362507001106206488634397675889473612868121145453970815131284850336525967143016952121485098107685103773359687234375147443893369116457288447759969631722633752152523024315686599484274302399270888976333271529735995341806620394039936878093715381387800311619039200249287408467949257478771392002437689407026317301003703699227962032753544783949036114210091469767649107245017975922223306236089874993414082750775668937277034475382395743821462826298881762377901715951868923386347216850764654052799019090163959559164661283516655732976442900890781396560208733106929001762143173184831610209554871463292042506204160200420236785473377855813142546149150107242077289819063420156646408256978833028341880364670501274313378906819234220059865989739264841829178548709283914235799996958242501920354874610114159795738950807613054827226762503930223328747778283834645175767988134080562938563182979084717452781992047641348944623867599265679510411072302992215961548278398616780956315207429199831930096601754456011323703660940214774466813929649155598411976201658111830126761692056976734958214482341542977082184832753484533772888516483845406501376473263220672397512094682602852992134876199945456232570972480932181913997543980564124875171185383963662745113384450928959848416879141656337419668602846333936095957214829256037112533974843654282742817803204535489122122689141724175817897619758609820595156577108253454918340216835495618524876928271681778666029646129812974347573521303161020918364038164854837846984001807278838222107767390504788173240030504748407849573497097218003772394684717310076453004263147952984445790495051979471241634055515715910323271208449135272388438294657220319853972472548383193466181610315743370605425854170891864338662322913652650130601081677768656624467574826102872320737965165349264217503097608749993342371674746192531153434116612466099658852723959196801285054193634071498120802132507201622164668851441233247594194652201370758755775221869096659317367964509290839764236538612471233106705516434602843754814808747176597624869096578191710324116941902041093253068939279890685058210863090793187420984486606294891850752826358958798655818249914826296687613857530864284847807599535071484272513650174178352088771762508137714314476782420065485114760083621493342532513706164617264537506809013108521378859151823787121347827210465183345019074697709528331716933676719709404775755000939944425835977906305858684211854493777122606905802565129192835309117883471398836778060025643706446516005350044323507439528479739863933974568693279140242472922471281984977195700572666686817047252703760964512071253380990841426087939623797354944280867519785695655283293881743350836229506280573142852958654019509212859361696933214982411435456166165790524398565837371711202052531052059990246133313716597076042672176688187026266985248301669845383750989898459545587774294358381608915269352986244745319748413783370358490411267853583122828769890173433238050929441232792053266381963586196273945851264376702027558379693387273171385639004754768306895409698133782489010448926587554949385783381948413435450914734147055851532929282681259976481098192616393704857294766195050673291711208899551866526309149582760998710736114102795421069071810826567582497047646513172932622239457454912688003028501677492208132579391127483304760505685361916713980608563925005114452246049437398202786664429849402372659013204401376641675293289981335042045476734268943960540269247356388416601404869172375302139707349493234133226675238808870333686826078372393306012009956579592545754533631702738072130739141919387166782583514892761711760879124596599370173950271794613838527320490559680217634983969273071649616817573065413741852906402581301946397009323868728870091639766526040284026513041905112889865107103541818620517599514180015063560407088123198638153162989575441082759339901095046755395389365247060185167898910939127670496144987240966917634533699894983723254972086470566666189440124181993171309912595314056713931904415254640782128368026776007193588973413780457776116810182969151123761688551953101177555095580981203495301811228045882136705874070768899770196921064675548248845130649770614303444522573658864739118661283374101344599075741422760383505401999909038401301107523426287356823641782430811479950220445029627750862841950160179943823012407594355475376225175674831066110497227529652254366066544659326936723946851561551204788549038581030387879339704070096274132580491974867325390641885955663047699296624750077213659175667806499794647727693988030711716081362538349605931786851638258941639465361331965067363750901301142443950623486610902880218530887531648573936771577174850859452589865717163591756272538084370365939965335704022487510354767786087360191847023422834564075458109186197147123846290169183349318632836844022764909000594975861269215618359504823598039499271839134712859812052478395917944260476646399394591196283645620999758592461657406013388473700799134147307513891670358992656745801041319616479672996749338106782801922605826729828164775342752569837899595116623645642682971504010266535842745348409698430365469540510881320965015441233496477557622690204969551627096884975531850990259281866877240640399028059355927851050344280134510222556935553052415930398681500129221160128614114160226132789653969046417209321127275864479719268050467804619991952625458596318935508021061815305241700280456383957430780619487096426136979479543930937606100080452849485105647335609060496799301326920516787491518635245839564903391403888849512414658238707085195656407900067745525037200324628924217354333010518796305176144563549440195413568525693168592812586694388493236304350626889962939253884877473722428971112847172314466930809989677497131679609517935547508731235036691900085966252912321103660552124843019310752983173139360362304273177035009894441239994153002717704714622979282820884826486373588932096177431843153576257048083546907046714649664376393410681283188376009432598905101475220180706150536372933831992973884119639787675210679066399973033248561657336841151730280377089841391487173196019365531288021979986251740868559071661149951932690527131719365927001965530205334311852445977040336759760843963531273896918169254572273878315662746033661472897302573420144416366589110840007266293487987985915783621856010976832641713232999557180384824195577211824818896280522281023344024524378264758046520508225140155163491441233726614258116075340141115997398658923908020841927254120827602744583014564269386679934053096807978952056611547096675034419717996014686365501242253487816363178675831528964771672721851258275061173603050559307476912460695292742236552678535500560012271121565840438518873965841387369649832674091596176853316049716543570271873289134176123652855407657682973658066472152855507499910432979568518748599015402185584278192406071735895917876685494857665246944895624958584418607680164129798374517015904424630947863450455117412684933440874925869591575140736773725866469753494293245003311089752582374770363836718892887667221888550206188311455620220841224466983340599868010585476489723529816490209955849702824346362614324956822291092289462909365021461342493016984726674104924182712155206271230105502274677972973137247557605058676046539781302573993091665529833346691410299493628256125332415587654643344745294792874652799549716847479034053234232009254989093676497038352359286950108127930187269426471233468163710752141455250300724063082347521551954633388354498607680723033466091669341542914286628225985205018504431169000178610294867819548806170331388120100557248641547700335262200294506759298437614003315952516952336964028016967315995847362433423280688014936208590879936984005780922452403516856758549792267571314016266344137397905244566175898838536906842442242536996983000895478834236944528761639763203309580979191097657978071295138828253437081336006999941077301060030545409123333848614916750366759649395866214323184507919530484525169051381403637758043535828871448035063985248009040424725878196086045081700623755060360294203519208209948758218394856908086917480838418926806991222848587032425394237369813471772909808990282923189299072707322024944644229949740254614785028044948609674873943140719750249950178146120792124319819872639596909920863346591023008137521596662063668852681573471656959192142879555075282022076500337057737877358305060135891257275827723634839092761394683885560709963927649075867828940499955729148251735156042330221346246672239251698200911923503826953989000290432692637977021201913746801413104138822585012614039737723905161359287170304163425695131997905225886078055420867557753780945375951407656915436844991631720394743219142576970174925511146488537969640386457079105746049788335120760414682292145682979076906367347743488112871402334480725169523498571313171867767480544351614342187665716465953026368277652771028956220716778088992214256487056441068104855879123542078451192659461551702022202409472445166366622780993142214533264354411763532336615087998688421883060036549469539292435643698287744576404320051944070524355459192731864650546916360918250981470730501319218767368741650259472915820690936498672314916853135060537299931672689066228947728171633174025758092178128367127398672109173395873544904023197816055910002025594370144673645367398839240035864975624370500618979413928936111996135790531371026677606190436048057093657253445806455779946062363917353470641845763962874441777546340326302732339117863666644405286056607358092730950491657846505396030052973244088633473424696978212930891396142977808123404474211252843864849459562925944603301753394233606532889538915927945309335251079921990090519615109766741893729689274315353756582992890998823165893223847450444150660546089921353862159423632568131522815011451116471521750848805255982168769177368959596156137854207613486307763788388223918144197222782714371895745861942467462277688738991612356319411343057720553809740697170338208432741053022617180693691020434395987038044323601531169584318320262110983482721990382409302388729173122352751531861557089634586322883838520617889223006183342332363946840054896586341215702069606954071680853408865766748872772245433973877407527772756798341012928258304615153604813065335417194561196006893947611185922544508858853833567975872368660605973853598327964570040513839771536727763261956855407880739279771901268858529728668369831442165898706101919401980721766302901821775800665172871453347372227074151446565166845474943133464695228364111858880821534190605207382435743106520523801558029264089171877536391239913380314349262273250615076551405753129571685760516645046237361446988606812212977890833814276653938378308839851388191432047980249200120797496505744148340175811666916610269976335810915366752009299124626010651841432175704604855700355347610887042670808476668541384273324736971220833177581671309609076763850475103877759862811639453183012286538408144127375268155979809303421603441608392649837899081510560428534600065222061043929075331922135030269824997894617353314076461712710115847537730225512491802682222510264704117654645244903238982993601894097223535968320929025614797894522592522832917552102450188811916861876045443586873261068691543159747768384432771909420007788872576782923624973826708562088172619370013075251314553930411713142922682495123816964132802730896171840211100348965833967120327612263040160529462946736865904197556965374608974051191056354568072739619557755481903896719710777926052087821763251705703747131364722474097576147307422133917874928746219602879842493504168681974406694317698257234382135009703282243071395764077680422346297913498905648601645343673993715493723574895578998972089633902327880583200317942316845684807858479222349960295702832874779778855217860024430714446274095284329959808823567876368447228583427467621324330125818674006733262913048379456979420087459594895059943370568152453898688745173936259884586992270172534081413162898268862600888413872520008473654949884666001733627706074685558571779759521699509627783589228550454332948824904361091268742514596572010731262496721554676640930021158672517696055162658401437028770129687357044372505712700867036563276041690548534253128915823705648046768812105121871165662552898758833287221268081427753674578378417425599674909164687506567864499499917336905826976126872908006062699559555826553226254382917937531153094868944833347978129741652025178074827810780432827149694713941764886015209493976214295833662005533919406862841048381806324879051115616372008692151401830213009217326092343282251340816020068627159827214698881240527556536148583839229323817972470491328880901163387461061153923634499631607226777783675048645972351117382525187081060929776465430643601771045548085217439658816854672916501157151616452037149777311844073216431546705211806463805585784005051887335314005478861688347151003092508505149189556345928804407811967320229670773793459300871095627260087104692152697456574450249123668857463119537263208606644471072918328829415631871973104049959166942383978998951676857454824179450197563799194334793742177833610151679019585166347527834930477244061423932328075654794023864615485324411719716243569294896222315984717926668078313872473982351213406859264820596859697874993061359382094738195473718608257127043000851449123331537190709359335908082179285700173581258944493134374496489933361126264485151356208207143945808048325730500609212084501267779742348608926295124778554463627571253198430557042975936059884316712663882856684571110150441965043072975160294681240396368165085643452646337327351490912193263687714245121230369239690914584146515611996573373026078098810379117681829885570525289900677071914940960551948976571535044360580238732932187453204934372844174562067638871981129184450383099436825197399667496047793122645676283984903736185213312795954402480444594361259965635588164702324250348524522974829453998572577460831641113392744531751745034909567912125224245837597365690835468501934416447770884916429666557404683781125737199821705871053726326923975531565251394208810467802317475580612102109150519878575990106398361257120862200944552125085944165696978206340082829724260120870966745697221462915868526536659903581411611528773828020282132952872093198801428653638367169246793688847424452446267229981657197726236266001557318734674808027270776752515579747847198668856897697485760746568686671372617625431157520964278262963863245269319337090156258216160420652384397765385498191774904170198809921379566129762315252512700333669496360295267548634845928249453982153961786333718375222473028820692513987164084443331572875760923706946675122343055919266852329621728484425840865819587027330676423277087101687130287385458906642850222198939136826855058766913021702343700090232917214023565066228150682915212336953304471172067051110800369586719466794292523055004493616662885121748964366228573815331066573116235494868966030958009748691869088478009594977747062397531970862089948221280651078468135792972745103285255496193024658926470394967921269230959618078797713904154310089459153031982220942922667368020799566987375437233264263350060279954544682482079281727301296723700689626861133706780993113392375646816532115545567443596274815187354938254100213906617523124684712510137223742427766751865947651145958648341834813864153258798426512085692381524966967862932716175804733038629803844810708410950121328944109168301985311747930603916018286805174865708591962620174742784801066532211254925935552217376529859632205802986610680161473675960710896354956771206327059666884600892368004764272235090453617059170413458145173233736525429943719553094253514047738385206220304974139131907423231375984220286524923928356303573409291156519897747007179460160126618212188787200673000774553398514629474099751955162928360037015054574920001497987972794943683727228420087931038119478916644636646957457357754014793632987009787722373009814894321803136015294563924884072739252900377033480735728206766324975477390971261410658420915340695127964244001333497567416092512668077022935099611147470362304914741374344357810065633030498452821540152747017735739731600500867154678007448394480231079996331129060483412647146552669266931536989152543339146540766238806903907566024768380546522316948528346472453456275361938233480813204645016418346044043833431910974782900087319673786130272433183933914983791513669539841941564397057551018996690016539022948187213535991466768879155705620180804974597722058636407321899704194820717941231363535417140457106909142952307714077494828747996911683821435338266588571847758153700872324915749721778655999857884129981798191120243928061614941113898407358924245825109645782180310423060913993270448111277530345872320639847695806726247987706177931187812204408398497412644050354418343026545400889144462360474787253550039589962603620951809253058219308427808223188840483025480518035616963655223392708086356231703205552345904761322229520533984691052471874651923033148200839043013703909557402388405269431611381400668604686901054380631159545280234166290433395420488298992709829200579358631741846453662838276600788355301454704049247596304948878949630175701641384957448008946062864355270986308625166055609772165558086186209777752730562671312389615358820341997796984781200491901738361851927605210529694406127536810691133812762427358292828076932246904456619841546500148721923433575482325305211764400060886418894317945502325803315368376940498603338490803967225113712762231388014663157251698519141802772256602042597493341148295250983064187904189261898621768814616122607085702419533651232322449619302327235539667978871830407049103986195203604884988044820345688896707829791336421580420458498595785434758740396049776684195156906827428117216442040437701273121227980445774097325547362403171202545805659030924585403971968983433029355716487116556503275540920457894944451987625758827113296394292482421411575833085407936836102344122560215881937719763825303306942737351814133654511477359687271936204451363685485666610570358275227769223149511090050155027768625787193157703113995756321667838085870899982707893161929456677520537422388623927371836535831902344336833279456792792130959623371482647673236062988391229759309643209805032623725584039293010295096300374967602299308954344744984224530375878759234569750182612168601307363590688556360141571317288784834010652315323056349048499421866356254128300959250540721524011207500827477278310442427404040384405137525279018098258945395991589876074583315246981634148660955161860822675990967870819440171689988243654383534659496289388147599950936403306203028377635436481696029388822294470816471761481643125374440921593250808120882941360275419834590484666452775656999937155817827506697992189983112572734486530031177496814678679255627559558434916120209639706668636469910114323762948194046225144551187634289473310675517624335860273545118214552014378023564456437962493451519749170229903073082375353741933412779950893764067260120212714666191170827678586998093336967262486332403473646991497938843264834631044991639896266590124489873829797983268353660389220971461651157964557569079386183331384816342050982132169298387731797257275628661689172021068499009246066964466315798918764976852075763506788890970732870272769685530814912936131715579463958124223146341156037250093535754875634410968365910389443627807798976602322055952422432679381768672792292993880638183110000570733858413562862002087654457894667701910327398316609813453850432331715979564291212522337069954189369533447166967052931459266252455808049843516380414449663038726176503010551136313877619863876271131297731791042270003208440659279266839761394552807711073112022708758408633625910817424006900555028671300766416142171651454020743424131069555277028208206104596465491187463104303352962303145197801839177670091291404834669732714455573052161418480837186808678189442732599355847672313881941293460756716113456989571952597486406761350310766378853147161619310456293184720481920143036598086683818938797677020101966497115325517170420780863128208929423530576186743480453508156335040714499806534241166081454240784002279392009197982981727051768257875307980337069926197538653310487242277278326208760625089297798564347378929119625287119013036028117898982653180219058249108979447017031766939715356833707490721886363868056669562032359076929545537996926052396356856167636900641100843188041654681728579210220079585129014070661228585116364384933285904954035764323904366466100806428709228346323924566760497836002741361390593726272390613102350062595739051423714515246760965156569488014139815694881706206093779619526992350326658728991259615160304804949281605606989664043121860118209580108624070414022527386657418483341018590845813789913010888900462387894320258231781388588413531176352828550274448813431653884410491080374439184561280111741445234686799008253298184451887385488514577809846834678699556573973709947931647223274183155659744009225199611211263986879078925490044320168174343803576810651599820026058133870779016843157887578123009559721298438379474327443335981769660388735194933880597730502809335118845093868087114485706577777923548903210625047236946306019833340552498793076802028960122724861642648717509220154062540758130598894951205131674687108696853320294546406324795774969906858388863561509576983230751427616670074016092155994399871167958653751639408555893837171599121344080056856946128540519566609805163184105072243802363509329253152725168602288204946642173662723190107321425797065011726509130065324512783777018190327441971418955265304006635141503467002410609042309061957906816975738090939077669367101084922157385370189523161603752083486239962377178163505191479565206132125396915241655568890133307383555486029953417921690354217850720485500013470678992500771666211385842320046618191211106854776512538661381234821779651700846126961891519766415523270724451534399556442780822938553321498717622850213268272070606467022788024396306178567466650385140669961607242506427726532076557644071596034244013746906210754105913829683890384482946545889220814840645362546505052355725795119523172688274179807116839511570398425526423000991471803585755178561242541611812301455655261398262393896819535764551943640049308738826621702559935859303361774506006194634967418295285247679799391763093311937761581416033803915833751452693585259111111860420280325186088833085987618129034403748062520087170545606211523505063701353117721607468660308758636305720538445505766999922867452128051376775635618378422080491085054774499731645431111431381902568485721285194247301762121215535019629278559852604588629432388018959785896570527467480140429639024996990933374631125680235539693882239374963302809777062851361493624375981568334530101672136428342459982112337090770363514829807861227224130096741943235990187452893016222752632429254166081360338261376129780711792718992103675669761623901002943838244114096504996094455590145082850916919271352251380165006611752682254729736303908440648718198246363856818463152805808262016753702846873594202919717337795479292536910565655304651800186866053108802435718651499289234905281062226005365479641468284049616906794640649163231023778824606361417750954441065637109383323384008535464360438584210807319251198306982254659919855461228464176284362194418852355956675837085145241560683807878176553467216931001452580489271101063232872483855414948733612847583602771134401643012489986837482937795391069529251623802095354548295422017924040524805539735496856183221340355407464258065284081960338643246896123061866049175697638138238393955587492955362079120431616578355399839594232304569364176980267936511761009069943993383841438043902070383939452490830072346713783087522620814675542393596112124836744680434662179695552299286577297098142634694779891418375157166266704740955354658351168642909033472012292915507632578902686870069195199674109542976496571332549805732917596666001758195932050480512932629197024791329890125311392901293468637244781403321488495484898328631395752168406834143431291264956198067427258409340254018482461470203297187261252016108558368428567670747686670149801297442465104883687415370098513818375150027671415909902060685637045345410280360570390903015421234510431440470297024877608210314654478836173511283361551544608998079226494892144073720219072080792951179129032816897052175468779906427910544205095726583346075013950204322579881712148786940605619831030693782521398607764363720947293323944303785951462838370192941047715587239889678307049503081993235924888451049936426635484627383145438313957871732082828957355475934196212401851187463496579153011128995514969542538319785614573162849231556647375860112312233811609106088716938503684165100232578266332495491955772591671064052772537795534035159139835690605183494588445143674366302209930777273248293395452795797607124488518022503245056971762789273637633368598171618625622973975336567625591465304152848811408453188588468485231519087893448079079157366076011444688639461400664320791414564624615972322255159223548784022489766736696287455824241238384509929804418757031533742122847626572338046193940309869845599403752967237052307582708245854226704071920426813243464969272608026567311337771816256723198146482451128831566278185140695426196118312754947929223380103166313086753792535970663734603638636906033559219620474568511286441510917545279178068137202496144352259256779498285773675914199805192513881792157011362310840304223465688375478653196294146398292188653004016636095128053427481150575588633540328668395628177241380530800465048234821424722887305500812726391121545149670170388997817900518181795161020320523013605100720957916444988869986067395460155908680743466219422656227464754787977227568680892120658486478246936810622114189322459853465738727349955423474947584012128234305352622155833655411384498382504118380104981540483820802030909445933556528329370278860827823023610667774796721757445845587830999525867574731458561056863218057560493685224724365454765215603714646491595407160065297918272389001909688952538821582785248184364614531109677102375771548048768225796709820241501500998868404460751181352196270488347061470950114527253080081686719044116967854427359856967556724177769472723137795068646291544454291438462893914474163407385132239188329228704665855770935149720373315426235750013803792448212694877035203478581061384351318102446228083340273371475202821581424546422388666777273901843670513487543423774875016449985380738849909243241411207770394207464102554201165992876637900858706113096253003061587403842998694622181385999294927364034759784108115453824196904691996146252205723939025875337166590553194303276141684575685014271819465175075179022432011449680028109557393412088619464062484017133986995984786053472501966792286334905870203565759343907708005796082348210265318781906222703364705733432447748327936511142176071324015909005419363961189179356961617591736031391381634359055828117655361256949007775044902362373868926695261454776960928280211828821067553884654327454117631076875913133806954451626733808726861425385783369390357480415691647161253227204700446214217240652843518926508266843410167743961827858483507604854123884542024497357249401202352855584634529434954536765691828503626161721547052851217194724372075307566140018474006201474709702431459843500929417532926585543910178433791088388563919014312181194095014828229972225385809853902298002996406095538071790818679975757641417142154251025264228181260544333707516998257835950464103938359067182094257652249458793821678957752495173343962040120721110927839864964035142252950725114533539096354390198886014679557314102101377451683680662229526110121561078328699397764064949359164462091544765945000214050672833838036236184452305589636730128391428996751394970964025469208408395998173474039215718287265397423972277035010702846655217035446220114201684065700722191990568646598509685559516891384641180100687729133322495924336509945257958698878019230528635436506928349968994850449911362275100471977536937367588900265173457952120444291614470161723797482351989369461071832169220286500015476001524854841517749403737397502974110562853972887357892428132070901178160177312954532785352663101703108580206717524267235825067654166081439105275250255199749717413920848412457643905503055594640375685732767213474780105870254074979871383693263637079614547689552480260566605098974171220012350295037680939394394353341022059702483167598500331205939130489712754706894474114343560512390953954301131460228133919857698123086941571499687373164637846922982348940168350961693563108173583387377240911052032328481871725293930295821312313849504696006974997333864921153789584584746691974041536857391375042062965332070303109796512510131806175878675658770308352463742377960670557990285717198609294775316948608369514774570168437988544456505404422766643931527988819494082940681558019191852691834068565438615771760089813546700222270603782418532410631366196406548848284888243540851898658481748228997766814093384171373908148329867942822601252928398528973498970652986369711254967637185914463240764798387830987211229469214179774981268758581442030696444448209009109335382999153570552022605213781348355252183544598497358386704988373481266458961774736488359022899250328384990170542346739142263516490208187195631784144216713852770389760424573939777679243404845404201706903195357446112104464456950192236836757113368406982846321919089852422265658764032655562845485142732651329317283638004917412736564420384783278808030972929341633610644251298044414042988278269688978565047758133204172757564836645431481998938540071412110540312759303055629581278978573543235438149715268315589123495771141699148604305118520962057765715852040418121509748606820151304769092670488077392518788156439474641840722704702656341582382517986351771968900986571239836627391572248752233170808219990013663086204872779959230463097769725999830777777093667682647344477240933038271587773329508301827626552145631807915364904204843102069742812419162241701494115783220458257175843250694926440732400769523161341752132461696483566313408866837298790156500792962519771869917593213630056097235320487018817907869585393223934289616890552105727174063301158326226582498171940494398964013159377505616748465717719288882624045371068072736581604916135802376376657524885260876888381389447312157734581096804631963427819522108687192486568820447662977659581806594190598275975452637441246539765108360513970910971634083869996519574149231950315330819568675370198308779046969949914594930617713563916845410146392552822103092890710967018108187257783935431732829579140580822559890975952589291333826722381058370108233767214796806842297331244409728138987312869325883794777271714678492149979127701920323639963960708107497182401296912040057435698641182770369028494484783069807814578724523082907098479287966031107475491450400065957474879624777070626649971914341275617707686241445159421061528951110823611204509507428945419657911240430490151759250977365394402102106529372246218688405913352482497712765817490203393180637656714719449625961460933898019979156600298898980992627890645299000069917595228955092473836760317361648164375814262167574975364727473080264992306341727647774891876746163668433454325157933895978695344303756665453359425479340001188087215828563286182360381058909257579467338068551926869638216472398560871758886447671629583077643915904408408115166498442190632975728696494173825136789832593526271942846312437411421966095125096534532960836463156029622113235283755505961885626605690510092758587582891512396933671533175477959203909836188020374435586513494368384939117135290659855566061586531256962973127612688224796766241185130569635542705378108530314613444064100788758359763533768910556074535383252409879136288220306799744989252899252285569280055908873134409391764765329731705898320723615761265189348886584304673881119048399437232086218656711961224134705310029718624615161966217539101908641129918717315787688864094397845456974204443539267915160650407542197222582362916375151270877425698017110034642465258125027277627676799684872640560502176518610451912506676928611074698656865995820695502373294419624688205379511053429217973930421144172711173403532636510916242925916513387717130262913885772141440777334276776476934069141852429946806079213180385102792552715434546389759806939705568657455882678113020211833709864204618182140120681696327727180612969329382766190815005408835400381052550286473634382694436488887148178870829370012181928480468876665835926447240127407256592112751413870249169361009565417391836234849978317798144289324176024711205083777434592722602465531777761263884882529554816575717670358884048318372547249679402617942605344226925419898718718322997832373508897687509282785324286965879263539216161009537610375917526645447115055586892216903276386302310856211713461762295982455530746913394054222520790213802015489083895669423435727153871840168301619938042647075869025218562365163988986206260709180555364704751761008013347919288464852160556884486084973339895478458033927263294974397190689574508358869165655788764126720357745285478663919140171512398502823206209937734016772941278392033998237762762033672159354933988186191055681241573713596126340904154142249487866021828668250767187155438472088833724180953299430114861247051547198395152323314626488215049196557070452973741297712303268844314213226783614722905041705107774483746135213431695653559697500084238117535519174742671454473507990198059838458826255943050951365447928494399024374343708152503232519296496071934284883502054235672550082781903959238995089087991878419883123465829572827717831676668000234303955394679482780105623923254986336186383552411982075791462540890707018791256029963927929736103989661934778798871048359175925807531727226344117678953826834338206133604918477246568492389487885806045427532924585869796410316995215160137261945526896019626242023927639226414458996236425716394511160764668456763637649504666227982959047276286161155537419355479000663610264921548229545042672109600212303379470279418287449745776674103009885946071593451393610721806502210063956454933658337741424091067269487293672752601074748013056047956314824172266665755052741945552994124678106506133882671324061269363557372090004818471315296137738461994894533291954035358968977885102594026488133170843975597581178500365129655876601165689822839587355039705975599833659441166160099127013072277952850968268432244501464366103633011987542974554642115333485430770034847176927175291346789199454368235720644517810489306203352802574588696139046042955966960190355970886637258183066407686303688430819452481701449601049497923015992059276398791208819274558430779863958641232211708471262417380897148692662544919215666291551692338145751524503524196326103440512307829280670197371767315648255077405904424658784945425448698354320139920394534568719712843415624930303362690066670714250550473442698616756875100668741287570716978215265350451543096172996267559403414202064278858259873126568866895773643169015878505279440235391950985204413087726374022705264124226735035746851550512323655571654538161863307999115369249734090570854340155373772396422200038231853819181163765731544863174368019706427042152121611443942742326238834457073432622928457402373570615689647535538644709538547269277879687308566407252374390035433723616273997397810765628253828898321714448986868106717837569151775481892970281341970648079102332980004085568429882788383437315952591975342397010252061517145815926172263688370995476360216270079744853196886273789954968056513556772853693259758369790176719562555752320309761730436930613273432936701260225588009621559916537527196992045045893238334577877732749943136684283804887306066354929543864210785795207231048626423800218751110396844949284866478014659057075298848286249573738834529632550884571532205601233864913289903055166971932183544370879368589287723369270353063727419224035364201039778465812246669981316517641074342616609318895414753000331646563733912507553120656341382565710567211379261362222914053064108145282413007026953337353394451645526769441207446811168949791854389470317414353280512221508459942403834782290635099122971742555565499751641285254537940671036854378246440742159068244966544912398636104764376902209579881544553178889088839890803240749852339392777035156783334229426810116555503128608877299531567943502860018508700382347416998412293818778693414405658759870486657356569630591930294178309138623485280694700638948112937209641441159967267494591086360621043668150660429541926490191568172958621126876746907540151283700472610751013063053464893918959174331074433357315111346387347325005535552815397345640872018206034859372705168715346728222830145659689382796752173953156415035833146244424755895126547177260838818330715201350773011520974621549963730865054279741594380444715205473762494190636753235000763332302468688076764492531296313839814556157857683900152531412731521858631416550605021796920284884446370871424047428447681724048007108296787952112270564499021040985582013995639098121933944832445833890704579039335150060506499633911520571365667275039383277647079040506049942925714161856937890278344495784076029433084343470613682666398342272825818618587332805716200088450125635761835153391181131642277783368625542215520359075602358449072071051203513969417989205971551800761720644174928383328105935748392491799208992042167521476281254123999860652583639210494962924638929114206995299807522763060765932949869808886469432801265391127439792634125581554642756870114759875958083988600601658216647004185677409744902903934656997752483387558044395689833435862827779099692510359896693085699838831266175293535258454680180455395740805566971899276526046175782814617996871018746223825591043899445278979579850663904440381268826048230124018017237060182386185968689727065287583554651416087581950588174543173555071475297096616888967219027191593609488858735754799643372717933698688523059243615372054243605163395620184794903196693081719317954107093997577415095489189670052351438270769067699956613337352836875778981399527612845916912397565819484853317881439326329234278952176862436120815625072795566810255167320209258213119146381941455333753606585768067663674740074558669866274508475524391736058881728025610293650297227535373756836651586549051000626812491269113036099763856591721244072285192464799167803549568439401064890854419614444858095994925006054959215267739372022498468035089428507424109959258098790601445899471651209048294565721901610910174413832961964964153632923907174141425912901637920606004742187222729582767781798240344455827729209262241856420547595324907775280414164573211239795828832860746395601024356573945098714971399632806015290955272561413834928622131790263963851983369641952881572641429156821706849373816202840027982397236709516482721899183173534011385686203136820158246110682155109310430367530881232319271314621354132473868826512562658497834693855373269046052441126300044911517634519688750508359701616018209548348803888769859360998639753831044839749468046451667534842620488643561067535437310485083974587575306575879973780942859392508191962505679374641954544833422988180952196934015409107893621533823037125448135910594197975120592050221583428674817955935642232215732936710405289617578528541282493252830379493163102344111442454848793045310540670445161041618313932545297969302773722412632571856829993372362217411044768902461678339527922335237242444968889545648920185310729407528045482888600667896934838936400585557138308929540035576547013526069874692601910277966512654567072955252199677159021437371325475820252216631487104620540587396771978263958369985683146992529744282518076624266467864563462284201131403188926773909648401717246461414090813804086225949329340549495980358990843348224548172389707211432328370075441720856357315173506219515014685408666883961331262990660352266972980976133015489066566779666524216877775111768224199794606903737493218638539762294607666667895208305371693635606826064926234162700977965671581260742095191510142436700453830966847467556529430314788164032388920003946577573562529998949329739337957751715482400136022619348602001848652388125335981275362908881806704338476155698881648634836567589287459492479818103388326965464813273745576584736215438851734141746222032761787012226874092740573096931054382861566706569293219858828702775584726464230596699616880899422617884685192459571638645194232268507472347916341295751520765623968640849277875827285876667883470072637478409333505945284116058955159507675971142029092303637578809799972089620235922047687279861908379215391375304710968108268593664574614467617980660958660611953548535751257331828647902878162146446791861472133141925826800007800280006869538287566638659804482606829223644537435287584686125866421874016351535248231340250969175993259197569978536684954295777658870011600573784773662736624169784572810738945051987112910769677704003093506661313229782279637190310891191353137114981552792307284042868655457429987282512574313095522235991089905541870753693604981963379533048565524073757393491741951782004791260871841226424697375299330170876350145741277630151608090650026169635660359049967897395910419835912214149628024808700916091324088051832614555688482630710728271051077716517931750362371303851059958870020256204797820627218588706082420094374890773281672659405779863238889895892306402013048753988857093496753150524462591224794464443494594769308348149102693166646117881404180121841929990869199499436382377006277674120151154962483548353161663452933256534540340515797304253731144550858731162633794314797577937830785359046606721812098925624063015684351282699098296127070095389596089102646059151721556494567939016306871073866621907724898358165414067167699344456107464291855905257463955465326859874096068241526343335965408747140371176402009523051877243401372623598982150474714283486310819219532531108991998432027914949912083312798270808746764249051023532838991571938523560758576873383199179213492641571907952065812687640717200958740093671975891303117075072136219367165818786043885361464141867679102900562312893155731167225578662417515693388515944590994564960391533597994134830735277048206361076429638069303890447164527532738962224851213974767850433145182913025095727604645663160851723956220089491306633685121774941963598621459396863648309243647624736104194946476882824234295966667613410777971808585470379478254740624921967149431199181751129213528881369012443344275141327559934553189087635018764980359799039788576870562096318985596075133312151889654794035198449170007566130855701335459741829625975895720956021624622081228086668908495800977447759778539895042806356825408083601988939712295648926892869474022604367112730850223344170983337681791088683584658853976920927548721577896552554654630223520764335675232051772237048919756576741535983725373991318418787463126504435727159506275505584968620387740312424991427319122926336988432194373379513683783288424062015815498005094154169401857034492926878075009996720478158609545918621981151222072107876381357010834712195404676535623883519571843494877192409462233374050580915021860937944441838979472817153267976603959035269514993958965510177336904189131686935132930379779325184972824419084904228567111541274280527188181369234598039837415243374509524888610214775230898674051253794233079310749568325774304005528591703638320395917891526318154436474554832358112921534896781075415439317576759718237023315072447327535161756460224328455380847632287056004781105518432041466805190245748256807675650084874559897639288500567098164454954395845572148885953353648747496199935171357302809853235236561317149923752703678245364712235844790508296080717643177867883331415819150810573122310166257116343258204550415933257860133075448826967910944022831734722472930738144214678582636978053239344177648572508968866830666820396071507939372274641652311771781388204390604666065842757110610385497407583354869908817403121229142173527253980435611806286420994474036614890164108520831828107955875066036513782064832052540908351829377293137587181174323034424906634488518243586648450920214781793254884376512015154472598437351542212066758186561062165298144414447769681800316965079304838586216386054966849399688988393245592025790531051398120915351657171247315124734613405132514863637128469941845751405699075807872647499926918785270426627585539731399567795166759550595317602545540929198749238652124887647195836846762719994421380435429273941802809637331947239788730298382282198671313247631720477109435742668947099090098413755681963179458757010307277690065805521525295375831231515266585298437994135934376774835214946863490405836418838099588849962304152129957379343353848635066680334445765720648976495845249600688616368033166190974443444626959247579880716494079838909409747451517286372634855358316153569497235186280504366794716254155724893289021463945784293563626497362604567992680813105681672345605603233043179232846709150277394435666591712157742776032321811924510963885016563172253866064297589699189479344220195993944100580117297200476352261553185973846232938559059233532554517617130993433564170551163741684102777173551159972073753027998446264415444718843808600228592500389904266842145548276850934777374862660408552284045798228175637243552138727105302304686465342806424866684155488745762839735178762693353606152483651075847927253011676742946566779606680675473894983235406071151735891902396620829724490677424693519766249333204443230288337543863788961987578070338870120087469535468886245443542696726083445620656622602052366251156175293557688053802052557744387719847912336229356830548959437184394117091423892186553695939609016251333832663932503762622012286641623088097950922240420740454331209752813020997245778794393162965666716650993560917721976630617372818930398509061349530472782958725970088272043427096943552024694564162397090355653988754405644004261147926003407751252184475008887701590618921630614061299321994454000948958053913819549219672583685639926566922443367092598968548623016738194328351209140175714015745930066071016770271190922286016727562206256047522014308400775771433985655735750878985030065551449896568463019567226671753987966742950036313041567959199426129484385303920638764495553915786281544461923156614524409160467194473634214112929361705963743222250364550534467076162323845891773819606135886667043714391493943836335931319263648161795587846096926483330791906748415986444232748899790254637918925205732447929931534782431017908632984320422338984201737603514271685544660161546532853426147289484836805789711438592173349696236073208705408352298417858369704942661237657755645005604646710756087585538293156621484691664719901244569478282614333609295019365950966756847352275829050270968609559876420709460367892642987204090625123512956535258526190006941845064717693599935824710626569339014359514875116076934430356450878854248186732104405253471693552801960973540262806923048137431922114383744287564189431559031810000059880315611783071487902714985262968041879999771518262045572394932449412371858695072893048239643986768118073128655070760244514824139314138026482995710370115583812286011412457859824800226299584350326382264735690407607181555107112925635666190389858288250032562428933254866447758794492411555754429032160839435970593586215658011689302195319994962991118682408409915435156015023810171167382068116464069151074387487326082590391322882800744207950727700912788027112926872489775891467774480774505627515929963645423982647531219493935385961181167098187513825036743654872827249755625116079569179850697950838281744110445652031881551985656097232731873927542965676673063753237189542880406315699701414987230795089944642353461681066039969326555650789563203693880263503227216816248575115731693678092086833793300758279004969521251252255225830985948340939946903006438682705512347288319041047882848247892262073300262182671424806535698391073258694850601134126935219101535569432418950716603474001290354595086152210190895760280625831211668986058271360852155559679293414677512377038524485177433136369286203407650151783393823637593698621901176150632426906372991515895469118915729003379039302836007624896771373558188772811402162933071999897547751307958227395426336905562566748772468897655949721006414406464647712352959641151364815134449775221823633819094081095476202857343191593413381803903830768972518577582505313976876669736871510813645177486457580652997643155424282467343428759242800669323230583843872768101828355035532515949693919521797307855888201129920224284269725834735513142433966600001779063454405541348977901829178112258646052647337299008708532709307380331470278719209863812774433872312443307486839169835161512826663728293512891579827384241172059132136296275404263908746032377463207969104685596508919707145899533679193977241303472470631336265230301489604083558897010713789246670909954126068398009430373407438576682918082090374291984454979079789847377550803793184398087866906685743755595754517236097313630353024287769199815084988371268643708784398987715349606719287788365196799489501592132141194643905385980633071556389407337241918070459734806038208559133131246838610322743975509735355494910107863417447146123574378405346549110091408057800459259612526113701505921573092016355343347473422353653639723292249500425613718572424991494812297143194550133416762464491862014783202886463708923519861830305432224709419623956461187607549510724903655818007427492434626107627936349222391693014225392364557471401557118970272291494302705730462882462705302415490374129246603121482237692603750472718130639794451581835490603921826921126342584782020900639575822859206847519786259112102936530738480343365750349095480802252062455747025162104266877109457301274151873707463679962575834114751215754283222778095668659254889215342208288097034966733887947372220186912958863216716123037917195698081103247472706979473722394931229262250040835423277701097481413863382265112015716829185367268559537213585804446124448065116966332499395993598331172897929274022803884403682157203516726903850813304653887185504908476267798383268563998918263267568896361111436569063439928115614136742639026810773119247091257113339215363091525930977851654545749065308781213866059645738798999931687421143343202611386857182169831691511642945297651866720786672433911481727274112275077825989830296713290871893646843258395933774446519789368539560617363281672889223874433902112237712063794392781613119097874046359960518345077166713476693288313162572972711985953076239843916865692511304418691663141298649357846615881383316837513154981041162124639105884125945336027286202219687555945080846159346408955937578159502456241894009612311299747354539949662193508409335005479907883759218434877366070298540003464020859147653101831234768867838690030610768488008299384625958141107185358000373925933748663648478630878636879551889955799239067706531218096988098728379502393246353547748105982971079363836531899915974630141468736576812987791332609070486878173256119119774168167120462451686902441559172327776705660513647439625688607215295247503934389422684195614278573179399720587610960608921674050291238581561360322363316271864141774459494450021912294078380043943336980600754876235428394832030098867142621811476889610646158844907917665021454934822635081453547488629209874318134460306095284902833127650446343330854207554147514169669571487235040626977075940378955265135173826573833727338668330251574897652346043949432449343186680816086322717494075835341264474350614038929760594298018429133406135126242748011022022901235595042691864401193350850048617115771135158538569404091484179476929973955920985088427421725614312171716963124681139271370731805875735827525772791951705608757793515233033808899273339286856112871974532260863165469650967403940722024888055642271351204128480675090196724963907009781231810518912659883085583638095686524503241300550663378902959439866543915291491769807168069942944397111375221326586304665323715589505222829347932111960717432680776765425084318901375635451587833591615146038685355623429246059453916826035142976969980168426422352856164257563024516356459828574400589237961219111064346264308357850469764689949551686938772951791873813180522849741167561684873427751885849482665094744013846510587142071146602170537405030768850163192369070766667165305061602666332126000320993283591140419847921468539265817332441368922421902897212643482837151978452053528411743087643079223509613293881723824378906825896334805388292426064909029753152720221776096024659659527292820675253853065221710977229632789834105492169688568843692667879376271818639608819890698210536178108450965965088476714088868421174992812163511337883072183612705538812151732843465847307871205539406427301222407013431840460221289551036476919471242277788707414553469748076687491012868969581000642174516051674306460318571410365728352695757919016397346966683774454788165643432214661524972987883192306517358625959043094801506538161498424363031767891503099493335677951530190682836803119189668194507504071316005607846121267319669113894213786759332675301241055985866212435925790988700360813087385267553017081696614708547112275471664338510760111464398147589275839411101278458188279177095193938660556119395460888719167892821009579170277917776299776741932512153352292946118984041555785572179619454506537949176054017333795758887261516161637324954997945105705704446841437461928606064669838697826648127275530750344419881472912680178927634467851139426144380891416297579877686001831060908690789810719104490045893027834036998611579522554934663156005887638514888844600044411484271758221267633236732015732134406168946693129490530238741737725748967701425115854701166504746420067542409877400983792756872068113578003016347371753520696696678881815696249192657662936980188694375593813527955593423970178957786814318662308875713359884858027135395372660316729840624701420240440897410868978768306289059435185391210047161856406578063670709217479709827520285010844400189643251059264534771624115196010852133084990845495538225056812898285789274907736058189067374352108202996294869819156357678936873695305693614132414137204636012863930808873530589580443143720583610768510903409011356797503719240469225256735130088933982969820934625420989125090001062834953277745380790208631657619039043689397461210188760849834045476771962155140895466243298784559044256055988818808503542437507338533291127031129541907893876242301019568995458070232001984018120996302737311293290767654781132807876494328744848479151845058985260342230045206076957209368581867046100068855265037547052256450020677488763045756434507684863335620557861829308027418805082615086510818197403806105460360829151387278799193905901378424277175090970742673992436036926298050919774723943762632652368181835556235206579343611137565859817298687941862722535512979394136910432864093353845394077126186626708932062173055894990046450079231701269042684570565775629567902122711386025760021477208324446158141999856819263566944461148710922821285408192136749367337038325007059743309261671087207926814390433532471608506487219797495495279106909743275262114084908904042342923742451708592390575366062161095664500710987269382587269519706604091790904708335705360040090899293946332225192153058210296494003282779285649041006846116692350674410689694301001468846988975961047627426582160258585014077946319899241242835668469407045115836499226784530699459592671352502471945773119330700015391066425462576322985466082183103117467839754137449590916962920109637347553460859277859309476266019981842269946133668646147633196836459637272313194144700122865349572340200490948012245769816308594266288979553748554728595172521399052017995012759612921751117815906297336126656900042028503909156371964377498942132379306664942188627595775366326259659232179361701574725861818621688803237973231279434614866165982350029511469471313343275009558786157121108725800265581536141596141263948643894567559422444200298953887562767608679720151507166833161933949684940493636234104742696443080801968200420362620720446475172088336476498179734473288707248601857194099875295928365286260962527897434033935655768548278413013491342696118980467774031735503039311464733793535095420091858127529535025175072113473479574699435038294713044987823286387977568559887541384049638030837526484073323503684494720151318341577537804786694906132331658535259229752470354178846661675226664954546429645138277887998844148493082825200231751715392343777996339094975243905007321516481716765924350843482646485664704071533094404762211532059345725910606491601030318612486574922911221561001231479474316598486902897689921952932675505458971719446322829190765990434171577741600264412403367153870227059122753554963053632534903671005230494457793058220748592330324366469067331998233642756227461806684027077821327279054276235743289551008243623043985182241830569694706904684240308533731913878619885477134468951989536139466008134659506051170767043996649683457406237828681564562410442821088447463667125808854074352264583804198563522200798747054782178948879825429309691974754470972170882016476014707603337726874810136615905756417234134760953540687761608588133164777270144738736255965700877658379856602393937330930513218830280386420469287644411269272538180696299151265063591655437160169832152465516503765468205448078536577250503367019772024147263939349465181859951916815119919684018836287693070172521996398053354011442590499513536087420465787947175959533971621942428386267998387056405030825096368174921445223811155426923647646157167641108647943784041076601113527382280658283708322329286225147981703084936119871778530241213286819514483449945407963160949161487694533894725928991358781289930496925225626535579432741410822081276071714452891623079352377177781305646524981729966083770020322959093420934968142354170083427835701685219005721988918198341646050498559202680848664339129303468977492763584266703455173007772317340528629427689853977451450500773921912208876072799874523785526728109788971229068988900160673149986371587154408238637058270807535006836553543294709819389376627050377773263730807789959123101012085403305059963166029013111978192011099853048575891976136053534779847945819484962051149582740595411332142835415011120313725615177990471765440697918136417609902719881547853253854320742278456633841672283253900621315360139516926277501460307859799656321589143758684543243168276339674407997921914600817037142748661085058286592055153849260605331316600602550884866271723762815487281882508711762823394864730282650399154130681940364359594838894791890157154429003873091318268565068696761615083439972575625474377391201727908800838268746512576722032613175782594935306165377799149999420008549131646823757441452624162692424010682683385104928695553734770941983550128835831587478094761523517616663274619949250362166594421020400892153973129128709225806905492697803057880640059987210976665988231639783770133957764490675241460350117468942666133431595117763694741820658143710364144269446487169044672477025311010906913926895390711006017925281241040569934442712671502569917297353445338489941846758327546789337307439637009749325057976359672869593621408759228138233483352588079818250570374982448317466938425388291382183806581239935945057866303557123845474051977594175551793015317917999722746279171369745337517032390705450790133022247103538191351533019414959741789529555169114319315423984435966085965771940046100184216990138968957589614120586511795107171063734333623005385749168143381239888304801176579462922366070321820305283605211839303569837971855678163489889655217129391447550447130074732800529993807307069914366823429140062968353198500717949214921413099328951339138009036366983742158948106195675291139766277006841687492450930435243152828303935742652581117078671685615920600840659073874142159218144659670108094345595566875603382839313395465663964844505549210334153265775435152504344090423887299849668732302661635039616087078137352488148642499377490541002721880725215460609870853430444602960058551720387226663252890369495473279303589976647521853096573179926425870058342648196763697768353071392660629419587006966087436468404473789180329910138232235075628233825141132302176551407366323469278992404946515780322936119640075625053789186224628256281973106538538988646007774551969568674331313433301374566762696914753269084869419731615567896521648997256975197538310221610679993816039354413371421980628232569876082731262677013311598993055870051871261058081163910546161544517379558160210310152970295863456908864840051638760788847008027141148763362785643416897320388933627083338755191214310651989764518494981604939187123862518725800052142994756454142214696807538572950886053660346149442408860640729491905725192873296502706559632408547611759164380104526817801352983766876637436960133870072288302204186710098130500912076058636682588343796326419947561815391719207924927785351968106434946045765414885148744996432627497986799628697122784216799488243103152145470943215812700414604988278303385215811935389263187273713263387705665179557075460538542647286495934207911098295721276283006154356124937399612527589669527364085988063189310008076198630402944957797545091190335799034152314143644025619101152567794850553494770919931166139457684126901057454796844490411001360107590981342850699305086311121707501152332371583142324566399561000555828987789816472977284578419902241006586090555386672937632197843595555396443118471024904109192412928363519008065238907553649507746617934371433316505488222280301327723309828731669662167870757136248330006611883635914656239371443472843404726945552460154589113054478632368844655384124117057261443129789681926024785064291744149301399001985881082731162969118343767743112111413751249778065054320750695331428347668172619923420891983334931307053760489953316883332958783917449810392258569288169935811039808395515907512956602047180600593551845369740913988357625617661310790472443018880437120542898831999656040173195835602770896296774196900328734041240172994747906471222022587085327977686071871037522951783814078393635136386033686406158557430480770150485401908584047605788187653762803794074309764256357560637773967654867997948784817258549644995985534593308794121178537835702592323183574642270823425778422939232445047450229635104392919274508364517448003638715013903831856619997612982985719865735093368372221276338211531715647180164848701264739096348268049478809991284602184823265327637707049531891067785533534005404384057977870159980683913593063467852349631696686019619133111973869264014591878929635762122834137829808643732767131574052874662282035454609525014410763705135773446531968071138780211329400971798579172569290852266613024354500411795104610067975160498975726220033438419829430783644428805346258765692581994661530022206169712457325056340603881904870227727058642722816586870587657626184804249693912190488837236669086102696909121402985546076746559812123855852632139845756893074528114188482638380524254105955307508774932420666265598136110801887920911186259394738171163329739762963077521750214861933243365719177560901095941066028505176992809593348779735946385908611547765099757158479801983177855014027725188787352676330243442974182140806742742772594424694289976544121910418427128129303543954847142449665830690100847437408343653446831697686162233688855944865303870909650896194805279077892820349716238665047583745419940696688033664094527719013534119599580078385685662014079035438414076138701563444728753766292221236323882751432388137865362039162940714344492167982093557084436136818544712096233823915926809046959763239038064225832817162244672344993635065708499744126496466446972667895637184321197401473818476043947034522360485327024382805334768350769579190659043407563463568599040299577968939455222146297402589149345835111118409751914697847174183557446482053466249238630675435450871774212730414654116241294414018188647353314181570040655566434686092025643799017452104903981701648907235988435084090962215542985383646236047046244832116615902433170791652909224317162388247094128849338962665309111403292131643207162034956050974081193189343760449657932696409496609288203368013931568671271558603986806342536874138109310657909975587243171300967287135305788318616941467973815781492580884507018016489682838075702008843128202623822403022926439715881156593569919052122918143193434720483559174836944202484682599833703939893850756371408094876443979748234897184566885902900653063743269766949217570783778264737572867899572967917429842430205089139611096532676853395962812443480582139638842279171938775534561668507839552593784273661507318914715764846398175674107908886315495036504040566611701710256640649089436213909078579474352312983196599313273205184760959462326189853199174122315576170963583522448620223463166244073041750990016649376471197149871593221388656370851850069956467092249868041266699874132503695830960873274049060116481922130714680559335722875176091393403441058822392633658397735844720315449258956564217042399931318542312608826844145889671272851058667028782815720738041469958006200565705897919763920138303531962712337847806773742234570006184271399819306060012645115175776595409013115417428752699017622397523755180726682175102328373086036788377449526932958826922064770316724201601038591754659590343294788677232742363740513449303831151054502724861464502385937102369508560884357132229132145454063021670908179791794800991655897621475204103012038107925815353771795103334193710408114677060289620113143354667676869130159562983399702448392335470510472689805537085772622815094029753646070016015708565221926805674853388594602346124082613869139169291491463528551696878467494164673997799597684674903872185523847440028070814074904107326190559091300080734282988423140502619247772076039581820974366897414051609498609314329949518804095463709902162562933896735218177576147206072520073752838403998056343055151183290746307656687681330063527154709953357976578789161423929227860879773709103651594760677087718281179889676433577640863353786404617874258571248774316945383351252033095597023969327324702013878311695039682264012215480538238457691926315278370962211640830713832663156965396219548133124984342351241796926604300711945144907778062305666925003810003105654157579240964191841949098578829294755306171136832763392776376873935423360777838080780154876765568644968422517127967137085617195137145358255237502031688752591932469482092075613613619456388914582114302068514985632261247648013945046994921019799992851205919142483809205181479578055265804177521119233314645549161773177730094030648764983488839276436961831265193656065495333014033444084584327648495085148516204435516193022482350336118770675986954294417176365344769996341415619471259281027072323877798634309273525284771754487833738791236885130687438830775624370802222327372429629443390914799113792766154981655958931851123992136248836324080939391334289766459333456138810178129533802416429711533424036977064623140188088292144856281564383429834884329251207145318784040616797775140824549321771242384824572191533361528808017486946414427678312335233231308595118876701364294080695107421826685478837028054638196786376458146490338075504958322947603896418824014130012024268351518611401393968371945476607661209426775713430005345701199610329315214593416693433281508911017139360865898007066010824605854305367907115701038965600559911941120528625786644349019391219286177058472836409600236197396123264495529064663331315322154965693305042088945018556968920335739143068134122178476506640586085283297403791960673460562771907541573672142026653822610775543464308840304176076560493899383121277963674584595085155602991255331796111951852283534905642227442723642088843095960490814376668189005435280802850211028229490039884511982224851307867850411718375341553752462156022777266442015044552638269081838329771293814926361002747450156695905512205298445794459439784626239586123485824910118146263018173455794728273832043264849661844592686158097957657134161428509222380257793109897403299182922218661012250904720174069110843784471443507495510657738010680040736559107259396701260449778658541865240415716679031721695671554955404925359105739007076066097151008413520564009810904315638026235855632996347175648499801300642828186665809867482965808116829466314921810774789083073280900645718787566929450651789227374581501351646830373743771258446265136376655890280319743792764443632104570232715607091784245456090673356768629828004922826842763472843155014147552244989174232861700516811891876438074227582487878343042475501089978409359434618100683565739212246409396121185638729349384756212831055009192707883148921659056887261430731444856941401379705198193442786159096444045139961775622232751529918633329462214497255937268262475290640110597566112037224729474046077952020223799843891966342293883225538459412749797839193408682000928815555138858718408252886544458111328455605667637705471343439465721338048826814930868743541931384688661983956286451683647111426293891828211488249293885848611528182361634109435957594102633070333127798246536352771346800037985474604119882933980465479652409477174176155457280495845197894652953398001105371112788778000457582215018424973707415020560721540245054048907756846489542257427240999080783297049623119070289656594147895563199647090051838164439892443819014979537511008558252669950018235093633137992747176246840179105891655934681237152692680552639296990214756273750712834437633532511378849030277989981733829186868302306608316295577244108110624241655942238284451690668043991813854693510250770509026963066412057171076600597285223228611297469862175061591990895068162501036361889001773003670011415649391548618461045866012846343002589996184036685714853441667912787628284947277556009855430625493028250316303920343200770070114134554332592752708965052859739861267143168623952623048308224296391815215821252452764696894388003100803335873104559742747752811503747984397170362437707646542503609612439386182345357547612288423311729571545533531217631000126683944661023281819629177907620987583428243159698928706416378287684497959399919898987965553621963144779385975301474025704612511906202538045987412457574456438590280835605338656437347462305866543646920954498315953003023414821533451565590892815009322178474556120841662869595383190919172229938019397030141175040252525681822136994662874386383635129479551476827975385299958959691010417005424428897932824148062291433027338257783402883431932544089211726449181212700171789407216962453091233541067467319596083555358264612223400848287959793221166219349311808626517461663888192640723385819929300518534144400681502567796931475721044744053736684427424915399200754474875299186448541886147404211070585651287374983457343203266285012717065639491481483677120906350201477771089041785739553896489887488480011307083384013946872383597823772825618372197170480617603572862187814768138789148353088259573413074738782378115385112465460131499650591650818834338647081143504110194833771778491558903102209308812368032649233067229698966043784556883664129882681444354796408917020149760139188248487216418692438510211607142707878532654263331035269785731194128960978144207125397160580623312534105959201150721991895722090901917300431206625149246936971202717002348231602710826679574756830060210500390078519432846852067109030368801484753777363390643883466784436183354671018170646555983205327146782864230667231327482999516086032262178289262828969617530080051815016272051142932797316205740782643117501361033771257648481592063698991187703373674109576654308436385495095991443931655558041886160173691380170439524637955131516276214940289707694697910615865130286825256439940209356256451819737222546714582054991277798186911945762840558043186456833113178522551481873261978636023214667290325231828085190071909971761831188218993065328526263829619495920866852716403765106422248866209557903441264565238438958465187527189498941826541076349772800096490573252881161982423462927561169205911795443782875368142682230866762956480772639201602243321311118819039686037480985124980933559292462821869542438364217134367260705472636526987879694345049293179455309427885674372890042332854508115897144760916047539547938612509476391152712355159309775413295929280695843725769899660879151162442543827695985865035569970110056000171796861863126643475440632212961991333999711418169979558731798925850280146679488943111386237655719232516365882544939619707821304324322591297718066134465218611960638312061523515953498858924600984646246072218626120152157695202032885748746554704217624489401278781941332445623474947985068488853837075528893737390707967472977063044227373542982225036889696467394373442817154233538081560952759337032540247025960220226645399146897041260217995766638662274158854726851984565033750467864671843864639842056064132256530934186430640370388501191552508332121566532539175881039222386574127708582758226257192942399053644636043257396508727214276863350308767594099902883006987153183812348239813426996928215464637262894200605120198350433315898065682552774502722007344262257962805840767915400772796438403415211251517419536154275821207791817580244527576161748446745165094963820068043905516240874911551533239551207359334536738082495249484797238325295775462106469517459893350752663950147278654443729214697476406705509511767176095689563637812220223144010030438519902195503707711862622872793813346232539824017353612078668804757885640604133485650283082784420875832741484122132259562908116938798505753308000668508974982491695233484778632438859110520024966292489464571611116676564104462471361956408730890867497782606198275835663420148174171849571746473118778082861279653081502043187073797252946205078387438682255228039490701494315595109718455218283153516864781237554469619237286265175583456322720695804661645164897774949212671254323884990182191011813105440022676511826771940101111203841992453007608698152039753423655951345647316986840927766214992756616359088500643764526707247514016347086419930775933207445610013815893531418850962519077585070849247901749639090892416188396088489589108513722747142198026881861568802424890671695109868463895053718329091225208287945191870535086443948597456870855394018252768929367529777264834556235046581955868788105577032221423769528393274044769768846429424335123567492905644837077582546790735997580547714250931545917917043257672134678333604585441998298922183730564948215129793007299078784176251525856087149774405411706453135351587896109196589883625056330923749845335418279728097174622047214607589841401578980167168815905140678417551635773110263990855285791232604609017240425846248139252706770792249213495769341560643354253944928949039879997494422686529575139166546785333042559749247434487892509092094162978701532776669661377750046092091072322201445984964750475821888060475014228012421249190608544989635931756252255412127678977900088972514166198759008997101861022757236292046657912286044317108046700900936765702114596618918449062712192405249769368293614050449471376193289273747330392017802250286283896320962679111177597482408988489861849513221471972796333114059085889330259548162309343815315970800908979359685493787208606324655255322611660128715476157734347657133381630360800261968894049590763683413524319534599225946201705475763691849326138849816349578247901033827937290276380742865091611778622588608180448737338873930783144071395733463616469539349379058306278926287929900875196370451379523036714752182672793976860814411903603848221156552552522565082006566090317664321731324413277130454035223741866888835572124238557569467809388619374995480275853868493349508936977380631975092147485483408018260088191755234743964604512424593752723108248135135999844024403496127240251237363752999241303860628954543869676282680509772801073178464798597899440291789535478447697189995142716431810160477366972654709679835897436890418147815981590648189546306219969550032943118346996677349614250296806884979966837962376771284392795285828952910523823384487169863130861764348262120815974510035159912040711731895325903198310752414281418220375038689991710346204552173797165903233998694012174874767199498193389378573449993554142293981374130715943788432204983290530307008053117015175811381340112279758401953283878931574041960358832853831674768320327666128239621803072971393682690967967361052834280360125705158217290586024189980757783544920007710975431331357081058491806215890396800916400407429361558183301499738699398036090393498033546331061864978197407351946639210791762744179108278178617440711074166262611259466683041961663955510068516546069511988521709141982226382638564271346107566161523115120533867414872506897915305736251968137262126062085600628027216470287309972236504392711364442447248403791750674039016619954163641585431824739101424614595941410401570074643855781662690575639029332155275523787093163151858641883595540031373371269329002363876765874481850417349269837745116666858544438280742164383474060343567858027245582308109130597757073202108526728054127833927824578323578267165279723781353947002732675283957263338099174965515956836922510198752656405681858458209002391490367924691549897652351213744476596881968528917234626999006555820190014895126391402584740290114383891465427436604996457314986841827637074446002484114822983942903399180812298376598036368629052481836048022280964797104908147870055064085540977729540674054518238159328757221790007624497122051151058661603236100682778449718400372263628993514584543402156505179422612364554093970807333708738138088725935293803528462333059053237168799966407148287613748075496438806144332364786113935766638855437139110604786459633750209315862957398787188371920589379566394182465375361458569856990685374229917672993462758977449439885260538346996291275064260132350146336400500611329558343286907007229254828504695999280501197927852070234478920817265075520583475340071273973128932598061930799673975908225935926783864160107643798832812867155121999530211922930072181326159194124542700045008917009685606579024063519637096845562075056622813557912919868512590955710069841479846312599601210121698390112589761669512456832450101646256059426810286441019254056478786986427122143375746038523568221758555478549071316346372538527860414746906598640540503279853814219018845029230926191350741301526117121890750231015355306496327801122986535849640364959801558295700242361604981456507476106019996179786768227168129990348524733410355355546497261907649341881911602975885936320975701292140693438676101895277092063554524348775328739443883093637832278938587791485338106671883004858885565526704892631252040209819872445400855699053998980313504906603663733718847154721113853336742959946953339499262248058189670723014132518277904087641779177957107863026048973400504855135669322324053607083772559688668080979603895380879529604558956838450795629579480091389178474346434568527776439794689509261934088030703242735760006221021835479481393998511575671031546700810720233061470514222051211718725947807157443311851010023451021324917910705497690414500538678369543848150646421792827840113998739683550237798912731646711861940602676009756680511477277306166825689491750544716987151754929336685780921985987163939143843190110651089624732735397449375936352347883852845857130145414756784496187849741955030003246405661093588501739601142104341466118834535414628507171070818051137873996020842225157939411410049871785483011109258747141775361606340749367778233706909466561801892780087711880481210678063525182407731868272904155965608821265762586935618836846126775968049539144993639508849720536133654952001026236234444482867739605716514423329983283930980195417141849491504879971395078333763851171060509096124593680922890909469900496140033716021211659009938861271062993604992618048012310798606241362225478752588158091021698112991678712362583750045016257055718091015345629694818979145700971088918247956039966329793299088088276796363012331149602654607976652042593910025444191963694506706358019626035886372925972978715670636583848407267781939752325012580504375727599706139345634050105870414275728449567571782916280764540657304597789619214753116865599387029376247008359066832169811849909809541032381905958845561074601629482001702027623937013570157953138504875795047437621688166599130812420028582304452023148653285738072378718179689061666577465850872576761663422354081505732237308983908592763443609164815803461681471780254860498303172046872889061795607070502879639835095012460945032272381369993855251448377578145251016071936235942638360116734510305330124922800373163455189818252182961078180599439176163738783003856627577710066144097443877410451535665023724808196536614710383858283694882204409474756807753917831789518822029613245818505016794047451430985107847703204142490819265320550905278999238137591537939338929481127359216046035200213113451773123911864575832023597589365724012964751565683748113450597301067616054940546791603480684576197132758727217993302161959680947773883771763281498177742009840569489507474203153836004436806056001908131502096517001926601620459490197177766008146921174808604211987312305877264552391228886503131281087957256928415116702913303249027726974156928429448625750356618423140870911674377675128161704976319939846582780041153317943693738866070665548130333309470263455966643931630177376443333699385901040458164129608276619029162210384540840097107775425538836307182408875608731290698586445849570278494053474810283775386574776370588345282764386802988550936224973127898900894391982171752858163179689293314655175599969217777916696069583403833527587188035366714739368924256322810148799708079546136240305741701212722635474272946911128260653337399420559383382635281023055489646019355657928618267495234068419167066120490935589645841848164050946531987506221289278563136812410808222384480888027474799631592133189799183635070154980735642312723498191421025758530445144931740281325676508300842484324515864228476120439886684673324663946072897915574863844733517019128007831204755788490341379973299242726287728828920774694166990561878286954339999016141822756205353596072099905730162125296976112961312687145493749886540397069153251689761926152348659614598371484930264652513220439775455191608594362143638635932842187948889404781386507872843678036366022512030809656637511827265118175463599116176880601721548656216929876611612019323362233072446321007159962524772384799814153514070562382585256646988258479797819413661319029110125550966818536028735413274381165088987005768737081451420093970561226151426246863604470710696192636757185147017623901979194691139472714019651661652136432511292768497760748537434162018809673993014697471692850552076157826920425944579881566671172349229943784598037672533367075563734244257959300469898650581140896561495223221300895910936272728634243289163368812093932667659644974828376362234348782386337192451334584805851553919624863996737960590776179097904344218820884403168384056946361889953957680613255334523390472270110424822183691860739644038131794209246905858344060085181896235235416444069718195418962748728674692947705602097275759652985428141544501922967873283002501642731522892391537060201288051905826753673330093305441529990088208973064239062376863900131542278961068546248224038975676275351315639406162025877112239762630096289114411942347098735776816283093548793361180479060582851399171002259847797156342066104966402932875904819825092908629413297796617405484316123861506931856994300122706859582048124274766992354850203763351552947480238138285818576627616896154231910891743799112283824950286685427808868570402633581026066427446666321163024716960168523686722791522197428954428868512076696110154568766567033785376704572917692414929432759689082565640494312446734762068336390895505270802184444395820292190771468397124382213020669838859304570286322583093834267272514503792806504792839187636260107360447624249805947412765417185772958298877883630442127840877612440089363205543259598275213923588911787132505313012696285125459135798232700424411037909066254362383050040384690176092866311208833356046493909028746772373559315052420072866479352629172114052069460228538345121273482699563049194603928623315397483284050773096955957368130322800781750755791737949948543188355111113982270850782955180599194791803196020173826587926813978296195432032310432141650207318585719440794141881653219933060531262913365686204323887626521747084262615155594651061482424180170228527007876174814534133368376993210018083820176434341504721777468693633182492612175373031510059281434732725074392841022387793964046729823408123727438616232819547233341795034692633709892185878798757723609023100891631567029262809820752856102862597999392385487194505816501612119526781245287529883725417010690992442544801522415143095002014893262700866835826890449079516268682102993152747254716255150113419859818525360164224721899793444345907770167221301032621854049985718255084751195906521903177859808350459769363832916928934657273443395193539020567893993043326029387805726451270015638031071853981185812173149123208579431785741285659484759145883247907383002496975422962504396060188458612785959757206336658006593399119013619488017323274432990357695458153250149527355222635315009153855770412844144839509916477312620666489863899767711071940492549313385865152700638036529182380627390719388744414833814463521139134060046977385292097427754928285263846011849448635887681246891449980958018681809573006316444932017545644412348863158012872402814954955642383023141208747411248066015352468521882588773772960312107299243830427186194814201897675724374791012822300966367621496085688798732410869523139484101652779303369175862699611551098391456145834166433824807619108132206412567792766452863232478172533378930833779920499922588634057841551387711142275755720445541848723169132994449872323531801604214775259785145394607625708290611742542411881827799770377307049117537921143421403618264730063334963432067123216879524100504475152622639410601648029922210817765841803460284609100296357363560411830806306331107917913175317277522199009882324747272132341998103283178383025404342287783753878631796870205354473995683976713797137856206056365090891975174978474382601215049334021951477500794777488844850927243728903276374448296952625883781904649767134982046383801983452061365482760882706318697221813583295252978797000085550449053527229401686152453810760750834353184896912618020345472256755185878656962893444023546684402946965703322550482082665367589955477435538771955716717720421243132714363427437428936505644800591627298243012157719891860668721065037552189902033365424979342043079328316915243816020534213770894944321184672613060057933444364937541110900945568637301846430068355888106620428571146559853978950532001993539415509118340341512328000820446167473699129749719039936570632560406497830475178467606192834073430332459508756364679001015764857020085675281931963808504816225668203720017479241711599420644855848744184857880832875146579851080973915170838371089399901090155296849939072323834143218934526076563449261101093149896335861623234535976810244458678585480659825810729850825598256885275106622732438634596357926048563683408099639364892479903139723728219490125273132299706853204374306671604459305079487347324104384432331709107078024565211732579044224166621427417163124068865522981818053626312529270180162455622625109859625184940730642066624112272166325948598259416198036973747172518897254601335606674106461927288011144706894662787700227947582642979324057536899158286566602334356951572213450332895467767610366531220023709842853057853250172250387761246795698616538602129923082063760424890106527677222102998671026582525528244771934387656768592584463857533143487335734391540719742430352204377796909670225073953847501267544164357690529856573082709032637885839315548581703459461237631630468429016888902412545697126264949099576854133748946305746711320704578585224520523259016188727447247563077418620663761730246239204817553812734777058126663848262033792426943447037299691487929336310731898251913879272420083441962011989250857181372499310359365071895437574550391894326453339967822786833628539592547374109720882315236025236516679757153499005085889707274855034652274694913441180902693294444881815184917113267090647206081893763103496609791315899429212158592591484451024315327406928991124291471782949519992309188401240455050790003069407188698480800365175929044532635938232492343463605123758427345405129313314174112708893882805062930551879782341484837789696573527755372300214800756377478726556895339889558852581355688736019296732981361315424104772479549614316697908976230602087813976318602515039547870564182623069473225344982314415598954983688765397585247066935310664965897307982482219641166427237283559176967988103295453254258534229008448034795361280014837945538571370766339556504211180713785888884417930587418139021830425229982940991351417453504979784758192657052152027522816980288259173240892107075500697412131628324873295526795680361179825134219270786500683744186862149068452669429622524980114919874755207021010707232934483175499830580162924468053584431620461449417870769760256576009152960581007674005338546141738871914526217674616739630269844648928500829591083205642834617900182852916226206075226324588411193430527334616038383185802881518018411735227139676786373303791151523445944531718816014532474050631084511694432760229676159169778624128013353873885976567839696986777813664482917954792923303362475892112981762846659242135631806864488978188431404367587057975867097933430495022373204180423132926472612761975196653278526913717473876182226612530952260844911288060076096276947478247153813412104864577031687467817924160997466986413878074445232066095155077975111162094832907455715037272369238455665682522261727300940892536663797448429356157082852784986808268137547915689685857602454813006981343459452114452019049839542381575689126633296103621800647519902770124892428077882382042845559549425663784413430353087425952095946876738894719904459026200814839735781529206635730520892713074198647196209938273726676979589310569862885427610775636143365669160470913031972993639976743593395714390037364286037221876935660076329996092095662951264106885698017591003148568295710564277236780233280137655689362256832298553547236266578941356777880755640713929524606700654866872501914863342165963337602404829504984729843065191074549414139956785218783085963790175198849267020617407501958684212178617323671157980810769330265950295290257572432549931324322987522169321792424136388231123837433471407316728362882984661208288819436608716448448782061800092782523504678236637987056986646673694542042373849256400055171357255317612707800936907807429214135898466914378030459646085977656721122801451844960772057710459334575703224113985179313825040480580891424054403442595961808011061028527325823957850932883237120372748011664780787407175767565603358510263388264059575836205661605073893603694089201621623008751093384147537407283882309556095943280960011755551843391613245335001773001188376675554099519952769066843823458599944645522079256994142896261693811240299957930033201688678862824457873567083877006278610141067290627176107341875431371615308993234069098181544923983378951378008320119590232695049985766209677491981802208834446760763451692361799069075918279038308130608860509077916573791991163190592618561209982232579816434903817281659186110600119774162679422710377027394488887423403064190272486000970858947414642912204870774876504497906216232647936199644059851275847636405907480150178514096486922516141500729179198311954281857234127122796681081652209902837220187534542269797649594031859622769315832322248598353514842631747544983113804148337700564087808894797367933469621094650542454362839991814515664241097266355305842736327161311180146055802457661954768151425999048055016390083769709772645267655213847640092464099297799604713357641048071224549108152629149547535067101542412050771241395239518761131709183169867090050019119762799137680260024736576817682411085613494802846923035952016234102855608914144970708753204576447196376705839367485221678007435527754135874092233891368801474784970080423825404580618300788941443959454856428270286379403806400715178982135005553893674576740180345004940165540549830760453148683537496162088032961086322105031749310553686393306515157775366413885725923041657670919773785853234551029598916370433776962719018319552515175989075147476527363531073112720185895643117415621503637144415934919478545817116261312193337851979303872477191490125865996625331859704831824940086327732517683277306474986413517510957200773511948520503779533106932087040866912288789863429479886496916608234058840659507728478218595661161474177818297523875740210419551032693822673774433009899408221932506341823392901473346984209580632233997521613356491790856963369201426793526632461334636540771998036013019643831394590836310392732384566671063222927680957989661120688230165741352760969359060475289115739726936968879721153142227005792986806322413488737024634958834441614180479620015474711203656984111773388560818289536847477226167668728837905829852505223840786000148113957531972233252265907030225758552270942278208784498468969411015985880184169288917216262024434549671756017603761785994935275878628873278205624735958184894575511069042405839065839843038864006773461583471004716958912499730015837924554790954944187495920219450278717010771592564542800679104185450760008964905971854175268591277302448588320803489270928211317920934993215026575469630827468566792856153103837336674179122564672502603083038266087650714466769398403955109273105281344625323106626397513422503474813276838717091859081699014548796531409621638706556212801516545317647596727883761777195017985507755265972071333222178701921525755220798498144668076498787624876351500453005882033702882556753187805962202886879400142299091970243935891858198897705024704718430988037948888499324568487449347162144882288252194250979047381825734183814695728247981179621957089512682486958085866957719399464916770450989913748156204680800930956374967881349636424216765572049645352938636609729893388726009854998904993147888821320779717456398318227914579695871738712825545283501605978719372657761274691332358249993090739850496861426765410115573352742050722764250567483964702949985212812976114989525778161713862073184715748118765532038716926041086042215178580023747737996656383626230459299371018353654634029315635261707764853062528015548855311820104425294709596346019706782720080420835714692977703133659608318750637050262662525755315518394288649692733019838258544510867061576526832527200163383002980019524474323475683427152978276846536677930875143951622047099199603150114724796747493650986797864462351419937297180709810166380605811352588112364806373353468941880259413284970920282682170222210215599509292796354643091899225378039078331043981488999558167029531473035342489771391324406179015293120716420878420334416820173294940015720066961589593162964848984306692997828786065709214427787864089972159646981948018965716178771478489250671549902166276211917211345895626879430579191167429737680529552973136341560850903699374315844275267979717093798296207632283290641258524629774504163966752909017497169330194864092794340914862954773830006228684732244471234291184903427564985108785620939486735474732492871057273245992497058534754036584020516233116366389049820257941454997229651184389575508492031744941557599186086468697956226493044601083469283726952479691064433585115953030204783414667342006533463265853823443715350161517016612782808873379788339533292530739343005904500448945337624106755512961500887672846519658596254771724816847454564055141490556471323732044834254510176307482941648550972316739996100563950408338073766333408198999727604478131051660475441985697383591290849410694053275769144684635906808262698984944000851835970938475867627990107383008970602165303211006036761689156248376529848824689651119047160608676879764678503321985424109594636524428227417900442887212288380192741393096729577823103028910604283825769628398029482251348341611939281313067885020893298281110824606264771281954035850761986012361343327182888453347478454040246404282588002838926631857936947300976450914462073123929227987198235095441393783562836607406719998789234595133815215141156236686132761341214724765074366012641294619927143448652753372432519644706429374765818593741305498477200725548294562227556862645231294351334174367555988266574571762934292654916755653271752061977494919707535844264666777501263119754964693908908570363257128928072402363044896809191476864633617347411284267688324789556000161941490742818969315222721530316658296460265753730881010424714387694378253846314877156030973333707935864717951388152472926189912814544391579470279345173415671546174146934199371226670903969657827934977124135466883699501545546047645420151630463887606742150275682655062287469362755055542774737787439867976369230885477085156203028494636600274769001904530885675689232370217994344619318085426295267836018470446487349802088786618251327926210732216353398258207241568663135864736499520013924417869836441497499537105750768114653484903378132125809357488597360765343197529257495488249715895749057481826211483361268247420472140258729155272797059581000208018419386790869965741988566068360474826864003773362904899715795691720873408705829880997102036860061551276411985067521868755134962331389510072961281896876337240445547138534904060317488708683499234139609825809825445201508490483181844542930014588472823650343998554525975778544285067027994196498890637437727037422932881358109180798789594429502724608803820109296405552237108082564106507128562021538038671653676431325422967046781533113432248377186435431333191401056332190837787264146895070161987428544631502319946420048188125200210643272619200179187449295674157907275921613726853593175925989585344815145619069636538202233833195775257833164516065791974279945514525235405473156382357835241766406575064255762845956897395921432871021454548973806771034340521228067486771149931022831840619327548147652018321732119219987909086204740402556432851872138944087713349182846983231808961063829976814125343421007230303449703544412125905183931669282236243775900626086171526592966458379588082333959824226102612267441266643657529719877612158361076367093318912284702095463584834428019785097308839620862525513848307215765215459975068101671604071423145999486704510253450011433266577622932615296344621438084333924354531580981335845985489183630270889234033288553285325058636783261698216813098934466899851666457242050323434817921511194558566286540840332807476783300867164966312347426158425935362155751721885337229746449964331083195595339295929690142870590025359857994744612078474497861287366880307459270853628853313287351338262653618676378417395983220510230049590502353073149083147099947671242321370919067544035481840133406111210457503661479838835563630512551135053225961733652088555251900282434735577761722840390092930774944567056089714314189663998431939269943000118778996351854216038590633409786098785171526028180907953887644510593667202109507610547711412101123590450555644946409649872173206502115248603397122034820281726873948241735416408628117884832343019803413105952157072429720873488948497980477728889743658794299137673344496878910404456502348504282743933644073219878934784168332519405215683200105960650068036493817336805571660848276009420369017276063234191137092583463445319013156557080092336732188190512957292198793224610707966956109236400503306626226908622943711400324141519296712872168048454258799675939097794125226395867834914062562751439456754166787733291946448688390692248429508221229975165835302828634113028385904359250947409456909524694485832651174946047258725842241930134606593034179613030341655239633297031618178461805535785188945858514434526235495761932634879687886659759030088669285868236117912436360631857705622863569758392076137260735993922537617283151492075759692357197197391245130377689033660919766368539702933409304823931841172885024677308667869612465301091969378688432012207190662173817731827659846299750422643790236710277776120175709820248803773819802225666036994691130098534113434804563496688418809987154018914681971772165361786780561496471299690887999063048524127902064294528851206880020456182700518093493520673940962499511398196620980883913690013916386285268670555520474399249590272471924487043506652431727981348749114238370945363703374591816898288980326577984077913184000247983302505284331749383660538344384798908876396843290504114501542630618002611793535720195226662008399085002081459230065565008927056802135133823002070892579847844921781502991676230418358556636958893043908050132111740982204659528388549808583827285401001578020276331891536560664355583510840615736368741941479731762480245147046865969297330348209014852969843358933422983771241517121176756305832746892244524490477030755320778701832210744145281546254898503956152218350470596398430149918390813701402819921371002781050994159764244000781210397390348588482969349177436218010570771674948366375021028354025820605292164042804673386345757035616001259334047423011455607391237061520700483632809263797192929261946405391613807149573975877254433471632534285595504626021516540756013388267738026607113128996504297805882451391555302213282811921259409164178355961042130540528901709839861220125856194159983900236000977208617658717138878663209424946253411085020135368930375695587298707303946187880023009664461140246213683426595721364519875475618400455467629044124854436395102897634270643068075490052981121977577296148634720698346453690903001759374150126723170241819440495212570625524569988552223081599727874698579201795735449681764875309586351618907452928905442583112729483200584642594587431344057330435593868596262744914524869566593996968520899770927617825688979559300348589369236996289870213444986123265219895896456833876977878298956793836454192247090259563032382474849136151002076579264224108727316700175345785758853638416977395118481267186794909075001443202380876798035971016357546878242646626788403026439823704926484051678642482657008188094329509882607427341245235819457457990841357756386412745078149475558706394737800258323192378593141091415490019781194295368473220237662895326429900925433396793171513727079140549923832782052253749675070716100652237627689480646665903044903598206308470221949206113702857368467509369102937490308134261853840505328465839099331558722643457763522183295606229138295389610557897018069623814825091649779475418521589796094436661131347452286209411843509644213349664517369436967932010446112337327538740795153243862824350658539309307239130401687296011818579346871124646601455006890538719893348865015160113792752865181388694540748456976052306993694783613599671493080686431305150333153978172722546964506012111357108269246555277995460379363887985943215537126271489842970180001082565196128584428914504291171596116037002343059824204657011539343488230645413388875841456242825393490870159559175622903324586162629519040280827099855101836267737515870475528657108404180719945066036221490176695347440633449390143461426289990553020574962355740223421747434593478175923104016270862956162005250801102521609077905268464899069643273445381378935782437596857017939287078938386074344779584761405762651448265140944333479509249738570771053545446955382596086802737867638482227470522308220467004121774084164739439815695861352130353431747709435642453223393734748052730429251074555387766368843481025960031918527038296167405550726724875907500714095411636780942086727699022919772134925977847001307984189170663776733444463538587577227663259000667836785215350606568609950438225583325666409497437228848550141893961405734798169160579497584876691729417991730135132498598685573467161767183329664933447213298196497541034339608011160901359538414517323751680822216092336847518913221972770829106984701171649738409704436388411715298109870129286479808573586776387982609591257938455790601374444242905440255955661567425527481404888627078553244905805972676589369096294446489951951251081100118865762598545719936320549172618318324263100697599945523065072855656266872942869997017877239319102726762890077459302161627415999240192328110484166350584146077999777429614319501690373309500092697607080051230382678173523124586402222716295851925946195379633381630007478650138603743345246115946479784052851853888225266162815956658040354572951328518212372274729373085789191319609829470665192941372825192956733337317976878956565623581033853064594336139481003563234050739079553407937514185400268891564023986785897644696630722952686937714397454450002593462027924259893750118880595390362842099784011916084694538547065021100230926907166149764025695732916303543159984860199882036217183060294257108814615220275986390807164025429105038564538676427814064729367192727033918564907775280411015404526333350593081280408056502282008413133445607092183083937768144643548970134460486257850528130979488029507803896206051946940867740753229272538429474134184897752098079953011853583538032773147385998940685456058483802907498849299174511740635917310245582287254690585699723344478688004844871908260507959657445645349681267313888013156498194821313739466436963404694754191235464299408367551743092807452525384960436738545530614529833266229507048861221714524816573638555661665900937640082108986696271969621315251136860465008511069138703911971492454497311605317164709958873283967562157653836754831334085013848929827963328187832492806600852046080062911050298293721978656313090481970334448429157065873376315144131775786192545187689568247803725070539306007872555031764074303112836201530857649528520365521699535293426334074024001412698406414421673970741704903427865630845617499378467681374574603180424763804538802923411244224770580882919028096678606436123379572736084427947712945439005414834266337676415982191967727389704858705926141649345500164012366773037650980167936208328199438614976144295758073174141424054438564605757008249014386650852401013208040533430661083492058000212320463002915594244738634658138227045461607966030247907871073957262013673583160622491012943656052501433462853787898308450820576446685594458822926612180282547797085643112407177544495724986886474884882199672816260821077605337418362103537293018598661603046198176215039609490857808314955505792007910046531055944634085602971307950078541453446481726692761285053817517866884681018313286211561145287216091668554124659952548307450058276129464622449210893626624618742223046709640540587505431513869026349161488640983241710845822585044331163369932145609178473402071126516883130917271134604030958897271837018410879573042265489789378881008189246262472016620637188977051394615615547566380756116961112179794475564356885508057009810315106555920000089576554188436860218961470431344746609170046611675011260598099470348347491209710052516297662496837986526065185631804615356632062020790095284018756935678205409653177492534486802876334005700274179205815360696083762789255790412164450916124273665285262079004641442755939685666919046403098445333374147026218214093528409776753047248050671293577288199422781029408304819509150351787341982002073602906582938217222435920001023385594472229487886383927893026725944231120333867403196509121272177336076596390719782095633437514121602246373141022998798418136610100188985207785000625794283117478930100108641315611157000622710640876981969444599129167247879219808648342375838901491324621031079430923726287014840508361669238266789696906192920411855961721711913216119332969877622197601036973712364384675329665510092289015115497039141342760049532766926601510281760957675668482510979153528548678015383884837742099153460259534583884250858980395276584104263663445143770237648849330757757066783096144009800940734533886734359393549971440188357179348643398332808097697125570513911349512664820684054221645784259921967291527520943210075677048689510589601054185034896770288307820428494015728036980404838766730935682859212975870990140943317762573008773688558252251851413136237552394695102720574001435855104029467841361151339708218103329066174404324294358962203719235217265850360989924930450002568045100030544168377309625134233694170272160214641260206250507384997727475408227373665060199916349962703868641866694013088070353745774605599464216383926553285816375197570397250192431503518552505466067989081473093425015793516811701135733418853804071544727881269060095015085699475623932721851964599492123293761995477310270744294970592778015667553084284450458163077971916851302135511187112451297656886719625619513995886014788172267449298310124374935168390644385742460184563432493060897126823280084353692177813233297096989107954562552675337464592077762753239608617321494111055940323278976182127600280107506136118731663523244566306981574637923158600937113421295511327609206570896669587566576050145367616617004588326455323102427869569184774067770145887819273489635274407718168830418385851151128625013222349935811888092957021210359076131985783340989445044119033359079469333137496712363326975954034371726065841239816582123932155581761840970719826976786720564572360644376372651908325372200961023866035048138713457406028507062778939170952967763124387528674184533837924258713168363752088951438150289337378483624170140687782068585677892446593018490314098634230163455850009331851839601691356839723496660317156159904611699097396844708309992417365553237642325028152937189453381804998072561914874957675503243103930358822934763330673749671695421217608242992277286501965890575168168119199810386525475836949141046507723142451977234544156545580686757022712835803909071628171703626830956424882894245840090750162860963699953898543121035210668950715623826590644905611151119340771729532326998199513358595113547218705883951548827978229464262071564295769728684227147815041958049475850951373101954945617062266616498359511296463130098224430504749330962581992628045715391783664444346519234166624825187896917639887622091240303235344140126116846416511311121586355014430159840581020798767745191268976370208987495373172689236060211444339000851302473117520610445689795480611862486893252739458989247565146999461013061756517787801367630623513627120628106882892295623662861970722808410678999819044969027037647423835466926535781675920214689799816831492739277920705977676187932298556980516077873436511774572072403417364474210507654095574069063983058283804275697087016321109599584133260081458523012445529596843885424475077479724932229834028027340219572581059179185072445512470655426299710557114376155839161264251486316887943182363796231881248763440525241459059599214063119968158622728679983563126471790615260250100321070266547375205099323742407276325607657892437960555483071190194160024408014993733495740539415880553298672803446709242940292597989130531297061350592537085406001051492478959423984594330300663200655477311782477154990793773112534574728605977677954556898256681167543998574837632599370941207311089200773674271022704479648796496924509409496518881754968717708561090495629438777561391258898198373355215279593084822483527644349258522065122548430488739408311882532761043583521712995746769635042653209406449579227858800618894292015183299371014369393862052681180899629348313372952457555204921946669413530773499654214357525153953477240811747134186380277862076974620086183757847250071829236585834197704400241072301171267438315861159738124511355850762807985206113475106150896728112674498065806118223629603716894095252155173601933776475625121891874151195337831645082583020283478936148861263835680036555719001733734346192614734396691665677487398276482421264439336234747171756250902938235340889989666143604575326774985467794653754784742946340530476668619181917021741709453963917023141857888662027993532089654435560017794108386727853328866631061767828560549602190243655902114798330472555517283788810923358248172437956304732867224505300594107673108416692856045393933528865951695663114989488080710720600110692643539071069388561283775361822229490502254306204755582681624766214713942791897980511526725319034985797906138561231834249543904431814728203649875335218216028926015424055561358707602940758125912189008934905500136856283904393630664893031280027832330488456160477372869270037618124661943868252271494546618320410626061968701149006954026527151281616090918641235809398912838152806906613019572393740749840323866963331176594955157505253237832601873444997021323856775736893213254310352401032714223517890174911781613692153912137639088109119527196493557454302066343051500222285534164399601962897153059542966927156783291701135855083805969731287749642805564523133377922357569870123415637036366955297365517417455874629543446668666930708081483371780024455570576224790996951119211097058562077790045473998382356194354814534304375872169041732122999648976209107004827166820669571771026231927078014787131680452635654675091536284419388834447441776831884899937531736248407942230659004922301444138132893255907687226478516522596198066786392504702705029756494389025947796195456530115767380073118103937862332844618859804672119166991658731976580867329707085015095008905835626920371705042083984135862555251846992611720813170981644198092582445322675227836920360322468253501920922212858663693302358884735234673902156641232079947201301692756772602501187237480016817522292884394994877872617831373202365275751736375753680016305318269515308776130106771985095724487472334816798205877561409981429039578864813636391053051129299772696239679037333147453947824595914026402216595804282932108219332054683480525648729337403852396096613019512001206709521989909128597678560745162066920740260341597392805928714108237726255921602480494278851470913569034530823144571744179927687299204463688771588746621126348473582613544729056380564031029224089833005109813636890485518442429972199387773265051950048944907470904132020971359624493181461563857475465344828207868620447581666463463575882493752673221846674446153592336966930908365884686411593037918915816691262050058424252520895668745696671834915170809232544335290641830190568816132681053120233094226783871841321681076254195764205573639747214874858323157653299425478713937495185501004240593567829698860155648336375430978536687762033987405367274682952475991461415556698996772294300689300059400061881631754296067354945628892679772330838534361860436272281872077132899636186903906698925216013385384118207117261739466159196657344163062365763780889152415418632500596935655592487252324880308886506133412583525071119117338585668425790628850466295642110765838534517534646128091644672915173718021431803873342007793702092686547346042809421620522470090248548839082644002853838252398486307410103011734106202587397964944975469205768762576567207332081915949407955950493215366809962957817954465347786796036507904015551178284644787342989313435561918091437741159606156483163621328084167518557135056737607288389977877917567360393364392565938474013881177327989492795391568126024108008662634758401727117737983255946979290305158271675647204145655551451269849383332989972017880869704371829711859692245832814465149941558221930693717944717029875887787227140081348328225505969482137898775132382235699720484648325770199158716918701416104872830298202398515215434548881179710386846373311468633567733411902756377268134565277984150907180846981033136409666244991708441980672460387932092089522774288146044810938436024658605560151999430954524732339727142570091781715287498617023562243907089081943014144761610886150114319790742710406625974940242810298289265549271314535426004402257558717611929019176481432426497552056718640750168223608964622750500932167976159203733564813112399879233412857932634059543028374536254609777252885700928492935046682495814813921675262504641704269013393099209533390767351222396810014784109460636846096107640875727138262951879060547647193262181260989304860024446112880599393762461264207156931530603846774471467430962973945751415638912619067855847866995532638653079601010477259108446466739155870949946860629835984231017215138017987406576019240985161194645639523866678713844036944041799138871647982009922924713845111115349406044808937695730779233777954991904576940387537135152588381549229726699858266851130765237148813111727313503562031537537373832053922274897970301482467084678223197459749579995934972518969715388724885349746660805592556543726190847281789434100021044738992672064447198672560582012634395321119833333383113231566651817125887498153069596977621274532594488098773683009293002156425900182081084507267053492984509659295954878636495939965545353662570879988860941410425688559853127455935384496669368745114101687027666621526071586165505769805615330285411545143394924170819381758580042742243327985334341816704935963314375346587966783154269584254599148613711562114068332519998072665442538163969736882237625497376167597845366411976692648852510058409733017590225717526291449242378581357244913131660346311241637794050765777662588768559244935138762098579340261746415775670367575837849667546176864698243293003260727880294386780049963056095289440777910690343017334007911258218850423266480340123951313433433843721793447889387839659812265588305052952199766017899227388405423278555192312053224668822308457495111868920102564472830808475642879731403825202387429687832860211586397548252214080552548217128949486263198404832450272378227053733992492275788693287024004761778711081290647360053370934679347796974763047872499750617885083982761009397725291012002190932879414332351379014169859055447510157337814883780875341048116449133680313998105539611412668292728499590083088422638752232008254077748997845664072250610708735599920163905700975305190406695150359833004140136114728470296703527085676626235659065565638060495327530762192207620942513059288406696659177550889013477866984593355134488199887098432842000289420439365745727950615677930748701710812419443036715467065396831481499479224003439550414720610030667093680461971951511321319961181031416606122217869364096020547886140116382216608117115122120640519129812369503035554645938402504487021103193495432172608537459486222673862893060626617506851628035063227457783852337233867848880601989814060467249697054673455985097709073199317133573253925434810698042536500575405416410374752355434806995030330025730106569219237589190443568238794001997441447400446798248385231712089932658251571695779599355666971811519438005746206637486014358282948106709664890183960606089995914130330142914102048747100905492695683414659877794858645988125113081884713841060034620837752583809531357737787728992506992661222872871887135592855243380028399842581490248565259112701391141143855546728759990687789841605701043650963374391960923808215425726547559828815230664437261655837666137956012004837168779913607656742748645649747050331395018813070595962335936754123825431501212294381735007123099619186095690533729387351057716474517333839701152038863200007639122183429878348564147921028719732710372941389045168164734246013414131510358997414076877956901231469087039905456066662407831416480559359039828677476438235230110292932400061084330571454321204988007046313856108335672914166729772210799219127582581383362332474079984091181047109156012235660913909245591957385151163023627490665911188244495449695093365847201498027930938421299297188106233874507874837938203658338491365643234360478573980964996906671765762106641887176781077920097335692363676840781342496426201677701056767680592147353649327489636483539349710184020358791604997276601098766722592318296444414783391245303542628903748958228301599223060776252789702975794597175119747759119357588909426413113140350029963649749444132469325509149794923135565297937453124903699170059748008198759414488351271890103658659296456794727666168642624612835460271197052091940411084448142153609455492276823843496422013609859628924076216101121931560042357963812591560581572533217282429594069033924450384030856288949740353094267343100728001092808148191510209695695273807945075766680160908083865040270383150000202771621657997011520709602942916882920592147227847376912010290229529617470753380472466977661355422961496410186437330548529892893020359518746007083167121170706481010530757832284507552864144220308024916411544922121980823249385757349196766624981649247626011807905803375957715804574724134256358805551040972714030847814177315668515818635833692840636553456229996666977364949197789220809879043470720961691996640254969268283176421536027459681282799658532752235169884574401862142407666975756782780298721684143301273472118813893112801987082580044249163618001108316365394264663153766253717626932294503768097929121976449803271347858412927100696285199888335429931006873153127820528686754345841247762875866172959790340959918610455168150264806693772035526674161493331410615479011113294583881155990675471489238556909101989803038928324841766511117243830469094123754740274682628301213088580005529736301134233009018212412050058810822567927556914613465599802939721085771152588372657787277289181054193541083434675890854532126005032934590451637255908895457434979904945526774094278516642831316939499854238869356736656694618364465807777662738983657766764337336123909317901047120536477526482133479370886114390083539342445829768847351798206968239301065345240977265355629262364767659449375128544739227161195123614931816801469942695553364035019235447111748644028793721196744198001584605002387438276434997890815817339190205611718716588523295026773099817265022793796885932861696334179869738278083715638515512498765352938727290830690562798463468080887906348626079155107766069852224315757013374752415098642809673249755151263161708535024705258974893119770857199996439119053797602454762323945076095453486240807379551564272674461657660518684710243878037468414042934983347645695519954459427036965614895177724405950577044878496435969192663914201866727692563400402503186630239193853544644015398931401581051383752261660625090684303498120247950069346088725820026524284962982586696688515625792295334121085211583588284813430444351210947661262114588115016785927580264054861300058598045853683816939614061010165842176850821028286519208915370715959151347942984278814612723909455828279251220443704065067366092585693044874939496575091757112012448642529785455665993308962741103757979634741837578592014193132705154491726144306997738789750348447870724739329113924413919727725532148895407186934946259526778212519928091454350590546072366718347482396461442745896716728094740226326390161131303957867550033344266001689884944500700018590927047138086920027279882590687233171626523853854673890780438440037046913052466824493056402877134765879318271491735863473555039318522842243699866126204341528460687818604077909976595337012008803932605115124399962763422701357675799397700764485816178024269802688535279922713388351588679987298642291581334396738625029132340924678588140813576335227137057172986391291567954298114089195164644540885906872081344157287419472670767461376510982350583683235513826369584913774559551595938611483316603632410986357745159526650951246183418316337395147691422280446477601123844419392233906588563535756261817993046497995808812731366949598346486899586277286888178376644197606588029762456979981743850659310057026625277037361353921170592329799779038470347167989302972775883954100429136212496458729434686117363137658112968380955190761993377709761005976957074459123445620008525353624296494100887404840258285309215966556970052995866155701483150656347692382689115899383320994152252392435259795259532735210707626734268014314252508958404541140124886907012962405961707407413867410111682125372762338385184682419038650246603486760429597811164836479188615423224061498406881865230126046210057857329371899620140813206565626132960013254218238123747452478987319457037489274369556090483617951977643354819466024698708806475302011308111811805218127671855869771505204492631621452823271275978137099739276167295063168901855544584938956264698159202842108845828001852195686286450623588670080549982945719774822089508705644943570873234997209500910430270259247476366412778823743164446415548431619704511694376192487380019009355732926001391711365445692046591880160369940659889751284248903270924382988693041512538676938761239315361899526975666392949627265898483573476713782668328825498845114754406238621292937958715359888961783142894660238514307505222683361986546853659462519486565336891639431958089555617099830671628667868009222778534101239407010500516749002962571096138443921669793800453918704817428934324005035449856278033929050416859903560915639732291498475506322317296505292112510873297269613072471857822640875360667731610587082063675777850916554643952226453755098031631274938867054146110792136730925436687716395546261563130666647368902798439823094711855446481712193188311988557954974037470154398684557565801129701591349818401600215289624881990770515107973045410144610345669687944805779020980777346709113928147685218232874123611481067471563151967865338750250326568147360839692229029432516242622593821706101879583479486233368916083239165798452248308852705954698247546072797712283298823997246579838469918611137838546513340513789168185595838788097873375663736166018471385765503498326207778169615138022703244090812512487792391494748523585909629745398279867143290752829895178026792280864173543761408235654117828880208654884307210594697707924585331439253423775016390222875391471947949230276668227934292455894896565317710917776874959992430119063632272248247835813558012434713702368946902489890629153878556857119222790103513945102603022324193300133364109859192776914089724159848622868984760818264077048448407630767852925670961585120716162096091716391175816574228859521725291434199988577721099909651424387048368778141983191556490447316271505961965790910259766579356160986499882229470367385946749129829415494618276721432078742810846829147155479767119222007514596345089013879918409334146484309013968830947517156260286884700399565667149000559434373845931462429481301351047777165363739305140250596320847795761225935658649601381098070428645344304573504677776018498164031108393853523803833207051462864106687350258281860668660800201913159163721904905649278927243014177418006522269457907985526485791431107768358106433182777858839742353880145808498337303162184266961300693631672569173222362262076439979606304176110367526917065919110593378281371470055853225511445769843389185946368396222441940693848602197202501047881597238481159437087094121790801105621298179420867659890340482645639905526784569944107515174044914188807293059636645715530057559603765393223554547634051008597899949167946913427569378955613569603468304760929709516913121433563269475807439098457510402008231227965287998418545166630694852701017792444382236658697814904348635605482062438959973262366930541372166910953734337662490770134673891327364634321849288977357978456204601834475126849782525649668787612320311472963549407744758302007892345654411851037855814951928679666647942089630730497317003912599743334141533993546694097556023275589780898215692216286697520679988273936148228196020445028958612099227744488375275281832440608023884265932221866103117640649356407090442132800248258519149313363206075344077877708222771927498365020112069112155522018649171181143153599700921009058658537415257041328060308830011922090068914452217960074019663053447404233807862586526248332473242703139799642390379215215004120601768585246398487745067988498647279784686776716506883206099999966626247228757177182506178545004665936166917295815821016638826353147480401125562569092664517778685195885067572251460166542250458580143354951311968611321318544358476202437366674196876885155389561869256427189742778790187013759922546192396777754215141859429448094839474224295376634032066191689787735212056131271425125983816786727278315285949661342132183144777964676404780183409339963294440812465973451962477781306002105456780782896303706264682992926507096737391859959876422175039115318110939476637966212571056169455909331453044892900877842945271047680089511727893957277941171032934006802890237651797699733570287311401050219913017633229435554709696594487210171819350484686678660643291901388249852193387822701574189614544195190951872243974274927666712912066620000182103783726865666862610193505214760116807209118118437809064966347906884008505471439452430859651756689445481504628393664332527588321137281484753798408549799074034021605980598331928455947093592054440578026827879184774252130010621742775574015106316645007894076933866874934259405602493193408700752597671175571937660822722770793503242144350107754630598652646532428261096600329482633793937135261350789789053585013073783582387000585963923177214066845412803642869832532026890545975256738463660826444823587530960521412502837357151116627910724390161750703801823258278934602367869567309966849850503363453624137769063728469429796541716585406637629626042645748639974281205327084695569233480857210548729294350849862885294351559565804209232436895915529817857919990697290806740358296857008090011836863645908700668624382879372305460780375491383521288987623841291572858321089017205103074109450090584716032702198238866535366926911370618953494057471439511806074119850079555254935891983379550822823167447401082331211056455802254976173245958557205658811985161689613025467361524615596744404559180996323523505434421477224123294834938121877555950633201767467039943752143425632864530918555204114307298860805904166390175426465454715573411296446833987634078705790449401577045896060844953716100211416114652056743169914494908016379757281823479855141054500490486156246264026613994883648147185265857292496751511009747477334485875364009201902548203942289776312837170132660894318156493605160989814579223936915284796910353140815381519668119930817024800733847328347341034514407855768257661914463195339667645996821788505492136348827601039793740270117163679243753715318609660822918977931865346673558998399724974763333779673623193103947506779769655954910794793052754729123964598159103701596407017636431588380718134296367871793324539433095405664489747785606253723843346703650048254118062139042729616397983494548297828379309540843434810703938506617839947869754381020568170230686231878403925574864742613887109434994169122756086633796916076746212478229502089961059759594380260387082221933513298025031850413053763900595308016562702088961661686087020961120110581535040396718691820556019678277949272567743684107305692377039149925268949497801991428237913036888817779775955768290933173138379114012004905533812676140660209889382821518367020084033347153562886041869999192143425156281255815287635220193003585469055272577414828187581524793637765820089896324830336701883262391585410646359206843141514114255782569530728247246235649248413218231048925341030824279584524643844239769423268846452158924119171088743403048977274950405264573829981176925214937913251268498518113210990778589325794160552609626220451681409471408639349758101677750410821573590505372401281867013123386241709352227174261768305050293295831400542809853013441220497993424216846239204799480134299853730911596730236072435622512506605407751771536891490161425768623370643836065513393212023173788034632487304272205047190686423408242350853691943145960377351509871770831661466590308914194448976688049865276057488637421895229974411999382841078835755094728179763262919859715417442249356817332783260713748724795092754002226686777025277041932720284882974783039229378509411222006221207922063741067249220665476686907129180347136585123464177089740027843773836153327618128577310861901372228380295555929473188322845598657026736872961733201855510412718604045809044334021466620979482711081460281663151998646235953810406835479633662599379740886413092170718595151383675939824260235112559996838048882352722548199165185652278611020321229467195362883328967250966067133853940294692976938509237410767370674501434837711391087421767879681576470323244759461173268769791086647378158433970632393810158290965120557560494819922936690947358991789649281168462805592978788307301674481205736362023654947692454385785494959864149680116548589553315499164252736649753544378879209041489057398977663253881169505137790701367350967642745971739565237446055659256963355141685535491547892619191500479238359772992912174972690543636375769671649730473966662340587789276860054891976971639692912863071850832299458281805213424693513729166193486703278769226195783007449368823524633510273842534416302127394761183111015266576851036962665654512394345201386351648990759922346543525037932219651092664355049820490059105800989091052934332672461997484527144246046548774467425544190215814697093099932331381875369920676204620196193161105758896753647179122979015587889889351029417450904510783542313634461175251777515675506891327514989337876177385280496329410957307041328379128020235808131277763465188719122262629985603612534777272412554004312319082965059263393477988895712997267029479868856590213915289826764952866132836616289939869351843861647708031106428799205044289819546273133096719157144201544117841445583007083959430369414964023970595470472438290288113767920427823028691541582520494343005646536157220397088557937372768103485728707106825158315427637135277189825683683820201337935856702875079794495363018096462243614013983313755575552072146157393149684109941693927688813652074357882913320484630598042789863292319946286270089308602590666086958656200276712690767477733383694965408229091890243396722276783097494496659714386130774094199486703310439594586544464798978732171040095734959313029863740024424104324246572396925499069651329936395686049967403566208930343177623762204405233340054410222988480033547575007931383598227014256659723316769260398609238818365730101156125385067079931804819325541849953857840922079510208191038390648275174008072706715860672901552764073929286116599199427334674585033050000522330484192368076212553185442139579168878556983979225444544479662996998338379643441393453948951003618846205126733200634874523106558357260303472343206801446742479478900251116517493216693356412191794497721034243194077817734938459821032647934894387366803157258785787473976416198962733491124620024097923382083058630448228642065249296171027202289377134494159959779526087119336841871133794794872750459335994284828301950062347202749541079647633451703175441434605147245793136804033859401042467460567312523212747669081614299234275197126632915931822512363922624476015551572237338638704900292853941787475435013080721034579888655657006561117317130705243858003175688329682900403869505155165764806691378591050521129180027325836258409045228948412062810221347619490682588565252336573465942400819828601719748822923965348452766286462235900306008700309841944099974565817189332497700727950454007670804244572737272822986880230352097100347043839918718836978821356234024675842754885154326255075012098078238989134395888206623725739088170039185480603708686420592540167872295854082998865078688016379175040731581196657967823686831492296571941027713013574372928439574539891532268446199007414538610724640887341379247767884949297341101175977242960765919231008934621335914068446860379601533114427558200414912807483412602402704570393096261097144253859740193283819720994739130928534749983111282023615678752352172180126863341721271370072916776366987545608227939839396111669595034028816764577789048701905215260405122295741942244446940060188885861143665007962466867880953923232460654501932086781355396067170901711701081474620713680766160411772589619061719581294641319264966909421032158370648506116846475422197195516974555974859429321907562022182406553675596008653089271101730939445309487600787323730389083057368382756691953686617761659997834209753582793243821948711964023090940764901726176166308496848029743731926554094952368271889691323325212096629644841248888113534925756343553814097120380414557749191539314997989118984486145016534256607425157013307492891864505888292480739475613512970188077178626288680830638135921861518406087850869484991073847145882467618866951375742889508689886194216247729103357204334119122529183482485377049502782914706883553192838005050265764636397587906637119399687350034465501191810910933868545738952154845477791715556100605106125721184034684046151340167633497807849011619621201989409292907215898517478975002554487946827052426586577477083995497002162895208450034165481968294145846560651847115977374178780855277228700550973214232698255276453192479628471645202636873780357955613292097421838713973349807783180012005614539150156539844212742562575849208830487583060507864706724679905764081743208765851546411548165171687500977181036889240927000762618024155497224690996192104962925175547238324992073010765977745492283909274302846231320201518872223732579215581343959847133773060860728648383695967062564039179229299511731069576757935916551736617190127740885406509162085314726575048294920252832684893884218764305351755365600169547568387805308295079085662516160063495884962455066309314562658704889611904875995870443178506113485230559564241985094222706153066273955824490016957025897279324184942248145967805366651036953471479277987729120211648331276198678424884380497253990360424587132677550794832400977889328269628781583610340890175163137727493165942624621596897403314590312069675657780257050578896640114050464555422157497936081323864495300080056154854868418072147204376803460941940750907262536265935978066045662780132437263094653892234563880930468758553847572070569655025630896003996139347014882029283199458009609799343444397253792109384236059889291102360104850048761821277749421850705097652471654556577129406314208879170455348790628441924153584730830767826054974986856036629338179890860861770889115890829437363778847433840661904358776840843277847218072235061162363240451957763259967564896132378301878395637623137054001606538008616405228932988830570045357491730577239204173579992181052774566491223452713927820281494141655449020622653616508146276625330348703591980974975209474094655424245911496630521012465556422433868204206270605629076569996810562425291450175988719660936073631092151491152814784945496211101744974546990838405948418528650147411292715842266225055387176318365229132076260293992111818153519679610091471151973801284764860838107828512601548211306952538775717967276841628605110947176422456823283154153911795415613553892033370098601872113491003223445860598656034355054582434961723022475396700131553217768477397333654516543065268523022937221868470093602037844497703432206506254680972114792231814912574215024182536073659396965455608686602121805745812759404329712040324442593354106754719949176715843584755646566796619537645834470368418680897386962535166698287975327839264123170239758655991923880946350433392332389388101519193291610428849706426359547804847093939306387631752973028698531962984410023499892864444592353576049755214577864684002920989717927227991171029150674571103891875614739024277526602143934501193235337122002249290596445511655628047990770081869478368351441396023736720695674122136424596139168039418937922952438033034572792963166910869200387007046675496301536612803908518665417893432642863711349964291769364657553459722040940943100839326583380302741349719187055364065367095348177284404972150489937807270139202248749673160185080828723300200120854165053506512375135948683983083400311051134791114336279213077554041213231810971825549572517456958422569018628241170302468749060232158030826526813296163099945486821466516638560800838848281615654729893453599604825317146224704528481747412162042619497737881756110169840886938596668974656817192601412584912691110406681823647381791839653199081975709393525859717919438268690563710279423298103505765037093543125076789130949428106841633237166237935657864234796850525630332270876575936196616829752212023181401466284597486631471570168216908648576424003713708487653227770900871407545869098442838065495398646008035784787084223319340198273431647536709735921414774357827101519947405392446036028142631533865771080285134884790381215209883316358363825289144808369306697021777629673522377538652612102292663572879160323586673587199648964095986327488817733536420508853937961606863171361967572657326617210248414543836561500304771292161506770194292548597011412216620804301239385177032131105558266655126855371233588533199753649396660585095442628573380711458045920811502948573872091187150295459867691588249379238039096860559382155728104773053098446515660792255384937250019703476440769302403825434997463124925721383615882806969224324323160842153692348538469905417604958170523488132361769922689800314569433516973270513266248851984101510993902348227371016707805354009932239409293376212440002770784541985303962177069103811439208890417944530454204655264918386611785270800105563045036956792169405484467215476885717766523263736876052557931535404602762673724812622797217382289658152457160206961603333781546167329874247299564575795813354844714284496802443191737672902552593745410118828910025229119394626251359965754879478238817273382259135226109387302135737620282111599572005645740204646537983865965545507371523671380957249038376821180183649348221632348258453037614293386925622648216693474285058436078115001357322475371099001032532897547707249801120968613718250947696519954630936817754747476462962397985005119401261062305297609932675649128317234179893706335726435038735203295685257583099840931814860631592379436859412006787402202101967511219012186431879064341930262302682131925459890607683210043758572301415795460010987752423192570858290396066150254329386428429266944896090474969913165700863647923378153627785764442702543863045729546409101271670822960820773324782111024753988348648124825406964277732535902546660548705699130721564568589644874746279915295997739459083081725174332287847503454981985561987921486221214931200560731190373358248927637688885768613882995060577796492361371903513382237309448455925367935808783509412346236615462085819518645145768117159003311594986344234557413481802976945722079109617835076586815127777927404230947935589357050130934396119784048306287598936091467581082837147929785453693348763924606845893902147427468495553464506356774834420688771922650262792830936294495324253784873673869707807761141462801020662810422223650678214274480444051552326244594080177709903583419558858003538426083140959865359269526587881120877114111627331402427012847060545942276775890406910336654040888982849003777137775164575299137734465835948594608593039834687378570354165891690383621497966917907736423097315741239769324140545725321557725576881512871004192639469695584670434197349382532905104756501166811816231802427640267360837474045000660641744406081977880043462223964087190142809311305638674610520787968936688786592987305877555700882992179322442786892662382586081478934543918460789184115901190229980071875148888102475054112909204477801014518109900934161450621088305682155596660977963032132834004021148373207083422813522556681708148131506989403562614373550308618813488629055484089667816007141182370206430392770715941992830966007025838504737834128390175398732272110711117898690224290317501069613624032292814155601133996126753792944077073532936528300013295037330424567032291040213341265832555401318853270227934630851816285618701978244866270312666825832305791819992584098691256376038435077364179221255331754085992381710701552203002252779865856401276244171902655599202639192691407622910246629141711338009562714477725770855332185034633823320644554414978711638112786712456829882764824567613661884705913410472569569499683938611162470438826162806423186808345429055080904240967825517129146201768300548932644673771722849215712061693314739365501254020510117381998644816002113497194797370672239303634752087174782819590606047706945906469637236257150717914077298487945385736999709993241985521458511409570750823348192044581771665819250754926812490315733954813255995538202422932970100431821780562010405237009898050610860969143017725738249302717517820480057044836968258260433611411726678822770616944171113077522266516302887884721434633184938553829045703675714017437718038222286685926728596469313861181696417770334711706156646303475604096758763052388320187385239984627103371398279535731688562054291499065170053683876546046577983226116104970983043824981300283871217707378029942808235289498544452396460468977922532354016392763789186462968602538274292111802380452515458788568237454344817040896108665971151453448109070813604974492973250864596265778749206685733726152612109053645344363502131723611013917911531333310957991897050650063816091328432960849819351149014534513637721684256638805343883917473333074213849925169362709951145693491315986238284964035185237696801295167063020678119073336019697522955610094463574839873634370243648545066108676552288942250911971358318469245556726976551140835328306963741171375210958145649311030659663261449608988964231803323745491440515636407606613465679076003219157055825823291985788412728645633925909979293815112862158294531306459844190390515357141366151058661003505796677065890145397055334054203899846566799029490328351690450999324843269352389470740566283318902921900174218111877926126431895301002061280436222196170732207259806032491214225674414299938019947581071373172769447632977043682774178565028914629095247790531364243656305209208257444733178868218640259141932068797936598237157633320741843007471625273282984750671344059850316127168216708038603557437849768848344514749147389484390465844035376706691254805625992033524828422348879059479928698207169868294006573886020016335205416559618623467866944450916492635919980506933620994863108297927350597944842064957328785066448475446962973485764435801427377973335227247994587673228018776525306829876094698545028674564783712637926449455703336126025672919522591316649806331039273381993001712338727841744907845479353904969103051308112872162662539427221044817262151771968751242173496495875238553030786224599040199161604146927399721192340966713268297811536801139193801836916848940359257232849274558884794393095216243621069294294136554714264119820876422859680062210950100664453949671406854604138444178280122164991361891631053403388312626998328943524123065376740394699241797599120211745663485833275048009678369757750056164451692904426914164353937447137956786274846064416351529337669264028932788948242107770395812899618334913404887168683643035511244529214287101481436198835688584439048214415135707095678179906959239139070685611060328724044866730598999842172961865012369483482105549212667935296969537761288338420385802899917096513074446467958451836235927591723273119741129714258704866687395779599714536058947975255638451933468632659408962782241405377745440323336689872091461490070490085130278795893374877109941458910152553485740842823787770777493336992185592198547816491120634610095021202258115918158747220064320424973221906036793238922409904418582731186787843223038306017444646789046673909240045350554240743351214575803781335624027591522239318708265859310209369509328223021289252413218555186772744553725693105885485753318033691482208987220817349313189804929675462699812311163710421754529331470269479579478064864209009877814506250563377844450479294051378530427830018735069153661401491853906677047012332757720432360466392191658368016885853701240070101063243987616536484866967956991493209262469462494765928498300536788313300088276598932364474841338558112303978171985587702101839524323910867980516234370729479098078973110834137952627746007419977109379534694715831146325338607829850365393645022965753570663813067923888826623732899319322757262021285500634696549265858975869707565389526583749115224837901690699500879639323885995198130547250404306656220810921987124912417322809355206499330851643151054114630225192556153097812617382879463679443280314821850312388726370017308946096180613867172877765262076534819997741988921549640330221281869447954122093407402928356790611406621150756221795450854007478828285615380231860476068584398990180191117594244397446066343104286275139263569082050664536354463657318353214321954775290815638546108976659678053188143101374692688488850668221297542166495184311634882178015910257358239218043989714178326344092891181875977309789510673882871356629669551912255546471353016211303320706798999182297148609107555925437462388039314403736719900799110547166547048760719248481043746132589349551902428719563831508522856104136117032829055524654128149450333408332278209181330518889934087556590561454900647495054977900541859576293339518239101673695392513174504521197269054333591649245711682522796083780573544965239057650577052100003775233294253349756242569437465991279499320197076108555978783205869272391880634313074890281694094478878889961610652136766510040961102612708029876083080229823957815806959387362346834478910473423539191088021651641109955331522593762428326722778965558690936284334281365036230490523953419901607141129302931738879871093949683863263782299646292478344518551372838838844889378815778523204722393139176527771556448454383281901589443775814959547825975019589955206830729375601216503281478481994840721173003771631971121297988372199607752888745222055749303243642889363312841207940096802975014653616987174061105948144413125866006924686927894522021069531131905230204051460018879702196790843281341650860941284375180975862442882643422087994917345225295126436935489617495711349647759269795173395757213547583610166975209967704003497803811553434326537942552510681481256464451508380977858749607245077746564977735085755916676008910886038361597191072450345968541932299680436772197745057154379023542788740507467191433042171829507280840762594716554752421980126648562996381921726011539398012590734830228204624313022306390759081357006512573434202281386295206519176725777840246739442148619007170350524763499926548284057027629002317990767112061969399323188896225783760433307748459454938972261856585974811338276842129001142402292678915340869545792415562181196787906942912639942246428346694352155342484826053904405315848635356101438926237391378246630225791160759426982067054857386207689506488392826356946206139541028640841006062849394042001320964481643375367234331649938597166555018534753386480946231057852255026407236070999299527043146337341937359426817151062552520178437424819197075674213617752941027999925937071261200640812717642623358048749060761172144890672656645386624920375951962811589211542212743830169660128003699865835680805656943701058096060622860346203018054203778426342451145443893278001179961489843733756569118749547401272944648067477474812568125110293111636215028739910528550360727303121505800221420360958933571914542246816479535481789997438103905673231285581611839426094476116148601776490866516380117393174958414794734371431045639897415363125299094167311183351677520683614198753682019874420160841899099737837544333441205278954778036910004569738537846322930967407985429200453191311614898092945883790090710784833916828774773329115788366973511222259694611108548693651757993750289730263196338982436263061238062789474212636833618837753420075223584800660770556926856166565893666150757206602639749315010766405199873988009795019252151358487908883356240806652451933740908461247821612288147714504818134182827042684360488284275911320493350579804366223599960219948003150182043877155241555984986073305437315502209409601084061842306946016354404813977239230557822008766032779205555781250473490550896137051958529773137349228003753154584078313271640352075126045922486883573553585865379865533692171681089287267420821993132368660568647397706982644525370049327236618791155394666298872745591891128632531641058137190793777661518758056545232893082434802864689903492001656119016316454169581721539589601477958557037936501035566713206265564039179748094295828328473680948222551483791214312419804553754314853371565534570950657207687411648956618312020704448883490731521763993007546587879354661714081268781190407279271944885861438200967925086294939934618490564768773985350218372216457816865693617619247551715369645623359000604521991413455787708435251550199993851642698512028580859634136094494305418142804030711544710047633741909240021166618973662089053159131924451585053955651714981882588596378336364484524098717424883852983465707540144303778840402588487733579327391129095617089936065091737941606817152466998377074479147085586430616823386038501852598017349222160954278524473707744334941596330879990698121902640600765648357722286360745246285674430380578938134372008039541668478054965050880180489148619145250292833302925746997582417912622775257746389534842418040305099446821164367148862307278218252691708410258764862956963149805852161489167978613211051295822640867263356819054008261729211218542157519002678225895478670906446366756484551500124989197367825918484348720227053817410615761856013246511445629055046417305415404587710989713037134243936597907136161091456308809410174587179157656135029119289123469225189871133635911305910065806415526480009895959295122420664857950527956094167315530530554018485648019679765588949064299071905913038756160564574906618890084287866987103621726527679002471226011458380538779606883022367073488281249321507902502705345396880276288020170108197586765832863820143623154040998462324382109657636994566291210988187088501108464379665067975268190094319375857938353987632267774433438032860549192086893258462796055688779051442354046708352659976094085912524151925408023207186989295363913944315066368657960981009697802644236258926386075704435325377799960157249640246512042235153308683029275271918106706350980134994054040665171868319114939500986399453051992192697936436709880367244147962869962091674306718718879120610208126904846741920453607092345862088382120682312838779244082755272910359575003328762734699765745116243597882307388809960643025870873224457851357481592221880455288693735006414549345218373939684093369736791409398248063739353918421056767086992655489586409471263864814201139770774287822047930010423224261121356969527783590295706563795044869638912362754693637641045384725134308868031746741378291417872887403033552473589036848645046082056500192276284491288752658403305465352993630496789272462625064296170065978775597747313619602272260849630332092899792562428388125922150646875900382440132900723683564488289849820465128664975704023054494989648767817970239180927786296987971811766034922911421900222270590135144155924144287975614428708378965731664727448554462601412476454543636765358660652185536833553526134366939202524280719191544232584251127063313917549608019165600297055519025947256110940638794448970528477629662475814008568813238057390279505016864348642393196964520383052026873606409537534915067268146234762195946757118830547254991670398178588463041404506267820989018218860929703473799979081054086958346216284260018955414240529986401181375461182664324505418316514931260624202715762043065795316152455807570169097281020045283496758374685186990567116956155845619220449071700941797166151664112432222070483047135632895256226044015820663940809649797045767622044702880442050494236201920031999402178620560867936566608619216408298862990784338807374006003648688040092966112757160906999014962699406884804886747209511360839803433089367308744338303028651964498558459519988428830727374531957997474490872513394524885563581644416065526386158412678773911316442034192572665866906803865480128184644887044490994754143884715901390833293930084298005908317490771483819164771011335666171957462093804469560010746780046665934928698635440939588715286664218671788099596493527934923671252809816653493639156417365454691188834319357478496634890045060755786626111549852049593929363231260723746755374298566301709092789718913007712120307536757580867191542527504184401635854670732030874382880506251816230772431612189868327729532830938889494234208927335879771642250713745276585000007961501470170959942500215051751328134059416366607692950610717590193321644676793124848486694550785962486499574750998659401836854594055470547771812013282268655036064036896922124246496025516026997311545521787202797342470746062897026797998969811075057064952945234634082412286878427052703371033765025017918899561333210885237183535344109716606750804432078949366794336947656358696036165694945959767629823640024716286045404687453546007768666406258873858154428322321080240790927442296495878462532999107625534187509895114447262062709697890964805910867320959391405027175085843187519665602272248775343801875778995254059393797293129121833705839307199183391758830573281326773477611622697470435062112290650104409429899813477631765239745362139388496006549323737784337323096978199951781788405659889390025478670681854157404958878748976379080599485936766406369930264323275633458101467484641833756321800987376825113396275796338196792792949974607311508784803577451231830223223062869568376431262468806988876816303958579058135789858129948903652357193161746190920728655517729036093548981112308170837791567098493925492146926850582907169771180141183681142289814088898543285806643977285736913966358889367852383619058517963779233993257660219353698062098521245676179800316455873266189563963722299011713177896614702501711860006604068374161127304163679465164952299119515083078428264393566038747099981185722752057211810663281887618910789679252786805340388664584940210627376594210160576672463455850893996884375896263014383272123742126707441582587520607030799326733524330429867099990790728849386872374540715342599700154031216985537856600818794304346990861382120103192005101967192143811378542328527405925682094787063829909847501382659048055041858983527960800999492532570230627895134164726782262120247931647449321421618580107010048604303184265761633004219985151630507852649255952234897217400938724940141259684409606847947359905868193633985238066190378586880158829316369687967551599267668114621107971501372960622860639030459910923304615370586764556733982056550079020396486883639800128881209856645454892316807761200192733694751489628470573790958399147138391257262041661926686032532874281471505672843354184327410974950840499908985558230942756857872597096618041424316383959580827712742423409094759315622719319598848776583027257031329478013779764885211219205678697445871706133360601253908664626703537086611260581022450230068483600556087685201481225400782370921871999325175942461071974003710122452911427355825787118412826920560296790854806518939804139657361343755223426390139655611408225428544878073663283586260582688075311967927986166278671915231912862243687904083935189987294007933363540847528711498526296908673772567066310076448696868509149623367201665242257106470312810316102742154389495611226665037295045263643236081114755360908608976818572322666445135733036391677145384701394871148631843017675643405547078781197446876977504897514306810009755067955969826813093180516166806401358829315031947233166864415149281673860244736077628498657830419229977448156047385304298877818793498436903218487973688832276581543871914976804333577503786487839466900163331420884410417634837158914215144067272463250334552241416822867096108561978944862526642634281899771800761014463035046784418597328763648032048984005158134668565232587111484388192861743811438901777698127596524836016263260137729828909066087849137486508723771845879028152301097168342883341054213224356766186416326912356476141604760661819864318417414254540809266230046666430487766051042258452180781760945643601351622247060538376711027852428667292281647798422020469662560705862592201370889412549470711226630304087045082896824019035103829704984098948642390833504519646213041274298964241998033541876390111960729126161601424856775829550257049435710408817988420539586625917118472104665973083269343019893906452443016841373576598560731269217915455439655470867981475380185378457550767873360185412526258388598997250940770249938857578513739003238412959094883276812156921505581834252766049821972931268887885682651270584259954480602964909388724872057404063920891517538468367810989331511905708619317745414546588724557699342006173554658376879319437727421761579810633993923957401584826289324801645225353303804173045984862995647141478626586940061135301776976990408098796005853312343164348841737609741542902532295161616902526748400664196935470668083358526729425916419480353651728940385256829828001576144126001109437547652822264938368858046454983546979322690846915903633441725180887415917905772704366576622338610163207490778512674486795489873192243943862791549622917570392398651243845777407995776217717823751528641854676374208146746268935072602750899242434715571993288794158449977222474343069599432029759666876251490680521437996832067208757613038162431285241240581042884678912207714439338200635096490467877931350126612725374999780231786161724329550749604780330136657731040301039070400945058470090263070031954885208326660515927752428577043988111433396510860202720317412720593425954407607686590569543512326168691972101616051787971348796822962155000559834938496490605022253349763312061613466326708061168261820620940215841276569004787111644590630826141856332047219505720657560168808729134930722896503853892431275376543154321228256170765987489057910260024739882179300699243610017883698628144047845084464316484452735288478646880423063589851653759545718268849502742172349491471270200687775498819633845233527554188487328221894692749150793658019650961493045376134890204092605344120261134040243765617090390124200018027191401505523512553508595931550888291664921696378240607034663503019568112156736299049975859974299713676228638984707178163415048625657931662746655804999360678341323197033771203953359354148945817696954238460360837513331509923033063439471642813409983708339414301772940929500001994898666739999028758476153340948011801708845793529283480223652001864530083248629871774287609966328409957949491885350181173969268654904149786940771420361829920405684150475787047996220932426564215412526304759572059069275823478610162161618510783829958494853432995116698230871267045955958386552720965918097933290904748394035614084212150829085711907452089751729086746378782879620701512743144092822231999114775042773671769264928862879603447218175109804560514468745295213990465110952134770500957494067969746346169299978923610397354091444069139495476453753702312782289425978892047016074107596019474674055990246758495923775150726685269936383354102599434678206582597370881399581177960569200657872118074877946245334766313218171789886119187857325811866820306003861894856377480953763989476146813753497148140812392070704144315076480500602887337432187952337953090537582866614629629576704869026930433404395252107172132094283509271973004869482524565196764690763906984156637390702133125230018201327226059974147310399739191985063214682575725852134287653717531433305925252970347003358067623374203901529483094837866163795562056119013141943526718944095899849041114227674320951822182635397674264709766585860226005527437317117293343066842293459281134960684596714189363137173503866145752251185826108599890015253482777758975297159515654333744442074394521880803723462565217390413763325484705905542065861068606852907086616081532633704824141050200635253361436052077961777088822774344726079358577910691275075803681039105604284596369871884636954207682066802231495580683874724154155298942721483915239694391852677892555434600940259290726230173683271794053924988409988162814264466866011117747342668846639273419666513692029607272902367617685906939332121519699004887568528211036720442422619167328273964068836226240335619775644961644658620445998888347394179947686300236508396992024234015337962740888071933646419278901086171960277692582950967260299488536804596794443967615352887187004466167008304142286121770929515230716375842228546346544696323949436137060040544028433054493123446223877857718399574930433424281722373169632022912232052375075781963880733789708954836072666949282494318351137522981278907100573395651049539214507057662254539915362763649662462961538961223666255482330385192558787609016513774893306874860729607648054034753016814541090705399286786707255614173344006831462852398132400300709082313476595139204181383143191672036793222159364948840063907730274481704691907150377024204218473907809339345965192803232511700085150284006042865955625148116424481631912150568425006076093415935552700503835411243472992185614914115181389236907914344207055773923668754198783346632376241273804518969634277674461429944910542794764681591143857103232613536584583944595181393554594554352740465895607700766000759311895910583208286236088677754654301195077683057187530408072977274825123088294862351161109045688949082232914322621810466283192599138969892987118555723118165688593565215195283347541561114230534187239332712341105290591290599336656343910993515627189228520158154452015221952665398119334301978950582577004368924544882306682986881795778625155026500435007618451995017208591453715880430647233809961440891538953248467498222761733667879964944757429978855741595420534962036056894739568461697039859819553283356194342807050750495192249404070206415722321625265348435090270888968660492110301249757528107317223532901969347290924122865217589990485576341088525150640359859007961408062788460745253890792227538896351251744495881512281247941273800841658595868124130306335107494366641144616948829484947930290427546433253861114719695039533480675869399993231764958030269856556679013385622824704631172240046311794813683037028906031302254920860785585321802124823303347717334222645533233196011247462401707930937015561583372829349839327577070173037773117049753334928899263062340265562639182309879116765557330180410664026082023762969296601265536504030547467134395770773705315274482184510844961993684445713276715356025396068241259171905367277812329864092286330311305704825886241020770525332625202387310220977917055672327776777692482822078125399582135366450545010816419447170085012957518291148352693231982900722133064117098035105767387119444136407225822973415798598169738176974075443695853535949422858602191456700718699750832387643052450215700243097927197855434150141975168516654064589919600138986665469864222788852492904402484493260833255261711637159478489329613860111843188409853619635861798420843555539258102236243973077418692341578867433776612043643866520610759906524393411517724182809370384220776755745843130436181596231856090982612625572553077417859584874046071664809434361945951987992805899378941209164996237658723837763198875498546037659142266141005066316021386598077809270227547871577680109904704504813687638151768591978978880320567258273006711075683294775696077701773712512312318188537309656442375776113081364330142457640258020710752583223740543360357757763929950285859149077862317317870434934452626300032495194789314662737096965185525923917769533136316750518014874747822433712426108274466700376233229526586586236871585502481338848489615687447680347054765917820495743714453738454289117579654457909120258235509428513102133671397191282782666205265972068937800238892861346567992681464359924294531109111748913558713033085679196839775124187872178504255338123885202606002046937967751324728803527187891151297473654548039855794527106046833090823775627898373875826327109795331252016911746174521263378460866905766816311270322984660037242416611046497594354925252152043562519856140336430872396494948817714546111418231988959032451114683026615485085130743866489394282767191156305917826516276236216445241269742320726225801261446072719163820062776778152191813661870992593023342134884434164013980228681908467030151717736679141295880183267922452911030890425189489158270764005918090424575383376755034133876838614786457157258924077361031273161611623000769363165545494448719237643380270756248675824182500182480738650729572338599573933939530034318714368768298993648738189048654181332648492092912953647567269851742083192189535604668945526792456351313386214811978487141612635011197915029526092915296934597407906602100350548640276192116859866056259939870943274323642468536518026059896135305242963264297196117343700749313524311460729448371293069892517190978187377705951958592220439797297000384377081154669646370340652060387348152556908799712232144368801612513205829868514469547431817777141680825061006394358021027135144791653328158751665978916312374599622993046549084039150583569582738772767418405414207517214638451718668660785567184643814776870735303334003961750551130446994727814191398802888848556053328596109066881361283162090782928937536772333030651416458469276031597056893747779496724093163427865918858551800709328198155619607085942256577083135792950713863548255186216283344786591943159178141934540804738278243358861528265394796945294653521910917835758651951241669575027574614668548017840092692082348391975475542645388726600485860534140221972702526283369975317162947184457213542597851354150275581287590538807875709510317568397206803565071285890883318368378631283431228255389431554991481131342613995695066078944729532974868088857386563934995753159008686246447803893551163037519316414851492394314727333538317824777917966230367242712293008841254610004812048425742856980760025170369906881851826295088880920306506313763055309365819146932319395767571446621352189296719812151710930225069753884319097458986276414272847089553431526746825641355529886301784625375832608381211797809100303177942506325829683624710504754408388174272386450153086955814779057096509317443040835172935424979888848012207130564623221911175798231039155530375266059883836205670021583361089448132398178519960473293299008300311440337536913901088452680231837245324189709228130822068448211860988993684744790788553183981305809480423707045486177718796235355874273609478609407575499549155647449435296534248050613313682800008917366567315444005373522328662607367692642728165567892826722745794427421015282832597987026306592689840602169126257325204128475554256704002659171655728996322213000771602719751194764894344425344886432851328540221875210719011420468368459888375479040829911123415205414695952677384881013048476050074389696115711019230706058862546728200204901024746487243447220115147884273158290929125919400165105976315777082096665416161991136414034726718229506579888268861988868180356034467900185846109426449547174869336917511220301104932163721370636006890975233997098786500080369827801709211633953478613518276027807338981441948783275711059981060437739263100855165367462017048610689908683569362627498166254672400426194872948186626740370460025559854244970179671241211067484258146476442108295567169743025576797990168192580612977171786963215667657655925443959077187229517847861180411649965495617041975875648092071205130706481071760655769247148007056666279326196202165276788425727367970418953294302249644751789643719936359393137954069158150767016987168239470472887591797452032138330609065166989688967996790849729310099714761207671745916973390995799446896761848259404597710419501564611885503215839932017181107804150174850902580267202984738649287805685808563667242819767939844816111539291430992485832682584235065636788913113661202827595315941135510222043923484784484383706547771702720469790541394303464873198502876151073717989654586176078179288924824431836145128231442694530547698349502316283055516597702704556410717218102604170610468481569522500698372596459454938159018777402807748118105850162697382888511681117079388723684016263477364453138139275586879213605213076984877751263486527661294441621054171339012535508010736091346928643860656815548531932549817899871253263705585121994198577214853579371787199860456985377515574478702654131464130108414423319765342041182452569509741973449767112314622636593102493785566030997279890852200294912513345923571362607449016744380348913122344910487919493421122314340040152645653989422743603436884715787757713685082937363301864199534185371490257869912706119825038686152317422587293661751333132802958466877593207377863392510072157592168398470190288274149093271273424954210152784485744414677050249248582470019285366226729957279093900488872574240421514386315977742594323615152560881340781710835602332316878940772062752513252074210825863389274968261766765110972527808520109005369718349715323196400636097911145843062181799473009783210066152632302491284692704333403864265095358801926858736651616782792973062347594858442776286682877530436013696036685426040170274143937347528482653758162183907926843983635916471584693828952816212531967684667948451544888938326164886034568566823098205714666617065765945341491999404063784152856272641531288541678419394987848710424612179892387280910268318536170140489924197247539652251249265411795144639209055374448256296566992629977948450779237833839786050876370973129534596309696050660318940083625701361958341071771383663715008732657116731628515603219959095926668229451875469701129124355923432166653729805731473658877087341388956717087914497779211654452887147530810258782951156539603829960015809971471298698873430570960980801503478719056634338064320556567101348943191088159923954019478393487882343727916740316011778943478246592594079738510287203460572197420693682062931387370198857167743900501696578012312912151161564922948562587547318246653002052443287264170148492827687697974485747971550368179568813258378895682825238573612606954842488413842019181268782847567166110382528629759227617956777906207498427213921276945318644260098048650152906999463542862091234442736034307139724171025428747572421066806363233393812171199674972873012160802493603228179386705649346810371526949489153720293982331646732171906281485965685811254899063547106075977530368109833053485537405930803267008630794528502909929727007641245737512705583379030359638960664023335123936417559902259770392600311125234948526405044811809664157098135511386291692329714829022473751570238159232547102699615222433387380189269278179771353279467803691575793394546923175722697497613906538763744450138313529619973620761669590622739745066150808209205006092093206919786381222056174506972677499666849121998307918479702715696615861424562854343362350370541460127253120016729240463669342008944028228858258499526714225256933077869565900340327494255614773714174378514973503460878367250468127071888619807319175204308341103550547644257803496061502994676178289257393866538863024060377476143121113908366766979759871210166305449953946757193532852247237332545887328194406403653650228809436147524009334437143112645545484899393235367665349717410193952747423067761595322047303535105193830822409637998026689843210896680800898493734576333262968135967878151342529862023379534412416884356538329519688794728518102371093185225426886153849981768902258071374362699603431578594146849190279445330986141251482860999986474700913665793456168628438784665992505586743838305412323725557520009766924278038501759383958491453149335409207896940990099724318537376629297499741121351729220323706275120431279200135647926205829886379112296209997505861076646079866442169556957711788533096421475107379733068992178774914251364656699256827427786830244285559696533973139207141239197687519219665169801783657969592300083756138942000465918406260680863316125039512849616688006889840715715389037359166609209955023125264916118847521369601702168055038538004709264133048367752361529440366252309923254940323314258748390055766463341737049237010082297780855236781089022504781882210012533343546237737980402533983324196697661882706459921935915362597712404030130225329334702859218176484032237864624050402999854607076895348756993898304523316313445692231406765970866182441302780526714486716656414471052217152120954877233493156824994595755044608966193004270919873604844918429408819857562263452432095246932250580124476081309925144855358162121540564294778379729697712257753907162241345919951544165344250211084044338471319334803340272500381406700571173031558773999416981273264042396354485790926199499535696670139680015479761407862159783860564248953208714596826873319857793368875815821038485393953867382024798228775869362581593007800362040872434052768819332596772767906622243164869941770558618050829314427143937626882736701956711046098746294550513156858213505418355208716960297152604819682720951310578526456301864443902733431800549798295824246268381030802184136198448077332510997015779292298111182556077444591764448702437848258727528893935766814968093398355065252563541444795437829691358437890894845721585311285163466407221826030271690939256179162920224526156566390408565567155586517676641031725782605403525622872506958257865712949214869936751490628616634200901177941343344924343818730253164085892032763499894939716200026130418721027678869320404214268454232293998168116956374392436529505955911116570779418732064248418650274472258587262753845209710613208902086890901815875515327204907352960608273825516688093818042327366241793649646579488482559860673561201201898779261380517680581911716036460617169977332575271893292965871678089232100079994280338720513867147319380339632924001963380492893441853700746762749133331093414878975488213133946110318585516846227251730503246786444952173847739564946256811626929898211812395555442445165109403482939290839512439153870272157429210833017249539489956128274899642087296346861501988379165827152323139201100810944372205006292661834193153401061569785295228073585279186080905026315078077696855469181505340148707082243470851294223518519566147795613321431897388472669683665334613372193648268792824139280523946239261818494127316627063387628431514721856848670061859890614928398746491435164227654247439281382683024105023627298522478296892185498713426805481665203333352302034981465029788680476797860261159492433335405292933911929985559151493667656525087918538641463141552093666707414910723958275088583740338741107238424452663651779562659993637841044260380640107637615313463051547219359224861707533951186354831318159488306002636156748538945493042885947102261152766474345860352901941405637815283687797521199342285408069020653543361757184168194612297810042713203750305827664919814500789416304398062573476388008632885392560477275314845339248953269125365429017152258285656889545387368444755126626344582923053698731469014372630054469123378448266918756163337180067553729995495418084275286386928956829965985264133909503337205707039664633998986031380559764496570023378531500158861438754765698826153876651663073338983945764628881745430963433440222071202729355990049982979563417984971631002805552044426735717636569419842056334785174035140052739625381147166042607224815802039144594251823823546514182634994552976609213701255992161436213068222707604538228610368687793494604924168966136560069556771818027113052703344052144172502065499139566445235228292210292606505969849447222966432027208688370994424321425140302014456829119564888590082905288373034935019250775993653209622923653619735758864248106101700515738633096921614728665403455656720801074569406928193916023900126300730888800567801531172966077204275471209173644587680401003959961663646945351630667004101657782993629711309600100299907019598319221248738494457905754738106775750263483460832917558822834120747518445608801183546540264973046125853323292174467434899268906313045411795782458077466513264683300270273278280276310807502616373614401051728406455979211670228241996470162821346017580716828574328338987420997026594997809574298609979952006304168136567902044685030254869107243685181566374255201683871116260463446655562775572422595579137633087331028082212666646220014770714348216434309018390782737951065434423010913838790505942297297202488092180699252674885322009627325464975462532350922205405324318156493449372938813072254346006841928626415033684790412455881461563179825578825508553842040145203242206211379716534444588045486454963310618203044499750957000666819130537139298496468722675243676084860449586233858112585099360352627842516451544720307729110605664212314929787312175436143548335818444096885379379910537433408272214489884739624808203058941906678068829243257481465913010948005524884685279464262884618889156362680296435323109197482586603097208706990574516886310300881446755939716679677980195166602192147448535070703279336764124810358468385986312678817779721104708681700445374166620291746631707192516962531542297745245559904314124432972049728295362699080264938565202029098219572707499457093076311926725981319933204550117161667741220078892739657780681596976280423188921268452123558352439005701179854077122604833465231131186027628774331712201678077379761102525416501871441559335308732937037165656508666031058117188655288685287010580981531334507042122133587225729178754847514850901704440469729116604268370680452449699508186508657151192685220486568428562226161184199993344095620837721556676793052996476758261863552290812331290853102803728999899097931158747988616038159210774115862305211468718636702528789243759902504669702930356221237244608844111931844330224556745674616264924813229715173249869814291038254822663246168477520621994644024907319811032630983895120677446258616261208900238382020370625174033319863479146560395534591197611094169036704440578555305049404372535167874109488669926753943237730340578073502792934984659970219255820439213274828346665205241594235840223454089997542354506557683826938051584701768559196918436556869564590224555630330078120633219714507229623987313968965038536873056163904114389835326992676047156713677315324782761824369707096283775128042171764345913246533014115149554718027248369707562613510812764865885545166732071493528767427218900678797714233404623811138180451621760655803920541305653480701736876548041513387709619824186264950009873564952628240492180646599082107650071148136179553666103677949598971211104375466546627846469449456228316469919700450392670062355382895171048213409435151242393511768030575932980087013016738709124392890269381351281998338969800953983799974803899140220720498342907686627260079529267872818851059298584281617126159808188652237414384349533597059642680663047323535638209825712342835267882175321695107730308530285533119950345260887578292309529148434394881253707972394303262074753412934616130604889423406679437656815503136065777807936828783180431883170485393564977308801391882540467212921028893242530259301040009908930059334567211504512123779681526559541901884161619561732092100816671585341486009911353436435502615562772616778855372866926293092712472022865215775786262111419418861689414365335769645586143160839285980746205269504148728246660828698952171717157646791622519230534483678545589985538013937805695650536960809726047079604097152469196838395564564277410360324535401082734904721189215821802299719515549201841156392818345597219878888037098154771379726340292304610812131632723740262616050068858064652300671808467320510172705701218021673766348848369826954990906701591417677558054300002230575092404504012729999901837468131717397300967422396547336042364809263654181645361025994584163363658349091184700940847948964902283704472790389938184270515948497903970070992663370972037285727502571667274599877966307572237460171912828870753292382447808465369142457466075519467554221833172383730552505924565701756736420338695978877574181262158607798943121486422514711003416974811555211858910769921302072630894027879529238820119709273134719215665132199825588126121923584201264644700098510475034050622673866057448987586431846958772114156508378462174639311339487401806988006886514690854067875642159385940718618693706467137488619471553093862878498255251036751187578469593251867565761999241374565793033192385737597074273269018332160128527266877507166906793520613008493270911008707176333201641833586585005128785737943263500197289739692584809065526109042686144588197545448136028729699176330658476107594615775985590521511771755563057135252969656585103251067620935097239443520211831115307787042007782826173353316280380954066697148121830650066881557069392275945755674160022309810408256225832395483810120018216854050724069061069421946088811109008360433688122957215819684955889273313338588677753673449947917653018711945830297796723724712663282965536389138281509307182211982038667320654651401176457747137616178207385093931063319617842984029808366659059449941164029126624919609239072294154120768565729583061630793897406392336853495687721305763518163718027706916537686732286597227957085982431183501272768371995309587521751988864234336634566662125928839873367603090114190378299630819944764595217894885909116446485028424138035523030706391578890619839094448200821804151673791120240297873571240681442882410883331687781474795778641812683359776465909182645069024144332831508165314630065494001338085353074183648342180375958210741568758334196560234583139976869398860743954876131672758204361216403890571998699218584744282577323871139304563213085619509716482931281532363516658813495304943480907383692497503620239686295293298267755077393528173628542067924852891552178157815935184074709226758997832115705373571326678043393981150992707890752846043639521045065077825451158468649985852172294825009165960879887508609015765077292466076319798902349226732670438881824341329755339447842121786273450333168259910432367819538275697489649999802919218238731925558487174262243037686400387081096221436091410819325713867252799247996797255662365906313479685779361308589927331069092553699119055841308709362986003603138699445745076118081267073856677853277630758940777573263121677030960645300056110480135944577141135608155890800936507878387669499736684458645874092681356037678649442439883277644734498479410071977620921266371119856229848047178551038969543764112885889658051184878628632280014162170703058779505183941093486937502633494981365220861403277855089850180249673464398625839323719237836935293591193132426881548274597736965150325273436833764406795691651412778503263363119872595255127703737777233417266897049389767784880063835365470879948745295015632670155975928623066394728460376677115147711745377315165477328734524337427531052904999633548685705862351112276711044717669559592565147052332169092169758910834840067676222182994062448796502750692448849895916435650995515280939683096869235779003586227064073951582320614167695389795901160455335739216426191650108542887488951147029504793924187303896242654673402981692860245786695636773266279886441943535470205321103954711997982396803786354280453254899663322482843191830420384044818527542720638677620650665376558106866181192314522787589924393763998820287020492518984005095437565927698451638337660597111369079663994500938064390178481585242979962767316983762910833288102331471389320967810987037827523264411001028178654947625021110533418936794524080999296101946338037336878583458315900221688938052697675087984234136983633405516041759512324152864903131116015939352472011079582927460235323285087222681774374147441873230895035733782949601753365907961801228654679722752385170507246414533387272175975958134719426273970157154845142121641628238917693873734519095078801721440190647541330823660699266673492632779334278496593497777963278160156308302028693816524219248943510988936129833953693195625936543644426435778798359276325558640458743696384615642873590068178845300052835355338027128704566741873265009028581134798092200644995308916530042790114682136596404485402062636385573664732879195939054824702341026323393693153078378053242747354725990979540795169259637307876709147293606238790372375498444215057382706870466761025107954547329966055707482562608501247885151382157348591286131581508157942349442891379023551901891571753171953672940469557494818807188399914519453295248999520090725544587975637534282934895353533138899001915158951487436444908996772271986865118796504061450927247195321412768872456781813432925873958698842703757920654263924722798709699815744414980143050378829214598765763863026701882422688273792865719009550661977753107210266950330821118149919432332554294766045107707218587311805840646850379426922966527081635487916694305275594580723892954080668716351970837052958586425802613218635610307298873686371218567726540495358587233666371861883981512964424194104033832792586106912683729133306190288378916448371171927252295233747387336704928202361955458490275949673965870781995819001693017624032678132246491514763903140235384786463618769611283090618941543960077477393427019591060638094911679703777600823614447340400544404669996688879079870089332566774270811216204143800629005343576519646261615039340807919025653146474196333326040053168203621540321087919109550107668738346460928228537964465145979875414830041196479137713164724204450334012474605483656071198910502582494401030218605941076268231468483050892911264920143916101111134759583636047474914288193413292593542858640596863669477199677667830186461709736754729577890997295851992106700927848316450791681675340550426028941454536693059513089708898744126598195663439296242243190460315256152936511372446821494950725474711596008021720408209412417372762140984612237828055641241524816739157977102748070070924476868733814447460710959089123623243348835771033998533992104963921780908831655309445819920233288674460612239542134318681894202368520109786440020467315003502600091439476967735948638774186617133704445099161713639084228563407376965114857302883777488094363916691950542917247851092290403747068325620764292322707719685087063432702789122047773627787399149486069053227100532378154452704088264374544213903910648180422385173242226892030570227367552214547210278058600980628442448440568853394249281901212746015188403329598675603234062575545392707525151142618815199115109436327218836620300051912057290775845855712128453934882656518292068422629409088253775167069009480800948647212373298063317357892191588317709222251318195369117434500062784112396159578725418836996764155410954101845674319459909332751875574500749998225154743857458476906788549543923176019861714768031885480636530014252591730613048336914428286530002426994398552600755664164606875318556458671111692026594223506027693555063896074122998696815741086842933897695020803544197778140138687277000358453284068052323767230377113364426055794915291704480324151567655324773685514194806399918550092383204098466706188760519898897936709070482466328056760084800250729336930786658652085750756196747377807041429929398906633624166841242807457167827218359153957205124661092584631227126806543264214563180000573908818801196152617557708843797251802193299024964011697923224051784797265782552906885169589033307576851753774028520662909859336143733467309296701112189794351879904283706311318200314771096736454671303895586387836594342553515488682310668547464477799794033408675807154455090113308922414273102212659023750178427337764363534354932567799983561491552445668976047139060705551353241415350966890025996137083931493031802021408733774825506424264014500128555465248162850399300693717903619458973404879512349183543717421283949476277380691378565856183006394106822934011230683229493109710700773710150878391169923248883297157248664257084931027337829420158784224501373856128818310342090919962096382358579145946070221991833871110053235230251430719437119922043341383754766518502415788383793308569059354081535002380353212026578560825787006732989014476712376977483427803452168565937069570232437924719485329130973724880098092147136720808318126204138874137963022755213912690032470055588380274365192753324814579551634839881279530175716613757058762092559413780415955227814874147070492824829723690926393875437901983646984732184364383105409860311530069867116393966779473772949985190478965153706824746797900185682888962995084275047518090715707613348886357887384086907213368632940004772825178854521112998127528218665761919673150745070664205080188820600667600614830304266541384792525202307569581365752768181731859276249966179516385235495247107416338320739272011246093415777257937325683576315038920691590973071399426870166306475987203708179961858173456880702371928744673524811235044533571756043593544012011710370971398938683124116226068862632624591906868810590070904976514854674043269875022122101744994103041712256563751983285865482230180146867528434757015792782686649428004662209108121762929665323540076416548149602972876083194249174167144531540702781931815204252293044831577882915662111175893538345493574751269609547184274908077802672337559992082371361972107448988459504875488931011121363403491272166372505200056508129837189028575417853763054264756682417499303377275227147487396356765190210695950964734514800749286462446563346708028570257269058502943394346145588423686600633403351758416882681391289430247217919299598869358222592372603589601387836740296116447663205392650750081287818652635905107297319868189501018640971978984037387439065165346046692789051684143692813138867143265600698736444144552720285639719861854061411422337711435617342574306320370575568023692061297114178868144562619585541781482369950886236469016224950740674330811908496361089359461359302045595001687362676376231945875783371510215573781516753994318854765087183145915469672284255605049298536013191362644485912252267237142348664958923680545945802798228382818963317913166931805554141898764457625195374428126651120485729165022422449970174380775274799606542060949124847805740849563535615148945413927685394609282086633379208839383941546370499990885882974832046412846346769145840174086228881665579030698655434244187505354586857714687298966712014662271361371142369812986863518130724647690542484083287897187328541122865713254681995310564678077589551415332927569734193609371151495902627125684407262778946904768182946377864654287118878307063824269007366972852170535288818152959493776437277848861439612914663236865761582009945047296674528571707942287131073725427904686549843264130634087088671547867656763497760782980810020468122952762471271464238907971754895726713714438192663131403332194671022188843558786005267981125235397593551510905752187836689217113814193241560827022312118010990848035912958638360421490031413452847111990375369055113524653262489410117458541347661659170646386347553923174905331547928790599452714592558891174090194474288955613206622852490513978018263609984750908132408909748783938236666481608177646665526169655769080920355922901269841590755122665624908162354964135036008770199373238343887931135008858886503558138176236894249801267552835264543908330157248134835623894119545552855201197370620400266898826999111619012726611831771600128974364349892411535881879749847036313349905613841387023284170130592935289114628816212715178279688436022952043277382776684120894031210306831832300717166380828508778682441218207714633151149103034690724111524271272389675333345006217956018554077872304046733321730035481515964284556558169668544362810696087103174734442401538020836891393329574384584301175776554490224865400412833905367993106213186532856802158519031837002043083558135799608580256501070121396139448819016488440224546859463606884288892498287998729426693184790975565002340246836539087899678380346149066784371365435238846501977175586504211157846531356802203097121307638188032614777428432083323355923412177225980247436590797062415712762311565243376485368750308059714715029476326010176379262542509683522109521761872215666799286196841926094115256498142883802421279642941791625649351898198911775279458560887903765009784207586215756125935953606246711880525869664485088518383645885229696248271492602386120939781871848606269474736181433444428503861783667398188895067531942985195890209250384055294609120451649971221586124226168545613727437040431166953453450411444791419140820163981495155111267823191681912574701042418298862802093318615531268745246152599200754757108128506554253395712067985424010965553382735644496234365338575772646001706767126290053897810944020765416785566222482649841361658233016649264222819367243826131868634331916392906690878635522159058404688286038893441655579459391908198935921690070356803668336213457136414989525749432978200570073225518706270021620095356625142351222329380568542971086553828259861573229401774379832286168458904585972144402940186120927660049382190904318834419987241290060453685117609861520930286135350825414811682912737024675826687486574819594963660442927225264793053175652903877170376751478208812535601801800620526318357226585249625753681777480321356056649370754770578572902155061394549276255679475004722137789172651409349336525658056957695266125725385281000437327945946004521461636069405215757600980634161535023744735648398559105353059954915975340409093737062156459878376667550752556289233033400904679884245547138947382179657611357879475565050041762881897609564905465744379691254768702234220799637285924827038015824710368494057955166067624261763263230800785891590977353945330990680676705935771931239436807336135474684325479551556699449973035593706662528193498515122780056459953601240306623224399981477736788184654657024986460651266234281848758688072676021238787482669242599191161633467774214747048764314773523700292550880660799466052403837819027543583499204304747514544981473999742243854312853447247337754336111113651221633052569008260178055213604308610962981052361793717274243995369984998995269444304284425080133496727793786348529328877429497699035202914810300471003267956185138903630060992646089030357122281522093628533427537631680354862338655719121660156589256895678566116706978254632645896871785262047035688658380904851280397564696021496666805954885372873223508791493039884284761280297738225640740459129350378083659992404444966991733028841544559442413252208143409012506398688317075670118362901866712626684001067394343294860245762011528275782799017796988656646758824536212551088826597928452174149603159743174444212864930859376393819719335357676810650614772956912803884815795025034382262490521002014118947815862213476818693538704858079547233769785722438711111081119524262553061336969925783237905082290936584420114045595258187667738845132794154692109077475800524796606669161590834842725238900895485839289938231270077490887223715617197095177569832886085071770021781824318145560396795672458389868335079286788477133350550086254552519685452416092331604349153434217175405220361685104374888977519384468091219024964351601385271073009472261743775322001761485910199127539228567057410330986795199960168951672370319275656560601318198709840760475363566777879426885419934216522595624406202893391819136083324249942385768427288798970340865485383493932560556191886848381529138953568027192781320737635726363099128226366665032940264803868355575527411639692676892909557595064807391586244262565016540885701782449212983606841363512264704048136757004567854334234129874919968431792814403910057799448050059744331556705147368894994761059549908247746627698630998569710508680060343739242662822426869345384779147802430083646071039654364862960271392952464424412694555039301129521075864702221563036822594877257442265953884447243026737972447639192792774212558091620064002442147290977555713259352855921143536955012413525432648002901518530692127303587237421521264218542747916989262029558869556202867343952429550963807174879790900710262192132327081000464959353345899382848625406354403279754970620410857766718284253390273003577841733197691819551531320403055649575638616825202156296935584264498630671397376317407280031109379827898951621260843276533418002463914754770884880225640705036705470613085905603521025879136739977298069755541996041845109208082799365897435425317462700101458046215652577930573306961261714966178713044419621984325284598300742813347044440641246105802402141560059389433384085543002993165997467302089847934725695429946477341881209577027531287450524533122368581623001624277341298322418114708701661794676428239273837476685566533446143050328460408030625091519718485539363632244311905954511743106460381992400496995819595221845892346946172612628261829362331475643294567165946506592047492950174502514520138830432774497846904042890385282651098131948817689422232037429918143320638270139150827265792064663658970421499343973226549844930886445793104659515723123140306042884526610054619143291211843257114652033449098491251704019344595112841324005858561006331035595363738035394234056047140424949479109853839923272589528809639853264361959056590227073643719706295705833000582470370336217949253902110479413204914613996686549211978904145924093559924884720751238687755385557701746692324742160235187030255747906480527229287127723563787883719588536347923457401435966351912973959656403850125547914485532515291300172067933216229235235326519675068411732241152601113729575178064287491522464843129307204922576591717019360693750851907780300720011955896326496978183628138680603247341689187394873803293898693614525096624273939341121400815164742968974535992381994990932922107808256588347155255095675860129086265178631454867532639363414517300920171442017454382019446454616027037796285747962790457544651363613007123280955895516905895574048403373594885796151986031990438274479722157532938230138310933858534106609601374042574433090616498302353625094724991183887089596980868983406716641075268076517390006691939483240688641654372887086950383041625257800553391751674703007362906171809391951742371877118771010394354512290163355488386018235028083855897675189956814350019802521950436588216203077013332057201780192741812309758163136714999697508670587405414881545904272401464321624574813862297100982828412004449732233644746235622409334248320223233238198916709727202091074999232749441288636365679314383200538168769594815763436973773149304708768355467991178024971583714214216116750300011397607745800788306556066731532539666425901563199997024677772775294240606401136521071401424225635571465151368815292029008904774277644392658752511070115249886546393430868858130058933948146179441995684246772209318926092274990986949794331390103380750541848929342330483071199404794992471954335868442048013807584366243842544648511702816638169569627396796999528123615122458776937706380291334305690150456195928841446369965511317886222287533498545989569575185331312243283779139271425176007516623002735995412709458806592653693102967907847883743463565012839875528246884491103865777179552100749291157314389874513187995462300186693278229001388871377056743242581922301854361294606048824631837117352357682106406191199149978388007802369761306417211030805278811642587422135343386561990833148984944433096019789138939518544627634347151111448125910476339541419030090383486980146828895845622267117974909549419707381112016596762884639359647885298695016837358754119307765070576807948634273351815965957972865071629380232766267280138508293867033864411767523604914986976355866587256361068512591459658319075060889654015758475427617602109419725868621035561556394675316505522300399478227202359937381473647190645669323955438424553386135983914093157863918559737312527044143391752645677913264946851360678414439524876257874154797495759931389042242600188198796774030886233402400640701603583706454818384854924389465347607361955869980770074181882601726345733708125442163510042832140653908954091256323910340727955686422833070022398301395459316042620935021435930921993179244180350004560945957195295545409798833861545223449400158335306100680850355033730339469452230648944536662414533326520986888214093877829164787493747063669088939844855097289402812575089327395192615360467510720156262578003285233428592946424515267685334590434260405848707197217001822835880714611648622131946315964854553052395110927368079254648333076034956994270882245655234556311984862981451785906379982765486855757520566753548019372371003082976417937717619984748182494280608818087248072912757110570053876317293728553833927037190732772937040178106372334485999850862829877211472555585162033051183974139491448896404621373221968038503593762694797894432443564026010530687706243048945525119216949133089761342876697278666033452726487090621638726078395281117758656808111223417426701327079291052734145226287659806362940301485013366128055152243444492737897397997837035688651279801844928587134891591360809595622107745815030189978974281419560638566573897407865214515372261765524341409612281253064382297040432737560658951805407087521591174272614354374158380181921169679853611005534908130623997199089935645820799873762341933949476441010564631026104598944502719113869454018275851411037689490914577789847772405263745234260009136247595976926389794598644814431685242751337667365179482879801640091840144613993275860220055554682161194255131942620862648087684389327804151784958630506864621937221905680646305478106404831949532796714192137009498836074608167942245288212253790443779406277568861193167653683449137663334273315552517913650899580876280468533805430467338970169068411126741979767551144918632063767893648644648942061251098019529057437233522336496705343545085135259777599324607039697267151568297521659932077171758399188088537137529165990193642027255599918484266921409497897956195880292247313799343643258483784952641137919456567983851064841295799693839394058336018990504494951024001951867129654715842457147159093592927064173872942363074132499705466283219858482509369059003448839812309732584659028108330176159685902545281761958862303342213498095167408842795876879418441613787426476768356168056176705044402465410037953592680533965485686435288549603650686609738948615407311103531030120004285861848953267034731871478498359729051032504756898061103013648257506238412752497926632143878755913606685824435024453828861216659432692344858489821330101218027669628824510900339033287102328667367944619369771720191933552243469647075872714513445910628662834623301188221268518185490001853883317029526856175582293734793586034736627646928198030975296693799113353670093035380447016732206477685061356670031448594464589061489375888074732121155106095308353039874397072476949022426190658248989889945426466427117417871196060159573498142664962827022270615964741453527539341345522454701925741384995945096693726601715666476579190314792387308518451769554365662323474338584037340497037728916428676361907451655525692566682656175457543615189959031055084844264699685624574523926728631031044056785613292383371261059552610374545575176726578801181451897139424848454341174710909004115315008648345044151408676244962380634645353293532589852231582681773168643673239444785450850070193405946531781837793277949915299660183968060668136739941415666834136059826018807447427503293580310356367457243179889568075095763049989114306065375169236183973251407728888192456463643978234952508133097255225481791641838226808702009691794761989854637719547075526635536405068406250654101538034938596061755855196234429321924310347074510433856268439604358051545750471121878491827277320630887249486296910915997911134378821543907037226702983072608058338193785028054324881483549083965548000578697264133878557148601223216065886730712675967591889015553185766562680589853672214074527744755318628912893327286383099561654971577157990922544810974998596142566364825636036258302466829719376066550232779221903882942843036549968840232577337033255995432318154331299493291519195180655591149100325872947675848768062673955381504795076742936186502962514032953049236986914327211719734312899207489141973069456229260376389035066159183836192990751117375828711985317908108941469863394562438688012487001445080284082074229001037103105836773266082048091675453678947228263963545556057031322762524921044144684953408381995077590109342623699311607977136043906704542534494051133073926345506351351647521949061534698452313480736366183617227849871416996052051287416370539944156833403119649256997928598154079438941492631225107555347835641784822400661925604614523626250967397539432458050553626915350449124585798356007243777357634729842489895615321319774385688286215746685441052462626225381104772621115360496809540624023792536850035517470375841923355731866516475600016484834035032641424028607669729334228803529356268466589278255817489915443734689919196743945016191096871220482066376043802853338605928102389841116664290598992668834798003811197294635258969504121058457217938981921388689492511015389761162550000327254688528778319078486844211707119363978209944753364065826739386407577440690560976747599738239434448654636974639912734222431688372420560302477103723952236602230823180655455801291459457267490458168108577536110243421472150678772397745085628814012414156141297237839250249704178679781698311939680534965462181943611476075822103037019053135036586999540110735823225369069855877518137473248812766445026141492158216956843470887035780539367487243183072640558602255164686519663238138245243166051356012032051823576477639053863653942065261678045661682821077411337663128086257299887190635226623646710710469199791260795703457388186132094670749504429484020470324221980546960037195681646300011779745977824075771866058172631718640801485887353044030522166922749141480248428546193424624337245562158552224692282483991026091126248603737644965520384242349786862226637229757011329505792553787931931253442613948518436512636782657647636998501095802091444756151979061671458217477654343650243876547639591169680211214746775333896998147859753367363983588351237116128231337001619942793534186405599480308054023898018585331349267198699003428644951555934020262660466250536867953568137034108817888579538556181371437140859650728250280454631554121078573845047646792909450187116074262971544361789098090775945383094745860733785376029592817438101680047271999495367523809216841290256236220594233408834431269999544255188218482878467605019078307073962407795503029489493257294321160623240579401696194885568196444193286134107212484894421565349386929614147134013360782427101081361701082280495230680803106513626812250682254207623872516569089389934609572733227538440292914239107210361561184467093583720767353967242974252290970694588776572158218585784570529050616982433072196143686622718772612515328165380245166292602750352126549575100708534690732056582927781096564266260960066036484829425923411165194251874971851478752935575860977048750856739388089356713783311365116753597889677100397482036951028412705144727829116108276195523024723454855981888983374249601709964839823778575870036335617940328721849283437195510621629533081019244853740569881555014923518365480770315058172198471605828773782015905096454119567840774047404952338629045329126113050673624073491926356408135795709245078941951914723119668379808282652753398469796025963917929577979815396552250744583939893010846600587238119979734798519955591538500953313445003463788868047310630405431417672920562922985402257529422775979422946062360778439928778060638652897735587947504040264460114907430364019428710163247740804421108554936734653905565567178638495054406777845340600464366393874649997666466626198462589068960098339953759841029979220930906981781317219995604192974121898823837309330462989562523691263290797474104196000293599533800956683677580150857478662751126999068958768817058132937024887676947509785601669309511533131887914967722092815245627634368212659995706508897351788856152346625142545441760386656736525966737925295695700787290330505714471982967219787647022759411515571857597564665227998968916855479989528962459563376046550230579815718379711032973322175863903075030950800709431632558976609622682699209444896830168489454222766629553787864578794257598691972916104596575328107482509835882926992415864424122894448339319979318248740171689573185807083390260330995014897821932913268509001741913040452373188791998033154880786644238721087638585735733065622361945132816821718622416933191466644674621051220682868765137293874123839947982713099112003966588127885807386651898861561843251576710178535763692802201429430846750550818375386768168873202503747954554815354344810070289233140083722610624552291950699471384453935423382555327169215568267188252860710782351300335220012698740309759166583040150385022829156591234229188690638063391194180270269632407861692225106282500564066333560437854710726465557801287635028474176862853219714044685310483107122795134614377314724081146250743519032514513651037422208998187801173260000513208835931082098381926211056574001792887265582320483674606596062583628778016285335436634728644374483093293415403541171499832068081166453126635309859767022559488347662238473551369296037958297127964832272355790017036905167413045995558071961538421006252649105139676980461350037813654384685371804650022097061702419889058889098691306566948157216747211935233538629130887405234530875326300233882127403348721339277498452124673572128270813724994803926016725868357343129546081380902277631611811489376164284437870542396023152533548816910850870936600198284141260202546782088720480759531539872137927801627601028634928833786189144325204001260327159734198024905222526600768812487262141135504928764222666192527468902265818189670635218470147720775980124065017096091200623364022492533547004712508920658822792939487494572572463189989867656967124888965437690400581592108742680091496542667185738573429584671243528475787622120749217601409944612993608578003676742174870989104359756229477779164941183809433061440641722694030631537063218602416466718147651980697815366709825805156695302184774766761619483511282441181783296146537632513736360882314215005298541421848435583678107903586871993251399449707061474238730479929447624832031357296341957997897325263278383587164354141248571162264134420859544080237260832647657574741038264630569597813858132362787799498779687425552550594198214639212297681370468462747447595259122483249393966369006586458793750094228466858759512794887727033071077246763640812514565366779497638309789883687605886896741591283990744223657185921078413937864183002736609954416982383866409219709445641779411571544701820906925917397080333734651611342916605138719008358081277592907246648078073408356464174061179730783139072202989210679338841842125469620172235308414856137254626872314156571567050178936111451646681036794684367667745097577833387299572690662387982068494679397998981790982660565281199247614397523543956536514851087459651192446562198388003097592706773767719264119910562923031371784670710399170341295992264330453380675871738790984627359881734916974555686833431104615685979114707636720552854504983834493988131278492001190345940232976216693257899329357044909757672293456334253118186734850700144336411774134640169234973272513337455741757112101151270461864227370543136810673109532794455914966114812446680955537516042705035367954489411292740512495749875829956946497042701312355647126679865093550589284426497939355982487491502831816155431453505004166446923576062567266393339958152395661574452192705829665151465373992007560647014732034545770566775222261644826467655632071073943311577046348455499247901742493208778818988305495891485198328257825593712852159273930866032536352566413072451554566573348405733142080834956129953687570753406783547677542217569146118284549895055879219868273051971544880657855395955317274501365376140722192795120451441802431114881133946620171139618279558840051225757823371621951335389684614895964732183956212974637356679373921145966972928534836062781633961657768167718816248306160712450986319895774998789348357738996757084185399110201736848932436051752496397151421004177690825168895121595669827197932968942270179339334728473269808390628261451637111895010808178198122468457396803568608512299680749148128013605134693299996792874717186883945419514194207433098151913252167316370055258794783302639413627450138554807923572048697078369299986506246258090658696364358082377060851773648636062673474506840911135182365559094192189696650321983256034341361410426820720294264585299148494705084834430687522717962134411807478870232596066817767608973668467653080661897092927330098717770228350938497766146128986912806136251008996384510649345966718015351521645438979305605757136917572652933050582962447323508793876994874758506981616371554253846992231050610019676519427711371660124243254598129909476442676082183826999492769616821065315098744498964553681881254653886615106794945092951714105617839789105992646063837543613907544273904317189600262932173366042442120992021339956805239010711687507069073144566442836141090816809393416246658588969189893064734697959582082290162260443801108999406707987615019538700157793946783012629175156316876171767047267888640874436101425065626134604056631072913545411151067455757742442558673417045474448265766395328631940791598775207585612452105987719897161397105772569896896980262815361115608842079798191244470184588263236792722173162292658646778034276791553691994655058626254872111823223201602022446209233670879108615166335936042471903713918533177254310634156605452160884853468927571753749285237465302895643104334546273154754705036497584836633813467095935864624231576097689163220716265200067550989193348859202360854523928134566031731821707829804756870039416459209937056394527803191368880074389665673331602863019454094262084234745961749849715648968411989759582313926354683947731084852150245595937021875009357292677161230420026154300586681835430047896780493653468716782837454434808752240517947674542130218825650862350474364964620393131216419192878128584886007456179475252847904499133507496632930745791579258622277981606357045144825224659036226013281290407405389060656220859957600638406259371878331171579592039348035002676379177826045226763875018602384092388045987608678555738539063065559018610647430477511693040982077299868628477838008363338367017491505334173857376680960193622850060107539587802154626564421641836362956596772549393929075497204546129369206640513168670943622040562617935268516090775624297677782751701209966597790534804886660209073560314736570119304079274621069638533017520256745125664408700455000680132202030680051127843769329237348633607217424278213197409240995265309142736306801247617457976206422861111093329447007431289962906682704370432060828259327458790756706378800747895814838495294920583842220899079474296553824333318208089629816635450548365668781914239923503683393352413784443436436091587224440415529596118291870950971025441486302461014011152578563160781671994379328788772982241447419066642230464552624001234023291345100107779581451883616778544528455398084800538940016850404777212034720123394490375737338505384952903145234060504981379784579377272423334014034738501283873667522937138510647286727459014633168288937398983475738787808424886311074533111126428764894954565902067630149664592397321341780647214721859070776166193112446438959980952165098848904860278133585571676112399063769458662652542793241394972763856220977756460856243182437572600892699147101205584859360185348242062020035266581496495202066228280969436289515802228962459420507327708982135926060279440074762748314951558767902012609935416613197235528386968288033995084322341814223674723596170589441461278722040154931524285328440722972555495544488405083791002791219396814812245632165395230224314874033197412275565811023542354253315388965409492850262132932702648579457136527816996609902928434489234347339144698528744690999539497110282767521276123159607546105587452807341359762483478243516001049343113002857966024912769840483008275691273574345139955746720640095797629507839752608677506925447095137987332375509658912193251661651884618924141435203992316890519237028011654710780564030101706560659971713452500797835867201164988295154174223447473048178500023490690745363511558336459908228023752315965335392196138073203027786166983294850004636079096472295153380167958634244908016688516306405141635598490585097376435476508132073549175357820289154223215994199386293322777962512031710194711302463992831724256578765978340887836119839887595174406661623179881727362563990331792337242787354593524242831241138466888981141875303342624931761119632120945202489884337832552295028228885643050800249907261620278475315677170035073741896336085354829818040509440479305566500364973433610898404935803766139598256761791278403010154794474629531863711883304252484487147550413440653361177285597892482305744237351397908790299523010637121944468656209933942198641467038972617954933454713525571456144047245530168216387746588257025264194645977879273315754864736559719210207832114506955952236890890926106323523667745135172235463299050689614744210619121965354545741485174448185041386354890085936648253664757539706465590236340359718802469413304243620561189452078778929333404341072770133829263926150255788483446410907313386150003086866946868749081672913790113375137707985602435311559918727029661802650703116043164919910984590733334925595407345867584661374132139237187797277851069146305060671215096424170133021290743849303922283509242991954914331359509574921613573952110639162694820737690979806322618965675599303652657051922887096859491029941222786893410523364120769828915270131713797814534177922606081238675704108602642236368385550677179452227162354603747854643601684684982470224803203329954433527432965197698003733411469721002382299119944757947929030607493865884023288753839570112638724649451270387373217163835145043440741747038125903857602537345649284459005798324899743323841112518833478984642661131744505270027991545906289832450011946623198403362228949272921621083752933619045225568161080540761832739718185251879523559571643579537262977564679162502669792867727559166573132309862262360428283412238363935577930923908651121095699923418158613778221537100484149924905034340044660854386917082970610236226395830496857184066759782854007016042926970069558438452837785323839887378604527611510699607786612840876779771548372148983744544473502595473815870166353330093421714500715318389959272798432570292444913262658138402295374860662089649379807528179987531533615331262309859031177307290802407828611838075110348861982209018025234986328457477713119758288278916405779696745785854539198017185565964452933035613024731312790413097160895370929018344214333970059919169219604651723326618782033439886160641711516794506456537735092185605563865758103322344073694214733670642878680005674836736572216377324716666944273915863482739442673469184235783000414058339814554483580569059265081366971684687007325640280142629480765832158803013199855877586540333886215059282962999237531707370767916776619121310528772576823722792743929024131706130268001421533729819264634187072023300048897026083102230502590071535008060304118043811498794703645321884138989792626327830039686293827251114939477375972978480997804453030167560780695598855730399502641165952824121850028873349572008108705280518412833836601313573473418403769365734225502306181028535445524579477673277669522168730542244960432746695182281943951751045636785404897049421629798457688586518450565825334609927402744206857280803901237247331905092403365765199397159791804266688389299379369731279010648532458951567450791270857278953910441891570839189509797086428222123720953013183633755715145172925501936445817327885631834271493304095500602550384427265059155300440648008373809698430513898963942025652336592888941627989247707688432367176519011165002449158395679257766281100269284327666712528736245140202400041689364392251041315584684224179956423143426089201413582642122326488313932426461232344917063387760321041719957661350526622195570068270892033212395271247022322586162796421451050841752448807462499099719873298564605559367845180482381350908543088980845835041987660433034905908883013754178567843983445432802905678153567275454224813699492742806462428221218374699447901903387358737356997781740010201889742832461932307596849838456085448041289184930782316837104880891877077392897633227752677109592547341339628921891798885346779285700414880005942287191023601441389000320347522685038348305110883946414355733000888897045001475362654081335699072952154685091805286752781472322462309476673945443220875592105184308836130132429437399056053970531014144348936633542780113471673170468953342608218668782806941594133789299066020594393747294808771633425614634173474025588387202763109306487047721356387061282334632711111460932933190960907058794020737329253794416073168978615735215652781106833640990831009173190732083571969099003290623074706675642761204360633643793413535677783437289101319492118894610294839410866038118031752979825858447163391326744915842619180471234482479112648073757989213374666756032909941968052192002396560562924314033544188945430147070177941436724705641220571304825896049657739741009461663027300164880167950198596957584888173330074181067690812181603005908848498968187457123807050456007874195659975815650814318877085117391784357341628456999197285202383915394471036280837529688209849526950640306877449854379669197936535399812114016896014852081545529970241083990697178687623259730342935190520227677335491480812256118829821128293839894954300180229750925737664935631403302863540227154740445448525887296124098031830343144575393736616371528035434489140099776140520261934767434402537296836911892262413946823607789309241001235368826548428469043344461967030694416899827481998017100189304017968154486084645202284719859467040099288533497726223224604806255424278861098450004663400557388189153411256380448181793466997806147129010664573988035062465775401917980053208639951548433755280743596419258610175692051750817278391117804464625790426209379903323845060774606072577742722412263505577574108125252680334184746175853828379409002561489092234009813748658300805854809434658516529511786722708654822248469036882437937329879636620201554038763877017683539059452705565355492805602278467762562758617707826197846127753057158671689393482145995899070203180466924849267320994872668127615836059376890084918342039364348702376131562346501243200804353663899086153713576578695321612565315286192157911100096656699817140543445130818888744226141878405247132454408431433687574703827625418114380886864572865098901287883523534137815690428847009428577531529832993057774867121940632711402035986512801339383996360241162781826674933513254200728664700508755554839017331651999882431466700369179026853678629244366611920903140633305209730558170569935606016818568224452460795314602460434151843908729741046658119868736411964706822943502676223607440643245006896531855168541433428608085813435037639190050818209464137864723771048902732466761208188777153306992208478251226562121281115375446578037282806197445768409885733530367808443349709754895415996841616964144439613841706010994971149820662748582470998012996997338330188436758224929674883678012058874936823648371909585896320571474528663741052908405150581827327282059479259670040613758779717566553322608991896891703339611830970843761266025898972566855144617134249889311082919799577014407378973350860639685757572064375663653096086532132089554680112321233268757385213867391490890734867585145974458806255736375560402501911280466120946764572084070385094827181368155989383034809652047701938710373783450899263713237293004682650486655850317887932782124097693399721516419288447124386816772342651468117745077947582627511247861994255271912962705751040103772741193561311304119813053491405469074950576150041896877233891593336418354761180224593915372798044834415206642956515750850530304922917416254860424761488715206002855395261431091875839924041187706074932590651564633793402396054089504238038296882412061731014102811506129465168551850619370562546967870346056640838025795808679002907840681731918437291005528359693750173967401055599145336027158612503500904392978268008984668278110089459340302596453588244739995750077532327045790055516453140860604876573130050129964722214084010728776031158495812097244321870383449842211173845518335742522528686086272998858562755447687349061932520798535915655005237338344069530549417841645347559714964121657286609529391020072396103404001346238851538309315474636997874777630555741836930499144736704016354773551581074047416353031013067387228771826540748160647609459351869947383198930891418809534122215651191745771865336432982680275923704891816607832927490849814589775987515761762047594665747311315123931429959794995003809358789817671137514622159464569212055879563328069393550772504398978275938016519317531034666266813674300650998911213508835197362232630874765336375635476950240679472067992165987116082776443569066560015859868772519984641612366072476793002654566259358721503159451308219719163606879384749570545032885182133582068512608664061497129277799941307374473528250415212134550290650533155232323125772922443739883512693799830889266882053101489006861682116683470654693727301649417626918200103423586795655165622636624740153364070274497896289684901724505383903223233833672871670308465453333270450306141902779656619553999846483455473328539382084068914068861722134831388317401126387541855856410050043337906531580658964410972112281759749963105997574383034175866073307311050700094437499333459331618849300649787315752976758322682180058964733052160262376059207338250431983563782797347402171634481512965134036907437208685431251177247601067644470452866756751280258599965337030572965005058972185317107856904262969658980378302499776954216435834594551177692810518009175632262573232747300650267796998052098552221057601100692993904581223323828101805587889996040543853045140912404379108687789957915710848338779951793131399380737880855832476122127769291327735641128562392207699463388854194467320573790073250719699965685470340382449594643648228879172750438476365822402988755393493785371551542895820627015707323099038850844109317920297490901316787118853293245312735511846512965171158308122318699334229625693963147121528041823610917289110999873933531836481213826939640291195332906422471574458027352870095278382379058287219438192104368372172588523541471021497988923777064465030917256959385374609640734285846610359658625006836812430934776403437832470426714824027890426542379534183498114135533597652203235885346677971396035188129646235641078861965868477821079807427717181317039037631179523759781485520995275862302572259832151974990216016528090575754551394473953410021811340194797153510773658685912278397121376017526376042695856657965983467335684556772003756566476500198221390218630266003433596463433374581686634629791832272402912928487960643036854959951667846411288010336179775761071923471445602503653478549527862344815832405372904582360617101985485087202463759327392922397300896223523778673306483690199671206364458156884388921037961681874149874843910898024288774004693642072147368454615290240062040755767919617699114454168106448120232348187085331063967160626156606485814740853242153141286517290949088642971560321351944302918922178587199900118268304233628344708957948964601763344114765446368575600230414639432664689524020639709742269968187001083643763162224266683407373229413279452905803010589145567668201798809292079972267690869580235171305736136427354941103415355553682116364268165411141866721476059418222741638453612668763049515626160134262467592904601251491906323453265967541774103382353867755433845143499674820483839944312615389100331911770388675043726638429439386050075883296615275160204437960989442972013638042943815530853445902399545293041556388916222341552249684832152286043297794472879474316196649922439281755831785542744414126702750019210105933112788859704424582018377744107957687014568351470627250302504620120033183842943840851916713043855215066799281133515041798445065405624403120935153121319726680428220465588588311469667795545075563360768978675489867754323246992007559953815913272180199287960783074018239906423256183966659138891895448845218132418046716586452471449999280449093045311839893069561534515378006338729241058513471081257944038575061660211148573782680858936061050224715001795258875333180631873550066170108322715215854066430934936546092477868798790821113717757501037516948909030320293193972902210536860139275305826865692034559099064093908904905293635395068362103144061544214463127564900988528662648738300097339456637335801649226525926561211274617140595742834716330327538964899126057604150668346105183436526507461567151958904857255200459244178333630740487641622858500791949150920104468252652580373026549663124237206611027869373486291140399390628925564640624835139781010081751116934040652600798753138559596347920355759572889183465819725956908895606880489829245355065377652970817026361396210302699713403384005896523305919964216095584811987905362276432485671982127864131048883655334640366858348625647364032373372719787870337928080543851879775522974161984914670803034286651598522171902106915554716389751264415346705663787036503706608687994644206180117416826424913101739085931587467183414855353127006914165302922339129281980132183528329628975723995026847691840472094252646095720058033175017508532822497631562365157603742667821760050961605360156220895677479035583883661299421313604654780127919279175036279245854990839074338299217871247664038885100996152119664610870499579968960705731855516222426507608880383807892359853704328914343143326628568375798925040021055679883191962367464306519091366747312976477694280791845911021985684183490010749627331725978344926537789430760702724744156853772344280407426641577562504998220493716823526488702566714025372924158088543556953990656904888894913899963979239590658321857469828681309067571832536609550817634571793729828099986283182578265838805169466231118704283007779692378554571818473941599706120753956740883459637869391399273630571056069646167754910749902033601727162750319325177927955882881564242187666225615709608901004068163813764681921985261403955644866132301159834020959309248693711573326167694466621293828186415999405259459420249529519067628107348248156601426238750750686260327207524340268086527156955799479473873997591384199244152316949786521912073273264962009200986375154513211103787706298499287201677005791379059561254402577316521752416033273816580806832169131570737034212293529306924556843523131309168251371675183316340260902338519076147451148024975680024793443547801617616044359883919733633060504290353624569990453507986972362851455509990411407097034749332465926368656258723007420743325296701191612835132829272688324233510594056550389753747185489617344616888826685325476008351058955462828765159155108078906305604590316487932090785607357937353365908491756655975749599445630581857563592740620014923513093770806159094786137503256137697583861812091449985818220291564548708449972170803655494320592539739056932339544438959322629724345511090532167994818278996090667673973796402064266406405750642677411954390841654973992007719675809941395901343152673037404168011489587874473528189450642130362519156810235182939394114948372938487044019492321892434698165925707433429385434630950657247375665023651677738727569246480497565964096551727405474831173225077095890296028861012570808991526618177026090181147917091108174960064073649750359338999982367174524048941767184195827169051764411024230812183402803565601140782461841607904868817049375268935952848612282856244130173843750280286097867171130998447420765988894401688185091658884035616708044443199585651283957980127402568994804899298010755609271551383189528146134206325977488945763398520500962757513258193971988288561975460554701410420570565596878627882816440355601803202916067566161153292669603647015321154423251309340133649495191015741198811072873151485076658050889372347193630093037161001113233858900395791691433547040692457359985073787783263340187963280292137263914848956456664192708313747541470664855717335233030266073549908280607373948559262780832041460941397180593790464035969371320932632269320147007634743111749221073142779067513547555913885365017734308657715287978474558413369708466212170025185553936189836344245421351346328670233307843014373934460980797243413146681118614969449817452256487633268358569635336316753074589991776273089588223132305268050793622035948908561111082032273898411229242859128502117673134240288183091868806339283392480846473608476272820817165560108065233080643515303542090682667182929551713851724530162373142010416169273132809697076258766514144275353689578003767116981343908489079565813362986979014764183428723209923325682899847213150599415035148361687051547478777870597089969098314682743434487043349399652711625776263430487737374775818033642227532736355013565220191798175684247756720285997840472225702330439291081786342808639121212211248045015813374743581716451128910983060145537662952136925591383020753762210842344199282777383603460501887307928854866222960218336946696980326766727938497709278432524111917200370919316419832791123370205026877618111800314349017938612143907654624071260512180246795753709311233941471804695657753132294111882937070129385876965060827799396335013709183097969155949000408171410222116526273647279825521606995261720650414558024746482462943450938927367971967267170518736988841339263527882681690535753747022593272816456856467657346408295749692170659533651761703907694971057580680093430432634058018845971637241579131442561267214344839880485964351797417160430018165022056796208145420113786892199447741971661285064023450660400300080293750051215921550361092785227807642247260738948499849455717065246574439825635910686034857376008692731469047065535951527177217674608992217674016673918580397264436505746447314260502177747629010832408422920075714440371738669557290227677507983927220031998178659856667311931957005478086914734424042585112553875242099386525682102731261384124131317903187135176708228746648388168432654375025922518957218901698386371580820777482641831235904298454329774927661860724480013764279029645715438359104846534194006639481014888202920236691864227287831655375492130582247452737589562380916098408373565036010496818238643989519314802337800716225676060718019603019144231597011742074829978286992847092363113465357758533343767058424150991349306789451108309286527354025788269892177478040859615212153115322507110935846579595210303476188742446560478866541771968992892349356082580451025298534208950014313016953765439940793830626685521736789495012185307072932594130763559339561481309873210105471693221391386861802335676537158383486909043758388275753313815896963043104378606986819179839398841026681883953334199858028238356020628652178630852802027212702136943904782826478552866259125146813741713241924230625623430579366698859674302936642785161862440437764093945845797823255302235028099358935766081695692941940633266793598545213464763673300174389348479686665039600928209719337471872334526927931118239638873759627234514835746047915375623222788216063123329318403514713028738232062012319452595112500494450760290355547664913249350138769238057892544555849881223263566807226128287319606768868538189545001825891206358280671196583024330451130664248915624923836780954656238144641547812053330049543179045881246663665418890139486278146221741070549383996481199459676534820627078392142549923117379559306497520078191611418739848845805557743918505456420873748768576804403105327728802758962927459153851581450702266542547675688457109697067922577593159869675472328851709086014509612702186949089509834148700447402759409855033162026780229104091519143993094974477091424812678014714619448054806347281083179570010412863488305971116572409791454775482564973094566938861017274225405883829271821252035526121848172438310162584078147400132964679840900907054052134782571628036526952130537374545095935918792169995493355997172111085492000594948926767061015189875408578676258078154935150359163476348981674620378633489308705828650338662012795239723530610202457254376296926570169948479148276318659034595069086420330516037349654339271485432721150894060189497768731805681618379411818441391956300909842601637997944254665642260967857124470650653148261750919858682804683904291568152977189266324200820081772663893475189732980917733822186796815063828687340303355607647814134562556703824659282186970012039323313923321982679469747388129760697864007980347338976388798831984431743582666144019778048630862932432917577486631051020517972664851308567132127466339216680967784895585645528314967318292000910126637627582139576861987671694145515911049126411579870167217713496718752217199569377010239298405345214208235922194768182511426395099114876294695087653519823151390679338298775533475251307939264558502026974547919534892648534379413537498145652931539693570940328916682243979209820702036259821985091066835195712783081876928361137746074955324642418517373038810616708196762150974241676598236764433752691522170283366615529531979874598178274828689596304377557413946137407000560916481234861945710812673623747825790880769680349529107668982208265197609422192890943557926661208373128847925270689439540396650612036884107371012742374429173636442236146140714548244615943406502724026534794457596885416197995413187989285917670099054877804493176698685538917589698436909070239634083297175988104407835319088366555810632608559075169152668126972984862907656224979490045406753715490964889752242509737478610625681990626425391485560853842361815188150792755664652993838665309051390301840462879916771690966573462456612203662571021061361370493312550812906244241603155653783096821172420165359639792623820121084759664650072943462914210740870126711596192114312313165074997575028528151324685321427770588281354126504401038958751464211630928290354535082528660240010696459073538666271528234812964978436689564763727012687794017091357301320827796062301920489689750274949806267036199556769100884246286863592067805024826460663417846956571282677252403559171748032950447876685935123676412521523002741602232869474623783821791836925929571703092496783875707268629395027953740748689226698209661824211537193817285938630433962193420819007373611973460032341984591874119210620165265922963749326560534495629384621220732787027451200368831528538205346293790552892452231825141996984375289193647563751317245561550607614664795733582580755167889048600984617011930636619089187336506153149365292118365465789258178067385560805189276841195907484900965308301983118085482272651733911198914202971673081115957880929293836460115227371890468855454377695205332325471281842605160712273222133763250614320077998560864810081517482808007255039195160588133982558029592092438234562004423440227635079282933877787484994934056518097020582097540439399566282912711996492231431731312232609642692360506832979819949501974939308932740543052506559930712054863652217484588067662241867615410219111513433580399157707312521104262674990909766543106257283256833317181997116986868253773090342708501302689466909455563092474134823150659552460816483469693808778219370875267907331551212600513707566028814294018238454530203689281533402148023009116579626037216862119378378302396888948625761843387678596139789284885359147332113671155086225779395790351970417776480065614266958936460289086087955287797071342037937233599172441326897263287305345147769819454439025876639661358141361974366561254898058209876848419339272888799652883697351409747296814417284321262255198919833742928559407994483762611825024517663748151291144405853298785666517090689281017894379532520563890027006208857413843127578390649418279537607841981665590993082124179889720958163248693685171403206603427088952296876975402256916884137679361020020317398198814104393133485820336273753488400865493145413566965252021371365862112148225132988763616308349008069509312954535586442109800245948785531107934710368074784867221202640798146441809140484613327248323994594778134868593643900437895615223598202870450291564579077706711916261617043141363761846434379315725819037953591114973153132602417661218682284544606537030298492119329096300934103984082213114554798700057168011672253815483018005425677105853890384678646392899859187492812716753273481069102920449687336077655851240729830657498724786487698859882260884449932541561801518171844230369414631554380466401020815723185497588163060580409731575435511468175438482045187149536338673653780856208019395501709855532591808118153009221373975881057382634014839656804776116364204571837146661844944980045385177789416686657358815478730483010781809197770354605590887842072089513134733826814752157477953924779000891206798049481359828180258068398762749845716986876068944612030058595471891402796423758551305004806979541671499313482847791824885878946490497752572337243240799790678171504642093277708289066684756207739446873418865391894558845117625679189568069209974300346541696086421142877830928626828653946853349142162573064200040485236651374672056952647859564072992647821148076178957854382666794582552338447478262717702879048083330863917519117163919834241594160991293437562998784947412553261712592678992791440806704266794002967008352837187639464254122840384550583818138885361901807720608352745581358273287439068595192446744667505180562237402224314517546040791753712322157621516356041364345759578218728750557631045027982227324361724557240003588196316400880528672651222759980403640688958423517055952835740025503519169846675541953771340714519710375649397050642265885532271189187948652523501227384332074486039729182722547997959600106457254626009225889173115706346453714659151731623688581346747618514578009239016911336747643015900559966354808239938520081906704226599594362625704067205907476639732969834960057292866974855963857760592339267777288685271897735207354454898202906610877617858228456490744476506500675965279975408462124700381855481489831758173022498285503522811068364894430566493526261501247998553625830931733223464901567289356729057000217304379318816514775552823902053398832481569588127121006365574309667617158200528706790582406581996196066783782823429038621715110969546920383157065610304506720926714009809007295844321280067029422875124180843144637320683314236706778397269255850163907096766531309564756512720538876588774964194044414293857713572945882509188386427803017583034403441666855991118160861175347356512995217623570430537585044937364751032082267759097594780535845944256559613377512416610501712410251728161938560457266060608711768324239873151685737194614904019151822095335693445542307935848680216229336620810902253823047111261134899531074491176105021538706668342241741938562735855783952534622703007646339594742652141261920326868337131425263806425643602127481314282603738650035386944438266211586660162798174796833243636713651890339522681851377186641667812195156158046225220561679585302373637582420930318559601992039596035657540751088598165882275298638104995146429809229058130760747372144491564910252658341379410661497711116309081821577884542086760398657717735973753518476174143150573553454774506584466305141143300185451415105528925614946894509058337184576980617688700921916941249771869958619506951774296154657786623464328066395073104706525128459428150409357418516532043279089005148723121616310097719146407275433001401705078519865423614784168120689440205077961087333903451797536187768089496262499115636113292155923723766188431599857941051415551704324880126615201414931832401221513755236634741981970237025648160134407131274524398016799962004315691986980403687056286452502114783109074428475595426480197643188112090330224685335176984851738625429247557352505833502619200768437921068250571805459066317157717895536870666912202526636384911209739159938731951660739745100762478914681891010712174946024630794880926755192948814966032469714846090464452588148192737311276949587900769348126095874957833237595785619100403734621589292582013437565511896451536420773141529229384289870883460747744609278211502173206980264834004308333776827344954370926026725340155188783724095274419978645726427842804577629694898343204462916953797128255456947033136655495275650149730268799148482092333000222125587316665569625426238345080909974807782046005024280443506004952331630373673194669313047163082601728711450585090011245452677883909615150075703054991705953141672261404582321509457101828430256829526343303589290884872948146486605968529159167667813433307011501472987746070845431868401853687481342738231934480135455214954983410389120268014979889359217601901180094788828396602019627846211644315461660666840132021372201806651303821715381619328977602766056934028936703138192874672204051022487747032116789650920589802487924416244397277372197290109896826836291640829535139378756539110362588334772326576690522262409074002202396829452949347827802134500606741652125782319881934622767503356475665517360413324342559741173641502306252789990550784925676692329655407470365204934119224485064283946312984355019345440876821885434428843938820864225074926226111115308883157393052401065256250378855952680687095749841162467101148492410144563044095542116947943673149958480862176775097127044264648535688201406473717436048473501531866309155608926839857198592758188617538837200470410012962850760973126522839783751763206146837112346234621787034891398276275157954150776627643580321718626353480958816161049219356171547236226218621193880989797552208051513226485318745323667803399596814767421468699850836264218362738703022684652836479395605104278865637505796116422068281643910582891818961243816095890668737052227241335864898566362223458044867857991620349204637089758320804574795427755857125428548940682654597522101870254820762268304360735206827548361976701836776668773155193372488842515202240123118417468619670746272759547106000952645322733533893174992385075582195433992187049398248131302445825288010467456529441801517899012731833238099989499356945315741025719223180764768330393839284299754794138742650927643496616549580343636833737341689244337037788958511745236365956107949657293351425912331304773941375541814444972477275674897868884966156345292029193668891542782933157104249519384305908888661776905834791005780819574029657515339394067844956378495451203223257987454827672426698639895606757343235341856675524446564000002818545288476027369616514244390279756729505679959839168338720298800957273847575910924374927503513104998267740474667184889192384287494359130210205142692377203836434744403838014389553501738299999721412937880772276958212427902394148182542278310479045848433564846258755927210533342470079222276614913419899711209536158447674766666148939381701808336591675879829079879981106480548396825505852719970334422666307690713219731000625878491276916324066792600542551551400395554855131989976781526108628724157497529330349343954665641539362026260571316938095020829773817197049953431712806055141135897357087067547487375231428364364324091942040253197436603999292872343320212396650525083665666556548112215471245475036880658984407302701940908068507580406859993046080647956724777597297693942091243495079855641921493353134205495020010615547677123368629156748756513169798287670040437528124724216878778185488507064434587109632333549018689100563803636962885438168899844389643346744804439085467568027644251655865750534283595346717084194892348628109508773048807772345365475279239995105858680431094620101290317748187642977362404606389459591950508930675749835666903477442949274910373625682128757475568799354821719857938785444927155050452856850358841857853373373342334673243289245938452000679275879695048262379466051886443252271725299389048641928460492369234757415516428620563742606788245918504357043391303600630580455997301901089853468280418803457844009903438782165370902218204380839644688537335919551350446133418516338613793427887703573988612132794626010213524854283735048652574718784141910483585808143852325721250651595598798796635907906674067750642163518225695591801799169654675929644685611774601902029119359121137103950677653934735993211893366050622452330474308927767809387182778661507021599996996185406986513692017249169310964428374392255560048897024506879661073752276209828855615948204315222253651726875308080460941088931171974857263642915513746599682692474459269098528133640444167274342959758732366875988339160268229894219942120372722018817096425411371557300785433658091974202292217364939448148869682815082096099168141248150574976613483378357178036446605983672193732534302481758426738707510634330025652890083486304485467381246740065274853807629713189167450687740419019007452364463207954584851316508352469676692188482028653550827693697422450915480213587569492156119653527521007291264352306441989773472822343033310690931271160588853418277439755477821735332379373441343370331974487007520297355617384805299577062302509210395520507291240332510122959667839658255872830242248099375189916007931202974013378380255363624004542949071091076651824916378265838209091860638823588501607683812285584591357244727054145533210242139252670211938640082084588724861105987231840202295246741255888468074526729084754852850901744217547602807334468984519134481699179661929388587565750333404690536392438724950429679289143637581719065046261615857923858667076995622350978456546229732049529216580938966377337097212716364322464678796426349600754740154128629035010811062449456774020743596285612671091729968934036791399373682469647850223594886468799134655469036502013748867030236301956025660600522960148905787198208140327145572603942357082337753862244269182604416870411870650716290984522834511351791052577454687068645406968844997420041093246326569851155409115462759054556176775216736288884630068568605778347694933061014386370044455700487178259218554663537933408112817504689140612800479229324886786518422578458362559180603848461586900280670296694594947923315709613629077756294046295604607255739367931698782472989078953714030994634792639344774977120769439252188968223945788013695560827045107434830575535157837372308336624433685166338038940269408606263260777553006664559684574169725191109930274596570082279625920951954686855465101393498743882124903231449512994802416890258039504370463930848151426102693063635346702641164388181834339690258656583668166325829947972254654717884977772532023216474225167264917137727804545197092009481650115271532062055770451056095607977085852388211835375363922958580391046869372974003383539758544998150750181195655366781266225961088389670884343832687337391308811139042409749350051200124474046646902267610375962253774498083266690705317725748787392085631434900235678112196248735039293647025709526873496000842887545179593092328423421633335722169703194911481794445820239419745470598971864677171995062174717386301940429869386724117383784732337729458539444180315449772217835745818045070858944680860707630287144985997324958738410914961183182369457769514040479840657467936377000373261143477433408080308093985161681776801059025770178585488162609861850821745362526064496548776736652103897416127826427305507314970329922615379455375342726485931131034253973980504725326106998139424158142315630482465057168494076175758657102050726839915874074478651332290402810121126174966857531710381369934382749659299035749382873805663897702551296659956728274395431614132867194135256265629496248624259935545327832647255611665769512830100288019982893354630052429008154334643519325726937798827473266780359530757338269589672025747925641529664591885932013484176264353783976119188101574529964950775007857749959802407989682219701229358514507039452611981066853083122409494597971456846933061881179150113993220006469762895600154341745893589913598566323941497733983548909160478022614254724697160845105439164673525308835911383425704662972608522402021020920430686173618866532273811294312772847925626177176442492522981608963619669423092818812740512334566424868985207651238973840587020536086064090101359748427882028601285758780703838960158767123958350151980738201979476039960833539289148342233273873837045664403140697464909250151561867971610008542315032797463011089532338119225454076301959488090806489698170856159315210974205209407257717346597236919125041088087666759170076990377873379475423688623875805802112464945380462367827153330441429343530361296880746389392306022235975678033921116837590470657182631513093649628195314593095342102666602106174268672297440468173966981765685742543577319968780348722915338713158143612011401411192981886212874846572039684322648382565639644258168866511338563997138341728891855224915868848659421156306815450252429039530131982181733276793855348311484871892193567437937969679740322148457594393763585418596431461201688943296706799431284080602064954667669239239715898421698203054705201748734072214951303642703768984987017966993397842886767899719779752025405195699980027333981556245961267027969644949419863401786080186332577296966801291440991732507470984564320075224812017062594289315552972433008216470660861907869081366592038342897749088830583375020080872438812643744265958635731495037483107291911509613845750821184611979194289815826900346808623334660897953224060649059572717104907767035713003463922012500608705245337023581057972096623629027507519629329518060339044347092237958484204772525199513767151717971789023180334662210255013905154012264573663777578858888516050852648696537622128285327718195662582806098670021093354534510777691805021495332429299104385805275433860399392354435873890136357262208874401104350131422018453592381279812533445674402371020511601425874696152596859329624535645438760646460846739865870394254718550495113004250159130258234075354077048539050188922697458344484901972389930830927276745059276438970296903709116781080972900499871860572323298863839800842338324982536388130831139085985371471902311192811943391909264309393410536343458177359367918474480435879194482451722591440232706706379590035248531968302082901538351632755452836563172571028144628257799220563725793017451268622409827873912118325653944263667132568047867157636799365977609931556761324618499863601160432262120173478317944975778247404553558141280188095921200458433781025318447866659414376979446295018763798217375807904379092562666301639348913566673043874269401364605211617394226033686804134738729755158901134874258233555494676205237410460499688276542583888628461137491998290441561484970244418751764133774982335591272207235954949259498913544421383849061242697405221172620742410088431196993075809604366716289641928862022695909071124137740816698313989159294748677523554900531072257951749737897900516194811012969666854865553302657673272836339528940981564964427988942426018324269386695377075866499979267145309691994936937677876600692207798823814935416053478777666810552406613470663677842287266156228445441426935262977255998589381720936402497149784960588503494880193954781518706825412533613628482206654440089722612153640102288277820537622031048081610030083571391739701437381118777175214224495698145698113357665923630177700462251647343921473078456465906082312117302851570575248326787119628253432454407216663670172145877932509569230509187197998014763194372445522901723525387493058843745143383804951237346409941834530770599825907351265864339701691709549684876570552632783116134741591641602032889010861443410709916413000033172550708264831591326489424265237506935264797955425387407735113557291572177656569555072245303393227923363383693073145477785218589528935110104085572372094114060930902464277390738849734077320035844028663174579114956371618431210671576198088928125807440191016591327890902694023555116578556240594087693754510585645294319714169842777596657836126037610805898189027512985512629906447392417973584283408574129879138474177615298311515611994784719008181424219083404843023802534920646752466621330488907924599321286370187234113373054633069649761496846922895446082016325286360872398315531894872232538641150306421162497041174770671577477166006921714004763150583614668262369809043472998158965303561451048772997352207537663494130361464030809188953918136340002485420029196229419471083059087643781782701358784035043085067040390824217404903968371253139324991539026548933122238454447233926459277281799671916542302885685667216197925369286366291035658045209893804686231724318264632828414089302939811519262024279704302100622022056753685027084372378609303206543058820735173629696571388499338051160568436257039468041192843789464925625014606843966001372855005171070136167175661897399510816620190306477042960333953257202965611789876973151873532568035283627855121364039334576059300543414555709978346472848728800275643143192715808312448826680670333909529902083072304818352038656348515897297162575698153789213615362573195640892244240167198778854200706747178703313793536003760958471622495630168646937892980326496053415687309846878461227846053332042431806435411843222702106391043297968139770723835068066302383396407797519822571376458270483987836841521846161634130764500705236381596962219307601860179885234513105088812825929508516349904215845276761027921884138567890264917813210032237303110815077022248536603672125167379710032363066804357524276181048667603092053102298378730316467353251026892854915933233472396130968571245894422153137625507335752118072755595822400870094990043315897378906696531673526914770743775156129509639940812819312852837549824627809632095867238054525488251785425627524173089830393058743701914708830964456616561666705054167806617488074598849754438489178888311228426859115678820229310090902112663918682121360275692741621126386077063691178634741812995621735874736125518326675169597047990919605874292050612415668989031621267718011616376210915943215180075624425422135836288704042110988568261446842525467070752845770997877601917471992367638339411474343869397610395047770369076140810009948101860741820759286175369432786978182626003091584706579310160050594615294846583642828536209243366639054371494289100285128675973419030617281151342330978537255676277016545332033436323583362012190966545631085760159635643907305725001119398134381157457966468972542278656231920927698400549684635400508622402597765093629670837596501930244993129353413391963253918597764755013496587813574239782053898435631259010377814339205737387107372267106989732064373277697102570059172046221307163433379070744594634464309512076448275315946203084191118127312973223010582519520737183709675936814689796787058308024551220039374284202715790387799147472275730158438759806484151006320946846078012083170552722297446261171231901273638770299958552513647437350293367319728855870762324359409557172302682883320918848852243868067958398837173841491144065270057044634970426022060716674322903838359134108117509623635258883026018986416334456784485875777510546963086182380746043005645128513354737706315889956247494467598200904096145295118659994555900094917507157821336856040146665937241370648265646033589269651498706218024745968073095389191156969889064727257810175211683139814933503840425619675501008802264372640277335186848094026410723168460472834074923984987790832905116753826842979368685077653728396075972217601372698812611224702274051502447479467398143766789114968133936345763678015171145287052760800016035687700797380988594548231056284081910053407326730840425551712017193477682152016545068924722268907186914724099159915152269944735412384950538663008245153480240362625728759456416309093107054957103800312382228827969993079618262013033537206486273606321774409293251065040946038475762579005733614851685638967626439958372015678602006175560887811929599601135389933889963176437373655040726453204371317330901457726317215239034920560390522998740926895752187005283912233083401581891075394197278569454834841251059179915489624383299763844909735774117120145131341487240245038093882824246379610371512441166004745545541581105912811248287150509259956631162511801216790639348071942735983523870889739243972225259263523617263765540696106233275353814544263531492619772175879150721846973955317372152583845001216571743957238133360650989516798411503540493775028008365807468350253374366629628806969237770067520430961172823934274279052574330394055797932523446425346300626861188012359791146905844910526905359360180649612853226572228411837088874334071933623636551532827688053453350477683717911082830168042253013372046558582432257123170606410957482882040169974684385974242092059700641044577536439126893351134748703730825486299798338837605472841040650565902371285201712109126914630621869489352195103130020737476733959828285671610872564791530070909722189135076003170953388723449751681739685655781982289741078500906989145164828305284365830922500638995217096567304816906620127389156353354978294524158236943254046746988046763861972858392807859565123854170156329512857854339759341288501068830758515227185920488087789988397544617643301049684854366565607161922163325344204117837368522389354829473274300188379105578037153640015591292100887431138119630096186888707475958511069845996409498736702817449473618305338675549949275083946173107913212110718580453465804900361457897892308303160364623546422785836027205547849623348661995140107084487894763767426793258195801994454127596213853544030175337136947854417840614504660132642933755202647127915791055998987161327435676999071693583624370988573990357309784196302073884144949596718536561528783318181872688054011220536375106595250694181159591054853300834508468526789321851847942232536608563336529885545151925929604205798109855503869805251612048656726375904175497602085547563055867744974211381000661752431694037865765506092829074488960976033044183763798610235675725350846513415660952096560342116743921784646794844200753527901143792772995939751008829243494943555852543411720709174543234340590652742046041989991409074560326034641479736267006011223783956555313731416119446418805423496007998154140791715220477343777438146519939312328308550008258695145367617323586256138902573324587735461542711985695143861032715020013490217530309651945843705521860964461060496665148410329573517712059745713144260690509282880846553018429341303943864416530801462769057769132327936758660696290580858727419047490509285956867477841670783688243169937941480093658673139013860955018112961229978704595632880973962918800016521886418045586106817459447587170610776349755975358018624503005146999361059854912319299003585520429938916521052777222696086918152554038163368091742305863340607527739447894965308768090680738084421537600605205357614544002751605294945009148844186428084921533654961450012013005927054418896559692852739178114048226928102931030539326471065066472518205311410278206212982255022572438302710170254115705816872820696570866878755962807100876571628248617964520995985865381122231805966554085214271775891197567235027041899239241758794418093674063095329869680979772112929284669832757973551883981582489488059566132211323272958124468556342721939153792070866252763289661471085115217092300269152889422956301468912790711695532782553664808447034879477868238572154302651617797854175798988687774696414008469142456659072084898770077955743389411567988088391641428011131125979622619481056615672425620311298067831836088212459651947127253562483673186247113259686166493909626711515925928562161487339592269621081837013613517448461006843902236778433869607742340631089215880935602816437772910612627834427474031501866749883149214554953041915188978019052257039174205738890129280320304735047709831414102520759861041217375977274632762748664294236050965669252290275712021651570681599611460004403742578495649258544889963226543208320795495857706209784711015651312746377018810561820758276450143338685368851604104944288633388799331722222569222035754925267371753666249676716533785710125592212050396412200478615726504882556100593628942295759990680471387201648624307274852150925693973942900686845334918041549929900377364445521620808644896336907761127482668369605618689295448094708840835586838938315954331647271213166002317091507338671938266775450158055593412221271076042633417834606309650720432558304506755793429810322567908050263848979960612465582431635429569855587558649856301466723074303713366297811826309046369359250414902507021661187836775627722791294247762049081578254659904926729790483420585273774906136276812536514462361885000422623663125705242031185390508489067440203506430020794182596630173424408533569160440154287101887967197610602345373492301832175050670294647371877306699789082900575088251167184581117656666781679790595309329104358315313021299709669891864245814866111176748762660965393844843978330064577949457759613535233254090609858031006053031745361548740298866897586456771240737346215468043743271914621725981548125838011657301885746626206440577401343833824960521014651333573386983361838137990167838180874080464861097277336173087504798680909254643850218706615732779821566540914704391734539621258141811592705164019533039953643585296955695558929002144608413467494585963368011553983983013185592796141424558974822423334671258804519848102323773876454274834943366441145344168981886378182377161527153463155700649452534924971530622136190330116564105754997942376791751825149342213936650585431767407830194119451765995935468673895282151418392786375327710005470154677814776417746153327687533225819027871520622140907286778108603473171781132066512290378301011306320238567171429242171766265283546325476788311795650215006564812509042628775631216955151236721527582132085724312596164222810107048313988518724550069012328079017601876817908549909523860083693870845332926794266783382587193291731564938287925907911016923685004585902906200423548834332821461217182269706513855265132466357657321238615743727803336660740887224750418987244856701870767239177953646859324282481254104201753444162639078776829951626066149953583455657527003303241876117844155024070629239866953127635991634942004930803617424703804747919770905188030694757555010266422495748630779837887112286029184884277196429135381860286563105897652763394477450774907305241525074538026637359134672909883827377579576526670229808591298464458850728304705807511843000632548840193935909202696457687614333863517630030902042150569166374836445897468387823398215507165252020725319815198253112432158224076033245360131012413646584644025559463391998964514511715727627288301033575347156712425458698281012048263660259820402635811025953303845458350059077347686830300947801144414943294049439443354048991043871606862992494456885642729010331425272178348069537114659795133354146311723538292330908875298381198535549501301400272166060365421997812027511168473821295380189128895894663194927206706323791679013696862272380939071256562703706642078329320783544515121440116128481723221762483850033555872276727593443361283614457923426851542687262238083388728953353680104561595268035948305729407021566179183046145680447738781948350262296760809657626904148972512072958365833593279388080894455184684730925687690496340335405104510183858524132325135184187760457991169181278614789642812272096417060985022793438848348299027979743145783152739649225036455551472963178662294577564058770179640574207755810243301277845659653463120622527014655536976453883141408199995669093592367902673985838669980986755113037003013738938719651446968636871722320827709018206229804977579715528307154080589144766611806263215475508279150373844225155366865024109962759711588860495384557044682252531684514281341715536549363731510622600617513786033861735609031724604210219256436859388387371521702760855690493658465997690941692723796751569333794476381834815742165538272961933021589255655158834858789221189806372600196197587828896268368306575355596420544616313276607343101139512088559090972381075504893359390166031968995767944969974078823196742178903572763809579883224460157961401524314486027381848587796497619920579575586095054165904078486698948188801493270145210688048380971851430698453371059996003606471193953316191087171020578026294679850987483245875057285277183276090317833184005858160871325742536083878214825426431691414838564428148060401025194320469551774414952350505240483237962736684969401940890203593747486545588761651810504989242174210032276762632195387392526042752561814640404241781815443615496159040990648677552287646944473068173824409823861085244814516849141249137962194508637617826591063454402954416861219062570444637471373854135412905002591372581542761588412167441762558233123526693677355988837466983725124166017756119744260517680503780798762477926549647272251948428987141070615794194560482323286786848524853886711012905539823578714067377958362481016972676086366389956808273456280439721800731102475184186540167628046845116360253867506944015608583388300051131882969554748423780970849319112460091853450787577141959705850829688272698063281121103171191610188910449039068174857088417611833473911521564378921290225735444996931270393514709760783245434163060050773884452328383349505087530092645712796656423888935985816174140261010444643610116521646894237635865253522428003372326524610577035266972508061166711624347742051784944443405805096473466146699209409135475164199772392108615071984915446103337238999268577481881431033101207470270738799117474582210050269741411329253935974830691120888759905472923479160092048869027292916909200139875012463773683169234931067413268591782303354842962801575421955783839219369445176453290420133020782955772098057992953787780396322024645621524557984235895080241713193307193627483015068581960644408076395577417646535181713420435180812028558161366898423259662787478973196835187244496596238434827753273335475870155794368619071908097544239587598791548506888242087149292736337684876933871822704020307311064652372493557979780991670250199231943868979816020730796429382115065974261103313656394862104946215630256955115705464550640766752140839159194622591479044189388525496418672552677584484532165744477961025046545170567796117455834816164681667158661120823699166108971815190380125060493079127213422790171390669631089407437136485014414213997616482433100945117932639217247560269114729723484154606531752906564762688410133760395278321850303002267624252473740437608131363354710750553443980401552980136613765883737889151076251103485277093898540551617381487264617972597505233171712375125388152840353724632175805163420175900555910131093538756485932937776595087236473002735488333660377140416574432837305495724040944656120318173289258023551203228403064557128866394094535728380553447421401213818193197368906972341803967604466389985894599761934683325156976694966159664011936696562886645535929476653875117146828818221810714280351086410640638911952531502501496538635473079583306481474803694110951212503519659109727887498638480188709253145846016670147414089014781788277999038241778736910657945271871413314319662366633368206090208951391669414880630064049278050395773265541249610398651776492119554168279966428536221914256872231474920658903481108303678281023914514056848100910590892010616700556566806617604295164878209626981991017457734524275600819531155615967245399479952804667600313293408439351868814869030471458861629140013832372226899102840147538210444151001783870543802925359094289573750390418873555440508786833540946882350529801027814462398165314311303752058083405938294472478120389903904652445108276964698753041250065659221940983691795318412873814039575849299078566817282136518607737337060849899145890573534520362978395788580480277036538460409183323819859017210599192596755429675793597800457977874212164448363142031367888393178115074366671429497871813294903220132427060719289770027665453345229957335444465739920789248012829607328006136466736778553558336031466075869524927238732837082410257477765687522457637768888528477211286960772326422265542443424476304973915218960835776587712269838926683094722479675216088384792056660724758690593112338231321624975095757503532622357395233702239970701702867464330696845894797658290981069806270521418863599994186152777758103257091555409145948397710547023197617042384687451969654779704585554122902142796707278825878525347038886974591749733510279759779609259540983770779636228957523756589959810163159923867078286151533177784544297753326635274628110798187779728098224973813680897699162235194011231362032121688420576559054532359762761514730750861915738644975120874192267061959900596173025903216073845522765172204106424340024070329740303120884752004920571912659571604803015871992959182799755401984118218110606363288385397452168636548794033998042397800435438631741834690166049337023320283836864865372846082616693022678522408893455243245216734009983696570048487348248187279901124090232785230091023207164872925892748897800808633077651831529647439852291834446120859810419407496465232420989391274535262630602645509300089496481750227335093643557448473654966444365525511778047061942295412290077877094925445073757389843238575419132882762358218412602999816594353994815840145983704661592916106879321497527798472939208040468944311697319591901595445266588073520345648843753006094877385291372403712283780535617349918410082969880227263994588276777338362712450528567014994097752724236641146950456037372667496828275519851016418691568449424602734636400424168204470621548758281096529183245045431875093727139910791599043284502768050320604621936496404686326587600376981655366154442963492170704897040819893301469010166183117853926030232090687857923920733819274450231670785927821144492966099472141996563128142674382269092358451550924106462109891533681975003772704954587343490931186811455981486913456284934311497732690011604253068665477001976933758572598976174585481201921056739326758268078141907615316624192633473422110603340516077890864975883706423883517218159692582265886763092159953738887130749325546295838082561976216898390149512708451481114431380091298129650093005703826439133429039910194411836487225822790720220311477411671445551249689893940948246130091596540047850557622357802930542591718069170875321859614705335630617511394032983838532378898181320332272181960769523948478908852570206378256060117373719843992629820374953124556465180295745666634891432800560801873340762769686169108785228529576018121884465832333574980696719233938695721953072876860351958000740310130288602039172577390684269910169470907705381234110322303499844086008973591355511915752235385995907394744188835129475514362621666573208310910268572972531324130202924033394525225600545592342349047709442081616051867971442019914728854232124184686223883033297521147402692994928512570126119638478982973847481031934010362742830687926914362171119357510778775423391444718196008131788230789665763896124065685200091068434548030715924335939273414108407525147444512377267236414481450252277744830768664323828457994408879183397401550836830890635795002114346796374951659227850104710320860508729505087055600878731745143752436630557880189007364940569932635875164887166129386357242938001304024340595786262615733984304485395931721892280579747072461913946130050243781485229770217355644575255020528446637325635726873192304853269686771726452095399045667153752173025740968446783262586050112904304500938096413235292612041223731498647883991965236948924043569148275669436938819100135131242072525113283174413159594325666836767565604592820707466629119231954337927403416051075106461982803846064583713311910290705400864115617392302158628524117995438631004526319919710269286565840094641122235966314460409803901255692590681599432290359172979900367551084554138511345166983954022496160304249053390983765116037617293305163405740859837659149534675053881659198275696725379414890379256109504530406461030716084271836613245034383357153722056928634297986119090209555478024770513962365788194454634222083504696856754081345473959984190140741237620103889051800831868803897497494483907538024040306467692250304674876058550939026762057813543001354849643984432101043830107802099434190767937687672364353836020125602717776799083891765098309072789005251956688329227067356881392799137714239749856823606957218528570223703725416291847681107995014658614208428804509306078588995221638797972945129857943891036522172797101503137042145360795638922694740826514328424018351522759794824309357850570867435206912681281431694390223557991336075718905909869745609428669045790167666713345800261406045402092831651389253325481605340082211920792174292361856168007443491502660022920483825437872954812769460540047530227483701304531847279042237352036757437689342933060346088508823883663276824303420637965709355349801397249589565027315987594886323944214894909107097038606867079476065157845888323227326094350723357432808339347322260700194795283947873864630814869544520724822361186768412208928395688730830268271305387866963489937761853364459739053649523589334177857620454057993038436896921804498302904864355643109354454382381332000573600071393731805722367980944018685231026793728526048274173821813099039173821765126609377519071812714798569812801745469422652730152097911217869717071207694043843333985927821707595520643722649048276642288803375092095362548415211277199814808458813373921764986647569613097633212352499084731237039487364506564259614286020696357532050235454229995660318252503109441146585011559902971836000288316853118594472959935798859978952305578804509624201130950859319249212090417830136871333778612597237060325671544742335821822590968700702645708081384875515364985935333176337531857112252193061757964828892495611269803572518911195290401113230856294793890794165444749377886062798896644982550947914356693822081906970868717512648225059490493615661862791614099668648577158661699291918957241234140827972953167395483559804036909802784757086695266519799244922574251204818893467843560125359487815700448215832158873327724243760810884809174984671691482669817407800904274091660526737037798615549779644147344472598212612883442540814262897669456539710188356108155888514014854399963289391734613415181625903881164879098993678195824220150857220465211587817300053897434069630819778920514119182986495275309744733163472868721446676907634699220036364219797221544911655525187116146930731284521549692437082715416838449193438340419612321930144878331849001040831268118909811726560546966591433918134551711165811900666781800819547171933609993736469596100617268519540450716802035835401501281301213539924717319411810688886152742089196892719711708517365332779684849860023157372698733230691179873315321126571751209456707639041006508251573357429258470650039186558365402119282928660124439397627618797766594879196939178037164412010750039141697170637640126494329807161363325308655813906278812494440596126963609311148130859261197846958400407732574565507879246954401012285504272922608085295489648431398972293045306622916216784687854961026776438408548706406481686383008128885023634838887133658790876061374652441689110093895385133043452094340634844890191056494026936934150705370515566945438329161043931077063801537507719689409856558648473447432777983532365847571904082613534294585016627044225856367914709869879039871240507088497188089841733921593470372480521093790382144470937820930482735123341338978119496356364565684971393323500581801525018356484607680872406437346871594168563061837316577159867368543901333338165545183865654402591901796034474998661969270743897746815034694127116525534585519383954981162441618196078957122520563786577677270906713228142902704713752803439552287738079137677563713297767001300809867796292095914828408442455481777436382703183762363168123027008022121024086267293548630062259485544677757022453107253408923069577613606169556113471415720044486875262357076195921424348421336278611725193688839225169500272276146347133182870269463384986931502993353374730708529998810295592318870663576283652432452861678163256712708791688836105246605085453388116425832014654767119762176516105206213765914310032383055165339402017288932377217633750665316842268744864045301492149513687635477506929696735640967350604061800918237980608995855514557974273314923530185502757182352549293657823971420648514786066538631683658806845633647382773942452392802886516549736530516212618685896083671519027326867798844213945027720788507276419627029534784526798588194849311994571067864097436367438013959219787345206168462089143633303491475881776276433227694901985943900302387228260665126110845584001125376067520486955750522911099657305636723145876776524167917156349750013679040201565137223514420967602233323410906239262681286907977547294757967033101341288901128826227478156444690677676752745764661908872803474042250826148051901459834510229619193258035956223717982715223885932979097427123943076603203726971470596047038911207151497182174741665831835620733956025607281092434435835575689822743601117290316056213015130121947739935661531825853982414772759848339411506528335482818765778463020152493851469028096868474372847965798352983923678458945504805494818540103812623070912539550183397797963162470067628893338221201854332657570747293603397818888157914048704247020620592682624610442253357878513183527522260645690624570137745483508629520249887024487257545826030273669702613304597069471024499662732486680624932013276527098568427269156169831729227921053920300359099353914129373065908547880112040654439475544726046645596265930456477629588338875162334375953799416370488152832678695069193153101816124828180509176153719548495148561004222026513155477047735763003566502326488442879534737524763249619115966083619924071617755465118193597965077737232635727005724273757058580538129206133239518927896974004602304925629268517267183421665157730261975644615357801451149412228943397205924484863471554093502758360963990012112022081860524626367055671316794063981222234877988272395236895074280677152172605231648299638375432552040982877215576493970358464237744466481821560320571091372946195013164019884209328879076092856486413152177653199405910752520581406968081115199648957643602857474549962067817528672297219435974222100540604079382708701499418830574881958488371527300967802363465804537844998513883435400616415240191098630174115138649899548681201079127319087639897736751532173195090745888634911898232985053665492668272726533962453748329850624067997453667303913465913317718367288454480654817588796644067982071165505671033706816771621715793378657114463380047903882138342851046744100522920697303204827046965397521266306536964259518220376203354547223393072417945469278524157658578754359368831399673876014422039849043346180973387814467186562030448611152344315153200680507326406069321435271596471558127120164564431086749165119768774957585968297495441083859847783173169001786033745678969833730148365120759400771370476550012316789722174400515945769391244938384118899356117296908387828410575041671808880555409519172213905865335393707977667210497460857393890601672606994668607776804252986595669200820501788226553471355813610431440653607766786666635087139941368876227454494399828481111325211241474688135354136390365488840636463785924737333654995616655798042912043589756552408424160395579219682217324197822131188059805933642277377357989215984116236335902659201613773499026027551290860709961536405054566686815215450330304591220327762877629973923148262133389821053124592804413848530600566558646106219423829357410725997447966100013253453125262055247791797971003541713714636377679261922329943330580810249420427150039864843165091358963870213925128459513699433145449582441906562785876275886522799111880167185085370121954767732400501271417241567829417242548532267519834354417277049838476903885672148106680220301172703281868592512723736255879445905271942567006063155316130069443195049133538741724112566505686183117141938637135925292595225201748844839229188826548351316251102318784794871519634363639444410330166277503785909119383154629210303339852883579586588540045038664731223583649941294293728743259494004121605806018790294867087800069731403735597286945190746047952687739233505607196930233753697105193547686312006343368442445017564930086016081262622094294307820314423538736029287851769755357791829616595352725874278392854885014468557613725739584123828394420967031367011808988626565649412648190493551593225382391431290135508766873674580566481738518569691035815252479396792210667352298600253185247025406162238609064874023609297819577494083539779866687821336913317289664859159209841032010444333439203741327932181118909420159556961053245470366910884687165020537030016809780411434480163263081310225108161965502513903114166835767294059203371467125037307458910462269588358955446479526785100676710934144614574264267658274648108622227171132602232490888955074383279971275961668316848032518284926740593214237746366169025424253408456014667072229913551837916425057688777250362515267237092176344516419205835185776305185682767481661227989589935224091109286902135547368828081307834180956431733903256047239096892704804349600320603298376242773752556836199868242767544208615666833789970544439294328560227803588051465382692167288880260268731238300886676237362085929160789799946536885439763581311032750528804833018424263358944062299592808599635145639043429259917112226138179019397166734181377316090211627570157481345641931933667926124382735118174229091030483747832848207885987811287734526657160054237466576197073521940507515739280611529579998308076766491365993876579832432741935826561565355705530074307464281863917705728320154169823359918281170418982123591568505003613010481835019188535524440070818474920175048991375546518260457986199090642699494931786608361707533213824487601641478510097302266422715223403939743255644251351722580308261137230572960930746457410721606955336170106554073625053228535421657338665981679195183588572797024345367241935255091568099043099084214520567410091015713205187313106697150337525292214911001998957873057179456507425134169572214039626933319615108317648156880134905255565518642030392239666175613530600070837726152284113741225707213165917699737946220960931382915069630035137149802193834432889051680895773355677029848424715534582686277353429587244157984512215602622825432844629416372646595909023878478397482585847693014517172358747874208248300236128914242941857804531258539867019229497223389898700550866862216007394645886924068318314190318126616366854090414647218227097195000372420472163540432551061974256549636298539211489448337058941258198063659916942130607692669634573722296524072408365191782897116734033431516304583280222260598659923221896756526089424519802182456070525462929994791971291518515664913697283454825461234871210587926123396380075136363060969457304475672273227059024746065538767521323337041527175223142551168541347319154013291991333275112247688959983899961924305749570698404848153143198907316094604669648484056841229035284876229992376516518893866304525339555929651603515526168056989195097184522970856852020601314521473881786641315873811242059587729713800403839483314909166865237744793031532016564520134681186473926040649596418336410445574078019443403087960352501878220881038889084724600376634206061649790001935937644449545839880280320824452034672228767314608509025513092746854098477738404889676682818428527259692830525689345596142966689225292480263314277651500407737138188588458318574097275414186885740300508582618613419765813764369049048209203402634744550902850362033765765385612681792065967836409934195501158576249708591276457138941587630501839086618130910719923945388375363369023589322870265946374683610903171977991485985102363806238453162252090093710364287766779988101042093684917470260867776113682918019992175244339269974870112030630228789889771961787572505032062883084585913790024086261567877972864180282805673729750764714862646879274086823391903976055831393039624984872792393195080428641696039356022476508884874527951137211415013425185213690809568555804922382428458749168246336200099001887258330045293339303530058783918461316488438501228534349738692233264927982944662538175114685583920457489694835563581007519129084493871649499533004271091135556427532310895020633746667026732093007998047898004387765947589185854004256854607467679796530780077879823657155493537142765062153089860339687032509664250092407486325148192156106014741315128943449600147502881815813647470556758535777802522547748019675839950872695692338412374831359872402228915831398086981228705868032602141963597734421415489791208873373310102521238933314938238507423066235471803321259557647479650036717342178283226682536614578396525731645974373862637015745721112654485288854715043962438763160226536299275291773003627320345883413398213069662481920171513106181912060712643568070558235352774799120552203871049328955871623178783777203455781716530720023425483671194301754929996932679575917830378351092139543107408706253378964935412735722997719035614607258053138092855511986523493594672682673341176661874277070924183557728534880579596768526524112896947340443265622950439426717629340095240668627451847371331934312725645551740306134414274543407733889069431303772486223566480853290079024791628927014265517042042529206375433752505546603586269794017317615277555360306761239388915879358958428089108521385125884020731562390040015045011268146195821282305928388549644063026423740333193428888197733629042420715624480055900698359016144751936836500418372344822923516336509996790061271262228027742260011465379557278011730568313991229727695964330574960174096003320490442725444142978636795219677360204553751491420065740380337990553667693008577553687406598390111818615680708451086272246424015958968199104194659335463045092002523241190058348450102957390563553734234301378032962344360335858435305678637228711616226931175276160701919997000188751809508086302565579993324655179737640380122623838134564347717495659722237096659979071930729114886106691111271408359520482710120126966090441713521343738546382106684154746813693343236498781916617512161907582347718779413713993746530274126101986121546733487862459198249439483357187782467128051688883302131605054496335047040845039843387803123953949696162938328283163152939518861371363007112305565514633260905110368461356312405798003272013304779635865870056037829958155817976309934339714157615386640953826065838801525025383915830998974139075664175327113976248505012821578767936516890838980399309690797256226896933421562615349498189878798189534983976458955850782267421564660747395424502331477981174567018113745235719933205891907435986203434555233998403369018451447402596845439354916363523472543588337698467590142801580404591757108263674432220749422432142048383276603678669436066563868308273069409164299746582610794222046945710606913984146073875828566307491124068085423926849979971912297395426941094183052132712934627092524412945762484094230324547066302484441633985939845188112475786234657746032969621457742945198461733949189408190869371594426218533852139083389942444065377117506389857115001553678843111392879084412659135465405481326508280720591451491829170774222089635070409689649398111395850949923060048407211104071505891065265026730100376233626211259350850960130192802936494909516874236513155805084431975131076010575925044011978702321070812620760527413544462164321824701375081303300348663145461220956113023504502487346488660080112735216499972957939019376197821992503449168678140452964247820702680130366572426477668327854272472597675623226491798594790193786157147042260552567737799603000780719071491398270623024684346673509770093709869131538445211333394447838233208876546383145823074486346092026463992728473294572368748660522601468370862661185326655626035281356175975736427778656548436480206798637055037803693901967106274001109663570246610419128693232774871641223241084410819257320251023257506528177565284690359777039025623094304953555828393378564912464665657046310417074668532314516762437110587375050199192577589615077799620967047292896182839165403509903775013955610156134607983896061582770277475293417917819164875152529132577816939078433559656398135085127764996715837025621713790417635126561178231064246818836140415616421244313406078315528723481003067866925528057531495453712571636516635723583362547813951972378285170745658679851732380189337626088034788036154204992507782746210337913257769663150490407045604145444376334871354405384311290841008474924624985164152240285941422545455973809219661000546458004489054301927676218448609251605140258793685318306951105626189372860086337616427995404813620053951629789477138360152546036387754719669829432135326850060555012973365291582278251136517433710084440067910590422816374697911178099917695080414477638184397496123449074881957732681318531352429254851989427729090945064614224419631791631399410863005543105422725954283200068686144045123002100285859277824513366615351409132099814691899565509114317176958086415477087049769472823354867868216017759511272893358241008780503289870084469207196660396064180291159601670789452268186063120251357244877386720581760127467498017677602540101522930785979173147702396202149862233257824685416930692680815403448531093891468749036395027385059344493640154118921513819617168269016498255385278913099120064438060233433530615642837445082026796505027792776116800931577266084601515905331237055049795749186890010448986113414071076506653048760812478577545551683963103130383508957189657937222838963335751904544822534849678132011497711960765326626307145506176190880627201917977546452662181144656779791477558357760698274161623946068941989919356193006446642683293101775283894501998611467998265078068698532497159287458388144611586980825180729389221927504252314124614920057150782354488839037403431088245171846955271786826453302148786562163021504318209441714579665238002886700243741442829299416051160930359179334741842454337499162243726195088576994922808166523736775430640553005932781644390474324093703977807374771954343435201538095694568636944683312619416402457497174552727901882517360581977765471438434262211284885266398532321479099945372198659901362739620546944652987622293911034633669044935357418746841072500091078798066200738665753026777523613606006874808880485273490671456888762691042132222823076005518795297999571687200213745920448232862889230821960912861065765974368843603326670373402882142072310656017188162350445714218134858383515197501325317872767185995326051798633803984199104737452859310369856153163893319005432481933975457388116869585039486760409551765744238503594198560548567346901301442228167932097479283577836538213281415859804644630049900510534057397854288424350637148675395457145810779762432446842051910451261740505836163775996108430169173087904045708722478680418409194936531815607533950937039784184833563958215576989820485163187394582308323571520429265850953761345442369340239795226075788724919186864283458422826064357480052984304680514822927331611537272384040764591951130308259954669791579588354979698258212179085140078388064259489913628233208570797827041140225212873751773776449449303137057998564236387987389348466121263577980121776025004391510172282252922916284745212685519940993862394200784387955960738283401294841720563044697027684868375457467949342145639330408264575640606655886356688362787994453667200312994813774456315184188050867817363059985184092519714825252009734869081674316569804064755376225476825048232770416971362086206447263045261325428507623885172440554267764935115384158844846152390218626232551310477719162342398713620158512300195264681600528301793394373080070323709863576613948586757806689202183147528922009389414638605606263280950640599798661474187424519412148991364871832926906516238412509468552687267264468552908329262878025469956589405271549425084971303854247749274592537112326781053015880178841609362587679115843087255161764225151111255323609054956958296959021649741856278191990972148331517485636592406815076514368118255775805995146652788610240988259257500938196847675031809635489391564621505230836533747151649275032254736943278620493608870378019163605207093848300843361406069216415828181702926506619725873078332540262098700267032545546114145179803405049565713403880943227753458528163590869907209852178713247637877353988735445001587357271197172113786546145976952339402460064201023223754149088742815218191921582679183522538389204236468219444742360619650980735528043088269878411663724216718113433835599681943539544362709685964550023676250011522607961125966371863109771146164293869115311587641436890604251380494783611596978629344816713642061055645090735403478976653020692514672069976891652165070696003036445557137568395332377375438702770910335014705072014718317963108218625636982659672608016253247166438174814670824150517335085601880396986433605702485115631934580269045404364613062534537515629494160729557144654667495787161987051949401084903464541962165485830276071971504839060637442489572670092877360539685252969423939102609934156053993569917504544907055232754596237742967646390055482444351158499907814522378823332883927681054975547441828711922101185454893994712019788782238492932139545181092076301847732017415523523656572581171372599872944953604476254597883241700018532140496975331458604133024035301776525540309857760831146855229781341179011364924282822972807669723107850002917414770572429710164811583337193802520789446563188337858634897832464059750821588007777764259235170215361813087392359579304539698199404546667737627604294534825976251738443206955006701681070932633171363876412405519184593412450139447859987896307359984752706879085167461749312956271650557538182004115044207513891746208067903488990747462825646876858301622067583869466399103331979950758121624334272712266390168185769810288842484733295968394849447976538486475358167264955769281757817997538957606333742051971846469870077166089180673660381426996872108233527772671073135628090383961269554343215916058057527934758813602719804133649519322454635359792826288113028272726659245223547475945501382284592382159642277643886852842963217548221980544723300953255799295607916660336291939269498863588660447681373921666238045747347405155384021800658957982822288581294075495129041226137702593965702053091501136538697452579082068845899066641069893837828901748136015470159201595212214044868057661471293242287742949945113434089543886955804660977658630028272883059456581635581264207179270381632041326735390021054683198357282226512741795404845269437843211337984281804740755906602008906678225657938611473567504670838016309330780487179950419806279208972984672168028950238149101306728307319554263582019141606550034029010403368710609675498130090774225855848574333329120808024510738622959950700066307836894857295800178957366856249885032812644604617440736736490469569760882644013784513882103422751176952411273705009889498121103180279686050559845485785413907366379753619791002283563081493264171339552566169516310657054294928916479345879679100509254020440996551083552184052109852976931908566345438896244081296683394546407343404634859515280830506848429316219302232528835382050088330325763845745945088894400005015096602795295804024556702950106289929742127901623632507824473915043956464269512712434104858631686897791006741853049531588005872130257642090246089009605921141240965484005725275511432365124167523909323544414278408888148049338110366873275327947355940806958915592893509391505063192955416713416885235263003016138598578946086114263370026854715316140722414886883317895323640088732025137729531569140457494398845961476208864845762760945022225501667112276649631520233670220742119781131066542425857730670456672428574132860319089343329816610770520063922261552716403290196849798883314530643999013729399437539886257276037700335031917251471083358278375964675517284385583010300029051987675971095870908193330129027249660547066640705399773985716748331408168785274920541109581679691798553444257927819982113798404751118394184634188208602932838392891894724049294262040860315399190149352664340605716886310590362684903308094121218842328568837644787179097550403552951353178012962676831458676849614398231464498415405739103078249687066243699805145867958609260027356481132134629251781596573278963956231106351610046162033665538100909042348979686721631032503849349368870750604743975124522637283931719586446910609830225377483567224972898105962102590982565860042962149490464955211565763388133284653123567832744755558543415535125598211975742445158745482720144793478089678512170111369392602879576509957204016466286935517032861908701020019196336403284969118901082088362266034581012835722759736639026937652184676384482600511172685841106504762507155811189329646517625170350185515897738209634626580815959705874665949560858278900126551316295031278843296410214435146584655593252420759612836697828048325322024473754844700601212502795257401545885046165153184763674882401411303146414285534727395645795393427108554438457964506734882570367217150062929197962582071509468273131376558456972419957387328629115792600655431709964755618055183905269693568652757456976657500074449930575077809028274455049669211450105206783713908796456930584723267953340877819334980950260155355863041863142872245282008679118762165669619805241756653095967822288056382315807236270272332566214405709326942557842543839750670265190625526376645511684328671080563328453992191415159027643442047400715765284429188411274540470896109390327949553670206528958103906507836936213681856692713595334291192256916991636092372291659479730622884299635513067580151860571884766076437352068022548092501686404344577169463808648077355281183660633324591649857252747562347020704962851221443679467138977570043559322136533811593385446696927766358884036520527977354748198749167920431939832919642885101424554032819306290442722004575699263626486075410076615796838971190659070585747532375871984009247989045615737291168898173840201554798655506001747333056408216815693638718046428488876578607139910994740451093080121368099884238431002622623645680296224205008576077129120771300736249735975977118180142927936194054985313167022470710326668993675229174706081556800566926125644988566748150998459633238693741941655075982554713736373339782260908636616389884022580781184635647041126758280732167543064432321918138670880059661667938463141556876918033777245306464089717227917507356652573008110151002726976260073909092157117432496685633921284723328664970914859826999713591964265591786138441334315893167752011367704873138845712863450171993108423209954931558583074044954995297065420653213748634316982134067005644683993715967613246114077126315175947692192640911647322267732369530412452598863709390713070723938374991395595720602886714238859968459497423356273102377549208039859794281433031740139637517599712113735256130878465722544728450884708644008403963571145556758231304649038104068666173495435793870757761613236235165021901149867210024545933402868165756658280658209710319499626231305965431366293788407545739230691505879717490924680290564547307938875660331618923256022432497720814597313401978843868458018141348846757676817981978022491308673502288241159630945911334432386220078341514329965216513205369250259523700260749170909806509150768765860898703015906244993721573724897528718135070620922057092240201266939857798039933136710256282980214916282975578760014776077255021880174037627737937602172934611663500403123908625462450113880180032234030680385987929670240657331058452315306888790316074685915483484437704189876377340035423192735342049249670554492244925210937965383844479062617102136633860263138625255072397304242323683926000567771857961747723956949070938937097995888215489638946527393878763628402000659041341746404928225679177278727066298211151154259039160873870038830508913340999508585336292084965446106318634952331807213267150401239220555251777581639104676038494523985270329357378923645945666776614858187634930204740634220179051825813427870184848425873252200703819754253014649053702292998978154728688043127837878875686200678487189556621267071532967931453381791528577995048297160233864210193792379042423852995254749065306998504046593403204890091656787150927282662128067475909312572689654981445041918788025539973734590022391312729535951521430237542682200337789837525451269960245300542428709990558506063012626684045750688564888748579182537581058904918739806226281999393776487187889712106741570462757507021651607360666580118820844661110035322975487686128739463028000377117170012911376493370853106826471408689637692284079773909524912859976984316632205351739265159335067673507842126873325307728867036145843079639957280039102233802423127572965619397536090300554161217934340686177530440258207796918086831909441201256668340061755054983232217877951365493077873040017562496314020044124078314633023211098023188740910695880720081731551304037380914523515940977521940087542116248073755758654725478359218646886287929706489639160824541146874314221051392113081264275028074072962252435640727778325406302327098418757836251173246060631555378740821706160552118627621891396213426280301937073640470227967855776034489728878074185391633088384675073482286601423251148438322590258884363932723315582038872552981568868192618735175679576435440659942888238029846675442136288511500257219486555722216686067155006805905522713028185132774302992432508775636140469675292048101721725718594431498226840925112727666248477759375709106114302664898745381199201955415414725363086830143068429273410272226399586018973693103385955531892750196333130951605798855976149122581666129840303126714609928597049922762808485180625636871572855217005594560019188388891232369651064717496859352146106837803160960250389065104770282678625792995771557549769011497148740359716018973520475405862082742075556129396182426231274139214865876865319232940599739763672615663668574843369155492972822916327546760202185127127271750521770929774706972257688046041999942767533911982901122899133054657396500885366740311756919913206996063691917884072494546183381022480875654604735675997877628508646882964159872000542755783038643270603749567543340027057357933583194477494042765304404887108330928746433749376144416881650489020880488980690401372134840166209091572935904559936525174393836963664936107857098718425836762044129050451748362125347189857732093863420778800994228052591972832230676032148515032504037404622130416380774879892107110933444266641924896665500099767568792830556062477957855588549311705186940598835322227158600799178264343136047272907297403750136802932420928626580641657952920435236901793914016068233296048693177076394511194986107895211079134317201762199492990041584492672956089679417369143443104298440282756153077827851435493425538599097307410377640577744036878198531577437624246660363795758163472882430119525129155755668571517630390440160297324999529528721709265041501042920232409483052412647667585360260704308215304132647582373896569843812841141157697192584626135011063352006061654642322736967945169027906043513852401622914476485226032519334699905854948951032747430700943426049090273672244729345998303839401817323987805347817055466782555617361938518147347618897407338920403851873566189589997823109588459630244556210270045585634433275159955867694919067372767740989151398292495186888935794650613722242000199903974591233874967855034385181077610247629797158389696960664254134033821889155556602281493850777117799842884431635013137999342127379814325013237427756610383855697626575812154973347850562410865910010573828999836816443030741485458728886171676356297722237683642884846601554855840568202728873098874193063411689901942038650638569056857518270485490351287906709994180689565656512517076302945105476233713246843714264604314717692480092872622827035451570173716394766125380796272640468101520897709314953344878759457974724314749769763469712065105890528222476602464415398904522747069743951189523775497558499419565921688809084765191715227800308473421677011420630350909519749368475233193082872736356021513841431395990172996128521528424766447485732469937009050983998322509166971347488066063149908227643734401169907190197032231506819482873717504233944072979593240802794935740017951453688527414412794869034379103249692834436675259476080834273698769353945739912424099295112338911301181613530840209768626949427504202439625844457881641786801780706197118360784104510011234535753764942680766344858421113191549436727800479301019350915141644815024425969197533287032376750497672616940374761995812135636516965840447052203697577750134185246584965666194140877939312190081540304794309847454919305721273199561750842418757073597457069163522263718672076533935479996382540613611587040295365037357805270171548123789330269729907459277932524126659892070287760840377105581767812383332389846093993020586168842225899139538338800635066891490136009569566262909631454395196401070035766414524553769542354503063009738417910699063137094426185625962297992712985099165618831035716616096386950871003308337452279508223204224476969013522237680695963484022902520908696274471887164966040702230666325624283010313376551041989377741990658603454310570809710559935126676369087321450141445556270838073864725575212834371013296605436028847764365178727785799838091931450359279489087951148676727234355689953134225745223083963622744160269768548919266158735941391389139538787103845915807920560672762390797278742114950540614190078774949627442146965101510131426965846050366092610067159666152033719218274732691406919070813933225172591973814491798289702999937863690725496730061980587604570070233357209405497963579387466904011786464145660789229968211886376587120586774593123400193587049625960548568584648785826605156157615755563773731198035454433767600214607060988246224819990462047127233192528392968463363530678644645111038782904067249555434775597909183177013536986247302534074779076886816992183337108661876410573747589241058725234758508821182250636832912153156555816708970383115662129410137826610013515500591348775491875857636596675594167557211473664698737509854018372717382764894174503467612063004289095532684634811680932845357404811820412378191986387327612558141507761168927216858227774760068298262910856023582951123240110174217728700369366171904942123083556939790532929359782552269487741871695769571669844136525824425169921530598721559737676121985970741122718223915131759922082660219569992405925475725524313958328577391972226498549374676139588948958074084464588267122813723030176408075667234140903125943579211642364241799630011417759688779319365240663880196295602110815936179875829276898192613906387490265207820268595446870539523150764170939621181347675734535298381349054566332394074819756939262880383828076231899379985870283249306746234902409006570801676431212241800831770310767375676103809382618027340501270155167303805402157058451311892130700372765765261127612587029209891774601903413431634841666400068380125985082437592525986962178629202526309920493872919738403316310494688428136548196646729182423351133224339618249531116091380780937524457779989203071571638326095266053907222489187919194608897614845105782144473416428703894530136318454782523520005265168702141662422578339422877081420354786726465667493580338960816622263501311804650612796478689655884355829177987321961471960286769187911855542165669820099157131534782852982423763740148152484218712599941379763893943388461746158403296819159486123238228386659850484635551237089726898268746227689273424541161270434709422736954622348636464650264703318305159104875951029747183891005086182523993265023542249016670785098189161837897618075818372699251864627673782833512767135622617770018890928117070987606152105781667839694287693988188079743419996530764406270899796301119593052669111903126438355888221632083337285870845972986627253341247512071123713496174842039019184635572662820383212138361466764510607570439910868347998990443238685612161472488388189985955690678501327911928219896784485021940252049630334489483253536139686307806038851942610271460515750089818161548488918217859165557462552073758212570943151106830299870271230002668070759834929087501188906689714762713436695324487574457563754191533338872116274227731795792152521166536509996507730108478388096582761619157573332763115672393976988763996911461235940212401498325624197469611992495867225708328465037003264032722782055751577350896942957676334551859307447268755818957700504439253657842497101003582662468755772654280766121238999412525046665034917725107962426960122027357245807515405104759691115026882195142476129315654858803111619181804650399072546122455158325237184458180034410350468861891468354344772900015656528132865489094485897144660207642856089005794998017950907298961859134134693913484214701471451496220039352714932379128327137203184184236783361793455266423626811520535407475188448645293625486124055103249319888007577452984059745470459131924679624297983527664355664174265834304155930717247310957006807040837523880347986971894479668548708785538804290925357600244108365290448410226359651541896668548753313875438890727406512873724455798371863639867118550529712099577394280081243143160928546352502176192110895993393639281521650676909464376407081474966510196982506063870345062151960575154267293018066036734543622083276436080192806074556330659369775196692649277236538826077051197989710653047229941872165596484137056732587761344001977782812349166506949300085231117217220601155877437698816832836267624317101504952690522448671687063154393351618887490225298040362176200859528130704456533919749223474259045757403349301709841754206899924960163400692363508594425400349471689595121632985387982337304669815328093273715244864022809556172938401534682978021530996579315780625595070543130426936046279642218040112070862389334962680373356756595428741363216194389934974688341090021142956204071413188335725556188714617793251280598920157203751758522358824806265666752861695026473441500601926876793997364698259576643234439517608469828255745316484494645118469168602592842392169616076454160868514132289733138907367123166583271024323975631356207727419846877333008099126271196863116563153713263056513472879884236575113239586150829957058926495263036694992550333161564622256448998621996049228238497672489487094820485727203062923564274314244920794958161817461366438807453116302681640038934185941426330944259457507355864731085481496334290335881063969387975780532096234985642735444029457641929727917239102146570733648234703311927404452103689877725456539639881015895988214170972725310468056489034341300502689595624858649242619616300649999828293501903598856564354368489403154464940602403947026076652673580285654528372134344908038939497898084067759891774487085581006444062092090160107446184193431277315398264188458833735402569775445629602539163491442619081683876080461927954074150863268870511210986113387967954762840683807247988302830298004412441501023095410502093167127936546008072234432186395957296935096258389906223663128852893580008061504672195339177278569733807337988201990952657124044579188748512096399442525613895752623125234819575462380221081533190293056529216343986592896473316983894786980791658812232472222884840985556091992170761372070204089462588099233730791881205936658311031790337166362622078808983571975771327726808268817495386034157640496225956874826034197142537374835721629088828466500429156357710679692200037909817722668849141950996861967189768928502150929187762177532911570707162892458439606972725788839475128514002843635715679985224650095866796533812416955254849040637319389809116809140494042144775012180269584724900304283583940265155609321307669585331548550261557983754261124835365847636375675860990293159551817480308677416418760986363767083374827119923741394687081237759509829808758676204164129082952786166881930834450900469269825762347257226798590058197310865070404947810526543632099066212282343927191377791448202570378713058111587302799525674060805674789123788504870900549373741059874600067140621653686500795016469437446740726825556794751989271018735741431366395567023252546039903096678274457632960188618490210501459175605097413254613118380231011979081399573504046576727468150894012928824521500194299084981923830049784930136803426368131835878902193956557308215991741130218374925286923455901335408795593479989448978763326842129300182213334248059703754991816601386954456031843098248699757974898344131341883494501707519866658512592626224507610809703909090384339956690759005387395304797973547696031222484028187145706443751371320952654880444477449185890767402139947710797095496987924291109258986098148366803976379901830655358478985771488468604557988368463728399675138500907434138058495866716911060600203772927838934591067732541431027249379474694267262090797637316469219787213316647897316934572765702037522694679785198372292284038638467788552829631585305083664141812392462675238405891924724536267695399449621295107314792450560290523925084145956331693330675241708477683879197172019808307552141999277756060460049060610727107317639574824885605176297813059459378971195802601692528068652390653794162604805772141345947709987975786308268575675172289720407787842226752708327312699294172407221521684162482085215940280785567017761170593921942714045295788972379133780986180488451196159566981909108652616760748709592175649771779481244510751016455115664908133007663270030154468206544973386852261412316983684827993200735919440553985087914116046794235124827852883883797483463161687619901193477361214776761186017243912484956909924164224276551507885148104983414815934316997550599807883378778777146785738595552198085110676605854948183862248631231631272069219986214207126015485913713413796994496278417083091909217543067297908766662935153538109749353115087984916666422443498540512343703169648154247412015892219971416409167933340163099624207911883612009857020001711336729281105894706892673325578556485176791875622822358236463645526991439350879364623465569157037100880032652118555982547989113354479942262486098508941907485117092046716863262350543890510930407395687291865173848788424799099743026047401433121256104625625305139621819220430897332741540539786092186388276657243410862346559917788311826481332203243632063187345306900448396485164604507703453600255388031972536645246355180401586641492722546223831528970695622642914147266376921467197365581518003501842452495374410315812985406834782604738233885374956769945783716174998191781696505116336702558667030728716919241771227569399368828402834951754147748642053898694406500644365463824293936895132441142578588210040997027050268102974546114047864778205243492161499026160699360132681547171430643216758647319237488264007134360688812159031613947731796068137844081485642327176617362925724977296410687016005828612876331269969310084229154397165425924088666146438788270665971624453515803802366718511933078206360550606787358827355404701850209211883889807386482401897235808909494217137865876640078337710532353595614808812357003567657771649725872891551968261970821900990225959223486351512317316577868900202124472862899231132029852811767343875462414550565754564838436219273193800684073599864491223363083886483961228487270040104283100390184952886936793788459562546755205864558657480296013710253672307210058448349559404995951552234031521978828733234535083142091895990800861592299414512567173223693669318037920663395669885692737543635273795484213755834704756716700363552095209022129891734105224285445771286206472563560624597413264983881833428155017844931442823465508610827931071610599007157513145315863751720623452421363850003996302728547110645198794654779703515343480428081114859356388743216029133087902104972185632826574046941869147747389968830776092382504589119114007774564264130804900712389193021903201518216860655411905349966509637800261951737647785110512669459027212784394218941588860080192648993581171521158384060061266700001736179395223706663065094285338587336597936458311402116093824599531618977655832345023714700292789536319650580480548612582143609752805245937371887001318182065826088967676767774336782653038276840064975618600906721866490799453250475608284453205176372571171917556194390179571722444932956284370978693224347984324676613610057804166289028406382306964654601688582514332706712501400366659175205953310875179130824353508211989044102466716478794601948463969961265248423555232372806674095506343550700270044019021674649881912161892471886704795094681892958561972959748137447393730805931274304258285787684055091145223039914243190850706338857612988856834223623982701073542087859065886177224018883746877195309910640402678893057338488239010736304288033666139084369557508095594525617647899189656056551371526825461433834885388302112546683241680697682262751377374490721797385756857094829509580141933866821647403058002633668792900231376533673878633152287768419483465489504697865623122401956800880516399110751312702528305698087958265796638981889940866424198968606278166730189176743307907747775194037886756407023333890496960408956717949656698896864049670293201064477686688135750561414526975806658009248618130390492492310028685839931389146734730933010046305132505433602222883042535297926463314882856126988145991608895038380353935554217518863899684899761927706750906050954184060741794223185242825770034023607552164985336647891500955746750338390325952607858955804747260037909295807654261671130845610974780281226966132023334403388847862196267549736676600368582708786370071109865424798890314805883025452128684352081575334323369264587464569329655889245519481217829077965452759995402917420003628275254012660666029941500063233066903138771566491612483143470937425821216119552795637231761652168089329850584102964661474234246437349881871983507717624944268546451231573110239295906449789820807784332387061496168483448583798299871029207768762746805250971776863032227818544321945250556797311086247682408695063151397209645071320260569348851285061698772284528715804980116198616748565198097683960221848402498321913194367035671089448185124448670963233100172611631781634886262793196074204474120804512910804465206226260345306171700622938318508914658373986661488586378549697239807447189194307536800840272957666841651979186941972362791378811155765503943962943296825288183969071607127614304452240175348409193415750884306408309876708494366211589750780549015289280647366448220042230652343104618274204062466905872234159774319394709037705806558811008392109250672892215771929846161604684409007487069922395799693834330153883151945974282473764676056980817217112903338907305261986783417388615748054259291408122019774493484925599590617878125422492962939215622339850524113919833929727665920093794551798985593314287114729722914295287960327436475627202080592916632408645472512181094313237458018116763465052472953772666896366255580820900637530171865604867074541485224458227019230754424335413286497047584702310887144719006294658081553012173389952495423182606263347697141100268011633364342758133249479101854353257395934035024584487119110570993633329589126919727763471520421718902584476758879175585498183101324291373266440667493986753634795127828023184781922906516870136932837089732130295231112342891286235025480180483587613458567841300096758554961111813530675682124111442025646300606715412115551817596723884636565593129708147108401570985509522486834512101523720826629174341891650480726706037976819939124597718225153612859933004924074983771644152086768164102752831102999598440250715140846130887892235956835093165385845601703355770987566315811515951542213294917058489024585377800277254399643682429057755910555721419308455614420096619810664921309470880511880572242638760649675116979151354353944846504553400166849025523944563023647379847035689115672067153476235474455737839959489252142665187647130031769713852707887022353859864385004051982474811757677345710357680397083022432312087453154084674149950623952357780678803406594146805646060401086300211208422530239073116695913478834309392508171669727353017778877361274484099463466570822569160448585639291810400911069580830895548636807909998722418368943460213464400111240817629389321219844008057169178024798896925824963561680876684050862363471416551390299455466594400269817971152245442836012892504914049336149254360851815332868887112772133692154791614271050437202337634601405840221103170596097989187123204825076262189125796434841377413252064404384306168775106613018166703097419103334599742180956355899624044744995520075475732687344335594393822682138222168839245453207621150814506835142477790070534647043600923498854598379193341047179544426133433060716243840445808995791241369922104076193446912461987813894963349407663714680324025200254516145952192959704543240753803494349725675531831313107885759501464435166805002240294173989156352624481571198395355546631108084260859816689122616225653609362292031405233854040865314140408015972450538577341060741000227437663698166046432461817219380148314915000032768418324041008618980386326528666806487244304664028952589512658497127043807870230760955990085636308932974857753427339881400230179847160459126132239187968869650299659023724520953591127992778452766707674763773285453985604146847206822390970118973876304866066811845383917873006589120177136159630036867437994105139604038487928747396228900568895668938569765284744476434970213797022497086645216450595525716041708220166497097243962496660748644083452962855679339940245332974808805912632963689250517216672842640046305600508789816594927358456622395801606772826441160513636392285567717219037705724955082468248566605476580745735381661100214703988834621715110747700553981891315708886336912266983573898329126076868327946921846707140888586124123803064516338810647610554504347137123087919160321559567551144366080123820825463833009049095347664113953164271207294859567476868509707614154728403011196045554645535991470010464161442309508251740596841955384841251351418667794296318267164653852676970814905826740938147848674660562980738592693943204484038618737368059011347834186994524794171262803980267212500898059907553135900385003724157256822015598642418004245173697433261885229622225419613748296873498818492949227671572101797995323287059913654383324929066949024607581129719738024824851805532020398886905572727069957256774930715865008863172814783229087924683706999399857702882774490113706235371037865406137645757846260172359267013797968243896126052536990540934173409524284162499156079191197958985099942828485391810412577397392610387477399141797305313067698376020603501559117613299422617939738246273976045380430052744574962565276175623454843041277054611565454256321424152536865681711221011362770458536191463053552285981938920563550060021445298850320989951688688630245958031857031947457228078478274228632334556000321648386551974089894968584190422578624407143363938597925123112425958149798168557101297428578285564204180076681649399072520216125856386795224464247761076935066025982334791897294669189546420972741441573293927186935628803969499629619746185653455004060183184398063879902857531480896673357541035614064205825072290049686950758807654454104551451830653547444949656165795101845132839326118223645856427378676311791134676803971771637848094676315307282178471441383305381376808686374888533278521011046289309925077046107317371497994987470003059375603169157071071413886513358043390442228758457751705047172443061638249891812250703777025307424932116042680040071672582768188886016829902602199387761795442199536500740291553968616027264907842053705476795693902708114656154652075834015399503782727404017001908657323951616350648409330723856562213228046751269699415902149635173159429292332014955544605117758256421552371317611700744523445379589051040026387747324017764990176990786877162053335003851128710556333889166044348915973011976615250911631018338944300503654776059982746205944424140656510303779402873488584982227513646936524921030689036633664965948721281614251846368140623703284968218054703326189846949692639504550182389789920581775203115173536244923077998814099689025269908966641992772455978712826738424272863668951929039194711227928260949133447285596963629929326860878335249457165253926318426661094881282321615706894803076817001490335327679140062069063780951213423955459783421326307241092612970767495441082190122048966503544593451200132681552373187585888291663244848474393917418972150929405355959017322080177602714674779308687801056442927864587005289868991704400658988046544897297444076892305138800573108963097106599656038986523387181129937828639557970282563420462945817742364282206127982609067666306289288035621984199186416205109263634289949455801310091657149913294892440845304702104508773817937368672249909803420133833138444437793735351887980316987975011505730612719702953163944547918370541802720838579453839633834397598137811290223785429009847873762756669853400693825448661410974668273385650739809886313731933301707205218403586737875000493893997489845782853256583550038438617998092988464899396845651084644289848169986473442429145262474966260520670016145271173388075852701221564536621835868364911610663991105481937788790739533737428868696045563204732248818589364084616624236626057052860436560421126172230667233957346740923506673682309217849089764656743371902763456686068465505596700324346541686025949639349415875355821818586294981191630312431096981024370028985663334981853909634558096289282183536938269616453666433414236159491515979552653501751350509108538728336664560881740743927729096112446018996639075760435180488661662258494539801288203343014343547212858658365542629472639723289774589642086982529702465267816358015271312949993450483084901096877901130205214801782481273149371688332584542749644938984490289383709286868711494288257756454940511213654725174544356419313875939754687378728560195392699781451227189481142670493859199900950800512228775979268662426189046392514010358246872254350252079703648148216606817416651895726801526326346541289011274656967904122341682121195150501358958668381893687352748555460298817974560768114327608329479310763461623702711568545040955899367465345215466674061171252333976902610860000586390818971211879610006272432946680384579758526618376535059122618474837897531880147476351856768661926660676518081205035970922603565993984771078976579322373765023758083887827338484718584111416056284001410867868479096604482786138841138677608490547422322726640581026864183148138118685994045296774915787497592614217545444193013773551620420946585025819460488145212239260435786435714501369895074057879076693665520241118350499045617616588528153952465362378645098713446039443184960069546070107339003149102458809154780690445307099553240639488469534212393212683619029654768136323972245313738573272179414706063336076698775024363833579055589473237083156847227883576274209968128714394772620932755271999961767530840954046669276118152565139382940983151127389042200057896960074470387831066200919395511919517518153030758794662002396849847435209303052634534125033213447011312326157630479903362814981178465709099566924922328890614729004768736494374438008966422531640091829991218841397013072747844045619453988865261059899412164989226146467418937734516664011396511789751805565353729051297145040393507741805512603188935880679428953340986548234859810017337357701868356795175568896907055619596405704015910139392612647890352829768561981619554237805311329583432107256282844629709272492814910417283057731031780703051250625604859399286528908167868649284651220010843699199435896952281729025159734124869802794262204869481869961007496763895902642364154594686432430120776862188211768418538397446127840011727927062542705392715532843636326168187477072289459241904805224199994940352781394146539002387070070280361444168429350586649005791522355844801520872484915837309795419617615039828079531834841170020736193314809021303942212854591290632653191379490943745191247411162309605352869036834373265000392783923137333513273728086714600240592080932824437528940701481668143763655135134443834954222633842904717727594623350297424919698384943357289586208196327709280430723216984323928322188574005768356345635560952692098517505399793164457666655686739846156560221401951751635360556117537788413796212230386561432748032280993357224202845529515836888304031379293264461269512908411897094304745929015670337827432715096391786642079198732037186219668402629853256478193799230349599380981511046074374528154812202092176858443154962671170530083489623507802502238344473990528430596939399376841042158443032005123278107742300213778692995083747196344471889160221996361585513287554295880130929453426096987491064459491672938471711249998175716090309304209472951966984995223496365093943535708372044720485232693668008944795682698157358321750780336978395938443673383069886207151905007749121312062666709268213080013290727638328581549460308603329238173023321213161661731095099365801069027278526814235776380413044024128335917447636915066669766806647576697521627642950621302774036629178810950417769465966443312938600567040745423964852960948705765947193771401053776753444528232730744768125956987243566854027819630264179029812262148690891037476704599512958331260431774232489492457382803496546535165871798237050468294194672203218171952394725830202822242733586669069029484659426249473969384104983106960244004374036396194401045318112064970763115025920077345575289279781490580078791877180873583227502213746135023535124207432578505908548197078818797599348302596993450420958720640886761886288516461491241921389952076811525674002157189980028410440414947059911111902810795550249963071902912136806229174844381803328380919257943026106994304982508285662916998204483146027872709405746907580484791259609712289300817504324208368482851404819823387434954974084587218327313783435377388377268210437242984845740262482508992780117575681955204117255344893049555416348860674685552519543680723800932868992842823408877703366815093291798784492458964015414033993621562761266027239582269889912877321724745639356961355077398667058175211859608689628660052054123934418152611194725252608107556925483487683529581612504505188098446589416472552688858547491392429163739776811251357312905879630902060228939823913747826396279309515437156130669226613504276331697224583550852812388788215953687364118705046086996574717881038190896741577289417358571875008897272870912797095746427933632046209682049846565801513536319958405624745948919299915911826816638576371495824230677846939681142938417237681537393390599565169380368325712800084684061366759547891197994432274380345301665818908976239577997733518141224754795598695387177892271434771838682395939323763080097757338482829238432687037825680513903405932747284831428026467398954041463097320896324014432583080387893985625409410447778825874945846135269165490470859483508073531823516084123639664393903202527192812584030099620915370810968404620670153739929321353576193467777424177492677803092754705603900811135227455000960859103144807657684434485139704591538729813509591994374746946950419740710169204091745464600742339354323339038169909345681258573269283228260837159979686460065382470394498693012772839277190536313144751512646979912979200069993275055500712018858099594288607064121564142496338813989921004712369670088782296355383171236518207022451528116324226072785922798196376602553472605373657967458496250947132786162423777595267461130341874716061915104727494241635040798582814540377892153489891380658758566584555834110515351109941643698462729128631249022849041486234148968317380639855798557227166457655841010060459374231860432926806846180603699072762550994790639161219668105622147948810444540215687677001170629893477254363056843032816213056497659002848017656873087421277771049197488439861396765746117758807027708914029339262964708622847504026989185245116162032356208672358658580984751966508309618677886568382980516239151105765708317473534380393627871259178498839714252787801753939037123925093250508147264217238879790744956753624614323849260758145567446600373942516637756679329893718744436046550014748612504485152506252720364913884518790881691672330790149583137898567621701380106648934707902211497245586809993250595164988264937745406346655208908795837052522742437574459598643826683631111121368222543800787511299021697816804259601208688275522109502828527278645248101100190083702842746044825497685860756048784122918226979662989712469018791872637853896791530805917946448304358297809315749451753046072083214758133830717502809180646116888335017433098962364772302258918307232162807368689643959125008701185358647018767406112434219776264738872402016686215723178246401861943727593539555538191816149245840043891493519751947986440243225752857352360773863999029004916075764273486606686752004300358777846005350724625048886997124503474268211520067672789235369014183351450744968874103134104766192893343254126451381252214445067756390906378502078121728232478463983797682292147289623886704083074576668467286875338698460628647326003338151851683844714857991035143580486428373104469676011651873965846667376464117309644211607149678494612916145316398765159994054565119381085356999507539075998040735841776308171111551922689824847687740208334505046704165088901916270931544166111975997584563920595459125119953579534338861978018531878252945200249013244799676268233247294007765805271661378137633403866673379192180282359038489051400679148385937587081097898167226638545274410910678331109852198959175641571579218801940443856686034404849030032315981518266217939972101872413032560861582180802144289686846527138577730933442102108865756526858095605281377754274516426587681794957351233757395760874015430301383271732988725017911656153301491057986414252392341095502984381949369308952310747979016744006103012793180687142486410662707693533903112812519997202563598591774199383553289815433209062610755257461327253621204057065146410940946158528899434562998030800627154700636560099053126296416371884049307225664639845598830123261719250344774589357097130300901045958901960953164705738663883385418431382221544048622652386711690456396682784128773253125292244467646131176505785105635025482966798874067886820344386330844902071768679719609216219831046662070895964918488521805170207085048722021365993753528871750537231394422870526989187248355576248974138748185859156172896900764007570646507290104166037568767133300073159325494882339387215455663189095899662095085546197106155266155930841458606246372911096801717629027310372217611857374216159329346828878543514215497893112255183665108491931091074144451951558857989183184190188547688768997559480800588108295107825528409162179608225473721634496671559542158655080821587195277485915870298966976569047602446889691210880540072372153724017150995260961967028166033322411024906653001150236179191147528059655884381787329547793027311482672233919586993189349564787937287072883821837894018435743910760776800732826516416585370974749663584197435066829124539119722693404464618776613267524024572119227534213916495365514948508018190429222212515414434716546664051657696819602326454825136775699608794377471139398693198197297601386112011572574706803425093445938648612300741671709251271492966277441608644339954509719303863182479584907888516408057714016526367891300897275518115281825279817354493861564156146389972770445153247523126054302600793742413480694519040808416760546627615255764249017886012098611178502718524746997713248731556979267436954829588102403853165780773007006889869009422980811814737119823042765900831589258435881100565259039655394511313644809502709825974387225040964265414839566999484897039660933094189058576912883748673002545999456725198686399073985116600645152343465755234933067111483628803363631436904830405472474114008723243503029343536993564687092207745692026730609741658322468177326665094086643534705263165742231460866390933600085543010135000614858539454325347584863016526464893065964734653949807527171748874753205199211388815400190622959710137048629864530628837634222365706281985737382216548089150632954887514815541604695261714975505114272982310249930772396739311914121084234262601579431422354449452777247771276587280998394797533846548072358512881222790470553166359498888589290947707534482044178408445111247301506165022266049225311260384539910537546162215865514075473285614442186567049111845975376667090788473761925128860666367163677423909701944241931103382930625365171122138220192080252170730725210940828084714065836197168927234283676383695141394402828572701069655781625411408792022492461136172166907091397188848492147007924600760847127943139472398438663830114273422628721817726489138996676516374243666510733559341357112881133958873207812048385748557360307603744745320090552846983043845152457172545212069785350681338022041991824941840515225986846617634951251918123983600323514932415993904151657197916967479418268395367390159732909014757727690845049793159461746566773143049768134881273792519663009840004571880136982084956158401941206581924060831844897611521267935166849690309249879025149091700740132019686838829506689124425718549330771617719940984776502961115817122756902608305991314440776492949093259060785244516596360901493588288369518229804907549653520317390676463454598770203069077717621164820232387760310743256898671321793392187238299323641572948560524373090564132355805805369031599156611227251725154357299260113280654735206947005133133446360212543663720796647823255474255861778676960895486737050050207536435747240191525026476198527675825553554607964432155911822853692651166217263455147344062960441336914051964265284308588049825132986821081255988903311909773372436160657854415840547641049394182678016495852236486643010717229324834472942085507573261919605262145783838988065532636304207009257651670035027485799172954987436671191411308279433678079568268690714613484652571462145802225374829077263005409539999409665070276668518546863898419454422699742519457060366828648706096386325677984311490467541733352133404886067456397273218501414522972398841285112160528056227619588515638793177353259946248937245377419584047633144289835757414319238251551826096907326504781499277711582930354975079020419737371789823594404324842090999116319383037296641044953931366055069609868918538240785052401466442431376651870676193222012567414101251658383724766094990355498843580144423599070186034731549214631937513455361248550518192924982690896928466868141175550681085314754747390507671362441382408159151170789843861746062634461025313290172526456702115917945875966818156201840061606345921168710258096574563339322131988394848114109704783758843974357053624148129322204467368226190078787023599576503720156073256609302435661782681390009025882944651518360792680439538966911065108532594507642926487472004943174707465097670147573919643850923444791167279904741574121136547857534982523671250974482982375006527389450611750376903018462509640474247570503610547916132435047923251998778946612007421381658133244878137203712317242464680651826851006190220382875987824553428188381637978871695364558847721893876430211702940061825253138601875471271572138812354552763552482223483179961611718986928434368989132408911219385241757726581109361428677362907573300022706301303030223245689475355973265312861181545622662962846209639231455125870238654742019605578709111759681189415713274132192420978103468034284184520400181166131716817733684257920960816626298336438423881312888199780788797830400615587155967088436310591867332861508183633268773296381483500039809196844147918048545720167668319456416818434441850018680717236928670381788381398144107432850498023011850247385878266151935333819851032162984871067696598075196508717384738247110616706196043579591391327584044969417954288225776949519984065380097175436938745140525753165769772544314856258849079569259973367012595167583769332876332647175542652299250154997410633389143477399815981012806063164169935624687653380482189015314683785568100133817298491030077617923453470165470162586952775351218743781509566017356493044688059720331873170113045158862435985180977208632135669880424761027819620426638782540088171913877247628053824136029815948201970775476861851434299243659568765160274403005458367227824028697968744123195675019220906218237499017202706704557548149470884622675733463584070300511938948439685161159370713927724159131752015393172469429676363033479284043783285196968298669815984280953759656405947373329130776820145576027277393637834360028955720992905335051502233673786500166572608256620424919009195498773164744494594450590812709705393951791509640102751748391515564217643563611753712282897518081141288669237070013898550525577081964701898411367138521306062114446307077835786705145450660613331001616482525463282624669387280433732461083142046497583547787259799313683690751890877533291030098062048351069302364420592731816582679435562312065566289379773525399899082122099981204944820914568371034167194702115753995375451387015507937995729810384490714137799020353358311018379678943197510641324823956950728145070414275915186642781275500415295664295548982329537491750648369497789282892138281607608628075724876583258957231373679270156120670630150213700944597672839652980373811848918678623784534769341562855283223994435124649329431027281043452605528677106378028492043396461312853296788195224598172020112539790591173078921914172272548310991563667226147231427677986712285605882019493621097887399972010781036422340672819561720708989135569957159432164215052447897363402158324087610941024706124696036153306330838477090402021855011640835561551232458537017781780473624810165395093517655609455883860527011652767735731403351421373474274906291968262541454962219363922164272153884223256497992415450509966880308396677106283681079117324266490998647332030825590727706269043346935710719908172713780348290017408896648648615839915932315546687547694376909084792874653576810395013610515053495508328956998399790807599115586115770181156579246444881750417381093437384743428328186102447476021711402041749010833442956023312690941686660240581506500517270739100860275546807496776985224301281123318448566325756274175138242801383854898517624346332336962610963886845995245241710524525462673594176849278210490038840875404185978977290473721419295728942060374357281319041457766337988724419328592341201320541881516334495618263782245723872712907848408676104735832640972629537598724047518632875990223247046294107924489300686012428802073643405939462112313747026359282242506971886135016203909376940622693465340204511018531210695916116863945082971226396030697666762857000785176591305780401121790235762998980772731479093697680807425165087411238131895328233904040979945021899048911612660895491545723813718671370081051119596019523606183311849461665194765336618808195986538963064626530912960578446238454406301974764951282760901806623772047587030840815530111818723870897861736254922524727257700471553646508531409174276728790683993310825215040937110565173562243899957501016440321497226868850496885289434948124812956863819329943535455285870834868528396177513930355690401676855072101010407723173386995304144252770332809321768812685111206774695210296472814725189441047535408930805533580085384684638247088373125958135999562873465779497885036071100942420565245419689938249178080677139120801008194676543093948369440662482813718323074091351257883147018325342657145405849420902217114392564340775823210773844647051501454617083681294126986078156694164741640155089605060454435827399817557623715244195339520740433978285676689004086654153817870393641629300664913451989851559054533178784749202737952968312171793065470354479345665580929617450898576658641526784257029474199134212765642607642941996876896989940675273305870577327411962691150244708429795928830868731253201099131980143639285687063024340362375089852316362667720798429899989886925511491770713746429008771063413496442410307963428720574361968581710903907872395282751758808025653409111321836236099823101634419130574549254099199853721837810092829056639563930547495617815696631274281742799503900574852672318231164664561394214116872042640089806084795840687991588140214006247209919818282082520289787991218884711312658005597361167684763440885468413680342195410007410014498071174996574194300439287726304689962069137052242941963198929233171193424787875718503392718349654118615004550232660456103388102869993476155120895412045215285394636903279721808598512258604774325498197814229317454417305777440919708851219034458517699522597640970899546449545353838515300158907976048756024800453768949714769352290754682234088028720907270711740701526754584012567573165738030879568027308682686624874130458565054439827087612988268328884915270946619931556386285737809458041856949202002088631147875731877088820238889274712496200385711636040286857721751186918010676069545421548033585755800915046163149750634104590940737915681729559902279946273766502979910235411655937388417606714640106489662243473852558581560255797447832245998735884777715430565005350702170779475671604596808603527198077593374014870215242017205677144101004710759883312388725375489375900863855755411952954432914937886019224204139051273734941689902648388834263252360675316786432294973070934400613541394687837763858018823602694336103559664076803352256840715167046826615395863554667308249169185995812872018515380894202489676214761027002071781997443864652405954988879361182318974243640248842353786426631211063620017027125533105715597367897616618308949254149054992319859628754554919667011638182119404537399615960464853491325412765087974589558571438519165557174243419521313869159206468282108828374808856066449942561254365289774586015569876724525725293913870185867559163929244090306260913149093222876288827975670222266100763839379737522082732880910970189263239176284217761502807920978414331493270884498292850081207904540942307537223749716950361139910948709571239438226545720297984932744307735148336036025539217073826579227338739113267237062988423825633938794144055262922273462370953791518828859063276544071261341833102289308657344118598517461807165872126436984025544546187450051337578499419752082309277868807017626427152976822375067025711795059574707037516391809504322970679194214773976432416207292554101878041260091644067509603512752398968857315709527787528757607191947345363190597933891642673098328323950369899181043388849831613290774149288921043274777656471385041480763517773191940523487727103979393351116794810582600276573731946817442051512396006039216212522053261913755439453950644469982318607318332419960070768226845988552245727210734898596533790000273795557692960047663167097719089646793520725383449695858590302935040406231662149429869436879443048633585290026040497863408809085835756471556921489878639224566950121863099974757222947332558512610766162825409763703074932262553671121663683807354674426916014451629023189401589926757007456170956382184217253885100162795284224450159785140205545739837155557423151663343909303001272951042648998117445965949296293227171438605026247795252426674792424555449196719696339856610720312705523651463204517524622914999442031975457368206391117357235715692051246253465712793588222108157231979337187674568103269182185258242608856387952359582915316318437737975609865469228904619150170086348731307728353767064900985755989906661505224510638499733245535723512839677593048403226636006697830931951770524849587559525776459577719667351469630053554843152595295686040472745723621862492070931601552241099589834769394704620096821114756188217536283377374972878595458230238997535201398118767637140220884799937042856163762338117352620881640210346454374661940765895313269059777672083401187313500836597644806866166601011904066234571700055578763591891887421216598037365262750595440037379535367236713957559319169568788653774986748853218346965121794209412912279128592604147276528371100309358033356506703675973451762025681852201092316518873633359437690392170868170937593994255538504734243910293989601502892243187210997635480029012978166563770388491182154801304341892497510038335072368687328874655101253796702808984280650405069008387666280181057486582292205297231233395460764215543954742651434837314146586414601237195718979839340620299783596963605504756874241123332876493579542736147836344243100633741468270221665200524882598783794703579190042145693724419368134252167138017892017453044414147404670286224496451968041849960884889738842607394564890413479294295419276765093205427235079243933007516802160648403745759850128236649322071545005505860419173492316130308239933879475466445203493613636504486280881064215438594298659076477609711178032626058173329940121505390797828387737344595327236907219856191724524005662400545517650355556352573968066000708819324430254418597770044702554704477623180407797450419509130857180604668442819500520210998915460837307128097039331573713218009033301026192950958437589693540966972265340534934739589973907950032468523423926747199917022598371748583346736784933944954987656410879159364061540928798067358677227067442952805744987108481792510258765007956095098520758553659546066013561734126689304142954618308150034589624385756802589689535019870323669177938886345455691312785433816401800676087002824825761806546687899803422044862134002671970016822227057666588359330575443883851874966615798207774469379408762077889197988242881678795972441495434042203212700058861704550415054245740599610966944783609823304849136540270403917566052643987542881754791881979979476114299686127377237661368083561491081757915610192835898764122583785866966989910188229390931512602627245683510757417113933074663981332650490817238637535822098822601936895121003260478940510535104082706970169218334796397384318092029979266765532251118794541480579572217033981105684816829393180664536773031809566626938847039940690618608431569906098686276615891972445574399571951055847192173052298531424579136451362520547167819386551576791979093591839864181077330858774647639616022347888651599735358417637900978007858397219688710785598926549457477610926383617790750162373261747932293489058743562846569153729475932295982672034581442402757861294886004959169317951285738910958698186267471457302537432487215318344436841522123203304620711281271089817912010440023045623996371810856002682614433355703764542297954865341005453223640237842756479636956161275951567794610542179273546437381419976965269011326317158308382606021265359656594885008374058273336193170955585373832357944869936506733481779939053960191908600168944631394439061787440639541472011650199626324131716232143803860248586755615748513530779489309034083574147881985696307743651584089225307426857389579262241818220607221581019237118811730649791678724626044279689358810244877041279021347745418356862860880132336772236730520866597310914336890103414429053415531474340698258987940332718710047885987261092198348519137062326004314466799687370248114101058213504798384567479237291130575569468060156049504891280265290665160528506681765694506201677034961136277116492383085192486469399407763235082680468234454995887091310914137607095646677355041813655573932639742924786656437322553198584610775723603952813824923693514449318964520447983351526516750417721784144896008555653635977980375615694515231664639413486394633954143956532812567198194596351899912080371593644826305322031265530494822845367065787951246383997469555799067185263286988202145152842840913481719350655715842465962226907036672836813120003050587912633086476430019073377290885510489804275973690281853227889880554200678657421137441325350075045987493345998740830100631545991761678540402737252195545707430176038964360775019498034920521548693761375521635071742239690610115141429314480670130358901618790375500473309737359900070318045425502463047025250921231216309689154134684632324943535672544555626272236290225523424135223953437067281283600014078832083017322634746483920099771839445411430193367653790602653662244253497295065038157456420908139157553580284372854037579273004634452706230752184260568169524657158754955769440436148214304946881320693144679210924099969441167025592775995848206362934025539230984425466349529274583574592936605341979748732045198425729576193297855792641943311264592667411304061692290215133170370407720579286931238199106628586706816011435956303125626001748246388642845148908795930865688468775664569294115675195022658367317301509080795963523592813299045236332176112757151831719393889395594261266098062627107345899199764282804363209124504780131829727764600637223766209688004316357240646353290804852341832913212814925436069968793477729897695729720573928927663894477543334296781756225800987560004770903498397654594145746237238816987078105211538748822523429452882181539793524723931288265746956615198050831523475481321470549065663557589117280330110307044871342938983254993244926289095807465900038307860747658087442583021346935301768904925253038393892132301159782681529965025039475139698711222986175739909948399712667417602294227038648271379776812254197292547704028627815473392795682182575428923488142295040655347080315606269392438042521599961268916846863843645441018385058116886855578837467759047986677909651803316951308298310674420429247004549849526683691048196922746494455238981797502776718611083015356651872944614282703432184664436930357994399344566936004734101116414056665161792128398811699270128830852801949371233557902497177089349223046037555412329368768992406953352583143467775938740222300645104390202494923982807994129474532750607454646053298960925802106975728819821867346316810617650314422687541317037318253838959970393443888434724508885086926568270727174738824366258256696982351061031958145329671724295023362172937983787084382880652283452278924308719194176277215447481924235605750735367194999408116279970980785708525459545923968221266925826148700033601339852151249175084890911167676632862258678486861672704836697509624764202177320914235057728918360649173278956147759869881966498590442415686225938285280409053795858488881259380005154800945661630256377463687395124740848661655220091742512045510032256236488976599061054430683024105627198919613185801514071604575518188868173491747876746674920778143682819957246437542541054186523075245229819349831509993203756574452973874902199420201692071945929700720272797280621668130677425884275583521009107575387245534528876946414264422725010069847810128728322653086770355655725998881337284149671430118162744146257499423644761447932309804491671829185322662878754552493122868400964989182566272035932830932720854261661236158842682574476599083738470574330550893226054338199455018036714911132409969156903692923999747623336168912878842469112549600356382632091357863070824166525984605972362504804756896605665918154267797626573410191637046912400815945982774928172316805823242550073890097765409323194608620016427937073019616851237166778573336025658049876007351126925008230553374606092505827027986675806063414737373366171055222635331404505182881225850166926584091830587751082385745732088584893799977115986273338806746931739139153744424832136989412831517956834242976589381271262704451662005231735643946736103537738734237804265895354690160031344248341172908343192031529169502705730201479621275544924408173659517950975461360917196242280204541530762639977359864686596113435669563468027905538506011551796073378965163537034950847434770200125376391554450969207810826971330835705667713569783309872469195227213772935771256230416046828818208844494827819279221032212286083826858381971461695604483040698343661167509093614441609926017725465288565667672969331965308841546063543378703590790263227076407346537270827857891864570045624318538484966037830461486123787424893086962327596179839615402448650149373687149449450579369691801559559167985924421247885863463036786398618608838756197103330735179059341715666389690997566670043335036752539651417405147079671093120604720605228666929701896984169682400733980443199822109568132860711270099589452865497452522873357831083456431060910187246509147247470194830374873442268804541857773070741058156589380119346253739378733846000025036283903341754039181394483858036719504637314788772498765324359442883673814654160929822967168146811235219557955436391197034996588344302077306440075026998838491249472888023866755547101660863519125404904627091247516164910121334079730633182841756258039834623911987302229555087968384554530544649284225538857606437618864804826706518541824291372313025452921374463279126962182026001387402029193673108879153500946087363003994017253912033788055424119188518061347561989398986370114690283804198979100486557399639216436670833809852422176903752492254601381609302202750436736169302000467249056019673519886624302595946419739700932088740961887320400371267704128939295677113407359738908811566025976566698185594874434237994918464052867018564065899051547793923879069940466678729333655701916374486606895731454531247743945989390977263209439786379396639405697489951502831896726867964029464377966541872474745271474160223223254426351779523980671915684948977358815066024447334666518463267057511561934327081545625663481525624357220051387542401309078531430094741688773741869680705966856051150626171223356868807660368899505983513692676849506584531680975652618802799144661551509775120179688889268589461575323386667753704413198382645177769289718182930550665556263590191162077533939010697347947762894241085837769943805606332861448938889976191129964639241595287351484694294293009296120993031254649052828216082635372714841122388477905748574263263980819661043920497077155609509797086493660146678369187635556815451907554132372697075003981346238559327923059011148796018574340123182335872553514543869279991027344387230969869058531251390146356121443547764152835283085993636127177686455629055660964787972798078287490367712099519181564568025205248416558162150095524156535256657368783916153527105222995318936770209445694346702558295269627312759065857917509220467297501656769480418366107869828983006838969991295628944855254866987466756216707835215042750475475292860047037204624294819077108242787503211207422678913688305432231047322251713347920761065993398893509612143848982851392902705919157408979193467695846495446630722953597585215131535061408691739455954933877928334918976174727611794055120645421624185341762378778406257612839710941327474256240872653955642014644101296549686294747317736551922008420778884291941865238486158841996446781351332522098937229038861719769870576988017403668481448061701609771809136075491805791570801362254821587340740756340813530617294256680019567748808148636409301349543738503341471362783001524489189805749456958300516236702004082433844853604891022325897510872822842143560714579855619342501244779610873285625554113132392238219515995627099947291378639157934582435583861618524120483203652339538338248504261243319126891219210521958274473999319879718332807684998825161924225248467556340962334916573366441152587589153168752112390484851231665495379195160513510524072646769290207885400238452669317689050824001829817353286090843818002337553099442205807725129955240545206821458732083731596292108764930202285726979465947677793180705978476196231004974369915877036787433799419853462351247669574262364397502860852656765892850200567267296848210755409565049907070175013009993771873539401465006543393427906832177227071175711954025951059698655797448565453228457322535697987520641534539048532076510262659898187473631369460675726175971050551719260314039394155199302877589736437854644854027170196141800439433646368610476491549779702588772636812331915526190473606058306826733347235729143889473947094415354162117235843149250024306250492291268385598065140669002227505943421255251044443312059647271707372353596633633180615088247353668867869514657880643125907769683652276855668444158216149205089577494433687246723689771089421065949744476575756897369606075909703379431420090940955613991934018267640437043388571393503669078672385091750658993021022816882243179444607567306032834852503927755660155865073173988632494654630847328960791144857465276521741983881478048011505335024681405660700030482149412242682441375613005931370053068405620117757334114017088649987978108027797822384295012512693688319192233629895640276525930000070455910269973205451913428092900353722593474317398960672930583136070444884526344099032437287426330300792010673706670829961874927410463904790743946878039365041134475550337327045053637264926713500672008773090883136871823494682558262690005532829309699369641435727809277053452805693220978088598942652511557165023267831261768226540987616228106745785705425293573421443189837448280187850814977548165328945970189058078161927690840533533980230384161157139975052117696322471521406227921032219059830586869715972219332327223614102460444833791146002957354780722532147095565455796268745365873548920909887564302873116893026658192996836340973914073469921638449263562537426413434218732119933778583105941115938630554736233957068523775669112778529954143520358491436664952891503419314002761284023182767653573753596853979640208084810717804054053102592157481727537918474640742025262681415575259381413267277833540990751122289562488297238632729224423262200293281093743152014055239143473629285970114101020518631619324740481454405782672307667988939607569807709892273366773567261809522776190920934304075422515105311432455002887387140502172047951957547562486582684972667510434576749744040800084995981383315025019560384564376981223134364863088525295193212139947939163024106898448099056524281363403938154598673361500172961604562351771388623306771416538681549343880217423071866976699273285638182458154961538419335620103492294155494795206997152074750090544016486684857935531804347411002422282710041414971275006972381151094221721150202704252014624717058163769727340202537426384945362025113075562232830151413971248823192736263164983444345462726941745285117000084379248291874784593577351830657937961619851488387709648690976592354350421236228686321112490435948491154224543564272867428787613136196396481673615871481021103072500623432457488725847389763405480455814766586374734616222056579032012342389321260695931043600649282037372652549488403328399033720295444830044697680513629907983596697548202730512599039039723227700917855295081982683371708597650966323565903579672702192233517193035655438872024068506618864055380122980528028347197912296862038234126832577306944220294196020142476901241566933795207634325453074393040846057322442364340904998863494819413041902112504032583245325863573918741598096092555709740676823905047162192450365192714291892651077204049745688407872196479495437201062833216713517950102352429765440146262837117875166196199201121306719249358936098394415619387705508729889246298345133796820359776832959434947044689583114259033217493642088578201394197114233957102710811284505592925706999406432968445162166300743559291381148381052814310478180398353594579701850300738217157332872524230183510151866989003755030465492428376781744967075230016583135813814022974476722002807684948118329534171717265639681410045894506983518257402286488953678000756956915252580612948651512917007995243372361282323578030127727737183077688091203279523555332453818950355337311221701222629771169105466686658420490632283175435472783522117129093312450104315918585258856383244791211355242822873567733296579639690071580158671966496461057576348766707444290766154625385358217214130047416829233855147178755973132153233319923001076559938545309267855257099875743715729060620832555934228188951725158494450552086315783205857205619928097088907514184904709527053097617652839710528107362214281131261639814945223059514084993507212321734419173845987398765546631769794807066472463949738927024674747979883273432934015616332127447871843273827580153021259951256293172965192810541776073716301234373071629171082626871859287475081933130124438622221003958971456488635364488333091171111260943963676039903075273916846677861481289012038550309110436141201997998310094813308512964537910303293405551738674015133301933713992454964725731924621272752529722585843774134827778913564567731699401272130234492884123354752946851226495941501880391545496008231253490241130694733573751425011318723416277370984772951863924290605605894959114696529135106089275369796854847132293403555831720221792898502279338170348280824365542259386455566272144560369512520474542016378151138172734676041915452975192021182441049391002560329584830109024995232736627626035717675508375281969922027695617209670898098661154114836455256268852376526800923012125723568994484669504246859044136719021860607140526148421630739606841808462948470251125277183301773896335744461145466806069025693186608300447422654671367463458458904363495603864204882560582032417538193401459863619312948069969645577241347386113963505287681139359227166343569562626996329709258872487503269316203192912361047456771737597332948878864163655308162594114453073717404196100601715322216389940954621038676600684265250642400456579743268836459371411052430845282148595862124771437946463366041241248190345612845072587228464495304777331707091248337526317795631225222898000547970727946828125948003941791088988086387658834813985011429694323122453264648604144962966093079475264508751289059405990057476305169893846990898158451329590777345505184056295045349241220288333571029958073362658822086782949759480050753218550100391536435544017696957286584568722905308439701608727888550426574225595558969298405614172738631377265343382739042946330814550101689239639657172736504372988170608790773040492597972812010415225277875402612482321613406231096834749001233919658620069969936325069826204790971437627119020936912352855668011852400390100420957407737725308143447055228708000944733455752461788947330018819559625061250557243154674305339628270185730284164174319562108338774402993438434406085479750601175472607547548633340354532429398297445241872095283114083272313352311278177553251889687771944243771687384179927603749947955404679585639423176072615136373715142477625424375132341650084993744603342491348264143785884619791089666389966515296376766272715567909042716703957226242571056812981490379590249582609594393145285893832840803218786487184289168301398914515978947929436208243280805131278241231591771816729425536060500829151726207487654990453648417081484214734973434276797506797972033961884664777780660013548987810810395067093604511690973158743026547892522173578776457661965406144663124146785337515478368722607458324690840775180144247299055866336393754023082991504536208084955279271775562108137214426660957048596264775836625929078707938461154011369311154406682140068769989440628273538452984071337864010054722966656206687108653912590246720288906136143299165278046988652049381191758172921493792682959525502597785785691362563938746684494508011985862227778226984542170022571746915257579446432737744227947757028924233887738892997747432225517279170172570085808545550947109699670511466219129734514047884088436123778650322996178236340666513119973712574643430928100081611887445602961843309175857797093780588453129430296003519575376023516511955806666213029119242562936541810533324046962004480967373902901856117788888079579515409642491714020928547432420067382166354287087967068819898597257470312717018724331818944383685076915830714442246033679350824815669899037199743741750039335099785825515083095370569967596323970611034401378471087164218170658909532221107560238894695874921908424761761785342441934549989743428747756874562066274221084791636433115425829715671614800383930575026659048352590083374052822863162497236063256788012320593614168580759376550439606665732619463937174294871908488333068715764674578489249915903299953447772372876602397417370604605166978964334291860718736927802990946599614468736449975497887988985283408760799757383427230810451516799240912288569778176680653913918080815904077483661884365666926400249394458557417756469553380074450342743773596476045353266876804180341013466468581906766050455942345544729141928861349600125073259888564879137690431940635459992640466113329827107282445761080280810344998025319562070698872236465541606972210250750358633196147738040187603201817246444322119319137763621761713822921592840675198285055971884433617824707089483528630530698606008742468503905761023782121185469075689242862875811740359548273714956127300490297157989500283987934852659296768733628066987718874085336630523930179304672386174782924000762628536446008608378787959975881216423292614230484436068065113282343557169466416073664112442969400975537465244197585819098624121803949024801861409531467867364436657195686266349132393341837715127358330101773363316620618332296967505595361484146608578497381963161728696146473757561425532468254319306109718039433130786868483690090792339070970059677191154197415764927802689560694245153253924427865872972936178034741734793202507765764847585276073388664932901788114328970168046815819484589399423739809816650164395677263169549072500669611141670592445822511964153957080408603732778325882776607995110204047040146450974098912974354766051572636887833261006530723233250511591012556063954784874400584988840542891740961763190490685715131260866387661919103533902246510372529044123358186717166997690120329888874270958589754654437314991589442199718113785296287465900320161905169806710633959099738989592805376701666071306086776777862252871004912747727104775454589413018854548973421322790683433415927258646183224439528693224811828249503887294830008975555117017577673435716513518342166740356652296988203358369417928169909599437953641793914525075004281631216078053172557789707562667456517608861604507502729439738066060379369784015381744387068552712196177111224123714590848285517474777701874918154495219326458264846528213629107425856116261096399671559661291198843728056242839488553912393493063590693312282274584828022632426534800782527230738182888484469534491665359184918777073756456966833319943855395839281653680661350993429764533204525183061690858678255710763261233269498520365294098481582755679461567600017746861902010193232660050633126012608526092505371593943841624175140504752904609529590349218952293926766905947971829096998658750611689308168985233208970396541030588363084944407494758221997955010039083674088479918864419799225361077699965672820121022415488479151826084877761442902912989422960462985012657729040631397821003746232914745740656745284072844734455255078125242743449355635486573082497740414960826790837989407209180881500406724996488183985676383007105467742012867265293048628255208567775523265800967095104585225097321847447245315208967871371881454283681659431025388054638924233090923569113631574749589754811005123182182265723995964539774487054648588602962376086732226133977185588810775263568475241611448049957231304166638895370180984762293845313236548251416532068064098957093728574306099873808491131989641891700236184481042808250035258545261800685586351964693388972003017306709027463793428431136270981086930435139113833897433663743995473491659272119396304038771966506602364314685172428173846105916474457626314996309060078703337815434543048358328316327206903806549866344199018913635711812261236256459859970066410934431764926220743222879861273437493128803282085498293019847622614727101480908598812682386706894554399937194849940048809559623752187026038918624860673966703415904483023201002877461926028411723582507503585611562532530175944618286440001134007356504614441965308663437293523784554120310301930669827917121205635552576759649087128724926062630153392502110958510513312838951963141558420368529167595781545890745212752811812554865117501214038653414837043195321379065846407818261737620893024144927965946014744027540345105398459798894031246556980866525290866427627707906730378303479580433051171768025099562454541619110462463641687616196335374851290750410683229821715252797506658264544276293215797519748090871674293434824005162676983098083417670419567007485112490413073579404526922706019225555309577132415736259131787878120140658066533924825804265984167027043743878286617927062632526151298641976062179474739237773366830905701983307708509568961023714303400011089204718377331473170552665700787318951151934839796484790504824631411065460044086789378957280752305471697285276238757377609606842737307815280518784395460457251256946572729966372816068349726422568137685860508859190282618386813028919471741897841654157595101305472964824437777552783230273993254563225407781541236668501865281187448908011400311257376999487053638021045464921704045754223343461724550131397763733784670145334961193082866063625958599033600174472078919989770585807636321353353307194943105203230234238396594146802245481953838679370155552221077078002003149229676105296309975737978704627552796233697534537366205517037764160029185718795449797072939191581512022450112816962067889618661618548184995469891489773965384818785982443802697078133568607866750641087082719741799125019354897374329860926240951881863192063769548931887817191494316128524946677892373768295269086731193899321880078405707977868157967101059540019905924773244595520917848010608115520610495251707972232412011236831968018096899631398251550721391492644536708880941146853931519560092296255663331839027850206902889170380603416574541111303860347326757146763296310372038643477868792429230425379315948807291912060293847112761157610715620800715173299593562609929668350024764856958166542456437152488189411770797103669767266939919107514365919639947000955430629594245621558565144808966594411381880961194050870741293540454371381344214784120827583060144231204991128942648904439589670139884581221242987888712897200070873928318165463950180043862756544513180627677655109684933583821235738418733287831648598936925311390962528214558441252314603369078730611549639907908990997246712082646869107394024945711003750591685317676332654968470163146918130106606393897458582344552184639856419837803026582300163961487947787506587805196991834844454374067632772269675768636181179472020880186284474180383634533876024737663558942515432402171007573370256011618784016703986510220676239699467484806522636222957277458545014034898477961160260407807429810066454612599390038424296596841752909106466225771036810041544409654839572927803433269175671835428084217435514177174831868532285725464493190725355338262570937289740465824267321800965457631587077353297523784880985316291489332700751532016775055527858583505343870022638153864182935733190246201231703314329103060637071626496438432737722113547232255558173524002057845588174625634743113379683896264708740441741552216441066339886606657920874812215934587057815472526778679485418177545197901894988515794587369541369111857613056047334944305688945238666069108714043472805239013635236437992917389427199244807729582452512773958431293238506657291068465478536158611113721289457876261463610787861662332662607639360274337638281776447645711214511663254291787050613299867444145695633395999024527358267956139642450918711601211735804245419086803751986524135916814648791911978337186946459821406825550998435023707814571224256009981883561410806115104287916942175321491349059315911019311572807911653019411203599052535823631579038109273069484988585917676092305777597571010280555266095591925355603557271652060375393443520172795707080550739567104785163165746281644143466756491278882561476517502009067015834022959067010547565508769981931269199428503419721541722785752708813967782362415037801234506505690637009729210320711429870779248824427838064022065532227276408399885766893891478523155916212066602891765753120208099371905696709815344694416629225888572599185193820817787582407569595550172133614599903879572988338661772170295217195394809273129467026278985582615116433752290044201207459883366894316306571303211895306587000156317832473023411953040892226367246146181516123339696923196614963648156931035116601820686766165705103418980014163732041142132740684134684319416942247422413008166364353566965270136361560969828504902508692311516703040708394990934769596977948732932491040910057321053630343927216500129629429919592839359589846943638535447230105729319057454865136464546030120068848765607508613472630227246274862176836798884433414869768714173841568531927599634693580093853480379189447923768803268354639069642835304237278105918612732155375248751389804959052974737432411267551486678585035086990119869471537473078027660712421250838432341461647300572256972700992028788295685368303352834924069211378593993759150977005813342114916271636530405697881910195971090356420517999412558926886313154202769957336710210660419135864662322972620812460939419938064956560763840113214633816308664308255572830383512441861260624521805684262108140163664209796956766883110645900433087787293630749780731775930746251169998779319343884050615626928463737799189735471236654983952142282525474144783036285301112319653552491134247573762337597991527226307130602035871155134550199155042625562031977773312047098093795156620751637490221972852250809395330523048643542756105173376723262181260657417665591470521144231890918442224486308551065491331819466873502384569382687175465686636077347067578726827709713463855813864434274646401507118456078949299423423045160415329374008251043825237884961412325807335935176473800028493703106149233862388259690459965493313849678369322455129280378440534502622314874341906166780241515974073008484217113518364555674713762186756911543367560432879341651939894176348672309160545883572320014658256887746987159772164095451345599868621065313292694165314419817082252480521104293725510932247992656312577419109152034319999126712735031634345292026476441213776877937140147415045841945980172175105060577378558263509624212217251175986453379266035227130240776845224004460045462871038321311514437354290544303163911676341564307239614463774582947139611736477879547673179570687777485591798579242476837119800749446301221858118814870522022633266829311744262859587198554842599304235791927997525943051698965508982675364090923513453851303876060914305657147799498831411931003807044401112356615857679149587246589513903843474029284201168153208535596842813548647288373676475180256179706928000873814300962409773406155733777814306598555113425067086541733567117130991016501062539452798634673333165409963600477215910887250485052340344053897964933098936868074369821667880418924533358523140067676375411316530179030254721618932744492140461588775048050021643512538781642516361595787986480465368990356901375633084557626815248849167777955692215048364489149238109948386125312647664856707137322536732032679217519938963962601006633749651601395912823079217241283187386275336458545489419557096653770481515179854081763049975908039676500047523709419276217899089132913735257542430464905673199367652908582921043790326767459129731188290397895649749215887629927614814399223585734389247345069176627294537156341350937719591195838923897257638760873305857252897286562877763891683848843208064277645086106389340565988722970790728530150641484413901296822430246519494619981520144033735741174769924219397081003242869533887275116591431458905688283482595323065524445990548255246573934656757502789047810919921996338069193882367354642471918100362140159675979534504380995148754949266140109912938443358673319473816779873340763246268793516743906596992480752794750377590079179317971895977547086440759377562858507180442651812643950005257318939319736475399954549844937547224853026571832148450846683436003690354453477442559000042593898464053775712532935923310643121740633299261707864875595009480197932477588481616384188627028732173406291938621439883691148325055138209055024631730280185234173507879637763324885724661927403335854174790682548169914660151141108819774689118611946060146624430603479319038122038673067806785972702736531759272575762387407147138224438052338285191576106776847307230731945965044777186334802287559451680141564753370782865066521921076511358203719728007898102168165120547982566204966142792287070659097488074459316473688784470266188880764020917480076526060005052729909011290820657019151045573937669404087850843027425426430700874681974930801082807212769758962850391590692200336328768064445004690106038275350457189480776748653211640241940034188506617202914006681357770362745231435321871019853126157267447480179666209742911447309037034773494976149432237712972739775078326279145003601944808434845244323994288683081596274136479748362722575876037049673157357533312691300460047487463336226529646204171635630423229685573067159416699592461677431088903565377676591362270861920123166568131263216000604051417166963021956414580132838600228349797215500625133277412462912434148148851839102879025983750334588026826851068059129427296585441301370043788913092088700754816771413978026015760722528182748633860832568950095107126806888309940867099392010518347195147930048543568995938225427073956576800555390109975458941275028875323074946518149597121409844653680657169165369151613952660901006642044307460301319898796845242006743441857869027167645593271515539596006638141661964825929803070938144227441091084637803623064767447996385358576905837746481106121024996680671952919220445447116668819720287408648477636920125213866245342814229210005122509160721577126989009076693642408651155689873378439821204584730960861507829103200470533052001139356330015573938141305935115534705429205510737836584608068362707212130605576558971365856534680309127176355795522299562974690072527400228038717420494053490443691948179014324311816282447134369777460305333886946798711188213770811729434753397235762656084987617171938127508789088476106601726705823227990841182774238792479212145133476916400989985311721033272055558384313361912570399926781238076049300034257015794643174498630453867283993037396394492962291628960839124455104912692790999745257171138795118084474918242623282156648386288341621887196786703949365922180739447839999094083170747957270864836474204592673200351675869090885656935767813786759425829712461549114210540295044082024421769169002089079055799563994698119840624985828849206340426986859605208534489986833555500843633636056887374051117447436693090492476623702128076721688614581145141270136170243753258796444219637002565193090626605094158340620014610167586177810135717976737079075315382355634895422151073995312519107809786778198434161206194315509139014649554246391223026921537606434503409423437553447660129558772165939487697571383988474268785890248505424078913680657863218356361976532734897906923374754263881990446898530436276292962387750038018442555051085355657467853824253398633399361204988489903240264556696019188485029559740051372239527004505039470047340503324275029407085110493746456247823289171530830280106365869587816548453052466453639169974097257619786730411321893697651426139951088799204362799196098280830576752656574678352755048165264046268546893842671198974627407674728180850723006860519334895635685848451281665573333259209424208585195112167651314767537575049460304885954675999816939865885052304714847289270364678925465815909046487941812962933719475828356781503388973637492467637721640283921919690992457626485979371572317617392680221242328316712931600107508562704606217621726964609599051334555393141289017290829921179955362286587650379454654470768403939343582033391260630700293122018424030532651226970352651513252779254809684097385219413971263500030137905542766458344708961708766711636448279189938471187613038756783925885842060613275287951866648435538550180114689911397507464626997505601735442832399381463951300755837896288854187716997621484942434595056410903347168290669845948994917998715817131602600524976228750158990469216163114464835144687501133032508884416692124051138037620559323699929865878969363781667197624743952986996465739103405801924753569072213976657641195645816193242035649261918141156905425207393462474279091673127843976986383596233243150839671872644559867523961128044894915862942759155010518900076952947567907509624471583651335377201535966814301575778407394630046384534397826256423530026703298127690595237270842513971686345615154554775880682186281004803007008686335850616847028462919115003897612753364671658872131338076311410351139535952322886963286561329391489910980474331377209744733166427806967411448101802058194461814552554646449591219983765400862385928511965477358491125009946898486123833218940362856161382515304862661771985598247310080609561536766171992935850607844114263660554475977365571155734537625465901348395192123725535107808646495657521291658663199262431931814515536687691012321729678627532273535823876726668650972134990504582364292696715101254257072696493358795420587039619104134098371805262926302129549955644205442933691087795412435612546788169978894661190890114163593174028074957676251567779185510399990104023714370851396728143999303266501347119585915364743745945275495799690328152954066546744514262317481519644891069815832287877359508185555547286327008615144919301865528225664659633430895744978254812033713682858792490018917368930959407648983463497126592700719772932560936382662709495977057853482462237873666771070609826316796900029068871506257743285390886658676334466029370273068972128263215796031255374839406464958152531100123093552962983229337014916407598826267036665123383649021020888900071969036735521390487164556018241481280270480826616617795710131540691314108961878890216383229419856995347737844337845801507525406009469848210543684296450192814570749248012869907072002431383515557776212927701949593986318752599619885022488046194003363704863440970321944228277547577244857428490046537389646544907293403499708438946147123177240721327448307435255539268711118391022644703921132156019147624814041939118514852229135142651675063113197067852975158929045971363373474155176911832355639579097958840060874350087748561266034281050077018335852674407683035945782343879314946046940852599336867969622408023988529020911810269832398631966273196729355976073481830161165095750530139454811482337806191924960939724240828028615061092220313759201408427192647596018805292354215014648012155409456515598043749017338995797879821810054286888058878073039261558176718274831829555151395331298132961514588655378780402868865821895775104233333260775032076867908797808835371761001174345058768969592754301703604326617053849059616372904304251298157427362509015727668183024872196393136460373740268569603022043489027493827479203826655413398667083091433204118473945931596531006837449808183405068751678676848409325572684448738943958787116378684305998170154899037532975666153438787482306697463382470468855838657818481770109572673044519058736997763963958750119157088495764710590299771034222776293586350534805926454284428076743758165803024544852716546442286466329864883019586421251233426506511763290202430119996214450759371999457175652263549069550715673618530639345022060491645991949107471173335299870589120593852666923869390588806633627962740009135791103706079899529908393180174696871707783794621248894611075461789018129227025323880958843607371302090388705982647668580406330677169570117753220981664408334283552087843014135708721095772954489644272297923904466997195644895431582013141222752951918598580958489701568191345706850209026456660783536116870420802848310073617711944636040594588212539858518786902742538125811613381525643651938295463267421996573322093054065774794059820150005218714817742933900216527636950969354889754655487947989907698742718168855346817229482085278010564381133690934883943886098814660350243919384305283369831537202881907397806417834662758600518109763039740821829777683539072489906687780917763126637305920107060251505476748977900712852873225677762107614147432102968621283599367227614830287009709981370519940003545068155965537967109714485314333117382571916862437221360782940519950788421234723932873739736949088462129401161766657894973960314159242762581817754763917460773093925435724349114177584589940080362529789006821804529539997188598586195417028917414342373961908904411303998174095954516534708994160816344331263246679306414899074644106035606843042536717600750594986490841853884277279520862324284061315841505203671757251397408179665187526737747438934830261469129798040329908854900236688636937511071943603691970038530922161296531531222162262049113021677009096288727058489399005111388010783739151512007242458150851348418330178092987904720839397804149077564542182038692240271999886240416609431218400287573252880278685153205925887228887128302977037639120178566837377349315060871554740127929693828608492440959399918178408929497730985745236651085511524283149219791266815316484753438838563368957939212928223573184838245527316926469669332128146910259417424912548302662595339579733990431857703483767034673393821376988521399677242044014791960806761594134160395201394096399650100880108624249699438592544839680657798976982516765900365809423012505141679799950162192541838260878088339077972926648815356502345104667775513976279114172280731136434701946479613378143515132931697999897919663968438713010949758933296518921529160405422411506360289001879818120497328454448384645005688597945893727280557463659769207088126761140329443647491017395532792910908621340050071233240424956151285410460281197155509641127372678670892205915220153364507011364444254050632280085567197676932011681505067622326548377038906831485195234174696413592528653145752377737232411923708420179828932047296444718570863505848180550134635834003521906706626477199556554051101649533745018635621736638849750444510797197356299058530047959626090918571968336671913009441715586114548231706751668112380005443975495038736958277020477295111395073424162575149832656541909446641279125709388238788832355075952191594152665182184086228554004674545684945767992512517975059596143648669455003536391788172628448394305347119050594465724788651974491063004611212022332142759766104099861607270238963746959679993747569463779729442783069672883125533146459290019001524986457799966212406005948098586050827963134620268423795371127365276171137566896123429101513957325814248260966898398153666175463948293495303266093352111141521642176724163926270452425618724585148585201204881667371586912339108813872194851033014459116569149734438547989010795266187771203708348810694830064308888920329734329024343419771367560801376430509713363815933367854463500472152444918506250568419415472873057623399884537569009931430339904580691845267157302547411447678228005755778954660824608421970482390075794956302205050510809460835302636942508839290518237680867358221462943137854189179769870877089102922538314556235699284954911983543873144760026177046618029892150928416695500446161619038083383836486745002797038908567823034886212779499627341437784261627322841116233214398721453101893533111619005896481321564218769154546702246670246426411095399270483710381250987839007641963514280973948833181902139448068200183074699719839570628651009276420184355946742140558820708498516914261781820372267052252327598294489620663067536497654534060399426369956918577677734426708390341384507202578879317242730999941281181959262220767650633412874394516842543072794882390272166276379337532490533454163517049203868935549064156010601086317691369082450222343688917978997156459818501857437848837629795322404250738965698178420839865847381016370778254219086548382059893715192910772785003837588789940080692646090973014313665732874647996261443560036752708808119680225756545250379142721899547264872906591929316222297568185813348415014342904635548031569626510056295043374325760624748180546464309966562598343352239325396056041601276337102175173330589225775671307150155339418170892368164381488090196834976644180876908151820188403916764307541642589041885644434696765754007109454054172864198324374918151831977592361108580068466609247065405489342499909050357540394072083668262744951304777545774781384640501713006092438818146797581606524246934699509741626142981110101213931717333469966303725979669571854665895650857176906601039439239329869830047550331323251458056197422508820888964628799651490086322430862110030509325013334112935904220812309097827585765247713796804575467958775823911642230684316295130708403174346124112113337907205868041327437732628551696092522823164351514469775892767419277293504113675627218471092863137460133822419015582960368404730604135970524498121275749438059413981684147061065068792380355794120990157734362277361519463416352557799812743687693197166727569466746220485876548640083143581370742480567610145290170188010369273328026680803789994760127955770312472321853731847350032190014799424298469850031955084542464647156729258827522501767456009565124394659536308599194926460559302012595747086616830511109001086201272807790559422852812629305638217466016573627332368077429791419002446190860675787962003094484518726213093367134511628007384856238917859382167161196194910085197898914665880173541762826615341677812724962753607867042532810227442672995747363944027936316811282700182497047792073415298329723821756033010673131741142590128230985378665086193120444412260632522808840968762198121737596340654257912533214295405581732865580085374734120550755358652017626673822277551599719537631339505249567717116482277953229580284085398447493368494506914003742072295601837191957249776140478467068693256415777176565151932378201579862752309578157776515669492251035948464727357749091365533371965718302964705831332071129773655623356174190176266422999645967383498328971363988789660687812200124271285698428120679814275870054962526814069766583127808359136159784385595731216693137091098653337021393514710859761355611924261973223910076110723299061441283596747949893521441729743187970196424382322902210015373818146877406741790515935377823616614061071068505313056450532128747748427752096124830906670070273414345339429172128643223256123918676862764447153414757467150233097808405697699194558777386062292241708094757008344789588870258728947460190239188335801360332284027697533366856494436875812776131578388631560969993593974149684674434279759670055952639120514053362645790996482960256362625686784661264431192371779830076493286678261535359905783764116625610564310574316801839402895424803087718113925207814803741560227443931383688843970307572496937857848092162119227110057768151738555605236416492651597197890327221659409206950938116060582927670134868343162899810341323032084063161292354770714168198896125054241300955743878034211616574070224860786607603245394132697315882863592274796883710335678483545346144282166767232935836271330324702434822284248843045379426866637722077544395794226083017808820705831826036640550749319446312039130678202855388081483949715018954055138284535699640979486456191712383967357385677999076269669482931553754720042120842372968029629285166955183732880633603630279353716251205664955918083153360377461530553691382215712084080177989832864489363963503595396522866246889963806089478304271042861694650956964444338600570256438895616577021390581295317874189757473872707950588034736043308750479933493515370817487939391876240310067716536197976335886648930636288468898121675645925844473270690883102012072496959168260564502327400342781901874442526675407534035510198733420538481537567235889824008764475979109440637557415411968701875008749589796149288867441435014445540150807643899973462251680019832087143511635474712107646917440407514431594682424442840586185920756470820636302477488058303000801836855114967633392084082355228065837901853255547573281174309812260940550676936894164659563413609751037295622532690395483140271733605605101534388876132776814908131007949598356677030803190319396773815671323611591041108714451815979835959935278338284310232704840188415396200822885323700475273106807435971214175416071046756014960711666207361665175048992357920674132359900594414661647036155876122125233119012992679266057344046804256562160669686290363406267057649072612409732466616573624509819230702686733314279085385492251244865488583757178545318128177650171893059264998016254525315283041179039503332431406002238506661900148567462032794167785625589588081196806694432569669857059714657586025845849798906646379534861496349048934213202880811289903153243580163933192164015330746721786167317129891818748538030633727334830044919691587029676227703158277542764773287609086824948939679199948965600958033493597852387621845962610901710258148267577024871943292518782962057737986453251882161207110383946718826434834721805578784993720651123415228378434128445460229670683080545802640426840106417838828164416601833592901116382407276800069063598972086168583925179241592786532158096853588839342164405722665132106281765138670490153273278291782501502472997330526123760304946159789128398464433819316368697062816675810232782796419871904674022472919967055181696060630455251999321765505966066723745665710134025409047960532384085223966797564695874418622055880619262937967544349547149999366918306524835648749616700797777681463501495165582754854417766672301602661355548656206460710813335603495278463833009423447626481258330308743340419890639826874600450718097965426951913360606258072653357140995845503572187317165557488576311908722876026557712818423286938972874004300067067995853389656408291082018940846570427113992392455825885703799800231462066738221825620334473562851640913624381238814821477036100919950936870265768077049262057961081007927035497178069060486280781581499536725312836826547968650397898543097718167279308160520285323189048521367595644875006518400790705865301776654977790395618034380259165547048568493599535108986006127398119640626669131294299488436449617805174342883162908531320402031273386617200046298147838487785982038113914582838973956631370151654564680286518372567461817991173892568271999572323852034527983695572275112625979547103702447461164719859542028580650805203423793584345650627576964872645610060242651465618501330593674923582322689032008448331564211073331432842750466958923640407825765725263207025759540153459946051308182001171147173782089649406428787885814581801725480160693582341124999039117138617950142577088540966245323388077507893413461106470832968965316989311934839791415752309398283511105786635124471776321149750955420504426745196171952684068516001023292194074884381627398243072520296613806656813297997659096791674048468862800265433441524949093067073247585431674164767340147808800403441815997272320936698802742424310050181714357898975745015564865193106504317757218068056652959770056603037323585387911410002438952364950479955044789282664003329451554522040872006354813024797046550179298699876601746658355213888829210458990953488804318700466034462217721123664567050452863177985936578400634101202935616159704905746240779888817616968023209690490600660194146406113141350960407908135192596146452293213660556575245404731013896774147934594241828416553581652351539239542067284278612132297269868982693657551851560475704363730771020276586179745387567979004455636163845156153842281336728070302507147810296760513862029570241340017525766081735156694485966020011419284897901104989752837711675443543485313641830195224391465805298894697825587516490889373687383140208664147649142197317468128503015992116496399112413372351820851737872657460738008094274535137462538886267015623115639823650856999522154261067344807430522165528318260737260585277276912915485514872024591999936770208635713374767998967153556330091299202530054227596149094538453360095019975732630851021125141573524334851221001023030701980121629125609796667232281706414375734126399630723398592837609368276469439946143882391501119252433996017533232010383642436026244164065848585038072948934861473045726701452685914558632073038915063700585369215052105663909654453480668969353264921295055184024422662354928868010054612108720070210318395058115028332933243632140136168916295271519905706728908800082214728195531955608560765663091738830334277688777215554813103147878569589459813391040173569090555392882331057713063914179799242272953651037212480544596509378435153479941854333948901080669710313779152103968264287105329249244388982639886193825848831827471730552340328132846674392552789570081396972733397246371092040520280497939296171291052661500382368883217950149455657128622204597571492550277450854034204394648003462789745900854144790991166781486300338228895393444602696769041785196817618866040094485602968922486372644598324062812335546966016306326349849189493736184165573591236437028834138093003671850517394934688204855287682034269292139151465211970889992738496638969736407229941088307610500711793317437235811521230172009969784796996954100410117715266624187811204129169238917715519176922633852150696383636216004249112790105788400073281925489183448354028504815492573012535394499464408478581894320109714102995354713557573291012757681018708539930582684297335501257818117960045028235085944228261996198338244761155093331118846004685146476119740255774543067223466061500262236335596328665822938587293764451520977331625065729688744836628650886361813697636544082563773291610643631315560983376006804279508498913312255284018919114501097576463707097500172405998894031152752258458825770393570071695626030184790311406776412261453801537610992748262686495418245133979590804173634887378800832921397954701808287224125024436225643112155205905880428520939238686200516113044708038888622392448413922624218307982852409429411152164224904569807121521982739442403893722745348961855821291223045812720640452676095088701775132013561741954093147330912544593685924012779288792825737121310632300817450415996055195954762964357676464449143209572237895811442367844455826233232928155818222458222418061721335108657720788225067209759785563833275549629932837073170840130229866541702242333415576980856860353704751196717306365837473995051094206795361926842071965307395066582631448835872020522014078466185254425069928802318860048436349667243643309669159571321077996463012351569224371480573066097216255298421542546994887523969291196552193858775230095871349895675123468099570570464716416227961677606972773755256448610919981486668492910847264809594376052701650308105834927657478347351703859036098105713326992915208626154687798381315896299703512468089897026494567236598103353605437180356062652069976792004074682512647166662336239935950982874054427249228360124374200908398256807198735556543717608696412808374833102927225290124364786529041386337673581267513209928521059526531180840979843530837999149274645713383484039616283839198110162423155132685374389372642004881431251411659203374809122809720768902002765634562385973806016484314794738292961144396328188942605350849718616310837569064426978866291744234963053706901161597343471104339067366233887034071002145787607156634853110359606845438761578268582869561199642194174538209776440044924919292392516035184421159033595436078414993374097286357261086745742787798894892078029673910163645098658380473106507243536198696836537876057108506840363216368442041538869347161753947823260895319767920724215238998648356789643231065033612764468532568397162755552488727713629867915811892569287399566772501940271512798391955924508461020785362898884377151855617516319646511631705121535132703920649800028854583842952958654918387331023063379171707315887799038434538119746446048833315215498779386451589006618914617149075563418715167728656647683215343182058705556562438490961804088837986285948527947727415211499152406581250120803977449851326510286180018231613369088415327271111919955505084704383291786929321511320745934987768689760842534125789867453690326217520786601799151186429135906275241058655194455462956120034819118150630026375564939056929143228805118606631220048885180190947653673616513245064697818608572070703859089913410251321635056530255233883265175025611693008272284148331411186700315391445471560699617081618868182958534294792321250244361867536350264437772372179420433222527746343705404288586702240097217780424934644225421166930049104516075999103147325590400510799072577576469477947094155385168060372465455515779770389557416329488551680058776922796678837903914380830310613868810630501139288479674935613272573327541026104531993406127679606992459288179811903956353811228844471312085168979457428482541644232600217070319833969909020426577431564697575279631941994540405009297389624523517892835572833102396366920107223119635925353458870081843956130616877148558600765803437678811671345636480387994534158586219946724687858758071236479705775778579000914010965796855192916708143375965593813922364852561195989467291854114359018576315957278653655448603585108646601919500076415309500634701267206576570434665714492328769221775380546396357277836779945729039418699318590514505489979311808267782654106940001183678536675060891677302913872312748471259199053538372038545326132324856590170871967481391060380595584787884555638735989044510314965609233767131238188881137693659931499636710073735877656211480081780429829007637345388709896583358001769105438731214689276881393803241502970741118730161129821108798159225129661015119216532460496066887290821289978071947467199937527080357343565334219629764185319019201696191244476461505382029975568255134791776846379933193056733954820488232845917428963246470204262613159906840988875815616337072899712233569399727351902109375633526164518921003903627769080620411348549097914828287503599358784938607941235387547424620869606814938519606091420305246370243521909133732225695660827189044079129298593440052777133288020088875714411454986470562109927643495824616725961475111153866384183236141499883158526164786179585836709707250808148518218271003722187187266039648047861495944678946108271761262708149406047311208996522046826745906617727266094146402053628325582216579637129844783091657435199031522559357909198886712142325009686024141846604818529154786342871015169777824383333810898152155847675712349258652745431017563234378399248089617969825453433381597326806498028534469622601246270345654002487693635429136567660230114151430042783964109030107672657978507688133020312137295455741015139856472913696643644185465571649895899528295394573368806278080912012782954050703433960722889807607267198492343788594237457252221734892842230718306695471026892970641897714492682342014802115678055513668848656785615365198839283050401183444329814806143704968538379543876674963119302489307881255116252487439826416559913520975951702489698409072151432688043123525286126950934642850681108114265109040951613243929020280555282970163811873214975395750503751700746104713447083927501020953875891658855891020554696425249003821570616484149949161102492020161317748632489458181625856290417279768941182819168108174901464732696000528740709602085831820712755318124128273018247529510788341609595499614475471435832076679640468290881670357542387635620158604171319639247279826005869867602899866065682924643093020736836182907297322890034558196015316148138316434955618556092415320334966336528963305329714570736395595041257045967566866869587902886084074746524854355946598878595519398888933331977994433367278641588659477639398824022581829932327394479581929613548419981970549894199762910392423656803460242799484315957175261040030427956452821283049079493618016119546360503401952641146893926275851948184064225420338464339033046704266924678003386724843693056387533211400554207479279081761675473479870945270944786677867279313710070657185666743877781358169805595762418313494906039742354660078748414106619071933335975299274189710311161856370776270336117106974716183818689583743068608086260535197960607551956311625366907660016990262509304352459121076861827983350108113290012081123428532264740269390894917412108260214143875973630719953954517867469726486660496482348929884392764873959371992974132724601577615019187907708878392766732328891473204108306187701737115660079741070896593915321413968406887671206529186222112598917736976778263011917476491018026406257604726884507449477777789734980290667303925630829021933535084151896656162412566287809967037092413760980421241202091976807599131648730691053899716207814871092144246610086253422136768608276462860047755102961339332835974165526957418431862375292057236729989406262336964765318675213001070879071103625637943589825571570372600546647261905432620165531672724418446993137177485879516625760788810682554697206696045241679150040984063164899230804362168465254600971858292623409494188990432285360656170486137460653183017460681361659692737424094495303309705223446221565752919574023087280662423924231388939276027625927611679059770683765734486053342754264827942451329429936254428717396857627098057304027185584647861821175447293207191271013677272079216877050942362233076663517169785848158277292572063697804504992401103072422203163313545749531367782935342849517640296373069588050101833421340636211324980622602566602823976806868166873949484442127066168482086525994859339622522518226025167038772894253038126699478470593262602044472834609641041412003525555111961335917610844417842360392192079423058450559550760137136481586270731359709465212463425824336237139498764980815636971439966447901679717711057446347803812764351867871678812371138993448763155880388769470804539517916447759377656247905141105887790560876581236437347001930395777773804050900062861495391804819413245213434154829871009471771963224350917923883175902579829411265765998766369188604941556059569430022755017645443528710863785772975427829590890389443626583364974059511364083465190642309905128854769396791683787494876934414812904563921868646738883337023576733577422335597626933112566445637907588309650802732897202134684937902577813446244105757235211519493869948820974646145020405709521467775611489555117893892298397469132522855177166391351003514205106859027255255071534772729411926537896127180595775672186328755642146006286473408638446656795820877775765971164573281609579326012319460568482855201740109880746128522802231530981595813693661242021643387093527250607351287738631005004613303720200223424256415976381480609512836608628335070057112461593167172502582779024674658338580528316259780811888568566730556156444879581339540758208769374598327850107881396075864279069142863381432562721848207721296352144119534760842135960158088995575072920891729992718898029569025817073483792395729818890479424660170821486887139927989276731253581071808089284672978475099265446289251831492655887916818201512458372843847946739167904681088699976067814794401829967268567217504411270300842186221571642494257531004290946013228705954609548716350989155778518851120003953534787751953600724121324650717270491196619542012719087308025438460549739778334691038353085224461395566901249690432603574746843220218061420027568392746603164321493295926613498795330422450816190751294130580107899707385038307056860132375868167361702303403333752575106229043722428981959506586963296811641360173521848114293535711161308399445808253973633499231781612772820810467073686373539097244578401952354253049983954543989298079832678921044161248792397270395262470626410162462882483976691558714861292827205403733423191194516445214997866051629634475928174532879699911901527513303852395414679460882884799778520256404260076452726856282548028465337754810043718392095249561900475801707437676577996651987198557966145794899351145915019711449706484975116964880427090062434995033289677388167966049551291294942931934074479548767814213064820324378560335221460677995937076228842442170121040639980534616805864977096548817995465779062857005363792943085256079372598102151984717205061092078009394115787145974208387492962660431692233950418359315666197511031420955291884523124728929791504909579993366623032348632749048504527952500246262779392825112653804187401666844284671949813584319095972418789456539266748522339366727237923959018629455565235186691807882785245849152205580279835657909763388126449141649401414928254545564979542772893808103993453879780181964432987446824667615521887706360704675252402137897421850252400670289880994341279810656860966457813555592312550873036682734080196807859950764045719816205379643733888828583631347021141867965053191416408472145500283051559101019830374860138501444204237249073221141739091886994052221282646177480471516490356981255596583325617135934769828875318764450581570820545755048442362620790188451091612960012098829308716918184110259894335968287980333226933744859158900478037510643301318014310053293402865561194074086498129778312101560870440050044474505092184845722606686634121341469221551883775530416686484031560059729966122478881698782072977277316979903423107501449739153287643749593339451592279556773987345545648686412460037285659212996590919189159847987557712535520732105190534807790617650740329241444678957500230159868970882596096316790068011253030657754700523422219320377330014613039230593034614024424827107523519464108083775442243781145537892930003164761638798764451804982021201862469818632929315148257209779566958928028605595622383734498449499200172111904950488341099357129667310578827491389422812892165606896587699959190577372414081310940864087157775379318897497653846676881165188403523917914682740162844207352844541700554411851721823483357995632296079290782161578700201377183830313899697065206221030712311512585411613672588291231378338564411969905503895437147349880339572359164700320945516970595679158851271082936805358639984151805026858626423027266328779890397933828862018061625969587233426080212787960591354233026520577961868061808959748290003027106466086165267449748293913965399033485060114367558465978838072969898987005540567549929004316065076981245614151544909904058875036941584659342281107920304682578481325707332408967536757997816809848218583308769386104959044322417795517524842022647949890885788455624300961642379481225476441257150444013179518050061913194158094980436086887125470529059487022272892264517357021011077179475773776629203234462746492697324882501876209268757040657814006581261425841233673724321131251033627593096591439768285431163421249734130605853304968897079992178039637367183380519013291231862694928651512866506515481685923119826915557828901164357656081889507251556980852171993915756357756402490653877984712456776351013942389098766055517074797722775346201650721955179595587678658827155650744091437595239212159109398665853630592863589184878414872741806640917044641163609411871422034001307657270117091856970372615411050756149657071997411246406560000626057223066851747064559591950740236963801018369757462213847107255951202145110556041325495679133289088860996443460060491865850044031111445457770289630911693527102145424598199140235072861401976617506025028526995510479921035909008537649982966218101164164425688821758846511470384406918199765993925521401414853695005540477805986241454441294490734553159652269176241663641608764193435117609616961429035979585271907001781754650358784429849903581789264540568472327982243461257228834970364415580147762796716113208666752460591969304566577716914230593514579204411197688880505384170064312776179771127703104997560786447736422834189420735018070247955765806695923849135308222027637245530349612079587442178802116974690018366509630329751182001044668957303210483575055129140486475445079931018905820348129457117477854820736574233971344241024917982590731286211085951243554816427495476273395000950197091580753251775996820711959628637677107281481030360900595815802183829820403392939793027038185434655463322975306626172890709238343456445778611439368297165697316176838743039421197150703365997648145515463876993907706322243577972130385750369278285713516956667376728134261519938651569462385014977517736131501368133460277723622825904762189837670538822649810108053009403619500002416175951186834452776326751471876444156451921673349545782920413146293117864076427136275149545718595265916325267865558552535780694080657972607252457945781456197401613976582044160674655869478585568864300981085133708828982024522671525750921684470628983859555445070104629014356711732987912984951811607177083566318401011204222767450027370534942012272951516173347114701196956067459860517729219280453903574974516217887794964300158911862079047775679648049995655271638369278138439765689735219432336114056572785587992420367470736768191705694376264819459506405119757442984939375775571908292242337775135972957723456764634322231923001739036004437117699663975778349159292150666307978792955887087872376758865955038753935471327222464388616115814842392885640484093345286321617963142621701805054336950537811670308418724426674554001611176505882203865112530924437841826289718761423341159442306503560257762402722658166612299725318760054620094024335104904739020896088945228173273010359192772038735812855846344156912121222824035179354258091557978845256240501042659680181319573476252709882492302832013344791021317062047281050530920202832906295246883964246201108384632619927454209929615410045222247814107660022703308024926394913083102546570987578818894537872481799418806580621071178013562004704113720570516934357140558061158568547306854974116993463234654300962193620372334853972271901361693499102485740838903237972233010455032456183316477431827739347146107843353287261713203769013600900822736389706983513156110228094234151146046488390300272509645647317693445694603359915656184476702575836848308920559337793833438079133608913218954141114920548284680923063851591045562917968891354451477077209795220922734577019682229516283142236952514418590872947778367134215538443966862700101606035614809456807806076646454393046627076341104249029744322368509709973678237601555070180381939648941078676242694886004345859298078414444346634671003177836703533272031443738952158417161925002266035970972928407040604797410193976350936753192832897609660499375335665016488513842001436574200289253062494557327409619821524443274238552314692231528331646332472214418376371752098005007190252868170885875039355928351971760540531660981714396535873667347556552944213373166152590158518593944756316742516405385744264334110568355884273116833421270282438923645553362967015532195768200148583871002082477462467987991495960016512280474268598116528091020079030357474154395093289361716915953509690891961844460215165706857539511160046230480537420764439128619780987526787204325097024946761812726083723248686443782320928468977179828123701976718156268908029219177230651061152788660359975039911578555216235524799231342245824307356333569511614669342574134534625937288882999945660852743485776012551239923864559380864949630485903289581438206483091305232625495916736303874150486825931022666222310871340679797131903944270481108395335242869746409605739747746068902135149998627222763675293396222577417113925871585474886024214988900834752243177772799409448348735216950734560188919803003768133479906982013599244982139650666519216284611346691888594719999437981270991127769393424904139364261896393831963536522573369111398058137839518166830222472803793698508692170871918582068698361803984709593903825694371458760361056477473818780936371924799455161108873315156000476103923222666018108060841986778390887108992841969075116785899841906180674611734701107925241660051056241313110838944742105478747734269949047102453835778053263852131769785779925005578374474189529676485523235988742753644728833407725327182219041061283846897297570866636454194361868366246708228625223519998967991136539055747336386981217094935244786660990355905026166700009645725993576742023062452958136582691882615363654812142035957877931036949795447579996710217196368449909770364368367726441800513512389059827211866884649035327106147336493757635414863753909915144605232148319600384591511455620558932584776202287338039871376563228626088791137977253278001348636016681344294643251327793198061337067169719637617467943547318938500518190346192533633866014508445632742513197078895775524064868830619395357473849067779265172873184451412842462901464130582479596352052397835170545018938711640933352414472083996555695984715624597871555499985036882379525357146563744794946765691923934118719649565346997511246332792980604483655273291429431861119347956353253281824579485762651649158289061626366286995307565938213968811248953468222294997125481099869382184684391393247579194019632158426928385470861452141312981398050761600254967405688217004536366739966625959546924305518368983015340191598423177976616696625274798321465615935423457174492024552335560307829481371598426178394893212310747135203464166707123860180319927252015399024817450255417096647014826681006409508966904794734925997106893923642074431625380109629920413443378205320768453832594628596512401381520803671302071781858052566147238429221193961626716830843660271646835640613543704622180030331282537744801207998872078416906546359327405164357960504948122717215426431851187885794960370930960760468521907909791704306123015260014111698737912503161152536639295013972844669085207434482860544589246878544813727007514699428614798483248288903955626523457500093858068835394996647855125659011888109123771781888241415594787374971913041823399869674496289526990338737367913547630204086729819113342668981072878243186272246701904159829573755363194195079027056084700157310583728462392962077117165982710925445811187383878886690196772709040035759696963333243990863725615363449704993472056760225806524288468648156395906926433186328152491488542853894240527991877027984745795404962255133906926228852534953896948189930554596010914104649185303712551020324719403189237405873704377878929869989065189548777294350383352929759904113544775503900503513047607184803753783390315259070899806335243820063873976598803473265469820622786961120906742829541537382116101205095767522065698165533710788694497556487201196804362296600578077421427531865084671928238514516219616629277156742459774725131825598266056559580109113126438639233756537557964165505953930014356256161775165291601331925758237770070335229155907110385253432934469192033700920273134667510292683871766467298194404440032718620695836346832256844920067770002106361392429190423474427773069402093551824180554630740374205713989633690592401278160711054735037652259104482611071889557114429619030889834513769773277922559771611813927594925729041892199653664717377223203007686584535970152546096807835399630069150457009159400201842380718818530584266681282791002486323223631286554411300172525741143082146590075802008996425394788390809716980062498909544040392756477296251923880768270657088421689363482204074200071633446477645345937561150331152538797677915256820373967109749948604196401858042476366929392985750278768835660491839510395886502810404269524569252609754170636019253923393372885465185326050595284362035370855511661037842890325310434271028150577571608317791482223532191023114684500077361935143911791239803698053886319304282785583712667532931104205681025484876514435196243555892458399559979680324094492203309708740298922834600456278871289069214053029860868902450084691791656998599199194824088224153988371113513480098671404666156340754630957133114250481055774907887789300059063804422619731953329327699963048744150716302985639296998655125834120079955036596554470243312033261952725196844127955680170341979406677488418532974073946855553483902677831188273778848177438817633218350086230973598403048621281549470244500190810713080499067413939844190986545035644521867949008536800759156959043768264496395225610183548360768819880577735991839421024514274830336517403166701912965406942808809647848617665394751754606691056871049110935067450325467448044439122937424940949467027718290708905439824907527365177641941371228236034810646021349938764860725649756268983748679806700276088742939677981431857059081764073498625767214558140489051858823333679465651844990995937294901253501524830986137123385849765560500458363748801426594660047359464636310988226756051451129078162247220822883406266263597242537357645481528412593100427197974842186384326536427640661224673703018980602235031683848063860694270029312826875529172511417371597074474656898109102655815959721218969218289991284386557654742948009559702562258471671015194144122112263322170140162045072886081386689928434102179862807295982955102940750419713047607080744049052999980659758826124731707923733749877293542152784610425302951645885766156645295035983811221851421532211281001171833744093150406368542900353928209771622491252065387025956052712558936238257340154614622349543225629818371713522462246914118629356326943211286649683997460120265986460926623071600660447626002663628955509557635807225608741850788291922012432873099628197864835139966390510652769693627536107275579380656846078235702986096535046585378632885073433724503343907126223395638919162044625306508572965306141015359568619338381037613222490329197572836725723453352574191629067633093847383857185835358894038932072197565375967161626843637028407783777785561609277775504859155350023780428362883892064930892653052362743575712156898625573363850153059379584802196651749296051652133965403327367486261161669163295105106960495931859874165976346486198210224453809722961219284065479026268124005427405068707579601140077050774206158025112349754238779001694865084207595158568266860980422159990687012357740764381649036151425274364753321099632226690579895373425732920836575169807448662285600781113930516260758894497627742203490316226299506624830561776783927189928807794239440711699508743979320385756577673334320155980777824696669767342971824490586371461263636215778888699334537017228729507410324324476723221158485405525332268338059311783740195196213665850471779554834086952897577417495796852632162836040623555331151043370878268220652939131167777607085609998928550308330090972821204040765643511688734998988831604377803812139600133543957867873212221545004191644631170179712463559135448513431527836651398010899511857468211114829108196773880479251573526333452399347306796487997983548406345720494037163059212427386627183189588014487212377229859510990441459724569803563972493407710325870206955508468040391803101573563727973949138017892007254395587406341618200436999066867529595895419727947147428030441398851997091048368662009533823635190301037884247296807604566230884803087670470731230721374995838709787838575956327640480484675486128333429301176759959507563382104469466047183133404717659822913379187450270853890457668482288457260430424774836565028228669563374833809423199106777343095799765450605781864130935882139682452779649310477106534293410142810451372217635155551694760631427736282941466612297911598044032346192972657399992573079706440852605410770262517624584166808393431910176297776097758576500815359582428003164627934018555719374758502695565731140006541734922284539759630326629331445729714108458712978981680711080612544214058491956671942255351617818438118887504662005450376542419563996192822534804193568377700422878186774599438673597325737103114709557450123833075942131917963701713981082018157486062486278217026068555363438794523495492060931784239705285360088027472111280149702342830468129487542464524222970269656357259200677875899287704084089577747292772277841440891919115092690685266569440616266753163711823309046784540001478629306784701155031046664903047472766400097221514599961389768443152451485338051308219313613386115868340392884951103248714677886495309292783661591966821381768438690817995516945869629081581173982535237751128634058124561442087745289190869082829479678669510267066124948298147383783260495360908849312405577043823136836772323132489732778667931884938029863439524085651864031688578664330603231809803680683688424245129073423116732779111302866993423515986076986069008702345964404584100584696759339182864333755847798663328106661211586869987341966046938856541072627829244965209065774377043352856030259444647277255299688672729558908694725339633822056912773900024489572518658496472672810243103567071377310794384196784080338271920783061166060548595455831307259586522118933250542135525462973770092454228353493238731145985056564986569909941646594221132613641094379789338978237958361734451702504539386201607239353086384918948126001789119165869536455140680295485263076217680830128537287137339550103800725234203654871357292373186315366407061241647952585395426566836649114721407437932494170655043789077888439555741251887389199173997577555924739388703767623905468506627796911749117988314769205126021418312154153174401826680317147784233357020637345147877743547085250806808895719324120886709820465473012519431893137089942407482428692885083128644418650580665968461974552239728189283548548902574022810477626912988494129966614191652689691542611968764096637271716233567790351294310078323791309513506342303633900493136458138829749950483150573851401150951754202760233070252598094406743848895151144150340011289534338879088379067137806034087518333353745757388369183244082980858953351793604025364987442407260941992284754176047752797500961141611421160839259179508986819426882079985905182265658327772098543577446890304800730250295706958993164745113013224071614665238823459634010150251138288841045345804882329263949733303935209881305492322819846000430074891492524126273054629178761000254225121088808831279154991024644372740842826463165118906069691008764655867386635340753552460296335800431878547996377560786356984622150884775334990491104076770673128007480207420940945167378859028542762578348448267533908527525212631596317800391545118046586207033186092000015246778162826159680796413570702661967784578238889319416410470658282493854164122866010810052600566910348260567488430776348604333721804384753851265420443416853020996314511066930770079926709106592845573881864083903616713842244968802958008697661843555377892878008369717700223024854004193892166839084393563789034589214884587225363186758247330445623214156609962109775453551483466943244100218549743326449430081995525597468414945328732076812609163601113982501691314623095821760541866102969104561553225903249921709815740202801498448909883648980396306993646547690858836896573155162467692344885062592818777277206902810547805514736644426894154637025130085057736012830647159979845135039064381551727290802466265619811666199132929296363853372574050309770096170833537531952633723269561873577267250391994693369612521608540124181239798315380621068049663791728130029918910474620201703796127060101090838309770611924025849819631791654336949101018590789879159275698315778248088214022168804078921066144218926362024656501765291685531806956529856029107714046562645925283145641148555389934882781313772337025204125548584748964833333773466107041418167969855384425722728488231298852162763089084544651810849270091777595922792844932332139525384033087558802592998313309693355839118174066557500382767924353899083726713270477138302569229574559382287629393967443240141377480895368478282270134551594939344145396797550154872548299093590967217403529523153734903510919059119544960868765295951001612697576205927161463117554913288385359617047851331837312147328130194619025447499667649214272296421328016279832895153753167206742983139933210583089252624744127464474408246025631946244400069046177511687620029452128967381438824556391456285280977163885963655476165976281249969450139956984709612458316596806818136796098477054081963908801571648389562861629680444329045964686043594729945720595884427103999442523105775487011893450181769936540604626919439623475694058765037221662196801109607136441839087781429129857110501872714679979510885499216478517562958855247819537082053332302339909359569401393568724136536987676394990061752088342905487525280244052742568237750838480336500227784577187456838918689521777417288860229579805399020005898566335841000315441659625197472735741490658808660713517747683941146967349942138642034597886596350564086197614260404004084509259832926068584598316318408250318628027908944291467557449920349282459221111138729819719180437332107393115780559419161077960236849253012308649195758217482761161844922044994449852730615919754491837698079565142275877729615485059328802759633623026744217081640457510506653993041773090714422937374561455615334156105863919015243068039448620318280341463855978967001435581067903172189270223650375095936873793676695241421259584169441743047606735803507999699252165042873189425945727552551968894915168494601930741226167339873812559372924668602262257061595366651657959832061583565286313486462581149111522874038979530844419912651136870889980680413748632071779838019025459864511940505513884405239601702005545334753627311473530853083184177483690072657242267298962431893323904401812415251490193418785541372804055412424591895280601041721105580580666519782447521139451063233005150590188422068078902343759640275991407176927690424101493799447505395772517919667561105356256387888354614738703466930917743462229591998688982670240655822988897147501292409346726911227725848874179138024280945173590001592993369657662303803630218029808374673014059548780068678877174220841590332653780242959839782831061191490901847331335422708688992075793130994232978728025825185574420203707526646377012416538879068342287592645435080076125241263133951860568798482731529865746024560041074050487181619319891307026683107850251197437328848459769363780850294457396776409733144967348978468421167050734363764860989889597955708531998547395223631261818926547330092052561885889323746964850645855185467076834788833959835791357225501584210954224102110909843497751380127466535258850287509176000125637632594467520158464186886765337899875551558579585274148145382221289537752198833003301631007291035164495236742135809297049945125845371309775934560175484197606514896209506205159908816104049690159519980989566002603122807665191116808910594114181498267193639381223064840237029820294294577897659659467011632726498479585897917820775987216066544579915714459156599486924511141825203810321142138784633013322548742197254576043613598505504690044987064393767334336177851003362802988865119037007215253185933196923374765932856442113440856124909071075754739681199570638030276682453717674714619579991532355153382302725063519804369134336382869294814056417133525188321058168624900759330269287018605308001211845914485491089746199982313575042454908994792587613093922909459014044470891835687113297322248252721315559777794826586489060026217350996176761252945898744207615553373432766308879870307939771866394776151760202818073969246702510718577148808709103453028076460551529284515516628340417476893903766477710367455724178713470367151720953461656883297609310491676303368117754688331416740404627926909779495234349683938707479790154524296629896425882283638803583326563846115368029156116490900860713375635817815572785999131069226705788012073460426072062253656459246832878577951027223129995234188061074785984397676958897013127635594592627939514743985080652306597645516412937614871528663685714450149342168914282065944349011749914906494744211882978420448915919514217739408102870286237559350781096274158295093110714582348933504909980743769530265896198288920090897711035428335665644199495920864646492894107420479157576249077511969823987267309960253474698482937476644063018348721379749613146080182567569134306602871526517759424265946610644555607895258381608065385560638439134064769631445833300786812184064142623862435385140102290198933536208718671024266240596776111305895388252854217336113794656296598364217965399547579971737552863554872275274054356677199838816636330537608253160554915173598330254488733255521292600276507174224106058353820133384983638991206912353672591097309057575577715510052992150097650976964611682428621459980762968465668975084639417610419860319043700866742907658984929571576286153245256977705884718027683853685193512127952974702285409070460758103177859801375504257092261247552414392579932979942756587973886039981291832330616252425263358496094150897317470116717663048770444363623760072436810944191721083148185922024810396540735006974996698654844432403723456089644230251524874493589645359358530390908074491808209647595528887375661201753948032317196297006072630966082888802688040855845919430928583686003235297148097174845941258260983429912578484889102706733398183098237318510566269089998897223899333452069911559737405815160991410630700228843728818923185368648123870706049567887890950842730647723028793968573027799283200826433896172179076341369026783259312403622198584224513481382145516102494695683272618929294473996785208082578786935323291343044865489960930984820742303811356480051298385850132726347681405690184908223834614112762765034307969636359657138214921847989827123870905297798239909533250713168893655669159333319746920425691355445732907401588688174907514967926202068394992217291725432080845642351398115720932723032936236142322453333231105613772222468527145798588361456769077220702938204658620716054738616064200144212478402734377254466281097956070857138095419270719393435049147181603044450233050335202620447409861684657125998508457404350150174317760102972241688761994585834078019130127268255619901017225781437255830428270750391723688267462028946580685610032910695017858192745372322379137130812799430076860697965280702028793693829698855485616370901309103789177850997355846964462711075680748680873009130571004002769736579684280483391035862177539042237215450983247079231730613351098852405197131898313146759629410483123842142880444564505541782237491217760406314057681422389534081091369219664032288882595445847815084856358886802646600257429985544567113092523997772275971639853901864798524857231423946357348031913537669549102983526500331725097562121347422551874434373083329741730616071653177217617509344909203147723744585700252746983078496589016299964520301892601106145779479359942312127103739301671358440122848538183650349118925393010826099471183988473787410679069264718454864458175717026593956602971526717931653232428113494501873055530206717017900177538309873115226478800541028475767316602962013584162228480722628169284895618142776683361135870599542363504251374044303463590648836164358001019640365793732689062032205134253891765934689823138186629546470034373590086005897766227567658812347071351228100865347717500547395872028392917779960633405139599986831909611925226019058087008610733567771037147402926177066955220469253045293081078185998023313082917621648427888744069070345727614807726324645603216475137316823781628600040728340416041629582403189519421791314971904396838876121711501942228551338618224291116521992463845161284001730526760547588925969987633456103350270726503288770878269054637336049841698661336337479495481055696033515739992808044655041392304050095256755088170234439318245096622161851225691852258202759528909926529232156234460763464114932569936620128579816624102096472521336733264463920244131220381758505362196950933725249516472348755774107307252909754413281035202914194977285138234230891192274116760574549760177106578448179388822766045408007156767319524465252560114816467932178592327378189926425429179261946983730839130871028345327798525707383060351422294672595471955182374890671496366819515709883287303675857761906731121086687472831594962103340403408547251482299378449695523635883516559970704736680797414560809676696980343533719092453776148591204231274150801935894478871254211472132112840693889168689460664190844404030922351650071165120738038605809039715487942535959319466105144591521148611444668049471722324142833732768209924176172361162805664998286176622832278562757446068730753845382742111549533957804024295138999539268443357835378738849368692692095335455756826262167480663344266108881614654055741360067758258852762006484716356021295577109800844061614234604771456984015627428513289028290736205784874510117251053226421630603162403455824179412048512180507241109353603423242777866311214410064959113564019587135141643546740826492980180277730998795334565254028518486096854264836384498657582791068541047741953717194000719995570074361324541749141604400730649720319744103354695219986220841125479726091350616828597676377936243142711785698222491748605028136803154937899886605238577471882151879437049965234695160439896343989987650335335119729393901811783817433227502032752693058243941411971148587175168363067380387729764457184109376341907606947103576100287630657569871821995404577598220152804066028434809943144001011197365037324367628794559171171818339553562035605078939539084205191611206323533626804027033111663468418366552310744251499467069268758082599017512914489607274119966016050604808720088940354457083235775909497723296616192585145924502520893738579091636982333015617602801737563531390564567543931733824881796660995915116284751700914478193027739539628210873515769956879714314762072317034212572976684836972889976523014810310374280406183348306037304542585674984403125853667840255986919800653780282969895115686380981277709227003662992366610944372695978691642467145953976621930528105754132797305155812349178755884399048065114072577632248377423077635859766024437992674071324394631130506852251618356187329163246004454340735945674976020308625535731583419477096249290330642443272688525348937463105391007512027703459448688762139945586933636769074780616426429626345822095399921229268295676146237111330853225476126800179912873653492952067768920908764344641314122901368840140809454792264498778830726646095128521737191043455101493547641137731534434451853303495120813934696018964509943658301258717345596115744763829834493199578077592956072736379251033151655083675983996706387423297201364600932551742248630765904449666923384532576924195746540523082700372924105323141007396452183555835754721941402665632144537354047845180735416401451064263548210245497569499579998878533678347554784296581896657783611887162787601984558941761272066392974371620225464706091374931994429566713068415104159841448086353257097848084440713970901590614905434389721639049498147785952668571494158885803944922225694807876613911060543494801695764314101033764785460702904943294333725370140359065695266249746898340923043130007568344150206766022447718446715289408309310423190932211056796641345338023913906243694642736590148650592272820060869629427068945536538070637081414210331211917993559105293394032563017619397743739090281366438260424002387472381388607652848431163450370675188174113081683147320748007789546311689444467966393464858072190871467870358927355399589704828596067756849240676957836135051668031362447724660180425856257896685881322634634490302837145963112155955359377834740695163038279487688972587828129139174017155645092320735741542223920470590074367658941422883631637358831386363366096929326531516902041453046909765558031227717736548183273206768227365888687860635188000425351953776815666075326139322673147050828780233872247082177460023055161921142003548805417471330004122185494898511935586139354759901778409145818269169965078681301776269504570161307086207026001126429421966327771676189566214491443179939860098123338454149368193999377366296185975907562712037531690661131421539374202836085215742633392541747162728690289481333460325594080523994995040545496205149883711599168906038143787874172858613086590029232732065364066886706418325604010013584078395481629832061390526560408777177310308115813373781508660722403974163990318668767858842424146080914918701110678011988155119424534295511554063993414548690899251034642542485505658141098077837257768466001484915215125328186671600326855317782586091010175548722664360059270917093052151107329331347358987929169974078070052819310328615744412624369306091167397158615990856827538874442238025246314075200910369523372636970953548620133899517730137573859088018040419880133024654736576466731186836428991493906195856819217947765645964093425420696749224337614207105789879919696571514447406116588180924110767766506557806162695113501872454968982902184026679474664211743945703387519408804856039527637039413933867263083703687004953096515287372249414340799352281010420261430721446962380848816168049600097736365564223085824097063014595477802704670369752687994766479030060138620111201473965583894028634792143326349820725938951057669912365879921412365692361348466275968027444137772417314830839128393757897811384038455776073481378563580195167318718574327447410668509596154592765095162331394855534472470100742934183266307282595930009159596922643915098897694150227274440231514606950471099556707347496568407614052664181682524996333396397929622894257372032718920061366427060629440136850819895955270385642774299631256855063269465009148016950202388269628098768840333858175120965247789187589850811364238407986156350802781780359529124361729725413174601912301363290958679430323214613447591119054437678745527152285127676505972552444458503838507308633405516870121948789510144915654045440634165721430744104276980648152301177716774436087498341904926782037594630394549614901854085171563928944940988604197718236909346984661973048047643478695121960504788966787399550616604480598476255897147575209878580888885799272564526305511447878792805046168674587945856569858707999466169982201460054288954538376461691488781600189684618147059128871476912766578945073237724080479195002846637793374694041537309491667570858336531449071004400050949631318664927980251895554975530729122798867959322976383961390139919621965824640085107980335866855933659586415989585332872027026925258477360369587681521749186178060567266783548409979661315524923192830673951227071543175988674643076649469234998112109692574200272249991235016653136464954602820357261384175092718850516397142018116855851584726267592670717909868235900212770754245713223953415672983326929896994406855928685733231567908754832937204503962087354754845342536346268320848179541324248812885115694416257570588431945965585073912283133765703365586343820152439467153141305843342826414641925207923320958625176254007117579990155907439799555352600964818669513722224927752273439035595059600355450862721268952997908474461693123304635303739898759500566580270807102533214114283875979561993918852115042140647625651436435990681019392043464353272877808252485495163259824723989291978100219629523080452646824204215545855030276544480213047526289152558252920951598907968596180659661032601330765951002373783763223732805618689598085855661608227647316261339425094298579512622247186876716221644448068959118940112987342637339086588607893575550709588514757703315830428414616175453851611857751202849398958451685244566916932028328666331523274512182769109605632244437487033845736224019438358681523077524884036461811300697913124742002877582765073410956546051840608296868110793505958977638332147852807511080828885013511120859140877213283645690404527649412388602876152805361890041284659377703704615826663609004230994228504315896709488845949311268286847435346153642214397983584700538497471365263798487688385574207706500210784839835837517038844831147914006666594663481689134854652627547879481041463766134915832226644764084863385874562253794352891447397994578209418568934517961437834222281658397460717359071180055402295939095118590331737365387455418642470654180208199644365810762488951650409300916385411162255656876584941182375488352816413580877303132937231016321373270694147756793132715865981102785254022225082460596714453980058763287320662625807083937658116935931884957588991262851904278893473358879989169097309665840099726276890550370363237168835493544727093763132022178909575039658043220970313147227931999587053085788691203928442729391550659366719829854295783736195552641918956678328307722235409062848688728814482223144717960663530598234499107505430248345279490025108786850291506316661101159323665128320527983593861501570669292571467063174480882869118065796595815777160491193654362436462991304672388912186233745069562934233982530491483584935982566245021369559741100150140047411945756055395415743277814535956846356414685668870626656645367443193762919466368124426657978672671331465276579963500998231977822870105771759505150458937212303559621201233278784948825754140243924984467232833408498122037849866939794830644511435153516925381393235023739225251888252676212799879771763433151919400903422032778385475069199576216736661487851194097183336537841693019514509839758979874709944764797111961578213363519460883801528884401154548318524353316956874000236621379663066987181317396490152561578929832734125966001324036567242481288352257886369284098477193803996978342616308369620588115647668083447031571226416288268095124509566437129730146355234757681653545710521766665410547599223959193814573642082776312374884652306615833132685370720828446734967063729315121551650832016151244051406603271615567258193062954238616652177558023690843345492617921469336454358842944913201074256877341871612486234273162772430046426485275441098446279135879223318764158831475898573680847000188864497443145096550647962451174897465471090778429635009257321818066359369820256487434910780619655177129029856786832803513698671187645628920681992971517898524503234560172723414707536301110106727510497534099964980153883025945777441446210387461610786457690370666746945060693440121697942347581501801790731972583320321043042465373538038501030171974161653066141897920701876109400098323863793678381557884010214343537677017969818659438213943349497625419164238053587675366106218560290427562421447392654247300855143238546303961907848830450222758374996260305839648948275523063011467783936874839725858433767933438537080570854262676788776602952162462186291999475117418525903992272714523624880289835164566339541038647537992479268295299224643782522922934931581381275339512059500758158561376315085652800788599597134019400748586542199122789681975044576321092375588354626522768138930401956562296108056551129247214827146192754404106492221019563898274195980557874160699553210549792808576633069877622651413946366654503508372065978866628307179105433421787173066585732331314650884168028513180497212560127587772063536857443013185940932421892190928100278136273968462664047179236821802629276614387388558205158528261151462933158153620912125281723582230390584497196753834200513112024727635010180749403823512032610298051188341061251121711983053877290637136576987187471031896264306931951324270006357218659851647581352240847653338133799915199734692303968914048577059898220406328751972860689447140344373891552350180115553186543538152740017530407607431688992730300199112035552607604463393799190889634584834176092987522831282721596655247641597789639083845430155818856614507980683934945635596000934494360183461032690876492536430651891399102673057466776275733923049634676924675973046910004337850687816076418223610085162457408813713052452476457911444456117207101087148385938187569826976694931393083473225794839608869171630801106337518789002766539277797392634648806777522011894859746135808761122393996196601558833223141918468208122770536541235933706313287383508815898787912029367753137074324557993352380691434722322474802967851279265392019089937731189051240570477351605034571429079512098358061685528628444511835387852190842181339658324464691457404689286642249146111398050748445856804290333157873827467742126217523989416996734640543302016000977326975943094535752911449738550595730204896040538276622769092223284731622787924595095081623236817216079181421867003585092969096873208068684470495811473588324342048659710051620348856061007505201122162133811105812180416308279150287274654947354919608826609288452361829613935047164770537666744215523479793820690745562051813347949295290234085976358111971619002008221150250023398796233021893453772309010819363498466468781468258206505487500338021934702057184094276529948878473877860349097130157800574739455233619163772906559467034554797647620922305075043604310255894988762575089338627786709527549627737306653888390157967386607922613017823451489846987443606261224645057287527252360780854187407878893936995680407197294703857338918593422302329247051516104943871985476567646218665341173478351935935275850156522472476172825858575756639365433057787216278782257230196437516828207025243773835902947414223349707127183227049391169754426358568432579096067045017325480444364666817215221621879470237018372256844913371171111185693881680471549113126691488664704626958531583414647819115034984178850681309467545856807075107635825043663623110104592204026425117639790628696534952445799039230629510297193252189216023722924866739378654073307590493474758423910144189696534729392953653505675124687276144501420204973489115299969346251736552809675377086178393955935061423117290452567908209718686830497671210464072292674252862408178224675053466903326951266276094193988133008779729603994022219834471000398068605239068024109976352638380917565344876905729503465896283898392469109184393452925319574067195382873682445316706944787347709540616582351513909012921926926894594512330209520977302920404736683832768327341144129935491721059614241840627877555198240658420724039488860297710322593463340231991161627345388504219530191215303803821509524796528265377504819342487112232139946777302670149034495375501601172909577091377258029174718936457314180728829403577905830454909209083002485455691900760878259777290203149811626146862912380135183248597708046281465336813213206968405673100682280888043885567797665123266048726211649865362396507794841348701140049301914466469476305478398842338392808230239470952142466048945468746419525461351313177447606805145160892364252399464075504986038671806705916924948892722950633803812881017726637804170813405503663518907355427269919625069860728511603495426385512746744322229260277771501973580464191145483755475880884875658595369958326077133347981676807570080083801898997074341450863840948935142152253955719160725313230727192909251978013134970393733720198576807346942462997651333187835671303409983577272436563213913249820793736859258313909873754520035186896000912433158463442203724167636041140149917755355867671728452450388336664182280279190093042465380091716917710697654555725769105927147048700485735301674343925407395824613652843812298387930198063704195994720802866634097038686281125781279541901171836530407171962435241737658529673990292390190917302651797110014626387754196847020716846869945149765768126650785380003663136466779409627760032654723413376521234689593917150206357207776222201243451966837610643538006996801089146913920702372924824106626032279926357866126714554914695144902125566635550807483633718128314959578327911809231015069762618674616909422055670759204790544028123169103847653782738775153104140424142230534349650494498898448497817881053184718904793472336993317502424219917577951392348463779024285373764668612786231584569807588946039688472717406123542430278793285297421801188575972761830194238369756406477132924920891485632279071350345277861762152565351564352542870288952919071554128907263374379583554520774211825488815418125776173175832959800732294195409045743187110354956192619149488164910823999997884725398340001000792562965310414126369589961914496200828227660173778130466452199813417119886513679841665535658063560411419505274914479761098241626045991276024021091544165748606850228457524218641256838635336782237743926811487483778983741715300630233619515875157739975357727715609717221092475566175340158841161422182340650275540085582854861382292256909922698072281017520151966368680619486531936488186776623576476943923790543319045594860707531584310228042498248119288452152734980358752011377743565006049752524362323003845915566203966317152641769055199783323681413909933123275933111105414191574831023902604465898577870684883661784893529212618841907475774407831798388299444921507358285174447271843300690768887191666003147282295037104336515556428556553071699526936915323910173468668927280851996376796307952044584262936055816232119347211854241447856293395938988759692087065811275523691034519915771591117882617914422196901323420014217771245069275258097785753563455256737950546093084355553944096456810661813907425104594468842595084997452782643051205567561655639096540010094248012105829803356609884488900586878757720151074316514314400140910752175094351843759498127537384077284125626879928796655290272141064187232616054260413641688103884143159446642717809732229822598946439380849069595509169600562021954423672993662507049520974881564334574580963327851356738987885227096695905755990809700839638476612547357716004803715535944471796633577922753353268905362971459470064638969277648459810227457968036870181960789994101472097997721001154663489836034975785011652663149319602043506324359769599299228002842723273925017784421042826261953060697934279087740999084909861699217213411314215878652135465466121110195333466994662554579457997138111567356301970539397746984757322152798493853346454746392568645076620520992531839846998115208007288042404512045166719308216456809668068500030398613379461216607099525139616262570957832510223922489798090126327272403344836741072639582732365925812907792418700961265403375300041002355833378691071317791650941067183641326190185560928968316451748339062011948304894031303831145219502373853726688558877753605934995010432302700491714062281490354658593138108029695912611554161476631867869209090476800502866313922129279247901720104756579868202155775416487313979427759481566905056979855607490859332134302723998244700234210544023330454258455169891319866472727443216152849766158341932422204121409158142301698426386619532788366845704508971704241869578780515047828280233072455434692859702523095279005111294526843482706653956569465635335017801236941715751660206427244642253112590174186604286088551928757449194360967037418759107968370779349672176433775258048490707927706330139776540927574192347938725831637995369693618522415987776885251617349041227152775460202838469579571466001576752569600727330193913117950960367333384679378895562473630323635336133633915885571754879582577392497813725206588721285977312735999778539380094567299564915286112062152912184200380188887258980602238310288878238644527109975854594812696250851217958633007116378778478989454651297676139465220375235518877352052154443295249515889483226837979192909574561521836668294650823451799420303303799984870414647060359972708103584545769536394488605941491727651989385413165546227238783130685022701185145564080155668410870353588872087373327722443146146188503872094682553693676492501142198110081496594176004148745082221904392229248686463619703676778245277975007716396321111721138699755657730865622787251230665824841669002981978816746478951892396905406826028114602109515243795135307100894168263319283534078676360045316952337513480799595497975939463199830713214978795752637305958163499130524410406396667246784718928432442256187364261854504423746441388313558763455386547804073795059542520889576662903914207765090674941784751635305639641826286746420156402924924317135540299805857702654578319703102187934824981598824966241618498731091983073778141836545248898803155181456503043403785661955755726113584659458879963946904666712896378242181600422463310884813115208128096158583882254960284897952798154211896241013343532829887346317491791182635533188190357857763403130291471891506969076725987350317097592655271914314407834123977300780898259146985851765622306329242885496179532776419392135119420882536813344645516768857864758512845051756563281767963002881890641517825777613798343230187082803182157856062938276367777951313222776102734283838426970655003780135977858359161809814986825742364029008595094949359362600647702487890621049380635423925319269606381118338937029161560425208715931507003422836066342226995413191491515720287843514486567612508076874210243701526073492361407436791624237495040924417026202127894154675071594121472734750238861042314385063503427158824277714212798495919119796311086529410259513467645801753056532690228064781171089216053369985796720530338730494223028424310540816679821212283590791583117843807011403756208979017423702109305639676134261551113899968587431557974213673072417607728939969648277352853924603163898564485623545429232728248731576244405453066311772554299072318661557691864611281460852213834126890655508068482129687524379994449744954297630588929537250973351430054163805715750449117286949738048802600154020573505266665927266501305826626111875269479479263985599187244681913924846427715791690246486044719956573730771134266409204951258117769818828586192540196925168182583487326808969564785726732136039520188188302452594831078216845727395876590105132184531571022531655576734023465849677934369303639597406734333561709831553269557853369546443822751619523297770280023124802882335309622165487833268679175642062043126505919094338935497917633994334553785664951399968900994227631774324493059967286851649814793186264617278529694394886929691498259099190030736089618951266605148120183738757816211322053807145111237023240117105690526074651652416492039955084047796258362752313405656765845359730668745549043481598915585748381482228073007203254219736772226675600373923788569549532073923968038803324113514085558752336032960189074805719713566267752022874720292526141908352798511650588667797392173440770027636832025143745232578657940500084088525324665608527368546627630119417624969610249405856008116381952831567983359822312971988739991610232655305818527691853975544818814915955279110589489018502877826048011291903869485723680096305400101213296694134990987236127455562345095890309555449540489567102781776874758069011125015514389146168959949651700788176348267213108182761290342701131793990361479788709218577968470276600710694257101233742047440730918495190840125679384498167946870288678282953435363745477044608598031873454396550553075694458695751486469714784021291152928876798601182956381054222928769897543309081908784106913173026923330925271431824830726314298902904131402519365342910835276835485966016077125216821966139538206059621084402368371231563355766049660251086439850982885160384487316511862607994663249500594382123023795153551091963522998753953959687197146155338534563604175081697944974887189712067470310439892407991002355043201214427064125483095305127304746323897407371595682381409162381072064044135968847409187161268782369022711952012974525468308939362107255605450267435110203674295360175496030336440240137957813473981666342915850625149906281207845046483752701011319884396354756780532250483468426676379221706116792267544744191970559593305769197679446030628303995907136798490453973872111555946169143762497992120304614596113006187060227743731594799619822829454443215709273200814778136033379248600758994710814841457232941194721226829229294858602240311379147450486217044601868170248066542751057692274544907903510925493642502957150855041143882876219323137623762293798438537179514879179330252766842341223347524327388884413675990553326034046127148485386390117205937832331511688446288605512306692414735136773316528981830475740320397124736964047572689391184000618990233790097822824023567360207883879213673605860397900434593190465221164957568546594105330779794000116375785724756471103022722762527063297926713464815881490626644952590680737162135920575518521538950502618039012998304085839398764301755118323010594162733892803135950476076077169839574963326909318386260967261010193716553277053755362078022088168571560088342439220077002552684295853612763384041377529463102819927184696465823483870883234637659678371984217994759274978540861317213100512368696994385462385522948279648894542684116479385683622376828923143684046787769022922012190233719076905256392629928774086521821836158451717827891138031427106529867901343476949884940928190190585276750508378546292678297025468785593563028619865306860022081856762209449711324846997267245490516242338401917564678478266158724392402486226946864768417968253977249963638979402290984401736541182050463775225894835680359722121418328864069112398811318413613505729407294124316728581425076042231529193754146525938820249107697850432244600534830405736136840744804141257292077676769352228007998617402274325366196780690535467492085085393199209849558908743002026322797264503713776913538253050855043881676432532236063939481644031088795365258456782366013529118789146996306868806720174211285974112712313559647888740424014098251571946268964257516159139225953321742739753810310669388907828653134380001231040804984711810966697371454566425925943402932768819338784693427901363312103814326238931398476395032959950041403222542873992940619243182647353580199252437386303379596881458702169856178034741635332052271231878484783674603693530967966934918764548968035288642598813738139323722594195931574499221376414119841563189341560831309708615440861672030871748143966057148769981603581397596061341093420076808075042995911235764727988674844941697763789998248503611162331103140853629187410266631473809228893848578838717702148216142129084287686052509644583531653529102201170258394498720837288601521760244790555337607693224324620564292705952073176750032311063392611646138965222067332601003173258669410025805457582586105473796459712258625132907540691303588674605915595061555151289133646962059578891070748420860825587026197252030507032794217162918677082178651870702406356435521154585865931690391976588922800513433681593680379114607500963702556791184838712958115961342067346453728690709638276410212693146284911376333964252848233100723141853650971259255823358762110831062255784116601428858309863977641863128020611008030306877902686168252416434823937536703872753672483520837134869015483060684474051519859343166285714156177753092336760116510027256875516022344136521629531109962200153085361207360791602698958815600613851616269811121848983711772354534519576487050051637390940859675954168011015913122587324999074795071632838707230052218509813662950431891087574966781445700230774483900659507890956716959519771896825605056808406889367010112413451448966066243977701667968634999184886469355103860937677004758499261856393877637119718378359008884048761124433150598574497377141150943648287181388641274565614964793753006050442486815104809509820364378366832973865833105959448792815311712467822949848769393182805744122941387737860624521979951938965384889292916833807842755580597181971213181011866866763099013681745312755353580671013565944580882878367657537970164282033760249043523580877300865619330143876867127592769069663859733101393458617436570783730431684918429940939656033723958589698209263561532997571700613636142319804694565779460189336067413252839243729729519097772094441287727936329957388325556858014471379128571340914884985878861420544672677564651300668330086304207054236704999119572717247326269264349714773631721101499986943109858551950271033230881951142741742320299089433105391278261228127862123035289723662572424151973646768655181188677252418912306082943108153318199283875133869576339215276670808529596975251931014012373262106247082957298396370680870122540372155779198697372370846484987834844870780358006932033691783254456797910759195648513182022056017880819913707135329609168214736122274512047367867996959982197219339029865962988982325153930397362639656887243018031905468059428372157954578578668443413044038427013009699883900162879826053825054202385210565093996737505410176685130981491378962230505903208919534517049584244520381973001430822961022132173246022031942090484106094797083115970169937908786072811961284190729050229817332889063016879916021202814130008545861071244805731034551054367693165913929026951156630022999452425701342519965924740015116071322431716141762106888846440435260096604960641905650792972911319351724846855787012340032613087971914586143809555792602114080005677388380218202702945890482052961871018096492273757582488998218726163977425154265776516359574611405418910732950791562722722298697480514344436540743196316351004163681621631972568033189530249024560011054942368197646355477488023655044294296751353447828005708916739843276562344767962366557573270810894395210696411557526318393308310883046360191854331815269152931840308305555027796983343023377130585246418584251396007887250481531160394143712816092601066568170609117045885700296883404904092109111790824558997668139583347823786239112768388049498979544209796226434849368577766435047381884689242914676186097371242830902538389615688122513545310048342073685359275426400949645507997586222972800647019777949240108269643423063178922066847201036392283547608100831272153895728943400129242990074703035835282091498648292372904428007422654328056074505738507975819248333401077654509273249235839189821411932782300539938559306108238486598920183399638464127283874010393740530201212369198755674598906144831346257660148704476126210124715637576881501609344206240759265942981983607861978381778564671698063799841828004491750093748838202752503330337234098017159482719619875339906200488988230555844723672502312296809222235493819474440880930071132547240800947359786958193137548848203454400721813534383512636675074842507180736259873118063515780376065893857234889975788012676971833104759292858210973023138679620259234387362218206002534254336105129035329714787224614052086904815883847872972049585992969540711497901591045521614501345970531505727764188988473227263070559366128763155373185996200029951988141821724143588474040624349746163839032627620381256105035427152713711806998942789945014620308915792327295448397621824486795923475423568589613849879708393186374942025013317830522842053916257761351247460531403215657996334948049644583043663812827939826840548693055959397190180891269856848741303220070141942127100264248440589568484257035127132792624559496419439928017618514373454085072291653827416784756751192269677656572009468846189470404246553356878986551362702971502067858035926581692320017232343469731016252229532988785330169135819705199299412249297050752563060043745583054550766239768047133962730582599757123430907529257739190137445482691374649767298353216798061270805159809864550728285186246701018718972920372935757908663485124515556345646898055282585438100483076222486225269800045893921698441467111945797244044528531649158126431137788283862733414850683739959976272102358424001829191402424697660903954734922762460881127377388758979095544377529580430440742836051631291806273895395623400027230851554341287297931712661073685795438652315499406025617790397570935081281563315202342095866244597311275698411489305071540104884407887729233202184684666185471934091002968392873788169110819456896735250202830528697872751796361107012671321980658898651692861008012759591712352073599646161600151052626077319010540262811515909788032826208278091902797235089294987809651325111737990999978116970474888931129162665403768000322177145576184971135890039047900904614154744800387555034127485802851742160440515967473047934299893715357188443114560972836081682409709442487227685226956169860921834784180358533711112242726705286291726783044418423999412700411573838112388458297329449350663905086174471014952397983770836791924948384323185798990211210390450377562455022036486061317127372035773548511262444481338542132379667347327925353956668223793880347244872196982122196589957016472677225857968948618233945023078108144182159118709939367336676455296095392937846218418681262108129000407526030535148880365422998009401960957169250741229591902429422332828944297197429863480649032481322058268264563907681946230110950918692118613892189510981078303855477002490425266884565484448560113798042307781131856234392024950677464184706323876854279818175291249909656916896530406700208101049913583062612867834084596095233979386809671620352815443645900250363384993656849726739837681207991363275860007088637989045658837896775986916803850114983119405170796088646046552422558638463336795291002483741842586021048060311291144414135712646873856950241645192632685802177469106001829858114282986777097499729069813501412677164054796233899713357212664449816427660165607119732391106104010844085662379107571362166175280132031201144522675915167023001934992210651024235778322654366503542485000184901941582870205684274688582932325069350635997830244406669708187080651397267998557906653982256534990793871563577751148881479967969178214737921473822281112460895694664474788618557615913965814057106661656346016877471187494818768956963344630865758772000858058788626600351881179652921910979369745803144089527842984091025668280482726155834464232584753397494578301993364191026788706437809329058007949780088841824905556164645553404084567672336926223198839684068219648382338543602836195078710145344006628512060802621932976060848926021628661729268212230488641749604188676582133996047691152900185977603560111133904291190022770001020776273336635326641166765885450630908597129774209986697175190709107904263062538576017659269802593461949035656438217477312978709868853308528611305433949577822227452484835215851380217882361637581420711940584760938521803901523148282744300294977460002530267278442294311726205055552655429404060202981685958186398128689620593228238602030154616952129073001071345391367855137813377896812151454515170484334056338850014026805789629226490215942334697586165020773225880728550557688510660953259001605932928436085992462223670048008646049807601384351464030184770627989840706529572038893635569652695222941200938420903296959159710311968398966887700835466930038864769891732444623781426704747283791055551038765561085523856275986070606215053519073597286273366415597931832728873184420296945179237026631655839431515983396925880030340313248543680420504049373842696974918834467904699708845017800280739855986235986463593218832219540570814913581719305339565195503688183982833034862769127418022641772990085402913175604130602451921333501071475301950393679986179059687368193921177832683093074837764993216687770244843662166303583728326192415169083002516291183651122324830711044429973495983762335248615518953605409252815197440625383729095489049890833467834471499766856412100211746653382598922043393184992735896893247876317905630336238775900277504504999267365937193452769043250712236698392155821110371968565976159610702457946565520044330087928121498138601834585139847651279888960844227272456986138775860601339950215926644621985027962541697487168051473346744584625768706542050461797859042490742805217659093680127983239884447595729799816753647356835844129403928370807449360798306230331365632557683967886217069145430379261840737646877495232094978117916408226778552586137447221594801528882432205140496252143482694747441260923145144879731391425798673686697940502252619172866111822107520143035281954190563065836061337541352489928471203917431768996070558725142014305329864811119299625075158826480350125505623134681389670655177205433899438881850214852226563843857574338802887612237062610828360363871037719796200774172667625005293906560358946783892440818816896567121195129311670722484655786664058511546451398445045068904821379103903395199778486215168569438624127662180218564880663367043883487540444438091092405392349035472575856044358912331531458219418092750840968690840534638195533742644523273779872061740963904130493066779931056556611217322868883501950253027494019590853591739153242624469095328000185249399310886446372626813467409177156089802645241676197721578695137492401795390545044827742423124061368501936330252926448623719450247501978247521543562105092009553341795780959009475585318875434250151239099968874646341439240236957658154815414756627234937533224572502118911395398798074965337211009893592931434949302787993513288843175587791106121181580279005479744325322769128015986439965356237219902064683493905842801887334256100171294350192116137639810831009026219158813449869325080018819301439624819160172054322004109682653770791443611457132457729449694454287080809328533982127919500089349684245573137983465071746066781211901913389423927898712660401900633936862182414183559049709346695676490670372605783744935894345595440638321346694502328484808585531086036292988328603899768573575500488465401482047619100863206899142772972253916030184456208476705396133636273628035814437346820505044347892402823595012057538042100901670164610768170433525951817631369722019701686381270659930544274018202776944376639814641377134547090605456479217826129574681873554292314490940414711029073938930488139589364848784534852971444815728248676958842237420197180689760299994377309830665162869272933694938892319208018008370901756927712641429547770191899200133352529992130441691416537735166975087797524938617129108500251297630040596377026841470094105905507611134037900829692231503914305046638468454516185919364306600341948394912593965851247679381894923363540755422959667226923330954354902743986840793261273101993557532121943653570464716385815227363042795737055175693080111497513377812215150761396037766362110407111838208860975825265361943315251686718612168068787225709975902599498635778782333758214349720040697784774054948185032800689107120294532552334862290476825966297819617355005477466638197436801129982915364486241121862940989317093555673920940208710237934029849776346561550438983010604955001146348646294013924482652275504173591624498260955854696390739391504674185616430061648090977358937402931269529427851669130469383277766961307103773766824304187504401866902891356959194719575082453297045923989309907213161741884527951905335162616896124475346268361818517830564626304098570642472120177780858266398105905164438371113809359208978016736628101305349495112150771454824487452426247095400688542363456573287359486488111539376951177698066431323471112910219083521889469057265749627046802359227318803949725281699296620776609372363799037366527776336593031399165012491538828616134234506144597587525964969114837612582973868861127706463614838593498257850370916569795657317833716892234876990559098779565853513556394355054179817007776291250064102702224209647579718059993057002189369200977925913677381901379505443232491299378960400119293188992546695640028306370469075148091920578504894220001929288998169402570154676698181630763116910856387946665694766578285640013599035028798633364405113627063812907453539915837225006795522910783225209993788682517221494622234332752318427297352582830743473320897862299387025190508814314848184445762313567344526059983901213875940985834210215952139398321746491616078828377214324774321608916924406760729749262379894897275411054052327826827442237532847645458294212296158242594887442454459530267370397675722944937470860848091768575406627275682197896630673035583784969212767670190637072509750310942350530411002756572859387970316817398450156030393242006534876333181950567852992330008922053176684403693363128262116956130223024450166914456963375221959063082438978896143943526880845693496545139694720492020275992137650625587601777189759097236781992722539605449606424005513179026508899394483126782126189223169113740674413398516192851695232266113029454605210385426034491935267819317279531049695524590074546044821204304291731598659014370957688478618960669861573955969513171964416676677836101016347077975143633053488432377117821904704174594515594165430186053679325046304945172327178539583776701958629436766810067359372275082861021993346256862412060467249615480546687238190371624903172218942994072436224160217742473230373608342625115965937433117129497369198590930524212398227068061038497301250230641706152722861297841379598109161280434712701072714765809861981810232516072847046814441906564375732776257222138847838597454145557622309736605439877953808518986241937729742175588639340076829538802925015996416266021579702973366007990228544155577861762586015792489498244980044625568301462792389965483304886382006641454598599681290379466835799058423394592780341759452630207251635566491614746813656308166105294668697287435664998046224904368088296330099818332327250236598247443540066109202990682550339817702073864139676359204392593123251468148520759843521134152690754971768279501837974900137993956431929840743090382558990160147890971541023255184669929644956673809790960770191619997220045028976426616965797397097503013192102346074111426679087475915573320422988314336288668480158159316133779368130476967873040497225883604728458075457574679106058314344117686454913111288884405666276594059526195242265512584409077785644665103384921642448280906483703862898942565730261008226415900161174428685737308556676305518779416524595738859922633254414836839147759262602231047228849237072726670480307527304717218237923705379000483662868191565073631714766563191773097974080946804697453831029635278605573589136959127503381679333524793789854840551441382073246982131903854903758729478608807485791011714221841613336552569719679098012274274535963162629945004858279653054906652983374907718984575374474784470452314346256318176466840779864181369040127496645327533387606713807276076691600477496144298924029847379838648738880145729147566448479375500865271995999947507688739949638604968684022296801791649737137994124231926366482183236181214722229982413462919066742327048881137444738704002424288575973005139560097387560268126125608051023310189713123253895588293393151794330083603524216085670807589576841184733769130437071781605625366345055291649633112469523010998770332106857028535581838449628917837578202828894543316530869364618393711237140074770442491835390232441603491938343668112130142251450355530149470007690652270701267191376474943879636049913228347458315168275408098537695469121099071273285310582172502900678694275675619367993311595689946366285174852221676747041423612971173105717649264293731739602418255532904412823292263198606916167591080273886838591281199538001644295022138238422981331417822891245229547700038704672686828749333911317219354551493403614920729208027907078674957937470595810617138024317056744037323486827161191081243248973826614676980559557320424820665268746442838339068385391298192101718592898948638841842727667624586886348656934697949333709969910231034300018705660979238827234652779697347742125182591238005754645891893809238915599456324680649956755601147440316214005602926414163831556805630206351466165435949442207833071602223272621864230341094035790287566800225902980097776831161684005307070641318062293761343184141835344943126471262422357030177396571592335130958847896807731132986225957427078058502278488545005633341872119910480153604601113686234651613776681983604117778301073281645865145973543264473983752262195735871896489156579064437582673228143765858348056497501234300783277869281475043661451584168236667324094559528836995188101878449995623134569807081458587335923648056075308033112927165460777193586223581349850252848343359976877123876136119322740684167273258681840420975774732365858283907069338016974921750553733394545728282392302506759253448805189650243910538357076167824523728468740868147609491131745792223388783908609172637639209186652111291914401984229117280350204124513084481390370050940677495308290148343932571916975016788874409534337087827107059553297013659872154826816801373501859224749466424014743772504170965296977571515733288338385105116968273815076514777081062853176501968182534365143281871356778622551870970174339399011113321006931204040291887557455621483615464900694251631007613258207419644748004294777327036520951955827629157017785791081501444977844646545357573638620039371869874084345140724828577939142253635953318352336938571346127788349705623799448149279075849903370851394609253861651034750877754737975536772870201308899990982490045988178002649376281977719415505347086501981617694961867876687027006344962997229249939616050378698966444046839547222570106091170778071527549910277410733253880547390892816706604819330895818355356067783854947998231104366980711863999620767888689825915814218980167695417530287214866476956442662959213960042500987973961180191964185233723869720070535902239534633216511427432542487509973295736181235204692364907474286267616166524141185622010860060265423920659639799508852886724973120891438605426962688091513652924615749696674456413989861073830310102153299691312768751145540615248293389529378491854586121550628393692208774178575268276709539900161790766184754539886633772468330810387029445005328063027147862297790590032026079009706738533514008268835618544122825942591330068026244048174699686854728418006022591570514953738634449507422410779605580028454810442239299092893093760732644924370810844433234082384227179258377273464799899462847316271914677089523972195491091015252602481600992666377225488781980234314532505580349577872599817028530506427264220372741789438943099259675687144553107881204383172808530268927138444410875920080939792435089196871116915078197478077730476367245626591222834551735540414107670264485820154757286556099661593655375367224049404636612782348310016202962958627111971964403415934046360009264299090001826683670308094055254183661405445847288008802786637603127729792859186628349917061240205197061854380147411887109512970938472338351161641533312113413737213912235320098296709718273250571915275259468675675658339781290663799614275259050773512486029298546641739177795302257601615137512653995162152358462963096952500968716840668581669225863634879748851650379044462381838999139817414475266971690679580225982721110947281435235679657329852431429997890663431571123078059342248103881179492935215025815066986341072821692698243893958079720810855786625639229974875451651960320056903801781776794498545789337332019702322115128748753044366431889993156600476110257041555020615738036519000684643040552314022718307077213543945287390037441766176645034012022842932598336111704015737452631730965817275652973705191055977722974543335219576509049637405463450000697505732238585846614730643769879587026391005507942284139498152471464191499590541220616752294297929044437136580417110120966240789950322183030713149413870292639425212176951781719205834579442907000372640077234292516431163975970796616289518043757080575571819820776153172185646063689059159015760742519989163679221353907640617417328720315778132259855610387322248716049135658162100935402361783316828485538077835078183212907477836401339613702224843310573878638641248878749296533220684210301799448516143546913207092089780582243997566875836600046965074895003665454817752327460264542313995544630933011700919454440617048574820261892287683444794474100100026968598580591404247805936540701277251112554886141217842586744220749662276687458742027218798863850418786349729230744237204453404780162692674479137503067341881844479104819796181774644492877141411274953092271245443307037128392259050291994240060267522291177817073656767405690139797441916173381437166896048103641428153073176787941106318899489453812021197540427287507345815799278805147866027550686874751716845792227769841631981685448560973673155335581404744965164156085242345714749791957898487603774145336497956700378416530922242377793352919857196755970198551868833926464324045713272761876203280608346321666393081926949030417019918184103917263811590464986239982659195636539846698421193946107446308011200567102721376127005371020176240207075573418074584791094589438361231897587209225974662782880960651477248497859203913204149089443556414246411612134019399547102821053732231535542373176133331420206270833383057495586821178879876942291100933378733825770811108583102566000878353311999942413899009342638364164693404826760434083483174116602109747915198636918814904494326262334584321029983774478522249644712421818846625696232658056055299511290869117327177735325461394169566747696233935369217026208232583779015620917384145270147994370354837262770888127023286542412909483878716519673847627658470884667724066875590541120237425897663635398537835426302366495276637996550434173568932386271595985826903971287007024309754104532348066483325060590336858191524898490692161936067137187273645898633699559851434191848524594204237423212002004921883093528104028724519070993864071094557925648788258345632604121879777427642013834721324254500560987212195001708901868732422493680010202146981347136021022146191537770609540785080150545152187849665799578559369542679799781315820642248845225262269548281326491743962791847709854025565143192884248752798278520547464707260381099843105168459376144005140665369789745788333972633077964942916386770226978295956081756210917612513060184615336570961909074795370173694195453061382743269485201419516626211262802646040417637135644850880113186197479756467060990071652672820710571695732298475283205913075524604092129785802098305116111836913974041945418448032302390773639286816316168957783447977388429767227050126961255178486728521452448411783571715846812256800189551524503405325747952516237997823802181815769841153829039268794575437947977689594733188655025379134853365818222653376759677590578950698774095010042777013379593979709512442860816564691270435481697743928404028827092131185139031829567454945930904510409524007117200906652397307950697482902743435395833859093511740140573886785551156788080280731861970807182940315847811803517639209101842609927802629825273626943334145247019916566268078952291404447246388989937290749901669755140740457359429313638314117281831823315058909213731994679739221944045121544828205826108955024428590114768159549557647477619460397538122779371130389808917780407629563214913997398203091525395917111815136783316945251475688848203254537145740002818910256391169808045369431205159481061448790097436384296729403072996666604705922871836621903458326947835006214244779631887013729522707996443574816203344539181229408999805531127508631250275683545630228934762199961292119402148061553376799873643904292032809747866382887667017037938145815653434197207738226028501873160526543667624725324036749947817490228189199079224918577618953427988958795304557151795182728753199522581806930695009134279861022777223752755812988806971744022746604633722711705351321863047418075839342376015545947552412854508629912408893547628256755473155753566317674392430152849517080841807344510513013926415038889186709025820230463327849519914951590250064119453628514967750890250592763068592028668965512772450528329857008754237791070400265157674164347849366126605741750481313515556350115371344923002316648709613226420962455073718754260739668965937053854110062106641436341432882891887405129157028234708419762510565430514034939115164265255293113823310217548124329100490804571545172031175912282309436219253215551054856457008984361385859773392808543112927135953579997511622532221625861828778350249274676028126774839202990389854573638700577515698872960373893962524381179567614513021009121422339569486479997500287642312521613429441284533073067713781824942412873059195080245179696623215473138912667051015147799719512373048850523624960294193349811737433399512468569247209876168012035538437813867951015086003865329329044217404251509247035248114482045744677744274652283998314963857462663163353568245194196726706000585421932295391292944264801166620651266102240022308560632604397268023348129056763278405870671742117532880080133864075995950490588075630231103908938706979034004562430675917828052223569428587620520030432420252221887778822926805024586107909219298401398721549491131352606481943057456061687606107581806444838803503876384417307375136779090523145546888404965284295281934177723311674674461233393900464261351285732256805026481552055931995726332623594721689859200589597141336231287320782840557507144326606077729299050978727302985347777289143439375447923101693727800857052931989606984775283760301110810309696852019020932525840503544190532337029446398610358301582526433590659566946568001529164529489794661712242759513016757864678728363929524015038578410433857726805063557119262908714456144819884332664540065413621885366050099083463495785908169451109426306940836183210882301800470248180336526175009763072008604459153450833897888879988997577332140818706443094008264424668689995779045801905432608500939665564145752524273667099155071719164350619438894305603731943854434535424090252734968780666566356636770813095820345423188748628291445981675928303754657551435368539925653822466362751995814345584500688558698532240810783869313231968060910959481304659834200390206774361219524481940829553865656523821574780791992240195453843237195841299749002017998963511065829185509271547863983704974249497013601543079844163329121157847687272209387675968760427669588169930362771914294038006627573100872123301807290107936626879645130050209535596215633532821920349958432026251966644352692939436202216298834537777251578219691716870814103413203091886254631149572500514361601673206362400610050395836233466376483826758567874735002669241814455040933771991433624869116528829981291073514582864794143261636072973376096745831923847613711207942221137935011658777729090977904927324235359995217942785342988069174186868225946548302397192008000351397534439010874029095249027299018336628548300323573372499204109048553980133663950869103861090958485236002116211733539708213962131149494534480768359506583325569295120448020236293969856894246833041694056025041654739184228191185405859782636687783369005757471383175824522911562162293436993887927914928461189969015489018666564564662149435332059341749235140856784617851899859103623673665662140633703416063423875242816041263863529465585014763794644845231140282012841820968204541834892610998872234150116463209054412921472418183460188319490513009547540198927434792557576230082440507350002904707801008060376541221573818349665605610325274022087803344400590753505876741817826664794885384801538773428551851794548231244913774534994679287387183495932661102397019062497008554134512832661770765802925607857349178762469342294246470420699729348441690524990223181880833898506521104732620684547604749821745045836853427021878647166755318241045279303794346026025475560736270513861262656034548652466808459071021541238851433788808233708449565467019409800489863584918310229134216207541887207100261061767923488935913406979204227353764876084970971577116152060739255434262768359571349795625628097849990422839249510876805605519590732732884145838913214387907311746689136240042526279519074285722277927501442071526150519816012073159576457307786796108630186215178370642852644727015338481923137631250244969900474717770032584221692993481278236616804004836622354128246087946850706402661494232817120537302045110225597229384168916272937353133839174712019577222310106878969089619989465707837968086227979066179262673106507586447498450507618202795216240170993636408788559618948567270919148269844248062344576947794549481449817740569342078978438497850741969930289971246080307333152729540748202932960748875968712768188861348821982170043970575375904701714012824570898504304166388038928231553874722762842442530655624964436766598380007320758981092772115450776067428746293449845921277442645297624282239723315044119904027039020179295503389855260135660861000112567030409472599747381202257849800693580168570135106499437817338367657622523159997975006820064214706140842563946355645674274681055927457247969319086674247153100796366611849168776564545429995736579110156967467557998611958453200387665484024400069939663227329713884799946530081826183463538154355682973135616638154866856807364946195075181526957832115075703374668407401118839553416937465334395638770620671612612367833233800648924580629643419854671294745746723714758249125558810460314598432930927405840665911795879331090840934196237022303533585602595387695955118969564191664878162827637379341143495319858766412832414362025657458958159164767391326803310368223407896385034651054297266325189815532202300391515798107634465179274026618386962793449971144460707730984507241302389075278434213825606438757573304519528634254159620787023054129330941022887051630918850652342258285185243450877511105627738761354653358745080909191351041887702712328134160801563613800489222090636422775013145003443641452926478644662825020954107056171428412041998595743928184600871418041995480267070471931010427365030953093998561147059772411259587227071470642612281543262151593813407748165409922100753617303747934828608603644444755817120655164740652608114424582151008843157414795481252619815526340262235889144077320215371644201368367966288440668733320777267896330805950007771687238042159046441214457957018266494625250438696385652266188294250047132836370144650727378120609091430416035677133907635829542622790130819270106879562912360874953903125902254585253136820472676424931906899289438853097270058497243847437977600237115046014960710702298899355313709984265693230657618435788065816979314162323063165689571274507208172929812536571652854557365834529080993991251052646386948437023005333357517175295953024687440203952517306345754899594538654592864072643093915808085868957579408267126935520103604280042932960309128650569980907022474510307669283608094420686844233332063593679400041219932415634807718238506814750819434233243238440915928150113613787431291544641143254194149377255608837310794228473579924506751157332797573465177435058545703611309730910760549612179415126753924249684007568471612424347138552664478982388369392634915760413053282538444370848114440357784221279112749537868464973066107050036189873130793554769411471297340729006767095679862576600836780378405240531271053361938931043220789680108613961023753461109469654139616096006006260896864239065630049494828394250527319475720833598623471118000337538432435304661322216339970390078126459950022328240283074200405714113068955821462013168280970343002034129946887988577452347026037238994121645853033121564230849352672318421464285421683548198017891740174254892763716656873164965003633734375272240375738256489085871239558598497874628588876912237685329405819140371373066084288640722309743406795735578688493225338564967559327923853489296617299285389873541085066502426250232716360987389129749080154066578712404994455317884885644527508391866435147711686401799567351541682173530914212161037496952514280864937764787769928290172664735461051407157596334512818585157508015328277841565968967547199449274043119773698182338434074777333918887220741250523703284991180579918621891615142808602057505321066133368705594999332223687876130463241275145832137437056190603224674234205583780316701975076416066294146176290615517113065552245464833059552831562690523898365559545319986986847492470132495562490160018555747615375029696198987742249637161585654610725252596894471036197190676727840406058188950766708121880969628831383555516614842018593704652598844041410352729627659774636709249503194366752172596780263969719851228772632478037367087441545178855663574660637676327685580768263760550355963964534149595436306352215220055379120524118124213174746209666331083949638137788189786305291772967356252848557925842951182989405405050031793552420600031223066440401209261092716382401778697362063734898955021414433936862999968830586836039207243675223337703998387365749749855401300718643961685774157534365957021161196263887731483506986326755487993524563170921044161974354371336241865897728828244458451042817425456998364289390580569452944444731896562981294362421094277962075050756441127266535852535678705257312096882822973689548641965286121159298438026547433177925028033655846016013987336389159821580606360824329034368033738900302809760104181841613328380737679973624661461345964834754739297678289737476319746785577104352361333967801050238646579833394298061331570067233850143415334622622112802494173817021792565232114002110622692656998888943023131242747360408424623722561179178778126578555942302596943262225814769958428853730169183443815267298584355960339749293073593302353488748929328048963866241750596992472622356849167886387110098742090412198916051140868056711733838747304594823689666399910506531600851293398377483207072060089099523356545787051735351339078328169988838288087766301312330444782772552904202849587102371593349311433807576123972956397439278076127077757389184971093645735044427040279588315343923435626362559039228062572374545031210204103877476726644155445472531439422232767485305023196093508201589966129299687525781202003985430479864672030680629768048245036544104888641415750218783015894018658210963959536423100001964797604569137288355795041261675947017455533303630935035447843828556544285836411018170730660794353000646163895764508778322279027594017079546749874532402924821788349240121925114614695201313383733532416067418605626404918458110897802683325190915495693591473465460595059040085944495464242584613679988372457702908544029135114717303246217643716541055889591235501576418904083885898469880729309186104550736087772265280081331615016826622175429015680542552204218900139094889293355286906305835152573754023136714462504459583216842652942978821483723580963311446495722803629450337964591837121329494974695185528648969767469403565282838924009895447338933507044571417752709311945647312565366807267060700173696104027307683144984350862660084816298238224486169465318876608821145666961095237374605009957461511938587976761993857361461273963730082203104854089192284814552127293075812471234400993377706053908504393183693838130888799937308240273137653404312416769680143747590912653816346086288798713471787618741488013457369913244241092839569929671482603864044274715392987119324260433168717684067752582659760918917034820457373779273239423953113584376423559043200698696503657933543745845298225245216844348109322100874410259532628468426232750237315031360455955509524456159050975376123900407277057956450010295877497800245014203195862299999885434599920543675329430974940364022869206763174365058042527981403474487359994164672488697207517816873803618370818007331696323454574274365842213131707216992242923570294764266340816288242573650821072795843597340962994343592682624112901522417759194216633823307196114398125968852190728664377780508543289857905173385080585045231581503079424677304354144355095188137481526047867424452074567768128613715634729003576132789884670805894994001812155300304540588842627663353204944643432240072774535142775077443632025568823629987017425326413217708915951548551021606950257723892618056966246659060027765501911895445150496778494450963575556228782069498809641397520851932718572691447233482596838190257211377949848624512413329235739121958697113445917895923687310448066341588026362285415270408270573040685496556468737883931444420166002568917003245100720041686237836347590625183173054788550706567250588774519871789625696564573166716161327640493082093983197056720904217697801211952832054160167727466565868904430787997709568708412743063390387207948948077235797144494093768968241966167824462821074029329322243519956482893937177424561159813919405413826461103128014036163363019795573503731759796451297616691926845168576105359040049955832519492477451867583169866577207377562850692253650880346153163032619355939080556689734057020602287185940838905921427426731758585541312767393232377735668541108168417810701785544585880917039471627129870438582136262846178239741282516626171491462287750191921465586105234636773914432954705218541780872366724078075984154074358823957450233078179237174266574578570410890304033107935475034738572769463826633347531670727055653423223246513243459889135228148517294228435087316968891696115609296465861670983265811654554835313690038542320503313646800365673677552089245704782672879710690571928430708715861866535261171329397542623273992016110335725511811175482007559257800737850597146682658517111908228580161684536386826656491649158728776643926617147748551941016130159158626891172127572415929086147797695462270432174713595029842278298077641045295420316784606730655315081187120756771334223316377896885381266813216872163182846563410376258495422675434923109524365776186136189925624594600718888479582172019888913867245042984895207993512898553538106358812907422993988976290541276207458111647911372663824648620602708245157745739482168967913935017576453859072109569621792147525905047794703091222202758048615983321372888376455390705232735308934435237156640119651925586670324623427864193310737303935717492935235153510510687114443499867918929529344054045710104965934042235052736648330650420365629598106678721893740486631143947262042246818289562993709744107590032832925442844924791329123060411224213733113828043279876824129949277214658077733504893816470083260253660449942129348388033183207127697779261335836902187247705279669241833919508813464000427188351189439247385851479828503557972488553144392440543881377799543523367097017340556597449563307349201865865307677792014628897494694368139508347047272852935723907590148288766831678631079901408183078812407944813539648230023557091738079568736894264111828344350941681074076806104883205365398921064272965618384106560637579716563818633789284788901700949519165769465901648273454191786155963343035392308961583208782377648683462855846277893320299108783316096123098133720427296291961437693983401764895380716220335909712769050005793279053462520826101797406094280965656202980616470775886250718137234714901157341704630860503754894334425499387080495302302386294242799471794065812384049426607499293288211425134360715511551699823594765114853438403762507551330025152782365929050960776601204638587231715324914381454326355233892965753436759351522162517403591356294429291777967500915438568953877000342159911569571248627343924118362884565819134684620717690236963867343939281196535836946357167470197981866958628631351201991060619717169905276472700599424740451870897403818481796079906479486573513291493969791131549361906189604476410517957541633446251084938278620061767731864992283934748996080657207016251855271282751513284315093500748941003569673732455249348722091815129379351374452692269679709639806544349894312762218760172639383501662380824749856025955235440986903908850280226955673252254834198571627970240009643828340804014850230715390444734348954522135305644630924101728257564717486385224835922202698265635295668393730122412851899412440611314444147854642537224091591051220365021461323611440492915937587398674366297982202147349036581575569782845086869024926622620837790022496310709157627074555397110563212491724549813383313644643523511239700522427575472241563998948568730705195138738060269705296428200168800291284783629352119493461205763764951930053442050557654610597999839327616778057844786013452483402390482983995280766055304746264407603795994948487146705113233493268134537942722760975531066619023773855598079061165898966139586036661904112943371287791704934204864390182826001402005984581485612472719752211541104467405769252218716350127872858535338933705707025992289300335889729513598111539052823899433133703330468468603967043193347703226836266335117792275216311546418658400557303526881205774993542129778849796371807102637528633536289541149408664396173468384845315693583665653698099527748816224436882141732074626630663074308932184791771754533386429904049308537404699063730131181253175414020796221355898084948176275839273638334842573727825764746735973933888417749380562061299529017349187846277351536719103375470413034369918279164947695043958950461909504641743991646584972990411559816140258883125387234359360760046691560879821339686338150056687238444389166296366869809595490319473747561560724530356058878762750171569415498764616510713546198080890339521639120245191769732045932861396259563474672798591668599182214938238373322138485487917928108017529387133556278048794879597579240708246328094234726247803017914336056063121478965694327020983486454534961191133872889424792953552049773813464143246154281715368335757107635029283666510555302461209683314073509934317914001599687535347365523044445511520191236920725347038041035172616442956451775916215769413450445874086536165727799914459756658716466779216004689300715959740843887222572611268296856136361154812105037189067616648871454064001373065303683399438979468126312256755020746018069773172359971634224007369477705384567057404488965475210839948845454665737444770395492258338973638919655706164070180726813717866983573363403018272660143901420551609660803149843691190208493792500831039363095692373720047897289501158942900603379513669009959700963171206747404028504369092488218108373677517421651995023961357738936581195674401722868590332869628961128359853934468845930473877372308285103042351686577341543523139366624097359617852083125053370557710304120797789339060481560599207433961410386723976501800757173180853094535404046536698194662158479386518766997237198668783284378539906884238792830461818145769576073814362132664500201365128931040390069415673228610882805704142098078314293747049005702705940776982814926656208422220592082032773435388181097613160027652105430529613340764666842066275761807363339845329803029682480921508496404696105761358570316479994293279328716793689135558798658594464387471207170865117936364763015409613593169621197863868400397539044408388180992619967094675856853758605405726577422379770780208402033878481494505879503116792894147771096993113980634698840725276370474436644167242714355216485550487982923178139270711656608983137819806894254746499194621168175208206416319623764972042500977046740561997697966260681595626024795774147779925349660413352161236956670045959699285606140503633919154197907252446841362994848067067287552022156041188795714240794277257686539211714376269533574804891976046565669140518423345791045426858132973888926220523733722686896684775679357479865100067142792575679245962258136645901545193140139918811023236732523915961545920266929265280914648546817498217604319572293988491834740867492539141326509684343965619278905347289676956082723131340976661429667347627576689316149230344684316852245459182050238009464415228970856621774842306544584316687109132789237203466877076396178770810206740528339756618642243290658018740513085383271977062317132966958540190307582448994504892573762272343564530198257076897022616977975602463162555096862176494376633164550465242496691407083320935993218350819744614787017675295762433073756457873286174320224884299346645394695874219292737796260840599199360028991612193131762729911509233943875811937427444381234676803901739788375517026430911230462602580834164508311370298604031466456222996215309780595112256103222867519141350099296238518135835863371139026227842869264215228486625078249411245704868823882606110473232180446434292649699479111905600128676444869937890698072749625311614541778839603503951760595716614991242388010161121400488157226133750990867350862784213311690201075391484503173522030623514462795764951367446973026321589374160943410171474049186161675045961606101388999231074383467730011742639299608320240349272878461196273219404536538658887196344510074029490849432094647424311816716199882304327499916863164267326283981250604329442139189654045754248458777514976377231555109431113329413155942694130302629410236113791252226005744781495367210223447175657441620159566886508609232049402234508984285572664761210693837156161123593591020938766283740207589741755743271146977351917559017515066098167454815706880636782472663782280502413958780093885189362031603748159086114494927557075688904464126762377778046656121482811785267443080237716260543303758601161910792619655743395256723848839932296254045977126967016821919060827214561224491469880735877261041936090061500740060648015667621393205149069487491498302846149102789434151134891766842349175783935708965775114238126553111519765552212025303339156804397858292914579886956433677101523877636439142425447853486227061495735965454771617974610939001482891391602186051782069795566107946622042575268960794595990042350769320066656373763326873666166573878223368600251790936032500733871566390154697625547520369848012887176555937962882889687026139684010971538997098055116187262237294934334899945903176370739080763484574174809157876899686565648397340028071853472065534646741863139760678047472500123972145114872239384076439127458214261022588831760781749615733414682946260977159262973709943504828369186552421939361305604380656465973429077421073975865662857256263642385495351579836024925460379050091048356576174659221246564170935315015696554262682749772954387051977912628053650536564818661322624857275788622435683444504308409754305213185360357228508713386368546519063677130500252519136175516468968154906190773036634087783336865811328970675169889325584210150034689162940599467180261761551602002390043207708874702326990007746603044415240117226847394146686417654935469704883601293677654322167408103807738252201532151349887679284379853760986565299427077922439039816846335965535615047057651624949036655294997297789625410414538970580341666469255415753617447197237289974607335627736935161836678343526794922053668474488917997233721114684069054825013866273411628759283767410213535963478001213330635528046691963790442225341946224601705310004396369618817345657268733231524696093272689542634768043825407598991070678264955375696909043121998565037687099443675826071719365077568009271108118899720333622010080321708805035774044020129111271030926736549072759967713701618883763549847433993886846065155456559481996616589690020291633442077056436040138781001946949468842741178047507200187341753270278990323225424553751321797810384312261137234097224573233192525913556921118576358960742866451861102918225357421405058787961373132645431305814993648204202183907386358664415362369246647059574143595746206229366847403307732908584043162506817874571971056349996674735548667215591468485674200529051554841445108473005864754355256527769241960309180973170323037807361711644977986799339200986599768211249583708040361321346103546106570256305948705025834646373004373608449534461513813788039075000876517008936895697908005306376354512844996244902699473981717933198612827942361206898616021070104770879343878422028429694210532039509809753693994492547950941596915728942632894969080294786588264097608248074588468932653783201319201835355017000209205261359837295158633982276154288885865424336920162302460703923425306045696662242146520582234778395494012749055361122397045655062587913294274238253284185162994596241598605184856098620382514011955780005435208837716520376196539753478679842337706290121339959038454403055334946268029555354362064331225721762183770982547353046199267741491234229173954675671113572942774487409556892026660362411860472063227291433474593023601944696894434046766890080547298608891085332174561642649850448775671538412207469551264640000251491044749138290803909117839189147669393950484840944687275782635316631336050046936195973450482109354710261670734378216459625423088476376119031732599028324329864537920608678436825038104480880757027974528833294984595830624014420075672039304655099243849715815866454864127003033452107482663868482841073931573008078948405054296645902698510364976319291505431103229098885058614710632630071500180043183524938049990392799180810593192541052872575700806768617516513477315551351424971401009023088512911397150380849114982061111980663959125875941579502130763073857825392662871201114988492579452683400924730188926127626851973711902983476690945661078182251540455861593802393685211716765245671717054259379948491291441978218331589674841959204530703482782764174275392642370097416916115453864808463832559445331733950613815800914873066106840628576444518424639191257374379005491319905770296849006374401923689526886036521370912129107102109068980339056722244949173644886013402061272679626464247023084027599153081203312704854591966056138846176018235113820953780038631081572862203616040153565323949492768951537123955336940746230319602206501065106501721599489345533595657839340806814343764866680908781402402061875047808648444822189972764773471974712782897107800346612872416784074301457864126190332737625527293502494621663813451703163972399716941869845523365465493819887426031490430471157057618854952037919170178932218004127896868829457838744942004950367934458422513653056448812947950848848933420819818586637079376909186195324246206039105551487572181571466545750094580250304781716492849778097796494805172095026767651052328133724189887042483266738442765957628823093529776266523059107669076157604738165958134281972022173391843501340949815508344892256180135866154168537572118836160295773343219958742834640037136345489122147324246032222034590572691634670332379466731178836433809733107247220214906797904362106743517964287275584961112022134744693619406597553874032781970836962935901231471270481847004349583157887661698081923143809866849474341636395483130150139517878018325355277015598034634181595892833258727307727856325986611074375419964125832504394011624073531466455969157171205612062087648204580384192833507157359050524013489952898645777331974899774293205836614955768379618406140287263382360354025733133548976433554972724511473302951572234459380723044044984895695057718102157666102055335171802358354734130604301649583000744281801906101787349476709493138272224456677657842404942080154570359804641536680133306963836705640701397464175041903036815561504098289369451468116311300036410543220677252723987437047644047021135497211266900860390545025999002690494900338877768347906512158471504431863813502937604752324719252802336653856610873807293551263887249584911636500031858553366224890416515297670487466022064851148704672531724832196296943974153699291070558717216293378189997292896096643982459826888302515434580670544394486666781971181793133337921239973504461755566356200778244453532670457637517430996150528604509271216922141427019212104891772275371203320113488947590330714191656758548365645130979161139799859864595577865280849972081212743764503204509804215611730006967457020712185677393783423081182698122372387355606989221929980832639033313755854681079862570971167740670707570798025867028326656159876475598144991044947885805300341864940074948441609609830142954872368858297155422239519022140630063617832417118927709019205541576760635485022600309708349852909999399207488046491699339305899356844351618940124747727736437415141062830741949770566820273835477267295849947981180530978023240769428730960426624181656637697958794733109721189988693938109214648055827294290907433737525989436553086258992306461500809898539509746798407149776581743201686034490662551261911809268337058734844188643605172236718246340954553702409473722695332464250429033607539815139971517534002155796592485914850528431143096502999488871948857528197599512632676761633867985352887453841380736901641105126816669172983154777431015190728749550687284450743939098112866849164067893303021540882514828738183908730879480643512892105277282637387024779789916218622788785520950853585599655108262837270644772445327963895055136039824390169205162619552312828024078541956435130369279056317602912221188535505335177275673643446425897344782430009378401373530986201265850728336879777969700510887618725471150076001037731607099211613289797703795821121655479806355217481487578394971336747956999901424506188473764196250407215404863906392679734924859965799941658269206062793321495781357318680767206527947679202083156836162588687514149263863488017184383446567536577266781306720929680431142292113648213170556159942846041301121304827904798391794413067780378328725536608912472069310156060531565500959686299623107771366249496343273698072346040621273707344080542949406570768950369990953370723067974602659190549618826943450141536199189017385918603579962440409077189170523724716439770997771399460401842536027190840115800277525709858415818536591504734032262530038062720026350139054679176589103976277894181097069545136182811589286978740360087041854395852274013893512207726476504907014082588243103724991268545390816135361976339419029512155896427936160932280842886248626286032944454100731068592414884512311694226415922256538233042645253925464678672237848569939297149442077478944461500882633075842037798175462550269792718013966776087423061232204001703309908913716278299023189372110308647467261393458228212582831741579022070070770798425499149361913326328662085921302702488685315736939114729255344943416988585681272538443635627126112411712292377060677297435073850505111841264330746826378795722698343690059438905297942241895219982159821654159979184008852363335087227275226543783625214797477384278846908630371643608768700083591892069423556784066117445727110986557212278311285642330648548901460187355636289246826533353140330766686172918773105758956404236643185583504002001534586644957476813465583883448577573307623366589684337305867749949299002455201841871738312413556726960620329092664067887072174591292760391300816342748635197519976667645872435837849690522292216098639962765203087949969918787852040120983494901992576654641909309192600454819926526601280646925220427831979483608989596261225024423790132491401749964332000434739712339364545379602935428203914607587117067216889669491053360177118540317793730209349219996451465456389262370995348109010947926565772074763991555968505586883325827115280073533633711085914321801996980421183759508594480789388041902459530309953508800464691484731798053909899345167093573723014852559289778989402043984996179988388649232663005486399315872224197333624366738136612361639385609644242110888229096921136767498862463041356144596775987621987442437435068629281728564453268640048268526408243314503137787800174365980162005263891089716514733140867280243891508018337163478597569745971931364182738246492046506630817479199716895339727858688735329544582337034970624102292622838789466377857554761557814419552105746837362243350369564390073034781543867720002780347863316305096012046820589703721667435290410058054741811449530997208773347316539769484082377275227119097797360946292283334905799935281040761177361781842329371330527230927195133409049610284061448033380186342328693709599914672667292085463075340022982502988681292937164941140969203366474753316082059635000054206640862164804344241043918003815653244966544704100742384684007349982293935365378104052007302350934824337716291578503451243689611286957567997510139008187319109478219516114116887419089074379374343447057934482589254973184469240336048705465683602579894804493267070777627111556086646865200204582390998346358886971857919199920198373841481084522805181528324879066283780939427513956243811544790867313902441665929145051936506026759924076006985081226916529444996515974742871252313575944412671436400323590710502994672448135299650663582437271538847381563821046137217913818580717342301879970216270707929943771732638498161064938060473405022577998763944992701619332201511517671483436885400412566873413812585860508827124665074934267704624758136069572498102984911242145468916438276635231854238415264052712810199125129522146415197911086484331672462674509077921321720387357831835496113309790952160332022359050253940304882696000597957414248292549575480596617914776717740426536636450937346651770853107898624154323689870984477501095966905267462314048576469963952362562921088307697882823734320761799218914424953427883279248797806778075717418251511849615974651953561172784896113453133490038905837227374796526035432505548216718511445691545544886567816445096328307537591726662285564417773304234793880028774621583786078941013739543556745153072203757977622252195121414767593243456786600974366281407418905641070612922569688748807744800140781616232068426291395764842716755919711646223526905906678809357965063650591852613067383810367816921469186647752274384416437663957262263322509275114582656017968284069288002828860486951376328826842600874188471424916305627410326546271598243008327227489556812859024820137966741215117832392128567452720077333633509090996969889032647508180130461259426418059071947132434417356701184207137903765165494482790207953968720080585021622581956129028806079132075875418053582293990429473108661391778060470974098513946785082607824984047900399417642652580377153999212563611988065376020829800182620748844891219669198224189515773375516247129044397009108955598708715526773774310831871121549179542723705680965271364599885004538189704498023848939398367952602019072876744350767234025386917319171005265211914348663875782191192413189825238367737462718355603136863306573175215770413244768027437951710049498878998709534818165515480396636885336045046113913783004889144213925485133698540223662332404330830239287843465488066453208014109220932702208109637570488648562622336492253272408010583870146957786823349419946510269764167110497365753159431998093888138379439260824848425889088784630823986421390857673242205706111659947003226914173524631702628754902854169048977637236009338442586754756766688633250786394288659080597617793339801319417980291766656813328847266780459185734182526545724617927997500855654354937908403807277584713476893114370753326112956725192069961378326347716131764883855367583492541908012502924909848824565103577380336684369677831873120589750280424396800289867472191949454613640576536378715088672800066566652871108391818248910059240184275649587237861612638926171605474075271824597014404497810023925604183960958887013571552511689249316121536673114591476627041387934376871236147557121533560950426607063839422171895814589965418709692915692207527540804862758294731982470939733377763136766693635230145551625859576381451849976980573792423113309831466867181578133512395337336444286873868881269259698939426159353147807100869095683624572699808427219598481277016443016624579837480827645240667544893456435720494266329529620895029300628964278570303145930319155032340933210306648466290186375105008633779801148853277448877322539541603085638723304841525279011886747617417976962342461526862111472711669471741527363187830705949547971343237548700856838556341798852925584218062176983367112403102122754330248227527669870033736068985680001009286875909436862010671209092697451535966586759524563931654123216767024357528801286653698673001301224121938566269500655302434163816594662996332077643218256491672263238162894013581937745671023949277674805901719637810317270617472854541571700924177401798081735392602166251243319614863583089289601815710064731584340632591337860040047079761853640285700240807392461781847697607563999188459666829924722136757142427731007155473225967596385663991449510435504992073145893371995672304448740512278769368387017305933356161704223243518307394890871051866043411507273317682423734782008756663022235773476865918572338504741480617162416978535302923474356068091381182036127131952295147240726415760308193879141340096216273034650988900734640913418757716735078326866609229059260216824293589087886064475410741647404069745068737636355531343195676002562059287774388929896190081904221964039652889839550894557923317108874851182735489596116590629014446082608429321287606449301366598737419448397054715567702148636404467747219096066468612900445681413857777067614937694358382453839768842642122113892707965329936524675122417054751433122375601520390684229337144275044635085943659313532323825879009133248700994904387209908731434631228357144025471408768388779760071286252897443164101724730823408881391578673733473489367873950415704745992511032500716134904729528884722220310129872107024172286608550056434983124346721317858031490118015244492069879465976084833499888932973234896878832144041369339652812658825561570930687373905034654228078322680718540006325097319888608423184647472647904155832397886604343472659201064009864346208524719772227111748407689969964997981921601606606797774998344069583644265691741178929569374108343955484087432114353629389504794917793450430026191297178218981949589892969955652734351292865149048453692027892730730042270163016255522411148574994348405686814471070039935949301728124228694763557607512869246770054346254670568711747410749356567239012349473016339376673992895448829941915811338335062480392199256036952980053119978095046563706896649300105897342537067755205885594845597523800771260360365959206961610250320916744395785241465274389157873087853308032112048971980444938568046293287257521351103776526947850697437722369066871500419123349748730018129027514137730729505507317845042233083698232235464104718372535284000025551653836575149153240075481131112761068056160413256900843697068585307036170693742507554246818297445992878411098600881993645347415626323218339415426425273244485260396207801950704178142198823663900384870589975455891463811619039423588436563491067163339440181532192649610445437561823829763351268008711229266156616188706250615120146863266092574759725373223927067662647489212419250393651074008041402692063895486638433704990034968369560278413448977227036514283860775262365184117034830038157051685979110163416541634172652135237431922189270454432727305584929266912923122799595245467548339846186532250707619742532951448815188685847980779499493506188663451044016530788456475804564696039643096717355788810349298194982663179429705612770731001915924746963160625917780100291535210449150376165593607155275181724005978456947279267165804411491000796402301777117045669507012421256193979522668276752484471521942060400297525616525773634414471094813459817641494982717980804232344189084681921295805550953718705309762528371405614845815336327310909758898040823958142999547329516282921987096588774152315914343566334104968863754330784693250513850036402615789044876162366037531125008059913805577739150213361621145479613423708572082839391257956974973098646264167589130321061684302670387503402498181011903084939172750613649870352715060090653632144204952602562261632453682302599499731337582989748106584263250068115454509119725450902182401717895050249923305917880428029414901647910175226365532800459416108283848317410192165822287330483439969615000391131142072725896220041511179658044656488549426365869634118821947491691608903943040360335242613774180283195114602940377589219439498670972667127478734004050033673703577408794921561834676332697789532358293998520561117562038205167343706138306703799922754655601295026027492066227735193017371889751163070786848976262234285503039828128927761573841132762226431908527551087887027968450368679746893607685370026474621142981085339953943090041655447590409446839632039062084879901945062586385020533983168987184221492922968700189705245366281355867967259604763937772043911648223402178433692210619559181138979843501477245591834174202576446664716606543580950559056743621232472280691438651685448891479245849368713808945371321386816307635092237724227317655737268349000190406445731240993894182729657785224322465515343106875789429907495403701706984960024297689168639186531741501972886135407052362265796104451511809953438412854843871671940999964182361284645047091518452837266972337515525223194560267593130079327780071322701558483485784616489988876673430857734596381450702484411504970354508031290444161755621072551770812206119211014951500978015251436572191734750629047495998648811853816876550925914483387681465649970792095812681006618441399804922608433119229748797493293180987480481958372150607089327877212935011136445515712597308869291057704994623468452990373035986988437500485500934374211133580506942448341689197986500603782837119186094252300978611178918758474366796779880830083378705013840783106121780466381096225451209075287387895560390420293819795701995568102269264358772485393022857022768878128576184199935705281859210090712888147192758675161096638409170800640465142552028187904091007055166221939637111631355315016038650075854135477210793844850052007763073180640250225052252002247579541026402649266633594909398883618661233749053735197666517160413830701290972915982642250950954195732613282967287653167654764466865370482451581342749876728412762810905038797077641429204657900277898747415505316709918526244344120138467129719222940529650426615859475637638180483933189519105315284521884545733023785950428967868076090994060418370217457511176190427050804514116428416510870654919333846720063487361058086378240085554018858110804615216645280454995155790589699001171665156025832425845620490396199941046675109391053659923531753893400175570909220308698059244863323931056615168883212226676712036790774947555127533890444893650579389036926270814208277448064575284184062903929832106437933533276303715507110828588252029850303431893743240139353879943185244877499535710758929912551822718034035404188960371341857325135918645527661501468195114539349996610364736043655658340968989791070166245802910264130125085806159614253149637125740482469541261873706901742977033471157137901686519466787271477812318304557822411391627456375832420926848117586929301020530212735810099758669254436712714393194877339116598626025358646000211665107991065489204486720818337437877943321284420752499258242799712110306983648002819877600924066651951904627266459730125569572603407366558505419123616097922766947327810609376643175678209465515491348249034093812641216488634673288692023270242524189198087070074025730349993641290425368224274608461721450050170592233260583376540833798061098012418309280372304290883153681301116616599608312719069290553046011530359989407076956626994543260845892787013699157583906913327760008270158986016667368813035827942691977369403627641623271085592914169728016330729851840431570095417222429093178936407619112070370846019013246058440694620240348418954298815016447029830788605177923376208862992144093937615585547979717620570758218134588746558230645274470883604226016098462937022452233253806366009563969372682936485305102362895985302736858052923027193820217284172936959235602768412003027268562555546813761440595114062467157890898947967454988943212721401123993271953942760646829908167317440486355595623372122914716019185787044939808759854261306236038524882493965396916673694438238245052759986322499063954100610251930790666045114244350439740479366993712642323512535069655529564352315010917061894868594202513488423001358519910280626036487726788783246029630499579505623170598034755822270294620767859880937518493219525291448837683872646628790387245405762506494821029917900035378086065706580584668013954590603618802379851387030448771857865695200329612690192185037574282658500950798174877354045465330568208712144648655127603987173536632413193604955435226306310651653273092619353278389504221288724769275559445184457086740814270271963287355402450799385402349915209141145901503675392156965284570405252751546855164524811370048479942359481271486815353603983312948037207990757289209105669606316661497855269128658292217198211522376391220431495599784276199199463278931564867544471505123984822171063668220060223291802325166879436664325554964123516932255879882645238885486385061659342067100541175445204649627323149643457046941380598072658791457777631589054956849477546714883244157105687710094541159241595503458925101093192652983524470878426905519168326463445929980247802118789904596117079781526663790860997110664995831119619416206678219345634681188411480362398756166002379674048993500966827201141812358130372738133154805830763427308268243958294752034096759566796207977079392145213323292083797416088938805324518015277544589298028274122512809565243132940525588127113553530640674873134539058600733594669779223102915723106033353811788057434149586710676568782880116375011560721589022647311237990656825146390611801444162945063074130295118987964502009075465979781580329339727225661988673576294143745803107489039206062423367106857909770014837169003402558215783009540612614954461208653019021607670414425720527742777554123851125766010682335545678161630929844504584856846047164618346802111490441824094681002771187861422481306849222909981629775965225379903377581496038524680541149381574262442389742559685591952367292045229286599166891780905584978929895080727078221231409261039295014076046762681428496636993302770047128969435787998192024474051667249403113120295394827830882183392598303785676707463149979745239824580253040605778438898168169959770726794019349359323513453333715773862226185696580169909962751810785222448510882121094091121135680820046905455683123603713092577881856716944012148951736227320492416830802717299464898467175408480776876824609880503632448344574481396508538062484140932663116015159171686978523121586277219694782003262986421855272942956723352082500029859100257716818660244774473658683912439240787848468766472014371679434004577407448491739357281881997444285187678914150997001946897413527887315776630420202293704154524348874326742126906735058498021628957483691669820528319192200579981038130645674757750086098410163436812128420468317479940450605796453502694568722102563050327318268958709624421553606651475454830920360854809245417825551646535382062228334032647141042151043034110795435263562434792015464861885705701817812415768685134582243332543210619858009403842236364413267640516937312554493033446582259014729915228046601573735499917828017578317132400019485100361599024990876768671924577240523131498092210181673000961916704249125411318747575734184264583782151137171567622973155020359079027348667671072676537482850110826927356742906331829884463991031234377147262726066152214823221919613007355017056539171472857901532755318437948678059210685244935656960833502765053376986819900388067058132013105948010216598642629058745462204988328957751658922644086071670653625202509188482575203158516791140807972849616101534594597656254445015075744704521593565964497004894660399327731299710232629798734601875088902009892410155871705775917791081615168073056673356279414803640191122937845500734009789892051350916482569908300290186666238972734705162530013496720173488414504623736620301931755072713348104486471286606540899411594518812291199489988718985924328559647325625422579470851718505451958673291627106227741653175868395074388243560772668110930375023636214271525865716274098578481486370672578496808579772845962765363804655280503961817441672857610326608228605831520473856328635015084514233094853164112421534094064513639291025119865462033480706921353309354319913454966262799785537037065592795600013307319988665036927579894237930324606194639930571901415299926183659379745456344832865108715494388010701306693097405409415547695062915327692728175675330136567865445852709992244053337040409077376901453490716768315161352711201185282432845617967057807700026214452089964142312146879756908301389501046991310722658127642956511156077075434062022759763227544804949378477963587305219372742385945941292984408721926680461554788335453344062050697348707719813041459901197551940720773104625127699420298575927623055281198215500249714015495724146184074959571184473027397925876141230014044789031139871036956893822153949828521169837621279252246915502188932478526078289090592468232315844509106889850596292131292491213427601630502009826400094968136724464916857930343136923296744107134678702346917559597940557393630487324783200490203231702108963789234694448625807319908447683127720160431495815517106764280684869192735765508639715756711194430039569499930457266842169505465925191083793682816176646718356318733671769737295918001044323329262585057420632728363042736531263337908605502876171271165660169067117478972570688426348217078803220482962500781334403844379449534718351193226479929909295951612041487961038766243556717405271793759760857396463086593454026802194420159435035596284375481256133734540866224987870673598407913161829226471620446507299769436023252526975831084069401307510883000613125290826498162821399150570122683390339712614653443624525729709434497145339659034451900534376635015888846255898438020220089282751966900415573752351115005089665303296903410178077278812583524718830029803627208883809913572899904940658957197524182552210903442923341546908510999444820442259938663022499496239248330922676538251262012104251389302408194083839637446835334493710209564164304168223835658514417052900725170411499227520300420658171662656112299069610493910267776935858499846474221420555869093005488082144777717062451270439083676191906428655645753847513300905625830413243095123258792590648898587612540483549385698107406927820082332947242881367799662885603613652423886553442259994455074804482188631130562145837133900163857180159002047181069716687871180883975040937071545454856020226786853403160759532940611371633981608369776421434017113392986015510272817149316227354376173895411303170057330852202949852957103294264398704629133315417520417796321870384707306174581612181355872987967743009873571499608313829197982371697628140912916573810749420373013517668336255053269065487374689132539819374198258459645555688601230592402566882748790613696238212249130299716121006259357642045838822814834592616358005698803527513701231870277521552355201168958523682770281624749883563987081162146658480305227497934632968147833776336355494101310835428115968703963512349671361575571673690193416714799368828499530642858765394390676859995812150700901803780762013419382416207175952826479419486254484388171216125314520490154075542972854529001697957726660651021723261723637671813901380651418399185635807405163700443474016026458466841950781353238174610454429684749267636294189980237454024477849869692749483057293905736182418946820579915546998154371053576849357577719917629080039486817216867915190226009798736271892465519414988068369945121082837730280848752920596024783542837301619457501981995919461607895301940262679813109279242560021988240815051537288136046256849722755050454338379944168625094493333184095696327739078763331287700736203059043309453565078759421112376097189309331226260672530205348963233740535490628705011509182605011314861844814494703882697199417279424373244547942460727235458646609506416369134898198510215331190450591898735870921620038375001109115873348186405761050751077852334352520945159113020205702557343129826115761202830599473669980618319472879355882179477640524672591697601685771230516382805598619055396691077771079833531158637516412336201973124550966268470363090409048786456882773780410672251436801413993028573892146664726410148900202182002660163423768872941695366498922956473993004063933987842241268235091801596267235462108355799249530202563737552040003692420107462441459462370264497743463603161901550699406840274749962201617423754115137022271852290777655628763971658301853981222532954968890932388712929109707560278971430217906675944012405978108758329205785160446895560599565531323974927144522376776314672458751619321186295072407701776992982635480908801530547562273835984998229698214942725195325145982680231447345426514670739769179813692527370375837541082366944502964413634727571106642575069012723649105143273728750312167145342823967410404639183845478183203205337722817072498678134525829320360049926682691916498680784607598144306128696166553323815215401350314668303129377464694840043119896842819049172770729074351976877796134923060154973839975432021699361897345620553005412634603063314878992899896726057198780835859939061505454031872980961311785043921406512474260983412152007552335970234365206640369298819438924941841818490268308805188768111258189835100886069103423639384278383213441666422002702858656280133563325509495356988899568988659801047662095098219064649042012056674883194947819764561878327854737248159148315314435604524791897665891233241883231118458088594398929842168950212576900840669602529016585271672324772639414908241820979718417070437787513682104766701205576312185007854532140861628836606733615662940535697189708404474638453703745005604773812542872553706635102872357870071770182983055966994212380821726741948016458323989642100155725077529877980382469104118382327460430119596220288772892316590920954771789780270494378083112812945311186098178851122931255918599733634413895076694397870854424495877549411333136452734329458712164735930077950643823257087235217610324087216122738586246548539036791738316013885460263105835373236558910201066403574225038157300058222244609344877273884274683717411439132371002650607046543095350558106362246739063614400903122570884379942271844952212633469443324226559186073127090282669327053522114358542226626397260907692628629762915144212438644218351718836732272790198395238292472031203733128469662522809798148735736855253183693786595956758557938499084586762034204075017657475003849120329599805526099286815495210540444946348035878184321620344619998945705778930269198008339151234937846265051237540477427366786745147306303236949957132661514551940876115692156455873667329167171433982006976785430253456844270646194392704579253815934157345861703854619571557414695657712250926791812468559578953727298659913428513262168587370192413112060738643598002313848843048155111981386632059876227327193153171454003949852307979098141445547065215607413189072620846833694361564852172904601151439167473431597911651841688539654202937485812996688376096516624918804683916798746489698856336320556749421213179977991305220732094081514662189879148945182636450062838048011779266799481906247394801511697094318965566963035073018794084709425516559297087368922120660777733911884094363140957983855610422474003642344979967323175024309912299412060841429728096717811793668592582249961916430203845749861283333388350269238500310607529574818855071925838079246002030237171482159218847606027887006697849190935254456922056283734350310694370440419358131207344290874267974563031844996762193687507347015815611562042517331488368801600907798410959733509773480899795600708448388399630054650882833005343816435574361857281241740089465614488671919680621404258477351158187843081805572980653115699271460496879803745154788116142187839697442791504747435477602752491757888172419246743440750655231460729824571638124904335501648532423890567073253983979153775433339023855306606150726045485384722572892283485723697011525055071066804713097912772651000797348716884528118648057087005478349998881808268293545638087574355654074287926331843597374979070603850857505398642496125744056944271304966968625669600331375080857378584446616596630291534770797769664556035057672161501505537699969642686277661194683737755417485579451250047960585437748835337792329290452033789804832228886061780369405318253876153618030608810343012404499310440722881976756763887756664782587326621450842248999905934253402030462529303163395431152730824799320101254894526464357075671427386937747395322751863894095592302967569062548918505147805891091859896688880551148642901929082170341024442844352885704573964637422804000667150322323968810210908055405209950898684746379127312668188796344028746048330841687248137183763244366895324158837197157252347836896218607776373167824491023989391601883706114712937227537968774013295723615830277810927479322218486142127017718229245343189744242093029780364598906355651391393266694694621152670533808943132967913352709444250345536847567263401834757674231694260741905658347401237530982487039730561472867359977314953558324361204351733362252628843682975988471715440164591709467410804877626196240886979430006066034173122534664884993636225627777352588807929521899735765478931731102208590005668501999408237326117196207372857616625431431133248082485050349039990786909846410274291562841052540530460619918510520701889190749864259463060887749979324878074006183514557913449721484526990574306698887931048388129789623749559389669678948720213733629757826358854927833760231596020747502466198364306909017293208243835027456277133470243621991036438631980903249234943831523020879680476179157474388537096586284475133058538581000457775421639653454137932506853592880198310923175529905657122393406821302658396535839219553391819662932300215485121953676368671047923990373174064631222760979659281881774884721094337286598275342633295020524609387700335020454638552183716799706834980106712952022945240414382153294384046073289828792037375227428716721620429107222228841713312540023591986496419004139962151183737071619658559257758854178694662973172102950507400768094821092188494214692553852724381299004733901461748437125428008148628728632921514142742327247002939366302911576182331250070172060628555508614561236490441914598374606378208206618021014049766905797303208853064302245236055570728350651667366817268845168429722548257516833256162772664211847563438073646072821452635902927886325892200779391170287179290739795668970749540722290142230543247735640781734992045166495180589204841471786291046150532672124909816235940766525922331602148102301838644630447489905042121746625298952597807644205265166255281519712657313706737253089615183108729238694477235886585551757081458843737413990380080938587676177621957452460181517135531422439484176471290321637441320899849780530732545776231933541453096223624409845333251682016633711139328377620705317372649980827878266433098499959404078543897798502269749986615647395639177655527365942438449501412205375102496935694563051714994764705690829220971122798341329695187770027983082594378197710907074776534550254673510327026231030305088564515801647280267194796468856390743607553789812663897807998731924096038107505985052764427171568717768236399595786993436218180833885920757414302147518168411419790043700886502001417901980676883144559795357115526388996583714966397071936745049524178418563491789453272334129083420103267217836261731221497504945821201017502261513556377454492359340593954104965967641483893205504697069932502059755201294093989059098811397589527806605072338093029163298341717354305253830961851366338133779079849370645072953466241219288927408947425423889292992560737748581832831723442203236723074508380689989447572986296911084106911990731031502810556858819006226048247952074195894504911402869138897472193188705823239604570135951395113326935165248054053560106152668690161112266766661634468227623082292779606654970037350572686323059822260190064417773706435854343705966171362600369781578703168306527702140735208280832925603498287503383184803651973240976691630442725535354519201414691446676851915125258715586517837728441013226826637973863821812388182876869332829075944151375205028994017804895858461743678070760095632387511501445387168732280872781337009763431751689244612226677724804260724742297193255924125137641447669857883122862244942780311488214485637008455666059773730513077966087218500822064472029617747792970477801181140318037426901992639251648677202285607230490703647863940687876111887210601673488622196617072196271214617708299148008828169291938904135623977137195053943603302209775228899307128704759758530475862914706165773715871479919202852834163379009366973457813978172219081035539403889117971017818560863729541235372218275467290674260567740229509275516292217509422365043566386130344553739261595691313084996261028212643793531458550278455428907241436121270282684931169992266712736528009063940498814312596008058886751382734029044932448630304656349721120965613116945225015576986192108539215581962517864003180304360822049976350332334899005485598519949874194090318277072295251652850736721259615251811724422145763181607323916324969966564970825098973988665535622399351029653268046329702825102317829761821318724040757618683283041251767591339350449263515653387016230975210369692365872912473165933470097261655064761475817086367551539531700231755449348518250095286562779911023852047307839435077914829014233877595595977430483515902073116577604564459590815071318552855467743411000575520622038589627904255155756819976442920787225050459331948745091630158670555537317208640611792299381669183954007106729194798159425083212662844226075832097443756114795181475910066715829746179875612262869034655760445191488620066780407703491119039744845304538958815425953098158911930973953491313392750977883971311398532808752566051544006674054804684605912765278069465229963785144156435850845763608601877642852452348328588809457700219110394811028004717892277875023520499390475521211887580419586395936044577332435216418027796726097601712368425278658856778624526051735489456825850356137149091520285132088860332570443067141080699792040483129551378388374343233509789313623084740993953442709428163952282920276449263002768133793448392922527891780432438289669817479897358815544898575686716926708236073566561606096017988793569845847968684961951997198740628668148627522951858080008327787666025450233589766400154499655826095631331487527793202855078115815676522074506303328604839509479925245679764499774409577208990282709321324085669248425981371099733904973402551057202534033165509189040043555529622629183755505631937953977906101253560234739121447381613728202300969321217111687084198778811590508035203705449627450371958314090824882601854029646680564036904519964615243237589986873425216211620848574182848518006563964224905031244473383392517695451540054423501496243960152186767399602101092777434645720522130528918872404625436298807248700241305603612705897663502912545360893620206582631471822097287684366351782721325849340272209272083783911468117498753794356655350910465239709098062246731470320783720321123744798378930514763468271260001013817739573141770285074126360396230053664202870256776291507743186096747538268682417116340077300044140849689447272668738140797431938297434783532645229924422879225066781786011785663228970655086815915891142970518962783258034323627638561523401953601464165275950536735194038141467574917636303344829872922702935033691489095864539545183857181503010565135464769884282717598634220042398011009094087643955298545167125144572352308666589148562038713691216062346264769083690426969150762969369790487710150740365496085300733441486950810699236246441817511766535754360589240719949636051584140268871753754422542125962011785560136264721651377178810152842087806690399422615940640248480021074397443878766053210013994038812830211761467567105630800741194959675460861443359802431575221920372183401915150174619013733222811258062727655539566176490272700856447851935302833586171759230277147816579030657674971347572504083340006877933929929234742250109120489646511816874741344444791834369547133912358453699271917543571337697736403103470220922193838612614676749519592286477911389887740078944697076155009043350398357911263567844522720427703119137020546668149812731199040993297542927559909602992792752689636342663492802835907879221479154831393429898990208905899140582697097489547044841894145902225536475634342366488314514725120648580229715369900673191445854440925663051908943637111331079167191531653904559830510318910425960462963092089765348334304304479721466929422731780722205472190724044062837669356578729588559763280537288875225465317673118646148954302046656252462047536256863710741435635965487446236387900259175776843503707923555409178773633349651050110684738224968864285683607194911082124703025783204199395410721121134543949960809629007875298237964638805308988750120810217689446843015062118985047740000083407113818493493855616206870326328164545428954234439514525458001729074786046747791178018318020912839669291292094794720248133937904406252581621736883107074838117186207098735265860689973829317944656994315880723040292178266836019530000058137879069478764866596528276674489175654407730739938036431955898071683137870018876887138087984603761792525414227676906929449820950179790246904136073213652077857777287879462562338356696325332217855392752035677231574023045190249964501932897491728167088308160396941709552541828700790703608539310437347960229699091102650777039600275397608919489329416361439854922774824398440508176666073306200017019768401039039684652574087949087397075956591232349020090442562325178551972119060084620282889269158049269884783101672743706105692013247990665179801283691770523723516719762368608100255179877020312001107808059941929360053145098181812773902192945486606419189165050899199426025207694220153234172938242210039442368909678841692734611469097034354494753660973412726710989117700114166608021040195868775441191827461713044650383567946423975242455591934474654711888643534125305522220274839926292582496549025623602326767742873384177807809756761834461731722911352947976519509319682323699179736791173228885370350296117755082436422061361023394224721696287518433076344666261094769350524528441990242108105957611611607391088031976736584423705602860371034863184772163695856438474963080178417695724648984204157005061852540753975404236191485455816246798749489194402312745727978822243033413169061500597553620966323980878741064685030418161793474223433173212669308807408404168169880739327145600186375380089954339258397939565839915073369265168000923070623568888815696990443973212432711594756083970862731866445582801843047549720710475122271767208731180006924599977083142226247034210110111472296304899039793175008708292065411545507747504193096306843485486315996028233410167860148741066964221154735589100458546595094579604843458195713995543202511815678884752753293647121744764596742147946099295744237975762810659176695255982493890209430964817631411712031920301285806369136893689687081838286857687500348319537355170425701354668964097573412417971211683615605197454060967779058496095503658342321735666189330753211349958459565687083538875012927694240723222389710873292355903295438253626383932829619226186935962750836076211414206145204151792494795437732915989477446650476914366162671902180775446677758195419688272539969509495671187599312044169867306761214364961737673566494914050639221409880185971934929824286931837473354197975948367704272229292934481395816847611898656161148842608097830736968844300208988274429984799910495904973601783709353751760357058752168607589049958554303293340601757722520870104405196480410765036001149304484442791335771317995568635192177959841796949089885322105189731518161042225765396391102513573528513300726824857953168575407348803553395885169158227822263378225579116788948804175182544634063356111491501439607969380624853536946417259779792941177194539521396859865008021929190363769754276831458523722585189134740227377076997677877174989356306532862615770372002031144614862545325926070731500208224344374535796777807220170846549509251350094736796156097039193552735826947022167382976527822067965830013850539997804508977870915227989614522784923703662609723979597210149405102763740344203402918641898084353014997497599355746185494897595663139627910470443758087682217910555057695694502733534182991768786733205977332413525130095951347028329508954498774632783293642421274385597977487532664315970255874011912805977601697533661047038759777083680302144420845998687036838020295424834580641800150361888781240565177604505197593988979432127234489306745297526478928296830688903255882960866585221397058436518837147759444517197825530636550103556907353605569124363249153917391109718040801205103213973408068104368988668312914128168671954399999753275280757367278247102735809937736288684856138904236001489109786552112202485138909707033769982888393238349667898967542683283459539559668641095975684126478410057523805404022550775717320248619214388950902685104227289500525261778970947919993666909814796720823209299087457063006285691357925714265915801043394288821187959132541698557611285251948468622232957926578750389196549705534312461340606635062281212461919689982308806964108698178088229466826203099348905975005654216700226643480493301473416518875999321494642185828875243576545078705811389193776879098122563778477927189376393906694096117360790175194656232981466936748467273642207197363339073797912200237228043510988564850867542804888121216014155553727551696821618146964576335211606349823523030587339190552291728083903784400260468545251485969108283884188240679132940382900846283891747484720568634734498010255315935181457536863969311626366059368131415429511339381483541556026289506752372040869235262134895476148934657840648386589501954645593191170445745131699975006020371652540571381340658807206075125234362584669312994437530201536885187852144987578053136584092072759340941865852873118802714175300658918409910339323209788667504976281665467003806327513096007541778108390566508842672110586283541915325762662717620101274610715937603333482193440203803796942485532607538719620375241695046692927249526594408219164961671897411235247034237724798562094981831375963963591999050862822199595469853550542817932063253905831866041637326690321280405268105265615029879508069586667605189229720612644848382130397658259123970893139831295259868817232124804406113177890985313938116766327298141463403411221989248924750889977345933122265468978433820636490549003945081999271326558282412619313375975911755306478580257958748554587960146206311286752939367338094812093364697622669806480600797471668504304241307703284561224658686507931579709146348321705637375118251418363405400031210793438115884369616694044670911359217095165468163997214257862841793429392255487310180432784224152200156628655456849790834434597741804684155683842703349590931519184069505472500362492736500450024816844724162585617681752172086728386205801225808703648388854730081909034570494901746019364021278282144897936185722215026412917508043911387473424883514063090154441205216857460430831121593637128393339914280710190777198792352578861562006205285673740779991348802715652357626351996892118924504589019177302587216738362031719909430159194980384193454113067659900185850598501432105066178275794861770604825112527472239536698726252792626331803559017464590832070308472168800118134940669495874066765923543447170397048075938173836140805766336619580238933495901507806355912749817024940207068045150652059220065485968320938445334976071625887329035773624839796281792328895838980270794633493606871729314477987773331156063713057655640428704724440562476055659415164539173397145201944989912358835514480484897439904851671829968606923743618724112426003575410873552502108518671258664568236281582801742492013601493019785426105618828246480382404924487830116307854625313426941792728656050823606656550557768718099982827216553978298548053824927633109744345151653022729634263612206759765704455596854136163712945031688072833172494149105978274536867360170120391172635888322630861827800732962006554982710771355157442100160554950376679265053069881657951695632451820304107105762184002837105715941170038299500862476480621828830799777454754727645969258740043466959743712478199567614750326061314246121179429255062224516729199823987495646590724467644398919145001248133759382287414985019205711211214450822784928125583683964776618192677571310563625948435380421410768400462809080593393351702176662048119318584406608666320166405560588642945408901217160437358200296278266716823598329897638673933933551077469266135279038888197528086660138851885346268687281253298974423409643898928224902355740185161096211275190143975953569125098781485404853013249422046177241582358611418548573008696136049214479134510526795094545753362070169424350197298976906469188825475975293271844401351185025617750661364501136786517255689150310183120461796876413504564494256156906150538804635324982552508433738726756111156368583350641722800311644621561569943327160724374576962115522494587141065007565263401078131832908127475501902586686392990346024524223835129207113245580575607797341867680021544509684368636294723747748856102613245732379631593261757700432745746784654917027860458722033914123841900103828987544089359250589607070645171251971741858004114204297650175163155799897653111448187897086437110020967824760264450858843260539535696237651363906387156833912248141808535514884583534949172060811633138756734831547279843972198452227138989779826610543718577548227989635954032051621889644864401064774239339706154395297891317675795333858689968557238779936974301082103099279661557290549660172267111940909429377832434220377152048335972047003833140132911286202493337995854109745878262451934470958743531906760314270967180143726445239615218299371930147448731735131469270699363391162882476701172145622983956883561288566237503569256544650753862681092793837156732311466985064922297100137464330468734109859700161561809860831051220462059110955738130960299360100243488143084016654777173340225040321287426206263850443072559425356780319733915713117826941630403246448257917266974871005179215758753656605943276353360094396857365001809644314222667286172452370188224630535438742937358095417477928064895429397223722949582717335046926279590299194608890941585366435966840207058059579135216484450172553636621048844515057241774861152390345061740941236227231812544569379796619641899569912218952206390751867319770225996572152888141707173170637291334346985048377549039103067504260133811360479388309112781513276497760421307049400646904338833701760309463010916946243573165927320920145921470441546647151846726664012964963387194857427327405278569714598203636261264277790677951011520267936781156010898828263692220406272562295834507720950227200168255866866427600644522915215383976211483516163482912750647382824620235406326598591875642011779344826035558854062754721701466302766487867072855293847592957235075515890808489105920834165693173182392867012425214801744849056714423892341319923390017939250905410607299117648887074601840749523138180950989784621366627657554933555570456332652083502214238946059775953639267229095926940841203707173317175364935995353348505948512667598198961063883639014367591486866536014327862848091660053113160090696117247733211523059863133065907168594898506425192978165187466131450667261893031409386310395971559629223764887944746914312051830492782185441966739723012124160846030795322122302540109919008439434248864576362376586237992211542194269344197072406354508692925916313193404155103730552481317620225717437473868104109121789104115815949327544071306956102190125362210321841415991995430618740354100036239153646740066011017666724281179828255064844292966544668479562670282058443244384308249615559835497070238941610071270516621539065238397900573421734980275060513207417757318334397348735275161529413134729170560544812239613579096765998451690613839667637417577276455087890463182268367545772504138710018491419281180323507624650945616214505778800841769845870232565439763072803985384273866194447602877982408065994715835536262945619558040908018591797280991050744029660013228408871852407870113992584790663882604327018750122408896154674120048190406779172158259043885607459741954378926328320731898149954259744866413679961894918433299364584526151707703311517908424941745931358076730865396075071966912007471309379582161981293908354084139647104953738004132404997476507063014490862692827376339247560395757716582585427066499271580707239367219095718627997420894009248719319391046962015517832291141731464503804524405756587962977764750830057518240371482836332017149964644670966185114493482002283019011374577402721297178306107875347394519578052308524300265626894974430191263740967690509273061178150643044479339159878253113326425283063538994849971650508267914443240637625575126221689077126650409208591300184783781608474920666686014204076450130818750249207484330710195020255498585294930996350586981439755250755673470727693706162200189210571626029485394070691056817339173606882662947953499070516958669343764862212347410501434273703497529443470047329108836391513342819308147978503315626608243260952817919385981644416648563478203323854704312199381070524060752670047425988889152524078712345190350112751725399505289175142849598239045646883841949831940226280705715805523957878217621261820052543098971821504666178975707237940740858335766497901718623128254586993403679523847977241288379080630610993988685107249440343598523815315322888531263436045014317762349853950208356007315318858705877525309798480299001334431508132748689169426885457458344708919555433799593249373484096860421874441466978347057925947771944478321224391597436846066517180117213733581407345086147706815489138758906826068399371841154232770726944513574640037025375761987121860453580869804411618620645035037278307235377677186675381847618484347295191559177599211427754179033350824186029706392286527974988533250169677050355246606875192484495326981977507853073555369223424296006116960371240533135315969064582601151550733531658306392280301243771398243999017613607577594276980141251421824196392453375928918922344774528968329949528605850535794964604334607349791306019100539328914351364396119045246081800732925789277106606429860283560291245444144431682026717577183940420713018232759077427589401596325167898062086775367774005232114751727037950582501704755534325852548526151236019686702107038524000685097683814257199986110541858875609930774116309755275557708740222797432722265240133856246440922487000720378370043502691316830012979889350210295007081833390182323223233595198646596914495206902529524045802873036670577743131736573244394052580234113500198103826310767929467105682327659871150360518821378726079834188952532975770663471335652297064700930395468497498627741097178229447768184300856664002349307576489074675548543026323442036253079762459900921768632972438951295639197700955091787862240964617306935971150906149014745530968353613181402433111983547387431886927417829478291527993905251432608588347470307867800911854494871737738002131309849049196239048753376015580624763067805268612765193269216911072556487000699329987619013550695608477682489383978472039954504852051497860495945417760879606686524008717021889103622983321608364401442537181910442981702303571348148887687545579019830534300810709520520183189825072032385674866011518916590024840778506278771859229964530817395521277509920905171343822221699533970982734393810058169036142721343641716781691381925746450837565597474677283972366615537250882871282138276597368936291660264247821773320097602468892517159033593123092954013984285132889537170070131077472721903697597654185675920027216002762045143177552398609893804616352800165709060051299212992753108619948971032785554364926033522129415838032230573241392543236910891584594698958450661305159236645743866268784192620428159736935018876242956270864849042304361347619810675711661188022787907003771158586500049727640431263352394439483617504749877386211681298164098242100762789510990921627731647054328641718469641361988658236788783638707056051049902519869510686211695796152493311290299074309184305209583873769472725229646356138030362431674628272515623692516545414401909278241813123586865791260966854847533170759482237574414510439914799068367525584591242764325817383533450727810933895648150596430857851794412302393408031605843861562638967394148800466160178756191706598629161262016445266490133351864852829560579298001238970989048758824886910558591233323088708045094360668925733129915051695764723171486025616407581092911177662729737042189641500726625074033442385578315684076670076127375099142001359506090078074538826078446365423250472831730304984578459033365768023826966963632075147786491211383288945047583231394403925521794707472543945423575108534845270246256817734246383109129886044727088133539858663894957437439020298746656244475781584531454405818664767686928105703915075259306211026561050945674156772274539461348316885630349069649749712329474310654525586333638787958931777758159199310547774829678046860305422667527058339337353578433950087396812726079790212860811384384850606703392211229187896834527874506015866680942521067750645843937015111432355793948346798494004010732464124843251295653508553102607852236895946526449564990391465248128741819516878912965080116265271828157341652418207446637560696561607349527856379859305967992865460889585468287915336489809686904652067901622830397810639080983490859747878056273791396650739480478715636776004978312346441567445437539442134103191827360213710273396174006811605253329183408066654503774870052354762326447111586064240919070272199043098802469337560549585508573185136608912301368610464426213993581265337954663713857816715753346922049788633178301612455723199343645222287581620666155804755124671970766474691374883510556619915533679512644794357364124511483185722457147967904000264736531251499420391023065796247131048853160567693721357905460206834811699909751707686646582675346407947975664661749573885184324556368475845397241768436845364745111986554160106058238097306443570575838291897895858140577272775440109080559167419092619212219618503663835057711818921974645860478130494766683635404228401282256073131929991420387732901099555162726049468457294721372171842179661904741135973901202364319303700433139730465101804250135430278115427521542675118546679214919129310126956680105800797379334654114885399497958016659300660800386810285148261607017425525857253239604474797209873626073004176317543670895833867694847736215695029945474511640224987262210141543486981718690333307435223276122052600286487275745122039154380066117070807092165871996839628317086442949901974662943884477350725657503439621015145289358497408941226264533358157242920255277553568686708578886582717975623860679576087443848725671284246734838613584633930277921322101288784508182099389928360965359158446072908935547908051055162788955628943805048822203194185791608391906997126828083132053948581017639375039371228875092218596450460469658136096117311214454949630382642508119701977859161750694127891651865451464638226049058120892963868591975992560986653320863749825223914573792529524817796692756486710991464852265870720353318389772541606127577875176357224363631877014914972899519935260459791643348548939387887309367967654929768323553032995312995829786069359218811564687313679921350805317254409506728209525048395997201923243538108913966028323411578409786752388838874155280650964677226468864268869699767465863082486613998059896565024412086675169369578657866015770053991286666688180158755874716084381196904653344447714999470247632720139725926182792480366465846417523937868889817348748868116177451218621236052942992880430337761332965182311689066608886767653247428578783112585105579527032888086795455816475404834120373770836564822927127575380555236524521669954597827460279892149949452903568083541805211735161360761369120821275224582270709798658004055781273167841873824446102417325043073406828712805824745523560589838991515291595813639677087304145402812515598147799857032554956508612487033509863693003503851538613710202701621056089077001016850686258577911592716262715070940057557218731412311230394889711974958290151033601195617947068506113315191354377919816197780898141785243709497109576963862675167888756133893950940442256494541389310129344184437547188362729320225347137004855948080514026040444176318107126973188673290107260560837290114307391657788010854351010718433650363798707191734386940437281784138770030662699234440774747681909186130874089303323090342187534005504727509771763912270184438948664494424302215491294479028566962190398618200434147094581330574159871506754723887990571735230575628913867524325997981388787086696565010526533944040885824003610754084910160817393126093462021449225436945737215264513590106633367677803830065880402883437378751217626737595541172000013896230586086298819707182216163615922226984053612370811836967207415376708432548945456631954428434411449879932869721750193211328663971496256799037672324507786519830982525749686498439647901846772550749508068546844869759251714203773519841851015265977094078638152887367610402083154081746143378618198579229499415921117483542971346132097199007949044211951317133090566399604843586199196706421429167211103694188199699338449667222318089425204955224962723824890559130034157515438571836186146616984163352216820208048570959558435868793020139527167658550745330839313818380326555235438023441416197823746769601904252141611057868361965368331536271170986371907775033080352480765261230533785972317620466310960683296623559720695497574211220153212493985628567008611060747717067941810351409778117359758069953582587832157366015768104953992943680938080425560455644693651915854588555404344093321847223744486352407629599307949873729280241286410844510396977897841065849826808850828057889139490728480836456035565086029158699155556598857982473095994149104182884955268698414907158715660853523437271922814616973044771215451619853957569405190907793305796819430928381157293139322620175258118061030293883325163265806823014163406289282215285598044201711975464282296652240016259213002842266582582609958113079163862483897426464273967042701194370470071770870444258005608485266852505020113456215844716269808157364511542568214890783994535467566596868802967902157061846154230173164379364057123267716222569265026722866448116238772130936092783983076495316053076173438601982485348958340430334768576634451769686166008547079618892940172471091154076613616110956377750698659738245582088136641047651015629733247356457639167337161800099751220217045567810481018333597307465622379812718785889053883004107860751444478578910332386884844447680779565703008734462085105346031644367682292496062059240170040036818430992880491047762642596395820272445964781197112408654125643259636374103758252061355041387580189922553230230353196336088770573269920935977800675037762877356585151261908725819827837148067916051501488765397779735853865990344763366638617455780158199297778289651540466192965119353663214501536222694174253972124654778571514667301332525333566834895448421439747160495324090432994750639830095662294901647460147918741641414859048004694269478666933646582020059346200473652196867831326980624683478112180396913662711519685266401886251232133175646303169683049335260443755999151878093471681982222740808102593961578911078811674767311037460924602389919868417002813242751787910351353202394217936717199703176420899897285258883892046548340729071015617666131724647041103935939191432236740045481197283646765290545612636754936425992716971576849702285420493048074459693076147072808098978125408559551479235831528990041304032751058813182216666806061915414283915005087554453792094217478388002405237775130045352562706139900928192911917391054893243592050421277837569777670007575412603917105909675094570660706333379151671873242172306375182273444518888537231104364576225533017874861214313999316310008773991634249824641124505106547175701974060949413520472879752285549272269120727271949839532543482920894454900448711558306454104966992666712135040154510170111024328673404814696001315115300684387284965976472768328368114648118610061740144432845575018162213715394875257609029027354863690767766999858317101367507857859320292427702696564430860966811194268027634590525873644946933522689372325565931847054453715822738948565066025839795399693142147250025426700960089717632268604349459858268913448199038920541149576575958208245107331016590990221786593680503366113725991799575155352991636229520385927312279971348783237124709876127401735116435040885474539374548064178253888032840319409330944297181311736528764510688910102577212823335999875997811258893717379642578338489840599191562060740464068629537267356189375532214909141352366801917648103748747575422329896013321274307978861350931668319638229607969962190514043396438370461246634827562638441514226865086500845356602176560136231491037865062968625814956591578659054924974522408684182182198865345446423993886364839918097044965377575338877120048065029559426254895997775080685445159044287269623600182508881311594549326532592686694014313041567012962493479483102005708208953079047305870632540876267768827662068146462178818621712898213257092879041888543829566743804146949817246650027030283508996288912566736723095677187413474119054274424150117155734911443101793636034683320967698693881370190648474037196587727021677716131389172834452589724725119502652038032597937604122332528619231812846591442646103650464315196434397572677437583679136487880683869019697936771100826582553885776487648710229323284449762681156949051198323835089582224639637500981697139689730855211559872574302378201758639772190454981464843340171096176142223695593347620693299796541076978340550561582384560993913494884994375831502684743736190960496289450893661853531363270474848466193185729653998196092543327543417874391826492683106200191616771750231848028838672882702648095510534813435870211598169244650237670857930312105158782060341967253441174678274711435640413612933518362968849927232611932238596969402863767711483122062350065194837944267613905778337618619873230216403369137513337785484609028389396888961245810799976274405008709402219365602275429771501510806114705466018596275992120696624203937131772835640757483889384014281237833966804576032003698048725811040193944629468941614245509857961998994506072351776648669287398687246642001836323261901036067534507654977072962618742742733514428047025677528159171078528083495334177492839816085214199234521991015069191325632391201950516102079674196999187493765802003865540195753642722651973043771470277160437453896627821765846830827019435387681625821515979322884166846047125507024011843340734995338903174624256090148512499497854824257124819014819375158167465222719373133650863606753890705405316149742849955367935618409401046166925170809880338163088595038271042762730668318928761456714771862255625348154937085849550705393009282609721776177436908214597685856685193275255630824840481292772171737737629731643859407601860756655176521298779316926030597799107680269543923141934646574421096483406320519783335183084865342453045616632508054079573443482638591856217287391741502706570688476042416535169556222567733335110792996366935085945504398123686864183188306203785801086599508225021523675078481124796235832980842592107600626053501141276615059306510834355537593177208687826188315849665095928351109297474047519597793897806153070282873287658955698882872483701518577907565620448117504859935802787913220492147414136140433996836669949953665049867798384546691074490075682044782863686711224151753844206900558625225924176476846993650818215681729778736144877422638376696132662062422823398207587034111993306687136791717631756743382063399383879182872952836166416518461387434455942511978100914195944688857891252793584206023918339141210014024585481589410212808169641638953043326296185062828812705692400426002734905537858873620138969620670579070706220153900260350711443267997728277964531043519086294735151715589534051390423352500704540892784854577428492396913901448616100932536150256087129375021800431379718908433551052471276961962552762865917162505885406900777233239364536697282483786630116884719274274990732516691324838692291512725777293602182842680649325079332197118307504332372864524150562309094268029831935713659974032985919144558390069022704678938863541574341739060854382087044194438505564220854459096839310990356274570222431721133342749690998321422678432301809487846032024107485568385477706754095264760195625190990320254665291114511806550641525784027767201756566881234744129508996667609959604068001503031537130597452330721015387579053605939812395923468446665811482234240692808301688106527227503678299175388462517185675198640113782423994574798511700102071701533143477613140088323094050999256575992915969852477806963572830311958438454921353509193773710762834245970048111134704736275646809687815957429677589075653545478516788598941864634833865453561796422320828306686735686580120996991513500857088457802278738813577170504014875258518627512712148390000766814308348902484019890279085257398916819000485095284916322514645755031322174751227950107875963223536024410693901766762331742697671646222836062356056488599717329251752177050022861915929246016325113202637796383370531633374810216203694756611568180730439306591687144689191725500249882362261122307442434825099833762035754827050273052633895194079677509454710764113731292037760074057969453120777475841720956130491301608945343124908339422476692030364277049280239569356998496861603630549205102743323199852312812317674717888182643884311411935426439003778588822847153849117279010115786083020255088938800632763063757381194741596701104458210407156776212562828132520589271659589439236493181646754477385201867513753029385888976216654044345157076939336950156797951165466042196358693299902390322366730938172563994677859645606605157670165331983816404189942109053711621265213783018408317645525502902136056465315105000365915212355232540055043274512382780022549060996388806667948559078279544557910398325753480900825126673310308966001834946177057089607627361875812411314228971958523218169948608385878843185852131943822728243069547443698794345883461847266412770488666283875762362704349966223098274033151133691012847812574932870047367776763606267455277363708306378436583151811385505899334112654921755262731880806539345509024187065635028268493166804167004798478176820452363197361258808622434268772202353534161441999142133113821134840553851524592711414102626539403931070498845820191192452298646290421352965481375118642150319935759379234987902372982909233893685602731770640287219699284554188188985643950410018897862619569432594896416787791988459637271317425257656130455962846344806354851494035799662736098311146699757456828087646811100003003373681799966234437560894619563924083985340823803265125298031645368584755285536113762357560987771631500997581487508045234149059813902409240808405891822286139088609820428790026690662567767457755553797326734244721834648672769355497612908273841770678299235914393543455967193608999374901102078924271562719805052523084545881552496700995922427213198903558126997977840165371449275728548386322576577788123219349397069557500256568079526002117473203075815815177013255445837639972104844688997987799976964389749423105035338405349507247663200545989261329065486132468868198815297228456908309017435485245615945943436085738869234277773046362832302210622984376051207264517823512904783569636796481884092753215879600010794368459017356496202015759048177475870746509180497343280224518788989094600974468280518016522231168067083616815392178151071074309225903080835583487383479207099081388630409495452880117432923651939328793774854741810768164078613526292622796361602758076601536702225755314119458661028550409954577988039767739739532042419503029490227707398007272426078320775803107028319959797781199633246439105889925777409790004894204935397816438830434679248434466864375295235172050286708118053235645202490957206303013109120588377836606265452053344023564485813363119197817980000587037833508992072832289776693533716367834829635910254727471487342311357597011352114394282071870229626517092511836903365553709738151835778311723621943740626056523034641525297925352567388732709677556969872066216778998218359777448571258088152995120842420667976562084938865852799722379101444421160572280202717174962920659237611089678225803645606185693854596946999630144424363512341598472540282177649905368363349957563711421564119245817647838063038079753004435195657716628264312158411591737124548992652016470881691181871096849170665459023398959456554505433650099823697583964911669312753072613201819041633067318740855936176779367158136080821627270930026338090743373675550996227293669068944049689881980191108152851919333341467403882904885308996263408589721867040456707334654118283594935453757933060217152181452386751280911881064871453178160107070566339359739401359827469670637546783473875194438836101684822821417159477630168625753004377315423704919895974875474251691171697829877286403482496945958278665309951722681951592420832198763336657413581480698575673929516170074160829154398018483688139918601942733094144043554775086960223847301809863792795068978508390250476462236644647784109832388671612989869241757560509765098331179981883120423894888585872873511114047777980362397957562771499153187618029980763497381741606750518841458231191695137927390573820520875356356485778372180806950344305235277618166711008200552298872699932045310742428481665885845452034271070441087488303266656162510229164252767736879634322938964036583535184887955055350456197559130807290054067521284766999746810649378921649037854056660659253458857861995819897533248281875733704028256645626017083466267937626925022498854979149400121312734508512782538911992714949607249817700012851258189103304814131493793621152018333241197303568340942029180642677718653029152092523628041467730244242480209492549465856904560639853280795556015802976113450482498530657371725820882427601407405749611703776340334443426809771118285321433463034867168611870483958533699176621963272208463021335305239488056226879139196712045530919285719705780670116088136591408822963191310180335237754339748674808368031897140939446015454245448732586621568784917776004219385063254186522505309886211571032523888855568785140910839838029724521155756549615887517363124474961033284278164225961948838321277045577906985713390211591478224756313838577196272321245215692257700391839527692131250739206217501579759693106505948948604530916941993887198402867237700506247473243850391580704604464822096531767271956166105670500451547812134038555286228754858819999960427364798470703960393682513629075012467277810281155983358518581931565575269104931961861288754129592302756627254790559420117294518414617832362507054546624838743801961996429926677551217899277903079795136365695040585298277821938986912919934856275952033782983833373727795493484851084724525477299045056479046879805595771273395744474518924378191272451088074999710833322404734480287857182308359206221119472271117011657567133547989151849683347133469141759170546916405985902099930783990276637381618767292381389065563372794274750981736352904974772448239894563583550283907079663920465527377844018325038781691307335489271299400080834230350298906835691826971452140054682926658504036222345535249644962988898434120244198918448313517924793575102584832689401623381011499789653788065789919427228660148921373809705790775368995190542119989948619854406908853637051201217767958172778619573366494141203260203896279185437718923565031249902489366975808737713336529308808583831822576004158214621919915538582876349702811605113799336534197550707310513656982678004466782631233629440726437807928946110499325035532063258488158034560738097040108311600317914591815680781210873024492493824948478308521421365149341521151947768443544257966442255961007201573790409930037195553056400747567605816184310523710622893840417009480674616303904394677221030555237510155052948411367436398601498853010878264523622560982706929687285085592232777501920040861300428388227847429575478479748371713879004963151890350720626456108177314806518971558466730540405347417483195180193410767885292681930929947979636868362615899340484768170519872806059359403428614698851517897865712745036382502972946271568337635041735806831298098846583527010415972797512484985272464558219180884413315262117842434604861989086780109995034661151107578190484781846061508727971349700303192878475238633355491694526396962457245723390596316503158850053887333847583491014311727698582824422390396763192273868837343912810914078732690743620476984148229995209440430701697142380348790909841303767731564991272665518086016820801102591188501550425728049072477855854303412950487960098854098638036986103500016005130595259758224751422763695895601765360801399041309756303836169013132516126301530469269446540897296878884152949014068477259597339849503967627279461482842389341722977781250509608400751915176725248876976826589293605564603167479801658312394431446636100688474689381155444951698214446145449803258407139634995236396338030324687004598741572989189693031641211115090870244271564455060555383412864238945250213258184177232654039262274631859701318892629902237700028155971946341298048644580088298497183129519764296679360013641043359920731093645424774513980965790409588553626180260735811136699425449116075283827679723971311525298031579416543614793329173662508769216830021186109701630674408799075717944276708924017387555358290196824233108537449122182923873690134460119511007887669662380933948034264535260070144856590354203458718283842203872215635349802446256394961013234488520192508981490287171645275735270670595292336955250656796084797220597707273370048613968847912301597780148675370543918647708568890402304862246226480039126703007291834625003920014639551457955579175363033600307226289586207123345853375645582727785527054645094916603270450205156350571898760092735084924405101006509984380548077220393596329034695514182315363534681259663735146151510954852071635382819716566771398063118443105369837310278415401198331869494407608352386285871799184175789289292530271524569502868411334700482950074343117445939702958627498668045826761441819439464567667150437621924974010031908856686371781595062888525524289191143092834683486612986841820538581077726709763649354415556274854669674393826937576010484232234963571858537732299625900926234256067927075608698183421330872007373913691671817620945452386258815281992653162073727012712247869040895973865675912212162577520860023913763693364728543314769988837357493922134488165139244679292384204662144499170714244480663237462342196856495861126242382759305226722071713956763680242449826974013362300318609807106378381315569640416367085382538000269299984264632204720843004859789279375860408087228522914126361481610983837812066365002289753349595748847953142734569781281492592908213629579398918917588150494278720295014039295205535701623340385944917882216970440398392364808652677707930125667104827103303914734609001952179735090982434483488155561743154774650535592763320259135105609234115281154513521403962707273803320934821779126588058505796587080492853340408950594869652906273645815024644371737003851455993961636263368213803053781129366000531058034538993798022354497084152073503555784403331415410393811402943152619078502218192114979436187618918712049134714657534185309361112884731826193266404458444050324897328749810759489558793124269802101508762652767345300523001730330287878678183890782545440898802868785828219848158787112317632951418478172134862751050229718970083529683728325557563979895300194906419205034537680951428817492238557241583423509358702086378683730495718005545524728103544169641288246348969201732173250276408813279967402131068835428555624073161601082689336308650416748291224408025813325881037231556832915317366232780808232897960888940812788302514074080196486605704132092781129918316264102823789711967044105217472066671265707319446407575536244331991881659328681160922987518574065914243369503452121188978951132127748822490231867933507668505504457508141480589131467925096968331344324348251982570777610979998850736084220363996469428460998219399854385670856212127250023448353453732180167189529242942629915190062348081205987865986915534076701135853615633263665633660990255291406956152748069541116215161908457942351485032437723734572191656809797177974093620278250920517362305501964004942065547685997669577484775630551565507723587999671078235578464238073059072045654832654954860633735459992776443563732391995287747491636458333429903279910351134147768910220784791884890852553530799774131970820884661591329042630721783798114612885661177848936863903462734167366702330671721842527559120299753760630952729793440745912490495784026159009546750803635595379731545878784833361111420620471689415495700820635746143868792070047793278763793624764932731207747856324756424871474746167763273599520804390586872160068926740016227390107930122866492423697789868793179725486850113001604701449826393552999669709219022669069533223634439916675835464918855599564080594059584822502004854060793488197732031129634998785006706156939120813340806142350376856009351190813488846874011691643368348071149013352757543376051999510727068542668507690009397788371717728062850981805731976459052221579979562774905882314735091952470338253621223392232013427530994856491148665539835757977661846161145880472559837130296158313795410954713082536008389082059857586999375270020431559453779497038138373331116845659983971141940435865946575605756106239965725320423545676927739961413431000360576878603339651794986181672510912968929140588322564845884201702435199437536228394579836297370392765007928061825578655787986245404295522260437143956370638844595454298507215264623633839287177541938779652585352847309290137146339816568491139313577993283139330588383815568631585941628273204540955928491245556111680534698955978539892819208123270801692950421856511457858969056662008859911828976670631753451567285824729334826048230994623830036104045619133010971120084789624367946877658994495728240421753145052784658796414052515829826252059014824079909940337085652950551546841869957422398151868808768183985496551675157052740790387823994383816600663513447184919992792256362427612825969025497579774803691265709984735753825528390373161422022964097017665882710562827435328539300791636800534543796689944508039417025287202195994591285939854131400944644546173014113563068015916295304438452032633425776321801637334669293493744651328267055158642854885124671668825571581736021698560537687162510319590706968812812610973828792136412952974739912042909687643003417224935279033642974759478354208469856488265529314529141991195872243444524370519561319504897324279334464847648315665364415622465993038308263530242467340580166354449899524068678182014828038977474197077488045485047573883719218416893092447796812984858655216675146154457928558495621956003902699075040014165315954401233468049470768791625744637799683882976126359460941047386329300730150453716274044422516347345814818855226085957537170337635666522603827988436776914514944780222658782422137939507386774435478228461008671023153582193472844089090857012506244417625617898957517209914796844369343515443228689258273362196150195128941217009885853115064311848665010613613856232901954620989752050610481051535355484981977522255268757214898264707696815877677104915243561516181550233810538324874320335881921290498955762073842109092718903839883755674674699354445941391068598831512811947527288060891206970579546205862883387923218663155775643271437259607812281665020962875283757906570487618669246453069020741899789307941563998538157893704705347706284222614252397729602360938935565656862610758383150621897194647598829286325754735690909010244343621335269861869337367446963694556697542492392485574694548992962211433710790310872050922867045741625905007975715587539523846563194059807225159536242712094829138721610356418723422908172173924319765019424163879267749212764429325595402784840008028933405405462814815169869172652141208326780457281137745859931501241743063365155436971590152728127666425989788381607444915487041117549996013354702180129731636988357261448072469071524548186408135035460995590455589029850980114132503272581722469656112008622670285680902521541397241565246446954506500076730746540925433141336796958289818709200446019095466016464070912741863436130769876146203883305920183389671477343670245213396257773327723296662275659915943666317389924069025624008711609138254644985257199492609727087339707967837412033173443299649578093890354167876289288063274108282024449150495178321888869766022542672878963319828115011973242251903341831683866833629775299113671440752696340872635988307914904190035851565737806382460026330714392397152883562703214827010770064335009669227187622922935128702083171334602311199887668436268432274662307239095793686428896776001045556967277516556250481464111705420751828806826073783914262102097969758076169996828785934731147481045659719867143066283491979755351974700572833519677012075069744798523848695179895050654769385513363638698131127117838237677827242650021888140565411367091910005002715359863581645954133775019558875559578534668514922248927826401615389343213743914743723871598896040497137760771075631413699144744357075460725351995798246307757347375699785857581195481237294965423658501363492312879731254966348614502376255126113553913859375257908239732972335161376616696622252233080028227204018217618841540257670721153119713086719439295133246206694296665481487531350717383686742186390194366696850842413901289201072529448374508159040900250879278249005348602162775991816871249943373704494876670768208037632122871833209413593168707264803774950080183676212570894875809244658022662635666330469645470549242778996671728942634296925476284153141183206708890827533000397155788279589798718984828593751566676628614666774149004511636966052959347249465398461700796467821410428569079559244950125286076853398339598747396156405383173597331964847198419397816689796515077226807220153943407956116764974311182422362811673508077150631159363201961060298256553487534080603381591855277125774867399816614533359173574380471021028136296754763547364095972517913708425654212434881112942811285033927754754336434005127947095660060536572032396250764480003058023226190140756863740485905093706021374513659081934990842917831325957529684815634413571897104884582467448571389107458717446290872130649528444229385326205590559643936926773789854433313497663824544906004634647717123228123994574853142167899926476022090853311173528358362774456632951336542787514011165852498378505297830257886231821082640659357205465902342070231180544819307885429004362451285661160408679367538551911596092207242716496979519323567358347855805002570459951181838332849935497748165850820469699139820991169520696153755232785506963674315817826039852858447811528001332988747667392286188935887974622754169680853058061041781152625365409004649853854723913485448379379350263242550378876740390612408734938199962296541963512140925813109365420978732722289656867854371332823421589261406862533364510603498209700814637973453611645506727996658204646767810985355639813741118945428687506434401054673218204485208824168954223901743185304127076349392222056778546589109745227215876302132907212142979227412967809104330173778160177636331953534299282940096110798917211991158166290353671109457406282987185783479180518988021031858227289202062008468038044684680915251962867870618378941924597609160303781677847794693289698817881975765001801062471375631609801688928602407620112772455267874056779583465652987796238017345822095589607458002583027682051836327861679433874564002406391745071486351365313725611953886767474059774045810819036696922896720137757815004533753030487370152226330089883482276323730715463769948643484204856519441107718516187650829420911409683419041448873751679792742368399495759146019334696849313426197069101627196796714826451736718287520298754034031571476439857604255926545903681528611396697052155431974597181204153537142988434213688693006716697128584589281883518771711294604468516437719279513630171693149280037217347152216440003935619127120437686908903836930907478237538127773502125456032654580721986091575165258014236688055773769762784542527079374065068885079125677373290610624364312501526739350447746259212877891108057235052381246413510111673208229801990473688806683599679660630590781995105956016704319879097124989288550918006997812341914817617194321313733197413103096750352909213425976062427060827492909829734302584512821602045756559265169513182506006927821318762435504030570202049480936423162834390291462700655333579061902557567669744119121890808143597923750267548305540463442668471077949632737765566477593589296401812871135872173112080236965092759616378698568807914831278710517422545108159163243136408122943962526164983972934988042109492101282099926393488399395403772776504363347857744083660396436856885536504790082439549419505011222378056855711815747144066372308636761827855963837166008221321738312480248943017714086763632590151190910771629889730587802027796910393486924426405615020474323970339617068821611114347056422463417278662136638427046545230580435290008608354087632333745055292868068698906580856151911015144028854423557137342056769602612630968018236407359148458655781087371086374022037241873706320593943735336935504171988027876641567751869495735245411805058921248925444199492382887764453677625681773638593716284915076676734471891571238221710949347849575979098423383963706853989998613489641419208319039315789656670535627471110849511355365873957345868708040949451762854069421277262768269015896199180167866125010427168445334696653737441102859039259811513944175381187744808358703203533490055381094749047739327697139169469665743322526182863027315748074320168329581706752467629333640249314000648016363269072179094503685942651939443590946850317504612643085440571075697629582761586551674065421019712794198745196541297760058763928367981150974500228164968793987268066373790342374937372401950748201669325857625256602368069538591237653231625754337564947713362763308819857475431637728184048881826855936435996790486446412073689267778346610375410800685394599311247320662299360117786358999533801000837271406917414126227910729696582316841935929218816272895485839823441083649161779959770648052232220353667060157360138655535524255696173304745096279327436859287627946679218924568631766257516717127557134915974927874114854995567881972972134461956179607191418597896920860722679201607583805058191836496554792429857031945426817687178963480999029074439635358728448984406047392534012684894951059265127187792095658085981073537666122099781762583863823119332522598306018505539002051793008746428476033714771608529747539985529459019500592413469672598421633529079464678172640792493242614118204991386871962021882492267291973178605408805112123646317721992863649878131036800070800803221159964257082562285640394026386810286523969431210456941383106619111329070615231313357740321682313346025388108862919455382994697753367257542627795436154856045336199781467168157397329131478172448247301026941494041133521535235838535373852530425266462634645659524295046239030343840145338295264534559124702867626968422536748256345926344260787894806677509260248100977669574347503731371332637498135363345517009442364951577328061179693152521455854069594588896083445562870943286431932957650651468208059548965992869508333496139150379175801826763193631638838387933975641752314436401844123248900839064565813661078325757684479354520262671787335700262319151393228651986793505630214824416330014935690193496995259811753819968034633163017989128972592429790846540169955061423884473210598352639202002617148031444991865992918199102907750091622898521213762105245588457423250307669033748860811683482444480167852727109843107720731037200360365461465413459583234557167310557184053487131867000008126573780507583541570856458892259931660110889452168686895323467044877413155415290466743724631261121068709362490670305930443348691770632042688368752066909264951750833600073804161876982725108698823784282721239493244214321665603908593967007976481938750063797268509514416781699874174501216514612433925069184244077438592258171151885808432201084577483331365092654153597472196693773080313425190714182203365313763212521107658513254194482529883047552830391261214855032000239516182503213882171232331605246969947885352337332341497084753889191897261865127434707464679815768865028574502068612618155694243009760977245346802629526583126292196766186584390610009119791722778047764787718612628462055503481272056755314416873830979726080938980860636872456674608054614321144289226243541379942604857901184256266093836408886388135736691319549859836635674533643920446526796417006978066141763315935935306142474526172992145021427761264211721020846818062785872233681690508483491243475305456903830745112684870223578769475931331139328299500407281843542468206436286538000152822739070182747070111072331320563011301151891668299674203171920389959885883907205777640623227341170011216902462001900192069523449070143661457350196127029873142024196865319219434947520196483388988973984224415808670222739784516550107145267885061176037003621409418369221119095974656929636641259392834797115036345300483839479984055514671408270559708840225145616298234692697435005691858176399551910603581281901091217536345273605829674600355606848610296243877705550214986377696993760250504429231385576712920474487761661542900826305069418830353252731735655215268074585457530335939537343361905969129647728569284022113299501418441387651540278610877343673035367574797139700359290463944764258806758216791902029062764092515417664622344351332271549202918062919740823582666615424607187950353439871651204430145227800026477388436041205831418070748218719769609080144076759270672820750189777586075622007577673578614284674639392939493680985664006564606304613039190157196605682658676016791383554898849866121772356564037702719888111087131066854825891629566038708402602651365884343790418690236990795156494364056818384534237979765989055863005060032263066834643278351501780683637149393272285336621478428928950773285804436701737894908065906656515440489506105280062317942768892171763010132175951719020950762044959516560215172975079153830586978770971337561932659850769562607119737038883559458953591779440020991079825868911085947088095381665777957453487318432135054596589317554590095791181410716576459817856149410490813065765213389818689073219615140904435052722738872062108313202544882865741024676723421915977986636439932688092878545297999581509566558682182681918121458375579359168765846505101755345572038377473134392165405827410547900652787079387675771535095508181432466574436351278881389281089089583269595026008050370314917398759110286941003106533266103084917070353302244622381095336957824663019103127500524945622890625750598597393602541690679789409598506315179342527582315938794232076152100437455176658162298882377040842511876527064253172057853363403738006993619192933325360862795955721182162039651599479848718032760139615663612903856804228240979694080811208333880947193692458195769244289409418627786296786659337664505173546759077895101300573129814830618640681823702652586665775728793703877823730111016580524588706400187126444690113005117305515623589260531967319862381145808985664880234999752905552433996052951598148537372257699481506402411239886240032350287750925799855303063722017471460882818958033975318406846666855214938635940491837098831900763715143431609710550001087443721739889933738566035294709013325143253649879499025952082328030639895152065218037069833831701175171709421533445503916172876917844326585674838466137981907011650593771690683804238276943803028221130165117589597569981787982436900323588550607764877616814890909471769921372979650572869363171037259505135783645334287331513472564360722765502200887888885308180579716752531311114951188897933726021589707853310341264294507617670585933601603066255273732343376602491869829826271350596621544758164830008838453954490568430636194920245181076666696482183075358073535210192407523574696625248461571587521925330622339199418397080236469697383877433152895483273203181292151904160113564610757693399227720435525767933723321765056638323552834111239184767700265788271256707008422363070132759794573718951696407685887217074296083473765762349581951615802149032783666995516794194239822615438510882206065530646869402766731120805397376436872985504783693546244850208329667318052008372345370485327574237839841857961825509308294234098366117306182692320191861997715903471765183267849935711431887053407426854581051505041341709123614630800716184601368733048047658706124565421060685641698465452303887593849599880466844177106589798463732791202508013341105595021291390864582209745539729407804272086814531712250870760867951647215374027675759559244581881947302875869433376751768575807496188893855544075662794919489968353485491444402440530529507723069738119477224558044600324303917572642421615062339881024805685674252314121119659791306216041049096114643352757519985682165224868198395353961536983633063125286576452056204916847708692923752407388186672675314617401483627667034739871222306040713806324354065583644467874156799920609179221883087174067911325273265656304664804082305552301703823843582531811593427874526806820168331890096531274211982202998674635954286579311372954452444208461779202333829997611367012186427825249748831049924672862300274303221052226712800909276528425442840478379468797014003313513318985943261442681297555642073338849015761179396962049950863572343286092981754972646143469128447705937088520418853301488291841618064110561895734625804970854274899341216813849473616677725849363001019217804532272044699017262370066295350137700025107667118473418245885196329216630889152827927242930907165349977913884214633601365074940965295072700462110885066935223914811927083987472143499762844314374881682407773614089788089721209693919369510547681066886387249320265334718064534270880189554379796456785503942987478854107443500018656110714329575751053890485867674699128953572696717740194650514534032915004082388698072243382984853920938114311078767173366767739442162769051968685919759658509097491491395777916542115859250364445200468328696156422513171665818236526708650922614083135952579858444603203278393801413054726055740356210275793776250467795642087794761048929431021462229941480519767478609088105964256772136504214649330523643148709324682216282834691528180741355777572501352254970806569390562875644040010428112800940185482817189666422821521347448196692646941517224764338580811029694838805117902784822394342986347965460022316542506152632522028338807358345548433649681843910626257726395836871761003505603640659021200693022562760169707531745398808409793901686051548268211686126050254489157512586034261979671795833922766970232321145126050535781936755941047491436820411812518205141895718118085378615375954845508594741665634603214782227397157434155935260923445111800381667368178316843659403749634829179524657394907759317174327262713434345188712894757180473796815410342745679146691934546183797574662645009508773998503787708546980392992530679645524848981325060797431748898225663709336811157072535020261149665179396333672469732592532431189243717128629255564973414723825922822494433313350156433993816861426813749398997149980992413710040014644928893580004160873730028626428171740926611053896789256858071147230808997858971510170177218686182664705747273095673526783290835524567003812753785727128272715905386650087006241624322138933273214042023492858115782395019531096219517357001883261773065573717431053694657351784537766844686106996598781173373733397526739363126773848652411821526623804174280106055287715422843802277391454774668680022035912541813652277230779623020949178368244265608299442255338005235379900541919106632527767339881557832445860622044050859148384018517397359905671239100733293667865346984093380416910210399579400183168648411895834761019815101175897698114354979336773756853345121499279238171561183831439622077993108559197246984025207855678151732198720322383527217221841642066639516448974522684390896982017882142865653112200608448613044186164418120824914859341111733853123994634224379966524284895865265461626176147644218747609714111308400812389637823466884038772018188532502445370624096273543504929218457675410648024526620775084289675325386703307240674136961951952973320621738213307606990231333064211563117708736073712693544926310048156241602325108049584029279345096602032435517742282920488221747527711528800488628227716305968627783921164921299068036808901630999426273481472905537658615409467026075237950235914489543992507245660169047280361392845636264789936859628035489070666149395520267015346878519792444885976546206603258690614977828375606309548496965599008730828901343434274474934839915101001937091676370853742724153984497495832433613205674699375793842690850733955644670728129514736754909915581654141587674289127794816600559591425557055699296012003196455953311337680679188228169246086118455419078477231961219397063305360328260624722703251343519180971380558705179484088532159812869164618269883271995892533053813822799706829855597192714518192397273712791302357901775345243713296845305219608155769618481642663943494665484661468798232617340682365621906227751699181740769618145058512202314580391962080973289063258677029689896070019424131257003925915129162743036694842536428882752083509274200090295071347300925712757827194082641932120882855021537187057692044217061760818612134106383211231741752605418158804448454655694439200436911378860485175115953377494917706727505179965859104156483526103541623326604933674279390105913869777700215939682273003049959769658000858512828308099326647436358043697300434288859751542408882007701019813416039772558166138478418023495824264602887438619498162373664725797926790231768105020258741787637633423442076338506296925091066049421904827022821000583059134923058230005926958550744748396563314686642429918510068592895869613265784094355314580336186516500409543588189104064082669771581373181892983112011828663193948185380639253236306747530882541719796371331050609944273113793202919407804108064107034241235232219986527512484525470347151371068972391357038195932692875189882608584007971734160602725268371249478436569130892386188605026073960583071586199824116372029832439331683777693696601259327993316089456011621112298673630002015987522653976816423644765275567614983744923289622634396069324339320518076164774446595041878824366589551576498134784200387039086025072279239858230208547802405076374661764522135432168870592713402915958146508608722040115709886304570185631630715190956061455816583837372370062041694941814337706610115616365079103447706129799960825904438703340140945105042297713944994904180725070915284735236414631449150526430900111919310753432733839510141863771204939241497734247983674375500658110021062848466305288209741729828045986524388483826759409156105507876518278263665759402088908754073488906077023626269046648866348256262228928150476910248147438806263821550993110665910424112417402697400528978573078678571652106557571328701755748418062265841637229507305489854160612055881210219035022239791873245372744647885240597797043692095512308589700263094958660100083999892469277529271033532145838482994181075544311832942608922241344939910811120621522631346528225595281522289035552987869202544660235820591248632391175416297263233254672401059690266982634631285338183884707756589780287814112226051765340762935842396900793966022909476116289058638732072252566654012601711245549217795173724010087550738205218450041981596033881838005232910755053575556062399241989960466054870816297318849232353972948083729932358281126777629228083123738633705257523762780503999631273501463686170159480746186181640016989935700085642648301856588476143869436393077749438304826278211081999416226433897973819822264058733278356657488487675084736798492451256569440692057814243868240826138260167347655500529873373769628655466869180721526524809151729588834348519322986948623703423107415562682526424397618287871133558686717920632714357989936778876626844689463978720270898021628726103636799848401167420206076936736168249262176834515674648653110911410824080734016049446058367094866729911629209363754519285923509867908077178252756140640591599665314204706197672575713783476854193535621821008199664555723583536519730451116611662384203711412945618975295298888175414094569900224891427243569224224499670547653512218072860123951670962687332885132704914733363886025077382315810297198608617314773783186630251817815287743114765477393117447206683027200379358028064351958627152524271313871855378616545234654146626160598279772514452270907565245912327561291757661403570873519932786253954127386488775866618725098704025571321562868801652087299786251735338541802525619322344446750517997035655627606221008938900924774763747850001320391558242668820572037685795527586297662915793944235202506482359420559283356000931268711130342130314414078486858605290760256981475509342130992732391278777099165058631903745029623332474593278249644502883386377781325842478264987386229348079246109636014522445779621843907740105305394401940104751291674840509244216520316922201664669291110219435126011688973650856905007258599754722503303774184996404555914584837986594347453057928245770288058859381351434710753795313179688533253522563551373222502404045470341451977965249089410919610312541716642301900971734260893632735999786771756826414950738319575251942984180825454296180993162517695572915411656525300673190908624923917925019650313734235548017691508049161839972691252154613313475314725274537646491125160616548447166987737223519640793272339924469014982549714993137834202007781251906539135962029163542770591553627572674222841928681682374493715092364563050758849875289988786908521164236155747460995828978712413674963264313435849349164276120963479322647976715416586926499130363037419410049560234664934858524202450314273231717444119661512399515112755160231356873124816451850089979594112432728290657968965886449163923043173897798688557691602416210103709690049194393890152422279392050222539967167677701252381528834501712403560512055428157813598958446305887057024536905246606355028797582812045926665144309411768179986602743435279721972521446362301560921716791233423303090084008472086315865523371212143092279254922016663130772613486043250802792581560653285475220218117059414986438561675671332686756354027301731686676678902000028554539974800868381617290840728693256855590421564082930144320206873209025930585494803255735760719251637956212903810859906319856310642116271737929449220926647753088301931893494954581665950539785093787579631085181909743055101653482995994237448904826276836125550987081954162036327384044722760832766063535697304755467337625639641010807182300182148844650208598639602908290924799646774567978026822542037477393494143472522351856858610109184079213850135948113773948537789859623208298254614942713279381549151204033457501709131626521072252521232552249883857302506550269996621666103953848734052768518368770129750353484935410042350543743318291100800644894207631974932132817206024046038664444394300909795449864733352648672443081671106830059026499453743730326438525328607656802115065839678525044020275943531434056138694235078209138636218232346715731575085804525494391331014814413071115182836206181165692485290608050081974655806062678545847926954825962420911759850472127133521404648791275331175817728430581916378320500710049335530993290749798924491710688457226792378095151166297291885077296293895557857439291030207524229551023342451672604746456442833076263006888268596922438575125293675406307127951371901480947933411447164625156039182594409759742445559618243355744628266580399359558525821582094344145040550664329180081053856292358791692726459452791240736300894464955574423010652380476183912468379165161074770543473109906374295938542539886686367571233760062147733127164639836049880395289000860138507969046496722006345010105100451435849865985619628862203471631085469618194391450572156033525838546442723163962659604443282568200293498620621163980342351641540836738489899280512913574302639506893032522996893323833650231100782884861015556863960838263294391715582899550770782974031660516159595301421375179227246583756511196456773829981696109044847888576048136159601998997629531998017282708092820943640974104481335063344009614405873400828702313929567183480504278575655261738702337845844862488871987073409800049490349541466786677058322534902773597255000842323932298198601201086965691333981519641893259634668795963267524401087329301478290723015607523542121435627885907691020269270442093063818715630716038308237639526409763277772826464953433921365367460881677545472929093258865319765612280423391785067867952059643399614791747828315354766798531565430158430730931778682671906512774720584339857862990938677160528681402476539024573966393969068509882452444537135335187865922900545394258819276912381826429721562613283269434106928652981797944080428398956868872163461245074404416720325165321862703818719441153902411253301589479785509258006802049817240579438317180043606243155540279976079681779154396910766619911155768271734659133868979190608125651245902449101968777516735059155376294076612143893325076908762964724135889781940117788899010680495581596821198531733072121780922175176849944819254191153715142102518536009284724966023066740133842559878071028390670842201668211853162601599499787603593831315500170307826125798396935945111235022180922312586112030890510550341207723305730033231783558691778372883185633662902508658519567929865385821240731735158882279021735865360336350728808377149109967059175150492931800692037117457484076767075641115881169576503539376747325631931883199379264310350272855889269074510870754809360270413791278377067970381315613140475568100803488465483647674623439347440649437737609069287861578824049503964261270098350099139556866248633460077798068130605844143730968940179687642563900778049024398887144783373587893981192420705722160990530378349045683118531009849576422122448803394605643775236995470227942848445127449185717641497033087802415694446758694963929764569486280500390511925129598972934932123816056319050177360616684292008086584375101583156709637533257781211100115081194278020253357015907716938129590011192801990932680160049548273433646930603808241252872867729027629545590354995557925450030600083180421376919178874622848708805406103382341064195661072131099960581997338675648297313618743753039968431770049470893519821654273740013585893428304652813112776981153586383201520692046046578738986495482394407162030579785944436647898060006051445129380205663742912768054346847552562175551163795503147629271810862285601353322677044389868115882564040669730151941667335966234630389629980188773569150123719714918565403679533838828688667790122354620439537769878438920460013008340406782594544962219273505695449959933025931311937867022431892829658909961581319147333860927585598802399299985832975552961374857368499176432455179380525389088865123719651731462341518102573878703872260262194826464176068219541363726163705035841692204275667380756529673540973318726394131221936776036304700675032293811903756934421427334498896812206641555066422127216972498899719043867632692257347805994918125007864913480837100258837646744682937519146074487180352104726484199151808563941125507888587843519914241169932644384908033979520439140782236541649206761328131186730177318738536764377296617902630020525769931452584694905400321300508400970771233211635867927024599152517782802581569643489766654057342733981252074600917606580034176077127808330423529767728651115356869709899016611218045769683055997645939662261447225475813394737160996456092500972030220289446583286196841300729305264760012961688315306495835930873100620458875545987915925948215207336385624493157801861764105465487869800841347412646473900202016832749490365328938227362944954647570597646689336309755210878655736194255416036389132191708251453857233087865599178716263666814026525609703930711605854496544055143780387821674324594982642201827658217435614017698464121371916772876212022752018591786308604221336918369532900754479463448882219083462406624610344365461025966171299031170787008634264092206332880080448496632134254098867076392269735947112552296083495883952784209994155112445182541105728435988857428972268513037694644319695968052129988462479743018494547459108439332081705655130654597672509756750081971102670554961560297254459200230772588012311326707675040019960085166755164749396509452138030685880811166008181975451870860265170183296533993290556652308336183156858407982747276432846964373319188239053578721812784638239135986958394805297606688177500569069071288236392461176912519135155526182859495591230018338536673742174648858059290884256169758849635867163172701959785054316660074104471209375034513918874153492212110617477578853235626077249268842027987565129266581070108469413706122032546323368898240123932963951983603117198638055036002135266115544823311812827452786275079415429456923945798811483827421916157249797903204626041415229372712334331791599988050641544410228356191383142631238648319086199190045969776796921559741522170138348636362664074330981336410575048084043599414545581532810491401044388411112458651779786293658783859194943785115562441202694102141705691647063263167102639282217032026813521039751434909433737909149847347356110250491900185084173314780847201181715276018149022342291296493054163469747249590546760435950872034722357492846441263044323721896717401024187014062810709949410788922070859559932980601404143911153029382254595402290447801593719524897532843008842908252684506937213626217331118169542728597576134498546268234655181684656346239261094114317179294492993468894716937778236739188358980286927897111323831614267857057939997022485276530977482667762244478555566517708858201413870088287850191228130857559509150720151698345970512584092623926069844894114530230920348830518742503522871159433325163516315774689973085109364947440259675958543564371330116422760386167450498885085159749776837346388899168270522313868932225902880547660417840108709326384718965033930635197445750827433776475688452255809510221777432663773935656919697579737786712717355848389513282882701920898002163271682424306792201444876261320650670008096073350118190122428277381927902285099562067399322506899004475514769453372848419990213651701526190989895133930644981209318536344747723457678325918312636659441064395821705624929845932121114297120330224712972931517160399228450361329427658651692057155884932271247299968748993525246854666535864437557944348426929618527455443232356368187579476026508516261632031834418195907796204314983109798743150732597379275927548649142760496302572092550185811406600294889427629692508229419809264643959468372366621325832325879652381951361494047145110657024144651790343268019328245140920693514543543576301408614831287590430571591665579984143929547482916121536166807533779901463338668113591389561867288731198440441213560823511752435372377386475058487974871655352571186101132962516897452423301367397512068350780575089890449931314342772033416563597394914252783061371556078951956020871802539063419436239175971142840287310306498251195694944445763717753364364760940929453505314991364272332100754701780659306590829731013965970827809205278636884666181117197380841937338150502038094775827734192289359939519898569578498637179698459008951220779881650883377407445258597671163163816459976906826188361710216015851550681006499659774338164630047886902879877640358967517372531977320489738937158985035330671455232867801358873925989680663833228244430234545213548502846910282424018534699025087015224750909757405292033279944806660803726116694524310956245829075811827982559619664986425245639180850587021934088399336142855715296808025083939769962903454664804726539365564793214339455323554302432013694716908777013447521110799927876250848553063813452268149692428190877688309196151187508027352788205987806194214522350455211419014458163808384239863592508159821567517842586808978072830241488375276321756477124896322134618777920607828852745848882279208769419022445771072516702405866373045541437506763586084909969255163069284384678041085638297691617706963090113569895760418338913021102204014447445079764283178544800519922482741645231941973799237052205140402554204257425097362889204970177496527079267704399940502745808086549396309418544714817164481068952300551512318037094980207807906193325173316294493599341081494538112895125737121080366235741405886989437019679989897667215625228422684276736244502932397375706407296995984982041692808591739940064500883247541354843537215900835281401114112060290368961588010189714884265769777844013393205851448861389007285006412068957544906856228776601028696612653334446656913993487706618051451431187613703697528039152185984906805496664500272897129635250393993319599127007279470539456624444570348224795112604139883331724412156103210017720801349699863531271582516361656830186604103337526065648813396527637554885105931229164677707940903828100574096956624789597366666789589740658308813808549128816294369932050239719571512144104749236853867933825080064136108212992343574332180275696603940464185089845082979747316080566996470989274321584219774334437920683686514099742986498786728978800520975251960160852438977648760246495847317060684537577847251708724417896879889389967651404664060744188941128675056452184291859295683312474441331656083582216799036972654679923351674111735492619325724089875499050796564691260807073316260939605371404241681697264063960660713049802289627605244359864898498726381606657612550092488793672930541510654609563185302055459065665092035870578594272275548513492673328311593945714100486654494103686658617448410091840431494582064812519958962651452954255546085208505914953227338781001279319387608218938810218338507807535333778865594240783310942434003439252436321891244092507497819475988130450634215049346953584597653740726673933591255688628857724721802362007764292227222818793725145431885928436156882307345649789188729996953405474134909512453520920190624121182950825219239266196440547888881763185962717785159843875614311883458856905718652896582206072493054025342956200362034539468343500724360671454193496078957268554327008250792614521847764045614426420107888294288133083875185810567399133829019183569721759288258299544590770104011302997038148076443324000369774273663586656195759216771194301413491145686907292736043767789709072560696992931989752224889690072551526129744803181970418480339200798796860284855987106073601615115289745971911294201026009720971711463935776553069413987623905663933591913327444069212775190524953218353497028837961482660647163841067419588011283668255798329452898456451060671817073902090611643604440406780935754915870310081450199109299809180906754898612328094662876544602142955778862346244534016057200635987833994379967468267467946984692828891349735000735719769706648730494991277412976384867888856410686299790011478234787960762215884860128181999506480134321824075533806924227585907105563756420878429165700009275290959517202627328440047667392411268723463626727315161124344640423659099340423247260649566282379692139132662113147443444013802585991077917272460481410349991665167079917781405625143456514979574113957503656903263667945268242830668268586004519089472633934967898175603414993757054321742400547910752631649080575960961963743339972175116980553391514916734748100130752559261084138873383780279145921735832419173882486936867041126398657636117329970845628756037513447336682364664278679014903000352252736464460336427038145639283372477737947385311078815913260335747789561423497302347992315174433049185973181755880651538183487248742274185548078204695679314511501752517068561826783878829431616611162266071506475298679913669336081182124114935314132777425309152858504549673364080306795847095608188138349147969850531563797359525171485139225648278044007515847173080942993607568479026574678074838871504600448312233913187910135966737113485992356022652055485585018141707275023355554510045816502799161866076062173469083619560291893123657399772359248241121690571689702821346161249933640956171413026183182106824399846517210067118484383829157401628036932150082313159779491060186712252953262205337544335195096911965032750892857727592411538626437290227840601680061412637712073903030760421411424378261822033297763799207880307808710117533618751068764356884781907059116788490433614124836471612537131556333394293277370967041273135377570084493724408872859148597228684302588734354564278966202905019622935920908268620854735312916550711899278283374880169880496021558225563891904545566611156520655102024170084828505173298561137100804809375535860672343441427687292082734281011022311818818423343499861879664930715826430435659013552399005751390154825468551958887008431625661914890648983336470790986132896926949082796698402353367012727191932107423761021140460375190601011157272520621088466957180948364374654078232943575841159536549824089009861022874259064131783360107605531944422410922486456239395329851473620185984988302082508387914411720281005739498648787431155001029870816456473541313323299456019645827856149585574592273658244784605830407059507641156260225511543179356065623572197760302392179900524308919967765608200553930477859551151203993150907916287306232324346691906442772750566519588119764904108479495323818267205142244416309313043465559100409901004928919557469486241187762017757777595633509030480193827522124504411713152578884007346353570391739127952176793263233689439393276581962791585411247842280939099686877096154386462772647576341427337219470594582977323812567797800285051965463826776919656782382062016542388915545607792867163936843867610156210986226678606472653765147324434204623155586948028128581067969155587176847746432116819414519335573359505972196479942691759317661773668079888870022726957342059001044753165254003353971931747171887319624795589960318943890868693968715405387278802446156620648663506356126318383157880950534081564303113365918025331965381939610569423819748522403546285982977421470498200451759871396289615155092347613573645873622782735428709860122687994134783016330718370891002481942667997764692912868705972829802812870704128282029019550267944564139026544549395850637546246419156928141033802179974541860776233967486314016747190648014106923831280244151594536410008764798061931579883431677120895526103528399410442181332501044261260298781377850179249181720216451924906977057930453038791449444721294215561616343608096057431539442971088223861481615624278349526670576034598930523200970984683532075435213070794094550071651530126010950650339447333718799465114048440895698916640537160209752952278328998376829820021497141689734330325756425317613689277865613128102878513242321510963284028721156057464383941581546692691449627687051474013362836882771034107856683611916242233175212922206773550254990698860481308126742074875510444469137905122544723128199505803822373082282443695423225537600994936905164213785310507995612405675335529166684848371198836305248542982687951528417053557701341001148605377981699110961357883671769516675905929730035691599702888361919842914269903464806632322337341883239923321315635636652597943148700758898920026937941082552962498765083881840069270143478865995223699681404275489210560139998155806955470333312466201920208988771948569497464293990677898247071384547919266097251099032370204908384290974738448263112957783055077746743750141292761731411944855978126161088513691450113574534600657926973827801613715705918956092621864730958108877181032241052946984113348254059601335206297469098095050762870076881143096366668423582003431337702096141679296711737149563326433760207992599549377313037599878194782144467101603020806570657568970569538746497640167864693449062682422590296185912403140433954784394598399937636052970396702013003622304210731600562143582679093729443037869393573685249752338306414564659257475995357024107379007661829367165145428294521205491499256286959541707960175191032650578885515038227703337696911543425417474612318556774629853561116420133940875477652273216658933908878209976177946455035942306764725402493064066284748155377058324967342175787417940736211585955149994610359544996760225068291565858186103752833590436320353898034432260603820738453533310766865998845748569217138318109402087820427103379264367559144005564499753089630771939285350643256685390014647834472879702666680126955624947470839127159858186042022931012364126075156193339609924442927326475145534519559013825204512660908121102910640662421233661975662692471350600370525503333772855833536655508136117410983096522571186095388465170689048684714095777023533308541883311768844038330877497081969155517991486238785650204843043659336489870260401434890990970415953064633846836391224859717332945794118226822056410081430440486926992125748816677173451666852173257225829928336062708041624698197836315837055354339037123490126938060004656861040321625041654212298476513699956678599608617784549279877406765757023727318699155339733292925327761022458051602601433408157710309911509457714823133457429871740021443987381701486689985911771397033455889849635387060434013605820246963672549884471098119676428149684903961482320707837557458414048036885222096280380363810456774877097394983114627164549785265373972959976701490141659558187536407665319458742714500140098078594332940940633073041806626683860692988368049858298893233937320235455154565759383888750378247616698110372043118906036552305858129919113546531655218052658941100124963783715414677571719923665459878666316305809898721661627451215899610866007068144098411435128809955560029626339482436726891222118899496156903889888735070865965972530863640818908310034600055930209123905107702111318544075874385883225126436633839676570949730437484122176248292467395152199406272052587149785308977957509063027297221161136407693283078176315147991368847885967548949448600866330082453163218721191766011808343415684891716654718507518415910218690228525247473441481098902136060240893339814435498230030381279258002495301259126477893050794117670428743250958919253890117035447290271331414508952759046722613332709213443659182814653863497944227716947927243118559102194980237496805419974881429520452530241131456395905620126411485858718006183813166147058624342275884756196129712071007770642464100005942855277798627673335316240812856619520863386910812425819173137784607781475941582197011577818402937051421765620594139476261971277417304747146700974107153392703426062021261932941715185321015134802269225154542994495022802126039745954506259887648094897531392425540692751936178822708316150300890521532900147305086472180446758410083411135241605765598904240392384788274651894254428426979723147704109413244287820901641093554311680766495576571282581802477911570200059664176100484844428941599525305259533756833441270985003060473834320079899005964054585985828173529825139658857099130904066763489133857996226379064030654785441173814184488570414200405051052459978908535478704564090351566383179129805180963973827621671962903398755661278272203295782023185571059948345747287795208313956394609373694947613424753269033128003078075960407695692901305404773155922261280519561670954824221905807025852540372514761760912947619923640338867602257656618708500636994778370482200351576885783757546224451998702051514150067384686290898508894354251402012532914728971446645701105820185842478417810380972395917801974316217472720818233812356185408925866163142383252662307532576889303068576430147394188548645018180040153533382033391857284074885696926020929229733716070631297823294974305579755272285780842882470927631967875850198888752402686760204026028818572147102567481762345290907474472442519582064074526335318146757518514083150781761914549464531291482286696218934149031360884453788448872009275329680336983705807161166703357133149200159888103624108353899197388129708318779049251982434118613920327918092454367061928938240510461662707692080758362914980657290801267541191062833550833770968176949986242885731204398985350047298762088393879229197601773651686936656550706440615177997104720163612516269992055028423726346480407811940536147097254850435589462432478079351315855339175105641878375718982433739475367936352208228195577207894709321865026428017505342141275871936915740261551405363794518701206744414195580935938104412544057462217139363740972261835184965870501017676177642966994652484107383357843332330421762050681927538141716745816115033930935163186163892035312148539962590599378863725406122023196930380366075747526949866972550119724738510518333799714888351194851744036903043988568534294325917877766365800250320781161553702179259960363710561163077831606041486467473272634708617638920921048131290073779289043895631989370826083272254476263064645608582611786207501887307011467669984991411298647875081582480325321553086194098333749888494343874588532204557294521542424306569987251729134161567696629445344007266204595057212532110684968611352754486153625841963628864610254801780383204223345119501034991319814962852988482095471830893496863094755027527464282032115499267770771597788435444349042697077521276925903135026977952433965387989341745432439264117203364366724980455242078391658757586553355485300557067648773329224514415336800885399369753724750479909959982922272375278621836429821289556917206218594530287308743228937906664253516181289636628947056275885613388597829286939612237535655206869197896582136653238987821373795039584872603677978139101617143673501876883923182774863852744548070547511159275425700724965283905691769405604522635124067213288239801659309574515027741705677482071421468210242883359851335625407782662354234509131511861890902021905500566948715845941241814889712970193686112331581185100040152299370172860301971697316584625465187205003301122255885447223173960792530133838555746853348966916975982380786697177373159929004938417240692739946305209641666987251335893399390596069790700443969586704114597665623605303192896226477857021603476911821446884957784062921367509554058873473113420854752769779741660045874174765124896993211587020480563129040122686080735216214215167004876245317654195474925220224005428907448742181757856940019905897068760001241526661020163361354829108169214446640941327700557428452832138442180449742458774045230001197388768903407639321970618391922668660568016135720340638059828099487458214592563422366923343320371060978262327193358136725017688671737456028263254814136200641048369888976600606080720382716829442110360919193142184357339487303585405993958501265996610413468394176793894014871767737295628674772262006188548466456105421871086122510720345586483153117801853731787077588073470954208204411368203077800095000684735891209511749977359218679811862904015953326317947714809699072943819274033305099837790139768625051794238899013288763393153705810945570087784825656756109850665170121428149571510977331117662652996580009602599675826827354033838050593872339981879596164931022888938073861459391242537470562076184447476229599903281591415127831961059250208269727911589938284796401388912845226225040371098951985658781582359179192351271261811411280849027486650364769826427442117116461607636254968276604187015721546212715521357803281495570998451589864790341079663268824607722003332079237094673117991455516723173981867872454200536632554655200376206945845735413960959769031695939419761340066835717980102673805220543361746924774724022029739638879012957010670396295936440491990897679665830673437264913822719083072450702999634540159414226031821069225263187292543361874356087832376451483807016920494852701093032759439874757904863128119613516759098263729350391587365182507350261462744885549029607877939864512685935993140715833522981551382208653289948359712379874250690830496963022136690230028063349669108648459724729989979886821059167049639375951527787180628571287872669819340506495331624399229165037643585282754562651799231757341387162692468054869210015590274591715790084030202501291791692214625464067941411284789435093105600995412198686281436581446743730445638784591109966451884663589049768861694244183654866131371407073796724565686834342658813409077011867967839866041899416408872422538460248610805542469409991075899795500701961400076389251912416679159306547458654069552093052013143927929706397787820163545205050719054632547288762370436473889765710651614882889961109222166373301845802545084514398569895513499997795542589812144506677372042155282536869067969028141131531044704574492008437395797172307850347796160843119141263966765662302548423457964996981380484993044882441650379500282852290103840687869472801844440313732759368622905861250849502062099394641874818227725482289622486607606998513749550059058939616491178262281834594523868508715694154857125177339570266195787328343080516567872900866415000173034768402979000373915134843611467492483133917852906280169597161262249196837450086222572363580146202516111912915217941459513176533816988500566396803807494209272555736415020610721485006479898464319884448357461520294399887768612881462324310002838795638608244384067474635362266178934215505175903323860268879353359883285558856782688200643909910210821796523243596321571454390451837042597162522666773961326892904804296028826023606724834307679831152455524007086731085355252436578231899601377917458723621918679787285074593711986311192194502116433620015613010262263749807607979204832099069864889356734060846385829911246774554485367283564878055576322492177004312895164186532733972812973149755888884796204782512152960754781442204289108748976476890428258717705230788032168560593645941867178445254574701836222878620399368465856837223560076667824807594436693720007242869052770406019163787511092007924552430469569901255002380507619857263321308890415374449803597315018521353800456989614717715310067624952267077374888273492531030617274673014680187485535888253508915332167782769448544520049969067459925962626304705300755330690009229988809017512519569393919249301479516205726881871643493231051018197045646480711003958096919852871744609045048553411412830823851278411707747189135206947959534478023025178455353200687756179668607584290704901088715336111645817303607434858691205867061333051325355075972835695399053833074773698626703793722954858674399720263936566361739862810814567466099629929353236946052742662814520258243773479949900307490822904097097771789069247594075849646352416543758744063694492142685165789942371153095268138572151526361003310214143820667420296841779203627150460152443985886758034520179997743272448010218144894696373862269917908910992982546058423587079135466541743722749445528595266678971319525111241536891479252718408475139758369764596496169149912782534145625450173087601772316287584479485218646597109730477320269547417378685097802034292367783207753434319595850092558982249332335143119685800766229982565847084698979210588301579426819714692061454003298796293013229335976492387949025936580184572666541293588575073744183847904730104366857464533296508336632989832966344167307473272821731650088440881490975330630948499056197321039105666990271760377465291532589841398432429842806823657928787758715073844577833230540301592353908353720716403651764901885891508497231058206025198014984794720420464228099946943901740135821723795220863314370244133882016664099457213250231097333303375051960147844111408421541016568231531183065999195878154402711178571353855409055682715269600083020476813802998931913310133292979546808997286741281265995637770639719527231446578097561383394033437859879915020482487802768985095258773170859253302332833809675552819193570063407518264018454598774743637576331737236202705087008114283245950313684592454571664174542280191562818620357880084027374282303205651308114293388059024651146655498087658140365873349463498681492763715968165196653305439731472228977564817063903057358285680768687323102392308827615884576168945959671064754003937102218143002168149029457715289222499147388909841372008065615853690029112150596114930399961334019911421030674198564442522056598216114023247085096755769060807271175589702370733754433016462236363641704445482893787422595439716184913438691684436015421875653539647494929104959741582540099909042763145615945501892475357720914061590058282557227581577024985408599931275377844959277488154786889466016847492524112504505295312855899078561971300966933099779050887113456392896357329526095179298639103526120719867136776836743591782836238085441201112339511394872325740818449691621893621249955615946486669393163751235344587972118195573070703506282213949741231237489991845883253415185112169650204858462786443588890103088068222934680833739975145234423727024249468217915449803278732303963023842189163907205029429919462567700589616250263792734538940161743991787845858169560400260017937225690905223504330267557646241143289741043682739322126769204067750636988998017454262550857499074100544302198833566520871283636826372901437511685341899560256944828242331599755067011220606839726492915269725803402098356474531886310085199759615546078802409820553588096387797074899737106885991325165438741741212136128988959867702865813847349632327313908594622434822307415926420912116883794826578767423044817651988464126773541301298875817890080594406868138044299083609675948744976808156825017134067881242534624126055893040383438944580322416187574172425180710747396453018080228437770667043063236650496042156780391488687129529207385606785329320121226133985722072854958813108817093317736944836224555069519011387373130997636713315689029506868862448264997825198573937474469725730349635612852142398547579931173061097438347352787253289235969928140845371218607656624860835058074059931593328109441473661217378340526546727095240872219533861551634636063726539528335696230478313606760632727903645497524795215129509509886314993944382780468959250910442103066712352700908573367489136970477363258006696609599312766718474539589735131438413062204360973979373387802151201528889591783986593221967024916179676429257363005261656804910204296529264848244849968078329165745700002341293226559362868876132715987984364533688961762975498469845740315391281338173940439513509708965531537081565842941054807465252337634398998788443739823986740896469279261673954187056487827488497096285337271384231957790907991449637703602103260726576880761378716199214321653078545295074017589532261254909284290163856393119560716207391568547353810371532653547909893085808240422543468475376241611492526574759039520004343492428660744352018313478199849955399861966081965757453639953269081237249104902524331738774143126304501052384050277964813777034840650769568878119750908004287758954927205556442275407022131626585875353759588882002698788896286567901012826325660484353688844862982991571103126673545747613726688207362862413553268082897729284977495224300404108026150076121449314142667092455182399166971340761935603058170338744548435351355396536335852751544219463491445226594273985516227741237122386067825293328800387078628582556611257176693958675505695981418828751795414474610308718253710979703725089524748358075646116802267524481928753354566844914179944496992671783985364892132449488232956568449418091572060400372936301636126587772322083411908643238237931364124045623303808962982165294276269317306760096137240654577374232255727264792145766516813794929128883440784923899203763707310384533108036665564213693980326238287244761979510894622678909154440662689418366799428131995174299105947739623413773622924532602112062970266198166904799683548769020243378150812870568189903704560928183616038730672811897331994765972579422983400575417750696830665102771501154787463295208724113446183115135089173682020764072914839344186842633140270458130542188870472664138866543968663425570615109602250154811386267603110069678268142687657388391353904226312691509745839040966996763291817312423812653738021673947999670699062882187866402674422629696583222683323372075350589793390439086155690361851603692340007048713493594055238644168657284717337867350574320216768940426113768415171640912903336872301480983367944071886427364968250258828685563161588176239651467803178091182877501669848299461043119546863739190408228276223637429925992409292784654724214557304217847744532317943717529392637927659280444487345587943673437677339352922471403037146341830103580882615622646233650371328830749068645741460651897037524863169982586155427438745111953616569917179311280409010401524008013754679110676483064906983546034176659929268200985979222355190399789686982436257383994987814260752952056035609436005260048126942024017911568808471517587876627671032164165649348025642712426518659137586357057256693877893002488507097512887440494392379952138867270646650478657287841304722283977263688850045860049825675339628320530477386215364896924080037877524347519199219294678337832263870869636643070211842701179312598970414133192933555225209114713761865342046533874706237271570783457354807041040840456837134613896464550423064736567103854763896268416284842907429000907896811206028516875232315571975763605683842907135030427423805999510893746888583290826064951505030690349385956430073992404076582676994267574370312198833108252217757997883167067409828522655023379901308858212457645554421242515185439388999081928811124737822163686957365404351666513380764629450953817928719192259344510094740520549122618618439105313229211097339073455809284047555299537222179039603288658031934416478832932550158887832995384005366407796435112703693624914464415737076351984122580502459279275989591198841692119271079412435988838527224817016024079749881127593270667770238846131217674570711040378936209678975351928184420544235451852277569501897173452662425248761611109628540116837790278843690246090397158404064902588002552836997645079150706277551398573045424674657574788278543369713212607316447791211038408213105960218167561900035178796747570222367548166763023652736690240555238554356271643482394235537317523621025872108382183957441179437974876025030776595393045867777317737043982701051482613081412301756810368975511727558168735133128683637393415799910551631834159852535696241886899971116040980585208381270244581664231575948282081565155540217439956480456738514384349460069098436834139499389705770988085636005626462817706390680918128787550285298384384160476077275276532033231014695538149601098834203317142242922543475155707100324377241454210076250826220104729116715767900181592787687078233246944430577158806320364373504915561157225676214491582185303557727786560169374317568301132035597342288682216542966995449007324779587546272850720638236642006758359335096507959180019623597850971935682215716152745982817998092883362751909604792107411047172601888931993391725718479748688674050287600688444493022791290019880113948831059181114973337920449171643901372119236510381456200519840870135636517117592290693529118880494178180521850439002997942272115927504507969336715408963401703142207711397677356610809675717756359676762741464582959790892913626045221460227757773708802747553943524534639839256395005713827108713848878228692141071876242005588591149377202092989340501738875695704818705163325989317392935078327060700865905279648829152102060316747348410059752057823872983044429678235664212456195907127253743523138485761584008414332591196728235860068025474951052279709331445943794590655905214426569570983613541833248484373977764760656687925572514791315024259358446676546228782331351529361642681254109877875842196135444789905309410819990891120400924100012534391334613016608578772783485909944100907075822416112868982914071012913545927901543512837012948939298114873728526467746456538274378958681090669237945648708188676779397640706520745369526896222070594476955015108668572585836870834816595180635203585827828156290445141479539181654070279545645015515666617812222368726416238772686922930349089515224022036077386937971737261611533313941846980953443972736927785619847442111852937654827922344807082963443464283652206205147688839979427766628965730860157871807163372029144055003684823917582802565257223652625018173859406491932705754782622539101938856633371923679166259043364605382513643949614918685020744260553830320109556619597327575083832440557024987926659218819214421618761991922819263780776060162132565687228456781434094378285585763434717427458866445660391191700737628394233835230756750207177705032185967435651247256005741454617563392451717861900467117180366709030501937797591896036419196971329760112314323896542557745065706919709421141247983442938156157288814374688677797555025540173477914747097215121385825056425015257104035776778654987822263033378381925202929670299048773860320219538564201801636494289830797543760467089859421012163568444523512314733731819635287660612260265967242553053258740434181101516369382919524855087493016337991421185158634281781826819312880170431542271440875170547702951446144428380607373339123612849959474853054831691876558869696951348512907060743999560999041157953660948386138044259371656399345525537162943949853237361698447451246134840179727650390419761333954208004391471225639872428971478275123692415926461618889111517621903890559161640558990574914710727686289831591114392894165502566023495958581760456073514494923287889885011297721345263010538462735322539772502425501797892075580017078760713408760658916198706150348086057990074165209964286588657316146380083028632412255834771712370963457496495141248545631900759471553941001666491213363026643972022717604645368346085858981589076145345177453085651314883612632133815642064210858277433859069603180111653327542209757384480472737460266568912297178457779814624971597696219416155152733375269213871064864317215897071205198999235759760835060354372483536695968020897882230838639122404932315322663161499281221680055929639093732502919585887841072135207575572762875953279557768393007255837131065902053124263625402443063279889388503177829190635053736938758689188419088609993240554419113482924837990833164460829739091063060314203277410855078385340342992609204510124632877466959497070897542198572179117220659357242888975363899580699655756053162389525881787003441239878106655307618681857608877413070500797126534507270812530110068734561688741230204595042468462310458851497140938517317063634978071425499442236007207763472198183082648949545062254512285002456161848711734321425300298923942937900795467614733268225366508938778128537371956335914825145507219404362993033860211959907056733298272891870751395204078694870172690190699322914340866682158882772145430003368735701116578714610519490319956647896488983962276285624333122546705513985611689164871258533980935505550011670891981962015086874413582845458469100547660708266746474174961232670804768017572614194334576927437117516853507245123010625644921657555301367999241265435952973284885916486046229076853777770063672481669277798688232302300010999347074423026017746833578882081526541749136546974881768968064012711863556111356676491441523534133240607348743665582338930926992837562520056785228349450502385617463897102502426413378386337934386475952075170113099048681748293594661997070873779775749073389890832736591923524068949177512679172400815056661805910098261872738302938277279963269705811494905677908529607589274507813284009601996209015675300470301618818938285736654304316490996014871133944500581759333604787515458059424723750156227626046747356860389445950778388814027783754226323087154435249078315984741630643137664392087473213880263151403201981147547837812956928438601635132459235473987019523473151899249564359508461473430156171107444156100743667382086957064888960795221235639748402389731473197782613919358007274276674404371250434986510192234227848978623027235204401828364248264655534308871509051766523943874999189946634233386993158153288706982187535887934253158755721237243068914620285642952388135906533941008998959084068315783101357449357975638554831534646697863663145187224793826927211964059120847354290835431764961855437440476412291493659191783099490973462348109345286186797157929774560319990751889263404385562575170264751338788286142367826417989104704314388661996844627836863588141161066383819812412262725865275482059908029199991015332985959778379292222273565695990704056718289919734271496710186798309423436145306898525419944769298008251835598929520477783748969838119644165064020639416218093971536560584821973058393169191327002386427158483552089600693853046739410651868914605494586971137351467338270930165444247449168641265145184948208804146775589950954150400398322389351216592825635397320644281072015010769596769705413482480887361416974841118825968750274247515651734822362539473016705294912340618470270219634577564728310729853818648181198582432809601991951883522062627699847825009294102582910844916752395736139517607614306416387559855339160921315617987397268600514061882246123841489597712208636915677530793598942114439447332045102259867947510799029866150368066486981497592646398539176210509093796247361068002647513158918395854889670104742224462881354351161998360101110791396952486414600357345245951788757247062844603924152471528971299936451367379333204283556674446805964570602522060124176371118851737787314611853447347024540236498453303543345813248978918136868985128303594120151213725861522153150892868594581185886470824760887578782320839701346270962684475698793784208470592409717519439723261016171954287737331148125012178107382495060481858244265649364194032707058996376254235938135206825121160441515609666679775488652839019908704536142109714938402069000262505515831901673228704664431551644514301315784691155106079394159276326832387871789539715293903084581365540083140963384278105769968322968303156999634572885670649581852190956634472446027480630224596914645481554058629170309642220196861675928576475616327143596211839031618554516093033329224711623449857410461906525084888852085204045965499078693614401074233136543970632142350615896480734019813938027503699979779174870101655006122204668521202488218928732032619827578807765900096171574173040956875522774130177116017548410729309789523254212570999734298718645684536849216156821601043760523041022150897263823366079134430447706550368861673013538505102936505059164961237898680614108803655506070062489756289003517244356072388778000387162455855679391767146286501484542275518192216818651828042811104937628992091754036289060622179287189157121910921229048789209497710345446443544564400301107333796685430175564183861690595189491822055158069255906288110737014225164532474926179401445166842726364154501274941900194370674387174981056664000487070695018858517110948397665965443294867846272613052234253596733245704325065281660895439944007000992289786731558413491881433029446954522044467422487015246912563041427212819396231349429513194143555090524935458610477883801990081458144910771697127511478543093293914403518850770674328866025075484012289385019135226760863743382986585527838673359942216748784920951679444801250102223945693439996151312361660835549403035193747245460777654760318807045355329668155009769245525380461214620548042197586886278658151383883798674683084889279313376025877031609212244998110163848802265246604287445403933606161202839343895660633157611030737478663633535627360853015972761078298107225096987966396870108736100345848539063803416435700670177326032928513234694631764710595374005714555985255090013720470132132272302572158533398464825520079269066448396637518437409976006599879299953183582602361942080799567830906108563391315576708915556628344599143784449579714667561646339868909962301200042610624762868074711450416164473455072356375461965655932048778592385124209075550890784540970937383264456248652482148069257254015630259116980156103774438021862541185527690397878811701270249845176915823971777655600329472932780467440977714721045595118174966409507204137802367151882848246440686642117801433665714115190160079604893361867292442738607579222587135449604387891697869501781245845082095383675095412717119429696688743977472868633967954014010098263170146414430045955918891913389344759887723823642102930747289004121858605999563573384141920463139938821582236522498577994107328983217677547329241137470112062180405156313903792578668682112007147613850391868888224612881889661450710573080348136270937677594911935156738749780372515436950662546801236271663791471087072232608881137243937062384384791671735580006564542979367302092303953858206402448257100250906230563446374007125883960248468662745644052536324859675312194973075971470872589920792335775431899982441711775047069603121512259792611797109520678492506406161941632009982536507285998282799768337942470436284275816480848672861990232202391535874180558051034749538631603718765609010797909366772436291467313185578151817232667757027293786977074418234001093861514648894655929734205210321195139182369939460625406583584815225428340763674184307050477032763022691930960614481816572339582593581035772261388448033141613446717753099194947071597575290700332640069948469792671965396156786138943020232077528380957870220231771951216402682814033132167219723725077871138350344204179565379127568735498029116309849620792351110710652501557431927919523267124343397595566821684505670605349785545274744513964669861376533823921946849484825349655867452809249472098149931109085754798271283920331771894170405090288057233965452020255247984353205974899940936660510257102380616063210679220946529265194379722040493782349921629898554558699204763595004990622551666287687698273346111406924300606350431589971082952069735882463501916772899614527302208422557508247610400255002592053690622657058572869163442054708279600359116020620492901618288134020097360657106281276347214296768422803832874946949332460433165052327223208618428226054928805252484094150533951651654412056322131015399375928156132343794659194467470164901827935043527590032873680001805229972409363742487146383691057196222718886841093898821931813335445091412382491924187013416312207294948597812418990890094838682275527937659637742132051560407301213050768999840445865416522304303414004499124660904075702892663648112640583391453704588685501978033071493369055355725418185759697704598633820045726563197474451104467491646900085461450452456806495695243516027290150325347973163410673401226504438743301161408035927747421250548853011002839200417572848494523889336185906179128123192885612223034370076943099880248725276289543262415753268538441679704569009615249252036142686471108122520460897682116397575575399670749514453082316467151481809612525236391607718031330234448700340639415530276716222323032456155479382428487588435899380902590868312847101064473095005417685174354989450872936782133142848500918279921874592618199470062441537491713275516491201645382102722642216732364082906779451818204527057110023851741532805547844722419139277729896428077729122367056113850582590695071014523486516174541114717219979635886704755443447409129107773314890368803621460410754198555850494658987717344733897772074723031181833638051603628666743864005002674407392345224190489949508876639240221642577873170158357509456559207905149060056536000909957222107471941989417348829094981389815372597091796214902602492413480072048389737406325407841706812413540422243295668046697970785231027337101062280427420354424132189085613798908162854597621247909607422190570310256866014451343496307329025017461958393683342890596605381390791130120136715824947569707872215481943419719743655510108975897556546643048964018917196373742994590859264688072498251058137190847160422242034414116391907395135420104104090458313849945224276063269244524139736990662078272699147838601374788445756670916236629898839734696677940213871933811772885061190940008029192915004343543831269970533942586971115228285318990018783555272158622388312779366373094159047302547132248303922986213056141773843342884258964922708701803071560056016879004831091678258591800334284785017189994151749217945660468051366685299765349068985955290021341024208297358114509066992234740573670463836978078656268159713002523649803765065756778912354085739667042734341367944412358148991475725447311020387873835468673140659572252143285105476531257768097726889783208108318821468139572564419906244474393633949138852543639938385137358983678024397322237878114598552012792466176988491405424627680068457659928223433886550393685585681444333499103726225216186578783471527704096219669165638271982355671727233784243067975013957638996465792630492790075787700454455895447658838015333107492779342628784899762802801617506998161383834775151507855047000924739400387527888587898786257697760181691609869494342389624188718192878061627982306797120858009571892194089901959964919798481578361604544386074997820932495210976046150014681203646519898482234447019932250589213954057733805350332007650545267595222468130215196511501994008659587273868005704677721599333681157658584788183508681817126659766853110827784014546588238947600386109738345208794712584280741438080351267132623309212607729424555458255713712007853181378714562568776549938131718013772139613108085417085112882180239324448023179364683605982745949346033017753510279387694608355960974231693638883739327214396733115985863361406408420749476859765477167268032740334540476912673692186459616413410013142846546333176714500692066297470371668106128465940549902167144684911067194971604591191195752792231510305968298812746482992980769630480492596601681606407203571037524018270205449620947822391001450155867472883197981419879311288795953803098341827103473328540444179849089256065155154720757067475965459149879113726738450079878016111415100544237923660703140900575716216256884679001167725634400978462668191484835302277858675961978902447272385723438182645119541144076476788242110778941097307051095649330921184902761021840487187857236321576621621609432226519151130458344018343246717098592812912547756101777283091556374653469320835506002136220786185989719780190693717668263603420175607187191425573778908143546581699536706956350808195966952046664591068269699524361141142774011268236051107889464706000275301414181176418116982618394473967875474039879805559278912778372970189653486260251809624420224161177377952034401867945216350882203901508306994726632168818849270224377845270541714947804048598009933761361382204858408444223007541836046845201974852305467007394706363469854395472843716083330929974671702962957001158094105867759952847071547099657823554187738672105714306398637211472989829254826974670461623167751312076530729906164301980197241662612173586289613634017563182059008511677990973730084501999754249406683542147779775321776379356665673604419890590781692209428934625742729947886916836529856288471656678141449761762516629833124185960542720311857854708937448645943864795430506277876533692343834367944834117024201634552933973950889432194634390286386605868534336707440632340731658615019577756253667436656163497769592417288660904669227665249588751238602466378310720269668862765723177449421072988413253937524424674326780963360834999119326647046234024459872396908353612898026333048680743484785527921922503181896086553533194307682981233722751602243001156589749722513585699116891179672205644660026021287684657869352484994403620975145373057113260610601787650126288684034013291146796542355557593636499300906635976399158770137948681193893180839509137373697153235635532019228730552920264412641125646920698762913540125351100293214924668209736465337777045764635482148653628415541009502200407006705442336779998643478685628641199956510648347944684815075337177521676525874724354588050590741806512881080575741091431384393663160367627968403771686384443906178844239521006709584596993938547457688670838525759148174012985606139473837376677883797450530780158192881219160034996347909601524748024734250192424582367359182249705466835798487778499346849626579088717862356916270837215630049947469382671925243271745787577811122673621590234098478376006235432476275956265219751043808044334833655559402340424183765331322855780617623738632461140494568668312403393663654401343463734188632324805379726513667022396316677831601675138992802724019390690502280055033548218726518214417627631148556253580081035734916002644843852625113529963173788952558463398304251630505298427797113838703355128542284107634826594248755847057402804038400661036466164481221651178474750701135291020100390884313332844819525158193624667515978073108114558895449045902459088153759814391287220789279874019710592902916495893766454820793897829779009689235404901141080153353928852339828343019347202287536607600302027964930122916597711317446038191130356725854972716208476404689566387026932388007874135381184090375121096363520155289845289078819079114127732002811585816585085524071362007007376838483827033357042562365304002147156702211943773372327128775527595140382340959621438440792536874647002245576938921372094246138653940778156373036825912961296450768316806372528124256778537187510986219719699714369286592030361426594439430479568388083621140520270211816157769096801274758737402997207313400550939127108652465042804451928505323915267753135371255231813262924381242054920844122077515381418872192581479428805406763857013999760673567032794511067229701610161323771093580518621599262005998777652962923162792343479749224845544954589814255644649682851664166904731310817656997059359302599291570472987296171590136171846264040087120529046141853994094170225661742353814304307378721760269924961758598645294810243148204718836001206662045092302940259377816473209633981904672642737797459089988493997222804160935470053281450529994101277079869394059877455443934091754221346860999689817489629604758387599099830593997372551493980509584716624925594561470273371799605509801384880199139870388797422117089550547601144603752166711985175856029075294909170569175970391757112947588884550365610199165516359076619433821505849768278168827841399867199725082819855740439141972446264750984010149696764005399632095712984824619298952666765150133990782758894119597663857912063150119983432424232565906221721060509972101270972986543713984324082156328412073278649890606129662958832460555006166288868915321063212867058594533715178935239651283150728681783392414682775114386041404942032599969761626711654889014865495928179054845739549689766527247035364002994619139315729518828851057159901097244777162257084298761822117433852413386630042116795885749639618624968867137376704047590031233758389599853931949513335316394389401530441330687262184711185277212944107314497127301996068820544233926106958344826716396953232011029716433784511153060553502927741187692740277001131285304170961231561142710607114089349262967767104783949932455008396394156355977897918900637224476279629374703138095238174216758157977960887234696885261571250186643397553861565546835534725581037242019569703193134579465748675626818401116322966286893646884578325915175995667667957376752771095740334654686561618769236699033480873557144109545238829481138414214597220120694300749630210633921025060343853936875299889566177353828749532211121455508743382542319100203033867729756752890628307827953450490134632935046455413036384972428572266170092369859193061466948233411372862304278589914719544488820098015753063020554520250352861126332672701148385976951840643476073643213499091101490966467585490062274277791697960401973583878134717808131068878785738921427536937449295231972732508029227350301273433671418380270348636096586812975132627314842328833127406376441659488307468191783657364626261149218621941029708858265451988773340074155855465461495868524147303548653267432099114741540105685315683943900365476250993181932282708510532385007790867097812813883897528407480432357297804967277124314898397203036829035749023398465974003638609251418085167104067983900373242815480384726350084851824610890251246029267206666891570783528999106733506845478728279617228221690056289301706506177516749435837324478783342808019419801915253379307236762392564059735550493930680968800565347860723558881657769469308273013932264231785458873952365124850539973082654214235328744699546027261057009855365071450692289389533027391469907230617098619526301922364984411365233842563229782166194507703187811632233441213529392351692921963731589339709003125561800816604524477039516359403409662289573389346368681018237586495850859031462517969065781142136238765663833617011832160724024947426743951601789433091573697184253914160251429358417994842317864119220114256336483371420429993561461360450726125334902266645626550954000113035166926110396685240186803660284090919469618654010150203604185523534913501803809002867625563967569469362409657326206869184031071640853710951690113825113407585551511987796696615007839491587219056135131396201834827892701864220370315301356332834743827529221946034279298776556786329370723798035504362534454742674368571057829806800027049159915753382467749664030773261255784221481336758720423415460484482942900069083026479500479385244230370377900153493121539498832841012665130792384524515154074608121522160205287157913248840110256422638444527824952313903381697674149428351327164478072807452309418058197933736186551953156941011815127482616373255391497135783917286166934933496247072185033516094117835257981949808587177818162283738324258656552579380171276899855902539426790199938383227052990939524643668285007508703076349084612162731825010854187069333139113086891456782323317923140739278859865978624455416688262700696231594929959327520391231562829403216261571466958219160479575330077273399264144758141546450359372890718594579080048161974109443554188756288997306470255659546333159307511952040902066415818181506210151639923005756712347237549729180433189429385282840782511144446232479860048662601766516711133034877834945063371743305327708235182476261041298979610544081311643552400395678609561045704824622734757914306791619569876368423403887686231869622755194915134175951866625275243403596914353103632621107745225880484686602898241229311305156714261608087145379765233050648754728401081969726329205896769338537787149077647294766097214211101331799342762935785889630216571048132565387982619818686570957583989923447505039084869014926406158390879160810286393569562504004595180307165556315880766385967187618382240819774451299829765652360768261106457607838619565491948931517461986402534260238960209448469841648504641995284245577078302305758718966567617871810967506074426254956329511084049548482364952282745131020584477482308893109074905240660454583714990223308847784122696189038489732978634959388381697588112088557857955810921710436620034206138955685780244204221332638972415934075717372684694649300161423845359442730472590395948851544820652013092460859275964786391501459440841436041273918163187666418968592621580430348778621518595190144838053341984448061458200410177179971183025300214434060233705026941299379763727695121563078831472381875179376754031343738502389090462441635920018982920072824868392072296389262557327146492419211214993376201208363481536389608139502927943397868800877062192580776848581932039602357032482762254932350870928228866283773274222219203853774412279843888124353510638887760054707971438918375272160159417357374495210239014607709556682831691734688020379300825954984793035384916229882379371203580037637247595901675805949525216199622389023844421192090034382694250739157609257942282581121889517432323273735419190517342347034537458943253657965011008095391022070303877404164554869968702539225441814834333296416563239386797049610599319780343759725335457815228975816800953425954809378222346150083919686959662168867717736908700820039341781971369358425240086895986550495461669759524855006382834936465020960234846307665557984971827152907792456033256785071553064059868112052657279542700901463659265914795141491841089994604824538592636464028138993882781605946386435503780789495348022967477325975222669703466933948935922875172671104187149366695322291436148587854123663664959974473935198001636871198344061835354461362086404693346572008849108540541778145866352957311908708327163510266124942677908661159510220918330890385790630778643936421965746564765551512860408339127417838709024382252610635584503705675978185393685631146657845733141692173033170254579504067776802098490221931764784472749817546367460992218783054140323073449456262030862380471165487148361644375272231421712216704598675901921911851531284535786059266659634403548259877686645845106728955812601702827207120915065690799952419131436342434355074627923915356268699938235188580386671232228618258968308076479629827155643723469887712183309730395215151468199965289000238070148037817667438742922064010648026080256360336615667612621596299625245711422359758965418911422170199982117772010785001448748790302364976209784815784137609695706148738509202389089721685455797092423084511688443145471874883803802639435623184080414355762522089476550266785167132491977550960524577449879634179731516682673139850613397517178155636341492695747702260687362249338254530584008773393154350535307186816260395209947180530958895268450394395041980173408020779926924070717699365295496107276270877981919263718763722219508292572856869545060577898478124514371880972015716622421009014405018467099147336952146178781225040464077898609291541793548357977869814985449430559517389641370629808062028192303148912807064710562615193005290816561262502570321190610219334959079500264267611145733844582573327929681932003751814131974402703061118154684152376695102055849457416708220835958625186589417881491653972118135763571029816925422988770960801488751175012701103614112219552140723330094202790951696725278956648845319099487004028990765609098563820517393263543203136401854042908921431497673790309710990574989511047314514917896644089005230082885361439894710868669245615022252261348977485649852299593727083898059398002299671844543558638633593891919964406399127878400627525906683360116122704529526216704856779286549297049419263422458258805589339349347819758867204637266407243051840875373481013774587091259364551791858067740011121445271288741782390322450234283090021901128615454556861978352622985254300034078840869458748571440422806449908673042922494043640591447581739872925839188828936106459665423366877053468737731875438665233366269039169174131124901510274844967681626871930195116448483316692654586658471906261967543740749935185827611226637395762660611474151400275041356649189113650312524881266073345923577266509003035416529601123009835132424142360481210247557145790831715233969329777687595344563833555312585217455897035814761645121668001566239651124961999225365617070712833195924099424353458049432217733058307067600717023255700312547816865369642997572811873931887502139282777586172064147600114512212030473082557038316807876746469116006828174314425194581701979586811198460535991805830144592730181664740821151703579239690557421021686703624255712169197719138718987308573557165171704151027161902264722066023027716652472112418780662282257517133976336969829875829495516789631545135370621603940401648440993586782464016338700408218397210732837642289860602351807714562861666670551148291944733994523662150991448144875368343063620410400051485809361723560741912996882129050616753597829008470684694264498714441038907278294880416934726294770487112639993807186122666559204273142788895488993331863182166042558485874019825193448193109724861473674099704503100078459820005886548963103324171536076112736102205738181845054134339365926981630686939873027518623696629882752169441266537289438578714052156288543192951215693484915051729042136625562518926787087776472291377519868836804446017106906886627216680701886872494750240277717350816730378630238096980738007742285191272777426953027027857443984325187242323114200945352775023694665846789124500175927472091582669578329225019598415612212633936247232096464920656669897780750609372969417173618015650953581464582892809390202554726027105736926727217654389463146264213494383716632573528349365806793186628020686560187267124795785757374977272280005553245168761816307079078132028037002934010470039020995547354856057020540192519586753944886055986594728905103379799961222186312345822172135371262359253931722985435180812044888343320622888093153953554102716172031248632159265957984137262605727176621331738205275058630099727524104325664808390816205891895927568507967159383301191960756596236864849028276375357566193826283554524631933803348863264451146733519632050123302014861227369220282841773518939824109126111615756864297917860642126296584172469273484955637033319090612312584238707038782434880898689237860727035929460471933613462665922445885861135738777392801085352003005194458489344513618725343984153148275279793238867150606235028236708314306176394576398299769744487027033872613290291276714546275697184996975082433202164861044160206526776077220171903540248073957756998501908299974565296678697368878849225761422622249735493743481794475088290772323506700968583912105088004335969461494947385763185665617714763280912315742299537927580675231309700506372026638160039112998872416020265914278800011207480286495594061979998177985886526390223073202625840665637040912963271086138767175899676636151623616898660484015278714999094543151757162610496065600281182944123395931757240238833367935768929573777247415589343021799837851943874120271575883983717006541935935440069558889649835251466876778839675270491291190845913220672416076383295630280240808181844931257828322132009871080976875622418003166524801579114728340773474247719681826193869807637325768834526308982483846249073036418980641693349291934029285509169334391935667733562258063151224082733053744964077013645285175249595651365489788714179268089035877239741328898059067807960394036515493810739855779121904713521629175525094104442627249755189288963178415313181100168864241463877315050541304964681555824218406493495108815745881926190422383620533205563144395756089791313014069382913081049090124620370639308329991807540077220096834127482842669275358645105299209890837647128674628475616632385074994626145026733658495354869702083868962458408823860923341058526127795822748885145321239371827274064942348086497473904835137737930353222864256393920549761518424141198357211775241728093155170623417698205263101492872237722248691038131755044322633218039075863481672330737587243652763067992059667719645177739931414475436698754079098237943028534159468078736193418427539091913426648829914974659369539964527916153271568664195529659028113874892961854534920366084710603490809620479220740056697203898311399857391599556977227618532756753642569301500248901264737316305475161351112306403385076092328090141553996282516620367651153907277406747937357117141267635541092032214356232699604683060391711936512045846907823899343971520604546203939428095825365668945579999826376219239082340981189888722054154547199890011032671566680545064171215449508469366444699879273924632814930190636382380361949601665486637728105079110483657071195164214609828205148794837660317006110267270263359262328620189352395273192911537856098174482830531674737748344261956086599518331085646976582653623842308960304008000450498474565804037393589675704199800558922369029327053164820580597203157330312422361122985723325703171714865705809550275737948091380060887198302046440356434706407806489884711756032508660783689411590578614763176986781042702630962258003787102356192311888755021737501298030505796839359674545799508616067976494515843386320460359756504333255792456283499923993483500136869020244259031567052811279820259962938041988168103532825251159301962037477303717965481749385805458954179006301605895286661300992305737258120723565336709230093329520955242499082556931798713224005085586228559946854172158564560715653798694585805838211008649583144456195330120442706816240570514441496177632958518455348796667008014564955807754183866600760652619083208899038619508732067061116802370902336781081824242011766647696937061184059389203174838437518193927771439120291464007614701386632355849805813432985096652829868327732134615843403632054054960580708198889516826481985554952210190306066901321836609239736902754445606282743520082913675932882337810613716581319086022847344709266745550321406231603195038153393577989759945133807631277696071796681650809717724396368322421360779780211187202291684866793738574439149981708371353218144829332390873399977273265583832434826671739854507678125590908264745923694442985244170622386203878761233178878169780343270248268464497386251994973674207808869575230436433959583650989467154618813259045117586680470657812182595181114458342785789100655404195377006576829415294551522844616763639687853538352271232218156568224614559060681512427363729255837423952944650818379833253542516651030225211027096998596009862230026285645262891951544997393212121157759370865574211491515470418319665622212232932352157217626333495220821198008366082243747004578368231138999910070088446858385150113788136144072401160659783663402565026001962807511488224828692892226839153581652827172712878687996475292235106113417536738263047383651416348361880267455380863501806594075484199532287105223880944275995455708370526266249030245711926005875281654302944708898773639417213377142921679841206944677638881624216433544803473597388404061170776083258027946998661713121814269783648433896494366979887169361340249985540976647351969847225544105881646518887431258797673441575059849077597089905817703985755415715697099013676446768095080411792050837859877798977745132157014656371016939677891266111549867352932619903974625279895366117567618707732385815691917992850661045714743302326045979771675353566800311670089427724384339728054162415693461218361995350358501315651668301585384445946324417006673422715747156863824188605513774051696629936783668352274230425655218193658258544468837210408983215290987170317356084104586482071147888739789097600748684442811506993351713916261144206384334489109316439704895107841229317572556407665716386001646174959225272498791363534360369090355413700350779978407765784477515009531225188560621517921922174059005533146599046464988237852268278258474515539756824299570694002017126364925152732864248205713311982343842928369371398248599706264896291785953814326369532347399990415355588717515908746569799591176308477010224814517942702204854302202864081558729963449301704257888216475953034554042864031001000400620002399193137705092303612591287912280510019860953625882417379127699756639548280741724600957956199047746721615025874576704045952583211559099582291746787723939915264019639898745279113522482680359225305227899250977447572814114656860363361536603942172596703168278591854099872221949910175204732953902192160997837517396021338624888263617570438916382623910297424270874896265508449635344645433327156825893404063801299915429864591890944556682120438403384863582435070582853934034241159639276312152027189699303959914738495045303084979497571660505382117869651290177885799725384487293170965654762609317289183315201249935025983462888909307614264638245712683852159771916887713975219707885464863337324859189443131745937890782122305932076556406785725886512874032327145813302942845389401751848739936910778157197117794155272322735193174974821379987864677411368041919139392065174501027261203190048307411735311463709962459923390676127565978377322502688971516327319048886336223998229995551955310644720547022564719754373358766990862601325017371780621907067854661150424622056074332450751690092474920221850746989149498873620122933983904918622332932115833225107772436134092342180246368054664534545160565445831808195138483887647752203361033487036427534752575311657793179731735013207628842890112126600795051893889591603191973084125776917753214077468401039241524094902395041874881810216245895516641520031836793399278326102603619913016508799458839398685003657610860774652890923667939612791511402447633181009449904301334037126124237073570954970628771928525297755898708805629521529370559475596737773816521364645874876588951570779197879679902534911534389635724691085511622755083695389095905671449942124268769452111443483918220098838328613172183364041579301327472195297123663679191570335910990470384836000421615578354870599761755075252612931250736899465388934544341158744905599265263215909984161272772553643366274127923440038488383335060167535225233099634108753264803012542889342488740922757157503028824703821672025957207016478418834582152907774951641175192490279083761799690794834987692174705740667769951540278672276838027205030378127782126478016722644736915041381229805352822524063548967263334453970081488297311297269494454727441157142983046373238578226879159510250147792496463349183917907090246613134536200019638026179751071691099732895803705663828543471039933239381439453205647487360942769266554607019821750586332194839251380489286111296821820099460541572780083333496990784526117461107347415918088410056378553201708410657420213847110733845626164755876858698931867082891834376178767920801484657869932879688439063905734684307521633296191383322027594539649805738407579993934480882829083085531633856262663368339324230976559058106330328778776311595244582342697911503716016987425767945074636733659649128434219578280455870622595818077632142135747874740716215875259996154227291803189297238255707853555270150986891631638902872671624343453893319627812464392934113988555607447024958183455290836783288566991348371581695753203032255141444083246480531080556107815161938843382583297233392712193616605628419158569759210113054214820765103737364627489292969206213271995425503661349577847079928609546549979993015501459172411387933123685554818548392924145379190833476680705199488773855261192534925440154134885273507498263857008568582948971288345629218128380978841130453567201150506783588308900928135332672346590833721591382981597447422801173245686268570728285944428179010034340070351266754773475186890677482321664924483126447001745278876890427013698964722984770587476356431619054932028806172228738700355699193979989439216142118722286435739786138545382285632940645319907191398565053190632300646944679203793406930807130047698264898350390458893758154628908171076538756538235323098114512742456613457051777576960827909410138671607546832517826474566709420953006424206768513369172460353082317672174072879650022968241364153570198924361552300970192080555541796339570667056094562683987618372765539871829841556382018907296672953389141571767643161757650983788847628351558812398302813937829539978303753751745932236814160366493177585130785832944947527477385373308411632227091452536838902127642134479051405570353555203176609587862166815768109876275530779732612586472416543050307707770262906597006795453628503188524838030113493552617323679432308951679662499625431516652063656408903223328994826059228457963619799404963133730684833099461503875121004403921232287931764128170887441809336587399830697953569207210925219876907272919106554405023565132623642783509216012697665697118744727635343099624237835069298681172077107966948927363898003037659026770940151126393234849507284198832571648358437956419191644854043547985892569160252826312930473869182309188243078688942023216785813336197647062833093418719769674686525898235617666580868657324252551371864763228898419756776890789289616911271566974964329996748021341699732068112202609270855597113500809495275139571055937733726750890732611649695301364405602397745206722423346507064956824233645092818641013860137481900249931242050740162518529026496649720780289944578478605542462654126418220368954250250892089956699541243316529623913345237804366748970458248515688530861736208302666186071559572559732267493519941507293059131271722759948152686205176371407253845293641449994231447448289114072585805484904245419016016582486479338729702915622631755640957884364721220153234161489376964157427297884714707453832830841208515105751787158242366287901170675620268385636284848499298466667132167200564289407851608359082701624054050800378350913116226020312526718467790457579082250382435221380850096625356397295170766698859764836906708355063062644960077618517666482000641954100653822513062496978072809515025710452570834327754618879780703355397457501580545727992520377479644252686913813566463398601008793996745562776911770682233253585901205120565490364645360540278298292974392684673679301281668603126324147074716018979406061090173506735664978619225388107251371738638564196135664509979129015603588352321239321282149726147082333777002945820492483998481763624168424347683552991838428272889107663066530863391207015440462086748017535473040429833214397930529118996512750444225275574449522130190912611193933664701770877281517945280024870544592649952272908580171399549150566140463425550114967848197740984847230321296583578705898786065165454501508511036958245030936004899550926298008933613184013051500052638335947797952948741578546411879766345060771131604495757962893064165398743437138739724251999480678189468022541662172948720419201901597884788239813318887514284768206520361641010093581042984113432915335950709385421839494062306155908660339281785915296422158453418087469090629132260285738009956275805965436890833569610105401539414592506198615447207930776909587070375753058139312481589311848679699225161082245922833822048480613542670307906617747923790410576614246904837368282045612096320288753321612147184368458859766285362387808783085869944959873076245785042873836113850520597811865311593875134775696250406885455555594089504927649695495513454070757127414240675280964982048090614399273066167103844312386630959728374267024432072756450231049771485506134325393468681662742101014180810877287045613398364574262581570831954466093898833480297477856675511384738793377645828683088639190357218945735130728469724537149887810399913328921753148693189122612090916508872696116430028632297714968217057011138184949981740276200238365993940703518653166117347878879051510465289105630361556012871678525629501133571914468238388997737152560785048219501207828603860351255284093407561576039606579510560561696301289970073060345435756246986241852549470802732871843541247499252625106988232829789013934586255077929586311676326726381562078343192455734778517383862488497744300673817821459428088672407124053423795437654232314051593941392875904806950807940820851001254638875748269913480917093554006416840164446255878092461767605663355637925162516994702382511712152937530232969155286633152652086461083128338092360441413867674968187725151641186005337509363864943026665436806406643344802532014268846473614820828156900569852409421290796475427232366260602349790784228638656040344592624607606250228789331105069824083224891772396182926482139885083244978306366373285172243967874588776100841355240708547626220601578429860436488053197775579557268905667084764538733937085522358873652825621591654340737841714178854936734163511639296320943180053772741609825318088421448054963062552857725013642702337206630719296330150306525055882029198899214420878364262177576868298186245621969194441872718206025466393029513303574158566112171466752790875120476627761160258251045685401012602138607375461858924962037826550172947355122558938729884337588601956852046268636899119143817466924365327356108593016611941794925647914923008750942781702518207691177176787888134164579745196077693208152364904132190429609053386108810104117182362167157322346798607153197547963919132733116998540593411502222375853479966415087157944162197546365648228485706973374499794561403138918921462718387863422281172420113911134243721827332373507506649602831727379594412379335023927148325968150490177836741629386311367674369007825929331424610635964154327376628615657146217467513750838847252221172867753876579740868337641101104388729034735562079435701034821942842159456164778028107003705089873633940952783534069003522635186883992051599130379444777953655784707009561409121101351911585160838711013622652859426900864283584125566875133013872614510960741773677498326268294347211189112407932393191786447041387132974566076719731445961046870420383526780260811219967787853968677019391163907377541997126486809026712774867664441016066739060170559302882914789971653959871880146672929396494971201683068020570165477960692559174426930661958016468797612962448702765888716150184371981986343104703858256086634500119100377304015393190466360662148373508293295354549331526103688932963450008371820601823707530355951549077103662405720868338900611408387289257340931349705706112336929510951246861152114433130119416603389053758311790851067012067813320413921055883747327092358496988848366539723268072033049482395915971826854828588302271035814935588798798903957329987797145153257057759962873348392546686496418405478101787367127926302137780312971883899215250015795056961733277502773158013055515507196234398111323937014856258602735231789433574719350362270184375991595671422994150265171570002885392187077562173818039430097384633518543073927252552352945526253910975527165746753563538755308353695126735837623806497797666713885532878089120994295602335200745966271810583942896650694096523573815933982115774579072060741638045348645106066024754838793649200277076664688535494818855138088563023879138303864371189421693280619462787015138120863333323673878447664634891109424772108584827169683656440345597941143395202683100572009895526030125709119951774372853207650740861521307422975108493999325543567953310346170171071631762486783132012840918176261968060368001101598939357374921707172236741127738306152143454467516197317250164533859039277717369070530700280318549764157454357372397796936948731900378462481397397786134452882929107309726005853798154211761571980895247031417978257118960707592804503477123754918125235718584817197436372410386742301002091480607025960520626517910115042881136084686208863158460360855889150019095768809707915849996331973627418831285015200717663683783317182513060607051721174590810250800021110060933792190739809237367957698304150541777951850899288152985275643512641344392611412568756837817676915227280410155591036198038942752382221484557170400890238802275114422923579252998834418352108407183910224243235152439375695698391866492473096449618303341936709490939642992455595725248889969018911517933336176059776933231453961756000973135374629189912534110414922801179436421613105240133647926074511872617359302543659642858974012632931603310854526827655328458165878021880046982697318383829414991458067509727578668103853879146359489758852363056770877426590725499009464318892169340359382204831462277896729477024465761538302990946291494421989682784046517089613632402477847636622799795771452452666071291870542642447916956234606407799759900295126788189418646900617745109593747305035550143027250256426326223764799724107557633378593683578491315691311430222264387895032545001600533240984286040974879682263074494607341447128835477868872641572973002535781710699532520567713041727038912711955495207772726538745408161914682473232825315063272620956869914872492161516058532086566720289638541580090609499636647513030185559754243723628756580308694455796602857454032919742345006826547482429149140601217438854461212576943557200499635981331433092805459906555106760619842521901689849668080488823429805984584198111457123865012257677128686030914233742584433904208591186682221181446319967403906336197806671333521711360802428657811322154794167368405609251793422448474347407565355838739666108540284591394553055966950529492212347981132106546259409048085173649461982612309675865391201222317348940728081564012093797179214376104924256444519744783765591230053318668437052544984571252016520246699863578341900181244435216563475675261717849204943703602734169608334782476993307078998422665685921961005949485351955873339179767277625367777536081937980741613603868694741894989646652872453434516596819999562290384891918663631112630198450227474156481874455498358272478147587341919629622113073947316694163017175043178550484043127952542762510195018764555349078216791619550255025961940304272675313367054396408389830167489298759245162964113465992953925341725132767123844237984323390713230672153242670725915926699973140999294940388387444616519546616705963777801469983771193953953865376657276793977133134112673135693848014950583152058752787536922368806240104713461476208723657341911569095574360177750100179516919987615143854582305857198806034827398140864508032645050755143090495815096707878681771774192073994774226369583765191080572152037306356847016111611327591094565339492604989475512628159096616207344517667971683832239822770317824107342813502585922561878792847439615160648101489388631251957731374078180329542929661315200476126043190652493212521771377516316972840565922345168760175429371664137846809792656563420850164139758889772853646832718999850926409931106192623095024284124967118081426192131413387190987055594311254737215622663934037388662102705762555510907930020685300367736380877263644737117616754076480901085821529417081470873234368641179322056003555935705584923235337621802691924490383110044348334486197747857507887200266793729564772159734933706975486598487600081300641757875700421531048976622285520190158701255014059757926743650524778274438912754599539158405667261684091218586681140737760416385237693045644514207001723012188708989239869857087721286414123988091498357236265639423130874872454063701465834361193904551921012316288165920636506181144928275768855769508195667709693912777773751671262166093478028530026187519245900074760153213162331895640419046329808448342281117016647634113044154801985334821215764338855865798276460282706823031400450489170967835649568162269647154041450334073048966465756995414593536173499792228958066540217789082158393919521384812383585003882916799538744882205173005519639822551447136245362629310850115922658439273804675084444420499424984627924333950014762246347920853484138837790453322596221410649000594481770443086539585438953923852743634116246834759713995815822178125094165805761264080263835560005566511181180388936118561924338679329104143349360138064603955032191709622143288665461465721629686534423657835352592514758810974655892181048510879731079244869913363259082648381852706777511935223216406604416497075603931023366195588437710216861665741549133450306865536535805281464429492521117872940794960301828650686044702733392950265204023862258922774898608004616259542919085475979431839360287274246767624641302572689105923979091689698339677972411741449499883622645085713816677533385171384614580881601171722662463992373218511418333149943545020493252765609296253579621864745982565166012068221419103127774798325726846563348755123054853008323419028230110416872439378655292797421762745448414663029046078772367097544685182862998290522497292987156862129082147844978292396505842256895658139726793064790484490062979282660771392374061958880998503273448156868047794632866041902971431730982842450154253911092818198590851591817080227608175391717058306602769638338377504594242557957045882516737049214145977980297037423521389311860429968693201714508399412385089271627678398296033580888999301362269103398920080303562525926316438165141891586415935959857259148364761542311180546730205479981080173582083092610990782136092981361522639331196913797732285620870040666722331573014565874153725578892117702059463665144726488642981457211988732213104356220998529790423759891830511257484370701376622676699856674354463150221493662744465343133151232913563903289215441814471196737087470951593507749645247609101557461042814231826813958661572918484446768924349366032849603873914474410689655088004191560945354408858688405291979192151805384134753309334549706204922997277155455881176078096636638274362128589578294477435085198895329808289620911856730641766984904060099855788472510288487383411923742118377583979628061713353729498495733811391808273168722777443010419824987509897865947849764168940035735742060187140100483432022436505690240408861821922790565604760448753707617722364818057926753336510798563909507120891886269411811188408933868672021591134037246465131122806751797332227158083883110578320647413482148519016128745960966819872124377595223272025266809508537695354751730629097076167946755232608398106359806841327242515579093248141371508119738473033604624670767385736546984053090356219440506976985459333261059992267939083942639744259386568557138975708945342703864709123497423836914514759269671888288146701072903469950183034174859369403603299349534977014428425575454666039833004949134394924957666552208338165246433582470151327736760241698275049577082111487988039755498300917699322708816903324554592323757461228311105585728974339199474203760961827790829330882723920605144497510144082284627537531763997294695269747204426073628037807652315092374074595194791143795227863256942258178090343815885216926583701813610759195958048544598600879787633722967214236978160733707980336888024670482390813154312655306281782270672291775328881374556657485332205402650112950155838000745600745810634843115586572512537566184696809219084012061679158949259341134150747706827590356993866034644651011622322162501033052841089658290954237811041705832276687826307446826806346721668450469897632112555155807996786179810995608552503784040858711226817288925026575630768275412784701564790395301237503704718036833431790134582682294426254370304995859124457698673726600267044138432948934559026500641932890448536090797431911733023659621578299923845272763937674646183672272049043962004514069195728731330233269135811028874926697344805631582975183026215752017844870544572352873132703895577922524371450671851569342392345571979186322402525987689801987522945262615973947066194781616088861702353269081028186179829459606609117860173715605042035265990550247510052452158234229964162179543858880313835478342466942905253435327202067414637737195235730998029703113682117730911306445565973840792030430100792156068176733221585713601817043925749645821620153513826519861989209927586176299806899191044093100674226060189684593414703744577469008290465248333611425554212140114315601809691221193012516544907679336511101057958599048998076324068042108285375111111748017559186804477992142421083553528766005709950000987397522547919412515547436317669342007126165491737658787762183344872179781679870822009362125000974197018428479765960489410841269051173229064120440735433419589544033782325040414344898336771683406989773102977755892982085839708128427937532276667244261067647957557687300596064574372899571624459666253874993611299320226921569053611087332038322353511005906681705045241290192309433264608113452290900621659905518062423865179653215252543762349797394820213616818262614889462105755846353652947408829663601596538581769318713613033564170469051070810111126081852021193241020374165704627136099796160195227449071819125313604284491592879580225812299878393311726174785442461196473705352186946171511097908241795738250244453187422326150338219342967801120079095408426842541050548720213803727710720068312541577073201025351198533391477850387836681655110512739490751153065121495185747153918810822468748852933014767895850544250828200895657585105699978522380990692175716468118101910571748569981263454313720210954994958600886337520899547912444143091760215928901809076459531549444332502944379400868631294853898801971199633078116770368387631504004226667935270437923865428672073211236511069243965271810869329340322277928458545887821363449283042488710298389065389792404887236319240380160221212491291332878454731919768494441008089647575250416197459931107519559526208758539696617031322417789099425300967585409758028729447525681607091388575757141295554726454663702928858838082682343595475231216875978419763077287474049183545865573024465524758736576787272552617126456684866774644086900990707666103660424145428955558541951666769279877916443902769024315418149227303601604658410523752387116464390827989106220183483891340045005954274614094380647939149135383699462928537513922724054138568017938934310774229429977357522806082996056293500874288520546054642792897524638826526059448065551719086992552645413779202983467489408138854351099441616783456789626148250408521240806509902612714348827131196635396937289283737523681644489016918020655205139839069746959623673420462476508235073268808330984088341992902722431640789021960825196123738837567346371444618634480246652391026353000083197171901926973898646372426276330510693121313413385661611282719377510547784714921249650518844185525795269707595793202656662959059865986786634647115870757278347567072180898397981430050677643489223770200847418187030016182803855130232163479939737574118448302134887513824966125178566231805342535490351335417571125347968884076118424740729198712398351114956132493924151899603371520785700418002161101470581777065998957584576552728249639089119444525044471282417317397834140778217958058683195721546446136152861648679074288542154941210533465232479501316443984110718449573644105820626785075967973696001403918952128939876809011520895280878338764909032156478309274399046310880724454696458128328051060630643881180639950365681836598734609470329336105218291808033320245989813478686666408486831992798334588649616517786187822966049304340046800732061339991415785453894884415843991115395831031602567298387742874828169538524375173379679593723859046891219411681885027635361040675223287309281873012493270526120929659763103657176991020484391771510060073139069457058221080658914245506184055803806523657360658665125657700421002117974152928919129697860132386987560442917326450370589377804047520029249179193892172402691034517883387324204935869629475453865379256308381551827876849456733513809392634587161762537924766229163702565574577089678573103896867762610780814124942147728366769282978051316078103442015061333513397467597874480167400050863040193301589184751092951745302929153269619895170795436931646835830041223910515943107109269448159452036722327355309853071240070061100312845442674453779086113711141743997467679585088446611549300123602708199536185635020527405381937694846106511486631828102077277038323915078718364280969985252193855577279995388783895598544606060558436544058097254105146177037193609973333326515056106186908143685405894626106614808554623913322632177983948987054792151757035406081736055291694729706479487161639734210789560032691943341301000650905204918248531035967308498131703838673330078193700525580892329881438679465143696918254658577412541751153739242137960082784299274057567677592252655991526877831621707926385228527575102818593830571032056463726564213156965008900369537921280160341553137962085118031460824532850334992292405782631420425828668857924366825982774173418377563628523943076125948701273066617933718334854543147220161827897907991850976471308465556569285390459025971532551080415800416866818707918291558706631230589653303941486990003415670791132450819034489102582551472122961229454943001943742333418955593755761206925990542793100406932750667403199573365782729948734980589575765332448878111071258370341407582502650886559040642567621879243149402236264353664933261077297560517578094437807931468389093385156689707002843856624230629009626149030724918508474868861225018483976569897984513170610894570059656662121020775102044842604891177893597919677924575653887575218510453246726372519200029884710460710900891251087424317580214878190267792370045105012142767429877187302071063631434220972170484931812694086601785031207221840061627089779228772177372013752526818811588719669553179068534736001302471020320125389268280876068283848743396142852170613980477261056564633650222243722693528650082485975654690402041912635297210730254617713472069317258796791413641188591748460558494861091079868157752591345064940843371535247167961608637682366548154793145691315064170980442924876715101638318815376828133596511641351511515202956566729673394469006785994057421333087618667629665320898903280191185842746257204892727319464516293085242086738744654464302698070811758479164124120734479030295439082191578673977519398515148836864371799734697029446085211251388627011538685814575565432514693997945427550789855247672343044668662157764217483133240914081711893027595271286653170620553725217984571395112677469968824752390879160463252511812826247310754400704157087528454083295991769157479884747530202399039160084916890262407641184508074164529995461999611378698155438615216925378692475820446572735209551457232437921883388375243329272507722200704575270768736270344165043355684260453283832327801751813112373868764759270800678021540286400241417755152310200751471752102516064933978729013556029384483909000707299096673664445410166160207128278123282957596194020985753506737672604538562760501576321648498951702023052706884351428865080017698756107952130566045356241342222121252487862415813451313405358593586572559480162679902799349015542307916088862915907638226052255715628305020381708780546390635519979536177001334227878450053767346683740739629821370139737389173875520013602288656242136381061323968732758827240807349702833182887357772867987038071880093341332878341431617471338845316707462518481264197293479201178602769625578345518849640027871652392219488789052510661538234186358499759925292791248043623493911250236185681158873324882929191453171810320299173017150876838592580862200179420243625215232483600184207737380073557904206767189175135487424846498728236654575863706445922298765034264897538097332235716700347755727556943389624901331472508239360798610473793494412394157601414635961743300183583709186600720043098077571925525448402120022408645316906863593926580403472950041386357067012568634276495080682796178273489876289519474596350511286338518936368874146033614848699829108499225324656232507003088042747990359231254882789628460572767675666820918578608929472277764878675560050441526571305703739094216115763215110545620098732299521497864718886556379674182592997997322583179461385277632257016494562089416763065440537388942998519922872198815925192117786727079346915162901633902494082286981545463590993932098838355031036275636443595159706822600260225605976573725484604877651098607385707300745286792862444706060833892441633781822187329089911818446628714850337648509773596080681982382090604091882717721666891421502738790569192296299066315271298578600193859639733657836744709672110990239557424530013348452342396162485597824014991533305479695712177276463413999398566156411054827715573474054763464553832435991820632988335659508272758436505790203131887431667489828213739175843717324883965008913872798717021628618266514666273792182146447935134379214988139481581099195800074004165350124554848592082038713453715700288857044031065003726598382415408501835332603082943589914870031528131555664358621349074778257091338055364368475048658802009275013734356452175816714985723442248886790240945070244236578007527811491150639691496016031290930045495095200025628824382608146797113678253158209972923043773394218813073324706418972274284466389797370420386344738075094206147731011296428289594014852139360233967717506492645765244666199767542360651655482168201393517788277813046454354018717787459420221696710715831229662514806974336124397211536723984310081348661572084735101656704268541856324322582563966152624578880528667141880504336300727047737796191523319297649778678388199322323254898447150938020035212222137883458519433697849980379998653018132838289159881516325034037668156968126151115013748741328520961143441462459339142078292769345624270702310974343742229643437167333050851347475330184298881636423002491729009639244184017442644683443288030728629132858276733445279915405795026328247393369287059403215087867572007774084737279978858824919229351351384260996697474869318167369050733369756800908927773236033538249696480265296628056568884930961507096247534343719666430905470970235781764676622730168115239953559987101832094045524736986707993133322231414019583998215821976421879864105458445303765842997740872071896093433347341933485277859833699563460461688072497333289689712246584593955517563014370177966341925629367707885910462397600305513942522374128109644867862314151793141468633810223220496407749228494839810946791075826199558936522747612720447296000559903002887416005769658553636628461306782458498233544586822027833999871180204819341196002177501382287228712732678682747871595221022058977209591269161474249095480661980760644842636642096638105518874300565855984311023169474910456563315555223245851650803616744839868269051921581429409155891237344521662608879323116739331510430151199964405280867713774390455935093594307706247843705951420703620828733120016218319946773220382898955830302943795847121926227417628440429823660947859389117466402492666806132845274237901092817458743459380301129134669330474817749355058480980143393359458470512710762644610530877638917430961721239583951967542236751320176620138941010990716509264238429765489018506661406564527784862931473723478352131334684173967856136767587860206243744431855013788073227378025970768845084321098564886039136647286912489316884519705163371488667688381422527329417119748914192478379361596824430840716911426686368159308264356576623119958504920812140264483877793122916025759175087720601203807335128837514118395968612952617344115248300403846669152537490355060283935872299581075609057570781132112141997356829756195219184670638273391083596853581160481006985707812628755028295787139272980144791297254598236364738526083641934346187262356491326590440183025535461453913312031750189769686772482935491703582449876818801928078353571108162073706753164592126988189374223418398937124922459046182626534004828350798905584053882005772377279014959031479536331578525609258070266475937106122025208546005607003904261222718440995690607839320053320468192410906678412280330058490728903287806123340106928040349425486909168190813997326289994017234665496694676614841439679503903028964871090973905867255028426328059109427496097220351160478512492978617769364979004024174343393620285444787593488020257316482633812235047926202855523211376899267248062225657454431056106761902438005294413713578892435787265148064314677614846834716653113632834160874825974599466255085854173261204537529600596337035346285979503706023896296251534930836563002163988906508935014850742694426532487054667448705188356170396827626485213076826888207094322685319044022353263402761581516942509047189706452859739701667128573386290665033419756814294955455632041267134487667386017980661677446534813361844704294748640492223321931413245236536230469001209209800086975102381661303317578626954998967809634710266858777085140028503799888017742128928161806516200367729296278686831202279344984499752268243064180036439762749739123013971540993733751751312520379473096984184234994486735720573461376270459854206049807710763934925501244564241080173117013334890021328823230162715664518902658582044626207804149164075143736816506382072045532675038894492599708549077161607919909112608965467885205456250248785122245768148314496419755923881684620076453877251892922808547911190178321592695417892712741030109912370654286657380543348280190858516806930288517269832956432410959385196124512331640812281101564912523429788102299771242174366561585353199804193609114174703000397407182357540928968926076199380093139024196680577194348995160089056724869078593722168259067144464971228532517915108141088150203584486304543930204589611807984182380114779059407434628967169217609079602365848098989357354485009631428894623027138816880214918933705300395097661872038804236333172254162765855682260288611213568958878064671693476961245320249594784946037471283319962456983042338267920016373883027432494174096541976837264323718559337773034454346787491175367380979456395514915340795985287700613832513706398513907914386798065047605941294057104118773363689155020847531889316984174740664961665758835440308895814311442634777468000705382641524892175867472196765973297066997543701852982902907158651484460397734077390806889702355980952575517763091958355036016165176862628015335332741974224003732318492801953570358584783652851422660570058735860575889410774107918039078859311296815041056950752834625223484381962918733198740019036459800920166470727059214155296874555230678313133691742983236389893972187952994724255976470239462180065213916521533042086499345540810554081188851022626597298978374729798605816673241739952475626034711042636833119398590485154138737362167717694691350239694165336487085843933456661888018512399737760947580297048259368052412040178751371029329676074730056720158306903797005371825964394840322402652990752516548880153076222894234176134261557304821419737340422486099302957870094551828293416373109798071384849378510600708841576059067154803866307216329493015343089805443318416177635147477853946129281830185793894965731695753899229219202675725267403581396371545993354180110993619321632932241455365547677193516453188766038924211680588533219201997338672273646780503340182088609260094297123681465625443824510335794693578866609477858164740895592205570374323560544189386704396827469072524219038135170413012257072408604544776889525215180180884463934992134918936809379965425634868318098876410453729437689603321256458013553700093291045552624312872997669399768665116884022550752142405265650981139031854477406569151870131108728605830025676806786459179454341919000270055151776943094789470991575328873945939817904317274190820430555562070024757452227310620334784433172248365908669038356625524829781699087693255290716487697203414520675478707005218927282060695135615620001290953561313042021422115183135835031900765309055367068144727961783813436403503671196554462267647667301651489756846421921260457669494416920800412064128047714000768271186226532748059606054653075065893056664696122776520357447355622135815076836957641560855406130957504587082725340259423616728188441062018254546831213991456867813834237233704083908983516047692896467463767823078188490865025188386110814988005232330992564530753740016856874407420678456729458111279525539220533374153581030527452915296501922347577469251917805096679289430635909969917430832713633280423710264919685706330147109623999287704941245060116347254064531380308326714079611233495756130714467061208010790583554404682840408622766602611432136694934056911468048716639900415823642853763667694007867344047320485852071832001800032806567451498536383881154839717295518634918163280151153540030734981533119393744152768547373975152916486893958377713039354211260272385641835269947418979582602956020262849444486187399489634403498152897178584173170408401270078970111739927952193000487345465697762786130124734988952977642173832303666166545650278722951715091885086391018365124099183182887943080746822155893916338901049602617246271470678498888115709000701101829355228119822777511463323654538163439313987139315925121026545396730579734653797417839986666901526023667841569485187042309177237674347392843694790769513477351602273687167227143637699254034913547452584174484780308369082178408938519344568894589445736549308569058022404486287997781532428584632306440919681731264915300431052125413277571967222841264889117764526721338717315486019335300444737553220384525721245672572111051766297248538921247244887366226469992363006253024679760356290709649204036752718741347799272210449973554210551348746480835116287479424791393516115702205034730471318181653811410454734251007117571961332780289967589799402801939181507725538955090903450411232325909661854557272689251576423199404213464440300594552776687878577154477098512095641376871427728692289910830589479518148251195050801169374176132619097935546920729338717542257665465331603799337911641245014960488145787313916771244556089137853399790624700723133855996466770519094075527579894065685376383651652816931199191320451215920399830012001144600844314143147666971705662420240911400738476844388319981124932255004276785036001043126048719859788520029588186719457740333765439460995656181779951842994294413566827360577109322604498801507259396382456916840071937128597285394522273694936509784237178856326394775302033420211150763937268795328833260179908091470507630639316669152499995942524063268124786754363015582870270376462491275036234018795594421113377647546173046836366826351916159498883001365382445265208902642553992773545505130510783171626896499176161923460392429417017879765901330433628260768964721869387601688573112705955237000253171935928479336651422543927358163343735630093165547324329400475283231786541517469063198275261609403263190140073049210195374545267646129121918723646049448134488281657922302345285214686017181239362147462643280476739337316296250423975492558989917781755226383580582198130531658907319611867314392815407833043179323014740886901868844562401235207283054591954101136464508724365480312757137394287434897249027231019750130339894349172322752371947561074905122464067228787099624622314351663816852613614007328019966139789935115762097401728842125372224782857196148596703212176732819950914788816801338591975313241863952243550122372781906910773289732064209428488807876511976805522592470972657296848519784303859125030486966361917957296914917793119056842014544188213845149460779777500218922554527908395331023688966879293927074509267312812710486466886503664515274163607951625393472669048560709877848874823981525793802701412979989211204170311806417363440077669025238126397418293006646500307705037212343101309921605988162702286643477987406749811611263775554799168850640237040554306918814103893066326154846270386039309714982485531845935689410095446408320033624378337501207026691439123512528597877252475409082208036761200489772627168834872640882616814620635437260692763774986625756677140748872429824230035198252132806998085072096351425107594242206920956525503861766080704453415981786098147612872681120863194696787861068049577062912092866633177026783625980769333576404197475648007542633325693608278520842321746552339483076066235071138854733251419388807154364330828019320317963716605497615661494844308416959153197448790868287238830912422897819007387315434908116028671915838756514186942741308399736960756383479089762210578214792509188961256156967053543171847692447609633007866293195523893858613684847733043918989755667575300657561896105248804206823122905251390565220219033411641848203336646609146600974636950939891484409397855669481624873741131738129639042392146068550504854682226208123863063233252985160628589024934916033089675903221436416860257056832138417844058543784583153714219413018408925085425706825511442696898227922038153004247479510063820063581983609263095420068058260534196441233115606483746536118974132310338510794373954233828392379414591536806395475872062052948327255736632052508113521041658827980732181621178962051755658426542121208058126544389356941729467278969536659457094701964362566717505814041053036527025265600453174817264414683647679517112668374929628577153354752269370424764734435004667146602924365140675522015400793442217581980676001584836386415843505902879355598936945998694273646055000884900441110157105371844211725741081241832199192050111989398469549553798594871548780859736538618061059846490864289647664700749093504398021406144350571343347867492299750284157683040140503392399672290651087425179605766978410336124867582697470250305913123887602321023826923288077332136436329333389025086813873145117073860559957988059345002304724137470409553563935989593230407804767779337419458589360380377153976121526367429103530613236529788965568240823549850745550572861960523967193844310218275776300997308273782511778868638437008787211256668465697869692833496375730679185005007130101335683802858405551049440491894208284047769118298409181677108700259859367844809862269580986551441304238362766104446518529274913315816379862291450948632995483968118437943412070304491346295153694392098629992751482820608095456231167888479726547266150273931130765580395585078069350200133287959670327313992902742304642938033730106065670334350595465307994952907089686662563044413368129136854597498652483600037772295791066082562284450801157818406927952849465707310476707919781694709898099733774095357437857090160078301419728136543836493410639834827717449194615354062600536501630167474829363668941377792395694621584481034678003981508914008120030182505799210866564667300464524483239332946367222836402770380672389333753345603466154875683355451780593329081723788664833133285319621526948879409120766659411507795141005724473114896445923516297656083903030532702818772390895968325406205916338358518612360524250641510339465169042391064035910173504937953837631025326696037969073691955849975801277381125551708632700651569590791179884422150595849234705028122066740075007568850796093207001121449427710588691466841443270219949869706446849211480883018479601149066064515783098039372057821360175064388672926113391048657073711065488055855849596913314848080017327630527787396655796804682521322671173134761014798341659904421663160072051536484405829529836593963825385448888279259817834485015936995758445631159761730875153684409384172680465211030486781322268154877687256564534366505951030144602122939089923435201244716259604566781073475250050700952701546153084784963381136049239436927646771785276880933620715678800187506769567460919375425164336192926069538687604752082916245089678359505471997557714398577257557399996278831030280484073392202659996056661931678421563706163414969323243999533092750450305702214213890385545982487855925483980601538053003193229602255788186792447854519589937877949631393683130540463101234010017136899141556882126394930313196754799769909562836998510688190800162828827168806318790928701293092311622700116445187503417513493210899333242399243359947378351495291213674042250572966430493739321092297212105615600476374068570797669633511699388181209583640222304155841853308002322722792259514809531333414170973314885300889237817229345853861581886884468497545974045852822001497254137882056201600597860393495538551855317710088355122313867571128552458083334688429690307789432045764678012228437021572083582580061684086102186110075048226426773790498197693510537000344805126050710560638520229722600265143495270040718566613376299343040530947193126019234107387220985203126638511392151552696425482603141132163595372040905435477869966647651023432220775515171211867846851572712707338186121915724413782930528635953106594318929990695323977649687003455096239983812132864005137229368592575284371916969900295777249250625846494861064924806345441511460387330281197721119238287227301574868773666020293148407216247172402085868934013478325132145449568237802478688799464551899244819944932510686912917445635873735250150125636154362730919531097012284316094989468212925516762266339145024256668351027554731381372642826611793238245697391307267719581696320186334839868198921443256939486112276869116335882143898427761522073481132842344311222760935047972428198364703823710834196069901341412712401615571133168546870519183656967718451299748265580062012045439385950217579086327593911411870207724843633129891603931508070523060982536616308553194449425476740785667191834960897614435299734771611757149503457850680520829640335025146039948233831653682537114467220081234676344773639393871756105991158877492932587371024794881322184549762278790819985959942232561509224459948914808412150920759178605477068983752324160529572140101340611585526412477112243061027007011510896086625227624393573520194322512040448761918439721239271971545478654790159307547583833047188439405779504186750911337078498060532914835528387781155221548283977324685222313062630994108376107911800367318597716951069179896125019277957339140517061039272809351612361633221774641779306928364786357086157618743895580158045416536188539477995158794845217674944090602270751565574452869704659415925035326295941482964870038654205526161993171777221847320090509009239767445889868925033773679458567838519887286159166078202004256038077026307496548170713677225046439238294968266910877296054230183978797371801358800168288319575978759360767464592844639781957595961162734398153356292300152332488675101748411046860216932546557798266275736947807300615909929899555749648984513781633171533690033700304155894377034948780509143264101720946679530286642504796861442267934869048573186110158774380739832016564216806013851260712087054968827292960825831426597683611653837805534157144246503598323819154107346275299549373884276182490436493995073109805293347382780378956727913827829302653352937096298689071985376188224072254565194239335709682650126609489952250196752068429944683259710948756088552307779581426398815501853670529315984611995716620279505888355639609971853731699810340902268064164761591589471827517197559356004278405201403696375053211660941960944911900804970741905922779688553672849285973292313580763127454973031376550225332154217871580538520897898190455939721394726678316365050649847718253732597678987744935909964388024137572476512618493960413777987770689537925264708733913797626753118975579825713321282035981187543602495183196802902470940017016676031484714514270393017885619592818536214233663125446564668676433146227802044243584118275742333475816105099975320745314035261231610458915053566745207628458637411511988593145217619104217090558435702047046083413789298024150232408122063066078316976492262921974082804813965741448266288616193051002544832049226400775248943968109161133767261657543602237876971374180630478960107217394587200875096206483171820218567498866966058967822789477382328762870125150845654787066426364398901531051182206614431203083177446875363611695646134857565033768416912344547334604503907918147431704949836058867099256006383731252844115141694657778726563603987869754729688219699454116286951026930063465153072922427338420213041201445694104742409290670825818653043315175854615294417033696483563328196392464683236338390454840875624926956476174740974063004789303980164604864161895213854437963529360568884588155219797561517850949779101280567969183424910046176952020623330161665099713345968705232525254994527786334612650269379404160349746404442862399416278743531091556462538977816461323982673521703244616884392554074020842746532484541479710656184149649372177229160120356514263213849646592438840790755069656668110676294767694046915458337188937081907284450940459317071532817659771937044135613194883796124978244514673234608791071278083556451049464148614572462936729400934679548951281483353970726791875757904480314584006005002963067481024074748419410029320651729004280262211096486264938460354433399632140193158455267239952611444516383261366628523817186538052043216733481885372654780594494135219927714552165794132994080678127049083097588829538244967517584058427832679392731654581508927544178071873352702611895283842738953728900277873720576263620092910532364808848340861687896742237642857741981471363043626266577906736168092057998933490878987658164135354964940775334723413117911899163586310733767751369355518838326454587400663360279449253751304477104162888952174747492678396485880274329015945552076047397976847088807239953207200330796350094755232060755885593613998417781518041737233394169220534224021592454782788910123545625678329693970035959060204692342244707860557763789818767517820980895203189646473907941157199053885078865821329920742000967722240544010998342890903952698848383885776137952430126973708206306614943912600395327863772723342407960785118795674177905691715571064751573654936535938446237537306924701340960748049537588469456627154856936472597951339935040329520691388385270945123972055976330459653815957857838293788931912596171703621844443674799232283946088586140109851540346957279030319003189366880136317353180993057331044850793727079383481349435577930536176052690115688203741912511595962401285785043914784032653465310673726056548705555732624263869938025666479995151307623178580634403175646379418836221994585402919775907529230587403701426311145574271224952409603238934752368489233293124762130341250607365586484761295756109747741792522478794286908310271580496864877419304589898619344498792238062443722781570023100186519902219589253220377597009043066337830527171835258181863853435485051980507167296572578926521448016883524421247063760671237374391160973551526417341583547612882270316518637622976361854805564529770470583406927747280047104028490996218696552120231426848366397148403536673568189671592140061291322158612906188033181395716851214540031837171301878904766978767366084781105611856318122845128850908486073095747456019069214710001065486130825628096089298311564444370577308214400471281480074735851118301579103790676684997344817408293372550783538682775928275934810628739450173170571141059512740970678951226510725647683529695774288488580596761996627308066978802412076180476865529356893266080883200295817568900219105759026431262144209416438629129662874863529229069150587940859119332050798108062806867735974318935450874170171657568398884387651311703124661259081279905027865359112963851373235459578225519388962332824879902628380762614512920100193818059486224655627780604892458050624958590740960944049778611225360531699804659454845470496124814207121573941823145061129277945097388309118727547183328350745934419693473457743212681327821525044967831267545974418453871674171468835239009678378678420595755074242544782474377623777604049591578973477136491376461127900846913383138417098605806647295977638668870759393073898968587889669100511763580620934703050083855626442368108329095395332971684164454829584140494490079359150081715043458510039314985423145257607850634658733395646402840393282196677789078346364558068430293887030949612673717335957164024367624938604957302581272921402024577109469296492787869957365751173752047498739411687815625241308922752850668442211879389553642964231751473235760243170728491246296675375128184407231400052835501272979217517252873714283399045739100756777629252730185147128438533371189173592854025813178486086852120282669438203632171289731154512017338829295384012423304623643543860159098219859070833998381502120836933488593152634042285269494354142002498011604137832363938582382014189212231793842352087519994075531908813265084748513774791316235134291284148390130044395820653933314369507756318649494719843684154108932646185237390238817288609926276286221194226255287560734377818428959317014416575359686424020616594679304175857443166619740281390730119297535845716886475992777587255079762795192981650535498112576887549573059517747317124467509131703769067067615343322929037808325745611478785713269206448231330264993890274120033047124750713563357603949675652675370559804336106731136367668586821487305002097364741739682164877984912604057250538148002750818150603826741690531557692613809696789869477821089574167014488548543020528609880557796486571146925081433466457800760363991989273663109674542583225607788603916383254499633942943183521452888765352690396917237931367959645199384290557144881158901281112890652206539709602759225733209290166759182900285084334910596439364267231325899896948706446021377592848610796371535799077994425128277237569730539344811169294965783587528527905302155276432919890040378217239777365329206164725332605268589738466013442257925021673361924921878189555983475074244151412100311222684630649371429354729003364465996955613065299704485120552460210908056976076998352450888058401090959712531750412674203807340345316370892685722166605445937814440773016879111444569341080833451583787498717342582113136439314316206522512675877933805460380066350364940213822318375372992086368722115624941771726206295339175357870395756153340308167620606678854997351530254397186394641670734891480181550713306934958059420581523539789627988724019026406664851540218166259451510545083427782894001768766677671805609587542303583269971423162396355434625037313470954378876753175275625095791485314574598058771289464965679045315068473369690643817787750957950350638101892911965385909167763525852839654504968764947272833018090341262226627644278918727801798063146176668334926966722546684085146269648606260348188789080714891326564305877570386252319906532324327819744415290954508862028170545400364275168620699344110777151126392741148293362517640387194860624734205541087813390588052375859106926849456987065491807162347879332998476213696700251957020880664728938033362172315205887867613218271742320783674959123063496585450146549853897308023202553658992320696986656039572735612227724139790609537748825974748185120274423055965443056289463499276606267321842556847219534833643527758852811162490109500223417921665499158035533724876995593401391475661228435117258378640013539602045764027982329981755758857076250489106709824040033435636061319062401499951186649558132242881662906777307483583136725151003945307438853554362900877463792573990158994581805593552278758715355181225842644424500389483892245543650946761719628241069414011807894472014943791625270300393992635445658603489839959724076609057677377384724308803635911436982412348972859111010232911851112747417746618110384186313523907084869680333368167413283561956571521577531763648216839886741514251536054134367628712481032210251758753868093114761835689378724008633070134776071114278683318206602103473197616667733592037163655890677668570484715814720094912475664436614995156837146069293218748797458932913154970228735106528310189503388430210379437104923502291579439414132246610830227509813861016663618538401721689682477971954553279947401842423102738264161689226120982246789625329224060702498375272732800193693876992246123247544885604645471721310604131500699104676614757695507937238349352620191080368900205287166948321894439221553656235212283373372893599184257408177995808127577720063075978314108703955348341418236530807891940723783507549057083046943172861697950914073498769706846096527510896388226699320871387282483085093260054346694141236895724380479247139795817825490791619477190882608389404693562828218414997527193704331355996370972216068018842931361938631657794554636652176188122522545386321155710728363816558196041257753820932107671670097549499782100484064534920705229867653564702384403816127491111296387669912994610610525917276443279842311655605184960109481415658833926580088400348192371854213489088883981629444392011799518861384945646493315440711385384986285732232978594968246006536704148005231380761530559336900155639512876124295895257353344629336933736265321405775301674534484582013089326663845984441624898080669497357758930907515707395879929748772511048073164676659555828841070234909978137377041419805127543452310986210554232133565657156302837446746763192533641543044976921482088438602012874806784170828622379824218496039249378717453225567553809240976712878514126250008751961187514165763787719580728078910107298389939995287662691868833228386999768847488432785736395916791522615374547718277548503438723684377611028305006742116131170272416250485641829442295056851484242229494953263858538680612960586169354943774394781829048367477975011158777716522036196729644230416808478056289425063572467940524474703439499544571433378975053336814370179829346280043616379205912107269665320820881861037525756091602125840337321973896207610296621587529827721880188032035385215051580608053027833498393935795743868415579036908183095381704123373630443267057600403243305227550456575358552435853176472104398910815085802971875617082276123458043875792787198500255203196408268149807390442074462722150607092121367364093452312160917875395247568924168505070383793830472177133888862651253155230963504883885514328239834783115969849537776166757104004891793176874074174476915250682349071965643040336989004602092253180849659118509829628443913177747057681648982954165580001531686391006787469692293211049251570824753845858664756471618477986282021902598909051827220587565030846732099010499082208545449960454945973574740883890560132091039905361390642868812755460684204603327839116691754828807990327473929037838563500345429514181199226668827535919255645713468764733265757532067888911579852474185368504743411525089417261960661475055516205213067690186997752771416072144205672757250877520401487445902381848405251086097835582512863718116366983168918038823210466322025583435946037959921763441924672371661152340577066713328884386605006383424225571952167612718004097932973146968000025450988064572360893686885348580415717409603944306686587103697667700627331274901812617582695699486012436487080317282887132089897233631093526068543251277244728271659826919990857735695560738766081011435931145759742920233927580820080805944393757782662058643400176562653620645379154969994136736773853942348425289763756026557404950901172846491313054980639570009248909748692073689955759509821404760469514865169932662025710302106232059563871910972563315222376695643827166553580194832198153956931003563275461586021056147435559427103347853501461950581806342655458825198544019347138100163743602430322134266029464625637534588638303313860647633005702434379569318115626618290040780591232007699392701071339030556226616337432276687513674744762069102401541403023612955980851714343206532703770758940754515358423396108046566648787464926727594268228300200434944246370105609551809959858023834592052648367670785560112841756765228009791056747055967948520185376855966626521620071131190664393192769500258768971664829124563940055709563538872664003138305314973596841631276831621857250993924208194260499114664330226228069470405770891990246091351814792157139604913572650551937414494917218977631053245815953305249189229061319458142714000692513409184473496930176675518219109995685670009436946247464809373403878011030122323613616237328263040656254105252664683998223132200003575609532488935875313653111242844349897194477871050420935468991624645026610271352095701301372792951576440907270446872324756214467275013670899919477255683581038749156341291136068564528588466490587819009088840670270141890635327328960329319484186160779262743802306194599865413749574042014276639705560215428021421485114636602672312144039446624909350523783217573900342462657291614324354995670521017330011069266697500028770883714815648697149633185643215550842688837951748389414211109904296628545189545188946530888798000949169571156067144797929492898834394972535296375780186810779788885556541285535582696200696927294921681082274488618957911829709315648017025142727959504472315032798563177778124604535630051078419752821184991338891236393415469202606531564517167793705785440826906026921386134579785584424895481284898086266785740249024198811402542406821443479783530905657963732248865160495122027939640598569331801920263985846078032528231982678557661509502935324198945320786191598650026995742810922279068123689186228425981931975001593510896732051209763632926424241123604920468985134019125528287041113477370407846072204974912429037814076721335538425082185548536695528158185438685477451376678630440230664758584859230738626433355554294312585941103509413534896767493646924115989650281681138867430127708302827611616120952150722226219379529401805112218026881046925665172854241252809408652722732819481182146494449418591871322467502115490614449294864596318577924940592608562617034481017282174015971186264004698095461243312817412262551190621272495592847576830245563492075369368722365728734309424587952493125554739451758240976468135726888798567233382503822901759095014170438002660888876939427598648046833023110993027991202991174081221889329537748985245697052867769018300182827240275741465247200706557426310098131971242422122162012745821105452603703549870506548987730611358066872577067403584567637547241122420983781891032603627627108318660878687553070274956501883799425535617744265121713230605322696935859244099265123960754002387149723847141776901917079411180433732803123971557581067311464163423568849912887678500603060191824610436260618836080218096926261757285968088332694126783574910393325386482293723194537701191135436477471648873105836564233838376126923510844317419348421121246227793790790152802786947649305608357936725702941291382490425633268816891279254151528733237063685151971558721501774649874701877420691381230901373359478014461396314293070910571286746319771476290188788358770465795783474278099493795110616115380344994748718239999169085030370452965809916775246399536714995822806166146322115271566317536233619727313760553647025708157423930074531269164981155367040743064583080017686446807205181543012870042314665368977014641286762643275941331889370303492666730154260193542158202885387730759378243660424226307648148420476198846916927853098573367529786025951224972102879890503910350228190006491973212407494354454569028671001107623155584395163331721995174153962424480576887011513474814239609317355240150243653109056057977974875632700046532591293877784185398854940311764834156518210372035114452557788644404175368074973239697895423473237012246746066389477726985541304102087834931258268429225813622344735414749564421449751197355288818337072258205104323477532006876054817197179538823686975821536966858565209474101753247456029251004760461676418416269114836051913295042302350125260821793567105418141651016309188163611224135558956544043562345516630083673411440519934316147372073099400037481374320535808095947094338710877052024249850004576988804276816507892340949725484927856508527761174114703314942464344127364364671889076050055130305379567199477695018859351690476367808289041851890136256388104589935017409162563989253835792003229212289025670929895474820461926110153633801689261585364023007533170407611627736365010586058167535421520899532059227667032392598866173335694052419553241395884132418282637574578982266772884254384447433738190842012289133226011081834643989543667407260494604299775450969657276384637620184074541196597726700101654610811844912214059737950298101521629389264877277865162729648608525609108669832463720214412437230446401888095917053902768341556977532201663749285268155746162084655946803899563699506864271415097768608191070495137999525375863554551858117348438431310174736884137061139892173625503646268009728684592166552168164232228786070597390904036657774297057169763622273571629085881846195930496908721639023665831283457171452838233824255620074628061107800911344153881279873055575738204448324892194703378501275711201385782254658421496930138604433233496735353938750516053805157949424219402420054401868193188688361219597549669623887842675022466756687415068474058815279775474034378821485221699123258372401202940524048048729010643442606334188591506475423619247538015232752646375597235530715395805277009565284086440299294112556994592820838428514038051523465870411120975348906452416401044417331775481408668719833376061058219338352152644212785091454935352726005660697635061756744668281065070496883476854435182219801607544557000281758202912202263332482037104417684031209694760261434250037048424464002229531607945265116579162982301995473579094138085761547250452852985157453598749628655620074709084502838109876528981237806897874529220908515901904571793539467743735015597474304560663910586729713933618784317887940347722400096266320016418648454534026951669665393136870730134397976646694994984673504895444172285176472187299170259943221775832171627154093657303065536713153645363666221610660131659900664715621945519164057345077090260888932664377874311123742876578274371543611746706211449612600747468598938018573768262688647552085999745888847222983750896172215388052754013902404624947081337599571614595626313747777720222531127560191858551534719350731988059098951315020582287793278504176042099300204609460071359478091546310124919337638966754367694510112641535915296127641966864628795995448206392995831991427203749065587633978066632998373240751348188357092345516293248928895205915266445059282909890166312155702661796078575481398020175633596726727211318741349287014109987860297761773463435771822738342277842739779270704235412186465063211093940299768629313131307395760430815636377870953978180616251636941097630210110254066040267995715607164929212437156112894820964201341383147201824059242061638194443002377838677998343966890410366961733071622255839817690770742512019739057864738855492001422787126382925407202389119729786229232528801795643573757327184549441911240591354794174821158403749911894300153309214833494032538852986121084220287107518412381765700037933078452378571244052381473411433942565093774916172939973649737264496890799714123937950873308933930640923772867908876057935795153723594523400016780424547133181474388946048327397504788412713437478953035968224239907703807529122175838959450415949145555685424353537798637773145759272456147371201687338090064525095297032759970117708403256479268619710664277622625839446643897814899416262018019289412242958134768312034600759232724623933704183234778745511469207418976191482758071448803608481659594167934323697556844594062191103649721486181260380458639301257474392616231026504411974748565172930663023562763925729310856099058663871816470627230953727590253629005398116127968283722736542691125351674667753989505073167919508635623851969997781119749806038102038243557348869044611859671222130066980095106565114476594489858854462844841404251093048640651133942492779300454893621515473081033135850756779341956871483937206868036140299933936267137555783773074202911890736848783404895733201175474042439432399609606769939848715411784643618147654229221139914810685780826029868193275903967706831783084528643521290815237029149356666613139376514489410541591616823888861958739999622860482954360271827442509712693574822590651979344545651232893682442145474022006906667984791888155216322420904317409572922471055102417240418812900731478676776814949156918998649875977163427581232381620795564546116229405876806013364965500266071643242392383547719449341203548352523392157410513534218602484051421900334841314362833370625429610092040215158380270465182821473990075664023908325591485534174546763405779386866867054441003447534863978589734177190179976060910645585413745151241257094250308791456777407556407765391076601597788173165365916354464318444081093569099584653630302943491229899956418894790900459457241284700828424723287930288105579531582521038591581885866931711633692103455738091061804565803196927487490390558153536175505926870406394279889160748050998454012613218026151655880100843401867030191763682840712875980274325506491404751856021765164446473255924341414489708915162782831787967538911191869164369679939508947646092521082802818858683623339068262192643841712100191684017983909199712530221030214986895469864414050961781697056655430627594999743555310755025268335271038097079581663442161424928000008936899033855136183626762797740492951992947422034420843061675490652322261705637446696784405276249883109897454302123382348757606142743906871869578435042967341284027778053707719195442969322796312134073443866542217732406809164947875178270501011588021203720659244506976442396652658843868299926968063593476946090353233154403127773298244017167885614679069968091737089008721722727385264790956107934783456740123108353103439497843134354900996439109293026319676891892309825281587079444306828288739716858471264480049370473491821350546309589983145344746779515755262658058742260942617567540368920880156569519858647617798372437653132714151398006473318353536936089594154855634452224660502967484939359044576263558196433300883387568437549059029590922734626633278068618045236283757409971710329042715866818157467202761423895530509317939594405520474030942380241591538900616508759699799546739416027150557209672349691873000041642296284273356775957825666511189403982690566635628993764765923333934550919843393794941917604985219409247193328305651003368778358649262089582776889483208557174943811068410034904491458515789002441984232325053740156709075061195624956402385008081424770851792351522463004071246695361174103195042420696103205764894266404493443242749205810961371227039807316525196705753030194599017380694287939803131679720631635274755599398021530210582730180908214096600768068157316779703749098024993778507949723027894850371694184530289377357204066312130014978805123736716188201767257752924708832780780761967625294253137792957454303359169201161555637744923046576239003986885848529674112307664259439252655352799378656752676407872962725320431043947820074694316799712540478125338430874443307793807542974737239141298817798998206001171065844015608676991721162265825207026044663910285863648542298406640397069926046773692550477384912364962105417925042547870523828497445494953284349489446859875496878964690957685967559269973161692114854198586967888691618703767692969069984725459163225816549820502826850767827867432363675670794009424405710754421796865492253936010739655809469695128941009092786866555478135161762852339696417552069212520137456974809861513577320718325506937889473332056667935786105436314784719027811825500933982866659509206761255160659751902148714020211596151302464385332169639010307168378642405873916356966572913769730441562700372424651635085967827132143261842208599648719186112149269145354280107201153314311007350470885349733206599257763688021364912730424357426192508564786253633713476274133181337568170031915281107772697303249969757081309873872336163779360341166440531241070908773610097863185449810769089593054907524162083732331195879067463932261729435158392539747321919762875579112998565414867440023304580420346476967748032708966604561372552186299194696002036659066304626318482568089282717357827141491793433083233673633610455459519666298835698338993624643767740800265447113242917698161370524737595711145358102710214146551288810390162686270081531872546651955768121602975278879400609198968166605761615646034728855316033530687261497474124989270894959830029823967758659922594889096472829926876666332265562834774567206807582730748131038474054437360968411756498063872423673287177096229291021440369489899724009853482087280589000460428707658130708399013674440589828747928193380632999103207418077692352085767325212845511609868420763376403989127005783610455072196955624100408566788106103243376398056328790971177904798405074747403872027460214232175292190505792799537658858024407130355400742219489512886075349607904422107483250200568288414507274380557635525403510190554494119399829527723761298629194723899462240392107446199970055034824973999668156283486611162925959994476380675689540086126175098237739152285671821416053509713979917112172307278768281161318377000918255823511030267366705896836323273567239147946279786297097913853034918399249885205133220334799227306387070557983660733556109287294453424674730350872707313190880501553808767979549207647975639801151003008881073544918184294307289362010150734908192303815256632904458444543737829758688066627376624019545187995083874174985506226279509892315156038214487317072188144880127885592087760236999498794091370582342346651363937822963265204344361305785818402698303516464495732367405600843048741697818397268941577903311229838193171096907847048228888383407039905968469127233837516706620896750988227827183232420104705850475335386473446472487435651295618155629861223139411623790415453743717914156125684550529045983315593521819003651366529966133105260225895389533813122603959668579257732101685373332235680659251521188053099297606343733936849267818822119070969469474409196040947883424598730988132310077155439850832236672007020272880797541494869769833630053835620893023202073737849458174779507673865942784783643225649882977159785726536364040338797383537124310140832969288784693214424410724873565134386637365971734489214922113607218494388333268228344462895800460840848820892849128400390897421651131418703649499242545211004842316608642044556778582102412585625504617486934860873840104351687199958038516439581803065050895451884302787051755460034213690509875273638116295470535959647644033529809872137073767244468837533301064345289604255822630453201142518115181599863735993307833796774060317976920209005371836551705194874463423669096259387470624770073221186226437966221942378076295578442785056949938524703919612897810650262632769251796585708074942200505971500802230868206018352275318140880524370052084893625234699814551085454355568068506851566440063751830657394958564597005171287391728693101784299579842393374411026213051226440455370344897682745830067072579667290347564184514813160094920810603917419160214150707692321245131032978699754263917201428160448981226581228155848903771999109227599334091957452987402985969939123222829074815177165552055209061184213648560640586774861067218601200372267384524690065208553724386416725358644816321030249458048223109920378220140579683378789611079727042869838399995784350786994632956778347114119983421925855549079442913250382631346978278882805022380534224240290345054953031493174420005910979613172240697171205922867738584953865147978893601799081760039891531525085007748278401264381226994908440861418058046879053052843558427202154148440380510476072766404294909824894922336449601539880424112843982700291539203091480981667303657090314892398139178019285610130194621583578937351789103205498570480458446290300345396219387694408870118197945140885379455324178821756100581911855488086318862094954817649905073073728978906550698164947080802875246117111554864417979165032517660158184612971809700858158616571946824956596351695494289257716881711917841669571534691605190292355057389465930352546031044403243929250047812186437272741627492688440438840510135071615110211499035693519601688321513461912186846550122166067455494055071820087966319948909500584928384538786464328079586916327505370005938344867732434711637008054173262944830199837667278466920089248823726642594489755007234323500669625721239855895343313957860238881658216442783239227728129932205081052728347649698296799309074040719486333764437824017293169753544052467546823708024950838555324154410194804793376308789816202869703263275694889999525255944628828852237172399044459834897397207449760844718470075667986167813303184362665920477375440510415123962612997177638464405626256628735449502176078008699992188385555690118228993885407604645098282439749717009538346195449294587142340340439133521754513206825031378502982974887016698231968237714729019087252933443586457157313974743671534292220336924819946109698864241943098483965285507418189460972305948564779002517576454549053598661614551527276698806672823252740730577825109182474565777803001987824805583414277710088389091542987946170777469848300828763976248888070086726376531392156826467518152034474887028937904928509684077040073032664815384737703775145991923929373727100443535106972893462795053043425463900161661127864548213222506170056526163903962816930290335388988037567132164944252756500300709413139842252512582891883141967283378844265735552092221528734378627661612106835988282203210393073408484856057018427233261037805266474817152867057241030239373378320875410095130270347099788199079206047276939380682722237254562943198498636521246688595194298508402892310173303596785826720196451882194287830616707981690512155788019159711960328662568835338286096800360545317424352960015960511918008832304452541892587585339677320755941609758367495195233364148433009279587101338768646425524014290621247880427909139018068933042696569117086407478070969420353141485880506989930301481691351154836585263852975261997729627755901294831136293294809923085458077503317977314895308064015892198921598194020605043832417157395219551693898306559395229509109125230354588509314689975398988874519567553384936141253752416287121990338980784379982051896856856323793708382097147252581172367880980010902820329821062955487375271424437224668499566992745146494136720337266052370993128024412269093272673051841277503521709055757466523590625957459263967210314296978736034710579452246262835052013056187333554068351757006311032179944465786232285917493535206518609493742031504148462596150136725724555687650904407851094360175773631155753407947724684072346059100562073264100675463487747673093357184213402137133675918844433550927342377632088720863299135218023069991673880207724335050160352848222806869546534982164666729328379136101663526029824852858785230314500661939615763625510794565746186821156657364420426140974266331708015443903600894722971689743554119256054236069861524690423482130290063073363964982298842088904245369530183816587089003651735521143438400977993424734851141852135598343179290519152099074496746746316669422900891247113679011132973181792876297941966265383313667189591806617895792724967304136141003111849292987484633867276478278349298055259788461738265971282121962088996263835652723267568059120287853793320194332756129208682657222496464364286917514015104144494449739292805525279483201749891272824531370175596345288566975270992267871618448388629709330974542780027312754901760521951249710596976367727739426849972680583616361739915837879448165676581741516338213339523639845523317172815337906648572527122093218611297024203174560155512682751294356341408816853777951896344423477586256650456655318533552545508551542203716811173254249177844494719019669584867519276173998218785011050544073844585276919900278373600453426790966265858318216455794196736468037602667136496738678431819688052791585754955738664009658781723036603015888543548076210205282693133180082100521147939820901471053007941385084767746515312730694988072465716551877080236407962505028756824117840426148318584449740434779234910091111285250403831553481570537911736970620681397211445416144087592770395866087914768679851415727522308211552484993290190380764124316422477443160101049160299768328145686820504821542965153183211636839619456456657489444446564233141241845812696917710879313311722699396544719571808840529103101615711501045402574001595958775793447414321590408369501424554669246984693446646276083841900847946065582343410607262692177207055010713284874308977686186875504811205185910240286218092240326806286508935036405220798707473734257209691958588201749332316456064412311728075782032823389517625230143169398174323198542205772440175436625923808361885191848255946401196504071263075398555460670277742966289714837670110874173424251903595008092621511847752702043209230468682387634978965765381595127867289908231425919909625436742231024840115233209711584328369721940618542756066072627619546579854406462741809657188544573755675905433855176911700185760669763852495163622916358656210106244540347071250228907505644884198759387243270559289820800641079394560360559383552080051135338119997819301789756550806056384489798608374207309510810701393967162103720929854023410228642073451452842621331460116929621425303964544059854931592126399704630034204575655314237206582734995631604476005455903760330863593795349557949951455945488478533142095266514853551728472073879333100148732179527157450627320292585073315905208825776354875353863883259871681119925288775372005743066039688209377199513111362491515986888674147895303130791910438488022332006640733271695282434157448196619596416975730189729433576661947394999081403345920194321636855285487135340997687180625153080227488212217078087842081706837869282600780408627827177063239236898723603843895197727042473115677614391662041152025312065053900930819608174275801376632248349050486722173531203880017966249735709929444824911119673759112518272256420439536661168377521735453812745173075061668798109947303149667264810886163333703089633995473678991374597347225202540721159543865868747790420443501689091176591609250270980260218632202402022447418947768534489122850142316246076762181437282893570975801420228999473258042529281183832821978319299026742488232078030490915334273547104196523609278541219965397159504488883502898768835677527413438529307448751419586228693023126411947587504952171603055130586544618541695348766289512141081580971439492278185188189709416672703814319660335010731176297202290993424742393230712209312346021433674596284610675196603348248397094789854705775946765284092933658379818574974694595015798482157694704566092804943276781508439525309485135646217154008341541479004759261282048183189101733134418580435119604081682311965646629340253691073458373819938482067212473804000940717094504434003237483669719544258626247096366956562274780218058610647168734079621565883182763851612797932854967849756191404495416722110257369822824061192546329587454277033150474200926458702762934127083927296507342245006399084306873070965694199878049745991143364000361541772254242003316807662896181438125013535955279080257680460571477869522124106451162444945790577883837615810558498183340295784391855535680608828871891980287160886458109191987923626964175794926265047800101078121454621151817185636074920639347929242157587842749743667302387153695773220996092948132717906175997150165759790900013041655970666795250393136345099012779445140882090999694708417053833470046084379816966650916654897565427930413366930902604268345273576530064434669452748966318204963975509948789361325430021630040601557443275677020900140366761437408127917887581370853626118437171795109501260383877888136616389411589986439206946648962997829156109461503814075251691208310487465815754893940845706962072472711754402069999707452065373794160640613394418603871858109272319649368721458724613523962475394841084204237921253652182402200420246535451946718918494996928951239029149301530019123310543474679320813538888800738747140575393428606650771194333173027225210450209260886913905355805200342857780176244989254355198619848126055543247006811902944891152984687367755717899530978405210991033950555031586165821437834055667170317585996446159758153638356959926397683063533814132082452703654889427482123323707832687825895707150820254144996878630097351934579952564280692427025400933034015696529754982091056977688873739884151186094232231798593688331685649975975165349316771075271850202256667364220979234917886226045027977010542245213925953243393210291731432609090049967151812243145676261690408999575435160024319554589109081065157564173479510846871727957346584831419290382106305408143657088124596730414425582502720551511439294501635306332241834766313699656149139133499956613643895532618160694330507320892289958774840721189685267498069396861590529240422916548257069686743774445722436082533123094084263988464377141010967755642018193154781837769849343207893909892162788297324662008732899912728444098063264639023686537250532840738376883365177180335291024318877286987595363998337228353429449406515864060454792577634029435166761990669675371293458336290447046733863847291783587142800978345145396257182996956314749474723357533498299841575558504692718446638186479638953156426369274969730566829412690288401156549400025753563907321217756249243887841216782760424019101450188040591516434808493343118687748293960894433812577194617298014669081761107559584846114516604038398652395136240714485018181614869881922166612442282638415085447548008082248288427742977921512997476689085868698548791447690134077891425797225759979008997022442303238572653708110584624191767874364277717476535949290659288667286593454232495031372399208521309293187109810905797998398774044788584818467099813300764387529529979077728717955422324567560853897451674231313340778578510216084775114605327841568542945921118289503887310623763229556058430681978948132956937163838602409339425256047671896042584377404043386922934591063354453732979516249270526851953496031479538311431215277042692103105084908905467615352817468301431964531580148998243126063002719801215466326336592413274173708717613527883981178097040795218081546593949395524188183255032826859580958094388018655131164726159533633577017901945384584082161090977083318115433621417939665322101324286192012314662043925140651818683750367725132616827831487855019389847531334829186193141040165258205360719946001537813265054935919567426463748778602157769380229438945201688050860499229170938793618039233045479211545530319279002720839767561340888871150550292535478778400961954373550301190441942541853588561319799027064830494262327348625120542024932430446848599839602851931285506288221424764595939491582184470719138632759859847618027612383209431375910193472828221370346693542265227562255712736910840318634914335108230540206513932933467553062962435175107789496975434624828939635276379201906103281834354070230475635703745196310022586280063076467283030845732748558770491685342417894477966212305067961950324559177284231600979739944206522738964235751760182909615198765395759573544274425041370738278849119672785744341096250836668747637267010929584879360844311752297910148579914798513725366992351160873495542685154072436328685226448590843319917065867197080552669314857007579543269689386003233938149469200879674853941682153645222626371020907676407553202856847795269748448535506372236886320773785138163456479145865420675634060582052454064473089530359449138861653506752384143774404808546628815148035701844337958125120431306153555272102206816178365952335313307910560858663459264238360454789905589704907744671208226562863469964881072249525139281212976109102368109921629549759626976691628516299936906827433187220822728537373107781727134668742414997899040158516511407356644941340681008246673651580173048754129288784163818597996617213691857834318059835325585966782905656479233786131417066965500585520089516785469819692130201023067511163569791419346223503686549123635878935712902253262300430367462277081135559994045640996875020984025562279237499737082730500121592982614008348488475220888099255051392608048296145864235007862134023445034630474188708954744709479658449950367006674819128360639932080398432334012256781416847014435105205264090695611882611416263642112589293798296784311056650736627178806436770016203483332757460334308350065841804093795498982694073119022965172286977153498767857950331533020034910290042341491882528518141633420504330491903142274390843813679067278907660321670700511397471392946253875992316843516780653624969516927153702972365946184071097740420084237577381544868007754845829847620848537864931593241433249152155084083753492892244329672639595534677977863244046511548688540708659988167903098013825606726333686576516143440950990876365752293834475637884277770954942806136061335623069898856073109054024569908203983698630865513817714944182476080570664023380539213260257192013102749596707204929297250677347942581111899958387656058686107033444613969644658148903920934283901642153792182004617932527660125080262010762237870564224366838455274351078611549725382825024215078983897352855769113343665752231998626339513833852107898815764167031392563037942501773845531494840906940343648555199969237416281557352426644462499032343673683990940760722343094202209655695944738663832007635483598438941764509840728111900233828473492278668954828377395932338157338924687139023779471916510490926222276309429071637640710413021310487021805728682416374508367919060901933492555451656121413238246256174963124550427327344685931254258459105344743564603205945520369522823463140432958874660182604725636010816968898433677570807934087163150824268832554139625267367258699534739823476561987051859569576172655533093632294418684113914637591653522521818784398068728491793633208907630665036703818553497649403930481883659972527009815610225201202414526568558916282062149041413461082551082778496258426012316829986594956264329837767873870649650449152819700042446020150745580129759442701827521725986010635809595176766589560962529105784465954786398960525143094019989058943502634154094417768465312361763803706519462435546894445151725684925266886216378255396128160030095085269575890653328747127464850419415716671557054005478768811779106313370408775260425023498455780002969358130216990623840839738538256411623503948564562992879823881751025531354477069890942899502375872316595063714009514184666028892738899032137915219392016973281160734354304355491539329107863829648386549268786710255797638731605342656856553730334019610970026808280669859822321723938471732608709290732474660151329095999420304399895350861384235490176455421029937873412095481963809369492217431777377412773658543074474572870933083446447163778178788110931964323420548133098166341153265576447329664026502208023903156333527245496506014652805305405225654854680327576954318648110275296791070559127958729441608841136205522847587826000872327332627470599335116960070885486674607761234329944614310541876541454334171197113035558578284372780528992134759553216180248604769072169504481188712698037183934895157574338341043838872371579168185168846070994593528377924983706896254211858045518564792235461895543055343642531076493843489912070583468562156857560017991882911541280045228259083547806618563374414020428240078382991798727930419386667437982876749244705751019890153602003653272863138638284651199325686635605730911118123553481396842361608393367876208890375116111557564764850512257142444573130640533616491213392662198618442700802604481988399765743609791404434111100888102851039737168085182090044314002361457231448030201960496751127528480088732821287197116185948568309382182239942153965577772610900715119091385201897921324781864276025122629084509923182580974307927105965835359545278879854672468309067209045610008012033861611800581632390363114488586489895184162829403708676403652989428065319852171967332675948260660399376325384545468265867684553242362444973907068955262511934887542436274027258577589297204946150823853651197371362900752285759872546021707577067236424985699849807415932200612276592867757389911409736065569640876017545070846158102567386064525855269315557525504524675185867818428399448810082036901182954685129504993204850780895694969615987833111980271071772549425677622789835380777767662889596094324738135998711023837895797051565467735358871657582004840407379735882575322902017106727367851972835988823404014061928002981124280830705483830821919194377439457474009617284208131059512733349861008924356264427497103298380073080700913203778197476092070306930718167443729383165227093648178487944372974165649577162726868510983161459182764054253136308675454003915155708651249859074977971372903555617512560708044616994183250446189325638659556637365007488996387787701887520713839659918552391579894861832542852123854968825845101323352898327893706053497144120685887756078389108798844133493627247485705735047998004055109778298478709461862149328503112694988051864810063185233108222753357559310261408938491050469366660731931164059356845781005914772231700431402511990392044337870242481639828171091487046268672603008639567967779012621833256266803916563823124222528140326241069021364476467720310373345929443518298095342481331303458621954563637697743480180786608574584219661637474088032388961683331117610251398886919920036773914532052299052531867864197536820451152196732869483412120514002894415448052622515949307992401682590941425012228808603132223033560935493039555943766039655535424148196891525827764642047761830451046356295638135663537802382541660619619161812926148797010533421267222163758890310410757568491130929207373913371300813397063096292337007506782044758016182987830450633906100578427493605545422680790090276961778202356786006501054488625502414317194090962967428522112007550756123703382597793146919258014210027130946136436176085735319968023936667019052806464596620236517974233499526670784192154825885231094509289787647178074725622244347791446099341226114541608471465018342828398634536056157307113550767364269154463912725392066263780917842830857993620913304739785271142480413399189056075125338907843327904862418121700023828824738538795701585513771182203587038573976509398443160640059640475566224162424671504425376574447526345243807893652201793513165363739437426606152285879794974951433704623052395047886785644295754223358915731395968967381652253469334446316755530185927455401322226302840716341358945849900788319582692788134982384712175926361475555370523353574985450617285903375106847142455149862642266456643887066179092306325054405423492239476742041917088082842384367155133645433026080930661248655879247081704378956926914904504692080914560529816627200312009441014170243860372090773525806523201602640916783916245066784806802410719519345711555176178063427061303563954490051210565811599808754584414028280595928218548124931940992675346432155223120304712758326496310240049008557656738584130515210540283496207616586086354602170080827182294526030653681109326253944983561200119248229950969953756841595453616267696231102203535208257327079586404708536662843547281086417283280145745490587462400624225029333631109870955835496545671560169362557394665778579717106307606507478467190926542464411614072373189317306419388385486507961194169086494882028265944046889433787539605747531121754681938235625408037944042548625485655459073395469581081026275922762924820982161691959586356625218846040123966647267521064766956743603056860880947140586569702266838958279000796554792941227146504510974285741147188372136113119128708632255461943219111967044675513539885982509176366131512504958501566952711947331487321974962753980571749522307163475720961119885284394772140821537929620487105479309386846067466073145041635937475281445630489678502866675570252907946780433845053411006475731713879755923548042024451303000411008930186601647773733415177736995815388287476270966495621952312711307256687942141257261046193340716510888409274509118540519014433204454671035987565922579911685325843535453304871108414603769063875209186759505771770919204005247713488175614193366170278834912750024191043429822601971957563308443095093220546892451090451196698626737113293817212341837368093664696808064984702288306632019024966159131285100772704649264840381022472839193122205549444797832736200180900924647927870993892883102167661888705525312118078155057814125429529465625490176175984423555421662088115672271869920472355854429453445783586187160451423467987446321260245356080544829915990599544965155941880285795749545785243220665857647214346453451701313291680799308663436674341387014295054754282921871416306755998408914906983019957223127109975999523897792720039804856721983065595466646290923019713489111756772057034390283684269773286517187900319152860428361835186364259586700225443030155397606912882164844684901174706663424739242549093360805344355131668685566921322886575303559539699919895133663046044918043151539715699723945946166587138130678543725882090647883925810756625201413410433902566511827528605058001402961390287808890080295692584558925079573576898671142621828646555012828434803565074251785407702274728277623228165928925441388482532311171662218485294095368223201821745487582431647071567386577023193306026346570800552700136376799485178216309660980234571426729866570600175208231909407155357846963398871119566631892559268006918171227775072756860511353416857709296888804388488240076886866964119223236708544282449671444398924999455838575418868740347489282947723315461145807526902097021956497250153630490619771046097902755558266242395582045750230954831926551036912391251482955712710397617958979313588293528498290479193851221329513495119310106864220714728753462592069787534127992560321472083682542835815781543041436320796548459014952577090708130939923104552586039297823402431068550142655455891298760647271841724035628957644860635719154780881978208070083420077702714020723975307940214077998675174135333880840365186615602216077567123739613138850366725650260397115294777728366324359114882591016072696117947278737795603581167126864055040266771637203713161573343275307968349357681601829472791222765546898023949667497078130782488330417649530713141935819623021650204661927219030260367114369019723749630168744968713384524595318277934611488412082455366155145161240764753976792858719491240435588297260516758562819902746846996868828540974346413824542800961188798493669631142585700074227601067938462986642441382269853539856157978588537635300704610797058776834278712108215622814397875716536885075802998871067155559689495034558857554090850156661154609319398577631809897899727702984490064758295676152017401076686948707828285944634367947633834321431366734146171169705279692939148818571047453332412785792505900928418089559905179364731192072710999803292962375163938664797717819756035068612884330298052573696356679919349980889584981537418306273497217530751086318424858132429445026646156126859903667025667915543924840192956994855372345185275705916023897874271958175507487335252354051186695596156945077732352609722443382755762410447633785717201105230569999262487745019423607359096845358838497647503124519616261062286615610038963915030961495974303606497596058591840417387585942838997061420925161232259932704274620794109708282234848309525795129035674202156359549520407335736642740517758786471756247384378864019623027642734847183121703815328295495804709173957938020864202183272608767892489420013804465083435230666484945157889534103884525985622209329341424023643297203647614486399781357259105948527026867891885849729003248878207877469874651377454704410742074989723617513475297669458240609318367322932923658477360499303652177659419626671055698152034071880424343782887837531977044949127713940525800593835888333369847662322573337777568442895471687368691476154289487170211409444293620466767084910259658753060111175526867831772163451564911187930932480170298956872216670592321303044236971563076866162511532582856821395546301987321524936561359322776374763146030068699224375898116091688047959828762663043816571529257509406607404620676958286058301127354027558465110945331025767234824878178699543077772589797244491697760641445958487686543028096357576718212482385039821210509042651295828865068499908267775643488070500208430700423074804258862536723269518658484992775403744106072835757304241040724421992791269956933097542079395635717838406270731607230396299827432409101746285800562475771768754571577110255292175521514930889927405472853132081080404353950290017947978957657756394875536777577000760492881541463029938176715804855925587645572873605535556308941231620024155299035770213365345390190222832134960675879454839139826373648715901221238637726742730610991540946170184968127724783809876275709185738108682499325879588831970319771871997436618428985625153798350110211812125162352789281113290988004655714093889053492046521701355126814505410442344932261455661840072085151367086603069052073292815013800078561719894377168438563117758268801007722264418569395774324354422791055609593602830097878183755092747902691286611477285344610282010661514814521919003361322516797096993909408638986456780502625467617495623425060694403803745743981446391525790968079935387575547158012830097285796819042938677909983412182916994077660781522483878584316589349317565070241417162259607274431310511166033114789996088179126385790814264903119554975857932247569215177857967928824325811081741630985428371655642867929979898804235053097944773866733346734399126573462637926207500453392210195022176742464491621952168866281903487951236765926995930710687348161528807422297681667150681308000440984584183334462610513488065584257338016105284999058713738750819079191012208615157673877663708606656997823710246378315618035555998457285327505881696283142562622303222896729429617632144603785942064531040697982871670832761418730903522901971625893116422894221604425300561193813164218511124415991813151476601195561350772264779428742841816813589147193393912684921949720537233806378237582867135159765964074549084535169988164695045512396378713150991657896027736401549099748879427607279477436781960972464616502930522129994196753511439821734539183408747556773117493851290266825770121868892169618328001199669994508669614598981137934940850659780763505925015766775539720140317917356991195801748534147771001274036650139522530792716884285118015806706157820392009599799614502449603577880215688133034321130277650636775775544964190685029185870730398261088054281138792167455241021835312016555924467662614329967438814396559461027176536506162861045374913438093483956479455187112543351155691220415193635478165159601389711438105233677590784554697325083230769545577151815462819217532084113339692691548996415396550202203262968117877456409369698808974981288518417272599317826112115118024522666536852232929230158905441415440678563892568315951105475444897695730582541368524400050304445626938099986143991014176246767351785824102667418442804252063898858451890835604236686140430499798453137243896359257901112371677126751462344205890025547815512747115706585763906099954413760210941251349133117555515889212026291572089009681809490607877002392485114994224463052888647384049268765012044368510510361890311144342412006087062133666613871377252699241275272241165101862040670764143960288975970470728611815832190704518181040851361948507157338253424159505154929626348376385026371913304710355007570509331398634249311605019347700735088883530415753948900430957767252704285119367514976292373304661795524434100103594162045166252494065389803936735065610047264817865141967220509264527638333876570440232691084656874113941015870264046757757798908034457775229181847864387322083848699838525678897015162100013794742577287935160814991554129550407710427038224724829728876631747074356261057752859179716025661205716329625104288035415624950766325396569220947751819240058168600550450367289510345189045515906764418346589645817896227617388103035338592625932847364792156478482409738864446968907505809846887011843915607183200603036367306997661714058931713265217814179062617644269078739570238974767173778342428756849010249805932751024282319683196034969760989560611461322001669022547310635807220322569862196299046104102078548193228112040000611114626923704386229486036698275151962472128217823160509143081992261699780914005647373371676884875469903516145474744966153742562448058881512041492730930255803250926322889289130556114480633353699210449417450195686272869764845002448273067377920452102425687214864893862979441539025788083662813525739672892346614687536592326721654497027325086022084978168926121407252923828748195736327651835302008464179668205322760326501685259408044873315269315212137792613309590464839812083668115429791178458261292953091552471598775341896522134609933008090463945617853118412498632611012656487520672635909015404605897241262493715958641606425500225733303360758923536091387074618404766172678933531538455580936575288387228926059132852667617707668250823546906422148312602534231343970368061574848252613261326125478673497077773892108033112024177722706232918359963886474150499407764714483919267292542263154462222641687992742611722847433766550727487891250501146634139385071173611373785133025826062879812676721925663722516439037278671405034282687536393208854146195468097703531025531248398202947362193571693348937593002455636891298116130574161901855311824648932823138796764867520336599768882290711133828363494959992809711790003245953955177456432719736395778112454835136601060426321061703354353961254697564798107129608281099097914230838268595102188786567041221185035368431155710393340727733001805700063398480270009142462966352154376353736613720793485321249548911463892427308555294304191005128997611854817284521546863487847490125288649406008153842262819969862057006881933371775592185787582474476359848611107760219812955237781272388701739815425516320749059785486500549357935283460385284146971280931867391216671344947301625384274891002297845240542606430901348084327759179223123001611217094979511702450943751813553182361951425029805993502429821722523930800779910705274236834182388945987257856772542364157682983024159409601317417608965886365038742316157240598610360641637050279247701516138406876842820188309821708561785995999762938528611710457767045498865825456337743570214013442330032561997612433015514126661178533046617896346092111129113609477966395250900952196741251851040946361209401322006691331802326934927048076258363893779217074356641238812280008290166878605459001110632857796238111794126881900589184541479268601400581626052519094486558831727717059555004650838645286507480937364699532906177948757476243298107877224258823001399199064431685472262426352882564649073123962655739647498740799066470854969370593995298293421564327185240303788946261144626120381222895622345402384069920523564384550234285527650051109286889569439317065337053990700723282860278075344504125006893749290976768065991264542380622636756584113154060061833183798124202532521601222346054545146279481764773293059675603342909238416047423044262458091764522546792666563888072029787215486165092344242502733865840871056788124511522081694323842480393122476765584508611460086896089966289871817273680588673680520778753271357505936762392921757818478446521137912367017235519110095291304301915566704227737452210955229132067417699811026896101307452436066432919808038263708175052407204091474290252092560149965186975664806097105490449903828205117773059189042232809732905774104151064642658871393210965704519473753296937501460792674334557853489913046123416443081067809837576512264399343316809794776279630016125110254725141615666605291823611679196348836103692593862431239505513640426976480889469648990393306452193951608457084427158281094314708583121927492370459837816530740514900293022001289867084242527947374056555533190830533584241002864855671722154525798159959091509795172333946114044425804658959239260553801982848322331650319678547627191671697775202925836477405018788664972136959629975069557179253521206409635866160876570454754317023963644284722775750990276143007039804455198703499748477193037356264861603783723980523229392656721032628869151943611939083782085967636688111377544140453463026518346083350301517519957319566248570095229224679169042107817448048330605226503815507478765341096924150440839437333000965693128602218323656661910052112219455987566480977458378229027933490559194178968787008100563897231902923706411352715313127603881424992060453360103109820564458813994681295058232731005343596200471028162845911294388341428306887688502859584495268432960469270474084292569771890797494464551977390156304158492188356666525420351430799913975878023903595798810327957737421214253980343919237638211243869689721031174534276141940562424884193046487213583620561423993230828499070305574563377991309160301960552264860113260696700768523008151769894221199438932014094852581020194483909022374315284079276130779565231684969277643510728173531829901431135310871741190691320195719325227184573694682180699450612200809207469072503514640027753945523126018571815414537197632548001431120001917382388599927009801885233108369648106136391350683384067455502779567701434616173839592724910203059893814814093922414754497583303080820295191664334517657031311695698986255733987223251645907246428581551212659546766733801339210869348649135374169197771023642125733199007277294924791993559736283363555231335928740194578473328099473429982294562509322972768693848471359403693275574960522961976517965132978417167719673272048631823293870025739004198505791042540167878560320423699026778860845360128907970336416545494774608514548853136335951102857007558964198372896404891836728310131792157799335785602813097069367388776605817703667748717098369088270367039215873980769645333506290006798626700429145522151058208433497340517645326049218352289125511308612295872769789098612783180010976132672750746432551197139272881792499196850280486395561848053990249083448254374513777585674189286683466341625371522655016141751547061434354285564040850205517766010666120339592370377158345190614445405535104570567868548500454287322509340964374448014081309629045913242251731958725877024009835696231581155494187628522074839654900247640118412468940310961039141835264212707276400634724534557800975007345544247917660503257577636317916544886310603554409788629954196824286144396417629066721657668314371356849934022077710453934027998164674249652236761128055868153815515342911681857481313608832969835548074081077405297811552380386172366196739430931019853882095884581800138949620880832886243721429408273067068592001363141632000358501384027769701633127544520338064249764269662908170586874429528873772349787464750007978929225113214646054720888868050625863415244347199119708499117624708044223490468056543916715236562843238327482900007790233513836515257334704491759348588144175740264884172664815598971890009433991971391199843298819727021916203637618517788578561167629713823249650307939857437477493219458990110708759158901696974757722518630063029871224448058847123232803667745141065755476941144410661564831075272694070047436589079785840652293937926095232984392669486750059986625718199711893741746234101876231363710145576288183603209672128141718167385832489280068089101325754699595361122329050120607144438791690274619637875624828486380252153918672780746479989068790497514066165821715120815032435382985188785885134175028794972453462663936320268492676473690285572078895059177359674539466638252741846652860383831221091041470714373581768266887487977745300252144494239480543553977753032437818789972779752475960318838135919166441616867133183284209521905941180082961306474638635913250879683191778887865786908054555721434011326957334201040143958441750961543596089717818159838270892166335610358131087911062162122877177029011187788820355089116351154191445747876739804938518464960686520050507011653818922731974495576322135009992974513741853936697454661476997221109677713868297047726645201214199295010006183407640997819161438623733357598038291083158324635014875060777398171948049143852997535192400099029155443196133868268319143968909380197299481219691928811337770536366623242461157433779323635058228235350698633079601958471701331115117224574182138615146621622651480289773211253422501175531047329259358720605003745765076869664150565738545398997083551317975080699875586060454583914603318078765632514542431344919499758683235688207994132725748778559459822490434407022908387899739466235976154361902887751650582163919750942483088229683783509965844889033773046018471345336797779825765219840572090357891167743330243280582079878050159439106060838298592342974568191896016835733254060241238808536965908653897330023267876232795468021005874119481334070799405719752360088502349533924903765838053971127769972679920209633336494198923979714839649409873998363520327355213451512041206866143951421757009663506162572722305992864498128997916104493430065900447519846819281589696794601587192271822055300271890532842104859509333770302573292047065222101890005411437967928591730625774022998012199593640126390533235669386290892767702576614781664305934935611456009583182668771170108649297062957099651099426404737507227130486796970484605840748348416080909934582798907628383718051927220189239033794038877978403383065397024362593594944668181180577161268756179653790755245875460791786460436511554492015427590138331901993237986158114120281296060931549409796993295699374075828332432252526033054676086654222768754299000986872370761950341161514386443847027284842182286418647801362304474970979839500346883690083784876426392053911521735376700206195469887452972575850467663555172816590345146448168631434028383675225789385107864359470546254371048934544682344303608694460901307071972512985555836183318477099649200794909903888952854133179542379865997949147172715009782405378443015467215931748055830900075154566795965969384327664920316735014243169145007354766734974959199561638609088614581039591373110456477115089702032420302374454846518702884369897127490071398391996210754544378410274336820886326969942281184477313309746247686520659638362079984252234131736796863585393463828386587724614544637213922287326221792590274416905411351984706334182431281677805019211296792415892351532646754336300714200179876607697637575834644236627408791041710146944423225853087984812532140334826345703533370645814048499153423970984687933746613527845849007217867564366862858801179444402505593801948086021232166091551236257846317141583472302890698605426914016783315532926285736338548973626100721376070606635392248081032193758286349816862770106153810995268535149645724693538100891291856882171642044393565788690042338342558403398874670116306248416170320649204125842876700783235684701124607824001272310605582187969420972938559139349807479017756331562042606392115961974286420702665106418381332893545092618589982956279726720716399829802486335426043731684241546448160752976846294216172211839515766861974152882589282589666642417880412066899851980312920394808887407649376285699187889520255489995353275595427677759094295231279934032517025958349130878274554999673826476780330305074856163167913104805423471689382956186621822193840980237221691975365145185310492248191460226949542385240068400988200406602975503726153810231430247403782017388479629688166352985043443746028652549370637683679051474619002565068387956253553148525315687258735132207207188913325665315364798889920491252340400935835209321497757150824677240366853774580307087514188159456449946967087535062255060052180575981545011746866910094920949821666388132850036295385465931079157605839748726495869052184320442461451349466682840989120556875973946967594759759572533237817669790127377533288971972061879813853540814262872281344182983156600881511844800549256216704443073816865297188759670754327710887057062340002447218735434218941954398582420926164715328812434132018624170447156088618532642353224627553915278210951493815547648173075978322734034987403393184457070300535955436948133564906954184978327830325266424513766671016312477004035249350919410307080053221026301956231817237834636498102703660551914784652304758455016255136981653711413024501499029054602872542496005669479541344446958478432391662476293958580629958480204981422582197486463901890708167287775705186496489140887401964452919693731030763528649064157628074259787244045204165805094386442781874553330500120940643349629796533033930956201279589862378905449980436853190292940750108113763244861355521597585947775377718687279422600664313387053767675229966935519718391006355392271056963570256595623656209215647702307097629343925463852545335306122982501248719232595423874774956219935926919992708372439097975383462546939124557204261975617690610666426856828258804690128678615804882190677381342197908923082862700239779656154447190028293276080938332665944329286902231272482618907472054960724493757331455520222541392700112037917515448006287929133030205818298920421208917549527135598728228008028802517824961271474098873295863305550508891969421676244411711118758906199890597076551424633579715921261200500715640786285920522669409316728753952463461652748541509752005871606276735712623563763761411318149823250166172891042006985401605216139422133294165792365606237799573381726987381745794187270145070462724685356853526693573272621935539943009389036540632865771109572817355635637837628803357161169090910505501591480621613362703357470156524636295099280690735628676526520103953123039316737200843795751390975175439954146414968870881398854685564275864381503550254532409849908097980616033179790735027670849686122136241712777852321340595174392244513885458386644729323781750746151187391702303982262088576985358786859878199879389271860156585022943355443406211397001575413946031977928052897580660053104772593023363493918472247885438988876866790346400058684942865561213389923225444277266378415691600947430271130497123792985444314756930288540046348581543556636052889131283350957374085175199275797891522678452676375948320685688604403957170508048406223767997786138334340698748113949891392316122106821403536064907214509349247629046825572394336278438769310333781421990609000711608679096050691132495492900614291389528027995986353536916771547840282592435367975338384605417191084389866482774588364442898084360129946237631225099263864498307343395420492178915005176617325045002398861767342242638644873964945556604937513231176595510060488245397793820613910685039431405669962023624190146790818285809258378226325000480341144577557090724919130274428594503070239158771996057060148534963188719641120159379634128323377558533812571233471455537469585319169649934215850509542881292764493509179061444322309904047905977256067885925198211146444705097913666505505268741765870961325440123016131565294774192864094150020903578207582464080364436313009667843539336372963118681066137078607340768539725236337985637937472061593871168136852336236358214710262831662426952041503899824964989653838968404220572552834297099620498648579130374578576172211646123963350185168366152545153293043257818251763298499562110929338763333646881796190716905750789213599019451680659358523103738358216048609846527227089838667577291639299324624642600294330099839155373346835666752498204539183932447904663021116838704400265811734189230852943211657611299987809851623919161567156707902720057619848139955321514809272415938124644707885769286279695583005175655288574990158618264296443879963538943687531575961720591084976326248822671083678053625465818815931145121395324532982037437607270623493903990087450512226541051451676196660509200638363756675940296089920735838055398659796229246329992619776582046170665881895341335780436420869055163179312529459769550892431112937502886848891741892243232711042482713259019212279144166093485272500339724112513690963238531272027681149108590505380658713259957901647353222213848787780500736104277700620581349340571951035927778796421746152694904764855065687584017386697664664243419129219919145426055026677372715350575804029058438785675257772666451535285537864868656187044933291432475005049319243699461977486133509221649995984961523633708614512097054513877237610669987184705915629368607420446816995199198099024255557590034211879758460964110635147671026531208413022667439142366495078349906521092040350797042373483771171376081792955784070293082218454001356860036225593433678397564802669771245525437949242699287766672063616015804967830220790418137404161206662058744945858189940636732133828355573137480948808202985954403730724886237198496183496442842703501146958502119450165981600884429186880288881239476882178635457957887770936821427298824112709553694091161718202066366779434919715506880097586376957780091526203427285483428872269571395585977411129196272956094467136132778883880970631301435938526701514671610520601372785522307139780139513360793343910719758691439676284718385913986134161755013242697500126535313913746655930990305673668129558612019472504134074147006670302653624670063264221369596934184454283235057391713815917829660013551632213572401929755438071038898575425301013486664246402364655866948883464996626728479416323186859497214319075653702839825349797400167219883539081778490722936916564036539827674234902810734594200873949012554609438047665053962029823945642766234717954629132545785168440894624269138535339638190014575871559849216175664988583589249582165087984427280787006973754744334352106544243030273323679914668080399240169399026546739196995953468898002325788570730348331337483506544249032350011293734225976448941958351701162863088046777258880053577788849702275284705345783512568339423404186279555241194180314805880236406788814107588680101518613279095717592141351769698087617429980533328280408668513037191353033962481710849026901617429661563170784555218825232943568625901440275790957204303195555611918748047450243131528308116440693769956436506689115174630795178717261325544356177332085890721872279462301813149894159160395073908678596626501714497890133941077508130841197562999677353608598746265464691087545356901822761261518108139958098136702475955855144728720591179926901780460193309982881959536950997166402918972973616622787319355858271230440091349917294771243182814334064802928652967163038941076301857550526023247563712836359913572278264537735069458657444487580128843601269984262564790613674451678775390692181243792193290942334454047670064997129946597437099767486793706313806144464868522677508906297402304904415628119327712500912745405477232281412759349026122579631887594887512054198507091193087257746875617703073836086416242886094834656157333985932958613292929453813757184765516952549061576486169961084400830322312484305278439362169189821413960126411075200757497492010524781347978097089863222805601532154514459167200039262219088031919671237348649970810902605517712968603366029298494435002819060602937089605368114263734965487379099866917116225238851072053641447269610689758056498690779379919223550600090516013255299009837097743908790620060533565758787146244760560611737002045608777115796417505875257183469855181453627507137115958463562831289344950453004249430990695395962155285205048488643553060140639650371632389875025794613893103968792323618305518680130121021979155973352556834134886335303900221621048814462925928562326258286952711965800911187172526307932662847995769829231182154696640621020017488631879721135414188658757595535953112613804178904812552617662691648093502789342166044838961222862407706899321650459269293408441597674211303089485770546938323411666252894401257926417638173791813112845925607577887529720858612887092674797471099942864800368493758573428520235846280530121878073224445992876905338615332191307703391147712984399883121494503113330969500958564263892729309668750589225394575640037629602985389334072186566464379467342591002768409286692529726477044289066891765490876979337963354743045455708653023125479310621199940557380157122351854034868417634480447799147306400229862274265115797573077779352282683343348510810268396723370375474942209995864956219413180858062140203784953963107360777518100668022441148238603260959792059486865478928157054472798260722654889366926612318816356571472353563662702565054058965103963739559493967821980848178586367919966537183229756023288902161119004715500135415644056493745064927283206928138332588298951570713341330613379065850968380328667904170268353851276195912559377043575315501206425058893652336624510383680207010608406175262493587604788609388113106317250484295661565171492432360058422345364518713729089881171891527184809080308483693639929080098144168272728662227661694846986769404882422606065720532660597634534322636954283152249031260168366561166017306565820734345579301580548093670015024740118348389366434298811454783734761418439975940640518734048101216663835452196252564221730675893001132282301556043744523300793921560582143358735868660506279749211999923073664304641362459285041589715283524442549994281943294975116207004185271255948664435033407675022366460852909297638096095378365732729190049184830423748538421514135815229559360431123847998804966157194347644001768806321654848518586911035512043246749420048511016251836190930268403811875395100700212015281666600669776441409155727726070283873992107677841293055688928708765909880172840975488348183150391704528664422516877877993096561736379251114465006876193408772945249713950335921191797033422736981608420925395598374029824615775022614343599350968695466608493744507900190612488600394217275822770649727020439520068432234152802981464708021649033305097224016478556942477551605805983878144128461437626598444649923857992169069903039503543372767287429224784966681371701911637824675271003060036159673999643415500541168606074922645679393715181669012151797125674271270060513977851274470905856268091024734018245432279343167751326072593659248475964658770202712760733744442498780508126974405211009480869973525165484898224048966947309486359077305678778188977715612755463184870663895695164805022508650864724679443520405788752961287020930185449080520212956004222840656398976540802837670457930976363053943564192431890181775075816963116024693499217838455957867501011615278440213214108347115230673099598486844928668427921000677828287872479548935603794932643992565336457764066593948649525255445458668119687899181816757968233970887164219864872922321264228128649074917047053047489013382543464008449309292524150111275564884476208478390860592803949009699926302819874402200471940932798422736930906512152333830195821837098164717973415070554927009009322071097934589361449008380793925408074647815180696202691048989154438075182989706092218085243329453994139086262201526727427885429336378954574353909231073641091236258438109283975439139472761363841626443102749985353984954887218796347977318816643875721058682855600637429797815204652817932858100327792789035506427787753915201592535659624372276047669114514739622609126203131314310143740038619049670768914783887243499618583309914737061890782285894961625637857128322661073620563615590038146295769243170831938697726103657266164678129800665958605602974017497895394891774643150182490138424865708183596275175434336030316919784929801446897201695251873937957723547864693905282875410891967896422497768381338740261664990743235268900798752835753247971792420810607047627099366106733756987445872376177619813151567608613988943469232776383865219186033077909555885755527416483765750946306015664414917678911530056755401530175753315232141309684084270675602281998730206769515771237802782911935950474210836062363238263048053565664709513026594972441115103545857850404697674049602075181801683238942395602980840384734615059267442448891006827133086479552080267706595127993569063605462531672869297163343738848784639410810916654851402689321471742345253401715832428364448323992921115496747870809036100212832636843080392024601673662946663436761870651774581402767876429609609920770709842559807243832751632454811140027129315759557067655248473676872367451295221390227588223516805496007296166683062149889356688180857081101776816615036713360284357055767030401020060108418427473909755322656835214130552786767598429116031958429630338622209577508433282214005451291605951279993314126959260921762786492522612072347285052908215198508979126360010412345509124944808185642653677593210726910686581094927815178430062953125799868764376430174861914572002363995220755750999672828667752199413539159633193719530723210176160760590408361059368558296295729656664038663190441186555646224584896131258668894966688208491723008917916432797265080088231432888850338800117324124158150135112537686291422423938837168298392311070439657634628508759025115335013158441032928788328759976851599119939178284253123272332822659320105434374121467620224004874863117191966861399117359286566800138471959853214258042327079123456422793169165469474161285632498687330705382914118396917490034623496461042784782482428903759593434610097567095051842268657258330169451339518467503816795188190456339469461066421789093091911740698190278866648416437572790739208382392698148865645440290114445116262229337733761123028496852088424759667103578381611949433875685099884118954815135171946571162965029266140548682678651826014182207654414691135392747534286112840711717112413016758186865372081976577198802982311764267551724646093232283923459260361221298436442369493846343111398074998550536801221029161431029263651788380397342773524399040433580919589332285659911114733910555010774165906823521774238187563867227489538425797144643918659586728806071293692810259093142894533639800380096222676845569577779272529760565622069635757486824793944846579209662122056814453744596754856510686744619115707610497545530964124020849415651008654503087907105285632525499049342669527139712177151208263661242093854815128015813563748707836613490431135548335874394692236593213056289380513649123103629327645249181849627896038184550368644168289606724304043795867884459814625753304558912104588229654451895301170247088830881533721072680353803854761030734948053825901943072864562220192622142751666680314376639868291869780416616152828869119892968047013728797523903494789578310707712235603462870973128720715778280958519214306245974781171969857102144793696844948841423991188917005971886832747692075289097216115781628317672870255825339378427360540051864192836642386199824694708246609243398417743191846310477190113510393298841040758852707131315293003434714756389645479422929489665620010732743895862439241137167117045218246367155982414155255402523975450656631661087248189909341496364099159753449667897691254223945986501320511425196226643268194357209403051033052631441593444009678932872278883172644655553954788339973707521173202124741322457863483008865093843621414165127558077781936843612478120752826758294641380399871170339980839326822830218495897834953799967191916968212117732083678064256230043085695415820783787493767990089493280870984527493227421639356220673062312597075422983613033545989640876234272061296943193973390021590694026993138286885242678271922685980369982140435521083537514305176782576387064497712142996307730403277325297982545836853172516907915922308226934637923420912551581101812524992926390533149156066514359880791953797486899702473215720957475766434471976728579326961326838718268981246329460764690312886477750047099787405353007056744114265439776624119038608461548390963206118567015234540000103467779705612030617893310158812802971484576637327306697213248250940487164350222657080318666684546791581185355844641696425530141841851024178828268855357854570639552137317164344297300461351305648511727867187393807025828271421561375028691127889972030558146803351301729114254960359196161283921775274511472353111331401118256756579148182487661108703348250501977478736870715239691937580754883886685657838679765789402720906786204534346563696056828767263477150021200858111166012783365203097277108005924388275916097376738487900067602988569602414605155215914694600187354372901814702547297518695008600987075360180524026781942098353108892691674251305779830065288169677018683813213846996618008061373261645331005193628487510773925827439264544290050532433920908337609691170900139083355862747956156009528213829128819778580172507778951647153497099722426155467038211988385125806841425032132756486494057058007931365199996692947828402521706114148360530400968619294088330869133406477725365431947377702131253673693051102377515918818594710874068467258171735021263246216932724414141682579379075594977821037060007507517149102550727687338068713058686225986979225026592600860619982587085111636912165227287763105585234996540954277368980262972595343007061080548026847651142383545899318534746755164505560069855671757147436930089986699066560832055796258002308657814509700902707273616497476867955966252859122263938359884773751694481865793396463395352364610745211234098492251618911666893773470675175326376592827134416767501853330131548536071106490183006766425848828613279772496668006370973082204716922581116825259625763401232717904184239473992378978467796428026969143757608972380656367437252322957344227325356967694051612065376403239336727973776464221403916715767927998740860305314282005257264024400456901050910877506238289958662223296505381492577088587087916381839514380733324696638788385551386090106581702048733440751045891747451569036172410502094392631747631700739583526596821488111954072879480474453192066762323242157550347947864917213889834155126454781812568870904049471148908467553200804980957013500366054797004118649860530316214040853005889629346808169224746776884068743792166466647448742714298681189076114714345497073604444388085282564222241320387330211111302557606991919023427464110217931367123634633651886231025054835097873500960052389712272783598277882938592692632300325716201418620049884635369414024223990586992228894503836751192290458902335453972149394141753485701634062532000599944109348687142527037626346215154131271178238713874232530421808162514123066734031935749023422368341188724286499536912489141841439001054599216008350985576604138288534817432749528031877795148974390148991297172365833329826807247152849947128788747149817087682177386035716851133862737109844530867118331477393288673838494973863645318521628605747956676053202046542045141402959949276812042666411843559940485944915394987591051015415206746147121434443538878002737806642485179056643672018755563873684639898703735979979704583602396856799648317330705894706188279594915329151238096869981608982168051919308978087519312829773315477106193701282399314125605613426202695537791848702313273074724487345016232163088379239268835113606034165041202942635021239409319057057410772684281289651221961098169317892007391647945122846817000646328029538789463372069717211003267944171316995080936001694089713393141919313948558417572366431582287982590877112776318587235488795885001184223068059434271035710491257708896908323922947127918227892781194475618187785802343755803125191654103597900245352412230988242627809388088215189347318267908967911675284540396354329995040520870574278835559947884619474055763858243487305173324094780177893128080065157541919607102600746789971011192286627025671553726149165242015979000725891563581834758670368311264640669781323520082503511449687863455593900877223570279632294095133909382505337060727330980187653543285737981828517979733662917100410637305575941880007239590242410264540815829208791447963942948491213986240369921351256129410789013782728192980175122139027714049713801778802247875277423954767222228824059878013327925549782522097221348230994126863425372036736940200448634239848151634920594865310665197567686594880748083769018058457124106640349681774890086459047160270296968680250638928962394275791646377413916681286303444077815352341629544112455254182556335218284041857627369214745951082896829412328054072557087324235334953550116194556754772194990624769814208270946877294050774008560256778776686227970568994055376089804156408030396668608303556302237775195242797838014763327863697030441534189891003937899972103887882822961182805289594874421066413568895888647890378612051013232232329223034426576845995469457576087775196797440357797709085852703198759503218501154615274646667943179422426215430134607897962005565742411656813830680597031755650946642773730540810038984474644854046287593218279136014571680767778083204618541985867987739806928604073884491079155957649537979137619764564709788145784421901998508272400603885404929957782868915315948889325364841370816072538323953617251877080345267714001860167761274590431897492096662547697154703907097570306131454500040011803411132537686070075150941507944118832532712607369989008991516126395809867703787637566611750737694759710833089903764252866828230860829010888875368057958475483791271196281549905346325443150095931783684411171470153553397232525526941969908838076395767452510135430706948460207428873266736569190505700879647675580549547968813088241362637411384712836056156037532297956660670195086312836847117650088854732968896902594572172298134136765231564748303171458903281828345365410467211721465537492604582279451945031347154063442595600397326816176007856996669756931514277029303656329438686879356394181367953580876953624060996571487514966070913834544695866769289120447629755575773569513389844769693938815572731678546216275281341247435130067387759049667876451900649802306074548284095821604907039475139313019206902416802876360508383677346602850393404729272800984574266550274505902663990801343650214729631033958941247411775726019019700918605577498356638212249378630434247604026250676538865943175369947760100801189726212616094699409101187709050083660046829970491588683227208988543930588550893598711058337601367166191645710547940744613165652659075736482725629618811023872279505525887019479239976316413359018684511120367751839591349635502133190374202619240447340018338624634420999698536696257626882718088063474205228603833166079647212720054483872335835865465463010096215737070513088989093532486442506704520547262061182391848554144211418833821857480995797647664154652479714537614177143280598831973561390563050699714815666936787516571527873066964158558683511838698427614463159970828791196112565878027425114659251871375461838242561051130322017119447947590001843650262830346706826757582126334113088813586154881558610924373442405313540080681343181880837338230258772772791802326305023942139583302642819045899656198279493880476262022591599035391768514854372533922580638391007223918937120872333744126186823575647793537996552426229100524734925970531680658038069917228289542070590430846480486192448554071250872711912321575756444696463863667775562071968439320330059816225223036728224190306581455407272799662761025739449306433620423302877080065344381873335363127214731164607903229759318902789570735780319089940600741292706142921598617188193750706068784866972678350412092320805772878466809730324980272348680172698732279960454221728076088055577923994938329504423858486765409246384745249057675466386029006802642188351176085397247707043379028620256406206575201971858475599553320572437420479428155465430898071015684639981084201806091342736628863943289206659584993965705841367015500302808246855001484845295591902575740778082572901274466500209591212943429672793517265996102197327226031918398289304584458547409675053370275857239875139906567131327128006579642752995601352489298710766981918574997962118926374259654888211930239053822976963305401234088959119583311046374897221056673111268976264595249927331871991838080906160044630355888730956616080153965499366579813816305241487688485600550483836446971639693602904965815662926164909946553579749555228267080524417560740962887202131480838704407138061666633878869780851100907228127450451359922107086321277803112949304414498987640460969876846971754646198113959481514706292112675449739388760573554345644659515440627519803695568454987452990597362207283995224720620759011974374096744166955380686528932925816285012631980304416394015932705831370483305470877904811335970723415683827099304534896481463946971428696286618243968429102824109047826660965310539396007805634201630380251913417526752824717082133794409750355505314057269123774012250616754342089137931206251390039033935225116321170916490135947597621715649710073070501659343620981047704547157094602972779804386040197577656082790825287632570724317809650334422283470578941855534111412643580121790023609026112632169485449828271723484937265902465618902102624427914747292872993716340684269445685790364043025225793163872567390791404355346724466817853847284933294645042300292950588007153856282074368849405072884205665523026968763648273489757433014234377935949377118253454202621096122873805931933336235532328310429200164099925641327428762938277814660370391000229753562803097631553114549695072206374624061681078131825562884263915581168876094094343293794148307250605152665149132620875300391375393792671812540394025354096911730444999421571231729162247673991303833020910323432961065447636215492149030778093180569603144161727867715642212520076248108339139403359327895944762546454743917843038116545145224100351520224482411771029385347995192058012044777723286065657494581358178226722633798735255106551389538149445715394737253753766356772616948063714456214867328125107637577329537730791606750467653479825383116921732381046186559913752788245214813310057059252276512397190743202838996560202960594418018272397762458361443279819971073162897264079847869990418582348482142340556278129858973425590581785233382617792195108969406950862785498823047505401497689573339801260637722393520001147692992046624622947736734594194152580400135280479275574716462855114613219355070258642101495131205658402706015984866137139344600733479780613390697074458297802259257512173528720358676520564319980612961066427620069198709160246962298679131985504317737749783680699382684809627721196785654266459538941923953344515407050647083799428354697655702059529730895656661116501414473998511248515325630773583810565092689753598400299245587155365252110921561889890680446339982431272046723260850045593295389959554152192045872778625025651549386860602887953455827901200122759785398185379258743907784755926922459401107183309676673770250166896662454561459035693021132010303565757670119389163134974317374806118526146323290827648957256704343810946128192535948491071902687742678314943696744819046668545658201142814210967457783251300957158369232880917318617345957556766963997814952378821282414974771932928749517012843375737287861739932369629200619705614910980534699301789569815923909337192427494747779906058958409992309682004236190678753089970295881028092941085443294050720714065427156476615245498902593052132325234288887580122928567207411585833643053323220646456570675657689138293493909364481488276097924815719005444256884025055529522270477803799481926853960502214823291640796799061839125230650637678424092447279246592148957509245504757042030022919830389184820044064854647784487205504780617999914328387368823809277275118573150952993569163871035924243200723364768654242940062555247058934324936481345221910669503514762405913216486752346658267732694969184728938806649965536948561275406560175126159916464844133802618201835929375486680341204827492828787059545623794773431945457095269959503727711313298178119147795360869922640608081199591794287409741505673947234646731219387080786062422779352303350270655815484721487387065916836995453117982729236741868006797934741124358491895736548335602862673823428209602246803699496139906182972354657589632324738138743377218610941379690820199464653539099846014113133522484531619917247865607897071526705092298319816814549050195202484037751945171419392078414927943657773797645921720759049752402203793898471284872227772604775766402198655089479312447502349448494931572413167479411095859445675206353656738709346260618847396859407891216835100283177357246179792600260357139042467515747380160922937703661509816712502503889013665553139534782435503059875542587658891203001761249211202873040975034010274581020058348847517315499291740298981166558209924042151855256117889215050741753916805476929508944856684323057638986754477141399031948070251832009683018687435907111398059207617445503199391275921333412906023096547830509283988174688695229746478751982222616950644981707014165149594464447293192271000095407974381613071384229826785570884838311589669905542549833357961403768713497801562232518785753613894955165861448593480888605263952527213112243036790734221169571797354378317461873100855098768347546198044384682097087810715928289632531901086789003419813676183078756494385963102994510876233873460082521008943366976324036316769518684487634253120595076985955841741725812675477945903796391048776103285345643730704789079412311301874160649628689482379252436953839522030425322171624661793985682674457675508754251647404911888859495039170739386441770775676700559367323774238966005527862579237865463803786960737223448273311504644602123846673801734585511280902846572054858084638691944304823514732231662857434324245430867741194418969810353419761140804602895961501384486360095519097059653539679152365187467422224639802483076791411715552717105832374483660442559130609612292238083394092585191552163140056768421804727024163756498853173612374951277092062709739433077213412942207592796642451996108111735129436610881648596708019788503343099996334886033311533922159423574938646098715787565019021505229419899549523605101446996128924724456031123826485050995844126292491396203133474324054899191862340185840701442685551077392365950158664896819325347683499159326093476974448899643861186913653694152503695038693000732675508149676089003044034674292539584812698630625382149775970959979662820542628714708268585897037430063724224651538951927347972398006698675507106076457154665505038472566993967897521924004192388572651927796889678325353481154128088161129744357232956658436783037010769941788916329180954814549682379195182564073742980277645584465561890250492910282414099972050054281663856298476955574225216165318590647011555309233383020858684762608415207259370710519573672570331330143931216781576416417474766949864618285762078858905591835928677049075919286204493265643385319456005832574036549385345418998110595657445024597075229385805608555585447761892591179444457642111254714299656765747727396262794116218854835267112597441766537427924789996264509119416479552125602273690819026351780788701775874223596370035673935734608916093837337188369841838469287775238942637439696056005896115100013854110076765365969098999180028628589013232424572005437526697187229450801938182031966880712133380691924843369344777898656625851872937143720719902514901425519394788162157664053499436847130873414289764150267463867099741709047469209329884278043111539227035774814580844118821125096397497949694052026772859422331589161860714127823680762373819110953489314293239428343611263199047317403957992828565520338252572758399845886044624702785139551934138276800479959068405147087175569901048813539047624448260311554151668515406738603986132797861886531796401208788894355018389871833568706042619738939651224586703823710275108509785382613799500058127629368394559493546905232260194058596825997585480601120517349780813349469905787719123617193450790268328075641556070839632710191359262243950372432634727939304779236202535119772466206444831150668916481050562472812767936835207401487151627493106465440674590013889953612782808168904821742787398098072003224006280390312761770114188811511863094133692068422630370478720654800929733160202230330167537887623672352076876089210188976695097576425485123646278029140916667319014249446611536304421395138199829948941522252675951340398355768329274287597060026791621352424440788586951590495894725505171783460444321746143344219869292796697553504027672257651754282519553570048464915059845853184911785178288243110074419618230537374531286201713622529581554251461061269536049960800049053210587691624086859394405506202027514964703739074765413657191766206428104111199898733053180810090063685580016093805189360799430558544516404577920157978500577090637343011183295348943249831209169425570405356948520025748640523569565787470325509326240765615905052668859402202528686435342656392224385678763944690396366825338216234870253678276569722960725902737808741570026275781402962862988343052493050993507809608608375472525476951649328843843995608456755381368647331359229823755357864656571458892047794050027182168583500838141735993849401307955406509524881886532168277818147249443363218391405711052752850666686838395792578346950671336399942454802260328411459050128884802430323592008172278351707141194280819273909769586826321810718773193699935861222094734789703440382963370260957437652558643606654221079469850162683117200861241548038974097112317417108629233412397653970139282434860400966407823474961316178207236536842804815672035317175654854501549560503503737735649872745946449202231204785252864933595165841199198019405568392103915108762349286169377996096117996240108826733068825929627292163393875118084650490451870129213138168876103667254507715443508007751835283319864819021651991040403782999646965114456232133586752403261139593532075150655079177665846308038580874956607597029518944685275616804739860191912386173385713731024439860239653796260293387517844222773164377347856529047166890322935898752594967560297348996296662655953040540336497312944425149145606043471505133739411594219173303478518572649179467600940021618549165438621972076167656098798419618773557488799326120534662067869869099636756347363424786566663259372792980856839716392812825639158239931163339578984906310565065146975215573558128016318372568800696095120492545127521633397513304563226923056128309948942192986704970815105789294561756820593482019731532872257929601538821880689483548975734632662349462935887197749539755101329477064977045965790661720662889501275460674376158711395781505764575815596489387914615245743263457400103531333336686176406937647940265275981850765258521532543024767863575709827676196146466166343243611636965769363473818932388402920602498874048121739761873037025028023631399530716008095954367570828128725184206836425208589887500890224589920149109144045367985515895168372286833443985034056455505843293903200468697934090648912523462760150848716132898457853555645294660321012660294177950851356618454309124200521442266647771468388321600531022665209259788358228125475644095274526915987942400746383392704139815065922875768146755176990005571194991439562779574137142189037720687301267360130915238425539017524916350958425110223318597095736256273024683765955093992165388609510821160746584369846022488865090492881756133340117640893518010161390286296808953005704408696627295147782266666112860890238016994277788684014742270835119989064664332694670877624656092580908234246524811781759178490737180470138688929819169986678301163255515688267894941726613877771907418916460812786492265925367283493833598573050344633291100533442115418975737671290231202054560044811140556407213552044327820134978168761911432023983089678575513688375851674443753131610865551027884430451447228832273522020327539413274720191962903328027579531591467157046510891032866319892266147963059653135823048428322917227676436103830187101508051686848627504185070935771218063219319916933676501915833889408058083400781867329408270964517486320829188953019264690406271417985298183673083813604450063128817600951524858184469576806838525074911679305028716058633703298635053247716458159417624138605674134128342485595422562114196872019852009242300702001930474248340053457841346791819793909825595369316142032671822698604470217329724443222596459740460183033251105074242553063640611893637378059951877015644945730866000534894433731962632607277423856464779204711848835903161485552126970203509755957018794245905314148192020668789527251129978559504805847399628444492187314627931125184791023163954607056615285281318240245004345623465797598932830377015759014795183572593716567390246482177899282633681684360793515355217284544803263629062227458915041319908464365498958989504238228345985654064413472453639521689480356828256234033633182376399995134419265696234893636011451722341149945226713481970949257764652610822420097814688932987143869700430174640382577907813944204105147317727508544830448647966867859169987597708715071124110290071084145066929278729843426232807962907411207095241760442894363934480365340018643005396576872031907542613681355120506870271009446315091218845021423305780624223016418611306793345907633237395971853770979513566052298513192137637047048622128807245400729682748168441264435687590459912077398158999822683596009809529495464628785000317215276425770964708539839378549411909597987440515928554200837374821744775474805264824400651689143668933676201337160488399994071694394568733729875912004706560619084438048606633523184487376012778080483359946454746693093976097605247556054100801169174105986971752292449504723916034309358456888672583951383559571971261834823226492392843086632193424030768432032860817975158706594037480646952974038060031292850876589745612547037814671848572229973515884789352387872058234457190061694929825671295975040746484466876864571701826308851212780791941132423406723505737363894796422566618384614452787262896426002318151618963557599680396285084595766387712534797200710501798065511223285909950777396904259487856209679235782622768272484206986470814501863194085941830913663340175252952628683177126119513005919868186203446989391249244594102591417536908435413842659387357166239134662519159812313368628825704383146123205315789317749533763010116998915482586837184844804035941656393639118174785960702799219058410358571794637210226661628898593092889529650207412608086594801110626504324379057144908456455968850225805686212149066780059685564814383767077985363720018049745698899906811838540353613340994162812179357403292344209918311824118081252571811614860011504032065395413060001437745967782809842284868963427393132509053017537560307511050215292439138866954963021428404021818586052103410234208983029191110875055850114320939580945962308468411821515566307515559262609302890149763245337016062783985420405106249622640348030518105828533740859677304085070765460700595250165157707680493061434382730452062197963567288460868450652511351684768549475711938002312096509217422027738303460240035414825367323219612013752811279082677443827957334327623343616152455158036951394831366823977060513467786590195278601988163252699909366200436684604463984286741397052889578558078631186455035774847229410561772577725195321435987238751028103387106256311821617936902865937740512807643475981871394975382567633195532886351427001864301562971038424782508176480863399665584858564158925782295101673837341084733231774743515318259363171676884195275017306760232442503987196516808959594210787317957550650584113376143295120989249868282623016481967152870101767229355375620584535373212321680637763683227167277636129358348045969891155573474034270744883295771782601448140906891507065952253856165774668850519578455555580894833168493258392519308608706896495317971806853092739552430265627057781503553486022831426217808906065804281161522641368406921697402453866066854491565691208405039059573394059950159057994746488738587221071258716954989335431073673759146750099512871915037968260706200644056134282701139940275152455814909817322456190998835830916453842118513334791136563387072309804116369278991668129293442110242469074579591530146331098043794567431882413429471372026298593459316567838716914066932883341575662434784653258690914301224280081962513159613864935382800359368844725028165077564815742514743692209847331000893231039762731002215399291800369338792888439048157446630539551184652544386681001144304210338774107530085317730467671870391200522867838760393504576589449145989637629471085887508059699863144540520018497900490759659402608919000001860809822280900099736434456674367989221463445157961659158274935008838689146129536293970449577021879360246947672959164502136965097308546467141738613454570978546645130000375622962044548734122753551776370539863650916475162808077527259465050334069392720279832553835796678525042223781330533163798761247394945404580936172916295838210727616583143958322200153510381815138186057087764350639508488899895612862174340471976288537754067585095501059693946635642511877049238573560638845841675593259238180549048109265690016821393224572123032741160749636364831023899416406570693252139820697902489575236984260738422409096603363472124909509116174499690301573807471216313006537784622585032977147637530024299443364670658766120464303391299935041277753188417886999629312701215456026930234454288014564116553541016938092420079916986323944988569602414102920390416580004214211398586816410065874145777319708688632123309675568244976407663988279703949811132239502023802108122235168753054884867967977380738430807414374862015395543631331459162519655684797829697957130472395183245721157589295091415498063234929506298070152215934145764766327902799351617498351399502738792434540932645995769041210247046354072526439714211068865276860223134107760113929788201173252970575576872135759602985519463714973979533885565896002307989625031894188923938930324636040895510413081178575011620628277052919460484887087254420557091647398173847816690544256202432270107001620542836136958392303179565945891856561701001340632172561673612134060646840645518773519414473361061228656031345674790208618270007450136349673186023543662695062503892104920003229464090371889396460019086475996790106131429067673285137759069197521105240764904265747555213382858381425215687679925635302468931369026313318303312194177630054299930127643206572498378695165664445674737157174735264377846531573736479493184359132778386341474982901638276228084790234679564709832286862141831295704034245077916320017363539787566745324792753915902133565465664793541991058234404155632956443514957592620689083700410895874150985314281582448687773962835293357602996308621534880032689388927999477597693244916966942398802252563367779005324510867223558505557794616033750154798782531981484922294251340158800443100979231275493895973112415060992403887697555682052718941499261450433095748584892279119161214766019990713970192985121721007668263578517746769082795745797089345032429996904666958848322944934584083917718405879871283398472139166519351463794109664929749068730330849631712371646117779228405101933677350097966914768205859255560871872354148111692568186050808225926169262619477117930545639081555932739428224441449876693864177038463729585555133811083789574089973031942640988169592421711585457971505889375393295822020252184019932559024441994637126745966007201491681097962321350708285965888414001802968859679202921731370886244144255348525246370819793271243861409494148295302514745040125084348842096389139032268388613546364079151601349808050242189213979213511646469396990041408516985019181265580426071144025097710244141026961571290701510620599647613733605491814581746696418123298074416756999818971153231393880852260541996697360318882533916286527318127187833935076969972914746454483630405079257301721440173172852262903129391196294244333759653353038391105999270489252130587650650937700792917375440557420914164890140666224452596831386431172114650784167193844138014179196204034432200188657677564236784395865219356946686693017954421531878605185400457284443351905510090081652366265086077746381263442155819254745878341161757789853802500112579677854133996825894912212343884635102442459782848164819677816319153981503185935053359604630532581475926989218092965378682822957663637671199598727198021705475312015222575616004989740970765682437805408411355493174691483145014889047262182407804580085806761085959055447471874088937972472816269168763483414383474889554568640300957772160801837928691193705233579914570993912290399621507170005953257559686299547282689085100012599448334149607955836043813166122770139918588629509295182249909120404284615525948260161562928429082384975995554446802426322678049585987615073858687608875684406116976961734747867518317881195398922476736889307013178092341862712408462886648142743124828527230342848263515172560557155063134063081432926082002390504518510504208373898438602276788182949274068689472994047321804705936614355999244353053232612848322013820257268078467864405121049003507224754574139260319987095311422746385145611983471734859553508926747304685874352933367415255536936096488672645227599858220049407555292949926849521171140336283509753260281343558252604811029286796775028085273948252487235786682480864824742565622015555850579106853073838421703732174916178612458708716867567470770134806746794320108970043978019862512853383746732637790661988449778503887097929244800599417214741387168510045522465104286074562847331588179898578078970330989483281795440029596397301794567599036229199254101390301646528129562589554063512988467561912659522897444469504880649594055226106551907632790786293890832477430361658436042101169973976630417355861119957182495480646005761814509578874943958336955096965691108513245556052386062440292861843150491252517668949487818835107102295237352325534291179988443541126524514581617927971058649248348594956797547365970751227298044228114670983504342440708384217368540345239480140646537715138397891334889264628184783531192015720661950643695988625919661366853402353101306133608108335116373245754488398196590876223890565869651047704381215716489733900198676889995589930176719393752564180632029270924560367320162386247753045131438582499698753147119828616997250562756062129339454407825315218308067948687510111306768039765066673998964344507317522111920436527068805415536450353806315477163157434221066286875312598657473027983481463645333687118971373884660703670965692866468639944087996253648985402217786784195394693603640442323343841113094378802515210384752337644380209125498665733483694563836316443169269677796522245688758702198799801762098510383899222873017665313554109437636559474221647145089540876001850067730006151528078626292771904630226409419733464495273236974685730873478238515388886423712879040364461649188453965078694717294775726194722500730211214241809061555024984710679036811172465800453098781355467371736628485270780291199103476736171688733986386741237699349449028855372844148071568714823052574594290829648440369982388834011116439579177315345975720936770488166021694292989743458287390445129861596612821796905923688291456627535117747121530938160070679612071885126942458919787083694452362279230191593125849117433624746545156674892727413917424750411951756284268004689596625793065463684756044628046176350646884904160026987548187833436187740383304265485034617125385098071687125982392544459093483634052711692086704867875826568187880047940861417197059465950719296749269041926526513416720937402018717286776198917255966937856682890897965641340126172429178916112006028290502225199386912931308230166921424147018780295711815138966066511527383498236925155278477388589846488423935428679916932525909641669136257014193455819042599087593144457568825995960423692374485134935736276557675598237060951483643999529519198339978772996896442300864642415679009826091396810402684015379733366565532621176459050482951517986623256138534951273877497954868504729105526074693573860655256551440058733447283886394828987568417716200593611509375528387065830132498076654913855186135623374388940100939283985670586143414861059741244478360003494579510133956943198365030083393967395572293854310646945145949558180757259798396551306137361718280686795374394032253945790230655037794221230992264123783126153480485215071948391715476109199493308308139623827472614685072954773235038226266167276052304680054529206147686348071613467902327996412721148041256809797970914584100776362603940465058681020474623500502875294791909817681422038556306898746993205601124103439018916899099877347117685775533247613860681388877579210150351913468052972526759535773546659406095349198797495368800190550641115348948051427324348573924649970885683759604394571651807075338977584371770194536315569619073928485494253337143489314807317947027418958447607847052558650527356958128032198685032887899828644204026248679477937608515641954885405747860449941365508473810860338312293345540498041811320645457675198843968855235567971749563748367837422022721228034034425890675540550389608350476518768994685436940214371875393881718889003436896706296314686485366643251608408893740358334137977838144086158848347391666698808779235125493055819024630305939152699410793029599064959512557433311058173817427405172793400501452046670076469998465262260280188827363359182114838920083612417993377539577764027396900545008128431834298056978277801810703477192791321800083763909171613062007107907660632337510576488633170452833177928868060707677663232539865284779929538676080630249720423665595584631615520509342541673955961747229953619830932566491052955529823120115583978094743323342661682617978021167444666145047701297486346377865226465253188696728938244304448880061101799784053076474533413940806394923763851612529201547421781216186689577967608476368509015100529584476985722180268333603503266260279246939399992429484167351781437940515312630331570083520991877399616858546409349126382911447865581272789792495965356685698993453139655572859146415338868065917203731680411478806335597677710960655002618121276043094292370360707518464813725938425750853420406268683279985329976852978990882600107752509607418651566937029452111616764776488435595691942148497708780101410565709114442931154135455210361393712901912285281222872099446382216195406647218568244485191958525925377400215413147397634589531931147941459440694519762813719549252008203399384522128714360452442221857066520286032001349788197562149626258205243108803911907458789728837940186278946901162008171234878977067681514933982946468226607900334963160723007639617424763290410345185639447904035624826209510023058063725774171595953425584403530073433523922971667947047349364782844109746838877647839423654036262965079661178716147456310437246629449652139694114357646390585125068659560771616198460423223390410807293364348333548576068300264675730154594228640686931898931189429973976253338459664005698520424715560961626957997852931391024434856038210287207336972862186258081098230764701843436226415586061807304020558339636368662861905915775408024146884779461081044357974392691852786114038484835178036687950068889265353995781242783492412486290125844473085772448898588008842867371517698544860086403839625156500022330777100370289512310125493390878637161384454475341216822385162072830545777008089909889275468500291749543022735441855101576560188451390831633507580614008970684518129569972352436359919144014967033468792594968464501221416166417826761840112032807078835591618226602479502590770331158455816422594120159950733516842441759179347283712463416928387850303802902001138533868585894518694575644340360140431276749136950563938530011929941225914341472191536103746668258718342198023360333249936902376136726850590757876209494813090274963522559886896226029532969696745461364180357301799617815804105386416135433433155094057835060020814204619027612308136250140558972375118681216294673104084545386594026450266261776861930245131664525381849495408607415885619759963381455523969173472509506960211132472877291687249680142554147172121891853637650078597552272781053976220393012201155230216075792286679252777437809589581820078316211288961106293590342220719170620125510729864272067245439555810601527400381388070029083238214220253674445449177748459329125073470439857342654232162701053032917341039481981820262369110139524713239452039484492817068360077841903834099242364187207548362233965430258436748736289340400016602426842693835511944531164118962070434643963589057109270820613835339051010662167445567509409690228545812583880979920595014403133346498142389647163257238018119091624531504112454492796269479151963526674336105013875293886620284997802381638957379953126172269265131867229407280699635962410571514395612364920087457811632794528833731310453799996672827488459704321259051204714678861748163170342773711571605296251411478097438511419197121482676716214615708552805571783078479683471869771551450103865154481119971031150382066452795274574198605737853435599699953577924051717696428594821488157148442206103566869441021711603271213695916199431985028422327628801409181432196631858450535427601257730735002276348363113427514482154662364072325480302121138105344686519677444105701455659197712360174866602358158477359095900725574211600160275470280916310067835103220505261562188142552394387123369130133456141294145458573502585044021856526902257167881581758808765650480801279040960787374343890329342024207865819138532805675044383444405590488814019873998073536884157501884688183717571628051531142901417439083247090277637174136667388976090524481811368959363978466281348813926941654417297987838861733322621886232377220315726286734011229020873187843979155685450936243980051540450803588198385723411356672080538874409465511446372969040601326861977504428385208086024346396521261936710157611194464476785079012838902567679957418277220284700309101949827216070850562299112025564837542993304486030451574568935001093117459308928888935343145294022520925209049202124286720694794166786026805671072805935201668665284389547054073793780607235280396268182358776884802515904882521848717046434950491144307866913468766306754234075409172762052711967399741716511251329930008894130646522851832994453767933325438751916834192443290690420362532239065305359401085601484703239660744026174469231040609298137965519077404323604467545359725734769640855925261010612923421669952065839888045231690955831732997817694354756564017791249792649623154902481007887177405220257112804226935525955894974020537019890274030198918916508572877056599002019152137972855494666852981964076964380564384301537890394119181289312302026929161227612659802439002879371822531914278737252013433081782684038879218768867585156603438203892384860116286920499364573472284665914006635078770047561626874880006311368112604996344196337193183693048902526709664071214150657781216098716790677646117535052963086855329660510276559494232469804698279805718615925029247376942280899873080537550633025404323070297318323736224408967924737260503947455841807939424771301001216107366747304051521917562300304484026061994838309019835561694555996293611995818108670508223880867988873642468673229004537862612180960665262453999835767708412991116031523295275867005018037704395242206628724349981837575278660787936763224450498101316555177905468084335668442326258570998972286048433392536444134628516572870126816304282883199580278786623941165370815676340748768190650673881762419764155719452645511340856035619446581203954766117143912068549010974581236101449333503277379958083825251506340370609652256141392635095268009092418036258510911011542201588647095881361825931567559733567807698445928939919754293360171174742197745744315357031564171170437766503851976744749780626844212453184861338504517908673027933679253999743244220485108252942340123683655841950060709154509374099797553235811446571611120739575102592466893312545889638291630110336719030362653171779791133619689585785629646971563986180453290811387449085778910632828126649484967116691222755121631915274429069202419963592718969184391933465129708648601915878214515299266055218368618289871930227397516927291703642478215647035571406610848563292307949067510607307821654518972453937855496472612777548233238828786524503254508492576249263197413586336746753626675775753710195616536309286099102476781783612191686750160628476647564598564221359828483451520422309395684836263036553535295914005740783156684161839062731345866260412721902138512838539789903759191585353405254453268259241795486245606952112762699987180495466294544656339289204613889524429321118935958981373712798251829814637948295847590077614289228252864165175097084622142230644932643397132907061874872446489353016021726925941710944401678864473998057284238948846574003485093709232785483091597337918805255430900866691438313466991873976752537409041478359293214299762576495371907276866854106262348470950374884596293880103016602633149744129046468624479298638121202394361503551525840915785156417493749792997938962537703866827970827466795636829742671603111912123129586523046424017551828035457036544777296147518085618898695527007208556880388699322435965702665457088909147466160149948665630016946097688475005864671175014059221108510567665499457109137854622957149498476197401176490546496094050814441125508448562010308352519574401509255570711673353965526177046271997701023089810967172840161961876081730800735594120966367935132555156330524874644475565530118261759899429031850804994497870631932197261184681917373163383870035276708764292976907520796526125026468169202048680262360400962985609422228552692552621547105119047202388692581733533412094649754675607058945487951386997390309415958796681514274112516442923626418635264275357405803303297790694975585882182520623846467422614142506984809485258409671632546876269951310953904211866888832913250362998561551656886855059636039974824681032117024693121704028685828963619996276807191521202468289196458336188515613397461743744140996279959733612551021028007368589973743154185285181345050519555528877574846317032179964549176247657470944967471837230338752956092065105814272987481669214329188983703366401701766454681621888047389780507086368002149492132524463548630889844356482244551817941121624767536187664141775653700212101190863099108602376598812011910539624084528359373835249032188400452237667595379315962527053367638493565645080094375852069312629990322426571908742344487266119255358002922558891372391781909209815257120001555854717194432217516402058625876720696830551681912578771263643309669033263294268062850345757729748497916815732580811942816961244858903844437012499327056607932338362191612695014574996277877083117423928386451310773814607728940092119891542883327561611976452737214342476874783444194800057272676781857033626122040961779758169076110213829819112428973194849285822031535338598971487901482266626784454435544218797349531911060415677497378683643234635093180850211238933918686287094066251542689580004365436471906777505496817421726293916688073169415113186124097976763340797232601810096008432003463855846461618642555509314969596195988862613501192822827619191015491413284985263546668943250514110563256556501784034017283700142104644202024481513222010937769857195128246259184197123544567438294531717132784005965519594680282134154857752804656111044630837481079598267878793217044406873763094145046826362350494647182319349259800320122874861388034700066329465945542884723905491392405521325786763885321407100127635972285889347222554966934643433418032769151158227952397277869256510360264391633910267631513682175590277375527439364417879268807666813193758064708114038635067769063306118029242408681040253050959149684274272152750405376350844665933416001383642974773947234731369047838697944960491293329759284451517654987577313021996840641137929862579165541751962479670122393892324752413444470978054183332147653918731223869795887762012802647632385039531479974552556373541811084961384795687670409149870769181586676659743026683281430054451457335342907251579731367779567365434206504521892926919665165239411082377046864781062445443335394606767867883137971806532982054842541474326511539135495943281407984343851645993256128170020734850030854927493865500085895509573086045074813068291675234550714658743514666844734909230972839938761454374064526149595030574628734784446952051651100495972900315804849197755000300673573867906679395166899792913136497780798731211307914066554778772099421080221083055539510910578729068759496840797097284240014840873128731953119292913215885490518333416148829395187168670693492948385157666421638041457683261174013955418117578319538765357470215214225596704089489687864013169286579068742424983888465498330937158538583187860451210172854824316776837051347830898562649334694514547616065265991632061313722815328294521872773688787920849834757483319568323861843757436082149639633794089687404524969503663855967234282322716277037162197401581825835855769042188731691261879467773449192149751091756217777278538443168334526065740053683191203328285609305698950267677262614428425930105590566757516423455251363544185283674953726191180193987549310732371457568101486712747838767289245651471295988608086595961449499497083602850075765891339122123398203291656473473392263668044105125918071144335755987041965165501649950432471702477175740478516431593735230037442637702265816712164267478433006053910491062417440655900629008909899360341054760630530334641319644375840762000653773389047083918439711029208090729693396151676690925839758678029486597642635907069510599044353425585390502269586602563884996760081188571135633490566991332632811077148378783502564842419977541789769228047547601637416502277812239230393899169091812216402234308365689465472932317562836805458550403372754445479111025278103061145859403015841478535438297972552695473113848522213639494285292270387473673517857918209580374335179690872863373702028779817218354599785617426878055506174965423768395901070385361044761003686340141553112845706796397145689656100757928225144018923237428852869290608630015377756056012939627282314429545729760115538620899240720029379142916364321449082428258108997461417935652961615945148123095428126209479794155019830487014424089881877979725843336011531573641401549939586343758958497242118899818738822038931004782592793940859699537461287725172759094901261243930626795583866687254145188414230703944837989439064377367531380845727550517644095987942984727852702102928494479070889902002830141648708391180842263005743041771156757905145476649851659869378460690155981134150825564617643358065095799663681990253443882184053665579839692382898936569026665589106911504140674986942114913861089911857476993368155643323912874863423624217567594875827054485191464282924477179068400247315571851659333708800725892878126981037856338299404953450106954558123784313532375473828059684000722870243846283393428985174187398914090594040016675891553366142025439936237683129908482600978372422306012414351336966507157549499488446621703849907964368913669131306235640791355338056104329797475448111824074837636318151228386069179101561026207279738919760287181993852005302730660188320716026402669789486763506791939777400390470508978910090645445620740564828637989998927400604125671023716269717044045065045739067877772562134860767879965344375843478178842876840754896960608251228255221713460120351706016736209036688180852084253334329519011863808572843743026423780832905444686893119901180142085043335042561582365689405265747648227560148315945523221788196671569396855914035737728933999417240918988636816316427524775273537726400206472009647317741378625406672182798287685415090723997772255949010910876759602280714380279534223258581942649879137950189266938507904078880793768309511481268054020971321985678757438532854041558381607206811099848249970347927018217396988662399797410274678994760377891498267349983021411095478369337135681428078926430509935796876803646131786382146007626831051044593764553635848973842829028227323044876434865972746971441182578056646564804391859999248442749733847725877927584173625805330217638217504813582699210915905978347718414757323993248861418738451167433480479650369227684292941535231870954240235528488632091683265984889236783995258972563362651135710719118648726766176364536649811240908268416067093535296724063459883392851162659558521451060571715347968882622471990851990869218820321906331530541909210415528035677159363417757752694850096428642210978755429132337246285435876105137782121485126002031639754312053136319238204231002424710472481158793933920666517432446065598624941488283700192770558075469656250987611309131710513137552233267037948663918728112018686052796006996135883582982114011687969564734070125587475859059193741120188861902890747963054781251194429564886351822130822074286467616012594893447651606061495322452307658361701901690938784897957482211543414873553113281959141604303678390496316915388537162059531193486614756523000923241545365574417421682694558544699998569830381572052911460669897414065507130587356934910029715235730296303086909799757142884697540482735111171367514009223223773061845786077202040119283064818773331611118163159225899681556016769522885126684417949161244285413000753212474696814566612840130629608330968747416637948501350817459974443079289151055992179095069731089472438045653425404298079284442525762238989195018480893806693858256215404868778181701127393664014045844256093175867711315945352985748985930091916381728210825991369387548711503356675629931731974619106407686041458662373380454772621330429918235077469395520483531010095397328002041819106370385959317837509793638669774764362769831929783958171709068210990149452078772478077252461639094631531509098232812967170473391860459055181533022958362588424754447191034571882590508997830863053897827121720569387063744021700578010138110330641533440467435409469439219014319337241339748730316740068256810913747135953786305001305357252998378842950791427983385240214730747952659053489186017848569690813438124247483734292092176440447994196748519733030428087529475027669396815404574891753535848122596165707607663955689336708598741658650038577470924037016399066798575181811940842646972522828135484130800248887893320713809374375821979885191627662160259057095387623045016136333083013121602076760836477934163398616888626992281039491980141419282961107514603598431432764943228421380438216522563063055321680258045061089100549763259999960225552629226353076941655227204571636779548186596461779102032483259795446856053030229556971643962035388513654865919161012631365090706707994102989673575825878705663425398347122248209457786871647840150447380451190022276072190389439614362517723858083149282698764850042516460898152882474418327956497521168736283220663802229025549327511321772471211200621343230348777028362677880918086207792604187480954098882832505980203611036817013719307398418167369405678457651339922169041750351421598326464270016004182173581967397471814769683372742085886679195862584814610235686317060068443912048783583578882083124653294107165607705684059021275090299500243654096791407150095944872344357881953339947792574250143742731506089518908065689049654451158885383353187230095159120563641914349996156626931768922037684782293180373649711691967798409245212653438751816427265887641127739506443125106337753771930997305352853677363559135567918997269281235279029106724671849185353780834337404036679430185403435276719224294951412160461238111905344796249067484422517928870076252470309902545428285860143513300614409374535676252584698962451478977307403581319629050995961943787769265370804319888945502212904494976200586777336187823828364827572705536501846865485942253042912882282551971737695990817834612596963124651469949228781254817620114921150459081591750053031522861495194677106661705749006323352189460589607624867139510555567480296496816779804448653328774150991179863282068469841093702862814806540411989809742829784531401239286925891558009897885049760431152514367334255098324418545873255299798640557972837014395939412322194377622221051334368261374669909499513242656219397373256028240038130221762332013437415678668448656222831746559965101937573481080547174039487755797713014369516864748613558395871101654936772091601973314353202219772810117998736099267797765934314853385413970347630064827782104222069212440075167976087897240367786729858910267015052256918249108268200089597351541484324400522089864391296082882626741537878921640571105239553979361941344200981194992333500996255307948356302225049433277075361440636249271516754191478768744417789186865089119771044589669164279130349897968039036494246315291094103374341119460858318121594499543447279004226084067240671612153175383277900046842249767692628749852665753555249232191060402035189946703297375429661223980693555273361272768825336919280764487644395910633545892376091031106702491495276565715818056604460423596641759770569309517950955246503516231065330554483851352257547639156349360502264759890987699977746263725020225749935653109695176914516009869660568029367965170146540246165154605009051536160326679465263065803291387289243603926969918989127573015199559932516311575431161003822866913461607997243358863015729995852129125406995677718689925414668872908849701870756317928461916785237719495614443625558373506107190874699752377715260068181747885820774493841019798040262813409248815091158129577665538977204047223816275096676770228331888134534374681097064630472234435955781958663350868296229844916307568299692926303190447129352076323568870095055808032667184069032369267118296991624864099707851281970596676929051073416779181265017647956659236727703120294232481714469775518081240758490576025259763119596843487319121444571061814799408689607908106474267259944590695813494664411914101700320073360941489663154694187407258758846323789908818393192685052680371138050332641198249908075374804439303528342755937277517121311438566716290403904565619525939195369325894971920419719537277483804545142541444749528415720773484353269193496071839578168652496603953804819861501626243372287065570837766091863516027743786241544515334907855697901632831768087321176155718715013369404274249545741089172004860460879896262585779080414745535608217840424146866558214615840771366806884866761584404882476367545316120639592441505218677720380559187470339530311518540095395659830254251140335272310581277321358945146892889624490104638523311342836092665162399470129023926637612233432104107555049035811415383965132442119946430961842587537544055398064108471151098087712515415964987926704633658538562642142856363577172612619500956557119729205557761986440838572000619974284019399561836624929050940482578688698781586582194363578916629032006399403943919552063409109910069686699448033720103436646425992495240158570926037245546764225756899461826928778757784963695408443802807833783924739390078193329059980073253028369140165629455639089557616319179437108680185652516106322673826307509214943458352216432368955212675318749978417265144627503433667436537771288836285542775836482310972570892254312968451133512818035802356500162964189858762833501768467444840226650171533528425059656285264149328176857238834675313394110597493007246984764742527872325584610795067825496525666808072504038879685263767826839285028537362447636009759155872490237983940793184137540513836084268357426648391398888905640626380323360213744545731370230757724445503977926059229227867860603511422298632032873219220404959571166439867485238651402959195416116725499914038061440356986309855093873720836789963011922061386899615909628522646013852461275607075409086169864043901201490194823065452050436631849227139205474110104200587897593495942836389069320081961131254748232547245525253900726991318138743022562135308356091986514815660379522820933975954660765861974790438009974655569291749884473495830552757818354288962801617891591704539420005696354544498818863174595345697365815555241149684195425693876213765340330009761084029463716764903961353764597302082716002058479643435848378028247497891155573592109314996699614655352595250325836367160389893311149289709242133738230723053706819061235310232830600240079249785298499895620538917609457708121870555781944185033954769239457259860839777150744932373422373008355759861457094875590817508852085438716715030707907857967172497744165263137474844784481747867889580544125413054026614155579058753647894327815402525735884797303368552938689327210299133709434926180630699880515784018159633565819580547143720085087288661530341658822925965766195083307876319842745366550692035322308747715092629995502346488960092738586996859515033793768956326629397974330440469529714920686850416482217421375247233625409783176644137696071181483012820767028973735263417180334250243931070167902058301711218840344664843067139475963164953218229152282630783071673660369829423002700407572907599026061385439746654035509643550438594491308741267048122157765011760243986798066738746474294906835720027491498350345741042938238578928219303387291965267506492244171915874303749300378667283828611354376664144788173952257868177666093953486802831258524533462520663516166182433089094411911112055387933765550175670999424375069086572222696244724069756682679062325568740775084754125649999196404131519686979262961201382955321242676780335944822900756013706069938104902654215184483657621419088079582432189821590530595826675863561235989083216377476729632407102679807656748637257108844613727980761379436072340128762541322451534373408313218030696643502133512924836661426186467314529736066247422564288838403139126758854226094409395788907498928419662602121064415326023011278291545917182828463731430095725286745831825879397597132910250305000191702796238827326421653262204143802182527549830236759057664055121473269885842484581124046253957599789847707372345297199541108387298434588479123564571912954626221558977602224644007143605427730219927723621325448128117621331528387596616393878523310725256807572834980321570617878432625388807045194256451108642940524197242582430249192216772428129716670214798087440234139126313059510662694818703857064865895567334857935137698979011446490189576168899373337152418676629692341969046515594027610821710044716950361291934111889624844785315345846125679792000973214133371444853343374688945341199078393999831729931475639037274978570162932283514228041151451513439478194842916506283867873683275177206946427667647161950606277891513279697907760977033630291285756431665388229012168392732815786527961785380567270103184100638988165469920869757555366564445403654294827160645944885970980927934326015782507277673718649346020876646316375465848873979590083370108157753649511902554190411543220535441382538427969599354463648760232250293694042702511083319909401132681336007652557609695805035313514754982017181892072531897118329093252703775479013872945254357530822199230510237671893183731932755211177697909774789427124155342630105035154799619057538521287735542644091112241039202549841834545338618761650320540308776438242387202494465851199033101735675119032095080509794866074732232062663342766533037527408863074011045983770768573641230592830214599933368271036220887040633518438945134535159998978643976865066412694213225529598702487807311865824866177906436943269062138948985559504007875068998157775323223718569495698875764829390926157759597346336924447926718638639412357999036503627672885316647043667726601265519351844373353649535180221877868889528233545211332799567129762482926583665402572320757468754421924690278230417629019831078211990484884602250344070471275355350886119508640121834124747380997190482498710826385011158300128643982297844162376014564839211033194293010198151712389725653663562160280623902098425499652667770836101706126436740383508485379494655069305888177458943505019485177963696536166695149023899346535130470212227712631261118964669223695921331569530379766265174152465323221810453680901590562393109843741909649415615492124385935103531834749845959239284691760299059569409859900442396587073192542827957248911651801872922891765806940371018029705436132856792696911169560832275182998494496817536621046299472339596573307516038742407044288806634798126493217974092632972356109399849821152714547725525925541197829167765190726304175166821723773116736899348054766312725163663257459624970829036130059408959241922771095460431097059393519300800504423546691474450294635254921324855365141961473263638484659799215788322336533190793558991642740856457382104032642150188427401073958350954908860028055277839387270696044649766501757656295108335444704758158393477621620888404296052759148594765981901871147645059354932878969839989175772744555857416661178350647399051013675689216009268984650512897410902399534035189070067257889335992987998209943271106014300117000263166724554809208867584616879594183801640551513164929404251918093329362474375189510222655273173019969092526483396696463213500615668073983061692719769926338773839514441710694753131362090570186718587565138043865102973303362922871600325511793100369085378294333862348356632862589080192025381962791456422821633794243868032915179443694745961808668316228771721187035037819326611327507991131617002692427345990821847891920491067427319985662693863235520018672913543347212901171754609285146695088172626573079428710300499972439832236370952564209554691236249131387043353408290545173618625189811388869213831219403605736724206188587940705793773565466494024710201115927584043582647282083288909957911358351491014471703775366931494015296791396106069881611154329434899371572722310209083980914156593116126848079122700571320800725391764808426079380983169832527495498830792113028927369238395828654683563044473507657739813931286182752652346625782485947730474253947658699735183756285708055137781525936461621637648502126910537480937725093037903797039668458263719933900010284546155502605229963236029339176939158351197666251115281407485900618671819965731788358532949698096087896870601838104283961787060709367344172436250375193490139707544940217720568929882809894733848522921174540688963255252487990524137608925041049583819340390852128405323507595999570050144520266703832494796344752353001436371707281402783654947210705727419018056885861451948833084003599732486714582344908758136154683387498583451003829105533610695943094143822493177739272968092196860023350676514111469346973684183198594775706409922623523982117367088549650943482449743862870669724896788162047156002597267663877029205861115082644948357049110878232339253389821273346533122956570143219436416105863400539263953014789325060281984255562522801210836166461753287607899594057757875092011467363852677793550874001649371270783422314416796870763361634832448954913716423675918208607510421685353414090322982066644828449989373542375580234628118070648054376738952549303486563242977940227923024889429829657298407080432473450239463085753193222001785724179121805922278709280893779076938973231009158911595742032008744702814679213635301650744905254881320693269121493493981444578079403434326490464640564389719038549279155902656306956068677835457529970271251441874181689674857484780120304958250334959723299352002684819739345600178327204525549450903966111971541279561493194931779883215716027824099334508120780005557167906593909467600741618103036898450375350600167336491256885223608085837488958811218453638253202364348347485804796995934113288211808333958667945089298645285806753790962805443896589984422585081938039835837556151181040553838321335638938655760147561654191063833097210108228777819227990230513461916453347180749642388839393413693014143525495949495135208056078815891560032478489560174487602086098461637032125799325132526513232965661183734180158786480923165041757911687979481915816648238775198827650659044237616253226614127576906747195425786001508449865381322629005691105462007768325955511494091257869335681663306053876279867788133594455051300023666459093534820965873348309731339467434038488474944248194348088980408339241108777166093426207597516941934710465793299082743541884666781563414341074560930523101204481465444575247392846409316282036710113156044259830811551769941276596202832745629440488718210913366082403536548583969996047839457184675472328238930791004925291078815727430377550574674066760047934853723501227906960609434274434757562798448050235800139607776968839433936381522755931775368614501163667684015153748630676103468803067728834977364889588537927772496025290795177261607962884471837884301731091653302442917426760803863202177600650474614272974201908979030041857382394251090697204123527088445283650155187135568429845298978770364358842035697330297519622000208799124557195024429498323941377831717723766759663943021432272092286129955717699919237543266710098775210819537265696805891787456832510265750407061856459801329293599492797676799032341793228383939633104878500043681319157092197002536677901144746864733650676942036110561903808888576257452296845643553039961648378956781323564695776956466391116811661743644876317220648305999248808150144845939752043625405496780335012600851871777822879443231360868835371436119135171156082365403873051447611964519491370001618931726228711427513036329082021670172205952318373420309282738874366052029773679102318740916306294700206545084747587884930762972842520947353690863276509226550815750809317804648190726518614658024869124667917653112571396983711459509572364980656938873163822445598650470738359371076593939677682278557331773621231392393581384546543635093292955154618622406125677383635136157755907263307577982739977292855353822063091906439463009750406972215872096861678993156977384054449238422783500415725021363461738519963182661241983566838424353753462491348206226776256562034438736005769941867677358817899292146914503440916788502210389093190191663337872883450305542871937662700524410722345521485886655019380147705089641641310018154681911413108915344294449922053165241496534868049441262848891340927870650404985771457294134185619143792769761156738252678615433591911256821313306723370966291841852942618045907954381026934021255212436533829100736007113208163587576935843922036143485518487068866820637982202692816235004339048178605111799991024431607744367602710182824736689174570921311979809094360215077306508971678091930838171427419214307133351983113965533956943724638039798528946486486593170236709504525811696277618927460655986195641777617564695655687295285944776191712062482463229746654663660989004884945067700280335344860730951009458066860266939175987511559566993367357082162578562182048356055901131694206375284966636528418659335206222245129584900890044570320892040889577812776130779503872717445141243966272459444893657130161510745754857715004443434349725212337757865857324088063244010929442409222335845358189331855497631875587986292526009881122556612940752197555793125634937016442485590488724884311864375309782858285060895310785948986635678996662143098128753621978250164671876405227164194183605775083578631626000738444314580321599877335829495825652064385795754526207914357574847607359315942291150497185005058842518508963332913355332757062131400754264031498591796214545311217269056921898107327073881929733632627682610941458208237450254653709379455753568770339074265263472045043757528164216658784592218117891825729415732098596236573985099572486677218220415388666805290928759950938627284641127659737626118190200496152599571908293633910584106853314565823141493021934267116239025270885262246599546010437546994230820331891676809805574843140924059795989187717307924621804975056074151889086257838388475569513518364961854103714558526120665700958829216515021742741319071996611531682939440627825995486768126747069527080619254617954854334758901095975403430536414457784865011324732203212365054113826525703050318403520174135681892269675494181000844924875517789408553418793675971614937422707595908549641168751618816520184262572254974346248824082295842268067784875707159283927565861104470655370400650486811418243224852686565687497543624005043568750424531532685530571016944107656594753227786072306950504219906697556052334931530517272764086800371793515126404378486967790636780460901842119470383827254957543638486496911639098471551590959384318828094954476241775221437948677181087164046988796489646013268710449237502354682755732739027551882050835141605414224977686031129042680287166710841934225620735598045910281101140972858295921339140646417805255449887537925998042533283557632325953755144336053188879676783551211679990564845983396831838439471554004299388269431687561140157762862932150699452472059265899200263260598554720603667958078411283525189846260362658305800662051434546345580545738885743486342381031980390175043936505514368767837715137048646473280987735724773904131505039205652344441319865698981566475908816357219914932530543540268425926867892170047821476016321356782762058853894119263001423519521345471082666737049802934511613643975734880512920168509934965246822661645451865819964529279344383555191380323977267702661894883759682230180027907499443576010948652773998609379548561620455204839681003373878981969582451645879761803256925256113618938092708819012849957087043038078813878623396841232051693851025770264017572533584760729372051110297096489303178548559160274019758900579498813774618338187338382432259900098767600987286348180855286414482726487358801743949668375765178548172495919797667155923214723818067636317209589874784949141673740204341011360314540809050635814800326001255446536850437366252992822267477796402545962663342068462393667935139550660457450413726344020787003131061863073839864929303940239144092862517266903655215017998336553156666376905336050073368029483538926011601153133313444739704574486757566636446541569493072120173377302900674370646645981969155926555981104736328568991588375016517183580586519248459379795334092988921609113495127226666364837399744731178238121649377986596859869891778892425827590339040143721701065628757730302647505132515932254600331864828454688300687478479342446209596564265780729969009679640598433121447703156782372910686232545372564806827413239692639274637599782139792305350403112829358114522341624286749360068094898647234626738182460863743079498358894392698996943134797745665117257217841826434918625650325026605341316502017097639658517731115171738469500173524609017073031658201039102717078891908335608309066269351437632794884692673023157311082176365723636751099526201906958167200073086153531700467351204725702635789308857926837842644999503891504176663194615114667295843207773566121296947003057840082107339992004358863026594937350569163472890397597442019112144190606668279200270161498469604895190698262630780755476154112007010055521987117206025440335061085373998142061163148899322046908776607991026217506199161035291709625727008192701805581792619540133610363891082565530219084805749383733282796631641428138783859758527533218065275500266930233550459920482271795980320191442320058121027718795099366276827140961608933295703360140949386985325193405399398102878273045643612109099555478252857993525671316815326270275112030831355853799200330155920043377399368015063385793823972811835167817332660371669027280305512587402298161775809825296532104978163899470053330743696752240060478370127087180251134583973919723949736133341204678980181008846993142264990591889822341192404832205575199146239975457385522475580249029870974948512471175784112817778465704468956916033765891244329796468749313973937084759198576810312756490971666481234742589808105009164624127290984985411846721418846858460288710268989177084124345308092140901218445349709552207260255944075918533424795642065738293558412546796802539814034842496001056265258304873641683728507921757796009911653495365168206928866227019473410828832865301813675157084976715965057879501424171298922833758358718504922850136281162468593493549832269347452297042521261833621144223848256297680102273420162124475433507632917618464000322669089635164284905181798185001907202385366411637407177831590335533232133049706743281036425399358193557723965772635924678833238387050047522137178698701960947801380530329280880527685716841185731961802171831493483884437385118795108253067144916018356837162224309928946050539235961149911778101930096491862210581856783563509090875482531906492952919816056988619364761801907388130862914343273270408641401035074991737687113437633308871328960391832497153428458613226572572040765412560990375102201576182510584251799795708408110374617223062888891640966740136564386874653202475120999920282168669807743815916462754130899238812043747357195323131311118405935792579896161014595075156672917366620289064394011619009676189410904769939734439288535142643900583703825061056315751017329515533099119361321001263340639326203448227134227647828478284088094007430262786324872432822073477266549487331460383851210348525930445497467158530101954012506271843961067639247627202100414906962804659008837841367500975755745344470747108974273071513969006509725536939800603497893039197146333630930092451758298791714942215551845336114694454013328506976605154317878175356121083703673844969117270119080452152754045498277831149498048758642079849581778979395688623406626142371140126368488825202259397630229204614885774962292861285734336991967669775384262559947627541089169972094551962232759998015137504183705424478303199050359546904180508122952740348855232241722158938912746427695549858474070064223143428128995783223538565419640122731994150013737949622216420896034389320098650475411377415335877881467020066232917787748804541009648041185570319930675966068242904157705805128330349443902901761220060677441278768152887733908662039664067039012537616659318557338097346677871026610282483303201121892947623227751206271541411086402533798431043774291785917783562453354571322439932474155899458180013171165291060527730895178637905889165779989539753104228285303976648605437129194843884698060775479578668250505837755201125585884983490712460001826076361630698333600134564386508736742341348607074106254696455473655595394475959341767174514619063090998400171860656231455858162772344770311989016255340675363202502866865599409706289139426855695716992551626175449980366854433768585211247416510530110537221583103387977042563685161136058574073762509597199015648265471596741926530390298181680769605831323409363209206645602293198369699320156025368476430338490246109932936273466388511798925301307556600074850637315973380585234764837448150667584881497176162972865209448049666122355588339973582920444161082692764289528470922553036503440510615370850063843509531566185272427315579879511794036438588518031204294881586652117424246258675496559940949305299385953042966014505048903796442961911638312065531614832064204121764583861470949650198477637051255207148031737400127255835550116709342543442932361443912488647338471418732647539037504029860947137683100191237106028161279231209974943483209391953720586949373204465496477580766152572607524676896629975939735602573542921735217612744032524690737583287192762030654651719015894857705202980944225785069774082527565232255510522506338645328489174596791728827613753140942338617823070089123467397503215625675907983663606767209007797375152237867596999935381977666217210293289712843214675432033558699248995013558537458301371872654996929638540018136055690050583505156302510491277368875520784676232186266895134283150209176425338237027071994657141551503144621817573635716434747943144799532213733947336952406027259283166660244987257955548874668119281382921861371425242005197369661979834796801407136394197584404498586026202748701562651976977513007906790964831245721165519065157290767164737016744020900074799998372682040173633750174256587011513213856481887690348746973078122844067093157226167102292638841564452536958173499251028470924970582288243285269275373940881469020375849176675199091508686222724213956214119993487378216181560714208227584311011566151141914946374196454755361807819318144825496775081421829920830732159611257660916911417191832605851768534171907101703821718547219565289419867781089116650965441392996260782137860450098492430179360226746519988363436890570449108011378256478335683912200697954395364304997819627659993439920742665846569166495457515825327899477391189211158234171816654757962327523091596576292636484166671395749630313168798242196812369977776707325494886476601941566666120682074314731698033440559049059900576433348750377064877697104206665374040306381721584081959798502952254141416850019871341308649560739584116012893006938344603277243890252972400060329659298232222662282904505179125733844865431993569442885672646341555124381961397491309153729758569007479554167780103088434606286373359839089700847181365003816478054191555272586403251275464335764556595939876089742186775014200698540143553426079688662518545857301899632592588583286865611702597238445145156937369506840968951770691278170227535049132085928992806381616212217448301827436679367733488604269358018540451356171725312795347583827650464169195571398727705691352398535848151133685894660522036699041018003285048622586427859259043489011575322631555091981481681373695130845835847594736807600736188211566758892535359922093563579385768597818169652387484579216433652094413235887379960266903215075063156079327148045114180097444107449214565605742598554534742868697285897257073057375006360492098885978653992747425226848520701450456601697309902107974024508608711628145787086487135117021721034860956545701704344728534767964137784876824959654826959193176863790336429467788166529619094645478155680650307950652203989296074039164761217244641802789476767729967071557265037160592199737098802720068757076032665816868433975541900289828031310925883111254110588428088000769500851123704484621230693061286328967579680909067681436522041597390359538488005993945513439057588642574925780778585617709523884789591774453437310576864170923686659178802200102785314631009782914488292013571666623766776234886322535360251489171550939384229041303226212440949302241994614545266253992039570895547433701114767698561885450120768867944534017222745205597113835461132778409355940417034551694390698271276147181396717643789076825569279227551126559799440322476737094573414844305716565293653243889786791832061667709748221304360854921187840312488394735417673248942432782905277238257900510968877120996059270823581346018821633113354964450840529480218593915729451051957795712621839015992829488935737749710384039977591884519874940912366921425490634935269116591585753377807459623093544250254453538956240041772146488455798824816154893057393359374778539574030495006759436108823800250792311437815671183205349213894948323413436214695823731665798963604853036664782264940639046611207900624825309487081218089707029446876849639764972388412621855543039257300095730252219702351976695655575974718792015945673100017783291917701543461869617955525125348893333619732702178741566553758866128779483824201606229390385821678278484111319835166222220488244502231785234126625050990774325971809767052906954316131949436697790814919333624362411142825115415115187924131660803048467697124038760504062504784745663189085962308092006147358018867312960143214046576251449194936117057932779256524342311597248538630709091136041824640957597237278325366858399626841063730103081740678853567482243639022532477787947479083524324497512083688693292098994357115848565423507100487033287818966096057595341573602187862793034724258658589901503502349525164940520488115748778773279181533814011823332844315330904071206981800125340100524396157377787336617538813048126796181888817967653959985124231586791160322007425162504744927025863266424532287223968290882532623591494218105492568657743522031033137803777183003514673036928807916267008049247926438378835019340244257846508359686843913879565331884438468854394093572097932903134485194661038028363726678189724288386862589542636529612100654453276504653773303119026057532051858622829606247473451054124660177570670689901487461990518236173377057023096309905556043852165840446572231575165197029940361644018539299813275701552130311262152383448735230969041578275196105223404301994049881697166252933447939025292369293880983026201991870894890765400688982809781459837891408409969595217228927619520947280183833514778855511067834595150186592041342181776283106395199287305635314250690114450413299613026159811937892085165891483391670919318416884349299692478097684134208740153768895127577497591293069784184997019247473865635600030237923125490017859458949878582858066546657850478245906152319523199513484300381522399956967514665325328740588780808559124426208255844450518340554789626562594628020733674406969381511611653995471591361092256141787637166378987951198418087283077475423358263855646768520105139769521354850594671748458718444680048105972314058426217823953619327901732298832101113646890150731825278788130845634320428600648012861779843735149020001128676522925358313412905936224859899722980882967796027027862527207244330846591957184623291090118610089477797035743692978629545287363759426769483735725574479374021253485039737213607086947431271991791903961757653074418727641677671694698945232374022018064669714706487968061300669064692657229594450757529283797687770352774905213359540079241139377126858226658176465237835421778332460266474241919730699116950150878580565689574436726933751452437541698413653645568006574025543900132979793901680062624395471564774938779871856964025505115824163341822493290526792630109912244291556961183267431266190586779224421841465438794454640627118249265203971890519869950916980555491766737928927850700264019958526766113455538889241044266532087627937846326965025948582030700892861614151093916782351873958917566606401919158517423877751916013782218434885713653819821389642221763071367029481264351572770008843241435815118657255425331896985189980930736735222652467398876751513032794838078328190789249748281722889617852651831467564921124376217196207057906729325858330408940378646554295291870418658360691097226962047240117063886830473125246634299560339209359222901302622857377605806897685189121987672494433922378854778456243088594732832706779330802920452584381905345289779141685654520786175800844662527413396997259867584614627027800551281800162479997875833859119321265543459453070816072301583018844305347440927003942535853319861522939959958535898027069879957855634978619182811917783170796583095530890236818876582751750428417430138410788497200874354057021882207805800577080130758809844623817763982456768551398044454601260576895280882580648971898133072321203155144961982653094826490267211859032077090342198361011132976293705076306639239769361113795959250362227218212163767956569547043659665889646823859495073337985209735484034409102538247211769303125596803961081609275640288382295610254736917044040453198858719725366170099760616648895553408565548789670994285032029471054085079203500333888264327990764095981445285153571278890321346852375275507405551890274065017400849633059097642123804000495966968511138535503042787568204572877375021000877226133618961602808665271686672068617983585543056223381896411732784214018592909204377483354246690153546849199473969084541307043919058679423411854854525380895050298607017016501972184100246396193362524699307591766009439077199874129914869386602809435221565487056868973686101537292035608157950057847418787989497460356948000312719794408260302073677558632263988094929843326897392520563440860114267897637993993086689830411699187292360766766535330672918759917173784147498281507246689392344575679982514108956781894438870959092424474028031050238743951291243579918434401142822116413077957922147559030903366760701673592646442102134301918840289155216070486241892297031776610827854875901869970446961906786983217125592123281554134408361291164669670360655695594527441743127671221118528874082102347949772260311508593274103012905074216597438138922323468627984247721604721341222803955782099101377701214380633706553539292105291632558164526927221987042045369127913581149010008692683828956496135819658299798484950719521204360739359032668877291125308169013528016956268139798319784216224899327141581979341024068872958701418081491417429739326157143316313261942767979833578636542406564181519725871236745778774851433434857464081598348726338061404113718361720913008778128553455888392795933507094938377163077504767586702164718734202278851036183354878912503219775134774675042908215471354111643782701908084492563153646154279062808876850164521527127312745903693711922213473054634030245941851095936989694247879867323438768844012557418751742896805735358491564818800792949327471218909956554296981762000309303183472425384790918883981182257024286324679571978080680884567535613275920768037409940197389459533125243896386444118464820291493975424852711910582130573844863917243654131626569222871699352067757015334737110686343782532949886516014343642232231012250998820774772950741713758248249095987964044490304856377303095579020305571305896256901894793294134600632478508548721354440594924750738433772995419140750318893567738116283241465700900368424037122590943239092323090852819620339460203805012767112057278734657416529472725143186245518124574148230764279435498621265375005314501875973037563107461392298004672836282760164675943541195465451203782016325481786838521272740688653409073961119842149592614641655310683625567960088225027997431495037723873147234889540356773614976623014801878396285730514939144234139096266066649908483731024830198685530367113985166020294180516181092631336975804633676455684605978967415756111233836806036314927355051711612215371884241088611219699182190173705778125528688568148193132812289270836399134391395574859020318961587897236350782812919916400603894909050262008439132879610411335456674288112041160954309667277125561083631052878365454099634476715879459301520972310100138323184292774015814057767259231263503042658427343969784776305313559841159631490833051058455007366997251508061060298313706170136338833531888386748692674783297277314742204106751355037712442090065972018442139530413675420366951218212158822835497295027053121773062389646066955857411881220254996895842986580465273039942031158329243636262329246471002961059988289378589899834368800787889576293196187000754839083966508482450305568942563772604523159407506563616004390009715778304794653274152525468789296616841934880092129212007982858612300790466178751113174942573728981501088920258548161099446702383792046768845185026744618833734269344794375723914621374429695546656710654631465251812151172543319456864761365795439509050316205160120122948748221932882852632269995280731300724611475927704952222650038398996864165430327258764774759733271061750035367925528003237562327224033234082512464867999653691829286108640133047407560937881488869153718928228107456556638393695045527732757642530141501108275497666779305670104740971475611862999123189709213650287373107446087096845607751932380488543627770438854246800824952970232984144413109067441838845246712374692043016387283949677278417073616164119424329307293462492726193701553529139035377853355376968008113916776710652318651016037568013192079165265766585512194554281047852007408911523713101047427214125191967900301052985390631856816153688208373308136046607801175518398879990167205709688860526414203905609063949372461550142188465527347981546638505796887112691744943501198610426929289149683169857301518275533106037856858457758038510203688430666208579482071017984259466986363667589081758404481400683908943579331473673725656683129844185389605351762645060099972573550422936353795857879704591360712802763699778484342902536768372443386114437795190722773520453734818695614515902287457929859705287465921881831305495036247781146103816811079724720879245332220394918341594248413234052894526942421932802944570560255006642601071374426544410497386727207879833072078051679173869297718124196911157978427804538134524810269431937077317289454347000461042960183144954755047415734546276793243030768267371004023907322128306949567717519972030787526557018814337676598633066656357659375436427202429796451080337382668100592077640034449014643001571929478898339011823219110374579830881804788714666689321769962069913383541592835247206510810245398137767149936395125772513833020851521682969475218919279928896787455627403222479413377919292156709147308296389759379608836522981646838046820615494171951504542901988977021831736704199605230895199013494725123998883604736029026414736063621811721453384841439767568920959090744524570099938424821184917493695939768505166066560009587300008875376500666119874153223034948537043700263956890520793152372705298550639507473003059198610450381956768690055461697552333878350551631722525939079555976916267951469187025693353204352432896485781875003921817171899603555482263953831892311835046685606513369332948402054525010209646973918264999024679684105434347565422973166013396412659746423716122508258965017275475035874812624775081358240130736555753845875464462487882302750369350635772653981674451788659832298848237835961315567960710698091745503249173472302227363828956452427727869784229096963540045107306856121663052974645099959933081855577063666799990984798853393937232253281393762530635395316616594772590122992129940451346579539099897622624661768314938612122815110970817531989597709425557759153867168982954294738825562325950125114877099587033640721616166349653916152086173985379232212530163521001320991167107142099003783850974128512151491796304960279216909705129005329286746940460665133237036956138038750913613232836302259888927685278046210102302428727847293701135241516817999550792943570996709168101867052738862022180088225667694754363022118153977214447926530097648115490022564386416115630636978153772485928078919049472940476213803463699145781215669459121638786299131119593834567855442020035267335724734359762356286909442821410439165084889518350958219929579820206998713685596814701812458252618754209304958643234887172298574628791806469148191036053646469680164334043636006178012594567721152016425022240557606926846530501661560549864555445351212794568759789789393565970758920480168565836296829811224826252649966030097052309213041258759609254283670555230429051455994319629234750992765233271608995350234093264907325734008840908452607610928533085067355476990328640951250138957872181576470077240105909178862818500411091782563953875192780380357882234955134606878980168290668951915817374503968925714405954895953011875726416072189025010650802377310057634231311671469920755488006902173456641339131464466284488317624452545526762687598084801215141370281247189629278496633323086440666855294828784581217097466564953843721628751591270094952014868431035076456477455922926926686855889451938677756392604118586692018810552121872992189646203344085838784556308860655405967796196289775549138274832625260692333796698351690676909107758905060283296365979362409865051653963197676322101832728395931870509757795713075288044507067348598685921091028911843210489570605224201624076881439107441504971544858530733943926007656573803248413287222744685184804172320336595259139910552463566847027307153172499732101212047019559998138822251699891471129280329856558507712833375075850264977852784478346230875096271261306641177306706965908470874451724355291352683142948787334611845769687151239927028853261677750954611292595994487018625653529239414182433611247173181411793274163499306552524893795236575020972955433878928879920292994115336619179442299579168851234944069957682376755132482061162087667211355556602429480631633783887850584259514415676302934690217164737483252494260881625343099335846764817618349264947988668147110892387380440821040181515564786177699775359278477208436506543894068154967597161547630037336421159550324595406504056133787101580547933512775806412067321437230722318232434518815228537867593286397278622547320623764534527541273463209411318691166859153495147988674788042857313470087718350052778858707611732540341235124137109655082282722624951091722816864876683226049934436634226146263502542581172007740716637363132523469828799254065313501538125591859864850437685901240295736173876945208016865511983735287404179077533014143611415764873700665912171569882676427387353913339584141825104894750125532111696200183991223823841139269955260535637584885634019141319556173345777305005548930915962778405216648973201008099923001083289511234736807296461118114585694447502043104729158036506719273676383004692530212892808624014190393552330592974066202879797270839550318322929284635342388064906286444619010437778566538098618356549785378415193176839450036296670766032515364651764608732104262934068205558608238071974763114734927498946125995092865253552137673790627999819488551767636191451453129748727355788425471726192637271341719239482725542614248479519053430684046472229954779917720164857524460239709897528000010390908336935410717868416266963323199813614388141911414271783747622613882570322248418213185311602323769618989409984706865058851944081800515177445740244917217870776809192634290776473962475849727259630989816904224629150274299827223494652965116285803037534638607467863753504482456129605086719042757254197128731750767924289883900839815020373749291607217618884572589666413696941284995804353117093245657642942820474325478401393382670309194679610243924855063821680403644882579631246965267199663542256270420404154063475342993049922440564157900497847487242169672741581291216115531339745668764475202768828607877461146673254496803811895362262367072857103092723916833055174441302774011594646100680083515242818992347108784468844762950458014456069047662500508558107346048665603840268534986297407543101737706210023127157074327794265316067984566451028044125591182360313856599749611621215454899229339323032820719940103469630355205398910292304298609777712302015039937456985577982723465070901435811587403251424458072820020893104798304241610363218982559318530621562414850298108353225011404858885917080993054598553894548166305972164905418862290085770890644427732787958982743428149113653645626444329031632502841580510441923279502820567958861467081797107083413186139508418090120803366039275224185884907204099266535579177240686594131935701417510333551144436655259181484558605070658248336230288956039522425103797380296333014095974887317577543385966868250678014822618840513461821226734581414924651890560814847831308770043845229379007375974947068853721907859550316015138735206095095839386638538802049792768979842649421840151814655142870523647639058729797041693159127926812826131138303128514833971437460231532912996162576707227673951092182803809278733427359892422969783833311068865437882401655527775291556567665810138657149803046777403190146205352248393021913450886298491728979586902369986305543138178460900670168400471310379284071406958401541708387960739677042738673934265650716298920872452226525430640831163823611767195920749792953010900417993647146057320788601733786473330002348448899896687288662471176685847869058240313588608021187779724046030134674333927945906336193511190480777515587889094559468437860947198478080861956484024570515912327866471827410817801600325158846870355288721423965916294046087661557355246591392941317498176853237605494563741302928133119058552289154240288492087694867017160568453884119532119325377920192109001996239442415655483902832941933393786777973214934090738625575027094314833431897547677027705873042174236109641266872180730236395864390233414315117463003594463208096548344088212064089646475697153374047256435054746426757606985352756827121916174933586722554234373283998569310939181628199180442420212530172062078646699472598154049728623733513586274553309402073537588852154506158386382569635993330005466211161178454079938268646029814174388038581445968703997253508060106730687269105840235830142560112868357101718768493688735587682774321067540650599290896959150798103247129485979836521108254217936650075848345805214076192013897544591939880080313331456032649398935281999987324893796402710163916480122153808503767906972943121507173917793576744808746305421082900364590473845036792066601939433307267369912511656060996281954819244564998456379513805963268442575776298511510337616345325877192868760128560045547505880185726641505023665133878940559695474421026554785230886214201330425883821238375986534341884393273734890669778682754587854079727074061287325191774588064352927719656775382874280279370570566099490505705455631872837023162644868036530556037051892540584005826746229917852115025847191176402419278941327985908547215725955195307095769308302516542338243206916077711482674778150302418318075043110626940933961503951981502818341037012405208132616520950801655999694466674736038646527369272396226792747051511344549243338248312813934708279414813773405680579457008173621161654542150041167403780086271331629518027151532199892939611964651577862695356744107152740083042534386029573394583371655810137797744815243607866952130990115942158807252344140635250198855412288928583998486229714321839108907763058193493230254964715207950770850360109591791015096150929169223343616069890432185352974045535799406712171928920862128270027992844267542706290008893696885102659638902122119861091671095434905099569487202549454778357829941155139186359618487837279859088067677529994339168821951589987014579577027907220856289740448893417131467539264500973311482183539032669870443503143928552989868104408205812594846068249778543880754964504636717823463157475966567775969243314073871070867663612805763276418732219157614726371775717064898095853041681911312985879372079920419674633830300767475502815359046574691183301043418675983404807925691012915330403861925461649994532313530101440302905116349586252074778933794877801524602098465027692320819934384375361512189213951019910202885168793415952531543414863457320381989100136028286428856920120328116829016193414272266055597424601194343615913893587527790019233019235783978827428863073262634990067765712776792992024799567501598578362225457470381825021099042669096770806726119787758488699650795662315355366066586890089275896140411273351956119046998300292575983826038242753948544237735000219313917153084989977246575979708407239450717145867538832528357551772676752681961331697696034535414654857715271235263909077645745816176774205094263009149600736883960864816760756004389618901195903040199762671862115446096523888097196786343910732886160310531370601945390075371511664172579604908713701548271667067360126578311493829809775484306458933856851861801291193385259453237101192382021552546344650133397448706741389778697606764541767781268623205890274995922202535906400220744499915895625796609246759885640940321549419672589702038298647218022254484975804950256617166424535208456833576381364911205840298234320030597662208070502688462508026600440649502525607812993828064931699841166325352890511570445473493793026225607291252453561292311789012601331688106354121945144472874104578292379686738183287815018460477847311990382161910852509073069474507522998953378284663675691620515675956645720419035009460294839642527303013341493133020293181662825887606072987848031983260318091755248249467625357351357640133607076758388472235840128570890920458944467616973131073051425966209744242241094672132842620818947476714344082114029990500582759744804892105435797105726873688052597650222221946307316836722537594755449241835608275534785645612386329802402042448989545866792845584702017782123975901508781561738531297977934304274402740712158988215609128974297831328958423663496163230150874403360019165251574287251038757018500312264389920550563598580191793823205097715149117190321479496472663927969504242484163482060973256949563068507490675786557082447370157059362530869650645935323430925184198731384482992181054851869465606313119532118549103061989132889821738427412213927058879676193867446579086304364821748594596562523134751050935192281832786828508241644399426858395232357792096929722595162311348056032693234429508283828379504848271989635973278121896072125405363615381014584596601009656107761748636338631471547117271784699983617939345263220698866719285053775260918358047164909906369689417561267220199865943209542379941578153230738511872665843398552562792441991847603407621499705730200516310363533033354022454210153268166253548669998746621402118201411564757608482254327698393503224999233967476302317284602187883736651394758937544634147699238037362206595746329651776895098207327082492033603855721411095303783770056039704016971010445824455171505831631645464621409049992029450481666162830686756043636266621638737211701662652033219549137764164252132919786395701057125585023915914652857463541239929491062310908929314584003240769883742988971441823919484046630513852027177712593745784274216035512357655078558611219436049159703470270506720533321287053748193732640067123228029509786121120511344390700281265064295439332565070021001452866797187637407995672147945923132129028530431019586744107630343333300594257293765827031640014462759460068805993399201597794581268470935090609217960662032056171033835166243801670531309621230110362520188492005328273774938051985894766840239680084489950434284511185903465584544977461650600363667098462600545817963229651709183154318028286151596959428190713849239696403285558971679799067629504921890246218005883636082997431036679374658543403696084264233084091631966456105547436249931363068605593034240899690600772311930298583941582999297585438118321707108124958463053313289463913915573496221264229409446582436892764410130551847045108645488259726759176556062299825908899997096845241097886430001119258034861639826294188234168144756533751404620782338527050402348682503300171433044213106407452688748083689495055794142137216956100098178387637117858198654750570625475186123845966572041673522722308498398156770710729138398957819829293984394723501708339879040358816983305005702448794263304496346639327047211304440712782638943245848904996733224973912334029474984584528259367255370098807622322059104619766996777991751434117760665952155891759370755198743160371019218286467240131796864002127648356761069264755799728624134592744592444333606062119260874672689736441245456658449066987697980364647993638519178236937691141237082481343421046123212364582607568049135270266370669116738871445846140748941120989631356094816164262768402870481445227298385591212817322368942096075568040644908676773125906637236017708540763943408057247256167138029852912614044306363518835616087112834811718644388727788821213531302755249552694809242002326390547453421261964498352723217278597464060431701250147033065231703029381860277704561210916693808824886006017364048593583764170240845607144622956993993751450531124704955775274137746383476943468113932186151188747855497849900828311168707663741508701965224226390802365769228495043419047272264321299775129291358914388003275165145870280018531978089064933426196031390230849948885452988726558435155006714885692564303593258550533224804923933240794370505536096482735837177473698589987354278271351845494362369514567411343953096049533342634851853570895371478488581230209248079320679850023214213520820415939315990889075315740794310504938913475319407774447491612952897911416841210254406066802912740886429394555974866631970960343821561406533390917205339622229666893859204616021402159078464783056536991209794540907494404138264167110165350684592371476323746392102337577136937555028932173169324338829257362426711940026082267810766727161057742227273217279651578072339195696625837651363676505489239323455166070245900958873447871875527576825767692980963614445695051569725155974954708362796078755755833150173725891467632302960855672567137124909878663091695078182510426967311565407735884923783686025531839868588501038104808584180368205609987597755514756273054407168531326427252945652935796663777383451070521397366378957627406124346557353490098648965926683223905541251424558578173302247009958625354964837096605822539695971123233601675045374453674083935498337556035087710856431847133295706589983136403558882576286896330183173843463165406811068565484744853220147668952613492073799748220148982602303322265542436038592871770590300071201651346049992129495907887849102534046847400078818502595294215297068336445560845160534419495030075101398628961826767325625028237679711050414132611722316450865009429659798521201918108151617560978597294404869641454571040719543345004741161584428233665980035596944102601498514575058139897128023960628210492140507969577733389132001169215320741994120569088862734843274817310177972987732035123371426630296056390381656167517867890106930251821162934139867721709079018806725573404217363818282532824178752769154167966545019677367830185505592985117317387978186195553892440000252833385484312169651563385472130826784574762854424323311045748769474768110314429481387767169182169347163167902431067709089923166941398212068778767930918636490035205752435474402598354853639133749288479463022951781680625948004599867033579762324771511989569741121101022934359980565283524424657613172165335608831005205291721893282301269776418528504186570443947766087932111464317685655477679007294709426381672545158269379116696990597733226402526329375696943283901933086345708275484591473922625070272209209533304465760003385633500290776919539149896427596958187920299840570040546042879173509570121691619324924587812716128049110168261354940340607709809979973759089450488060494713651546396145267436205216856344061164257011541084921776219327676211681141784228570587876299266847268032091357432396526251501088590245817994915551183666712244468121885868067852014306570007117043629257139783966392557479696584810602016302407563363584838802806266644697846239297795822972012827261342993615912319051951190607661287779602205611541645760374366979573306311038518016959425924632229269196741321759988299274329237751220713252401908535870820757684599041782423037463374106285769967368659929531749792242402574118953592273704812664178325016498902893819505675640522851409147486111686077998164386578131067376735498941684164496509468588551101509991258141095766998294871211681395701431586408374378724797539950274849035454405274280093696230033063472831781640470332816405669808368596037706911293943315376443977544491515738760677147934670652893312173985162765414273728760058414415353367226623263949049835988195324561256061621333225721247383842981035829823452528615475052485835181671617082766042182379445635816566982079067860890721502104805435597338356439624487467224901776586749865119547691760559787850445718615496719396075917616444938132632352684194487780976546675681727329366276587064934244047393288022532383641853808965633700955633106966197881186463547485512833227617846500954599696902255164340112285415318961152090004354556145933833364408856568900256945213105241418732892622159875234616308652700037251233514111082369035587564508508810740452939702260033501257459394209817006581840225250507442083467037709704860548831269121890432734417527134814942762361573218114359383679753855450411801268009356030688599481240189682273422224845190287065367334546159579988479746177833300664299778920717839300781847568278349741395034014749917174987699215804729334940275745993909122178858010883629307274782376654066263239249699066770037724030387050391787762228548653276860141267248481316322971067198994604109471144244456877896087674565465897684884224425775170472149806779653686321342016885067382248625178020068711953589585322696407764409299378091817360317446797693633272868560182260809938006231701927450983322408058796788696176332056978302763658480739567506880300227509702425052064255797542147459142268117738520859858486655647230339224384628071005080458794163428199373438787183160013703695758036147454908023841441379488914744028889176629165940586823875545762562228229645677516485271772303924784967171939514814299587993659301327472004480261282513815650970908109282011246987675418840409587124795862021599439827902753566860298240076530190457698834465201461707519499129193018130409303482833493110763030158440186018808318475435341726043075702404594201067515883877166350470651939624478268751804591105530216267589837128547830078328354605400441067623471079575737889599547540069759704447786548169810565643450352487960707380634109133627579737796659382087301129892601370245591205893969745185492598122430467984478037038795653098541114073982874478821598648161274044787849294377825709724172959913534582395603750235225363485538160157639651091269351956847977117196129705711393313266824375338165400364012617988459121040741230564205705717811002648280376493010457436473907536427349688190325073674506138286070794771422724556746712989302471315208390568042358072632544203656641815893076393898335946233731425910177148327609755382757650237799376692783660818539657119891750024241617250650429454956983096382954440028031221279895751470551220362343983420911914144073373770079652116671617484407170109922738864115884700425638977898761741825290531201817841743210248565970622185542309522940808506148536204510310981331815031018386802370738851275048879917740102075509282672348610678273645915193279593198102563869473736926772309673336382839054924326405193132037699104611803741213241167184543367644590025561363083640559117455278048169773617439434980207070994132880691629105706902302986583854766966711522601910101146213687292130653881027121919088772646035727258312864056887008146005388561777538815895697231315442957841997338545361341851912592036763987657604155743650804988720427998486369126916978103569268620641392376687214784748983003374679403540454256894276366579626349652627264731539730359359722457660696563441788075809885086957437108865543571063277352530369164559798640875231429428348094552200250984891680091293567766171927911383195163297419678227552550006225414132323944761867575980552468783766170549830164030428034801149721255996118781420217553500146377610346732234901419564463850069696607262987044944432034973189219176686555295349910433967579640793957191738084326371623675725213724493993371761967997121378243819435726828471820934616018076675961961258101671255384452876790779093849145013227536594500076885459706828236208417881753481277052791661441405260019440497921749913802629753139630626793903327050817299873605584841234012494841308216636175332411133406731642591636802055588081941990194489859163913959881447937907669189549169106274500048111327088470058180940586287742539868957522904208388589833757925688186104422901542280532128345127762514043627067356324720830534488910515607903726274774263168183525073675431426747883785756415654864558786226018159336216029681858010998246575220794373646004983790135643079025575381974841289764479881034127935794103333370218228787050659364519585683108691569264716457655660034987056140130152811556484033796555658876438490964197148588992423151949131386939623118776252627513508302836424757143147901818262780102565123264520458953697362239577040412941180211986589858241991923157044688013558767603274711746836508139127827554199051516270999942947507578169072887464847799677477489384548018972585181252741444986014057310829310734691311638991339090646424981102999029720155929182229354448715901868822010306486185904328549908425289917172295985854142543703814985481838297831794837928580856559942062567394065412656952393646517601074711535649088009328321038329751971715687535585962424752654877593420924055025245555713423740127484897676739726356947069759577096360380969236347106382775197255859053671049839257550789766546322608097795472887125742174979985487756925917548760916162031272845563853567026157639898298894590450987244281898338438858465815159817481233662347353071578194587678240579530291935447748810830656548410404598903454567374531532212264422061889036081563758694234921964098441838928925380841708189176318072328411367063018742455747724466970081002828266234595319721740650102050874963030720009945972065041868514900914933032601038029337116764096092928160963169628512542109394586255492480865258563415346314445514753290476332101814869156428036766660841567434044781723633432724580917138608130649997724555175537362106408032440630424897767888951591366328033154087639949507031859931866275130307285715128784154611350834091639353826003273849003904591171607007101811592468484668472583740138992340612890371675354513164215891043611847053186360617872226832588479526842160897609285548685252275337272040655881233880033300576356136506693025040711379868595305741207441188016771037563864679855319467772939946206795560327281243979267055242700605328410664841051435306568683147658398234482851013102672393025854811099243814153390132074403963082963304337708722020129940554926397188099002728054121240154061430910506011611890627923138287482917986846163392844159933661888919708755998745597648547735196262353201074710585058556068164466839547774160381176983016934970881038276259770012683563294074821764384012876396321235297232780913753654209720225023335468397611244600411990342613202784503517689953629234933948147250357201655862091959225328103729428968420791637773035845631214426002875021019036415289570318291076523924959327831019383922871698753033383996953606393322869114045768613010060620683896012620309194145244089439098103801036550642016980496398999195712470373740707588299017276100911509464822490350265966375741447056176422674790649630123303614606750732661212874750578298848525097975914767953606156133135875691310747272876069763859134619368604997981638785940583295448204077172200892575171620129994258229296822750593580923579972230418318194505303509706207533495627054364293108678771064271173028109976498688157341604767204317789246702430447508351048497773474663088321805571459571192794421565116928698488388389774279939606258979564699206013909114350815550358364315340425085439409444110822716471439511965638842451295830090256918657099689789601675894058766346682358558942082080791060405875578802521208518085035235580351371839610976074582724426065731420143010093136952486628777046354870819079098155455605409798819116183838614421326191436345694302276696602495590694767586555548279807036575510592900457946532002193126984854584775577698067961435073660919485564649302796398627081663657897039639629199687602862542573756943632626219677196898463759644004326668614830964404731264360078313557143661011029867002950088307849768294448281460334815201131398363608870075416038914348006077193557898789009709321742223705873995518681977314111354471794494755742732522303910262057204424304147190778125395899599621764672733541145212384788421473195562869500669811922746615305460984221878789608418283239031952924371694839296891528787565481371788720336257570808058074665968354653672544906132669235940067224747405775020943782217537540832642584844108537465627577693858113984653768375871917843571885975307302398780182041547448135719192914173906612861092295896402039952560511394838836108663801841414822068383210344666327209567331148491089393075127017532702620942852825379483637384105573033213690409741624457437294311127878480157374695033796333090480926092730580335353315061275691702843412709061593441473962878331903665893312458639394948337559366763128141675361192545358096622067146511391195408930535395513207033574989730306316808460255909048652308927039209672031706562377369308987939269325057095380417112251132235483357084141946040398069943839773425290369587553938092336218516722500011447946387651281689704471203987256738804049680790868880137818372395181161408195625334098793540046425075102927512181364262302389871570537040585059985186348484297331934055131400734718201933050619335854422415014802641790361193259305430602438411244342909484933857129148044371612491830305909240628946731268729926889488140299574903387145661865189327155834741834002556164170174740099636837756287427136187046175164160253255237335252234692842843585492490033149168304209878286884281567022839171713932859140538860213395184421126314404805345280639579346567609772842657101007794281122376828798639524524748697317100941008292060161618803727478467092840933775583224165109603855110467717596204560758651884084205185704214459841579223964262600937412201549671079213676927655469254343136018886731297045152625091260528605758138461153229133922577608896301806805705655306615816647811594278730273679286453342191250725815790318838257520966398018856445220115027761503226665324130102847769619833092658509336057889557258481359938917127317654662772827445141816965363405205953513973159012016329245593906029659567742568851872343002102383269519528426112912550076781352795244368745079621366454759484357218451489910087158434558308093612580846271654913238743782159171723251958778376092152931949351985196993552250071798604116023546959445349827755137660711371486384760260123881545515141809658490628598961355958631108632794417155631938763887293505851216109248815386681857367463789008646675535416093351518463230083846863059855535161282164039202664522687573718135328765848097028689826897746576939876038070940950071493403114592829033277216012627675950629241984709439784561337429187618028622527767813699532028151012774839352379926938352103798097735912099031927230534929829096781488308279846975594869013055040985447670744080030393263102782606721186643484171403503093901843612529472937792396645646933030482624154238038180983417534007952971207691288463444571301916634814055704626164090916423636832014483420404998232871878696044073009820862011108411054937713870921691743923738753500402365957667342703391484723568514918197980486500369494520360184222365437965762833153846898834408146222030317549573686147770623721907381384137882685435636443139965406644987852491583330634636420940976663199213004487573699551954602911830605686788468337998969744786564008358749478082704679340566947636775455780815348669158466834169099626511829633537313243761128006690092496829127014372308324414551122776976863338171357057144008570234540558432523399975291948636005418711402365836821023576828207857935391294261705495067562727307506114838310692680527825987501766254869070935262651263367717435282104426793123125364530034278392324981155719332167191014869731556221522003442684152338074242335879160131521527408941653814343736847656472791885195602540643849501719990100784214966226130213739730227341025405763557659369187182110482215801284866473546587286311077924264387479116475988620989102587434649150048510084971112788468063284779754818343952990675291238914793556153087246932726967743506302995677238436446682650141271326537346595580080722688321944151347244694060143361394894772469433745835431843098757412576343146501388928657866056097925768663042579472297146903903775810540180928342207649758220302727531377072460565934081774174339823087353498635055737935689625089471161974378556264129152421497530887615027284976774008248831935492884224277164316075846405901359687854728703140534647348090158326949400702405843923202641658221797900929657915410054045440875307481259710780750903037874529295691510361151665466951827463795766355750373791986846347468165563806827485590080482438585122995587460132848221917812382994103648955171782543625174893231758034571253230601320664207698647506496028797390454322899169880309326145111124580305457322929290133035629938037076357930797855145826405901851195616365694925471521139581413824801275552895526052049948871137150130893194913531577908031925627671670596677195624465765335560586569876782422551301168117913686603002851823403365931915427009506708434251916805035912086574416742718418902555531552046508094632117853901425211331892924273337558323411791306225041705693459557116906566194182274827054884657810373163019092638350766503600530313021074085986484701445458926796066427771460225022527552284825747453756938936134699502788618770350737923783995708991407202040120946420370163438009449615803542868320234267411204515062376001070209047983314729835961099930768977496146955635206898167958484006473096521574376764170756726804203336413707519547807961027206665660487118004970148799752422404578691549903068092126780852515809753201368698415282742202859257328844978418511550538224897772192596068155632550436448299400922874288719906538890613595127027717347317185335252488799791957372563902251001656587985500260456582064514001130054500039617082799590032372748142158391495658099080801290037833306136707376429161924374882974333395215243185601154867622120847196266326899853009575559678235444007209062064720196825833033699821892696588163298549888615960056302068500758597229747784876061583079437216025480154673448835815985143848926559188624226617532184288446016865773447282573360421433689188207368481508236543457332183894185856240294031957326758873447344312071158322076604816037429969211125884957825633789005383708724275103943746381442304887544435210733702385204890674958973893909781992657539254345967902993170864363609175079541427007821412157284356403049928099818808583499229244879008249043479889085469284786990742630238605018952676186727324753931678134314790535181158829248375686585055392495347979870737386085714853770800025620938416012172413997205476772761704116447772942897572598291998466937516327920469961902412758095471880921607105898792455266257308696233102965378101349053290183380955315063181720357221297781598688965669723665232346701241947599746196260889977377893024539118411496557618633079123387947713887644271600336007888500257224990430559898312360485883319972289615121697989924602330663246795700208706196986661653356579592452822984327121154748563183384593759884365903565555888656350902984936626253379049124371283929926213563589918894122766970174647018804902493906829575173612014909481076970694132745127060249919487529063413516118897294010151854419390014991806795429102174045773833071617257393610702720375384440989947703239945566716164022993365645554888812362395339442411444750144185069028775324472313548823919897383621951535487732510536226895875982623936121477001650739411981501727009294709057390650569835685785573430153927209300204331549499703363896989444073634972292249745647244091060007466180583345723261458440156982000958303654797599053060145985900867343706821205953996889293207351323159136067358986341460713523113549632670935055486404710295065861021110044648689306020436551601064797210171519573826381137148207786887630337325022500689891045123731623564757893601391417097332906561516485489828070233723934132525146114710797259444991220526381716259484387566022260765484539984961880195924365235772160123403347252171260300772761106037549223724414109916075651304924200715668457493584133953595985951720469372911007920735323397079021338843828234078686837530204728786044565569377273194379898127995544399259158215508163335854308371796234183868989627545324746673619088380798811219853725998356958002241364947408142141254967115103613270106308498344373050499396998763357832420486879427421825887462736332459911568160405371494224395619530714282229015089429357376010609003986114244045156627156738649489594387650168736267432762057403183492701275013108071825631647380106573838517161886814521669534673572185391801395627664589110571319377327128383601850789754175732098410507124265310530562440677368019373189718029715988391877207211049444204169121662821238967508465353285225238773830043882735890249307815908728725550023973805798716115203895093054322470543788625636908418921458164660212490892263824767849198372514967607853937450490825759280512573105983955541850600808831708613560816264251591202110056362886694140740033643625406345379135230007178676354017356232434540585085819406914747089054829435345950307854899879428711715611583457642060814567956012294750942948567185049325723527976144166921798694535175398896213806327804227344195736410936443699906361395201049729701338775456688615981362711918517882032129357726633014695978418691565529921192667154867883526123461235877028108574159396977489124065196945231964558103430476279827815194030980455813830023754464149013214182426687353745356993589509780374707066908187031179347485779108041558662728552226501935957045230363881098758794146033715056478278050975091196131878400520737826010238965311705406038135233140853226112628649294989948697976083976503956928161541211489334340737868087302314384564464905552236107774009647762612301497053602314645017799480655449919186609877983832888183069026979453678976607986955847043865470385306019188938515717266032052613227882753533167610916774870502571905236895732902835972450901151662712823022182348516304975942546036372674629434792184154651869986667108390457677891780750681211131503757955953568200101849198458803712238687844594588573668559176935964216993196335714787430257479585974116136402165496226861056579348424600504276018436595619285699866512926603441187565730752246084624411971269352644335278763609420096256010008124487653193473872958866903394932987361447195251942717035276002053853071531905058919167510117825795297044792076413922645303093107239237996566597397969130456751836663608155108045653298391107711259317241361922419965586009181076007160415370700549789174750190588829429859117876918904153675657420253399774696887079363798287707246260728191155601606950222669677575958253710449121706328844373952132271626758752041810120119444273965999179817481066364223790720039625831886893394886103957209288968882439987017012097399338934708277132759969795893938880985237793780063493477865451854095708920259455479503658005333132441931849947480766090073825665647258551540608366365540287303524527525964149422418686132796440398088795106936266444912929945746789280691595605273927620450613392302496034462457818387539113732957868803766156247789069940982655177543421205366291781372386968946802694253577333932527143392232769265783876957321228253458937406095960634052652397690452766859557976823575035206468132335426224323572854166130103968652648283019050533967705479758357294936681651795420903568972041254559143569803781350296060970258021299119084374306318522566839452056691383895024626430955911579418850016209278887407074352962990814241652350232180244165200009160397841762925845961323370820756184948382465996035149601589865925740267186118884377792605256057363081050404220783443112651062343075805330316108435451235957740915255078116270669715162537164488559172617445216672657244784400622476499984529141061744566467751130727345187963815107075375659789962497912130954481410590380224447931979874832160322749327396055801312498406762784442358198272366687693047069579809984985812204407473457852988567555660567635402256620885441526147053414615465793489553843033816233334484173959174931405225265867577807138963588612599853840660474876555978368289852369146166992267493426761115018524756414673163206019738190380052605851191326869829436469541252415756594913112904624630352557469295743827266295117076537695321626316706998227349846408601807186681121783691487537747153081803047348154963261115510732113806211205991131839686515290223752375428667359150047392254941302272033378560433041529185555167793744533466199570333086700093179546476368119138021746853893933757492654812625214585651018815700510291866639660727803311022698456135616367446507450709969310117922715334215302262576452449096279067698652069931899306984065015986484627270928736372163448729897630691920607791528407905587979973131046878398413150449745270884143245438337500072677328900482568232861087650318337089078508828932634849579203778467483729487741955203024002126599626630798484342118975125725013170961529151200969954018960316608692734673339495737026884754814512397420441336564653457334841981354056713083905172949738642357961077499975272055874384419973670237261642143787527990888773703676501657760890857353917904704600814688425692433506540262896672695770401884662413778732521698993568352346740072479491450844297622832510989262523600751600047814415615773584161141577008322206562600854802810174454231654784316111092772608176501659424775756802611519762233115170511805506958046209711154442507375418110917924017880267599218767755078985754873446199529355174148231014034106537869291431643103194993555866061403266632067427220749244066602899850525000599628629214312622326187145191304068896882421443031719855892167473093173470515666041145058984518556071058412622050230575346999295800941805423881897268186802066363355194289124905252859101068896306180981651498426984801998227376228735308289900546953251034875888350376499953967966679680127940885365550517364445230533013281823946419107737545745711723709822557771265225570301896601361382215086074109161605537389404508275861195675562613170657113603961931342932610726778605769221408722044585549576461282521333170872203778104222187610319416902631214982009869857320443220783771002354403977828985973579887647766229176779652347894851182016174660671147505564386189307443655512770704803572066341728168752930361194025078834496893980344539181984321661135238503501487855793995926916492178006185215634468766844928901258603690225713033875943615698875152159252927411213545012591937720916355615050790268136329769108497758615445128815686328044520743156155365693752515637423909563995918239813969103093782399756676590440273633920389728192312023607381408784344107859651303553986119883228823752510362449340267371589296918328645184049578405136153667753471308397820315234030713253344278444799375022774565439959886056489437145025602465541137758461493479002055143851718423262819846655152387202658765661551271043688761643667398542484492698930251005183142261050739016583878784281592010149705173095667721689069222181778146208689160274254932207124413209759900050772167941919085356903192616896060795101231673268089547160550310297638722526385552463610444508188141808141822803360423333123386301098822691665988986208162420447089502643685225865733228042625803494650538318528530168311692742740277618975530654531038532131748122646362724540842603901644741851919870291126773988043262696328052758236926031547797841110630552994850374543942076844721170203136351156008531339314208247714739258680201805823292410314902462207790699665538219256609849902126678307910780970439173887432065346677904999230769570637812996682842833234341330563395011228168686307037863352567313624676761654219021898897408581569030213668021437223696250311882468523129875506624191275755989143174274493805227835307712444198818561968814580350602383284844930300166603149114533004744840552092407631686112130438028335447246458880756451360736661968888830102083021579776930275853809980865484355696256308694815820141282625762312225676919208468283555608097629114175618398577456923854743702807772544908522714304304428109157683687429893244389685191108259902871174242772612145793335618410784049078213556210550257780089690437049656225207068504857137726591894360577998615102632315216863728295745065577922316270766364041897346893140148588153572047754542529206726105065896306043425117175704312597823905544025212368310505654228663751722183568787222142876504673762167912091153866876160524293688739454992877458633572516006811166311884226296638152805852306260751175088661357017574429279915298410115463576779105172027552176844502850469190666177904654722276698256722829132412546501040150300238641907644617050151151320438854746175220256992364440672974717668174261070935340196594879546820230193142521893830016489320925784728455296846597643822530293929816068377735038764288079862939827816091467901897360214170594023182104434669070353727969662337279525237066107445214047613227242960719031504555948753368948047507275365750247012015253623210025618340857428550729641067061297549018698821874373883951873391306051713776847712472654545360616270958178074282090846861092695388425750085880008919974223968140958909443195235219029327705412650415603053290514345162921116508252403057451132464945452935250608930537203992925674361205950512774191065959061371873504659349114228762968530808933813577475001168298185051108811024978097717896241439584592130871445227586317286834652349136770144276502281304159912526915896681875620409881953924157620584515232869969594731879782831621738361333786022047607577080873284633910611793079853311286626519520551197322788472649470208814276173395430293450231596360355323454396057157767407613741089515287239437427662603316454445857414954924735456542314450847298274438292298519960544861265693149640378302216817170601783002045689904695705958558619906878567209823270481808857042646766127279521512458310873177368352965053667842822995340946906400771962735375415925174455997118598134765175646169458281102125779991378056763425604956423732271666035501105534109727103796150204514638372723927628705606571614738191359237440154122760727133236910598489182199289625318753136227756392830266941018363822196485324099032068806541238706665103350811019692539431265670314283553968627131729244899386987881678936136054175528024476457854887418608823964929549298316158216305501752403056064653063333972136597914599690033338681570839279502178615186100770663252178028413799774091965624176613890163979917101892596144792636410466278970971041421793413995149191997080898817519946406114026952440724743138126970489746055759023667061725825381081690458790628257962903494604221999015745012339284955131765882508822474122914631199199169579620893112182273064020468438442916614656894223426273767336002863648268144771817585273894563376642178549553443928754339052475896382949650225124630387742772810571941961100572252222802306306005676389503939903958438385386284518216631703744504889317064612513700527005326807107678042269343869362439319717601216796233766420151787380224678687768240720604289753702799238879763191380543479060862882863892575306681400781849043002212863440346855784097156253495211282021742570977030998730866168251714067942869983272459628079250595926420964981540274582308436412968017908174463534010171077316796310736510639295383069225733912929144914836935006708932659880769324861376040859349640120483514446802000983845262256493546749276514600403230834233158359258458087727445879354030432521754118384102092199253815460208630537730686451622616306361360259275062904638149543639359818922805282752802666027646884981494274407435383189326027561395678142523069664558050858886484122361188017616977401420213183870767727717025752774482924530344279861836383271688837108327081138387245725478789651684988808301429716344756100580475649687735606887560415959524722949069574833505896600889192399443468827697267718812551251217969527548755605344660554686783167911438127210957390058580497103486568005733186740521999564270773513655699198054199396419669354345963874551288862554037744284863271012819532076294724014403000942126178640510724458301900815698555312314043386482153473493237321410636401356440131219413622586652572470145794951323584826046733704459269848619232512543827187296795257409749074440611128439622830963789828006967968423396641557135716661254799688605852176418316090673046042783261150295018796289544537353668122292757729201322613537110526295781821878814739591444123506686004522870102324896202929302131567843911905505382186982682638472551824674741166955613831477117351554662127616746485136633917168208115719585400905394296192928802447816150599764118266486582909605726786431946952466235829797366666799712930000120957447999695192651607419179472073726098915933073278195751016934449302064861808516161081942146916995350987358257917363775362880400619827901594974759146238721286006072622920514303108667710011598751198849085273745966578291371168037922015353153739479814872217833908050138371173054512173877243056168041793398936298860886602227305878364176593123071264418826018857433365255785093220638843447086169854693448094723720291726486580245273717630766886920235434557976259000690818588007728091727808843341368890751209977144846137444368459473631468727721420471375735473988346557440394805752400683536042661985593700298241566734328356869073199377310823603500030164897551981286188474090355114264354183215802167232357336876010100438204627135084991519605381581162322605806034748857083682370769465476682229127649082828232779096142411366732730262275737559663136302610780919021927818757556643952320746266248108825982748763206630891385796748348263430779611200381668863534446199949019657266121692790981700966616688861349400480591183831953573078190045374776640913059398155206506078801132302194211913971379562419843665332415138351831470632516066988593923733033517864200492970648053573141738362511808088183949355192003312990405374253167752283777494921555070306916929195128053509728325022891278613960125297874521317324808974527428487413883800361335153546652538852537202257853162971685358640365468436202843511849360697106646054089004315278813835839205396467972185856934258448966042675837200431088707696247792659896291588693376212903836639985406946677441229359657124582109724186219366668850323006589617411497826682507538694733922647889446616435750422194257747389010704871595466767139191144983834698521103110062140971199024155828751500457985438943948085455519563594042868512271558093072149677261579902693950883661193711127262788950168666672907947246094609429178572487048937217479379275598215750721080604141426422266792659528764241371129220666256013561987288580590293306674123251173641868464407071479520757903920753932671400930940461733221647625225714965905846340130453031742239249936587683703610211075570780536189748506618626940499416839867943921587654263563667220927854942537194217337356552954355358077988485579646569849426827013973596310719291826978019090783206760377935546468701415032619965240385658933037541488543298206105545302054981017663543702238773641287433814053143046100714244294480678153563747181132166429845780806712553186074488046094706853276407829736297449713720444632985941915893343249955654339282528780502407344168195450765435043686368270256623814604148292907854754813445553149802270324733825298826568826563967729904747083894044140242420233485893165056995235758748851457663379794225991988115665094353609634932894412447742403612387198745933509279265793820576683675824184132651475063709676400582349474547528956970889179585360195380276394466663332995652365874419441539111176910162856623773070664451273257774962209994709012392717413441093870826558760375201894765471324044089208788680826519902707075944910780005646015402430027278635790664498832945805358987452096555573024174569423244145160625135671378784688841276309701046243078133948865489488286570537620954734138375055929931735562700580332055736283411077935289858406015015425933026033907940149051504749058121246622375749486649127157754961220225951091189145860376553289941934237104981285478078403192349770154205791440416570760542446192084310677818365423616999508179814785020809132166672175138493797052307218162350971404908304988710328069187791916066637828042262162983397836305227836771232463752469875950496006199978255217379098963852997405115117371334473908843228374974069156278396918816569808232102370724856752396942911973563176822920650282910556129733193038758031670373834205291498034027644599892806541667999183326406051803484238836702830910809155523236022142760556798242294963346136610096804279217367358745968586881581877578294786787968484131724072199820088438719145796099126570187413105238271845403696956725976188814768728938339198535652936862237667268242975733563685763118844902535459890731173512742063203604198041858681603674417625803410457467945754039932269332509042634351172842731597738337893043842636777875760481476381549666029525931220830854210953674570536841275203721120806480771938359978373967769316244520245636539483351501884740885625780736216507917035576714049958511123365919695204787885123177769420273713228418402977120825292277791796649160374876103264988053230165856206791711928481734527717694356440863827707611801165697241038670790916653041794482681987639240983352372389769320141643619711348511605638682382513124988811463579161672036869758565834307617859105269772469173769824282782912703524511346740263098045828454332534772822573977129326136423636645811719522642264249493721428517584295722088964101321124231144754310255853381133696797995443591025175365989143405181083472817834034502011237257798425926555193242792613425720757493347732519772434122937403278945758876533210561455735842204701876220824066594322272100735986148499126545348039023356034645748030090883347444059925894075327403830158154881883368644116452204014594206574916689385856608354285380133453210207884192563784822995503926845718969938512882546744964901959184550642414379210248607431203567941245789210659282937815880492359404539690789194358805266504436113339054362005422594634098239205180700525664820179205724837381531259807933447570288606178892546945070080989246212294747697477187644462177335718665192909780166150905595434730555987450227911865170642054596512753460606768704025395559472809287363509758031681695967942034706943628775306517757946353146682927759853269214541881784254577897991520655607330177502442023900982710885263302392586131015521502657582324865330178754545790345607002207133518861783504912717948290983268081148969316346725313463793675908355515776434079499952770694939533984979085941228186444877729269632771416200947496506298058730926023496171998361556624343452858059905399390135544797689019892112289743654816002401466256397836255313250482282802216150654940364570769988750027678329172351151373263686416078242599727745263260422216301370200146892316055337804538844838768369512280649464428774741345845506468008116194759763883922604410696446157595828000214842755332842976691584264589858979426925713529969034992546804233135383882031463091801986190458233449058400231397777183308633450833363257537534358055254063336757110884867354716535799612636731772638698963738740900501475404545552758242426783805482014196261918033339014651687927222104121692765457374964562679727491717751004273821679800008515807456573447355337129193620266908876794047637354136357465905028695279244402405650592115541380583949146238679282057495680707552090384188345906508819169414163568719612570178868149714637109217538556819256779135341222697685730443247749015327883865794352341017853868383421220195287107098290422680163082133728141986400781331199806650493671218398384014796201887604235913748744631844244859118958556574142857991629220706970078891628989030806819426675822699243467800624555237149163648224678570171137879073422026719265050725651270458422859797051484405261149430962225532033335618883409710048464427385015136672665569706460353280028521030605559206288923820885865889614511538734195348925330452940703976690554396219605726125046557035577595131089470142841260877560657745897500515347910828615368759886283951682682913008350346703783251273994936126768098339002241749517864367664911954721013503722957348349021593688493233802338994262436876716657167709281268587391715071062496356266811281167137320357260494596998318298380223215092118313185697431883625053572363607605600012234030147810717252803572750403816627565599015684935857614210305188689319387091753092026918439007799979607284256171475143916770152700423351227072458282834486114142874739963360112347081213273908254856614108227608852275223698985432417606856600682828578890022770022649843257718855135132445598389428889058299886893170824470322237374205881815474405742929358300058693561300792881571308402127789304144635279030981826449605688976853497319772332004323522657140350917871179670343087672993616950436084666391522207298558051613901158780556461201984565761387003311687496762439922138001610968061473845664194450930252067740994751058967923388415645254079475016708239564681868624794026532759256858341031165115278105668456471659786644140693994830933405422560120472477399861466577655635201490333243224950023494067837198138403841530311804908314702492576733644733284388803112991682788926674194822194889561403237298117152399894029251884973732307170736725019262590422686191270275822183079023670330813223921401524226846352546673197894899621164972742902166211809614457506850053659034385509027895964710981848319333795219589972306711098811471471977185175362253153921006218102963737354374513810051692267211724920357626200578634908881523834581251475757587123106040385072316639841853665019648788667890637349445619914243241571254613492366373200567912017106371705862653410083364527500935243047630750289755921529903704776392420667527688967086034883006162740332910498984563188496470752850987596753428446912985289701624025666336174135072623721958834891511209856694188691067572453526378166898030875127598402680313496222794402753296846724270115778507639074796728384089287468284281663706090120228826669540423853392855516586938715375362389188160028782570417238272455880794594683278091917922701605215112083226866202003630347251880570127001252464029468775009388774304270479505365202203046534755732697702207747688676469054108054714270884906974886512917383616275496787241690249610748832615244320161452162525607920102028696349181135258055902413130238627223622640447050862632434888009138649579706452872842138504096729823712108368156898750606956185486008275477760989866370788740884016290012820214838051115883836306932497906364343198169952724588325293473519140113765782303393262065272976177254825974716933044586816689917872041047513855660857179467807238074605908995488149627215160122545778155612275755621542812091569833005538705662196443615114402242214316541199808595260667796401533753977111583106277880129055883504933040171604686664473126900950210175922143268172995493062651786480281359580039931168550718867964255898294285858190928025349073111467953051839179089944673472772318227480111144437957817595132953649122610501779443713104806830191042087275201029102273359482946118018676197991381942795567369476254408002422012202547235587690285222113167227481740457215331573701587546961532101355709203196161178177660505903172996311393347110997797031388765295495996462328377713263606619586894634124342535788748824568632199883602830332067133765425318149188934304684041106705485835005733989209819817789172264507944829391958819167256740030613206336689987014764472864815233119912613791621862260123850395927721389640331203279236108881775463525173367559242433374497585905469086085292604024362636033073777306095415973013905962755785721102319744465219625467030347855706991428865133172509821065442053519308030326679806681643573411356062107928511279926843008008734543855978336197159212234947446323712496920814001853660601578211067702303368949725840784458652803568365979891316556667683747787834711334665570385269458610959056973387654274839012211233434813435114251177415893960104982725205251049313629333365858017795816027031782454762331468731924487131965547863868036318558502102165096318014216694494839065059019624564545535936347745181439482086621705527982072626376585916466699881308006742243017603220679860890956475600460420333701340693461020979327372457241681337558007546585143447660498470313525087061048234227396638264099860867220826543064881690560029411568582860190976624503028953694848798237335563499023756687285235858364835402480250885531730790602962491062990192535946384419056223439269104594103293110376076831287917006135876122716909524604736989585144869949638133104270141579569907447309340447749945730080889984145999426830695805472114635482185917935147747720735345511180692565451318290145358077791522810803640473246949015856601976076235715136965271443805045973624408858182098231575789736140650884704944587594926548668131755077291880808927170717397783337251803897986133827888984778000585362097479110519295623974829293382743928116579501908822413394460502359244862944019936871523563294135451010277344461942990999676678295318328464804889360020270166781924378494851682689571470953286124498258470569960443651758659483362772022989654781005151634099266000442301693631732434313919256929292470490907273091522427527183923760288938896149739151803660023134463122047417998391490038883446477529599164434348142488576709813765954301968849642415321757680647056255331619673372264074402464410640426675553671088157478489881543900885853614077476332277110191175736377978201010397244730070751622562971120391154936565318295331715653558552979958630182705791258594616689890246739392163124688429848324922208759107476704886969938255133977752541942533473158309222263780498568187890855046602962367548948630558942851594527475912399565524677339593545960853460409454466637492446024786006610340224111790948573829837935036727568839570302626152640586005338573896820194482395835178972922957039293425846616227536589606380859854444916311423360063854639680158163521432993421190011325717897031146259275916498065251459186648214749811858684315709011065826238705358634963484026905388021763711864944166545747873509974932648375304150672332087326154916369847888258758278881603353356586145558871228693729268025315643240556499452078728557995178471514102416127179402267913560024072508272812151319859496915132389221709517553627474188365106749894849963300652213272362433734970683680459999957689474559334646915861514395881010529642102452942642689133768764923679287736350808273975103625938526566669437291473947272099808601726641068401521415031742504145257768078631789042337820970220779962648848172516155895648994955252128855111107735018649386218072012582963070108642434033732076247773213498691302225550082551271022213574846406668917929881131647928786420579430339014275656551495089456744117813534083095683322650627406134134784764203555310343813618921055271753568208525715718322713213048653424805715609441261660353484361793253974725768536328773940826406476476710367536412006686693347387208042861521229275505721134351123677971738580472347100196733922196783218730720410679065743574990840317889233199637323202810866332241010143428959063107090542454497691070621005507023053623435679082843872828253495427861478116235072287016538453470007146582418436189865221080678681750571656496591983717593174853770865206085479721467641736787283806161420581299929084624340929031376049555666346881592674825420422142907408044488521220323820226943543492875862378976537080596197471193071444791925757652744826684694331352191695437124730063760652068710711114185440770294892162410577564758111077456338718278258755693538204197743357019467071144571120986184272926028915939948233867979215899260730258894168769210517268665798717856485448085563583798485859579020619858301446881745699908928826559138513307739085465506331461667767151433355566066803246625930027353008863184422375871980472012391022950815047243164665478128819267906984591108479993530306104899756672904474944082737552237820661389409908674432702407913692003942904599403046360577845872884602017268842770490935875588584476981243165246267617289038889309810699001353080694215115402300149894185060624340971928693990642660000044855455597306394780677012928364942970467463050234334459162768169976965566051785764862160592083632870718833251128811608322450788150683885514513369435606839454985882872626169759367101672686854676222619210051560340127032952070630789467255033974218336534626883067114364608204957252148751455554510046940955118944596169553807597853997765637421243621527500046801460425578448094455058699308755232163618034309846439975293164896183437253663855067772411816281701586753426475587790070666217923565206535465632786163297377301855561643432809514372851238447036848666309320480095904640715377233193182580743294750774063328561926695676824273398393421361816787517020541678066603092158609537595693548902636376041257356635623994375267038522974636439020380253603468901666694018856896244103920753978982066389696885279752531141149946142339309951734188806143325191977980098350107638582382779964203830892063815606520432221936895965792768643529803571435644525631643605365020121202668484071734079658342344796127652410979895620779651353530447166151676012036291866352722066849982158995705576478818524056686098663613423578815700378670898986552221292521608398954658837639703729387745352158514497179165186599380085077533389247340438287964585307928081433241924934515031217537272590695189838992949443617899802501384365786187950185265140126594199546310153575791525999019368782946118607851908461799678733959390892703386551880926181160970659434530913027190456090054619886877539512850917951100308882167199308428237502672615080316680383134975260228268421364281063636094934160800333018154311941352033131185868570499300161331455297545478515681869731704515559986211939589010396396980918636771436424970611704883790301941068906076306199712562793985508879389282847995498976009159814848554344997442534702347611386737789136269919903988066303828904812125645178916888027489599171824338058313900559565877545922475617708402367855089988974252281852603654585772297595165341604274617271270126591852353741667127554034091728300058246561662710124125715483005307257002438561533602151356582953368654789896837823757160680913001515602112170651355759006067680944924049483720917999626961393968878601263439065206321860324335223164989684747060518824740024793468212254855613338448980560730771836484094121964977919490905751862281026446178500995097916748291598599182629889637323697785772906738128570710698766143237959493693968649329064349901312649973749605939733275036996565609733636676498327981274140158402203224095411872475468403156213749657689547572701038321459968920501683954269039170940457704606694134474600169071374594421778770841799265955714143956950220930003014082689467252089756380920651513948493953633403674264602205304938486639806855784241025805560877679602807552576971133450038841274046595225202299387793858854810037363753478198229267537540153758677924897461633926595556370243278987942399194516756235488701344121061049772544641707447310172565428163968221896695784821718996464608060972118001177055118780575449478023251388176469558152493638439034042526457022365374931170725995045006533622189132980211039502702056563017593445267970335629464116973630744553579084506727929650627404889786997679754662545881985911187937632012021822925765514243795855745105481833393722330741172519397592892730830668566810964847184188031116890115690833949769266159956979650075649227901926762327697801290884954128385234695813290921191612674725080846722230643638260439579125450333853059584155723654742750763159003738396813004152294018029585943582935574465315559397307286854016638982085748406367840436685483475340289498359121386387804486504285753714167488055792945355365129877293781985847081625957000529377476116526186859656300046146597655221614146858663800970228481621689789080316567567876379106562084257638922401468926283032492786087170125127268239286209535864764038659386143524586179694480954255934841041567358538617682279196659038653067394058163982020307478672868658313573205353182760765544130089327602553128715715860165910365633239494112292955506870738002489856216421400690146453390325072993810184423630255953591239521725247855270203296984908308073764976909462843834191823914218189536030741714753111941791166760627870388946742006362762222684384118249239880135012693336905525186661581601363702837005603242519323417108620958219863777113472924947781512640150384509959585291908595413662598364934242034524266347342587211681005777683082591890028710496801669249066594024593161015559522391481046911344586863909081355155121476640390530602964476858057709763957634523420328466637405837245311762796208688823587095911212385135815398544639240596110163933733070656383355384101799055180884933281023620656547165074017874624215011505537536517457879973873966770123192750552334263760272539515966400663636560617885568854284058010856386038408747790162244874265617660058265853831536583398757167507718041221497309872396644841268795405174010982183729919642454014104373634819762236454065016914052934874160972195831348473187277109600362219494979002670135095823733071516557887621109366728448805697837045809912436267699430731671252308073800915613632603255961433898204409418070407498260303103222066017329201968722358206255797575705260144808736204351572238552547062411475047255560002448122604334948548192754841449613199039237985064395549207960164959888520635101117827043607361789793875860305584674412204325767242368418916135653042062407203699057252884549992451713583573264076373651996634158050838314619133356406992532101333022349476883189496530188726758965560618021476427174721200977153461868121910909393482365951250271788315493730665936076276998595106515994518906659691271830318102424312691591073640042205492538037025048449092009308912521047213182035965928676804344314735002587489674945974666607730733640082943578554599785895192492708837214019119221220633978615415585887522142317757717551742638981010106443073957463558884966955594934992582755540890594403452722115968105490028748427707508200770114718747729270376572033344706432170282808363409184678758385905837101121268366830602219067786216939091202301492518186825876271228694292219019666266504653808254861386763759725970370760617505429766195604436078981289216764865137806655576054855248325049719259051415238434862330939548542430993432212440989611623427866319615143786632297159389017210468347952626276749241878404304489062092276246782773571336087630231695799960138682235347846874470495850232191712705904807520123434334793187476290571723465367537354965411682036918420122276960962033722105483502288631675057958074301372397211166569520055429957926923073674281814765459440219671281393876888326225430923250978187332892013766668317282115635859844617549338409312171808902466385004214706217006129553339808644183076261364285213895990698768012033862591897894539708535965142246163049325954179233884861108843629184686405672261723758671043539514127697734220947093642774259720323908390347076067190869294426789768341859145931178447271529691092682925141514328000548871370306866783532372401750104047908172497543832526190181212605546036309375062066629200553633972711077660295184698629028196966994816634030874428740238640413463759141467096979051402193989136557333917811855840433002462657822120324960441131891315565193120501373190989335064099933239032429936869725194070471948614158384324911823944150714264756949504473793415877533508136750232752604142133606682067179607028127240825653732300847808666727992608257200256632890128594058860466765026237417430222814300057867927724907089923955272654012901735785610643794278508652013443776664024103329319687245249310271114123517643799967800854792214424085001536099315799859213976769359508481692102977492221043714321244521826316078986791347454284118142778170655865115208405113203351171039656397318223912325946608139486875538697274535379831467056898374284365077668182624834768468757936460474640178767262192727433963800582436204599218182334977203796726843712833120377539087093766681460017630091941309130844194395731488521698412874324437515819947590868864394218855474735975965281070700229871886135688799958851051961194035139164233527071058904927655322640302089267692907074875647694400607832015947107071253694899689679925901536909842182341114459770369126341667920746208500903169664789571601482803601836932679073852699542045434623902945934685905526412715897196798081762206623131345199609387145274208249842613192502660783905565337752118495308839296205415060751128069893624295976710070606391885747084484917259154771263388361742752886808817781527893414956941757124504366694754148194885267368411086646170085828992310126810900851946484059151790784730223874288080085227048651932673547097359493014401977194040790733988761977080333104166222375828313816789845670761380750294402197424232264316338339657653160588608377421997161683075626836155676032480703573509233020960509090983616605607519946304592933684395186467534550398660915656707839431966436339625114418471981756831387783191839681321983915237167824542819914762894420822942684149960820186641922161612021304107412824158021116487644407216683031605180034571488436969910280813634533699336148758353759335580573024219033558759046688973124787080262958864894359239676335936315285260823743357593252355227646979305783789909238783783548356257186449179344246902389501254253176760190339682635477279980050063018901560260503378600949065706103222292021400904487545783457799310750877648237480170443141842494000256872730179164957891988741950806619598080505689713360742147019893831250845456276503036153172727659646231490982265835975623188782358824324761945439568844144196145425376806768447362232617227276578388339185682353947462519569223102038356772617783998013574915147792501327387243931586943183879153341990870541449681651880893055872746774274928936395577218651300501872779088007907381803856050705833218446886298355480649498300495361386342697523202625255078349992136126806842129793102941335868981655804396776156690137634961093838784636074533373460525384467006289675378860624249673508594874158170057292422726289667532019965618019324560229027176819886458508536918895635107065488069783062497115791801234909519338273876695514634336562060133432498216140535465070097184822021371352116801698789512436273870211951011155981008722338140930352492230017094629183176132964409525017630657262357461005368605111151971227721262684582577552477299663209253350920617333088989767147539883654816230970853053687442224693685256768025560087624105420233598180147194182960964468603326893879610262299936474210826278042774211867464970610834589092955078114122013851983903494820360959359292282080596136300297017219978807493904828348095374295058809919764804759862055259156296608644134869023806587430424227808557583896872027935709711637385448233023366699221748548942472523896409752222249549017466664762148979051170398295021330676015708431528590080222923955781389692910342754034657516277120189928503695691013260911804233694219635760111212555421901591255454094334943312001885193725099176731698245896338193670065173686416968076870103272765067819156155910019593034808134930601162732705055110446271247170831988581282255736205487121432468305432151011498008651979970242294929537159882930715912076581647522949481182367631022583124696171422821197777309307899077861896256764018910414638446981028046310738594684209021563219871296353592669007867078175996164932228650130936796083700019936555135459452573571368156864113198684994636191892015708562927281353332321474476913039539855280442551134756440246602968723859782395238094089034720059258059319227694260684735158658811118191892524026847822819225938734121064015071405744406055534904646948634698463240152262799725836507055783720373145006780525872377373866835779294324177664724987194604136311350797666562835338815054370482820906643665601330573993322450195954052814010401698211977210629778952986305448254654421240702387337559061787484838694519693928986588335736616734875036495602734745598302239831421473033805660178756010500199133886221609569159943611673950139575589935338380317081540837124318677483769509472796038220560779266226154788427123218258432610986363793042084088434621117706385833150104506824184638256971350104981900837694461634110046160433381487460420918528231086832548765448142002232631365124271283618666904689610834806688117187208077006225596462123548539217679452405689391353247487010642669316272629705736675406751907550661347415820950285455619905168644535651684125915327819797677844571599948125981529045839653697425026256928117735307705490652057770237984110832297577749197778164165373596994614316264489699898762919686862877622471590329816659592684022653355403896022622755584085939272024423980104232954735988634232981569930675073418506164761647388766439029803704772096100915348200608333784001802377777120785326093673426546864801109699266110798150675158291319555487187471223919249913730434691275847664096965049744170154321696219337456748133503002412399115880760193583910540718250924247477883769353775238701255232716184480444448665443912331110386634059002675944787731784533665340841449193483756437473865779730485851067291271698550721617928832582365964091000393956838305765201154632034124745875161323011808485841166543600921685575061437478283567222872557855160765866965584769789425988579268354104940051517316113730709109935651340545128057855753958002923396526109648617611458504745158190545292217151580713405628029997279547734266138421250598190747410750297662408561965495742035278867937039307209183356928378107976848380275471107085202684445104596601660725737511836901509817817699868910827565079556158204066583739143733159333073702804020649015784282781428007804863976235654379149313680637193338836355982201009820873056286601196315756569225217917237697056940704728483556412039135856629722069590728666426460290949289277620292035351990949915310394299686408712247488849766361510538338157807966165678883295840399609530777558145861437235249515187412185367857828938900162327282620292969485929543399331779057991889981895729626670581001307124301711747600239305238965827133055760827826666421713595342765408368799075220599924831972336574880541521969827182624849292078562998094432511896239523517088245083034184047317154634201311186384131692524596215592609854957535817872042067983850469754709741491291572527254560557917838517514347821813528417401079122701534040566739595853208341188950978548913149814629769771846405018727382514061258700446312836001000254058987635762074937722300216236570465871112946124589109755685278192466745267445927794901062494730553912204409723353025985985968085293197668091894961029587735557079245565053953383072123756141708604443739053574036701684606240960603491179383089603179067159939876928100890953829552851382841222441200522764948015623917437536783100654593233134533020999709473491261617375126150071058705418655810963647764129091959796192861617228354046576372695205532791030886954013052990931255303533216527741843113425478495106505159921620835057328088575240298134015049701978917313037192563562188619344847840326522104997519699014546686916269272452182294429234923957214964400590410457270419259780819478051301022994592165111885575086868515588435135913322403601456058388074430078389025652834058004774016151337419637770060154884335119157027722190650905674392582386507641249847063135201751545801837717816976327155840054505049491869447296049583789299922084768741059589610664866497336504450916490951412288356302919521758696273969004952676573578267187315517998590241933119741654589657926461172490477539370963607212954084527219887777948569871498800432767936484899425623570886248051545944248640647917592728880586171567051706510157220344611355794066939164782784388350397948074913765415765912502843394221214984413226789076291171754646058622224091566697515385113317784489084741119078867580554983380368565935027148591645490473337875489385708035905789306245352311374312743797916223862719928337683364441140813762440280152473550795698592841737119905648307324392975171351257537356256219770145462218161529337193792674532936167402739276903059168035491082261174264814086602006598584782816680637481399589322145599461963553564298518102186525128206095608849570247456609503593259687594231833738947469976261248378411017553433647935919147552414236426111303182285886596058861426045871195371430639468243295497887826843881111314410156708026903561513953136514082175610112193505449013602479155607003480297723822244779762185563240281842610107520676291947004956147003614231849987119877655445718823994882111061667931673218741508234562830717815171804615343907219618632099133021011625927192493938038092342246870849968209310104881901433798103426958097519370953575095220952246040760867012359640249365708754340730588152139436787728972669878286125392451320214049606392916547272412789062368697995065198856211552251905197995742296059450753428654270700585303757836193727657127410445406950532465122625823464937606635599828986925870702209441016729081641567146608217906605390675130512469975500475483525541666430767600839807426146160909123764834910910525717300726424578865986578764200374666591809426782799338120410269137004573137319748397948869090958860777652703975340167385923698821879598283512556301988602849422757656224718771900577831564564605583538029202937509619969525802357241302860368720427434010358240211036192516664799801530432531235119761056064916385436331088451734229795290216485521857113820175201805596987191349458543931439436789081598090801894929795687801206059571565909439129575109362372775579855668309289014147500457558142933110936552640018715661261564406702933730088244150362186564406553978809190772708566278189074717094475267655559872201838233462504813162646200867733154104170260574721979430270910388941046616992958262027938496825535452719483934820061476357204262265755838451551192676179660754834799866018891610394857626716050043378018478480155312245544471200975703810211963455365955451156247614900613524888191848098298841812224738867120475779871431204096757416560044485460241586568862028825321677232739608132148242386632730858326967205327580185201251617023353063892614930948126320755573938566657543078904865418202744523283894362820848204106375625115767582312229739264359946800584946120295960718347556911012007886772883057092420648611956507871887687428343145359330387253328427705273497628594528915006508357332455824461373617428716880959732844816185794988999330234234570375049816428312617342472045146233125531889832179656409068013187443795356495146941456062980118060868873385743950405012800619452009000786687107328945939018989315060761868328986125346358357138027381508037363220704536380569658489153413145449998233257403358942037764835421704508856168910161812498988855121960580232685734749736756340181026190481636052920070271330628025838137594036294045620567185179841695835597686361738239850040132302400599616476171234639813473391957376068605155849798723591703798479076454287346745060539298096917774042882262918281007475321059962965867606923056499172081047036993185844922073672785545075908951372739251224113333764283590900664274896358979929001801869744782614199959000963400108702073290654466055422643451303448649744709267361243880058906648068171185464676282982065712671395575240921918582029452255459398334863384972629583321795789686869962336007738721592564825838816692944453178830699834876266865272213757469241277399986193952778650981701382472599584412051068876136443825692711975214472419914810572126067062590869992902760187565285524176430169380727679163832157194568376331460163601931302225856111421709253766920068537417736822958873907338354647570530928573281340484183322933423062910158760261896083658907657667290432056943197955865335734109892480212663180904131205119412900617497015368115035872695782459455153898560301558947664774849941846993252615210259009109420592156615220730179146528962396633104177970622191180168673457195256559098602565234269091994260746302119252274742290026212007089243411944014641803975596100746317291294909961945950852510497079218420322617266538450481568989832991346108598204153839339955043382155891585500047942790212896205678480664976869941708071132063362959055790437009372060129931169537705428511456223674190509349641359241284533951941358596524174945366014698624051386874360405809382375813111661370673557183158390977243985915158948558573186126618204027900605204680307905781465466072309376246373499648538542770577051984821669401718108830979857787415280155529057159141277509950965670583678050302058001210341103366441275469365124937188135016456752330826070756820782416372505096489988608911751192851633711279230591965543494880843638910262989000219172340840874827486084524823225456191331699052465822532693336563299685679218101105315109773286151692754741432692085578225267073740999597941868093096710929585512179918202300205334718629556307273516332052999361381595906555884172792368683893087488917857032396116338314970535629376343129232279834548062648975940136382887484163723074993622172501202653610159472726955375723896804240118035853747053845964737824449397340082099243142218613918238001992141040156287441952356930799859505204815412400497694722529848738055265268860233857743873677814564092968523094791491328388260300538688231106794704487109278732607764264510136166519136469929411072507543939127744988178808250602978764990379323178419272050079519190827322455066530290372629395886270120565916147385758526016210930020282295928795829964900204294674053006887864433390125651768123970440509462874024404017275808051255616450921310622205927607420957530539452436327113402482554030262103515912948093382130308176846994319109302760597337168129544328654836240925986114569449957048421018485519902743884248577097123839221949235219816140258673424234040211454201963958634137508915294847163808261685414438986469768975795202082124744077965087072608660569611121841417197468064510987510598748787746150317781440082165489839674745030527025505270783877837177027229595876768030182961636790539261873651038404860766791269265001097693271069632373697269065834580943535963629321588420880627455517273361814785347469001559515483066949704404661651363807156763313499597985050195566823042870864703416974144106172746807027650382074753106175049560031931439687217164864520034039700032042688802143795389334390699158185258829686031474991962078127695064618785610784355919332697075526913790696676693036201059490091409658696450640790362578259045289407213597210593175995852344400129803900357869942840448586441733968257461041890062224722435277593293875307202804151195391561405830781653500508558957894043353573130235801010838381445842625913668866013781732868955640245181656927993283981532905948829933247898497098814635424062179439079727221684998850528821047920714236157598495207460237677809378152274300718341542921395221532786728717892724050503256442146466497241634339858256474112661640980634464024709071200537458771982878588540889799958695689383593223814275698339635234143207258577422977061918233538027279665561018031507988683929391695802390565547508755645683484649307813045243142737990285227575748754898365015626062975671980194803556770873183820046605638629760658396203968733275025660313429321739281008337333766577334577534536175732412511219296197895715814030128052258492220198366248234937052705167956203869466032816751774277482647207214199831223160649302846067887441210999704219025359675930944717618627481397895494319909158961093966639393591041141850069351531979325952326683219239204529277159703997186310612119720684116043816696844709806038243557091470357291293556255476634135692377504683601268698643601370635075408607981074251236957699023357716485438563021011593571086967168798103853143893570224062225027245735736505808245866797540534791952727103963880792508602272028844956000934595427094209361036505686653416098391861474090024448179162284143993939051997993773963020969461170014460396036519955231780591313487353497612332748875847287201620632816964329783678351538531918620122055864448552888628096064324263363047990199178899003596300825914886955260976743723229555777806203057625585700495572784698407103380850018658983106663642398595099989669733170669758248836274148291597294957714145418874727119626647602674283468919646137675295616993962114422950568273718759577458784836514640865535217976694446209283317156969241234190509041373700714170114076026147601872290264914314230590674236647585199163541550671816615683035813133677473943827943081609239420691209512749411985509979576851923324567426080079573498096418005510047615960521979628760127625410887300320821232662994464799687879025516142259977226132500690463794769364059124372826446531147318750252600366605997668879599266745268088073376826453465649277299039842401660395265271230763276007817512522417665878657295956187500703405755799407285138764150284553285465011369657177020442435366651341695108366624762850016636781656415402016199854359514218511699088189896622923120528485787274931416431544089904409790313747246389758988710600479668730956955481595984866876347139847332634568146904301948695622602043405396712577731086093886491182906845653235003114264266709554130185532845362466188532011862758832882260676578195746787064303877527192664775851191569595772515076382215919266129721238346405286555137679428568505539719685877223393446780684771744112777585241575169229047991343332439681283775951842120602593962605422609657051080396764524071828671816356127710739573605616993480927968615775794487679933323880916263068959977806171698856269295704737667410869450007558940148094764188243335033264706167130960213628287297041750003403308160732487405444290825713870387444315479575016535597258758769105390774265952116042635126290747856465291711978450024473111301254960435539162636139808845863909304134195936177762878660234883897683376653460102504806811079151888795858204906387544111047993051006600778460418803636774957931586534203341777277181516857090955035898117517912000240850132990060606682569218738470161631284068672048814289656632868622772367472708916338599435728504648849945128078131788555788714621967034257529183556339428182961614086969890215640484697379985307160159155869015280136080117255357577226623739229613007435863816025826693294856230467325285649345748672531920382808262466439259183950381678781156472507694285948413313683259271875656789641767387989769994822252257305524195979683751459053671225389897798143393104744560462751796585118847402061774792236787623137848368020633243578832832394174300776907514776075042417092550840692577099061762546858315640027375977891230469365311156609774830315321581535168465380239143428232844275019535063700064509687414794200822602310365379205051303044090106155974940978592974971311406766268950487459237695397774839023415593735270317060906819672106664221129016380919093555814133144369924319180362156092147077976314890135216187614863485601784586034617521592809175586379061703539862436708188215205032597128736585292843008335797605492344719717628585586564247606254065655544522192027343764331918282268687466626425876481369721036550370759303452126561297469715073757977794756137092914512463798734676893999413091958549945310457291817525254600159369875643779368543945270487324564289270122942950917866326149104574053630519923176140103054995468774130033735579468349451564249061255827451921142360634197573927672148164208612518487027223596947444366273163384498610354549193265360058126545782542929091240898920203778382070964914552252955309755758427338801497161739296741207003124469605806145947226648129201722252978173145230946457371392265290421849707241884496580885308180726406831794157197561164471542050788217941796558795732634090408931821043862987575798418549951023504922486232383564858227336764094571324952539075110367805752132557239811278322412488939710870122649312531755489474736502390309129738839016279650506838316415934574128337239358400812500883638211944971358712752404935680898048421086408282447953420776960244558307884022781954524600348321755318027183043396061491466739791195728552284314320858241017052591007080874538669781052467469144431403636226696124059984569107872362993621050620605311752283788223284725408716476151983246427375018245083276809871882828673158992973730885558596647692556193605050572429864518026919849394455435511675009057280138889196470340119032695707311053323574980811429169573900504671524371676023944171324898360485327997663803600255744396744073410596897847463864557990241891220688644924553258885033062375603267464568347943647057691910690316365069659478535271218256680530680672154864152680890514623662202234476038821201030572992393033072351443565758692386108134352940216183585022840101458561970464159253605567193719812338385197944492984539642251557892230458919384533811096579952521408073743740885205147046014726924973279044695271913449010890108261308659034700420072271379118389388847801111009062612141906650474185434338886415357279552782761532712497433580965699408975925952925920332804822531821735228510479634976919835775862416935078026622429551832709377024756973583565630773068013275019676105218321744566043600332883904883040601099455068479885946686700161172669292038066868226038244232433662049785025309778567032412707444724334975888319043237790718372765663447700065896386894560193764189741207883743317693870149220591523666619699950635159818830431717121130618949494869783356523719015814273181714944917341802997819452567800715350332626715794125224708974468984277987816583828625153470411421684042280904239123679088392194377252770878154945073157936553794010452540704326505890400145509373691181005857449021481813323556913181248814769227251362587947663753774398761760621966974221759993347527627635964414597560630330318346056743260290959493118050813586447046414618370186219512799474125809990844537353038747671256774349125404115022258251477155022208007306915152082972697078762859147837483198909125771421962221935275381305339953797456310912987983091604281946966400606677649291796451639445941748771473018615786380807391647154565936757233370851463271937622187374227546294408301561806895745222044677797614310690718208415201702958165382395968393041070758521944527977017314694575549879187723497986863958864676677615631059931659145319749504548522363057503999873263036175992837998765812189584542248761620934685337298458984482041438481695767331382829201873287161680199528524464694930141022997771992961626824448899874700594372633954098463803598617868918085852555856653644287100748104708076999177896611011248598176335434568841949258069662786238831462600722540864203167583138656475275437112038917492909114812967624039470250652684475774261356814741590275248273404398115803452093821205297852413575657479005119492914091685498443568678073406601059675437888895670690449913525640423310662438872019965015869129245588500041231326546353941045467775496232052464027154161889788170554306331615770656711412160768433392115540745307941325484143998584479884604136550722559362709185612762892869699918125419577645109271437213166693577778567699672056003930804870177536816452433646226417467500398669019786968665478921228445036701204611856212904037649464625546468456125960063340550912819543268140797448055133281008864927049890337630897172560788371755760946894180821186453637731931261144994003792529081569191179163816912635279028036073825672516588167376179833418429147040082466589269975030224582651218208248659885956328617778768570035704061249518060994925571909008020516180575229307243438185695070731709365953634835911411766624224219694083252628532468182069183340140391669922910502873039100054448038819583034984609893808893145412070262622533803168146140667840759905575540082262599695101338928422927799289448243621999191798632313944501809530573891635823122049304326928980031336699577538905448317443675630193893424833351091082709782021129838259577852969387263368503449616949719969906873264066251882368431831046523329879152947884725214335239934722655770979681695621593314512649151484513131963508419783905483226930016565047538034939206681790087105596324263905988569132242272114660012521866113679931503055290994299319333811539786592811772876524322406939396281266503943447873987986296891875154977219149583713146578772834763963262723174994052163774719975739893164300571390340984838403728584250310667929163876794108379749780103407133067467599766009477038569494315039508722666690367120182492297943551637712278745802498546657784794810001212963858449075871625942992083976437169805436142159857246950702085939798787092990029972351646625306142065707652434276063232699162777926590086598662828572375391565843417563072878020001085268617304067987446222556980380700351662724808109529397281549800562154157441149196217712789105395078234376889453270437559266789826293387113827713147730245814597306691599427639640709042533420967625054004367942725998774412558307869082298805538363531496022538115045186366221368327734273090154747553527828765862182044277628557017937172280578541261129884122537201234445279617110241360434076051103360573896883415080419849743742894508327783416423133285247822470482503417267855595234594889451731394601630589400768941941888974301154323496451942432678390538008733809360421786733897079582241659058744640316154785801008344363160354385808888153517767287904293238665594152377399460416349857866476529028081634817669133334605765272095341315029554612544218627401964472903943439033960589006853377748654792934309112380591147215375713734526792438461716256866602698173135707185002001023847002342196519703900345922985832654268206088800589750411412656347024923507272213236997752526574251523468882793040776782685795822011460235491980430935113290897594463968060426307734476314333725055295423032551635747340843346329531148807373694998844306420032700050694887980779197830335996093583905352933035691268898067633821350356795212154478489634500552143341392110257708079481570940717721195063936696477968816831590961040926573731388285125941120830421595799920856425475770307393031932727509311521784983221915351131526485794077130781809813119633794017675834679271962124523246772687348003102945309843508043742144167640815788282893381765205445384863502034049114873231275730028976211074761207737614228720761830480710311791214681854991911834067708391632791585854833801143460209416032600530713063632111779654913592453518080226086886648857444621698907569756237122255456868967125915735743557467230398959178538752105072444482684420459571450653858713965098799628185799761248656816113973626487281739243282772338939620977252981235599630686619537087725327396559923085737942126441954282041751205166103156147245570339095937838297933053959852197006329040084095964421401525277496058465604583269131320895368351851624918908661409163548522419435204635837260508150246094716913242680999771007578958705101813416809697033752464522691964383380091253147309236933468025593196631023868532123569150456332049021074544784386781649774434635981141718656819836495241673891380956989427760147403595112349329914549327784466295216934268491208009581738555299217825535467096708501764411910056737792544731174303838596402343106844182339619920114356607056706879953365360971413392753110253342152513497546127306885745072138284522433952302167623255803491385200715157775282149639870727197526694184696278004001639131789085639639185375479766994286173558550687618873172395013563360753017237001324684736218783381609965720167970714340365330421736991279487080553845680530815026602906455162020157678790939147024521221344045498892619345645773264624451821463581217482530059908820193863873426785729953234467848018456941853862192841869965855701409346023763369059827348374197146120084495288074856500608558671896183968996809355961185506455036667473406465647992424844770062454868449632391469914364406407445692011837411760519602860150099485299062819306355941698349277340174176086359959534289571144275910208768924324963438961495187177159322817684929657569606833123019272567091120236127759437818214189547487209895917484810572714796846669311052993465329894323147430731171290563302690886049991221068459970419359798962225232217063416480308537815437651392002710756262378730849258817763739146822247764392839957148171912914266031929206333633391732403562482386983104047758629050379043322447324592318007744781669054746008083913013712686087599349993760326661917453282852544367501003910957600401640709992365660746715493639841453564834337829487422464175245570659969827010733359614299667470830654897052034235588842031746827899609159679931740785178021864855364320851832702169630642123781453801049491005492346855494699950513096735970996171996437959250521075811193741590776033225939395570537551328482335538317346734461654853398378286055782000591648815293558516866562119764821923666457109163225340434822595385358461426468149884899035943601988965636687815010559170201820585145673758934140599498976758094259551175337512729965446181126708469212798214956977371947783336604242446188226570496924647999487737386437887083861898776739675393614924102988883950216631757564944968384231256271093519065129195675533165440991986413915417475704077559833172442528199304180087046523379630730948678283633372931724570580077637493769655049008298895331701965840050795487227564275828076986970413644647913678892368097886738356932376316199913744388824632785002018574855714643493155477270525227891658260163731261744312802153558291902362821279692749795667932268533999042395065905098240319756419895846809179176565077353397341190639362652217798331720843675374643610269069116021116929038750370168342002051773901349061972265091465014585470879256333817966562008173506625298794389959373175310920341099230457795682513419189266094730926044679268918773853284791053667750949893343597697964924315881407171112677596280684107986516972980324711752867860309124314783749424864741908104194819695832084083114799659492948758143759287946583445689182316258463059395282190953400682528499930230327356966073140955397560716270527121603408729883098631011590712913181267730662038874121652591994013726907211003576741798589365746225499771293130348407438836735916317811086239783487684915624082305075492376928688548532190476485999199196754356336132053820727671178964253630825350065842417353163498184623011048663831190258951015641103444659777706631865762997021455788217592838334188354351823306857089090445641667456436856565916991799922458788103742584970529765596882617160744230025308877145499819781458854978194958167723197240971274623798744716309998104032484403888213588184386318590900076921423432064790557245583092160503473096617349690268871959773365136267455532820198314854016634198668725196048069950754349142866997592263636555866108102356387195242833063938164364192091894679562643151824035854850742837032526809534321803541440624192450737709429567500258901275659861369384766936432285224156095696212801876746862633191743402744245377579469846040686241277650705767465585569056953466209877179401669765143217481767545140616403534626971373655815626119321434942646465464568465415421781846335085639411086363290170171219669470641874709705160631195893285623208207158481758063049221297935943935885789813490788412969950890408786736247168662372788227065988025193947147432045745545750714453204639034690365699880812338196452076819941396140139915816626557037113203126505641585939489768276168149913652789200171942989856463384123101395348549891842138728510689395202055016430465584979818858179640516753134040652782114902346374643386628128736187706262453057213434893776117384634203136031609371387856786163146133985979405313039120250541555908277150613117947003100373264109742052688170939487265475019220906881470900244286674550611385320094758959943938276552860589522351187524398748519977500805998590201383640528665860629890211425480259785024048242018573027830577743245253435571033253469225053724939282025152046037520924448042490770501098823654058472338551432669311262908955527338608837755087140405991263702204773139461281314808819867754909027308874619990584628315990095405211894807800724609045955072940885806737476434915679266587612513090509573149749548551298202709405193774466341213374502277328066283642771111228856176182341772968168108234662808677298639839083149513576519284973263626893319212939347012696003614562217857881461198182115189780597330497575148892041431736168738050995863592432579023687121006765730440356917307932285944626952593638987674282410440393643466661669068643023001929175572186030827822756538634526522399206230821540878471306177572750585164509202730150488009548229356474116581348814278764443221618388479784985299477796843844732195991934209705399904731590150055176488078886405325504941059166663160323047047891997929131839177903011139166200120834057076135626282080371409947503690464614503047929504426446043174500076862802275766474054419989997535266354421156899412270742606828000409991532423931476555043821165612623155052256792722958423596773529083793619011825217418632225197918753644363861435016450371088675658044701625328582014220856196464247062375004930579087869234796106586880509388669419680867064616458342256605884351741088052977379773629927309239839710624385133527165177960647662832884228956289250327185795438523062969897608216426429855711292558783440046945859116690762315478769184271669781991409621019783343625654331749097159875283396950169742138526681138250064356041001214630138012298232619201626302979649541588967487868838919941801903031318220394225200401853736473766681000730562568416002101546331842150324394451953570308940610416031450073828969564295394209305960358833746377476378686113540313921400536112672414714963280306742346520727149049268817859064219877118119815694231167023558238335882303087870384957649686660371437713924569635236888924149031707555426262317369825800569110398747178183079364046425956553603045162009723986538706349323975047256297675716474242046586834867449359181343165066293780795141614422321598606177314305284049696900278958042538668344646672159377539719598713178580936849683931754331674450836248482315219503689577015178080777953717911406888375553319880846416480827827975089792097608889556714641428590806126562411679440332596032434976984967397446327066105786366555113249497221842348838677912321667300244074141060649673155501017846185238557842021765934129306544733549288658797736128463849620331043525320684939311287420636940371174831769515334305152699803748259933481250677086890474879069347543695191823722046380603890128360574062237253542601712441727265515742076206903365168373660940241891447615872195685029329024586024874455448551002637808299313217902370077954544758983377169730097067781919566022398936890231626160621128270665735536656787606895564101676001136744958028435691678119159738547292427149426394175855135133589870917580780438629609181785284636150494715115631444369404014259340398450333487478105778372607184966897000605147760645917500846314066371321431371233109771509115554385024413770647964007245152035641357954135171361254239527812751384853159180670335885887221987775011885348113091993367336357430168705903477172506804160965544548088384609259842202019028983072692875091380333375267672179845082554395942112225995525398290960700841265640888638327764443593775001234484466600659890062265888147518003581937300821573436458706731105421714235369725404600759078903267304328059703390537248492886752472236157701008224578340362404089597758257796751141849832533324107347810515472851215669614895791463360357460272049286057824528534252302446520563638026281749300613383113263632635788713483451441737992794345413862847447557601449826099884849763179060276799509358496647827433884319858969143343597711007476765302794296136176528939618718188335525240775422505766065689310541282603126067038115448512845788967323006003148639995357642164756771395339131073769056290388786719299691778322881541228463029119575494376580379374069333613013779426940402836254492072542974612443480883052665096911736524043035387731753928910684273847598435391983621421296512924777115589891160451158761827622526350575564386396519971511234268225454142492173236726756754981376035912453982116504190075590853991607812491074622500638095529431820102721926319785629669908269680763520158119751179361149384792016611443269038939547862596730912339266177662653603384556277088415925372160125868019781175901915926236443500778883411240277009815893208724900889292722976339368887865180200441501069008491350810820698505430409899039049250089894317230428407505897616581832120386004658643377432081616611144797599900683092440934899329448387978847967931024829656914474780037965800145883760440462098344204248568213500836166476620465084492617213911958098403627256764884758971650083186189445320015817243484464628003318290999020086222725060884603208754691062397947464651639224930624891243866061865737897160810676567905969094413074887533775197242459903395844598257801716165589058706575805928227417229755135638399497821392334959573797732977037263174764125483396329631512291457006126695166155911582931072431797673319247046415632723159464836918372938709740775714338476735558695414706514111225483288480344861238489769954444039013768857725530880188795330544652895823212228521061950659058213061234770066366332641851988410559517068546627097504248105433741357770359781223443911330833251984909438897053834888001775369287967765010124949068943687794609642162441399414133515192196231939389840884145715642300752737102868906697947431323043533473236604572259352429573474272355196830445473864005903735653745372587715973274731980146794596384992966471993431437975282355531463819880785702766338726331432091970777273888666155551001284343447190019400092921871644689393705295560456820734712649283554689557540492399624261162694234630391811786162473925565670376359963996720830326496337792359865162374371244743590977442889336056598719698202670598666203053820146264045449207955186135195706591180572166290271818119919728496946726191601282842200249331169915687803280229281664817398829541130400392268082557390410337556292714989344680124071362810245206006323411766340775941768732902514242797305975700501568833294142957059074601167647087419952720430315136005225555898910762852381628537042369430232794630740738926972209103031188810374677783071674208042527236980098279258983559960929416945853122633310907487750799917894029307725390412617379129623969263343686878781276172855541744517861189287358392106019278964977712395238436361711601695609903180363374031469919560946171085388367714387946841409784216565770561737504893307262957328945537299762212617675090898896246665184084139493380696045197702261442785385372648747699849246340637898032226829412136953769606293621147759768477648273547285271657471563887182893339747749864617169754620703041048704526149641417510200650159597664081267008522620918167370153427639478172700631208482123451050787709601391276395189116770484020965864000255052491529157798763337152059872869796239736969572487156861578832417616673474108623926673591048584638035926202062596403110867135094441582450711318296917463867855767099788767074479063472067218561021066102112504271747309743576476582760307565359230807427454148314128126287030558474545693932608876560587468288816367264690350057328538647638260541706253985483128247812988990039024518990413100695907992539640831278757079023555701658448157788946884096701139312156568015368253463826695796504063900129102322625477182600901937955810341060719505507600719042506921336319285944229533402857841419830165123679778605957275686617801289681557220872591951913185070853144147997702231016291837445960809292210362326310212427676581016865751287736829163520198406230778466630689379273572137272305255258494037051135298693153475700272489281925928786699200139223166400850291311840140282119639441332626903332197404684169141352581848529996380836619297282006073952058824559288441497422598678234864527168737652442971933076657438172051743711254683685632077174291660628560426964334345061359401442621043033073013173167668202998080407363510338279443350145305196845694095019031392884451062040292818350286096132628943037931893701623723943498091691311290988826938468150319449882059889214796958769203855315996509767223357371910264821164628195190409526114122547805806646701538324726657839676544750801981528251345298336060581021396815726483685515003309929375627101613975538376137100082904523685016442390104540274730659006908637318276825788193618507905309196572200245203904964435120194194773427267185311621184571092732277214761563462610209545117980414092069201418122191933984891501235118514101636953112956822890014078488519698975030199082854427579074701494509224346258312361616708235216718776577626708267942096614714221389778767991740175193359217954759540929733892725209456344988400862502991642420656939009459741224736160831321168279849584338723394766962155692142450681694294314067667197586693826032543243487716739697286732099942188975812309803021461466670663846752810023218994714652098983721312522343848956254981162830071723656137214673035878373571356145161144073135942709387409904997052775696990354857303946697698245672133297829072085730853076771212161766899237210750136148961022023165406237607119969212099725083963050472927766459381442927775722985263493687074569903953799253626103630106623549887027345449623263678391284218294924219019206011298605465417394461933534741920044599388357804668486330181704889362470209366626780670413013118677116450467534513031986400325607949884833737238243884887855851792127564988511675303358470907061407697748378953040103575696597632473002759038195817114143235655588728788860919296688913868090837326473420076383360345324579902329877619004205032978944313333067861893337636947434508698813206709667327396794404850065041130384722756087574182588950496973291142507212035174146521938954062373832258537036147054099612756708813136082376129856956638296095025576543759089345168253198307793380882927298624001677186144039237903386502960425417161301796407618545831755624570947618633160842341869740220717169647438603263411238366182674053492584680513357837279691812082022130258132901778824459830085029347552984091778390508961096651593936594703178152960148783186039290356207162282616274624032424771752220977723941980248131774339738418667073041064585688473207420012015955950691889218391417600759041354456872099668796630386088460445160079114137119173338835818594009751477722272281350765933729791320566170121573953252882536647743462798725058243682218340057531861333713367656875925277268845012528082150356735666140375554419476959941262091565669492634052230600091720633297993854481862271172760013757333244687611691043138962502907587214144903820942176732930667638315308429945603058130100419236274603086624001572196766581684678525178072425173944938648806969709824150074292159990761591037329198942995330333006432090582063812179223259775436600234804136346372606887615395625782633200961882034560212475355814312506083851556031089995472724852629018445030216138915844168820607732432160648110628938488674215818204826336410473794189154000853536087557117250895235821707438507108191074337899016410182080339465023605643150617992012440487376918485524443565076765051533195079102656880215860487451625503608514272577761430516650769988807500540273874204081998238104152254114145169386116764618226311740602928809598325334242712321458565056769329301428273670137948564098294048308944789301593548715336517278256748947187419158894846224231935439751281559225745034179675321656280903405842276826353093144695828594034719413617062070967998868537293577230207929554811922125399519655742542883927972040451899583441770131332444784360721425210489472967367300599458050417580024036628176965658955241758030580797508520791500788129997572594071051494164926767051637711573036047444407932405418410602290791244808358997478890329555222073835320881552926025741978697565334966205535370901350496051192938752830588554709032056878497161527727035772088809844682967453270639872887332145487009333784316628612589021089831560888832508071940052718001969985479533308451231892787512227295694522804137358127119483816557432106115657622363302811374565829735958708563912133391612241048732905838510473856785565498423560487713159257555217857593087740563871436601283582555395691580099076028253776079633545141828623712064420604964790352290961177307568419421039669903915304879368698054674672934626386652611137204754442701812946540610793251004740558478141530959531197189699073725375947237973687689515530677442820848748183251348346026275994871911554944308537223376910306181190132919638966929664875907226001928500238816359858201736431153968137931548737474331343159799499336093851071503285194185888622319212402928784620352201000161006886608404246406164869635343008714998984920038091254582579157956680401025330446824723477026122544642238751562453473203438810680444632269932352012607400594095451190014211099842348804356202172652706633242703096288561500137743531007229505453961105901917857767431097724194045748920311581701893074474627011377841005816057255786483458600543603600985167201559321738346840740416695845204365087315635370189816444462570879159996574437798132792314431172559329918824910750134953688381837856197326012861698324209849151630700009411227990623390679509479938302206237773444757998619779804167311718603521673340065089465749562121061077057145948590377857582757241411932898372082313462707361763650464470747138471686792675811825576863064155891461689938499781320618346989381914695540029988849411238751634255338913665858755825302274086717251697171019942421123092587243745460694481365252360791045601132210688209563048819601244674751911379801950865926970958009580092644090321462812251458917282712316091689292657111997308526700022499879196848481094219828848833732828861385167283712088327317239528228639570184892954523439356267027157617081703151336844781153035618706245546401661504632080132070894251596926531438776918243928264153857834405491637020922837248970945443094378095329566802728921112756554944024340714546804125678585920324279693050966903381521007687304948717738309921614839651296852016034220302724365911088034121198424743880652369969988425160915634218830794540196457808281336975916684855985470172917905304982823687594349940391884438115303393267146159021124318780159975844634741767750517407542950726148263775695043203910075537602482121016748322247799093959791685896218821685466225497125162190221148149479144403754339888504573832282836047013209152760636664862152863833746792240004791779452652751787145301389062515977762657747993799168776142247061552859203435673692187917645075313818219183333637095464146103991944587580377451701590323330189483168656179186245165963811658541122516705220446893796014409798051479771300411575590786670706652152196377304876559157685044737361402884574851779456602457516128775606602260871494976750177475661631175100642123405834011523121739181987139036268077523224500166515671852317771984804268114182245633244213921158375094188929546685632496079983309813199330849679277415567098664032364247317275184354945722010359911408108236429285877859059727367006270803317980833198310303646660513742155496940612317408713861537065797161228529650588430688252411208019186440907590435064176939761152360532031253392007617509554267439507533590595100284183708810092034909904549814474241131385705552730232544473951172552220305747992885055095245237922673457537422999554090208593635428316206742786748517619066992134488619712764445578087681631049232897871872125186008689710418857336273159100660716085243100775044066298362858229018516722411600340963486463988942319248551519487341124045037220866192513532193495724667552174628821649969179368992040896535696120102966276397866705021298490164373247202498272503088124080043938278603583541076782046024606881057781918516477998970659888454680477220016891880713061517419015072509648428374020098205712367650523954290219395925322992179121025644599079025465119859573115468653935392962180721013470231230771728239938512192720260252160756028952172590332660514435818409472078340110491389813444984173059543257907539884340083913231408453855546065396604415550381198350188325491460076553683436338397748775792415516322611634316112676794988921688130637064427461946924344795459472177348741109561511430980752883795111881164580562643228196146290551758820038906760574650692978035028517257787084885258891317742776682409084121678807219295596215877680116528791280829854783273114337584894015751015889267122540965061696475196018823946166012013909461080200115905893090616871860914171721707892328032909722768803685765290862209859904455282545688821474595624684745633993143836329414615200978042141664356640812413512851445145707719608175491371860026237518868106777756121098815755282581035757244656598866707611967609305173463489483993604028017478451485741268865000724446105346475606373583932453019742889006607433749944704408548446738311532423595938533045240222678803338510787889183369495221351375869514496784281956547736178319015503894851456696746786918023335691114222803208657461451189112410487252605798475081828259964480372567424482985069430418823905806252805542263038376231027751891367662357383314139186496469339936545917810530837243992696821657938619213378389759817132894127535337451952606917577522209923206389615661982592641098044891933976506304334065120528830094320243373450706512380185842574308925737021269606289739417707693728168892236724024006048277034171042268338431312905484948803507568290613918040916464946409060444652998876485893224879747437357646381230560264752533504175770497818621067758395676522232525015319756827708029139603249111186353481016967635885268698662457552995433244625670347115851305806007281956236557142655614405819701819797191575828696435689486419520716552035441033803117669426614744985142652035784930984571162411703349343797346390405426685414472601906492745449550030992679741517369270986049042645746931064549350535891133789398383134217932014602875070025597412362868909493512509777036696931175111821603747636904835537202479116778198181001958569211534028512576728343044825390384860985422709603982749784779683849327979661220708728711339026091508527442752292753591481763392240459069996983963053513522902141784607035500994849191438925663729048011962753974019534530165912749267688233449965501309309471174139911669870764796791001366846835589106427665330298764562163113471824141600276824945906123094327074262003375686417989828910742032249701543464577389385493251897943304227650010854157434592989149000124658170782383232776663703561476850781984824704374777250855159308594758446799822480419584803471441509582828405826692425757513452623285057077099052420002247963046218888714295387164632423589177561803330703241177505024769594969346306784163745479161071888035550450921202421432319665670841538408225656433873276032672299223220600509896715892346916226994945510656259514392939561775267917642030269169630923786675364805885053764777469804586622877585895536737824542471430349022198249815582625030273360467594470433887957068971030439616771353731730665436054692961860402851975618646085672158073122752981768137929653381745781791399963282851541266104495367555099503283377036998320680550172194471902823642342509794428243719019165207596235133938272795370507261567165055982038129783948062913708814753170710919024545889069586457060235463553681923766189532237217936964829184705580347990398884431688512650884840241646194940956904819135589173748836866496242424332700105177418115525373943259378166264369716829098466481919781175716822150457715958374285098868405757329425448426757694149160685467062539244978694819426909456527580555526278828483428177052883455577587416647243126197887563803776728569726077352373240052499658066949864401364735944315247285952536201139451647440972294185441186862603325723723461115264167471694977805829650328377862620284210793090061736301888022099836653715635985844761311935871690281262091438448443537334111135789558264913324451237148525941283794127542474060726559052657115355056049083817206933939413166892619085706811512413509686325268199547931704096679685588866690781645271897931987071609130318216446013003240791179806826077468624707897260347070641284315204620378877960574714110173300969270053519195263023229286812430985194921670656574889566341187270247304603215702783334931888563583336446127876037174323651864728212926991707317588091194108960619404967921521163450044740523709961767782579521941139956909751419928522865243584522807960360226322359320074204262885950464786400208971927809757211207600821178800524664107936193010819280866037799742361342614175538690399879029420243707913400193484291061910948610309334760240224970304371541287386649171247754817764281675725332106942651549295349726227091277447611722595190094862524164173134795697881858830844369385144896623116815151710114268188385160416438717200836702384442344763089773916351087807223488213387301105791558803473779826913553159758270085490737267856722245613465283892375005848479921487422607214508519123790975183662369115116364708327558363778834447369982581676021001480139750583145485208895755031405476297513597481536773458435792575322564850043041024916612348782424689606598513688335409740994327154235525444490370575870156478613483413668573753639898549571313411509073796110153024326286862613197674734910300491251082374467637132988741734582748402758593970635073418732967931899383529046819941794673511904773536669449917983447405631445382957287761514202360709272744803086158617442942157945117862288837929859396566716532074005025321974983824198629159189510479383002941573650959061732490152138170307001229981217103668433665676512839185180678977564503872065049509414083665237135885706524705042170590115480674906903103046765894445553652898509733779360788411100669152273437768878806883761761326987238902550025305210310029465646600005190747104987669697407935604093307416422611004649249986760653025150938185078587712860880804378779279121956382942629546449367441623557636038283200144949431354548869621777812754964427098585829496711685440927559911895116008262916535134059260589888542659972083891384383456874612158598965304829001119593314294053578328432850598032393719678367880764403077572146922712407774642512518267008627301397169707066141882162125661538480508570319933326054261075902434023500194901875055878953362770602269664574874813166285418337667287213068828745176363781190233323593717599109218798852957344562124669235797242104091006347355329935699058268970004387776573323314736578672958204563789211798243363568704803109154480138267396566230041818810788823835438591798022027371938919285240688902070700322515821539457124299839224396587758167683553972499797650469108171918162199713107372939255865127304543644117073667842327148168148998698224095101402081806108639426985022014238888527901648146828443563741385377119606038923541133708412247335580676139595919657103705690149155985698232964665937386992516540067364594135877368874735697539251892517217177149558814766554760871977215591314687046383757716704651742748396994881076153836137422290614871557839595127564854765423554768914058249310869831721016012335403348010590065959288571334606857948950424527488210408979551742653743786229849921661865999022185001726717334833052945252660087953529277150299980207254258159334505378512033266217048625810722295201838154040475514934662240361737484481728445761399582086448137853366306378702655077607063298095523381640891092908038983126237847685254820582035897180487489984833823354384655760453872324295126166901504596870478686897900376955229698323594432065226131676348556610667874821998387256417060587459741183260631977313326248258728170743682170087707636342434730470187190113129690138493173561885893818575171903178975075196746375694553418403380287151455795657559826046855249599113069270630565262258509597489485312925176781747722954885424303970078288284182589324627339355898883709068074582079579050832755703577534152067177443750452551644937693497049524109967836756227245399759376464084747243555008247362385319008124835802382797773881994161918266101407881205744500303931199555078051151936879450382529654618134586539143382749149537857664259362152542264186795278073313096386659942817781277787933996067220272174112561287754118797981629269581793889021516209171202048062244220902779854863097831321560827539504670875639425892101827470518366178100739427807015564560278262047575145010040747320800371916603898096452312432806162906504358561576412637294912854374148413648932628845098702819164010974595363621842698140740449279102012769680447350578350564912918480412496051916631676916653768885361519514998127215485484724715240661859827631639831417987316371121782447696693442788054890773789004621822660931179002761610464766414393771422348528382791492981855273644409178586056392668220862783609292642819494995633937904195165777451356060263233859640620593250486426419482248663115165338903298856424973469078436475688780648694881996653398080386690885495485856725087812122260307953462385085027088145447793556361596953526528898531274933234761177507808572704184958837614654212248611030542749246406387286572472482851177768833602712134522977786037617729268556884496176737625920390916320814926263148602675934750703589606581643883474813753714005241382169719712570763175108556991898339093347476072342327516080939920111896019479783105795613631942161996281595795506291249473117296265162043095477427344495068792041963287526410982220105432754335741809474129044131568858351198490699958059029897962236435671052931766302612182161415547517981081995663327491119542439917831837359431518904013167769850196180183214479808100160327158399717868510660390188705319292468916796338162372442341751280965107002678169598683106946702833403167708612659549632382870348917598078156529474798021313762735417153730405443383502432424455934140960158031779832464232361071954889601509639080591255875973928104276533000679835955595703675930823444902351162212842090091900668824898360347311018972319264626364892566688022726543602869485691912152174138416154012800458341948634051117508491412332920364159502812172105788379615734484114008335852099885787195557304253046733869356315801591106009278677751795252484014303051631139247730093614309224788606828176399714374714125621177900644029913037405217939222204228875692517534584836595859778735423841317997920187401030751525175863523930516234531771884022097274889741680800407065322075008501135606446716145798966071820974306396610515810434171990589923132068669704250686343890554567000123842119404240375288970778646367800536730897929641982210462392693541575846588707776725035218466150893477873282797130800404482595564939438105180952908194655243338291772933740304783152833497055392260742913599433228103557090209162285868533578388619596839768714336714076150713483432647475589621600432661416130390927570302500859494775036418416327824491750184316203709237139070032044109682802569614734047710873010250060635863375646476880923483143527782060464390962790270222115155985031583787100508440801832719987389652027884646649345981830043960261225814425836368225214455033846562130999495789919137805247736972259415937426846302675039865074112886598961036405689723505532277440621833518760689161154970982967850141155591477418202300331483564546905594281504429050399548400951461147812095618132246339344726088219217821024310816463049196758618396302358269287651064418720261201420759392558476477699247255422983538061480621705014094682353672447550538991788337536161825733027592967904887221056017083018699614601957703394966071758025889403046242317577505293472649173829432822952764617223310356954881852647149668385730905855136726823268813340070452302391042543735266726269628774173067388481581715498490788022150397260274828225561536550997364915628048417998030159059133547535692801490009564621992587968617733154943093314669098956535410045384391342504576000857251517031927090605763801989804712186082295449995754342689214261852218729924906922263371635418600694081119135777122072813039994215615018330120260935339055007218574223391734479615437636553384191488719150336102000967995865760995009455506147812456118099156330912977816547632493881211990639001158510614920761598708825210022701797772352843078179278938268941521906513765674681610725182193015857869610134218705362426889512601524799044895375290833236276328422369185213008008450449573615055483217372902807712875769341262593278689052269697693845730262804705228882362526703809649482934434750474305329185027156125913152262176383366040841236663220217598419013860302626055780542654426194054206071916023435427469682514575173677757527487583096726264230099212737154535718598531395167341691069280286937458105711675003470124639679740215796413899565272035640737882513586697270891238323103368764216340686338631083896801453239606535505395066177096277617705677459372141194710373652755999292560613284681413228367484009379413667931254950291823036824850078150907814335085462019359524187794096483326458112490720011717520164812655786992635967864133360022714217087089791993012811745417386209093981388168391230886155908185641081877484144205337809733752511371804915771503262648350122779249393476826818623061695655075571727389742775972780382586166423619435664734970955064335919396160537134754989181865877907905398280662210373905747322916595329250478760339821068724109707061052155034484449722049876235040712859955030460006492356415376479703671112752454939370946193008060154710432073466755638629427179041945762398514287909138902814792202827060296132480658090229922005700760551862086525831029079167529747846532580396079117450015391524053299446224328959499737138006333237854003914821672011555806817851820889112527105537022507078479267385686525256109474896158245136860871926954896941484586547892514231094316175053331097783770001294636411694335933973584196119300857513516068629041448716318196060601025850363773001665245076231282332286658823274008142186351913406028900918258330518558653499741093247337470775648573697982544600952253788053436301754288946190252844896027633847848867199799602888587513979609699435646767703614558109893926729666517920803911242792242172724198476078513574454259545620006671318549540831165491436247596751758808431461728240998714637904042788492638196428740029081792179328280475741405297166373741510824338710018400033402833696697350127358062485195980611211414227823776697310156336232297788007758741206956284210949286068361398672073598351808031144210361740727532179190445959882306174141036829644863305592323156478579790725366150614731505018130122677907354798127402874182681781786828773449863541452389369328486717421179036687243025130677914695747458726987935063188413981763502707583476134744347460898415074789929824550647232984695816462745614697678543354006434186833131471416330272584191587156715051294224780366588766443396769050431579366690852407418969969975316509359997582590271225876610168121975829373620694052962776988406791862821231586666466196085344338138302947108109928508063497233444710055583792667041914380767551632866880724456681239689088339398385380383168381963799223907326468301010670974955227355478562521522649091962035247978427424798029371082155908111069708420823485597026308771056093186304739604834628415157579669294114755906810932106849876079698976389740805921033949013619834277376290127967369548699841084965062320768012445451006353545933797900609395543934228789036019476420767152260326896240261769373746350052659589139956344411391801332644701061127856165689828771865002064754580897891022118499890497460536634349346434435447038074770642891104102421943439349918744206095983586146460120600472107978179410760596275052645279620510932194918316019919995759634206578167776467652159003390088550361341867332610364999474355099811324387953451289464865791620042709274083304585645192547994162798233604803306406713894395420304479702622504790807714102355445862364191206165008537297470110314966405670631332093335589348449460840784957740468797518961358294101140179521748751297849163804640963549746724453993701873086950269501425894698596343063839056322371261191041788049377829832064438791313041481966341630619675644332705856983006567082131769215782776063879534746639898213100640069338933891636841883244268387477326875412753654073003875358302269169320370497456404717935737509098079837707654120281287588196722096067470814181335885553205521740254264539929598151662505436403079712788555113902238224074320903342392398733757772759312750914995281200930669942739862653747782821259568398038947626637648304758710072036398366358543246977596152834126197034440155220796262628164195041122151622394039173538573327274603432544536234534761594294343630169826544367510727089135592797692856207003392629825684079494793492570568757911611117030924586214482638045777592315392887430114719709684537148095376674295761953148311704153514978825403636727887515169234833548114395873452476736712947626198791721201323190035590471455873390030664818502027990043940497059494874600681228328165442683265475838367279167376249001829053377853988774199232186905839239583231100104512788892665715014841871190214474253633188128091843436914209255145038116136074021530846652911162301273016540624839975280847118806436823530305409030378161476782293641560212375022223129705256018182173783461246022325037137034491004687301263675112344341797970182931156556273468509022261246564995258319422616277911626991763726513156350991048490370595996212436279177335162324258311983569515303802174811343436315726649802970025348045669704128252969564147115354067504847151822330255041208991427996038752931868988990863590531648924447391225487729814051659366162307379121290295464360336328072997792967337276763411711173249986189265962793203084026116403135206928296692462006082124338750655206430144111573717261790424152413515157768593937329743853706654167033341631561192570401061795769192076376062979115236560550425880904085420902506474201161508730846390034404452815992044160299459380627843888550098218144112181214128919416693185163560061162166488573962178665578094909082186829829400416379506519521295841194276541405812111076566886059389435792837499036432199344597139066944497765129849113805480762926929110134967087838032394833433916827376058192260740919973359117207368411769102942851432042934564693068795990837341897360288432818008581390961589946956015772132138033545559726442183892908224892616557776467519400478917363937858721369996745096982220188722800159495647866417756017020108712646996398489957521878941440609169881591601550847056204980760615516367537784778411009268097524375568208777415406280006707653630677451493674336724987121265959691720113263551485210189608665788324467697196772910769171346826750608389019216220742583661338978827116359582425798704878434487023164285796982432944573811259099285959363642271010451440227025066101700350167198833222796094817867196778093487748242534596342954801002889525351430036325598548539131527103109234830491870018951001910603025882686725688175829371677713571787889228696502540868423804558378930970218594662821878189208327655075337109055755767787514203755973954853826163244402564943810976025553597646970257123923664610005404468239034059149538130149904565243954977691827252308553321976571766655168026772487034230756962758717929741665563118120384092571317893586136455836158001185900981456146733314083112853497855061998087824983346595793229478018707491628564783327831411710338727345634603679409700192584562424989967627201652010655632047608763586869371737505665557185709692678228931010152293834632742732197240726431214960889408068504707533114782157602400631887326858778038656022296036161152681319135953459722311438565409294187378061844686502309080403491304048610554362809380724330052499660315633805811393056478838239003928441544677995149308094948457502399322307692641469994377087861369281492191197308354874735998908991559129166299442578263654644411205653009025154491503745165146789625807956652060656423211245173767662875019333922074273313790174695020316702842082701728954807924315595123421607683411714502841831160783919860210034246246140354548480125787674991727090030442949791108288767732552019670826980834412939229051452045162784169671892697629866619752196822100520046772635339683653087664968131972928880595111063976044233533963419597826267113670049073935274984673619347795454398474556827916676854203436350174411036356326507571667099459480401409234957008315154290302225163496560371651648526745885136068513197858472290461144598972144063920524485151188393415522241032059890236361614243338930908122795382997960360961115173833609206176305115257302547016610300470097711492845477640015348032087977946504510507059488744038161732199915969231703915244107025866305626849038198069873224709260238915365132412137126269008765735190428149222151437390665159402961011711299767164659375725925477777863206703130439318985869933338745289849958869873787380038058562279655771059026610155023152469558937156257355641654881065231495922544137871509006570109972236915380816234329104508166891919393066367344028036634492368802477473221833985777005672147099495252091334485183009684094152143310370870501399705671417225488484919192405576881354104673535720854993969830981198341408838119465553052957544988924673860308801779691734506994392784228055698859674401610727800923504886849902787165642949160033596135974329824802577213079260693827190898191094698288797344649098808172051346343475824125448103277823098755567228195070763395905722629079249033736798891470991986325993652985929280008402752560159586202352739504546364847791754837927155421115976139102862999690086159822325519862783830400545334103450064709592057643939169522815006553687637966125322460331909618789963323850619128074472175532063242359469319510620529156656877132613463795956502765607386537024193164967670239774781800748272282697454856338063504210581301004863706252168354377320631858036913998771893528540451317802992009875725823061169376044092161248713709244257869077079496314757042755065808758451511915678948543561108032241162451869185589061324208543979974737093333029007745229749446945451402997244889180281999850825481368110672104859823025308158673058039636501815820621822415425176826301816735603872480539800029191350007581449421982558277251233744120205059628844753507031226964207186291938120433195917075896046453155662022128626638934687076750837175706110376464048859648685254540534647103667149816429510521965258740826523440743232976355180722372720409437174479121587253622251690085063890622596094767168104313466358707428607537439036274425567405539857163986603295118224768619878288937969202690666374368034172061577258930299913259002776184595429338319923986189032650135665757999208843843688455317135137209994452729581941526299155650800615333630805067218244000666422309259061905209884616960167577814214066123211511755386815702959903114331691128460190195719031709215341071049043913391902973383147046100416885088170164861877954863294158247131378903848096603067069415411977699024185512676403625895260330191721355303690130518894388175235408887717716430883911706976128654428321244727260156485548237851840526054192215434354509530690319753642391416104478402161007073336252871294962286364329079401961161439980235074560753261734340377375310718310050794761433528244692150822446778585512082264298310419849211654374004970886198154470885572680913250674855379551997705123250031960581996081470423250473551837075483048368945882002976175309848582864602926457789563591653140464202720764869365654246373895703885980204201980115380289654906638713009215907271341736686822125181691087864846925623031917711673661918032636528531904063747779829421750440168665329160289186707864402439205494391682820533514332335045252280898381312251692495215389280604509406072575999596664365978050638147964758027108367883640098180655435687843840917017599965884609142145404543666588421219012514689201697252781964437074461250665272003030665088190515865290643850652320076529500710875738252904460803637588036468514463020585483445778511709189190766334939280871353493413080030446656363091474589957683931419598818242458546515082353304868412559117999957197701477823248368725274438787561841069796697828728246170034990127745536553459160689154293622075023796560331999666270048780245129858671004770328734852409406832238617467291006915223071468559775081388698321644117954274263294426847254567962124569447503096995013871750337878489002625779866540587279288638133008853364608541448944502440867415416512724112986515388371544415244576155787400754878202216138529883557419152572237720118322256796110580314803600396987315637770928218613158523435667695127754385952848466461181999248865179914458031542671264585765655752450256175904215608520228570458914582075603346432163728710780213322063036690982085775083009747676101364761637851610470466808111182745219849462522797147512527720707963742490021479539581873048945267533877132620628862000238382959753813826408653120476984418422022865786035907730577711861259597533429573133153774327464718736367627790417287627961275341327070478934634655384638366352014612969241922915028162887190567956653713637864568629325726683047138045166291791824289869237036813705686059974851674284067539920557485393851344131225604288699792938598608133639954575897159174134786213953425130354915803098581826084077644311545758076120574151112879490331934991818141836873612277485570111837344584425781787977226147649961894224085118817064508568092974254702635540895994567805947849143210000923508365096178731098932542668120846824231288724474853578620504403031145435204764382437279679369407367314898684873863474710279517995757482824793576036588958191936348216833521837520164770096437692627426269537358084281285420155117433517867496612716943543514247231599902169340103789994438132341938307752029539811566236162559343561944372229526459017588786616334096235851494664414238055474582003069672935753377519990498909223383486658837106373643125453686113558630455168744779348053217730173274146882700262436072330955478937693841369073861827176602559815155785119334425646218945928905725571961665199195408751310456715647946588464871955641887762126624303662110723042088970320609334254704280066593780763552607014567983587943355867066288633204173441828720991954016182415825984905364418777278961538364909817492458200710972553863014264302171023780117512315358536390537331591801960192207390121978802018495221909570517210113002282479179628002021729851422097169331517032901199639868713366776026465348427887565602948701084129863554058497007555177650660262791624433756511486424004180954165492779545878368411081672787709066999657131832605776704800008693806249460468452728291046783680158508635316125000975501711908894996974924517899022264189488191172207969457057356408733766500009002653631670448444853524664308251355442050547805032306808054288528613448534818687428091486561974267282945909724350048558981026008560290014721244912229581261676226586924511719965934463360990830058420690556088143896112791979910049266155438519119713727144864010229704267911687691529575192271129196991965601634748039059604289583190472042275559014879207178681151196395272159408989077268943034136919557124162605985944138102342817447585117331476872449365857336486755667271227075062756468392350334491115594855033634620171715646682449297974276820095119753704962056662608090864229872893963565434549816426325919728665050808749957068409261189743204210842494557374471653134721843599487941739165618411965601647289191763597982672092803836593609049364357086464830929779067912205842703763372837739546559207911671365279057890292737926892767925219950374655629027558330549599598173657591577216844854935491822760811697716060432096975563817397154518228588416223049555262209460262210611977668448355833649614605592739130114930653098690442209953484002828703070824766413312298017277171884002788552418843596617646697546600779746274745245621190153842922201207550447351232062944570740888193914108362967373664222817211523759665301245316253510427439719819747091679405947058668481491886788852965775584177730241185233062361950585857823977894969226751998851149965824356251463166791187011775807246703984292017066686080887711050246497637135946398449245914802658774224817367431158579040349838682455209751891968762812262659984226140453565400933190988031291188214085020801503504015419541321548715841673054017244144489206008557766327074777108886017178982833179597727824942271313881180618886840888177662772467301306721386431786064269596874369814540145113045477571473715498890939456582596079430459285369724152488871356190969485065454108492453787446614031670226109897585804206148179692028769615020193252970531110910351893434852542989690409998267239947671257978535929565181512959704262825934292507767078804017058191583756317179895058792310820104714486298590483776418905192168291682421800589757235055590958202887455960168431204171684579802948371587720432023893825272619310055056707545920295770510248999772517960018852099511040296103655923714080367780841354873773805639099322033646845442613742510248559075645435137440372711277758018036735306522549307230053462665801504162424347747395996566932847658696466526381925011420174378527117752248856913313623201666616530273970537707289954775174700589817611811946033956342648781268795419285845134362977289929350990741584373745265045294257585606032168580547393561724366220872042579812493351888031063771999592084292321979674513638210723948909190033310049695072681247066553196547460822824348307011399890748706531193030326324755512474527342285326623736595808717211726410827989282512587098790595402319626027313200230084982567782600282895120625979685302203189081810691645799912568516506636227434418916183751296391161688694016445696338634404285652579758365035753844308828799314889707308987419440209168955768438895947000581345564574119742186603584216431730846301477758334003900793089195138222341304218745996280383960389924453550386415721628245988619962880537479245467116816925733507576641583472883543659058151111969958798760067168337547931424652273200506009561128843119461767478850145000147275454384858422363929563978439938235754673462014533441795300838456073617519348053771852810204814673879262636932346333618452697215921765002860481407276151634013314127468718503027309871357155059282428848011584738804975982907322914072945300496085025732858406181283859804009964474961206006534837490961952423095447435012795948182619939132687388391387968064636686933553904214459833561381106703082294853418017026315414758934734105290091848483995859782280255343355705209429838698196346738235226182384582873142432612172203324166958883837317070633770357194492265511360641468369637308244721322641996998800577564734240427947160669116583869147920601102481556935508818205713737777370189788975112736694501288770910717174179785942579873201044443855827624079636713098232474520708703930945912524172271070169328658886468873398118403306702392856885153508432665305306448176908085124750918572611740356862766380215653113803621524531663957727421902981283723377915781962461839999936035140605588447955641581134127387069402167723772593918022124489147586611188608466261848387123353746419313167896397894878683103169055480512970134551698373993836966091101801552212503698187504260665095149858564245145748681763188483074468067910693853180368038488755360896436326326324280070740635288481731168380866611360872500695371786275665567576684759530935846824137585217529343541408839757958376224419480819435986868137332765022617920075178454597397436989202650057719241263706532991639405277208141225403908651054335675953407122079534842398194548152946862945105869990907545766446176570669985107378002713992800617067337926903529954272333177475229797928507723529612649358096228008465544753726792468251903009673158870336842742567063475742013382046661312407433203247526962836600602558509950900899987955479393004093469938372722601994056796182642733954301890549544749260600933780890421332326837827645549238585759109908563873775158497022070875325821205591228663822308424911781448196767993372480267913484098766771257078042255948996586053398829584018483712075089291515403362353170900131067764537287360339678113439880437379058187800707830669755116708805166454578987083943215760276501273546955040232390284525003209625432471309041229990199453581165547104372832706870189019709673468247148517304111213357535465683824497354603097585645790050072930178713472630646762633689990334658679699727149596628679447099273171290030524882660773783853180620888776876070567427106714275537003370650284728328159778841067697735563516388730212175333688103160466826722167053280161973691840920211155630066352850594050636957990864758438462656413789431394709839214962863055143726693651081334897058310028727468816597755622489033237418935881958332054341066632561483444676221743427390252800502489452778501212186246879822942530692927085571947945325384758116094230952846291119130059159526939946280401115463731548300954001642192073149655712295986375490189432820643080562549412652622331867364021131049076065018720096008358890765910124557161878797098237636213318669496845615892716949431462488700411920445742514781309833881746906660377158915059003654194130261186641363777598949273152638502530375002609460049422778256348823956456991692643068987739677118080214175370891976605729245749397904605176738150709534294007599655847282907026062350391545987389140256946753249274085474889927911551705335488585576478116525577239837344217790778420013581677027439736825548081120495098963326147277131620622337045259532007713652548718349902172339101936077820234155585933686940157254037602616585575943468526256068022776923021582021504129931847083214574108815206303967496766621482852992707628204404230520257712690354031677529762898550902711606494694973504438446910831844872448115483101617667268559032848124430277036247774475809219412641425193936604356367529362699024561088976676677595319961287337273520039796486566828508928869058465828670798124498742551093979630123220009013707754079111517936810394841437168203004478287780761041869384557497339944137315887446348094969548658127634090142653501162424093102098189062523260277502908935364281139414387655174561010662230446225055038158817881877871986498584789933665915557838165746096426930190584728797067289520379239390407238300781456477967287409147242228495161560831909904582816346661050520755827044706463841833789270141995218863859139895131246648335254374360815186948109356693057493922564452413224922592235672368915497379077362897749801694927167902328226289379687188945422309495204207248052401483557342866977593302724179910395781426887485361477756333348650440364869029466109232529174064865408552577993065017218384272150927749739096730153991121415379671748998694141305247580034430763133759438546975372857070907065515840632651514046616114566038010182638333420578938920756362690873922074944795160116230316816720547371899764180652993203797114711630422513846561442259592488801296704433850541629366090081973786758321884009301761143160730992714682723209235271225746685275374525485534121648102037254814479429861946298170295130115324146752398911682188568812196515898229467693947696137013173675023182989499964069546386498557034047799451225685941008107884193837632065299438660844527763315451872932626221491624937234290693771019663419932470280202983309973812574984140562150390024700191634352161030324410181129361698777893398389197252706850722258592930755116860229063594406013938445942624118379994726504697036721071478103015474561359693482536081518254430243687765820107806615215207205986321298488931935292478995220687328344227202321513638424811177986675722896857306777199439026153686264448891216349407974320564369164874229183809205658369146680401068454274786448241699953817024589022629329183132104100790008481770770903779714397188401215874417257223604751253628829012446720628427437659536459730016907203794320975718016712041907050703813453892584724318764001926002417938382112810575671532389950785178203466723612698631980061446631874150021119680255695227373589507243925782480099936436782020017236444894249824122376282429156838004322786238697420578512768757685469543106476076207017313443277562770489863401888087106400074283608656726222998695123522100181162511027733113597215067408791563966081962544184092763561150923157158465074856430559346000463852666902001763177233850647433461845456762662575460062144939125167930156886870880975883218829176950030495019469918687752272110494264093533625610451586282847251001565082568154620167492427407938963146508522671651490867640732456975678164861210100040916708442832291766752012873793244740388305839299316783521502993852958029843805174191430747021060830887577911330567709770549215238865823840437301091867475087615234244860756638919210210088373572118079202397806206944119213751353857549374917910685315339400145768231873845284136006503479966733463945204400252673931952236531878751210198853940678596747148864932223347537879288041726441966891307742406023618843200700471819649098503783826847795617435492363099736953572980832208487390057006817425752733179195311450619917616871531689026503115097444445441444039613337201085979057541368921833493626250597226822169979488297159580407774293403825495524119421422035512610708812695753951246769589122443457484008137117416135569113910105252762715854896221978503390786399534890237212070636475147719418599297835824590767821815805340884588782342893738116557202978510966345799122981402446150837819530348180731570934179431198885044236137456163889288999537775071447058808707687416694411506655012981142660025352009572885975048374261248436639315769858981625570541813825764323050773810324252319502609383328257221624062268639589534404872487559103446926931134236869002443869568733250064690170804788445269992890706035549955437378162107634264221857835082655298235965403911787560223907779982717974846927989644051399760641229590960175421939550742626136653664453078114471001602041185875390292248886776735398117314157402450118693749741186806845711192071571225362909172555357611394142585673231413525544434677900653329794971581915893772638597546526861413425534301805723253817191654729711968208811249068821641642300508211974309796883004819547158115260279862695038549971480344547711616720019772602195355946984121274146400822489339721779785786963406987398662856325553266068192692526858534046770112298455303012776957525361551616022240220420191607794669778670709826749952545723778594972205598906565269096083903116095985306909398967497729103966273433098706814330785176050200120323981869161236059243264614709850691106300093703884842925607986147982025070105317982105950312896667059950572661736550712478134433903738899508567866181349985991317601060108622584352714105902713739806284738341904361113491277281623156493535333691182482886396704681751956577575585020483040941825307893993695424921103776314999177821070085815006303135275505252889883831171372163588789653626607185164845649874069753263772504581637207501480678741941684328154440922645061896993215466723150122689304692317318020198111538390686715404551454104688278516919630763436539582828691317235448225636738414369555394893511946162106917524026419638289377167561337588069264217443463532005929675044608131364651679438756981717803311145515721286532744096452811139260918700168577950477291487526054537269252612531657795211923882831966590709037844484415100556901452283879932956462544695694705900309116888459964834037794864818886269153400166571831578785217169699072936741032300800836148758702765127172189597746276711156145321017006566701339027116339234091526248818301928197633689965289763752934984694738007790801860079204025782082467421485049591532081870992606710626999511107346990445276603968028399952333729002557298837328961681455662572677933083764382547878830417351707382872166050153520701541818253186351177177040617355452500480880097667096047079029693523776687845053068359747697408715262704454358480073293359391533556931995030176946731425265862021319496617851096361609472855621929504670845738756486119574143213130644355425668045655330471544509531326375867741346339057216956069383056217384148836627326417388811839570961494887410222811107374230772452170789820314557603736081430488579113378105279366853522707239906597554392207805731324893980190026994048491444167196093903137157500046251186402418259126526479482787177498713695581946153014647752529019495985596615354206893804988104899037085810310851864216298024211038743784215164959705244033536643480632123698430874721342453975688933743259734840661426511581083191600249145385992983559579885906728308220828279442377419123436758206770532032285456147052248010904067323417852016464254069151684924247775459325195811881298036137784320801293338540924622909846035479362660939505437020792138352026993286562253995221539591799612108511469861094918507702131687583039895240865076077838988442377810555601060989874352277729100031870348759324223273747130680440844884433479513003147297249060365926306736500235671490013347260242732430699602821258156115191791017682566382421747459649704766424516217648231537275201002384052379879656205829420420759729507119311912858314424610519319105162187918404122194990225201755056338001146684122213220386789545820720984498706654745711630065685297021492658351782173366765121417903992013267352817308750053083351681550378571342657265371537224743663200459743225438841540146133920900790331785156229033546654056251522931338964475409056525484701744688309789725101849365367086697004812549440047954023242571578194868909330816510353925236811715940539705682232222649346022031843522080555557362928508539277725096782964271635293648983785122953136343009156880489403927896706155442105242611701931737799621069333046405753255111789315045510589426891428098497947987878368835599650299379445701801817346331870818110300149715062418650030074810390424153422431109262554699739714650411505928130839153979469667646879135250420151850802674632896480191725911770474954888495127973572228223799887331147503880105728855327452907655883077474631017936386237065772316217442912694745576327320187534715284495405106274585220366350666885189708724391821087391349554782123313895329113615909147924471109924747155058043351773610361039412100076000263131131328470207464256822189671860481071356022181586905539055352581915957438874040147176208368052672315700017989633754863571465176507933796721666185500454998521104498234841414752176138349127784158817057908301074076685519909574452301000180222071043982756806690911417831802456345282264079856302855842782802265451528581625433043400108568666043019075983786158445086468094389656211773329130126325709944732349732409709330739704342764411773127667314579889729931521774493424370503059278700068115836587308680889247879279389060792571227927343363919911583810411929600885395184751127456518106042554647951959584879141011855804003163741269143531819588176707688611434920563272128053019479969746241539214994019891975226051765979303172893487433852259348981143112469253636726146420605469042913152837559413103863505827936337247126330199362834786531361404234730916501322308528886611193439548422564140145770643008991450136488606561870917060181709794816446033201549293460709585651708722779329614180235591793961928428623726491271469800593460889021209164834006542223261619244745138171246382905532704204621523454697257728049441024562396589101151302854563333444594761907757027334491296526055885507348790927755497691567790813227320150350476383316173230760119592395591791477128091490000726975485871212560630368284657836782213787337270357502203497640016780022483384601418281620124357311801760000079710041356045866175404551082072970151110808133660232530541959219762714740335406946193464447668967755451413867360928350071476752534792552961687659564151119574387693380146789513130755271923406491942064558048097450688138488454197660000508096675633881881425913548249319139323162139009078394584395350460690184497103130059473383497582896026573572347638584319792340710667341396316191778395474980201276235421756426958638152864739551104186157890544524497533388459621304017093901823248845456959481904627030573194185733663979777910955147357100288850456487747321811520068606167059871212131703737859118505735226775460151736405694703072832921608877958537067872914182580895591880591165026692925697886132128410464170688257796866213370898208621438293576844735859396863819801103274488594367264465103734761505192727419062797027115348461216611200732316113992412855152193261638582097824477338212382852476621241545464632912750229485732945142723468277998852091159400980408802707289099310216907689818306294755935182392643034979580080921837426475431929085216599365934515568573464640146623789332477859916621498510539783108174579887949499858236168122678772207977153543371873039341865123295391837121729715239866734243831286419901145301825077952831539288356885994985918033202327251011848250247795724548805601210356691456226435564470123422502804590755733782223340791924723589389957648768498967633922545917254347665306254869536055540511109357509066508170162341945174824528923807546487200452480774273943185399356188225845487926366915811271626672730962991170081933582221295219888180066663402783844112243750255711616120621914626875956033686965670563914753774464865781989695535649943329909881479087252311681665317525934157718334875691258859905236942768232615765175502064470508532066398164448120055743284343040044136762993342461658450405300340782300996805308197020389744991213164101816328748103374138507809722137614154561739691130294890706753846209612206935470144690347735870006374510131405449255362884508753062654459644845907952614388208892039514743780560915199318282801164836199680702129015179430744610728133427119544662619405325535566332420906992306473145594747282323513007799387687338290542814344515539845642222542573918426068828824601277848032479714843655023012020661631601262821628774235658360350727755716176782528566607763161103658497041484985251204749444102157557934165579971177364974592315534591387528704868796642190199959249777642117679074291132703712611542795530905521832789391917215815796636886707621680734091187230555526433795398183743505897084077404234508825504620567485912979382483487621235053353238609167335904133244223212321327041758937076634102700544977469050768461519982466706113300531466854802634609798392199014373339857734470864735126239537840956470049208506435226841895867562309091023965823266757107011611469573764470673367429122607351882103032057376999418180096586323526742043394205535345627050471141104017631896510208142908406840346016139079723462460217624224361073099533600102068246510679535003759299721866770269834686696362003825683661418512322009386930834197161472850168174289739366965753478001071326003205213797985320886396877850934999329733244134416031730520769583570510836216506041660601498393705627373712265060614084037574337657995255045402571349182987152216927716130966427062893154543297537658400282372819294997706891135387104314341743591214570435398286790620429950532147511054244951841506496621378673474006912428985684002806357280496867829129936066420617763194715079887283994977508097168929926009412702271994789685853977135318790448801481187845622535124130295496638494931505804187094297848760080022820324594003979324544850491759721030324498675935462924834493318857427360911561576413160446864458334903692939589387213557524434267297036539776127409749967924119876962024212411855334921397892414082112177954043390926608027186053509934856936889360349113398034148900372210510197652271529934358290147853402080986851913710214958767552831080015228013554909684677049138058187469292825492023731381619538131190108332618538249632358837035375048804672665083876943516218977035382844950790376919462504989837948805227925247745699414675401200472187401712518031957913041807684523969723505731652019462221436432314254710754221132024016567070302182406427867510670762359519097857223192933620364099815100539253881210542562207085791352645983831664712909887563893363289397484596938589066289017468592846824093574527397820477931242676832192757359824267185512346737014383909976631860979429438891159438923236378873545636906328767885193677771685058023939009417363473409176617203990176065392779923652248521405231917471438568439425990536699251032278135462741469383556022090440704269779695217430838914392472788922747630149353882201863283502517480004643857280264956562623740062420227111219382501958037492295724422747894490302786805189464957756915137671992345114891930451136793786781304317094883712502363742399760273710216241572636116261511642990616798903054723685140276060706398261233594659977786961086675284054689629862978932715639153744207635057048263480434735419575686474039646022779509877358292004817554853383004603796248242895377858145262182279828627270588498234934328970429669303152560462632595288229189936946433123890760895703405950782918645032311042015782096992651941569306548356968857204629924766072296946870594378330783068500760169560520748540933282926124574071684944851395346574453217634463787518613893292563498796405601679100269144329917712431800955490704209010623050917466107103953990404069701920010856699188182387474002710977546151147548139686191835707614624446129985932904495384408497286071454454543526851386025960046409044354401268984950248475353985741746285086891329330195717764238741738409031536397729337320538077235715238541710391963032440259914990334954128681706779740627439666229468080666456560146573724481302991788184607730638933796127294412485210621932028766100449745924939804265388512557997516455721704763321154535341831652401255284015921774441895959143806597282466003711274507622640453815383323080781416839165358532446540809156473061511830621608440894285855953858585153388231352699281708891855336383490399349433459846813536852188704620969527635378212718025644179679659405356427085894594517773405407556715619001634142340435886454529129203048143155632409265249757308807711172340036358791712129697557206818673746027949611027497348216050609543903801416303716236301825543694433131462845630824333680892452512765392997531347831508268768608225362282297706372234343486937888247499905949688444034612439558389702015305248389433987593222161614154176189277331740478822687568324860938076274445329355715707979064795731535454619011608822588631664747478435970825322042238741627618192587763380509452047909933561735428402790642709111147986043576352627431927631275495520313509668261615320862686113428296828101594846317974882893156680551673893345808273208571618436722980069217270464937887404115049320751193858671041378024373557663588055765917530192826284199932850150054151448729185054847441916267070659117400351956120079307414955002889976289310761705711300497914549233612933512380194937767637378171125235202930695358589462468293141540510315877034163810562147726168108140296118361852244161072968456585672406004784436149262002168552580409610203206342912571153709655036879365096851763331307980878390914170834478475934283681173606192048678118961850089124143757969782429305817063049023677344654018714652333615964552069787125821556270258347150623339592282909864317395407918680766020356086670841481822504656838493484797638354651149031262776218674149797394335541535770232636268945298462792711852162753525042999349363502606249707939551840996546759631354523207007775318571610363277138607830255842584803203921024294534135078276751772311856953358419482911448659390974585071023102164584387749849026580516149254246320834728023458529756249860123710967795410556981316432662177626080431869396167051817552406875658306892205193903470111539966459442736371961561052668322247698805801017144777627106214363108786227097538356502691931324958791383269230282872999250091957016324823212954878082913673187289422316554390056105752597905280645940879374707305088965568971447749361696959683760964869048842634170348599611364533969788854439668427466466876253745431225587557224644946249599668351844381764974913241182308098952552723697096985065755459555223655373711007683085090334867241168002687478305012884494249543009977779049616987413795043099696317313579840196659776164590962013285657608979385570078198886323777036733241039247515789713338453129119735228284639712353297928097339616607680417032923171941051928791393489892873058171153259660482180698542563852254010502525208885242329083514961828752654342295149063934693544899855729948519003320530437256123032257948109206621789367677279623508064781404952297069614651600914380352185527254897366110077202213741288933325110006010208166809275845536212153994003819565150361183405807256730000631114719788585266077398999707815065740805249170202768132191816676906647762510537888016948670043642842129708037816635560415364906668740908855544068581530468334742631860646599675877692584127611749433119826557940952539737713333118600806122092446428298806389490405522177730524238497098324702446181273805407608480913004543412967781031046681228122006931345952796913187527508615161451181360984577569068550838190694263137782575402639979676932244018432585614989477904544365157038337883960639892400621003811627028316213527734301979975285300200998969039500079098625530734673797107275212565883143708687818670555486889264162625174848832603411462735467935048600747288488808048765233809268514895864209787128986509614676848224841469181858554581886797978458923045271450804193659805548780222589451465728169120770431724107090933325265972343387769735537694569647586637175181790548213484660459566163906879395825854904370948524730979057675262238676132549170626898140006104440829098994251231412557885444125221375339099083475864113702410433140517919182067471431752675954162747410490419664529203270186336275558237411476845007216875433917848682341259368488963817544755819521879982194528034063204491411343548447086982822383219362201554216233331203795600323876577934870194981389218258767689579432678442575875525265063877915915969316758875620388269842385451176772709839008770147596685104367508266946872291002946479877784934219842572314977188805743452831200451392155411337012783083175086589681478479804777810260595312361668829241196054879401621448296025223999800918398870816480302965807028875513966840671283718870043775269847133797525531786740305511141769076824959376386244162694620176611007276315888214258414609232305583469554304501975775130586963927554984693234049801830983163503612752331790208519243683839208773927802623886848899603122672507470963075335211250018381398716855058679417315912600054473467141619277629339127050387720969512749428837500385569645872381851903429059677639721823489285555633742695939032037953794742514956425419495424682353465714315787033298907578464368480118366302351405499084318918034449869609060174596083280861467428077704151604062531701748207946591632132547531421093541367776214997995978802436177318208655877248723199316665563763138874037867511552382221525302845942558200802860046360862934779759224254426022554549762993880607391409830615109650969195689023290457134820738331871692488962027136626676646839980528413669420670003056821106330117128004250100859242748715254227047443798774613040290195933063166113685742405937209294599019714478076979848262147871938327063567091736292761612283661888165798994425188211417830226902487992772223450691017581559575914054271335557288122820983198885206335024661304506905556633325715686711732922986160503499495607213171724180697770548147650989329445482833303025702242474572656043321903325864565487623393156767665444421510248513809806212014265919194043529297803774382270879493713291589624117577682405644960390951067734191655081948077157706132329633473495165126542987267970340139564012400453476037094708207374275522666659301587751606695408439412509276178473073913995672886272533651702673323326422489733756586637800948295563997501752171679617897814388951690052325687498727590444326549530001953931182795916582506238178829599045833015123858324616227146089562237209465782800965110453653900819933569250213123706885943897168151780617994938481217049789594965140436235573466800927437015568860692763570809459591127083956211554456897631267088038852560470769646316465125246979816139109691339894616018165154527965440236361012231924917137840748740455997779735671661324651067018535745233373195322445899268810681205019639910277220727003038870964904378052841079916535083422019254049085983857550600691245018654451328506804058513247572513230975425947313267536147833601043633332312468643357725051919890386644913443119266482400180495400317082564677851535163873828157972960658412190737003916008034683691527814826937694028073773291890402262590203615656093117405668268305771553936704228420068633076266481715508092695438379358631568278678487411552836507078069784027164888645141616603836849245510325881344511968633820701439506044465279992773988927830819439411106189457012861536078598052091581008983859172775299433468215018946612126255535160584159233863333020759078533316373203860510062793706540500476943137424446580005658490403342829836657391412118504339269148509465269711125014420388983342903320995636548749018720004346313020861657896188632596614844163070669082880437813859665592382829740595400170719979532100357176722546922231062148874732949644382652662438266737313592804186066219995740445161493882605508425082759851181319686285828638871536673301512064377134174051242378165663995575984035978588218630519680644290530355299250667561391088078783655126135476152389972687496429009821056552212482222189283210613172406794913049905566302429590504650245392450472946951628815938358155380306412428798085574608050490689636678361186780172905325077630510976686223171005503259752756406573667941998515581758597802784664663538869379362308784719727198339011375324366232607790947183525308657322674870085095312011341380244707850476992176700702038200167809156997833288283057014354054844505161269854190979353064406208989335479924522273693541055003031039832595016007105658024045040824835782839687702552540941410576944212355797391390031079622055177731563816918688748201820198357601652735086656425196906277701725996928555434655860801538061579707095079040502943061813028968847628120834139701098809177954690248742541927768851212767208694469551034262618006897866565346973411805673875625282826414531679254676061564505877460008368588933387424520663417515740613635321246938399045107078077202001316669323838753000625028908922302235520043484356121411227799616450223815085243444980924798338977973155751362842970226824464595038546482377880664108852124916114947674534617018442024850116780951012970186107283177730161880132254314236268643773423492481846033247916709144816091898055947698114090389218154199367477520831431571243884680043010470491040163738645585816109220651415538546789648393640672077906261607716743659421503161208168705541927635067341424995383494661154036690163844956879616686841465944907548562911755626742786141604954189439022373857479666033831680181479281661956320897902316600741259011296799450146537070488845199667529930398388622097310704919299389024799799201041072717531800035846716650913335884070389067984466239179916933100508613424141535945691003742766981439506309950080248358720579762255185047424001792127332409571313190020880494819745361031969689071028364648971988685654974256500706285212572948783982369278304986429150684578960571619223308324349394103834157586274316995769098950235457041204179211465473290668193417845307730971877588849145990699443390048792966004469356472216347267094732311440567446528847363608422958690017968896437213335836725575518702939260862463578449416908861158207256260052888127680806408302580424331870303014377778092212788717249218365749662455645460736751287303207859635411288853883899763825504323049094047032706339115641878799621310964657782389381382343374079603347869744729574582185691489003124610611010858299796517878149480835201846122617596159769118672102878679623860636587277805545087608803320096364889972196989301363094493302604675198424862481771327773035787387778969043738399402133435161580722323160182254534175294992491864599707215902930131366137881885472539934066087801103604963955498431414683252059869892725165418900467047674554017395382946801029224794774090106147019241928685503718038711956978576149581689539855505388702556664517094805170773008923225460753765653446626151846057880622188926499378840078951745831735058636203281381643610101692928770688722424975057174088013962457281357706778006214967150055512651497236148088623576026772176559244228941646403978945691717411416903434506973680979640166876904089971972656535565335527257738304962277307970044637802178582838637369602435397469501474113375633313644290066706822822173613027440694935360545964179436287594119140472928184149994141783943919113755365622586366215675929896180224690566660484337646312521496235597773988678423344724599007210554940749400424049279146988555987444667261444902504680388870301894845143181496123530751958939644564737838117175070163514315048455111591946250627861960694044250047567051378713625899773922501055271131088924590973492732236715677857369185609001054568039354770536599482895879793366958542845851247162118815544592423314684896158474760171490858779237965507706361401117701270343960062471382057930151116418146952155590652316273595236727535078029269770124356391330551867780506170581616789688171026225188784567470788610446532635534797313571971052592713223516071316181868736119750367755335720554674670978599665074276240911853548101757945834765294556322684455121118177982717248399484252180765427178409517535582023875176661461114788282385815991076213479954513591973024945831502818284176700528403039895552336057299176729159820741629373718235238723838589054691559093560029105391255433862197890345455760223141263433303645490046035607474173743722161710793987948654441482580908787809789606190512882843576054212818558132345167703408167314965946892535358399331240317543034353729581043198687672006659893069319299398049597983730571720967133260482737317162627466072083207021543492297497641930152719938836473170652251552518392939479306845392720949759137923665159675276217598919140436693852784424820737808434747743423724975010872432510942914104183846142013609568026264328232697556270088304998811229807497866462813811866336258072538788285614814912120116171734014234043039289395255277594114513212642117242010028387694136978129822238050540811139943126214034776180466745566112052605617592086942992830557571386348926036058512391552815578446532293268144894070202359709795233674551946849854796859526002858145598247468570694505624337043906328979640690858712635274440263025908640827296573627307391677792209186482743421841896667096055648977404489733577372544293045539528531875755828011355660862978676629557659468001935992997759920230493463788117052286235140964794514419485011246864365999952221630629270146245537520880642984431182051799768538520495671110264619653508078552139249780716636173533812441879995036123303585764689796697988219968049633173188059749896467865297780110689405282272232933200263311963138942331942713214856435218928069829490940274069901296323127861341731152569640707075681885342735178245299662368220229881110939803960630422780351859330975903111603867474218216451270102700867950419821489957672839472704586135015451932798732671790281821891013638263874106765023350012758679015886197413786901617340199347001380767215315018229511913257611407167038294791425830759624012763528107253955614460841167971450316664013386491445406847805575999786114877318642894071402735985482378838360235546001865905602069762297651592044342444453265252362007856589067741665420672329518511292152131553315863500621014966137858819544501792709858625924195728532355429299592762543498628083483120132892353665007610327101756072544020194197992255219678398113459683840208226972543843242197444105707269799894319113896793979842725762906736598917512272969998926742858274940768610191840249201530222740384499736454231580080703538150245876871620578543546715989472625976715927570432825628626010135268578741653273808730613882298108811359006862779897845331917788277479509734299755805327354616348286455412682838618610893403064770519117134833206925903716062916810401278865732308217082185222383386084884743094454323298495609211732367065897967879731608972535561306241409780468426862623601877722700237569625072506548777280514003624425424503768743593691936054676819370007983533342811454266550924176653488819866466030230922033474937512011602768609539672156061505590464241532465919343648365660022688494706336975961906909155964492724173072783903192731920342682511406497612447530319164560354099203311870145762558889281809463361197725744779250880601444410399443389567121976905053259687598027368225789669523892086160436076577268455197078467759690738065787771529805039027120525101770471549500936986716162462659764496507924229265378700348721305091696059649043759111489195384350433149742023824299780708192722159987026804864083321484274803157342551047509929651688803815754222104792830364883600554522962780195309626177354658870636554591093309854067163667043064217636768062004171597344988235843786841177975447710127743149477517940101655100933844251229818196094746598995085057600967567652068523203291848291255931267828849524139070444304968703406465944551649508675973744770487632922200906176591526557626397559879323019085595493313600919423995199219609433429984885472894758349528158838711206509198754126846252630140894166698254012713992519927560939020862070203762915068167717947753943573080414416377239952690307053145971944559770646635534836158060003947462518330592435988101514507531151355389155561072833635178934437459707491788112619732983562504300513107232624744747287222647898583422844427459511458209359510542429742183341957361331291695161261009576079546899783403395383752331127408152111636895598756254406695963528331756262875612648239246055725236165602531807213321433514690725222103691165288826782045013773232700625610440300457149945780104104131059359773934631612668036701491661217622223405490784034816920051463883186867052916604801628264427311999158100005346452641384829607776561810923471999294403542338384750127241210262647748736320139447836827897255434124418981447161614430413244954359552122151907956124220397903444564437844137497046152261704724515738112633680447903261975530884760162502963202309069471802437976137866839691413472301230658125670935415244403240416335122747928646650105456243447612927125585429636747959175026417931305540323733547862551906658316437735189113900381109696245905424186729659926310575282072379484090740406339627723262257554323628648037040476190683702805823935195804818267555469044860452074268116909068424732679070207388132546328660640425274312368298668089913429686295868920983950256406932501300752433814057689195977833724566821744825736734313873178607165271590730736747303873869759278101938383143019955304069277550895499644789353025887504285863956211454523063656646734996099794934795418419776768525547712897636179901669405150899064110112492691373374059442451124340419509573582856557291292616175330379981153021232670969351415800550787091901223596831838757477826829800533506320920167959113766124771905530842137819715400488565267452032985582557251591868956010795364020645458201348129215452132671684304367169510301202376308168317432471380543187027802124071721101495076294569621877031441462441584560716982033993392899323840461325989176078289943503276032066860999388775046755211491388333407820744973190150043186475719129096867017699063060427783864989845127930962888076285999470839757215622025627692001967079781897594593124560762726712927695812780733795666924586559301407201919711642735452486722497938525638872444669424807861454419199272412624086650667129759243855975919107258951082458348067331137562060881284467232460240468477147060802301297425971541819364349343705200647133770041841713061359088788343043668698420179141885279862341651613596059625414423087830386628696633457738468818355649013768595688982003418603415532820701870270143452400487258226146277877688459630406098285271405859801404369613066906658109647191023699073655235869163152297286409625554599018877277075942210797676990387348424885652490889924472774135459871740010913872959792951887518374585456567021297773247691534989892822330461408503497634624580313881141077806124677072479716986367770384990488053402089313920984479718972895356049201128401274385478001396951530299057092135603751723264445678302705032234044794073145206504583210353035975066749791053085304584307052534513288402330511736600917397443861114898144970412351109126829528426508338881063515491201008328886800167334724022509241983797988391684238322728263162960210699054810833640026137416069864478545709414218479049457710340826021730577979141086972821603718804176274049281342319273692393681619999787991378536171866068324636648633653442157719360537646086669770790616152926123072670243659527414155105970763527213474028138300224453865413709928064669389704620297883281592760987121493519982874591880222695186094040178941061375679325293937568137685393914672006444171321904860559002457352336399869631284591485706297966569500955997155091565931150579605716653901566768356467435196117673057433615281595437115289006330923365340459317244399039903408715352929733270888619309809104486214451229469667002189338868890687129494174168947398288704756323273689900986554474243399895792660003510729101448396727061225934774277327935222393988063454352556917642127027713366121042938485654914185977698916283943912739100800402812548187944238085254634914051998610677277723522879356459361179367497039217337776001690909668387581751529673817719738163944967194257800573214787950053765816686851009929838261677806449180748565428381066191217885495326930093900912641015547898640590879481745715114288490163551660543024747812501554548593245777834448919923789296829134317527731252170232472557274854322696696691429087201312013895849466719559413231557820198476437919595420772654204799704642597425709749417710040284992142660711503330662829836155309205848709411425980607194914218309918289654992819555389650105123252871756004310085670144217591696207878009836257046121505731522639769971605343588175144429795452419435852651508543609296008876582076455466086296713187715201010348791235905917298454054963948566496577767109720742483853458993578170543435598389122206524431670363510412220804898007176919176933411932781231784807020822101404971666591659560761389763017915436307087676240504300628830364970112005867597832879187891847867749288640048778447359729173154112337306737765632957124937029597809800459176427345803662233448525319598131211434430346097757795452169857753312492051766393419648734810190150913316141283893330989253725351045050151331840873517759005859984520645249953717022208554170106527962159103256036585064195476133188869951860183924804290842582297179257258968271592844429179315477133865976115109076454497273195577860911949684003658190053067811716904722354287813555034733034241226750104120805383827923239544539017120560736842003515011630301961391204975576189969428198897026371649859324772259377831830639029257038178151996852519031597284256151785321060477344187397635101192290796869391880822361114937266317225059857112504069584492693105737212107021411930517125658809543743006259300249369485266158052228932710434428399905749756333938138205575349376172502305626669639382636714212243247952303475877294115718703165828725120120541144145141307785901028747492349678266486568537224188945291599595191889605674520473105619816594635181724524565440859082434513765187928015401004736643291883962259039485026726849985472669827574443259922705714435614398340061061138280025399916420030359257269756538546713123490771150283818411936139266244615314603451918166139955021378327269859150356544719801722577703426467486421166079748090070814234232792888631354844968007334816198926714155077826814818134529793802489801579656940584738064536590208837546555537831867098313827958579332711262343197771528909751873887798420639092174612322296260753676937858146048950314636441443647999647171682254561836756121451878191319189809945285711315657566434487903156980671225147056180224028577649943381240835966480478798510558064050209140644393858786483839672462901516989364229710941989426174529181118341586857648767323562190037409892161947496862007544538336903656515833613641887506247720036287483284634738753218437556677376794639372178631869290037974704424857220784296992550060348141487648696217681390069254431450000306139887327855042939468317712510802623172801230996245448668219246414211446811153944861950984654942659928220781675348036259990599726997492882414461610563946291541027658036479507181344986764704661140886171105148291672321990295516329544392590438619102978265135250991808412149928313040056928921663296452635554398215911135954925898033327165358356943170942483221678194234337525046882639018427075974986000713284681030790662048383208198712554757320279954662249031448011269602137916156318775934760443624920949062478735581890242787976303585176487747113131095224602745890139390327036161303319988070474341470732562230455636589047192063527656695563710715965307563530856369507885703147704630612834726854237992125461565713775923960509767019270920402588238553020423532598616853197133774275404535059868090367519208459539952053044885241923191580222660285415726667159696198368587907417161616049311860226221960945782431448245908105768609620141419407141171702627912734510564514409151356656174302262018304420822784749367000297083074835771639438319910765413631950192811112207282269032669840052819067683204589335558735511516625161419811546526040208064419835701910320136921214152173029231104344690988296321509455434122039352352104837116564828141127711966470734713393138994456143131467794593430870905041402715368873334973554014564467140230137450418645558692808519643675156029625745949466901061907355040596522735378446183447906513242492129433093158536664625743986253878342385976865172737038541834451407001934244391475904835091284471475030178820887347905778354206549294561845851793750011739905029305249214551610606846220672548702745340939319436654121730271308608100990778592747109476213104895733903324287896572750906771857409896933282814756699194212704220607592532789648712805633709640523277151814635023915641939975923956666244328996330528031935310523480516865798287769017440156889942999806219108833458528515923606403235416602336854773314317012972096749711462837388844941601721830769663621253123182712169638695130618652500152523341737613610566460574585981478048924236795546562285227658916656138658545958024934316910771765145572633912078286833904719505646650652733069726012335469920738589040496710706620228789625752234264898812293625220820066230996060707120590344082604437987883870785886898848552010307083839065752500717441347502182580223097770813164161663079874921056695071570523499505398115012290764817096094009655553358674648640324958533173236081552301997442054573876035970793400413693333596759970526578349432950907362101736237915385662850678936035784470901933464162132282661337355243927225604819358172643450309812233212449918244950761245397467386133080271237995886028755108612712695516988730626473497266560835009792897755119086319954254934728965195014403638482629102394742472709129427061504711112297250164878862622703963511793824201050326834546625586183427290161966805527634766675492938233513856455363177947295156894595514759548816902692736800089860016037469724069966666943930641827864908177196816652742283995334696213451330554966915165084532264618176833645513803274680022894912564457283359878886190965472182631638231803898830442602851548720059406130228512590615952726850562436542168739710651476860049635301533292437139194219682714778195909120317618871306295768719977428783246870390066655876602135159314127748388988682946388298833461814067188834401058422119844309179350558349490963935438962237014071265117545264573206834235372087852513829830247665840390580906473370637914146399017591435129531210380797563567093784484369840906984711666962891862478225181069856545026562869670045611040584995080177007374565122551103673863593236992577915420373793902231739554344796623647055969625560586269745106650980703756310503898708466043388321956221053669443995626710828387353816445534345695338442946169572810492393448437290259178660152042483115180653212473773207136155757413359082711732266602328871235951848133545053598666566180327932088598332528232940134693693761298406856732419557314646727346319497087343891309309317363330855180893822498236115189849524950677331616891584351365300126509277317994571064559681961465419308558744037525226376826989907486602872508671871099382604579613065978423124738623486065237568338293059308505654762358412700055196223922337391068679963112899510846719078551649696309453038629790612369021249748923525962115422377848267763418862480149743939220891011128112360750499112924140303192852998825641771552491376898101232829514442052598050074752656876598288558348773283759536805482800645324428156182604835842023583410263867797232056100393108758075403127790798522809087596365883811279150065424079828946852294574288546921131900174361204332987983421239181855504022221568683183083309177828641740619599071430608071861407998217604622839078054421752343322389252323984819225080619308924484755478511812947451042897075309777614699624320957317735748702651649886308828060646009009407200507084427675942014609793207411771274287342031401258155421933153449348477714290784709024944975434647604527135104008976962209912754726433232796050394711962433765321889283578181290949951309792920327374272230792559264704030265542741452351148099956407625614437735680948322751565919450855135400957784444609061022377748930036265891808360459049119907895988835865131586363112407896276545627552174430060767835696925527090814487255515008363579510569573975461558616448083060981295795494981042813279766258849142651102119132266561634804733079198472537530010116734194438440868383769173477949928655913901092368809451487873882223410091771911195642575660118541327140019226164634839070746709816371247227261401091278924908329480177726971913221714792749879642453140074351585337607294556633669412352449964283441407126720531518207260468353636635348211784671435132660486290299250828480057073945147317345652752774663310656130946676646112172383864673143040629604210959145458753404694115612249530051901571199493679700332184529836393215324249520317391491012440669682128010576535200582712109313698291405274439187935044970681717848047144543829899539450842966968272035536771134252008128045840586171157253341945806648592437244725283769428822320261679997488534951081397557751362058855309408668418879823270775173338157796995904065160098488458410455791631409404793437834565585968880427886785685326608373072826678625288256669521068098004684899285088142168414237257147284965844396513668599336606705932441175465186760037275199062900766713847629847101538092292521532960573316436976533787533356281227443354394198026278138719944130425621484637693905979249866201782392041118848130611408679797395385686764311213106374157321642314965679541724456459022255795266749635186110126935704427208879536305397343717019156709765621142279771242462730411472878243562910679600500742851735643147059934890315776706647719581833005925904468121692782251391697727245643250627973605555873952172363174856682626027452055664474417432001923060446762937464667963117184974650619456250381035502875498204047947148661667713384175320336083458966262705971637675682424253898374642626209231690644958216803736197433997879651247022217336975958604939567146793075218673191302566049194618264606809442822349513498627275895598568365100681282544364820645242156255932765028347553515768099496126769929849652002786856858858017612948186127645153153216430003580894855617132137790405748256585576202380366274314960254279042113901324047073680308093264007848301192176375608611737100396017145443989088286437904638729675383879440573160325080296751373187422547147123796779933140877723761388501628294616002203874817989410904804644114784672353159343900900984696559191589213549264598984266091160830944226849613207920233538602613938426570839441702176036177731029889527172515310867596296607069586248349237724696169065160509810930003039789125837863909132143247691170338829251683390680741956263332942603914213457662263793108202416711105885932609400625511411919544766606590560081622599970274471872721015935820484538289675289486218002114104339354732177864127873372806195468313207629809902909717375766075257887525934897390858976464013055093946338024834465825116503134685094194880903288372822273406108826403234368920306652982997840777901640386994537723998036239029496133202383377980904758213237060530579926006235774520886040512295818290458994390979396202505876852730558070252235250511040989903689167635175552991066763190485858152074218419909471881368596253281173264174114038901097638556500009527964852184375197866233117372395692622749576765411574495134299019246307298698544128118108085529368973644242877646889611802308843090896911905075256827355344527043397439325875959473742339780155273086556446937721261816413863229281100804198733596277524871556653898541060284043911695283706790895921618736286867721575551444882982050969706408975847576767200275563391747222446344884357171611803709635812975154331274776304272918993449540238309114395605494069493398547082577200531777689629813925716488265105716508658292874954786634506564666964116641401942370225367827219022964489592594321285175288521644251001206448105899023702044085348273082632341458289746008458580166754924913334878706065298530897674239537098818036512132188060839140957758496981806284742754914803031007725434714222396987477661480149955904574786562896149140061056376087154806836866419617218986102416725233335040725236200150594734676992339790404346326730596026360196155981343381750380720687777756477257729340965850502773499303183535426830854516124282418752667098390676732773656526966339285383266406284737498917168993537086294134997863639212238641259717355033916307679877247670928605539498380340064014548049239726676839298885406945238179339670878875819386806448091645123462135591122317844478853084554557317458178301169713242778397042984806375662976017510097215922310318213429725857763594015715328329709309453822330850402472439666292858609592439753738866115888132369824826448463767371568514860475482332233593634493789821331527617988379034506514735639271168042672309662948134217095091313287489535810883503050340604648042274699603484163111301122905190042342454395718909639065967236091614913411090356745740356357505834402651451109030864529041299912896037890305617248325663104255353943051805293461425467006506420562674362838832079280370931009753811281828476546366792490186703222292996985123140733576841500090652213384899996305164799338059453950696273751422636950654799389048265795249210652471637363062607060363604307798698701652673529253309478232640637821666157591432566908009994159880956319619938523412742569118008739122733894614174903358117576072971699570003766544621172757035381915307541042914237444525895062885246945110999049942284283476625865478587851691973239515487561472257299033828122080454874315776651291729164573353341988503082256862908430587227947607215882851737589047227541318751328862517042513304168022396684912451497091149084144109293992339285240032634641355785161547764987947538737035564606569527238550373213189652623293360877345457366039186553805201120089310399819490749209314410164662354260924450995136909443902607983219923021739105396172844791205561667290720002939335180578224419436847188650570135314416644024560176760644435681589844291364536765537253469821892721605757006239317142116493738137957618788102925205336876193291300955826536881218347662287472926008107784636848956328437711520439520991245259634100983298044233398404263269807200859023328070726993567224546937665398244954898405741156789643580135429161274632750056746925195146526992040211389553826425433769139032070382927882347762704432256815507516601827056142429341702061905403783307337665870703411630400747634192415226412041236470278529650398591701081052250946104529517976278718999335293524212689157142093287657954875420271625737259301179006942197777513717730569566422732187032707739152482214019454892724989509413720295136845694010357009415684884036038948779854581150035716032117603878408994849832227498613197628933088273542440612301127265369384844746022643423531652722524007104649016666137163419574456574479577097718852730007407268295806200461215808302064500720108506407106212522771332172285780973645260731098176860772557564201309987085836431860458534358951529271028473708434466337081452246868661009822905515705012085966614709916281698893794778250920605405420304065424360121659696044873726261127554759836321916331342654202251551300866497171029774895347393975579565143134446139160600817509223094249111766527897409513927011652439298193077455190125838882712096088619759414882929448852527525006049756419810740653657367064771223680464019551462138421600395131392518107026486176232665956569694591527408587512749848025394931730798583366616216435896509295920525004687800326744506615209503462374888316685774252818953017732475035289146427893011264841109251433015527693503767460022810454185981614527477513076596987794045915600779733206776881324393349024543773701287782703806713426751320566174092324561802962665589134069699454545508864238430444604774282231170925519724594029675433222731948924711299791831599837546251994127449976461516571035540978405145571441250854654952629900950397265564520544125263534188438615922155176399153138439763341719139643821257838202078414204079338554075028673800458795873791053903089039748858842153142080437971553763040353228851324961274625646079105238703516295938013613838077309603616742412040097368930648833968986885980306527084291796691021211105411551059595574093061271766934379640017243751656569364545240473565711296386328555408897556795339330603399291616951017092559438827716145976334329417000502780908897807612160594929788903684860730956223682167802841112671400219709152103223597070242181819001384568412258585772293094423792011864612911671084766008351091914271806424254880907305169999592266679433406891485822351841905034932195005301495183870881276599598091688529705691709424406554656283185105007296921324429875249191658519045550624411800266405636106184655084232102039584258582832855299413835684771460385468422619746337681373316532063058147646855594288658428522992585681784085481482729167592781592309339426152447782331824675395639830703077651010390044516930286626061278772891120403313595534390585155205232524372095412286317237144624603802965744230096316905499889745984273224621709987868849465057601964051873020254536253062056234915669808266656002607383423711291638798609567685538127061521202512849131192356911755225736117679759549668145988027294362466091878614719110784834523168418138720270687270614885069654446799264713442979242084773098921707281743943147214159150445880097107363853482772205546535463432535890192846213380129156188418262590377009649088623831085070557838754196282709649548999988671969425721408007714184370717830754261896721508200186800938566492315022062871193600501873343600297707713870791383272901445747418644793374757789731637516441039528937627660140934179450020460421960425055815406984000731415556054329433781324260524112756129788561720439615804568552322939926900039298126604412915043977132219107013488858020823422245832594121429408017372397583585624308527458756783818042836994356703576222450090111077881533413704591923369896409272113940320222300903411453292512937120248037228809460930975864982691074047642041563164156407306628202420825248571351938573699061340598311998212837031184660825688851469737663227464060174367115840125953162415673317976027740201221895784731657985775908551419481729273583279148461763136192743697181630939956700120951362422435708203323289480395930173001342084469181854682205391798814831880479107948030159870802752430078693209077749619728894430181685512395945664191257578178198482002525075294397914424624017835566520318338550677080017059414916549877083589471277948873657030810593773204501260012983970065599611130447077054035033109162488067382152019847081280158468271593459201157785689283833237963340510736339837468234407481249324514967257361266302605775778185484186586238133903927011504204974448668686728612687119630427231031638450687472494999006425771873311353250358871403337075330121392671871556859366386925172399982421879115661329115246359389820424678934078521738454227181460069933848782276851349389252215714498102735473299387446252559069431305878512730809271665091793432518370414823135203857614211931210050756423153317856221064849947214159005418172260061218252781417258101841881854484668075051372691889940526955719828899768101089525496913947027472804338167583689420270314171925559142578638296819866687397519474210373955976899035187831664233331171857860848149916454069438502663301658730726181878285056237935881835024359527752406294876071282688377654378485174776250871969694066951673185045309186440527376389549996747521523085391688479363584119349068473552450864566789909170601533148585159123772451600221069926020948971595292347151174550596843992891561395053977864745798421575504218369843763035129007840311624742256692400700776563824010338763917530818683978032027291306936894092348475103573822011261110977114627212829252485020284023563059422925999764366913337947335668289842257760204155872564331622212867524731343191727474001071078166667689178674537832565784828651444528205828514451309894521948723767391464129574658176804522022144281513346526192876056579788187828536197754405463033616161251783577009522200464030109534873090998035404830604782122680424124883711532639867313962796176837718408609841996878607842991026737824233532878725638442537129928023853612038003339307573125373941053485408548956623179754665961259047317920998875838499009347265085899702534301169787310854904125548473958219767375059102923650197333181596698063947316338642806048613409292903123554330236627411179646361969214835492213343031935009755239019368380064698643239316305208871948879981018890513599612448973493068969084465712504850267685901786624630059068108192827277277046848328044543309039111902192136348729400653887712524709710013749796017577675248491452591741726886714808002981660665811823535584625365103935918415805444066749200877396668726332097202335754978327588427073481277496744022504102316072869427571618296526218108484341418414561856051001167097822046833854679013430423530966704028522900454249502168849249619755566371512461622123345780547062957104325205758913641096565228742941076910894194453755650539979202530419286376720609492150830394818225850937599162137022882268741799561102905109891725638618202786787957756992571463859066945211820836648180313104795739926890548563404459021093537423922800644394911890554178719360760514623215395567318587583989788518073478272406354902932897732635207177634211137700525076074852303385896558296984872066629088451247755444634818643711390620748081166965107300153755084813187175325255261013649338823237999750114095453679747534442491306202855034901473222484656548519847597972226809533030020529723357759823301616017576223359991273478720333545068035583737424127866425887945491219162835246727501648833940193423408338253842338012095853867782153971502642115333532311329897086909001813283170112296045753492779755720816833245856582003082041125429908132043347801817853732703136158035092376371876592422812398957003379852375978764578180218999049125676195334880622892732500378049615583344434227007570114611795606926743599154370677648038128386517503631057362258833573519524896871452254979883896205229477218896070903042358900679789115227772493589550201092864997911134842820059650698194619526133474611953125040816193551658779341098724969781855057416047758777142659435339779271610944761124030443507798845637696610879452388517576989766122703869168392129204827662984565350080347652534107422538848005387587588972967560877748963309861732982786998202085947190695721155148162434679199633630163278228019580498700449155594636672319751638118469803459057294243413651472370439380215642017660068221162382693877393883172006552271028965858233263223023052711226028691079612697068917151194976909171685710172707563913263593610418409319184776457629890571765843632555025748083650602348050175234431229215107859091828040685064456632896318293723944342375717120292387154931537454008765619433381546817782002830807179820475315308422893460661860854209971265052091134028657129581414841793688434895993037333253229705229986180046241426568306771049266420541720888492546232650986638988058401196167980004726980501803894522045242737895351316701483217227702252636648899828031867337172135371329156580280647863393710199542466080809384971522542380815995776560808318046014986340820467095604781602561638013769149003303873747806837549050607733072666707880785589569329494057936839964054664053768067743544223085594704308041451147834573028213493453109105623310182269130080692398440079030753418754093583742095972114628449629225526556754063957946378762468386662491403577002391273654674411333431583948201070396112269888333839765397826819887279358412099619301252601206802439967953338857575895097137521899307172323142192771779123417569899339860276034837995139058649004790732107226174717830572794292993805373939669320206130263427818751728939899180947460220506291674237954322277504749332344379223288790500619478315007677330069450957704330461233639474923601281030703369458634540908563167508321305999515595435999136408984479198151029697612579256246436741430278181727807697480542770520810296067459743626238582556064269992295397092276119559591451398143483415629522831794213811300363379710341840157590888446718920315499501080720225183237692969546073653298207308511148656567949964428784597419454440993255545712698718456499295196992759751993046190107201032449917173061927246181551299966436009788203659957886024501081683858260748424028562417050910650259664523904749453136708599321008573384388037694202423063619430144734713135701042904383519119721252011590190271765368173686800479625884817218296140117682250000929563654165609860193065023890833870202206749577096750226814928145870034771188052064928777851527557820404945479681960709714580088557793009450725472058407128418882858425260989576918428165892497921762781371201257998361093240711756383214410698574077318889783980964160926516968184882678711843266977171346065724648189126160377554049672718889698370260381661507802553558780316019581567032563416355958278162144999333822945569837088212241698905616462420399972865207308012641808951281156489084686472662854634920143921593392873023295327595475474004016084009535382001814186228334605589846196756455720607428822523414481300387615581253207902139353535882499536443411699191823219705565414481159373393626233379317200228679639805876851061829595501407552592357104201168711498992414900969261476268506531495391734429449511293809791655638904838495538933468478338100001939400657207443256088166977073702422946121390665371088110584600908307520127673082790040270725526377410140660438520191657804613255956665917014866872103940232772717879149592678843772529614870497121110301485018382512771620174383008747550127472574769031307429282518140985910623488276507787971650678678870995340955850057359589219937227130715667739566368088115152365564992655045328998621353432273255380333424697987840060227026083504339680695901616928491275311070587312174343327232393801113095539608064741951615027585381441086643271784909371882537438317498929972465178892767836302538339171445588393628315058472653261724429097148074034751403793119930694241820774209110761369387473659277662915376833898086587318325403546115858180125135580263182071169100111416639259827354663720420157502672305978007677235068618274789911331312857448655532055783510078532377468547038559088911610483174351471987915610324827833487045358942798932849040113946555172607521227492637745947027119986728835027402579478742058822801578373459935099214884628404833647446798238846459242576529633931404873630968583762841875605223135808751132363866658627952910024596929667589364698202197370461857853412514149474568433138397783876035976394305932670096050462819411808056577445919478785604615940955853013668653759833720411274307688049910384793869454593085619315867938058058438977639564372112255585836677059595526990122154536832079939140591868662526228058235288906469035191128899866583840274702968897752582791802072997943337347672186390322758348087484835432587511927535883908533350132665522572133532845760090530838943939921520022463340094286107348513944454764466568594165417411478143505539759220096224621575422987544561579958952520460989725642229698031037803281770525154839249892387442503878095823246570732361071079779413946746802928883855048977566889766209988623546857404557142175725456012495185396059140733661516822699229864060732597299151592314200850455955858057354045507170085032269072857166178210295432020581987118317273286520708226629242710183780600623425548524558339694822213507972970552054431708153600844341009472125548575222019195550892883056058942361793261982400332518741090349586460340626419171716905124886912103341532793836094947830894857385855349137763377604512541583736686604822684523046624027148544756729865706851703032492774689731784164054533223472152629840607702059467337392511725171639686042495128848084004270759993171841350692372996048281414602108871575441902990541991545696257604569301006176519524192140495937802158474612097509439485071303894898041823764742065928025982442087471647910765219506932974417261324586919776349520128864094315174254264137779975644647531547546406945804685161504037766192280399696042222531939836008244901110097138645253924917331255116876093788919635470514573386540764238425942383955140327376741347743493266660342540629229174817019809812279848351174206123114470898688608088892294821516761907163038036338116376441235645639152106703115465745348006499890570472751772187142435038168931433434785066236464441706602591014884422757288393483996977011288869628302009129547252376752831963517363516009548673658377664519598524068893807869837416415660865133289492425144200127199495770362417020224539448735552775244238668980964227867989249083621349691467155805497652040608171819299211960854124620742228760860925248715600246303802293959016783627039351621922100951597474486724260595080342778204653148094739762622914753073531245853093930834846386384743723062859801788939184836340040302333350755768232464715370742025836694954160870390564408737532404240622810422324554510084311097443007742502356261329503064345784711751852926348182978791299773759044003640845179865338089753509131061071290400266642084693161977864875170338297207569667915322070173349835548733545365618740253803639469057309818586687583784910093900482846267322532111123292605493903426278539670109192207986939809917222948141460393950574297498559122203757330876784693793850546963853626157535332575831542564204029387178269556401473173948555086367757033626395608144400529848201671330863323153347481449187176210785254206486745109751060183921146909298913910918241466831954828355544734800116236638553688739209636748181708040423983844182732261035488722610867263913658145614775914688153809728044060420953756460076888318065854940622540934118763173650648040337373515111116428622414410674567855964703935324931145095218953708454865418227422743176862537399008054438857161877859759811189522627924072992968512899312598652094231709130037551702497299392990663159384621394046090805287385699688045134081533503179485031760203244671354825147031722632857886889664554864894160939406809528707662974111509318075778587247926076307424428405343642494801771380579589574139993050522480595865010114609001381686381735839036106589317479581925937801717519001635375765867512366980885927109092957968882171107911580221216948109634867912917908984661629449894535166703584069347965704151602508294220484435956374490472517445002867451647846540718512053710449912734919013099637758822243567067322083692836714264162518018770036667448274150022503838875843115411286705873614501254729977725780170722499991007967277112242931820298533989532543180178262496732937624410702663139380281769012086245868200922589123814623283258964174970403135083436051582582125888209368384004279466030039235224373576771921872960523389420553932981725100311543895371874582627198123465671927158251371067244484477738424275789931348595775236079024795327705991446206688096048826585815031392324031324357220566513128569739642819280556593283016136054185448313842389841676956469023451817701767796751345865512363452182322828688500805817972714033756711803054088638974960560013193746314231455692976689224686659717904665672338457473941016907406716045252498379448341857741768371396748322978508377295284957274889849057453561543217867017957276126859767477078285675453686415445974386274941777898710557297176946503990566841619399611661073939025325860574857607817649408537193795523245462152162725221299434862033057334359983872423881927466231874952067542753316895280539146217573897962214953016157654184740480062898683010661430391863933478535502856200402705090830481983068357181086498885475798449510417658010911615218498967792819885979384794333778372949187843003016334046069704753866664856299573397576879102133937770724123462802805465835013281204466385550974041492688618242095368475182403290132017037675197948704795283424849343904180385048483629134910143895246934141840306997861199494949881977787407436094236487962840573856557620545070262805692549938041296644255249949309541295552870542125681528716764653393192710518723565737785589046383073841159838748329889311583938722168080989687455487089685867500094365242196972637990841762108044124069418045174454824982724060915467290135283926014769299297520682995004021101998249918102597928665042756406256149818617734965484177240059386090920354341797198420688925913680215067181856480927485302673527945271257468587785851631302936349706629677199579060019277869556857008418654928201559524992957783058548571983858802432352278721203348305976954174523820580591029994167158103305914165952421762598542993034316458693254245150227540128051159103748393287810758754726039344962408123247075818445325667320663690626618877319004744858356633114249320295024753416736418099822032305303206878726628006460273884399744104019122381757205333311990090979605485427272249701275135280117901025289027414655350140177488205562655188547826852649666193170216404552431520851081171768126627138627821474622618106433946316488255032529878044342243633211673480323726507737388840697660027516384344266057175566565235439963003159947514232385196596324583086118799270047403487531932485793503802676202039789837151989413028702587853760458409791292933855932199329625481952005978564718099795471380192254469366273806111672299425750246667003978322261140012804648045837098582592537195891758019249930632744104071002417366232338734008236575361643615986143348567718761250731932862471575977338366541966465990984658655449351629384999216812236017602093106869294156769399772578699496579164095596422281271573536993247474196893726325443306676131946228898664799997185835235025461242088976031829064584366758624407817924025322479560409756229038796709980565872116279348448373833869505128079719603978577811682124771922184949751443469794989913088851245209955269113627041518640658810996060574591398945461828623700975982351079526615060448407344541660786471102101273531437904264292273840156535937902325793406472124910185449898282460425729383243529127331188375015896865925045087226083242816668475835662491783611682402120131020902090624622231410511036560146023962896692874549373071079627777615026462816933902083452375370979387728732325329808767859074178819028088435603010923960804446478154277962911753616670360089486825599155344432172377340498047941628468122230066588158974954095730932868233174877289991281914014887372187880958260254185220241498931614385717208122530460351997889286396757131211101020631050811057448219436419938461907571679402841626242460697615669627954060471968807956454157111177808998089594771325814900199698088165744569414273038654489813490523698532807381738874599283641268839179538576559465444805454679402695895383871052626572314689211682630467906231262434383955983460578392885666938741671310309235052797024475037538762874557475564701411125804617243169879797873422000259703778099912433406050948631776823317900429836650063631913736503863646325543002808529135344420569662847283968698228864609764451230938318149795831010365039542310048213859321916731931478882570889907652694838171299122916753683674908482446981755957941162472886168484397998383791128011324413822678803380755290199957573827887301724583653212041226266627611903333669074188715189592222012250872311842229265358791691448200509432263452983197959857690035090197631770355529713770139396889925652319521977417924683457820577772496700063959980344009070492556259727931426999766578711332652416881656312563109433650649689322499590933419466388617025292916359087848009666187350752200939830038647823278314704733943818081610518744952568609166307440187218469347710928538631346170604981832907773898923213280044942858760926003001463595972974964467876099583986769606558227092390738188297536469928627357986607953464829181110196607938889355263116535608761702520182795250930559647914606479120259239137955636770891062320166206545270100358814938405007406607873828155752214943275304827536591205202005233538225323888222942521148995041981800249711901525209108111577096277125320611848098156635435725297691954974447976222143159321194532590729294709248632920380773006475215219077866088345351193651070435719908428556118260493755299380094345531860350393639708892270936475318861505436049080344044489222605510135227917364626902088387686680578599148333760969740114644806853562925766013698458845174082755831663147204414730123213473249388760707995192482479197674692693911400411651442540516960092938216438664595242954045191712760315515951194802791835032173359395766929744940504727431443473485348635107695247784820577286583630922342155913261727079233148586798056258900985218870783273010959361046910380728628942459624921108662678824743576394003900140698960080040506136117377284926791326002157898435454063009751045025577596761990185660143641686437588821199054265688619651509512643983152373039780356572520812981664954560603558464245426672033944071266782947180673276938295300877573107044223731462342631057015234829905344827829768973043461738433477730072653937767543644069624940365020337670670270837045034333793799466849963078073025276957722469104728431171036521575149548289581110179368451009167771214302433835320913109579897851874431389354868721551906492240383373617292982254276586282053131247489976930031729351595305519352629059615190151713829662380199198076985132527246388912258695813594329252714941088394428273757468741247852437080525266496728611466042829909790755548073836764297690955892260649353478942348182522089800972558985929521019107857305565391155739683978285785285717515956847883071666460325844310994142066744181482103085109584812470602258333772303922907751689666820856457031806910728428886047219454539790362595322920776291523113227721970801901968555395845694663244935257148224593129620248233156048216281053197668387511289173234313081653119336312578081276475586498455677930466958101740620529848914874392564235481385273664520351144293711266784211595127137073763023919305473925840328810311770939600998130800095917632897453010729964167515998621085260815831126147582097750031335917240828318882064133751143466021783619961716400404971169038112663599972391785759589807143652901516134468588052361438089185160882458856688508973652167985051250165691574798854569125304262513478542577239517421143084350119516787965830819827358930008923979267731440356193987714555262423509855698230812076589766858436886856555262291077263786606069413116082805678105484786489808824333604252040913036838438716836554310315609537470832403195132427726713136064990680976661704612459612449046278032905785793495806749830425031985872938006095555881181365588765916808828011649969967909330653414052480240616895197299434540398646888561016655446426910894851732353124633352461002871490426697044800429857578951968326665015167800429791086145994869656470846840717889176171262206610453451658309664624117960425733357319545136442391594425626422108460772808450609353566843416152882473487169345755701506916956087694289336050045547698582879670533485703138842363249580772240572827391098251349689465475729271242010280529036540064445223922737252697943726215043749449767156426933047670521634759669174703249894841254419127766655256457177933960187998220444722290493485997994893481902141419352789664107539122616160976197860028885250043872327193548316713561225240250485463354776834338734162506682084791045634123948900048034052546414072901020969154366132297356610884220250064211147868760325427467674545957450862590143765015353724794822918714153119630369635075740336325859219250142721637394183841632437029213955085134706430135037361475460164020535763277987957874697915976813082883633631683364344336785454176014204428822153758102471357555872466783644606333524513344175884638480763076962580316735072956292101009018896453435125659133604603384201838687297745059130867448382703008869275436180059266979014415949264965075975608349983534549241058524295586805090766246197054196438885479794788923025024255165482712649492754091303454349398696467079760034603881918265050882904115103886925794916331321414547174331741703557732530903101169886646068342434012210786532669323301614222064600937367833341391257181994145208041459181210191349370504089816781553416503297251175312576299149205028783184602095833601186622696312338040021841352031131929522405638154040481218702502411365219194007869907941932225201589686321937894001145924158693960949216620416056747530685732892761369970538527340631004836203454043038505117209818630860269467334642821545785819042511636186053628038937452586378651195066087828615358705912152768453841911857831705977769645391495719988824531738124773218760727248891851212164762292723812005888678533203308726008685822240033407215345135211289345897184183443599154507355075120746359061233211162226525637554032859956870161490772077937373350519599026625370155426778254836905357213677818661719862164832921942360000847471470794065357553954387284746608130168175678134223116772595267829159663087905129987849183668302840554994857219822278193647181960521909010170969892247328226594511973514850086987162358793223042416119731892963532372077149604290584812038776086758655797286104459481339657502910297030183371326993915097828393230183511647247594763872399711079959307874141972533739516103734623867435604558145827897483102222573964284242042817095408878525026705206776149449326640201311606432270211869414993808571282895925026579546477120639966718348260957347811815575025621258196058785990108258323508323553182518616026501330835286444616844356536432527167090281564620091869894406841153043583450679621725261202230059632596508386255158495137298482944141236542245727841195403813827663826737148176224165145317601006150027829102026200495365677558810998055996485869619497550412531223568291064868606696444213484975103845064978457691422545854503172260426941349734587652857111439758428068340885410704136131401116868022868000615356167897510238127378860969676116898524268254738076197470007917626534080332276812755695601392515961309904776747593284536420788109113546131100235652135276665083681567984910873309431573064744332792636636543713618411825814459864849158011459362431344256287813404249337113023586790124662597532170576166950613949700893235226468767641784205996986796540893272667382148060414047021716138540212695677107425702243515468582632729109789016793259317865878596589894041107318599920543069818997222606630921056377677827911634190423666092189914909861526403462210314094454470719945028350045258401421761963542223573511328450193789648280763175998740934732742867598041545476714846806062839605784688293595515151006577064217852659102448548628137771389492331316645732629372110646227670317459136835482991339730859120879212090421809942753401474363526702686953431983380897702330498572243937669072311124586986499474111969432571130074768525177843330840195325500163676508452577169863051690959609787598213907700721983388305838668726121961636017745324898717808094793088573367673905110595804297425909320259281927305932353014001639412471027739475786004286700766315287617776868874780124084484632654953846270569279467894032454768041354507420990028128987454845516291581860207047483437515976687184214231620360478861147064033372744247066853331645360139332611952729906966144573452135333261848266582277766598910819789880443973636643146627582531323936320842257665530395033488814728594579452188569601542716092227399600834856129225130663974801304095702562412235685617745240102330073783183742321077102769857936516007300613332546083526819682680577666918369705720912874367343911200173572569418361959219122460038081314026317528546248900340576642309334567614172278696911823247850686326412046820154037438099094322010525404331288799377150803568969116816065788405883697733517777508771556956799054932401571256746889785078411538073905586056426966749571123314483723199709050502805203973342647945967724032318034128809920439350614263074305226484248224435775380196540309345148356648254897554683569738166214942472587358223767379289441067897036681815032314856329365403671718616537953182130706576940919694691297204848149117376754011161257799255451615547154120644527483938956230132855355662574003216922407757659631747135339906156247626251856839417827930919760855201640547781504857773607839132696781813006049718910311948509188292549307877643172453042690661099637048403070805691702299980595515686371649275661284731355926595602599739588311275968031183734099444238643891828111576011639110311068518862282634585478663047476494799998847333390785506760824707311980489513360896756298222228995628151911582355697498910036363549107558783520350549025409077282533635245224474820982585051613724955579555059671255767778601203115463236664056871024758531955932428277821942823084755531974826330610447461662137222842465491409707445183992714572975132803874038265623397397485695316152689214938379734357149961193712186019591036990933457531167466827163335434482972682002586535301852164594260580364800377392645527179182254982797549808365810623687364703550901478697716762532770009043712175994721021110583974328035346063513211917682131053674564242435062960456135414331965714689993825941078068525143142024806747340761789969950417142779666358234491307837716950033011302624228209887550275636181810319650724403204831286068194413981170821023961675950215065717141864800840899939432614784712832707815350989745597037315172324765694865065671625686649296786678563030420803487163961518134962977825314613304189656295298878232587000617207318655459186762847831030972556710170861461943842616364093962374100846090862709581904183917664373159509851773434844322783573869117193135859709821118937617711839093073193703950681198900754187199404351684298598260398495410627950792680753816957376613441741749474011810734195137316647000680922315223458965925695736082031459321382911150502037237520956544387399280729685775143725134765498666676980923490501428439557023968461305729092809605521922529536452588470504218007562621084957352327028551179274010197379238275696519051590537980613200913030535364307197352337163507135951870760789146725866154434194414075947570434367169902025365815012469283729091383989771992782518967944531730472742344876863279785676766293165540535738560709486465099569132533815678951138493090522310788254053622362129404823409987417422526462645448899419601237930107962929481991963617795895287345448058813880776202337836372984457815529375963711935291713616377242094793299489503447628842179089825096097941655670736214016647817823629348493728882230056813443708337060530772886876143258492986014427609361431519021999308673822429407545759528291880743888768024278317157726507862036403421895500898755685533806726759212787693949888324085820529873743392033849699821241106781711142172525698783961030361806993991818769680318093679702132453067803200261159435103502117890594925950469284673183576574266826210994140515487225558006187580151803025967540848065261811356272436207559761940926845963668424839284891380124070913774072421721878132615817560151174386449589723906797231764893566810276262522858663698768748620185175544559409895181688920429635315909501961361171341537309546210996958789783392320108266499669026322289705772809184864979323674605010110581821499722677633808338824227693938731432866833265684888975367557702779136133340714119606438208951104617233031472016641418764291887319553691430878057445967688126638790062123925144919876768066115296477759872687500019371012601672219637315432991880120910111857774692640429774829474920477409960139668645311605277266740941590016123411007034522442233169788596314782543876946458002812531343847671832408527480385389905026108208186667614774453708778154002138721830769556287415880329980809596315251289648903660282697579499813935120863498985690010361746601245254518624175278611448296429645996279865477415044194441781670355970653454465693078920361760276345590255169446743934362482682782053300901554939330863443228778139249534721397090732132341003966618153179791742969953867443160629630302066935943354440561970009376797102168291713386791596392117539582882667489626386566214329856586455343822012452909223351078317328615582637473702606086735829328635306009932231436139602723949368336217614655619271145850614451815176999479014620931357448383666506375135842562472254113931719039620875167678995882354925416611052225349993343083739224136606134592103297077874929048553772440405471794282344692480018777257000296795909005252483504805873680793110699594662919907204129991754172058854714802220373049565427620292486600676355959937590614516769210851565199148762498439225934841739404734010125804257585843808308312896252628251588346140944573107438283996501074532309937553597820003886736238820645491411842735169057394651440813328745410936154270550359710555057082492237720878083441674954937331826556655309732619006271369473745382621304107630757333346541126554646757213170821092331337017417533333222256926670037777844340190245909645729341836456259807841276254933054309379975717539367391679325907855012360660578259522223892138075490526139625546313323865068080932502400093105281330158501595771017447300193250395584975982591056491605048910725953544358963672583088108616017631367652917312900365369836118887139864711049802971685750978382831733747322506974076456852523049713187996455227796215657158623237208257871217113466981694511924186411725925327911880288583240028832326802650416975487193223517837921341162969282721473814245446574336649499273236626648294900443441885617180515923172966552475088756574127733262689111502591271904265607559804014774637220247717622970654465463156015708082650067158096022196455413041632271401131961312265809337743572891853241976252985184768696458661219993336063890520522295815599832385731019473203182185350828612960682491503523118063307854625522289129310675464549402937576328345095147107333699419973236407476228663868319184418640401518753409565398278100401459314871028332703825279669871376271667459018680297327352966844137588881454964340324825204225439629441343618911883833376256924886263455468168766978342105381089858475148835940953535831884130398805203403460048330863841695117481525073631528413746792423405055796430195340365369867294404972053988238098338202182911042601075925603083191586330875219074855218236240666596849163533933210563305346315055522905227128059506101418453467517198845419459414697756258307887869762051485572778989815555758854037263017846696567279719121078295811935827243670418930838030201927647769251549326553724453709542144392614795509743590084133801147895720254910122528942645294680327123551452985886555450154150696377011768476156689125594416541753607471634468920634203714224501257233851803105417659459207236177761193617144473831798024053252925259015994500046980712514621328717237697392100275441410769730965665452597126783933303626387801449640630946911279038839804370864128668522155891939148332665581980841893733029892631636676023482013460882360136507754263615491901490489586710206558068109138298281359705745730090564907669114505245250424334418694622775179475169111367761160934048526041071252676033883205435802120756016200347914960163212392358081485505280902878348874125556982625954164216805549576344484825182210756038470312760116218160168042985265526038096649855468780535958509314849942836017647582326204949045825597954416821667400673833027277749243677677550448480473059185422784557977146359287688218424130176336339964815330503080062245602754471834281703148583285415138723205457159736266856575592760002888708493237620673534261164685562599280407244280375631129607065377801026206678715646824070973429408493486619176250519803663460172945686495291419885765216303073288725684496132734129613505633335290131411862733939810095533739937215312070939279387576003991882616300140872500594424309362195929778672803820202921983252553247273649349939800119407788820644127794973195097122154017595343168488177496232879134418425885664183073117658275920986456201239971104178714284596068042913337650064814764540602946103008617962414697762353361325358444974670841364384806693518243753716886920391904033045885036566850143700225978514224009655204103739856934053958074833300465299249030816190354703662343099581975609502765904194320974798749593467325136880853940866788598631076034842381069221921789362028125479787979032072416932362802164790104279861379396746409844816858029149244567721088115053350760667686597857917546111868148956511224541696263693422331256646244991011108937886199943653676047876139223370442422980278281369076856247769055037320721034285462454165917437509181101475520904112304321589731967021576280610762950940450618924006485994086530985094207181018054695807957732738249780236603676989771060136839293136404650530857895799908848580758911315665484305558993396165533667548031766054413294888929666061548910356929573522622327764628206120395395012914927623319513057768934265394727045689984830704626453031751213316180556449306889499886138567858641292769428084025658022218378147218055667616242408439671104426036092829078328788912706513424991569754457834511154387251114813607124720311051018169242770503605528432876080804355143774223179040755622133174329490940711603987136106104840986874599101992325470128483040194935859897250995962696889360976460536124215053430618973216727745567015771402105548699436821188324120809921482140171653089198668042082510608841155873773276876121993171000485843753913844940144627493896545432855449756353214015123480889420118873023806076337871827162485149071223828474370433573253144191764030402343938901373601940053445779350634897109261232901154404018112735628640963469107039933075445950922997018677965983800478898737718877416492634858111974583678814365791498178132334875578973834805250710297184485321223458158615315151148246073520449586850846822473437213403012121861450903166009912194376388302281899209125103871213206279950452351043158722551713056695245114988693522329509804483932284265965383835846302263767830628873271769211375793170651509071540816042040409279188137298065382305236480002584666335598007565663958037795168498214755466375712794018093529981424128246929480670854597345252649274624722898596194412566386894839216954705564677632468425677657969348183501557697482018423698870718099225428133234575482621866862564282879443390238561492035231412296698758534996203723878350752485627645590042914906017976524995220520689626798111333564782795378501902256452153751506012253549248603112842244977450873198746791985002571975811993115320871209636289239193265086248689871596649859395264885822002184269856175027890866115770530554709985083839699860332195519094733931050190771855527365084441379521129604230944632271639369303413625004619381737416451012279128592063374735937305085440601666298528027753745572713609708370832684934070905295566885988484561805440569228826012860164326531644295137542509822732573149636517358852214042119590847057443532067577420574224831509856729606956953623187480258752118554733699223282312305629914391924372185516335984713059025099615074790105731515601034031914063013134473857240942681722436017217362525314407873079991594079207576359385355213565292000683636630741091580947902827160730496276552103844143582376378964424223474375369629674935746390812941255289362263447801985157507524465359386933578053095311362088680359555691741601899223603151442524417111940885908671026483783966472568218372722146540505425372578486217613139663382556992709314107173082923200871186750086226807894614610460889619850890187918786347594203182239626036471779277561417755464228370411553055194637544748784841128065163243406318513710701871924954515340687123211491326969565984368435185020548666222315230491464344038963857505923341453630933844019822682576071407685035267011077852723850868586173478330198396142884895284731082532647265086318010089473084346319307103184416896195697463964476118597967003718928629439202833372286263780267046506946549903910006914658604536949866436843597709614593190548916503440235021408279052664699688982512955072080046682524877780846968386614939171826598853042071069166215393353972870590962937130151513040605600447936816032928818286140652376637023603608745853332646590241307804501892819568621397452973620475324112765481978764386224648781112898919008693807405300886406291215057923396763748763498998089116933131152624206970097055983606335251730985754587989054784458384130722002617238555591030323576837233145316683283101065135867794754237840075764931629014140895269254367574049942022096855463183812287730513299315641079142689137489532123014167329229035782149065358159813079807890437838538429623569452518188212058162312568770933616461105398671567802843730575836674694299770378474394530878651642258091864044238977595112503609806670544652487491573769364400682453533640728799435717877509951762191123623367725743971159562041006001944541244430153281608197329085091957867483985494381492308644012771718444201636773524283717760971404247171279687949966415152769848678018112457325641645663654424198753857795338775443327748751428569746635851876091644600145104101081469409023411902181013395348800292473808271150659823348703134122875906186742146605937764692671253551331621411023319257762611995036954119934125338379895059902544593654042892898862769117625457900303711894591104802400531443525222890157740971136223782271888350853936693828519209061627437440210225383300823491078331245881053326853295031941018683226073572524901636932612168649074172154652111880835335527542311221976728274723065861002144017530837186273017967557611965336159809826804611421751101356884188652699106320442000042052625044975583753990807724460918331914523663213110049896298343884675176784811698259857801354442158239529718262119139660235430590360315215004531359025708990470741977093280354812813638309904369546914152830639091985235280721213746650296885285220122426807486047246573125377666723663699775029208581684388703482428760498769188895047978423800209323751941664702582673621449758539534567528554287622044734068553015444774906293590612127828021421542460412753651765399473176080603395187258500505571398179261513878797959679979818580153665099038039802337668774499108503683370597493743341298306038710019452574831150401505418727823568474781033522052014891940494238530715647620447347946061352861114642019064691322195687216663618921471533047743569227987332539148612270295482324146101277576562652305404958199879772243616705518791922753690500066994946575142103597296862043316822311741355446819236362688246512181493593096735502771993106313096282602055971151612831313593973729854285796381683558018893452585333601392007088455843137185235232712451829437072893279059073202049392136877984629595712115059236536556713215007495396920765484380254569745634929549027976948628396466037601196844573417805157040382517201032480600006730625602395168827741048729049274770036375041435975326152871980784648371285276420206428795286265272658693653422285706454386078551889219186476440100451795495934314647796325655639091279522493494589583045140626029349839514185642241666642655780101825313686966226681723996405275580822858686665348135303153696936070695168202460275061107259397664858710136943129735065983421802602448661295702817117202990530842607307817919461393137656719466527721475795706212956540179209768798437475818916207003960356180753400751319592625057721006944864590372504273760861013952198252320527337003683135383718974939292800530007977271787509225451125793146956121641413885247213572495397665192362875770100956709045699917580366247720610411286080943990506962719563247606296764337761480398062942331991496080023750252993017758211558218672409702183021658895069541689958591210226922070253951243452065465937277619959584032113031954636663999357120983812651015244713534480854618421212826660996077777075975354527228810400825721678501657058627908362284497778693967855114090628691383255255164582641028436907734646946862248276534105558142799811872811131758845484039785264088626634937297427112108686860133409299088610716871719380312069243169758307981090755145072971240652450393313330130372864351836178496042075928548026687298171056362836818143042163081056251939439968902388329046441096802138787520652592150085011397020905528601802469618180899941169244563228161639427115966965170725601813579733401495189893299676711507076911771866939391633497441572741350043847207899295262696465852731800610337868461958257135847220153868838290293418598721548282501227594386218126584811081574072423241843942724368603377557923015298337474348926634799758136642722901309703942387476711777199488272386309161591947810799674121807153215850081398258367412244908174636370235725751095224628230818062514612044692532076891880541386987146034506070166390908542933816814622678090979353705261012046034754127873447366640226120233991041420947673778527886659214589841080857568793180057971959082376555922579971959591370764875400178993257360565846191101918280805101957835880601404059235395580209084163348793112901657098573321345727587218727514085945313874646357903380935416770684167414796705847860631077691881262159580455004760905578102429431453115197831233423176628979741146687517868439010342842930364179179263364905073589843238458044785158476216841122889889152693122213391732589250030476183684384319182091245895289055376828057026132819702196522760700962568780106305070308477327190431458306864710010704857923248076615962085375214551169424290800325970329894231325860241586197002328690033643024230890582527224275046154318821337723655411238609153723782913955948123174717444089524827729818255985940855283791266003027406060350108089996622348078781646865712817999684054519096106847193340145629869687118268281821685845055491986484118946000865737610071998378426950768291835214051770726805968962904288941251520227773005886083259880494565292544658492655098160713086463216103200983048841754856341991866541169050336949936551341360999462240044023723692694370347042896666864394578952140231925033559010551284880786689793399038407833493198064607415460445296771673944044610570707899830069014087659236410287633227726654494406049592986548101674453786178933529932111033875497597696675998619047999585682771008646507378223698108660861466735271058860879610082840712858616937041532346915030254631159264122906715192246551828395952898664461865072047470582411700433522951600561203043639338875731776304359300174154491241475598999124859694455214682283607775539100846329270976997468839981962112034605071240050596298691660907194517306886393173377251738169947694075419315965077535905228543790171940216834662317733054054762897907959406975843175311194778094040039310448715453692257825707567276050985060232791810038876054826560489121834649051665885923737260292537759909318950714143327644744920743251383682465213231601190940486240553328247449452208854594229287322917214110127963195396067409484592418171062362700484288819409739866375480226430247762424910696769796218903844147311906269612725022765043834474169567134743696367528473594646316218906200323643743168388553270194115830593826594967217315375571876148323546256905661324229384433873092814060547564546145457217062783465729845068077486810394379974205358493431888019573193243774741363562416094944446015433496084979319203499369215754453517031616035776428293572181357695569016262835946405589332136086696948919559088300140153432258950776960410703476598545343551812771187087531951075345090833996942047833083824082957243172736203514982692052716133696568818932458740057395246212421901031070810106435619370244215796123561915871003979778759793987594932202750384688273300324413555724711358388582560680928041055881759345798421233513157506545565072499335467593358668304822587149236054075843215446043145575380717494096912316110254112397628368311711050516835552939475489620736943716383660508888000395698123361307489146929445611727911355088774638921391684111267730655206112727246416096927601161037515509932410472981981090650820673554336883445591010217867590969121996437574651560511274734031241396401600485862496941154294633079255958819258033404021618073519135627270649473283605181426166824219891339200089861569024682169722331647877070440625044751060456930657022291599338799777140011451901008247662922408064710769221074042852159724992310672386119440192510887176253378075897558274832580768804519140721605916569035057440648750317959691458831541354040465256859223376974594970680801936892094460124975171963627152583207917266587645051450400302775456036556760267208231093820760715673407921836992941149225174364879408022362745887740425588435628344913623006851688006100592309993256564180319006069097324690784541665265230588369481675407731646473297416713471117420805350796661740079711908018930295081578122998336372698300548790366032994452267402855483901222902238126642386254395682431985959036326411595966866458218145212223303324795267515656266651296813087851403634333167478723237589977777436020834837173756863402654428290648932604555705297178014624715078170848596423203958768700325909349402420878924239172292379952747464675298902552965666111501835500358478633932726426431761409913540024794916541622395663162007955716993353955421656567602015261089143945083133991473179483729573973005992185889247853838943179310171098569613816049542452594436899182197172178731596818452146222732883767437108407896125117332173234593914627548623111735309727781434534982567335502110680479946988743569470737964903044063107962646918435701807783910190010813606141534034411704128954495380002470561099538759885937233710597738391311604170337363029391597493648753582182904964117270468515412530964205280751897937822024106657856635081966468813542090583713789844665779977170546805453354190341280293381946243874650937840871884361922406230723773057968247222880395291867375093160664846347494024256534149315303918860293157703580014387932158408007465905301693887619915650985619996994659531247162661863700605507486640521686052504675279357175756098426950568132852806243780535543997753480437436083916464293779316023792217704438002273382096471145568953305709915794729579684496071303378038544404453037014609197138949964728896255323846669830953980077431124487245714954197756495194893992783730821650738079435254475758877167549195678634721782245349709483108075696720908741848442740693807863332932700547739562796741902556431362254918020567451486333388478830471198061677197809729053185989103844780321884311760694968262211038545386466015245696146605857624253115138113440741835888558481392727952748769753466103120955705034376022435810371930307739982919545569818168916952760493433761279541351116349498536375286295674247758462618258248750819403556658986606206687688668587946924411930197241143438794869116171937366615569096345507786321178493786496374237362933861269406700313827017925023496550361981664041013035920628851963539565824176021708371914304950720798061819653945607482132660394069283787590266378762193343133056235861772875404432891249986351685206799306634964410716939454757263587195172492681489698169619570298453676717170866231892968882067208666794187857948468037029373285240923774373597006036595524597591039918747317343432069269207284091534596780030813073485842329824453981266504576322663683004964698006474624243863187565920217698095689859620083619542426932927044730431045589452539507714260167805048060447148076691559612957583827554718938342503026911605336480820110805352544447358244708458357658712994926033408190683426674149945659371135290647322330119885270065059461793765326561398314485957753799351974981762279419296172422845722047724921249852647966006550151451171610737205541726099603010780237620717272446636187597311490009842645963292110811667253580529425904980030835815876104044494758459415802828361046396634719509773354648504137034595671862175238055420917182723436284531982005957187208524652367264229875083071392985748455892371828834912538753759470894245442133677484748422563192489902812056231792172932959387227833138913662709359971937834065489693880195297799669411620057198891888333850191100176896389056485195992458250513077762175432918839169755491153752467288928392021230834824942267438294377827366244528089281307819489442866913406135409413456045097729603564527406728872769530018259049564984982289086026560114787519176969538793560552790378623893051297202606121918486864832598187513301082259833368098056523191309348924763671735228721453399988065204928591445258802429451484424470072658668356855338702385736690239403442498959739917429902834931708608062772363263900655815252893299877938903069032246657479203512868066628823491763522918109119381535765925100085854663530633091326030903294744085975831656433482064960246559234550847530098980282303700692328919080126887165525219447860505731955573439933080589057882748652424513338414560113924123332564236292593201178921549885352885569181105433271570804119583454776298553919543202228866688032023893974117369733601019641148106425127625273943847301400632955789828215277036740255490144584128382339720973161825885961593460215451975433210161981804078521415404358878073872683375736932642827858622303597730102562121886109016277673050368855913349592749435939505510848187758253716346118302093139672568520244951944380100315541200840228944877864030388163741603446365833639905484330145687799624778725079439741396174073469984072168785194501938451528350318351139935069129842220301643642353400647926109313058802757974029160113301977543846921124388582428594962336180916208233369489015630621391073175482352737559263352142487888671240240148206788393190456518510162431691210646355600433730808475827200532612315434603773961568237890813291795368073488339901688952021481481894938233063238725608802904979460413542980362214961083748951558721790489132452069178680110669024267971480614184951268454377829083367944116825608456014595703175911919572692551678749840296242537890189079425239386742765604227023670209085273483886265899953069511059272439430675437638915166374015496955296572426433136049530714702334199084414096595538835734465450675671967423415265955843713515620532309693062975593554881875871442969464746514011618589745716055612751885860747785114003269775075152713159764807992870655997684564786237727484810530588510873323801962000102334582906155675743615966050936378027424996242218305736563462080968835364191367861660354877582221908535279458786592343813312742562046225418320509500276095344185162353730727250649373538589299243119582675397916597807312423733423288173457666730713712106560157137961559779737008074562439452802211359432461951835083474617886587865416309246281580489674764814105392943032739191849142570854130071995680678902118656977449943846117633690899429325726999772416663547824179302251754371867158019614609716024109780809788400723950225981440227380987219378207042768269468242990940732803571876252153317818340596204492713155892462049703059371018130398862682190016790296476794357639407815400500557276160903336368925320525511179250833815927233060265258606658101123530278674634719523673049946118818544981171698425537305618642748634611932312996554881659353000732734192113080928317253192921637541256675794802909718124126258570293318573180867546203305515729568578918354792270933185066079378408626908212589707279069981534575593812794998984463432259187961437405106923977933408441948198615598305612401229557226686243629484060593799745141309339046291415267343905397832133329645383778137435190340252118508764698815348727792681629590940618842390192933935812869212594462597239289682150491548028956449623255342053223907456373468047743861890437716195229071652773780084663186109261339125580687900946567322038133712427066339879135095798191043754565148589800437067435997688061814195979686793112145300550335688793454688903427785922909990716284594885028080252676749077287440347480240476717303302467087882801764489163863080867394023368643360137288223723719753216897267759453384590464018977687739096252115319868420952872774754138022509005338165181300001490668120372570824526177877826734439646251105493284258375431574297959397977449644233605678572918316048163877831532768614724089959220132813132744480180492373769519284634274695968716850225816261249674813685491746349314295097772860594138109439269273155427617407685668287119567575400685576503723281980675098447112021979264338538511212165408386737513248207934252382927462585737958791518344410153701665281658951281740115717455083609798093001209017618543756617911992249965023016540308987778996829588359881167896219744200782458905077296762856832353087326391178514010785965434493345063720381476090766930845985685931341869555967716472391858927111675636807215064778424321116335448375075167788826733125451116961518702109277521253143006771241364893282655127649136075646410333228171232080084063768422588809226516151871491742802540006356295355519431223753025722367580873249552309928131158462258911771135102411475834317690657403997703047718404112640333278058977341728989289121917983146643492998607427759805277914590329537243189377876365599083197000823833036086604993655643599272524625304145421823874387469337869350584020606596643541041129305087381963436642935064452287615377235905119465459612382359593303893420678038591472126611789463386127087534548517989958515893179089976097631884253280775910727576512799290829799983787743571259220720021392013725447317716557696965347093298614683270245526823271346109356366211631279045237016599631904826581381130213797067485533751734149895829920178398898508942448444389313583252209107505111239608207308239984141422085338860906439349525172300294356197395648671717512766163625315578771292926579109821285311139704274226094793192831895476990404111223579903953718299000149750758515394594776437261979308595604711696856008594032683735799641024950003175648747881398260764547324124150256389365212037189497135178936091772495762912031079316360393213873571644694523010360630648379886624911845198575556420937991268590659657904603218524749460037827220845288050306109746056300992431140201330084989269645649346843692455155257580944244496899349796624293987223742556906417732478099448935235586784335695790792464419436424521550380564003345248451439381618830397052528244024372100583209923579372370062927141789748811232042868336249926292817061054726828095802620353188092821995145479100972466791698338334053369939884950635972258491437983204822780133313674039177368652299620887565599828586017008370408381786044507627261555862143023870585499363972046188169468826264976412545652920641871101807487973199831857889486637277433008483483197317990568968463886843908905212671627907455877255933297948082085614990839186982202157368940384042758468966783657186660362095223185997469782881220216864157357997131670689408625260145913007784142238917461391358272446609589770284926778488748784330201166052661466851283238382101402896393579307421103322875119474996731019579503498483562403264694477337354874721315560922803023361250776900570302297387702718278187338018138111867956522207574445772030292593196128133992431738899076512935258466430235816605137241610044120146807733811939299008293090577621897488294978238026503244170220759123949183370751415243231152950098297557675757128322562233390075067388682779417513312346462234412763941495831139650100108043946115616723459133082974347709091805678692504743096709845951034539359250311385994273434553995704167870604704529698600145588817221984179923233558516251545612833056738871285596363929706666867134271447429064738971279959472988312208495940332478439674524192693212569165712424947363614123615918224073439824810694951210082428546962142877704426614321589766497185534943941617041003902867954441985021479660057164292632477845070079954512308178071024955931613212485913830216932282306928550066822150081597118616234316047551761265389422381091148848387475322762981393791756165314225551240872720960753804955096944481461558323240118471870507226161167162225727781530145923075173813889243586134586766706907959853262256088348972005096895889127476638885246332162987990704676047309659270208968997882139597728786899275382541630963309622595722209136702914696537795751899840076786640665330227972710746680228755554560481977103465940587948739409657167853996121538371533998580824931896790395448901836659748497439878198333161225528620468215063337169063288937780049596424181616816819863501971802705248991136190387291524214394599524962458418205719923894190869680788604145640489327117225515274010247820506553898461264670021897002701951539124638125484908879809580450414062658630822329512592263339961851627850797939514022595986874305977013149737426672255917971727536407086724947085395137377544194632254824832259218442702275776276800139802068201418148986988116502800830145016605024330789785026085852203585905181343295450403504691340663388854300415820064218693118065379666527198090904128311575540860797195110207059533698729752778311054275887974471090605082147691558991126264526478387962221632615208254249740924279125737860877880062905434155483542625886704558652674762161646685187554200879416622846676402479038863089262846700132577808870706013997835392716323782700094737775573155355782109607808894357082948126082232180476541627069505975973153186848203927497438498591378171791590068047840172345487523029415515459672411881119951655162825121185986660907735152504210362333901746096914294200501751771480662997233700277925981287365030587985513888968480459434696868233487792752442036995404759490985760568756183265791912136223302940776880677757955694677737471275302904005608528017970823897799397872166600689221138175642825648680583903106030919185658849929405387914207305322863756189647061195121430982023794497009386121558308372567914939309014077865857150983822711569440530851132664914750375169143321660206039821765397864634040407635446913299534951504976675390693570969742467184952952186210124893822640763131710931120347730958701639787112978372981963116286727772317782967238247736855564505817753222637341882676421035521177743811401175139273553990124764101967296518594168543772533894552547288743461861371221307589337462231961217101742585884529869242693135181817179772771850743741556774405839146291938361058603523760195782716563652202393036734569868077713113870425621782531293186898754870065310076413761966821935929747198917668865214099262755733034151904099606851375758349574204992246558380246857595514414115107330817315265074356986855829556410667070724283881603688849606900203593473267067875992170245838992981974472237206000483491153314072871506856055871752872633880502040547383564865204456953199178500155166343138092361837616774200973783187052873708024415044749553764020213962804936357740893341684329796760079090373590332868963711204612448421771914459657352930559888097723836939600481236326519834691371559977835816861351392485093893486542739760312720464693671105439059668510716872182234951310903489012973573382061044294599910132223446580988793469654324536130753238519029669482422080603651178732487342164713217361355331465761862272942535897661071279043288073280670886237439800252283331508283239714241754557285542980653273357211572710629956423856617673508532506386411034164945491027079781732201202966843439518142560810804373934507717883341238542110525134490929632177975040629458647688093475758056015664985453907258874081381481765832725825023135485942114073551742175449654456835271804562704390628798962069413221234283973064755007856810252401931479178576742533901771755916211010943732306851232638046286254967674109808690381441419133875896091451300762036740160259508697622309595922354229815336980611865166953563997113857134486158206641297914129211852360003271926456950187548039893051457986268172870616724046516737009423585838051532081295399708890477405109677224864574766131392926396943117727247823662906686094181907794930079033201317141251082322122679461268732685917170705529025659727775044495852313084868958525012579904885611475654773695007091288197602769691502529351422371374930708809597072337457834463955474147678162410510445531646440805404570781187527178561369798964028409023825807009282819069308729114800984637609874733226443229722907371014355013278579856810815075470491498872358766878844685985344390526417169790671519782675937112686823019844317124384465636626940370979866270478564660056852093360284237620010879459478669378881065011308277539210328535463916865039355773906905954681519325091838276196878565961267166578322038201002307541537014606047854451470375948728665242319550778650402779215749081474943132532326649364962334837112092458085394639081682668723126854283889784257214350890152018269063759038047110773708189207215117957103246271482180607425711070034694855236804829595158965175557132676288250563452465402505839957686884579541722836523785769169744515301241032630454082989244754366136572861626807694927399235938166391279334839090897378567276486387907440057766208314055525198672124975030370818466750221574799718386748859789240829667184799515568053701555718135250251536541885212453569350107135730782247409268312445027851849244857414976030728124213295947193081717434331647510165003934102250697469560716994052998833943337397178385946769055309695546838890982873496424088076407159408593465372043849427504560733847199392874290752235020529087942936279298401247507534680633359184811608326787103790493149129545599924647677580091701893011967148126916888290927697205084992821711991693228429105088302425369787822423746049405059851520989136485005197439463137560344402677915670837665564571854760783414122324695940731708090176777541563370559368456525479084886421098003661007305820316555316138974215913575219636864383580979130538886599751181574334893708679695620547158386585723231073528194503112555189741063278872457996526629898529117311211927478323289167584703719600762015838291223178536816962533462096422264949384421904777312022624691984278467183305040044424487459473866090785933014469699387301849247667619990822195673136119308622280974574342090973459690391487186542963614745369776479332527318101692209069380006789872911270823945750252742115356844478038034834495088497140264308034836309935391262519113226869261028381528461658276983684091834043923283307069229237676098859075180961538896031893355653671094474517821367880630902470624272209236599441846556838199019450522468625777649586859041699489638312279102726127944577404826320606991663166690878561342290026200088907306102523406136684644779986164193003818472613887244974784454833650615013104855330834571947677020656143250204171556232596078248192023753515472353944352431274819862811292156254082897420608357229739454070550042257039689516045729952128685552306232611807941672923924758526048805597166327439220690327920873423502394790113682520479651145470703176327083116663723439068243573844577169978631167842701453510097968317553501082697077699629306945896850237882314655043251287073872690153455831794911660072057718739878069158090537396640212921724750839058045162521529067543574956739225177882239526095783220491409923312599521679271562309060986875186384184066128165558336818285423841517601218271711533458973113579394772417879048122202031091269185368304193629131809458784350081036210532200544110667723579459189497290199449090053918448449953583857134362451891630382176162138198686086095563208120707475147458037380314860756182121205659679684656721762878430584890343017199437416329012623935112777661599764312930287219680251019218680895022284465092451853518313969578417246065132975672609905702096560169668614107126179621478600349838888655434230716172616552254362065097282884450898373739951327079126531879814635116784207701085297375888999032816126178139606835689437111318477571581052924970811349952493293711007654965724986232956143636610710556792352387845117191250907640417077935302675151794605086223491581745947813518067839692026102843848965284226582913371371717073928086625434721602207857375387406731888786357939485620987560195967916663541404216082102187098389207675075487816295505851994295085025455214902905851548609760572833908102407384546074843252516611217186693238702838647650115017014998595068583429850851965083073530724100795118163304583737309947347965001234460973654205121776544311261119315859626532502814200342472847440721576618453094403672320853862803453810193492123760863206646766472446101053987080648153728291797613851154264875955981973519362439657671487921362208527872979161865644987041757395782415512821422946709315353860325123119165806592373472909067164300341708243958281870788744694577675379998946532331574596351985217084875937848802636991391781087180936042706615979886210728598657248139865313841281761059085536796000016935812093100771805983901169855476338055549430175775098443746869192362690500399227868170403904748864967839770653854603147788823794501333841543113434163160355999302294965840422399523644681759810519477892941310900381545147624159539320366186944874029529577486409156767217617501621660714242320307319407126421466497577894723114688064443717720432820578785565869500491886940254261740454168830762913633596744301385660064113336295999283937770639254422249387580510797520641814386138654718837786295356173056665731841882799355639900772546014266720017356277077405342615132982472001094848571825371969628052968215647616679986807247042894537046964967257061399250623163340511608943855620217579223476023922255045217797670367468938074678758587882949161390871534535041052631150762578970775910383000837419104364248186560731949650637581503955423143386836207200641569635423668606684058598327273474962567187623725796208958752700670195410702843316941291641080222047989784842887627577260799045683961799505946916678200079802523664044927410622177362348130710685340513602392868447166515265414678612216090896947756624681533099639714608990776831911185299872116857572877789629292037958215318456660452658814138538421716528417393437251166381456121753686699586446630583751671169844256343914176150231012617403838458678922737663940464646739473122869824828671458872262420241637663125660462044076813132220826572942899274351345453165701452335496368217568348366820387696822427857828844576983361226499030002176216848485785850505320956094104265483229940377607757211132507170153044418432546525739616836516895379620724617471437019568988833738519458341250030242871496797978602644510932920245770739460751519782442092695107690702258070011990944585804970799059468632935881285324984279751904503262517785608336730246125724759933187553677553515666795777816647600479986812538204867096145214765656966304192046323270198675368282002378367593542672612504348694987339623971113007792653630028561741235379679896701472921192269043147853558873929344269784942866290770687019827183277119177531226882233574128026736121183842906877136002307141506100685404512820718554996776338301233254804807526196752492759928169775710197992589511529717416137305312118032238464709088288591848567023200826040888473577215814729976195278063910923373889120790948768487198973628406831130666844711453409227742461584026282855142933211392610544951103357552027051257282583890928510352407115226903120409861514196451121046631469869034301370969481615547926798990100923070876142537603882599845060529998881905238244111551766821896397930130830860268609110158393260765314199508130588933596572119978469190559955683738128277124097057263774274001029668743419182548639066842747804925732833670905903854308064746796018610593062635562783644377464788716254893120198098231558801405127437681317233049571405425261158790274470878299999045691760467519304707494385917777061752544821870209718861066534227941536149196550932045900335276488621158777056294511792477512708925648645783593549436319738052426485990068525075458731863273132991033783664772758322625806371187555880659758815578858640889271551298988783717092467278059682815933015895650611581357462786463354296123411199796142807711187321651681473262919803310849472144816414967750521266806571383562006886370491037146202763433193541385462438909080583652979293897050905044549449586641408571031989412533991263089656561656350117027460592047500265298661888804936404674375753209167807104034261652454272094996336253815765828149442572577192938744559225085847056107670031457299984619189726095173003125827740902684657035634205653727221879885212320182437858038677988999351547855900696622038689545967094447335374913559128365578690740234785831190690829534745797662032185475419320203029800161398825658295262861696337470772146178400447807376180255468344096248168893136642639347197120809240096668739222326565916646751129964601978793145187322279420720152974236282279472603225182462709503734885076681794802740724453041490519122512157649744346995085960196957662680469578753507820371607026841957066245326734353644049375878514155091006617197097062803833301723638767882905810988794108260938184981152080739714059023077177907434376007246288052103261375261235792711563611539673451797593232521289055352431228584780040069910446680503638890478419225063755253653672657767704856012719082761453693316073475781620420181640665378947911782030095651299886088216703441803597399254877430517591258280130040931114013673284741400948444254386590658295738672932558895194995718788652921189293796264507972274666602510803603643920991204210624326976105300397285788351469651497758747013008012338610555728199058508288270984846547051997218327499951633033184867194918953925564798149198028955841097200207995696778697869561280352838198527065157454319832847471301767082179607572480362999932702955702181987034702338389153319770228441317895227605869281266758910633910149513920236304402288268867860211663345203413902262687794146218586679572172131233494517819223260888356488579743110531576391205775833842348010645430687693356912572777870724940416303792418898226187380635668368267453942313664815268106959085780903760636524380210911159045824389284725574864576492213298626997884909968844365164087314592627063855334148717927961908844017878827645570077986565233720089455574492097141674558547316981540418701359404749236743516204158535848461475554746567869466700593465071841926864659584983632788745716361873846681846183558287998963440388018167878925231108902539928870765920801241331534161453837687525041696663104502816252942169687989771731075188806176331800633050117349378458579079767763849852473166956944713597538278865737338120764598610827694311571628514703325033903521043528983376730732639007692645431182343931229176436024958417748696541427249620146980270413886259723606263229563810020947931179432841141261991025808550817866220455451816337343557513579937986118294450807889302256182274397769165228519387663004844383143304604436962915517701215816061295866234234479409982331379957046283694593976645022498456642357502757510739946549064316552924659452227207572712384381130036142957193256382907785238914740693796490433525629806551185132085923588782320492611841451520607460638820008963208326966427569531125861024870682086955866998727526664121130204920496089259565005312829096383971850270830337448827783097885569718871433639417538161126843169255338752757555058380727496212897314113560014539567196370616903074555470701780230832059786594600672491143384493314103881195166117633566675220179722323060686652749983327929251427599849979631682281723419164437424467511423912124372830262841889214535847892349440928299107950188215275861313187632776955301941597077816494324969155408695759584234836681793842970996604521348141650194035219040708444832678256076034337765561186492772632426776585828065504522478151381885790280282085753663140284892388683907182938645618273016440570424895296074909797783898927939855063646018431201217441080496543474417625999924455054375290675320425020830098650461061174625590514819493280574673634783793968381418432265244034753121757114260810982390118738022806447371344549567757332268131223676863873609798729813343438978854207762105469800253974745437773761814428695804458269102588386804006509253718860521286321093002584795981182634484194710291158556462533782743404335602504007079560242448909837379412107301016876837273439101824146761853077078657043469933032544138827351050213834175860792193079548622864750634541502038498742643555268211410720676402607845974174795606610828859117214757207921179504028110724811503316073835842640979569524608829733946306160335531251307346881815355321283438342456835298587570274486115807573325713470800019663115590749592888461928009989175258021894499495434087829193406552678134137630026735708391421304878096297591301187270282692516085223924735105667176730880924591914694202029932903140873241246904934501187179316931929046981772894702942826909795478827028029637497067883025078834709040153797767937941433720098059929625739384008079673509594468075757416168508204139603044679078897221035903722612701246613988203743099559261175519754664541841296081924085419785315429164856943872959058419022038148296322500815804045609664466322899827821767424575696631072099213065437236963256759074581001114895340935098817836473108196462426117122213607328374812583377941948116679859110257094485269212531053803202721311862971372862423411913376826356523084023748438126249080912497411413452593209533471564339000511719472834528580838926036103405238138831831994438011124397518703463179350014830107190564999148063166156395400915741986527835059460872357929598106706788422943425059418677661372048990385256197907635139855326126083472919775873999085062803329574505598901263890164838380157826462258571260476284556613743284974835485930660256902385573586911659017056078102208626408317897951430658639438324852671699587877716217013497203549494193449365633339170372839071326800933534320483532167686697981072707193330466889707622744549202150405147761267705223680222978646785606454274970003753530284562787700481758535440306274597626319751089394715730120868895653583805941196175796442867018042178847633520425203675906500716313429084563091756039767751575349823750378731194948528484335580872635954701609280685250018608039981946500939033031782695246063747310001167293091833230237899964216596992069467133485434634671136663769394961937879305821338809681315020060352125935955949700745735361986249395028897928127721756302880263180121976000824251743084861664423771914377390501261305754022730224820309942044877196699248486360670921027968482225660694749887480125521323769510629634998902511742326853487686237339381198660669829284351487460431100213750545859114284838148346523353886401806303604676208217322063024303612257218827894575609783907575193015384239709431801651749658713350933582397474213075662509789669279931389257415142426730271261161545860627659564932606346326837991456857250256539594819349311467434046833829424215321739679770572933252031376828354866195526764632528146239136948811593386597358384745176209837704450148257258281650629952688691135545480858859457502922002288068646270288042356284330474910709809988175825963590591629205184889094444019859088126094397007040282422710343487446387002547241686920967630376044870607757106350127591540302829624407117696418864496519817041967999532600926906620793444491240775860762954782630502244966521365766250311909985874965817135917976288159201172457344805209364865670106752081469880160661372290439555082094886813343451098181505707412838483698528925950410014674087010030746801878127611199178840785466865068374167812639723137377061915040313823363838824782419783419149339474955741755076783338770939081117194009680241644999672094806761414779450467888615751966971488160836169120780708793066692095222376059248767539243271296459781475404187227396041988543005429073349980503871576302091264393755668372861556776422579315534299774167123305998674630545252928925291490991036904387676451343959455812674307264564396690298541022112550470639572288071708849940967631558615012795813910005268476639512849189066519010611295265339113321622531520178023825317418036718577245103951018129138489302947707846593021435537652648551176321284151019560489285121283916311930368560067738827942939151036326438400880599264675067805701898049935494092159201107466036498011432936872290323561510823066086160286969816398257718437157517407502784023010281030643272754415785356510823509236007036028387698256492352965467385226128278267483384158188695168637257102031845928109597375901110744986730615348697740910730785056114317047059536758299731734624857140804837791439621047664867810853917515113039325936997597183221001712438878572418965155038489031979861932280638727507628337184556688128178289816024300239957954252649706515502850166527754435324853730271079784886238791454758088499943693737676987872023946046127015332289359507874525522201674367497167146779437266392406480105762977024157813282022942492603542156024132264453083683310463018736780749329253680602386604789328432068043685229730831457420121711892129205418650383724337857142465144931728165207009671724548457154646681054535749534156443791194783273571539926992064995170347910968706730376039385407203277963903497063022494175940864167637771302284686436086178368488052707975904147855798874922527683787345042919702848908013836283876895758725830652957312233658418556277587783472252192456267634911863295305378601258331147056643751775215806898563198230264783711395721790682701755407682223309217576423938557334169900589728075714905435813432599487060210904141362458111194402639647122666260006032874192191573374580584668483577270124878773295987484079115145565455639174620051483457771880043687622257960677966112824995744586398967707233776873813688888513815455054896110069659389302084052902650827587792614294436483069140148725908838486763919435969180795633271915684202475867955711618978154524109459942127882800128850105466658494914428996771575803856558718761139930443908794583766897383716616230409981383107932864902393992568481970541247990048334207670420991735405150676163602022431220236637080200740391290956201437881243097923495604060099630650395061174457747114337767152814056345949433672118361053791536979234214299308582075986379633482705562265323718554210501169934327284462146504188283584030147060261374192455671971050989576166964612031372746984739048176288381139210109887949516958743757397259745152659016117116806368426673606513854134558802513505435497020097979978284672348504195633967613155784606618870502335170902349692518367029713950383039923004787375359789670654829114511575857008817516435174935206147940615564368440634404610245607271835270781701513760066340264026332160397522017391684075448406231525767090265677428555402085728508207540733807309750416723160835076105518285922657028561274456470141608535940565341472990243998611646937538263257253328757355371310507067687001941113696689407518019130649142337418557879384636697417067871214257745854850616515540531217013633694483945164002683053624526429925776858173759669889338547241190055147916055598400540943052497241287260923644444307026597722266814354973233845507726516397512886243758781347081733261966832596963899015253660590853020871447110583439865802270451462305290950469370284092752091939168292474584815334279508708541867826250532978322128948637128836638957905088338506254301348433325941724446143532140248704004757287360752605855812511559244646545428494255439882753585152077734219150262960649988583626173336005126585174485237654790117881810341848914168538821724606311311426373768666005089433309490056896233620199334460569407237852685140109998670133609912192015078482437701814414797018155239018293712923688160185611594665972613720307382199972206752551361455191299797425877291720688191315644410095115353053024193273490105396686209773355192689825963218966977193881687702195406009572117235990939924678753230364979607194169807325289672298645862363202275758794497795437051847125763122664245316542139484144509942389694768429757099041239162461064808628909685284488495311691928570544737312311510268949199050225391719667004196614369882986779986407962810295535413528663549159015903794218907138177699395322323057731897760970809595930519127935687833639313520230369281396027065507257214653792834973557003716230038552875591672285425115123737080845405749923648760324447883673525586524340124957106539266904475836159080392106839454933783546592467291997313211177927570396594965492257344878007807451249126353755987108538993388229679524440128599379722269834037675244316559949875695807393763287247088713785554096800339791517625179089528182230318153246727491987590764334008314252839262242240730203617878655140069788906575995637420954141414918143180015289488212309537534209556237763168515091260995206542786402546005545061679837689361223301316400639282353619507665209290430981062469747385859271629921233892127619521928535061958780259172882248920182794674696999418402611412420224573661618085722734921791526364059802422484574587398200363104484592024749099361452654316866309847217885609914015747423683474192441758123321245055377514018166750803721518681927019241431836918083233606605556010584796793245516521269653831089031279301922882179369405699706051856447777279417626340989460262852003401569090000268527547295214689900533633366950608755431515009314022707565501597400701844071753494422869214674484928916597531327664578232525403408089419666759419669201378731744384936968002222393353590361536050105166495099122683492903372678639422701285218326593538529190828039341337427073279206810753426285126957243469043117832669237103100859876681013966163459650054448495698448849878064497729109737270367470908802503573282466032743608333533269586154795046648625618429781456147562973660963556454421425941126342779088818466308983514081793410532361325830604667084948405312411134786257931959091371027479521480636517917839730140866938579841887669693393439980306331125384623520690267659194033401179779448143389131517377674481387359190430431352127697628704630487833524983568059071336878125990243283598124125537671800389891708088168293692797029111020759319654578847249197313763115513046279559272840711493018640515304447982380532880030965285574586592500689953952624441060928101355008826224005644092929096290102930363031060325240651660157575489818780109896384491207696429905797213591696273602320276732799482402792008108623007778732768575412635195995577705437227855941405680637277436070288868519051225598813872614462276035202918889864600993679904009065711219724698553443352997191403955375188337406899035274764625049037305524623446697409429969772350728753551554386720681773939320968911667430463178790183417055808421207725291716878356289024874658176924197539665634476821278968046048749053055418943016078173654726468647356944765740760175679454049013185357802261338028002107634173908310897486085774374360325443332357188916915784763542643352698377235637892280006048418881994931082767131029923505810260537122167145700769256166204087397395368303421626607869374903833454767063728923822406669958659177089645228477252567487620658194878058455670286283756050196325487788723874870278724609208798261071182892202673660252491957024255508885194485222246469031116790721923993168847176217373935775326422860849328702920213353765043031786323657167499350998025750793225091195933142376781767715554892646583474595209611235284744525331798489791688481598313941701033303487725573051328739778242519036026977052586757505040470481377792163375609718853896045094874159055364340788292012493517138722947935712629839725584825972961286356261888052186954049703846263279042432130745807524224012330912134813496756065241553357662026393106928988177031273558673609494582342516444929821648405964711799169499935269820258617808022216634439191437216899896495061948293899618668096812030126788779086135127748056714331898602282792413955524663767989541197476745455537026561034822807500272022037649166805371455196778599511871496777929550876464153497728985530546374497358941049385694311279952544537675052800343524751310645656871379864390755982318188813623919704883992687903278374561794939892553222148756602836456095503752437351466881809536025128726539090507171416157198580237161607959271263221376448919286671695555284622710072850558997786635121163104205726347741961943890009081882123681079774506568031536015728739440542531375841721960280709153000227505870938684442340270581331394441817600325087237098259247398815036147759030376631246361098686459947390976609313209812662812214486755763198819930637494204395389461242288745648649748821096672871544040346826816402347358579317219489755569791992132898821990355853545796654910392683095097438604227273152806437300661016426609111291710073678132824497080360853251752645965429733702175149235704735243833974422451355353700835086059452900744268273002435626256585086455777085974767918856763661862646069489756637737783817321696594742134994284778642575854994999486386235588790742453333979797993197147504524799405439495497005196768223038904596868353447944954249538984861054623369201463337242470825609813347895456483268152295783861112661137176281340726715336767887410109684832681986258542989912414145772328394824337997030450955402280758915645049370024396653613768499793790246840612469624191511460882811337953874666916170062159288496683520031280628162674626459221030437198332495009370572186093544014588267699498751606945226793891455206692901909729791042688372851515096743109532942818790746857303067524040659119914321677153730081709620440061290691077658553040817958273230389667104641103590636991205104564751277610557530357328705254006366877677086135030544523928744636021726822579882312873792094759985308157196536986217345744050549085599008797723299299082612513483740115639747467244400733658474977533027387018801915989239444458813477850273687973189877639245188169044258249407579782802818867795619287270978448355064731614736270222170610478614882720867995635563686578771160168727955367635194199452711949371979187546284557152852742089122394612987346664435878780711138379639502479732757991568605277742111373908653442694923109534551144447725059837217104498780173128960391759517901743172401049390234219990014929915088121617885695990570256231851963469815480940917124693025447070760440952681172522210316944073964387105709500964913215273384867124757371213930203491092063653842465871697301532464582064654656750522608474813422708906351162205448645265522029686268709220712816632106425333498272906093808897961697034919101305557059563582511641283240850873129294289036284677343670744651773053286327957233995829747023393222588323307753997247817487683234445832733754659131522391073410345615178834605277219795642889206345982374219736563920528302373095474499509167480027209028464590460298078945696727225519535449044680448075255468095136375636422310211442739599008183501256130216981056682175807217797873012645538891068256391524309103299303461529096586166595378375908026230859075243130382080366582438859211691208017113776727805322492694291680634495786433862934770015802222393126747315317436667176461448225050220007801320860264703561111209194254902807888650550278977643946452929522665377162476769354993625284248488051652012306585286066653366082996348351117625261316619973081403497107300934367690708982391359667705049821762862575126392665306757321599373321093930786692404371375901225952741159715529829535834587174799088058056264676765033793149418659425360098801485698124227300339329526908659549421774749682738668470313675186174398236100863820506050192024824666923060742653322795445185011633598299043140338817486591026656984873317374279958190460191914030058876860159206442835866087916430148570861403592968659558231278149859002657351841698286574535413089605732710875573432254499010997116967750126890654343089163647075112777418986404528543589061972795887249112322937692783206988403777657747024130825545177742122027925714936857777548184987972567323721832758833101084959054907700520190629618387625806430246396363638774809152991573021460980762609978702815239386052518273442679788704619906981271642591519482230486303712315217620428664451421012823015956049988376674701705379851427736592763371011916351858572896405836394190626730203290957870049226683755604559593109548939729137884349138738576981641326621326358554105251666657657910367739384520099400020933326923275055632413947246972426219226635432450027496695784200334319810668799524107622308223969628730991644685917283882962291654843537067642081358491401106902129734836607174184062371775686432382076602426593426945707315089925165179631672544801664144036341418184853670582204997742823548506133730259618441629697280604829016215535851831200195806739598279696548161003040440298277436300448729370675809964415350590888260917709948592065015799419615554537094116779092522984397029856934851670383513380023349082954227285987604255246616008848976560446401963805832019519221593323162952205167374460649558626108603900057613921214898605614692195013054479034311470903171641855779300193396714733987171609285137023918833195241260786686735321875286911747805647586999961323901024381372223128229541116825391282085397729014783698291922136777378410595393359880911189276382647801806190923820696312244114658827557881297375516318551435949875960300368577645713127863996968390897130662200184623366389263860079788792801582744044704501463088222606655848844759823329930768370569322987058796969943221374509269095219805586069827739939072527097403122483451302106306313017988406950985677580168964587750354360848856150879038660780164282220700303323800378323390493656517552700596625928294662982106650687621489005947652343441557376782672022175889424605770981197866088852976837938278828503715229485753624695195573472210402114428333183416171615386136611012918328716734209354356936817336072251421845617663388009096786753332424394250836747489708562403835168755890462958853528073768730204841271920343756072005543478211395111560580630539161187134257179564736136614250853362836083075051434323237018563030248875509336023289519966439153526509938246893076375523236229952035331495581246025129345726180555631430127405526239532942663136225066447645859037252579789923590004927950601519745432264650399557241486034069481309388948103438141039820326932015822436789621165644961025386620523509281605140152587099787802909563875688018604994460787861641520007486382135116714886824339123864969640069121142647355873182901035538751682270531259371770563354842833140516092718891021725642849707605761143442892419376665227297101003146960214816501938747210754470903420640314752014439071793617420639722093252910499293615703143837291457530075568599796525774808063338985055176326623144254253110829512299568318362886488615997866477008469405323600866951693262372540520890575073857700914638198672943250490168010301075319252359192839812618454423644381408465254471568395360439210516449175757260490257812951691471369326004110739432381485791391805763098778511662022445723297405756982483667815012047080454118648616766421914555358710587911829051119879407137511632558097689893561713531456801165964379321770436385901212160071521556497630501313492452613616904461888388246764448364724052491576988085338312293978813223699537127870466595312792017400556121718712042080223445400943655759224321014714614001625196166854099080706107302867881657060989898186689068222575045170623720030132198008441840727556744304183389601549533883563785840673882020004328497636649014712107472438664932977977262821583664475995579308630157887798582212745667803436832255561300173824495288101463094749303451535112377169751346732908864763920140416824314384033244520465723211272965672282655081156676312940892427733457779522914547443988985903635661089062401657523903070730390085556957965664063602294351998227885424667385991288266401078951756584684005152801108159313755134972256491370617014740055946940993197567824360565377904219323508209838309734782054360771046467858758734091689114376900168952367570447267225750412191970981124004242508516048946955548658394443537943199209210829986719789351482040707917520029952101201486156155056752279978611671276247303349129387546388310538113313364196531265389337465622346865284761701934042925130902148809510125155404971196824185548874196557286827427988863369013016032423767221953450505605758457771897418834358847845984196406472052948516911137161800308770829876114604074955408746958772476450212548563864774991880287411408912186869141699052329577240557253792724141325757350384386335371255857804994168275490840460281106017687845901244475869368024166513103796064511049971307942014203988254127636325407479333715105071350953510480468350284433217975436806988863238891152114576997521307911528388106935836185203360108791046807955320882330022506573353843869543833534922729423455574057256249666683661103820176216982880348020913436757941975099448360191231655391547909596842427012782227651181476332758850181947462472497995475875748694425261586180749461383311722391519278579182902714228789473585939689823354574417681369219749962744108968226735645805630524112926380119156142674745011384917669825034648493286575098735280831378268215357736298528340321043287933568598438197236904158307879607894571455574480195450943278434268783310161184182616728101190061545624490176186348009532360912110321779618823714829198675467058414307915624824604117074134275352839453926054210356735722943305330135336213270760491051556128916790954491029186950505890908878231046636089302812848892399092341772344262358020518088977278985896521132473025211776758925750087020615773811512774509330466059362931116614845378611746736344472862724354658281270085070424127986172168448164836330675617735673034678561138531868453968366156445836061022320204626564885490669873705602829382958518706211035201814326122638897317799168934544460297710053849016129193387336154477281230476463184296485330162531050491338826628829771772333019415136671816005182786330110900429689559801948382943909430505995790001788099334610294293035273095216768221329884372246528818226862239436706237320984183391866972999301025741473428985452552642615408314044016150507993188912330034061979964057116841200876008140928863701978147628160462237820672467955882487272663998208151786417339458798130851194326251978952921202993476740367467649101308401784386303147363202342167296601733961092224219726253681989290028749056176135317316794348514188872619694370333944908738536088312392037939180932090761562765846669403445718188470792094623465854034325821650960270215410330941750454115827241949500536542176204384628796923280698183113112056397445378234386460944645637740181883666951735423875998933986708241238081107748230183648078186687843903122877317451025580295635083213844606915029813182065055015830380302728310312947113555497166155613521047962950089517695657239390968548488007652411575962840751468786633096144365407487871075535906724951807476405155128070506175972969459027417545081170816487480281685813299247491980262038371713291599997137954238523654521304144513631047597953446694171692395347152818326077106640887835763691018080344547619158878926308852726419907691819884753205981968563119183522783449109685802118684464627267690697964347590559135586400030208429016498739675524874745433783372243907776684619216011036332804253430096024067489621917850746833233474114128601089169239651583977695583676328385616054768736681952957369997129021846649105187566078855497892934196732839979453575118197216619122120091424948842316960710832850617776619592323035017870959618721647224741236376839947134483671672139784703234304224006688594235555752036187811708315690204203721485251350487104463117633866530260575012086551849811184690915789315019044140732886700705846633253241917287739175773735340958184927953853736438852523955896355344703911505093758153136315302864624538591631125832085598912151765698024590825599510551571369014794635109094178497132847980718198553630246290040845849141431250353647477545904638425551099327496020980108333439927310649439075713492138680443340669289438163499512248440668449876595288859090067255340034323463668216701606610797956141560624148213976285554842591011935447169844385834570503061123279021631173749514006749437696105790820521999864040845491637337445537890552372918155827552997543123948744403807501537704455371562753558931581986039653584266688637527607857604035321342883255213501142381731070122271319803141544670535956637505641909490979201321188813030878801434284212303556734235785106354760320468430153968230118387603443290467777390963788378224834310130489269663088274139569297450426824714844745950167259854221948593963540186660598761872449207674208128805326367221605112510306253095129531124814644739385598247491623174004517884421800584020758835951582585080783630434808841205805809927211064804215052749853539206168231479141253591912986937268265935218036294092033124453801173020421048121037089607795154292276265579223360369077973840021857147367199268536452640559037986838102019992816026504786907848755937148354917306346428845566807988337895679169647808438415225331883058803248007380150513850941454395952611434995582824859146996451113629582981482736411774931069861035214423878736974446557648226594576948984430797378721554770651660428508456902181613711526716236215264256927129859429621542982754428239136820212850379031381674798197896781137355628457570647868874505718384711838029000529358622958602614915226786794759155775479384147724859123668340444678332934195131356904264445600013595620918599467819587005674534046772712855187793197740961500597939156853145975032361924340422579860572599376120459492649651791460720743722060122295025757463458638210932064909176719334739445817491925622597705808500110120238296559642548596727948115744424882797341543787614943922580256535010080384530465686542028979290418708713902116349638705461255533775739989632290735689066072919664150512787684563242177552686327961608448136984648405618438530994363619531898704454637319893901188105135725901364428360501021458632709017451998605216719961782106982848077991333780758683032404282573906828834089019323868186061263465256235192601309245078529012151780904725890102437320230148252730691177588991458211233295075669749062877485545759409434298726806814687125521771108688525410076376976039715679131146733293918741174032640827479298495084596332869568601565072901826068468828143126164122798950288450681648597920837863039182032410509075832889126124022672563386760387621979157771181533640137075231886316038597087595276860899518625754680287104502589796216468956930536650763607724092599799702644796135636939215377602335548255989139043951087797632168564075330893765520657416112782222649762290566438805884250402477621158145008551731940889376321892574436296020289111832239922597656789784356350632243752434226367572291905111858648098872404802494767914697519386108413620762171779024667584811343249149802340642838585249559415236892556965042649180709497740114660470038567601015948580881330445391091934445544453272852694356072432958597394465372217722402975181292615521365760629244684252791282292836883152301317533046300335579013989221711695467946230436943373369474965571128648223414125206733455618141532912221291001889893253534866958473802162515429617313945902765936680723209685174466764712224482813333927297439177495927441886405373479873114897863254127681257774695466934228905423743198577393915873963156055071811024126291713191860685938669499769535952493866577852623109291528109397838782968465765906811441072057180629328415772465791707395818802245607256877708944200396872904522108833557944130580676102918372280014348698342562576587312625029058050590627019688839586633780173124981040839800617698936634351084458269109662242563108134729251497804717997235406970768816259638696917706227113538415547633634373227282963178207606190781391327729908260972240025650069926700548539072916020971431891410386907397943832857983730087030966307226945335440067720502964888318296064270300970460016679915791601491919264224721622618689412397349157849292437407260302463947883445114151445163656869454746977501926197898581325957014063634377179177273164409639200357356796260853115889317658374911110140732376574114116029202508671167676385432022028157840554820502248195190902104023872756897399471477855748451597762427308831032913482878069500973255280089142939481015959753819258613914992823539731277110404600269068509024730213739647257264302777160017258656145530283182062595163635607754575251990645503774441643256418785945020136442627530150956486866827034272857924850760601114152537334866290238890539944589004194783579753530152593731675534155788505240162728803980020526661255452207905181601836927657539145805259558876931601834514734753167671350627019207397771770291292486653613048348828817868496659152714198840104802851577208672471709248107420080287319860201855339500484648692699698077916126215388886064163806461243233828116598685720038934329952928887797651555781057249027046575235933540001941280728944517754041767186106737614570066948169561760412072047091775207251396606720446716228922473879691046399364927517435469238135325122492091449568746769077480392090644045284752484845715546491495288678695309731451053935027422992174681085811450208411916544640512008046565549559136490019203646853126879854940199933550965267316382259704547312181711375925458395334681172173128387805204980442354283478146190034656297261422916558215814304287722305683229152531597655981303228718529481035563093777651726766281742880020825631880108512445346217574497695050225980547720606442087682607665106700891904611920411437378253228684019383607717336023282134309399199092500944134025941641680943756979984618395863852457924380817447586720733675075357840606825528759156795767932934372785940713635290727754599283836996920239488377143927741214234091572130568346768991384687840708037217172457200706932199421289664800776755024365681079589593069373915751706831425645203454954839128271398819917885006860454370583683780693147797284849410770642049021738571430627216066796191216352312823388460986522216399661213379486181186014830965636338112558318997377838857339418329547329797043271231988206678550656774076628800867911856321070445591821522454002907218331534481248595217592258026243948663761699633872120486530346517822812120605458277965413340299260171403573251846028647420167806574150906726326634923898229276858683599906745320407229039065637316525651696121660399874887842904799908868857189516724557735698387623272781412879924243383771711231978410261315884371648156928318251971831367817035298461038971193613154705890596814097118494575998688664324555847786492523617727741560313676950739920123080325987315079347159355377985305969854306016701002766860408176226221091552409104195761682075307870460953955379173438492876406345292913486375502814153076678531245608195263221874637623166064386301985343544427084608143302479824156771155626999081271768480144843070270413931138719383914358089848263846429475885597744409429304278993417542979637645780028746809451319390981086761599425692440170326713615804004914955219122023222810094620185111160177341989055132977617406507269648688026591085391514064327434859596576457978988988829610569586697861513950201610310953701636011793753526495493111014832587389279165269144515767187824219885564570754840476952349565466139565686877020747345550167548207958838441949596408694416339093893675178023719073480673941962048201386341067484589789561902907509746660423662509808176762101235639428087489620676043481166925866537167136937823811822576062441553618275651839171245225797928038069637165950711869457232356370880675897731015110963170204045688731672355656729193009479333635258369900099471136207942163439509185996744726599105434460509176956907737992525698269668369744100767022423409371625780514197868544855327835173441950731928185665677271772700771784148051209673990916749584276611354744483549924420956737902011777435748997100050090060007386918230504347326941665132421836350301663263474978245023697436511513420254518720350330763236835198409485771391069705627772243316385839330901166670846122821513748672305683949318665649898710011453234047522705277838841513348505704077268802321317774115120454065874737045532590861037946277223650464337799623314292195956603928428306166526409048983318276495139893463849086046407733882521369970881482255567279480695328715407165167696467954552418281417214011884320068256471131524943432740779016654529173427593486222583630496898598399943569965130319930956875045918672830918196323864751848094416881185422910084602853993334292069183030674392822041421895036199660017955691153655836460814315932023193214611904199695549349063590515510897282867506205526879449108781655844624424654771824704526823708759620487361178509932074275681569513191480947269019911570530620363261948542054338365408513845149575531877472711437435274699286139668876724746597511009995908434010832964867950085985226829549740110228381166580882926317819380353096748167874564783305303674619243031391848051190655824714069930889291203332409888836419830402225643063401652711675997744960875585838367147547550729296879613543970354085529964865336232717445660782676187469129876352898540617398678921368534107082240026789209199973119717766202297288191119713710265339269053932598634552359652259769122109383236411698600386475233254985571076463859535505566989772135808077134622162854096588130692622997829032260586890021194921876877062514357014285224301747007642091290606103637510382537131361542276824214583680706172076687381149946998831246836667967312178039195309935327367397685941049077718384469025888694403559298100904144807737898265729870996208411631247801420716150345715359295768971243905108934926570558086715111568867249287124455093065012498679381158073156551382185171131581757214611756968867593064213292855877799906876081849867638314260561751769886542141838111127953380456990215017835953155671502378672583295258058541187948202780852074641845750521920961282025926064726003628236867477022448714699258767374596402624956916515709790915091916200515015119012537443649177883088797866415109045990485762816639176447046740969504345783403296538363637908008228520966292974522690092847089322317871675677730427127893670084904712288953293466562157470471102346203906488262813090051928608982055715621416655389799679029501246538069082219777221159179471396857461730521500520980461925037626419102605572230322550727762421359039905825246980054973962067414830561934013861275816028910411516943576768831450653472981570835586555567935480586522371874960444963711210635147681365432758260808230277990753829261767481608578963585238397966636229632458756959660194827691113866050935706401489157132190079922568696099201230449690811369559211501278484961906459280352683341765794110805750457681810707489128706923625417608040091482793293030451886325953325804079564905619580794946786152920783152223039841584519287398778655714070012150788330271722095338511497039068998586865652858169091605173479636493973726998578068106763189180984244533016962792023010217778736455446700954996779700687649171936223996022097487318536683941922526453776987679180294768264459755675604732694068196636245554245042911467441820662043270417774412674496325146534194459697207501193002855944339573495102219282232419518231702050773609983056277820992578194108971103338543202892774865015908249522885712600275215131755222924285568423811956702283447981884906883279745888653755704383282662825842276829175199264354607139793743900358843219402966232995837693936519168052636200211562904933339495140223604793145932122682393001841885009779412333652256328938954532473936406668899127624096684504070120694970284953946770446095462687796342124791764686404961257011312551773901884978373265910818693064786631902409466944464369599770867750280825078145566417335640167680217353327193468921853814380633785091750741254731817886113706926460138394396095185914232091539034078860614452038356575222109737936080407252072953256811077792935568484476242316712573950224865535060114043289746139714965144462383152767550347155888898809728740856313497911621874730963500565454549311440549966413282219240989871368667115464663096199826666982802477173804141475677634916569454368565665089666786862526345539363214278231360715816914295895929935665634228096975243716062449284364402927608794063337326092736318658387872446991358734214270771820528788293318973121931434752479563365082670632691495536261200616774397487619121617978799169129814332542265634606994575944420772134731375300385426566715860727511073870032077053880007426191817613136309612704107991855910715029272114615052594671607231673017634147329439252316181075931010681510285261707751256578749094817914988722479535573484959903939982399593998351421112513324165040214146610565587125977673637459616431083478349320421935682077090889017165934666744406029098982187154300985663023648169098371286584479066822137326385694115992991722790175674280243097534427641399560497727218555856995992855542410858604424816126183236665391835939848567215122807735991905308762118292576073794589163232425568676502748187810480939394966445261236623166349033433469693092309013788736631255398425487516710446488375995151010261952719141327199965516962682081837479467778877922568067263834912330825264632921591637221502648468954672584955619965044822026878206481803544273801895967977814179664863234786094322099176308409511086456621700133374867323178536125161959614495619945411898126186146532990399903560286096612192061502529799634382198670135065621115617903599765094216741572731319422584828147277666974120670022339569353086429914255425867504730201501531914272860163928298518286409529512098797002909725618236473022216217138283273383670127708414058371859174759273465698450245097804088766777528487584702595384147048941074572136778994055924671398855870361318039984409659550409888996116116537382384558955469022016298800463808681076981069828269665636170753639643324902619618187419444960989663944653225243062402756199857492698797228162750531002677631821787009948336761111387899163668113719678807867982097357561317789676336072904685509876708186094762304087475940720173222138934467357248547149554239868275026497549362921236371773667226790459931620835351976878507885934602653501178242962396834532964846115220954552248131748705009234850295925784486883610302606602156117487009410710875913111615886453991512256836786665672851858307382668073869341498742827337392505899742856312713253461889178977352461452423428772928663611987995219831775551392183425045412819971470166067947935035838024562421121195308458486840947549921361617504178196389827583634651530070180997139325406918458742316271898754285928023546339284984639669029054902823962643231772392546974168565233209496364630064994523486346024846415007942493786009075413527623401901430486344332891681408520410206578227044615699297566304456204185703015930593952128656239266453025875325943608808669785708994079477968916075353106638320501876717406657338514248790666921499873995216451448058284242520453985372736820056079789093639330551349340046689992297906210932034859340132594172664968373233960410301769780003418899336882298667044364034763626710398449319809035886345291751006581148792639124944297047668105455621874525726917009136036146818877889028162338228466959902216733172209191827846075330976626008877116754134228756695954941528877102244367921810162756352497498452963979048111211018789265179651717820514428087136257017252834798388535858624627824100159936223428150291797887022759777795215309806174595914728611228612023917695509785581985961433395484995499104024685098184882621774875780374476371926136484270514757810462210150191731074125106042908998111220390038620209409425824040204252120199848852490085062507337478883217421954766996018891217460877392001754665214736116837477221677840687696174271632195646372912048338395995671275429914976740617470640671198811210416085339425186500764317693408840187724558303763166502327718666211747314028452429721112423937686656759939584780400837796382576492583063569521100737280526956849647821580065998314544659462891468392078457331190739662778846661653134956983302366297090403221009399016897350130878443554439513972281497641492117816650861213587357597140915372721717173417996616906391272426116069164106354465126979561432861764471526195347035950544038026265706249700655646643735334227441050455839544712404248088870570212374681758118747852001901803107476736425831666173861959458643151066216586301305683819245308283237070823639341130688035874696090044191911257735220291215430005845730477873230843009736661891682161889197983222905597000018605992814864898386209335133414841151232025194174743090324222874239282680475734660165704520081941972780882081931162217882499258864872545366965748751240448349372436401352533390016824007329061244660273797080202534594337007824398956138564460487054976015291433174156375802028842507271349240854143972381091394711409409374006048386313881802849189815269074434408830316602690551515830647351919603182404340776183571754975741630676202023348060339120964744063377587967560203646640458894233952538382679693050103357382102867649658733547342345819690918907177143173348025502292085690885694868916512107111259749029189193756904175654070689516900273008232798734435239891382729669379932281038543421034932331074464666134885952609400906298982803023333431038119545084058130399543504661386002703037777086345345635281517995626814594156352556896231859495395191645593347845462278927919908564304474660185089852299676929920562531821181735909396551234193195991152079547423470691078182490167234985403940462299081316139204688830316110714048094619201310664023452256131364310555252105501473692021576428358077969010680003803054218654722189161175643014750024506700544336269290892636967372414531751582760291266953839727878182620780799067077669029751459397567637964546224959767016436895387000981194196313051423070261154066981766944067794812507486106975389430454924216382413703506071854543490752525789624118696769753336896276402688741686478926429961351449376405648129565025926534242881682483722637790302587501914304979735254841456329756178796064456447282331369334145795154503478590133341829917755298310496845846987923441424096717853529271232293909924242110967086158192120174062445819607447819154817706205395771042668365550546080775281989376235103227618439972188687887823984953525763330313945035076885046960818728821557232012569889034488787118077253781677445502062860893882091009095518786749731613229582492183946784023004107593223634861541002853243907280772369031305921955173149449172381605501632575754657987863763439280209370286064465534516856286724271926756830381870007157375428231713075903787348914721894277021280028813440743577538264053724785460600371464208664915350539372321416363355554581864636191300051882678523010209406553616563873981904306945571480086861219959111270755283138314882590861786057428401740357142571010385972823684754360968406294329201955927207283950729224676135786140005892774460153191245840070377209224397783082987545581272446095639552028459797128861999361759152941204722746950960788128803690213827705022796880088934136972090126084387798880661702441730737912435860552831748433383996456543115423586983078849280714654745073692831702807338251679570812196775207487798654135801288322500699408598161411715994776878109521261274810596427961189849046598569941912363730606268922700748618828201310324845438495427097762056761111042690210383459513758170902768472177108930582671595185303271359007690700165791462712246269041840148189356985311088529008900226295570121032164570939659959126453876702129675012872471898488473495248426118762582593701561659808096857878468420942568930327052829205714564513339275703371580511301488110844018585636225769998615484949681347444772142564855601554694981918416964802030836427970817610989120129295721141515336305262531475747183125733830159152909719743922507478915011787557709943601535568970029646532633629289545989593062033434375638763621273144584584842022421575501083764265974990542633294060094740498269471391602049524904030868910161354639862205774042205269240981766604057940488662503349383042620301667344479857441598444882002145946640109119316256145306452661061661944375044564775637920415087998710365154274268507281915393757794569522221069556320747897726609911806808428730351458338221939351278077994094595975184307322122858592963530661747080180099356952893187473567052423191625145117117386573058657009772166059953826296219313615084665776821054388644011720973513205048897838182806964748104002440967153284915517258898059818288912493294400229250208674732876478516779652543911681904303717723713800513887784370131071329708919815467389824912096301946039922982351101898753877699866813518688992781307858688821627102753654130662102726147757765370166272628583779878041512276251110927629033949756350551438045527920087510143605337478581259587248021009205384603758635994642167512025199903387966500585741981188365356783026504377843206297331601202258454395518589049477982154649946760077950889488723913961968827396348000538301351076235107959466049287841594711207024021922047306882759476878766682405444567190905836686255006735139903403802585917998336013753216198320055025054455426051415191119986295832994686859311081841541879454787072519287793251447920290937101203315188771884718193960835809374002220108866715190748308012295921292727985355795295023064504472954550049626736838754669746982618407809429974765195454050047588586354752000487913920962320510037252105379826384932909185640940483560408591941555978992493362472561274963942899690715014225541780943199578029121075923772302694493398224739715716453421055911365456108861910859318418672717645049759144274841620799052777987922416018525204462996437523316216164897420197643965743708607707773791843300481749803415046233745664590508749394437415201215682235007941308036659667133853506778246176922499959570886257554982848031575799112627604075717377303334044142329028032974303580478287589970844120742070358067040102706550061720801426861752002488317938823100640277021893856035277790858900697789082873804726254044891569878780801177450957580312866129238282219796810492670914083093755268254506986804238994014909740514023732353906630400235292837027602929081801078731939537327403288369751253180884943797889556881982547372330713985199707569818658469485536777424556000585569274313886882938543481408420852193381474338505933152441508928325530094718564383440119545635386611939964201845274277569066318194735493859585467202779459032073513464632456713931480282784336760042086329090067549137475016662225790126822090615257056869213486542895868777958343316691741907124686345175439802221355419534907779591886787665542913708646740134938067205961338720229444157424959809493072642441059778958846549090309595637791077712796207238436238833068106767188560513598790445073529929614797651425588265381049113432537962774364696663402271869630484995663731027171016267247729943604733521050995062169017797608128079963241491642616824592442378326655746955602304287011822438763314731812901100575457892465332243005704345975892892340057581937327469501950883259252247325765801194556402878021241799092748213970467335909641838262313483867759424483897716010957265742319595873425848345468002742878491760324753811663296325840327410573255828804240406782215542909488211908590666528324651645479005442336661826357126295509518214920300455441015193580357175920211394941294155622961888785369269860799805500791770147888987114725615591221869356749522573478773721785108503834158075500845027490234254911581370962496277138846736555547073094731981726259152273664810262983146039611417076537303327670858535584226310431862628377201988704179155751869442757758892047108985343586906424251447728030976574194739151341875931265566286061382528609387473509050187478081851912814396526063772070351672763213149177654672094416587101270158474543663131477693980758178853862877228846885945845975946523262736263120822055985287106678132847441901089714241884781843181611940543549742421938314894097540741880135697224569886208219067950719124386971574870213417318223234795620120682873473835159707587648245437867088552774453950114757244016790369555585475401386558853558003499187455956786215612516868516848173310271097847342309596809857450191696162488048667774714636909043802826117043327578716968894692014630343604226194209112993606501775366163998829428706283664364072378046214665125008497320730862115642223663334198276166120763413191032889726777135606742833442927846268389002098388614737293830282974070087265901636796342285066211360763508812958129002155644652467390191372825485861037223268063849734094366645409938328880500372072120117005313846206942060801948414558770510073201987227716363615722044416572661954048079645393807456914820244826639741371679612931512463618761281576378584915935216291187523830215215325715766840986033878735663997759684612010471213007140520345034465027043946480509126876905277354045748910264908615048870870121292896260014760179018378305237171178795655261465050403023783408727001486780697151523407188346021171310049810853734321038160350513225265466295753350833018857990443551327176951998148700427772203971339058591464331893631702492134132267614921570721788086079903858335982188213343839221721914650970344818563529364400762792943101344683859798070749125341024300290914608210749496145020553637070517353261873810955603800813913043900857335711494607013047308075645660597729180195451604235425380826515099487108348095165895440429465950169386157432299689839245619006957090734094388773232533861910961655228467715285307232710947165958313586117464462326834404020868381019202507705038095355229726736377203156338573193045377329552012105916757613870335657382051003993801114906581349776089070897872653810010757333167636729820130860676125123660601638855458668046595600800132225261839475981540500668974158043624822302510715964657700163807362074252107111614959244188559126959556166795056705675012604468902015105140587687059305473941928553652897171880767076309910379878201521194124111799628548422611482191990244029901896223700798006528052903382824424035070331163919163636647952019358471833346596678694183268585467300011708159598895681887777382465986483757650944087133948136590552170473303763058382352318815261678665908623799413532074620061389593880656878144186091341980697599274173685587539903034621527524782272029599283475192082525002568359462065198548234486539876940919249484733419393532684922266023216056569360808466903872090442640288869467051291409528744739576835184497108325942990143924255931785574167878309115033250340195971434080497412284850392997315354587330905600501498711449881479007123897032073007585817311700051321906565123766732618988164360322932357675474723388677615460193551495236310660437291033901636454809527889666196603678733160420358938604198140935512820006786691220550262635869412348898973639519248374108061351414990502068083877027689870821210529814976933018488253324634254151216412634737553826543908278342272338276251570252565698741460931421450585730281444374643975816322470699984471855161007533492117220905751642353830613652814717218319612436386841544174013022667976211361450842514636899955482336434522629333643465621265923303382153251229454152678723848276896511179452150268934411457822262245822936125919148105336669798234824799504395523982593052120849691734669368996934297517905631940145030346673373193267048794477261645444406436539664290736679154380610535876534874876796895273381799135487986729124311293385289593217644719840354498079773885749941714792411421892547145439903181927158344260909764586834125405214895194173633194276923570206670655303015097823034743682804113184822131356391827230480718030067936176515882331640715969462857502876401870763873257877935967603250681048574693862252583255790247407280874811833423858499540266396281599042128525182643691661424910410265437387822912483684288945131431915726799268354823746077782257579236595022429386516864369071826508848929476503207338881946207472408307050951862251994480060039067487403546647597917726815904537843758822609719956360633259984228858363395986082820864116444936469834195723543694155437907227564734176761444670590545754654225154920114334281445869547713783385701256606920576302711182034082892200448607886840602611344070275171175871914599965308322756483345382068731806138828940544306453527176516636384000865063640631773235681279211644243805857149448152245716426360556659656264727532983426883364320921379802293865881456910795345789817217807076624373727136175875930278482467205991903655324486210522457346122033024449955268703776156340167195333906077189106611927378934693112797367031652448655393353955481309240969656132808701403222253203998843646922872588891615501074885200875536286418093878696047203511589326594523755304531078017467146657886576630774470414523143929125151879525015057137400338154503438054903402988010264659265549281258008675658555241004607367156663645332980068042512279136386878500689872645364463803015491263556756716524725233128167362584437544915333079007878810096319341485422104222058029573687109489629911743796552962063723230111173990161343346548147438612165196588305526446828811390865867303976713830494829549629969384764320545825916448783578248478921699884308368030890813723589540063140683682170718821730267444067773097008229464010831196375656246520891403534922177023826971971219971649327349862173021472826547889487359316512114355643616267467394857929582166826438213487266750798322282415363102640424086865483899560046267915524148286699566706743455989663430615300161838155182628241745689988406249963352714434885884919318731282310564264552495600508427943156184628562920702097385077903553961288979468257137380024082978994033333607785636755068226752875564718830945911788139302613454182580150559386714216926339109969324663710488669057749263313685086230586035498117904733018409429696456010365239984158211382995516964530587743118401669668557369393989317939053299428575891980619748698489735414359939162235456697150237123590723271785536577367510671308015380643134078226479360377172602371431237830599272835512318326880951109672059725410522709238184313049651979770379073035612441016594839485510471358030536048894465787293944783104101823841886629500929473958762070639572629124871005564501223193380706222288250097894080989972416099250801908388200262920739476646447876523708533837707527776024772401087933124809278238337629112067056068737431675428853422553094328628158743945622316495360835508280686832309348687347738254376362425536178892866067467315391883392483504063748169791139533643759012073436867573096784283399155364350057891095069209987615559057748951224099262856363004839115873588797144926671772367915122722808681578168155039520681278830813368944076026626852207576533872216300711442172180816667532780596932940837597007410774784737075485723492867391857696826216334337015253716133138838070085553024476353608625436613158689887284479467207143229056294054751014363977433783211313289599455561374119042810389974354538974944000777126356409958183270544936204434268854968314557728227998096583552564964269354156915999253878201323591219118677231304654156961613266998042429736508083456463446979050062560885634168798362667373152589611801485459062189590158210076126985712696442638250397474890336293291226579838210943818673377350285317952319028158217770364292075621901503882391926289999477759490415141950320775884730835541147832224720256031953321469223014453298806583159053544461100781598514237785746598899495413055363745975823882525009004433455206565642990790545499127133055974006110758886170278469829245696976834855641446178867769604748616006259782613959613385073919172755813237346910793769653329853729842536706560665055177112907757277264426458349350211136803137609144986386253339793878064781359228660350666785514111340223789658852918764148888723429928042314732142061289652718394551921216845110745666046754880276114797490543737657133635363692141371719352822511865453489572747687719877234454171014884523884368264661465099634738337293049049719369729690736160866504919754940265408577024240706035231174160392617357187040445881151842636120598714179150001835962191470688409838084205355358740171989971624143258020923397912172774779421363204528259505248802925213184930709472258061786956228261094837118677251829943137280447534436784813260963652116567421008318075070543276989516912198585692462454728858936431975121342232250836817869905342846061804775489062582147725085940119148153064589848257810546111181971848023019808656220841876443505535224002996153871202642634067448092754822432503239063542841522904376245437471217822530319613188872016252426985441859727359048344691827461278503383550508558128872496244243421074534292613836348682244347584474668945524546874206444339473105424295109943191489327158253660588872298109845578240910168656279576462574248424084768262762701525187932670506220211306139116717833502154550135395277904065877135755422560089170413508828123511039428074640092894386715617574508357152202389859271824670843284405047172010049339547970790606963683264460962384463581308226829328513423291989680474185841863351793965769479049048430304643108475593866127713050939510310837998340270204327426956520963947650166815339053005405361147691158741453072499179772435939580255865101213115261541594902410578455038577688786851999561058742564820397620734519649600933504350956987932911887461504921703459002869930346689396022673007053808205732667382884840440878552069073375307112427309963171168683536684274206599278632429657842466898435474608633009186278248106794478094594099007812625515903090567286549621193753418686320819913899058686601330824238634597640656155742347181133025607833105376971214389245045842845409779328933796845452895878185260512888559542560001749467293375661052241404437282459025576319499711608489190685812160817754040176413273511682412430159264064196270094631742787123032719202212057516804203358209169730001646331315673041647388103978100065106827528110016900420060293514977671409393907294444111377717196808493632427746079819305329109099830621478540116904055092256461630509672160583561134859664900735003404133594392558503221604659724186185548097874249315552851632922017149102925041853412356698454629032830064600993175868957252991906963250740214674079735876347235236255810242198296081474688300893698832922502333858119149527184705901353897223575865869223872005884989408057408319283170072201261541659960913300480753456906709292941583638679001225270068062550610932231861435586266315005629301675994975505189288991301256050690929999593875830405434561871969240708137874720357460076985187263463673686672540120914250869528326412908721113840252336220124465116186829047993031786346908130420830776601996266155043473974515180151664566497390089160897057650479193550339553174436479871083819900438869081539285933856128103028908736538876124068156206242345712658412261719310591322123637239920971159502901702802111541552466745732089682705030923840619828989158662350285132111806174038260664465228273334119306940032135229694363901277848608391923568405256013534518836075904411449893562566970870640718720063761757486144768755110258146730824708246443904310850379512593553691603442328044429376189323791083054831111166773178661435899375860734206955373913066271479987600054726653712339791405725179426237905546534056140626401068866411154118729533485221821675921907797858709768188263273110716409388527223062783339694002540817389003632933117951972298767240404701397141149580299929293205754404002498673509267294594206438296875617618974447430073666642305276636230492563631390834998654379476638122995476287315381323398825390982208569218317179536778901700202184711755583442068360036235398142863034321182950005905159329057430049875867912190776071664113589533536828943355524208692021947116482676713927285712994168861407989020109152738570881306372574855288243659303951246847314630560814684771214372072587626999185547151970095097114469876420486851667417332010577187131488743414919503933595859700221084355982000848821063000875030328796179961960954217728607350638605734443325834638214831718342292446499627156984413217105664377549513236186797260056563478743289327946797888107786981969600916391026099396372084219102213596829363638511834460567165028545374624401557947977384890180989169051422412720214633153262916219423818281969663677877330553135091034949770540576074121001535929642893146070369370570426760771619427981764090262560041257337961546983859611295986674743172881822110067129625034694089551688417473978537759088411192890906933932256933899935703596266856790840010959528139523076989656000273133045039234397436039730920040915582283704577966589321686647195560264803422120133015141088933816074144984683384237742136852361403865766088437850906739627428395763573979769187899236085529798825921363372638653556400428114594259252475933120159105048424202964682023747077189005686297721920346077292679579282051529385230501163519335743795709007817297811856312906697141113018583731417527804878494847739087290874659038356363571579781400117103561935462917997674855106465602161534788593762255679974447343410655359683485532613626972350105221510546992077914901880762128570594766920093463690341350581976902343068137108020151016653858142790245309650410631402800553454466357268465401298272205813734035798596513785788018936403233518278664056340986627954599754246364068010137938384250266137330866641584591641231177970772823204525377681254635197717222137309914305138816518879870221350355428124200434235899760485498163775932591943239977760566609991931582504557674446918070586866911006757361508214652777507211339546813874428815402715057282281450385930007726128876763824195235273245957707408830109934026182244243189862442652666748762236982274622111898068067232232091296505314157135512420233314267496968130485800856344465278025361533896257086858910543185015359743877117425659870092173954046929670545636758595166490758965979825074850224015208009035862571153459980738379151164274223453568883541617577061556863323685985956350837217277483905615340621594417909096627362695548417919214334665352276831697349933752849775360226783877877811532098491492483076395411251155998654256230580850772376440375416006037975985086351891128429012969390579839493698347261089759615816115861692666178584499156998237988934548657012024643107427875730910625513699091017960725589251169477620556062934921473634141436758793520904177485085233663706774540427374991354079319432942891098091922173699178520190871951407222897653515812701830994297239900792218760951713050533058119948696780033235721593387504225584977480949924699689438822565639275479843294036889237753759725796683079668056204612151552506116617326324657296059236040160250651806950444155441749625695571524727477880391452292419413491717750243453746660096058122782812018673441808456884717564579085361902145452224566116071919759230694229382624928972843600849203430157052836125443885661756585051826897183492120057317379253539924350345698826574581408486194728488462418172562363902708864781057536278231210421703148898372827604934375265012196535975241674686271864933589068167085420797520918619459152802981568186569590168475575191334921146282465884026290198327659041659532150499351868705004688298417221877353967254577770029814756879726747719747600504311379766723142171685895370944614085333420828938358231571989450836826381050505416199681616553189668008055530820884595108895580536152242069334836536881061198935405334916302139536202360229893176370649939316567098290835898084750627263520077552536745991832937863503025562689766758992928708593612478477875821424363350029728674553297972238055922837240237433073418351865477486441578500181712265961557891662611022467007194521633047985215146248857211994154381737659671020896404354653012443495398096072451462050961117431494122036576752955440271779962922944171142624081848310065711528844059742584803841944288613398102090482515410170753289491502684426517239723831293893099268870916383582790085760738296677965798154751060397767335250712548471645298071593620677197640403550853190934982014683296524780626978512004099806059932245709795320438010311555112161478321841471075932362910684029307929666740319892825567235515251454440145832858877237891181745441374551030057168395642268638300660160232945870719717759207124798396599883646960730592327481591881951095013194820307585206541624588340353284055949100106768004426955509242255100134533131334781499931829127344869105952541309145495692571948693902339670415789502055751949169312249090146427405679562062684051735374677960696110480201687490420497223867912543762462779117330362038549228883680179374123807256110155445647291501362692704352830407564318449860464874377338071484430177741923393116151889777845952837332326621472255500555017935074281686718056683883895928231958377798002762852380452370826181050921716842260130281645085887949001797576413447850784014300956819262313065022051325456021035519978629419774998463115605405542677828006488282843081926753244358904602253990730139507766810250830795638396494355070428754573583811426160197014996103514435935768009652590340665150052648929011604410523937050710249101046299884303041388402960320850037367216307522214244753924962679199039144303522907261801116345802073699291784562095433733379160426791668371422519011074233487848653936574833778411931503543687850544819204650680753705788211378201901729657628601319864384002038341090315463524436338278254031323158017797169613749560207989007787101399288753634766435857343187982959187047060181803883537732887973188906921911655275994132113305433627716117488837059213841981325711958338974337679899962450489438419110165635155924416376797737129683317560431919533022036897260048734072758462972681165320613174487651747522838331337472990365844285091617791714948443014513579942110047252928271036412221851696924320284966176131351889908456017602278726208056711271251667096705011072486461731267850949495274429139760208085799780258267771339955993571090937916217940123719726177236767904315630830393047743470528538227021216652356344477774754596807324332589488805847228526152333389097109091165332217172613702219028884970522316668654864686216229833214727675751959066612489653550372758839883156955025010509764143805246156044063803450106218784798957813163777848897600778951535639048610641336216770582949108828508738055328809012328210763759694505478089512026142376299792127987046974640470558341442207331234433887227987187468721859015204548522950261240776262445441522875316200834601901560538323677830124807640117820674233685692104374692940241418431153584084113019628699850231821937619396403268743423938548229996057827581303477980969012538193192454852622349107904134215160728103216343049803507094734412552941860764402896102588359427491206502389779238727653886354705323304150182725317350835335904432806549479236142260425830751595789409934900517690597223040992257589663667360518072652712555864639314069761469630609568648553234666004237413669761626223836827791672086702777996042172389034981934017655040825488402480513799130294740903374449599396400546931221256336877407334999859110387314415397053079730722884108106008769531657056150005394650409011389429253943045699114426249259150260579130795513930425282664903682968995133589848879766016094466340340247069857209054756245886706909479697191030642583608073565811576068000147787928983031960574363292106897669506123230931304009218756157168871206029846670722171185810208392132091202244552222996121342338022233299512061816381354249745197198867306261806717385165143057935712343101860538262764746013694501037711561481069202259426838139404312775295840892207508749403979862203867793674653382691141832644558685053780188834402253681701801931829022651106818722038817844133715706302390848867882279649235900092559339949315339345848081657871570008666740235099935744172092433832280324813095797729529711513152250702085168432016066531388215558375986257951552708127743157442462946092178701869307395428604611575636312020807584102777594981170021069698375390653272129649645413734761246445299627649864443472331671044882575614996303578473074341613693732587110985388372876182412563109414805851218739102028481752219559704781177715593323605561111325830849401144225539881130954878181438496113638905448067297841227609393835591734449115641243630238842894429731127882897639727157176174909239957563864513883840073951290699578594124025489445658445675149296817335572101414733498755815900625357993074503854128903053335218284856078986539710806190825328272761486945740336853413318071771251763489876265621515958857310821126189092714843182906145307777046899908457867075563372224946673803368774262926384488092373526182773811292084605658176366401459498577616377758673899402962690939730821497996767838548387018404928282502208140360692332683047584226686347257864105136722354213163457950351809981401609728317566552763062025213645982704072457334166657417103338491470032060808747350997879159739056056078378024410529478281728983924478891603101850296519582299228210238940169247448995810522796037765150024985765650300816201607548930983515671331401630163359360677932135572084088349374124484110529918203558598803782960734622578174752442930640971002364459540151959465505877265720733768261479850043469707526983041339253256543441341708243065897649575590438094811301000158583571956519864378933756344002324639385482450271386517106611022147434499375057018332998570618814069309071123159816329389159235772488514023912734785508543103452666570605026403943454626259905096596024216794206881155193026121075901729210000693341623687920434014849878426885967498867095013272789303236111928754284394004384900197770443729055729366767313552305157786848490415027453463276163652152759113198568446494104700149754836816009047451261574741951475351057499838655687169643073756298625092196196065148748057016829069115127443921657109058320647952963622157750290828450898676122148414263250035050109171469381073899371934507100939018342167811265213213898846064167939033738605662927929565601634304035071888467232840266760482072127010474739482369200973952318702378139256486504939556453956854728293833345489505197011746114659138312439477026558235339890559302049950939790200708450133621417070784268225519383672211282498772509510630184851212445336904577437869666067553857615899113354594480690813841867297055006930876373809505099998152970713863761874436664092329725797626954805797885826554528107321144353321957499091418250077594794346913249778890881836276985136753289245681392499816376834643871023506059907992386674776370206193968727580420138500336814215644678916463344073599898358482062916216546434893581960256215651004945259375003491146850053752667478218372983630889871385861654776336638025991459902097688855751066381729801258372214221941629551438957114868765501214052868324735593488019080768534151318114944696350556495810737090911194711688933486280759912449050207941726411149296998328141393505240358626704166268302367345098808730390660737900401477609996101694724046284404787662801666654854580040960916312949808969650598827521035948886125049293080496359746617440496121949044119186932323575754058073749232779797608233925915540139181317109505523473153880575469428160372956442691271688691738025243474827020612503586130085340816620768858548768163924607926626024450958627552992153312230868766683991225745428837463981480582474730369460862506744304610807865950359460280234673538482726110979351513347801844758823747366533305360095955324831367722068978644684397163204531737563832656145457047421790030595755288706247801344486267539132006158884173622336323845555936573552671394237157278020684092137715440751492349849778647632898532446574366607981330463559950782788028737106822134814691308785357838839622972806795539528779511329153229861732740456317772621231912465330999103619984954279225847560761028533160723448465471315967413845822452256674366051252279359413113578229015783548785180168625435381462473219037731897952438860126954329624797983341417562989104729964102771217075683969442713163901567148933765785754313848822938183565467150740241216560727594049135652257164958768386288706689815549787328895799679693501100484612015933830420081045567916041112031165138144399135873954128976716081649522463208614143374814244687249281743972817557751595314265804494175688894020483693964648872495337282419123982617362082009263163484222730262517181226457719258953478011484528919271987190713409235740975851584226698414138967993139961688712828934643539890073164620050090973689373373344614891674211448465652598100196089144900206142907578858707527643168076907813367308292933813003788960322919102683234886371401718269835568948572613272114561834880767925893121352343597162233035451483253472491228692109041953442694465653903198290922874164065916612843067645002682115168600704351656051137206293161319814633689922248007201914082444164723100463060592807201348376510554169768034221881550552866306608707513121202242426303878630443507961715726957903568958024910372508534867200603863159523264354657566348107111287818115267991144384719774733506834175612733581824020950541904193336957376809619965380694283064406301716191310174164670049278025144639003515651851485236428137502093293781176273958496839133521591295024849969051277918433372711048124123749330454966202465590120090827364601908719760256350336848775071959912488397656864554763476318585036976397799547626836506099855623616513806016732340651777261365321641515386523326560858490681051574196193893828792259101530898862399071268205543644615589832665451155000245777021163091549787677861775151896087891446728584928641059022041170785653151778943258520686411433720024408606971106408398404380585460513118617129502465632556365523527975619862996388007475330417397065557640429471615599244489198041921936118449559552634145088813459318230147323596575287967654051738803361242865529328718505712233263179084854150593699968281244074297302443776649550631428288013678601519625065930069673107563555523969192930013365936846107922846914499195283200055286536770990689123666722571979384955664887562342450303366679270287127121962402471419944794233675583535783519312903360785396804464325343841079709064176877214369478558464346555215209908815953772788135925345633499289221012556340942575466702954432193304583140736730390857548922063724181171884910640475905574694028316625888614062450751619254779431182200888207286423679759063399614429417516461717125407714022575103849470677117249949217656105919462665324550232337255552829956983901265332903521928432371192727501197640676269418894711065144827445913282481746535216061470108187937862246874591348947706518206230112909893060627497677020131511715283964042186448704054162779738893365913967951083589291765082539374195867319107468934363898880024870129236683111203244987871794318804855329853392711342683166374295820109928405360138294317682318170189819655982472139836380575329712283821414146036053549539766894039540310088071816894642179904555683246882725932480381374913395129570784390450473854746187695037596298244070176724281436835119666664987671243313923323837908473014746233304506594829940294648335860239307560985485406227179393067180095234011341192452149071289247198782204535128458434060091489820043752195057023215899856525920381269564647835385585285343739153758572676429778158935942457337790032625582927247088719097897016189600612715572789130107028120080403844726543977464148353088939062272933493074878078372619048936290067645043564942481328605209896343269445458188137290414132629249476183446389427137760165494382421128754490958040274745435303156805939192601343478769603622792192216007235596181193790269910550855447177747460643661138162446290741458694784453310313077542828007204277384025361378015039940285504329959037005900220876887311759471804796250149836541065992558249132009227689992886658290769678121367981889173490565668764238366395266375288288268914294986415594826066971150707133430037308047838740923839782800039088820104789764872897196293090407843395447388089750293364518982710577060509818406037078371642770203577527037686560255273434366510241363260773940052001353465753656805764612966881454826809432026036465238258491363892150611005362043044091979627740377145782052283723862961021535913498546641773401669604501710273776147698713861594457208956664935586116656073361945031195766323307963955838565365249544496241757081720281831913395020564840938955879124412954698449882059620213552391390138610387133235688170752818591075787764594302360158553720199408848325645199201832745013163069768425923958910511720313418087614793849415214952008837537991831274742765204908957609377488741900456167147807841165586353418427598385026923638248041929115428402749370942363939390957636440728460499096197468355283663128453921667450467710350514072971577831187148841218971164364112174151726972343441877585112504204018914559005681261346245500226032599202040826012272547949505106125019933905859170756094520234891431506690217960189606092635256940963479456652532455764769700062201138957695130306687677847225856523008631955969018685891906290131063204235017482671010231816384339254130981883009448239106232784874576264160009160592367581470132705870031633912532007723067321886930323406781763707399029021206410176019952463518989248732097506298383408343709780936834897683370499347186321149438741391359897218224666188121480619947478257476844588024685537876415479304504806990342383662336942218023884866873187327561625001355411788917830304388775581661463531726374934683716187202724067591343643518692391261693849344468232994450551653285226855922977803427461680026593727846631455541693498855226492967292123467082555245655778696537475941097318874234438608062760628689261950483907603958519570323318011328049857265783178104913575754865657481518409090747415158615423365842520851864294081050056684560695354534437414904036056914296418893461275319284636359967190455343605076369321894150054211875520523936826993579101245094445565660283644012898185216414446007556447698675285919904198958682358202339700716989484609522076882524085096450755338915186102354861460312847755442917429235731763196894500770913074535498446309740499271408984741621963091670622385289657190285715977141225029672699793094517735100676392454173723366289226500456730592121529380349216802535553432611902326582925803308077978992126011016788667405462760649051642693595965536614886280708019793274653542790071136016960663713699433554461329576457109233857112775082108153859431941915166264261306735511420723340100087150801400167834168571475210072623092382631753695619447159368475091335848452589443717382932257243999973812768675193581663675225243639734302891648453261885225882938865706264591768778991906902953669075235097392013012779745843351216846650797408148551562902337959864064964286364065615161509215165514219267232839112102082505287028006750141626180756972634553502114729832008904911313521351999842952120449273549627731772421764778587345745766105183257847909699560187868160647243096850413711322291493998804170140394569438370449345195474563101364641776000936854351394225264476922175450325553852732903421082810041818065427760947383338866374256440307970504964108030944398056877856825928856162399869244790500285595271890410922875593433530211431666636855329883052412833977231843296712118509454407914852803608368712921019897340239904262456297429986090777216163592132845794822334009820127412461048623000940668139592889100277376849670687208304110672443043948724555902544396582416517694448253415755378530129657722905490919337780417661016845535542315733167338559632971897634403609939831602926191764255163271435159321865273670850842957862757704262860558695450108728612370390306352379967203962693024370109394795627835484119710051591687099702327878839533664652808862106213109801407842308767040309468283245486184045957742868629680608533840584868634920818597637446028047022519490486177951798799313032280782237058108753789289559321290211979857295042142151563037497009615174560465019975961938575831806303635057584201453468868983546434821952434625350625081061683450299200838843347311615985876224936863437588830437300622470525062781958043854640730821319937877077097201645211330239233079849052900496162227811623043347617428954624005703865550771613372607850350435402467481960631217322433230592910346279847570355233738070394043703318597212463324193581672499926105076533403848553872060105040769597977121969522245870171554884926875816031093264380698730260433333540405852013895099024437221155121750248379838119157485306795218609774902430831590920684241490918836719816935144802781489652582857910683892855224614708828101232778913931649469411249804468327479827945358394640870988224612780944916774713216118105955212187273289508455563817420606729462017228202293199310142121921033261557494376275354858979801787783873379426160995691644750227954193790402509597883058851627938518189147957734757895510613282987128590508025585071510459690535388373054381539411993600474866530605876822607899117357015925377416633547219580638332859831946080661479556007456321873453364391594843916362105518745035692930355134535735702045226391105984721067826205829137915130101399693036045323121880429369955785866168205305228722980478916639978744702354575330885337293929730702282158433438381514404613908967601188984618129576535950252028038099227915249407873007796238020908379478794049060790124380436383683394108296632686053034632921044872310675457986441588928557982716851399332507925624127388830284426524450356786479336140002589264280024654112991936967628985501251085651564237156796540239703355114886380916241702678842845756089729961776901993823712690742702500867751566133920235867762689906619048903399425630215880881452986575837346724645330954307628446556141631001857761143484856929506749738938692188623515013081299458750098658122261116030229155496362018925590645864538001130502050253877183204921788613717352577757479120628133692421086635928085645741340501218630899018916330274260209789202148490159758484607645084913067746987800466138828570204936771987219066887886590713280628687588147942715141351870003316967914285863341754064812676700173333988095701364799307437416483066291834839835460465768717226840361646793192706364630177906971437049715343836457179013168773156505800128633148843043165712102181347699911332763298265498693270500204926167164195322789484107547729893755752399702051076887694188985119499528241232554562777367995156963784723851079640472756477664547060401980892824581046284009306382840026561295494315648795606078014615118008567679268961257142083263020946593522186918309872035939845818344249443670972436069019272842561658056825146161229237754762060902025115590898845411924938718770639997401539617502939806918544181233267987570663898708840537174821176456930023161758252191828504909591760882977534802993313619955074908071792669946662716976886440432232633437554595897366196785559645561262119690542349724867436325044863090930689992153503532005483580389841043756198286426479327715319239228056516140703548098469605341364992112963267028558617854409426070907347142082747994163167549292491700198090252112862247658285387402081400092918204614781233845248907229443525961190274035886257171622610029647011894298873312546934888562090357402043194051600809563641019849817082028459050413731008410444651289839151542338275641396701877959544477538536031348331881926098868982508843548040907892062240740928919957950259620029137525790034541740852141210624585121291722661382344581480952440710201210232676859902158548264864456161817652295334266880875435868591053810559163457398240254555393606598069161922387305868308147067967847924086254753845263664732666999722584852605159284558924299277308581892016194471764690333583051429034172050192078779983529193433545675209691883624428709859634535407531097136094389221531693240748595041052917076162439282972746343064110597004543787347221251359153399595774757252645061749882879611443049011791032845499166896223476524467549921250351352741929553984110169583310940811172353662016442549933995542008278826129222209913989382738548071161261001151449309635732631972862093391116813179580284979842324551106617038251049003968989781733138951374129409850582609981215947154583830517009669028853776668913118068346067646812654932133805357944057893609078429342999196821937821771356844241902336684158614267841671469968508584214337278425308842150252743985294648549595952273697975521547756274724525665561471241607644970010916394555155237397561508277841907329996293936891687629199403173132647978615706527980797028782635824863148167610945534856053008353513585043739834142303424961196203680635635283942079217140056639823567409061077621547834836153113293544550054173952938139850806285201521024565502512646251275358370584479836556172311209118253789016351423016412993313704188167294864466395422742087683429236218667328818125401014764024795313316772303143002450182826389163070620291583645697332484663461082818890215765711108020065606188188965378118621633802286194023593909905074207367638280841320048243826164050545946497466883713452965865772171819382379730828071261281823277312481366807135511662663612011216788663402972237655512717219356826252709409081995786487596127528341492001938139710602197315901483132167457036410250910382601348032738479601180554717666603706212843656054583710501392680232640236845962790758531588035645062373965824309168242253735085956666035713502639694119261533799843008293096499410984649824228247059472047287311334856248875521431207211255925454157355653380078718868588771055540139077097435469953663420129866300152836479222089303500783938020283029447575597241824066376988170593687994960833587739824620697402585351557609414407677619250257942270915546686763299785614971413973952064976007121449457495374726577204517194959760493305369880694743928963827848244542644928427818503497889791037658561209338905712885891741991432565890281947605365228320074709177782449037582765162006819373433493064178233269302826552944571815926051843034122082132356955841799119583011898494048579151998918945154335031731568071237412808827167288718531692351192741017308930712075884641761119456900793793374221174524516769864737386602368517296305565406936319747951403416536698794423209936241761475558318762997001151849861742106108901866012513240572625586798491609781944052885897436404208883996617847624704030359222786266232689685335604768026467888147788283884708351385174514416863660637675329167566417127917766939097898826034506372228635816226445383965088913119857658538829321685508443859566183477817436582077713355227241413439860188938551978609352576755497427707559658381250686773582540900866436781824046554843660070623269106146628697833515464030914999210840764352786777286826317789562547813779890729836392816327590377540817847771671329502664137248199302055904672297348260482022627023001239545435378494172264840042424550688285466090646558336300241580588875244526946081997335679441906337286739950008722692356939245480214738573028316763300117350404176929970632349855184513579308618435577764051445471460727881249415657158561221621911802081857166195797764127431439198709732669329358892886023997808401464392652555160812668402096132333191572594774521732472220189456000280973111119234392044667494778943675914607290761337475576457677052578351785303024616864491877324285665544017442792231264027882778157198120399527735470683285415690687127762870741620554552744299659059087115825842132340546670325146788841303120677444641803952534856632305020917137951490327294473726732162986036873065261350383989859018608952641926297472770309122682567118013305483709033718645225988450340899747711789566640001657929209573493212494356016365205904114434757886266861330424167269716183726569700509067260712470292696518457191464114984630775802022495549199526560443518011511171204701711765354713733025588614963564487503656347272151410056760799764853313041408182778231708194964902042900122450964374292314688031854010289726547056020003030249439802614760950584003039821257084929412149058671042132503649888828321971081025218630608411204176132754813953433544473901129827536100960995533713127328244499003501268310171285067570438015864540639787301245303117145394099529727065290129985145774402305946580164896999110675483700151148213909625124442507701423165578614628872923335598050443150121209815297029472523936718898177458116211416245621325312329824048812572628506783591785706246057879418605776850161057155245120815545900230240115304504839122555711355175241831814080412046979318071308434268424456332499167090813105329526716229148534717058780162983122180814259819109680924900663233517625987977533656530577519227846318892739004097444592264131431271489374300043602250724082849742906702572776925882461267820473994519117706938925104207378231393496917703986293167272310139431152295955681162950532993716463903650039099665407128470051433871070376630016751497966234620928625976536484612770657597514340073829949462419351379138554936671520543592875367647838090695811229149945887732626479801971826241571786941068846112421282285668426604529094782236140306858910077607046030518347926419025252282251676089034977553266558112271425441576105103880698681612016252987563165485004197817426614805729146188364268362349733999927083688366319164621382762602016066040024699098809566975541028396061415581577580894049043145935446959496456879205565884480908740278341988619891179419073051002264550506835012961288574142404239421964293858188677928355831371242046818625387406833516321066144573522678951563328083583558615220625205735892054113315737859526311089391414904747069919595265635755791376907340621536228043942383680766616555161986281769045742894052743941680265181672550405886766160581216565203384461666154675597022008243049297520762932358751271920521319348787061491480198823715111446288262524673848184487608034635044672338748035082984389980425928298587167707392744846271736433146152138089872149420823089694336935315543178134736899226101087801837024995903965640609279818625388973107528568643734845707277277208307671871137226579638119574291909762009384388797612367332770537317787673964578689272055254508474306936022333196442861352880285784595790094141444826800444999393586050091688675464040601634684564600069858952831121668817328606585509357241802319694431402318032627562697866342794299195462801820879422416409820857887109178059371441754678324619321210785430480775518889358035770302941957003523597660735495569987514093670121343024887929393615099056991906196003572590989341370615196197454844836714059169829635773885793837458410489381336935680973960910819777973895378060817543715747988861555715414775325403199701979412090361639014007628773405233750761972625553196790727329255107218307906398295087401274713537561651013295572937651998473427048546137525476561386110892123675589494388136068664331572035534391941089242320114763719259020631359969968040290446320363743967167581669838287398508254895608823608856556910083324972997317640204318042894204446281822658681556959492364347828752149302001862601843504941092770687705198569418678602645877769947931210138930935365430935205975542669109790919568975347292610102319592810431944509585847584934483050240639470451830662162807908938197606936600983493587236309116839125142122664486477986879927498440716032512261351481026167892945886987440482740346833879669024264827237050991359487673359447354158536573237488155563593847410561417806489927608494062574035955831587354067701998677509560701132265567518424467637999591543461178052265161058093517796863418461099934065226651819590514502479482046811037693868629012605770498634828339395204655185783201507849500448317041745951278538076369513527941839784272275999161707557843254711096896068064035702353673328684785675021455235306955968710831819227991700678419076586019036241783750434567646662932605216792191808836418592742228900003498202859753134452350999931606119736508608368313814296403712655728669988187983236442487653741668980347721554861686050217290456347713963328298593398413863717552474495249197930784557758760445567952926586892757306330387303854481548481252167065439424717627791753547334415304840303324515798468851766576253796589575894682621204484499570529067879378428575262159628771048723978519648835760513266441294825885627989038921443389655399817963923822575408347067768423428825469805618074869674723215722422653699315917767711582259235891204209473314192105150444156271908083639483389394639864694861112216808215630415023088072692196289073914548600058382125325904394920115808008844788494327372689222170119805006540748396927982702075960612072841890395232392190622299343147064781230093864022325439180273207386743202134441400879490581363472286873566622087666374703149873329976195665439248522675299328063720984287306057821328075859263645330971170739169073786360040323899139359581717357976569861311284635836782515324724589436299574294834974549781082319337974112933264504270872957924215628597511804473827417852285501430362030141850827572806793586504801283951450399771241409029023654204076606114044401288200618063776510538612517970228573036599132473970743463755750015543241158282038796124762941758499711995957157739574601202036175557904441127383803023161646301999355847536147671796396695518168264901936043244593483183240702353040713549283118662552565648873927509106316523304174560243046857720403795850697987902090139179763294738935097033128570928148128693976935871037615206023574759129453405664104044110526996649272597914552058881256236577857225704427767758508135234999351399589712483616984491538441967305747529657718026330428203191282550920665242049624574302679767606117047958516408449309508522153891818087011168256439404255509800292014552100892515969152184471413280268197047572621829204338851919798122772923704244635278141605471632150563145795697325677577376632714928878355180367609826102550943081251262372362488258776026809556585412193723194594760723318994404488935028573749171445660531366628245668265347792992994127141173134201878585701667328374645463442307890625841714503249200936642458073091538191497949007915136974640137998039818735723375680659078085248299516467222021555198982392916474166619071921167303724144282475165412381871559931045105726374178444121178575176585824896009693034837942971785748359537511684475114487371920671687886691687215576142919754842933097983236086207803150532808118275417735324579084064220458066725983404221258695421138114549045235570314608273606571375001048398578321144151197427385440524007333099985498950698800316559127711684708623177295999761036575850256112280796088619674578391552476263216111733144254393966156484944451655514054307278902561720367640563374514072269859443311029125727847955325266627660341296924374562806356798033083513256326339099160962785225940862293496670942129501368471333871525122436267090748351831260974297499009510429379871613971086137593197414890596916414463941176314693510944484494815725778363899433738130874933781956114666897494041547427254127608195609931419999371258372388339547732914861672728132326542492821197960151325797308309706773688479483380272169627273455942197392165269278626898471000198462301497377401088873150609669088349587103595520212523251214699505493127315282663227042302384153872519973685547014600919912327657941108002315010191546853440285626062162926386808082606838819478706755969461686794686788165248640904436943419822639824326072080111390376681602463026498890650619499891431227850249795861329280751430634225512657406536564304391516062005205704641612050519481395232215633378339255376860456310050510282877136770949029052357043096019688051572140752957184976888834040819634836808367875067494077707181731344236803936563103895117571051739296282855151042281172209266967327188389247492408788977143109019362129703055248037977266220057835385948532096013974130048928827554865448752756025791485341285713842272695293954187851037276479983835332668753056558229613660517514306221822379263851169410504712896491516026988437725513929559346250893606787308498337928987454826597479486821484013057856877573098184567744281629656817808172290240466111696183502270247342282218997028263454562745056919279543238928509005083210490784726181292478633540064994803990942839930688588947819763822411233703244531504569824787332951660621812806809677198170214594034017847676183974163355326221089010846318532770318204918141372079358761597998006435112527469847855305250459337046701308691994776244345019163411232058988446415833276860322743883698477021999045291753649478740677095029678266234059932718040843911970762720102870163403883329781597770293242254031911569470866296825711601700417277079209536747365866476504364955121653673027824251128133537046616211361999106942634338466482872403809765508706185567731476098722762654849956155155170284359031858276846908704273415791813847365472145756595036773264283340527219947281122752559216832721632785668450862973413979647412203012890806001742657807835282661153269013727603310580429046758366811125536822711642168806144216353823511431502375616596099133914304289455371663246910809538837539669746081430601638556308160304038387070362486160343129236757429520190683069971149158313099771673291726837045192661459690692915438788280003646720458750754416170358246493729936628646321304085287657673494859573349103701057330902150459492452653979368409798703382232220853154558526138869431614206369904624341633594861597404589564553387115391491853338212526660466621526390049809766083415108821606750687596473486941333244790615565031207148917943742480834031255401698373738171083155677091149583284261510140009315316755183866097513926179676917407582520755315098289111606757724036124418879098581546388235859063374147925814366239944960412257935548447998892307791334908115369880190042513914364596057135143908359638505957171267801885131479207259795258064660605765904055880324574257231331657004449582619482606351272897878460611486843811476964068619282183719797852480437011690222060591949147353356606977653014480825720962566470416220892104740634400138147104003413178906755806207136570512403840209449347044413587591747026244929920496336230583551046465385238006720691265344033363850069882332635189696717862396643849761809243615046298196598563244775100917388434385607264835228272295883071423345818012629532474818918009820130501270717088674552979251819340889064613233332398398173451537309274383118365028939374245207250997754696750605424132098131935020068646394527165964999858967111450977167818665781641966103963728120900243981866583160675945041270858075983949840619472396386378550983910257217237271003869417158184816386238880452628169355464615427300721846869075684202653756604141460816558392116594662565452964147200157356698536867335323954162495365672375621308903033596956526800674496726789486965194578453657615487106113770628802495704280845072125076083318008425723008092374778721066277502145351430012651739540340899473100683925099071408419023379396862893022149564819290190603269404646533182845833652148082034930601972066824442176472251630228834626406258761163850203140528468337030020937208964013941910467835282927646195720401104724982972254858892001835307657503950636318381715006424121028409998088517315881186711795894405694503961462132909240420375494005448988806273524786184964859365324531998963509406683933950943341445469969534838739005094413939110165673768734194519310051062107228310606356727295825653404600306065958034180424952970775518793338266849651259950184855489017550003632398534939290218478789583762208687470007996417591277043663784818992866959701211694181539253308125197490587475669801582210752855178400895243905245538362962145893366557787729915342271399008302484632138998213034046686138890608852762144724125168607004763427023783813109466104546503144937279998524134140842343683483451687362304288621331944836532078597202849069116001586243441818743722330324000735645962197607423143921239693159544918440913635227254246432224802353375618385447652885480686577865019367726490180377209843002136935752932539934056672928356205492419299974826854544901713954360162283826407537724810417373695899887846998773798451472477548088479317728383938503270978434856774238537390957670051138645426078356670296783469558873120867089356041162507979845504592813371692549861605385865186811726852072492561690643432174689995994135670908757113423780956782903671998851489328047900247441102439124368691002582471995183429526212364018993827591737860684021678298325168050307638066426641999494779126002670211667537422779030164910608592499382791224907761464708729408455083962214766915594679989385606860200269874402008629730344972738799500876068769700374602848584573895881055478600153818305547739845208504920953173062553280543427649800158852544655478835059494742762970581868844532759717087161440172138791738023480619710401414062551784395826774813250046447671482706923293493071461559414116714762404351903920515894711307615804987811259217548236519538576603516301944108881268478149577395285943808440032093573493217590596837316612423888411294641373076636070810094888279208629411969817718114427024447515237704618585575512237214002903810729964893864589637004924894382378632014035648685663426666374254928852625658282654331246141692804964268532863716618119981269678334222328372893144478801842938467272260264207656365694262203246294051362149737822715174856683661247868279910287339136819620586029883928691807373448981351019932606674864804195133787609640100095311460027840311464634344046449855355760138632763000380676684960538428618310706075778573969037839067789049383559175636089676373458489261840915898777989112232847783791665319144912402730412803218027043227850050426160418639537747999352715211770554842137676522544816559977255928816006715194995571970583810350968884573517642697708397868607425325640624154290423477621141541586597449521527619573974070513115875235572888631716338022068404047391480872927692500751955232276309210005224763462523735207440073115447616412155830822807146846591190269444780542923098036514423199150597374818507247258108702473525672396911153404356903140608420704188818767375419343059581958947412845835496774386672515133242002055321821128597262890988551221503192541340192977033020918428013539867650275222015897532605444092413253560785176146176394204061498586111549770295771361734756391240060350879210579864703592688901571048893926916516160678122201138319225033312887226344013454185537043990786602180860221100854226893736774235633576122581640907947569821603415811341658687724416679082956832533738281643785927264310998498012865469918911379691428627866076697446782138034095882076017279395022450209191561014439293192366628939986866262297346400057101452988932568775395241887129706704718832288837043724023826730878804825360591376067893984978089575818236559804333478058120286657045194323028306261544587790780985112838608176064790968611083220347823866044918881893207780257587762867336987420228017397779691030018682307883494428968321679583141302581163694061691036434181858316235825291818952943418764846010034338787125873873540869188317891891686889886317797069147996109202709054881807911838678791513025453858896745839452190850158404197391212427828129631538194119584985635751126911433248037544142107285251131436972221806584355582229147060683437540163412961937074113038898549382375251550508786863104197038665300724780239198687019523970011417718656784445398738791387685021103079188661351946422511288286435975565828117747409981925376435450971740995022737544608460015223683210294571121262778774957405801902847085810494169902115274238434995916636959559031736092154060351311720619259690450680456653819003488854485349897138605829983859607750203051816376750908544781496133165901831017056720829394427784899314741161073122508189697939429627001970381684480838178283479383191169561043252819289180042636717643147633559503156880998435449935345525700661990790767585446359690189419181830100816008299117689949838953811359255124244189062229157679983343012038145138675963161508213167890082899467304139696674858768956160516434804025571612690766569700073244222706564862400478712554336168226501703243639126045963595743230969879966672233577547609762948148962216871030036463213124507123937325186462404159643066240725734318421669942757605813595846467258099113210904897944795602077673548015081737376171539804417418345385415829629369644512787357153203767407533260098346621506247279399912115137011463204390820317741049306605259721633308019651134094037824329507298260492363020013744658874774238181044071390899355212280456100055744257909963512221548426928635116719767034625330408039733613056094495515711871842893103099934920517293590381115871221721213705965980449056542961492238454576907706942929068627690508252257414196307634801580049477004574640190884354253332753792454428780749709130369840829983779990758795325505655022798852624449729889850491319664243174224432779922988069254816721704303320554775475522834193210794586060784534682381412903560232518349068328193605299444873704712223377304448810196289869957693540108172793909786937582978489237499565354762065551038050533701443301102021980589418421675103423696047830096347636477502486742051512269607738116220047010217239383517005881943213872669645778696267689933535332563243705616856321833401135564170276035939814916123020947457037642325338477536733455039033257425088138715316130751150296970692860936496106517526356716185007197142893791962727132499353090161203852134237019181444935978294906192186833310976452535554279458300724111724836573961960319821175553273585224984194515810902672674046358791989400824845321817891703022596522753044328846554469262631692825184489202106828409343641304162807331531745355200478017557839147189786694024453630738752588837265912069948684499226727803807910240768452989247732545834986735730974454422945803697810346833544366815531758309636004347574075702767406661223295689506732368453388814736706176809102065445773013856738256066042838862732639784702287456160025663587100421942601952225535570926765588663821790664651571743127883210553502731060377992955475898386403746490601776966757321819745107441181673674813668288264043327694111859762060519017231151167037576400957176666239899242200193028877495122368975669658390646114002245568095087450071844445929571456589322463769969242476653213149489742584559529791241302835034431664421881332186536806309001929209350381972011555666571161211459935502032153123294740644816649510524269391186379639255645848938509463300217943366203537587020408954764390689207474738530291942633688282210376207675797541892319958178979275822559375884637623246827520706869871118025768931616128362394397833790810032521985339456921611023165074496546368559774213137629441652063744905783537182792673316928512468380970744276302018932869435489779547284804096339235279739243963327081808372301856078010945927208017224323478147701865698708994289042467809045001106040896708863680063655135739381297364418886406418593901492560596296398732143634016414364024420925426864347874446775840053493445034881737625837988101566995304582045719371170692955316270116186174548478055651623691735128363593817860638598235236105981041846532167662214622557907892227414484957847740317948844185314058518872486571313458578703381990615853429556781525916762107716031601738622923523103375537014563031498994094601573653404057677911070264932938906032617788069727887244778545020035728596723120773745284553160245043810932890433628302062039685370963489984005710584983810914960321524712505965708013013573768900430760119526855638222912476436685461895080751940887845289482362832877438233448607276868190742052161586218261828181307739682220886656464981480366504214341510698378904538306572390215578596728920679207483680407838775725809227174148256187121293349514331124611909731446293855180434733447580100896922867134430083246246340749221541986397854779855310320838508033181829417635789139377545343774986223876574961222102967406908618012431685417249718021325974831864948894168143422076720241120949698288905590133854879082882716785470923991209436491005152259643195972847940592463984926023926243773230997009324276592542354394786056629464571655309703934748783985398225444563979995049823918202017479150673552818377717179496408653303240742331121231341843140647673448662402071028858157125055169184379053763948155201721314714892655987952179897694327994104044114822018871537070070197373632793372212043406763784560038835635971932136994367601994748018615547838430543002708356725855079766346238528047451533792027080913757885886042947138192741511723996786028129130859438725512340688627751938940900803471628137915917335498625870553460608157787769193427671089477610743057573866088814150314994492993056917539425221665466409784784455519198795719891029031444280952890910508338170150840170220535713195645550749675225846285801546820044618120952083592554286299781539737964546494715377055999490549223494728845924747122174343908279974163860240644070987688354260300184237089966913223240941336280195708796975257382517272619179384082465815527240614091192116330227648182730520960294442723766116494320035319921870456403121198075458197769432866014107257757149543031988469064623249257693496497810342993574604728185052114059348327220973441763950217646609936231666121209993815656380815752437417648770265714147275548137291836626292375259739011529629969515935843786838451776892488676760108058239908224332444534792134429860957281510502402736448179241317771165947411702925056692431819351671598032398215299165763463820675066397606662175089743067574429072511085604531837360550770395494848248590123983187245391535911516961762242177530970760428895574642820060422986226573898225895399520512040759528400920874946946510939335319711409676733849182016412574573317765176263360322502263283218530669471500205095881379444760626475937166652267465047973282506279254469440196844673054360334519385312175631001635829694437987217208007129764082539567411070411992278863373256064021159407915434840650523014121584093604995639969548687685132927432931329668882378778134466798110267907319390578349542090714452618111969934518467630682060868587003028894126785320206017448685079441789215841277731153415428905773529628676617760117087172385205241941290478038840025101286181394027819081393003882217522439638930371945406969933949640741962417606930709091518659028327936501705782089237048710844415110559958710463082252433540455373724199143160929468810422487903158662768051988303364981325408370980282703991288706741790359392775555555580877003034830038645224660174645169071192242455534910697920876844901766007529256972410904642329912130134508405694947542870708601469665429797277629220422066350353048175200599541591670881778351919355879201646766465819374475486294044084511825222986164693733182715286603619753229862510862293221243536564522765875550162547696984466604898968820837385291659360797638050127633996662987807918473339681470512174072516193936656422791321280280566351208739294140152406996996773126552027211620528846569996421198268009367666772220357278892194850286492897922524368680040761706270855680027036528424603818924637239511911101237938893003756654859875963247502942826977789900397978325285089107191381965834789987275208490597032942168629091560470071498749450009284116588348908083064266867270684239252401038362461465915905419441780155894337222933127714009973907652712620066400268213623277420487576884485195481719042385468057812407693390932242261419030672520597737781122162246255683919298814592305607975728867438375968224557020740692470722294082101158905672626603121103851281910293541173404307697863002528944332187732234294158247839343509141339650230180729550797321154188961625447685224491227273023130586904661846078770280768645735328776988258993606762434515388796037788688804847197131310649958150892966774545575059407010732651875716915038424253469139624279944263460640329426073689212069374143329842397616346748863552416335874537149016469971622798290125065330160715502289926380963512500614090905829803335961550543914690572913500566362190648463544198309062530184777995829422476898098545818846977156769269100622234457152585284074102471584820081635080338466170760921192695855616297574587776892559511870668999076801079404912643367519788694727728771608534600671839807843948948459870181355108802836469421488317710938419416052289344995283575245401906042599056224655757688595411546912480628978560800861482924111989638645815181464074659415708973547202603805031497064067557843634483785302065607812785919126598127359733919109372712652930321808855057615064487906572445773884718503042151059690405621960611933370380484402142227322608892701667742810626223634012064154226443752622221156580740607088384675171381856295263124854805946925508635842258560567160572128197768735972273155339261194989252612236369248571154696522970329750185595701331905248117825554759949895107920398365837870464362861046519083215850843695646900266421816766680764856526703949208356985863837893140273766321931807570296881483634175981237548738948575796343595614694096207126109086948228954631712608548436027693038848852666619855951255583130542451466370155505659029160806511128552410973464478218176421630273431900484171090275229699310829784017553784351559365210947746088320552714753413969257598068485969769256341394583165511081276561662721038226000491918809174092008750825784874990112914517911659622972309691298867878579052931734874768644619717058511013404829692933722385703538538433624825891144134603963028958866797638716325574766323542930064140857393501963698725588796620963449940825357800592475943960879008372064223833102166979237735501276622042787236192076558890040203489225095184608112748594180770287822683282113767892313409169216563423180462840378546800753814266455890660577515786796761782871149746802193323222304943824755101126337322189176645385009043843073508933048976243018271554862399234585036420754321772470207397224735539813362575066977007161559194553895525121596898995315296336287706979736222014685416174178951888552362175043229435191643676905753534391133772603100967002801910365668947143605959919017743491980678619883674259013856043315466670163923113545233797499390954005883492303011208244502791250853079851001319374984417644879914321092585131279924870441259997671653664727450459542773903797587195044480203419139402014422845500302847266633525227294005558448843030584679745108721628405867003893686358312481061746344279363802340432404598217738883977232308777327819649456031285892642502261787142514979670620573629227075500212467371607953030533812189719055412173460246135651947225469911311153626401761769871864831642874424417126593908593891316578132529450999019477249360740183925587736394492440575958024513176125487969339876376237583827044011581111635646171901360152586395113308775425992140206758206764774091615309811542223728977151243569892810277218713329510471924184543161084871543678759447471942358017353480573590382902159580687212093579497890420456565166185823476647933032368934714764865158398335731918519004330132652703751081669212318201131243972957053364040021138158772196305538174222653331639530664963863356835351109905628175554040512238921586816201109296787385376304754512250544302547691625698400988316889375269751536285877382145831272457729544959042347105001206466030106835025700101114862007330063065384101976267249182029079423938484841380210206056705996763865614234728132748294599147028075743058742776184255731246063486530548658594818141456517978753602958303227305225375866593565591095831337524650293841769914776417385009923451435974156451104095735325259386422696889284043958011226377004358933260239707047602754143173865640716321622810554754526380918305822402998446047899941231411992561698764287035916556231315863735617742987836400973127598561886420690220965669084212743185720991829482219375821265380624065340022229817736429235655242686836864454790781792688095649673453938875999748732989671953110315481688897338394204854979965315663992137980103459619593620932750819430814003822953616769659849119436404002763338589011259046727226748676137001637504908621042995388896650199261081800844490378014430005983951903906417770511334434017069479895617325219620174178573491118369930870564523479484537968770023635460805296095873705140792519942255089356283387333009503688998173992294915631709946155118584780514178407405084989027708600819333755014446031352889119673515824202806998355757959588298140788759959319729919565289450819075057634266146002347981830688569080732458881299410956189793032992062143109565116839597237566800659635865869273467069734121795807769771359684098481106608763931852923669563555443098623633215308513543256154847043495387977944557820191691455616065479434385589941337245410541080864292212775332427546452987347718495798390649700611194873510571981216467045599424123161602325613364586927152352762766330435255507212587460740843280884240518152891353562639843587687907498678610701453762139671444929205108650771685761559197868660196808363882183013293210632219061309697517604305141218577682911478065966323700975789269468370838579498102925519305305222669188626455210129059821795718991115413183252256828091815095861892338756822100851727497357557150995020838926852399209208375945032070888189479516607893817680767264800630324888162477815396336382714418718522760701983305061712951365846487742480494140244502642482057555252702402167118710823224666848373699084348096176380476904721515308827750758456549207212940059917833659590585405030091775029746350955974125233167671470038012197848522301287793035538478673823816494158984084920332231966436254574112626329506870789339155409628519394676940087357961455252737371388894419287735123631271465458980714899896055272958050831860493710071881052704464563780443317988039058870489973469430403373213934558405023069941457279826860419622153223113943819098138492652326829160247908660511791630310953165159749587230351471026022606304063348579686217734834763337769393562325902166031435175505202790006197161470524682715933078026965721219887960972256253542412630587342304073482335737044668097393017475768418733064003281319448562218037787993264097382545599472649605311380911767171227135617469272454742832970019968268648658431620197830668530163696190028995470211054730710143611953612469882262065052303924556042023354145043498557251143483376632247988187228330918584689893484672028020061220708387996406006484371570180264040949631232245375462956740133778284827567928031013639740724449308116799402035234717321315652965235781841379526707831492797866034971862487110735321817487958028435362800826725244944724039974137248292132081314586356974589365032250617850984264203259065436450014964765192204316425847875672419390932359766738918232930045664520677961538997922685283372367828091859531591705326781998632867371789252387209962986838475888874036261689581514321641273570136589471154322943671059721400310180456834880335734931178896980220053098415367994493444299863145534132869509260582515663084740430939452937715084238606201654701114635936902906317020830301219080540072789707741585030228770081367675988558072282016764592564400481993713895687790602632849957034071423532833801782743957687928569085794760355033538094369988073351510197124767966134937578552678442756900391674124181332380129445889179255509434619535997678160246151609323423880951928548346486236230166204634563482271522139841527745721290100629691100309773613364953484613000990424153674287422499586074674382748481473184754578031814862966541896153122538663852385576826349905799663406547176905679251398653118897524628824707026836010352395907639052336745688672905064741230792493761643340683466783159300803147671014321881352925518697614388096506704616484255272758455008095699519729821803932232237187097907267492883294025696462593547981504501623966403065752227802673382295420529966673394017021544516492072104948937813379367286608731782048724105385798966801800827102329782473524874016935215298199091397778092035100789523583862197642113479755775729556855811700029164611014574767559300570744457001968450022540456076489943448773642442739238425732564537711551523042305107311975764034530479322626505091948967296588591535011365743327973815755583143495519734036719845335169754399434658547944162246966911005834649065308353460585984546021422769511331506463309434154932859725099291018063250292495155839553450318939942990510287808900509698851131075490780084721823755106947466124053838065922794987461612863174325546806626896050582212441600347792013940709141717336792481703785245683744153751138714325459189100166947910853289976396562077170340255268957006246135015503916780301196145675698154951778533389529032931470813250327217947693135343317554471443661627500101003332259464446335174812698006337351293661310572242193192036131195703487319212818527303745336356436697757257033610307907409852302562657708810431308389279515018878873742691725747906259066448186814089602746402494653209223155890038260372145059254564509694665630015078430407753354424505465742964236525784421655390394370839762932086406290267250778957866494362134466768314646620686293172215657860728248888875977118082299676462089859473798796003227070880586526330032804665068855632711891610543615635697808646952087077502674223098920833029719878693972889243460990193442267548092409664661453026190089056825939527102460322431125490918753717768412861402323887710734040997198953331021275178494200247223307172610606427220156840857241134544975263504092848080311015133910752892612432883347619671659998347664692234345977795459222424329875283197214817549786952842524103866879954543929618298731744354699734187959730258363351142664256194483208857174069189118396861260062773476960650333445908520205095449521058312514310510570779787152648144291923603735553930851383750769663371921834778461872866431351128080064867908410447126601540375216246790502497273423447327835028288486497568101642093638501043113468094846645763743955843529869057477303069229418793318124615169819697470615866483746157904972266212879936488837986677071944957900146765186483217111754463613550650849088266344920728448139472520860534632765392262974752630882737029481965892876376952919912801693712185643056925807851312723553681833434594797256830704647601502410687125993017908141199060515318756802114270130297285717807872253271267682030069998699156236110391538873862564061684752794528410190263335390338712662820505209777103175299156159110479286148897616850265186651306739417294569727377256508492174154469976127915520480679801810002212142151525764179860864075235589335037312146970055503438076568709483272796791705427796130402588807203692926915011077690761856153847553366705737907159861942787395424411141069637485290113566540060137548777666052203923664549889117550183753701753522675314825653120582052003490425796649223189973757314335521374010342452601903403571736724579637136697078387184052071120208527522396640902207509558714914415452320936701201726806792375009069637783858109027966720197096724747141008034062044390934187028534125385099159152687331153427054573186897313916643110334784949797458703366059782274199062933142728032941278755379736016647676687307619448035261862396152082279226016573222044496877672184303664968449302405965353562907909910052359862331542113838850382432691040248474284557753542948604513328144257777915544343392013985563539333810099404788167232384042338934957187515473032420487409935810730246707756656994522275658629533848287552994867433854833677271235417053903701310676688009425016921103840381070673592153005277991843354048403514788025204314565526158491017914916183859542115989863737509589572824410509588562085102743698181303593029029252441758468951283635572819318118187324858616470127338806053925842836065307875764813821104060246783605274211567680992708361979708949901165484337283904950950909880462203471435340422390832966167173705489485988580538288065964298378450221688771426503790827664215607720059258169936500558337366171109877335685875842075556493641881891812560532043004169520590379911837319845301850258499010806091248179655363367237454982254704314244339689525229938724872611929984077638223151671385800970470828504007380815342628887973499838594558295794422394030405368026292589149506677375983089658070491628355387298254889098887668507796754920844404849605371878382623912732641821741036893464700156387640402496555104669972775319971635201663935032274415258581502896124037780611435623176191818517227359327500168850715138650815911083461302161881037700875424595159948601696235671442305374580716737324538118422521674002109165311435169547032500383002458245289896631941769295789565947410904453116269138117742204932035755292597071637832676253327370779577185394068286907567554768886917694728607156462180628729165102195826889302097952504222844722012045187201631289174077947165259535815970197971003181242471403510844318028085937255953241263101620372531807607980416642861572795383463888847557905665223090817294139989405648267492816193507830417270925882792283330650880999435875197500970994707351538576383974221155933246544699838735307247190302274479203348884372359639873909294335557820668073358646038743175376848834080446533517691470989302241262386069666547922768018661009387545503870540498110269605253652281793416422059400796702236863846380256624000195631675747413615282779622618095837082478824173308523343382548726236067823789579018683959533982447732591496732384327949651962877069583005637461016421170334753742238913200821148928742209850865383104827153474610361235747168824003525456532208477455380896074773564511523772499596448020016535329760370367871084917393989518214128781966294021252305668427324768768521271554912952725301565272709732143756742425751140190863352020037387142734273224822105793055666187259160324777548428119399340308794532109195379740347882444995467517458334860003493332347891133872573674454732000663739819740384363750912942964548712816134109826062771732395768537532343930972193405146223652455642396640162824500927185052280396657202464062461085273604686077198754756245988175972360407583038493547962712625194182996194453406964160826251303587252693107329978005891938102637299938138701212689412869359306891944595185395366015981383650547874652605860977285355064773961502308806617830087719714076394506688668724778762224405606335158846196946313082106227096217710618966723189049303996002874848668188634368708079038605822218637681068933378919350351779086744679874437380727790075273445464699648048989179789808442585840326285128079044338431732922465536891672981088210384798462120540013022234661164697730289806788072446016611040758834945707611180536364012430067483216697296506960836459040814544237716162394242378878967024046627542698244457700703458182893702061155648217513552598604552254699427114780285028553289995065073796389867375722548398039766147425453840982941365084992935033121996474365930615145470946038964728025875664591118986421277561626500250430500980582252987413814704886193749749863402282267579687532288900557289879702752310526644624834735530818997654278450150419429574413239148991011941219643658581998740614881470120089577212379895141442403262408998147286760553165952362495064241207233935903916961962687903795271310885471414572796680778401976319689098731961988025395890289506490194095918448322021765673795581322843854806029957301523305574013950154480536171658162216687482164231567016362127807551911678765156685556844469541411670941393914879927310327030049367196341066426006425659785993488768424375803540569997830629100882171410275368891269756949771471325863292685004917276397518824938292398013223135049275621042184642619151350012331148415207088204603510522522267650801003122567680030651822678438465890581562245639654568675559716329075360034517880023698071215978809230621950412775360814927166290838064754660784710257222009131098715229702153681865151591603263263948277198575025009203796348774535518585216182855382594742065015949703108137822201142395865982684003997303372277164697097320898698789850494871068009168701987762227580518914312687253184789084027122332538332697810370413924441411115858963113523921511485944584245931258380119891142492242408083814617832404645166948910276790863987583236507811431960498754666863823789161952961523308283915848283255437201803985738061534536253526287608003745113542510334749952577465231505908223967166273096830104071692093282712332828002100398974441009366481026576834172120293167004332963176771387147681698897934309606683167875291886506475467617864202589004061304304637952905246791576879941158381304631959357288392926223833376098749222699750799104328195070126212680071123214659854729099069813722601151594089206393629689669997314393181024465174533065722231351518725391747986095962762760369720462989155873775997276964864665819752719712587421179738553439268256234972297841037760239232993085684569931516672743598092651366601386893379897858424410831845646023352730979872957812827342626241944933069064294400933934932888181900783281718646279629129162858833270550886520841998295575495761004651003850349154936538797447356661098632515517385180029081792225610689119318275576038749080803378051397108313780726308019811835420929357652499201605911670900252110739913032868648965678567345327956258205315044444452856071029399251571826546232546943959369090684553445156974083219304981597358621519331673315583914639567108854544630082499380434867167626105689030255160402842945275444834511453622685808633447072222878954188563202059777136262133141645564629152361342093743363043218008259290167023476256242869471825454495774799585590616955716500253172036912307394350607001814655110110849797096021645656406789677736545520552806020569244691357590960616265118919986606856492196281572197032810142641249291065011921095170433989306766349765191212559158400130126077228828102911649681963084953470619290849550143580944047082358853547763972661850725142116794373361050142038674148265373869599071437446877400411349824803331427186536356105274246687582535174080190495646093070540083669306340460155585353785282272631423602614350859467920947742725419467823457202193419482920712365190864806393659788602563839100524617266009175601115562479836117256733050726769865752725965352924187744244521100242886137614111788626738029686418097636047435558796393779381585175958914490969854610915764043392136462718259960088597369860939629159150662530013811030865399762479971845777342384877472659117231871225455017477069597381308098761655277485510442202317762971631019967603699533665082137266178537883994255811576136029624959844703565329669960970818977476242362806425990291204100001513601434110363583619945161081176277508821595651895342146688166226005742818383370367995099524504978477216697410414603660159595429713557757078620352877952100993094468031817836160574731720398904834605819996968399672463786554172899563683063129311315008949720712813567164169304354289830562732283518348226944681248493512574031157508415756670267924508205996743420145628672155048605552179093831631619216673383809002948645717991310627569170117022670683375768809105645049928207110767578015407642032317978206394428440674731752740828215735121014057427127096118217387472959903704876607101541314330302521337619125453947536160879527222406762821142621147348579513013833089332462137340249778465775396687468630935336772312808806415094453350231771915736669032538072876787071955954291369539984379242507213798949803994085626553059962013296337529895957778576679928306334332759267205970137558239234762069369856707818709790761134866147223994894201464187234861738373017366353919790492028137035553890898191706819594839939264456881604749295016487583615066744828915302775190893722800855261423054391488869690296483674742431452687845635140479542003863172094142586086220323662610720842891649644538598594145297320531865866718288561542210142809117021044133042756249947283149805233457566193305582328682707531184324064332130658003710680998136781876597940095487814552964237455285563449479827657468872756696514475850777813332958948882892037576212445273666028168124451244734284590863908727409156940868500974812870242395496479144090350562969229331949732315530929520736036699603784863785394670904956240401979217914025456218851462214157183675618186326970321239875553059422087232494238308819360553899171606846965153113490733882711623455389673345883044424889293803004272026430139660091324502544651678006426301829656900491373512410723278726972017343571502793241371277903541080804130033188084031242016884333323068679687026313216350282487820047563280659375742990728751129905824090282715320714701604900403947651784905266160266064414348810943865226875708704824190533637405361881999036646392236239432390647517904446404728631733154742701438811288489826006333232290966185000118885351730094486775488851128299628553214458399518841931476893379268665933913896733399666488122688863917485087037686138983169467650748622020133947863239004721818797403845446990550371647219979351128696169936399360004085333424774178320566955879586692979999407419490576192695839876926492695178095894251526462748424794981232366431766150198660600647017883165505322033116154005123052330307736911982455160156671996849643043531499373091373508583175580641075804685843287714964931338842284271869240107235819181890751821219909558796846473655796164460634787929849134644521633886580712378977630624654772781965798716995380491262550465996130460481590340625213691418733439038798766249451487741216264763417139304555190813345677104142212011281904874323517565894430445468861168988453923007363529712622291159178304862087536766082360966325356326804818624039976375880511187841577207433598589128704343634898427209843342716950328980724816653458549103595775790818888992200444558545200537255217243755609791926508109609692638330765361477829577434312839347371343958688728000092674689289601680842448658130372923212569048589207821164501674531713008865131804565719324957801619879914596428957251617723655157225905479344929018402211169998264044819635186643016398994409037058345674677970424210792368100956868169895570579909049819234157827759967834757174717120949903014824950275999174240839837146084150651768233925123982323678167915389142655744250442790943410685140717654027510079257291695454646218583301291745614745666729194928268187839286254229892778887918750857837997069118939960070373005489578175327105718759728611209243213488580201687068655488429368822533392334689998142158194007000516767077496855061477101160597051285376704586977606339041398793075040755917041151335516856479740112558346126897261358141900036590861263323938840743469738511622341952293561259903326336960570589691352774850553474431808568442408777304193174842117978447634461597971228811812667385281791446660212574913100167919607172862916120950053569300597773900143434160939418552363707848174203082902839384759709060685202515276393965839848853736836608656173283317098984615044993703290622771741565343462232411139987876469205823177601526063120524615466153955833156598472625384241944710770524000767016658917339557664251169496271846083972980512667150113943123944864093618592014232546955341008120610315129031802771077324450599798782102621146307896446611053275966068600049679800986081745878951941122091695968800591935726658980990216852520113377129579309291436415231553350412013625837858925017088834103914873500673926068165010341582538748548587182843524213197227685533356494301234646779483521652749288228632102404151792039507461884242076210034091642207393841695428311662555242727865804280243064822346138656201738817679030142464807423807211616137051032309170041730983683040834182905907747250027591745005516941208241291024976794032720954702929850481917655654566862532974167940729459101133633421640301350753298781170939885563637437395826531793888723161568895897980692182995456198255272574670778962226004668647832018921845257812491430939591142095230790061194333793202666108827242140551391109581768526131635462375073624702702075595323192079288770680210453985953584245163944786811748415489216761102703327417078365503808143166567521457050033234780352042765499082654286132093284263234841098777720156684137786946358405425278389212867526785615379261523176132462444222290474404816385383050812857008703479559990233625292033753598982041815261789521145560714905191200180383445696707332538238720526158498242363075817855679208837790413835227783424678826968201003153300007764959126116202749827510879880684744200508465110884826261034279332680933362005393294033907904027609053660696111330076660798447229123650180687035363847581247187085849519868754225801288570638940678273825724546245020327636791411549109449876104513452282308249579835723890347906359629843584432083155885041607308660677180382030336924826700840624761353350115709774130778834507471138949522993387954002746965950793164939010469153894166390688327431550160886080575211813904132534552296452634185810539216082889767045365748916423873255276546118686136928353240243980519353055589130231953782747603232784325459721966754069911708066698244435536929434897334944993281378053099740561434310201979899351800481019907873985784373005039482530536825177737721347463392808367589230677650492659550611200892343910609388917983456714302291314094145646405895730794979599090813706720923870419022886154226629754529446562169588458375150710681583220403366881866013645636487581568512620630324635160856928699132180182997818522118097618381419110722230321009678957098664198141747569387138220768443710308603836903655408684887148800620175832986165044312889754698803538255702942023234791923996871670165803932324622816136589447373279708361142973590340186917224548808595080540894948916908053118112528659122680648245254353632512701551122700885750158613708428482388964818169152650666990545246281102792883538973265037812941500383573929201237758197260051936274001218477665154927718376397614983266297456794320737089083260457240376127981462370667764310682535039278235199013631974260133229310079603472070354197354360342331594473467939161967488975153685403094665269756993439647822963214462870304907479508259723064291306902860520153940554878336895904781793159498607203931836325437242956095831373079639562162913912345421718405517172841568642671636570919169581806232429066733632857208755844728429897879068218148217626503266981487261025977605680306181627528065132028606311313991396958363094893318985046388664315112467004310191617843796520979015076928222828755519786900358570818124314990566959981668379174869076167090179686814454701871847314980873549592977264738596576804065904984498896025060965331500428310340610185326242011694655704229941548924830454446059143834839478265671623654210020932863447054529886047820412716530970672581973019136073756314643114607059189390170128749307473217531016109045513875558123585058060017234657930263112677741488522594887673677475462654695172639511562147184326200311197365111144510225377605175583812303804093443156758877365716802652669267873569114647661040058270767284908465634355443175679711464549035589705765405586534653382141778829366472382395346813883532156941924205290329773777737532960171931110459811009064022299577959624580752920918845942163900759760918243201224136748428994646030226274475149457679276709549785745755042616418798757498664684696585377760457889336033789579740866265086377356400870056811510480320502547535936935254525786576902301973732325817005349332717408625762825551574859974624241035656313633525840661431771129019200395424062354694715746123777364300884086841248404255155356689098930753422693345185658741795450459293008110890094478146620652166057147821867322500713578130189277792894678620006239799956912377306795468443192117021367704054476046056949576034901885907221264329728850700849314128628250492098318597007615690717003774323639656108865236222356127911069599779510854157380541431573515965655669435958774538084830856473836194866569801011915696348445060708974212169299707743473984185371129674324261755294106675479587820068508080188053500032057370698273021709062557736128007891943589725128040544572021916240260225289383401188285045894797653697384693972259630861844729161703491265666913372472944451218554829415019876115035756744294306604987790546245193598034430906364422498688629998130770202676067331883080937759267823675399476737497303447090312882937024236830839496047006568859010777087374271240753638288492687750547391997344073556641059205680576531322339163357369214815632762274026895070286157584551160117630311472079850960984296892196542855007036767567555589072058377562581095318253297272701669256003952237779198145885283834175923769431610228612134554509987416902293711163239155530561580262968174932658181622281756442559571960764820766882835083411081739157081885126829568723964156096622527050985569091330922640154456952269479291420053796854165408742228757543806808019568118331936398861770327657581822112776971947372962581047066995008788472552825431761465372133137394685168393069726742723868934119040455978143451264862243613131850765911408123832727484041020811746168650319424107824836207522681123322981202916779866111739982158468029124902289555494270245633330822384606032658005294969026525950258003910203730483675717567180175538717040544169653306803383870617109394286947895156521694850578917333771453551310056848152425871368640172340449447336203541516190193810449852650736396205802476139701011266962058504271163418497520103716690502811165374592168993821041222645321412775953163098459234568660513018285022418758971027238260228358857807260877296592011085007216782554922460727738695077644911256383295351775272908596762361288763774493204041981343560260925917064629752574088285818647131462279578798611074466123101175568063316928652874938184284241511244994367989118820570712180402450236002635976490818018658000657136922720437082666237100329947853910755017898093008644548563844868609159040371499314979438679795052705143681248374186726769073906181247423118337204363612075842982700727074509039726682559476879252118996050108142323008717247195242600720029223667842709774459372477013089058005790859618448423803147434478771756815970242581434240402258773573455786184629347683740475286462311555191097867782415508092410962632222426862068273380931234199133226419859696557905525416948709287470995656741405649635477898983075122634093481464684652354022285694246598307780491718505552533116277796017581497876561856902991477733587221917520975039241356497553497324274674036991076464281342768986685943689821655978719190546251001168659912921278533773685321930572608353300918868432590601227761356441790065431716770015660326774629284372741653199684717742349001356226269219354174048884663837996785830577466646852222751643083396971802633781899322764532988843495749566061030534209495158252576836367536687943106266474812626143637661925555024682469373194100841430369333423663172357497831360202449133872148213609936101781303953880625038051558319997838632780785988808591059484208453926823359940210833404558568188935192262210899992330056890200155312545255472655433116370191866097590749124740999067377545873033946096919950988529603026291737640654918594811269542661033700077227191844786701882362928584700323202670621697199340242201988548501789728276245843065397233130110742015044710988768514087285301236892917431182217363645537958140671412729429627530677962245635673316540365433829412563089838021801180270983536816496569652033515955484561449779231290590602567104260413841749296649104406895929591726218262594568259870339308281839361052994242031403805736888143651956630816310197982780728168065402237001354443599982937305372788089428409952263447250448449072364777211289402593519090822024711688202945417208454498508264880787383052798546026510075349571678944644038984657599046750012552380310027690913893092771160894972762038034633361890101142947932465411569078494226533685946972555649741682424709963780651263987457926705868218651861396464477970120422082444786060405739075172421768615037638848259742765508990311678271575207643492570096255804809328327237835294543616832851427228423303910496802668158095420290796049199421758006910822234552657346902944172082621887330059333107956974478735781484129473452022420641174784378437421942608056510807267604068974372813189866940598459365384476217473710306160979533166935858486930348366938999197630609236086909993736178212725318348551666430668102971575305476614702571960081145590983562221477093285044237916777496807961706704726599993272413670331952227419628609312202384450870447627864060380480193139601284416529005708699042407149539272333549716650253748119974773530450752581126949561575590554686734691828880127345852857646507935498210563745587589492199153236593863954723077143391936035675136353750490045105392371784025373044095058465063439934573200899420540730412071502631812293000450051778914439033991126427891370149277934510404859822475850016713621281151324304333622912352058192465442513499338084760081625898995136289718004141748193647119041329589010481541505201338272423088503237245429823435532578505247699038251676363249896417107908523398167110315773175658732467415489174626859794211845856729077873313748076355540926521498570818499310434164014291274883942621988630190428047019221842741325873812480669172002117310415991624317572361141877853128767450554386324854355693753232222069221608593979521415526824525351299489414065040224743876421821185014000002902042078343128218912899172469873326432471043441550986455628345315927436824555991638224478874855405166371515146616108480751627516637108871165287681109171684649902148575079537539656375324239373711202113635091484236917098747817351052346961788576174706899618231853876435958334501511068969892884246706992869466895011281004980955570393338555921462487509127150168192212756469961970512268324733345739842878271307836834211015610811768089155213430898102399007280356192014571592284330547051271779942741471454862390333841559673691160879230498179212785532302867191603021391260194408182386264239004151283824817451342534604815966973267382311934215501878883629917290060346246420623898874308488452802429487645221193561765809490499550983387118315122351611221516550929853438625544308283879387411134685060472766353182131262624744991815960930559940636836791769948933570777201474854402001652319985247322645513910162525541339785789016488479653420310925219940390555307929440583649619363101332680434068380427524336149333106461133822245163329112652925834932272113087568170514988354950263891259102945265026987473172330131384452737497648422788970168363854968495493699233050527109705085254549458351373608215735556979103167877605452783365089177215296967794845610966054490736284248618956091205978525597050987722487914914324522917613931091564308949840742895674954783276546928909444901967116841691984566805838847097346370091593242577218100111190744670672810284154422005565366149295824177100926670831633267479275616571186288393213652944194559862241967413101777920405031062656116213637681025438630969634270802444524965570048916747354802656967394726646533768286626707452953538318622331854583884246037549311734748097360326506396570001357903996216374159928471235320838221215467511590585930760581933775435369256682677624533754867254122874080400717608277824157641433667334237277446485687125414957649505971325545635144459481205287601062886127295993946938485915508567385838247123937416848598305955894250820245903411329258115576093621057823176727232443863032205624797410238782947686366469653769352715122299576291907879306461059017703915467786241029608915252417026085073533808674585288061300601774433183166542041710097493951308822814652145528021470867374680480292080423683792102005205208108426973834644377872015153552676910359118722303631096607504669465797160983984461151960183123230881961685476402503150354413640526093439254954134670942121940577407629554401614737888050729301343152403902440621688735375469332752016280869507859376400795497861163822501767963582847897457657409559043818989216696192180829878983136941515727148756852319229336661872693049933030801020597659691707659546483285289449097047913675658371538838229128994569714254341849958894546748534783788976877008637914661707949675833860237636751023998854065739296850502146573620408110901205945215254586059523908017175382687334529097440776168844435278985609232316293582111539201899277729398574426080125435608097993511846208004043702746332399648801860833811078559719921018381598240256534143081945670096324538154045692962016254494050391634746450084223875933981537136284653425564487445038163903381917327082743797374884808174715198560515066600658887663220193225530765289935605566471428466484292500208649508570782544804799459638092120374841022733574076321302310917658624024034918389181647405030822343924992344742515846884635245856647539462614963823974281916618963727311506118840252705558075619622987994977892410220117269384594959686543264581304261915813857740761707065717039544764683088309132557774747448737477852488697967955575005772628627471198807090082009975322207500384128879777276499391599704387591854228686114578252827794097887635221857076525148528333444437082602931061402600776498922359388103598312326491555315331824055074185239161295464187305937649680341662031131348390257033642326660899090895989075841525087864127776515106093774450312454861051496743309463614422140196013451697430840861137711501058803804949345607280941431845220532521890411983493919810286987033476171966920706921051204264704690766287291612200259351398228671480592650687796267531858264432197857257850467238889295698225228535808036459310906124806017341239613103906872957601792860822394907920659813208518878592760813359563974794771474357106644504722138261389362125117735883452531882808563157501221607728251162961207405288813618739673811363772155185270166712160907113345634071654925734223430900433446373740409858189826370558673897558615874696903316110482893726234319014384466098997193593500058624098781081894031338198891120986989166810797822962246698176960917943411828096664055921343686609981057562976190113235892145059279790273398710374933029065557414089695286805430140884661183832385735038268687872595656490305415828711942394909682607144099488692304696310061568561572705418104610947725239841432898354756646973267686891311354937489346456569813905798300127775270609792016758610074574763534352122865356938366764772690754328670886184406880219684616056682659779828017042183441269713471628904429832895471167322023736846262947071005320785335582806056679108231663240709108478740896452030497434477623144260457674275291974819795169205765183822824018196307592160616718142298928655743238480526127357474543447417757664142148074751620756956774217942372233502132873330725971180336672581408539075691936710571089807745762471639603202222467080601303463676744550545215995303828560403912133606129611348864261450346276662587649990690826244393655000177908628968786784064217622743273447035058862711082889813671500602266159480714675617692611955942771247002217386585569171613764216257502452802329524571914117325008951167687172077820826868520605925078838712812317396571956145734015643406110485622049357731478522564251539602532159732005884034769565636395353748883882674728574211289604533983214469076014444686646779331393266157386128870718234451171759449278721504523257944854567354927177239139860247775164288818615862078474607095060773393373904313008760524442329598426167801825124443629498070989105881493855112292123779782515578834839323968682450162399215893214533567246691197316718317749239415091952652851605017417293497496197144208493908291543536502516390676688383923379100850207177334097126627341569220767721473371322394961813158867261465419027196339575240866776373232226183268472404178327347222250861651668626123765404081671822318473880592969632299504426893183271369312174757734070474301856113318603682698118079658410833641929572205141289832563316840732427588416661662556277685479525333649983724999153427843335490273894152049746139458376150225892440788159881489631893554716016303188723322437636482322407353119319304151032804560502891491669927402012389182288800409599528274945120161587769363197844241062411182490704627971579327432620030350205905543880963817038008869424528765386172426736152907247209596773206979420846723677805147630136200981121408528816022524241388382788674247529396996409534997206578806602813218270332477480481715663159889815809709940815142673090632399315815151869163257834799839026615834861383614463734013472581981028547940947601436216027946796099489909144748792549702061894714930308590300605955236373421089026369588772620958251253024266795645711271155435455868427879433733472458301360997989112207183225520872498939196649128590592651984868745298032441154025988935939096783418323828994876847480412074509372291748867062764897940421344786840376213025050472074993666015291896722554709975851725758870152774959591110138626438213405887012598329881307935507740548483264962408629830066117991081898522472197137029504044627394501469843625179450440146868637170219286333646934691441184196387492865297171695927230606576755736327693398568478983683357735448571718025193809292840704992833658019744154421576012938160046636055024777449302480114233059170674011767936246790701558133357854553818710737132114814567713041744509419786119712944270324854658509954734491035928783738718758756207529856364138724931087572195586374022143142920782559570726839219361010987441284939888378767670472230686687477108973272330550506535282488921549344602014657274638831682122573004532777970428778587971017316766203975484097743604483652225613463712902477689238630730764502851258167389292555021635407737147985674852480624327487541551127485859007368000902491097043271182440784064493117516658514356065188925572096598564535217585963791920793714332319736689114292542399895792479033951291133209161991231271532540986531235571235174809878410235936329983394207632977125142702694088999673931742813349897572624945064431361739141310814850444077025786439407552258136425198383128357787321396191375431971033561573433182560046545137484138565015660543964968197501069865303563558818947042505714347417168191219846064393373277045833574787392804716295713249724865134282403165408099948430993329575783256937088020120862762157362022714250262165160543649766459359772665645920019510665563669914742477821856156046332189590106907104350588707664991558811959233447830667182228213303787063738663236641359401867113895598308138813055474561695726196849710906889342232473243019628993377545445557995793170456638999207179212537658622365035301479281023560724593364236596108578795176770172227377178674343257039128883520046278538985437928449108732825633966811535066345549040276726540077036952905928340338615765938103464624454636897214898420639166889395093715498751087195538159585489007132984501349372989918577055367178269762703451179102825720107839781415719646993207131984565256449781940543221981917125863033012351761817612766075876603889054061717075931525880511680030062343636350205583340977843258111957349740423386617693651137984566789042791911249083549346355630574560610592899388629336710070782155891003496252584993401163612442291908901337891672019661426320937706810636887792554388598791278701145910748040700277676199910261551324409386063254268119727478640289869061622268526116014299351574314327202328447961775581281113082348420575984696552794840710524244985743933562304217529785130486903536417410781674588626613610985607569198171290600552697581542373962607497373596774180941996630490433705117223840094457766724238965075693050259065120357594811189804534378063839403220095718536038565021405050267668301353573889498944097819068633767670265925725736326700328374244347166736027577488487800846764609315690484797188002257042007285260807724757496859161575247527798914172345751959762831062512634174466459070602368259007316115272443273704145542596252755730727549415875235366437424432960493495587581108986899325272001321309744866119212182305102331810436863260598742951761101104137590053893672839006660949979869621038239547739136552799715401705391444458630993839046820714022593516999900882528124108985445122546920806318640020378121083666714519495749895938904737888857971555413275247484630503809719880150737017592049253795994110478783541493517709027871391688943116966704070551246825998596783139094781777915176556513627786608457245454203178347189786709828966978331010760664027141636912201728937732735451451617259999302812858569690383904542513500199966929951311384399730770564580044424064281856278117814365805674889627541409553722850751780965572316828228992696393217504094773147693680744282712082525187244987913077920930064255597532172915923039118072668859475683421709299095861079082112692648107061318291401964377465735432982718993170944557407553402318912168870939100354052552388120233826825017320208054081575424129910465573024513554787373267504365885847169593960703369389093872723414300033265755708010249755667000118078451365382705166367523834113716729971160010290658817976054498553658326152906914223875581382920070112306101236461143172665760467971985923058263609790660222636687912675245454027812170266385616095876304524737762657796543252470936292091834221849859019177445337554882565721823160650405124255009281656650715483723127345116299248370216632054546242655871212976879578422395611256255216962887712732140592572165674556264491110688118161009698497578529326984203331154212640598844133291076497666820237436441775472307994422841976049960745420766575151527432870072994173624357359967528253798142342106533874595785696927004772509695801839831831403469987941466354039709531896695473846100563808190410485060249401706690004737091364071848910462942744722042043340449614942594740247737625564684229118202413739239482705086828740491429534873497908362763145369562397213247561787716395238961622530227700394289067394046146648884880591951843734565541576024921485752346253726950708934136362301650753070923541165043668149230289587343013848523905782522373379710383369791943683045573971778711434971976619423446866019049148313684659576656555183258546120642790539697900504721019676651753220065422780896595250929675691933626016484719851764596399688999299073627012522526416226553241949820016467739612989687723612627794899775672200470337095425078253775690983941068058342230547661925288163269797498639211931054725532361856826881355738349436719486279940261823458712661674161969742508348814404903887595503215141617638309722117902411845641514994954818232148090613717322243787090286245172912426438002124633526301069417813275823464140284910067045127387477966921931456436716743040371003537736557195921856557350897717511641550639805443014455031327536659508976270167703246791861627612048180130456863599233406050371947160934666147398606316967749269436428187412344878436152325601730974464792991168506361963585258989075105536377714599661801151697449563651965969714499911773845794028646273627747022938382463955020453616371284069744600784165157689230367791864474513392619815547481477042296105719833364273622092401017712024473148393611542608951799323965880698657377364348089720145021329700082705390212404835207610440404723424169588584134142316767450806338107143478942998238415274746620800884422336848508061874990159428323078565837987974626558175895176968690215806039132304816793770265575104800524911054635841522964776271338075267459740056899351724146179597560588449908097591395203444471064880464811455748809772584445471573463551813719993962906530217241767097847797251106374363466435133555565712383280288723077944444509036142570799271499313819684511340834016712111995439723111470010679017594233250567355150719422183219813127996220022100453666457995907687503814208319209360094962515437222189902896868011602764993274165689858954150822385039066651075677875896481631329342331408541538212604300829357963180414635252057519823844617195104425844066411143205811982623450974530426612662259927396635930763416940004946862386815428605459178686756369980540004101597480576401912206301772294509473355107644136670491632199859127251348562537913969364500039043397839043348100030093995197393943965972286969298891702045279391950218783815654763366659918210706338596064487650700940787094200693910256664472780752277331468457030997096660039226802734497425029943850349059884104921130453857709518744045089479878335878259480255875157150177312063605485519551769687938359786481463399557655660762114924325996019054980604887376592806725063328564013801457203915553555803005717541096816763821845727112863906889878513619515378169579946856289661980084867781884505191729496349889698576729589361224644089699599883978219001190602795410393290020337995215317563564126070256439806052010054908646052713109092255156690605617470728085033968981231091228028533575688197908143510294068113790181969900785358558183122018537682422754142386345819492688250034508148500892817027088081643765371933375749163732562816365267984627666706227799382997496565381807763145981317846442988815236623936542889874772865325348556817809872012305265970518990531209894248699273970770951813950727594367752695189199988565913723811268611978960821184947648584087453132363974321428806258241136244470765666527276918853357548898625194761791493167972722152033773811425297326308908027697693397674787683165489168743177619455594627302177110344774927224130556434119098540570962854240762768919317546402811284483397495788868162352364198267015963867490678500130342534427050712394762308225174568708432131022802189402125853296422188423471641262677795353445521377091503336591834171565254898139707345425692624201140847162316594713487620213136495900559769361976455966002724749702047482372943161455258508666580133001542678564954971093786179972379887915852204525340862471003698611644366215656219120430557937060193310334814420179823289532378279508842680499845931862408613252097842704896801148382687816322800042016381324446370789966800988309198238449555184476872954461276423256817898567715634583535021675512921377869865350776764664842552770156588206337209280990765839306339440929674603216735614129769552086289510180459659625335819328032687337507530804712049700720113540360487819752476760943009363373108842026272152086468532880739908340909851731908406448211981246709625540882848283211079271915657563129098974644214360147327537341872773004166951780072059650233998830639001061566133413117237890000001962081821185293089991673990972401299669575256761477112680940443146618015788954392002511310608231750910605102955186453666388687099243368558449675502485546988680050747227471499358183589950789194152948700230429041038822198920586916422213407579359110558379352429663384141103017392424486328801480421305300384871320986755383041005690778722156528496782406722604519852248081171744105441984453109218751758131348385158518801741943672355252785199755146673612528899531032119165737315917054544260647608675695162481695656340646218285204449210887477938327789182733021217625022989591420870525988314532081985233528566779065352940927834986615116029142620426007603764393523245456008007984625314999246807901171802740072042427440820811071175684287615273431564794444464511562416639112470279054189178211804745482780169307899519958869345809364173617976926119849671416207192873879555775367709876525568985626310840787507082088050904304502841694407952902582511450906762697204406565562842110695014497690137663750404741124784919947204315396767038844418506046693338666423593473486203333526238881023031270022908809488274089380135665073927977583177608848448201425543489043005730900222366056816316822963429868513682396850610930052549576813908727704836172355165569982430780917203291285411496170788899361912836614346062282892980262617859372268118324165659998425532095498096085702375967460064395404432067326147213705501239978893163168147410648757740466229227353163261694598191033144146438506932736565427239018491767851760707783286542060143892356532286784562078166890276821131536536438780582413733291095896489639478755849855795901400254460826425726735758164814350281806961972588955261599924660349140254112271061311422004419566598573612180116504180852172911237087700757949439123843561724104185575504454426128717715061612933789219291523344108536702735469175463364021556877804279117629973588813024319670511454312575330815960391938440708140522378614001098000679233473053889424060530989617457465468631989050205288130778704228931047634446022735844574386426340209280408139934746278122326474343282224751961896977106344323879199982124351545311965884630424235801429241526348936686762903952800189148405424602720803047625488391605618650057518604670544025627356238402166779499282899633217298784104870525362879778048153148340216798509833444187065668307280340549698340057957242000764518530312642250670641801770734454612975343532597127319236215739261717764191090366837171137168623703210388636361128515200113072776831787381974894991108422131936437803120826068247336601943366755182331955346089233251509826165359461064124701789385340948541783088847950392898424532401443930027732904663732414419190417962908412537405726910267129265552220843636610535331075105819559099933804390093892898030439430505435351476261758703138200636162762235106650155866920649700526762796422458441435885201745434735871846693426617123726811853839960283749000111087080457312985602285199240489037154226316953808931366863167038952506447384067736414158885019337670215966061722358215302077242622411702487073890814413271478580119391258139991131819572276790322905789726020973193122351505264490603138225634281007493302718689719512025512216987086377247719619328094633229456015850818562464889058087508964308251910570523571065819387141176792184243405945681479538506686332590582525251990837664146673122373114215599443418982555507463679180843888052455592061296905873724699605887111423206469733734314726675507647887310802920829267781512830922578141371799346775631012218139992398726070667164229985676239557795261714802898855616991606463712502529128868820750978073613750247694199421413127657465196176681355037903661834601972102323268768166176409529435414855718785144838169291499898899725530856107529353955773169098911576423137501747552134130425796546018908645628928469192597439388332096595027744240820152887884287317906776616235929743693063039591201210946823529590959997635047303141231759842316113731322101579737374946914342220555893266885007096941139394616854322767535815650428091224391811856053220851168753192808913711028055404740357472960337920565315839750872878598457532891700190007156378154827636119323902491759355800624914590931811158988093179788261839205418822601059287673684423149891271026740204445867294686564406823322851904831755631477321522237067960931298669333286364024104854719722591886609656422956452364767900689501119780151424358883803780090455494264505459507076484534309288391290282741265008901130347312477215074154305276601444172241828875962960684611578795261964377718760694548134538683625352169400790883384396763412761728989203811570485244186921293253845956945617005075171765925850141572927781330804805481444833240387876461655880005057777568998590354575299151563493801079058935399872495804641610505232316483972443778412914258346282807800340551772790259516578262057661766423252323630522449323125971738311464867368482706903836317540782334430945358327279206781395350995211907527734657268214004192132438809452497464347456667673748505325193752789627665420043147527593002976051060959031028542734037715110008077536797447232049020510259056243006841666375820711135044159420846866700737539846501104805970382356379007759824230783891019063338176687630043066318330531452335075684751677775043951017863805332054756871838235119616127669008831604550115353520244202952159995564717326000011154401010717539454800097015729167439831373008655992840662971941258677854324498071103962120862326729310674407051581004584054995943318661203106884260493963737953309345042607529815066312272983169838882081949099773869853872312369872000288044804908400361031024011548930307095587838959388030603868988093422427575911945455356871912439966880996400112022040524440134397287177429945038409946529014122067502387992731304510125048371162602635700608046081576968057145298169235548161708517499462011572544273169920948539377805287079842398070301078476705832953492418285142602931080286134742931419055120136932856793670436200529097790482642862467745754614038211197416807759135809122870480105094659381381782759934501059557889251845645523692477293828732606463320710640898014282387520385479325441533865921095829646952355613162669010439414655695891362829062172034601621750250410743745372926890649566351894252220088970180585788276318869847225914537996148567333201976239723617508158038888541817198658247106285770074829724622939320637438224700861340830532083309992462558770553885859165355662105632638905437191066724209276732400829062162118549532648734229843141724519962854641202169259999778742116330835734526680263000248417694024509618264118817818896713994146296775622760749610608805481122352516932771813613178717639529374048187819412632094694829261961657664453579031266439579601664809342071806639778425872556739420807998815045030061743096910004131443344428627628145890080661452477300765549249248317375169721510888921297089547137403917515178710439421822153023780828168756114045585978056770952066456892076860651456133785076105461282976124199134523096918479978004039896312144485357897523048646132515483568141895498904732202240936769871447513723760840850842890402203951462704621895844085346381269975467331174110494267394073262083776403992131085149990094526674028754708579395852393888135940478193889610732089973921783558830589710542405629152821269307008965659611838892057943392329006026087179259048140502084264627648785397179290220934144960156656834317639131157609461875982837609343787531001243885812906887283147561702767687408640371161159343920573964428453902279688982927469268601954530088346667565376143021860419524941510800986876769346785648352843215467132828727523985499024849641554995972208021502200064327902621915214036644498376293769387886908068633376806109418385230343228721318407190706444375196026720645419942317676389218521395333540186981034783838406694272244713357296646030602353200876407977873421718702066115394583338679943551816809416611199821497259616450561371078177224222531404000444271979729992605795367909111762568779433811494501498874794453455610788623394262520679716191743188776011409462397927245049072460842971942198771907196039086058717306757471259251422799001859139447285698824680606228393983011624450658812294500232402479043239630674940780698007098138327682936593916447995639233658930654120940552589513522024972383775013571335134289573417678146972268794668488239041025957284045142134685361604559486425049299279001813417268288949531150843660546707840767644622891820001971488489309241266382800747393216678467105040166616169084100616027206023974219118864847198098201550666698155431397656717182656107893870336533726977191085192744011369353397023067159298091217878130396723550513773807810360274644721188924377902673821471635443367247553694868312641267060309830146481090578883624409451479358890031108719220153726430909509581200729448274772349078237927104752130409318050449918459239391822473540719280641798621736778486433284173704096181549801761923022975943140076049140141246775179481411437751486989782981931517276780143765188555626663714942935807980496140726952615920880240451647902665732927013471088040189430494470105242627997942623322438819304532672484685088537879459665626231242927653795510526369476363174386908759860876050042005414795056972102313132993093772522016467281892298688902581855127514714448467613280002221691199438405508998661279436169630555519800846167206703080609312493887188001695651934146043077609552691533728366579642217647908005055507061487381021753140911194977893139784657203680345329122418152362940744193465810870979044435043220846439683790503928432008726388942331588211762579556412824283054497806401968101156071603426472115333219385385358320143632381311219048623388575039153174664965892329714463773409974354336663444958485689092952005361680049056726907853803768848266193752386698689503112760347482510781864486939747828649141786326836924764934018253520494248730901370728265734826777582030064688536239184910119279735684657169221926102655352950351439283420843039758067547563441303635281527434363307651789914067947276846469733181870014797072222582310466485686692647028638656807091578877495785185296152456394015168265662872511828740880346902781158899685851587013627173766274665252044996282480964354987265314323250957560505225033473876066233931189695123952932597157425001916794680440965731794533454231461896095387048940445187264104642689708056572116621153898285085221206764183347497745373013442827661677187898169638853390434824332662055631585432138983327322090083782973314790777248165684481763089934422383980778291126215464195360621499412316536472471882407372313683907628229328224015771655670280516667887473567666695551286503405573786325492674736323273178743278236115320446572999099526305990581107613734892432866879114017428652767364224337138018516042404254858043227602562841210693357992185164277181473461677972766658494001540456432347424344520731875486744395130180467865971048252855758123234843183022886770590172631130474995487024018187007362869420295831960007470600187407090058782930983199248883948310554747382633133998588493853483031915029382527957334593095456402508865887107096831380023560468795041618976714316242813464514357343610078794657817342240408456114623348118052881493127439101811972299954400774807047687325800857268102199166185994110582166280626146381075120274618724708418095993987305165418226252518437781844820685577656778727737033967201604295872879679940601860168636207716535396142834062158945465584568719390648629487100469996767491826613278908875455481506919138565597964916119279419624779969371283564413591986959969055744485294081772620017530903133573872297429632406156491563286882022866002663663855700018852392627114124283839387736193548406440170713816838023636453604642347809583071208710247577181260384226067940634597073020310898599875117553379208761988424605098296660498235019528930700401347952999027482200288011286352660601648899726072637215139842089730282803432259110146977911637224650087546422157917892710702991243246257315230935863462240613848323611594233921146428467618590780952736644992061243081754961907955314429117370827332347821905124164462754519703127801756668620125663682685750216581066469130385540935117443210599549218949882473596106353843395215973881180499318376653234237472017949370821135423732400111354802085686802088027865538954062840827686558734073320110509014658119093480447341754639787210614464387271667386792604125166843011482578055437869668010414640996283177486932506349691341929610325454735772428972181473790658293520609174627324315879287447535055097870884148889584745452866210570546385306633109753839748906036615787461896258255044557070475888762925070780804599576451537136285232726987896794234878401930973048336573492351504845936097390016535146861283019703988030814597598465312828757379493975071189859537248649024648049532397367945663220222562888028390791300763306707529356526036663012436655425044823987721031400584977466546987802394719932679334081822592187963303971350366814141202062729673671470844546979507201893059442067292953643187486269505457178207591343877514455553875949954465097449076392951359321417798441660080824122966877497857481114685123066884498901218906539452063431289652178435370017560794924645132913417209179901951329500907643142462786872321999565967868496289485666215309219865622899339814799579239653667325507662239171079753506681719624259856621286018658666665562511287188901372065869830468126838371630362828800825489463545083797849883097365480119484937923267511574801011430239400391652253558624739253310717419683670292813911643262347932809252750039347065830739549349201406547192773978239221070033775181833738387120464070926263102099817125295747084110670552703353457833448273263253138203232104943212767105484065511313844725790888756546887295973158514803255968515674595455777924527484894880009387239550163017641697852608568187562005059450040556013830884432510955623544744019801309593005954521702730895402782752668823693350741437305677675267409208148113040698383901192574296246581565490166989396804043975791902210940565298009524153507288186250578341649633705741978195224149915171927015609861943655097857356237772311923955710547498066673303779316148328752923769412025851299648447319549651296030269508611236580515786837187798962557323840749058166351624708646670388943869515427778977551976467825419991331288007276566004792530165960598865131251936063529283833921868170566680654029138029728555338715030582024616303642208814998448736950437628271869797479584610767228440230011728148730033951485169469370952826744034635563847005582318636015626639117600580145672799661782723101502797720736018462642843129220675035693306236507950558117581332410400475757421834188047362883807932547277768077893316326660282379390399028554854565540841926576358133961189724373466197572609080443017056148332867077347413157189270938888919567257359547515123248956739904615252700571942358849292749161365175895665442448759333735949162657841198561586976203207853403395716708944015295428444978078046456630107040035835693234584303002022555374818787898734462724607612862153311643299422400672414872665990521221203621190287110918651627833924523582055023812627629490900331193489469016498233498866601657435248862030098606188438599860608750650957639043692469987651271133965588140336895779766608603136850152477495904468418828219382340746722123969633985717748008579966589587417917756171477484132422322458136202176270560635082132742338259951729231247727722330691808277047381629262911857201734249418629703110630791614757125430846480548655356744045842759116987631759358023271882137385889748783068647050346880908449091497977788702802038209928174780247793535365442515954019300548918777523750460855346386567040499144792462648808533413621051350770787764792915259614424532888502014316629527669875413525108304596964751844117269850602851639378631840611785085078612567440847117397883102633334998336157303929771708322288028663954267137167175429984867590447342769113001434522038233195875764496948926830436876389539159430340697489271370364731727383522662031403375594286301555619049241517125778829013531777948205037353018056664872513692704001474790812606690868116882374215925052903560240185698453041473474412149409159976652266524240442464291682020888543204703289193815395151379245647465867978635411342552507082326581999784270395282335440208538453491053200793735993464827841669428351257326668538201487969638657424388404392810007261171380904324077888407048440762891036756025128954584216263984737089369010511712663244000572642526257116661590792701404881101326756033358273528564540797513289793292277212635943336760703985047359964172168562737419293948746687223455537718859849871177844429325301483771617253091514410943420659786390721334121892950644192392472437711555386157646966026920297774687702497098086201176423266314366397334432093785043376108009046466268902963730482352342109594789889833242179384577205506243848736986028454152477163250794612690690618556616334594729089319411002922968111035934609049242163251936927518591275019243769672080981916126301020021609205576764155909486297376226153239751813213571567957851854596990523243270555382142082157068225358453195008118644296821710020470548377685287259697380098409256392902220371990567365244729191729443306187021745760532599362216241976492075227210045804706858018733475325704924478460251161700895461092938874421699666236521874345855181821526297194434186191542677998600135114063235024278944428616348863756708639028599025683381606680166340960471141308609710825323310549536864328047409819160438279787699340937518793766434352017681976472707627386177702973612408507719583372167327888427340304908792637171347601068569533516576842675325353465526922206956492765405071062194945527277624730181754685496203129152540592533958376041783905073187535734229285033224193920511462478204535525459514692421763769135187228073375300025949451440751825764063559145311732517221856640879811669121798990645406761084801982036367535686255464006006274401159140143743764564581391649628235200876173301335632069564889885860841888177315119838284130733887221138351966242786965649844611901233783677407671207941202894981462337098680309487556688619596193358632806759656708794077579573593009545168389209371359773556156651234064710705360284225318104849981864894379838676203068007200007719091067003114817944869546579718508352558633165035468509793707896552756927847688892038383494608088044936030299022697761992833979563372851998846040625065586252577513440698808711206297226951888767437956980505402822791162158305239492440312014807081744078366568022549059931761368744238810860866592115614318367189143200518535052106767622869397374130784527174339448730887184104615976217188347454910926886648481485092486411047203530797149377074363072969881434174489798426366219176754860772395648094133282997571757304543174233330290023738237705842284560499291088868662741699100921968357587653778677921739468454203299974998823116919443405429663173519046655270726875444578816192414494798081587156752763484224595805314513890803944235946767222527345939576557904487805786651506692526479705015717559572194798793723439032619650448639034561573600698846519664121008645737393133557108668804621343861592930713036646960663969713944951113425713938365433261545187591898604263713813498939428866735789297155384178965038850738371026402909129531418082873834858780199297803481356485127065238701687836376808490985545888971168464407920930173845218386549660611955314260382386890148817873095703145403450318102076244336041002892891080669969643429697374390707212231090576018992410333094417543862866167944073427682887847143631845788595120315110056495670112746232573473177360910954527488375599731916511854717045735982708103016522138065780291932706544756635775448620445277768894734292196385410456417309191379290492324314721122138600327779514512033828499475848730689571045253077691479479878737951094888627210578048868822004703210675269290448962374424097308920746505526688962333920616041452969648111261051304484928281172562857332779122476754219394886788124905649558824913327607082690268814713558404136143299429225028223436828724539034899929939279378920802085543926044442090736622053519195457711660343271417219257848927877450375812643284898740538460442423078243452801081337255997150017490305766070805914502829989696762256890469248280219016894555480990444486879989297179610179606132439553212781627104814688031444236661563772660725040185189812183652782353808146413782045825674857048062474953332884055432127354711142425998071367702452571505154204631932203714809313313796874116798151026886861622337991755777663194439288319097055848784192835652188557126612181568607770776956235740775123971730411395681240011607993674770230649161809667443390997082982854597778980238828396539305551374137968138230466880882849860725170153309701567205026988836434013182298370575416086795023609411791752008215887657849842845666174540375850366496441187524460630307597764435841446241963170949486601460109013010217023282182043198093527995849964084205272084548223429919102400836627838705365373351270544668822826994256767041032638571135245164028401020247355138891056403384717288088755454005984687124835822765697365997533320829359699027214989022255242612259725254346825855097135797671527870002214091006733652833856522387081174057677591477116820120084917557945173982089384414261362375895884543485186812953607531303545306733248010436742498251492629249692510227408477657296385546760398402330868983958743592925432483602178120892008920191308988058704432642986417782640778203963068380167906456448838783731440473285692484945752064566557798308641580046784042363294899938651169384787521282803144695891437490668283905547731398090299969816314574045884422595622754221240020870067703986320690052646943119485734730892669363348746923150291732929254620895769158402809669769853761783360342723111395084602865347307872037490464902674747456698954307935764522226272368310864447327348307032586595208429276459619213672405181768523202287735309819623610451941641530636223404459833795593836714197629134385616745312119687920527675850885254826989325485827939754593159744853929091604850555119406413512476819333825939743960031295101113982958648996372825712632107835309740455532520775361855010185672686164482461833802603506268594918150956912051274083839116522861033732443987767763369477821343194499666275275678349985333168128122327264596095332567272859746111139613874910484791070573684043989345273308702162466101386979013996363040832860618507649209250751449272478038316950341505349022380770863434682784332576317428412524832672608039113839584764412015980077339941949400258272261379119038351402940634837868739049000527125915240064536362642372839112692986162841170416361090767260278272288495924696337353074642960284532365430143334214718559101671195178681544438479794184445707151945973119025644451115279870369362641234193174808564275770020535202567378240930037645322278447161992275685809738781843257265973389154632978536648546097780229074608591954536829131884099210933093208701714060338998924987158062453615746152090182454407820816866577005795897653732974926365647505632999068699881523662084849486071156603991074719013274643378877445200895895231831925064996083046600056448767678373218221020369846236264634124583683239637265315260020451710777387462382105074518522341270024428241119155798187921486365082818944175396576110852321958062012212124868403299880977467612505460009066594491095677215294226915439644627238053485682627011216648129602474917829610460690140094774635425226442774473756348775274091016185973043041349100261938556897202970223287296141481416791245838051612114229984626274912714705856833577017496306849792770558888929499129756768441593170499509631042893456861866685116235481688830554367106435152662123637772456764709769961230474925466180462287410666506292915570717294317717850665559405832926365958571157509514216299642196718451265433446225937160153229706042252538346581614215216213715491303576759100927531818684106735154902352208705389058313534173815908049782982887158983379569756056904387048506142118045120523343896437252031415653750284666397071161204717539255605978037384070204230599174290792110132055649228047128407303272392608387688449456210313031870548952424648215404527481510616898948975303055286289095641286221774868025588623794063172242435520493486556822681019279034259836538121039420061251876240930363263122764818359115261013309025709143133238193722585705521984288421379401821959142738689670785817265213590960904889159137028672048832227130670023654273170725427548852883413504756587510486200135004792509048236273127573392044841546507730799319076866090493128182689409473859685010201549927265301517435204711306690402724950989236986704011525059584561249674847087281138739499813096169944648834771366474669865687915683438579783109796034707974197398667461972204220809211403957287498172859795470343748273910386215841564371604485680053257286027120691216199750026802056711289789099497563493214770410732862027694882444182078593105552568508099938046818714288314751654636685820750685639214698395396188092560130400477430045702507047666112720064622939963110509167752996865619695204687054458466855035732824760157508811941550402806637271304440644385724850624369094138756262124021452859850437090911444975092100926708693465805280528288509590812588413533285732245346105845206620906144987214923513603513486858947910896269390020587361026474946566376419980741215768761392462489351524122391782556209499818224003627029631382457707025216603411713374420245084489800446215170303447875935410626486756379139456585627668994860422150625878492484770986380416350324731266937174936723724228727709036974199866344890643562909097213425253134166897474945072373562870149079681006610823113792909003323561914974594988509345372924145802458724622526631402917158712769730331075675887200149708229170059485723695399179119037474030585486391007953112525482393100705986301205316558412029657428055060594763160619884054846761684409310751426809621839951811257375802147264294737381387995970037678131833632760577032748249037181930592774113034816054406738560893513533564940126056586857833375604004548472448800154466111677391653782802289600028685436769826284625941068788016076287990457975355909769867098519580397691417562581106795931594318250570141281122227709806689486492418025968570936266061534932620012072729662460798850547770341885580321419733069352289524193802385704972237216040510679004730889696815759669940952989830604998404829003710964432835502758407351586509953253267334871800344222510222508961127149177567952583757920810690350824848218540359116655203607861363038512785869146670729729316916634355034953987186256317278290041155230646804542356608877207439529148698938055708091032471163989251821143514175870219992867445706453811958656367628708027421855935664399222249890615128592234774052723997040771260029623436652516970784569241534652191378123106537568996810038055889181556689010825472493452597668890015936076961942252325756659710139007152084131216020747130135153036426336059586448728456629361098818849861912931287301275285044737096406598321670372050759029074096788194897255911627225669418317348182353409360549809081657885601610818033292705772331920055683130766796114062874363877780556912059620485138020907167839958358062572337755588341934006099911550532550331272122944188215341071700648550068553276639798583013993046246627346046420864377879983087389002878272169021491797174589638677551192853614019259427705585414321341679889834870979319995177608695490953550620000016212207055035880564236770763628149880263516260193180980977652289912545986276028349983694328690939499687087121860303258836073948247922609507648028902064657013950946642575852508977599800963651276271359593343442201040948064268570576658941355942999819914863258504154457416228061369182862452578659325215770466526985283825282826697885209537720477557683869225289564234242948624737913639798648100039676717245204586897174704232789137211071870185156803937333968055460977541795757630387824257758583687775574685296332679948613066102969615063956304817043521604514875322583933540470670835879965710215155509328083087242989035266346693285037694986692316546099903679409107450831911094156324866226601206435376291029378358210918705451876856597853551617817227339105225910074608458700039032367876909850090971879539230114882268409144847566505503778262104083227690463224125235564116205445011808845874158610585058311467163436911298431002498468588465210768344715691234736921973877652406494575896901965097741134805025415569346411571418674145130904072362603483300394018289160672869044315864650825068459929501499925206390667537200160130867746731436500867292505826260533415626848997520990970226185424530525229320519199258932008176777419252318862922747208167745331704288088673968813199297682110071796605976717435042925236448039219348453179652536952216387130806575105594807820201785331753569488615373595015881881522592564709147062699447221262825240242913668247263437565103070326604012719792046530216957177221288235862994761551563352880518406977585946017388703182841554142078344173604694039373898796648287166879079390348093824393979467715919830112488236437770039324354991744389180511868246378808380417546865741673160909902428258465979487151016082732318449560095219415118414076571417132746856933015730761561925261510520517315379952336095726135570973039054443078604733501434994448825478927330970675758919149867467676197805921742774841283704715462703034384468875442224502327636312602721959347473806065439714646322996204137967428361709556028242292082762311592048914406590239012491316303225907753735708325828184178170352137124977241548767879982772848784612346170851527986664906976586004345502501415827033251023215146673310363179143827548412042091631353262895896762932863689905048446244121201780980550071223783818791348410379204633602847643316871951666933640854544196237790892836906473646091934863668849747247853278469264324190322037641242778403928013268458878091573400948003626382819599211807312649991073848804022753240563545323435214514844055221676526189800480512431588130107716596501886946004341448061743194739174281154208729514510081621689329929956551566616502712861262256232934393028185279624632529644718074835589477489967533215742980958433580777113858724114371886083957724654010597695949374085782663327893433653959401583248790135050815386233838836741618156538917339063851625070228828438105122810089704213584103505874998569344536570266192446954739430248015949036402114624712694587916113262276186209384740877151196125831913392045935372646560606423754650011931485160600350424450402876926793497450010067618257330068435392402236039482509912467382966761563564296955562194776827945822667251105012534591364586353018407429646200244824876581331314137118834010860368582787083051885295157055945177788869319497848976396925766835214657688379846574549423546617433226590392020679620432708222510244869270909474358881580287402239402985716269939558237229588942460044351325465048556144849156806440752226220587795316633827400743177857904174453979492469291645094026396754409925736382904058215393770432248143695065375503023322468533232363192693574127461990356631647968958039742881499116427432308804179402046499789281767975638020948585991197225042060110547440432493179815602911022828194006634912538197566383368661365800055967226608545591608512108558332924446567299978466982041424839394813401541501286545936042144239087462466994540477599605954754499061215425979974124104698827917024266700770164176842151956170215337507971003902999990598323827699885005157222947865480296001560159993371724615604972459293270657213806094997176793667786726269880175463187808599167416529061273681703146741722449409348718866189624281898797802649020358862803877682434387084778508062962898700957081619920059402992474628107687059496289516979097688599040262451750932311966795828810693243674412061580466912274378342487021060878858720786433624526201208771916397320697614710753584727998649656513799948333511028881176324930386666836722171506446276552968847888834145877128139453331458239712579417739922975322840995918763380447172040678535207601395257775133649822836920183989145934147743880670706949373802671094852955749221980710211735572972440444462285986173015526410053321304677908881917486929914375246921220784324037197716013649405901443263727597040188290576720583542988908640493246983127581474975974746928886994872826664295021718189607373874844540009085597372991851292032037520266315979136990937722180641627524471290940715150186492160375127724919233036076257853492235461627950613457384743297508437349793602402337659120733127847245670583124531384900338847873573487959422982385295985968761317558951898593544810582109379820565531295821329432513922305741616052851411570517380855876215422288828718192353259805445773560630439191469676011462709996575503628172871726664895785876847254699075795527716715543341553865263743620283661910394310121591136227154882278249622466998887682205199456370515051538760321242892927958026840234784124324309139283211812874744413108425459698841891458636884219575447403315188210621425086099620875974478231643807031522943230904510663230791266882762530917448289457764444137155524477640442788532005724215032929250895694083695221279044211440743059870689824643665163883328915040263355684843879622817140492835200374375809171344161714436593017240156523451513443355293689660225272825832799832892638906565569134347241204382905047648694426056853550663698498840408471507385881359407673380812023553771814584049700075120961508362457542657752041457524010021221784480142147995982665312451778874123162831297280046544102236096565085443891634409033594871054535068796867066029587283463142700344304114431819636754424880677923065409535235310698616530672330832396207855681160857028488523491269014961810120485225635932931870070806638686186322598076026271899379517700474853235165729471518467806397388775306656093052564716828891919832793194935681813500517680946815200157328813035852568012865288431936461391551075042233107575959391088771617302922712897840637397515435576952650471207988150260221764765558526593970419371304547843183456483800636688450479129283001495888692774685825360251977752243661884639043075162625523235157111832742574530556118154922199874812030112794099125227915477892865005188635524534938251148100495683822273915789373737193203376582096569212910340769411363375889889938512929178854435832998108490187097995851972720922092539239857695743771611792448880991041481273521353228000045061859907841114663512644853477660619198012171954154614824935618319725509959944528384772001349693332827298857041385605066760698325877049962621765397797449643657236259895818562806969322956117517060762686369684022906788386166152852936447875114984865438242398343631916821385010714477916540698179044489463387167539390743721734904747324879044301268264091432932057332531514838866952973337041234023285990941154227645481929292583558981976161567513225315586698977136321683771950407087399948197773447062967927006021342969928618705042717650413036650451688380295613655408136475641867272806823209804026658634488821081558980708225848578635370278511749525306591994600034927292260683807212052554645269019901978990286392597436621161513071132707960013693294837443575175443999318191867925395707743928582651693732346704036525290119981335409803480546774812491477234634059676135575243795441628113253755284441883007958804984112455598829226254861186580004999934493050807686583362264904307821713067092768523570547914678202871047278908585133343351126746034924253063655449762010827959207670798557626611592242246473999914116486699040591213391706260727979632112739390353817010281780459617359292754478704026355139895662258525207499514604435345485445271195378761904213201675554251112153594476925586450767782364409707351828529672430712524900593512634447179894888565562848768905635555860327329817981268566972433374812169325877180899631325520167860681792903990449844993484820387917742759527208634454742255381098376713774126994233022534370806386927935411085695956397263784689560688733288860859268387592577960606469932607774368734461667492006999430700339863654627157594389686680457182395187669691861606204940663914253680388087523353975056207080318944465596699102977679570071522100491327963435029396425036832243959877798564574789722218128678804001369772683568316921409666776007783222961719619953665770458212449166116910175432904898481436962657203037204992781529528726885975958660008150268509260730893486581221761499344585918956820695499375244599295644091673030699007984721745353920519143965380849399244891687990791804256337784146718601414518085586952727775987936625099703686381275909747883042916251613571183356736528157754968485618180051511627304979121978673790017193000672334041316772377495489459390021165264425116986788830648774091036773307092335564380423696320994271616170687455435544481283012307908570645362944629277112081882446334843860282375719176437782185699315285178177509457347595260134109518647441780739323121698994823670887915607779436569744595312739203570618310636187504227371751019415505312411116036308940476030063132080042247094667979411086991802966633091174789199384786263531984601096287229995378473917090481641603928788226740758627338969074078093523424749031838415257878176914728978244636130787564240207474481492744970339485642080795575497993264961899901504318380089857290762861782635549484967187091170010109982950772002013169696991407473390484273142856729282687045240114037334628264721494451116478073595703916708404907387207524137559065572222380899120414574214298956917144776510198352433288995079831163170828168323039633022626106882627196021285402095151251476048108337757848827186041200172754157343554845733172376538012432115883906860020149544240654758494404663754919701966950537301245328909184404400712338818739754438137010920020654870537661948034904779900923521115488019310712395444895864907150334339020932875293555031179786658291108732032773341350998634493532951112744215590975751419198026066848210361136871992180310229249332966734496761628557429083944671587714787871896205153581041928412244900925772509214038679633862803528142867756378747916053485302692214364677362479147122882113483172220414205580980877932271358218609299725072816471604767575389868415009665571221380343171437633390061528530201221758890151253692539882611418657084172101995516355722564764488840700800312727701133194397393209434386546524285578310484109504650680711080335694608098737632334141274089752733886782015114007802576637279181867596012637951449320687541508997760769110564233378201075845646867362458249608657508682405063806019288285672471648328063198342007950392557532392446364092554840546556442729559484223623181328891622779002433057600141029348667478211060768759833594367706784930773598596381168565464346845592718449666224512455933811909294630885322720475303194535427912518597359319870834139450502769145178722672501589608665300576995221801493125383401212274519240433418929122840772228866832059653477307669244506148853255218001265341392741962465140061116688666161391309658903816988249899692380112030292033009680204553140964631249476209641722285251430225934437831309386921499355438872025513226991884363963228701084868037104589642343178183323139530025318504253257313506151034937601007454567447147143540040436128916871632339991110436123314901688163017538125720196366172825363218720261921598274610323015523700486175364019520448313225042576761420984544594436758864417751756058969192023254211584337718286039865971219465139688733111250621118535886476747490294114485263567486109203325612623526689758376151129341226690955731532208899555574801048964876831848642844138185290764825542757192869683093167560201848481143988286309275608354548764881800699139937804344587675585162729364457459644883073170835674237851707274550193164662395014695137576287806207780397913614337780880200530101103694311625402244602512295707911587383883908549084524256512740434531591808623574796482041659321503412741501333456227859680155845024706614209420484897806215670985416235793439544404505909213630076858472439694746238185631999266723009090490387985994532734252923124353548859841831161466686830043672567237750126121812322437458829854057205049165789214743229621699622059150002493845347585772967935127216880542881876598583633036132247020395795566079409199949960572564279694707401923328710134453162369943180128309186146275438346560329679192791148695833000265966513889723159974012392276487163849702851121686244183924721817260894829857464888180199047713793281443237211577825969137904358408601070673938981886957216678604448510912425858856329123328026457506640415247961039649679260402718425811755573978148078687344793403270282165237118575242047530134612539315669495536441531446802803572027527561103533034224102418747459380105762352857900698765641854722984555761923774071065605062080784411864826852441575059278366177272633145593905348276011058930632080666734964095826428069477370580498832835519383592411600455926471678465680155383712386702039050637697291691639492475872713385792780171357451619689044620518813311966040192033596049064718626013171016561943825582979523522505633533499935892730569754198097755807544385429248625843954734820599340302845174285538198497804747258248140359406791006741406855966661172856574805039157124441887755500579009812968550790374070172246930304482986718684917279046813217636907658323122169697675782985348893283531124520914253371633279123434211358949475381513881419130905149757752916798049606768153682234323284924517660622053995057565821859703336889436626387293480984923725218292462790766400616150642813431966651966610653257630900646856643763988642403177287182290511858720523533042437482064225554546076833969578853263629096052167354025215339250240857441036306139131051934505535144470081069135374713030498216821244758248164784099542680721981775335923063569035985247724202725030728231358872158846672927343951615039868583836961954610551794973545181510378468620591565824469624486972212570617309468811914778096872611129793536458427360188658385428789696604700237448739551710304108529599346834245396593298772019906353571733121644876062460652457268741528853716862983251688818481650582083620856295615770123623316093119997354741403424865810935774174425679995543853635795521434081274104375686272937664880706637671163934362942359746591273962477101317853693840193748752384161846113002176988857578807160061943644893686947835153416996633476484660852483933987592000841690631001754703210998661834082643677224958932633058677956879821130496187483202634390500635342004588529566700872907720305415784023241666536375820705887773013511856026397147700822384202420546100717090607236955310949944896142305451847045220216783444799742673846625389366715258072098950635732293100767262270890812186475657370113186886833836577077866344838698631929536561423702385152142625708846864904233492391475113655446901730777844857656799692520508823712629630958770029169352711998579096835222812472874926840881948799310171030199334891200665593559205604516627768105041608293742054010608723594859640601997447187451614075733409953078161340270294712177930218772747244271935845936556758850274811936920268828949614898801258316645078251866448709777438548464833973373152782281339157427644894271663621729972436468623518393883765480493213747288199802617905301107124064141898805384424738934703784809260563675877071019225236664390986465130539672204832629750216049631456803250371139575410151574898996765440469182350359310471897358118316624142165236728743873397382633884560972219221981164648496401577260408262111457266268752028476746900710252908972664955222474593645610532676509909367361075334832136096456384340153889662720592131128079620528513279593938327695769484316587685956097647304796254857519112528769257601847196897814145106583857739169764755981390571259579049693508664040015968839330845376955840453668348992301039437550915491368877810984976413963092387341921709695658749634357821975973368442013857882793536484728735986084554974076561665720058842764468530972330646669825402762450570450345123240153128295905585467309274729794614290620219794444411952229830932060249464811697208045055042092573549838689600820305440554798742271246461875992703147050418295007124005730968823697977697288035688710270906488674073154529863404246629298572261815000036672243242336658520452047059807437088119064051008269805983260985760632159713147781244717043437077866371896578711273563772206089040177806724784276832939287062282295305541210395249636145938043727663896533818724831778608098895054927256461239521862650367597243887082851634257827336656579219802724571706610136888809251625429558928432481209145358460066116633549729393291421771941992420188083844069422935695937329570765505675038382853981155301709606583220018818176407725683773950701661573882366754806256768576535607902225006942322527277640358286672527258506205958722125112181575746936247056554456575935776314717822430826321804764621612132050686460821076457962677666264549024951901059364011701842844319797782465912279988281436705696797941439465210638341725172434486495710796325461387816352946444540864568048303983403672418379003386455326227937392659640170967200000941688194827609032014005107432306562783870398379308280495696428107734898589639147387425319633549098221370878979018760608810810344190788251001250766470481165681574131128341927171317159980034096284880797522354449247601279751248102764117419141727645432255750670611999580598061099786306068092739867167473241938936580418854534875197760752653924817322691566310106322629753885276877252133615992088788375544847515288855665604728895319884383947953799201868588740525967083123043384020471153721906859958428673219301754574667711028759821952270148626477619596031226496801680457220582467017926639288640479182947368937792295571404417880644350774467968857781214817305916922518904242877325325224059922742422432561649278342026054970602307840135934068566325949447349185506066425952534008248211385291048193317265041508241294481472844214050266127158968348476672225480318856429610134831945174466025189406382796913330826250814996568386901156132785593688187469782698720255568548807467519867696788544806399913308902311450162943678471540701953579013772762519370173767556232771393181535698951026599380386577632308303379740287907630543017306747340564523005505422015143184708116647768707074431743305842460421120430432318959275398811020693388973565267796369129762579042052195497233581075406718661171750673082322970508763634319326261827577944046717806921044157145477843845039757169300555263847770875214735693959853271968420885696104784507145899883875798797587061912251803450534681904806870890935818610856619572096250957558502096896868103900029393601249294166232955825849959754717700526842913758023919252068072212288786906392985479538961894083663795133731241935638272604931041476309219580818559295448058933922004663068881667377196630301268431542168322510734764517785550861762248655698236600581791112866354917165777286556330389234171132569494064507827115656930854784744518491139861477106968328490897214985293184881510366217938282111140285100127191501642197610930007234673459390390577328088300994091929514648826690483903181230350205999618927796984031699257981977603211619047453460370837723817536622338484538747845818492099212668074895305185987303140286501210247239727001067919153269685666376273298910446070524648967251381391104946757656930217781552148020380054412200132428163190227034670357440091743110516866503086611514073513663740341350817514658641405075402300300024540703357501912695148663370109712263339269272781575016234375635174491979269762688667924579577223525650961752012166922670146910499409033314613458418578108555003717746975113628384039426637309421469158671807396110154206491067959655679400633719549908861547619190780121198132027865603683553261468067165199737725742555793633766875593916585426903254458137276673805427700343362245147058786405650317191360117616699052583436701717360554230796705133744923991491652316759605763659803735552682935632599647663093218059012665138767419664437834894535390327312501492280066070563111843138424369207028848426997615602640002621182569290136041654454887263476837670248238384461744187118879638451812735798660830761124017516822140368229120394429273483865317900503686067236739255839408490427552758310366334904204597841648275521245076500596486953463956040218338844827463031093567106901814804152810036974345742116065496535085720103002483205294941042165944310542810504367309630842387000486725707093913100419549134161160348887251172202018824965668273769212473430493749367061278457017419567331726009793334369830341734147506311146850282716867119347539933102187047998046701798715806996181732052827579350326262666065644431259015402514037356979359059211711137005041757345748021197878469341907721593308917092144630330661647419472949118193392869355513698519784347459964076120929673008323578482550622004683765207765918467927399178080466699243399128013042062883804817773365558295898328781578935385588170650702864137440848335561898213905318189912447956067911645635298261817110425637798614061285134650829559351780883005149167202530491031169248118021694039081577689912646150075354601748621919327164476431595196690535203992363527582539746696320103825667955407087194464594179380896137859301400383394684973719704433240986808567143279253199266414985670509729732159353975167985433467818126520030208325636298338975328887909503059550997041671540571959694111607798699693464348937184226450385848318231359992706215648239509931446623323746547300702680077790740340305988151906051146730900020151565482726150907738565353836874025149737601928091543312294832031090340219278149220953786391113688479923372302998339913778655637714001439742799523922229514411668908907410384314149256014351002139275994359354322046506507012248963513048787145015062444652182763490535962314774598551701607850791335471532160574869521028547202691262872222197467542227972393972187119565503281309571687177328742958782271808218070844838432573077509686999967615728835796257949466787031662562570927518977731379924180035316652825583748372897613102375194871994724524075710862065824739462745158141217975750691356209182900094547605225700507311613864188467767657607257559856555533112197654205747666003122651754484296652169848313265334040710828018650026376179323330983295134938867428508984240783034696845411045128447324658505964735270458291063921759337684060817929252560828737860607921537266341149959538923396402089073153875500077900247300240037187050581805176160254996745621193862179531241298915685636050699023249487928916114522348730045252887012844867432245606224313829478628241923631617339720073963701186634174124952188208176608724516088046127420137357961472234625244683611481132560042255155519543666670141278499324105653525212511954871024064749407578316882111816881074002651986738809751227800708149465818848452018682356928169535458798472405316798780114340270857111799134807434618858841167152778797540697491430052514282259860153991872423918655353050105335703027797504447308915688558601733287310729127319763996861529140621773035461795900626283287722860407036575149577435624085158912931263480420739129841693997564288031785749614681395126683960222620426502935144591611142387036902912131078770864647070601024452611829302032653320920036522784814709972435806950600260625677998102985875268611646845985532314379768764242784042031505537952142512098856343720383282200926042129069840805221145225530505675450849377859759680599332460728774307927218963220464377828427264130316720597575446295770901156381374888771988096639814527644554091364306121896148692132097148430988264763982214247676447325175111981756858940124222434323335594447618151799572225025825142566128762813721313321647553270698128271436403194838806100652688873919271411223436140877123947091135323069115644878555417567613702928692073648575593825314483683457359983720539136819823606482187089565395830589611884462291694455941261171163771397247627105232333370993482202139831039230048201331226181656859904188428486231107149174132405708024198999562756814385006677637362777142357348927046767000580146688534919521868748313912478525310737075457107832560802210846771000018603034606513914330062831355073349220660094670347828559798618200995642658996977750530514673099465219299825702999618171575662458498009129254891095735506230765854763526235765625410812026386888139198136715272275193111485879566539738015535755011995373937954999689278670894225136632045308287134381325348167693853117575388956184884477410286591624480332228125807115621788355936177788382379242529400058774691618057413538734637344735965348903290078019860468688242119992647326443177882974120550815779314692452148572287512976888387447036573518749611926766989916826013462733362240700941595131414533463382791790216806159149383562189853826957904383690992079436418610178515781769163732531066116877195542154242962601755994801293711368154806981689128252058808044946731293129014110620149060694133300145254402434908147235896604250975327305221638055720564586922827534524198343453038031736079430373576739945021244591648006893383651374575676786286789752088871195770434826794496671595152887710830541091353346729974180843961151914978556768307691620463271045031204416813448174244041110275049367718831114305636189181258635807505333881649137596419666460390561072433748492417071774272513328223570898903789754312982626639776676448996711595823474597911083032370692906213205523519873490417767370845221187966791787196400381764397504477056708343994230852892514011642879196004951232563715307430600454174312550134415226798144466268556520859485088478430239121365858546072921110606930152657903208399503664412972729364811070568224067552198968512559053404759788573554597414025588007284647412180980790130783245224944042994554005635519352399433747179735397546692955082634501286586435625476988642907205822409056760196940399733810701582497518521825516205834060015547316787701445193375182855845213107657002102707183595359380413197022392456358667829423151654120387316344479704559545810694985575165043526623145157023197931796583356315792184878566425006908184108034337343056921097529120841287024957813355557792432422404537684498109780130253029255324820167431455683058520637723201997460984911429399196587297465821781910174656425556199574221258444148608530768371924949753227052138529223851015228364889885818119768020536280050398084911335640802161143166977993143140052025330215545809247883632996050430268521190290290303622743916768961362418943868335095798802449898768898833549756182023157778093619433958209956343241870484624543231366683769342833656543646761832156855802809609132308148347258154139667781259576863173125369082955781030514289487955743401240537636947372705254787383207370726642533011489750381770574477334963184638737612963836056537874675193307103085406304394623326883267275201438624525883783661861534728291963268302327458359365331238614038022271906304677550042659979101546726873275986707612327831883869424061614300928765066191508524901216583582733957504818234989716821751159491266007662333993969014229559987632228872748151054585668699945660342751948524366640682101317740337061705529872266017931415921986749147095849705886277377103042117881945806534442421090073710319184460686518110532937374088708497260278687875761456874402644295681072535234207115985106898457107421008177970315680956259979285544090544470714930468221159661718379321383326714065476590505502167941498372129411392534945975208345080681792594251478065601703947432709158533825352296376899593614313268841724481761012298758793657420449402675495603335263125023222216123651002248702487920349761682498838998857140419181080506656831433602539703485948028710184087973671287536835251597047427115570880057448008944718162213730099074303956006306179875034551314008268516757405655167043236597992165486609551106868884803780097865884118298458150527193721707405440470794640001442234951797899921004425893150845062821604013987608755711204672291664720715517313015721911574721869179529412728689499544405623732069283831858448108308734472906327215029840141491261136445533937544002282759422142122061207564693004782200779028962510498779256493076779184180392809626377722722399969911512925613746169546612938796219571329554966059089620543699725755392812103469703402926753197146980508666741956113203804531810125547972450462384253589739566018218911559097399676105366590966631035348197709960570111270893824844552730447226311887281281315423904623385852787075650633643941831972857029272853333226893267763937903256338222620653532930463099190895830460190285168043846076469252950137391364416261453747738586218571422188876980660647712806401922227220637111804452707103063491465053224273367234042631777922873403073410754145433484507523309796370669897658428226097296240057327494485774344210143163148978485895441214262311555528565913572636121120165150303347678725204280158936175301230795411555488715849780268700486640142590425973215812332404676232326958699787330636089778571918769762973387654203760515342154254590956702299169729638086639252684226356296105903269895088095914831467029878282996111623776149868056822323644124719403184521004166211815794963480234381687160402288866271679632157478470594105893298096609311583612583985466691856599684441301927402738578432277672986189478999697354949579685013831577381403767085364551838089395668421889080853320103022172989084252160676166077493664522755946791138695109992497122348797524681402986872610165639813284540111139127719747305604324448197375264400061118496559794625997076077821168463635629987539514021298100252380772679260465991488652789734024673459047632281329480461562509194303340340959958686629995314603697697070409711116672071975654168512241825142714063033078479675035027283868745443982018872986090265031940451552283009616220665246283328370751381236391763862614153129538610653265327269266096296041354990119591364033270288238340412081845430943001672253581125295732425699337799135070158256179213294127583825878852654482588784122621099758431189567552371629189311289388533703679937686870928029508256539730939357176079449124785153589792884425387942439092544084247774896273173409678667781932261996056402518242727265604754105755281075451214731340531632052362570846334009046120514949036088299684067869910331463710648171849129874636325135427959140519060250213861581299857505022137849144316494693916515364030457108329619675175424225025993174021595269033093979983779338719803232633078241409453509235441164619596136154624005392108790666844150185701077907582405617806451031345683049849655468225556704028879596439403484757896587075577383151505306077064502557946380319291009299001952078196814033698579795204635726625633241860325227718138847890812647686090523145559356984674530138083382777502718754406931484058658842825045653873149359365241715182965691482599091901851383499728838379964973797452350074467886072932450147106993645263529514784236779936273731605918627774487866493642798251986808334504474901633590874766865568998592363794983095132071667232009794006626017752610643826896855658964435604758427222964855656405078403707111963516848940785109596783178562033784924129350485374285241563697588861967596592556738711752565652379086146853738707507181379424478198609209530572983242189097183373391477966375223370542710314154735043993960125347814033860698685262778362878020005116985788910967274079984883306144807206244342372555223537748364591558353244249185659282808399855233194353278503151163181049185508055913853931384781852157089841534535462844286692057125058575987393544590803796246513158577876164875538674773216326989426826850482058893005477982037590036551178773407922006753340562700800929758117484954779951451964309006314122173958034034802993846925210090664068486505933918948436819345067285885697814889411583180807711714377843702708411120038830376464589835897219528690402146534701006668261641742811683317476358373361955743769337831877804977681507695332648018006162121220371797714628169165366727420344435362889465576589742321154219553052967643054158214735719860653730804599232006482866937305068037519007892999479385558904891635385823779193086609482763838796166838267641681054907277935491657814301266736756449962909382160981797289334524341611118428454417526282078831775594442057869493079134158512288959948096132212887386729369299510256197774893944511234497166861834068669843753085082772978588228976831702956433795471854352154371701607063541285905958733561998725929160121695514990526911817651634999667847389870191997505864072354290494659875309717614639551597925271761317679679229622265884390160254162954988857997678153635493156235566666697561102144913285969018501560933482060415364082162905454771708183202249736301921342719807289021082797705419208758116203879405391457001827978181018880535085855768073597872580109747371960497643197477526447990894409230009543587760909698791787533015346145802451050216460138322764563148052200394933128682040660116659677531564210332987424839694131427655213982530922273858662364278260668845098561529406998984426767245118573025145159352555099976222255817602586642322089632102683735990023026606379898973522078600708030732535768583788789402714404201058612012456681205799235533237610608065936585716348852750279738882943082640907522798983193588305030253787711265540007747648770524015633458389880125164771786555671550204703548872559498759813878322994834856979171398385813339881230045231670315778178903982800165369464614768463092434111043373956725254237363120540939955218154704296761237909691778403187413502696899192268583262324065011409086655987937866479425189818153664638125304688378077416295438587359155186071539715883071931026806761086819740016743985038610230131482906837374030442199790155052657837183034269145779158920791243099745019648801550036379973559746060605146080517886171429710837565627175879912418778858506075139257551259905093371289059410407288532282530427666201916757768566531863321171518458243761780265015041728144742452906298004093758952903647579563553105386099024650395553221209558791614775369272803068681540398612892843801844552236424078766097761626712378419788747065414514753954079841901921463062986758540840484114066278244773444534785686800397941741630078534084216485687993138695439497602303737839554457151523744235702776057417929847938527926342624647194203068037679975637521381243788208772505653973448879477775175944904803178200485830423477624787559860026989838985270240698314635041916740149587632073747306238280009812570687238369109094000135443446869598788175741548363588028385709641775567366820589186542619422826612811538368757075968901258726169364008901725785051005437992119882554476961250636627643468991602151900687394434434741294817059000273077483543712792720017019310529937725008225980306535463269543731110625885859069846077290126081278860994715213205358938881849700759365112880947055138311476604552789445055360752466608910881600241798636618181712972700602514096432621335905437203573121088562448947662768207117835885681514046459002556643446694274165889458268330550949930624391030441675935403326337579015063841968188268710726894622089208159873445829917377168241821511796237133502337637989361807772052289231509198655195763247169503382282243677417444426789674376852163850529728470627829572857230113639198428786880293439740667621426073502702691193193712149754585570394151043492860595450610047649184688434765365506101857660168790118403159475697842877371880360587327234797155748867571056478137860402037530418968922726917019985875883465617082529430910186055120351092744726460550668574620572965952177313175883184041705583866066773387914360456498087387824344375364831394617596075287252167600120176304458861401918352918754757653829203250589106759593455323994992935614490751391350384438309507569061615183903188255307920600434255583620299366699773952751955966919144585337999381847875208071436334391587394643602516121953294919570515843498921476031356852641751023497415568799341185527141345094967749527123748942288578243924742741193561040914716803252759930910344962430197321891463507894356330035568172089933643869777463451218393141260087912768132484015176677256067162190540468808050610664228574480043377330279977194870974890792021942619373638996493042055276704382224066017499595076739789130950939758402588228141750780065113202903047895250092929817233189066797294409221224614050728325154458065100961336499335675191390161525367046058804429744530915066447158924357829334116381126955027365604628441237315171391020351103565677365668692331679973043452496759371710634133099721065252135070284882815781274101317128098341495564227121704412026185762260938773174276660316346476665980736762367105694161710413588581701854372933045233936872739016030604267852892292246805452057877374678709771231617103559305797622315381936863801102237028499420396955858971639996408354958034415135569058951419701543514527280039456099334526790511425245838684080260405181620227900874982141905575555816328079207132935221502077527295387322948916938035563009670215287581977677868386460895430455127688755729230975873442378575350951795222097420363918939518512540100555658331353727221349614519668818370201803536493046196348854732239361610742313040161963906781262322722876080808655467111006676790090149785991640719750299133062260686760214625144407135554845392654298542289468341970562064972317201531859741384820530517580541379155179216480935184242977667714862304358788656281329925277803475537086292299769236517797209731853508177409094780345767210902611426973126584892594668187882567518205342178258415813832516948440540992738863868464950198834261183456274460773343744236277058526083124397422965476976647174684627250681650194834797004554511212055928753499280814312520993291781106066613716558458749480880908186761921623036101456575455354150432500707727581237585920732508401657092141023293849372372516956342505865558108824877476781734014966988517674711056588523977840031674614271476211443569837688748005288483142129435313190341213342891126875107308037726328626195674883861288721424954163279018864025270627429714193988064731493211898239809632696304711201227547587377485038236979185339896896018256583640084685225199753012807481601042980143131817958067236441880204495654152310311153719695605079976120390467864691634244601238715234740919168931409124359944620962463084018270424298719837446714308280832601607124131008561280285728231231441516918238822525439153162679170527626850142676018177925313964654307351334273805044417742913421607799659946399162921262171774394122552576093691585967437411308433495644609639550870651843480584159624230858958984904712223777364749428201010264017458790981850667045599025630343086879683562806920300678802536241396892545458128518469877826871344344436784212207323601621093625376994328059529367827040737762366999510677779204033743169764671216923535084899253330760224615066226491740560413087707066154962272838442906766425578689566014604629629337434400868669013631857930445238390742851226532122361824757153946355683752833899582031382139510992319097303671261190550334603475139603534716327071915865023730016953028697492584249188380871642385472594103502810920473275340085850886217675855942263143737558624720881021627590736301133946231291652649987654094265941922425895517403384826559587774154086005437502784647233509541042379729505706608911248676723675889377904414059829994264201936460469970558175083199859872604921462050329689816807710568325625367003093606864407991520253541541150501629424786716848183703467728727989661746109070774299190026660129555431894142932519660884759167519797107756240355574928140521314928675230045498672401051996214929043409007787625048060816918885858434329355242425219258292986893297210329085129587591846485354269781296920986851162302510822205015849602141218208356336142154620490410947356128688061579134137586819839755512058648599515749399171281239580612982413335697718804528445478583829915290919860359661399775176443929631183776483529055308387432219538772904859107609181201979583413232305387212171600282886962839676345390960765924766722558571708143867667620477173169637005173845268413160125991713192641992278571802869017777402955684503138991110059857946618752567691730565145541194617718520974138848103282513507383903336183943786456814174129947237791994287955049950730416867321694095735491966076071174059992373932186200369740827942894045523927844580844680797098911094123383000038324176562851635046321647782944455613787210747397920262633621580174465608723535260541126267519850751908040095428373047564562111871832952181988592916704888592160500260427094424486228122548890459036270051175529534661776155154834086864618361672122043643686583980896869492587792107591940895092908505008025442029963240186743954298718322438479282551055953910325818637523581099154607591706935836220498557406120661591985219056252549465300748448657125807046433691524915960670168108777422440879935045040026782581920176385737561150818335592611449109172544782333409179593859229564202843853740135755481559203593840546169117095286657947973842600498198746992266284732227331432917819845310020175486897880846738547378374314914288200363987309834929816583421005838893345723574965707630277251474833139366539587713585720424238958424797776698143354054613985435634078184534575140955387860238172788087212187975418259977233343184162610254825191947634637043861591899110762358171330449062545410415856714192723309867859619972301502025903142197870969379792051856640178429510386343885790028898728863998656881010064350192241571969946999517758019968976335436981951767717898136993353251938335174173812224917035499041360324738104852065465788349038515353568111607540705269008363706295869999883477736771868787720318682010076572934585262705937006735788036290587342966468104381645353091723155772461471493870347312157763533094871596912838045967127754372499952947942992405824713313610120893921174322180718557368872593984632450999584638104288108160424560874570398692674671937520799771212182525745309399928100021486023929436560334524164394252099664634369617235239580402345487180344513539496253784832077695839235643905450458827052440818636171739817743818028330514356417563163389998243734214889943546789731595606195476267650096456248025435773688615556441487442499307072896360740187845137851523054807055558999706334525043080754002446430239755460387190424420756543765311170183753796318623116159466626224329079886209781506584339187528289771460682652101711616642149807097302913701164538502243653732618060262268259308744106589109352312142946444188989949606833987600468424136371612371786028999646289544339807499080920589782892572195701108130770598783180754516992992636765204927722708288883338795655433125548556485487542351874790859026773594499442320213827995828488958461986279591151833032253959509412523135465047172885612251807559003385368030174654879542683749355740310766341216062425427162661170330607644731635097400542078996492217285495677652166473188815840930790310460833902594840332354978441694235724605191833779489959017483736674145710603453395321747147620504808416091658302045035359753219908272386250316911575766332035806722791480216327185332225511344244421537413344026012979416115193235128974861847886114179092848442772604350710774598332854375916371375574268208235731279989334589624824149291348971276537349815273314907945131095275365146822105456017478772948116207956913334207997219491463917517421562786686525547815648753249232464525446619934399280939541634837562560450205922102928603814613033776310082076895592424297727392064320451507369393989098818965522826039285941832933138134252975745402149197033218666363986984804717977245485974964409092351744371388624805781673311663063151300551218823417132599555861188855628710657181106057783543933019778080774545483871914681635381998570221510281870509598148361618128031304168001989414846504499863588114838157732705761144715453070816936298790795515886806718987413166134884511565725495995840637110362368069806508816459947000340429379108746382716845677105099486069768665252080077424031351031590374861615193954268141495441894252562545853193099445007346947170447516519416268998713714084578966483100645224029518908700649482625299633203613860592641344169448285493054013594006903095006008943424114882285370149836620122148693955782588513647850590115518243637416001893118523078671759642561964252384699309529234904291184213613233900294527520438961631200698711024666783049680510289412561609161427148120651000346407830451458487793641250577451218553664869864936033519076774019175331343811096996354992939899905918637015339658659921242805161139329611844263824860315875297875993352999505469517123684258411883498028693746914614200902583760155634505052552966394611957155885300836354335210549743469216977022635436223664287854097320371472166663641326878574783933633668523727654864975895042594363993058412004029661544099677925404951709604435931823344132990685008768441597115331265492654174986138170296646150589705563625000629154243614378090395575509222953134265603724431351099948180980802406768162526515333166431546737306979682564394123569695148353774712437910599920158454540278011949632301929446819492606985910438976524678134031648745094486947003087937094954079260871111095020576306347065601505312114694795741316720690273916069487175756328096613949712475394504628883879646275330394794349807817808100242534873400729076094740426716001845139696333144735621020147803335481064423613321567383935557499227236860980510558395737660545815017225312738914012569136011343647044864094410113474390898085887332837202552427416077740704348343985131340022030731465054107933765593218058328507448492182671555062704234397821071443313570298368202297229961092993714866252069265775888698420902232348341120281767912360662701454472130275624012236312786134486801526123616686837880808817858352172995562617604986151061657134409219463111123578739637349405840644168802046372934428452435192240846701364138423718404665359810513230673398707348307334540534850902863502424700492685639966425222211969889744028514136361406397185281687049882187647823872122478910380270980254220498522005628048897579863443126668709437361070608768538699313790312484863450184134958567803017096286988210006759827428139037513006262362257288700673194044037962590820494230722337555158789795089110740624422109661911586902935545482636387791211504508556263137586400582854566241152997464675848996065491696149355375344485910279930410474290877941207677528009095918827095439479391031685071661131273747194404276870257079886769497046090302213587857984044607310970375197013029598474096844974816193859017067016738770604993100184619335449453497287995686712709035189703911571315807505588559817909430046404753587103520586798176257830510808122180523511011641799216272616476274740952561110909469748649819270039879895755397184507098627385215375760954198338590347859296382153667404060257286482552092060962447773652105171228177249274316204912862032646774947708022207505352847205208697901055457855082401602525339243582828869355814757040817679946709326127493450988134932251814252802988288815980092937703308723753483168321347085249580534682806912914976114858916343857290815469669271366860109974294177853110643602109531591293124745593310289726356571613046183332177311195396223747358338030481722971938055051806730330477004801456763644699501477729699983879488805990164506423745291995872925504875017962965373905683523796279323634676078266700075380302578358106914611752440808707949155468309811371628798646049497144245831731215601813003034293165347416793486219262387291495881658042520139926912076104080105662424609673285252183863403347965952293805388258464398110044461384782529319111534313084497086058625367598769536441858664280492320048376710911921747239776283027223303362011005366428369503545146706525761946018843530898825558971847980117567189788589493288463621035357490028795537337047080217815101407992292173995326341092596376209111859463450208623244283117820830655389760187925173573364081404975260146805467546935362052960958926698470678714894719168225661734308623780052420717496433753574120633002166423228590931392995570850178468971821410766209463197258417060499527405723248556018307779418588580157207711487832235622261933205568386875248981274339835001296341964715116641407489438914017061312436573541468556754172961912614659987296368573534264660715742805158756674144348350978969244941552491262590775912386715904099402142323628981152243134634564755770538911846638658133567029021337721544499612742704169398194679188722478428388002227353470793236095311332156311539119484373721619573081662258352321397703606473497104382254129881280839981601424004650996607391957727157179606424770286196545691187295253943350066373553036577235517533249446770117294189507710754697395022402644090096670196768612095467981238484819891157513358424205298418847825944351297475805442443876468998149571674138985262170960935620942844356060874729936734141573083339561624471398503458905042939826014599185656718586769540131778077504935401269595261265261096082397111429001446366060848369288484414679797935567079084490628346875939323425126814800343311764065700101478250539832781689205873227737462830750192755156804687097882131166247159400395787792842416848728965984799653599630178112466599477144199233617482103638860946359154812290223966546001827131732412693079593519800769118305365323936260135475504697516146201272278326221184431695376482171613239829209963582977470213220643232307712739178888065421637327831286538947853490916694069234973932177957929415693848084190824663338270465359913279276592317485248767716645155299001336531925823192159232909436029369935516737560365721467680405710723071879607538083758893243602340752125508389606701875211484729449930022427762942310810598974963622410379688224196485202807223045689025066287879878919488777034028629464443869139606288670026351221962747501271457307523698617292632477657589813851491768242536047646285632152279587416210025805051009013656054642230516877606878504220111087381970697270792351740325765202159687225406251098984332480813171875084321487585013595078591875633478194825531989918258339067663194389944218331750970146343329307730070118128480136015568198723236548226826642521264144239566240324592171163011456085611837862487702123690212117525941899637444223017892846159976189808588140473985439754771979274962328640346206339377215301036296366313190386220649921281927283689092000798370053194787600564898951619745750294762181634883050607277331460923888797994850358181609168184296163480921876952858613487132826748602002254564994461060275206384264825489972484487707280855893612744177153735203050850898302484082637287277444920135691850822616844689185560686785492372524349627020542987506749249359827486905277709658736302471221089450856221842281710866142782254120598239809841648710772681811418978964688105416821147681884102851902977615665885116639382557969611401144710226571857937868827919653880980108726374815846850230572076056951200450142144763122839893225037494520136253835970760922984871333181943774418499340669836489979824480188358337965671553652708104453445868575617310583168267897925708610186840174210317271820104831819406203645668441081216031479492021505738748770958700317100815172772199585448803062428517229317380062342196375519084920325026373896226955644259731614171716290154395744675391004377077499215977062915500136786050703673240220061390162460384804382709883897536102989340829269041290426237039009870744448732317766069108756485232095953051640285402500299939697633377620922514143616725842026042467029992359662174023353480414669175642318591650356642401135507150590752984542619590770342288113297571725992834130920785703770755096985893634465676323242608931744574625579928178221960014565367779281751203453312920724294711854137148885267763968278145746336912668149486619553539128215026641928909073560000672331296311958728847954625700174118145027421854887746410895078622346382309516980719944523344431079359076917298484252220661891617482456994544321721948296918702477561006051583591681703830994710579962994882008981444485988371095912340397188646661313826526661981252678631823182234470013674584770186561198802830953513516866761552047039619414989545049070200981846171790038531763003100723192293681105250177324321521491586171042905483052189565405968836531929316168945167860773327347006115089562682103960947675058802619335764460081526643407324132027942833205929941301916929990288963058089027395890677029264597302895551534523868019993051052377300880146904086054278983392838818005426746862861370877516230641690842056185225189730134733020628125695893808394899850234429661219579260164331811908646569090449970440115567936495590838415439555124209646312467672118930003603117653890959120639900130761813781019481532322751548916365255460339430964885470478892758887751193053201949665069107700506929474226188393262166063088131533690630596661891898618006046834712008125808333778996017806578255576291580199330380719010444140695330116161091371525104221063346402792439454608114602996234149150285402087740052050686000046374569254011730990773010385073439423234365748222318949274061380512970612786739051329664925991084533666588218560315998238949029270459286554991325661687787278009663297177498083171772125437690079203263397334268413602975514311795048816084447953484356085404443541975733400861707351354971975103788663708576806050889304876655293692946914026977257243781475952756132467834092170311555337813263634862493352109802848477099162538256590428066861562656061432824195571372758178212649172136157417968589359705740627501726194688496636220752654834940236578243594988634587093241940039566606860405154055603376265280119034738856435892940873733770256702060628681219360693036745082170404033681694949672964266056364500715977826566870468014531342139357422584169571434727980362583083848015463579550867928161036850757578473191982862117554997481272923373950978549316875295255907003550717795388783242795054609955855896636502044041551352077412405922543619871830055843916332447964230731891690631758168475797849809611338385638936739391637061541750330031743883764419759675627505436785403015831815911495653448056098849591498836074623150519130549235181779784570481768140688150433032983029651057892964329347592381740432740577037952024838504309707985367299391269521856831325904953668959555752772176886010692640407270911446826922498071259408517241220986523367434596373088670075966432744665312154719203723082912093552575366495439093243397679435309876474411106564945925314163705400604079264857195356850469536261014505696062861529090997724592847832053663260483225467271976638977973241492549525685711853290759849557658375808243709078626900084297688546760036260061448991968151729738998659115514197050665303117983002151630748750754376109457422977169409033610529273876305537082957093488296827784727450265757459766526677540306822572567404111301088906528894481724936294571227773654838768727559820788743581874781413949972627970061217629502037111869144870869095755193902654691167963320256121080414937439170614065359387373572168243572188106830995513818840751566374896870493117946806745030756330228779231253263382376161669646061153516744520822638388565241658250066111780564277322152274328408660035184627206501608239365424094421972686945261093035049805947624181150460487109270723225890966259540114155528215829896391090572309869445981914525497038551880891907652624333959807225752622648176138928868568819752948894458540871750670015844075612102609624784383681003266790921498039632688679906954373469399402575912219346330117210986695694331338750847232734533428009644696214778357389474363635221680889171074947319728778460537924281182108153657093197928479850084479815797031015628853820537881788760222165384565099834600731649113406765764387808643695393116366877126650255164269991296579523009206489129109143221125868312646811875691975471995031612204543946692041116774329249434306281397757833252833674482835241825192139783825592294716971444790217184977405965055103361851061512033522502214700329972541047669417198332592608758864073133959194366293378273952516575413993643056581454054497173991461582810094614734080741637203119308919490152660564436977932147980827696995118014206909668524109613096645205273870402216485688696567704501101236972865566297578068506876718087598345854749459060999860288496427216743298088561776161253841062852106480795891470343802135990972883276384463666201888871188759286692716469224188422264387483576762162280768926134030829503600042119139906280533922057013224027415982706488531585351932641350716534850335460212326981822188014669953418431135977597925136077084385514431204634336718361886844139029647872865243693065595844494899301442383528465443936117043299193580736219181747127604061752357809336461472718761428683516199917051661143889823786358490906622327834811761555672551117685292048906147909820918807367949962746215285455007780112251771278359320921549068298693024153837179086427865165393553685163395343990968696287563454429484799413479833532615208276274040921391420926963490265372104196310894234561519216136214879428356081745236809291072603978686650149352816320153052523447777105583169586297090574463043034321829427252851798518220622625289138253117425853329276202042940039189911994553805553726095122625851457555183970798223934179426131544937801607961120794053691840315662995743780543968843772135240472583982438309314942688800757385068791146312916890530203039412317501820409802850416749636384486032830408067837197945446219176081536179201572252709066208509121512131531527663756242077507830043710496879213105766304607774715932443981886975594597240719527734428582011479966021314036305213802500916472516394764195293839723048439652755404906573836120718166626106491755205605916852570457527403258320413064944616234758818341940304266935441636581253500842426040701552169027948224504100402244475220725631550408080665873963731120767661482752695962388361075980028369863710450860401785258613674075413576793198112424167448299195036878008138288145028900925993003211865272836321383742581636527407883631602753302647533335635698209797648008604915326359889210798964301065857996340889738798662196691186255418323386910920613624530673897180778702169457728300185258029320892163456153764305685106035673112918361305647178056497394755629149803945270815606520386363353359207415589708484674479903306760026631074172134277420457347390075056477073139939816008937727263644623505937203670764657824156233117435376338566516912768437502096898117786515015862872391884926594804836350673805153286974705502914857837972437459114747200938445815362548600560096467673784497019893884495656192725543646174786794005185169881901524326343048987718489508471676103961972124389842729482766463850431635641256335305885138565021687721049249531759049678394356029897385486630844175981751273485151395458262836034867976932493691562072885621678419149202187501389259843444324477550269199728701207468725389420450165572924070169276263973912874156020864702919978310934267470242573657078012058535962117597247706846743118609059117013363675274165111506419417331224750851606997688693701828933334911954119751273582261796178804768076403085646007462394964522868595976190355531033471135179696192966144340244451238038661384867456029273172361427968849226348228018343217676265813786380867579578627735555086904289011304062278021321693795624948473757907168114388154816824235958543010763915382643289887705226553399774967271284338751994774097800100046502238835502061881253775840737059185777082845967350306634308872761004534705685392186935094533744451734841947883343605107175628549474380810951600049250036203179460749486723544028819733879977539949652265252320726014597209517201399456308146000848892588418098321786945928566593796384587403082216045686948428364733324555704227374342765660196306470799752304196691857812483514459251915178060398986518568659141912214685095258020047263005953744261994704992233854453279202566619096733745385414101956596383847263461885964325125329709985802254700898886828349669611404173585746712001948281195045720681522207245760498630519802407918544357298971815985446364856205089833745014585826167172003641654797974400180208256071694718540349906748494178696363464559500407509326556781459971005810078284418247206024115990711366237136428291052946228653385964672944749273475815144691724709153213452744660301550090974935687300966245716482431393777915186289730648567739376436250369640540573514546260029031903739597436340434872817499752055685381382892098510014812251821367670190772814118340434125211707065660616478132996194298021900326067177054052215005175227145485865869455342435092169417373170609670875660109612212991363563315697760762297559468929743627082292241025507134884139889654861492263825538650564845816584312639227762733795510473492487260527688314948339744975004740319292559545856943919085997686923090731960683280947248886062633852161534486653857938858104882213763747824775316473338648902783506757677769515137624085414251216139440140497093195128102337380519244809871265893188667491231401777097802114817992901927987262474151864865754215125041201183799747629561175816400166218081107925420137369107544023375578470723342936352196739527611645203092675402614124617854543683929111278591524573694410218718844963336861061350927434360195866211668568246099183216047750869667173748340057662247406164237208855184914060439115252853002660419739774206814659632982809211710594962229885331779676388651003784759159072048063066895486560290975394446520664512017004320953036924431170809235276155660502427557504039646041495824856690657885009453522038918036771431374612853733045594201647759111754038998319273883546101464822108576483212137799288590139230362153864874150696590472207641139119812983034378436769504265908680070008165815851278182175347033322503872271265220165680669440932667894770441809069668578487170465959847537678150742615366640927873445234748799563740339392784684685147326532904113430498220409647336534860927204234513011502200405684328884211941575652890430668883188536047333287803319545816494639087271414709898817350761788947266305663708350490132803963833796132148840646802043625484113117842680401009825593393215764121416362567005017205347790740420312054303662893845889264170423652828596736554807489937478245098897709744923394225581761157827918923461105119326895977160853957201321412792841802957827866987916950791065697447754963082298501675502633528720401890110160193719010063472147901838541123117602489960629870634133485485775011654440225689115683317353863933050602917958969775959619401759832092639190449159743606262953428725624103100207242368034603119728805779332804873432168282456247634314784364868508978819013277407941008133302804976182849151072230804996908780844514668851487544711398747927385414974451265819818007156181961564428010708009050550146204223827625527173571641534507004869815256477133104999290303641294335360722718003725207748504458126814758936663690229438560284411073014924556106144672978862661048685034232936821792941395463232487698873388323047513575817001522708858266371379681498910903573926684434003605938386442435724796885412312537898124622622896740803646703306341323698597131974756596158649926480217619472979982216761182085418407692858667115815382941804456710191010362214577000464576701774143563178071333823899992009012816760515892647224154135766245069112355033542435706425090729296429146504452991827219772257277495945562139121537631617866217925182635606994247920141022574567189956528235138818639133386530096804665390761940629871936045601059276064504897261676735698566270347704768125064164881162065417192236178468681107166371036569962354856267114678436176733663233534890135565675833251882368499940503853947294344074852612869468553008786124135685077992433733237802854135690969234366667519882630161709099833381765167492589255608664280075168042108117094564522416451808730742135263278139035988268302126832036289529804338301624047299846165506237386735884234115546987390756438987861082572762644247923723578573227726578291334991534070886618064704250086254860146504796745012608957457739548331585008507090498094821749455064373727740728249985507452337220544743028370791550414736373746826907260897915056096919009033470156199966758039402313986077385997364318732969890539719675760325962467020496530197135833259109043681454065175468731207963415416866752789899417711544472900161538947317164662178134717538299506069770321241373823069723547211888350133871309036367537630106642947007673580086945269014865724494553016563663565977673177518748329568094419549499617126860941366775936306669088077377833289472419715925477339135479330087317748503078494679525054065994801315316252200586004796693548234754309723701511177026655486174307677325663995723462110886199177267540865482458335341327473116089018128418213782835846205270528451329582277925790885477762104726916300762726371324191320311564970614688273304820496998232176670401988253867703995332794073577489653957470294154349749710663478247218732290057674067200395086325071108689722205689843496968191318317737597986183182819856772001221859457453346496208269524832913582345343783736783848371622900770399882756942062706054540656636896388566499561803808980329198976900174254925635198182933362607074785540309796272321821108080878810413414784828917277089182463944629932232544686944094078498127165794539711557090203508705868322304691810375341066524886176113934278417756304006419374539725589334440842923567140086677777217962223822533266457768573254227099269460695154200381013337853552897155140266084210207723845194685447609623283190755827080549486204146496294945155628017727107491217805403932919641971330028107873174093289145609988696809351572251401435964769949946001519303632841790249951542660480353810038599062149128964365383890234806593745191300119627749597782099705301163401247276376906337219906306814298418936755673381257792766576210504891562188420417241258889107750285412692978764540599770148022440720615270964940359464494077385419717465144634340085368324532915539748045810322090001292860554526390235846420374793795984608055086768300005719153995023020129131316240036660040655419092546458673487173591488947048783070389092241789132719664173964291026215357833966184225440282810711654644886239344371406366453804262166348431619317545394818325524917915405497183143667163880301708895806942214150209350447406414665980964253018663158508214610958145040736471552822359361188571978382744184424365401796711920398193774539860882762442781589452089268269739985679605528222090244347286087341892576492755879557622454316784778313941493059907349296961645365027706553831072933731121702158599774810766981955758593680962280985006080213311941961465148013270400310094426722966283028635914528883162519910412664252632629914798115530580099270771943515465153539180627717392818681518178362801876397086704255970894414938168684740730587746154276137537996896864307541260799730412675120363200920116644525536581821935427130859935677394780401316535930186106826972625080505272086190648180946893278770083951052112558472388499471204528522450597229616524315874931142449074345759725956807031507860589609821759033095324453627943379145164315008687608157126331233733162834826261681697248420631024376291336477096641483597877004265920069309887040421101676966199845534192841366420573576452979299203369544199148357882663008750263742683466139031419036966650765651282000577887722402166602618218894642951763427979224243225270077794187398036729577344261664135482296687073553076123185627954847779920418561860400892953633796177419561971153589076848624522516419356009889905923144718583216333467748525582151402480966806032911651674326852016328842641979035023653069406922572400450913789117033685280858994684815648204665671152916339950459568815704447014966264142428913787633423763338338143601430882190032395275350971758938519844785380914081873465765762913847580624015375356109000733764459219287430577807983793844241053469955539274005046863170417601494802168413508270685183326251324512705683880993934883756888143178813600874936141212053357162838923593301686722107158852259306158358846311358170421840389589827630758405404170517416728583163835987411663610546714571218494576573208625241810630683806133360184039753173664147315052878701791549881354104289507955558524262862472944075693086756189844338414322217908987500765187348107449366797592918528298562443631242286475953456137039377200830439474309131589624152765039182693574321804898347448700386708248817920574085857429181380672640701512941497218537282487301227647858672095769055623526347162546549073827348415460735889631813778389330005431122080171274447171274048465735733452299079809300580639368710578413773901270654043120892335368403074235500628446715771877021987846174955919541645733931970840891932119906052087808766648972936851128501341699844569641158494904324292212640502727070949327154462050743379538954214813328460971204314522369615113156779856624675699474536853261154869991923011464950272988686578129360658653908624405699545106163770053334386145088947351152631244416323400615616114440733927821972361515254937025107719631097701607682060676468500909913503038640411852790808581093478221585101054062861568502489397730337559123261778649841498923088230550267125751227897019346603554505012500946789112698613168197859962368128553505583087439583942210190494803336923022942652574370727944155902320783099242803706540807434947651834213632625863572213520113254326130554682755708207629315198086353464873357023190651163760855665684832818621509589928057664568221549646336635912257385069147409444686882106247411947235938292123332635042103822076554740309728687978552952315849917318996523575183060241798542489919748665610215627331014045877746855756951971563859475669845180975713259330430142459229152311313151866974391334933964310001913307334479913033518712463001211997397937366329254751314345209112297863792250974961632811525394451137681708104544709963274191904771567082476684649161174822058508960445976406174162974529188978144345573203563763377870269215120531287401034589403904462724174564030600869018382974953789948124218775893687828990070561282213516719880586418585063770104133047931014234085821153713578186025059664792420175801181469212836369236889917433987522235790733682049691712530418529583749613800723990725886622375019779968865954891391391119558582987170678294268980939916000747306614650867876257352644372540478806943615750908999333340461903005637203414950690964640033298808818208508364913878193904964403484285866362272951087223856743564818355733713294650936525998678362560307986618905707205000438241200941571355071370480506950688557599160425708518958079735130928085911927672794759405373593255569037714907664327744365013649406133422860647094169309348020984584916010097908958527310365108106696095521544404846072802152372044688967420436322494455354524671556286462488099445041566625407323310151152543589037387027631887006436010553531793630415933142294001754888859600167014799378150714566419522505303357532364727679174759689564914797338480022940771793400333455628186682359333939675328110843304616014601703349306923215195308142871883771197067247901421714306419463885513528514596093664287931729646885429387884645639910054468658887125981687532372941403854060527766743234522789565595162345935817657071198799528478602906227427970112627351805072250165352737668626839989336137358157118035984932733653761137235824499641332780699936115213948056161174313872636892689907674918781759495866864534596458712056827369799864403108509108351928539643468201730010983998227701940286172887862706225468923755016546097671927008889634372795133172858190486510756855861105049599809529289615880660660521731293153266652646585616462042714777926318876469310269746239079921647401179982071562578849276024064201163174059270679962204113409062958237733318324708495795737490910435126042724491326447927107914856206832017928856709693548295987818032655981985120111623384432790987738770003877384814711788546342100657659764785561999655151834250383656340098011426473176155448798207673221554603993889664131505711903355253268058382107417987082497267752604445961215745917090857318030099312210546970259450943064760700736241418669578988781578279892747344207800968960141863567383561812829970499803460576901751024052360579726448483533839236057611394714280492131820286686265565861585586316722889576281585467660621630550013397434402110927212679928966489561406053972982009167659044404639869486552458895645828019708679811733053706089162726109965568710331909833022162418107294727147521456732550971293042562868221614800409180270803598624685379533011028240412864407159970617064676529204855745141743863196521881593424407453249152844802771603330083751897959923633743432923504051998679252884671377843085050173091317238317140457190173600650774420819173788145231240717466729635194058513418327752682296114475310526652985442144660893859976313273863554126677511204792363726911080195651825039232187614605455943189244575377183822395120004136725040860627160915969804280317442720989658869263555362380030730747476385011288321982517514053917673000109522768452156330775392667558074176464540626676298941469755800976133993802519265981346363780711925699751465142521964209947882557532648319660626605796606943118000110062407206804439187340292133780373293646880458344016813181334500981234329436901672412079917902159789193279991860242674261092982958279072172905881315187300616804773101799951851331750117830364437072970781807551096267697480180795638106314138572706939606115850037892607622909995930588034876588214074230961326253988979853534424374536897402822707483047255287894838058488170062730650093134512511891543899822256886218103658923599782421873412318852843207414286214933737138616646342646486779727553536053174271093817697127416605002657279371103382907387171142132358205834840743865458871556283319351987436221384345802710966081810333304541385605497483195948571748411943166878725534490581327937784473598383994145631138600837338876005347124493079347674251805645817288832816501944573691752229671759007835574322346392863966626745156582055172211508786696164101701194041149428740432715338780588534940456587365778716797067526503714284433223502356951179208841483241610690057203831384639718787422426676104887867561790894000595040533750165756306924298521233563237455446235315596470324058538186502729726029008801956342238379019501757411312931676952670548382868546033019473682339401236016958576271179431097527127252936397503287455229029013215010259407100985710762380884483178145315547898900477272560425499778051045139903560177914463930010651929662976688775622685948770484551433754675836297140583618156648665866452637053406866857203224818143321331368483210665732237868003024183672069745744983831548349542086236139882894566182898190512114480793810002797530708563612734682212074263724895269936791683067452203651713460116769910247265929089023703584213217193950386151332630944474349618683852799617995389717527181988017236486046469745518076459281377695302967359045795734367595254175782567375995841511477216985528369151649352868278467182251693902095788914666404985653140345629654557259769863717356870936371354550286078715982745598425834924089402067926518412140758885630082015127568103313873701006466943002383135456765536386625859605565867145422353726331569468317986235809439465326648194079469776697065474028620594304129725463563033723653211082377073227184121510023620270965368201888254315803884361521060542976650248591152492539254453483169177895274486655383112625084542409646290645333728171949628729406137749332771106864275644293859945476585879646753660262121653490954057782985523410492170069784562838400785471013885587005846475053896400632394841822885048151088791318170089222330501373688105002710673285085864416785101108987726847357562535777501573960296665303289083636918886296629418385171003398490839288174013914640626685312331905181894426378472021802491301244107004304725014502467253757766341014537784359373803903458952811541003084214935432986297209795019931582497714701408370647216643937049830395222886056349732850655328660519781828969245183038811923702914599317153074752878389285809283313962314253307827217680118872642773455969868562289983992936290917992330133508991250013641045328499434808461230955040065780098991320491953044952289456055222393882530990548115118828901809487729759415596595115879132411478984855341481645234514787403502819712993109603486555107389701819052346801254292217883718489255170968683506496301041928635673053661815268768788601414734478316934630700726535632792965261216367194229289672484769919475790110916901009132589634695344654800032777013889311415318801057079372474084591668036227908295291294303331464776886556844055444373352008756030559628041455814776926630543087415369170382030223202841098304454944288829597791793278514326571514252868968263636302904067433308361952804957396236106468576330774089079487969925386823450360250528010646101227151031410212830495707258948953170391978220488567208505921882167574713356013487416448337382836559538575102086407460876160769405988484646713239214870942372475742346230160557991035039321434522680716272878286141255565161896683153756634221037205793752857808794362338638748738211225543180783225496841964134822524504056448310720878028492539915959940159864186448429119129349505205837298469466799427741857079782913412583013764045967427164611568829636832056487103135790704975582315423022066702355298866867178391831834378313439024228450968842524878824151909436267564431322879813635592837697040821839675424431414798421181842599739697392368264872238321977809570047368107982331703479501364879432118936721997456136828239437698559184441579558073859595692408915434396147203005521575608661063720475407073928155217610953991989670806440199936275426589439404196522608873750417305411763896802125176797537019910305259682370578949336807049365720294670234795063111442114462731760425374419275237780970547061484896527359816750992905943850164028031705749857239652499317587397411755953751223136639676248209964451864337543564468496813093695334050237186216044717837719869979335595322585826568305905044258530960602001469681492820672058466096669579993518927113174965667089153245054976223717193573001001987660852313451252680659800580493707348194203656332629211981254606716190943290337961651745847273841477157329055923584074340246051578968938090970674806522683652243764026812769694100145612317223996851123969174743117056868096068544876160365380457395896994909025763692150189965201607360924987378295934086287034911797199530843613265372384215155861905400843100579315215025967344345793940334717286972372317858689154266209774678537909475996900946815649482484036589688204538283986431218534850969273969990348368398703997570036668433858857981789764863907083371593083234218486888392769012058979321226129483615529018709036251940023850374224312207791037018414676851776546280875306407884364819421534040982332862707238366983045061903026168430466402636823638890430180381555932523332702293838888857790004964510355208354746978810159475023361419411300293867375561239677177336618134855960818293348243619730792138037388191446863706686002663692578465435577839130615577922908472651000955492125217995367555434662475284948448089478938600064150713845577208375154626524118000670740977367460003290438849941048885292760972563763740570418096821491315444631219341440559277798422345831500954513289608731500853905657700744934447765155115073438378297413579827678800055521087033578044377737599955496270917188407802735980900289174202246701546315387773519615825491058851603962551137955768783511340986919583727025476392664769473138992544774509886625357727679502673528316406054324076239615845648692674484225506522822212470346466860858850192798759727725269153266897146181168371443944178163040382571570337032237740165726969805938974589116361987055815990877253527926985276318476703394937287250869547418260412513602757228276456130319740918280202074201520083337104924749261809873574141179051136567104732241083861827580059153706121108529016743818206443676804286330386354687336257777887071055160583520079846300842593542314478117043983922820389179241326641582715001334622878525614259356716914922426247221505901832453107501883863382292637998504492482563415637329054106018599426006808427379138551977169145515489174437765112893747460943158062916446800469057239879052150513083601515559445757843867144561139476709483999009043999681603513289343821823759444222777824610282702932364363757892353199677207191733391156333163043085462653475331564054916488829787725434731147562249646317007400803481649121872268543182735343049192255388009311706689296534547574365387331399421333505109891838309962121091151691860047110006822380713417494949643715175706962496578221762185292505679162704589292137387090896984580023763037604244259657008939429632193649508251865483661417667612714238712754276216594478369797556773446901575787177988029578093639920542538696782057062152198177175265080229876445646030380133454788589181425107027860003306704152017630188123516862806485841414642668368923005564606596179207462988780338896160146010382146271829515552794816786044766300469997755528393159890381230164515400731730510162322247300759215161728339303139859651469081915378509843463115414938466059277901048959393761130889220984473696882241321035265524572310208553087077361086328358432447276053321659489385796915947470642096713329983322188616511266436518187715017272601948495294122236349022633193240682435969539112123336211662204558164044001231599029051394427039880062304717328654713183150928023361616288354210613914822760826962622805048343802670715086999583382403973453688644154440205521553796313610057320013978791829247696099749823352174586061854754330808566539467994064261027689226657599905077357629453548128143542697721913988084124530359863951943014000864455986294523919276441323273631710416050093414691811203353672315356834016425425753961865931679482566252221357309621272360545542425064584473103374327521814493041844741781527208227587226621357134751814303915246820261566125738385497931726225619919012025592454648493082159580919450569003512362940480692946034261869789627861134811804462935985278910017460077391007670459532868015880663020494367416420203536371383337815522891840278868778373743399746402346428927612798538628759891295478904098675995988455234504638724683527210518555027820007652674641234730896814113534857776031410782793046626185853570640054295919519526262807699822580297992714133251784935851962880384885103945646008868511460493697973036742693161651985003939746397664590755607260396453424694227991631456598414363772776983796590198794890633909076304000051707743053313643247485164509561621013348341137561255477040937389738128818637162824874457267233818914433865339355080998101072425819425729818539193851264122686515869040991969989684240037440606203464079139441999363941072914759641444791828632680175928554698397791979925008409786606107937070136684763748889310568251368356686058805474250682248835767193440671655520112163238936846943517398140768939486368128572104271473655855412284390784152462057335611790098555816198528985794014194420220245463794101263521868861185625301491119794968173949526091487385871190248235607612673325264808830963501228709174970468190897899626165205002326963131690684628273038326173335654279908332061401945718420928018050551585784378940684351167356201195216590195006296407567729200307752887505053711979846733868211517520704816013232466589540371950362747499229422475906337197675582596505506252810573219457892685816868069404892961334018234170479278684211101009615681261897638189728969148446031031082749438734581998226601116656698710113969472138141126490897895113725932415625374621696856524472896497312176477250624992215314293220452169106985556323483700648982005968995669344597105747878030981692780856073361254379550367819545190743396444593952005711063891565956599872691529914810489379323223720815743612113439744132900928273520541221126654423846882038034633290729277624911805531891096425822975211995781364263072432322213068331442431265626918832120647551813501176604330128403745127166998831083336063370953863071559913931429014888612617919247521380564646085833844484251824790699709644440179006376929517134343330754986959874288406591195589739713786685666854803017406447051318671936632007603461348084430799370653147808120339579141866360289131378597879831520190925138839020871228030576005899655004702628017378793528387458248978254573284730785094438652379873374178184496708882606757547578202697261088387087425924885335083911457389394014670170658444064466785880855824995784681272653395219953178370560975934550655433177842479074840523461410779444681725696882552208733879930463813606946392820215941500117837459458161987769652812735602654054355674936062521605090728113988550260852340121605017767862267387429719226389041949703506954915378827469214076101085925580982686135255305973062666242446950598521522189291936772300565902989485546660028578281120049922225891814275352356199094033187434378745855126430065264015173876591166288295389144388365516031900884315656719814326635649532076463852149403556507779904751850711119024224931835457302465215219754228992125926560377066068103454652111342200312108185513410859893342597881021291985958402312160723230761816168586835858533939503155949933792642110302345557413336449512286985710163274562473766348207905625213177139209031750530594787713276175424915274786042222986013215476722335820336824592991269890728749336258644656174444823170752512783669841748605619245670805026589674536442515055511745671799579494306559290817246241650782881925388003454142478790386264317145975370437706090099129540380596330578549668699781278574694186102735990795010418913277948502961596071227203679219929729363669360214937908102444238879440341148113136562426489323309608545164420283849892822140012594391869008264191711022400909695563523053523643926758480303377164668474457523254074200533842716496524090969702759756977904146509246024791248265459577883378208772282069421141591198000005142743512515388850928945101184694504101349753185567381346441366859643843228903353178647213018665433990404976102149903185604321664271277474657838086494295662904656549170911024742627377430752724867784442978462060653711699858097807241903402504182000267128763095763814713936673546549312083001336073972110581358218765580834569371139659268798975892053652581342828899622441206637081266478375583502787375357666812323230083860480079735009300424033815406574063344772761903254262198473687127541378692392797032811665185002551143407757986877537390901482087817277486751298798648662451359045152884135921041787912321204707699630835840761769715220778723509201135536707579923106214056376936779721003233198505818855199141511115881644919181373914587845103513669928973541169890980170601131958899886765700782710537859894860516463936369538166447063516870927798080451103068480794707782609921987213995733514417688626687849273843624362174220527545926194578377807086877101790202315979071123161652267285644820055606277542003793249283707275444711149570949473666736569078808631626946715876022933311158263554658931925599906656132326312795108698203523624575525737207369759697962642225983743646232407627676580666258599438116617526111375381972118108752709933633906919000065476670660266416107521567779622812073054289545026533868899101982472470691819627766834614513290879163050240748001103055993936160728495073463193735738393269020279681856684073083648378131205440325161645403229489212357427551093783379328402379618669935018629240439527434372478459020799623280588493913422561247374905589706697542654468592583913844538765955590378541483270557007563715534215220704970455007485138928065246118960612484735880204396450248778324514600704758272253605762694024650492658107495404702632319657606977257252509837826508291751296777258241296665636852456367096572118836680464169704073772634633278959592904055903702835484919063550226462236936696910737909973465106277276889323240727664159802276520497722597950271101163599676760011383224298220500398802737683028130412775862926856885273022738278714732131075017858252912321077314404777863923522198625109234465026627220328181550856603090571412034031172566536997023616006202332739059816425790231189328176483166524855340902273554231350714553421600799874797359373929767913428259063113665128592700116798564282153902570628436271590973731825797781917851314548773512063102087372344050824617227847706168254269593831385244705009437125962349489270757592943213329926348282040813499273927573102422015288089360001225837954835711597659666152654806848614390879132043730147969969884414693435175475078290062343373907942292252710651015317741902315856465365343775491110357416942753905461944137997545998124993952353006377087314498251463988610255203329904410999736356825582340878032853157991202028889948451688808515352716796229397127404312587757865865373595118023990311252704867638662794772908177511761444127652628527406751741794440831077950982156562042026281997605603226681577040242147856545076163591652177712090043489058021700572352094231467312487608326233073394258405879038093900727665904345380198208436532213903331106111316909054592095531140046315274858634209212316608441006601560225771385565247533788160474570247559893888335515800629253181920999253668799665392740178720311761306293358308088489024647525421260711061578264809741577692025968643663367498397056746217381669285305147422342541435490448829535842727721351491662680717515884502730108933841872372645018130416392551043263179934907305396552921043961770343150123174704516161640121503481824244888370663005656249197668768862098145901857711164847249364519870682407522387842979984356286238787291860357530360771644019388991076421974119891875248149500220129475475632017839625676215220367416666206639872399404858369178137382254046247180676650511994585696317924886212973701199419224262110487281032901324135979892261475750762912683495393863850057015408661415313982097367385113232027166587554359540447136839927230392629949396248373357551272942709743117518954992814244998805878725160603100652622810123955646984539825677620791781260217043086730520493327933435046663133888964526123385178933692948178421045811138767594454761424514301694478086979779127116279627715029469461407722355157650429263982596006293195508665460767647672139891314016472250565860078265968122051225529477737415708276479551407773535708840752866551453445342892596205570921639933747475413383540636738061666703203403046268847946994947633587252684559344664163827417627594722572868500821964679932857270741874052588781062886860340936540491580296855590152208068690324354297063284464498173747480187938673466619186999548535665911516189085925607159645156176358234655459606891855664760736716331113502662572893884631128099526099041428026626860238525724028002341639379182397991375284552231508398381000644933677525612153857797214887263920017773058141606770890083332995712023591967695767402377417550574998963283249511428264821694816006138987267087206971214503011802297480515427433688015268231623556959629306680575226990197545962947884234589451052142903429141410674888370251480951671590402154384446743467695213648106953499677526401646853341000892372377993938388184497885230141547773260610957129144777661866823468572344293177351570714364885586859902970263309323868721568744141507870670548788151847222541035375760125146652660524959446636276645577755897413832829123899403488240908141237608699843566188141315426844794502543112667072353009886608660383463552675022185545315723716292967822554769068045812160203095189083855555953142243657080932146502448037150301199774580091029942293967614513059046337611732409403566987004276467090140131323232333426417876791449461415448700811387480372848849703555660354098063357161830064685849101762801177761127065041515493111921559059586092450760960859133312716663430572382652780717687280899271326689949013292003685830267094513884021449437611413866937788265357804269775249266200639101094431566003674761457873760599241953992070833657707560430521875255332776416829480801814276533910844043524099299713867573447850449961858957428475975378261001774146813748520207728821165638929580393139278718117859771239446944867966180892489650534368478233282072491439809074663992015448922773266015188475008625771698438750602571038168866394971768212636376815017373494196961486996786111840104053301997701879577638774115924124030419565625455013723741016882609784409170423787781105635092575745768735911139191900160077961648846263076686194901277139366127549312100215295043266310320225970234053635066527058866772103113920001264131890638969053702442522592548788279439656975785641594695774859517548340972100084825443935839315840104415292975989662801972329997945127486154205943172303061626367001920150925259839200602710382688899504844494077893936591263997165897281461869856719716519910636962241705667001409911919570296151086590555244464462711269548111340730259031059616291334403153563935736196583453584231537639494515477277522916190839026040604744383824892605469847567615785350135038922290431506586888768753098050139032315387202216515594318578984814231023780072353852214696043442091573953296119775577837015983825123057690442362529798138645857301508672896411293698700844356472340508541789163200479679652429598032075461454513793627587394687740708307531124631321060801171599008037195003972396293101079369865180322447499187982722701907376942033166709620445704557967395709441449491528264816736961334854238507824485342903329243265311012427362267359429689833159713748669753784476795686097728431784897823873067654730313281584561208181925091548135796392588653884676350096587960748402814767658443296075982176284845149044390070573005293152034703208284825559235128442889136318896835731940072461775849875528885384247589034235046975673839134628657994671901510123253356791158831829867841364313437549046338660675975088366666634001823241772128701105105373140799746598496647574888402742024263698076718983837342442036843296217986608604747503971600388723324770399743411045082229805359474913308672589352095937187301306000898587500759057913668564957804477737560946448213536107262484189110140833413622888937987589350324881067987216998718144963481303598019430266931980806738058240343645592447842110643094377462778699777473055507270478645559682151051385807154860069328916622926921213869796558923113455060961225119464368084632527351095749915003946683590801891328070190546185897424966812370342205053149389128962210569832202866110943193216729325783235371242648996434331196600845808043116459370145664854466356964354537046913287848599141696160415159058527986118077218483396695774619604201004814480653193709304238655312187124436118045114696711552081771869421033142691995505202679544895078664697819957923727832319143323323992343589295571607422613578700995834686657404094603587665517626038948604478709866251327508506536900933143114677052254043316350979659935009732126408110093891025139729193549283757190841328708518549569782200834885178048882751401370691472191238557220644215204732027998945769793279172430662561536733295065712986356639797187143429715537991990460117745299123008977313270194142224659964465129630851529894635536634803325768281105882038897976299635032743911887326607228269137241969192803029563216747777408562135675349091818672850691786447263984031586034905121140584038319655881178656239904974630230110517290277375903530464324019023968041175922213517108680750541594873110188775849560532482448750594455925633537262486260704800263365149451339770323335191228503778735598292629031919295547418616214709140852071739847841505982800500569728791180735727050510772597464844746459782356252071087602173922506985972892897112535729687362392561484922563551974799999963801294870190369307858166594506417130544724269012145683695082819934293689329077073913498458475200240310670979637782264690751073798664829673446635102923500053717283368111331579673752632198748371929581055645279699360072221984242854810331588159523769925008507233929604885605045535778411320862510894159774146310440644301723458966992297938993097684254884632511541926484489732124832314036663158236061344316495420983727315993673107713348034861978708709176858340213018357059852154959982279764204574179295400973857035066745286994657714092295999427216826386374372286597517738120250937990524547663336406857914002360013175075223140943299484861604845859274546989823859854732482475469906271921482212806065918285932445058723756821048464326149019074023015738490917980526645688088332623785280313143908867776700982243326655757701039404039993134567609970500194633046725447600372139183558665927192377412080390733481204349984266720323348820768547214104798814746844078941753835414784185256938818222255026802334240338185491810436483053605932755553216148852239230334333234565379033768428295527142836780701537693363293056345186047973247578787174019755407072399178938242318995085588625948034163778581793145650626186865782073626485830422005469160869672755476542564053144367050440801477466413684362952264384356952231760418519319260766672601068324949611898053303253162890391425333548021487728823398619806809909565617622144535457226995416498174250308283293015238337773927268759849782088425743387902455561962466241663786119693064558373959168907340404598040635140467440467207581941738040731456928706934627872292583976663369659620045211090203579743569402983866772365927625180941738445410451701246385326577954001896855981104024697171221169491203045333702588256211076441647100381295844788043702937201119171004080246687716179898575761058180554738286972253723691781987629810660512277099745401793552759403557998177516361278176193952908081727065775420597070553767728525334863916229187267577560460627791090979708121182371202544850592883587041558607408432006581678132654476829413688376574461948572700039585415714497596486761909970013827385381038396923246904710567229683056052029040297421351078692297391135297689826543575721606250439328251219404511859548573751479300511742564061115622320215676628420060100132925035792193619026194505019290322979364174872273136083832763305391130971920128700122845507521517188564057349790310961888875723042908957461060494141281544528919848114481916300081792125343402154292639972114628807195437502437079541468133848037438269217706483705087601010502188039190358447598284927461564706968317939273090761460211298139451485830158080833465817002395778099925041500677242925222695829952384590135156678208774972588275077604986226341754444845669921931180471238783971529004692812747508710603295908020899933741949103052975640006861577385071433928240018880727315996582198390399676885217747629448371660639134522216450629411470259439151514870164555526359786505050196870051647681983100574291247697002139582311396052531026690046020068181265450541896861342486140492016466773531263704854646419572373984290439669387626975321408013881629717988935239727705472141180785111828059753114788735087304164868157152034007610016783442055945699149350331162823089973588571008536240638917144300906498915464563690273185268522147519316463211437005564264318217193147332498378405734040317301952026443056721812323024157868487470471060321128966006831895722795588006851511186570770647622027176020914382583256349980936580341181202275426034359798922934928106477398367646523975384997542527399278628335619760728140723799509603944202566637000995598534304000247437947858807131152490813099650546732419756310194183861140494436094999875189346589562620531849700589464616243654711367584648722373665022820725209812637990770888508623244957975849903622985817725961515338924053517653620271612024838193523673984653226696730655358812418022584236375929179885828409643045567317449154264579352363013197484812363923309193514087942155277276488744511843080555275655347307763342969786460121686036208634979567111152996784408907558460638733907530089130735429071274112525908461505164160734076878677801955256999080962222063928603195348766320704040126375994715571607889796187804280838127459886494285800457251657199692749372853664853424380958092381730342605406453730025476383029127337803608290073721221392354905106048275933172737017593146400966895180489353501883614066249551399123045358007341766451340528251102317067076119743599993266984653715645633709378881806572334950498985409948777890527260847742490828276275441413965742352838160666573913230344936692266113219475178822854897624574440639299348830376646934073602712566117829673330308234694322611986821856090653571143461317083755916667881996757660062293528735165134169097567582140848672735802438902985774354242795625756650629531960402087113081386574906069814719589083159136213296683065361977423179879186939210293485657534577072075414670570616080340414884860554135326755461651467092002860116191882254160773893879461915328036051785172691578558665176340079688816266847904725515634293474838335521946304183778025710715788762243900572353350859867071642285238712566426375727353736907962702052086438932295127031797388571014219440184188895069155865158103037208398368663416475343762968592309543723358994201403757584694860427536487423422886127199550764541611239044645783157127520159264274572791556070327563982079392022971014302761611941873844572662656099624661874632471461649096631752032849813589101137186941541563381343145511601589154122889559293573972660583904920452034540765866264650595039539371665216395793903510111270375023173214129857073550347954642288616050415999200813886368810592405611070622869035573847901239253943079717148854279202533971043455663550270460432272053078220731777307105894878858960491599248539375923737526902419600141399305936241609495393131791776765809583562680446978058018428527495265572574019616747705338495308596005552907246031592644702340083611093010687014068875183284497538026290454144949615250600450463710029572829688675282633332992315524410617932270592857094766116372704801622887021770194589717884711952012399043504875676218608033475343784458001463283389894819670705215067957889715970160918557431540093600374631608542790438207012946911256602734191997207131228504856483593213380372377724475364338285942874264075292815387304980273796260466713033917685990260142235906454076523015431401590695706963948772809146034754809030086853969760798535911114482328796030056789401890364970858802327755928621231583780731073255323853759576697961678162158015736870300835855668318999182358132544582348954584867846848298023288569222493984987957734311628352328764608530649634300890752945130257433341286756382715749512245226689402178173086343411107522968061508527489954305036616259420326211604101696111658102608664878237491453000714403728797028630382096607272013826006583716767957566517779929976161818339453997402381922682677640012114027216391299734011131772748563824798682444517493168030434757344984009203292497274505169327324146748407372338160054793408147494407429556175971588455225494224062981190686492486176401980091586373382750530299553759011649946739537414557508712241786661340196337060074034087877429113926865717481153106971146326761996777557066841714673076222226885701782539045333180416032982637284440054287041315852554721512150300812731805582891488581345896138278192607255457632522335931555521307155740081109806706785303810405352168349168726765390662584135697712822527095107113811126177016790278908492913198580329843719830454699803926480723431139227446529463950870255656691265382946020626966179058949771666767420170407483566036557030457451065386321712985137656685864929634588267651272821134658605966740740503230744361079587368643432239678405877162143530862466720975552232104728330209718349380401653098353725408462237584810951049512821257018085506759146358235148302797814523550148169535428860491302456063276329351866622326616862156834347057056446554932234781670068554845938414063409784292721301310824559087417561910029291607004608477656115978956070037231523844117693195057119118168996320805662660321980743102122048801489587827263524126661314982229737562779146979117120154553071430280240069439770268529136997903822211629256471102660968406286117924667427434509642239695934766627104827151597768245535866352441933561322314224150306624559881804768292753715396504473779616434253908512040465559132966697980468334411938038360752291787342168218429009449435799649856396640170836297725998217057057710883343019793285950023490295729837466588125210061356065623721627204480888503137162439494944304876290711933488355110489437558335384341683131606312367571160977613575491524015126407625701472361080958970295379823093575369177203424320840980998596283981758451585738925751388773785530792346949896997880765656282621319930584025109118673932537681976648662139177452524867107180522762919810701456418831634599374777694514842588675081875933280581468786182887457070819480168089512860838065467588010408070387438625758586752006461891609468525928566719897078745132173538729411218359551764901182359179667479475360666996124478180616232341588755539246158208924183501755584108501505508990904569103173518568816398488716704730568779945383740138240029950688541289837755108252652723980651947989793231966168107055702523318650469489994682564174045980071407072931368332520457311299359835460425125039001431390893472542402900692733734986586663836575380944912500019061852070405132431605756838437445289635035079930742878458221230304836933416749870398134666504642770726034095403675307537458286068561928709244475966684959628631066449457237928729998756238180375083659115107445345281317642114014248555385340455648560519871244032684299041607473587278045184225232214930901296436507234372965578592155502346340569324280806151725820233292026706549016237190108507368142866956148606327358426563326965500387458085267987354766315257425716249491247135238828900170830651597304087925882149170858728114495326751221372568331866053392670930396735989458757781735086707315461600193051890496444484657451977300088336283965313690024420063827453457172486589351964246234448724600657925808123838495389646201129930802068215921968593747772815092534527598768846395169783680870481957987671357023005034328770839808169408085294284958172328784648915494255045885684857211432722146619012385795603262133693975474934568064593065071404409259814733353709153926305746248760317201279324771430957690014340294553538902099304905436995539713967674316017640721606784609477921788233328340795082025730673876189518256836446859362588996147020370831831990733916697591702569583447796017370664677645650011988105377446888721985303114505520414673553931278342164648891478986719704372906407567074586024572064218629518646617107457875775805227918318107763473506007717412281514391915333005928300099614852679956059190029102760208800281954115927013797883568566510608590063430546940007580935683758327450148153327725934319872141366307689022421381285482136007878621722516387306256191540994650924225614708263300021999884979865075316785416379002506705679481653026097001341933971842111238851522937342846737872417452783825173304896241722488743335388102101056558107997332978543999490090524462178726418937585074743945308860248847404600694349538852531557991637005783217884719743466387633558053566702812814441430414978656762227632039040279371749174431524513999805511099802184996081843950935954388227713688667277930571570149980814748052702287456438420546010248902429904902977025961948761629729221039688493467643180236006755237991725972336166839549058978635119234761266022470610293683258633793397292949620318676365313477990501640902896502309486466032022776656094827158302268788884130694253187475967813055234515849683164578812025457531886324171528880228361795348435153616041303539134590626676617853274266306309794723107673810186556565748443141432946390013337168752340161200569151527209141817845241582225311167126359239329732736670906475794009911688126786600203301006153951926337860096717138377266743786676587871175457492525103357689361956096682437136153389538431279690503314290444830786751681299169051104625519914003803302453315063324889510232131495752498928108013817041344229057572879552495140947466776470392146764289222124780006662245783437013408509889007196091391599746645326055279137098898651166371054321630123176988746126767731980651327812119176202048207895837111557720114516607380824492469330231643716198345109823332366658412838936743886175539551328531439964273126172247722600894251469340657958032789335987340847983921587005021988733087969817854974531634313754689361851336109672585625424723490160884613440892549450053102517562610225710878856627448109932722621403472822909154275326039559942784187937329650573773325580290131031504773106627648520694801496124425849555053144311034097656772371336743332366434505749723500339573136620994081447713654249479758932737123189476292491769815630295733505790796837547736737303065279780571871834352751185016025358138142433225696016497574681389650937949039303021308119134664174162521051133846708709409169490406244902984356831652926852281020346777236532894985969328179736624020210355320210890778411367605005507818206893527409445206848702003992627255563881091561072254631376205706971007297150528702892672498259692134983288089518783025820279601199455581138496201426398123909437767732530899372535064545501247015891812603694168402203332202629435541396137903651366826863856535018192653780994534096189163148680627749051421116760341504381852932750331668936159298285627062115377049692762743300399845068092317950681231131990305410194719465757016942322601972642755505973448430149438544955559026055980528643076529857627371627527289563129876332613826684916224010106659023187711962331109966498430825393890756202274149690852624579538473987352370183426135285649048301003242031793138577554202134033667451991508167987935552876134376987882769024213447611004960171155296550792437778575306757871698406406743555490022143021690786842853308098211142216065712587616598959469775775969652121692464653425592878501083807679967407591522500225939695095474079869532599784612769550928367457904320627758344937941534445566835546589959646469037845230050232957924487007137510316913204847370692262169036818684884322760780307835491150732159946285859156248289513219558218246778226255800539755230426644074670596306250153210702082417615899942360317981537571342922123325985375732747895931848030446254767039367733876007402709452699000622951785266063305372139710641357197924090451322747886541003907095411898082426783126413697546080259959050922600999053466286443977205199405263321593098790600827082329745108654314022453309269094726601772485299218794699660722893606933704355289835516707613578865716739883280013787362554534946084420305708175595137899283882373026075912348161684789322987401339712723355125036003599437778030119044685898879258949635169566488733064206610452948597045688844594469712906259299409184757069227357114333531895440196583207872520792901498161337967025576031010204496343975054214733601030026356622683412775339211565554411737633064759949264053384509744982179554685507080963808327541021933481286415339586046079585571396940640895631327683149774059077358945992939827577715724422712249488929312365160550334647515146655661296184493130778862628921478210072829902907574801083366855708732443585568715225940573371125092605622652724528731012569201333986577181959626957848347429403012309618094582739957419377005825147040840691083637717049354154518882647013759082347841043959296031982649131181818133916869518041693146249820648927203433072415986880335397077817710211927322368460792490186088017398554226835974217953147627362114909438891097996802925346106902187207711327061993144317376165862779229943431946445380332982070970379144063736069863410156077644130011489104975859675907005669340096291712897373668164607555203244539374570116997307665801978123682965009180441074378975464213596331339795426669525519737763635001993772428323528024214873885428111069218405405654045467865252118981762449964364694187688622184598335953450579548334382775469556013962605682766315808439826605958947019489636039349418403293319292769511645691473339327842041570642570629061741459886554018374131017440008763185048096540331062202446233723889129507755893824130068578515198953031738000099778374056607443713700461969782794050203433434239704451495179366985370249534120010900979967980521386832217019160497953396281924596959303990234165875332017427400071800973961904566190131916327007226890608330850053117745799020963649245999887154207690424181284941665954180369157624313936526191452711864123387310386043916803864564546850052147208335095446466689540056911896027722231677461070502658905033882223593158910956152176175034746962147744263011438042795010563583914276977634645118916485064495356420556348784143154190637378342541049027947037500597060075336850407875448996927985352787281191374000708579938594143913834106502112550002113736797496694822461913196178091996646070268397034118942114636023571004303130114634959794074913820803668411200723121204508353544336369257737780139229342010057330901721934480053189014646814134378337387144881817324100152067603678063406003476724758380688299612002545533666451527808019153874210558283164577247582496157416731873481742332182503397022296642261966823748136784117667001445826546360091718175924802830579282178809139065047872272686045001957994154679081555757886308980068749860614512443433263461734149361933999110165986231231466356936008182417444511588256628729399985867608878562022140748573380660790347791638979971394842048015999487414132332619943453715705390753419994705287685711797390639494216025889689894426987302321684701431994142584034839227348532866944879804237040051303210231719856253436554842098750005861030797130013406622268718913496060942318130945951213532306952506543509270451969941445640130144809053090861911361278550276471844394269569272662308161088420795541306353299304267729672123067038478802389601419542133795075083020549393476661322191773160904214824865266000919227144585959562378208824561779279861366944884277816974733724297007807775803398278600916689681676239612103721285347734329443873343417190286882550775951830556966265369826372274408707636684248558985301531673838752062694426435964409702120951060253658751019846652574384471439775884606731887547228905451492147130444877230766750655384831672329929764750723151241852928079738042906018520463709087915255863455177193751704604671331101440555682547155693786761075696233336638509314650554385652904356530801386612800909908194048757457244314520351410653585113537383186759542923511638569399301738166734397074476214621709079775731925054813559968969992056001563406196641210174547818514833197058010251379353682304422276811109985797555469648046232161424559043242387245888445816524156256552216455793202759958324852397423775675255785026726650126582589467689278055349734445369493328163647875916550320718340713205620798903269160134475545776835241158693480924680763046891014338348451874724172598030963621203836838631532663382640146948310720154701367338422050414809118392258659201084456698641332332267795370056348900994925242892467566064368513308456088438570174188059834123909700127691923126053870068211579740208329811750050480310230870304275554656035247512471774932650063767558917737512201198185981507085965382752699079559121830367857137982955207481951722118971358045153903604318845364369407591872275513827590845605809055640100309081681624160751159799876983075832209261384632304052878528166945257340965336380702155189025725380734202782954539694217356675997144181529884370829919383718412227127914922479468131884759536235769531607414593619675594895028610021099652672499985252343796565574081420556613894017465919222612230519466527600839571838663039699936689152967897697075440864853999762538136042768319615152233614227444608225134049580133635616794675245058823594629653331180798139819137270034453670556778477433079354043827794087711914886164710647133847492671781496897994017215094653556276836141350072868809045878626481997079448461633845463658087125730600780305957787037338491677510383015411076435408624154513481872661973476509081092814525885106569312558248722550421266776629888694783280720264167736152628220043771958142336761645794439132274619691577450406015359276759847900805119982646935381274942784292429973041012616059290977784546412746352828246049881574442899494122532853919804513735359900967957887996380433821956327937578383009325520579127428305746668119111828301683638927048862752224140115300423355222386333231164298959892431205854071632868036179140389517129409204719827909314602739788098261645175013574075547743655418652081071655172560311162272883926798403982483955062778611550873871877842158778391876161086935348899789565374509695386609457562083945298315825086120271338390279673208884857974264711024711795664993383091060549482120686759302840344414278385247156415715279350772148778975359302447940267822583878515588747735716449698874658523768755978923582359754812436407074078960705005123075465775501147656476619160635928025119083888790183063978810523720757141047809132262781014461831184740346394648614834658260646557657605530969718586761122950641346317362620974427290869772037831923110757334649193972071811948173690950543808385381709865373499746509553417292224113230218226006634849989939509774336121436552994475090227625089140750649090642673676472637878529678217534968120039429969465931050650623009843824458728370244118131691303005119846739589131424534787269057852408539376492091773158364868960597229882292511630478160138784028134612505339296034091326440642707151501257053144496250783633915374066538717427395262214359529939658518812307373303988904702095613221536880266427316644475256444561585175225125707845961696275691393228709583827981517882769940353305984263947038437599069539101460438399111561803810213365343376273845651032362141729537467410745722131808911379680081847978516469158289181599512274199050219082404678017372072940008872199225997752904101093714141580560650110632118384434146013965880921426545927544748600999673556688343759485990163101083630184454003591888807188407839452713209673189240798588595976389529128584890891626813118661427305045513370918577797458382194822525035451302863982157686197697983689643541496982887219573669223152298971690225482297156962747092607602049834213652404417363372763632510747755668900985572421567526786412286811437099813898782907043481369973573233438309976500783357651641316143522172806400724306332945231305749680088520770291251806169298768862921765466275282510534403290813919946804245970230486343024640501220897532423255847423206602356291856895276548440207591836159858403366976126530564751499441372223099830317084629618412144491771487426538115476607387882934957142826285426162698627187722874710321990380878482746754029141049354410182688397436179888390652351617683075854866869071743213191541939858696118485184442737048012173337818046387990070661553498649100933821792222214470721307684522891737055286361900088988128962917143249223169335948144588203382710390262656869414012452839562995095219304473679115821874691197752326247896885156385370443115649044685280863964966897467108349356113191510147153969313755396905408197872061906771481928385911860931173405385836121187038988879595980553353248771083906129092372046824830183925616767714174722914562632300879670990296109457513570906703456793161218737421197876514269583829175160270799083873275901035132853788574228307836605540312278462388913534539104436325056124061524226145584017251119495340371453651204526377203964352684789113779377862188395920135578786350012368310517453492956209254592598980352281791570235252073562767764624509681780933226050363414564916639369163115529678996009950672128595742888910232177851450419891606487526270453192386547197536763664578146176092400925781447051380726704593735909387446385898808575353085624731980592332605097649891666127689768320055116102790977713605116011309771844094060561775298253075825357443919617480350485986941430317429358135297108977284018433013765561962196265252211138283827353609855405075302263150979969398170151634459428577790176411015980661177680767859212388685761196793648272548885597862903509580023945584102569357846268256818874021641393383338450831222142253664838001298062695714182450225710967673649784248421491955153809841814904369063613900294728197485781465488672284982394787973665333270740599901388403114960458267452009460483227783414226207654548045743256613001214771249071763588679930554698289693769596758573820330075828628810370480767095926025645195729892574691234005497796533536162898330942324053343936630787820510801561424239181455475035548281624953182539734988676700629737832260882785529164880668058393269749287496041531574460571126133857866482240577787144527959189522771016095149323988085038299712751169431521649093013650535918087657585630965173228036882244670273018581746720469171828964029514553818700427440336040946073159580137738984212054289203965631986610221538670241006048046696187125848719480335848873210862922163061842920866072968768701820610347701922927895025567020490624496945956443614953730337428134343654269690637122102243158890682271289715236384744434258376730395515548197244695936181924798740150248105609818575984926641899334450078257153884565712178931162466517682271661188860641685910869649065282154328731308941480980659406561957729216652095177400368779793769693181287954512036280876220174628352378664031170081912320864993113697745409952808932673956878759188083598176585634289834446475719614933982855117036101850594424998563516600845928963354043976032167300802598460272006161920181128940658344756556710755274551142771785630594132832500150341285197330048881012328194070064176905558914086851349677745669184938898939635574622812633208232754128230782560612387954074260874573214602548704377780268537771682203179681584789808565373885572487716199071884258956916815106631416530352718051291999415100827259425804453692053993894753514973446020064472161153010090693700939334811652889567610715402071395409736919442799137799349909620591332801996222907058468526134905045154224364649215372479241670254672297507517805159647167754102742292578251660537531423860303616610974842127664115798560790030778379641489190945652789952558778941974644867931508798265129515990821636981366846278355818957243554220856611100622272770542527480481539348633120425161815074079880433891471362654822218547128831872657932243729886745216049521932452961909786151411169891102054519111415352051144098941517522499241315632647064340001693348771359550715838823670208658583473622304607932477728127054736508902398936703840293279741362278404497132415242205057094609599380741616141946083143384550166563416891521697790127877859452437629835408631754523416444068062567139171015848483884881464097318415784096279022198746893539830070736337545347179980372441023370034329128623235715655704331597183151183303832679618817414170977042663986843144013296893770216818432400922819611101745677095079953763197432967493433633196122585275813890546986190013728069317711775029620637466264703549385245303566329422765323916755381752948376142034519666721626088909744913538130539455015144688593420188631871627557136030687521988126730481841658320105739247701604084564069390943857703049178311351805763775490728170153852412285257117655604977112328233590410995610967585731399336603974599556731983732015882742125332723662511245848819339798700700670943607602788283273058980425914299413342337156826037132177378645623690822839791047348499257493174918424092484466675964300045419154885404001762539119066166759899365454778564878206465810289359769777309333556707313032032569575269221459547290899099528186904728551324143541617043372660023323841161946281156107545639084221838987911570483927800431491804819864325055278951174642810786966021531619434289276662041762912702445577509145558833795767543259935582445874067845485949457940034153964622198361952155837038731110604030444338540888039899392512329760373736792578063788011384063136003451857662806964919721034115948982471180577371487100489530803576222879464263868170791148015013792827177560168162679456621445340451680251110765804114459871589423618602770293221382550907275470838662116805838510461505408784647770693063198910767495196352261331968209857193801108053326843534156928725683574713028892513934703514688342198486712980548762553350306288267456979141184920191610742490396319214691969285595089887318523895862373259088651988210162772394288948512296449842223376061689325599672178748793677924998586944176441146873053034750230744097807410224014993385666707833364527977534972415291410430517533593874806805382193837534281488977770145287877331743582501615876759635016605187048582605633770046258222419900380779153474700092006151185884108915556020485280977238465008221391100891607910807198765149854938657427338469098944188807420336590950618126005100979776443919748139365652298717936370456812300230000214211638806103236816780721468886711827066487326708038690142458774220419845241360477786519492207988805345716420937429334130266549609984175789348786591131796551676749990727582760220671995699744534065253784576009122236332537088873638630148379885572392260115499671964511524393191169759080340292978661979123609483162606409779018238289710469908197140357435968721963036001890763811018877057786420493679524694979618717465291078876191116211028500372999781533791962728591923289296424191896555835997527510291475038751406473870238343073228133957434027403104065921933211486377396421447917223328134213534195494950096171515592174393385721938504711557664829100340107325766954875771419010760623897799084453438067032988126311043854556325490531756776792416711178729848167198184582951784367494668435398963248125847879426720311383572632743126621387757061406585664415245124724245639787595626485735347612545141855679333656304168274112872444786217740224961372028616832570967711203408223396223675737269335544757587821742703377790652510669653978744604838058921978461721703512762396728226755261690534802890123696414187661170494123404407846562022637138856580977546968834884392317804190176572673543417247191246929468938376522217349935192333597612014889843182294638381312211803175666269963240006506132583660657439568928129205466172502036262403346408157886774779711635216233825348918743022315281243555708818737329331756154957548410834318258716979190041782086810228632512366544102580768009645585855438247551861814975951011955164661432710455156319441492625207921589753785728402468319633381991801595069257229522354272519688775267315786716020621948693294124468294851087999355642387342998627717996778199591821336002871146302260220670113012042724064550156551696845369963323686290858142767404239445764979397745032908138769545950287521527346795897612797792637807837828854590694656762713367815634265006666276374737691950706937145684367627028297524684457379629429448896146915886204892592178344380421671656540693226904323242440508340245526427015974706249945827082120393668747986817134852280956471673544618527303310482419260757294510287639687013223161091046571855274321519209613938493989742354780405824381377405162024613558901178797792971075545403376233790207275462148986227959456522762470699871884606233045248044668712675683482175876125399730404987286811855437519041568720021026457571810202094494713091708762791530377796803686066719506661770832057144272818762704952868730209144980449802710327168266318232080372417824707321265404342835779301911261609467793969619333169484140312293328164369162423481868283973962714370875415723063467526976561580953858459193512841819816980324588135983397365506564764874739643060617359157301549108741280339764356746674734464765747930726385068097173845545315468189137950119480748495424229732820326005868343549492721435172118357224365555898929462170166134723709749372614310961521441373503401609823491825223654997033051403050749877099062985471307451463218942261666314372350722942571644123741531422580377975040980023958146548567447761106411969326761645373274562202959150437244497433628536325352225963601439561995059890848554295866470481836392795745741067690075433785126242592141605333902057300670396213908596154606851517840531878867220238604857828268067659975247737761048602207308077951653271999375949902762544865761715079589745624190305844238717862306708119483777463523108992842317690465113800147407103662630871835915391748665348681462532682740912027729475791394101593716960061100958896776891950472401159126382263706888530880178929262383857732521025227867101955801934992579253682795334188957240740833642278023419540616114000691103061523428436299923385147538542091110682768845257639136942451093659978518525384156471777253477582407642021585065273998766038451638309971283142660157430326592079836121122414745562190822213978909928130655142521256724570389196476820644022040135404920260630174559113157951926630502368764561460141269912342250594537457802740858845886079853975732424355519923437161921835417378869586578090596917342164248927888189627421152847308083195812921454192408852859797355249966133678088507778904467556821403490176715102990470694932763658632618664888782940187758010464409664549666977919342485182003212246962679097038990931864604925216713539749828603062166339212232958421673567953672088109038059409389924607109521253874164593624651546551358638083677146752934942885961498477523125169407085638877354072917038383725768135274895128001904988437536465036483360259291794813113275568062643889284311173734603178822074533360567110989537025005516198249374794430398486110189776920174390058306690536164763559980932899206459451948589295774026653479388249611262631698035478509315283057077204221592017187309736653766616377905028114263352277730988496856408235724542975841274244453473346554985114551135816640732422688889435055188777062573697093414869892233337182947732766497695298560062035442160180688960728364735693472857218630944636263446469377007817302682678663552311503344805015670707325856150921536128541135725710930736736430299963892875111546375021393924108461613014753852698021889481203722323785001200036167798737380154504595007647472583893220471307164887168929450349894890679198073245416995774034921577889831221894866929633432518330519435969727238022038468656874353240003674688809681832400077861303296244756098954767763885675692987012172770530784440770144445173486978183675906248437637723068819056973291150453583928235454740010567072215373177217118360181996373428001029375762606022238979457952498607893825771807609048101294498825646597517540165530516639315328913141107132926642792801744303430674463430619698052199204350860064863507727764967099747929222526324071935360383176984135297810984327686918134952736857240793211227169609745598313106329909032998329436159897181363884107603809649028726386435786487377262188458354751858743092864807273097286185303991465159647765605777328657484297795492915812102176740625776790806577348260987459400003202550094504726346579994061429751237704448816079580669881942959870085678428068975717287019433560406168714366461643732790196512336773957262156963276039298074420935615081869522953635485342079389842273896066981519660193153297731449574285702821006039688312284972313261102065196782533531502048491564952769318146270023627703780453574376729982451901918415255081980645725549404376549016471449699623462053881429657376784509005817724318129124867404016379379556025583687401529132467428392583143043739426843475486673235271992179918313007293854155377892433621277767258644243840102662623379298225948735613816624481377132498796933785037630146151566412942759337112082035115030334097891123865609508761715813404933320897977108160099908830190494590619190865420886665851198446056939132533813026806315726447062698157338818923817696027699674806040621395198702883465361311330828924371014814115995692146270922202642553916744900455167947379013465804207011885544388009950776445441038606802481386134801199893303818450086829866101009066327464635757727934305207186044959788101526090382208562006464450396491188238682676759520173224273038241779479960191961420455433119739743741289077975653472888064075272038692457453267178257568394418558699285390415054268208570935218636720956702686960637884905125352003892730246623025842626871829415661910252330431280770793805127504637512119306630900192952699499854254846556304983772922781554902925461757735260216900431627777976659025213448590798644690848473483758891370864790431502123382067568601726593629165462745725598948387925178812497406285774154952662600009019093853317848549257535341780075578201573802741275601015851119150216164346236076594407931268737242719281743517310885356036645290069610187224613403287390962742564989346715931568897098209259719297796846639231650896948974207308452479527363227925684073303691398987135321065770975813522932143850943770584943109538002754715702898945609824375264732860227203630352028558274610799306299747132621221860459787228804315607445530931628215681491771912087986186303971624859232933834264253511220245806116990382189023922372006500116301279248552289149561711536562509384820858869522434602009862977536877957171611321048619857877290919458021480709136551241999314121281106090388536865122491511668869426368875571068222311110236541036085561419499087640498030356183083586490560295647596449352924507791756345073852237137589090955355951139641768267198445205961379747896625450111161237900399000105334119294413534321910329632583058205845106228460179673831110381096315296732392120483545057532206254362082612134806865057133921239203837090238584721467496400251697829999210276096438203831181414842969661677577879876072754237125199531926215873747872134517981418921089343322181323998484590824690956031251166948507581962781383355679837911656902020641672754374849065842382059726340857938810031547461204951297403724868325323698208731403132472949398959553232029295518006234894067847769111689715027862541110191246541656983213755849356982748325124616516464181308931238030593077671747435227960196999766908929868399230695778131361651839049189402083041006207525811567615410093722643486827971643506212291180036970777964189853714124107679305814302217617795083107942448761013588809972341873740164513647771858183744393554761916683361019875698339040856681708624410374965894696699890810976558336089582461373152204804248017959648799190153456734990932287548961860381263708895530727449475103447736155517640993751850676292212282839614093795292253223010291099300252258665186171955180511610331912858527941937353240347831220057596951993429254602987059218220615141088324899161684669768488616885122433268467103588257194057693926627096251178949995784647792014540862786266812410101839183943678564829828962218835844597330666133447524586545148218316790466170238111833641897214609766718313971337130725578998128211605235761059807170250663651852077898222137174849531385526601154991278149172368648116243395489950630552531660791795176986519998197352781669944535180418044457611845108898654825388895216402797965873094938735060961060320443947465849141456149103905441541629164653137359545143945045029159831649082650580766739924957877380962827970148616476234218649707502660407070150377521257954475932957430745646052196983655740265194232584228571646010586075701449912521947456160123246051245531418367610930409805618711113168674306944346439561520145873167168890938229950470071123391699413696291265781717289855538928306721700451522488975700938253165006479380866187842352693601211027242924399432208851370538639099080731382679997605475456433105368797352254853499276714768543778559107627011209326611965258909309305029383896764962637536030471896744421554740921226774049933213353697823197923958640416067560718007461248511216515396617969915665514881181364072663925959146387462922117440727465466657154269464339724754024098499595182514931151766436505654487216614837532131461274840415875035095009847942374962261211927176077877184353109436169247001535235794455171905427740068583207059265971641080952274720362192721671710474099106875229672248208400079599943152181740524165807347567390038414162595406239723567723569939589814913554476061361499043069789291730349972465662805462374065139778745757844529788288032888811471416405946776627188744012984665873578829575661909254196665056918643415852370917148175323971981620948369339089531331076287923726335011105573548803073033951138488734283797411936190894230788408415667065749264877665157134519736785487610555192462419280517066314420361378446610057885311730827293899378197070673391991017918163803634204227094416292349846696551670901284226829635023055999640973030555645402188262789345475130312613475256315671213913257335874931901004746819453516355533887989844508318907401349352488311274720525789964620482662337365644155408990605130982707947609596573863795890746355506166030813555371601097484726234653326398535342483040077561216354765011563884552019239800303636412050485668495558650755630156303454919478921296728803071145115723918641981864703249451075376595795224054825103470980433339928280334662327597372075652917537249717086560143564213893332826162025716619732522258557154845642066795199368276603857531281613884543072480408965522262481614054750992855954423694671431226654539793302633489162165800208671472860976799478599258788273384681906324776390994375785557015609444715698561221343435583691540210682047053134659799987308885358785636603873085940260300858981715374858919966831716590616843791533619882333384880460445968491256054478143715320825864491072823844172381901456042867228233987954719131254869633277656934601170607513832525670844699679826827638461821436995229143486821645560471940465060511480367312182449423039526621173364044105911292794133613945473872215496136127961473240045028315830922374018858399560960370700935651079020792724456842881798718361722322883143058260639001375034394781551237201950712028498216371943982728936311377582375982615162183784302163560758815343474451468854605080190873621342173519593677623693242000893448473508953147665852152785471111968432781265990630345258785849582640329699470724715929668324007976478671349421941468684040936016397858100947279091352572011116927087148067558256578936724589328999647959566137381114966890406068469897607157337161042686651349820891463528979024155594300803680274386730407243856171956655836523143773292982901018028126218472133004622934643829370353483950214055494803434077507303762486903696291763870390852085361289690810172640481001467994202178419921376666483952213701249495418263107198075955023393959641877810934484274429559888575312225387799434480241440087738962786827058585661843331297070725294523091082176033141017124945071116711105697525220692842155780588242727084158415509139923169254426441759626851597076694765312898341225304901156612995690195062889610935357999894086090861839183442721961356881118987047129635641819806181150700062143386504580291682774853789223905656848465691294045825453411781367536756340825807394715184060391542171362350919673914966486959512022246244398943183736875425939877830496417633250174198412602541841942723178318932742068699331701655754574317760223015161002645514690926171488119682430909717254388193829214314376661158448459391839909179238468969503717072793782154833233642081713842955237755074055227850853224619329889167897666763549541632106124498146776603833194820586600876508269335302722502348288348502748696298127066167954383181453465880542016852784569876436260455235678178762556724304370959874357157047028505695648192510894200264760453600184602756894494073601901708973457621469840717331909534337802143853879741030506997022116911845972592963789453605735015138136060901641299245918106769096602457556047698320520714556935531539707766468607659637527848640376195958188473571317143608626641690977492704486209955930941032295910114945485510443428578448864636363814729035337997505327586854186119432150679571701724441308724460027897741577344531177832689057095945499288848806540006487720010597880777231185532500695812762525028951815610010092426491978860828247564801640462114416259328182035847808839716712061382130911262174433890524859168972915982858883335746739498594304382631867788924553944787181469784510644063384095994202366824186827641328311769869846055215654536048370902582698305837596841968235777524600241020481826217725427623421323113774370727146470693279162262116110287535310683493134076946066294318003314263414134403830306127012770914079378365796734426677271160205593768103382013151502037527828540756272415677221000044967964162580129499172018515747845494904869983625262132578892992814276837926650246684534826761770217826938299176085188583916086119327596700067412552572650980593485231528492527408358450838677687983732725779303847293534466346985347626709032979247528936989529780697221756422411775308731118373917271598818659759795590966721669327102087240109226187255687186513443449223588865016069974092162909503177715530069689450527106563023955303945588795640351807442006105206571351905168100247279111156507171488244427687656433170954994675938462695437172185014926110157293956961806112391352143061835980159629960477072252820659355124839114750211237085255934203648401440949703048289081555744867328681642710344354126971187984723027235349586638401476394553478560685404715478441757663706569911905118362475733022384416959251684407519009933808849269244659670069470823369402649393581797884402702123680637717293916705105367410821020529097402726323569151951964528249197935388774849517959509612248723797049039540982583551768569770865107526087236033566163611004717471782206967373876478201641394502698625315131217473078056870112896551119374887152796406921387380417402946927300958389228343821897261216357676019417954343535093116967011541929984935078909848841613331120860566883494451988336426750974455627519441457949514769550644472064998622534245937812052501545586925798928008820606054460302636849577707707220566281640186063983998129657990297826456058230617121450458286329592491371312597538928916364650582895912862939012203379165921782534518784348881099854175006710063094972753506221473598537293935920814993350075502297016585668920767395039166232314740477535891906672281063135070438271918373746715906771583561509005093998602031941168089299192817763643563462512325609783476761842668453149915976440182000372163144108130417449700169484987281479620228017591239021019212763915780434095418579877989067348015811115229468668161291535189177411650892541980943992082407626453498000812190500807679122575115152061214059251407767556901927068803866892880830841504098350761050940320535628667283261776646465181962589834198750970962160227097216353785408475577642812101822006195600784396166429747346804465890549866702380711227678017160350795065822805326444353269658333749400018780526213225840721379009625000463156947115694231583682028467866241657173365068840896087290933488785377072840745095613644998585772585042478208434400128257884692943353562356005482312915649412695938252075840596989837265684534906564586318459241407978366297672206982746003251467223920800737756184120541162183428210592460295350670492813497845876087824480562831497613317767487646539597737933255977627317425753189093162521967266946486417526308891515086436669918439426298765359953505275738701081310089547097649378525945718213342150276908344923408354744572121786742991214041720053234686752983395280273346182351334838620814953386207018027643057827054471814077718169589078536595535491668084110002921801415371794288257984777814772497459440716447680304542487187987425990826532953435400951467277129614159047223989769588537003311999828017781572476963784719114684220081293412733404725054483032557059458201724369114870307303647728476528018610167062716568204583633713369802884032521353558386067727955004569232305683380339402378198912975488904657142420841570372926298912106431129112191984088130002991840631334296484779363632144876962883086964097929561288869201939119976776555743431478333104334162928943085339668812141704860813482159995935896085502217101465118506670104032243632091241367759955566779721855628587804200012110054302750924386408158917938154458881922240617764543312527956481277749561427707712946914164983657846072926141775682268183405829151014881767822381809600062781578814459770092137353892225258829309277915291803381029408176411924230097784734684797887372554344346309692713849798013710255892504013012341558379414025237651528396113080666685171937354501106489517848750253564372569429408924255208635681975217327793887958657659692040042637638889798713693366580574674795198443684663362494071209001089494866452152678517461525792177426273485989601831284853982402699076858895789942768114629676919920203955145913601976202420964313472097957009870644909590983525301603418230911727885095211058474499585232073034651056177604370609473374533927187969328473820048185674024935614862183674887811914520653596136259623406798469314179861445480893115339509663396692441239044399424785291012320470949763918053016193556907446950885215380771079205707068744044137048627999692368465799548725400732342697653870754506525911091014223251936606829890145726241151490679582502109893647292763488615823704434440872106989445819690067984282309621358938485706737483136779200944654148929969640314653285351956692513713497993039801112392513069531840126518250757335602509017748389393768104352657529200571737281652687771343749915571680088303148745097335505881633018088111851568033210649673773219179010396188032069846044817827985117930556894573490350144142358403976311563358621766093128929713273225240334665286061940842923098207327411215240309544472147763009657833023850065840068640059141384622264699615853529125300797336362106837141510428536984313842418545441051931698878433911708179699953558245566469362423399299032774906042457734420654333411711093116625620975707148264162545950016115247105807387725961089261577225367953837979392331893480268046193909296918774609787009332313054510656967421698607068234157702544552250795050665807380436558335064256673020290445437116725486033823979849018997197966093703369993341626135740440361965536492973322162124112935239230002097156189152187136602197309679188700684576519220380571291145676737692024228116723103970347898874189179053699681627421976680371920570906169892923621467867232007001081543256040156396788701445014352431413392872811158670947253467495948802507077906122709905035744098738357198973273652096202146598195329448949089179467689464563509766678923166919735269395452828712510907899298289420779012643079575388050532445726436043703940016021863001583898517082565426446753665517264478278351541702093908795098025234674035150830769845032956552142589517526355541087316875012489068069173750876902159427079542687890973328926423187897020687528917016330863993653874127660402450258354579341755011347152847490257649694444150502285550823161359607227406856642853192357273497480111452421607832599081783306261172568560056041102082741167530971360605939255810930556143072178255140413402130024447530319493965338559547769277278865454696490591599158758308839841565161109046080149080651760161683448081330895445224248719601163478839039397471691953215203881752037332926731861487326218136583060948173028304098243441846115065189374925154756605028845314292021739907111330314987510482646277981576303018873245632894190609061068328620816222372123389970667923582840513712200288108329181396145700621213435048613736080757553058475087306229732258514441535677027779777288677393000788943543076661917831941218812340815532050715225478290905967262707536546968612279326821789860049636663391507219981001570254899530840859354628455988134879753367391043588375487592261209701210639523139531513556191753449321504836116522479120389012140086329884083493653576535226662912924694970906674933196269414865662785212736371213927004582889726823777497374889208168495315258166866541197659906004893737654010541334923451829389969691292578655612836080160068896638342023521427053590109052238361336546397952643591583646091693927037272262833553434141411329156381637602528642001874062136638784015773665612763394422632310573794931597683764124720281596999369212483610276466088716513751901199819322585284800612103303861533602776099913121649911802755141710947161402377072791754481082671845139354297218213816986127556311872526440576366950608905321115687092456952219389851435033080753654245695296795124149890229518529836633623825977670037027738452603206688158409744645739033782740640282933503314344716810007063257229425590316714931469635485314729194569270756066604016566650411382808180586015978375916004615541193248344012900146664016692263028453951000408655084766057056064375043210694584569880782617553282016334938570123359621820522847849885029199231783486079006575485152913924162330663087212918202557601079846678893920500768574327935398924370829711755869734086326657175983026330557424467540178048758327681421289197304615891961295958101038507105273942628326090486051282923881120587989141826815756868101289988840771957988283409297564186407194431974177248836051885898568080082105274221361523951018697225924678609044319523867350998954062150278374248468977022727148842809534392365858364780906054310443606455579211574066616633680671559565214746124180256775908680314914413854804068281081424405095197098998168686927647145152922164955624852823541763374391288820774401036923561413351739673836662462738350248518436205871765271354345217356185101823324750178035962011435871649013226668033923144942481739538628607585813116520761989098272352476249002429745489835747750836410205108162114617491795863193814373115526520262359581795733353975239830928616008164043992869078534658694629608898166145190477853767095343773679233985277853815783793628527975317883345231241455997316538929528950576661285124547440014788028833426962547399904109123284467814646876253167438218920856857367894561584241657355996580727502427060665759928715705083124334578318898421268856310673985011421505396598826994784807139752789175574674284749163328952836363214612356857148691923758942585447918572812580008164912798200234244829228772988457329973045235909577396585070110430061501629949480725437085447216793195828586521249253087449200188353400881512500794233891033467109183337634725823820722294026426619131974188090560210522758189475581930515108794687427550596333407769656384534505379631034049579221008236792270920198752942056179463154551240008763965246257557412307864527373307431302720425373091002337128279095111292232774359020845977776228941607201096515798865084071871202253949102368599739940021317207939763366900624256198150460532338034257713578081341765140641518218021797147556725282812935535170223991017541783851726373120277636897645059369982486121022068581184480997201349546105084448414225285855848884130315856651236514686480058200134961765116582406351661216479700942118925466531023870458754094106285075819349431388577370501859967435448755974083872706808505823693664950711670027045652010062977613346937703275126320058110146150725497596492998304880509448980422977383034969888573787929722193521616145052856363200604879447900934270081036489800475407631491713678504390668803975495069247653432874509708338440367946916352997513480182485950080606204194549052602426195080168550463014919781122327341419285214164362085064633497602053912569048849115951394755840422081816335107435569831168702825733846829519153141722792862560229917835856371008528968044098331740321967024634248065176194169463229272670568614804642830313960971471571000851914651049782517858629652473829278752447872313862042524472135658681588113665825128198029528605536839611596429967026500153432650692384012945991590648040765245002574737401610462506431636461927942612196042339544237740140103447853553780391942961954207147155110950590045406033547268028089700490742183211180723554815438702484325453692692941068317164013502910185337406951452920452572436642651684219312066238578577772903731822585341950475614630740353044802758504839553517229765945292694160667314858745956566483949551501026720227457335698438620080143220604643190843863414918847329964905680052246802897543226917171922667447740897517063479364934390146589643245901824741412364477370065156739247491509977944145018807229515585128794439366098092066756185728744745621377792368987918253266414025506121366125368579650459589863835472318875370161413855502648088106413177697132419286668500458600845466442005486940922664931526811677523497505331769775012057374210554353849183847177235475528099643653530420231011107725827477070432701097351131221217560009598459624992662417193459669842757113735832862865573048804914814489668924316294605261767279551817010035102853965837901438369647809429352926050062880294729253924591380177959269233697995986793084703613723538105740591704269055002847686153405779634005790381123033644380801848533805255438512222848105397220472709929153818396221721506376931876096913125065727322673278352508525636610256024725797055595143417746300273924594230011941251139329378091923186349889634538831861485433238008360704681015938835411816430427590457126462107096462140986717859195473653882482453549414523528558045686968644843203514197706140058263171756330593775248843073970290142128501918148273714496236834744302825392418936456037022380291325118777525597679801217498908905669638128075821612843248598961210414335987776909796844589207546376905533649902781955980210183173247176750749178510926230533556427636066102804146880972403524333696262115174103089860487800363676886863110418701061558880618422131524878584364205878413031563349848139282438174451393161192041111689127873612919020193754990978247163619528254546456314539246178441165306958999905661938225541797429334663768183998931359648141273175306145572122783010029837175042062523663530365654734801014742195431684951531893129113896837132818016815549191198691334428760251022226745238796877974086389385345868102042337428680015467641992127138665732378383764330972596146706959287096830295049294179488994748270388727837016996835925330588971087834066091635217653830435106300192640583312694960572618323809514246876308834606502417533713543187192194758292172955727865922324938161860382709305854657771417284131666748412869777803758383092885641258237288665106398576581601923721950702407518390098214000986068557456151004770072470621559868616870302212127887548247716614080381158043379429763374241123286441172786236781273276057605560352287657353884934004416934626821288290962580037984913810361095963627879271163631839338716263836688078483789991869387208529845246098877090437618599100019615892227931659281165922116709596595548413648943116552942246440744456446187979158223707265583722223722403341304774637554463644787115746374570466778572846944456062402076384730801495412586301399669213085179815190876026820075579937127034359251632115465438650413826867725073879620970065216116563645038966100470238482512688300410537496726251369579299968474338782537011147279097097774620385257809056153767356216509551270185256216843357163002001140992407977244141457685175560604935845780583277262959326423844427020410618110332881742623128100381107967705923533172682214109275281129032557546164620742315740216759672306155298771490178287738525169591845738235395957104586221654153150884232494730091132397068369885170104096590611342046349156247367046109270339861111014798028784391548302423704241316083880900879221700596198984065974639520402937317817985584757128641172325710369021516767891194252676630918877922023451724200905314913809302875166780653778220893305499244490419707361481347295704767351988189534878612145203808092654836164427922929933443556152656232168503405481501842407564919002686580213558278297060490689762357466568193846653416349054827188010785395227490171298461194597262194167420291965480444481090113802145205353091635634349475733600045085895958629850691460939567923193080102678034457460390241041494995436079442723626641768969111659969190113924760980940541843996878422400873161557543538551379817822141162630766670907729947397717167766954445851207490200279622337792952082953658068181805494039636742105904782411832587734231855064604472179547898177605054182366210848124836513638940667897302414237115069252999855956714618174147854672280984783365034392455192651135389344948426591159934159432407318992423942847205086433474621345739834250330276637847460688050573129682010259241859917224672361503899402154580747190066384294760954583775562087060820966101107214198065593400101492131811901869452056830118071592812482582622033435018568536651020852612251982677172889737964793425930909535514687747231191509891811935216622030405762481597783121070570931518987065047340660003489498504419020626679593725092796579429448906473417700199107265547617423453168347507252636442469544318395486783286341750843643739101462022548927160166113483666440763973630018432756437587266983183407021965024827352368551894494062554627973032681128932372724711702276876855500065728160507504802308074082913872545021815508473117850483955567269399842466990956763702152895144440068082813089036764204083530034374011750465576343078779544491632012547734172098319700891969779621259869622939219074468808757917935369402158974948752742101543723185952235767741844557359728548825208430184679557359068489867424185549186215437990821813007590816931189545221000032475355126635619398767576607863995285194493655516575467171851295923730597605083502098406298530901595216367649191102526688377962319106977199742934302586945776093225578806139714958904391067038658848471481417004290996165928674816154911680660429319765922581543206154221210548890155837134646874345054501222822828275826507047063122520623787533414584889411734508881262132313436019990468636898766904722514999789832384205228458675308477845180596157127058829817431823821146305240908401893798628221379043467993310990766639071683237774349824878543048540740512085723717881232483366794010344571343161083398154112736073840674971463325227264427446452024450455089077653912719984908783815767745052926432657643800998187119263424476252040521022477294514532392427411044390561007429519564329805797436496248480565963434548267922742118887190739474522406092132850411484383223311120976172166288074495779284137865667094128891033723250869718110334867415651722756739280738213238121107771621410354732926080467420930649579577359757141729476951163660668827349103001742080397275590328514773031932592031689590011966103816023857809059003565793049932804951090355834245735595613502851164983321164184323824805113874949840529703668741146953338991240174917282909958410027634026368308199898670527339687698611355305060950025802780648892550239905349741013643982279145170799380723944919494004481237150806619491867940570537191021117232625620008628611053618084999020845824199929403936166971549481290379490126395635107256609064623900284874082005558763609430786054562791817221584636299503165697044855340674186425774193364979124001313277404873472327696469435493261546480172846957653089181388859424191162814502803009106008471131810824500724691050521414629238353956760895621452665191342969048221291053877529975804075344233911474436903729879787548469723597877148651231650199475521736748722067796481466742046208903412215237780665655975988661915249302418796589833353930510082426696416749317287107923292967611298199441051710300303944142356887448047932530748878320014136990734254923064385012598787878340218373391099219467283786303551341831526452182073820369903944338539755739035809825080839478674926267534185451877577178994629419218214949047123814181133197551389795468395126932760875918885267637932188385849952681175111663108100598209713061468275353977615529327195662242783222606451288902369258777537887272174833233982214323538215856113250719117382708893059142987587040148235424117342399142747595622931795354631727840926542951549288495876638474865804896909394796472238366126241988734063382168548440296878134954487929316061124796815912755033456139058712038741023440079658016736742887674242909781294966202148766077740426144658210778794328221505594876339558912993152646367033606098638479954344936723263221918714338535970575110659227093161978591727777375139939699878258420158626198562176842992208906694059199833232253694839321671857232607817777931805819856229202224030455889017013016608891682552151748995725757436357109785209690047954439434073268164775656495183765123964887823615194390172001539654280698157103259575473862054166255440549903989811147344182360554551572281801047993982058894833425015368408216399974784685610345643938571880964695276062420183143290256529211451415710570269263113102860409328679978754457656543964359569436276176845186181031055505313746855210947172917635409559911301449573272453849058596840778181257416556655814669740715285197218793188772744178829273814432638709992763200282561987088995860859181569216206298239171014176872347582114315421018460905386198596580318310387202621135396092647553983253337301492249435828010711251026517507456320692095659964255497671307394565436037431410693097675250341136478993423940231606738252952855603286514566009601135837937961346230034058733700178516515005961700153756879232055392567286653356146346294066469198431334369167817575763002638509284836565721214632749768590977959321038548111303061695395714056964861225056014440540125563156039008965229324157697089669743323536933076225345223133325176999540978193257087860379954717082184175984527187400292701552146613000651158550460419520679410970874569503805767454120029540041508733010138016742465868613608003492030951889214385013258031242375920047305545397798615044319810651912443489634284513988894908718201403699108244361236897247795169400264578544552264982471641077194638736246610199409347281937465585930024940263430607510016307683619966362412996476980289450593606260499101737442332276238695966077522782197206883324200026902326978108288519141140972492736390103047394947547377477496370891914686536788951481899608759717021952938318703349939996734825459176418010909068255744959588516152137170790470863121938244097415432736534618046442332394032695142958203404127704873976122765648034973225199345488416282107514203534444345161424699436202692357134811900184290148866426962305308131256083390580028340864412018231513397541000872678672449067516664631871315420380338564179523752418214725556714955437624993545339304826525786302145035285512454587074916439789279543717845945667640511041297363605679786199495755964209571904416858154149735979990766766492750503539431595380288949238219150130410392358530352575935656629777191960922954679878178936532324702036555253121060186290625507411906460996844074058245375273837520957997362770581911941408706387787660207143820168734500803717481298692716318419093672733892081830076423906612003471420222008398273939988265220194581015494405441443473820395205550235840287114464121568574678584767992040921840176846681647562882604727588101782511203867274409323111575334046199766219658645441209574188412919607102000771754716519747490846406069112968974596119899698477328174771386944284347019464236989668365137489095722213616310387545643037149379580710530575426290203842751372843763073555336215111248323561733751012436011004828762487300783517371859849061427806310733126176529908810953518120080689813930906099090608049704605165904478071206706504360089161819291299966447930439737540977407038826748451192547594510773303758934727712941690341637687107160993769675890694233309977271914863442597254263284615091796066889811166768887549348201899832658069405449433505360313750752233566120825911835253938562115708906511086038249705969615486100409085432307369832628632170200133077796416180293463613783532183324535091866167331170614659207701490073852664265822825654732822314339552447217102007295818097136141323346024587406895338225713465549683651045812619721000103989645097507537685759367802720476445080344598403798321240956475249791956398144306679555008055522941660436851373722450026903240368897417293293290215973109526080454025025587895660406870097726785301613898833236325205193933650795507036800966262719887270821497020499777920623890691429221738696957558493479019351433735831227094772465772882788575302694669332206260268185752076078585451286565657038534897015046749288612060659018964657413226247865329975361800698341845846328591228676114773222965179924408676782639173382203222845257841284691419833642025217189767793216717475616499480189056468194371244299360289966385504311976332003788731955456495527037256107768937631181829229856156514975438168574635520463729064048303143591183210716103117358863700882081735526193855299814877470873381644379036428235487578942729669635081448681293915554986537280027537030137264765256263208935442481259389351791286277565292397943476516463355096507892495761550952275094491705695411653136500810156337151812581099265232338331968793655426850004509239818788419397294836983352269660593535328146566763353402564857054263385790464154108710061875356002422593485793824200363228452745954425166734670562886053211370522077387539107706418268621317036819453822701473154517645090555030266045800239597463433560293615857376278690028716544259527258283148048094010728412670769495567255512625209790019096567729734286400543035928783505083870166571957882716123865157828804549156374476165997046130053472108344302685725530650897410014442656848227774771062728734814807822132703268388988499345666397058334511427898773104632727157881346319553524638511717780193611404640116227785851925388687906629193438772628989633945429304748195435635562425123841987461023299637750516565734740271930119376486226226774906699780594790880237491839363721509089909688933618424192469541486822340581245817582228542876458456079080214917984636813514350116496490778708592823615313586986776105433097880245691130869922435847482456879032116813813857199734434924832177173764146013649050683845014781179667469397531380547716892618166336124400039804557646435949766088909943815451834437464527688306637092753573544640546072163524669920730382746557500219896967382930257903752548569446313251484168754406373224985667883843390128461710634691416084162218120602756669268422193254114636619206140320323449195982563840902436572953055078072167374046509372591370686832420050544400141361279063708193806734954033123010496447082927001399149736298139520680900766691483806816863181094062689318167260577304598191381451788145360818721661522987241903116782602807329492955044652375435960121379795889531285722616316017140951488086975377278652029011268260732656570369095389395770601841338058634741105851567666392468357241694338238022980937354741351472193610864025649067329722420884916822917876688692213339691258765756510665223932599658396518116887278970549021482063911244639324744986628241749943996214272625606046481400643181285523541793563451133876991909961901715066707276013461446331535649635595121500594285761339487137023698408523714193198076862784573971518131765419483288620454814724277606136395811392919448287258614637367742626034052719698389083630663801853187225971412226324661053760996834783810782119421412346529051424867839253296081853291023666411138402423088202910910688745867472311781625492000283782282278440775474929506156061015914959668413686706040822601141828259662774119504947236538816145194367429835767480645130093033798904868140782778986697847480723540681766482567886548491011893560767748704390423547353855112903795252118061116725529776083948377637340587143461689766943225581586716150384363994811171035853040482554058829606496418514345956081553322926390542333008057676768747479262685004866398008793087938334711548755801723123303632492367645046809104399032688736394991773737380200272461167880224916976929719451749253314112775599837133868487919108705122642119288927469521611924847242001015119824491435538173192007238907212778494995590082920456705498728538536737530491292908450556685070613178658736162429431246573554679465590043304574667817126309357727436608736860375122875125772879003126480192812269823967457167947144406701195128430670424279344147108644711854694992525615993365280864922110561932301792553123863891420842165676071748781302017709239691030194625755434180406423929847548920612290129631227970678055084812932197394948065792967618925549068218256905610692428272939736336888724449698052150989261177251028528819461394361291758599271747792108690425187797345205872174347137208580064004153254625291123850624049935078366064998032830762007112661541653583523663975616808208468770341756591167432787926447908783853786355941563000792332386834672112326854915446219006285751537557079660617264408152076924216602375917400961042696123556125270796805946159690899771905388964782447495309946009790735811435166834273907727173518523259446703679319721300895094010971896855547461256301766780715061855159923709231611694950973870763030995967657447547353829567096541263061732430770443663030482974006026248112243627359176774364957818579156467650312533799838486439645444800391055560740004168110791629886014661104022923250844057182683286214342887108447720233510370630417042841553860800376356865831491371275471363419063304256131790663456193610460530261455647267992864387938588795259250888334639382688137055180849572150379852877379404205193760014855086618434791638625432760226887151557374210037484841928041246766883413041997969062518586255929030542900806104445160814542976599825101015886552699863493887090059222667671603860769324686523610980368841882615949480536795120116827317268800844828282962596573310301180010441070928790112918651216216197017075857887526634931900086972343360110845393220987378058536476620061662419310447273616345498541749934636942340000784607811375278487483940232351816559075777232102995921246666634656261880147970870965829791270463099466256569257151444157340616036123385039136187838779590544823445360015613498970355023275163708677914757728984816303640907142883354802038714272843284298550397818709131374201815015057892142081507125472334327829553048954713975936293732269491329120694058246679655185337678047489400635196624715550286900378252785988927040026230588812436835186279833807664941990578098865735254018059821895914612846619448614486148048184289898787647968870503606160717437955341037690129001093367968347986265773800531731102088254288133783101523995829586758858531414746113626096365236114990965641576508179239394926879603203883212074022259885893130694474918149314735077105495938046783119179665717690901755763394356944198601315392866867284013894082548392874931784201511941011351535717409342232685991339166952033705755849340958207401693294428159597529486923440955494511920208335523397667623323592497282782754250821731080522479037026477789062434501868613326631046492059489720756473582031002849589428631373441358352203188280276590041607735388188279779492347094963418785914655676675698598168280883624236862881127489850913000935547563232784518005201592576526894318751809523010249792363216848778446789162716202154831724658489816513584856428885342325231763608017724608031331685308634293046332961148156339088710430803332456371292184772424848243446662927220520030082998117886274595620404388212424491925375094686482973738474084278572994292801355368525496654130177389719418028429404914894878565901707486381644467724278135947229368866628956343157709457359987805886052924367748388234883955422410071028507102485909526800771196805103563194603399737146721577530781338901590463101441065033326585011669642919954425766059484680225520518535927557009331604097909922079466483952964206388396844120486609277233559160145951244332073654847253646094433243072934024591937459253101267310553647726861366468445941803878876475204920913873877575037276984190206964433647609358347395298485026074050623435105206371471157516027863761548465657523913566901186156813512803357500956449025008213859744307199394047721719962723202977061713768218967245156091782246223892813281982466866823978533183538265140232211667851520808830077102466399844186123888330167823417269724571760722006696055533872455496081867956727086075314347996442779905385640277485815770396079700315124657309471858544144220876050955713534278282733967039490304861291077332053480626605432071434668532965989053186356938387242397328681270157859208636765430188957181652787031408608663860382421477315450310818422057761915981579344204250548544985181855968741402984843923509488217719198199967833716868430466939865337943373152812177084165011788192143632280029272957565948047806472552652660180515914313178605036560892817403176989210509839483679450394554503441250749483778988932725365836068499425575636727298116529753294857992957552372319517270370099678172717644285491021375880053298323175914122795070658957929869074678960856928073512095046515195132393191071390826035038383121942723268073075619787530147895351152016894717797771317694652722934230725437986582941034040531894889916892404622231203365438033670898289883195038084595949843731090638097931560146399778821420222277502412795514804037207429159909602501173340846149676858606375426722138506808913522903538017636477036460309554382324501310736847145982094372273116468267859945028080842289531161419928952810930842493647563718949160124166696259975376798378489372626175329381557549067230039521030947968771833086057325162998980716413580589347473276029650266268649632792248396601435324942808867222246425081654318596195687775342709961106444737471316888394292186185915783382532646174731698658277362416781937234493753049854694742839192027034729840469210423141862956128668734925844332680929619445223644710434155017723728053794678592128308321511704467782970774234648540133271460737263424663113047665021066722802329264347161486930808445140117885820882457678328158856976840199337053400850546630819653388201482933533212366456290344832916646191694274968245771796102433822819311977053716497072808875802504283547042708542738519470902437664946373222916771815446928658956145119072058347286118982576865162389717817373808404434071548059896141515842819051856693350301398713913066643481347704436791115701089624082974769390688330895715210553488572786052201538853141460214807532437712682699477432930912806501225890417591950398108157458939494428515398697410508642712332080343998826517874063319903799493300540439019569601748762706592073337146255954961969892590953733265107439072214918493009897130969606328274599118521841529668574800344675200989591899979207359994918126335893170860849095478795117873095980815109933004490953897949169956270009098050518199811053433704435477201022007561172696876963570380165445620366910373145548164513407956008249816747229442897962901486115580426309881592148231861768741709243056331395633107640428142884607813821900268504196278198818358417242645340631801588371195113287476184328579678581723805535137217967559893504986317680814701589732402220680932545254011061409889920212523890204272207985947193803678823457741226880987905959568468255146936238492883799174479231827574265512980286510915267121521121480782134438124799142428663320065233392294016559911865523017779867658612318876423785405926688129887830293384725781458466686224065993576916842338020356096491062542297850836057435594394927621650118107696436530682799301378229510142663503509724814397448336869325955268458405076081499718423205730601080288746829491155428014630923068836041980470140629877542699071612699938630168801890639108219080039721872289283206606979402652481857029905323082188581000398827820510963058968779957663850484987515655963622859462281966927746488349685033037539587227309938709396781532787085521522663610681107089947647471229591273416864204361289109268511348618981176703453930241264383629565394385355258628825333221894290293460862868433210905311862879444576087364900953106469216167975352487637318738941810016585044288425717550947458066824914185816745330471849996463498690396204863668747542485283780042164588013830582553635892147902960993198263024870615940935847524057622681321855235863160506435863022425386121647073528935083784675258093702796847712473663181735735790907866972148816731732910169425212550636823930024962270798766786471579239594731078445760307300218041323149134488875196320985535923560119006080556783421185072319159203304362647029641022492885623977588798234462743267979984097715541888595261100233954426583896721056271919642608412385003761063961274931262389202834479755668247175718299808516058348399607465047100215737361963889592309418870795022587296490206788011452209918246694961459974007539484243199589159952836384367018658145242248024831561944673930638819129387204193174300601938141527375724521709965830643558137405070399385145522675873180381757892265195280390654341550407322919254916575594706459594480935661981677823179404612285082993086741261660042129071452822692691136589965688722617117166785915596606051749622959064739101967910784911360031698201890248675617647975479341383018900690018431105382558400269780758897461441395869339498819204253128224630891092053008689633856836435661249330918886400228957195788829537607719312339910430536934626547027249044487696781814749017588045758332856345397141626299055133827694878818906463417578648730712584491598285897398080434230250675997648042669990831044924953628385677529516580024582008712057127023825369787778178385253424250139484038250842788500408988150350980974301225508047284539751306541142846331598605692553897408224457331597016337730766343555715100318846658223191871761163761046689075433604616276788823836871964090903128196030827731829720643474734186045515425111719276295769229982789598077312293814693043198916650242686552650556877917883240271998672339265682618188938064429250890381020588074184976619418559921272207966177231492537176933012658086154165845032081279227574026368893853156123256895226056022948845841648523394905376017263494277125887564728219725121570237334963871626819056024325733920701175551939289569984457538070816605860160081004226848619117887534330803246427781507470377050513332709585670780970234411258886610100777819432778829972699646103786926158592021141145284576829909652242554803007297277833069036637332997209772410501665268224800127717212824833681057190322676857664309876580818820277027564574445176042017366773850380093788120442953752588014572528334068007745948172359042372501986384755126221945674649444579666491229785026675967588192101902079818394107887096599984510489863510217664397345945751891203673548521924248312854828569363747729688099188076428142582725527590889613824480439741228044363320297625000803135090947982727278120742572033947118140167896348962409378595892377848116707911777226113127937261715122084588560359886407088475839123607527788187938696911935891668393244225877845391136741488063609574009503098391543365428465145109719132757865091479763690990074551313397460548885856395814585362735065074780213025292763909862734150441723159484932804127565261268335270400658481346005509010499233098322882700790131693061359126604572768627277400000335634215115540298598418971316173884544129060710855778283443199921794364081373776068423466423709070440275082160975492212552147031204311942178194593103927855008428842501241288584100814087124586361757463330406962202401955817261247277994252993516887168262403912926923844250743457317414887107577238031234029414437849205756128912235262036250334139312558109245091434309226485383530707733241290838920428367579357757971961259714841523792189119454630325457434366129982723437045802786402611829599401178144337152927236083329199767885846299595052771218050237378537447932522813243493384158315827383638889194969530068089018020351607102756640283668986613578694865100738979618371831025026879711006917050873871620936521000961146652897108243167231307930092999951096106365917209035010635467160214254158605260710681179407899330479891499762486931083930406194009281387293252094031659230958349998436075510634836409796351045632754562623788196293565326909524728800067262007689836312622461011229656667060399719506702064700229836369735726434985074925547842500505070635145468832668322747012718985784991121768874390105150116989600540633278936433960039357081266652055586771640239701699778139133276228463707528008922757727082157872391101386265482140630162132000397036303141989254684321669790979103359421526726739633382576374379081392764155216575193578791003822545485285439043446380372074636985473252870052997846952205151960101537283794827887373001639956202717026094283812012717614405720559637476259835585488290041102583311778194042314318822008229426918766478720914851962962919781130864537720690788300680132388831662850923898898074393991041320370471651740308713450216044468143090113277142462684307495738569171573558428963434058414556030092306439437562816336981209324001830912365671000295902505313104831338857223850742191887764378972381376144545689629606639996516183947156402211293165887321416848425980631360331284553063588431019497859885831086606448024186347773231238597242858405432262572602179759228876705124458647425016526988749703941536038545328920685814959110559446358680531138282193369525498127183924928617102044230117953289256332075188859907298347664713308308083804721039523086432814255107443092852622918096990794272838141100292731582516414219305935387811800911138875421663978978092049265556636317678647450092139697206377425156706497603602116553462693188565354836882925969951349555866159407605348663988658412283268342399752760846741575406769964318631259566901439717042391241770348040309610541580614084672727357845211583235385768395105827626513171095023172686611820795174329336523101027924192384525142018412103372313322590131169754904025581157871355636764571160281996446093227075249490224438769788444563031092534379996627849405507994748941585159617773331843454262143653505313156525588037098552640749071008733775662357352715578501014216570299571818964444846281016576806196949837032037948829473669400534383791458514190691807165097596486490762630520571887770174097068159464001299593931693456854160330785625934336086261405714641523099937813825870811951328151378881120940518734521916252646734938369630432181653642670466620054813992551261972929219687757430006702492250661683442694786894021994477987731189114173992180366420782028746399857915488352172292235998647560666041655521518014112655316759376175463923388839209761834459814637096913373667813605378276125077782272364537279667693635886682053299776090784998081549877690196524224806807345565438140695900651027659058641696557550806780301442966279843991865743815403307524174671801893627250368541621106596136780656255144768844012756302944065048035051168851489570197233512858292584145222972017112071636590799030877951377461520954654757128523206454262265660092370480022990461269051469830255147988830393777747865818065791353871788404090028295517882523174727133132589955951259449125651689058712767080145850176603023445506098305659548125568582421565033345003474134879711132937896005629841919777156820616886234459147991829391997817948039165020684157028102191672702483730387447433931242611618214676199467354033605574617658574663952917167682109763968503538573776330890537554435061229782127627436665906456289785491496426527758875696497717988886236524218862269080140498526970532375603579594701732519748532926725930529649930194122062611431226102356393871079194633060504799917804814870525697892608292999612677490585012072061396585753841642470700250325351073800205473591234339871696922525604222625102308981714155246883928961634087927898691439238276866780035148573580202821656677716274171944407744464628143731417706204924136462085383239743240702201397346024088080706233000620767776398954602622276159270324053690108472536553271549307937852894891350660604047021452766615841512886906152705674641725799759924720995869895048997791590079530944895579475621346454881774220501660722534522707743027208821787034362359958598346709846851225240018769181486901962038669873197339297713153217999397081342062139811573699387714045060395687501305979349262964029702375117056871758650460096635394478458439676722419164606916595410410183455954499019058514881919981009603531942876754838129812393886093523674016403182371943783698663815036442653712016664320138772923337146878869464752958964620620105778121795487588775585787074453778444120658429047005615198624450469499808710229083616296161006698075508509856845016049616643044855544425728258554231559274745321171913828452255980529303901096820094307558989314931855140725800262619731693180931195211729771613909711051441537711939763162674435707207990637957472916144720481250361402109184813814482338926761353936819251799397143220873879563818537180759000088567368809889606383168781401985019938573729056172176378103068342911192301688441171929851794919771849506854159303196616772194027227104524971165581319686845417321419341160022919554412426969902525301869501466752824810833821966844382183158020168309418752925178937695553960246536126957778488137885243795943460195016967121635530296958515639360476204732610343986417028943342196854379992561978121839954605124937161350480330710353765823807238818225281947901013824013630268899961794637716439847862563256259159844294291374107152609059927792527653036660786691020914717610289639030578546049840088995712327222547393514545054324647776207775885123041078824117815450303432217190316454156930682835219222875766866634867088567338114597360270669305979745632434890926722477987179921061516722685901103925033863514900724470903364752890343539081962261371030720573645989826813541279857237253445146776141286030192065714552042116735237859479657768857172274389835665128653575956191137238485382967649068539384277353416728484077893439642927835195093616496853723343350823078200148476338505633053647018049949178337880544228954210080955707363214378322352920980355267888234444459090093015838598406744296399609292735676894812743639496155402766417690094481376566363294592197564023703483242816361003710245677308684448438908725919919126760669327118942598725445304258774504493917806112390939294256830554896734612180188142525398345642828457811200437188369317632885371290470420951793206277138870674167974365543464795220717796104654904755378495798830599004525159659404239491735106099064905184487342995239544354708079899483492302028345212680235142729794571285825663074681187635256220637135073557106771249542947879696713144639383383317047333345444279526265158383623567817045953041972635812946299019304046682361363954066226651658649076803889390740168937763621723033815776089957804058757659309486862067452886831795942747563126360338888121055351932081154046768299369442394286044408900853658881606860859127057392144969150464960952681615855601014778466641973064137088629655708040997089914362773366202610072718077525700327064785407646616985155768888289960215679704032223341232247713364054260083836332833342054059919316255421233642939237694736323735993602454704102504980083757243643363081408957960021419522061266427938363922219505018051208122789837807952303961024237951854741691926939161949880333367352643450265537927074065324496305082022826335828610208965853449478731545973771872115852177355905000912537378739639613844893121610295179463855956195861594777740074557399189450098299106905315281591813305145381126079762787871151582755256402127432917252373672822813305634963677549386063583333993454398060230805713840192518130822719057533350001348016039019079185796069250027903450192502076073505636562881647966687265416546041260953361652805041252992645137424906733917016550699582738489681809654409590378952791700162172216576543082109002223726396761380231796074611887514926424653274389535880124765553469452966892632724267505870633544055522191743352268908901493257240456524202574726115326983581297084326322208156587305396480310101551803350579622433947481242716779109920520760586728033440784303387753907294693991824231748294563488197202799191568562815799989363900980859726859371233270432111613024474266213964152577198116883591407903544322329087861498786953036024494242077555652232266566529489057282495545729001757595611751482843752624938705908179655925036102291031050532763668949598456918777019293676292965239517028904292463064762761904570645945108908115211118026661601237525339265414099305514116652202444948041040165037976147552251767862357298497063127310673266931837894560384171519324714813469475231928455976767443255925822536316163248711533119719881887268790580867101077705044787752865298835327413562826322090964470064667201355102698399166088632971057258698234865067385596207595489843392139669627498493592691116987387259292695018836406117801118406698990708644878509637662669522436074053975785417396078909190346044258482777514459054532154988307290185146229550630854569058536270147807227020616529090520270369108215971522263955379419286082815895301576910496354492871934252689956901223000445633970042215822644760021261847179420200627703335018509247926239540265279563055558825609689048994356815020760804926534610602845246386207005157154956801457353788806233011880760555932722473436846169613785243421038631332124196077528116109081556165986551970871297986351723758231120557900049557114407514152267178656366136893440664612404527480370125592958301349452759012701195252791682681142709698806919754715754423521842533667298646994477165889450394436260105938689039676893566821112595529548447656023494012967898513763502350586782480222128811764279142453918800460419948612276180832188199339558345997523864005012219161473074002646778894013295951403529794112192975939654320598672554591059870409631537334055467031949301328119712253210904671885435319106151245910062324557752967520153543585933919013665129206398558746242236578539361142326018678270381776810077947349886101194560150870889796609684822280795363833714912736696573189882974707816036872332658241290021738878807433367934647921409161952173575225481360165346496181695722905027670078923627462313916513183615524220383049278165184354855690013638910577701994084409742760799326888979012249268411802152669068812523179102314340077608847342100094962082275602909357122786435440041602224511209644021455929099979149672851920778134391301901794552010698466730525386016728952348014863905415059193957309910386226687156761334054013893455479251715517288997940252913554629966865466335183219851595769399952794809296368022675537209371392633834233170514090046853528695288129863344007289715469628763346281024078663139443612086614156944789232239281392017366130236438200370058390222291824062225055959470120040318136906623264877900168546786639549952544492043022260453179259253957874611440133464299519158927330134729999513605935152260845588947071533941118271192008267436013777346323336721905333268834605167534279272333075755442842239193060463203872446048958459145233391731624609644661466125214494597191930012189898288885165929523671663432071006386045852722981023366072536792747058388088775623991671631036775051156016653421568987594480909643273299690800441211141816588459409954113509415542268006588960495865136154099871563353668628419268405107493122197787708761784110861364533695914146953366226571138383329501864904915920677896915755091625460151658512446910093196993935884708942217913894401179857930456939216431249424295755054738024372650147765080089119802811538685873066298833722954773055181383566808875339271033704048662523778468954468608063977973446221401050057570297461727817988213797033363703280780788105743729784941199143421672661924786573989789713397906161604834793633524009744455761628300330824970576717612936298211585433955393182009674554629720396037496665151174234679653659358787530798994437524645166309074512983726126298546342608480354195477062560693605992406168776379933705700963297805388784167155036147886928473109151788571965021018002922088646719301626506871149550966074390007228043764804043776366859889628068704651275664509375413136859029145872152887920124247856288711499568870238928025546732907492150570968989103506125549597814961034014574650089983543490665616291321711961987322165964396502217709849448469469075207272844369659355924985560433695717794008260206911492441022796167851793724845902476519091784436711354499794931521872193650628717772356909895035264566029419925236620982518929108172707140828285738749309635684586467409438307327949391327716498052300369865390092335780013792403860806871502845707801994485860735223253696323394610033601605398565456002713503621303078299292125514457717849973923556968634952614255413787565107802203743889472273815156274461560795237573534705495022908670319560449168965166017915083805682461909949469308379058519587091967323926340834801283251500489914672541178274613902666360290651099676859487580606785868168009369285442142640097227288936756813941849937370236530040409241127672413952223782781544875764483899828887643730940891665809269162174062515533194994686370918096472691823287866119911339563007300978570995438782177345233755528671625991172973664891349362752704012897520002662312884113058201117092874633255711052731782593454208502308674004513404732249677453326304461432754722352931883271164099725573897207700345026611956432131250575260034282809654215344639571519743695329445067008915809913017593792814349992135176018876458629631459096854285920542119579754989065413728470602066510843643925330041505611963783261993301365460934349392432900922810706820412441530799836408357629485369752187790567832823902551629698367152634793164529876813820069114887601561158662177265965762793847590075834504652765381699410586017776102983950953934680016011751045761654499792450700833672660513537952903936211138623119396897097574972833774469558935329393907516331068926788586435625487796367588964828201322100229769081826821032809615107633767861124839553389545508451034527590168788432943219399847538109949265440338040584056614013821431385857815704237966036156173218505339489792740421708552908566533473755810166909935321266376948138414297205469693568421833176186948751484982621580165831946049915647413974151546727836640390245576821773810339973935558437828045688347449863274900245493510776783224131393832886469134285357998707841356792831370958567833135123282757842683729360145572877011132437907518726150204167960251773391217449294529574838629555411136176925338169187859220581796868876616895493633505338230688721045534217076359572417607575200224056358523554238965785186863579643263010918261256801219574009831343168073933275543811899859214847481054885753136264336426600050275689485677634495455797908174754570101007691670010387278743227519280316531178066908817598694512757091294415697803755423943861200836149469790679984086248388295743414849855273607392693011840061173310601159389692745774017138915069773995306254110265112003983916295484764654081169598733491097545166090557649981124665131829616239066817466113585798804050402364601369009679170361175598842030011660364152670596265652587894185488000436718071302524798067966766889189775387313161213477348986984981003104379074745642480264556607416449466285483742386245206743765690262184245556558367612323366330543704266670317511712741657414465943409867028412600341890906050786721901974755445668794854102458182473922742069025404443710353674376012140213296361726362030746878254407542250538319780643211149150753945648207088210355951948545971982960383366874182884349884188691650717619352726429514198941509719805314923594947392110657028708984568515422162394869629492898178284386489518967824737188547140821584142891115543514727473871056775582736860507179620951393644584626766326900041836439758802523437887705166932129801978706952461897341539421223772783734319262500962597179813736581939590318482393380404397029030438977745342064939419792384798047233658200696561896714362552818134156107939200736815095274705649758778820384386715149466521435822897230812146277309197676157069300984119307931392298867772380501026303076860189981784750060512712420795585085649058362205535871773376689474203361837807032462916100980027232424470139767778551714058775091732352644246415784696569037221517940176560989683248028082869023173321918463636510377296581813474341618537142647090734713574471985377357534059559896911912087577853757868812232267146963920394794694061746524371151072125761137810821480737024836899705505879534985947349885828260329416467602902809089984593308403426030466975220460571780128523208583335922816617580709269959313404775992760827952833939909009904521368517135809540953857257013119294698475828920191308222090139517859141258237278939060280619929439362886880314563542137134701517100023845150799423479554593557480522302392926347669752373185484939797109017039106638574396443583027923600536442827740677605045903846696540144091844396882891710553228922461097638838245901118256409861907882784037506663381686022757091938297852439874229823809413277973052166463402024545800859325029108244924409832347912705540164591760738349262896065403275977384511689930789186217827890494808841462829588744556216286778325341641975736947987442962061292285690171313031439719576960796923776181736791132072726437804415080454428671022269706458917929450273384360144976059765672871642558138589771717366047819053501070237083613244594962185779584924232800311353104784213623406231650500664480121588246791285096636129388320031167822672124591304919834340802104750260742237122356754223732161148692768141115400863732960064768645350716922460059107977365019895428856880187928643551957712882803349474179511023068524468488727042522836730703172611533263203389299331564631975579890894914998920924159841509582984206591590290208038914492370523221198741883468922259333666960192577991121018421571007413207255441553526587522719850810333354079777997620241075988016851283499141332086035514824313013554933475823854236840608287646626884125545581123033717385340062479447288337446737838562873749818577402656855558403410078171140772609313778352591965933835560215848055226677304890626092483686883190463207095526524774471962780122106362800989789242181154187251066442604183922838973356985273914383124590145189701673551647999525011829673156223544972894054454771356435317827270625729598275649454595531105716269499671378449604998522313362322531816160884551103684076284301789508486942869927676128039597817938485839127264084943520944566686653840639994427704152748069963205921605110869610975407696351493535394977539298720417310844380943834133771105081700272147141461565533241273561828246134890002478676374381869671650687619652368581145741145766934025213288262121578162635174304235438689323748292901902867292873299111305112618136799205562142390784514058650342760714021931137986544739197063731042869946537607923969337953436143535415810185597791742863600280702643315923937601072056328820671794213207482509250769410784501209500845615850617326357565210277840606414738247689897826537496905381516019309414276168567377336129606353969095749012293598599973997293101110558630499508071098026539734934285660143495303931229500057821017626921983957848191271212656210522860190278242528259983277227991154668800094312013760192424205160195496808757335508137415242843617892284847440928803719015065990116644815925918461207670702479172814484756983412823063137287352029427860687570674276714649923564642254053215043661513835808940556530832383598625038239879833126989435953860590619308913867596041369444689457372546372595218327024397177275308398366066726191537370015222606387091594923111329355885566024632796007139856384397236971251698143053452392973151575371759509327123485452363419792914290029142051036390021412900104322498513470659605637955534026826273139164458881174834205754168606077488893323573447071712153459042764743614713234103228040042317845448563219192237268301099457674787877318113106950636548291385080633948780313020942066452501932393323679174561292108003671846625765268325992866953927955085502513427730344162508494197205443430737723922811033229524081092891606418893363775385344969565979380801138788015596168896054322057188386770648853107011116003115204272861908900763442790611204878464147103081486664987150645225679109901119903913975772809607296305928541515042510134850476196834800646499873027312615914404143559114155662018383810066900741297550535326920670845209571460429866673167747302936944355550919087589367839524161988743961263954821292650817864639151254667414632947410802335091219758460647898901726914660805871295150385190273027011261389542439701030358531174286782890561274127683664854008851416172595219169917199276545674939027413868015356232939319663925471604942262432424312577210464690326585048316580518823360730206144192765196512761609420134134684619244007671448248313307462794950838769779228377491332145768902531436250789807696001850426613463112252654564695345453095812237438842584429391015081065264784814205279328291310499215781722509213346741050240156159638456330715046836026226804028769092420845694660982672926611054711151423821093114704808151697715313400694674204071344781968435175806024428604499598124165891829198607973921407149782736958644351235942846440133206115121352985694473925890866397962612570341337267548824055152394427601586549488680882036966342825565095814863636519268260742456761525155951333117869913319197630812528372149387451323992070535089678489480867484530585259867938300364156139688306649372415165085272822621504025128496219124423647865376890750786377682584256895657665711877283063321320404199122560126872795432835342581018910194582357416900017468169667686172200856310375086385653959795117221349440629235999667953585957169681720207940181316874619174065645111420152001351429247794509450447199125321685353950257866415695665971153163811268989745832313288436355573608792436014773520732166433202037723782671853569227917795308767804475528853368944494130522042454258856900613560887137263704679519299507416341676123106993598155260240163587749586490136705928624049212546784908357283636361855871023949005167542440076009019925885508691259048328290541836571624400944450545285105538841411683477497862887051232395715972382906610501115671263208864554652334474023800133037736779774126880711919032715943576509058600706077101698090789398745495028184842915228783847177510761871020075187370272026205659069320370033110027704843753539646381097840964524018351582685443641673471010374298970417454511233019288067948332657737571870824954671045241397503082832374186721032109688885661889357181883754871642783457217245534862910595270802546826734092550247857991305977185870490545331866408273075137350568534860457606744547627528268971922151821571819695236883313269942028922136298185846938248357286449922024692003203911216698893926238992901922725852508929977348087096824004744115992632582545720268368667104057717589545334419901937258729131365557664210722028047828687685625350646096095616204244793579974756419281769162178835499875016602552020335952554005044623855015097701907872544695506972382150296762444178866268390292636425965258295429705168622615201128554108902968434617636762079690474852056903963079426676777712350513759451079238566441574549374042423294570986775459363206967587212152899197806587865419597660261470666887866371331409453867946026431710247423098886720243622964564020901190809376616574570756059052374481424907987098136364070814938499198261072999506152481493634689113671521171948328134724696222505589877802035212162882802909856896825810423096282674398952067159145865368092185748630549382517146349301452658279167428487050775198815135763936193516986921689691728518818470305265615169343897013075586171331277276869915096512162812016862924772424445974474759096083695090283305596416881853666870912159579055149228437150140939261544809583504318410465578790326313595358843745558861662371620261270411201587178539745394073473955015073089332905921240947376895158482628797574523761220388012902397654375466286508906600213693006344784202220050206696933431282953580687291911524613020821757018822078209388228458980936485122385355041551133632344737064500370086727711204830991469485816915850787025169018134151231151798707271649444062528667556219932132183192791315459126719146300594051718231423049589857325492763250762487674166496152960391626377069319373104372013139316355383227042889452044721727571207267716170044539690560309437368153336905690038104670156746140728201584568380015367613129426797299398929491360178854309179592918582497044214860228108428923122582118503718375307897946790242189990143575938577745226819855358768069504504567787392519954506367963096650284505590212687709654486581018197869099146561121644761188215864827407109713956393153141986817560139824180430988762855874114229277468940114358553735895687924808686560269095469403812885502455409230272809033520274258055014401721174189080937259996206453584942898361451951475999259216240247438879539908361262159880396042109119882479756670033549314511124333579666146647825922531078751898231986166929055749336518470397551439999968107493075894213621946581302735629627216727685448792553126606895005865323149949967653954328352911980331369777503627416470131359547038512556284166611204654712969641363919432883069978432225536414164237028291792217453670298202753144918252949218427415079993353557400050878724178980927011996392712716861603612143917845457454649652517122262938804649915823636822814742978978662943149945312729131472704680645874595737012059598198188674931901145223872914095423714715748307951092562152837754531113446909396411957618973506118397519523120104424113056027745323479707080380417024146501250850205575228641264548885637914099496864311212056570170233782392065290336735442002161169962451499349422907185204185100680529775607330503311415227373516642755134389505840609893231980305182152487776769074654877807010281647446572752889963597024175082344815826387191612568989380951477263519998537037542141604216971503594644964281879713787252800426775216198080703276145604456388417474132165542134831867654258074763508440618731732268097088899864826094335380977486019143596179571842403652571081818430367482820663489118358507423626257046238225545362335694050541780084479053319369126335190786988325571618423502156975365750052818397825457179404840487479002302159957695210478024178240626664238935875480353594830637886503202215766433937725640916561792294584962916728743826723586736866318184828270712828100078904620806509665533799718767646608664850347682559957238823984260570316214032086894327115630596833986768591932270666845525563599002465853392051479893796941077984132990364751623664456104234695049821970419032472577201139947214908416068376464238924189766699417964265886560852386341714908732848466571192191373046552319943143739482082350397139935116024194649410460691738864777936697293429106501959816673689919072099978761898232844444715486494335970536982500658047073359658227554537714755135796767507717075203455327157634625337382215362453290472267661890308561655073715033094988058495981600009583733895848355932120940517521540989201421685757489188569851570828490656249057111872551346336805521167936855115756503861546683354984803622366358849493029308901228771820309163572191867032782801173645147854401532425516993417204375613430662043297047558379726996381926094561932347877585470113656622613585616190010978917513269502188738847876369543650967203196885781757386448355612180084618644105760699926162755587219292303825787612023949560178218293084397562939413603804961551132373144574323629988140082954159747178123209512965733614884696023209469556238284868230724534982194999481444308158120454515479854617006567500443695614964132982976570036331079062115001169905120203907721080382588638267097078504762464138840912695107051464653040199877598829453042160571995901095326977683064120189142986917291412163218713376009898366810433166073283341148311295946167613932567813112430740459068842466410983820049586906187886697590046403789989275510162643439753131550301163759599937504879685653726965886992235051874094122884803201222947983695363888320544902844436791867858468795387398371595959752050484503835444814855303391543478370519706386114899495977919584264702839200470582022589894074713413739991730886739893047289636686855530613780802769986646169486896245635885966549921248941353315943224327496973556407130209419025430701301772428826653426828601101751434634702538046672208051341387827102349645517212285560367449488155245935138376393480931759848183998235586091274969105563464717192919611439108310467976381727787698699321896208719634745242062152479569939526519975233479418392860490350494073701621121741748945466218212509278759901428937534465028170162779516017094451847461507862095277376441700821743269983254952121952520940045542237876823380029448529781415328532945886455728092674163572331658591055378019793328060131628751890113790927524192695385670367033017572508958634239489568339885937506856520478227291063275411325188593817728758734150205667777425172007416018495166841105971927031840496006951269110015341105664264684478606108046925857832830769674672334664377736079358985280541527867556392268473335865114516753985044463159788466016030635889720187496327514178191586783096806907051065110063967215553882562743918012849128611372036819277934810826839475062361806495619298883035368622308154506636276149951453501131719049971257019763360801684920691826031063362352530419905388794151081267056080330183287355395163719392864698719149802972360331640170524532192487365200503457200346108119171791215529744453042582168221825308762283584821293061551804051691046606241441318514373174329666813410695879420653764510877330741718017553072993350960731451855820204628577508779784953737562762348498798374593620583898297932956606091681908243013232613115665579414709443143898587121206472508775449390948921063348646877092014286240366539774795572159488167528339066631535461821340736574548543281964071211636430931995450178264321848795440918342776681685172203165245108873824919611812272591863022686649222087804939421807080705395705282984306222527822348035183401076081089899495957245158714717013536079066311940767757960746087602357407297124812139827002554446325579972637722575583099987230011762088554227979973531313703174849410106865075745744843116005838929164488326808339339196784238039840015320386541943222486161944281696178278003041008544274515716553866999857691388354419521021705356340143743750725213848985477712860362712377528669442717671803306835613067982788537880963584875037484714838930503241302268472749449393597221292077800587627690231076212239248698070675377847470098197803869957074025077216378954435768392727799040655275890962505552973994314342238417319990225448713477103418412854164840265740844144803677191970656621462527093642906575267551518658387930190573451032958636622483982961866254196449426042389007209606854944534372067703964062668222965863056671001869098969348782079808517964699004432371993579366164907189512029688010546161834153226860732861606878697905107828472728157970548186104267645932237287316747460359884457846644672583007876073788564059347612689279888381539923109866304299609645646626008806847902462433845778191107760657220560006257101364517021949364296097790566905415698744002550138357786466344532040687975354976834281628789574051453105291243357666594903779586480418432122902990440263769664302489241713891264476316832236711745910847226952498788242890780363181132974109236559608438799345614722368430538056682256148127696877732449391363874602993036676215284199390394372433610629772847301599283197149768405858131137918456174924867994961966936758365908530264316799386105451701372973673966123742294620493321178771730531018973675887718331189163245160803171133502105847653443380904277173238964296683388011358156063918549536969354772397556717438964548445468775498751405832481874273861005527475642414716499213148598333211557446925684805217355826343534853790682047195873172817986495530757311110981058088318534745928604320867163787466032292478385586933691510890100003583072627054241179357082476655457301682593293662771867188519509619978110196508736203077992455732866964701402998789085713419622063540625402006542925607936040400889623254297489389445552377256368465858407617472286312079138250079032687263328495285276446470278481101894841547088330551388234876658784863719872885999602400351857856867724501939847283152362571881878782453763916895797535060487960426612335910728635289838597723015988461837855376145237546705390962484350136565138751444571693616236907848468906525583571518622839201674472981995617248446881361825747606838987045463139176949056729942200284370674750231104751013382683947341785930331515820475365782407781661718957884643813434737268417057300100227883830584939725276597069772643698944647717685065493300003956178956936967001595088708518121207111127308911242886890232410351937849921672076775413982795997916164476608893884486184557545735729560956751708469402685780630173158927252874410566869698698539784454685259632325754863523771469968965430803664688810421856181609076870403922725335739601550776940172936928025942670442127072877599452892702317497844025943310773653931942891008411564634204573576290850114307795251848325560156130476182286993247195332025202097587785690833421619954545635695555708884571082326454355350925904486366531339488487187699920195664190867478539211586833034309982260117794158732242975141096304395938197327293333329063487579554290729313868028097245579939014093923515239043111209710401373548888329008018539402490270816003061149360444916383706456776415518710551496097778804502327440463272988724088531877316107462677021787322540861126804638570583781857056697859700171233830780871490441583249084589472306053240785578393572000017770722413339194011085177479353070488259282848427326197666927755333736257320673942862135975357248594130234154733537836354935216330570089773185573129383400784205558764540333009132620087454835539738267023635573344033409977062799607686043556738975416827336415022370458623539774074243649505433757781068389556721438588295460342294492977951686566561748086762385962755470121324813874401721187660945650371837498153601579966428707208733121326475553188149205811166830290486334514003728218478769317508049590905721774618221551219710193534506782285835635544487642339368202919404348955062334354126496117786587500442347551026307917130627203823214873397389128878474024762071858298125576379022046062613868740045005518763645368576173710776153984772071108327558131047785087782024195580843068126810368664288703633386369751819793432449898699393085902400195890898918397775196174750888031614474399803499244306838951233500958191578163497976217956988052071647889137231697484720020632776834328893271206502910912540645737285726310066378975197261203890968593237475109408964000277270510767918560531966428695886200304116856603982780063059954357258287562226656711894042682847725560374826687322605927441444253690159796850930231703558371224672677830982821923912656574877010949285022678274327773742781259282338485384176981385201695923729656620516747224947027890315023063722808069356995320009633393798164737236650880930063361658407757866723028985717804677841724237139302150007645731907967227195333572170667978578349351431526698171565283855964764372954017836581275264038634891343057152993211452192201878682930607514036981903118024655784483632531964192032323427839025620781448500682711360241620420869036908277125285030893083372936829511846843217392269733232638052245794391188989803029857028830882332783408593145346338356261621992179965315177077361005071854652286934070821198425837651454719717904200751032797529004743557642999654022704843065371473271919831099773209145943918407224686098912210083435477724248118173312531760521294707164209519569259740134180863852828825740269613161707832621541229408471836042061114608339401645089524116006122501895264088687117198227575044267744047795093974566749369908332591837945516700802853312752523641844005310101402643174175725457913368108114770815632227741648356865872039899059104119252918368606527385892652123311995591798320086068708368538437357979272029883859296139971799996175822695547359574140824487303608981192090415251442321033865153031424092837498615936789006286197245353476224271449919508583144445723339187105425544662386001008443626155735263337313944482451898012957283051281132877179086244055591227560691426796775637860201810966554782036974917959898949114060717945958831942219581041374423115234871522168897702902915219432058340567600600149088048211797612817081400319702271087040194704008574847224470346034456538600923660490409487898214201405611381055553811674385507827621962301231997768804401866837610552468422954633670006910102722695013441503727328755683124411322831390498124797333005361303916939182078912414235291731736979694739590587119089318733579068871320266336165090118156375091365063670497396775872564541318028653295467862471602083123259557721011350183385129781089273331591619034644677776539441225167151117008429480003037290666426519759266627802543069994916997159100622592121444375434570520990937086530725526971241541328595889647945863348529337513728987542434171555086496774679899501940015460730866256867179125133150927945345225759114925513944641942447550981259516427968951836718846094727377406788865936491727030347763764563214227590299857169910561103558527184610124668880888399587147521714245844338523803598959018529816718618848362913794485062667998443820635608360925203880961507837134184951291357987626241918751886530901875619812419394412618508159725921123146669696111489025361572270137708182468269765367177061358860902063119491147225446208778320111700944279772016550259592405050323548037146029370771450644595488200181092552277666753152169400020604640883735063239737635768546472350043819194619887853365904795851381059581680782515752313244805519048312750387616972234838526892998501490048237785110848028697163575713949680327150438016003947402561656297420301307279402408629606570968624481581025724616560852761883813332734495597468279297528108008468972566518153319422736328535677381110139600242861583065842106788988099474272292096457202427643838033102922911413622410096862723308140836763280280065162422849120237544440186616263051142918932138365205793634449713791306984458163932973983691234835281980740500865863381749979535855389484780373386983115282219323416896364184216747589405024149618088999819680929621959193931591959489391127587216229864640530421002648207560068270769306983938215599132154457789022672064921324439488012138538480763919824563021754891619189865176189671820383555222018396509549362778166117287823947453164623952372672940644078187027872823057324172723676267558917785949142106229974322106507747788268497849129840952746642473377798368457083679323341009067958056870419672258872753877285629022330936423841842709725746951497747560337192012158626850918475614264651854694142175125778919160605937144682989123903869431836834484162897317665891497749720531693995313460730271864491778791033629798768784790020832214191104028609150673922994202185994757957604656590169173992941477940318731607315354889135222881227699964785918523608389535541926950334603354276697200506801170262826961090871794118854664651292945466002196014708007216648947912268657970211617581892946503457154367819767529677537891630237685717439784750900101746513825999700580385248424380622418169160371624851813228752263258266975912142802651847177392459771941393132880686311478705358175548614923970314503380878497961080341982790629440443407629553290464081149987555482447294560387102357083678105070915079191634281193591529302714043752043217093090641079784846636379879151928721321546442038287534679602602136163415879484653489300614810598268343849900737966760925969233203115169087120918907543484142970058584633237388898160466784840524486209246767232012518794425180609997928787460644908177691627692187241651354974398855264560571542067356926025910239755953527018734059745574694599667100468761907160212300976854004702955676787728031030724550760316999579893398085339499750003421467977540355081213385655890716199536630988990930379230536883353481039123411591993075342012381625462997410063090867860174302101629814100759577338402636760422631182102943232537092902769645839824483625197471159663447991502024616171499047940427941019759025601874400695785149580279255354233669382167629215678002046172594826849658054431291737771075909283087070303493311131180318755589102613268634870693919406798802263127264659974428994500770679386369532388128976179308500600708104859600168144294564332142027846116233475955246382860923930563421950012281507375973790555348666658999087585457401117764238825488854600256984215874852653558133771963225275105164509119319992700242188751898854758186721401933648664695534516761798312578542648478443860928729037171843263339178073637390266010837473424742366508531526540879564259125709062262934035103919515249955249020385634210809098126792380404844358166003330100216930151252103064167738841199957977684598949268842263231911061956739436446726044335120508226880861709802873805492968102618451740022142878051533923184422506362254972334651475797372618784711801216613115218670253337322934164514669224429124789076244413402280379031230961035760017149533985740482163127934914846246222257339267121650391850678788816124973468299896220273655774914011831681610039416100556597832454683786080676400447497440645863258805169516462749340002970802031849691972319336660064627956156555074736102018063307745856187821753742026456345330439462526172606755874596962587970843451063873460593670974681936169037331081890844348506723806604336946608529658139731696724725837595745782794677934571397068418218377680789578019312841655852374924015742094618758686604899966129342937694448163406314251190364924240827776184067645459251002146785805423410520373096570839948633862623988500117795839446374323375850539653710444404950488017057696699503441514771784090867602053715309699803283970979216927218937929958534897657689158404805945796745807177937145294154142705867169320917427651853542975471113036875801634575542220284783926439091228637766625459646499876091102335452306354416920357589233250100424209438872570257673260673749789004497428686918565406442768242678365639328280600970406815995692909538391896886037465542609492997361679995093723165318959944415157649251096056821227174050298614016211470399278739087508161583342812501436110834973792826056043782414874510228238209292757495588671903131868385863066897707515871711512200140665504957191070060258612830990468625642020124883380166094653469210672063446196837056322990371816156990171226840297876603358422281483136603881793657377978912412705893634395335587630419794443615213826268860463019797722848915938345155442090071871420605770341110213895436819253683552377658258579321005332212838832502570736383993149941041842156120162973349701913539743540127583155953218221275390897164666014968727018944191135989455329740793286444488890281674196642843750802304716616111177294235787818886983627702057155038514744553733790461654976416600466905850932908021919363315747919487703203998441584862046701048757159455779881473778797866893809571749563182862033940962369651564877472485109237343195070013593550527679487605150617421896882110144672110999396857469262535808293521219222573921621315895878447251891531649634675781361190270971528277394995902353242930892277018007437694127634053923489894548139157034374542371118231689000474698370754815655082231504829960673973613699549885256736448547475106224855025049973171239788465500156624238824115693093796009828178003368444572717000017645933573838528704792739720379714182996565809117443114024488738874606160595217384745196005119849366437365192118614242440378443693793588852075924878117343303859375077951091037366422533485073659114720531355551569323195823652510679152687177360577256255516943015276213267473627522614958385322848863552349603620391604760526134076867403081270614078247479690949898660225435342360802309039478455296568019158551175454086266783227178652350157147476582819611637704626801002925090724559666416399961406807265940841330873846198883774448151867484673561772088111916919382784804885833626835375563645534899008426366990327036204723349389994496788123965637668658925536510546869362740152799307271536188400905337365705498315970717732404733022021865010958014520876908619418321151818990311795457265115222124950598127545700635001877403869460109234821174951092668608465420518287157703989411274141764206770866542347297521630905076862618146871805324342181029235040598425459262891795865526646083315829612448447825887719594953883434638604380207495082474531081057472764433945193849265905118355614741423999586913238988204149519498441370821600268830109949536843930464563857171713042663310233182336528594875746602246285664128537037791332906210440303456121075793872511279827629081376719944250619521658359737865264872159730320536209684164438463402719244615757817125493325359508160290616621544559900549384875683684461323135529336516411470594866566558228434280907463168400909563033370099056926338871252521229322288887617244350142690771842521444031774539607229775296222792436823082214722453204499577359232048193617482126805750070522292922342868329824849741325379057050006741862953202589520761720414570793481872592501352062820285736971531991214193767084992269978672530969917136797593223905095163947425347460928437792499714605839009322991892184201631633114646509821354456784667740703064824091568065590399633565621247461472464583893108304961771529167781327893031816807267226209017007416506551767472089025682186412240026138021764780773235140023795424398138927970228466599232310386102889690497336073821088694431765218845949581151887303926975427095023566675373103396276625825237092643700381552495374198009619930843149176171587284578635707386487931888041550608782640345405071125812070222369352891526243911806697863086086596635543932120557369490806043505452261928914550047370062875271666356766586610215863201504406360990821538766835150658285589774306891624375675188376720495885036426175896831433683758803821059552954132608904513540010027866316186340957766357613144107936079114567425282146351132126735487795316417057022618995109294552403142154982213053799772239988014885158704448738183300737671630896521676839972105854669032959016644955268358097083143181023638338062700590936079552579342470406108755312155742900717946271363749543472815024941801060391879253815832628181238061773927802573339431029925082097871732377814917209782355965024793834046064116799154281704739985933290141947917153191214484101215539703194781410873169650965095115456841793216874849180791826454558674657980610761510667006690330234562002682522056226015959654080649384393367674762663678537815562008471578885238657026388174135387543948559060720393277117036629121165236217008240262854372979269479328746309146849548036884585725637434352418170059450788861960040227711522416814422559623485969879946200975079440764426332253629433840729894853890282909058344908491284600727022614428071376916041836398338936347255253570306391910889123875401938841856571344103605515764832265108638011948467524484467033897905737749372710022194099901929811958346487408227109119662071966553630436260440570526424868599357806707960512801786458100417973688917363656625461539898547999770964416034368145907849689118838312570931393815283539150376156728025672527177299395817250936738492543051893621086002332625328256452509379427271106597592286346149431009982818564641273046666760600140616131719144382227751972073645883766105863503970472009149417410143155771130008515625920013332417073421637916101478998143001207606228652301977229127973282709882521703087120006086214168196174441519052532547199229515105642176891738561447479666174294547539968824280310406173741727755082100579015452712684418740418790217712210399804490755882737985815963501388231321922181787457625956122020687139178152430058631309463124706261948789500370155161835455200709327990165605497355564257019621523022062354495556026978505631293379968968110908672647622925778906996169770783046417357677973266332620665678432096252516579094865730236454807727113506261801249002340567147788534558017222017978091638004347740189824364479732905839753344508056261911832237048844315403240956199498053399565131043195578601442113705193591025332734458209441299138323247049593666434525615653020461054829502735747164163104053528456165885305422625694682217876135336624132507143595581766524490068152976593600175328931276237826945711985166552871755301198323221275386488371118331244526818640515101825235178222072161019127882860301081421291531416256536485772356275970804570162487089709002080472415012495389914122565385741914473389048924480367825940453626235381681666965575704190373806803055979300403272949858844396869915085985011942232060460374152627543978626122593072088478639230116790617728791610163530250441045987043075936201795575531213972448386406443092172610543682453285549887846831404632390739654047536776122859292451889912317577956550435212290082497641640036809020829266207912665464855077104568445985141539997260449331468399675557138487392476335593721388482577482127408109063661963998749602754765556588219138595005816257983989941475558691992741736620250234889184136532850566317378880703976947420056335585126985127645390452108274045717799339991809215982542174873618837808403703479719393157986237710418319836324067269800188434046330081165251110349658236329982411797085063938556294344716957329042559238123485621856441322094669906568896639426003446892117576041719643934074295523423801044576171846062538645829149585274416192706719324569074627121116444231999026474055095713918627733269159720199622103959715885470126707601344493281297311187768512880259645373544374799972959479583761172354349656733903241957318419826304437183593058670682698482322431787801369249887868759755229972489268052015866202527414931153108134016667462030513130679866864430898165461448222675123494738155095724613979524940144304071326328203746646985453578425678521222600034250158427864577218113892082666029629668773009220440621383706087030164567656838446984346992353056591053635239628912271571313294505024951040911726621967594967940330801963380967835299157781498083437015669810562481547166502795562898361715242585004214396134062847218549691155135668677340772467909927849145517245652262067571919408548683297536068185251315393430834164566952890601932928681839279497278250311565298883831587646055654573509906022927455769995464100512481968577678274831211805445221189386920054352327178408510818100623211624588230077157712393177407659075594634340799914725003841128640410702056051868637942646513434713751990177080471765453891759647580778346488252745937151164393978363298381142580622901659189813039230950385420107954070462001942541668485353353593854365295479531647479724554349511859967260655556069339993639493543935433753364818061436228959610653953119002600003139192741304673095755867146164574399366238867050256785588356376335153307905411434864746929417894037919085121483903397395141143217170393852019104656991730660716417839116126567713489384269689398063331870333830418130416859326642323317676187714925255899561372468349385826113920575810120327745159055546130007470967150961295820952590771668828158268352290062957767679887944283146029391456125245251146298101317562817835628137844676801576868462528690135584949042296576019911005552446290455909140145569019810144777412729017226478691287162893640599615394054169849296240764341334477432071097732705900024238781776918310825643607535745467304593027771637178431286955350166200264334886085906232546508839267697476900330198920415577588338309129677867274870059289631924696643034511096077759667828802054296530537018182821465058852699756889456729841370965175118396383815543059823249879907912074892664453157536756706955987410723270961243834725659089599464354881138103012901021057555428130685421003209019500223143281682344410355213772728033306146124869934012872322040461358985489779970497347879482917705457279811436608650182301023682718226344526506168124597993411633777698895650327523457594473514925220909177588715196400728865805854244938200406349364353391077146176131636539097012336374748968454581361915382132583829770691468756263915431673578073383463876824397520928286903234940980762682240406760829056253389905306860275339255977555724099162142871705438637492863773423127620885293395004106104771118157853737045451666933239941128829153344573879430310655513167547620777816114976096496604954605830238116867676525652752249937813986453674340044832222688417382914325503316515970786426736220489577782815335070682270797755825559307335935446502660534931571305374843363088422369739091102269539886857116390050132163225306446694042180098318580307056867683367517326614982936311080048448996817406745948398862311811651389716317368896176478525736044921792601750803782232963219762065695696459328924006252391402557703909054472605009766933706715404281679187030631553020752583842186737485015861896664270577336940152756545970643386951443777410497279117751698832070306350482018781030467550687665486034950750418830703963124712840205515419060513689101961604878209333225470377953967451596513169460897991137799036087202031557165925905736560905360550404233677881799124040807376913443383791634839399896842518117486436284143313212890991046933925215076592749406895717598069261118730822037172106092151083007549573836676217702929999538317860607929947060248771000767470245545856864398254278886052009080881236318428019789596992662522031156442038444601772185126592084081599839965837111804561166591670650260376639812628640534670613855699377130050669643432822158962203684092309326446219449119501180303819916595963315037213906532329012525082474919299141953037920575015758117951986073817121957164464728980059319131524571371901350057282899073946843761304595403507989903089393201529333338115521189827196988933500907062438242124040927118061060304208334344306715216671438510919445562538547774296815906384148744886044845209271595982573194456610608528507787355322108052329952739280456594643373185203286988021565446598798859221004514708478453949185108202671718103913892149654485788948876132582167068616428797706898993024222000021984224196627589455473882171743917027937821715542401865526478673594695286535898464514201148261065547860194071888355327755163023076756381149262676435688498623784922945255390329950491254995168523636927835261066862886062520635649653664816573858678003452987797615085965745674062277748460963858760089380908455390752472388851365801243488014316845102983042249725946081589352879472703156458182111519250280008795074163586411501246665436154880722457663368787291619229258192666252449066770190236462667034818653817514861292564072233070657651525089433235404962633247436512866115511034425884606380378170055840802069173595556071526856619598106873706067442801662659597791148485102870067845095525040249805140803306214442182471367342908184890678735313850798391009602632708635379175918046587350129431190613854839941049883698550530876061593667095854401840388475490685292305952057463899293582410985718695331037837576238488319350347792414204992843132036960096181546636008893751421393979447939519759676967404899533288492264220253208402331850570361250213767245106095315802541662892295825444088965204161634791480437562575403042329576818874304704118154730816155464168553079709767394977709599831769550038217140163531382366761444162647177221906870089679203499933679360306020443388129511355979171033872669458912202349418868831525303274037041722864300199928038537443681315349110691350875476882481841933239484802758555357973683290775921742236832794659817555952156335376831977960339573729604906096430052783512852564919305484488057861182751706299680873335810718090445871672834328178605041683784502802156651072176437166201060044093554666914005174032403846687188970248294865667642034876512943160511012409648353083923454286460938362758464949898213455890231492319139323128105066568457351640018983349556870495714616903878747141327096297417264434849604232677485105301858404967537274448594161860257114851253795036635336547939285933090633014636629353837017789273178706140921950396881382245459643992853631878747772284684756636459717477979822990368307709384370095571841697432274420594108069606573432420630010795650337062998091619049396546222593979827878193346898736655040739774333726306149310539865743946757665903927531284694653300166403067755156596230452607135774017978530862107105012431728339720106411772711053845327438824681218450145413535207802020436510347743760134309750710837047371814418999040580048906971094360045612841493454520420778161730495570750604906998653896830140525921044552344663562443112261910590327959296848316885870781710337963011264390103525250455128633676743808485829740514044507993505601896524878750139208445991827611851294285734790799418933420216194633788942024158860190472696777302409066199926951315797815758649977903528849719019663582372064048193820133039605305145577477590071329616353944190908675969967081550820794223201967263782929744835971323274527241980885367165402072387951015923344415559899051621466250553036819370888775525994537691994307125449502398290539703361060085277165334567731799530632886969256315746680050019449892706415728776114244752594943678517191987185521151314464498329122908710864158275415282097715117327207751126135023161595251722993585221350871902334212460319003511797554925933999509223073289489151304724469627376005183472484692483854219718947026449295166183411273670475901019626334918911472417518468680025275497167468991546511478601853798384992408528250263831257753240858469258191041398338499506241961456219016061129973824531168934560602578685544540794871035310897844557182814898508801789821594583524152892134134748024444855313691969833863880801018926785639839760923561873632996122643990280253109755590114098201461359976124929017938187788096691855395176059834996625501810315268962702397543941747111515809921564701202309282144922804133226684012479022381264026450465882292496180653313085777093662786590635488180525578406482591386794815998910843621838909928894097923680897842534842270012885512129165946303257071971623012239014255223979656704976400712749503273618022074750603206786746113061806153212928171106517624438456351316578477693600618291147142030888234401896092105248628781254395167603875172493418013195170571694029459141064844712691212830387566375376637390719108133721300903444912783343534626922172650436253326216437760960770309421984376932687223180813636877519244361883901883324718504926184772326010167360471711126757471290129947409185826451775550104678342163309579573454799784709470385742036539789549036440910638702496867583427297938939261222780466179507560590985005239529576101193369046402392868598253026639913090983672376163776560374535516977940219287782176728314693036701675601997561193367235550590064986094412407131780442777636207691366416180918369073260745471907694599996895469596631767353120244714710939170467270693659889213193957777068518772610490391964248659994332439372406471637688646611482452093865728115342153409175463653408873665152803684875784682026226881155597827653354714155626567624565302238420361764623464931025682289265970039329617661987205916312393569135902413462629720515159656184812694701573073711613142320440025396020782555789378093336330256844590542776598567165547811213706325547911333424309888178916603519203784352310328541959709618429547315196184612091548523812633915193530001770191915900651342176038572070193676404281131373446131382396365024907558618709485497734432103832055761760127715988742277083163868450986477449341447672662271847558262586807148289742877375036703342691222222767479602146022438848706085511857066652826245477679697531747866688141112555102444188884368738995113540802696308322467045933723112228571521765846681234111901243991198614345167326509182171048153535093021559161643580874457358579118571278388125530829753142857523324731207402797806924504933330599487726286739512134422256713073116196933163196181528737077734449022493904916125863279610487193460485745518337613197460112614317892774078555410771768273751316809681601777623797140810099852556615595648708177970957704801963248325105910526697997031260009663288562978622110592505752462527124795925300964869457874963885142900907589062200274086893727199293377084103050413175192722348322594630447092917420718983250385134136324141563008864433350617563799649314193172187460463011280068718408957285814032738045418549416666980548138615599816481022239091082600608247334074365466797145795331038116075046022740777158167902053974809017560238753182508045258465544080237600399570463308183481681368373580356907864289035620834488295964361384473324551736524254272548418594848731982158049824190438281405172481045983262407345259312704322915463623651044925930358674946277346823643211382441755087843931315800024418909356613632781442686082279568883039167575181710636734593913827706003058377044205638224313288894551966161567858243514702442972774019001960462845237606477890758992322722898720506171403462671234382611984311860591045434182267394620446039549511926299958125614825830652486609995903575875712153521571990710649754794079209547890544227236395974748556920336339374313965176505281889005862247100659464600737681134650950086976972485380330919122073866926924053003288924261366639343208717132462783866417447095429398564899950822791588094375071152763633845919415384221953901942607312768341250452543480358656740977696320929464480147714246426763364992448421614020251040876447845396822640555443586969294322775854304977554282357269902348478960121862153243094361357015706658645859757064808139588336708704783512851622740628613299829615284540138130467138575722067673443024384231178434594242553097653722090013494741810017006632063867428472730468007483008122079037910995802896866712846405038707335134350081717497978537526597449673110964096136848995323864778892125143911529972934089043098945277197399834851462203580986177389070301557041359994122157938838940858060785107205990056493156667089178435087765847002939102088892036869267190642165407118227354319169080284052441905132018385001127021633696845646197078905119911824692824909884843829801120371479454800681602398950196580866662230347096370523069202701418482813160963401297521049959606130570218997300720340659279441685965577145439031096877155911171463005218978048687079760595763654221976642478637117705572612903290354722423678546760539192413521984729126384145978275814201951921920481372347940792171977220475012355801380991888684533643355729999330120520475380158059350739233824137619419683147893319561175152448847399718335922948281878401178291991444248135314054248263913864193562130243950579937570810038688226185734688360342350919510210720633792427529925777046112940102805063722287920137052115759881437819382319645212027267213389130641181536100637887242278829348771457137723764102151324046030380670577931483003024783649127520447645310955996765213756054619241369984910575235742277525684045512946725277137469751328913795612647772238193202809459587959608156054487502686330738935721674956329052686481796108448428867035420172487954285479338650429400198139657040650974820141750962614306019392652579729558369187267844384754207381228596205849573024362043918459467850337673314218448664438583697784741199036618192605114601717879314475532672140874900886436101584887623148526491860150134336314689269357361014785165318275722301156754835547927387055148617475222992070341194450512233495313299817540927572014718772406522228521225087798212895599050405327879073655067910470750141122377422804213040075416835115163130039991614004843368902696495797194178570300440452110484699707508237684612615907058137948576748374741662412141157714456237221819695577495180437191614363711534942688135144151435927644450195850895375798410108389985492755171795924943840718897551201118473831925679751534426947436375893313761704611988892527793290640451658534139741731882980131002941867877296399554010126209418622152186184068016685667943365462252223754128447743673911080443549252619076310655217230099627329954929665801593646344446796089188604092833589512937579016219183394725870575482989975214759027831944932208168842087660215858495173011256138577621941881110023191820867278214506328522112628602373480855737428349424831555196990978762634665600620556799957698703837168504088349321595951849076498347501264826035319260513802024837740685809429798496299393588080869048500030424969973567885763825445662864094606182954212618184313565117194059844918592166774655856397343323172408570197048310477966391351394343283687741198336249947234614161181380912125060452798060920624841201416375328988188810108192202929953900355209890432293155272389236968154415965148636934544889571686112834230191771671178324052717476270466574408651856935232569809560845395975377237259703325433435692352808322756953840781099677890678164740773419641576961566782146746565413748092264371659313242026274454020481742934925958333686296536025258349930560579031118621065535465380973950033856394156428723956899046947892422478580742578308688744230422113997178999053035713082523323108791465447860698801426908276028479762892757291442484809458485990807691801848816215148912221937361694169089878158734647750077049533097985212494296629797577198679395238316167822033191169365256718822067926526910135218795102932956414463552612606031940564818939662164294542953953800018559687629518347074180167120328007158806091788888429998206707255070140940588510067067657707184365252179208263247985882107750408816008924219221508417608005205969922994487580715782008526827027717207031467070576365173252052826366632284839832785481266801878204739242561175253321661703860685351741741580926031311467221504878804344455960444981100683059423825114513420967594339587863759488628958472390934116907791701838714576413595511467749959264971779805577506842552415648806862929602718300930357867655835497547854470423731374341925240593389240057986649138624310378331634803179782694296109461485101571473347312090475222805404477574320416263006007401250066981534269949776225766025514916793602046608378596849483534124934055869304149222256315029719673302496703524166761010706122314403630487999675875162941388782150041146279130026432901270408001943464182120879488016793279881910837020089433870361689780032770467214292475114884751117220947139311045874512308387891247060244022610237606775138378564881282945975490248641589875724805473645049208713694325761727746669546675580441532719497638025616376948288968810333732688922014122135156993429838268446442619094888727863004136393290026452810873420474088656701706568450095395601930214508388083996884441512689043909865741636899767299491757570150881189172883783214314198189301372800356223591555125725128608696707015448103038103863897100388968271997939020911285107138127170901571675947745324897465925689029187708997162094328979637030906206202785707320751422223516931429804943745819948741876870732098171418403266972930198602776836896451096342955895715040589627479334229396465330836426948243580182155320133864562026003839304830464421113018608698028176313659681829987029262916768492341180253565956355474908452212286204288716469860526588629806551226574023637864539941360081889696569394171874683690300259458905021377759926660727570309985729970498877977550028190534694204824455958073648727323120421363608196134388177752167839181348018306291931429799739759016109081843246169059007437808955365093769629122086784730172983201240998264164736721041462819186216056773656147081582932051335456889615985118282670869620456668596284848341929743736935209403673180825804232108989031703484448692631888325697146115927658975475385809465417096122538271782029829764911136403022132287411685096177960795932086499667359083833663811456983871485528367850824797873126338658505662813060860479408917661964183035364230000777141307087517315606032398915364311725958691967031498913724229576671314971346811104575173272759947116617595241604580514119237637851033106745155397947969038509489317195951996069963186837741129162668908981373470877220104831361066929754579315991413611092658621171818142146427572376848902804363260688195874089128106207993197436602948218373877585356329691042030176741699013529056138727706602892609993786907787632985696932872561841816367190764740195690713738267669630869817697857467412288853960239934961613738709618849575882370111915304832166870233248981012849244627250514065643996952274661385345831758267142705931146411965830774140557968022727611241529792849532401808873327470452053862938246268724410365791391302557480990388320184373608603233602383472526211688938185733938238524498199836960626524888973071342526897242948577848527229329374213969484118438973907691761217193322587379160770943322343538362432336801641486585109880442412615467759629640820653532572964200462565913004345139558791197396207783192855166382402460754582692759877449468419578953722302314375710950721592441357235445826279195286271022505701674072745303533689642828636268985321385936976980035277721646475715361993689971376915213287150097505226333838898169677151867397167252782638383656614855576956982429864273031451386636128074675074788288567949829144286624068446655087025709714495699249409043556651967732802573836040195516166636214686676327494173800779450222092018469794639138803415710463377590714883257108392403910299731621371708648256888610907980048257684252050686550070740518143278595008468278401539184323283502071129376359456453016033205049670733245623374872425005438629542095001790094666956280234347342419741977720991049231946480521205778487653779172132979209774966545370668377351601151166324173878526596059711732853907981983876581169953025536164733968274436722737421361852397143757971621659527618944109764392626203769239250043573542479940983120334355115037998188650658014740360787290737759174919540250715529874382816539992345253408775271950325353754807326265500798801457898064193838357427337340702183097450229570650582216554662888974888374590969272902768732525274912752570311141159150429786067013317472326400222245694354690047533607766632791426932274399207717147075299283570495155870000743434941964546311901805588339862908555482069540770307147947222464357194999794408175963214360884716713868190727692062282976512086654563921833987639584917957673342924464719805927387505201875612291177844515336705153287320338981106149731097071321936807721346027031012413565558432171698056403117918229141105417347105396560970382206605659857426482195039113736611072694163324213076591066522925730139373840669511035062907821258991091524103531520305590020471904368631997851875811923035609380219149984613501781034238339210544924034025361233940145811282466308328128105766987183493438861008944789293688797508343884261441206598407924533321642109130984880114561060774964223718104867307870147050725982080703760944184485576801070694763072136747201218803671602785642788052767471760910493000994514026414028326398490456136523077036482328374493680785370104094145012423874531351897685178771072691357463180260916480388788946768851278895764346512905769609150335200991895955114990976945466722613536760157945254221599515700404526612031288571744712352432554621618887852690796908245373840354587164744300970527084320451845184704637962466806089333293923157809093984624932597931295697941008454403225960368353090508811438161375749513760884395719392341880760716367838708380357292963514085924185262621457020995495103412605482854702639772013772321976860662938382800425190023759276419011210647440140522584716421792389579633314417104567128615168486642343336635188878644848079587802267855000721930549283700413834018922007408590415292374830596733223607308813282766511558322402217032308437459617869000409370473078654162937878731074121873791866386921407391037294995674930947338533162763019891288351444310988709822702210325706435910077236302529484405524597403916626181600531678796054625875566208827509851591854918233361443076019687431717569808172934319779973899725388587698027386150435049784924049952834736372043036497715469590099583120354253745503225596489465378246667756349467027937600155043993469050088728018630661644317498398786102394264663607912000930591769736777592946081211071629392277384705911653214778784110101240810585527448210226431118414042710558285700239085206509611658232595567848430115791098578153770326052184595652446348389849695734259184182559238944268797418645896022131942397166544608644332820427143639204107666715975507565730074654068898907372968280245778217338593855634555927965705301299793184699991369441628956651606811352377172806607211197407592108658440291683136734029476694876436456818061786921061187416258330557737403837093450945673725848295314404136557171873494531678176849661430800862959891659547627225001554663710162308733318112869713347780567011468168174249913150861339469686349995880286485418786327500408010681129156792233680601682664916327351938606365399440936728764525703649301258991401583981642270410228762028043251343267212074129126438145402855686527461857735449984954717977861338604987666091490792303844337193767004120048211127939776656112059420774618470416763620004643115703384356401392772627016787000650923572379221278464456410981768630578142374752393658323614423525985348371693835074278086836518931627582969638163961792009689971908557828489404766764413481724620831640060885991967615143129143539522943220374456452217684584183981031394595924302499541247559076937715520566139618228455370305313934542806925350502314057849079482597213512142089996368411206772709562058265554598837216051591701796697830647076984870325507188606049400795103454224908019540305222740487360392433773948422223096788325426056523637994060535002690393372003407301985881597909825925282148808374856358577611407337051693770643554442374670779789054317067082654439339678399021721851673401930455634249882759690177342046214503662731261899122669524349828565690148256147241575760476740727614817095273829731712194135315786317612878262993571155332045886135251643246742893867117035576338817856548134749715942922406496734275492228738127062386550549153157899461104980642529602280857262994908855078114472396559785954529313091079265667736348362191017561575223703001288563986208666700203215066498119076886809829547938231690630586623483476289798036659379396891594749346092209640205626150313208177616981790265724034974735688550022611659209323977285852963082158937172938369468029573847734712649046514283544983612172511555313895471339400893210655358782037037876919930118476532059996493303726975291351587996944878881999071973341420000750865986838041977764347936352999527534806470105925960130611108643998050544291145052990928431674936049695503142652403514766483257839169619619454731185070136932818335520960541533044105811955897319265288271530483633642797275528968224695034450271423849675982874757619144952442287380014704120806438522816268293876038587773703399459740450395597072570426016242695676038202829809250969204476281184823507158632534635484162340331419974234064825614720659639927759968979659542607478775091002054284466863733685358894929509294619343438235403792147862711707241252258914784623246147317765244436922298224993362139717740428625221169779794746136289784818292970793099497045920933998704365345906649270547681390440944961516085375521727171986462236922910850678832196816759726595618249886688859158296979160290550210249713202651350748347985081601504838175530909161953233716461022802724054188449254611535517935944218132793330504611595199395197088848864833167017097372082957021202510411878291101086415207334223529557599263769775198623678046297977795098946408725915859717413453940152136721026219152573951948505908283933627301753696164391878856374322979391724444152073477254738088983405413445724765160431948068405744029036397979962477494501098049424802106323064078932392337381328974376898302962795424340353618928559706252063801711381939361873998561329004250057360111955176042108347601321033741514170437176579629934076030117379109789882838081666049762284132058127982805006601010375314799137609683846803539028438222027669976343263224877323409201023393202287354117654069350105908016994369290040354941686486490847619474410029110378872895587821891265674085923871418925365482710726180702844925071030021645818042472680846319079169289145611722828887399270038142259669171397828277343182947878625022290929921195781230709836983707673261375988397723955356982331919207824983045634887412994840848023628669933115199254729000789701414045093906358017229186552049260283067497307856305236422507285258698992742867886449912785100994874921468480918558507453259607628307647025947473146311134785621705001193921395738149833214559864598033299250415288499354795137792041607999716195057910449828534237164166832684230309483581959847692477587047735020485614610318297062494507491133604316976905408461282128855150746081140596134403806628532606480506392138323023875207238590307463253728869455837904549845290938886047638509034038331085841452621854528202762071924001274589593488073840912612815236273387189852797752405059673383503629806138379903612095568866356970567516415444469200400548899057176542354334031806335273918023103197129078730598556410852483465990980112633103971345768172743317139206207163010275255024322589006506567610843731802881964381490170173605665467650218119120864440502607783153121010315721176424770806518551633156888247308059209920406656672307759471515629776445499938335487598901289744299201392238253098758755890496936820773464959767884163329108425791708291495234396175879138379446557658229320483857047650807104474304487258582694831388674523629336659778530945306495496995988727760960954944868684147652613915240035196520677412499502408219530786416125711622308897400714788450059591240877258288099671620980204531412097977619125931528736539804375424141811249886358408112788086256963661157221817543498145181396926646186698938139196132190660273330954906471455310158656017173589074556610628874717584213585262909532750950277680770743633366809948543904260802301859612272021852957663413149867378767787464793372338366349005609450634643896886208355175445743673286435020570677307001632476521010731166472762139522019196819742267728700616076640388530522742911607411444559929869323314034449291143404717655482484818053602817662057015753074145189042775551270358934967244552308298750760531473283998480856831213587381907947665436256376024451498145802337043133929123540001536840647555545552560229769244901088728063459318791270627639742781195073116312726903763076670358791923434596262073563676131270214973418296636463799661216739487987118889325530080196134912600582769105461089613908481362301306461104194521180881580322855064786237751102257167335186704684453944473966892104074903531948829471879147864101293723181212934910812507287981238517791219090290692745216759890191654650724065099625636146355681615824091541705362351545875501368460443219590099034788055331399472836691989390142017032670629348765884265892376864211311357691378034136411759877484767062463083186684509536328524205596568597204199398984084878100128872352711966280031806212411642472247897669692469841767284570919881213095905000691227207687993509938314633368414940896031387390212724005994010364734683040545984840160721893310364230924789507584076218851282626203133478148218217012640792038943455109562152602855321182133894744956017877580879605171230786502362201617823895467933007994349151745867024087019857068282206814334479703040711973166149235156824175624139360370131905284676710405143685827020845437048282239278829719067001823183097495008001963960286462427745017926370120256710326695072550896035309877309166737800194351377969853202306405342330616878668836486229261166184794583897925327739720203756838129154618812001352104604775645482738203578588805902622622974895045766318164660910617735364752892270472292652119132049853533582163377478168285543383636594400472336934022941436364971370386037837083941069835130000505977842116596475130359650953069858781280492749863168250062738056571487505106819528861089197221777765979983167197306985081447196631933276639060296058553446016760046438396240655353763405437973244719904460874684586824017836419432307694256157435617941501723016331658487392131144799311630558895116081593997892108294536195086203700756568150712518584592439283662346420994044554851148902914424433851807366553027041595992583201593916174605816627536080911878338551364851361264610038657262010557938791984559488704589995289332720454485346048372865803810456921419390717417943423336226511698387098640064335957117742855672075810140013678054615860442522320445446070735503682786775932514248612380741290938022823393628713604741344573693454619834992872633410587664129179487260713132972657873063956564132891914525549939472709832943939203562421426973966038761739008642734463163110679804785155181359653775456151080474391920041296389194872708457502659477825920734697630886898004905091542417419845937437411111402816040003360702764340136607481267826602300558247081169892044580481834178895036425872904170501450964644695099688424669410141475869122894259487434711084540245366953353092884131495887886077386133943185583231363259211815564774290499327656889691130637222137209765527205853774500203306597645713657444111470109289231802638916050907205635256384440448703662985026762802940448588857291166252398518103087045974770232288011361566804663878445810042153233960174009272757395507540239755484273920581525512961491826166259567720070579520214909158233628682079200586681747415900689646429844661361427257007027321657274129979153651833107169666239769456190030679384303952299208071966372325078617461154409588403435378285781741410119685140369231008236092633333424913304562143041489523945653324189220574357184709653785425771695036151850744548118691619558734695245631959638370298979408529799873310122670488843987285676466829566429075832473875033594661600330154413287598700456298953902760618359104486944518209026861222538911602541516943249845631488694689342648455760139163047706874678653175353242351694537881820921253321736065253650330020675541563225608274452842464228334783718278451745017744800906531736804044478747356489915810557490812880571556578267214209032440183328825288337802563812047472374906665993901182157917666173386422802915897284654549190886161728831119897925751130592076038775608295250337371980967221695588547488161269911101472619064661127883133867606678232197749095158535706020717851892652087655174046566215778917837290560829318495199965075974698434294241910820940844452067032867949139313083282266815523982288140925627602527230633883584696678660258068798470700561798378257491471300283735021832832410248996199582410974810256670934959227036523130831315869252420106813728672804319821043690544573268675874418481734076228421378945294588103943184139939234377248088442170007688492812064204120986842747573410052651260911499752424423361050016067049998870573601709635918666431107479078406772404616365762095682280651068814327220576792473608173532498454649501081611306760866165958125856420287722476157697651908963224648860812195051581389678611752716100359984625326053831272160892533383054843614686418284717843198269113951233213997618812230186762212792277051219250591014517545595052271623435818835578988973256824801396009475273305854002810429351855160349645950041303165694486191193839448136681629211111982765450352466262534687763379069366402720041902960213788143504595227308701958937655583555968402984864665614728285154841987180749679277211212247363185050903663830885188155314267006662750802903888320554072087545193957527065705324911429467537736312635612599025491248142380738207719103103711612460438002026990703394172400205468333023481518902686503264180355777515123057768175277917168336834603603050604785421424780659457709995096919387330017442510309026910976083480184219415088186726518933718973396834666769820360151519769322157424841434283345907932588361154894582415575878237746862562757664577443395593575627414869635245715571774427872716061552467575030138502184309944616121447623085389074282419557900129304304354225154125584668832469555296887898133999361569547120124264771564507893908013920059021657131823180520042805676318742191712733769448076534679289243523434317887685629284952322535385966351646691768956566421092805080311089748525231948034329356653369179415352934951207757725017599679508626013442288059942720364477946444937577118617796116258502959520027994584577829001026774685852541301012900413397266434403233762595664154922386796722945682139553573771878833677998135022820036235041411863344349593629766587140460182962103587693075703554629091862172393267017037088876699215656487845204073187926476787637228948814936397674121667429548809538270991912898709864452414677639461250492024432024068413055379758125102485499351639357352719408979338859587737639164021548219858461138186191055122253258791172893602932078546566480167790081799700306850842029438700585762876409775657605881554588221392305975447311072412953339434751801327907161152903906918581436981514459961849745380620209283745478637914520394734020504092364717674477212023934312454395815597340455893093121839390611343110110773852336905262408671000354499742014933768010010766639002418674945553612026747905827797780444836746600918593136062364493147530646125979147563727202146827820146685584843295279945134065037894141651608593250208559505536655795843545117812189533560255541226085931647337971167514347132083299202942312071278858447005251431805519877047041042086439538085490911480906688786297036365788092268921604005498975720984427972446683832637411221338877798085301706787147088496581899606574044479540696247880927294615806943594089448475494884980820170225469945974525899102524787146740593041686643427455602750406414526042008254047745389598899663589217673709180390456967136087633026187864056506352970119282844317800859561857232964491815286716190014130254826442939581138613433208540269156389330609576934736616115312608238865519982159054773941026098241155582931996004092706334251961172325739156629176163786813294745283343695371473189970292238442134965920972212989549885605308278913981476470068985289865148887241728640771841896223898238680725793290747892161468160832344531042364354632446989815892533537540362815766051800545048582765211243730513228520372423735146396312218126953371866158457445765561188846854312232153003614883885448330060802674745423372915417977458750037483813281196194575518089661032003707776550336132434929307442096594357660208350262002969705860036373971974390300030527977497744507837737446964902262935651858901647855083694967316335428292992016232290729532475816755244084747289829416770285944035014225466378025159192360666410341746545188645818490238755345332767215384288744108605964859744906783085968292282872179198997413025114075700915706986429702570038907855172743692750473065714224103227804070667619361374088360642648569936999012816242711922728230216382610257652018329406584903195921858938376744861215153035271510673502663157321877018947824014762139801989539757618316690295419135776578738477523194672912339379408933413614855150079860745491925220171887121074117712859298031523685900377249236653212062904070354571142172746051841534955442844882267676194719133584390114229446762499419385275388357420545840595392059289682991378730998901931607238814716045595716557909641790012843629607370904592688522538114210399544017106905616401044637819508311924305266679299317019140714604537407568788644114298156182969730674800841884693077684745701696541375723381800369492582877651003728598626938580361527587937044762219695534961076706507913603684964803977326597574585514342362297006012289131245744352032787995784854345001183239511155953021098033417006884002214447616283333733453295666730118675134381234751896874537562495603191300254079489996993820992781556867623303609393194224662513941145418788657516197179916112855552033789958559520428039642146917262271104687660487423712956793510802197665416344088881129386770609688201876520659209504708075073495861025117790683428591579497676837953083524732395484560570326743136757380825740896950981276072006065497630012647034160710541194289876490257959120184254723421884347126971028806318993107858011990325817897841782142253238823408285889050307479223034947020746473442383546251352161589577278457610874130318425317449803055020280824877302109892980294113242177678036897163139037830445236506411145807374243432591550016964242716607806037091938700445194211055177693533624357871138838052821356540499193676814532737567709362501432602030427739215529173979983099946385501555263969511782802376911245860084642673305350044365730454443707325740436540064734580237913102383999828428993002646345757302937355592702701208392799623510753420883549161928112392914176117343846519758453032227833530963822247915661869642714362122446881340967058479508233055001408832330198780147662390041406249118980397773624847081802416437255860249659143073112124449556632525191892486779625544934978869544873393049947761852738510879663627218985463712427897016818197073219291035247257143257703225701259782157949478418360375754491061819129129171437581046015721940555674942225593545477409317447602027673591645197279668353273156199384892416732238275753477789169006896770187185337114686873847771887563224942376611951083954926603477013786022423861877607793076714952378820592606401028563707702546681358086754484901074788292179169657155831584151372987562338211709454587898892369703899244466132342595472791560419917176131576074673447494768619221216106319011872193094509945363963010762485151291026503202854476286926038327758755250884633011215970231664743186978355504725280859317039912832164649542930677744862299006780864916916913280516930631698704814547421829160034965963823560776817162015828477761355243721319326907793726981534183547286474921371751003107137668268708913595897327809183453530813226143993712876904036331946540280455114493352328152994169642537588560113228276229791757591287332805222701221345577567624106021635008718507591157680958283514125398897345176993730871890991366218527871071985840980606672479803071473918503984464800060335709835714580137779483159689261597186107772169644026222146484247225170266115012684140174453520404863521297545967190038478904797547583737518104688128356340542600501194108916946585787799687864582431953978377788162948505875178698202934443637222481175555895347803882898032698633714870470956466821785415179950621562384468404048817172406848524937021124883129016788265081253252924021509053612937958600891178007186405568629427982706911492976640822517668999840981450206321117852032051974494370655787850560200186696542808465559528284355428649695738713562803083664399896668017225864192309297461405202445721419276073229222069865060021962420453318425509609067483641385152370830878004102580340629406876947295093752894735785810078212826623488836224720297019070889241382149481535170307402212679362809944194355000736738856082575927224245053644965623756520167130707299777920235581180295996337076228029747083081139984014461630271024306779363890667536891475579548747146312061568464067965914667005019801727734391003457871150611869175255518712937714208158579884249634773844165257804321033403994029283368788217608740598943151961912502315371042692543039716414582041816087479941297788505275455454400437511846858109593348520104030648025331642864368092887064033864712132168779622986312604039163698627134957801752525099977122514380053391883763635455892424286887162691948108828032343307237841440297139168793665260798767749167372745492080683462157080181744397777120951200310593518521513060990939902732645572988712952923934766177977677925070112213939008381492378204666189593803900936650119145814255763356807820421029326058441468183081499406298281720453873198947605379345852757966506531436191687863919064796708521923673462520929294107087659875421947186318410076380958351528115099795788674680635370622341832565767392073450776531436173920065783712115425058984431493807660138963385109465793557505999084361286590983220558055223290599780114552930127581429402181870730128170077541748832936206081047701018111372311912160789960924764586640766097891713278671893934036105571529908128555249095139838350684134535538339791785682775406688097527775865080003055536355747828118511258114976292685974898413001676806978539157258954524780224726131758688384243413247484576672706364002105441639594253694663397493384700963422493850588106007081101774924635388500380880712519244486559656309249421882573058282368334307143039423737762885713824836466374680789790862923626160730394199579707620923024917659737178370683284916189125612734098209578950406216898584688099613880038716068827386886721578841304587093260636693334472107524984308959806380351157897355285678124121921147848535715892062509453244712546489317479514538207191495898867849532810186634344359612710029884050011897489951785275706524027393982290336930384621430612382860752427480073620823330366584587095045780094688663631692476727891057067017393940740882227038348502530484890014043575978475183807252081852437986346846810563959301841835842790039372598160831316123403397542309506172890323616290765818865175966233943675757916985950845132012200808308445356804089203320932627269137855927049558370815438134352415087436339134980585164206168344747751608193547049180509419851180914088501037340443330721941038184568462401421856580469344194539025875486802556982634215008416423378567652389336836564938636685744666668375560327203014394985806192744933232412756286267123501136219763018956415949315166989020713654391921914460042341661217112533247411196734549464034213728139475100119681936331681401726605582347679419838719870159400290466372994001331532308395137024521660320880720682927126798935111455208707093928670534053829633074804194156048580352404422932899429649999697225275975050063223449011186570675908539184075126287872951624754434108237208111613309464313317444795150381698422725389355282450238129911034218679546754806217833242796046823409253499190599690374952993839131780688287737124587013451777156987920698718030530835635428166517952495293438675736832521577236290491106501434327564241919533211031735262972045734357828553866743925947986956721928328045388243506230224174303526267201719340884533512726619393229497937202393592214365938365375330368934486752376478972426536873422679181534863443384665443775015351557459996472278964064880085428001985284751458497138294168891490307922759462564293722112576508994611402361907113011035379253861287449647320224705709928692980616364209557206084901915859218751958106546810934290751590381358698326224643897719304979885080427459441229624484349251771383669563539219930242977129648030200393599204519295245113808649204389072668670035943754971543182075455380026369047432931706748812486507557246134781894312849050286011547996679454907664048342542136665447212632067193397915195723412484490307239954880228103537990012950221251947915392728928422524379900379450751304272665678559778534594514182561866712156994522855986702277269085140805348820795323563909477474839435633947233387944280961225465086023657171215272690220270398455806796144355986951731500222398421326239303073427313434303028906634778093700752507403997578978045744224073329182916564516253584204629029981335883580364712171303626011873913563394216517662139034637595161804798644232835111312599866837264720892221223644893808813682484570723367757069960106896011068612887197945234390860575531273997742070272973873405409633642414539972317095041465911390655775032832078440882447392239673832778803134827894941183318922621404870350046461971416211809241791308391738445958847087556292771616373941477802505805075095423128456952012203875962701473204718388493751198667122673696459517432544165759639159723789417111237281809316517976864478629151800343253792674924031996389307045278774817453188451590809571279687305730211681019989037681437160182712215013098134771531818855004185499860314129066838173106266103308956648759156285769300526474544352986175302503391948511002772999079494936770616416959272797306400263930559025018473183232407657154641520642659769964787552083949131793259899414287919280437216794572265420189936146218674396840613936244990010140602319685945641237939688392940798531567663126865088421184726360259161128165532647702263398554849110403610982968130889635813378162446930781509835736133015945720024225832717333313488787210763002502689135783464039246073858079913056123777945039504436409792559453379269949978562678048044932471872048076597744979651019915104566940253106462900309975599145349914567921069485722686310467204249538005318072469646870563996140910833905787631939693784858779317787990932585139633830215133494007391141371588471462382817931901141170065358848011619406710341294535775962904820752504272893231710063305981410893346372583057056888593158114599216386391866099371385306290442845412840506798461957791316674308778618929402986561726988489755470064960745849020574966486085423647627992452652515749246290695524160268247823713404449076263721381477619119454792921443798700223851209829184644472361167858772952244622127495576728796624851855135335451865592859527699921200357592126541521616345708602897497053780147053245430509306719089006785385402935075694399607634418815727595299855099100692921071308071350804786601413273371365049935790210025410023951212126953696281343110881211189394657545025609358376548017834607150377735192108108661934598828334623888346430044861412441313956216952964695029609234430889023324050560779481929403444373074566698114597987746739526007839813193568386065080895358446550953758816157170373438668833448449684496001631588997165256549365960327877542788226388518777712703964730144579271454529345839068622037432505958270676009187933490080759722563809974133334279902064619777656849180141981920074408992538008915639952122459378209894284023599302183788702778073582713839224431741457547806084607882107196538129583955037522545377833846700734469658078339984128047719553680430928515127746461141807904690152202081155867434532197426308723719593004799276972798633005197759835498980750794470677484092359626302933279701285635035288389240955890772651947604797683169496818349504275363285989573300638181230248608112514525745060568822921165841119802958746206273228014145190438250300617752001830121541537929443734601675416472150216555573461820251092883798923590836145073487421227435195703544464954895592421040350968380231186752704803612373012987733481889278074120651663773165796150946239321814226013512756670291192442267725235191014915421448071744732745215722053859746691949644223297948831585339539175367184456176233678513420438828592510421767112738438157787038800085620800059927816512400447275323125933185039441956187186888625246937251515752478566595830823849598625073672993516838261534718061047462993828083290021064380591049317668280791163521678028672466336860511698287662768397539472073227858490688146337162821321991331523728893980746908951080603363669751893256372620953478494863063772753011511847445775240539051394600888922190502303549630523127813606423015429093683274312839104956396844015712368474869854118779351754085835102933944540901424681438824586474349086540449921791979746173333810833750994419049985075610408708091052884624899233964049927660380561238355095567517936661402498504471954988047156847625866245799971245218355930588533444335304354173670727755138514799371783783458805777904409131559950816609839804874498111484724374547332030484331956604891596213496728006266457401470095437419690776510409902174146372151288210007695378204994946873942932555193174541508822836195932234663899730223780400013275007896501714174503696039523887523282884361136734272647468050788326593342690793506499562472550900393926791142930278477468833010243652660132451751146359418294897413836106520718406240292532895478297272133052186832087535144163600045162196613684815245688783025550524238411707493027615264840325895450432732636163011354921784320346094642793414063963853429398948235306541044633666408851400760991237384009913290337935753599477263070331030662740896416684145735001783813656025624119900664995306405798913472873503560384648685015681403028194684489810419130060552925397834960456873074414642730175219265358432662839006062273609309773422864941896246591738519548391789134511073044700180402995858195420571130280378641450278187439918484131457550907548069724649232959230865100251729329348646799641275327764046616565993834896902734757116175928114071175250459583110483309714294348962147234490192834328969158811153064950124443795220764136659244544425879221873560736672416502193971847094325750787656521667161391265605921858866319985718465115745389646214180051148263364625464773967973841707730549572345596741255329939133159443272175419847347618427013798285177487945601783635393692070866588967244773913442809551348501379019780985756034391571262984250744036049703041263341557904082309258247451560689484961426486915857260986318096564102323277653067655853765665152054740905992674419426732540244077307559225047311165470908213918013082022722285622923718818034402140979598285230818847099305823006094443341044556125537136171286892142478737573284316048417988321082492806993697580908371779072026014655666029196428600049382418781462909228543687823403545036697420355474159895077765887842089045862030624624944999028124210134967784472679767609409152130413094413103495681475565125907034701894263771145838750512362241605174110694243456390458467250183265413705132003816094107417361690450645282063133437644156481809802656436985250348911761058461356606283213405868621143533809530276790477082429960190264630396292122278095141708374213078481725929857398459998356549864500751441263170308873778130550117804800410895780803760004536351654847170226018385323914572586435012453393895078134130460186031064224735958297439018399685183147953619377280608986524027670991815466403919456928114003613413228210392657101702611528259249146262144117290411460682938174334064832118075046482537462233502052693479455004786930660509068446969548079904124534461903105452674919522635567728140322834156197326081708196054651648546042762665931892789535635541304105692801792128331193906584043548396940173919434364381968284704467895587462179503334584737533862565958847066408430328453369178064135471692495213299175427703180991102531725289471062411787555764000042068297214962441685159041061123923854708483983913086792020533579546950999852005072930480185772634945276970316298157029774089707069647713336764411752311532688317178636917640996485052009474808055903131432363452834088880658936987328603839848875102700889815814117413190045851388832922325562351796391918118158521209362502778119397294947294992254172176818191222305079239030708915027936395360880295301351730683364392101100604121600806859428720014442204416171069539313034295299546695867064902228425509275959672923622134143677196880255259112259308097189001623318191301266345341323990507907592849244595280736927420880173202078209476313714207971106042240309243076075575122062886800820382061251287526217804915824941610995038356637891132565554226625752570598930596250141693384465665038309877482096721004300409112926712178747302852639235970597942819579430960285046446394137784686795705145127846574553978036564882800971352589453047067486659903182983078984667367888758129056473114881749176178253918400111356564162559776469947641339623178874094725113395146551072850896705499976301150011905858883144594412023779510982283203262783092680817223215379214958563668105172752888247835053067408406884778643155799154961247320896103424940338408935068724154022805476871641707178661187801997963631045252580369816783111030687739693383169447949391005003191523770516592119027421711807562913108428569438493774650270843807718875443847551272263822979771761334185081556398005983044919945393472604033497345489531819534072194033857347176572671585884012018137695037969024094094163540710834574905034507661247374021675727127446560574254471741953681595010176873290920732593168448354182991605881337940830204495581518324290268808935181153000199163676162926751041723909529243150118875496557632053941202507864800595046425931860382645224489233122268521900134118781305484855509106341024091054535250126362661555345090213321198713858205463505409313773660014963773601758616422337416565268297597507340415453725655810868418834720836982255670124171995422917302536720790924478282526405700634692055609128473878456563056793957389095456195075966199053627388211801492668202319439404306988592408632245956016080058670566843362185916233488307691190401670088882770402881275540927456780153219278053958923854895457553984535606253734274085630223443067581825532280770086355620873724294111297046588551566834242254382540601459054190971985306552075754632070314710839241791973240480065192149083230980960207442959985735648850666596635940931830405042783604332464414524063109040650764361997700488822891762009279007530933920569417757850470397740367074839353932142126117425490631787012259369644530412788527884146765870524049356640238815037834381317948226848556362335663158129951170697352193114428650084719478721680491781407869289829008761156108530415530376043905854220272848308962141184628096823585392805487369975009784540783244423451431521730635144063593031933971533127983147293806591072999319787162328087795659306411696440691477696374379945707023067085046592911531802715952998580104436469072307947135538641134504267378295711143923246358103091730216263484551844843272061066774953058638831234310652839296121557024848341351694974527211167097379192432773760702619687985986606968503495692195629720488774520322903336908810060798055486103877183524437624064585324202352022551878955107396863245378821293637743058342789899518669574003970549471561845164202095371423379148934675758023243017872141730651240988206308393939035972330726284429362597789987928009321395413603845439237711275894676011304710336026960638961736207325707746587846229045244728999661499905493382532558350345284133738145304474577835037042831129037757211329476187421871514294226765814841126310884564623161004432789088241007170702858899423684089086748147485034070586977067608902138216784172617570214213975411049417866847552140107295232055150646899897942872120435133617994061806718383054027268960652657577044120774616993736241244741767024783195609802883502957984668764384423737763201907840500536899505748620398137278022752877397495598489197870995963590164650206230161911944246389127508597657019877369536131346783747822993845772693573974593693158127913366028293545395736276492484486713622467625422824220388381458542882415761555939411666655698394745883178298550179557345815453102353425142107108734957840227849178404437978274677336824776919997210267318988265926205401260762461343979854774095188902685209689840108803634633107528613248690982001511415296802681132252333085690924555809969705506950382676316661642992161070011443425200919388554628527064312605697709564132407148831383007259723556443985835415371375450627159937883318044113499923199688091976055968060541384780157788529261441231695947513782921548000743413838720649011042786812756896590698377692757250439344020193922985517706497294517203090652939479145234740600850503945304400387157947206800941276413076037372731990368791816514437604939342272397236841208616173563978619684220945542462875520471028446315194071426374631119362555383013238238337892511425182339256807332323625244361386697227121519519880726926481195054902732662816446534301868947490693962580673569683509722139852296620790429773116296780252934502337132921098652456799651449984043456809904382392744852587707910365272682594429206379435071991299603323346249020957109457844926045784272128478736765823077451115347900646512819612603626804184627993250020741796022959059637061785464486801289565730034026881108859430121701785364665363516005271002853002746728096227283840104007190788034751364014215307032884538446464938604944169932507152640592399436971129909515365445506813633726833157731621694649941600151570918556050335635967618461447132558419324240075097183767452948170294413353054641285028887594708563776348390900978171622339994478495415611820278761158800120997042764870041216872355590661905559639949576397118446895085732864040984921730682168527981874234015852886910439995205477032148946574911659817326216217432366523045001430458681819166914019983739408831099844440443622732585871039435483080552435274732153972916464451117053158485939016449964780585506171875482748109727989992985598985568929469301601528460222938336288243210991008880092214149488113374918726689572525643028103707853852967618049302285417436779499565349728624491994136328896706296445507514239340002065747360100849986958254548589983426237163928063973702203268672487773267178362477909987243403126353457856265533111422739174749663753579111535890623769624914717658413576667023662210862534315829244865753750591285837200205021514086899267241474884853528853199298580558360807060796134838974822300275295317251114263013903686249356816586241846609365526197431799195705358757773615028393602891012745171037871344467842846473301389555889497386897702153175742882383189772610909137486330524579202832281817754495753606556706204699246049401613144256636879382185293349366056513477177818551756285459815009915677192037457800672378934970400431741618610722588394171091968433751310829788080408628210773742134210733847386721388185197403626222846827137768999246319079165640658155117743668917340922597380130782729808177282325846773314956220883359375106274436968181339320794244714876926906576526905096078316602464780314267406471232186963358539377689039075833952938507688644208078067801350667944144414224737127401808862679452085043662014603560164188570592406793124446439150722210540246540901907456663978265276215654631856704866881105538890535220647446375526656598827365245626651523968959854526643054984274926509070448048051539338742214654655653698040109782767417831436455445081481786257406934337655571401418370384352829151189159910243088159006960464355946165909371933088125351973427713384302879855416648546305165644019539419310923459501332334250721209679375312832531652093869240781239608572216928041722035113179945543883254675537700425605570674957492696259013859436482146317323698353336256546596136407464454673503892623698038003208316679667920991806795054048062469947791030879959719714787098780950170733784829523684233073378555388689480721410736034600928393134479557061160309617061903854972234798110077694383489968559646906194553216010359706556655725039423886247465271998150168107932347956101151973255959801177459106775663321798757643541671279261413125361801856947545134028549229280590050258554038500233118473920448302417569649285870405492827009977995287738542153018766032833204620711878172931122776665473277417659448830168041061617093514859012641978048829768827913999714630038754146899804725516221927008061536966698157083781267637152254994856579599441002854917279924492928176401840646522374127502307714647834508238674860336705506648709702751499357945798464762004106453328379054021774702157180752097598785531850818180165761518616201191489042443045343619409642928105258782645376289266109529727441095944264565171623179741362978757492110106731734743345969820126429013086610671681000508915770959665655349073316067478407681851256807739524933472063558618815651331031336572839171464450855057848140640863395497609512372167983523078568308243668918743771159028708064965302862879838739146955260269112631898059255073188836182107083913554825581167622474983982849173483386534937237186137577968666116152722595419369600737442397360632484015817199827112946486065320667789297896166800781582343543698070520868458317652638260882682375090706343760008383507946103162142296521589629172019649030379891026041473076024510308913782328759723071628809221703713873701898176589976330125429792356993838384383857491409245709908842916799019325773634801755781084187945874306805107372556778643925298193079086499475039478924546897940016718821183250209202012125640580761648455594387315808603408909071112898041933605908837587756905452740691118828069008591787930396205583029127600848209707830155134044251902879934772411726624211754341144302069435209597083200362725352980625804770944079462887123452530358562626708176223768718719030253145244248068221488350421619974486547799111862622213154873363288992635322807489749257887094275438152718230527335760295417418908944815146145969481170671409378680135655424952072396321161017231275597603979017959707860844219796506212857824445245264261421328650763955984775106324123726855163581056824372425270182919151490933526968940299514255277392755224928038043275872497576704833043614657310403516143908462794495175476978386317230881878491040377636004922028497624102194684818302779024227372508748723494460875361914511620880180359360683512610757924409210189551806142112150760246903043650233537960305189841682757458127775990728171628011157520175256209501682563366433641444510897593390150357855155318453346372885268790868531508851596739570240512132370208691485045485345087620497292710564571448199465813971474737744979973637927114183498085706062935661370334668875636700701712479872639622125213776943374770027530833401631350946282018996131403787672188037074069234940978635620812069234178911098728199983516435485305225651878491495000628058411316172827626887443878174441215662039416249952139830202680333923072498279052601638018905388770080975595012293917375778326903473818032997108900085738215899674591925850955228677863012731846543069328155004398259541610934670152240952799944380081698795567175032080924427931193188637885012807945783421524228728251488868293519022945809518206389349512560589194779630857012737738108461713324324741464300373290902181106031966640578552464165707819236204170958674751684078726768369421951187559966455277734792385929088346037339492468808702950852712453072967974222114244758696795740322555896208348793259325464780857893227151482338464463128995952507851236695275726683862332620823736557230956443373093205425698081394436565298687859461980440753717723023392244824609915684369932938507020063197772562908249870196237419494262933203665457286529055273523924533317771769099763940236918212207815004418336819332368883803044610544055223521221017040069772671669852157758747536653220804219531126573284076882121974542101330581429332176509513077591875425763476039747514014418032240699878870967259625596266220273461329541347102468973677504386543375350981942857490781512645421891127255171075414579876142123657404521635283692317840024792070398710174477815599635330957403154493934691099519965093797947742716379483198726124093513995897020679488695071769888855440657869571413898963537703299319740910086162250935160040660781944637320632470532838204820234091169851843612205633091713271943817842435786314560443351328083418827838649557642946167149274074761778599517886783209267392925761035202160498499904443412946594732963829876398240807165089935558982402382955292885122156792420950569826098262233320943231792200908434049495167808460021107797265584862771989970240804438071940603760504360820187853746504446832491123986836198019280689308963373610030736481269196774805943268052400967088887269667798671064102585185520071665830526795914991457134056011544609049285381861610346708682960021961783414970998647858354887448274098634176396253305422246469915605043905801473149730546067538939453543170263744293811973389728023757709222412808431960958009964975352515141749367379114140225632873169901245622866659745505846945791689455837401250356500844964610268022871435916103587252625675131756917967193018873358818822608126260515127281320937228113011789462557544042873114991878136364601521157260311987131501424918996780742417539822316520759686533767774473415099441904036177528570330215378685213130495685843988137349964505301459324114797918642619179027253050938237580699033849316077835508102109497731018762785056367554335732631773179085575570597242414178323089117044121834504154805177344346320436658439883299174137793102260594269342531846989583663613305338606531788720951997497480910556640737535958853800134894872538374253902285726712091951446500684158517656078681634158697967159165200130472393295460908362779992645474348227526343911503323984069179230403115892072682299059382826083076656335263696028080200020246734198561866757201012678270648186331583176705266229140030711175588024744194193939375911869517780054312431470034985928005627379500878279623401063054195959824525257924685819249076781073110286071704610156063806539058904029281755583493640457626874550997800419162514058913424623763150647354015739881659724868103830947474084902144514001037462707738453148984474604782873463677874936590955147437644515505525400222649204823334652009303622658708974760067790501836239937262013658449935189379426378319753317873905992286361722807083998301697761119236655050956592833808184243753652537288272230483938942535012146675223564781400883761046299833572844294023433915939405723637028133166525690752371220531373266717347826732406095921329724792877007491187189952059112841776422407706053995906365541353376053996955246666988504273944805760180029667253678732369627174145549282166729934384698833306062336074844565059310282362836178501462951207530693903254350820980223165458966459114355877322541088153582868676747374551441525491426673536152751182263260424177468899600059414236453482770436710495996718824761564406914213480604521079807701412515923047243860016899794370524365759690259309358830928228371547976371319015498078242030385892730151782768306352871782385487312786120813752723219464604559665784392050061240449322257978621003736644165081919058716633900326988565646300907304064233580995296922303508635491604730787388057907608413319030606544665568895635614019953900539683029147740669555112745177820506930359816296654790229749388874223033696954610885943119402415035386672121816876023443779194987696790930720587171402933075210523924715302714953914041982659795095521043553580058899903430331652510386904587769409703100306199851275658179589120933097944323261408425730074252228644593276774849673303753660266946685297127726278701184222495143970272028621784362883386148516052756320076004226487236957799576726417013773056594482977461002984873049535226962000199207232622852826709753997231682352850137722225351549871928310233522613370388926371699505893358423390285213805826252172295278988352900970248878236670188378985279296722751384837582553535308698070520875415603428254927905885057421523003015275038817093758222655931011709718396960109349149698889356731785331784506509078331825957464004402125982595222613574659536981187219741516503813529793986830187831347132652401255534322149455702741132823416738704027937752701986763399875399968736557701864358492485842563865561919518303023532322769769643649515522792754678623847160716986790384842282592635526196251505590125084071294794960877409791671914027908408774996192290599544594847413941697541999327074197420115922299180059870064848091429376577176388377420023153506935254347806086714206112248367304852096989675155775405719375217305937541409172996317649438226433678941145406547551393693261233443204947753925843054839070155026834596445744734239824976552858830084611411428953031232032611090077756707100718088688012938505331588485157110735807830839249789363187064360581764572397805429679694142823470199341387665949870744275597698823821104189921290382419820725223595110345372846604048426226043786549786463524448277395256679328948183102504986747828450116080506944793218959489821416488319117800491575692563359406818813264330485454602978315537020861997150063563739455759105905866637418005646572641509713363254757152373153570274283814306442042571778902612137657638530759406239129594095741904379322073655616298795685279623990545475002505662677199403346406788643383561850579140119371735461969507468088100528666555800702415995198449142225389459856736561493705191983549568229668360306587621861763901046249121867366486342823521059781598832401540756305654555048027260672094975712137435484052841659521950452520762395315851812803202216569804530600920027287423252004761800824722964635953649234378475773913244029153367385988036961343564484260504849951601449439024843031983234848894027776183012438657265535584810023551700539157066678530760107115033025013816678652045201411914669208995361121862767547488390768707092547510758893082338715327920917259946603274062433842498259462832468606605102223252314794916193302119484264658364119890407879378674910630310055749675197847436588164171833335991850434152254087183974068764956050083635530350055268924837770465429358378705139880016294491432634259089032038887311058672296058054248277937753644340942560118792955120794166655680911301552384925858464246425164172534627221400647507302078509099445598574611533093806053168032287556733015932436976741640567380703095351062520279731039006273933952179099477429173675533035747381257823533726021782317108415551577689500192391275632573955016201479799717712641768733729268610066375192767388973549180012682695009019935221188055827194971670612807716316820141641299560473311446854454772814713602549461001705724627812572452638027716368172850983585265861671886389463465236521473205811271819765697298176320491409380639813233076172426782116863097162452076076553925782097041830847501704373140899954075343096081150099519492763518317739714636044391806609346252105317550535653153190984349412150287398358136848594680817228424408421565982934523910426584214667783566829327319163568589232346401129707858019979884780462355582804569532961008781568125245220784572741854787616000879939731054556732523995604022914126937401602464403542266745089117119588909852232997363348462489015967386204869143196942041797260507530878042321985070382001446215842915950548620877327542877417471436522368668910695621370144105120446385929014839162889578652729847837334109886331939167876234834954658545718175616246547468024544410219258222768083711539765246473540360217197918555462707562368365771240487532665540787963849826519791463052020818694930578384334525809499562124244546419118791627567117040119829309390399415089337083065840943815945730097335457559218539440118240669750151136149315951154969917806533917356174344161977230233488893154661330919958782203559203938117759505171991368024401549818976188848069558703365697253111544266257170774234927061540680579206462109387888321675068526031524695841978867734195569304179396881292838834007411631192459878492365184099713367010323883872027346016622790295892678465505990851595101820145723623545879512650463559982991927949033656219353487486803703776847033034646555477010717812602665607918341612749305264742591319007464026598348392862557018062761829818943316185755412771958320228693261987025121006870066947436636583489615349761501886186870076192542008205106105315930518677155863812365215424783682589416372977080367687732535153056273467914289848526195174463562812101323862537527520446446753384797251381667925815708901404158029871080881925218554756951712976319787778067541143574034987982076268771711844892397083420855642245279174584773953508180410140299890388683866026277078540599764549479684811595902184609377629500699635520879151706052353202611329864010685227919248134537408145820540574851857256785985067551347865353271091885972728077224437738801906604844719316234977781815484769021724314536455945405928160661519072450895344163284702882037138897063566480015919178644255883039836729253028432007798022591721414188269221988597245918842879109222681388535907440461521319587176553632880484446216724966792462828110034649711289983192456019626995511893491399711376038468399892307481847672333650017049262870670762104362226004665372568955909648651394303554091979175749788834567828986230680369982042857283627818403323865117630671158416403496531361112877761798178191220683987374590215609095883473500401457980228213043971189584998074245997918856837664263127211502498986771521464282158637719585179622624517290029801565049672393642375850687046272842181092020918749447623872473790387675745031483839037197331865871464491244256525124120014984040405262568826670580039853576776779659822496710141008193904086263655761241594126439586438841780964110906498356916535845177464188395079176637569657439594200158873225075704111883292146735056827566555065788141126026390811912556336952912469270228963949113987522457023674170552079998761036224947825030507408404189642863448600083432635699982990970937468198263274955049751271012803927687762027273091668141689213405027321705533222917125480537917542679376410545027127648976621215541983910339332545643898658706990192543290540511512271777998717715296643500890950382442037616178796536078536068900788078448946679837674521481051928993471996330471978488363400422122159319666103427718774806692236785230347556513820815861144604966108152674881352769281509043648785366856421561645855632488447807676915711516520429617385714604754717404010569895712604709243134526588627112822107365518627947757227043079637207328384244525272044128819261901381592266616657899298250568068680551519307103834753931694930699609204935065354471569981320416273725706609453455675888151407671952038540790842825072127119715903163190202911416248271353846472525765612181938474477849325548286374115201721040098081373376914376538250322620714816867162217187422483984300232410659486391911816660807939425477640030294130534912825347180541239780873677384947108909293826140335009946456621491951606262005623073141136454299270236354095754128900327415965400032014242705459659436308568781190284971090654987322614754601852481375233658473160278296438947575994336709119012117316223071523659149706239944745342806396311229725903604849811474876513356603769542573301048144801854066702508132035243940549263491924624296213867519007345751071994923439473764424736244319505745303220915579181825108691023832982111464074445107318581035344203352073401754256799441443259129498498855690080305493844571535122917327073764613999886709859305956761278382521600834111597752425841824036102626622140168496329161314899880181759384253643919738317981469841415766734254386806718921400749586339722594624141603064745296157883759303193214889050541134888980312338376510237043700659494608577624953877622064627567764570711187996104703223615995159521376792300556721967559124550054598502796063938772482639175817548542925181814936411421895457347625553223965822412343368630662818404795561839143211032861303941451610204330400873359655312644264927672806915131694252006322981800024022614884055524369286134677188876506899822002757433639853527516784838222825964351316113834127979449568800930170249360881807205705588029292873803086533980384703738969098646952653009695764018866880303427425757494942840674335725763212393952469904043390555994210029659686447166671936075759460092217561846313632171333235686532163519783400628421440538456622921816862631573952857367567194552215373973827545904063256312796200063425009953083269256212479581184149936723687854127711913009285577442471346070374399812232949301205394426499679919610899409732675530935145463529327841501621634849080667854428803044763717025193498532028507671809908649903602711482704320851199333237606933876117058004206331348665480902195041800001088152395418997959316342628502687173072606246464476056984288730594081152255130136864824044673632434417464333559416068296554163510705316471673374881392299863821654266064230179408299962040685187450137037219901913426845456589462859534655879597093231803570704811225290476014764296270125521205284359736868611121206921839164396167765290667924739585805483350441884103850710918017358656581593454673361336606039550434501488781168082892776002760203345685899431625043602823462159952918223212903048576622576740395435250025999170858216857631115971671328581714659277308400739037573944408517144949791657041210785329274349398204117989326303044772168384647760249450910558712957010895322845545099149775707997289114795840622319632678890756841835296660693911476535742140474555969880801927517576823083693547792515504859629414663552548340571812033907738049925367453627873345020216190157901734717380059756184156341516867645020819629458677043840539579352618618583359027342519968107907127509733075900240366963728660908607279190774866760512514604666451156029582316111870199174430710169605559064213861784789573054962339198132473022862601172187297502552793601642515322855116498986765608932262870711485673420404289280860913978682375369570269174058418042277153745456845803851082290166671244614014103892354694925407761282305438318375078089218273884058182429234685323824905799044543950538086266972445371983466624653115693469416245932181706930482437441422895096338281956325636447598272163118746233185563196175555291327954224515372681992620038146090126931686260199581374071279751566942718375895723684667329678318266156610668792963968726323215537586346268166243009646590121795150948890534978617940721990369257931229841576107782621520642725222903470432197024797553955186198191954207225033749355428717142575859791491514488470152113641822998071057253333601706383818903034838470452691878419846878919788421765519855689298699484704501750219337902163488591006336476264465726032315179957868788769121991303936333236463634642794829798861060973436418228117228452281615553692871098924810753986766172962071409738916032318840556975258526514458627514094394144485619052254679361531744711877654030656070802569710245231980691247608707896302379904271005084480483049541986764213597024256606006839225514674420642250376971782517809407555735485865873263793947744736030257385196919418047074091724615800816537846790181591398546069055053857609662575055848234869967378451544178808050752760467076281534329313478681360829557000916144556709456241689098370066858503698217064531365573463806769626704776407014577081511944493760983030116717502777996559002450150272479464820624604046416627782350876298299099065396007275200230918789540304800505028182855805191997086572587669884390492482022367484275647684279687020935392007659880971641552160820033241597353812050177903552287096601959226931347198289002320993754833223208391022450098492470033552692018271868949609151572097669107161849136639648549520195518743382625844195624234058307928411642240682203414296591123565036246315101770992071509625920104981160453511029797237713176455566782636107498916771712736227527796695522466113973194581994138516104642189966101366278677729820414149916731072297895736060027735962444501192287195512219233566888000826356370946479210944573194907682907169563556998517670955571202566524651809601837661588315587948346064400164608698874571101051196297166669458361035180028036566127987221588203024374849925350716947916791661162302900902442897797519820599117035321664784984370762956167300002789829844915442901259510249228890787942760176329362553002628445160892694336522585066850879416118792058042986788383395791697262916280293701234311003814812445990543252173153246514607830301623122554553930159099773043945221068855647722616590844243428602277166453641034175398718513636409748669427147652259136071997118785990993927207958477173821912786316213374186173815473077759272202950550781217507094588796010974625509067108516236153863446069000633182291962351259966883935466713185606820616376276680626674102046315055801744861829224817593249249313749111796710842910824442773839887906519187786105446248533111118454918511034794920007212964530494665346327642625021337333636534862884477069435912819354712800598245056510044111435992804375310811411780471019257580368465611468910800962280542385278200147792656845800827031092473100516453440217528502665406745190028430712671557827874964771607596447375040103262525829928995731645076269815896614788563158228541508909363497934619214659292506742212036988350082707752226116568830979375097216084264063325934035386374105862752474220144772323578613975874359863052617229700897393549575782999167752848185498718968994918370308849953286275446371518230807974984311683731803061116284731223900965972375700895938739718649540138551652616943305457506854623539639033150746358794017435314806740817847808716867346994873865172627629687880336654421448904199781743360537969186792587938568870747931413481519481191603303404769671550447872262357606000833477245087046560332055215383792717587105344969103410877557671480449167357511923927487745527102053274954106657857145459794101830553583268349076681014006903198774131911575305990922440264754838186600772306246847879689646968897903887734436569306248389566012325040028422953748596649421758685022136607302081198161449298427707343280142641047135018368863277261247145380812991313470559938071102108942744485188933331418921135557557172349328696326882168820391091735627585320846831073270845935179017885719751804681695221758896658435713047121374134092000667539686253266040452920638106254557031924374082276060027445555596310605260582618587477144770699656544534096989234538157781044860635227840521594371634081214803837467826732839387622720039269509183868365324798819199951264524978302340350119736319341621244830925804812902520633354721321785728876475205056001759104890257660418207393603703400548603050450958285090356665999876514818666251811672822669279181764676797679119208569374392383316513049697392040904112359824811330716844627175813239999300788360727165170293793562289573734223794060265475443536362709878803755504255124268741234427002062336317328108886421598510519895437995671936240195490589872700603572942259085987730071317787656175050053247548088240213820361995026639016644951305563788219719013426620519299000428809873906319489480946337196236602159406003754210326120078219216077660721468808295881814987781680470952952698204585029488948541954387295265818906702186085370502739751406092455350113514220445947846791625316553812866884120103705399704670058766071343375057241511342347947425835786768894040419237615619062165049901964855001088679458289942763404599223249596860310820191034619399795858464716151147160523143961150536057764136760718939895398746908036657040254201702919290275574874134083539885022066161291143957279329178757279705758782642183322534597022753020807976752169282735871470072141602347317003103687225941974612990938244243603160448828777602724518584821660361527414710242419219822743808522082155867137139951676553798504431540155235086141373383943050231456124902830114671695942532746161103116184908290401845642661770357636233327065936208442420216681018581361920621697740119432647495000897866891649867612479436228661502191036888815339186545528277950935913221340045711806606271434835247895255986549001842397197150490486353432104537524612680345477974719537793377912033645837914323776935052787696119792042768940487221947065159602004473369577622739738775513575357957522601614070780941542487722028489490869058073673912028327369947147935574239220745869015950606026134436297466259410423603580780053317589481467790784710770137172347341680856526241852938127472508421797890689975839908621196652052902873729697042181092743123686527971153772081404583262035057692758851573620034971450446815082848972403619758150641788586126621013099669406340047562316931052341456613208757531212963740910381759950696187326269445706909754842205122478106005165364510318757972885536520645116078069229601910674917880358016914651454374359884604203031168987820805745171473713314662272970231241323841507108321137113333291041189232177881869739752000133463369587894414637229461811132717921886587694835376993537731807199935691345502564774231512284648797969495021901319811934017109896174828664305012267884541915812458306482438237385191655354882692867360503287664736079736806544421784956806217249025049205250244777732591796010329508245185451698282124105130444882431112305588340947323542193109061257089898932786532080344786188313097282083190368193756546121720748261971653142352693172009975816445022575541966185257556927720995427404876280287554721784458777845903777823015976985453776592132925779512750821003306407086332864319922433678036499492143953483037669975093089462242807179749639699552969093697754421394819962716961632013512704265491757234653719735162562763314075352302068149744291053523648597003381172898442653841199581654908661878211643936425492862251252787214552787089754275816933641190389925188770063195522315924377524654495288588600741315294682839818613196985064121903840950443455755917715267993886296245958679069264442635713653250153051254728679613290905594876702020024646213600368482386537623299370646929715640252969811474981329786222641223932643935015268992445304240960454383124183702049995699789720136028958003189368261840258787199444106147174171554114191221873587382027677677128050146840587577605741187208381914145912708791865520074997563610413138625018480414365944552263897613946770552392930148138266406843838654590543887898159295229463976153905911888625937398299094117917958108423539669392810304662624278895996029680265259257286985616367079646600800434570833513964517360598272786109522842652520684450851468976989833495512399546935469281557351947399857348709742834029290751551953015008399435608865968200896211857436801034990760145998592528082820020051079731469246897278524419428092236829839148335414964259519047402600683065179537875930855552516632076891168236831104445879977919810445152400977544146393696989733143513146899898995810703245394765362679033667096661947042563284906926207621826833573693346409138705078040631849625846171338863880496427135003543202371217181276744326871251210689795131943402864268914930421459618688568763655492565649126478144657073767281254990873001538856974845547076014842658445612019009426034260786955656608187902868086372395375891871593278956410870736017191187301726571495150795932922022821121431953305832966116445123328635802081429939853264735021181794500091707238773621374839460717971734291063909532959047041848497893487265915662814209036671835121594026290704896354890796864596174593234562286225599563421699076548280091935852609641347343576171560841642729213286873533875316899609091371698883895699032686675146183470358994874953681071017008432407543102264765854905118789294301101678921181166231174459869036971721010977640379279145923685208819184453002563380869046038315905164078879084813771550323692573733920818565649747911539168721566964638014016819168698542447478076989191376220739268829744532389925390343197803603463530992316747300058898399763125981554654299378602150786885212045180166011104193469060616682245543789221907622502953520974543345963545335521133714213366215170227045815749057324512817757453321118990742847241328064804455228459367722341274961471914568511524747495172482258807864157011894351860765195804012061662080151701914631118211986440683431626350914855761747445678024708122728392965128157314806546078904650934382048396009410786330720191403768959089192052138463375411439482694255356748540868345108944340464053816950249557027509246687786693971288634162226834963232341366272209706134712214747978183531320109425898904197039533323175783198326255097854297192408344512029473018647362665274447348200936225383115810866267743853611794083013863516652987237392195321876082478890471113304140561147788970268513770993966023240157277351675762134792214302930061543543756207757897630209577499019155021125004242459625712107262002131791843721169707597090871819676684170256801794237621375891821610025869957574637628156253604125990309701066242951559822819805268595492909856926668415037031048814778246921916436290303651008514254618661519585947452752782645272066398284860199049237288708919215452104447979550361693971134828661188247747384851684325785305790749408764425474310739571351067774597472232080975193389154218530106905474787805775039076576060108378308739277721457932272893532952527514315061085376745471196109424581908579283383700240193184958842347514673658362909057601629696692686091176435007660890452490551484901056686902514778281076093291748305492955959841217053876123379649746086266625998859356804382118313794168762977310320065681263852067882141724824858599719689066586541184916973880448416730506837610576028297964871521622933992783821228672978411033746771314011274762948170719707346978539498413724727177336168808507720804086874437245198467555990104812337608007053425864298205033707362627145683970129315624508800603079024938870384906318647664307329192209091215924368578357364734829371806890783580983047993610585444095349848536504255881777670987619683566267303380494878447759031276148790118322880438095868265824841760518059215037553526799975050997318978350762124904844034311638401892673148095565178528409587097758855570257156303808529040386104599398241147672580191380535898836242581123239982609328903519009976288975440939087932567789394154590233911381909435383129027476842928849827100961161263277228922480449598362265139580095968525637162846777702563383562699122433483589101905631170941856570072815146056544892733181067680289247864701639591161303885197825005286909952726298423313955265264623435457667790500591900075110763932013398830462949840031292771875637053539467398006936493467264017933581761246040288140140715468916420588565728490591213204658631849329592684297368087872859151168686388962539943999348090177763018123868116493909384852249234028232410895122951394757042628686414990998512871556072663097506260305139503975336905360929387676305814235799970999112408008449220145804584111235114402955395355460924662192856128537551177865309278870852387154510653367001379689023851612845929557609384839790735888367596266295371487119199808706426686380549316922012922219155215613848982176352384671053407143180278864670555758603680131668659446702477135180320169638836039126702885161887602308809592994910528832106034903006355520102417075154231158189689185084916635967041485380919188917221323135014288613373805007744016464985995462926790301908015167125498729658117684639976253063769531763304805745191613108988664966196250570314646901495958528370348536851597704319973454204642591178343718206237512215223314160243829600914520650131201924271255302682733109952325356749407478525215083696759738683998608607359669523821396571527203399696100901173907127315185129829346620907674317240631039333718779980422189536366762880539447124017964883118743623981989203951463031543655985827970130087323387663194574738084204451675887204107977670947219030937917667703376248805171977144440909362464230105711040207426185779457618015253477216917953638973087446531737394358737124846416879084880008274580338058382674187461353393047061777373584570252935127591749201668243435018895987882768094159742641056483350855619098840402564993114690622762574000284536742016055007478797511956113476839150355653790827753239634820260492390257824627896814094369147127888646247415031082422426586037515142130907354729793972919265728818351181846712104159835990313650331715162830233905174304123836126987719942254999787343078716253287998957084012946522242514346456796068253900201543349171816035352935522368480868984529383079131645142924519292417512578744079930573186764694344908843946272741107258251184360996229277735221509820270595582413813282793091737472963837848373944741411835554514435465148182072924669420457337213117091544553810106081914000322332133708133049599616253843168057391358378465073344150948383292632728867519685236183427985839541648235689133171808348288061118873245554187811990872967589611574899926708427989866751225358014157672349644607786439189713404808587257727075953562013024653508035440654925816443814102136091283361300073769239595536005960369033743646963282624889256764082851581465459518887864936044987257855620540356116343629251935077556463052691235324626654222849460646562300650399963175740941601820215022393511299112027647436759743823817948353095708883612891096204630914016133182758959004344768184268448628056683597299207676570776410621763790593620141838291203825658638965962478551141254917248460371672407517293029231841672568103230304682269270325679655429526006647034319919960718701580172596932401614307576412803131458452586464268195962960255739921162049144127593333899887594347535415327777901477148283660058002269778638275812869534966763847950846895086740622641137204118789085195752745524635894923853603451782595713042470556946914803379147931480270996653460718811741743577612185311550930166590815053191138613447215593378622078302100286316245266811584859499391640831920932801196269305603665010855254548632331785207495521871913833925967083707862590418343454870686932376314979693748104005630579474813870966194782519744048286372823963537201078779430432359043955132938653282947550192976519469046048313104737323271166313053522882353742166576656509115160908476045589794511518550185274536849994790912707301966789909884214569868109898891078843586789427584994067829574576678208001893888422717245547545821408701515882938917819020806426471052964291984265518094894994343013109342040566927349426983900100010662992808542578852410557968731432296584697101876341753781132314395386081085381946710472661842021032719817814510785148198319714020348853473086188593163788932077273958286918091515819564052420148560513428385987570781489986948796080212838183379897078303635098432812346054817541669528936372850583450241749132108378048325742766579988675480127839032796604589242319572557639303652102009833870967635507389181738794695560999472292334946325883263239002182051562121273491087638204327925002873702239919995723242072442798132287932729785414861103858172653015247589484981308996549857707169562378326553980597402496434046023668670110878224977693252973812677533986830141951649329539930116233063146798006493353424704084375959629960446231419463000760202536254622138989476951789299636229505999587709437036420573877289578633380476672743815706873764075175745069593259076895976373035568252894058291565545338015506052571828839069986024405113895740034302836640204940792432144884676346528787938852528033267129619316399501502233708765089040302731621492462767785364386244622007101653420613888957166122112331806937950330934325896018131528544539621611227689741241781180994736599243078457108741818898772095468862156709964650972975218453879730525547610710450369322714297671426543660159485599651935341785980932574108862128072538279487826962638376235402451279497760477377431481398790254351804853964512985901908760176838924496201819863640747666897810991375968494524783938894069436989423443527953549549825945812753731471777519519084885947426351437609238741462296656461866075245748463566110793189910954262186136640097722751097142267758070320449544631519953738768057117123894462654537049706860446537893492458283094206354443260226697485395305308994508449043212733812539818848387372206636518550737267017466481180027355327448671087447100132575854300506210797379450495621410022482764146673405201767589247951064476412556760875179171468673459423236711912721022387242111800593680309602916948457437178316300649356929619918726462140149821896638089579168337043548556290605610815201371781763964653362934370317766390609210436335521811312160399497563975779616982410522936453137334491388483389166759732323227555729189488602403696042859163185564849895792389968484205170652087889313713044922981558765382460985337968423034417807440646855272938465575682452990938220821934008017682094611581115090924890565114769163366948589755268558356235499395636956184150908763309637579552378734870228830450455255187045815422580338831739800690144147901251631669290903481869305782663886081967849232774291566488535351150468562541163857120801858198512665368674712990404692875586909796007899259403844973142298536542301562492267023643503146955606502183199480234871383549193287863108312673255585738113548141419864540566729532667830144691900197916101485583161618279585386912164135509457395550397561425848085604159389029555779769578014386528686706845662906126890248297791059689127561856238660367788274987546185268236570650062095619124317743887817459848203790812901921326198187752243839745298557297691387112253077072397058015284557641526137905520939650666668013981981327411083671170123267478531778051895135365413403356177762680408033981489398484908865147506003359997265643652247420989121778215074371518442655062339216780391977522461117513103937422718890185893485717828167395921427289859340654634229934852188667237969375435157286169812843442641628096233445449409597085902875281003990537638581583069638486808163203494075612040520470601064766592250094501665316682263468039886993185709826630070110138738487903595667965936353835787150208506239704597115417972397672200432088748149202910055149680861129383820404251621848984568287567329474799828349713956260098885243005443857825277692578107060151321338942061697751029352697404239464615051425815813136017797653167466906677294874411337189624351778959146847740950039545026250692170270200716051336107759463328305657415043952558724205643726179050797980276829497375642356624352234945784422937871416924392313611077010044717891915164157776350943339954769005449702025518920238344993759554360711654552556858602929665718077628102231601411442796409739772998099616372405411554189859169876940501549336563742132099439163050952629443938373311927131204445924903855268009010923069277461299290949435460647601310271115960243411783071126764900325111646965195673424451052873184522881240926793767310130220844921390252361549624741463351027084248557970433979918949539793391138008533617206958670549199228162738032964615591296310965535721334162762490028497134340772439108398184532892858792559059424309096169980521975360664944335759156910629169107646102373275639145543657331510035755525209046498588976694112350285962080851764459764912896038341264527366383343989039198067610146349879190352981875406837549039445824840148782506977675031386664612385098530584784039739904110772882291552152387660985991462478710297019256687955333602306674115409205386065050042253097653672740056580503814554072577286465234401660713951466702240191747000877781217680324872873650366799798698989347531258301952370138403948531590064752801297852184456800449170762350362234067964992187543655990949338956196244572597024876563184149308470246878532249881973213973008475199317300668047483760214418889663841373129341273017099428403857309621274120561709699617760416623048779467798312074570837072605926842252981439852945528721456217316060087420021081902737905100194199071468706570201374183384024822430261942922429016001939992472153926838949502614557728876692334072795039838013055266471688204476815649393633962488232100443486559605319167726156884912721997649508291865279318919799251463034394520630620009528464143355807746236232966201060197064803166624418220716310919902599230162125600155525871402871613807631029168804496000980173971952869539286142232698697882050663153244034352388539713383329545446983486203581302509784797632284854231364718755395910383506883630683392276685604586169340197453229702706623615431920469087454607192087128453469691865836242009076255508668253702270448767179521986035238577505862232977787899198086732723218193754067441503766778761191163727318281532726966182521091195268142198823273285071398791087408930578437306855170229134332595795476408759437610070563965625108800877113282530976057892938121296942520000195326029410225816109551668849771678640461740734265388493824637387464800217837184852039169535497622265689687119166591017184048710321254542302150243997150472628062015545130840772788184583091550048425513849997721700469140772387438721154299911538187810209410272313307472016156809748295967372044717159697668652938288787671520190770863529332662293832835751118346624515569595647754641431955665356015422800453092198027667740139305253697017020020037240311984695916221331117507682885286545259183914357474040064297414932474974815208483175933945944938836613296138173463562345645239358949315649589863044294915975416307147141897870314816894317687823924477670431064489465347110885115043463652300152142126607589988305851051565387356529476163674692855620279388819253808295752484371680654984407467405423184307302211384142670328811775307731702611329023545874197605402068196788270274387672476625753128793626399288719819552193513919967298772961617366675364944125920973682303648606622711246647753559625410387640418884426247417200787949500051219610847722473738832563386704150817849471036459176295249784330018642140233557503593801324668942891462465941158548659558325615019478013208764186956188560419385261918122522047435519305460170778564845011635295365415559548792356746415382524076651163275350560596026760973333968946389826105684346767853068351572443657565518473850409014123354363111122053253352646888753517800089162624021041699701125762566556690175303541699767428831553527297741010192007435257352484887867074569600023144142313457973816038478378356944113612905450866015304743336042939283322004911535529163074727079097721477066889141672821659288043134063327979264541088505428822422100728346369405324602222889814753562969621041117046060677343911833084898446185470359290972690087339359618155521952649918080463732077106462857321531186838954562433111738484493270377521629728527761210603919475576506104831571367183606440182463009001846215149416181980652160413649350953319166038982442492968292226587311465668816887535429454444704645143701211263866190149328755530036786771004300991094830543083240249715959623809099097844299787061323766497110096600527523680691231411156629405674295669159237029546514571674687466492562173873713614023535121498047533524537352571537173291640196299102916034071549545802856108578854175107241949213816871790818279864760458727503041727267197018288560865096423207501691086232813614164977969058877937080610083585302329937044901647825587957786394101805112071819975149457720124928033003902551649395374539975425370915810162436230661195039685779239650928489913982798921111397690058858591357908399301975904653383763422984203241828395691711944743390946607969035969491990873871726449552976495919330519084583720882936499002666105201772567093498507928607004855248937105008457529556353658306041544542707353667214803472323714407720263131430668828793972459178166564801415845905713441730579022267224795548440493043185981173398080147814737040516274030044902875712875486633871359304773308024439262087599504945757952299866840972347841082930661530753381735014546850351171791701946233842130223931791849058530368839431256966796130256072369522577161426052466396109543014117697517303814150428595868649478375458135216364179164234986512903830695377188545694683562990805895770533432910560796830058178537232678743826586066101123304025266602366542688334844620028985810668399045579144945066109051446578912683148773050486760595438684815031312934806185704378622776552060548395041600266942601618423883321157498025075921797122760619556617660323719436505074717817335174647819959576461833019713764729367482830752498428031844854255580424272870050017876994579331527332615383123012956063460238142872874880982260805883416658742450090878749680892744074067770410617489449859985443891848530705502171850138151503485705727613050964167671538194811946421322338638391601052149994527608706277706302979080052269248450501854632216661058037946875372767325558006728405785077047088111575085973531473180949502207718239790460344752308295594183132739789618868015159246572300363074036404163895456934770880791836574557319293896492055700968701083728869763747852721748769354939419304785898823006794181965789492109102163970627254180639355914195943133918421192243911825258287326374936114041914611081511959298656329447118762154376453125511272441893241322048070161629165682247049999114964201984553020426333041200176729163945958988046953363002898613532259381642963120096344833568194660955593456513059662418116342007843225361301798695131298533043859750355859273448659869744972612965605893320685448128690626974196230059125548237733692078026799536050946806605175877238819948599856809188852919737045952455451046884956482664734689981204456071314348825302358727269758207801478696049000312295015039296357297751267744357247270307894183851416010781300886801790358438799139310962113424816478731832086954307663781667225341638537047904280828783048500301364370765307850881254633308956567420039629304542549780073636207457673463160837179338394102457774283472881944914735886776846612644112289585691512693106461954949725726493313884274730191342534602348523467650969166102260501964435144211874083840471462555645418840754186389834090336411376940173724912878607071152224541178708830641196142092630757820341423815656780440948739776197772090463801102905202012431138979798990577920384017708301353543896117765391217601763233822264134346078791338699987741403074261471431516850305387043449841534027098365576588293433413364991843105243327279005920725586728460022035307820481458183907322351594303272635682860572370456128671994312968593094554131376725437217090304541115188169909602739191651341166646031177128888002600854417978325999037956058159541856018012670661884370104309926586032819482628533784963602908594818965116876309629348849694246594229695605499133870815417470786333654559236022661989012478971470368692558470192835065574308742037611417815050525814217839878382012404224185135294091745827315848502733793248516455815399372480799825413448017322005613717905642924943309918106467287997361578410232098599441059284468041664164488149509139007861175439300099520935514223355957267735574503658671739682144387802350158196065594598460154609680063876455497765454753301207707201103613635236964116696164062234108582848041196847124954527658297885140795085793920859656431837579405431847953961204925871274642158912290951793758153059386053221238250111154578820948542482639891739126132514129779511718989452982373654474599550271850877794150572506351528066597633728945670569171317157317832727989303554948154482028460207393286173820045343525831671178834910414424702670592039430240270617834826260158684645695963278467135876889948839465226874915260313985309272308656008783704749486862224262528760061260456519716497251165962371883374809695612475264716239192376276843472323234287241063471361426665420162230993861475816744000263538537969621569318148082671439729709120887874485823923047215037433963455823329213072538563315992150742344366221323820680532018702616216068903617519870241221233332793756194074416608431429782486403740232424852834624782264749183477078132110091271063881107498480200870621126159217435094340151601003119046223418296427257672497099449301510007706486382037300801454050976425550877842881240364248063696679674122338165071832504687429500223644730145498334432001848017766728368243629545269297200482075296997983250480670300266941970851965752422942514117519315142762062037145164692760413470442539019603745552362990765360563921219459087785409858777504644829470556674305440098590707195980766808506319020433044321848153760616856855242132399229534181671916086141983317666962855011428638224212343334903742042938091294034579454864634285241208703021031593172086224106174499817972790506147427790170143973373434165590344028108874834759095734552631273890855000251534186488585390576092316917900396849944916214945706285125796717943587118686187056493201849682040412109179677429878343469321782947132537848324953726342473335530271749728811339702664170375493965092390624267201412817408828869250489199518658302619986442849582558117678075727244368008424375111207745597594015870982388427881599732368077000753513674094021391959053736347218942937681339539113540605527286285713671729045250004906479549702464997547235214032547599679702503795839568305931923260512618994910576711011007884469281260671308880464814302542191983974590042182984748335755485828569040660181757911095565608760430239778809738492030817699062341587713854672277805631542223826075358352978561697914451915268830188853976157257735493434000002591554667643936381517414893456743618822256434767657238155309788670463102923639252831092366586323459625552554661809107594259872627333989789233288051512395149488201707103596699484800233235871187525842022471608008829311904237541290075067484299732339422982984835528404664922878158566985682469077851827151201295280396940023849152339465849126541827649457490465957449165180068166959795835066280856661790473822028926027282207689575400558148290678407843806513408024149983542439039361676785355153763733911458831621156234304933622546364061188497633030792707088448087441556696817833080246364126065956956982717951290402404365078742629728872329330207351668039035679818015360885766700676511922888639915801870825258876068741389726523518163180262776375012071663233740099179753744156014112145494787574611913875604406196370304215038778578799992792553345053013797541083387206139573403680537830855657728987457483933253614600605458064105306715085151823384062498047534923643114478454141634448594033392955308846039987413848631181156330003453002767628206188249687121436413183894587468992485256007267649941840482085733156630811998045156173455601285688142324694686906467814828146347009022934443622617214722922160289849718154883899481886028763455528839156546075352142481018429831748204762053878296017527057283941982344582607008015533277592022962492831971794045139068652658233592647558392592984033273854860440398040296699271987574411482877759921733718038510713482649833768713958775664256920923319705721818612880634080479151158322983338031705915206954912643421693731845300425008500470598195163302305337458056243245803360524409281333043553916996807280181072329380777514116596718512575011555697479769022855278147689069117490136288588166483768087543244540145224620320983506046191789534409771113183649963395682538669551743223188011694110671448411687145543445528582954519032635490304409931872447840269660234812387664351280704017342364112624018128944557879361573450669016701586639806107641219516617064778245734514357430280064937342596913210020186502135036133928292229513170282757233005123752749147075260017482950182531928064677011987101311233221981878843332569839357698723439986349137125812685481584329651781647014642821922517296687711980989172691630886624930748268026455923462675382297339985926821599678244710674973490642664292377542360722408531882991103985688072013671792770412883081005158259282986571365767887980491468198564875311163564508932585249945180327413154383472553551110691023355646928874489932826376784363203771462085966522591409186112038066616058893623699351163942234563172637913046453205209662178209493171596964187578864592892778417891841044351416889371835380488505351492484640871034191982628301882359866129769283292606563481812227446742458711261887325320218312207068440682537261654339005456709686373705436383189219832103519969054373156513327037500162898485739474453044046896002828612115204855429493511681378092421654688077652745589548627946492447900206912460714702718946654463259743189546283185053564245235357769468536117281389689461631406261112067026491010778664877899677978539602473409070486001871058588664839583993432499370987995205573082682080967806536315627205931151692586578691712694235227259234059479561546459386990164732063537269969077161699353389242873989398182970838317340822047070328448206733527154864699651363101570840395162150340651299820602172949504959990113702215027713168935249682512032003500846517328190553997302939594126008812537891477804598036908109910031475494878046446000127868616666006095691490410268131663861459267989515417524720783396328475222025990350852464414798137242296962463464790536156866797052315753989403937557048773165524566958976221862041722680970937805211113329061414526062436651921141106963797571852295964881790983742860741041889463112422509057241638323604142480071750568998479255204182541617896878148382718911084149852006340540933069044390195236722914792877083507388376655893060604383161223690669938048735205814020335498003248488450818192833605332332837499487972636365091877385812402729534991014273212645569679022145523469810670548947179401420370289302404231369965981402503942001837665247428677974998692402466125267569173066140847226931039291980893578885517826606219175703465906725858353025655171997006726403652684049372442471242502627987504469298607519023703409521549122246297203442937658035972319335632576728824444996573843427273624168368233450614515354605424202774941217068621491849799551044841814496799082727138848505962547604556430856446637841683884178707941059660416794561236640593884031539007922350982243200774514644956855342833389435718984493458300929761114028907429588575625779838368972565544728724767237174955942301358076184318995189138510557493455550094520282170186988212090337830471013418346310918253244769541625011481135546161543272984164952504749768642427350491425040616442507288418066635576696649921611924967244144250080619824096979286325976680810782171398283816638531473572390512797118150064942884178860160994867511633436486641194305099447819426027228092982433930785361920925125788419247788659767536007861983564403807018153467623890885631907954891268457512679600511334695924884284969226659997543959175993481021600308278349729216271150704154602595434295046521350687380101594977091916087433487370928605666902623567046733119092544512344374122821573786169070778613806960448910345696067579193742675202009070016977431718383040764891000428374073507199168757468086145007250987282630178337546954676391827497227572415913846853260491495018594685691537886423996914733086754961887061903408082634915033600081220556689446564053550229349189725445135670476487727151334445660278265164153109545886626978356013140739014828854402096369041441624076695894654539155878539551335874514857045233776255188129530495143517184168143266381164680742703893981178929694581422001282913727358419545949045975394296308249599829500849412330739886131376247458548076274214989907300491004335862625445261762981422846406632987293154944483708204612591336789270464957643408707289218073146472065404960520432390050034099535201732335646338665415700731202417919614564686966448971515010966269982122174324112152008785798508809701600254305434402152564460989224039400761928514880445772370078508694698041780287859698899753512924861352306262002250204276630601729333767775152784939963770971872787761837247574816068271735049490219241969732128993086603235269156417485742697939325102353171104372836677747078088012071501038947987057029464081754827994701376549481485711891197905485173830123415231325134557607018435072000426916799051732624936424287341729923873814851791078849907724458039179855097745426034068994189925484616375689481854816622146734102413103549348349842164681352469512184302275628813046609847157804329553822277702079410348947047035365159904157754175589194101610144853204043177616165263645439119158057925093303276911111969158546270963048234318980121967953255157208620174721681366024997312891846764948019750914816970488837427597835913732783050944478263231021899674281006473785986077584388340678361379143767315996458510468831067692134196453284282813112653053782718001796878063471137000287494856758759602863543877300923663974249793188503315945566480993419496028521151035686501183555766320967890168696791454606630268514219169080939458546903837191670414043818109880333295460252519510090769628186433240357021555108148242792692623865137746148353390707546336131177707413557523264789760214786447241424022246511925237048533095364489752284695330041058205442422667859604409033913739017557153188451503933367860622982866726784058646195803406588797224299414517203097687048868737706952226248769463686540386998185627673982690437062732631615984349992872675610935780691932052787712214494606807773870485423046915042679186937978897160909859183933526048012496586134733294306852864919882427713600054160746034942378633834379114573153528331625155763607888383179841942693196972443023648830267989415293924235068010829344415400818423544589703752287619562246926898761449872886950376784772647227604877488871342834255814038510967513765589561958451434216990696851651780519458159090712658983140050313735288923655016102265586645468939840308705079757684285689880956012576942584290544039951673896774368553210487952400167061368264884565703418700221422843877467097691325331837278926543692733282522824691826161750542817275889469786516763607888735907413472393692811087194354839286384768361180628653901038884606744045789570940105439499861042952627419856600323361129520792748324915191602044223370883719945894245878823575982131680952298745717563849498248099232516054934303133506015825250618205341573296645240149913993789644939964240919899475090163649655622492141990129069519541309352682604866472800633341081880564247240876102112579957956913764315534147062909522383095421946296427313835405710386709007066687166752451915882234502839263053390739046256047420429630403944024023450220493213720737272999171505297709583599642058521186043947111370232792496127458341203430084153710382329441259405053843048090827048396896882207507004051515222829555779385819524492292331068384233228914416233926252270891235467702689806488811637126129386222478748984643397472378511072591849151162920745711742734879277507358577163305926345345861274379164799299378451539847638966531076793005953152448465779321798309333830549537007188224349110878555140362804988115927214244661394198243477880465895443303898308930116062982261696205992471742951117271853503736577028528471722072393249207986018039878208178897268854040928923785409968398123440489463555913869235703428440150255220078808322368329367415385334746854844353850861340050767613612261172781241462869835262387915984083015917587650327200845172866151221005537014057294879399239352374862326866260864846428957213941284173444586415065987039608458757089405401503957210735583482875199536841683044924212791469837096962968619263549677460584369216373449799483606065485064730830615593508497011023349840412981457352950945183120305406115729001617916375257804292453117807613622281417845979937467083895795180070118762108061613979760537047771992566651560362471184273880168819512598684731691299632208353157349698971999006783289940418622020469966410245428269760796173866939041473853308157937151358544510804434344657653723826669402949506041036573906518374152084827347314171498283806195387475779564593960907210206297073218570086277152601829978207164065325278048942575041395769325179778682042308670340543385431697325150073670902252798781952526662094184114596598724860795990959587192841450172931241650298657587802719421119798001299585655471889218202112356570478854623143685572414676486442495456196146212608417994709940771870791381250796595932307929238869967679356290904538335213496747793605711554501321276587517113270975468940061407005156370759335986485576570813358484534040225248455982251210495159860125140303846007879333525942853032906467424105303963726995657454612555811053973426213467283999253296597667084801779496637680597179772242055693239746275263001749263138869457702161078261220038681401047232651644296525899240757285987840680210680265912097534171190871397332752000922786337298758898198796344018370522768366107583706572353074808915741952869099359995930220661693396661851871761141582133441519049205290533055250838148394808534422093333123776901178353795997995537180464488263605911234471358722854258499842668946551246422328169097447098618474211687811605772969666854084464430269723962066297745004930050527322311634576707206695357618040305068046272966171231051752821508845960452094000319576048985144546718515821831096546015101558365724848596755069275095725004504077013042892385717269183879645122872281157829656468569115982997781124274909087485310748821411444383709168312583158942444278704058411637784214360001133458671079743773720223614870763511693692604408991945686547826319157109980819138087258976639654470647234694608700154130909252683650114053368898930377299269427696759988107009923270479251818443447847503427482173376939156033339289724269213424775471041337909784411253477008066146486944483358986577571030989783767722381651706173933741397278269066707928075228901297450874709576375142447636181729269188928220459184579971856289079145819668744227133504413406195746539694314166127729117396757919908538064478483373075704188767256189198591281957761581347346806311161243651668906724352173171650493542869194713972238993787127979164852240938152881907393621306292121324607942308699878082589282956652827785639896351150475648290056143440817964483132902156638928997087668574814471946841736222806514723386956485775316167461609417655157715588090910009635577182546034347077636863984735542964244711246543299401788877788243506016725620968117471793761811772489564278427061301146975384378314914279242994110033937377492748088327154152982499591940631575071234242007502027143375462529713609707439543716143467341601810266968023931755067419483767238709280728149163302637532873110976608924760797287812826763175267670614288306576436303428456669770736121996249928809087944180723492159971358530815193007986489289492269181276595329013627414915306798456898145606081691538629471928961505070132494191724776614292472358230682808482175657372228378565347484687977970460884913443041544990684717654245205973036858394481768855764116342520580481555801451275396034958491496650752263445592318381553827195299882556673559712084376325680751723355472101208668841304442349621029260331799676359147660384641982261529626033580651070335535422874388007495923521815163427456728896700311602867369123420673306574719769368671661968752183143192679707441435156272470385274876984362060709759686265738609123616007831546391464188565726353331687594382640027074229092901866136249646221879477188559150949268943085982260890470338531337878745811367019377728878476748404945474840195063119408135184911728147130862130050132754183015036915001883293909008568313570809156093535651401180107250311029759562702424274964654111725770456444135577827319229399349637141101651655077491846789652221558949284468169336455360279182556030701566083162776077210705717371875595468377179245864822217246683182139344599156878825606008299724146985608075982358276699610268604802521722512029059520385604023956899497277836380157261835691490668071810727552361082980401731119074492681863819574097355152601451202487808609022194456333524054874180306777076500639143346847934506052206015532317790693715998729956467130443582883963316078789812822510214196396594250982532465249804004845609642840674433440709047895031360268662802814510524442266058818527790562119033022762088300458237280620659308985356058520240684978079616745792184795925405545717926141346180633608360333277901669342744834354724233297904477155487521276651044541514427253692617378180394200747987488063071265944641882100730301343574029990185818267073431493165678326488117181818168918185936213423885876422884712487589622129632267892942771090757835164406123397952198133788489071409037575241597211761643930813476236462826325617586525359451114632672837566657033069698688475540557700064466338072068699520213662861508790211058050239705720578573612367312545976935195924394835558248941467642309273944490020737030479337891654993296549189558982782600202183650035566315822543007314235462451604425492491142540400435482273576523331579054451882294570509967907376792070842800947410505697372233866132959352767165627451387468084744312650605492606696878234615905314330013320737179898865904879847985326308169805441073704711999834780897780177572702348235933021636810032833563597430882685649630123947099920859962713497083111044905207610879330783623720487021875057604374969750153538952998369712516929790057642239563811277382979446662164961722462127480370727926112414654805549720242087399052446434339447962890891834933432356932131600045791192736677255413444369149946842022441967436234651047152216267526450534129290564611998873305686396038935417970598534754245486478852369392655105847804170985642884516972911700334914029671839581486949025410761733901077937472132929797941758378890125245760136802325595889169749328371228592448113998614306405045811266995139489733495697602252771905639907765848697469342044783788938231739080887448907408777397451143701566005705740739293021917140738884335670361435964350583832880299772978631914323567206413345994249755028339892977911608211752127989209577579609674252301899344864000459650441992682125433327493969632164603991932219352505036213261113023790567497894129908158433719329994264797100082444570235494626516609995164242284098423080068903048611974536045273849697011687427768587764518582427182358784355825556407636022117918256125674035785898105252184715375003395225543735455372236734919763948784296718887290644814409899710523345029816882506981205584537465755660721500697173569727463269675953729897104877314779655415302319368128025045914974341076029941333030414140288396235957741125913195615723574921225990309034551451590122632276468103899537932951476855038199941741217356521483564046959393251692045845212928476331921735052126254562498848909220313624984354466579056346032414010977414008885967142992564321058144972190703478136725149848040012970592649115834434610908153975234058660453932190583565832777842906815890648772021636479564660197775454666274144466335328574987995599257297898238239451862343872520565571191309995317973352584291602135101451235077981159560525973478341270332573371224786666809128532854219465465797998497357996285482035717390214944908832955079893217417536989906587650156672529310967752111968967575945415348546508910972347985365208037059575179097442491913948964205316939019981573547791734425801276262419067243570181859725243593854499621706143033457568673817473111178841460219296900707321422147684786400999646738747405614714464245593962168997346834582409000396403358448008001792878971387712245728550048481550965515872398130188729599347667504440813275969589136946723938990096762016226842927271877009810348653769111968602699984128247213051099577764900197370260162868892043234931851059996609269125655050306275543932799756599410355495916005564429770205314691819512320214042345723730026903946065900734755146702183624279011309906017939664131752929658261614651020503813661084855421443687903454935668955848147854915015755482840580317246956392433910535591763220842177566776947922381793322032288150052088375135921711003624208082220434046048452058701998248867604294151756920021545225659510999819993018236979673040050603098721385262476462219206765316838094309817020948373353343983420753383452065235854409237629735103053577842581111737416741056274517356972690075802838806627489187161880929288202173580349889267944538515442038995337760599595858170619226836610004614158202923488504264174507071689453837754909907493854651867290106112480031050007879670078885039830731588297272795278303909651761720956563597937273555644677569436671191896165933738136578576179482849194136779616492400558198031490532752429917973593566412657278209477368764660517901132178974820823518596977021005466709153524472067865042174346584406417452878678797887287452583002882055986521605777801033135198754224657047596457421774594603637973826826984352850046596820095234030602023484037903082747504882019147145188542794754565032042064428884854716983778767340200630244759047983377088335209166027474203560281944706929190161316184306526466855566505780668496046126159006412381294702905816194825192210596268382098492172642861761359024253042814083987131100575688249333649270341218364649165206461984317704732802257787370692763863938764602476566090816792601923961599578219562051809506188926135023690304349780211863843625542952342466063112404801256368557579690420767573422957194191631844785251367012912208295489509774235625950334266959319317778396748070363425017425271722688474315781357186394548211323865395639468157230645213487861683759882420616194150517888826625384872536341100598677282411943054085161321706129808076419412355159858607139522146464964445740519845907467594480396575606667153133877860334271555396640756622456897521227266715491129436828537771361709152485038769283017318119046488824769541557134549891021294129922541188608506847097560711059927108649611646050025711409682378305090194263439368558130558338558624088834614992055490055618271297238484509018402945789575155990585703291237156511957748725977961242016885983026009005412120398332469193311688289463022494566233427148978438445744999351948834390591176400551451072334355972247727532741113524829376959038360503746493346978429623495781945309620193625128869779696682406564320980159709151254387922774252615448967272678669313169308645131291086801547669367426935267496563591654984480424224060705840030088704301539912379633983042972625620345210608207045871102169094673997943838285093456461968905742227491156749632390237676392854192082676730179901689352063848754525480948748857826651171783005189474532258423729960284990447546962081895457798458064750265100888877187536972969862994688426965799107670564019616532586377522673682028591264598892455699308910350985934538308468221645244184070850783738287910037903835503264096038922773262299047188098876894461776990933325960292190846994825205186599604579922793091234259136657171267559394704282155055964989142091749259171603830214191798353352959795367547197748016939737655822127244993875059428431970439406653492777655977813525714284351132106294856804037459039654731127925020830455031324146209935934797293188185837080277308905606119472569699411710318237645017196750816311716480380051872171674847252095806413263395697673626156560313223266476979515076661018572165822774507620494519028977444760275892014813718272592071996757997889827888679591040105019898786438635615430437974297556319308326622901855191681202999419768846487933149369370498289537464263028613100285036073823247876326976686444219880355917251521636160453762609841796682197452270844311983096925678845508976805591674707527036429516023776806546543161911126366090811190996612887092438475204360733410188429479584790419011476619624620605872771194652435681491513419501184324436492252068218202790690146063184369755060540915334335541537020371945461942021834341650643016207914269372630995536498227177851986732656704227522437335681559746777117099760375780561437686215143482789271320651549612842881484774225036985844435952712648760650746497492951076620084090807962059655782204579740529876496347628372435521939659971416638881338559642677776056858555151326382073515196062667226927445139460653783311164318024639371521398282425060712030381838437809271271547251847622604909030108757357071203857102565901948881970942565699803542751759163044589874364736528832497032730979095366225692149955013662895555179023783332621571973027951816283257721350943637540134693425136070278321824290047666301815457368197776566945610384934208381749545843375439052059341032790862016756446739574706258648392556852340354122387090769647852075671108057867064996322012526891134352065075807452962414517675648939464220938230072026408592014984692185087144077729320714318470743094862296204871909848727980868965155332926279498803517045252113151441352926978343872168088515345118101837347087416632804144060350847312964658744709135611327012801889481021030486673208557805748099764960415787850156221901585393313328643612608590590599788317099054927904668579240972788151266961472544126345128608233989517038841970567011190055255351168918844438732072298283327888424293219771742983125697066486030593494179049625207712086053624525654445444512190660077553778534221054244658955719446023744543964007922714171688137796731056882594659917905834056322280759989900851189766399712341971393749473427191601569842442477272513698626287267756845372957042730038338646633144383305245868677445638112356687235531928015963014284701493054839586320446134768618833402263620296772664419713838937898663338119441478508359765508953861116209699651036308427753021141922793657525736644682436086594011515588212410087021067053614644749831389858097518618991822837979025285054318180649325181253109298549928991495760154882009435147675590592551151925235342202860126609050310512881460217520366931907860129284124439216647066573337420298859705883371061910287937548567329188688611094029909721438726274978682010356792076448375057289822464916026582779455910243249246845150077121124016941371448869466057285731480337760661363444417524153778500332809183749904063339885288046686414055389681471310435728634165037779744386123289882021216849079369026066155697509259492395589752290586827308369220116655654326483665098816979870699917099710125986429159273926110744406636001878375824670205652483905782742194313443569833666237261810542435305271822882039542025232266937644431944872492631194499830766598578510022271055975090120384317287036798839828396356738730843324676327079301213940581576476384725870899510693238858850699761842628862536769225675163508286312390181691297307003207324918518802467027888902551801154338990553957330995068520399463317038426759892886330104551209330444273599771298050172203956613073115589255796739574665075372206730483188902353511170110901291214610767224162202159970014469807375582630055454966438474680804482667853201023530266418268587210539570154623296223679133857739964151038046504236366385625700824991790767585685409120524856354217458365354708056673137415977558295326073856821313756006426158961042355203957970878427911831517337408964432882545948759481839064084881638461866140233332252222432399919918658088908449085413437278787196252207051043092003282956539386526478424131778772514071225698140260845997185722481844305459118353286159679500125895368692939603964956783782834879006305312955252220817789456946169274888052971525429846866853590336065575676618110980886970838492340634114074709181898370801696128176158994461080249896675909315677939422885500698498848333566517776467515383006891360495073034027778000022122405144429088325243718052619383908694218566975954348771887252009090383278316880784008089356137330983757805685258256238517452130592954920497741089942069484907811888850722153487082336938951579614791010884146849890532963905480669081623131379466501171907314475779853141389679351565370692324991680796758131826061213532645840031840085031478949236608554750763332989889879767853661952516006905637924192580228112312229477061485251428531549609486053909616471969417771496822969781575633067787438056928517669456167190759495010126082162959262339756310159803134902659050179174537107049639256763920390495182947918167178907299848426230830926425332836297012508065734126205627998852861794844061601712259687913709504643171218076394463719328136993690765397756659350414914580675442132468606817137600485803193185829046445237042455891953071577199867897037511704297048934864695323794358996723244216252564325844288730251955461635340610413820981449808096421292423125951637278667480879606995970491676127984491852449060162294219617977456030004507024807032969834202353199826578336552915672243224542923985809603418786891275332334459124796972806426619147869914691802270373816257192515870691186263955813053211006000613923120671693715868290310239458728669500699494972802128921627660870428995897237945235416303777848829317898666911125074053370097982177289851420518428860227556142948803649080533006250590905989163700692023392887988735841643519794887842256037687190075129282577425910583093668524926833799074981626823913664383888018609150028784128284325023111965804849002756427951054482867139902225243830153603349223531111449787497273557425372489886002357565966165990260058294217967024301123357605714890876063096369406050290207519261485507318714581698561495890362137990274410030900389304328819846263938131773782371372396991279453898076782174565252175637220581085650784701574032566476187259316388947725055991044193118476084746243794894763615600382390047441923088240579450808087189388917516865118254669401223433131926552717013889317883882702328866416859008535179184760108502422943204922084365617596351432416745722434453279113505029763676824908045661072544653606830903142857011237229925170237421443289684975940888852992997007546822319972971824690423562656469188183507894642295295594144675975269707750562164592459519650568377963144833503046078560176365914679983446790943457672525560751170133561193789240536352192163508093721888397674403698527906127190836425914895993606226877399914013946944737760542596492004569371393593437559548063538111059884458568934202401686361372928179209557767156393233317821886829689813848331014674544364442542854739539833748480552549056176301746804595546434594528163370441890011618712760210186890517013725629563709543439281829114679336641701212677898891216827405202389660489035932254479090800963322225234548459293391080310311419803888948080346697565459758252234833731454280365667172216259500026219262279822491661295541179232596584281228487009556819360392906276509775343771604295285552968480344954079264410793563902660412474143424549480621438560269299382854012211515765907185754608864938775852414442608311572061984636063505252323021523249000947451467955227204746843449969950540580816915215885951259594619049225336161893436001553165923322994728617889484058489312143969414996046540990781336802650822551995555948899233198121202610788725476223140367465790167279992726230007453520958455582521991691565732476903034877544813549949137934435308128516116794705996270429309021702776791933024322834137060990200450241340384726109512183567943972301997488261586504773154199403222922058367920172238051433670316297127903587336154061788842802849094490414124197874402846010628136854166575043957886213095124633424709147251903843504651213726453076616155116253961229917228700293561561671986393599547256933170181041115281629840894776937621407648071663008119784374398917619673067990340096492511641210560389162157321283620857266821198672094422530543502956258386048488971186032281424410382575980883945231645500157992177084976053477888878310471561935131848671686650522827434420793399279185376416694029235719046267614645527988153378313887816902565319850663466235642395592359595107482768749974717520999917475589363048493574359480339818304987465349110717348551773977538917729135482828353751449557990507187325638100703165286188583535767965053182365019082400106933628591210094210528002613212491785142446600779877825451450293413072561777399488668936017308338773923283083027975865345839265877301382539723982561395488025870385921864647232832781669594299671875481922188317353467267470431819429437557071196454865186994236877211996523134869762054418192732185804910586228664599573046306746511890101788262488685917328453803521943276496458306221651454464049725241931190735459208903378498707380067694215065260941046893050538821601897937752456367813761783286795842575040123282358887977589405640043801854578931686981894459691431905608252333166277424384263514849279258148438222911728546713162271093162585891596521207117251084163661082556028239497367047597336985836664455555887376007921786238757651574496686958475078689922357791623936102379669109023670933610019708407574500402599096123392696151715740101915799487266517547395077370515439104209523844615269024888756879126746870744971386861941021362277466625655028301146921091993301197581522506345940641843458081803215535225445493116672437032369305863594697457081889567860925207518950945479466156683401133037688261292975681231237536958010983394323290356170226043987974697864612127780226838119203351787959615963400351621237209697110342529229050134792203653847529556240026988783798143462830733538414495456608502007669591843445964599838561533888780469743248444219041755821384970364213211923448648920503070123979337622701129244139257824878431653983948822796405820347058449478728692950110142427299816605488027498150499913958212453427479552122639421859966846912610567984105783429765143511795355189445242240311779788076568209687339769837248626736184236940338792305366780716844944261926252987045827581047553759412865055750322426952407167361812064926789524901195161139322646712781941520513887745442377760923131701821731566056617546473961272240646064743498515424372902772982045735248769890203337156815655054136940610278231482494751777425922208322385410075122212217626913481317380916353142259401367080278864665933500487863051648591147133625974938684770601203507447261988637924827428581270394303978429002554531670153792427035039061862278876227402809758371397260190630107441699535751316851572674350666901495850459224681466021272896829148639800148667195887029400605921296559190322345869097300830318909680867166526908300269342836281053133309246037314890468360383145156842025618013000698788321527392872942838553700096950026407641856773367760946216749855333398471828139658245057212256536118139540150431247312088222781235771647843552356931278450714565509163014359591561391253767173265241775871936209941598186261126535630292459772105095626235532380743726491349905979268597349056265371549912473418895363349902271243734149286485144392430387346448499488687518002361499626629823583587821247050242791322092788216189013633854866161705350090449410878145238811798391957118059381150465381727885812613273346005833650637153217356092463020674723056991657026307709838300925398544068199671755444056650778200604133235145740715920867632664242862731602992120723913562380708100731364015105826508363530367315194065947014041214264642543946084624529486302043304684151582762747858585326915112775427500758446114587222536333546316870270581322156536647073474572462911259015038215862533178417716509158509111836085552809324804808932409710382183271448653226916188657694311640294656785813818541372707353174276159819257104870005498502881004899669536075669425347578659942998199953691038274095459323816741692865565523068114898374806544042987897286738416419129759923624946701916078770596557649486649224225639770200155183158079083526086140586618953499930177087146115804337585688706136961085275976633118438798935878742651952191642049634818340955677598531616681482260260180050867603336553674327464693404357213855737853159756007777599242950695757051541511706701537885050270844093700939054719932119947371707571422507752978119282505205657968700856498844039781628666947943466939149371480999344334323806747719375819971631547922061170037310872261574867917918852484585714819308398762602551887858425509570754646387449647126968133003820895077638030811460839179077805048921850938761224725452978065189288671861460090236963682608842789829933987417690239731413240343014471793003858461803462079245281802120403706460178273854336817318159596874188074971400914681093143361897731541725302675918931560325688771271646228263329098002311847937121602461936556974368606070846679160708648983134882228682621334510354379615441878392405661484488222997911654062546049517721618771646858527567692220778667622223340761401635102104725250394734904771981648970710038017158551321304371990286884332517635007332399645843462205037188082741747079732484971517610004091134353781526998506853304861753384721598404557542834739102166047594723845165063400607221471266830207796724065604282587293952950824662664484790049490350593890346117583499980465679601803292749689409881481760170160069832746681296101165371485798780850611925250733130052147509227388921089190192931865606893597516962060766557404999054075207489584293346693156643858158123452278700796069872442253100009824462557997910453903503653115861873816309201256590704517806363575227528049989779770730422242330358461700340666292069544613774496035383807504648542591374067444221278086578697059178256561044012903278322281312813164063197724650797482026901955985395025949110570044345062263534902912374234469426269432452183086909897275865801398306504625375694049016903972373030880344919418056516944096509479721625990116440459739476523831421411205585335463943473040004701174250323624530546574153239487604183649555535332969747163213702361714476613786114029009639216747878441366088498987074368946715352833699458810862420102222751710786229893488180082327658207411412512141566127161387937180723051098618451010981655763534293454981615376605433669810906741049896935043766537649609183805285581711854018479838495568669639392097128662072582564047040307890781266668845269379132643820160339667540212867461828079582425900227791125362342971916547724865398803832655897563591716520690617571743719314774934659092787869031766659647540685723824347627058721642343483965147490020063830319254745880986226830825339025244349791070290698644889378746715605974239062768011706449872429158030802001615588689238610713793238392070911291069759186818931359662813877775559612336923477364440960102459602559718820621914177405108956650268596558641964749666029600067360328024011818829652437380920494776911514531751478479033876716899072127503561024378414385264997349865435859627743818001156266101433409459123348967779521446645117653052498283999876395073565793549511726824690413429292225622394233043686975305322303017225758140250457953060073414817178039519615724117592669312687140448611587801525039313023788774501869998590636668624269241362596363852085270231923386037157486460163384093445339919389008392891616574756839163408808140621613692486027018332832405199533147998140639892230339272180709321677073248557920291805106778206228207823809458075256811490126461609379570832039171417374280038948163756955896152107892381670502985357387549704297268066594574631503640546937383223048024335703747562162913198771719450276623187154788144501355592076785886352080663484289805127697230684143539546950753422505279475203620076374196760487128447690191494505780921061465497596030118948213142039251908708940534156060119458058393231791534348310971131324771923476595756175319699124792709178911035207353393215535160643517348732059276122617213442924044410893745689018826044691678551074198778567576819647285070459730828882083519130033448805805825277756029535492320897141844888745974252735727281922797421966790110247769817727318766932714094061639204089199937477883352175821589811844037500586946122920593926516427197557676993532553628448035810665969075062282560503077457163433660281990061037560431102071894125161015819937232593966840461767555468409961058894819590862928358459805544776842183971407475776020116768823926481584674632106173318052175592585546775461128562980122178246120712269183270350405716750837452039770413372972387778867437686243647931608843341665095629312355930122677760402546727321425482497101411077592988733356999967797722040824746311315254516540970477063373855666827535009854518985824393804066848618587904467492752602988352781872629450585050861745256693152424152608736319141667637973134281392352393348467302482151951769923280856959556047251210496557894495250496146532083637369023131787073468275236961081544030287520875787890492400637040442577270864040629486877314037214897928146345549764849242159416304621435473625184586326636033873385490348955415699332168611622104475592686816705274672682954402774752806103592515940825897009159467151613565845598231031999467854407090172469332987198045930806476154500355976365699322465712513494986045287171778965945656418971615982564676016835462545111253747590032189184224004182874397848729428756051661816731771898870522770784090791747841222351819765731597043092239537187978462865117112469598733627690880288336392826619014031534275622950217478716655486827164744699023841238655672526672144424499528320392967993777795426680569156922561201276735239679285222857798905142396140950762651869105345642262949038126249982084407412569854327415585498264556472048534465262873511050355508339709903229443871182666451601974364662915642667579197651688521885748655584703199137348424832078100287283075521891130091391236727971604413920045480141465999450657214172717702829023817012732846428830071540901826998649792485742762905442094833319028216582683268649276579073117003362369398605274222384055732962259453634915834495418677051786155103093933586880892075965326085950507162143776126812549021996531557210743589965023787612379672324519222334587592551417686272025422382470105333602564019069148681908907389530426984978023907866898387651939431603647259228170965226324655386686804887909631176506985056109199430143260506453140339334551575472649980321329989594729977616932100802563799776979508916788691603843903360126021295586109905123846680668646254340269051879368569057950916492325854860184225957797950111326452443645826291464880679846059452390225792244003207748242300860715917227891270189144409273308097571400240468495414751221282322573357478687752280641961930447522428426124167139991450013412526689258591498005698503854691856300114720834244189450695472042516469565845936443092927007547774080070837641195541962155435387523190113980800061921066468626145069870305245862455680149402192047020482678797057904492218425717889052386023368784703272752984751907945019545489081415911654560229332873368649972649762904990537251790888272187847954231391748671131558371780782500814516212040657916246748891947841468312981213692713420552509789027956057170817965606511429379707434060099336016282449869734827630631464925529943530410788223626185544502828025392358881707134182826490142147081738021107070079809518196914342767572456447019981983462506998926943004557648183121888370115831252141379262909776498592518529155714632016700718392682426656600891615495523665057609805156841794635230513682830816513011656626469917328584927627205287567056079426079898992855925489238423184083350446250062739835021040412259953608884450885480550521431725689347484119916793196762430187939964159364579767050468202600819940520882920040157443660962580856469026006994280594035934848657710108216984352382920008263646407565849310353981946494397143470633222502047004307712319393644767141127913130428648631655297489242758574844592887274945324382301340297076717946732163116483321400690081430464279904147023386960935042092455949112481047434978425173653387983679186157274573071241419321809387715356562485679553560814648413772019001275551002907384396663028877758839498290287215681877861553679060142265107100497664084084112832060000300805141010455236493561245572472814222918973575463524600579978088693105078720881897678814671369690768355170031478011323692194226678734336886813231487550843532787903027411329187499694772388609178975496758648177746263973165765570520405666578044437740026486601778892126935447847713067152996989976296861763945804940655425018539414668284159514559663295615729032506649881199862620140870831168326587853069186581023879983833648736142769473331504029685566516031309096152828740283074156290130858447730526003900055516186849583201761440188238882271228280508554508488015175780622018914278552891088255685588606205956780022563645599295953434240152131420360319895637309492925179023194022289338441733178149906302547636084613360601809268498419094216924363379746325981827159360207502431962497744202073079465372867055748305277839641890403267639737027368668268255778267140373521347247818907913174002343723761842005510698546904890477171402066477353847004625901163579162607993589015168677342796701251576684624818834643351560554221066052687348695476879318428805854034693040584659498453755293486784175367139318090076586700491946913952312588565926231402765408687198045981791995059139561091233538018588799887100277734906985925355284221373093286398384157208323375513131307367984362061311999928695530893384625342297566134548800743727584050657633498141515254919384627472175089290324964654505871374521946716934719406868513206793622214292888202781819815494980798948945923386074240199470587408080914855650523401438632585168201248883025155618638219528031179973986480089415777424277917770686251208704795113933988656330633448132495657365682050380427028709876366009230099893880011408245507976329953169088814366877893935853591402640870958751469516752625770064084998458046357003472061433407810450564508643606264684271413611427569651767869324329667418510169075981555842966852129752284434483279532384450588249918775487449923409283239588419533837350772081628758585598504958658116883576932418659990449929159073597563249897209347585898887081065734127976876046917526590455416466717980610636927714987768595119299876632162344970404238968678153413595697898119632191146865286896124614385831756862939334819565708972133921393988502329702391309145239284292473041982899191531457588067827388151293154569781200955426291040514559806888605705393270248160968112793121995450804416049269366750136860760991824842859801530708546948069928450808035219880917102845687919576845128048941654992331381502702633199211873071923906384652186877952345393260964602601713501212636443072089084719098746210045159630470440013277107867245123610379321663055103828286197811125750619221055097592957551983763390392389124939606407155492628218573423371167151001189158838574156647860993754291246791974361114334224388501271280806456413745236857156381540966681457166395469852786923257360803302627661327069089013340222176782435251478864774103715221783875568898933338562494167131531060840343586730817508669467097642157240457781576610861759516801734458032022860540810331430053937406197852436964976061944406371078115645480120783109448222963480072273911386800757052858233463634923952524348580099519014201793959379333338988577893328768823979520643098221218408775798952168917599460115468180497795583818251134563649589728212315626251649846077736847001137918086166519055315116257106566105734837177322759159565664781284102133935340754751155766198844974050870205899966571819972910898935110045176225201184134721073404798887341409493530748521787843228537756101421756649293523764582624538285036678576571116146814714646117332456882493884736741632603156549188852272914424355504261595038772331362749513170174789991843423773491214765349648073255618532017923911786925795309259306775931702874416672123656577004549170139380156937905646443855452171443267320647168250388428387730506927817800420210915680479972987975851576921914551204126765216890670772568488510624278120200078433525959640793294487543978420723070161224558526282400506938240010906761745309603529081960442462343159628800307866156923511664081793990169638939296496062376990919697533901450563673118607072635905540308069506313395114835755171886485007217376279568523482145823110912815375498456615898997707765219673157342427655322345031210096619957540175170008896915164593660686548903048248707395532865668668667198242382895882906939569938323526889185155093120482303692577189303681103439771901926376518649937465596214331693155014254468954637651702455666093472424456973288982516083036723974415317155404096983504684952689071563452022119072699268058311815025552518515030337137241143081432622490399331525470740103374168527735535400842104938643126858483623482647049768427755405809937527798222453264290791786194140885001427433184660964607029427843958596133213215399782774094146509055927216900382661247757341905021801578025500076355873804608171134264251510552933343305009961678857675666118041777908723539480952626151444423513510638079879820877102445169478603465890154087493285672699301447528136617925654628936942697862907427969773995781755987524829755343018890924402048345741060044800376357948468660654873309065642149605209360126073050734775699106113522299907276789866212525125934836335545492217538762851143420564673683048032007868455293094547257863400052950187075881486199869663807314029696730116113239308058144506524081299703029096465608009921607750495559717888379985581473877820585853067101603161537421890659437262317943827104270959818701505995073274129429482788868500144015379643377778830202148953502819117468890802899309187662304986858160905059957635307316767237232010283574733503551994203695458250318504940120087261977676586130501310164376630023689188861682011959412741441015638870724694409016655887822680585245441331380110025354692115759734165651716770464437704979298599628859165834450841491894280309637379106736151828152370943322463951952851095780957153730237761997851953819490017572754161230668849479362378285047214070476912934547910410366311319734207692353296260927204011957739961697740043652046368961056504510056212998337950185827436551192400703566380446535083084465036671449936531850884349329755706914143480511348437930931643028663964946809496067230573984324801530904211761222816322844857368233755439081960163039848676225988683280808236792383206783945226164582036687520125315407860511828023760030802286542918609018188859901715244615743812205360534471824113674295428057766657800529107427313884427788770612235902442295262380471454426015156071152148894138109813989547097591737633133259431641031953334865194353063681934404246081339210190145454186768881553178413365676346335429103811948781835978210862226196716785458118833989228857042080611330557526386509543064286299276282040219243356205682022260877231210169269530473524656020455793713734886438033765260713850420214728960005858734942483932426029505982363880015024917348043177432963884542574544493705907802904298313050892422924623239985253902760245093827127159358018661864002665422533067077208927841155579665781023961644042740119285054460983495718873231198607997863185568699994487107411704063113067725727023534235260632971752695243773094397210917344784679310431445726047128803112177621821566581879257700203651913238700609476950455105016687922179251589383552117182068544110079029824757867475900874466984311277819550251530575729906159620675338156834665710862796049241230021639569653090230317444621826643860696518236395158855848168062668690811515031452092119968379116199409057838005759885010516822821854450872707590899910550471613791681990960757290600404409814834997782366129067169877855522514579836722776696120846394186856115159917425105749457284550840480435677743874273330396328613066670742813923311095345701095956333054755447782128663093677876901419860714809149277793662034144931876993366606785315994285677231984809943026999611314881014427402861598047508466994946965417010856163822211622952235970869092013498708556551337389272886752586239393229701989424972611394557448760893158774367659735144915806053510791248259042725335995345645397761360517685025585850448816747374895922746391318636741955418358829639556030760883515298847198135947877264520112023692123951014954632810203183008668610263421228782304658317070579935373050863294534068523714832456290219056304743966665038328934731759145085200864988614297412802030824102099973547932963649500821109051774187867186669298562607301507041441465186805212064030607858491825124703426492839782037630394320995750951049488461176639818926011364518641618421518559002636618377718372139150537481075511834430556310614036370760112024014897072255752767389240583130659682069082794805877823371272759366644342765657834648309448741604554376944577437571287386287430584331047640833828539333820646948977126584567822382762224596433185267202725460300496948003455518606413243171205033256091840435954436973295572919395280453366674087718774796048601067166367741416534460729313525339139559577731503851670069183679347433633070391789797818311668817599834266829945486349361228079991867993774921296766415171264294575326640985468610540581245294703577299631000667816194639279650389128519976813345163437093951702766032527000498744757185921382888570769216211476982159621434442986792063301413157876311491655663275603531278424862387146205627472353189179853963532982273839071181804787732285260006750049342409057518221702852407291724148824979057039896159453837017327907335561682824603775154171177127568471646337494707540189011334027219722445781048853366551012428295847297520851848604852454468903964225521892639552002848419642660072163922260644884334894171721274910264885380999513804240291356896701493192310523196868284024379972235481673962935620094002243751131188694473992763587984457073210219658937497404472253203144356455105779626544422048945636025587991020965582614120959858271182483286205485135750873859787223385217075395773810315893648146257530614109983376792151038754315925578541166713335487898580514047402119938069996859498282385691182590631838723724130667390458978944479617430269411592815558927001378473083066077465449864052789116933106764947701961017249992135875294875233360834841281881223780568829490941898085061778239816589030391038214279095828510435500649407352308572889855769592502395068522802620658846176989074770544960171034723895728530029755691840386214701622573154612200062660588893887148843406405055218402155387369248809821434752800825514153925661403427588589666368899681737499035476872933411030122930248860164525201449068622360939736650711254480469729305505376303640387082317060793379061504499495151074823966875635029086213722036148953107188856112485246744941460216402769380464698260728375045997104723553812417677385780070427745630253595309038727315338417027271292070409042217421984430648201250999511362268845316286136868684374726859733405474442033553900134079583522204470415544909017129492486946434733484229619202101174613305650736857421876907150516003737449326121054280375152607947578747654485512259216472614552874141616510905299070662122138382769359931272634070351221103330817956427779245384222403252675333424306023156928193303335207916628127280518407926581282457361038891498880764962205575566364067021084930400636420414668760655756819853842590291316283788518342033040496015965205707350650502964361939658582868046462290135367871097509583032284510282703042165505108085957159328061972789295027323833475063489642887286821027981593423556555374580811803451621227403702691412004405289837734195275813436023900720383095947753963954250914021204211326657949811932912211426292063652885147105657782474393388450303164714545840786884280608429774732385585342108239977813987824869776314507644222605548240808151061091406233735775576094974207583072240541552289219020902687725425230252810800235168029995827638093390909793758907650679970164842385672592556836242653665281750788885869660522483927779262896359422128782141132810481808534387412073548267774323816968838519243056867221254821253715192917510286660705759068040035584939345998285466201672258489400429721186818864233381985035629246981534422791348489944370998427191789013198668545195610113228839983131960721067836352054357313749147871197769549182009583515305091782100453916173230797089551324249872083464392445804456789507997991604279717840591517981064671604872639745196080648207443881592593252099293055461349173902801210174811122224427509858703618902282702870496001525855802864025943831813395552323115035746387100030714160329689328195855423751145278529489859551181136407149270323222045366036900972084915541277557539488675179523286199262711547504521337457348306858913296833031542819382682752174737897288760278248254557685529067653626566635866359194503926137724562808316677150769061889648847060109583640742991743271063186624738631899708669046313209835079406104168716929579850174529128913108262884835331104999275905135416228584856003905941736912773737786688276444325348279889014858018562129190700672559393142330874129166852104360374528667011295946835172664032599694693622112789550829406898107265432640508874925836780278383819374196002314565174816070429546061826026669464985041399925918663121014238521716090473859882813936351870867298844917682721379101446954233394661599997302493771264817689230697753118424317935950548047976756007321685550107194322847745388146765133062056129372878811721640273157836116633806347764111233564916214076268543069153694491849681110036313757557082729563322960505752537670633103434178679731246454368812837566666404424327978321675989670234153079099504830108738600863448916361478775616755911589605073369774056869367556392146769240150059372484466143747175010006343834882881076280913654925321746034047371964393271008187937109893833800603081579944136639304319596556218475963766702976502390948359636719837158351234082622093216757302144089037901926215806512401762505227900431043224327951569299488765965107878536107761388634259859539122649364152163205528068406438979512301095594682400031430987008560301836732868221138471549966840052008982078249526724967158904114882421985435369314853661868061327946519420411728125488914067439135997123511855414135872623640174293580751492968764629751871042445386190669582593838840836466164667088655627316982373159183748004312336055651536332319234176954521274932864844362987713287336829383579991948533217912719867535800880416529288325435066968632095338622178003691341319921777623127325719733646759620628569722292461915862195118712666013315101438376104499663599739701226524813670743004013260378995686885725692328081876421439130493263325684763885854051274651595326708805009205678107875989947526767377905215526865214225954521805231327193270497155621031809801642684008517508859083247123258507090580745016692907803326482815623254969232658835997391864538412508780745874094880728115136985107369194394059470171630852190550404535064322881655753890612927582642724531072240782550478300430251871029846668685396267661366785237590156871980636092448653178942957660719075829363867729230442579284843685644961975256516682146099397800862218475598583069605084821228781184687070405624632176254015182732365296572612460115805306276777451769077108275578734261525362803770940289699245884855750545889232119174778834592687174951657194453433260837093263379669459056558845482408645614626464344918604021768880681966896318757723636647251156739993023259565238989113208463458434066997937177576041404690896787284132694435300706517615034147205778449187866590491790836209709677638448651271739952817153267267421649798900657182524949316102829648090572787406783344383405363536362870565213288608097463021458245905327465192703741051641676563262492277875675632955316310495608855585500465911994544412347950010671334473077043726752317818508462261781191083398274364035530583756587825550341558466731147878405740502697339624997922021138896723096255429006615779340814374473684552883013094604803109116418475689272273793375647751545763502002598612160512596508442895481962678876935156082006820759765176564595080783648547159154784940488342878507084285352304545320089472353675401275961412952115754567645412918590319187470628291169127006076478081063633227108917061942264157942180448472647301899865821797321739097179514693490261399504530565986355582327114428588549478584179479216709927733263601849216243521476165470909274643866120644656858333153303717402801269579134861483632799333603882646338117231880677439698761506998012197132269693941192039530024244781829873998099253083608971808601705606265162259474478520702623226439314089530230424753377527963226991380372413002461388146087407276111648263895795424309054557263505015322330324737220203270041408394837640627353006847434136354798147084646356195502712152425662192890802983083428568565904871687592929919150167674653326146783039198044797846332012495307174666940097335032723326973691285792359327353492720745104640568692454120878716817160863269851310305417672823301024332065436360608328446490129815316320831812951751699753507392399842112240835762488056340654814370516602909110922980601151105781868140825954964495885958686771929536936125372346149624435499873210627506522987261917472498894637690410381660492823526608380355044943745909526235362437881957470769963156628792221883205482217461400378466287211848181958883042761421425791795680650935738277292452042529263716636978303672603424237647772953948694578374745569909198147908944700960733251970546338456032330003099678498848095653749397368703088634134366388505855022712003396225212865959218880238662083823109828633516709560161802784603129647825717798712848189683496711302594915486290357943693749875148494495713296094376123971776583945164321251778407296949544562139329776106555355086096170202742366792367319877042976524751714286538429977781907339360167690208562841591575439717658241152859213946495880895364547032847027660508451807274739557448487898377957586905836273502546145181922578808134553878185239584154523320426107017989293052035513912118071902286834821289220702841026419272484619501026523689954851139437564294531284296307974631773805586488027626333930322122063211265750538091944331439227257633252205139867988349858762704539340874377080255003195930486928686523423661403949413553132184321230485267415227606796487043463324219852286565634692613789463771219720167153931805598762433866621053600859863115151968256323060528821931845481526396412449023470846088644322922296666464774681186120373055687622743194379830251202696705187248487289561248575927001952340206166908175754345234212017937036266273489311913660268772603600981699613409321025727553223485718142117495941295742961890887253423625689521697963393408773368146083420773419791852336657453238933953941561784336846349732448317739413834480162837464113676201406568613222264774696444964852675119852032529771329777051551924369545643442362010338805720430107514405532208040421809046087791090199921930708315397247435348680203751398432735068053196088082140098165682418230324735303619272466501364998137043850815674820756418827606452588964744286148518019508624625249421069775510655634689897647001678172683387539780169584970269198510212670496339417596296080335559558051610814072507142204926008931735488303140896586553801001894002326285156947070584552487897035373832938392108732630138820747594722467317095366798822235184672578824721107962328577441597746933279696379514699174034194374829186067776977872806345465569289847959657316504062368122737919212244232960981047649080896897743391158164510053535563559809194681678586356218803749272267114598194934030736519311056297359135752033421253046476057145798631709878261229058868246565499649141409110037504061994297850000670038461101479826420679277076426999623774964421900574634797865742428242710396961258900403810219571615574470943748523666402832897451814585759467524223577027292249134620429214293125110152939061781341991242018096643569217775897992782161770058448454975839356926950922300063354706686815890447082768102967465270229817278981211071448783641496120820794415161979285826729821091155444583543728836375710490412698995169355493243893413637503921885589868988441656256830449538515733948423671233825950304295363843280281801792829097286102573820947943172995849498099939949237847145968429710060425171524648638679516542103751461356926831943955928401488308190983655522473443325708874344880098849892735774299172947617245593681699176888825790195186474890634026485829027992453266362045676557675488721968383980826849801604778640962507704345371802463030695329310850149102528221476877653627887856947700283603148913190807933763709656278857163933461768118963671916964177083590332077340627524145794847896434661363794184960101514932498416570265127135586708056989652836811446131859015414815687980110223931197760512684488870638137734919819392456599979965736151764562468869308933981489605929961435738113886904891360227350985950512463100162968309422076889118108347954293712331982321543619074463089263647428318072950348013703447156044601473006694822445001361551148278918048309511257156478747821220821247483303221658169439678902072774980201387581194817307587349033732582208307335451564190140038379367549619130695924127837607995268925237579480065783347110335046130774666736040579007595858867696003299989171948967223048566906515356404033149669103519145271392906006764945464865121091501400097493715791257130703080356902334166199020272570155112935359090677040487547899181335246820942229156504397517092167882604143043375782862321814524559481980957754800005630809121555266828181291656045395219928262743870960796433343709608229438961020407683547989187525138434139357474510680195894623289329502935838104774006171410918150266763673474281966532785788135396757756977410200821501569164038568758279471668812761175178821993226431760944348572134811626921321461432669777083849660724840951981581327786360405310958564472753554940884704800429014648370574254912098202961399099010236958783263062665034633390452965694634967343020785935513305155617073498269929020705310524615578120811678116923399736216726050365799651160520490078045831167657545819401824688794986440856046979274635015302314974033902317261017887259029812037969253800796239860922771796129665541793328527361889242018036997136618862003190639029845140227056602170665087014307399308053234718058871900245680850872239849167071544214933023118065474195004201692376520291381923269618305692788400738677619887195641363097066844990138155002565764820447373480417576475871287090301966176443779661089731203444619133317492773324517432029001976732650067411880826336085556209203798911388227156131954407175474966944331186554628749824977199991845082085541169961275650105837369845222705337335797957873519099512252465373281280083399315024794561627877871098610211340654809444809943826878093303641338634733673470801164847091690224645997354552470094055947784973933448784152491298607560069241986028021009022132424534786175579563073108328971365336808182679561499989690514659020755648872228126516003856099559631457579041400325321612924836575060214586496817636144654237263243009381357074499857817770389801226429702013942502844164186579857208616099396500530337176475454585012194913289780086669232832923913805903109437805752433321203438987741256389656428834573517667871306379659370389533076685631414110980415746138351171859621091166670324166646740993730499238237869582797874640823979153761251299290617453163955902183206492238953913937492271384350136226522002932288003708852530247988518486616828701341641333333389792102986796033178792946076467579851781992372932963366679562828619485249381895368367191160017348494893891914745007497815001387987075288529072549534435942615482389494853428057831123833142656235533627115189777672617965871309253089243872800858549460381828184530024622729572514945678224018882814710703490496219585128403651977110773829397446047393660395939834342820721549221126435843483614057227145638114325927290635601825766001518656209257417127096202023457911268341954158705532524615273125347396926329430005612321700747446284147786397540211553009545892818907620190130964604767686388513461764473673224069129007876854129750881073014269978833321280352519917451377157200529629962882724538616142544047121284789240419757000368210698595435227918472025175869223039836700842435977833087380752930780484674136746822514665090525994077727087204060070380126426008997690504865211394906404608757863163053508771148656358383072406424312995712878093668802963053925452786061360208791066463153702327777880859765413566224574655863612250993414104300788788183801565421829690322311453054013792110615351859297124664865010928888933957574014353545214600359942467444924083832416606046236472789018508470669628508670003586612189441472434027432259505121842226569663880209210073275133720191604015212608566110015583173375452476101746693657039061688471652151591298383380997734916305751908139276364615097095079430151220605625033405729637488160282038964416028117753079990126374433722190105381619214645260365511985259099726567105869072237072999535519469796925364746183384436070154283382585431473299823625137094961038385099798352434581332895999253537528364611516835640142285622344459893525392898286485201157071717780539794919661567418820697122008752820947936509895540695453815368565023700397018695504993558360741440690720752916885023522390139871843660439972494617201452022686081752137858831358312906191759287242045870700067664576165255007842021667460359433566604037118765940349082727269634673058286924801279641657241998301053552245748370770230351097333686644840318330216233492953043204050699840628979205571077510807484272635628051236552676154519783221919728295623208266345372314724883199694544282485379486953915259844746926419850786597540850766919917512169129873124767485510583056489483458198982820654663094391664478927142818294031861447144854178897988819655834498776393001918309166366296401332670602085191735397057083939720904391657718723833131697595592247260331597490839396213394151003318279364064698580053419988144101339938255996875749670964153099891767632939736418674065981671722198639889857180676696818304839050041269814313947888123072425116624143974951778980322239266206561773570364119532691334282714445615659845262795080939673204816666485682275377650946070639141574887679667682677533740087904626875817890495513772489710764864029336019636243914464869000768710278162728045907654667377725193973573347694465448244642360338498566602043917391471187188510011322280568132953866006371897805723287284825301437236310251523700993141875755120009342153303033769382339872311179693315507463117730932117247507185492084611964607021125442019155909565029120729341158007362172141609146783966656666311574731240540274980090208356292764889411774141153048691751880652858914126673188777511953853932948079454159438523169503048603637192112676206708669798383397212589288324561411565185495873420374571809662931425974054309972930467594853040763655890055079055216313928973424927267758906463676858718861410744422831492841657881807015539997318913910633636885330494859040869309410338875180537749652573543795258057264713936973378747295078206302897274314129388551808416361166567092257747978860281069013076678357665889858441743439430291141670802445846022465755329641757167787541279616507078183787027442863787271357810755623326396734117474749167871939862240675780299970030996040933523818559000301996128744369268705855597483101326881615812669659847790850112865188852225237971756793857121142322959722994267939097500473410879865277119591276907436920078922435543208497055184617457798487143816239125640393517891828037183100799224701060858683101066395026013206048655767144524367952394537955360738958747572798037837711380863225284517490076120013578075786297451624597349215334113456569697847852878624224610750731809526507758875190044326187242958838985074978660285245516758054395880537252044504081801649255683784747711006055594874920561645888381179498385020209253425565821905695994864196775062715179811611326974369997160871080284805578826848886471881666125670692451178206658150730307758714490796372448720140200004838014691166570877787933171035252215335140247909748411020066150488165843905481679309037998205048002937441034342531173967122538562543827860174574766154104843627339011762521236710947504894046232259334711467671568269802672461251711797729474282532178824402461972037930839206224586230144622251776671689330835477535206146229420285979394411773386048296738095465922574607352333020350037165917371411809648865669767204104309925037709681635651541973139389981874525555286837512156151044601727589851062462855682921190248326290314475752639388569173485958866944927361935642873930010410589780346685216833942633085954817088240539600115688643145619981971641370066403738813366562556331223620511663369286418357559762467577577012685045055053163775978586167349423321680097684627852394238760805015368353463424953764710860363751677916623982885507789128342568973794114233684676145048924600569642378986822949710765622764675291233882096854841081452239880010227921876766527556059530640611259384678357374911550262882271232951058260418927584034290363082392603060063049761936496373958471774935137765933626263335433672273566759472903572427851865843618981891403447775685106394289301755324993774476518336633846651146078550305558849950788811001282607637857073467009332153045851524782836644732538135624527584059472448359146531554030330208111787272150596675062434276617808230220040898820850182411992845526469626148865299494113614368354445590960204833319854157110976779282038126279122292324073126514551571620834949136986578377680116176432225272353868474704045076833284804910450548761612501638340481935762540103517355056364141546154821150456384257540906983408512801268546729004320007430431466025817392289417840180163577206269829184559710928742740443013995935715874502703681314023435390291037306611001131527760973579493191510826101190939397230516139335954638099594373302271098720646714250333596773930506407226882576220291066122058225446348299890534755212887790137191961539057629942144783099386911995852608319309681018890106580201671767314569769509712000145181410362072003519005212738915169929924154419816763737469055047301825188429778198378146655580135290878048759735601539421101582328023737606755034283544594441192864614949244868441895397023466162807756133461826048576784678422174791748564156127554415476462695621743369489905458071896726046788237926795651605193769399142793662302836706233334401875058128835308177217129082583979601607114991224470506016110839572436026544002082699727670664249681760290911089493911035383248414336898294743779025729401567543676488387979232794994505612817070557998753015847723201391108479623330140883310159187415395476113231846300157756286939787811095132892605372977343176023749380953649154793386148857228332649350880102159020809665957645307404104004447537970604243088857519463392237049644519300575678774681064252831813038575786435833476907126537816840602671894658761695577843634407993833295610579919372668560851069064629754045163984190200915582668310874799044343466844116950143234834737585674113527288184141810050712932381056885380414465012812869071145890685603938416939208206706039461075361736367598361001318184027401549215808324440915425552016147436471131391331961938054681502876653807328932682475568004106218228240519463477935977195659846400309114766809897483727024863456623865451887846994796696306569422449454151631737524249868701566517456762631268668396732369449406146022059588725722252258467701117452462981128687547336170256327304449453287560867220644780127363391907560558408183223773915619202339516809393516191746825490149504013381623612460005097415399405569649289623813159790468902196694524305741790592676941100028338006258201584117861581631037190297751603282589346022002293512191202865941022808922979641144198678925497797985848706341829913730911461057803393221688260444382387287914596032438612273583348116840382523267505781296435230316341113326071355474845108526045371150598807930315545433112985247044254651024760634055901130963067555530458716426637735901920853915240586503589233975672491511713662838001167704079486475279664084834520975837602447704233050179820998547407555187952174184337085640187446763649740541784292251617010049949820323106289076726524827843383963942905291684643196434226149530969219421722915934188578234080418905244990457271950084164005895560446687601070133102872071025628931004274078069372828283120341498775838066697543552488575972537955034037219323517980957966886285284760937233325838114425013021358114889959333818758136470177931120231466388846685005161522186614482195659352385467459325499308343451234104159154884778369965444020790654887239373494082646601324628799529794141050352861033882395083725994353554626683956332228212631994046552041461817135436625517611874917114880204711378669576625792250875049054151095898687479406305628243285899961976686506111209918979187034760521106815970105983461390522819526071937055219789078857839235775377010262986376354726314399063912815694896765261865821435111179662909345329400715854689496728154671542186415787111391224818342044228983246923111629728842699251671622191554715448430809547878511361807234661684910807048077752528690037831593587881368972721665767975865895741093927052101700887671501859902084179976033714910689065480456114126686087687525467405073640397245820628061781685941351240668127958855515085117077545300860228692383144449656187851532930735095389863210686018641696548344255855611623563529592916914943367402951669487223040714020042199131487460973396122809267522415297608780248699599863989858772638174318461480604517382332313014969875280323632731257614641573121957683799974273722139503980659557581135031382290596076169876128012049687417303271470381010587069500140410165807018630047127824965802927370156571754631533685169459287902655719112130613592673143669257468497264780997872496818460955628063909876273578716300001515387443606274370556528783186780370199950180933120709635735768124175851138059631322434001518956880942326527262499813557214073617592082921503443922705350863130211013141751789971621305363839652887853734136160743615784551569957631237523049603128993612825699586930264502332139771838209723642959521667662709043013214202306069932902882411408223701195154012036978282570440448448178721526195210673232760704742433158936531884764921631025320154124780619310508265978440369528785815883774985194183924894829910910507125743756744624228773801835355850443294877869869831035436625248065265658118634609032564759925179111668819428573057961678208086388641667717157753412065023719512118312427593356097635201880375701974367038428939595668297396805244321043741565381024835154450582082435836969463473702425105451572029700999626965266971742142668887888711095017615610670260067011372387078664545907798200346866079565332731786908314323120374961706562530534858260981332460777892016214918656584138362715968204554395938662549032874176951390659679827179858946751560717432684159643089652737694423976513269741070404179337432827383467879083325352277302891349881711759283900889365911159063073734727974510030569769197933402896032337750371028738038988336529761990759467539779031099847253461298812078059312233753846446450700080413066210918870455812874998882075250365790675671284532578280705536203580328169893583108535394736134314767836523232482084719854797596835670431861578575462512268260184829251611025507965944815259951244237589175733854252493620281407919900053123397973341370671851373914062286164681123958283280968226068999010361134046493621160563725509006560924280218108848069740298627199827273088169050752071194625343269803061051130040304821261308420144766691426742815371043685568460041649820967692842741469115945668289586890772160416522707083399267951760551961351751536081590609884703466833285266981762221421373872969288754310734534998866551329534840482908837097741708196264385017130129708987923942546164882005590052665508295740508656161532365677710592547307131932006744276599503048956394029923623198763480892471690973397027181854327333954135346690710514334901725492924610471360039363079222434458448662543754806339126415731631029658178504182293400862395179452787757556695771397216105080915782899243366231435000273514448381888009786333502810039085642507521525280094497082198926102727869017537625513003201352546964759781404716750157157799588421732605529030580497402518376128247980925376061069262402698806403871377244299943465555999905196374842777021245086913788088933732666047798618917447865398621356296989683056504344741662295197439697625259355430985658560449085837253847819703311536474286424760158313848818685306339798772274395178108584515984424759548750695149929186388510270764562955011872718502784150039777820979113602824668952820607228598725157288030955601709605749726417385328266469414884610591165703334940645416945003907805825304250091072501257229735131946425269407036323925361539029803940620085291295948259340022831261968813486781766824580002228764154784937393930168303276935477436141042295570096486675419288560906381124158133680375692508259838324555828168578187708004902519999777584513555114354916912876862320179287767781841159426258041896932650158574413357712058872216185138538076498995761801795411058021942174948231146080884043147246594885433670299120017870770706168161579399460122059385983693231107835555529331876070663479645074996294433403181804544989747145307830250474783013533441691676996867593717439147484417670164043135301083836312278625141183770334385290921683662151863147490011222814697999713029804930522716632989016063472726838721529776698181982705846471030712551664363513190665778596665670658882385154191232337548076232423606735950341420558806641951120064341361619944872569654873421116139562007407029750064184445786713665261333603256736165255568004743192116128977111211136446735915010209364784433836010347505306100421841809937886095303902804731797186326440478481172773275694627555868362606646739063658131772961368856155698451210596564354232151885094285977733185899719318725764946253338249202907982893114361813714021196917940957927437815740113800188607369157007448550353721609877840068800735165887491138470448687764383806572234468061300691825989637539366324353027288025157761709244050029973966606474080077099496390235593788404817954645190879102248888423180507102261670665948542778172891805957175999639890061019029123213728931494345614429031151340120356467255876700348149970950497082967875630222546611045697845275208420251917365346201692788089922250462013153974361426879894884616311411879361662783905928672588296353182763873577378019968430033356443776424728168306303653703941103381976449414133366205061055159539350019349727900779568609236462025702433819933409034717591252700754452148381200642743512252518422979435574290740028916581508102755298248739656603322121683352125070242858313893867638117113518584296198287005527918172274492096568286558617170647853837678614361436863105661133547363107373194831359542820405907562607193204825490205229043231770710592566392127979113157838064115034308536477461943601562019701411311805169033821682447423259591170159108859686060887276094874045248942429064437607770290668946629265728279771388385331878855616856637125669371656105324427930292875194992479130917551150869669435893401660264143693535914196161261913629099842707336293948638935256419100549420399812347500899135336124656645734020306559680289155516996138674287393775244599451888477097973828812468862222073388443076582756464197672259338647581904614605508935789909859565358405631847260369927879771023361232763739512924313351368159792000734186595402162768285179753068674931649127157776243447155855920317602402073348001385440185652488770912554826172028914697761842764451845925729320908051810868602489371559764958565781391789211282569524061516498739301961151371771792410978641666609539154902683817701455239648406041273614500724773476772180001815603120607594749404923480432380112874271358353369295535152972513830005234445752158574131946070492432310842180900258003360262090932982864363997463051704086132744019517359310405676788699664926288394906754181077948632968678098715429414669012985721200158003566663461926621810711638244065573733393599718581940949683607099635493837213582838256524897363773701963759825529631979933994343385565177980617723157742318337984855040456379521411767772530439405290537987948542111233155242560346150014017273888764988804447936108952254801085868456662830111961281957574376870636023740863686443052011375216694376846573808540691775734181969513217641614921228623606320710161638173062119854989022465524226485171030369103426784299000897229669812500734492745409527906110936072900446910432579769273636594169681688855992395970096244862075888179108252468794015389695776487659511982482861352920260036013029807430175699609779422667754326384461580825636136530312746680944768903308063305805518137888403310675754604633759031173416339315548763028364168051347186337509683288318119852730434614743072469718305399624418254583547825743363076770174438370461652913645241156214898157669566564377863170902815672827992366422107833764475492289796423981669705933603407292542584126433215824743427922998302326130022920184598217360644325359321646792532621151761814351599521894900191491057247459385386044828912416510784124787446802692918479156699814040109922208142739228937731946759813138687593533045705493959371306899653977311126703105555141245994915089692718500613864153523558850903683787984661636893187661343334326162294556070618501102130985714453877107488013133402148854886990640164106199567412506571626656127843106780721708338887915354790546549237164907090174374857457897427123041337016738142736156852357382091411724644441623491161174164923748834150042745136750026314197413224431342304439823297330796638878447521848598748362234576029111540483560850447492194961443600055366519383230846316218243939388022360390472475171928980834090611156311380957065173987374380867990130329685359044771506658688306077736883455585109095959911829545381019471341396231983351511775599000011743832662893090764947106498594361539785326851739058264481745278511910850714955264947355789434711050756192987390923070639689873435267175449285004248667875213073844239828002310771106537129018519276342070975172582791417509995863318598764401900353699961402908011442757463839619331600203559259333108354002262018591872370004980683182974353047244291686946584202970249582233282324750390836785058020840350663382509076480167312834856325691369976365495126858330822060225841179559782314696965940140204436527873571544587985117145684174835979902115876832605801817223896632739416968131456393064451724257441109120991749418734564322665232981089621709293673651823690538863210887545256965993786582403681710215679654530101227374695568074601384214491732521056445610750241269269909387393192757642142051410263721784790697298159301563378004716486150551512219072263822045883233249701336061738744951772706093125968737957288201525337423461615836249831602178535756755931826086859248917788021875905957937629327064386169005309321003508616788514160882900056904055041194478320756109889435049902584080954156732090610026812244140449879550041472395409899852849602574323950249956916771247460588893126330713813168229061545489936464101563132349106898143208895311758606303283720076880693561207845091129645484430360686490252878551219221555949793549799777914059104587626562009168574121114401877152924408384748611752630640257335038367593865922453665954326407901526396665579461686660378708850262773988970518325988271178815672873668497810027227702210740935153321237408476384783756379885129646044599625725376580160687924523958043704225029050822837569558629205829519337540208613817614709337359795480909349625211488413082409026564632350635874289367746011615544527853293934114980570988513915786404432722332334271158592423051510380321836292434707049105662409492412857243657519460815572735316593165197308576914848787997918311534224221498848700323809334574171973696732749819431779598739655191994656979561382159956082093769862435599451839148254502942771974827218099786859876274312352543881372660255818731734361081233617435235340462222276176408899727187404287768429937482297668253372100909053176203008780417625138298385939274713371180938016722740790295676510257966188859396593244572719378564336610061309714592346263593008730140977236584255011769989591058539662377194918855034727608650303321144557909357783913996383813909778335684954514516492871466046092857538337235378168356359385629638373810678549445879819979179451458632453867344813164211601417924677154289374774350627694778977474484746122577236721735999625772101807836140769997193888523997378623324235339422560915247676621575137114275127005173173388171465577734521875391584135862359099340699589286840048971509540023451419342533068037185583222161438194635881416387649496069880208077196221510188143962729733913514660214113836822957225651746989901110352062903188530252807035996592214829789244919011111338124300804909501695043228622864338719968244454000206086996475780040426016512380222115462113527285683477972693967994353706442470360255544291123119604286783766048137345896353234015154964150823750468838586245573576921505666905106191734591096223841875991802448112973559338931046486264320293020339715334192982787432020908134074579709406650783561683305224626410775087161191533722936193165832757823809651579812141231235344474017740264991074256425981152173269190089614062838593893444378309596110737627840802813491426855433342362309551833368499457736221402671303823330284383379249613554210430488869077644928230162221229140103458591504748771346488145993722471999938589950139789268953467756473630166696449244202595997875363516489331078397342820168993515689122019666331463289109354454080737167718752800672483502390988044243031668929350361877058909950997777787718980107046148940171738615269063769369298004401956737251551881216372211423767692656026619994902603803766689025065192465937130245243709312464427786636506138835059404985616736624242701933208076349336454707896099657611475356647813264601214613445079351562771259123158311713817862089079733148352469107667225815439798278064810341256227261762167201529127130014935566245328203416555257280680224792530147419633337744541135441548349689512890930634720661601721893134043618580382098376858254201737675372775368993013446625452482050995785623930846956459881783429046657860295299747960250596642328757661585488321881097979664726947153525125166332894479505701622087362610397024061394586388709970510421834663356375517755030274552248533186471336869231109010194542538072761898856040453802599630988304750360525007585784920975719882231014528958340569632993686546062609269241607769406812243187685742796308395229232884881414255332569980780830563731078993022687898080514048518903766384316930149210079125436918014691512805056879142425153050603856371082552753387344075651204586933957805632669796677271478879397873204234876252872914184873285498770210343561609129095245079014254406830789725046575059459660122510001181240150027996640934348869770052469525806469243158769126101518534657539831783006977223513469800152985267370153811918167959331445573461296926333639209842154514320537325006653364092183855216564319131448821277964641143608870409978693439067638027965414698009316418924653645525047668714615747843958074098611738976305297687344158649697853116113938685395812342764343529078116398298572126454428710369715607457996353978495249240152674771257365980952549842683583859774847510744248581224702300918996560946474532954925233576025820345571268648715667953854926659131470641573728901012341532007547779585329884080234370373351352528084511781927822146228959724007955048996163173900949412120136456814162647573367478173959554623445340513490707821761620279237686880493973455849725463943058693441625980958317101643751919993185680470682378295967066604420004223282214062998210498703095348986876136713019650938614073394816316615000469241672764853747771410025132455209643439032959376440101687612195906629395028959256232437363788499936988590807348794089432739393325873693090991237234591406364859911911917995147600935005752920483891194253398022748449977305364648747903343694677859311959272399520035596702767544089678690375005845310159229143044822094316054156549375251046831536808291205105836991549154529245308621948192520653155337730814697211835354354284782567861017733049702997408787793702975781104650034075967508446781550799639382560808673964549405234165412056653987981940009595431509620211029397817386696420449242096975642200304807946959842350473786851990633069145603836810935042986981992032877409309356454062407113207719559103578825363676911974158945807209857805239387765174238323993902690096183423577414581715555496409455655812610240538149364470721576576859357890333255640710944641462150936709185999697152710030577654578349672083884166775323409802809484288359037538099226219429380365292184147361015055232628629287695701322993309561907680175678641421692444713706081459790103991396781358217590941995557228238631659541360123416404595761177085572269167771231746788787163264865566607009774582112923975755425799000413659749476004193719165524527647748707629294895997786818700936802624318505831129022341619608601487231765912664135975094379816896113102400602536789388791756650772045732098178476578337436105020215104246617811993683259375036202853163574773720545239963116618349203108174597170937487829312300866599269689926348252263291485689756904162456761235676431362861361809705801773012021412277730277645481415330571829147649275941897905696438411273162366512862905307281457220160528737666146992050351979476733733811447616217187118421772104654640539829487973747747680293374992621561057907949202790976848834615835826046174345534787375560160056567226311050892166544354803077238475887339028069275375314339769678364027254693289952526285901742732327634217715861616370256433013008954415055124597081132400092419026233229668033235140972190342613994268731701357781631268337576342701390675047701295284054656601748746069047994426053572900010307565710762969116542559763483234467378809743414646599971290846504702560730002739771821167773117021032888460813346497568245089796295333002656838389473950817709867295582859189369611698660699775868512360813885859589167958218462529622857494666775369205439525606261204950762303575160985830910142104471920598099047330862574024924160275783325135723425368431192836033821420558426844444910921402948894282640790839288653030076459218977626662425740073805771370525613088076858257078416002960223225018905426157096367535023869759670784370214118041899951685107484255238324355208995642728026393284435919021605248336092451389689983709175941943622167799062701290466112224230758569463116798449064501396093076687918810515449620904687233644866534724228671989664812557020036523459797694411993130402865088550152276306053973250699468646821724832045607655044172456957027075742973884355648167032717560654100788350675030834612604357605680324857608184441467789202821002043135485641798102865001276295916975524944333336439151829438054739559623015872314801812287398160151668376924039865251396241092711858893962929701555053030087426448978658645664469010045693107550541646227137437527725508330925627084479604337071835956218796377591070176267298541548870070406534061866299259644856039991488682345185892469160368532014141001982169769288705376637224485582706231537395373444783212248424597941338837010271973629259103591069954587051246100888428819768005746752532163182814799309609738052329186848290898672186463522624702405349649420562250273144626865590973433696427756492674800116542556505367756872197793078328209443999906005450796428550486509045844324525345878005335126197717996812383535535901660851947702300865943577246606116493046373642234585843512129989135198573749099822677920370140399578758125904166959400295623013192768312534806049343886604480547557451406112069544618924282224945764122032573278868344445730181642991184545808385531434432557012220398816359975226345197490614293129210994039575548661085665586478820707549246295166624466965972941929299492434063667743131883637351367374606489371930008920415877440822666066289723410297955351330066199381927196137838717777378386704400985299683631021127692196540142650411528780612219066041970532227379394079547852577034110967494548052741802643161704193636577008258226839647159278900627343613482755325939268896783670838371637351954595058235106063966877615424980338839056239254767816878414062406055920203539515988428109847176218035471203006288588511319542602380178652699950049894262694268096448908887986476469243977737723835039222873331023054557107821710376558175562194853885739695909384120102320812694709502217961832896635695431363888099396299863836296733926080565398956160392711697089946308033075791306519345460373911337773980843977193058048293709341070046591575998209316805304173445272242594394849181177347069571365400951380844953258136868137988446890281759966890959714464513807656184150328435078543939307521374811720608372932230314504238285138603018004415122470048186223143875252182482098783178555771190200953497059393214521400482069292848122233189189838265073886363445316201050031864534522316279819118986971028031245281256543877481772240871865877354675436047244662877772571231285029018533455045510125636864821447582837126490842224566124727495701277535116192986381184828103096878354337983419080032296080450070456146664208867592202722166853992566970755651010082326553314534959440108726599409205675988431820719930737160859653145554679677449673252601306539030079840221896415909198289907008245137158337884396900666594187577921637098758580418658153499691196302155562579361519422179870006454587693836837553509022582730579883723828683615001673781345280469418243360400864630083242964164718101065655741300143740186253507167250571371006335577308751617540544730872886811771747034415674624925551189906929037821492399556803755356437701854480966855760941801690782991727560607305177683580247947074332864696987399665320747903284831005262967100278327110185876101861441220267185544143293611647088797650141474216529475973106829723035753354141618133544128691309167598015563308927080374719685624361451731645360903282148818244368060392930108217107681804730430517761419690034644873560365657255724551876148849334813361053529254961637808574723664233339261648231141938946872660191701527613320519244721397395349467176433502548879206282582897256236502521042570741877502230681885271846858911327779881047995579690449205015562451951686083264621698629740066100464820220696166994193282058963657176875844127166080226230359805314642702122824933656625487701269799767799370180381478656007841404996873665330417029666798708414818041057902642292031360847283979263803314223171812079383000546940840278665857494091946448745173407706237173347433218786221454473892559917102106929501292415181508862887767409360624239862111584462661591035529350452660375446744128264659856755809267974395130720552046807697791156637711825965825139254614196646974943046463322896632210151274093162162785004457372274882550191682721388030309480457494449749911546222797219289843283180847635539332484800627096006607627996446766738122967430627426562248844990693022471600730551979297839020455481569780418189336779957592573286017443802603036173384433648375308856159961974763489632162488365981887995543740482766263207126174741799439387703782965860553570070929988527973225527853483124367273325912447099135009869561783395695661554614432832034160714797057235149377337889409622639400126444578342612104356513867596828820983675494003578573783021009333431222766544033870897809382840740502820681868926193605882781173818068696065876885073835656713781426553084803264126938222159696208159821486645877646395961546640069968443921329026374537570727438100059112750170339847327222501061831307747967832301267616439510406793552952334788544705394162644790501827349288009053196422513505257235499439650015344519865589575020491804969169604547818017692637599155251673551027566853768206460795911612970468613341600802132383531031287074305773053391708429080286196853344772746591717298354672131580257868308072670090311148485698748105338273838290087199947986468560700197753863358811821562144689721278616147529576723459704402207866517958628110242485921207640755039853784007389052295130876218751599090845556669471441938926365417637604450330099502119494798901169872989182359689465342291309122753171699057013994536572401117292619346219152127529486854560653263384406832251209531059642491751396891424645059526506132098948638085161686364996720269630225466765641984014271294356106950778362443331799345356501872732378402494888219346749133757385858781771261518651039321251026986417396985245273657814571500656690567293683056081355393782779645952831397389523152215899236671488221761611131510425310929098808870718251740406223934945374403262630247922290105741985890707685880044642113801175564606477705178458420088029053714085366138610189113692565322929804430879988182986702473422432027991893125710448227506403185671489006130482500392074954381518169986940042655440034043158612088570652358173969643062350280941379356707829719374832640564669154995943437697827751895248076308978173818611684088438883847179341666904881238835275403067950311862921096957394840900847490410351314452946081608205301264545431415410005693840155675792758257132068934800963357259696963975630845045249254205576496213122462139358747373706142309128308590703661005221226698444703338359536010689502298769246480906546817590342381008645359288374790094988355136572299413163187205036947566286843458500085000830439959629708842167616516337093575133781793335612723641331186107750258732307544987740548348763606492967256211010281470906659796565848607990179694497038280730270371525636621895920822440353784327189858651759998010739821656040791431428868617591190619562864447352698208800978824323808807462065179177083589252195243370495848909879035357609590626507891203685509639639519777573625672378177223507220911288182220446110163712843652375845228607027255844604933649016380813497946790720172309109317456724315426230543395577927244193206286731895619125729582316429258289559051102424523755397355246788427554425708441060673792608917361655425809171402043855271823984661361369436790197861708299206259096740929360042655129977004125938525644776754053486755857592936921559215145664236480142979857865686870684799368409315105441057246498679508284967278050941211905339994572647981470429470275475072597760410167657121668349038184300267176110244660426780346114078210198657693051751156834307597750792535782374498028119917357636070764831760039741498011388965808297936560011946525708469992796040919624657939809444487684204423457543562702221921220890732727096019321027044618724737069673136616790868356041033538565507346007426507138690499827086902511528849751019354206399519406860275566478228393973451162299053119399246517430865033151172942417812413677693200865722714202346680557528278789247636251265154124953039059374792423110453947002836827938714317740156614879743047814165653918761355049992542314627297509000315806299273936220144156609829065423914887798129267006510744927238389544896397150304428015228740770021723310772019414442776482836283008259046383210210342270862541509172440112391635492062560642565382373099415034103969237522017806701106749707592917122498285531437340826869403148928130988435059553260195895399425174874226064137209051552631530687986935119975299153189352513015875229813245539700400310283755100124145858029719503504948358569354768206006841872079501694729878648832937356016156444616321935753549718151313903460392334820111732502571522001155036356507459871996406444642287686978560091070206110727520706195748265820475465414233797304218549019945386938660119038008641914267151104968288689627709350235485303412520705955699514289118947899862884846900388497694780149217420144234947875854140350861532098648266522177853241796540246695567699852641819498618386806768644347567568830783749356752101000724759975631916432566933851171335367888603930699017667386528320457514388301815548480641048010406673418981364569194147657312184969204149158756922575668638070740817774500822251285213340762464251475102695069102707584139265711656959439294666108715464134795174077557763629722043203029083822723350315878174769887001810462134365470285265360180557916524067677715535492783109030855715180472275520793159157581402877688836505586394349630924276619387023265327997604455189651679727840473677351783661594565839340282053861500508395561263088250171608213227709110965189900477776076000459731846201183395554241592290008379115104300734909765378378268483506931459902041132943823097040409517401179114126239631532685785155823530421932464553664735959040498480617165872348068370923435981188562060715990545936001201834966022707548237287097979393873865837282694977384740464232608975626635041281541183725394334363546814044053625669131495506313393847343977722507885958148152353233283774115807488018243969561824021725157989182120504895024484339709848301584910051035947558304287591639894276600138697881422604850450725776566341717395238724258541898603243002308900934279805727969070580362811123964141330193115135072911665516029062278197014072604484177219740769466127245706620400864813385202964318918504268875277226532739058490156890645734633153936704668815795263429373908999902002118454525104096448505537412069663479429422302841786374148506444729898895735533329002626514244321648046046613057037557528616002909024386392679734743836538205612550230996031075915852725612453187152511697166783165236562762587176706395782621543114449263358932656379135622299844929553606727365802594780585378644247680531307492198373764544988479614966387249019909496845878319641708486947724138010011969864184767560204541637442745814256524819547605140685556292236093839615222330056070759706831069422074011168451029542424170960340289303644459694030636787875110113119272716574376677400084320556458915752144952403449550175245964723777771376149453253555792250719202138820198569771427299289025558206927142598584372997748976889051693847647112293807065128333120634434253661288129803847164497371208508800925571655405392430476004865288474203982742489550501268640816557220584450741830843344944507728866062419229886573927032158068603984085961508729243691986592413114697904234198137845606428823585045751483289095072582766116691988611857064738187421481343709189400360359292528261763748065130046057829548062632868685329731187762357592209690842598673139394414268227580259279546669059080744444398883754298281158796244919477883176618212007488563406437905156979095247386686933093114080923095850158405136046803283491195299829403106822266792094322782269085078929099281820559652970733172238639653645547781448049970898995987179417489024128560515787143463022434385369019816480052563895448955824788615353898141859212205440419549221437560741460635986219459083615387178780425836305897929168549087031641605072869670359024509093099829996047857107447304040912067729234630587459444011379128614715362458849308331657678167272274424977346411576501162128215818465137769472308333008133654093799290935574604836255158064469988087823051420315999521388266336074398949823470311673835072758936540811275700228382187445654898369966022168359271677853648779370937470758218224426470006340227763220594144905052947198317887177026594627966876855100361739231907108076909396535205213966423330022428000585511457462329872002862923100126063624718778130885240996689974265062181158811299878111333324635775794785012589053361634073504570205702006247868156513769018072574934756158126751320674896387998755160467263942712947345347461615910645890952801702534586922014536163208211177882279079840784261935137150111224686187353179636801690284295207299792450821132396763148364476554541747754952544270496090916157225564375210115593850020153115623499605725523978187316997614566242308982994451626790833798074003529354885127681219835541500167894669314873218636041966905342906062443291095719801682027880153652474349888181779790395098987302801340045305183439220128763754697793216985256656221075712110421383659771946295017143679389605492115891393874088223689689287974347265658562850856861166035574401070744411006725186025331280335494886863338412880324271524192659543088166863988353992452098111331615284044608132150550916885530229168393980000028373875971968928109954243740603995679500886641148650076196251371831126276790003114892406743082878849195181411322878652213823562185243138364257852101772970124216105603823679109884044848754090052178443535993196851244768586907100768928789442059901956438188362790859410714208447349766601315920778422915639743928666529246487924833768471820314451712771767600874989583565669076766623180338940223856542361794774700529602487152913209563499521860003920053649615828195202934755415806520172373230944251286604836960108153405567934730372646732351432037200348342838465671644812992150834903551430056405198367137544842610437118563076575465292236287491421565384560604905677617748322976719444312377306098238956336503931582906085665813256346010935548717010983075892312770959476546962570582077725301134985076539924817977759410136079241911471400188982460963550254373591960674424108923013135722274970680039486992651934391488300196858990411235912948871430636623384644884738658260144064159006447769031677989218970199491244724546693970781939264925222076140929445803261636553166007119604389448684541250980613966588950971235469202018663205500164942190278662722058236178560573838477800965522712738735735812358267243624947359520076595099266731671855167007816865603599148478446684400614759383988440658711905138001433053959768102709939923967868718299898806690906476231237366473712807014739511673118513829385216854815636750860436056988874117457634235372792097041117437764350073114070528971851307816635707722873887670491520822814025992843155127227329542442579654003133553126876252480721164443215993884330499535073801803969305409881087640632220318756657862529232405973257742016705968112912581796638525981143189975409726035647437232496134213136466680447314364429722012169475123471153090812713090637205475779218681035300046552476110107789284439652002125374763184511629605698195650158478760898288578881240077166238468644517599941810088595730094316933767616652715450115751496231782079553534759940674565610815213128099788877759074772098357552533099436443335360607417269372644851688813613516134533568454736369572261602748432406395014706722089285703971139699577503550579309776981131315497293647798679459911919876474537435818326765430035031303394746249787437295584075034858783487229424023775384176912596326749039229549986603725426325964432433791457238268496438854091367184664195496518177047123954951278119316584581760916687993713606361405528262318921756859818222093048676122435314076197112250651282150678430972010964477372274438763042636073814576273988619561505488258272210686677862250377123740435605718955487138335153407397946236298744612638115336176020480544918820398120215279684860370138329923287713916248208207330583613647142521659863585570607219740605708088903879246793684166983614794714730283436341235862071700222370570552383000440804241890324267716515967235565744458002301533863375727721462620051879727596578716769305757316375076469104591571312355953652667077135389845106714783001015360327308839109315738146937327423760390278772637061898715222709290399631838100644695976856870284080335640280265272569631046560728363971134851448053638980759206713361618174821371090505780226154280587066619073132778717168664187311753752618049645328974540756370905809332178890531439137636845628053495792774997416585431732311365903808010071234644977746707385611147847221052996914986424581522347899865632126083124577813685255092503314540529630856996177258063680103682935701004032384046039386564455825298450357900072377610542614076042227722020843647294277744402722649594221682933357971894355090828550730275939874992605574089194624721520705098884535964724811642953733498740165871714660757001695702692992784712891077031275016541605484671521641500120489225676986300125010911322662289492429588440885157327973850631403059410207590297506239032305842838697363512763496360615416555888153288125277347762322733268986112737578825141413404411767741252972262400668082058655532518187890119559855962243630588571536140752045384925786371765302907811403363556816693275174569311949560207864553945258496425480082300333244515053385860398830279675640916218902377139625459391502906321461095170469792100094412503793572062867315833775431696377438674289138156282464780688946509918037081354029379333768720931364473198955310675616212846305305018832638490023309755249967570281649522279402191332914638409561213685642481426097934389639557240096165973626667023073180754195112984588745293202897462806205164304285655025925901354904734636858606083732583776931748949902017275839196691996585898683711617874952706378772887093742790822325139804775170218156231446886270745959912959790896925563985667807508947726895199050374562884874049761845966018944600453003616804353314732522441732015266501627893417851977844482082624518647740258395988742814913012877432988202162518443692725616116261890297877518135728106140349229354695090423260758232452932536680318573464206319327661080254245524648294407746910839592619661075136856993969278161796584441707673939211683782625611873713573210601892208136609919486520820498401521160494287996097756585452303177204119040578941450911252227578530710152965744990354842137631007302575439095554609232100652912184962106043197666819728238064650907692815787266665606939838560566011587909180225230527641826201143349525533996949334077859664874345122385825439371840313051299501972322290920316805192169101397781194273236021030921027208903184870362480680566133986386768892318414038421172654326567533102921076532712135208907559654574074282112483578466664797016239990174410348847620392210889300040906462882448127318407104933227325236462474564929055950296031122879613424439053295221310552638642084963870960300987306878035358663808578724000376268874269785035742857116942800931386656916303716538688662006783994141705892241072306008401222341899039649288605238160395338362209974103811695326119669549492584835302963685489371048974817149025198571369428945020539939849215725096214629670751827398206686271786465479346888997833594805774447192769380345739470690288692574126285877448899433707956209594225979362309990170778080122204230533001809775991511047191238191918792144239513615643470320492804288331216866749333436712104622123827874073887797614414820129280415288186296015452795482488483618469183733962271070292438675862582048047284733881672453601290218644352892491919982383538465479034333262112319438784147423477860756644507571321041837867217580915918186826932616725950626127336154977367786346119721266295407070173158349281845812786943834926912359482732447967238591270860739501363301180135494630555643630299981298331248095508269529490862937305641532072194874243574137569987827747160742382732122004045322679247948278049209047071514228598012986770179816144818283141999307461842553276512107236633998208642488975299984739696438258049762910303480134638679552327522102572962243553105878877449844049014973273072419634732355496551154415578561401518648008126359546999261283536814188700646599381584132309648876494591448509021204462843732072701180130706386870545577922745008914267719687142336587089012806654942647730471944212559157992678913688205919493715063429246449654274369576502908456024901939403798088953769614852705203417703847274559493498344368220724247018606853099465088701874681990688109147170470733055104658957622563004758912442446081396160120136833445379589076886228729161502413206402173658082619473402975571707414263168115872135690240076889344551791223950786605252773902214641734648079992620088117763142648525978636379719425727512342913227083703606063366210466360783653973330710306027728653772759501444089327777386597095896434605972835634228239618476352109253556025840345784090699489157098011415237846067538038369601263961792875833775031125001566975484846741897880626774118336664290518681303808156046688654939528446782938338135184629191290156417706035915032886441156166413049888709514713459218924565396292927693261019209430807885610750824276325527469511765945447599424788575903998014312560737693649351757745487660112546223254735177065707808324170952795313484305608023561527062213173149917313021145527413052909093996290830474237656959949328727654360773299706269006845275099534079018288966198653597614995339715362556138839562304128133731366985727972134649351338404149077136103948349583119871284514341544091103927695068291817806391881538749295636362102816130133363975002947768182697789991908915746149058016887320235836768156255079383074632943296420892986769553426420219791174253920488056251282077059682509964537986841660072044064348372321231680267432779046973552015985346971227442844793793751293175849750378074718811810686496461525122886188998381999480763643435996575207936052599435607281325177641831795872776388414766623487330797785130822044985288704376111010512912295644361972581053674550027374462796526526485772278384067220430866190849828166027144275262487557726473583069743966995723706433207710966017837004255410228211460702798768278083186064157628482206543082215069598439864628534056201516873848665593140405102193763971357371642573487080919196101783916601753928804910665219550236970481715640369485167799699716860551868540025014456108585780963241330663260627586314957262374832624779395598072721876960007405958464204182507772707808067523254461614240071342635247242340553812831228129389750974362017715959750220394204024772173849044676585644340096054115765143319657566768707478392818722314966629645316241819258598221648550646597800759930035835571644520460213556600608081656202472582880308499238366906055465584967743715029187267279415553299374917822628370143821534399620066951795975815299689890015679726656408551015508280839549418486040631716646611372554497873050706108852585073487857741348755743465986013936133509496416483101627984020521655128299309978309288116588755374830645648947999298010916587906645797813977022612207706696781145863977937308791106826921917442504265449512249153251381139705993622575915339647910201192837809358011948616123065779859024203413602176498078951345425270499399191379981149977395429297514920295345705373425779709814557313221215807711701137102920244266665797721537174685193265239661008601397151837731576171115812801544688948171921706502866212846651814027350436708521228178943211566373209052327421520494160216502136927753639662525165679026794376094405088251756825825942203679886352676481546936045036006804350558490422846286599417100209287100721766549248914179109935000375712808227024923885596490190530188201887355906338996468928690558868557671033121223028024542160700012695597565206469073132276337845366271179529259654893049329946549130196895220494977070158916994295460242666956435454374543026739987446252523059596215855537540647996543159990744933350186850848638440281870597582151640189220534953364517305598125272822414017181516423568132926971718199358005402893965491787033543645599074015687916139557702526938995642678063771920885405591835451357968268136661576277226121217753234424946475656190519863151480105156176683609599463814930671266741591968247214975516028732937590200428977746918910384738241468676943554853183867216347335692374068633462714936262056542804254679022583048099727084497895461705105582760948445989596272925909694906440515181400107980318667334118372732053624223090850261545178487302468382361357969644121160129396158377516518842081716722038069954249594545661151356202316215315670299200981289684059958071525093239384243459256239449507347334609696658043584546459767140057339904068124503800080629303995849079072977523076888730476466889506349717940483199399672386328562826037548410062644640235327545760136054950515843773155232493136201337700862329613037570705540790744194700051165474653690349714413884945456368447128773062305224657560102780858291247882817733455437189473305900331743681990435955081242656009834602064823071595098328591706267123126162931362570100467211337337183503696564733456699905114645332951013228111901459911533211172007848661522346179328092354522088148185805358954811664532014036821877110105501448038048119811766211221194254757039952481549749683992695508478257503106873430961727510020636372005720044470050870127472993211006042345743245377919614302977590823867968930887776685347404595678631177045010306076305299416839827015690912986414525666855207530407890804652040465944073820856287955962482071728602378697875337709839693625069495417709873518485148354201118842338667365623267921867596164886165126371570089503596559613357723188751671931966779438182303602226488672091988033062715600787800565753710435623030445338937600731015757137083955118163045972499211543792085889773554693135934625863406131070298179806136244223826560600699635916429896542657632817919031681398554823730837510721618019104189466278941864017782912744353489930187397260650250203059673821664438743103549818599562216830379761596942424658651084366727902982657025583255871530280634757201595008515088093391252278121169161950166455833521192172694476578345851476552548264798439660566601036889895188746699972776750338828243736052857904640878813077428876744972104808204419958869528527380595855565171354831053260731609764879962258029958270918860477028617820483058081465433325212996420352872893771028008437216459512268702706401002281874746492271265254708737855345600407935639496085040584051169570818943143684568972889502838898901611725835481045359101530591793832509219758870539512721155187652621704940203344332355720133562528072726501570281023266724573148911272610265667798829333181855250345063161180212090386760537424281573962547712260930515935217289459633053089954811810357345645228049666988728391381313792192482562721219694899654693018621723703366024849895545898808047260036915714707234919192927386911817505461047245499669745690471594403966796891499358415976171890852875634733923116885474425834071460053257062282357092803377201156495167093176361346397686390324248360887520499790426705090310059278791489199562225795235214486756609754634625217011558916376468953623455192762884453716794238506534702147582993510383435198056859089267213025458014102994662953981852047632181839283553378592153786559854636972667575004762702508833242976082469658666479959171415762598360973797840907891757803686259417072921782063878617342651668644935011413666100906872845843572619145111330666125121032458872756294727412338157901870842273558186785832210631138912576412456800198590950248855011385164189900426984460990815520491756969915488964585350087162240160524130589426146181653320683332260781483428094132701181727859112550827853082034482095693339594650204906242609755416222015746482810206812809056021446198519464376489110609079125978276940415028641782532146131153619925601523276302065272657670057536447043583392267286011484780408920281714837065735922126346259593820493765114119959029413166793240203716069699144376753806686988030439053008693794004461267580920911398167569121783124119774319882709552335214777714001741750555336826398007187840247738433843877275953760045164832574523695490926591600538321904127461705809239519626433692467444049417858074850741900797401355349587381507823189497041820353739548852422014363922738105268089068123717198127446765474007115037633614074524489661293456860284280793538517114217655049932704715832022334458717182716943584210029257872161214971259658721291376922396838040496056825086117989572800536661824586497413993873582680494207810871590161237731487821137182290316175730527759214824190440043531925563174835537359815005108868895086119886166149401320043321401695243462703213163192000608580396471270780573591002084244752595184297872099830013950716304053793233722955808644888772992888199423986646155468001994678402728505715823503369303570270508833605663493561763618859553845171190317871456772195592620604740235844831793537311720675545776995621610286181640871758562910910799833848179520605083128289660986081610444138118082789443149618285879720861131443041552017804265759970263430226481886184427814581465887530397879329096638982424670071783411337794200555107690425427558051095719726400196444926249413422866118058170628309579330459924696210916923752344355771907918276273046473753640966406718847195338477114567604089133169550237549476412870664208866309174240215048258645510827090907565669401927771044801952071358915911684861275263833849113332591266983045555229098007634470975825924999964161396243743078147006573934797109849996233849163333306367967516725135406961968801557283018965104234941467696710510482612409616043388562896201740765827116871232134824935974135169675603337852837919980420413992790917559598107034750659660821024246912156030078505198410291277052229767886826369397326912810100380008488534828618382106690017096686697158015613474736324570565690253569025695895872406361273663091073791310211667191824994176383636403905115028923722501248802523342085825609064448267071717344685211994452472866652718393266603443793241399567803749124470058254926745844877073800662845106284305524423515021462271457327552288371702875743344013125504866406183787675855449115390966723490234763734942307547345745612319670589370788778300891060075229884656824161928414087311571086801843048511150389656511183954377253592074568278224179638816992952958516825390200938187154349959788304297669023731650731797180367806044777228498863567239890045971125216845756007850219918847155267814293653313368004521795214049442408118581988608975109073725625486689590595492264015091076808954298096137134419319482174896982750024177074059232310989981894920313701843314215978609015298128454865994491272163334696659248478876693858882853955761994462593793350728647631788568997216125644817540391488288377311702942167419090485170623213374412553226992545051738260717623868727179230259165214519587174797119405148970044600410946114357270444582991591898494476328728041708895230296388194164881256324295604779955986402390673890658744318039559517611186198100684256311123859491506901333342153745947828610000858072955350965810937736379691948405840700157997160103302386719624994130642827348760966661162463453008427018145866627146809422280036517423429339992640188433895380993688318155577773089548336988209429586674363064217219822145574520307277833664093193255926840903855316832767839714229206107543524727600205561701474763123192055347321348970171333665231396979554767698550881756806962400060395731183094549570140248329408341325677111852933052193157410154878163412651184168823495255637786127117710664463639094831859271370619409627455394504656073573300760294229205081041525498033458187860837192624739002273194471059315421372735608168421157220369510223416557140576187923677077467927141291673113429217659948331803186869664163024493440142461169336428275416040709275923247471077785289683792990680710360761584451472290090461449106326655015392811301566733960814218522431265376405451018350488354346971754755920264184552383400361104778515097232033927233274254668342555111491807937441592249449721000791619695294900031572692214941259435597089157712259594913078857023480554970377002627789757276053820733295458691285678577739456819099886461608408354203295585195963733998149090372475374647407721945559170612696550473208957066533618097087178739893707235122652897071904159154772093530296085281477943514438203974351036974027828509670153675526533318742446728663513783252421300510152602098879335858559009570521380198141176192655485196582766686479492458146757483492123960676129310124658248294094512667881615730074125338688435424898658449341766343166826146955772400598219020712907022535507863341686995658735033900935243292653113996050458174611959192858711390714179552403618825198086981603166427267883328585580657029614240139950922347110594033496211860911212146149520916706361460497595451286593090170835975447372717444732603286470312784486829636222331967119219556212173604474580090918763653877810210154094414499297668192653314850109842913462841352852291380134915219309218212319281825618748127088819390895821018819212915603082454736438416669543484026591046154237647417672310706244258454054263568783481789401153907422142076072840425793001916714235321961765048661313551597358819161411297532873700791016969523213024805157354243118412625732072038731898724644656500360646494332493266657567989696848310340579236770089859583990399892555422381918212422374586523850728036514954018676329195952941267090709918516884967612967482987113800727083724307317698421246677371362217771464283681013655737092259709865867992551179529238676243181406871176600762325987633106773921234211655804758395038431862432134707526756115434806901877465685696831397326274263981881853481526805889832998387314142129756650398244560128712478769158888113987079383853547406192669189293183560146351681897612875593916100953091033310135568740818577497206337202691889251137245806093783730286360186894491355863509745734763473288857495360013178414423082225564579940812142594574192845361932052992281995995766223916557500808079338635397347865503314474729669663605566334670081861008205618843429276787006528938354933021276225328755390592140085692025136414526933168448050928912183037987846480925648471027568968401157611817303904244910997358528273343365408108594907757815541997130004651154319335008291380928682850109777087641207712482526402471819588536798423717067205304341311406878526751224233253885326912525607166822663663518956851195438024242663932462466598724438414935217304311445108338978841950616269245059148459444524663654607474272446051858737206116034834474701394007486186739316298887547996651197125609076975122045629319123868188862203279700790469194654418661408500674873336886415763682051772085023699132232545426505655559648662243188495981783743721719787419729754636240679270003818762505946539858528836884046560065926216387247395845208879221295176113453049813049728523670028422952195601702822012303843976648022460649450246802258992900721628024584408151237491620404913484496187632134658683039785345578851139606870505795653637598337906749404599074251443724327301513161384354040127322208752962489277891032910186461881916590347103202523634181898151235557912459809591070903708953987253367973649211755795467031501755391829314637601666010191265793246486592912438790363609443891115644983224027097525668968032439110393996486287432889055874390551375748461485761262332426210360230834350601823551480646370073418186332811554278167109805180124909283524523096855622601305616902685838271930042817342348807082006679544884141518322806086968375764538434618768361411530881074261465897921151065341958532956915131422045410091156250437549190126756427855988343086519530824587872568127255524747771244248624048376216857341989105540738422648011018772975948862246619822381692344754312797667896427215755947328587841921619252769940550086325389956355426338136623332152189582618077876299816968335011397961517957907996665214110741435308005502199234069979455390344966068790542194758559798909835750615774669163230906818956138552682252194707249507136263525914914021304870630539285464997394275855356206839752585271587978736065334117006178040317542380879755082793620187912149151698447685001258660421211053880059495562470155041436832209731389984429668952919731319952534680851563945413909916351014005192195271186572284034543682477753358457794920454809561233887805664438752257669640632572356295307022562433588856902887307697441671461795802181010148046633436084720143478884430518668673827915397318842148800981922773178530694447509806726955929387729160518313268938775519590012413286323373366944804829609514641887028122837342933301095275345631272975353286922946876552609530948848306360445880482706909076880651289534336650498496100801158543293328844844372023200667036396923561708355085112320680441052214281819594317560214597235588688024129256175985375702477523178883218582848829090653553485346236612485012357516123106430972009427713308782892897314580216332456243022353303004705082046336383058994827580385039685882568910538738716411612561804650278623282593613666908860784877569273310592681522480928046749971784154232927818390984580389451331586654704907537260833492737958719528470318152459934650587425855758604461619292892940239756245888412144307533355703123936413213897873610680576851347441772110317474497679358919564119272154669353399602584072235190061116952198080496888370580254568923822706731367870554999082775035337929753941031914830880614529652960604008522157095866562633539672695066340826349043667591822905867702378432115818704418987827061660389199496349338781832086616102102688257664718789329922777199257154431740942349072752204380953877706412797701721242008318659790859797578834199694364221153926072320964051256423583460589134286431042772947673910683861919131810483945214574250360697519198729613669848638710028811523139516781715547106876189951989752471094945700920954196677205468921673745020054072384306724345552425147909724765615523111089871984619216726456500437275393831770169508871398195123525192805619249917124547544248275687180884157916569985169784515955995802214444480957663272131386754641989924772191455116193776627093852064058196114687228163645560701924416253262256157592345424327318781850899216536427899780702383154171176661710887010856368621000017074950883742962307314303832952130332341912855826942334807778162174497695454357645517595309488181963132973266087278070704321879060627875708054232139252656241448578755867741836050395207218777269841355163555734205777825374923954440033965943449488597121928938164389542724350333050797830099480020084956275030373057103757090002549457071643017171822600663567563546106712009147542725892389487066605259998668331387794652388503923976078653316608921327600403638176824558410772084444179657852423950904634344710548851114633654046613349193286787041382835329967043716386533619904175106171146079980228525165990228415008109360938977798797148941233136084725584526691948140279160025154852533909695387453035463659048072262475894608150110621888913697442508723443246248262760911371676484509283441682580323635705034271315738823684908674847799397969204798009177058347046858168712019565075111935571630815341993558969124433719394943836507277435628573214464271708979212977000300348558311024775134461063843914368503351666268154580164339120114903520085559947149819127992433278459941663915476495181605371741845790043619347440497551710108996761115994378441710547979930938066910792175206747372539199478341479977611703279710947824092304280413946147212073108413782055772679448523015221850324766279326824617481086531313170484154624333806743612903582707083101206306306111426095275099120420474324920847359571035832195255877293574751126540355514592199627486702389744049586580019784566152759505303168533348972057243891545610122289240992029386480025368976755956281913012699623193570473327987485227809116478759210799721880380831470684565512007571293393207926179766357966334285439239691778371450590568040352370245191202882274725423523570418428425427437105051027425038842302980547369525907808596414404934739505008024065599368160667300844941856709274465742454564934576021865507181377032457928035470546412767558225872430118654845169366673183726065959621549134619370309494052760164107574414336102910211176132487271313190554768952990566983265870477559182221291464684434195427420662346836916267147476098939058430541616409698469011772250847274783490379048343243052580143943630984662755092471925445917701288642692158854270206088644966019278298429605994891872639775249212544342857019505891094224661439046897065892826695890805704346958796805015209714021863023525835053339664939933349817320958837720707510617407487971430366227229000323719499987959528128267874438230072690473392253049315969002584057584975834334870152094509997722465405158535280965613093460817677039296884568168317941559655686547151845461063207093026977333190310319854905256857191362306556963938023406330598656573460418786916979797826981638808331700863014601853395132826371395655181484997258660371731266081068525691852331569061253420376459183358565372013426023493853018323130300451942569972890586600035606222055757466946385765263350885350996337485255928749390063424964831265202582909916087528060929928360687254525210116772705757053160185316904446852926453000576879163043539009514856260413889361474253060558185120693831043184832651689776798335086567029165165851986331820828484467083847512363034135056459596907822833309280168901095480153462533507731365278336740079934358754595556071776734551358842308288204448325476673327967378465874180092498640796498560442851478558604418355088189319993875293826137638968762132729204118875796292522974306326797817217092322216684901325379286106735892573969979449617668786158264239794502420020179541272714531147269818238447278402916681499178591704298209126669630230517079377940096231573256528466643420768698139161145615341010266269216729924300027404600845283609463755553520176818237372788180366556791438191431884380566586201277142401121305210108510963433603946448504460504276183411589551148311816629491703574915601990893667338676402495133665504875009169761707268076412207479197020142198498797143572402806045124943148988546921327243609036494943729153756361523625245558812776039220344271405276530386294784904041311862319704504485121310232561118872304909212989719379244772954851656621975228047015360465075253563349846811766235834141431179049058627095694568718363704364723162269274321571509042022157825403672967513063642419672340299871566753892508120605959379901092363366315701441003139698891263374003777108569996015066087455877882863661061481204749674988962399364097994951261275208851714775095559094945199794582524818192629598299575322388771059736772256018435279694451297313483078307639590246756652612995998534576403906787949424621546928698229565869381704981587938439436491952806759310147888870400751391937956445753020060924669239769466596074444750234577391684384772193581564022252423436000460235911672812306822713309821021123524650785962073043735867880272552955212944758164038500522270061370188120168188627286056061862594084565167439688269953460386623497482039573156080533064569505342673982604312830029187554154976790760047635697598492050846719270584513921568389883595446149934953482575748600463395591141199248256761352070514743939741991570056891636426212680015477680288611001454235087149894205420456073788737631148414252535639120795999170456502187959678870745249800066040588093570214284744876370518837897642704336794581693189723770063583680037015879629184625475818169380574607424333572696515062736753452040200661287767160716808013290531995213023737996460201714666464207867304958993359790351418658005671185353485030180885435068611046728762016814663732801783442893738994823773924547579872976084515036541294503728511051309549358956238918326250565478994225168859269318816018298600746390995681490318006332292400489998213979340001753867076661370657657206502652124145102543408003008300710855137044866893832584955078365332085365633639438432525232470447537442835931765373122766456659204744511742773321229566369967037071184489374131334599783559730541791981177393411898255207730405852207835793279063888655931980032707455110800026190966777814707745931609019070158003023885262322913763042365023476231510505469197576442688487273409571012018829007744219290819465767402056202819097862118224995972009783010160983187509507325889912768372617776049298613491325728616904578381623068376890294675613272856159504680374986943590243010929583492272830504448941011824805453797122458771403674184636136808737773022072621292193702517789228735552768958815325810020093036653588063731548206655271643047723076978961934542014916896026232639416162142597427698378270297663584823668805533813424824184953893195597182539775628503788873254044669374326320482103610846254140594840523714525822726973559468094944138679207092984356083108575417622497806512786288951751511292664183746244155250212317501238557770089121762679399209680446015068499647730349024782765513379137341919758061295261740291968552145993465312737697672809114483640935397602655735147492380424798349635754982675915181043050213162698860387575868636928755078401243021016191436378479167526733887385597793467338119762555135910394181136013871812960883074265960541945109311376692133596001316194638771249514766748035188061975224261184482338336254936760709987265176456076553017050835231794534712413613513840733186770446624130592322230436392793084075367897437504752749763700508422059907145701121858922290664938556652410820525075900651938886205922335011504061446007057395469606770947455554084525635735743700422314848956251825132222987744637188413012079991389613046969926438294572511787600961269075933503628057501542500514120059033736042200306643521451464873734681045589595376160929530077170836540372422549747480771440793030284468333380999922098255297983618599873624367388343883591140266843317410951834746164892261638801508853209181131803670014546601804929120843858585221885728638532353104175221975012572965841229603894750865376432403337026128627500467449768794096835237647521549976160386208357472568723367463429369558535684729386073747026259017458334407549625044756918576666109755033354649696929651790431565703257761032012789463983827397874924210865229438422237002598456653809582372915474611227874198688908153112150599427523169249781810942803077046618789333989697595244174567729850774237723443886995956719327453627144273634823745660911368895291122322966791355481181894922098798702926974052266171252453941964042651029342516264540267834379433725263191650166575383761495359276450104502299536616556592236759403481085081048944939334436952250258263386734619393309953283642413990051325163693501543902944089170392287958505478899062194120346539361135927652532169563330851132451940430278745182703242519952247829858765152841486843548124759990465720450684074479158132923940362032247753181949366712418935470713096851731846269799235246240654731539292916794095772397831201350374405068930395356380308452009252857108866248845393411211027456783415014823195464433603526252726281294488554722846867573107683968944699944072858977992855617043587052430291383209807817047662494237828872694096488822310857407882802495737740499866769748561406662977105552412348062721482596555522519855798280401614953778315569578992405355563368311086464218199733614908514137828954880987536888472391908261619518346622494164524425813622409642773795192377336141651214425193094665252208927313957008016139792515629903691820275407688973484414646534319191641091011666388980662428707692863364137635911474963204045913752669956720151107226618224819218312610610822302582408227384528412893606785965880586952328712197014441358719156872178420667424898265717489115043447906174368274238090305659432680037212799337473275493462093759181500531802855057780403237402959551265412984922457349489759412452259757088164378331283814615892994742912160625171853440618141240857844193839107721620345545918270520914267804800690759616333459679140570597846085022361265702012707089682333322273457919387921735170633529196575033536237560004518271412551580510666108901466642704989638861083425666575618995191247910223511984501525719694763347234819019161812337860474308305566579745390006951043273625528280581233629253885040872522180508566896113792547435094619411477225920106052120427899531474175994413258016505943517737518172243858271495591701716120437010301605158139034910850627644710494370215637173983772791472261254834459887646085476354578987342857669664919500120648424959735889634355460496400160041470210135428335025064027438685771077650000487298150945035674199071960347342710338227514984735354913406361533935180310234137522668016510517898586905229760729088563626389705360776708851897307595583820772247524284063693525956977745048527845067525772727038663785343538496452889312184509874098026012600058210097253074336758478151224934512451741905022991587442287597085657886793072656905627643283793477316469751186006788518047033837539562442447876675815999225775869382387807565038340733780698769250672537624125840867678302143366920632571878076974308045620301285476660403891146193673259668305319036921052003615143214101571521947607100846697886444363950640851884379132717982451069006873501168986866150360241718295564514515987627898611096310240304511928459754767987760191849803617465735712906557144413385910254031912794230767341614343252369308501992019894260958168070268593333418623089177584275484606475175966978704919897039770276479751494023702987765091069021517874052794593602810832219683980513294669090550349897670120197970396477411188835934551422189631010683857794366364883608469808239077183596682252900502714016202053038235207171311825582305299650134522520451273632878362364452824633058995391618467068259838325766470763198416410265438946972318147859988393312669204545021834335211267630534744692905693901245902134096228004641708969980490856090832969040251684776610472720354462595528917167716724553743608422645690635436127465123293686529743720590194387665707722014245931601173384513609174396352041831783132678452211302407633130663221792611242335030680668989669114605454893797723743335950667135366723037135871285915637735587378696635634453883357388942487632829189176648161649011521606676727965109808978190259291259431588668621377915527350228674039257681791011821503703355980328890017964808455318738181953345230249827060167514523789735159635017859080171065526168868980870874783030790534963706615553618842350678682813686809119207458581904158997408972653280749442186024388418862636506848568179507068500156122243092963999667932242082756819867453062089298549419951445691718619049135051108108496987757234090991983781920314581981434227597504285174307698469902251948573295053705769384400539362119814120015811174914867523688049161595664882790119440800461495980836229686021650893604207650922689360752929281301095313048254559380173636031407094027916077105735780754672525885500993060020524754452069278258242682514562035754742122262493817405649411934504483080847088874562077230102421868869854661335895274173721614417210379281166751871154523108477236173692353223868168956957537637331761069297102298629272313182307935020073470288017942250508463896627553478628182872483432081488765475254366854878345915106062409384015233503744677673459017331385224985337954528594355622803321967294488348753279155812098263943579517643977024499465503522698414334457642276219704271764816808260877308290520999497936753014499562918509146265342786549905589786875259621777322965562724592991551604742119119089057362179738039833544353844563993978065064025949797684626997950213253323804553434995452965563640246099406472424311262190566045971871713879634525463087490113882928493522030558607378393949850467145258035189407502144496570595843752641325336374738710738354860691929533374161035645590063039207779004781354497118192917078187080878098163175316900081916329853354055788560353488867856417539327550273482257790252387238251747408024420339841986651425947464095251236707735570284322455258290643920491530464672514868725267460620854843973838080684937124005216840568555049940100658007668817270570132332037920796814748174398376449412083618115651188964207477000986863319280513644336886603628889526387303519571865779809575051487120286138726155330836042478303820873854891911075464369663854040332735859222564900989016344045934630923944021705620559919988365232558759438652343614979583872168585718475194618148709870643394186671303533516737280317955214794272103891055341186102275453730964254117386167186805162230634708220382812578646850822683348409859220848519060105359896496964492683712040664522034612330090333064635000573256745872392052504660532897400347206023694999138113054901019928679562890475493546248625100411472325565627310301519470027473445151541779207920798778894745311305605515556070351365496570927911275869488851307892143485405945218104689144966183611145110748935484969529309176922223160140089022900914951391948687119529836250102620239758978954246244464583238638121307730815300023826939196306324684816543569887753378280371938052326447527989691653001604334010593383457695651118510023867374971393504430951021306117147779812932761627546204871727230389820933127536464074199634745831922922043296081538024731171732627318146549787270064519759693352278691715299130993483796216654341444182276699881822189667070761101832256805128545414057580257223684488541376299667964795875552322835607694772571834491752755423150838819935033860862103091366754071983732648750877373891223374007788948659513214859880584682647014298060971034302200358893993198701587482668855572845969359704829577840416798219624502092336540418529883114797580557772625097886414316331977367342685331915139911481731604545714841487785360365674154257712480249560961079678399322580550983138653633102778815278316023457471137347029977847324849926634523514971125639067169386618889798752005226207079834511556630533786509847477167444449534892371988788406991865333009102436434281191517205083730164398833399384558560862982868059845202829618630678345587932980799272182898275000115346503263058689444199938381079357552283839674090933789461437079643726783916974875246206471103367817105232532519574628219192007570067452792902160386448909475369999254773264451291772142220484198870218187931435973271747700309105532172072857083820933047324709185097803371975884874936105592359133910992834108591303339170613686690817276492527259569536133343996749681090699906523810232899022201988603764310044561061910774633107776293597877510006941963009348311725514917071324234621819626794326970865881909335497167612164556340194838337545102640713386281522490038616159369284189499876594782549432458415386103683143388593372353869800267884588036930593418799085005156406511241437021951935507765874672721304951109201279164363998579063885948222510960067396493947027294437359687138519020297026068135386079802741672665333226367061823002706286148343059746458555613763005225605130672620142647285618789930378229241920762205730822573549509182520481000166976992169563190386554094678402538184551995382923874014257109793200745314154652699642220389891280194407039929853248895190549856567677407025816574775524353649524164986511034206720017522794718297863083269283515085095086460946298714273961943878833672820106803822645786081560813664015941014738854938904556791448309810552146407766813453733970435466902010011624661440912550656118067398697544502105582632633897132395890659194285077843179200981754457853386171550696164937431563392494784367250058316663678830599024027276941239255871893983590024695453667795736185170427467572737919618102022138983675839800097044005850539019249747270737116190563825911169010564103918314438929466192012131322462167688798025443376121698683462973988366808873906928115968213717560174858355557399204463875839661783574445914192421506995056131210431818557821513424825626840012345885282852999201303173826442637167270857780851019308257115100312453005853779653259249062840245865469985825504282435816709089812183190047421863261346304412339040951218100572747225095718977628866425686676729771945997993111533866347083389656888435123951452164883572674654723252781163294021579204580342588788669257477151843758464895996712271044470694689397757048472448898098356593861551074576884799366742020107290300919761157561558606534147421803551022858505536371695095669260869554742197377734903615248594872859359250464194500895568888981629758649185413351185869623635032759450248015026185955163206296500847023447387787501916257049352993780268989369243853542239115816042085136132903487569783984418456510740470739574076328555877779234888169657117819694489318087192142749470466981450759514955216141660689547479032230599455726436272666339309298090494979824603255971749489615550319813737622106132076132138211415240094534765666672168228093487011177019183600620551207183668412971938184774092225460049653007683064255629978008236312854509915699903218743100492290054372070544040304460233770530234937805584154627087501725169154099888607375478900221225851567809145074440871178009130586233102417968626463685299819157270912876891092446551750986542126159418803319384446714236300381909550426012029148970528670833905039656189044579517270568386552639813606583056298116177386987610720729116580988136760867565156830556243076025914972652084849850854988099406525639376990296076110796982607631464239159363325448493494341357206802604174662337630154992775098915410325116030621326907469862545454993794683152566891209513439412867389465154379259265403485232781362289439725517101921923095229903811012554104998291056608871082805151930093582208850032863331062069285152971618927595952756655450034252226061420043080790912919078185195043703275214208152583161996890265508365722385092915959285822472627862289795204776270056248894802203304923897325401501162326764121768755130242212162715919517336528612304565225511095763424550936619504475687265959239424618473514259848313188627242193324909150680070468364512537493847016161173048580354282740919654410999469038352087492796576772985752034342768905361281994849628828899823727561076374653080666859078769226343624426382071460301994170484663712683976891272056059634126641206384611075518322595566028596096145002064434044845948586544134113543589443877222444413558864939483735507857008978047917946082726236572589032658039471850401636888731358070068345797374299392299122456150475056186454543690136958040320821552198648482351846609692696680370920495342052472421941320893758631372230349548284314507220828798852082542182560515669864965620712580299097200020654939634539641220373426577342638243462332824772883219187899817350058245399454793885901019289845876432725544445002188331340021880874194557150042508705596043426541359364428144628874845269111217925470610256654312950997048929915511864764564521508705088549343193924182993238408824356875995156609624269677122492022805786187046055596646778909122818760367819895113435193863958499749459546014111387123702388455912668450803067609927749647672487582086781025642953404916593236941761633446918367492046319774382790287224253546263311646617609104932121045205773101490225703084251531795093773049429474660700465787227185870753515021272469441639355691602749567522956455636481432168227540184530965897405716180981343374608904631927014304428422050482704693028261588164059534422651641853550087549377920657248300586006640131624105589388326684476547660691491961178776598245890044428057824147094196538914350531906225366374399085889693920971397499719401076284545048660164470385627740330206391107909933593901016821704263079812710333770013158789100287892240406487337682072640738675339395228272161232267053292338015079996753629597790807147703539509918916390410027850031703005704257928087741695282643864248601244966434041003011580799320862335712850981103182877270617060289134097613261697727224545256783096401961296024899900985308232728217331622754086744135663761888998696658954784492691629853818936369117316042518115297531336619954236180456354986540461241387245784109777959888957511071590369560533980100464066654431274369239072158526966871064531109589598484875821345933743767639346981097050326728800875186421697905200461954094539051129739260719043405658118011273000643014987347952213155220844711563768324883373220072385549393887229955976060734976404175693559312284187102553734345890588989792304364369377379229643514424788580877445387392201941213087468941499036156744782903442677665114630744757060058095437742813367455779686980551260842761979728843814435366169631685879194045615806107071760797175171882877919903764548690522722499360593487305595676826051374082409453957086966254262379078575987538988326231712719194481713007998182314254454229122019051722933473864860179182484570413050173828516588494175049192799254811649288278776698532962854752775921270271126533241453281537644201593890554497436657282508339149306523968696666987773863133549713663797938091526034224823313739457067414067696010577240131542586977564361704361504608335090358967195204569455300805378388486211429231198090297446062947906039604527903171892502551346523029395854971569797132013708242167668017467300682525796179089071731607209352724699025228020178946442463806021152783848294439346118068683104537012848776654978866256663349905036130868361780385408762364591475152229436882656084348497751941254116420960119158400022312572383333813504086271171024246187016700821620806690816609429336431988111853060100366465728352023409248358851825268230523131907740083811575535709912709607103675120418959599305402969395500692309186830157884871474014336614920021523146901224313514767404959711349426022348040602020986521881762007784900045787358238397991367936118379129917904940787843489528470705703119863740278250435915555524396604226823131090652756896649122368496571221153613532827647986377071171636841884576561500627647220021936624924476691240891917350679962995449227156520920577055004051487165659029051600105884935796161271165835019785774591890540353541305826872582471340197394592973851538704494611772316856787039000754773729627557087016927007863537951689207956142689802163567609685159639010600176332740706930010975485400178837957502988676706644566986467521532137447244723456298394955361304400958686021991564737432455503968320461262640799885260692221292573912728700189552726587439918702621202522036534457284563316700923814422771843596613253595389792434548866034896462725528404688241448858276288121543096236585513633996745965998597225157332315938533004767357815886590570048072474234867081987318830749481991264061044141600628549482789024693927798778994935784445724007496119780204814546048468985742762689613493640883451398813101902981083686857408056314822021927370559085846106203160382683175216472217229395498633227472045797710647779231928494345713428999263829877068998391096524119050057387346969355587221096568827814557804260563944147715514320266601733049738784618176448814677137470103321047501513926089182908117266720922468741816053806936624731707338458886923546919269351710616305175404265092272764571497040237414888401457466918623485913602888212324707855663433016340497064354450816611161625295402194533566436947096073402539273844508551743935486268304325687145829502421142114827085007171106410651642748412423061606818234098724303660561400406169472524294823037822006335498334183254271447335292097053628535355371418597879771537027833360725414951927563332438425529555363052172585833972364905951473891531955525756977994525825848800570528460641999494029422650729045275202951106911491828980272863098621427632330229169442927423495278406614020835193386353296958606503441767586178700001222353793298496577213833047454108660360800883052045425137479606277506365145299526201083288911323811681535616504149928652955932571779672556156507768685758751530329648532079041981506796114371433706110277805370707417230599243924123566175672254344121889388165966722519653683751234674731222432208358979176877882288365760276055797966110129896247006655455270150024105771295716153213773258832779302488429412292978912579865336760487949930341480272909463581393916217634098522310407813600783023602228721968634391250926461341834830652293040389106554515486686948816356935733023211191062802738547569423686429040162605768129157920973361884215764317843999581131055908428024906398239459151789795680238768209783928817121152879054715530954777551581285614463460034529110130344075170611604437937934215709575798537199885219312428127876909344765804056895112359781563623291850327146062842129242108058155698163278488514754103683076511053793379664028286934611683757529003427024014462539201625304576852307419847812505926852693294724000524300046788446326892604642736317331931438010873244116377683210320730614266083414845644656435286540776144958591483803855521395333723047073098161572104016305067028266770228692624958669336014641412450717820635785512224162906634525618121333527449953636282645907094432179030243230229774539371483088936133030367356218782271258516298562430370369905155160484279056129928509967263544582868793978995300404934204170209041315862512532881561065674421632125379991305594880413015493371876049704335937203020440182180153840799948647151800004519145713830300644261608672673547293719626649460910304981376968386511266030261492046751574946107609688290003060662982118994314497977508320182973367346639538684468805217872744763636561610210591387029021251603059041765129575311898030278829083405175442294357569753823979069873955570457016397907093550717876848818893073140156214827790964032337880802077828928967135840412399214961137698578686488736690793438747576719845686862505986680745625742476424210884022660414643183476546191187208908108244385666277075100475434486630317764343342917234772605646828377576677123202253048526381477733299371062200790563237449508005206033400250848736351609544765968862966690769275585665227373090635067122109844507793850885665095308417190489503864636463150986599037719093923939319019135389580886781660446718070789750168305538369627833622909036550324855154531252327880230617106221218179689553981106314865585451039652834129375674491417149672193316142957140457411031567888484960244785778119625787331706499682505564594411628205351901027085969612675035459142876039656361398642572116696593588037690565984772966368231880591391116799482063402060849128264549959235576046260719981847577620869325405085418503331473899441337013158594395793522965426163379166486175264446778479602742591054866981634840470429732144836518638180716000653369464856466928027202741379865100702514577364212603980125837118212899089558857223970078819639029403799739511996190892578702218122340192348463937436468822746364831717988629054470950718527281261914473268158171099936140042566492855641009670719795763331047225867213351625373443478757271571496400639357993910049981771488687215554422145544545295836777829024351250933063951376956259059745622522202540496463420026362228267472508452404478077222972906821074575898116789044509581442532173637730333226194304996508235336910620066804877852929583663302761467141635375130540378250601035340861310991554060133524471480003119168332481414437343092831211109075356617020800832203465323681015438763671054889587599012908902144593982945580355454403437324754348128907227666739967481321503174405056570601228359939571987800706754881232469203321074523165637377836623208893290860984861385084671791564842651304708955262127261403281148137735709419054977299174640144599168009419144310492792695147349294716297359482297996525288573569105142995941296960557498959565492590377288368273419759390681393273595255177093468469486060391559497765762707764072995834762138297507553738510716592990171105711413823723789256660087660291768284394616567095829189391891650490585700817257795472153732176418784446237277765025286880192005608335435522862903258921517739817397046227539049702546529273001470995984972326156919550470705246148173473457951530501662609361193150003584666033714957972461976223116920734160931756603294927822233898414954772139260526324843369224497280123997270353438903826672577026293212934925799273945169885587314699685679678935872272902315867621174536735316910126384045006323168272599621172522503793286892323370739681910007815206941764067010625986121686193794379037954522725556778150028442306468521465937037740034639273549462787501089169326548226014400050538033929220645659900733818664117690349505238314226775256867519260242753408676787683700932531898338330035474434639113488890434888763981253808052781361093148103515223751304671123071151505102506930927757719047254926483338350294888092301182395437789744095464375136231508084852478748668894401501125168222723609696498041715466425780833050817489560065861239082070129678415738677788483598967444832926625564341670908286374729016482486701437576010888699506298150412411422562723032645922113433428732425142626996334131363397428798778437185148491243674310067406894717230040576133962752049705430465118908173995332998347653611305892588616583082002502208129905311505427552368406205190365468364433957598928423762149028561402010092208407021570010879409219784016462894017403053357415428946785913795585263287835310783392583005639267462517926279502032187990285493538034327216227750285058043373275193179569471896449036788559767658911050813195075106362863169751003491007351529872534580294718874290092955248226849401569403292926159904797916152431263418030895782186499611236093821843157534682205881730871558848671387060125825379937145331430999266949517639973725476063542889656053566361328978633034233234773216351178759302647411536034118465413935240032731653462702468174797868635853439516651220415962796080373678599591528343953281704151936938531021652502569921876220139711026896304538586643944435415439839715821726118114497608951718077193251690928833723050895239919501687817598165874578320629311049415099995545707726642252170016231300321652353524943053753226771085341383683338874795419871865725249719490043301770885089567506764689990043115415051142436887262025553893913227704803231213390967794256560831399586832006546242405808400880865395767198712803012315423633866204593033909989346544250469522097222915376809405121998641726636873819920170443982192368606024961891909642230882485995337816465163324800359594299783233119021375913610811204136210118681130959119935055743169333011379308552896915135814618850720840138295557847622219394212168592266501956056909458002180389469368555146422293961132474163197790669521598389255877656861236753435322080324794310361220724386391304299282721117300401878732798858240404825664298479724416760438559531769451237065277258338925241785597931764125923108060848703857792864291005109855803386491469360077571180434378585510487590178113715092219306278641060187785320599351734614381001480950863138659244826599495920840873719734361526292119914902465372331757292436331563664432374696947535591709521244960554618084500569146527806047428888185276522643190782396391482308055974110256325748083348234066411544052548513837545469237463147151069101904687304086840138934067706438361067837402796561283556206905248852794357870151466520875898867049811009211906321402299040260222045740263967746259793798348801988466617147552524083880548709743051093823380848002530194506996778927690902834458548950750491044585916181625247392777399110919205270271947505163118854944849916696239723925830804178862333926309629584549058731474518146560651619637088789583734724140931196582264044105837637341689792220423328577140285682873459839801459361814243569353561065607185918438937076895619780966739725523916908603053749577326243103834876385177331223631904145403520555613407433081287952571275078150320077117524703326574794237932437724536475846781625132412957185325076437511395559338779138892209056229218955536764302319555991366901108750101223864802987694677540108825503137577825153561825236019211820072131882918124195748087415465106555021597479877130958561161469562292907744316421604736124876343638792390172567950333758775871249627820301263774255671815502130556544278134450434607598435116223614955408259416925102399154734909836664296593433190993975751503944468341196417664891691659177813579576554630237669556913849020388894083718377992541658892091884692468995852576456717409837313286651302134045707004941175010890509548719310898666958177201040479268045234605606261379307190027810882823642672364699739640100215543208415384218530746227207905793768324822530327915338403009730322266413207071037160683912615616451574939557950669604416544304527059817477108879462909965631539771608608606899187467618200757203901944883767002520451953825101280614691589951897773483071737654856416759286704732343781713752076574940266215485333001082780740183850869104975132000221525852786180344593922767822734461547228242297174043788862983264529274631863805461179743604605771588375684298334343266907764475608095509693120472362811240308963209387091975549121754441119433560462552486450213918323276607845291661832280646536333755081840151727082508109164576775091582871979856112487699705945465765257110756754771764109099873647575670948161865936853507456394055687835757764232389397864457265436968369176259656210226920201075024080094573583816868841047220097739543941925446302095692436831176121591426135387420602683871490533130779142307945901956749988525483720821020171708923189851127061995009456659417257153457179373122574249973843532844414408607203313327927815591009353630547375684249025175627419450992349045851645423045322903509919695600008671771560469247937223467466174750868706754253028141690888209798489716703190818097555069881452606540838333195418212505006013859171467841881165175462828985525834644465516490862394942640683766716864316435885971855609450164999351484895461951909345616899897542869378649054037180041447112354596669234803410201526916383607780079977385347535424421969134522663591167680103882054258330879481953111498024339671585238441318924887150832588845884536428539966312391864312478936488993525377203236398056779128799719967820141898141863979146713439577623690249127938555802823644293146754562978699207794394662236114945201001252626034376232572828099051931034399561504826055191970081503782375697414865069965091915306838490274790361628168531921928272742094885793633613266603322836359744063935568661030876831900279219612266592473784913841517479417605609396462578061071205796180910729147620755954843025574575040497506538383622939509059084810404667058357846113740063022145657396129444682317730267987430429086354398457276413426445463201880878911077391203315158294075584420826852697188360107495717028601099010884558041112634059947850914387472602705786589351060370744906134809716380936980426809542894832425979851307720124470184753879476635108382607298115517755066620054967342967901387554805328654461300930512222729941342145736661243277882899378954325485109958618346379997085182663539471760752136758066216451421386856353520424140323759773315188038332380307506944667174460602554694547262692062913004712045436304010805850738676660748844200214209480777618821006199712013663423608016937135723749787639545602971645403445174201563342045102715735848682568317777893050911390631513008916670086859928841331527478496814327869006183180833635960378172597359000720076404462368172109915655656770310837587860291168535802231169717298808634165470933647337526880742389061150559806948926340660041810650402688791714819427390166104203370556902864295720844491801468568195776703304297702395982354944357509697247408549731571960918902871337921885332463802118257790509438202904547565241168157293904592866767748919404112293638717812939760228079541771089747879554191393819678623356554672026761415659690044041880183248939051741513019451065846514656285444695805743710511834647844949376958251144764579026742984813605999623375876774112204417311480796699229883188974789631482725228399902410180892229769034186476728177304022153952934444097278255777730663135597726034024273616583444116313778479094318684805817365874231624049289904886002110730009460105201690547559070737271320790303111770558467232842242989520130326727463034236164533949872180427153376328242362109134393055793558927915178181437422486599292114497436961920306986996664450478580272527442942652080644243917738458585608774510633305912661507143482465767888770151237740274846940343293565926442138199736067802374604565033604425693891994258639547017435416499630691939522338616197033483356129758419662584273679521625294077321894679468393412882624177187349349538957906670329873296970000077946698685436110456307093390124327782029420702044170179397841036695805579332950749701282223257506210723019284006190345749855179355692513028102430577652100526620491462124180156570719465094298174350900669149977203982966861929657071670091696039413453717372773293960743961489671944350054294498104765427993598097625681422947802486527567333536740969888376684615753079375675717109759086198467140739592950441703118449327529800170123278885859114190227525979001708590303375074746245545988571773870973512101361297680442635674813948871467272018641620416660123297064932409679581882932841923279964112640830826077327369613884612961396527098061622793599429805242842074100042517738384290527673060883652677843079609534951243682497062428781211898714448819294484018504160260509849178324253630013559385433954764730933780699733066950460749205590391272178507495420166325988151812467860980018134744422525513622612054896286862036227930713042518666149414100442677509699082848605505095163196329218676924391310154510441329952194006618252123307533629659988523383963829793235442754726829268616524252207918743717698368226871239472889221448312320320620212605121761285543168499812238015171899093831800875800841668155791608045534994301718443083552496007298451407725240523762246372579945847098518356511567437993163389564569480122687376889454148431222830529440613918812847907816453811519880447359598542845357257638982175044474191036677219919496449193560131562005600746659186890104978230503392365991870426253225523892532320761158441840614938825956222023420783358948593981531327197086721618825647801140097752774847805028783271166595011569047683557768874384071606966913029408703782182133784347583718824994495066085133164379780564196156529552822301930966876790659932192820519686872501985115487840946921882283190087467795927716740157644452015146536047367533850345279679300551552459095163875089449990241249804817005506086207742882616658517400454293171216528146630189629340368419261910288079993339150213710541154375271481752100651788273631649395107088490190275347838162838469071887581756377495052270558724641009767534136351157199779449247645703717628758868395109180848448157527243364276782256091088974049419316061372132037089685545949980440418284116534167572350740741674811485294389497041826869402926510281494009020546128360520555016218735451150515521291214356299321680736082925877743388315217248891648010313689524276519463274058321277480447912412884740516713017445540131978150789519725703882778031438162485177987482148052066589620404262349898155081176199670210508932997978839775336080687979940620041156658812571648507635579833802525925955750007607679481904591713211103312143505530199027584546349498368241261120075516686757634482832117311458356364659507838319911138640584296714092150132973490016965817671203347642644067899840835334689792765326975795812628478316770285638187864201482647618986486214100575293380009438951233340883865022115990301849090731742256523858654287755874387267657279681552495158450289893849997824521459191637164923183748234327248373760486194020431299579700647040781784592584922988800019934141527010630910690863309477013186105110261198920108145766365315502724903999670093970780426867457670971563668682052493058877856430738699695471070333186407513678211628047877852416620327329584768228510090966484129919842457468383208678166017180202207989438310489625926244364930549214482847103820288219919873153358523752070112535372272881792312620517729331470530866203104017360383579650092136546963199213195016694949473124266745972588066304675374729520341952245894979558854183257331842575762719480786380967485609951536044804340750191845285241758189717403646756962920818073452951503939844904058841189182738866703372687509551333795894609109679541841986428770302310671425368478686960219049429267252398029615291853057433761291279568099935922837692159478531884906146293243413608298175144373682906243705032621555199222245647901994062670578903998696296163835853887712576860876658984263520764276355056923333331493743447665959462245606588846655883044666609664288299498359266565756264605698500244061675328209385382630977624202976184823121244711857183224585487410932332159380408757182614540204995703608140700929643444083253819284200229010436711473459186168678525251706038745152597126006559572590958198892758635806870811002436474890160833167644101923104603532033201941903528096888398923909665620885122190342612880789575723595511701762685243047278201404285198664835141101606144585243742062470666651153023550058979800044443198037638457460550745542264496155156715478314920210828452862165932118734854555527022685306115600218325012912374689652018001231764191775644859793463254264184751638640580137489337836533196148100150924732774697192715360663844020069628416110278775346061782750009698163648295960923915854060066361257994508617798953759288921407714749348555877500372450976396565336895462654141784963687597836206024786380343921896823926841312298191692780158823259932272705752687600756134814878286093856776928776584618630448444390850467024078866176462137148279215504878346397468040994328366793372114067936714213905563182915136732836897498010069640663584565516465321997933933995023581443955316643485547432539405199646109595159145805756598266080324352903319044458652177067114209396601730590062652239363766456514588147982317040971136596344573296932880286535782706447331295528717579765678262319002344577939924632529207471661300790571621153710462065933907844702693045062777293975150919860708474765909715906971397978939105677127402192370279350770162027274386968090658473653415127871456336665277706454038374689491373724470493783115013813306232483581787905760644770416946103484062264936987615675632050121929478708588540017925348686266932602004745426598870885312977205059731000414933771210341277600074930497961045235712005328658413265575376634834932466478412402856949078954978934115696937203138727490379642527185860551806099938575843558080480269257385782192716402332454538634262099620381715407744984911911212681900653671149697015279554173525573998496728848692424867796770642796358115153164132798658313578143881289929871627245009750803629112160446105797507521332894217258401879015260792583379024866215221997922152312044149149941219431020652647834506313539354577503963788215422405299370216257363628842735098430974667657334008833418728764707295881920211556226218673988569493976542836144910029544103807484323118990416844064468003132102595029294249333508871098758333127652551357618382948487142484439751908189174458565160351477737301686219544162126305924199065459102362564461041180203779590396689425275633942014233064807607095014286563934899071636961438027553871047272544162816034104368697385388852709676780136237869418512846127254529727506014704498028428697128797995033922780012966915478124879131482180952279292147930009907423494190300486291707391213934223800207050638487152805657684127589362037330083329077708123886630247620811957133246540629416805981278597535912719292026849926966314144742720790571077592376094916232341057679822080976573932858581983973710908785454385683900848003134990412998481082269679452809445779859231350880592882921120674189821142604189649616874238019170654477520179008328174969659892080106544173268740091333097208005806298576822753388661410300717922814647571831834908122662871722793644189851872880493484152518696082055804663901535557237183223889772723148092415515150993416335323170806902129408364466697563096720279677918941380378636865150581364475612687192382984346705993290606265843688239796285902532632635751774690349944643720251675580174368597678494450547769952424502999114837894366599515512508260458792686569043319617732836234410674125119287582693342940571058297048956220352247791739426726269069669805153673405046608819008993719245575926547484083601897937743978328230061297056996888916887328572039332641949667105993641181103515949038160167089590642427441640596756409780367880086091460771209738861257312784379542007336158192432143218842132080435476400363943386794911141261470172056644625310958076849023912917570459755358541895774532597689918958983407108013031692900403024737164804125624504774909578972509016219963521259239472948840345743726652836923329680779997622788086690798208097660389774643754569322754505502244072663437031662605317869159318244116743434412271890028358120485046244409852768456398518427824134917502876488710682604971503959447197154666100221437604999975506119803684518574819118012556436087355385304088036926627155468270771395940683582461032633426817553551015167144125107951288464775299966792712076013090641239604331990463516176745594422873750172079241192827259563333700441892731565248346211374213588723694894272322060346973488148803896407064201381337797741026862603680042994772931444912450614547265666243520970429854821403778344912470905332374539092676873017290558907813903973994123565487725264230610877648674599052629595654988937355166440786341813820319927436074970764617828163027508335248665948067276632521637393294416420816539841980423807208763776387153556839534384112150098564658374655984288504752938742419464913107705773728892260883504406713937170765772384257322751928513081276708689022272817913044100646985621301727285125268125866825833976910621435087054228856550252422546678616171643505046348882468329560242144081054662330254119763798971248810443806212214466891208617285223125383113551044426215621919856424937462235778600681798339054322298716478530512037099435466626353957423600569836057445276366010821273299959974277369567941585706490198660414361885939949135329446257248049838738984931596363039355805698316435010111682257384355893765131917925070678055851580205581888450985260860441390846384331772369501770300611131273359536498815126790849817448193005023104496897168068980174556670095103540361309970873084159271479963523387557174386496296528062085113097381647814393546377792448182850802413038722443538087994856336965516322850920085527587011566839127596380907502212925437194637462424952791368442814488839774666484374975158123356223918199356697897209239618211918296120894715453978404980196745289184299481408445920976473527526511948715577173759828739594779236908660911756163272139954114677563376912321885790599353690448734529255162533683128954193020798291736198287473656847793986353653672638700022505738566159707173868198118212646171214063035469279612921907653541318461270256593798514635606821252274940161899830835511643257019709541013155154061918778074031343495102233799116361592901311133987690208294303600692900178905421597225270383452914012607544622015195301052975845680028229153803896574067916814060611139178445123105633212480114635713340521089811464959993854033554782609800578899438710259157334766910803884581204366792586678644377135974644987508703451783658443776597435745774501795442806667017777424042802282047053965572539104286681073965581940028404982071472822458437644228514224902559459468545451347834488913586839800863352084426614992152380085008086308873211815395539994096100344449962816062649271126543625830607326188071364281148511211243718507267750160147734441075697692210551537661777411739255647657899889512373164988638584515757486266648985328294419164691813179902195485312050109601308944259302694574640394244257427652059291426029558582281594878141262526566657211210650809025147775173842251244529321616145390137442388399368816811869525030789570777342240257935617050349682694048395407036620343502587550722741048048628850009576342716576087354474994843157056989338222473841048341539472685391270617817933091703480979606226614122980068334271669995940566999326647085741107197110593845366163468376461091017877463457722142879819440301699559037454520302068397790571560021513139220394029342394942922694369815837261563758827388854295016220852395513906701046047681082231913626644190817985869029644989406438063691282919868226584125263729109673137982176315216475272609015366872683179529778915466203971387148222138488278617735861210100406457198509166305806343899366285204998123733736012301143054087903070618289303098236450162367641580696778802316335740802628318966503904775079252894580357535117820757463801412827076335269703968578578273218376897138573415799452610576650391736650765725418384566313064075812497908596323517572293231079133903609332096996350819844188625659264814794575610953687574771032714737903949540793169410172029430000557583912351382398367420020849236373000440691759975869870836429486960540816906234366703298323410512623561591137885612469965392758325882046636816009266546116020587497574697074250984493629612007770105050458746699462113340552931261026695201646856148733529616898213605259807833871533827040423636127112968314866195735026106827357819980717754176270539461754187122526379184407360788848958736562775600588830366047034198084996247005305697242621642686839967430051201009409361276821297155932517922612607906026049221297062361906674465172439744702308073769496712644167567886897053209388032521451916561737771596889521842016240943398541148013276232043822897782725953401783397067893912962315627063286029741295660297150376910988220460141996205211404135377406647637141528662281641601294231135242882377433724883191564602544492189548662267799653136471655209791527524063218869502063864506127824382550517003456798082213929020531187802993104364355293486208206395180538680307285121668263914069479693474992243071894994438757903645089023361163644617151832808521464323171428407859290627257134826422503289994320581180098615284904516271840464195517341739718692058334745521103946977601064304255467365287320532141866274706660377666925362796295199222682403999543044662585071536768674078108051499057744629486973271792236317247306785793216296264825139308501827630612840346867060821372749915141874308929196212575883351509760628748572133860626178302512877166385842977311840790526491570669182948503837323167029165400757037409639864083925121643376192611853589283140902125154797751286288675196343387657957088275938917284205083513200255736545073370669982858186923328872494056872745245171519593065868612712371133184608113630892622165958255598935268638661758324325933225336534874190458181417544453011109252920538548066770372998218757275377094279796157933585646624850307088075070022692283075946269074286016344600728645917505436582614384986262900520135872158375395569022522916192352089268888230988217154469465115598517914318557417294975876561019424876297654701859664899769681111164092348187415484696334306553113029667762983948382811114229563267292002260576361096923293225230524454917357642184910460454160193423568903395040826185790769517263936314685722199342302463175776916116302613968319035267912049391046970783017832524084781014077859672914327247161186265031372403101015285991216550322681681399460370693799273238232608744309231191676383011207387379475918058160781145154165805124724970755266860405487146149541179919637140979971436645460894339552198350237277139356060275639177162852025677344594154290077181996436381213751028999596511036610335574394832059994222757277979187420611094549042812360388309541666658441565358769639100437929446512706660643178276835342559518037775884683109107461461890240640094730945952823208930664677089172465806848375323552233317913073772163055265444635791807465991287185807897355397574527940776056506526622308827036724810525708475535885747519620894315007477036516631867820233445330875275898980992251626575901483019010650140135736332029744040984896638058267171316077446401452460212047223335129223801544125946816845385801989453609223478326422272293004872450390856863381431721578309780251129256634773033616892150787304721069290745580393877096929626159621877456056881878118422374904731967052606130423187409125636292298525331190547749504165267387954044111710540455239938657446313766523938268906773906355750410483761577417020963266387204782804222655595355417500061363823386703143486929928432750898068730312781755643295201722679744610623385375331754692140848214779797370981636221092292559225190930101955910093687060961847042901067227221503593504551972539286999470551939780236648319312930886508878239445425005144819659267504888481979947954016139553589225964515828328348407445820435330946580755471654994123033045777026650266952629545255783574165564925153670398075783587154944300449784433836966649502788551874605848158279575952252051882660687487221879831515064995295561261031049017392688411983997163179816593212752302268141468083124973303709973057496424888001951627226128846215761718502564765187516032459921982386596330909552035694159427088883569657957316427426619293168748717046260061258664653233568486759106958965305102249812851613393455756170425269359744534049911331877752224189560130756423728035801814326529450941064435145253799888740533634767279009424777765882386508987207038978224738470122976540831071161034513487447821062820914692099658046062699060579401414155992179771448178025001968858226751599012798764056448811319372908733526742250549977502678969063163174407764949615578913812502818244930592866017758624568488396923546911796262289046404719680845720033863916648001289012006324016041917818533171360283940731630586866094675230250691917594510634117552959223501670870391060475516144412016987888468369730311329474466839573772145344489731322366246347545560413178147834462326386911377450318983310494842701603046832934365517945635542403383955414694555896667848768580870387695316244402024873255906779637404209409709883909582409691185114327600902835918664744341125845090253156568190124524316515275808523716057833520842196123495027763346983463050213906016081692978268662576160845484362498766727113834383065050859317233697806760832346818016258874782597854717948315965647994782732507444421479331036363940204125579791043087797395542334509849789693937878089864241639505428282292873429757394427832558178268298781827727203802915262623781106672284793728403024035815241308988787451123454954626320830360742574405230175199476806165618805187234804470056639365595448874478507318367947274656237317913514703969367245887886421680408096363929377432147619690207652623846572243162095597046602268726981517306608870554826385523445912213358408489199570032983971904665473331397212439363322509322320200585945663847458101868115563175229848513874883911336103911833625313837392487612714200754240862054049619797409868501145588002559309659315153728545995943342127334612226340182377359138693728111480531177549800137700369421037595936012262745488894133399386701295906023771471569427886610497068388613476472065448667623942078133874167337644990527425370529805145303216860214575502776343456293312468532683023309195309532877039720835087772174030389039970285991574210871439146861380394159173882843368545135073021299963889527896116393865430705472214050084045383047617631603888311258294404060047356702249258927479533789237691291405468757981618714781844757647246281949530002518409522258919237607187775400908616109598235342468408750328193896487705957063835581343681221414247201019899644004195683505820602185616359454569434709120151628099978743656991721334620483213717815232500209420357553894384584194993418498716666905469161933081962784787542785209806964420923423345162150552410978358338322700557306615282421432590956003739762742728532793277047832994609226105229009076897227189654107792275125575772345822640830660635277604324762948568646818635582789405127708040871262084111345192093485623881722988942909908809781331573342847012133367407481298194125176378542694940537411851024661248670179112221688872915470406543680353583536331216203471414023204544943973033587777672561246332829024175460761853171595959592996704988055489089742342268603511687959693843720395324354815861846489830311017587429930528160660138975041201629892890174470353977515418482514256856503393078148918798701493091650515675041658924315817605839219876468003162063346974158738379704701852709130839941978233348676272196741512509383773863951918128031037022752111801050058270265239805628880125362222020040498120121571884900177907602575444419175938730255658169677129701098309220716518887176236577106284263194503271237223938129685305247618452037606949132488735773005707003807092392249558674148925969906195193239309135935908151740798428560143351776530124395045660903324746888513339314266327862319648569828095471414325817545289428870667858864790830740898452076815928249219773757375676131745939908546118568581184925386296246275291563432586620267160185614700920239977120850438669213851042141830517725726848652809249893984261366046080327119950229975204529086863196449291830213193197445328799592159140943886040380296478877456680287922342302262932908887234126129278030471974220059840416172896803326618937286301661236281994608285407330439402126304492391784786727899971683529455782952917966780060325551723556040180117397534816173396753959579987708881716095990224612909446269334148054846280086020127229318622580370554475172576697703040376272499977804263165556510216959699850780601346059075166436127859801034336059393659319450333031259284533565850816860784286735939184155936730030000113032911621574027813731759049761226325934606880081701681982828107366040724438423064073258400114585832088465136117029497896488537271668172774390151039647735139904953526500815100551755496065544669030620969377725776682478028049629112141601541887648514693225823401977607894757796226281093736306287332318281856237097235665930928443360735508550866836042698768729325567621857697865424649425739811218192696465946151453458169570352854888175944175702544268130727058810895142605093126893277798269019320040167329456201219459236170573208074394423536504172835966380625024376027801059112122167268405090942154777141620650218086728657885317211906485270225226298157522580016222939051007252824662035015658690283782346947145207957257656810563235548547356614928774546708004550375808972953404175135843978716727019177770726385568875558907696693487883317447936739436715306549064763177681590276263647777261396102686697276690499720412969247314544583108482808226725731917693170901721688875593810297176857797271240574546605985198192664802346598916859956515040980687524327929971944670298522888739624720051568441978693741013089695881359579377986016555215794838840812393272063231458965395114464179773670684382832549278079418185566014214222129592277511034399517844813836595588818916689393255030247441246191233376700915133765834330718771284990387723866413036378169096687221107277139103708279099700736329984752552226684853793676366196386044228335162158780989679814819346028219957623778534191116805218092290394472267601820268384837978449798280957134279469128742043133734012751841613526519452855746645538698231143831476706068921629274439937235835859341802228543413171149219340994965344922033640714580856931720298166810396374386955426366854672700185875646067382250246472530511365979974290127728389963244845006202810823577737931594576351618498918923401387753321688405736133453520347186919443252262004544817812760200129072555259368319761690288998133867540065651508830524271284922165244338340405761141988892707970367565933657594516506178639193584517012280726492724483519003026204673188582836069833670840712419783117323340066672403319923253928940044712436954078585409300812256589907328094746605507200655229538434080226149044390908529346959892377591413878062120225129130243216011958973679368119366502379897933514015367575271191922851123146003748534797054521068546349365425509842337094837972376085769758039630869398810472054699548784783578915307352342633337350215405993346854109133716507470108475195325835791198487692553155681138269848620459782117211752375331432900375534641570422333773559279870951828078770584428814710218866008319945864540676967227754672674317708004110779900758782756008584753003949164226172095132396595788715733839327870411988652139824959272108263742548081830881092472764692774079290241211590369173266216701222928250894848479540803339187700805280751547481204780468985921869381918900667306014370659551890440935622776403390151342076711515032073567929186423443403914506452013082674266409690600916542116907675956668179565612832430224661367008990126069526985608489601639259680110561978657213328486633610416682337791982446558862903936335822066198505159441306644861817650008514584209346906109980214089034339498837769465490758159105044510191057023903422556507212242686061353173943883444994632634175274327473053773132445467530170104261244632055413254891546449535339628571933258733370934901857219915976834978908630873697924332949849060198133106078246812571323490972912193706711359431171061033829968122163188944809479737119277267978471457857770178947182463952971307477745534297286317128269235505114863106204848818011470147135052525430665183697601756008760421813705066867081608699388958053108518675715377173453360809494077884384735551020115934351813751769659484983965489719987696909010142266094989287426245404742456239399389665102236120049542594183307428893730635290101777947766148444942105424057262752972156825245244990929958535200340434332030121654251366600211804216333991690150646221849178541094347097410712175021651104327523624868977915612732350349926523660781904700457938893075548718743793531257801924575726937231789391905788276982151617580718820877264857363420979219397614597118248419005883962769404549406299906836295002235276254907673606461082303410761133834716902358271076463548422522746677268246562826725087002634955465563020086841511329329781992779759017021039118361338448603667046478083138148249528112368561426096253579101617356153541598239921001629592178583647360802764299291269988910060924590527116478047760444567560074138770696421315954335287005597511696478547282676740035395789099615207786449039655234476275467855490237124335602119393593692190876684801059051189294672978161108320453467763751648266681475798021642830563947259948927278639308605593884912360355697868747632262975052245885763289020835250047871844969263403096406413438783941153291431786650920690522808579753868224802124691064567922590724076019446505192774139344161860294798438374175353302066033107935576600688378985760503801406835138521265726491946073031156373882438475837166190369011868387621494130765234534827669089051425613025891034547906956874281930538000062824374412601497478290294103022668529831416493328527090678345342246654760926885963141738243300715365162523145013359719350374259250073080944788175712579173028087605473689261047123640742917688735315127844648960705979252106530909993127529722156169362378891649882772811989137666024196802950111407439470322998440229898747052031624176363110306607983778222659190130796944248599852204939552026922349851559923729800057971022670202006163426101195206122846481765544828797526456904687774942866581395633681824332731268125277794076215947893512497893722165765503550577457017193057128266334461541504290339768085980231611165234488421607544462283110467333619055717202751470450137852703938207934795969072555118719652797573741308377790968393636200051317152516891414707437500334702023460599937451408403720578001227349241882814985450055758389207283606334414046855686595290341746379117644979497389510465585468232170177875889105671483469408544413307380143394420839122902230376061248409862651205155029373794271492203016415168215674947971921155695797225880640509895595566596452735657991746430184579180397538898817346384561543140627137746647362566533924824826719314493281075523273258530784804194420371243238382355340671068958304547914305632283415807786825741059269059892630233708905469573644263224117331240867462010494373159067692289739083519257224664095331969432211219680039172856695764650670325408816004990108393852629660391237940925688569226125531577766617036802173097583218773304727091918598978758082171144542419467031712111235796305034139325643507102240803501439142288773264557671992184277787943228893951340960530294054312016465011487662953154315808828096212959776105351405800504073992294225998143626345291277751924234576437418232915544345645141428935236785528472613404979622798392823454555819607372424676910244307755903128061556888746125077326661699731433111546158908330088946166759083521221510809512033568415522456928402241978876207964500057869062168505864396425671651843678082169693964918291709951773183058131662356768035872953658060058636669123101886709911019149350368768515452083147026684202142923727273775237768151283572075740717473662199576399841708675890970899025934430138978607618575963743700194971157611889830697499170741443927877489591466394540772152597008569317949242932063539877211881769095151130832084892426668831986777994539001375360681946970722809768113434161871479278691672281885839117146762641151750966659937151885917199034866812939868374251608500026338539271415951992396864910338481828933284531744198002568390187560711949670966326562012721281098662985770021481120317659624400896177127118920363169504185881388095389201971635220679421412508568844639904809246468800692956740652198089209093901298700823614653672045371799437352670567220034374819166522879892687168915959956045439500483360767710319083283781636290954063465728613432425132402081374389908517839754938812362577793044143173238802532390950108279386357897010098411862852245517900102724366437091023467807837516178622577180214153511516127224640248982626100661020242095568151934029481417163135350294201891869215969175838600091904205641607055688971993619251770151736253434877129702434519945450427185018299680589153584456216553067159282974415172302816071220427663449923000205957799070716248635668010323740971155553075060513610688315792508197157959860294252840197611156912501952428936569291670293728259329384948379266113535702879554829546486725842011033554252148121548301171027252459289605868972343637362959105480117559447538937259869694565799007664574636312322389616400979008747959102817518762357379986265038551948132056282247943205931608741344568678120350177208211980110449144457880539741672252272824543794116885891403672273911791530440826574593677122845135350854090393723162930512148184549305544061992034147604854671496340457934868874555917890521369244971619872285804581308352990706541803508707139262510378887277807079970463864818253113607449883583790627454546666918192373654812364835262574473853758568166215313973955682197963912806762026823021356564861675156744670464100019257923889364245151407887697293014068070614495017386649803867806802514098055008613619524333174439460991682997000407063029429124635956650358083729574597623440225138632081172684145940082140362270169743532897757102588253049132260152545610386000537386887375460468164955001641001733474236108713032692480028785442138103699999231036110220332371222792061406526795184436320610716916956193876756380180898534208465289143457042026483057994916573283719721486327410760950925339756944245857304695821119646647864954681948523458303317710503732048495611531377118927266258398396536454350094180147520592554189882527983148582757921493081638267643745095542531584053537478656358006056831741574818723830958504849312515144623943530125935612195771987528327728614209877096022256425478376611712896198498866465508846195431830700616335769138352074990278557749493097352187925803503334707926618208506095956610517193057577947120759575658449553515637933891059092944347234039902575776177465200951959132198540599449676966802624353686992946546703966682598787190437424388640801318679280573275169202615734165364865003817030452830401439179445147482493341070981583506226463879545659103175831805377545726483433493635748032767307786760664605113812385679018988355422103762965051720627095541798175545407544684841546953896124824968266624193735400183181924580918408620220918801541672647512440226845235337007198927568920264148717379419597252368924582915117146259884799915653342843247846167204320783877181545618786647554667339184631712831922677950764415676668800424888993478418028373580146160747000225805994322514361458717526632804245482141310283996182496232343066773394071740607347814154026302963317316664093252417357351298184375470680334369507628981697790795664845452098683647247321474683035469888718238142792211554980005955278214864941913795588602534317537049178412763046904608083222784376506448595702344457046569337605774185944034652047792436785503993912343502603143277577021215563475609364055979706790635038309546930841289283114778116304006628081380277749147081042447675040075961863871926244294992138074452388439004163293515218118915249460836279549160141884734046357684143527418045855391555290236106670150309487741021107726279072850424494362817376814813920784310705551064499330628530329732368142491223841670707239843877777194532216579733809629135649255166227296976648695290193710539713131286852855417105966672894948471429640368636916508903458258155405115984499847309063196691259113195757878664949810577423701469958832080366510802884670759172328289247900968838166081614388140499876010756882993859278550901822576553815702663018367717278077589667199215474490226074045465783734425002940832815927814369617984200768266803401669461634844220818605181289691010138423461343060484148342629569448723708961740363169207877563585840180306032596039864950950231943068371237656136756897453516611283421458091054739392566183631864611280746167003342417756306289478985216831678087859217431526973878243324608913634152571187170821210839687011752472935313525302724368979256593313329709419217524298358224049434884936031557743823700240135168578796811085029156115489193485931956955008753435010445335633748943834022584841000816007329847280199723658783768897274515600780310638645950381184717048405549853321366893094070238253058799860275775863148894216722489006190884197652308878006046457857764144162529758865566434057095597922429069594234432466327227142485484963804030031250229526426333425779718247809330442721194500383632754892091196288175865673478253143805479064836844571527842728327856917047798129918400267807181978854789820549768741849318513529631532659427023193621434688247334200178710868533792234714574309517092467244272917475776941515547666069810738703595785330749359770356146132480647324265097240836362780093420774690985468731868853230198231989057823490962290186338775246638838613825966452802263528880175240020187212683280151988603908324488199088671725210110432882291961361077580772390216529566586462215420796283402123157368598181378862132908064497259770363752785526170308965920914405192824464059776825017407155512874936682197942187666240120032457528584182773341422817423132851518845615628294389463821153451235318293418378113726956794951387271952433458666073835022334989392146351547782132395092069996054799782167832929365629060596744800196653383173968433894716778874925831093726840489750487080358478276046760988120778015811421080090889641424007946447759936960941506067681954318953672874939422624943669783831188895825743901568254798670160694879788697909281253787170427111791778850409014074469618819139075095611065222654198970768029474477584864704290352976523795032158915346968481236124261235579304858615060558662368505202976990050454896018916790447517457748705866773011414674847827973500814995275103791133958542377409479861580143974364057578467626413691910471147683309002175392767413720972301117838830047231013236388151416832721126983411304615891514172152500974270749954364625632930265724543117192710187976574433051061161753421453639730710766851589829946159454255378719875572172780195414380398308025729078503794393489225186001680131752843144509969194090106231742943521008548771354491797890406162538354598636573974595896063507587586677096191203328913688252473478705399475668781271311481662287660948876748142115264085805753032272821818960163906994342319480726272544126403387870365057224526615287787729177331242530144873064045858938894372425857001819712646496395227179036795178415220831310084241348461174245870554452721077266374113177709188990415187468804301254570100785155283093500442349528363727572971868074854800938162858906479102554302571339956481909504584589333691335811639654459338863507182598865046812475168000684890639255831491450057932014587153408340936449913345529084638998512170541209618021573591795434959910352009818982180457913781536590662983317183946551344866506273402389305303335182524982936918423944557644192053093574874399829386494508761495250296739419952929268326017450741394432812118657932596289289300411590992364504353248825462503624246789622567685085190503608546591714105769200410567536836570893320904486242459072612571619667675323405747755139986806027622237146855866699024445475835011213018185249298458659838800434352888986880115520781545310193579466656037158306617125296189741947139376086370818071319243354027874867068729149297591927997078106886506959064566255762346671146174853671370084514212725138829725201074836653535698616320368750072640751051992573105616370644221404064557604611409529381269922336254096793274647824362855110413824483885929860297199901211649339976355915882233463355280106280401800989810437049630542806548176251308727674294692230191756904508049560676661522949722365415873182496880858822601746788894388712348091192249962501126354460053372262071018806157272151279730245698447913923643319175330930000813063602946959887308489585101133988238161885303276340648920233643114723786660460499433647573122015686067300797377572352622313437070068036814940993989839895076182700418972050883152685890882230452906372217569106429104923872420318474559723532442033923864434255407964304910097325953286339722845846737898705735349901591186361209510561564159600466080912197893393956523405922906387262535633059584734581173615182701135931367033694040314776860286320552605637882154958352822402425122337916063810368992762566782634023562437549409692427123007333543825582501518637695745288546919192963685512808516453094752093422723791116787202604440080519229940207139325747193587021674077277939007281562452974240595101493029544805259445265843446313414633230969504069838508140939988927366703509443892252685716303212364534454670787425886439544007961126557750815035247637546368020847995819490537551915475741161299432725876351994548104225997166610994057604574671501265637922177937990422900471544325982095141593231452296764571645340521431136109219071335630601832921840331143189796485919650474940856252335838512993548125874191987932709554540977854131096036262535286889389274551878779531585050531285820207221820266297443749056795644918570131789132280306582637664519252862635555106165083113974471708033024989008632941931072659565572353605852202318391085504355028070679848173799483316545160430470302884916002742656776605995554808246926499751914150457668064493289544382428592059921206761331419223533733803886741568282113988620813357882364110807891003600853719329738963244086765336648140348658838014801954913858968089985143282487589814606107415540630051163051436450657297615833257537887077198186351913070284308215724774559106441968079396644875563571811596498109251904152625279899244557960054480288382341811114897750663964482378572605733376634558564968113498715102776228879968108753462948965169939647385033010742199477683516614956049936139060474275671707248932649593990249489792386800327658274356675174520581985440406168024540853750410748061244336812304435280331672569910950573456936050065968436272790842949774918832037867489859228286105944235755150647620801811331940456617081543586731235838121303674763761435507968978989938558441352209544371409116445473370191569513790185126544932569624350288862745964078622453572657033799568665007415056111765264279486004879879586257221099856903860365476284633179813987802068766058059960538208731247790051299698327310752514530464249269315934380657887230445015099980982568852068054039496768136512317241463779927959053184220445402169374794657229318063394577168950300086428362925931336653439668006664382162196829094685017772882598938625618110441759527565369785642063255919546083993418956280135472397596182903025986035305341287992988242162513927667112330169433724745512643309460178101696616569170077455832690148360376163969651701641659658504774997380334093407448165556218458706680984835781057617403532747524847205303443031225835356251028533566681993068571145434946658282532304800021724983385667173784211514681892839653968587192725007062552409983531498352492324482017902243996153705446502052781537623956270139582465100471846993224166956983041530741895029352726762562171062346183656949374481544112787560451307219984116772650358226515255149528212570737227951911093916967750647318855794927547790689439599755319691990622042944155042413921372609073316997885545561379111252345924456562146449998011334239493513245491271014031319016438245453965964500591005779488451166991020003956223906854197401243956019204505318624979567168750605235316859827088444702919678118532378178217768946967717884380149525754438737955064119490448431914241575395916206547482685794161351988511588470797955361570505759847668918557623768460775060146322068158417092921240375312441398485026993799668071892553690032317189340461346023203155779512280508716543334266694076533343772815213131909021414983125318157430257470101672950117266590618414221741271959539371457926890190742840281806534697379126996380446458795341005641023947695044902395081515444522408745082711940043294740833189096394555422575311365741194067888720877934990798225353517739131038445565209892744147645880332250158441929842679625770338735026180221139473982617783262915245093405236593061096416049886328279306304378796689379013986997130120791471067174419888591537302456387386596765009818742458043253797210224442657904034094854498473646485331073940897439258497392576585188445234247690132702612667879328461412480685117745551247457545038333674514809921606428972970281617489989284311379135969964256211663450367533330078833255439851678297711809539564287567124582675318339897223562528957146585479557298703112138059493133359059110321494544481239801069663906755865738813978539455414669687782025202265201411939666112576860813456894626215354016146261037691950781214157331482590563793984408163907238536138405591984766762370790522180241546477806289820377351205205780177556949301221467783994755892285537671216998088140050900877847763564781716552465488560242340463045836819101066422828756050012044066456485573635629751942486400005621844202127465116599694440947126472850997913455009949911100918045040694944438017747258430658580988520019752667638744982674144521366998419830352655137027224993197500679958041468785297736175713124731316539129250257331548597221788305868883599781062164844020652626628315981997578275011481469145684828610635586570522860008974417781469366820449985167306458783628908051466994588126854972112713283665408657185325019529850872400331524859184726458619081073783452906299625014255628418259672018666942389560450974491506644057864395351308785046044445238834386246552117468670598858362280068806465216202210168957082066012329573602746124745335914269229386250912500972512294037356144849151711188702140035795906017998714608046847784427276967430150632540682034398515864462315791178217622907560105676424323289060878886052862106331742275002850787674007205599802289583995327484898294185594284000941753913919486679254598207448395126861714665238558549607564677182598715282465421093501339306464184358014580088096866462023594454955181357787387729535010428833482445787740292111537472859176986203569482171071857451532640713044131004418699840147268671884759136895175753548105032866533181781751661562912680855935983235889053544662757325661424694880624569443386943489949296544376149784716197460122462483931226706131671812436834744172862538256622608699099100266894704905863727917175533400071042918861084743412391223635160981813041690786487513759586389757673533704517430259377781858169157811318987538880044449687567419093069825613176655368322171310642257512404293966743289584949777213079832981632031164072294249619698841416495261681735206260121906456664612307259237761207827129367786623160290886453857380404776555660948953334204536074862823923781267659070808227786690444330439196109842833255640598093199413984795052179746544184168481865864556238477857856457891724455993534997946609028966117819880226956715023033539824725722663598839581198907180201182900694422650653524043311528192608925994661011588653861730287194113911063700011945683040573242498412626088508234565946640533711163958091169680610018228742850083580932240003122714870069596923855952357116646927448411640223502793259260903814009645736735559541639715720618516532165890456830177158917722917227165654093627138248237528515748727600183865498571162585915134850087611158235063504932530076299931100299767563898888486718699595252975828259984211684311536998488079196344645455752930951848677119857217230078437195381906480287970182897966000538629368365821052054350291766499123287693456022974253613231545557434548166162382568920619565341098292381614131409205116540631308678495257918344415119218507025337413049454006870267310036631398796974678086813997097585601110988597647263705261247776923229609652432305412153082545031353850392803443514631092590787208477162022236325956498953815577443592272712524864107486336400513733408259837666189178855036660262148301089567209036246926125893615625856126803086067567828937620482746231317745304489969176061506606776083240894280069165533961936163786362341894720765520200615330213347738701139687113596344658822818417529185951821007608219218102513839882715631768490916711039245928950458980824418390166591890247723548490109708250554584744636479315343171304851491625296962906331635529141375557979844388114072646268156948550192718421347906125789390366743107043402732058265818916531049360513069660215607628436243333745976332787578992154870525036674040655702178813487736773697911945866403888128460651687188570054731742464774703203097426194646188409947750429629624014488281958421553585441294332950067584735246244339761747096489081391535353867744407410837965761693639682395143137399326955350249381674607438707264871820769597568088572690448906182532220553081248921335194346926719573159574181741862838999231593131174170783620767230027180458699548305006269889514911591511330852986856314357551792379718828441748617583828273271351385055732256202821519198182202638995571209252978020545443200832891772978738971795146426765783971262494801445580162845683540455950897404551813512275113897466261081459480006811286778197251361149442259113340353193123895746738420589275189058726086857104553935357610807356396149539821609660508419254008833843966555706268281025017972364049022828963118539213078053901871469474812269749675225412516413150235997746605177441508596061846673828823275035636781966661467799321208806475514959780958766886880830701300544582083356120724720784920472803492752800301983403968140223486412926434334489158800898941220598377559186710060122770369702934097801875483176283952056226545971044960078570319997556698251334506773438660290688799867681400660109488664771768410088076493663548143108939268798779425210883005034391501015626465929603507111688923553975110342173126663883488477619533590714413909309359718507367909699435376337811090055384204852420447360653437346378282657181449080451215303148712801178683389071371963624398711259486021278865085245514650373726076234842401843718247605444108070525936862355512259580000576703481172024001070700854070130101383585508150233133739723365944905515881961721945655425557499411315777804106165198400466601290645195651650278372237422024264364830328815408576196151697623222187623192283577456999973632223791854490130444517252599592517562635656035937263327925909546444064276421897576035711533418833356649354625375133270959212094654382853773988940144808165790969808875690210505096079960581977668478528726592998526492687439294482446695041278502357491063252288323899440405360322429819781173004566598030214830432246256400525599076159865781167134088359414701533598535541796797508332477498812338398019113766712301685723755434828213250813000393995144236358067013554003012997559557892088033160852090359464068697811164035164720818032506019288488362218058403698381640863939956882236198709596033875064343148063288108456305316064101212709614277478985409270958926331866126749828899334471945280702749364048520314272626336305111938891158410954641245772370644786277304614980686031232463897487467967918923137003872149825672940032383646969321713218349916276257164169787753775419758795605718903397543663632686537445813336241918655418349621342096710428945351107624777012157650277829060899001982195028583799747752783382474264943820964056650343376374470011332156949601579022421044503656939100292195314281812241920466177039445389555896512137022081927950701238891600264755223878414501066534168401113680161776434527338173985677290440495822502892684278837194555712290391923294772744485900082937700203300005087398511306203386026923941845279492405081752301372781856268388145890523047965714281898852987542972622082251518107074892551171354635880765567922667827614564491989870376614369588654385976508277202076250039499487524049744665239244749802766792413251495496293812382943548236092283821393707605618236611191442207036189911696014416062584715919887636917833860325845917914841544928806785031112749638606145864133516940466074531428515239191121351554929700275799028976372511717318335757657284256455501224262428189591892008697001156773839026941209791525386966607189583015665561323209378002086534380339848355100575959695595332865478847434080452920169263432211568723966055826121990961854248046928159843265968691486796620905265574752805234908196364548625490044182359079791722738822210677160170667125408365459133982423463667569143514561375131869056390887537614124878135597486400655266068470030685821499556193763668393743497658830121310892580315142062156010523224018186150366972664553084707581371614040910451696185657860183000547551196346480031020842396992272219926935074411294027587686844844306951927062297823608863675069333212199647397962361557716657268626952024329163380831729921640112673038132589413503906584607781506448746508224537264085152234250509127222260322316931835879948330333182361889387248358951266997594240313777615568622733478255317789996858151912992024701822921459404006171070607301237763324350006659037356910350900321637921539654676700019560851271000155680733924231050015321391304840763509269840272019462025362281337183249359909367832585526666072541557462714568964657800192305962375473283286887759804998132938383148532367198475563160932524310964015838865382190806337495630775415697422418328556309455061683783608969581005083285629272166348857889905586070118144642291868171667226609779643219900174988260562537679417517488107939758700482618503508141806487078526608701561269132333751055162888693813024896721933074205170377516619457673696641773488343593835252885602772452092411916740026673226725697595051736024335674366641745741182024704186452511435816353206655538722753840375387077964491964645904419990703998392323049471758152502461900603170037953889011217216389060346812597284339364125394206011566336163563221683448311732632462219874306465143361397474631889170052350372570405396978468365133440721072866588290899097769123582580903928024092667159296306274710501893618397402496456397857392126657020748938759744218939389623333312423975872069767801465837941896807349924324737930224615522798130647199430216174910808118549363583459343964314557935910581792405266330083407536742554299817786231877551760330963725838530338586797543685197844438353461920510212339655668862613683447442786381680280968638715995622848798784821445551671121772423336277931716199806019001122579254351436317224750060811442047183023914549569402662261012565538865835579883335367389888943156495966429909971317402475858163427761894432401814173477454416581725603642119861189346309723669167017347088785761492033618054589601891329623851303312421979123676772581893690687492871792895263938102125379802547592705785731680102800456286888957201174153338999451053309232478823313186788137038257629477992276005138910312275820181565492252553458522010398308325360855382355737230826281511253620965293125107949009324837711696672368601268509992431538497517734350644467575707773534820215036357224708093204452482948744769574330658502033590720275630566811950168474874161284049778368273959020700837706181559330052051804591537379604919410209704219917694660975657882492751551160825332678717043102646987465325022065800269057824932336820835941348161116464332380522120476357453945371304571889174432870153750635310850620059910722422605419127668258813794241963662016464405357655184543672212611617255870488585013118861634568126037300904205997937705516723064509648607530727987758608354549306636898030436043153513274261975792667977484733040223524089278305508778797450525823622379488924646966988338642324974238065124256188569011440775309749857857635675913362846959401574057202087084957527739546276397104413110091269426070421142578617595958292514618767975490805311941136380949783500647275527125658205961648408004279638085986394393052115619818391046001377962229207069607406146619266500508333094141365693052126309779070255401966738198236006497917235307827628802056602379772387402364372152542651377300315589991293231493214479454910277067945694414418976286032960637900365088515069775201704468849641790993533361126274929822994745067234216175419641744117329477048698844549583903381164509992662657378990461254868755117526120751947692744622269821207584913885520247208635128247592686165790618846727735644810312858379602694580940255069383312088738766662313185669198112306449387814503194717735115601872755885249761320053317684215608546812172050935367345650668043112366909758372943113171056872448667324578354613950979162028961023491301051407983737532082788344037886665112168271585264476673646096513992470733793442515191057426874898130107937170380671441492667457087726749234139343037796275873202171382924883423071235088415434702371985277991733977730596526674117725968103601848106385535612409781139029243856311415811071640251570144132800263084304277007574907571836236534160579227750679736050156163017568386642957770805234031152950518505998813884551422675996181036762255688257120493233188167587625513908231899769474211030142937669500497206925245111905822673887601012252539800466184831682269259426265399474990356215406909564325422136462907281499846672741288147939034338581191433583821937236795951359174915797896685615074481476341081651298688095432108668473107483895628099175536699709762838493299283449125759721282679329546735289325725161620567393296096818623069530884257714968595276710486888404849452370190371812730839241222172466681321385325940862317785097670004476711029545337385139271729806332146675736847017933876555657477735749498102385572861303631151957045179605335002513322736666291800806587466292417305580851900773114423504599609019318097196065377990123219889925342598211644253006538765117505430798510903191648661769435146643232580858537120471189510730947858190149751147381206381421337641181971711093002388500218766904401143586739468813294437610550245045951856045367795585536654390078925945742854745674795958018668574672444931404984423833670010112177137903161632237912853410411646396267342222892218637401649904506826927826278211101011111366456843921401877645313695376661344219300513636375638701466805020090177171466532899534300918942589567590488852423600203141707036662071502272712916330918361989188210098896368410482581228151388791006922599623872618478949510523284070180391512797877828481235143987248667812500422807764866001511466778770664828661914585932688169453682576826078931074007167164501764280087801444941494953300095684211947234591198127035590776807924633302791405223240392563629109197149840014688992085999639759985984591160923261613406437917906745615826910794136600572413806630825068877734481143539443307759234867535154845869847945509907830696010125920734187922412329166013135739012092098424084152336729274522488721078160728887314802625763304838778583500754732158346178550516141709583752479316362034303196364592219643685691940147969202488890291916250591058356366634174425652532137366665746203243858014730313026652694236602764506949784544467242776707552798496504971370136806648815107056676661248621437907475313704015846332690750583739728224520259627307930383459309349063989932274820033689261248687097981122449810277737390513330045939305633262158134986078993215656552993207411501610877824328399832370559546245492673141348814206121815556741413682716968777978871746037358800912433413869391941368357617350419631415632752640211346460005293847741993992430277793627586876978085671292821297646705814333493293056907186222150845652070139745189485359005539046032271472965364943594752975135537255641390338716539515226389361428458832353841276880912767407124862781198014998097725562102760679241393578455419032239749611062450627304964500739157685372983473211143422235034220339248543769724998176241516504511208618101289908500695967403936545203629278293515866685887984337654521421816591331393618105284639810473681655071130500218035212642095619331025962773537897664218671071186503465246578093975707732709640991391879419933614509959826586860202328762455845323407470392163016959479347242607664053189135946482539544181135509545620101375222641845719378115700934821613927831887352572832041389244852756402478474770501274243354403686764454345325111793958020905700456970866488530766085104566093712551696306199265434053133168978171532554223375484231878346271602557181948819627557251193747920339703177881087795388377146487113866865961238047204361151167916053530641871696206091126668708895858046202800265580676081719471315900119550950492754532340367360509892198963891425015049649967371061266292199050920986316342117095108513353782693893018327501568563973142494031425184360936727370700007355583001803491606770019370646733896067636290334492387131995424698550789523733730477589612082034044730532671473272735229243073235470928203617884301380708323040331497214905491428355054323543411749477312833564510965606912544718213051625356457171874562022554234248365760693259495330056931232102015549380978675795053082674951016670213959807755803518682420025832284465906870808885194117963540009761570215143118065060322060796096834419763192906619850440957128002926699312979110555655783059210627056768043407632212768490535552064286112987417957764928106229962748185131773675021336418869876803671776622159746941626034833152325627001423363214298737135633176243412790064508485186989595822888940498067503358408296245468743277174468673083654489961831573047291370519497029384973665963948525141081293553564667093153989397334058977225530134997324245942703266803492136316815055639029988790813263187788436065404486106662641454137648738574773554821931136280295610928860677717147170620391361428570505722512118011476010513582758999784762948681263108843541617565494170751501052097277511778921979428175639918090890539810834923461193902337125630520063457686914453669077419076899024003913836329953171018673285270100346625465769282078500768795105115876000101523853029077661207281236538725152588245682455427823181130739998159902254272046940812332871282987748960318544307530598209759964358368347567918101566563057074400431777070635587241817192134230011973313614260766299597087405554003511772591811269777828221458359571389131343442782522825904153221701882372483071387598551446989873487005569355491019567878634379207612761158023976670432542269782170124380641913706242796784716749328795307246955876224613018454805681208528140620833931249138598600505224216275212189120055305497779108097090459492339736926408810691999765794577253459752303830152714454388922250496165489908150246659188544102941149975392250375905040136698689288759327432062049007301995103131928014481787953058717934142428200637538711192708694469273983147940402283284474651476822399089198002806010300914633292468764896962904673602548928562305077223815222438991136999660699641410327456439157014096444641158545642886398669079730986853589252117326539653939525045615764505668780362092161032253670763257826640005116600098470422738924660861131136821250937950257254570228882289301115406032913623460580045330471731894059235439519540019964415830856444176798904733045525552305423837360273155591048415023998040744734001438902851558090787650833446871381057957570953263612476581905818063328625035050300910450043620976494958578478574766730943264017071742346575401424790953404675500290920455104232732505546660705104459872914868209730859558535380238438271936013747824087412591405098201189140409641727630786654028705486101222240110621648918271073640484165575230907915182878779860736203571217899252513280255445675976079974550559428711343054228569664894984936993273610699089974162872510974800148148269991260298136578489274843744560103640054819775281814074201345746482510037249399323479269385884586606547004574789910161963876832487680102778742581073702779844704552981101341995589775936739731073309613218500635725698352938141445678950313526794434832117815178843538002463700880020435446519759307653046026277019341121980341309756808858839251320500114913136032703231334887940898425864395242420486829151723693998466439430350040829942977054356710775501827716777121903105419490167948377462369162463643959399507855287950072614912952810904931249872471569207462464940963156304161665335885117583178666139623579473475026413783895333521724291475425461363848327227308613749445938913167484916181278436047760799612244138450467967030800823205453358479455935400984960499524552583321196874389721028696302325562526538735296332670309815190482657156075800822291386569409804189895926842665828776806652063456468883578112567119656381107820943089991973991301209478396172787401431288872931678045200680801395051098240959224967798933982381145949719454299878771005196707049153934154985631371491429941753703249054074710884017312423432463702026690483891146111251345934172354494699675871631753728306285625409730438758949037421320053981502466383616635903166534646414356177513920030944403139444288705173982129015702944705426226226057039491914197546566308524014626994761875187329734700504987379903969580968478606255892995372756145636656940718140176648698631367434112851170390920466525795118476940397723006586952003575715804751134772514005693611226582958726034374011351078828317407324132626541151887041061919467726852465589556597456332737617524178812044138914948815127486019933924827062626475472977437098350119522965526968977113646989537354461728884343376671505840974733299753317391379876451004599249748890227059602801298135225288838346076717271596469437671261011792142970051213016026464324956399528016238801483033784858214020508262672215048739118031365332682880744210468548469413162843196679582342866111465797919065447024640734515934774182638777916619404748374038722772328314844181217291262484902380006239344170094158666492754708515289251681767356354630860924859029132757419184680003888980517178859679545178336575883862025950398898665638774387098849859272567710568507027610559227039558426150605460536543591317920941608478940091789320798833292875968325488269724120833762564173569776591942148266792688429817927165261062896860115015684777360519204285598082622783293770323054591366073702238006983006527958415020878488842067199579708640554358553524651011749941294232729322641203890434531499339172949493297035931660140723629385117890528265374530523646059363454653168904038292481840082975023929976985106126329319030987601050311866552544692549798149203440044756889819734320665664308918550848219469159077256360511202966825706912110884141956747971629348196542474777210130538966985904263118869552309789489920648213292898995466277720263170018961634896145680808348587074659395303737938894169285390163388063539045269548283220859924630753506257042666731068738828545125633173328795724969231065621467515505341080040526692438054195252919118336731660388710014779594324549086205388134294395504069637722546815519911889038407671997151902626258893724599235544246337606142968246660227635423902890927687768916190082324880582361104473433463700535594995256128439723186055950732883204424356823510089847493234154526541650824617793460194281948398860275596510213796358238525809035128355772914050625454447533372660654610707326011831766080019625480667920422295225252031828091583921049867627381759098168221721532009719670975605698304254239403402855563776721489834574506124902864845368728533029691783380026581314369370419507387963152284299187222804086162891349214976411343593112901551197933764866399495167959324997079680106656025707211615227554015548302826402253334196632187242147346342746511035499649360995589214207572621809045332529164990390728262650405357306782411000034584518272913083602002727133210804907836719363197323223239932136726300119359110222879879086200844563681557754652503848731737450865386839616165576394692381703079508814324076935921576013522263274248887804024695177451254960161339715255976427485046106464405529605379706501455415070577646077309442314191483436833513700261511163578543967641215036880921967449368635110929630259325859164970783541934932450015973361486069921289888459085585728302550491534194732286381472334875566323115043839439184138107943006762547272262673592625115148060439964792859591429346806843259940179752298004065750923107044566412893940142267109609202444317122729668781218093387111458309652626023843555506481628573506256573534311410652635450254553485462719370157277502071197456891980988458955566480251771532161651106870435449999934010581058876556142301200759921984972977734291785884805524259686764288204129867846213222127301865197653658316878893968504560414092239500177702027943829519480003303024916192603442815529136102193183296291229820859253668985646499245768692856835633355304407173201349024583963443735041925648118513929680677212391728466105697061346240291536210379709992567307287074393767007899787261901671608661978293142383363488477600283528571735468236568141846640989624522349750928173384492319387842823107907728464687066083564015325536159867166563875436359965650666474418867847251900040189206811262989555497161177038249261723162906236744383646265986790242932643254075715351943295681479186301252661165427787069223438313670930928816332290572202184028052130042301531606366049821317627541089133813576341547072636749295923445988004172458490599611202057297575950950244800969663287950996931501708526128542987029934844763064287114049280201840510101184587093680897336510003647860546457018968927867828599159630826209710262179505857875829465369966980774493921021874562057290096476410223766529183817128304836452053176253347257883237965679429468145475983473087810799493018461268005168731964783905494933610079776929944184998818088823652705224021161055972500644232432877025884915230742825083271213900213870608920257388384748542994640915382846771384995126486322283764582382997561048580292851555819222627118216358685047543399899970239154532222835993151750404873025559687012752029472741172329385712353792398629879505582284862008432722590263798362187393608619306989145926147714076138157760006238062072223600927429340934446368985734126642399931447822285326676072542269713065728240774953589564739371756387214656087142136738454814500231490143976566291195874312725064754884984477312447385172063150216184561873847552353979529198834877092471082507638575390517102700838083807968747322807423058290152426221521237085845303694977026196701637680205972283174250715254857262584193797794160694432643923581625423409428234321841801365241693834358304579033540300999089698558647752642967236373722011969762069563415649701090592029770356794317374443268250243622868247738219952152299139117516014445178838476599757115842713096363516984722177953650331785097412590836227674418976735966964011968424166322571939529946426243736771692646029291069534983895725812626504218497627543612403971639576244189884754500814239976433799975560791357398345405930725524338921228444441586152321912420350689273020110034933775166454676451591928495860777496142119494548371479829616008103669509978772780666318796352564923230161522734454682672674248570235924621928491808678459941235915376623614339668152908576268373833336701661377232746681895919801731457009227970706099406937106997161260707572893801778656495741810313410000060734861734899335595892793946328408670689294269083753699980067171895181676186097853648710222745542026781076461125266706140666261894412391993005941286596540382280715170963599822707655075437870845382704031760765026604729866960848647950281339753489647644242396217344620321283290689979729955712285587596530648011434250354680857713266355749371547207957180532047497567146156114594222970781988598144833554259791649168484919244313990390583366277439179458220918228689790371186425717052073162123716490989156204642956866935057573473759213769743668189111491142911987237207975611304618849815123533021759805720613980021617820153723193213973351042053964283536626112250987295355857923269353620278588996383783268483243504101326697212740123806122152861302665869145920875231348972289579288586464900401007244029766947770803369168248024032601768934738355398912549762433762646282504344315599337031170013507427903528315155192001034831207356850704768171114447099743150630040248746865478096157473103652916820277684584011513489839219085974826572930105369533024150900370748978213644829108460793724113408405721617187571079265797888691213315613784811038357435924900604480351831848352057998493948783847729142652976184799871068364111500463659176549293447771616358398260844131017998959729127211753766621821586381187497805480195124390469910698293624368809016643117926106200782183175043411010358903264777923153103315305773767069582088212071247249020678419812904935232851997210936363257030954383220227426259812916164858994729464525451809808616207473873850361765979929792725170442066813974361955883323592161366732987381264180346891577806316848190386339938631523718220269920716384972664348089423082678989564203626281362495822104073587024405001789292488993892335179886117708032828701071059826780973880739846853915976394101902652844346352085667312564676970560633371017315719921592170067184449733006279572247528256895037513730998080843019152727875978810128776695713579409285879772806115112441256294151279031290805896763949682409530083912753495237664925941754958377485660657858406950327784346584015694643732800308013286233396174259132029059713894963707084292525191388913036179677308775762194300087759112603571370327269710478295948660893419033567815184715303888331803009387232995830059651370352376838819763753661148759928496291132319099286281969300350779597892482462752898615736452145703379351784042345443746031754350209509947441481600867954468023447824311652768664501276744833247988894985967855800438104938645943107037491122391664655214151005617003558090733876349802248593420823270535202017388578626410050128513351562197669661744251027645450526262725214535902252176209029167294277894588088549157811935735784724062219858495886017535198652919780655662911621892331578673105170265019407668794733842695494897752374194151789252856588712335372214858832408735228057309286103535262483591690507478864854618646575337398993282583458129132709169909621358922018199384419529254888280546775836231105568581110413214994266023466315011285760612562310484244803432362607736472439370069781211284147026886359096542927535868107762745818313223718791844069846634185162319985249645595832800874019444965976676236744736174212336075446004708488605450358649516451457930740767803323332870319516280323185564504062021938330550537697378007081149354501754201949284552213658547891803439700889320108117869834741066584374401231619045199041464177262907910431024620974405685190852396904886664119771800924882431221701110162850066058914561286633364362078316571524666571198840110254297461592040409677635471492114353207738196929911024340786693728408293760485699591156144265742277640374138784443236860526507989507168641660431570694709155085099864840087053573326633401800488762169341374267753326707347856978867244903101312617688927771003660843000962427648163994829750370893459175127517161814167355629054827973424550248330015780696219135872038620587898225358742560698956578602822004353570685661821451028716380069876159205223886992133937724096392810526251662761091933162566976704444435812634932030430970960503448795563914099356450453702099199934708804713540453436335485504729346492982252291369839488149133202289431213540184163688854391861493702660533627177620373752858464013963533620118617740312612367720014489422712215359817182929797557007177177296310712434522920406891581217749354079532399558720323434916545156442154035316683846019485966811799060859710826902145580378473918371849273601884770334002861002307322830578995696742869091125370847655092286824031315679301927977849588570342719380931908535774317511351277261500107493270509644256268477102630195216444371486754507496191909942635135104609254274999888973971262939502756728034666594140816270373533685855351083516073689632832362818410331906625580376367682041043068397268755086916393210223773233677136933194446744556282741588830327613628438100017244347714109181826822499486289224640524923444332375614686811049065219927038214140200682148821424542629121700992132759574726637859786975605948326642726073834771047547559831957668818220046621587961231864140351494510363068417262184597285412639773091766566810801211278805904954814936120593805278624494980448984568448779646670255577051777657649745339372420548302629849266546355594344525181268738509166220617042634535282979888073666477978536958081116116898299638700957635527421009570870990258881862686845264473596540088632821664244002305904889950606150915502838894469367975211024259141239816077150833602879737130912113275839251563841780203811935226084045980913838491068603633980749327700958616698008832153097272086610076413301814653284120929580219232008960436886077224326308326356695320027360088028638102622164012080534578820084717849054949320499583300042594286516351930406219936074390762811545221554253466972112584220041746321923955240551213425609422540517630893570018949163320915490984299707661463866648949411393064921116392016757235475841968724962335928135846326993161997899979379191118559419141762853462451792039335492247336285805417866466658265990740452808216620079892026149622917581321308399896902973851497391128765442453561920715468037874229279290407805199476615328962569241976202021678715738817808846830979976437538049829685045173137873395356271829483306033050417990867131544248632846687306456988904276837433505208496345556152176965771843968536446881623301176935400111466979258675114260408089855282393027192530224458159680743920425915227931224367141270644032812011285649901513094723390813083775425233403209362007517158622806303200520265964273494355314006594331125495612206574160759139110541800466211532324074289355165575424829166167691952173810305016470374688364672025256499709861850462137971786751163811925756133299479418986928009120386982759322703770442221734456593766116736817290260825097556302146075365827891509323610598897589605251740066137615865099337234060494417800798889716638363976659172178240068080026215627372982096517160988032478094119289723076604605882187261008119929315058802708011465183517982795206469595302468265229610428254299177831358498046456612907073682365562477116825623470115354656255152335770057769253321502466594578581012709390182021938501461096668702814899116923609910145374669792549521646351685520105371550781522660049474520318639942047867527942381338335539080591979388938101092325844593141438359333546956545739835209710322501979123592483433032130032985371724813504541310135593293959810703100938260568582846802278975811466519599401094129158671838082894933153811854229413929469709918740200793687358690926632171756677902640407248504407014287066505945849680573037066189956480883587296134845027895217345349715606225347846026668922344826278512435200401729344015100287696143986879378537056338498371087170951249135275748575314955982202416579349843161282372087016775547753494667557908701723327017863379829761791052241555188109485881886464104058916296565529312755704206359189785724503116545211585606336203856513303649907414988282172623294097370206173187934599216532421822240148985307899592637545532708428017519759480915515832674455689087412433543285913724368387295547113690817267754689467672332806460974621323887738806695754495037919090322720547635636550562014753933409569829128345978860446020165991943559096301030838731475614701966774862523376255315738110342210413645574305709651833516029873991077135037645755627044605556786113325341949742410631386179345993792452579915502827551046752551822037522967971078187418516060994011527087603787514208971350511550421433930208336730596887117908043941175710307309630914394253438998128684591081303071841508913018704313296399370327920074973089215068419938349473812369682841306219156677865069605984854352946980313475988515507902050979168992665887972849847226813394198425902320291769010951132492388907692049533072478977181499982299392104952459948392437045432455994845497634192770421861624856627391506497590078221702588125058689769111546106942900974577236306809087647046398159368939203241829259544375900937390392977961938345524949071538379022519891231623273024923474347816522640851855829691692905087898745082755902451869841765125425646583437200246056891722717504591164020792289612215332875090323080346796299751858252816069656827048844872696705511176948785217676585624347741318760788468076687900268269164425548301573502205639762546292161544297877912837447768193742690481768862572660755028001214867233328566375840586898497443510419820678674323876172491879418805813704613367353180404810056939918218892594074395252708996314679134151011520004665704011648881058363142103742084185595908325476044390283957375931618709249816654861686334903417710833985806655312875495421316401000915287485798547742013384603653998617467122331118510512667127079434444776131649095720032180479012455173353266144448238380844708548376386532691380064273184008435634042015006840136896651163613253047777849799573628866939421825957435305091269428788037185790448734139016782185944144033227209476998433354633107913529113463615009011743040870678285476919567509552751837065717154878334891439618529911988995462252161271222456642475914172379704476617719952598731482570912405575978580354986026023276672817060950572330289416429799583162218694537202930908645860973875519036072173156129118703749373573999293016425590534949629676021656137633502091556784986022656323852558484442199984412575443918355175325432051460861627652087477778195733213422723333514123677122677349083696894288899816562828048475836057156026246599016238459708371001694115595772479744409760630356253265603129660662460003687759664236692414304216991139116234708092312995228750962724183545837620877432847921646814198902500187884341858841775938459572677693337987645244231663490932309400441139690632311887436144028844817955837482251404362219841667079622646895857452427817546060945547021933536962575691441977310079005160922385565655153148244380265141609593852357960675814523590907936796985166646048004373716353976653838307659324563704467058501480836778459694631581695446844080167941123395205078931004077070981320034761369185844920429909011234439158669963965660411078217011742086015235230865920406384701747164460239710959467973125253625253932770604321385721361929161731603365486866130904681522184575298611487373238227131783705925313561758257627633110863836180252280263066347354922386152161259585200800943265346528463919073706017516890715796624152481044762004528815672450215418105566072846417432846384391661563968468771159495977842236228412342491208277446867936781463200841721057719680590520318109603521127038920378874390625538845793529601110956689000831539214801914161861427101679649454232698520884771642858168830997014140993236877110400476992942420345077046355805532049406112519965722964928856260681432560474939199655326348472622277231341402503303235075401266030304538576246543463839323992845538058325057800758292649859967957689441414878509311903000353779124858297380707291700373094870010789793343394963406620727002288874911785033349116575575371999465430286196201894861261406400660094611153810195197552901766918456280772987626178799071213277812073259197271595533027970902011615589175524091698991334591789345591720514758888575242752393157879152800550315899757640032133906698796200254384243798659775151769228057536656385207113994562628116656821194569566458592341142043224075045921760556155866644748441076349553969212228309001972062432147254750104973769402802202615539458682943680892964719405004049843205929900872660350492764519452324920552218191265422687554993344594414394341457652108547051985113040508912423713499635526329100451201642986957001873754495279004413693892212954350630716930231279182840697459671405346227779777473918037570900238942746408828376697951616711392064572979157646151221848553392790899828381190077078663461756709069742653295549869826149583393150048061902507691805345075982983860834927780010463976792440112231676991496101033376292635359768255501756800974231053420885216417379300301933536843564796163221943472640386936954808958548263140480253298415998367375937244052376085967973777219790983000416893502903599751980718594674819383010295550892039657077129967478613184294771485065781634701663103554284180964813581855362570883537751673955017712677525651052051137203839984753654497839032884709569007832430319024934204722131384818015117998298835448331158989233094379012564248335323935672284968802489347764609808341203106896477506009690838630867977055865313473708536163213503818206092164976704821672890510605787555819395456418907027623843043742974425393083850420560919969007051190273945170728555986331725963505863847771180028989002728269853905010303364153795240418920742767445531703323157258029550158934055435188342483145647191295777816827029811007030965653161041999729080185504763486073471066716075552822856577341675089811582940097068474290424200223664232849670607604357224224781045790746609690738413749227807582603183625573940651614348946192119074651291776918102802157995428701328422153740429573673883627457573707765336577936282470869670765104814414252233243820521941783263826514510531037650978066204926907488884192825658796576061985525436880715789548405816804148527112660959039965777209900712423718802513022975201755208593741265064626510570016599736457353973275053945409139569315413107295775178658944761005123119926697959568757370971567781157643562217595012085555975700212848954477903202304239133515466489641534786111036290136813745318043830709481843073958717933877628738274680364534834349213393499206664704044511246299165679038335044420022277161090497616966903695347035873253315143999062974082840905993380016363675614317576799580452222722102124785675975010481691388153863074624806638466328967252322059523627153693728540946988913736456589523462604329637087965510211036187374494574528934715469871093775884391013050072437033792475069957003821660890801359231389472795030805065888267110969541722300989542335555742618804214143276325388429123897605404155642376161867052934298719271208716951340554053217031706361080078848904682324980946633790082990099693924071092571164282997196040817120737485750570466850124996965756124842115232438956282766994126002418934322367034134293934327517035922051877319135208404810164230315307772673645141714203594941102847103507589051426697183536401541951334517703652320573799393123232615686976206777227484810900834708645677067284988742806824902336437942583326909326799475423049814502542137912050666246300868508520064374777840727534807368096053689265724108176850271670303627052186783219812403339940779129841446801095373732367810076561287344813843170367068021592394140280119327825669069269293252666119144435215358679043756027554522582181091984725717577263069156636743884859488079842751292906612472612361773873068455955544241692672598839477430758123812794717060501022164237620959560773244686373112426417716241827912507193967384968360142011317674369508159861780956344131732921376334245236392293088848884139762654486611721675506397388545396387550619873043822267290191757095949139244396415721564876359718311161264026892385000602289233138685728665473233758767910463747168089565965873122520444559096704911270895637870363182120528838892151211378990138572683952867859188113795376776138568537080599436154224823058312256476733761519357762066925796680262370260634679641354553615561990052770372270272057270864124034644036419577103358987265164860066073100327838635348502964819798914925994902871515033326232918634574307827870357301228430444134424986616782404821492698774702324056012831191682862126734474195097073040759219684975089472194791444405971194012569239225887439670361721679260072951062551097531790240846089155290854881399446906817507167602068634009656137891655328913853678765405155994952149201126606496896275783955287287208914756897775400897249602446430410458908364192424945140260062183657828908695861547936151672570190265802687778332266021659240728640670483104876020071320783712851449512389434437486544615599471189794971919120306746889390091346682393967871604002815075421639103097139542272793652836407569934205703419102420602610589118745673231235680614068158670062220685269692781549517258463982271539151467080636450949088287142912005198931986571041688691444423227270050987269714283806076216581920293037759576992825684185341702266583152330410420909613444930128756488970228015129323349618002556551965102684510713095802457987528164108005627467981834755017716558888502367664634728856162546421596760649383124840637171803141700069366667083372784213902264501425165657454576201929296050990718643791345375001259778789481652144368158626551511414035509214880613002139716907526457274422007032781888961882993365686646172332133868076704607680217536156894502623138559310218627185509150503886233074648429299043688245392716483707818188994052137004548950121679027503539205549028290083659540408315250255863833314541218980296844273781528199287840815992552123695338569667788529345943207881132007697480230710442731624022295249527672586177685627945308350290345592944650687450554650945228762432133528427862712323144051772283574209873397128400405996803535810084454971319799901564357710383415616583933047848455756221333989331433602529718275293526729513791941898182848254090729439544508473675776216009193064530716997821732511050095560388724134978908432766580326221581006913806384952298351231237098443990975513817458601657757881228462969453635472011266766490855362622352359706937468982006923450897393270952250959724309195009572279734313452546624152511552698287085618638663192720986045213362256101505837909996501257691026102460483048552501340796177069474288648157177090698042225373307508534597496562723784859558273520432520832341887487764775298152601370149910018160481227401303883574846636067215355415147081000280509049149831930478206591731886659147186170907784461682148886705507147369759274059287002083439494903894657388818553110577186098833780131723315372202023074360121573593121940218459408217699765861082330883366431326881137108661584469595700971619578053628668862923813999454855610791235850212362833809886792796761664471785094185904086972646598447731889829196584969822498598053502453911405813450458787112701551252805118875420728367990974550799495530081894010301124505222620534644481441126867866963944367363916625310589655741209785975279765574298858627705095179602381977660809843848143313466890048508243080447783987367419306789283273524311990544657212577140523849104673229674797845171783439610523270782518668821245784744342483160921668970821380346048144219814230241176650276936479470556335735827845355506349023167172548558880045727350848981521028529444125598860650704212880847317388374118298839205244881618594468710807513778058718484556482729913095703914025796478312400036411677189011586908717356165999435025868323356278754101801980679623723190841340562660491785919543529535426709002811790574257854619802760055041289765662590198953229330712634623768000800549563608422917405942800639896812492384842273976909812793782383050767584288549735733334472325893860679856883120309315283924481450332545607645841334840853456457364837798598250183581248864036405872349761037863993277274545164597713467997778508588289454038465930573294756897084206023194364148322260801557013946356852445799989504099626312045686586117887078177832495845133501031133682856151012472902626382557259450596590419796222778000345986401659058439483492482050200114065920894330717997873093797631777921691583283285640390578126270799232006633823360772089220706268389830638093848676613632940989918617921990723132217548431735839850778496430354110473421946893789981021924274879764393258418076065828310196405344035766229390913961302250155002958717355805605521816660419312138387832533164340275243239882635616061526035471402635054393907024325247517042392169458835209428569874905210936460262247055440961079167356801225242718195603767404680477002544658919960556501739544162157062811032540604248084219287161135850161193604236962687894238513217990604646502007587335974495256124019943450115330755948044374449326854595190343517406734416571416022247488248118140854563833617603438932658135853300965643413253859900734360571987399526541936894311953210711628237774806291847743866551832975185612054367898918331460079956903953101467693588519782694129885321877223896789678141851674622388317202380388050226171293857320815361211273952205004649936771771383420903785493785115551129671040667422541459214031855523765238040031348744988916753851039630737531576844401365319091163236991412392849169271231261863015694701973615064486264808943591058528190208720242203762302611686590951488533726126322694272164446932464002328124789981909454113612620816982060621812771098865893561792092681509900881517337856965075542272004685722074737570410007196672029842013208206995051543031777448212967611263920254466038665298331200076778051335877035284825441976445481515090430221461566905683823682069871695823232174041168484361193688473405476700553873610939417936179479952520206912501979026670507624722036653156273062968448173969126860866531900206525909948362534438083860821999821661697378024481848934729818846436519283428345924088927756597954350319975863896186929283197344512521977944957958961001654067037598226810383919614679552852570903369885579005375281239613954505096477269164956407863213425836124241050185995434688854697841980594108203021003570369681592016434506867062905372671486723806347381998397106290160157254063439203009915479204657338727409348919184001879789005391358520368873928265771777244724301491055653328103650094893124020047997418737646778989643647016807599732846335755145841852605826083001681430325889446171590229381334706617080190725858697965933667757237333351113258982696488087875336844082454338779026380282227496363985021422982769152354974823829444353324387125194562407872614598565281541697655425937731983051106059502722528065361841384509508718961059704602817422705156953110964481073476129578958187188785794048157605356878253556713267054548818327756146075033355760875797174694484449539150657693257729048246883357322191772039773392899750013745937989517231497927781572247326500148524312625359284473843764295142138187033593281142661762354172169107942861245342567692142620309262112249897986158050952720794611734010068617550938965742305048353991837552625946990236451555575662677248802805715900353659562059534981237261245950630872917776559231383213507792581177237746578601124427290397456503538788653506195089252228448917756801428834195382557218017679740617941091261518114782612880124930842058698198454251621388813379751605419977497753431630982526575870303714514105866834263467352442270979604915452818869387732271546174689873198552401069538969699887958771673061169095555046222149188507690451163561106990637164889844678846462219696213419421922686004015004109375238467808298798670932429178252991577804944733723991498975261071093018670065461748071931009652477009389587089765633000700373856287574179882594625142552215412851180624629470119894098363470035935888071571465742517418835942313489863596295920943896295116733036856579724219980271249349745897375854925566834812069580449623443362079411789270290612549270726061488483436559706905188380631650455412794504496431777173020210038108838821758373347659986419077304824350979678733508716971626307645505527084913302957952530811060555214692733400185500600231680805657160538562822620709761421764298436344499228642123329400671134277761868311655010003674685936924450887324899377134389251874168346072263912084269816177278615717121417379773714997861638076827613510895919514465936077915575381491413649456108711064564743215623101261131048900258190255645438887068808815752195901781476871566455850252533125816570193989870935819883672622649829951860341255906930633198666423988761192204340875579694769817938179822288595835549321577349317005181953390868812786219112785967523579726682627370108903387951755501925454746119231294402349311833258992620545352353246507351301596597412204537677276889048609625758287395123053857468998309817152513656115801862518368796806372326384828949484775654463338934204503995026645578252734946055443366679901746134445189224926509709841862553519290061300370373916583090995639381195572889446160031338360538080806398225384698884351199684886285850157590384599825442461685418269079467275773833535738276596160579607293928954853110137641148045432219884024970962614449930610427708942851279300351258853069928662496003407542634942702797479295902554607770808073303764627212618512201994507795807642411361023213958180040517137576492098247345059925986269111143980462973022644662638554072551746134701610705815071472523224157190083700700992786897637941516610652234428560279493663900297502795252645116400541550289212135620925563142263827952261899018158389217516200857375307003381090708382812801372756084617764967895733810885751495363333091910295626069327648735673575664724547210446788584966877436146277637427360865683173836839717895295029711083557984798029226124467952718291703777509729833298169295422278551472558064796494442911186137968712620634014589186895269584444112849797553149618015679869974703048719426050420593545469738978661695630220989736604556922148782629600095646841944374191932892617163968179283883687079277082117385765225759638943797367072842601348493160112255879617072619046979443728492706920902262506077799533302085499550323207384620539333000208774401689026712375270645216396867386192208233732626053571029897606444661978886058678597535433536263188599419793145865221830158871637957270047417267488799455962264750803798779162927683405542747477624385410395735256162437508252531311919095279397324391643491172944269002376556985189630219655602577110839438430018039580528690555325650642000557078875697043434753915530981881380473608904264288914318378168207350863099781628395724682673149771220450177069670215242593999436641473621755920449358410927446737792437034521192450798609642623909419269671358290546778559549916023189962045025437797861608429678952233208089958841642526694480528366658402242235639398965612178457852249654588978200372747657317249509060095329725877871932536042656695784561674852320160946993236456109193165612472331339203807814598795396840802365221660799899275232825077866192955142801264578856683061914805019339649643116079095043026710355059356259459080922912118032703232173606826125080000728700778304636272568891294233814151563114488792163429390895145939831824508291925915753998398291305522932635746879998067359145278857691482587011279623445893528771859045350178135477661579631022667930070182827852550388326377740848911789085768443238505360724887830726285799250621038880158420821407709204014808130833951556308730780570573745071251906357028835689498231767023088931918436976461659277854608094352113163674180677288582011362018732505339785392769204763397353966953221197193650297833131907541330991098384113150914636293571916021506654319021812700636612258794134991341324747735989258140339621725609993478726503978308376052163827741924303906241282497273580299390564452665637005711662768272006195020648593654215457494248686576249353196069869361724514700813924787080699654974689583504633912003736816391553849650544526010789122161184070616335267174436527866696722343232393602949539915567490578547553652981856143899705978323583010614032582007985109976300438596467090738433738673974512712635206756503415319183109321233983081931277775828427800496170286321388822858793652015184760662082748441960381549918955779662207940779705055754358198274765952076310190957601096036468640593464247835790470107011687122518672992765842420228823772398853509176188998048149426229216077686195458678413854555315005101016372186148258007988604515038028631771417745483581634087278346869745676567900684850053610852692849171480653736611478152046186010396137780512873854922959415710797059742369190630513487667800394306414762748043783299626318408377338515060079384077591490836226155950482177949268262191267916206517593559782623775046003666074581420046358958928290992634733959505071818132298099517104365248297455651137728453656010343345819313446188780892198475731183947416244176506768285803049467664124521797773179255467386392038325766136183296389141673658216097397511603704171109191724197778217238910860877119623236091679823156797890997262835667112165182560048538560274861175149234017257180494197713454360879185013803788964678702100563459147192015276408361848507248867343527816044701915628124092118213848775297542600209705901705194094374828026136835919772271488194850781644892416910744321012237684508646343957217058701848261940765085419190588906366503878052029965445865064221302561886498897917104147892835290989393222466192394953245688065566049730465940872601273936498002762201821589103044902907353950079954135514380965287295403317110165340425260137086530772629062468369034811399331051385411096381986612101705548127978493381465542301370756737874797036295420035072080738784574098640777620923110584574303150237441620986039988040573303273774355494159624417195618095955310016011015599321799138389322273478393848558067531168511025942698377291235153383203927885645453824220812218382453205871850560958414477675518788349461981189408116614624047386104813639129977001370607582133568049420506336072011507865528196752833953698581999942197930291776363840879383558084587142709258678578045039632789932341379918753320049947548867121009930025086298788304869205833579483853668516495065848349488598133679324617270260684700292406367790253352471712985531036845337184322826105199223886241660986264449888923040259463587033327288757876850240327745876589577190219895435253917238750462987068554857955300560180637176945612300963462250620078847746720515342499153238803566738640354709577440767675944834221148385929990492356797355875796592935954238642024452310292822081882318814801342686174279023989055817330882989157853734467845974410390407258559022470481367026350435545755988302205172344195413988372409647957432426031013045930898432766055991034122345772041496803632056453172258800886177321199087361095036199722445785738104348884738932471849979726439572889058598613008972999321130537855219825361256308850792824972400561279812829408045998927033829271125611832165091201111609765529736915481622988529062975820193337083902610359284085412887271282093658354081899872555533177941969042001527437728978158476482893918519302113806072369504916181999885624921452996885085507747242628272421937548273424692690497212455418500132630355983421907883673547831805782627942045585445265565299444797808440435588878743753763086377976094743547931772911981150228840271722555062025801428766097967582774152175374866192890961148027892306217749863426303929493249549785819107741298486330715468834606066088126448404493785687412538401289547684579910254264381647115103449553219564074136581176622592083500310855204703154675524140508447851399743766966078709005291519003891742327251227809871607463399468441866284365614727031980550474417017296214756982552362826434924522646352483348180807211744615659089071590311235746119829066722293573561254719983828915868076874408817155353062808412215045947964596575168691746121183288466592067192809496383730702668093456354435527177767988366398981551052513352850955613849740136638658306943264269071613636142517714329814614584078833116114329517426195424123337323346957438731103402615509477171203945138827474151472420674969479313682622103169298305507107512384507111587658557390404902004837262524304334579960580161421117961491249904028033961404736903428939464553603761219046302876804923914505456481070250958346756683275598479367955069493379020429000047744110323462908784817988293274471589781035566024917811401329085305634777247338393327487034709429853674321490190714143879082663128988554639077330457915159985687324747914405838221360458833225857941619269583781954763467145259749298401721802856783868814369758377006459816830481707594284983336339736250943544206866509368360117309821724603342258382750557100212353969018796793009261797442064946978896056088396076903434440967408076603881100942124420095179749298144452527376872482529972704529148191215735858356666552824132173977468244515060352822114387652655668430762001168961752058163615393605301882853397394854665204156919545403735230085243496188079329384311234683856855319315811519284619304425085797544695678585215048811954966941469241174145925599043361886273336222781052370984870497521551765955576447754942857356774313649456731667082315259503017507230290932447717537840290241946228029822775525184934941220753225370118050897198460695975558066702872892349385623149267683812737690359044504444761285384104797609935004964355690818344776331526341654371476042865914539574030350176217687578423077602221784685075211847813735659510739168061799674537439873756712397626680672961390241363062024939225506570051233410623847457433328707998431238842657821122192150443232005533622962821850571168655002180191181260644470746456674775024991206025502535362941537522886306125659352604149697949816239173590847544406914879297973966885390962584090961113752426894280739415851564175728182575664720534670527509514634218385228190546920491244358033384790527830949748998873746399521382619038630768613508565127146893321878091837172875814734254908069766024723480521738833493364668343959060592632996187615479316029691856611017609696609232482359805422471829138333511389549700930246219313908786788861926978051457188082341133879782988807762423671213406740688382099547943853280164533343471050863751321800535309364421075812417636057785469543078482730072495728082631404936868078909103765907213930747803961779621385101677796292225377521952476800912909349676022051746237620434428788571468383388077357371400671858884833703116335456314634676889886298429725812601167146085587320597581899622084488514478552972109251345863774724739939396083608578220587590052002382395122660878520958317011419038412035383043483476029706943121072797037360781646051001962057164851792930792707862086323827554514117142452571790559125187414860336076465971567856390119601494908068999504577005886203345722545605587444444237137916907575031814096984029534578543030688934276593593326725306563741650590971755284927019718733828904043286554466580972041505486589456175246529390632161569453599457768347243437510087070334256002416545631802727218386889438919342799366784173935364944317760485009322528122523826043264862364708392021008262499136768545762261739525034165227874043518709647342225819387866244287372648930505414439484615630820201098722060328485173296249169708458306238147873053650593343931836311552266064489666686910257484581695993600954008436931569509890992971145467126460660465942397152213963202387644497878224305712790784787936278553688554443038118114869121227153403490151555547099298038430966195382020710786601750580974470419759506819494505067137657331288307547867527084952992540076261180922105643339655446988903496046284580475200369894105533367385541641990251732347126108895988025441113352241662902406417253230532946158380605226764893060090679231217471007327293616292293657586085998793334829157153579553493593908919806236960597325208505855510909138269066755202052439565082996298330393192947610160564176602236219333319566496054826136409851451379063162870043612059460948935463074735001710441085572975261095175612791356364358784882359306239299561666853073745196398271751144062264298963837698663670940756792882652980663470251075136239749727424009320793219727680813081574675830077896629184676974873119084848582961760155017047691345973238473595979223009273239233485674306674612381878557320418257812431176332793643614421091312833221889859185566773946380981140531806863483325539091138707196512159580563779044902047414469283008692470734919945790583492076425130623313529816693046213381738457030120899976089096308047114107297296795083505247526558304552807871399822129650558419829982404800745961148892711327665824277921666668494167624442873385902863501036401201089984384480137399630040835647054076855143158752469155690917554014134411896228293823450392812046969736798766234213932204326454867316541601171831094199219366370289577977879974211665036401953970621433084965327685604609466874805304001832236453911903708899583581540564705795961879465857485966020934566968349326242621997832662937953428520180775726159108867996078722850890435494620334090876610857847726163315313969392747458745253248397493089079858448474896090627428557394413331119191801314399553474464759779354072709994726448777720979506022965991723071136887267393051451429107015055465774766041183706822055509343406965315827848386610544034689486226412040881601116841328304814675847799249088940942108992417257206936198657517002208447592688964016807731785627086459997661016613908122074032804635794503421893712429746558872797580846430166613476757816995759301650099502365872954307908050262476056107075294841312480700527170958563178508948474945450598007040939006269248448692701852579055474615633730016529827880900093418127701734029751237391636390218719598838770336576781401610537986496884445125325354027728947533134198495580097648803074496082360407880514725206854407601895710402170682851544771535378129570653259608294968181640793190744637963879398917019891582688947326678570926732408251212409464362692328531669646468413894221712820066346830887342313254937573711129088740216195237183355515653482036612226851573720877432138094180523723647239342468519138581246148172407230741551670007315720005883075885328646772436123400963451111908004966614321095106078941995224703666814013622084820393407218833534566008027112207897437973422225201947615141710169180786688211654349993555351366152272042614104017242269419624398018217151226862622058187880734953025219434210331874392434347130333751248060499808005710244360156958311775723380321874723128094910211383270821682992382386054626147042917018333199130578786016218007232181053425586582622940657082123090234113866655543499303724977125885505795338353209574516109321972293805173359073018378787178844307053579413179022806586855096534006527038231517080195855939420667930918430246504543396817579568343304282713695472721618503350831706386197808042542432923992959540296954283862041515066636974969031418024749342226202451480083308414804812228775905399884934478450487071806578271173047866803046459530541967950992619995531732810607357732375316708176190149928324275594860427062109804573032897943498075317469489835472264553173060667296936250494764211606207475629548725039204744361211821742581729081785728522076342517775680349278621330559574422118156846789792611905691889393715451195189244739604373941819386662766277811234124030393042523099227070295166003194422544194024449982210345401233557953003123448701653220392916192058821486624295727866780686301256531408980288654094573402594698029399214768819099326421211042211245484368270726127583074912273231264661473211511374780200872928072057788850616048652323614998739806502950249754566772452867683167099679426843721736984294170544543123719623413858293262423752548115585113253894314228206586553053355069186190522103119251152616938216628186517678579188960964104251390861615673602361457244645282675244458486259149366509763865405290090922310182051272164906112655232156795109161002790318985593331741722887191436180518564451121041321425117821323581015323711471224161224811795891663172806067267699991106050270673133691482832551190524929611775117568563443951496290824464572986416090806439738548988880127297649648785069040221304483900888844589477106839341391189586156725221321760460280246158449367741088380544807167961763689961976815091312702382224179769378161584848984378642453064166865349330596114645969917715189520070147883731960457378865354025240111106495278174543276199570220558389774772563718411473565920378244135561602563892231909246607908655437152135518393857825126527211431018427072892818114837559596086790136203705313841089871604178733844171589740541414036060611449758667812051485860989084963285484450431930493677438695394581284554987959217623567185043606043709801403932675936413218391042522933413316483087250890849849232535737171975774736560603367083414091523281880703175726211336560437743576857902434659159297180989822135109254414623651166575011608637203091124981519342773224820248313505687721000520855184423754854330344127154565341253079337262099677025982059046674675887438906882374435321694306567639072986203775756803339229148461631678327524457831782579576828148197203531962688044050355059108929554075522542775521666316363088237719775442633573475262794201121954614592174037853962525834543926482754396692544822271447351342216856473363364525336020309688789881863046169563780603826208938182939588546550529963471373764829487403518685265062701258331455884272270705058206781251222678325026780569273684442070642586081537926825469654460728932138083459970462015385614772964785946909973082563047436452176041497133938285836607355246422786364484570658619035982432387368149403902030702266002305137381921267424043853087389400254423796258573527542085487778815806049793211747004450457810134684535181426727792517123276314743158357192994543274494186796626142251222181763144708052099531340810373702087394123645045023973152720263992428060850393311621889233813620659500925585468308465328530127360499113235793981802338472921939053200509849361892769215329290015025467173650545026743080720888420713034768189946907615386767976136937148273192394709301273829010764477904261414346483191757156851532750569548198754612372946959337007838115455357727798794514989239363892602347838548101530560544919440675376946240944410679410689361007014151293507614463307396621957550915832964081385283556258693996980052403593861652685339214494729323607892814997820594370920303822762115216505041889250556766648299223599294264779509914848671168481451161829369592946909212970628119063022126666759891561215659493616729300583030813776284221648346383995309039816720791593200439055468599598830433803093830502285089259330374553710697841217705702811099069497318242774514393848347276621127767367592513225307211274422052391282670552838023572310622452544192095143065390596227877757798633096690859952326815488069323315097317170666955113026443783630703986142843513061420198811547337167729420480876627392117293076869700583994814984664896014712945793694409247299400664172472533042148074162218160454129929905387010977143167303235443582731617466353519080585967799852703047940796683971532627122790187338349589025976322830641215287938518671150835642091961860246587134781703881136409700780538757851150997435539505876523058405258547373199968794826303808587686565608506534899894937078340653694458287484684823471974152925710391355433081376039587338690964324802304266786501700151322677994725141309830598869572344535816052810451507825926797902133468046447862129868324434320955054622495903505315185083527948922347678044876112253158576080982544430035975033380848295961450585835672260798214110601673105122019098378097179326376515935446382985206711796022373002914600358324017579984138569603623861272424118713655348671756507055957627131320455112448053816044802182940586578070671028878281438570947629055404651553103022289188211635728225774492578659488408795731951806821330270582504992688499223158009728260981473413062969202289271796486925231055601966444391952288372181526402032764482525191916046822415040170889855767868425748455465206689962721495425944041738535304916244483922567555176461624358038310032830371828543964023092258979603272927486400496342434962818873776581300906712289458530623493776679056374415938924751970347168831344328330845593718095545564722143448502896557090454752725077653123171003895269725708853875165119194035056706251494049067456013059581623658283207095314719107185548569553204141875520988710834889220249754179778425599879368482803854886175663744913379218266947181514788552849034435179827570587205655659603941471336977327441980849747952793067292010104353435357315153443374529397423639633126895977637045595081392029379523278613352249487714564944766120694955993089819087335013618933694870228776921592195354454232737524882766966525951649778023105351661971857312151572214858062583466029826226587078020256192413794278907651314416333169525744253077998415414944964920559763469869455018932201014343113634917157317697138110505974338322010193513891670452202539028112127756450701553358199410167978140918100561420426356339293061670458860135757620491748537310949368962355304201817615115583450460605126270688542073091239198545842136045154351872017458912406129320242560101361064972349642364660296184647373325859058853673550409850420708554550873227000879601555769060947546245958674303340563079237441563692128101488348089972257826134520915766372435214975073518106351820747869192781397000438939999926126596684582088754359678331884146958536974082725365618427745453584103518928113427631501402002640973920517552979880904471889130352064291621612488607663892775010106071821174436881446189105423391926089365205480571015939829578700473801521874452050913285519108953177568223526293786831331590920791216261899877768911833970652585744046091635340276229201506336738418083847503013222158072285926550813958103020821945115504124769284841243398271202742503194560719832646272816269696115682362270406566337469835928839368431321569927650273274641588620223568317554629070722300162643372362498019243223432317093659742795331917707663715248447444768380105217080114958577153172614986720566292637654396238851848859491217373226229216404597609763226311624209064726695819993575203965456277969410561470871180889816975138531998670025891526374732265086527024681297150364277205667922443859965529222679218138731476891934878376980141771535427242788863471884691640492540880136101228847405355000239864029690969258170280107014874219334844305366196574933864330703982802225351198032074285862898382748975123040998431756366622312619753878556276177641748454088975763133405765949292131762809632773068282650383680314108381699931610667717619798524956500549082030300311772537852285394516570355063573059561111291762410944617010689727539912593844950777533508350086441709587297031437030012839802583849616002407306873105808922212711894923450921299844647440458807525230184736139557936553728118126910579351394475817275911660650303738433405866113311443355267664565717940715408224068064333259550103754469715493127343713778356315046675201304557398988673480802418186493235920007398609304647015455624545722041278389996458219034643375094193765182856647963258984367749006235731132201649531176241331984378753297779362644918639129827101163519210657498082922198135708793336616431977359036325432324394551733815865475430519110573087878338375026839378570038317954447458880773579867135009871330456044509679122469748818790626486369147984751871481905791668225481550575708377677096158152774171155549027052136419945914753085866458865141843754126323959366955470352722516730723479047050278483952199155680899686193513286432450444076360395575180921027861406011886417986273865404377310692111123497602941518638842996711028750409611713846388343262037545565567786822121607725807868704614045244005238722554438219337636693826426228889321040476287868118245473905462501494849238319233024161140938627408578425607085579345259375334844072767691838166651218852259810854774934935379917126575398525404689493437877774961517308655409349573379260279653530701585328773743834128630600294163527502532223984064732893498268077627709570019097454920075991896883256077340320448829510935636692188461353000872142605461376143007406583844522201138269657644971415721862121812786611208332795799784136708041648594999560262582699236626083460635132234814121210047459846675955506098256325757824768767868297267399868460417819362264350208403265730632574357101607707817979371023164321992559276262928432049498793938794601218306170626192079992690991846136246919010538583454212252663980715074133568360300183306016105813119370003755854877152813290958407984938175990585102093904829833754332222956178780765119305446984321704468353250166945157587637498384455537579012500268522762393403686180791330059629789556960469762398161668667821256207339054044973089466021136593270032368138240510877088156002075448711528251852699954703182728120376574024400894026068387446484539275325274400737461435083968726167605101244798994439351614127820659318492280394175283526490969972047142671549516898215251223530967355456484280342037184958375315205151964380283865943893662134986979791068302766372539538392337244000686939148133269400642723777776814593090700361482731229400442501907671885480651014732289635830321597831307301550307618728180135460922471307957063134463742693202726707906976303942390314961546944408652527080733557097277629697587986183980110218998796465312895030175518452906916510753678464352229338592515832370112757479510746760405496632549318980995708881458980201448593497190131955398573212481868577319620600018766365252747847401556798547206014766665737557751473918918166264759213394216692522537498183410460742460550488191750591733446480759025158984229840116860083982750234336962194685050791750697505892464474504284045430170343126501815389654354426483096121429857885030863551854636269899431558197655027821168184866520615333849232682466498367553655959357273292759137698277011280376024324735300889852885197239124169362975208349550648323695575673096178819505757869579028865170883827357969577232362019124340678385121949890714080336973955980996905126562683154431507574769986038784642222285223639162078212265059063564871006515339699612784072952146575295072104229580799139067956500359367249241898053496953463513339294094566706633544438682738360457192062149705943597410022448264423001890145424074986552111426339660579136129101653250796004245316991696554582721786414573040884605259914243012111982244585859026507217228122604629870278331820142723942483364268194976241799184527268970713393462348188470175798741542230344108459080571104592424990819742756322747003687835143469850354161316349636432594587865757696643080929038892276559590470563960870949111631555959345645287862840158120232911200176030874450571716089357151112037737934385106017356431450012632818861542177604440138978072968360656466955076147125848465329671311641084949518562891183332653297067047377185845006194120050865611961514783700370628649783571489529307939631815186787269801354980990390999417644128064239283830636631093988702885713230332714461039400099694739251617330873927740284567006522749487108178379177525834066571641135593661164742223141224074362007189052874158491885982336733871323131181626389595717019369061843194845795365382401278311053977333540626028502964251042739881448857813864675386278161415937299058641497129866748210222903076345675364957809509467146459721692711713368163593175641876122869298410479697671824261909429320709144369227674926053960207065264544438440702921565653158184364185178988577914674181810237658259708170509823161880875268907698315966464108689401555148543343153068406734493160776348934434895739622258526020537690431038944824973187346719584724183157868543593999208683655589823888324114117129967110707179536189952780018316942813928990480986219475273179554692273390185905833224164708277890510521556869764652629632683409126212946261059656064695118435503183292667748170845627681724446605880309764007698234874643479072498888114299782212462329612593718442998238161422110317100539699355637971290994894267729722033438618932778295266393949539498805151551007386789981974129822745013556607728449718900919423100066170470300109114125367195279116624733127598244015774241265405555586411610561553654554516833687288543596485348242228535413291159665293251613290261276656194192294224721869238777974548121762189622408773551247564079104564549899679562635233384730575928028768166412867944846433141685655341308915591873189313704774542820155386023309003012837390178988032215592792826782639671070208332309974258139065269689043067206000816524804029182038320655423515652876225202554459176971249931339491425179628702232972318527562012443776772380803846172955710569510976091850358297554278110754794611132047176014355975218894195321618377710774685026544035717980084291157962875289790619322748980094619872473822471515544414237223698293805620889141624862224198405431095765785898899196482229929816467861199452126288905148220967378120460276116676179445221429133714786703548594173118476372073727595708119611831611731627234180375302329332896842950490591201466600896395772123121619310129977354503028593758682422070665617595527327653294515902268886890482018962116836345784203666477088232968618117821538928576219449201636110615089584224868319487280733075166262603399181790698224094318136514061833464647933996488572617495987644664045115018750688706875889309139720786652657185423110420078758713707832746504703216971682795076462827714563129091824023208868779397216968379840445780246319364294158584871287164828221391214138861119278540756428445480765303726035624972971004294872194891289842818447086133639220469207607119160813540105410460045940701673101972629092518539621925421745417827809939965208785157469006081536500283936608635620077844287067805530050635975351218030614962515324113195827608705095007718017851821609791934447391762538270463317816476487377508605041166344376478235126420013578922344841480525651044210852602202810369167707589810500022570096276825403288563257733273355131567819397645031122228858866519825981326273269692908272658724949984906914148728506962870246425137517374785621596181595196476103797077691089860566744953095895940177276452561530510136181611100751043155371915010132150235657819722460085946753351813094969839635504411020004055017672967748855941988411495718009862039772029783509500486954099990700870767967034088132335150738727724590749738722101888375084112775196867801050555493126620973326929860086198441761368677161858911038391563032729033104408552313094576416484557602518294247849288715349719400322410063331042531342635699270534871294211152356490928849650094406229545618883330087781157289922024532626728860698038710284395340713524385752615007418276146449055198720390347497323052220853156639287839996576831403769733594109078888787708390084457105606468599759017715717416654471853166669274350787252090713270919566556477843868255430263509898268086914906948710746721501339050321542269793911093551105968329696406766451510103455177397886525737647226395658915680907109658882356759890999343892562891952366043154991510073274066893721833669101891686519518568439258791460639205817379278357170952634540690183631605966988273453951453321845608557656794456756330183492910836606445116962568069291915625189841660162259300574640874170330275789917998289582776460108317889301292644833846503213127455882595450603682687394447644527026202276139367938029933854565788548815931841390124349074903585578351974253094012694882444752101000480326740356287159463935999751004736984197603013929523302002805993299381231279493886631326033446242626892558785602901176481891266248557602561038858987212264185528009940462827775185831998110333232662263589527612925202573419116421940591555346746844012558813794209302855156441929354143889075710060309490365471597385487074774428255679572214205933353913908786748117881376626839968326620574522894158143952418654885279924222589600128147438845466517410994464718923477385728633621243785417787697890561282378301910071735159539471750124768450963248603887796723913297513115732834002536689199233087625847194222482308600480007205534331985247109018607173692994450483060493656797667192874093070893525830491441719402786916482267499540673624162149217577545444283746964090770107516991830211565480579260365388369628213102492015978436361199297812516871642902983083792596210214530458701885140842337099167370210921207944050425984970579391029277264998396184664577123193715607673126823945556934089752058600670741255167651166336164326606889643748501111759862860879185794409806143361717093548292969808730133465183954071533710159604819013016491113338952683367902497436814519548924237700765771773234266905004562250533097162529621193888773394580558501118726737280220605386672021448988663402575983371385704920557309638315070760688476466743323392745837144857938934056102477706501307238291425864625707325788534595407991436066740065695293189664523181929543205195652358520378523289133469079524220466483908434370683573010915653204845782449315947887776672678743780767579141634523004942086137458510112700609515821301221459085027883056014416513046504099633908974725443463825578879647444169274349779172987507128377015211864122456740216989052195882678888551706452934287599957476259155451240538789517686399623422793666416393478260226759539678297448329751263309414436535362467275197616794200085574393881921146902780672160288630703361513402050374904988734047466720705905823217239715829053082286150092905399531626995349079233674624789419396297953889877067999970305055217522811457272028745259378538402000704917929980583841620832126073518152231935265097747862400599737262716381145155149735138474667543452838383037275670289113278110008748527970415502769564504161078194394214599646074864194400065436506836122944925068836368454589184063893776405037414198636009517285322270717999975464227155882762167148865587080396030911985613985420700428957420047974042408927907702168431183235002508143088996989774907445078935357171964099101959644461297781213706807714167068472998505061901788431943154583088617199126446090398157256114183894068438526148812982098738584522899986666877360063125671461361027190636036074313587642838755388684283645848082278936538533850870544795978832508936761059638717127594101657987330495962091839109039810534266990844409661621230835783283847388719947807700707287816004579565297232017316798049217126070483588375501461124439549140007094516320072897926971900137368780253641125585505928528264585210732087128588198760046240950530542905734992988219774609265015138304572621805829449348730621243890562879242210094508384718833885362221240868984362347579658120177000940209165593350080573620873895107826875338156205411864119123251373677974879627349959875772209107927998314656967520234215969758782150806865816834305758715885692223131101824303892275624378071522829112140775476921366133444520501279800530761893436119130936589430618827746187279809520772774606897696576990359566764036434129576626362348569049072403837878765646030010777399809571420615423949855607636290425431708676296127587086448830461395929796931022606525966428054717885397049887309676591167393809566476023129857793302175554521134297316061934348807391616532434993218774255384639153097162840061165238805284313634606207940089421051887765459809148058184969099618371235607713188959608525864868526483333764242343253372758996934489996864521155126474858379940524564226122421157275166141193109264082496272419820765695841924059791869207583173596222546105389302774126009216771298331893734919998937660655890706631289172865600853584516089090479229792571602208218304293599781775968402009141817800350644939003246201111672964526220182070276376977031865981738723633163248311738283408428752486085659887942415990936019887176771346129026420339138146181194660073897135783126257221000588340108177463397501111753858840346088835977170519655349583045191251788944122047513040789258321040877005908627065827323837512582370831542337286779000094884812097882100635294854806899021146438694073389715145287901479365221579855408989678748781685627546521255720229089715875420094795852567446894428609166403907638894799989852546112996482223122519222416030853160627196460401245275813178696098891188193792896247140390198798276125000558319420007681911882719377541526240862365491843945530372276205857737749616245689199445412314557000429836508766403187156088539577635847751803144100742593116478354388398035540008031250405283629727630805449561903740050477253752586388209371017103244455268741031088385445072944371599771191221192043699484237244726213715898104947194555041587453193236154624163911680958474638357968059064013280207934925786182192112865261422196614294638665350888464878613218968753112233351797155530388014656660360543814573986974462799931686503179638142317163088429849936560633865056628576599970626489208825186332781335041829291706234470300084006101668090295238832534560826880071898927533482050934455653824624120468200909269057919980627374637310891951924896773072951328954046268585853474550554578437970322895409628496699239142049356471330505598862815598475911008975477219178303619666948170488907143459127455980373084240954856411326110751218503984236125375899660267607752607156215327146719372405058101842141990127748612234165481877917840299176385973514411880476527153590509926596280209424039543803781339270425822876639036243262528726815930383720987869975183074021183144946531734557009026836690009386754378351407650875720005458365300937207796881897673542515029231620241687336808626869604044648776850169036107659976489897642553041361517742255362507216185115151075321727025599644357489465232683270086433399488904584122605499264714795900829566371390796006561017489395869620765192793874647804472145746456763985506139480531879096557506599153416258817561201149947061112381384965029459846258967326382212822441501553389207529663367602648940171270045744699910913671777464830094124206260292769319475522901714668893768368234288377030272079680836075323647495006324449925315733990802976649509672420473227832961629804683703536698092377670348807593393597387635320226120966730884420802249935030442405564133695361970369043321785481839261235802843411033341749892477624427085053451110935834730279985125149367646832128222237521421297771608053512847753190603702412907769500738856678322189926069924935529598664207705806516593474294947615065408950776669440808418459684846670635576870779722040607175370565569363032661746831415172494398279091326921215169929905770439195547993425227442423730119891083235994956849749830495297077209735561519870814109633349017794131585254933961657991035676983980800376358116728984325868184945158948317800373734230591785664521996886528644038063833701216226363701264912858140444301206343947112862318561532760412764674666845584788359896420348066768055807551365809620949363499025477797488623800488331518418530151483787992942646256462357543322207870736044874567151961844367087711391758270168561327650983523847515335752874775669751069793366462485203444856262160245351837240852720772995679408374023883816616638842947370760479948527043593118639295486680075209241631629053262579577148114845764678411428918803304148060053808000877633233698467162258951345767562842622486279565582248777319358245140418694270155113551718290410390382715908359292996242864412626319061814027924711095646045350383735092151536002739517009947701604155808743669068390970696066982611567698527860365387467309546112371518752133729798429489544479458234911342130204636198335272447883090901818952953403105739465267663016688317921396702151084018449460019946429555924225126667154913347065215003939400246045883739831959661155870479561681328835779741998966280477635298731253112067448869985284418345994415853020037259925572969178187541702311723916963085958931550572630748473428203779630900715175251257750948694561167353450164184684456865841606694464844296079532515916737177771150610431587065712945308328557774772344296877569704282649130178053203942667294950526758468167732327655975368941252767777496524022431867315695119260744804819008236849178724827459367849940754708158565878426729648623310649942871564904997729777406914571520316265559394214321218925843689293180584866849603902785607403967504999872375137255563224205654556967890184804493075037584651052004802057005455350333639850920515958804151013266096339314866580884141886287579735775563137083697671376573295089032504219728674493967238733845548037293720054898806005673617725767317164986594734196117328144900668504057180589849142467143857885672030800738456516553894030141931386183503781211697618799757570109307738825083812361608188276013108574988472344404243370948068795134544215164088527520213898472496713832705505074333558191686448017033957471675580592690888530692230240103458942361434617441935439054361807836917349210609636935044228526033814814739027959651710953022155070431481065505380718525602622243730073086534075017329399386350030648782434554840051404830155353155752603360326925714510143682790756937628679930482223286199850944850788067424930276592233758762124213837432486618020096923622914302727398373780239232227507792982337718262704501415194702601813076553749707803563628888090531004435343120097795299707961548853076334035898813584303928004859480233327151988836548389063256166621091852739271402099310832462989595524996193986663439747342906433340270470642301359742369604838499361267196150155051995311466015462185564604213725206542383659251117055326965795900471962297026993946136296322495156159752182669779156885887941393649702849966327571442669104272264591660467090797500241196408187827884636117113854479153186505245103257629548471570721483140882293082847164975328376509907835991176482613285779787752430636783675895206858293808709028646972853267657156828684930952378164431174760361674567205385752277699786510812072874924023761241425166019249556926936676993384668888033433267024913321150069888073947714980227726748067082393294312791849881310094047157178127810300782466998230418414008713393354198777276433890885493912605155875311585904233122438425677929959075739153340296637902297405077067818672437377612082115741969392395786697017782443709838297553841493982623062335833587170353945178207346889219283322658911248241762672972546458074160384552190566270033308423096084098774291551233006264645555244627428231970885102161383412259400703950988583007590194574034437596537775077736114868941678392993432348182951383471016197425187790165911971834014406595307568679114383915586761037246818916118092021288959161011883308944920202025167356603983470623183822702083318784233043506479626373579416968846102865717823942410859304911072435329355367516166960221858817265030785574192104343484607408125261595330194512695252515916099272588785207251231767170866659530466115119465662507491464410044896477000952016068684071920125138870040947390186623458405752385437935803811529602537275474843177104204034749894525999006124472275585579123656499708757281252397170140001027558890249128843868201311414692743261804731344374602654652115667109649851414884410274394661576010914722204002551231643202445335307679793825066921123607162877813257276427559528194036130208628833819231076870466419878962291996032443563853471490461039651913885204577105964733000084588578548607877656352203344187528222389696079903852553482080088115377750569846420247172837840184318790097798955888415369001653613949292756451261901008886403914041147128491810415360989729281935451764617789178440586942852666604318297266276287390579019153198600009133880239469422259673191540367395173283220066389001108199212062076959845197756582658427736907814987483056502246003572800679548519335090321743154502812807566955814307738042535163251449173149441418582892768805058154038949803243048961253582784265955062622727110985623556564606057681603082857556719678282579822739048681641759261582235391162457039116502257476913914644487587408500858463195906656141105043881138408018591113995971380694854025113634165408274825385748440757722940632724945993841803443356004565279388095816387467222602934011372384760891270260501559590657267952948261378588724705319533241211371582017656973787948296112579297008427904785822983873622071022362537685911588375197134760055119569325114937509910465148380384608555898906681591846074250806178122694738601521007735073850223484949813691813038260480441595401032951404726660250845975593158554605457293925926965606931988215222187246366971912998709926952056341472453655302165167221840888191769495421565068084722370878320172384719607876531337706693654349623904417408629429320053563686175513986356419848415793890014627397421516498036779806624937912066117599644530293991046555264138483646329821586713823634065278907945947745304437359136762574504996766671937728042512039301430638869676879531754899324716551851326203776395468260085634505074472343663755603875796945947363540441173483712894119972239136850441943194205925250980751006937699034281878204814762971053512485050403093884786865792348619008249243710922779786464285054925182892030989317288220589871613305803350738219363510407025494983208393323176436090142168209534401351650352980910449560422399323786994303399185553183208695235506059681055260157046300502655487133784017473345345729270474669565723602870401362724597020415496132275115378510040205318521717835248077004657239767569835650216884193906405368479451512255897035382735651141196954992504772933559298539381881011255936420316109001497597380506247335807532943400881737529851999346512031938464751520544292879135518870090726385093531590110217758576477286143420466514995064197700579315759455604559212242629522710390495479818707626448277518589932315579064258991361984967268190675092410638478684932945793174295882082076428241864328856456176625631885570967118600865646585346149276739232633666813233787355062466501657699815246838364336451796118496991722402116581263918654762260622379624670045407660168368484381295653291048079765450500922882553328874757506020560130870358121456757809836805904973472504815187325010502134817794159768869739651320932894726001420561658556476475642613807763387330738887785913565922813792151909890770511626851668854212790876768277197104347296462835503704810615281970341803416369693781094388354036542557630531805256458370782339445777657671620195090660956177542762202692000227825182548106992850693559282404896089422716600547505572914915305750162841069732207385895488748936853217106520818144335606996994778139961679989916207284710141036829964619213231200673347064467309561890356030642237488130186287775649625238086853629858482030155172763189421597928558912912346295669907392547300005652933382256388599852056306574567685997978018927716039056523622329946120793319958938037946866669796143762393788811770124230677858425492874641417243450199944119333030871812385210427127548485016813698393739820172923975013142885095895582355423301220490462208500082298401484498635281710562353238439920590437641540351021880724336856807521585252271048563502620988430281165012210384119613199157313414263185358723615223490976938337111149959103063720450718896667548913323340006808955271194364983622609511972431072970602951118155310502979333840255275528200643960212362812736662003428351679052183722336864384169233739598388781286294199796316596843816053437882412500660395019888337149993838681557829204892454253974168436042942240494100442208652436667885278417644613927895720748231801115438563673079866667889880784335808021270611668254789368914815115751315055801074261755857510650614482726810409791411364929365118580344300468355771315969928527968963557974805488907160987170796467032969574772058211248503415520097340940319509326844068662429334383692898576795255616415109572115855429422102840497973932543538750337446153126238208306284998888091894497717116793495956173410446830165713886380339790354585023488906440532322669441994880082091947323972860586405446023418365891136374023633958072926544248714635599379658698743706619900157605760096188424708639088579889462386353236793759061153594452608693791104232473235210418151355970464053673818897038631072845255685389042532326889672821800059321237906797535539776498827001593037834925459247085472201694001866486285327772365830346184115378048749068514024678802766655400196295007854919623372147053643514380484222578698382237238929417805505502846436638669814988498992675757462038335228634980106087461714671979643540446700904746354459549732331771496665898812268717954775000933201627570791018071739509297589490600435880061847831915041973969293129471942069640411908437574656077896103409399228148325538913369131679989774599236850989006124906818713046836007329574572884413951488826134162860396859797176313931250041110013187521141639721149515040787272562352050903860400323793440035510731880563267861645653136095613045993976070591922405393771128332717928589730212012259361120774134109574788745743864163643762683318524343826073740202036546428540850644086343409249252895471861192261507238705919144228121464996256697213770541331100568451197417313589548601735040046972942032166871471873040776276335302450602211606266360676754531278259123116732857263390014016195026375579161856064497548204375113914918808668348003696351845761638177815996797040845342686259348236762972847867513868109219132906166864923009101722042722194660921029733179428131726881923262963148067720180544806671601500772530437500079368054756397862909815681289233272969537290624030863206805328703495920273765780768051737820323092029389697312187117847767187363468278849543277726111480752862132394964413402747735706887077025639736510291334993556749217425090051833637977882416057825825571354289818047142037445377879890508495108850893508260681760549988793698873627833161911159239504914122113377080766568252097338522284205586350528802163534686912044515241796012943368755111419136047311704271309315086709191865695764749530467085434908838825957161826401765518162633064233415365095620727787142938469675165028938140246637960054203248473881744888067784000554835558823393634904995840691713401041908815069476468415422759539041563320917661270892703590979540523236621960209957184375770442688575363011573063425126457099660811160818111719923585847553164430007272687578816244627559607608480031245439178321136184447688828465553672649081822503955995015867345696337849836668804584747727689349055175349690703798072528071619895616309097025103086504021828738042375286710088928148618599075888658397641262346488792058531196865104750457341608511080293546230197523360146191334477196042353859592176335083169712810304776858265364494833734103794099709890056167035661635153548121388761743890349341512362434082756417146402503788801335267025841862680578131563163492541650125676662856390456411901909101813295205863583281140951758976749676462896744323137766841556925740488466952933011249449434615806184741679398808705340673649934276514625812964165782002711778048375791198604738260692959529838454408272376202401075953517001072153348179704869445174079885953345366082764309210092181746474913371854934843663960849543016170153679043689637844477883924742654350078282493391015651110625837295092626133665952689641678981527828729570068424312634278354691309948658334797700539601773062648339781929625078281956671039129216044437959273715216313233864654029239850319665324118085938395328514343725801283777600624728814991393125801838791703314160930103047277194757694410222656365648700114476444280735229711293898930252412586366027548277773443436193356946609859607568028957705675627600299474553378489352712753856844061692079252746944106900543055096883938626903465616796263928683347093666434223290116850457484690445553667122377995737777015440484238064323523911479061775561472516743259085016016864703505656648668978415674874383255910586551293688129133941752504359239701855257908557882238197541247391910972637188279223090495078251455373442194713958176484413401101905473769073143420953503953134046778209405593637165422683483821827924873969400516334304121953857486564709675107636238663719832140236723916289414117326119578128520114626215058425011330047210679132811491004382348383446349799301419651247474544568587725214002268712304589293750174531456766494619129402701276315936260979668719095838762764332424913584305885862045077197967837511720263446957065361431079266216326979121729173132381938638378554998595223984780862520754099622517747450178731603204520877845543677559063608779206495644139391508523463881162498194330618604072785528625566090711899073354629640344525157408800588032595726940287364194499372385317152677600167435112517203232556382317163868006865846230984600348964331955156543076229664573585164253624668132944886351448544331938189581866719286426247297098397197867143049381671863026734009136226463537794233432901549179495734398536088217565282533288524413871686555682538995014204669163959914445495644725380705377607829461904521614418522101465230329198769225738773621797652870135747232264256861261808729996177239985484740277817089724418246377812797565840212961478774383534639192245387300638575846268252035091752848996141747211540616235921331949933892677309476876373848147068406963024024194161647752853417387642477953017593230093118931458717088522306291719837958969711129692310519262151727063250922905632007649550551860472774551963216585149559206224100388262576848271193102391477702611715871119622798861579310221174339508700207367273362882393950103273127645105904017014318860727108649688311219713709793531195492312814754081437200598348482079522571176804135471107414310147779951191433682735272896612936858295609907039652935455936088000045644945707628508397510421533423701973575071817044077789687964364848226096540067467403559132601048666003648079056788404717300485834105281955000657015836252568822878857279798220482058893987010648411091242028270391845698512921816804654378463712526478537419790892540870744338829912090675027767144264167671439537223409848542591059943891375870976879801445818331578679523434778325556906857750793250777882604214771066145553554943112372803283411715816342477758510269411583161014553548685749013147976983298634839842104585274244227587379596192673261405484219070529415339531563065001537096427462135481312002788592805657405585761791097780051310358886777935233746775201683528098178712931389049859317064742277470454135080175905487255747610002390731637369512927835060300014628696714777316795859655861085999802052315489026776044215509251840875909160788152734224919861428071026320328080047193325495799085224161089261387622331213614266382904319544511106620034307658853720229721331957038574371299250358599440121160597066938406003488925088882095547378468035810447254553797165719066352853957043100876607636538049109457022302933294286449819730355789866272792275181087393088151872326446036938220768332353583630888854156141038602675630866520837331740734913926540347584770208308546610295562531052918238564340605098891445634362172820096654141152819939051836099170656339954741611031975413179828241661755544783978976397293322705294869962286272089174427121937547574354535577605950164180974287865726313831426103506037944688104702248318793325376313445412613888143334158224388782616650574920285238801528038323646861806174370337231161357279509992434353489488057318750817571110695733043370188810555591917903403424535246110325686288150082475214596462943565040858895919910412967603482015957623501698723514516878722848639907598841753346167648799700559296086406509666293724690782988792477496073767426023298550360361707535998110409062003620538592153982948680708419990961369977699388218038266619546538288425750615445689660882997902321734016269306748217418580971165349242828661170425327511224108419001339149109226635395443981546375592755096421214427235314157856353861093784286408117764519303779176477581501741771394161243552175475214381045212957899252524055507131351763528214683492944131604811373738676783121121329781759514265491889109741260202929949577868081189942291416903205178160143883067550972117869782873133150197263191665082662412912515529458196845571069874435975277220049303564545657572008452064643588684231155516785311300042464064697854959729344635992233083469329870293122469990541783588380510295915950794672196049721690679204257231712457298829147501966281570286532308883525836583633174642702534353453452205583999083190125143667128138306130873552478863546458395982831349548808717512395884770180536280014626118078378048983971736686855177494077544694820789517403863456511460922092313002711413414388571692730785816624903764291204117363923071330730413455397463433587433402237026760349266517879794239651609301414141219121392533121030197023426244536197236710456117859986574606664013030976757895068077145095230892675514370657644922274413156287355967450471962096538475823455840176062447621964154568539108101332344310212617096669581375602534657467882157010676323854204982798066936862273780676118163083078875254282249617506816149023030841834423017530220492397517186328290147808303777819359011378431872974051838867629834611597365437642421755339428233047837041130916215272504700208032532214293747905738381381188909324530750604287476216779250279278818646087783067086706192869503334414029655508249816263314372325092244325485647606063875400699982186830859630169079726910222709278424998132770698992245927850484464304729011040742747335167765903694681649675948953552611863058462972163644423814345634503309656763727532374695431664598511726167120936372161120506887312431491212604753146273581642450671719104452920081061502398976879175221814550154140701417573832046138727991522687558728528229634338822329817253859154453897791928138203284661435340239620014184897241766792957198134673399719593008104471112992895897707405828128581274498621693857766223959680117120104911131661433263094009153903055319933898940896470726177278403712853078038083601388092611543175450098064755268700865570672280678488581971290588489723510716903966885128564924077409882395551641575678711226780364100328846848166580945411869556677182306323068305232267132677303603054582857932385815280172427206526414409240544965253953003727614654872442158196251648634829991440530781598210801775408888156735033558005853543288672543613215799501912396563212654323124976886133248658282017040618043444703968715150996361227621117152316396214031033401410109177871808808025539845220884754390468761995699670330928324521652382248296526185650692792624034986720451976049233538361137316993130133883829160638988238312607043360548813526571367856558393334760455535583265962581653263834712947314834036612469320413159549725445175995889119125112354591148751563928362889172000750593774255759230288422944273796484315353807426109786790846963064345031937689520245173554772911427545735998192574267074448059508786634616332698818361090494540057662799136727327738824322895094038249273185953625125229002606290038742006641048166410520763191424581586216821581537249597950136770281385801918739467008855149907866206596426015418692923323957480957263418207162930274902105824437978041796468909242515925228467491394204756700510132355011492857620460565831143887713577356491185590714866652121717359656135205894893897783220488946616434333548822571541101685352961284722956146316798758617658209893308116184789713450465137870759209311571667571699086013590045742238592818158056135492262144103132543241618975689283781288522095550859655180096738659918673225466543653444032144925333906695047528837811542300204398077520931995952642833810444255727621232278760847817229357890339232276470221492931444938501492142483418677566026139794635583679209454385588033414731695918084225815487005965462734769809061400416725918399488343349859321629945645883652787695817346180940839172949969341541029243830342235819858712081627999667513033086831199688695220048289375285099579829878046093920413783845748340004218510979809608947558880901924154886346146392066570594520598362749491164150311916986602481940401975735925451161926357935525323742821452010525913621119408879971060803182671215679424374024551885354044833475841468244213519153880352906328491385073011126149758592456123831767630019785124516601958569388898199402289081405567989568508625308776284178143187055847436235965626973246904821618195224972085346859112445500073071400212047702415897278992284423055311187865017645931753002699042773975786090368061789134389408648213271640598322396290688761833128975648986413630903611108330693922736812689420534773796911862677769411654240757492561086259599198187792607225059691691217738506140556251853976999527803227799753027799837813445437724110386483267197569061607175041222595682681160562668480053110866059251924915376904351322613248543226362149122982038399583703701818567921633494623289561594886766435927811200752643029697316241891624606487537451000384877725911619483004593257490846268548216514159690822663642645342069794803798858431475491721626441193922240903495446670621444338227164863092823398191888941122185902104123819618792780325896897359264884397016181873902225373107164702854488717506831514195451161524452397316682076596307848956874193527813242828312958597080339203652876397988252947683838935528511212052052369205759155160596525743708043792086305089774673494337769107734509416654660703480777080475940107243629126231704476288249016440593831943252407081655072328960192401702941276510072172042795198054306714546834411869890320240816494850304397926891707280150612899794754541291710772114888178475126356065932798135524296834588139206167810063392481811580244680390130235464531346949382044694493491052008949915722580693376998579405488643812869273488711604775342051137038914391719841613845373687066041928331648612514702310907055287333797744199692573807160590087768206491226851018501697162612440423203247200749850310770721935139331989842455697301569933040204343191079901074132035799703531124848370715233630957757262428521659415968263483935853733629268361522815019426169282122726163174416024224899415934986362963468461605340584773590154849009164400338892151639958755582888796054105881599560178523284812225929364089507606995716046189407180698506161331601359851591840934309619546636714801233427984916547789263101824100480431588497550867210426619318762713726469566106211388757587997794942650911365010789377688088054266206428437513346338216859422065114096519621679530280197281864855085528981190897211261719952924130887204443202603042944016382250202246824403114445071088451136484356085439819179313026174063668188007327449224198835034139553022085688732185473916539297842685959281574630881990194738554710264126799923618129503270625609245997648025176193019432361053398571560785330859186723550242228243414868207609193915149828687858310750496231017930089731513409741709262570893483687957872208547435214143278447895944880185238488868608866855347992740608847372627804503426366392674963318415088246524095749591507495430962334723828139701932712058492216586732157483268926857151300197954370675732651898020053651169950481539826132929234588716362224012713145453225804671729154500096891102997826922789859027785007366436989167395094210132146777952789713981801819955964969871041956736345484546964056956206491140124984251154376509278972030532794202462923715973358130815068961353812002397726368955229846521804977589851925110179752398115919079847297812991059896966390208210514114069670807271315870346393828644077839902158690080695284015448354660233894260904959279500237079877842198513608070420697714175936586703478428642301785375351084648876572476917879862195021179871029027203303660736669288238585048389519675455234632033425835609947909110478793611056116031023041156957613639745385657095459851245521375618042395827038640651473647951741635685363050989541560597398371457954977364741800440894723652551616288768329360773449749015153983858277131247001372863458537957800650266455176835621716636489318581810841929813614123338788431287600877286273140082663196815402351017958065640427812633044862683858127291494263515581090142604096775872344711216589573699789926208315879865052370044157564931719315461847264461511795046912084128347928231647013430985808916104459573514396605247437421013815531343992116279253779614365445172900717789105881973455018036758236333522719482327698286063327538902634825735771550078313787383186983908002470478867891106382235469659709459880301988643538342901066807757437049916312290274446345247432844955025296065408225209442740287920789369987156382194548479412638062265084072386934932823623578228009571493836380682147589651871286399206111197728103583211139228763304496665089625796795055389091952495354183511709713382604500501956425667149613398050117933056293197779281102847459199110307506325847840404396366307286529322930250492603893847754346635909888571244757701439523912045970192295506018215130782959568275573089772822091150528351342885002344176609788798686924736673675810321336673486189295226822230597552358744034479882833695059543547967956710109396539666269814177766533114032738996222302055644676727418471772039929827492730060225557011783725635310181892682334978366347162270598510162346584552741579785706070982819315280376822982469062371439864634935948895433301051517944563044993861322975267568581018916611963658057360326485526192156127297273428470332720549655394920870149628663019792187235050486640524855252503182787606700032769994365835650355484277906421832960883878677811126461393684124695567635364184413850308024603695520428163510826555100402482017082328654741265421405116745850495743753998566329286425994237518510681691144765670532897178013942399153393489593845900998497957592299342794113391328199706241705963418227442283618355157126262131818875455363096466900669521791651439115568704682220894774282295809121456909587361714702449481716684658714891699299988096720087347165866773656094233367080605887170845748186318011173846290881774719003766245845371408514784552534766507692405214697323971587326758455371042988521642609395051250565119594584605949085208074435772618223769671288097825754827863723963474915067767072304793326359770132523038719859093963216074027509892160058555058188437590281099012774874349337833601535177641126409878021595481214708277499407423502626727019227079528022554376960043202729038109894281661261765019157600218326209188436007213345867062902587981650826091016049021343988891795384199952522889219927191528449059082533290127007026490085445960887269156920100146727519397261566306434238170467092534667285878988106171386077133088162050141775806200454353015115269553065627061150203776406662798205331764508190766949903499095623424793839618568995568213084178959139990918699622588645909370627221661870128818306387009545273088326817092752142154931807281845277487720538451310780206355824414290521334403395060153481486049158686044327339463786464779862261136365780117536951554348387786962837809908962336190467796000846875690394395544470572980839852703126048386304775647382282303266701863043757552751506969372960572564187089358429352783253822990406235210462660290276858341365787610213930481419896157236452331543491751486077876119140227064008025398495423715204002776058216180192329079210935225578728211906649986072360346217515438483170805106946120460733157388580327517443847868910202801975946564250987051068808893371370087444504318474607736809467033615533380405198161546256018725130217496915166667772722236362118739408996718761860524558785187438669679370803058020446154517358069694361089530006520259131417401723585426445602425944052448778577898406307015775736290141666325964475035006657040824196060765082319928066530594482799231326172662953918311962207899625836273809529574506441916971411591536042673550563360543746209853770556500301966410485877601901765073585057693193776013613848274618552499743343483211966141998474870052733448460803357889187296180149786405523923026456388206535280331127217920244285887309788674234156613133449313400665392075787133849639790529928443531411694207147618205117001922593925633309409227031178975503687166166190141440175195052694531044472776222988653088580183603672846175554161625727985888208271826109258146934832699407749131227955864751012319251219382543185395591746570542582477431924030870084111548861921314291115507167220195122854903491795199732401872106035067437379942659072047695864636777622499161085641938104797718467471389112669445249059103073060823170138195725445888676260325760332553515271832964720035627783323619544384857746567564128923667910193865220400129657928007632265850405856720385142939365643348738429802242862174917462533401604106350958188249654372149083716009170758730992040638664303931665702730780949443795766887640485123455535113386217216435844880590089662867872419937003951667946721243310995647368812387755007106554224709226689010794622626034620471913161114406587283867718833728292477626335879914702330036172910078324138686753326087056038902800045730686804371856878073564605599291629526679151041773071416942592693733037099752488390261983718287214623913053019170951590278941406696052893795196118945602535990516156061323889875126356727962591512520023959556239415530566339395214840953203481147865270533015347475728768175384364125871018462541791599724786980836537940859508434798348926167754157201310047926827712975787906299945430166017083722886529483489309360984615101913315536523063162342444647151265769746235410177144913806726958825787268042342522064905328142912937589728615108976683112190144749838143965349755170117662850371907286710799492652634944928368388221779887608863217768426665900485091797744102634945003407923544926520746103901405163465319171435795015472141760917791237422235979624479520558686637769173162487445755511279161941697537345076764490630879963737897599006753529015223780030711917925983409098741529166772601013201181262712705388988322868377519829039830966390758263389488223470693770573576948016114031068246608153309577296339297336767359224933317806216876358433535198867812257474472316051986250976171029085548223705174383395030894904246787193194947395211503839087121836098242952536214095610965068607241182996238614177589815142893252238406702904246897276008922281602854905579249097326019291009402697450621888735953504287988016910271703368534294062980300822713717030459297987662745031128621303388578689217986580385071626569856987718253921137617048763676400322958491724177856031767068732513548708625486627770113292566262823467475525792324598423354024593355535065257291666337279815452269955933837613107880549390621772462266267137859042020760571834987607864875595668787128560940050077395168790128504779558377142573291927231075740926286395374711622244491685038220250794916928001206595054414674650185313488243799722063785818931233299099123412299986039282618309873123334303608668941327749577118894459306618305399055131419307030297727901402698916811795444492135873041956518282112969854326781819196443212067856808492422316183714708691597070281612074248393600181083076526990213657310938533252004163066129085217657322976879398352409211650641723733927613601816765307523404639966967552574872777642316168379489391957167355805958585551740331103799034430696293669975095842099479263388429745755345478298509284165370013446803521649697848231686915607062097953429325019729682294591416612691618869523250380384732054430828452656129493973529140996501723731074050979685064093519737455693384415376788516308840902805720510951525408680524905166665093443740591545802028723799492122783719487526850219703560429829404903149501993630938344235874642032085476104741320341127251902713062015648549696167367261588834205617288982069101975335874081912788297495835907382392403118418058510814201579050697244906238227013076446545948902867469388647602657976189229077984227092193933423380836082033262249830535973241212569361728556125752090284926431919066135019359435608381457353243557861578879010524902387332569989445381782934995640836258944671547925770279289171005192144324333948654367020801928463021895860719759493498049368646337706749253965633273243737498804981083528936974122968718991708777049086638587702494887228589900644396622423145555039788076786889716518066846144817440041534703796995007369131786049697103400602219537300242625341122221291787019142860661967357480006502400248465127893667231576800291969692466894353938603887921857466292319022421459561298423700504409342842368344262951277900463100644164132610053061612067599125832134579693692018928710286795841880327583360478618687908245537074216597611879885899249831448610978227137131054742725933177742284228530038470188979807462645737938322840939850231014403363336209728560430521680869731011125481902674824015251049608044627708787235175733032889812758951763656279243900937617957215762515667308875184736992789797822687547533738540367928463171830926919870879024965373186662657522302406759863022197387258570840169836366147642519965377227307761651470525615987722084788936000359594740086788586319372170659112902966786832795734706769297919301480273926025379834859025413028654614792168622876394544453117595662541482086863262667481290346085419645537242515768556791327662704126475324341363618410684155148613458899504013045572802017580210901593766338029774704492536351540836232284658227751752875899151855240494848630127849717306444478356290672231111707692401089785800906278915329494622326039362453339482415787659404787966508993801542044270023580870146949105430772572092529345472756601572120248297123510535510447825316810871162454535017072919307157094708892596240338284181351838079288555624788857662333349196500097998953164778894328709089096984062166879782851049255526115148667233090448241306559164372037499822553938454216999256794185174753363132279117458524263516170212150449739386089053060401213851163972120220554313559558267581413361618284078647792084490963383747004152315026632199516521692382473806812138112813880014093499954423030707940636633531237923785205399249809014182670662342309275483174057588688256788709618252209333812429068945394687730454291497831867259255278446905788038410153944898214706143138505080821045089099892938419065574016295803082404578860930643922408892167343737848350808093170602951566212767502689214971625845069027531396422264858351531977766170514953354611248346140177726121333055989849370602687354614429198707606378097263063533700953335899721547670915405415327770976554956635168857573872814427889039962113561488924721268636534556303402499302927167430699052353117483635430567047004671531863520916189348457620977974978545218883622510451235705110273978920585691258490542706121188516572808659346654425094341182678853594131000598315928403757613531478859902036819830098287399195175366725507416165809255259485312270163772840614623452582259410419460324035127270727825700034187234090034877341789085053875234135688662531977272330898428778864515772482441520449331269303667656072360312138540929832759258838044200918764287968301021474639898642102425316196666721820470601766890114820946434067339606826974575573772282138074983423629514872378149072608782550827021225829303955941985196796498801930943660873192974062390032170403644181927268576573142800424707610960765810752560190262203731690186349245447102458159617967100365403413835664207164517882928363469742957215771858718579027185827717219805250597375635681943946959556402137518191779470773633066686626083133527015018756289547053735455295308251777981909413344612389631213714831866095833338529870112050757819953038386247880764960778658706136737191335705303169690534733944838670389407646448333613976123248124838356832873111005014556995623730823274943804600490519788478162817517407046616950692834705702209823426881203074473789579648851133281063740526181179900740853651006664759891994316409672638799731784532438790762472926010664058147511016740560679507151604439955953403320888547614088644853929477743608743105449794731228119138580085446013517683484551528039497385700607391190149585170220555496034226702728632014002982080452369785630258927863181105202510311661540973257302087009021489976334977758453129566022971271340075904026629123011343212507764894951706897063251850456647435838719578021668441274649070195980861301289445940025928716473458425408900147003202998097974198602013011450917410323360444250813671803213017219390238169316030100398525042969010172508654438958370653002502108725577019443951762391854809955452785027700843704736115074887812361544409602201768961022368556309608050996879791518808301317555695217194867119587582804119778237509965124607038814701650548362436637649690836826096447076691929567103364553692582129870408332691359267199571946184984695746026353027874273865021077865663420623193014947739907142440854847106597536486298835360162563637070004094699182243527994262064342278550893734744031271389300014387270228632325836862086453331708986229416645970210009902200262300888475142927164238969482227233000737176610859917446508490206452174225389897880718499610385312654026151564062411502746852272215421357334291788744819209502796630427221397925330629619672428105792638764184560655397041921468632969321518909243091314081554110400955786570736560266380188674419007149633962855884523598461330414070164849931345134506654573028188663036197052812202437526737165321301211445921056765070133633708085292092485167547123927091317312523957832846768115956376208228726126192663454263786559067279779084102531618355836455560497812651191166461139114813055391737226395169157413625939934775293983973825572569263357834231948751174796101543235150194712529311803007028799566955307981793856243686242536961580863082238311008814389389285909592742937578921217744075033991619786291366123150767052505098395903921258664961930732328953132235154009838856500404103902705559014306019513786985977126950961694966834010912941603638042507336653683715959730386326461878511007618751775542372215547573448324125461397863111234985525131605385631795147589030133121805307677858076953302648209711594640277354643888591456611154467615621536308983187883115991907179047312662226090806014751441617117844251936093829078612187743810615969601107208876889428007648428792407743436775754349135270416461141029526906098246569793412266074274337715510494456106092512126532062228409618580132481106373117271251551519850507750470877274208901486013036066582608284731915921676631669218657033260719369110024417199319883645260002291889931605054573054582256913900394544254055310357640285255829268954083805212026052811772441872980197557372466658673667848031356738321866328072700195308209895340755031307252916686495796110398290158126043662745584382636291792759808652525950435732142978375294984693255092013892546569971111785531461336109261154617471166022425779570519063401013417703625503703506261367381875175636189832613304916223519873164419348478663295585183621343784542149935638376901524379134099877725733675535216762612595005592273940760136769062780010800481255489502065368343016493821481869290418367141572829785031570439409756501426488172939368623064468596601591786483511938033255104390753616043164751670774586365369183925076903906272361390981819653170473760022897052775120708750260403606179949351558200215182503698987294197282591069997093362924243755822479235307099544677993558650456547820717822439613431395157762327338074763912777975218632610652734319575537163885019439665053414949332782750450640678139222442764730816747160066365202929964132618415893399463457602790783514160579967758271655974864960747539509441898964190192521837262293644788917160020183317967594687211795989419753964005709096373328690036808712202566096633008591647025221643667706605714105080779798804702798771281874643591583995381990634711827116789036291496348980027124577448110891426522796803623112770013637426150948993009500491202497380547166855760541826922881295198557071211495525165469668240718713699586479648939610111702400072426778548671621731956768398635666815581383123798023784452839925254669796377965680472905248836412293952498755700616728575868333080711940168762339031167086293059708219895818008226434453540921528625839450458222507385221077907443766353730077210100326882044768014588764672476360259251396289335599578682438067517868497687504783610885172929413629424031163961478005158829697447385092079566874319416265006648952183832227336092172881371816365017445636862380080523526298251335216864885676863462927845471913185602552836710597218236920179211766378868205585515880505891686148273002660215093806533983439835629426160740260760360622638656746752147221723392201985753888181935163966715044196692745661534457507418800233331707126419604207335337778041248515607382997828580634321773617419872998406871235106421630500633361170053002163652891663603430877921115508107981307880084483824353668512537168553863655842295319887793861056009286099807987505829787601455692727050025275713948892566674376416917758489877921036937149132045068578793081045425497584489029358912822765616695900883113176996032134597295928167992947996722440710892281277783492058735682558987473507526962187224263716393706392274074586341113848677092969833966536537528956748170219270547341303492122723144575040403680123258452222628726670434706616004503860097577351374705442791317274392645937678986939395015420850300848101402008364743427116431860115571292832608500171752573548407379227396159643268154429854390812008616615148329016595486808571951030119680022681716221089182661602317609247118178204052342172006321819572505865638076109557266466477704414096896098506398716929103725247212601812430473113492370564037412369338799758456518850087263243301213004744780021468096842069795325530525636465005726593385656657947259250506158225012178931197839454815357074777531993655122948654813785432296207944018341238080174023963204133219231492059511105285608176354094882591410641649383764387841262898083075800352576224372889382197674567924860165060771347908498916711268582847752782763803996609919634420503420639461058240520073096852496375575156512785113410820115102780173502383928685783989435557098805892539885216061459335202946334439348103936213312747580513564500955219915958400097607259618721345440841512941782667658628720865900285836372912135738764112035971569396230050046212092276924094976712729637880446853093515208966877414235415517858913711222285222309293869748928548203183708085502215679070048256843209103227745514431498977615748765624103155897561874559834534369457740889837233236058792786695858668195002295499439628776307867878512629813963125263807566410272456431669464648863554984088971902385346667617114750248646865412087125451092581832327619140406659781101289888484373488239354590464775103999691920456019373357034968158530713614514559683157189617499764273020578710594554134813005982592629376099923552787866773811679446578591589574241061103029151969155363741764618899614514122057403262130495146606963231162885196988234598286996039344664568730756152049306648910224976982001226736213411792994285512138833486883614683354534995125922924248049316279301068320020912971847582941039262208506066176831306323788456722872505137841502468440019001324243523878788086776748903084353568170821628891245632919655340123720693807361233640828448500740251179526053984850568839914319922713106962736752247150506849711942077346073207788728205760082106634165542620900841343855917857796616399779784315116099563956403701433036127557370752520121720684999242288159693816823524694051310953395397530602645097084708618319899444490271138858528189789289734510540543372098208426451594954922416123132339888621564369208425363523808685827207032987308402569529641834269593316400511980296833725933203927283687710855085394998161189794100173639610853384959770180429090908384521376408460828577123412213693828833045025497048593128652349672238888350338016339163035488688338843443616327339650759688156951035843945513611362554085444961592077765766321227309353360556815158984694426925880699767459588050018578864645458467608016323291425874192979239306705967221115998740263283391129609035673587928832552774600259836349884179345398515701209111875185394519463246826911602441439864789173181783802686543229804345595083129585089003349728282792644078928158941409455218769922544157789952751243420902411536452506058447154062829342539700094236178739658408985422576105178690403209930040792127388342606284657351436493431636318789582045726255388810845722341278689864573549018642349357314239483871241282468392680551297281955607247414921345676268611185736527968709786068798351219266876423978141673936142211087414764343326508048194842485631926576040197012253877936829403669899117298834499218105305252121777217804867334755216898295769095645987060754611889705571186422414902948219586425886473255909760375520518325597385401329384016332770214367650437077644525230892105608246037671746826064037260560472187679042069222482271037936364891566328968506120137799213780556773100295967057154716807270742891454037671117885848869504400012749368782997144597490095845179313076000110842590588093834747998043282522900524202023097464818894608736622441199814205615738473351534003062087299262372633833228366094692482305820857776585372832026575791399835045657908341463728629540599402262390544520232619661776180324617276200980091493640618640604033355677927151120605923623540040025411593310389597732439071234782273423246058574605013548612358396231204962821277879282051006348288857549688103571329937915184194053347020407080434641501448471386600651098017730188530085078008402327857347167782838455090656153506070019900524383278325305422429262264760239114654087885482099267878150105574695242211943056508635733389719089672231773211235593185817358375453929918910347906711901400553052133704255387507210495479628155978931407884495172868723298523165126796439732812926963683886688742243340750085098177890698371178127354401515405201783059299434722336858923478923240877937651531634866344899659597054372658450745284679484764482090138014866676005168819494709166077040076098023192470733598380571230637032002324657558191205360639387513236446759564795966117656302688501679218852641626180991948608905877066662663591697724516723737329030187312296674571727685045719558983939520637496088104356373164763618906022023527985189218252214829933868477850628396052101130919871471430375178778994606793349253966779159557246793569448559313691286313885684221241916176428717530258715248576630045522702872196657610406036109454725349490399323608183608389867867299447421074628480945635197582612136499887354227337390652703729702252581218216542124051553631285955546941744015125649309791553024790165938481840424826981702848738842078137698370074881309102243547851676952265827827077515566785547656911821341432196958108491360334844991554410607563519645248613211495905103362251577757257715669972220188500124588397714802364052192956692711321686986385165626174145769980609213124925530608479320572321804719953104097165407989701825465911255548688333982767822339678145604076595472057182798032443444233729651956514084953171978267033281036835848658014853400289884883187235764073541169438394687429895332776164440723361328941893138002057414117874191589351360433960507683508664016047362586072799686058872161020345068043828577812862218702386107359608945199947949160066978715952026920012943198287300759812599555719871765368153678723184614280324983932734764702229501920086011358465995515825872444492405298818179572511892704664443491274335084955373429770666773216114227992464031502797579027370975446732484081753639786593623005421823072014461554059268262723537888498590276316901364574784504116825270014345808054530816349383530100916136479599474758098127997085804277827556388346279845916724454190946603396317323161856716148643245961182882442653040290623475541332897018413930680321772945004580673796999886133214672019394656468594726064348915089354770401046329515430689221316816503069053592651170121970359134171717092970687193224629578334094170728223932371404159151048046068099599989414145977962178212430245484389719055761712067885211495003053721302319206266779741054805276040666277178724342101421114897433317966689958094864682934090321342405171712142336530270828065423287528327986319303987163425006210751793487329053901298463120436341987231316554355175972093143933615241900390671976209095319147061300310870801210029962659640765423353560990219192720885601719876556383269453032264707152408050299305370942721379738634490389930298053335269229288761033444882605446867408237846911192769877007233099367937657034496790138035231460784879485374752388814582552590507931682374336897064570176914960465436150556799133134789682969897647602589166183513076663191079301208825256394735251023439182681392113027187125608947068235274503063788206108371011262231677295858436100106095811089694663407859315132481839507573677545628019344800019831259619707709897442061496677282854268596862749509953289779932655335620921489963144522012213383104229653751795838308600904840994714499407076987441079249591173824415809113183771404795611375088453718469491395076444184886770083101191695716336690174269300538137020323319784345131859695337668606749580878730988687599062787942171582409616796034456283416815580081165773560803982696811656764491867930539680370347484105753567755765357298890660108921504470931779698200750381740500511021348707322809337610882525301442520789367900144706605011209190135026525264973173777521220576150318314005770863588736566514375027485854840968895503102007409058003076424893230231037735111722010507334025939430430758767710035499804632558653767906662124167265691935543787713513582011408653896041336558809871462023917596231218434793309094811247697973401195043156520568975995539965023661998250906181820069569582056796255648446318969582769082210299226100351840632971897394170229159063193265520963427034327423166998889565227553314858610187699621666423098536196410122639200244780967360201528103294420720987071251678426544484653357207999106170718632501681535005497628149484255818983601061248607418620066770354827859332727473816328197256331717245737785784931353026644372551206979991727019223769063299272564695144491446973175495847845384470021964132649094579457012264681120036493312056717073415549508125920592577220266727581473392865572752276110808390971056428466236514143012373198577304651120053086760476817516512154343197504245453751815774968890158534766243012893962028963876047368473483780448712542791811847711444142994339454552945768315116920468454395250312567182719757765679294120504469271486407828546271264600120625811781237869550274591374332529973199654816921437374183757145495256254971703720921137061718448187036771602640277882526727722092319479573350588512798017239792551257925005612708280230590608899398695992104122357566655379485402151441911722603334382451290475932031440199790633728020642747146049030505291674330408460914933627626048000026187694020736761304850433113749641990201610158866040547934416433385181578370934491865593672052785821805998482842219120910887740683871594251250714740415249762595229986376050926827942964190363639141086082796189199661456104202470310849105223712142410631758742947409041187522512483031000569767579828346166077655898708346385934000234423456122488561009459884071145525095994755950250949327798657237780689327648849827591267477617543328987854448361208886118298249855065704040095915294993591511963029261640493158265907563896405502243519463728378714823483688726963614623202523645047911360611713196659270958601904661325063849461335355121692079882413444830830788501937710191075715826832552090734417181038100828262529286891984039621295856205423463926507038318562345799000507163023964688190217595439173577370865494106102531707991417724732732541906484245933317890136064969044979539790596201563472683433714822147351185358109878039952441677296110311323423786362116061275170956221566173289856428326078464653723883054606150995745566201237029168036478482499552367020563400855611064428414795874236291703920005463724791731625181272091666717994286788935374305001942656596840680361758043067505938621776302880300818638833121903311841470768804520794103853313458092415699446980414262751762390992687768288030590366400591202004691669081276201020340113945076250725088319046055738942255098033582236810174363368511200071137436949691438539233815275084228770865892241878722654161236881931786641896302813425951508123149094380330695277496400687056052013023522201922683863834001939130767107006527478558686621505958818962615589823106915387027582292305284486184882937014965417923741080671511982401964198453320961282354913627949113040505691137939512609358797435997748525267819901732278179199034334837770183701705677448368722891204112560288131592391480170814804654406002646626963489996908741786873301356971627204105056611309342925979367589684761321685144902142486021853314837119291188766853012842616994163472897125243067948701965385197598367174386944730338749307529118439006167207858241724363523531697763477568849760807812613969932893250094324708315358327329151019053877125240587850331295602546297184345905251836943089150276179845136265386374365999550713929893347346422117260299351465047108365865001537629820338338886560544912432133370799116818390125442585579214539678667709568238164934959819176713074897801764072683448299010550202233146235603254464773102571670218357519616888029237395954410141649865899560834505579223625091882585817073744535523182614752334713412832804961305774664142205814334480672561617427314299450476089516901313824259257603450369233122611146155911724401041723269474769296347124639453151976355307170973969600902719660688987469855952176635395719491512398080366726487209045472614254796035811023275603630057564120819556542925489464026171976448316269088433542287818861204348121617872045692315060917798844507107239387570815899696830250846553534116245588316675852386729076141621093967727262884104436883092853781433874700536261725042135619752917222064383273705063257007629772236390937714230698724869696669322790464765063181633014634144073465842916109006782695055053903503155920480496636758165197190259006264719147527998415286375764835625968831667441343562848393137400932647747600514427735460835157754441023015735801228928691660673273987565680642694926609298081252951003087523473993195713200568801754408544198237230380835721896146046450349458348663965978088101134858775551733280585987961016485141658178225033479316001015120752893396506306630972804592016862646470864546735912946972784397855258716361198189378826723190755275886897954833058649835687343725013504796260427583619010550598377333377838052382806797936002694431077912143011759631028710533795858132173379110454230318408009901628777909068461686316196091762845323859397981459680313225071394513912462276568119135920180108432339994580394004417511434062589324327638074147634940546365158034192508535285205758153628633782346401277185564190167415463924118193132119189926721987239090343475003066422686316481229775656322089066457679178692123963885521695931352415985074724790288287432050143558769568676756413328648077712642949562980455097066630074444140022547876142869903734712366906094398239538490496979737401951749978534539643204645396276231686230642342264308309175290514297570298279554848663145326949019776169617000029901760822659167959637652072111442107989183336116103025753563949440972850301064490750726180299553672120139291236247898939566472148416664637419478769015586277817056916611162680048862020834146917204405858705096278728772655685238752693015853517169555625325739612853459497496209891055248078164351831701762889979084319151602558005988804854638750972212281770824379471858824548981006249821326404563782511180585907758209814550448902131091320255426619747471359048576908836833572791845356682767098897507800689132927077860349612927423639713459913009863022646626540664896605674805373624374893992946290540982931956171539868240206079202428349592500170400966237970629026948681273213281302578759482414878316674647855373551326098897362593708453509622184298435475153440410056178105578822512656289221169895215384173944105962493110341478595483452398766471941909807759743087667490206290783240364954021826908842553358527533972081347794651916647073586124233213175367263156224256792707932984695458805135033662208825016220135551806928494792792413797157252986419383298387615891089402317629024563436738275282566177000648574436835110995541638980684134253506213418870617881317949300992342466663925321296830292002904670141463186915203783323927125763763496591011229748773848905902644927948422814063941525999559741870574830396208730453897153906864917798184124939754052839888950101184986057587728518722074945662701937613769433686308874424354320539292582135144927905329806378696182632202149918433392836249920004508576161868969867530162072745659806081001572237080435019873186345468439980469954430678009434172753833337078680447771814314393373713836552860140872903275742509947637738424658599199090982620322636890344865362401668154638347171283370439318325433323895941085824178340351654801673134469999683264449590697364222802672635329123939993474556188849855250877164281971475082939148722101684066492647642214105508435330044616583690209044160637895280100481455689373737149779061843003627070619453029385003055545050388939054235949910061770040145111761643421521832699375438211639089939091120350741674314789825527164486874389797169596611421219113430932101293405981448000500334681140318432194484080125122010712114330684459988553002182541849337769777053014686074677792554303526076095299633840207654730054999614953141448236754288254051392673629622710002440591449669365507052665407223650264794156403463785800083106604612981329478531788007096862897177979673989713617638343484616862273476614865917624947530179446671914269136817137081077813153982513727971663326415306032432612505307475290273399430396368585855974474623253825545338098907718993432289014906687092067843090893424463070948072655001273612923890614409996073623777196486318424598202671378403921925177935223043275832166139510640115501840630895068223268878621149413221670012468616306283470954942766607677146623057583295504799477105676743695551868704306279675267416738547943683431487857809656738310008200782589291294866338629511518062366553379329554500881945895199554609317887245765564935184627360231922150124198336718573105004716897058201052754257816828753823820052146661606880556622107301296079519471708917120037497357756846148996867472762258128399947526776923102468877978172006479291073038311815488359840660597334635999397228322688682114745073997871853337988886062322417704744634372439244236210228096595625441529088813790888892089644744378757032560340164616467497772088840931554548960815945437372897609158840878571232753796589282763071398234345883142587539249919900625131856339648007920793072076732630687119202212109861983385382856025403715049477810949758888059385237076771880694749253550423062259258509140219860890472168637235137740522473143898056508186855703023468815418497034246283185996670195896350042577199118762190942662513637811646650409771344521574459571379684239657296271780684448688138276758560728509404655413888290724425279103941380379502923430259637778283159125992791705255147623104389205706147082505494463603859262235456106896553014678937440415257434842676464545403742767674939469018298776135979805239769159869034619904463634542895416985596869650100356431749277204800039637804520116137023344896128891765274488844924112001421874406891120466031079111158611181127669435879171309971456400340158426092896445381256023955966201606483415500859713627208879691357102603265617696072944312596892212650471950693590705083606780749298208994087009737761169464215593139231762090929122357216438655779942008568173468016908728805573501591646688985755947470564609507379565482432739592447984107621973119389820871321184302171634769023338481586191214793810294905705739179732508815449705833330826794228263045631919127019796077870875706873618037061938700060262359908275961565457851518606607677940527148867307065191334786975725063826601689750313276700120647925547136228277343730893858665135685337161134934022619742689526830576828887799317216816420326151216541609738653406120804962808300739486679452483425160404956424297636819710370702883545929560488581457875194046117371846956929541600180679448887181037909028132058219954298773417251985005674644708344564195979425228705507891214736956147014711147766016312408610137087157396357309272002315086256718577751969547197922580709222251493690165748694957930477326336294091659035577803450644106433649471374597525337869760077999215252794510424972470634434984299934010602308172054992142440256865901053383915930707111605820260479059296284988252271205511002126024594388315438145669551041937131095627880343719923580243502894201970589679414361137574594256933454829826515497959788699042886229627265013214357128091618965850098885570533288545670153451063034687863281645018270484648293877377820595083236223402896517887995287836503661201429787352627221945330533412264636144647520362232406123309688588202376468505867213300364608818215567916680826049145737000864464796501784386411084035954999368934753050623379393583055827724496949895486607126692688954262175212558820013762349556530185436799053454791076176350044965832823413353897150409211666477409673761349518078317866195593989894229366654215534347629252549628360136499820845576775408109141291903912067330046665688818238163824276861888018727616022238359827949289921474916614431307281860181183928873096914155947400549386712572765165859084734434879672955075026744331567275773745200234072899523640269866850650928832662627333477303713582094741852897284260520378158751277641889573919408985151939588712216908881262135080243730147085911635713390365411839859335239579353541157553447790559748227918862343842398893389607671038830088988095939321436507620218787467165797980138463659492422973899477771715431413387539993901770646451426069023344160554049098128526694699958467222463483945081839038981453514890157868801282283318899609705947844464323297761258052461586688321690963765150357541727443247659143410467162273776511783140411299861359739718772070794365125188523300708906683960742074667778363858166847605734515847827368010719843084055291013392613470169286378908227257926235481602865364371670665208619571567758729928624308999473207691814466525642277628057028285564482047920431457331594339316924387545240947343669525448133948903903827915429800513020332109851977908550372437541797826824881143015974640249039225658300351832876931492927913856720225663346545063718333137117529538232735133022502041879492117800999542090818692396516365370912839100131182028956289490093966798768254431702555015059139720749123561028516630688138434107822089560191318281616824258711664271813878476219359613092217950292139580190815048095371754697881507322753898797505956256738741538476723776544520480970456571886050207472714119318724611043170048316003613135635699427440958691355992900349226388342008695573587123815849438049987693420259389321750131722311674697816279314991749261983292262565050260545545224526220529875144195187262125031985055438953836517060119277425007805314269901086222838327422835123327141616380472313705905254919808671580243429020207778798354397133787067455026909187845802292946634385176585508526157701025437772869182454447412790627200837599642741034315402597253745158006740975843643679415093356552853855008465219337184891341725287229603804245903838949684626417649241849495707819941363510352738486486696546868498166615153572137974372411421406692762300090291381941222817252071068797574782790958643397873270814526184847676295427667498715473722086878959304749464379541838879501399912879269372986453627889601055781000498403291053938072452384160243656826699597046468900635782874142077678859726630226788758828365784500099450643538966345684731556146413652537265695227941142434379405854399247258017260354800868115633264971802870168568858854439852032727038728994543843474652466368523606216956177522785243310820697294175277451773093933820433676436602427724537463742007052633495825597379030458008974780468329574315423894719139184683386830502251999530064381320932404347872863358881447474514292747237185048841071996356735169310418823439314691000932633818967780702871571710204827360478259496262575646342052232376027448448947896204982826149011069551644966719207288374197448215092063964363947181506730522977667130263299687535908983484665175135039017711837551803056943246244733446275080347258015211630144212609104472938047473956418056102044420610601742529631406787883740033131466192159832914843572254950244531177104538836371739721798071512566677537769141409287504091429890541067331870169536095435225347322622229321922893080604779427105161791735701572761247677120973838541415270585619970296789353898565209804217030767039586821626514973007404548705623988933433409769063114398837122725036878254052558883647957991294009545526612469197066621072475561231298170572518922185648322139283503921099956629254501658601388428129586551315543886977958046185047100975974876009623727131455629887956154365213705430856511652082826139020030921160501032110151009780212148867388610920454195316749590404198545181852571762814358211216493716547931000006479275813213497541523831796668310399017390571621520859498984162801739849440871766726560442149019502212634579569830689681592195681485140271931583144539368705262297731977527232986707507158111163685901550660725998685999900992616876611654603651590899549035087591054164686506631043060692216450748166616652038421865402864097156723913385295751255928713767877591630468704387182510267819001743405716477623098894373464913225144823348395076492346244894472402723752783188966583570569095982070410030321977786851471626551651575743724982609197788743978631297225289410452438248672285632002913274174267334252511799445539695474924235790692137828792008345974348138964158210834640978836974787783576791559437774628732424430591242752137224743846277013653245638162656654245439639793495681667313395239505326451146501603077317931082284022349969329948590486084943772838877233107191020106771381497307348356941979546292293687760162803042838519984113724419660978087144402436767637326701779062930291921444717083212054138839097767988295127273259535154946695575823444542764561467741610920465697949615000049305507444260840803668518136197751487725250429799558931387583591836849949131344037947503346223498184153167480745223959101713398291428586966523606689321318153158065927665326449345140959935408608818349860555532884721779899332812960968567168645254119707499546152897283515783381475020820665081356583030116790623309979809393745558288445367172531642511572233054969374996493990789823457338901751461192920281173649842267776925638742054236243450055009366120108040710948944731058563785416754229441627780381737068963153793608806223799768416982841473552640191009780837368775400914778986524224380869198352865952134174128871402910548551936394991452272852898640104793877517417441906179912978475027716028111048149124476235790430123482945547068928958651875986206740383244603804689237685150822323984117858505419956248746283989308644312140337918996457374272249415680981585559129740988987732357310262095196898362486763778033860135845603769196729710101064204549377550047415769606475351133670394414362992333923389663622259080097450760845076599482014032392564691877122985349809323353483790082335588350978666371893109258648405373774329156000956749034925482423853701590934194493222846572313545918683133599714001849128533721060354734892925206585542837391441824747114165101636362709428430742010263367225212643777792731080765886667431436816142133250813339710712207780912025555414706634106329394224938420141696247360823638617270170577250337081997685556159155527774624875396111970705078382022338224281968074233179615148295791921356931768334454310652309066658179075188362201417708936919047797153331286492008151770973687949524527597376379486437160864061560484218582795853386614820729733861483858389472233511536171572760588942220901910009742931908950104392448297900111089778381256687737852430651591676649719282188212724336931216643472838868827539915977421799108934670009209097417174240344280128031911655555882414801109444624667578138624437094108979949651022844956834807536190307862036950802769275654575117765680588031560427352455224170676117708440017691631929742097820600784197316627417296533686663836300024094706745620764163863398791395533794285608794485124082879642350484164975957154252871479878826970027918151194324689693845289912822758892131775280224319567107289627097487759368329939856653362420149823923571268040314389304235270940904028341302889881404510692773620409384274991246212750304972970427523236753430128570328022688990953733713473414282942783213873223599572934392872925991612442540832684363283191441881205982233458389689030986303496485706442409346529899524684238127717598262103696651860291286743347486608794748109083354358729200624977912746911683761537929793944446311373090987463607788451176531699019240793673507865989848773192299021516448555570426415183181114628112403703643801870700981352437829943006726348120055473144632056171251015721007466789826618006461051217892758743903998206651877560152238922203392283312373960151775105771759574429643976880166478094555931250208775441034965406448531771658050890939433979055081159899233236737738756548374364452565072765971093157703497711607754351026408711563007134463853668640246480380180666797857296313696459229162290545597360371876573721597471705040374267090604819822985774345294923890661740812734505374748221969827859180529149281489250983516679423647111570995563722404674893279401591621582531006794035965045989635007550858634711384798471073474889974352118658724015613986576252732202531266598947907394633776526458605088043485651008438715989254929878687769030697088295973317594246937878822524122799733961059616251898326649728871084798093725469375937896448711194424047762281222442890296000992434380650555983556080813729098049317306651117221954641143063509224834614607782610764525984463969177757977802610224397645503271423728517967550690953123273465194953872223438764085647495092174090937079764796787879073093809568348221878933888928715475389853207126561717694601916562005754739832467714682060594971356155617942069732154256526266874428483612636008484998766010428659564410917395723113036136742996271961716729720861132094785689438012745968129646022139825837934616300122720262323056267412824719531033383582732226361579072166641326122002682647238174991177040870243212485794938200135014940067814683899825829593916508973173677696696818640891137821854326580901544128748722491338575729960373187355085601485214997317635696110758950361059088199217573172313114433076415236236418678391657932765594390829343963066916388604469350203249025361054904791311360622166774642668109262897261146591221073980518342831998606808469325434603485455170805092237998487482556216597552508024258991141963939968684533825814359323396152705532744069402379301219104862664758949116178740405135359521293331110402145300351621887341098973534629731954758296928736005421598805047184689589120062512478081856649692953996661875081537956653727815165530421248285732587832055693898025926125102739040891752704402863674907753637222545114963124398251328290767278300329618837903277274600331764769164468791260120948500996606806182529273256578743579687243940648614231641586168796948920354893914835996236796071456135903721142450712660108947415107994820417030641639615198402623423686059496562297494188466157219068885960066088608946764140904412543181505049979182174560533333798112604735031838076956560518382313894309722074073548448385384060909198740223041814511850035929927443719080869883206464301000454427706455567892587074875950413219650965860230075318967859095326871863408262330899274810733103442275057899267284588772667316262701795031247501199548104929440528106963221390770635420791834914852997684309498130028158684273548638664723662999279539848088420768309867702291200913018327699509808865281864948838005657469262852837460367658512058344817240070024654320171688588130521782296328777584275213679970594849979625005017432847497096561523197376049964027958935413391895819119129891525999931096348131352308303875652696529566772376246710440048614248719861426347350873272004340852608439444864629096106502722148096994636829587629815207205412998583576020269281883204601810357561384013144577950397903603679372751112716847778774229231829824175129397705379571726868392463118282491996490903284791170583657517784669888685559120770464645396249510316131669714198452976170133362561676697035853164905579864352868176621796952884770152195848050493260728756009552116246683952183056368968678957236663757921125491647814051428486814676863453096694196494619110328050760049712878795582259951623784472497457241619197852606797636909078166275383384449176890418841772570091354586462888660146964038427151394911155671013418213220872427684480560500721850068328368482465296277612573508658343237190243930425463703592280146162446047933717976613660885851343329808087636925746850057202628469646932858028811937635345971668642634257969356935089803617442747023523557925932428781507522528554297633577731056503570064944328265974964925198561826914203189887015530240004207119220617124213207694193302229633530348778020995180941326579409734768193840663276220906370984765431859109958479639992305446804148269400874668871005102713865318257986648885093053521407121723625575256359936393057736330988404464944939147523879163470095133774853746418390201247790149790999990174473876482617346053567638594905664614626379352699689652617465015220610803044251851912778964775100337208847076750409125776189657765454109753998993594145763404963718954227691524168862312829822615531153502464518455486117796437149560040041024473462054631304874429024257444460524904267064541040024091216852204443957964851760768009390518287123934806906489619571679367581700681250682223164144328008369073264031396815917142302074678003798648018893871358166193490991343855640206635556813660248963575629434701026011611884090161739114167244495644230423892346127957196817321308506238688153139820910323750834508902494797341800483376615963336323595643481204146719927088961631394751479299987994910957823202845799157022162507598285120516871885766046768716040189069265466571024570973302395779683129746880997316668131755973363851210089393729647798102064317843395619839325314874626758892976053091270993177651060198625125931710416826108574317570398504176977054758920278053098857202359831744682262922259029107856741395381244145144376678411052611037879315300662662805662906638034900455226972142727487159758617140654396747234567105595792550571923206885011625193964724475998991056268885977785766974756054614838978079927631754916478338716681942306375160807275845383813500718596490532369086129064630572552830050400689196564228095224674299092861171489880033275040905141357890084318302519122103801985190118415059974516583694749985449307868922315724576241500700644975500440661466932501297231358736495577211288249543393216012748885037582547176342803400492072198272537545239568194108306074214547341303167106018604878504329482228988190473642191082204818922391595001506788309195130917578762122859528258110590729412961125580614576248447909310481082685340246394438422572708390569627611480922458745648941139971856535845064526138565249933065004659038674028633381982745667173271283944927095007717275040389544298125402824114446256179335651664303869449081686347566295933142903742142160827674261484284900694280038563062197969964002156244786923722543130108316749828137908337905166211736962022017852849950931941494555622079914247107498661490742081376219134130165168460991719111553919672450063901994749300471260312309888994957206513892673406004519344416728867799034036422303333641399516457584543860050385074748277191338601597866479933838885255500308183830793762574771364007699892015989450589254924883080687567972166773971210684975376981873090287817747511736087871335163891504773195712420780242272892068342609288350164880234368048623035026076147972879630735787248724359565034283319213362173640628768016055129992766469992803962018169765165719763316903658494435308240760469049401493513407594305801084760900509240642332481749340252926157044971635901057200143891317085869568890482193975640319438989616899419989371312877140739525473919030764856647212276894711980907003629844160117587552650984420256878571525171981723353504492831534181891996215182834567096761668860267577497339808864643422585014109428449375463342710526433471594485261685474921512999575892965206132574138482450504260283104404336863322603853684226009262405690414987047137437181618989002944600573042615359469305847003890079705804300785175127242308386852566838207682176822192676898023320287044063405162982157726799496208121622873310847024290154359032222530549976240724478691217433731250912379948903252388564717570868373206486549800589459544473758705387287311689602139893144821033551288199544738591991965531689794008755433031578441517040275681101330999166666642072698492467152319709827875047271339887641678522838892729045821049118292265336978797366025053354154883247657779741651889944520371818105759652903019481558492830764184670873956541643460143330569188279047673973933333180463335154159487705716791951569715432717497035568255424108532462243412108792924598067829550593435063591109996620890031533509051360143927592764193371262721339077313663635456098666486453383559410679357802891964794620533883925794084587539450723109993093632466330283861779032096079553111454311308927999293612895234322375624809617062649897808455470508396796980699964455805913945620882866691338236431455316688635503416935904548889405505290713906874983381784474227464495329590398794447111020347230263345332313008057763037168084350273967360732568753111008842772612598106928231853040578548476879607231879360483076218328817881825296318394413474129606378270562691467742840360580099352629091891962074458950795085463209854983498362236729891216061421757973635593204886031432773822604974419125030349023370777636850472722825276156082843386808547306945738039397812930315359844478627309079092569777157940180308204932131524722466858818602733826822024951009956967820011566205918591175378549755959684388632028614032294014979358247026735484630617653580150383372912449191263979600978113504433084533338287183422455302226018873324416410105353831238059152007899146154941112688133956830908118859597860490652547861859268033924698780897566826820754164031263356825381925431156364796023112005217592455340870369913636751492119001032105566856904315040283425309037116381138734832720447958122193844353960827922765999924037681489070457451132404226687236664774350298390588845403444729883765482281128344713681346524718045357269899548240239589068057265596436200782762736041199946497501157374560115229864356185274350398064546611422829624294113200194286123001863348550370320679457341036069548537854836866275138398940592153879150354006840725782757341786916685962624557080945634159633010383547606033676097945450265260664381355794967996391529154705235538611482095304901154661322214526692154883319444069287498942557633014133398083443286982430829372566152086454163128281914412626218056447077742617417310279936030235649383199857390235168561066497369982606154729905346552636774316637890710936293377741229046910840542283113023343160161841331013261510518111581983681208438098779802867376522159230174511372115182223481602090413896823649172708571985975748502419827092612506451103663609131449594689397043649066378553602252008997502041888704276021836894362060424015699611333862757467404904816560473866015362794094440512358594493253360366432136700030913723444845466659680809028787206719028599464267661205860406409651403243970865847223568450639747014107248198922858207466252803075997516595480273936635176675513442085254160951113174193620218514681748623957939181799237251059281760713611183706428491732115394514043359825349533049480821957760664020163391003313047209419855866890232061334265737363380209079272166798612888353788641330539755494887941300206421547869471058126608019852533890016136088144842375653481775024713542490980085608472031127807967283470152128118908997821109047507253514541166073095442454926937425548724970830460760989921203552480935609111333660315019217932066862945667666508953245222772823917258851623807788538882851209958609102728277916463719436692433674194047551920267011225487878782754671486314781284998872267048436802865799035261923580192829226890189127069197832192822552302757038156484993732271327131167380766902134934646961351954313469859708844053972358583203869586968228395120843603441378363059004557000098066299750695043534375799540064070972710858021299640060327873662310889214274240305553416973985296553282270697556884661780443426708987118395025520771729959238903007870939395536425797143633895227879937071523810278399564662933849029953572067469844281638617883353351740120253719870201208699105201337757323361357983349148190743858574211509223141859665211463266605194817584110136054037074548449402161523018293274909340185369114724783038224365002570377383814845355357654058941298315655261955898782181040789803279135734024582623369760958943919586235474860303534557994678773319222351089996023856417262042937085515214530170935962778445767645514985463834935867339960618753419429529066769976904135256528323468009684376835323500506673632646558667162926766843233604777034746970788827527597291071512581055101618288596541680838030888971314053621156029503756893884698422239684592845615235927410297042782565703312379047038129032473324672699084755009909859068676937968023388300640865669558639580443534408686745479904271027141951768042180336713761210662458757549437620570061209590937672424309156395426806185175112765759770302837235101892886384417411531476930581762360849316783786850921705998140843732927990563538394024263551879891483105957919029362043974975858720198171288919279313853831835864360000657975456562371633793338605466956258511928807902585054356845580097106519115185106030518878179770806626345725079390621986608031447050811242448602900422723315462592400966113915235673943820613741484143238925332334958004406791207588628239242945938362442402644262945877220049644622151687633130277216511844573390491681814384240348997069945587419045670486445486248206632350705506806279774572756604442195549633194481371514731892344243832419625959489095438588383893033728456566769678206604640786185664064166189047473439951145270023054414023516743170930355283788337026693886529319613432778892487781354432611782874629521304052377234491961896694112197618346864538968693511899471755510595375852523617413424290892865423336635642416561620100788241803497157863524280209937951097452684406050962724841220062926563248032062862721452800917893817422954214422314780629544085009910668935292200669866031785483357449989163964356449918000631268630922569172552446035779176434217191972240368340415740782952378051867878292120116060558738869348021462290747331242242652768551071631806899416306439905473646360797415633828235792055357367656681667047277263161115586214686865473316519625321685515891342169382516278327329262325229702444839259812253098546205808551482554716743089780812716189458819493964309105026006827242312606129465206803534791259124409437062784303280331266584751916021963362679812550199162929767691897176020110155107288055081362755034743970995722919187279712238574243414608468471876326830058044422376190308460384398374008069670242012786123288040076811179282368105958868945592223573749284164912771755834826866476598100832360990551634253919250150451079032079811083875998822991617506403101254953350730521951506535675613782281405721994296381511930763963122540779258380262827217092939309126619687694704850035488371264070377074173738209183425306525895083247742303335720500340907670527635578856025038812174902715626987213871278323987807787703693380594971754820385620320757593739788639331387075763308695438896588896048914722508909889516133417222623855805316068193513214878449292699514242865206446501667456754060924111720824155261865535977769544899671855031296434041692515039154418480661241291493619976368908408539664343380243562263648812143595314129358045354589410355992099268605099481835321830158851055740850154858933237006318675357354129253087289471466513069226217254792179773582219829984067051823278078337499499810463068073802698706921357679835812323220292270365584752842722625616957855774000874571734776746538076834573623082764657257801978775099995966311375568364008201951986829192699908442631433919768850105920047431544881905094172019978499076813935693102931347860462181858235418478978480288795359542770599726452251815033667474706646395158909063895243388339210519851401651830878829147792787764293810561655726950797363643442041199191249033696391630788920727893198577465419767576273237029900144373255834130818822902027327302460996394628471241571758408395496192054022083679408778033338777759369902838029590953323319732770904251223184000241948083522200337231141378502982329706397063703876631526837833482750875160684430183170416385092076702236827420827718304934786623169477255759384186460283877215260922286987790218230575786352508761572123842674413896086892135592338302027307277290628511325742129279627851680051171810514801849838122154533572290681053829499345988146649304911440843087989409925899030341179424976928599947809079517792378228784657243622190403226885251924746164205106803567172696908469847342993537680651942903399010960676742883547322408224556161338156925387093842004701857599776127641859772118713743116146424722211555883855541405457005226923697940957951150278436788168795112847092612129916208950850036575468805961873116484795078739131267323197106477708995347289469674205709149579740862985086070946286314894475962113215400128679696495467344207533967623783603757181100130651852334868102701438215171352828037042354071062127128679817738687321254905326522111812155680675531334053502160241313408948444990996984529361553011511543237333416563395400774999282557119358292547029465673380837252795861453260409822885772510359555644766631760279019556786379269920627868307305822360880628660917390570615873247274620181223963829464131336471592838203434817870233223515087923763369471471565445503562992779661648077207460997275586541114524692297857552327387620937837504159310663565737374953425363467141298579113359602059839357412693859152430984606792610334098195317297047004615972864183695904904423351850276683776293671273395069250948899910592086719871704722885860969524738329062376691651342917451608386282101836389157365407462482723323668921089814261287143544440408010288432912261075541678511441668999462018358650718653973108031396765691962489308947515562007134258938800752276306889345378399616842188034127308347727983233498871249129757211215079655969053309550886513768294614790653779296426610472895877095131148097419033637848906086898761061284866823548478632096047087724367800072552855717215951974363176888861839914162436204051594729557139016107569561572409818014134818251711674477263889087905015865223849879241652381552725694997032836497290316381611230766964623149701552270470891707156217594538274092022148246950053582930004519011201371693287560723430896374153556937125615756016717261931137398015625162191737490575916475759426680232471118076248185439209409618636388283317206846218713216560204221132081577234410064974341375949301832519219057298041254197728755345564583513726872173322500243111343285472485975169014503998364399787702247533728432095497507483026172744175465134675296444298758170222288684915125009066227413000373686091837172248628958929597668895420994352041423774529967990622953458856818818697891062463400614513304915740738595120205859750442093949362651239073363093582104772156808401102365941211543916648182159155561484559140598895402377592384037143664343961241921047453407696142653505690219499539493112391155880163730003615600430132371886720868275225982754883104072730864045699997296113662088890198658926118544088194104602761764968394162133307033806868815170572510049387178249176344127122826760443132186773489228207400080110714914766644485838544009718491414277759405823332451532129538376120853852123369232297250348876913513724577924007447217514662320175875994607826102126035344475409641981604301676078551808814275458217647370866314121530362262028273138308646622068658610420267785173793860444662431549286990348645210338964875233985427409206027006616242592998686974533580717027230464911388740476016098565633469628464491181323040008920359265046727732090460612814214692550235324499074982770338514648580851964907039057400942260955869609994391889281582494396995785356823684861002349094339399334190495596493944729285560496756002243241228382582083906237960069413771027933810731525860624922011096944482431612169893717101176482517816151811087959054250022605364987844249310884882148264687702200301578293474625189812373246427764457198095806534185455530455339813363460694190560618335994081634485325874384981735761512191531151331616075557950089186836089669737395466590856584931671079853563540586524389655552344743481171710338213155343128419185645919048371782094127309007492997439339039864516614164308511554629687484877313382901863307136994610426797806661719609357251984102213292082241592166991525857456254827331054885130206261038510039243405513472220185698835432781583571236722557039677105066112239076111060585062232280790019306905600080765880838784071768385819414320934999579244248736700949864737349059919787677941035649884483241962650324292421117291944938952337682081540337669240369718463457722040331374489442309144622164322284590550944302264447491023772480284232062396436683334669941470249102401599083739212322785239722550448566717562529569408596289043319858974962600148551166924201389325176072697452356707361071679149502191082228373728858625932939855977895408328353306676662456094783765137782984511203607337627836000849972372319593803498837628759530403499759454934994160507928899042942094388961203107112206598165353320056794398839400340470065771783309736140655416362774355603796309133261298788645519221440904858582631717981051157368882938518675401591267652542739045219599058815664762288649772735463134515515678275583554127360710129620977321013070698633732508158987535795224905925737437688508145638279316662067345543597949182186076589717396222056351971794113309729998556078827678746666655540186268150523263164257059755441103676475667541596392656426955713806767742351296160507905640770372471619253226378054237025019522533293826224465110720621319884169411408710215289088509519095040371643639393917310841016996337115597526370391948121351746702590176718789594007663261216172164008089595908716284759066048800347959902780292660189014277494667812152951197710176827476563997004384492660971441552980944131620092357565840523318383865581314449091313843553711907460278739829010698056029377762718153134127300294431541875282696281040731953104408372569450451378447564620497168953120063281738861279409229969670646831836167830382526387819239535228038145984846369741796846738027464795402113760378756417640926542380215078403691319053250887374903981574785337612199981358671832495312775721872577148350229715109222049529797835008800704177421914400819001290888502996539009768512825055339911700976355091052743346541065503391112809299929929659032418550903258837604762054537720565095720643037006209157905085660329174804676245338493169378786419699910075829232842042959569494221785984086722826926042329439996627420366682110897035523887606873684648272583193947983144269316885767856256673175086752148505502574245150661163030622085655256876343050894706550446516886937696282484418851800623419705920693148770414791165005381787152825657673380893343267599250786495525397999341934796661857716667452518854382675491317629776370681792561381339467319229889981018877680059812670771241512405767007440424601014786162874081160975546490137513464631197408765895134074983087609528968728332862614942079821748058536899550597550550489047955772467873481412245665432059139611380854211724256996978917978718090847844586064118205336568571181621238384771201459968612792685422550992650681994538021807883587054850561649845206959915868763488281509423168825682232069276382087988506129668440765550508998281871299466720216427707051049518730037739595468014288976298221155369788082945293034032527513749557639571564408809385870379134793426914842959525746699264301462073776979630950648805640010692343388470545516864293051762468549250552307911004955456658355233375024840579095155142945753986270369639342314048490616926731947937762768866991441575124542306777719180330950978382360894629606833827812880302439762112509539888544241287219569338769688526960190756799352534669625839100325794508506489345623321840835762488378964282486450305328468564459242044091888151797173691523574737099079878885682815388659628935700911333644702827404152781964723284229877118665897590796472296881384206362953919040766454395727075323428047813120601329941734992836720180534709167817240288874431996288973202082841260925515311026278119651522139149217945473301386416099370365656691063552283271905458739553996557453644156345638614372371233899608648069203996242002700395535422905247576115101074037794948289319990973539503523026872413549881897755983893557518416836136371260209264179887683858843010980418379595915290104683621277356743223982777159249457631418157538511241202964676138342947086374689780653061790363046820462964449451826068424883475062003279652576540903086080218126758602633288742933748357368645547440825632725707361492211976040314239442959115515693422769589879235701158655090615501832087193207141972433214444524486218251392591188016987889222389682732090358008264172749410227432296748054090790382676505651253747973111525613001737406243895871406330643048792722433520884098354903446249462967637633634463178079787617057891472660434791401049878040029517520990968637972544763693086642282932699210055223363189017510054800542097662712832406498345406952649290727590932138772178177635254378829345262502623665088780921453649648082238255599548778215733238251975854248538015813954849821793839626698763613581693719051582772612888259192698281658638871574718255569735351419118324803890050362626809107677444762463860682668780536459909984148256298016383563128836442768449270157999619990231060546117557157600541688164881554182769543588108061567040071639613120544973358053879137446365444124668084576005401289742949656960772283706553790940560578999109416446555575327007105144822944667648305073598146450935029889127482616253630398314141414143583310444813634375199004406899796743302072889449665168402640208832291100879860148320612299587131365297187349000434549482300545250597289250998186380141169917857092780798438386794092581132419947429294204400612777439379362689642401063902523657022259234696810977929624564726051438642742673181330794727098207378205788173861471834799603606208617941134694403313428913529351901040566232306758898908521952330700148953497881283563660663865453770110719898672755704195041249494556145245009893421292235761320366708092965558718563219682417631938883665270513727564626146491366440397923459576072721081337318932302400556666840682740960977766416103482768063253382721931114527523038924841677826922770952336752732737805874803201930750133542594002310230764371434089721895445347873492642324011327342287824861031040624978339268665376619374505266055170162563987374747681358899911811105396217753478873289845077852879862640898870674841711304117751607232186364075781169277864093703922436572891764161046138456330597155614242822223855334282136674094288547354591350798757253882020986112572804111549646711742679475909518841649090123709413032191626979040779079116784837110824076438922908627315737491249196483157189583514068586072271796027992672435628982840729723996286204663128728973921975140308609494216602251838364704912958789070627102549942666035621990049919335535732721025260549999256227965387335924036703836633385751390781833312589305587628120543928452678026057771889698290339600869306654449819536012311358743639026573033184100559642337816450134174636462179217507927160455672676722308118881432058895809976200844690707656707510965490971020412112240238468152143168814109038095902650756942218305884523037276660082913441112997875835592987060073314108054771244749251586616781096603872207074486999622209757282384242650408907836975927469384859461488989421897462495395519584587352643497421237583014700389564018548439695903432778788853029992525842800478908530705454796398414474334751453260871185211714664809116937916672868967473468730210013893971693324832767819432645983424384823811637136415097486124894125804086175006992794476890957122851916885911172306962628206088893465381981013053954924975795252460379817639714868377042660446124874004080045379152960230333857583677422884684362578526745083133283212894247471670418148370725891802024769033841462894421335282927392879352606127316121031407613410881067587484293666824636557139816731640268357517525579568205482405818461057875115319031256126023936281044108752858628742889808267559077191358502582201471229422943019310640825269970866460663071742783582783706080978502917869923721809902430030887888367616477716208162759373675420407634637723441832170357035156992203700931867359568052826875541636388865286708457571316741976322023112460249712298896509645197416564897580757753232257095840440076498754152037640269655168213636039792290373342993235156514707859782920908765047346097486212270243770163287803721054967504782834367135673930294390784606109176404148488014209920701458110635517187395051002306475441718094053240554427546574554723344065242013718416432854464863257440517617981822143037466678365228483687508921397708831471839791457711321101191632366739481857902685599699752402582562341778567192800792369315713134016424138888343768833648137200487356621712338401817262176806483594607241601170720130182106019093354713858031469087666477082545175526701831374116073924410233925626089038526587107425907863242062601064743722857221765470031696907134035864316537761092054511679466748713509301526744888810337766488351555066286310775704952431939275942605252723674255802768465396242016820435453565420676393159313789063364283774012035170306865726413339950064158651997039724321542397283248403201017836882285261202237073729124053609345602917623571188579524020925244990625294741366050159743417018624119828872519256112706760352266372239286169254147140991907695467467451731316123444933313652862163662141670174537728685663287482889567378659684254945372303705398898701978942525062525610996523462955082839096122256282691014718282808276443109221610049892034852615831194483937758011264492721176598536760458064411993255370263548218306386083140553863184336260727910986257567069475870560112927054564976915801324577213718094051953842027338486360471656451303020874704160555570768708916409585240251458487877794935687635232267035155588216282456389273358600539006474868017102469128670005175187752335091988839879924724284421549770546496161439161830295792274372321273472575429586619633888943710959117932241442580347487352608442255628431588375899475674462398953746247496160897616400009344683225144605764413332226175095460733706628043722156908522661158712725354791815361502340650388346696234351619349421874361456390531774341833871140484935305830879729457971220409440152777372140016570318088104395052667091134731015892923714211888627942861241420409402492108510158152682351884399948489666253193945185934512212974907944769733438828664766275869617873784917606721880885739032674238879906389685459625704721004327802348606215210150688937095302217919611692054963607289434460530338963478699204932182603109580201969265167443722677064426243905003681583500158232165265255995325642416536547334790716577603136573591831467002196730181717205964353865434139222054399411852515480557716296131595064712380610284988960808776325734489307730531405517216999052607474774513285509550208930197540788827957687388202491446684303508960567874272091777869177372379586241093728226536975069402002784159234020082013174599911663855758765443285458149793545180284010407111229442977971093310634310017615290074067520166406679740927720876944761835789089577470787949618656209989203799939522863365892912711345889424168499783668755426083697331320716122102247103408327861855108389310854286699301856780494079642293784690715856922155758146543959894770189690636526736412256166201078486295530497184656475568723298642057301200709942364051231078130877390267124872607213310272940213991981419023730242380417540058584267550732465147222661251372868207036973271275059695164683833608812305088150609914209001798836561857923226551431604788949635587895831328031960292018108146455968972981983357919235780735311557030661921588095289037191691115425958390865658351457691523261857354085515515806539935392258018893541601832090833142258182811694406812898127824377380170271092432122915779540747860617931394980315658625810614297883516302978839584194300711689132135512387394039245752919118444821748303542868441476576527201259474334010413877021552919830990976538046923356232963970003703008904103225488942193095198767208606458457023470636556048917478643369582290985210294015597274300535209097247080123545446765523942988412739935412322436132306342233077101590436270820524352119479558401970164790956789631829516305476574573361857227895997292780888663198970314811601497666644172678943581441152720825376548954362092501335819247700776257927174556255430637059804729825092529050063666223139283390331468929211555897447560436875056975281268227227710301889248748601993958881191398120206380981240904513547721370910021761732175770565115068214595689648933267853427256535526297677254137866551177891177206529455604788541098888847414307054952460868535279203714310755567656084653233778256754222982861702485598918853132349001867348045031452580569266199020320400137177232936582237665363383962154133908263309780135938485367938858256220752368340198748742238902334025854060915777125178163646230153337731996134056763070591254696940128788619552891988270019428293545965849065878751391725995376274273170668432367030259140846483734053870646712478563873977221486442665284434853263235385952494381969290564491327276883906478692332317480212009629157701495515068192783632234885053270531306457367706250357990892311407683494358026311625665312131047222051522787288167495834236767508704023207367687330184533554304341243181527632083225398781925425903567633251245375352412177593117006064942834779700124285194174359196895971379543271338254003548921475638598405797383716366533427738837499213749387685249457787973664020858411329684033528003013850972967744135516636450157733584136736696757102837937820474210129487452160733379850914123216311830179916984505824520287683099703953018834954829875379087060934297811242973514241243537604155804298615807627086233999359185850737559162699383830644573829158508001611581710592153326520316570521911060286102236875379548008400129214352238322822167746865000725247614180662187097600271407631404750616717245982131941801694053957232758557458251184943071474254047938003945837329347992790839938055513776298487131171193799013459510089698708574754809381068533056932970850568385616103213492961369935750342552142694030105634404440726280314379701307699583169831896861452939688958128694821601302249241513605383593130564969337633954916683825172146371636007070451981251877844487548981100041253935260626092196723801212698204120556234479579193347587570319782049313557844910605533682430861027114228224415821548721204942539537054599515234716508862154715001435622267009564253080050368013664471176985967231257937991436260330911704962533064201581805619502917435186165881517021604440592104362710209110578277704232870087696316871028001990136114605270795491835852348829850798341031885428759736894324449452625678014160096621207509724876174834239542991816136339496025708670128050551955369200186832404237389040283981806354903005972242266950046900177795450043255818560184963834813077628374081185589939100144400337309693779606872251814251140011818299492306275920262500958536758247546900036011823385839031810850963747973537305583774471541154180733177479115188280712018524133349700684971001143283374600880853118761549474559885900088035331539141783166715510916971634309762453644552515465393749011406035085540540105127384402299229281967034042148836913674903367446629599759940748147758619339838782988306224729397895630823457964291399698570795596774209349613680704069444660580890122524950167807037729733425105277210543396139555476389709798102041518298734631992970247248812578624685218739767439717012113779542784181359196537685048251814297885631773643420532926299300349941149520846381812874710677194905947838497641510058348188080333384085732799338467176537447211129915281708194686170064605771770811180099803066370678110590789736194177162053871027974496746697561863123909520166586196794257787500834248177547394287747355397466823713284065804924700831511117289569672182243658375654248354294146398506666460455499193273061253439074221387761656087986144883729224596018301922580976484131527403937690394035332924121480857526671792799524244567473581480928220038035151013412201343342391689246695208415035079148254538191723339805880591169569852417865651605719707881104440533343999030859223622803940342261909433962964598851330388689472628707694423050351568431624365792130855240125388024817052525241321571905035414798286636722084981549197899512014571298069324262216990677221586266277818293873564203202140066091291058463075774981408039215959866044905679511014254421134634110995052916365530573349058306762860721073036661117714472740605002968535340242977826491399585758771165197610980131211710526566088069456404959788239360423593193027039018665662768924019111569777151535538777887694004216747104953259839111948621375941603251270317467131998128435526354307151695296887159710823018826721713070914469737682438508475831924472185289864084842285654445844415441967867203971417299456725364249016123258150073052848222226694616834788247119293315150130441910553333984526808993938095153074670513773668680576468676692912428299881799311931597903531926017065404181496904618512091949579759304269731439594216697773321277563651766270549673824471056519393000410250007736546291856283567708846508480447804055409763246451865622357120239257954731883411613504618482513755745330846016057962636313850230839607245465778170533358804280854916094538396666524573369149689505945150440158594233613933771684059779716961234833999093223095551499020947472264504079126668363987941202786473622762595339487410192772294313224785323656083253577984242596122113435780142257883611457119110672946507571813772057479638518288704053750139451094124979923236451001963481787898522358372910958685930644119862992107636351518865931012146987026254148483412961120838205703028827832212673283683599369009164050102745401466372960251616768474066270051825822287035238985258141717928100745019410009589307881829255198535032385331415737464075426451027510781030896891320046536213768187565147666924838043896224317915927248516347144232271187936381891325412646350994193197527867862324837555817117522850117444585456744951354901750723416103376484080393834060757611220036315795521300375269827217884598251071852641411608575481374772939416252797442227922383915836893473360492820216688381439537763356273870729709200619668027026065717464555105219527206487200802150875217506238115651863230526991139011625369337023725097646578603248814301505055036611456495057491416240913852304458066843209345177731527879238235064259288950978372420749743865672222929627538823187291782914921364572944263644615303641858786374951580967841851072476072934187062405669013153647271878255048816775369440731888484188188375877589277872402007622897040928964010187162171797917262129313443717841957938758359572655535063098179353342488630784521438627037075374111469740536337921093918452654516414310856256020347876394363189392281276900460217538445798189022160354376624037214844473932683418860822445091700132260431957984207648835306149743950440124578123442482703449194644023670631233283612447723127590979651910178462148851521227770221718329724253265258189204424455035160884315723581578317816135673451795098466009059171574648281951762400370957241133688032831915422389887414504778520837443674116098040517605999373373679158863368589293538476983727069666808554383048508842612855947063520235222481392184171024851009295323902165217156939784427544473972995118617925295450107008393964937508438459156173349979233421120191429613597798246448500153656572871087033755805282451041059820019056956052591079933528375644245048526699732781949209989621375145143241052015274467025253194082100552008036363576081204288866149588710010864339098092040132812458612630409345985545749333712106212245547503738337280046528956668619945986765792385744350382185010024851546711839478075221359352847106984935133802185853729651395561349985870581671519194848131113267789902993716463330440632420819790851089428451142498065288150066763178451500138910603031315771283563882423152671020748671087609843398517426311551391111485782756721270784809757126860762263307460546645707116626423346121179354242013913419629073351407962665784278676089283597159379429949996389049059274769842018399821056062450784266432037670827305921168989507566606324842178617923118334654814669352381438542057908563064380070777879216380813710319491218683534719333428039895232399964093136444134164434895223601554243923880930351763503811956752007531490178886480067071153974754086747987903477545048416391352509092187908989023804655056629659007432383741990414160307117004205999285643038802389418668511922963706545685205315044637762497144275179521917188579366151547776336153658537822038793796178748204901735783232372308959535347318117159872342675042504493020862440647543621685009154001731882879229308816342589150983327636344765910783281895395275434688677353417978484684054968741770033606833591252281719939707624022878479459605246399298344138419701056095693818417804380950893290061132173868808695072982097623609181361721420049639653272193656894442346396480377863906003098821686771599080640696665732219371537860961793722804602926579508918321641258249162182320764935589306806761595807238610430437734687772817066893735529698386931182946845150502586395165231599892800338919428156671322983285369461322809390548402255726631739738093808316160542451864829544209088643878073848649567470609700917609437369257481894472139925319985236365396274102524180938872306273697740765142361020828243714544228921391885241420436409930986872489180816196788117149342679127567604927787687726676024160902827046591699256179670115381490970653178509459463804328409236687130211974191111050931661330006735416250081750600885978958995483209561742707563908345434268976995262712634206617898348503698198176135868731816654378142437791786301643782267536143721083477407597666485694830633044291460426663465887613931988610888115528317866535249069625246239630538712092790894610884637889021873492165126986540621546668870281910668579025249969044725842157489053392227867992210067082344970769749105332625760154215107632961552153341799190836090014357056772447382759128813111990003429813663017523231857469415946280991941220409862421898427289527175650819462531665061900220068371428896779332887199643548600313973343552602496348304806345818666329323352022247744804459112322487988373186976122915518621306746772973268016817741314953965252823403713034328418341401533531417107354630278714741867539148768645638822417401086207223022037281541639016698143764276580817775797149073656713422793353148732210582932544813095011058916597007708847795232190335511771296787703160801191630406822464406950607740621280139604003046280494703087259557612618451902593658906110048635843938419991775976021210321134456361645585775474375592670852029983408369690989464937663689038984529771802068283714379153669329532954389604639663099384140507895421314071297868252317087023086185532644730042268285254586863064707713590477508291138531197301842032517498773967908296184503395012398717555541335840198361876720001840807151949522119706289078858317799852883922889454241616896338898109554677312654415374555082264104647844443640732895080084717411369255237314735653313459778644287716169297838657336018912166985610518560057601907160817569351032334806372341774855243660150656798568018171277598219412150448167284362705262021119080830640731112648631202213562473415538510857837627741455789439700046461390776289796224801382946511719050365164070770473301908349476750426789246247001778026797214921598725837882080017607353279719131308070144399012965955788285584992369324188744578538353205079332511656641575928734625618076988104085524775277525340742641440602042199947609127450346801248271005332112589170196866129085048960914727912630482949328971342908262573206067982424937657258776419605238325062192175180805088442235654110340557336604168662398804095752156059403657670674883948807118571487366366699586552410649832832781216931553316493125648856821999417971864997185753574001172053203035641497551224317360326372121882482891403513464821798031293479257942419915128533229199553745620398754671243926111696380228383320266330578228049500518631065292216369900413403343544458650475009993317539410228572747031522340928121782591045324719994218955114676766105444874663946512982393171665533936470447486068589238775631690762572630483454996301274871557900725966117452752271245970342423305297807494426217582506124128298574452189797829661465013209840598253542963887411910737972697285839472088589643554980939964470896664666050480157420408025216983752539162549725179353315192260768508165959635570399814072175258127304548308686468555956171950920578952123953358566220726498219056194537662522076674284390390411393876161859595686279152553589715730636362613956037544075060952032501102591424849721735280414403719296631206579127634864260394896906171567456216591249254667125386747380104351328455352126151913913418650659239578383450990921997312414424756743734059048874953655836633803558717796954084548797671285140177045453097936452611873676255591394102477296856379529721167235094386101373357787297135347893528037017696832013274156523969663894456608203176076338268460133996492765630021687564461124971941633797185828814907448609402516999870236473576507540848954526834846316247125326954166064774949767647555067264656258105172304598670882919443515004007630231760584464527347078880209636107745649418723830333781969724780081535418143140795527164459540996888446017531962814921037627032491802481662633891658233902465935039969775469846814430360356286759754557244874161434936143095656302904158930947165123327266352730901679538125375284528170699570364114696268096365247288886801202332689260323456303387666122393360130983936342207589427361181778585473037102752477902037117001363487346822758449400171768010360934990070363376428566030020091282117114945283318557802740321735098546628965348411625632697223524204119078549680347331086913210754029283468829463072766736076082752697397234797937542370639649116835261298981839915354474550417201891140740636158262453424688165660110741027898894643038672091392170585985069195840452938670197248287147858733515883922951223308785823219043760517739747721295208553391486780290967205945548069404163538547484540252746389128501252348544298885008089756487504754379315846561421925978944305458151165155807553024465455247201644043792817101845151475367919578870821044036593405573638473065576064682481698539184226000631590228076452926125481404333047105722552924934262859714944932536670338061319152113060510035704060736919960828171565712482614957805231277379200248590377664485754850064167194778204804092559759841478622635051839180990952479708935484386463314118991171780935346158250345880914467688371362723997229431333189827093166161421518894765756114979789487942547775107970910284082544611222712765810199770550040002258595619524118629274598695783316695661014349302573572819409721490147744082002500681028172025599248135524825359202024434910041944716772620812114892236533700377888218437564812129244901410874394283781227328556670910516966412552456301949850472403417852320074755401634436233854650564026610447071745291165686936289954448975010877309826629483253492109675747986644037174299282924895929852869626022455708019359716159440126517616412614670465654867066303913177936297689129543140392266261446915308081834372424224360317070978404858335082792337394156709479113160230067510339459338277457506577289422030247531594793133634614983529567183214633620292776535890013813913958003204490290714235340285512997336478861702776099483682683215396319331146727638274502981290658753143963651041934569165781949782916891861551871054484390981090712833889517361670247314805717643817505693909817534345168440776183159435297843986233714134896013751285650582375105511680752429725742804110913879357967127690073855816114604145653704732059409335348474414412392816786259482577321394649747525956292467893582393539334374994170722118211385694446439631561331485904734240818549712796924898612435118451095716475441263682475966784216763836488276976578232013692113344520391569190160938138369888958864012719763026886321060367121781812075171528880159633001755013286270920756268387112633278648318926430109267302436065395721764152526170466722024798854834855814170724627861184906401382265393391940258241614474324187270186027654820679761660516413123273609797666689060462943648222185706639486497956158028178062224012951613957171438138069516137754884394070075296453112161201990156335713888666786159805629537945542845060330739566146632380348445078960108055862838441425259832940625689956771328390924210468739542881895932582104236563397265824045250453457595849437353279168296493045658696026860174361885554155923412259358144550467897899867792168012830448411338239549070256218586452558607440243750601908108682970238525190098349854947898602198616299442640020026175319141553032073674056130158077568268499862671644376814648785344527312245746709035393850413497546884781050730395357147581837959847703467437801890204709526354260744560858776708291494597389615863876853750347463615187305418227019726773137867288104866022145938952206743681610480974002441525920133146067957406133389705225769339250299325959192105162937733691356480996516690871360148021588492799518162828394967855417642046286579998230551790532501572719001887847814562769398847513257636307569152822028506111702644059519764165807188587075738980012086799879708608846197531114356533095467344774239895338963564669070128689519714819539447014953649464850031013159077693746216902737253933560309295264561693925712632202242079044267088870080402860466342075240618439613736305669371960561391106682960001255465883362373371492037713093184439915017753558634545764105194810749377160570504568490338877468230328809465105649380356130952292902003410452276295215837661455313315072867892201888542063117670967052875078594266353003799662057926099121841852416409189509747640280313292941466787585342970021525069648337834593030538393916369580778628536300297856248474066246535647280897042161398418759369013603355130655550782128801716104432144136386698867230840965814808024346136328115157353743541833159409315294437154938706035322997788103418608489174107322292789906740468755396396458254341710413132341898059072450833209191565516227536396412807220796746011995233521082793798648379404351594875757566873401535867607216864488991927197376217967627637996546540826287349527883902233393274527850041652003145072815886525177630321745488616116121265458235275756846940135643183453175625942482216601642897759066423635642917643683747184181094840694051133037738790579770204731518878544993082345032850727188063941581524257554221369684969594348972353400114924329206138885600765999067907502901759124542716717947781576945547384340265224505899115141798928160476399782350530315028265618412655452378657058119147979796897849077183372548349913182838050174833319866216554542115403855313731658503118884344569974835247807609970799880313979970137128712370146382741926011733228638272004230966325939798278311875138524200214452019878679225501461058290198294597111861966769335961930552877100174462022231886370221193842470511149412037688411977411523655365942192612541865674258059243087577034273490072692839105168571466264954761845872967751452399201857840748670091310104952143109926210748997034590859615943744052786919659836774021544907698401270369857125746014265553477019343809345241888726253314966937553968464135931715408095653476238727897840196577306623674833787679454234650748707354945628843380218566633394532931326338915114545739055517137154082827571275789925571897791010427137048724816833927475568653586061497475048012561502021518625862739266446951530670773473624661188649960576556199321611471747951523140803011512735908228154136058885311023133207733338469996307225131067397746114505881298151412350685965214015430751530694684835926366902896363697941206177324152733720346176938272299556228701782165526079429755845300659593503249961977420510292386541960492075907296108304184684375662767087148084998771652932327749907553354792242123576934468466951561082236379462009098525769749988227750215586718814434926068676259253200234852269369459292433819560039191400350175663129330042970988722505784288974427790898024476916302182936524414276231311342247397486482083002543181091770429949458208341121363755948938011645186890990284701730787103320849204047684876050053092456059384818263819296817474120334724549745473238137084713225814738903144701644109664926114412882567374194849003173920538646627173312631295067685138195483052654279422902085775061520647987096768728585963314816374738177640705545358016029970355508514409248914867478797889819142443753536565940616382914377801370151249799455645397718243719944560141984703578688275321822486718373211530370257260772156010059817339986673677705766726406108786643585049979812972159623778894920606077147971698253897258423663053268582346978219110117569671483732320787191114339257065805146393945501907003859691559930858615965674897432952409816468098323099543366566803890354978121972820998558720646898230462186663814939905226041407092755807907476505454482628686650386946848798837739604741263450328349093044839945637118826308831810662921337878358394972287012165474773144524744972219239931750801801603328710131665815135542015745329643110271294291266894966166964481223202020322095849029826733522277988638619800733215063612831284504132165413700217370245114734067394210547708121952021481652367266088892215654431810226633391139672014101104888609960029690769161273122416720720398032256255324491462054191041143809845667018770569790764240767635589827136530149724060431529733435428848927873354374292643824235121892164868842027225406732759806268007049142285614231617920463751828367929840977461799244262714383516333971446789416046611853598772377705577416974596368807230982563172745294429304752350352969123916828631822873291216343472355206438598039325847767120264333689847398635476027757165873216094622887379906304685549834266325248413524937267142158896850349948343319307367655997699714242875116909041707014180297585505542246595536608300504578140388347257353875899942015145919164855903438409679631226500387589136096926000882920216177018874402091902318234052438408366700110332096393914459612939599491957688181868407807636333834251980725702497139168246040731832326938012618899784445999978273082897355380485746707552594822142621855963791693755285641646117425884780013644327991009476370807805918159778312629175639690455109474750380114858276649188981700586077207458684951600304122815299151041458543908534451134478009992994828269741778417297185104135319131661336289990006002481771419347072699481255198799719251338819540017452686564446539180361797101649482963069943664953678082258034606414937055730108688676140752917261213403011731798883680174725683715638864741244477139739546365706475857131857644050664260128209139750600690475751942724582674049145537630425956162145004950272741570206372820908847249923902216191300989307146716844588717116308365755767273157318547076560596362449651743669982778491361544551393644330612838728298061015167116133799096202727344869833795462452667363646421356689313339416178697498314884510325410790801816727398796247435124047944917356793768264433834881695644486358729387848435157823530518004893126276852386715708168428063323887581146076621125273561411099073345362356791660816921600097147880146775702856098560140817213922411304486608759055871177739352366014199985857741648153060535652612269802039036935789442017640779580847502205929091351820199902798005087726011294876684959349178412782565801384033301943926450070335820800688547780600831020137891249062459164265460130052950960276050191253816941232406467950928423199999496031416679250971687324024923144137857393432734153747585112582561853669082459912047887924294498811863330323416380856131898458444407583826890539444621837841109476484651513776760960622559404342715840231060922413405439342882963760876343788885969998493405571189911026735774512801142733259651367983454282629304532265011919076665676312085973760939699953392900523209313271876756684645966342136059424426100460701171380508857722776996350000982957631383843394492876554330698303546964281893848176592782541436839828954679726859066619722647435127670196738229197962320686959107045617295802811008661316450298889839147834617287758387097062533445558260064201091088219220141381235106477836265658611438411950058071663182057846381065355388806135303728330885731039321682961355876823042966996107686198282602088984847928451654412377473874687736708411340965691099533994783732413457138177175617757604885506348956994127440183898643608431043061468546815875964810989307108997744118626844101503117170196488794500967233693734375631783685538908508122151017966775163334976523986872440102640815085339542001918237758221134907729009729960726335077106603033072378115607222338621838082353522732681809248559111992424442763676922162187750102020798772262688688490848079455137266706191562366927582026355504110384531490100658834871764484455241752396055462466327088682973702801418779157701836254736785999660970965006128717584178902875295105867904987925906449013689906615289248097103295896293130371994500093468036432880238140781535901138508262819191926376299963877995483929120640168168986075322843833710477057328186617282354825584931398038308594570211629502151414508303891310196513170462612376564705045370804688438853924468579320066245355518844496934838634765941578629608555570564034031602317903652310973942778590470733401735272576776599218015020246154071717802434075656470819399544223911842977117643193247188684675735731110666825533425544974348659873808401801021823169322763237084964095006210647520778381572922806190129429382944437643213040600067239873346781962882609376908957676643555477205287615716313869720640700385263125508977957331146977382033526473107453175492652960251880921964164258892079544421043940870083688816609351623117940776117105981604998816894020813003373619281640218651403856643738205642094327686132835779965062676379375611825882689154723375434968801490483542738810590404625593850048453802245265295413001926674617902732630123516226941942259860637593350504750365697752869562411514709890986783263354072125594484881498950075870377664093742400942915179863694142798503793548565607328514204075979657126155427048719334563049312506038516046845411550375906173508126699111996490627903299934513655656673599059090890209388634814080390467756912254387707509587693261705424696563833284337005503286831891570847623232392612719414380967525694409919735370994898039023106539203512403987518633734845582102322393374624072234240409789402098428461647676518919290403664624448635995247847790485688430670327378850581519545433525290171521372372412657058171889250630831122642989544522639544429415480538885186301364821942319908477164916749246065166672091380189277316939476454033611646152009186603086118874496199026911518487995869020876571642588631764566289291234817076925284271497361006016907231418017684157184039850715914253815288088083843104084561486799513663426738974081850556892512422235801549967919753930342161703585063434402968317813277435078369730402143138416056419584719681738475557519068000325325876462100906274566836208349797513244436033412948217645672748393307532699097313167686521677712259349817028914662684303382688534676532995188493911206775378403013069136298975706313382774005989970294510889058793719687244179492920253151473010036290914680726133587748463595606125507809249528853534477448087911777266148681272202779315875903372382412761968588468763919461136991649523528130668301836062213426135451246733735059725742223454848454970080273003404196760108803442410750728358010033911431035651789561082222707074705721485725459662906634815570524206569962635247592013470612622906517621162872294823057225403641121064553528843384712701721825756429197394288625741204184780363873577255978152745583772382186953465055938167168727904388607160362259385152106920070140844077210822807403535759001479414076979579600558356312436144258364479337799368134358572895937262642664939935869089780592472723718800826160805049960616318027582433415098752976731707980598423535979467803179559874070628131701381833677106397682348325906119586402030684170152878501843785714118288733006000909980617700409625365989990219103514789327869891339534708362816328806269494342286871303320989401589603621086113372899950552710519891451968673333598732075791729616254422811236062178836868340693772958740548893944479470299415471189642403449652762480824837957854699295603022064662104012606803179923533884090823472190166303427526172540888769560824263718552581399107421082244019620620480440887540544706396150623999613671941950523958567417308996936952727562104855471331665228577789366612003278532278471860742528564766284162656091038136062999805359514080959595126027119593149612573036656545974134663560447592418601606974435131665795874332035185056196552787558128393425200944536614485250032044897780264238029327332730573691681097367374015890189942976925711495034622192069022422170598564268703834106089669201571030846970598797527769638580905110571322858489469322439747024203806743272884209731932508416671437367078375427370940591399483729371550454322613042711968393785264940840475193143557326714345088504217758290509963899277941109815400197587483786795205196810103318982237424680719638577615516662443720573776211678994206546555744352585853819715815879801937550765782094207727323443109940701685377271558131788029872613626973835802715828084119617663777680409960160904270613126978321807868971643960746035288946120154457784495056503121739734576968101182108318722907010308123199687790338627906155251846131520963680550928320835424917469525798892126766546081882541990658393221316752033474502964842533354724143598522296097831513929122342606207734845462753508762500929759991503340867941962297395745140546006131261112939675233747098804342098666443402211320142442484626906823653923463104126313407629382516190269160946713590338434158423192041424680621605895944576677838149575027772934187877659311937782086135376838168574110830294351954000717162900583761230896791237309843722851716684451888508561297170346037491551649208236329946033885110845887028519822048452765964487738006209087631258187131673229332710023486680837062368540455925443449859341178241640368513736368445977683341070390549595688579051680339111083332695517283405051826410510540679166338898276133544516685612164978372214996136589844145207042331886593014450291498566755087416652928110812980992643000987418099601237045352411942976614684129873290188342847690496768777380733895455590274606768080843279284624467877300480707504431753669528018068157091431118861864006701876023871212601388512139609792801172888911558074775627020191883833590767847646704276498863651653148268287664242601716826230706959188793104189659750449597244351375083167152459463918411860231700836057190365516497167121124721933679842391619760099629892294372835236306717623311422028922974407651448080762319043063608200332534064455970593035867782898886625111009509950020906401776985634592093095514297248124506398926273526193290783424394360272544201710703337007551033294417726075652571215427939529846898614087123089041509922772673703997065770035311368841936578069791343106468407348777599731678835635357146638001963778430925437965132406499530908107651983673974572374241640384361085712901692806133379582988333834499434476984572776020341370186112445932418154103989794735959237288347138329257654305203523680278937493728022668975803620192942738140011860219895677784727444917556849299401823889058827002139490424304390577716039492224396740616051677681609873760471646032803844039125336518567567509687291119698156720187628518498570517047511111156209900378694382835543785645998032061456452807810272219060619461416578166129935894685851870102084405908382177766992882619603807862694587869848233143443865987301746402583857088240476515280377449476521526062147740102105936046218425223024146215869183608203044235582149472994684681823833888465328978032381871651340925161929636073494700631190495122392918225569264340047351731717702151896346635947785466038587728058844522652035827751785592302484800663581705311501471486775470465370441003745924642975202228345527620905223381230674690875333433507482782251843314715423183987002065095842489416208879708464977102561583744049951709775002430147104068588236199203229094846865419511140820873824516720109634298891917574515210043874933857687781761542311338081418769937876297015147898251885210936101991084325897603626241424794932749494322825423800684353211579401270945605972243019127080748091982586241117368250066836292870110973293410171158350961104747912685905979414584242281688820541361567212466237372630637892104059409247139111572031938823870375610492521768967371239811812722820067475416786889348812922218688481570850646349696937574539718347479308443676251908582590084553656145061781509830902393525974340216390273263700053271207824070985223373195344144054496176424995319619459871638897110021042312697372950942523762626282805951934060485466917536615891639409843043853056851014515917063222022073964865914661536421695483199585586224494261982552450931217627597252051448152763604958516542172081371526828195072631609581411769635327046971389666604875218691640518198103716022813820000927054774886683446957830133186033236885243291759936860719518678989070988685558560779990552503950388169878609822527228640544298805917511027190436543850737753152620234897664792779324786263645202144038988147853856368362173090352799945223926552571375176766592942135650074664489719260547845874118947796050345304472328730592505243920506313453483226909715759643613101464359994821316066169729121976404963154736893331510393403769760202655301324135338610037835154910036562646023771792329664992077111672744463338542304295059315941433329316910751423916132393653295625205394273089983424459935832617232739228462386174201275696256261032426453871355699399377340935913400958455762564258967144771268202038735573800231386482183369931984969059901799085506909447241009908803190952132952353214314702250870370364882900003985215785306444723726849966675584670998039518595937752944649762780058717528774697960124659146215903065660901891117253283012926883195982012845074863616765889565470353100412918345604415093013405827674089207320829679795427243859642229999562721112902559961388578540990781529652160985911775680583675991877707906342570728960058169125068662976007267505924730406101665770217980824734579084585691607622918849174084153678103250006203580180987736262261849821712953971138255450507867237909003930163585344800659750006388014593803073447598917353105664866764990976603803177611169785284185391235382062163418833049072827804838221425212904541450954191575651880303055120467198621584896457931065857823236235465701224135560084189824185265640539288767596353293942624960384967796049405525681006234078642740824314474184874983380174185053202348345945862976162490618629269039596269232777830801466904270801220052439992612709951901116749318135042785014249785227903240703709694211315219659018054191030570198898521435933293645890116666301301626371974206984452607959327266813799797063917015980182112186002695694618349086240858545394457083196870552156730070951059074634797037397290079188461913018917325451742485727826718050482828494227673676975282255235838098481394372846987691016381107797235726182404295104706824589896925153979212313831988165780779744795636963325863724828731629045498610487190185020552528386051051038435430974409822909772763243435072887591991551924318253922491553678401538736253739706035869627440175358941946268252535774090233850735923838371161471731232675779379356592980099069623867560614906246568297288393866606872051798317166364235461871355990613425060278439678808794444546157023306405869282021562203539142224820525691292123406992707281089596207990526168187131099488297906839383861662789942179110516556905751070701316347408769368126071023710372174282722600591280234828530481033001378848042114341500374254733079369925451249456531693236806773837624960041085506582641537991332946222916978949899012513416678611384937702066971049019958973206331312930041914413245621794103568910633766330991541112308495930209235629424814054828468832384658996884955816907659058978797184523182383723856320552895233830956477644766785853351016573730894663721637228509032017303719219381660698802289074937145167226116849091114443459533477577836288497659758413971868447923077317908763155304949601047987287907344709649137525651450630959151698929203966638876103008643034845592769003710738745127032633652241852999867122413227643850141057949536763478064647961642130530441881217336484644412436909270342156885291626283308976676181956958656465509789220324640807609155566607550855647346320120082077428538714058570943590038346572218841728103602196011531138510963377244863624222610221182942120026587421939235572135266027861269034821749193524148146993138103198113811464824745227507701819889038055914697429114883560259639867823789791614861006130526203745512574960234831584326880683054774580765857909613667685011989864306018784662680772084976670773089568139548395950250911583085442716519986115171709697785452096266420236316667594913658852507321569741957306000088917397313063054496306727291796203684430865110742046691278620940911640950566138113134073607122547035258221141356749480303267312895591817917250645543784585238879973250969475429716394275178027236742342694942872891832874476529529765927887006963644645402028801584105981638725741951363948343639629426519988448720398284870195025305281566080483877272455624368798949132150059216822305214076925585236518852496846306898981330710703745040434264569217891373479792288484312893526271630349642092850386426234455446278908746728140396704564653166904975660281348289054773013229776146879729291979012865271591980475750223890894890757315345730685032854860695855504410047072301028436979229069738262396579638565439706729544094427369706059409522150159514869165970009457388847013225557913980153960759049135330628267505455419758731931280854140938934205042261375534559053281091623961421522761330232829390158233869020906038360384060388469858829806982937718492058545479956602997596808526316771239754454249292374237345739925476736959212535682596885319452601578689323244973351304037029673681287662783078741120556033802392085091113612992070318037896029079937371478380299265781267323371178337843427292893464839164799660912531778745071338251290889685399322698930933914990293167199895783539787623861708159553034649587228512991541299911385199704513283613564848667025707046579751878400045054907322445568538394989815596287618756139275242458183079301332292819797334075531870066054597742829960379060941446486521394944968545293276996361561464564054089539104599865588012841290692907950632507557956900260107434825724250892758168361228718202818755452738851231283133067628978224666004442666753099211163889109023296709434239229906205961366169896529384315637478291775627350823723756486432310196406868386446581111917458594471541008351407918707447697886621775893209178741896832264635030639625156146317408458964754337639938205242591144571681012514537815122045843416047668273978959796711284118447844186011788682062188644704332393019554960637871783304669960707467958726251810231245680037322347388651884409711753044125705353967188264298842241613938099599072085419306502888993334210392929178092374414926766292402658917949454529911258496431739847728789636036920991235469595324568621036015046935616571763182662431928336298687429160683787751225203897754262871310460317207603769601185234938971368097560477692046246060425321975090182332987244704350568164708510727628507972770959950756351004500458975602224098614679131238195335967800367421620722669970002518950493323313641367633732372527214940670535706786021461209898350755886701543359181430233195620370489039893435514498019070166900325581285599190646381833972019898658798097412673365715766887984710614221355361788380740541934126535103280038622801907975477352020238207245727129133027813789178905674083985055225936640089629623395617400216509669375095154726674147859233560576925247102398619150567999112767888682548497834104863057079089983395607959167321586747205074277455262375037066608403748837058691891712924016904132149330286495417524250716352249716477544146166862761711212940766017096353261744041448620280955654893095225624719051598811696422102657238992256822553811266909506151152314174825704522429301963791495497423840065646898141769230048734869109146485016807716289071209283169826411350270863845727476049936470882478622243204452079160304636777281728150685517689137707228407799136393240995646824431367919512902724516334617563949461990099551660689769226586362504625381004719811877039334640699897233522288820189117471720315881067892573834378621436177774136893559119399916155378175403682024180646296812954970521867890280783202221448989301101956519930453621019084036893804678185800222210400848079507728279563106121499071428113682568124076556009160773558152803765827927634579500048215054162657722713015335011518469720564708006218077408554064268978686247109328254614302947038836199098969994490702766352517040034529645267550068597867161565699429556083368131571647803067394661956540817292271595864325068074956428502004282898321897595455572208158955162623461060118277710031419041515351667993075082767198545126553683790286303679273114241092641082613979625429459382666542325285731854323014034087812500935643756997534362972982058178702497232872670359090890820003343215958474522175299797283752281775925296980930863232645318993272858904074543730414647915535746353721395726813602364655078010985374852374632381300395291278981957791025629776158547627754980293542591146348894679551852987397157485874379706386796969358668387411700397119061465523362525319494986586332003968762773676080538904614158683440991290308085707245136954281524557279573519244831804813290717545230734706547076808620510537779827983132355812547459968629392782480315889888647968974537035113646526143659386998220718771817480636147656487224127291574040550574192842315310387844523460586107863638935352770607058034870212277160921516446566469601924732960294426537029085467110089621887466603519401272629420517424741545600577657758880234808817535892685523653169386241429237038369161497451151901215945030743519171828862905766569263396835727879645433621633043631000050966655817053908947428606904743314769365570260890846415008717559936320722959746719695529424221549209842978050999696643288120404322910713155921034803821048337320289127528701317600344229467594271684064490867235604503624438304883298784508176032713717855071633427897075485237954914938515948173744173564776377761921123050951387399759831459775344388806997274249526335212629974450142129863260942874140478367146262944717746010881879860845397404460159491046105895032291527633150816648191885773658150510869041060619634870965188543912407084082991882844458658512626474881908590302624766068815464227949825120799892453637975651357305847188667957580723327951515422648431696735263977908554362357806399886532854637522432380461558524358210302690253031015418864959737419475296594519281579792302588119048923153580379859242770206163711032218190940804280692763584488669753425730885043044090191169367426372305685393515629037489076992892648597475587790372634345467879312079931323767525327960729150179770022565581656461804523733527184724310712769518660739994691744952036516438058003146482529678631283174364445652675909468820165231567130367390915610522314430584313073675896432055228122823997079979879038938074354233370777984461918880577924834567889268799875435180712592375131542855448178133209447143480064960032228359954114390933844749065165802800678523399231113264891248410463537815221686278002024987345382078582094701485589564333913057081752218708402062841593620199728820236479571049592665804724734220945634583041806427958829542080974289667156865700204257169118436900479097421656222044168620780216789336563737396994457985331550477830285055635453967386573211716153597314151070032547242184860436207951588237908738469960572264686180523726629110793681193930651384085719510824339905065326147265198156410390681697140832590155993983508773647188526326846012834765846320639302215661350554954421541599752858818745605416742268578584794718885605030186571291072465621395618691703137764076812400004464251918930702004524930260650766453837346367859390006398203918230596114647171222104299261226225094951587098985924910504215705057034993795770754519112438288837242013727042172060845538229054555456667575067088726542893157763181777247170204218104968095723491751767523002747368470390820011594491588510168099038936264404227467011914651296964329795376213449379210671166832892071940485621004053222248560002197959130637168541206492684071015140569010193585072374113697424348873102169851257867677696600333903826600600923103201610885773270087097852343320366042425905462586353629249040545470788757013476808059282389973692756621533397048875906765037822425729543062796452276105508310986779019238341490115120730810242398913185817598026138526484783920815125529381901410765781301039554147625296334111089686456680678767166885700902063655737178710286812799003267425112585880284777350725589258205825098871577691165897933031767718685270431444324872274719026908598912244240498456010615394634339226912234497436687450162960373672861181891931768343378736484513768133208122706714610688259909724082993576784858707189830991853120655000171993458951913191004338977035100973597743174763256201448764182682040845404880022232922373288457640259776986442168689391812251060672033038241559075418296609638378135137234739179498008506776431564421067487011874026096075759574081265941509381213976571974210347076981816491029438191021928706115959827411924728464251426354050417069082590575025372597767105224357579468205075114013268001367620467310082639897338964291909480271953118858185065383235824587466321629781914968800913471222346724930069695416352210896365484912806006058830259873835064149203753227942057740462662044621942423391259372456526767583339833633370187199749020879214559633375130596713080165365171828739258419882077949902037802160115462434667438375619679206543541880775929645446769361548347684763759534941270523977404030483297281764737374112347313511388490491345958652011769822185994684497042741436069683804882342666347073830000485899011620913643284668434611333491238589470078047408644751632160805911137531144330148081884147929237843755790059628496391310483806594731806335132080786206355615632657727473761667224981922425679736268349989089806841372895939273663959637464539222104626686578572676372798777685311724976586231158920004910834312278511386744632185188045159947890204162031722387865895232024257821501791694827319866095040113263106359262085885495624795163370013015398979561062076199723302701088487855932809076888385303324388392545502159581201763595884896903702648398966894341553680197231526171071929386804174114953098500258229741901113446543302489295046259871192136648152340751074565244298301749894333868885648677459803209354181566108846651343641218788836449119980304349972704607242349524907171440201626711758509722523559490672349043913037437309125166603026039704441190839323257060173600446490841643397530611771753534124466640204234259686020304092388243009064608739611183369604329714571440801884360142915871461616116419644325481557801685192356157972154493807375452369645672611037556208538037055152294903045789787980678739128087254659865535364258847261835829984525034404120034094887096175069024051751768566285421674375958763085750807330022434030779403401654289519406981986735880462415573779226372654069389920600140458087529646618456146218532886764235952287942626578112905822741615049332657982449837673435335500416846487728511737880245762958163373923006593868032058384585705463638739372285712255474612789273787213519348664820484509408202000624713448995036901392009738563594411533420793445763912370650257355542877542835422104493464880980658392386766978204519801769260667245804949439234720805112455399809295135080664843018518561324964679653066708487587958451688112647604795991599185944535189066421357903354103064109367286381428530075816186986422300458297184225523309881838566929200723640814036870453282424591114375601856468857417527161215077815143265686943449868264154711138186553273726144297425931435322660749615944435052508228744351397263506655686719915574323048216389985116924488033025545557512564264459568905333600555615209590300263189154060196548447879550249255876800216945143578998643490556574227383095073462684166187971486351138695135043328133691099784716158852257962977534198769867339992719990217283451281094272846754133956740442886676062265439291003104027056277669069562332146749689663082644364641360695593405939254361629501161798927626174738897223237379327609245355293213004521725673297850488421009939998377559095375303332260972802038443735026897618563930069462880124220550252885554688279812660564841509180933854744099058972842963835228626123553102781969447624434242514936947710397652579637494486117612715844651984013530372051090128303391672727891842256022570189836837696178653148391917916602860477420528774496398556335160604893946040816504938653322137929245910569137673321130514148241260865843232181894885802079959269022363288707717366183630022410517598777173817939031596061794625236267314065740064178014099793435651019759943699438127251493593470566825206033044606947445602879395578539072070505184592070279904192789377893547258130573503584039536039625316611601942723001339259427943447132669531138920843979077870782236512402636640788563900038428599871237978348010959048551252840523713789420419603737808453897607252458050238187972857869332555291539074902161972030264965358583534416869480331944446706653792679043732652914139964710651311403199025811157522329806463344706199970799241619137907389617991654889017322299791773792991365179647776103772059953237474358865986840753296371528751594816353306382046575565982277609235383368231722926846215509314817172673967466265391091756583121987264330290826673299883314660470275406769849834441450046088602361845587479916228825429447256679760778197738899204823068917238768614581657281759261909140922263986724456719168939750225656944634103527433619604104904379583574062309004345629285656060621048927990626462343989157347946879919165021242773844998721182151551374145835362085133090467733520470461650899019963699162006480589013680734668500755302977006539778690838498292842758005485541826085019399190100274854443949831899648729827092799610498546750694566128680480264955683446002686066596611071970121386429456544099786038511673882328400682616701723882936786632803088690317046573223487471953709532526156572498274339663964913471333478868819197784138309645527106451019664950602969567169321390013958087015470613563310994664260523613867123875860001383699038556321704766644865986203113323297354752850416537498028251148247913085894016227443986224216733303829632676628531409780890650344422688998754376612931939391126899670147054866052328904034575680163663764267793295886579036115066587973287290627637361078510023238291811806276606506515352208886074213697122222791330260108582894147842148135730579685067901434488789373712879962291770379121062901613618806759227155975442913207734013034747950975568356739468153779983541500728687636678743964994843622882695674467013136575906411979627218038822861863073714967486075737300420228856842742679759470900811092846579831186032789377421918485443228615716762246218127852714745422969773508708290838415613824886572166666740995306793690926397788508269644232006441712079660917751331054242348727911954253655681543021532067331962102473490852363935820381442063293408662346714028569110684788601286780862775848097020178090036370142032570338285651202584947080597284156987833648193540988374508115656954183741191833310225984814704583983363712985265166977078010049397649733285064690959551980076514079556311446381481211372802161890004100901674113569175831576436876205767332101643394379487298003105189079167790146740066662892999533691021313107679081008982290999500773171937703082429367228398940424860400722135660088655110499517811911259383414595371638826880728150461799514862141175692657450398941031732773290568652061998090312687382891864543773563772221492149204884385755114289602006406396602437865627482404791123671842094144427744669073595711259366113745460248289172587692777508097282042926838982695598031857027225472023398594026312158099553679844245875148296842543639955306362275962973058284304401152061709531740561479991991508276025897792286855786550711439709444192763640047237515563836247061133612105147551843751779074104589819838749161543657384225015175083111925687393415575321007199686370950880340737512487978423339401303263470085334907830278202471477395447014646532361304140808779643786719613717695826199892956998315464589368143950744215775860865331982245706574083210388517155762579759936698166461441772677249836331855847980227459231323738911099006137612722555223846232008988291751338336046308540531217347584036164209773129610758077656214181205157686421537163783161159406289270367528656470271939147257821275944930499795483401352854132387738474416527544782728649899434783297524683439526604615549353082008775832123979448061121802059408041661379236226042759399496278275656292076708976227624119797667051118680149559423727432918996041038562683295119558258014962955283614252361179528520236068761218376027065115248061125870904079090309040527460741687694991610033366537612387571516047687710375348079174912725969451707759415284958020898556139841371589403846819937585182898606206364714127017168828934746141093908983864100647455995367661992962228039295160813379644343113467566671259570734038114178093775212203171560515498720652671663478732223881276916933011392625509793709568674900529655907915446629602910936446249643685409658333322388631013764405200126705036673515869955623452487817275448623050782098013009518484399006113549925291290955806683002775877880873526953952270520726368403938210699815289866730788401277153002247022122947179024178144454899965939031185667543177069604882073205843946674874355516772579333911439671519455274794716973422363153962952819176522474428336370935131290874299485150365641486481049284807883165396182684468200933657787012568313902814824303533201244012057807374808385973787234452746906948451924863701883187248044296947164482633421580229188552617558382958771601307833310163583626402816516403436471145388333642106501698931647636229072723821376794403092425812443303575620305202507243076641193092128018369891126982708361076870747896623002738065427125909693471071035164760137746721963180061117802184645916518170744263479871658394411419806652880875985804169339719466717082962727550527410613826851060447446072183464072570118373554356180449455963450975769866218519694354961155130647558672653923197101339682742859967601983053252035029116770524084961176167548724614878297861996125657850839618527296850523243880318437190322125004944099584554811137439244036035952492326027585287312436620877402562512003566619085452969565706966814324406493783234154453288669732327802536499299838489557257739542714421409938161529098043849679830182650103531724650874436067762237886674156139805057265350654364387409160538198187171938259312420593826261262989047038458843620327946833894364024184427537854420062944314488982165627493164530587583294137919882601768540709610361246028549793908082317867352894108065572676878506376398309775541940156134408522781733684234231037769472817024897410490843779140140220672162322822954998844716244287159843708541319055334368455854259070874190369277354841938490812578503509150492925601183581771754017399466536860546085990523053635568958178432086314950125295644697949176417032409330482554665498104883885687529194547256637343206997331669746865927707185300370628955999918030467842133926071643109153013419111878174614790724482161129052862510999216225530698826311525186206772255978421502441606695683884793905015584279917633220272605980613270422212914622521374821862168063465257562356276817295380091993835422112648480710212466057148141837082565419297570900784883354174869354524650401590274758798523357673995947866379489268673903848144314740469729372646222793822120512048391504633013081272867658468020410283048263956629245374106272366185716628423822467137645482595115328608710092115486382154660397704798442115878804117594071875732059490756547894693200029663654659405870942480925898928552247335687448452033986574388798186494106868019544270377112234347516810621192706908830485091513222606520656346932459910901641554935976030294135966784666046750517435630168293639351819346848991891656049602056657859779823797617005796975688392556100208859669653862942422594634524824904423769526752928416047529123384826829263979424555142554278242780892406983382358117439834149238782707009950746111232466598593825531771413844348860850894770667374219348994779899277999854129321245145833406286912587663245895649846210550605089390055968377034187383345486407513106656201439881097750806477849359859637052480892627128555081596568227946630513220538217834574237910234772607392770566332749944401955146282995328391234007663621789811149214344243728004934258727961874028240515949766987341521383024732497309987170081127258326241804556347713003681361379781249310370899962823216296036310696924016878921869540515233340079772087568133940581937221588995764431283261431286563872787419789095018568890808694152006290959264998024281678466044820315157655828602349544787604456803544789873861464369973325728726795299135641110338769425763868484507089742357108035584144962934801201059359886304587602492937221119146823410360439345353233929199090085610958776327519098163254887269412727102237198060957390703107744968689775866145875736008198114139897144235440999623101367458051533814569122311158329183992462695133117195145632962952564784397543510693738574048386565648241011034022910031506812623389977435926982494941098457733468908349770048780318666094849939263881842869000341518586128885607957433612017842000263416425289463539032840692119808675039332464663386031130470557622913222668163304023716605322668146771472439673212500008087371542741828475410049281163434334073627590143879828840845875295132163104326910293672704715666412865180394964544024913339838728768222227357434414341108598685410581039323798731819312317722553323936894247496529995933643543116930332607879371639726811822074085459404755236309343116425152423007471702484611869647720814554346964476115248270517773171912906331857585984391121204547290707654261099698503117742370540177163420178498686644603340767265292793828873231552219930805005111748350457781114106604962066752728540973927731499036072073602534532064857154726295081254460576727264504673504465592020698399557460271898738437714421685331037876211114972707022233055346561268256176442692992630361238006253878285168001932579650600694650734345255441167865114776396317918006510077341243652291517603422743947365137510508944717586773101826878768551924555083105817460119496753758674834531095856577692407707689476992140375197678646518950959604700244587928327521632487714612877897371974419675094064811558110202909457760397973853259798281907571943419322097173898244362148418897297908253206555594000429604608476553879817238707097561917964586302254375767184610852745091095568296448278727891145421353916809366484766936022570352835987160579098409597504590388020777740185770193367146327246795916645032524086632581703279195233094287158173221082048603766320694165146915998550476752758222921355418979614727462088113382625258708862181445286183304556786514446229769016359921271227578722121142278084068259870347106576870263113074055807119401811647224949009539444345005080653570128846246188560211488958013162046898685800991226545880023831526816589819399246082182433416785459195698315904469052484384881333320719376006152958775365054449623272377266834034041520235524360506172502064580601363167681885483072111879340323477287666586980781030141511418235489314442409450581258334944924989679741454693449121743982436955390830445231468046498287293970071034746867362715222551062913223766883258598038439181589128757741330316044362985418844019928946238624660157372438740192963451639143356078449226998555677420045752783413438624164901818940435622912540266327019889658260116222399363069121295005312321221242203065744391261490627486195831852160248054009354935392934843027477595293603239843665778469495200489569571106619020933484497125324209135425243560925800855434324624914116789215269955765586862592430523278115149080069850106719379942517422304191913452462990998969411229506943103674477789538291117916929705323876042049539281983475532850860142803975894789767392324379915718505352371555382524002325755033788480174278579469710852294843726114180455988940610367340631853381614386398187878932071926318265011163246025966650768110017660882150976972660204443402622287175525407286742428939148914737244613137368220873291597551016431810114721791518381051335905402729481680489729258733956243243936421581288090729755138388354117828018852652383096879832820642398374150689534913275704067503981579572475388409885487852416423006239991079719285771738234140721351347647883089741198252207704434464531300313295602063902975835176392316803018270402707793251555693197194358299924911020855786760226134127740456654013990563065609572138833299453432659092230190343769692846431540206823554814330011953310961725041565952269049484596414070716343934666372767399171434070706297529105388185205911815349131202741774058430282655461848320081133918695151432588882167787170442405995172882902449904136343137777521103942885996647106340389733845326842554222584498945160983374855211326103337421203125454530111436983896262627834881350775369879447879822682521572416718882634653233179836802510785571550161998350177525150511740674194613953847948810611078438765234546114882959805608372041103864054448441259010459301902552522910613998883703480018728438769875546864906006310989211572462616871720878048603516494824872286614855536082077597697892173006672334586921750675032161483522097452525767702806935915090804390668538095618108071722821232155237617603506510469936266902347085921897856581730952752235314920937247688719952748402616139277414112412074104579812296178581664815859363096786472065461928727247204691846958385470951727763502629632177580287675649881879341331188356842808143922667925594706497878776329763253161203494849667914521571753168477324298487801327980902592003690676198468841543727863451066217422188551180334415745321337824487666858365507178225929889611526817410611137889478365782531571905043443236334140211618769066846147697007317390123403480290840008414993132719264483050931635635761024932864649061942955269455802042075865377639218602659188413124888020395568897402318058185063693328450426053062414833299990369849135823807163798470990081231889172314208779662584092844901222317397957622656401991173124431488198294430181329315205785454556514466091653728203679111966046598281153989313383004762269074801812670915987704879259244335834440766633510607216220379473438004318226250124333291463836555939572379777409380364437711572429032191932465967136591103493131004164997174525323465038338828670869730113473421327365599642661661113125543822166654537186318920931813446615988460285985955637079089284401377102561652389223933391595828686256379071227548154272819224250659871357559222241233550719807154831679301661433475343920086158196410969948517602116889982713734419250134958224762972582266742714048619638027075361285484570407163065532925917211301884436500229432622914195550653397569517473960166904145786117850259348133334352251644787493922297723552110621383010194854127614734200301716739759969035389425166832996899694306360021732232999499897675257856995910173744812357793206967290341775226793857741228546636696777452638344393434461431435383775806127257930584919305586097874413365155621799173240111108044725435233204061334140725194209883300469695932394355506343754116732738601008236928470461322929148981411717474880897336136048107810858467587966905941621424619368126294029655909508330806085764887498734364612204914759111329384384356576279558474395583246571721209197330227409324997466527153006621698302618781122439567889619805151919470814012425143853533694940159699498441673729627938936179083786805492424559342815792534234268531742965090059840124818239850475390629674601675063542261533851464324579183945392711151175530831945885959369665789858857365235408830524357847765888728838225338317120146607388697291331431360147849257551346253900781982671458134177461654332155243616473948328041278870991101258429156758866169816090630844682308670331420553878635013405069873138279106266815039299682171460306214467965776733180249207410649749145746303133424623337675275376604342345282547902785850149650150308644565394638327943430891121604154626710163753757779974892648395961981757640414120687120057211759568291964867938946263309841671957511658335601897470469318275934353240137993753101305053105246621127792150363442566889958330044911545473787841967458677079859091288674777472991021928458385859569348063806245290916059564948923602557634362094056130068200513971782631455319269217181329211155535461156273000058257202592645316036078284289874430316512154548377413568073183923608529875135809657725573331358902090337345691911175659922928880450863779557295454607857981349156368066284615242230012220446969287903643480620272930157308934017552992154659703206227934488987666145232086320748181034871866281166828916925718001920882060539472115254396350886783796361901422011807250020165915309649532131199750805881359387013956296314958243572684172643023735327220089352710309463886229738557632430582160189255112120727333942505728768724135289113725742459544642965610929659579186644791385162311119963841537104318107786993246508575181082019525198018110074090337032989006713496561930985269257201804169161063014353650473179724509938913219905024187198733209251753943448387660737421727150255317593091113117066628579924432088305411823969097370462959561188421871195891403379803042874040157624139860005896125979801284328734579060208212407795145890871485995033427472264491620806661230031580389511842153674844227571022142464483431109570316972075384644639629584636595095716255172413186004024074221296342153480466550401434991744360866288620323779799868227825355480068929780675307941947823181312986965914830467603371556755376115590545531574059157330838847013118402441071053956209146034338133948494420405760781922852261653934007141057739813440497127535956470893891831002225940488890150697448262733116476240223989949286452628681338969052419671782089730013219387313084982692524878979327870091075666352962791069926139716101152652525717962520575194355897992266284462702179830177443085355052564009609674141016262664980779696545098716842052746787669775651701454824725940434998763587648523916728873436570626059555169301658134512120838469167809210544124852772507523437252868089275743322303559840281069050968891450580148445893246244574229195589651604237401832815212968596937967558351935630271099181804777763391087372484434371714728429886966369128418001805964253428229418834976433626691247041291290435643319991101496805800693843022120013203704260043338469035431537318893922007291991137077865369759497149529902925681790209082048612874144167198358842004785866285108393444239102568002599802862914378669423452619967713520433575539713142316565180710200275559437917571055634293400464258040463177940648807791094128936026831103473893953274664588405827300746363180290540256514703735671315558225947240561127133060213020618097364206766286487572047436287881727094847437095126149408221715927884254767910215657084796428460759241195572850067480842244326560233175446497316230265807867373974531091818222088116075034605937151346234172466065686411333471387469527275795117064605004828406962197831051898195945726918006789335589070469281581511048154631454798164136380109621774971388528088704787861443237329395073445547737135756834502634345523868567439839828615145138435185078907886772467529467622188236245042810646480982784861902412450319279964420687407322964994045315642768304208031407378347964779560371906903961757664904155875334920173301766825038145392814680883938966203901124115063388378822318486571799705344642983004778254249927184450572106991078980092157451319795441807408550758014823948009692976541980830164087785426252399614949429912380037166603650399716144909176889287001806768026765378144260326687334641766287794884502700648675952783246503936131424739551324185970486501716840282325657501170785367782990251264690676384053786623560971536917987407668229034867632525089571832333839293250100541455030407645227441525749648646842468347208405360130162606072457109352091218431642002334295364626001180324877857782379843591815071672192941582710833363789020158004999802815490765466299022770882461261645108279031629927417183123934606086611815864545476261193115173373083764656884993639560895985681896310002341166690247387854710270407391225824003731902002215579435239483535249720844758896241930218010128525519415254067523404497964119713127720616783182700155220242950991770479052535519866322971368106216573036658135443377978539219108178728483667897691679328300882532361610149767113939018961131665088224085620793029413507921829732046302615869860709104448936660851123350576808550282029450983508782402487364346165334134294364109244136805366685032870865315311445579783852136218990563509318803308315068822167623770932527393019848380689188062660406458115699137920259193692328747819594717177073187496557747424866319202293109785272232067011615213103171490822788392201753875127704065634345513444757497902800152926387354902524806112488981880172273758307267097654168700203423489931001747529771381400158827482066973250407207222412989504803523401620912292688643887748620558529490506885033287747585463336593483784508381099403471840479066924054765539505012778440941707161474457958329086513418918658876986472563920840073261480172377873932913854638942480376529297740907189455707057692736233055303418083602788996300365471587714135813860200658120914902303114712101016038080617868154045788286350845435396026247590567933547449738863837704942328204494841185977675526557336043209179695456508831040197553864725122073723954536233552990843429061938234654687791951356487532150359502800898638264702460284463852769862759156230004132409603542935239575044871262728857291238589676752631350384392656332428014219298285271898417433659076331124418750224126033546884618758880204104036203864914324099971468239381696538821531364289934483553372394743947272573180222205411934080977372841518268301262154440112720448512246583154359150383895635712586386168054533047427385591007086735857506910027857600509583670354506932195804560442937849961914036710749502950871695058427125955099158076218415656532453708425039613589270878435698791549062058170003702764742085409223862808859758928806950494743539041275885973848444792461332833674736160684539370606853539729580976941247838734403403961523087908972250753926626593949580513518172697840049071681034135030163799765009575109610713711705029104303687760913097372592574801909139115640904221462741184177600955799127473337400091787195270377318958173934702678965128612332452581048789678505363821699718368117879262692611585989033547762769083395293876601478610283978312144723247396847044285699411657132713605102841801165043574226503675551144993286462377511677379945014548066080652547969644580537322061740846785162711874302802075854550625158955529290401841118433050442140955192183844045295742942687968207220745349279068237214307531855189787675507839244615962478739407740581138717277453099904053883943868951664106220294523517051457343167672734192343971204167941700084535096340890099465197808506730106254721072372732246118346058935130506713519184093663437317426399562150289991813139743168949994456490155596374514228507329953649861896326187054248405795915513234796821962144387108325745402476555018273523545461587212677031770027385340326296516869059035056511840708487001112842238754604402424676436904346452055394671167445755189084444503270962022148144749038338885360135705511467874660958395923154662000970166418273705520961469197914608102286422867473700064226292236710433587333925407587798898526726653363325123585070531707106463126507489039745622854827176683472947172997262959442324139417378063696768976767441291645400744485587704863050045880616872582681237304286360611667050935336978459564632671721876973060380247841662900785443832076852292405710562035602038894042824610701980467077715752356978445675167281440138378463989527010947620358337605794014580606740007935403863706219134528706430530631635346092814765337917714238914269026686606241725551373322879498078446641937877486427005038600190383308869328740747392779036829565161423797226860468487512354875966958494317067127569058539242757158355062112321739900958520863505307727606410359470907081280224392235138537121672242357299284959686350581402081738650628930592099755251300976081061763211024431983462972612886549728843082261588332805199235557742354227646304732818491061903000337337067067214286444471588555080788683278001556839323419760719619813015557397504342447840259480234132769844227001381328660293437031879690868783752479858391144649838016142458741746599128227325870389167105570354937878612825841983134894067844526476171190833806620106677547900198698011160955447130736660288462156276297222682609308473322244135940986564599417669138761568394433094137573556539296585138405468041458916266608371075693108000860867386346085007174840275133896085851526428910592396898878235065931283439945611417702975994437481130024850413267188854450177760219212230308317868717684728529462421183307786336860744324778597034634978858683115657694870798275220855449281214497470300369077061519778285619060044242656743055755921202659549140094322284655670422253864947177162607771472556990052598909673992271487451698643507225305893956454722992453110763566400360146617472066912988200279169347962134967368240473393541484399950859898349566962890049447995705976933623042981717358535608366550524070690733532511701738316396028248517021491496189761691063487116305546243364586823456159851176637443877736748647812136164436322753580853419124062136003363400758868958369404585628893179272451747859718550126242642548858315354690671386672595730897663673134036216255579290467411592104537411375949519163699154309703140587983336234922958931772681156439161053097653452136002431381550651386752170743415400792436674868147590975682287427376215010191860852599805473668551079637623414915636878942945300478803415928980578477316589031927962003831410951493709461337081274296923071184865207678814225184214235521231507194466745534227721884218827515337822240508493330327875001845314362457239628449078869060727525521381033346583428043901142826952162982215155888905628726834696597855931734700507992355467101873820291973316776900573427452079326590628946820942773473310961259871134845783377444583408484153202771958605004295323334289149408283283394476793071634326122114692913127665457067658329363828100193775492136596794657566258425165256293065188194636118984492267706738525466446232944485857068755645724015032528899144536178847349048461522493650360139466115983303197914821353969818574792314674451057961122480091940816594991330938814741155501639543106371423532813490319844167687556014181268131780068820453039652862743877524136050578032739910307816594566931424483711402169773193733419217561939959701012810513942033197217685444620532942836166997079040315063710500000834756635187235506899849210353132217075672534109072734470903536895459287834922925130154103976338167365688814099277117899988279811815029154547610212785117182501898243660522891999813076939004111054078574879021479627024778280570165056908667126800789892955268299793212379725892333825297165503496624091763909100442997822587871029162431262442663578489944930202506863258865863969072867001093805881012613712336222437063856732211145543397877145653585071761533387555156724064983680848756965090882921589876759578343889181502079935032824010994757332991426703668909565395618106497431621202665387396609860182383506964326891283414016313164438606536081779660999092860426309057907567551385736679952221449195524181440231986287826494164234482482083095897781020461922580314743659176877515783548681587646997853739256957711930078708470926752811158475966838546846453838581584412014359692921611718813893130763264746013351278939555160112079646311507649651391404083528672572757825145941956218111180042768741854038344977664473584692139915137234545642421851689129959016324815777835222406397830822120922556786224552257959848909190467982190400577536237171359588281428144677581636423781179396839558932669734100214748574461045068064556551099081535673358120148202933012486020173679083207784432056362593937188546387248828895960127163509665164648786825614382934947628137010534561779811381404799622154120913475676757141221226636938748448483751501406887957133760170998527632349952188311331361279811677111467610797874225753422574053314562190910943688747546237260440869516107656113258481771727693743127235811755367361220504925544484678882528048848783345843976430521536486432626933762534888299869798780161020617827191040721972276152462359563606366862765016585892231815039826300613864544686788595194635270889570943937151932486814553707154897469141697032910871358256722892117990490969086491345413879063690360345524662693388007713318262701299944348770319988665054312775712047788186304592111636307270066873544348685123010654705163614723836918577258484350234300700982652129716260185434082439931481224450653668962175320686164198957047426858075744768247863949312298872351973239811821385264838242950306639916672850145384783531763852374636542200897905635280020139663189701284784828091749947411392054583042826510888547932907549615186920269468425194336007531180457622027508066393126990458028287095124312607458401243285002771108838115016057403130070626175552521565445103019239878906449238473357528566837724371470420293689999033992411295256740793137093376744971326669617677102063545886425051414071236304082962413018322537746289298028159793061536949633766535579910770956487646032792046418484476954443317550052268397790530327555725121807926391833224383871841771172244458212929625296451768758215155997624264399260306337782089598274980681412776895301655234757527415611862031082227186867556748412086401822358851246177516292177951275021581136117945204620252176198826579749751733211250599746201467114262733714840373701028775943293089951807581550557532240776511445378327894079143156513327549228387456576205634881119278244835956829849917788608310679038248711628577051476655929928921244246316193173497111391213846280153718466712950200370987760134506658900239364269584237538628897335991129240211049380912586831732289446717850560056394230295538057757439768141659868292046880120005355334217195327765997448033207556891149785391605639164353625286505606622181773939604432341936864318268570052616542638140418087707659007335036806349160345488184161603570832997573857528279683059832178096964084752903570757236789753915842913126529771392406202943104055620306624712602941016760814164023469858798833351048321692270879823942500894569033608905369061614181236150147455983125748535029400368324548923341711707855983632772892779831312126569136651828713045355265561540852140465036727041476162979918750218571205908996370816844621328652482277287489568882657004037365623109298873616877293368659559821066354412912678002180030063369216964483028228580384388988201271825261306925677306788100357094946532777505344654534883287786680030310200723888064672213378912225986446862790957443136535255307230076732631048692532070638985348268583496765878010053033809051837351585868111978681862486118440716471347532935697595238485733321798971924446718229963282965875029405399884627528796315285569344655018410611938620573285218113563861312781248587675423143386607075935662786448086620856785930096523504961664360607326656316269377778897323918993346074318629061065439139182859543525700159911532525837015172129551955717403101585368122625802592134441274779806246420896228261003732520773278941154348053487431530303382018437512034272096982833034722927830984476149272616936954901347088583128517931034351956241381563010848616674584944897060101627224797173590544544189121925555832006115870448455436987460681219904012460991775319356205748848789508983955552513581037196838572909554231323486763754996550864485168811527272695641740727582075747669510397045304378478123286102375987128003184093056707626800806747496746307593434916536184542507459706621479085480070265039594409793662924837925510973007563249474242728061579533877937170139217331396139623949866525574081052710099389726254921464981621998088378940426094050175296943351447829900457601845531596477589069225322978003149728694558128377421941098773308658558908442896088254486623482039913723721298716586983029197496815353741284028137104811401306106345382277104046587790313745674761542355677610405120375484919991534793266774284402422179653072766178286352987147976603481989103233903767331787683195276680256765286972421675630239847983286801281125937189875511062004435646002505708163673404416038129730659471351791008412805859618180967697669094573205046145529295784374068218890894071891827689812784739319596067944695919839412246956129886947013182016792160355173450739052164422679661341391656663460143535108252694752620259150547909300850140692424919460316670935526930584729470802305817370683576861625732835245906181668599442902810011003752191422968436323972677502987248809861239607358006608366351724075379160926017998193162135768738814522560008132435117884716365967447095436293950789973639537438696953529991948488597015490934769938050531167048034735444506413666137593549402943947934505861738523818657315853169833703987236155397156917844513197221619576003096763900911946998859354736661006182181422720222629659735546683154691527192760953936932582343309656641929142531278137620167288121181225746773857763423966086543669794784453754219505907512915847444615077678698299076171460418666402716228290794175812920025037357985960670859090582455268037875381515877123853295325640702630174594462166226220475167420542397247811634239001205803635730597460734951940061242110537870507175115561114522643567383717779548009423247568893534330352000572834541876721555290546054662949136351149462243457572490805768103381599449457268344246412460532632024230893974482125335168513360065633501956360138547654487852968754261283458415281991374660501261182966516080555285454769272009727155678795565002941151158648053079718964689348860253039354912540264952838285281351045251001333081113275354997745859190793432708208883146257786016542385643484128753415232393295262462766146112338112385093841967246855461589576579251396895916400641109549871067355663755118791378234389746678787771967075574119181952902465868105392646411589611132154604206016821903953323030088074017782253082198346965055756034671627074109699187058597412391047190563035613319130107140029092426694595821040618253337142195192361800913555046138457375390002038582870363037034297763923688564964045753427352991996916679197799403723441539648738151959446537883757554714254933095779762157941656646256508962105935914356601958085066570142584614545205567632289737031757356560175717946310154230150655179425596955135893323428547947947043749656387919352518795331648308426347001683176734793756896563693943026644932471732411436366756222043921585444529675465747120074224893457254571916740566427967712761338089482832524446323960864338164214280381670025891473871426403399609451970813406233391453996194966292719383305652068041595167982894870064621587867237642711052224375458086950387953880570994566711084127306932602854969933103507440714052913652574156637053394916598910648890082420880886099999795667828036021525946142213286947486062875797418685260661418006066967535225717194513315407276609883947965936524345536191549209024328540485569329037558303108375170236185498294542846265292149295392258876630765583634812248295096677497686660704422686760263029676853573585027631840457190657119437328741698643447333785483930115989967078408223593266675599479133823701901871222906305721826627878396550254866709352444507583120562043603510752534313452361254569966176004578564011736125609196156815809833081792962229589810970966415387418616672925611160398594680610090222993088353535386269790678350608273261334853398548071879323772393671788031126192326980867311037621388044894475956309487931500548474560680431168919934230763181459982819588159799818364202479302967442329535717726370930090430156822125899043921494319655003946173329616652784312445150103186897807063034833143703460340841815040417644602042527442608415105612871094705719281008255857442640850782484520623064924580631712578598264568349315287638824251887570103764366904287678081290440342161473604450017917204362705004198602229231082807896522260493294359271029718103167651943593871338676056169024163851169312933813197805274509654947815718657945935759142950033179973093547329219593975983873885899229865279522192886444424625357299370048183956659700803442430313921606315492975380683390170617628855210366643931962969236979106613883614528931814725349269589562472440109778704445852741598286502387848079673500864042689031335772821383444656940567632922667095879653923599321823785068645046206142464841555928047704206348533508613578720416389910653939318657602105780908581210421044852848910970028388306954442577371977556646940031879660082436374241664141620125380018084913150082201545769387122676121005278584325412089338052042719870075461472157640013006172068573043819963418493266440837464953894586561563941774686662163143321043761334241159343116340743944818972621690272084870982181638826358448660883795121350444506574234237127251004838362654295392637025117808883518667815168465739007684084408685115156943387140550093417030566869501290395788677027003248542905603528529704670790073975655845994488213657197412151621916988592114554737148174174877772784717618961669588319226349098290082743822192149445493276736098565492440623309818344235562935733991680656657056217343351370069140157834409570113713399278932163239464066338534813907236167992733769184030988674130063956604510520797062452073209635453418414314035063771669959962790532846849328513875098445588846467552106750321504552329804639159496988907908987202291991817986768322463657123733212008618907823189204149294680147486977436748498210743937733392264680924480078782435582732193878952125712957970027621695542659464981022307018073011197945544457155748718975142697535052570328284092244029459813589906807810646753389494455844419330654902509656878512638660478379853289263558437293349914752035673609501383918567136013392297609930485156222884748615930966038327439673556440381118183008626676119012798801062230086600021271203977059739488641253844659573558748052819932272088318546695679404505803755424643014729228906324883951674722341576496541444274725432465811887709685787355393262716050525453474575374785724498546177276866032759622517148354785681151951171194590044117524400997072900310690501682589104616423716605556289880911769003613478730701434848141208181147146783275078554118106096268596222288112783698530383960143267698106759836344176761805466806906726902121945872497157449676455622632452431596711197527175914652799241542091287694598815620450229283188575478579289335184555597143894924111486597463823126418627992018027118465310249525344152858199746016006050067350557126228686928656908652878357415577697901752416669825994604605864110020605868696927210778297949209710000089924335724061700649695825297380592612332946577627552420245044240098702764090078574995764244822107741065474157750552499774373786774160855332752347810604520905989115781256770452792012262972233625686584342574258879463077353876923782334616095195176063168013735361455814803213322468043620844479977136947526340372228518526952671218543801230778406819867311191049019819959761081924202626064420118805538616456786304502425813990427432714839951083931217376355331154166771627503021190347817691929868185473926404202581891019155272651812597083026417804867545538064151728131454487793074155900416951634362193652500739677408190129706277396113338218483220553861725386394645142265215737323097824803354188790925408131842116233690336171443581534917665897402092263793635803206855048101142430079796925185767590073231294013717735461802170919973117300027724024336395115600225596088792492146040230612747524416934183414003615807519354774204141285881987742949785403590778080403981433461409433481582390167333816724705516722434775373317654565547751763241704685295705021263608399258843444834411339367448650453638100803858517660812475826709155589363298638398953551946474105038514658585882124304846637178213132955413722507733314769889300825771112761312418634903348017680157612890375249492358196994578655193865750283037015778868205928476675587726846383760446568388481789236550508815834455989924183378324202554227557010678363062567364745069228203693335090513039795399985078088609364709185731805057097473071371096988133088692615109715306050117856714062520622757350643342513666560843188638553287015918093360293724779796308747364263922230876098536903523671267019071303997783608380772618953069240878765831575714324541229418089459291891711798718380717985150647730806986331400696843094093156415468406045485507093879710179683001247161996044277125690687246550923701089082657548991395972917619507023143013061916757344298026129029851936359077979509643466111684105065255693759521301139512448712387383673281490639188366231342680924674324575174302413485946739240118243907572762734941795245074288285889881829413692836285102601724764285921217274027529239912319239637104459879203384894085213614886192372240452318536576027512815253506839496689393454847935567002898529341931225924643124420441774398224166949708065933252622105881977055435852371129720721264538784231852158185849672385866182984786060082667665794782613039851824997610754436784160336141856754744738421384773088039229959950438764459058174092113481560529619612965827108327964766690913648961429500603036562896635950669112138536668311771320490475471777288118913004998627362220004146063008464925074617294828298788081958524092223081448102627458651237467778222465479350846625258831854572975120703695815303311159104491383258228122285641723987961565746893965312950619871515806416115294090779744799702577655800327355029999282692744217122326294716753385956891536770798382898034601274877344172213234250530334446667092190016888656840709231505821267059147654294211255748563667421112389765747221812895847538833856493995220676365595312015047100220603525074020335751259864296933576437432530311806725133864359247660632868297000834167291123111061506170714168119276810612738287005366491593265491504814823900350745630909809684051399423721938623665402510833413369012514154705856582729892778220511503546207418866797364690175076434803772725257733264285521255903340862062659773770149055680005153154545884877911750315969555406629437596227017189670079991092746656128516108078227061843577738725857089815572943494990848206801281944783837613680338957644268596916491815859705378858686474276924323755916768015279661293193407158834811479646747731723331686575377170042477395573214739893624413413150436088321326252060070867859027977350814947362214517605592346044506404466227860530321539714819587570924437700905625764185978802413013876096740914295677896634104999294644837387125973069908934255440638552485274088541328632492217324634356107757511298530857939187222480549790234179735647988247770240552504018444437717188601986704354129309316467098737662516132157582962539761717155355756665779871644146107801472821883629884683853306853653930568102471842143266959359191048124658941920041204008345697035330279706189680434196267858239064992583759177477975594541998507447105140066314431853256526606845073464036235070518576028099528275280235949251161852622502038849666094673143685733718351844747787914779524870504500077740232905840156747656160985862526255940458979273865354467992859714305436662849722879008044484469863185258303727424363817662849920092189447571259384448944497829551213847367199488201940579947891907552099453430444074294014099018779134787039476760061497539474425767139787603649966463667302408826867865414785459364617226171714676079573923044546375374480117462086101769156462633048495922828996415354801398127515773238881162730726178385845231071171835749504510222641878307326974469161022504384713332748994008575185763563097686931709284746789135803195778723050142363159367297283717910751859338558052787864201640569486360330593557789473083556615554180613311314592086893196670761381511464154244423929677160943996375751001943880072317943252098411863110093505447807731347839857944591908583410931083593486887752720633725429435839298556456960599410862218334419317418854689952534944691183480980946504800594190886899257102381002988087874547730728780523025657809087008097594750001884325861504217424364243479825078554197500661439770362975748543518082652045213092822757144235050905011481307247787557016783113556360079074206190641771571947644885139825387762320821715583889896592318641222048897469105969051811058563107603602932458883204316548922350484250843102017735816677843629984784509210027555018203595055906196406647831868147354532122627349685521463376522620589289389526813444315768650975860714110155845820725530103292283553861954831133443623651200854620861872596906009252063602136395388862833059716510524180369180752867531804533517261297209386138702669633814920656000165878370293201017990240627912951631185102394376156182091121024464659635859032000765350899751496566367496141040936756613054882536559664824703058461911579102809364372122326520803837071351978325164624704888324616218223427898614570242503962802274292484086866964431678502957923849420548857267340660561542033856387926223445277283980708316785308479189957823843373347919190808251769983078261290431396522096002330146350271063037627947664131585125209171662388356132386597101119287402500008544309814719213969138024802448870030046610783808305844326733000423369291572886250148081838850785690659486957731047591054088601967131655388003133445931626124454482257568989642733874880055404548261597730647160516259696923559930438727477856035732827552026100897130079918617458040434635320436412170650489287212462337566159860230239599500182547007150021564550820697241483221008685517115760946921353827745447049969132811079991801603801510008086959498818127734639428147379424658875735872441141978920610296516788811883513484194327113273635325697294200619365284163998919740857083564092120949897955497748885073044448957149502967946669987431679493272164821915124343825527560457602463605221083742615940622964095216261139639170455860898326021405483146367867254960030367089366785234114046787618577040564210034586314941196906998437943547422935391735001658040826386308729587928433050780525767498522817400898005676167323227190792537553373245376942934982258112820017873558855324563117288863014026992982696247594403987820914195258849261191630404213350570116612277707081882095651206035473814134281617743892901860766400191783861067505258447444223883690968834416433891054891921681924242606764359434755372661575096874684068443429169767906699876834222944469603536426389138512690710152842948692254126622229090130215928635486436334842077569962390294595319878734936222454528625051007374351785111051623915145044067506778021660705630699907667824848842287079566603639457000478707068818036111172271494442936813510639712755382352519116992515896139836426114609719037672827369853321923826030488903455821105185582860148374523590901812265724511069729831106453255053979823239510919784656245272730576003579183729433031866656817424697981845915230940962317481567883233159164612624937585966665956575448480061405930947373724523654169802485510215656083426910116428866411332047219811721190660677745759379850666164405883985202491299399850160452751480720113180995473221406637698712733017736845660885854369994875788205251284165915887244218373466164853676236235550542925825350202527911682613233284430497014086142703138836820355886703809987362453720486846807781106353955788911351423474980122010099359728972592880745521963597371987931912067917322164831987213220202678527190120557277824867150449072850113930843126550917008865709245019697360339008861222318715009369879972981658339709028035281040755898505037501598471542784132372395586553015306195781113063300310321965878539411229244677584302985472959350796406232119489287291025777639342995326549768167003130857293149138859489379244658112365870032500785152700534178605230296312302965173975001216875024358481218227995821198420273024707807885059519900412851589756197240483839043570236840050292912043231109920546851041425515192852614255678801551029233497732834459773986655776794008028744409605464182744477191722545832745118987505690500666510256612979580126824921185136420026149674503138269686477897378024293403644812019457244941491697738225424535701430123614115417217235855419211744911229481702789554825078818133975701036534630814789842453254781348100416668251672631805234825152606862467223136769188686395821897775298704090028583040778292018863833215355994307022480963672137413480132435849010741998589439045810497487508062027659382507855164922334366333768327981498728908324723235910345428105948211320869755909116394484941741542579544361477805240897535129836528624581539439616826966841934513234115608862912595972495962719667215436498292297795997868911910918876938575254520223238782502912445066916222707472910076816689497111042666391863087383111719367073373112700989045742009660744306936476450911683960909851745264230927843235131652590327874475547296148524068370874492974369739293208289609532960566464212769158589329094859033744473488105650403492395902829601339547539397624675770576211701915888081893657331694792550622424825162480875384031122504912792576125822301864234556349637877002167426367888843248688305845906698997235991933904689369441285862675890305382894231537071176677424872534546350000585607428318921140707950496270254814943263139071426446827129111797857804688924119185184850341216710030411074804702182999832678398005830861254662136419053762473204742191236320057026128838920444357547619018580533087408906463667950444893934304651628886726881223838351779664315021054156932361165356356446214503612233555651301409645837891864508736382453248833691469531931405732623187736393622451698612108585940205134866111892108872112129734909368044987135644515231048832513494517938413069793900207974538312149690496170005427040060821481862046698120717383564021939550347444701574544444581408669686193641183036319179660819067536344821181538652230961624532056332402243742336241244063124029792795145607537799211601079237122537032372059862346765123114464238341395909435911307702699886564582406176973083995780488809916061389913977820954786995294313387799579561810001484802068443193154579665526319281717370351995416823073477994118266959857548357057825995990341153299051279401614118042624459356272068464856656989222580227950890572097172698566786304981853427853702076095813562250330248857885400339790537611628410320380364899842955719616909026400450893910259183065654090529576711260082992606595355815620516692787468700912695602530664298187548999572172593566885239768014157517979114567943781102827181238387432955592111620526284587325131685060293707464389217592865399444871501097630478208278030460080694148399661329708188003946517370009073168706912040308198897041684182878783615676915567004529976902250165545528711137396856852370788711215130639449495937301630664511688236352657258094947733532744096944545110278232668291531095144955122702152177316559608044306231475567218657818755670886665544740422257661422735994882277285831476119348674809392242816060398650062086011904620718684426498335214346560902750049664725926957963846251412411851274556948699995863025965167827823377585277395082781795381110770824431683820879524039872185836014208276449169711220170379028827417485214343732914073685183437301257710503512359337572382883619064824174272053531437566956458728474376457734464306072030379827808456608441752266254504165897323441923815524627847792793178429063866459373390461154790628663072343411566538604194488803712669754393193228000484323065055839676579831225365883880556211287373739530859137511897012170461524012947241692933651034445430161586707407361560405780013170661679017560845445352312442140258989023750035398117063852486558143069211707857818079832231776975863118505290834395971219892645018771589049492093651111241063352910725534309765358440667064806905176710960531978360140997334204084412435690523526772099298481882450853835931515487304433730413209559198308657427397419807068510757545891168054446024394657570442182552754136242835429808002002289286028961583473568264209231166312020274944749097702757688573205281001216043422130859953870367132683425088691627935924360444348275299680345923732907661915063502494932701956964593482675352680312400403373160457353721989146605843781178230736628766844479731927162384772157388615094892086077750250792709754638242169238113259081304217304114362719906117336667497453597384120064176176951581059968974370070479189001432540630987887354723496477540845923933857344634013594475654966199959466011987421364290815116181436375497030666702454692232437293533629874464352738165711384745678346085316547520281814282845009459483075655712567148552065793632231201084548643567252522296162101683508715357906294911980218375620624655964600882495441071635951913145779380653586641514272331844252903579233869761823558433376895739915903576960493772893316213995721858410196565812311806618494540211040743493131002096850225228041943686441872172122089247263945191794259449267016018708726697267185048509837859314694277238875983517271513661483624284063259677191716699458262416885001908942999434798253271995669502067682917978259516081700160969064009964847592764032178932134739416086055529640603899019786616008108712810059353603046906480954762592792792970139469520940403982948861956815889337677698652497062283658545013700399783986310491774643580497793888223116546437210661296720386653956049563318510109116758466859254864145085789476371509979022126297544040709602806493421753865175446254876265972084384697619862697046856314134625558378032743090015668847806921477015995638614343763709913852106484317701625562812773473017562768714841488188646468540176974030439566066732414291634939839402064200616443665139323266001526600973482355575143736866005353002496403079310241191099031408952160320162299900491862108250489370497086112605180755299614468768555810644141001942159917942382362785329619308715085936887515919859305490999583548659673647897454370870904604548750578292171524640658126418722351246846192204783892845698432156407999908431136468968074600358978172933682967025159320539965937864887926089136782007971216442973756924625334973032687083047829285230807197368854171601929392613282666878068898472353573709895691338144658564020980016470058485182886138541192097937933287617192447553111449087717559722120519756835026674444245116825711204124127488090041593190307443737266376230225227573068605755862931358002264854852403954889848745824126446915227833683661718215491681969775470317364338862752199447462815546808456367234996747354332526895853553889944665132249184318851340465562365217067370260072197064870533131125188450112078296185838108733152073905063551704883620503302831629374342299548006974213268721120570972863013560393959725805889976676814009981368731109075575529191982310346267889187706801961085922655289514239907730180338057247405643827918294943261062721723689929197310104895984079592947767352475039048947469948700234466974572359419588570394741415412856923937623774640064180466997876256117061278437141303668252571651191822559483434948172658038980842857210489845802105781330794004724045299870338424086698566464835181783688560711977739127830424931517966860156234042858482627204808469357871737034005865555154148258217319670792400834057667851071932759847496359808588525811781893369980280163606147298691255638627061328136098006777973949339656073834658237078032168627612149568662584371783819308156091127424637847773500814650333509813705038249798639250597502058661590783410237858599819806606030783499086414281886850005056323439717209045398472437666104246244307947269662715609292928729319319353287587676041979565099518139920039837298766072018019843944649488033281035317535318460449964692287393120136895546836700413952269137134147257004716006399821087791698946572289646329076275467350972921806430358533639868914136985291390277379514698664589667431289490109199060630939904006491086622407911524092951849845284962305060106177115295763374972570601249972834897806501149934217581522762117991109470656186519864265716924086435823412246526899282575374403070747875356763868196225492230396951076834182489639258832541748349905718132831582961336687381508691882095167380199557225232798832159094392613950394852005659499172105060924278807587319921827254835897390684840027936209313771207254271788337459655549926999227813578243465993176617505426320853643751443386124084475926195149703076092278211177766739698531977386234268912905252547838051462075480660215207228707740244996914430527296544988720613425367010611200204741619514876249016848614818873166085574975051049556770267195528406615486491246892918204357980522273413550208678873121010397748525601863722763289327153087900603952576270649156934943647661246331558838946676775296922019475227922289583161592051766048634886436194186828767599296236384045566543005441314487300090303664795408103215647323997156549347066741874304453685327152185434952192241589913986570701218315933031826666956523030111078550934848614431652013061619437815692513162442970502460280246334024972993142355643905138545881295419297840869542204289243074848267092048574869336278310902381752252649658566006766051059733930628501317827428361511161973981739217851944550298967048946637156994197114171155009103463927253902360934835754670351442176387603374816873238045300198682899530347829829498069898086229509212181996595822788211438494516984460591179417675328237229333344385713622256353220330296947871435708706010449415455618113659848832520407574393052008593930461813355937200388307519326013591383071123587489085127754739078098736843373426938527411367268906550618249825803814426435421261891184756887993542843900847270971446135804651979027384907908568746974645945742196905918210024586397113189338278248734733452047259831458557370421111703511487741683733186753368155842934642467381227148176761184431641320906400927492368733840772344474237758177291476132124806972206630426116469800861157383275653024375574759802088782493763375057752362983335951159030722428502412194504497487656853716937930617372052852008008326934365826388534323360332120014051178945188915159148906029031834985107021235753457013357668793833837926759630312984507549175731528194330678668416465190992787614414461781486166844968780078655264098212557713913879537281578144857895945763914143662984471695678113890291691380706879992776218661373826929989562767605617779451973613891257907992188240627015838556185751812021057004368926253261043458043202055732775313441430005645792601707676119960478468638671742797688116056787828179686299701122603663383717124352650580539355065066182272715920755856157256954172050970178347932338321795612698973000321810302184842747110304475339523594067893496258288143919071815008872630985708576262605666120049593247361442843501015281399368558551068159886756654358586893417828478659219709217646749601720158717859000612122000012131322108185147833729704110924363659432723180462637528334900782295052831040449862505043305110370272105634244056980336933449458216795834256444079543269043131301461065824527622498648693107548428328009446278092752149277891890669358099567783971506689143168213451493024280109064748367757547337261062976716778355227662703927007407140955837436382355156229406951853017797533144127974444316984184032278663194248027787017439420714038235437057929510452821513949445996746521080754807250635995353669408012767216852155163035410206785668817975426423297844695642632052927712703080961843401394148763661775304614049175655189817273320380242612896209205623132390313253048941089679389108512592392208347811164401289770032801866973362350828819989235036786027410411020228549607920116546685769820726195148355497844184217410944133374960829722315910831974248036759340287060672941783848054066573235942992438507641178240687415688539639849928520191068822127458845105966105449377369484235029449139108719179709987281662717398434082306544435788339003483120176410200812451535970991442408891736188654612872084231228195330680715937591955773002192177850875422768956536087069715639351100835154702465233558952895436753816213156298200309896741965675028535326875073965570912194500572726481526750547305503675663262938746667343414552383364266459128539584187556468289931407910859093321271254915817300211423045754488328503723171850609291908021034146201981988880185201447210098426817405048951109765631411512990208249464365683936547105853608122111843731407531438739199748790692695009072721090016464567557870958639187573431804622967339809448494253324920718009648248170793049537429226243952290925261576131902201118126766749145169560842052949938362026741840619436703772288171532389721320708427586728290626096606370894846281626141278121483208435332512384124177021686204234702213250652787949857756721724006298618111445827050491313555189335769569536829285366147944528279027023584445727582118144713894656033098854611024029663653955181675929382753357113221793635191643997615937750989526725799160455816067717991745325243204010911457480525975452784223339518482048638596446121473352288498895938024288596326682988636067341482960961820587639787687547193407350402249498928163301202659383376317746280071117505126203277939454801800240109839485400206385627763022961993205099280930329484030201970160488071916549881868508263538531948563905842417646415455455495578980373562823503697993402385774116865448457166996828032954775998926291770332897438875300265646001744352984738479950894926906568931909271636089966828255345597135440471971795753774690338437143683922221581478103856928218012188402121845961642436842755813408867960646841889159152277106761078634576577257829766423328498418581085131122786203027532701746751174241302443373839866154378959004735992377974453692935717898020366239865445753691266503861211238506780516480385940565039401271150139919133600531827611565014878035674539703807370299419560122276386844964238636013954132334534724389790688462152283399071582907875782049351970824660278129507258717007885665464572922039534380213070358167019393724941624916175914551792036576668569221719680856613988028193413406614111306877650189737568734758242747217187979498532670137027613388156725644859582082376223505197322322864806894908793683396592343750393415591302686450182287476351199005472314157396508259808711346369096579499656398487492504970127703402235155364653926978480437253333146995768361243596475366953949647894149626527690946523927093931294223315703868682745292120809658672212213619346854698572047943815410972982562560313464376891145294951382857238952340748859354360343900241013506283589067078187889297206268132309649386057206736778014342238321548156920090342339680698618370409875937540702172240789073534110092581720973520560308428106601754757269179357420054414450783780372849195262125463773707813616813229358492724794494211964851171466799196384407941944318261599761540758331460479649647224880813091258864288291769925038733887742634985875061836526061358146129972778691417650271851519424912548847919124127225363175629040867624585123009124322926902334321856627239397826243078346991850841846457911641214190733202546345462582608552371536730929206689577420250177417835810291020013703947365991024503479678135651725316684165311909864298036604977440096032151727705606122535670189205942384265473678248189047226380753177524250388388994132880436700504146011959601497002536712038415747034714547530347433507603057323900757297450942568036556132040349989558893714367360579309120668068179863763364831876173028523548049317368541364045420513776692598057944599015164278571906155318736080629876539855804912538303017623776274417541575065253923941754966447582246630844480493042797554273385908056711219236457421144507906221342174883077981027987286325450999194159120531469440932279755577160116179968777056052620480065102835431665872964031719881781615176352361038320030196362775015028874996570371530683176072381249883269954767874713673768332499873468275834311012250350032087894604486345717975219704833787591779973125858919204488274758647503568141594701259254399638948069927348466562508634875988472631396802257273741924229176823337156972099679625338527027965719819423802615588435629433852117319027722093824649039194752022488631365312547886576332966971952165316345897541424672562087855039786023349920940798031615779192449278215081653793432959800196906895994785658627583226764599513234339399443667876941753880436337719531304447472084931882999955718093840829419459796254334500758478530568850000343226466405226613319214931014196368931773074978981854070903986492853823741443723938162970441499255580619204758138671734694229880690046045013999790331421189007516193190008454942095285376786365870985103037277161093009315440052973646498040338896827944536763894135499200829222133630609683331224356555157316034313007066524012710018858110297491948111595025602411158738949613251227044021288115097282154701438187791651235920342560228985006378185858200784143614380346333586068020781883743998203807009632000729227644949886766599136240321709274122099757283848093999052376259262870139121249532099733911548572975470327351433435059239853772685141352724233175251873359071383652384975320191717805306109121493767847254600220192740504726620647584844812380665010699899284618199441025137297896507802385471244760389114101114308548492763760143474717246088048365964716645942701622668680445284794516271733770253406611721940838113069767941037068741908402592290083271814307504169141441182268581908481368507100138722832788362391715385314128734010040150714461271436352474955578677584491900400075547202389935570211748506255652736174406329237599973991376155573160549269174329683956261906178386676697134645394333890790719774380054754561953182407954521194638445777306188995414773122357178432475621283802945339031395157855604705185435697157710583096127809342725963167792942101778589845240914902305591361810040260089983491099147018611833923217088349125754584422125628913959158525151658830337388278174056390792566854636437493543034555128144248300132402003758058196037613296588565090839400155193283554176857705597060178219234225147023819394827214527206587794459778181410052143526934187468541405330659894517897546561176219331736985776590274614131280258119005696313604201354866878643225097375261122797350120757206694995833987718594213611772176593635740834963850803325661736700968013222438426317278350848370834644901079624992408712349720381053615631784641258078195196761586248085544092296389760917312901089194577494817783772405626344503586186639912628855675630097498355668508518698624792743432812134461590305052305957584892338503869791466579401366164558459208101060538549916323554498062394364223706641431817894746931191266080346120046830130699950427794301045897351850516411292846401062851451549354287346325490928919422805025912309166919251975414026894905942423712921019712327147022623683921343165872522313184410450007880822380783746138468857106150218055444093045913324921250650741186649869389963902486321969440692388762273401983550739000244210155907263320109790732221081386015896977413950029660084240087392571962796054425272414722839879820443457636325941929914852494146873387830254748302855779368707425319776753668424866680515832400502028007639649431373595332350692831302458745870896076170143661341238655140749219660419680171701491532235662351788530381224997214753921092266765883028552139478106837882428587603977716447096943731965286132363340880003703617654015193469743767751606075108822953286295338398021597868829275735548941167568054525207901321230545056466632867530226671647514204777231737152655530238160392640758152643749449633515193605826963490035578578367848872529747701707683334866349029143985924192239283034288067222897417170483360065707020375062833871636742550153986674156307062943117959180914600972872602709206102304658590350610877599863827412514572327301418569921712695486975633775234115712760979321898027613807830525008512989308872261574130679838810540847649957496963422517111927432910584999574479445365419819192368240168520191407063455781478514450995679916233506962144080285212696432019050618646378934120554494329119032315819762592064752794557486864767330800737081265140043044952701776732589054585179403329966366398523024469256970258971170808889335951005561909135843109199419680098647653408618369160430345210362587906955373881876228524538119743740679613244505364275772079163375074487952976379750590966765510197603562494919309345709188847114756933619266566550234360387320112460563780253779964730860895503359588400615911668312395985995430757034179862214798308684920089150140888854404092250312631328766880612658365655796001794859032346258890664189269902956938565370268679782200701496326228797934193060686850157087713790506883888302262331912139567877503775699088568881573622862323841517705957879879598638936795682125307337335986246375992761589826854691443044248384018185323768670856084513385405482081234103616273491424758488523043744307171640706837644038672543631272639525458399586886384718422448884619128084872118359602653024838746102260965036844310390085087974879791339815957576342610393752681524418286431134571974797923563167897737362246657374692882043684584494833976714858194587585248103912462569166178692177650172218672327327587050778212906545179391336842599323117109517918364319062981517499511646585356813293963026870136219924252251217991494403664024338135127098571095775252963021313705911925653681954481317096176904729906376556304592674251666504972883740946318587888235655345006570076756562877290470305431652998809552144425376612031292289546398119314879578109270471561627159110885350613668231897336001797197283305473388137536649886800140639632729253551384056854882892581657300991411839931944457875486857591720647516494333523646107973658572636213472695202166461503400468772394342688883918946574365765377911349928526905343248875191372824737722692289118207154657641408511867677562670789761584974108502008822479699232427220325159248276503582180679435994529992764198753161695586461621122962567708325146589582115272447662890185092970798682255504199282690063958818457061678700903375177447914298507977195584838315545505192697496263059807236501474845198965574564070514665826932229906322702643341695355317020336649092273368584704498664123726647254618323995323531149655755281014297741673709077934457957990146398759445643817616719591302328518106384239333937939804072318536620276306872031020530030484457137219078984224861206028331439827329528895619816516992387714553608860773810551732365761701568787238451991555219888548042364382379727246478185992459019863397143761153363989987888496740367905783140886068963704488642232314931398837053504769403906365789842889855407735389342818833794659067656007555348381185082926556316456461054642325592157851152160561382874140080947921850886830041526455901880998665220889642654672644939330813105849830632649348360614821122962527036453349056979393709922288373728179004521262755705263264639064934892903250033195222973421469937489224512192894833002593384822280578340524095531911202637048863360250166355993780598779293713165761213217414848849651474286915187764422131377283049246767048836023431437617688059437339796692698309424915459087590041578835229838085706408047041955997649422223255078923330387903094912870326160598547513202178161704835284599076074002457277773340658599292153142049803102365259184637061162454527902779892656380775935504340104991415502643200504156552944995632662081981689732859794775896596747936267000797096713475908239246904915944760141038133190716121501412838112956653817767538885407858845431583311844589415069675305120197323682400058942999352325328082169139189473646357558997247665218150210988962511625204560850919668659176087018478221663690094891809739838762704665390772151171178536250565803695819524143204943914106298683747776612812151854223505679543022702000101462242805962655342989895102607291680461511254728320237154454921417777258993601559424207114599180215683811972284358408831879918139325085976906648511046072697528111134300157760396067391542178537404362494590728197056458626074609590218340794273602227375151662831140935571353029628771685934807870020988102412110966522698491181028322684938757277507188596756255314148357955063086906607833007982405999737720578293557336450524891529123432897726409974484707087449382062947807673364798563996339717464928855363310230994546865684910661782565440457858817985564045459264271672514473800771498628662337744854866684452398071005452207813801396591899280499667630769979586447201268193204253372502231025158466658182896369804768090957452867668826115738731555817957774993437748541794751204905938648006225093023755354625917309235753775453969011097499344758758104114091621142289368317727400839838075846614774477441421787707867130776322838893166782098909356643672951196504448120857567177966298964025240597425401952149499675308069568862166041792354098578599260094359950246490824063042581582528409029125884180560768664214956701277723261698149947997205889749386781822364023494028684181288795201785833867281556990606950627604793677396700174000341230081581423457943708495845710094193233026774282312977779204592235922083360612006899845515514025364389694902294830557175201141327850429958456415493086054335593160373810245168407073689204454388775641950414796502238727097793404677932371421481651934313354866786509269247779240803495091450939681084478091610523855660106428135452084660230387893157908517881555362116561935939642809373620658829258499997887482310430862305727136551213439448319795221558275287016155095667799682238127054863257979162114896584220580694737075548760761181091683549286826005240549230901153345181795645777237264122144168410640039910355671159926170817095468022696583150429835009772454012390333478224502992946903188829983394827906559374720491242428339839596752078165682580696206907774470047879023311832084160719341923280910118167186677211631838112054752958629803813644757223789411512382436676313849599304982536140364913276934682670073248609280330308503455587473317389132000550368181627188792297035509665371963938536183338337179188841530619923703575930468984601326548214164729300132376051140785399083168326313520044210332305149638886933553289589081267448969336327892346722127035710925783909054464022576521298336079510510730733528850992011470439216051452705190544055790142871301886284246112703262609404947415281143717275184341026209280989801113521021827692882288746409939988332124189338855604223035311797594246519029324322789855556382727506236632662811889747205206082527896874055184620594085531079074096543663226699654607258444019640001397973891705719410658123018659667987454228725018409763606424188342003002536570660937323337959345680968864888926466135561586788095478918228199517708046136541845833877178313931365069740258361037459138777580669478583770561435460681383118282949539829570853625998285708992262317289186168512467917211749837012361935759360286299894367193568415948521547865043279856985496294109240771210687804287072681192198819227872488968944079076503803059603963009023178649389480351680024321159552159692036772204847210647147353961389393007616174351460502879169962807520671816805652703155545400605240512441349847567166040971935772909314772508492213928378582284541815945204987301915846392161535333447995812212150077157929062733065660509455635023923599604145730674782329402151570120332479080575471628329804544801892968629265007292953057998651197244889456644574873579630391243295544739289982864902857970716435394345644846603842934293182435619162023870110141089471633564991272454273576054667044934361611634339338688924712615244865764258667177306037265088117158406238772184855011890369748886787226690663036138057873980075591991356550488050906802941402048771166984713455634927340742951537827098851667174465468330333266468860784109578568112246575698695196992909772840308432029630183028306267459964120071539408953937780480092624163940431469719529353328732078867279495103059747665116407246999670590919994958925277447146523628219083261752389225738422666732945821571105064010402262793251239903686763569939326827917227627218441615043457568181146710043125908033711040870793492374387588171124948176143357567984802012166419778103753414358828586404716530892006691404869894090018739106357093550147352536281757350819977183550236149840926612798327243189337158746752580375913152503469897080868270771796531957682498201605781172412305218560403299859107885011477426222232668540624414432753395440101540298453052263395005359645243365599817450832991912978227950825784988793218443991006350899065864282920281916355928091471228174525598683482583691024979101688005947177989711686890076570037889228947354190035778194657702441235687524128402967673746902953832072350886736309568838681388832604128625897092850869726711923297783073580854078039303984855277879329210331905902530146519499057592050194111176190652694787497176986799674345770474160343237753310691362040740536970953299052401767723505347819165572818222962243503076418645101567223823232242240036169171638591686300712779356546350129470630748701251912287758849952853501554347346138927760959736511481003627346073426627936045166597164193953596855925298689821389481480019418430115974690629353111872115755415826436389509031952666703461095549037489448386787589263612532801534367479143708797081896119000508151734333876300801404136369236277653706899340771201442014346699154551145492818277579322970515549486522617318312926407966092249071035490997399341873357436418790815394017474914360657921179386624887855229009970223377021772787957275222007625305929612474908526815795094649482079925843363251690803674766570268952129454925767363565995972766592801837356528006932904952803216735070988617061150296090298870487336973029675351868304406441861683539794644641417656990836245397491526043401537245843250312860874266505296727869259356412462107920907222590120837674354564896732790102158859126960560181833147575326553758423638906644953357362020200322686106901913851642712052139993953067001521115942220066888826328801901247074964233210210988531970508822415126215531474589546027712574576358987162479509190643759567399197989059027904147201261062767750709167499916373505107554110274819157580190631215658464184153875278068141193766220846165157863199693284258990815511740676737509801305280465303588695493215043874498943136513352429954523072856754247123038016281104226388585555697209163815516203043418697920722007593146410330399197436481748539366199240542077025465644293827746856608376411698622571252328108535449687161822634299972268013048804370988508399606796253188492784570935937022238736365504489278996275101292250583849880365809938737043135603275683759438981038075330286710876237739352700722009735119992167105107849792159038326606342790085177547169032345612894134333976443418770091148590511542380957633844125829798301468310387995049823568753986880152438295173513565056665162552068158321445420182805559431468255316931542680696267658109674094356576400837440622703433781875408197598820911464061161912319121114955800182448056475584151291909294989137124627943069611147482888271183362384763849697147014566893742375409480961351947685218656889036383284359513110513854452186389564117366279678934910270318254286635835561220332520469979297512433109793921509686194034695871813066395652552843095449768521792392226009146450567390570634870902188818447513853226477781250620686915257351240278969100833971159335163000671173784545993144213133280900475604227973159844818395734337254092279712595308366769345200009112063595227022834650860795417476112096020461219708702115126490289125955746527026675735793142781748294197097823028442577931652557942853259468168274256026548725919038896313327589020552058436690028648456002803610461858311265115434595608802804312025950560350303096779341488336961742789862214871913432840005248656680357582068365713448878216282456171460515341702390581882299025507289366560394453655362873806353756705812258181980109891006572037157141165977498786683985555945721533482800682329586355311993852261650261066931770920117342408057843356165890197063800260322384085646003227064997260118585147172197417696361882971455133458612656375698335292216237765755198501991894421763173921973999268071823383089403765485398200014207935889251581797571081432905878364317282794923227792521200667987912390369988249241316140782049779560400394668741571549067417850940997656637078068090643464001419052808170734471663374038677424425962072315041522380883212077245626036710203257991352434400322514722563634053242124721792283736649882532436249126110080773332229639603687616296441603191075585804973059052869937800151852147385201500684464316567629037208344913060668507652924297605596177368109944872863009722811825097960774884745526932703145808019503538100715910537727571262663140041434093749927360781241832607697952773693620608603083808254663484875808800145620698738720370003878031501851186160683774424168412882334178905600799250030909764902510417723095524649469478270406179719985845231080126064702481982963534935699914208025132400817925120566860468558330473384902719009217457005496966308067046043536129305309572488698426744420249558867197310564499562738905836173264744650057042543214236353890492439941675406479743412258776067593896046181911632149693609889663028885612244768525254411564974624819081165484389453619569905261109140944487593607991003976082021408598494131085010041176208721147623053361084939183906241242408472164235478609892544179276657424672920841510887340898062451127436243128683231031792638516259011683933302852619660627126952535713927179651432160824683720395271720344534145660571130651359336823759485754258955072273263355044769564581558616675690405963767462019871685733673241628153303126974271937399290580547231585263470779544307353863336023798832055462617116976465600810997403305714478911508804482113365011444880651246339825979022048313795216818338932300901787458757262998665155160868716647378383703905991726711051276429284816507722140793517611398022753497496169928796114370892512689708359375965810818960141740300636035518824642956148303409982301229785070273758391796551741019493821159111024275853117711298302653752434984954125403547054890130842626538393774389958040206672684225160773108935711393628957736818374503070650481827087916097782443062544797727068818176352461977334561865248561035038463471488383888678166029090011121368357636805851533303631092309048824797980552864080059253880443401567421152895669745233964874214234860720021744888447076626785521101236530394597957624936219469403868621899547602234101728835236799696178914169649960499185295076389887324486838513466051985143379421043501812698542395443422330182150002959565234005444610563177260831542903191628147497548599969430077298083029527993354150978037845867828124332766123471957937834053434192572903569046472272610662669073735273199450989774377064788915254288452825625443170373360824802667515377040109118014090064874111787948271844680726215439156437512506745928782352060416780345039428135939024089044946844477974597156838367174205243178673785487370286439999726825825676774439861548854854837940705606374097862335760269220552923865067389770634944829780085809981934543787657085625854242178210868461166822222765122791879001747171810257655411491568563526495669439603816158661983104422082518501818252416148803405565715311985277131501056035947576954283434892392647828199593588545044501730060768699949573092263992698784444166812406715775681944610402068008828054024757410071331752872087689504696475407309155292374685380095828506544959911572270884861482500274184486877575057018114415244584200236005103160352767824852506552356689159601064161738887393770515669559929873034896723158808712821413155763716369555528944582167666016782302150324706170253861250333293224847895174750634653502623439236649795181762616376183132131501172906645648437341878401585664604510818129613594581548192369505227867738632741166304736826876621575684723358478753880736920618620181715276806560072804880572779635628354479400611066550241456202084573535887091646115276824436856445034471625396774421791238141496135376943081647948648056872023014898349120736654094223272339504020399808673060773775852090354555793738842476512280169299785382537606491695334973694653752649561047494110827434532224208431322752681993141591656571222333057580304879147052311567888035878895186849475735377952343585234527641491164592718898809913894651296867107961186965926381888888189808237165819129299701131157339654853193489405449426914563161254412621646950356920282407616095404685940591377983934639507030096823244041679926754179963213185791775136929176603596033090258283243644329925618659283089902796299698765677226258685725707706881176426209612750213122938029555440606525118960987763147872671053699002205847973389888122038359581458170103117978813251875701900590669310247139772707057300037697374051744780177553133783024608768565959700577667397688987477093091019620767702244895619836969343749492724736125266382753246797120739973071398220353129289965534961602556159958342426514212294136528335295195204693349557539572575513250417127794756246077870005119445380921746418318756163886937977150235136479167942073954840727907024348436390804334560088541129553019797971753796532310876810624780560162678359804729034862939310465718038878702999573421394765183857585848331429784278687452855542457113518310069443873144676507506290513116546955509871941022132885438785263024270887897916393886744728684849592209536355970809348395595437000875577486722305910596009785303838217699161818607553451826662745794491716246930197228511555469940371786150539329671929571170812357812021477546360557925958268039689564176920976084737371186337539237455009451755636529807536054585726214323136158061525827392152435748066141798254365673452616130220256539270437604236656571902841161800665431460287308578731364205842088377895001723339928035661469520294308991830980299987708400504326635501928708507823693475094695063099378675500410693313721724940456734111921722131080947843131796295225283428213659773631796649581729224175653560321378738234803200222053534679906346428206594869641926151150411282156542836575129652096104912127242374474167812315587989544771089449147166595161895043041142819586041464441356524883437615153101450757227360229866471921778191510932925206898359992456628617169132440183277566614934870114156059253377126008234049958922550344454337615046598437918135573440822585422632468343454769210249985820108449853186878904169954770824384237109616077262975347083751533451126165823924304516779623675207715812395270395886612264512838329413819635834424335997199032911830897287769115775569392973632348042781159957054715676158357855288280705416022045655153457414631768954491310055534408458706862645030149192526814870023483327965429840308436437493714432113303014080700563586267107532821233871771648064889747967629203028607402211679410346664128954834891351071511454796110053777545425150059581785040996106232032056299850460451157446796009045443639963623563028490049027471209595744824032146954639895989565681167511957262916901928486103591270053973245588222484657686307557020894015044679441210343757612678209009366023489236788878677160887156897274590047939996216883466827233803468438226344533831039265549986632072807983595797491607312471981425608341387740893136691561715334543837602134035870509316613139842969884265338280371005769335504863449565957106014706598694881761091773004874952946241185268386430070949926983751569125944989299475696347539983089174620355522438774169466622460476952864361589552617492250430621592041937505301428292857352047395200055647615210258294805446555218090064677561259802460460204149695898861479046306992474182973048446568742542125434059260163385405923013946960880578958315065054905110881699300599851673901844350898795718467850618025870557559410038220929227207603259179378091466857545963168767669253743916948010098914286410074093728631716508425317943987683736786269412517011446709043929135929019366599206207565558463835704915958315123425406843900320327962133890726070325568138402866006502171983677486281488123108593125881596894680753730398152130987792361391181605874505305135866665072740218733605774515714614473778584153781534902790662278190570775076421320746452619558600915665837969827422285581748378047138713709495685084036816068532215600532960955811781260756083117156978911913104933450021517952726101751941322880165714788779383757197964290304377056188486141743303753210452228485279125717291245301865908131453228648626033250217609697795035435205655736995017497018542240732146398058160480701341829209933513214290708946652167454185924183852758823989173011055553210771496717507299541588624557818409320790967800891409538384461299816955797380691912556326278132201525114365230155895567978879446001744698793092132457966902292845529219985207409813877620027431111638895058570336088219592198003924314814537208245982073570311060285838319377058670551208905553785998656166718316546317248324902218953719156111191798517909529204419370633979195591049275884448521702514389420262943891673857516622950800248943704539500868504872568919356365776663559300428653222167872328447170668929866087810348481627115178631702223223476677486574426530278984917818295445097422953987513488499636409493937336842085745724629702315767823867511931754723087412773525497217906203912631766071947009320772176140544589578623366641059979280511259497207491962249329447887900260700841164291548287049246843348784479054219409861871576838296245459007192646266239909009234881884168902135786026649383126245942218067032564507412736940318061499621205982341671715864434725055018759104266182327828429418095102205256612546999335356649592206116711248180904508312852342840721049187803410648032481326763153242826602283936700825816338389756712986377439456236426408541546959910041821003410431333560963285879756982558526186815150683600620752428715770813076835355887372395305379490019735303527165740223298905286653356085039141454333353742294136837713055682298227775946476948338234376620824756180950888068484143171191567694974298395199217562735253680285576920149474989891221529650291676817774901258973685057091814935522502790667058191813953986121777680005615558721668123660797811453391967316853500493999861408751644689759000040601348224442454668521240901315121206371436584909563703201394269931683044849788031952767325670921178083263607133780914564257732291791239620573901875330326054450964884096020218248173459076971781370335924094643719587243267006106996165000730141519352384123263687579447383816347029917273202529080823425701626931317270234254749367359006133258561993470800034354951766544984510705462978578818324339385271096397239202819155013185787476023538328240893999739168737201931693667044792026032243905447167479395176500490108137585250924770609257872546400571901114556964188001755653364256003949100162571410182923867038556515103589170862156984521294000921999092060756550319705613931649318641125939012123906376607395775845245644100363151723147215545444867040866358979655260932230999655795376841467328325274430599468649519181732501527885763638023810479589133032573672858722459593820085853223717243899178981859737844872590553785147216787271744777805075528834897278000350932706118491925559008651210249541996487660970706338241629866236510468133295102663517196832691471754930262516666572384976846720830633821358345444820127153436341751805059044003915036388351281910015994564131960860157285852504281685275929019744498225161221834658136496671648654594130397523792559443516115035707456649616779689201508100459540745244122690532217453072503228641854967119961058330546748371661381268286266794184810902926951934809229885698017040956466631755158362259963507010799426532455800791737205791701705997915550401252709819412409871751432859373554460996799571015763657608597088392419133182813128514690432546153033396608816985038942153814603926871329626815695152428858381965863038409876929710238775780452730453399957429673584524598688202198524802170295049073793588485626866218840408741023065450584953411798623641809210459948301028207740993746309157597497631398910927741573053388649751389909184573498976523356134069245819003338432811603682063631156153746794164726581114784797616315605358195296140081073824959532030380922990365133984299214107602890845172009721481575965044488253555233903568576452336313652406144684932636099969896001240172738879991971709935755280389501137043421774490316376966731575878118453839432403750902465386197185308705327309582392636583014134528528222632708542033619646150810665736819983974057399815678816132880917377109922364783823707445500450241317202544445732456925454291088307835597749211695640812990562690540599252043177526500393861976188837247289151852151360830049469571805997373930380362052160486357357671453850876341672211933876804750402023913827421284699224996724885810966642767851658074169593788970071258009353992226387969191589498116070401242454749737615581664052176066778787388558982108823404534416544857563790768310417161336580541103269625272669090273317011265877064184786780769245854989418659373673709193504089387851190015520854539566009302124330832478726537424267658683732617869672121138404529691313572863899520733678104131395532395490012842614436279702578725062299796063747287551670346809455393904076954695350014220723532498301280160157695308067767098848454644732956243659568711087020377578891702945421950150154640819936618549327689938012255676906977930792657720998396201994131770305919635509719259301818666130080030469735667761137448958369157058501043952270866846133187336948794745233820148010594075023424349854426175251850942033299927425551763016592365137521879683271658736901959351225575483846732804990287559347244108340730601509977222450717937167699894611088911575427406130393561006640039826145653607102138262719273031851848131726453366955254762281067854772175567109270400250621299187217528986542841959901319396457988918452542981227024257302332238556574046887181925841752491559544863151389176859480768180007838940235596086955859514227178031339999351727590450232625463665686135575609032469566408737949487302048242233253918917626142022100693136253391637397687044081631125421750621288038061577730046859737587025093617808169469036157257913416645724606073215676474882936535297672939560024528428746449254309635865697457960840742814742856025980020288506460658874034350864925351304387080622288230149370507134855469939438437974081605903832281694716069645301457755248332966972018659479409250793481217353745949202179386538413992238561712802142354199972806572799091436029404169513576077092399465699655210464730884632400414188020485001504015952662549793667854408432540309984523718424312643526549111920878821061590738896055842461878223760494087369072158297842498196672510120562000454639669656938639649097908102490427241109773815445252383896912188648027866993713914993353879663887435561126165456377735428725333761952834195431770836884370024510497742523834361587797707704117295982430870643731677656078129333851024634039923938299863485809452330620469054554223777907355642446672649350013054550597933364115822182253207420794398931203131300992171724730769381108654656775531931098705501894271977939191381896379182754558933823678235223974143141487510774809353646030085433070020313681304019035432455682155913112003665557106271123731862805463630001559266704675887627582638098660011734472347125704910650339550304913921724369117067719575731794669180867191853279304914017367557877335754277051717891867930755781643980185814659772264725744421505212729894808726347247503241840097882512758955780357127063610095651620831092021581696531732985841012566345428822131708539131232708378496001493281629342384525997519101548686062066933629454667950546493676122593227221119471858011313742523540822178938715466631517182613773141976747866574089200278515001628254536826421449960703935784690569607912490355771116404813666040788750513738835260009160026260790539018275212496099935921439126043404320141524159090058319218941367448950943177620171674429633175125209770814920661961303869187122248793704168368220357180859439359418474113779738276049851169696653174079683832384684228119231168948791564623400498876930131087681395809394465995083147852571633228820578101815234195160287560001669760298275762457961084666669881142703768708609864477617587586772637630159588568909910549066647782301973278904799721546326865992494143892852335794126413619656915705715635522656708780620903426096261435001827259392751187544972005085583218437185837224823959607210712145672668434896697981720689475758907520140754043416595790543949670058366844464687707681871213645929363169657174116511396296891070865443303688001573342941418328155425324729355954579114011888393372390040603766678192871238556652167966229622510968206236194907499909964044901614166172135094779986037526613443798988877997472506775165552421287514310442048444581101430087282347949571041927065565726571702563228697062177919295537191016802182874405214532103671781847234844324590753920042576877302432672732652152565130118163583831904923918671399590835248580855369862111892820760010990691806758599370485976615170563242957823348813828134343731340649308221753895628108451192479367368739582599559743156819046638881260370150654426331873658808969274614635316611027716972326085844138134440038586547466479957474635780990925099588478956493303505875579156910469749387383017994909894238339796953140162929091063824655937370761503177328434444000266540345656246367797163888011238875228158541531043293745459989415660836939016041930862076917708002950489658679493360794826346646404286580370549118197289029872985347749783625982294674841265069364367798785254554355347274556551947455199782916363245034572601765754409259589510422406649973416796602780933412818902259755463701340141317885053727650911222157712416231789838577368670335524075591399136353950588349010756413614249003463025267584959904781171570909311288165693318107191204883086477769218954887349896986782699863223852639628576725151282011101639396834650437422599422834434561575869120770043901527935894553669226135199160892856829698902405144803095871273137634798235090993630098986764073996929605930896885537515510301110604261570435146521477903192283843594177606894935484307728462134534265380486367178418646718886341332792805230974552447442717168995211523988316671885104636601406719086615978728499346422873074455596350352826300122500276620351134069881399202681291128960442042988482999576288822257279529222126208891262418769306040085975552847219377519061733142663513215177407524178030086261886921830294216430484796737469888379646840098042498119536109977005183862890352257872140901583947921068517965519877025322901697562893824972078671872319870925827269550820214066890152933909497909841711044673388506303654965750796779996144821982617076303040023611962097886162254708811068430093553253605021675591250514873684834638786581693924705996239578059623152536921777392154252295953492593691448446011385990339449632643252618237158771785076375275826325719582101383669311326876601964567147451938810788037202801367193264154782186887524022387170972857991840890868014501718071374958883864717320821177130769432961778671985502202490213386977272701617427499117681698166652627505225431759769991656326358704824636203051253629103014125894868486273014933137056861503002337797102237649661896536660371935715224510162399347296289457232343858407412157339610372736660954685177839281779152982326325235306346134760590890570282728843258953445320840543689125554245673344892388993716488309944925631808435988578546767298208636577279657688863785044166954242684832190553610772429463188055419870590866307848366652775329736748246094958403527058397495494035765503521571782729519892130044541547069100993519739126632264635448268443859434761350457036314983492930212880391822537552232566921989601365517127200493603168576493140557844394218687760581271187401858653933975210291176242366197041138941950147058660358545128826129583224557986368694826422794260536274706998034333578900799936053789047429029802369980620387307458949767507255831816032998553998015722760814325508068723477974062254933507067057783065134123148698626156722996071558993666595340650287812473652696351353882773731021863205761451101792085781013418568409302869085094414864506720519425029527702010575794965648713073023346524992500058855160739362025185424542993999449321075198473905436949710518823857310169500682338598212195705759263135373505027554585661219751082162873268596732644294921598504648628526711211528295954097050296465401050574847519717054636370281241603711955539851287646262870986956859080652831620214513224287425257842380366181028984560659151913251449839885755061658548762233960878617701646464762966154264072083783015526382862369075634241780138252618900992920762379648384408798738652310076685619050007971451513065918855429250727610684790368407816462137712066763831452997364866866742099079941699216672546929561381243173503445196079879469170620073841326097318528821792992644945465915072389020391401065937979697772664304894950709290995102173736126541184351801374808391274205457954602116497778079751378038756901029084285188101353222969652899734205372340551021583146905984029402278440336254615163502629406923351472943323701519086670692156841915244125696386065560404655228584557246796850744724003233289342073576465326648530505919874083166976023268530626699578242724579636782936963567045887666737586854433876834763023380531140378819915703416144065505181778332097066726209422150411267612273667122673927512707424388994974867123424397475309870357648650813459475847008145713677531542733958799187637062879270327570754200284024920432922132885431314861492535423629680269248904397743589563121609429596672301137133402603275789609833579370453010432586735697140440873490763793288136983651909128126244181680942226890872743804318442460736256970534482100142727800373268766560437210840308819302115166310281829662007200942732401937094415910067563498892920785593614636550907070482309693557515801618513826286429259564797886350882603391770024450641499302683523421977387921123288496014491810832640325409484382595893142824605678077592199390083983128717313434313349497324606755944455421970634325560335730644567949322011355189426714702752161026276949945243983208378537473917037199900319430551727482109646890796145256618152606200279666334459023116179379480984440349426018898249638902774835956283974842748461746153933751344061570399519907238567206921119010290897565228126080792103452295041940607100608394582564478938102825387989086412293747963678377195011226863619847626606508962843281539722849956268190400166648406197792120886025372345888300065874014069156112489754407685313901692047735958531661759971986479985588605899913443777587378740643221164402287528557600718118345182681100407780868354245872533211937371141186963533890511640482306886931666624735460791281232884836488622458064624935612512607294793706460344972163862527466668350171134900123017247388809921375255529324144164498367448918448937549119220997469904000592261306911011632254958830399088247777477292286087097248887623432994513022835692352152628352496110470847037151725145082362133814247862641712953485683583537488062263796325537652561933740535237635215011920813403722990519048108477913605972224515670761624356246900437758719403415131705742913414803583188404158853012844550153603350868045837261959694886114351811172418629303204508414467326166683199545180232245927452078213261785716286213329134577128090651610973840241759319860230312607797040930395793467859548606787594478428731657517267122356909028906783172937938326556783426556757695377520815983086375425051513654105551886753991800811576516574730652339769760503499668554057250625831760147210616245694767117753753797463032413337387389285277482926683909193622286932797407278180366003500507517406159391818792431835651836935590433608183076153695296256498578233447604807442058929718284483525064248782509820386998331175958540764425501871086374855464765140002920341242144137876227242635444991461693404707644274314482541913569853437056894052947067676948921059275118617558526458512530318596374180812316633360923202419887069402268288036550458114481388101859287765118567685181521483708556561197629508206716824087179993771990109172970747062910496827604597926515443469180895408724770622312356877348125100719901879231029076883413505003454287377319342208223013133356529771439700919192514351882120222644057255463716534036151389781042219907730867329998899339771291026372790982570295285291932681622775510888822375008644580834336452939954312733597557892407977733120685025383302558471467499748669802663094322321371192522155084079991412535563346328895007875190134160388575696717333677809466714803946838079358082128753573587184132100803141607198117759336616058367786402755526457965487788870929499087325833373865716272071830391706534806273526065540869130882321111473918070214532319837696963556671464756272733733175377128147681092370176549615893221530579214944140142522993352755921071633823841178045730066157966015692056524359275192905026253092465381519058263358997876344193110834983195808302299627798496306192749753088413269673709700019654406717027335590468484776098927988502515724158819179898488177669727971067608456913665573816476374639151497350808766173482238397949617542279378911802666400658004052519826127895642500138285879551783628555684326071766178104027649537372935235287410417904730173970466906357359873960046120891922118034645222170882771206785092591956078107628797530287614549616831170401236815675936549747319522181851215504845197596647654539205071212742120179424915176548194708245205334931686067580090291060643569513138191918495480625681124807345379039810795835013726378485413988809258082382085242082436936577500848438297968907753393456532657077651102159378621518939495946807588391383205850467101322078664887735747496465319906209902449568855757479755624171008696252973132562009634572747537225183156751252843122165339830124160788099331240317982848221205858886919206997266244318593382306756815918079667293569138738960661048688847512146953636762985772824755125829036730668422492873626446881875410656971967982691080250677410342891877925852675082290739178362176673190185739395720398267564424770741101396415320634768293650736779452638553703706574718889477375810951158572161179771448934630641570095146416280133260060005215634289233417188575311788127448006271716069140588790159173272561997065592559233039500000207494947105610776166392859739443467329072946332841140470396778995098190019525131416654677260994670961531725009175709214664768129196260257497111216664390720303058948014809526799497739363470149465669119201825710698215443634489092731863075121299567402583143992868945635395903497407664363621559467347691238932022790949265002964187443710500910815949924388606238102137645652297242031002655188101642601172915580326123905291481378771397174597321547111459711193210874195999279994520118081329723842265536252102132943477370367328308774905548685817454951998116443549238275476451793591552935859845526094047202359061241691107184093292276337158043567751271479040651887794366724231073400601303839982720115218265949774402348539404911709609965059046030628743988741350583345447060553963537295401584498811565632838131353052950481578060682282596502104195063094547092757422845003541905225816139793453376054259585191530747619663573567656709470602177499234065223341768801073076979997769465516264474859583224196390376950897710103613621449156514690995618080762229531672769737922491077691104518169632669413956259919302236943439501550954056782275408715728636883011211429548644128538573944136937270780576512127822217125033447659802373663292714389526020763022180367663452215343148952334563936677251971730873135896193913543063726911471453504157247154714916662254633174790394045108951703043947069505134612802378997870489406437472531202892292999366670992403685833023447423443069078542968460673434224396936334824279458394850205355071589211784572532943185407689918899116103847624230317160964201231576395446792724209226824118716344219376930738273773449211353519417680180917678057564846854638074763103566396507940074897424262139343158602041552890212620286771372861354624906150328857611726024772332766001386999005277636759919524817069833439253839007594610388729275357746151665501010300857150148968732425252733974698593963024444238218693204796516684540149178020482365146707225696207935297127763664313542756493870008948163164272529352606913574962296509460666271414726632657121646831019127703302720333759729001159378004947064355973673333672650252359457220892190060373881631659961552104154422401417034948857079683737619546859232168026764232544673610724254810955894718313098208826467406046892748806945297794241194677087088495364300297127066979280565083790973541643053736945711892590509423051263632011600190046556269430327507953881692256952890037675211475577285408582225380624117453339005478279345526960210037204135412689745447039666535256932585473803463286255758819429815316134329466925976660104349872645890162061637212244591721416488764173063959474135894376880080927782475084210953408783842027186565639752938220351195397234554728239122948235147270636461646236045217080565629889377124715444168704199931193244397068703360257949641218570040333424851601739057987333195868194700480792402375111361734542633989450894641940699982868827522250063165359340919732401861106910243088957883429723899269152972069358683469737153710557182098163056355674417728025843156914272798096059746132842208278234506780072408345407852650676545937994606305590622368911256533809080221642612495009484636155727584755813984985222910183293816690050754709751694374966699155796910258301670990261539988809374564264490920640356252167482578009673276454450152220548823022245709954143194809499103491259939452466152566398119779557320028666684623959258342169693090224558519035885071587007064489373329259251177344310000212742200990494879568837579417649154182079342859209462187756563795930334917569365104359473965437015990175716825107941433126501622150170623967268146576700641466069785959820285757520486602462576072958377570291966860294166263005143416391198814362158339289275927351966933951794205108809247449481487663399303330067703472239157802442422304619866738389352206721517829741541081542495678021230174601511588688034949325005325901543873220121446488463088140202587975055388137161815912031552826540766166366182168670894681252363754293697993353689293065104869596649667595057800462249666214844729704627911670257269681032933981806173177633673937797832022497804252010705895086053932221339861922283175646044188147317652389042977633098614620744139012071926520765246556215705374226804159061927517478385330044005802969439998201403351781633162730931058496437357110103335749521441690111149969461639373064687962609405315904534843483641154821830484654203638321148107938376908457898919922628374519561780792656922108149818534597859751202216410300334265331073672085179339465205752055839941481668790247791754877918843127607835971916707324495443633907646469386966325793224218346590955076840969430409702304619032476979302000034829745771951439079847517333382037108628191109150626206355263576093164055991769326340805928261719510391319626724371222710785530264383906130875514112103945052548350119726192417396434720721698097861592022692271713045666135516762198778761764976940024697777575364950709996452031746482200337837070509186617154935887486950057288705909283286079035155985397448187557907201260213074216230328903303128150140519515179052265046077170983051595096492669571301172269140906491676857244602114061072881557567608731336388626528176221502068416144451229715022859874199375734298522845324381838809300807513205678831385679600887267852877079902131978168338277792119661946926502422305898321720658678139239698391154592557294864105142056922441348685452866063888421696547350022543257571860826637058440761658580058157910969916646653818052969095845541567250017550143478830791719946931443104673556176371683827982112233302166754233976200783646860692472346985874764777325364564105138328376507527362506891031209328543844561586676095460187063002619095504188033130779299663263175937237782042526786587349387484856516468487843940562788668335987376628580836094737710160633696290038951597361033466459571143086122238982095063955108811913401202235600518964518343972882296743271863576964637938606789548382928069481777527148019689724007527969943504103581380920736066715657867116447475035005518555479778431722026424998294340514624055847206100854522306071447363194863837348591237886204340505141284806701451717343615602396996826362751533873584661270353244424823410532695915606232702806169028797059636145294777407709921132594492596804482145933734133890703261937723545395458112109318232718483009873445959040419818958691889156174245486266664756409998694946841645915561788810984861302093447955515582964920667233931422513138798627932057173960173343442008897138884587112076238020048963375428849905362696845122521336920053188640034988925835059387026853124261166772044289000102177645501204735518933855950649410582547827876299104157871902660359838251714810855070744709775390008975837448287612303315378694992117908972228160259869308568282894182092288403936048360675057914758085137918922566698333155936241664810884124730787393156655335081814096227216201925280967223004052251443285616497078940839628820911788688224072762335730251578293161339532201529236226771164238824877897852071991147114087412300373199505175883428072735122507342709867478660279001791740947806744023354476527282064119170263388662679791798059345384187878809059274607955476092440044324153310908588442945475516747372572030961910936625018820704143912045135981862973971480909485499644077561952158738461191604416719869123128049630724064165205825806791005565538278866234505854305669307185115528640122333202187836076332415720976596399867690767996772831590103097504452823117840156961739305323434048090537924339423752930837305700394155873996260115716349696793403489358052975874260552202893940584517915748424019073974917788268545711110806168833179689192617795015261987747648207743922380619818546472013887785745909190897828064385438146646270021422681331846124049451156103715188253496786622685292270854187981118219143425005888787296780524909509935683648980980649377630211219275605578935788585859281754534669975295770566468759243794208358489600251664278699103460456753204530931219129366716262696904775488521359558387052368799404388589303135595055168448706031967191839266671810605825144677303592909921034333861321552653251772682508739672260786163045920945045415445009387742389074784118069793155418565221519962345714399377694195788100011129696784509704930906602085550092232076813277571188272552678147236380613809330945812473537879836652529030822143518778466703346402028132921705417999656006116558239565752710617241042970626255350399651898370033962122680953959420806455877331910626758179852765713136793994386531181590451050831045766869749633476452840718035583776235636101867842102256231442558092649774555504107323088100758126854183878241657777025360908358314662653026914587851429979318146600478806437036226745241641407397470859413009051605655417245232314160886135465935331540428542194946928500860032675622120716913747024926816112563833477889929510908127117383227048580701756620810580731858545262882498888150855097328057430410782656724813222077732979784727601866897900460290494904164953457520324437170353657660552591384582727362381922830552261869032586684043524506861073477194600723983601758244420212742539218345036786381218579818913072167423008128237714146019077354608552633513844592066967572183331950102227691503813607220902502977355718554607975310517549806555908381034043080503608260902913970605628976291899730549899455416726737066082768679837186101460234211471356142866974154845671576987536198858777370545069684193452855695221235778771731265082822008850622433450745861820606746321826472903455405490813329855810276865760856457287435237958440051944696975002580933272139728702188500680381763695356419745539343118402190933813534828486212326184440624663803608246756324000305759473247506415851865174179759039075304528777924359165171290655176135777093381702867338828065513534612723861682857432982290680695535354868835505599311839796765656018500928211085050565577895495517181987611156354373522705773101431782424136786110464961216278665904808769291774841705100726123185507430671037844098922136446647829167163595750197357414650807562625507104023423345537666665549576853164604595049456808822565675606508033523380373079761714408916265736924552750592811772120377518295289742899248944209851383583848145458676720213164775150196776372032820250602147229569339448243656876332834113767373156113802565414538220979583346665775617275469569174515356709578356988420466784671799596149841797069469090871865705900195098047489523155374604010689900627315903123658747034011518498479292230808785566353168413976692355542033616098848557003775983105349221443613120712007518392705119292332534754885844817176883000875550856357058556152213872596158933831333620176856485564779166304461554597598467126135968724980379723222391325758556374443279014015656404407994383674886214015491119742787373700013638877369286346161961724946874067510416615505366758023833027681230785962839177806462541180025332551114971974122729374315452823844111402742654405230260615315240750677480412546568054833193528695743666634783317962384269232774415476267227486693060275854243077053271714726228339702976881606072176655026793199394900887486751331931566570986824826731324396781621759186342310246572012733859101794495241163408917115379913601927742225944857152274671856208196870696853896487726027797449230767775494820944258945199392868991458403086596900023259514982964082350408947151132857447561052908357646881863757434759959247164827269460002692707344233183385285988286142193590827476763942982942096835709783736911672981424258777210539592042826792176163063669291439804913823159385401762060978083940975394807459562546188615960853772344673379902204078618096908128954158105579712771488943769484355747405513591730504762220072682264881760708675469841597786251929207062979658311372545310544795823494589756712893880930444629499152196212230668478455676855697464446879800550827601152093775855993985265079788730663452004542406373883000819044269038287156493440581296326419471707861664563664734422470671972049418167413923595875827595380752134645447463680012359473017676356727519543739292497815617797865645426584392672240748247365215488444291736645712903626591431154389083126026016999958073235157477744167721372391116115839819805427041165287360913730096869475888069138141999265746646461840006573853754647461538751537265644535611710207002285531529419498367600848960981497960730269940482634469403433960585631400217976267847140074726639028031812616221446597822427985728351379168640220758884283886849029262215903145422316200806606312167788160590498603883383249132422211717200726676365326362248143922012718691373035883718376266781477408206205584098836792309610153186752912573339746963879698632444856757574637482986670884253822547949517832733396489632428786194423978834685152622841978015072877624007157866435342846411376365796582274922169620671919004414811460350517299422112572756026612898185630457975397682277613214119436158271614351234141612281469824625487062473587627701093644524274795467975718733870056196146485802091259871399958744292064408511400465877163096049978306902932870691308784736722233637004144244129427575242033544375491045396640670608420115366275680124432206957246133917149287326022299103634935851472403379470647815314044846466064988352228642311913316547040005645815932871635539814529096112482782230203553953488314294285813247691311778995644344814302669436761982921121673242103304247190936342940499403089065992141726806779326121008691469092836947387424149263334245636275758436381204559782514970050809200399292182283905063064047514594033586488163234999950141213701617842610760568703849227383678726461799042631012044286492804593442787660857749112968196054701184093698768156260060020590193623240553159558944188881395645599071951762016266570272627623431844300499588184690891445862034870431183860758980289258549888828291927716245523243790991935257420173934949827615130228274743954933575876764492435604444604102299665132743974979171237209022156160887580821838520025182001970414946576795413624280159844410752794709658831128534108754235076586872745670435751223414983389679348938565725934366382960982468322733187172973439039209827703345978604752129003129926081737287775727887953207992258683497696188593638627953121470902644437287604051729880099948705883712797259080023476221788675995731895241601196163841354324397643989211418989531551409674088784620238226691448171868370799820987458428201765597227539035871179368713710625194972479397647843536859335690372531528576526039126652030799907149221877300766731644301141026566992465665050237801853596314891244827673462817900130303656359043110428068691115402682403064748513383274613263730981579045698257843845706331338846739501050348546302699150207335294228028578250084738174818139259103109864598234532289645193039421019577007687326003760614719296208579745486780460949621115774566210944518316226825504628325258344161412184318540768573021979355335062288109319893719963247332345676812913920756201251556358385250904662791455240991289204773070681716198767154589252717653854819959386540982583159218108465119729118661328310026587916624645235195590720885779411263225644447013530359167154710586580630392375831273010525399453786833176001300771640398842064644726287767781222007389235447259145217592568623670597585244283475683899896876278055569542579910534726516686955460614882635915155002934386628114441710931652804680784101065728572322843510504063090354068182772577479199238106741784414863611292258178992989868035099817195334608555823240259168472829694335707990533848292953525012352954256637803442477209666382879640627820920107397113133077502224953334190610214846231261549921164595607320850933755708725069120614092390874175960889055683681655101345872649597270182480385286093102797472578434389260023870662561174095649892983721905806450408730341128983326862556281967055775902338136559903171749125520726935133837588071337111666892862589959435806733551916350273270383499243350825798105192006989729525763471284770818126155570967040933434145871375567117416487331939050008874798856052848444035953234273608904175016486390741803530721901652627513467520712766354801068117212992071229066292923113243280976161722863844678322034654985129500976024068283993842041966546758098102456217010727626103543347028078039477277579777710100911708005629509847763176462192560060098765794527943255319707760617232964617664992313316837031254594929533577819861600648292365513168245776803691667426065335043557944608147003512307726848662688991517412880918457187260908647114548283789403027793291070215639600680705295071558707638951435549278691540770502437881107253870341786854414425886423805772932260781751674908323118098169441308613681806771399998602275012747631196465669507155023913959865428607596598780091547119536904048317780993893684218620623764682335717879688027032140038401097060441738390295364753078836043193451312712444727601445216270655157488894718757872500465198995498282247665045546425817223893455974237267954669906253565033894532531744504111113861318995941214776701384647543575045093392880076167910913174058992207118613210408703426737868687047268009604861658860506425471891768451207979012177263710724018929107647917712114063735529064728802644719585049488992613895261730336251687549998396282966344410874171348781224286069937856127615566149609079673173873489980467657960053042296348906729848611528387739837260060767910183197627105415023304875677067597911475340440744912554921021925689957175499598411841880023509309475929987640018206514838250704081881602274183170525812823254211386820167560685134366988152208758616184228260474198244082891699549477564486335774048676814219443813738219817495010779005787409570029082126139454799897030312073580522325847775375804253515131132598471940641703053486480431678717515840238404407349121407229100893842194459903697485114205367289223295388306613884598533480222629933807122267918576772709222806010738395229628694376493297441363610541946966547069724193482702808103675859153786020188751549682924722734751201316401503086340663277390997734161018498162822988137866774940737460674248524812533798883581064890574928268894244793236379508051731106530742584483185851919243475252193233845634923653178386000960476519612231928246234673346252894500612672459526163158944936740650782394306581536293086863599774655245372440963147623522780010162960488835511229611571280109941963017091377677422719990807642827010394604282949347446839389241518915507595591567187969615108788792675133890635694924064139231351358897497789603928502795929125046577067180783444154199202293579051976663881351186545817426576709884125529389061717164403637701822013844756197014834078152244182814485726413289570051349367099773613990733176535796806713836666042100884010252501352817284381137462867143816520804782174648948528384965661901821347329405349549894275975946853131680039443958746870773855387924773934983438355788445817351903814647068938969814092925107108826952319533029432488186996840559110944739037145620714701241597348696013964845416065649560722535145983508490866515485535892455078022212455026214709026563350470853438109835549343623369093877326463984275038413052515117708251313097496370955309021220799975376765960301596645681794954331909020146974582719459632319793037508757084703083313520134874947423667003503538270969400455593622095851881472636956937001277696795089151931989897137884551673764103737763315635587026588676722277780103106888093069980091587171519336341402863597367187660517935608439061193438257734451116831615555000715273547575018202697395532870230525839474751491948301757173863895034654416448026011486259107009497452798264751922426673461160539429781903303602824064765225083336491687299524008713567721005605606854336184685814173736985649759162246504429912135917667572709701919636531868749417918952117024208738190176740158759262459122559119763939771312251868298855936881946880160207137312840935530647464704480191095416812102416441212370809116835012896306307426778195596433551399750999892699974361068532557953167567684817793229557817747336472935409990000683827283570823815466040585711742272387857439685883121082048628569189279283645219402048245064161614044094715715727290581311047665143173426029046451965795550742489970338445748507110448935287894943737214386500914398900104552068306377033915910240512338523516162129406453165618935982643321710314201015068735564125490471421061083789205569927248943596130589802508449942759990374181882424216299932241246968999824579517900798660039990680186483022370847574295353967064333857025879123370481995846160752351112991116874075179765064485567536771480366090867099976961133051857591402225592971811431042115137559467039830069613735625119354606102596860636876405234253130261767063335165415958671464102944389641655460334368315921882888008831385674390974097187678499835832839187830834461114797564760480194977774507410594219592559991256214129183169127983077576373450217393348470737517804060804259259482082623595044367924283895955002329771497042002707777831110076075490164607063079697429462495538179240522239144927399442998743235506574454897328296065147011782637509344224050709832666461347443677264010219288154140563684930276197693928679967998107516239297088692953822274352615535843483863132468228626955781060509840462447813960236438565175437831444132201368099338619657965616968401587471407785165455824136060504445305432702478674002517264874865624880751684273919466376334606790503653066450587658348449857494236613064417746119260504109711449693793893747792518234896427398246007620075926264217433411669056132652254633976473660829963549224451308680599613305668792314060896253151866585088368762336160740165034792861662226501457788210703341552110814199960377502160862911306072154929147959039000026862532289665221285159783613366501961292989029070919538906243240515714322728028823801152000140565212416881992493468135006376967466933674616085103021767419151211017299592004129271524108270293449357468020019906578592741148443857447264413147169462421192964795996581333592514433037724446767708976811188087820971219161679065204669635437614554966396381936725559904034586379184108665762014359426388458232356011634352565011957241704773511492676494614214999632704805602879155611539468274833371859308341886107341266972004541410029409709941299707098263931182269663615127808281533240700179785776543045447367328465561970503327667795479163111784275969487889289633937259283825957395781030087854513258942927320685773385656691912107787092638950661031724011526269374003238702249571036739903219767266013404540722566154778317354039487780705266565837585980729953414845141937404809080846760841504923320075797213074585139658592267282339326002403671107969113786436486915021284072744606443978076089086162952108891135978700270247291821217772279476287922332540716279916063583115536166730166164681657767252140312736306344193668587288428089702027587409168805622240943257353174316705718198848000137136656910225634445762541087930676214082333582996569729633470227849116098486309025245165889364420917259897271571056998636284709612300136752382973803012661130437616032531911465843312503862042431160863320325207893782457989992749518289469137321081491758208651281807885813837705117244369091398926124818875454480482393976977292924480614706392117953114308565093139522923124301081632440888706531363294308115625347533459651827731472796823972852619796837925922096251193810531162550903239793537691259785519608403654797602814178376123407419660390795683118927765854360467060751954825204169475900812609565217295087826640971022317651042522429287425575050210651520015085194318434168537801915497030762288572286584597648423480806473805815412237958133247585687461787361018755958244354437921032785832215160247704129276910842037418960900835818066581789246121045753356134833549257991570573895752747460966247900772838045109323370418161414007567674210377202839341048645391148749214950250235362938164974710253583279762451975295774469521732073337085094104092713889871837807139219067299785480849158174263820823970052332627302904865711846963856045977608321255187489679256336585634029197759150435798134424593254515446811264995014173405565110971550383308527068663531626091455128512971891433982432736172950600983343458166241588767061880808093068955854205169352681932676008979672446246151239666493154848448405067566119555375309634728073406663007245583664712654936014106854658604475590818095474217604999564984950713568806591750687070626125305389153059320132408716392903151902953102726492716576596980361984928084282911679069753882391602705035464483459188112010723558375649265947929615421545160306730124888113680217121953306828246798621653359243218719935692208511354907211940481275627288275653959435511090374034703301573068373119826635591397085212584279696024066553848089048013857488138820296775189019001387749241824054796576228060553153046377245884244882153272922892400953849409273795729866903139711393397910282071699442521437605226109653743524105425670405290885467986090257932738413265995639694888899671293697836836501705629724364025548437531592605793665236878227367061336725474478084224231380532037236735573729989087015634715029679633683884504880566446083215280197101514887612992979034981738935955101851661801322416694525980217825739432859824202155567139334464024544347293470875033385168988608294787202555633056542014904077862174634823210168898040762723914448553284135360008001410470234191707176323525624590252233638635408611981115620628383635873757938820496851727017017462556301418216748588964105114197680628621398114368764873387970517172699259291740266474480663480586321578537868229990351407732669295087108184035258908716566899813991130174181912606325520834865277693649689383654125378159529331713120913583388851420141184562728820391515880367015258014784925338478498136435907224008450205648364107273564683227895213869156967426468878962880886364048531704451978998695469295651081914710087602031366591946928746996509013250422224093026777071935472947430340583724584471722489348531162601537488175124645746121425480416292641358369223595094875577265329388129908194277511592215339074580199410675481224337342787538227717018241293465802262048950427830334335199128374219464443205804467275197581642241722313799984138460885446891614371560591528573733851837392372031821020058080209338821016684428541892608942897964527232242058844369397700827624878866414123895168385185470652711194653193522161281918947896680475152981572724309409285259565302342763035081412935808330684087530643181062309974285445951447052121447321600747905612207377747569830311153317118056790391091228057020789278585402489405552135129720476727616699114881162822629020432004626050045200660711061107624772352689417658706055519418774914473426633264918018539555257123087472943562027788354987089142183473193055342196831173014131917555979344214275891023790731954485311953403674215252279787727571263680438143719527205503745090720126321457385230777276311918301184442825375730946827408725572788370114046758701779234175284303349478142379858283262539907697928325491475324241185645888121138919708751069046171744079830393943253365731068100537627035959106322762016847122301559681612543622388737347771024777556198091493627163887053392202897237156426559955016466562910946420219078638653716787516622611991382962013048466710147355201767141362933905231544017496432413442786163464443243482623887348160447099854782632402160512150428191622053236731604531947230905134689251125568491605363618396041406898467683354865993725008912651855174001970555832258142772787321263490187014007482659891166160830723745393341152590212271014828673980963784563854614938617414884636917491025945102666577700011631125296773213774158271091542613226591992806887959565547275775464055677587783036124583469169318983051599731423141509753781780889081481762313706196079029314715470874525970868580240248051658075800505445605968463963867800469095865914108587936531834493523603963028538384570738502520736111784564560512573049965700882332247878671528360339348723071705776127382645908685897624579862490808913085350374645436921585213769850723998278130326801147619322153350598799599529741182620803120810166133717335028413763102351988885876061282944999725815868419217973804573022992470791158092392410272578023235064121784040466223703640162464108764732159763921702394123267948748676477091276730685901141198323850857195419703565895645412834003750711349010520182283640332019220184287561435588486158656029921647959090897746387752322639884834259243765529256367695973610387574032079383896512242446182317365666695189859867506711985791975952305606829772431921927715786612605937309465877925408602859792630456802566205005225437391604330733472950835698451260418133392528694693755720996002489169690952137605376343235091787939262972408009432451246946178162400754247308013524840317045299692802494374596717098275985302633918721056944069961781255657475603461219893642172453404436192923228273459235544084882074293037201822674517710373189090335182262705268749649977968631497272258407896297308667385919795111356611642872103837663876959236228719269094940125477384095423534129153613306987343226174923830349006818709888770173610974490526791116640300089017432610129703371988253435543781399570131588341472743577545450233703163460178533330947354801542661036866705359579399203102454331714734434083616206142207527303276213354088607519534159674710389051779144852105777996829579122426707223869945811258661357828296282474808721108210369556009666670872161450407839788953069995273945265052557342709829359338726341688702341297299029273062944483962519772939280961256481721714724438959270352633184829226728849524696598191675577924535884408014651324212127565114524706819331370099996839286547067010482417744593370416440696739270286203503986985611645816077113954118184485474682494244419737667292621461496982578009852027479262794695042676875266175767505783935159479524252710235397042083229452126520057602357306083169480654595287157344478034965074137626208320525881410203501657253292746574421603106439532832897626053242586041964331513267015498908775247382451333266190630274810434041268373874154630967443107600598322783113424509192600617080234869715688087313312385455552815696857672021016308357007453532400291894572728903297590350823173896651447048192935703145086835992586138447628992846059126737175779436692933692043720319491932633414190039758965441006362937607057889834559033414736345569944420814915714107470623524525378197901372172500226966272609735674615246297020406674387292023517026654945605841987649958171782447859920937155370892205199069343152596804714394329294372190038014981902733334047193540362368345594155060612480696685557020438062302188767553390844227306975993899257666728400744005069805126406437220503229078490101921723756900298841704434385924644242856614837504958785542433923459914786902395152595971631423819743447131336808663539445927187413233248827406215393866339959968115179018452129443478739976830151404861085494943900808423832232475322497899394696127958648006490561370778537004704151703797841091998459008945058274353909976962314267778323589256162653045993777060686328319319350185627214129809384524432016694668187641491239366136366069890867144311232171397254891629978071325205843082923024907427653014040282151509825231556680661756603445556040747147848518148937833798682793240297341426211604059383054786825659943644616470228011434289142330322593091828324150331612171696312529413044249505222613861295951149824696593409868955645911282398979130313014501453956521484110435640906865507914241988599265326769960500330969901212314387045950662439683668563900868403433375118818013878209534651646669074607171815727997861057885161449884818562447589309867812163574470594170662180875800679268118607667779306848405563209851542348281074582025114853544086108527308006058790462963367559132327808697545891704482248868358038453137529082689463749486493924686669919513414840289925172983998495016993923938687825214377953790903806893269654923861953959940867179964036945838914749707329230686467112804887194515911353943898168253086705355072393477345839210365939428841405819833682764395500729841638574874701789419920860395182323847535377183631616116220713298574618598951053743481430529135853240454005821793500265446343740366656222511742001075502596694473390180356183992515008708854158565188764842276503768191595562217145945546875323943601281267296643142143102847487072196005122289253216146139391924734834986225104485556142617754520519747685287330775694770294599672154647571007121954898783338261094156044604610516479219229015654975473131651741721780127301747709066013626600975316569838280417327119978206192786415049637810424228635367377056306254021287116986201746541765183900913111289688676259514636249632394258863574827761437931108598929095406656880605232224450493803543495063640697476008037531613196746247143438978773270667224474493993488525951266012641937319637930703081776725317217554969695644158580519795397379999744804947610155598332873325401805768521831786791917652697292441271811902313276671567352277561525342079527534758129236986707464352607518972122229012902981722733178125854640701725481910044201032390932669223586393972431145604298773590182562645415875917335321051412375711545697097352879183889220563170805120855224107040423793232433496852687267649851190128347239148236798289925082967870590915772380626889260845306386429563051422632679517776227167369535463877506768682324163889489515712485512386565170484983595129917279479943081729672284650125542196994915452092448844859781297210638142242983563233764602966318757211645096591718369655718346637856423645380913547841360357726374673989071579243473428110563874792893296263790487545855195198201845624059829523170084853179307071103901490954496329381948452958013220126741451926517190757089299843793893850769617064699558343519561877357371912785740852608127306877496979814635863089893944440419762211791251399640013446321758821847007761231783763320083639197803932415662220376635688915589919326186088536993200090272417781729564257613836387561441823245229779250407490526873162667941818274289869768105538667123189414063537101168347633223390560761000110088729858471732876631117981311626119947161883560006102287596431991065066837141908385618841343862542191178668753977349198127126003946213054928144351833888400417346959918484222386059751495108711531381258391777628433956678635039798198497425999521755949560583135173263957141729974350462649527863801609850560751729763950724243443007771887636393218821291258934518517469343794281564696792418912999730034348855715287802858997924659936799724751332485895479646828185062792119534566947049848548112419770276575731950140994073178305971172624873289295529105012334543531438379877893943504314899031455935503660604520598157725300901563768862546782902373281979399077886440028639476486976756692204154706452327081989360944589535559957458615632650501076179087259796802719072708858782667484159478485087621464342805220092963162284794815149577217621087673876115726306328568308436310657117600169967988144110206971234304537078277652339748861954077705304502977630902848697116961193269978844682004499030443667128834161799779310470554521149852543910918706372809171630917408239352352167193926580139273690422695734428308818911199397194622938444776450847746003728800661910899232973303992686790148132028232152008356067902584221269473635190688633536444008385974017455604523340633056792839184920458630394336825180742285546326705087489024518904888664201323591366050547801820002314874321874910406876952576745510706175039541953987707546459035797522564820005629396707209673364002422462704561120284085723634339974786670615227485857500680387644488506267172930171781435357470308752905853136361073745225617689377941131928779289296453491693210881760302523667238844579273128338286171289269893464581335919009909062371227125817478468716353819541847197113728898252691309256511691366034952519125924255902386101406877454597689754268100526498046510614512429281351012014608752919428926222297088427216361181777813149094462847511882523479738576732687551402720032341914304613307322231841353055322799611148886241842549910913232255923100106418395244187469888757975716210849808000338573953442340573836259899476605294045252245144222308766570554798819271003972721664954506090162447199778519023744685371461624364114551033364791525061281258375191736055726341145505150942046067045386352916323606675137668260300106339155626976584694956579393517963927313950246813799651677398709935763615504160122925701132174102128142299633296136539644402555004203077248419296289480920854882291509010482462485479677578884727406505263818321931542578032920352778925464985531024444539491634590536018692454338757271350488780264725439278581142523231525899332363987481050600805462639697322583979668760835984780192186305105378796673053399176709386335899034150616944204979859795090093631147108764314846470052580610982542895345185806021717857487998489784839515626172075967494600833670859059112307730993359116954027687046955202868675999111157606683095266633592066667033505644299143627095073598390133544576107264858024274182344912569756380001254296096751077578937010716874382066928616080560443253572048984877936757011367719257216030632822291665400372862625183320554060166758726408364097502438920999896269244246882260120675624106485306761941194083454151621252831573765235410899212463097093718122698961128944239079850873036049259288332930288424246064288176544396020163789655113155902739877468814414939545879397082599824966723763369846544585617966579108910499236817767196753604925375720244651896430375499295672466675021083202836681995604811595240870874757842005882467318166175267456091854186065498133020087726574257171013105780204363694195693258272314573960400948756780918040932187392253959779843184656065182069184296058745001664363993045991357174865085774682985097371331522670873327870867997154123716070309950881027925334403341526851809514429536196489644168538093037920105593428742097477120505390593132671946962611418015248833961804099174015226933512267071440144414524066413198385194737049014113291372275822059955102363729393019438823032303150910297394579313799801520354723906708649856801417063560793672293096578345972084430135245324292255753687055933307348020505619898039757169812402244906115285808721599692822548803416984318751507379388532669918255099147369261954545714129134144026304897327884434689860881570020329587719427991082425050981858407596564997163941395011565126644362394904034881715943170212280852823825369123946184252421530151391943193150075029732670930510195409700868917700856411523664112843075831467057466374577783266865605792370325470494116703523064086401951930203747770299418496623989816063383264163700490314427699204936775071483348345216481762563388439059753651588600153086133354710307231944741066082646621480168496375283471018116141450843021862875847008996827517780072494019909349592433247917848598674266366579400540506616006326896954898222565425090792721767486771235343104825618677956405796969462411274357472009802197047865781423297969787602503903236216824011760287625672337399654241131912941742564846460298883534618775405139297212686493194767268551176840735910144002285929362979896325065575199564327326839069197908016766124196678865870282905927523007391175832421000934512994387043460749359619691229786615254807301410752364478673954152478084209465348688552128622147358491762069620828360518147930183218580519332972680362475698384066405978110078305621905752319623633238381589781409866128024620641328332281367362987033743016383941928944737418235273657275407864006186838432214715568457224714816107666644741046269586277041293994328168908061999527403101355323724556632810602679274117601207309903836310126228720288649644388520015572156388280137726657259425635291605868406884356002740508545772213991096879539028300367410654760790617209250513480667758762417995492665997982321447168028358037676714071585943848764999736490924263021013102292030253608657643588711642632712265829133863532667699622241034862190685166828570635485902473321406134144007476156425628439783657078292999763920873750133199342765667718785973157746640933120160596025407012675091941970792910670857058999014407429899531588404107055225760812014987316255817146763889398357461627552345691810738286327517014551557431064444449369186905457642971454987293713704874672902233936301556914534436533408990938188066379286331393348358340250458898129736456703806878463438979633877058297354693053520920279828847645336957921539442035926848283009984608415170602115327028838578932119321191784327236811325357682134307138692998110489221793095747262278404231094152135959832506396790408705916519528076703592218518915151199662252384309284922448212261315304986379662003264526422476610074348152483143363873902195640811351879951383075897311033376409173775505417004413780653869981126193676806153585023342546888731696683031766628800420912672030848744129815700529694194972782157931651917382917629213135469688617248524146022680690807008843647836013583025789386358086693062366397772452873593240102755397139965482554579517650730741980370219259831200147929806566150808082264430705064881115803700762792029935918007238471733100447484378835503968569528832388283056297330420721811504137334806591551812802394462416467390793769769552285355195686460936609534644129468490385120747948223120421620878690926626442690263993364533379666809401866719904688641546007310752290828292673223553580605606260992166401061614353541402602290397571319857817334688070532106833385487528903779996323470121691996466523148249049374682192441896582004887258784132697973723246274632416248025996356996443513023069691124251425705638061355294586479932300940137007972057486091397372277105853732675427324516221762657878141311877959648538040227010040340921348087833605946348022926772642702483253608444166753127379775639385784787472422850845668161524573266171102421022516868362139362379088493169831833066869092410139730027291177781396859499788856538814147793458959006779839832212434696279277272984837004864021945226956602378311814081272170869881784247245961322545611516623619486173492990761559802680785751591659687701449758078553669304265939987998600253919827964527698137105187136824343906259798970372367602278125868399230013911442701352679318625471027749122084596634242870611209288133581730138323492941656393204350028051809157921613920812904080833932418331467571401395029035332285702937889952290332592755868817144709767703725020950107166385456208522326788705516028433849085868941892844855094736457035318953182415563804118723526786212620155251230469174713084328446404774849575137072404095362053904071274747413859082074296966231879327865113562657351992280011513360659545107111761849678173289872902318675305090327036451830264437184675343973194944282262041375576923196800597878381837329544341165676810275974891215304001041585519832627742344498493203847233623727897603118551662375100850795846747724627723774332874160977464519101933927551831536178368112813386178638468929400709410921456230377996851463227215232951848331099221235297524716289094478551011140800502448285676234587837563054027436174622492638955697434822408594943226907718599882433664654150517241751867323856566299300527054114344961466433147097429505452098390766480937031997691489288385574139912608773906307887973122660981684618739358916568703036242684948967510420440993870076200140174990228849531311513317315009553694885635547149441613287652474991303205703055429966521408726075020431004596120832804916292005896573232828450160679858732050853601195523151863706208788842041287110376248858072922714705096955673651393421761190002027761021210852311325371952963114915111068821895422016825079044536564237004585556975429492045961653839317400058970005964043722672189331941871866044213330866982345266121776971493170905459772345903241523936627652344179958759998817641676761017760319322660714247696778327673887092082762969162303803762195955079168173672827423963324609211475291975239980200682866128315385909338192467015283153027802538874369083358317466444078368055693564868401779668853418321629854035642470349799756809376425125428947537697073419826295629517200202407048548150311056078355812965829695823652961387403526424178469253218629181857352403030839606924886127027841627710698742110333246415316284058748001786325041680506838583586929364502072193094309745016889725811212973433415486975390440129231350675488883024661088778219405122047912498105549679943644199255611831833272814526339114145586053118981183959274344359742094682886184705389912622898655798795608242793537626595894659413486951767114758007935817348984377704820029272641006935444169954708546859885772636971857398843240006833289845330321241053743926818138975362333332579397911073898288026688807490780730817611056914941018913252421735948979795549512314981717312887717609965900360529023692563281037363958541233187794705167179833575832787787762641139465833432612907485310729415740848662264169595698173426744094005839112865951955551671454133980195832882668086150397859540899135976257092630096066611595609590923855786129920693601540269276387251841097680462971250910546912923650379167507692603651951525991763022655675492591270407089220500892619309697542614975540118486030444628973194666511444794165600032409822426174235622690169341547969602248285874048128770187921876008666719847974825593687269134537335613209118741862393082004063775303361346553862732885102748180113581849810007522907476542425352771243637230293931842817237708313537389011249008781716629031252545136024453252957110151781948002597912033841491636846055564397468579402774243902486118782260800568497086703690364711318656007790679146109691330942748862980188022802361722465437105919533085736531221179259297286641231816275892010851377377456621278168529310098780572356388881835184503749884553688348735804982703378558628622782886238094883730232704437417787419371163163599706573960568936122908244197632389802923266813745901273432108544044030744923551056086245016610468811493578130301651338694291842110630749397967065379764788174517573661496336129011776813982648090899406474363203744195612766971619109042876910408482873967753315661420119930665512340279754141786264157382558546884460272239331034668256419828016396422831269126705231245716044863618753678404508812460682722999020676595211639999921903507695923999207221281031013739015645284614214655084107887416601723700661220165850035628538088347207825590536781097031761021472763756044360279256352563705943379276077621864986415996607917626417870986341942758298930325668974252042814247012250602723614439024379151594909563097033844121711959223548647065256013635822684149915360589901748785868598054694832729731027830358672809990734644217584998092082835230874040490384081122597654286841758714503855885435198408893620355159319300740616164885027796146105958743707234404691563360964820237944027703864955717716728742051835854680754543679253980438034548836901914330891095782170340192640053226220595538228106862603994561712865692133053362535836911730112590660659098075244559904201726854160397126900581325970626557423488709524632295340350419618916834605519990261321904476043914164286636057160345715038165448970026429619112196317102315209155528655441822914930497973395668265987303424604255443720632447189020233167118499727966598959918358160509029841895713917616341668900807129117454764483140142907622018921554151428106093503304585219264377053549011958153233328290268586207390088142996436303357176304632213384403251390240116482686296669549832218019496051978642293135121562935666316587411558123488025859699366497452262167711397815999260545143442504087547199239752186971599991673279385481902523464674101000437008385453789115667575289464145257525758577056130811248834664972401035379316908698086423885537287817036223084652249305238926853255186015035222721906193800244102301116535392966463071457861960010360366249165029017354214120417293273059022955768516788341568298506796296229386590676892767324950302326409116344081282022695925176061418468034016485897181447221109736031508801556695977410364206425060211028910880599902648724662582386294543365880009905234913718662233994673528671910048411203366578990051833588150600504054021559273295804844500982366855199009729489698840976312157836643604006145708205252210356458009811949364932779334194986181106011001003486586515987095034794827342823286062662955950689588381294239082226343238238927367718593680875663782312906817128665512637959756332882883924955669736713421877015336894233787874965663850371491974691399336707445872583816875472470242334902873652114446582051787564574550670066584140117718460466452528769147831371966326341075590498834040944427245456017624102156681175488105091989713542635825296973569821705128230824861230671224353108111619177099484079911902395304899320632409088670965456500121029723316588684713229008232137397469945172646364709051330947534469650371716193181312226571363223158681511651900901980812951894389046585367315692395137196264254394702041951981525052170450708456888229770372233653637316577597214471593393834712108239970448936545032829344376417189025421327423305226115707883011154986536281822462310287859533964437660736222508057697106980991317212799942001475339969223139447512281121209088674980552861226768993070986332223467557670676190772053663364516691156501138505261410534409463008953911583881344885607115491241774784939292813695767292855572317594600567236061749986698532407884193744979597883673827808942499062401826195655376653883732649365227688375404747801473054565558146858338462076722547578019570225123128056941890253276234183511230428099509516626763633630422886835196194893248214918109594834549346831494893841843411036026369018845793875691874673345674350019033755866091866362059776584684993126858153568492023201620107018880796004130703464973997666375314745244763189441315885814423088867580065586027545006204907842920626953160315916333616944696032527271757385712985161543243343508451407347542376654733271474618874364307881419420102361919675818797790681391095080114181545883743075804142454548991378956973866434179104530022530494261696385555936974420376940043222830717399412796623064253062022948644060944409309507249628042397619315358211977684060141874586753879199260269284302592573158254866694017680945966575251203303393457496707221664587752658054524305165153029545801270618488415624260659394674874020271523455359110189189701038568280861746426691904228569885241371816585440986892008119712395247865514885370823337756113469345656246507178475362847741281914919948008127898679478242503339858151414826170888000706850284843093148592012616062612470394917512618083426155197486461569459636221098958432913913120380709332739541514961957488192173696495212535533755146614379473666296521750588539781530988379734518768090834099040764413881447091885588905719864775537366538448906989353651814898372024028876325999846631900238626033951960187661967124078718356021577783061013981499600739234794970243760991176412173747446762262455978927549442530258878389611844950241113652858504364374607489716763234460252031620432956226863983617068919733067869673907897647018409852823554309211780998296089067971328559797517440390729259334091802895797988204396175063119306033822418998051273803807022011289407911981590329556798670050798613471886737405481476792344594204487430422289599777399307141743929159004940271634912288824852120355747032845919203597200710630935484148002518250152538722899518489793859051019377914273058581765021797948654849494959888717411572759387233681784394829197643194562278850539972888618617026061589615088705716794528613573653286870605424403774878487023167895651571538084707869030142138377884339697616428413936796270256464579138409943283136554485949625191292922986532897758529398038358104500101077327013683327035129968942069851013329204533505863300656202879793703909876136119674285232395581039425333721516378983421920780266046084437379521420143956975104425917706960140897950644760629883739050977510332308086049002611121472669462563704076986675668602961782197761949238967438652822346802380823068044395940555090150143963128528345551222304536833734272292553553974032799707717914311179291021289822863476888513970763699058371435681693516547815898496285477017875209428332636889497986741337203324617393223299736548810485170347213867030186622152144143638154348954509113742019519128543829336214433368028631508570925206607248891675951036615372491375711992956090554071539511651610782997678520436449325833089796998789706654186315009334108577356558861315244895378038842193400932969037284023970860446543330985068432390647804315228631057471340377280239871741886123490059287805079752092348665935925040170061967971362779030478476482736828214777172683215062290950880448716682966704147621910626555842396886554260840673289230325344544362261563148937773545167097605311693467448129151661049134987011467584539801016054174426173882681677550469294595694251410516834194892813782865604042935145674579479268436105580257831013079836701217492292846028702367527444486602072288658433913813574330678073586208711086891625556492598474688201703137561823255174834517794420841363000659351799140711186165245054167136177125805763370003835986867518864940463514948053557939508457922396620500330519722995453301278426622658638414655408145151345339198062531250113230272394280739348390835776747392515508418945889600420790277031829739628010852967322791983921902912746444796567417421252723331218774164638021363935733234933347502629569191965162947069203838728429878886760910115360597601035445113845718170925713579500641411053766589026806531991321214674024441666670277733545669805606719892950095816744034763154549841230618535405339959627399617270559686047528628647653027154087498322393489783739426385059115785447995821502550270649027055654066031840512558472064703600009141957560179437766696686753090683622096426489569909114464044951483865940805364413985870937698526474614245776197558615441105930905932212696770020333250006575801204330952016733868133043357624081561537511897464365119616922301921112753677017570584834264700838272190555648672185032377239379008639035777546667008310070419366222196057532137998571626980528057172434174736283687957909894458634752201587575025054084444161090345013899046251074448180952025435168020788502100115433889738368240602271659481643246593675681104459137088888485543698014510517124485795820186126303953014302464085115793612466072367601177172497357662315459265544549817594298597590912818492926916841103259054459854391255620650040328145837169151839266749145707643935129509245882219126028246446861635324369543323014572415121277337025387732508520863612169636822466483121691863497483113326287615109230290366103115232332945210197827570368080105660059361935976191076472550143350934856714483395802230341411009596014490117029004052154579585520235433867164518967775213159054216618666404521331746570359401954627648207563868777680640353347120661549587875664303223481147219497856534264548650472351057821336958434375042633856854932585597770735770471410906648781408439455527286333169721060746486688777785408942261700380401781723177928621687704832721527703810022904629139706759570828224938067247146233804172392579993315038503822961559128509368291939183793449736300442171199925236324418051226725681289224346370320575625022229157618178591656007355334088992764503387973138019158213670913656994090322585798660464219336228667082202592631168048324092142278044200378179542655958347720043050265614144071151676772739467706082137753214186688759357508011409604093433557776965425453732161011046791474230662565131779958188072167923676964694312783430469288054778856991067555208864655575503847524374705302971170032783468694981823042860442282555179004336217381391422162113238281866305320582176917964590810739859103914204971391278892652232265827822610455074999743521822016711192807023635977827046970637640691249291753891315179109501526920247930840497767705023898934849507813001877723231651291280941353905805290969972808899139306302056992987961277840173208773963215680796999973954304935641026211549482321496962736493601102725832005807990269266843797695677750699351959208755869191213819362348583450217375765581216694302838296329070222004503234246043966280485621370640137356966874733125980030412497468191492201627832850146232183060172637913791287761164322552978465752524567787788651786886297636951735245826690477196341554708268835545559815097627513244991980019797607636498473092909140869083078857697141518771726125545685830770341989682392143011107371513235114069899491310665651021018976096917819910077959146201204505567422610879674591048118480385245249956634034676731146042329318993544835593844766946098566983156397948176669734046379123680398365978077172576752250337889282867133003516382756644970617059203908103581165386512097571826676791273664345446660699350288331594924530593677485864475197018618770875545799141429525643543548150415697244505068473143301570037692558121940352887687334269793742837324328126059068048311895297140023805505035595278125546672725588698109333258845209723388424479056568524285625887962278711714459377999779689347493806390194290092866997515644197228657533462526848825837659967211711572647580872805881902491345212112143404578793260969112516947033850081952443104248953467758774529531909568473509471626336037013158004220917244667971235438311519859195770010780044874252267079611703663191585666119398977273507181283381224673109791652538022394502249295055425016397469083495955077103530485074551731752004090215812946882323051787894550301382323474121785779773742268106618251591321538019171193987482686121435771080080500031374917189527606530869120873885596796785913914400676739132396024824738747801345100548214321630492232529706215162966570820429870964143352004029872975093035175675064815172988557013990333083000237975828416258594113269999612548714569844556055142593794438936608807976338181080692443083964555832264602622925513244412406248517384771036446865193477696712420952431527368907775304337628969945220129290394116660967378756377937149507979093036592039727150447425065975969162427253581717882510000454005257332839671778734403249696190502479440381163791875769325864380944577149951973624458509338789175464219956769146428221807327504776088092755296610972865053605165167414021147515412982050061915277269872628835083624204817951219315376872778222313860207211933203392012861168673218997186437028639318160641335829967038247280725479555177455467931143619894390926723647615413043400241994254239583432318285509545961859671992819406502506247418595215359438497568045864949344003261520337575733370964980179287759820691883619231060955140834315967765796202554368878240284177727824809262857648143728782415267692178950492901599867681545393884710250880252964816959725303032397502807727664957884654762318182759107830917198186428072519344477531849593990062391192059403710578921026553959683999858552138818692812915762989417929677406385955286368817786468367327411049479314512245370543723302877207036234324008867374796100839835228095481769560189486713321283599002843437693732948959492168560627589732504760662598952402050749665465907279269857925216448992925365650346695032631482912885183921521173342116284407914696008746871541748245313589297608549246370958324673744144577716570215388823543639730682393804135241092737226186559325374010378118341023007514152201178707902533829356099646159051042798573641188721154379796914146574853280079387642057956817542629581216185285794526249728655735903968640166851201952892402463626298081760841375496058290556938660757524934755949204678369318471490019342087600336203238586556988303429005883272839524630404263250791811588057991841677746535093723676361511685770987413051692576239269194453476555013775545461209773473766763733283431230781200197770340058297195179599646415233057518879719797360358829646450654921264425080033513532463331800504056218615659512552432284765320752494767662513861610332229058857183718269131752333298308669347404729267214461837170658426920067831052790842460123179637762348325380756055924482408866809025056585806898687956823546337270403280468477906473282829586722511995939459477375861865016047292327457860490830467268281123471290469805583874109090112150650761198032184481337671589946307107694024975360804618821684824192005629311831183391261039695621930601521538895081692938529134180826021582554650609186089895146047444683749648863546617197208399624831234646897101300380460590155902077425785055725665562501458884536020507128584442750466252950725991984635822325058931199465211457456759635132696959623916589181347397841638208552868106196776893448531621216916429064750387328986714826384871902519487565110709476862796825907412707006467890884676636665988614949933845099477816661011925405976242828826928856745208811671253097411226363213646791718448076394187173327537697369001833766724926549599279162054802229168090647906656248586571126891507743537903685689442516977471628892635424729087395785667689378582098416264755676893422264522743350702187797279386023503645659044305517823753277703842174738753991117912595159941208594411020266791949524941281426195518267586904285018442780550239217595060964832447417939701660963788518290648687632776836069318369967070084520486771467049514683324925498996675126193419825312312696239893016865275588410623593054174041546605939935344764051949545248569370814072204205223234240267932068028684157814844935086604208634276412370127268633866330819759424699516395735317153242888065840043181140372387744677185867482560673417658776742028993473227344180663772998916307244634354953135295079993210012302807668825661187715472786339733957859129690324168226703373709588834470782536720827518474991679346356223369889407611407331612754498639932225892731373464265196432263457383087974812908857907022168574216052383047568617070679065035023549562563444978502072216008765614266428902284864546434161695251976495018357249296356465498855587231954570157484446311797377722035023060113993453392297094306639713755730995760552761590660387296129390182850909223415741799589129525890610044766817135804204940541518844381563644162716946501657375604918431605351094056061920556286437492101459626153822485453983405495311190710219579944153754788900275797974243557548248345777092123321502578243518021125626518249723158728071562011972795018219827942020795486714356077913159638240961014382971332165878124275137539888371516719795887249952412310714117322162835227565073943164869481329506566908533236367261024506180060248917089558660712344754253881201210160992817845820626607727419719778419065116272566392429671761525495538712047593286981254470266711039859939913888958559437623631910079646817979341628698463936788017031277471517187765317219255017103981147061665785047594991245601769337483759551010097951594725730541120030391463556378897188056562681785281562207864304183981811625617073536294329024471649307605818106418268061079936160077352506117790421051712164315119124541508657793578654678139276566283948219611659180853928217614581263975064226763154883187806875568296233913913465921640537186370804334482556315520905510264211183522908768982815022910639943833855035661315178899834058742503387215828226444229785375529025034174551679485185212960153457191954698934982340929855763647434396531879705758488898208445305603893259499844696699147014082147170479569861448587658517147508422834729747989344316953317886589847608218872560438338977370449541379683544876056116970069055642982995157864164839423901597471112689615961636316249864512512098484436476349411330883527638171828619897249478516597816290928492633597630382872391829406057463084889599769510549708331416677183645246267288107840053279191842068801361580191730208896789673257136784705162050903250304346391430668986044860505191686141621220543365449010179907407593747699461081944073777588639416649940153869024327682056262141075695706257652541199425959590026396663474272175747626163171994543841346796453749966943105081445826475133904600513017673265432732953621131733820450102987423019013219089244495319093987018024111273412681756786868875039720177118241500183543046453640315639921649959000123196083897563656373205450258924476295355598940894168415824158798028732274221441323687033326909938682857395944132588346535727674827326644815421238348739523751246833563206779896422353146817283046565317683918126621051070516562844223381641363415018902485641778157644336052072841439417373795004343667718991147616550818831298821997297920296245083474094590433174158074356235256854612079773081600071995580766507268726297082075661540466809411192028972308485238244252609540505670782519564151389903670822609711050969291775529142511598013502693036914632058429997395456809594820454533528561903616700291677208659707522361079712967042627888701770281362318598024105625405572478096553512783963720330277500246499827612609495213737158762585668061610647649728353190111654218448285038228193086544049458260041077184685653942898576471060907629477746405118618585372121912729287945547968217375263315676051771184128607462621341727368633276275376947494363443646010632894784080991486567525949890391056227221983335610539200715821347000394771557071137042995775303420493178777320603036729623691574644080311451736594170214018881409868413527807497828677805136383171916577972968131653881412959329978499650759539062416237194557211856631892363385310494591622225322956215982770619314918285530080518652956811107145442455826775880057323215991049465517791625291486018928800923418578701847604069278653182716770614230780663094261862926408986079261514609593367795052691789138298965027518653090574427639367944732650689205814775071980123701157188840268775208414811326593803016760590454222783321486100502550855210042694196549577237030179813104792815375923602924876147516726341708015424776844367850494712677850149074746506164296963751543678966286378218660277505339250210684066771905935382213145984249477069430071223432820405523948281739177013244938592872211051542086231047467374537975045474930683550970156885977413421469729025814296341850394692089376875771161118343456890676625078269032710687331542901591716458649788588112132362891521891527386279691704972905476287319759183146452657518347828802104664457814829061528863247444333810156863154293444772048405323397227980185380520689117653811092384711505982994255184336301399433296437229296415549802004315473460065749240408475276994546112418699316508846348813269437967993942005002934088782110182747833883537123676233257163108681754519799155162032148904532494842612185491276850356412945400812836039272766819636252519486510318408222584437108852601121660211440758218909969686940550496441524395411550139347408449342147800758460782855444919558959159173463209447751636811339228370993991700656212016765957434298491928086333516033800213890752806792621720807102363731718946424318053920762771445141129314010801545352038279126910457610010940674207970088236296797466472780737308048957947833647801125142562680409310343206658910380393448498970157464904712989438797252457564362182383049361704426115989225074830445011030644285681540358849029426182513334599004731876762451458659145959327577242595749195039884893755930203232668688307149054503818808261908478975394444789820230485355459912137412535057437922593048772507562196931879906989335410087944985642945315853369763159577772005303156728588534231876461120374726685747329509729441171894837216157167048663893253457776505364820042474103981697822504913430321811815351160511117495920908334688512495735523992000451019249612167759469181671819438200988698045119732226729133796341933209934192961282363022921652123932222099019918707324271608024214627809416501091671813471513814718663967963472757682731271126634312012627859551424727780527789884278892169559134808477169619849894424797641269709949222803093981777933394249708285911104628990345195383225595892129984714782820633661629815250111355523422441916229316443039849397161603827666350466637564346626602931427981955642825985691252436401678842588559353484912590309868341676304248769354807986021986446418837985416121210643743723151798867420234045816605734771591164592880609394673936133516370196645002061616084691304422607788197147156032732486534286950540388355001061388522076230671313786982674594071008732770416797957009918168837074821379232937673691773191264073056597354543931780492929312183643107470550902604985057136838671197954199836521511543988321397320898114897498808414440515129220941412582199275299872378343525512940235406070182357557905870252963090086082129757977694549502564871229705530543155810931596759797605198256875536925346739080664834525096434367904756735449971779200363472793906049121874010690390746635992967366005168086595370826950885447867966563202209356936081890545571261748998991352902579976495909831070430956581589514420076956557693588128342466361763157914865161890353480233335581373362711458908212292008229913292747292196929561934884982558700276133970002192429546307684603997110586565523658497354724812596613121046281507141719833430113145506974540576806692883511210865780186517773620196279295462150710112305457538853883519320801823825278867154107555124314136170447174881695707851577756136589624352522258438707419785240442190225308573530394957314668835432325975838045851604143862787711992640637363872490837635543863649568178943395070105311045761883283098219726409245470876187953072589133028546783511796322777747741066258496862522065281520493926256231556451885193703207633541445869985483287291522916310160002528817326767402841803689128162106971874215771107706418121413207015172415913833415809940231104852498617427492467045895561386970626590218607892413417130496503309093112927568318656778559681156112179787809023154102924807072403223653250216511349244845294905492128538559132569291333912374361479753878652039809709977029554358192941598599916822783792406410658831616294956905179155780655238947894309587672161250750882391770855250842823250533409342364421986910120818163631499261787674506844975337344439065319513863193389312144495617890299183456400116808651002584443649510779888983796295451997226462691294522312456716495091115629288829359229553999116179273545546047524974289178944470878335369859321908777770276120452284629224508463043689066912384118664575956342138910830591154634423171298598886494680522798802494453186288871177145872087199727834193815206620733934528835316991402183516515447218034276106918292642241767476335146271981197117631588936094361408383628661330889928455039260942875048576874376012673269981840983865731125462651310630102170264406938162341486175614558109716367394083945052201377150428308867341266445708234800290975268772189338952023689726761209531756163196651948267624294200893492611725043658137634417365839528732808301992955108433492170893584471983077762324074167380177229992871957638425037308104236508144234410108110818958598750739220730740450470085170473756536166506954187491744717667036153306012894466600017852248513449090490759986711806279094766542373903966529276780692077415120726785973838546683426223843171744441853995076115066164187805766324498374728941597324023097840843948745843800965841829815444778944037999695256916349424397121465449592905185800254444308439918794762687621128499185640336213003806527945612758378647232631171782860897653887244795698938423806292584328892432299835983316791177950087196748769550344210800221466691410677278578359482247484227430507889263154501131628980413504803061943028201680285234231156401798620239647581802166393866729673624188177368403998542113786939079415883833084124503105231927455889454226300014566789429052367007706002750665794535198025014998225007627719576324966628151978694880113780358974727049225647608588224425199795399905182675459480263343941645227299942699524394390011622771211792047500754229591890409346026845519407445015029543834631454211606600017182597103540368002304975369711089636765750417166775877442028640602467992302951139402883781686702756726894709197832468364938459062306980710711358380695285137872507397292826878229897665660338598432564728765444969829566351785691945346299524953165729938008142415437304806989095110888469678381748828363686790006961039357532455532995534053914225878319125318509971209984906908490537822193966119834773862411790225394282441724997373032381120246768780741679724945781497608313440166509596514074087573390152773872767464017469517740096292205059316641007368937952979712793516909459343911169437929764457506044982289986491742802766000408331082946862651505730959433860637768926559387394882927355523381842108068078212639123121360122915737218680263577221492808412197540344529045907330982583420255372642086521482978598237287841578372225827566922386994442734691028873737309504338658541030876343928778667033862283073969465083517157986917443472511481189620208494975585613895682074798108069399955156505152704232172090705920202269021726893440129947710285298398999484693282431946171617348459938893228543754136164106552637653357575925307389844501752403396903590059955672912474329166578203039040839647918943960896038181000455346015167174059027507400787118197666593400316835506833738665954641853016383187090157523508779666208028120474174587642906534317525685690039821366096326550872914150906688035407200236227528996497459187117288383159018922553647821488202714220346877357528715674833204336328684988965611758816032688760031158809733637332727001505815757851125019828129399096586937224794245171400887807503049880520863481571140253516948135155079693169611172793360623418305284414840187137199395841806166914447820556638904646252238683094394697060824461988504829313898369461082555942720960801450911590303780865446994382558360751472370071206087830984068319005073891196018120644657397869329267523362374370416071195237807357668802277762587728642591358676712316809083527502157589189190404849503106700251830907900076966849951058001267516530386237118078005636361730757240448449824172695332120751732298679222920476627095056519937033703992699117251665878708723080282310755193605846350940621922392323510667766850426974039396079658205152907843375669592640009092176324341368311229674967138107956276525882497948208390199690041730811496027473977613524912793230303496588600451193415496888436922830502435884098850944609251781768901637039019902371710427229763659102442902205491769149388267390677066251134132738777514694044759840467511971996261341969794376590434898509221623328574225751172036073680598374701623324808662976391566183458011242900281425771282577529683341930295958693952012256346252947505823426297419441602107404946801409732783055255047973932119328222218351332675477499046172400308475519658041792527399695004713928392834718228177235896258666490348651060350626705676210391699779199011444356063341291759974741937662825263402023640520680303511733360965221569174939444997459383445070429965513899036239017152618624347323114233914617174111720060299932775623048029606407748929054536794172420896249723401827836349036813020953444134196014399861060751181863069774652129868655408758363274554774024738902417916473669333184985806801884687114951858090418405539410335152864418240851266573476985994730055732656855267682437707865785939293630997225864530776952584596783056013288879150775456393581637930919068443771020873246178527689207687388031604508576256171265088375307809475721517709812976142765637918346674744500855128185618245692848803140130541185265619782065962221228624821528405460686108348799633595592015747420784869320925015527264302573772229217775527313784768612982324913154166642636707864718728460693363774298890836668932430188643097417127818232325095563464918371361958940429400120631694267523951527769598244878478053424335348987101511043857859189073743411056915931454249875970533813391526763047374109552023567784230761328652181664755493711458173217235963002163383155984231906020728804414540801161074877466193973365736374928890285953096236422623874144259701419322351341139659353860068125430528876438592773419575019388082447097189603246494490737020043856889175831662692318020483539864987856541047873415205641182260798377362033144326058226154797496826773799691070260980379091789728101321441850846179646600369572746244899524420332125145433608812634727485288066732455001636332174860722331748327743985617869473210782594249843640464566054284191109090016639282971169929541924834805019906979574865605909814188689427822827916470789278129534346358472779912784001983044129954670785183938591960694109659009091896609295892679674331026224963376746331120295135817490552896185990427976142346133730754814855288936631289556906919468488879547617244616270852016373228487914565750364879083336698481741682016225667097827572822815766491599130926115194164420377691185911167983424499825041100280254934355459534464723532274598746012044488733430336633653805631757444089488828761615298357746838904721685001403977184559659895912475232494081900943785088049965772246024936599487292726937969388035586965526287320931582810040460637832719478446689332774907025659281826425955475798586431281256080948239684285421233364046505853249353125803510368078897885021661689727994842344426071917778869280264557854154010638818884052545718462014752733916266383242862744068135839945348065265081505670311818174496150033777221803318625105773135499842689257212635952314307070203836568304914627761851439411354057687680423150184107946980945474552369705767656570409266288125353515260089055413872745406929692375069694457510485114379397825682986092699767548289417343976476430727411089373041775543233982247695268910970314950867361586443481585054580876819798394499978970763659380340133108752528576654719973024166982765860175858840269409993870236700879440241155237965779177610544034760714189619040216625855258135907350722968364159161048913181993805537804222276963776146603329818909291729766014808533233380903194472981403682187048874122810124478491602916993250837826771024607681537829479799428224891674659676529847969390490221525400050514841262086891786837998490301568220570057757342110273712560343416380562159278167283007997314295584774764029755965979888787233410886992945566034523961818606182070458662558674014817076266154375352260999462864796965689141975698641749572444583148242603647119574235138235432018264897384342428844660434930608168991683344147530653743772428929997731656546003019977127904295505243786672217327946195297684793351975527855038448170561822409942041530706303434199196007956753591649994031114296348341531475546314674447501664169199667302430802819155257752727140912444291772758637260345380031313341989288569686796960567997608537622981764880895114469491055851265010392491196744647266253135642197778071825810128663584012756505102255074251630214645996374153196967565038369013920098950015987123598495122646218048226743579310138047008188736239164763774947931885705165556521303613412909364492346013927326112178834232509051372004592731327281043242985014962317093322325049284945990529910062216034896993399253361000347154367134134234729619814462587614846261164817569746994404164823772742348005938832699591550340210790341576430788912939772548282220088932565353183171334708261789635611228782343980656961740951603135189374087786407157184414034995297611597236359083221294541293430709309717157151358370605532214597657586092299221706571358605574168749053654831448963832379772475150231836510350244269453733269994546729527175652826447610218975207889354481922120239100039160251712941770698653267824294645021667564654159295215567437502872259052153497654088575411870442869075112428920519224013749131681990147441425035947099483244892793802404766870855228402422183981826430796007019503024609920251498323752377227112533675849222518949500325647086196590179021503828164909085761408061040926764659804440191932184912219957136850789674048057171895733117331220809059375765908274010864285220515143676474081493222525219861186893984160103410833663315254319064246253862385100357484441913146979193802836843783832851365832660283263640862240617663136374338052610686894438279762585743197476901045829489783719838291949158134520134750727733542863445289459007131628346197115700097802211702558525198755807100691376147003871895318024472728905669722943040098593088030800010639926810697089194034426973708865519087848852863575649842416497792643270617706328705937896150971978065479757402677472888265154420548692316918463130761170325292258861190014335678315572600363950089854653986757002623338171331250392250492144978274224918533910459729089026494480656960142825236354118137873032196369298686715992179870373297588948452601637232096264061733963728120367041635246325179720215533518243749944720412579055029869802426472582648190048579067563348495234191426832450391841248952324711344451595103230063381278158117537645933307506541802828941913442044531959689221970860916156021636819256811962354313082512818915574272184138094607088473268732102080790477452469836473477034036491969726950687237185140029826462996311660627584512089451542358646719008970962792960262014316036595730413426986336351696725691772932947336592499183821913722077548579108278264877717006345187432972338791006987979800677718113282287289016847252582692185152656091105088493323918789335715818903223209830728246523550853753795275552604676545093476454474532869775376351118421814730278507258026143235702077116843313345441101545811843185634641637157022113778750358869920621710849800552031411783805573519259492964737767390620421917134749820493572926257182907955844385127880236645255433552671029271396632434841617806491376780569298794103867083465593376080975835965781054907295057256998551537867509228629936924537604991907277007801756315549726056633332202310005254788782777305196857481293403986453684456875458329733954731162485197189057634452628776825503574683608137009728873298708589066297746530191607072997676536725194985547065199612329217830043100231840978957496867100186534807866859599797456865718538245353445972563355216427447996944793008952446727193020251395354927657373465892628422585394609414014111362679173834588342522952784839634171928104025513391825194582730027113487443576654965765069384870486956730128805483098348274377399134216739018183285446472362454504805045703880141414208582394182942507054632952307992927121911383434129394971039891992127517605637414018401430869108219530556283947767218713795914648110751701477731902501210946431347766207877109443570294873807851360616983549387368598560298358058570379658586945101155299648966981531078199323787350007994977785443251795006316419948201064138683618817854668321291465780547742338834841542045994999607410708525012513957751818161708558909083415558150450815148928400550868946942686198244366469773637260422741076658923763870116037862491896018785977529633255644621069232824938397322023527652859287657201383050669015869880346668020102995149752443575542120288467566044016942029465232478213725189758730260086062378161024761890338989864396040021720501391947742387371835325655032734169053462708420657625086644276334373446366400187249092982384535744344567563432151300424180083916570853485025931381230339026897686880116517381248151109392159496793880861059528857303717475501030893792423112682253872324121578769445924412683078900465721847395440178576713464356824591929904744447319379204873796315169809769482773102920990203733697376856205169843476622733432061372928791763724407049873264526763625121947102498480087041048764838940388920823887035377587185045771202892434723081973768513512418057061823253499242879134202539422493999678310319728025684782659215010347452482754733044046653529446115366914790901202977751688049909705658549311923742431133402034165850731377149048999354556200916065560413479548676046920373256435302541841724573742635934732991499891480894312169900611941360420931879546567408698726650467771667419967468928794726417040278426161320018765514907110822118741168630720657704877301740963585988728032639344105882889480408050733285992951682244319099983922515349937560281513803070752598747587432558452507288574168185342189950309397830453433575773915137081861272789640496372714750431058473702003705217502180099835390200311470181264631917738470028220359596545911841726589609254921382327015691615283966015197170701313419341549252248420531058346061584348371690090561915106474803112927172864192895390967779722421290966678819447738827868596158973848720755073528715270618238102013170919735363892384529909332860233453232449654506395424125388566027555608557604397727225791840111663522558226887621203456035114114933570097294150632718847988099711722497979362283938187664648310941643496504406381653090769598623104909800604297399039177316143971178945544725775239224177427560194466759782016852668184163959723219701321223491902846801576805083253002147053242812198232936820237399849981718803957661761481116120064856287380706833108142842486981654638989386011844309520661852884931749016846910504922018332281543858867651926881310145942493918427375327497708084588016316799741368760658463209340471312438617006601564768836393319820511982037618531578181431000707691103867139801846581065708165450855698232333264327448347589664231804439497473322234469898010891493071726176170776519294750059572379156548310635009870489408030647436247664138646870601875568887174990913701981613875778094950260353710667339976269016073911608165136211677596241280571474774789656773932535097003532303299562695013030626530310868910112725626109284541018959340284169478769798235324279578029909748248849673637845112346028930849366459532481615932895432641881589902285398220146594165980400755391430982055958313901423701145056559997154832158916907589849007734754111385528908153219479693758512834839385284816336729818321737595875618126810844906119651455333661866501654483877076613983275372163986084015348079148522765726460927728384412060105368084885101068224018057170581306501622496658550323433718150829375695823885957904506071322439834644958487316364954606660976568610564768204539508376445222760048292991748196447353300229992171666081127222704032775977322175946436006679488187759956363606536845670074035502401453105803943574143763265919670170122321997733925740339190854280524281027405446507606845479498417891216398502542710776855513313144529796845408384938642837266076756241005306553165869234754041787311033054620610561625253736628382390020807165810161042247815312358248115823684225263800412960955760537319566640059129343184591142187155550739438684293852576497944243258934856130804276344083815056993502307898667124730018392655360490020627693810217725722488610063199409674530761724062613470961038840755962954671746824090094967282433473023678170659066458858814116227694353470107571644217497498367259572566253410254593002434399697588793502598674563477260703100655058758952053383785586437397996257544333396631624035259042600722992216237247045023992972886994869916491243411130279623379274761400175886693529832291798287119165333425165404734448265396423882568295080085907910476192794850099811233398166106041873894462158272879956825202215235806714074426205143751608137000273467618767720600040390671571907806565899369143201624743675077338259987819334924198217071503922834921620085167831735966538771537285663225608581947734405049348672111863062903817684830041795473473331289532156264274169752847707232229166808665063595299524954370868603528900972238224911409028637605979160664556286816945944384107088881196052433352450585215086566652833916166535892482002148903145934768058032343488743438197467234498803551512776660109341518927419619880270225690531248973627333059917161669880206772714233611493153799973044497203511481019526158339833629219984830651611064619149292055003770149714965284300479630902053995991195190487832762310195871890885698187007542503591437536194565306038390488034788222437476308829511302424200204300665825448343946001813773626472667773235403803229731277782476503585429009585842236357145454946606571955200418241922531668017271979201583618557644119689951816288110391757798344586306459441386986205395944734309534063780348910247559832723030663197833749990936400727236351093567963624413601178255760989562607721108694334529514575667888134652642375124423477293730905664599778570395298202583536487014983398279055148565290791975405188902293474223684710056640333002498791713270821744117412373022275373319574208259236833660099205589478230227917843287532625785216010498612153561999343740811258469269332639137039645619905992669539736194380753048625930950783550180612935539807076911333121875262574343528018848450428979629139243505554780455694600269880148620653784311370698553442410018753661875299511143771259972621370510507849222867054556701226287046334105539573857262395810547175766442101248772290916915049483521326690880934006006345582604051876907454847340771144782950608611719675487243164835376679659547986047171157470750317863687331861947212086910054212771340895968163498350967875302963309469017012109243033687440949075053771497315660016175638511626718707895176049916563802980771322724345306327984746729092184563341615902611607521305331955439923669913550238088223109766328020752442795932919279729643304669372232920719834932903183453283074766852414942790520828368054028576204925759217667085618299237959701291747842978586974882985434475728752317411725802956799767224453656817126108410342585301621439190842616072593160944141446741045439753899620965654826603014529625575838516862294175532963736932692711763078404373267687920392306469933659075323957351945224913221845801527367815260600790041442073609728135131373933324627121221667108203043162445647939812508259644087692266035271547027235657835667831798717435607361469949575975237451263534006402680004220568362181401656210784539127922430584822877038221269616489188988042293921142757267883052901845123972563219950425008838729326470365122348718275142911545276262280139485631001824518426842021592757767500222196683270328038040408399843228211020332671952198001316450309243463197851218226302922026886542103952193914034740589927357142736194741996673472935346563778120812365014231479970495886712924030639710059479434542337659353828790506844472210815699880967742221697160103893837321601372978836232086965931546219226996149541244991959927435829384045110477765851345518235786529546353919376871491727473120381315314000196838290477033795743552586164868708089157176160953845257908065671338525755769008101730234625196377471914532221067207268388542117904989272739400309023510622880612372505604091870521422133863550867070242132611344452627029896739959740209416059516255310220088734518059143695033582513077428628147242470667453258860456660635894574247794179168082347883350669430781275105755021564337092199501172086701828425174768689756687900960762276452382791049367928736416579081671944821086852203871750850697039199608761028089150561027105550807254613291833706805056200883037457331569092350604272842826807777248993824386196507576443150837339655895218976404414529329285419545454145793394331881970291168787212649557593415297107050960767224310825883837347996791759048785237417662528966703133667327386949059109068579901567786315083978568023897822105656334942355158066731161894193887584112586523891586048155042125081208424732590194816824682523416073340509741995990646209653245155198010873611599652273008323454717463124895478216553261496511021921217961162174756060086941636918597246826446642161624831356528984942426298826369424455816331615518959647047595161359678332302590238361962802178717534895370483265988023210077106170941871295293134110194961338670376715066390822588709394848147998950168262702715526074108286748524022413664227336643638455513886050719332653907258324216605899646000704907050209629731595428285077814698954637332345518729238069720162990756237791403511591785016078098524188152710765110519159544513401212271338799030384782075795980015532618623711694298153441475906056007787395104029926250118421126826942375074969798343675249929573063645943760603114435817387949357467542457180307630754577474870342331982465494417037902946138849956161748246006726396093870213339834578410570547965086122768247175540404742597611115782222981621547790631986137502043801964726440877819681896786190496420161818219003985666581000027405342478886991808844092589531376250098993101882726602721834843086648730425124937678948658720562127864341980690036473330130144503268833231393574850642352606960947794905533497995131415965645559366291437623396279350151791672384453818016490027530739403329586976871165041064103271973619199721005751149772781986930271062001740417857001832589488437553697927899018373066732323976888956589716351351435952959942229239328800122824624650658760923515061737835324022234975801603684718477917802027650760694847258374577381926147521861093088221606717570482607493792992903167807873670906644236405099545221630303737383845011325079018305911744238707520426935290548500683113091541850001110705384806629384138357612712043333237423932415280302090109235850475405567743565999649181167669618362808406130153937746618867633061386048257675779935153257687236594390438813767826308368962822655187508936930172926350759980604689314463923160827066819512917016076129282409404264388536817847172953914104904069420312158900473463932536283428259596111220351530803266971157295395081651146602852284962127856610420423587201989655614717885569494802302102641242228432132731366970125989706286987773889259742661248973593591703897585447117646648798023992605879939059361668078561022805480250606979092083103440871757770127159798326867565068600135663223632795334886934134189964125972723848821357973914282654654520507876003133543918837062368694465387570613550239724719534367096257633575810819884414349530248069269709683597269009987474593444735664426534322335902256202913901909966365182386256873852512558261606506764034098688431904384028997982055910228300011417139095285807590105046253203877408783030076320282101971553982900146422835774656721844073689279926245707009455369848842887610353014964825144099153455379480306790744811936465779872465140133235125533383714456426739700282937325023433929942886808821705441683741205667597844853103854836420223876361096155915030182003098880700465132743744174252533862238334521429363898253776746837251232419094013142508101035794632760915238103705791948660892330883704358907156629026930015311819236362437323718786738286374998610689589505511179138043613811161238657116513279828033434454783715439612024722980400351297310956410224297276799726382277589874361437297022270998970057546947599764303179597590809067142321227090300017829854768823289818806495272550731903601530022871664483948416656979182552905513247038560958901988920229301516885990811577343768103925452750082666020724138007019944180379277966609399818038988942249474099021815349006070860008688647538705904724667454111982055800400879847787289589492611967428804119799402996490604097770186400878924892387147861438879552134090700912624595643606844389663717125462041452400955048665223111749064961145114955962008459270909537325084596280739805248186378906941266962434927518972132802689712392136875484841684276807648773235129036079498551706376678826795973273922076026064752745683572936947210192210954371264465652823123708235735515297028984977203253107597710623937330776320032213351057316730311472379142064223219980136196940336154605654114338879031682678287799514196321974204330088830104947983817035769076734197994244556170209406969177694716429638632182489553888305972397692621292208613339092952347490474819493894101036648170268728123218864589232045875000473733698822886867771916167466813441090056783536655169963285349764064810579608812763399376217425949390703583831111457241427698266064956884607430435917603264627401185981361828249576637486257703384907646919826255343396524713383819009270903829546595897011288974876519303440815841228029572539776509304964528516638740132738175337917064613870188978331105180110916862013446967271974655536798603190082087696296872745327007608962212738048681716350368029278319234910297747691998190218692634536671061435614012524909412487842553742910991396909140473362115320087599398391350383273325521202223442802869344480435942675677120003821523769443641622213955211820364035039830707186011572228192745692539646111328123054198351331066638877682052714585111237714026787722567996780896512812599065818963110561843632147381033537813845822398919760116763407244380759633357761074550420900815872986874628927676419818404753566805109015917426276482239563661740533037464048510005939907798857050605114712660181493073876444369299185229063598895621113920568927827779949443617168922081457704523441726547780894374047884528491342146195162920777480572996099878110616209790259496926855014121563713157689612717118705633617354532812362837141046945349143119182956371055514174231748297927239321821469797021659115833094684351613830665949783832031264140514301459280754809835828844576384573899785018564356872622526292200457053840833168245193716938883845487201522589799142119720631930269949366099455245719671188507469656137273779310795496198050605317997626433113393970469759781355225749240980797255973949189924467262679405157636532259033788517900718527750139133536930270157588629787020654365879134381291232398635119800408520405625388716737499408415645526194954594701087832563406074411151300527593192969986253617601935379976408013558233208538227854954368122709419306519220995124218296599396665197830140784271610713402710994588529303121726065690124093893934376165790006076068833288472236838247310245096654739516045443354544687597817301579729804556962045586537744854656783185883075200917691973924360637547112252249236683344109515414698344678721648707184065312347804951441327030806864230781083494793893666135564132009071571049582538618480581469152761035925577699608878456890995856880231638497891007218234884506113716647162887590479805802002770753957228055976869198192186773467359565319673427203795186193779334416255724212100558063587731942606909153223398463208122207427240554327084866333207719819645854127136079138073042365822702429002996961482701243681409531611240907598317102410338605511320092467698198842922022197512167863891429988805318388795383801282610460669159502593343060758102385401318521097765497293851015673965880675696988148600728372814479106920871243335326791482688385607870830412115566912853974083480342172376615947173887091091681955671565253494583609162427198047047019898393175131391602352096593346473876362570677176986958903285851421613726350415347476897968305165832579628112734590855248383317162213723218627481230830675439169429379069510858569020673957616717630258772733643148945560023472709678967884447440217113383303571741085151957683103656164111541008682550364000168814212148522894770840773810654246690842453210990190935393858896894459454450066295210638219519141286962833513811233973464699305585129277238768150855833803942364396769456278282015888715726173746437507609150296885318288996873581031851840955653679172867000459613967720121578402065351860251728820322851885315926810954778787813768401868252441404735848348611591460128617083838183518887916713695297894017130441835771917042834378450060631596535539364876218875745996504592221110718723930111085139208400167482580547020553195411832274770691568417770066100085808573558087676385655156176758350519616814995458963517225438964883900153503985860073785148497215345804407501349221848235707120425592809945196931705123800691812024881111857789238544976121369302966227020133978308548913617591634391412004942270985482810718149052358397249618822876471527241393547237086255304735963931616519659982783627202180664901613439347887178080179193119974450205980186793530216946268893920306199416264845957421277774331991649646346658473909491811149902888960566271922690511102076089753535298086581512446806159210570124409115380677795848841966996377882090763926216974236249273105803704316787156758271465577193694011451063763771924691032246304730805210557462857620181603456920706324842292035439174774176091407567076067758731038223425200329784826834651640583469037363169751232717064211482649423524416780180583804391763240190477160847871634669925075181887205121170659733432875498054656913315880774894693542360982216098047493508590525686621623240618877373593516772395387252018543712180659589831167907620781556360045592026422393125117294589313175405105513903231450576981604565102041674008989955944384517718644221365247432938441500058400410011591203552561313231985257732076970236950803296606699520556091224333722151863441522925432928425037312227004349385915166389367978754984270186465096990048185746879099445334761099807906290950635327921353072411931931485316166351775662611976557698269275277180802298827371596529452814492889802374140110188134490547563851086808036399111809780084140086375084291926860056869822379262850785889747501498875153011871545386613843165687399721951121601629531265023848841882218131883137411890788076703886716228364817077613871669802829841263306524514155374364299215560133102302407389429753990168620911237662853673386778642200084651623799625357101202544630980357942650482994249984550825270715078086821725104467219224307639593590828123488464600693087994565850566199593912839533627455441837984135605811671584124273275403544655298612964820472312044603210685494944252853058810133058302701909019470692574517846703508669277552234349611407505724023947050401627227701869440825290458245460540185574415174236495726036066249674189097211162534065830855765124471335519234057011010587039512119185515034079549052496458572351251428082149446820172338492613952963001217421724810865969869562868142473603629535172792405075212915857067810533948851802937787765220397006419184739830828211502565303646009024871326499635620017917551491540849964353260872254452171163659178849638124291395405087458150912294757484673719206088780561352223946251747145425916763073273938069774718590323484686152950434589960397707465435257012949355502790258940217167743868247249509099432371842250879416723141868619549178528967868818857706749842522533431903712732353588421623140736558684883916878346963021979847007111318756955170048324450904662800726504765958335201398704514441373268681953055738506776784898624001089854754011852500500546015139816754088206732405007148630570804454976914729557154287738606649891981359425836119971307461513412219881104485723950668808692524318977186444363806126792690581008787394785720093174168307890870052765857572769561108331580228796707963253293440527535313891167082566876880709236511394386109927443754647699513585281945711904444678563083681496287291110225795091675132416330857271930431330291686591379053178149762743750993773919137476024567457005176712221189003440356599086907045847581517415422150916815761612874176098014682750047369546383843506457684522290014744204633657080573164088462052165111218144858990596066135276583021361675560451878753478773091117733121115536389462414041607574862384640066790614036170338440584033508607220733105326289095584563142981174597195928769216173180196109355233635439100753331546978412334368139039843523742986477248757394747793100703329360766707677134710202340828279235717799338888501948104663233864855800156914703364544789313845472006425626759876853165849603586520764128545421071296660482637601116240776866328829986634747075141786814032304446944545768037901318708564792215316223883994147933235491475418557283460573208219632532738903452340307046117267503533119998444729619542174622673200234427349680293784300156124686401513621421602569456247050386391964588955336273081285602724088816956210143873745535429732670053547515426713113712171521215165147252057440663928478612463362824701149115547379099887860561676990796564196840184317779203129169651942094682076088050288729261578389894500497327604324185355116642449722665656618630188391356684281029637209772342608215553287384164953621561788336745764274531755337175690100075956299170445409887696848853898011618599222789895786382698778841860919211243206972551254715608665034721868107602471760587960808014021317059196674884755080518333923175883258437566738665102437753122344013555233341726838932824102660376824907843531552678241065441788963660001827797462864062322422658251793824981525825869556224206754887416138212406357990207067158120241821722183276329762044780912710167444283306000505893258545450161493020352262668836837162474821730457772506281421847600022941740355454004397197919846176957064511029824096167938496626401244145535233785998048193327423422590675496252416822647172617667290860733778527377634858118127838262633227240367101042286849611021876133125378729949389306933999565471122361313796346540234701182359013373142488495022009626206090663726382457889835951120848847669716543202516061509792116682978913658985969648783214282843939439523877492682795051189696630994388210790516921096436559150254010293734736389722604510149766046124305297384167205403380303722463537880150291063174324480839307011918556444591182381790848132278605546820190023411066272730489381851812973882588608968937525965921161491901551209116766065605823141638014326293238550948102692005827580588481872751294651404966398501780955932288855511969571852564593278684477393440823373135108110186899971471515170287146097564239810312408874981344486748890621864769355144265847003954681177359850472238399177788984122155795757683005776910992227492233091752291459610950403524360356120368928179930815815701842593058971758626286323152461215207336780113410996347950421933573098497847912552014008290516539909117433927137749576153643671259436802609305134474071431226803118241384108984807384405213167052405568886478366100514077106697342852115074847911984725276340276319754936061427717951370135487359893311138596141343010639941363582209749212287940677403217609749100734005970428397239330313534374828451600574707757059217042188072854239326764077194798100311806614081002165722569789204949139499580172317758661201268941519032516168860379093468874775267264479873570450538233808848750288799990435106450246338511466115315409500658680859844260270542496451783309770969426525292901240986504019456314674793505329430932875224632514913104625948708372518862347346745806678014710883443684847361940708496305044870198567943972396740055413019741725305887914667820378402778278201719622570822072665107882160615305039403257965679008488015733536024169811204064688345007245530368822084740376134621628939499797800859917582285458448058710793804770095401495048757363344457736922632291344920629002998708420721108184110688583311058686312703160677354986152647839087249082476040991698031447146189220139836099124612131371428280250492933476053452871979736530458955600258757305922262853689232467209338676979635061636057342300056669821344526896685722733333242529809131463192867007861309060835192580142046795386374137244670479036869249219680076295364397070782889844960240017342769966649490405392639113475734063138793949652789310854522544044533595462869482764375230519037160269000763329146066543587706490761354842560002683808701238371198416908341770115854486595184026756559297790071699255636003127253946180536003373656670143726036483687197212918967710590371151623012385578677401986116199165376512812054103330184315544631389743412844520946076778250696293435669533091043401586015511052587863251729896836207288983956870599237778519075395256328054263020615392990601413435034313418645382131609374583735256187990464432271176898567920968279159817642992705241427704173132595937977530584566252035998632847831132100763415601313189140237331500657019596366264086954005390820641290026126795925426808876650790167577108630583930558787183353861226259618145224194409789932856634756790121042044964672443352795588112399972851622019823023885739299049925936744855543640685119862132868463991787957354683611034648911374051438978381700956510906593763143245229536437735490937132820601405052362355393069713253409306590761629519156744342089905468773623675028863997015583364820219334460846807497718740301172681668850259016069156236637882035330479008802825288217970694328530624613971305884972766591033132629295720191134566346410141090672809020731198418326746500124717086018618803688572547392343886339843055588939156498535747420676504658864001538305303961526860947517158722882251007305809957143485030992346782309559242606546265651190156873039312601903773703522685321644828233952117814516347875825702097983527321405411572970552201049392875892550187067203545544698145305732220561869669159708113060409457611383945666810493809817826133453267447143745282054448802537636301490889967677055534643926394854481024652459225698484539571174543731542925540028103987557002663909222275011298230236208053554456089261357078335362009597989767475326327257849599606975391035781989969905048507686097221297780534819712800846379422133846551493656031399364754411539827447678295565420120091637240706306926108742513957990531337324228262475164859941667662466610773858120926839963039878782449075391464172700986455197100167955781115971134916774641766184830424648481902296121490983481868968997994023276055883495878310521274481532164461415479107117267757875005821635668165065857566964257720302180636593471305326351408974744066636545929465965487071341002847262890109999556802761399797661347922741524180473060741323386699681582495196139853016337531877389567099957833475514866775761406179195918142496906033661188925497025062388374771819735084831415182744838378765023374163451721621489843222594305718347471639249764562059708285731064391016890892216750685648400717781042487565689478793183389689290627185713078260864862408746426297110856760101794083439035212816892874323635201756188815649566833181889730167322744367515067734091718919323751300217290734132007470355891662928485212299020690727386706654440380838520321563190596995886436370077593170561856224868949694884687510612611910798628313639838291697554598238285135334950014014555053773366692369057691998369364875439772089179449462914100763492081374410496400585486266475083374487769233866515429920278393564935893547060552426576932765561206115637100187626206673496561748731173458137742732268851543748306883282880084066465871017792781096181062286318073225075508348163000116029392342903094067625010655778950497732319802532407027538289660360537933521389577613716477814658105840593210746829581629499557609400725020243177461402964418788026304263668528183181003384927579141869415001225139920395551875943197041089946660104435542755816454243676148762260778572111288867262776145719613423647630423901182749437514321377256193650329098992539068512999014776595460521326719845506543280282519272521346013958109391942759627315564898267762101941310295355023399279931389529285285363340174538088785511524880384745083941103135030850201169471423507973181878472407042733856290851046275826361085916800064924191264470753958170171458466328265074523357640434881559104114087043909617343130853778007296350634907895582787649674972713213188297924334940034121723962726984790129945215011386860128372322215329493302358956764185567062080459083243390940760644101692551228555489366864084324656497486350437329460070652439070240973202927231354009270531906947963356036365999527108190753711474318261951602546686856964835201507556174520517590387878847874166951334796172849219460414223307801354606961110430901819067626137937687297466371009589435984629452755169882719173715089382737284987342233213902526561116810242537520359087636369692064442090207777759879225741401690915248161298664569020621682251249273523283317862228377204237986513583808830584064727910367974148944373932657309289744867500925897953626875372600675561920671230543006008144856258441004664548813770134597145198631757161722442841797582030089982962570506370200265247131765274629755924760531801530366509021524257760738102885301540527160240928041572313835464180306416018435154318742696775006458466384491901343419415186799708753544579331063260041620384987112156044185636249953516672156186280515142605649214955191299512171454640121350418934882093982251965354613283459538200581705040344670554025514680754383888234382225232429698235561933758920978844751006685524022086858100140742870392479956969446753606500918155859136820075108442071630643494754535833973611356630069174737089702828664640602593921254509925871590712210365646285721843996568469284880580713118573587838699528017391397158148986772877783096017842329578915434245637817187606483587525886210299896193112246077416785696807998071698077841670394631411614760387626606105864838086637464263324828845242442305044889577225010502146833315502939726814466205248857462254785026395149635590449584037691961431770967717691703248931275656553051085113203787885323495322704751728197404995422436779451168882655024094662112120003665903849288484233001719462832318373497394797287195490615888003897511558739525511321726130165098043531265835984094806699771122615453610826720986856488830264349747227384082100006977512831701914144388705016717932977817249444281981334442049924411484915951162075693908772655262944483976609251925215088754949461258951953518066567032118747621492902741271817594987067963028860611146856370013245611812523450765483723984458541629439180090096149654252412308314330215252815832583631346747718399936629238169254905026564648400458755106158415465901069308548437951127391832790799463140039116120558936366211940085003529349341290901836983815321826688498383485226754379213244375855000804627459940773350563076218477186184669658622413362186400880344129686998787224820964322304769331994978115936618760140988646050841601769400458671383270094218064887277778062194442424300405542035012686666754563608250652867952809060845977548621297456184225634610131946677623645764157503218596365331534953813616442171365650617901407470096168623249547966780944584152373935771638643137804065705201980867066545391117187744465750962803429714180327164043462085649257646248876681766501582504046741824943796479786883817858407830458079749833869342117571310003122606641159633170621481174417476569889334724043380986064830251522966081048901413213774969440654133085215557056692631696099490985275792035066843228813214765938225089848627200990903622873808114041744932660552944708681188015877798616257335829801615133444741815201752836637381546747407047412192786494337453612022773149984593142431661026861364759931965253055029231945661872869425827192153034651581804535738400530538109035894460202021051688415600614036297780059248263321527915245845706793195467655850751116618179749468331598154283812724683911045380459722976156458102461892712572811415563892188333836580479937100192926877303160585571841406563880255467811009013368033530771943989106576166507112239749237951888644720088966535469284761917989847373243683233965018522031357661462221329272734112534837299986420386909563323183334896892611755178177546924781492299882085148117709963096870812765816901031127419384093489779948704805451051231162389042311475674052428764735432026497733830785868265916052541325109438390667728899912838341757542321367535476205449745019201702781469997397225735895727734996044916534308235549903633671080145744913497506339210829094633487789487327164155575136088958554152903069040587704421743149700177729440293896430615081798391101548131440217438704458979130235235835052004757870307154400817643054280714418680008392300427572068836353599399959570106187926698390047354605622860371755524456158563364749435605197026440253007350696710081858074873038330221413946066306466309244121901016957478154135818379366488553944596787258479886552938272971577845819970081867251591827365056317730407070944803818115171123635096506374887351221425257707697147900840747272088817795500110482942503674472754567365002590643116895584227109836439635485318223768921555121817990094733674365800246574677612552941942341054383584477184386596359868351189185673759747339309480186848644801373256802076967870219424715877773400122428797448666784502125681242994287188196494794298998479826071054179998953414527415531825188994677884625080822842384221519156482995319227523769096086537994418373306742756830591725705142895994319283108461160952229568814507271072641502009390679593449309248968931259098447270492487750266577380038677654531901928056279642679024791749573927196785445047118675028315009422816958556689187950462334268445787299956439588583642409870994673689024286332894888980226402780990604654181993737304111989995540057321297732593190661785308087807550607759048279096653592274148401497424902906829173706948156607458608475211926904076609177438776088040914400514043038862100423636148343404262468849869757511511410531400474110009074269703915925868128510210407415817091209351938604903672477408782776954450109087099357890214079470773022223927122898943267153179307464679609320944424857067553352932126349698471598846410460716658968158531273568606859270537552914951928278484122088572106323458445259207130732168705994917928821705156793254107754273614260105636380475385862296772248971801717048306826011856922653208128508242596082632753563879689306758552229757502307887047342844883435752441471864609713411040801843860293593235180167827089706932511078588299527572878434560732942826092623196588270371120121842860662932032295546149274204505387842649660261398134973669543450120596152950181709762803472564966983845741395240516818810556922402167522512073947709045660217063771339336542597384726008945491736822626324456530377135910213320390943555705977482502567129021256821449538407247105137225543066304966035200549609017989054914657184657093755528310421574779747378826656243496297391356171877149784258358050295817477195952107468864647099994899893328358675731499557216053302825070595709773854596273819063190154819429951893833890158552752978432968845894852349312103959702219813901789874919598111400536775757670587069692287073708999659105445556605880386793342180333644375101973785327866829501187488509807923967726842668357673812656009647606894702245468037241286403811629110901577116709427632038371082128456966626691806677916805986788041572931708944000740952502657479011614478219280121242328916765865011030826296907323050240898234548303755771232822439141096646434568263859526703956086748892804603281050511373258894523786799377308660594478188432894276339962608584110849778751129864349866273883492441826786821939173281935969312941562667001607262173864992016394298709600330363133723363852440220220207628584800370346457730968351384836422681486139000892814588806922633122957301634034793173677509801676132166593726548513378931279117989731873523503146038404630478788378800438918320244438942929791195311474155050030589471589555876478810701008295369140013269698623512399586044240977099536724584453534173708563293624722788663544634144773796430161865147103997518618313165149692440625817206176325394356638138285923388115558766820109804105151297559247460735213798500583781590046218715082098257031673006448467435068431578263604886817285615812279756903105805634087227395485533366933232027893020786646083312700590592955015391454010785616206446847424425175375605868896671004346129863504971867713661830007001488735942074162269174259465285587484011466077653095978241406052558270382601486231741532456662245551343872389949078991381954892378174391842299737465510123007879121969360290792449765492020335616503013182828711799428963834929605822537794522139442405401745674767937547336689256185856658831480440166817234108733474737863919939234967441244814568323312237811799940111676273428638552976760139786577632353822532180170761273643979461533118843302688333572625831106754587605601722457334605439057583044944493097385233356951284794263463405997175026552876622917958924526213032000426600488869328753728841963174325115073211566320008430990055194936620257760478501406769248080913534096400036273685198394482944766311146523338644700445954356656361135515653451815928868511714826783412157035367421872263380797519110265316540110504644443439782041619220521757096277296565543691143540057899542726751762247377162773593275647158027160329226526215070956800579402464190057296478311173266497045638172535189361684454124362088476129824412064743290420257506020986658558731742410139991148849237467699178394831473784119437630548075306229021643888740303188593333888918757885736590221726665278894603815183110310271468344238458300538603531534912514329467442036289467428032044978986553536373587613384152545160680547226353570494494053875148249057966049864056276705538916963858564818812603320315712776295618062237752985707216581317914748722712222932909549953453018407834463056321735403696470178497102127856576897866590696514675730975917845189273997258012740062410091595695347595864826516998066866761706332249730427738560491311031955529135537354826933700401033737323457801864710158020863368324736139848497519411724911432993346587191487127152237297554252680886592304088406753711182665816054739158116219846265155124413506453205692561001459207675395310174866917745029687681907602969297921789569761531484896899034890031770014492850821766579844239099015890243869369701926776460497038188869223943688501369967656813963862184017785074510183882472201514636329670705168335788865470130432553416782914527361722614358042672172032899678024502398747643290386678571132658062357781683189833838476699254646007423114426616907858283069951418287018642588389494126747926690851997051503817148754447460552195603361970286711055255659470083254414017958204121291919827228050416553375007249229697238324796699684028079459214035335204458494066111867795200631377487069357889568156268872643756545854986966974197940362376453864913741206996501633069980613633968500591418758021460397494953897527744253933370071748107351673604127810365055046807803122602908793140386777158906239975334534765736013971793331241354549370997417151199675023739975866648626890833119788590933698901252391649602007390152417936997261500939115608032960234945446312188318556315978094535460563959301986867550838475398223160795441500338510539197578207127458484902173295314611329191240075109381572923245820197152583948732654387835548617508393299775748431067917259491197300989610154121725662263160939316137521225118088727890541923118175834899694863475422040931606347111650956559098387568476603491664233691273629041156100922019398432421426575985326458197745198236714456015167432322556755461587323205980569295523778778657385212038797064573583286983489871833108910333525916201843959690845441149622889258210044736352214773292407006764864069834137690949377260218820034529458886647997240787266188242086765886369269748883246374330907566611145995252797166267461905522029182000475216558156864109411539280856958338420141025726131115435260057358152460772853906479777889226401291532535112592031777564980650165518112532292164982899175911103303502497813433486665994965099305684665433706150542296702513964990088370910698060116893749231435204745951540579851245775452972839825066406496908501395489577234686189101716684780986980686894681834972558544667871584247837171353585462839954723267347846564721780661182107521296060759608399830942754881713199934262467421898731579603309357384197008381372614944688102646778741129281750785092991052417335595029819808270991262300338714946574463513412580013914606158745695624367931653608769329612072012756081322637032928767523516142329212699052054440575547598602420035861729004230837614685827774942805191059265161273420418142026292802795030753166775640589296853377701203097027616705769505106998990838267344450377967933581597569974338156149813744955622906825921527204772211541180404297459875624910455684868726968922092204255680040907003399572040729789222011347464338667405286773873884439256822055243027938461569923744749994179815708496378704156230870551902742914569614301265658989292724810217116755867055228289892973318503249076195707599593037328830336377144691438970438987050165426240943520784423194781659737811524077337562347425773667763533879179175475586265918108265115194338830653705457146086895461483147455502170389376842333177538272245745746322162547889809391446814928093538359709057115229847906572817625594268553397993761573836445561192980980367782825870817753030248028620869694980016900312284206255480789911474858168209030474988232818375729420909184021472064807568217600822586931752821561981458104566624558000809627776979880579691706613377516827591499635685491991569118873035956103099895437227782259187952369319995507292181658162927728015677394984889858626105791718495737821833376090696908422629855175846581642700320534280198726923718747884057675396350729069913911767993804981833821287566768305731610554961820121694244374749121626552810587156709697184379485864239092494443446350912115539911089481383719493263455432074440264766361154856267536865307185423766317971751932100093008706438116236688134543234567770193376196649383139575661989102459068693907031052363683436516149980608722481182469945483660429420923925125553860855676536913310271709500391754090949830906201067212835083355467790823061164297707738510399394258784771868970039449392688258672917090046503876861071156270058852929379525967770696181429566198460570146526385602406442189123558727409230586627644105758753636217352128591874175722367504180431904621377066136599089519595240863662925190311877416002287051724489733558337557523781201073887064638759976816668896251820338279037014951455985162627672223397758690187049533354085171098832199527328954735510528833810671116782374510177685078039150638916955896215421677707172279143142604934153801680968971075260841527733092761376627118089988817848573987060331868598680889883510865302773978793472092991479577950313956391142283572054433189740257098291521070400569464328820253635714336555776061159974235380732646714811809583424423621725097578195268994598678179208778827781559332933260810085553255192165947782869488460161487998507196547085793368566046234192868646554278198328537154761638600285547983308833046383687250882626906686779201467595930910457355639791966899145320641769071844486032087390369344468264537515463132727894378084661673847836124536148827898178028092616366438340192520997061415241704489362469888358215664461954633082236077227370440731887056717961142348139017286289501786496199842615559697642762371497567799464704442541448544988812119443386392537536839423965835218529392495208462046127085028681108065513867834412936150686792673559391946141269652884830742284108841286188208111531345087439835295948782254831108123908069292211150921049646432384764811100497536053061719221921545926449565350072105964060532387404621353229537221225236876757394815275153149507921588616365773118694428584123492872552232747315514665674573612832165555394793988747391915650294600057571825984303617014558290135701877368975477494724244543008835565515793630121798973603723702649828333557478080356273337600692492839066792623633947223130237386369164234320625330106043141215803059721556398143810447293662245072496211999103245260338115180559432326979158045104929117805285249609591119795863753578509580121019056405074215767449037337214576233904858631174466387288880200046665969101844287273243710320600165505338138182704648671669107014188950843161886273922399561275494132662246544428578185353878218487341595929396139712102931869823493108396619560718175463685375307295397571969036516777128314794138013478773444326590014868038827986435357306909274671743941582927654797165762187162363773102490140263126599564149011542933289702452629544233248651514409669630781280727850626267454651314891334868488311335315607606827530632373647116955996645968932745508546338180430483701982768926203196704595516275141774822809796308767339234918489069522396100113848881097827112450535670178156508962643052773936233572175133475071848353899284820526131385554966172384059467610034150830066727453448148404893313586839483097444825119297007750352813795083242221059453037865125753422725442584751773442594855477022209866876323620946317656977757445867358834216778597524672890010092958363671888658138820479680694457070513874007989313792958359623849379494590884243094239321957483989379266097464423246288941901714073300580775063557201654447919673190534588618809940031237438847770596589165188257334009639289852422137924849491264577207025582712843459866712036931545508904954776375292669381170520301905002157982787693458841457363011905745062591384059843516722678425602477022749181085870305602754489270097707387850193758681110833486803395418008607496158334674336637569776177505126289241919525977829446709989764167207556923973230176725564465582086078917813655949666519457485185388599340311553507010658710404562656033383234394191066585672992492041576451361902414124047092411095752271368937870855742824707013350628954442307454600713841947727972526878432207037499192725129088884937951795188832743663389696459358005305013880074399642610994389529596786341210843251006220129548739785884622784572022622939696453223520263980181731108341266256727836134048195858243741754180320159454915566428740912554368563449422989539843877484388816206718529611011743779289486675004471080240223951016173007714448834750713762505979984409324161156837549460358442388040829622661747812842266318395327531032683897259277986454048065604238021259202330456842475397879948178558048310067393970440087048255210825130745705156002714011759192268316984564926021497027764817098638389113807982263873216770085999678638653423243994698750640673255375392910647005930750179842774741529650764707691480902953902360836099957043239548665682644851320672223439491040060976466038504353834658929932372309483095447940296646054428679889878375060786493947480573553616649624268453894425774689077700947000542176891973788027283558188112666157777419482117883771023445243759670161241997091924543977225731172597468138041999509940275050076220257794300940568223239595827206754156663967878883484289006712224937142070704396298562626506541696873660165670211959064128646493693029521685299296656851179289793921042753579066638463644666056818041030834351819937622947130388656868342670401831255251445454763299319108768792750401678842567548449762123439653694628234133880457673534621695334340903246606974459773948660373985284773165238645154802788881876853037141125295061931947305254130586952609564741941967835951305160219710911308800570259413226003676113637426441470846873761347263723919666846921297159359652154197250418250616347105896652245561090511206986908526862426341050123674068833279064492055164242154585689137411382283609716882774061957035198682310983256070890313769983515730048775609837698461905863312119817709122891687780002609064990534836500103273672260627461436692642910550702860728451394450666989416318371760304998171657739044109872386482383647665867890266349110496424645351639440480465848767877244400238540810677110984861717833833523799234307498888154695834394985126199732705585719048505955261376902857024657025068291811783997462467774015812059284763496938576613128321124845481687846168832159510150450835337715187615664852814152761766643324357583642230154867950157830829117195384046581283317883932540186848685908021262324317218994735054377195346972775815119758245969468209606372665549781166103627847566074848274621819396653707744705787960164202426419318045734612729174443333879459899499852952885889878062088989012132300652831804067216102424297851525846043349700492329966937991099287541739957443355137715375243215383479020924791027777324970031941214579852796663713615822732824932754673652520955380512395861503028533181587741368412451674040907397065362237607002837447170094430046695921417341376202464897563639435863766064516132457742266263247335226926006844879589337840575969975379598267989729828688718339251463870663119217317161698924343498572503692194284922166639836227837226492375745257498993113930006304075219102643470461340593902101008299415701822878521163202220992668332858989428699047970233026016341662716510216518447870981408353926779092878481402049344835258680363024356120719503346453303558581927719347992069364118679502475805829864496070713875890617261548865202987844449262545827985297357569455918420535363386770371372584601847368427498557565957623451410625807878689219256471790645689761093703780415849951476944190388661347647498254021540527004782045565117272729399347271913944359111115853206215346916791086002020146722992210147950944801831825688824375012525973419792081041294421099856247102837155466026977908250472235223920303641055454553818062421845893815146904697778822454896985123219917839736401082545019756456546065640575355241922868519006269330997719391933383100257500378738564173921423863290833879845475662410749590726655862608735819325389593532784072696864806119710260353976557734637428751368119385314031597424726665727383504367450443786015820579842209302294324616342829775164443035560234431451814073736715497270725263203859517329153114238143143017038762397598914442477908298364698777846261007809501485118228934759394519972551405101063270480248298278346919238335746661345844963721683570807696300720713173738665994018147190522760840701611935974116335561517775154705021005766579960643725188212945446882229666490843663729893701789867793169813671739431869015345151785928610281746319556367091078713555650066359342208565049041306354262417990326478707718266740286455129817702179271527686569362211221229273611627542905897559017059885910130267387727245807785366683805228643655991418466363948782677667300859151564309557369511549265271212133045085493152314458009933873094986481833885352554922638671491840941153581512529410457439952277204157619350642178327517227508254974888423727223540581650019657136472743133822672251551929878950917002311959192903449628070797973627363241652266151354510427890340933428978094475261970272852554250988849465886827445354892296601134533861050160360309506772297431837311535095364696872500391560207418418707186417079991893548706706783346972779303710215698736028003541463199276008562266674711199766040246628148960592416696513903319932417523083084238739523555108742858309486266872090488171739318155836398831055802199392200893098598191661217919860516035670354203202452068040684480620125562489972801227282557896510976590937627698432866276425274038469284282627708879571083683045637632983546458551524371474362306550290649864932191995699742106371315945330956010262940160440196058067075281063816531743407364478080730058252206299012875476786599821583438298645828336931586611588374379805816878504235674429859949300805098911424661325339430563051536770287062272801418185041905807564755962476299353453105492293546017266721925743432475926068739489453238635579597291086972749385247030161887050121775817650474020689523723171776551724098835912538500305451358069329001179242374958133800422891608965800645621544352572219980999657345063860239431837539118238146408883755250334822986505295842068242290531408480493799184603162713060986281267343716615067338497850224867073440460767491436157502840699453638488772044901374294462363909490960819443313275694347650619234856286284757668757921826127605890540910759462685215783303907638139352138242487571430994311352592197858593909897383608608989964815127913454493799180400813827445752734065569256256181557567546557758053593552666421516784269446610582195451148161193023782748098498827131890211178525541368239899896429543209645056788191444247480333052282844405619407843787795279725066214805534617375268183846176089006423125187928378688136207956712315869278773803171557688526869292415405702707034969195808376243023338915722947728135137786094112803124387879686730605629027955796712773583933944291230065309710649057746380815566904748119751207451005127517366324194503097173662106560249820422297480985972462796303330133161069404266444945878696034414526942771378121338891072134219784392783413071071149539094488555808045316916815168538102806213227588280727468886061899955136188566538625747649008453072741871840088362981280933577505676747075173706043447971486769827907019523449797017164992127476473840330056384511378808516090800553275810243729997144430680017320773040023629687297704564746975232332252345807971555308505354166017371126691800598420855365431793083953904899403966263981193492594424605764426999332225861086587279276166322978354961228644094701964241121663103089179735091888378234717388819094166657773716690010426572342107697376619005122496128126742517639136984168099762195176492422301237349512304566167777540582545322550349904454801734539679588610717368402040811457457467797369326499849661510057985525174235852171720574484070752858986043809680048271964887743332085689541636495804312896339268350857711287980990666165744056381895315742512538831427956925872323200173815401157402877824924253487121978169118810225554394600342772064424206178933984677781243279274533269511041769936382207201301553079655431243074122268402797755892332495893462516222942036313660642358890857575231523461863807430135916854773056115805823197183852990781348533786489468186831276497650536002350652030707405199390826946794195563429998383685796156116146586188374834740270374235848882602078374234323106010562179057055588319652089068000888202897124198785409466185054192413904866434745702919229292936192550988326828868561272669391883288693656635124139463392216182842775049860776064104403865815702823136684923417679012319203498684142243919125596212640137368151210139980870832942190403684360760211871684547429881392951733387590133858040202811097559383864634168119083414142466490759631537239558984443327679935018230385423920520120221227295500163277849569898244145563665966143633613493808881629882197511624732009792890402793569760165373031350022389963815082432290896696946272804269840986768810591760661220706282136379394089224732202043561342298038075505671830074964669472445965518317835807469664175848138121436615975443218703815901311064791869316293897506748720256635871495831656123662936469127746511522293593482633764430502496434267687998823429032675213033897203972187761643939159426510226843711717561435553665858960744293764936331441597838418594670700316130216865003400541203235302332692261367579413764211111130498679724837164261417761794391482148074783821502805749520623329430631846639703740596084364156660924694472338835997549429931482587441232041719927886657242439546937317489546660593698243598904577592727068862919635734463345900169230985798453972216064196079703492258487422974005680755169337129637742557347241507130385619381075580763330287403496734549914845571205068016491376222297663141908305978378301395550291492808200838708109954663673931051809746832798890872717440956412808528443147882272515302307037796502254876293730861616214673687068864480346183231052228104796063614555654816820642021287398307564174008311670028599143141311682712392253080600727971368196379490331857845356744545545843562612906321555806826111823508550034117042723855164434435336913450109337585481466392032677304570187805326300615010554843831746613594827855111740586166862034141463347228376405922310165214032645186125781461766550309135327571566925565987912920823585595031072717276880190007327361825130256736830911446399959950017797607805365105783485330676963346061419968792930171273452001839737359927856277155227918218564213468348110026286090456205373571021910881761038981113413287478515019456346680466871501980594287381299130143748966183390814046749337046792110489356668387181889223567050321574835582657115942890969816575335944683278875873955116448055831883598214031354879055073276499297495004825817463586883704405554885614092317715760949095221549283203221699260200105052944218023604855440605717397137059913248410624626714256307542952389327963724939681766016653736381630548271139329586626576491063761787965904969422772430531897334127372335403561077978645778011253904158374246721365458470310139039178203296215200870397144477206944637288895930183428766337330991437450347317578457351924964668288555451884158795700700740868265750379031967557982283367960257883025425985586405977264660744691076555679164037105447062072534368820421946281309375549023277947674352426230089435820495252476192727224727825939778290328531943078996013468241893281523379028031053923678341542859549283772566051297602950344815868273564664031471985013380226423825144655828909922547270092644281158482262290296658809998170837360690537167309211720033229980011857978407518629200845973005337551886854676732337328154454143061550847121443445146807698031795776618938149165318942084947371885041820601181882175074044795674128090781968422646538850638600419014835351780847511929512645078578568037175277488446473778293505126211928996551996065863507637257117171473578401308987598176265922602791375966040182726666995088188254339481583477519863734547454590022250775480072395231464833254373093340560415391928815867910038057815796010857089860986213491181008192476682498465494749647033256159197107520936469087235458736413597463953445893899945226169317287772201545822483393518169010530208041294777096447185723228036484718224382971167336531854689751342159871767022656875473448476885944380744074211267843719882216946393012432299770694890442075902271145198346559110124023456010954792325894435254231159543199842107507575297737905418030056830620475182170731634355603000801064084163769984216827727232604628547611791602063169764634262946676385211644261325490169046634417654131650089714149176455767673371090323933155504636120381398554737164550151566130552097338228643421241324238810829588128073004705489240823972776112545684127189488770127373361594239092385021433448279837036661685390864280749669292803433121576034492309122360744007451998136914755759120492195121921336679569509504029279867513531847945150765915487442186117951940016295065582652023653805306723346895427516405205366102151136786493758420577589129880213887996467937834057638633568237739854488088396054876439929143237499059117837223858463795475289544312960006797676442332572019567134799904338608818131609947221444474474034298499143794191558461151924221229848393490721678989868492833161520576263633804426518297277456060396549061719270670798900988371437462927692851513162052475375392410173368594632271156382793532936286462642271530021284709502965506967846786408798179777492734993033327432309185569368998509068625711691365296890212146156345048008578246840630046468859097551501390539244608082769428206935956783391557075285630884311140683820207912738458607519834093215937693235165605675791826874048295316177694303981502510824306536924172882980973404998742651890898832928998026281597188571346985360413549524633886299635014076445725158816604845433130505258283542559275781707606082699727281610459067684884050176265491340521874220189530408957929022088547156354366296454416543187026079126678792293217772461471071752635593074265993928881117418758799997002083764698188922051025332042190163927029341482098275476289007325485733592142460465296380178585066630213735393699329689284798513445734099369482934430485868876914628634248856154082152332159662131515130392376623124539159086649545485213666035181947037961796710202477421893895944803496322864173196394518068964604340526556429521701094633314561136755824884574433108168495349146033094419759226472781555774555385081725772723917543378384695907928060134656105067116969978563071584985314554482503487365452160431332544844462640976856382391606965637449688446477192253077712358985360979975377091414250897786667261820281258107658249566429431049433189113865376869451311570142356701091372878329005042029067807571733397828169976954477474777641152844790794608472687537224648005665795435428674264567986164528995575684686661174935371394805189391332231844432058408339996235159909001887058919016984460690020653685066833504190619140176482131534811139597408949174279603891360745591454800286253895209137718494425523410068563589783835669960025285369191144096801817632777584552662554089391293291247176085901850115271098625455074252660853014687302330942260656640192614917328575098999151448790629592915287261075162881055054980215994527550420800099740246331838408819563204077191597410396398555663693028215169182497158125267227660601553120913372049954854120635935581473040529389970349210728528051046660178416483424344294255958746818565255562989260607962188273934405998996952705310592039944646736235367335613835498025620712979321963859331544442219128246451571412718494757331969883795186871431154231901960645906459847308689993716987336569494774693594436446728756593217510799822249240892826787087305838835152188553122249611376439367673716191133651701738095478920421283991268608791627721975883947323469211452171914478811237431639985341200365058305358948295789836035184661392921078005113327135586814948243879104992486521551957429865541043594313491810619029981333490429672418276316793443694753600855585467065873851296816002287599482231035069569138594547143703293880784681183551875204172557557842972474677047432943825402786283002873890247976102965645839665196754777952128465470289363444154520950752695222518930577685102216636585302673772270466571908952322518401286260645189101890813468900891184589760681040062470421558221469534572885852736183116740018269897403511365155031059658424890513822420074715025650776972682143541211800731444450144713510433305656575660477959879705296399110110795660806774503220521436427393650514683737885553893790792893926165804072637406265093172986703454625127420741025125337328638752946058504901371687385146326820326363783614985754852140372750102683792482688399167829779690002383277322204400343539775015176698494131008372959832258972255356283789260201498940504533326477514922892478272400284638261470060200722760126540102243864661554766984285521390312614581800253552630946095039165034050357817296513406759797473440390491602085677772993843162310325137003062067160974465811298488734739693126643741303890906200291471270047918015822372850164671302123279937791999798377952144102917469187105386307610854882804200656020157767309177422221605229483060139741736770829806734971480093765903957455924912562013399180710630806890303337043643902001223831141008728339095264910778907055272272693714664669253044435455343572448941710391282757589296241816280412448234359285310433832928104318448019580325766887041582400641829459232841394261634852169591656850310712639277334363750040567826092763071605409111807354854403721131087636897417212623598716777980188850745989129151426524406355986963709317074651012261582626277339073605847462332051576787806933877432443286624487404785502063301374010457856697746485370742863809138005434025552465534820465992147698161573005224057243748343510700235316008395747963337956622293877739680098489608654525822973267443639716465080367279101086373666491644055550680900162885362583098350226497815904949017473433391000472262607216457032041805255318452870448589404318947444561217716490419741409711468616419430344063249574351375607540017761725364425547028683098584608062655027803190435254762586455263101069039277195533127292123975018885310301304334834178517087643604660935171164451969551205365285186289732160933867175492188993278860606073353963816946015927682199461966957728985848468779968282948755125308677214139188141233556484841565212904684173969258243566715501149691447109963451821488363899522915523585223730980356325460056032523887786398414371010817018820070495778749813668687430168444895468747299570351019239647796266493081639342785585738797659370581525172121852698788429746609961650640086621942867609337434995191069465673969953846145047418338773033139505981302077719777309832055345454176699550198012997140911476564157725299115402334989371456693516012563754108160141229383270604353589516530798910536013599165803290222120137199954945795292023744830305035125650570560342337860160854607150389774884256167769397786699523857317258029777498447728882340582209704971445046471847265890394632105576228271879154141325461002603520723306439479883710176991558262564704472393346208694148232879814261859398628920050499266689707839329569974615211098644351455413058718858491466337873383020881943995784964296032003156884371375387245059238576255963767450786290056204815262262138522414888919970131581710810851644692692894777418288742960927120990877118600833893728440634858929447417600961462336867587309527605188341211719566060990985717786175720992742107737214559985152000544984461029166131680471912923302097705568830147710279404416651081517170735274120226539738790809345572701305294669295224216693801604215061656367190621142792888916634917295927796544004155459273144718631884795254326934405392940814976533932189913150599961937978579893306304982799860071477529364240123374184595020739637626456918198694538303095360588436911318758213277524580962444687175121407633747305843239512615772299524699472374816071450962599263624153865251931337161477576472957418318669391039957109942920101385790565047056665692777866013898037591054239131474122437090718996940306907666410034734779057660702913163815519673444803015466944140055610984416584957412908786836114799227427052898241291393837516536320005211053052878019572329772878151031688137732197289206038350318982085049318475210138761369153716953891223333320921119058337122289156432114996965829668642139070476514195711204666175011839536547326169077943210412211222611034075077047714965664090615159026279988212411824324026173611850435736469515520870576021819511952784631328252600332497628367986966891046097449952001651464201211513589800001471668857593639385328820046371135517966035929656826289478389040743095800726312024351895426841939339271287214342825654240901359910614245512452554635155380403200668810474140250026452891072035946419743601390791270352423035189759035569209097146995031096409562884708321591346954560131164175056042660115469971550879807261834517905583108474133150800876509413814553239517477076587253147344139254111551401746930707565215784517975257105082993690530648436496387932037456508243284096094513448300770775937209133333765029958340500988190305622827018686133417298691637930557706157107666940282903942567384914630926843593246347501478581485184058427827247095313819899190475100108420534053253203452281121129531407182758565682761544200988817447883256237861477642423967003594039860782715832283289803787355522747376668897562874066828860866358524215288637866704145371027971833202123919587720983100862796675059307227804191374167420886234530514266834904211754221258503864923398473893212083757225938160364733474378687633603751429367210188614251203249315332190744580103763155630772588770560744518782862713653218909951455246594563313787246998186261762126415036726320734546270326477042427875395363450323884374791179651215482485338318522640675779031646449846457436613324576682343707359154943938271918550567855632587772847893585105561366884191808355962152078402804529331953097025629483426434803167397345723210468182768678481793939773965720769487457501891958711926018644871816715746529021546460809721548597561211604705161551215173251321370306495919246160620458719799040762128027664698389896638088597542539671928851496343269465782352623599183928954673617606054563772693912258969137681847906727982110794196800883534453235337338354872292021996786697074395733383789053512929049726399964137412782086322149210229481384560372712552165203912806651581974905693926393838169569730808751558550427224094600213291268329381580944057172607035011205505160807983318326432652794036412831580557493417365575089152949003522114887293819225995659923728708862741301500707309067968054942333241167667041746805942830072357224864132823100889979382997862628288754759922318034927413723391178080020516390490744902928145131449711198671983992474826420558172002958889299497904269566239075172199562198913875641715415002546803799832234812936890446265481799208071127546413926616299769710861870896032913277479334216895135967519002601748252689402732795785982604653859908188229433115715486193788393244035810591036936385596729746837454663819752582116973376104195149987744030784420039143846484538634671316807943752019501384891825886306124979877668982928349704459810351979373402495362056048230059271574407913296462812672333685414433346353478058319536421444945295362875094430517167473864702834218120857515733095904367000354437838168993832673050525617272178044282624779179867546685179720588503711681598886262339866550194547509388305906257846984913631644077598030543380695540364246619257179669559371820023218852749089571411763615358281604030922061974074594038489660435228732847158970685042977366376436423837168221882676854826466911499117957892722003323904323281867772842302729972297588542191123345843139387969757480608679196029406572610524147359883733242823466569244715062998775471074674040039852346001980530795943173683497085054021504980413455183993949284483983772418695827836610864027532810221431514589114173647923883992796655928383370641357828961150176904619440998040175120500288363724863356705687800296466406566639572862709335111693887414669512990496407315692909302848286513054141428477936173253075499715506646320562548355310521285117278761787966033153771903507612927115960382765375523386397188472973236453587258152507254624492417147740478298451210818383510549633304165439255816925167250560219584418461674860106288755651040985473561764814748399520824612543440621523014862984437239609561787095402055690856898383582041088886133468239498684530336846519480770641868593399922138843748873258115341677389781621161683411293984643770592156551386338502797969394588688001440801104561397431682233769740674272378055223925971755606467765910515887658858548922697066014893365960689428346293646716203796458758879060267646271812590810625353356067847251871839809156293897568064686136901761102124442995036126287914501695974769976987219275615156941887161742637182273121229653793593338678614606051840815625081839825429833192219220876424958968828473591422634436288541967621892874872185415374356518505254864709827301395994552236006294057240652379493308271912795048656350514828018465224086220201519229097331555992194345233720103233841133237085037190381268686105088725639489856580902328504872586516311976394704227715634207762255382388371340729206580295198668970039070862576673878951796271243188530335841843554264032797862345060460878462959260724833939218181701442517630779275925130637939897411596934001437736297209730727850738683078878642261063921931483850390878705123279805763721855918343606534551308711860949094935578202735877766562614931505738174175597576007197251638023227972777628634879392633932911528131526948363053405245510720743955394192234415265668281057304560040044357095567622613035414706829586261043280859219229614499557607685879441253048061047999316594159066273947273620710700043656416534044600071436073218052464018477467704435674706019831909224552327542112886724213211558174265320871552143867798287956076801240562637733242772689927733731791991229259731897385833917743671768842621872320090823881989391006408906997119076417077066658972359335719758379327901630227693550417853446209215290083569663571550936984259986753853732990272220515589614963601464408266959810136313963256380032233220773277405271809423169813754092333058670262987832702742290928437368073250048557926319887121403747039233457517214740900943421701899968313437126964229767461511534243161189826003065531023102250537417985265222987611744022770681745565862959408571926435753497311777036603043479176720752811654259630166869009768339033775426832913180002739592741668957726806328546199424989794870240759277540758185646026929713843814461445270686428691485606319392862183638941470032668722884351428117161122964573744365261782031489810322981946163626700218844162085001266051626410247408314800861162482634235556011093644783370048818338057757505339014969916778635885153961403012011886807328174687851385503532706645926512355649569175050098663229847849998257538829309038445034260791299564999244588278275966053558259734467082214652635919134795460137987962191584261656321510392778540761097996502139924329200471945098542527641128258822390439837240609815643133676273328827590816997758438796695308101913894772036684775484080861428551669808003583915046080339614643233566405590709862557878267703532155344671141088178702676654640273073933860099516474298228366573699141486610868417048242105698663757271397690340054909538120423431020576275414516652211647509143001542391996506105561746017566788545965007977074668064897493964768242740429269853330018955898492282281720587270280287164326964621694143878352384777207239222546468857293622222433085665004980975688643074998063552738863634172302460772392151761242220984034387295220814123099869635877385125135812267056437420192770449837334506925569025763090069660263370379441944931235260603974001601611006648523113396892096050812257411814681910074689141563492327102361389705443080810272161251462382849329604291234574766916250834820362131097978021147068405082500418767722998473431341746376738497949683713943217464022062445673072243005835225593681710705568857231624688333297233709438728439393225484326878785745015464615757548296215847361972208703814204752654435228605973060150909248250580579499719353495318365319142208003600665830892173073362771889494994290156335691038878088603901285963883200593409445361178179421169127220735438806793027275886336976912164519997262986237072503739115042826724206687558903492365494266770416721379275154014664075394744958706643406429311765204874158877600896146920071243434101845913847118969322971089331681536566275959141469735346989479512839807506519121430459982422861336591996208374646929916173314400727300532596393512106831126136029996989031017985873025242127136066602130122414500457215288444145478176929140880805916429278459002581379641192686242820418121446105886439145234670510564036642281850376032565399892715783787078227660892546589238513648535339690221157630644161432046397299560438990147461232526742858583685291330741403147186840374836514256906506832389484148012264951550336943778903670237811205157648951807995750747453882978225774446987282992942539750432489317336840474876200239008371919215329041463448282490361345530141168523012288341246153023961785745719526136665330865356521122515387221322533628996459887852786582792535936372129100346831297436165938501720978902610706211086187404913346650938639970014979790695704023328231023723019488781884809248254593389026277764134268285554870852784592824303288268955693395004606269280911367684767304640424521045522351144317701650372504952954542323871796263970754065893225175021253026213661769255563155289961497090611927197284171992279125101561984647728855139240950003846050151986041236556861180374826522055803906633374295340612410697951830945973837872583439117644412786052456409493853008932596831707380540733799200543308859918852598586882825974507526434637124996114668990939272501058108792884703276963808344375220638410834267991666985653783232236782313726806413633616143356769758827643567234312736659433059844283286419417369784134877023675512990342184648972183247942121430652670556242023210186686693441494187951712325255104202965084532169851513475423252010779403340555086420264599542045437386860320933195838156243581631205937492604567393394050652512037588375914417635255959950984991509980736201830198644836170985071863355345136754002478843852807716730712170175711310136652363290696707361252421941532904098822778617533124692551647839243192987513122347947515891466727194158679755993500956539189234695412855925729462180447935080022629358058337616516043270237558294715023332118080313183656742042834676048333830997672537766482591388270031327897558364851627967405287663166972796427523823725207041309575700366616830284265540621103839265936645768407495941462534466279110535335791462877411672406670181593842923451144649367718544736892156203155450338160571465736648181665440236027159317290052974614872317848979972109978629916345262842763003121635795559676477285109872159585421599583084459587650536608714316072323197092103671353868773974804914897670957697849979984270112348664160715791169906650170746443708604951140565988270665247014584703008719704123920559397394043713422241199557851751184003433946366293204887250953250406245975604564368196772600658043564103960383555620332644006232082226850198462658374982843785179137377700586762875482821644923263614964062522446040275160740290261642635975162100591443570495359439281191009705184194610663073655824565478490461169404186151702450921252380883669428963978482412055104709911105202112653329842258739756636216731369726879230079691641282738271325828147331222310036851207694906542872973286272002352617295871586417474416898892643372274180229940396792951341458033496403612555890225632489415267948938986577220679600955814213509998299817483625915987889845869080095308294389151870920514570006590840542711933330480649959653594243455207048766413769899850861977304277137175796739671688937354500596941626753147157837459920889706338489763473090820089516724737919899898598304679914181097318250862329783011907558676323033439902061639127202491212833265898819803931582116398396658524953275965274261362780368659447634276505438617294048323332770159170634384855988376355243210155559852125886516735477000455658762546662741542010374239518808855401053738368775802642847096410026451374494750770481015788893209248980401558462750577734122281225484678716821883280821285264160080144915636275787681076892345185935025918561463925974615469794791334576586452254472686016340062933244805643012606760761213767960179982387418144202655171973830193578300220134274068610153797075593284755498213124541257101863076034043481087902164491778731431349153423059040883946532650827849313018830095279184232498439659353264090413686255453668003761118859973275314438134292053196588026270307217268871263219959634812969435951166825885915884505693313025857704131819637582607247093919706667868979785057095096802860894173918194066278260430450014272532606285099793201041089428986934164292460288661674438068538522100306115621746806346240838052266332172173038905638215839734154646781814087291844818059390235817378423865395276783565573085329182462976759703335343778452684916638642729727488764880723949892821278757684652546077236162124125080156007507375675527556023205897810590991394816324388119849488517508275552557063229496557167774742290685629361359204540209556208433759003815234459759843451346492139274086193017982446107147134277474608402328741119202605397582348136779445726336796782919334930685808156311435134806586603347079111010239448262069063486127712269746322901534346102626154437758710985998237186648833976213003611542074954206437879287497325295391684493411657012430018951558153343966879887353280314449691785344326291731563828703527333676467776846659512618735007900914868691398113302909053221046978312362101685211551335845670260328975188994763801302180171681762704775411537882104910029217939653350633650191097975186687889147111930069070757640461275773154384286793706975398919882445009210123504671289372316060428122301801510766435850040098978122328263593249027650579569304851660805248056950600420757628749566250432593469228459850550340690944003147670958118592802148645773623453421882745706091149588929618741877341304340602778296403123038903809096194042009854727029443831122436464465434904484871450078400853499353003837959618209663539593617472002424368257185680531817764734582138826006719380632537186255554197335831566088367648019582087909799821520329406152302050695227648011577813471854762658180613184697642114622875617572627723720551922134651504875868830083924031406309971878969555704952432883934467958090243437594266718278887529552701834726787372330114482961330980856812547360709425013498684415452617985689479187817572593182702913763685074342142317659239542550678928938427124528596171744745273809373287017162689174958174754319942008404315614506755602158242205385132990939920844036585134952660128012007866101540924391408635196845728339986351446395723800626833372813272724403656301592268115490638996886169149113005045761691686953975468704707125849457200066642697706246872644313700088751746378194269402117153374011118598835717212453642218866347403878467094351112251633430870405268035071831205251304939371526250288606488693682442419240627104926497219205722052748509587763521964023171728165976729425953309502256884244906781309039324795673720016741341763967037512691473249526056693496205421797526489912698427270928044085279092207353788714088246476044861222718064411670123590253913693264721802017821329664522093308041043746815710366825668485787148072953398594708435827846993765935712824747001667400864234985846377985156034516174590884134655007901665509472647235664790085352661783604941998172115055816346587847990504017652227500352918665415804625238657627964233097174993146911061496109755796311616579602580041366280809321312525396709793066984955012682118141757495662833132038852643982589327860455216472806747686241401084115063087032646460935220765528143428448383559133122002409723496243224316235207601565967051537108312915676774781482248545740425647928445163942591835980573323931538292107271565904167226598618295518885041842699474530550629463561133133075861171735229320657561567564103607287839140604423175308330048691190911071072406038122996146272214820310246927869610895533474505883933801159896506284360872088313623091787361962253436990226566465837951972392550117798985740687519482314534945863565458316522603639447313852863021441211646029131686203309761822621374018028891824159782679803771413803266797964605207172482734849207768278059207421257751944431837275977519232877391802039741157548797336474367149341653502195966309790044914948195123472469285405854862496328110956351796269335272702572440518544950430277341018798037589870109865239982636512231458771209924105251764980578483179861148254004821853827047710798777014460445559980761968122512352188615560818076271555741700795853288570268889112902487409599059665949780862469696645350665382968434439445192722456749530513884986532275377504077467798077034366779993103422801843215901730673757714837975170928559220362635803715591277324680090483457772635566304626395135868244883082567984059363597950848763839160633885048165494916813247265731601635819873957281840444234832110504644827333807362012894400562087239808550635551691781507969732514245685934188873921623924051370969774937726139566727493568955765687158413079051708706965677117582756530975124882355001277370743011748675578446925901845581631020544695036464638495207464818582220152969200435074083502861494787534986688516376298196402301417200599047755024094724192505599012559197143073041184645867409922250618873651645833050284129321495517703844086054504288510085681699503275749757922392485660190644562235631817286994831486883859377621448298380040029603701471334158897795207334506010199037930272568119684696738158745426464099540583093775814374249068688454307082533859832995185630673093114312745915523938383732312144677119791393807137817345729556182844274499728008826895544637574370123922192756030047847353918363106319234550846545418128639877562791724952120182424005022827200548928766093448426748230732936213996144426675360833466201418802317062710826626566730031054669770205309702948287813359551290748764516198559976496759192104764411438311534083894972118832760754740829039887961275401595245176258206769434725817434620097606948212607190058019028486761758135134567059321279285997007492609181166982605070053489394713497089839755174184408267770107546468455802009979323125404510372120177370605561485230442896561026003114612539642449071641773934716624444937006668297607443433026950197797560235273849579872928112639757215794431214659282971878769481169073972060961709360745142067158239834159442399461111246624982258978106629960198756321155618266115772101044510905064080601828767556037546636777770068191721153411385883623847102797997224432571317754910515759478138926400320356624138229163123546522118993695976903370198388097217824604002227078258132276035085580587812876950967037444144335853231689835055860357597823890827860153809806341045477587832694388227216988128481693094845458550004701830007382437696274321094713131975718528800136657897421234994132748099377013669944840413299436332786260204634332273825139870019910589455107253674285794750644878911452949546217812601210509276426718216650682945603122200583148052494741860283188978309036938444764515860190035866063006562832735921027803934515817685860573498299437290503615900744206414312686223583522013421223762558886863388929954062893540358615901687204265731604595216585730795557966487409848670140658827109709512395013854495753058287241494549725388223718062875337205146889451863186058701561669563151449064492498858589585962762102308284542531139431447664323974806306715437817186375379314112191031152560690546731203454596031487634243954035749495208683299017265478394186126776135419331506313887320607622059229458023420939414772482357263703712619122063311681242771250181773221409826394943876039079853141856138116238801716581047328926573022492157845031746538497784534889500297453611295508975716268080030470965073025006284977387780163435431324945242427824796503029316750769389811350982950206411757055383869119040069411881448570455660181506794224105941394210255467826473327382111684808329897425743661939036385102498498456236991009132419830283398567097364934966441332738084351883625895014327372413968445660188835749857999575733735750172698861220738618946940274232770951904168756627097619600934095351522647765077860799892444011468191287615649201698364273699270726468528066330133438691636521670552116770544649319841794693261506627664989440155110767883880525506596501892982725118216539827855882024442805709142086714194775989589912012534672255200532121372620380674627588342435306508357293099631435285595100746929866566143611837897569297025787491487299196119224521935450097163142557172150211366799773657185957844223208820589109375421777734928927115495905888008107376182176518221336605593879895594337664522924199951261263226613316003799165020954035100497837783574246503007127506297390205558011809893496382205916641091682333128087111073221623890461687354250719312206625081638881850864687983123155248750114857506079940866782157323421313217379423051321890178074797057456782936568281620680467416436283288134874666250195574180814444747978282181011051329904494777991933224483412840725089110324034128112918428503644753727049148796507068320747391374149492271584785366170087805939791441046619644841082648005582663572164364655775801238104876566548676159131172560937219602070725904611599141218485489043611079954995343587488079630661542584745638386506670513766110108725553964137783898133223063513827346164625732359483636632315914924342103606204252838013121632989228081522154014723531503944214954544654768076084555333496039811599729611252182729057864182609593189748808063945049157993067097729765055975666168367870202762740447059276350212857501972448134443372389576663158102307175618264469744009615868946610546989400596100241380374875705495243657094910299411416382367466535818413817529367754126222687560932566198169147078301269102781799481143346462340465950178728689958444409915619494858043788481544340178247638900773469169603664047853654464836411367037190939448000400710100363668990293818569471345646025130002523287819065970346514863140060916034969388592982719581607178920182659960536966029222477827766128027054202652816772381518504524033140567131277599090776201635584997890190902788229357767431393436880452446525126244401363645444625142102040780163026153406366809577506931129253040679866482583247188180959939762933926145880775396098493191232625372902731721875677750547248954745507183355389944498169462325969222620644608604156397684049249094299733377139284193525445689949543764108358164563863859588508967850129412409294980626642180880276405876590674679327939534829077525775769196713621178851869911944805144731617699934600648492831756290169006114854732586001984466247449860038065545094028318774406905629039781822279637087778179173907618826140188141747739331798974343518060735941937237904446359527488723892106666460685538921055184264172024236538847634358228248405480315859215663783971688815653590775344772104907694017381971866636135563621419751177346801967571990635631493820476267144058201006930362786380265276926189978154672975251337100070364989874466726242209842448576976927849809876203879598211325880111092678333175268399197471158059036314851131193000103051297938698227854742914797628476596023122073886132467805662564287479568996309119688673547489382841808292528388821709303915426722899211315279407421644228287738059715335802196888601432123651564115847353157630772628355669384093119645750925376294326117111382042027162640122093476832821570341406197905201834181437585698630410952984391706961541495659297773975942085364085693789902647476045004758044698336528058778759885539037796455457972806600004855516550415049425344602102586770942055832148736597048515052286255513230392053019660578391818327060890638300250605226263728258968449458152228329862283189710086642712634039284748603964265846217977179566281948756504844399808491462290312339593258362334962022358383259101594615440790671033867600427775647309171684305393756800790206068253237120027448349350972224686277174066021929557683227647009682549971644929955979397095940487257203832642514946813902581438171727142383663179014648257984247374112158088400460570319772454850776273925494122476741432212882477069948770044007528380071824585935854307234620877043223667617902626274071576148249589803824370805760681547149490687223446634582756217310829624499466623536407733541017183846600510788114134885333516082835961319197138126542374226726816154093449126067459738853213179880539084689213937685467731552389827416392462476954508008669124673903390857362523969056160484473332799834957611709816222657371193667114544043275652622298111186665986699172534023898772427064472893212307414707669957891977097902426514844238496582208913296022597152084851920900595745668799197836080044812442828437738608437417950699841547866434787494343058539083872674598384056327810035285470137417883784196535724391977681257029336045051485131295042523010319065139144228890002519802919828663341757110358983985097943904359683307659084235996286291111520146887188413599714448401119352353062072851494594677394580309857662924262459630377449700236089900466093884731310364042696909789708674631841014722649146006269102084293379217837784016160307614118659040382596452934349396868336428838778507024612050387315033197232382834008807182340739488731100021276513208388147786791272171463174467262319359091366564044012280151345298220985010435038556239300558167327680240760209871750347517411777021862774842944851510614578267938967551723217845225960916576459896084452276480217519963692367190801752778765911773492928663936897210102685419633769433852822701200295984103756257780363508721440012218898034919544555444295986497341295672687057107525828912204892154566654359955562270333204482914372303380476220873263546902244227509732613716245280618044139430814810394611612950360409014810930933151028909274384519189527194746152218586395591680102914032061530369231487310167373238322606919244306516848312160650163154442510824899360085944907421370036941937211021696713617873895204502040719073887608541089122817185599687474752638609732779566865699413615589871798763383029814320334323948882430150656770044202041213545947140056099529579325957237686599189837704364741752278215890774710667261627132961364716321750847255651580109119483220990233631655261018754312464219280659326082917941607184176877825760563794398334594702920068170120319267332718150726001268709820611597055171676951094346864949826473950084701605626688554478882532259380193437881977178236177244715584645613739160604918960877795447669290398585310908591563241152550779866199042018270027315664276356606431901561180983140494667870865608840202822766504557844177953065071156420225753385698863384700590928416588828155968338966115535663620238501179592613315719358607607369687379782820557222350560559751890101580721851824563914170343361069698256356097909826743936518180338735849020918924758940607417643180329052418457538187133689137051267237633551481123026299182235244747875796724587866169812289846220634182000037565981214706828981861924461375255872846346569271111163779187743114524274903695586588733844389499435964701233902287914863577466662565120864891485426002699633916064018263188517542571751049165150092557315554452951069425222039052268726854644621107192392338994764203113224787338935270553116775686969231115662711180630205535913615639301069850175601696448781114381020474983882560143007723411235880839326940489929939265764123899937996682081647748033319268944699542645028702502287482002075473045484301111773120385417441842061950020098774749987152839234303214693576353919728039078282173534855728733829447664914147440241033450152484221165308058985363847945350241852797107344830514636061470369817973187678456912674383036556002044945948673734791951168004197559232018549744052204057967087667574160823343517108313004639193302347773481263253907857438653265662377962369970354661776741056228877921313986329647334760920934127826359832759092613296959105601366620576398217161632378224977065082479199483955695408237666098006960275921362605448510530361509087548601855149392962983159041920800080186877404159243212705232981978793882310643646527643921153256281234433580388692756187177870731129655619660717962603284468297477589349501199223969296919099168389121593342561592977207085633304752104503090187024474794088883430838569829290627118294493635365483237282864779239198055100551435036171985947862600926100960619636524478461224977879643158760366944296925490026830874548461572626746607565371664725033934846872711886603193897892135207970147868772706385379992674195859696078224561873453586729783128032390260740432633911597333148042154256936224966279827388656985064146091684678322852327266675076146927975078765777156751134759588556203470247485314413145863578219711114950599989498386398806882107670551238792829920769265492053085786117347853545122144341639931191220241123343196131649640070546717564866275381984888391948507129029353571437970580361965443231036473517299324095454704813446660822288210810059485076948806894074607486523416676694206934940204555643607309250005288692630377903569501396585776295469641670074624412766709008349332062264607883762220915460066697351061926229878242898598246726571195979128186384447526020826374756617328909721192462160418075557551445392618234554427171267616184794835966345346393482243828741774392562218043145268947978801942421492033882671952444720426985883868273964078087701697417648138996876193585322543563802746106021233411316215847759880222868561903627176827502736804240392248837263852320131218572533662906224567625777992070464585721889007895898405694453467616561023285118160591182528835149871454888630197783223221323203968399698524744304363747423753844825124000177341444857271338033374543905322177570613311425208330350387162140642165810594108428684077031968280668471040976194888484334061395652664612990457054131901709652477399346904144835694776054853726302303945717045798062733333672986487999007348854704999870320878228347546018062900498175179173167909259044674740348624068961548721421402605317339088407026358357942895338148384499775510807957582699304582366246476598563094493576060585569619680059870363581487703570206560651762863676079267961611652098541751368088112483635672874792057925453981370708484169359403069622641119492954084485578196641095243137106628716465662171430158840418899848551322283865549380364879251211707567953822685760096889038756619358791429552668904232394116839496066680443693171639623096531497165692807152690065417408748609352639324024780748832543323721559955822591547667048239729358395455639431045158139462371235602610143437881160214881088612802115253901299748495234248075679480560555387975709283307160134930141678015273591353629944777074802546511506204580099833078431432460501683774590439081324264393750940287165750834591762197801054686870868283004647509042596771099275406017984811399201689006454991725570586329952916944664622973489382956079025588745730767929821040136982132802522941006808284108974578040143509245837170378610984151793114540390873258254813278271307742438311649820392663380606795827139230520113457061109228369775327439345894727063727372496607272205884826602583644644852207105790474707101212620680693465480248142576332876914899943774105857191823781343983470513149412625977458991437888450102455462600488199230343055234667011371304396590747978772370343475381364907433284721720023347173771646080970359360203879460547545276806829262355443510547892213155906597704663031134821437100931190310573342240510162323762046313878917863610002768616402130770248716269773496180837191732767902599784056980584184625266941112702827074030820354538809795899370604040605468145338532531846357394864947047511392081267884809735032651167328183309103687422412001082126930748001785185620533743654690933051753242740095455890109337977768875800187187355617994921920369250379041427861239450784836630462068707868958023589645283609482771847503695434058058117784877800630942639238898095704664840045015776487935555883211115356216843492916532567425545468568240533209640121872541706961693433523035162315945304512069526378678265092093493238311222802665352591580909697627356549226896505925615060909749510865013903652749156377443339774459070678156053961667055407843086189390478290681499942042016776757717270223552174602389408029768070313206013812245159059798628358702218385986572531946804358440413425143114859447268299967079898249037094575736258044700143744564481562464631722862200627781448243994852232099427678141777083228609616067469528706328892292876475299492884619595912106481710197919694034617567497511288276535622035804099936866460993679426981614505382851214988340183894683047477771029397669370503031372719263826405683900623856214062580025901856051148247928284219319085724280860025046844126136870821461558949418217493195227319400425844750288248335782813001744419116238466608304837072712228767796183116122365278218565726060716142769820635201409330652658857936633200804106677528744181017191459701163198950082153615495150819207924115905745439233881346075036809519187626274327592780763819181705210018518818254497091360214173560944115765468898428223950102371607960882071003053816286831807622894180248296258794896019601414901054586499222581438101451316786162449059713302731911558363351732585639265623179789883349378785485363105891556006233428826843049626163984622245844880049018229012634010639199472446300552720414015434669488331756970143870215316853975598641626281828980633622548944270404271686169376222981681955019679679151418987509960955172816212826177069414675379396858494628088253960034515144793578227265935830280775568439688388213833738812753113362451685672037419842351950236276618869561308221286979667552164502942439131664575867745177752972251817277475189154709275976979363543392386835440470562361402287387468374135595554715676332795703307352064120132475376815281116123539949334384058259290002916330378310819917785035630813268349061837982460155385927756813274387022079142311569343410040835739277712402413047385187078887826583815076682831001448160154775075512225254998323263601793818667992854191162713987123974205850514769850910525127433207613415027859371449110483256082545282171933884122186182005617829835486589362262167837970858939742321103433147037806573025087873378229899474144238352534121480447469358697419523562713537360823683880979243269652228211606039849635017138019282493717383804740329201843350868333250354612975709615503646943640093868036827231503890685670482871877965904414654835742716847932773650865167269903801048144524183285674715159532902884910792009605559152840667256431001055219368606349379051646401274544460157561403843626025557746573083353904816005438887662309723012138719922718848087365267058935971972903876484443091883200580369992634072312332429914855610211525562104613691771320546832136298381489816675139781104005856710721988818487711397226238774243787623380694533222289695707634202789295897740268201423729305287180685134224612496747252299436438373706520267635744549027567409594050845524774997337164426991949956296870867571002608829483572264289182290149542963982675277191868258538078658186197303726899377797577206859424549679718049255860659063471068676060261442412906288521154947605513154538862314533422554893752443829561555294260170870127889929833731885071635934211160865238045592468902321194813150687985551136982493367608893660766128359813140140686661927773133416361246195028044066050316372064246031853813111191043359235216082386912075767324881433035130094808597706478191695209347222052470838329396463789152785440089240936591249229141703065460413571077328509394858961960928172611664300583080897608205476465506313023655164800756176381926505520339782798051079240746967766642525134801734824841387355969705136952740592639629809914766264613167723847723275637211602490926654781754866436000497677580780431776595253092726679471425181636624204349886104870385673378831194470248585447566859217136411268416274749707159768138991215624023627136753548318509810114875329561377728556724066710237496180290752028904841644690486677181230689274965799935357781280201471696668252154682870144846363866889231185041966428205439021721518631677871971284299259804035388016053536143519477119565264913800389209318049524743284102843635532114387687286542108598358899634131762366498391576354512506695570757813742464235337310554048673031491126869714045644969699161024510147142561211951126844327143434698929271608601982265794585835052456424062308005604480298027845054558554040235877070922210272438053126705354278103657738990024797141692042195746251594263526694231758026506006803329308948722942118674852576090615094840034033346394212284346461019435193248660871590443455019483679099892464138433412189246725803968987061638272572632340218137897136851615613218222982958374860300827978553462134146856496420344217994356158508501209653678018777214400994967197078379661137253348227583610853185823253637838197419967084162165945879454108325442865590665917032363392982690752995340829590066607533108306374577925740407673071206353829789902140594355723040384192003071504685860390204246248183852830177983909689820554916047269747572194940176077109534707937482137065476205809254995084480080050708297134905706741357501712096060917525903492588172658770145703221007700632552708561030819914895192308294181256376687488011281138566603457630400586028897103179574619422183195156014183834053073902283769632036628220686806304696941326940925708716450795083219953065346692519859618526044042420590540332656374408175818161625560616717758121456444415810463523948832888378787759174697174734303890596718579308086772057380144864578495418241219813044300227646032909535874372017403586648890102603350464006505029353326509255120170167049165964297082068883431289642162238396180950121965387537135671590863107443101060619641831835108823904979915233835594972136847746036530456380973658986097485865367552436538227379529584641796647034663297664724230130409310461747531434034185015650987815133935754165256061028656266807409553179465652600932811143668221955113506572325639521753847992879047075911224024796799368464344007938836067887240905763925295146512087390863201821212685509431340451069641626875058990216564960573607473110291132797062010924004181214265034592358680023514283920777192710038678999640037597516172458650751278567009966386930273523652891286509951796982362244418563688897225116074937854849585437563263161505465274543640030297159528407754615880936209363930443287395429433396941563521501316901601289292726181951693886467523878465139154748052837702473470446964977628283970601719084407767089561867892858186132018661266506317177367966989121139369841928755215058347881239875707409552656394622994383548542267318897620322535127620441199617504154653310819456897933297688997733038617921762079451742191913450611884652161236129783095811035210885864173927893459087643721375883552405186406371852436780780981254043356492407750776119166509624739962839589470825011893435073578726422766903815732316671849080437547652742620199558061518221686835413242049988172223401616490652883171383175228014642126417468096194373587599077086055885140366924743345482687706533414553268818964251866276280880023402806104019104451026832650758714465355896010098525136053929375357017177329889800415441143998122998955869648678050813328389955390105256660361759977978793516047871674208715605222481993154254349061120252721686488321885666905063628957848746946681319222259312246759405750520015143203834453877510399962533609287067057489752266001314126927410681938639103098129994848570145121828736217866063177338202526217302483422696793254123450022874744928753395343166568889793325254989796623662805698084691407354005306627919165406784662512952823667872902282673630234233579385985668132865629281382162518092756639874539130956595955142031971976873422301309034346759837579634327375832398126272824182138506094798956816644641187411471033634165732079307942020840546011970504531521163539009758361802640655456503413301803646936042365499576406252874914272486789751744049318753893626783953719773375686081237971920206655427414115289427042112704696906579666682615160220406226109035878980452698311087949656858375977720933939213491524007305619672994574189962566715604360790975892767273075891961082932164562644062702880273088179208781100718016827709075554192768503892726805037758224909052721227654949145063009571885416342820958792776328219949492353129648796236114005139136819234325291420038341875143924558678463616675634544246971142632309033499868786737418440256496473317590539880583862804808985177313687115240888739091769342497613572705043017921750795268080404179670700268562019044485724831866672558375003110202642227123648296965258166603746594307360446739902514969110384279546753919402891452224013125399706000136080289576826900454412638454720781728068547932018738024934517658904777239372042086886010515069118058968093833303208551962406294049743487183845287141348497007489467998342578815979814136479373034147710105152014388920726982847165730784424555037825271732786709733933963557792961259430979564972151052086368765352737987002677049447764012044308791006394878963249680971155708661262215768978943617208160549406277883744087789736465163121896102848380296525865599943565883377908153741680762541249295358767105654516863672998022262895318968254029688682915657022709926663026957197351892045587669514340606392758007410852218484848944987606852611459571275774308412465454620044777192819662700020256884113533590176976258154204659338002886570453330058879368288820241696066733175476953682978113653836246000181123955154530439454029868015347992808069973825756064979316721963611439607541326830245940086133060962525673270131756671285710957260402601034028201176795791099952838858955768252442978209027117679921216518377810516614799772516837064732528243016889489372448684770146175396947637725153899607816682704770886081409809160085869129070648432312874442089148589073283960185343261568413361825310391687617833540755016064333777191522302439278105740509041670349950336438489591284389250006069686808872612988487091050941663356721540568464327727475022718442957841655066726209812876998353292595908260021265483059283160704252760152633553793094768040397595171217894397061859895128797253253755732392088052790382463146010121883463287478217596487510488109810681157769340944719903420236929649755135306706389378708932107015330241748860441237099254923711116734034902764228127610123690483599189093982860295187652383771219998181604322077618565026371866194089646737692770239237621278584885375918297457968294665396848407042807847000120157300959190921369535708089531339665632803211764333485344109258229734698660858853758441406857080936150689525526424102523752163254398494404233443016066338223092776441776424688920176057850635957206486962467794981980760245457156451323846156981804166298823815228090112428873847844113359724913489895362522532063666477864829744832182433135004750225624205226694345699706004362392633840836792314504754183797396173184737732522208064320367006242152703567903295730294310664238356174363996335975409809531560173968744336776149395263343436690897120984056889841909393334355071637777741605509491394260383939430371622639714473470241733670453933197998446852461498236951082063056613959539971387192501934168996783960187492142870852987374205555300089155882825874831042538386052665040920208685501641189739718663685369419430498402215344868699819376444459924511620202743596094146677587764185659336944435090641024342432479501681631340336098833119718103204643032695582977548623669137980324694344768174633028596073455154845016661238810646572068759630434477275039303211061075590302857705361056530058896335327217622087285787247088841950971073563291404131168572751479029365025997648134312252845533742666376646931365162147999970746885951757983068766289531436617130216941960796371486602758145846526286676750743745417286992747809913061289477568644707921011915410085594464768414530337488400311138176018485579081985252814736026111349061448883261211037011811299095644534753158779641854266695028809121478778616449372801145801667986345383365896247461441766266114757430150872320179583865566359937597218803139215716430835870422765370616922193847881332906261697316514370176722778436735554489241046381483275328243863171522265764424250188653094339699960672462353983162220893174422295678098642928213774390184477769466860804989395188289746261292642830106783398370861864188452285438915808704351811429668637144251998710612942335739588258803343204520448966997928713707501988666589776920057292845107254740161522177168820386612708745594958050088247322384623008564568182035745918544114252294390842264822559854071089220625832752296415318112288937406758807791086483729986801964967381893026294332926053266630048914147746788853962917749238044866007816249921054875333782581584424475125029448817462247388685944652192004587641833932974737123045811469498597025408666646174243542249789430011409368759519575033151182607017396877123684858006718590392633518428672690630004402455470612177993336080609969693636297642144386457049867341654146365679393167161601667642338138770806800636646995504889801724844005443310191224482319218839369213978253057387551760083552925068609522086006769652517665149565786081169969673634155212266502488684873002023039312361865159807694271474190288369567310430491773536007331963160121743807404828826919116547275003006839990394669154126411661859144418975214830714496135842089647299132834671796210057586163680362447795512394386980888770374113507503770314965076652745877012291186029868515816518808632506689491881345378472538701637841776067232859325125957915884523027527621344286070822176934980553407297375706167172402523447739153802856937885465341557618060016653898978270742548240172293063769366226985623182975424362830023938502552347326098101220066945476573836309177646796980347963272002156021561552658291519949732692172344208464784200834611225405848123116655199069610788383046647462969382029128968394879866118093883298589644322926995248510811880099133336543903523894181047403085841260201794062144306822835009607152330225278087580110466599106230186178755991878147889576326869240966880527223474509381916765602806392126487924246523568073368727552038134697233762477098343141378756106618892281879827168439673815780783164631410011028325096905763584295571437204906413721432457171633836868939921413691804619149483791988031574428604888018122140144516552061031320459797751375758173594881784755581283728672990189109632847914976534088910188767830874333392029929646246868269123419019684816296097905337163658359643333188738963427665701878864647215144228589655264346607807791539204598543528916217474187554882335161677924340750812506202102332936029527874814741518602869123118357618306521805479891705393409676448928738716981273779603120478624307882701816820642020078179389203374983514215299406891896026025196759047196181364332808580016274962708438708826024960386751807691092794530197185881257960558925355704195316104467507802446984343841275978607106393065912122593644685258761877017847895017625007651297859826127680148929618180532160024356149036711134851311011125863434179164644700716205420557051434490517857438826598335715227567254391617198050341311591309277881813847736657103603465297786701423557671075550056840572516197564428818444895936216762771379353304954041702062681405016266887565990468890147625593948721276266242056615019164882916682708028071129521722786782067081256030047235714845501357207375679359979090139391524332613644464187460435556435007636649765896619504845558166602439470064950496304920865434232635653117564029328322925123805676790323474846271615021518345878049076957223910513729054479056022457803064795976000521883119209860745749653829356600254594450353597434180838248289681700873942551802835135405446788818189023921619937138040237429577476453206772815152541767320991679305808827644836433458803241996480450755600943957493208974355996234421106054190036064258025350817164611479287580404121665735397070856230511556553491854152631961472650227559366349511548118165150089963557171489835293864483853415789783823555506411757867538677640211470282504021887241058531786923815558638541179703402696009479311605490939314940367741767438261376309705108934817789361223469136710385655667874415045766157420358001239811655411218837375631441363487350776006283312046092342090010881677092551237202761641292790561601930792752364576454923676943171433800116483004519079257083393920003165860118888048726835395314535393640886522552724965007643820309522399228945910145314738864578446424957409803271511592097740747886839776121026989335748416634920856443426669238911991283109129011274092624046605767315321627009572665840336034907039517677852416565960477105036378512342960259561350179897941345592785241902936934157670640441769461061901245243259260723468832424177808629206861242188932600000365409947918808540165916998963981966878717419374142939323868180480880057794914425479932785744160494754230377829232004617102252895884136236756509014007404534342458146959414084987005327125425877271019687334163389926424344611154477688416829943654774565165794364136698042308600379284001122514726182222888639205570562272663251620578606993266212009601823548510845872573559963568622990226933677303304845801073760418858470364376159543791253758451819462124428116536053352882775933215162512735086173450679609777699077409135647199305612273461230754133972374115267191492673738738166566247668303372862817515767703937143495273006081060592900816789849577237150961522756481372888538458401704102428560509407559623398407838097974586188897834862100323994326866181121750106831865167628656581609448003633748404592408102129057391470397241478573238573526148694746633092156470958813933941094265608774506430438511431064705488390995308387061693610533287764917995498282549385690342594238593904673936358426921469394786876414716729041271060468064689325298775405006524745822155971261672668856685174939759151855828012230333860496223166923800661440329451145654444987935683080539774027838175401547505031225473961844236708767311843482834234806139401866345877495113484802170183046891284294631034718384045902240523718544252576785902294501821968312728981065731574482473684964214514610330192729309656945764743129993748267261190059877688349517076274056188871138453568608967593677838859993277052668437614706307366912645713783280888553456902957558902854008526261148508903183712587453059171109043071761738973758815493444031318720762691701228383795117973381062766164432610645879996149821419110551164100879628284395330793792731364392181140412339029405027615502807039160157344236362911104737290875608972400129347773601363606348972839252745785919544671801777097035980610178152299588374625384315529244287443182429098082243384956673103836467772306822322392790131808747361869440114231936630215530865504566666735534368802302276950496823204771001349328781490846645295554429274069263046168734549857131673707452030479843436952657241435467507084917011261977370141095132898964706824404757976214787065317466574843211425610955923818381175635731930888326123116345627065628477016766014569847805743278778349460706948999615558641029723664765129135719885771394951605294351878461570431139240790917081534859345164615757870228817853498470091612813281923887338434995885235683841881833902011641880297412490228167924651627878619963103683938716826824866317050968401313562801713030800471108459728237641598569080893424666637953730400610536102761619294134657220642505870264052022461141089873383918539527248604214687687086779461038176851016303083282962088708706447188979126162061171311033638226931828602597711030195361045673050258356020904664174638191287448533120106046732850888878320140898570348858383669573938410763273689727973810233889751939719232844065396662482872471597208662432655648770035178809446573383881760896674408521337751318033078903018382050585126667824536751309207195081569185208264172564781922870040865183994982647679640703480398045065422175427263157088809633573025926819298937111697354021484727859037759268099071187887473822745123189459654360147296940132374971774421485750789660124180467930190524102988868666344225841758304484379451311820471743334746124997410710444178805405890534213173869862196908571368972201897761644909715207432648967091908845989052803274565258745211207533834382775522672055780895565326329276017240670794360516742052570997091817280706304004256796069537946735406388022953415871091859216707472469304309544338857818894410339699067010387327909090773106426745065672421693273872624503552187776682437131982194861381332921555473074454640301226813420716863951522098438608360760231287098799466381201125555773426771060716851122883473916192507504479993979569241737383517981914914385512622986922621218231763676416759283863369302891618148458417404647116691643692574089998525577096713541376390923008371462164381604767071278399713760965025185148892150217774112226676620619857868512974720029767172120774742622090497869538744457620001367500967108890905583345110645012445461154580323370001067186481685332614988107041444567678409271382638345715101774970412641933565748463184351171543307623233152045950782071262129784537445573455752060655102230613643034486064763857684997363022094540440104377224416561235539868525264097747108803056689994022603990330459216867103930278583625395643188727224879115184905688279762569944518362074469666290996860038429911268550486191285887025837018298657304263182451691010309637099045546399623160473636349388397369111229960711455055432319575515120113015624002044728856198606195220505533754860750515669205307726809249053379930226958516433960864032678674186965979300324639422378886860402325512435464112546781287239092934184658561530992198207495744973564020909617023873386665717187427559611768989591543096278752735093059785057531935589412838305858843784549700145656234578708868473792910659972598512134390529567445429794984513685597664766538635743644141788917317402712331285762847471775383937567530754266829972355107114883618447825801168144676935473957001585102810146939453112678972755162138989288147857751040678542419405693135734733549656838070586312831838165264698644980496938507740735024937596214365735125081763809260905527413759104837753980257626486630798976683559055634704586220000583340250089384955391021589779846964667139204016366408599902083118237855025997098957794753841975424388984992465860662500038354157820834781773725494839009504164155353875395476394517760932051470945133458682034150735207556153591556824318117298889729130884757293930154989543323982103663409281301214391186468250696524722043446514606823814346580070074550433388190509308446511654649997126480585668086770149980794286302511878760839455731826382302107530753938633975767905777865387509006496190533975408944338165175714203602262028894093684637487785003240459286197907881582198919730418657159432438101728721193250512182628673091513861577183325374425208692097849621554796634727475361626241937533099751284278170734168185135275144693316453717239022619565016397701742728853450955107969983492031222441497099249662775558140449236540548120437206541390512685208185214642263142777227693747191993993346185797393031207368613656736563104279678158788852630179659605117562421289134638885380387338936106147234259282465541416192247980400785381590013576685845465193963709900515126743772964821632085813028233546143917482748404347575396171553521612667341657148126617777033348605254022401710152147621601108048193220868160382496406715457566234550607272398245609372274004500504539142639983194281647489453715635283629904737084364789525260118399264995801286707073379252274053965158712425196237349947656698905924564775971255856959738473065827917715581336260704793139308657660267438926126688491592920315938202044027790253413639179402812363066568268713118862283267062143490095115004603459714799393517460517091862182041505490948772819549459370490989668446032413834073890552891151074974938969582584908882307311038417177855123253068571115201324193729906922073237033030798151717777436460575980422259419573075814545075894627836909394713649778148852352504951239451986139499723164850104736222796098021520445427266066374010006291299276827042464523973296976861255806430451774694607140395753206814652497428660023333509134435701649287632901556900146094815391013932346294893312469863530002936261131556720698096548448286053500043410992583726441024597896694469435933999435663368086533366650592651201629749715941147577541038833496199212119441003655669644618673965075785921306368879255456881037278082030940353419095159913167043217141222126554156568556636468768408211095631815154125172234955834382694382953664852475919789951395022227460083619573667158094262031245732995567332555850671828739213392169590591366474045175653272555159976436993845240342050040934782033633907487283436915740187230483561544610725970318680987951745022853565606459574451390583209028193437001834850009235093415046190715768949816829687100919987574132331815067929811339386680973121229558918254075943350641518023373053895722055937298700370862259164195145584356308892625160584421317370147769886189345753636972803816966115438504207130495950994885726929917160233504372494954576244344264814337409573395145634421450861493455100608149924808976608199122292626460871621068862229367123907630693993958897099323744039929485133703512180823459215640325768524037876727909435783680230409663451375836000900986107119762277720744436392564602516977997971305678679189710442869905169662454045806769683818344900436431907515701758624563061313381990414704850246843457019039539218954431635826175806448550689670386288597160528885505396927299103655895382472369906979828645053932058437131489488405870220355572583331372517629350940818130918802616164554572661158012780027692760834553281723621690356953435604672229015822091003554512301600301920442518827713757110286331663223151712658512853856585140139380720452868069146285117146990964708002700811160591616673781153666024486407571100696672520543496161901843797803715452302817323953200349753068459886075735505319958718538159096912050991781457589377501794638309170132930896585445055621822059795719210482275436344857603362463866199219191908351164801428431911380230497994677287646161569252016960036461979560122023191033073165931532919576581481103645533719129388753970490637746567421460369302208260230346980631268611082866271601501400821511829142080216615291587927717639256713029059149604648884281716695354271471020541619934753611636239260614817516366902357424181516400568776357813303212508433521760788236352909577523128434883482795665252590614104676556406818111680961371039708893580575790229056567434140921128921352191910942916567211503448520920976973537440542708233507421045294301094850676864261003971434556968978884435635256973725057942725283215153371068614190278787624818313077395997785546222715239770258046529060986455640276612355493448882535270923034472324969407581664496259128351862540704722256829580823234885369536650024118212529545597790976429332879415085572194761545190622367541767841932525374127871454503365218481791360834722685348269530354479879052597134187703829146829087064272152698246171538345494291863108748767314299772413651505919965235239544032063450124570976017465956285866393295063831615151282760955483629234953168972540121234300066214378971139113230720780574473838423771631747922356472862053418693056722104750467807426826235915695124684486019484234865646682058013803669929344843553601168106234307841148823380757175239183186352121711953882593787309646401462149181834409733986649668699319839890428465727076718188681548846514930683073280780928245177352086398286872914187935285913709037839003416216318532527943626974794871235468642143969785070571827697137781731375634755318187350962001166991419064491124509491228832713405248902547804266069481011603520769230453987315292649393970705763060961977513253374265462970769569083387991799586863126704810521376801564777822473200439825800822773033891105000161360511187143552193313525424359279232616114413156575382205656692243641799506332320788392485158635485442102772918219226771971280054168516097887621061954499516677413138816402304985769442201799753523126445723139722334268124310730431297148274593801371646615707841799931536680055429245175318140858694114780212073470821473582656003696114859372782803535696198804261521500885988371746201005190274074620414059539460804266952786441668372269838057422488378941961673891830688464916911893056229837128773060940159700397627956412292198292319324102927889129759501564076101318445849209921676777987296522597532192281422580947550274208535444571427167141481666490626836709095706615978440137115061711172165256508820174283036148068828673028213528655821954882556538830966836367211065376537816278279717555947279798552855995831572343231305249275863875689764308543720486724619351487271646480440600584156964179401642136553058045132142161076760987362661612728885510663372689578531333062216469120839923765356384993617384776181541908839635041047734234762637112387660218087228779777631542251822756354024131545377277827652989564741427809854459235575500180216223469590861025961723401489186189128687939082476233038877622182280828088866234013258341305132754431444196700778259409686087339608460359066563522338658509774300351898695067734403819034523387158063019606709261517854221059539363895233306165381361315624513267699084299768796609410499515958084411814520899797218783375050527686654158946343885752172486077390795660464126834374807301922184900614563171480184164528644533241711199608562902110839688215958430405676952954986382215200028220221733882141568155040637987747797672765684326502630025041445670566649139754708820897137340028335052713458721728614228382289813517372799928145829835665909858991560802490596176606634140067142258259367306736841451322916061834632419991991502157972492158882790039574241643934515689680057450376212910809387426175243886184206832230465922950535921655227845653916638416395691131018249108570774872816138555097740109028939314361024609046961365501951379268823179950173200686517087271953178777274644834507453708636176708600413156480448317185372826134600964349266464966217198767548397176359441032182756967812118060363727827090782622103738203714426920794764256496819037228500876232777803183186936429548368585127681370572924123071270461152656802917900106029770004009494611278667000309210758910002423559486251963325938736434451731398981123182679584482986040626138091459069431362604155952101876428022456751093930546279841686513746123450791863651389264863931254815182123233870739380094657250219659353081108219210540115464198896053518096681525191303317717313175075143704387545745806741522618383403160986525649972395198441799643808137755629900838353498168242446719882682683933900419587553822478074032822987631129427519895876188888167151315488981185489844020581041021950943956113402241689870555186256821571812077989661428330480769645489877493986938137636996360217312952346912446869972337896886057536377411266454828803585040275177842615600720810168188569017436019261224202252050852987851960863540923974791585899103097602689087477667936812893101514768900536698724929538678635336933642146807103816631625114216251097238740592489457323202308028290905986919039849073999719185032540188968114931752158321315383741816121376659412422803831071865706248506004147098430591934673115270217250915908985720131775558875648052116678224433243778404063850612441700470194321244299534189829204952711426911015707349348577380332133853770755589354846495309670356339540029202925923139606853876388218134621213965861355158933462949788127753530371913318078948630365065023370675430826980264992115389416430340257592044949911457312301321423249731362395561601533610785696212108582469368891218511115044041628283579429484591568883894287318431079383665899448254031794296506943172149779514645774787855130348394610903086627536926755988436754810877517634549625340027088925058253499343628176826018710607941486919810880159745140711489460734598680908504650595438200397361604178558979957810441483591124882987612407264948363172001482694579118428015758389011079610578878593835156581520705078009936350875322410883959005258249003557014965403857916634532631404960091170164004760323186468032101557255398132822363735911200193606526124706767395866222290971702539635905618935226922592316068784167871587166912433220869367652876991342610679247790081724732774078175861921265408440873802427263896739487520325568751257718721977864123874502627342501789141871601986401995745259706115125719907533299705554598955524600847667399621713100205597545599696907122416298097413268648484380435265674766562106752380872040805124070110834929794459197631469282312916552554621139408854501074481435863423816734251446281394651785312707069786461288752261745150362962398822341252995328090768517708904323504747383508819002170991869552266120934452588926862794445695698914099853370443532884298495309542355121458427004482363531032067760251692842603423937577918217413146915022332666869911142234519562433909667285414782772467059887458394284383304719848272653285324775002354388431498204490180512484366006389881786542173274355499539385126857389081452612978332354630002580425702648397349328753128140234501314676212620346891061746808613891969848330636801859028022604722831765867521319792846538437112208626871486331106490480326303139080086820599208195391412939585883499742085743341942700228535246876223289406562238965853310455789441447001239824296640803957937283025354403822706327407198538865077120261447180151322263784202942029163265638914173287163622606243649375479820571554181413917635829653924640568212774060718712031457715705587145754547510975263898777777764068807399813814662745211826770714559856218913278438039406082114954643334377412044011340692239291548008905097829691684398822915308598915659859598010244947983968631749212589522425427462822687315706345111970309892008889242484131216616552410205256532727949549445796176989067087230218273558728410432411775398568935410860117870887830333955047659060303837464025327745852967070036690661709725915440570314558636462686996474379493221732681987793919069228646883032620623700377990926664491829630609384909191341297367138317275279961697502217012509368440867223607381241943639440980910768480908522846496626652310473139539399461918386170356804077066236562859793233050890918760499657059426685444602382984781306268382711627195277945209934889684455556665529332947606881883891213647160229721235415446045996759594084385164785018475488043744924305001490970790598643632274620718871632094421676016461601267151591691764062707463207035511853240898831569207323717957473687889710560706828292626930443847491588107831245967330445521268444119267149060638609627795789300663972782363851529658438063182505543351858931433901380659491759613775007272830976319642152862214136397453848434226725839192775093967124523586805778607157618517266933448814492893101219624184956510128968257902691653621962083095263552530719945843713857386659142634307666297574946488494093345913814889258852771702393505532767193876487457006363945043218182514885632383521074640715571278656661565524505342930855579737883933896423174278167557556964896191356513763257057786444903486553884438813108356103792487357298608924354960994811591893282897638939248952802448029988114607698544592734788870682478736093354048970529121301247315594424421005803425136283096199171798580895084694176101058722338095175662814096287874678160680551108059979161485647718206113922083457828891197779341452835220947649435123542891174921600045543248864155225960456086989783127483563574117464520200508316424093706776185652020910361910634376174316283325308519522511520273320691599459755321309205497674895613211869375590344811751945539018788523944055583131427646749460374359266710048549464118935474915096294541352943752315209651941330606533549361511061537450614271208859129375023147612605290496794602636128745554533047840011237441608224733977174458952125758195997423514254866828505606434705558551068309408800157169767587747936885959397181559326031586525076136871458795552216289424994815210917649267829085900909890502733754650001390972240449296205858604807706266680533964146195226182891809036265382098838091114557592411914172134246505940407025304933012834650701698298966708820937989522397505712144427437411753884865703822819095797438775091691687432219794588738592674180168037375375490030010693829062950657968553444278795749110597831703416937087715348589247096575450363579225320988470171612983460018498625832795007069577358132711503120097353317922439833603581990811021695987944413590218914849736000084962327023293654168444216124284400631164600872590484739047849301019629006560569535072764043883600649989092360694195081569331390424252177312344402464113666358768088041143003109637730967137384393350694386855690350378874576095072443182054080053397262652868703978297010310220198790054713535048463005568055461720408384494839506549245692183414974222271954620848713914564571515318765037689086126060309475827558165226654947265643858746938491973132460723207210545057503745255452909578675075895995090993386140367967343453650882515356423664508093708013070256816822113365238851543533051014575132443513752670756980532165932916815366943810600127845605858781499503490948751482231024302978116354790768313340473189608082121598604934573208997518695992510674251128294671939578516752285872172347392241437318225288485250089211298386592679121877550335053202714824794347000422462742620926914657337187282021120694743059039944285639913012629052749923967255612470264628011751122923906256801558199925186328119336715298743197627206690715811111183833205049175646041932492446024275172592882033358449049362025957981178625895846697493382717135839150008479269910186289028753081690810916717184797607465144884490163150625882174290400717494226383399117515420179121054326412151043863327716680501271445979010836620396578628072826969369117314095597173823746278914259292152390088002229291699372001063107810031300966798477290374116196816145625010848909436968514151969806848197651276763989129853025506105481065894357776316299328526310510624322762059145552852749370898322128241198732900583818061003079066452771341262373432117903428209574579695147642619657135579820201364666537819077036324980097168615249128575644174093609000328588465686603027525436339967642606205933427133142990578051212337322451629722739787422747959908272271228043158923732409106468191512395170000444241253386726935990361691314577271542889405941484485739405030563956949600428275235175466701453794666060052291586083422213622706396965961592788238766271199498636208905900176520355705638516748560278234998450280172209404374463950512097289971395382718763384882470125221688718302436569558996009409199901932868976394524024758727636734279787819885969275934553512020458478997684967702998805068029157846010363230091356659657501545384852602122557308019234311360666183626700679464871948100864686205607602688958617293445022513900085683637195847445114420790537375655990333189316557707634142541860031470114759923696924248221944808137842325422367621278335295752154791937881421709707723043591658936586973904077193693195352892000067814830969153538847376757233306646212677882200635812395857572952765089291058882685450153761555009590919854396816220049220307351774688921351078368790457897610319548402708337492447547668083546687600965513351009241985200958301604572709511470476254972743334670619029382117836665280125088518867610122890740335063025486656423692232177448291311447465861835420740788651915428925409471784566924349260007845270992113723638140520582107284216325763322104096978634013894829224312606651376944218505918885511318394909951446262583862998085766388226187489252580837797192236278037520743472194503458206264298018663963252612176736461856261178216416376492152069612032521091207009776842505036865600597852423036478726776925285473385251612414512520853504111868710468012997821654559181292682939046519589250837658353646219726138246811745468656688369440793293507577299151733629864020577355413670646598144341736756503311631690048117531979769529035319447865564257996547413409416189552575211276624450998745133002867992818388727116027855891869092598608263991112027514287208773139902588837777324555275524777968938370159351258301598041291613142132481810746256025891949179234362386571640714422054743265109756655135672361114778540030061901373341110890742991576309149194128993486653730649794462853569434780611677153675761053829993123481846188100457281875434926029979887048782660426179430152212129625699081243904562820200873217147212334310082726784367084003166964421860798164986769732114441086454892216016176601974487764571223068624368279750046807629173031037939230696728564655221353732749760239672682290484672123388048447634061577280012341351255057986169081441315316461159335354479210460262602204330641150559676536437409472476948458579225335068853033141719937803791877529451310276187438083634214576250220169723994263190349164562653313541404056388802042103585741019499530841100181391666773716948033397059043391243440641463506411952432049490183303665468036443989803972622949327188105812466043803221566508469777130629008003023809739535288323558357088134415581012740150578503926043219772585205334944938045883438232258012938537846089687753126773804611586147786656067627462934234655743865364496904127024418702772887003797997750053314567830282597859061805224914054130920878872457817163991114058038617188059816001135967336320184580716298342083418147361225983775864467056237976043898896981046423674464500507466503697997439895435557639126717121572636173236583624151049548383667409478189253770857131338842429597729427846098308304669840460025193506013048265612135350134266942901475524345091235491873354250099136948271569435936905065781581258830409564181844829732718916017354013100655625538701704662262680745554925501912699673647582394812645790628737839715828736056314895499599862184310744239042044409854645885819614759250201657023595666623372885820386425902776669360914542666411469953804165590667387568712629927724570253411397832238127365012816914318559669157233950009424886632592739411490607369764170922662472666671718148901227287551662878888334756447904509465984116942411002121461612164841822181262216234824792756939744625193534510104668533230322657515473559776129099160228329701630368364759474900796132683787359141761813282612073168903631913044684561220604923130354840723950590828031189291238888385262143111263295326749838619506174400134638337569002131821167925750470071802932339131833302984690327221393624931181167880652770098401802409451820762711697602938021123451521232739034629643840945768679937586610790866923383631704476816836736139640952765673099415044484281015424239197845861496395934743856093927646723887482602568260496890950299602770146052983392122748829440491811003524240686896276995916070809709325562792924342964001945959001179851179809493960876071330222185614707570354328034107927856772271009807715289827688269296202529142887093786506081503680293145845686161619280858512001370377812889610346820568653955632972064977220563659558427872987661294862373753880707019361643761602262564138028487203480679279927048051010655737954732122402932267085543321438760710193601753329086665841194707231715834525010015414457858751047469229364796586374931506577379381815966334136691113433083391575721199846022778391735493547196026834337653771343490387225981177867330362376485020499380380895885179077568688454286620353783586328977194372776275641157810198797186970394710549788447014390098121979677462367710634709995346277962993872855584090395252539750236191566342136108315324082075602344513396147521833093244064301985574257687896941330843135015483924407791318644466333949534480993786682676465723418163243339465814736238474783434904316329592671895835071789917703326873246941365371604326230342057595120260735002781623292675338055742506809824746004444106214337670669707056752738654804048346765478259196204024675321948656428786186865694210186087811699669221272373840797920360837321680981034933865084728357808545180336503559569968371520394911158480397605360324336953409452141935628164542768478550975966083879556345176066564293154723278959288695843578695002871199270398748033223427778246531193723868375577882786041684635637553485065170978690630755671249648611427267199283070679176841507398089243333371480760753168086579673918373953595639011552998783980327682468612800379179610322602075197673959610133167342248751801149195101077513915695946961426944588097514850197042381312450631398244693344252835827332628158031125186601404349915582806080332577892491797558038737282899459128803610324823003280347773951969460555002864212726678223357396343372666918113930304639379977107368054984735122188945657054214358656095175132848168906926811723445052210006660291759333727119615776833553145349147207415767070553868823361428782976671697105440645263173529063787873411442279777181745215883653313538568064320093391905916688994813062079854320334594960843046303030923605158975499772968735965688988616683992164449743325851272434169526593457692156803384403440782493888939647611798110137147233327061202597645427301318090743707715951476824811923335174194148110439756457805252799529503304780258191967400721100359596926075012253012484521804320064589537140611903353349514710734838159301732702013593602001220983394120372944877860772062274738775850313548215487873240221588488544131559105310222188969045513035166488152425913619510269602817217942364542454385715326178818591976130702866047257490834445168599505049174781596055242251598408202518129623849671771205617376542133969942555925470921888023852048124394461115693446751424569128317039948823060734427063551578267208137679296495251360670592857535249433640527825674133263824601349152180416631426458052684267190517470972557394374736562414489336684583851076815514697656235557475684252171968132224351360366854810380997067120276521610034238687542445109227925699286185383280764193137047237830344732776669869751742154370077833818295165638970909640766385330088924753689171082968591858127702895635573082659085364024594151493669789552207028766575942725525500242946088138871437285343254440845396647191031980540916666503509116973129000056555548586269377316397767007733002801044511079403877348285625590968095550917848152860802980544309346751555022312458486231910138307639813530959474435563578887916931268392559600713260459980921209451255469525246139969133759197069108785633389156221360213546904100109018547668047258878848283713612136705945952338406676415802780281011096182159744943515979685022620130445728856589982151687028559980973421900483691831848667506004254589766830971284283595589901964648039882505732611020254940356274114531333907916405617919718758854613139902865432763063627888985775269514834882577728244661864620134833541623465768259718118830208456893354225715706393123467500246398145944011368304593151810318365673219055073565243379127527708848612477412955120977567933994044183770604297813890034266707527385673926112455255885098088822444621221993256677225606462337063106345576896672385293482366489115330023941373891850096650465066231088646520232524673830667672623238827477400116227615144530216930121146321047358959047598926138733539754595398229148601622708711517445806346534493826677321425582066802516318507694510635929502686092655501560495092372868485424312309091173756440688320481833113569793411097953590707432059725582474968733886273399825774823615184258175210020329989528447907262838477816488320654564602302575960155021665267288302801273041307950621492170600574362516082340416304291941983430585836562141554668902295859960640703317072914624587303449611648760725795579335602886184335776259685036472995213840174837871168666001763822341445856802270963744966443833467496160800638913604403556250271297710223147335206175475765275452309241374553130233055409311774514488402293434442981645734153247594328892149547036009040954634425224461781449566758093466941488043039875585298920264688993465428367462683529796984069758626050556470038218687454060004114175299905923662975697265291316353952217728921287148305049630574826436232143009369505346909434178670561931299145212868552603381077952483269633318663397310109737489488483732271490714748921573823673549669185382805964752835094901130912737749384227401253435923743942145795686812518296076319988809575682463196000089746353608627291718973931490596831345298260831633222645544781141546863126763691916376410737405063905096616626357599533599782040221211722146536320765005473005319764503413256025590427525136407453117384852393844916314171753791527126574888674624527405174376894831193903860610415958225253245190892078522202612002787070274493454189110110985545373938249922328000601207354971851600920375055514046632827922423982620415528370109397376844379256077464446849551671422926288006681991249982153129158930770879835405961402697525866824790917369476539107603452282609615690455554483461333587505932207413053737129164682312516112664207808207590262897719157157788855597504011049682656823700310915936147729496534142074825320444881633439149285057217479574962030276222318818911358655801249464742922985489151962942048206764794597342135775074116153131291651842718901044042738346976702429601166636891930077635576979256846233937121134996990365747804011238517349188891990039846028589960215491629969024257912272804398517299036365007810551030715437357647513992050429172358545815337587726676973258375521325818813418028133177375092146540237554647030806232988648536175482113187668772931213024939974781719598886847528575680481002091242020565460087305434351921294617348601223857357469763783982496802851497822197592241919440180674842078416911060880274252856940596885025003081164481510123019102124315315122672318232592833900567756183088872986681447028061849616873099154081220316732625302078011594160422768922567336415081433913526804535985202391200006190399579742190431817356029736285809580219070821621169727571494788914523591027399092882819949080010600530088708267178268330544534569849512426984776735310805824035461773630592192942139253635160308769115952831370993149792242130641919637307548923351565329409662078578344080202950400319389747716449053280699157223867349827345609969733723580065280394241831133475756182668741301373354344859350310852925679560613479497818879164611508475433936736826535072263035186366064619421461994739447183338818673003039577372130896694396225377530296437609951725328902278059993544039456114083266702120269699942620511465544184866115215845631916921219694953048955674834013493205168130112604877802078862473560846938829833487739052435083560660651557905296278560848751633438444427282555554863557412814205091078764601520738589760044663130636498169262990869509608107600697815601775682497258834861243267494392984088980278145035275727265889144016234612893343316083586095366069872560595231826116784042641423153106646374146284796824519199770476397632366476570323472534086284559962124539535504528007707180648841164188559000132446281592394687657393420197989282182510150302885500765782907663949603885890223898518269341767853093574572754984616575753334551770997871742027140197340276566237506579702011997582254135523833463507185312510062547031310397556847145566456556166125591146433751025365962913575307890926127135782884132444558009804578520361705014287496188456095608309764509033989038953006102261410593235367600914996239466108883693197129812250702471941281400256652580838395377672690065935532274130028489952633334845118443495940921410399314825845816339814562664457579947916843572762225857946280955692223149292257825580616361085861557710216907887669095634097256894241749176253873315266613320987964907589171389676479923451041323190926649707537261091177726095533775786982797865111985130609978396316724474515355617228339567544121019171502357811207913325564673863015402978867695259814657505962622336338275047665537205622625864513341047929084747259061458543775089992179316336744524601037478928435498393367449596078524594727981457567333263725746133699139387941498160683002229699280777731602887137078218394107764764350495504369682138387851111045146927345223067370675241570602875286142157043070864242019344360643499495633121846143605821711709373951401671729151803844980161200651949077915421202556424809104817136449587097127674065804646383498589791394327893441843745901271058217019555559130091384422582889070456086875907783677525061667837240955459701925131720552193346671798771657480039757775667696055058108462710301773785976013154621833034252821461731638875798459122213013823673567696174742582151563784727437841664089433578163326313065978326757342948875069783761457832860260812531939345665138856924334951589690130563099267537259851631976215791643331619973076252326070459681451620000706708983720242322936954352480877231756371505160410001102469907129200824740794623574284905069261709477861006485143844761039934853485249426506029599502867890285604772640929205857013460032097774598009401985808845056426235436456474323942980070731359955727434645840118286263030620493674270481967959063852281286651278961804701982683497848946226181399489994768376984304720232145443664644230302805564297929361709850336776143504145866422993712248717573698995319041889295172598003111491278796451887428147891783252514855152391839181213561848624277668523981719569631945496538440128969824705932360281963977324183371741344603732385785038553184788365656469959601781541489285021222760980762790297679156760240103346713360270613007573158161396451128308709440575960253179118907129199361744339212895602328745758564126024639253124816920076984158707694607224225170762928052911133137593386436596567462864741078296568635005648141431457470508536536858615958528641718992807221763685825524204853049254267065904281529197664703213629296987913911318519731258810366836488393481995594460654908015105647193709146638752907605607615227689718590203102263027486159541841394648619379662146049815300713226571261197200642752125552654663442389616186450120677572391435119154948488155029860534708143736012848042381369881700432760711657408320726007969072453026430623446212280644186066799900560260681623077952811289880309241463230769507175592247564688385403597934337633808391013467661189107001648912930125223617435575712751005760645407778453972707196917354522612129434253178558840385344886372606213824503057082891617821619221334552583991627964476129781567430752818601790805863284038995817118013074072192709227150904865419065161027772416720495462020462323237653529760085467541225201394888678951257667188157268491974001578352992220519139788717236062931138246267827531432775444899148682324016276377475127144390380226767795987480185178535811609480138397333537963927497275441747155765156081066110264358113347528878791301761371792237854515248913440384843347620007149247325846965534750579187206202600347710691541569782614230449601894593871748235500825718932071062256839514704663556265800267822290229074619459351400222780672531461659915645221864851721637629966760218604373149210456767145450238818243048304421654393903301219305365048838988647735563408587328360131587090163239855870036592383098639217255275883344884194188120153687647863195302649606028480302125189659013247955201125049528017216980254619367459263990646959736605518577043488640873923748404941195961157373662296973638003187133253310968674407055404850871797322175443428166524673039232930163201184196065634414924572222732383808953580736744109501333705617051573473207950787512613070918582427469915939058828097150007808467334651695297305148725469401948999115158625151905957496186436693041445976413633004409248197348291196661443941043094577414613304491912356709283457252415688078632449898015019272855225523148661319207618652170694142883476330624956576424567128358379735036515150357623832796238372643306957376406256213555107060700388521038694458425458980890846928026447217058582303682913075305292835425342867749965584511799438244689269045898091514169161604520033899170049536174996045839180896753066252654331647948726585567024904256157311618649659375677965930105885176554467523514191788723348455044551613271939205912520885201401243961469811424537802833181381620745976464686405467540420082742863241683381353983008779441536729226907157070896952353009261000355946505866110715190504034404758711213568686201225633619862444660875993112508234362651156489284714153093457099043681378466917435476315558629105817039164707440166661197792510929285071568928028435004027899250940011529582984923117420181643750541168841646439234704343158605128903653554393924547662936003561132373039514821386914980154873845692741625960604941993414466150497449289944383797194945861966652167897712218630419280692679443681720091656330696873445109510092719435788940649070028424183277176573754565578690804530866265980676065558353222008694578917028330827373325406826446898029288145866805192966508838820179269505748863776556335230043894543713984701765456475288853321669142512842707896550545784682077631050006250722754065926725789332142670332331401815760833003806614367082725815208994825126070322778542656272470458956137809043549382957663503688581848290988626670278117519583822057429118793479992398494983292643614830854926660776827282017694681840299583357409362434099320822813619796451985456426948979815653273379765886376033511666350947649657357967249118744726528227219466407002542739331494074607334103873550097959885893911885947427945577079974890084805737134402327382229670187412725975416035371645100208616509039054615872230579515443152330508279500246835946725082055913132495495137030007913595683760419403285244124216227740668302633058235498894561028195699440417690338028741894821037550181382788074698591215631557413839622458290853263458252552729081883132721504292074967283123943688487184042182579649883314625402614767883953720387888008104891294776760952737427234898171575926877769069143862085236914001910433676005961752904963971144934232378925273275674609044831841444703826606973324011433138115159477840310095958162366027016264847710865041123734363162399634875871219857206332133643270593247345851393277213418428001918812652732916738685107338325845254733444898098092658040090605322037740938012963011152407275633274231267991152310742562140694769169035852894402119898284202151373734550146186981760905518044565495273862638166639059485502837959126459416635639566522773124926736297295385478148864945537165026729196188832705539442546651886285657995211590867064429963901249903544846314846626155977083226324036676118682903367698877189038016808832368484764166287858573420724444354487258304771113276107633565924716810329717111869327948295604504571329027804380135610963149329525213898923181516104547732189887671029342614292811249255754179755932300703436504618167719140529496805096647762846441936342989066170082858308014519055376100038002467549755579842994983656066456540165210493370962315698797078815958717335948033847780439430552927653429281407154514547768525277819127756150489584777150161213933214644694291010365572040930741738786154663764099179286972934976373333654464528223876179046673408914204330151593831326964283570429319540542876988221797383972861822752423358823995487508893026715797596937394188863141066961097656437006750203753440373330881327742604209741940884754017217911206350315260829474777719229027949950874740779838347712904719941870029280931798859803493517356489564767205993665383698267574683525863990795479030581556979936033237805292843706987779575473628627459184349496897114130660547173126766788964010102660710640053227268108034278834386763992139496874171700641369134724114103812392142635165784436587436832633753187002469491888674899812145798748849573045293176746515817682698236836762407059392162158775901105122829716645291612911117317442494153158707338412149263216946502475281005664170634309013272987300251849564676081928632095713770222915104331406829121577259755251391895197834732455433965444570356282391133735989949802592815836333842548078225119448102131230290339902881528671582197797579780940848796639612054834626798825756503186308625871998463838752599746377009338685426643144268860857274493279969043670008029527365822457679646690301448789327054860183054328145875346627306567244455343157860770338607290092844372364440175835389145558667912236845654320023677370785939929263699788386342394870526620238721735949817609340602391984495032014850729319589059724057881861667966225453955220441523499975265308978446610924628197879559535418736745160317046893901166519567619059155792865204834673572263569562278995963142648843761958167893449724007758705429654158225713562212424691603916948019492895091880634237293976621711429338227329839883868104555943680009326317227106560187773253593272824746158001053357608399888666516273381638752993708474848705277399152657938688662176132277125798478209358027997346235692456280236407024843834171172494745351512411445850598048988026817433171779918241151482694217260945640769849958846411322809401358330854928845548579930926771475395229212691441317135421341931033575813678203749241510333681640299661340208452788261709423993959051629087744011505673129821847052647690330842590499101572814480926274914465471876160721660059937417885272225080714759463533178631279644445896958505482463375011397898282121500697361239970612932801259710807331790323704028994935552914341894147231558348219637219141403713381106656108985650198878723764335023667210177027459540835966713688578802317570947693031757045116714775013838241212214761382886519855623900117582468294268831191564092570629048902368737689462498382851780196524053912609258801165770262034941998486073526114884952166986535973854669125195560151578944879751722331384986583765991663681966028052727575797331886023469754346681451878294272528865281681767426124805963466506080896373246521280812430357690835709523181006604086119591315942482058898567465521647310960504508616872482550501163184847578321192047530755193269837247490611247563355961140814655014650558868038298458283217750818838076548233628953663508771365166058513819007633066960372360152983847357667537661337587618550342969626518639283746427557229298021170030243754083953675299772187214590193868788903246577100353783683643923445192949263873966683696265093671033803870794748412634729314342764694907517412633692019183553524214994420315502662384565993617928697308174305716410861747843065116233894768371877327710034654176605198945813058657845238356522081009302468584641902251692417481170061083882149180820889196799085391475319153043119237671765251136173319836326617277978418992550364599141212797426327591756387754690625557284031664739033232101018120852215377902950247622481427793712387231930654792381755410538255529403326581449837858947152157866522495680816551521461141031040562877366454410519680915959822290317711645995775503189366188026431638843674451481368185905662680110592077658676536311360143760436314683855223592966183587229247266742628625678814300969636678336209608883454164778096139490664492311507472511085834870746013163048145810149300242143070657380353474934765577212274587810713037849520760677566054440599867069811691322459011623851223683609015357989205228046764156707636654046235692094714602535507667482782842949652071931247629103218467364046348817986550294807462548707486266629482278600650135386745672487721903641364468948618492831534355933553133458783200470099669522561992066963394931682005428355228890515459216024342292085945173805588593033471164510535702082321501197726466536966879768434624680723206565142705772809653424143340145665573426082480165375896225331705932694443649084436852587802242247536909200183460147783310301776086202974064559279640127961698789333432780751392219598328302125845169412182760216333238860895337871951014163760970239049632746970021480593836669749448022844842996633827361596086954962969793631586913477581272829455967929121181083549211404457160196615960170205667280119552971450732725061016338940925063519216262543481470809392709323410421557794578643641649448793713698846962214621637005852207871521962623305776587353259051537674101749034443630416684365598941444462818763274975087632267950695542812067681355148597608549547252049886776095987670409310888689731762638701634044196012661745924876174558365475384070759203593491243395256172520049591503022006626420253669607911755369900772325678158844803569668318392269348552672716097618286323251210957069427508446143637184048027720245735295660239874419354136908164344653658140065739810672910249518003535115171924377553878752843938455498447764552697745453378985197834131955213261262562046285323145179178100302608473707867635965423265216153346663929406105347745490581436492113723088068801571869654744015295801814537311582354127744649955471733214912757385373128693610520769499632389823524471386130558112386046423076542113321582527940460599373471729738148619628541202620838791088892122013706882416375301253812748301836696627096777280235651893301096228658735090670634691316387264892096530033837103224663992769376101539403639192657211627386212130919283548754417914269099010710236142475146422156939909516669112784565599654821211688091375198740660976387126095461806555398218321697143875716044441553056381439457077213097681462085637730382373469931203072851426866625656252579585994637045608025900920984043849805913342680237330179247246840088534728143516937445565435468665844101427745717952994093811208700656213302683351500325096326008633705220032122701622526864985774477087894736514263933481124667029004572178839898728465895676837304895647572836023155556594977815306709648985260302313792307032083027074168934275004207734064739788197810931667042703056113745584569763245719537366739804013376525960820414165906490125096577185808806985803851390889129583198149751510550536312736642343851312753147357166965390592733450998059380562172933137648626215159488147827664955058861524555883321383548637734116110189771888901706398166998412772426030815997550285512887743113403846850838422071707452716124692805624465209491822979433734941053516645316500637463453360172802333033652907313187926651837288305239578767999921509664702587917209802003517446157752183057694721498994839348621175626218548349516651366297472553510339336839605408729800434463410811730009953758336580979333770889725418901106639848742135627308667488755710564204308224741157482084116882496628266996075551024144113186478369767278938871776371335370962912714444501478721370253521033424443939131896210849540864443186618535627778476957451158368010428423368185832751207655744750079410074604169315804039456173699198435545787607239508307812204630197620286521132590659310062801614280356421121638488260152672826398976872546510201666343079391270575662741414353325805043084216626548973025210936635395407067523910463596996913693112908929909568802723389525102944509968928421772765516594028029113830838021558391390586813600387191057491282872679071908850065972273067345916392608229436479572303500926506166689228508618625754683862531822286388592418555193580881577726023793548297777135384991687673066025408956326680476099566637157134670248491344060771744949918562969141997906731733263209190707983163550515732406585167000311351941052152665138232083913854427461141539289270738113852454732659391061800920768292331550842509419551403021864459652686956062771155637199010282143383166003656640359854960206782454204122489531164781726090949901360192497920091644993226389349323507293266412458140303212236772314889273649440344953815036337829046469237190418112410775080518492773516694150182988426537858738208198826760090409873210816863160702351755115385479292961287190211858301393137382792746893635537660495343847666012377415378413185069315277880913166373532839810757715487145089104809223496318559574360930398762341095901927817124530559285914037762885050564382989379480849240707011863517841478828076862464986473569732786617782353662060634651370937524745584183242414620788764719638485391185636482105107783409865346780072710526544559623885028824629063742736932739002350141231248191861976011408923944619346527145446493808052265070848203794655864042838144874330647948889211235741747023784648200113378330405953278327124868407290850731422228938434492223291170986276650428261328662193767308677755967639501170426454357578258932258177016031235795831808331356675109227059204495160563401792916017824162507614723461426111081326250123691655405830653276628170628200463564994377775889360603349392554448597074042618949049891418175052541395887505107057494862338304179444120692329198148853833486175318859538115219326204107824959629299122446030388240436654896925425893519482533955323359495163551610492521566386498538342342842334899775991521255307396057217547432165669137067247667984308377352133793422876912259067039303420349168539496630495006521794747631959631639630710435401678432941542702661914733164725411402042158285368887139573844620705550477691805665314841706073050129113744720235913528923142616300554410449181698856382974369408710007431492977002731455105343615491611604187893802469035608860948138169375357463144279256463591299534438820887627809792046807888788887574083109407195914618983143000288760023581416456774660794583471211592081512512015254819099770959422784190338502904861897005072922573418134541971731203812930393725242793635846650734360568179158452208304061782380965823601799362555597480168606273504662120746227815192308213579907224818678759956338485688934923078903185539482850355220151324523669064309456332084415933900397267949902499725717889304518401229267311024700902862139184038357383029762420575034282322409893476245803838428226593416940134059970071547653437383928683192404906029161694532107378961812030744792208666730345802070842817637736921061212968290813548429469933756956235928399362095484040022867354968704857421972405862453154186775054873930083328703588935014328319678943536987394676402128260349109129008029967056398540779452724423464302273023482308664502905593152208330176645683978409356011072585220270859179285098881256179683188433486094525067398940949821041871193632486542123010796202662723578600013598525677410486807847867750260983888716757546031490266514150576980526125145193878713211792272238961229224922451111120165363951536809847935125230230628293400096649651029595453947815321093654720842486651357609214624660727169694771065341352537045773312083715344366971289325469388248211207422797650966173531228168744156087159915559549586377826940280740082969104848296538720882503407732347956882303824799321539832760423781466682871088763054072996069651786122093603430644340432336464257338857693371158117407335197817955792650966148082305885306705931126934684946117235560824656114474768372592158891553466726972974396708310362303068647607321094605691285975905169649041772387080025520995560877565059466752204776739620473033244220685924742173084803592115268612573101398573390526364501272887484306994235773739360159705778486955745242126306182335344135931842742512268805635513630396073405253975751553146235509990977301843629148860884263160080286270826626371076637263884458046453965203330535135816724753209895360453900500402641557166321282988252123001909563294913391606282990736054958766536609202032056282801179819270573486428156397950301571976876435707432045239666993012481762004457818454190553014596201551306431649384727638204516485692853453100192778571298339332581384636009532877552045488693382873436189088101423738185298350870123555908067129493942409840832121972799167644261029098346287328902871860236740455962840460664980324722386418964321443303085560282744380652765688707338870998872916497505474890218441949061106794235539178215414269607614571834234317782735732119250134526644115207402269933833215420242110913805881198000453177032865239247983672153439144060308370592125032180923239715424010162449216614871011876227279911288740903003301496946355349854361016654931483486501933245531672367411122579127000453770260354188039236337391136685180877670360974997406440944066540631017782541250792980489167663301523515134497475468138603619156604887795777728857044342306643883299767513275427121828627956429008600436567895546866135989046654006412033338996991871377711871531460895198123231980853352973584712198367044027219311102608007394188635784432037514272750216158625943615627668225971137587247069264673565353076924802797415927189154543500550723717766671018580031196802868740979340583627048737858691213077078275004160665165581184929761758909314449223225695901895223617624846590148029655461539991332824328865889822755954847925970049235506594920122611813721460175191601633736785385935611353232179285140842935667882517704996050399986582796549046670596165989473896843997816653075293587017253353083174047541704484903162788516440500909910660141570372291313365975626867233230061545709524787726488766191381028777232842511406326822864618874625479030898940413918886704528038568067755451054063568380089452837541214655334680570633564474175922419767860225669859924225491639074754455409873891563751899952890356376226081935434471817880765922571125355365028087728512673600077753670816965043303372158427389808626326140027247613887988957606940669341609644766793725541027428017791083426509241176429484462795803619670928610538228793489985400352451182068090967969005151912080947608221697897567452537014904000201042027525740413486726037619997280654251480744138846081712648187731465464801847403444433816074897074423377649941445176543137684899001414638606118473480995172010139804004304220525847162740639195768224936506007315533419361066168251086043182150882078074933694858386585806774169525655133016945294822985255639286302283777703691747696877252765207086617526111451546725315256782732396503766330105313974340572414698001290340006828402406014367639549057898357525769640555159032502580172863667531284741732850105923766497622893832388985402579507945671973743847337295203152641147791068990815406940307616446414762647369565301613181416595376386878612679171460001536636775189069652897678558565228620151239816353200177297856726229561389261402278412407295582690478729550198843607062284758925022834821592507899996556097791594504876004918782359240615682342975784454346469698450558848674222006632555225104965799872516393741357158530399655689710218080319074189227432621641900114115021959474893092819307295003175997898645771788287513530461309047819030511116236747217679220218708403225993167790443461590378304076458477931900188119724182553284940586780285313199246439827650599290369025461655101269329248088853997930487291460239193960048753379204778088309855709211773455373231960926393947687300219907196811037305532942358399932452195244471790823845261433123833620027929526005838649714755258670855571552326093185812283589665917558958765318712359732591484294515350208612060312813944376533326297907055798053364079356738783608045217140418623638211210799711042766203000194410288054136704598721288685706319337045038723375850674992898665260538600897715985526442591008929192578092227710095052022129406642004124282098194347242369375497166889901871236871652401932291934494608098503032168125419191067458469712027472043633969212157447984914355011338162043675650368916591314136915349944201807019543184353642782001558557532149558838055213854692078019500833474311063769037145231827082445860972043695891393018620468481825398756635537496281259135722663659912040873923050570922917319938057669417959148662125974150058928796926847159172381693976111664130459205845957185335340492616279493963151015430289284560186100411565237204547705714206401765284402946743977717061187585435296625209838376338228859936879057150567257651078545683326111134392245905202896305194738132776421397386377523580315010579708186453445235434338133192362589261531987742185757510013652873496824739065767547617761003922825330249684551471744454071560926962330711050774889444372851734542933170260590749896494495179345494858070150934564558189085861931564080162229000353208513840242669274188430287740663083657640800380215058833257254935369999004517566834144645586953262124847813145070581894435399585217598806126974850735532577555002413410935353419191170988947862190109578177712702163658216341607785361937597049446192331611034476599245161557911226611715558034215840405573040955932896920333641892021808607085186415304851858592653826495972473719279129807394140351179580727552245191565510550041081160825219662949956330541717931771839684877293559845518382379663494228870173765955442222766298455510188350435567396469305810060412512715320963769379706863531206825705365161959860519206022066687491247273766737353719152341178342638055695659045512006066469491532428300273962824862411023918895367369247356697129892690762060883826485963396145236784225730258858450226572090836342451767856742380712924767723622569767974121292115170223848626903642924808833717773207396872776668166370170714696286148160695588204362207270144764845974791650558431029726536725849490889721866712545786594157868769559370934125633922905250415313209868610514638668819164251631241834084097715627112479962391820550586541698739580377188727904836511375807293181277604135577337416824440287948866246270303497547124398621130614765960527486228657148714310788298812670288697061060972500575314717832809322444103745134519004268221928757338607102245371708708401857916798312986392092301328654636996360323341726929428588387264037188233341960366226637244552372962465749655444841532007348047913806796168217000638934002076975529247774727580824132986762165976245751547506069721413982036314069449451656410071456473119518610420518470274989948914764245804519950924284928380829928689608087098556580387150508221462940919329224527869526215677205651371184530333692978725995354263714698082604548267128972685685408693284920346432460816822616970384457246927982061361801669333026073999380257026328207650537017011038364891365271105027164060355563256251688090571712205049268873558016670757807358836389887510067412248152655416380276595343299672696678618007080179244680440447046145945573513660944480966946629685834318450130562853791341585928534856909752878232649701615287102394731696283417066688938386592710375967852090281959274770803464080505262201981779490774336523928703319720977064066496730997402944980195197738916733051664257953445265715574604109853051958968461485796158886070291990712237013183664172737634854625910391625932847744707908568002214954570315454555600299913434611198014142565605471261805457061529614368582017640449669352956187507835484928671188252779643903630990005737573536419644430460843694732182307079113320565484582215685314573781488568828171902990079515373778334978298918884947179008527236308568835920013381774131087871543062240349537564074008758543239391072530377894342027791546091334407937693078223505072113407505594976040276804175864568606884371920265793939468601661060781365943402528197901572689989036489498139196487014863541721157677503245548591704668095321108807056041989686502187422523178045790132139934746587520962526976293071773324483763878433494278704626229068965326005523406352946325128024223041157429932106712718874414698146943468741913354096459872433435093866584560737060266602127468000985454384609866295309092126200675444793961659405011448031617455439676161152476963056297762676439036530433428302788976129271372860135847757365298346136645114075140772297458840895934106420394074571063001269493808426868228298443926249564943360303102413873444617023161532756543547729867236445689699063563430695142180959457124670889180955672715258086101137694245667337130544532095566739279500876460085869559978770038559868144247208214770704388795790680643188048396593835361387886279104321657916293614813444627925499796145855065375677821988854449983880514596000433749032958657341791814275420507096115974554746146787061042885700090605395496555339837301613574091909364995380952147489295488128350964943640301391160275327700619092976400045355942691811198162966903916908647811448035560683710519758646478423155045247442036135642101662431385316169257075026009010049526839818785835895205251811651340135496430991572908190202364905558435834758344863728581101713666992153257969737442978645247009234931587054042889306664948887066843826475304797148298616068999875460424030197881715946452160812087167739968492871112877746604876026066126281961383061187816989543591571832401760404409004264347242033184172925342507736440970487245059269986424093498135678212049320918362181976689810874939849432719513678810326457396007051257068856978383671784143805576594230840887752111548251259375971995290474288083016667651493907136522264235606558372024777729139247124777506894194090717348201279216412067452787864978320596835859681349510220381910143409519802177266561858404081321610667490268179414965262719519202088795152820973010224451643921681095408819095092057829346433665339881326868261725357865068737421636770038790369047573807595294822890972152733721676119646160715896748383997630576471227012329341432112576360521296779382772443933788958704672196489247797586449240211583702819115512997612056525316053400043880782791291502359077231848880569689236784857110226664659422793903820375137394819126873324972643981194321944876170073028208768865602246111749058978598431330904510598718430323990050262364369122598283352824237590753167413107458211708041840757813327520725829304638203162407591990964211775747181065645854219308642920693370396231827398522889587915622645348588107105669050209149256579019280311129707604106150245315696475475739209134610602133576664820759713226904873025799698398058046002854095278240732424398935585332906246421338783929968645870200226880724101381226952498861476109151778518486244581758458288966822669019946733622139007093196854221208839407476490228528052037158847710330608049185033611419720685907646804192145502536578701394469156239111639470479568517290351177705237953845588624199202228168682804371739577976596779269499058311808111981653314288357815726017386685390075048344710450896734507382066364971913790512206794762647325420224615491742168035047456643824804346661109682357233770793273115107449161631088183595158903515472404761824153638477057309684038823643015253234762268763539508468475637916707312792024535677669896425635205144488886133200642593328019072983218165068081891776413768285705732774280989866688978789145373792786826949248564623276941844944323957977877962240121794734872225891474595586907345457318550566978797251297075312301169365756178422790385981853115384764073788028725653542866807035862450831452429019586105562791816226991698066641274218785763254161375001404824675252923417101693802881844066793585043661291236223996860694904302576850343506583271195420621107752337634002603884884965052892910905736351155153715578121386249429479834033087543905636019203156431125316389982536923593741370597164781021886725927406850045587583324221919325300703044737405286352883040529494848816798334478155764586955490172226805621962710028923551226250085738803381346503029253890442480721949031698834481071556541513761715561934641075601899440174174111925944067586421035974803353243994964296774170928756737408078978259802644239173797253358713739576255554565694036741895358170964180745319718016818425066474775321262801530852592021356739827939256465102686473575588039613970057779484754550185837657478359438435594083752695490043842648167432215651341322979516249175462569791845775787277433147033954305928047755995930295325140844896067447729540690811441602084141329404841246102212508171075898724640866278857804339757863102364311686175829779753805058802955469864992544131243248154682135880322619342190246724378246141423019424252329606442905800757434141567218217212675162245782597165758266202638666432424264303742705543780149315414573323690501442834710546061970956492844894886872380410410643762123892239732603170630219134856326447588680557920926780734715068369701419785824072660891578358844758430802113198543178454958232311529532895881123009335805214251853151387158955895104660918024849923723311548132284019166646261176051312028801365511561095628601446061087249027266263125106473353519436175365719758305031329654061766252678270561701078832368547516896952111357208784897777480017416755555961579132316988146962149163499910210642813221245637095949643457138069515915816455370399574548144889670159202553411801895501108292278255887591503757542839721959288885832957111832712469335489464828763412160413672671501793904370048268980011409799941858646799678291361469930367654231900549576000755977157615607788075330406476334166288686270396216194992865402672234830647554848968530591458357201130221460641506997871067664459784666372369319884476092624698939734395858632393044308777424534935429300914109207794176642617845588444065095212145120247792710451754729276127720377407996826881796519342363316594590544981457490918907999521591229584186096476071697490825543038428898112278892087400242237838323513052856412890817554204987395273378558680987959088650312063594406117336072179553131655594393776849663047120885288239078675285819203638210043712059665311238624078760086449522534725832273487947593822657411486666242302789710691667368948730756291390569188669870541228697587173444524120498015954393063861240082228265043100462828879775009138637256143376900354008758042458595344391660292181850906394020656394746155325335059546200254470747007957366227605770834899106339331232530443048500454695069012658493898689212350297187171412419199585182054386746361810460804764234493594376779510901603179720655114802682294864820305178693338319431507916532068530856526679690322203370532679329566411560495870721827203545007779952518749791120163812023892166491650557054133083863367065208234886352584283501072860130173504304115440367183940718786108103080181295709452386637098910717231147350692954448567666693631625977161317850540115813873388642700995158611890919200791050314858659160750137279944389001885354269245483985697354994739633790841778102309537026158998674592017466253714461815993690107999635507740961615975108835730564672255924684106009986762647770455947770524700304194191932706974220984063834678527611129834064949704482387028906545520595551418673606823827152711647034805331253520714852536566356237431981277997504654992558409480572459980613382965874857254508966531496018663033325048483019645218776852349516537154840566763730729143473196351971743500328309813068448549221843639723515050212520276157643358096032918568918087169451241189197941532664239713898060062727110090317906620397657853287984802958649123865665810644630575156849274667616681761821651254392814297309965308677435891851384850711466822850098767288661730256064640160702295472647853512267419434923212554005588833374572438351721260173820528927733972157585247975415045570542728943758752426965259260806350266376100460649891253370743787378795154077363346351593058788401789141181160666229375659662856713427613744838769676183174116532376708316786177736503405314647699694322810631019630835109111616208630376822044104030527974186461017392215516795912389734188680724020317472238238906674104102837918178151041047401727719937701520931736297491577643939132092464654336016244353545871770473052406586282629337594962332832911980699350538598292113531174430657204725148492840944792616722191258835470483563870562554009929549475154649036289393990501961255410388697577213032462622203454121978061505252672303942109932730365326324559774646342624674531544456567778483618238965349175962062432905511712798169311933048879532060731865829149538500025797503168137371907698689810395886260052431925780278339974152304950774951889838435258822466573443942967445345416714842721171484508791394718644693853481295064456070114479742143704276425621447660411696951300826985674432795732481768917806226300496069215590010446136596738243474189463629653286142963330851343538879704237049386801104695308997637667117889082057567168768705655162426637667307036658707016251903489453037847594686091250228030310547945259268425995852710657773178070727320908529130681761106913570538166807350598059626255183717675891949666930572458923645679098980175197453810716632158207202107857310057783820566662976684309868290983088229885083227926095770516279897262820845215846442395766280087432014031110297111302037981657068927483213980290612233226614198439619453380963859792345747034199561451132272075576506568721728692576881178236599887554961996228604556206377780842716430023506409443619601062206690361301365198147415296473745554491207881546937882974052054550581423680692432754600994761366904796410362694628911769077594599844973284436987327481235006608951730815693148032666286986733927874880162424245352295210443248694589162307075799681331436177245068031105704342543216187903606591893319469583115844603137778103386750462569689886159001682916089334526989623614356768059652991284544658857977808551577651685356099108701016328377195915121410164853272636131787709379323445269749881301607203387606416610919214385657798049944565522185186588978949074698545825794636636872165702608077150082646054909373368494859319560222138970471490617405416181602017697014141091877844395675256246651308807374138552720407745655161567867954255349956161788931812539942041459610095433947245186106216101183224469150907207999614396191848197009028567222250780691096238175483442791312317039135652796550566064471276940889741886741470092499646819968973674163002277748057989815134818679785626395666751944901243298262924991669154380646717787670919671061461025093956029935434702062122120691715974360335409897740326004209025115181072960867963355448587359068494742379998226130475118257625098334787543501289666852351540662259798651248439738050838519434113799496415125981265080131743071928566871618941519736427033936633518380220984337669054933688986575363743223532933050290868709473954224967543115020806920970182259547876027691370476358205558641504135932995906601717099291170758943167696989823758735175707250391999286865782405621915331554337599513319440049620124871945278186755006999641341466936885535175343531573307096617316137792461475113300428431416592324210384318362188996359508799117576878853296891875657242158631540774339664466204527911262253170943335136298136862531488070566579353415235630846073664727081644321383694418933567900207202945583759334880401081506069917809111008146637944499770292094071239532329151569840401742010406452493237807097440070058932791667455733900482432024984775394735681584576832605085463221485488862805646902063008364161431635858820896176442378876399755503174332152551609720943376000485794292517757995540235672121818888079445852878035083825574484689111150299969959279348137800971139247098117913955784556937994889711354165924055794692299757054231647769299180991434595317668326761469596157776105185159075833822545008523753116076547409865451771613699020941341305579650978412792594530105239591214168028826979341980613113381935204562457947135033262882473384328979170306638852712252341080891815385199282693668677658237271266967613268711005470690044981270976304937687341493157507356967378345623813757998639912523774619011311973099045158879073969304318453094158829515030209488876927327696534531951567125429685459332990465268107045360338197986648455170005164763930055209330813824008545603768577187061576548292637632020890506031621087708098045898966596472927809993622738465985192778019560447987845762495027200366196217061964726554487369761364494333697483506196693811498382416814433239548000955299386603283769492440338975026168132392596099867304486103051132917954765527216025374011823428933667143355420323988400049374693217179902121655660351806261257709614313665110941300808918750463090567726434882523658724896913991627636537698271714651013910258439156706273021431163336668474364460995137139957431302131600139917374149044120856211115699855637757086720142972404840664120990233808602036329175635766242515742277518827877465937973728284373525102667136977356391439240276021556508202020452179228215317466961557564486337676288620536454180498265014661979336793036039531511405926677857030020065295301227401383960716307212987731204699339187344509858001892859299399809364939228373949104539703582879616231395254039637411805919459127956478064461923099074350483014459708471491424705585282998585229950483888117976618473059757050534064126139651564320630866812755883229171241057524906698591839545236991714092402382954982825186182979007909183751265743391342221668059566893834136728490670524217580143298807476749095686744552404718085926659989318808403054761429300235066544540168510506338818865608123793329248389979072197961414806415635232313257598027930819470913318966786570939013195115290934944644889537978887664406361271189459765678437537452120495808214198692535701652988484321046682532988793408331061174652208906084034742400439234502792486794405131051186368960345010627868032065545025498291067077542950348639695767025813602718799778268567683454040912191164848510841620095678465702516153590008000628069997201212502771930891933079380318457516918200803660352276070132908014186777453666241419393883787368192632017390607109459463148647027626569980662382487913093745856362576619344811822166719186324266264483404297378422764269081641170617738860656751418912593353084350630588258793215285922040482972246583650658313353947888836077039540215032183436038143617811344599715930039312266046676295828862711056100154024513082742888616682985530336697435369766250532243713877741159497837486375574723622243113708868609139488639592677414664370727711801627720493030278306402290528696176235785823790346427918038149856765805718298994899333121709057981305407819139449229971242529168080330968141583101010670187358359141083777905198258058059712419750340956995591977802684898685798794435228524282453616954593781305720877698589859285164432985567578552040215702179029630352845130274592752307232190848895780167705046309716069440040969433873303805528918993347415494924508675014005973935652161482310061997110555624476659027028510433394453955459990032006974005715055310534164599716105360318771344337084318663300774457093789879640508064319839671478536233239769373924512970626509505229315380139751901114490421185041311667667347893966397552681728415036028702655000299337555454938759407176388095897990318189164945724591287465677841935830929112019025148345607860463938132547988005281652814204787221597288972636455295307973406077783820680211911459708845988779637320773898176522299075110617112962731464035330273954595947841725472626714699890919677334426929914726126938138931558975494184960692123827856881415309022400648371333291041186438566423284733385458624605281256229114541655991140535597236405415767201956980341210178809565811087725349528346577152498308177397229681567027088005718052418198640270269831595603354893371012725851299315515259768628614359153257711128886756234471298958717374118842135459133679481563674316134614310809116446492632755022680995003533211445373910610040464803403003575406566239480678342786311437216427476161597502773652705930041935746236096798866206879642773076343578250852863681023040038056790572756128385900481986627932836360806886602687215397697341146624803218009594703019864547678818950939585499469417004442073456979413036338670158530644702742882167385454706736376621517664179986752410413393453900243379103775290506769927530739398636640872057428959971605599761539521915384330587009248581810247746288027734124285761753750631003490814316298515752548682358710624364032933509948616852508941542182176480357066487521900859119878920218974933931423905076719767133763230258105885988521768601376463982155825024480051406902770077269261765221661152641225834576648169118824815555177098984980591830304789673486775943015377683187831731602336019321492188061681371146956684224015196556243601708894753784216346439627268929332764091247350654786071580177126408772313024641647136145362862152256060749408963545946845315555124871668665324678768514106100615497359542929697352949979298641845726269658609383352170587111115457648682883641886190705203336738774573857913581395184251118909137042860059423913009003538131142287726844218309984985987104411258495882551385043060085866106568438777163602501788063836826348661828974307332891738667356278031008455250139197858507283753287096262439272627299724840577514470068885629315681922126132667305591228979413961557206958096987341479193705518124899825522862037941950082980713462136312582953652838082023229170255139474682625078255125693109242054552469808757697083800021259041595803795594497988566866295661589854809182603337242247918050621891676271031171148390801162855154307609341423838207334803709340070360668583356578812597335300679247561438273688171036171974740529098844781055820676026042025496915769090599875036314192452584605446140435436389215429628548336670216138628939458645453172081772755846079561566575645740007881544890058221537732581514756684044746918569857877707972423030729092422585980047107942479183649724962893402003992048600193355045898626346677102662707592253389014991260199868280747735343098803596037321623916693018232649705559723419167931982393718288539573185312368176111389444402357150587096073688441631529170646134878969927606297701015801539000276065568104421224106300839235420080264324831931864876402913216651703157856638934109802041088154919302839889943129045994371666200749266832992907576576397715678776380218564879638143642924092152493138909823647151234952899024240514342933324085098898657761332522035399524118650005429244805922989023407819963377740198453865826048959744535481973278479642892593815369880849446127691870325661828328803775559196568536045688649819303606863528481057201364783538672607012508041042887497854374242291779927634890522800674366575376878129827246780089320261910706387841845379862051982997416346056899576051464390687613663528574964725955474381786630110066120846492606814115827515975188002081655806240791274531444197006632773843887269039546032644324606022792673333764003231668021799934298099205404468099153240272373542548012018320716907045499561872762773601719355867955965178631949019315102908356495268620798664918721626922659028963286837295086181897709815963328156273844970615156269142749799932412915143224798876194098723950799953632519433899042997691422653133543386432519687077838378900733178827538819088419603728938212954932658423546119616016867041702960106252372277704756192651838263041661199123144936557350488742021098591129077540024602285096017788052160752439254010226536582527612024412281185543737193348562545578934267048404211771686783999176023564564859327946215419263261807113987817503911280237217178232583086717132455082280705544022413270888408850944825272968495849165568156151181722426292736083015208403011255098115854798808710414696671987791523843386374214130250853921965641039309392941259949803275286284126125453347339875286731987813984734899420969588524288909146517382656005219250251227867091827531715331500255519073722336740537969380538223240844865853236186534501594014539052252909256290158970291550812918244927549291840039520612079257705843523506008944235390127756277816259376959489715015499450731257052277723852600189380692262457043324616514424040185988675292680290876012462583508869663988663235960206540148003726901529554427671725273306290029169836540909449834487037640331195519197092398912248074067786857399490539354268667185852789594531272502999245197703250345306797306949615429653115483660230350605553308645857739002202647264215336117514796150843625614961780376157671589683418491398405059758146779594099903344691562280902322498478688399864798327839592085309940563480543857933082163495907882685098365133655185072702064294202362110591402201398331027555339350567020104896516220443420828053718167744094318316793437795887784758406597397521314519566282768942249040685143085517085957104264612896973306774627870433396679338000099218638565933356628800611254658203222016635665226344763909564454173289313070512917461912457461729306996667996431310420983006839676695708423690980110838703955826869620922445399730121264709529398373927374095778686271722196025432648075767104594328184188078582704538577084176680830091339979591623714026413534732911418823940731543199047847281559049958584260266380763464545835661865428708596854869410149875857795029686650025274963030804739529395705271545996874169915544330615280668162346981797433607686513600639196510383439959083293760743327871336560638510904949286418868270454426686398233772058190788971264973334755791820093195504915343589001182166638172987568117652746611495162574359614302106924086398196984818647278182416907296206488831580974801360620415547923245802412929450797059206129550486165766623669744792352735719182799386592496486717550801684916572298996825634271227074393654133411384177478064993287951942565984700989830565639227553673824991194248809429278436042177961944632854386547523531287065971592574079804144446252494155869557295620220255453536078437071330591623147348188914067401837093722461877456113999898388445850866714008629171340241220363252397832703396220144342003417925832673164606906032740043031783140863453700110436664750283156718837126697963450092699271667792882902581048278867013343181340006715144068873300256678030165974697310775643927323339102716431697481148625860808979986766497971028843841039339330679889577213613026233235650147524480184000190690477463533483178904224889302230056888871582268170918880194450418495674247863998351513950492431450457776351579720954766583310179103992365704978402496208954457108773238445542217274326366439553332162846187184813882890077219421221271752939299026532674888629597568539726193172393251594412439552625346847323973566008657039185573270757910948226431377552709031981641115950862437136825569570234582928833651403035037949545962245964905870252634880527482012153897478780069229020030340575614626731401874198759023107819549678900504445870405128611825228221553800205157004984023465130700035609871089819403770748852678738185364570804327226795686327039604376344420117836925580278451851123564807257565932794516406526853469697934240135481537331436846152777341308993473288601446087989643621204151820071588033654079884766119717108083125569989277768355613712884350558312139700641722453077624289155899033384758270231064005180680939208526871653208552589931756211195849467579012137347793135545773050138937584835178674734282387936351086685765710210136173052850716734571902253678221966127331923735280040665392268408427959870394246660584708044742979621221156252012807765595416192275520842743198630686235776875956759042501013278179578657815135195855184629154383966465947530611483559587016471148112585908167109261141031454634209195375816707888166874625570817148488107595722824230011721129624911932734191212603574731788820464411184944091955902921681683768529873889114518460262297869470202473180852178806989196517022927388498967799420935582413130660316499962789681678955857425519846603594988474229714984199036629448487197938693347134084441296787991593880073347742946544851731372546101531236297865099148209979411678414275171739646426291071887082312529306230969317066839525634500862347011134470309512383412994082685119072572126532820165502589171321664812837843237300691026605420647245305777412579882244564024315379889797128604869367418005326202013011546396928979922397910381181595730190078414030595642977037023565201630834271633550009012696951271834407051406241953630120521008954882589812800644511846710281164748303008179472854689068935364208098522432770030272930531426504349983212916431733957548820293559336385353978321530988694293606755312265934551555189162668999782404331080110023999432420497254359521061538282258925310269294190411442412533503963634590151865173359484800809781537035006255258951657221652211053849201376737884718560920609515005768235664039625477571817495116173554818755285432981338918132839478322790780402271347324602858332901920028648748704099054504100844536558374653718920853108343437538693295363583519349680742238845506849078409616114166800997517213711586052604270941364816799602469070151514797609210217278711789501735801039725927866252328241607041952400265691627697071943438818142079056037048270619072058174410735615923814341476699239349308628357586048211481993399265801958205205396100163088573011703694251174271920744215426460411815017466655587312132041862516524071819314440054986385026970492226708852531128240474755067798964702887033233322340316093196537992840862806305505311498018751845629041248038022722255971412742845651384712465779763729621461346695994253921151542439309241464563061587335204742893169263886061359398176529511535976352450472135767637080320043271557317607291410557010474345531898098321185174254509589489439870854230814931000167090369895922832079333664423313956850600832342191304813120949101256024450123288344573047461933499702055315878480448624627246677860832615883044099215542221860346445498488888753000298216657312006165044872267547803696392465557795235392539621091487776560116675446717145634964588395956945157177827584074413046886787765469661856391968460009752926506484727260951519877407812646969378731920224411588085901717578430718264115270467562778500443547809079914339920773258955375400475634775316416309682364797464599958744780404476454682681388478579523356447444765909827698395908365806807357939715143865387752055221583740034740622005677306508419195422144430786620861291668258384536165748952568723050086760749804409170576904938513584324797389931157051025808008212891427166808926486591189036470116762057199659031055401316432484414195671619397572324091564593356287154454821155047032128589633814366687601055459009683799156795216669335122113641475893001298841638802489350584903847928862505311046714994846511876041468636890328299048554605153189090292179265248768572666616282853381125137818949242969383934726947157895725016454398055187481879744515222072012605721245355597899354551857451783055378817067467220681806008759134225762146893876668836838231050433936551777770945121383632582409664308887916714203557168323943485655500731999999067814517235812333068859231063007643650406984618740536952246642968679372847953182386185838333568053832156799389542892782206213159274907907501377576309260369886104541520397089659424631833039469601499324344922901200044376839987241866248090164025420019318416978290204336080917482853533836971815199096367882076727056301875465474880137866594388893063055021478975493928901039913033535532487341392710051329035115328143928479292635994639323525157977113129056975210870687162044092436541071840930988444912382787866644490265795797063365925537914286279142945871743878984306414168962986207624767414037174523672931665804683131721198251827426962775434031124117126364151559426568561542494158725371227842686427675444301474575507967506170345123296948138668717732327136630784389063085025916034531532028955661399847733988498882909996641085847550990644703852391039793686789200943378087613066460416507846475821213597666248039551087234092019842708307581980913286929620186094141026786317073593393691876080830456310530648640067850380006565958606349365876754253454623615605513570834300194381845431539701451805625207560633635833865524864129384110915708225659703664440785589026844505711187599310593474097418161570848178758131721057921432264627319208014983677586213628469186406489055485362051915827272830841274203911285974281256229457019521544452229387605958828196278659935717838178948318380741342941735087092233661503204265366410282481328340217216439159470381280065843790360501531592505039157575655991278111173801586701061309807424328592987324711696229000647517112039461214906571761667937984603942119432777280562937707771906352947748017375157055871407491201656222915226734658035268103534479879741544128777312850524162223469222314517080316988564478662192484021466426795162225466914321989577060278637744746716425289669776987340390578984026694958492051438059507398058612824737179423966339580705687032235314216746116411894583504520317437946940384635641008292873827504575459310397816436152729785406241249481807077268185538539455572662637437240186413758319293721619078941968526437258916008737590426888403789659907297190181452700376150282262706934165071550977315293385213830836968692327774807773884985552328857531115881638181864115671864851931913542989904929067991222833834166919574548537050689887194453787158975197101925392899287690084027558313008997399071963709922673375814030960382715188879226501646177630395405581064950275544675651566427804546567555345889074386974078090704593755417240822796624980466355819289680556189468218449873791620909826928753799304873622109524789966597235427377040511938550327761472042843844952536216964030581638323650143182642453771340257759770398686698258973003928291474486802917298697774229661982103414548375129743654167272154386785525590955703375354995864731096700458900038750347269519363709375161865629909558560325661104722511397535841629772122410499282359241528542279023073273391129484496275297046300296536881304758758014974482558972745301574197085974830461402911789456493177415931425736622931328135761392886414420213765960482276046651556837109152841893479270071522578186268203339598696362473308429430201517333187816572648330483064474206170900473359128143649031367775493697027505150389319018835849373542940796124592898450142916481255748618091674350777116665447660087643956226033299338040562867876854353555508860403578923824539995565386405732672027575158214009208497988738417496372852930456771245633552725094026164878487998780384719392075557319066454364391946826700324442620983004224017196010093669466021420895363811857726224690148614394316622702125274787027434882295882612538748424102598705304254331399501476015300025220766172697414190572983644675126145896216449920752898855686458744632707764848828964727175925859729991109730988085912418341953859992161298774328887940687393052736761379403176559668442802932602014769441151028168084231470151777567138944513462111903145737681209530391907352767241446622316473177253322568134577977661617215877028339461994389689330501036282479966445713858946369167724695853311149446173006323340029014288339961590723535191064413399245799543168293678719231346113602377599731056020117557709065863386930829744840871484636418116255248231484935968431626393582507001145406652304534558161605675725074574332341275432014674773135059419753627703575006595549340908655670317886945745045373282258616904915885907528636098796291076299919494218192973952024713388674560805330575209677413965636312013338410788095104957101559333830117081723263308059665298409757242853489503005229199712186452310171430034221606707441483485335838545935693815904354905687946280268777900549061200307769314326344307967842718945614633716664764295545913727813314796120275686622505555149727366782931425654723603318441092550749036231320723390979339674465383849535952257262607834445697232590838509668804903054041296657966359861241861348624684421314454066319128901601724030019113782404204738813902078900308330327271017198047562446808849490027561662058436616994394421179743438650034822049122521490122060666162499488737027361033252270224903362131926173009897643663898533720019847449384192954853159043786327048792936102251482487384656811132523139010685089592288104656193633556576795936585274612088561647942758489298252491013345590367186424223443175863621080687788825404587056634875844384200410698063895707812939136391171164172283437537630630983120357730480824356111012252479790840000828232623908583594545128608704325170727211673731783743635290300134871622949016718553450498097912969515720799326296868029150210476911457283530871410638627053225720863610866503805360204677811406264025867394924160853779159841227255824780749909831060471920678888118265990820997229875970256815185856204273628803116282164550285246435475974938283177468517953656946484845536018426993320327764242672008173202899904649184714410881030432617403663442392864087770013426388230791609943382306147428495422804763151917570868316849103987453268608700028073893873716404259225804220582036638390393398005110193019124504280495408276461207646623091639151294654309896848849349246052976283923664641682986727821204806199088558344472754450747710412746813159076203274004285581122847701416176705519607760820155432481994373434511875417127320224870082713358972833254519467515473331392678136820237528785167441036911905646596364172915426791737327397098792948364308712525909109399193132954621445475416157169634633957646894159069441657052028571308655261943434133880284695066990334025573165073904879833600609079451772716739902323015231858086668302827486134547733063829892143222013551382940716410477439763576917106803201268449961155817809860021034198224310404894568320882294424936072108398417346129342552010634892355536383658331139596287997037506219148345951300254074489799063949429053808597331406346071549230065516199844929005729988694653160780397115854211863749313067836415812703430588365925370945941183300338330261731622537666731867009965353734728042713912452410000948129846694950039474417775209608264990136350085583498526991865986745840221854793073316160590631208281541359538532689630790933661365980485371705227167076304511909063971518951293752321835952843779394641528412724583837601174695625060691654123536689344559585672519427637733130986017373337688696200670467304599387938727796228324492593733478430948556563771993989591399867942201399088967425565263704936010582485540652623142904006481330410638957994620536959910741518139206289350116780038657264114518516955882108163786224177166360813694568459770599488321948301387728142512241081077133791811660375904996468276152289514383418782884152291486128672042833657015123622721710213188329037638228682726295388894448126808182941850377076804231814646314440619326461974974639633011547212752164499702284308198033421011319068645769335204575928657392234698133801890999281115459743807619311332890218218301462741755209925288195674142834747000544561829371174770272679031935817622080876145863381583656648894346004613409154369765724266565898967670631373009068215323145498322375791470617557044976593314740553982973097680586809161781642707857399109043833865104360242455032881867940854088077810600674770730843096981154774591024772515439072126414666050621661736803928740205648437218703336063982201116758166535139182822506162940951573482621429234694742939159272978352724710067563932990825172318387971750132924136145018766088079637300020291572203177872030097714218389304879067933664648065566108255592681879234190590646383430530760121830079207984244756122074891238359114710562214584344854913139020913670485658248997070704750577482823297999485131940951209535782671560230024813697137139474487585892512045756134219509971811344123782689977346417024955553522476382915615014116460710587844783982421428741448361826987442995653018601753747852095114064277770794506547812024063165489130030475301719753993485248722642681127258272106381667299338831674955148919533344598633814211297221405890893841165945546525979846720157198179257644472559003541166853610037113815198390701520529150596908579362645804457479886941044141958240609812325450148280810070564429756330833430593844665526785612205552872604811376850196426768919940881520129615220370957083431692734985912986144342001587429366750557413424516586276047410721626856310240127421582550684760409195015707147181680968400571887623540027345123401758133148344188826743924649756954499796578858602037474046941637233185478476363765458760113709191122064782740371414642151644220286260782575620609715248519574532346169173948341248312834068637790083429540820106236357992010440328495524140878720072092239325523235441604817273280109078829840732910723429546545751229280528043886741411243530055613196945409801244230647108804865545389262798109187143497933739935186310525756084269391438663288696511374410339479372158727466187295060201410923522379128068373285897798385590622977065442327104508315748473068602783352978090537981267768084381445768999288143175906744484686655162605792353642399841208973829742814555256899915922858759540087404309535110794409731600271447797748344292960329175829183516331832375279243415996178580611042362023256512260980969948695042285201623780245365994430114531674398409625352421589983133960042367674938897371617751005511130031674417406985093317044019387739855327586015815418339208675599915414388628478348909697230511146716436043266144567677145314211771091558002548394965736554212427637162633217219166320774534753604155601023449510470181752139050332966184180049477591238650925392848872731461355261464522329415688248923446390531374364708883275084231525158144244898264012168819881075899275549587467602880851994408087238738300072073167721117091842713440713610439542000739222515126713916603718488977871258074937607052024372464656682463957692273098661196427644553379059451201559635030080559817694085067628059686050725346620856947265495671038716886523448368325824117922541592603567047231043025149892385095326037003151946611792926952544715857099039007579717054769803642589498219353551402189440181064414184110719528645253873931469690954073453649539270691535329906081208047877568784838666402599991059442782710451161639895308327700737632836315027448313991435437233397170138147722779939042811873079935337841444526630481562454708152315829669176590900984760286883328191655913257427600981908751272154017446625422740317752215104128142717125143997171550799735059755593314736102159958643078138641272446648793439958799288997146027233249884276506067055252453548858177992188319116606788059918869632035507265808377028320716189374181150327181502325110366293096567465922378459485941796327867617831594278291361459872427256692964960384279042079291442930179785804088480418764888073148038613456393237300699756046070711155410073970466345459224703850356574765992317130917792542458710469658378303524761646242891203722169504343769183862436158899156051359210559830750530506871276766636087787122125266272880810932322499075662639554568349332431355528078638511779023053628170799128972053808257073394104931244177564238979913760386394736046783468468665051668006352262558834723862140002901123232987214062030007876589631106829965416647653975801832248977694548622037352470599988167198023559539816259637200093351476903450139563755214906394135123222784707220842034227415824194031048108100165691033267443245153114702502274938384947931251987268150183602363397380818357780676169262749424195061373100119217200884581187838717097432700410083444685713825713325455764059562834580623847863689733807551369712312455105965319668645266791328476536555604126867593720496308205833105199190483509433924209855684847634022768203641701303696748716674919854233244739176283538901286025126591485727280049579224016017469414388809612414694469905107708431480701096344575067810773016577510555458131158330317098043151068625531238091747167507428848018136104214860250497794270687937385213484627259032568157947129635296635678522707259505524363947592544224505897055890321744560315719726621576465271513449863600686088430281269279810280004344111242284138052730723742635729704447169014235498647988703203616804437035704307839426960600194118774503104836625001637669868363195249014965928587610005648048616114664272252835662966552427588626208684586062158288901059803701061739171006716847822398322541534227477246466839641740549581146573467418828675646735035579342112457871664639071860924652454353821821410020694356777236443709267582304454317482548198979744315069758044759681803307276623831669544546533869399730219047115831511425997477926649836584931423724279795641824372299049468595754199500427403203416435113509407429208666505622860105719480696982246475549191192469832083994654299975265464555751298515203540191703544888605080652546460005368221777429979867696186461821187493205286533830768813804380546836278460868780281115541999287092544345037071178802114692490819284821202316391275353459898670987915881490484796876003820736475386926164499996253173564487310382542925184982379552156715415142990676709801130399527105046412493713698983005585436967195497601956137331541382579235966433337335058447595017611137938512922113404025668652439631484821550760209968534652619150482735257730109171673261656530009164630670413711206997962850839378525588414017672958825473551706352276044718886900139790193136813914990512624281015404070495177967802603970057137520646882308420122443638103310793608078070364085081906421425854455392019275284559445318928975312045148231450110147533122324047798461074998246661729360909906405807536809334037062804438193400433623637645555887739328010005999705575793487895249835389347227852782463577186163439123836369394329389291988271827544214914245074844329311773237900954101677947079516619547388011342668381920539524815713284518295863293570330112223560687059748141534208943948279958257730386101903890688740642847629144571444489369307040696612533363950899396215203569304305090348021099952440131791329324199089097758728112638133118630401586735327109702414641133336540685453455503655998978199785007459300383035883173264112329136567237315150380878104215846773270141095157441596308837431245821914158743835462268716956586859271199911389175661903866906221055366839853888959292063731126926968314727077133195992757122779625354313425328351286322092695356109066940846703204119376227013412894141937700499817595277050647858336199307329151582218012659285731565780500809887101409752710586896585423093939503357563564881124985140612095490938137566242286022816099651407765393503296483240111202878285991565321104810672549251897913985607069771892007590450184283359231191759982181072515727434350572031804065533415128306596120120964393367028207481131422234084977408790475387806622103284915440545382509543557702351259643437437138854834631996784187076459288961695386369351159315513272553075192552983380923939354008857212143253766994762979185547752286519020469077284820988155312240176873760190309658654811679476173249325874240907123813391721458633959925014613068670047653719610275420398139247615769080227975984181088827758907506406930310465453214668063845180584831151337372550349987135611249167653963084966272002500013303799854824266522425225887984520880590134106379247964667179236180502652888185911809291749526519696458880143105350431700624904240837904534948047225290015883270882745681327055454399580668632360116604246761079587474889152222266958710472799907156160629102979677051225083330132324909094525194622867464961880444883846925234087177613061390709261695246596684534932948516988598769297038393512188286138917609859380802473908513405364424038267794834484078315011042789054683523487194069598394181342623650340172543546818721113449287648699786829846108012720076747237173645347553796710988341280502097364895966215127221094078207990161691994843331864854961481490928837438632998147064457902385708110975052591754435302478383147723399734813041517396207618052697850995639393364344840557404521541069476256934143123856870070964659760880038349375889622750003715960829997257775265107294730470702997149539071679052486230083534795734639350868711833908420118945092960848556242730213858344957391658657346541888894177652164087662092622219552249451047652317560881483489716870342748149395775939125526813282570748567649539735788254309878346323180190571556306647557132631125361407952151050104854769179574255259607201871586964150309967718045961965773504280426161523142504302575562345506857712757558899719324975496744543011642898657726833647392338417450074100845612878667946776833513782119688407033821772043311469933742615609665422827400720936776214234235585393366910860891025865395729998702200925459064905358225053538424972882945661837902209435572859293782276569803997053322111122164162702819802865767812944890398036078663378077514900083958749895783319422440920048373908675036379187572530930829966637143966007993888280021607415175904502239987634673731798800524307188211470560884687156758647112194203056766360254080099411511527668511319640150745025539133300126824331057419935577248122841359315895510649009820555524183152555506591825365889248280355708002154588588059926813029043594960862951836217101109584138067601607031243019316998304481947354065183103082919285549422219571378437429363866790478706995986230239353822818710302928981270449681700548298221049850355037974354573891647258472124936044816094959213444660613213977496574161720357273017515212646921226524162553890416193323114265760884441208494988244804421183615921958920749152569034741425535048000648477671103114587546595228626851690358161790053495879577771418410187717600009525199898504807234285213495939020743516129125499094312509239306096633148087517522310762295020853325840470894074567022543952587709142450836719181330564108214723902843331343088007856467958450970640445266799039832201251850894184724710477986807156789319354032488208910979355609152696674129860293196838344825969778641152933755075598928495054681652270871735955309243387364816948649015795933793818238289448892583037496231499714225600258227360818974406077616769048710858405356192651016819126952990556909491991942727940187988289622471598911129790922440475524238906501033699376696971802787472323887870437605881654314494653626974540572404693249744434307757448533925333603468822389332778069670965762564883786586447589251628624016146892640452381978025244828335555295155227116227420649537043708724291898335500620912029816565061241686635458064197149959446813020624865399978188455831361077258341413513238625762319800923002886518976876068236600504473025912101998708614582281011786600129906175168796570148403493171395023643370541055326993575902029054024376069061424934786018280692107336413367124411022739277625745338653386788303147523202775545396581203874590616191550308161991695791607771994983331453862000814859561703205514789450466936715653874120018936924038456193527927073061338875516221718792675252732250833255586335434382642064419688649021470259194973318422851689386326118230547892517870190466911552088581007238308438835929897754024697292126171488699750625206781106387905429476944800385603363903688194491345791405195111293074972247042557098433086269693670678325735253447655380097951108574867848444103104212343158604907398316148590704583603022781279047809476808234652216472391335368359821123351075904194070850248496330656985937476046015367090298789279185485901220765699934390998141305023811767350308231834936984292303444901149566636553845587824513125646751490244138364029522118435567247096665372166528304416369224971383494524342358429739334106242766770997024036287850387830886467070630280807944434550080669922203615084056547669290548290919887275307074584879957077095073499147468174353488860774915078251351452576786555862868767374846941043363988168019207579798462803692798255935788118565210660013327160308992887272890962170704165452557582037164346595545978243084002831972136385876323248942860843698071277259534617398677189708643028017614661359897617190380420250481327362864445562441160312474820604513761970142433500914417102399931740387552985545757770006154000950402581780189658244561025421225438174558899801469662036829138734016199749528804920320584050791837274414703676832356142313608783098513743969998681094207669864567091248974681054806419921330528212122117462157095522805338543507540412155888984965548948423481581435960139590258798534517854257690611686269982605183414097329724874515133973576873184342011965596004747929589024646721077477819396946324514045311148107862725717141922551290821407339727163788275891872280728724416021626864830493519994079445506713628634468843670114237195345320465168153960591920043768470788237814921133862964011728433483874154318842592113178963663632826813844210389887364426398092559976707494253599030057432026762174930368015813562330593434312907178635934685506485360034521150937569058977487139584459979296044722973321314147230362867339861846747851049043721156915663664715132284764670399045359119520035213077549750721122067802039572342274108206779988279756453179742568222064774527565656271592808404854253478968097893374177945159286795369639014915158280316025348098065723054613138474092034137452229431555736240281592818416788434769800525662793496162564760470168881092768512406621769114988699866620967301224810446970620549624028449421633875283920520946445885815467023091566618416813834166135753885281285931249113695819026318808046645250623763775342860659456335832611951871713199130294403663283852404746108085657192966251311842075162552856792237431379119094486113312158933073158457516435046470953600658786728299340670510798686182772481305840401560955193249345488244529953696898586382014168757942107750000359894629408495390529676849228438766846418208224983901073924982062203716200378944085258804370504730508394026861916715919656409906822060393117685830966297839347501423897398364892627713737220046863592985136444564544384400742486321896631685898963578490390327938448692282454455278314444265227575877411738947286945258580293784128910179182633373721091366774971593732205449389192459791317950725370284482255011932903752624808960016419235558884786371002109911445003375264308728488081375327638880339959572557064760145541606053690021176527696367085801104311960175919144436655095590103291033835714588414548614336103415216423251392857316452313313858221154501655598563049070595835105339127648645808619989299545189957466265908249516941445803231888847343230175939798805668459068675032343496375609260508511802620526105541358995346747383680414969387733572491690401586653401769267445404843404462436382859067918105241337838499747878314831712188531083386905241649322014785264314314800324319153036951684975341719492596948345908349220346856409355789922871902396858887640621156438472909874994029174480457093132763157534938002009309700437124091100122325029806164504932616200128835907057691489630132116768145767819735356337152305971270366685359338976062967682347365712687022752889737636271582490387855133352650210729476806460691597962269793943083657686677530410533904271197200679604758502511147141185720480659014444660988306398714782974703681235591704497964422026371895721737240014917483872512355254667812305420142750302007834964165450246773244796729326478934293316454266628394542193535430743468393377103408252932916754610885395270700386591260680088649096473636096050684788647681161883730158465005453939279765275941590021267443491609931574154031005296687258268268248078528077555393803026803311446787213358113270598846680076442775143129685575877908568736149092757994868982321169809926138870345837910742047461471564371488039116489369336951537405645679215913328331914004734131437717850596966117316013010181015931217696779508581809013887144766869432813209581791587264410625222122182360387233613161932627567372652294985803559281561200077870634768535294576203498575492044645645072147555118792041361090438205984135348674112043015040368965130298211259966260131436260550702679357463712736195762380298144548694300843656278578679759066006633541696701965697248835139777686762092161119552182715248940702772774618544403882578798926593185771407316350276994254041897714405230549973678542499258886384549677826025553500403719501859899672238086561141511685752943704280857685488261314502057782991203710318786698866256416369632802628052139584945179781008031305191190275967439847109078215982039191544462665461156730745341395658228265045268035297492266265781479119559720025610469885570546350770735472525594116323206678359019817898142576484864404990959896697054132864704944778096488340824542511356405300926767848105400596756904371141254924696461223320809450411769079317488556884340075447743801831374203155579974226196841749797851520171828704351743517736571110849511777381239735216745674796849885975691974225987888533655221538810443576782280203835611045303500866035127899879116738334144266091117570061930927249841303166580847135327417337233446054571293291633286159282820144939032793560993165086330636449163705426647935091642091412213877902457749740425815723513332035367173275553024392703231407415153568588813267792027892582423293659340470288401751865128326181553769627822874188572545859217311946368425245016258968663343185786521153819616032323125585644303759310658880316747856998468460908804352286331676552450512861625223314418906643935759373881884038948607244832299892163873304108171681214014596244401601027014323749712182013699163344245281746191260953660445924887108266289986301133615637077312864376159452308054909920950572689241574575712740424884396394900621038088237161062177564231237339107602497256522005221008392771967246432676108616869487912777189429929998837414595699905598864612171056215908034920709783666375076196108669478538904857042717917515849006145817448260393312479651799487355692919972162014427463993831634465682523251159965700217278356781752412860785504688734461504467203240884390400154239241323026760107655729189019818388028009286315637609356172210882176876245248914801931146191736280972823282017897601612289241075563604933340441162993632763702090229477714741612484130077545766760938607433174193957698696043087298210431306708719008596059241477089245993372171997649025225778291808940177431609242450013670896232160405573778919895801042578797064797276937707973654222387671845786265219463251709616242251709208559264080659405743264037554785880974218663969888521006178385484136994468154413528591914884431531810380045441699552293953026246988920160022621352384450832243749411441519888572084409067376495422341731651201946838511908487560532737148513705595561170389288840479485284775565702023009647441440176681540247697577354519782681270158897772407843190212689403415138397090873662992979868874846863039520294327076834451057008767635996139097824372041838194286639487840558788540322317171446018990805169645715353486096749367719467497112869175287208272982683388462957467075892463317037613393612960056012895588407884635693262687029966092183503041837294893747510631828182591152083449370935131648025240990906388328231137842883203429612514394982527884531725416885760448929727946574200897259606077100593701142255341409985245126270339380031832397530784709484129425440969149683448623287285046589585144614218399163538607784715973184740012371197832548098116802251139286283135968053672821452863047254364824598015159433166168398371739917103050679236565984093164181222832021304778823210692230949385160340490824755905269524131629758358703438969654134744638199435604072075555309738800383937277147356449773320814551801866689890970408928086711043660242050454681562118600190000473047108594191555980903163476254912911329922594948943606023166572555191628316535244535419463085539653914079266948078240959469899807107635605026214965527621162926968289677497984661819253593343409995927194557389759197456034913574324465083057999993856307941632361122386887446278991099136767626478715015959373175249076734358380138567317191611192101183506891954503791752434729051391639042302165942976776216684331573108368303497545240199840353913200357301095902130143663293533889288795889076448441504634089326443954290970876040340775318668439180913788052571810864768174959706720160039237791220077011198734587901956050918069361778026216415437036918397355884981746191836418129362590730801154453664407977830428200048066175844027382934781433518223140125811046973905220885691963114452345208385229511109919810294284819302527188970620536141620829052804638833276376650950728610521934203015549043543271393541004511584220283093213205435884393608769620245406917243392196459906551018382424709006210400336314521448851357421568130928038111183889045975283548776501497270049580488147333486220124324483333007863813689979408588733175288978816593607340498477514787315479311679962418450434466744931384662502453595026957892021601006772193293623813438372258557247092887007263145276865124602166317470966810598571595548314130129219818622336530391149588908904703064371014819238491442944922297255553297060216844183657050666133799526633469979280534699772536577950161285177096926716819048182040743292165133209608393260435381081126202181932818294213227031391519293968214292799130079246117519413671018980193974945443558096044791938371757669511633218546009550948826662813076381689171371099914722919621379532125833986055868179056852253982121493618805570575941513832928842629337250199090582686197288798795652262875558231313144337362781549940298806252394183409209278137154929823960056753324927425635013488839584716804641698646892246900065141460137880899636810725912676415049031504111930898265904139046755494053390192099082818646080901436198236376420317436060003618172456834202460436649038741572266898423709980688305618927149116749646031993424755529864329695390954521562942484850012859986248415802089656570171914905827614273141652072890139392658630511793682423591395801781563455141594271218246565855134123129965238635421797761199935718851221415822930347718859446654600542545278357038376232302315418842551957580004360846429677745446961629600598622598235658000470100083188561164553609853586715609749143331505821462187087831459459304453833303417621360710975558791904774275913171910018376624494807232147002378605842325602623127824300251837240711973312489958651064219387474840772782429813991202087089619956982232735281461098682375211146610791843147388826598043927831878016650938247025640240874604246689596081331415701780365765102001725800751271851652123668085155898224337293007169078192863306477774887514878901982033371698570759959727319135781430886202505597982209240655543714578947417120858068388199237898196164340970795933425838288162629077192794404439775140947179727131654750698195644899597616600120864864155962352799993497009207866728097313873577066492712902501051159389218259337675276280916836824550975522163398725985521120272765932656429935157769626191077735320076577342086075156337934727045818225625142458370268965359298364951677209842833333468530754086950473458230037697332131603316548098567923251578803701990119164485984085727896571674537546148162995245907574102918711579956270045797581558203043493554764853650572154595093393654994736628080104803893764485784756503191290109895158374892343902734232934529095031925114738754900095785765370731789506897180021536237340883357156806850154415941438927379579268745711377609009608495631679544861262926419373099299924435213317956895586068631184844696666979546153222431311418757308638556636119595159772932818252013818081130222845198297580272192277630604434643554938255948665817195340490343703420601480135462764458742554813565550032898325559651722180686413910449527168716160213786226766808056592002528356587386726166336724375945586512608532810435188791036024364313448377860771367041956458816658739272990842391250134498387637020723204016449321594664981704717927056640161333274569119527251006959133606710169256466605606668051854547264269323830997787989040387500818919990736872141347793014619115075913551589014662591635359635086801068452023296040399517969398471851065637743984125502869968866110542985133128432798923195163856366823470841161047212093352727375717101544460531600234088150837478541055729548257610316561111441248249581830696286050832000945325930793641884326938702713515958352883553252267827740244297505522326792840133900477179818707292219578953690746160416229310710294522946726048509266655013240093290125838208706844075059839838986878845434813485863012463249051975332794738826523163222857127421765815843466629862671725366011113782770858913405788762007964996221944385551968478029177751162256052125382952976666051200965281579897030997723000076932433961486402185216254327488641673631851638176412166130337158170758564998276211964764410817278743711983991110150647892310450114243075476362689554485925846177356969151877756464062154222864463988861891517011646721584717955519391385946039370816552448580067515327992251581602948683282325590084440802430783242831654805307066532419869265661927146180305379892498856050912249768658768028910479899643188464359313257996033944181456767276180691500619855632639857940074231570931716767663920762797703102748854977587293681665073551822110015082932936663137556409372588712752886281281070411557119227468198987597136373598551525620569079499854587094295300637861860590832059051479496869430964229283730152587512651721616161271639384163044212735255782533675902706165896942015737680716118911783496590720067617475318487318337374724637106744295332248114916803795893186359905577745764137931038054955449322650219399227966837359517503848221426698636489307413182425848850369029562674972840620378686784377807223953472366822031997207598750565097186594608890921073574217266508110713894930357273119538954146739517031452916537977314393278306085314631746584278221353246803725302242524212392112123151883830893776029969229513737870939182199634805822496406859079063943935688481762403065443880179410697069633386824205889123065055847562286383086636696571049900469151621492110883305438897290695107841882784941927178017182683868931156084943926778282671736209112225336438281796974175210816370813288709524082820022940278234269184578185943357460376014988748983937757285264442638630182428359888449668875505791399530920932273655539372435689416815523262488837810287014345906008625516627343715671950777084564711070240628013152281518806247381442750224149816285820172557288846067546733478009200415866670376405740964201847932817210298118187418206213990387821949940112727053381237238589549217586217819952966367108779582106940856657556696921611133127205858950129946151010429660891883327340432845262986699972127235760377337210663495354324738302953294335697830131563933620370627129988934025741622049595045670874990422445815438458193255123831898413751701110904637040937861863991858860187707128329090878445714091303672521884383705963787962780262265968601841089919178096026736546875478921515711111953679440778920675798393793858330482638121603722679058593974362444138521637389164727816976213245530802990601611085003892966932389759736095767556740717810619260327084490531947794784372202947625704672043709279975663789277606878325956869512940300764173791398464290646341500914304992160004472230163342012515967620328552534149567051350737177822642927948992785343205071621725127114689596845354825401897398915527856678816727731840436617775218480062736600945704839215419688386086201256858537882986652259257512261063558534953187168110020195539515076867323212248909785554401686550315944004123742918029026284183187255560066880075847301093302300778159239494191488485053042539985716889775172971948102292816087677069329558532016900191221933722455563051244909589033033113613946538665086065143896432608496567127853842728482022253013394775441117575947999928388914443016171136981693826815221359568969068490107169914331425590177310946258814960166448969834797914787119502397076013743430689774526929020331744574974530744653909021816726710800204246018403208177546818098785401738424946574205293254563961687887805049214690128064209710698143796768724208597271958217718308496209670021430531439691708089917286617502503505497591727042348678320393177214805556449440689874400405212217888893606127472482885268909971014522183424585922456192026303198393387793836500088995044423884669115631639024138195825112717715429659672929180194706556085277000782915323140126279602752244675837596423332025566678247747441948215888687476910992341495758231893053126741868975246496393846229060895854267543328353668179824006894416839245440619335256714628608967767214118680729158110819010676365286787649925280647660615012981761206776451036319334172985764581817530950754622462473437756876410777805113762132444140098704904606429029917474151252595884583947356446941657511575695927711989790289707495906264737641750421190748615872913123184753159124620474728944424607918469402529993722674660112369872620696007070213275390782675546985402441734301697378058874961947504527765421547353673364870493499125992626896162874778975381666931029105495791857594647361333693685847967894358994539205771876878249056544975894306768398577068086539766985452246175469636054732224443397138595645568062161824505412952398911126909483688792564712481257907921809207028529879598924774772043951821945101932014083092320964672144392909887392517560378050994593379431814641654761958266108344683074334732558103984940053597008594671090053151352453759136423557596787060326415394310908934701059310586126001529043805244860811377808796470422861903638606342274811736463842312512271129889123646121742274190357540934642605281456438710419429923572091954994456692299390712948569111779509537105266416124658128309112080809130595787236859724621959428221330007449351333831048753139855286273084837110518842181457423350106992928357418675282917103729731923586934450897260530641965304200909792736556532434740348634309800661864057029551505308809295592922123917260601670059507612355794424992063263471032305935025630424575199621184345947512634878614160204908943336730119086492742421681507405450653991720612009089685949115731505153993201778374789694379566460203927946834594029090934128087043046425465263711632747691006728553719006558335467821876049969382211391637919449937156385206458861317542102409576200070865742777468491205834390000284899554795927906007441677490732277995056858795360621992278863033691260365125090288410180896490078647340837054760415649248929919371257512205113490233465581716057533831127290369163461944979199965441414471385865270736060324338184750497241265562641735557699909096439600114505506815055167737969959014084291880045998577548274480701555958785950109559623738070776341199394708698668670274317470597055076751729295260066210011001801760770718173513606205421499974775094963012259564842715230880783099553930998137228774253741292685737216002272805179917405339941370312365289935331772612701650014518813727859919337784750011578253847658427424245423882660786389976343278554413139575678242631860587593088165725712737337078593433155039110306834327252090263678932927165130793261306606883568643208615800312360823047932615109153358210434213547143011404320657164055987320210693257588739913766202776822421569967313848680412822762095114090147753400983365901033347561238367655583122315753892303561129873933350641485314199299418967328656257249909370694091471994139689142692711364209158840457332293863005971032926689438873391511827882135200020170705095278516500517562030862470074345467857198586960357069742168688521902749829898061563987277422609933032504373306109780889183896434752865473380168850699856523178960426296951360947491925420682638117827800069853134923811669261947383383915715338304854571377497312050475431906084698910494513041141897049453420646234180249688619233126835886412862246920018225775197010574081055930308435302426663184020859611760059331332804645347680352031814400235514280648750366338310335738351553527913059000969061871316835875390825997493844798395758388823835427482419770164895746428954297655493008260406200588867189166982699257348583948234988632182427811097301820003354486530965579504382995104189542753271676749258922276782675314174962295846362174266423503293462538361967045999268814469598197855490967196236906139946811241583527383203564322272322797093439363374544216356108413901074451859832991464861621253880017164807814762363686773790317318214388841037914795601680491901968574329226801431620538665621019723333004212562760137167881037942018530075924851013412410318933639503710794863294455623498437225380880021472796067568141425467514929482944154671838240222949505068642804689114660883108344821550942937357746456388644441857591575043903314703472835716340868351465153852197446812790164041500933617117382240079806928951148067791094090683071858370347599239721298281353638108515530107804568021366162845956255029593331116813122537250853301032386617797497996642319619627792352625129514289083953707498775970613226036310417582095204763104398404933794979370482022750471684815872521776940923917604547193671486888601169394841954531846466139449788095243815039889130131985328607743092669284182981294444889262063211031897782146841768809405796553622605017166560779637712934576330977353390228338063044434985491646084473427344976947575803928748305439406570560727224942687908838697519097744575582683727583529946486650902381620059683481269850800291793388143715317215639295846041179098627909454422064009835985599645994844546994548668756940554123946564288934212544064314530931244797149239170804729257042419818619047902223619086054046070797754766061761406825813086998266783161375141168830066336490487019137115593983373297231193842681245947100954012631431491634685543254604505997386049937746854921139457040984415150482307271595081033173851529342804625461325294263417792480052496074758853304333786391169359342603667083952503923909079766653619678566715215565062653270642301315008125270645775249247998796520575254112390088884548101670410792384153784157170099558394408325396499658140001195461362386089001821706076106883121060922146329845522477570290025318270421917623181948430985160845665497323557586192135188264815370731619454549652715122910689675095101334248364717207819296158043526513161282338887549016196693403657676148491376075263842382032191350933773678170342572776442771741199697776874787980204254010778272225834040799874486250598982422278281482512014168368340716672527717752079895902555616496634756113777641177776267858946647211425786665489032896423545176034079641870759010619319986920239189571583374922736405937840505172594298700867938934552990864059356022936757102973061255835794858362030516955949560983935702978296897000504279371841426236395890750895075529413707903787655554755322991572423387880253896820422170448182734373717936580287976364369770601888558382094120508879756701087945415603079628382131331360446122479796867477428719242726178276774437127463949901966053683653946636078791667014894882512407334543304935374972650664810250318961767197267813599361162211274696200125188417946984670323081877347702479587832806896510191283579238911460053098911543669579180521256942978377697368856233085001906995877310240793955371770692197518200111610300423407026269006385310092821749165812541611344460535511088777477634222866515420254333369074066845752590728145381277887156433079921086309731293291489619676719639924921062330044698280976201627191021566627423672664948435579678767127280301285016224308188334497464554032647331614247087509587023786377840770027469108358554358345906479154522082418438358710785494933208365275273776724721813087488298071093200883506372803201834553185975466189462405131378889561802556793759605452241982911323208659446689646278087814536010113930476981784107376088748916024400846521974305547193559145154670403380079413030756918817868374774595951057007555863186619136733260431907984004224200074626392344319139494988695748722462998392304954931354068734668765586863212428817563255598926930533647829962031719910150563816318332171962856883343814399161323852447637384783366695209717076838703030358907456621932724328074799840497773818959375612119693454727475523787439566405975346583907122459318566984854625679473673406418785422776652676377731974832311270041870594332091144864265175824967111572270904664797697419386018092121315806104272614957882051929362286695536604708119734710740519792735900753144826711643993883797923155917890559540993315801942922582825700185287691286486024079904712785443410197784284611818201362614227039792097649795375674695312305846542249426736448114971479881144005450686250589084388335070208802948340517871841570367604629858846926820322463914153657355978314012221155998991131339639244132009775283363132684661296078201748581169220685038501006623124188146076524733542219029282657828721093018775054793061667744094582342865571756913100688692182310906402402074055543019224180348767381664385775980336580187832651911219444627864021777704325144109330589341405969429806251515263471094550341114187956527268887129626518958441724794173180808681179678359659265292381418616950547853043727775841244410541780765301422257682704980318721890660044700716963310353489880607054921959879255355559437282798874124936960346016004467557035495817545849810796970920151212417560085812573683464929475247682890170635366343951878720963887611365907064503862067375908319317412737931898610324755599994286753200928615524284706333145425042336104453312603350973855138903523918317797078896951046015989288346618844525998363238998482655732091711472233212859660817296844950343346386704186679001781360509673068897740796523125340250647101423150966869309111735001066359516380805327394347802066151940841596490266982034869071897344188053563659774232005245648968862298364973780292891392845495418285093497462358994605781053698317037671627302126778939807631996966497231457208914505724415000141236943617858138137655311661158915671901703000132125612322775739293739748035966791793348429248375400531035885455198346401374563504255206604072839979633827285211400173286164429791851367071436075758502926956857568205213071523373856916375713367041307753825174794009427631379470519121559971546232646414332358301735614073221898165285928265411678963356054351464747332791264597595783996932835671382470809281725774024721107309037900245285568095073201503721117207965350596297871629937093325672546592978367700987090175580584193872815213142999116756506032262728478454579789719127366031976221216087352012780057732341914748468158375434514939940292134720753380673001289721638363143801943556124645379702963864661583703266308456876332614815459342655869854799423650581488296798655232066910310103790788777525426499692694893164612837635602203345745363006855629849306124132987330760739089133227460787280305103980931604213871320572902029332632537091570981402918538475735723859529669314122084685420865633955314861216049389987876659492904706082563414568262220874935734984604205245095709026491766402758479413184704923113808611378071683802071581867882788236830419614766068103802557023120059690473039072690313735935668445739762293186816810352537799822042035419806532786205997708366497338657386674500347050735089297254021784914790317877291544351153679940091073450186731372735116392446318460539560278510721755466667589797773938021111623446624041419465933603940966229600077349946821950767200203110480599068092439514506309939383216206945879550786158650534626772534480203720371353435806255512370573973511762499594211438423746947850825990225788380103669567592156670824134946461251785412616410825002267056217702382480725904217237660654353890844175308379784217851976919161591215412441881829760341100471245043955218767399095864643178031220288690674736018001405614249773829523687296646314452376058947569883004325646145150996703606376922141877716070942592718755698593498403643895548733546611376139402512621289956375174313523478002470359631205048125899831663367745336102489828571384072341314032788611311298813098037409763161332242933777752401665586636864717197183780516376049882117445014468464425638154023230545735310784251008721644516223072576164988321114374742049544660836016341582796913285241842772736826602279031940657267453665881486667131450451072989925354290708433404958066678662083112868484240444610994219886839581494081868066856714993898889867430688293151901630968922834771253240951855679812376959648396809014313250286000730462473605119127902174739996044610335730514649029509035174684167998321095462887900688875577989990606725804088777204140560628395846120212644037206443118047513580167575810280863679652172681225333283120692076816780925298284241235482288189930854343856673208229036173713985949471627088640118571206411805437982185163633109750544872612630287742931754757390817444234488721692698505825036703055020341100440366491705425086984336671414969065046466015291702415990779450253198618390832576295774454909090030305236425333372337173805388254056888527677231130058825645248187460854671588533562987493159886552138636727762000069747768690071880069633347390587085933561358648341586786638855392890771911099044127194866989101552120299042398137458763468509152148324672465143074761007820175806356225993579319483070472648959574167236262150649935769669223368670351502098013478127707259235862966759920628486560840466067102507912325024794927632286327611878522354212996250072443095043082574772239066941522793082290365288413957795580934322767202093057876552119915229570768357120581521656015217650420709619674558861873146625686130154924076360374788929487466766854015901888652802523935629005076240922631040420921114422237249055915279115695099294851107857703023126983435069977259109509516427611742458847302950687086867591806716576679730335740556982865521198645757897036846293105019999679867752250600763542967393459519425188946246693417340298275669337417564998493749291371623953575828414039016522405084960594773024725583552837898428814529542689606133735284033376116499830111191759374186578558043361928793192210879765362904666196259721700293121222435623491787853276517504662650081212455416136397802247050547751474449158786104511786135561708094824845564660398998815056333616129546144560170173447254765135164921530939391773055152151610766533111869827525464881200469278254269586618524555770230126619042355243954571056748171627082735289252180461007111561032722368090058212775378444159780814768683495742459596149279410406905042520094412258109675798585692005452523292651945072008193296417509316364451358022720071635742945502626210822373615529304949050785057864640659262633117807588856153503577570191732690612665525513145662647837999203542529810884824479939905005867642955793126855145692133922538112449987151773595451990780109395068441364197503564571514360359979335187023268111425633986604987033021941876810260825895528921110617207823286019873273853373462000546750674939615577459573991782074093215670265574732739590573209981430692124018178446104510337693165873725717323179365412647569875976553816247728590742861353118123093287749833543419125386053219832816166724107022019972479674759527905006342695012153795515106823788909763667698879522657816860472687172210679518685743572601667959627125572516643027664155662723030748416844284273890304914187879476805848997762375977521288087929563474268546963513688012673871292577772258524751188476103128029158413944283169667810399924675379525022282279593824048016976902441366926418098829457319383643031603252996911994546464810079146572543954164766445578064903434398643478527236178760756770509033677320185069533656475722044229179570831666967148890027673483174403382746555218796392199155142132793315700697398112106259925360967330120623463506046073004018166688295007697884432426616226437704159737889348922956201940211281266059363718072973631886001129491113788467479694582505884647680034341185385466692386790860549667443992299361917868045057091262981122444708194925687246078267156864395606027499969588886567501250768277429848750423491458337733801003579724413157187860377621380934611662737235387249418814316205442364617482111745793799610401213056511263826490559351174707175826980924033295992145823392622525782085561625543853085280571323114794345086790414846897506736369979808673513219579113155383947230247116162657948806061361744304961074963400906620342371344656781906025372536536343035318613015281280666670757980966303083727447606695676395327496746381439887147355487804052202248529791146203397393018127627114726775575117268035498534749676657953310841788283622828197586461812416872460133688871412137359511409481232649069210157402359079371648670678068098687584571290147271338188147007155922075025119114701350844849118462783554567133417138270532690891974072803254737582328141502209920219299720643598606849290804973260076741436359093700964681272132712291465909792879197290141684528621741031590804798159234451178776093787817056646303098224690713061351845741304249044773927232041553126419584625469932704854292327981878537679691574218875163219915874336138633751644409586764053025421943384375251889051191392577483223638447162999481989622150848673010712654660653612680184406300458591363824305569184573830781580756927351810152921315451529623367969125635753474839528641982245853059879977510524433863708093540414336162256352044258705564993248158997626692694008844146538712733933989794975699925209138185987378936351222075106926087312944764198983885784724354018513774476096786137548765013047046474423025249547516058299996032071777592420030435590246401573228364563074925431120296536783608421750312491770863620066558621987835343974078179320188371373947157265747613142022550442900058779255039864081679190121736366127870027613626221439785234316033068576224894940605965301471823833549170180075922342265950249604892692589277697086304252936168220208845549515376745669909799396827314961831438525572225906327738319542977411309225784769780997570300205134227447319599771401315953672613750129094465539385335403805168533062255012618796171470296085215087621809448933256535209743807186115973200727634699465099682386906506302301152248648659837627567005248768763446752030549908477688532323986581450586867313776094646735795156849701293491029052634842206307981430703484239060023755830864775904488530514036043871083420405181804094163641339290308587636106907144490516000459632922088053306317678197679586827810001904567418858320818836720012518960299720445616934430487710899131254167058384459256012389269850529425681440564153397972360573256620733284805967467689656138057202238979038057952042579895861123244035859319457046232612398604231270475434425678743123582514071118171232600540416784129036895714749154210077525311811573566450904823702063570080685110831290626881929520534602661477738557349308784629603080483777104646685491529345097913696155282290487943800778430293770494598162339478978874310941341221319387545892655390266302935462129721016087650321194734361904855009124920180820395160417468754767786836959635147556008878853484863461463960519849067375084708018411286174056439853238193930207210869690171254614971139619602648198073985196651525335696475084740132166114161509182009484517032749881410253776364406055356027719510413852362321331547204353781748642371560093838605659772183003882853369636519230562829303856525092161947443333337002272575220511642489216686474344995743176264595415956955882597313617183847518100775171672205206804332915997907112206554915283882261571798807587385470242850416154783161765611692806688938148565971194395855381216358654292546064081938115263085723793413558615143096777599554640345443093225803935440839507939642157712581782117199804964207247260323648474082459728696937536867514493526670507846143026912167062109118018499009610117353725888594309959203848939169316755079539990907298203611927729242791038071735436277677356439795898898166146009735752868913037554055287432346460000271045594721137453411383638395198599242651363026449057317343622420413715664481851487666076985195211764964953269121706483269944937464424149046107482731130871793461695415929783712482783272956556629360181658949678477180150385855967480562994952911323982227046606600116362670347048516678974483811591550339491916076838528113406965592031600436087141656874259665539557740019615543447165071622549468881298873281647163221845393812790733223875417724174181597988618514596182216388907234742682504625817768256941978791379928009766321856774486064498624970077867780841845462826608272439775140462568167876763493133129154312510620011618153443521377665970387546647845070549290899353084457345967301102488787767075800238420830636121965249543286286641920237219006574754166967618728367852592362892384274546625865366420026235427335949770107391255263530803227805793900044329063262221154628016903248632663724125531630498649035639436577475685766393459699898939736309631909833133923603568363284061613757437205505777195332836381326256412383889313613240581469316042634990834230520860210472063992211920316851068756432114538814741971234464117835906071372543759365782122559233265765474866086974281350027650192148933046425616303426212401007352227534030760658471927961194830031146321926819986392482131597149788287801866147717331692722813381024290734395268687608118509198234374277964674171431816833524898826774614830374957915209026060413418800591616688721878930337145904455781817586491020339473306152242589415196791728756806215066829816259871046865638941395627622905561277688751361394303892179106374529925139304569971840714061545854060271955885474750787743243636476910119392219476652709081548840498708261183860213400013132087367760756538318407737094466867598127602743757222128535752204488905940442896605550945285633142721335866306395988823684833929315589162137866321020907141173296064603459194614090721365430673237296455441814663329206696368555945685291823589516390200882222848897990482127513112042022116272204608982625406186070461917259672571260609577374471499008865833714341220753678919292189943965087500996950542003258197989161936597972592749037212638107627124916038114096229623542790259642123565307517485561408104385307309084004622699350473093694199413776465921993361628838835203111593504804753370959389411379861896233487098419952730573285614347864240461203246160749411228560882533203744923532388476397991771917226636320481346649091294306906305962304297361621607087999601204518462811009406198027048294814553018125261515933318795650643260966034639510076380920342341739086952149264697348404889124862320939592379276309482359257357068520476527138294169084549815552871407408803857987687290799309101925837677467398528103635664473572604905914781260182924224686661522034639804567723364079003631334811269292869204209336600752152267115529061437584085940654816857229601063968391480966124977018347641379159899539523899304747047593159515032183985991568803700636302473161651783698224553190227296848376043426251261210210001353261638897307838712726276828306500335787691886352212824642637919175409466750997231016999993846423654697393696675177557247287832045575442719654824833965290496870983794632145262777934879568499172394694648832039343199101360979096720229300267362468399412043620985102868211581635600405768230403555906791173482492801083040851357345105318138936094248013940704445792548361775936746078947128672724707810203939586944390958765194233749626429514949805876977802494674839105020804660614954137783628191409285687254976178534278141140579146675840652330118357462976060129233034621732712466145787947773094259289463190182110902423149785919986008326199123269353786588867130019559133181906661628083454576366992962976125625999700698859729107119481631104050703278601623499677176496043252106851831920622611518971834201112714377707917698841889185892788699543367481055610283088051942717507708076458058613915381522540441421010489717277065365878410130942419372621799984480495364417651987660040924562375330768001290267605716643013886403586925220324233970864021775720107254701221943677530521479361710954573760215913513990182910522750636146195645696769926485022748987567376337783476278093533939065344718961390728223819623949506079380159147124028922022513825024576449658439190596442412546386228703705152283937803045422478655807350620496251588354557290646198452890612061463165197181047471677083860648929438039680812777694617228851918864964492869380330567200026988842563384056580195890336165475957167527673971538823543991229749828301959050619298575563135284157852627335366881227157541281691666399793421495987464470328839941794998415575099092630104741022482327426105318275519060430289481745959691282295864997733805011887930673379834897056955714064538630266342291242720447147593119195176729532700950731166095495627245863102367644930148604897430216458836308809396686677949179671095501201317607907078859462716811428031625691877459361371404875622372489843450026762109796841943066335330108375869577226098530032565445408922443926469103624523078515792991089388283804277863855942643471112664438125661964255200559178439084535894577431631770761805241765782878140117431999710178584897235544544030283648339291310222821059207903503716644301364705163589506126352726018726020586710075722879399517313160866227713746465595814840489234297197670712525298455511729475816766097498089611057842532776057317864698562306269436212826783051921087683217175539610989087876454812675146556658655293912520991811289752477071598880551611934928164084762529518168454877073042097158680431715420604120080233544414223077618074217526119119677377147838840163311698790168045650958321438353372212581616116802514133339494928286556259264032789498738190046705866922192773058268847545485259275379920087302809871991491036386139551987862952654984004105677462458675777525295927993131935419620605044493735943066533074804993876855089383680246462880391962151056760214631085087596506891338777788801666253269233110773278216868186830119571582020062088717501233492657085571472702895931987151439623496541061411328786325561690589794647075913655694288117951503918311874108915097750825100815982502873128702056223705746840081746674343368234967638647285197223938793172486225583259880723063580762879262479870375010129509431471451695466859023473121789612854310838289456522719707364871486222812495383520197546626073795879075855258916763146631211407677028495288656718774776803367706935180753758090862721070046883559101850881258902465511822831787401341078355628360694599342783823407188933793098610187765022676310987486267496204873968933605205193312955622259592429355075886614727477897369316888236729631158388247250079464653423040433205011482069010495235760485548920015934212557368016711535324556982606306065115252054413590259891248475327211477748579258635185875615147567602836162981332184045493449878661466513761559950774748623531685253494223192742234617486131398797291842948898859652515889805751713880359974839350161521820488873866153798239687869309077996108900596630048708125124612593358902064411588551746697831715627424295423824362042536002450535406721435010616717575079068879527354801350984263753786907387695402431315329767082802546794792691876106049154854227375140511880436099863029201349562428804625200385242234494879854976313113949454874359079653814124270741581667482529976804298123896306392742164333061103451334603041406036037039250195745158326381196238230925059075762254303250053127354990427034448810768152099821432113615957019384463960189341305403500283456173420993292216995855772687477424119979965398070174160015758187818452196033532811188429244326901925249867884897316581836037805036176066509154563868727401804204988925746248280409555200552899888256779356901094676970645072160270446573720388499150959106047221474246540003235976040127038985576784271688023818675988644964529385284733302630117063789407266872071583331771387331855819996511390494499437655861280115246250215237854892433238258433808649570736650913736705701795632901042780410347921288810142621484730750022382467812566114341729719853874418222216694478922818728525249740606166382487320117065005357165166926222279892811935745597256759638774494898730224831358849678517672414014429652741118876426773302415552424572162300501337765138516035945998115836854461727747258962299074199541270583593711243783178404010904906687450484471986112678634259888365297067829922573831625329616448486356229055193668695482770870072308684828131969393157840573366970539590661747564651207461999200827241737916502752660035725737322275751851789454460219696565816692414325225716770043903466147340460978766207264312385666422380299786168080087651462958535751767375356160270807155742946166166504510888630393636322507929679523752890904730932150488886073525937541033645460123778769307316641783436602281846852082504221319920526659863035337454006880237873950188999535811609588471806302859368545993689251184456738824618776907505909381192976723015850111888283758162782647339490187754257178254787696404896092026768492232778107481504396599629785798906584803152432418613241925447222219387948970059674830588227573270818671568015270079280776079892114709053168754954895887074142412648618706621566439806066423485797487818997737821445719243445758521352274151330935050430356306179298349454050314109352972217321440033155602431254456786681160998690221592302492536311911204705911516825483286764817419815888727099049881776325155514475260362053637020959576265708794382293390660886843389242329181559070029417833148065003669220650265645221176978374995435239502253429844516027807175411098317382073530434305808327760380867978907391447466453774484488606927876734572168771115030520263550101931903492218329609224936857545592014439687340740982157737356158474480801535231163920524777710708635543661204332705032287342205451817849013340868557544794075320096053197795829697108184142114119641387897151765434184223735823593040235242964623517077323364250065165842000623393880099152545066499495060495915265554374634511572216604075910240080599476629538006599977057132213445619363076909801124706626619931182154147768067881798212555927161304811512176617316943862311388595893119476210000862989864998334519325170919337268434175576530242826875363004606822738098916149611692684873697097494268105409051126882517634209470623620525914770475727542523321607715518707048645837945161656906582814834024188026166594606622673217130179584129206001244071019780143806349528918368711766347916576448736076559796770407407322501312498249954204895174650111156367617913346205337783986244548833951636233904335490955890079853875186453764744030029180050036700095416567152332169371655546086093308908022233094450890749160104546116600669477056257595944549301840015843936078165840132339198292373166663411711137853921290532154637119778017141967738048877865271119142883173426985369056264836894311009976819706291531397077760279855261950458184164189571254059577491736380414746161828381197765959471747918637912037123525697702073531584107148623748916139181758980248166890094679378049123058200383151526990060913178029585803083915418552213740873093988079051776246692543564216110269549118259639080272629406648358594634842812892456335489741964250354756087309981431060673868124579633628223488783173325672960019022775851036421782716958180725281472139471712866892602668198426522390769927547913033328580186721647371020312560667357356661110262964304774577059318083876136418330243481109891006014928883824685242505049079628911647023580990333236820242112340120396548909420454678064662638775059882246559578683258044839040983468528640950603447614782341229099224248736699460449783894366181749081192883937239269511049732329802875594266012933592302467106207847725420094241563300975898231878686535085053904179362483326033856308121209540384367105021034419340423976493182054296768565997238479797805539387461260308829248896223170433224891810865407220137336192760305195383834109684513494297030829391673626306656800095044948598237215033446834529138187605096022130477040626889742662892484036833522811657560593308241413793667190599052408653517576420390696733309314787424566656737392012877597929377355216642329054400089602169734264529637536474353263596615740806459960594430533970781209590477951298077796632612769517051073958223638428377048641500122823638156035218749298115030233549871078043188666086415343919508811118819511401306300168676654328358280737189469474531559730390163878061678443463093407359601645028150120948522685179929715733146024291085951225375870317091066428030868914392056056848387757194297965552591802628327988050109363142298615872930029804931483208217164250011987750746877200662935778680873624803368935276070425419457013415460473181654177773806151595029850685674746052366256729308323338083630502240251576068358653180511156437428706077970268074481790140482326422511033420110434139660460850401794332543267829001571791450311746244594379676275119975421530607341201562948511461567750362628821222590965825173491902762494579850979157495409959294716088759803082329553084065405439734160837527649068727140129093417230527917501694245385748356953561835588432911102786615782446345554283165409439064423876846433722807426634600676897777816719371801019683747800794095137529265861122737334832636114831531911410436699212667442575798561930197578328971634473280472546146030826800138539873800056443270749657474040993829172637808306950347505331952145360915187917781753645505713764050147237540655455903832254284945051802017171124904630043566201153338878523836738470936317055604803676876778617994138272580486079170207828483271371887136885695070074494538413233251902714873048791278514278293585563502986783899119213850770267908340593238292885134971778603295167682749437942645231238575854947351141162412681482803714017554064800692843672877388068875040330185661126240131529300457315777185213857774417311309987423220466729067525560473536854012652154636315018136430988222254009420358256152754111332959656649932907826189024487490509010786725828063315886572376531270949460326954346077852780236148911741250535993332787793379524824351228297200739480948682493401758948157821016944317351926149626475982614109931226380947589058245331055914910100512395065535227512288747839659936607955938361454668295928914820036496564458936487600383811052325419312983073772338760383012388944398181769984267888033271823724456094369509165009411843595832374984975118167905360371542137008928470202241575907839600125949131851105416833914683111353425708519879462638971553118454586377695463296940636385410492863847002585728662702719197084927332500337612878334876671032048355116389346606656420294044170771780216102389938416342298540433905712407603020854257313623527008374800212337436770807161333378952883773280349161433051017688004328132803631690439736170686000928216114509066870811685211419375010826547744025343553652715409848573332324192919489327811331734874123006728852547082541849757017526381062741970850978437176259877392659022267554014207949580931266195501683550754994110428066194456631024484783606696761689848682342246154664117692136075897450800541992373311873837735144468884424871258618932939446393119083647887474128852219518378561523083416908647431698599924916200045183341874049480594220941641551622474084667800621249341189730027067326411302878281675330990671328737262435940790640918770989304744824236834358859965236104836330387026747617054033248784889363895693759222008756692659549211467179712818557902219186816096216776357461709525773076216811820155245718860873440028658426530200701290821930010379590839366815752740950422743139269797169926369899433075491065454210330588635235378040911119088041652799092103332387566554265990708464642380378717355086125264114033639974857764017427305918234610527801386533866164827452862475844675196472229929762132351951175114459181978709723787048253510204569618124407640219739523184456220332027780271789144946787567021698737127436824390257978772189298877207318640093186998464020997383860879167059163196728959147598752875916114709652396500327616056688081779748193120061614206928522029384869262211459622795375352747325225857921783969018132238865630882733536631724502674913595657606513939404216482913949618061134962111323181311341400997504850791004861385266165703338608626084874108329598230659342120944215450280376839831671360742778413422965660488565902763528462546315389701676669805311100578468716003968232202703979168503386855966251625562842936386268035665070629038476287036309945517535980578436095073144610587168862539771121781582898032707156470768283795894265634765679784401929938732360801879156114735779627078493587267882903245579896685188905381122129239142819426665077167248808325872775515767573871538730289005461727721230961140881285984161344877465344542542415233160074675386247651695332987896683133746839805545425356088471996154999731287023264584391756212784456766166666826725953813622331519578174271915972775597785235111770469752621533749421780125666116502515593629506000514889519540993291244458297911772726375986271750972937413539359447330210759214907585602857084411327966742177237108052048444325064204232996532228969711511453758141615249911183846304262545940925955793183755040376292840810286260014693313590209123272658593448777102758781060808109326476500154023319747552397393235849258028892315908507806574746238089521995299214491666048002745736543941796679581131099024089772932464958860164502455457092652020125775724847113925645353934930724667577114754412540613508154721158743284428703929127252470442146980235448468684020016966642977615673320294252690098766370091319160340598713849604548184310791208803508936653913526253961161284074289592944127628821261199780414963645599174394100188381810496832377903435178289539820900005700089590402212831495982900356206019763741252471271022284614545968610188580309858678444280331404119884055536916708007948268363813772727543442213039179089307670815823085230892509421810880390997410360412267356648893579817025516570004165308825979952011386552777039290401400644238622331111099056723973613267862442667079131546614603915256680910421910260636775264315761615416931756105423670327929645795222826620047230204580890238784968285815020137257268063623884105366507434173000833467442054517682091858725774325331136050782260972151430103894424239986708574772972894132798149150227677020808261975802419237604577009413308805321789720966396417623371444282619897859862318550753334625978465097751996873588418702358342579150060646558307574119901324472088142698881108490495261439263233264246454086187719014714770622504611949039778244988272620832233842701372622503387703099864615135859985257263146009726839260374310477172388128020150962588184682428988907211889785506663557577520124428607577628463064665893449231143152299205093604478015300394585772404086780301987638950837039390183884325879208028512273679995928539520228706281927353383713519910705085486042902443768894715927846999874320066431549173169571181047342865951182475659631942466515248255881383486071453768547897111288534965640096013567370342394838821729704233140760392615030511721748404155642030176722908790797380946491816510933305291941954093614661794108412342053167900822332475796579800529844189727897250613106954134456133297274635758993190519619955087768560154527589507592852119880272343857453799262161789159018785943640302679480895165285969630699348353764001544211572229333684296021857207827215739181511359969795194982255757913337688711898979367140049958512689489456465534387357610918646126963511663512490840750064938403860295943604853122612702157839484718194139882353015738078268484607805118229731205159816673277715942416556010331819993711555932461650073153108243501923941092709741370983373064238354853435501406492080586848017741902489305187200495340662858901679709757039923051168356089631958434021765043639503839859837185353894543662961234920020853981074109602548078228889191858388036624020468668729372701042724124126407414326650893958789110162689030410214840438565423007269438806778636913047710231221148261379039449880306362350704075629957873723339955154771995461040075410987505126645900188190290669975936447981028872687153637882963118982297977706577848629554183319779076332536795601063477021442379818950124631317630686009513422884300415872622532935650622521441412707610963481236648791578158049554257566591874071969418590583413925542977275783469623310039187114006329357423978365742454432249906620189524527552842778999016039814865336496944454491723611265102678461766464999498907660865049245979939758859551387146249978604957347363179788382864436361400663354651770714555841923201882666623216053681567376731868092088716458892376664178900338740727039915344598968893161542774307281895206710032731048631299845302413559676176347925757510718682070547387614809752671166105523224394480699948753228830047501364296308803070424285955259615313137786571673962373399471543299507781581363937034047212129609219953600653995415967146137082810527674996749832846915142817035676430519301040521290241719017177768401832123121601685731109917501661927995003534766460944423525058285350681309937644819844850702166216214390445934621036612582396883474396435399191515491190294422326730379376621944078560632435134510564684031820083097573033829706552101130307397218601550207124469250855801420273283728285671979884130095736578975791387605735745603611673944548307422999204141072815824964912706766701660217548928974507120967273067835235838910050379975807595268252195136475675178647676820963211462672866507763217919901710686528037910885434943108028259596149281900944316960873738681646654748566467842111861872475666102327481279923823298298431027508907504219267195270975042716387154334097894986845009734027635520722350558502613207541187662722928757755625037638094260387267008084134149725985351611845226574921722860722692789205789259025681882446942821963073998177233069672258398250901840731674790390138644766820595416463128679528279001241551685811499392743944559294449060144622519801433765112768668164596825656467051375844990475127313760899872315052229797947142920004587245466130660506815447509430921016136953997742908272531013521392508811263872320063317784310537187260701110444755780132062868050914914125026834079261929138090763692630795239876925715934266862076538390567285956830868798630476543676076901597623266035781966342683829597292405350835959006613446406496949838300567590982028981145763969117692797974195560449035932451434379854863629393666835939592877475278501224058072419210216024566926117678827262281196288372782542049852367266589860388923285445282995063049977175722736854078197694677725523708857651592686049671570611993404969617355720929665632478695341110185635998224090524456584879164506504631744415160079399656971512775212408348840330028276037250661951763132027213105569456521561614434055147306675312593851897269253089743329051055327277544396033813357724615415800328070916214437860278621685382362623680219886044644158509510629296047869897424836320983079114174600488823627405447430897807957262781054624582184360681632244332594305846997233377037113652131864787809927657007536936806148193004839357927280910944534295962987924865859664501768591868703030335121130719696424393622688236786752894540780536472638652946670140281721976218421340894277362860595466553862044734417338471718919182839346165682287802599731205434583364889924098934459635790255702308050191261757329425542271868491161770672055573014315852597301657703405168367502404732649580858390613638603447903419518019327193544098858935734782837757559013876660778625201881404521876786458568900160513380042700125879450906293413753166872338463352157575490369736950814712784196268930413996010121363335056107063998309750397224293175925056818803497924594138476603114559233166618294290092991474230944258834225524806835858058475467719794403817507959480781083265124234894191429311530084862964251297654250127505013664311294401038381527395231056059334387937582845288222061686558483451122115127164884897023833818301825305732879845286647050320993084451614305734129736943926434543022381810934095754389809824626335289067957280252447079079829921745631792201730806985802281551512697775016166962308781473530886258499233966641278876659924134859514702643106010101125063296214581408847592784303054930814437157893714477725433485695135197797454530224708327281538383170002088444580376117667545943331528300952429554531681459390381628212122827785390376494894277305641522630759019032257900931659041901688151305603354813648087489126399727071804818481511954165315315423643299716442884126503058566651707189371653239294640256033149294528019988761817870931063303681131560699787521650285147497170927870077475874515531712521785681926112508661523576867540936975940427017228082640284612487716198127835205948225953799475158706603460659695874564319964249207354534662275021675497661949937125470515761987199322881735717653937246136648680156374954243620256890177865832679695904447052378622792824216028783653856092900302982351389375000109060281196796398584464648219428403687813247271765151865333402491381817642528169084488077845234187329522477694758635858814705523139153322838441417983674351308648222286879406706507999421058412174369310480855148424903478820559349971598591643283659466741680767248821080721229932080367598948682131685800049737426799172636216040993096412763257571978394909193634208762544794723941124418920708396483698460368383334758418000309068066744573375512301722188738612461760633085999956472236806534331271524523977123291973778782420911182300456897966814377881782139150211870490061060236708244734945018918028204156223731691864779169856268859379521537532830963713371009928137352607562433939534604639249575268067774931517896178423833278017246074121332196467236994985161790534826399708619457801013757870576145556599250592290468443950187323585660061499160728493615181772720519985239476707821341820113460885877470769072191066419064873018656164623064481003883827564894375480025381819522679055070441117197201307819494280948593956740566507499505460751753742435098257530278083944274004948641980054800343200571067655646832205520512385339481050369050360831104507541659513456306416045090679824498020098873625505295289797102543712262514682085434989267777287146227309982804029255334351431725027014569855944756290025787819075144487695968021260887972470216063319953368886670247201190042544347954024609910248120551418104156814784892115168463688070894878519097949385032332912162868681069194626366268156870933506009207504747523810940796840477760825064349090075533369375436166818083797106222683815482741712762576802053293514849596052564391292680599433230431008952771901610133917539958004450256503309832507362885449664408081397895925575498343653949121432363723077185971943235937914107089138442869559621381547949415004722063646407456305886663064304579242317745982641501447193951358313808375669116519264435028965263188557792317270105303076097495062531356602291761762924445454360060324936310361098135639604616641073933684713781273553814765700588208553932504509073428559563539167800053762003288330184506594597440119073045730724189182563027611035252991312215152635303831913652594702882544680507105859165974546607745077132773622514688763022992189656238913887935338144548578347127484560873961149518616396258162338690072209182350440079623349206297830459207098239635371110894053673026038971249190334389934207894035893450286988671184285041750961201210867606970492320780385291239085011513965984468379680578127207162167092991718117988741061380563189795543801833734638403493967255306548416203680435903951472996582917285258855932101424531098527469383715109027214506059631627160853790947941276475133235669823136612231228386608901655012818337966728620305830613214053160993111129997040006241274114380019530892090786946018132512611226412045720462199834773366630263391765170709794944014197788715478811525971886215180078279496866862702734374049419180369550377556549825445672194182702517046727212897162994767629931241023324263014842751803877487828197561666574001401935842010910523275392615569344420010342249724909206115480072140712096566547807609414380725168968454343417491833787674855472938217824814547248426845515291260846227111090087226206423703690465478182871050563971040953414724261037092107474640658700313797312218790272991636068394790228735787294996422470401943718400586711819641070548008386416089248835525109166665723664441943425268441190814710949174903669234047004696952389843659458953800892622610686200368777912758942086616573232167073712216329171682453097188313882918827489413841307145824545674687443981944163760082061098314689299977574220493394813848690058481539487493128847185337281293863854461757223602769890129853442063685549102892325606592408386580015744021526872701519260602502563849232455875260055346970298084101305220224175635484344429680526845862420840010523667119984802375926769636977947146314762389369443408801478337006282181280677832574392624465031314871236775330032765580707147589875635534859708187286078587498748555687026759411467093469550549999484860098783603414221943773229712934417690085644029402540957038007849557755944956806165982710863760588670724153124960033258599608365929735411195149420536845080974826478290149178776202582769027187296841336158275753358362262960059841624278896347157046229357646151590000775003465306658584794706849786827129891513648774375742020555392402719660268144111402656600780510971707853751906319074282805024909043125605010872935345915665152075020720085577300013230348186338869279625039797532610319270767058022087749680586868742337847909197269909586171186744966748263806012082370092444238825487484901845869883887383142210591351512960696370720059279464566584178058748423950265560513414438512185223146974017182587033330725738346008813801888431969461808283442278572062944034958226213196111664732316375780638573089168951438076267527780507750546371390549824001831249239150422900875959869692499434493682350270064090750495158682363950967355299397349865766831362467998628567885414316776758819045834932381595389815176736695974972695743291825579888571629669104530833353083885572126638077903943707454996530816480520542519446576168568351573346116958114771195928250506773019197594770608976589848403516444342364851779692680144990352882685106008276765969632571425613809196319739313100468642528145245153756066416046133458157359055536144431979373942878888939860750233564372865003131166346122020528027080432994604109328387581644704772735202463466084939933293668872885412211330100208473112464945737498995080426590507802760072955286133064704306069349118036011736758502313477574840436905035921680415558757962226357713495574920306228506715476641166366374430516699144182223939716680102029696154474137534694095518585423883850921146605179507454925177803908200016103827134519147391289394022052463718111037566031436520201872539313476625015668094891028259221709105915758667507551397490653116597512748713797485103599587092121275187105813620187867682793646752764761163417503299919288452015897627699725678935080314164848165110115009156624525545268035931146309464017295761614369384146984283604234852676957348854658646290372790908756385693257115870584005643689965555685115760873278081113551407803516472251406181849521808235739592894440642104256834559512938980708357354446035443551929008535264639183501048246734599053681450210725150857913280703340119783964095309041900398124920329554767904107919200050634185136113742703593125138244188177552632978026607888919760563980592415473984655227341701080175724027141293340427179685347034148911205298609423565496856494680439305433233688264125502635585952861770235036038851339230686627817483561552129469756041270388824547068059936979046337378119097197206158898670342145701216587506801002971233213901806373296514491273867888013528882260088137282326415605911738921715064508027493417432871712871225918660615342719588823733387773003196821258268564531321365821692732956820298093846686275269991721150527238816601484862688530654088817098413799757532226528498698027002447811707875457037588870203416005346983514089609677151470011333879994635230351811257403381738491320726924006743452064578310154742701752373733532425807874002913327757958854714454525651726749223905021063084635645011511599091891506401012042943671346396769175237326184941384096075469113713052622587563847903244437917497034800222127427714963162336894213427147763773069411023323189996136381953534998871913997537678040868274937406270745500251367979647021020376815514795437196973925901675605255039147140585110208984017186959182338740545669754016516952000471962153903930646632079352075858821963410117392328720540833511986111116858912104568485731325279527192733672999417079511050414019659690138032398495733506935052568817349063208548802198113604114747046404853850465576942513417600670634257432008520694715529927907171858073899407394677880395538080169245586153098407066836358489378148963238194019039782662252072298199397368844879860519742508650607259152087437952902843642832283894017248011010124271742887848180008933917032818364319905257901493168512021626994367328548127104898515245593899438575722573395409423319597621297123381018103315750386255605203745917554004271835158590757280866538659025191771810150799846407572890604898173182436505556040859160403337508990900114655490616089932745631039242485838692622873978019010324911545143429204065064088122100431155564207415057333005180404997526804055323622336184059141905688380820073607432202262422895340963141318205595220187083403713673852454508056090061782516434471974296810897964088785629014638947209956707268283485636498354272145143764912596142488350500968702669432409176274287121243664725910949733768569367387937575614729051436966285208665530341509371375923054002266162774889696449560969892199926513525399151636982161707700748735630114134734473845236965134760687698261734673921538080394838840723763392509325584855227046550595125957903061803585788557068972479588133650249388606853916862113101445786222960309456963867175809546262112813933743289020086054467446125981336321254013459943417503713752868610792601118197691481279767479419706683378392983604572520568947163284267777540040786267286338488863312085342830253594986889987821791988126805132578353707102149579814373269481482895191614049120345057515578198737046472821398510196306385953042645324717582957485848373461881077072807927988400446702314668979306052704974979886712461646288965435549712198571627718356853051548502003232152075710896514198580233732555508775327263404636028332022791552060576490969011598913833018658804982682603465674310212561225552204577515442900733941124661294041448088841719969523289300915812949294464741661716219683391458131719183912225360912964271220882008915157125097046788364620831724040249329126020063216492853537463916438026782805686128497039925651124676528494788051271702049358433821007700666992248979960035685347340941880539770366001696653804142007661548830620342764424427429329639951527562527055810035541275197089608629629550918417329403355107722182642456550444903214986554149871172937071934577862786997443163068309596291838090989255294882141644269543648344173298465551610613005274764912854396313071039313584971072873811304083786512131800540273414217721780080738669223292007832001678680474789287615441617403891193889328421977702201158650273574010193861975019217416734387200464429658870071048784945645609479914732766766809900267225418858558363341778485996346781272546659114752189383472469667613904964260168949680189960361469913508045205953240564831133169814107734073772885685733146163867084795805914622455855143621546464379815427854970586993276356572962884606465014755554565194757277305622814256335304689996510792608277616819949776826856814501962337954613711628730559742416956611795184629105929355551589930077380341015432533109607178600392362930178982364449308480960929683816305130493794124952529300185635501447676236698781237429016676320026655748551267507279458348384372450384317735322980796036104224555502466671137886045389344926275553463551811140138938472955339987742551929643333918664148345266211766411027841989862218058221795049503241307698407493403058836093450019129779935923279971335859416578907322267407448651145816914144452842792079085231091548942186856540677911468381275469942735323001594568780388882205516032119013713627822373027433552729676805875180412202527650696811952296693061679219517012212165110017973258121301007655683373786256597470550611560487318467363129450541635407561931529884452245898193786515186081784431250446391093548083456948502070205368499535874794664866287802713131597028155713888508047985924610401568937413947601833045472445377448008529767560170716023461286665153669404535452748624603453250288319449157288111977506873262532006381054752220553835927129750623092839681044450409659862025369289204458579093740352599028155831370088447066299103757439417532813143437468281274287758385244378645051919742980754886220990498505453398098036614394088064487967530734109056847843574084465174750437013875825438102324145567260687784826059613055442010363188767221637654452467753508352626125352762534290200899531810444526955568380107354589384612158977523042395337211057238343652084624847793738863548297903977730532835102450486027681900993729167413123711603963438374745944218006217072022322376050258951430941540579448888643421244106366356870989849787262408705794346505674327318526482314168287713749437274045669514920902884542070070068671085619990700018187786664124732152352835414662771643182119778440463250420311408720009860139873515124339589502107135099387723803632322879948721483081961707528528794340231331536136992238152370106984919083900446462585173029326958174556884424126664795526894197168398830233358041209020560393727866192010131532666569703006536340898672729127058598573456570477558337506067451390647879202713540152542250811617527619030279315231655946331497297884929997520172993323592739070678927397487352309854454370015004114751888622288085296894770358994418239276010610733269837830827330222266588168400521399773152850881258991171117390401438424083622026520901046665741792157151062071350107380153941724250106817920340928457392543287851672423440631765311205990280169691868252492038463964394482320858854536374919494415186488126228212966570359240342142967740234944361948453501875269571086733626229809722850607492312080352761246366943926963224625544624446844763392309951530150437758589000436748286159158001124032998768963216355299090300247372498314188092270684414159320788537463329447410786821724353882421043771739320440198501779430074746744408384177507121793262581937894777216945684690344520968350977683271401936074940792182195521872394952857163863925010871221598967559187554830163431512335456979832667618193097422628740715780284517419717439824359124915562253880548809653728652668040698168218937322799298184384714786740102199397875164475968382808272705493036813722877178341635881803764630189236193106744922947752890686582811659770298117515805860734222585184061726319149967057930527613068485231752385561171486051818507449717659281169275162905141111731794563982581835096604544393718568310262454385353966592511917007516107535915119367986663544164694093644745258423492910500758246148495542451192943664420239011580321511918107443855229151346637896501683656270782211056351539334836441471436233189899456700482691009885494583267533326335045048599565906553358685768134452525217120474443259075447859492514143739518246475235215626909389148813404434106755705862278425676065422267129538615930624990813020980161957344880365960603368625570380904799708868232114390824479826317957535762525746914299284507137397272285936321686238877232696088099739820229950717228603897406427494854269472362362672580098724406337832031440767587462050198183984659602518582124236220522995301417893461991902837774123523379278866516868586797079904254909750585187939316198769797414423992095448343456079127319963681187169420060504139495430510438866275212813088850438287877531348629371229213444817671096582510701524713751122812754904834338205071846189401418742529009926946988203769472669433244049864106459228208094140898089502825156969703691382054990506302097395779503515947255806308290511444215524597718835725122473737008038180181546586230995546195484223230832253239659801795945561898593795336125434911098527065675988374571914858739104788592853055747961127341415762272156137085610298765252665963739774616917124168773107493684739631297052421909158532012789511889071303643875906882295094898502784499520206049741736332056882245025674328566486093157326455655496050494167368927712014710668850298190631141057055768624287044558932583620397758757115638986296646032294682814352111925380799849306362518033497194605408552577147131444503884223627153179396782835629126395511122139731391196265530714138246206273986913306717080620742044945197709560233999048853270744981894298776669540341451478145329361927763764781225132635531861474429279719947827648339764490079956834233940609722022597989687266616694259219902730323943671561947472820326069161662786640558379474335191742025054546299665404863230954496930971159976323721818731923134915076623231117135313765106438519438295394067630791216108708950742058150236799392948604369463766482255737355538869360725660328185923392242669335720696814734339628128246855467041148837056957054118155421388106931456955331526744708933569688975275491391105778011975641222374517066180925688211390717952862119900720563036136860379777898022982847819479972766633431791189076447772237374411546998958661738994981232991440608014074282356585100890508392742373364709610501123302834745197570632763245834111300561737784762728012264081050899464535545062094282352070294202743042851339990631726613512182315797396950173888111863203477948066930680223046723552426494469845087230693893245895405309108779344335875523603270397354955203044929214812322638571506231276405870076872653969740785341536739869614377056068840773292529913346641635690655838564032961630193782211072366448890018602690357642182243629102004022049829955917836188791336781272079882412745748166236486136180631852645473853515745478824728137904050151984001719246762334028935740627706433416000984772175614280266017062945282793253802475593590649126210903596370702676678065259897245539204143388823190300322786611528941383927029535963688670077202577171326654561099204233096717444656498081387669650772211976957602448323343172315178733909541686133789653190711223297106994747286398069235544866231112305824889293317261381145313737799072740284434106326733267461256323783498033274669599744572680431105384461266876246422864231050982356922405286515322933096391179047033913489665014009523730736623564245639087576519498830011215229559669658254678567553829436980272800255347535677960889012067641839889430885848859549054465150825911247410932602808203562444305511595049358259096413670832986684909553687886959613255254044915072543655437590079042487808924168337648466692453857795241909638166259312734105837116718518663584471959778950434591647876349067880741771251330697951839036750700680999634381906862040747782017743607617719574146121488412057074687010433704261286486465764058891985294386993780946042050453542814979734947007836700402934480705422783739070782598324452984685625160829377694922205000842205025432597511313653901383519916404337916476732385427265767966972124729488190040246943056429689088543670254346766635677466041814588000113098269726694276497275753627604200616335560540122691888654029304252727854216223119452139149457436062224769924119588848025201562347076864414371165115506631364569067459186658613731681332357995606961413391418599161047723828681756501669188781646167510892911389143331841384171530853949084528867757354346085020966294176637547530888021330965264731012360874005647001361440226482867913098427741712885676900070086071573815651159592454594308591542597843788529585504173468898791996116670659937041385514939460601874080028601165022347111694217633244261877729731066792073912210732219666159168733979388057471291588596129183905818543232953420343953622068396658975597441641425260965490427945981375687010886258063387732819024333655399388429654439965425111969810424962772758309332592814046017919000839362887440649318881911308907825279178074638877938726940902739285177585279740690115024478854678116662276717506008010631821586766260404524425167922216618150420429002398853136689650215931598033762162810456320130073954787612532576800304064511307848008543991465378724231613682842526537123886358598710754858042083944816542580998326983446437789170085772286101631609389535501835521990458620327854386545297383739560943642697711447581430995510793853683752452295122782894166900243406942317009644118505800010251567263471642639318031808230288746571643828293183680566556099134416355586458004929029234849524709287352031210829788244638834327814217815638264027092523498530126972464212626581303739486388348456550350284298906777036310777175892514640720680239843989531085929549785208699691046183896182314528231901522672927203750747058885452369573737395875078834347565961213882831365951200883415750190970720702480596432849472642669929255265992598904897387622579468808736504560845365130324225496208295542227331615770332766199153526517627581116927442081406472972201486734464176408776235081257803587666775474212706126666244045632084098419308198761612267827688405261728816056586989530081500403376243605691817320144838528348452455920917848061758621860083885205167863066629442469694789368247189066520852737931994598525818877320871986328756652356126074477505324854431589474505061206492120836984372848031248691168777523312776990032506389941800449153835996151349848307460875771519154638976790154173604246274888067341669315321539863829677410894891381412608704548450902224099218565049477360173888896887850720687206703250390268503789290848164279775193320753181496987965131531287836006127259405040455357331154426765241437949258942590037971346650627721439900011788632320207243734144629701932306010708711107171436456358527229972535899198638577000714019132907993928549560845455702517831703561289725127731795193433786310075712407256476082884323562258412671448304479123429822938966810569220031554247185288820987672527931354956694168497644131248673982538175460388271600313712792963258338231867507928440644588721200808938436872207492750119777087766815938191118791338160072625863887514168616520443433952624537011014474409362655511675639635315211827394631173235837623650189523267361226306712897522831156761654076919859323686739296863080223747531613136629458793763150600412425528094422457423911578912169287523671775010271071721287824762695403546869079880970989756109874163202210093694365076115257484836087672596748081735123380076064475244729999862764019606152434811944996335834476852611614262036501146000062418558804960542292736433384756176815358523278591981727700907379955690191395181118173518797761337233409292779717835016786842018338529234726938892943887042932733446602641976157785569886865356829110759057791755543629261482034440040843756059376785542060677782278253900721998677156007950660373930434330329214137230305320457250051536591375332787508375635735373871609191557131399457120119495124963694962960317902661475404257453094670470392703576991128171745825802323529229080739015488884127889835970693182085282441797044725769641932059994409849378915963030461052879695892317190834137028489393963819775865753330609547512741719105042300449331173224368517147995061585397697788927927742407570850536777139324963221377207537377377869167298351845474346651630447408960254752835385350824998446466260798199293217450845865041717179523126454177958173056190209868723177746216600218534715564404310684965384410647657880272565335828088248448059244680323377250808893425644139718132537135816930614597396873429778352815213447619202955381008557163339690206377110318323111551521805349233948020623383527501564443327451024821994618606874819611431560189715726823102972125537422511701677955078056333831309263300651548838649682805325839100535171300441587146727822446458909584398265881940592054942124013896700326334622256280774554680610634756656911881096145389323058927747511315228721536054767774453135020194564171959363443958070312883165759419617616773356326690836288418857772334947883659467508069703993696731802691102032363218710320646271331378200116745268282437316475331175307785231127193873439258670743906933060357190464508089534709398117147873161016994295273914659537196934725822377419001531988277573492052213232207829177900042635407716381831409599150548821513543731927386636411772332959966204313787280709024371669613452920988749318738424071326680522732534110305704075563770290821251933482995567474566021820002554359756842127049781740167621754068804549746718072942617436421037333943685707880954422653607131939925179969254469790295752211419006565826168816185681849224701222981243380910154550139646144303286405086306026860682592702527687232833850012242979796827922120850432930251822443657840695778204746077756035041827959055383566248440801257553501220843660460786140003216971033748737932801724337023433963106048728448697489781532922140618686869975156566899275579544112137958235732745963990822867525899872038228858818456425657456236942310292367193078407212700232701973718022432701973061032078984194730490709716052893791384093574960045872837091492357614444139111236530644875573867959595386370769423650248223396013195785384649210960919631041762843152655266431742764858216494616302926435396455450772794880350124373567614809906346823306776991738358728876971526813956702407252977817191371350269260139010992723735685646601631050161333664499280480124951471454256275913935985787754853804549346717040895820621632551844209690598111813728269823720532094192201774865323527337201328685728304918173483675809351020114908839407277190431158234602360039093125810674996414302530646786200072153684644602700965266051462044661540194775627138576746330244921200051352333228345954380782771402575209265844048472050674395381495553735767653597662714052037353541828605415692219133781852913751687920341290441746589344928000955747831915135571502606372518144161400344163730761264576187179070763700776199970661122896302110510629872004387014792370438921028888180695434563673505895982190216213391422964850856491363963361660605422943763059988406366069338181287920972586906018554557606397931370937451925343217934668410450364911464698100323677050761388235952284583897414083362584218090209631312732889675941053760060474620920542748778794577050947371157375972949009155307657099055795012974398284960878357864319386489099464287983676348625645752471172281720728475660071184940964474553037395149221434884051596794088685258892692766675184754163719801311939294617149321182813258768464619103626092647122799108775009636958510996697918834714044942351209091008366073392919791818589857981908666256505787846274166649828119760925982757488271073224227534558426048585744058632677673691722846690466816408138866377853060898244717491814512085942339536660311973422337792683488178054687577133672036317952187408830415261372203016097811398243749465122092247728284122681160485279555195248409650838447858694599786705793194451321872024695025027549518752148388192978322291599173494708442215506711937310387349346678453389286235281903166583522067617722149304290792090008651503698061691749919778107129003020257891690523690696001634106386854595517740139522544082659701115995635425843703603212877202934814052116126653802663860444241198215729419462920198488580577608778991264253773471323925685043305897416594125480918961924990255716804491857199906968057588343338631690238415380494993117483580047367577050191612033691010789220783170375404038166094649981851258355242285769946891223193548989954096823751570961460778392421664389927399905491913714096860782499597296298055599215584355957078298248069852860108720518020087422443511213639771782029950996025795373972840810582089250805570606114801230319137370336204020925409453809508687798354029855736640029916256344645249486454954509353981408424037400105060055243847689367778607329512373107106029794828894670133474691032249950820673041767379780102727218150959603894687470659447450616119080364778852613894527722893772228540112779587181002565479751018113225814590963687907656623477169887708441049651661925645798441040160203799461281227208378501063948056236110365875559962784971030826622956796410533732140808913549241848795094585666683574317508985910678514049115485119702525024468298708371404691021814678086485248252926284547193870405719926227235027645983769422897758573152362813438308943048431344993572010034532826064556376814814511677786152977894817241811257842275765298607324083156994978764347023230715238089531090033649642946227951641843699622682114746457468752819458054698740731711454182212626572484317879631659605832358383435482324780785643328744069772405657621239029952287252189270619435256324030715270024281965490056526485387519225992832998790551725581349484486242059872751851109468104936936983935022765142037879980439375717103910407324688445032215054971464167422288841921804254689392611737253120083544766957480613195869630440507038434891625467956307692870304030515079577612810394467967842455941798932845198691173729937512324987885386970820156081870552241177038171696068748325134332073196612906671406204423334882377512906544532604752414822824582906369053338867809180709505495957396842692173788502463703849929655847129990375718288614291944411292237042429066694853001509261879967790958544369971400158320545357566756212666435243074773246863203797306995412314023780937302445452472007814337820637350766342950015883330245052165280357301563143677375441571386977630666973269088390170942882141773013959993246612080792982734857121061470605875547794473624016008294256317200421874731229829271060667524329517504001423723330553302967746813998942106233328423863275671415983179552378517857492959665334530590309128839998707617524048719254382520557582137867330941312766201574163135728411402603721632963840741907766782657675349772553801011240573952304094151836528549682430567442231547168721680093651176072213173891885868422924932898768728555758263791057618932958091932616840916658192519557289321147809432289331472294633217871095224508277405856669254405641259878094026384275448407781109052628733985573092171973853539518759608164603711707168866156045046740120963279157293539817188053535194657192068330124368151777999687277072228166137165558439795569628078776249430715073407675412776053167628658160743854644510330804252578619634751966068859738007071641418672949409068021526580314888723762563285358452380374397254313159336552758275957363754104963140257678956986213450029250125102771265628937000090416651985732643967442843288384713259983143644239763932923460280949020829948524619562555783669202144332296744808519259302181544017215622791986671348580165312248383929398198965380909031729491798391788423978582951303994743798547067336169282171982150051287027328299543426561805577377983820470931565900734263516912852936642054671065942944773281240721275416089128445460316473966782268190989073928672145415142911476597059574409056077987042143690104712340740973215372674483732929100141448934198798037686451157111820947441040833443978357009744064077294256565885348534475396674334636640689412483414896371680753506058339500342010017424664595541069339452088002051967075196050626569123715027875068188096491959025521831631544980910990888427949224512261478558928206404978916869770082283828999695106396198159701502732594557478570639352198933239280602232035475425052636734649927622384827308154673420820422123236602582348009370383532688774028008872661906879566808801382175924471407930140531434540485338746807175445425167219743522736836296353151931680184655882752472974469916137241593695878003149476201170189680487911851504431668374783687341123739391391994142769115434425634346048836977141358152796416663122024587990487075599294603777353056471500572336232440737494403402221062566085726234678180766504948077804329465224485983142879164332485780521754333111384241075021829552512235561488337331138302596742763418407669083733271407152703599187275656645926588878033408996006871993760999507246518346517769312741128290969254422729613861567017490520892431762694055294703297484449230592821554612448547136819431455008616190090147721695480814549072805535632610708486757731069611014509676456992757232813446089877859921758492948652208372254374071143203563406364300171073262373808563158805100547910964176723496756380646198670176964779255768577167533691900249151718470013787452411342253321689048820731398059616535824382235378273355384542570980107634903707379033818622567507301843564083011077429001138510223114394877300686776468630083586531123521569243960615027930738763353645211869922726844125488064379274589251455340558247652984634519690978029129734824038959492606029034524790208812389768368491187379034324148071923013870966009199346819568801856261391268226061657419234670776955304258587445101668638289035516575589997317495739352313327307751649149451121808569486598221982597885209314940660435590153586190325284911591021385134093386742737401624139769820787188701600855086601242154635113407615629186741804286319917888453567504746011163802878503607061846109362087652431926009528245023877566217460955312227843405976396902414899893408373942914351291578623323669797109570974346843326687849794746483091149383175354143867366331291595113468941630182986831069526655875328282838321159572793872898693465920858337727578699221922148156212936110827744835892326821626679998859820077669978434488913753062819001224288419456258213710371029898783086293600964153440237228842303340231726563636051079404528837305122022895797743067911441227312036371638161094450871223476364966235317718788102467310967389619590425856734094755695243534953495767135228068747134561645773117611612135679777405434521505490884735575454362799484078917517394216334361924454831644124143319275772201126345962864940640879069543479817392950092820788361453803499273983061106084473143818188320687852555503677769366348662887657166826062085503599192948629869724897301047703792615630383285585772317358293040133760342557142758583988959308643473905747076330550429260293413929321505695598260515780545380088876815240982712878610955022828679426413430409272739003648399775778315413281433984614829459116847880519535701678543906991006165944574033565753844609112859603202016558102814850378649717719130625801609084439265189500626259586275766248207707855566048811852215137041699845686402405108729498719617142884093055060792090065277933065707447663176609261169390909948514364553265285244431895896898483140125388613135665734860541287744585419505784444445986570895529407500172354005725347185865381745341004048203663678405651753208048897916798024623387275209030563811679958163298719000564626875023261673392905640277280011979929829175802222382641958700089514035153657020673981196048488983251593962272820132256024405550145748673648727902340330372690519869747127455081976801196797222209952726304442865820991103766675681998368887066764230275595192579693314442875191249142699640723938744189658310235655998272053004050362823279546872879252356221704701223915001453976469833101696763721539570837749300734142056158312522330730474911254754296345921267179366614958487568373549255085569213171180646035956656119970006233504015874331633516944518233750742063865842787408545344385479840719636641281508518467797191397352548042338004440968060229208796243837458410695341516077659400845611814741341287249917876719762916538754532830435754394648443330870636166140015304281773950099366429246197575042933988916046681566080147383450410173270710743282611037257546078508172260241277049969702233610447987090034724640438477314167457513797726941807968995627722209287298928358169819662395231579477194220098058068405522431322207907451803086890447604092659852915739680759495030541205977167031906529443930310395776239110189801747918756428669746058990318851427329279791238905123857563199445652937217548308650396909474358364129383522604964436053589732515651411093142301016695887824007746105127491866521850724897981558865716586786852293431862170712741059057797880347346848839113039274387905456689381777409365648723883429074315660842150898728139875198079637971672170645943666296489992154796175280381781883101313041160788845317341283901525258136954564937333301751476103596535960225515092565955481664106845836562328673186341510124170441161888121510715386340873884643529932732083382678873907825903297006986341691814845574656312707996405374416413316730005930172858480106288863169623846168711550114517870390250310974461766964287137777268655931578422587679905335019933841588773286274898096847019233099764445721085120061761189868978487524776205071035373645329945062361825684901466634644858504176245833507764917490514360521875025977399400654079843598659721370089530981321118220324518680353763101296653417579278696996751067855471377377987247821237802071541248544374507865699521471518860343448911161418858391445456186416793528330680301103513783993574695863342772491675089955976714292847442855589949131505776131839057231716807641775643413319538121063990220162176416292517863202204349187689983070341491179932348632151781522206993321588896664759715017482392071199803100055770134680507805859245362454456158618415674069183827157553353937136301451735177485553678805206188424545360410787443213214189389581848978792960235575352138269362070490838845677464051908474120864686948947771824150877567220281344393546931003138085344224612920524573553094792090607835981679025221894318759601342122373188358556694367468552073622181151629682579759792473767490973392457707000464089865882424096416149987814923354764572118068543755432154954177120344157865838713699825344931442131688819195098388142541982280093500195024768202536850955703864472606301533901166068452455797723292484867590182291521794396218554473955039887306949780889083162104818703423123909459879413492439188082732905436235473334964459574103836092327692049425509311187708911235395883863892634172091860905193379364122617902171973323650405034082281903689985176397571625802927047108020399351334546733293818146822020322539648530134017725089537779436436685872278526321437797473492637476504370448590262699478481584180109770525319257816579339044426651285948965588969295344148262706193233389204406375356305884382602785775682422013225245982751966233785160367883071906690919039823827771530005005708744561644869899799382725829955179557492250704306890370641494975979502506661160487518840009431976187472015889387537671554362558059604640975361687524995262061284193089597112469763629621482753137546112658960361760982775264848958482278602161929103425709778953310192715351262576757628641951334759945147238770742919139870345415109924450553666291469833410322619688036907146548932006420808900707506950570470442748575775261611304702851616571403062441342728281296744160013719094135598062627716118079481966013646043816166480000842232210306686785071622818052289428273480432031354542165466484152923181043547652837651909773350411157629449297291392557845863079584051822169971754750125305838424252517853873447048791101976684064413827807530748903513227512472826830126455187200063881614267828002391591437167641947215351490744164498763964066543344064091941477197667895686897390169490988687618982571414608410065722922989525814410726871762384657172885575643377221199634650602174765545488633715103670947820050031202963653888447405598888534775331622860168865048523571884173501157059709710668859381636907890145400673653771902855166340930042596209708448470453218188593673256700588000557027904076920201479115540808439798994309769419072629042534521173713350117445136554914325018218385513927127849058525451765384517275204408911392877485591032968392059961744738842708060416677122018835841104572468074734506665783207066284518932616076013046036182576691030433761197902750072279617616376228799620216192169926870908118011521109948206601600802557453481564638017411591266182687291493694187127602966394114429454391957712367650104537851822109899112304152780954405092509266842874418561667193419460255851818985007497903001372401081960367007408051318058628295974626285057382692745336499925449979381826696296379198356584711007019935902885673366798226168682767201647105742151835426966290256746114213891002955996899776098760465428798989278416453838628961370010461815677213241588980984484183328329287468859217654852923201259263407671348728808044337466889960780819887798501964753341410070604043808439035177263365668962540227208124087983442801656817847457811478643967293773005482093360311681073679536957954441690264450362677903427221907162746732053255486204742399391943053624210693842951380715582970384729959564124661533856252301936580100134925302778949669038996884142014241971446601034809507417998558043565687071248386823558339574547770467157526198874176780135790342330138233886778187115364806716737825094739999153018973166958876484328782013800209943199181995643731313295219633916789031503628481683743038226661549284981995143744506655164890893956259602111531968379419336265720250092619149489775801697012816511777174925992251140837910790718238625226755305842508850613010189857807351735492624773886294271572930088296947338313852003666422286709283489736849479699420063734999792230125852412912636986061930876485819452957149491689920784661656955968468496741179740970988229168954813276155957340406272544535019711547819336973575381501824847341042249381099090279320747338490111043026615870603100113051568695134853510664891313925596454367019309911873640642817005826742199038392927620543266905674346471087874761796642578731661818691231220184009849236462801834753900656196251220008455145030938060828496624415685906929244390959247466315796420607485031709661759897784182909445071195284398198770936838155583157581170120657145527230537426612257384217620999957121486703036108029758822598085768135266965016062216069703955838259036475081031067988060517486553077798443105059739038760106670042525382563941643247588522132525238123922311368678958177531826923438230633706247221564200415806616616776375546033851789511252521874105954668686301102494026716662019751000156673550812647036924254040612127401750923130957208394863485566414580180289002930527350829774597332739143078604160128665119211286947583994702648084516664408815939652048133786278682409195683260426890193591149290560594602405239691716395554587225490031117035225841947156149538390533441643254574968981763731540010240520861583273510024428866410965499497516616853033077522896734418080821187833967480996132901892941718515490615713648176392422812374084946944591642567703336548211568839559375818336275045371946175427454991726387233850234620065813840051922583478910533261769927024241469551947774809537637824358190028525524322320942010812807470282552846461239883686783055696448285324956517144859863751665625423307401612545913668251827892839566612395655744729050669683341611201136635471541841246241313498735444363484331958165336653733732832523191575018829264716464811203591004079667597424585928776903146927888509633628593233854572701533757334075405243818015277931515735890934489424798388320506350530500416831482372697614012504640442207798112883202934923277741197406186128574041848792803738817901912608176153965212402933042656306238885020200619749500111302805236911211974464429879870964877286826621774832739776133096831474366543137544292837955399485044733961340649708507085304077670913851063136807314460478979355164046068288688870208310805949436573600956419469920123050627556015645710243183335423960982408367323543978645717802763518233383452681612163024330553172475956005804603407211114961469372911864350399987940524694582277701389820734835979633234308400706008476458364975186872389213049403845755720648262447289941343840258116821312364396530612108671731395694242604333557248137950572588419793202506627783006342731955746824251481219127957982739309865521699231286796073745935766762123270241779657701807244804766975063689176482124891570738006223170545504236476295273243912811762757039429081349134558544020090910855093475426688109576653326769865203516307836376615324307973725225981466552268959195167157727623507340684473600802600389125266711281283239486175470340879401756885305968791703061497312548288331819420693688612988555997918794648272956070183046421997581353357813704832590854050518309632517537067552632992655725058633763759084416525508025288659858649983068606799602344892278677936839015012683025078048313612395977407507529668105574174968123615739341279103681806938558018636039862498287182548780943804522403646158115751372862075488459769231707529525682850096603038604433810910654423613088621688148375749785750204976113855633429740676899285682004953221936019311832202269394488839800719252618389135226161203324121230743897203868882062995535495926210410226821216291933134542741802879189577203080183625034800335023423637984476158443299545790793766233361090399104183525557327956948634305717416186731701191275933672970565440563066710253911990088960958387751965967949005048101516215099932006278144479126098232577014337877166201940185331620279621882068791624412176644948516245374721408297854813998277225405958934900385129121440099326094066142319143943996691418220138058842856070934626816817846604257618515979348183113063148762673492108743146320120427437311518159781199561451582922228106151496530505876742336004934181557518293296463749343728223517313017862229862630324661862494411521317858950377973877167024741938798326912964982447382454931646087656633869939083991459592684126196783093253953209317695688665804822946579579251750152758067902758197268892791299215075072039422095989856160813121984437496128072499149642915753239354573883765303053553779152934951762654074474288568300773202945979967373874243521382737694148456173914890616697005669556517156710266235843555237762507642277047279499939902219916546360948784265730843707235896107714058338404013187963917790417749767894620851792603236297029113246727520412653701457745835775015629782045153565130163778408533297288130484490651266848084534390877723054795563701423553377366779913345710909369267093049112454953303162863228173789678100927858835769676854670732702564000382127143854395519963715947912570271635858494793883434224767326941676972605690847138784931833464692121073369657399044333434743107162164400653580597977832400401930329801507018833471974868682080943694150617474406943135656979706377794227710467214998609370196710290402395850327841639371911624995808115538801870483458930568358361040341403977346683138410549150876212785248153879075649037048495556812445977693295835396854694335072341310951223715007155233438449505977102674156010259578663843722120968912433591523778921793671558901462978962044621830767678177601173743984062130406442124014354170201221538383103796736193635449654140931387313779682838330844716275110158263388004995584629652053429461770532561017707582622991697134349147499751647960614716602441840129587732209541268677577859145562452520717571799028584873667550374736426202719311766400720210174593351893004595226829535301018656119589207593944706045654161898467600723637323010137544255548758017589246098171396352917576062627609352225280224698383930220508544320147813168725728436521957076050704407193939658576970569663953376621258502829602218157985487901545222208086554712942857288249363245616403030301877823574116605943371503587495832952322413146389173687990052679978768688996200494767808024561294537704339643095698845069542662189994868809463623929176221922800586252018752252454439082997125114364609066541556229489477016345134591029939561675985379635270762476408419234058851793065585621932633600365581795073854002170865541079261694239428725797085152316814525601748777479656277553597519126954290377900501152250994157426269293518637416382060349292399100770887299488510041692268794047062362706835751322904675017892881020818899727194496835973807740307640415474924150315554034191417711246704594009210177074713743080734845142639539439369963602424230097653046585733771059370878683789922030654427181099519141498176166082904205957820088158973005290145502665355589463266246391308866327024264593970568702117194945795879289700054516831961096277195062375773770705748887518190601594964096302884391090244164039311483612187971116126235086419747799772591543512882640943136060890859494987320582935698393522878751253090408316894560931126197910155203963290229974671963798224618903064632406953015175686813551495426762322039544458450220559271918178593217032892155897881983278441965311976360384339058057527215311124648248739273942388860413000871120989246617035294348228103383226591318803730105975796782874146557598947924207305629454032096890435922129215662510875968004354888462951505005676363212260119612115793587298074047163869880002432235843921942118760100525290628215058358906991598085103261514696781981514879700343380756853619778887999190952840121193228743570978301803748521433667885528615225007656121609929905495812091557064181782482487881401458565461213444326631634173172645680080625965199011015916729110361763466467470893238190914295475705687768144246253467466045606167738983684528904393657382555387033298960372824347404662089511254412628290795321004272281127244334198202076882771631710390325849913628115884379333751140602981670785743862712092825006066762101596365911300805854721190178702871588014983936001982837002704939539390793975942638910866487847892034357711580370752655802135001822304548188839105305668509681361450236078182735262861701609315810105631617672770615795158243621041873790198862331036798097228895753226235043456925491077240529885964739298665253518260745539259052221716610054202935116806970346145977056348272169783443528998132232757807646041405728657199596252082989898369114039739770683480934988812540145140069817674776632391014125925253626032119944796027545498456909776957365976386620349402043072050207796335441038256844788702044464712472084355465033218057562432843052573387956195337353918271895365870914003948600977696119395277010212393310922381954000999931589170150508983100121410149732797460078959407423211446920168813197773733602891124679787816136383968068401127289559287154457836330604959158331016374343877433154854200938249314886788677043366211106441031106535307549414003091181272274785735837639558568228600794606434054410463720510454428408304107888668917530899878079297992242418321570978605784059212840148120547522585303049021042006959483638816886099392181112351634489698956300228842993417127006833412951426132973071672275500389782750030649227691724141321523002894240302499033688345683978383079286115517456407573337046204003918714074636856637690683516457693505235049650841527680758224010224443368312345086064692628626728435812339505337984593844938693858189369017877957386154325387991140098370126011646735939790699456972366077433726076519106163305404174913663130848623850275486167651618909903232511546253256291977424545482312636499365082330055637154835586034777613692686215766380217954472923871969402726719879770442805398230979387002761442302077492239053214641637644507473821520460986913282367976399814510861846821369747155455143198923432301427703547959141998502610429868223248526487185096467952622648548495060242898853698798760088841601050702049379387872996007229441944467717444759846468003747220772465205971357307945010375230812877585284001619567364439989297490678739154688229530768071376449064020984165734359904484300571043202042175021459975223231326838240214176505384048068061062518336975600492653130716686505656761285228681018333920476244124735093416068468205751842427221050451256318978338176654947413468299138856948732490912384117031991590461882119723031926189989009885066358376521869875486499473114246221347818057263802578047935310255721391544587210049973181022749010604484503500385438452586587481087933888299057865644607138900925415969161859275543143002220766121627652149278640189458447107052655664523637054852595758496622848100913948535934132015455923924121774857226338477566165182862807549298575547208501904497432418475519340695142851220970962910876539589632713962666158308349509109276895399962918943445573052011685132040697943670848748398580399957609026130820448766170413446104797529587237533612748586751041691080667259451660455310769140097779185136408384959058647115733890439907089730326834634092665248005718515304675838991434001723245533287376715574004796117735170980700409729434662492135343851407910595487650993462259801503120834168785597954745170222033486873428828168103763705039183810017078083736793769287755561782795043313151414430114318554344306908827623139776979961165095535155470927793559561769291954349923438139959401841918066476416903361348769725280689039490363555225877429141941423130578856564727341967130522359901186459793186085653595441173763122754318330145017158264922176209857944330744803266537836900351919650275522581967129729596109276192945029624392834782866325756195947144065774660720247633519644087448185652357950152023634374519900268743642342985161655255632909530745875084809582462650176684195845551690270263302156322836970437548884523754398597756295038572755041975406963978150530413750557746968489974834303778972235497380381395850556513300076014232856611060396802923650798802208619526114003371510171716652966887883651068400986686821858613630141930132445201496582710794990861940739285981602044442550455043533905637610637388545880324643715818821005459042277974862178468591485741872289631855119359598194981449780873191005057110398149808877775294099739548614353906138455749649692299192849510161901336390002743085866486064349976236274628778207596757084021371594073851651228827049649569056949628540800618558112519977529727604265108257122620403552053652826719925046238845153608301724546144913178574265008405453064741751199397071633436787138781730035945709871456943492954035556622380484434795599471390073059930461814248968834843966565473688576697582697069131109058100168617977385460863888680100870751681431148507765870207132650420331874403373211412955734589593094520667134040716299030452810871827115154609677148210769909593423883210248981201048032582606770015803976568734033619321377107806333701385959617307433131184319726305248788245454682458737797947067706659014709834712519755766144251409703506746284784775682974447713475163818902565898881050054826020900020464250193828761626781670768712575709292211865358847231145483343285657975492068265770553622022388263419626318867751316589231876666074050129826138447130341630988380294233655042130653590769393321259679747039639727636848273379986415995936186038627989272430192690081642013745317146542960611408736040404775043611347112490162321187935320721802857740069255768707162915564227848169225667000781871977822184674438196038795429597885542889362253316205665386934832580323366010209490786344776606887138471481017051016565567116965555868972958497593553920643617470189815149510820354805667464907554847513349614763712831187064928546048141967775083404076527083857400911330574724674317836424900364838145727653642378581748324752115134696487136201675975159997190981218761712645633493185288774465995581102822114493662897666047485402520327141315147757823648036585130023678890087198011533994667479899755708646893748283993819382799483720942949581047908969371167444608984481162423025834915064410267093286388274199367322288904616674940867813195584036762247805184899038523917211002504323773903613359385293136910855174718685793876407514202391664974709510830488598603487031611161032785549811493658201151958349125586957350552941451055603894858041247775049213180099326379946467523361180813485367951597346152229229646810729469373687367878733538559465130264248803591401970221268374180333389596180802303099728364252093204178886313141040493705945564509204943549552462129769669032899359083079136987891611495590735599131269327568175071499540930187474638193024304998016629044335982728416063007096390054036856517294916880563221291779973630514596355604134676388060361680578588150414394177357320767358856912733725631112197399921760495715338806758147749103513698537252731292778478858442203596737409496540398788810228403901430784249422556878169586491872902912665701053726547796870657351147208848838653451967162934996701352174029394061100619793743720443410751745774192851992433657756887611268773559861815130525754663028207018373508116562365571169185291359446701915388948290516208393197854429206093056715550549266615149500923362277710996184401215063947127775848036668238327515753876765156317889867413425614444377183388818580152472666055608909362223473053423288473896449922095292453372708027548787156553296936702910576447035137069227570967829527458135765045848888948581933525573274306345185595492744128022634976331625581034041308111174936219508685255260448321644866969547113161968834512618078865452294525710416144431647507692545569624186858587059525384979411373142175207286915457404201498136106109617858636176471734819396221807051317844314630387172674175891456670946704139632598375320684568659253682803018033916069926993358124350190626570949799757819861165880556375243446406651388074413329539163957543235722789417793092580628719724614444444179459830536522719741093454259674460957359722915298664726471094352483674438783151155121072272218523588839995968067148701274648890262824609821381004712825901227030662950771741152958051593703336508327625304288025108396854143718282360471837932323383092036293450635928014162071011094019203127716481706910922673721340392148557847350530703568733297665951533478714926327256848250699968161887385037300221568155458383626769471164967803592935262606498995396068357226473637303679009658358675387650622456655159924135287310499558974641738394102110339566179893327052496701170703259529529464047548984650515734582641241479761861470147059236714272634261918867446062757963696202397262605683234053525347469731071275731545361777391103258593036960977735909778481518389473225062210945704245793716974250025702909601304831179618508048908431412925122587071536893241968194352173632143658799479575137188306028521581334993238011929440866642128004597605784413922097034703786658733102411104978497795937740500341348579012740915805794721196657307249436047988807950239102174194808751441968005912122966202603182676860220608972149834891966870582808781788474574188492680865409212438955467828904754969510016612425686817896962221403073603786835187681413274980191973631337240899343344548663846873838338861028887237013445739862705876271433172382487423923095966668381430409396180949663645779409460786870784839512844436314514485778734432449876691300904522525324893059742842736506027640217106764814149190617520824849712994810770630264274961175446049701993786572152858470763531265697770687189629659489902350340688209811640342447888324463959759903210950716792541608766165597309914838499482932843047897507719314900251318055351349309511359388417826309933522709756457710428244557959616532884764639607894962336028082356726310264666889661220115423454686274505498168050345466990031980541586338704050594102844412667665352158997182824747177923513395080841313564993417968970365481933891636028397197699116960261458050636091695756730768458689041632116623666048006805183312200018461578358232043874905255081720986651735475553965696243558955727633396153850495751179484771389886931956028877184639504545838790787759047489340164281184293402256738565943934015676262250462223205937592818531523112256500308470668059896747568898142121501940027263825486271675236659788799922223208063369566151057662303529241252327982980614593717583096670254150232724681617261100979488891120288015820826334139525030597073414344172483433895080678242599795635594566896046522750528853041190955548388867018252544834900796315954959729123686350609380347317781908938704330313262350618904571236951647182027625460242853960651605639676722193645432462657979321490939244678851515093278402506238063630744236467103154521370576919454258765457673771273186748830965299159527462115628665440068802140638866498534848041290652144388361992824913707464120519863938429060652439519556322269854649250010636860055939621935822643755997336425677853807785416102630609259137812100539979218821816531332253514382760718117700018452779475183846994455812143874257367886434384239420220032723254256927388953658579442720096655412734135267304913042022340886441349390576022946241969427781484430482229833733522981169740766964465739627072609873290435345383952689208024953420975815327075644878053843229952464179835870336445739270922309778508765115943877117508101479189221681620937332131053815538280249938425338398128381584314900512230654433035712545172584505440468418489181618629469615539917823405831784031415426967452908277277696269231160410994355699913714387458994327981684598786185785271800962789794579193520566268951053829665379136874518786656798647150837206237145780118438135746536165656337990085325597091490669103184960236487261693889695905120803867374145319701648297609693062266772866747258166688043905413701954491072537199076296877667526447621547211434696378390591254649335180961980725566306539608177637396605889712223590328741114732005393333998685900526298036235035401256115447519767923839777113017496154833077120234181611747579607155678945848295118778126909356371417132673825565127263907358353999825033355726546118684266604062664438218018325321949152891935318207804163900201177534758778811294440424359816077458481048270411306552475595809365795843954278851141029481955681201177667641461452352391020081914289713587640835195124821590177043871249236170565790228411463442306966268457138287316792917061412731100210405795607056437698444554485406739562374433691361319784835107027540402491878585804430449236434517666173698611379002133732108823725109453209308387175462681691206053788650442282795418794650098991867125544903005876675525884590672512647027622207404442496888534959999469147299237748363459959060356430690963584220754769201737238975651027478183088087081377195409577346198436833860046005082886742226033961994407154417397728301098436320699802842415561598845186746859717852667997072151447597818618583052606620707909299296133589245367226305264044739145419840428833765971469947008517254328040577536580099038624640745983559685497404253337512413928262614753098926243019830221717943789364916481600608455472758938561666875331277449364684111608420689364802499466830348273054233806730161647932827441996158461063894115926617712071268143929189356689644649863745527661302165688923390085845521721569482536756927042983264951487629658686708731485262246358006036768299555078218708993927377191231127989741236355056513056640502226201790495833763679562272184877578460384090958559235114343807885593817376058721172725873088135405756294261022693430868175876049944734057077801716362209830539774184624061125469845312402801646820428532397837059373179777395087306864082706139935771171830776821081951556424864784488649591999056147997549396712284384195857372367233111170306495629032971699369365610917834218559708959116869257173906000166916399394302508777451982115439846995427051105337632206344531183961766521857795115115492809399126391793312713676423809927147522408887138170228267865385829161541069705548901746052261386685719086297861018091124172211609518125049955853510074167374331735385717188232617784541114622813735488005643023719341757174343685904744065832518088482765568867694987645986690867325911034770086871042006951010700719179576938044708244388103560775855083037095663686486342212783468943584952981306450273472738174773984306464513175256181912978037311483726737646140834129464208462035851400097904852936427534187326115874796867342130648134369306548039994275616198548079688551482844934532264011810501251600785576357555358407348660357158813323442738429266636599322342709169603745795899032644770474371308828226863808083212133969249480652861707391554825496488200705621410120224017213645564694524267059157890181535819004627307473911009253674951458096160491193712671848017446242750270867320583679086861441708149834134230723299753547132160611657080812983097569244012364111506824812486150489339412850396873155889360786624056839598825467378694273718196462266364756280698966887554656075347300427386023088583012076608459574270897706321887984642178112794342818180803736578925286800385488852701168520896105699847199177871993213872219440642298554044203183551064433672557315501435354718004890883517224261290927540003064447913353109717505431685437283643950545257034927428342631071933512230835725264766186613817767393117531481040030791680415502707846670916343948864822991299274170039458134031910756350793103184466451091577962475036079166479236586907121970365284564447111037614028450858660115068093250714386940165642695909193907684104207586858387199118107594191969164212116019446604425465949817712542842782669004670828052207352503455849885488684285759625364546779825116826824378446928439778652184007776783906609685235543840007011960263852025825717760278512691066997862099213492138125139897489799733483815316129597542200690626323295550725542273285283685766777046457409487803988298799807119603518415733497206753043268659519561977538067318841704203552139082834928981563476115641306301450404097764288072666649314153179512585398946282249646288405810691519697827925773595004369400567144888539288528605124064403384646708686631442667024676020322615213428337177116758407202602466413307226137650264613908055422884223442261539952376291004880306595957009176778819679480786830483221460694266930193801666106986976972587485809767620401867363979567133067804980951124230182722957756097696103438147996789154271924304729167533216689603413451702405679971545108914371177334896158800165468200303768111809136261745353733146720805475311811823091303802893281256320480004143663792815231033262866307798693827080081735481275522531803612180112123829432444010957702302060229664709963954313307660457505182780740953087798852087312639518150129895115379501458947224483326498498184206549031466217430568744523022211379549796579977339922408182244115831335039367850471107634611618797331914799867633864372058015898597705824615304409096905514304973453398619720484138684518855751977462524575486214662917787834268397762895834003894628983867194449384889224487260029095546169059223755834071830872721113303753925913592754518485007484711345747874276194742839932039523351096658610659236429110905617874323271056427978688025041924724897102150184768168480757378580038537303658770940652741820349604964301077311675637017811102050130019444713449961251687090257552475804952033153299799576822332078965822840442383198828996721944542522539397088603436541851812354972970793225739364026537023041623672192428643123536814739701278899252306458057393785151391469138109964889167437835577730422915021857342935569012772634122392069724873652333707060591371357270464019416955551356112577661546617461498522076932795848144625519657693569436994494063482970394721026044602814638868862397400843986225691797527997273465911127594081166476498428834196926887972939279125462255768689186670003962991653745529585787446398861497333627014842542571177331650560690668788973207012057603963093282110784629154551504788050175022968410641753351653826646268676541924974815122381351986456582356230628360173062161642615180421620904794216482973659539594168048688195674199638468821987673095768034039413918141971818449287246995692637491236842482591147189039860318274105398685133177285799867786181536712732006624187312824236503553038907721144499874537984448176947515978149282263837959312351323063634702592326093475754319864796939772970608461689276944472524655027624840891152233008670151023319591557264925501046537820662231774402858603194117294442570411309308454073878159135521420680998004243700841231666966782639463182586031374972649872294254088357973871168678440231222390873935394076113590353073404991093338007833828251280928386681567466000263196789151271742810787724834851865033395137659564845601310200758988774632252551362492433621849576450832463716106618932997537329967226569623641540452302409711529215917525996038227068662865808370204755708760384470665192637161009957698195827587289277909069804695531746330416164222321388991924233740007178924425851719589643464631735086706305521311813515324006601418473219231561600500093310787984852268516732423979699569985342730759361972816966141060707901228945305565207683751977709498842419355802694190724547337442836643694286782952958311549851187860426482390900263316839986604287710776510641533018068732566104154036880327322375727430984319309826796218002539604271264495926586225424130895139644303613302338449113884699389919178744837595439623475592634162334465682364168802886298464998882241572602868884426955070967260944949432498693269149356799856206957002682602125414561196366218051371339739067046894462989984612238032214088393585504407427049584044101046880269527924133987637530781549104349324015931473101227913415749936454192036795143644866482858243533944301930836958774019023662843744296904775440646622076751653017452763890071322394668135519068102764396886957685288665045663247150996475271967466144211907466728294654131547215638821757378791926142978259919897724116371862224776652048805164579717169080526103257459529708977080589620207667759059137668609161621243334791913533080805018077312321138828142880516004419817624074490733139232398123924438405831411361214241470513968760934666997156444707712380358199368821099281590390097043160691196474290880675099435158072366289226387702535243726804187345798433238977727767068196752656403502358429077999000828577495774263156252667026102162273038806700097576398287216261422432165456769301480303181476466892858520449442776287844569948915943941310993901650984721264795663045628555740114106735062935648622669107257820292005607594845030763526113335215951560325253548858673159553252372404462601616472691537140196721178751022140050584570050441610959987456524386981805694649879773703032136818096248541767975870734681946642233825765287679072228532249731628620839560424335745680974247997975983731801560550003710523006208588715979930188845215298186236083281750548938440526146894742665514346853217225111214680918533171234706180916185922802895117418158012862206667442078260856690639620910641316010423209812585389632144142530324577902449054924927877706298126231639332477644589802037025287615952978274595423246415508654689732776960649284826263534813501488342859191473137027245388278801718799145445687696258010930860935749717413226437703816258313396058118011744334579765737574855090571344835216523959222533365482563514961815600784704190836858473907858755504011997566904789789053693046496375666705136692046937576138442481604467901503569584091037014513201602469388198002497895244648305962383522752961131031451472145326057582296203805391690397620363164947065485975286825440369052812815680366715229255298343508741384224795086423174866214734995215959172968836179852324269602907367678112898352263493065352485956033062443079556628544403828723629564975443964149350445548779187708753870222298472594851524343092176808601501199467932762614278553404169565625039556371021358823345621147415147573209715419137966981804841385134782232493222697359582239399821115555964071263700613364064786250902634096309831555182459199198007626462895722650619322318022648997904938695685065498788983434344215554079857288818298154786960203190352451652129386435322120188148672388793305534807686465478232585510735409175235086665537014642363971633594052006472488132204909147344653557924192059592092436496969010439308348892054585063876793299659273294518003333961403477385791636754299892011310851492980720460189953751280048265337831616514874610633653715624000142634618376423033272225354610796772313684586287938629583844105791676220277368478580854475858524026462805006107758922609288429468983923622546100420817314183568835935640568314266073265587040895246627010926754705857149810016814604316831193950343121715876395789361217688888097280130002280514055218430994274481570220107826023910250367356874772055363666179205233408865153126015643472185850935633767753796871856919834258920689112634717811105143147097693236590577093648440206220815723816573714266018987252571601700263151641226080400684053831534806013505894788043469305916940462614779747913234768161299548789179185600303649826052127908779265952517121568986078709296781654963243349881550412795224060257283585631332379091111610875393750745048863374193570264967019753037384067455799443752364499377608097819395199630079552752788653864907968618654869025650636043711643959584238522104332369604062874619593264810810942919535842934134671207897140210443004133973447084115633560302872999345563215016190394415396007121923512323497741124191958436214129255597411087991507998112261159665954741213594516240453965587613027069050508824003015236846096909672681722382849993416799586191827854531707594693309660773122528693439200153844617664663764090902807724839231518950628188379523756518187324174234994544104700959873999536381946436048659191781064734169142268150002650793843113755995605959471761298707147515414718720719304062249256576403778054245215182707086609391099873450650847582020484736096603380692613295016424641055851934366881065169338594609605923348561806463073661359154387851805420618777137305326280085768337253257058422727763426813157342511279930670746801452140186542616045612344247119906151328528134207233654432326494674707416687792318539495677823124547918901615704509962699149932875729379971986427338150908101175353494768184847505031776850535160601333171944823970830898891642342575903759211382571516687185147628607295881921945046840895549246691201117304665002306347302428259662309512576817844272373841096062371228325881688980398356782799008789005679862351043965565019451359656832556897758975592993724704696534736671850914114811604693647453383972604088209292735172790388277335072914033331274104426829502449763393424855065751109797133040742186997958809718751150052823021092971457809643799882072206008036143967957660334080815985334821102371515041519281643435333571106907999803576917105720226228589457480787737714955852831068498685736787611138467626580722522414072877259910511703860165393471484994004985174410405348904833837378752263820156285056247932239533649215829433524054363194615322403386670030760372600490644608809935585310749201685784035130691318089579443518797287657465531611409561047772059496307164582189830307826283545569401679783140272561670383474198676961337270033597562640564377631491199247235787972261101320066813781027131621212031680342119207883469137410595431867217472949616837004321158383543034784815465786909142892950464357246288216647372056331860305889872435320989020886732401784173819710315001601906231903218327608927785218719484994060369453532884002118691147393572863249925799950908391808798972588598988307516515855494461403599161538347896720810497411108419085343932732519377203389940465201049734554062284177307081098616253987473007416968266519267449683497397843930898878825825868995590572014749276271648901481907911542741842763082728998056292161424372637118981667172088048560152554583219782593228823727001792859379148973365159116579328529433566133110148671673896853026943052913487408627470724297236853420665511843618334895804951853382941164760384621916717101734726347042342978975493531003373327024698281746615341200517357554759632030687575116866822367024540837617161674089340337136734995932722028724222992559182623548897391936224726779638903200494766988320633283021090240587338244435606269245225147205217545596949580876361515708054846405582820673976498932128256893648748913080026690170853750360213822875348766199873151716581607946637614909319234361605600126822239130988055244791273354576471628386792252135869922258695992197588285947870082722773389390059575285879220763957596111201271158746071775142589450077680515265606095429190006521907789369062845016346822051330508266744115129076070093354936362664994729595758110879188714113627619425909737204127352424214231933299181953489085865872606863922201026148959851126409765162741588049214034974241453147441057142878547419592581060576691062386164953794658403808234546337941366641764173631534917779670221082708226437298801859766574985046381244069718587392817827251488328532974704824769797983611122240061310056155503526302715020918351857216926875958898298828683497412377043410239437885661250039593504970851784527578923995241025366015924784882871756927208452114404137146580265781582046162794252078239433061413267098389569974420663114964357911225875088237862249542444757099995686539752694056538247234694667870003086678654709350694462701916991334362719406101599881183636102310496955601645806010277359906761296185785500891302519116516795619755395357788564497090006248728110049226234030535967583312254125114693653750438317859303470245191508722581931552318376314500522727071015279735789300024286771613731541633929809823748702541383846594674710717801538383678909391571025360685681635441963035877288232949782728009749627331128997877447584084145424779947588365120210608022713011184136209012573774252431940742262176639439897114634370245701160313707099840634400506523459958169813831096326767595405805837975301208488153173847910122293179405323291709102441408088464878108818618928493501498954376886484247905606535688997214869130512689866684202521994573644177765123397557042061879898634820198942573842600979669514239684871296594934478607482720095066202329760590647627616137800075885188192894431030313431075596392367371585241679597555265330310962398382136721135654115793533590750568444804488477524892442513607982710102527693277917800113484616866417414083053827093721480772806898715037582823037063715686771436548486836976019548740497697419638548404653609644111823654530742331501353685802520292377172479668623625571564807753260390825455448985783339873938929083966869385594527260826656644787190810694910340790579334155688062343804950501971240556926482383446899189916206810148796570089070681738968013896551674188802398053213181697363446809200188721341674220625307479243908639955154263256310872220235712351002986269476385996869034090119105829964723529919854365402785443788349018751834939192839749499659742632878577281977847585425895342831634564014638570206547947107025229649503855798806517623842148551908446371761728268546611615003017555095742559523539603361129877941544286790281194055965482517945979918275413039548439933703604704252106154898785288574053575456295761792143145398461963325249141634051975601889263717420706931022433151305240990345038682063275579788537273652459288382856388415807815767722907369080802797437270595430682364903876096264551259108430152245796017585048800680069102468542829348050967810394726106022161808618191660995448673787409638810282810839839390476033320676026289576095147839028258516555036259479912133217302555428907889403689721759442682814396936189026478126550888163080424406267178667456779487361750804833802256186397449227052630143277759631087633543962827938828445388504961405073304198231196131428347442523571152061559645452504633587036361547352789758055021268844129374741638633449736048904314439568390568225693010634312528895527816147535144447694006961669280561345831121090022714150338709768848173608853958352606860876307405769587749452413357709463432516690083717736580756960177880369991019266924410453603244955369564575150315918044726970169959039174422341300991188194779497391794684718335493534619358615273574523147611403623894165965710699908637805873884754209785989331716605056360604508503684813830413485032224945958993885126594072398926822384662006661333375998522661231377120316990369392466296128529549334844928179452119061149702209966116311776348825626431233794551843488205449358092315057249146842834105330505076401713435519336797228386669733886213029474593588486631936321138745479814373487259427257913698958421457587518894376569688948256630024754046889747571032607400849434179116368858252537492670033445508708658932104229690863893374518238088907581313615333418140518796110272859831102241608445325130278853560676251316926061393527683619335411357682643600074620043448079366109309853392138500157162855936421529387396367983902634266896811306901587798108198018762318995833120150868049361882992096448028285909223221162729418907094689059708077888702936661707985943835149976919792740535436513629109899581103797672185175778413161864082781543859919477180426060906133674721332555696512345966270314212183549456160455813828540229264692091938066324636604848659870000529091266619393584175890660913356015706518132521563428280427639334956925276931120602614969198723943232965037751217403856840267725702519889087578591434556339750706664166249175963519079338556601771043544576668363556718488462562812125405885503670618628073593277629683520064114443060076702771175551257357102568843354949969053578162199040631084270623639987279140332002107681651773638630843714730896068898933323887983347596075319758484540541196475547978349608004073123491538402214941140687432756889163322200273946179777061421768882975079277928673454702615423308527458325449282797379364485758472211772025443937101250790636490668127868410893437200510637080874775434182895342032265898603011470721069080529217874702040008344736687652327352164088421150117968121931673389975504295949047456959422318106512679263521811962655952749471585940132703003948326677473222045201910516281959094498794366542854466102581828810984797460250304141978381816166507046633935061394263734269199784124120238301429048445522350606628828166536414596047783626145078820158735005753117252980081890614561985081898794302669758940309199519599196453020436021196936368217056833992010265180100121856625552504911453200039434195630485792560053365568300256198059028916723218900970199860318562922803801358607233444256908537496866621361171421277382615081105870023477779879134799062520587252837411104964432898237382824635884105367520398214192082727861792988952412448850783923318279783328584084427047017011402186506863617590756123311569625711054725023847209382741665737485053891420634285946758135447465269546500027512638202914337306909617482265723905262192755868734910152432659894166984715363852190780205866840740346166025990350745613105760828479993618518929945822042582941790368815851990635550609944749754133627865641866198692460406577575827517583357480680209213010970607791717328067560665780836656107245638581870925959555743848773011791921526388705416414124852386072032235393217184757339474146404095477918293252929546627271600170393166744479376137655702266277000053144093385112522203022054695494725873268426515534109126030769932365934618085665512192724312755959533495814011494753099015579372932767143162665955367717287599725362285302000947161840256629719328323577308329168248823891470774503337955147096560256802199348662610782799602806205532146939944957971339797208644931763587595356867154195042936057488953391679365422357626143056504822464850027101810298971500831476665638178586863207467007825775584299503923008309087118553572156521124652217784801400518657148051948730230833049418991713480887131497217865006599275813762766151361205193473216630190866193093164147431577908575673990253064702201635357760644920820981844357453758576552301163211640774108493183947908107650586367107475071870955871248001759799487520482735528021771129710776728986892587391720914006982795982468316732296329627185224637876332914998721752320104227129743073352549784903094977583242228077513323766157480458543908375566473502097960292869475384008094288030878125763785332411659546374933733846036081556077584603859911478380343370636311091110030660998789667218434607858329596091390776782231301728795510827055935452650427631651667577161198792443451958896687504381100820624363834239804216995021441432625920716090594738222188961246975712947263243963471837155237365952715008197961996851797672431994302458268554917765372094769286828233061778536808873682847074491075448996729678166271384356626138318095496289997288101044287432408360158607986482646249715559831661415494281992610668730618825321299646252972307513333164436090303796550745215069111277950171399866171153123893582331500445703568049477395611269279180715179308318123588508871277272395798918831388123400980114772418885691587879741160032288698279848645617404174903704131209244600725467555016421978287460207771536033849621340105075743667167590990970283083471849508040344263049108369225501342142432588200455419120107240603100729646514409046393802414754423609600604478948864590095040004505707112846032633249843167712181306094264168546375437522112175561118838762831846134514924421420721368836458758329970697307657771282753984878321768762809120461907879715495761174415971931181252116020920731291956059033816596245077297365515360673863190018602390783603914898216972259628901414352293755655267953036507381473900307224550451391256454556987238583958476501263560366295147640782008057559895852633942795721931004491640735829172694374594823886241821006433705341917493178914355959923804911562287700749219165358854268800593942634686905345570613209695807754883985786198146755870726494197773178020246151892469938562329254923216903747434734476102146556374365836511466367084682510289009032803567235070131764467723558507421299097105527432536173412234959821857010338866681218676112057691535002790984936844231363240263038202403948839765940176586009910826851296162802553404156546472645123097055592652699410862684656323376915566110234911321100062691663830647734028881708508755036077751437692781226864839454622973979393424060342049342285182515082518559104936179772038274607431901761727253223947205282809102306450252950076031836650574894530508332629411507230656097560243169024636746153780050704059354333747384436965455751273166028851407707615950708444996234520444147528832816671421854663687927541409062624899375131675787281129498232097417783453281140930991617494326185871324888556412252023907555307711604887000879282443035600300337193004503638342921938826024631182565301446964530917821331881758675241772423753865186541225087205038967820038639225766856566262155415266593208617713881453108382015394425728416275332997858006327188459890230172036259972845258330327285900522960292119106242806597100460437150290673175180840807465971835939115730100305307135755865933428783825276336192187771667905686485209436261531335814713266113697847575443244255902175651497626646915404832648412723318507404096826172897563610382827504364647629528213701638961080260689582974000767035770965219498647832578751810398577769072671091194273267334880138994946603889371521092426857416939807441808166325880428212495697145870644010419370079174298244611050580451021863853996904481392735982565835431755148330596192171716727583999615812012471329574246185929711872421745075803944527049822502317047657171330296610249489399612427242980749290739253382905361628517561639374181455386562684746272880475438209666019525254910497484805969245219237328925343454550863677874770459891746975572236935478906121572653155505815695484060422605949119346799037382140961014533110657736754050871014960884114379550305024363323317107286561881229984448575984164242759318609997049574386969881532487372783566208184244522802354113878344370202876551911022069634172948830461231113010582093380405276167354518619289072527808608824892040868025971595122666817088005661003022825279569690651216268292774799579337220967682635386866969871058310753526947570451964782974829289262804768214144137415919490041785148457936990688847537285409581456165182403085159164521849972170737870640076808114378861249042878058716625672884875245652790498192465444845800966714965585977452759510077472721475272272322266941197444144437978869289798764505223231951638546952188628315667968655034715450556178381376518519761342548277689328453847183364275166834362753367853620711008957244107564254341010396615197824447066100079409309764567072109364690489277943508512654007435065422600108046361140259601817191481778168198599128317159023554612689226791881371284558683925867717253088173754359327652264040405381880358532418060080338328242365908846564728491224102868943034846655358442638558412257839734458579198705588544969105732305182141735930278151985109433494621378424955198330410394646599754286547900538949004804710866312862484342405961103450054660403728809844515214936763576374410650625731582628491266836251427718371109770393921035839159052660790683736197953491308931401933507163946455591287035220189603093583436179529823020870797312659497634919446747386125838659783011621232338116764967623459724649513790855234349746598003766271559136313391800710677099760040355307987429208722432478654032892285778535525861571818215717665113468174149505629262400115908104527252381310523070936144282163975034064813689096233046346153219228297862079135581651217791416642450010781109604075764700315932045251259948847931672596490401841756240981841364391149818553353399055664609447902137970961017312207550282398136381420741329015492260045926626125262906634033649736532271845900798190348205170047307477263187017415432963530111930198681070472321229438942615518986533431125869296922925016998470378224344913034388298629850031362868890720859484751384353265888183481126777539228655448413034723426987453039953303288338685483372402859522585373492751337770885758363904541705090965866553297442588254210105713971954290209024833632690021548994895894165900411473378469915995958520935529989463773696979480447724002933189543502834764717841167935707141030975160374305670472176720476416239519744396720458111140612173460327585612165860165535282856633004276186116012551122572189358028165009632828355360275887985065861928576423626862093466127595122501485174294181996701143226397446616567342349940936863847421173317176832850317724804822480600049847459309609326918747892104277927477482574141118132663923636966390787412786846913022086689165191958237930396193786759252685763431124610690899274801114153998166195027048999606278843774183995954424850120967726308358062257302217319922116309319007153750241262009683618615373006205723460725085160225698329177130919539474913322274305855635954009902538688970589139552914346320312044483344652968600804103829163799165034643309969098210713155420407727082420961531936916129639775869740388688669811732458733038673676906474258352531848923820585920222120110682605256885035770013740011948840676878078665183591533071969936022406458231681076695053926159633516425269750687605250670947775645139596917247482901655972177409787710262387643193138093142742881881541420739447240041895768138806257562032317736880304112155379403637063250053534452751480419099695361824988212930547578352380001610274902960710011832727854312464728363675266911670060366339885631135798513948716352384405025361936758253522862359195854488255822408017239612793194522441958672140116922260599610071137825488369610376651572416779026738307916538274412031758967883489961423693275911750967820426414438931222702329472416456539987407716869487991053597252426113400168412980914009908588523339365975849714548502160945815144062127496782496771376346070701996863516222820489178876644119199959206577206021268137435239359465611695562684028573584111650857143467585465799563624540294646032666855311511102779495836628186937261816330058814818190338169384038573051271511977325570359683666557079431602455742624409719558409462927392852921507004618839849831703030830002736545691328070875200959023412673162939212603974364469557976656922095970970770782980685604295824240246316268499819593629069984598935449085960554633960308415964947472645601987599622971573812348015570184497911560507448085328505274558859803584120873009123396409616218811407760158944672945525905183307111637015302510497024333867804498800372465619575932895522349508706997326239188647925190185957518694312631944687935965678683914871964305483958244907778733285446479240952713532932613663808781074810972875082638648104592854617200289364591164731835109953157759260811818929095174506737419581000152388384793766573827733191256483703338240776770838715500149305655805971065126035464891290566956694634749618233687082086221774105422183550010911284105475244654087931149449874100352443373163078511804011510308209058415423861004381222353935831106871098583941126287911938474454092074299694026004613484641890308212717284605340331626546324627087985689389332091805673005117405045575600480965106292020585006344230861205791553647875515828449585198583962482771410426266392359892762503227642253333409690339531771283351555663464008232162728775667251049525037893659670711412791014380503513064610102407147891397734810518568267446969286163223161014148545294483378386287830170879172835825918756603342963246150357873468790434746857850091578875501771183640242487838666660743943130435070656195522002232637833476149624156827504262946500337866424327811973954912411286128785605257320215950407615322359929599966319955705771881600569478090287778374065271851803780429735372319207271932087037275966203760272353127449402079045138504085005469775640192185629375753064590970887044055384508589727992183025660655247385499219444805591941386599647811009773188072836431534336024171518958575342282706316157158859325487297266054727837498448747105404525840783443563721356338910260142204927054991781744900119493235245991924299412781110356126355478594141628391281445165802738237480150699854762762398334639159302641012560464555638747657563907883562507871766024501993531908191267721127740804782676514427870992583270751912609365880436459616202531230308414436883421635702633225171265890924123731830807762934196939275029468412608867606600902857230186651373974046264059331863040663582841803745672909440368836147444327160508701182566100161803593485140423718553393296382525107727826968918903540574892033338476858285555285464133924865962526843823538898790053554532101849686495705095782151051257718614403809781187973128601494454853784748124449292094583065235514208376898651787764037782484186059938987913617272594035855094165679962554332281613225541251931503887563520159805065312281389867298871073198446751825279326733768761920369527180304228262285886206468895577244323678483313481168733192428209560371817480138794154802242605790342232463020735410573093720113191787698501304705168927942761562278188424034135590702611461241399937643186051272419473867913651227640792253782142349848048565785621963524699271398404431386749064096125573536276035539456261599035431368507265751720475355937710243824920905827121239748983943267827289133051527443139380753460590126309977414011788713106297319860193295604414043550434221030407188852477309379133650351397880904175419288618641725348438017718759339839823029987073476389778697543904978050217478532662306189444316257106024764757709951569050728921400612314248031855600182011062141784129711382975064041320541840867790525452375569980282150159390527557373762563701740053480618302997786524805406755598970266466305532374954061809681790463633864116260908764196504507378891814358892980104392077226308464370945390474751336187894794244212699659115633872746903167285606639953005842142162215846376486627552979499087857299045001657813238637831645639827681489348864379346021901767457486141903006120439673582917678291415120612019897993483745593784220535907734363868516500004617335755624084730031561392138801858508515103946064783586857440437556016396490115698311460039786585010130291934985702009506403975187883024489090638497183743592866998069235705522638954531068184558413676950345657662307849622738505238590046902956353409389165698227062146727045948862245481208927563381586725759408488537940766401314338812428816840019860793195851394854953461373570230781020431078053452107160754475852131192784767568456648501464333419463633987111915789649925787617371507022516083440048512068338971462873958294799570421117490072101315230702855963797227856391609824507612573772590032752428244066737813664037029748566409322127069727385613965245140776390813307929707560688055416540261078392806742138838454617204260498900374064779904167736124425739029661767540551150313251741867901192305530922986077934173915500589424239335810652608078754704027495417222368931839805645926773139195968510921201620816694159075001315949538858639261348762575350202115510598384021806383684334000930871136710395093592896801016832228384161292008721135315925681251253482397270575234248194739521472982699479161937074932305922860637020697537191591663291031353764067662387289583718302880612634996681004328312724797885576556180370147178927565830082600020114465827587326961368821921855568754200765523460123460267864295813643332114662421682082541686336050208051909078264833109688130226626384949655244733685307804695081292106257480835809717678881939256010769416879604945042011516326310976655357360411843398144764359496826739424373184769964504443167282203926730002606833381483346227632307676829574119930806946072866142232897211342042697867158439158614799797614052699742071626370609584649653410524495549519386159516716332432387792441157630151026096975869352162162876204195048173962480935906078150850277363709822835040129984480657438768292357450640718342145310541193619305042813993919086371250143843481889094574419320927772819257894146219738797456382267742333905648599952141072639529615386831281777941680324649929017862917024453986069336757349409462234522104994936663049137715443733802012922466231636063726855039867938173958881290504953364282327953527536647971161295835601465788805534227217036035498780152437713108468205087024192535024627493807654619877153031812361937564510218559834709722062338665048272674784915030322129119352147993836129147817071801542403449146697754512093529635503412379914475709547144563295736039162907730038833159011390789065990679441120661035846505143322119648644761904010122896393063888726713149399878703099995569526088523746507234577069968187208833683338154485230865524614804563796745119881053116221225994095699275638276861818086803305995660623917473398065042825373197175353125941541963327870178239434525252426999465211820852620352690767653727460255022305056360660282990103688053757410789016060290229432064063842272616975390688738828689005955498965370161338491588799544512780785039440381289730026125899933655531167504499198044092089085562900948739041383617383584205141601039334817181077300879236102333567222336444475411612814092367506215788307115239621778711876576959291993924649235337186898051579691305000176515509879954881856380386716062519499633489480603981203100714906380434878516194582619267859361799330099885202014020884056142455580642633078056531915343960290159102122430264497342276873645906983563724542112039879694421098472150456309602059060614648865496960359010920390082162182836200377266361750474202253398781591101331810215554742703007661534200318865067679611988352769654927374779206983081848335642606976197773492246285513970014216908808299678659322042435613307392595275023857935446603970764344899951117463309355438940988774676467341535378938339421974132895965355715471974762340797978655005930067951024219911792316185983774448467601928280031216923838089141334445801727008787190794962526291607073050272228746785075149841119778439740226657614769591691150756256599169168610556474607037855198116856370724818299118630420396358382739029315630089766503596513469686807931289324885500922926937619433695114923449679530752096371588103822060095176476988013888640862028892880118438279348052795389853271749732090067527066771541913514238855965339151721073021769641684825858717934717874671543412249464818494583244021368275565767571597549648499901274611702019705142728211813665251739512811213883521349136859597614509828759202978779537940619550077268428312890837457197843966597571056515611606874615288456624133756050702889430404792767899815376316501580548938098887777303586557262068389917727704752390341016920019247283292552269424484822051640877479636886731455114420490662637589711358850621329122568184268893768581798416824146735583196313157631351330340318411092636197192344059942822267754798757634215228328318036005857329427225259089736645612414574362409154796582471004695369566575039453438340786746758768860005524861562047933871120649573765919945799349401262340317791476738716302982792367901487298725357785326981975724566780714430662225515843397043745787204953893017410791007807195113451330087466614004413885865999074333782028071388320848642389499519480814487905321251173562379216612266756256411887902902950124248140334131682573364055448671436704000419803933115288222067481392924990543215434944419014336277816824355387732160055171280324166976818075880866206037280589479257130221088514822039909214814114726796430878648677195522580380656303038465733250688316106237689645316957791238762945335973048020444798130232812157832294260482341267844215851768344231107054374894532517255921729840233186312456656044875224116925346101930091846360222852588480367394917517392755424792431982438331871733782806705178240669793816706090186096015503215392308550177008654642289314843014621063805587679797037109718325299163846331836237908513479053407928969922309677078004832272280595769898247743712583202965300582151797338129433862723616472681571504297131403755061976515078048229188177381724033585287324110879667915909229997424956074302210766688278539055881978192836796250664392994108802405477031391963915711731641670596211423783965065371814749928733101648864931765876489751214598704283015669223674835292852797118395837112160148128761238896066610058216906968063147106560086423159694114612866055262294396605828963003623878885998250578189316648631846205026980969210926218689994017160148617533044373904061984978341430826726509625591264247102671156922840093578636289583090901145628634388603450827540467338650109295260897513439770925599894230150868350649966492214515654209624893670307903703557401813021935988569065772626407423688105620454147096185198270100032376435820667558211989576669147571795178206849595662287400210755912354862190778779677077907454318150948690086246989387101896191842621830926342445412061703986918604666191722416304452766917201458892042481872270863590721749594253210253767611044602035179791502307883474557070028261457004593577620285750015060644052019787881411851115093482759794423963360806305012215813779234110291429732582713556314005437641881543299244217180533652662827423157473655727735315706120540154503223046032833895655577855835878662118355320672428621796256222386575206198024367884076014531516584711541044686497225329675624541765108320997069974598126094696797399333875121013485780701363690220531831201389947469516791396581295538370121332444287663962445851059255477186259571180390991980274847937830082875679022988905818117836815705500793495129510623327522605546079107926457036850850664276743574145299916798922458164377741396290895312797990367154857348311233972500336929812459683742390414357275605174332571598523004964499588668922225597709468529729298621835773122667544568426941621186185510105771569792250077491501511058636580603360957970353539964666207697688132731135488701106868665034663149271916292637321080132575631886984279919290715502126065426060360167835789495453500454353844042347854634014836143040080065718612853687274816818333227391180484518948854942438534619228127039140105696722993378065888531358840701555447000247872078394462247772365250832462019763878297404643677103960491511725742415199246213540348181966944274261149678369091953007676424346079261212311891529140513126181525014376831399588258054509561572270647636338513567055073809305965192204918142092103897869201524997920451527426456883699588918274051612791271020596040800250056060887723070910521808879056427977858070633553202830001632894409653432446894625551018868818917291595750815948383277589012801721115457345245559116379053957699871826614671532910651030177080640612754508964817363867797893305188097539056895437218745306046342578855367916050619318294785487025143099425155176904455900657872753430518364946042293761869575754571472170203037282762016807126867067003707119614920754882423811777221201352749776964631564969672399167049734363081760783563667183674066226382626605304767580096393394158912737192990931802854409024096551115080949394951187372467840921333630784633779539289907101578928870540228788698320258489466895789960562960802956645656540135942098528208525486160735170966327660917001689292200398929234014639375380116252943250704081846676084851921785759632784429512380667673569192310720332887481124549185239254538663179471516958601870064648139950647192743993296174904528265375576802808851042982331013216350340482750540817386701997648292569448966021103725516030765691451934000672045747371016596242625286057449094317459373187959533573738596950725291348677040211528577915540777026184379679374391992786761058128587459483044339892448457620803020561975858290729999430361281135449597063549445062431253286211666943159780736698858896444012598961945177039394281192472968670822396284275281030601860606984116731752394010467733720854659801114251435967974936534178386253380420525870771482765059323160191240511225561030677374999760835931931077834553911497176053167890205800013466507879750274060448752128036498711758626894882049231182618344111342308272589718531057213574833928304148614175276532638937446791696615406261151856030990591248013468699972194444276563190017237248688245693273412427169148521522156281189505886894297279622254129087718197182882884991458922228631940546325942852644992587977384107943659281503610197602581947390215796404239591060308305557764585458783155607363398755898460505176683420801521247249802617770560811485861716551762082945506805024085847456186971160885270726173998509149154865116797150778017091243027695704103083741323251216415606081524720819329592165463328614261660308093414756926402340941853610577720466911505199295028008335010093124866080784858454814265796334936776136300899620585019296898744669284564732191864490579882224151491907544942985412564530425086554132351171409498032289548230117222724031425366657061416954939501157383870320893673923759480571360860018038164895110580732069146221447968367846298338565017035829848105724626276746751427840934752642565960158459163914692604428721356398858172841801047193468007242101722643635590234093341324525354855875540617106309462645029900003319361302073251495128580732812586752722190258323789063268873679315971242070763958416544849508721530404885641863511858818677749546958437123765638187666971779088512423690053599611587614887588483632945040053928308720101250738792287987544038269445243271891751216556747143004283465882543484576251180605456952553430868119919968340090320135268855513328618572583066955345632349472852744159141426819240684892708591828666917899876470891682580199589994159982806842661440357818653474667135869826761409676502022557504479895007852242787406573088057545334258203235808037504030451398189765917383586355600011738401822793204266958693403269304292275726440596030990953143616352891352617918704784946604342367839883209249837478198764560636357830544537697293349585463014440720867699578473696646582561197978840319370211156106850359608221400904251274058775884428121947428725921281603284569574068176036957372339644127710224169435498546446243954026163121269817567660512024300883880979297905095511102631552480331132068718748489180622058680172206088896005945949561251959831447346756457110683169912153870701273310164347691793501448192199284491138342809115934545244263389848360016697452929247458069858337922232333378237862069659125327979463911278777727796830292472090088728729113899821064267850971963685654331940981278961546124386498660670670900936742769128158509350695286007803397343342459553858820462934153067521154453858216050891110302257084354114838356652992399683546940222797010837845640752792367596715362870739135843170155777610922856466511733575526291525796343420134053516983519771107203452282736852182867796817777458137088867540853275854784769956160062526839273525954995032248838243244505195371957255698554854748502038621237809907125749870653111306052291429112518396958027867454201038990753293092488878487134211086148962195585781295182011930140504685056790399714922463682092751795609417455562475982782196305179985806005742760462473977292264406866843599519305333337896709794704735929136826094069069877876599577137307611160881024718164765863717011161263511435752225005619614079283528996901527756528891332389538463095819399479100005909126990944166209350545262617486829626035025232224410315672921018253771382023760569119172826466398189964026534622880073042686214589101682713451632839797428281236624165576584547483388261502939455876082794989452977162451275721138267049276290768653357447526381312559579102354211884371515693363380552503217212701093211526326151925930272329893457727329885834052843170402955210799086933305751547064319260854203683204199479582542668093798317492860367370262464514820789667696283561568554551605144765331675915890879136796324896630804166167830004206922016453512291663329306478064139250878423771671168430592927250592294902502445538019131765188558080335028480090534762498543015534724814441004222189053062751783964778702297190564382618771436527761432883485706591017028492190743426704404578972396002434517058865921337380496495533108966262871235110988922295157353286566390421441869292116989848073291937720415666274341114031731394862496400745742854515744675689870130586901471155068480569110042196982202065534485982166088052189313891071255639292957070424405489131817546109697322926022465265354390426219033919966963720526132546750331660310075776139737283679975789996524097977868190530363312801999339915880213464038130591869764973320630105541080944779719217016799640180842981431525514696837971708102468222686069034540052532562762445626825423628417977798214396999547636236080996200955492062483452931023850776797436100731397040399571391028466033258479407367397734769412400559475813086880119656693791026011504847224888253972322465178999049323401252133686230264140620024050605016234572146604966974979080188316530654085926262482579523403123356672069285614734413795001407470291435248481147716150160080054239796078338043215815147534879626559592441092888183463825469041182804215459965364462757629684031179727149004076684610332574283789416177058050227887202750758448315603949395024213340474781044226589662795079710787135606123178703352170131358886121524881942863651781146773033659905421804348669669618557791406665348594481024471351414100093349192999289361936006489104540188676960419339226806084849081058268806877190473092389595313953510647360379588770411501783209132512563259535909976501302356538063152381954877884883041254678254718887645899542181813015955468617114883196794083238939859171415893358099359520727005193966282777842190697428200749046720597491074298677613362842989625436670154107602610965355133158866726493605962903026012389279294351892221196687559601937280583187163390185287736201606905596229512898083883374495177105141380804725253957425702458040902139730080624486854459396887446719585998862380682772112453837210502786914624416913626204902960944635014367155381436762727257080410591252016637810567439377887657636201233230024613340324324152665953555115693850404298161141203426060240307542180775255017110953172961590435295315250253643799058170684391316072935597341076203064781032235294844850440447669172066019075446750981920881576752020441586504371085405973563795726848152542967264841555890745938368490687181859643877600017150836060800212721944377424802682771662346118142351669858958611471360554343998779602885027363819263617411299066470736256664556428790176595068403554948103999964930035334745108053720356738010722794140889411872856719862854549405597156988957448059213106008344989070321016271175469960295825316299815140491142027955171781922350181755631883371601175323537770027589593931203369934319908124921367600713159570616958017017773785268011709328298207642899033961443486453494913141541771919251086131324331076598623573831862184034289279779060277397910145037382528592719992266804683312458692866496892983620123194838637714550956548648136673091781510565471762864637680350332303433778394348645755967385996229585477432298202300574959456474079964606774903372983319862416750867924298647346427462062029261557468740079706420141071868665776124020082630150691658622708249292195395705666036105395338005791220826422646764711088615863850780388934574742433729146725913698017364700060008857746959663502931535537118558753733149834681828013325800390975325633754095028683395539515527281889553236422945963972874591574633016425076544152056919355433355938644532151573023616812356006532841718656634743603384914303515376281139972909129742980826781351209230982781281773108892177052425800265160255876735055420363283060086158142804002399054715677327891578478396979954231772797819256665712253106182192207139062861539871460769807719859820651706866545078207907948713092616794535895464059750803362092025351229393003145741534849658465352564905008537848306978917727179359133576952651356539987070046168480613786497871112383582765145814703010747260099526795241723380328164433372202269017046753361176890631216466548839428237081924347516193474165201356559098382705973530279245778988478925874742759212101677166833473767227569407451077379994350811873024463029397241827264809828084269432882188855708512331370733136189712547472535460823242816122482462049343608773581092354238375249014814108129199318229647519931446289988523362825075462389556240089565159937660099361366763563734171397517730951074775381315711587590474090658473122075802989264949259573711116145587162024405702058306197101340788945190015887075932775145754731950572484645772085357987920013155239661633044643849953703156361925313888410447152570683064784771229174380298002592868313029298744061527529766188507218390376371085404549179956496349454318611829739269791629877847778117939742926943649499731385994949804156822161802643967336271153231034581333882248838879442103854884839040645989639014679934162088845479591152997547261344048765198192629882762683482296617676773538631941773502786179297583030560733222897651637362326628049835073200414263659906967002464160037404044754395356501783148222757953712070168413336997620915843150592423566014388589539560790995357040312110057157192878236988368718655944495163355120175500708595992273300427561887898867387212500778800738529603741572405933812453796423477127437212625483555268015729625968391466334329876680039787818428961026277647790667569596056528207403314356612459655207974611393866462473957976052672529430904258298836785237707300846908821059635651682426402628248843285635867273461881399579535278201598618198955643504815697850446716116422169471304362440621909904607774397485404627013001437846109085612157784952286180214878689795745338636886499859376241380522660124147065997181996210689972200839562649969933544691036764956375008827226040968194296414587615577978994068166280828631952836476163175981048930458039102641694413059743852691444121109466239528464948767693617327770128278546116191475844029470688037024993864494179362097299436612025395366535135452149621507985085727048954031510060361528278114273958686100235307171896124686433872366392358336966375583648213931412922358882624377165301792822340414118636453906130573445917107945300377401926942045144962263781637674828318458206616797339427197152357270562495599555461737563633802062412799762141335754636375304576972889554267465578603106899121184756469893789097958872907480495859307295913942452866138347027948613913700246648673657777656449808439008101348426994303623561853940834341722600280265375419175951488025370827861261472858911830941690154988662715619444841157541224258401404594777033804848357253652072080024852179169318638058594656823119053876751880663848375959684015721957164269661449407393387937046793527797288968060751791883249488587010605488081302281663706226875202631657082885844668614671354405935120473874345436386642767001418173992094521840700605926713537313708728495583216012710578838213323120465553452058587044508608041818483736844747297789249521215411013743113173441221636925836895975507017063527607329326379792839829444071741305471751265715513378757059848841976964423046672731960673299102567992442487329948562308939652343995251890695712225108783275692138305020177008600968318895924520213274595762947694794447791337843458538539735196113974788736258391770907544151820983074141118430106282807855229511879034165515494371096933534506228764770138172523677835791596265714753930549778058898076871321538059135699653607194376644695369038579461580480371101618100910450033642870389721553890240261229835934107642338280653950449006644157189893742136858989620302355136653422854072221916293132517101551243262887779259417063502779225857390658349360959828474340575050897955599873795668022509493456157524772077973558632561730437375056058345176091539276430597203931935365631610989514216038679850834255260017225118786998137919451250276792446455254856533034949487527572666303223650762092872039796255147147188029613625139918272240929493009905347334717750864463133739546340699657938639343799085622134319262883769220077200504491614379258870425527926490233747495146728401035757780217430724837254413772190090499400046274443679905692675393561717764171509322502154112403084046997774939817223413366606705779933868967610237697004064442089593370122465926656287695717609257792078226168881039713789646281413194887553838509050936941577988013883981019678490277876454896302965433898945595175107749289278353009148270789811068688054657941878777423089358693699978197255891032205543864698294976553375916316996680551935654296052327044422729894809696025422406316975228695042798526592037258139447831447619682365496887782083135810153920374660995024448604279977211397188099127564029527109374155883099313612920467982911096849649190722549517909122520716121353166413964801249703690558243699685781722629368521322286939141423503567480832116636027111565264123130754115129623854449189977403213484612396169088259442608818578225891659923667319782794352872501537886372473409729840849443044167244620117289475673284348777944764812031046523856593804649753528621494589531827777213579292309430836012001413110629739094315488015127157207198961972654496345088039822503070840274217103882922807965027380087201348159910159617070039742853534209221233738762196730647189850171604737384017623217273782595809353419228116240913605132222052667929829743071233583457447550368035013631009122501707766820725708928331150150640880889023879091634675686324868133988770800059559715694899476570573407644138113339967841353427465050397809012095467638882755502853234103395296396225331966360007047682754586614168904574702408362976997554198096736520047290965973794071759150012654941801675497505412693614615945199335545468201649684348802387304962759088109224158836573480365741235114502093319145983610466042702589878293361415164672285631149195570737577136449472929946680702086904039605995513166039139792895192503352937455887997160326974529268798639788297620926327467217957445386886806493286197239073539783156285579041014392974809745468668239840736873062760622017090760189144547948553885177565583050829992324084676821867536428741103266618675992080625611748857828994189313173678683946593703209129348385727083464221976040275136649818977384541208719201872875029769331887603082117553455133810561465916157961333079628323491611771828178899195205045358230485825042672714876720321451036913999642961539763064511309541821978767300525334970480399087318452708458194992873617484103578361988962455120570404281176253037155554082623045329133497971948268621325523807187667888373743769461183764010698351507947678555486812148098822738200281703926319267206585907759464310280743479371185798351736505905413843630018456116049675077529966157870662081253744696807791076796113566717330677680048784029191106284015878296137125121229514040793040221832961960585798271568387544879369903536662410717340115230447256542055060632140885539714438089912994840503032984874856039613105938189705848746805664870544036617237198242435435805008133112391622406643102778569335192621971515410231151078448944651141825965044304579200439357195214168447204721307904940760624457824679028000882309467989270999265793065790866851239755181109730413322988814355927244670108850345549464494165172383943347848881263575904102112558081218405531556560342213871175066188893996804796553534814503113863234014662792009300620863444673870982846039472547969828008643174328543728877993186689163772959359993375013911062915411563118416654355736661189735781690229718164376499286171952096973108304941657557641481665723037879999667078563581256919184176556996784875793833632764640955790114643150845127780180615246656020211275820547530430352847316202222292868854506711697999897116508615968949492548176654931709276364493084547720617539038539817771664478086854992385972279138225233110978746809358145727013431314515935716605473186791586125186128445352997854242841570188006936836879971091756938127814453189941177369699886668105381747482008455108323829308873649462070872085926690380754295985518609776579412166777773969019308347970039997022055335771851697611604644640556883610357813462936450555345278207217826724315870356037599924262197886119849978411086226004606143416935822624176109274678241473149828915701480192906864942712741919439081032053981227736087816558686669077308590251142971795506994505901463710995467458858514498645572325438958053738155897031243333689499876420527507242343870728585296332281923406771403553396046814366380880242055514981655061404288534467635928371401677803892884378465061316467869654035151852108136782237556418045734752544311092534254782980529973535476109532535645265414186496937423601513636878018312999864934399297939451745093136123993869059512519854593383323520152079457241042560079532388632631495791305520257739227657972558337292479811583820363601101657401587673437690018812843613345434526823225365535908574029638262856865094490922852014290991729145045935220516277609265573135204035033506913617560191092996932356387211842604964607297004321897098310640983195828231035409907430388110631956916912809471691727737975910645156041313422134630270654230206389692435780005022474640872595160320174182861337003641255004514794634989600805506495292570779679806591647845106912621489224334297708825893816879628946243869758399318219542403915552912701449873992204069697751096258508472548358253752983026624314296375648247501005060172238288824755473405732956909356525169046295100303743089786518226185322349183280342926217992479650965581027517740463729784564170833898336159829664176476127692274523399537892468440012448675426683530738282426676024634433668973919374267358003266679358165024143998785549835781187564819882951821126810174599802562685295456519532892213247373502903748706104294823773053281036588026399706196513131434331948209364402263566176987798605786665865843793501001106673228308183424477842487974950348564923209388900317026106027912758940615309402963317891958346296756693242153822359353531983291009734270547440054757238791608219850579601533722700353540159941751465358150115802740227807577360197609351737801983527126022836765276165936882993443208134534524902070355182446922849194384137320052069712073291946978396766429487670162004142258109055227970650776441724107079588002346949350307558131398457981479987969018315675997004411353022101583487365095568302426974525825102997562721822899460258664923624648454278081954111570127326717584699011850683665579596093348003913870991177657490756752652193485464404130134313123859032569512099214197815270175513851163295161892937134915500278562620666247658573514138699991376493661573506510586566058794531996599974028827643811921451813507716040894215384730884092147433314150585350902142261106561327931907042945338773751199185964536719417869305719454148457654908992186514176995060651620434290784114881704042992347982672366818558332353985131204771853808830648587068292109324946292350528527831869421262952784592989170234130423053311054168956766596084419807728316164572004618356748699608676312169822461530796553973917479638976786991137704033254198493409985803571162639583123303437170902313234146363130023405447870775369500719466559365620487197854037630176659869617714615113174175725407619465079475715137497665883721409874690586135122680726069177319531686332275258603497066141773878996022032294872753024841375995187350001185122142281714523231447821937599406461072716426473123440964367121619227461517340992448882832117415980641247910122306435224733445234516477173680233979484326070067446736974738198073336324904321210741149709541670583603773033201094883391957100246136277325754504404031472118149998022314011962209844049737601104922035706435711770620651957865729204182454590161222148484727738466918501878706150137978653206950852145622455358872774752721238912165781254571131264444478200707360788180221137943379227922101792493959458660372594726704479608554411470193701526458907765266567248647796131322717016632411970782914930002156761498871997670476939472478360077057047731736645243206319593314723064996678203074803624287028378525112406106448140354540534762859587322089227576426796032687960320481125681040316097166375247184206367316043888213028911586865594018639674396717231866538071569639793301283058462489412909807360651411072917244777229509653700062376442264384836888344780275809888661913123226714772449359810501601526535297164301409676466332388857566591078011928528504769549390126703417280721386210397630574612097803124975873133763085304493429438961140003921164143967314840182854828427125286430332560548188694020428763389829824770668890247615102226848726227838428212262675955801833202811055013151463669784919591623229054184213438127905050370810789597490823661310353802619515668162958667796232725427198730500647332987328247749640158424966119027476798487254338811746139773392054878625557973660607642605842213865373472032607360950885119008993278202730666380798132511923883037344717500224288158194328410125999076939263668358983330765381522342123170034270589607095715161203551798329200693885566252906006036688622802781439081646690137663318793094507301148962266525197051433998243518818398129054021303231619913201315672378768058718125809236826397229366308737734954170757490713759331634133330832295129546301456300475804194681569221466311376383769420327478548007896937301880027602828101633864061929549966101518243960336960346561691388347164198054622759184039328774741691149530940506644037826560702629736848297763038123056003419835358659759044028115124089789257890873618424254422503946596895376564491817503908893588394629109243234227727729345061426070619016430792828475433816237912996990720059094617081038663895000593515054574322195005390225403151646697667067425937015806869734783140029850936785397157614342585623289741283839217130285100470897956541708315554562035389894753895137946770449525507215080765023346992842018367733519953892109618199279606970757695142159263216786909895761118871820703278242037459887037386128354407931833300066270336073096533918444497334719127499438469575890338444212445651833149914497294392423485293827782605113886046380353561541607974273948301054303738508898016090073547764327035381562603763280277734345032468201140169920409166335655094095127684848085201176431326379158710956998986385355666831710874522096524132967639486951063562429610410542121991995935789992394148399115798780209130396670727723522532122282951409150327161178932577325198699352041832416941657269977704109898236198478182926235638621334289196280518460415009883891780659583576363755326257643956327219227334786327970221585235076409782465370171277734082040830400806019164960115419499619583204845419986763723350207973569953709713251403978278440600359080788595384747795090707621139552743491885401907362851975638646990440174418598234161403455350459815000276737289434896267224928018306096715145495510890661407655923701620123932097768053456305853891965026026498800727908889333435517714452001111284569350255898817283987718466226374398429519406237171009011153504692242218006699057949908248426995329297946394080724501372539197034565698655017360067986898213471064923817711660822190300789499229678902156151750478151480492099356710568261240605245460234523813946967619872817982077375263545684473140973261068254710950237033774791586328638573273342103694327934706127141032383473986716705618226943819706936102609498506721369139111342347373087055539485472717633782870982465759370244331255211720208031565324887742947387514673668254330110350300613895505609140701667203137069541439535039251810388145108646222459240674310987271180338755638984929978202908453861812010134433947724684365620734244336449652663196723955880671165354664458447784094973392455545390546760768191431579915362142889541351907877613582603168917457891765219862532179644803256699732374447946221510025439422366537393266860545845790623283032192949498405601392835879890035742836144222228155504780695555928814213108500545804373410225936270143858721413062404706365414344741118905849549004024971919123247552104397958596837175338209672911500668711521165082418785606480061562106358847869198593976794328244496810566188604801912653056750186007827109825369658173166593624581306171396572740831347778360752081996525854748270433920754816750855012564080619845770409986506071506609525086814872811224005645803569921990392887374565394602047498510864555948401923603129359872675687786272984114576390214648515870284601011363620833666044105301025704444910946256686654474750136904116644694202054342147946522784618779961961233903530111042526474747601386035830627684183775385264651112956814204991535843724204895918789500688393630836652433169842509036460412614179723663065906334023091443471542221814093111452254863980415427821546834170833281994595210303089333897963300993262781200197940085247434238940455194197085162937317916081906786523882134991557979996506471074275095529442604744958587793280469250480385481864087869826792971787472001069511511798395876970563126708171143245025750633933899052507921221282571666282219395645777073426630215226366970662705258129514252621830238448083810906764917650758764152998699523097509787983004976362758210325680128783233137044902569635567377651256711351923173933603428190820826387477837327028930130973006919990217352063453589424794597826536166980905446735770528761216261820385910744968432780025559938163418161743932425292796832079773174771000746125163139483711843267634538074249880476713791945022382364756192765039638046107617781858232796479546562586397232555554351097470682216621159201038198348549703000215017483721072860944493867365622930582356035231765080825608988399498147826222131677863451186715019902869744418392802956117225577482539688021683042930408222543575362029791411613471545373277840903803274397696017898367690548363333264531729642415814467930086671997525354518724224731075005708095920793595112580919904521059668306051150918447800246979392664646565193522695860505521265752664414742447373733510630028127783791246258118850604411049444986554408525304625661323014719325645596419315254632697876289546626680706599055047161763155287068168776745064246020786517195908663199463681090871487472427760115481769776721958811982285685798749662350579878573889496819725952434847241997499771480468544943311943018731043137493845675868812330663363467234347011870315468481408375373664939880050993120640301331799443230624459401814625306877703659153144483489389967422118509031407611045335324988875003714559303428585164365815352407053002901747149500705620991932450675291998397494581320532241587764370814758870336557492079836906831982297899815781481647761577655638087804594727386364588880713919266307694785377774169573538451614815301161744997801514771396385391330023318784859273738823578557017935215208312167188934414794758081732718752582644366227067472800853917719991711730273705257651075548007195199421872567171403785075532387057690891791882054967929337260512789590891175212648418451592256155946546323812861903218917922114630355748010070606185659370173172610851915815456019260828150715005024767419931158781756281288621493541037966162786669693890228439294212206584711048078318394322362621122040458852008284984053700872973524440623304110151252027865664564442515339721821301488458698365148284477381721724230974947298670911138608502892876491810052612936873392601913131704245422989493081995373845550818399187875769642525501606118182996139880420876433597153876371488627745043426316556020697299590450677019471999240365743675122801755797162498021588495431597741883490717956342086489301814501091641146124188789085895328517547636471832776177743431949168734232995550234067119860440621776964675069077434327888179557433696973244292300887693333838753393456685430337016019659495492560876034382452180217777979811843050269804195769985058753052073803157842545345547551114929101667565635748818379478931507121079736354173227090053314021181546474371357765228264069796398360548832165595471889201754136796450191947317870506548270564607371044639539620840160434031951358025304278203016452128114683810046216188979853100452028017937757601466241660254724923681121922260415986165342918614797853080905716113982227245748266662976379617853159881091014988671435892018254771773569717861467690677726036765485457568209789607484642916567389177634253339889734732660955485897264409321145780739359428498168790961524934736988655070992724891472710408637438393952577122952547535488844997104717246792746403888559445598979668986210129530164870098433067256446113872777949244226764343095610228070638060762308940147222897322351275751318142793380875367920466484207390780508218664129692960950589550901367744575313829080672011374280719537499263415485424551482412273746524307370566469799281386998929906615883933677019266903564864417310018565348753260992314387746959533103339602559178717788508233321736923833827450481957641170930519003076895113430819745059805338406090735700422485729452075736306514861215859043127171491834458454060522529842657871688036241395316008476424227354091114471503466816238829278392226545151997637088157845786178176985616513192924566469572428439056953336061978932881801734115212974147007789937411395289630127525909242264422038029426528771408066186816398069503260453941036466867868075470724082434640403646135357107269798940142840858805189015313911724555457369744007986160309258471562123514504423797377566355300043482561350865256980545385724800992439460465559116267929474731548998254091855413391507504215099023597990712639899357138681426844974887116158646593404733088397464191899129401933257130628566787980395339448221081522869789774435316278293474879686884126976379101122543531350146549303171146291211724025433467611677928773451426123616033227810310995572585694576792067669452084416137303864020813926871690443282767707797237032846989532471431026426393357893661111463211773832718549254714333075254296506390438518577607397201749422323651367145651267430708529980195910130787798999190569656855343936528489976418334157416246266677282821983586204035507068709051584786410978089349267831045281896837426198525623699561507568193138916575996196585627283524012929880890468999905728469077113808683652888954181912659554344911614104631065315125339996342244239924448671465541408204544431843634241874006955093235912073449767352149917150717466969081034384411182625165638760491015952856753039607466715533964428665677799686376698580200415283174572704966272971721896213019461806779689509876011498068866239085815751318599724462793476114677508780067592917658393878058603127537135101292919496417318564175767351402909293708047409616307509699144357367033737274872996401815506160659886904905254812487565816730606089111759520010386802670757477150679701064182677577021130532126192556071377614688755329187567764937065959519760932713450597554296491292927333343168731091941898994422788441470149872992802041138038182846764660111452622693079791984467253877320771790035276188076789179123860639873390269421558433243335549173193735134148928651350194607564610956599534921035728942944921659048904375873916907259787266800488128377239861246709992849741728927066358647368212520828003654720621849302106672550441502045885994143984446411024371214359829571831838080464640256467501976813041454386810154223203043193321794954440939786823895680163134591298796005540169886053090853498468029649879879698772146394058240629187311667173063892520818057910982670636198107535571920605546201422104162675667880282686688669213966056376165826992954358357671888364200229233315809252159972456374106728082994627452025549208997788271449153604832921743912330891237619760064859793737223674304572173809008612941402051486837090085249537767305483810215877159653784168925898191099193406621050575163497804335197593820033153491219901128223970231044251299746046913183926178165678949075000916826955350793598983401325225561069430630703115086388019127695689984290685399729866062999321672220236704944703926078383375970271163409621853424303830066364782792475057020331883032325668247619169881009575916369137866876033756732438156729658114796202493555138861784971120365666382591130658179205068355398799217665856519809549795747399548360109184976076250667472488634327435327076900926595772788040047679365287159099635519035569524388046296399405696251336303928091144566722262804331601266499662757247436562611929560638878707994094160483172252602196683303630154430120998457094431945063117156878716862228704475620079485829752184278586185308459915017310470739141955445113492083099184038101405030686018366261725743508382082972809380562490472804236701599139327054994975630529284888814525610032449469849754264446306761637352724374093060604942384600345716811087890042612214031814721217551900607468322187326214567192887528806165424249204373922049289885498544898098651909504158123539156402009724243927322513544592486880241444217783021399621810701221926365631085306670655011271539686643237210131983136801980319768097179887697584524981826722990048673161713971399796050874679809660544349042903323549374105382791967620994251147807025671515261723349501470908275611134141563993800337242756478482634645684165741577508730167545437347950997356506591187667014054874037120973560144651534897989417531883414618122517992444804959109566271164072997068914755222729364933698758799137047916012861039811881676646459990850570343358611399973146590382931752579836935279822676841533782057297990438728804580611930589288198559369881357719992830597222359273063993885835128173714408118852890916782533861075016730910577346399925769327155263145703148135061147048898312278620807531242199081520578046390049790656081267199055364335078148640451340531353461581487247945741096293703454850982291129160442045541047901287839039403959171012138972064736791414569769816976697124076081631229176354805827999500690552548683170564752290072357676672235719777061775640786391245678124518885559063740805350403443781226196673921620629239718439584052301935983734930974332966307590757802092428190313362168658205682915382805161265889490113495227438639615177651510672274451259316868453109109043805060118404993172630036396079936726956625588353931021159394281382660112583002411924281983280366343358475709561279555491398436668083992209616123296467533757059992173583949821294537538391522385262489859505035319004570877003155164030588856192475366595179818255915541981589551938106736445796544747229870927217627666251539767356466324761292668965170012532934398455441730872455932992565284973373652409285709021244987474683376233870355720761498160329715197274947378067387152996779788001483103682618987076312875464343710341800364996109046939164079806163886788677870949564452884644968274703997939938919992877729556399585175478497231953962776860506279867529148798141768091647645146359365398276331519075019110137925937293537992167381758802589526122707662217423805924182045413609130742049215318808530412473855423306258095265285782728077630905188953366428412028406377919851761058489723570201215331836885731826274961285849696959716670779916837118023844589059939600267236808344515202206751342265119583101796453499505021118616686168982713951351662713002332922968253089565817077465054197807770832699136696027907566028171946140435950884780751983489694430934558529841197694845792010641317907798642310715343471874724897754162753083234786103102225692362923447807310910792914310936468094835259884408176197544334226754990983196635489587754410294132457146187143715218292875365327884226628451633131971981831508876691064184214351688246794096645225380495081822991659988020679368519246768503473959639107055279792770639549209293279590676321351519433917884443877385996864854443692439082161041126583542628983343298718350416593823661940865983094416930845897412250717599395933150722266667652952257293872387909339736093084316456138495782251009954543633591847109271072338153500022065142945540131519778045874424976423797156392249170724469702115794972852648630091481841319247110649807641781691040864062456871663117919023328174224486234639965995983015303327846534629345578034853145255093838079714759321994129192184089201180879824468679697055956907488827084772909109203816901282628155980484388567801207659638496365572987762865942702055927840565956272304345732108172144048925299948271000410929026308756263176239374040091127705095802149340431029121700213782484079653201004742098324865238734149817903889800720343627646324254416343083382878276847685867056839068614887265286584583902427012081891828726238822161333679525868384677085176711644294155218872861206857471225791525355177866594526978479120614073770438556014735116133300339910104980168454416131127164510477050797115119692403038781829098430202842677767211925478924757497158808511388438320196204150399100602191031696378328864067525775522431101123221532768395660379301989915283817255616221652097005929790605534504326484643232228289154572007713931001705824103669267013573362218318587779240361867784467517697150565110827997408186296173994889564169124825185986607193562588101366294557456838125935474224218640117552299976624445582067743452932060495500070644004297503285119516826871991109173030079148993560429781803580979400528733483217620715506804932953011549043923960934245988644817971413637912211643951363716186212888589154392699963312567709675899861731879861035570179206391397102532449916650258979509697228947872861538719354575076623964029922231085159791668046968623879200077622103520809076536927946500722143981431432092329599904959612505722430550283714745685832125862633359465698536440361342238489488225791102254703413583090584013116802493525268963693501694778440508515317367187727515608043567165545563754408253924344845988381826756083443235991813331652118097082229564708000840103629732997693555228150575200884861590001809363017813969808594971115225813014371480546049607556661710815532622765095501706290939042527878802756599237514554715393062326747705293046021269229188606207297778023671209883158023950983205298553581153084542628401331777057090164785271174401565393887892837107539940616002813004487985849980929519910983693907238386173503168889657084364765692527067003597281668786225373711601728005929028717446415883667001707750106817959895533641245729442350840094775005299798580913364144532573207955552869307121462396662745086137451700927316338660103158621864586725721531594930720695520489941326140687605150679488030729916756281859079440869063171985883496113677955876066096511470132200560450310787340202682955584597724525803320579978984999505926221916439314827011511636048145000153220875144866628663568123046498194272930692686787617202489412142249638907432493865483330925651938924970392324440565617175886572035845544650157347068462644704809417429649738796344962120554411840089855410157675224236696518213595299921154709064266807163060684294931820390042104585077183281434442937821498926700226478958344143312633567025475331724143807382061502466688723369096219626257674055349358663699724766163586938221469066003570476051155595371911370228542801364130335372258623789163050263185549734510793506035795976452994150205451351913952680961205272433925324119563568192194432579326426496698248650230148596664108640413678136454993514369371725235733868287728998927360275400385382692841142473270592231399287264615701413651213536504189671593034112538718777398710711650199472061119973735276461974107633117625487110761883153781851611156657926387065580253971341410458541153565986603753237590011815037299604765038470448040710172566785193041669422867194276075266808510445855466356999821141440615865534473784954101969167405441509434762785604011546447675705528146024518064561901661104563186780794880623322570913530426028372401162204274181068396200344283823933425863904012689942460554879921142289980432060943875874892196257059168213245183345600240941288767263320865283808681312411221429044107965946925039166668559245877575183512707159055635091129429991064304503880748419989075898339800308397848517432216078346078353244575153499957431561584452970488767639679570107527491337072266503412757206021125353286924533238405135198265633334119788848693556686744637205471301146991761864234576444175595515171521821923203097891147481133899811310773040916941145484623918961194697832323835397387371701555128749545440254693050025087303002338915948315488753738849319820012762574314181098856793823483323454684045288228612781927933281146091541409096900862285261605577679457626886053859156951873906398669007701085108168562539931135484399000040904837434318875552244111260465038595339105722376218294517932515129977032653694099981314744338436117265572157467689880811677134442966344400219099226469201517090199079045115883667319262065342304502121542086466060955325773365397961031989993240629772843333714721368287322059720685479993358365726814813922789738061195261619822720101936247465421155020797849814443002715596940163077433838671936168916700134444195300540493546621713270463985576246846980723529049109026656606238708341385724210959363707702485289593863238823888702306542492851281367559282743850393777509275853645925247882632504055050901947676665062635799043923446078220831158613133143179736041705624943319291772763298149890952690869576238709005122044463053991230275538858872109861925399744382839093037904062468249017519602733626463867659836211961406262714042807624459253477087972101109845835004946622556342682728740959361975762159278569908659107030897195635170495231291414896668283452421936259511511714141180105121968327590775512903954427994310449626693425866802639789028573987494794332924167296457687667313517033627902071727374111567867255457442874376366368059901425533074718247351522646198872531351069270582930141840464159470567179307586432703316185147742124728940054955246801681862345066565520677871083184997193828841233456649969332867357571660729587354078161798866893979855664719415986547248816642793949163692690760087961741049567858327255530812430094344633061306077865981610739030724908274670433973433651322261551810153912183166899357178637219392799888455670673470758258514649684545407190608507990535688259738719167034260202988579019246536738230145483691275856091490618264908765993475054173176128680132746221624703233514432272776806794962276839138455246873418466512186267551868052065252131382665916933658336898376822652877839447690910338478259403618083631132479709226649031602190160456412841980837446225086535946032408136626681971181683308675795994903485765095636191575367416929201520345893461347894409924446380812348290466732047180938630946578597638141792794952387448737512059207061980633670516178460567743264399372719852985191857884663846260369365921702008965265748523369126338243005930932759485488020749518532930854424683920161090351799584434861549759414879435962673038255901458269524259015357812394870144797587497849637145855272471554626510362876653291127509351767905413154809103118902008281147231045469847152838563894500872982988331227905875502554894878066717649966071383996337401097753535765803966536535814126227482694603597702927239531833880443056005033698879013295957719905394062892704546594443304996262635819281962077144486688577268705921888430860940878958551110369324178402175163889863996758365426006225362649077170224178624763696571230933016982620560966962556835786141692732594252682259347517861898257135683748326357048683483802842273730519583821427167411435333946593270337054832698620286811475201431622738735838595831474488146963452456793642950117992052089082218793584061417530707968994185845163389459834107240934896262475439175018894097718015541206559646843936388822948321276074564931640991631346047039872793681707539630158099368652221845011453235442313786352704170612061468566111196303223667131431564834431431416881137401193445748243413003141132169300044115390827414866626732435621923930856442117788109190821442960374215984128004904979459237745275904830193276588796393638108461565309198300947550343963120666981958647225528070910436358341807966411138915916904324402114150949233228173109301032796420303534141208406882929543884880026886299861805849204213019019062170398095467446947796267065070704022152117433146746833593017696170890379012697244885229526509188552508850541061048412194984073222415826174722660704941733696890225398584453673688455699856123026881183389070747608741403543089495046536700498890215245075415428894747546314303625113651177343952397390944229453983952194579104579507421251833501138171765355722011298960042634624959855550327246801628094310548916584634003579617233610414007764778721565804391904518321022787646747862761994595500165376965828980777820337522314503562816970238267686937440866978991670262240418844968015407893109774276006676136140367599237547199968549842065697270272965710808209882391426032047539125258480753852889313054543372159028557803502550391559742373094181117893869758604331956443032487434908527778209842419872947158671598793098324809160815655592639750396549213608426743689775071790091366394388089380865541369855693071095940031853687056826646484422332138651484230538273033462685429593359685319107542191008709735710358776918006419637848925247385789489445407912842093138916109986131341418827823387237073829168381124714963290160994768100150664370569324397923386038552147561058645166286039120387052461740858635394861993397108046265053092632526846066664362992231265672133353162839377546048878094480682102706992927192348717348350416299737626360826463496200924964458105394871264238559255074600079564394469490868741559790683887823551505183079394781065399159028560409499414095990750031596446062440533077756921318749264701682245750807638361848609912881906066553131285000337568119863352470039738833092120920822070879136821575269889597446691620670094772766114657176621238285280889833117500019080712971214989256630807705797215554699168343996199034470407471013298043174538457037331080509074533093144613367412745837741427440483962842797154420380576797363544146950940882559993961688247113218447022502480695300454427862063407890462963950168556995942572614652447286470116128193337970254100362160321847308866081107287152329224637736961110995285022516782078473958897801168299628615427406805572987567792540331798709017133523921246720843501143545512080691930449243263540251070456155961456661454129758044743139733520928930380825136251503865820560519297868947513348082938363496647621629863795862349480119249914288751217325166772620466873021506211146334975459581458919233928723277727676931594022508114664237584070120626220844093847348881793492132498452811114873095796397369240583364018982369215863000538754596223784789374010097046950201667300480409345010069506023187231924894573100792006936277847311536433779017967243996588027539191318105758120638350508180998297783161782711552057952055351073218869884854230304503880157491152815141641792424866883196278169934573357236323307806504240427353234432009456545689349299285899770797438300368305492350737737368755425933778920520326599036350779545215762062558969797858733967543778483279212265567827710345323826360575117589282795329911577864570649580884693733005344327543825015571892845769124711223351885032457579363461228757632181850925269038902982159695252303924622481421723116938714503749135913544742543625970501121703484918258337299839056246762936974798981116872690834395936444020813736440204998491246940008087398123895662569277092094740365243078413019826501227595368390462040621685559269704978503081648554654704522981845457261319744227985110174378947437674915737070070695384340106018269718083908119087576845503776922177450456933232942772067697045716501826946285155172745414924910337896497965410185868572701226784262531721384688305448459912371289248282657018376956177075649255575608195897681425155382280952652883440220484593389435496707474820080115717405780398488854469418213052336752865350035076723518039570439674738181537083763084292499152149835080625941811521654559707279938213864956481989279916265214996586950828118822165410074327413395781758353743887704379610293613979664802368232904470690487431474093737924475641789104941506746938051620817338157350675279209479748703588732324172086109427474595327800303868433889866168522602746527456642861928011096536750504961572892334104240025159388125601931414681703797423688808629606160076298112309039770654970071905245777715388935634095055794974899438603184063226875576782589730142617762838243158680955407116520438062525259597028095201891921568222805615782364506050400301744715512409359295911948060917608899351987692825706731946054802419168859057237132467914412664252641821435621282298699699216916438213660529686184222394962747112884298187629388020895411055203523924330095741155945618441268296863029041030554343035779334671217912283967060909834812596057834138769157371323461426936128501545642146175494846652908665231264496209761968457442498238750163504072954135086953558852384981555005623671065996954004163108787329680022856417912765935388865404584539387736974545417279796427408837925891437365427147274920731265750160661811807371935266131067004382101918739499969005914556857184006423355146284382152665000629682241112118534323672968342308770356569948891915079335586116462409956311588793530432688373365312604554356936447742558109666222864329678036138491863060392464220290502274526470560040818040932382558689821368145621390965502126883539754066867005407447877331017473226965281555496200957604402125799250121574301143880218959631847513617102508673179174228279751935035000541482818854240102482470871252004152373748324538279430135542003200781636322699009297499371673663092468569543209664158203171560346741919745252766089318738629745410347219853827053096609031958834890519975681633438327595154318374317003076743698920826045747413294727938046330601526871015639479408326665083047089476914404503868779086648882806128866994972862456420344331380024153109399542318290030682951693556545477460860606368607881296790461025797050030545745273555837634505153253324363028766622312126310633367156041000190787735039096612917634714930232707411658698369554211603026888124242306313870576226657569826559723976222819551697951274591211585888794510806548718355947870848797281966975891327058748586238313005471402420239554818343152597815188867539378248070255405039523837516548303779763343552719670377242355305904165573327649938867405119271284981191897371064833895421425998544549719406599297574431768053519011754130116248152804993140647359375369458336038688055959170953443838142534691658974154510333509657794702585762865496655290854429627992627013894934803411289103393049763870297993693072569651849885710758065766957503718534756657054379427959855492944049553723708191892253908026118866120033915320799066174827708816782217496277298655696456292099967956255990495014234590060966332121732789343020491539540391703181225441175616407374516388293034000381567952120295110090054096405995264938023655162281452592236543181151215339929393663515063308142598438906290576173339246200499424073328060207239393740715866034550623800013355539969113245930754226472603431770713931469763676073453595503775448247137647479045525741661121279524246692275410717684650105718299043386131399912027670239652690073150317488979174085395578002440527530194250498253054277237966506530961379539419896633050841006075706236839403463398071028350354491333200260516336892198195593262668180540517792002532285131021381858414548772228484142306492561399474887482245835497638989743433123642990123106479140558692738320010844392396417256985899712724402621053308628390574221190044552131389268320044361160510279209123032516999803963340292746275817460496452638393013402768980757919397881939685810150292482046787667977358192486159775422475995970968164598198277493124182368650198193525380462058002955736835246323796388679459959241872425092377895014122758959687470180658287576431282746072019934532370453288782030109467790650013393757687671958890295801098500837727148186141666707618043770593552750881059451493347924740480034678858011094282971932084206325194131975732019477498685148693082847594796164028384093538761185465170174876825905058434796591687942859237880197258374575992108335512350291312464114886254797819188187713189170289764339957757021681842831637957728267657040110835718881154136388227311940654727367436198284474499969367020271224977589910819664214895060621973074604877383139203090555962344714018116105511434545177518247002949460495052955674653479412495348809692523246723707226083250005378528149076069210207224077302980502345126279914979044288550165305585647140820198219495494330240352222247465898085886006558431982837481554120645117561368635424206942106315086670825436530139675064233603834557475585300608309892680427228917068664975095256173478383869986944579269003628060885538534508026638853684216354733196226136923894214562541176774296743274514171394954816355542557944701111402688669181797260348827084261710146127498286585627006895566403221543012278258550133194582462977608064132767125013236628358022725740645405435663681117285678782954411872730259531482939453865890108225035974824486078701771213280037504003416376258192481025546952319307411710333504446518730218704444214564620208378378417704519184043084119984267049340352933407681643150798331836810967042583247427329509486310249214874700760390296822693279405400794395910412097762741274215183855165334247335723217175075934236919329521444096543704588667338299375674839047188445214851165379978319674115654322658759836544250466194946095647845003943875885463178924349169924764239913165898340788501144925461555895888349274598067790692769954058028264545193540413988183002601887980632609776689801770979678972788655668726017400080543628425440510262789046730518196258223885148074162645960788568649767694334195856572866330338520853290400466263867817044634601749153594132665949734553576898030117842771724773944239866362245972224602927190234503478934533847558027356877889222967784472163541104105597502795148925235978298511169584809839033352883705345122137358266118136918021082631106664375832949695427555574517178407230879213946291525503353546451363703222211052180340342831411895440044295925507082849141231749841664233865856358338773727157327101275541221652973820322591241239428790635810892497071151780281684321120872076636036851894968593006760920134659713085640878543028901543449612537553469173080357443454367666418582521267251771188845735962129804041068504674263852137556086212898259012587153509609240139339211364450332136540238514776263547152484142688316096506400205516493409784422003869855082738717963932749586992290205505930547002708675021949285171924121070686802847719968483815784257855441066374238428385500632205080281269233608792413835502792443746286792203714168868112199522740136588667849561288626375508629610623186481587326664402130272960791013684105367595716461589807276515034319186585094697673611680345972155536264211832991835786164955841250366055439783036629324808614039263358962473803375848266420753871725463785393409459731695884745903831164708531818476037292245700846818794250149964153806393019299712725405132953214995638834980621694097776261384163421162956943083540718417038147721624004366145799832753541850359152916827968946173144474675911283678605903831972485424430865263107556617181856046921399681300053995860633574391828068122141211594115461199653653794337002750109401563300129247161302801484912399772194343934509641123255551814751784496619874993752148292754164763418537913192415063378634716662294449136547771224769288628919304951990342531856069447824907430009318830366062326712860301107619341373385003153080195901987621379567152779963218741814669272685477680390563635421751354010273291257690702509050677792206043241256128597719261596166885482199706277960511660247707072767006711921054877001900017022095030167773631349344341354532454735443270744545226338973550424929623222741273592062195502451520054487815695506733107666246631496417407783765499590721058367057952311185625828417226484332702563028495023774227746640479609133193109442232444941441905671740916495271919362987887342567509970780341842037488395446534548443712572275604212014365857950044189521672559321307545919239350000571724943994160688593826347715535559975958186376310576778709971939936305492195748229343197481470931273664211405812953267572507952511091107847059401795064697898417853062196410707830774757703512848411179615200311407657519996066602643010457973232990238198214597106116195513496823307516695178606324800995990238049406401002938049119299879617736493115602821072672403200645658551195103535487265378316142202248179279949686972744009721378480559555556794146818208341512206289406227964871851433791732508108455692309726820417235607656250599865598613024561988583812182622802669977405980023175307148958872964551907178938863478926064446900489058597070847326026423175022924089922915429226603567441027147498540464535422359982840768397636340131111434650914692026144569028947324180876310593162966940983517775645454394220273879228789307468634729022446817612189809805184162737767058107245367394722098614078613937484949131349401509750156364095012428322800269133976066482907899481761631442652255087226029298290607094490211949757445875878077479550027172410316936137355135637001225183366467550972474379629153375769155877968564567175081317591811273348599988513650955273624856031732098563145818152727096594439186048835641013322955876130636836471646705044505776636445048566579260972300471527750173108753048253877461899839912285368524675490377315187086571982591163577347461435953037783068051791967997964805583512052545193646419211110994315911860767379375500932054422422046120946797066377591767710507382614960516203763294514747309845186911287514653253710852452100096568373332046565355351346624684965890907850423145509577103254960170943113296994938651280228704912089288915796838497975648081032947888358746017029677006620381066831665752215837109931764339793660250764351166811934612919202589700868288627682467823225894053640835040635104846559361240233588542207549536303950325402029952516198955173993008692030584246893283850483412530239946991360534360762037657761016171655205949163301815673430146038651034365883481606890575793716078193924768592556075055204751112635146828497607505437358595354512994782562925942311604910218643261712349455257488375998988450375391917162206195615115955241779787803248896240869743460378303415927613782684048398344224554749738583068241435567470292267331315101772911744022507285688721382821462598826293158625628899142096054193175530709926881068833115764540195372340375290354817579461287543824381904343957823218879779083845917953041006350958211055178438884915128878357590699281013282325186735185795806841304112339661859535201593358092595517547293330299863636379616611826203275691901598562899909991316177464211234511962605139283724012567985459407286399809570922594242645752050771648850988450613349506162384516729094845668007813687994004640137759019769483930420202981448362275376722448516987939713189565591505604197053037961348973847570391865922538718216651104570060515063769078356538440787968258765601408357887259157726868923568993785983146725535135804802042934718443274946839130425005872137622310207571625333640523673418011521770112932248245812794786892453916940675742227453762930934929715736223080600717284863672271298005378720727809327954840434798937944461197868552505023604039662318976261985541079698782400654195480377738918209902459012978396672373614446813505152357943398089055851212221148036456362669023531783410141734063059490847274738517507056491840806540828518984269220387492998038718536093898792718528124969892104023625978556676167638622525093243931115341668422656307358056025152672380855172248708890690621212343524988983824350101588564517532564663020415355779223588680698513621670313644497690475504009294152935686157404792167129417455064123312740089144853996454604960675379005326839383922533825227380658157340733686395953499446207611804578244556473996789955568599267646887764634312299724804762163062702708670073958226320370822795240959480313561603095963612691090769143406653251401576087974663947825992636363373995178745979373331237138186454769991475815555383685254056690656019639282285002148263358581514451511143200391404701377275483871006950376918539148573506645208028621845952675648635477795259207418900040162034168740154134453172381847673725489802936438893018501534393617256929979843207458181478302121760958731315487717758997060491300792395280898614829566304876277098327718732004663791032979208687153756463975542916206201128631443536135206212069767499717095015897544335801573991767950272693200836307642401972644286061323051804898916762773345936841429149922371718111266745887535437807081721987589088244112287483212195573700161255370670718555692428054656407876553713077837372659119115079885757355359378749753129573077327815870032008095085448286736427346435165045483241262337469463724813330379635692060400343733521753949804302643729190021512135448386145222490308189300309598965884433651589669266139306727630502140262149728323156198543043434571355140622868328283710082130001538787010229699919688662478740456804411770531873005136984368280365329417498610849991381655732659618058042985095776632872968930919813584378577629384330782495056556319601542154096865071450054384278735241489671030529659127163181219629685726789300160158078805091574917924711007369517777992954276793548542531613471537677072853985862535884001765835779812931614622333151432190234542641440246335610293136796702359033174231223695133529834742754215895421782067257747201104805906276749685783408946437085144915609000236506086722175597756626428575267553037811831912416457769951523833628780693777794540770756832625823916147990409791878993918626250710400669454225113475462858792084533912998426238370396249502915500214551602298962318551469706521748600488837797236621123239219182735157074149299485752436909415309909351937876427708904366769833340390288854787971305457718134779326815096935008692404287098612896964251315863615699573618925721055841959748583204765013826877850691909441251320127826666874829871473752768419854053335451841824115723957479187022920770744987272306969325833732705213489004959088847332550352262405226522940639556062227453228839885900177451023208122486772373399099006024936298971045866513441720853149007910302228490827671415231204341691980942184070302955597928793613760700279454211695302375361552856039614414606926793453903571980483050276981317412737303957667760045539939997431043782301658724344201105651176996078826966265794125280979907604632363188491632208946470166238157742114077703052657295130420579873151824518348941207300408746512706405780941642950842235550939756963228987211025346950338220726982302147348347085975877317498455652748368496887663182869253221762902654122944724246332871656004939954008196582556668080614925554778136604122451548395956858463317224678648812828371711642907280384637206884713344951383940148053749372532016732416460508605841556261387719935956621918722279329209734366025807848894586339251440039128293410051244237327342671762370056712487840198917911325260043351876633320724224982480285304130761783622094281743075484597822004573652116007851953173301613272879654469359242384027072886358898404356498523398229176049183059906640441954455477183292187865534035737807534206751304870867314525438064768881691586642114898739537439166868229437315450971558380621967038863536424723442177813653153131736247495629950934053240894293597133994213628329855718414112223810856034301582892656128761534780715066660833197705979375218278176303745185334791966474958409717328885720655600133255344514847929398192988008576822324221387025328670350583018368650727582632635083923860783379993722811624434511468807153122972899146417710770366299199510293491956216746976607704760511021877804919184123196306971568186474453424367213756425496612834144024716211784042337005627738305742847687873381374931408073271282511516309609428914450734326364071430181438341485633210532571421415848552294735793762697761553976806129072820643069677343690021995361205602408013712139030136642210209780720407513256140364705979248255877152775182488311249760651055406196503621611691685715532768349725136378420881728954160791235043613591713685193962059270609071681160561674770847180318483580497699846279560969870936229328737991902825809187998492200000072865466342695870756942062393959194731799109983616602351105432710931300193565911841573540958864355405707084747684161953251306507629823286775885085517176656004001713918044802420355241807888971815578811191876138152160296119791646199581408297100218629705565587616630097507378095018028449694471917139677036991590849249563961263823136764478708761391676192409381476785429813939057476517775055423286589335084698091393822685662562398730277424961427698019084266504348565021254975235501007136770477950827451527662934683158546283592872162591932373670369025018663341021186509341827183489135383280348620056619552308946885007923526826925700678343862633198777584445392175591705345486588560805236917366867234707712020149564328207725196765351269684189425909651942998275806374176346580173054130009020206793019276585004880331114530691984766746550754192319579386092669059404645454483709941748614628614279834761683884911080775774773538725934935528591699897827916166916548256893540445248529370322437662569309106021724859290083880718766063869646322736579397630154967320351551158967159272463472719696306061776423684153673283713607446648882330260637938870497096486194805824934708055637359683947459213990378414273999940696194861859177717472287704656472545167591409548727636424113384114183788759351436413576753195490945673072522592847531018289712091855874067805257453013897239303564719351977367173893979371565221183925311024787077165475137007985506172199288711917527057027097483347116026880751797613490563118715840691814667181951607339876204951150246252557577113745460227857798908530950734420783821204943017389189373696726037699624448269175023565683566657930702810780098258390172794614811646313814456850494257954431836950281573325961795875654364378702719517821268597585767367708187282240049220329286521763092497000698603822960026263288256243456918907248406607707728392476845076118069708356465484460059292073619698025413330740416299409867098980819067243802057045808087495277715852609451223720783344253037658668265478036495426536298430714066171672060600130407209616146701833439688165799602083837595103648366598776919253752945322263891991910771163707636868289823663917614460465874554634608774290570135881315459953499461097181658494036788199783514496121029607191993280918010060812670417127524208334972941820697380554143601508381997487233629503995687304649956107545962762809548236538621704033595736516130067311259147342687997433281737823036250303921339345432075245956354343611767640574963221991309601197536081454551476237086261538068155619677169615636227887590735981395003112436416434442222598769211432666102098983389689196831301193636991523256184059701707400854644388132771135884655898349473313389782583912562051187008497331174599458760745176151734773786565559023584755330382871101840727566418598785874449527555657504497120491961442246332520246224271096603361472811706805841371066608116812155765550447277546229886203169088336969757603800940586841374538338738137589062567700440289365615871376734139164857591469194052024806042902841391361967650524706642570674570471376215210221784065752924447002207832345947729025956229037473596532928915041446597663236577904747289083238887491244412229461864451144834405664981091826026412132180580755018596796912137541691682157367140276694510789503459007201339793395100452991513882472564705580386187283333583835028353274737870367318216628602231014712101917203823251887956304062374913585367363354246019167736114211777251221594541890597645937209322724094250826396114054130640592309304915651124209474975303515555614639815496872844933179080950125724559396436423279360372848043665104457377220480316585720862765627873785164857741811267982588544224188758350255046066256340470532366544113155048302828290374063816820724726344319106880070788569320505562055431713978070205725799479802143518914714102666725876105320676287459075481636513775821594422709806152486870348556379203796279007876956773771424801961395092040969280715927935895718555424996259156351624278199716418721974902696399310331639928692716276764013828919027432940423581927634416374970614233716994667528564315503240856727846363314094949553017367423798503536160485802194610258510287015535328507367811211275663675290063854819018032100341205902456090905292329142366853391464405479165906909651805261575731825013649693376860359248928247695321956924261873694224626164840737640909795520795882535569066358026959970153370696493236404247079240464956246481631278540130850587198438185395797100819512394072784027485064187484699773024294950186747961297673349735270883687900282612310079762361493507796062147876534186391309255684856979879791993631941823032397665635502405270893823419681609787142270330498256551484020615540959210531320289007386744548801609042862550146582631832624115618768958597410249462613110546808766634020379829935437682895276757198165798587583653908887365807204381767007211874692417727226023059425012980170036973613768353377027508883509218748522716055033475919712423606249528693457158111332817458237935279805588336169016320377720813154195592798028713597800053432723680006211486099886019945900346385633517330292847608310318332273215909746598892013512913651606522653808752877288617687076155981436048661837209109067022605263006924137716058053578585684034444259357830013287635866184764758317973324465056652026786445088402629446221034266183032351903177568070869205421437275550173897895926759937217406713320006696030142441063168351142977175585290047040474163945946126470993475068773693926004680497129866419265800520788916698451043681512846715274055331216423246664907489622882824074637650669631080045861900876800942839443772173914790922837961915934711489134875774368552011213735908503041874863649500316595339602178442798320372418395905810537381935267593683723252169199615352402281937426208868633981757046655854682449839022541701787690185360610249365656705674568798417490164314795223372989265936334821622105730476446595083350066149547460100173078464332401572826861214651685767548861802267218674169443855741888960382283326917791672769875475972816001231678463671619277230052133217724316209658273222936690222335942916202230975304576453929802258537580873662889572563420142035258342982218554728582965399227238962477370433008045821252473413430386800450129302698386560700430044609781587993189951137891990692462292380110045830901006998548613587068228305444046944181067750747066705744502396498388911455470775365575368237630355787507474139376523897784209144428257351484997936947880576924606622590135707414089517246161808574590266359949875196029943105503464080592232888864031032205483774942106189709683030391608849112888579007575498620388336367999036611612622316193791588014396742297515407391934748577957495032868406657199436784119166695637179215113472096952548261362074890504861542018728483222944721237991724591763343947112513731333996742683900405975587561574810187311887348759217974361052709433358934121456450790693345404459044889491576419876171036134438170112396375920351471102949009084019570614952267670301525878338640587273003355491383921272774800425632014548721639113416980686397223238328512498174359792591407606462493418260763115504135360344682134749823403619717124886850067106600867866628117244174042870920033782320433962671044947003323842940892841730091350954791617809644025385783973236154269609394733578663418619885089026030421486182070275670188719126840130814483451225658722656591368465811633154935886566174160383163404376097877573872093549102389741471647301663025086309175999369296295547360660295931878561901343820251649079616477942858889621577498310663244466997315821069917290146538599112256996179996075287115568793399955206139889939974701124436008200965601702706726566593053395380281812878395545727926874974578804838241518717554686541905871394040513537347914170104380056167652032726004442812774920022637067425227169643036490675227114114758657735696196182469972902080249233703148663164194994921126954818043329954713337815714087567375952306104188970026471368312091579748662617654210158926389918790556844099591600097249535488369017559748711856898508244643713849450713865033729918653493828740099876807449958462694661877830435469490343645999229828740087218535045719068483412974718030889905349314465839365014034728103113159848587406923805118016510049530837032961543619687987524026540952567367491066745882960178853139431304099744068787543823245963786546781840184579126616898810486213697595972277621946692907325266370695506376853272028780356283791628046555880995758390731064453566320383239691645703734680955348193738290400368632330774716592059623677265074237442465700114627133596111476580580603749608695548759630632074573011490795894522646251520657775918655858006078329331059304050534401576884204108522241729427503228389143279863972158661736733634546889776154274966049830066804399532815537238196404701308527769827755988749493606753202585397141726809384547319284743786880447238697971169375739963086154227955616422451021213485613336373190502432881842411568759839685544876852742895774066988934033555279524167581824682506362740683364365892332665128550116141987857844589553036293180429569616318167112653556123175346661768456171414850509148639276484362126820413759627517649998275510067264911829607102602954132989935134669440399292099668222755119705271210064316792616125668484374908420621411157994294539761265690554564370908670661774589901863002290132472537888087195121276508332710895113880678253376075718873640323096775398442858442483081671703375345065517762115783052196740553946326206283702434643336018284735247649969134774391871445050120971203209800180026429575384165876292893781869115345700394256716747879423990858683165129711253491487959030511912745553112625077523577464476024742230401211329627793653489808834868048210832832407807630931391073814327985511210909058620533543734068489931279307427488444881208190504609073868338748073216862531848138731442897379171432395271022368543187942185208050535741596278565667319405763718256365293482517158999484422211509250087806121339850649402226036812260436976827279659891252525262553541252232429664621581407685430011142243131077188390615218782071916120375020490824315968633378085314225199571595443936392977761103463068104907865855619229922895834832642891914401744460064294806874297210901293575069809796192245403935136809693900916972571739059992415179158551815152951679642302536245359941037777311566763138418759023354796647321410062812430703175150523055813269092576441762584771657383451255399855625735350591712510505428746871022006013327941762301519855293159250849998507144232096025208681236858061614631908191435081660004107552813497904970598184842068211729310523747378795983275049930747079076951226357438034438796064725902134675048288836495805671185725314725049733580565844740675075870866906357737396201997682232647949603705545096222907435217308910209247999969309106420459687549142336952179818269220882292724093755147583533416464724160745435162802374543228182912588469287080362708329595789890779003402417217071644960564015888263022510167456287504727216804496744064429580097646389530336736129250509559344326484302704229147124543899607373307315954426603764573738000901646931344602039156695817786892254981775795902112320280660407033299286425982811155762522104003338605114847254208561778619707473165740752074739115314175316824552722257490609275884424558919679773017973781447374403490802366908329185497542659709528635258357160636116194665376282016310733120793980084458392207456933194185765400287894972880393283468000548092747817372825223695529277505784843600419700568321843097789641421015712914024724502574432895010885208144601602026777544055927154374485844766089601377791708418392378704888035609219520838475675371995863684888164747824204430073085611524736638415499896253833277778526971868782690055672103751547612425702817400318988381668612652492390070480355137271362624826391378997224193112320193194480348987429001361919530031375111977040723284406566020058704697976144437580835781732407176955823644686563756738934554032861111787516415525030694424150001992066696211046937652495028586156272483516757481744180483165845697454888837153143125346275265750036741535203613874994663269265436155753170436721705488956032874960355178884938997026858816547555635930125839325947148409015328325438326426630405223090394137824927645425747303416776415238242640402104658301584715094669277296187400178476077776286937762191526905794407005654391018216375305833590126229768784257145187509050949487234656033524521268015889390225491524397137671972087970101890280619845220525374563264221494905789908869111904705308281601278477095387906208115488716542681964709642915783332286273228977230096899444431645789639827809838533497538641520807231359511596518219529571762565275473817036654255594151277191084879195255615147171950320196807584343358565613225134497813736583439989152522155781005878000073223060402868619100273193494585247017646608337590507948522580283522586225124694038714371175642433564995872195148065878991296533107242426997456342230755223878950469604392981448053751237990342691188503670971630851197829943362083764865652258153899903923372973211965669428311257869887264767231398414083770274595831469953807991327575656085643613098013976934200376701361633241657137575819862619525000808313454922181682645747030511091071820826008009311526211223221098562137786089019943100990541447976220488274190015421918866612220166591631994002231138830143434185218670636717643562179840960773688059436645429863724687068835215676080128489325784268255037618814602531574378500699551396596879175765727307524782567645028637925397484515609621024723481811219347915894475872169757743963851223519915676563472290578257441569174809586416877430279282294593134107696097811624165325001324277585762017646985476415662597555451785432157983534497599898094831555272354987753665094012603269288446004513013442763243356830153652319950629442724296102733480273307506086666737679877659316593479423235536409250132542448743773724205409073120400468879569259151069940845911091136374047375542664735928831676690092967070674790394305988054681836632801814697012009310168340733403404093877599048497039247183622054091799582471215303308484674106493207125925829881283735788046381628879685474378011761083988712639690031248595271374307738852632668817745648255501963514835387232040642740970824982128132318630309990478795138567098401076293703245202326686676667279215996791629688912468042279719459935272523767228711103429060298987702160687601670725871540210757952500724599995397370486318127386469931145964788053222680667261469979665195560120495358569321260695414699699418541146624366759705070203349622650214376068929972807077246595706216746814951934368913880226302755715303103017408148508436104509641084447250249829837760465987199739001200122198170919028414429818143887750841075718532858115301396386754856376392294182834529287690335799040775433680316819541008551823853538096768997890843359940106298069421745623328720138336584746497039158303255703436116029844170612778486195210447237797262151057618346087889185970395785377498824528168155028122416940469114864140772890153295664750851134638106116395530396153360016435371116643256225305927315898522667555741882807856108492757594086504161636379111559174928213241600109221107696944986737919722626482246350990186435627948529448393369680773613530269060723367000670700486713587698031914574147521246320685671168299293657360759770762431109706504328530636407166114843856609181448109856987311834069435081990462942963654074147147386827882075424652838545768792501906996724494924411998720806397994279606654354292924205458879539114360315127944490765592307522034227266689486439178458426217065770822400828324956891160450224435098758016187744911962495149728190642072756614016825165799733197060200217306672687540016948406185635210396324797239399237076915070997728586673921656083126823754298705074693897223574715935433192481246573392691186359481773003103544163464787383074959151723977912141201686960240926393834783601597314657063948149403101498230274594578997105071842923850450888245613556713574253721193285551538810752571009472848417587368656726530715777409862602077094635399201283121436641906510230859954551343469869335901038892098399092190768759159295696232492406401950389661636611466021123484168627435621369161130195100088157551623527898879585980374740822518904743574001339237253052306875244154395000327472225011648873976682323610314146930481563982840077040366775364209110048274311060253686151775531156871076985198762628311178618887457474837750717398520453677160775678065957008437403041304660712851523189672367158150018647998424779435052712043161421720102417966908550861536986195982998187830954983766712118606978945420456366715330447436142240498572991487173135988437325300800445605576340217660174740439035011956915126905714784216294811442413425636907406565936917233148593277846780773504246812673379771677695730854894315511650165157247899387283032369681489174404808294913545091921249396166342996148101396268914258136866932437584424813679885088328572100874232261940515981535918288903025119988484156101083668633579418291388995371493287795141807417671579880442093877156742544030334160995768421543885615084957308404722540208464327761020582279926131714875331077701842974408848802731524170205904431610733257151422363544350910422735139878097444296778034436564354299263746325614971710650093051992290992140736028588684801702048252476893816862855556739962042767175038597931906556534593220516752339424283940640901088603310061266880841331562273448265671400771048841460163771970725702439456817380291520287838593206881241227042450096953231272243999720616760835086248598480846874689033431514673356960824440410367136436612845762065857252383010961070366012982157887024430666151435536191593110574795639201019133042024244065689534708543092349025665257763147187870091687615419458223254386202352170288046467998986822028831893094372623614873999641715051587869672593805600694729316421799906097634247060835376433472415087866643038601070705709041989692700012330438849236930500779972424577550461504695580100493380152024418052151540527659978420731629649454532433051812948303466766157058374343635579238619646008183141180363235975527173810970814658751734515516317054363973274137291046797444922767969036148342246659285734547748613505050354187961181910552033850421613030092032778314326670366487041151215290201489093223077648679128613543975469378901967334660072513432688148508589041243002393539808822206630634763502386076076768888574754272702884361241556962938831118310689868738039506642980154686261132061621945571740545985872242343877854553994974079107919659321919536393735487745298428811240357303123631296692558327804578311132982672862521928962060550094003812012425397394427726391414754643499742334362459788130976054078426193014601556344283803008098749668886653392485749999907097778337930915885439890856263925578075106445821293340676466273890046163170861252292599259258599099487138090029135558502208809807193870532047147365383327938381016269084372788307646742397799013268491310984832711841167504757140627362472969589005558335359169393558102737687426225474966244546923298643555486605511933757084587445717274246682675250408103440727933790186034238499661140152380074673428561044108828308333835543213858514180510219085085852213532388038458936076275335410948875877861545783972963140190297438019076876707994695263407217299886248769252056941294055406031415273660815943574643495125766946565866219474177890906452526671987635211084524901405080702349294052311574914356648965357321300894660107241858303667259229485420182745058697063060565848776425073404062709156360595826673967267707983157289657055294407752523378001844728344884443787150627381475985400191360977651022355583057183720705097330286185473941576725788235055680138051383916973693221642339108579783741146599765908350571300178291733480637353016969921893190240261265526515290639257316647414822780348197597989925082520879724008801301884365965699938566128821350479878317348570985763882825495535902735148119277222073673498391539041134923467557640608328187544333147672745999791422861990315583643007291550892367182321149552018836965452123763565743057405544396890257609592124402203267982586594324753530346638080865595377921576259150704821120318368990964446863984764409349084633469208735016415085225154238795311150014156568561381750290044166270469902660508792419920912090246390752183406969218108832587521897387536753782075391194525400521671395270482269689367964949617815047369877839556410024590549727891002138144990777753088364924777737414206075086035646414139092847140684075201764377128175770807607622809538825054068809951115724330574616765903855447709478765664644489743452497221717694348525058311199978087542390912678782849107477758214386014185804302404565545239896077117640233797508119993339151039479878169313499314698291569823163051955539058688417467027684312599089826477517010490377942100093663381231508603329879509436539118688051219643866099345672174171424074680240077544919082061916772664669654087212728067873702026534976165920932292693925134274504256739081300200807961437738030446588238165359285604908573258151182594784185997527875558466885608410959467271836352537115199059082536530282429715940871584457907772383225538422075695476888687078598089193133357488090345681990889150319463998638482763345438995156142761271978913986331949459407545118967487162881618981190673499883955168602157229796459544715309262606382474337985814921035925491210389929360688891433263794678339097032314019496718500743937762076786515741548460252622920095302544593934934992187413325512992530200261042772282482727498398723055878568422780861423904703715182900215688673972773411229864493660622207862791654569644803070708757909709287145605422577914110764695805458396572106953446910211645579539348540866609739494355661840348738862165846343687810795071059213425673195689216727043773374578930002459155218726430487993172381041161795409172532323933705768177695431871359456789151583259779672497922529414321917353527868048548276805694045743911861568986648773063821149306108238579793968343657815258809324856889652527004982194904771767107955996086444851817076914697178278259495811216376804428407444103965054826598290063655039873316274162001188261029851772157115060130389671088770128282074323699497072913813387427989413340702204278432005207470229893665295723341956926516812918678195846480693490557205133064562652610428271730169587026873985917921313040875042100553427881082345077029930819730092432546381334944839458342559056793915125904610406415950682840880382893655966043820056768977695657092962315643191151247327018596173897358066273438492910576838919939784273351585031477251634544423996853330756129214925932684624840007132931005903031517870390681872088571769220762587527980055935438121811504892590139940555065700448977324584594296138018265571577656356889740050199860055320441992052404745142579725424726557982672611931836823785092068385272834754021503904606982056260289305097993836623576511198700631168184924400869880887514716213933358994221466188703456957922925963966421968691475914641935920166463987419866838303663077314857049178066250021589510749676924053159615152767340720890992262156321219830706777542741961328706398471050693669170405136283871734137325265948906371782388587611355027426261006103633375748233758448956807683838810336318298690383421789753714549418221209468711182250121875057724080814839900750782446397369197160996593613184871168383199058651308999098737990727744638420567491669311538068125657414414499676624844156768959401713149836042331096107251245627816736544965676535899009863946982976200568216524832542746239203431592413276639878508679732744583582377191898209533265263163782407591685483995547522527678876395257330104671359365264812217181011809231923018774426508177444266786394955961987538354627051527225722832112074348707385830823957041407464325689201126105042588555779131523691288407074731114526553493110887113441870179539357505179000276733532654739158881144672415839073804198952399885134421943613443140927875275531318990201321109471693176739225021445545693441330670141582513305496697553585580196489386574208253163912602956430636797430155500077150045645901284533504199889038764271913247013946682014034779891623128987249618215250226767248530213891972457441322025824883803681580565821024676525996911521472255459761294906849627886933194032075049558831516642005168741086703203674442012478633239054008180687498645805040471311912312113260956303665571897135005864179726883324251168587455991102445097634066443388543782311118559318917850974751743590735631040777410391300141322070284348699101237453445215385167315107050324826133396774837546058211639765782845045046740658074028806123950446955377893438927627378704833959971445102672307219852414198635548497276367085857255738755290383051655608129824403837875490181986508938945301305414469526635016888668218750199266330734742845760794501291020214138609611163542608402567246997786009762759206205998288727756293162749405655651059029008698070343404302489443776724888427683316057499968328102929327070824756250606307704272187040681360448504988993946362756044849781362400551559013344816592590993927620126645451216019943594275672370250521840109808815880826507559358984514651575034911150983417937943889723821197277161767866954357361603990792846517283575665044421984404609891499291030277501577460733481324668586285428859623440648225340562013997278854381093529718546439731820495164483170375695763080712814327039030103643769695130738323098762333409443097963922410778060362831459077562875692097812462719753169550487202525887371281447611014720715460607524532580471314401857196498509033301785657424838768733376255754066516444599972210007473928998928627698509119694645214745294520675977797223899649955682752876204771255973522904041443761725849453900918293490490477887270353351689282417959118206111263421587203365171698778822069527842941869583085931413333133778694167434906153606384084309594821012176995844966342632058431209891687141406414972675539751986262783549172202535108288627174147735332836667346211715123576504189668287216532334440325412624948528281544044512569885376635553236908897652921600310856400730840690798520337867136736545078561438538580548866234477402311997670964303859895941207481609815765045529063593459917737604018264277502462815977786999354109149482427960269683903044640329375840002918198705261445264920987093506517977495732821420217483534706606709476860380590324639303740126308474536063518271197021349882579301117527742044697869999294109687580016204329599701273890041144416663129834979708367926436641573929831325275115090790366090319287395702348327324822865966066767338872503653717600336575010851727783405647297413617783824603191405278973593600780263905751786607795699715610429817089830511755661750591972071524108422368472132429209741185754467729502263929462322144024966834842903556022425566260084428625982998067938158908452461207459271045609193397691745923834934913118173564303954492097971509738083937894251553903465301328196284575240261920612288045339971113160725524716173054793358786932553607935148117419563914512754018160706846506945235255425147465344812894620273921824685780903861558568370357109475441327912509559048868620711684190597587780042708269345007858336477501662360063862368394416146073398653684046734856086861005564794906548637949461838247722720036869505133760930670285076855672576132685256101073026112541005785460016206007438402541631996072247615539371120930974562331479754607286976764367764023205211514006123381633714382129729480879474216092050900344314260625344773615783760766501462931418398585686775924660886933098517505117655702174236789482408367705125093175272250857265442757981930528217421685629109376665821911448802933078365121046586589138026104464393189968643546324315212012739309787087248145026921244893681222484545186941649692518597931066874157343169342404504367141151264851954588524870432016760697333034045717630429076649805048138314570045133055337269335226877589263425340679525055976030855237375600036765070632582291297449714940743619266384337919167158876568450265607935349682967029860907842789932104315966056324548145792737235330707987226398007706080800493232236335249709467086972464828358276294840313092933819890363105373577784572505626295497939502817321619849693633862112880314980718534100497983414032182781406069827880935862672282680624965645617334775517950279953844118159440236548679200529838360129138202149912724958070839921203201626251396966311405882896842330208856764544762557183989559140815033865081183293507986726166117689721129499891638006307336901572869203197848892486081432385391816391939054504672087834546587728244528401904657236311250492984655815851562142784315528265557575314808513673839357928013427563593540446160945649949506713842516876297107845575970111392917671380013501322374179749722250926810474477943594256259853485616375396306201774189475300610652628451078324321604475122752292412035311594349826227457011548993239325957277539419346917442040942270840878833508514075266593569604689922544819357637918917859533557127195257012565857644200447581206433790248058704951054698456678566530952423611763660421743437788261067210343569779375352177418930863636943550316712007776754466297563339904578051424311477347893109661841588149396598471758547391156768107464338410866756646633495124932384375417425232936923820696475098182783680280976642690176109622222815787335265056351965412119067717587715398049139277434172227260157283955396478865322596066526543394189343137657071585222170021079357990758410501209719504314627189815815895472573426019134666379867130889298646126566806035601229275223082503086657347707477853869990005834825008721383785424971420602004648097483478525178747388979215759392043038256392150408077121571859450439255558886091305760163083874822928331576383854010283905956867937814293175154333531699694458181774312076451402586063723982444580811899392806115928581853166316720525238128693109488633687936412218606556026592002156907160759078601787862260013690109107775867002325683125191554858844122848254881175970811698287697145695828339447329524680873528115663790697081172379231515347725772361013795060172325031723613771427739249971168999208297304416762905808303004427199003606842226366925572368494605921162730189713808243032559587884256517033743183668376785145312906276502392077576849150402644084261539359102806945928830419452273518950611397792309283700700175247479548697202735567116259236761412421741376687457797173946379149158164314409495869903711470759933164609176037930528837354654293918197121320089460934871288337707174434517178748090460573600406376449387829164791729244420430524496244746121519778838904541652213958402009482030007394627634245141322696967930993696404542279661181111265315080592389511708290906838461530786138619663806435318713423048913104254502322470511717098296177307145948181855927914904590240716961920308223738522404341971262435994538406275042436041227800365607142868657491461986371329548776666383308635201421445537775263905538881871064478143512026900198127578606765513201423787888097639181866459652710827460681820622916804146688979604469006641380099666333181532671934634398019457247620277016425838185124646385802262694128113897793046081529824950536831482456683740575317102753951300835606714244107034666586960929142315029264220519117989558550930349420935710258991330941864650137517420176939447031304235925788067257365726827873889673749867815563395686660746986325965067143933892968019587008301108398515621053042869011405740331024802739602440623509629728409061154696177699998578273472021146882523683727635771374353654622611928985389571713863134245983328301503831186830253723190622252244694424167699662797095838135375702440550229173432207272410429641638654406302714136509160756128475410640746080351157638802906267504169272605611732625881215960114649802582253437150335495547428767257507703738180733619346977497798242977631365358715634525649467158668738350979799696639630328087791430752892487673022386971380172650960405926117148980317748278885087441270313704417825055685916036118551633348270245990759914324037844468428854942733516368905313117281207511485428103883829024213313742750151187533045828745796992577819456131949268875376646354107948245800854279141940619340062148419212156024659931526102869128393265018013126274460029173205417398640256794441713218101440426418058982437873513212521277800143431928511011087013415045038409227733458798091552146614008461846935463909239341056189285926170176680164451578916733917866389454321447528893786289979927388782396714286415151050734684952035249926328815235481451680854593130051834723055238105601362926635687623246745820641848006807271395502268966943401288993692349901234593708345364855238142060662841673376710626607517088454667487790946105419338871858562006597040877786762306455674801817718944417206437438581526501771108892087586620431075981008322302590905112541022749847278796797959466335906285890519306807396696920552825730300882871805188962612653046052596147781668413491025611229785750242794331404281478461117897631274662440396713409033054264290354536698540093724206146159403367758607952582826222374679616626174945958285683829127536543516712287009149686870420762900487175104009949064032154711597626916276257753924365700235398843712386722593765094577114843660441586047078874989568194534418350264130968520586183999774526497813858785801956425000295242830206201909317363668397011404207889321718102391116223273197861376950298998351779108618213087257244086025492009441029578540496071981235355817827959656146782073607730965180591917012070133859527168362854846687263244506869952063390280961566893082573769538093799608594443414826906689000475133537566956220255179779044377654650476252867611701498090074982461052461352595521287008158784974936246768259791437338211342083861123999060768119612095235902562674396153541804732561714424511187362850465546438611161767453114864417318296032468288231297545474546784204560341691584471264249818875800686673922514330468359835283293595626291129785137909803015596678270073155990976416880572231862583800367168632000935903163550931402820136007705591818006378087673939087144205965086836556036515510492410709298805519417841845930342928432358776683503846294472648306014630119147807086580665778010650793269899144558912599501959022055292159589287463822224331886390448233270451382125056522124911434135332482430620254238475382377850424939364172823869368131107493741598093850457283957780800640255560633008817918280191454572119114649516800836307067950489615842491115613491707544613250298618903113917514337406419435720095920848464770675517467555226330391110964732279128261725872817472766365361364242752882148499754792139227174933031066730004651431696636611730884334795432795098066512679801714286361478002781541483671261443088493184074668638300867318074919314271138151043422225094941145932185362781718548475048996818420069290597051565784321295234588118629945080131314527791005587295557553437328355341161600393674546973292148320170641891144814622885597227300225537292363780774068386129130516993599414469773636216104933924092447652906190212028853988791617483718212200281024187730908856217676110982913103557396374626206460537109734098235812521586494064590946947299884477622094592393761109226092184285593907384941186994544786241912258227061310574957497417138374093426816557391737879241272592078099285874420838467474817357160835867889972752777641288075518826887266104897149740099948895975759073229836001174373146969478418273191040268505117208718131699798571899433952268644138458562883765168354915884945106287369778839847298469116841112521500058012974817182055998700642458428602339402341260613725022242209680795512141137936539703637431912306675101704395086604380884448392949663333482763381084246822853683678638105889765694033798056891411894660091819322379575747484241895933089356414975342579147275320398862515845333278856303196409587296220677582440194469641380060485442931358445988237748210209515827278188916313488181629722724091815546688007652254210196800565330169561391958049017650295471386721703382815003874663570023485408694750328732782438557668929109820804074661718556087689302646969790534954329015329360134770120686562823028687969079723327864172044320234741689921144081937749674916603979954128795776981211874318576966568455021326789595554992296909386759364065070183093795552073567360979965320597107754631306939015712668803354096613918644095989651246746910947672228116498683625934855477512934320766637512836466798742854775659866906581257639832676150939672391457402748596879761212368913609791085943520287075302641043661627744288127875045584383303695938208413196165156696154692464150789382140735450196818736210087504803507229113316969178518658543195816503104829403267864309944231644447637496968808882348860210991519304464976963869362924436383252883736599849284807493277286352471058574853461801180115701492018578708485929963718634191694926255794946115563052669569270098779291285698290358205615291855294619903946259858597227897207971065578056737596936074477907462750813999862111368157588935379812245083974132745784391506013587983161386459858136446963296889843095429996169256833608805012735311464978512330239877110238537575551248412341182332773688337218143938758772485643068112577927935691605595769976218651227276436456167235742032331859089148426920170696586690481566120746583506480998512022303048962208473748406105803874289247988163206730800489702068746581660244968973561360899977947091049704472815766809793276760912161752559053926138446046662133176791629264344675363702882081144444648279967382577956849102718363822919231469248167598943022321040472427347407839964970858622933015562256132619648770489804181242277125298074194518694833576544557399827432356195005273122801810029799975121841866674396989755537697831513926365133924854549493005400428647837636790388461959565793487972756995321683289774124572633872257426020712547180445118830657802655325691452943649090643438049393912698859942735279334994382641018438570034863869054542065673561705202758256870953109206408138465956017251612057935737340774521905630415552713838347823308011263395141530400936937292089193272083449435783985980890836605336206679230435388237565461871756126536436062379904436027300506657243883092149822209435423420122470400729455105341913692768449377752116831474122335829505650432804414939455601694134354145335845562117337993475467054070688640623854438022456855753787897270127259786557585270060094804583150348889616906170054730302945766474119003199013900647948551686545795259745266439781685122248903654573419151070872407226529209288428815011240737816433990187153631463846564494495910621337988790532056533027774974465314879194310723154710229406555845341895630287213143308551112218670305386198246306672118967187584185160056031692584864456340305790833722406366414381687857197587286275951998177403578009417871606733716495992786315342154588811693194494588398308707376904029413952954276735854257055267684192117333734149429237143251968933588435098418631978794965011110363606087618994503135108586562313859483995961756545981932333522946917614157245767005024270365275464601254252893382680581737363898988846459679279504000431620477623902650910685942103964716871682012026499593236329956644102150511801172282444213250123435063841254378924900959626751774517116289137583393388178660099464294150937264988787878480593716738217465624554714893906548573783323994168421421687262127914555951585694153409507952267342081734785271147457054386945402436649412438544488008787471053888322494661334751477299911955464372272568781992991840122888674254106089608537329016721821870785280145121562709358094812828849343919417700575832258319527752331121528872219287850938440143928811768762537724151797740205359203454073193069175927302218474154964148059807315803777121486846189050426224146666669859071298781611543225065365599629118966267598558013066645686717006266913893783183118664799621044612346551450471705634510871360426140457135255474879152558558793892413501615513886874635925261726213188390298735137819434778759348681371833627291522987240111919970832624884451955578405127141126544257339647303932740817174255747987956841061987336978799248272558321038683038726460291059139400643289105524084084170316507881641536022807451162425475202813071187161935151869745496333608975050275898453662402365085418000854065834096866911010860316200156797735699015368887409069843795424215729138428132568316168981234215837240414816286469889681185346384156331051780493966426250463297532024735420418304035788767170598917192390300311158496622061945918976884974969912781738438517541828206846597147805384806341355320272305345394225122813812077676114792421209958522173057390360459359535416869837074535314084358017665006912907672283823863878735276869247917144987226660935092821728724073706050917604686301699229918508857964659989170893039230870371108944090476431433926872412799933936675287757005980822390980177196257325807534420869358902277317139797495401102444023301333601980014811669012305463552065691383032792522077959175568679070915354253117783415342632082045954970160701360966045587767737574298498270835827362662321422071645723351293303000560845342853134205302074478052580072610514954721714492765404276215634480361099678387260490451202662447771864997314842129737990176712229193501159304131523910906224269733771121090717125698780943920596003239949468083159770303629489922621639184086855584848047721329613644650126296373468740643880556789455063656492598529703513495917347014773367975048635717333702090962696379414710912902161079581797553149631812969935085982940291448822428526499920450181832736384805611242334884907408518727630193804487841962646444666824442597474095196025183380488987201669937907772010523488382071261741237283703414124577561294968765421423930849903712854945344325332142801980680849123584664690018669818116762084588179560313616096815460979975607135000873918540227533856346204530807711212948942858286740803769108389778960014934821042798618149613274869420195866596395035343774884465663279531203826285917999209599456238844016512286081046518186639146167733444519156656605189348829151155863895851372750707964344870459796267498386088063500279771021044350007621811145674224031282133696889687655184002971685567927067816961500775104523324248749952159022742276942476858689481669266711110881327489115891692097998335997864127499981495305604262586905239930539685750151845884028759813215926327911834665818705117442058604150492751253693471901409712309508158150722006538208241792450741524020584895861194609697026138217187754802974545036426728915122329493806725682027821600396165034193412106185665526180255363189841993120707149682958312841094632756763901771064226164874357978525683929793374364632623950665970645210522909271468519761214699666795441470918074515450999478709828959869466915100588516518719032817201506734077139264947749743324161224442637850207710280782809618294891663295087308820258994131827315469195177512916763680578274718538428372008039544931631362478991406086206416447749389552329476505661535172334638683589152081588518339198914573200765561700100000875439232416707152130504584524645099114751887548087431775188069237754937885283635525903244365116414624250130638101740967289406078575274764986847379408843473788688351269514260062159109631085712903922085706008808739098786164902666641808781311435154107465029190812370396857003390096347462409593977999603969774617041388089390798366487925546952367692122323154558779010213053778736138728586745246672720696515706482734355978545559810254485643698715478261944119285575648331029101485365008958935502432758433150207181256641463041924493991777024682897751451563872122561540144088186790385562341071950904750748564433365206354527445318266631612139382981319227870460104581518549304556356525214221905495524904296775203616083831685989401344943584160803378974226266672917904180625140076722713794986523729530898973843245220547021401535449673228250118107051874856889634005763116335376095342758637052049008336947897411994753344210705440315952903002651046752494530601284395072101523190131424402370882033447248300234157815454052582287165310064551197846919602039735406470729813505294588782496021157608328066305134672626940631030154018579764325598601771892910130745822795207486296572053768310855214189750549891991072358078130918343370043078287501028610834992623943465155215381659798782116390773776311162347872748318889208667025796291055810460575038976671797186155439232299097735971130758749276174553763367822405916748780332787309652834068864340550236780649889596474807888646065625423291082465211254675258166824923810062843971001519899055309875495105836009837882853928697002811570651373551294976387063609175731644386279947473355949154098643429741766511594559068977967506379153242380959685503767323165322541113957070553498982121477877193321428751283259372047062469258809246296957206732600716403806621591276690105781899424563999369611965199638897716590791343063816644673902539433954669179863930552617522347030193432930972475348375476445198882615064886122438671244980228844506889395663908649012848897904435724831654392220379370434072940879021572024627069059894151591151208529593828460935536200764088848797376031586912180815013601482539123167851587286777193356388877976746016033229325939283643306407929387615522715993532959968070292453058640445095482872067206965636602833347318975357566589264982232484837051333775182984534770873538067174180824476704803132422810262442111886493709728103262178599969666579303320250692935498749647013359731144932767033628845928687357299319641916067144959091770273008420707583969671150288354616694364942410239724653553858081725201566360609289340850122029638413218092446242708405768345602986778284904662900237399785313622037468865322414208372182845823142860216194460386222500131853698531701376567978966211018398712617584823186641776472017817077142819986846298533527168009610727954433433101418840606224832020160928515442886370416583780397763504224554194383982716343674871545954128030074448215079093464369265479523690345928180787726443377380123969562735908796641390309250779657505348227851389004236804255553034566802115857717046159598973441279180083959010017882538073065566818981138114583803000337440415437327198678833028962244155226041200952549788801134755388190768236541340026866765384542932193988744788738048711439263023226998908498149552516339132267523692415066321348369417547403177188366603773817851935128154208990622705553794980101879963476222292532416607212739051745658309029335181552001888009997131679022978700196837479630325481535409202107946689853362736947919025845279723954148999565713526994473637150245774980348489102553482445873102723287767489594340028753195486662690744994611109567776819909377704768200449612992047233025257518970241574334369274375979468826735205635552943971092600893972267258504708351279185640837557120701663729200636314581594458180383341528238779488116852738291342684157141700253454922061735020501880580508655812641462862534025940135114852630412278194385375584002867587710412117507303307668431704217139422308098790829863726262852673712391290355820805821497805170919439775447646151021320087918141020206111123389286793258307138609397992400267173907624991954823567639714171508423094210906970949281376360601382842222286057249363677905618058624921987718211741739961138928048763095229243800067401890124746685626752916509890063966410982035042018080470122581948288479785988590982048223075571608635243455015067468190698744246684120165394148126470055122109715080770075540800853461853001354100187191005717476962098562196767781807266516720140818348804085858038296363941682995905530525950139629279604157280198416343439131067878816574165870659101003019980286057517966719569605613200681223327199254052639159474691690606533924178218926394473080195309657591111998525299515451184487788598328909954700526722674088842168970458554569977612649152677624266183272931556057228100480107327996169738836699072066036110830661268535447658789367953892809705412476929010567033641289631621299719511095986855076227525098709722888286157304502862058385084666722364747613175997307565816972336912923703071202350536304119014638812200514252035796149000717351637222308930190554037580540421011133641670942830639250173553152040308384784787323672136996534624120545167410402354635730933265680614906695431054852108179935479080398797221520093045125666732790236851641456901422524458433257313774797921436452766943995298481085770714913457094818512454239045815311717368612291983449184399103867745117362032687851963460005984303151837738291104909863281585906599272894015732881745077959761130489271255812554909301866005116330451721471713743666380495001325287209283708329247731925170577518540629862862169864515960308594234494125215205535838936808972610530785753116290403761527761965231853033547727995143704856889007949413728442979973468791869648037766992605395131988502000094928900751449855360755921477167205114385288486028868581646857475377144073976981551042314865928031451378519829895232258234833994043725378674712945437182633323857078903133498094039647479221387222962326671351792556697291726798411991420782728791298369739180687031980331416141529676805587283856301418772936231877173910991062837933050497787330825211460732182884251346927799475879189042195883108628384977824303228999294462122477353829456542145207117779487928786171169314383042428182705426842684560735329903582357698555108646079070338005613576111859197536619721690311309692148864097887902130429106480375984345242803402631737511532815541129139296045830277291931327749452331045359617618336052285996235604728493719551928205243186225222243592547850808220565107292252877284713492330406403558803623331768437046761547406237593851858122044557230937266550327841327502412109955571734309522446220000924201208151034328321490212477282521077151110600538205913239978627361742349191609325372937251129912324092701858592062478188991889742149643824566660779088239192855544459370061062575573527352578807610788748114690157671964762200594901280721679446209606894111986260833464650381660794300943750444018452740868878821245591387595815748487417528311544140734100896566639193080675465926935268681188788624330289101318269510239795460461736625567949820395445644302762461211829315310811367099983004062927528028581890075896434109132819569544464900541185156166845302226540256826604511167123241491822483715268067557683935722248837321905420733553226211644259979170876197981336453253216808833780374583704775309846615757189058042960004047969512045309308190070590833546076156265975049073344336284106918286566500024971550805393240637850354971250962643297038837785291042116851167965571614074277304102437860889887190520394182105287508242314825503062381883082389015897628909488189591902488707364609639938304747760439654530954887546755680723663228620543505260322124669786056516157231779766903055228412021612103918622868854963868116150641838931347632775039393802565220277386245126102169531787884465567450515014379778093875877921814229002304291156539708360095130688322714917024549057871205028482180870330549157518573549852947705978699475305056220968748582195223192947558964171526428280515860518560883748246348833125170750185953052496385041526770985821356555366043484162989753911298512100971374393899256783682363669834664663011118187062184007879082459277777246866418463915081432346661162220667566654861965612458460970182471760012474133428032450994187859832442915803131084711456862837904794723129466595128936558410136122047388540565455808204497858102011694493442186998023901625724114322925020142639324002653702670020570183624786618070343825652496595174728133179796539648036710135924340347217480128834301865695600894870293104749286962080169922787779124987955729774711799970778101877023362432693570543977368421266469966336434508668021122319602807277862716388968365629920231204642833777055025580352769908826928607764942923104927961421736218578138014770246643799814134859988205462444670915855659106238802572973014316241768702841955779795630398014663730827527377391410780402500703645182139961430392095225738584147191964989062153342578738094729833032505109208347638047500971541357443483969807533366446816916026035328984055177419170246827171965296373233218093876685751691360434901483119878336256791426819193142159196605875090598465000767265444706570586755288778759165795655675237860487571975992515906051358759813575010085869740662834151253602675149898800376464121234684638263767499753254078457318934715287919377837498525836289571414579829052276585299195607706117949599291214126775656526181058976605748192043973335706503497608758810594029805797625360712427520190910925126016537749517383134719147278663676238978840954596616012497716099595988446868197697275158269317696233447877346077198901387236044655927061678946162178760363545491016054630800887337974563892624585680441355727678325182587830817105106570019644632547654929327602494138199425335822020865514972439843267066282920838642509083079817413599637917883111722687701430279079722409203545168233634924535095279954918105191832557269767909280564496113586759621511585770685952275076624559948585712283326471017545585585736745901955695847148201749875445538525518802798808834045423122082952618253040419079791554247525213659114106745768107611763553406574995484060758683784585440207375849409642694165742127303600333995366718861211292418643487431532742777090205194503513920433800150016582240833488102263213816598417304843798923077068890872995116991434290967404999527694777409781056237013748566150257177240112310758343471364482995352920306443679637154172708355933532736335261332520649929336816506046197844056228593248170762250192526824363378543694590294572084896132639659598709197870628204221527848813013279136382468133427187276431754931017989195902912056598386411544315992141923074153415610703402819301815610728815042217705354047614074395766433937616128906003596615415402804581155526092213218206102571110218120934197370464976324969200971184274786733890999829561916783951314201535250453643666768073512206565863710620129095693677831942836505544168031822276376112105703736040261503789519274885150137840959559092546567212142212962103193843845386879522494734788557294679742446257762756860881022803384198029916203349811009090581734445922644508925385735480572844154207129936488275035784536746104431218973230670121366732813815712859549651025160803598543083597767569404127901771950776835262195468707987649361218913982900604150324993710438908473412788723833882626132513912224764543067602361731658630703783379538651384815271550195984258191286163934964689691939185200297429241106642652603998765074504850205456040491605918111056963416451053959930161568443680816474266145562769097757419103375063772557009547763227659278225478348753769951001449777666371449217749806307026057325908520641811548961216518668893259269952400899580651089157746666783930722842580437591325857132929816844579933216374287872265115281605297738538723506554620971575993623313151271200883772862435397655007460142959366012375996240852837544366685007251605168410732751673024486075605725387640661710934336904843390471649558307687553084943300636740184182937947332759241812692914790680228110026536273711853366534330241769393809963941478186781292690055167974484669498942896956275179523265791777987698753567442892100637263401405835295701190083895741795971875934787776713435219005783878493775094798358411407765265347118439624687971580634625870174261917505805866930828833270195098723696643767256723943973385522535964059361664992247948191064028315020259974446167828096591282212808558177668550747509286152413599325379645016314994385070066699605080172862444620326083481720203999744686337497507812544814284731998047607977345162876670022360412718605410387323905661351296345628348254363217897813998653626076672137089638655492567455150175152170104323467806905553930092341008152932675068374679679630398587004163494363262422599275432435811693684909815223079910746157495446552887158415748338267093065214372200267256931736175503668964263463751101412584144369907386620588997572595970140871600643567514302809389274963501530235881058924195425053583042714197953136933288559543327779475301165935387967184705417814460220554099347153455424408911837826235000755509761612195917351538651747950364558908878953573072937555402151740378826190330302379945175630933975941687221596227712858330448316246555440798343428755685069939906929991668893020104341272988477451740915707449582873897477379196083526186610837534053099688704512964808194831011581996641227511591976835964008931523172559209651033012605131608347516414587659658279914995358567126206873774539341422866433295398271690896494357660219562379635547466510189312192803415413432056752693957412836599370792399819422385284968441033130594512287303844440671076757423747060145828565941442523324499926140821963500093457792714487596518636355757580873681390618130617138703461184992956928201193619785058762877891120685308804339335972688465105935763187772208845322039769454259717306616248208841720446083188971187174749263767295022500548901513790657698013051969325218617313913586839686973818798612452274099724677758767250555072558689144902052664590713481059818419623990308056489527258411262747610343271896577257714557946881757079076899300715719118655923156020272009440012839318467065818455236914278830353386797395027255045448194168772362395954146432538123239214110918506053476275909791926803739328132729652328701493233200118431738854506089806307256097607896863648212876080591897109373478068613835066273943637205816190660340373599949341743958669429765306549233661129530867038723974583379110000784266581466707536199376404328498137627613074860963360716611986091236487694702528299362785007745830034561708039966182655411493517816898166577578325129040319439724768128299306794446572998018210810617856669490146999938570164210200723440437268575087690880600958718442645376776482276870620619259237674282576928431193105135097792958617791256461162581842418254813939933500603313047552251616358523289284784250569254438134238515928637592624123874545386666536963540826366533974384670205677660755054137607352371855384987494091018658653757631811485612461004949382879243755563908020167139709263755836907496282645707595980455985345812517278351961481908633599265714796821514470961056800237587183551804771512568397708940943057420121585523137987467132829187803345297363452472161785259829945263769935416557389357953316799217021734194710235560678090007756143492586978850291673523636118220444322189837524513791288169089679706380468320539891385148371166837079368618261340730157328890154768647869686531042371907351871286346923182481928546363368335649673930640285565528609789860601811200600074391328067559302695927982755837716023356224408547007029716931373142485846478764750674769397816863915881735023065135568814472224353514931506764318109464105251320564546889129450441708753258210348967303665845408602453101371474349835892508560276751269136340338715337205233579820602307805565229631945446506754800554894904318815175610812191640591865208921370638230545225648027328713034398200336749345331187146132174376147513027387166566779537687433175115577756880708338494982663329217281800567599449472384178603659962339446010649831432709270649511830348334570410886430556057815939205945308974240063361113736825460837339605554613318018918185024179356252019234391763778657376114925555486188168716229626981194977818810849979018991265551775171994545896301622951067910464798760975587503485967932613239212021460739565601957340997207481629526220336479264484302429014990175888920878840862301713410761707812988239397481276934208635399476596547083904527095930186869823493758698246859476726098803248166204505158630338732780795961737122273644597088206620055072452456809497707090911421556191521072863122422789372498339494276338945055306486709102298594998836183690916765821354902957492624367992815331071594632958720142951534656866370972519933063452776370194678129282975649579342755317914994424943620662952655881643007707379359487913802811845018099540511858598144261195533256022762165381489951573283279960916586899701120687447153385229489128290956265751193153060474770527147282789395757549318305198861488418201175135011721696501421402566552278669022193373221975191810408770181882899202309143153625544077493787841189104250662895542414614118125556954802157443254800854325798578297771595436420009415827270223506894312931263714908889089239158619254455619603628233523995936901707856798836533709243719570694741432919881786256363327733708562692801338541361558756157769768998259795868853195812185832550062790947284030393557234219250905609576547021610957394180567574279964797878272054611343097021971903597887837228751574302570232720050278354898932313463927758968494063355909798005445613230022210107220753194287045333846624915306222880076081767639310688639797859674089660486482745552715007984677842905982244138038581032703178861224385261143797350681757610548263154605354975514185586970551843069543770461790917297965155253677531076453646462124431592604120785281287762625205578761273049647949648214276226996948235649234410654258416061448926815486433700518933968959442468127268244720183444643894186065484603094091368006374251740367934030192720770295068400350290319766310266452313802816380518719579047283717192472660845447613387036376205045260322128305029783325854956650112579290516570597608089018258185102138811687460141859552599620237260346381447083407979869136425839481777451320472914905556707585995888382212568815062452082369434058772846036687315748344830190063809993643834021115145178474727102433432377585091941030155354269620359181301158832743345597522015014941685642300437824425275714057882396516566904640026214124458343046544060936622240352271911020160764406765150829571795815383383945943197005832309837397190477799819709104949990118955865298925335354217192447669753015591624965416173457939446321186971409709851194916987038700792410975979692391714567555528099098877029329345153494601676202778124695699758488816260566755252107377259471547591465687808088429048807872772901375431370242198063497995384765395325426525753794682609103656231690559245017452352671457320517367415560877821756075790787640066382254009083874591844900309964987288130833970965800657561717423036010351631334377863411940871826924537288493784927570227930020407930494015933282996741621422248092543232260270310359603444583263981561165264994609294940662267604448305257768442095908178936606156680042894603492430480077391446703532269367768812655935191057502995427862330631490616021074875263390415097031920353983081191749481740982573951554786215622239580402590534629752410113367808404258014167599923738140781918855928006505767883260220106551542342485873150274912270639641906528015430872437429318628329634381009123374341342183074955510908148503061808181548606228884751038992603243821309528592567121640470318549495911074962215589922473600119811401004565531296456370411854939778030672766106070775068420137184667185365603921287966211032610787972365852006907142367572751823422402450439743279946391136086595321596502224383330157449002280448196071301829585933893088201070446478111456694813629923305550863221897913556738139642129437254716700599437863255232418293676806566161317246610221245772908326197457527580975527615875256664634026088683046988479767808047168751775822535821528374812706434589751053886710066758173540886849835250312254530364234108988872053377045805918045196966983046584071372490700903410032200820320422136467587274005972279440323575013685077119142719198873122003912965628090989793799030039336722466610930568360871957403633381082006587997321420503774456069981875162185332843426448794505980945354487029972352331462503532591425185804189947662867498146871710493313484111659373668796060602522976427269975257271286779648715625578533452317585131109497625983819631584774929161138933396646806827440618385136861145166712347843211052494852198640164140302709371969382870808492193844955094458278126501420507391086392111350869370781230604247281460428744341390646877713007366936637052340940323688055681180754659216502346710287994235395143557539375919914006741378295297295530322036270709276122312645624042318723188811225363648438314559986352415439446957883756386312763000020402480290282100828616026386139222966696584665768491245143680357691679859185181799231787037721099950034115871646287376857352222465577562057871732914784733702448816437187210920387220390380015563071061406742609308735407300487776265382060320121278098646572332661546397708279242359700225550129664890783245763285873825249931050205430341463989750183890695645833536580655526297791281542051747791397950000626317048994155444947448625131322238350880927045824099918283153609226471132281076363640667887618514004683622122149017571937880345363542518945827079245887316325434012317648559970370745296800399271807758240142530290744515364266095637357760865465908099796612977645779210045915807445813079257133859760808547206520847170295167044229534066383192683197941302290816496698423726681248935766580336190554380585926779401341029289274716736292948623447154689824507971286688548169895162034928882811778255706602163172904347845553937699549257493733606488594033246226304728161748054879825365453245740782535272924338802246965833212431805926806667214344106969684361853445300766228058782596375507144275887925417311836206631039012221265581740883998635116419766771625792642345388110452746949588207900840148934485439739639883604586387775304416797350879790632108288979289770365183790109073674500134544127385806324842755253267644583076094256746501099998560752629018205640393332151104955004757551993193098685442443688306000315109203623184665792916663485432012442421581321159036271927718158844591003706327567924334215113278271440515739971851201681947905711659821803439971810943359827244293323237314119472523637534361669351088942352932040962566276171560187530374075636810009465047422500908324214372941091395637825062970582725214051459058114076463369208078779765749483118111806047427472919598353064491282922228164391574775127591632974864209282946731441078577387988584387247624408043714323885378760588048002337034358735691722061185026991350310126087605252110587885108723608691466441289617308554536663943105328619964565800275125934871392991367649913696018858314322297653854445627414165449605291243250957367462457441767391640953255630486593933047914990852011908469775256492931805809193268821171490927910519302793747767823694429612510508771886072866202460974307089864375081930649406377351682768432020816651553322291137335816974444891835736859447557104509589122990291144044074081838799059678873830755099176420345436415495084970412209230999106419406723638738177731015769455660249014529248522852985576139460114400194999098253159126555458452068502995657555127473678790805176952912111963000987618632006415728742285402554432767807852912091788887213245744186416087165971777886870157211910437765733852797872789201320782204390031690721402149334501119157387601505069882488696150229062401236625953423077047096655750504871174455546981746515503154510547207900585303477077308768310858111367759743701066874868800158840580030197121738343629383174197362344347998233374716320083472339245088728339835655326015452888929316168193674097932741514086479614375486050922489227917594861574207499212671427967753386837536703665825137851357004689126211823439423446129146788585447100030434047598207295740771443351441204284691944316992920760473910291314557514029490895847150616921519513281065120479842205003440209685174688843920062042560538909471350747624104803232395298384798902272423599383572965662252514372489383169463599391393060671503814122323680055068466717081483078861242829401267486150959489682529215955771022987419628065259362715327847128401835446975158286279630916546408598023031064766360078598741036533957122987912278043756663891161438101657166940961413732420548575892006150856355185778550077115735482199534844770002826235304719500672735830609837294570358126179292679228752318412934684406986210191534381710797770403044742405657396983306564534201282850120403079328546420853009526311755559635610370795234501970159314238182128019374579196475250023875176637074039676188964067562380541512719635979050393845485840286002445146251515963750051611106289313885053208554134964384739395294005829647941062565311058308428624130693074291230909480429316566368615883811299474126680450983057457139590088340791816356563033757476042635421365922532290272019838087525469177139321376831654793710832435077131675163522839037504177556196410887504270874955721056161940260842909194720448125638159101273135244985670143104514610171422521624903589340531399192255140075691152902566231313619558893394948597925028456345340068427289265145638036807417543431890401268078167374544102020374348160014096433058445026678167142468858251056199910429951911433143053810407299217772798070959375016013379688637124305159507465424482432212970130440808551636281573839389890987540836558844803038913495985828582934198427769690068089621044305060672712010491317762588297743159718546183074362204813339678765313117440054720142638753296094907032684654279854850024949665923411823415730639150876948030566324420805431484457099123242576046077162783760994655781087427957856438877308162490070574770278783988935535813493968676283591307792141912605686031551848006177446830327869628975025724993234481187351789978174648068839743334478657249697133393517803658312482362122265529768144092975236706498968651512075512498427152878336528408580539455966232322607110606944111039179290993259243466371658656924199393568358896666155250178545855396767152079956630317498648370948098074548979878034449242880701827996756267068320754328554155391185029185870657009238780643273591359262285426760218571381460327929064335354914144929345300425793399216026436943878357089034964233833566338667929190554493673303958127931917149128625592446131834712358391395060316281641362763799042957486830996022294322268248042866824588079472595234394545089980184128750960034768556925557091350276999667633397571178771649742431992608932725204346383239417272060914060623730373719276375225510676131820084352357230668806830491195015632832551058657625154616928357380670064501449712815701591951093959851021514020669567741136080931575682281389107229174941110690737342904023433203003927428033952935968182779117192842315055944214468807706437692712210712517086415695514457309893336578704687425052616094183584665069265692494789340877521193669003271393977216856004890825186107191806197256733406705232937126338389489108536682993041209329023184296103672677095133428557959457826356516245664063201010657194581012011451971890931381637798151596135413228522288661392568551571184569145426888933676873684278934422014255432153900036195500891450711042391447820066819016308902555137413827727840482081261845331563015106476867324766397141366984694768031878587487558008721141118105255205776650190279817863318578168427477309553868278954412292233465468643447743482084157397166748506223788181886541596675649288303115725408143309300200317638586387534821718730327710568685156891182790075158793725333442776347207691600430238443462252414473715173481132015038062202213204790924048648960080810049083631229671512938036606858533098645904238286506651518417321346086140307325714185162783466863055138801358602074590100483980729645045502281030232603831641193547830820299523785990101461901270282896726360289197445950319375541028126646462512540651094500220286841582574881027846280377361345183472716802591463768379533906362790925541580623907165516695789642364386511638493585695903981259161644513697310066775521452207601150464433974435969174883481874474979699160295680988423651822552918223797219311564018331190297443459834200324369960564089598513343054375740916552091903339096373247665945849269745189302389297473514830767361240900395520615781886337904796691017994245791539307353402005396715147203349705532889616935775422684791615993540974668593061517019562827439268421423429483206290264174608610965215191682071751119555392163019565917003988687633481093017360505973763698280212448698953128395237531911104701576158682552068019845651550998004982253323903655796694618009746215461328490099539668399844114204063841509471054395119060697394585968331782363014877427197127461455028452117037862602359237147783661553086573891906392060492833840141044547773666356931237507837550790251608929421682595481445655542780285381342338110300377938999034806001563278793857687245865674790057017182237864110314857330781877124532305834526911336280461449628938629602558651502467147355789122950108191236349973421993838724812799227147484188582745215862529115161504616337963812003676093097487861362715291116064830419044987799037188125337593338321414193087827491367512222176498121481706378670330177075017812189529687548965759476317247228828447120699174750505270039797480945764466750119432009844503549599650866070187027597569556597549036256950417580716789660582606975812185070671856659357209826095603118711085274788522326129727210844707406287253358124175969420986424327926877069808438381312631351811144701343541951194648436746286488043692761726621613824126083672352483995339555436557067602023206730659603627710069214963933542881376348667614932198143414053186360360626293977899954179268009288880763355880810961169298447774695098564975855960608684775419385577871078822429023849104516604280738484427943639587453706758204225271045027974728851667818963769434115246977475801636523794620522266068588501162009419160414826070486524767690862994757459153889168893166988310257440635275316338953370350498707401570500208881825417775422418422596825436890706870377190319970090125745428965794158702421728103193526854918217003948436107060481018456306278988414249814596482021839556699222122997819590602876100851659490604031885471924683515928343363563413712993933153175904593520093019668419585092199216531352762735258469126476964779404892587910474199430740124398580622130209224905882557638042252749880576195194869698409753290264076371880627852883899187744522256229217514122626771873209731058917043904211273873693615905778386201086195368506930244630157262075757839089089078714994291673850072963245839668206858209221181908616651840133466445137605731360894206607301706191072891222826583507464409823429408805640642128032207845940078306844258485436619662428028217036312704248778387658582287814829164803660776725968079319686455613973160611052041249468455877324884930212048651079621256636194083918928046029504454960749415929635964014148793006558543617844093537704121539785093635297376100300698618947311462704409709495183923524639952243955185510169583590658174331023331733281618595765833948679057891716301989563579463646651884518797008831889317721142807139330062786049584556358227430479167564879697432722738168180948265294048758743107344010511280334252554839814246370347476489241179859705805007497897788820257172909129077781374083039498829965388842259135594900360660121862354795445661762121502073907187325211727732278819900352003031343141594844343244637244334800234383550715543791642958041133730385476772462589359755004358363762536093200146640742583239714096782751725901058847702951288581831723852970664853187229978585430367978247076817832406060109280154267798601032163242363906612975321600529308761304742210415234636242785625605109912859126293830208896559561311267086844263681197812998117668766884156784211544592197352793683118111984936399803476861194243103318227352475140239492749276040650377368234487342282225599293218548562210747030592887373427223900835537538560447448889181674868841154123821946810322125954875616836596765671669063548660268482910123291595771430205551246757267966728969085136828550339110754964306556191804339562229490139224028071969381451006791050055020834489802646595899800056136728001033857052999877442230664692369434038017054291428655324697956165990882787077147348299315512017649176770417757801905507222399326752851137718865357019607705858248735707590535744312743131547276675421910151054910236742206947684600352655517211523463375847195725316478522525193759739074855673606877950419266031446488876541829176613427123695062370601623294621750905803001288812448409939019402500594392865349405532602714199419291315757526559012259086802654595302554134665039114516778705963733857927114246176502661488744853102449713957804549127407442567768803688840493137427407572276639823885078533515833843684003172013548223739766595286834722731506940847261272442733050850729433107417681164519377060580790086428373956828910568109360848883031641362020924472511684398757090338098271555421519245486840570485775383742050676237607416837557757276280006912458082084599084009742965146592575276567614330637601557878696533046138058047588751372133770667350127942862741059326560779985451235343308165939590162048480619157766985023825873890692925781674703939509719308425059529334666058734345933733520864862460536191527475776844824683011018502354873025964070100261017603599061102480868275274552029553912882962961212181946543734374634703401801532602745093900777815135906184502293892048386592889069056300561301534182491137884153795916605897384265716398357403399693479532043705006878400617006620410010301716768442791736557754632718920719496641175580834359799506212997798362871099797557094152352677673656465620216495083115816142274389696681128599883134772782273839943191695396258401293287069707780369484688103309948974556824454261036929278885363177531707450653299734803961069363444276779944847687262902055979719457374036288953985034173500894665109860174732549964648424272955408263566838679037992075062394846353907827805235124245659823792542384031612541060865602226676888309969842012552969499434413763925217646147144517753162848015459049588256262378041117175162192813030849614173859601862963776391464246377856659203866464837420564464036219933782821154194340375881862363733496765414252160682184083594122031987228619171693660461493147849860256618533393931921768142197962691213437109030805952389782221108874639283243816553520887090677477474340767353491527809855120081702093153867916313193574943484400613633457708750540065316114244016009343968320190622858148483589171842855343161412864043440916801759737760316394706672840508199598747276931127774134619710021758755664694281061142859851938104797019118694222877034937129947711876334194875500385638510418500966370343804599293229211708851052281337194445782007025375958823203164902801992738427463393461224039282156536698349427243910969837716843454439479792331483030700581446537264203757812957337017266844844429512925886895366186201155774976708775714587612886720257895237247234527918683046132737826318613244068643096495734679734006308565890004213815124370029559563553569150050563788787061962527941896998747033964715555336794203257830725525298600461761969025710765138187498415963838895815214312252342942233322478874556117197298178652327714089422889705656916383816409857626128867525943589656649912473342652021168250821194014439859877246412914548762067857567522033534591663176454262216891434826215269917157239600855821613266229815200019184575106099668424018288929821726214531364992590307430530966416240522539324236508427994601913760450056123596150105066650858558401395321695044833965517634336970029489932980493526850548295220884213124563539630020614358972323331885078792326399445402529603898938195118103592202206968092865197694686029722581232353389094890465034179810233334868141965902953733356236695066532998581785231322524064040000282113526491224124606319206115587760904815956447373941139492276332614055187490806823826644613938107432180281152010203976018804476227655104106384000170923371490884409374871831699968773231885932537952846516726186455290382584452927694115801900835478631470483787453468816798722200115647913286929488857938184908712268497697815830904990147651720969875726104436256991006347355516877730434597777522704515030854557531035307677204297505583163470276109346285298497652232997706997951996355687137468141654351376318233739126784161499819128916506430269014968504605403396591865883454038168953698360122761331651874235742907714331190075534279766556306220004919230254461307771541964818070877436906784102477527360418560673704831915886021905918507482385295668682061567539558919286585399672228047816202715620557724095615551170321359130351845998788125144422774960456287422256994318281143739679864927306801282002711593562686288901990579215748360707003493549477156058777229871428988974966283204334561456045272092948721909953707325166550885834279342207401657419295093535161795856494349694713453943116617092279071010589047640849550682561170225735293114831318077622005647423585876145033950876709901076029403749044191626451243996131064728010129881515219097179680410744418206022929795375329359607260623938436631579848764495193792727273305095590694111324938437293968542114537483361039795834877863822439493088290245439990456347113261709249140473387056592646422097205246021138855027819041434011189342714550341232094193605963077492984379033101081445213358175171415144232910306931918085124890966595627431970365843527449596493208415149477220504264821285083974982241109301562776323434455410178209176090367623052504459994806399815925315131925988461388277975758483793114507147480458071627088861571385425259039557772176601307583958628392872109298137898299804491101370603902069957867419838388182398469722939535712766715932982268729435207482015853455142597792971101310213317199008950879474028481228137527155809778056010495234257617763131376023493086766363358218207613237998068526829494333820668817130278533225241055188000490984091720902979896140392364650218084038974765053609147979570901142939535206742678796270322651376976731039516180792297113549171376083885912451572388379398371259466564117140763165330833892870119925655362004798039034469404835929103407157138220821289016321613282874274727200940493304338799994314695671134502193683543266030305535127448965674822525442153009018171630559188186562582920573510781769514417382279655714996102406828603216540628823768725877883535934598038005718959238563999378582094857702323160037651681359108605548950380991220632044250492936636920486810032398714537553159090181552015734937358743699042552262169799091061426676155530000433822484399806628406063030820490463214819326325928711588646301481024023822084892461662296993289918836246556698264676836228198744924571018684155229500704080519409476683407409799161904778452648865745434478166718797233899857808015856373802522870939076791215386556619458158438572700189321573310399287620538572083441441920534906198904215305098375610331663507962274894571583620724848693800322135057686421554650260858796119895456671601701542194859177867883999667584055736046901219308616745121764419941909511682808277041507963610169700844344652878546163897635719341142360898776212172955434946791597450716350319199022788525053041366460613190440471575705490454368681794763039416688395370837931089664871066183992456144422770069788768633288060031261068671352830929986323209852292834521686065109329672196705339959864971719077580248835898719663897800509638214938943017275281192157911042658277844279786858121083483584895608461288936920565586494952463171421952051513217455887798997089249022271085942409397713773468232111795092065053318526148928555633624423121730497976051963998846110604314910594028044932739401682087899549113215812116518028819639297968409924368999395757514638560408191071674888321950955762563328075778083815825403661337033142409375604241062639318653518465246573727155183312771770855171574965676979858044496705137956804656667666836767176420487135433722137021009775024613533576084109074048223274007105631314711372007956122097895620291964219902582141810017772713690689991817047733145192431412181895090374712783300325359894801582905404343265144379899145998710429038476232183974641785892750421299072931224585503319813690088814378826462971548732223606533748733505138771857981271210613414514624424949779828165736908794723553174393915377406297672795266273058379507233465461790605896329738873917225491821350644882872255931470309231414003944751728418488830033208318000640434800388902626705703181816111212316766332015699414802137742622546419749791426829923066233916456912177986639070723796100588618187189451374778521323064786255756358972740280598365328837369624481177725539220713249068938325699383634941394048251832913088787026397286672765856922078953242060680730692631985319957361653726849503593036946637056653997750848831099282354874102413270132414432912849963186163320046225069661006455549151324350528808725736414298344424065239405275217509723787081233354176357895646746992017104180695326735514881030012187502690317563576422963603071172909519730111333397574378939431413904753221581677694778653508504314821284823305289976457727444239073797242141121791681297741457869724499443907353092716084787042106867593600300445645055809807922117425024385636554779412807026107841678406499503387048123605398670551387730572810324555312745226224375286558241164055650825083349538797480358857816498739514217367158804716901346440462419177627161793044074228113585995448433792845781211671487510575060641534890321081174805285114054559452446051872068173265329904733892738270647609779019724563067661537728860677650503069819357264280060210128264721084731179418936804940357031204861668467072182413351728633252202408283491779511294758238592253166418049085166562108254287894576342977958377571673245694907637153539612239602907112042860541760826097554464521815047120155113807951043552443950686433919048312888253503128410057084123327284399331916590320257352882924897013015665929951121741864765379136993202088627337045809757286395694725190644124768833615945251654121721038182520762670530857616708832853977450207954453859132544636192124841701552068094646697682358726877121556913629370463045714718842770025673419421169364915615380398499302589181244922688416497545356725513951040241516092054559387473747616248550773571144946828679685021371497717666629736561773881966186433817984905960951600296435281368305064295740075589503056530775956446456460255616007085893639231084628048370989144261251068323467562042450532121938038155117924036019609690891011818270723807229852424344893179839747314477010651034735941457933679612816593111043809708380346603238064876925535179505613824101230382243479516659509384703957461372699529653083679757974052838652741302464258264430931417510542045073972912282295939703254824344948823214068562624906995901594493376248345137400104735213676177805766129965354706419117382522561348317297363890050604784208985517242083261270579516289719114669207437665801717682574831144709819648856922075996627886943179119746185712869779594996563733696834480913180735942942460621486418664582007903554309237562992986672664878751387107588369600662884335510373189213491086626137255889204067084664143556808113260690987268950450889146873377487216560246240762941204749927242018654976956577884847677418430517703617100506476386936674508369839852062312628652429416481306394216855598361877966558178574923632354166088732494835712517673998212526177215804166252821217843372718247407934798699792842826007901720462504583234920012062796152887820346517068822018261487220134216329915706161212288613351131545017366313361884682623012360234172286831673522142004347358422425982897015815145958838718368141016831538178596500564888159776279708998794684463177600557240701064721021223542777292823841477285126253847717537011899084053755773933809933043991716457407339712488211102313626936757158213495484031711528744126337533815512879062031145697923481544832477236943929811983497346307265718165218718820106779314733402873659036429791440072332818951245820561719477674735495895010883135931489320881824943916897859156542848980842086982241124930850449426338227425894159485717597907328393634513331454721717118659118177760810413869885947653829869333576565664735626892615977475794203610354090811378166450748779859694506283235617088016958874310663644255006546082248531362507174244170017432045478529979882552556573954037420016681723201065509740376201948658523923844743347771729278923840992247928957090466158545596597020026496235834171762982033933819208308513530007484243939870193922447462843328723790530601776743733113201804477852649283468334346757624761344645871457927198573509469803006098554047653628932518433130070981993535107244883959482722011114115379643823567335701119281786448568559473780818512457867069070749438004502815794961786458917844810703980595368109764656019703115304864439678743669511699531157261686381426166923764639056156455607435498041360684801998575445208542796737044580959466795969541815233352948325306016815984105111932197639843511003781255174691180640977004426371141837734521298402355193015290497558727447295348055440769273092566641657922954572390627949345804359669412419879082984177034535450896391818011668170293519526858589453799212257889198290260489388401556322914816814599143157271076016073979686846863845440485488206247626711908478057540732574226063747062963363399426156014766096773495564601841761424399649567499058319724718932925853670028184062984025099169378273363819880084671896356362498117458269353278531358608684032063564118055196669507260405128196843491783822767800627011073026071783935374757630154376358414554600492614324038212244743885604327596109017603938351532525541295064063688168747727374806763041176809380616547195592946211442974955993239172061686736653762133010066233921309092787241200997663711215504455498401998466962137720160171640666532462495764008049050228549574618624884429802513731206167837242596986239585419944247046121322163438239846667408645250656508683778446754467778027035141814238900449001852663151062600596314391453303913226422703128842370568863570702050604823536728818730422935852041019211935237718443906464560250329173118623437931339590237208703080593394677272137432121251273319566167943158928102621375533415234683592782081369193932621095391742974476477034036204201507949046253193837346218677921283679154517915338440506645692648896902545130912682401236660197693006801173604363204101986982886546810812943329109570645196538983313602410059016567694431840599847643126782898956296731916035876138546473896529087058318658334326562827008472377546483965722421074482650744910434792728757527404246161854803461901798833044325163141821197888608530750427294506318934981275035042090874397123744004771292985320628976963760323021748034591944145127142073513042060724384292575867896698745566462729461163888030875633740738986004550587976972172684848972009440008282484990604953602447595327152527274912698827269935795192721727404638663211484625872199271519386970725747269486555769977087233718092110806781594893455104038726654814210373066865925233170295977499881277681753971443484028803736289539941694281473468898148572833962105382889307701695329338562168639859267071562719923333737642280809079037006258919730109047980677707408082158258895975971344361599005400909398970051529962040582961080800443426690643366151307880908134052293345864982077589950622840912005112966884852012908556430491106930441270473878567418855622853408550593207854972963138843017024538820054711183316129212390411002712549823382203647381673642371477303435354685655025058248377009096860587735668521057860518205097342409175290318375545279921841061285938712247452099319889106032157639285897984487182100696929640490082451986042238352667331040652514770812435133586531565825892621645468833636621121107175035518250300321583095203283161796409534059847158751136556838698340868231439368766651184072540321561890614058754709765431798709264482247263952885880317876725387493588376711513534180697484950509192978832134241891118415684114405341734404761360982991976973070255744769916925237762171244485730745641925713648428828629147888221746012993453868683271845956109638695978594865367742399631863695989872578884432619294836483218985231868532217385866714168591487475829845722508510061058547844565649294974083548045969119691415820668193346351056816990340062211224262876686367510342861357124168051303065621949348832425171285562852980343595286156742344396807595830161795984382038225497328679548367854965691808693176039329851934793132510754235991226587568516968472917386217577022399442566827115161054521452615136852942621875964528106010853680666659109510790206001400972934009359899002221541950562275677417143352887387002660062907220674913886290214248722636977442644598518706935467023478067935290891729725047175789304711361304900911817710905621955589024401354446346279655155334723502050610350393634053336529190054127824408588981314082837655793225949322496095031073826511559435969656040167919899353694518533101776221217261831222999004839110025515669283940778230247247808207504523835898319180720113039744596840254255227585953409532512295020436401246829340518336398427410493189481433701288984255555464309941918897139756478862281443611464855971359933623971365900549427654997317465631772270070090597869462721391503611577258451659854203481183907472728281269941446022294758284587030928096373724585041600302710262419384566297075969333792594851100058276258919089908550336178982584640220863374133812540894216475879180662502161388027713525601287777465176488092143630665739283007677128732204614415523581733403015532383878787076158396030430312088798810668543762222173636034021599979674013190017150177829188730502434779457966190900201762099931508592062030509103641674208609310398846832230563653004359228704058249439433455271286507311886235050495324138533490508458292615812218175472045578121310553616243519904786622952887520904098075160717396164411964153878568498021161806119542786015048050974967676374948454290639114833924404458308554594509659661551812619885796888954936730819100393195358637774792103171759959505526368090677576123965308310341309894709823440650574029827058987367362187456900755673747911989394539396506081285215022177363481824157108346315254451692601084588427451575917380092755441971368781491869565771276617582508876128674472682876425290345306484278718347045913526904373406039529078056794553806723545014637156306869366595270486058784627813994130199312221858734304851498509808487073343872404661000031098496173278098922729651777888462797100417516150554532460875386533742749340362841984651305639353072347511256313483755930587867568018584898874835241499700389920294064314045950174878474805955136108210635365009540517183354365576338744384267646871823077413729274811429695562160036908872127074706230611066916343474020452807590960634538474410833891148188570750134177813684860476938825622737144072893594658123377042832617775956431385223819248909649132817677270945673283552647987831438305411055181755690672721224859420194678649331729728598414427555776207317651505181559814552654099393263497267244573799476495639003047219389449944000845496165493367171300439098294344623163201121102468669740928635264561705567320240345337525796112828994875365901504701334377378650506243676042943034517545111743817587192458740864927203895450412905472753783564548090861598841386077069730220178638829879625796680383736390355124979777619995269432345866294173014825488667550070662819090497922863129254183241671503280296597299462586015679900185404444680266225871569894910460587493404684952122769129816087461368204931415010666359772586439017584924195057120238682879571987486849030145633189776800963512925302070515302277303135641685400995641478474968449938895802498459231914947002407193901491611750542122313135582636019840182683880829220636315749622022143945671904570543394683574862781702294045729545058623121632870360674727482499632404334496398552573201923635300336571508518794910914508318709173069965747769941408404658810628827473819113637953928531751879442893947234795291996070134148542011524405138983796743191018447955744747745395043144847006776919278563186622688288385777351120478952697160596616228681988496766894007382644027417713327649950602951605214917925783045579488889321287292523344744417913056899892373388856739350215386634182168804089713327195300149358420613818236810887333438439736473513316291925651611397344019005746900158918159776069178206878897645589491797874339476193262206494281803693671465744000607427233850666635455071506558989498305759803812676996415557217927342992614748234566031557736113710933076320864986352463676787247565123029738721250131095535027631598394199261556528327831398932876972979749880446404716922100881526122336250619197995680164152434691864283600645943803053053211217366607131289563726490449948534621438243158186034449940659860656237355203837971763618743623119760886000072020304137322114867030299176240305365883813908353097776967310969127226194826124816336727251428866388620426271822142581083174085836730521295493186499543657939710672894210782561240299929607185600805473373597348050978738540581848177347462519026967730729852828627477821866568313117518350276252741631625951020709394405934076126306290128276731424622869756661308306531222936116062403460178544535419090564059086616593074864469189093777893317233459420371890954474869902135009350364728009563258083198010884289819235153913672735576934922018513466512042381584962057527179320426773663999936330685103630007805476106940989334455848768538561081593999763187672665323655931061547098078677282889771538632319781895740258034269427048713653782480475912369597739514438904292195675146887874246206184684280582843958365540757705198503480281076326177763337489560625023233237352259992803079878482112889186899088118083302741152382349144301026375950585735491337340712684461513562443932282458123737664163406609452219924391947200208542338206455722594721901345162574307894157627582641855950467535560143567698813085475702165552614602071456289315314484185675545234397056384125500758174381259340231089462949935185426103002393320530013949324387835831371711477427936140327616812251730161967474499771828971808203084450820919476273294646351817546213384162561266279473261179083803044580270476207942066337352104734379382689276308213616488635408758434125750878441113774300478907328896332284144573519205771262278193896537500494171324898735474838770013927988342728943143901638196741902238657173850066218902351909290326645420288918553630257168253704875756264372814999004396856619418150168915576993946783628090358707098919908177232767146690994154590039869261974512238129554496870701935932887032934863891046253353871425092887395003629671095709438444595049286974899821354638309010817408585856972123578688369799668608667277228338155947211502660371283908283887138819971585670073408507166433676832874923804689014163427396127109530361911110092672365620677829022948634927429166550683267633982167990608342927204179162142972686422824350040267768901081131077241147469698340046306438612442244857081090349095006394222266003617540268756876002324827668625498325955456005628977039520849280766867035336367521058025788317638532465073709556100338755095283961015690067177704852712736566203729526814314235564846001838619070196125143722301510055610021451909914955221712837914318175328977168970529709204480702672023082679223137116206608168024994541204076741131380058052043532017001314184366849389985767330884963482583937739396480025331588535207462621835798701018587740812312154475769372951150896759618507520182295423600837386892039775950179974793460025116544674570660260528796067000907668546409143412261522650102637286194273502393123779541540890511385576811758111778686415446780870060265383524306268695105748994270297041388378681630795312652926869055686065589887338175991587676731722394836301027245674317285847046295921440264369069156303331102430100376265177830459262181011452284269100317683557422466268418959879985769646633244205121195072807607996786029135467181789658101329663069015998821556724722435413646582576029757659854802693491313435313779786042946144311866276933155030615204360978040293604007874197270632680048902457966608129013339281693539148520714890865121221018695486688415369090435838809829863686013145570850796215588245904296258660940825103075857545470487864603789036963106892351776727620208496931375244218932611968751679277035167935901507840099612108485356241235821367568989188183008079391454428197614052198592094930654351582312986837060835202326006830078008887343282403674867660801460195769557725363876024967528902925100473230725607137808551581771017153860295962416918983270789494380652566756593808649632786245733928996335501726248969822047528708777598465282686054189888907139576913348278530736882861197519763372378196258672526526022885058993623129964834340755097515888077313565083144940493116905148773169939496326589639175057892421185902213804433888739915033964835047763837513465917254425087661795991113626256546373003617713630491616523637355106052284190787929432529515933553071093068686689297558408154213094649092201901517144488391555215715351966728892509869214540449626788416179884507505503019296249461697327738714578078503767717471512443791690167721709115959375543164884642686796879117616074846627799659396246789393599450558169001297253941799345960018185804631023543685606404854602497315375106119727136800902862935114590323258781276612699576502153172738688309435169286864004244053491870500068426554243543859160408207006460848589462518769285553798124362867500499427394939754732738081076679417168653581935029527045129181490209580581974532925556692442484260735969878360647146006562180317613851179999585774814474708087343574107579905358480417069546780079796981822604068703603213406983340169594293975417349018323870039970216711781353963306437426253701631293202514324884156995309062633004550351998996851480974557321814424279206637162702021513368145125355276433199605758681695866388381586662480573386289090837637898606057694083146548408434463602812723305748600819017618044442831260104384203440340179846982077395532856452433713693696657506900069449265346991235575196304866015608582145328131754212795542775896080879552238404751032434498232550178585705087212701716086832784973034507883877263555967430850197652802476901341549962954713665857764108644340455688076453122596312696933133609819400481323688314727455201910705302970966119439847364666261675234708339571367396799041229158067826996255177084696285894256552338164489817004317851452610996696440201489670562441234121765507071765099630996481163092451851794295819742182693549232452579374889564088514844077242495212079049428549703584179422765775384059761097496860630129616318140768420881405855315714520497122380380673439758461948290803887001038942323954274024861240482999147660338316693554423834682482682446131203497309774487603782808406232757895122246650248714825599746138437352703535700447421485200176773662962389939623867759517678686650659242138787096216606341204451042324269413888134881774347279109959116983698676894977872660622227394559206562532045350613964794122567286381543852996599538055357186576464077233850538324991557233853925015906203071206432677468766433855470809994524559042532647529732593677587898334247848816133209412337475693850673952256008081041726137719754593911936312755046225522550307200052861622385947595147166134273290145651009530426876725308903787286541648010388013206347044390548439400278036510714269948648847920495482182483918063050986594828709898411506372694309350768700058523282687984114040115373659141002427217266835096186015617683131178582115110669022420583118506102341763373606536067122283328007275470083566368332106387615859450433109107188217234139589886189984695768152932100515709078451338002137177510838442625571246699713352271765253034758010765764889184031800572073346675124892692763326760468946437195351397653620315958209507755946051470961208232621903246324458712787321570966791897549195497845129902501332026153677821919527429220202154726989817379193478229113338191158638575170153378157359598749608944314289022626742873194104050257312624951458854615545491421944765358669510996851999431983901156218642025808265171762107054594519011260870554143772656583040081315993194867157599753648954276042597713165528239048053707345576655976596645447776905676583901502596655120089068820395525859239616308377616650646414657427816002331640351937556158929158462439453738449117127701612339126704789393872583073175589053113929658723810238448245036425901440339531520815539344753071501092890744250577449541576066059124525069948659306885000662020015418242350210737871478552301198601142417848017881987527088674981969757882688245919048982021025205271719822428181041592644116457369874610165160478085145191094143628359422293641615688189233878982770688374941937199572692985865674171640493110259634436262989404614729180354755334544934019171604774820974816790476025528373683027679010876112400198319577019642741071482801194987214485007875984468326621403521576927950752562714693054889829738099563064387031721564468827303472196311000646015553967472651155081853599464300278108978475826172070288930528417082706237197216836640395705952396809028672121667773941085211458284917368298978624134564131393534715447066801472960159384565088641825486270388976247135529430786318929688387681074193389765453068659842503446814183878511902331194153910903200682532386506439857075687877021981369433188904974370238396113946202887948119802897644406261347070154021274248002523683560379208751780679238973766621610111439782244716644823810538319299297023414592511888822395279355445280318197692912434842575707620860498652810639649215651880975421101261227319246570137834090090847259937288681638228228607734381297048245669335000605144123179878809222676062820854424669585600154426639439289352751884295863769060474630439539535545617484088889647334970366609755816698844799938639966992590600693090041839250698102946900222951619147624056238979436854820089979396969461527281225677735668695069815617741353162134252593662067531305276334999272326061389181971083079242683152234694471682142732750169092019124085169517083584530292729803669354476270218730820213280392019294887341418887395531821713625650446054624221223461942090119999338929197505544659551060399029922655225750495676593918713015065745562065202526479648037884665407603084400870639951892418175074276637375134250770506682037060301794934342349011952521347237606988143931447163441153668143854261377415413149856372595607566766506132359385826015973313557890867490232363480026272483472606590915069008685106984167255522798121109690157724867184644600867610150635308655201105890515405249298891969900689410626456911184629633356504650858080853796340487673464822296684744842574049908380552684137352284701269023788833666633364753165504743692104034551713680896526685044680825234613025174947370530130799806782784920301692104917258100882649414749987656507421034598398860747763372077013060163131793475854766059972475765780369475139129948287411085143723335735461488521131178564711075502457369691875632817028130073395534627351742340860423913362406748328109783112909004797392185791166890923594478285957792310923380238200409617146834530785088594214211157322041349234660177443146583614954956948198812177442630029215228854858477265718186897494959659513490169386056274652356538042561021469425912062176789412787862065518522568139696574287674375093333965611553859676917889743778056765472889128187525548747709723488378271232960203667585245604792606097364470047170686323881590492754217129230416379350827691712797511283752839148498814738221288456813720517415616066994234727443120139639775260882629883390512398326346652214809472370898613487635439051117789836499477861676813617859668645726899227615493226207670100076902060927557916693997605218083064877222128163914088776317488179485525319795580675669135909187839330449063179584616898223717261655817834606310525971796988149873275172629521903998879509816515897900583139840911108511837292763496539149319972894176928201493729942189400646385691396529678943553007466806416451698987809228859229848411969157360783671547846019064222898515380541159646666689733338556079913096574068767710913561807095836061186935868648537043725508563305235413984112858169542556012793973509467935321870329254392912450836248384710580467733573739007191665142429773140210842649840814664919575384079117819533265414607028165325687101327571992274209610312679215349313621794770337579971825780369662204891599297480930543481233254869729601646019603684828218228856652536220125375392730576021745236079053833229922756132690302074722427654148896524212298859493898230904409536440347884943936440328603807501863364957563106228830348926209208926195137137334161513408490005000513424525380622827241341453069672625614269932166205483218201764370160208769196235893303570654186712809173295889906144409173480260326159125133237650880514432522811612217386424025963849290259784814674531467233172632849033300970642268832419260742570513280174878985330087608182268294517308924113182796988169676070155543845244786914566058805756727783685627206984411218231247261341409220755966674937076080077616381548673154184451941922328419461243408495999983550190467130174028341249705805258557811255557763134970199115024120840802736532360257151237497609440348545893042863327605521980760985391164792291666627826675689663463786756564161928919439173695390133370441842178936135099986651141097555281845937820595200210945827201835061750944851636918575549539217567762902800306041615877865731340754394697529593424956226625588368409405198294673764623655270023459354682375425580139777698412468122525329071860002461305202831561659766236138527783737033271492782497447350187585135474308022057763457455562037205364542295797454367171945369031379756026231413367955995834237829411518838835204084965963026434651228847092733779983261181251665822335252020575579428806840082151851985688412752945853027310561895166346547556043473282419848555345277029032383263758188345484781334575706044562380602957357938539770736147556014219904730835263121283147874802587154583042959627742406242346288377369128371667027850089870651745527161572857643341940069513703325178610834533013164391255515486111881585459807485947055980842395285551853314439677016196736748482826160532604366588097044768798869625874124709292024102809836172412246887403013143246028674245005382042969768396977211120511356770932943048000528336212657821054697399134374063668239735433564832039894754591587715989532373006906211681139919495351040393424446213569069434621672477254424246434159107913912748665598197344920710524797898621490439491135174740344299877319713666426225734149717161033786063951576058264962332139827369502667218602159479283611533875059922246752233770398325842534000988259250640986218610506513481031581776982659759997834889378386517152298130054668116525565684458536785457008451819597532589703959720565242753574174921901545599054492885353799440084125104681947801708671530262529907751010513505520139450269044092275156608239900508121312724757839571114188612025231246668976707974165721846808595620347400974100284714139294062525813266120433862681237569237466953978356840906754957666649259444540702183670344976433713547472082476571985531981734787304708439116260062544413046008862027664323993680635037592957365731762844362991727456166120719024368410295122757690778139251868083528147301791779476433838486657821355965799880058924356182135125836131556777850473830553420193600280560613195842848895398949620802938970300253131433808698440159352681539970966269803076726897654085114705597857464162400774977788808409234228893728779201670037598664923951595226137130018547625869697772159540448037773239123049828124900448899895927913978811344223069739923045815282503282034071644108160740195051902730119225723937432659256639309519648781126517127861396588389530813024891394789688602909609623853445812768985805935571597333610120757926873508854525641165687572047854149898868602480912057820909773295803046133207813653621238488475107730123288064161401380672525520585513365222514896598235790218322189139597034811385612561659160742459364588855727075513639168010011917468101704645534879598172691008521571389250221848541865641310201997358514774399782142510863006304005433415604265516878280118135246516443199906583569500020133754699795497698571494044290966613816149392235000213501507479773837997837380454984252822897389737931785934384907388846415120427597471776936556966657630079652550280188068250129546941233943176443223332291834339118813338290864661685274975499577482724290360439126211456678516362999782644227101828608120776368776652363677549571972958421056654031641342036942176024349028679910845601608940522890546490973512713597392290150173009841485871789364606853621681698197007740321752032855182414151941995655146394148853931351660346727178409355968653511139859203590652043318197638277412132190650516827074045087317799452120603144432198943803231726246845199361103168777837285474022067601866104300605719888012666989074286891115269913493298946159851590703613317734022293152528758403860377431881806057844820052255528909731825657596655437499619157208281707688054799386047648925474360081243249112791758258591304330730180514763708992215711462709699039052418520693062772003616322966349182441296365015871400197178889631545591107800692753550723681182337545221863936296048978192228970350573569557108191481053095617700295575291120549771129679679304078268842917279999850764079038691605383448129259709366021185370345679341473620556445497597869518231465936865450794099323991345778284267394860568680921221628576122064287392516143484162408572346391395700651819444389460453706834738791732811838065599728119232257023535956332360896103277033216204376709875185684564584894687529707847881322490969212396524052497597905214224991363875206996972001858453179806826969294219061954000642417632263425763987738393951122895938037277260452613614164118221987268079923800518099534520270471661724489909193819954304429763314145984735578335108613909052227202136812851061479675058357474284970074578261828432205552416346328111461092300742888552930388509271179702221079934732850289935873062981368426255428167787385823579298247433183166764490452032762963033658643943574566661345991022253407052115088542052715986576584830222820261488962193456794576803000670280178678930674272282392156691085178954768693161822518128350754618308830805752631350028575042426861811546212674099390727110141934137155656807720306268101595648435701537348125278936884745068821327073441082273256773151780422989751808635732516784953407741299518026944389956855769133684271851520002999936679324371138299992987157868599545748617781984906535213864826090697447542105630807439248433765200537855783227483166748814641194499318674859786850303950248413181657041206374090859552444020747858145649269655751306859179901264999864436633939458612715257062246170883904918126499376924168150088914103397278101725616325069658763204487587603536968899392902904494842272518454466324243340165403808680898909189610775353824197567361813190545715304906978845742305174002864194006775104217207935143967910602878668957749578819293954158287514481206565563904557981892051078020531487216504755500087088649966162520128245500945214294836545420008747638569863395085324712422582433910303747823368096204772594361201824045177296550628305251638946185185094382824266994735365764956549135923010024465415841652442078076128827777629432568401297990823060304696840086820710405094439399715416608022791242795271617531767800784662009597805378835059361170625960977415023305684461196810736871001504632362620518387781140290459718327221388830363571598327117227452061392501755288646938806665103962285398857990466803362525460524918190856503134123965188466643535647939910597105339759732708910680151650745698582180231982858380633515167421594353299536358536954323759794242030242717465239296081649990976774485342754410059809036675979831222899373649711482490543129441812518206123595894572181062363310221774234696353947638574802433319742951219100501526332854969775088776399968825629515886316874838147553694807846345280951965119496767090676323257632353219136542480183645734170588650416936531522665047921239889585858229548840208651700921695461569533033200081545434013893293588069694922496237957305863080862132021534484817855298318916891875305776910596063137348294253222226762968477875856551726393785436791181577573136228469682148832573264367263462634336783793622563912087864289497027812957795360807775317289830120287207774250056816989217852824053834114270407776093038910074970761657454330331395505318323263416846624262543906292736644730296796794346733768020319663430049686712587929993806602054182430974053035573063755693594736966299372999198551141424333856115201453171504459562644156867603564245975676538265875080810857566080451981167680733616315096256530787027216256480710219209231169100640829836845442314115638380257661810717870002488296279201647243269838886872569238317070524668909439482247126147141580047398310546893763602486915679298553301944650869456716356591726338258262500501468773884604496759678734228789210249011980053298370139969598066728277481811941048191019012969629291617206544978729555073792400271017151986932676233978602647482167980542727709146462276469174189170190362792841842671855048555720867223426371663428624905311134419242588479246480072100713361083977054234627074116334449144231614656798173252605212932703682160304545713627295834234570092911223185128110669054148243920106331244746012222821169130068341752812911547011653403733422123388255009744151698870105885742556050543175427624681407744837259885142041635016534313357085064202818008410498772622741413369401385109844865838640253585457972175784022076931206316052551550416152897615658139088764712980141005951702319660116979924837734761241900371513296915877124733229385092467044405318164682115066319988197717528739843191772958615031883086896510842030800187642158202108220634808795450012115327458460331625959562646232312495970282982182230962723520664375184356342859260612207207565639025832197273488238713613026557614557810511593595044411591902436551434531338689985172892430713380394134841510262104104691295272565291918098468851318993136456784538599027291122027430063104459484259036705119845049938636001556282752847839312529661180897129168610684380064092906463240258268643613309832004686789050821152566741812022375701777340113453988333658359994124338071501418978116132401655481589587769503286810117551839617652150351733658866413256356443073245108634973600113165638039457273361773209369109882010851470215473277766781648429217394220482022166845955664929941488189478305494061579205226631657466821590249216717969374564460360646787519695981108125451726265302757312219274547956640098242010718505594088440631823125642123383333856450938737405211520735652099757001710572392494572598174261601543860934462850095397296661161387395547746454853599871647829263769498397426034745683664298011271364384719694501157613528418459352020267143036921006518832071602657408653948410912233045779641391821393866209023072159600852048369150513049967915911081660147449961229161734877665342476867961657304404774980132379138026119102581467056200863763617427581814055838082076843580384820228246165151776003577388303845336922660842623455900284935180564447319367365506761945975687087584749180305488654320752689229898322279264317275579504883791981321243629232218915721599248162965739260413659050726275042721569990465630719083172122675071593178023129735726811973547357920975942660785348295252810251783936985421561745843849966574009296985116694597869476903005975565328714007494226493737142092990686772957487101431242699212990393460582932255219678850828179270077460499532815521996689483853523972812479722805236685985302377434714332324404207342295079478551125637496970359370515128544231805816548552234874962434984951930592360918574616874335069477353239864961754929803310872843133492099943107573973086308168874805503834886283134356378974033494624714159952679943229325747577104877654720474710718198600482428230119358307617188902441314291651311107114407273011136536113244771944181042504833897857367409867049269828534141015181057451308007729937824581287977061041873968293850029248720801446003291782332787667189351032040516748607015745231323324843649291307279203644146823485628698088541424286169706109914697144013906505367479681252786817595070155376824603107981549514327138998691428058136846281175020503468271657179645281584071170235229429383775724151785058170194135442510567889111855344522542317749340567222741494620856863475507948869358936635561019287255307508065027233623782480862117588186543615396028390085684767756404171168080794710056139276440889103841527824277725416442731740774457267662133810012485825545458639965498289961461041310204920285438442176217297000056572078091451471678667869394080456417703420598268369881147258688772392836649594561104675539661097821757148358982502258090369418865542223030008297361930302408966564272548505871628435475995428579078141980190911144587945157155467231810479841259363865019965354617163559790882282477162044634184276120793324972954492711560435714159075755885005150691043537132632280704861795038375454030894267779837209931386540073295716865456524033516718789585111298697338222357549189713467267590248042662670448844296685990189685982364927017871556993304588317120299113606966954223752247621475106350135559331171850396681795917917276423418276784040161283362487574976075027116213932652028195630422091657295704561000682571427969388557567351822579554260114658059797491197174790935617386418748642525503844247930415895821806633976979009787346892422170930395930654446107873126147109707718310616485291760281235093843991268737851200869904088441695109438058106315844050745567425610038155505864451995936973084925947724807263985206410969412623955321602917223882605789743054753938763008970190431318763713641563843478258494023157001808760831442568557078428702728028206855944063308868496407432940067347884840615684281020230750828213016370842705883144619591811011254758256124045318643902807963975509513499570594684598079034292002364679206250359093402013684199372466722869764105318576813921240628712945342776235051130637205723461296842468002433977471702741199590638991569609715916573702174344758347019929679732658348878814028670044960092925124601634162594994164773218016851547765329430881524605689339176852030394998113017043628907587361218604843080630502649108622289932408985199520268313383739276297645788876544046335390920597689376105327776518789248494400351052831907201518522999773694035999974162153174012672931196839531016007570929650957599047685127218570322933594600669562440570793395227224160032388784510918477494763691206918354755753796095675496177831380531650691610044672298949055594366839938525162323807247638599673002210017218333129085968072604203548766955136566727775700758197245969008503339066450975068848486609877592718568740279508515432056542904921099718892073760673895727876017256963888678669438976498061691948174436639291552203912859741723869102950876734027102531715167313190555897058567652447963921180932852794369838554280761363735834973503155946615534411765681548198590441524353940578245487369930017994840988922667726994001091564051445530182068722468344946211833445148371821475902213057681324286657610280928028835768415137001784351834633763498423774976521319647908882640325876744750105488006852860819685900818928679330917454316581875661526101634529620461615291175671653026360554139981256772992021385249635965536011820609813114046099966804553479322964204564809062118329630584301852197294711090998802152504512227779084407533338035143479579447576237141114763505307570024721277375178936188796633186309995374110902779809572471148529073659301590011016721829834477573701763364513019179624712506867306941569623608446693755988326026321616400932151068150586089406027657060196076518540843311065876578029444632142452175690201452766122971516204329344600763101963556971068139374626221206083845214260616516192399472719505065485919525473839394220831597463956091192754695900380684447515279155294018808731425854127827790157842455763118428299190873065091835809127583919885005327892429391255053993250377508272661594618044789932387961630881747398494439395855564336333310484480318917736306513934032319705153377272324940632226950183338085564490501152360544606138508079575707275132163385872159969966432629164698887404269707127483364584018234888436660807557409481271277832069159153864410529012360295618874550998330713036029835654561687509890803924726085818682761054079064853545510652260382559113482014524690107662159453218821210766994017696204877190272389283771202950788305001009333015160456816429988646243095180855840635374710705688931163018373963111469263567867572542146037745566229719164710742908369935965775111287348981415776729779179836708391427142444978083009397397487965992835259284794722343417155396713497239509169874364560358190019830568807960726455225120782282825064959938688950865014609147970823439618648476217413736134831393112024150646668891036493979169866728031777414434370375363352642115916416410298055364828095346064503883279893119051359847046670303832640444307170583703584912953906342332388370731246357391916175164690292648519820351478233295096939208466105395148659148163050271127272679583078597435007252692711238836270066172940604554319948204083352803011385565173031276208877741221197483610764035688062590922867141805079019683359618732733934453168954183471853689750912849667729668012451498186714362817559336542740135564093933346727907730769607108131890962658770766697487137312188580750176811280574619533793058713522387287227634871509991521837967642564170982302432113732448631353598015061991436128346346625036567473503098023702809300631855740465940882866292374451967988686270836330822542545961379937034895841146563107381358166668267726966871401928232535589944750700853612967383653552186542166002057748490158721135037100213061855394479599963062724097654138038525811068367789580962753608717188287205762313625156080013531515694887046383883512275787891900276688762171848997249090610657158720709700688528938529197959227555121466952520688802813362551620512713851466695356495645416804259046522480321799515058493942903986174267929774768918594398823966656086918517855571886175796107265349825196130175614880470085570897796256452560001462981235049443833938526892532867092146565558968305217597740278265866291899961466167263509550283734787382763148196806412040063207421840752893028727107938942407500539519212295053520456209654744248318999876050715635699227713115849697769705441526160963759622450866430521863732764193910336310390805430587334732684738102099470995967846070123580915248308304375875582920332532851486676810708299653823898658284302845947635803539800988489592012280101553314991751521174864380988815134552963426411369656315589577745612865077110978715656022478316712990549376313349075539588200327789180454034203292872376162977955345954642994931280026009132428580114272152694940335331997999358597479730052259963148997991394363403269557304591573561301148251331829012790712533977398539896231524807466833144136422041193975013709605460204275276997244181507050806473011455443782408019375447439255925582188780752998938723079925524079356145942780547784993880060295721751709488180751258843730751841092046473067599398407182793127396291820582609182055654579295693649420224148399291521472054384612195101807565744840304277906306689831769501402571974272590520399919109862721620335181690212491378718302732555931187996447838630231246136556477313994029709111717779100497060728313234138243643601586691579349906524559239258038600979581848954260718759943111599234349297825546879387511753715097304158169892598906791758819451133205074491143223004393831901091758254614197812429965034200327429880579498625838189656867632960222533966985548896550335022917641802708950183834093817139374308082859685875284143161010431546407291985381752433708009129974082643521181374524796147134110033520772096251623093773609166981679084405815365892676195757037039422828115315279453493613463177730084135128387643927748349342806242756331687671907497686319126159000241280819420621028300643777934437995426416965198152734577464243775078181099328179796334659482792171052914455851501367805560008775442972737844868485371165874339949938592680367680008562986846914959333397693211590368483835957939262169983384972373484318670676330701528995830587994784513745055211180150023903030148739745140079284064157361533265935274018067449309225814818064015581951728253684369286359088476435534953262602955247649146448305901658006299885880410717680684699489187515334879602186114342891104358412046417665199471941035211352566473410752750177274299178236106019003507465172168882394287267521817124457132903701028640483285147291298911090417953695559626730299583840136965947613986089957094308215422944425913204654459790948027365763391168352470568982072623526305947983092651764003655248559104483548560420478409887072997046268309570492558616146820253467806163527862846418523505559108540889896358565623631498358323094597523940069007017475446443104878526977482393582976772680157878270017742499406626039039570465454580929546992279712892107315912755900798392126566561146389105588626928115812749924617423087992413711675373548015305224294156799451262869883749302692112157787004126131618667095121361771362979714395812553750511973513872349405897055222702196069733018952870463433901004514003713194513827213399832533163845872149323344102147740685968365229418958851861845703831054955149378641733330312488704665294814095405946735908858393593407892113478325642913177842119514342377172903233316565084793134576612528321016632631979805670242745926768474478916339793164232229477735941882966824720342306705276746060463940012241971615202498021907766849676779177741344794319735914543947263827545348833212000127349599960840289268670118197984632202954682115699594019561416527805291869626231933412062063801385861831990541153711373067822019146352727867060662909425185366683224604093990169073338628559315003629507782176902331591512021650110322219694200826241922198903579852182605912341843557001023853348815291834934040246527519798032304782104795397541527693588205987742650830427212625250442154009124456033275239665321437954158686165031844424319068352531450083655264609907763332270549979021138015117616307737226814867555438118851229786037078244764009707447047502009538324132546402402503388589562327699232387061155551503140622137024257746373037490444315420478528083067329043395532886776203057269693420943098092606608713519662934877911014073833822855583858617123294200714426726158158821430932979174818999544262406356056122927774810575124525921514377464112087995145238962658930719630736064549878803754871649159964199476652456837305291877719412056134610538648349552130568019838445486598484797555697418115742019319254480684289269958870670973463776271199811865308441715419871984139600206037119142905308886317770993979064556576491426720199681228188410121258164661063705327004778148350529141603574587975416121055885626973227885141725673222490025923237593870382651103164383896468318718273051831819168778523111022646979650150858935539687664874862680062742638557362416717120111012427398026681122198390962801044768582205951625252454145142101255821636489482202879765944623477543984553349475304280984728068347094022188261271792416556568201663956095204256724973160630322384427638760010668421112900810855761354992541470002383759865331754583668768260759814456096615126844464563245339835343686868838832959973222371070814394649418547329659961091682838956486204654196478942842984556608700172173574021612277216055724012495823496015847229981592230516239815377677444282202819095680287697098155745831485755639369590991774079828892889242604218426768987344560859107659209320386913737775585544398439888882327471922452616846525668207292167039107917541773578915821279106679064939062399493682800640667941827122426137607556395082950105835981845252688470839943175101056768548636749461737582941160761129531180166616200391569826155478713119692067344201508386330364674175788889841099504161079230605372252199938603526419606758365160365631917731862871360716311153980195428670315202676727336293851144760366424658192695684650992691105053818836968128053745079654608117097261443526893997452239365595846608023533931182243338178402660452322954158330296578496020419340193832516823779318727442666647399921245433648184238799308938266763621650320689270027971830118552888472950012960399876551804236914828592945196618151392800503130467753067721181273526854940046307891839576019527777173588843024460589491130189235344479283020680231136291859281110620253166479448246505321733958658951718525103917574084894547487867810274712729466064658347884414399313771930735823987797671685723913926545190742993487430153208656025730063059714757940027529227307848417967737342523799786447118311287297402190612810547867440589178330249314094308357092218838519992146910208604437815445654344197788697570846606758544984328931261297071370097620770363309542939109896953075152381935342594445385926478988656589989236913769633751418160742253731491753508266917154931285535534686853010214966375997611889770058703813788821051365880106645516792514882211089968674443662598104961069527939360402898123558692078327060636606032820019696616068656566117553639708020007341535170281836848871405916050509716157236893766583211741864600903094768341164724298180160429558958645506342792782474892046654190568613440941485219561032607615247456880258916083625200448923842904926704799891695607111421927742913971253495668976690376335559380286414869179905763140293399025246498076859808381294444097236439653144487362860187604178777367581067879803160294661062240902759322747724506441563601949190495663014221482787511453860386587511542158145087529469767780492197811791575801471954093675857756353644684232350062172298889221140569153243168963755088060401493699447418298782892967296566813848687184677344287494011484258598606268749490865213421967624676983390636861268034256652619950098780304544133830324149715600832627080656641649068236540577217075845347130786776080787766917290442239831275629176508149814778107077381251132491543979004273294546392735227510229954196102291167951791781340403552965448635460856879157784176800228403426660879179371185512555316909333680792082756522209877550715016544913072929381452740577766463665327990263246470749547853201583309386797100024047371623711125300771349713023283715383458144869960756293698574634352984780921313869596900724415104214301607209666738791719393958447672673935725247061759336981661981632984217525020565385673516260183519387995344863060753752779060567884043417116321804200282198943531858280192757603343755162643531149544654955317755391380597823906006067519062090206056138445284869453800624869368208350801739429935499660700460016391265067308894617418823349141431056713317972450702891348491247569643428278547283310278402881862541398515096497069603891745963367887212232218098523856960495101506359677876981632426911588739390036678272357257722442386376613167453377405380473338417953967941965199604851841664678014529406309931434802694798385838482274569144901947386898957443042365413822632623842285862253243634958739455291087117906311819900225881521419844601302131515028170940679419132041315612567108872995699712514609991140199758940858367948979060410507387534800659954649349677678090711223167383773079157597531730822277084936142547147746591573126172610852020820484009354739320913024814481948819282363933523148341084883600220436367181469247854833420617233032574080245532130562312037934386080224731044877166717921251121804182615837079157131581837236815281949581820437412376387268923551616103517404748160007841847706108846318667455567630124808653260929868582855059675759144726358473957608033131224334029041135700585353474455639055636733374944420870422645265012621292886860027833675800126348851179579969167806078100252910132411628481489249886038666745745091754326744187840830989031314753285630762655959650211712684051694761321967546128539499340608115951205399604479888819092009818259497930539096460436052034303348147632958047658609473988073184921984352491315859297449824383511730253852672843811004590262763297340959117853970338220575291246200417790979522675636411457756172670841103984295747327849031280221664348442970976205456405379021118053342781181660164117126684462142062350385638082875327031018747725053336433752973932645730600070704944836059018869612572541283143248193392605490590059315171668641530067395004812996948352620837624959252804747527037836991059165433859105677537863105423834820709140016312397586304309323811128982581925541352678326688230046922205691621328983552961960554933808145879817604788040225268818820919522543053545568181747187412510827790351554606266080900227231814038824159538986158368258410276003351433730340041740066898299876926694449720789562157124482872564989548536915782543963710712342180424270527133818930749232371908022582682027846844851407278760860989731239662686008130455241894878748245851144122241463460647826296208444962947086769241678295130985779545214881865897507490030969232534949997618869722252076052493334770290258928527151625610452227826115274577295672168115014927956530532228674117822367332445832989408690732702398907734426691985203137149658557447446181696654881382569036247692480762782676988027171652623380166084090701350034014062870467075385269755529626956049247541069238283927487246972969830092291890202933237900188627101879525788708578331462656190679770362194266967905028389841332806743410365510782971541300377089103522111779737467040843576889291529218478027332029655698299859734403945228784964166156652820992138420618212782791682723145669527837792503054518791430522722404074220533825242888157690460719395741774365008492875508309103628769493850819902226816665336720379571506856040245626163237325492891266155336111724978365972157183960092689383333230567326961537630866059323515893782866947042830730764653736056985172886887102736151289889010573342931992366587455752934010307057844136653690894197292394861440671347107690674368469602796294404544377764002838620081344044586805812844895117793749507012911237464107511450889073120743343425456431212632757818763509950890623322391605795746556531194477915419359372666954310040165255893014182990178694985930522325802224173956224237902312198398101606254660173717945357416582420534473223821113822784675031751887276044615660076263148238018348047480304200530883417694251700043139465465727714649430727985235631474077780501450247995898691018161377046979751702769281469391292611403648424597259525228382043367806325836892946183816954418084479289599944334481005270597993277693413356804444070224340294513843950654161649456147433333298042696503859255666260276724121017521551221467118560346337423557660874449761986889854613528470867968419869947843477000696050177590637406027396736978555786878591372213163427299816724941132792420833379744388851534816567498704942187938272186396986541139051096985833129537397012636207224186202946463544963729613685856856543075937706172199827995521922742726288653451562020919004339722747730935802727525138093885639035911618266314573899978918923152794764299423861525174352082379390353273131114787189349410497819752361946892821388133834146074933241485833337425282594001809268679521012088567259881812401582917909883409303436657595769621100002686754811104586118443748691742308628678285205963623565864203916386360033172762238488524223134512987623074060922896074112403351001095296517810376073095652229042284906337674296294182787429026450595565126589026861369073175728531454339848333423658410264420324977483057970121832277675543838548992427624561559476602366836251831425543215629244481532387917450394178283301712514385426743039134507530584688916080921400682957579358228100857993716898648920018017530149545540148345043167462000054497143222306363534846714639105620101053214665226795970467535169517784765721944744790897119952627163896933567108212542166207766268773024635807660744976899494519839864395814888100471335171398519791779106173353004650212125340822671370970652062799539444629731094630433888442631990840136453546032249670405392279773427698105222275784754586815206760731851396087786856412889487846775820069504516756274101884155488290260533905340789494980254748892341413796286606267752852841480289244677663169060776448265258005569032243659963892050088949931772676131887469320268860044035412185805245738555879748287092198881395160029495911803948594255625939838245645176621694143026522400867889249780020914822896713983983627195553355008773187268598829721267428175637798592007322142564903234589293355627072449537034300613019995649654534288563157293998995961351651964932554764139071009325105906260257838902912775760818752795285337796566210167616853036059530943432305787788467671563077711731244645436927949596357160369945275452121520117082766087931519289905310294447479000749280116281578367695381653428232943120180649933488909669074015184995062635988294660673266999965965465405855545045258056195499780444859186390517501236675975661393834245936164798436445209514952895017435382019429982323316926027590544158076984634125083077826223677553059415751470303526656035213163648054093033539584963335664483272746505491750929619426448323666908768052475341923024631624526981735745337446244086685174788057460356036395763092094524025620028853027317108897069229495308010022207233091054462010256089818206384188527140252893290428315807999075390860740032957444888960870834746324492884296951799249008481049593295862490544605117253873336977712474949146732342805485018676221210329865486917975820088468172998302910016214884875423088571038493220145091805384714161676104242367449046863658409580061679822015097865667787876391703855146927462778813597305333802843919728678608262352049148448446109142462707759905516441226674892638135587666140510618955240487429870281956088360958758104892714094944660495261772260188205070187432535963899598195227799942270714184416815043274185279618557666998983890659159746820180268895364245836582447561278385838035199047932940940297036675034051523006201196762945897581064449430948539653246889404378816051501548846512848725928115961006395627850009100098724414735933589021501239502334567393058547638012188624233667973703514497680969277534732557202161336931187237531580514479665256402495612346611770763859204123956527511396632377846955008356139881385024631379150884322788039919131200647045953571075264525961633023109522932765080699598957525212785941711241849519581619916211588714183758387567028203668202299575209860031920008497466845993150543793994840830284550321758604549342060868022462637077818563199936789400207601368850161623702315957959947533426187907577651632940247052174598029784282710296634678181999753150914054232884975529125073273961862201108618130176666117732036017973508791028144795033253318770796836315940206341541099533672255673425207710546043271885135117743747751545452103854898424797340772272698781420624901538346303726988581693450728831483161867523019187833874834908879251088785022625115468944090590477177528415772069551668500496621937811056593066324785787649995600023085614397144100620730910960090679641622374417936584177714982684341050681067851308537131154890830872676557348277325858810370322367315418568704757250437348765494966906172579189237642086007253091370105118110524472647151374730797851708437417648253237532886213887422650343198707538690904094762803314345467441770752384846176956799970197343798901253657353844674046318762936261509212653617772267588384805640989847976888320781826833807723456951076735230245939881376456035458452089791310513502901046139158472654628737692933021840497927177635420679851343120192499577735914684721413155945476660706832404323798947451956649632094444093487270175380904680265717768222411490803293456309629526161907245723244578782564094135681395805511357817562942418960758147580245350714870837044233714679755772754043282602486151588356436965579031952330225776233372528578382151741305001072883496375609098624426300480446987538275466761871246354784325219563346088578625252333606048087855905770041977456682208753112688685187825463063134741291775116159016179088612496021177951920643821142009109949897706480674900649730697206900251679785736477859569962853198461322289601701912209391133786140914567032939497903913701739121195742824580720955374875677601923894109636592387505472634705241741680838192823878491208175628765563607113631691158084809087373702011761666968472129545912865049513739418152531141689805328746123310844286377959239565170603896172992629150431416214249613063911164415267770066993058868245792073879185100394024015642214418125440209378788915937115430810784243840987613947724309304657809285371323720212160383120861158096675837491822344702583277087937937815145767951990990118007426714583582691023252401000502606632507357513764515079600732662965389951279787235615401360112841615218549757658002665365491128930451684962561811502782053151229463256032075755641550914526786158639788554449878229479265018396004569580475444210343129422438605459922708468891587557973790401952692175879734193150988839278482732656458067341266663009799040961457201311168422307361024570858359946981503479307514231834626737848814762266334171696709337424222209651802452862699822450976867620323628515567938672233945942380472794279281402512336668382075255645772120163533127723208853754103704001568596120714257158333942447732491410262781058588050709632675973857880231630997486867628376921045070679082773240263695875551399333657350213940424161930610457890036771327486283465177518623416501401978090452954288019498614302311923777332149137064733665539233283068367431312500972970094343373317638203091647039139155468623744884162796217519871093203819942371637683114074557555648028496773412710762857156376210872298610319137199081823218047964940227517960675801107566187924403030996844793788069923334687577008220260878649369271859387655934638929205725244612398745305597681573306224915674057485381083116308108953557942310567764755130715284955058234384045537713783107235593698372330799567509527646728026785968445073289739229963278096931676219441826672842463331887456918800368850591389438275390923361767470085681345202493928889897056242193869009848955990189268829988342496494436872270943902665738255482756642783155935941738289664642815465535832609798968321907231322895373177151293199831234121233108494800913895302412166829508452016692377555545167288250719883346885774631179516414579001038426981259994313988640010649683071565023795314986079127088756083788277530536873819822558879243323912565256411674919239735096794145543810641647085612044935494105517672389999347967585769072425982516421677286132011939717070822170727233700611969598824845983952318738919175284413940271785739027632923234807091927390764860315702504366624277878800844907574769312356713816858073013697732636570832977133486351295115759310180377970367930635766003319327698327426606541549593042089498069057464133156042965795394903118658085509811028509884783557232195551628635886525904748866582151165869685737098242861700003310806766818031872838439678595046343875518237935938579275052752043778852853433530883528952678224955901161131719836695871711150413081314766661610049223435536500907489625181924782618401020930462676957900608529439866271610298412058918133762596745462494050787677647613517754203499459860721969943156519772930345459292060213983808900514622253532539676191997098555336792269160025812311507231259788916651999602564254480927364970568221293799736329769478474269128867370164230940160654576314237032761785385066251932646122990847395506920176022893046170511150376156629084894768210039398603001473633739346515079085841234181410631163261241598498003427829741088714256062420366931208682026350040655264651632960226729295077047373291487367354982959315037026917447286502420341448956693363719374450017161051245042436989635656395919486446045808820856886408270095905472990108812962966510972732837962548129079441327891523099949948410283266158670527113679651704042000062998030390536824822084959180506081305711469622053717504059890487038761703870469560663479109564545112386283243384806432209521633505290971465343737155943658065003766218752541851087561089780347345762472158636760639289173338344486316480791292004492277901618753381245983485236868207381694562853555122085245503076664158260479265282733841579989695351985981688310685317213416111216198633616790607698922380527926201600507631173471004451005299999531638060357645132131125620085162315825546706879424299156030250409041004905194181007150432796056634220108435898088235967075861256301908997288458965627490268839584419954407705440688676573909476353272377493388250112660641956259147336720187968408024744928105733691778294396375472314265354887824250256411420935161514829610035969161922080515202977136988419159190583596874084116198969695706209223924850917789770825438876208784560381090837287538856497965581748699222455001986367087632767974862230747076331388875605292258284833990175175211841272640998491462070182476677561961810048568772501761047916240388218690075527081576333260790110088669421586294884830735881207736589090081899997716365990211832941466406230422253336537866038261207433580332383787759523725355140641026613152470670750402507266106312398827690879671172226357149497366316323459643688140759236606150306003045598101178447634741206430041752000689955238729658821245462004572931226445719072975305493120252842595551194240770703492859210346929353707808740318378497962073277860810778768934585180628398845389379102404470823159018892665373645206123705928253039501673572516732945057010264693810875510504679161062919715835415014044228837329131296908171322759585136030002181260690692358034666170690353434660847720202664128505849206913693927791045904453793035174557559513001226653833166219234205573138685458130470750425266020181562022053256624194387149351994302387732664192600288557439768510095938986640532547959614843741283403865813848643988904486743045558463993785282617437114853207163925559758348448166898119353122496110815248120224092392173159352234982463316075118760771546292524576683015013820422529027160222775465348449126354873900454405776697303489827707003615171628247233323386618760132140295048711341896798957782418928201311663263884648048041908667398494284711052095114367797938785573176846821792193067752139008291939474181014027087512609878675124432829350488155991654692232202202057264030174578116778691563442175706934481820362921505577177976045410117345402111816630814474221606856615710802467037489778837541953672680028313110510726346550989969255996825956488295564968853812555731012351725252869977396106550676130893749218861962257116192092518102598008996458752251966535399491086053851126303108750109611558263112631648008982212153080195312478709036299416536738014191279375813787983756268825882058142079751042058830335422006338632959988379294737535523396495342705763288781977427076023381391404469108821661538551721853648479307565216710755544699497661109845521556728380927090522706767100681972900474816750789083484838178852481135009191784229376473853473728950335046899993513070979759116801098245594286465649545397841368287170950226698432313841174837962317246270908300419152165073415792936005709086490099538762284302997790198964943836311094747576351708133119638289863373074425804929762540217349058471882450932308260621107954369409119420965621231193021544300891283433719957454763543324616618855389736981105479903354987285913448954309212885043065666227920294928458847433376660747096763004050435581992420005184238366214213427156378046737045168026848745537560849361529107481389199822649063683492425674080755085150756393674427562842533687356958114043001003126677431510379287239106489836963410721827567161955425518622153436758441418185374033638542980980906814577549549169939953977241246474697943915170146020947242540290085084220728723166936528788928262396883806385155111698116119281686123015591328359972370516963180982152076536143971633283460871219681902082746789028380997883223706733990720230301201567012608300027329038100014670862084120635110577700376940487712175516213532171762412034362746744343417458065523725961592733249565174992647706385877923403839991009919365826435588175703468694339660115680492502856139589922732881087058018767080288471489129650493469735710834584241922432844552542474231484138629312375888164821656509915596499287118465998598991516090187178417509198456146375376228151478023887674844646612178863587071083049352841886385947037102301238795614430647846432857099550113436840496552151609152689935593427210926637043321008493497231850410145709531094020578395182120388569175003580553716966887886391149046521638844151160869650695124708854685275904213592503166896974615578038891712163605876611909074245953543832842276629450669695712301955077146570352690360229388625182439356939591222050752087319965671837013652084760332902815674050857590344174972752505828710762435347708060098763851805661823854101292858407366575439762003378574349125701949244024291621784308277754329856938831615155928411698578775347816117111623657101524284653695911479165356481074612729981277758432329937894906398673565978502045085438377467878754358950633760161857465958522552708223086103447144483214743717709660424941591955639898822284134712861618004124668534254754079888844977889216163090194680794499925483164420578094303857873019826306396854887202197721864327389144916452442048774506779120600993088477404238681007592333650039057269548182755059835172692018160902753831034507765929057303939990433817809901830232727262750168003548333568066562129164602159594281095681501748330326118702252254462221154052243243076150987382789623566487342127715685783967161490101444054400045184220262177080325547716011795009037639759893110525533191865141118505042749055937258301204998399643564327004167389335317015190633971901127152320540502250119292121347563436129641175583968309105206738481246429856724335826219511592841905749085883840692773193852874458926268115057273830241701971571038742220475875309610225306143109223181150710809859372478583423266220060965960752310111781166967499884366671488275419443583820037003582653503262437281485955927549013290579174178026743857189432025143092181702541533641011804123618276947207438388462758512509788825240767871464966515477207308295116509129783686965398700985343245759083596487731294364491094607243029032774329456865416313745473146855557620315646431564862321604127705447726849127432207514058106943738399097161619168404222110702135934131392844602334601837430590866638730964406440014011009074533974822968847286506804027785765059682884711822515750618425507766560457621080016686283300584532877944523200478098906022381615633874731781907636154839258090219119445368901418454678891087500985722787739469237103379056562318506515811099143719494790018401375206236103711158181712077744806963449432708556091377783535350872343627205657055101726032013787120547706326154503139835806319000692071060886806542690105457466313377426139869900563939794040298773005457019359753710033353505103702293452861925316502934598435880167557092105882995010184724343414829247421862491311386291022725940835666461057165387491722361013571103224124620089517429893371579082659203954656552077660968340754215861080124302602984835578214059955299210430196121293397258992561118538286543827749679617628194988309698028370896735415709622980405528950914025845218555518385948785920442576367004042102568306817291330889862589071697772372639143494770341531003889884504351254444724515620271530297286114684680808079493137043038845997982589671117946125885514922045610077505625106216427857512181903676016584808723335569778570625879946082114841176618081999773825599697933149791199969961065648495544370710573030315088010036052857078809046980824626476025944744386320760245213042228361143094108445808574705112387007323176146508402641650966119597533026756851766192486120920261741428750644836091907163984110231812896472372954798966043139363499529409974809650777206821769388673630373101784425155720622911460220903697253938774952141711185200319177715828105123396440740378640746527511022867550094148376755081532575853828466430759366157787108067773629624721100768698514959298094526805105756364375142845359307467835935392822457986833058683657486652527406876020524006011699067751754386187846807305974861838824116532227831009075941004125044709338499182018071621230063521292636279060332959809403614889746742740373497937112282651030722958593837647468422616110402559381170318728352470161023068082586680864145828806263365849685183633720934079427340136714686692953366992532265547176925637666285219289017775608627329480853912536793070211724934425638456932925736682654607638046937387712769262623376836505156821383699229859809132726861990007295496479124044017236397093598157532006289916967517823511840493377888074418392177766994156539901100457093932602012007261706619515129426959215067030225252739063090468913250598573104453729510407984161460792245102105465779969103564101587074219359945172994219244287619529160410174503906867359804324411599018212699680678001885647711682629443091295746854636954985899657883946675433862531763599597891123766191109899592120059449982530521370972003839728450497695007892760010145563207314749275455031753349155488112440222276326083212102450360448679646510632098210268158377085980803677631988727043040966417129734962279001220852087223477711718152303567268371251249272909762932495115380651644972532130680190025634784723075525814295778156682635136401797912261960233136317994808521853422524394390037483869030519609520636157284176463312254179804429866520917711323947182831665484158597314678444500096471148784391032340508056201701197367859708435906225440255769967168773827519684139988602691010566897649968248522043700706053220175547557875710430845320853167198263710481252762491710929605942859132917125767305800081399105469024670227366056446429016654502576811232067638230346958542241082072082428981391187070977934925828981002506572079723695622362322337115171329935261386631886417133617657030020713896983716870079682308049154994829730544265260851086029415586341075053946289903382264825164014477074463837725342028821108395174343741639446080936741178326729152414449077220706410747701206385334284507037346458750241937115889807931837768989905495525070851955639407696389057769845923726241422810544262240185564539538331756306614749349155059660131779108652460039087283263266595884349218156007161623536345399970969646496602389011530971999819993385671700176091456746382285167454345986038526441794575540795767355952813414827414826277428303700608590515432688964358962495471109222601299323243490249491782463225970397959335076343464987336197427315141259070241823256765583140206661783807211446287314445827679322103866102033262866202089661473132123151912629052569989860881838500348019702997180162060121555788237460539412914582941002045768764891917507097200430343250088125563544767475183854147927733192291004239007799876927351296947335470260483905450277139844398756996006561368131310583353606396157557504212511486891454435473151258748768881590071064119958672011009026565407528140456038245328628300183345065815959824818465564933253307000289997778182293635437995275501521150717836904346825562370816266942303405815202660928950458240231993232388321577789974209306191091655918362157090878500680756872383868345270515428616773562558812840119934983522648163792977332676411403609937500293946255219164908260240658855208387685292420600824663891192449721570645354482191387958534037810932142525433981480035709572302077032275536563155503256345580881149806619906108625691150448220372079990047308423557591929833288621922084542857257720085013335934594681426130849449493020296786379751127827691347447947157173391366599763006028020867813425514367687038862330164883241081434511035037611960510106926465231455543990665194994226300829096349693259603843830994543020305884113506915605927495682477750269783483953538689113322077601096604470866285233429745921643290798950258864304413668512248670136933465810378338951400583794222376739754589837094133438893310432394467236972640265061778711872269967174619734280106019154917207954208516837158166913329945182131107025046707990697638330501020101283417389877750844210278364362491777678737885170081693732622655039030557558925263506616733681401918529464096345682823165284201909964126266231828570253046524648026110917319041402191173170533390229717465321270778878199206985635244484507176554277325407585209466332493866075074436266807075693116707198428200683699669778007675352693318740149920445097685594822719598956986914640017993125719570260670388999977780203156245190164818696267230944312184469456838103734007016551539328845140858238389760274075626894572961585981032758698142685405630908881469424550949609687099445555273585991787026616699176064517793788977078402745108637474019791309806986856378049041439166013579040287656513769399655302632306077210448305371492926643321460996122185329869604059100922100253754968723306778226821584211060547899443520676390016246392862315581926230747625097363074466035310467542996537773033787830126539717921937814473076667883185129951170710486301729592267826672668577592495553893671267403732153260830464555199339471741493944148891969120510670429095323620846795171172643570027823383329777956261800838812250187950472702516335177902597315648659226855535826853093160902114405725902914103009633315286410963217026416594696863211450624490656723955143566538932516198424825006169825611226598140068234561346932315417784419354799191089333528840122673199864913384618507989664780069075481819170516807461326029829296780452297045908951432916029050201044221087972251815034791032104446070779720391451558159553741375552489365374223906988570426361695544476803290197423678550789794612472235713568314188879657929709037298621677734645303571572133872288257803106244522251427461284331682956787301037459524084940721437397146547263290943464364154987583555700358852644000888490704233313063297875939920730991976177435361048570077669840025232877856962454913219870424619991648556490631180644165856158187595315532160125202925328459678801886818099010009103139493079158208279507421557304340282510659246657603425926795693864001479614040328237372379949303761030242560883646103074411508761917808478413212481458721472986445076904424404218019230770722255759203959435456902453814221137510856369497694453017437703097219173466815928479795527226698271050261164493855535929612183288132542171267998158398088587125254015848499768158865110884584597664053877743201750710526600585570172977368979117611447661595078406763601426124512584504486325997769194379514726301314563522549123002544667285396452327603942388753232958200593138278205399465589257450428154280212706082165961080147366415014222523172298514059924009679885291257997699874527289605477743610502919025468539240796940809869393530985548075748807288223754137286417244936310750194219231963939761916981635663139534564058741309221895609095651498444771355932081971986764243387751285224330763045431204352810743103080328729351383859978168920683923818961948939003513921204866382689364619242418291489310616429659129293640937626974900326229006022120934008742330950674453868355736889474408289396133500017263230644942337162919284424074140006443978111497459112620237545002316442354692697442920052376506941295924420725727674676770592431948861695367601713202209926172072467748141018952149579962320850220951608271528215889766030307586217758513890381572908408317378008354255384458569617243600526105400954485388900287145465378627684076846956014994545655396914657282413387428861848724418273672798466124980535641290672164912279592359582784552872085345503802024357500643439347815414160860572719435945472337646852146261375938317778893349258952251041378673736701839849720930560633124411120948981445360355482948303669305775821849425700927502040521285146831809106386769037641639936148363854348955742549574673220474564615647523169184530886792471088542873929890121555453417757494872174132494696003334666902334778846683615355509553021456372227624697496468461268484957317232971751380291124114711657916795491089291326603043175253237358121800916131007450599725323478103152807820269684319165128016810465820502811398942190275286143151671040236371445682023394985006097777123280844661647953265270233639484051943316605891701763759319474595559711803705381170097106473512901406360680581143924248564964615930097235840110567086095139696178489436805346766278594595491271039866326799859196911939567200695107004101043136696521418762627609165738669001982374867229366046442928612867627004108714559299751310642921592685990386635394331821183015998588144710889538128506593429373831854985153742270317027338243506338841969941716313621497118172438247681344601997043133984812278059812154774136429086891523773994544837430194673975131024830445306648818317971454042574597368606550213947746492139771694754118631434145100706727245993443267009867223336649614543022444837325987469897457231139665014517038886104549332222157696007144057999319579164716097706145199988008630869994397523527186858223114265954634272177212816270708331602972549324708840617208164697632644262469065503995188773709084002671785787588875583382953509199073731437812428266575479539740100536684636377728581322851336855254058404310342380452704393000777476078527042028223134024579561873851276040148606555736080673580628505719257473592112899565675618904316466350491504574634681892558150913184390084351838314384952603064569574582747350676755862229396304446027734869320701089418857821121987232379354938021022157101467777462442427080390491547130981978682655922565807394853695873261829150590599954256420462013365830106235963152057960675290579444710490345283546631436618932498175349769551283556346342825715099544558803134911574566961601649575516838473318177496917768051022715372719776897829606526186267630767823744374700365619027332746000422539821943612031890468311223610639306794480519982128964849180733273569897734255333986627557155271133033336095619271445282376744347901691652993578853343705824876348891892022373085765486223410547034119130311438717736769130114712447062480343246766806192997555109757852807377816919422508652095040451706024806985391653978605920937817452060167905490386162683582195569599090734918953328608236631098433610624045443191241634497381586790715380342060335971161126513285464470560124869967578982025534209240695412763864986195644042083909915249521231126410058365114027189400841341993829634507147322826501896730331984786682410895595268794125002433822795267062743237608311319992964094442523880988983779471071774909482938426449688396029396264911522994916026636641284975049571723040653955909373663097210270223823120936415591812500338478132435540495449950071319284580013492177798939313677665242013845733057843602963401952785205129510165928250498776469989880460356603271635808879839858586128626821085430947026219556542261478623076831472292657705961804836957452438212805658324092909265534846514233155188614080028843942558684788124988607025201781874739880173352279250994138135824998433659164566022716293466443782048679423101860367385188281397462078505215379093096728581418264831157073278666967991981928870552377572806230186360700805081220525899569797165519706145928424808714238269274522450278586428957905071569597009415756627922522159148536522430727306297993882039073742458884514565151314083471177715831572612719424796668695805684615752518014083502910556732791548412608976064240687870383964672259587077852211938856030093103229563745597939879004284986136758266772164214334041240595434730587205260779694936066583960793847149219281406642020000563662603856953929659509382136878220162662649122698923545062215530673484410624619138856042039809159632558192094968435997286014836212853968070960419602862299106576770196324506023459360406892616081547625251344133005457183840190875059112374482734864903873917367300514049146989809094857832335147464796456225695376410482457488704553486479208968469936609598059734780460482516750971710562788235521511361338165659713992830942803560861548749902900718092958705624294483581670812548491281350254044549477862649608597029155354916768552477836567827286983927883309029116759130853877208538861286172490935646897235128411980119381718216516647698310631684023334600382707547179327126117048672585026409142646358105721589004176584458731656852973169454870234817895931841242561896691798837020942414626242956319865581629940530810817918640075205370483650361176671294330536453918326020111795259976712743800900239536328723633175266206846427355654709472759963141614492090308518245018487710301439520327012535744638346406651028953431604752196967362465697556006682424773416945264025682091365057402846090053600347224519879503906556102261167906600221872167335734206164237014977917234018621738278244136438665975753009598424477799303922030968107933395706736196023005190194589129969365657851930272120575631397809618618326869766729461289320966006653932094097113514455506840065622464342959634802197616326991547540283502207126641092573194788467736020721248698587584849035826701358112828598629681931280560444225400527805208511666517209944990665839265960673855980677126603696050190332605739301591137037532959569863821822664936726877575666718023099735637956626568503239856890090078377929509510213591111180128770773043648579439858220521336840628195818830056808738510494867323714850859529643394117822618079408778718154297448664054838848159343047723188889790088648171073966034580350606033932985463902308383335271566859424802236867946075922983977472802490201992650681310416659076030950303943812982272631461669450734557530120948412703445357960328326890472151823863223629849301786892191216281935540463896484046772279082955550456440144727352814233651875593494807597366093442801528688514302882590525122854017199058752186874138228129738156861022695470859152795363217058420442259117053584837459589760421146715712700415028234230478914254682981461445132901461672669627154098272785148045116786353291415707971863110651570822252602655071028912850245724871171661036734837314668657529842922855570969791723383217804225210990530220317565626339110200584174742395756973666067035647314839217324909805301594814362972644102758170204499462975489862216570708197044469298735017263550860820150589360820395663665088031896245740989765998907182326102873348450392884611282960907096889505806083561242547985480503717199464604494563639015609570315492470851623753140151571335084068252727890478140105929891174509624732096853271390403786138388011124247679319901133139246211983558693311834889414180874151400430489696941262131445689500887270846238868539800024645400359821146375519464234193077083796349245367752547665654292879671538310477311020554733827405070455291220490753666138452644924680196977388852718605295823629788557218280453201643370037215940341336325117870261000984400026752219137552713362312604982470220347192138579600974541483867118893510905267131975600487914922523390696892139242583819831025282284293260507001614916365853327560522135484090259599348335228432057795068314133893935619298930242507816495425163956081485648841944334200117604511577461760720538031635402536983000411856938360518085845141922558082256373417571314537346527536241836824433902878448394516602971886697403603578357772174874943000312963195433792564135323839389451144937176710576240208069756814630148095204804291663892302029182325343858458511924532143667629623166834457577556567477881664925139503614402455093957316184057398319816921544015315446683836711976191847913272872884075206895870948269127251164060510285677717964854834779929130959201974151906312248703047856179594363306283345999573858503537242350157160637143717729747725515194464103312813727585567150337859616441129315580491007256929760832102096081123430458759054920212388393346196327213171662862444899690557687668854600209781215059879141728961385030510119641607781590195125407994352915410669775109344397018925126175346516464227370732657415171928069281788703376652034721590348592683858033943711791591060636276808745551551721552794742349977666958471668198577564122790366946034456966123130038745226847870367357072875329140857005767939452032780107489317580340471971686038304059866312903155549174105815465739595103710112278559736259159549775492811061139148914538360422497692683401999164670197268929328057223493421220324964199502510924573213661322884849529762243337573547329145244031527456089894266126187800524915678570634760415640788527143992970765179260459680672365065397441868188568187596299664903276747623683508148437368752484672291588657646445898008439070622766286284261221014195762779489211796374017139319053109480234691995673992294977723328041266364649639612337768900192324157597034910027330237254782476316795038611243499884607517725379422333649287124709057679539453579878544517081628335056640190150668300512710829083100312772638673092125305111973687033384294381595905469491307454512681097274099992003751874150642669149390066092925269086250652198116141352296867740611976852309346149167086829012907641606133427245659039813307815546149141713746829758661121228876264377782766685595627071325883871723672310052572346622116760824831408702766795913090794459807500219131683029131285896470731719415187952676316788517510530105506548910005759533613513636648242905015747382202386888541054928394469033921331650340304057955224728464452430758923346906439527151888737457317962860014599895802625770639895182458165392137344872244855375377028563726319180243374756881036924546718392377963914147774092114780305367132482547355063841229375742942837698548387016068647523281003667185831525772820366473323522350020321056795626562966955421264588444161399149133314698659726412774096140586213073882482725484271771171018398819755549560958454830913750362468920865027775008860455956165168282372792445778684108155211353169305593867559040138942058789393042030377557339875562924086951999710138951027406045532920262144864637231411518350952673228909664060697653033492836023473714519629306201041548492002305008535847863642531850080901481187471605901569818565765525259932783922143561056968769436885276506085618671347511479384793614226196195977292992174644461811003022769139896161585926538260014324339138689940917071731908680210986368175975733319844531602150786391579644693075190575669645592552996310734318007428985981231009937669473266780224133128024826795099122241620154457995972370529535387583742760341109767855321349692061537263585301843773213340612029196457160831735504953213248481522616891889682426299537516785889372605245058218213364284841243442207896670335319036333464942586055959530302016013207838659358182338726815282563854486028800728930084920618549097545506576476517512690304806599281550837910222055112115471026272522572122314449909373191190439893258357460558431963226819432107026663397050825875024999287118980502587071947926594309625428927726855821191568024649584859498641924119282270883743024500906239522328749784392267957750952224755796359842920003864595229208992346146626943240324288716114570457274264295917775311577170309135466235532135636045075599550935436492347174563388051777898108396766981010288663902829968058154484619166725130927235643780796694853245750670877424432610342758003233932710711699069740908154413491574472345552080144384413852788504255024366200070831249540814702981038511014918835262326411896600699966883873234945186122270328731226509544704000885658693994731818219137034511518606651432424175929918924621534226291229692002289219735107575012396395058040673972090519636625720317552465412947837934142800226893024769299461248155603766046975689148605330227987425126114953589507525994049584319443783351477007254201191069432938860547143203295429460981519188603783547133964732587081863087689157676438273565355157486114405514557069491837647654096966422430579828875373882617996564310956751519032259328760220875255186737430202919063963865003342094879146237189668260378900798284807158958070463466201296739045985439243081396083926037611528079324900687145347631412092370397868827292795256907646479791757890913957310485925297994532603282873285008633373374881828131678227441868886059150972669746169054759043555869713281709571949858279209294672643065199828575360420500920296864467370239699664939316485779780564052855787684612986211704707833762089417341680486184189020549461614046658088288708424430185830758249622247755961607853868745530751953668035469172875091128919354162750267868065770247360948694917254240430023687689212971499002853135956583747391161335116835151926251050135937416609215305706071899696992202700348007361417466077818962276398936805108408767762951011429878209429594609629601886134661352875520794968577384954713664721576966719312193759960788920049298346565311347780036200311822068517927396933218385389869061121009682977704838741344672034965621950935527791846577309032482970469787646213621728240910154949097153372372425396704437236768483522842286966730206109048876512695473189441284263795845979950185407145903722822711146238188200020960022953735049652378970006027094062827481086328550968181070372397650501262005676318388697933171808374645508798913992766011313712869177401636694358079672189456094554862579884323889090454352694500467140524843261163661805039799528173307581332270243048633336918663976905540307517531612146573320668969487551568365880547753073908300485320771604852374695406548722023695620366068957910903329558072415940795417825178565634905881224206597648320876789877106398524939352787980759106141867270995028854930202441477715936777920883645826628269123906348667231202551220547333960176122269459757752588669036293574458778863697083265978101700802603236229709693333301920161046231580945066900652424951615322053959006694767336058466251890255515838542552307923782383746769696456414541770014641217870146976513290106030602645850233995554261428418024911536955106208205822212143727452502079287226306137410845206762467181068940261232945902977296831242772341954383505506560608909402656887553784547626608601534636181679085019960346079759533177476640413231816436132865518265858310129645861727953392639709454111577599864039854699112601539145302918579105383164220032808339402126066097855227956854994401764393094822055567060590999449205760302118958703849796571995252315616855245302329591629888634849446257194461665528085009485485912581444286859284943539499688236486278368460430789673394379244669541474019797429783409301019750122326277802546531352385647204330682734898803112534833464122044904814601909623214273175292007256674027189790232114419254302373849932276506490352870508449534380011081777114514447565958007646092521364593075796351528536233684929229609518651756130546300377742453985299408507637303459504102561865426734307216182884486284760698208470171128408132036161718008863133117161503820517467059819950678161118442150150687319122137995252367303442477631574555311338890569308310476144788048231769948780169568751973124660006074177752719089299736610697762745040245163634412274485436056967309616223720250586535848461365882988221704778386054262079934862829940520816802931370232735729065109287294592716545021637686915071484864055199275221969524673595586749794707014642041856060128191581367828214509875383550629989413058854583304141117969170168191431508646674006684547883628134951415510550853681052741725493426061597564467457340578669808883624452782378599441834585953730823935055840481043058519472301321583545265122294620221516769360857294653222022350886870254756979074735837087219859196946184623048895012507729979633742932892085914333349242155734644321953728503975780083018655278527436473715637272121066972704019457852160705347347047556699496745654490762215533998822723841752021692758206674495919280362166018856507393663771924978659314870564892909504598006377099066776079674400619514039797196432323796378090621549689786541888323501388844069426089617571981907428608625990918475282173659824250163119692487190994299826525343853092995431639216090754750866058129347226527300658909611122432976406613089116777289253175456166851237443478475835827313503433550127017710505127329032573569711770892258677010825425842159595966511554352447483750774381623869404633914503559156736782653771870929999591339946458229250555182720754249153964348994843574142398231054771874582866518093590697772197164665626228734644310415302224350382698995326854129343063332856891485521575611553640228080966914383311681137652665246598008236299635980047253140644079244814543277542090287105346902226686889306890201278378636859136505085425005255846052129640175176832944731900121854880975015902931201932964495539550223396284565364845315731429090839863064419325957585256479569201311475077453442214617352943444346176778140970390751801068086781440621100057736436465835341876407290669135529369797822210376558229962266673527789948192974051222252178053958929583581738210029131194716164190912564578109215671416717115881303742827137008454416987399561510146138622678985549247296487989357009417457048223256198743433813921218977256597616837709468420428397801862260646194587986641444728248027816619781336489065361436881685683198613828797069704780268630750731416221255513026941310178460912989734710661330281609598519019921723418065831266476401312333040779911005547193673454111910347881398094054983373375821250952286135048992750095196812689538041360357874595574874723358357781450070734351520787330807153872201094426848352794991054480968570822902453025054404414567836984244558443407808687069201033631529746387707449186332597722463457936295685411640299771526604404319354327173790912960885919351315306953821136193850843116187185193374204081034778496235756286892276897412371756600697064723196098367850967106924255751669118454918370222860470036863273294316580058755671476671208606613567695699081735458119004386570906434837040339993291964994185572262453024656109985665124620923457317098611898796960050566139160165511211971404644531929189963260118107345128789186534900587130780054421107980224372383922123479127975093301495425769617859407106502852841898413592119730925350712951566007020466053166007022317016193387653871738046510074716891000848836160525295537518205788865660013859936158542804332933175687630838087406882880840238718274136307076698451581649642333886370525166000205870913353693178374892441019464863175636305155128863150607044140742957902946640963795028819681318824425074768576719395673953548296799579982234639310284084275350148098189904838628142744214211379646829356984832564207423730277033550120043164874495039466425303691766583400203896634268832844220034275897430755965187370043903808279086796867666280197581040874841115353946288610870333921285187957988748499381868976710230142446034422614007635979147808787350248437332393737022220415786960704285909871135427150071416082985965540521199388900983344924653960894212819656992202361311772880108511921018886903045159980789878866972996837095959559246168294210456700941419419394337253749042247281765024065648185949790777743862658426230468524078800167995190910605735447336090363773880641724162473809886157594160950589330128089372106243738736759432926694303359391340185761111653900379071488558263085325233131886153721586074314173918972294634812432755208951112760305990211718434509444484854879736364925654495084773029352967469553134267040507154232966602369481289035211017629366781319480080435089651376937849557945886220723383582485841198186580985522156352301917644434037988167282348998856662217954335458703578646349038705795950003549118231042427659720032245720820302856434815194980740727804875620805369422005170520884402923110455833220929291889789760739186905440186575081688728317805364986162059622073303808405438414106598025255828378331926339512598360642067911191502211954708814886259930661883419277127468900106640774116765514316386615510036061258950231116566799493738073279262897048418813358996130982079040570734278621497077722862177871504596710655281841889184573903699211925542028403876967791212960946751182614177278399053757483734529589422485452268655959170355185713062345621186836392154741210396599711895880704402430583101910819651313316942815834761352673733909511855808787179101952861228779143012490394582564917500931360878474810783468684108481053508840804093233263298611187452374633758311997432883030303737332562765602793265638180011364712168682497725914755546384549206533453654224125931107951033599148331025067058535130983922643533743580699514125606101026218786316437067963776220873095304485269412221029669340909105907752528107695791066780883069038810102563697397751668790115343483628343719053660502586332909683281241038776112779941959742241453904222761380348566767514008219220307116982355941568633520556265570820970210359151217601689865341613789632883766690144368539028555876500446904702144044345179388652095391791918232083116391794363719978763935198549342809358504428523146851342322723354373306297458199545331960250197508314651243146712438974847552952862176263490509498828775407299385417840254642117272084427353323272089526610361729492076596162359074398788886874213620750198866151001340710593747159402174751047140408446698512958521641974296779896212373832472568026727595849039921447994654571608669840948402135451408610783134894746285027986804335660556220308604881177101496013275869239673675361489193667302908730153383573194348672451468044697044205645525580777401218080301348002522574679710842350083624067265468111201016361620016372849783416261767127142028181855710037683142079499558098010849607646110244016418357437964506871857748058576287542556275135078559276786715051450204868417834162645344465303063298066998817833667809297733425086264149602072784164013262708454592098244266284593597932597342451463089718177535997095647177728060617396552260036776134280638167885466045985630034306974620571743461868826961793363492735976574389738543255848217502543236926591429091100158280831633145283959837332824486698556753759461891150673718944528330897529139186598048106281190446029270385403646515464977614862794395632288531110552865988090911121874599036926358485603141630021154013390716413246272493328787794636356502262640735505166656510873069469970388253377223722400590979966707918633393308427610177226593211463667751409362100501955193171919510842465179265508086054525741774635747559285530848725344706983611916797824794451574228834514638056075011251169841835389890548822159145779407290191330859092336116300349061636142853733737413950515236977211961424651937926665284374991506949199756083652832853905973773795082070162069995348498206939399915797280497327293943924721288173172870059442142121876246772477701861638959868081583521851541468727683807073945021106412141972450528217427228180349821840256239214905438269712161087504951506843364793146460262891759030831989187335520256313520873026271790471268474092480010777780197761437449225280572514549396105279383483770631679012107965060915187438985610001615110855810220958889768461324153905148091367843409514003636070503882026067512725987159228992783375171478233277064305605131122685294006016439360785070243158608627513123645328174332328456201229606591543900215799155222320130267336271128787033734012446266240233478719668209090170140198304923930654241941482937443960701252573799210206381588375962823369727740559049519271283316430592567397952369885309048051648831635351282423698801333182014096876754355654661858032210972071499417028697197362727492051876211064707626059379323914880675990542367371552338559537452412114928437963575242477504583460349890927424173794284368678113788187206430049700619605262372390319401106235750005674654495539680951758569017967081177836943274852204806808769617664053737118076278580243760523208061489364601416655419260543120732469204194439093649503086373783217674475201490938458660587902544296950400390265090050934820464376853688347129934903018804629329588263517623265368304428086661566643516925935626169015321203034231521049748538194912369192611329621959728217363958932001247242810000801496759870039944248988160586643655276192018638339140303504849718414847349084231523614345421910824433137461209268697161931482113932564057508977602386760771219080073027222554143857970963330218734266756077570008931755109423245021455937931187246944505352702760601372040429349776035870214535556046791169583972244369764278705125930210795046566713736115207981416587516128936794891137817306968596366732018211717409795006086140680014391855692724021449552384794839031911169044394343114962217896881269265656713645302902896711364337937344908447419189342295866883353987390812433490684214442806500694500769057551340446048639943024802747824457291399742181136091122931661080987094431527990773003255276534133618119839650976991435460115525815357061838118331663277984805599852887573180720033024343056905393295945201414763417764508463905382325904022075160076119885054475239401353507951887618436537813806175620896333440767294319656296207203513093812171907615514397214285759799088675872150172043246487207654093237279427160699066570300770670334865365668651733684145504771194166482022116254266396454407038158179580525257735155876172326555053642067490191280407630715471120761857759636919038242051741810338728989567439092387990951293259639441258038641628748095746586130104513373418535392087793152818162212685416263158422266738413379582497050870608858978651495317520021443900266455518441120071406353394583320382758607567273620128043569633500378241125914502055024046899323835347223592564235866555956677709888898294885040499416935106004466880613815088648569404920394531375572456498284078917688283486861829420112469957287275309525994128446406513936298236785026690548942415349130025578623041392114374053697964815903793126834818797725156569373126301438409520607565643908473169588708462914794356028284187964758774468824418814255920842798766338715109745595635054415235536668142503811969534640508464409501223924511699916104172659890706271968015987812645709898183765568952071524166348723246606999826017699655105947898212018923309902076851468586630722564471914810908203356727877829218295363023820272826600940549843789586396597436487155021272918526502559898699027402341376251915607245428799835939704834141543843431895395206404564132568352460928885551820323226934104302782532212287036583743796714550547788850913282037637889517724582070773433264258042617240584095688462508074335648919868252558332884654677812835995337209065036501927375392556900610536373729936242631021813984012626601050171580232746659267941363533018472335231182895350123021433946052661441470381038733109462090034357155972456117111845192701790640056047003476884734645378388323938865001628732428295752183751577868874973749184070637185666518495480308734945266064411036678713377659398516926862864836085997278814037938019408031025732938847420766728782653713463396228144894074396983462167143259368064994876669362548839548650936435886905885419255103979904773341028042145471616583753760195808581090820040376178863330681206982009124315163839952086792150040803312586047768417015757221885247870944139232276687692776997255726631587661615635748525758414453983837874808746753697597567497367174243708093852282642747528782590549665406370860187347582381172424171554949977355646102744812842663656218672237117354750090997578287488912421758888694410693972455761738318732544889080077183964679282345120859667742954595375808374922331465670131224497289884183148816838926454569871228183976913193477477911297861086042105469711728611672198752177329657941958041962423171794170579521029567207297564101112506114007770023172518016034191360782142443542145340701647714485136039772434665395561101978042257059622662396384476459262005808237856979818680089758135901079827466455216362462170099912772713451006314192679245118786530409922006125610825394811422112091516984561862649680064925143834017622157285903120566827203493384867123031862043039668305812725610847724932656277438932123224692069886803647045898888875218927613659692837687587131811989881939389841727335599900831121915657620286424431954372736678104169100964706093795217901817671094054969359592294935870294816958215639706037844299520193479916480031796773960471062595058725042483234137302355904653172113275133040457481190284277792759817796549041607000777714249010709711635272122748768241338456133367425804544868300344360792536056423657283887548938874128702365962989151608940516980995209789022215777953170892943197305769603150956246753120217206671015164284637083015771751354126194685660062872163844728508707994575057960973933947265817484413284063751322229375020361960819016446252760312209522921297890049808572897495726076922361089826687751458762401429653220435273003150152574909650892202633614982308623674511568165243549004606091274100677434620986235037024322260058835345927402176937617286907976862257476971636681662301921674563204241932484240320077536459836924688695304703501862772717134939745097699571501229132186583663251800838939634103000087689711046775283352379308372601856990981120684313165551182814583489322503213376023662897278688672679828643977221412423335121933278430311832166409635316988729693108025745622836298064677797701327891571926808504188981049339568028767348918936751131221356759870579762294819642170672504218607265318901060327710634684374129619283108712775207987916399075381593475179730142641510343996349598924773746182940518508116941784989394641278258849243786780588330660800832931749644160178224993038065808830873946914962651578038798186798222117838044081293051585477579194682654484167199314934213910125643744557368680417140751719949131294643721821328907974348075004217267937326024608228126277313253592368408551706636581437056351024946388646189408186754894750231542799501287280637986026563635967111338891820604554422523433083557281510929450134216410354681548942565153867084270889303657596427197138454424574063423633281879779116122710284951189367499841526359177796159630682492708599611900762028757591055605271436443306584417051302297028091808731163489530323862740379574362840318656158455911329745838373962646763719694674158383069432410095972764763789175917407013881362860936150314741641857070742653326540287306308724828285058879242055935618645846908081603375705310375113208667381024741348505417644848337283823495026392512878766510154744595333950423221782018835132002197564763041990705631302804233419580046310697553631955854715441619937909208404413491680616743386559562114783608635964548305232762259003898885890187480820798277184334319923766074214940399473951308994383910277159521879550198183134645515966883576162503517491259369241750132491946828601160095363225011910415558091849026265837377311834697323714603632932967420575652297677664104610557777659417847556396193651720406798679058269518071217642500965490770211231143903495259550012847230224423782337026106761601656347824476762298728701689953799625639745739412457345408730588320509506637507946122412651672860190621271812843587170504822574603553509337225865492032861833405706602830942021783345021656614025909409601984319116143216871124617489029836500796784923341535139494966374553693865406941589436244943888998847432726089987826296365659014872328030037567483087087996490195843053650834942488851790534443987800092541384348454067364783270638643701059798710762202823552443889812470916820382407082027755652641414707179476778134241787147487864638778371999370177377816977936523293770362367658601573659029132617176343716289897088277055274753160008456829598875025800793636374494698274474044882867065305295132368978070347566295375555202678138888656258440625079202403657868763767020688300093345924600189857646130375580794851625445928586220631283626116081989469621075077641775656561760978225142950910366261998571719091965703388492467279752598520518772453195783245244251672907257062762399951580824417104562465487305305342754349180475116174850336240616775158938697985408123488458130587120204063333965386279784965847459104294078893786380957549838913971565321080168228269242774617138677441967834809099192307688618631048686001694356582535990665117617027257595818636162943365686113386343340631538842122126420868445238478365308599712153178379096174197817011376551424545377944466725874397515157573239856651323621051923086016610339997249739172933002976246650506384243715262484266123675448080937351932810665694889660061477978951274689364777819139189196760320961376909506974731999491467044578879250268094098369927567646676348342899609112234814915068298662842973450673154197376943143016104324894848893193600166028152004428900593586276154458572136192733260699435268392803962458078748221566398408492529932722127835597650752591238150680427215832970072409852071382885436669848713483331427064952824207557653802158646544877239001582460850301743005235977980867589976555571939445030641651017064016048258676589678063699771372092067106737503808642987781547328827692183363655442438143086072812054430520507747170651601405024264639232337581659656267091474959352748479899659717838753801829610935424159014220944845569393314213722474052000377609137123460127395561497551177811251690081537600785043174866184061459059112634508799661268093876715614195914923414642637947526919058522979875869296384301122038273884152318308004072230871165996332470435695741146710476368043630351072229917090255787607135786150340601584172996165966854910602485452803573418653453253942139986461485637855742214711451729945608143065813353637670447600023563666974110832531629607420360055796205536831539285976854665662221404907650255697157905158146531265671127767644330585257447276582889475688654302773176391191164762314985853646341624022771153554427038853829666189221297796302644186417662404439463824996678530813887110195181039825111344410918159401211212464757143136740783005690765702696107270361345490474119361569553419849486650348179896117946683237229473558890036939842014073488882723308371605573148312685610131095220638184761500153991451167534846089699528337568136889002881565894076847346050694674950653633097285887990104246521633944314575703677597924088654960492728363269273768024391825056900188908784274806150686708398714950105990032866128983960473182937201465701754936513797171998973539610155079330666166526554494867195301127063489384852017226372681530779787086586775102293137853825432263749748340335918934064670857981456490388184503096319455486055775183762307402059153721111669105096016570834371783097138000602357534977669879007297378664766612971589191802318264930180946558853279181440056170244309269414641226447912224099158934568124559881558126313892883260503952616515573976854900222491634477462179462794802701015468248463214799908967172860844504540521721747665741143232560298280192688825797083633637808456637388184866813932499875648336195820727576153629738546929408334480056796888476611324566376689919665429757975499943377403725382202702380967674031155853679893876486690705309463955059565449478110220638868307042437742884239394997000225564463853388457664952503699849935746276629757139123012012647222998099124700861904317959414853240867520771357671782922430051183416449721511551527984337818086185640169016403727724738424152423735882614316560837749527467194300018022824914208867951917012622699372876917352010640017674590768627803980810850419495219355404670839176052234014401810542185339471502927718150319316475091773310888841997190503096878381014601610635512098787866171335117047082908761265312588470861732598865354174023776672042820354830394737722218074357665317428701790970553141767239396928350518740735600938582435385850993921172695763326049519186378864737644361389908834182244524676114950672320676052517720139269333149627291407246167288040615454006572954276997711231520874257030033982859216860222210187500320678223283862477278605896038579922678399281852941403212232960168945777006117868986468784356590870346351911385693180888792986486204201511089223214534104078230690768482666671377363436414729197516225833826506415436459137727330222751736682936002383641911816447876641198739146563996319651010403025945446229396480620375350259903830991744477159064292755012021632181788947981174097365912112444632335933494279794253820360153852497847556880502213500769583915221058136700709650679902005450667144070716316123629164654341588790813950648731908179438343452501653097222249553254433742668656372348166682352415124552400441440474835918971578258778057991866438827526894992504072633005839907093837770567965165394407372373584933334945728101508041381349290756880378806404515336049322445135023463894116232866779258703345941770330734771214401900732701928490354472313513908326407059132413932980939189648146990535529655250411664498895143215976307286725240621772068126920405844203681946328801415114670307712848161409600315763433790863582238964078365880173408553991484809132806379609346266439068326851793915656854435783101737289757804454420257790206244106050345219693971079087831898079310917707400660387488350034442435879133670343186375958910862151414672504790869166409863475987548904681913538027897355839210558059500878092439676114894507864560754104236404964243068935280176478919143333829341755229568508871944931513059677055228649106850343787096178822468405595676600528872274522991364686144224801746631397538246453517247919310528909155921765798104187738782556490144117099236886950672249443319844469229945615301560957178937343131950562043791047291572591670854870370139469709070352476213704201216257451639826745704211310283129552874016180800469632838736783845797512968024529510968606562489777919317819372637082842174838125341329610034666194154063743786155792811972691855072713074225532375608549553801486372717708072141082181682304587463874331114266702636662905836239371434487503662835913566904018335123017630826505658561101047876845424366493660809695247188476627491136561191397144192096062894454444801724635436061385697066637666707283892522390548505117937573442593413192034711900948677614570884519026152121429492587328307450172626156013151770645221983722810206592850724560454487786331549412499466389711899304858059708596590535819363768252010373261876489254783311539000207243064162543164287412619836957099864545271252649203653998989960831510536539011353747835544110369326244840117153385968935184071432383472959561402349993460821383759894581454571121581150429156640785817970926454323480024546204265235233190679144314213314063441666586013813125103121087082642915376617695729314821969451294821151882290430940449573547373432981909536799093591784303682074276519479728836731534680278644488879976588019975285682823014392970363855011065597728419491759124906782567216338567286237838364231341752070138513716393907128669583697470049194039045705105594624405666566895654287234620516294465809370516107427823416584364508396515874340156434824332735886995419200031808212584339835491868647111641951718774986684015073580563487597170217350244315950304168762123104605100366302268842177801543373413071093503284210260579609562244936220714904182536560974242497422635809125325081893870974795104630998776101383391394880573989967165016626384790734410883334707183272522206846323350388248994778623968920712896032854879807276566577119040604031431313516923468398394967027090434520977997309386428444998011198387691542919779477232796476049168939269641155023193624859671385442573309680548015385490912410682080811724265726149010302505744079208376922810713711897500595318733942886978913057733911328192933867122809830731957481954505444616675282307955785444956632885026560723255802584582810639914802214749372657453555541292604896384395052573217100473977527730467271481376155133596821700623894783252208424419038279545922881500855103665596183179337097818415382367700556494415450451118627750630611964676514914505346362530178702972877277710151378749046226556683834267529098531829670561778960154710413389649468367617626064164843994959054419594610590880202018231884707382231035790371284353801252027320473632562921403999423486454780872858644276110008887212086052759780207244390463575530414933419270880447434558097171691113849945385600358743368187611735813240893486694788023601228018739893862620037523294680226279756344457727625068693789383206596391534300863723871045712937094606705205550246628574101908352620578742027116151645719556139399060189227751887942947953473399368039057858570887770392168683176894900354001190649069109776235108397419620585896108071490484532795937568313641736544642009252559773274695589308601179518234622370097178161306670395152549479886213365087274512207116368226633164197289016453909335487558137440938343362502077200293671609410875274599218093407213951129447429257323757613594137685025537828360022784328396053306587791106355213125329676898108626484809423399719462183452164850719566640940175213965037539889365193794408829225216423421397531160123853153429638138716482881224074359993052014259349491493999163873296823943247346446624125189417681205775065672740231931665083474370480989844140396420355067751249727322638157975385429942624461093570415793804813533200946330143500331644230902901452676588320494515474148678306065792489812384760306400064745763452218700267355796841678173021123802403221346773319425378450349613099524748881375168417155180760865221985281690026277084101667229487990784454722198317498067832679853268238292402644469402490258728858095451739443422556741252462458204079013744350138686212890232913110802280371510552965954786188104002894631888078332393110943210039718302032523419536039062076373047656977698280143281218959435912979086222119477907747746133840555328416235116521861820031245542262995075346983796388992572572586539302388600970371830590119635613443465412809185691587772522142780490896347277117084385795342300005516954644509386972917098408465578169609054574923539402596961355444406897060715704216755824734028173244239725520824287177066222919812360631120067593609378223778026018713675628960484362212727855978844518778949528068923286986042235034762894944896706158301906075498995047905863247460850218077415082133453264140546281288318416510247922642339190328202731458497733245916568946128760722203936678022343824277220863236243086357409097514463386620305946909041261697895916232598356996757952911773162767498609629794411083275193151097910192436791589701356861452608386623094959968664102570501238594762129326021991423290980152801937500601193198818417365853857098590706056407796500938196776049542006820564483857698151846091663936848827066288945206222072422502807525849944913337917902657268138555842160214868613455661038702579687687854636543736882866835243219884790738378029154106729957092458023745369109701987789783587849640680628921097127690745911792172206199607644797260037272991316741521306082978776950032683588171938722772444417726121842303532417034684628449695798942069612585797650775036377297152142124650545353826107219866993929924328893836550251390077728803097393147408962414428052916014993113814481841180657088140639204394296587367933758000302328059041305328228679070725363520277287389084007181557742614254530840129805265890425904727061241981179242651032555079313618895014824464123531911527764464951114631098850770908594249299402334475276172240127860144178130954669281853228574283620519795436959584342691863825415867843097189296906558626483954077069078484218940372922799116169876884666698618122094159771822711130521685671803897987209963489212883035285318474301797562993248717147333944525649695348523061262233904506471779414382138393830803397481046320992102357170388172750611707914962808979760557484692493464994974421803132767147685532267345837508579660577941569433603991794696047598401284584292690460253864081275082395139831118012184083369564505297282719418499362125302697871857094817424388576057712294562553653208573743913953897908814983878147601939989714832893578155833035823676536039727837935896214136381595576315505241335167948602547838266698157884309135282568920929244963696766735862396640743877914705594376206714450624954804348395470552768053722873324263798331508189361600497516512383325783042797646316662665802927228812236887954582874110372066885808702745652907419866963310827629944138095881753725600525699804854982258264763488395832618807128191873885659904931977562081809018588280250988089871347215682652246657758639161690255778655499531700681100497079283402209975670691521841517570732989466559149784256115421812999266119122771482804919774664574711965156353209998916288465114880685071104846690665428870284806635043307108075532730883410316018945214692326435897487142923670784992399685375098372481892061744771810559613245957391932290030466192318992543218224769400998070409737897033823067112146687156007106345989705561653715935499082024424472084018354086549509336796596386072371727221449066344879314024511372457258524115922323793740716650583946489046451284377224377105374978031296130638685512239386559020968952413273426936936827462083396993928988777926921509392264370334001555015173882914241912192223309408376181199513699459628271931716482593476217379673565791244896951749083098596421548336017902062167895411468794568070202414222172666715282396721184008596037466991651287402172248694415257911508232709591302354075866187814761107981688357892036949860709201417975573389254028248901217784785367136959065219504976897230226531926640864076281803561971144885488882226860031939922117075424124522868148850577709617855956007406035563065543656141944557921417962130944706547650093325424375085402438734159734596604209324786829929451698957771981639234649862837353652837228955166108586106729061620086218943753047093088780750527532245085414321146069915341495645020553427360572596543430638903597948635847064344214575989997753994781167726099323586857495291700639107142658274483135661396185427600442237198675085777236799273584756354493962739741048120012841415700430044937191284777032879960963565025047334881467631707004893318955724712946556658301674675375204186760097952153316146805135006676153449971513555729211465081229696661876218373172117673631203424580236638416458846575258378958129811378732010861089942576747116010843335169284617034518828877840334830048315584911207453470209865045471329217950200558086493872330114261881594833614754913584752307876144328253718391743206899712301489753827323794526279430364919556139323022359505849174733312782727791972091649211218221106838572242761970055977938134690685215218626518552549044754975179401558435672169782720044323879247376634552003122531190866444679484267923921846410552687281486681438123581784431975403825908826624346978739729924524636748951057537226958945550746729260550483757024366075804490117045797610160225359946375537111643704596409627783915673561154933188911543456363978836423067915627098557719227623066746058889164972002612703550228710056082416124846566097786261140923381501121725652183412233061831611483729244589574444044377597873299943611415976503093500413795694058387935580402223298462796414889660952372969859293032316739466204629683354898382464905062532169449608798188609690935389719300175063062223588472217746790718872467142760501662926178050352776052799869068225000505983782602890765856705715562739696525394054502627251931687804185125733570031325569615126877489253656932623820461305772798558832403344819923237020565990004352381701759432406588780077872022210414531000691778929567933427047466903476868323640238929822696068138610346206896817546917778984446551811266270107170305568341053867916439135329279825560013796278418702239564664819611529457888245727444470648967166913451653511966197586888790273898983078373913509285395388599485106224420844201423946939755890404352133939625216661537082770293148875706608126807854440479089490023778470885554171534572216310753567809539307700506262243444596328076375558065865421941862498870557749239487315138301937949566656547736455805043326622326826859320888640360627986942055746411237062564508763736286635196717121346034019813346614620410404847408777732503929533375425982292077306183204421498369309321550100650359540476389094588583941271562789536795112357546545249082463240574352095088150581095797828552288084012262307601278573268844994125822274222230037126310897240928768635523624950955878752202713386527671078436952449360408250079210088871281425426561047277513099173072951187734529767566069172905906749435658981464010480181566762127988169235610267500510085963607883064344926557773649904145338293380039918660293343569639332682591261645327095354340791686125652235080008840594778606120111014539921789137338190573155713405807706364863699150164147812659128476757593345646361323424956522826482736916802055873811321262075035112667143308598648201282287277601905049144601823264246311606140094554302247093456182972760908490560248257734518176361000208880117061581242914880565025754571878960237015462674569309961388395535649616449688795901144726159675285286213981033539345174730518912545466758661800582316912350477792782725707445674365646367892770579488641912278408119582848548092102820876300912726712168170500750703797877264201100537290805945182378035559689802769494256110462498489734848782064575113661632961296003671420149526622856486673913820545601304061920038112271380694171931797384012247106008736069527204482319748377516852340454838617252318134383922043367324138286777794236748803154436468040942128050970249600381589658163510041639342804350405572313177222256973685405548113175625228812957257975290399280647011279569932176853367529470813506936916784355567605329987806411582883784480021397870377197315745467427263863072689855248784810393232505882741676184037603513854895102150108610383075207305111408511136269218559913517337769757409226552771888705711068646930937117649592618198312371015746297318454406629057505844379200304160999481907877390247284157540859888872278522417574052805168894370699610020966410858148760049809931168746194065050435244809675492409850459241433329738414973016567438955597520497393313807989973932616652376013780127918451631460825302411754827388752146562796358284393714904532202463545161474734760682145381788050320381808877150884921087877621374138652852928754218353928535235529134176202904343181820509641887059124090715692281817971760553476955847260774095295088784437318270130935500679050780679872023822727230030433331647134320800177205059269870674892142847488940293056506634360979355425191011175281588138315049294766109255602755844335001822249801188115018080091050091861555949918956972309680324271976335706571012339153220419126079525741787374755456553086687410369104213560660678867751261142373733296317153302168209904253377083227590328821330666436703007708089489978817579265081220710464700613231683552016907637339088962827918263160304133257186779001922137666256028810570195956267902397604493271245909664509063154094987076218704644205642294333705515089633258175951961211603271370594235123175818576454878801643239681313447783719441566490372488620949168938725659415560941856895775156359251982089304418511708987719489710208221682483500860722568042115475392445034225008212009786684494104697042634511786806606859302572695033846295591322549396986431895663078263192624530030599114654382860765032500126568304354440820277539068538231273210397937844682997376285892283907359278751133039318042123637100819838690363849418467709251051829224385089416088883404082546023126554790396354017426154510382433513256085649149467960641325972884525887594847118552392761090768790358974771121144634538045487670179581745845359969360250245127334942808965284914981916308676888839070721622896440487854399769362973195988280485883550715012737559333719589243476722839000086576500405110085272639583017565951419153669780053187010923664466104774608083278830624466902345310522557376965581001955416747984398891567740801707690997871742783456490253334834766976583307877208431069588288258266064812491114354217540158000315840377569975157430827361369479155906964950790155621244978221684653952044969561957547847445075898965533699557865097057809118516405848625886580099236855152628305861349720804748834505696821539543762566863433572357920385578496492679602458422570728341383853604307841295082751193050891850783622944561361678634648205820601829450163817021098545518138741134070302633839217014250572473506364692902302057278592429121840656889256462770318984451382795065697492350111169748456476131340260399156994023374511304977646304377602615854477991412249390384989974829858215671653802652162969741608019505972806606138441533613257232986145020112059845924045936822870631959179515776460694530880576065000471815300360144417484287657036580174569593743015444012325834348419609356203369801666403015299629227997887575398339429160260477585018651775113253034454545720863058710663426868982446824719732728857385852516729992013485969389717694427962171320579259700232263108927474091555797417172792415036982226330291209824632421907627869658355869412404221153929000496735300081081172567553004509771170649314932818222682101674051483611463184642942486315559444643788729520952851715705041515525753948122519121861861977377753973924069476056477777314162668441039582242054582460330373330524257567900883784507320643628352224229997024595292880543836631285682866965373007602927365494349804940734058493699061272426834642485582058895939042235572798748700317602083062427634836581669480766326639845283735058977649407373257439387998102339666104781384898155977924311983395502245168657061721236103194075858004703594186900618109448759629559632479568588198921281082077817723174328745914134564085364404691815360096644217502967673192955526562503596993493242770278699657499977065004941253557829454028626448803119980824199288547272979734534418489204654059279511748584395794459458029121768472724292283805296010584267183100834814681352810247150083060963621790546489264462795725524232380280486944945675936901134723556176939681040897724328597614234490470020219399131338648941144783640685365691777292635817026084517289797704432396400382549002844543824274359420231889886811512625480391937422376718087060639328294571629719315813853723961437408711787040574258470156049590009341791406053450279854948259284023589365092520119755311333553455753713919213331880721878634411420609292927983947971791410470011098375706874259698108407952125644253364577719466871900430036585407738391969080873740347852734896876168901448268088392924502659911780982732841307469056595074050283525158958295386814509678141672787588856908018149917113945033671245397491257319911619969548898050506878765782130463552100225281103828602067095571680666466621007862517499598731462614015328540085451855952209301184392933163563188939888415250165339650740908397296869138835990868528268807961512035507203669524007608231287542080367490215892993914236721930889237990479942522185041655483111029938466445820274194692862313761377477926854018066957422850872547783307886799395299698529034121200579396290181142871325821194774480641236517552474126276691281084394846273921556620214590776346628308616788972943399404595319640639707120294790366928862141998930152974307936804336824796310695394863024373784282441567566279134564257232338754269746334228447241953083325370511254385821392817595518290982905151761469562244298254391285035948965098666882008272942230757669957435949430079576917806735148919880897039936482032353377968824885509437516726332232892004644865364952604730376816797786660216061522416613572869689176475246090542168932199648094357600117730038931647258592551533750589270530838142821671686365004037663437131574304711119557465642237715103625103045459461851675838581504687114576061543584535199029710819059003875618873975617007865801969075930709727663848457604802248519674323483053645177073319881918630452094411606856510896881370723702196197326075139094628948256368494659066668695352570026609870009823061531512691737501384573813114335056505651019563915028684577630650762920347481462793860204544491286271320816254250343389916199584820647832528696934372430408870128044070319371851659059770976853703087170259419816170311846226975132670164548229788378643906470584895407913064729446169986863148746103407704549165006096093888325942525958557380890343616911266901394509149890912881027909813887166994397599379184402335365547520284335260639411416012261889357896103123721609644131638844213891665381166602153428598018982390515894079340128874574711019735099279083728042310867001665557907843188489739795378386494964304591674893166022558405013994482343187509698849242591317363389259545513794030244414460726825456276022760492000788925833110785879219381960408693774831403503258630193866264367450456467751147538305897273661281047606847880136510381599216491704576856714916601101698540152041141660088415640677457294076186211049097526493215136293592055654240240825712580755776308171839677518734756829522674215344884120754157942516294214015485108259066178523486259594154378406546566811211501361748120173881379165237809209781914468120837097418746375396345211437436737437898235932466614173117180930138919099654145155747169363909046627133196555117357246665912321558605773989976673728037195116227542633733174793105457463606976343961804243846995619317559197041767088776184935993656356922887927608532569763049831418870952309544108209060321668188230744023464903651435693354408241670934058866945603691577143917175214123648806294061166924456506451684301572296912657334485822238074522368200766693906299659979699982917235546672253730612551261153342387754578387770784903739892809458969101955009496760124820777065824794336073356599559008174761796165787678423634824963558489805177582531517071073531216972991362555457572779196183129715305649198696909633244768487659663692416291962748138834503042340344824669146381103702804427437634443599463250501328496760308332549787436827668283432891646762926185185084970459894917146043886457461343379094847761294790725704985507678050291346002470020490558826511638824269331365276538707479974215717559259039523562253539314811961357519086777693958049112147047309859798719660317397234290256552349074550829498983084473370139985315490611029603823143614983414817683814658819008239651445544377076774565619764470259885573466424980107167742480347099858045945966870616548194976998344158559819490510029445940159952893683348726465364584135871386602867578242621204033420875415975472513578289622100688594067633906827263374655270528137032807678842421819454992042023505257125231129145061769817604184455167180725821931063103138394038003369578208761738437383542222890716797216270854867379427644538917574035356122656106876637704950580058687688150684522113396141453514437868812003562741667453919843229655372550670761044942231016258600955984377657575301394205128047943714538879766358072878317530331114260338068044945585502435435602771269410289236319262411508922092361684918456538688451527814846612873261729821263685052204712899375457814618452189826752159303702922622189520457162854550323703723919379230573537184517922510723862834375474802574150439914355177161898057244216060401380900392503838873660660925571834432382736913341639858298689902987074546576816252889372120940719837330217458028874673651217681479884261222796660082772909156116175959411594248599417967500212154612274813698742027342664704070437739298097560036534285825398299099608381901505069649835627071990889882649161778220787739510787042510500761585396893926385466454303215928495624157464235297980978148986452839149294072087438135578674608867348688992871978467721827063453664594615086177907127320541133532565162004144506254170282614136053269436869419015387392132898814146619345539072166678417240424980760988516380876319546827431231552408500684676377428248962655536695999474601943644457613595977719367412592753342152744690506996570973400356736832859274472950082387146784365883207204993345851165018341987648973012009003638244064900768772065408950176045962539389178555286549166973445613722952970702659060966139822647086432859432865504505880582919700806614622953824579823672218455403983238354042177651671323730957667234591451569242672741790020711212733110708260433256462273304751571624560270715806300031184799179859360441462578161011492257195851419458772362754044849459807200817286542850824177450046115130724684352723844068314965974414036304023340064785880974800086305687613530200465533853276009965802174397476046852353835055323953361390556683936730841201313147580590676600174841553428604702832366940697696148498683172748304675837962014338090653986024222416811950342242879305923104416760718418745140901487289432925879112642749395724473858819726671329985792331035282466624534666679312385200998765401901992346318130307668813107543752982034679763081249388869092339243230215007341424882159209553685194652057820494444689232358934322847278234989491038355643616686609216467923564882143517759916666413774568646525716640082471540664755100493991418551150637129750141745824346733890658870515422037961620467047521178684404458695581509892458546853587757859835362736636411725397440507651231721278346869289124967546015968878811796409147944583753300667016919890159394218312445436433900018865290327172961359005750048836700483471837396510919114382219881088925199974837378100030238094073268267650561440741043058513807760689376412545401996831210724866220118348730575603176622177412300598789888131758226816254882207651557633751749113157879667135649137472759396928796741589234127842984438909812942523106224951173669851970063700506526564304435173315746813770704951213440887148577646257347523396443312279062059605407231943038588301476195657673942095518574987935467892183635344085715864955499039696088881527702282601895155479408727350410647437956421204504149802043094773229543982709195652036526159436525392123222099307329160904043648995508755828618760249616858556064211636533492051984742708602241849910468172001997934507954737624706974807313691222832850381421974451329850646913442716344371412526182383485143399949441123055304129501961253077765817993495055294285005266035546230733082480828558623860651485268719264956513429040800852943221930285058661496020562472686990693271008505128310652853594287569859665460250103204986236389016006722652699833960133828780569894084982965652534395389882882808702274900029203429077879809692084162987371003648195451305358075888129026019306439598832226538577218378016653824748154411169108323060894039971717965371077765534149943874591761145860036105520409076042569971704644534744684850217850462786219047371106477489617586292656997345580373095543032855219954123485772188017255939893215025501961559977933190040520516988835187841006181168682655161695198818648608310275457127105635057963833768621736674058664611468487509843072708441602446612563855465047640313682852201264864847097822914047590889329996246662560412627282756602884366746280197736654747821635660452640077137749695149357524121015050474343892638523236957881588857639111433393216202959298672258201061593236235078707800465042900363396517609673970400741657643216338267870591525544526512094953160572372730701457330602173713226255562526271480077066350002501100448866910172116173589941052741643726312937861928754027555353050628389210390833383316540297716460924868283173717626918879019271806882040816841006648736258014248822526264319245831050003621649808826067618537939397929357627189833327158609155159373566788884975895067590851208267355845473213025384944566276402439552951350215694626685351346951411813021246977548610798250406336420379872354239815748529592140134414439329061528799861793319532211410081803801278326073893342488665496137682107393891117346309657220440983929741870449799491940809005132475621173399312555185805664012442822706657775116611408159103569871235089844960597537849153540808605198926346418153006438291187617838121263776554323710903966900905928261278823783621878329909672868035131400958801783921983206144777195600290338054049312135288090403896005509616410171099383738811987060848505010353783552481601225915572809567876566805783104518470463228248810527460157915780179812796063107921981725405855058679378674297839521453505244296907952110213294258972271213369289106698649674425395021693352389493902566192166951898828316586984385395398951622750792746189465372785215089854326625432098204739193009937599730699920480183661302894536456878829479484884263011643618670526105942381486381760359627749392206480437535875771894974017562872600821247728267758474383314550450368030539731308840081283975900741766840672506699931939427564749724922663116848657223341743341696049613410253637475718795426941363908087392100292880809172826184579658426215448383026064724636403930000748654789500475543308571222119652451439186202555950666461259563606831711962414759289655906590776823837487588777946636046764979575345280938503739560149160837999778782742667792450410091370054511603731887083151725771965062185580282055491831256249155493599193927046980166645844769988248584413436994696986804733851924420333022827917855995259957396563938785368725877254644354466599357830733304225408438422186592170170416264245629715679421846356352563094316266869178273797332309007595113390405022529749604481193247254953673829926678955392692535650223891723794070611260236874204036812322566165217827226743840077462995352744800226815994064414963546910266461541836920430178299109006061532778773112352998813379990911940787011673803527269444991684845631229802344045872015302734896420536710843091554101743948688688768696750698718253395242878366444355593112656300524829862631450861808219197397713782669450132639264227274064850565460036962214714639972006992903073498500134524972383979765177765309146889316123741670860916139508107372476721120574483537030202472446895753000445536686440571238253533214730064284118456483452170258956508799161217064020511011565193570470228033551563898951415070307645875272967033294508893776610341699189741932322483050476280206649634930045843317572885571259028294345175221015023086410782482920482922852057129882576589080064183031947710027904179110185914993314839894271709303084159699859744132323910710793120940762767359760492549401860088828400820747680642736776529266631759868769729681871313100492362589700365008779451645567601900221658038569756351504478232435871364388188386867085793319143638449338132051817290218603484045501632581411670533219831364371539610560966225295362344212251054351941418430703601599540597413688403924126898860033586762749471883036260418291590758438108188718892942209603765567386009818911477162213142020979980128753027054647597093423229255200120317841410307772573738580196056725581090061115264538178335500640707034798340197766061964146438346358608435797728754619852037490003452723566105211354044103802490644211630514214931792512808426673258081951225570384177038059989697094399197209829438154048456790254431701195166550137312456432635341173458718066191172516235285090163534694719902667526348288536016795447718623177119026957272210648065922958141359322150245111490337992792589092889371076228068544133859818472927805182917483332837414332664640237149269072562465077921997951041704817868653318467401827299232389481334123200250748687884196526103054119848771624030759325046365899081129595950679701692795769977239126652774700446783752731087099414877032915044101844902996080285279586443924340505194796642493823883000030868190887663339615103172491644764041057217997685862004630323129355991435413982422189625368198601234507563065210628594301173445504020905495097869284179884683002635122597178139908620691205685186939435151029926857892144895845990878638139654778091652827916764299171735338332253348661884165913344054265312132656483630926893983930819741942694704433087343063538872937198929307984590937424209310450795309552051031216866163373428299554281367898538747333082365061632083689701720713027999608538170748385892419650268426676236355049702231355043855908867653302581316339847869562363280307873656280922636507277678060913238276542268988915677197288149849539353187444937463087317475594577422292551921243223872405831557760636255502156684712667444248125204196240610297964879384711864357186829132647785624725460004143034152895786936945605444676635495813705201265569352356185126686630443697717103985074857885097766849665362034718571889283801447728629892611530956103572751811414563259888609124166766306473076708370699564782407109461273794074655395359269527834408033551947904841821569804124980049288107151316306721334301442841667590862252380575939586929086316808095842340755928638531153621841003348588349339217946937450760130999843572190876080718770204388284420455406269023855116563570721988320534294172952830072015026137535030432621027946459693472472957057727308781316402580267751368527235022676317652235664138281873163591286947775311133955300960012292426310317200609310354197970956308320897641311121358392268044121712381759477551669199566111418187273615453421858256063671549751551571645078300441418558026838722684063726127476781067756358868938019800825456491098097096613720187706759241611712538085721522907399487783231666699410390795385060956432745906431944937806891403701049857530135792571582466698539244641304525478035031693532193443280056675378038959774016766541906173299447214783194580882366167647912228012541824794820870635679645185547010249202974425568563915586260770919171982788289022894320524261788864708391608096671406777892568808274817694189104837361637442888282182947571922093514190496074336541444162381115604649782920122599990039206625548582007699244707147732395937173212292616295591930156743317372201493430332014955635909705004402923757955639012754598200142538861680083083048574331551974417109812366462762481447943585348321759120680977348572661079532799618101164098023525588516691258825993405544998217505326900791907131697232769479636808941331444230034395593290908983291821210953465040955427212099380323426802561729046389110628009758144742131151035535445385018878084722451562641527010236490611253231914389344826661746091408894274872437801079930585920490686680962104547131626060581409403009675595633585410289384976003899444901784506923217247477010427783151939342350533091353715190060701398150003547603622627107736566952683245207887904477681560443841869546465187617895362020568816668140864101019088074691696344492777830142819865869745241908660258476351411238514368756466735032841512588973761597071648127694945145287019437365418974901935100152726004280178399042186435423223005400657269948748906677578527867316210198548225305114055601263492754257859448078559985503998473160602129592464714824118596971744408483421804510334374626506621550270789774763744899060398566544382394664547775369805911549772092271260190530036634284952130716605467848061173849652713308286153542529962976815026853836386811218907294587008040942308487692386666650547630992912512955729910204393538428844112123993291824088195074789472514618953421711522042090406765093611152435807530445184301028737422255494476927493898746481695100611507674685448405799285035617808035927014076452575308801642842654473118858327714919978249214992877101193511444353358018408222692060055874616681801507042406028331243037936549027746742515468751677161236567306840308365981012902750018073260160942154553296452144244026436655606631720328300743049069605833155436822833379919182279183756890504175527148795392194488178218261327204593946500325152163441076988425087594413215004989583338150528824726283633669823934012913866974237053639639969165750505561228397794665099158261211047594648135985445566481415378780701025415322144908980377260133584383915864065778393822100531234265791231955623881650918104389804074902688785270265790590874755799111256311753900447085839665787057303767952432509410323208854401961599864678422062618668222456700499970622345735456657857586624444444229413903623671756850704438028810142541626329774344126120255441395566705497660375623870959300684851739182982773334819898200026683957908050623750235618466801481265724650425825582778171255830971374049950508937766772475293516241667101222838902562384029412919674951725136223911167408772541591975310170160313204450752542171566236915611424420638661166358324923494097510372329050764903195975343592069134250984471470458587533596282301004540083559326408655456152800427636249739092310229575045676339103512361952401119358163146073616133203364759460216588119806548761517336295902628468527249173847637225654799396222954966464081904186720853951528664733373993447487146009099654682740006893176868301978094629960834694207630760364872196618743774876854682634932925200948423500675538033078604959625878914713681797185328607795474185326928843294274201135147322424443502374292600917476408197823067050968686761135023800467765792498567173114615092916985456196662409004640431576866493194337605976129178339939875026729494025864847494120519887992224716636606375036661218842974240747502608669575315262184449995152195108118853511812867965550860457410328146095250746211994511611286420734050658574112144581113623657939997685632605244855963118337421604807906125747944530024490446728850309457145791643520347566566168506857993127287580219196330133157119026794057450331474524534111505944028433052181270434454815728825289219976139397987200921830462444591832862302694949541350721371089340690011739540591558790354635705678527674952657852675317225333897635091934993448399392478544575435705190140146922904411534997482945219135184066774574064419472037235445965192403075020696477103170926474067879180928374244948418989880508994712950157430024879869969798465336666885387419918634323318158172445888410043202069546264676179674253306069145869481474662085141667612378902552298054001187809591115534767885293303764240146313573115696657402985737786728849665584604957028042180043199865812565542869648151990294313900312862087102071634206640157206963361597479164762564185928616132617373076488216868236396023799411842913286151752863328654719264549269442113025087922840065229286294830525946712578988854531442799995461455321540335593405260457027030363135878654252568380834216324733396240702813180489182998731370317299766558266435887508026923399502640169522540124479694804487533395115216208673130211290346992060769921366049404749019403499059256679044890294402170597006403407567247939707892665605693975093040532829470489583235394680339563509956112673808647070360670475151172842020189869438115175882105151365126298380918854562675394009271308101462379702040052217717023567360470623115817937793689243090526105094318880563168880017385680430890639861270527520519429574439256884418851144198405197075551185098875698082834147192387661609636018513851047766534519346921569889172902129285375638938080170108757207466317437461405816257933799460634270185525053651311474906302144588133705393397042372969341118750037571560785508417226773359858584213516340565900711042968166259086502798697897403827959809127945208388082757516667915678544280546827852452978995749901258145981730717428776746620165182708787851825249628717274572548909136791024909432832309219692503322232212950919130794209845515427656907457226615472507159617258285886001310928638761399599852858190384350453957435004234258106493175119001310298115223137573373345326803743776341064955135542757141789521867426582308068106863956624874206949326523402683433350373805978546686802753370212302070028617265879353370911732370965948951674873933136088514104093838347291609129312960309755432142336371342802019551115808145868227684569961938485057014968768182165756262781267314177760430661918741522622632397515223075234122370508871438928390367579603343538143109548112701612131809698337877613129865627448165952683210978184730753317445723017420784422384204469028532142930538233845888446677367318105385522667987847560564297343901641791260017571713555147261943174421988526178789854239331245676316647811607659825644544182512278007959280506928525640694697871550566294765415407150553046907531945250100454219105364846136440292221641140382064997469984807901346827209392560872810204463020438607696557265298291580717851200920194543082254024262967323622734287586780655865263545272043352512625284051290151681316986048805553633448971495838235781666173763056724736163257179006582971082521483345929809848322483322906208098870864846075077799001815835643805872156660562911555618597857990789588924318167092395009972274148152436616698365777015770309384799613077333696321345040878882589555059886329628577892654976907348077687479267249057916457913120962826620695197819218773724618127698128735028322494625822665639414185090203155791262277506422840709249215709942615326004200436506430173135637164689377472645326601946154485815781662623632503864569790422972320657776430026325404237020577441385213017105636205588893415960002871916190913703174496336071013520184552669390961232527410011164068648144988658298099134307224375421654614498517560199291293620844149480273942250383894544014074416069332472327672472065141681448530551205770984736831255211619131445080025040512603793757471748659092425277083145582780299083856876468119611924112620287052366803906316984875566012555276223541694138782646111486694486117000269414906811448517428709245777989351060984293798199238561593576730710000939289895639780671798679590697318602231572828863172120058889214163031292061426084705135735284842390947277087998171882232125131833727816249532541306861801004682733105528749005279754784539770188545727875754345283544092341976052460732758262350615265274431861024773531483821568863792637376899000293182041079825947007865910610212993275966992694951764329229261445758532998996815054295384152118321376507225717924276668351558698696882847559002449098398431120115841623768597852805072619480314824579056966230902941607180005146652525613765169242528590139876624726946984585467386589564579709491877693830588931339026101237839212294779907762839216246397442369633241430338741031603100697129305558406567077779824820224437177434552872899703952992744413495775584489270465553714604376139846477665489164218888955634537211569956975987554543470292271814744371351961118937451699006500987076619670705712954039226209036316348490932430082154060549550041805383386234180139065389037869761020939556518757230726989636377690038868338193356298440302581326024548920048780527950733010171496359899892994603638615721607292191027891046826453814067900756995577391404043903719300012262686213902478396875330699172593005539909366926242819074496026319737110451978568799077545407271682575095196442348991785148128391632805003675844537848480335843768259574049646928032383611342245258591187951413917014319156883172471777562582545706207731736598236862628743214812169518508656559621478563461294061890264119211007063197872782414930467283820216857824599265058986972007593119750579322868390747068643203528951527726352568894037906984554910476286864408917974892693535428128223870884173592502214518205824780540078052725803489415524768129657033808437772568847733202580491420481590836741783098111924365084247219144007748476559569229366731933012289288174873365989047289205739359053307953621624214509573023583238566869859468034152186426292611884731223470041003630218889490579569482368146021790461105718262127986403148570229273778328224097024476031035593015818944371235556045199855339439974751442588963233239207454318304760157198896186517214155810247162945722761603747578439790287294602784214701233371447112700552041547024663507488183729725361675287712689334988683626171642663072383592240151427587597295859274150321809145890630575352464077786768118110388645880525470985745016368590539445982036068211927930949597100104222006067210912919374250666419839529963782883658571009275415342804709862435730276768066145297065378217081587569020588221490637146991962440368235999344314276381312975131445592703108645897630620514411500137528413916203270113709011373218464090404915483224758992032601584596089047310951822882605127718659504899154422521615510208762419914409884290113679514338788750396940518973428841482721304183067273406064935362929119587574837561123008671671290266532020064802180639661447105697428844010813589591266197808068750860452478319617445704923094804871877220981689467689124401036538277952974687962000038881146926753399998545166843717253404271102752194488698796569164506321516457956626426927825374219984378119116439708266341433776427146879684238080908229148387214921595666534129863382725490391110915686709404946793805683240910525450499517058070203703225209489096653358481256711008143114391117570375899566273009663176150335667147989310532218679768225097153449774468253916348244516584381427403849270373393622447760541894966688472569557540667676111713768978482202300712749552938654410010618344543331552616342838986098031752785705053086102635299362123451848001153052332220173742754890258992952647486777763739072599179106071273672376565789379962038592198746952621857723806276903755910102671293908155849153776511120494777692058917246425467365703983111604203436293807166971075329607993004792016497341105153774005533981496796460301265001147527664973356828772233690168897683491386263308591908542221253432545944468339121664615070214092411326627913596764355272852767536989986251030232658759100419693971880088901291585806475274827549975455350224199867738449270383638092501974377684463570397855205799678948598007713281501658435985469575892492329345794680168054053016671344265921990651311519556339386894575942739999666050683581267579581442432492934865768330452005048464280961610802788750836210434482345487698677906235156403011525277136199661709663822543451235275033845403118073364973738533175817925837739889430992943798547783315267121383277838553445497075907077269471926716040720779060695768319650020217834579579872955760413394255791190538432664656094602119680114554077092529262540602357310596215646442969530991220201960737000232489359876033705149420528175029898497072000377555472523929863642775281849021207951879783306157220544887812825037854292439938976269995302245958010987868445630133617592119535956475270218102330924354489360471846932756830340129116746453830081320174707543517446891509357919790728610960143357522109245986609233417885861682666986943606880318775949879184799341429728032701704467558862589024025891199365960394490083487041775196659535605667390418058192891643145062040635687608202319462234374580505026762894590730378810007544927695902525477374940953952122248551854579082520527444252772629159417110016512234193233933287863464140316433102992095672013321098699648170583276629434707828937354632078346214697953361776972954794835537607550351161022798996022037397344745697193811738447158569629716595211995193761043227601115132705501765803042221442745186308227087090539623322875208941092988820474740565575486236843866467554232362494280840091741263137740287559672367821957696336351008769407813776049665039193535093914570324914260481517424826231666563089372147677511379488120135984281704035449192606761616146167928159042501771374208011222217062656650984399549432937358845501228540298435233344897304225857204875845330861456061688857795991999314509769607275426378545670162529165267477749482669436967711751549892109145504804095025293935279215886473997735461083900928529128752596234787531142834623893162774164416781705958769764343687936291382174926915952470592300416212551248045137848773213249486510213688679366092668697970219476793276509049368628759197018147314316885662857683317392002187132341953222251906558170778566611032642740229959386155958227125225325286545444600086521728806083687243610157754447824865810162454494614453947262796600535200847047037334014013592414670061644959452336912933807986926182528048989875942814632275901477409042850815835182451506465540950272277637644950045038707284758615051394263860785694842901007160387603111551431002326552346628376167713990105593671278974783780033016097420452612945329474515048389166120062573787371152243263552919067702869291624757831534880729283123415692816061744121923527182548502730632940447060150644069000329529326350727443179459123388462989399377614354180693577914113448461862552310606719005084612480234718581602001079573085177204614181143619980917004712310800062566518850413421588702623255433034090070569101621647099236271845940377645993183449477007011077293618637608418231162386903160213111654492278240663095077742665592196619433056723114271297880424441603378838477360351469189899638790637730581925127652438867207813184637803236881306229250539072918477529498195510740543127503087038472599620940385946214881439494022075693068318101919937732229819282395798210783723291046730665125356084537081739236051358331138065120653587118438080118601723225135729574073118995192401062000425250781659089462558793344388483109048322251634961149971426855336176106126588689008892678990491030677711058733318597666536341929442457818611090132875334771577513515013702118709582793770899708715929200751832569315083204652004209456000370682661244016916006364384705659403780448299493004426726036277590563181345932800362574896150504272087550911708421092210350012625184723174030145699325852667020442269458664497242748113477897861949094585438861528681393718769351942664621122432564816111909941448566992572417456529618046022742743309821235374646862831448616971230189671374297919021148181493436841929771149868317409883811543853526688560172992296626178213003321729430710958116409520887741948744207293198694701576183618479570764864077184430787858911101030680704159306941268508890699013895677257879249856977933426331545865111150984252255806672412962355438994364672627643604751260990463172318349393605075682276187027538781493277059864643291961032010051499986564428438323028065932768294037925425389146432053510817697713846931979641897323968963113084952785720785517166253391799339515068355171392673695732995227762740117434060300515232169478817822618684660185777231216763872538745364152427856395113433429994451286457132727812059199197057588626808934304517467716637851238873262587485240260137438201303638589335204386341453597575913513181241722327640355339066735386168626701991558669002388501980471064750198648926053504040472754785896149587509417465053475054164120854298223224021528127806686850592730453375944085152527792615957155592179318761230354756439147410541681043406265434150470646958679790657522112037176188043261618448976809999436993215579663888496690359266152010765029406849183488206988350181110236123120022431615474733651356843447176030343093363420758282918868366052177710128972497381243630391516331448363653377985843961020011232166699787068481204602737363675905346519680378914971772921930527876957247519008248305579432174969220468812494262854216709341904039177186231976667433082955474381477190114599279868026519133001945667574899372044422396451904668657248458677770180877066047012208248039934181523992889736888267820346943895228465174609533226110735052717455629848530598804222846181265756364504927884839781616315322584124930609102234870784717250883826660894945128585489650709692224847118209680494592295621987463221955590090470420195823193515194367820852272003374573804345050818867432949904012171795478967894156786373102113132109045842291582746055610323837106763016752057614071480591889508463329107879422559956298861889727250343929270857768744829859239011198096321977581413410797755929413413249407376358093153947102294139507731525073506709174866550209422305428996563056930563909993705807783845027101103409662356317529356367394294994394683154134128346626220579450151155833823410594660371042800809724323372822902435497550231372744858238527087179800167203141818385405341712625411631210263329077399975967004615898222043006713505686233225449991529248681420409517334716207801825948280653991477576697771441966559661986632639270939618547858096958084802221864197107227046927690798393560117996516883293532249114464644404079281867119582001944924346316862308700775561060986250673890077188655954231051959994555455806019316512316822148230100072352480565062075254540990687729294288523465744465670174000069770211270301059362722449170633446285349540121857252990981575592853722450876079100245300124605328341896000755883118860196780236503156407625320373756469572705000667726096383535873978664578231166016349720274456380361979463767057621069467990631043480305795521963471757820231287259088223676491222322092353848367062590322571888682077246033751654106663766000260560897259590997782585820550805646658476223303825636601032066882743744102235214920922171614878906782907527578331757459681702476972942019935733492660951339756257322505545121369421184757494658842334420821654676423862978761501961582859716079286751653584063591415886264877378676475540018899921060706645575148524319806937109796145686584059336394208482639421654403258732516222353855122612319455585593517828114334627931676499434303866713520357314695103746117438590603113503511928327656206397544133235174293628171820300609407577660723840048520436046897053427259315350338254236740413499067842136437063741408731486416549487546578016226326101094026406964486706723960457607971557561707826979592081068937423056039277812657591676590452423462256081650600871560924302938332280920209802247173135297270743336778628979842393589063686231133816692879255780405001107900185890793519832755473089835119914684552236557537533954375382793148900667424231464574334360695560033889919931461763834491159330900536142845755894421509523728619910105029988783294944621942676238580595469094854426846652344779602192361606715984814209615387647399423540531077306851423978837019783717452560900097547261032806643526087372013594608407255539868398579445010347074736131879955468768385597177014810163276710189830769861334524695978739565163655711959816397128576884204400936121579149225341084689683527522114003691054062586275285726916402468600579449634472885634285980744231741262758875414003284196760540118950457910381651783594569376330435954624108871649399312380577038459731622838333196140908792436030744821261905668577048470183223003277115418969784638808322542377086347187995835708239263394935202419518995033781087602659455377720092673193528296576677128152885110294132634862573834534105874747242269167987445511067904786135018684464947852416039774876372219137712956613918272200544319548508675769374159002720897518175478286186449726189986699095790847112477106720615673445406871946218431139267146524024291819408704969162180183776666424112953013960078457037459485154928310318062024506710945404394298231575747239386538730545748310725141092143132684181812941498062335332583659155865310328677352081778699946821088082282849015732905516720651981560858605126696979909989466463094341312231629321606911696857924560692844613559161991736543599856095898407330403453854226867614508389787131485016672641501187735605910741523566150185344595563716805083100997050317815946821018663643640857862701101828851286850138827207808377251296351049470067167507248319058363622639646965058541152503009293359662799134285516895657617600264409889951099598095193452644155569421316083959464927495354610156945351581599244996912649500205543131640524583457463782760451678945772609422364339447512391096914376251471108859288147694644202026580669296995728910127204652448576749829392542597090510584506740792469201405716709830691455338637894244807703181794737517604705739022720267714986427814565513774446268130134001320882247149360527727734417370284731485981686081817074319006874572427344788108962836669511179438838532344482227080185729485577504305574905135443974471916121685881963635142026127317412326992523605675637299139477986878664564600981752679599297626618171300738793688293689507566000576116413675027582482932404955232180648612692786850420234697364024661463909253811958383841536768959322245575137757271840803333361721650102591682951867150006298632262812895198382581893540320849185244638964912220569371014502365457366124951362627763668475383911388748635563172857223284003116888891940259181555683690828679401255889453151689708947437049409046559292842285434537799995798163305975484147489014008007917330999229342106783641270236629549659039055233075921353578586913175041123034620513745742667989559353866081717150616759130031929579318477197397371347254717342530894074019696469050766017602620022511721342278983890622081537460155105801438981915143440665474453732216781816941949685806893618226635394708173755329643734944753739775151170211471030052185040545403556991929094591222395131217417872236520393153499435998915427870691767178169740501063016659827493510363019687625182307864475658121621248526467035428650047239576717641527946988988129459668866573710479844666495099217448503584397318619506063884849624524922245749125238001610028031499369046211551969671288265822402674086739328882105100898749974997287565590525075660365697190986329770518407918625647734728707706473294694726678887083931059238478145565324399893602646134186701372196885413672253066168407858553425881738241272354818132778197057914200062123705944480273856943119673281013047988739284113769377310996847959661379533317591012201810956789502504630058806740475006047939348362200954760198108402027903192688421513502726175775968225719280044751047219679329807210740580323987849233466325195993697570072532433764701570005199722392573552958841367444420254296066076130592830152105890452539854948027298279835507633393056577350311988150042506941245465555280691417606525290956521569042254157496445964296633421421173335754493676784165098723553268298224762369064126126792251110898679280798522872994415122032605780827487626479409419922092517974389764041250646170172796645437690767152653815840196905024159400449730529176614519654569182256260134581994197135225965564016443788725782982160398912006508884654621029364461402500968684383937155116864258413504814943414036510883311516477088548959848551347293665969137295481755466512233883523621043577001879462870427719466989611485736668919264727398699752756249456568157061980621330300907321532343835967844813051897829747941847868261497207729340851768950479260958505449345492719019736662818258796116493386373582953554560882789740738599765787235260307768224306918974359526333488010727878433433849181860994846798833145389427768524778899664254331735819100898848681581709021586195857729633603278836986430769676765702511250209150687584120064144277794068264368186958092855901978305695376487714999893234522413359503086888212910037891312962895956064807658918163820988210238674860279510076981341171219463925292225511142585379287911294062935771226685652721372088366636806172651981473395420515690146216114786205797901178269843789164008193895835340784691843518339327064506417327323579024287291946221016485685479056353188566344228874354793629973220435750568894739552664215002658869603449858027600985264082770713162870749736041175337424654182561246786875715879495255559658203422314372274935758574583172703910534861585384255097637315467934058673746754207977787257986792266718479088600640398602386230210286389759490844116535669765880688357990269493812843416086018002634370262856052999089656268313370977697529322851488079056440949458961802987247728082360259108848133444905792481018617885740115847884594352370683014500611785256478553214539155715480068928158272754481827956874993540351995333198287501859302782250777034699209329261768409925622049976419146580286451336216665567232109411212824545511690128591485607971338246315702890442786250205896428552816990306722692186435998323961754479083496107433060642205935962963389659289935549802457478851146213775456051696207474864825406038852280515942441771549489840222511254252068246503597037034538308339201193938010108765818534314099144631580574253372518276968357184342408836913032615839730802456039357606630946310434267377883406838637998071823280527522891631449170148794533947485758133221458332554190002581849905112635737082322986558112097904335315400677122096260014181142581072438959805568909577285779074339712275795401850531496715070651960540871880257053801212095684367612460644254088508938734972577321579584437224690989019562028898110265524707291926079335707801506212741374162571340601306025643970034098017959430279149412319312243271858696516022731749838994212895726461620932198382002359317229174689878640994319491352907465073451435781723960606802738825175931400680597910016364903644684789260774880705286822748202135858406447010939174507091350037164865757371831793412010754221725088913149186992590167470204994200692571585437482691567802945981303583080271450103337645045840013901862648361932176957581546641000667400106337163195188942917249181917530529807747928779610594886219314838131844303427445204688004438187457604428654733963673972728864982981751611114399364732355277106638574500963412647969871849417184110225132136118789402186856567593874879113314061014079801154716027067834965311825426987993415691821952067462161616829733800532341542962061391116167878205251853850455361819437795229070654794449367004702021583931058769656849414630077827017854907814500623426490206952050323802068619137494380549020233951938238455181648711583317631662448346240425730592806502123771773544279863382590176203275511375429547341253133806354498539165022664418216514265217006877790593244657207973225500669370241374129553928520530659189439717580267048197776228434890964718580906644813428402732253821683538202215687482588077474030851768873338752078818947592129395395109489694001563685484582057551999134536334695607694839791381819667363619239302809512945138975977188747419993181945135933257266668862847335890103188369616406836171667002483807550342359916841286298334387967920415997217451411592243945110066824604393331842240916878952055979656988890660468907019952206773163530079358313358825886606653438413361504812360369921192875043921116108017017710597833934036272849939980195137495924014727290642305485164194081267024302518317749575841549861575298153735916624762709577579574793202607072343809846748084842462547151752107015220664839253738010865931109481358179220349833112870379484093286099966393971517366416645979242694372590588857078322488646387760940680478887473431685326239499410056694083684027130529007726025429345479441957615951473896164207982494261440102945680431566999386080215702706595684567510289479203366883551822161596237526509774453324352388624997629573897419338705339685317101173602208257882690351848603166735737685221384975393701862942867219696572368966315132001487419279985824759670823113272552165282260872226701463715167207036344558936103520030007687293721329457613851906269498297970481417385666852958390420791145979368855305160679746365754338045830473897384677381143782121259918796912759629629825777370292975219713397823760960792944289724156098554385263168299915765800673933509232866495466696209634551703234917456207240802395529236083521159405310863649951767130215184288610889928343085476447388921783227898926314570348072607019226196972392710302414629074546141564732377668911159331921072495635777513299519497686453978850645326247229728447557732100918885129551321089876095660171014588419618202103436537096520276060173947834060742013739338394413538135355044329855122670224174286745146387255146553846253509601898028512824556107121356634199815346454711385043267896948604623886699349712192359686806359256290536205135619904390319539476547737189517229550900096342108964365048946742837840379344185402741607034092660035978292564669881244149204029004481509007606190973475337670412035506279935084691992884984645299949661003163788331612189445207067742189044018322519959174371644090011417130166236403265192515918131869945571324724315225694691484391025453833785705193072154818242900190688290204490962236499991097602252059818912716182088170224235890606937006597543736438547312918096002513745507057640332791743516851488314642884749562900012175887851406394575487279346202209446244283697604918725881846147208168152230133298150006711133859796557760623665700376973716738587906958661841666448348939640101057494382959399665600871202569726528092449887622801916179045836338519460170944458889006594947526479691262631751429622317735739800678980718998217459726162945408267125879291297006921073793100050052021569119212019808893784581796442031057275331132506352048047652676579769681124323087679686124720934038748028110102780104213441889905862536699411196873993971522029696843916078670641792627875557721647501805654493375737945189554099207077378690954155924544066227805922929210023767639092038627903554386154969113620732007709173676169043701416302886454743714366335826697969896088693795781165988251002907827803032103807065388683876675175128474352379681516612771803359362107996229025870052438806170070946465486864343772625929936127851937783358495544560294390582934031768512065222993870610041821802721342489434883353008621245988904686314039080994171133622050659500551242608227097963894419113496716035895269100395412631488383994815147968625085158828676162421428009513835160140094307189337551589676196232295722754554249669870777903187295982483860098264327141596858457645425492437877936753261307644959357379351224468825189647436051727946412541061248091518743719903589913351238662109833481745586297267460821031750562191013179521009514116988654292984307286120034870865127040144301995067263009075973810423826030456062759997369179380418656297907583997777522574202870860295036688695434354684933479474755081479668439983288751721913160616828510844456894494891689401191010110817536996987775867587580807670782937781301531942859230395001669052872286533320247665401615168737903381801623315138673262275691265512195383095597442760519635352645731662892337034385773150278384120623269248569013476940693422032355337126039809013297928444550938724468710537712927661537503641335521426471705544878860950752376391555699341680252551299172277782062559117121616497717586813896698389669765231513841089187391124372071137983046308051492357923278214778237939835982960880132447683979657297621372078820677039509444906467883218849339313043704257937365261440188541357412859959793699258607180449713177002776886248965792379828621909091967047022731435330396304628368949978438138254521431774804444240222280678011577471595438432181318482768700461561589529546089127653667024271296570878820426087813160413200086719472271751349397389123645816707919984262545261390209800750430797895495481191490854686225830121423616183185267548693889865464409206622637633167163583943232287773862996049161175991770353160405370972320190676402752095201408573413544929904557329587972285940016284542966047133508264954699110286945794170654217845846550696080367147128651394004836068764302845180986058190159074985008754347025445249203273208380095966002769695043277647395860551249528920814225648252209096221615000347319658425740468802771718479317937054638255585884611832711338981158667942752117323142714225760090704899452002582720005862214463234118584879243928927004593964922412805574133200926198512498100662057102564438355085229734120273207859154293409543435381568729748607165481700484024010897489366186204167763466665383106144557989648589316978252967066290858869846023893123592357684716246180110477415796919494721188753926721184348495077102519487026243758511131966917915242775280937631123661951695265645261999679765309934474765031585289933614405304900500454840258001876280490047791430055667389180261647495633980549516157224019093910645947217012271232738451314136116196285488081630215654646947657875314566053439709893497016733962543830101279288356566331297066771897524636774961412221550261889361752466504770523701248181747622949273501436027829573711048075348846239228143960711666363591716263947246998100733680545463983407268050322390387704952148004755495858331213937186492389627633174791176971564701504757006751929407627106852444572841548285858485716890137293533257769560057823717976886149272871269748815956396763126448827290594975150652725638910985108760408362488014295818704044849899351977027076948624788994790173004685298078482264396724743504779536949237912354931471432968392547801572212209914462742303153443306670585576054407621190526535039169782321506138145220523073476407974838218590896447768905872793241516184304664424980803914644245206526321713178817492714417697123080274228429637497016903211526386599948757907883778654648523149245306116242329584373391090349684068677357448359813341251592118741256968121072516288796473292577995579392377455640681762927957490915811548618242489952852566927987839976865770268365817586714996917482708083570802865862233947197363840547886116797151922862568751366167612138245761277191145123289616640539478912448326049634623785158200983781591881242952640092570196264362336059654784759214840863346620454802260751612232626815293575239976102877537906433139619006240516835752567871884172404688925044703651558519400611478057918921452408013387545748526025453613873069092496364128519373186710896742973576706516888219355765946792570245261022034307686403278876491356719542043141875468469608770622772678274554521810169857281906936862138973328841259735611666530459678678972648955943532036388284199258412964526750493902458315397421523407917664814456942103473968095629827624220868290283896411734664158236405018839187078184083084415203629398605872446347964925485276915765047555911582767271617956011386029437530104629824158870403401520017939590339052118364645930625406971244691788585648364664006495839995176166163974563533778127084895830051074892497558678952082061831679474332339947260258002358771602605586578726068066540164527716783054327187889049860121644699409337908332435594696177248040824992751120626180205626743564613492464708938030795559688564540187946152131776663632442422505291147000081566848868573189028993444913209484493186471762714595494283009425674770476911859928157914894413555024172086059550148460214574727414636290204032682657114044716449519027078918152647466131159252402268138511596620352344032375556617356179518240141474789582422931575184574248515531187205013625752130202613293123117807727228593595556752805967901250480726799332517551043892267207933592161787919499676422819048065145555865550297130077852142815920904808207423275131860212793102748239499152479516343632325994633735147219738966931514946185501449068894509054323814869488620679741220387275795004961924957378746140134386871489945966016169256978976899899008551056296613690574591250903664872291527117069400012838810319905435363441778100625357485215501737974861123614350411590155239344258152776439426369153196810096778090116726631390621267880224533853878246416165957049914863716882019718730326065776988664163862651328264216165237878167539179916235990908080776328775693922240095145467528524627195973968510283899114712425046633214537037840731585294268414987471988182458263670397487568011227867362731273474103626768563777563881643219681268353840333544278532278048273013736035840479102031418733701172467554879196730738990467987553215133327588241035775558992152659657220565637289577199911580202164451037468493795824711306628745290689776092010678139641707585995936548198694441728899253300532408915850975644513116776435864201730944361236827955027906347974631803987918526902675825781404563442414329874316835080291080722836736606507916357184657339768757650858981336613144472587195052832598370518270764226505268697894247288286359187612573278817547193346867262278631199973084075360929366619617545339746809543704239638895450464133116216821955855581381152817140234092212223326258662292562765681175932435591176807816946229847407638022671705458763038871781093617340596152620044852171992985991855576888741948966059605530639183737157043031801599472732424064577001466711748080110575814746770833933920012510985635072175742539764627606292344237610562311554692912581124136478429993595171125611114450738556865421605671686938603817967772838707651216258582746122343085562215474182619623144426163833871952806633395310259805396919713100937716603107237869919340186734420189051460199941417254694659053113047771590297756683765402561552535545819073963854935921731971972115781026080830614637876671450201843746140780116351547267928685526008602708577035451662162485492185987935389829979693624498912906080291261714065974293887761721376861687517722760022754137592676063779543651804129711290945532472047003443107511792264591452724592447736174863698304638017566825841818794019067233101572943823710775705312972140728859269835034716927058958223776496758705412974336517608877778963835035729133228484702257972937616390541778384155631186651109547287267602959867091322986800661381024244425462097106139796022594084316681897985655256603940503117001490705779027441526101183024950596368459256163359766132652961911525469532592948111737554966518634968722373934628380866134123571452962121140522547004404770109717889921351606086994223175529137923291819746636548919457886116508722256857368696544487411409785096075938707048375825634673987236777862652797383196557155435331389242983754923611821322478022172563710492758235609660961334223648412721979337219112943751995922281337759481245938327240052607357388109991692565495478279914651711469162939352238100973903691730131602689270510537452387117353931989754968905762523835489255892220425096001648668592489802384915883597157124472243970633430526677870362847430959508854234560626008224704307245996553910810482722452047240093234158153269254910351606830066263558989623916356775673574602788361290401007332526613893429858029844801061018642290795255432653585189673909378531773009943192341803420103960781199369848751210954620196213306865584810589694167095539933681653627349010142939079915117710803050875279912786319819482734154418571990311736949101206882158663791604686504883034894044772078950397303819350214009285698677497583878361913782366002734393450847371041629578935190551314084175278831234302426487052982007308391887892955427050392223272315345398666433389176287532465478147931179960483446930541659661210325601129232954407718763744589184004667359071521061997321552094666512464554992269257387415192602257106667712506927134625767978740733256507768820522311456749376695475082608291041514810129041059535421606000291980480195403498754740396097980097016517027229035457350176869864535170305541628106012292066633695817869654763631689352362699449622202852061633636045157716537178089986558526863696878583665730373465529413002356521195472685753559831226555084228569788461407245113951354206794291891739313981625295438195379496756224265088866628728285761671979761565197639936670615317748414848670617048233699058348112338861843800149045820649585014525250023752476722362692950084720516612983468341863088217618224905015436964641015039127077330855497093767662129566004673168706153770721990122533267677800198178258346563704069612399623651073440952277711982676403280484733984219830468623314950135182222597394655380555804399349248081714384826446022719843755819966780554012593030556516559454279761412025198134303533311377982655118368516243250659154240351527980087067841876785822132788430331112372855045286856996388337531721305840679734823882497990661378246769418387379759141032313825737912809594748144371613301335775261323067411606757568003596963908993166885646297658803904527306286147399224922529896613704040801002598326043450274222892841778542153947600204428661486084177940564711905088484329732093244282287006091460811209928303969014945462958207622140817758744652063942787176854705501395488413663398427332342476955607874372564713699503517555894930032185013888284716646620018521542414866288373997981613327102285618061034783793189387682779734984665059126358214379840850063375609005161391536591700603248315274083968328419512854217105406871753995471228095889400375244816996581351225936119319390921201757324926742847009867102909796413248358414453201433830294218750985668034685673195300414789596267159574600799358839505093204854600047191240773968182354181157391914964377165329193408739166785037659296885622970564090316933763766091373857606672252205041934193979723602440383018364005985490450142958119517734533841525319342968098085831318767798262961592563392430541320275618218427326635822912425688213967712785466741196544963125786178814947686713679049481683679734340498120085536256903130917406005924465115627160832012994670123529133958698509755241015859159576700830286627014069528942265933103981786163626289111428358892801932396620652238011363476192287676700562408043219672101172798693287135054343900321395891555982676851662692832750567228775338089111795918345019518670162305196730708544161923157419170882760555461330589764775026142426742132489650202329860799883508270748153629270930999852549475810673668124310557760814564894034611111117940186278653308313175457783534841674921969188943439508387764387680999205031991941147920473601621910820158129111449027176097492609844718113117097615685024524143706483469118976339614438354934374621821711386854468699212950738596690510250863331302896758923273628264737278558663513087258950051618522151511009233700336401203062599737689995877443617088523405698680685369301327207382911329236773014989517718370446194406733648998480703416600233737249325725390586656433875123881813298790849909395049804957640715796125280627667958126251138331777633044164712838942102488206852858734721144107911774110127104285492989165783406088103819618533529609893296004843628643765882852281573966207208629537514413914846075604424061267058029919725480259136378447415387967548050228762479846244227436970600316793121701982394714540941596808598408657184671606171478334160943270449672918021843565212425658665034601427155685474789141272565545183421042462132549342401774535029101919906029995214925156634006170682260976677496222086123105624707097654559426145650603992782818608721407520390485439593396146523624101268236471030615470429295002946865872514513569277462311793216764825804629149931897970529433077564027506365787809747516956985434497818542441421287809118194091005434983267220089763923459487613409378560469428014234720471097919203750331422815440429423856491116937172366405992946804440931635055761937498312989046118120597331296413778801607800345887309078519886187572074435580939504870406226390828826275987759977619923562341388473108543337927269599070529109356082237384516481485609961250690585402594290668741692176732910040913665414650357648166465112013146749984149664665946735228896071677666297263446056442965662078035499367588725401787382710299771835557004295913404311352147938772700737854969918832898376391722110013121319993162936707269601401022527568522037971832457711493676420006924290566667174794007017686645153185962670455366175233794511684951373271496271504144634118635444306613968156241860000139398505433778844431712127434061922072742364226195512978754733623751283779417921160709981727670512983231207571884553191429730968388211188667230273388434580121500297873411663653516875032737657531712796829578604816000146099643969612196441776183121437541116579319417833911740289111012618435909937957911488875893871468834251265236100339121118113289792238401376532872817385906355714157218919123397980190036863549318259208049340324073918562092093108897886941331708269481703540963479922534641323796922029754796602213442005369503822069423899271836129506171071075577380975050405887078870332601676961904768225549235551326810957990336334706343406784612472288555616086159855884041872865199934506378965794782547131943048687699334757884651659968717264342276885409582073227798496354112599432203003213862798578348137684759406319783890396368367865394553926611076918585226171372599845880505541980118785683889746623223870000009223413561124081058056661534374410009482568603912674388542167787325111657223136514008190407608249519975024812894573589127592758909424604483248926628924498303835445450076839684847475326871732063456166436560451940925395919430086763600368859949076312565067426054094357521983998271174854053523899783873933161302087864009572688848816761446852713191191963603920948145722031245984899035210147899958621983661804446812510942021322438190283389073628484543279029946404765095081615915181241641516496966015115204230112636146774573093608793181316546982159673863191355480811378427899876439949276575932971118000531321236814471964867496205466025233444942846571800077933524054756403119291643164961695870193665981734547160844945204272167962076456616670191864444213029592116400603524323660679926069529166906507073505850270096346891447674993765555745522958818230518634526331236306082771054540014823962479570860041399988656985151255737920836846458651198130516338342218832834171273907827903671855530863312954845570283082240961013699563829463681548153216630707657441938308375115368352421921437136023650702247096515758283715689968105262480624463702954138062093793419912044404361872894374586230902091996767156586024328125523124996313508845521465065345022422716237787231527384456094395721071822015659586056354763390255730919006483496758929978500680562159583573615421368027149306724978986650757405855007502529895493988168716990185654534277609368060281965858859007236587489368556266659754344164213492530067918395425845884021065295219714063310534500776088645048995874334629531236250502212660917302728953309017429537055794004757275313268850346459580782087889108596385839031739576731703438707397447193168049322817437822129476645127027105366446829806135564794127402520069087792883976830547494205896923584308471209176001349037345760989115385337986072413321812114887964678213935475396636700876322112817065260150205908900334210759343965649780352738103648299487625398533155044128838985533742040804402185184807420401849319449637399507445417757521285106738917444345895949141244953236975561286627924518335938777311526372353037827941802116896799023100992578589155129581557954020157090176101113551814763026011308311110645558810287540612620604676882340720571630722029365713033018818168860731828151668964049304875171314292225602016330069530672624476636219731375498672986382117720217313501949091240002711323454538783645236120709487337761510799218683634929802569558816679927222481877452563827190496838344050802537658514309513852768213367684365803358554189668363540468722249425851722723051155957060593326198001985068195178698140022046157961084102065145147652735688568893745948947541141958781437843248772016052828602528442705513891818586302439043678691833143653787442293980616750308244746028466639426173089353962404360979119579313292094316204873744341705394005443014760860591289696502413241216352342681134589789374177089705047405028700917512610869845675944508817531999024029539254668025598200673710292347168683436401491391297535953647885952824857515792635927451732766489559490786790003545768775758879267958099298591099770232326303304501702456533778560038081927745631744313398825749089484541235677599619146759681600435927950176991155186232443217623204770474123528820053770066825521139397772188763362505549165143703366849353723634246191021515059371800983415957527593063046573423441783301722822562770543324388923080673137472386888359210254407304806280601917423682815711025347100477832714011968756606439586641801879675680022531183476919089781444741246112781750591333852080998162718737122893804301137323760940865830092627408431254189965470590028840079034886296010545519176687444869658437608882635160531533850766616736576421250244517245849393909898249019757884225793575697490674888288911223431466606032859130710023957583244328558185888825638498800596202105071509650789274372976842766798694267284377914861742020143292957941374144952264693573678594393837559903499350707697286816754936381280592506842579037449770775656664483136316595194553597139842435376991730400338027631574745943594479149664517883452959913236090005322634174101350004892078260934401932200946513541595784567699439398736916611384159600769621828050924476697202193436105127213059346281979290548871695650094057121403041054521757410429017866127752897227742028668470859223077230884394266919222549669023235964209018508603842107296185963029800076505537910017547757565042597702482773178598958803179526934356316113364027750890778363176504809018326226461355967678386829497799054989970721671309155078180093771634955904499623333057909716308471612130970603427604513262983709780668888795913653490302825273054894149909762311283408304478468715968171243591783693409212424777177281668726737222543534047335214775634462212723506062968574252725600547362101831463357240974150869374660716624690298078070931182675503521813280419690932163268221999185464370947634918573573098745833031191132243580305030714592388417016571171351891887454908332741621326251915577348276930653340271072225376054198116648284193790481011362427917040709833083586929997190455694923007819626608047411104402577446707083603341209911790341438221666428793899447265434712525401007066931829726462445237186776693866668893382039133967435727882608161520276843202824937942931446045066624369824521676845676061677880377518440631058059623881043063758309467441982884274999144900378818467548165221426436311378595895097730210814125626016130856165981084444985780439532440665442079569373693197848669515035279642509806533719475870349144028960682443965874220087003029913161934859063503784796538225898740339425246854144417160205726587981248032850755297697812354436657816743056370560865518766095984684117382161375186640037351120586674589734704936552754611126330871767874412901347624080551000688154869014672244618104713230342568903805801316293719775486240546435714216072202570465176921940710576196374251518935764963905824376332255518388129592123780929042421446638463688588342218870577382611920570178801969967017926623042695701261075694140883850347330038408256656182525596900567824674140213267886286933693503517865116492788699154111135801658080499852236017032357527531383124223055095816697250654833509863433713500391930745083190191971923387251233231740925848393896697802240482197235831670509235213258093559030873348634506901507188284797509937786803577987180963984185584509332676778467394589600373987583993405948047874493354014666337250193322685055793216805852519109943858541115040341388388529720148067407865639899566243788557625034218605411190464429214469814349915375219770479534427918826238614044455277793002079354981966520163247552989266730821392643906474612901709873222840340513743738466859402597388504987166572582314745785187490203709282774452016116874769719588255084237407502607358659195177219267096376634447186768970505272797447023615394056572283876086419427024220292220766726720200592684311523438571974178242076988835036282231990381092569777200133201602962102417471288959279071332068097161159588202191952837444179185368043594669639560261546972796915815578907164733608204026221961308489732505608767293514132385367551018537042701143707074423913150944667618480452961403410469185488079781632022388931502546548471095761533016369520166659906144416225607772717653186471915381304233700973145641489002236799486727664743415758124957105314620843695017879250190079335550232910252192015562941224032794404568723591977493388516723182419411664919959842203569566867150939926097938654353156079459417725010115359223079662706727784642832404838874797745399402683672021832512825351146288111487689814113175593199879274305285403260212300921567534224190549624478699312295334146444781909140668827647056587566178462643868598522096852012300277235826626741415282404807507657533693374352901560639766293960361850283668624288233228241832642893592168083053301903787099390897099907245867796212953498269652257566099797626501102715466507559782735965842612639161292516221700727297037277456628834051647212374290089590952044498390127677245086588013615890033576523366733841055138950520265011432947840667550853242423257080625270394556368224365963829659828807913681127754174600871907967111999279292094858495754728911110905255169634208812000330605567197636850330556577593112911768051187957495839113074772789698263816054938229901468822457575052155999008544229339634585206018893374404180831137219754167613087667903100988999391876375732809803928939161515745326965811092110238967707731411394955453524246702825093242638883907545018733072396375134981836812323940605098909316990471866603123534568174767823188737580361226957819861550129086543729221630452604862208421514261978890812526006386105222292226731766330662861918921175782930942258847969493994014093889097436580146643648249766071866864082810008767861247991424130690030889931420911906278654993789759969015652626469178189652582681813443261167999098447121964280646021566043250497004959881355744006993007263543524002835810582446604313079355504681642416148979166898485368656370022015331972762899687878778592886683633206168522942641326603991335968621183475108291403851725263514448306828453387618582539338688549111243879559087409274082938577821592061587613537529349261621363009898102973296917540608798384501759200426460424898450537768835126353242617532133382695409048391311951020632977487673766082160641164736437689187946874682860486748834027036951929845324394570337912253176719247966448835888382869935247893199495147119869646809562727331619090240874414866700981967565909572244270249799418128456473715068627188691467899461538483475940234127457586518441475521284663698123919539379624865017757330340530415920888783988362416622770076473942102965661579841535116201371147402448290410397622756033722412336250478166601609155264356059074474119984461329087367192300152700068027828870552536409124122254153459913512522129378654734293540835469500918822207049191979676506627844497298611867526663918566369292299154863555687691786801361757522934011375576709171130832812797249479970986703142898269994655808320116355743329509758362115719920538281498206404980802195828747180460801298541547524483283063578066418390496643353725777404018528459460549864921665332385361680692175333796937512908856723908702442562859590480768403229231582323353177133374952239075473304711384099154010014266103821802660540905300617967683300613728504597661227844516415172892802295982155714449264906018866744225104545169741668665252903785603895452973082289154297336654441556984079970560366698111939784881787589970067998123332514126488937446744423673389311850414599174118411975157053172340873110030413609252085657593379432933992376147278069640416309200647990326628259335025368849354622046531430964642142065976414435243556877063491018098532024317915341283792060717599987194827601486226442839408571690320705517747323865407014323364978417357266945171458853837024916168969336633319075685570665733344283217381165834160268622462950303397454710567166281286234932521763576383660740161054420705571548370197428068109530175383540727479565988092020706761594925318027948953844325923488156950631673733021659691636216088008064481257196571236348391529344277557131371489873510236541272858915575839212294084663626946702409703368738713897896500161984426887066608119830957790694726990155996030234075936625199954430501624437064345854965968862265795974139992226301930364403073002884448370652314897434642979696632381787660456757497668650424226214562676814089193434753811684068844803813356787538999322272872504079107695781839705950056995808939983580378595265694109180617660928762588995092022992624789372341146974386580502483991317186939639486893077956023294915827454810039565608807215919127773364916726710118518957644172820047082695032575212386058000012495723089311647381403836200178429486642429560296506533655587552938110742090462030617446298624410728242958974144176875899472824059570174947616223098666531783894734552604822142401452317570611744000340140226149794154308911160402455200266218399898857325945719184411730785007808980895717713510489108657024473644115654568383323103884143915271809878799245877922320683869577204283651130316212183000766105316894701178526517383119529535386180367239846639169103369176382983961139684505584144814994879284536527410071549794486357259753786182108509539600945683981260577900412837092298432016524380974218120551276284201001845322468169017224183136860319150158569952552821232922279181398154487151348885339628478160403223872696686621688150617452966278330714747589884291678735070864577771659936520260141044426300692486773699151205818444705504132602152984421768129177159104639196442024111981823741061518235643636883650735668718385092946578391846741993550222843395262065263159417209575491125222547614872693192220636521311939999685980484620537007891984371688638389891957367460013646004838099297721202628497483287646440552927924115522696028490133163569315722801137726515484001829661860518790263357145332199854524479947355390945016805528810692420774914781059225811580305859573316628917525043318691168369570219900744315347812814999762616565229029045891464063338596886709392722355875470099012587139309626739684560279272934701751712302774961532325931630735479354606553709383979584427592823810048550711194969061294274862705492060184561087185608793389549533101702229327185788013891875193217083924789240938335077903326966745773971610175033304669487124339909057500764958073441905804365314623726028898580445872851537759825701463026532537566736579932405094127586279612452694254697547674703321679079635158451663029538526856882234127638794178738566068436638952322961076735991737639274369715079780109521072354696466589426686713747570858535335220891185332980536050454793604555489952558760189893000459892955439615365099530314537983759176537934699719119198556480123317316100080799275034319019172419218132919034968201753304354055478042109270440443466798496217765329778859841893181065835226456895243734337094716409955861854629228860204313443613612627277993539477860413806697480373485916209285259368964769395631181687577209902506254824109415506540041728040568801840552380488376294759661821385946491354647082071590272850117305631181278034019878647277072567643516164521556455920760623620788342948580310927092890054933124353100435501367613399044663070663722461422783468129457711177907619850794886673856305489334873479804977276863393975447436938367273237855188264134098395529341045971030962695781464739247447212954924727581485444534435982646640608799240997890914893568600189141367009977257262830286797465608427871731318288361163151402149106278558634638381294393876947814661961135411308597487839527270483280924180599876261697291262195243747755206533529908932076969693819069640275452903085128484787771592628353723672672550558624808278593491651385528062696051180372498507945763343000164422991041913838671183963516927711142176116390133522579641122818117353614414935823677473849887101130706366708859933538948190541056427077040281862832165227745064004286243042206431710885017015099391547605649923559348333735344550021980670684338990173918372115693769939182667048178947331090230012880737972682279767738502023731478726125745123121930561828673360278205603359947099279990094712700205962689521727271196867839851030374512368605018384262929918458765120181444768590596773310049508193346541037416087530159546332523251679725421804426340686629813698768661671798666305115442212299578610364882444567286168258507277345063244203624533691371588883155486365666315794411958097300453906234484561585921833568354444477703313778066823247237040841788824017189762682507218316632624597694310085698348463292836728016125190634503682401391095641657573010752025259760969394254790183232018429053834113829755683410161151635868961739428449552729873509689088282291196608538958229129651592325206674588365648488068601082839915534591909336679955121688930316608663715555131695449454585168703389054039803607148141955965485211676060079061322222778459438512128470605729162568741348158268918164435085499357306617879395857991253498072550181329285167090285877112157042543864336531771537560698401490333946756890503940416068057256948855211691752190908083558243176200093709116383572524352235893823458045986297173747655103447878210753372903918558449792289952239284842186894622100065778375525225633318864166487713415468153632249968373603522527371031638907360053529643695013638328121736786541595595019221481986417837664016701072646916340367181880989164241616790087034328866358360934324169505607599647079978882938402326194968762409374444915308735118792268517440427071355589345507226591019170513294853525461711314357884096676739990822589121004624128208081029168694879956200153235779265859437380715833769068142757072186513877206559814577577250434382595655693117276641160485115270459371448526751792855690155949052848788717935112230408575340480160714858446849118767874026852372663575300489334021553294120219877836656748455417768047291025108127607503542871035238125994661128938775284831340335995147034726530927903994296462029720025332439344966549560602166572066622450020030426122666843173445256662355274583628837691967759210001284131488730303245435480008419728578676310327893850427267912481118023174032491935588139232017242949996193575490761822058594603309490843227030491451512619167635709584003781200460685570615427197814878000020929695555289690095779095905904162047795704942365996753627382598864595425321436704487389314056089389727227417901239191550650344241310979561452571308343666932607478963673063808024338655376998474638130682431285603277189115966097988539184717799574588628882830885170077981168761083367020695429396167853705115658450301887172301814053151187766269691321958244393201719125200851231372153695183640643096887888287320922034324775475430148761396972197339967184508548366396201635983750003650064807948271282958542372190177862540608797331955684423870818810827324082244349847010844790002256779297248924135955667321290288277224357625198365132588310562477597439831641403614433299126492671752651078196720382891022988956779461845118173978547308152644716026224553542732287866864171245388591047844226602155402790350916121067172865642958874668547700114165874499304550809344743428500876115059324733174124933606612091903486904622789094484660513533121857196364733494603161338593157595088786655663147627778296474047228261172120090599909947554258415266994592245907541242072422330047156964137067262245188080442646631267610974033834688736896823027673437693515029915552096497326628183255038725070572905707225168643580392026315898905648107644099957234509911366534684504761136486118444248846286750240720064649146704600575687134999789687600949461269864060087041311522863170923487088064119288568921071902898582303559341591312816522762662151547151120997822748588645865187222366319202280305560522715922859601915232812368491015247507176981492784637199229650091319973771885429164466865422926371110428560559222600237919843055603888924012856846592638367015268300519208130261752940196691954022749914274304793702649844500606790961108061570532082110774861325601841180627569552679457657521649883332108320036141881093317708827362957211403576317343254817040681372737676339037060529027228106343646283063736339519656236131001507166909810962578178670387281755755347394469146858210352465023978763714525823871103165682438361149128511492001888085118992191089263853576889481583128178633198958415944937163393384102754839061522770727865083670468661994008072215135638091300107016351292120444809184975901944894957809567437361001740132028046650813679748371944865396084068570655133236489583029599517058458006911564912984231018749069910524975741625082878496054202749040195488859056667914416883262326436796911390014676566722093896421317435415373173496172621027287899550119070850853889146146252958720125140885023746478552176185518213494730755275188032678719313888048758203056534893670961988255064633706134083221266364378615370641519579777476708951201097930891806124520325026953468317549234253623560001394415733983569777160319199107820582110412534404422696441920083793746684903144077722183928476350780138503358358504159757148142583849083184382242871953814581395924037330699726634323776943094339664382954404993770238062353834892237302959648484997317092751124923330154121648168083934194098789720680889884218063313014242834429268990896244843976275679887733825949879921318433866071228906706470527703563295015829769854220793877112622038449518365968844698388541229063931866870079684134266595489959688798021855131724686414608180687643613757158165365401781657658276801132280722372309244271740488334233487986221828669116042867166065106881059713805119684596257420490663784517322476275620052827943439471903886629052170710578725077639818254688508275312790040551683354751772118845895200450601615466832232059203858320383218025900508779426962635777834670186203642509884900803143893866962361512788212089932633936377477506337545771739587176349195273500454192529809736113849126345329932975003834436269857692149166896067611088717332571743654987496414575561283862540220826826670847017469253856150041370186085629534171098186267680678661652322406380757057455172502418054514514606537717634806409433412681538059664697817185830446142021214292762693289828315971405826075443783907102900173031343974681595425148962280915965137889796791533119631605733127050547760891591873285964220952882476884099323131438884782797614431632579827332323127160267437036211438756499021674278055988985573407931836613079325871120389774052886873323867275944607481252271401627252823968513822812190140047810904226794709635864094923724037202680449695223895796155867246978585393216186199166946536226165850268683702822229483560765894775079563893985025743774687204370153022243139099876028953554354832777319105927809327005077998020589089213519918040853173715534467800186651665174681018233756712725364451489935614454221400804220758236693844015600999984894282184083151059313816787440294301072083722638457171372075086584861897943139822970816895551216287543500594340115814582262384577939810830185965437488207228072232063157861112737867843586989497276632126821106077106153129542216359052789535833611013872174957344469046127768237910982594274873479750906028269185564140375728482367257770165704586974469895744949746823263572220250915366216249099624282412158759185542771263138856412341037878690939325521678681555450954656245478792868510806414450232110610552618245972859439703501196852041286888491994197234991160723641118594571588764072809648315907121455967304484434901431121804546686764257646074545205560744046475646548245107544988318068526537268497808866777713722781284050054394427647467564969936062871157556654803452458213415492128342553301820620266784836045721673218725329631031138394825135688352228662202404803313311391929222660832098358365574162148688022785441499012036840104752394493657978620538750359170867425137316858788687578915397346992999572856529217552512597033577390043456593396800628125456260507580469165450038883527597835257528405629178191780967686832358882532997440248960328885160283000610013086779103583192656595164040660078223557914039549870889243520695609536924703143244723990695119456635438282624516193723416623842558584726180484188407402263495090838378193076027411049165488485464192938551387266856715182737852838899718488202612469171301345334267823069868513476574769729286925752111675223004495738202302025867036574486609305633892644701445630364286871821003401904175058684302320119841313460323601196681498829433726903879232287652086000913417505949822062787694683615204997082073325308455570015511223976488909049896313785865205744707867066132311889368989688824504457498225126134469897008457567198614769319951861407254842569051559540414376383747370372687460709190037773555867943454734410657360713409919639074468378952648520873345688635115862326546938275214167179517831437271889798164450521015799571698545386194895472867982109645534729760922938050569689631702319349791793646556084236961168172906212015846794881863266251227306691646469943693341520039462866043646546338850167758633415923273910690930018681186300068408424677184898901334535116713008830394910164746615937242407777545965103451098505003181917170758051277406046479041528119410709721614322691593379469684027900050059388978983258849059950946302637146532419301086053314986104827413733061491443822993669735160013230638476827175465814197503703692271958623486374727853679132209687519243869590902404794408661969421640229859350839777995548101575004097669364430870548344107837881119134418949144744232445278265597936776966193420926394439435492577417234938020069176832350882418900416844164805589750466857186140018741912277107292411024661529466820080475786228553769978223232490887148824939313185240712840526210867132469492335748760354716612076076387193427557962354412044315409132804681521791075176907311107839337809295558928300643922391755616517124624677115925655010655292398327535854097629320332512769482287541170318649077954129550959987508665318979112445390509596691835880159433387261499508840918648102063501655899118179993288554529392036548163966092342785954571323337173932379683216956739643206518651505469116550085372925145504384039799298108158958291373946414784768687318013444049188834437080033613550421806950548165899524359946718934396380381883456108294184541267904312756392886770128033543418335690391690878220234367811837922056451081550011134658479902110218843847360560817592570857638572582248449284193085937247639963993048208506280261482087393064858861677694001635004529868169664298624934612412212353815781339590566228117007727653928084614200122550981614044747053597986070884105230105951756768181812218817524542276224993777825239134701097059410717543607905197577669721675404027157961402343816830940891275230788126504126484390735488616172454699819403066484117110555038816128538204319254235182163239876881635500999040780633027988723617069069298026089776145238979495029928609092921623324880401053441044505271065228895874441187719629688905031751586373338608173791787706419718719321629178817633014082061761542693206833555535264089000435804072433113965027129090058916097148324522662181174982004374227185049018595515694068793262092116867756780942533474858173171343012578947778162865814213579433676351051575794126978989249978487951559511233026241655744001448217828952279623152045867144031540143050430922133831095276226893204204449774580362466106117497519216682495552492103152144258961651064889117295628085567473303297044106019295533780679789419021522541642482362810807629019702205031285586585295910296685635680841743516880036232067535881682412040841946706350906415803605524708510191346101701102903939941562003608077905590057666305667119561197194519059113436891649749602762769605958493244481925887785923990672276906821302248819803074203769457732195073981844680118956210276465300650498753970796839747063284308712691482671676441053579084391428037224522947914485406921070657232502658350417663987403629536395581580872600406619136126813578747603714591632385446879817500995799893700292699672176516316298384424623127597199028255700126728904156162637841914660450783684888578137730794925662466704469181357825984611529112051485650781862994561292302299195207092247751428979302841538561220877615155318787581073104116309459460448555982626469726153088058119962297483972310412417377917307251742361151811889513784627232886726762066196079044127531512506158977066965459864543850598081303016857533377861305164856026505498071086098666985540655127133833886466349056043777141348304724497967790759206277543616080359732328995697166246057424097727296236818067276720090855056883676314408589253260266412861404306087424695314756565500038274487076177004628945283589089087907827914574788130215137478660577073342913034686136594242995692114551865577040238133242903519361369435637630335832139849415255747896566569426940884343429341829545046558287582847999938841894915312319233452094925636712915235454874963278655616913028014354270322039964514135181238898592992594169072722029689209123495964449903577909334999719985720546399350152882956765969836343420419522847099243743442950923800306065743688566723496386192712351076126176536296697674018289639157954029902481175327990081628597535251392435735553471544320767088065393579072157851211381187823028088460329435727024212404854235198977794586802591370368492453100621687591188628666333396239707117791169115798092847304699984587390110826605597947007664890763356418680491396548110302935606864344525883784635953175699095912579742178588021386465006201384855103494564502318078331812866320442106855155530012774331682811786332410333743921421422376841062182777555854894588288448411958533034445978865112991663456396461142274039876262672944496445913365969147661813425675047365249836069957764444055832555085872162158012246396818680810260197074001440289834812174013983755301972696080203405977609126887720305564244592000632031480130604107464058347834071049339931618832622293717589588507060573968502259424129715597933560092481539338630473677239344280864133326834162900374056730700882688808984847947567615736428644455911125740642608411014514212198086090779911039321946119299183728916240217243266836345155526286843644315464498094560062204416322613402265073205896217651313488603816458895780399846605107234923765262091145469898747775826776426083541566869789961509792290327800455337560391750536684280924864231531222520754140481774321419697776108687040696718384530670879625943158836908272368474389796365711164908196310699869682943036591079127777768201675270434768155528317836636167882443583161590464048740853222491285595879815397097908322370310325064281825701257569593790726781285487109171025996493732242653662309547984698988378788694408002126721875301346705628940299731323670708165901955351756816280316157360376972876864129534950593176634434837386262134478919176176256814798903678005503935401106792688954847152283681238251928865461954890477285453044407898563474668757072870485273454394295339897601638333088125104737474472155943526203490424573747620330292032026164125627035974542461766682112996581143056471018321020654604074155419566154563849018915362485553115677296659210089903476974213546967340626644814970798836516542489070451629151416407375639438185105756676861207999437117700534311188308031161729442366155175318695201821219355781123379200673247123191920741350795068242007928488254686892081610048993064068262845545626803227193393099372276754108929071007276806887894774250666159618902239297702956405831014082475293348761690213666858379713501334807733244408212622468244815234851208733688651774085736655473091191125209146588078523718682428815831309487157548959266417365592407253153235498614952824826815303541843266750032149655161947948070286627089235026164376945734783911392370720194060448843498999477708476982091529330579259190117492183675262796374386855711986524398756634731315181796346894513754001275090016708773183647334103273938848823791852996587780870660221881684918631256373603674329566045982464603302673508720507575552693754158407257281100238318685783409102154119869070968461640200897207632322759702835619363401990748473436477671431143570108178316936814550826188324717374917353706834281901358726354555520807493850946490913136011353035297366497652092883334908124327057918927757278586441954907050824435152689386615946317598145018304113736563789514606662278499552710953439770518087250255870352234191503057511870802893425117605096287838844775811374374598066934816102692312362902570534482720538337931391283973568902716067682631622617542521039462478476488033147504715666011535374916053116488752593681654498198095463081716094345389384887040161647831889988926352506766424757089417801358519086416230499368124672807334767398963940670863120812299835661294663054142395575080057124048715269599249602000246647156384389265090901146661943643755774696078873351075831256182808449891629707077785474669434636544810435042771472212099675288087179008750097928591217656637685684516003107205474883374025087316011725473458932742738834567967201663106721553802163844196624197985929930770138496204800632896824875482429700536807792358645571507729996747289308652655552375303005739502328957915871216278208913613123473765584642792251099506110602838037018235210337881271550722095225367315975731866358599119373851098501632228893218011829729682792486488439731838666583525178837504263823649203919465267595920448637174038260475346795868820132519921180496834174388491062161336484365608901663156903931803658076283456248629828071371706363066366544907764268648376456765117732901657189830141576343045033617970564512243290705689279931957340292786872475314188789569842397269470478790956924341241674341668838328923424212232740773951239668811205719507189549335817658771698953917987649318307910367408841033761825937519005899379327337545915384573291404631545041128133457559957124346514400935762431456538723649743309036627374855393151670193636602720611591850420237564061520039339128707980968500919437369422010028321440819293448614800753551437037578733579095733439332325404227676645229731357641762474501068563238993240871736426548105128594328688960984107118949444245453693702066415817973152750764016370363927571124896683620523645274452181267805050331631428134166252288517589973220510226670351456498806871924600779796110584489001371042263118968752631275985982070868249752924345091939725475760292480870429656138959487543607441556501413535741705990550207955481019179685960672672700176348330868260305075488685477667080245839838025116689331588587872301767947933025413637767153064282210591788159838419100334253154783738301678746399556148754259509904633130712270416991878686672823418058598617613043689975283075540501009645512074772955186038732571608334614641122561735242118585585980621412317429551528814211845492404115010117562966242192444213315853308918872845032318481413058058818326664281826094438291116753402738806640923865560788099483241387243174785487225500892216763391835634203571599110367750293498392005336013862487981027107514619594517073202468968588195208677207278263922558677419534224018457954196431430088764770592419868114310778734021733894495461363266042620690576383766160202231874815071022188343262711239494944649172107903683564529459091677366885669964828709100379820465847010012778156142348869700303185564849074873533221676853697724151372109968753847789267425149584294233845242389208758918208788056618877620571838023925619834121100783386933060105871369801352066175341458175380826921306652634427151836797073020836572707872683928274946768668010582027800995759536714709413859038798051476585586213856732672682976493618737456060716174365473068339763355147930298400255302533003500535504822262099160747829544143651337625200250354951596980782091942430709717019323711682564439934022431681696558255792321480396215043118653534693199006548920605958099014961085146536048775898638851365054035267540743094410482871127904130818526424026711691268747543254290715697603880688798622725556503837221283111700443572318715691900386721968630967059243874215389036123973493067038990032353461706725534597249232760059834757957083509323521419273498006856222909583749031586316763800135312893057975904179937573872894755943240007463774669212845278825214483027551585130179753939509778834508464015948576320212073139075565706034456838906049319439567037575979706148318781368243930689855021127567365277368219675186946540737485748011274236375671203899885839634794109265552947455389065747105742906443594227431929115113921474282420039807011411936029411393256237166288402565619448352073779047161489288224750471927167849556590424698068294363108334822612493063329148181348900397432908575895937102795130905365443124407058633956613513582005404917648316143141195370192252987916539806189206226676347173049099092457980914609862831918523412578701739672502090338253209415389695521959923463567034702083095226384546419356713805860648231398562106433650136261853599733517744683592070287148560959939576578748340890605421715321242946821813222543042171050561576862475217288287439570028799587897402618117004400770031524546318676831408212118315138195363763372736712567813103195648294517008422845891860729835509337068024789862334927944425053829786034146308992568563450054629628889696491311870712767039629247948750070344781771735944348457115467821011582056835216110552298791865234432679744202461314151911856976136115185476671953161911713080112774443451153496893794207911684364227298634857230143053501659504695952554867714084318430423594734012993708735266228014177214162886492166498880644740525427909955542874021908846866803924669252640152902580942928979005723359912315644636568565802795748812219758746768772296014824790353447034921500259500609604490992552675947111330989712226650816643680994011359945178187246167297493521428558657068112004438635202101969667655993141439465468355881250541906793877100536066449394517645304802247237039283005121663101365358839399053551745837454773747036953389792868747762293643898819433134972429404798320052081871742663793482876888994076130333253218391144897600233756916659275694931647635966355417475164021645757248812148411273269672444207420066095715203814277710942562333191197093581881863209767998171897323926221628632061244705740913597934762056195313571562894516779320396470563893299373364818015228237463164065439030221241595911225578740183014967848156587955438119499609840533983121415273996742193309678191795830944149134029280868571598666746356018836971288599756883432211714215063085152793788934942491853186885837257675837039261144506391387541156962311969549377003320598466191932882364646327526267991050453030935944329440264489800696874303645420529890904583372556186632905005265195309703959030283443849660224753815498405821511129689291302281203490878429599203176023710588198338405449393689792270351960497211555230540823452945765896571717742789361650593941025730731337784636292152027704935704757516336458768319294976800821459065013663079581094605604038830468135298092717539728499007672637102255139773978682010366452392873910880351074620946807649135881967441718049911054361999787668326626667424136106120764045762559879918765878047719996536134556454777421411573495992275468294747712556429817057995157686403280794593731448878905371225988091068905138264056165675175585723822825655763581559612092464755155880070636080742140399977919840711187178071549261180932761911972005342293594119244007795041864614181666669796116709090708679900762733160538792038090922972932351089330093931479938330420331485036711705178297954615026593384416742882116734917038644458888089380943390292193613533302631789182541136324088638850480051392113348597257359818935472332795590334126699304639168045803859701996705161998850521793831671173636862730032751088122022850792342435950968663021399503268626283851423916121142163167197054046346004385006478770174580336404608333416839935756176401484993640556783221458880971983375875983820558790884419443686555171251246374138272240708169379583158999607836723606608706618855689137196156835267532114986472413574133345749443714296359816371917682397700798323392547866309300059683604558946410775056340775368824254101036017842947101080280818907793470711441500436955353881316568981908774687713647582700697500608808749982077302224173884249497763219802281885957174436783806233272883150434889256365771140567114826759928725879401588678697207247397233170801278048336911951809639391709395734205678186784548052041698594296172096169630574513327072755210164059051010123696573491573400971967616530258174187221860713696050238126506041893462654504260429040164232144572793439426263773102181126229135538691562914124303194590136854588207638629701919551661130378664420606654641131121388689507424899571015791076794297312806027368483118827811929305026451473506997922977409556407014343929587685076402803035627129683073810751966081702102509183624737622542562175706357360821564554766424893172216683078298976994521487319724350764855436746007860383562842725654146654577573853620636919897471967379428793343582129121448395557710951029681231064676412121442364918991981450639624447511600668096310915654822807174098974192259437564111892177011987271770962082881497649040110701839194634286284692345121631980769890057063060894947831945631007858928522803318260167615206867360752016989017861671537072820866702280330271609340210955517170246549851868492884132471001777875114361973197768268086042273370380031098719797303048779912740377663120908877660973239321898787153730705464246881013203639044474920121860701063590295510334403270159849596231899531947856577331833290416995321811415179787358763929130263097868504509014304029027305651093097294116318351859288812073557318546216421558218824964406353736011815432720690636520687197622809829559438836408213747593726265996804971182940632207218401054512227873936519855326872762355326861589978810609399341917973654069582305183335485779389229576002411986375409968180281281385428244127270369380857581786092799716968137634490315325938889966487515386900200701438512084963887641974960191484213824965035166559396549847911414819645718423738382610459310748541195627560433301200319371259374625568670330870509772873677493464944708368916345799262651672866630286962557755022728091666106855111364821878050753053306848032652186035578176035530275785772571380105529985799858421013315892198538678332577332999091120292406749570316947756780999992222339249158922399620416175413162468576032008692135546180082596642763331462313868626041721614411621418054546960926687115323333194630204074913212269129577426343312296830641082624433191373285980100207658705174850551621842287329060284245619619862380172919616260162026085496813346607787703758567506879076981517291322600188428147960304102987999740787687227577939886546385828799483725168159945240250891525890256531008257816279583259806003090215490547537983682222615925196728541175497057962912043265398993979132685421038154665550339036194357932145188371650824555226314274207375120485074662826532578859711974496655234399384662654053511296923479621474959326355251600645907151014048742882811588141770552247771299801203350498431381828499051364135404742621841422376041272698442106250070699956162571462959087134912071628385122705617415558668375489239532108024117667427573263043847804231472923881474098160124904229837852090810940629144782771079932941052279785991232202832951049020946536616804884450008064099364985091638811698285434537307247127332358609280773515363903983490578145606479922354418664539752681533129679542291953965716052578505224093154617252103358037934603779932689126995847688460426201516028047810450582694241037317142284768460727770035715026875482526838337868973924743256805298414367815064894244142029061806151398851082717397254207137153995884845309887198645788521083978738342134245350594794770057369844043960874964688982010965081139592672580451426301477236927890708452343444046433839330684770454523450385705686233205110732552346799542697816515791529611840897472618348395284360487299079285199009480982333456616856975981518248634040973958192417594371137273827631671242916277784335965603069821477907231475225165099689303042518935404492103396821946121056760018314147509317331711946618340572287498156012164999510837055620465739839863093495790040354363053925523035376745288565639713537633941645901008605401127203501098355252050959894388682718462544847212458235578172672563400374842804487622194301726636083412036607829273959562636515668707476294243578769523426308821854590819221116587791060725501731497477690326699513700408558310346509335078999647988129869465768267544278859210090216337957572597167546929683461227005582628920249808395177341866548458230261471042799413753946272623997626391506273004574791859184982174481499799072215358805793254949955580600189116252754651057186887653276962206499488581951794863513168559374882604317470143446363366181022916702496155334021275905290127012963912766683253838345246573995708509411382528029797013942732139292082774620835799559140343781467003780861448618797095153817489172364517075079021680466342726930973079683797365825458898671539469860786408035959063608501381204000306917975358769056418997698625793761622143728844212136805022367820105779274825886845657401720093553610667571395016375883115052962387871315006472703319862357351969271913548811944349207551612181771032532196881899033492249674811265772012696980909484583552249839602041435297956679573575346403252614163247425051770315751316700375588620404533668019238610121206742913121951482161736788532060773267690047302460081106611971968822507923248323379616372295087449937343553775619867725412965793490476396420342337076597643887489493793336510450267162634095653270240569560598883056885757156561739571985716268901997471922133576586313150323002555647078149298951818747560946661689042704253861017240436824482025300284247231944670756124697795650979025690525303100429854903311191324731307058162864426765656045326307104307333744623820140241593496364680288452036507487261335399901957740239566978457615194380966885768859731231172004910996271373094691358909144784753029748746454214888283952925542728637428386705171402605962095784613435362896619050631030536055395405281541659097098760218739409692744964243394953793822200919420842369444344831148642608128112476779805996380917516776129378814211970252720169691866990243176246667159551211877870971642398319319010124001383687087462976183351046406588540016166948144537189614775617199178870066874732411052780481110400275338510564209327229699450667492660537175453114963298041890388247557523572297952729709762423508220878631236521402336784379112957497795260077256635516890499928292795454489524713298758536011618689679700356060774363865842906342157114664345940003338886128008857631584572005289004924485114533297326164088147209807684196297058615692473964575408112101006098024455718741601085433791890069082537202034464117137937867476907693076738750565135835527010928917544084394090042680256057091931829169242832284416448994828091314373122597000417213100496594986905112538115028472582713512037268933017142841151350166343490326887309284987494790179034056476833714056255418811347032208298821821517786766749918047974729310643953184709897749171699624429334041855266107371250654540728460169802526595693668895737801144606520535491257798309152363489375881405934832146706076256488613227578181917622336214091384635901686815043199044106254887127838081120778816806331955212677413107782375869305231748197608757483225610168736885413787167651054997319838497414675127533960345782063046199904156542555443762221942172468014205955039773809207435973027925269591979112566307353699342580277348847544333852169634674960993243668329843939930463977188802905222656481003186447888983821944655726707311258880918643924693689706479221441924136611742763213717887540074121536931870862630020016272206621089683255970804270403250660808805512191587659559311303771320545523487519867328217824946545015755469214515190424325584047765521719089754323026287108171312060910169898521826980600180087453303587394774688396890028083195113791183951064984851382146625322235272547981482390331190632411552031648365594705153948943133095347898079721334375395714115737657825175655119106207526227918411091705037328504629408385055680147199168028608491411542039105633288828939241833647459369570225243952325328165983748281271817887732964880618398528472943534741080164505037342617233227500884508963294819505147386715954647564857426950019899842053005462215381542082222002097593649270436286011445525873722105210584144453354011768936387600421889545723168550084730652102180256253845434227420782354210576829570725383423336144920249516101438290840301698385917508514095256995261002611423927438899200880909729716119625194241535009811464814962945400374904376421901044184749512069221036485535363230281630808095636990448181551576387353843705175796907458811335962964154282794567557224208572863681403550061767402040236629022362755297181859561709265564437253590708487289260828267851861227254500784688851460592984529456381778096606005163368028365947882940400579592405755872030452916312518167454644307850301058339397793734032319083952403171808058049826954459757562015557897479809913002273170644179349614746424698366221754908952740029716374370911595510511168048063109119609906930834398366103221906503938006917823246208267146112055172422187293596934582766612253090745165576669789643114832908256068135354938248760823553246322764802163043861872218304615408196859697665716946869499811931305500472930652457785047650454092699510429824231485874199057276092585228634559060597046520656272542530800889508688802860449849827391232327536445513181991875402671821511488003391958392937788108677659260712019897290835658936514661615754569181997257652103000777046916315967813161862192272009357534492369179050400964078469468753392681733534167897684243963560902811653324800139152341041461927393468384872860231643848733284505059680578288092446277823204131782672935100819371649152861075993232397385535412342506941838151887614849398492517147634362744789156090083068891165993752594339255452471065793517814721261271774442823482265870442851415521712908409210656256818378572300446005949332348113881869045953105929143632792373771256586533550776378425751259849351888549635365255044892834353182364310477936497435566988724928270566689287367766574380508166573988516271871130352951832078764248645631410213108164478575996898945807077595223394592733834516774182606991528615707618845957623272758402851681508919631990043827740936879000920012941387913330081842282786528477443025169544141370062150163438135537047844529710905414789267458260995223820534243014159836416965537495957994404216509472563054622043631865858339218092263577594067511915332745140434470081024042839285461328145659387352627311053865758549340182900525446881633348100753004150427491926203296623441666255709606805714880077656689358978955448703994125873286343226832972478718149619125863054539834349970005696522948378672427278038926716293894823969388389714374662950680772704074016333242922658720190068642218019619765327952755343622201147383929786934957433681672979264946080996126320407686225048194695018565876440681949149305160921764517591351016736691353724452054600854191928075086406997344270420624464633311179838195921951448207781146971790885195052896880749265345060954520307893225593941735102022932196835073475237389478597307439228420411994003518134728843919718496695996866084756521158798223128903704712808216409578357970303318932013941940408128144186077793641742264067181399768773349151146637705212272355383549151659455732144475645570614928684637694963009444142135591141477655367241273442116450413662661699911858456946264887912286801348892216652680421664578239517641707601865230739863214087736879658106149861783790665762649724183795521849029129078684453957410899402024535071503693077750703528059766228435211290584236218257972142277435128204196409470527353840255142241666990872780560401891453074548770916152387964041449213583323158465166072220999167565693492333554857711934857988669819656460007260224367987394137861958841744386799723533085456805074950942848524981669503421550165922154637966360253599335050208482635166688963514410054779446533552961767498130204902897263894282095839620164816867951366849914002230062421361009073094099910132691466734960865550041497590856174742033318020976027760662168805810928811088359057392733677296744794682746883180901278681620870709210869078899836193590158915948678582134175469838347175884076669984727816654993864425790606133184105804298127683806861721180295671535423482157428436017393849526517755133328671900536688822742241069411271449875223976429047749127710638343613953542608427841344270332132957318617944127897306363184320923422893896654948159287275506861574012739759268556647150933884589676091901544463261817381860607092257410354430233845957822268046273459494378936484819276124840247027159071058324187188964138899583122293426689692289139910305303696503623981202646415284525452896772582917105225947926316781859865557149853081546946939625296376220957907320000269649892843976186983473970079720056033139622596994780630128171316805395979016101847307490530367814939440761778498967497045929669514243340002611769478871348225135899727151868634626522457117782469496755714532690855049634388156728801715063518948847026853378999355490769864021045479839246390798898626841175167261206784949155595290248522962409511009381760532437321820283123509771632924013332160574169045360491239629449975769956982253700166608672317248477545817343518593406543959651365833625362505895932135470246420178749571198375714079373418570277909375166926857305744266508396555165623317717516827152575440410048426531565262915651944774198028457931295932327083730296503845742806581610093703641868968523395683556580617149539327558522873460291626188070968529848212392553829796680546771184131418608193082169364181809313173646094587810808245266169238542925056586638960549505800979296977977144839993033653889675195855099264307261523250028677285605006120111528608735739621576346768452714149209339812337928856585236332407053390598564506425367983870438400368053779736014316603597512168945689975517565373607898292879447906380539052814466781704387743235497389186683558254500697261144660324340639722754643713846079025175210790615656303250676459679374064428427228127059513109119257731608119581043807830740552721507844345387666057368782889527231949506152176355099342618793032321609209314614171547469583341462272485559114205035151971022043323612859355702285561991283912998527600746913383636995609116538133365283382828549825564025909480318610282530336166339204710098415546039420491678062025208347445832604054371236290786724248616896845441576559624431431065102478867961584977768414223887786362356430433612565102396978510639753655948662057047793304713477357874567375923334840873276641957131359598093739900585173581253118408484445370916964889802433210640556246576716238290954795791212103598311935532313629938271328037193276914535019522811898483705783362444913255369824477385618611232916920389882485629365334527671583131008759920860020520420960550406534612796205223455078541535921808835591726556663713090071540466615531517986642305469575247118889336430999970996195937262829813490049058925867601851580480233871418455654691178166011206059186952055735175193927140540364595649465292890002288444560900850344810146677462994128135972385187368081585510927468747816817342642450624901850518402574616286327684250788939773348054189676724849060246177235741295270122372145942578572274455314206503839598973946833290339300720420933914273080210152834713422508755314287536476495945451285168952739782912793643745247317248917020469671382258223925906601746072323750616385504154648346904344434178799971531353764368467769642060336073884285871469454859812801913936883022136047848912846178540147084555652776283099283718334506285464904849976817547258663128235473626497253286860267034108352119274187900593757629518884732069016033217927142385699354959722231800918903660425239622317269783456611342150301353319542074720832371862000284626854465070017941448478376782183935302269344345875755218067070507613849010449756782115814981788726483449049153030793627327607353063232404095617197344754122112702985267099848721066578237650313874789227705429433026086895640303799920946848301323188293484634840202235288546087007832051964777968263124551887014422849253421677160237478949965859955867511421436551852716344076187372434389456202932867244062391968012776820252037329869392570645537696074841213802218716109077601707359310505020511334326866215800531800871753612132016014306982397145033882226665602806101194370700390463849585675141674914211687292423905524680168796137347384344882927688406800890946270541682789749510386150452470582701265705677352026342322671840598884831166639525745737616149903300051061666660041759223828945154613428515072386435908380804999957196580787371834648260717513965135053381042448635403085037500719274050832801779875676966669762898401905334085536257818428631368137223982792027240800414903534724695641763363372700415635156389245861442876929738590620498168076162943629412951400292284774921002475986537905145175690815294693053717578248139887690454828561162625816455179579302245547599783672372036987784097292998832761578260839945724773413337144141931492700567258460932570763806456711306168730702773726957171913121021956099242011953428989888940818490579067713891856742430508456280264213623817732065645397394539425112892022822431330256968571328989485273372425076273270988827870489121608795970621113490923582439940752244666661912122449745991276424340019641392717957871621880681707867442402977494852400162237044176570799369191646712970874068989695155169458813364805279588919055725577134700523909660448460962368409538090386182896505630674919077115468130686953866183296723938909438012208859614166434393813978924916907197758339977244020108674776117010053837197424842935514843781838627214449937213579668884506186837169861931590209770142872848173211420761688715269243474879622911587523609848678974560753718636139137165282985399190893094987779760564168863459859615038417113010141791868908834777641092374948775811103861251222502303216825123713519713855565858680669209844446452745242786927098458424823520632410302225513362750464205402242054734564730832096630444212418670329668295603673806814314969909050110378524527088983437809478964703477540238597146292427942124089444748752912313523785992555915214932758203824158103453103410744035769828381504789307009566446256517795816423977548153507067711558149750099385626518138637784431234043129809164909133695775612244139439593429202064840879570343386206261750429657690749716195421120049752506230197227763015544140913703765690155465180633665720988372079755964667495755989338854440434424396238172677546745727110275997234756306129782625740633089679449123151503391108445873722274242000014588078646505937190974426059839131191565592872146083307421898767312739248599303438239324140891128574382912651177664037054221224954554928306503870850266647998969681796372431743158664233447707320899349669814828606837372074838277350882650978270808618729976651654470324161357942734144414180130512341908103518540875112843978271111302236674421574295823103930969602799215870810416905090412738713960554976070620206356322226199007988257525686313789913224894692858084488636101873179199008951125552891933566685623484510364668160194602310282609016615546356005856569516394936134469695029322372870890360121048122318286681819065541160719579523909383742666035529904641295167863973742040847066934054015616612951731059909508813482527249402604104194422217762181799102944129255573621799181985772284404387706141091040129726902110869874248026359306024790221254096990004220606585409167532317144132768196443191607841804884484310174957583955354947833844481660653467639074405240171308020596434294340835618038878703922330862412120325215428476337594723577259384587009880031534105166489802152298911246630637683245262626381357090079475889544813806333010056951646098403984708379109182368466724721337982882639640864948519995219399693133728200665912318231702469571917080775071005527783605925627146057277355613748100883146495794259452392447152216927691155837445083137019309138599971973879445587235086131343393074135638987147701642101089633479498982403921325763386565796899890530267512439240162095462991711237783587906612290869893489598737252628202502198122438730781737261162082177050490975284652262892697894919331351080954703885110721230188358614332947510878199377116113585698950355807285639887197990878312981126164441476481417662342859849447065014863948271840075694764071944435844599002116036375143225435319117040870718829594578040981236215563940675565656284109842967514337562219381789644770079436325028051848777344482896053112365231798493566581747634373666780865984360341883191685479487219457468366616152749477402548873280326311244125494672592955944351837296794417167546742885347136073845992093772778020623741890651967742847564433299717767085162849658027860391176481533516264378074502925276493238308653167290287024156592601450660127308214178905150564027078961196354587984363846852441635625320176618124793551977799267144389032048400937454430237492661960091160345719928421761418717261695320780553580848482053486827350708530726797998377157176718979758613119679202956816909072086720779752709273993356624353034914072541141617829788659747983533288926555196012929457416706067979811640944397374696525136908427713863915673502138711153072420420443675582510343683596514201003856356471732193672999791956469107381783334777389474403717176394877320750221389564470426165855303704380249313456653756024436325530706319283955859430147226868778572466081947287758011732412925912651952002903817729170059678864819585847624670078046935996384047545262132968351891868712870919304181717452162745085452132574723082660186368179594880775065670388352850585873149124375339199885057997321054668545648986841001395005341766288797055800767672762314454401677168300457190540987241911520189384420610133710506485466778478114874814326389563983378040930851522311356067177724673156589146145732950220696070303412128156640638475356716561447479128988350069648250107018628972645183836330098481940066510227365711080409891462253881670453854233071780759030603693099578854115703177811853381215370889023225087347721659288612365827597360505512911888173241737008940377635360453188457208985204394966980646065542148698228083992165074982334038996135831029047769063191158510086833540792574350817485080027999027308123121503380118703329604175572493630610754868925178346251073105562776423689322078637581072505421516392950561048891320355747149746912366829720496147545345207481660836473098906730631382104712673924544892878639929696444256838175673850951340609969107527690569015841361771884059851113317548999851851648372645061435517946746086069840930115055776324280738488768652735085425293748899224507521347370528685908329249680261708836406415899520856514263644426779737893871714246873575724709455275367534283041638364270651885960413186189708300156351254057190313765896535693333671672997360795846427399177667581759157129535261434085396003431629813621847656835691255441869129881655756508836423766336618386901431333084120964028328435613136793586993909095382539218071489008819971005389351735225902843455716589748455959310545429810898594564133599937985212267316497184060843887064855563801653655752797289779908749424839851824167584402083939326013684120998063947630114249975028934139979957148418582074492428665626001989702324257214831484396295945690442151252137045281723162714396246726969024576422497317538911711696548329458025197595915967132466221475661160380119379762532202366030850153919471364115430124842725369274173593887550882528614255831644662341039729019795284898136824560298586223761791263991912591408179199009063398097319595457178876699181862066425159014104978503606918571201119146816115476043376745945017430810746039944215734762659795293971799657174775045803067074599053652465155145834548425007424237978509935998737175015776593370930936588219394907461957185346358451379150055367615227490887707019442523581519832676079067071971629671115253965952909194173536014276731040001112649264352859522784493676584962051222799481325967216723280602804704715296533882103834300021639837863935746082848057106814090435294518978042297995581095330636308419087269854126573023684030152920556542028289568892973396355156751055206970430542514631029463909503604849559049727690550095055804973406570920880767099537532445624883141559194516212745854967750399352032628886572543100892023044586020658846510141427895039901078749893888992379774739780006256516446709821505793904960242349301448626367725081532747349990095230289914166144207242366277618785988554198478355578349422126071830694657215930179816424581154616482721636166246646593635794983552517005644358765236030093257317017561124775821740560953073992179731350682331552985127259184737971375948823727342781834344404872895228224518779098466793996975548109033635596704631739466835378422727556642360794129521733246700367010229196529831704155677959459556124214497242043742657397151307221139303993837758317028254308536540423488316232893226760801570648334203078623801053208205862343989639577402435334267934573158044336941594345466944176704225499600819476725337586584191604103143973940745526361175547402920747138861313014442111535501448099028357134632131777063012327473054214630088488803088711006717975296094144129439467159705244734596378751104874144134318939361855460669684879168198291246490092013936286781865927584479081963096210659025293417293698696569797792108660003937724614451449305104251751227987642356903575117521268241563496092410817033506827577519079116888486448266941878585527728921987640796056721475291047801612489666631207221188888001367130733356671793801602895977743523414274151298489960240562560807470417859236905244833623589811129392615741252803384828941833776948405453776917998372489439610109398487196062171714163856070001331206125131265223530672178579008561562813206649696482264560382422421380628542727870542557761612838795296417982290316815363704345303668932463818933649127226687365589284635407458755163870690137996905897922075794154497599762672444814870114946575818924053819981950540052640738383602537476151430808140833066918391339667573120611123198944865463896358204928045553358101323488696732970889284931125795928229735420363336672560600366356657040319744911186974739369409854875675141398902699592809778139315612150099173544516664169261065849425761615545491953230829093136880993056922207773232838524446988737648178922986754535562095527717975849621586827201555513396797586534385872979552412190475751262107424013473352694338150837338652565252572947888040472343554945221449719728541735925510039186749669571893753329674489585482850799962255267393453659372142493229534785613204266012547288397792333253130833290262695360542837460084414121803910278173978352065494665107209059946860971617181584553755357936464966637090272785853163630765972566451043577123828644266583288050266091038485699044690415313271961517898662144672269842520895302796512097968591999948955874454493710103308638616233321773744350989380902097366426673253812699994745895391707355153232928292912518102335787676806571913116769430983668902928473503368687541512053903909338204335643914357748881592984351798767780358351257131177994318754401537935645008394035390426793124800729172676791577212545756401031679623622558084869059207474146949951372700840812710435200858114145476569915921721670639439789638284980741070354235281921853865481499290579481779127478933058290896753245058596570791502164809091830597204900911772306344043817535184195805462075913918464314529217481398492778355714145772390658024314506203527600029058475322505086838352577889110785566369081651945126070730928709587114604762041857154236334707203505678400155010642765460674268829738849454646261569518808315288818794644229966383454190016022401138846193787885190776660759153035373464043375758733331480051771773374495781797373873128127796005894661505825822743613768467001186572793317212175979586620411441012412301071158945357756073789083864414848177048921941138775973958003916013638639057721876459334859225525601228672472037090079199680861888671724970536032432917450061111541292232910490315303875066926102486856465253643925288651756142714358637704468225962003860178213680380046645433842703516603823275322149398043456918349930407597119176098064529981487810837659341122575884770280618787752491165153327686374887350668713798288153175328937607612159362237022216289093913900503254967606686486598817619548806504737702585866526882643956196061233941901283689153605220909838069026092432462350105595706157677803268116825129363250014304539544497205251690696273064851696350722884420359438183470124218835088245898630774827959228142189474653588573981304536307374628031472186150053615850782083155640890746219098167883899874619178322144734362886934139028065262111218542875139833179094688875605167961600797962132591394206465959437902505634263285907680337016180050744884470367695193101772211475557476169716566692976564807042370554857463724959426730668277543219912733238250839997804536298765705543772234100318170158844091219873423433415878628926084232116184679391742155389500301449708683188140070697450367310975463040250174200064970248361288269460916050218729854795011015664439770771841474731592613404627886546499506678397780179846186735053407821414994172578909858913320270657521491114450372557509470218983546070317108886608397161720455585418351274456691868468145639317051480969907937853229631519167513703548857081553723217180149742704807735544152492838662734711050760039090670067300266233040319683762279598460498980016003155325386493540421750960857941187483751326409559867328662598322507770369918471715574797306335554291311831800384669216453946306581645905595805256519739139861789553703987735125230662062152884677865483237250877906778701805085110594908862540433257505907321648388240520674915475990180618841820891238822726820814210574877066608026985703903961905162137332528536425726976275287076418648870679003488907289045128748604311047654607871501929986168379117796845901304986581387701405907704374663266062105328662827833836853711604350926105857153135611521992029051001647794509109094521440275986248990539980841638210746858766787622511817252934080796639209051221918808947095269247478464120069002314379157425401681674705142876652262861971972866957838403844928497516731672847605529826622584475984617158929704517171402521298998314070231812100942940613101324349879427693219392984282241512408904627746217615505703315579550032278504604504738926584655920012621729974265437205088538830694316135803749056559106979732362043018015179033154467258264917583485695880019187878178291837380522686811925137114611596179997972023564491172252217393231058027664912635609017035800677559132545009112424821684274607936066099057004861527300089141624850359062504984479949392038860857438405417026281385715789712959318922398785661604616969276169957862949383494188932005026217750407720894860587289659607133983818801777981168936469060092357570775615489877893217957204760207251162266087144496043161565791887782023161227468484216450114902544159360721556817384348994908710089192064890841396169138542653888533820740908282038116191271795338376973493754799298454542526931718704106887084044267150511177347766672446074467592730623014074855819511753434755713711790587806477330625476526566168130648861538335647127670120146398167933539365267899445633003321983334658240876592864248930447152066942526784470848327106452744937072175169682964042133723593803991266954572828825380568106097376700879459706076604702240195461585063843493214911000135061340758765528475744120181098938002738497516762127358678349417323763008135137286774383404897337176951931944409422427031142410774479051847976256234810914957723341471038023154283116235702498091557743643427403245208268455340525345178180713437408638099096931034703700013137180842245263410250287613663478926960690165560960488274112306259208914155964361775995156108327045546745250562179033515364782770147579046907022346692251710043126823224592739998109980496930396513610618263180407694149388454110505235196182463962834169906716118596568687418044801729662451311455603626827591827702968484851449651157302175795394420066414122853353412909555890475100546249202689235781547228444267103846678306920108478465931401197560649781470904330642362973294311420907787323469621935251627039909026476040835435836092837231205265950676606969766703872352649756157138106553751568417603874757147733945982325934502969195743310647652866523635075029822329265957179232624542292893474901246876642043739804052943052059989603210439764165208122912066671217665915290734010935940472786464285021631951219342535272117925346922282166155070983946475769710075880493328471697689023717010855937762976915017048560717334600617752065764655714069672235183455896424215509634214305601189886224876589936427821455775213580211562163852459843805384833002649016436757066281414561101473087550663189592044356077108336949543428289576106396550594728099349834689785335969926738267882922465924138300871194475964755412232656896201380106357101146010981086152757368896962125640533481447214247833484111037014830869821379876902039782668844625923508231879312535804214401821720950147368530896820229608320089539972756628116700720974947822320124001644728976563295705060972820988983092727935565868029367919263606006925655284187193078920418228259307448801897060351377517176732263441751152560884772168792871756760136584857664442843213110133076540102749022772297207507659036069596124812700444310430850041806737190830540301341439802241262334392730865670789267834155083468252014664918879849991717580424601324927197642962932117196353032536972283183734524401612762101014919587833951184977749224230198458321647739115098754584718637221750374502564724381059309721696941324958669927087934957395997075941345469157607096470817877765845484832152353218083217918422169536341119403976747219889348610203411939023962411286353361889191847629835160739294059344100526614179558224788403800702472799866803430687083777903518343176600814930403250009352704067532616680641149268137623808155363341909892056188210552842689731393275868722961449288753559626173786740569553131645925037347912199221758565695467253120764491769520720870889002671018433498611020071713729934427280930566171796340255590538431146004021372636875633625331546627175455432634973702973379086894012691388761577480925209279685268007026141874560723498324675952155994789248101929135139733973002892531256421425446079279343966208922683777556197862788674208866794187756825963773618376788183942026402110913449982315296354420178715974251963023932779175075103044552461049346705949282771485877528345490882468017967357602331791007045741057407838277673681899516888999814874170842964312423850067187785185780461422163288097165442378157736529399442006525666065356752519550159361247552826993410080192615244161066177893611848626184471030619336254740967642785604180655044583551066193477309438256184656659051568024494563509842674201980648746003306832218754595468076722348905479411154386202253014463694982839739895238927964182648507876729946297764982185554778219980608944826647528056435402088156365626341169109117348554775391864905201397133659739254361279696722958845567292745868546529517551716576244836525023060330573391492495416494671663719605689083654444206288519004113312203231324671716068796969989103436037765854124041098933900860659955368625668068888895205152198702427263218423692852261259237604023699320725716277102527666974765550118152529509624099775596226795877291510524603145832922839999932129684465136254364510889211555600318570772862191985619571854666129947014194972640024479685992867090013323399973776784468065681250585209146385819570762821833470612455213304642516590766674627252257967572108850610945426464144755777096757840435064324561869525250156218669055537904858004992670868182032925054682691363277157623985139910882170493679838774787573704736139485627203934949805234737768303397285795499792734491506119038834901375744966753936985275087862616029948395660807705043033896571799184268930677043456080863940134556843644748915564972349892525811982581574276277144671840269914465939924035408949748742222784069314518521285624255551562270791527963036311447665530591989593637705373771354392002055827736395159484401586606622853405278702727866476288765645292042884206091745945783365628910083390441055394833517159419771339959501011703083903288726951199682675941351011466029780360354905855730682134392344835313798263497143498623628131547180855063414023591532947164141715984646818372456468039074898696733346272024177204690330100843672774705936935774865587889717027245504420947987380668005410833747881477182675270569958538982991612413542653511392807357737774576389512760594910501883316454810796545170663198755705387056906777446644215804984162380843899273214885936248341081480463272226525730441460163635323061655257607454726535585045646544316469282153937836911161599021228232606156229630459835719529218531754703228826256250934257020900083335740276346220120880666203338523206625295389426710981264227487886854796882353489126679017578014892700376332745560398584408712669973531685286499696630185092952020393635685630234594543997885564128171912453323254781133680548259831753225543701872811753760125245079388816770015014756204220045217133931783388273050741381025466313297410377724971140103917737958857954739694324622949734037270515287730939359016281553407080913748146765563246111629721510188392233572509642209590427620070882803840445035120067103326244155393333537281473312207707614855742856063432581430109433233234381973986602490728201171455293349430847625842312685682889504426711239214251535045874208847911367438454066057846243107252094556316724341048713795219064629562522627967017783495108529991285108622435565874485981720323249327651616209432376672770335725551616106558097465038137400543569281321134290642362624640338476690395191844989021719486852015687304899502176219568729751629883202825916680818553282522255043695730130890532382999223020376332523895913639378634210450322744766714950834463129161001405554727241664873020744309792421494680182157170215884092381209035879641683834353684655205656426062239236820130683412413321662802954234748921628451697946856922187854591174773674224546427027347805063424648542132767800405259206545911935473952116557440367787508499612414741128923461791958096648910807472908166094602244370281387807612613162856965142865038609695486161578038268438356656952793943056574832824628507467170985950464214220042271712853069904211670073852184028491527808428545571715728637129166186381146567454007347266344307454683585342874181547760095015180082302449150668808266929206356273232384677552650580606288227994321537003421806859431066570712911468376290625195368747389158863102891144880151828146892129970326524425077956139942629575131958225675671858816351194734995897081227179784143101330178559691772217762875581149703932075990405946050338059278139386636107464611780706401235065509023788925244540292485315595377799439937751458380916775806044224468537937127962015798751009039616991721659275085257014957195572609823865202296420360131723785116913215181343486892478300713719725846304640453173354509031251349533057857974278499554582612612031136178919899931215838921707988172311701359777728600315834251158107962688252568268294817272103583721950632361002584479051873218610407625730940731809570809010232626083736320031451506834671649299010530591819843018113598039553630811278669036685268562521575457911151732350637720927375806041905992181129692690110009961210895833660807798692154003419987015263514713102214437167565436952667503820269528919051530877197933187686989262731000847331995166707338309983424267657443527742390985627471992578167153901907148829609083981053040178827804936847652319583867429181913884282352984932175212887541069052818183153262413979894149586677177916554732032287348411521400370046246315048366620743671698360308700358445794115269385860951813818372772271912693079769728588421839852125643272245842718636404887572286246800570720863610412693229844151004310184122869305444669177581383555736523008377251595343496649916208612653017001638451998759291470071668706627205290061400254120515024527279734101892775046512988692964456304522732287862935394485253185994043387398004881421098778960880618949148936754675516417908019269977278056479775757078371777197066032302759491806610755668189288853535032256281819494258363963322347060477074119498585225621187735356039476155510945797426612157967577255334956108194397129779493368243816849305819659420770624704084576067230172956136737130832919471260514676170360523451758113753828399881481730381864633307591017655443647950445618502342029334537783742952596855913727936852113058212485232485148346089343923978944949590669756231969291328713713082225636262499096456992033934055033239742761529149999219326355700377084232171080441749240063648907684277181660850063699756457137512217875135705981044329968485550421608068632356066520828719535615684086773362471623500149443824878192374179595880323682875134129041780960649629129298308192681406298948604335575918827336645570263348860301961102643936976919030328772304095790541470839315941007823916559836316173212264743043147379825581631138886996599598649261046362181488778703883409698572217014226856324134661858724618425873962543969345416397803040547565583864751854584928415182716755367025849898238128971497761444704513220654491842305985299456902027671898778970476366400015914141699357840605847291290749099522132996687213837864739422936645833193619088731261500546647284239277343368049281930173260049375005661080350500058577796226200973235167515723173334131869638900165267216057674756999808650336017279647065314313772761290610210079030473047851637742590846583986540144663168036931038631766503869747020087980475872688572519010814189836317064447950272864296893376588530880819095649152899145223750652513289699165710403918446024072678442960681078781181867569340959506068955250559046360557579108299369809136913786139590108190169907232650820714851938648093454249248020057209848503818056123553010962795329057023440347451043092711037413451384874416615437803582064898779597763533806262502148170695308775733213750975558464851747209057301071440633303151967170640775175147275137840741455476498106476318730195757426798264053732175965465752665692387289125657238950467728930108571059728678924985173530981397500523562429332707046285863925560797907977183203522478126704218316837996227905132901265604183568203086417683522371648203049930664642473722274762451467556087228035651592590606950794386615912733786738508707530448826484733919804068744715052819793453799315293934948657357195998281447518105531155007727821268259659801597872732677757144586417968398208658361967263459730259937519700439590074725469528139042442103181357117811509316423790993540206456828940469985463951670151509237321203392984613974915325921782137045415662964863877119020658329202743260824157526754560475885260167533308966764332418209413195170854462652718949085450034501395718850973594976727691988869239030971884459080699428145923404751881320388446921158757481134560195149784364359459813911622401336393122683436282296707783442968544468203780935985595841191009104833425151088555385809580126860918124741845935621948537082484321738250537904469669930381800872026129348850777357868176300536320608403600472627564842181525718583772925339225844124852425197367396884666949677088775374701161467571514878834968212877822041020623013423440358493926643544879110172963459813450698443250023777916588612942492966829328146740554980722447375715103965336266523410589470288986813627168897286069774581251991105488118039478915906912050611262297514397678618389201283796492782915735173775368694402244871855390992542064945096796104848843124249330285052960909954466480029482479676382160654826553462080855692558063870482192979661073433958328662084087886276543356685688736088337455049002480705216398149477947141610010724359700993003571036413226994802571625138942218717131245449666488295798341099019436154086489294164894684682804094109869545728468452457132352715462405376769417350431264933104432949028941942616115896687077075979232211308142470173339005669025382066264636363592917814779858539376855783756760732590732512517248949134861967940757952221444708826238408967743529046557856013523996783449661030663414323961100777899400306140302702354544416959681406124073969902012185790714101783528856079256360016717236775571372586649534654340766602099721976897360797552254503431336773113039062053737478007607599068107364087421684102543397388758307045970253154925720848096150475236297913477462141367468948830036306698567285413154918681287207656812982369286329098158463035438419076502624266636983795562662483138199000477587744616600187323048731832336551201695222253844988048947944290003429306450732929424728700979240207091357207530808849246467126177395449104329323552221376755113899198445910748377210882249657572159671923346784398948698424348871225315220925402876757281249913027618979774594453312321390327015080227845383834724510842264999427215088562923486253170278204163718531406441854097704322434363095430574928755023457208975455866371589836682291619120411503734710291973328210477058158655845599217519856073360273336567727767920826217485790503671461311860587641150265116461273540964179388615586457753030513129180982641875269437176569301255271956451729983897812474332556531108110767154331107816747304420417441942644437217570427870420605308687268532291965137657952609431461950579129827743570463704473576879824848058805556242874251439320691420666367100294106572320100039216255099654343098429593979924493697653047270119034404081097734814448519963911304373194613240103661016704490119466662283377265592336231977894049983617241355638879012712778428277807608658750908016751874630656208747585160882302904331386237491852940617912448262702322665334071935678027061970411287390126310432378361424978138382596037630824265163139738932259978407535737916275042702752378426458030867923259547211603773786656877449362516234027640383788587453750546429400063784497922984138124278876521315440413944540127740631810185760971003784825274936059184789639171108179522129391988025728626860345684348767256271305239476617984111624452448185473839432447059780740686410063772458102399509659171580119983632007367972973862457117705547539701038534040364494279760507539363092215346271374497691668023072996569445959379114236190604123422534564412749452020739208981854938422959478598926893863293398982062048683944829526122699386380010121517709694689527543033026377388116233777419070977359271019530602484035686801193238178320426740422124613399932669821796869577288890952586977137125245843777696014937723807039957308162347343639706000450669474774463138906946318593603784689880480139888542427674411023333090520136478010490105528585010872461001400467584966196985265658436124420074315201563191670663206773533228609750046734015288075227659608221549234170305067160847186548967967683170897912056860934558339308408186912844898953883980476488088958971529148330086365884442533481385975922472540677275891837215987831565559433916568558186717838824371764716255089055911670552067933176925997413393582912746514312807017658637285795353020504413022460406523259674149299579312076771701644916807670259972466107528249504470150697302489748900702703201268906769034595753216037969058733296639875817900140202862737152229500179394696063734464723820231794052688626394428541843012955573720458041001096458074240247279253098789135150406332620993574134609811616927233371001564347719159595862525860728152843906169229875594724547747801162810575659948412520137760207502410497220668936841036743150890599483846042060935895163252122271266245417979024712044973268843584157571471633072047849936892438474680374843534985158631074042143334084514375911102285449303080082446401665728079972181926299837677605682668674773223467337211054539453441668221066976793998975488554488775857882198295387762103598746672269466962699344725573804872403852802623250513329618689349665559543942218116557850759500756789223700164643050482271979439463308822326878870304658597751585342871065142109523792433052506198835262244218585336986894811926526904735202527372185838186811105077944346809027990015059025577725778482764731673583826111791999861804338670680453444348109447501579404738001409845966990121914782235221584908557177979083038955560017790551428435186889117173629247353053203258745472318838768881036043474034197103930729962665883144827540671407432545471801123223170832390730622516101515570834391210371148861885730097580694115454459855918504402114426603098825781302976355639053086056100334821586673164119954425338506740141146213123502995957107781133159416599459627787121130369185684439328237753442427016447031229582528106667989561991432596268080710528936927190829448949427444624027298681481226753590115651783495015138463021687780197401866541218612273631546397068996524589708935681466413058325335350412798285897584454528456149506379412526567085599539840735969798222484143916539900104100299950645809145854078499729548512244104571429708598334032842653607425702517535749876849414607795796818808202372055583355330360649009808172489281205271077138961280827988424631045042783998326811023685144306039521154065790345107476255519799141196945538621546162143735268306702878989592915915424992649773339898307828863971849812596080802561560702450666660204805530056330460123714247835416009132934143487910557145964779438853800161561738997228285298635616012510287534762972381133471819091681979651420828262185011589440076749831552698906303974343650547708728732792643898465778918149588130165438394843673341052477827834815883845818639756199584211095584162878498054889290640966675898751303918237628100936653835587829529733367402969982163088844320580851829283938629500472034393129708628040825311218983907490734028242072374042265000932691417184751851154531281447992843559024618572366110099169965711470112977602468175237307543782975115040062671879352998753557209000735634077545239470153350573618992432018704960485888435303983372386782302403702115778862148878566249866951386159148907732367914119283251759450664905171455560896485647096223566214513926192805350967587533994770296931708520584419746209927618567896424322120188805155299343422525364686299544584157599186384121776438781224366614119610087372578243570114142988951604381889700977253912999983995391945989043833296270987413050794280370672336952435496825545223051660979841115799229684026185679877165109250647756280587118905070579109334337976683367380716817377346793649900107431983525768002200590733414608114489666242155177469685832566330355832073025884504839639888798469721907363813231504544215347902040797124608718138295160412220039758036298406369668795979945615852431060391654285411614772230890054763244158851973197264631524198318073339417484116961954914567699752909995040767310939427698417363879574961667717359946671430194275651525818788190560313185622499527666264148425013707429296424256722100117426344242267293035574483160125592415060699207723663469357588901278115486804739385245654704863214360328633914122279163645790723201201557220421394980960162237053687320208325034645979682589917368434334784005010052666524744289056643881362076971850742955817884681137549874739344539629494836989928890971924029323476188423075117710887076065059453751270721358868425341864495298470375829828458720461840464553706310852446319323276309878149508705348618454961569850810864133878246906611045240398807987172706778521958542846590217920803562538280938194410539913349873241786284777689356563791186189559672947435660795929853281115357076999360664425545238360754531854309231917658999002384251690308421656382650650861062235178084787710444277858659613408295932011604035075118134868407180489570304433431733139570110386072633784645597641758474776879589558476667113829868174785247378306051863408274607356864713533348079889213080721619062482170887119599635605390412210187154627066257836222316307211013344123549136187583462361095879154198264554752555000195845996488633165414693320020340592461370323748972213135422351380106578063112100520638014724133999394069559121258931669658629651890301112173800805951114540360439169470236594638870103847235158590920474884271079552954416162545398282616900968430106726215618623186572123718755616561440488393398089615542327844996224645233327443434240262578390323526328915958882821266960957193706482116982407819504569313962287815022421323864169006813753937434724544688386378322687659940230169737743554175118138575890639316115691646768688898844747308579274363522222916493328319993007870597180240835261485644060167274542939130922157162580088921406027400217116499098686654977803846845450565457917825282075719493333339924693566925082198776739991782718760425819317418503207172597347383604066809319713024171866458255558148504278196605013642048688749190698686782186565267596984150813529342815698150665286491512574768164509659746542486211194443384292687797258977291142694175935984108323581018420703713775789777135598815044210523753291679355726913935461727212514133201603400763321420691971178079908042474952409449052731168406319525839987447364576425623201025974650359137138304820060563501505011755933537586398592039818002952604780407569664005073751343882843765346053204896070946505524425316264032483724227172541612720315967768822744496880242621828291030166306220612545654093994745532843277512872724896840496405163115288091987714987360630662532878467420675464263233729363277393215986236063461931024364934948012144821262348261542020810388424566469249571196668067383304398088641905679547855191084062874096968229885903251758698252700015150849927639673816812897492127302311747032799182100389586550851326469140730495258878713909221266811398618855635762543524781101672967005528548280529499548437538158460504151306367892568104933709845481916816663661914966639703558297023520210271669982371737626674952968300225434286095984924429982816980864812591248653597223383638820211190225951546241733835482221632446705955729129333644647640568321285641706975447274392418754681424233829997331370399636098747341320804294285569172576893353520805709641024975567531443461948092252761244045166251152976986945587121652517588327648147543012754275707367116246478198083436538841382266987605676127545954220796316648056979943438314359335822288359018597638882686619593819430616658789348387782826714330276068872217763560838732565784472828416535286153663217319880273433741398994816361118358927612437692620023512256468132214674371427868284819680591919802239344348814485723092074291188560790677758754303811364259849767870562675842087144564379655241858941211428404615125182399795707453750749659798045574891619341449507267607396414227849632706406667239753215385021183525550374374082294050004943358720930146583257821588307586976314588789646772206324728609763710883289774347055032908118917848865085476812263332315315618271788295712212450628868197199156000074089937022390300665188843633300524912082380847371799258755945637652423370513328583276546076135561632471676445932896227183211146505895135318465783140030545697601352209608612488145431077153980781041283697960833789147459045441116274137670987637849799108640225515915171799187365693992161389798318376722730859933441478317246585578933749323705906536240742101650900889348826357391117003776436693863437759786940344288370767029671975346680399141469632166037356700424983516254870993201885543433151467243237234143303563610845807872006039543781695813376394061652827867547136031037666936446903387771597805663305809386851997810057171130118209354016383761756533580082934590867478287274090557514948207908435806794052679247485540413217617638769271799318173070610119109840126046296426465930943791750878312261619323404069871278127382512574052639002444487734114994963082296072129334062676592217901699440425828940632656259891739150537673930199224661221659917579594943941382559515781918761067197821663730861825147367943630592984954169101143544593087393003333038133379604046238828961001715264697680218702580063248504704602516744590577137302398904493837807277262665592496647075534383594346407173350453814264884344697773725366944481612012575877133211798260141542064275036135739799027443154654853818294327271359869506364729737851448802501110670520608244980012107311486537172392961040094820480391021045898825132233735422216998402173359757397586499823940865523605089056951119647283723990881615394499630355765343198236237020674110443565091066896350047652078232368154048929432151104217922271103637779547403482035127346806198043913675148812140109896259366605258641959225970973453311079541511928701344395226877744222411301389920116233538047541215071430376193544751256213831515940753025646481489099532668332735514424626450526298855547992257405346416919943606524585267379499948633863208523576110181806682589881761884284980854822006045738051720074349404085748610128662976119229979156683001861113037600400891509392458092413659909084821103262717489012518582841324936481284138950925363230586709659621087960764582095361920228742982587343873817410037099597985801520320356630525003685923763576340469432643587235812421724734239567916896591530346273151149914307294308827969404514773325528986368393278700791824384162292601625914415404768707495299638726191341684574472304051591929333655764898554911476380832445728602634211113036762593602328284629291429079741926502655079976237592267843269472296787602030927561491259077069862697676646131935467200366835656591208766657495053259427388320655672167570978658961159595219978702455259381830950018221699119321208959417502543415616497068455296302272919170857269742686079900775630185064791729274363488226649557885370960103715035335699857535036395428554368380434212198690532114630067240553961953791521054775907160683804024366181145013429056101504972837343456363494714883601066516973102331575402106045265210166908972622748839707419548543783343023906702920684310939885693793785529351455473251356312944889189156277088150738639020050925443034402062770103653954764973525196435283435266941388707361419833055094198442812308624289663697938407230414175494552441412038532826853402292624791248771038361822870319898578016334096680116170799686114323722334033698882701555267761504470671605056002001812090034786867030251255789848241530659627878250203910117197777280547695441382462523215641903209843354263107183896950219594636255656369458341184351679745276568812408560746114923668012761134379942670353878419113268118860035973531305915724737937278174579703574745311252058867644471058302171193211184094931971800804630555822634378578819090827185850027006750236996936118294757934694185842796582989070374914775017900196823053846363534563881249419896909666512964636485548209644139682306037042623742108248989314508417240320501195577286649460317896365183827609123509351206467404039183350056326282971980601488400827015117846893148192722255080985758951765387159407940664686888440932246687594216137411816619544562813256500998895137295763654509410231860774664400626567137687155634422735445159247038144433147124825437767856368594731051377541259937521426711214674309491305608571061265645564149386227226958043134922444200229035453379195285527921874391707826952850701813035170293492667956880822767697148439824043790955235267496513218965523522203305327219420521792644534005308481298611892691442685680663624160309326209371292782347983778894520733926177102794219911827989836589000360713313811862196909826456445316720706961070056278416512842437231021318267973208463961004577731983913850581300779117845414705136530674265664350222692322670092377811805240381329179237943299800898451796409850939760797359191777644065707213971085928038889619996338160917829824483641602962374297010397895974432582627034482205522583593677889102071925882213311160443293080682638694415388295229918577685965467220871636482787849143372159750786194788614587678584232351723045090990399365706318461430042929935046080325462405298788185970025495720204856233945444703783731638087068658372430735548168067513332445335793126943166625688053069315194354642145720036683754327014343700231375639890036123967551427739971703570528586669389938632150097473384862620396160438046354813149996174352658778935087077481606055713101820803875795097313730542160572281872819231932249994608531399960455394396416914557032199982153892192345738317539619735265507768919552079825354951620151825679346347632511752795430532873344554446767791711339630489692986994545384034006693527428369344892411907958943205882093087207319090181049059748728904205990822199365007658129365806928105409452089551366472168638292652567869590650318736305849169328018649688943736922980665093032885455483353426647083984990879976073683705302388183980415261837895184178364336513645592787307613792609039225777354593274791717457122767074376624489185910650876588999681511337443449467704530453086721305578064448321629342796142740989928043846603445472432729460934210230070874653512395233719283686136628717682985254648535534529541681345874754179525323255730346418261747634955216746681588692800118329919314047081483865854539395297891752229158809637970976539172259063812447592569997632848267763145985748589460399479014921225693906371122142990095356989820828555384025056424302937051751058134302076019758702419385966164790459695448016943919999442333970239244733737251399203007016256515526730236777499547516488448382759066210224943097107472291136410385848544115632207302600892848254949234600782490942420556623530407957071525563720457422077757697972413588000578615190799844986366044900660003418954285098169715419121687697513727730150842507929279267576190460217858446676438629285962035122199739015955417778373960993264665810639008269275247703950715814923653490326555142745248276005263860179839809617905555245783624186410926422507088649476748093086773094643612103012119819184060382314986514768722622926666844673217384101779470118792538725331957439156989724337009043329370666753408960489615388826829490881107569990779653306086737497673916618442649733961970957057464640228846671642208988533575852843684364607093593481205193907283747162589037087231741876568506476004445531745607396027853221366470401281817238263681523541293313991039227457899048828620705121423034432217779600979795073889899076538343143274166710172609713647774125649962291317144324092711427093393381290856322034481336034363847036685659396974183853315705837690787818845825020986396172815102191586966769974904466755885186422944177184719001068444469414549896076820297646450892671033074220273306744665853138831168491478710340158838104423769856200394290344088142762076103327179333815628018788161442484461938310373212950945213609689529488560500113962441210918018395360351819866370883430828925814275261164146766654309030962537645038873204574614926109477089264022926653030758601470773245779281398353343463674204575071226205921827903931116643967199150461973564928130182038066900309645644179918787063909575955432771296200768788281935340041695645969970848974332008859058841478960642742118903661501241851497302150770050243999354611596727129534236003592841325763767270743146086047399160396370007403670219758537922046095896212084157462082441256702219360726484352664032048294163335046214946457654818556472712967001163211274711833308025790618604481705379521055508567029718582121578209106666596151773490799296242181436311834649173543077069903875216770459079653307770393832891463390272134842327731282652627605450036850702541730903553173509496882514151164552446570439556150644118777184350632474880035165288801825981458679251448814178941520099504488554487856875949725384768014826341634469060037891649917364790141081485051579328414638834050025717433198664167047192357102192106162155020312301079205461601875509083866978341881012429644803416218956672694899931154125785748075859256305415917392018604643904179568825937554279055752361095963660385143113709394522923599664991146069339608065671343007418150617267520275860068398618542817863989879352345164520208717237408282542780890800859880015490372764828213713369690165982136989065266584105026353165769226095980755945181025700632996173672246272479129834628296673973313219701989719285172465606680189625642843245363473627410124903368712366419949491277168957054872777995555163673233251805084584855915282836688838379988670785041834898892506671436970926179176115021639635933938293729350428714888901984881919813187919971505664068706469841882475984323222999726891792426394809483063424494160735569532738458347605595713789162437402756860064800677918415327999556161642222653670122538192544689733429889561945832964198749639251315004539616094987393868007471822017749198067131400330622691811678275431008273862295710989417386278737022978137830122640934044716774738975944659656410437086481105385157675944173632288853248722797905911861594310104320694012224722431159538633613662582266383788672890701906623105167512286454982286093586225662587049674039013457844969777593194883564156639519298734083147570845121957762363232240555549485973466311943499145679723122614514027406440350079236403060686872539496014382999056093424538310937600401040271767748279977827453679368924416883896998732709832437661599010750084355595831565898994099126326816619356058528929843479307333487305909435303146641483327941763474887726723871490411579906380435336763308152784032092965443761348452614832649258559423878277301943292613099503720309471727893372567954927131009506140949405908732503396458189765235299751551197714818364211035152085722138368869621847297702807067210378636972462482354213762728240864043045010387979778258872698107053601115957556570661456759226958812385338827036404914608608818757120539273633317716653258548896794763532595874905703321709047319798435652525137974326182750224754039063235293137471543040749273164881772074379759931380649927811316616414294560923622538579598626637988932436873254451978128070069096816550077419589357348702827064830169121899925510856851988170083617265888235590740303500594933546888137222724774384529273616703755043513077022526112171455930776570502298566214712547783492018095400167516129382402388765014643110038340208403067944878210123829359240979690611591276159697990855442754931013903844514292822895244020816891612776376374720466561872924768784727197872247580305021500519815519091907567664791900004702859455741387412222526793792211597469304823756208281924409396929362386140375257866796768043947251953143994735159242644777588420766981075490684169416303288769013845822164868725855584916042933653449377704744549161798954980862801661140511577558682903902216553796209020205662496657998635886854671783247049117305392861550599399545587367016221762386046860496109816803316585968238585083803026867001101676982120904972479434846792915227733907878799507433220424851057144983162353527726124150143357963763470773020407010553004840640384588569200423592747762980846193482498809082692542649832652131892428194796321599933236652055307756637706281187862887409044660300578220800895294934484416762217205901358226303809926350225779673963859587588435976254309755257341802455086542747642882761500835895219067574917064526353963478311278557797263789334373411473144616826706828289490469803867850745611764599115440488877791915648136478341222734910497464468087758876530132604322968045236467761450058984864872185704379846279454640917454434900327665819722548887840578780150096653718567413206626962444349107213072693001794264391466179005747160205049844887518198446148796318579285989594752532370228638471069809925075490413120325975482844402821367557061330554628166067485057199250842524370302958698059627399401665831202654102281277764260066074695114761894427625392162933723495466042890057467306175328764835612947484670405475688408194280561520654734260975227714967953966530144428575971416922182431610956319812240575739395640690821413126391548136184696022417441934694606419405797209121399052094525244901966515830582650840364409849929803816656718267947072729462104029354126875494135380905900630031973352752146301941488665472802719566295159754368804851751806442292468631144732263179689868664482438036090949714888448834743797266739255912998585467114573937497801895668595304200452257714105349029771166402404953955698447892699212903378283013214490137913493714954291748104733756237135534136609367161712571766096584587299712510960509247438662185906098847406892878763480693651048368275104841306859879475839502200956859010099901346235571169403301097747789161736854534749615871413206698416400584332154633215199805710358545366895742585535352853623789445912323012322445715655380203001470588106877872184269044514459946916459694560078988727178099441673942597792875763678393946963424916760857285099326049889211632383588219221946843715670343058264125147302487302879680812451719870005798770616470945251666424104284662055600020172253745741044717221369684220984286642623819621765511715074027881988540406346464628024663250792890990606510953249372081864512466860266546324583217457844135377654731911102748881624113100930788470183851962061735611915647449511247006781788350098563053207740847746958664030456589054353245125397717413851699104710546124554887871991959621347857019013071053620183047971178011611008479173956220538779198982711585108553421440283571932851849141492317084341641798142141236305290770035213976862709850398261448309079990340099810196345360074370555110890380478568386017910089580561068096090681767048486886400290562756881193946094209018036091903605658083129049226332778488327228532342818016115118615834767512823711471019341289348572190229410797423045572248170874350148578569353104364591274151023597498731265766604816143611908153036739964964996149044054740992445671559917912535732590676291410488308107127212618216929097643670388363139400966710034696052715191712149594291519608885300298600340062466302528587591932760752346092230551369822349226210486557260275274554068813261863919249313577787277038176157492290975167958382988758208056821410364291686838630908480083860858998874540791103911757570894703735614856364444122136626454644307916402048118106939144778286191862646015276646232898877899697444078642387410345032390676575381631142340408289984296917073581359527097726190116334438190703686940715966839304245432652721617745937639257745504819673705050027404618038287129644085665215592038620688402743006858668678785249057503129539589070068810548716668116583548307737332579207582399276274825050925940999636938872734287852920063056253834693096000549435957125910148913213102226081001207802279471188835991886122497541212500735831546052200862744322513165655323636027524608265443124380975369621547047909670061233636192348463423234944520588161638409795914061001404125510357478224404278112270798329331115098912294302867609726914378346331928125496446834101952912401235658218627845675910104408146467333054956025213109895906362397368594574076141740394164891363919514596402481858388411138011351293653920768984263669493707451876800888669224565640349708935767957799161475467411803573261460897235583967287513231320150286417148928098644582170476023589246981938112177816062389418873418672181001241819612679903788506762913128307499309032571008412581764346357023952440074833224949007775878816373591135242282420417403735005484153479975989847962912349603076645028957054676039460654915758092139900946012283506230521518660378264150492480261723357250788473856443764023275769903045817348410494937679446068952890774330900325317516826398275782893694946304172529803042422248201408429011470252143427708056414249904665750652107361418417668536507473958658729177660364720693870447865363980081677299180843544570138552312688670399962636606984050807197364842235685167258868057614185072489255200096177270253676107878081976171562283595130472400826707881708582683230782036336063903038023928641906214004139294476318804796486272630737949891811161643323377014415646630705097343867022216692835884064538015761278706529010028287481281554437525332918822389426649987398337701417147155763847314835318628230788744621078383519211059339314269534304773318407830604236399572743169678262364221959989181730267329119271902875228991604136711427284023415555156152532227652588195557409574668353046100142971607188465731173008056931294546091594922038307670842918176058752468042596686367911762216280736696315513631970843213856947605131850092432588327172572644344472975411204549536474944540366998152207367924453433476118722599076745975220990419288192872983349523301236560735258184590869964071308059989763116138395911975156015386432663526630767621912178354209096610854209604934683540285948912253758374506781223263942396574974716215336831074077009172284583940096488268026898140853860982208730772753119519121171503469314538773894082969741997187734786438098445495877688552858105470301501055030706916543987488384570032439201284638036486891858253852091517138857017198810641701550339778692868181165383714056064640720181519081731351836972579558503129030923166205667140282954010536433666067771460176161674333898887820737302766980090740914677056367656399160033623877736669256194567179830335181995827857168768900603482716629863559642768268576320831958142855437183112130220143174898814594524535871071402583855157667896898034261168380508273813952251733575527554258410675814743524126406456383134171867373384294594923167506120608676406923678334356472294675580872971265825017715851709819469852999157477286996087532201066144908942576180520831941736396562664142229024966016117521990935263800083573575008893168032285298678855185665471595478107936988410437794497963470169454488057011650054125248619726172721394150961808635279941187999433494686802929726959526767803033279176063171717951857255003489063356348863561595323503604898493781507289706312177362838701260210035156193696129465819598612685753897147031404209387103793643785411619521426290762237109639942596842199226758193692836007218955027121414386543024337721774282959442719399239851519347888550259689766004263795664393470904227525934647340654038716335831576979894379474525327687224417991854233798299394918354224037606809879764147453661697449447778532977421053553371286941057478717421043284551803091812746389997886006613534415403355983505743645243964051469623058919052623991781946558312965994181535002138729868926566322309427184134949472361328425466826875923760108553364782994795106282802293358322228680449777814079586162054504956915703275063993933361347023130159072548385654792231673968985414098318951490677026523998118573288347900097770094735062399460545092888699975522415467201357700329834821244239886945785832706634310333213817506303549432435078858645185414579965747277248063832101566335349539309721422021379792923062481409028076965683038448050080061710643602600835082951803696154400556507283819404346591241285678532913808543272305848961708226537756043429605713967091073834472611809457129470310549704471757050482054702384803762840510146755743106571282835425741687757637380510767578858894578198640756414272216250974714637169488286301125337044815371034668187214319205530642411640929878490238547785297632326019664499222976296432070888412332013124052472538068424299401028224791433831849040871259241515384732353404522091120452623935878835047861661880530359072219061827566131613949497092108066871445695436191449168003514396094517060349152996674177403958906370946995433967568641091487354256154971870282633618625239399840165335669505316339466965194052190828555405452658225645259527038950502203364833271266006136070330244465396766621023296815357255186094312071607969569870130849343303078941779631703894073767442135084017736350105426875002347652082327353427974692399610363290054755346548972495650010796903782369622821680064273922740727887967211168967367029863424865852071745726508036187594275038683288889892684644716328948400171558100453703309876022897100210927766252229306331056824162141042231042720197650431714563761801615010124562008945660121121055088130033833084628447639895415925348864680531937126006100066827159919129394496101888307928670338029041739956162142913986095728048859544345347090686926275793836616659447681665863168792245936641271403636393538453222679352582043340542671472371339796738058274216063434048846152483172601074163729338983961275652744792344943318901714545559278650083929556021931219831382204043334562615197016585345943097543677896388051041775892945776056471148263499755085052187014546849797801069662265319769804676892200315973754642174221125756138036238935589097985676038559374299905371267848573003653065264271582850947208261112466921293755054873495096147610772729976941004951931224218739665322738100163845126325867888144125337954834388618829492409078476166295828674290374458072037190437286287121822796282682551239955205726482804328683152397075979768788897811333806639964718876461232817250556579787411101014642650153640088759559319309171234627804372233738406084445736228479719900610937670201819095334192723480833538244173782792414297544996997988948504360154685550402709694474306472352923615877050084184080485206342295245853808299193771100833370948967004833171619752204071873351027921843874415335623816804930878381676905847597742177363116436295584109943735156615045771794621635385388812256078505808130770173157788823339968750144806248918461103791248662378936081570517727688228209939486804461615652002167972063210412005413053694789687190776421431046531929628684405877867456750979042480565831839319055443550312176796365107904703323431428178652547162119399059688803988242053066739328073592885086299951641052111907136876208152287367670257080526111065374032862841287314706402988145067070129190748763488023423691295829260336639661678464991200731062765407423868578371596502821100281128355526523867440215477780155365939727370599163670997238664119902010775085036482757502413034025029122156232410822659225315170825401841128826923767500789967556705438642449364805798652984714743579865823768907059162214554974898189540739307063880067891270585960038518525123630007254372140685208457998773580514404159742523543460485801091631330466518231382152149600150925775498909457102832163625708672578917327858006204338985955702959286754145830688754628243535032243206040616722854669234635830449834996226013657302718792568093109326133862125594859153566778605907270654906013429628993786228048680035831047569103276270272949894764584067780047676174376214870001542258886273044406244467289829975550340858137584376061115929079845240806855335686861770945720605022776331999560109648741778472149969488684183855752803551666263390130884289123929757294962456852681713414103456851463685094360427319155100947929221099814441020742896796222228463607268475471726782114627300177275064953579122548532932846752028352129218190233265599787915573096960743069037619291588513721742185923213846677079204651538759069236524303920222406029668913169787657307049088252373505315278058516136080182486417432654186316471199857546244740232288638135329796458631187882761162718022920466632969696023820379250274679736270804756329508093529711342504393662795297115996316365425647198267954481630080862706482021529895041408278660622950278603266053603805005607054305469100627028275594375351478199451336399431854689058982599888072693046889781943177647414995892455374188739676227945062120541580912926338959407915394464167351139141230072007539809027134323606880530013716134969736281593730507926272795698316775650635347345507500324612821554439882489678966440874927650458907995557945353275208922436638761733953774330055666224499671949014441840654447359371495819460608608714665900066788309444397673184564981376426599655723872783331389823946951950155491269735464188085717846448001677674476933181238247382958151597310447869750865742321097605179739139472745793727613378938059452379979672688939983194420054659777049434499550229277476285619891408663836303908143931855191649074587644414255884346409703422241067198220475577600270655973553261484929487010080182170630070695655582822279014371107766988966035552690831304170426806804902163586451496223402613693940864295071519792446104330503983396889204953605702361865138946629360960246538237919900932536964408236329384430919408856246408443703775536221988289267718942908542162165833813764161374003810469773199792068142258403913860974244985855095309739720535931686314913809451997351216650013333100215898900606861352531806927537002976739876495094708707195753839011865531691490913621942942725520652331983958738473279069298380997829846107606114284746931064429007145338751264896834249092428943819065289858897147431018139335280397516046635309745623148006979383783186742283131739181216338263791331135003230019852217095635431291232127975655747292136872116201685651862108801593419349358192737992534149059024377898691538035093697623609442304351418620528863942165267619599215184139879265754851048319636376192955158321882926969323207663924615829034357971824992248485803639639044465778077376160876854277828854192468620964284546687670368509809352318680935114133621929310655918475071447125477768657983102985033643822360511300112905044463549539858510518352827854146997906928412059578855031733820641006547864071706817844842648772834779723465538519572362521563445643476349987001406022414139506208506425136578015668451602324896752928637793772093668828348822518097482848395388450015678335217398452682833395587872531481392981792158303178443056370599663707230430122667388447120433728117481280657967321336984134433288129469552976365317641030905876864221975190162321137604037076132817125686185910155358047405565316232118678095454636945064126318539888578073912556636979105910590433735824424719914323875318986109377694615480088590377387101810459508654814927412135094309490781047132746738279381608964719422809277823018493489180794634724678676712377747536584763158230647405403451123067221292881973211787730063819107541562429771407285285864697540277076524945144785766616783927508259600882231615578461970357056177991916919857681915621443029436078910218098174540085474682462847576896695074009445887076751016373573113708216346948657112506584008648467939340543375703920942444036067688974131341753061114245272669548950138560738689720343910781621481740039582104627971046182465423431506147357778336289892204243790597282945735963622091845498291889481475030096296701446369962699628472259258850628481860048848787898493337006749465291220244124921110155905275603583096524320642174343709647540749027019184629116199553326259912620996277601449834240859859466722339985027669301302066510305787791105821857840461292016931280995012517505969173952235767922867553950843407176972783160662185238268086843592542201682198844288247109867912872584254716953248543838307640684186294730492404583819402203012571023648520569624220765284266840213178919554975129558109732983559218131772110477076492724108707145820979043364284879301486406329523922212339881624007584736344129625755016827072386570920905493801994757056325143687286707119443267777528386441524462882686649685429061970837182117214211656363777827535316233299373640084853456549114986176206649999878487301259371770116806503339095083532916941137769425457816537745350114009784814723126945940447242678301476851612749762194211820207308262127153619351861598137907748506701048125561814615734886254361046723445733690362081341068781673529434901715706947949280526634873810305729119861493974565461729305662193316834038153289751124071143369099837741675616349199388856431453122339703431285581783332333242459555649725509303992709807515856880422391053294539347263431031225853317954589576449651067848552864341844664981802505536971022918066465882731933206190253481710661952336421000278178778139395030318265277684935246255188239941380380302961643198461980793237752993340766795212033544639588684867134873487788926902117033957867478852615749571227586161845367367828264234041048182065455670691714185092000491607170121366892831618800923328379887912262165712594923279318177096900868244726676334924025108792678025544328441966037571087596476512991253801630714755872400948518136885724802412410982081040418198363836549465048836619133828193552610701580562189471796891765865731541038475869721951501704553471101923039547643857558024116689640391350403816232454317428292662412316055511805673268596516718260240585491593588680536888643994888682410412515884695519282421340111491539708935400111102398938481485197867746563788376854901104224341403661294424557463265972482503197921225536125746800121015907949774062531149505180957962800944197912813708994070960600096112734921295109106813969923794953821203690466537530354182427115254878586801095776080805701582943933906921463276088286567285899956519829523333461881731958124126508840701073674643370090233393641638968275851945649761443006693141105963162897165461176151522840675720959848278992926645671213695948401893907447710685649622993723066650499045192438449828608803015829830004643827775594666549707073376113133475344462891867819884400484501950021733220679367399188493392759663815509430179331528416915557878764688642205529832517168699775033413006901400495059643504674088280165300973330971559089415315879675499305881872106930089072551626479868961212440493662563029006219392027655067643034980991986498516865545393849002946741595893113400642662343476009054494152488807386691468274027050378743871327411851457841759497564185073311234211851223651463004219677977738947807583165993155516943497314858479504997552398002716838691287144062529927052700519701799980449367486609526743223548901326711733452274574208549780875349561932708531755713217049235665541112855795347801526679895483972048534010808614235948524124414273879176114647175006271467470589721687597266080914997133656509391021824962439841510544093805351311423536508413282988488905049137278460146613503525624814678808770645626331003322546433326793731822719639702644140690980954373459930218962175951581678454245078034251723642430834115182665694554392423366381820043580566695766624268923332994840573484041340925085774467382014084743239419398759625968246550129055993350969067868349267132592447380035545540156804518974676126866778226964546730955729671116907370397406016490853715507254198883700448159789087365106930962589560338542571447474021557806517610382287411513876570414105974713188076805318255346369924683603756711149160261960981433683767688118321261630037918738252654204794035861287911024295576898376046024005698901448622119031706744217890590257256672068451759805865498046471734531900913065394053893433803752494465196518439531664584497209067565563062605014384367993740526192949485045025905458073270274425340818579302664487612440251585111282647245716772096399893542078348879901115513707086094023996762945138565501369541539313317505078465489247184649590877745995510945125673290721123466210950678012953889331339491159393487725235417877314196932137328376145344312340358869738720938603904361991385926691626187189092496572792608661330182826090013086854847058347721203466245398475050093092960130329697921968171201172787475084465017998600733677594336143901802182220908567021635533292710757646891748246689770191310467722395492535767042728534969254765321901002694924004933497678487619711902093096471922172336933272081554547047048303196250641070873871796652662333215068291591054471875637505561581879647281095310378968381129585547432765908947451410798861549082086000801324520829769104616340931224950137790524842523036567103457327992791984143820429870628874022467745025022422508548489064677724627768903186374261934793936903636843329172884480201325790253216322524748492860604313917699841536430689341104082820591649226799768309587697372399657250483703996237900962603524435271714470046343835640015510822676103765989893335693671411734416094650493083943053307169727722315725054665537549551163724874422492610076532869761229606065410027481028959904041865252108875323188790714674929257347707328259633679672897801379497804879976941838675567769006476501267356156249361664472453873832362923512293123019986043326921517495072458805853518854567558428871192910260275443785840242219655983628912223628747679307008815819731259085134176112681008212346145538555934359549457977968050654109195523685182019458849816402184020273867570413163142073118128756749234484374385647950169868728056014363530813895294074102814243408994915068525778749857093696915534781215264744027270437034661123071929454092071232087217076378447967920358393328669697718544993821350905330774200241330814023199325239672190996325333670459324958836091093531529884340916978574921451485294414809386246111474619897329661344932309203960265689933536626889456392637683229760845746548497965185955990510649950298610562601529181307795116370691904266455022971488259908655785988354433199268048714439540918826561040113091524615759543314104052316173030667464791195803339345696560763410762412818795585325755709514855990363126994052244938954131187768544403504016042285644098031199744858902092293947725929339655271107094003913082527710192499901387818684997038273924843240955432988155838525071981500123489497626187172408572479829743018100921522826502432153119890222318310867662746350442188384505806525894146146027043941196904183457478408545136071016616491139600121384724578935384010089247016356093429490910214452002620921682105754877654301922760045184567351680024165689978448104079849037413386053465283035016997347836863513556229454860600510962506824882579509675385233791933161119873696717581953775887800971114003227734896630501547822096808287702905862434903781739501078038703863394719687915889398609135818549552700263750245206467463836872888170953268155744250175745400754246702397935647229894469840956617838513254411195442719826475790565434922148473902659712908044037270096300138429161404192817197150579590072278322714411674735417001865697389737469022895015653005780887142922745603210958165936826908539908481108550236503179924813108469684454169206150015310043000693606073982235315648595561964520888440855249041172040993895553056491869569133755636370179470591686161535081999779273399728547595953250079859716319941671556696684032611554697256303529772140069949599142174731199361082702278800741780689279989120030757887771709755920168297376153118141830525521318771410063191155901137638937849586111758480841074296739140581333495811176303605768848569510192150253059099466846148387855592525370815744772038932754951867776828300685113308495846890170405129736945847534581637680988983971776567813008357704320025821480241812743457923872469002903680107236131203157550785674660887533617891549460600791183450939859601987864189894322853693252553143392237843449683895115228421818928618046166868376420120873372168248899360693305148479674831226737605556765005008119963711935578773909507967924992933402069064201382278938567090662836682287210808356545554261778652779280588942967001987645910007729848954449606855222765704309472489894669301918180504247731141369630740666723274646894001216226815842460630522544020858872253698983212626711493142297468759414370630279622747854873376759021170929868542228667137394986542793469329721210221325914207841124429619896853853237033416435433235917139733355705852956181310082271038347268376658607943860642200435037755522639618759146578193683134283166782749149087486292046895512068537275480731284242709659428639070072442314261073205962808199062570211408401213477523326306742823002496301386536201303407725454944610107417251728922589066541533098283332746656852278102091692645376336253376842811229877434476686712863790398628875732504009989182128577338739528222019334875006389311260407102584977366724946061012859004730388879305860466134019911757590191535699185021460020921980351560154349326791041977187133133394016291919590403666281471007523044120788284853701822526659296666579566470587424533841480496625714718137477657909041452467472221226959732206552538289440388445339451910892630131409149166373270375339035716519793522709028464454226314242251322110587619225411211683917608249907635237716198918810043209066896767483283703461442658004570101675067170644481235721559431245912948351107272054474050216299738899267004760798206091176254890181255769738252811553785701123011587424674575903510319156640023433178811841693421522556058839279700188759543840177032054283900917750229904751764520883793982423379413842112450386690455148912206935304154084665071908649582880685228894945541841873172725825990440620164735599354893725070253410483533616748174200512502610362938797513106138334935565483320451585419873158877775457675289859916495669224335632418038597874651478293425278692252146217730427732811788150662586003143133166911267815277296368532275530186042681719746031184649379793823349796663198737464837522466033979921589500303160650965886247503002768036088270642735147295663988209823726519864284924277621194323408379332276303784503084457460091905603068028826757088588952477436217180033676454204859126735290460985751106438186826080433390848851846029041958750808107600268041045553316266373201898317694013043640935209314369981426315905803339504611091840372756017297130513638438887257030942269042900476074299866599865939925346771878695448601804407281877361836755885954788387529499322993225577000590068448638776210251767251212099744514880503159722797099259984402403492923371398521059416261117369001034644858211979236010918373346799717481072295462310620669134565684434755817263102892631712989133094684563212843191006254028972492067983903599222076404195866445969082981568487025828159865807025214240826184043132638021318560095517054213413483758302484262527887233963853999040925514396906213171454426305019007070890116513906114342243302216739958055091724279401363279391090298126225672987790640566407378953788246586020181025570186973647973315763664026136765009941716027922679699921692060167169285894123608641119512010073455348144306541056283697965616236168160245724392938895867688276789769877240931733009056901570715001343233009842413553490163494497908243289077297793210694772972366568542525145430268135011084646110570215577576820239510290230584035462846367067104466268358146057390947683631248580279168544287423935849482364554363786281996422273257847215855330620532929090881886513903408774461468189123025319422925047153298665395473504927668374212594004188460334594971146236233155287891488638079118797046496203907269270023169282881539887879015469048144019477723950205266743823752711307681879518862497198238509670946585652893988323657997281643690337333611834480458107694570129807296206341719672573995603472258502230829493649367172064108761175733502085173183039087326596730177346089000656157625928555369770525901580043300463055271891671192292092077921489402067136961421008976993193201332780103389926379711479473141100081637929875681669414607238639674284582130993023647881614399100621485023423752902483063174320592866190815736523387285763310601796964196505772730004777457058896650042538928898127928076677685852820015396966219717316109871729509651824166528597600763069318747417199557909606561931434103980655493313675914754815497944500206649579927120650573979547833050597818158002284656730629147357604955065025374506155775164003673829039537331739792359453213965501973251741326319709554105099436922017958215307375424409518963479065741853320288824521285307876189626443661660709676844261897484572040179129173295893955193939664022693939908881338481232316551030753260388499671253619563243392540432183410263324980223779548170090833010012491018623776352389569921109498155988516420566376298533270050710275215900185563861495676353868514415665147932077747749453980493758117746420687198024609002132035520896914826041170415773947124614825834232848067690309722388786551002487403897498700822341820926954824237757296563425122916283329796510489115636724342111117107678516766885728010401971145731798665545433693105688663281794575678931744189685802230662504309096025197830570124657670960319396846787955447204571703443149403277015025602677201191446049232601781862762949196770409917355325708244038404490156061596666564543943559024174053836296606162204366110541567040078750787632207573428375812714615826421192832610437561607599324907440992417401239265054020083492840718574688871443814644691030078176029163394161415166437175425637516103432455034231799640994673139299064749241833067199431220303037608064979057056011120969357218288665976865501007423205954085416495030639856618406042278215824168567373200936345414796527678939962424411639121548308581777308268999937186730798751968663787620201294624226605593670818173104028869450097390918715366285051346612448030043701046463734747773319087697686771566594474064527858744147412892756904574176689456940131711111845276319268453958633320239863867025090684694003625541741333265773191052477140743451395729329210646297583432056383173093430638596442673833578235919469440666388092770939949108071842354492385958851448509468958853227834250982520132811638427884973187906766738431478798704857299789314552432454192317154260224225914925953623359401496671837170921893009603870426779443713750747382490946474296584534408117309478379286612324756022975731038323102685588526024823826186921246618520730296074254664842105743953319518323326007689298385482229880981090517831522017168696795926474361064374574639233484004158877813770553170108141586963123692788417351372640884470102961993210346089737829651953005480213961282080170112861820019405322139799418235050198260296118884956326307408811983088762786166349890641837594408592576822068985029775300364050783808388615530406276079391000924892397491045990078607209369477032976244716345713778532868484811854230004928450742604319878765317507784483864180312615976859673249618988339499088943551932500568715838989881614236294653769147321367499620295896346150363382676811019178789407492449048564303584362883798983592531344770979618204509218352429365774217171607134719733540351190886980576935560745511946769262688861653451727938526811393166999266809373344185709554371064171033760760033619067483049637988998351005127303674619296086818611867081251766913037119300370929922516086849144979560550432647156854960638577216286590163719219526657996792550240495064660502038205802591445382264884681787054898239263582907621782452073092773773459503601175601634613125125391898941292480948185871591997660857941501526570538865002328117877041254417055044549378694827715354207736462933839606974995310523274639403721039488114487603500319279378781602541460209036932405133090998848169743243069571265063722898670620749040996735312280971254844233682179305327465006589305374018462799423574168499316196211627977401221709584254835741876060585031736366795800379650606007396144630850540441781173088542293588449701262318685819626812395071618906579366708269498910677502408489382181279757954269883536348326684330129020195534160721882892829681460165669896070200651763350585802978850507844251427925609657273022482921795062724229331858977304511183234299026032211446693637975913620898701186682325488677568347768133417703275076252579993859923235778432516677104089632463736891528256574822741463175494307540461835258639621283751409976213799425235720050699396581234746023144583523553573979129215249684982771593746391105135881426810555554282008451535504264839034028680098564638016220784356443717083943156052090077207535840329215286800690319078141250291006359813599310225640957462259688886761745073115723741326135816062725402750368832067880804186950472710076458876068398748606460550628702812082526458510433177389059143616585404776425299239246178431930610258594435519828738249102507714619769422506242052399873969327162492008899694460540842557442815990707665367295691031358013761466477210589400309103894987040663628563445606039219212289467934584064212019416536260479572085355652623022288189411292427496088649590883253377382857975334596389859143315734276312353003255412695186629422634443307940188502120741426669507264499145392130334477931625665869753931598062577512786826639259023706557304180049926602026372533944934135422419305575824869335527017520880473300427357504154741360533452548817816323135280406308645987948031176135823620829193217024828152320325084618512453393139775777916226086678707284871754908451897246261086135399941665801297627846706067528049397739424011673830794519858899982251310952463127697429738081362525445631234441772587166583167795810298208736240065384796355393045940490730343114463994306638447472163532425105985856890570256943833703939067758982260351383464599894041226796030227608422843410096580786318586738348674493718616866628701987044888212730573337176624387249882856480631824055005861631472994219097536554834505551034443209141625470885355154358569676786855176437861535392835802496588936661487150387316060294980834172267835304384106545482484919161230624973797573434378024744913469491066864242304998309045053512879335023644543947425758002906975375986731035577507684990845644550445377346256695835157587924347463673649985799555146920586738803061547160493509721679518729569412274557680469461040604236771815852445003339326088508898185788971084591026428146817819833482423293843587322446082040164349246150637314726356296953169144816389023454419110663123139659159349238945617909830769197040869694882573295231813309545204131355034015754658948437253710309259945492925823243860826281837577644517798336851336764871911172191319883807666043485356023597536110159391167652170504823107480849281591080491344371226532636302271178292234594649075715143322534560778335944930711798958667227916649735931028473886236463206380773927540208641203442136896529211793606229193531834035455313419620313751712860623988316378949422558664569434535406847707441645187724263368556070985831457700364097210955718181924535851759895437482671340670984292515380970928143429776094800882892662678188647974414428093922124839050323464764523225143783779901320435112890401554775832050954863675698836094786959322512872541460427525326249939055672189311538651795580927158053657523237559831136439198442296719973466604409886528804266398354283548545031070286480712921629879710398143693280609320640355646300971029780112493602369226348509588203693024720781784729032367534682762482190405039697986838508275204279420757708415533840640424055807552883576467231745367573510163352533978254083046674581745294720570920124180031243345731166702509868131723492741190420891193159865617831534856549996751785321252808894107541335495583491691590250674395958038036803822987259337112921014707119055385529023940693774217418515529398093594696412216723885967148674393661463442567787447442385403827603290095716962487214693153009769555141076141848774806545023109526182195947655306576822884894373777908003086987205146923821244246743050928301839645796246095755481817884034258111388778620518247339989449628279782551043390085979332528045538445954577955166651287141958761993384311456020413970170202057628690586268904248409537978071359572540497082858866555037404033671439494357519080468396777816067528947691701116252753102161138719984255527304171626480146262887126320728408457779925418572738984942681018145437396042814670742314495647468122000515304891952476721619702765921115755995580454109980521787843629011522107991663758746863530561093375271935122593692845661240533723587402531877740366896499707095930436011015292227106127873545954834310966480349997683547553253203310943872377418206219029557502793781707466747024472420513658273857535446690028098245654839884777808284284699478515593973200953436119010774951261174783563536954985376940962274108154968627480329044758662043101832854101617053067463731122636870476563085638268730027050117121713167613682889816655024026075094452805229870193725309079803269918766507618261186814952786109203206935750217895188089736420221013690012693813420918726361368078524816830001129087704580854868074529040766254922056493412478993916089096416602165614244710846359307944880425567772132921357015438789384869138478104596210080848653567309023091313916445219636051843484918456168796479371899878161421768149194538872489571257186174565711669292254223450720346964413437804517245598839010667550637390324424243724786950836410910055399524181730720030819333873905913198452392552604748357047888876141785556972784627627208913859441968203617757208169594711511320008876228569699330255140969836670499735287751914339851583574274005513730601404884427333188406854357056078936085086906498660399421586851269305638481791577791404591131886518500345935833907582891272978918404687703897824776147441574064119441403904052066742739405836981264706703487052726671286702466246793191586219937602600686472727264108023411292821475131376871115501376490156566453997317445208677206163821027796004392951754106682354360695503931102306507822297715633760296393198940352961695136886506475187052100583322030338580176574793907817990194928762808066135364977841729268909588674207226459039173370403691261535337336562237299009858190288352259436648841483978373448794961943914398532210767351992125780358681895911331680315523581609793571556237984333710968509242469683587083733829095665834377684046616277860594064906593026922577806102385803708696109938030356671272615891893805101868995341463220794460123983735542881373162573297533612488711435877057275380217782311956245637884608052872323079878154994519449193142644233590989034076634195514886664574916466893812467242501506677905840796213180187727240208745126252531782957486641232168747154924652963020064583544548013138593959644025301543382121182022970418954161976102872092915578286133049254668065905043888822476511277258099493476007777216846291601366015891960505192709143806340482257170408928410529315866465743775916198748996846942941800370394864174218360584073294860593324516668392838767069995168102420358511560472483377755472108719771744337250838952727102131304531576717248775657275623407491346081110375645222332976862563437877276683591060298406323658968475417935110393550509366312931307733171315792535620492173019491118154478678072448900268798143492124822342245585326974927515675448730043020075890468464197301705382261408480094848515920586655926460616405514734433763109719215806514044079692664010587913727391509446286879781598306784676739560341401053509886086034318102422068870369261285864704097225146939975466336071775762036870315096952508578193484703569293854656587331346672291716531433375375383103929813454418641141489369950686428508432738396779020655054525483316424502341619852434597708606634830786623476095795896963033782718202975420403687312125779531442788342705953612554020238526962943925703251084502872320296037042402726048485341466995449330907942738454370951004331927962386896900448206991524148000144318933383535703802365449672166379712414846947246961687097517416376331449337798850242846178810836889944993389942219596168731661775101891554083255247889218819806514484277090459840709104798186523884131762658392483356864248428900037233170718011006494898487429786828909737037212619233450778833532702341282770041762448596319015670360569953655787363807934082875066621816555095222998322904426056063951341856238587762019716040887994890199407233396915948674912042292750447417159888030827252348849058803460292249648653699969654591275895153047287643726650852460213934573777417663126493588968928628840770332420479273746637464342167317895808835142121474798094129940511287849172276177335730295231194762728120287418944815589108409329392619426154805378826107788097476857030239832017651677322735360056333378117715399411565788034317003645696945653125962215877017517048846736200516330492953953044703725626722800854921187463343036169924712171945336386262689932600354336897184457390585994558196937797940310377730354241485286539697917881645273373388547800610141745137679858952649641164870756735413085696831551664917893689929548572057358785093360607652211077028331330628826650679712641506765476822175058093316668279741135836835216575012555194176515743753960332114689441586873447987362671662721122741692881688656802380071290542575250187040367609836258821965123403303978454577871830792502845338600806251583107995063606412428862190604233767441799726295373385821103506067056643990506320948372182498270978314779752086224456476205343678466042767959027566123581211436017812212192696110483055808661136722930669697065248834776346412765383383736634923978137397141983972627540021877580961459708708501409125928587384235298323324297057698609566108650561884003986396016671352383471775497070508881588928559993606701085517679425108891019436693690807692510783403327028994288518244159234309506460000414074590008273396596438830681214341772593706034355164615415886238584192640437639476148644150381847106314114266687330900303886866122434526537501755324902904956511444798394708936855475329151230810679718089724574143474573514776251463925282193384017456381228181040303561083466164661871656985994391667973236065805421270742172471287613113002819356230044974471977817287932150512939973452719806424577198272467705135824756345898368723273388175564468191980976796610733461204905925578628716301827380347963626265680784374179587227355195707052196946288110256371900367988075949291348771505836051119807850622049083998193605543948653247170816348277200074598073643957740848026630198839774625897383421754250793116858314937201573332416836381290787894530063681425854844474390909426413732104207434848429006055256531063763603259106023961363758018850663890839589362643066087933295061663697628908551855190742264618560678351218893251088288824174400603811210310784774736408532486936036614909408167182814277746709891781205671022013204239691247006321674374986083947152767358779618694182857828711806108114100524176584247726814769554776988864716240097673514854814924567634035045965498144835541117738084495310204755762817430100882632357648297760737835410296527986135878872456173697457267212984545748615958695443753171157092352403765715472999996088550658412905738905583279959619080943887770375894787860160137716099078835318449566657255331191744032195967351261604907180154524304216515496055695544555484560307655712206582816206452572426773246531694843860971395249553658382199556789176998826356808777840014533335983777884944117872201578501671492181775506116737005077938701869890700147227847413821587470574580303577909810539947510286800506525252929759223964924514236285272600868446913964896348399566849624888921946051910895878542430073138312615636093219124855019522924502925980197894375956096494923855209185871190080570982065936505564959546077876857452674202534918132864057308770520663645261689172784565093121927482377508842023675651355085956585348667745739156055904700318773592797626761742448817394133167664707717460235498104470041733001137521769803238809216791983037031547986035171156480237472293438170541762243510129853528013124611520870542025253822513221451038662304695793800155973888260222170479357913188982520537107060188927552067817951373963693497331059531409527461864232342490549143212563680976675508536362574029109592285607063468411863423181276737549141169210930915572554016657094833969425636029949287514584963359229422476258626492632998307984774430878972924294041968981889497512673388167926506993436060956410581919125657119192908760395954549517040253983345251002977706015203773824120154336363112535222582883607079282325908144828995433164155581976648971510185277518100493696944490016451470899536278477596449961699616743054194939361226933213061096781681221804683324720055410780066457656626600351040088514697112573425533533684806968584673837823680276528210694928087956806025697373240208242114779364935626867275893182283047954978877936805317840329657390969318485409886898217038839223189077222004480993744269219366470368620049808345110069720512691171975333417414818755446585444680559123000216664867452050871029309093676401297808892864482216882312248374077514609900679985651415154174763034392081941673200803604473705982244924458923360451176236861126928644049663918152335707243702875637051351575247364624755111396855706931746159344890263527800157520989648859046768286600948795348445681981623738589184380016568873739330667573407503318369602680334067604698832982127923150503300232021093769265193379277813027027233943923694982372116397139488925456807161862485873813244300172081650491051569053520241635056326118902749401231097970847812556308795600083289916056057857110918987309009920405490233686900921484555962755891368886585352825198312010945786614300951312298174004048641162641510891235912571765596855688503096111379067498382829840588488501338280283122138476243558875493029123115382262033317514789142473209203197356958165657683743396946476842236673622710684531711418697768307847518924090456610672511579125806220464797802551479450932569742447831138623606813870018780743825645498202710947564454942155779273968737446732093663069827764383932658221657578516360685781168198492243571410911816603883211540961206679688290752152293569804069001711584488383499328304050045510572190580834070939803142955229869410177274544829807531854553142865611872440609656600444006136582814748987854638651651575567169813718922167145242475250452433739877168152545481055752074191560385144469535449922871843618717046577332183528323345781347398228723740660113662484449981864215801469276466834571584472373461197186792358590095112417206265261553301690921143914495160740979596788915782903634312865830626702945019222867064686834109749913786344713174734570538058977473499704098957423064969377576982965048720958186714554655728088943455681753627920519956513484228638212309754373559420928668671996362261595759187256907398799432192020054045873565086385155635178419877448390162940761995750628119442210695019103894832548096212443234382419882846234109958618092820697444387278187013446187756370243157142605119047285047268713889451833039940363239668032493776739483896833071143522182728354135067049000255942215336578527488820708060435216941131723249392643771037482922361404747196164033821277543610924432202915032932761709215852004044089815572839273036557190582333760439054129928540530947749663171821223232168491886179401038461002420256403111376901515751911922380615435409200574506082280989444003685803320932562772640328349918918594177470981858202775069953135802163627423466009104117642210602966260243126530716887621787437092887340571037455747912455995536296251092710801673911062746553184391574507178091427083818579904992550113770101997348693339532033071307063808042250023365167372485598124564081722436368314119983749846420805275776434450001714777978415619817249802547158773634347843606736582288311711775094319238792912417052352237475867130860043502441955134246602593001502820460183598129308395138608787745698708827708481150323194262049816066189447421549314490207485646353725943323143547784583683108705282001543733623560301146052532800790090893915178425227115443589551348403442793344475461283184320415472571211257990755187370844653959336777943154042242719922205429816833853825263024426731114130796987726593794500641112127996564076324979153778624581165270683201740235497113734727667618582715036884452285063758660751089450303380819934213115719895970602583541416529354432000220770809166069242274204504172579874083570738852911181460590665998159806062214021085030964979368741593578128389726562466586301995305470315624246626121139914377335783128049751171128561565170609809728971999597307843850886267032701902173859232550974767325422406151928651050466343274716578348126334107978255763283100551681835451102862431982743856763674569287891766867424067699628146778040465743058815686317485540335356763740252283867006129408563510125218323467548850449637013363699366100683315027494566886831742488121168079650463879827259682276777666230298890154962405016870725824835244933343994636557076019059720641492359952217314802677281095506984407017518616560965005183375088863269489965849926505846522766625681799195132330834230373000886060020840470668293236951912409201727473505387654318857372680401030744094394971720224301122277688265638708531417261558551550529684771494079660817656634761464463750978191342904248936534131150082737242276625329986099650655619931711531672021505126245585838106818007413033662077505599755192903875267642991724034856662713118747795513473480036407168522351234544837996804370622112184264284489029344185802503684311036813613522982090226511542258541435316902316078889612382548956865215869048377144769254628544436515205756314085258278233485573577315700218159180462741395856110070802164154616452691059502390724548633964103260504265065140279013997756381548139914791393462017918630826490255492681079370808213285199795804742885518413526231845103939701869134935763326482379422309347956954294449662045314514234638077920306662949278853317372440252675862322140420909654611374262792006441510657836982985376434412195442159741790400458652572738907350742857921650318509173366628522050439601762770517907908746577036074057214404681836388641511646927402881669086271903319566293833372513220165674005024594649732115954215756167692980527352736951437239757732334723315066776515163000976978743891721771207798572479638975604792679581142562265744175263453573553350695378052744729780029979114414058640282460658733598589717961784917500877277903095288802086809533691909263988299191367831646389506577926098647040652250218048632802202369298753982391868605823596119161433599684728504896203583097821481003900008446627131910894279307629889950543241051764243148340019417698758947977036097643529506217680142996317191582303485114240125493773810305794280647753860791951522550819153545285011446071668790373806303914570040734903510554082568186569663896059569956399419254841453468318763538607718707450081030564050760731011681939755973969687482672121862086996541859401154913203541544880254078840462310167561916854084044735959415444241504897239323030619887734433854257243898692433961878666841741512763016347975451562435613511541231809161615360753298132668010473403090424120244260618966472499630987910198036402389277928295648457219585986108097236732275307693823946169951901570519197909142844501591933676074462603166205562255267555424212811707358609709790929883543883953895187188326974782298246621805112656397580262635514358047874577753956119508173750037967037181135940579472079030681944959494488648793701376060119666751606030238366466542926983084978429646712611277185511189412559615791155642646907843890211063947668358779559554687083011691304306573939743700995997941372765826585044092914818023054155782696574005182547052023940415905330055138868525346193659451576867067801736656561446416814923474172963087892700612536795863694315860057714521210936158710802408835046449716653510777472624919091371779891767103251402026305237911955897681714663129930112361114438574396817412941000032377780555879327592146254383961662852459168684527037820256843943374570551868056728842827521000013616681297719482596762467265413752676125201455491362486539337928757111029221645834620340600816933133485296499165373317733175990481939903014294714526688178539035143842519384491311019756064246882052634287973212137927038983476619835587618984470242302964570703031332409328095552920028338288337016580063499457626190177235205632625398764919370419759725199406717975227037500694260068442745887869880948280112678799296227047629912996663132372075214512041617994581846661603705849220202588138026645779098532382999924683336384857254962996180809765440309853990350933163060637732726749958283352894984599857349219691046717819410159356714220841767678703317623123007421998777571412335504282731298530749589230554803964388182904886915609678760521533664427929284424581702623659758425931459541936465441003034002393181037184548028950836449064437924867746967402668325749130066928687246773013220795159255422066870368573116740167690881609895780134645732228040869605899785966797501548140221523169943237411805465752960973955644929480734685620861254656894408869704411488752794338884518485276942769090717918397218905601057301723968771469187001793565856040719770210153457083611406700329061494348361863133680090596501361678931637237474462853010268086779917798950132103047407020295023581298797530342015576316356749578712699752067537794068345028082136256229242705172052643938609198965462216287113393347284276738144037457993679582234462613189845782215758608157659348203575461846493905695855530790274923434628386188607154259158119764936377301987868532194475572557404323007930597817278049890142791334982272329765054719813793845749323006957725260933114134058791918044158785504570672197978249196511663228499032492333641824592771692900158953101398391694376828145468696011224178797202879937032271135178794446333516570490320939432928151810315636122050015337391402174923414859242066292790358380036163051373326940938442862274921810241397510398247975726350507269219014906426676329195753847807149299302611028691240490886932079336622121709533504341145007856201229755003647856812922848214660738652517813052316977684352989950899264613539619528456171150251069107483411363525486453869260527865117444211372936016084219845630134862130143949956523800427379834140534670531710737837778830825952448412038003084182112932375982822590864286740333681490635930139364522273278678285105906555834440143482647332035014871871016168583658033704396357131453107370227606643455091229708997518299351182651785820532156781322077834961983413136280737676746399425401381690233826623131318483460997215271707838563955699743391705538197616604103189391277066453259128766948332843601370845664617315421500244327576205895880956763498864063902565289576454923337162269675072294327225841078804210007567208121582139047972260529129355307599246913982079023008782523369569529102513218983271653210590048735238370516738676716014434632005203987992444922175835826177488845471864957226354220559118193592951668318183157790467557442985943175382945011192719191574956871653535624809758733220844123373101899724094923541358502689573723701085406107240004394698017683661805355322561406367666861648894373877341686820592068460848357018666447423057055268406717394183738585635894053436432478367874146584706652627362772597557831590088443470599544980379962499346853889959999629222499793246992478783216443637285286409003453613702502798689479712001767789064385586686248129902414329568575510214013167367584772991090619215707422231306419371120080714552230731345467782337588299596719311135119858694056416594525290395756684372162910040626546102005547671653787788757390098175648195013706762431435757135068497134568639363833641553483879002342013600679167600943396660802265254550896557022865156409318266665308950515564148974542302455061447721272135657377575031864176829223695112171166969743928042939814206950065662794664234263311906768742108027546428522160133075620315064602660842464492567823971202577702068518843900050499478082337250427537394530105726553852863189059807406101547097750153474979487944892505221668351080662032672174056191286114240886913575465155584106197642353988644785058179422156048118483098829381300607673013233163277436352842072274576190614768098509524226763973708652877857457450115539426937790636304332018727054043633553072610382688731054864931568470202553779844676569524598473237659780361716169299583407372157112085155811680431969824553148870375250820236355962944299459973315895525776479150002266430257889820953480760388746364752090694397043068199370636018329330162571740693406199065649537291497376045852345537028542023812122526953907765184912646474955126000994813335740724059757151371156660926318578045053983266574995569350649183532613325350062043039528395416272227279827592117652365773897994668349547302351951946955697634695725935532972500386588554692785290209591593852091519366113811827904182449634215905871438597925631483797605297977813720526393874060031284307751737153924491955768421666166569208575527103635793742693274891892508262730277442121084344858605370236815918032017477642295526162918793376968513527191104243429237696685916461905986680158917708658540866535213072794293463581741497500682320295021770057699343265316698088998616640007295839271117407213689450849865226312434409185061280423876552937086853234447050478775448470815275257313006095963561740914531743323474577098209618216342489429117381819951096521035199800672914454078001675360667591387199682313743527946700875371253008777431754583185133229352655257499400454678108695252862857154006335885875388436760648114017221695776970146562617853782842269997825368699095813665692688817276723831925484664845113352877371927103405717047049633664485135936846108671598082756778601559234741065030789056368936148274153113691771443366115447941485099220376289218697149799465813790956056145835123110260362274205274787269856054380146598502835561629894849178024885872222057319803573546299076318652011573210064725404552873747055119653992619391082784649357202677506246870204830297649077794066157333788714063310209940995771605086757598686116299135336600792184752058360439551951422894709729632942424339462520455893180388218714911756901517156006524789386970245593026169954918969761936875876860035171439965523185143600031267381639077586078310090950917926913819240773164325681155512264434529161266134246588134872146542428982870663218419872821666007895721002207336089838927679503761036429024523587748953560226796514913902400174579686444407915970018527973388956456533076685789757960353316179103286410442733361894794626626205654763619254318828129490912354589506249668989838557960322058441189728444627924285606156331208633984233893851156224157931557244696109869241307122046418608389683950693304783791802555699214377362705369274319206523977853198760297026023418307707788554561858044325342994930975518666885141662218448533991145178234855148273319768494557724270926210961979912237992338156150141370535795874161139776139426394552303072563628617517511321784236389406487518459900108157088405636969185208384604355183815675966841315517720860428274047491062485742401658263184357273960473263639832358210551621616690529367113863237620500939995863654942466928408295096620625513434272589895269568555856350501831398670939141073063535635057693561769699999041556497175674661743510366762191457738789435748166383884376797895523380995466247250334517026656991499253861281584860523350039458680019140248312502106089538689018758772209760740135465989565614897786991859824571726257661080215221801413065511493429713659561075145489318402305069761786086020512020977955591637502840849014559201644928206690752871010398968672873786451181544823106331388295339405623645957564765050888183832462068299013963576068570945165744972111890765049543491500012851357077040114278191468316568653965235288355149959089501036334845028574055023715570760021001124284111962379480983611765791157977158022267121173867057494156435274731313863336246318343054011129056202383662539768442338344839089696577496123433351049727773573533165693097570671353605536520884694399051949953171897527225743547995235481508189630701228515155020278840497400113145053245853833962326825366680841125104325484231521760970943539235080465430403581656182635750364326873262619211033258456827789817120899633735138917674073788351203225329994716321673587478385300672886834808207749912416530809878432541905158248714010484160554730817061656211532773380858297202463828842061825238500753672932948288979031195971825624122294080388350230346434222923581277744819314607041797604256742694544548889851234856638764964859925277635727895115901044230172077527283249017844107153313765519711943869309164848661935733272914648488800207934042100799496608144016337869843990768999080869226424862033673194413187875390880897945325273418425271226807966182901245312396946166505602161160666970441313865438402417737526932257431699019967160031096515631553229098451126489784728841598668164825543906589364346176238656010666230290677549319543185065130923965360005326574115875378241858857470570147377789375579039700616619523098995602317991117918693607838022702918778889303726460331712404765252918273571248926879793097391902170917096436434046173914410941171018889847218310431533540849278888780864152355588579397600596047159441368279593312550346598258788509039845783593752246923963852154304847832193002026183177828288272016615410019182737933853762002910155255759998430570146243741264904521475936292564945875074907534725980431016223847643907687594632851564619427697440612454377252998811857516650587794583651222308679631466937981900964619171440786548938754392522554215296406182799383137895605410215633626644415449193005502895361835419911731710136652631384277316261985848266425969827881248586450615350869446792785181595713231488403037281666020020730108712634096050259829256055141334373251031221730865222736341782007883969375822665962773724940360679475884171300233483667591134989785425398466409926131946461848883756240598500775757928209598207002161035341972689477707767288236233282509688284336741038327209995073226896034849983275265326381485116528352106189135239245998220110928910844218884376815961868465695142396100003331952921745726765521719328975741887922883292942329334534641138258312247815945090176832853497621008232635934493361257060763464197959451963293458118360535678826707035419526474030241091878547115977479689523667153228051955202252899137086230326170499857229166545583257822012151028089546522101621007063262724384527936781359640231597211548736655708326708866475547898895428573395740214941303709614953600281952150969255541859109242510601742914364055820734308304082350833008805247110224552691800164318157562091472183521680404753569805960366261169658447838925633153420484538180623009055305724774479148505174359789843684968042997187946098792237985914090980317614770122277108711237437787795883723554431652227721943600574214284380257033603708790942791552145852835433722185401877966865214003223819604547909035059713142591492022088208915510112234332151895494415399671353719037669677747177376124670548156842017901985208882011959391473551082959684917258593871524341083256268728476365155590072580805327413000110013059557256085979145610469566028246312043215550533374864631756061895615413598213299033334912111958989186823753286075671377041554085429162408317602205018683620246398536257933033099487994639198784489049428128351451297225137358956256394317568519451310266780992963622615521400352659967890393286338654485579807329087343021579200941931653925589697659272812835702784825303828103866853309472837334383638298017428358487127461053547637548180282838638294459662643546230491676671010807381510568111804648426832102538668425770628348456740455107814568945836040020683719108661774755568279420760478402282016276404728288928825118820487942185842200608809242552844217856072862162815287777863652411440114768980523011281527113233413501831992042956202819459794803065395694513883856745139565349120372845191684658247615957903330606254213111183939528931563845384687170421753839570038396962761294644201167164711421931334948447603563106418795650996896657027341018349254507533891067292044706930045653677068431541072883059902600239149639862486039151300424387789432163812831164290423890804345120742494288065670435009747428193173365365341652392376491183983332375285158260964624409283772502246464386559400753916818977864350096725968608925397356123184817043164608434613806902565911008047980845808880788670219002606264667518870479162166612290371356452136838434451074903201716842719356843765500517719215913264821215911664948562367559669221499619948876801097358699144512305367730923380294925803533824858459898855467387352132940265725700756243322889847134170135944730961224885847928097533204782258804374643779480079724255091536545978625507052318171894097439080973988755911579747152033282469463037192456300989780765927193175432649574840912743841576624244160859029688102973903947027484802315185079893648389920485090249030812541013128080193456398244358897733178900083626605960368275159326272388709462546450770201176252323012512006095584380217281014911832201922726663463917536239251594228499343987625596269474288273194331257068238298258216309102269432091132307336034270146920093672891937899486315268852474340252067596673164679688453562086167741613492959875722468556543157924474457800031489263253424635350326521780360085339008538707972039175672542239339521589655631543855834003298515593980979054137541222785806505442178677640287374319286742928032318056693949614648750042561080664381848731485881432223622124627318449491264878630089410136412841558350787285014006950164854677287588874907642661543675088992025345890994884302139051913437357451255012302975440777647342537517300841350105619194597567763963536610360515894864202020444573785645206763279646742773120037112874681237636735485038239837115525233288756792005527714992217160553755702767323064362731460530576323544739405869040686960522308294822361955067925613141282327883540291209472846679726153354081909433337551755526394309502086882144922207857173701340956862861474004070455298896378114266187293104498114709890019566427130276611191171231559495808861480095394955708629745254760632973122234886607687624847318866434284264739204617649020379784582837890754544016633183767896838618004773322286375976887745349809694094947845732273747695056013640631643194065076737043605777718678865651556910816314916921380235596177418322387853043251110815522312900998800124629966188813699344758535829966501903038049985932690062618887418518055192444271295069376957756383062193862456375705960848345155657462316481255960872476491993695998947316767529032388352199943322074434254514168840154433987278497701266319875325892563939812838455238255713756738312228637322944125766378094778588337657938075155099514161186132917359180841647847893748801733102048873007063679920440363886748145033583174309648907315936638003221902702914138251502894475960554368025321236387902401972425648983507458150222527970589860934877191865139876478628816242451969075353280976933808763147033620288677511443823574781956303872657192177941343809240305420761728074408608782513740234523500229798435496062193262373913020623730808867132759448004110267541276607850694365614793309954768539257310970504795571658189243160499398250955968541919313283954189073161607514536502853129721842060352054678734062916246978120727311120394026758842033457689990554513542241650292939195408535276092300332142010284046097025895486019096407910718212187991583660525681159118020840020888757484078043243547071637100021741745256327787226433540483216683000482689504315435395976311946340278964832570254183078677525245896475028039298839476470562004142194166428751181147581521571640852415503263397311131323276087088200376532537044709850417733965213565865913439931630117742289073393457488870620891400895145401460730508109716239179191609896974700467769387468828300952874002201401502197088746065167248789865857500046438106115245636918752320378073315657629719031412303599381663057571148390406516455887151622650861727726405897832756514447410945863931601045114381351875581472845025206468488514550185661149538054744578588833289485905784067791928520582388371963854426825093022904321309482765013826908962651151626442015068376195680734011163113762837726187786020391480406187692012952487608871399015078320387538725211156359541731000094180141817361253685009126585305302869971647138215023120759984771735030836031216143273202097122714008420914067930691786928794738158741582803581656770388335758231535296149377445454738735799936344092135061946571933778513472351969812734570124539482029561899907404214109083013092502314099589334297578811646838561638226311604906330147577751377003187159749852347778163404396336907966334256748347707081857235314328640887610762982079008039483568363478509015633671163533615676057731458173464313494788955365584996516540927486236419158701135549975175477487897431433632078948298760870525623801695896569224436505978735465610140476915829225963175446637084926452788340752268131688905044787280844330874722665223597474992849745933091221691743557310314512824424664644334217637884498357884078317589982028328394532577884059607122707455862877385457482112343086529371574112193847827208873425634320485259170593238991664557839593778310464658230451446574190013848429598864973087026816257524165981451253040380091160878639191528301753081501189843929628422392464164705468883031261117959028477908064437144495632080218114795112822519634147021243928101438263510895930129318183910937060581490007317084441181465442970327472427149943725975242574265576620365892470460538211294505484826475104610714005108687483702492893046487951234952416030888428363838133680571697599928168520772011869934922703166223244512041238991085678580832404592210414581681000350243162013861610830054321257653936001667486452130630058247477063151817153889491762721780016195428289026796910988129047350002045751005878081894601222159641810238811381665769634834557444162712802334193177729267408036528208362506222034577827016525306972668924439695449937739042686346933263490966480008856462331423558211157036590795276631689344860353597820820807236252769304968160051125578984561277695831152553073530761910567007328125645651808906737592379203145944796409126620328493195245550082402102824398889202215457194780104824954999995114947806292662407777230604328012231524900713383057292641194236311163044790628396202161163562610025398070863212171044714511740498472057110498082705607328716013030279865290832965209736053691420836008221814476726126028014225433362869701379496290970012908128996076138414634289270291297579886716711207526199503663569979637558128834384522797381699558765252154693168924895371857525036921173072090241870960395116976910959552292360543919583830111491695283175226975452643703177058321626933850080692609799470070827363720083993810596765730374682244944908480932491412282099506310123136240511489516573965389148425503613111052341196085616993110766783373187615229532741465446176163497407938701096045403196387958482244830164186844754803838760386222469374775055310716289247156707754531496458916348481809593045898777213591385500677136698468191829444265364121202085284955267118133269238483960072607878223246690404038036038866222731734464431691964960112384089857095263195870881579710074478304419765306572569020710758720551030044250632706638061319564535743967285732572827187650053297624351086001021208444160051234807688726479856603230679016526483599497494909137831254597736960817943019181319486967457479343258675804990653748704804025470420134142524718386600393137755730012607496560378607799719608759569955456245208761451789388031818011694300137075446395965879752239862961849609516574219226030482667835331577296517213460084808432213862441087128239638050938567621024667936049038229166105451910786623992908419625022102709671386200071764312606899120355696650810144635490872569476318417432131939370340050529670315596986358219929438472477449872206183178895297760888452917341786848298243087291879406182670382747318980204817304679824794251682677138279569149144065260854581401343964674813634363551725550918792407583027499703347581695692896831843735184374220029164765551346886871922536089894606913224790584295006844220195798550799672952064417031551910019703454291240827183338547037598359826418799315538627013722656681448506164656526577139159795256973128153882931804188557982665082288294839272398363876394138151931053344424910680111166578176309001637617269014890712355478307194798239264816869376117393969294957965880653639160576420993012676106177642333965989329747425316971577804848152682905310153554840658183089142752112469760323643809691282850635990377430042393788623550407516587029326133371327590667761530585611158356638114623141679546295739704165123755931821662312251246853186380575185042158646190486880526982825516757961403783244178770361940032400347366480345626852645241237019638790936028767080147743426167923316090440985510186131861815818524434208782204938323296526296419830818433791804236902191883940532063013582028349212984588817347685788173209697686976261088994120873106653091488361061269433554793652472112673660335869468130161926113660837795465705740437755461424675662319142427117403612395301899277204443230892900996139360990571468087753742557262308353999910583882289490661728194081880796674467923560863439292180679496383568181235325786566461047356476125652243061840079790160051715629948346006851533519610407092068600626244042887128035029143036484828838464709923865183376233603816754847882652922611589803594805020298916288510344797249846122266745988273142125561478930230280132538992181703921213375554583079157666496195442431295273524395670526813603413913165396180903376184893627066552370842348476347635097698901604963342570996845526953239900955650321241106102148339611060230698175405986214768328248766843643764914728325787638509699349385867364637546706404396013595961062959346113608702008248876700970163895642134965294780724921100747996347954463953845984188353365127332793808991978608689496319222573905041172125657511103291640744107798008622455522777335530255754896352335249921355240929107117760539645397785665574623738696841673555805552708237941840022266188921986206324778036673322344696692434199356373960462148822287611722034562576496689588822207758964634870712224985852933836430947581327377482099449537887020335010299884368255226726320627463148257491694229819023122806507770990399053980284252093412169894571841553208609603983874716449386763861283524097021290254262314691288748828406229244927633889194104365174278880245577851686329408801851259213431792769677329610540915808400016623247302195806083110244792302799735321055765944540835297502670580878544205011145899290246804573324214078963659157317479989050977668620919775770983762676715601365863349506244038103013312498179279246500527825989568027335255052245013326037205947897948392035556213676696646180563045419734602345819383887440978838191927012166505759603936455035815217937904295805126354296433477254535212708017598147212895019344936071213255274817278480710673481493653781808441363567189713188067299080508420702322671760030022578588721323972946472993801287095256796123434856583976888811625310946824965805497006950401793306256139125607410352237204495066321210382871727977947152251097975525042209882132096121339772153110051220234129887561136452954633646013529562071220632030154255716941043396894447178839076141489249276586388666771774469840110355295805682239711756807587665446671619087495982830651341416646548532487526392340913741926745331647639743901096245749287509099661454056679522784541282020420114376289129306235653652853523016531537565883592733279229838176579301345829200478591952874958448086495999254446233692535558230870323225344787316739360209637708996504456135295108141597909307404857297310953544072503997894945691910732668935689498454508199451381237170655520302761347430231391015556531905987600133015961048026854041579957040445052967672012678888267590320703287838843012794604034217088616319800942500417199236554388693610608948983176673205611373262863256898993898231095620312702063354239874374462326866954285498001925492651297907072686259631177112028833267722797538493849688516925828353867200054507694267052837996983783821708659971073093928276328191149295519900406518725239809553226127954746403784502355227406842450921224518805744677973942485857201935261507708024913504227079170917960990783811289940234122978740343960933187747327849594277671885232760076942189316208195161391406690082175516459432827430079340886817184521369996617092781077742892345880004510307976188751576826108530535570504568756202644186587443049473498829790544839874061045450558000765145126738815070968228274211277762207290694428836082227730567327309855950370628813098209327830392787656612089556585971795920046039710134078938652494426905675224833366919286107020451659975080804278141598215437132690370051388574493858766779174307822296158478464023238544477624887287414044770632918314151989908119633612739814295689200591511301581414170254494461868341691077841804667433394544722519697666404780380204997437021271876585203908541214668891348162260152427380935472817508325403325615910397702887840341167830205561245629056081194783813233187376748328038682043652941918111175111139569605185232844752149645007723244374168066477108025477818975672997422539757379964280608258691753920991543938771683993420387551167459475576146615167870048575137031047566707576167258081786452472037544623614551713789693582290814712428747774988199899400827458269787310007200562227219941920233321277415958661861069537023356729936477232179333006364794406005004021555251688717807385003914091372828878700597760765154553874127777310981485138440222772977139515910683093841715464595166268778456736585377716112576464371703724505710205071578441062663126281941405677482641572056847064420513069618325689268110608232279979733847555974019265220200628922395105825454408656884067257383849204559485784477994745049746694966293679049241407267480268249645527228504213979245159754902075888612878687377716879952574177770228395017251358117563087355679959071445533538939334826662234138300752242737507632931802630415099635622110568134871504680593636475006772049130651845056774098952598851348156885871137629536915233333360863680093885239391085331540053961045817964986394476861822435970262576602645486254166962846086081374602175407979174214443056586639551344843775959347292548419818857220947617588933514781490328063435319254506111342824672565962130279519530825250249408324153285421159035360388822228782472461302875988513795443658573011288501085766195412739122028050207683058559435541549754308264682168921786954197544755996392241533521837167515924704323132298126852684796015714778841149253799915658945466662095367922601757364240280309119069362440661808763280273082489032036665920464120352229283673546933418216698913095156035503764666856892886586406573755034443846119104696405308990479463210431712025996105261297380273630870347424530019060605330125229592652707366614591417124133461899935370148783206011434376569678372204835017741897242466856584401223559209383551577047872481519028928713286325908304003259348825570022106132956471351214468472042239889391064997207290991047658471176418218874006606937723775858287887660881292410733491042837114008490977298828381822073271936098052387535105199101627560777105082061316274022558375443027468069804741596613042955522547125430159659399377113973934393848806507907384949396266936780863795017786993792145686558826091074787473774988669852194002048423591451372781807563231560914744604544717530873375658722623061740481605440749439934310245339635432197806371952850568675713714343358159544689285536582398593031589366409916482872502919438200980495622922001175143195556594996829640610055940838680595848454000070341614744022372015825198220292837241934448977945479838727179294079469846641199895068813971150919264999473382622487892421560873629866115889032130696188227711080939254479848201291672573386642901677405640834305116690336146762600145503540254142949946309614133279107307543057599346534563386422378797303409666780946063726928637495108485917267416235576180406515998973364447610030721165009569770877391015644064847601760322105275280995230960928956308988489442711610069787075672113030810640245841382705157677683192000028506835299469767089567056476675754750615268888239013408975042596687306451472933804184628801483505077098998083801812800636479124650916813194843525854634144095285556160864203353854241651272353428511163050636567227892615443144800360167480599827925393359560116563877532764642168753187204889527524618337291607000416044554789305340799088861727235096130152805721488497588564327775905485268223623897690956296479418170432422410029537064836257648429955716922562081578752642583924896927426530244610607330074387478550518282401924197819325158125272325896796751618777995478407845880351495816118789830481633511472313491684724157199780921170542150125422008941777279894115939756141763884375864416863311726616541829777384979853118169196475693381855803885263550477080188586781189821344561621291564051633802938845064271305486968459422830599342477940669838245803857117818668099053130341148218568703026696596119117761293618412401830526162888749632400959506308044204221580910180131224383076053244462117651098572092197770327531377863884517892891319639122826828447450754802767958752227006346225453166302402147849546728384494060866282114013474027186034172120265690474644360595773547483223376026310384810673025316056065141336319068819375345165765087243681184205232310526494258947916735216767417586291647424345180689963992748736779825164837128736894601961030348728852333765201018334462970408473505529998855998391209887367187480629166395128201826349533284166528927519277258889093956312997190589138201003665593734286669958991039303677956258664197924223314323661835371734545027389704197207111953853317186327798561554040304638835944622310275348656900696835465176664668419169449299826818276540755496663698405580707033846857584578012709644433698165660199723946267068259884828380509123210148735431298905568534149342856443946019995336345012787740539507607890778171851501622377720775291932012477068271548358396579049560493864210529720389421221608750758619937759774306678151063887443017987626258099850727367879225048656228037114818722168610740048716185987423318941449551944582752726213167774612365416930906345083218671456160551769413285675579596434232952536492905146392664723817641287903909972511373716510189591954559783116631113793401328729590104042817896767101739185438216102153557376051439830808030311691278789057100260948113967658891662217008217556299487125364405799705983340731604304671158064877342519726040335113431922592133854673653827454860749340071850123337171952966307194695041649892432140207537327732809447546177360944561532019879625681362750531284903041807919670239059149718578905945616773204671479224803412043383303591547549834437954882106381868245845206469473181954538337071289680574024303177181666769208734319302863630033476653775806038639085166130479940410974769628441024820421462391677017224879118181241556023175319989953284989821913091206815117914582381139929764657758634007042460147331791653162243617201147285500246316096276593824036943746580325815440158607003890722354940605315313859586697200402383591282418789438854691807384515828809562411125778656294840215603928065219902858204425271902054147285649377325468468483360669469367980066470792921443496044560797786905958001842444782086903673843466038479607939543165745077924090176931740231890364745208442110729497168643382118083864445828041728713070855935053848206500199235689168101053414630836709977119419492496085497182588217343186025787852106507604537011943948862942597476512590230496454100370873725071936669641482451603238683398413386043458263720980882955068806319774796431504347415115139051787919656357102905853335284294913175811868829717133277150148396231697241124618366174981904901948274213714585436322761618105552745883345832859867842657055230239178760099873860605311700496198335296653207550662427699263036930316335790788849330640434404709373396381934103258615301958637904733522439730349378139810592539056939164484839168076253131099165751556076375908144242261632708821435724069361993945478647151883685499955827675134348494633745492300459200406567023808719117746618960558240671841894820356585213813373320909454715099791616817879671352661212059047337670903366517898264376976996560239421208732545255124449279937312893809311696678871649712139512706992072686119504342087557800548658139921102294806616956525882866304444699643342842579113258615874314100243181205612928091775381191251185876863153555076137296816498938224022004151781176432184669509207893150542182138832305529279823865219234580283871146093871944791373979082101199635947474139288310860816039360938326308899851026699052151113659158772623571612635454129220427684524037793580506151514862072990029439622173762190471367438564333899062721492132771107932664922745433941347602581560318249560148746105268613186949173944492117268127047595849488500777197640379959473933958047758097739849349578952687770676091266807483662924288467506500917042570816991373096823806266165092254041989306184932114399875846870531897769115518615215963770086600801089076456119266349288042952788687589362738999017169637438897487169419728425369373740885874414639177079773914120872538925996150760486420865878146682161391402683585070891861205202580278165639062093191088751365712505106549242874870775417360508918797861020521352586723412208451058967347068277905668244542386398942680526603765025863921144557064567594616751326927745014115796900053586862385875066099026381408943605926008758578076244552225810951388728347004453061865735260576223810442324630403143559722701684764099647143608330579833339844326303566236677941300686290146960102801785010477192029952341784606479546558685707137348934751693607446146556090493771474849460473405352748366070261461462983017540553677975904820628749155383144898151671796393327991409430911069668884916447486300877936691775347958406594502571798841759410708569621147456614894768077472355249138118544346400381472729005195163366185140965257511679995917983161527068467904929797040107818026284871942286292154755317029695878109364842620394970907530816195782083254699635661499308745259090849638347916145819707994032562525840817320772227456332347316838771863110664509508428701106278952959801176267833956335910034946173503830200436508337727653637174203371563034959843371688608416760515844987577685423780164361067526870095412190872682782624796824455807130229496800949696617078296607296552099648971732934744993347129642533885266723334147870663716841393495211337298305318682080711805952498849783178705237704802974863088264152460765891432154856037989439868571656384160522723801574668483399237828553684269551259478504899172613959843552550397983222732382271294639303444231985480536765293408614652867075878515600832451307863890395239280545059974827809675580336865453834548756035941982548035817472340260930630896438029992931893199245562891947659121540888079896161376536087005289318699052888231237514615329681337160936247228080021603280248664495489738011244262448852638251097377213805909953583898812164067018741432816178965288889926386030032243901639197057906050426170412920961890768552610872716648546006796136910797116449050384354822503679955751835985456219615692684847219801214906611402867228921958126836628960859989344457437546620908454790486480823869200117169621990033563949467674239973508246962033552099760323584670808456937624798733249764055272005484176411054445028989437887144887820418909825061271468284438040794802349604526167886898958801860308872932858041475921355928887285743510670607837292731013898360855495204127672587329471696219418574560991972240201343838243004244079415056093609126593872865777327515248137662442310879542112689559976725440731199119306075767374863246695711202651172221470370029389838847445930685636508814140966349958451244780321277060943675728423155196195296126252558423823058966514575224340603995844726063657937937431633636652219319833281902667495702249659646985342040255813357637666479526090555597268707464015069179311062698020780115912796143409716403669362081229188850411016354745580335335698747977961546190931561689858864589023047787004538069112800730289698864437935006587646953386864493081178918559491823863702643600688836084846708644185103921434199683763900954940788835727869678711835940128218856590231982587341364944650500164494004131575415870989413813793221375621114214878265960966885651682226269348075706888982387189587287638528433553559953424100674475352156530427857429532198640584608027030496916061616916166209410366049068372859578136757229813178367524656560007956717411423872766871111883232520508054948135864087577425508047484124641280727205231755051297753895490649806798604012185685197231263004326642251754736943225710614053589085215058609150784661753882184226569323357784744650995654381839547262756673399250784260197781547072137107355927388952857353724100353778819101460800183033751055956704670716272126536216491684547695656490251179667726806512823131091896969243727899503850039032907145108705098701719652611999430516572615600506885122831286110284982180276966456935205005800197631845130188228810829739391767446570728871071775491956992550874262166488342378655021692333334750804268972552354334371971713312434015994898268044043465581065536370507683398794520883982388085391686342196507539539074626791099393248023355870997532532107326838945627295043366221961677349640976531604961892365038022100831500489035260230657135721819515314372710416998324960225222013605672031214385094367177221102288813051685339161810225857360106707479025308991927142196809617301676096988095165130902487597888015460700746624565841754210410828659853575647729991659506889843976907729158528984281336230037641889379279998362677311898714877576283715195719787532304577367936820675454774980671098028356091813549773765623867777496468902542941874064883135187791299243296220956249844267793056779104732359388984999062180681706598614692614999857770596419471160435735318420905758552890777732174332824939095402832793638387667372269138543671783425240356916356892981539563366517183204538215241555858378949953710636464001679925263525321612725254644339890164686461998927644497780627437932537858235562065503416295423363423666193929023760662173257873707248494309941016343651386899129835887466915225359561490931970499491278949699777628152649300074547631189615758214762079378615544754913092858236615829069575086914390596504331928723040331600273663965158431040970850389302191356902617858639797677918795859291794137451621187081126065885419053179918565030013931762411300944366983540739123617448774330702024801514406761840924422226500084625282935146274233055430012144865588277328301587144195307703245146724443053343637830100397021146243913467309988773676863853036951483606152451696115576409553469337882079614944532465259218901209408672645496058955557726530429515737472969888355049800785323794616131548400131015188650801116004513602319677612962572934022640554846506800958771308612504143240220994169333002527191711582939213042869913240574809391589778014781828662264091444278836417002594842409294170015347758947445843195715673083848389209803065195038108114264296671368660184583085677310717416668205557945225853680682389493256003899465126632921529306711356053313216072017278702998218118650348250003792111869084769725507352000978067819430646591576340380598849534003711424135898398396496030081465207441940951324282524211461206695411320875752960711191116826671205412650024023865220353534030274881535247839769551408757701005351282484880642261707252470773285857927187335658485712437629560176178399923933532881376067807734334758986976303675992189579730952362753380679100036871279918100486916979209592419437590700857100246456847248313360393446082708110700926650976287590745596375623564102851679360194348787027879363296771996306210349093949820778594285478092556676153583659763980305520239998043524826833946282148562226374311375046022805865187582807553287734125731264428749973821384482087073711469380501345342841489517330873160288866188863735469351919976234018733336536110872382241929203617030465471842255724632190359664543102285133738741550088418594093026739483847372420642533182022132905665305414728239371843344213102376695686893921470686728838772447397245709253801743194965618907769449787507394387588070222073914141432144681745209497009171419575561267026977949681907326730111531349840437816699922944248687080941205757421739863963408394764080324661202865700714787230542386009008524889546533701695180291606406502136398016977353525254359005563303715600517514843279457567615290715181351989203758889354782297637246816767584987724838631017426864024337714653853547599673260228389666454417213854164965333672268890870563166111309389605415227858455495976108565233934850156082292833727365824878275592512584170442911776383128284360842283322585077795028964672409276712946685747116212561118900827759891996896901131272811390342387930367671358561693689112278542127433591007919326167304123812304094906967985321494946868590282340555521621794062318428059790040140401285799740049574197449927931583888854474430011520987851335792641384248620872064295626804357733479157617526421118466240624774210914412108921815440219992989236174147838440467485149113773833926233944729024095015421099033628311766714191948375193516568071103750837333734739753220037940755371944991837267115326874311523992337358625881395436519194407106964707671040334776811435316831756389018768142887243037822967935237850859575963699460264656024775373878435384997344201963304943348412102933983563308146305526912341570430857624608343897718841521674097619187858370983212872496336355337808749435718272380562203451688261528861715858999323656161609218309584768786012939328605887525516403359265243523495554651106814706070708360853663001461567774437498381004026399764258048252883545372904380108473653434162680305235790837863082724821422140272942770879351997615660218307388264677943893586224008736335211853635509611547299395582156156894838652132749379159266770715422429700019835535948189439205008685473178558536524050995454754910713392439009031666260167812972256982750071157437457276909457808546627530830282904956505047428165888395726850262016998246422133405227628139427813514543047799265310369851165303096060862093921021803832941679773174304039925516385101487415471822406533088164968310367117292061243969441393301548324631219564033864001413562039601831544095412947596944298711228597867595151492778145370369546908589343283742270914849248091149636593119838277719912644227489325396330482442745682686557381736344617414066903300125484382737472200150172247026679877666247488584995844594957004822419246795478994540143206817794925545751835984108872617005975039535193700837759907635181914268290842806756673409084608417973032252443000156682026700541449454506029453479131902434568182303324731111383956276535014801578582205177807271939269639377860859294690984938732205514688241326289339669329213260701170995183131508614042676628973009221507867730794101154561694889036625537202521869803055650292158476286426287191164934605605804280948194527861579939017784722823148228514779884535556389712448183813648593304056537935893733151934181973488000362872823119788531481926177963871829082703983411267864014911734014038223869605254055114220394416750874437531330543945446708225391354997582753512923494909442945570978619996025222655211998243565757752120077584683923772264270006058013730598295518573808761879216238055224738440002742598081603121026022161930251470638293177111773047978006603811503924963952830749179626655062277145677803692370715983927499484620185992221067052853860850573326622834731722164620184277840614040895284964673041889407196848214950906175142891378833015774802251895288502714159845786028175115552974407608158012162837759350751080359382459666844361105587666420482561381648816046618540382931584868761808464420868023918307043954358718613020702297455836584364479006636514056570507230896913651453074244690697004273835307026140974142424575652624918024099095303417408255670491005437435597113342491110257217674408896476510327561947349429342189227965649740391321204424201888513165376195003914846452827764956784942214813114068373142284822219992363344597385682074854841814018372732606736151782524241224980748254943049749763399648312298236825337826184887623788868972983025041828296424478424252124253163737245306740560558099500021331385470750188477782030790466534175373371300563881572669927279728324684995953621246763328273829086291464875334295472886531339205465845751272889169794766380516175312739510977219491923480435794880557697917426720784003923974976736669836425871330158571069290812678566457886424175163602249291051734353723660769921255017225438862968117412842431696377281879769108092504504134227428365423779549265518047729041712874764602240484697509522239740265072096628868435882726720225500446220909968108376639726306934149823997497905656247420288871014038723719065524035356792914920780791596928772272982087576601857783634665005786982748539701173902010778501916506828668337105758965504634008640507261070660252821924472268813564237706507921682173160856098169396930881734926780381531689756240742682096908462535558649499082618703478451447968116761100641738109676717609698068193002362776849423289423949426207681726256262407092700361370902674698058393618623212184012374102536524473599397361369922130495389157906753071577914740090115886634732757206150518531657961404214156094004907569916057213278214020066989113281828370642816579678482685644802356664978949662354201989540867983831530652130008041316906299127821604377768483707847838086006511886660053624513319790967513666791972779803674969524827670753757544914386011493973148872681550244541489019370519012805863091908758810619233213354086586260305234260057475782105930152925139411393798973977821260581249925602869866979454754125604464452044120314295269430058306135668946968920558507150589706548001837468236811781431993326838870873036411595677265349909177549276843608076796149337692267011745312271260168413462817527925723963323354122643634417833046178221638622173994876306773427644889282144475668014848251199198238684222793862016013693428540167827615267352653832633856011592004507392000775285235609382902946252794358082765965819748244505244342269437183460472967127733313356543275744386961133639735543293134363557791404648939222541349037893756239845344270849320280677001935562167922566455100994793222603488109493768293160946989354380252361567605165794164685252785720919759775083246576181865180605536817634818781068109756833480280300355800619614201170070255776122350309267383099771392040635023462530852902526682571669553403881127882149401146955104613180164586207347556190671676385962467705921302676571739286018052262726910078691143280213329442739882699828964659656837448079209041011652900338595116376678394010844444497504446613641728796546752187300740806304736310595990964983199798372464866630002296951257045997955441440637065601095925728175440853453179224777374833201440097919609481783977488007642726091328322997825366672385329780626349053807566759531972767151138193959063784016454638158628972793636255345013421157516742640322351450854184750604560740100990932749504155645851337243099224825053088073159425256762844367392118800314040563974088620611154007969361007963491031907308024582557225309859632639916776624729527473746893298366031117474812125281377585913828961387101691100660354352443729436415397754631315216968067983877370105687227704726989286914051544385114484868777582009868743246198459685864568507422044368979518115640524066775900316303588989481540532742475031233111493115782561678717539553540807948354354281252101079381869594301233749256889408981680692299624706181276453854128316291598785961010442222017663144228238502044999299198676172497812349616497182886404743467709109497762177109788237926442601831843847590638625770348816358422108741752631385525181547224948163413662961810365001465040734471373290134827514192639009785313787154256556815379389191567578453195600434849286388306617358094451328136821062214162380585803846468269140555180165594885344163737352583218677787531346339365896534573701633047452490516136414228136393939181368141214189464191057952777482684468488311867537318051606947341309941600271170905201297261912846275588759908870623831985089355273042088433315257502202234240272134585389158327152613292004785722339453624027879554844924766304389825748344072573543628240688230543673405655976063097040137934521294394387754223321757334811263149336130325492454965168302862897960932582557918926827968124806210312646315161527124537587468821901901491341818844820687666676169373374476693107510877144438051866614702068481945318992375826038871788190571877765970775117968174527840892566761627086255235450120835572609007091473533010537650055293016203634932413046308722859949464487475603796328241820824084351302078512211621982556457963010799368122896395981412405786166600863765065995296794853552741317830718907998706365411474493907751294743869392582450637417677852636988928560415459942051786761338941435700901431217295811460938299447902780395373621524753776175991944158114032166484806127004357206814338738324412632325388874598545475754472596727211155054894448869320459463823999980008580283535386034263431117454564812693138011031708642336096737258768834279402566873422646369606753059799010717232185934088775386698196419497624651506287889450374215219459588594637551514548878375974241126403353048011918140680183227693628941789460550570660296190761056728198121626417862865770758378956950787927763804771129660673510935231478417857641812405046889109354745737792879219206303721777942090698727923733393123317596580073492936067321952795431699079152920529407754551704995908593312934958321962789317361979428121740481055307712297190439045375513158633336819668964087823566961452796253135170490429870865034421443567642668019613063896039725903671342233104243847620424909242083677824596060386256320063035528931387501416598634122836716659229627488508334323462698072513916994813221953732228415403827550575606905408329059900070271754938595924682899731189553441939986517311160403946067635643125926393369352674656619117599198052615324895113599317113667382627343932261331795114724316089977640880283401766419765548441536500480098158700083694015398783650822238102044780734433265607953116987777428567164848540567360955411410977021329901685794459896032787128121543934512923228972016820077563768938808720221625574251662512861449498486553124044915353289539620373203033878702824871853012521792547240662708699832168273993657798423550260659754307439297410380408418031135490386945779228024093631215785418306200776385059913165016504314910929044066552781785833866663322464903571263093663386724679186935897230154265715791661882301758229193673109580427057674977602329007893694929659406095888203183115850412889961158525358531177917020803655031604519043465658465391448889572240042382135482709940570655294822350993169568712042043562550895184541371026866486418344996375759535438759699332877780029992610888390124020947130611314327487756258540624958459310061433050500142845005206174014792954750929609383859914818353981591102192538172324063801940242524868950817746560070194381017705485498147202762168904712443415846174115099712788584010835230980682774636820311822985287499747516649286825136573357415354928018848772187918107210491216819310678576851488634193961461436898491541753318750622777307030406170860729598825526010253240801911344560420236265498578536227230303164279597840407104714907801051044240140136185641491519885622038622463338587393547132313321378854189084410696001641027091226297522391748405968977789428307041545064771627419698821402743530708927828006349474924148836282401602137688077223201370067998315264178240030958500489514555843476295751832751918343391103870511893935066753346644353287290780253996477402876676009031396284092666434100106135174198479285960126372702671716688691774706343974200808343198238624047536904527530539302019839137718066227321212785649703863799340148249341588978873849005192899670343088816772024138715034677451857254703570319647574203370867406930571141001473943585621242261211726003521493019300746167449834857007519563522266523746324756990514649272710923919847111701568757884314840815785938557745639734640939348939754565932132083607335579329462786510250108939202661675351391090896512110525959670475776416505553060564542944811958200453670349780541909795745433193054750447516953012688544276843345639563252099449700684708854539068586450461147969111137336354819301799220378934224579406385514438229378434608092134760352601536962226688453214426145773571194494334986203224683952710391598912499904609597493423185086010962705967626464606960416953431166931063595161256505419904117370522333498331451615232630968952875261522910820636064172345242724419168657454712850935869231159801582412681792915834276732102651530435845719921917224299278855881410609731706479794328498595570884764332100557378681080649563234908663896689931427684130861688252798032147278612125577272398577537816459195609802243821926866225290556022002302653936057596769718112742530335533980494535792753664820728481471565594988522164274229270532665863920159193081623484797490808104111602137027209629574787553095724372569874675776493181702902678345699527568543399304108881045642701297612563172630575635158430553050998187874875264839348205639950088329901483537092619371773913828801223798036982200876345398485537117007404526184142866664352090902900145871789870118114328436280675069278399210591667154532540181753721328614737127650371187137908125075991029934562606465052759855960311777214653360492581678095780463962541707314636557302292201271371764466665015216562179585361352186607067646176517542053922770990058218107042934507025844837649571205661175043702815576127418071129122667217829730843976726278687046000362433278174697461818194040740499003613946180848138166191252725807818900529962639875291078756929521174764313154490582657525625992030997940201634386232513525778158554100374937306881944958498704012441733292447923421716316865289214955490650235600393813533662394157996251227725579740882429755759065679204671535114966149379356037117237586157136355876765297750577505855015675369763267766563802272468274671067697412452809799488280663514086804364311659700600282886446213472425991080255417911273074239974885417191663767877483405739701006792214927409286630024776222255913375999727470567289242535092612412844410950196798035539230322223569397806494999082479116633279963026850834729586103018058169251004009172887005598232029723955132989498513783692842674373422826412370543532693330827972481184371237095541151051884019291461100653523633661083310363853250416726209057692438095069583887258519961226238173605798897357212126642694316999892942851488281507434928388561352747736188301678576644426954994720487818510753913427884168521440804772770857544088445419100563258388139727708214916497076139165941616025822694605692086946293343308304944461571167976191672401151799970218801551940296672688427190584773492882836877277698589541818244626369542791852885936172984616550318713501042281444211582715556640000838986814359606315347938195985244700364170504320611227028403771357030616347952267680638171195011314261117412105376806482748307371131250428241160559242316289384569054299592449180635023116508044607188822830643230035424102324119187761016697492882720671046066787637114610406054422621828219218024031879504907767709924313132340065130978382430321899113249775332610077850903735453654113594472841103803530381351945489476573845151161263571581864307883048533181065397764069130570494963920178340280033168016647765670163921805767088148832562498629782296896633349343109103206479522049491918623327474914705949050617754728973884226517161606663483168194121255962730035511986616811681063005513665322142185258480263141116004350311954861519506909742954774765679641038563599901401231080553187827517616488794228625667183512846670599519763846085921070740811361258626517182275528393135884644154061198242732295118079338739842174110999733653524823186212077761935280098868887438300232071661970681102259202702074775201499144153019496545075660592449711205116093314676258083438543473876681662025363862798151914309446953063500195393350887126553724797177635877221959797657882496258450352980582014733594270506841980715639883875727443754028379735126089829901632716265955765579804069933303399031135953893899376946847666598224076159755632936532390412251814611550946793040276688775154351349540364825625852919087102937797878086222817074971104048980060531512106689343225598953585915559540333248072700168319621146755472784800242337549671566923302903191242779813072665217763427887811976036534872719290422511539836752622546999564458826032365647983028897620338948604571088230756926917105006254537121560034238325735236246799890871487913729309895816985113300457608980874511112124441590237081776171073369306561923564711396748284704200797172640931970473749216686591626016650738769976426362779974358969282930475677479756961614747127359178872418290934370809255003418443345109484635143200375581526415568041293074282732173266169444449155762820830852679093135449863835093900998715968997526305457344647981714311590859369217219580761535438226658180058135419262957222851125742564802657199536174307155575280954235309477524452659731172772639858724234950153300127491618514803808593709295646745766705611620178211641458576485649956695165765481156817618483896493443567454055165794876369889421790803310229766351425346051993460446805223528415926354503222171150658534885490578903044618195030567150805415734722408819725329486167741638035364963661950818225425126990157959865636999960985379147154746400289327103773375465959976728717534674734326422806970334473797454793829058687179985812988165948956046529384868177452864090293476598243418711313253208154208032927976014832909874704940900778109059271784556642668558208370641090466963701935756115528082894975866137775589982982167452643675580636068868321167487225206950648992668752795431269833778483001146577102766180270507763073219768536702712178339683093077774751270094598955912960412786975734517872150285963026322739158962748345245045807340105405513308487769422577404174016025392496523965084411630949690849652544675618316093914297750071007181714908444791283738322766595211238232180680987380591120704726035604739634275616762159635112158516112270936465070327710573178760725352388820209143217168248847320794147531034554236343208282549252608418532596774717427111937508391014468088407719769235126923441599011762131532302573376006642524805952094771035216693875088530478250198486049935459197807594449055787235191183847693525562446753883246688791124980334621247102234442722935623837591310992025350917270019036149860105596930508409917245884071706338526878273929696372437976822026731180335364335793678335065086479074207775225153332697379169932762668991152768947120377352822841182620849275153589453605508763556411060326293176642696404450890674330233265299519735797074653946694973292288485972732265059705109557285547915487904560533738488304420029665196364548732678829857798947576894721304506797914474293989865655280852367150534673311939453592315347513435502487766327781846515978403229134191051305152217924911327923754536885076577260968811974828150997294781888032867925334714356339147270635746073506528737198294439836566674338438000238482481415282245324892363435918162070154576539083710306141046201577526603010510232443903456961005314345419289835493285561857367913983840261440865509834245890890964413115912387722380838908806584127616769960236590518101679452415685654805044362529209107658640505213676725235086031546116267131949061079158729818308968581980605021848208703537687853778917550206151383495380136418485628117656402233867777592258493105106272291636202585623218678361925086341916126706922543852649814295403557641165864345469894450175336271584177400501678048432779240655636416018726489484474241920140564220910510374273238860009990794552730722143886888675285353936843202304125946076112994743689480171977774450238275766919897191165428554053203475779570322948842193919540482747620824433220059555257292249148625921808901960807267235397244653427565631588785612990653566913643801506141614661889656767438830148371207652456675736676389137564192268344613743965644584409543629663842033199744100586654710272091679340662504680404986366540125635252386791987182735051295723174176395788520974284049895965668080593461127842095399264069400572880340321261425904562454949004763099911796765015316414802176300563427780188343093176850323308741926914786684160425043334758887062746907880712847517548221063979099284705236768716733237890870635343444006647946011793882511675689056495893550995360648429780747769344966054539605064046039905947455453955273936836372883992899131198105624237785501759811793389180521412420969625156433956763900472558169559766653624311016888993266634531104439310159250595609688122925173381343257549034964873531520407742089639534479748077554622393871164667600429690206748435797508535421389572591166374858719487269660145804906749745653222139964649058451041518027552549505384656148264241076586783255297993321678116880803737989030385367905619119956390121869233211801855435350805112028807110644396333257652455274025655488294760523205449902744450267500925912838465408145829964274869711781265125943933344937566122670930446968147555181981685471596226458422007201756622378475512859343517409907725822811072263569048672912549651449044132835872673796858735379261754938883641174708289760825205661782860657528341940446168638386108608974857028793168092880205405997724598131639154299080152724532512221822801157481918789189026614340097585246370514503024462652571947568609218586603687105112823413187724605469424469038912104126060033378839754184624745799320490087051638484186049502692262645410916215817250115484197198233856352050656228066479414761050300334254591242806183108880514240049065641446878391861526391923245028358173435730584997656907796544010388025190370061109527910380699716117551285577696991894642617013186468958113480226850146493812876581879285809461942173399261595847819178739246330969847667740881575758681592775567012084083864211943802902413456360032201390382255493133025165074819184992831351068981900497666791977265424364647061865951950541129254805811815028676656859223773999494664364682112963403247833042966215401861805121918561748528961484053145385753343602131774082338542596184950435447574921549032315301918637088190742444189978432943977415077547416335899564842284963297200344940783384469639426543930787068477142185007939241138159836457703072416208515247725591055715392482597072942906085520862165843969818697760180071544660655746940102777800666791631843590975544749311133844495884029159863062037926576472461864128969496370783413139702371264889147947002003580130153537681827543840095835221639089678362556342192885806989212098059090605144358785851468449590194030932314119465866922691148812337893602736771837207868958831767830475597074588290347577122209292008575587798624403476362204281105412735184977547175121171350889630770331951206193257044902206879332196210748690255629368119480469528580225733194921953508204333437706094829681873130972228153295152717865841150247891959232032357489664548166567771551210630178464583853838493476099819364689058848617153804708319563855859897302062609654497488866049366053992348850028406591852762683570811986781420444990483175932315616107076992010045856276891100590660954660471191960051883040062534026432353421892944815637389408509059660977434606062113230513860879880153881672320224136989649448550310458885103313739569136593555667415609497970278436147478918155332984954566623362986907348347984037894235984440824220811869209088464704778662776141832661621016913417712400992174846335200825988912436526459298075989933977494605144368326257051751886599318123808392403091875405785318476126085383952509483847893977237253709625894544341828440868188552948780572871054055066810864277392289673407631612483662009896446021033236243333261360579852267346674776012138746925230321772822966553866991068065789831021403739487608051455155858176745651095252865495442608781302130260588041280866606704349909738975891476927476955942127916050505806958628773830120691570134979464572879464787796723137590585686929468463343847379543144118320837797171941949947843929652990261868008982310733669300240089526319842469620912080708699917522896061294214168193045695184456483204898816316329433603415738334766985138895927388937401599852656363338420968203918489278595119788697736624693259118248047503588827023861179241624640354304356023688864326963014613613065035027460909507683391609895079383643811319786490523110998207302838324477331719030203622285110507759317993239918035062274785137353164884236780613948722051612158688454428028559495676332732360272472173632257609336078656490402409228658548204624257189606880841828902691399033463938710272969692767872677892006090998848066890480062038044470137985591557851926682812078862668201614371363030537328150388607184041600150887847669982460849636774331092855397939923573868408078929662698424444767629030872218704540406549806233265482442726113537145873463192129080740559378608712743509070768073847442338270075654235520169141047401292242015469085542597939152813677219312322912831657451996180375803577516891249485930574225940509288283367423917605851832228461853263187086332973758269565877354567195131830378562770214187577822316767093687115216555237477437972643818178939679011149359232522945976072896894801637336303716750780881047695396077948244937439545568715434784532576126545194479406487342582693105020273765430190336539500619423407617504693976517420344535953982298102475971125180618877431806819967030480240503668122254794498766671688118979291270629004067042585216834511844073680031240759112512618406451161663094624687678579293882464157180957097410317463019123302270658823579496295900224618453966653225904155914167308830354821376428117769043662257575511381991103297573210399858439671303603775422411484812611140084807584502978690320874814223555358888427740009074902049863283458155174044017098886827674191468292976633201460241377542191804396768139094873514280361588800764098984084927796967481819644611794968006909956233444113544941103508546238521759164118081457080798336971939432820895699998586867438693461482244493691524529545367441526363889837717605731429751008071112925392035332248673829765792377550274686124347072038485487815757203993486657729674517901501466350137456131772630539673385923194879367309199674641042696488920205718461437501748671798107548352462176377719758719158447940670301682837424670378843106236988188541391639344408357178314693779630582868875328718898433092776701599921438850879052218489223150141891205081557085269147958082335513076006180970841174124023982171162996008784293575820757879300863826749090520359163164474269743584766490063673331545346678571286669642790030275368255787343955125088618585333262272495621988784024614531913486732068165261659180110892522027062461198287877901607275576292008897096785753581956190784233141372878395015422056860935820523006392613683777650750206501607944956781871396410484108175720045562617664540975536419183648766136316591738968135664704914722455380966358191098154129357468159860334028921272421032020314463142344700601988705387680530160314350903032063975919910834729509308067259625428835977450701148171928631855680504525139139606241918756964500802238803069034362484102967550080573147129182980072222210644051944792306094853973115495226515167579089376445925878125469041526811697150287032293786397307377065419045704671847587804298305362921659411830236748229098320121660339733635063169927001727671345909520430325917397584497312857300237530496026992623445352294511404503993633709617162330233573282911239290360369786763362242664380103120252460011434166821981237652494676458962461547250247111103708662749488956924093944534045155519867165958570411236504495516694032335815640343356497341163503262152818715067847415791254753603961451027256319423347341878563019222552524081080184276657720916860564180991203322793142879274101856169628618915741142217362789430847151955453641793170135557299895771161650877678832758190259869776796911551140552788280367563268351226394874036615585809928164421452345803068406283667115991243311530002224122304818598986189100439452726755845807132175592527490047311960281031046231589784465994086434582199001111790366776141405778232413767512381502970757845900270411333600783196503444428719015991718432847776178799146369750409216720591977993406112326442264142759497325530332576438649679544878788699232669568886427285270217848797517396634129092865816041987475986247738643879077222119098121617160375546606963204770725876606505802942014186667888782552290983611434197971092471450141321566867501872160689117256107309793831965445047484001460816124694430383550151250828220763060469414108077443782798283751079304535337725041404924659302682876693598108164318808164831622813272434097873346396851863621264872415780132146032251214997240694559011400532000449672299472257871554133398689344696018403620767694274527037919210383622489813909288688727246755995155212262477092314524635997261241255367537405569295715295095679168140155749464639612624182525754607945977837496081167739349224737985204802962133481856366050416644712384284746930946700470519764867409003914706823680529983907594143548444256065010063025885757293415151214145807491071079475489369507479431964133995475438320649098210792874972301655093246293241106730530876088879885791933721883231909032399120760184534518137067433725363389787310656623713278117864852995421613359585275568033051368578688342167357405039594356199127426168384995209357725208932714700045906859617902847193651180650973253361419794053904479610935539794171018381532244516177845243668034142902227796746426896602132244319092797363155743736566347063776525462485482890956788300321608258867568521263955511251454258777916538629503733095929647720599366830472184751472823746414015212948929675113642543329938398639878724950458285607464216464830516224528502235148636153365620372270572096953258149252946501933121160211286785426720021321792687888184654623240757925064265449829633001601670723219990083906516417573224506105358826654835499449651175805483573504131066033330379326304654176984478236231183192978019463005191097052649608889670381290098060318542715581098025787572950418223233737872324501278889509821023552763757705765142235640555340305997291490521563412969504138001406828154650267629022430758105896583386455219197821371704000686278312290362522140289890044471464252952446919030506394103990231695595304092786968037951883977378744129836560743181025493899345656815753231056349046455244708819992430659103404270430338974213308576602696235050446886858550315172407813694736618729648519660619723391556536773161302018536395116430648380546923640988586327338287516197574879149510152466111501147263014816244440581673111777980980031683529653380533920581939698533137386969517704091775440878072604030717706871761826772626851908376563387306325074320791386542403343747994156197421311475586052817614029879252097680121508156591033006776648105633443145174497510996025868920062618491791186452278810744888817091572953050030789257444974257950075258929041877897601313923718408174062625455547902223449086677592708161694372110696940695811617148836068636446533239040807398066537265723229798707397863781104680464712814928592863268970160498799303054466415064444172068139859088578830086290834982264040250152858500322307159693245170309635297397993475568695858582601247362916795013114783646153346915074727664686331926150862137926945335752988514220005507564132014641074927230338345769320938567888696694554654812788417137305689775807706256073847399914263914617582767291511522987022422984456506411243716651840936412009225794909901734033907973965651156835607844958004333332099850357556021530787641893830631781819630780946793380585952524480867014844452527318540248419010369062685307758451008893691635023591959373450732201617947793989741172777103724287617114527004684122294790662716185738464632092721993539167746877127674077639606676331156940815312822210273968593014910165363901937635875849045456443829422943899543298662143365914113262820416892584129854558029457656670632202340607737338482112858000782829602985421510385681107595611058373759783526241075451009866539354379741575230243998779985695031365284760174780587289148108491591252812466848991817090306888095234671770072583253822871784400604211365692314965998931285322570055047447768763948092814133180002151710354083971135402881651396374491666163803817108295603629649363252472018665257112686602227724766258580681710676192317277040451879830988265436555073062350824670513303296924562370816620676540926887491589931177897580737024571776729170390940557958123205581864945425018162755069374150154489171149559103294291171865945775549741365509476202555378183936660569764381002315418275565896350789843438022547477971362844141734022340244641280512974014015282265261736833253935055571549193138678656314883173963679770215509276706616662710039516441373920647962450788819382503550111742000562969820871094524115592872097073559812035221678461375897091199841869544711958487807902553820683923481419498674779796228638179534114088820716145234604854188507956238952214558218469899325628952832559704235816238669166937074847710207132719619925859920921687636054265969571823813244792100175174793324325770083705581302741511664754294590067810358848106525307540548054781707797555990109405637668642008740734756461936324777710116438527171039567561055082686786265604247285220469435915833918193801631364432117835739162436214847918520329239949632181223469659936231561166129020169494522056548197780578586456797175239092981348048050471398019003955131710590117491505184345059536731004493109206782313095186502541797512691042166784079025607582751725842773880478892121094514985970537912039080412170333057832209223654323134948754781165279197491779225669221900995008642213034122837728440812088775017958164377166017441639190288576112186972263023054527334705187414195109903083673026889534749344101825741211005638161052844159142302029874981699239641699663505446007159219494283765422671371735259474149230284667839839675639171780546592523598256817550936869098821466483330524613010533909858427722508333149996525535847887823896643177068128732488039983038432554874513146797964332272117123610381894745997434134905761757221993429748770135689729257224024546539285438969092710204316363755759730759000308762172086812684575774748977870338318457618531968477279684380077152892455258070453244903930313694971949590207197286542998180394774559315923066463135065403142324667582006035240504420089135693182931686220511677507723490161152492609417095597871724069668148478917167130298390074215051444275576003199190344352125781625900152716978074213804488038643947270793332970261733268262801032019392805730908689617540300420964446503998331402778341920560255842714530060773779270069508110009505143440060368009869730305372866499187724684255710465869852445496946904744009427863646641929429000526375648829647375963466538205092011834238507248036120808560498273382136537530569379187606357213134976197721612997704100764856795454056595746456159100085656384672805152488901195940751501456773591460364813949388793951607717151631736910954933447002055491819615560746535192626254754445007254133576387396638632719189776444570533476429869762375695924770074093701870268401030762877449463495620541702410364607019411173979081333438335855031649905477312571067110214368286733161289105787312205294477113603449622682690454326060379095281305931819061563204789752641459891891080663441892216642818531822809437106040482749550335124337369291575704257078415732025105883050059098649680391517450293238594726402583920407261686222890927374385024505787504582879220882910554513148891437445446903399474730579008192105210340486673836834105360385888384091778523218982275483202916765345631514728923022429370072657042276829380254328403880763249264954261334085162329463901682791728258953965272410069401043717490121498405046918467606961403448825009071144340122725830268417627056943636355485978388269497438316715444763198432205323669995041625621554637503376423924100613099720143647883218056919136084695320410779935173652132128775599388750308988487031270686435465859885066086200644523250406512205328461299021946534223057850365574745927228432987181177652912618095454826617957259468104931555583311562599093203736310910896140627635468048643882659388190818821705989891041875743321402042445513415324350953481251306495909787143775521577828437839941566675630989306682585122258745074879062236692851779929736231327882763056596615789680255263182402993312257350111672037794650072559591219865612903624463902903617050072366505703922214695191495235240196698069453805041010971398800738418634239197719045940755476836529345370447039138915909597572473548819026488757314909423882998816885744919636765296252238438994395013481660063898257001778882746710823327766339289938444827184283535778305676590039260105998038652485972278277731223497997621806290334529897481925358080920431103238037505655920577300698078018476063207301162223669114702295069501020652198622599515933229504725648892264406061497781498643585165290488170312800976883432556146981530384571428037626262766698543566492242665110100053366899205801037653559962468109351772963308556541468468294627497921624602955508258732025631673543077293702223255887768063589024601439590840555006379176378794824807230500208640015428463045181474692161513322817017496166102112664843146129487307587251061372884632898656510316040012776846320826930678366745436504728483207930636172072710041097680765884508293737087506255318319648949454735392870880211418574304493023176493591244628811713208621273639357965616238513735157629651274000511415961599420389230220850324729658924269048466380507503184786506713776889798754286148937994197103131797700601648996319344214991157491854673472294837359934761032698985069302523756257067945183820186369776349821710355080077247320077873635210132481134864610163395004247133379432905071448094685990141617708285286246948622573559577376845411529352710025018931167622431965520877371462618425926167474038891900481950930053638173280825805498276955112232347795836622768433627160828207514261186384373100803042630843970155817561235951332904594547855640356931431206692012953095917931782639841274779180254842760792767847319408167418750945296624051916589066963909585573729509587172272287070658122939226185415109673348108450727888498986582630953858706245879384096491320931869091916351947798733424110966274611743910866759199388956142936575231210452774212589121700735841559917374748366656804860196666882318570641700454246911222910804030634691520216832652167799179438033331925347544053235976634964739581869749592963376317682458411918795492228660762107269620264440619783491965253375580400894051869689158119902278578826781237761945112348665001976020800086546288107595319466657580197271568411328448142901986661047841007177928356073380633761157659030083712263029455418466216840236677915199684701615643363275626702522613468415512816909193357787961938583002107098664974685486007082669665018267014815725603315405920463676280094189438100675807313131068692167605589582298324068210938168822462698933979978925109841846745250381055924613028273612024358959737335850421168784002072161086197208070668287299237312963897583302880563980614373763202525062037164406804370651544822542786885626313795232709262520462228906350865485567532942041809319020363291429931685624433222450950494566262471441313968041602866435802482273212937166590425419620475138556224938427594799142244983003242306826674597181183323356230939001428920388509052383151669332812442348629743366449376308229306641844093691169600061411840203354448577107511808249924896832308405934112225434725191028928637094870546152089321760631565563576650808351105614783857662392272029701806565547346693414401025876398673294115738451091235352321226057569905115081032927235436506535782077433024134205221505832212064389039965136737038008206361850596170878524727128963718544104916294284808728552727954536838107331270761578650329421049804683482735992308620404021913424195557125462270036975454941067182900584667074552659477036441677202727871132755974403047334621502710901468222889588953869570399400384044190212146655335252681167244599941051121918068810535293400615637867187276729072104206338919034956047752155580765478611769534745764955408134750730325670363165930937185463691435324616743486625304504747028555393293996042967858440994565882185683654738918943453146821605026422047923871882900650190473435389848706767035434700713758302960765081919436796278877688716419800313932021930690700984230806227843959465083988009834091211304355736055736222050715578446773310733963663922154753895875889234467620720422125869899301774264405704711579874393421653944123237882521467378700823622007475969970572074710112246121989564725271508374581996787566686866605678900946775858131661457174811759706379448720000451830320652847228012383335036533793501605370039013669756527710451206616153600536534496718900891327816351767349283908971528251209423972570223174354686512305493543105436380778597913149247971621063548725786894049801850759988289187114783084466919887239752195087069447554506538612191772497626599694227482337150038736736205639125483112897399874753408122262766387299344068852808887873897088086594115933208547747405402582877755476587888750296920251360952004029280962120940181156530221202576131841507269724037255705030214785883709317909068401463861962282341523361409989594903768017364005942571316438873059971311111120174101894521704199815969097863949047563585428988939149791520225750409708314201219537067764006706868402821747506702666378626519378190048031888548973430521082387378368599507372944730670932404993221490186474140749777602271713508582130236047446683010725466324032918106200487324788929168941759701478310646137505852321377102303994676758298737287368810116798680429912026349446054910273942148158628994815383460831665455064701147350141647356825331760855276954855281988317282240122485021302166965690427123814560647583117623648776132536193711933110062220853314165964696243431304117136347323117149943332529946084125843328026109401401487301748945481912110708465500208972620580459485131961748802892674574859437041403508608426879190677724514704966440518797090389426708074865178189763328636644431696528700452374146096886160329324192192096131595126769818517337451900478928081456352136578771269600908395475742662989098359524244006206410457639403773647789593678572366507630143811279870944321943851710685677243369710160503458472438823721493459018913031006804841489641950378406736747950594673448165973081871890276921875070300075504587258884473941120560531967661113429043496463973158317860164181225799277834035441794939707717986377375561998074020708495540586367681601001888325079931030609303448245071365776801469320465542252738106919914863227402141711650599549811993600713498969477383756126696425992660318720834292323157363424934515635766174433270413406625616750206150154793846223222352912373027118597422986683705398859027668545708197197268108366445875702560439685294034412216896631091640132815985155650897716497879690583171205353612004189600371638244655491506986851485194480935734095243480458954818885875023825205643906877889229172852153207582385249917678899150045085586503482214720203648956315603141480101866203274711790080107106047588978721236181749962749849299424531136241388679953739544056557119305702448954260132174983351535100869811718149019845752012236433922195784261227298882430961054668721740254296894276446439423567190257935061657359580787792943481533546946331923107547893804230515513397068331949766858269049078655123749918184342978029485842485722820757300350494314493785574818671268886980824937237000802484550950622922857768767282022532334253821943384910156911294649675675048390711659417211500838708461769506180379356500951732648679677168629259610348475204013510066726043753954134595438804401177910409038933008263952705016224407970021616554673047134359300657586800868335777624570044801464413341135680455248061436577090751671725611168438569579946154999200270015493438958877291271806796724798383963483488287368962337590126433444646280906750115811400555787711780552672417920633022989533226074185487560764761513235826053768899116365114477437641839808498939539165258056927093029528756131763079590349785463278989989510246362930946383929360893882640634401210765217183138285588236788541251343460152651967122398725156142856318265141240874256578966998744290965468680459066820738076080330488325797035447422675424899990606730204450236455512107008510026215076007695187060623760127434978423486150469903222681881998473502425554012944080184133055631409141323479941421379641351188000462313123213607122706365944554922970556548154824803328235794322236529890455428926808025860190054725398286072487686569033917896460113724903631429441064394671530043537201282364015884286496237711010704169575779117885521634358866537816024268341941350805513762533257496615400710746581639981302862813972169707944567733244318087771092060318958296006570143707954294682845074437113955727473720467486995503651396805584790924338746054672784319577839060785917159979206090250106908464841525518431880503012131636883043273956053269962376953380736393774145998215593707619420748101808839544927870784933978455359960289038324499446940674495483498675571580011508984607556557626880295329590491896460521156600522356673674336007092857838299100229051498264882791502564420674559252297268574258282879211764691521784116546931957342423401005265968685858706211617441152714725177176945247032028455066223431867895513334762943737013066577433553111514855992738126309122520960317204547170311749735468343680842311325595200753417851882596502646508457400809817365733449466721742382596474877237876076637960584333304230287130409902745582311639439263148483037566384111431003220122029111659295283847221827309030254095126631731429160147692960200339277620967457797926023227645337728883330607265567913285485351587865312864875692732007225364071969807049385490117653571705678235232854081726414743401163242714504372635109492501235973136562436900617782857203007275967699226958718032159891923515396009065089990683500288727931204280307101736267915976677920340319640376656175417913017226305763420881211562199337467067771979828343341977327921641944209125776076565450319482001792184046951304176604880163943364813670606248927288647184689005294959471424236866489201321391537982851991214502905054615684918608257789596456714739419945686539820217859572218159383345077247955267547426509673313492609564133896895045850314152125220796506511358157558250481218552180711554427539526734598926654464107112152197623218517250925555077982987211789965595236741049948484591650288721054090843219749774586060144132258893041050499455672635521869262807400162236089351718084797027555018320820610117646583109206377723832347129905333399846882534182500835924310052166148227135978983346093917003806785216826302319049217218458617317432274699787975167279210537473301162132515524032081627260760458877419745834948205462818866810291612122484354268066209233332205881522824288801382380046561883112660922895146148595517380477845517182851983620420701871039041828952657923764373381295488269310251738687430180371367042603964575755335439952330737836828630898961299392925374398623391093364868084459700296814330687625633310004033312058804731473204646933734327904771178364085104953661231962314542398509003967301038477144353015384980690232119320297116830504664241846499065970738983963098884410365563154703284053913485197564577092483928389238662348516879654665348407871319390052389786376974575342746108177596339917103039427604678976040142769027558040507642467832975037296702639551978479566156299717400135602664046795361057006164458894639618421736336725942287467231519255023416657053086625902127272985023668556882363142374883089371464712542829558824636371722065815064276106550099742343046575913009134525116448552534558123007935770595180249641928387138632197057397566605749358676818017198338145376264124518372293454132826151020155778216351730396741900358783279269842603650829806639094720736307653517646201522597043912098098967591757162831481540042982435331338806680535919008667119560495304314690231533460753203128372261317940364998883040573539132501163603036807525425128066105446985719650249803424585481178038378610858997161982408541169298150793199435451652262765119421319844657907250664194447992463764489315655226473946166087851129939335804452994027061785213437974760620151109651946017539933303262631437965032942875623186398366835729232033772373471308123920400593648373060927963660136390477936034580271183787365931336568810227792520766443649698503410064904188780337322132105132254538339582363936187065117554852401360123797805807891352782358541229152528474542812375582487098706992166675741160884930299465586161518512324489213758857772703189673912500992465533278390867859923234941970432480001787619749492951678850272082988252855866734719258384639658678521200370896578775572392660228630509893704820114955447262331614426317980573590718170107142507058526973355914399262702457342777145008067625667967306638313619772830172780424989371157685552781641957961346026536406290091132776167500022110327625686924008190110679604621321875595836579648494874984074039913559851862384302563583806794033259637403219356425526528357310620113703065475140606237839221162649096396187641478158064187681779183688714196233556952784010581791182937501426690182789434401545581217807756264277072071962549190185791577317012757640572637307178048067825547275850076094442593144355591786124155966708675965582879283360296853308130919652431239436221959894494746329024454579704089747413755522759284596205699484062010313048095312032385026608588564139272658037207506493024701088510632957890880977600279624840109776938334469123542921702683084887720517304866262647686339056106251361525359629505725535038950832514756332111592851364619265163697903446463626181220002723052997047680522466572933564013286805263879067938478307514612456655590444000109615925991586017239839488511244043604155928959171298678203742804917329138192487171476327689358353040988461228564302853911337386087147606718287127098637874689301664407867124020900899065711926198803057487786295873299204096715340367864869543326544288631613459054071341282329027324156952529465694325641642291835150240361189706125401774997313123942042616215127315039141308575951816649422855783651710890268249009412794962897844109584525119243008910200700684506454702943535419300526223863516562667895890803271964292762939785701119879342654351076119487038304884763800290620456314949428179238585963057068849235861708105653528219975737848016979278448823601300826224518591893488325088144264026395189539840076527711749295763727572582267718468706741935277182318704703999187564998217352792412593392738576577231290840012131800899916019251144504910977665303761942515655667271226886896184030054907693408373122641812444356124648040261695012722974603752669616897625355344182002315770454148299436981059995107032533621146404133720312330827766036167951196962741076659524988890163581874618460573088468756060434930030559979669337013627421724034922794670877326248979988869728673933010038948653225581524997787869694445328663134809404322077242038535175666339219117121033159795241784195739204262364933197625877183306016578522059995420575194883320965889925265522087592941903394551216229532736947272483693827399675983006145150196558245609057676345735938978401121855369052494210182378982702613297064176667920196871430418101702187549971000777062160605428234107482731330881448848230181764158541582842686710383769249540224142174059529888650788220536688956128898535529163514176057294085414638645980755257678778306635296770648167177422701683231336077072646973643344345088757203998007557865588269628963050565449762421293903123655769268804967159155088667954043457860850454922589211923393204937482711800967851410204884886950377163461777319258245712921117700908854696067859730230452692118680674800211175122296528634858383591102015100969659671319215072610946831125993421587399643014441928852296534131082849494529294181982695207625959595421573818785438765175743675945915381079642741774808866622413759064001171133924429198076269622878439740956173681775294005107993034547578657161996363541567075199338280414632653421781133367693439615240342759424249733595301836424872649044499487955495526161222276291485470089223403334919798439752168736069375851307772923765182832324457417602192780946141840720142217421399622811729345401889533593510881722763195207124523260056591096885033649529079595801518504835455662519804012495030694163402684916519424904223046662021149066392392967514245207043736869536510590079150773048389172445121452765588055009248695030692816798369836620000521272318619771909364780890920825335878781526804227137726582026858827556503119610017258856550443466955108486212927316302011868459409702056600181613247013770775766499444458704678482104000251568133324615169430785174501930300802408364176901575603820303763630956564339538212305743559353499698966606164164781714310581955082429563989513648756523821986961759115537659883606214273049018709589594515770374281161935041714313623472363935848172035286647109293270602320429913824589979276411194935703581891537448667575113969227137661710881737138211378483514361607991171293995507256627801769067617647353538808029458084237564807649075132031753258969740828611541101109480155633680899875278089436633013758021866560435765487495314991186686037962485136407608347787677195121180276143468663389336608091170396925233341428621187854136699944369273867238260713962095266085674148392425597050814878390105831072340620243694503232779651093861023476024205233361971825449524171126505457528711099556327822416675397298935487054496972856436661582720467697374125518590093839721204335835444155139017773666583533736031044595589347404293845573806899845785404384939162561613496426141206356858249651087430687809748369000252220698718710885080011727202022682776727475424630761984790731517117929783166749163527819246929493487712971651375501020643465143893658590142787562216062995305927125287637030056937609281584820452258365460965809919234899007041826766158718975175899257476600385048418409394121604998612440968233740168498234991097811769521015592739510749481419669144774059813985283260840832870037036674384421751390697216757385695378707962291577276318117350983095058079510177112462648586242253017528109092348610942583989163749573542710875524931583308235739370467819501761205778096547088084702921540665783848536078637884893434150490552795639107925938554276202393459500995917696831485206273582223854508932905556331693380726682941560682575737490531016272484227552156896854298948283085779182637627629938794025397489762051757885473896927367282708705778350670313252615344246444704971919105875331075290423794465855339336178389413086977802801438950961311090256351023390791955817767212344139141222650124297205924356601468571728631488701205535977430509140586663994040566395425575959950026829183048290646161147315800823756262003874062878453476246637742254951337144716496804732350357630514026491395935323429682421944484902962148632693835103272454619794850826052755124283974309820509478391935325287916822356686261857518032851137584764198982573299154945925495962370870051013036940253600185622972330911377129811007431039816243871404686948690378188264715880861072328009509457584143688040206586860837731902100448437883511838284900286298394976286664068180310757786774369949215694280234556739443112956167462259230509581915562311784217729339457771130499221760643878274229031977055154675948639085039560124434273081935562843914878373681137331995320310699563456918388631240063509372090980379256915152574650101600806484409806674446440784965913312228245091891278432215036786758783557945236335669390425766971110105156727808022477201314014600633310474978698690049468913561813416903988943988000590112774274028426067228042457422540062400978273940532845265680426871465093144010570603611179614714236277348155039754610048159921701164493730585901266393177161306389325408914314814158570729933963050112717415663947397450474631143410577558984827330944686100672965585503154389440033105037737941225975754041707283973129108003208482109145094220123173321882599888266387671615038189186679223936840753412175344786547305984825833973003306691071054117066924864160322984633429193339025360579444248900825994932888241401946690591512091883491771583664584927626944534408887582554287070096360357837287115257532970816212523800583969730200944166913463244169094372823552038933839364023731921548114998922044104117037644313253522553791698208990959167991299983876872251695183752168736297339708753797617393164605775790681461656360537526283291097331895753064280998685167326149678625042811082079138158892571036258498037170287529718299432634278704649130339658983400022992359772065551466853823454866926929662608308720495348052687076030908930089972598793747965388029150927477626939468770838429357810611194401188925059376858722795721217590538304610473790374084549898317877911124870976442819159923456531810023694548853420260745193115489488713738754732325158782602370648965098328621098173438341694133398829723609562195308284045994154179577499853268054167229409182148975552561835706599677587229618353592819736592264045209266756274377834741990625745326945722874229619339554812611367190316709023957984816738041373473556301158557715665548204672663366316925821633214779263570608094403350416858561695649282985010592495640860774904337052032838504086678767815803922899633845157880399478868322894434244210742059811136584705162070495412849629880452010680231657779236407793360669885807236209264476820223422198619168444543302533546940898288347495263292082491605999689797649051138856567017987016700323562530124949016369880192500279931352873287939989984034911951558847885605298297445505997021686069229430381374113301741523905126198250292494699849064756360533641035942586141560221205990201742214523020809845013320235417590047528367568927958272783348276942027607424118660017034204453780362763995485423197687672937175457615080264470062468825137653957725668659238861982086288483875915071884784331406950600339268275015423909506107126049379876531235213972410094485917188557569166699685343129248828906037601164850974798548643593234314036563190080136802407700623189168627924438149478075543244246700023318079558285586279253703333508887061750167997423051654563250415611826497085949763697516672551247033193889292118348525993104703171747515725847355040214957601424139399147649686816225260682443973081181977352410523119372232044226849951987823646377476907679301341263572570971605294775232765972701633313452870064579912021407945192364561843152483662781693794449319904242125634609593206165593610677386409318148843565721733035728074440207779986470966056556574441145169709792538153448339608570118260866546398561984573144840204306136232035182883762051316407171329269396414315727849750294739159065880522780281489495992218106386992256255465268505074854867412462773750341230870181508951236466271434862140389623978268183155404420369382372398069710315365864360532783871760690530670091740040313301007932430597495663667771249391206034255320148234974662150954335361400939331231542184579507296869903466521603069526896265171289130619794973481080371113103770584444397421421093902166790817439097291469419117989572555198799696216629836211541637831229859214733090450335242541677270435533928965361978278865589824378548939166507337973743920499148170359256990291807084801956544450292697668393228614947817741387810107098865312509845433298575563496822918450637788098151506593244213810273943327430678027487575300377825967606498824908263322946329364823125489378932769733569558613633645225509460785034062755581103536566330333499307187100560018903798812472933981456063566475913130482686262231521059936664181461897345206491055856775082386180141825988210015874825364112074898482930733278532515990031865717002639245624273253605959630303011817225740166049250929212371557904361255153884863747921140207880429825544218118659399960085064104167676271127427997570000769928411993353176516581684753136918753436967408534011126718714610186110691925374289946353493758881710266855020523095229138830989435765085027536518104511329111536762130733306708531821891485183841944411636599281492085378360349302543937410539617154643064928384282062452735329172203080820311532978338759252291686656913101742160867290675298927640512183911488528086980232736909178312145877582828852045571470413603166970283990020132963906162675438053269237758032961813189205847423234811915564266880913637181891803253818505370402120820317785495714383394413937814484601253012992337485133619530677803656448895490896521671308027064074766897815970092615738417260692172066191257636383994659270641004118454312024344730857249111231812193777079648931078979349374914411560379202679881302998094090440651417714164443599922583669577275605051614255860662716282913502717234738214683604198753875502920168765650984860675350921496723602539295092744039820826303453260893068664819875605582578641651878792265903068646817758699763259582085808699451791151611605707696343156940618176476295524271516554108388140091694812998787677517343746832336138755033519686505212443599205756852080619285468633733698757885690762807594948205791553490926238026547993920812074716479896304246042727112456856581017938488176174453425474417833437970612705323526811539115135073384940072856420791007264465422186500525364776494176641388113641305022748474519075340026723509361623724416045469899574394399872708246765426010787523436126602569155869836062138076731409089669325408639657103827643017709216032535711236890343692509451973064641885275050379487740837905817450311827427097814905055812713922434369470149962100204403382801621635280166683790369147165758112176048786446454998457291009717762649827511165882780851357601504467088347931071607577667573859524858237557629018150950487928484541019518902685552745386947463226397541393308040290934523221571046409875681517419003737092688907757726681905832001229779484748137141728589272816863460839487686936783202526324440100950452959204761398333202066377564125015320186191920385071142652205974876340693926697245948874809885687955439117832592601406173649103870535949495800584143345174777320954373379841680258991413351000196149669325604857321554742694412374341443237266717155544024292814618075354572947052289875547161395190413954978633471183989946311885792176952933944509610290998856295267841588535040520074542649867467222269986951080947206437017033566708044101976787050399554217851660030634702425645232265627803796155575308882391730873342554571875610314234161944391824087442274908345317430084852067862562830866750853123340373333715713070272565255956476056174536505920695926914557614534187672173114713851554150190512917881377290418187907088645645796414087736592110625820189824364958167272839903133305054299044124453792924547832289535040172141665523041790598804037207760114703295839919327311561320361422964643050274060867399507375607331571158816852035229984798022044521806126079471247897653597830176409335324030727922015681264518504594465110166843263981729186762535080168718624365445073581016868666124393009368878390011804024826848121655814398884838333863299251344646193616852737652883548007063786711915642979168837291610308514161029932671246739791685922698829306499403630551096425457769997525408004429357443947356946464145163678117925997287172312041001432172081789326977396909793772559518710112300817747991157087214546563801153822264206302373535398247690281514602606879734483784810170827070559345042099259495921421843667159116009680752680749046331493770580193978644662656416487952526535183033929340595984833712500332714469511460813527643684932282867352435265407631720095642727447467583350607265075324936547393012839365805222861015189636846374982746946766606015495690952771089058782831054600065828366140209883749144968105463784546547183127870061311257744390470132392405069252898643385334310638200168377086665429298435508795250677557580388228563346106982464445920747006849296958231576390103855662858699746338820647460720178567174337828306187902612181116060764323647493642392558620266137515567568278110763506381224707900225492905997897981334621189814438190202059251864596925320902550454539445172625520338010487296083043352490024769149678565137549844350618452270037075367271811607518790215813629224803651658570040457181767951701421157025686395194582337509316935687430043684974595631102231108524501762628003628528859598956561467345306671163946154978103266642738379480603909570401663714851972102036490437505514114219397654587317785238175523856398029649510193945212437697652956047281516134406323287308570611151460265314773198381945599708994392357492691674149778267825369534332598633339499756383932077225146223524919030769212406398651562402085074292683635019143683564259477576610322333489280497024672842149215488260784111953199252523550165189190618124849717906844699876486009146547078658298304346493075632122996382470084274405763471354152391154474797930030305920414201841268289362168763836006454809955545070893193672660458453959581747774839686097457822261694201413389216302244703549414004772746272164825843396402967198546014777670717499506725889200611395909462683539814454990792181093921891600988968520528258554606560791914648639976387074257800344423252171510591918027972995356692716066134420210686711145956625799978159976009861717356019004024043790787428649094358934398064547866419380658157781814213442552398815260283165674502015972223823918161805713310312343537912958762918035000283443089405649616399062756101110053210341272123931271197623434930581689408259909167097040215122524399173175333484636872274980303663760967714400313853374323930602429450123010518890053308584225474276290977546139169478555939234881756266116068352862875574887578224328100155662130547431152609881333153535701910995603191391911851562555290302761832493609419050417652577447875780906688884434440278323518091824810823596785512097956050347998529121289804516979887924409285343034315954015539679159298859578468719931203376903673398691428885912944608044590368227336436249128737630951928005897823642484256371974866368706010709880145032577812929870868580234598027023173731416772149544863581506895335703534271034495142120082024638435470114778244007005464013045301744573779764860324560967978653293403250264500684413840978602905910229184403505675918045377731939931323477333049875722677359047101015194193300661956665078226409508639365903194583126843980809991661114433738814054488616778394467632097115801097515151956666969517582610828005524443922131458428698311121261463902716800254597641484188646330615954929106293798704576295832308699962840414550067512852844138709666343540307072322368597566290046304045663264513056158352648132367077961992852339225353989493827573811451712842101168933546309514040906577681180159913076128133927169079774260507851748597675568945499785725281144186600307861112585211151052363611193558869767330493381875263586150280834643276703893655264585259295622818250140954573083811773276233000630057023242787081192265931773648556866423397255198192898703159072204106872389414977232467318335990702580531542088679398124016862867710980783423132711456369705737988905294090383108576311856591264929789947299547891789729120803014226077218441794907006054876646506776496892444063369382643897745796604895348031015571445228674976412050044398423413771245888412507428240551513018701902199359512300603088283690752262193624798746070769660345341763713630953290536256645787702848404136888960671459773724402232553182255255538448624507315567182453751132880461972348803299018520101715615021414917157971838587491213810221420994181393567244220739955133584854238324690103330580053701147293952992447077730385232773496267320813366504383365141257944231427609585510886526668645190282992036190258171893851862102776437951552526044582575433324175714097371500644197599858573939572032791529740402165067039047849477448713524462538394467535376145745291045785149427630330703893322931888293637395721129356979936275117374684303148957139356616843169783261366662223068387170940341177370335694964447154663377460591000242147443847912094441339375263743165838655629437758320182590765011815406471363157772234064872273724865921443967553601640062282159799262537606749668089371471245696015250321153690903465996862495401246621180850682358249628047330538425538289990814979526923150076027394341115893251095202379964823152615880982976263192211573595091753897471478220444881874828478737127008470968459701406017071056217652164322368158412780958108557390473431540588831194256216722888723487581882923616783458533851327822358936633657361698334972332511364446540768062106667785892076596979532376524829211633648280453665869825616393038056508633408705950845369053555900416308410243026529127129928377932447334543789180688814904799488383649559938201805551167410087434598255084452163248957670853570564670701511998507182404943174798384068045246767031790316535333358257942448642982528114670345971437160909239681779275232447718740262178524225672388530710069086333678171559731241137469212880881188176301330065460715718005637627046534927385474901537057568442725792299935930403418754204761979550489119781557285890670293633095183080294503880252386171609542012678354335348861203747735095902129412809398793090713184163128806959464260391749365036774095123263281392461835573569496621066670246594324101614335105697808662242116843725716279049314230474178771539460487414046363671857771820618358798476505155295839560887106897437320901034147947763185719154033636760964057383206514856858076437209458210026621281832488709375369167303244020079815339272929026994849240903472255114673162652719745420736831373679472112703834866915105173799769784448925376112261535334244601092439120847549549783263153787422672580384564989462408258804549193502556798598142883335075757423547552469714960645652562090157617601704040210208677029992893889767723866414396173109051650812352919983289395862146796854607401165267880945008415300412248780412163978337080721936528428841190571228628373836687789846570290459285780349799955392732471299048307005669365193852397926724254109300879138956980347268809459573841915401430640265775787668943453226342008159966439777610246491241191474239631255239545466392732446787042836136333203742828377356789188141732540600101704531764409047952416420826985047934444820473640264270548304417902399384229508564328993778846478992055371458313825278572959482961775195508681220857296776529300931031718455449852383795378636723452084436631534705462722552338917031928651122171700416347368601603749164410819391515256690623440442238946129604666382195399489262259687531562597011757384672104732731407683604581268614699308973944080306726191437991952429745604182041456428739473734618080825624769403071600819211589179995273530579502963087944404603006987676426829587218424214001686665796112764770751577058615954627795537138015613954122703989409449973000187148273665046371469659313859008934581501178090620540939580299744860115195910612737042264135652316978144438769347351577088172967148561189734381230142015806798616817668943498762807187776169516655528928632268402795440528021171675817749191465960815523874882384555729682479227310874970318715744410287954334179067151919750346778605512048868961265536756294799048694606919600324478120224977891646557424741080643505097940253743668860232393052302736384895766477865702867219729305397108108569622939220873372693493187746864133734754372236364096197779368584557729026348535321812291796358506132334141695999145258829042611059463866694046278423540640893659837353593982656747592094698776869375707664632579254290830165985142293955110940985372164544452426045751683629782487157483926019227611697934191253091012756560395010628970731844397966070231917493810265286552289524374197388403125681798163192989035537482830309289287789836101341459606406843775907479125251441398454930856190423719815073859258068493883465630541601091027014488756560265240135084752697903883759388678759980878928834849451478481038551120905346789231422015925783352404865577757750098579961989161055318761474023592889547335045673468834367001512088555598149617037738136473334584389917177933005732773045139987294412510272022555484166617062105631088260696119813449644366447436598872534846580850979832601178650099141496899363670393196418007175477743648765516309913382649837974838386414136878565651889674722726065136389892239457810742553459245292262792676778198057831168948990684064561133379676373057647525384609540176967971946644966218549488782823512574646159385376040463244179399348734098197235659371514260874596743993371356801300701606682623744643537683590341089500561997422281267110257274819009159097608104700117071464786945260682965881530781683861045072592891971813726770256138999288762053982213012768727158864745635518750108190254725227956477255512935223418265477307948203363864733143043876578549024766891454036062039565338850820223877376373676196189499286778411825220021042923763243433901012416922359056269980208765680236986214758810315453729033008562995253578069569297901856495119875061816237023199257325072109203794103585978675309124078451058162024068494038498546324999738894665530210851983671499097569653874923084534061894050358513100630899376860848519190635426405432854768983016576387857938535934206079001844546888588517805160935285817647343909586649810617472772170433394954972012626877626722846568688474915548616985508252051785235214808285513448494951791928102552473240109918456569059626161425890793305233584854350093715986291834334852980736178282391736285795891821207295490351978068175027619496936822905306440331242824657090605831777620097597712276029725752409598655367115380018619479113968497856645788111951583235276666404812077885975392853169819802852033018487442407860553037603378227373621881960220616857637490712663614515679620335707351810583996758716467095915917354734615086784157970170894252572649282943797382409473386402892433211997234258729418092852154394099913961567531285836551972870614325456700584420942468596742327270336154685015379196566769253664993173435253318158270036792852439277060640357409295348996096375997511741482257941638777710988406695240515200809351611937362627418079801979342524268799780420029821534010247007546372026372523414587557694718806911463284317065108854980664885244369139318384651105271139913882429752280711036042167591592816329059768908645956822336811642423675660951860221933360724344427539377675499499139837275531611199152005062297900429420907840779437591717442546410956639866809532590480155611925218280948574986971349363526451251603353451484970280848772986773865948903084351918662850288291587830531513616829041128580242212731896108567471523942635302791341009722142280370405697152474513841951010912341517460663107848960635145515861469102528596441803809293755974955034458571669726126786906574537873416218946469217005925524732280738499556218536827827607309105427817729965700572036988230089128460495338719192385823165874528176350394351047015653463113543003638437473436677177845960002750991746709712835676319944528474600915667162012862602634003907226307687177207398654897330501782350557005663236497226996216305907106119316153733189491712820757004824951344943747001781748120898087512396559457821773203665770175883332472719367122749912113913890757515355381346130260821435212339831795336946763066397285483351545633044838957722353206926525491667944827475721626851407723084981404361862600104015042379969993647456816542989908013715574331037890819677685202410414991949703084077417177555631278459640765495760616349121538366551977910301064939760772193512615711933169329763494830044421385630177738005388150385643124534311353942748959628166382214358908804058102972948256935809638373651037808072674679998566860088875097205041709111705398180144067603871945212032356119397872110729470669932781730555876744452649815179484022453702470292432593525678913200779468009080129019885346552160446777725644871749440844110089651557039108936886399993191601223227144652322644955813976057244680782778497693949698403438794938970448740221619595614824688065459752474713229331631501384296512444469728961929912290753820833848025194531610886502900994606613358460077681311704639907131927621520021102306758081529515911265609818654896264329230497296380071913487061093062550488643221220770306188010021224849429147816339177147603172278877637056862283034085961153587913122632129791241400482865975288046214364297730300820914839311110711808248239940428520137399466831561793795000670386411694459598431527300422671026011496533447404046010106232147476915594774002247543333779271092964344792583957869151654811762952040028707786582007631025443327009344661415842143160963102711246613433509702326682654475399830514713034565277655165079891888398346748574858068382693427985147611430166775052152167860633256227591109733035040457713126840933319180220647613723857277068595326579315303568700445020202741518203441393425302331684683304979190506014297694259905265899771948401095946769273090600610416347247133368058627569075520382145080229686007887403086570326505064713449781837606009436043472789967691728809365445527152480311247823400715652708599920349857152451467178943367306918889513169125735410856620259832365018424078041638519832254791897846707785216145447302821607864853528071673449888452438214305499128490970656392400613561414342912732882268980719823182872019480453976812254143910685253147464204320272371467967021775601640123453652462066359559233389259123423862983352757036901101609894155761723137934866016740537687008773377944342100629640787676521567513499549648662177703180335148016842938588462681022091515489702291000636512320225572980943106243006803526906944398418617535243276695711224515279692395654400583333834161107111978908349496035808421424636291986212737718169204004703318809191002688666743886659813815498692858359792536812984855651390290767857913572793236505093106539706859749830242026912711869325045252610717400662045799892775482950412713652285827486589057111447503752373871925318570930586794224764073157121428100323157281070392386922786063754581902561013063434075037635061639922247562900733797003330215583053931920257826637752977719431254094477926684463712341009378359543984875606421146121833658218818780027324519977845172388919590380238209699020126615978610306132789674718046430402027126507144772363091657864178674762025285645930200636016685906321362821069184452072298605572356432719630903358746838467421519345463149885656621573250399081832641196910680402086438059294318736396739928688019289791760150044017286142765805034511679174718167109641014944494857964574284385395213854055211455138121613734465161520045125861410208650853681203475357010618047106773908892485583331214260584474056747295202507771156772444250051566705817782893168439494448434126841562324947975839155998122756006827226646954687285628603186482539131304788463715723791334659029505496176141967897870305662236081373637644935532736398090976945576537965631226894531477363591887154394294815050945995814648623184433224666835796100697871242095119427485255808260199476816069717680928585920159320479968574871494190791123207529428674932721419022335526995931525727486515163891115023474171595793152803387722387607419885601659521329065644238542532758683067108751584954508834063435533604193823883896420245982265447917764020679922241759093877329919806644445647402652512346986752018151496904261830661874551640049475532698049189047739108973551094376366112697342973256023655283488626298520254976935038090512737199129016359601870282937783936066669201934761522417945736115746642927176435489375260035714927770852709460120759581274345549178604166636235901158315378927641089218346188048867829110837446298070060286932677467694867031442050484507747084540785405858936962904417691409273801162204455699812978340608749337578876150527006918171988414718391543823072869950780287798385935707750300266845107386335169980974659579190194349826680002318577899693782441752805741447896309368964576055203104727018513635393287567629593496394331984398805262691272676214024125765450417290567879599135745782602892916651189938248317787826560490189966819462442763416625892014014384746049887480380957417946759949674639996145355898402136372595292724315454112762714315018014396023248569628278969541404216755024190877390614066743955155448331294539599002918566200482809049956604296694439655611810795002454341005413258049581827648866335216902626914287384378903043188170625635964976145071034325403927724545098026846573196400861397548468008817032408762459750801520169618519418959993389048380548219060413732329605745876960519847045826681486799427972034464578080950609278314472803581310060191849604805900282675345905547125075588863495707953286522043584513566660269820072941359887812717436850851994130588747374275647503513978537978303203728264719510686869343175202061728192398004342303664382095981156804624996782340881527410082431890920397582706567619694853335016972498539669054088452444465038850367069060513167553980716417066663599374163151374374038972834370228520166554728953935975523664551332853385240960661193678906256527591820176994697391660518614046063153356279663648890240904228032803830268896061032105089153882186762907316427142626491641848383809770636035051549364458711772751988548985535524812015253774592655870635119937264382029234538685951555005782354394078237705710321574393229739321945431322907118904179034612000372383817206242222258423759076877643925915459976504275033627657986097480043250946210204999274101791876262924044715115322351059828383992986335225329367827969757465136694087061556049076846001585358660505281171813942440833503893409951599625515691179722964472861089220705779590749105251289314862251665408779951406124941839812387271985406541908778077740852215201876295517268237345155921453179745425269377426242293867872639107026149008137258536111581305723014932383020833657420237496312514072662720275088124313445096682773019362170738100516692075654884911703681555960295382135913819522169104687880801157075140831841089466138401764090644115136692102890784212182890173217955179721788794681683197940855480409482252984249792185026108741339277961301944435045258319623673661057190796452190659320956282748611189839726968298477746580651760856811837421235217626909782183427527820333215983240673489929709036413774161346065043699830332956515325562375550106073344153885967123827759836746384066628355274061781919340094490905647967857976658297566988937499447228063028431333613146348371579973814352603130507346119556387086385272443005323809405177421308405972272836361133658421674745290181066465347680575016252638977562207187438090110349402578217540309783185296373548228825796282467256994826044345196052758212511879782725284784463035750296053402599581118924388393887615274943994397913593054697437217157288272400025732460757409845068659117749703401351449631110294467931390660149620225427452235154323941929917003205134112392670783678844635804142412131644724106221292978944723149106103615152427353671899509832219050359339249284580451640409870170851054126614546213321658473168620289404526717243744245417830009246602759287183827670663861131987438911349834548807414462747479066323444159446796790666774283426566777083847459116323068263232419514628559538954371123390916635995296623261748018736080572715482226333615060056756160764677963711771171589322680669085610232705655274410657035935343069554790744145450663871586144477493206881869916694266605691263285920555064511950043576393844019320816050437994255979399419134213871094866000910615718066506433175550770477440001277114581661706852318307340535434029905887065783212252559740213817656539771096327634729831248339309793785425566967352575981483216623711319139880324760569464889022008870181548812336326993232533238349482233123520867621214550216892008594909478753940923668044700234967128092358899467947554799435556901982330173697108166546376966669089348214858512261511288074990363075265277864127784970678480446097106667041007432785694990107775788357536442870838386337758707951325548492806052551703383051165188595738039683041096219183326409088979103542266731813967825259056910681816743273356461947432308090828808297496457740390704766068885757647233145464609457330482342176900468418133965054882505235686677710374741220790199236998817912891272380203246426385453230909881453686115961155703079183078561270484786897507329497895637290789858078113865025093360877324281239605155215423606345782316238573993633297210808070644283763447248785130145236536520685894795069422159726706666838498118197524508968089240976080068797342684125107440357537713481984650815013264524050817410722853870770108323279095357075959162549260238021231419751751848785187577555470321469570507486380450164450128470346668484660524222202504968575313593185087451782180368089262995732836983692644397188352724550483806348939774609430956772118822566030415181559429090960840356585042820448700109357534222202636521618574136110076406386977821116966336983145217830586497780592061377886977679036225514593905061201557700579704162896595008075197298178174294147325133931009012228156732064541076688566711621782033136567182422831247089397035137615188632996233112344975707646789323191639215755567897218783764859682091793050459543980114843744148989762618665517943194204164530044431134059503437969870707290145735707738050537621182624944916155162225718880804436606069193776548826640543804953948501522903856435275833220168197135724400581794089293334053078506363455255666580401435497453469869473457886449926985975278601303677567444163524441733119335777578816989480224507665402107190069608863353957133700530281058662764843144259648910272095026582530349031399025688489367719074712410600077679254906857142707087435043342769004028247048167598641039553629236705532401694378775098281768484999731017344269616291590199400707660310493839799177205091929074611936480765757829250177441078556683542273765653215828429125798335701125834435260850524891898065617562108295870120154691581038156220946088963286098363147967055018027081472451978607911752798070003137773899804846155840030111502663678976216337522885729663398353137387315330684910807453427533119780182609957990223698358303110367951556357252189144604249066451882392708845687811529598852823704535859543528704350958584506733217259301164546524628281356126377500950823446253205481030867184824820634287912500223931676170804492577339937149340464602682950864105523841609211971272836855412436309974506501846931823521704073202692509873608130123827167576995729258997619902179231453468686781356642679335171379517610938006992093984483278829258098699133101483615332449550543453558717715809199492154079687490846580338091210432792179048436221116603075855240285028190706592411230143367307673562995549195710103338165109197222173350285063295425646037867387210623537475641768699760787347464897388958206962456792849822997021631352092092814073135506916633565991329888080917856544992665340914415804052417659834097967551221132640617778957731633200994655418970076626200059690643821905584813456243992682765124901579977974836739605937817176994500442868238629145055082107141918609605447888955142655421447000391314354873656262272004719220432068360338810735755625666175031733956874989194355644965806089591275187635242133172611597918486395219180596404730927300361349741114595916538223935025445500844549022628265647903136186873095433150723261871412083940048163293885196716108025406226762728553074092966905173534906150502550298505463584778968968659168301881405429267271040243844928963696751601344612113425616024105014468060911000694229829299166845178975960339492591647577550984396869428342159817798632656263367712705623715370905028540184627895861803953937107546155331812070258304482340828968645587668626776722221937834155208807813074289120095613409547468366877550896723715116272454871310572930435506115759180079660418370164925194607026181972658304500756949930092765301131857247601091221397776183255090200166652930667469726908048728467123679452897922360982758641827424017815240821534140224211811848312207571585716432239262544686299443111325364854855072120032444557875115843282396270610401957843862356381616079149532899932911615009777002137267289054183972266401685020418812236511311219044621832078693428962971619308055125418918592715462670805787154050517603398979902967506324541387064148762589423978678153300558439926978794650006269475715407975268235871112047767320670967084907489205241832499752251699495290123807547331239882312834249071951644361646820834881258456321379608007780166279377684787829546328157642593324121760633373434852030643909367526363651399767591423942945314557829551926179190195051607094531823391110953983559918344898607759385759882198468239124984594249364795097244387328328832634466830560613090102928050852632053183119806620695206145272478778903714107905974857922322653003103933496196257726654465930915992295978642688510841778717916033868630789067419006069460463920468065433473318245262856071769557163196125875075050969949712084106722570737098337960787367652807148205013770788357449524560547013045896480029701254908531663327335758601335031410730920935287359661595852189325935384642546809532742839064402872988400336309328581233452576340895062449158956140324357081114688414584059860250929697601490970282210956465832102118734774578666139090169087437708227170969995427875254257875624573077573889953245752357944124561689482733969334944982510821178846877343435542268826067966280862857977166811612899868707629247009183100602116533794903838334937725063132035951337115871146321593324445443126280820538463841018881466855671530774600132497128111226290510257895748536655767512200862628101398331723455994399398067726249291644775143237107636771257204864949569408245543718688246491913292183610462840322825039168240127856750002988660264103953888986945007578914461373128349142111589222782232520399482344984610963751438761397258783247381532485086726315998168594982696107083926948629440239774248112835894478095760904211502239955019950978236255958232120756762723954949983474264772604411469121320215677973304602230541313610861006532728159008755695920075521532778502288299126306812711757888395648175135233598859650479300694783393143531032276662571012030742844168699355448475767486624593299665868439142577756463119573441630883614417960622417118691960441609257324328739861541653190586033527127752016815746354506231243472066468633628771006047998409010058622240984335611721620254840751823831196451789374804040898886569300848276068934908539377827279275723286010688012876718662285812897154023646398144045640406006352672210205094591784022796057289527378648271669320434287588991182384410603235917733719545564780349064297142620333573361859677394971072441666806546308430568454043235318978412392119997506325716627060582040516658499571992069473760761374843008460237452153993582398995589589265050600957658139642477445753106359501209766322052259116442789460306452916040284825055021553355522487891805084362156570079341971364432916076709301266123212560719568872081538482953642470749171672353447662495131570957133297160072397169456475825700297086911035591874879533240470259703640740639254893894744358496853669427106912582878639805237836108977893510859548538815396868284199524763703722612245292377736037555536309984529780814155627104528276197957251155987957620486903301711815679544448689595772327707169972282602968503609938023555398100993739663715776148293376143549483862142353085700227507944925051584337218540785784003426966940231113349660881510718352551503349116029468623977548884489065397486867176845166868068794633171286845595302798981351983752786321655741166527325289725924698230473811642705906981630794257639732406812618207138273459357030145265561271701512529548859930207820144500366530943376232987666583344611689002807707603921057323997798550454718458813283823790123344761789936986657624459614137249438550688133317273652365711115934318346819156272812537120450697038231517736350539471192092870832321258642915445232229166547871000561111642737766868806984919594973113875735796367224501588344379408323091390495313157588908842263194909545707044025308264887160454350229927889027446254228976537464840209225582429841898634986749683382077210865121323481469165054899968052628255690363056763574629086251009309931607779683400321132321664498723286002161673511144979196544194703473848327870204970124508464211492647917137760934217929565416695760599363630052731706942918485723211610788381728910934465326504111555524602532151189381232648955049660702157736898436675806875718562991140920365541277786547748142601413987114155622624361786483113314466274095527443944250149545088076081526333902856072241275178528992775774846067182492770867188123164815938880926896760310719751688930702372182996089632821123036341432784184851987907168247928826234452698491916771771113915698898825143630450761797129239655060186081781229221801073499335381134212144804462229586180506494576536757787343140970275605215695184971030180916644939851335838611278748344393845943606941787775451090366671353080498495961205117510910045912224704753931628215811511980682157974740340870524027816258859900457283001820009694447290575176770062018693674259826098669864890375758120385349395622671744430644018830610039978060119147183248669912441168142617341311640366099451783127405100870310094840186732105192010487307936936448638765181724122654833588586171846125631908895993882501989932787119001260084680479161067290430153894616630592172830994891936204675174685012907652848701397121988066492941905169598868925233195156702022117792612204165927116416848551138567420186062264609769783706185985994509336330040067087954005402599292226039025533833351085530006438963955409058558725945014690558626481115426165299951390036317171242606901565113037979394062852112285200454575140119642786723952464130241562869978306118898878028082404894070577268768542110896829282702065069906853076741025210876966677013312752128286570212259134031290905934109405713298320976363253757910048400223655707595203966019146716007822329737258923166460404968454698648580589575357973760990998066127928969239814215929300552688003717195779372801245977962368890188948771603062752095698402576236129805230909562549693882630598817934404328565962916656552024953374476549333839779168852111642606840251678808021571676990119305998551218506387953050915415761634900032154620974246979392278736879277050239832267448512427791959534697200199797409575217727378275766405152032262624472115153431141011225548313882812959065779850157019913017792490478198501036874658484465725395428125339883900337844931377272211717257272095811541134546865057946049421736452750410083373417595977330624372788462841065342092824698217707272354192529978644398939668024816261861859043926516348628228508973193313699411099795839911054352950233239760600888509972123392199757789539547347382214613323395537731512268482563865291741485463698396885380328439923977128385925009978293358549450412009570891076000222911416526974271138392440417297043309015102051874710848747829074556585783337740036570116002044624635201907129868775600242698435534693264159804733081659298162020047862689837468083438508332697723698223125334902012137568281975106315843311666503713790554446685664877840687150201796852974839919779987052348040114911651761179085508398485794191238737205299992063738789563177374928251647798504739020876162729439618497904443100645346253546713877661710733209447624986002321856326912128310084873189501378290827893784085703414655581057810578019379595139938932313623358049988675405680995941297510688165434960897574345288358520963599530893139924860792001898121725702000351308814141784811889661792832805831592397888879627061733860773135380327944676746568481361937135060852845294259747669714690998217528396971950379122305451183720053640021556689505679931707855129011698272900127735938900809244028280500699605959746386752272118319232967292717238058418634462459258593160438737094686531417718955045831526672966388738349420394394772371847711897293364413325327593948753975155789459697924802537903448424853758583410281782376202262876479360710737500639446823625836647555377235424056880856623665510832246751596878780502906027403569715954173137446664390376188082939887662488770393184603267977752178049991722322750509548420770374126150616006064614977261617417436580604800051749514169534351008374225703987539910973321316932087395955877809436608298957707873225415499595617570311693728327064245421245758937860377710874897350954175638566905158819150806075817580264933184246632244723718711286075110019852683368515282848166886734747739590471942783408769119592437688136176562625707405616377565111908121177599339384659938314881617054295692841138272678891889330927004959945205593055104810921409133346232441098877347565725091864045161543816491558046607974026791481183574306855653157011392266478117474251581698532164226498266592739318766733820222781542351373785858337239329821781917127687274384669291953280323269915910207397913602380745959513070120856449469574505435343595990102128619168329738963868596835633970951329401905980916026536552489078900180772021645883960456861878176884946575004913589527379194616820202145782094427186038907136886003273693885207264334280329104417009028953463679222606813196679297408421819024128444469327858794117295111150257427280319205147247612733226835414054097186932536267918635479456375269427618981974295411590153561126130409946319865668426860211561631864463641895740768841546466029805942685277082905283965170076806002067963371078219731268834430784178987415783800976647016455127668813514426089865224721691785680471876066925118587741334508012661484445372356765548049839836893118010120940677965034000222483647938899023876535214286077259810279669986925653531449607847732152937823181817181340335645942550650940128644225217056789885754523932320249800267854688909268660799412660196512624334540683552596830554677180802779922000183219213781791177425674078658651953859654890321943660208577976403675031410538706242912644040666987403238740634067651176919044842762351386495234504251173711811521139567101898223738742036569829843240053410340857129538033412049189739029185988814407838744756481509517254307670148417464152742654406374275693635211970086242821642861628093179364164570195718127742077949642353154933520669423559776925278432457926917316088557052069971095929533846124637326893990520856319357862249055542818070889775249780765001798230672782693251496378354708057171617406620767255928744941713541801026493379449678237386600028989500851627205772575134619826761498720082756925059405179923689540471582751915436276197988265844107062330348899276004865342049286573563426666311140999704487399611227692761453449056908095472914403921897216396858016780458404326548202167333808036346546335884820709341355414648467209398226453493528505318379850558978856655759170477193066663851686135936795944101551481165594791309380894734764764828646896411487713630293916009248447051030147746349316561841568109396048415933289177453212740534095709853588837212422798701885347614769537619794631731436302055134531501220001610111688532013166399552515096830335110057295303615605827005650494015137568998113101903223125150665138621245098626055030660610588764324098754184056930924482966103576765680489786878568899689527766499531557782398845153104086970465765112057804492133520228171499010738917285862026006899151384191547974252735606217920294435696166088246597641693264916808263025720885178725167754111934546567001918533720353645564525087776597042355462235567456340532605664790158562246655933155648753178967377598857596348237204747546559268632973463272453845004266767851809337960109253379437911026790195851686821447604653444831359464991508775070936913066996096552951885375968692445518309087713106037089919442732240474987982509850822741586017651069652180431987727576644544233973338954071796958034492254902240151755284381159008887699131801365643466251958535026788955951318457510416558813371638933746268032679842546141495540792553039823221803102024623584674354887453191315093009373180533256903704347238153018453948351491459421625336745834782950384427723734642440466349161838671116347916059888546174208935988274497065372753908629762987306719293555499239128571367839235265368470474578775214881866602049124691480824824884200555296051451744886632890417184314827846317006825557958169288789610480151356912965454639205995544873315109981929818286612649875384130299726074308242502002843812931825208323200729247610666124454382066736031802679003421940948693126285688805220819303545599438868823765762393532258363582285508717934550708131795402819903431472083923922788279972809756087312928009934664791949499682523389366923224826077715789984449791976913266862527885756521023949097810072636086464528060573907595139965751492736353493668103223314685850004850678073756004653607829033545769686992488003185830450738216159646947816797803228493338977710112933100874538124854765616638315330560666775019113151291660828882597388761413138780022778336635692782349782512323449255409649485556391068235807330595962377172765481031307457156990633595112217866175645446073709848658383794778646450179851566002469296718556797211157382726224586356506957105260257696411254404702157347616881559490410276059429017162297937959977946717481408452566836389641636131412724737316782009261050863553215862781014481916248135262144779247015950702764823002135422737306545260243152571329903202503082011622022025706426122535216159584564399653794938297404981159161527078416780905856913353379876754847185871083241507508655007601788259888551789078819418127791305880295278252039311772591488605516076044356375580192804399603707556117866866265889683332570527962577901372806948329095689542782797283041390996933739998896149917568897026619795549674851662041239318209824819814027888945001198723490995425989855025598620307230232298323815570427350385265279617995351457098506295169878625001193323296866929604363473708509038648731288042911586015570797659520559549129122192029236968028713142129382497528432060138011646688845049009908271850303832768928134120112506606649117566704805842191731071393220071037426823199668524782733465300484974898108137141988949120419949821593443345877301940415637369406721159654213957846331178294583877475791406428332250880580641307439526705301575286825515809509048500320323782345990587313472841723735150748157549174778282064286957237806523025585969850805442958418531996279254970754611559544602293985344558616425969410394183723559803742564666254527448761295560658588796681199157077122332086717115994542821984122667443040011895865297020578898265165315067135301766889764946520642625756733298699759354413523534684097754023057273084706916328723220607834060239474905715144576457108641986385671718767479378484828837250022226537530978090239939666449873936066184336856241000637897079963618110006052566773355125031425211507139260567473717895466792679726686914632733556961995066603371843749738955277192111430379442930709178285517817727081228024097944336794361150400070225236244609713455263493122662483313573930928886548076636483965170944015577037747996707018581163439697482110421440440122028361979948750184394143642724636427540279226885566360824435768014765573410540042818241163033999158350910671442043092652081377442472982115332079360820540384649632424710715305890350240447197947417205109808162879129424963564270646064858172361165533065267801920457766073799564957914338266925522391234600225115953046548678331109224232284574443789531361245650661437332703916407933774222086186845337011448401365551833404680218626129087305789199458310421935012624965587678963149861193399131136418385330246827082776399155117110490626593161625889200788343889928392925138615507850308320610671382130913086945346676916233879485949919131852568054126147384778174341532695025752355050823787572522517892539518599589040127207922881382206632015867686921575856925290096859393250673889314469169141515712806188265497112520201387027867661267254909274006083519476367610558751886377300565886361162641421721335266593397419130130880102913103716219719460876580186896174266146587701821214168520780003096698118485000070953062346810870095285513194577904761330301842144589362864615656345768988281025229766564994943532471940514072636113322985645777506351793951845293191752866781817657783558098959141356491031981701927908212470413197946736625479744312957700003441723460332286273115746400845011613499409839797533421571400594789363117749284169004694277168725794203562818514764996729698538970023392259564954096173279478552655825697620229793109569453910300935364389075870815074526979557751050936916933810802982821147964326042758661863290694621318901005396025209866831237327085467562808958990008957167543716253322646688156176023350746416181106494523294918241198653675370433679842545527239112267592137294846039042461391086974443342811849162596480209697939855742117631275637035450890400750285262232863565200765034411362329559621829623150332883088116594627844380139698001407817344499439252326817702420423346870279397144564341876453859264273912519512801607647235257674945940480526359875423786475803709850229396805358050649508276767311325841361883371762440022974009539106205044677294011071897886368749927334469090495772587655987201221615604955040480958286423748379533207798260503958305520435403109905568875800260029589453101250311635130857260790213687437413571745524322621065017467245367946075134559287252829881579809686740100640042286383186352560350941757421919090244666298890475594076802825422878839653973288258629129510164758167525024090908229306918730697574861046828611963224682957387899877948451487614216911374448895489225997057966863717314335161845748652075498224176330708407159618901460329867147806485835991688164515715825860239362749740333596200705384621684897725523037797832628167309010784503816495675301641706621732564170880205682944187826152653056201104501559658682136068901735954875218362464470006561333803611072227813863150720274758143397509715196905601059615227161581774164618004946075789281152142607247588053992207153437926445010250630739249133422300865140407407398336208677452818431039655472156533042982843215790600767011976455826081019219528689210635131550373997406419643067630121439626539753428800384550319137813513916400776772683834715391413036916270830658701328568772151091354322389232422506093107123866924166844428070418511480789287615871823831515442020632807770440309266073714933270672140571434039597566029184778789334333467385133877968801481707096206926185732807339359431991741432854847691681334186424109157435698211758747564815556983164468351151274773188333733616800388865390929197632396408333625689165868912084610311681790540535478150349831582818797429574901740235964425227118424285287393582406259732184915022511973376888794935782884446411673780840741946912758252908483002719613080234822177990422955713773116525580108057193722072033302925237211652063539368176547295691651565677445636848102038077884883795940929192880282096687181919340621865569856740904335640296262371343640283098004513750309254790445681392763425434363923456537991187113320345229327948270334412902899235952500406718352764977226110716033508348853392830410685204178831175869662904371230400050987918754231109367773318588083273682384691585514696879144844573380170009045940731601021088389185893874448628681028002519529837041323413169037642350183838771902454232408108032971629749564001640866346768379656229842535948958669899224228459821318311405978319834439788934197444729136156292402632676225747049290542607941424467008857079622707865611254644554287993315854049602176745975915925982173142544166859073773324772591329885337752966038478403537678382766578766568545175535771511323745085905881544249291874452703567074567810082584129326479701475445271456432803102468079680465315253678017267158363176558666593876786461348430339117413590478996524448872254336316349185629688686370374843298599976977023865671211140106445257767076342151282075463736780954942471779312020773066381645809290054756892934309100852202774378988480910380289096739966012004280597101848209944368872825923360118886564133769027922125967819022288533647028304775194793151732272466794591138666979732489843826175764758063638473196934246572937208808601774113051349349612718533312221691742425383637693940303165222496649646478005034435983794351013017464616487511190469407794465574218140953116281084853261956572399645875394550506469724295774586011545036131881741269283236761979561640387029797110245229077437895041829076481686594101366925133078888338199326710019857703540797408494809852703746714535868144516636486259461255632517064304654776965070598013080662605463239975139094729721303739818689562655783842108451087109661973402587055788637977929753004070421974570142639949925321420114470360446615350755769692907917389175233702893719542536668644203116752269003350544969233700650925842160108003025603450477649483899248042940922049946793600351784865462964719174470299337820556493198683455807872386777592901878186596788401886238635589965628992154172247482849990351208365990539652842589792155075481782012538622966231698399595815644265791777234908403904331476527876403050221959897771795725624803841786147567040282122643270235599540923623558199043286909843808114046313810485792638120419098672517514453098279369342039024330592140627946037441015677399107479208655304384144167271025000718034126362031078047071350413999737226029721979796433345844509386892022537736119257914426801428916348481374993160185651569774607249307823719683410559317270461536396527883612175454253120432563050959113811544760233509444860015295238160500997300455969906497354488749231984455052242905028796623931795903365137069728903795534384581811364772805690144430579359271647496813991595987751010154905916356403120383371320802292984760575383570835604288810117820155646840433363303189250323090909017454618854737247473742546645270459861474137847629978350169238347417015260685958031877238562101589680306202140673008755731780788009230509902859921324331091316791831022925154523124193629682053607013624414332753393957222453699828826469170170424517855574194953403988747688984646488714678831535697138879355592472078682478543899885872888310422416897752120677318251068096180176042525322771228062035458477388752816469319608272695412896164263446612622547949010118370607724524646706359596964377638369392204186728495451211416539876043775013624264248945991671932774852096985333867850798505829030872192724709894735313435732769005577028680471109657650589420660600841254806940355613177473049223803537043469092185579269026602543402118753553595852110375702725190638241827370158869160318100509087025505285005070097955841699216102120936134701796767030008173465292847911121933218691383961047327343664030402531125008210134569454244390438605349313451174668002614223864099651287866664466042692744709678962712269863032446807899751628738481320335060913707936398080469422361101850884128473120424498880571572580164880865756660675199871205278536262722901675249264684148124355345928670828449613765123513131973804079699351218369859947681131946304705197941479181467883142932092555849765597817457124475357037247119465790960557478703042220655711005843277066220550334355437454288132052924901139086752469907853067291019064177019005478978286693918647955911691536172056630867583490857312351035773907050831578893118051430110872413193023162187139226092127141115223181023078283848655128482539827979608527995624161961725065645339846874716112389628420772675001580706546071887352129601317019428443594610782996899671937484297433706340953232863640100453148916966216917984040294951134797595941648434670981124334938530329479166553354370949961367026803255881823179065052810758716049988959811038480508758283987322187690862801587028123867787193305775582674298190145187383780546477173926458149089634754466421699911262016714320401874626435102611948775824533130997979050573541660541898969588025216809348377855968974992059497912917306607495973522875408742567340906881459000571199502380337868577863097859073932426517236527090104158148236925698249882961982697101664748466611611171791262321280699207118867144726414100361205487251558094861806087875168810779628879897914522412288967346039498897202620669981358876496030893945458706671815424591163163247714293220918126501540256224571355877785723250959567060565180078162739453997687898557344486617866103817339054335357775853607763175040613824106713123465499005241833331531460001195855546702019951705034116721676500373656061296896922577962982559285944778856779843553440397765006806724140282499816033982739240695344712379100757745037436460034692489123937082753531850614505687361451959865777250398817177290905372071301892952849696612547448631169994817850392486074131462337790744048631461203630609055203767849001374219046198313859911161842492409444296381432952110784455522585348273554493092436997428114930174798647153005595103965754111973182487948473935394385358788071072629114694390195095764177906865437566731674812945871792711583308681634753071223011651540295926831768907413821624649507465162821148604295427549801826581728870056766102009824041094743308508648210960704089525531353961568536556113143505711367699890316186583638990242094074876293453591009568238205370993142265057087736936472916489226993586288911322966289224517575525774849422287855216063444995070967804288902144766337299765579398622161308290866434922741332859025949009167454270422979334987827756927163634602684471860695584201749920890928302492951270660669884544715401913371776779200768596285667598428502305411227143965125766421393227365740549230783157204328770953958565040288473663674944113390965899934522981733159010960835320758009656591922308369441788887687694921389975585396302922180526528319593708605599022548613880607572715711295200071272655233759717690033633013599716736253310701391418329680149302086780392204069443806718431023786478549268886606789496545258974275293215966370619735831383814242230260966130939873969125417008797638844875645114318531072516038155518559079920536621422040733782524077696756902545474644117055634474016480880287728594035269382109952742596790961995259702799256985972273282246797931785324384667002608411785913450540807656939408161696406696182458753906131530849233488195442571878911525401308979117769576062024140361407802494106321647605016954156103786725483874351879300385331433901759414198019220041323527711683593357144962280598969517321693954086261530374692496460829782170274021041128443939808441011189481425585797837006741304228147268440011519641101038628371923426383080970433719762391566363284801057956679340976766370284390342179604667163181700277347113435948150188177733638061857836897145573897589406975560860415164900166472741906258291318343248241120704619360100814119404984120299425457688331055694052519552745371749116655344426254027766283762021743177674901779553345611342198002817981632113719857854303391395051181432599449733013546161913410689299466491115986725326162685863158813313068903232469972394761310677498642820044461118061316627205252743595561391910204634239715101712218861706316650053641427295136433528366083139673978516106863731799436341154698933651647947213352512681902666170190147475968389007874517225189113282177192467674722664195194119522915332331160110908106965129840906353369518553843281777940791595690291543126627070535193296536919071944241667203057916773667143106096805446387044751945818166662873881573420232018791282517286064225030366810333343530732170180924173928266255234720244239581447120495895495159114726854751784501729826776073624145828592548700366975041374366428710415188003800797021165995130277610102968698485235446249929203990384711978689828746887829902513524854402475749011176081189609733575347776553441987722435382836099175920683490304800149080794191870886094531680295402433060174610064280548134060733802522929332281611298568221954832036769844069108058857194816480314147937669825716824438839785955523316186465190090288924721605953268718977873146815842844011833908641854266901428022310585414432644657956486905963537894074756076709193007210649812272058575687080273991648229729030724772906929188438788682739563254923302686691722651174242385259544262229342360771774717357330832657754340129931115817214159257451433206061673123500995054937367886533663536194514801745803383629751749493281727938497669618304905501023976363318320930926943498930225234494961440456617878966410873414221424845224344279271755984891113523923734388094426098968228510905065685149289727031167222091367409821433815614965829862854003254833641462994279241468840168856401585227779247989078662021047795280095023380633370294023499611126092938951510909697229139674351976594508588366148753847906095673195230972256818986123337635721480263710196684688281206313740159241392623671949949238480392599101271612827642136900927716520904460380982516496612718168942668755698229005515681292073027026983612760483705311786098755498782307589783590798102635620276879240328291292145146014585629869127481157451222783041408672029649861062509546855854411323227440909808494095290128918251078702504418902505923629217446148176841075410420282130428296677015459915427076075173504256732163968187230726655905715730236033330416742398079797071509541967771923781483420075504208411660229488541541819800911471546940904658083520682173400500961564591769809783193431561885394404044252222470614883916519901613162576032414897399956470755184566275020924284945187128210490854445959597356479474919646316566355326225795835847476585924112375565518729745654923077900360547199634869957610118261580505097025738163747266301445975002668463699585344479732893095512499441036463912121194504958252887994746793092749314529444782101048437585214636665417814363396368287023111474493989477257764469890152488114459204554032440784232984295920504489947098137007911120442883212798412001123001465960597177939338646996772505254113880131046117302573713243581910120912328536881495314384121549210906310619014041469140609154474526727231425782304960771448800892050032194150867858986421227977640473774002178596281026195839825529929671932961165895531508927316401425218837471126741888232709665393266700270051864523576794596554237908484422587101288931884280484973645563550734340989676335491064957883080564290407087209775963158157790874591790753872631536062665127911976696904582290374633005734217511987158956538394339032414050287972657644136339322904484562333496352094612890612278027016359820238283969872790340035170878462861015257056473821016886365605922312305236829159764102071966372840201606752196030924156040298123021882840103938834241848474990450319802552876656912216950803015897287515369429893363469183920443915122594855282957839403055528006263706913589531249554590085640605590922880172001472885044158713790867066004265957575691216981971177048661233278564308511675390244084086586514971417498967890170234621793426981303678895264892869329174356989547413200679429726940145840726930557358899322365428745513535493372853848521406337977906102613971140481974710899363820076825936556093976863623538818914886741631156929520524585244351709165420374442450960849092580807610422503678600642330210677467785902036183131239568971130841329880893406053802470563249334082987631597629060797316607529825043762051285692714457934080922080288830041753585684991857051866446274101585146673275456702571980882375996701913471642731270956530265017221410875932335799202893989302495804153782372897782047402794887195556573619884465550245990296714127000845635192137467469667523751919526385965623019207481708488220007311641347337127083938588841909160829556996262091650573420573429749454678736595772775807894681673025711834045861169088378580564722719171203379211275461744123530672029403640691914332469838169760823031556114591889753057448418265958170920292381686472783848738935658716661464367657386859388509684682327234491177629793004020814543278903718923422414420002939866318253685734190275499395609655523743945118968359474878366118185742390517289604844891855387831338801583868725331044355476553960948852313016195707527220960218105970718323252890991743488862893381001131791728577393821101498490277942332006746627420006212305570773254540664151435576782563923044872124073316122633561634174328611725275567384824703136103236380606672603099454888794719654624231216302500271815271068600497666531248050718231827714213947385506249908342568878525217659521911370551293188592689368023198034192956141759955156634653212977427100128992348776307170898999636683617222153342107959014885520174632900310757734914860006815652146939701490086564137346533176399027426347470037526775584521731797328814762299540434148926657676284069227829017640324008987401535633691663410013228380949022490701346475550101232244840215270253933313244125068712168582046350676009882997615524563704950371537512528074657635210849127354054910004125584459975619684013663177129483469086248309734599621224973249719987546846343631970041822094734773355324105700609502282766299781177707286146849334045781149278284686212373788235549130164389249118133379868510469002147347181121948812501093040660805078073068849633880575499629979106444990444729837920547612390764648657271038080482076734271256177459311650804883628952279101816751286416719579290554178272959671029823664357520229833457557168440436559847993736722906609559081266955164289574364098639703875412711638823707563024213520831728831536781197890260196426119511424486399828897390196808740862898530288192498731398885060249809365915049310567615751006033722281430676617153049241445124192768092161091284442963746300224596360485354561161094735806179732415787110220770666321218088936742837196032550004038744512844902083319870658878508315946939393078042193620875839694525931447375865470732684616694168094190786102250611609458896413940793402064153635192277808090303111282166747270052818038933060316057837717546404496219042972213592728993765062096179642388947902114491941502377999257639807638175977766759368019048834131422656730778661312983952466919230872785904898122896931536999610760572847389284818703931497118210630280582616132068037694728265867489896085002758709706656952453692258693299357763635065442357933667506772050473974587367996847792406077548460269328320973001616719743184575819336643013236919526506355195915596561983432473605133534643784616061245532422813916981110789848580753797881917281381001049732004068714435246912888289260785671616686517223593264708162797314612599670921628931207258324480072428174037158459160126485843893547829340217946786974737730319046696528447134273845195125932774341933851332702479748848163461139219319477755184145984309808744113983816406557504344956152005513258801552632655702572608837664188286873314020231921165342848192958543154727779049998635600996627159022578896263355450608793002608419708385621421349341624597767501128206716818476881737607524080088294741512484344087071375891773998131340130918421710091969278658594834413387170388504879885240427992800949033333614392948141338767216752697985965606170962659954564347214954808305670574282416053428475332215418965827114648465754777752999767905230321580163026535127199772569124749134858395880607136485685025448111036659845331147870349181087096163902330825370957645972405548469511871845800885285361983308817356094833114569519152789803903646163369764341426846091930402365645406905143718504801206890370047825456329128435509922698712909496417963102314504892059661692180527148035673396736000094867182862205221300602775147773789524674458421392437160008283119402614518205973355806333470110049451477543550579234748997424869943028768332319513487068990501574678257334281508797778833775685267062929354796489475344481438075088124901555504704731773329875381525761323616993254389048020605778279082139100664947020121749878755687453253822131370515561888028834466067824750828023040371503922661938202761274709364250209812958789033796152630431627739461446947426480183841158073296750952478530051510814198100420668894798225060773699508327792851336481094554158304147334954153115104227242613097746539100610742671281787192550414629125139571727664682635665909021432670401799458786114491473737728557580733990919008265735976835597405970594119977173998959922185609838383661910226201139584557502717411092170468018772120081658738446375989867677709589007698653914880802935535383651470551963181145747682906678054109693185119183234363590229689500371558606942013990712517251899024508360617727842245579088883760794499315730474943394614872304141105054943856260411650785945249392272718452580214683649134341880807194576513058311981289893987188450786214588977790815950977547579628012095613762268581305674000935817253915001480500990224984535976604576779663386160904718896788113051351018375338522736334959073042713874257905171936436270746721545194394987418814062977660121040490387468279731952649281193481840909181072509291449157591620449682562283963928778873131656154621861000619278000636581538877956302089473651978334415056970288330667670613010365687566892227710909205002319065127340473849588291482452094638586348284937104650502276901038985581407602397890438210197922033726770806288314955562854520183648174190098601547179449803838637959204971462362346572251387850453870177249472383343124993334021110282576534183094358086490368028710458831106777647593281311131364487778909066281254214210228230393615045598813809240152449797462175281291570273879187200323405063706403090461048760141275732067112097768709686536826237557633962136705528931529374542987881387887762893848974404577320678947573749604539154099606071518635263220598001331777568804866106436484557518953102026229534718953257243543543242866500338400491172399154953113230892547629901275139865673702715520453167910939395729675290985973348088831148814674345921579043480766777019573487908759897827250678258196774643318798635406462392560496463484023574848131534266164860493459090962215011691753138809197269547593960599802767856410817644362964247053205882295022051823571375408493049999919531426602892091879602583344775987786360373809167680699336310773439907309946011130711529422114516243845180465182625578953443484952339240294826143275139887837528755904023928088900458343085930639445174594911736983199789844925608895840155896919034914754914603645496269843550868722236304206954153447540470451961254749871726709377752136896704404842318873205120622829621458658822082941407191459167305637281867731927922804350227249722344031145533410509725655198222955391678615073153097278488122006435295578401547942574419416048994560045377123953578132838190368151546616924116415205575353143200685457557323929731523392725676939021083179313707619972556608470242812121433811600056061563736038899124126658947363725357777626515129148580017035581678961079840023206856543517249850404047173356729236079853111378843072710313295726063073362969180399530522233936050960403865392769402376883793720604391340132644097805700616265619407587744136748114910122945252143054671109090996106024283640460334102096312043491307030077139100455642372919457726708184812483759646581109876999777345678231652982075929125073032935891951525705016648630762156820176797094952757573650235211298719733070396398708216927071526154659295857617577031311472769136364902584175440674191831530609708508901974388011686959447639786313319677204718138539912552478042769485765176588537645519202227188906410255796386175253055995202038499022641205424173072642757610809060596638835173911471057422396531788358933956721668796905441536771158172667071923247145478164952463525873102899286003058340794579786574809029746996556083834955452730259901751196669663640139723483968863840696393525243973927771384752789873467471017253313408670645502840303135244083230122473434475829380538460130421094004471690434759944242103349363264671223849075072648049905390620040529419176231532791672057740314115509245478923838632736362974098960307470400433162501885976253388792809855364698157605865680430580283433784037968545210318193714740829669376017070347846567820228837964077318340253756467147966074304637044981673378176128269279827434490917378375764494745488038469054139573067148080111492412134073114688701401067656858123365717060076195082459376357964656180755951934231927866163611697356454301369075531893144589062549040134402367061924451830357245619322983869863065847446757842562022846904224668428007520059782472579804815121103852958358098295174126349119238728018364713977063863473545157203177518265931204817247915815029081175570188418827999470937591375093556004842902742462767505518961855099298318032602557417498393915552032248853167488867763735984179222467131869131771102126998225241938510509778501028635411038906785020034177934630141572349717112554555825613779971277960952053465096397663753087631054774330114348613952104743697253530660846452015063842830825483644336510019527234792198665802754093123113721279215925010674282636440063596006046295164785584178377361662151833406403338872133447027244449008222869266211177679103965888946350050294375139061947869446073990888335088023750916216305292822513532605392711001621131213199063988627141789696065294312421733519721049204720348381495253845087241840614427775086659328967404586065523377601649842888453193607781393155503134014469929147573698057438719228243842749597297782132396268681402636258251773647529242660060280100536813605837082223537237438215094964109746441969795910466926823897153065970028989763701225876002786662555529308409866274626620439070877651689212930077154403308456970409043786574265721089535247391089456289556697105595290057663283822865119358783452243800651566232884305839999180025686593917690623856555698815970335466932192340195579292611242523185918511110350783291812530545000338506698083826750108617627103989439979120995850943994367495372531035900416002139883767249430339741528519016552347541713603370229587527166094300396547681863560546010837565217968688545342783246917001378851412379937208854832809005114403542779819513846928894811613534796225101082375800623896546067262461612122216427205827821539034409571981507566058132560803386088792652592126152164935992286409966201204485648789291250458006311905399779083260008521295405588381451529413075342474662925234567588573911347655470311618731962555024177389966823785848580615172553349971367991255405449458549042337689242460158968204936571225093748566744164506073295379147640205984670507835218637296004746317630198031514629822713957165279789740734114850072785208646208444310281189368365185266106958130019557782175926883034641008715775940620426595512087563738320121090134018514389533987783827524467486388891309444962681802550764136902350634431435602782281421446534340982562137791607593036689538190436933574875026363959743423476794652043436811610952100000758620277425088162048993664462781431697126229616895836813906868106349982457389267552561682706005273051073404331935255819509616494149740810394410284986848431457318681066694249996465546477772528014151727147206380400734758839941009043699163019826501597957096452918960735621890240560910916986819780438435754169680535041427920614869657154050063545862128326866693976320202775201453178276209830581767212372429629509417967207650327492179058928062496923332561681052619748401066483991096884725069502604470325229255428488533460665457113622965513382344973087241964162643898145111472047866788998438145330872235199004939507557394132001573612742342038392319735438738225540211070272992333644114400937859980634957009696039908416185035853786395013584373864639522635019899192488863438491607053680529047501634253384217106726519739335515676648490306600046591915205676449513269208979048905564995620547265698994882314508227017210427861007770804222441771323164956504071810547402396535196133472300820308073702787031382270461091575695666712146651348493684988341649467809189053276783441660008452819779516040363559669529614012893311802826447106298036669468623969857476036888049008746472632567674469003346510142721480972246111327312502320006828907697191772293712243246415286757069712947164806073006659539921838647025028610006790813821593090896065450976674695391972758158683078242058307832524062874076484730728890333240612311245833121836210755372372768195728104258584744407836158151491933528251436115290461023954016421858340349523495042451713272407297021635639078612925050958507658322099885550068605879264362909621953553881248753469753593282023437413549912939230114634303393713555411332688159627253484493473674646219846520329534837564813171152795207778188504323905298173899693018970852055060956560355270211583778665211931566804062268627843004798726689723317204208034105552691190394939917801264697360955094430684037928202834848183693696904898076141928722493633114914465450226039975721562093855293404581806231818841028507365171286891045025623845758904704063077565691944227397338934939479391320616754017363776336231740429894834204386812642891946732967712665976298544082619052557126802701123777076098169742331283977587012442119437549977519406563117401059700196212107151018757323192960565844823922414340171135273724716144676549505259047975011125364639614949768077724714591777985449244988052211857845624999885248907295045204392471828902971670290072409619820707406234641650117593717617604640433830266577295491111083204239989937595305478352477008172429160680791918951903996795451601710391036378569502717200809056975090798078524953463996369047822927645077290264299463232867290034305678400857872226975403865047055766806099717174497082463748716938186120550606537749912195307339297238658379735500277170490308724093280431253002371140520321273071593985796251625883535507733237804217567094811741222301989436549278100676078210016719787170025658051887045458836675084483284769370492054303049210314897224611799025377172932598751141345427013456895622424963090620418368014892659992563356102940584521680400356193982472629029740403463222117199324208906670901713931455433993692203949619281892087950421366434648092103673401134739475802174406362325180397821492726232474915523596299008133346028847572451481403409699459131646477852774319255188946515669650908040121791261125159025547945545017017860533444911107914136333965087962534848678391729631828851986564078945678250657906181015734042262455750770996562627560103895688150978242852414046631865317578120387254715073988842589657616877727235536814263103658833224436488963519441907982664886957707061969190085936646219011468154959709243496091856346931955958489870453732080987758105203143963596346063541374538606057088388996812272579858469690181093053286090357702787307523867467198062967696227000532950942254389313886048447392688351066120974490756715992035841556635261514820650597671052542004739297497481368536617343881275395332548749954187871893828186730710743339317417049127188394083129383860038650320900768833980274587556205865502596818846517622991261822076426983609435540493691260360545497624202401250505632463961529988103972816977227019689403877527173954448147448086622400774950127678844731736856334447861124842130693851588248532508960415699679378092828558040199831157424729720515335425776384181149290158738774544109432585267209612908021185860785580222168450272546656622673497948737931290841368462898174388698058459542506885964116584636276894693174002730339476605226095775416248578155466080890677762927632067202348449924160671229794977985103483279351613186342568541007306706476834187229103566333068946573388613847280921052933191481610838654572601420245411362323055769224145629616163866604415052484308228439869585945695093810330277927214773339654002304168533588505838373267524391458419661412343372356895902531865073538562797183607488425191630963998070709546822531554949638211715084852903884716938569775062871404257487162477074065793628573417928093263685725900710287314451420676226494950980417933291360515589151860168188221341142854503039972000611505681082973652137446761902938715537160265863456707498947100014324574566192767360261654863082074424510996937326041876170276380748847963176274563103012267757623574984166607734319560521710467078629619501980765355153847573246203913518826050232176588657018027089551841170349513894078104629534001007907541130429389917622849922474856054272891470839299804014894151295731119105212898196789659601973514600604314532993704712457724597598415772159106457388079545412272834229421315588636933696580544474151847199029056240263360252720199528544044316370842159535702868840740467907540430313983363306911866040654974757266155947249247568302828259073878928473513206279135447468411763692163384258472088208160388357586162731199225688870149569305053837040298649891062767580602643162028183108209126974963349245114704893986044575795952652227951064633405326845693936887166284987646512241122217471239607095253818114831618543663876434491273437312069120607503965925143533108056059183819899218297127025422543055155337711194392365726045138237115801138763902168730569435598743168333885395678079128230122170601330947603010661522731605333456703053805541033543691781747002301184714489797500636754493262331387308462970335442386304851385714167136307482631437085414552609459754393415122875735637616105053709509719043766035086417982520906913469531567201997622156540713614160894424259377545393583083072943317586749030120805270497832755110780366584546077519039397718590351291313001866902823883328533690126263645045977245488018643749604768665713160101483087165995604382565222144055536091271780442151696787219949345096555289371962177967732376664117284382107043641619840836027213340003963829591320097032279016405428895812229233885862336836698583652525466280222271961827231288600999852822460483891032089555629040805681534727988564771338574776841352186396161026441858223144220692979307265060959374771374718774815584377475258921613030156759320177536493861788995548961644006819635797410789309980202482552176136378628272446286631678423447851622899142940214913265922608105524615451078442244584982372334176350830083445881535747498896540439324397793815033615746110375326650246025203266364513764597689548526028297217952283563222357377028688293977525088191156192273697167227374201106615813704721968204483072104957359259673006395810728508546660500550283148849283621409221560318298154539205360366685542614000847677573680585870578974477804995557468776423814035926612342204923051675762423405999308667388929832656866480902393991482212493665553226220799653238751960338412004883043937782539943289379477642793084524588643245140568546543129462370266552135433629259490924654834079599416966892943548446848859707128514271161138049113156228235722832689746935809417499591704607851051808725152967030674190617332426443551470861156082582598481973064713600664770390859138220931243120151979399415550986458061584937516593679887705171683627098812903021744472222317215188593603455776773859993358342690347100723098554347026623131509966998558320826849627427021922485627171402814770585122401057017737281489808715431216351136550106289919244166256157920407950105749148003042172358814900500669161228057981956783754560305695560957940622425036650575809128097969932758765164098473940308114894989159205619985563012595872145886331566645925502828448046902048643777697522120346452493521393115217854982686519960787325896163370884210376398823429698205081733930625919512788846014918570506554632610746593837408782021995403716134138203777600576072651585382267589827601277719890797652648704774057847675999430859836290082562816607153134003238875697148859684612631597318363592288053814519303251698346277843776921637788687325387940063007945445281250268893847518757074663610930447611180251735278850314807115302542893113756974973946158099993683088446450980956100860071367396417353692683373276058836027732004494323209778284684290635840577842745989018662924357983911556513744691572253998651250798454149660533481559570824099328556412851761718838691734775438220821811503439401861593355655401115990437126202030955804508899033251498029218118189104598560602749228267289776948044023504856628008533971437315377820434336313158172346584201475647329706801824642458598520295782751211018662456337156500483557530189773107426201374351622145625141112886169856267081334937843725841542900278336513394291895637298135391798402652286880512045143938040426045666148883998158196048877595311747677596435640829735051129234841437239563225759846110511749152591876088198411851342820853066369618438152356284600294600693854961419101316644432567615592806608367696665466953656519286925816216316147417029471046438103758472614096342130430221055068113733351882949503850619731583708445455726393340458367013230076897882285812350088033387679970522588735814160296100265142150144761164798246576573455184511238858179099330064511121768016280601459745514562787780762091116242266460128434811484698650992701131407825367669480631962051142979688707751161087416490914282142789783093640221454438690588062032251703533457963347845798908130440459747359078387379147732650932376267491911184072697720140924340584314766079163507276632921461742168026059031656052107505121184958629972812817413943025752545581423400147125541399425415199917463893011720449924043692024291047107818197657676115061855745612186066606814635682573960029625992681722315203584058111555702602180316366061323432629440759417633561425586200107409299255705955176336426526879869098327548864980909737061420644979147215924686849558568720623783820085464695921937237780588975706627490568600754433311439009734050578198252279260495987518722592459372305400262055632312471894399478369040272010306111075961850708795779388297886933195565578959283365797793016552381768623413444661463170638608246075222905890409368322411113088990583496736274900216365710739562975153429142610519906685832893138885721810274860187633527968165788980860307263906033916413575077792818909826914470933966382708178643012014203613245688163933559678611245348694583542064481822817583839851717538736843343671760848440068065699943061625882958744483744286440389572434953655472274852297320509819183974994257959265910423559243577256026009884535220419968912370462237361026513365288597603758789447496094501575884218904607277759284817288594315388057941823845676499527092729166603789350513530907894556075528960516080396726160481067003120306918367024611715862937659642541088765807717866242106033513537220385204280887275835197169479739092905881724144334024917160221735732489883496045923767258824918460469142124929074197592593943675129044613557502979061756007737602459219000831641200430197209218339419334530406573063354558772982755099805915385879705853442876714699046006198172498901545695042193780449490471553419495491651668496037502816774874238934241259018292379491096846676436595053725816665021821073893175699234765264663478064994077694741475862258713573954491802011051097158183038805018657102525563582925771594239786140444721162423526076350566366548613546221947113947559038117332516626752385095817472576719592409447726097242990914648486175292550169104429864111401539684628205444550990970847322669205966961305973935841972874823222386141816089016282845532375131658267676412031388373465678146366030527062758935886181621529647058641787793310110603634724446919213277642896479013867916285094515872426010823033507856047272596145989637090537638711990989111748935896736277227628019840531157636670607916076525917854218963123266980814411335427690403559788087762583782354066041760843545510822212594584875327072428403913021814431436475716649492089906018712608648242257213897597374580945335202177531136613243891397642258517441449670359110831576028142598380465904796058775431701638340662412531459882558761402668252518754572298855398987604562127439095901326388392524843937070360532409921102701122741092250491924078654868218499651360295274337891153080570463418440693313058236921646102067482445381553416240635500868680522611055516628413548231507639526214128453959943707507600576909379931436476041037435003072604558766077546063367764201293466671067493346794208899584677559647383356059437106033774411565904712287480384097905710938566633704070588414698276283290862730223403749548389500072363218799100783751472675281048506546148194609684008172286269140213613367485639760612395251527102942244967586269340580464224109508275488768004571204900763367481393532978578501623713839006138897310582573460620343924617002710197285792076511129108707811825006560350860653156079095931146685499210047663358924800080049569503696797399368022375324036927682624834237401046458661056359473577859122888637273849304870078988057956827859009959518299383125530756199364884180638564533215542080133367487944293076836009821312463721286178780293573615192269024865604486394794591209531798614467811505110193539649196350936163550306331413912329035836832553860265296204142642964770389841815239891948646525453336542581943242244203421460020686645904187602285109852744174750987700486035973621507433018840455083609584760349378877186329028197948186651767614415208609431199078137222524095605765198819468418327778067475376675752706455790513881212371514757533782559462098329346991498214868090742857181988271791155318065021925284138668189284887255649330506425463907288733977874255397245981476213669561346875159436923698085601308114782801704455127306127204264460132441148805290651891987140157713825793008346582521915144484173193363320997282054255272902640418415351449937427072281560787280925169807045418627836122859042357079372342091416758277613750202089681237548467072849493857233442106110873494132930927154172785177119051955998664250460779600417933208400124886208172010159276122508126351558961958810004557382400974758398553021907408204128641874811257156215034738596050355698631153776912051734641691920412348237947280406197445964368043442796123629830221939557311048246397968751371984223344833625505754498433789755549013776922491708919231746185990006673886072012331191633142198384399041349966539961351281819994175608388855946184440194471992386538387227107043677188182025549041824700283414621449170144488240069137264438834669442040478223686339185041503031701726215378718102638746333769275314107002877761359588992094961475903843361317509830724051104227498325718924643224815094844151714467690351662881165654688968848702488778582649678819802894035590443595495737837488530971537929591714383187367025172592340469901651167582067009934933494389920800051163298611892698789032692217956008079085560758659022323194726441569821292487769242007754543417115495445432538001975293569301092303671902395178267397522294589510831971932215861072244182225773792144637420325966346725293428130080036075142177686724545661851023290907635944525350675899909105075075273011062473992426421873591624696039579493989871351449184582210373208456335560861109982014940329670333087095797939164775087571276029935305019589719308460743658525681841138237200966520207446688447833959047934799841607363221765455282979467297809787879201228204202564025566560838127499084633393250192411707456506596064391916391319100221414432493444172896127115757192930807088611533809573617649705116124108557339918724572321520367232500199614017406506804557003258490482716744459067197469800586984329111341240017821959697139947850987556832599076682027707345555368300274161932276550998356978742083858701294813882949520200290289001542060089221455398018319089382258658567502419483601169474453913218232178111738509044410026622947814579232847257356671961902354084627279150822657480139474073672874286520705136914798425526266571355975409700036302518152038811883930775290821408490090007033583482515091093824102988664416966203828078016499916056242963006300598981215982416450530368026733829534398744318015244016795788465479900101227608665198174849959500847482146545542940888947781461187285931128352364589582386939532629429108020764774193629771539456902987245575722792565216230112874001593966830436733176868906877401577585053840011808458825864592567252067407287301245366950224201264257557214151168550341429139150353738463626778314877411806114065613891153946793657443142657114287056284104229844753521278045263092226829038248843247421602422783641774784893861606205133440192403698521017951332668460453366734335468693066574699147762305756351945800680503181704846817593323470425502835349816122860227309115815072936921636233859206150127857364932328754063710403589304101858288057856450462223241243065498676709415256987848387811228096197992132007287607227341685971450474533367554124076607525941509767111499612531363876317921780403922051996191696927150061302412820546038903096964830483742774784175126745238238455381526248629033334628335076474323397149798343707460455685781578803140277442887698240468704437065512099691531914629751581402585882933207522672642945861599383434839027789028652767294476035188802584982789873109814555504851778025226363811057764881015264019891468222288573316288451939690566382216560886580756518776309589254827863685971338351622543312986279458835005024991966985995995554773614098812043298454894778622230758229119142026932758088050022657268794923907700571942649049290508114557642956098111405732875832505199047276570725289675567944785902259043131253826227018844572290398156145789973840152884049171568064401468464577810654932601938536779386598523624905616271782632296176383146668478812342749009181661153805851119553141794089719135926854017855713346942075955748608064427453862091717262463930056796942138183827475507273003573124885038999746215403514654821877034095322544698403067157465477057871768136543471991696071714126507604645817603495032182476130287510147301758520932328333903120795641115728464375560133283311070991320158594155034744992331714189992101053435005878935680898960001602688280583453915208308264437987260914922109679841961901429562891498598556718186750424896875200015991263130695088745710302225135310395491419210512406330310393215956141634546522114043463604595334894424936156108611455383831009578005114097264021942814917922997436554087891774804577916543678355870494004415442236589011962102841588528046731271667806431632820323326526601930591373315536328082371927762455053986660756566548426953880801375882468719668839430683187395192876712347928369086520211621590502914439243372983859148293263782385900517614562123893128875703842251802580005106745921902818352922871302629985955204893897003810313198971460134309600231670929864965098720647235061487827785244839748275642780161204397423125158924797192419270950790241724236848915170564958423631352563723969356727065701780545097472228212822235213269464808101021598124530341186823587534225210047251879661825323653071366197905862398944341105229380876020279935595118893705650989196295958245142751069446080312324410157414353806943316962104643499388363466238495844628305359017354763741437952114456104760586526051614978693629508837024814858740955211253525940831680939354934212661882881390373883731123927681340272039917710979692980553643776483289519447697037371316251228912256147450608499402415714310494862538028975531442635141547155731722886430736493582600551716475323434399647777853978351242911751231420203733360796848855536836529650131867798679515030893084018651678942497340003859158105953698273724775830683323340305490197968368300916558136724787543061135153733362038382877764807881452019560800732090746446906371250487673482049748538536186285952473704823347998859657138698744605263554987122284894446615402645724334020862928439641652592917331262621065803712342329763666437878452638813953944287913015524470662522870195518870017017198093965049195948031984948657467139097344087324016724742321368990058181375624038735327891471565511683873138418368728021033505625105322150702916921902393617763598311637006633366167408865369008385049154439671731813989210963467289970539485297925324727855696072571852988888618120580177976787142771190195756791094699814833750946904321218786881851261418468221165153696629335257039514520407663875714684782276441924473202771886410979084243387845284963087326684365404583159688046310405845878175705120336114466379657622292029456920411988100082560146483555899232249459107847865752914074191408470816410083910495288407990707217188283299643922486801070498903804724049662462296710213626634987994641589506459563013379386146052654092174675989569365895868859640805513611472440148442822469858049469735123281808155728482258725502331054638363859207772469669308001033207350186400132218628797052711899716245540153638631301202190609529657467728453697554460285890676686057492701602557621559391181597672139572048571772187952287699766501923988535412041496855387385670990239827527619242517561483322946682438909580360584229675617510385204333079955742471711278102420212821139866334943882013014287597048815296438178053688245584807960306441204608281787724849539077731969749228458410500557814055587056816951051587824536106961465873060083438086196472648938337450449504012472281791357029331133530798274633921179757008831176508887940945362195910791129399660725298422202294171165072489487893847117588454455148250247342047194683162957490267483029777649240165322780621412880219184774150651288699982263727523185825964420349707602820665893761649567291994288257421824020035034673470397292509969601640984914080744695605996048740188002590884200517688872201632567758166308357920989506853851432334997260961175089347654741539643267789005545993434833471246420064497496592889161630676820645401530577173028128957213744665817219535497077544192688416306961465852399214878535410938568857949856456842600329903370578547180089449339253035783035070168299571696964980598264373853837053302149723742278277490946520094494908309780326182336704043757318660900754022216245229518688425379777422133889713020705277822026637366030097495376542088400374296655313163296438756133734660552521871067403021077936510584681534314736393277523446799162310532702841750712253841390862927488412805605085292878676693508784797822203277544880005602663947925892477916842410198122495772014239750569046528784816797086725702535067936306213462831970101644412759542265882831535904286833453182887054943587952762131216179849391184009663987216044701306200356079975238755250524932419298165238304830395515292832328502263099773430639368391022337115448653333940882680387052079873510910930294844858945198335229416934718986738424708494879064795942440125239127033817926193297178587030977422998696938611109849262803826485905051460070619745632032365043059209471331714511294766646008387624215860175915380655070958727123799857426916073026343303868957211023698599028121771826458718291975063969053085361121586526305536320270995444480871364918536693494448921655142922882422733484984266751769288356946596283755420429764021189681206435498692396135815976105505458141782293084728416552083581486501121100871784065950038731143898514151568044807603019314851093357667318907827681723041597572911610275235906021871615149339736180029843015646431188536373951161689593865148345210005225917422823717287150762847398977486825147960056863122856106333326602236647822295180081990871214578974321299208812670547590359015847308314154083157549545972807090342718444766937909356167577759627216355450683340624374328997552372805011243774261325438886416042656025522361243870245538185805106291464649240593656427695399317456585803601107084272767520830421507954588630640236480329996451347843814463520696359414790967863994449914375304177754802836696203240701984627683343518378931978516237711706560871830600875020658794347878353093544092969722773675135363842635524743009630361258189286868751408815297236182344610083376327194699505402042161844654201391319040839303718698001524986605057631068109941115443039520314832655713429484598716989231790716622429435533468247986603502802549122436658093176791225934078167707080627389881824424173539728204989603799182171335031031005744984555691933968835064620423433039918694211070561787194180111399126839502533712442564057130611904722352826079835129185159256310254313759757412283261571334108599783999962017595300128328449255198701907230184230556503263145341645775665915504796573935324504172732407160396940845683029803211276530215693563214697900536324781038526214034122119737007672183798410298256239464658706811092143707436240777072490713273744240657984298689317358165246115747701201304252558329839696846803297182483534558989559993142922158868720666815115899671478545505427572553623653387668583722747448432089460270336375743981354524057049923380697735626859287197023366714761173673123945495046121904839430564994910160894904993985858284782604469591848312827442811255633914469530057620032278516429346466368873126733456555701524134769658039623847713061215155666149031223032167348715730383880097800854664977982453071484535843477525484144789090034223857857905293559148286009985328608854946207966776429083365338471691430736098137100804979182325236426922922191328311149402322687076572890105905026040520148135519178163463188192759628904722489836880761780028458745206079224121185674062417237599912053180917389201419423934045304408920143446339788140081404929532274244040961359590956827854169858798354612305922383515341233059076802427501215099815181525954820207827714878183740933341280445817910240724441389908774717936473327396868299018235391594468457876954989224055806073398583940665345127260799366430978330802901367711208302832719262780532920763653558476430575198924950439067489297625603059081149218509768239970178476199501247401086625445930141506028720490663706291279787509762664624120602771060119041602556723138853614485850571630760714982072183430416659174337526142872469145507434778081231993170038597723341681146420667699678570309827989886542237510874449982060817170994112302349943340077419626907113539747238751832664603678916630006733416366823751084844978115490788912807802892285560545120175367948127444110807485505997344575185391952259525912063961448260634946532392646878260941355248614660440418542388574507506701410963797980914446032358103454448049163124309179690902066147615985991059021742096276373563526771213084695734479826896650601725761107928498492784443786661104565443213878536837388210012101826973188725508825279997083186833856551356510233356343849980932389270659390765107934816321970378861596915663988824018478870012138335636844580936151095275493395818097448177936451857799910950595073748734969751995840898617183219493083267768998833237537959418922547789001564510673325703649641387632360258403622009808489175529972245221619952693440582658063960151127637369271541337955466462600587765215373716484287737905777249751352209680029668055393203721557682713944341237371600798133257253640191453648105383459012266054934801483347323153911376432278733165187590639045847016094699013267365315803130930439599179801099970493347926320064447901888928642436691489189977671127015956066449368078192481889460268122985856336594614545772481471507732125283753433524101546665112936680901914792028188617848079172820788130930127339207621170003810470178977380323804056988144046514572484305322502751164042617308693012621358629535842322346923480202594476515548836133370616619522057109002854289855822607771708321760969864066482982785137764012658474984531996545468285837872414375054433120827255340764619492214441930724534272143001422696195858546915036202563457830829026978615854197859303040241130385501707355929165107197931758735467643834679170686753516832802407464822866961464427887260458713342910328280474313772080193388168066317807905883574119352325299566400178561182605519096499805787571337096378628673077443448368743458625379313766726922727670423748733537990580905182118423552063807338949348663073111586610974842954369035808679833538033643923518942808237240002901430455736405719329869865830287315753900345951502491728113785493414984273829273767236389600158576522538721279751405696144391863876886158127596395559105833868548432973188862179074929078740866820766606450714535843767873417101859041456270165137907638663208437343861089331999216853886036020171759263757598912075823534831967193361240501912128477847683347681247462727845605185371156225065013194066773542402762446482565020113435389867659201913753386732457502959908069341364225740852919387639146847584067379112971117188255264370660799084190821648707515828797778207642064542268349778896052646343440563279589261144350185961586505582855777598064560272683794561945998827697483362897249532828679494832351507422660265962598421532752218305590327547094043925717905756088842456120476917690406866955589517925210375641056972186308542371633984925681328803317515323561320064624334670928568840844877260927869818614036814383779052808721805926771990603995745580836066341387077499890372523836530496129609419115425327021744259482240322035246969889296954352734029278618036372023130419744561276944820194942245915294296511272610528990732747622293611876414520986414789091267541284286496526580491397004957186284952176689243497644928415130234899070008300916124005175739634153025728828729039876059455533546095564124111060643743551589962436876650818035709277639093207784507965385203419323776182211963611014227311804801518406366568947300068748440321102299901813751973775339286214137805046997388683623591600855748093044806058001426400655485031828905939077382133457575039549401910772481326322988829792417582500333084659230003262891525050082302229224715620255616559000310473830251073493847216493825752917649840602143158377056151028389359503181634320203734788122349063079902100984191653395404628158236305667944303892349597758394488507488597557853353404992364187080691178645120513075081813576080652352533199041755946947774101176105941532373559596467024583064982207906412608538517655404727279957003357059166754295401491441966876405273804172089767672883284692728321160047777156712045971074098600928548510970364399419381985320653931404126752122761786989878463181962814876590676221399370589809232300902678131422986919030793609556537708726620279896790517098663778895189692338639101258019232483432904656759059164881688115733480857116698656696029401574708591292734529677406170320414653527404201550369830142276342483422507541844676531910260169085368304574986884842163645030065681506732882404371519487659224124663138790760387013847157099747929212916778631908706218316304837537217497913455279390207309525131863079166809552246221161990231752201515761502666017124536323446802141771457303972060228941693888474799076787601051627597661586002842735247955862977234026067338567033485811579474308413137378146494824545840761230770336142854691719316797068271922224907426705008135373898784938270421915566349203145672272091826621552812908039320393808630553559910994962717006883161388094955822720355566216914921629141840048905890564512854899626119578773523948022635391685309557040134700422967054156330797018469126170557366497706569249923049325829558957330459330114529741624703693355435072990274808546075610643077497758113154831174105801088109046740194490169377650654774882664555166250249385160522548049255507139966742963472221624658621019467581036230858346831245187541295303735291014678056258358188502236785335978994060858917941325476180986228026933201136188718467258524501433005443677289727225547749652570657918958935279183210055619600266515109837794476712035720681477729580240425576692967524851531371641457316328413053525378017371359215203446810973448325334403048446867736858648516251246445731094998622287000295314178182966572210540703552695909099053736866429972307210849905799712420572172296693111596286201886976709541995030655928238641568953231854067222557399352902505636542310685068759612581931455261376691647500093441790084202958927039100659038174469572136805598358099482311955035554283911960842258474473458669634531421658046713571027092555187298281673107734739002643943212703566305229468920964034828328995800732581152844284074922440155009501277317197243233401012707214424222490540395322838290397169843687156477178174569059093926724531336140731118300767891908947107537636212405712418381530655543433562239940496152771662632342680963676295443578989771979209971132487558255309373959736433229793784905374502694522946025466974698148089362144031958380930751742846105401114604891926165473253772693761741885459054250600760208525200317201280407952575424828627444668605050907587087308858822574747849593663926706776365250233891035697239591641407242738761022724317935436895643820140279118587517387292112141038860934342224337898889993934104692446513406441773616713966987192935312473820381759409931509273440650928502400366993987317136573301511503592523348543720239326366258369851011413257013196428331273108767578133452102264382893894012889535442694087252152538551283257741544918971570938247930589725070295999776922720925406311316539962799182760547771788132423604694290512502407438423622069973440745923753064535924118157219128545326435813615027487919305846740385382281585685612943180723860884466399612936463004974753572485293270563289699200528324500564286737607031537448179212936683793111725075661154418119858374367717657660625269993107662133413838524986433472156861279733111123662469253195153193629769375768369293668977688663869151398370605777688753922823855917351036412862041637486180054796549053948872396092117705154075482572573516280442581621973019744943268909087105924157413139510249787914618200919936512279760282093627243982190485809935490792958383343543834050551137771098579254501679087675855053167359599173138543299825321965512656628268639965815017114466707499679884637230295268155907097832751445581927063713754166287939441578386011965307487397355733199171506373427116572778148916245729268724782691842780053941599668929878275676260241401057562169407309000195478231605875358068886297025620263263792474801612798784780250389320047434934819790033366743704215906464279725981999338752691772872231791967610492951615383618180790917399829209224902567781272589840286086986069535442402160941022797516431106321566050289840430662559072870082292522720059469984684187296234155732081645642219005468534523315919320982517392803920819809796346690713327402195119904684807422116066191349157678411208811423431596366982184705105689319488888076038339407991927687549227024009044387684167604031723814700950846354369532635051430900736116335996987074728254531332386839191737910536307002805682633133178294215241414101708017331404000187494546049792220150691466197149721988212019416040244820665451089596699978714227042163623178119886899811577510646929461245258975629147755017797864661944500302033637039443480961256089111537166379384733741037012837385697369560065591365316296869207067737489363515473284227448556319923752101512072139093405708847075416244787156106712968317758161338794427555172228247611027790753776676615497035932792536552770549586002923564406009383565853878158655519541057238096672551968537264747733083970059509641302034721797394112368723043883250541542915433066187295267720904686080715765034527617356487099657855444232445260989026103695651691336652469593319960121069050635884776439537483777017901830382743126543079792991023000166644944723405892853133454205473186302677924057997106626173862682019260686882272766078179439499128799690796264389235626892900824054850676585764903613489455181620916761830002519952336288657468676132784623873079499645162968211109453789906169364958112702606799055799344560972680562670656484294902342380290283567150930530052733306774838870489162544309946799609734351121236467141627665766578457845654837345826148451605877868596785598429968740110796423884983989550132065176306100717900990718422651832293560613132601773173722928109788466664992632416352739191175721741521994100374399857339653966778854422084855975081541712222335964975957040564605302296202143341158320548254000187420061872538338088502091537890624769796810599937917652843107640559372145389165227205361362763798479539729574767340500328787913517671967424889863086480501042293547352991118901678277673571245413127086441507656013161413099438860423211342414252786183342823160568423746857480751284955837693243881655227187584692148726495465357074066475350869880437997672705756743681727897582806071057024481331335976220867558129650715496753893687994100617909636539754218879894115811619749824234023214910147707259769154964025306663333290281897010193810062043660582068933289195295792117811176134476043032581859058913801463140136239627289154871222321831452937858923501830506678017383907115524357406283465696287053572516591941957432716051848219788456427123363650414063906585762027149295641808679731209547960955746596650760420292176785695197134335643256322048957403813258777961543299267419975788828405779915745302535070580092562199876631018825159467118737036437158563822142365540461146680078774213212264583042584558529505510834058373705288119971606189289974506054015468419073882633230062056996880418560729661820763385485474214105098280412420703344957307055413518746958768896760763462937899192628541564725255365458951198075744334073879960129035581695665503767625026779971706253040774664256676032617856850724395860561344122244730673903067499750210726458179229045317911506583608359517209858731539152176468268577522703346461255841368316409070683322480679663048095010665548271614765422345890351306884832662354505501836741687412787448757887509386570654521867104315864138338517157420258494260887948491576152969109897737616902399459132302463249197203124924447891780962327760503490363897566690933022230426339438452895279932293319385601431310705124546670476101349214299987997190065719012939709192472357393461623861253838666644628544032378037368836182745288095768610895238065094470749479787807014872306475549403894256050817891008407874066329738588504904905247614320204377965629901034301563126984718696970230790542142696628800102120568738248060397509266844006285261474817637619004175267049401896765992743207239136707997687576542530294966261810423125804060344945833708782797240832804513112721388525141267882157634390089428800609010879699943406811353194538117859194443332474896214916347168191779587603923551970664382239334699334274702547004026845004965542183201828068225879417150483448405990110504802550508504668863591201126068710750748770509795181904136290406408293427071569041409879594089334729716474659220533327259873875619007498012437931276761175760117577810815888321148251725157969612413945160249733788047751715648767624388360279161483817262820186274226106912041449629891086582704417489852727090374366171615375207976945606768252879726087944247334030824425566368281608638852126279366176136814145361230853398956673909423592857632045881548822141487904640795240661130943014677287402727997461900828942633880456582196375907637280123142100093432665078135907995118971601225764586822129515612056601392488203112016453199637500900663846569386648259071511964681574330676717398877643814880514710890212447172512574515720635462749642484076482618524564475208411168833799213029565588824023103460651488967614586516715823095827057804812761122478952573229285373780729706675703369866853441987819747676209422416032786034145388386015915755351883184502974018111797599503047343459214416769880355816059592096158687672766401062989150859413091215558854408975672628427097217489761037573682783996785036133922550383766247867521624269283108063916280769783274806210516157980968998660249932129293931668576684568051997581696436811437574726553363878681310897575830823695623709993642056604103561172620534206090490573028168790969840792082682705080572519458600409775767000811401620471662174037424733821429845403932011637442355148629692717599311593490667281120744544605724042837367296166438447224440499377452268554358095749008282440996134116905445378980959432718234430250295816495555333796003294556165118558536030809341827727919213476346689983127950762502254740539573075053611225617161599327430266944000712736298255164607231037328974972989643569798723403971022613090252533731457621527961894300376932881515057480483898563439741693394415859329323052463113019583284105983073009125647532562459661774652196445948853876648123717415161634714660374137559918760042852677278300686768918603888370017082088647605944424939080520853749613899503264505756160632280186041026105929252351996734731526088694193679890072045793084155564389073651041142992742413753573316754687243410717447134370601792330030305032075338290090700903480186325057582738420994319137927450104882511965035038772179281207377819752199899612417576340963050012756348991820774997951008393958901812069667469178590277596465173799081541468633972624440016063736781271992086355551171608874540691698457396164042429611166472661150628847483646422426321225981020483720433136226123760416317570632979603394984611418013527173759651703335010466810085001632800541520186912287012148833162264423618431294753281554814758130084162752981449631020805157605201165457501275088963045336616825832449558013202221416040464863552076577146942305257044284518905594301105578498364947730009319884550976033870828818412392183077602854111237622514073400000779745810225300467938193260145536865767189057925039078511953227919028307020621658411200636032896456612312529075126644737018850989247387044927434851330490036248869602577277165768036897330769091224557176597443699934023815500870525185528074775056753807888668124400642783111123038189712921754248459399500017547040444055318565604557948447366236354144175850171117062796956984018393095810278453954568130310014802247532863905809377069680801867559789395252120395713886212280866128353351528388461580981947738802667852843836284082589584847336338561113829155303059815159871612327814125861545276334651048269113305182436901945449930969343398027969347927484965205288072767021215309909540158955395890841654734383370942320471463732546281145432692922448598447398790321527527808256165105783599245058392305754376809525819351189354733257548582352019619893385650191609870582753029633399268823151419292080911132323147166899142231519793712357020783805476709458978814862034492057602014224475538416892668620013268240061237960367280385034978689092809243181155240892638684473612344638953360433439867940841860007142117379219343914568754730971739797993265101875737337062915069482971873780468274788190638286675412092834279016814703385365297607203565958899165291233229723424043556420696369993780195545997762852054561436011221708984215217352167722126782871997275114450286099079178410668754872491978205502860736617831885859898450462410903223995778874434872153278010634833556542361732297902418835646016381994234269053875020420879454840351417719675176634026526644035685629248703512808518934197165993926782474163438691728345571705609282195164957246720259785933732955232371720722048705737423996390810083344441229855726972904442704577260481592632860455976958044922988829347989937836580097254454645685468877341698321849504271040096729538730428824247290457707901957093513601580549024610131979427624762888720634161928205789326455150925897964290584486298980884126307549823691625992093894771922947715752348899479827138680152994125637792774473637436581591824952634393542188609884010493673315378088974151866699532238084032074962676264708153768379561010274941003873009076646986473771089733874231845274803232991223525227622561224339215027945076041290941099358239918381374694033847942698112729484925885651947232079135912569227496846531924996875647428539244273661985449962193555742350291197478698638053831819085375328300974608957242804510979707968282055311824142555482949304440767976897051903498339489378929509766180829088223145963184910683398549837787530858834330831190259260585629138398956779242227102983980860614759812118380020984356493510048153706378184360226737415334697643056396702726589874775125228802568750421092729267937770447615022219067863287771157606388667178554326198047233758522528129395782990181251656754365049748915676510854897697516591332924117107560554816637883384430785684285722059065777586311107708673901591050226400294523934262056056689617660837711703695894251307592482169174629364743380200304083795431967092844307640803621086695958470703247516224950072645384335982052021540538669768837802902021977459342578373191986928318041169332093142505395167148030033756918482536336330047656753252281592441787218777825660710483952352186555913408398193260214803700996142433632352712563971811405631903037536347371390510765368213889000998679906182396547763466028964159009207627955980240170833607686973908679357029680662429714655967263996028438657672356755170117473351131520461966679494374289267413251107767551017808294205922002325767575514748449123418065150366917628230197549441878914558196210204015836889272948372726572555517335688849481310020613383119934597943803690906321917824108090201913166686428804153061468393681755688042303406576994516009749668925318743599679207449933661220052483782479124586647001835744751550220714834561533136843562322418215197984957526298929473626640238220064204393307263524183115468994193316084544419945203733621838227677069790055435733827464610144200284427579652438300991086742606613354395942312437450407658432908202159727294389500516008482048639755738246907859808369061363083240662490387699059484023667063694538867545727177564732228110832884919650606820727600452120651068756859778367030900822079586349454498914304231623664420450838983357951014356187619762310906804635203609951709848917067449024336993578848298933272355464380387461620807169897913505080904369525602088797487289770185188097785566516687825453252370372926304107859404572609373229532647831612399055715811828873918665315998754906622579242428575828816874039899389104515048833906538995190828605121006882745403643250360340199929894034304030593697986559754513959275755856178370206890237015667930616978552282066765101916206674425272374933582032566034886045904763599277532710841786596406665430354514854194208319090506010430608744555281326576922532209848244398308794984006232680006639894504328259416701136734265852142065310874627489947904188332388367636226361093658653045407813416980813131013417003844957033730937509325081614997871078471415587566166549728003650229638678431780438468276700793982332904103291359956623616012247733059345533188651657384106990243032386593771876966052942523056315593727332896906300153933901139388262783973587328389188077603926882845372085057908217265713512830076997300556218914938569877723668636059356850083752458421867462052533190088438340535114139766376894585578077051820296397198318202364716162082473564776995604185371457114254731382430663934996454917597431197510783017808812533001498449509332893613705759599554791893740172746897893067150003750999894872167841822550158796472024276703428487037665873695714958995780676271992429639683803886189757965036622661776890900008390665521696448102315060851042857039369453650887233143340414908955846251229240587951978233089758162952437020812607811202263347838920874360052661229992667514602111865059744010666324402856236128351919792504159935250050194455218624404909433819161007230907793120878241575431902707534561177040567921114042067553545311161046266240472263529204903538769539097108452974160856366360404355443096602959872954863142882569458085655895744550379663445015304228840554021947432588212487453996899870197570721548218011881690127292551931951336763712645967167959687220828278426532813027975444551206307248352236855048140102442119420207955364085444921464893895239867937998606677441658909047051479924341983380443095399889558552740962688950385094097892397673481323780205433392680312892347163886104071381936039372715046505666721013678614261470958874835410243934121680173053723859624992199742889616527228869985285428402888381669952518384906689381039883837981923330918236340551735702688480986173627600412355101574220219163707171851386029384050706148752255080150784081810177886374117604845098884141338993312069486744100807067423088850114911927976725734499803401579787404674489176587474301794196289751689894619584853471863209010102642800095012475549884959478849477815316125291607202600416736296731682563163588945871041676983353093000714848085233808133290982576429991403154118095110143435039698269026849813989822179841485936550712223391198947612747803448723480165262589534883463440203769550025947525134272217663004597628937299484241030034751622943374932998880954944350597370779109388529145245720029661039361478126894091559711712115971097749963481892198310739456896507146120194502834011018181633156690454282367052922806162502261509173812350531369539367149584983123654040245051758736388853791749524155971252121553750650684556562756809773342625455697068870114859637917203593204245393482262065246455709865559724100072418774626614090236660281374011909601807470017371939240065072302879453694439056792661844484281271384468368341591869227496160789559076130734685091621075596461790048201685333611781242940293783601238199111807524357354753864813074196658850471442639077309662881100353073158499932248348906202025880494642395281102459914091700321018405389222134347941125510353269116284225119153076405431149039558319811642385814141830452391645094589697308065237385274243743701944353252056401881166633797782535954964410751555005184899148759496826709588784791693846153295339635183711235429022715613000343043533279248946448404176068081042339818145754441870320044506813614503401836891719027043355849962804056848579528650789346956273198420684881150735197450307354934557259717084001147673904640106621026461657779901407704339847004943923644153417244537808764290681246493830660329579153116253940004957941476786335955596091690164110170683625885439455630772676540300122743481303336227445149312894318179106102276632766337492217303343265775720502564341989844135452638134577015515684765711765071120678504247216720853627969081254980924094502080044722790751504830710105385335914218914495909438906871406039859340686019482811235845831062704376354507827857888886739695999929321150906062379144253632789773776098249786195572830948815483849511909775593221865084594988714497489161739140227351476376856167218029207586409922040042453173319320264483118269253331988024591973584714885819757494164533313514005822880617615449914449167592723993625026494230479666785380584640351700265191600302382079159569105763754243197209873884169357008375756778638716561706684632319917304584007712700185412471100765047096825211805533411990039760301701722868384595268279343656981096696044534775756153806664301646063662100612355808417075732763584019609839022629478561755116558589821581289919432181118958459972649235818800418446165251682957274960056990144417996239455544979350954070418338282329328835884972156376966751224780216416671472250731988720305399529499699774093570940768360685550086367934516600071767212874311044300352087553774121856186995674001151827705224961604886659275916570354265873618576610550854289088443706526596955978874398215461754976536885909369676930659921457437854755504380283389466770321487905252508095579593754487794402212444453936836620354384945125207131218787651407558568636371818500411993154340446405544958236197598494764868490315193207752480129706155322441719634059776141125432100969404433670516298378918794609529543353770191517508550835040413581866639930967075562621228365854956225527202896362522010498327478091856069658026174254238065792565360834986610143115843293347906628640136263039644075050103236924346528765682621234826114475198715855011248603896529729819287389458294315584807948926264325690247140192951080308521823712504936263419493356958060921205204282739395346727364290240949690459095942620050622235855748593627853454203166988155713386715526856228824878178948224061859719848429748643450674944291562311593868223012924301902591837627658029498524231332618999001015980362628911553722685648206996985963448592564281853367880894339771087692930872377792416508737976301190729534964499955660406383390120323446628139119265971754040530207510444634798753345410779829057380740786067724801671123285602023540922311820722288467413833651867259615514744734303605610728888520727877333426955580717299673471197488851850657412317283877061096791986630066742802851507145708685859404360867392318961737153039231971803267623080413561568448812232290887000376804268888071018817710882982557771839288798756098490279253989877961149656434058357692195922951510100854108634426755000809304208114533327045475167622757308165276004094051573212600828123211229018587271854662355366394557619304638701118356145412188579727447023264607078306255796931617347609243079547259384498789467815779083860127645270828424614626893782559352333414022130297126158340539212125739809100127871296413129754798091571447095924717303493373871167981005733380234072568814380970834946784592465968200659451860772273296026179944220080558454028086830784099280838975761862860427641344548028133799537062281021927870801267737698018981645018830289983321739247822303301946221577309424082072831155044573311139602851084417884090218359393375922953802009721454799819153838307484387615063601313943911575483345886234146025206146308746970869725659344138614681599790292654034850192019508501743266324360208924962763067170281104638483912812659722632976969366523281568130930334138380498163993831906777947969653205741678221175590918424901640100082125864233304512147759814766258603524771100963873082974948196556807725709184990997000837949463427030287365650306853621375655060781742262182751920168939474058655130210353865535857579258176734034968874320763067360538692281529963920878472303394849149160100883949335782601846320088271545832993719793766660224771597873931600720807835213723230178424518485020441278791161147774306462813103446094382621369180059947839007088535260319584631974235753775578332740421579086330211586442299676138937251690298556704027580919871115181502881053707406820319704015230842082143434238625842755292534900907803113292622136725050343887715144100756594331138536882309178818722922994001896893164341288714025084467595087041823870145549143478268118803065147732518453524709777073463727576901493819363803858005487774941652870200450216713294749527256693273244556137358710679377483487865324154318881333948510342954439671499759030860047634758959364786650467589686995138383650325535114777846012199140795680510859849622978916222224322467152811926361530005713143022547784737395624057879104118180839425184318427697433188776070266395934064202568430514983655384666177788230150181484868905426493658469089881752848545212605279151323182835611413068754857252095020336388326259578650926948459300477262833071698514031393735281891518464906434313741826619218426627122517455735379034667373056097815108723237968080327684792917130404484940503893940359093940772630228500465293195473428021586644220772243479087388229611691057754762898844700424069973136855532883910717040627741737231107358933772555825941573460606118692735422010945103561734078497887787299073698642716430080610556024379341245053606287628041267982526811379219060357529114062054380378346129089757408250658774907844959158762239347037859622971642765796455003588161861020850021140800406684252245124674816511117241703653571356083876241935573373303027974455742145499160219585925590531968733906041833184002676325295004271215754859044016670849996672632405097873526387890335602038136957773379544898226692154680909447969888303914341661414000775844192226779556162772506912884555002652217986666295605269284525299815513811632550093027063762228850845405673019859196356899798479980266905024239407750462966047932566128737489727459789725772938574185706221138446164612723959540543006061325466882572854426982434063383720463276086849976335617557755345683280393527920511420175756085972224572748767526178587870819878870410761432886260568139245079746408526919739821860112179454094562154491222349260524185065479893561904160067345824238576288407273168332020300464277089648493479720944026464495327670569081516304961795467837110063516005379947520566646645612873405792843223428752270543031593533019345535678196433102180050213122589473197016781588022864755846695215346864315512753422237258379211264390725914947086850854855576984695322924218950614602594488786193293723170484711451042644904382863618706640244696827887911633401055180386274249341099251909841899340983143411818522229097827727859907599180379248022278390859557163401279260611500100993217289631050378506380633035602949280671665704857349922725098409147715375241354197485485776689647552078008995460355420042090188292482383709244137947689085216547178052131218050083375668014661229622523814243058109946023080555751378191597409019340999202465090774305664752567386384630548547113667825689970771830762114287088951512117763549961937066354437935197712578104545675199914584871336899254430665466818553176358252723460441569624428184122893706746711542247121725785872052056538456190446335364429198938076553844607455262439995190029284250232462104379154229353319324130906987527793742228218582961632290782232931384470990905663095591712172777144478851424489240837963944162729684350416910478575134125511942798857506920368669195557817546295940358583372353119031957394627743858333821311807601917336625266285563872714586654823429851371055581744435602457470451662810926710730684040176947946161806013217462581936393660655181928331090116116937200544010782841938519924430611345670186993062594107128628524850790974433869919645662296923750733527227600766631855128065365394751637881081840881004775698067878635541214663860877334513895367227341263284289597656967711886552443204494086041170935073845055793683614135802603657020965531245591304193839369273332909988729203101477277379734525609342710946848400447505438489048663144895633789925739202936415192113033381937671390172448873479454253594642525280796936389605345458563135767993264347482929317937931251795367107358282743618211686043943922456974955950846564148729860065766926495730607969538071736743685982430212685811739681690250041452510710866300001198523053426343693024156512863977560886701136198007640607431190149217494353954231595738266786296602686610618370854552896292139650636024830129143171389305647255342433378029518291857322118846897875389490579727857200556654300633841393451770356541331771680205404590772200948259225790555088466012351856508833843596471929112717584042318725537724432093127772051437493360030129909384386667055030921952679936666618681580184066032515629433814229063338246941345206085629790268156754902986684476553687872368872484269683412440043849433638726962670511888430635437907488470637457899611957267227895442381922314159215082758609466793646470835778292736050878863701817223830947163547151763103069503680779809048504793097014410611823914174124585069036955318928727103126529852233341249943207564785238322063731995865537713663351299013650053502784198560858158367056181208863819276912404593050401649539151978889468565804101299336281575565233951363037990375232426422582539715080114797210813604943853659258958221393228974990767157141400782431166224581552395970026496553243841213873283191250694954663861393326431613502830724670874697218037426000324164247959442682751771779291188754402446591243410266300611469976205397545092150979562697547718577285154372068711768533932253089372238010791513516403297762729139760338108159926067076160132801334372874688603790217966573222861830633540913805777879210505434456936840694560211990089668921894748532681807100996852331048655023646351083746990979757255914982415494190403725382202084610077508479694217682485531898379525136789415746740376918138404696514144080683491108915764891043086274045415254490464314472301738927358192513023082262288930385801090083152280807566301570832533771645197827062915810006908397247479692751758413944265969979746348372290226708199612623210669234129918292199491692332636696549154015803698558695902852505486597803057193848948434316271698506847423195610752947927289916782506750971208843327410885440112185510147213677109180872033149579065521098558132820520030092580532902676631110254408324233211706406861094327076999752472934564217414196721264856067268503632405164285126190102182259598010472647580673369057401956358810029120327577533875520569784550902566241339208349062854255660129447914867939586773431165097843273390720700183877010534496070053794296314164561034029333964291090560644834543883905924440753670045705485393196683597456619058927211058999191588396188589436055392175167567455235002759722032035117876999205067169059247180358683235732074791509868998129949175475112476557895114827043018350733868936021007421832801119048046743970018762663263242328657608219155273791423351095582751723978517529746494762094635145794735275272038341318428894253783446421620949669334000831309244524778524659397111956828943507426821738087004261386464395165856517580054721275494581792473944629887848453185476246957128152302055428776969018908868770020500172970621938693915576335300007861149677705823462538018611203491423246425702464319812001153401838777960812746975078511592227489210109295742060443184265289095009726244385414281493565024411497163528763692900439642916045543929258690272845532920858287989083878410594261869525472716252627958174820651083761462758326142049957560635083598516932102695208923470596643906304236174503979911514791376195471538711706999880644792031884889356229722908101328365295052517846555930044351632648710452025669521406947724869499421982410690180967683987908915367857086243601643592887529755200975538965989899979146270418715571189423099274848824480502627051587033340997157802915432485274483024915856327868022853091230255349413513129466399517712990121855054103182569420726975763527027422179556637792583026213806897578742050507460691017333326888679264030412215900015033499564884244159579217408067716573029493157148817522448509575473326672700507541277928625658569067862429723330301241183944942814484356795016590056960015484569479036888901686551874172049308431183447435705309723547235186419125752920995396875902654860521706400290351528204433387440727633053262913898696110821094257843351210261444048061091506442453218899162184603499302950911186055307878356358825798870776955633951290796929706624572258936645918344656874542110145731526710768454759837374127830132772530783145138968554348875902221334069577396360764601841975700338994380001060718483995247391434553300373379969067023709000340209681021782323536096580509938329061502829126264995135025062866709369282711167646663908148522130480602880501071556000710541053589682128260391230153187993419276958895170784269851335576324176483811943547219824977805967913023518682576332556134047573574208326818173333470179047164975556736980947512535149151342686241314489906812891455616853641897904545797449436828484250085932372083575546672470610128511813856224515007832092519676916230301903719606001190590970236625831881213251578023898198600682488174695578661278946395963393975090832214816215332750130525725578301487217828269114092894865029635957145066133524215843995710482713910632121461216914722300130156404165996552470183538269784057434061823858955908704102723168677058442373902817690271064170527502615445597772533825031156497251085179155307259862721995003457168011951020118785987796184923396048035439960580309099768784608377102560772167110152577327362347197043599135477862023514978189777058652218842341693977619550134658622115929263615391106343941920124631924088320685782176629368666274551422022260155102704671003601450066407934712889196330642675359003127035082366428548104501821912006430796141295478407169351180958187433216032664828250759299607387139177811918631586405005929329801103480270074847114252219067498679483327073031339644122571415780423123248741803625548981929758447655850138930494828481714588080591475808221000313797517689902253193730823753390220553997488891248138962001272831011567270565409808960681096127405100109265833152057029038371487996876603975186681784691191862744308216259837236993696719580096577415395556077731749355805497257654021165625492835423478356322488092066512437436064657580236190322059438340873890167005000862377359331124905262547287117920902020020340704905428366615925374213727984328528885205877974858254048127974645824739329907819202382473438319736919672663639812598545836609391513637484832261382801062360697632191847735354000865734847642036020427810763818254076473752667781386578655980025773902354634816213121361753523883921318460516064023746922915644419316624722006569770561010337406124569500394274205527165018392046210118846041762853267406348569146521511362617505198768049525916332033951543872505237587936188066068843613526467834200279187309615053009968321877712121214510483005176157367801196981855276273546653458009786763204155831141808204709286036014665464587383153132625261540438852215894451251059933908579583920066442324658338760741882268787454980536984259673498297846131381900489708980357067262445523857230616587347499755590060284162642558973022992231034033247691063080967793303480358652043621849250374616054269963730413585242410292098749785799370381712542103680246385546633623065981517656151549903162371643584127479210429559963584335924688790158401586704456466538231044788262425248654875822644144983125186817698535919022336293347043239704663684884230128275577407444119089511876565418004171927301188093488809469100962473820980683327888516566487024561889652213723663221465437668263704631878185280504726414757575071853813472561789741447241211997128922137442830104506187734731538989218585216002882013900374869598356529177159177798031428794803576690454372986561159198433652874511864622215428598075084479599772584628034106433593724668909476553716866079911733524406705737214520545266369840968272754608441896576562744901143855331072627510596580678553612202043025650532087765221806050724714668926860607116758794700771016446872951810495586185548730483723432819947583658575211782794240858171336943552497450936889018685866357922955589943138460238050787226844301229154356402990657427109631964625011663363631376187497222559855480280544162055304269641220157943299178878234499957828881578715884500180455029351110432244636195552707027594201913940752194416206186057330456662972795329610931397377368808958015678694118670208781947202620434934465160255000923819768630898667762527635115791369058086408671679599957701019063928781461987344039042574652232578029858520337160063660586590563451771604379285110066578807760648476851247249991887853105155763718017867597423629943853220291671258096218789117752373527455721760176207621652126239235316299269815174240042556441882717684436697190243801080431615588990646137238277668158523714822287111638346709504689210548710825880426983116543950156780989398733700872141300943676058448907460171125705875697341709624943110875431161224737954176638919083347926622820743514765853414569313868898981176102682406058611607453534590595995584361633704563643538893066307766261455899421688511855028225025794745959382142529400374060963741955815819841244293879198439669684307550800048595253050040388863918347223289694216146086276667887470342179465388834209741648859799016100060264401072911223338078391120169285243644276601301748525360908679411568701289675361732080388253261164825402834715279765369488352505720053540554565851103079711088660927018822512413423077645526516264178685210617675154490391832063765552886617228554392408174862093871052355713003615166366589785809055760896956277424029487851507924020674547386747571172160188537540087330717773980049250060438051730167852841083839557333292420295461675805856754219331035324878614731735895601841801715517605492468377664777402398098350943720503604554708471058509601450187988550779915571253020978276279139062922131914767431660803195444855489581565457280729150193380715580637276291938603261085324858826263492181436505839997050800920083778500270341915287687536089240649544727035869974123171753298377767280567332299481308428934992260265238674352878162598104198397092020188072416833686847127816454498305984982907597507930058355388761480052490602436466092375635961613061483506320940094865824301492304066467243182795754425357681955774242155467713721888873254853130826404772119459868863614337882546410290091466692472850202541341672488578625014084979893664987596794291445733841445272883113891372377854078229139560570970532964355787567266304458542878137418582644144488960146084539209640932229178957235782324375372706999252331512241017332551411163299090043786384727166543881640306387541137349142079453720135083158375693133478145406114247901973598093838487667377937810391529432236446674985387247313683329850120920092513345087636064441987848723001476332939038030325626199831393836529342169009713347185987401257611212710783164720220876751243928061034945486962573626842385244068659092525655256189989870672503627507429222285995409155043117958399800861924937432951366582260137942050401615579994247075936507966337675177581567968673577342388505376379835062632406893301864709382313122583408170558210996386214655277407924373855842351218107560877212581806647375338333280299178921172857907110666288326887006852058989122052586082608504854267880113418260847125786065513744314078686745926945702607224355415373315704388933359137726867046137412399404119769000336469124026319202113204992633433757278750961769009164350104502638169212463537324143277863715970118733977470411048121416879722056586549100269431050221821457748327911711343876380377119115890978913550137913943368128471140326516604854610070960877191169439328865674261700316548178993633366807017569066017214445509752414794802968330512452214887211784599552636178187458991446123186155006543656447630246552209971920747725298291753522249414395377305900724668843247520762758605922248309941007971235410761292063665073535620036361420915709335725061888761969039416071663062796966468171833888122905822367179114174371101230505435995516793296698007395739195035489765331431534049180254236908455199895977478416222829924539432170924506942256179752351058233767930575008428868706286777039647808166303453137958327249096069835167579293102605754462666407307174221434637014216290752160294108984659357380095304486702837893409356467866249366717179273957001192752519969607734571887051517313363944143373750153747877256122244065898648781056282779534224645105173821493862046021729905501047018046626449152531022500070011284202706708408476635588425970638620806935755546695819486603998388788371913036547812444824985929403327604996539737139853091535496037002753107499023421069183438699930769430046151637618793599325473346502708369052395744392716589840948720384978382342621301314894041528744046095242094141018899011724018110430705077070591957722259186151276023876992071216083287325126473374664505624142739137739977851342965504643402800060800483443653482376346623270065668273298711951694934094862532539339521981481702956569611031400586110323474185078751168507568265651820697885444404791172551805734680493105358867555290507439913256985152721387434374198804287105097653303268257344893889300737394353835067351013679250804067052419837554123572671187289942739334285422762914258686103960114533112070724330117521242694481562039149714503040169582773869872185750443738533141506333805135218760542611648920557179378858524324194197505178192777670815286299823972580811130908551011544167409136335944371758489332299616226898153767756090504465103588330134289615757395210939311307209945692744574478277264935735003367116643992069884635624036507968079830663030523016796495713485682344801650667186298813501640673346116237355380749011779778254060263899359549861669926720149111485118412028544543262182344819087385268706638717951117674544400619853520328483586964817187719838034033878334029771059122274520525878285156940389099673388020254718339517147550749994727081507524267579394063615056559893039859783762146432209809004948450071640153002583070925138060313327869122005561860471536968906877661699570805270207588994909021804214548181325178625799725950086084963121003214987987141723501111613434131060627178342785045716195806600220275717655801603259013616279900154418322838241707496471443936709941103184991688061910691746958469215148304570837658739378172502310005042108829169458167205185039497001421682144778573844037054958563742826058206581672084335845939663400337431556779008931190501290297587160939540050048152335791644114603472599380913288654143987181461747468171062904501180495637815627896206621802534497249769850913736740437986950950617523107819983414987077388483202506357004290739304678623427099895210036927319848602670624235645906626336202199039484308072268947050863656548078599704733552491885007361634878236504474558025910810385824000264552262364688742099661087565394936645612267097777105445071440863114881896849420103341524821982815644697044948562361084077501757537766726787914414555301452730210511628283233293938669772303057262267848380683102839565313384189927697294816359517523476330642651018708267338934693603648725913639224744716227785974062831631508197791373663405823738551138808107943281877776733365512418813146042529657198118461586727930549533796187018736410256807341255397352358806110889851327073469191792081005613924742083045365541441646985880674982998032047278841278803996925706058425370879130755256342322577124026549419677891627920560305706221572568913830264205180513398836543105579791932167897067529123105945406382024368573009996187536606366058955345709894683142717588870397043571201468682233115559084702293243248160733931766624184656236079466967532278420330388766894117579513193430078112308623774718936221806916369604912896867056866772929472912537770168437334457364594247233891468760903487332931612416784486063327269867745885553101608246767180621156240319329756556526362414833410183045741486168666751762949180407344161962720065127696494346373653592280419436860821842364828653850085520908086881854553182858923054422019064803636437153359214052278513809600368148930542385778653737997927029989058630674124811443127945404301689645501715815392860163663275604391047623153425194893582098432127420174616248353681593087801119632897346506840730660914454836041428504420713065283496478753447009223013607208492449732758665887779065002039205450900030769146231480177612981615758911206126799692166501103619255279644700182223989348517808394794272088274139383729998143791718822319781395617002881973767981701677279994924920960914769630121141209610685587633002460168370641129487717487319534007438707604889429660055543975486365739103283011195182502666494825438590952696111322696167876385436714827146464399631982442672140144115542230350932203794092095975767809510204312851100718032224961001106807356251798546559754650659824415864986291663831344573407425748181628741760872471485786275736315150842678721006411902488373446629135175611908402974101226815787199832996191634349635617746521540118936605890752404707217672329453913787960137805979416670275890342916991713417830389728657171843184041276331101203853922790627690333381729113190548540753505939132269143348341232657711156188136728922342274889090087278929747755739203030214638521492080040092409816105356092315703696095776115313719055439154136841870792346939744840626277901058188351531116799516879935056353577391530695029838586095952221743763776806571417923171859172813861047516013216502308428589099123815849622453392069766951343984416476785877021188896505065853655532316105749909062506151396687026982485823625805739598387255200953705542889749433333009762871285632404051252278300707347888970468794273574560871867694146733432899536669035653288906876430436652758592523288406067678793115338057177306860761583028110513205953729072162645785578765834468179120473992312266509597679940155159849260117209378690723628931604618592771050842250787411386023826898963464277314888786103914778347892417502013487039500800900663455281510961694165554106530384645882090018481521748213334854438783414291936740477233100816610244072707091091852707122205860993184759753421846671923046191302875880631275579573110764727322513735712750557864797482153739307822684959683811336392768663791689375975134043134940534796629548410950654540186068711798171168465977495751005971271654033489097133155215594795017770668407433880023953561688977670345323544502841732416941178293679171242502040034533439482115804094403534974999441577916946348663630711011565501504193859485282946135154385740913567743337894357491001696638532586576807336258966384258512044453352426340543525024225096323753528939769943849008421757918159192714216088569866321509066193586132867111399502755896985058404102743889178759669901051728113336267654857303178022147085471517215330883144717760431237828731129148135586310418707009246238831868779929569932898366612169672067059392384033430533785912538728357587912205227826771846286773342225526206231125950757929445409490224217875625517176596077306651400545798149377560897117758476520908458623364529661664453961307092990863100752296685208269497512028122281321246550646358953636656633379923862811335616033606583135369646116319076291999583251906207887187930254755630162582155106833472523328991611059319479789999552867717901827776307695832594726487192369214151219813422752015447776949622870118232764896519797190888253873567007359875219282120698799800175364999249117577373726879494174581980619471032858054670163820555763074697097288256964767645355893203611347628489504531307982087164541881485433225872089778521989896419255675624079044393122080528806637314557927568285778492703124086344343233865913257558678640430667586287645326091203189097620979571019041473564727797701135440905724254667198017742718866667008363537106623627731955328607864841493352770318495293582509288408572942308317817047666881683548146992568608319423569413686795420470305138434893211849449294490149897177777859064705182201584914596239988239398060960117851768467562851698014885921331733340996182394990777372627152702113200919511304281949174233004440969313750986936664964939658834205167264372600385058118772183729610352017269317048604941105930731980968893039249215503624798376517239017735560974574638077353596425734640640697664307435274383812583463918227545438281345062930296959782879229305350026917559434650977741552953267201104946602371123617033406784536928737122190816633321359209258021494804022582772246629143266945662886937633285119628184922693867922978996426687897872787359877497216279801593356519999439364396513476318749873282784005246114545741243241785819159540608153570037738537227537741155596305735881836495159852906219130408391100470247888706205722779043493297386348985617106554184766251044340232777511291777018329633879826964782292959756578133919368042776022605438139955023110711974283259124629236105676140382115444526461244181406529619960461773670702172050966484270789559423360064213738294120321981952394534623419308889274864574844928571671532133634327250603867317179425333655355082620835164662038927085968066701598617620398420429900979989010742571387328334847978167447345066102582653184016335183039760240559047611156908102038217642201078068549757600358569056697812698858199117799444281689613867240554597341115636575491362290173570884812999916607051375051131165589384213444110784371477051857264863394550772729396132433185855812299442704109663946506246217097657282693289408357227713478613607091503837258341679592788202852277930814931173269022908521901958204017915908476088678630630311397855148011956728872090146994711188776238632035055236397824694602388298446015701910440381723460720461108586472742509501741188928194665707874870580576919216293199211899135280714297224776641536064354645985719849122310663431358560743895479001396720173999567804544169853429600080255127237411498299090628346894446992871323159208864934009102653192881928749770266876512400464682775081704467805903379574998880549773681087823054101761874162599773072184413591986118286212980643513727523998394358947149006151704497577935567671095622521958320094630743562926746850311850954702376497192820096854779522913832221839812364484765524871770417502221425928772734946644042074120557157380798031501884873605555085484070137196562309896931356438314988654624727765678936413783555466053709380278765575076810531897718460883878902142954379067990589320991327460623093768815338714292204092384439771238445015453191341358673609397442603549242578770720747647561100073762691748857055582322278678214309836195173605317450749914497990266100116288906814455395380388757541882842492143573571812692252786101787936968866834259446920043974782556547694072839501958290320218747858811687317750532079903996909865346153699785450623463708967255157112510165918974134315639841331462993788871846774198802285770802351934166894732436453308518622308324225639042829798963421410994467154761375942743919627412699228632457930427675084254442263101257079358243479128593542575843410828199257530242581701675098400992872602756750131652212142701362693485299147183484260873741206452332450940936013061177705981763602905328140518739071237462297860673335698511709920865034233464483964393679285119394839782984511645221665864965795088946652989207342420980695013067214100239549964322007067332280446834711955722088990181041377943051589805230437494883910223432804074193901623001185319921776277785509283277404068667302557866254153466007931898137665789587850231822921868075177743649244839978622444263763566051402435118080618476174181146029844004221479154654913965704927513335564241951285603336657521218574014093837107289376263469110972240251422695222788583270898019298425811167204591224622669522014475876844096101904083613638245304970851270342346777417052469269084920576920785391675013418143735976889220972350309591668667103416442300063305595458199821928716552664877617911263116692574500272129163284133113526726882004284524890292546540224822817593857606327905243504043879665203813421524709139557775273958678423206619448354014511349117771584497062038900959736278746327909489301020421852934425252346894632577524885098071994032819676236443849111713297050113178969509482118263132602390388464852667808625563762597471327367071412941257279930066617655105511019495496997860425495458241382995283153528133271697719307483510869052028169985597201040615950940597114376744556624281203957368150215873446209201761834588603007421352905656395561005910758059219971808218075316806458612335335948697948880839114557994243222356405194185602659593025635018850830432050440434525596591444648272103695429701744696918886474243720741604292732837915544911084727725679858848128571664522624432761933406086150568862297414937488277795742497709804366217026042773482542808442603336076382840120282431332334244186704320139320838320016916187023136302688135946654042842780839796636302295703204040343218844597932947992632399251280509817709062681583696228130363752038689278553390276115784251435165763533898431051757767761540347289315669820363939223120160994828102500837779227094845788919502646211628606240484479427494165823868921938986057392937579751161231557189515835456294474878224550838942143385868499982610891443480647524490945143104922351225752427403744349721405767745280707307443477967290423275643319662482810815002980544893881345020816466619863200598836595547299716877334309624909396846196305806548819828799670523016997902243111025160891196737729445801137389973533680744615269221093817998676222132121865641334191045805857514773472843137403378745959460790741628516999675725396667061271430747664877848319991073977267560302127815769601941446040857059847188335722105633777844850325245360927336887998757184498315547741966835818220324849712513593857483784018330019474020216966791774248841358423717684287641935051691516048629468846171228606173581802494565854952056930045839435103164240771652388953144165142045191039426778973067886933247472622717039850627998175622064778152152761476638139207609860342787848874911697927785167587134963407382294099293392885231874528785964605868849826929109455542325082457893106543412733333473768872700355713176422663066773170496988803929018324172369158583742561296251572050069266796837402940324269623371475168838931006129136219788617607138849835527258202445698918785835626488101971609448027512400165596307718547077852618373063834536357429680488011456877498367858198286544616079768186171803437635405560414471651588184191549418478578554588408639881838261981413080302449138967500615582076470932424537842630330816443450924765828279498623685327166129508475940535082471178021330864019700816788853158665225356679013461071016239515622923816694867157857043468299913638776176044507491077540208277235310236321088938316071039937716331142993725255990594980914438275011417014271680861148797473343170813146798290669824166813188698241491784231285834674400535571520411221056356637434218660125775379907910285890352035974946434515348471839815332380515006382537224102419501479665837741704105055311148057113138162580288753031654976419924127304633203912877394692278635946683363451491504876778210127644347961000988209424772952913613285798077082387339717255149640825574809718777972343871574873044533618824404797604629368730972537377727184864580929031601482876718732175782199732854804150370845671990101853356259733378920008874616635978286508122501222515076410221592793767815630768087795662719268251017490942115909722149625483902841707288277224902263972384806096401674450558519382941043272202600124938026596737812748059459112393167774477108650826349582912479496036228614204359882433926696964395216386342104645444666694225064736975523158421975687044313034465669777771576400312584078836034710803316338817912799764432560537520322669057836813462753680144156318777244358262752843350130177132720054571483437371050382410994547077459961545840552488080172726883198480954773499836876397107633391947622004373624801156115166226986646385660065642916759354752524487593873589206506791953044939285508291759806740767134347958819582032994279492867818194122883275226392698606530022232023948367187134011108733335910131171516230812974650048884691681452115951857330672639110354723201412712588354529282237622643797813091516623416967936693533078885179620283329725245757611149432449720927662535331473327835436437801088377340344680907764432328549999916103870235686590962850325608913418126641419281952044150885111186747134680054257950309371336681986749365643584235024431194208345589334661193579867494900418739499490708664243952437395281060708446895592003177051025842211792965183578322016008780238561446343792920717485589832466991441102234708774052004558198610543227349457906223345939459460456393913387794213364595082282439317009646606280674180839546726712120217955895977370338968466029480440015562971522219345612861154547126438010345970944761821214398088942205160459067479673840559948313733955641319604101835463091503434584471312822290862318463632746998432976464804456051233576129484857902287067870033783634362159593205324921353054838411694147003600635991872632965283838335378082529586469547059728856847353918216431042869162160375705726287365378867962999458238492374939901140996462417979228608298533401523641106851107555274063430145686204904865841475034981756846301549336648354379787489554240774197281735298934153038942368079019054254080684480577027758471342583874841381535100224559740113590944054900933786423293410703475735944281624567348930518011872141374170592677571831584339361778578862508131703909131247317469960285282561071913775376782038611400348008453545142609654388699951386096740636520873496974852677780010652575672121490889559864741863292813701576974731157037490797452348591711233181585712085314702378276603430904330450289497820362603906226766587221139296536147750207734213196594527084254562674836682737557530086391616133521671231942480274124235729452221276069513227941893230024952800607621121116452883202738202907752306978513488144697195833344634763024241522777256000604152584819288456909487921033393431713261101531432108733703704124920637170647472930372461001009310689316617593814681389010456059260270934047130945200354637661080687822805409683588454567444998838436940440926695430008041331096073430993990292145089168999394356316702086406705285627840468566446822855753437096009610726396356866309114141766398980630726453490883632042222238252900272512568695352667441794914240189436348175786732214410305757672735549241701567474121756786926703301220728939140204892259255089750509920057462901631746508687871853092820153988141705228085257422567920426370762973280741827428119255870780762858910416321136736983342997587403391741329066073330860510070869373289640391583697808759819113386859203920521662514626273876189783122020175589768076161645670245445746391943925789301133020016961921211442693084083524794025885351039456097845811410482349954946570773973293572218328869090642612652853171145331493536790711208713580697487932519228370549689382526501460216864839613016551900997739704600505883612259202345925420170219123922225798900217276764252364391628072670189989272305321588737661026908490653584312461746559423347599132895830649998514142947034936782476104936960137626853986682347478480039425949104304171864361826177104169518279731817542866368887820103939125879691656787786159695221339391778814361763747623916717057815788975489379469887039219713712303799965477199116297470137911868171457537608630248134778790522276932700465294318712027998198980274512452150503490272861291804399178957704433040373256181546795347061726866971595448989297566499229726301074668261580237134401166124236188557360852870710673424806344074575097861984687409224228829291894479381586460033749522162067903452523311996117311662560479327938362591593950323829429386363929502957739827270973585100201718790169912778626291494995181533048080513266065224127092208964880682250761547164114173099070338511383070794632963732762611050379166722019954354249822309498882516234987163742207446435932914485021485779674665342706709167531327327942435832557359003132348290901707565379585277351042623218713723595743419475709807953301713974169071627992957402600876018923335583007869302556326435852531371099244460703941987015867548988603689601532422295514073080357407396145810241597550103308210998026122240528408133944487100731631399396216658903202431764447666597257129867494270552892777188763238191105482292980402180083391579594935140155016525118333416315229011876255923187845412996690374335541782880648167279486294821665091646026481192303913016026958131899602760311834613750838673520470898092521218281675980586529226700225510822222319929462905778667915703556726464632819899561372478368580076416934172526177912995688741563513918208421434830356899471121666916700151618950934714685069991390805385077691800236076374699495046288209979643809150901991841624419450117852248501239010513348772626277763897121661448025410686785557234423459312367075100688634748693176681117256533631555932331139703014515578732346274221958509142674160688720708390757681740291435688161149142025547506816498435370742551827927957880481873189323815877532081620489961321753157991839639981594269811532673509468384176518209840528209989050515753459032482048546584546485059519494833759753497633354072449208863004678810880865489245055521658352022602344532717563536361569556560535110912169492905176759323001836081243241738502604880656515416441004288702651892902408011138135123708265310949665722130055793771616597148246690867454165067531422089719040588793933224651613921141474315659253015163336538522871394678406025411924316487431420622550569650364281292369778375379260940360977461659586153694928478555364516320310822156206217385033819639518224297175438300241702155807853907418666285917209688397597754489084694457219568209951864555473109078666371560263451011917819814985222717742629254196538025818799335043862446618820200770937992928907891414382782789890236891513771621409391200792051154112822568328507517367786711973308265082120740075415297982661059689330117856495740624143948919268470239738052083627478582364902349418492548383874145877861339057955403091977489931057616951905312327853358584240927028048189414156165287180402669069927874198636297656239248715610131840144596385826829924245089651037059883442578471157583242239786312269287495563573327694492446284178556761719807098348628716085110195985693764922472958174335284070034453116020121588337969612580021148925314484933313086790188561485214680090090518275403155300886038375419451848488013647936238985411942549389001026741316787985631911861901743639785229843049432584223121910274131212705663818606927967429637219086351766157786695603366852760333058787949468080477037717068543221931535024262554949115585060569582898039783291981008841974001646167332860358024463485964306745253248994536128830843140540245368724430788499480420464264823397401109817708077328696449629503865460022540494976065640853467092484127231395680286414874739677669519866176676416078047481865930404767445898817638209973379471874772063592249325585823665250412177769736128955858419531019468119896555709171846168659557916678837997956188566416673756718900329256228909283976337052251445680529828183323400124827350809395127350954187675365764600161902373818532858443579912280473294517026992221764300858691314760969495959425571312758470603995684649599329615427965768625808069935295325675022957795908894202456878445697697506853519894808623960317169399534481588839336696905073476762592604094703910227378613159018188352577895739418132514301406263497570500291627940980588231843751546028499803601490967495107783633992502955345531911671832114956309929295481976746082133764373650533566428518070116766156248973705209712062792443043087655055263193647687889629649633119508599078274625162859168339057255178907547510131906686993240990484901030311243602009877180121745840311263034800686518108291791936476615120521948601814745296631057182404190888519243092101020256115003680527676070284631740960728740589375189809763245892451661033694431632299768997079641407382766795087782565422972856011536152153152878207664520416792872355915077091388810216968600648782240278989332627595422744289813115963357638011786439643737131527277060310438426778202589422422682739545562952739933258884230968053268914310682029472523036202612665935271684634014715933166086832093379462280088187474984793161711792026966022459156015119458774829004120388263055494575230724056015476386317010016954414248086366320943382157885407809034603772791612263858866354756479667009745923070201226752806480495473450369252810980939920354748215158589474486814431332582076892724663409881720180431897826012511035035838066872520951042918870052234903809556981659324224341076816821687655293689043174986582441927849922043203937006200354224808255512591575038689229569297180828857573191953923611599388436916300984471139639981330055144454867890566282595246144115074737435073241265238392333776622031572455892076251822109309412916401276731119914568636975543892980149704259157157276191915133843439467427821231049830233500187457671800766395134484156213970744224659954195487689579041795563580058283800333107629627900228659978344442021621709613425190434593568541640597310988627835937747493046955579581386524427907599012985928977938160394376515205278234760652972740520785373869899440899471753475197650419159578222582602081974974061340742346822438293755546636702027643633682358396613697840142215342671541768138541508180996287728516265691411882140113839469080415483369836012590666102346900918744432757513102243627378345361419871088354415429859151078882291128894201292257761310040211206717914942263750531212008415860729381866684534119956324172866197890438721334996992191474837348545731280143884111010588785510989639209491320613204007341083607857598592009478420493426839497706171974609186090369554684194299964889388829858106710914342319797698226883548733114676523389207082305269150339664084374927479732477763935099527849898047048590100326443818427643758050285486503937180527833576585624821057789742975982075453130847989911078026564756859447622808989714139841892959028833279742303798682421345045509003364190971621708195309895597639025020806142734906097563183719625383285292212107751898773999571820104170792902628491951684603949475546344792732886439557817957675791920068412334152747345709616385168091161583620704664713290635048660622120107762013995040430154990463206621105681802103436294581763091330714477887078838757234882520915231442866153579359259852649730884297509849764744519440409614256451833467815097203120074030818891856020094665054680397643074165824924254348103855360883129876590107085470134647146621798920129866386067596852782389610919974231809010410283599783018307409374796033300718050523313646258363032610304026114592132202514455225552181569893713400609354559005934217681746451295461652815317693658254586101707759559483633734691408798265221411651368381298022726433745218208654471537078735161321820816763319456334317958925989407689342288033957937369771504250584090889129302480259859234820355039199288421577709367705852284140343265717312000314396504745969203230946206777745132198245610395911027676929659799897080375070952441602364652711469553580194097210976017281433809983415381594706824133714196657972958419500155660251540963682003763149864390702291728845859871694439826590083322923615743022294086385464760785898349652074465685611946588568819320582125134711931120811001797286465203114521303418346050902907679215807493192569091432163546851563614584954753041263687219741561350460745944715818016805579801061461015086115063873599688899399159848387839404061691669793035836605741354560299263608955564328021211459462851325894576886288192809899646687065232589041650649294404524206397624056142608068011910834301464088654449237668364350419956033149568163024216309637207133743378029568717264237571431402805146667310087214616262365737383635515094920399210752060799984029489221171058663139629092588631373712000947079911943543615489183481199335465729073018394890514840433453280906214891002124074839941107952565954732679070186983000767038503353869247169196408910536070492104907077039051896785187805854425400436521312958975471334194445562049468964557829004471138233904326025365583848127828131134205092126108030956280972048965458845003794927545613585493384717054791788331111661122402201980119461745846897243412540906997370428342843492018049812804259875391448680034431579036120389314653977686018139022303568711844972400635011316971449700048848555464407971549251360164389644875674050971754325563415962480321902494340231245827646722029041691493083233804430668384552478927164745324302873062746003650518875445129551631871121975183712549411354536321287682431288895817150381518754827372296654416442323440002416344432892576958720185342578008563485896316040097143435083451750733806818229410735192908824167085352019415417991424073546817523650429933465900074352273201844951398506198831362852100717593702144142062874627038266220162782886829602033058977083448278272516834338582757645988057852283881211884149545412688727586985269397788916486185941054366394016043368549854310446836147831736108164095548269884464717187366957821516923645264612174189044537022429989528769350900674282264911845141951139279478399675097124384114014849294421450728584699214495130195770953470609390539893903861678243320003368974963586543999639684120028633157770412294220096410845857592345446914834446487700542929631661632150347253248537248521084986591049556702165332515281505682589952826321249047163506560869809894980689910397208889170733895050295057259736281781901053971177599417631508168077935910071745512330707309560214549899693188151341162237706572504329935632261616929134410129896977948265782782270275232291594725884720358888502493517808511854386459091666851455403490270473064572788501220252289105281099733164479890366800086924262948289341992478287171987484968604465267431637781586203565163123259698199620778214125540927297395810168939654758002082381224824886778134582009191813888084135639833716295405510784249692063039313293996040677681279396893881174940625187224346667064745508048744691768602345112504391976564072564963781397337048901382092017505827450884962600899976300518642702448810368902287839729925915992827543350011571906436101024629340074750862444486282620388476936482704793041948433991822640839475594768761488747529736279961256062785080293201957002429091700047102984041230790374743734883574921023276095469207767788699931153971208146958730230330289454956691434957588259933944177834201536277729403873736688006311402083550426204181916662832279649723985771036601324209092340473677752372619737510835685270307611007674724651137377863779708394526394546446666393061294752950251681510826161819519659255399620572566565407366637462397518259777934952518151826329310780282120824053365744684984536997186534308515843523731448685028379865141926468604177461661269215791957046038868481196943147306129024278766316305850656177037918372648048685419618739147739984244884135315015406670921645030315639310596037843083343540086109163148320047381592545915628320769592965858627563485258140391220422520582569642479084776498254793940858633404049189699964750570017846998124094432867129913168420615591167196506116598711345756482847106040027175913782825788039818627881762166603984775535349565674855203356843222164016827361902260370588693056969857756882088150565566815677582575515575447428482162409085120300173623377274166419296732586065601311500142413806369884279487745537994039156439409866381790941162261475717244541973209000025721933104794395543377043450025436821915549530940587250676351619287093136028365854884582337852365817185615860784732142089111881216051474960529396696903168561635359463131164857455043338212084799112649373563663259863279905433837608026169620900501693685852673317663677024149305694688064045162157231647806773487528707787245141689556941577749407850428846907430057631366823830209282095135310887623974036549739220471292807291888085000134671973556771709728221834130749016671852316927490853361698059992966767548743377086404891528143864505296619456006881094632195123951662905113406489207504493160146733810389069652470350812542634169102757047812023040621100084432207385604836410105712730096353080085695093454461361002757607400610368903629542458495628162350310802556597321744788350394568105046908649618427925794006314172611093914136677340614859418846694709940394170445537785909468320407520588997161339135146019721693096771758084122221302665030835320264814613852746866398340393185448720458501963524891146076053616052831049455195507645832093681886388409089853709614441492163312219292314483480685337185334421358337828782152495464461574527025066228755477223379214996572082985700338278578576007214641615774867400166712506452234043222326563508118493275196082545260029924234896436454157876919151998430308481708007289205980579178996680223350638036480615089638032332453394270943320685554431271512696439971622720123070333855251012987637143872154337788763379277296385356364749493328941332531256696169718281477200446006377922923856325093013608125624505019521062562833133135241726109698280181459904082662892502385801926671474923087490604177989252303292803000009114220219770991736425935114674699054772382339926227532242836610374880139427800007993204833387095218709019378927369943517000620709307597572088139271428248747590046065744777325962799310853092928927445787874517329206246605477020691725968874648269334107274351395322107474696813267745844110869467634814726434769906225233188288059782323126605237413351161611898388700932436973560180559500394920191691956583730393862731023385841165012533896262602359572788515104557688981244064831327278744643614116411680683117433227028998327987958863781645498308176125265892348902752587868123554648871382838997778790018808118152455580855132182008758120065194170526882902011721296306079587452340947804017679207110060576275296032137225525750555616264658240650372701840881996060516885365301059169117686508304028870091751837194798578349141043467710932456411880229069869820420545303574294077675065657098877872265691283304136373629576808696792090064798749090453217028578790912350833142853900802347850970624129405213474395002667209489267863245699332394963550221335248682139662474589074521118653229093313462021375644574721517258723444525441550406349617208987013776634942865870415089558297242633335175779718154232581541575985322023854480918421639124050095681665973719681946179323419337435715043892174296880295652100706461581366360531244843490097191695110290696209135501287205222350712872280764982900343279830439461018484196135164525013245138300678908920513043940835027246171706148292399705100365427712309892295053250129884666317268197690810480638727181540440071913584696844813958844927501310124179124094555450901074686300463591330167594974754611829397790624766397084338667350316531811768209278450444525402709960892493400910395431714061148186641116494391191978532530010602116028328321973562405814966228525079505999525379964355485438713524995928357574546438954975611022533589551528699032937656941852508877031327939267353422018400708490875126388752961228363259409207481232825656365989029443440270740499391030469131730157521125988910032862518632971972366659991586881808926563802676215973869480393334005852447835524336663090597290259226272719662296606781260831839799865565565543099703876886455974451045946171413192107814934419370214277340688470239089717228586450064326962786599177634902302071918410537434400662002609897697202738869618170696820498931990469650642106965103282964649629521636771069673185856255512607496709664854737768711507283696231792447365755410707375487635268755677785396587551749548112691609466351420950353025674277609471657651020249762000747763975872050006073187264375831577128328034353405216596209644073677260088688245363205220834364878831809641772476490927758772675884728489654656124767724036873755962428110305570175106067260500173498645512906868078369107347699534429880427733323893220871465071112347485319395687355268222128520716417078324037224223455476351901095646483913678519708789323368331298732953371533740659956516050803917300093394910692607140363545043053858158796635156327360125570101843925607140205030960050257999812940236582751369984607568686107616739319717926604050672732514059110259272709845651417671372121629002265675459793538396802260108518796033349598319204997407721480729693905207752486037343411388175326408564508820367443213291001761438212932078010969485851229001943417134480390088187246252370432274776252642090849114217297175998603020372096154571406530772059984839200876103706636810757077043818752139942732438548071994775754069790199903991929533546526338165946903667099135504262958987151142538151846533626319121309085115234799515983978877137674241389872830640297349864844754696328376597801660919929638826294282191229896821150622401256892219366308631947447104346924925923865631974993259605906566843143734281401028050798932311970229495961686753690274930803947264764608917127631450711386228618009325676774357412819299569290636911511704594856537927965921137651419352005866457310214840513248978301319769541269901722940417010941549665552541240519553581363603647786102295621525787278187438310183404503094521940594750630937006582988336925602905061695520942930932222672837403027724297205079873114184825767866800520380449969189918481987338461102264566108355894678774474303284811710118942431435036015669644060571260758683113504561929786677121325280307460807772140434577278335153095560852617933151090777768583986679039924145121934404274546126821274044969004969079006946377764706186197970625373752809361287700057463477747362547336697408981835083665589787490822865061746326342229138839178185220183147306731425540046904269353578565313796678753283311980940396051058100608397738414034954720343964634529807127533686588455002374179515731015349420316172251652159309650357024193633591308764605186134835873775070031183467654872378250072815509702795846536822078989081378034443059578128911338661462835237877299409608553085126975362720923226097374836044785049010247172386069482882171870168589737342047763638641726046950650660026624570579822875979808602177225383924598408009268941383956688400093856676043060629145919463071194323834248379868314058189489659244377046748194618044019588257991199319922745559619411824708966936109582669517616058462850894325293704297338405383351448051847990037442070001164579986834512946795779471659333130565167583001271457728517241855821086039053025489837513392797638112129107616233646295990985321428244343106264938161933987936173024725412591911613069569443424865675768439180764890905555677080492824339308997419647136679427373835356210215712470004049770297247050003540362866886393720429314815174096940273974225292697264557296829813431392792698235996553783937790142095477569710372417137238362959007386431159323784338115526355665712511831423769875485061766091392955852673617893095723420391897527061513558974521911553858257592668020168126211575578939237969736375080668500126267683387708888074354739468815237576296464114548193947385771083836644581219256745012346584555413823439935414467409016910483034462057871106974743773214505017280721900803987141325201238129358908938702594809672523958038763904585051589029369062115818773883585676844467365910175029856177884439502583873441775992146863885468230404960862690663251592615168192760771794504866860752242350729660516606030687733170340975698116117783887290824833956685947120301241532395047776450409163803672819131559337426102475663780833828543698368304882623426003033815594798424393018235620440534822012600558784218295403971365210202237138193445228359733208709387210029280805576730562394122821527739347401580734420541348332404508014793706330617920605627877884538911358868579179946805091189027959001494368140621992906186822395894603263443624551833097635025700121063668796449424602446589579034074757830090528809034233034292241929100646988417119901333809841211854819843346586362674349909518849650665232665441200507786371471918523717756791327414707256875110831074024292235137833428615187946644925656347163046407497468439482011837966293986783193572108966939236821535123555170613992740034921563241791278681085135799710634449839536153757641589424604411869764449026921412150708259328534412097287927969217471010496311515579869874363816505264469635015159094670779579762795876460247551419005857826824615236654373530026190213367016336280275966618862594150382453530090968000607054060673262705976682646952467075519194177905130027304614880450199099612795399616117555242861823565958756171426968189061070427828581027310920257998635993169365597648398719310296087708781705808541764036967049214252966194552302033301074472849963111796507071168389866118805537684377000351197066771609389953602578511714605347620787473858440988978221635599207434230398235520917241877933689629546306875400715847546267411401107458759706309934731074212117035423969802897191360044196167280661497300820084408456487558842528785879067780298454951115851505539354301652803685023371039127173176791069488878448143970029793471335964038587950996265339296109904202291415844596975975194128962351621530944294326254323635505356778355786588589361573030400428215635455079132012311124906379720443071813589534297715006773448498841837434376613338302139137617959785846670965718731934911992182618008912531488355595168634453576079422955500098534055740363807605044840366374461376543671401847357696627009449212104059404841864525971625370487274446459683419279762584978379577883620368552575140507126588304436544224347369259093940299224623118662690768333803311968068917595177879074889907110886767094984193782996352772697934869841776191341766206051133837742909764877188849013794905313971040095897996662189215211960518868530776461377995972519983156514524897942978066594778946335176356373526991519593652535280584676122348646118227610224682546973904410777843480384502927391871681444891812911580184103671094564157787722822469529252576779492421354471731183548702745874799426746728366901257622530791995329394156308557662640168661675832637796904463391604426258944131004213274289358166112827506085453881505423827479707851088007891072985988013903115595124834399369175555890766162871462859594933837195175012182986330431183233157973087148846682582713656829203399407885926907758542608405367809791711921646867678568769600393690242175662486950450977544245802952043547223511529367591583859095179602200158682548385453715981976132624791408293121409915118333059395343166166816004830210046346588882007036718716889912249319774152104884730341777757746095819000222933671325410235554185846369261231125479795135455457239600126931705876906939711411594210817056848810466175386490411280186383445046450858307365756960079458943559127441927890548772430940371181420133241872356308500662770041707461208266628133733806498964589545739803010642127980970319649641867135808655336205663736397856907688624871709910159239714367264973317529038941856747885631395180346940073740586194151683600454234823606753065815403899228667009252512557135963161306671482149223158858816531147580857791603577987304542633979270607004725358366439805718155981944309170927218325153033410466945563446628968841858301589621419996865625898272890702104787914126678853918707838059300051981132562564389362759555935804328997625353762061853346468378240508244668686804633694900077098545756493074915991758769427551938208876908379198324406070930053604370082718237249040141282837683053584083667189553309388807422075496392931374720477339449282762586282873867491141647858584847296492539841919031139826929530138483328810242328069829574479750970041928695223979021941066571295864460253841745056631557871578969510493464253310773059853934316693453862760779572702612312603716326200697131323562594364012014906934020546459676331102120448643338920899267536630946958886477022837392504833716320205488949929350004757126786264017581562382481412810459411012801563791089066661373637552465470633558872886112173760988345772486715977443119243488627008509277194480299622680246881597379779351444463649860224007881877372942856073780404692257783095014833096079747269040288973180120761093947379794652702464037325516868989269985214828164349293840499609802954389382394921935016852443643239663551328304011912397014919395812638449700845145349778725150073577489578914597827170279914863774733435438337910854370070607085752610413364399439267099303162780832735961791747777166628837352502451825210945764181345734806254454597971129626546568018276293196348541963024702068156651561177472923051541784096137423687916826981519291289272428738096253225568714308572630031911417164503119915954735436846276653932555052736273072119197870594703555371135385736409527303906003398249326524580773305945937636763215010275310172688733310770374993888284506188299778604698696836482850798740656587464279957422425482504111282858933035793942724558539178332543187237237084181099170211268497648910659801186174157583397504428491453290416206232914437562986231635708070095985360347273889816939551741037390169666071650454354794158185651101087412594109962183484090254362533522563064086118456866401260247224586569514774999705978691078189633913821389330103950314156970015534417538409261548643368792487986071595530272759361194920907350234930431831761203579377244555056749383504999619246519610319899108002400427787816945972074517676384020224488076127136946110623367295869919096219047449088939602974187238339821077577984142590935233222015140631578823557832453137029814070230583459185809721949055114255632062876742350438881515686992896750372873843832126839093219268683417865140412844133419347893303179244316025657703459251076858887231939296811060491060785925513127594174806761023751687337192971303397584192830534240587885831555492306724521991889791579077424718995806217054679319242643054902046873044268549577745284816735198455367114887269512453861935889197931140179841597633022134105396328103326718577458122250504224200801876777901909042186072028354540791665549701635542247878927996231525950937952586098280417981692491699866895452733208488650810100734807390974706780370115880213136262946472217898808978828834565888460970864416577354933032141398853147978949349694955752962955460017775048318806636822520160132548792206621807626602692416797071903289413318934057372641042637169696499722607794146757623261376198589408035250465835545707380480773997396685818603695641057286359633712590272083815529036467626754167314985157696265286308677547610360751548297469777441320025429361234551976731681647194954318489705902632091208423953297415741211789208181891561433570720945881506035170580822062449104584410989728115750702606127279347375732009425965484407355264438280640045524288611466693428129641203022857495144687246140984368484624491948511061302553081630204410448001852596651258876395172957360951819508417623114323562982712722723018661701237936639085340765316744695010884264075332167614864864678585378712262537737584555460637941205726511034491619957951960012118551105994035009644138336731380976449337656308005526374030721038794880945083215100757725491816085010236209396347313173697565688317705346085481555036239232208866815248593503802385839573417767247651750249882762824932852451804377788469250824955508869262907171897996809480204934920835906921105627710391393663118343321337625815333911047411281127549233132131452807198273385251568850120190819198393422785554363837897202644852456629795034446533431099517631751800034585047042143925985080665689916718408950314640179278630811693121535543941424175162030966840074376306716584472192151922045840255946903171268529902110901364881640924517847870190315031719776549853312634265600306309872295192768665155530059085168226551032632299191456558649109020924527921654030552956774416965120454057572984891935364643622900145254087434981775600190103599209725327779483522169040995087208019054159317542867280819808558530802361865385275730201977482261122064337879084518372066434823292241906657736613880791531882073629504100054381440423895278311677713283857194199716340943181218428939164601459506090785052681803144905814266388763963667643262520988566843469348885941230927021683782337213488464255312497192736405785511054221453377206576853892925218442674287357148492278697155253996805463881322296725245438495992580625762824448214377470928495654357187230749197892368857845163437690995539974520200368699411174710783650022453030000800280838270141500153158175622353306926397945503893245304223149573037257211250722488036747459272069056617449784673966193356433520582885028367897006455706237636357502803238126076507349246637553872009076105738068474778258306752700623131983780452022700052883088455107625627452876050642244940757211571667847925478267515047880841286794624020189181608258659276908678737238977161156840740610373102149842257022358219544497476920509393166598520601091487154826488403021946167460663265360687180501351359514682682359376136854018130844687691202100321313332049548508001032408580660834704848877864984258409322689814132142429074960271437063486146199112124748406970110659741270782642792746902807619520902422517197382854713653500640291933563143021232909962515310906516968244263529254481848636421790820795470863030720031628613565822958088631675781759402704977867699076199897268615812941770691282582506289259497687007217776199639189323892698709609949346953580978614459743006515413705100243611917929375686932139596556177875774178453838419942235410148712970125743456390560749037807030717321546584633257935063441947335065284654092002392223716850700565713893396819078849723867946100595333027037075185156994970483869086763181793091852964288484480713710786913337339170816184119221399891288119200329781129606824945102789051967644602527155535712300623477598409157804459126166999937767400217093377689807197286970774192024742893166923489170933840074424196221638658380691429522615439256604449239198486759021315629067564326492928065863311260234842081707224290191172304940931357483533418195810083952840186406515374038784158515481473832696627273705478680271206484229766313153285788882834665407427406821163762467469576273950844513462419925162388594878800932350013111164411430481999513689631106116330274897445701226007791569978732880184054838073650310578598667873947383608223221231362250028727410301494086439708787188141436112848669109295042292157508459844417573769464100310137012557506709462275441006617136884065770799388270147003054153324627666619399793448487868690617865761068414608097703503939915260379981134252141874117162189217162197391573247382133530852118244088048452931534792249336036488655595177678493772707426470277945323046267994539268722009060443707589377043107977668486686946958081203975410959307284255872129968489657228076287920159471930310503596727530520162836316069632080092822539995667383059359953459066588009777595876750661578355406924614010864124189923178743170828060879057560428595872218935160820514554564631908807138378541491964141236278815059618515260943604463877499236391195681998358439036424994768722169033531221017096150685550687881534329858180775815624055460277476601275277431817308511585586468379168895897976553265424784573999751413945498200540319177921416903521786271793203692908203359641228135075404261072060015560797801436179314829908477390268711469225179058820718580983770897020731804100715733948507597156535650714660523486380245602959694787986411276754553472615375063831537232567438631758526872674786096953003399294662189326095679586274634596707210571315554017357823239262096033043993776786348834705717222371020043524895307367865356329022293527581403827667847879599104571263734917463659706650323105789635409034259097759563330867854838825881920051797043455699019469584241169259682947158492786983205934212118385026251051210559036160630901812898968319579396991104314579442631989919912865494369500774787683238416470806747439331879022702720305415167394694685376905186422780909206252588640081062731580427725409351253531289738145780576842589367480343609051775373844767086005309048973274729471892704610338864186004888958167795296317637263337568993419085699597261278560977252579026910369729611851011503928437225793971526023476496807346231257614257579730858373750740141967756185673532618676632489114611029134278239338167041454032473353777959874714353762855920894889261732732892772964535390086826443385489710561275164928845880143781275334743324234818334622038042728263815528825266743908571723761217994213507607892317419546211948594725755970478879387756346870278726996144581583835854680750229184786477979143752126294093673970704715192472418551728717935281516803887790563477504319525751768401634236039359120636489580644411048375711366272615410798221367427817501900131680260882260657527412906820917125005214148665010276468556681098715076150905771760067695778594951034379739307206991585637882596190875970622736942997729616401135744653022471266782139308585848550577386691150182797934209711122620389061299672280448349278003954202477941361153203400347352611697906206165092334423786098882768443262410603896406491501594817609122760309960480880298431902487656962999611924093843007142391938287481558536209308934993358016602377709856378894981310262828832496673133223954046674165605616945250422216380977565860424423425981102805302431424473179294257902977151639707677809920535159448445606176504921631561223015918781178520167978827152503206498132244093103852446388998224110075299161741736505175301515390875356276043356964939856936687189118134411226396370379513369438631025662334007548183768226456009502892958306461567677933825157682245093245832968418939050812669286830866036672123119757258647899677413075510786182523259681117630821759993553860430600668024700453246887350206785210195796416663489715079739687002522533672654428639556965875324942952422841278626585872613448879532787343802402686661954779749894642201054339694477285653958437155590677019516868577247300856885739950704086050930278828805272316037310716101727429607561104650625982834103917648668098963854572415853458083415642623599205578004021204989739207355165277201869952578648772703193076669607379157227230078009273489449517066659879981605550385340877178685634443864617036585752827247627391901532611459429673014795876342505910365053397871199787524510567462703396481951129290840661119142224000941634402664821519916964698383977304193267547442088719696492598920535893729676721759339380853645001407312915105436484922180516689273724390942527651433148216321453928911623447528807549637721599615993274040260639211800955866487120104241204181549037717109225839976548709355485883048758713037977549505684819610982649416190355125670488010149686123655539911118065232430720030712866006911537510319953826556944089725603504893781893780364787963437851615444235050047900828242261401088638110011607364156071653182635668770222139228892593032390889021353211322052693209725458039628050239052553234743921534849550196524503860926887054862870284408974406474440732189356698212549379578921732257856583794554916705442288147802319836280624021426048548204019386464832930869701242524151280284098784902882764596339257231448878479875687440291257423302300530708243957750998349866074731758056952125007594315142589684302476649296206831546223734436144356903678647608548491432858102538390210715254419873755888933356013467706984732281932567993504201688046002369565010437615609229444299152001586033747512405094186779030767391012554585223067773170617832460382450273490212581315751488674385753360275810082574278999539446164505432430246286979594756592773651298801025687790593178898548977846184170663668437530714497742256804625490892044278582028213339076656234865513462562096727442471753131592015636203167129229689786200690961142029890025064762841301636004648576882036903226387658771199872596113658554354907875810634255934007591969482383958874302892776020543114072246687854905641128415506317536466037308640380592342181311867765176143715030654374552045332506299018782738847637976360241759895638841535408213804077593371032704820684150754081048691592565767674401534474690289768450563234379085371194824435209993613242119381449307197802072295963819129745671624053038048455871201901396586207425694207325952697662103633168627602442693421836930740262734831172439940772032567064249361883022617927692656390176027465904416548870045402984149765711352613400264165444286036911375245597439562508670307063517086985035262007172872168096486501900551126962988280787970510459546847253306669884553448256326167967890307389755149092510967350270444273526601775120577711962762724235995973725377882217041561705479750363541613448603604645490701954383025282294558232044339389067078553247598847214376159665632420300117412098002415924301144763271272667330887024518123195208201877209404648040915650493706774880914221979495055276687806413952059085711240554379492771655556039716016313516605344840299119259693475113896062340263857341808077944540654125042517354058376723174050261699890821895062287293812088844958147250256754606516801336847765962370886637582742755415750251322277904007516047007578761094758353478932064535643020432293506254945766838498721442198064240538633716999372106112408167710623797384137817946213961590557938587521280317026553649360814141938427207750024328736217589098265315209245789321259613951783411562084161392856984199224413468677511904570982496969065966608534525978355103435712109618422594675465464927814396650971547464611677685649425381918106612278459760823709093740425089315327463870597177613378215103763229006510379233593034589602714413361363229649548576776019058043439522703337563838240348311920409698413417830706818992635536875794348587756452003323766260845855442964412905875666976448123520129922316487666599513384561287180807180968079205959697691017076958846429616754291862729150021603117191015319982723386600200237091854989391911064397397881984534369648607415166553746838457483471480438611149677515610533479618623864627394687949298558585377802914515701575822994126847956001734214329270133823201832204406288176089730405779919541570967878524799062769080801310820600336057811389339820031491707452608243438783825868301123290538426039024241449232196524213773736670485811425575423921826438179660836966991343699056908426826075363481566412118367877894485557082462184333035148975179796313865281909838678388158853441241435346668888388229316106185884843104136335514043422657817311294749221671613023074153809876262862423003479448618763036078546540201644398816732485015339858184543300988306998933843646954604395372264080211498430192889716689637540173294337118241303843495192068150060322858315585981428443153635689655575908261608369170969045424417576224539719336038306744061608858969505309053190078424336486431998111555235838131814485293594246133625291494341604788057040052048864713781927553105663705435058151705258184279441557793227336377680565669639284913683317380349138562765158309712020590984271060497545257482735131998154011006889767518326080118195140828363430028822160450437959353165082273500469760498339984866448245412306104500709969990071643125801865545312983924554029412510301262891126442474759695258017496829695784670539877090108637885717976791352833424309173469342146867988450166086415734988058486294811496378753594428736701989522836662242632781276483427649535769450051176857824578511458173086615842477821036271832665427784335656651065799682397971065254233636862114926928883469705601003924098573364278556888840403314341968428526302089647235777201028479219336394923378717619303817212912679226963761592431322910180547493144882806814093737451956596703236315675545453907112966140740703660074873213044350638000472431179817207165142496199007688033049301908227380204842304489170548476059902607694623839317217277973020814535614861712417044352233347868439044397348869955674706111855413514933077583986187328990829794365532386839561285837577048657856622104525083362579206023435206044866214554886674487332059557029345840030757860343197866940224008969708930554194213228789892921503767751739191726067167366432888724970022120497253449990550641529447562936061838338885684461431318004368666836661527047156104354453285533053988901540331737835392709636917289660182228127915857552131659473836073456405396441202614389280099992983552975657935257588512533088622491866460812605393012928396379148294270577813348205260725037766872794507167802561662987438526981122451120486637862974823441729099244404311881768340050770149967214243901048541828366711409988036815114321010641247854087637867418012281277037158271499341406777931861977943434946164702652745166727545222397431078226360216003261149087908124104221764831841522628350333170328998234245008584122021561646302756595690031108615016442151796780852426267175570789048355234262075843955817707401991590742894433088175668025407429158850399277755665381642614978157738580085886676093515381290462471370129503691903165286008139889474143334985009793928824958820745114737173002929893693232065875991737264182907593692013251664602312941253978556463296736387553068786320757990372934357538074474468829176418216748541575490835856947602675797210065207900490467576394985823349166790246414634706021588001344036510139967980582180151522201303801726338058108325752762099685604404588393637423512360634818763666119153901397687933790349815817530243345746012639223849544365509043972390204190419045225958780119141067862822037777478396150116614208738653030772545056020558972150534645003298680221840946746748909930174632953089382691803527234064158678070914068799292205063015151929912674974219982214927341152108648681588872617123627598751161213989588011768735524437845875106021802007185027330477289050362575860145875220568122608084835512039835310051591100218859402791289756281054082077506636083049850190974627872853432365468818626093211870645247004520113279543010145094576001252740990502231368451121066811730815787094808652616751919626700338330319713494542888973495236018407173625940303223688909637881420593071281567446672096472554133269897063826985568055931597297157737868204460798702567534279543840016342357695605048992871296774651888554403769896925409045631066117289169192810101908001335197052197569166469228967057594170570342367331739454516961145455161346142650478863191484829558232035276863725062436794975666087709405793979073145349934083525911879650328748379336405175841933061240667238811262882473103045583813964287539680113595889092003669342627027024929738982755816831609159597271780587031694905490985179797945128630681649863167010808211746953707159861571346138362102564363515161832274684355255579773201139870745467148309749950164891268357105998261885925776011187394780770968041200883503664694415695490830961496795030163371019375583747499311273585813417729941266287750200678402586347619769386954768422452782361908431187731281235446600429380391789867781729260641200373852656283899221021616547811188820979446995513219418896139223423802566002091041593047117641701252801585160119566561185797827743132447390122289880049349412078146501425942344830694538957674188747106391217534308908169290832903128605591993995489637948478241308444470045417258739961464374566364063185759103188848759353828498504705604830136574776185374908257627289218767991279718948604370971468845365760249796421280927098175923736853150119522182669439042720409520897839654603738218192540398219681178389250907571219514044340828805525825935225417315303343974638182915615980695778062965033763935953788203246801789717909075996244578338202358693560443503160397964886154746420373474484982472940864830688880333226564641116867889586841316864874805809596167880195564318679163010955086144817755014475931123189966543372721374587017790726113286433684582700279801689194910827158984481997443371986004597984441892368314138043449701000717247564728910610200644942392155637705530621688734645136943759000291199684502894399349826929608902306136544377714488697291619752310433940657855331536168425943497480887244510836277731006318371255962953940955995168489865644271059506202131482006522447807033247194900997404964087736544037924308462031784046949477569388798682355304433263145344089779505273606659594507201239123175565663739298962660952201859515294598304887626091008230255558626172574884910160996062355082340536681792912062376738828246415248200937782988228363700939562225941885947267482254043354441092065607695116008597699434262299873888046541199765197700003016598091093201235941662817352678970392168607472419731196889633082165444728283148008486956503052554255932731608248874576199152960707008855921730964820299499972705905689067282327316229240704494010341341203912034578414692680421552315680043583639894456781581565779121851378969294876680907715782849549917642625096456932480000844028921711013108378157302299314709106494243214753384164552365987670286743633939337078998973219165023583274743551506969574064834606736101472010454738684326074225405582846885173021042919698758860953943361475123231563564300217506011588406896148013760582907030830941134502796287804892819512977558282617152435512990049631238127819815685013437746030660258280523626030028950827867005385644332405491406387934635785252817174314585663895038164617026985893080363439367288702066616261085855524786322774258309243978775204108986160176128764237690234497867637637227588703446460308013478858034175530640857262425373819476070181701761039348662918197581947334065737816302347270175564909444322222885209970327502430176743036675390310124045790513037474947551624029847830147141401371914216137824738988285480257274010998170929692231053238253072832096726602815049363492991597876540250530498852090386956699283008573248389161932340626556553019580777921677375109350636616514592434163804596882699952437533207519166492405709460825406994165136773183562750056280979519671475087799311379223687390023316888278894138458114139218670214698662680295236577071596533648442566327198040997446908102990908407257305314060001618772224029837038661734071737921617072826384505346629795630676153852837699060444832150252080528206254786565205022919852607981587908481942551720262340687070473229940509425331279596490768873972926885446025386003036668595806724708960957701938459784391741887174631380140467710944092877965129762195352104281002826108830300478395415116149355216944684846297494563168794582517835730950011412079824453912763822264383185738882479814216012338132020742482278488741335970416288200845559051003966287940676485610215740859047402337217228389794809962675035846163941822117706764194520428131983940915764601589557005922780440927178017804804575232135632985017590928957322853933419119512694255950573896708215923914617034062319053564372667010624727601349076337204763982056610268051565608441908698052063439270442237753479894129893779305716172562900131047087300237102613756665212037649729780086196607289707991716546977049232719368701479599094601194394784533575008970704115679786578999387880477177467966502934060904387379781161312784327279922730880985356027967487554418191235191900692882761725250213160699434742914848475914490467833662081204164915370647712990574996385932792356462428812980813778222158932323157207909531946323002372355338236889401063954568240214952014561705409017939915599479668660726968692205497087202646539901075682830313225249880780659578512955861732688425142527592399465621281472004983903775007340224966045691991799140222096533956677953770873757288852875249366888347727622967512871436684728641006090738848661220068816815110639576466648292847782516257256203407283045473100890450600406194552647259511551630904965927784216286368570766256897318926162400950125979379499767201376636447673354822238871782197714285625618570882170842277515182264894676741964048778265025326815417175493967628422556749351711445802974720184150967056986550625161232328989985333924791087606043278695551136135508346988941069372544180054291477489959300144975094126100907497593861158792468753229091949850487911087273898261672950414161361376706493132288819034484849941233471315079337847282125707216274615565713300034824645490008258273020298166617262685024298900995142384506558175399578967730670032754373854445424429991762950835202447566422511562805313561478503705368696559571668808454517476647844453223500760967263583681581220038260811413214625548526607323549474978786735871256919781529965377213921258944068569081275390805396530203459391356778159300063027025399896689204392715456048076892395374178921193672571603652999676846736550472716006759400416637800322020633179983267405044951564765433928062440149399813593638684835166697218167916332577477674865642531219234700375211832421341162826939293065539080420557240795115697304695944435513022467366292707219734084681915557168881383010488757955444851012800987658142187380726177049916419702109648418660739246012379909054821960983387034067723557260765785667858705830487348580487582379978583403337338913156743447854689858777120479499225037738430790453330480557207405668003481630730611506325012479172667550009171223169136158514161723509433472351675759055408854320592561550632700101521022927893803124374272607819684354374851363478727469277599222178347224666200878992948325111620625398664444623823923066053700022843991878247163661212557175721584592871857202652164342213154030396727760670477340860527140250911495622772899135433511838804664875794679308259947040371913798973531761486635305194902924213076930221524963592019781968609146832443928435993960928085803511532812387760266749891933318609874007855696613084863927063812403990357236153379899699135141623305227073523083955530126669346765066371799191883850459061816054609649187161756917219053563060671011440160180629401749829480922033860739537601627104884892282411952661363526408620175513295710785471347178415665409834888792590441391244413827972413170823151712385138123585014142748965825552675839277756678414228133438364332412463778031170422455770451775239963424737404429137506345497018570714392250151340524478124077086737036039323416690288361047233910373162074884127743042878489294598919126826982648028393567520243832020586991429285594090817957070932311128716164358498398009287533288152791755904997803703035395684596145024048495939258515886439624298039243079628056274068887497241716207274898926623579884940130897112148802686809962755616898332167700162593347050656737509101432815199430676678483591285554598328315234435358474701519109568147105909498981433865058163043634083329538012682315529147757445465930416138115223400337469115846609958948536824285805887311945750368954898349859071534161834543773371213531276969885928530766102208754994828742812166784226899998254757885644010824299233219322076557284367350133432648070929120639956425320195193451263837347289056130269653506257009075616454681306335075152501859158789529543657539517205584761381432494152055549739951283018242150781585044278685449487958944855147614567075273499730744640795252626849832552472874878024023037399961292230205736927054262340318956590986427761841270405227531153797660749697162028176167591957893117207054330075564965016546893880457550753463534701432564460549771388862388851131152290906272612587412444027762462553782081334064500567619361172909900953062253209491619992310015399192941191955478381485950258218377471185670417726474929030263966266572951640385486798393182237691141590334668979668583007908328001892793531949159719215298355300441712702134878222693603809993487902870294380856710353678237009245985574306424100733421646381893534162418831625157737172548812176602912993038509598852041329175296015552875286759740847863130060270603086212112098272346329464536397000826493900431477046363011000231396634501896331799705336783479560200745912232557556465718600951421199761681317232703559141496438691846065771168098918033988394298641435943588018633445092305946694207979177597460624045003876833887070859347197419077491321315556973663196572486378654744685812533336922967716603155011828980405870061942935371523452502554482329948941313977545330797529940817198123777184544714196586069899586203844577387215716478388498690785602208836157592982263113527583706589247920700507972132697413009136119629119925943249350670800036529494026014232294760343568521624420260379147119811019640464075613581188917710216152769732949987252916005767268890202630308566887774593890500568248233763441383201318497992708165243617922939597755208166471445383879108505868044178640938529986371250212940071737130341728185289532866431226458164972216288985461550494317657476362514832807321841249754531031005547595336101623167308304088005923286161554307889490768571603664922756422237610026473702564375196768822558945631163809779218586552063224766857733586504047132425007844038053683689825220863646684940738572068490421049948119324915232586475842581962640587741794738014564133201472456942633325325224827743817347851617079210449712443448651787489247054927469487769714893806612943586634953546419959401926632299923517671004356915449688405337956858139663643911291813793812496231070345816442463740105314692770329256802548566273175979484404385863900024774088445345014288015168362545280234783181283350293228336373414733556503265251389986673338648723046674201685016959879401915255618888983741695690577276669320223296509743992095732659433451475937478226286858792623426323613692145566181443393467799620283269057514523318595070915537981344848083500095570664938275786792375447792092000858681403249517779833553447134022964796105778058217577056060678652614308268574188938406846060979810358747059943522821147523905857792240108553778433812948408558395487383734890335837309583015811655161129683807197817613618751043392802480452778295094679808060349366511610244217631712941986874170617278608914124804123428131823638157469607126649598695781010055958314621176893596951286515124943534749732314541387961100781447993706916215009018344390517126759530191271336270134902292373554082361083401471380506881035771762786964390664656394420432858836556440559598200763544646528936648202194645569070649201889318163693790742160586050038292202779782992520093334235063471847904586732086942770940036773356718225168226444573584132644408841651726896306919006167391404499739186633658116081000799706089962796396838602778193364269922691620160398680535529492428452311679725983320783708684415419542698344221705690264853003861819501827681083693122213542793495711392295856925047007845488367019491064968948812245766331736332886888457364408242050314712850922712996466149793984633596120842270915426031444010537485540410906857894590698499737546841895616715364895651979455223704299719316182673483820509810391146574740758158358411787562307414097967070570023105094239885953771519717507740132004255904130216450144233040149039871786267617563597136318122784609985189038262201756632939149881372620907078290517571299804804189190639867632413345728634868735978605971487191584899470461811750106222769442442067224979353087725462303922111541296921235336051601920311555713644950089254152852965237719460192263546905222778377709116429541954078270977318015667371081527962311523431716915948676295492238763745036816065826527043981322253323176203569020907615889222676986398754676565587601389119371353061117052139940321806936849116253088024672980405263945788761858923940343784739375998187267508007713581095023173734534799066765581558789132284851267747006508536275622023495632811712623174001806317314034076099536828335716131847360112398050534312317566471046229773501318715659436164835733515223716448561266942783797486336955202998282236632083785310646503464788823095840288346534623980124555874932966989255339753764911930566606634211465889440209066060929834653441597853749033292596747571641308904810710614287714163322217827574496450278931175067016266126027008524945027044865841261389823692370330529814811768705837336112196777751517202710030994326669788735847756983646688248767760074504953378553738657489262806727607822025721711393589887052616499317110469058052021766175317684881175666725345947934661058641434173139106080996429243255171956287562920088262621918815522002867441119299612229300132288175744471598481576011666628260993815548497226360437628172264726358155480281251827915582262114172165597104581660873537289698393851569964685179857531879117437325288981266466932745681392505285968729574257287839435407543755130042659278216967259004885050424816248754547809428043093237133057411618002968364699404904655724788023595653620205041874378680391423528786410124060756833435562183453482865555845270792918181880869143377266450694140789356389745055344131122734711034970222894622249561054813527519943776838954177583352804828450884947643438359201549199150999146997619613570155386609361200191716299215860561212862086983202251649282619833791676526394402234774518015212286220546357943347463385452674107795951597883472200855491609050983986729217743148186720660487133756214449533072363354255211902711884759251601927871927028108166945964536277769442722821241534430100327710669800829892564544337961330086154444240943187335045123940919700169915030012395219991150457219545020610450925963209131838106328066185705133531733767313293412818964517241240054993294830810336379235787732439203942898503640466845092464294720715051768153908259331711530438674313809693220291745675099475726763606199620087163296852871322018289169705679055904867452185223568237774854982658519727772337933270253178901160060858506673335435749807791732073804039645189971637255112165246324529044206175163619815536062260442601915189091820106162109661130144548679720713740634383646809476041583180678822099212593433008216123772552605812896272725888073930087900330080215385307207414170264479292973197225239129812369022827880268283355701838764441054223131427214570410218712258676417807793014531747488689431812106163714995245130596126386379327482238024160326132667734721904981987250170722053400686954516069935461056682765786772374780203133510260931542372363669169733576609235220782832400889625998920933247040851847830856910280632175989147643463907944057144256041829235091363005467234905117361033778116771915267784507646156057125315333421370053559059449671629831522443309073572617724948029616838209096644574290651771086814367785954351982469569451803490990539556024376355774389947491606149729144926112222323923275315106246349853865408633652963220017515648841598304663962448477923742180595721365253518037529182712307837023654592472539583782671031218236126643285165532414677389382807949239821647074257464763235632771142195414383165916729579667867573825635289499290950037424313524578010199900135260152788814893690722653010385606457896695027126214077985806013935441350594670986777779113255717243868116336986687732968603279808012915785492005684343491241045105974261507725835952233552268097462717660084582859823006294201418978005386129961244370224268297064558816015748333133698280877992351676631743401131965727020176815842171053439391386686338576586451545557266285430654774657770071930938512165167004825418147284604608936803126049086959551646202537686026910577668686037804996464649651081114969704520778648730763131937300959408414405493850558682100436331699633707942879631184547744984061464091093503906464416622477339135574863011399988175635507617062795196211930752331075180748637400337795440514913071631839998663531593552684512619002437279838308447156889423708249504485791752813905934033808478268682635613693697364320147968311568600292772366099458000299218437366228160896469462152122515864601734178284244258071233322932029402932601808342564081197762372551788587302891584262047352016221868544791741680657599646534749519581208196115423626172842635671756448149386943560012166078161959529758412003142342793678070443440329192205717207121674320353017025247798579826872811990133475153546435626414120577899519286688985115425324939258233481202889260530503249627232444093252432744829561529499279675501520949876537249184941822549105269012112202726181638567374141332698703090424979173373638021277140946190184542780944867842336497278914331207797278834914484492135921276886084256562851998191442285042657930905414587827783760830007055721558807010753866082776332466302492687595656165173217384992775751276968199128822258589446441580756929675116780155881738045825593418060686131071012166158314897874142402426384114178946950726575589284313583077027481726642478251716774338625175940718278870833884630041697739388836119008624178488923655085319579278209860183928253097827849337449289301330986225382798295613818905179336685917472957741704195396303659576743544981981095162142956199253516644523435638772443523030643187414652841296057305829145821907713009265920693353778383964755080163975024711694975613359662248445986712439653254563425098709949632846276962442528565512575944364196861383390817766924141815085518842557131863798160176527481158313314942575125117909925584215205604197274211866045278430758779632466292503022508540344490545582308642378042758191231698268430527067603590903322375180421879569675132455498075299136286058910188650998562367750152248992633340997554858583323924875956130445429303770026888829834028327989157249816461112129650436979564382029704517652700581040621404274298458543898841638606568287127970410791440267064671731856162605732342240184362506729424724305827236940818512146758579301342485120535641988013667612805086370195312211331166679259134508859268741986694395225402199606388708988266194493804140759461834129268978559348626462573939830006175366126308124511101919221332194521697546176072160120792226010231446136375052635472185047356442650581742772674785744002648717733586895560335337292094594256841899689851681347035006104486461749847440174972144388292799395120927607955596975751511610599648313256085462491554276201279441224184395163490727275531844008284064381689657218503826099232493448369325145270841946854684579624581742398520058057827945399910524004702862552033260284062187300840171485512988631142008009919099895194217098260298128985193698076245348847508704463514398969619065148660172191730551553253749288752783444959527733397499613940565137073613494092184601614368393212312151933799398740185050015826122963182899412403672697972707413300594224127925557719019816923915415643320899346766732905027100283256797587066772335878169810112142249051447641453294228858391228378057777400732794779704097033407780732711457813896810621509244988801211534537335188336977239591738248047889185494469599800521760389923717067960633331850207740542643947221938173103772357023145122291913552292517330166441993134630504706618673281478615028001872802906271576965285702635625919382816457654785255332231288885992606141955659591384166379881566795160675015904733531745941522078095888413447877860554172712231857918609454975833484389872971922208437564908118316341068794492581799314936551551871819662368998883719120697857767457339982191989377659655200295761804360388295590700827531006498795086833007501347879742296876992416134725600529277328913608168785762507308481961604139288780178320592283587012880339149352300586053491254076275745463187669114140209727712221557143266450150604968166858723359826849716503463774681224557409833799799292362525890031546458617324537624708128312840598171760129386555732707813463480527851715938122159778988553376659452694192591242160788736455088119550038224927617817649632395129477696177162105931432316455462517464210798764297405313346978065242754352242888943083601552952163331141062074824255052243327493656353267000219043342434011842457900354635828644397357562824565509631434028626119792148483041839831347890458165869300355426875676553111371564116907512090704237232652005183652013185854132140052922071489166125190631029774360807595774222496147050024681506727656915057655465992447940897760259808889883695618773407282448675183755927626696759789138341138424740712001966977573672892712904605926039510360760596592279183185121314426723246674870126710416291705861510307372048097907834306812532560139959432449688709823590207383390091571914178124514898425356182100532599321774222483158515426721572427725263001117491648549021797812412190708700729476026026417080245824249096213735037548304740647638543840903896751439088546515786820173222240276311405618721011887915656167701804146115399573613595020936004583171407108023466055501495228133444744155028135446915407934610788835282648066990302621158621274795224659501070924408884143171567934587750265737894273829432086506946538414250103442136739396541287202577640404508612225641776273502195769160769086789820145687126755195314626079982185507254875226931362273919145461899530906706990059941215108503314120918809104519286737416050464997005944984630840500920791056554948505899557055925093097365587149809872830569018893937547153688673555183978489603782909743849600849848561436915233905801675534147234348341692461890951832696112030942776543077129560634064649024335612930175692768499002339464552942583369974492012201535814811620051294198725201025109820922769932056720126369140121238121011146674635033237157894736962196671299756751460759318160869790848561009811737348836572628892458102318569637871360653846374796303753231193910745734802146114376675853917047611635648592892954674516557549590662390657026750031895916266687143070032142767253060576215389880291159372212828927510618330543948582086193290712028740747793777267746911160129634544198701892329950848065633706803573329843285746591548454245987857600724393338300343159526815875800139470984840377664317521712839742965982893075166421797338504253356044854743880271508888566277833279113612795492741738913883334655586040792942215370963806799488732463108392876856807378597844722508263648329855968230297410115477931745266014596572738185900766797509948851674371321315089809888256050727455120720501363664258627096530023007413669316301055767092735716593545289524013541343183985759157378001684612002621692963198200107955400827388465176360139430031151602734072632746329914013463887672714869998294429882247755055876871973103222913129184836855097906286605958292889710640280264102659578836747264173406996602651834131711950928626318507296331111038216800958070714810074423287685434928794400016653878558255158656649539571015967980431037340524585540509228370142996363530541352027901296884671642584531894782357569990050677865058781284999173580921666511303065309447773013087561667520612691571258583642593670972839316553047996182758435579229718632665850820083020817144831977049165776167391944246362033931641111940858812743784140829951403911820164941611393231314671493338582454770547010805131437692180313462821113702163026756091467043473721695006790568726653384363007524269197115499127495363226375916362037262511159132227418601867346459421596934878711083192727351234987768450912597550342524924532934102408881680390211484883731334662343552260439852174602987306806817440576993916796605011788598326956226322779380459189467031965743107788082621800861380014170480567818869502613656191252924169475600827388937270917498446029827205662434437204167273097480025542892960154178116528612197984171636474257708881646366335661871186165731002813858763555145857292685776092697834455551390423105358362934249288760024682682223168239698179246608201537262161640128119901742337998341114573607449200234145234133208679252385616926826882732434881810170544195050197378319852043929639816523565070244652923670870392937004225719106576943964252165168610897452049693169132672701529052944362295316257428100475558162258984148597775361769357727523623369592530896062474819634748552403187027913743225137865671326291609618104443056281585408347664061714948861327915952641735723051405771693910395122086857998198970764264628734776694942500932117944705480885302534917454627582499212126415626915517478910746773571122555887516408383278234100049718092969159935458042297487704567665723182728134193612383388096829584848550740931125744309377129218418084435300281403490137277435743193696644899621487189294610058332492642795443245292771359069566375049608685273373993395749119277511877969246108431766628042822796981552437286423910205362538907449121255577309640662369447051299217024068974684499865000306033093926712723670717504869140325000664582759850207756978997218880328001002181510131167112472266389256233419375848495444994016476792899822545996168210697715100784442874520023404774888167980464135147944754135045889853458996848672569733191830107049329814027150340191019987243349795901194497393600030649420624119513308632375237683547774051377955789468216455288816215460162283023983648801596717173605648487209089863705279888467701608069169180668382759608379714311997784337829058539195430914662170806045171363478895688025602125820990383351230161669482812944004391233048731659264522422899856640949985148373551179367508903525170903284239025957819516773356318974141994601965245927974324499622811228060901547707173384401471549376680193260081819491812875486594101895349119355721702216721839497770924832605633525601244704340041553171725539894956304305987260769125746253332162066743402267301780962464590986486880433626779968809240527444374335887160187104019068936156946820494737811109054475758059891519330377870096554541785017685136225763290147333523482702448572591336263280152379981198704080060024686530893824869042502112696382991383152272853991705079962053130875410359119008464780910414388659055804906697314762682431660524757135923077429910753939366984365324190678918301828958825653882822277690705755957054539665891195206567687146990550640820653667307562210601172280805622540907226433785059426749332868969053294035843748984273508167592512482978681926020768321112860074476704406123552117794375298914234678949862730354985630162791335666548382581301921100309026079283156702095309482247186431959169931010790378599503014070542765982322254127664881446116532739909474678969622565610613352768517662360518284558405462352513827990968937602984518442379064918220475382749148872999032781165142657787858487049710730280125387295712550974506312761324311724421147926026186964479473873375366984262308533522038158720353306482612837739426300553874123056621005823963359300720034825782212889119073336050370828215615602774693693564298489153256478154013877090219175679267567638962172806546815021034890359912752182275463929570442278445909398076936089979212966344872273485556821038958704497232419775546559918367129461031816220233085366614064325830492497576190046073257013531385141060605779633257205474769051052647652721805859177464021141129349381618474823287857081469955039910523028610625091544762167756260679066151122415983447499484100699166385140380613540678730357939470708759194048877796618585676784127449275353206599341517618587372482007454240559723604260535017178998298287267765901035080033951872688232503748807737058456827801461459211280166357592392213895441277650041762616048339165247453135549119363841993253571018898466044523874314588283944534116581599360206693188365810931956338033371407761030780129180625064349818493804427522949095759192073531069576281680585447893018380399651156251370573590234711239598482376964321878306923338836639044861113177128831715439012013052482636178565665253414023611877798150111826079675797536881077875100547163910928056304791506700837843047274136495732173738790073090298235779865949797289382618301051847907943934246430293325042153036278916963362037626267772164677031008278343329768982054957601291253435009762074910840557812086698834349944738486681878053590047987713771368569087084575813967221352555460194391228145392162993962987056976953171347638986423008906916667431514970902026051039049544715997619644345178451260269466445951936814695647795312898925004205733771671342769166198464297337461389729844607614752365972978787644383559464005666677771932733664067639580032066338586365390085429792585237297765709133097601991297280064578503991122741443244832831587747057959109602766605998435735940732132768339417813747783828306385914807302984242232305004906586588871204078648396085294813684906415663283235888938510513800255930744541759023321645143095312343688610254892282525732824647497557844748629772362282848511373908068884194735794732024939267037344097235348768364802068628408028051403029849948856200590859546136008481026110043475688298789622389633089102136369918772518593681503687894019494885010316465751803795902081196549709664873144485143601203063216420292583022248987222898581691876610783557746903887599283177579332943776308671274968656890760481007087862656320317878030326872797316130706854777425092658110853842429449052482007907158295670237363491488134729240353869182446172076467030369460716663653616305872408954788123643093989447166488572097633895713614172467809850220124788327416861182707983376260731368380496586329433625596924485575532383480474885876732917786495479809989755598599682161874799170906483843337731619486496151221484918069828803613775205365060656385952938883738114859834855032630563566871005319634812557316353748004663145987692366507887196600240902914658919747715963939987084057406869527779323099248348600005649346297003275669052675344195533460112749873313336198422475046913667570938133754361105166780612153300591062735679574607214660590554512790295172775207451882815494841149108659872879481185299512993581482712189745776743813715302533452671030879068378170366351432878901852526177339148886848788827420967494353235834921350271966432079828352411845800967644260580350172074709962853518286956400284966363861908331900826208410306174047704476497465022701845137553803971447776713644557765284852341715223190057760790919364825752545594171826002942502902278134280596119354309510730002487934026401268849265762369016861413253749550992007917448603442507229524030836972071461268779787793338514789553891747715077504325517518793750099876275839044519750487479265634544708848600803292746041117021387936314079220179239150073298908084606881207119796449419151188836578471525976845461653114527678713419443937163766053067121244646217837643310292768770001224464950709701191411702550988827164861062302535148869913672498446830880341898775479727614695540252713421776985527572723457307023406383326995111299865687724539284522968525811111027961090312133421060323513453841892298968182722541647952023166058270912013449802769747975459486135691378144830833423907325479731483801707186951634751610671571645080697451731157825506364385905095726094167262112617041277948144451848534442104607320778504242791092694921717658934778973757886987733520323396469175220136330443967974405540957662866171408410440112123327867858911389883430933465034040466801014978214342119194897569280636656133612022541245380103165841301596329162414575037139429232141593758443316411183554347302147867604048350413924921532872675267891191040278817709915033724761687009780590137952685196193236540423371652326694971009257036870991297219510685578089540227762352928058960628752348490709757169815810897257304866079717364480647609952539479437402267086323511297525519972592706022620371954940089912307041621387869928243319538923222117115722363146242582402201874232618978772637131494748875012008744935720740401485734596733856462047724038751620082313864028195786154873154006223730147459047541989609713118197665835523224846360141262017889376808102023482371362047561166317255698344171725262309035770994737672119778144707850885961338547339134129764287407137276626940692526249217453039762521506061011141503054835137246015806809459313194707475933184010008017288558599615202665570648145374049085547219370730569981268445804000958853642164809447634421715885989015082569469804203422719343991181951142458561445117296460516935432280654555556770455259163508096862797817928558851907323949488230327316535129435665608050546738368628511874173615363864635673613283896559844417948620918658223509058696857684405467216429280087909522229653625558366845066930626166703028961147204161954879307557790969345783943909678278179022028842517435611067538309459643939701747561541629873070933907975558460546801003776235071601190991387372541919520378817840808632513648354941246918769652669930299916148937341112489409434071157498322537489526938309821819123891538294680212040785700307816044881603562415850349425441874046559200851284285298690378362816115938626345193465852051765004048822418836302061797588432370759558655034671980958151861683156464086473456215019075253695569671397679168669346024790596013904588119885964736232062038675062276970608654995863612091665171317675156125426020642197119356809797210547503209921247584095473665832054303811497498815804262106322748890474534334561643319665077271809706388039920546341079652314108920430033578644750245064509767185032692022112827602953670755528103040778032557135820435295277520323745488526949408136649305045840142280563589209598934709131899687766153111910663548767293018395937192404349016523238064358503156585257578493211411621708754129385966509977974555235897386638144983874885242910120582498635948349935228973900283455436504093753813350655633317736869072954603492346453303375207200096868267918372559221931550682629625387614402321803148494799855202252003370379071436063987743209775376517425876401855532411751025092288070974607642626584170366611766364660816490304546828529702480382089421021201070224339515207940195751389036755709922770508051399517808114277170394428939645027023738932561795213808327610204617099568040949963447672410305177578736700382065326044203988726264286612268471518263413531355160479636367479796419521867436396176080164525167052679704464115500799415204164238317445941736624389954603276542563323200770014164023106950101071769688426689918189329945653321634456430872517760860213004626694081331998503179389435031906179996919384728311907661677166848117896565525527719481899234361044080489645614154251332733823615222712312373064151644647830935028995876204892971439081124574526792573381654309839130271882102101897842537191946056931866813708809706655428523939423188319744473869745370743605147643060081276298720885560936407112102406357432170751565454776098144384598359213364232032444346775685256850258078148189524200390103365760594579899818710736442334656552261383558089633770897915198891455604071157123909915159053378234925819691923131501112208406000511050935612869905820497379623898513104227389971264576428062368613906129804584392209598663482775460227766565039465149290511019334947840815313815674880567564367025035774908624353501948362845894407888709146792316121447202629532815492620346342456019191195591347017725512453742574543016884017287941152316769983939189439972745683627148117931533004302744069726716160588336290310069758691497228703707366361660374840522374458646938187691543891388864642176194681972120203187384472265532054637615140357725619992606858980705923434567962918905754836521487020305764444062354498846958876897182220643463649402627889011984526718835428589951685851055631135773896119929097296206964598027776774857538334758317323729932086626594949039172826863809212397964126240801824902390221486286078889265733857387205577458001380723955447570790075510631181812060082345611055303716000134607543257108134539088714195838459689596249226653580138556735505478565313147076868949094759561560660773394452489393499734387717789092950868982782203748677948292025514415639313018610265596413748315247467935594982943358214435682667256273992559061028513774294941764927741306312776691517466049815266645091004094206674084683362318177748825102475067347929085173649470707308634500107548422076128508587754968119533014631994544761130535647696188944842831414997422684648809057202734716599213216900073792935591879478402025358150603609457752669302046129835055209757564641705085254922542312260107516749932150415967544915455615815051720646718641333566247202266969672555981002769915252124366147526058596341316467325262541432769516481592062506700890675136233975968256682426082250038048083185941108587310073549831217948048787837320291528221619807057877851405653207471592684474751857083342606385001801613279447803524499107802053898118163449566287450235146627277860976606076864437155108774051050532525901864095361261015903771470206062775164642092021805009903289643493531710190584472312600835573143831696887779922251662429826778207477315512771502855523005270747693591065072608018114611108751521662846935972216040890935699974305350521007978475505467493846918016368742632892917176199125001136449977852574695766802919997150908083359695792189597072735630570776033519075551224520264672106738402600851408498859268261584086974813248268994446992691061666833922618517506433835108360040082321156040964455040607675001606778900287052608102735263316744838731811357487756420644550523714302382134003410747802086788263905610398454648765845885628478546855968404121814391097133455613482897140447366137991258447974464120674238737051422640648892258215486913108862461926341766841729171406821930786898063338298408457895564930949649204565688938359360560062658549163330614980880968454728583112204030419073410454051039748379155716035800297898959064673640583312812888618108427231809395940458697668786668841301979774009984265252716425997824766776320040979469349672045910412193921171228224878460507668842283551162593891730939357372383891923993862326483958923028356223323655694107302359240077397427598663958094008412206212411677826800192165661304741129918008486161884989659199080179722317153774952638471542547861618633862930068445249303061998266994588125905804257350178312644891134217227470414026443673468534237655615433424698456132387567457717712648682073346510303127485945522476617077012109247926744162400027369882940194425636493083893325129901997825475048649248223299373640870420376002687645678463917110616513663263345364204599580881752657699680423017457248153607684986202463840780768120318471799151457851591289550461175199856310677229218188469693192555962162594390394710520532527216866170385891601079491104929642799296472337898185426100622496837100932801748714885487866137910088546000449158384959807603445108609377447706311816444916315358467986991535397840859368069287467468674853513341118149387236044133382651506300024483507039361531732568380568780714474277674783241633301760873865645059734570723485818032447843497190824740634419565827786454595557442323513997699063383261979664080048536706310264673964002475403790512807303334034511485106601650346230650189343802720997262828896251835891621345973596451890981711738767840766248546098593705676279171209180579808639462739214453175808122300449379460848882897963443012142919405931148712018400131917235049462046089234771971324967914162134659104492598822933897571269098856829591753800732413079661038655555941208957629887845348870741962921761464642145997279723993992383750147135574390661240114382816419548744000473381234258765961770908126843705843615978758667630477317059114731570143128011319682663712958852289496336780690334657833346803027821638004234839904558392887894107859065200671397190610892020074901927486615552266254903280824090182777486397578427973939811671847126525531740919006772784082996616747711308389775315669642150267595286742369220730161898464999920231096681675279174024894659168083365021865226251036702257908018123920024661995060153537083869907963794215497818718380202410163670314913261049492548042944104075336239352701431860212224375128673394026501222918136567422574018574759439811715147497197060203681297196721354519347408410043375209327156855923425871974391797800549147336271255872797962650436039392191382474316815777134026203764343828227680143974507106208077796160397680505800385620860378388119409443066340177892945775990086744079520608272502890461321679298284455583068471522719025114660023735441095677395322869945225250917369240256441151481245850885152616210666443900843819229197082928333946556504388890514836088452189162250968387145382892504586338006933175710617273570050037720170311316787907188388923972252310418055179478364256649317304816442624943202923701894525150916893108498772559066415607895831792091866398568447796719612401257634535954127731370168214979362263140857683994309261977155636286533642826384402973256962877738642193597892912875744789656624130771775986976315463185540356598940535741729102598390903740180674250655627694701784172130333237555379536820427203695164744851437548700286556059945176271165748706405861077285688898614975089659281177678169641226118961306154491970807737883589864002862127001955428204770690384884541744966465220181719892277723548897435625936192551324965664209462247645647856815547382619310209903708562119273226706350560930232695374221471853551254402911436272152646297885777037938182084020232261192263925867449032751532363313075761029734523189171609380972521030658467415157276932276823661682061645914620720318097379184011560385659299017884486539735314773107473999212392852514944111326732227479679068097616934362705950619731773039233520347687316387480495144586389155535096402921432739346345197786788199397048716554439512430707687246630844215098063540184032088932899695290503399203110156238683596038275545033720213355141711179796804917674495170962681981957182082455952906866150832877539934211948262144851605257220398040846670832685579595872973216805742752028618327831281480155461979307746552362515211208499901312866701580455008230759020221068256547031988522795617690369698835785971361202938549210993923055923297026086441958930071549959012349717654654576639738688811739131284494298339590445695601635201167138350528829304092379137036615910014593035961800361106250770265098224347879637871826548077141736287448254674266052099534258947020535939886700633822637040584027692784378914130196431152740449945208227462986023787952183092991381385707089561264576535544255405934069657384069174470148495109256908960650120891135868292116705555451060238454553691539085414429576724567152247476946788051735290258436762816018458503530080458600775198713168039368541217250246172236229568681929097083832721067317632328732928043857277706660929039699955700942480000565355911160589851701510479134074266294639132600434260748138210683494167702876803500803576651617860845346174802665359064138056539717079398294883693900877863822048796196966019073006096764062369714702927398967651332629795257252519718131363977618040359693847573573969091890808009939607979452516785853554861588947356823834827280475087509085977622075682025001120006929397179082826061586836233301786180742758988488229488106677633249782187781858316879238741369163741574379472064686410809337186091554956130392650353338284122919546126305535943318529780933067411601269238001475899571735843656056888819613952016157287267242958877179732786992338142154515354585891876044719177457003147149532027210925037419205874831402018170694290684349161580399517100903682633852418290967188581316080309596338806395165309959577007357653579896313747351318773603940195514257983973685325903364293180952451794010912424891120062464117895506704004053087838543351442150002256808416016092212909988376846718438020259484042084103060464496707323262369373982780724267526779627200478033162769528150489145266811903319635077043801738610448846706298185454319309250375600696681602360381944799865765930002203690364349788671280747515710827874745207694781047481220451686509756517615597150579062100153934691765471961281207646003232490720030554206965896005435154848703049712010784059670203848936053627661914329624231075642361185763874940647226057468444097365989945935393013213939535133205513422356710792347634467658528317483732380204170655849611382293253704200089325756381255884331424116417568186855985879654556660396009862023452913197453515111369498287159721642445033544203764898163405293775860056082583075190498423327984394335174681179512062302469866774275093150368745575369029679695004662864606429343471367342081849797365847821626869614118998897768749390357859333786612862522811743954587641787762375098635800055963540015288395927684343205287146013087609781214930916397644092201026202319759653125543266697791972208158774809347736004802571791472835589925528217755744043675148391155738394556793316232418038613104785541095079223523220970594327056996886016254869780814838859255723694900409938154645866916213074440875667065019788489373415658608039999062099578713562554171638569624248069408700339523025717568322766134857185922748924337583839389157799827064794462976482816713652260887046766236779815058662820800022095815233379500498284836915371192053470411861508551799027267387395751267954330393263956287404712221653461716232443769843647710656851950868073789496896295850042253063116061026768123667844874462936339722384918966041903957893046593739382571701830248938538532067763257572050966529119251163857755126744154738041652562915716770142260095468966703247208069853201295908494536608273162209593563896224055512565570664835135566668123461635259424240480128122756949843479742089978009702449570480377430717553079561415665979574722029517241580551829933059205255389476168856164860157368263351250708738963221409420861928686687300447891611815966445928929746880395376440443267513099873366427902260379030454134925129414032898421368629303366457772032287755448050906368859758019198982219915497932604996104413606018245721997949588438785972100964674418214952073115326667889527533332922409230266880475887536183132987546223651080348707148792433554410898079355066712436417672577938698290639547166067312477415997329061153780719671587513910765009513700508774836931237924388153413655581974498249916146367363988655746132888233731713621354780153707518630392039806956031105317390842282007715774717406738427482190810911080571959829746505473618865558792804907314117302676324543794838220864085392410562410568127150855666403299758205311796402144708026444617763107368691664982566168624288570635197714150652037289297102873350562645830341283763526405642319965589128112517749802348964061077366117613630144598941993634222542201061569332891660905804116804791219968275349818843284659451644085126908244864113380583089517728947774681446429757547065637382856135861212977994881684650723077818851261704410549215328276588843739356172924146100098057359678110060673509489493310537836795971798429196205725829014729557440643005792785922624262341080657166796225926000896195389151019093526614087197419246544385575205280389294083028288115634119218465731867389702784739235519105114337980577750407004366279727073090924470604457868428015287351362154807854543311967261795817840962334743701451814350787036538313534113049703984785987815892206951645828570842744890708263899301690766647310381773165955295289673949511094564501673740893371175024583508853335660030557099271709063764666844258920497050772331043830342777191515874495514674644334309702085222203696825872137953129138385758715528464521273900534365177051627543806006497048500709623798881123704237776436570653457000321045146836446581385085373770757907931957148251838994435416801965662477790907695089442081544930584257277982583434491143592319641393747137308652098451001094574622465235423738009873503022035940596310244775787925352019536801145885513033026082500300843640371464723342933302304373952223763438188211787047853392009366888452345589158010892836142358099919899887110197026712266501361280020383975290350521039306419865054850862433587848721216171398903564013364065124357519104174818463806176521828090444444457674732931104600946871118858121637302075211190376409402320963550202241741117452218416416781022985052068537758539306775795474804875986829707066337405875635097638066462004148072050791460051575629336000982002499892931224555386370100603554499170770691553693026785367725963037804418149463965179317398194599103262876585625586715224272107655308453774566938468242485744119768916314453340404920557375987112668727574130573491891377717566024920788619083802534025522643410036466725844900320859442535207344788813683956361002915636015867557619085254640080882086510768394637016536000751529712979891033438152509625720131158576239824111254962610508015039712415840562184738105684792533510757879933078191657885169108658394665787976253304199474445838694818052403009365956476839333347688279716110435052372485421138962861946737590684379440969572852687045725561151560837285448526734321595877252540769426777035280844950805599355533879697590275497245519796411867966016663993589412767264468288589091354801554416467881966684491256956237057258775900482333371319662819851767843785326645300718926928448603331099107421292248678628296540386088076559165596033254383399894934368302280677972061909737520368522619416861594676525218485420971348923030629140370259690373244122170716113487167045918972556700580198264034013748480279522525618164279947949840869756892951373086389296784698922965026458502496226868374225622557061800263090791062362047461673400412636148738342941938399305252556009128511219368069922033918990256087724300096872700930500984386409623316288168239859601629582265200911176606130999164102362885908563378384854014634536501967032665194944229054920549972004653035848111271245832559412704944300906451511735555533339281690701551659190965390139432633682840665952043153695438172367133152689279374381137567055101124801151623401255337408406196377112938426197752694035489459235253625690012849159708735343845553104034656320065591832942921750639892096353530902516330692150892558879463363722425386014951182546559197792657537933449130915994403195375784688049310611942375778964758598900942058772767495498258720120088108674227713686386166070850375044335800281887063564189144684701846936786757384050111775068228656206711175799520710493349913330665349586030005356604812536463629251958349944742436021503052813830483197272594401326366996876621057633272768388388025959361726616976370925991037512603879678698236625762615455684437251158325558312500397876919219156619065313530037550838750525369797364111940507876509453577390309464868587262863072521069461198783358905577769991337296744182058327010488073237092251625457053573857260953366039263691633109999464468138209517717428250700178787981384515784538158932263953339259096886856335404083642487005247901204559493847353314827735844923849733245617651220695027010825025627641275609491108327505237982119600794966850893027214795645948599853613965183269422718115907767473568992535497935434268191442478069993551479363407238066887590819781196469246845062169871872667786745625375786066138800404879160178543756686506503060903398151090612249266636889720946903486261261724962097634409908998570104246017758521107063961794105302273079014040569994782794702250722249450509199454957948027963357110817345851161942979449662860956171640053680411571355070937809392303935057774746659771718590712628081504889743236671766880313104220505725672103659044934495362675425415821014235118543233796964188199096331034489706900798731174412637634631564705698965100588940541870000799527931458511092031355230197792687460634242058843261686140475924684940679044999376245661776847561546107288724572117970825973348486034561083362889311725102673031476301641509369635815492420316191920516721161661750411838116234590136039881482030088995637135230183337071590727689124952456004546104112153347891489224813427423783795386191428486033390303911585471432444844472677926581921818418468683003095895768768325766158525189909727736957373415393380331853955037434969487908002196988271101647866875771207532644275591504068826043957229812339615165871642480030504449543824023979787232580784581094637715773831586638370162048821262184142187216188896314750285811685534458437502803556194867302756888411057844690876168896069263157304482065800203970499838981756264735805660303572413359852876346666609574174381558055733103332675045421887517585466992205222843506331989677882339952973217372552644862623307295341404823232242645926366490568213329489115913080441748652565243610446122966804479928513163181600398706837088653412606401858418082735117053964529817614054940246754831948691092097046178123513760081715572253562131174773561697268495783052438216471167411379532257613857758149388034133035913896267221058945218948056373736149593589940618522314216106110948472148946976174169055957094331700941408386254183490342076389113475804877072207789208554083555247404180467357991530217089824952768189477416127203841598118814333529992691562376831446177004878403118294745197825890077183404902066016340884475470652550600775766856739384230805741516172417015193956013151892592684086672423465585643399515686808158631308265877024693424497149207644955074980832055231835957573623407382471211782275304685801441856097135090513953563543839208599584840357998824732030023095935340834147578415795627899105499920111089369847538467003795660783900950672631431854721249534701003003784102880765052296039475730241450976011338912151646917364856139057796340995299088138316263902839909589919949735002865698988035459887154903445636451708250783029444137106664915770977524547642364555285096803922038548476870813851013213563387664345879601139381627627851647157238782034456306592181488755668431416363339048534457548371675161667989952477604842699346421279891476502619457818132986829770011069300768223007654726277386426309203915286738573241137898259795321009427103441404586061091406608750144861772239627538980334833542089923290212109199480386835283407625325489516733396173304111035791447766214315193678199387273125192564655275167095753211683314303249526784060688122742500400495576533288124285775412065367741001197092299088828064069710738375709443249669784482471920697973486686588254376131712187879018110012270826911543173784535181126919373657343052690609080143139024125640933614491076784469947811299914295831978032122925722114994585272737698652703407959153614856336212145167807086513832458108919789846173785398899048730571381622749522705412347263585764258834561414580552969943424161174218052657428753229052307411718227909085316362204784509704803279512692118030056888520731785390751618977339044816723168114894104754493002701728394670304232450097273608866599288149337438578229423233625311115607583021104509722835586042043744864327720388442659831419488018282414009491196923171147875171192283126940413443998700044739761046422582890806907817979029797626129669945613572948489888135753153929515549842671749556784627323054425552088301265231082877274411776011083584969297082722244994105211675577334717625172666577678063512546709919661850968199824452273804745528521689370239367349060033162959916650994140877462906480700610343975101797796350485802056361667307080456322112107093532874287522936531280869305010531184413420516974013221606672151849551903759303719259048583463780408386465710639023988105125585297577703397422985149598725702179810192634904128024826489237917629469255282395992539034096245805260372229254137861873784774982180221342518169938050141114160165101812080752322906624691226190156714973358624336058274707383419369549917013037210084860022325736268218452069833543410907861736307533275808892813527609778762140672625838233587382017669929415995777638884341036047218521466295750798312096631350783459960497037809340361896432501709037517772623383607903820968733985408463254000111028555130551350317656826669942273111150016402446033626336863851111068441133932516334328973467549735679503357903937756149881174303251598451217569781380693734867123396570811793463062831702498771174660287279772083041303945737378592148182203478058781964413572744872644134604231464918265681175159252967222042750706299952757596555511465995450002224086759192707866626717140263496668330069309464770762116127449509126101243253905088216322969026024547129075957601320182995347408054962792738234729246624786497868126916486347144813638369625569130784953776588068835280547334870642134152309502781495954854935670140638473979831378611250070167255212492826858657265507886883825189181576964724333071242253736903758387471491115326395453081960587786102962515774112492010127326205751716474108881437104230669244821232968086014858814476536870580288796811434691844000142313861401306146479900172540265406702853988030309773781099891176422978096711398568151706941765999664224149762367863707538601366804261372525190930016953715552714510201448101360118932013652592351155991143449639978647999195417168669315577605067184366603819964828316095201392609935052077620320657952557445321422806746070061920116503658173965910514828630363240535393927251976745490583830879254802886474917257771250766651334378707081436783427074545534391930959599964373365808209759657255828294935952422102638628952039196372079557416398209193047150012404100662328107743879014526509995664260734041515112745794608841998758378591412626957100345357706963727367802176999626826750625846812508671087706616856747187910457207246998098854423070375297055485308479868253465668834956561249598307845465145985703757245192376352145092785396426567685325930768566630136949778014598971302026237354012792431706871876105608696966219920762340985541959092920379943469348910621178580796353935184452038320652878412704926268818828904168353670315531638347233354532811348336803609123352386696914638669635377253878203990177584946069965461455817263490078572992890322807050034828974886791183427284593187890239282966753680242714608561736415049657832122012179282161772523806110448337838437613043531949022732848132142886443060484228270848963981979281363095562034013997428100015642469041774116057270876526196345684091858754533305227000159680227638117263627281822134818973363630837661948397122919801131403500865808753601146458927149136493374748134936367870325652019333966410787778523799588701399066922026306218127444678879246727753440261885793458473574075225541422067565138565765922744752889957594504595556657997260574238788387356882224144825903025523913499953945654966805523070996176926036956522122929053695565310909738396892999112471886226402743012292566942317141121936967909056546869532824315231046089199153100780309570586252915820380146110794612960069868704652276565427983996516569723586291636172431074978912364324043761639558553877670008267476983259051371771043709077576282748756215603248126209765323394741564088054305669421323732167820056037815937215317941707214798451042539607209190707029702949868155271757128710989168267495057909144470086245281507584608205992779464440806981698736544556520926578107099879541891926180434074079856217683329151123076448011491520736960410853515067468463028677708414242583856552815281077976371314221855740511640311624124612142076947381818239416669119427362183626523729516512868245927121619555159012718987534845521951279080147317737324632845618079417537546251833162329478777225303988933092278543654132665096340253251279921686058331101328100752995174668661687192974087448495220943583977385294509238060747654057577318593961238953685308967706608387114550225202385036122365968539943407315722880167861301089993100269362356784471749540586511324711933459383189886838344473920806705196950284996778058745870607008665674885915627129554028013219153290976478485250759133168903424500180861100421833602127634537657510825681488419900916274978962591550280629072024076679138288703202411686549770945997233570843221184901662828474423804861706903027543284672760987677987960528013862487147554965482116990519233170866164158231666195066006826353993227724205480263508237996040850457053515260916727526661029339575810516082947149936336455108122826843901021467276596491138341224502014667163282643944643224628750084485599012170631117151546351504232678623214904136411844427809591269053816688709594326171014580184616596244119633115489831022996285287240828440430478366493706948647075501909864278226059354923269572458367217339141166803450433593723858445045204378726167955086125054649968542225118091501243233043091328157471221816760854468099258638396178985326855217677601300086039754482468400846663036994915536246267589236243314052990190359820062806719604753387273458197506321393513018927895296442660727458678753298913297347976909008330013544600735300538746108620173488749688991523872545978989205238218702007364760706187753717226012274586752968312669314776781304630358470399697953949923452970865404286873438041952139759798400639497131311588860009724088267216422214721584496671491098337605332996524557617962739522479699522373589993168098010447678500591970697451136258423500524411957190693749406290097338270605718265676194101049454045945677944169357738911585380805981679612992574629869702543806296427430670016729382782897996733261318636332537964923196838848372563093616739160853733739984731224407456058445509618663549464346569740976296756578156824062582061678756757063265519153313056185142607400211111717048845797832069531966948744761957822879363865939510651024686788386855354365618477203201695987631382869436782345477839651813585032546994436766795654861506506223643847719072462171225044424472941827541076096057604330598036411601082013796648845056729671507869718804444492362002273468780547294916363795364066449714193915527395397044446006203779288398264527648697821319167820133466913689201358647293356148138689985254226629278201088071409839914566269871182189925649781866352690221052274575689822108188446410193420635991109521321962000552975291631494278252236254428531678602728650785258427288133917834451573268145406324521594901730987651118303929022768009033616866612331104578519448040329257943042885669731424385269214403186391488236773512604732310820991522328500269575443473447652029772688624582322671658199985783938297411753287928713860083162377963519924016092455353502750371965344725425192956933849112335153979756772035115741778874841908133852055244549246341493612564460709559819053613844462542719001907991371628897676061727829776028449652168940784083095301569885155855269049994202960666980123506237489574490801368885413292350769241119827848195144971278715127435103591168875141436574092166331913791770368240787991247364314252143990658501004550243997580468159033174700231061467719634345603088208504583478181819602796470772032710030140768701851747093807367366652315010553261998675914943771051589139179246265117226894150776133621385045818049314205492822279896513959855997018440652714822757576039791589850093353412782250261985748015076452588335167680480037362569709571090554170974620199125929964336256511595055118931172889464017594056621459293965228991228652751456528314408688062872465659255814342327990736778111618469959414756879236311068479192524861890552428303701748416246778723883755133156548033007795125454212210101567881305035765533476893316454690554554240797211375995003064686400167893073429455230248590241573149961280256166109628814993927554523542706062537813350361243314544487219484166920830105434175111614046612661486844557130478722782744652869284676000838520665989049418852804941220606111800216542294792186224133338134240341100731310444014665150558553921272485092406174708173914252461719021165014598915260009163334235233310061589129447106007554772772995496983351725874978943008056816444101452657156852306513486633819200939370853844659769606570000196768634213000471201952129368347507739756280330310836723859926368649677632158506700460647424574492652916910259543975155921982411626661318858447438443483823031769348496141106678787659913110245246370582451782443915331646732764444748818718530336263784622005702742060688900093192472732685610783995367256510432062865875622922200398410892568438427690232188557339294038605241254755470221516392270292957696905157751978833652682563302157940202128680115257047594352039799070945076585877657429619431651957768733986816124742298536001649428259751514471331553340620874975724581607696237897576745529956351310297856488832311600541210988546755763002366994900524824110792640506294600316634452299789176794210311920738027048897087417156409060318642844943648128058401799123129668998166830555573922740220661714671155657048127568120037591548981928860882534047133561147669350725510067270620489258940562756402742393140993797677111849240971584385237895600749305381577631488102094071877232278900385720128987379449693529718416007182276453244707536895257130900768513725377203642393557997187151394826988419807782612174453172163088860604088298030422204241830368822482798413951805595875178969333789059636099089127335767891599215624961699690675184945835505298358414114958663230872101208852510839730172117854177055995806811641517921194962252215371492762277761856824498403029919136546282039383429944392122934648283057256346833468019592835734766626582485485738803072746580412595812548369818891554550191041304617715656341773037331451705961182709130836888745329747239491246199933698183984812557313758320872521212949202634885604764897518875778115985107940981825138224460919625057731279323450300679331774625394550316093353192799900832730808609312397595506594818111067215548090508945114954226610123045299097648744441485030187990830234761452820559086853574231149921121425793253839159262129231131865476479583573760466735608200695278834134886995624129411151072881969489747243983124510056270453781563353071118663357273982711690493832173152236031814891123560017039129031299957814645020298194026272631997336566080213247489585849717544743714925124713149730368048497561249223295886918736455961456385077460942250732463390964693847130631165481271238386865442780783248047494768948074159049850311085642067259939671056262991534183977876872000580273797250035753035912945830594066924657566010812870208155696432813082735966939286531823344981244624183737989737858107122983947602820451386753118125467536964566766587117693335935918954526324671893969551848742645467537399719798080554099225145134190790137836532235458591311950541451257689202529197479995026399381347414149287210440690617778164766131127587025560543784031826590082802650381389340872086456045222510337721886310574273078287104360870097557451793977441604905129004099070438318495696163754907010332636561008064790207025937628048536687899391817676813823740741893152633502433874211193393802137236602990867110314335846934444211490113948393805610549250023550719128973373397191820268976203715449830960987235883512351243380833946496608768225772115498771119816503864683391209172764621518063672473711299749333423639871519158460571014996285930617669374599138637640805657107570943266458741194557778759585691835357854209829437486636289567013994545112720618048140706233657165051320527607535464382822444517167146011499082515217361370584203635925148550441954079609633940708581202138210407691815437536851540492659888236563444822172402650026999209670425848473910308273123567952485003196189318153682013047106178137038646067456841425438336552629377252478268246212107999065884660462531209497594998152254772205643475250003257160675327046626285299221657513177787924153896388972723436222563753899997136550207677551378473926122073040853620891756300398609070738597804145032139889813634449778842836369191503486379427915830190028456610506563320583813591088640012958916168668576221253571196480262986661981914134782474405187870756030674486975948918987548385302670088001548647811720567172458447999537559233838934041455513223776841346812173778563012660035904575802950346988798959761016441257513865546642462495426899377165803433707549520342844079672597679422307205366309492490737801572044431155317550765964431504489671578483976522034293931483305674330800766228214748545373153830952779710279799750595836434553665007231452522267725203688546612181734730839139991737148085799898976345321147313905012761867763344972074148996425766439430075680846847375832927446145459909973958866918123286608040895202623802628991151316899804581428046989365425148675334429858953128062076665819273002041581044793523616563920835852198561124680741710935802428443493535711739055963659321101619419467164294884245488626322251620101282065570414698919240155837587717220353682862930291011990596780045465733326047342304226566417481248983974637216942893648340909671284580269496636926754662296826327547879020385680343723969437433585544285503627030489204851173561735519400541067938076197738840666048930336688422616005041474376016314749983887563567119450641725845320978722329094585300705450712448917678794018206726581519138774731741829150854162176628606432689337854351733741677468210498295844051161787892723493986959872736586097173596963355987133392465868466803084310729903382922312337119511167982704378972917911547356541004042141716750638970436928375487386497205349270349996698553721808596335448275767856907096958966118962700921662596792712609964698789560183150757649801384717909790031124522440230045224376082772792480193170219122032307092532895645434896224396306668898882150763534204965360097413279570039462430470488664242191380084136538304362610252875250368227956830872269247068671461144267709627955285273386795436404602765311573778599598058925470907136114566120743368023349031320906432336324891190599588066264375697831509324348561068032720467059184901688051920803027495401262292926251268559033847869814148237950294579372304291402346599838816510613849638085082512584286615841139749607517539484812953608301511781487439555921040262006616566012085290100594666922885849051298642378608849073092569348760653919339156536984853909721777723114807272704582934399464157060634467030912624671246295539261069257608525200471383905478752564340532007062201300284417619360599548430299687672112628902406502542632253958672234669897559869555082351890322589792145007968468040940120328031055765845499824994620212401466230313688675586895655678904358712071024986160292084326315856969603190963990315054773097645639749357010946730215228867574797360564856839990871927067732582728145566471609728015369862894715416370935471104279659305507866214728058685493350212138079926570180197169890422506873695241660757412028652978974128872589948653865443510835397926291621949404831860844169668079946731862927914487258249918863692485252592649664088786389781121048752047423545870694549318170578165533864569694705439287575944645319153361897346124299470693446848178577184167239680106896247209046764273536558773885768241970691262230223611706272792846326753796883253813243206268412064848673029037080053510867333518533753021978449403580901550958786298298966566739038778619123975846040813408929985060311530041519846153875072367609685904187554239718679465336451990980729341270612799996896978109207332986747865790011033878351482029800977545533171809906297591013062508034003245952338332239895539368611773262231562287197932691926221261807971027770621548667858521698773011430042410643229144648181873299987025979058099177129762186835746012297841807426908344293365227050742403837507937207798158315707054981572441418738304300188295020707086461223958327574824613069808987668324456996496614970494598838536631870879828174567361666713479217518976336679940208981628299916833723801463629536017327256171012732929687870121429914577416554471213129335429668419708206759827578322044412290543707086429609909017384450893319430304823580161948633958931749916195698578783354761832412409333710057581790988829058809109989181685131877389259272034613068093936931830607055971020049786924275530883612566864230736125930547727686265922796606177001058463573987907069966873215998057529942194717055345667920836545977376053375573141432975956181933221023272687987390323902470761754983014936996873440288263822965345919949333015850326285786055245726683317206263342186351267250298831777899407723662239738609996963705253146663742070844357054161598311498765992701870478180462100086583769311195389601532290537925469501513015281149843703559264986340686474394881615796269912338572440610208255010735805209760250223119710378400814470925591927971135823364222946293706996474534094861466284598177522630091450106975683057963714770103806137625506830227868622782106549808447746732400994686594689356548022934366784995625699480281398594771672428172336690864865557756725216630912358583372896433992722595894776036688209119015404958020302265706606292910592759874727799897256399463934654260698271141943988765332651206029802028082156552957198672522612059202175828276580304387486243996968748482911023483107997072707100752273404367453190627077724958787807703654268116255210601779300647048653566163773712246015402374722434504001523911436712631848818350002826409226686995833949209347553383139387726642106872900269814363316657551384346623487978204128151623200813128321116791504418757874896387626097897783565614744131433384262699100832877945049473767631394455243653002855423188771986878991547068583916293582998482271007324506937705589008935110110064614085977913224334401133118361458502926792907627266778353878447300110377698610093792245743047439914979026972670068329802760051735408677847239330022750385788459124514290238135468101593728875483462571621285526243025266598744822515383146536936437575784006091949686981101218832814030116748685154767575866025066518140955958351510908272932449559480296559681168223741564914656363719233322388878805361029375998335366380399078755597737330338516389758325143626178526644781405992434069954618674134050862548765448101808955710888867638812142155993034497261185804581586415695484396816095376038107093476454304316503796265068529569029975057375528904776826769416454520748348496730034483586017284641814510611930437691776445669136642163805682027978125351364496675066398201401555452526851234430296816929353921964958693924266046413828977620970177341855952003351556441304032091439891779524415530841943776045724831056995370116689943059001818798135814279595899122359934821127968093101983925556433211783032439853033937869221875449394220200637788569841017977587896376978430113479831428138715972860156448374271490958551505296436555020496541266369964949952270087977959827932314114175118330912255855768990570518329487412426647483372283668553144892747380991278499750393793645280271529991769913576214868083341250381265818767473303152141534485329401478217545507544475077248464273388958014669520051025063228026397035261495971097287194763107769683062044165243043573727916781015481552473658660057906903074830442676930031692198009620153991360689181396882171938928253332430080073367657694400494020630179472916196615312756649340714575619920483472822350812092388433982695382583744267091443969123646003494803863777312693281793985123662242901423728100938530797094153683026396812511148377518140261688740144937557956461743930271761308325035692803645057546215987638490360125060702843278567966742234569119532412013383420163843348677546351057404216675775135461576319097793683481656963672769636310929664715191522787611153956632033450174480760024165355181580051208505884536899458634241898405468264716755509689709848493786862761918343089413712248742907908638082465265692047745096461390566770886339309452977292568501443929685132133548588972979099823787190074333372925067746901611600121029199921504115974661265386971278691118962600561917470602313993989571473798772848277318433679326831133076486706427790946395491814359014235202446522039835739518989701027788554888663557580800917672295448913087811724208935730769798698089854871508026728961648524739375964486045070747909196611204713965479251026875525021269886480073033866317494677616997020287306550255970222574638339096597747830157191794292432922081694802261193805556455923553773699629482137303229872691325149281682528650063703943716873054782199760654241941076695487137464430293168471835737533507999595381617114690540047471426670709070672866501911160935077258862579677158454779222231670113461266056043897190689438439776270367623108354268008115211338383528575461508923965260439832832267150252038541954127921437001712193133007426878228695778145828579850252595909817047633888360189838556827613317180510013687591169657334655756741737573217607803502913079789718770887300146054317597790997522573267166453382961807875838244834784538214079703816314481437135901440641948184868530547569063914392265502357786200036992977271627251488121728331290188816131833569882848260645605417136367341090271104811127666062691446110630740057877885422094092101688797535256129826490965500644362521169906049075141398388074829516858043685285834223685408983799002863308809478456291500370853203699590793535942218330741127356495581034225301409172339595901539535318210267590730610378218963716145231624249611325030703224237341219538999797821663564982879919353353557483024190822174701349657802127315915140091506244664018051488088876859927921905420964714077806382876105196916887699150083736658689979899719947967227488344655752373875717289882548099744899976696717198242845506231965265814123311825203019117294119549826138019005694431357172979847010385339814600692428003173351962066406574896868625736916595307080084193599046872705813212819755804377465818902298692848664129078799888196940179393654243629374612861937152620082075687895061385023373724121493106441899435766519236043508263137656862253597032669072720103530376663659021597819622905779560778601688968384698961412673409822321188016910608485354572459821100588547903739610778416814859371726810156696255945369458014632900856558516592107279577092140581129307072399705434853496108232624256000319609577350235855657344186761439613247403484716384724443658986854835586015610090652408133527905882524578829333271622035324410548125790092740996511839086697374657672931756533726254743624093820152659261089505554496775123359442704751522256098770156977864916694677852954548138670680534406152853141155872916078124878297303323600287680726604800892364298130940231453121700870497969784663197539867788119214904135111226523023077358626023797560096517797236822531594254749768949295246734178428968591128410382363866245690625928097607869130931009413709252969160844725653867724061653285995014724698985791965938996172210647286132327367555206781946254492560004610194653598099867889654121670262224821373004749304475583753519755581204724758572637672193626323811192024540862991954330969700293374454516624713888113691478835892798604849846179763394859116784032718743634063555083299074023322224221754110236731330023335653250724954073098299654464512798553542038621410316878436330793696599596417401610303782434837235673256995283659481099121350270469029326793070988641293288668285269849487105888234100889580915942536870284476249098421541204126256352253247909420973034693504951763409521200230836655196764025458571322083415569013202327145048703377776050982940365176129702619014354542726432105132169548721118593932556754615433011057064483825218309000684040785900132875628939633111626665537001775768709787403900119651352727307534111432419355468606604145920159403155235839680410899356033030837004003662522685391011588552498418031365571019099537994904731792219382635233201170970966348817230927148686181905403328947915923123203836870859795268217305826825894210797505775945291522383541554485625500244101019989989715692780336006524484392816246713234822925156933180493658430603542643023144246634348311608466878127713298783963351844130422892823740901231105350152393868047377255550238868492076527762774825347305845061896489758248360932528436494203482299703085508636808304108633102527982721119936458542403533333839875573561253593802333150167641173180490661552514141550619319982900070850320429797544845469813737808162866588318881243499311820846757457773019259964334110233402195092018969699482424297769160546892474389017202012573542168368405460411854104171824065330524785223724304031431351550607121524323411993615725672945126295630015426435546573504994164289901356676707227306042078930137671013042468443472761822010550304905352345442009844612957543692572526747165773297052404172128299158499011219267874610481610253792840523058489905210207210462067679308418772872153146069248592380232679188090711660409255498045638461673200144024977783091074817162524218287050228633263856700528125577566814135094049421281122616139910305930282096302506557305801381042409558448264095409948720868678706105869730300502913875935588417491019954905422864819734021204678135231338750636860845095709295930036493202659690462249624779586753877591744573674374516641660261038468955448262778763468804671933386446740285951922904081069814239753272817691924865576680795943786426738743914185552460924313499686912617143905533911302795769221642186534159004540638984293402353695762580930794898276381237474409719789711651993291486613672738322818906158910424413513718814802638197682882184083444777847243312793110949010710022220833823470449582486723489275561292084902434736790402872012755583352475736285475438392170684857345885455052085684710676419396034182099898156566155827214988925595805194843523541464048318035875743073447474985515304417796212126198119954454479631029198230666597636638057906505320219724165902570145662406724468866611881629803145284430463117383535440947230816403221643302635897499139113423374545765419473734586866723130674596197075748959304277739486562002549791688020979506824152609928441248395711536881322825361525292376611898714489469296853615362406649497112946323809654542621284095160624809988255402183883677475433905441949407900004946703381948174095567099852829825077671222444624174029336746905739922544934815182126447342726514438216287115161746656494017244479462180292531875555634704893394714131832522046210338927513737569336398434198900468166062477411081033527411543692854269078010958514918561191848910583457428436148960077449409919472525021193982385296461779548387505831820109034758979402268194619188107106171304550483246340754194889716612504096014486421172800901803853630060902992642191983129338358814081436042443405561295728292846206204522100480589086927176223836214076118157593702035310446120893551385742404222588669977183108996846931013960385736446213593015638399590022365668556638219999444641182030517069074304822596792624622729568006834593412334161066093822723901647453088695441721943154493770442636942004941385917728669600881298377611611202918081164348907073959157232612751329638174168015390451091373726077270812796788514416533351855034516153983444504884435555967514841974854782409986624912991931240618292030374540392757774068934464102057139628544048587040494471617406969121138007788020939208847751463910421709962092236541594663191440399955867352936750868835349492629179976382355904913333743468081867232709092559246763017152813081253154145884089299407445309365770390505313792599460057355471418231734498171027082096198428789411680905905347369055218164765530642334650280702941242826596974707155034666708120845571453510413199294439658787017243379042476644278731937884130212265619994181892904950893667789503838651973286908768069667909362066628301581056206805834051907021450467182961084924410965233919277947778324065817619181458324067225271002539363038995009031598734071975267191650352394393689776484307312492053213416159410042911761315032154423285041193965460957967738201347301167774670152356097267148567963655594111499349329462691800271459996104772772135082291269858525171551992819691092887503371144557419830539554904664136665296523644447066114425132831072604680473751757805286806475916464065040669685982642470602958038130762038484263918096873340688973223096799210416939825631118956149589984523157069293458735414222739707614634858417124960555002297499358712066035795785293911288522326824644129103678741743942861327698624141618528840269158704919527055054260945014607643971335187836104225900359451251625234988198161688415198709049566958860758602515888582083279948304638094536037197018254422387156261474493887429571905730163555971336571864118605066463975015664865053989507250596609370569968234680840162727532028079133120801558408886831571124324492879831828446061201433629578511394736353669365716875488179586126151593824080084684449747291870108432686774107107934773698639734009028947033127550745374349923192067868148347349322517898218647579150293527969587419483036041537196988524381417583253629340455937896231329765805763209013950057676254210480750196652302099043760649009840151289496450437972144980655397655664104547961896963995340851674854696210541433753336867476116750643105630304355829836299594738504417739331823221706745725123848252463281538306720211517094080361776695690962747455338047003215536268819304101288508409631522974379239085103362902505911478697048289714084489151009525582986113547755769078165003286828180552837304050829875910478606647433054839898105736058851734456324762462899598827100920216133666337421007986514846167202831595061027901323080389375924758623237096398949064971073907602915492197642898501687735337456160697098707196588390856943151848797478798909409837153217879875965475618048472199887769845388202151024634366951731254202359115272993617516031018777084508872565764109335980958426635674638600563811827736488211652804825892164893252559522021685799970585087443686653307788873289714941609189424730730394351275815634506338684682542884049242124456527000262616659382394338997545448704729426474767499144862008104888785840578403562940585723108097651495579867827100111398980776620964967981849983285816387306848411335622062507062294722706995388194405132315683403519536634769731806075638835087449957618279107127396756676733023499610558511297569539764711086489996399741696954015257022969854075938103396565236500885200609720672772780811381897370438683458832159853273993858253770333790910129789977098132924827112177472126809334036798704323138862928705258802981734092767838082183833437746583509765485192653599144514613947018049267854780040815420544386223639782083214307960562451543225181752058068513008746610648029554099311846459272962803894427659132593050556485429728829433181630738812440386936938143896344335698562721113615631623631549596933244202701713543736869291670091777730349447995483958219558161767228582750199600624391518967779110170153397249844928333441393988643991694307485278701523877395297219523429183732319359625730222272601034978981224466645245186983286242688591264164902439789357186589074384650980509827320794793623350543369927265664804186094752492832099245635363392221611762547060916382236841529176512531508832643060571544035621449098385892856405808787305065960800520066624508240824008769808569008882624144245050726729246913885944161785175920760788253088554443756930145918211652055874714193679291558849821776851850654515787740605417557861166864087544096958440887468838126967707186455060991980901151563127562454617549908131598242916783353057946831768135756098389018111852533447559984382163735141868474957286077174706337667379250589686812834445546464286860851258514816531546632175920407489190005839833319129157429024104238762285464643354802016423472453466404113163092936843578076696689256368180153256209881962490371698023824450906840434048241583659182250088525791586171347458133855733091806066520015992823083096431661744747531807938146344118938350805785289495758320535354358076548745322261639024014732686150066860462138917570900431015336714174888095260839749355173762476034417587781284264088126256104184850139221316031102051458756463634658708356698280959107156193644290937577716250332217510999322525555683600099534779031602674184065874861197338228216256475138834833278591790070738912721614829012832572870442380774395368779208173791498437042400847746856294302712880124600446865696092045690462287079956938820346390905914892374821210707072223751915292622179933923658714354553117990242577721608068274009678954956190175848099186011398310269992137525249294786556343254806141028880471232253802110885668062670980601574289050773433166577493809199608390502400992487519912051132318319632521700455036200052276048787516246570310084265405347731567859463552694217401961515666197792875588549200931038144406449636436445142584016352694669510817068056136899544768388341923218495126557774698428658564609632114173219084771919124568339678462333606837543783399216387861756284222280521134438284931740024803869611753314000514159317165488442149627069490924226252058396895549979076273631429723648922317980411902380970511168360231596822335481214121038149102236974837671227441567210834038290839528385381251897312067432343222027374315170502241521287639457212159344389129904793947157684139736779631542107483724485411655216948428806831584797062833992737782274612332112405146316863457788019791285598280902832213890274099857726517802614677802430480449899311218192307835606528872154914660368409429581793166663922499649579125541972256940834045233978583381494545565390663840134179480131669079877235007805492851021594961586026478669769934657725939027725622752946593533463446496212899474081674784820061787322172187329011610316069454683784555626759211724802050852584244345665793205148504264828211824523141045119449964644331174251871470297102809669238280429241912077518378276592280193781207975850162116582066408619732424941398307159603180072451677368010891203897538843499953164654932980832759367351565210941548811089298923538332672283988413130715193375716389281585408783748038709513896138347792756660288249393341393268732563268785055678680893862468451872754459632183316533651959550152620599233893916780640848442296379519117017763878172729927437192831815276396844854448481459642039095486370478311611215408686632684340442649888070008575168983836793592087996469487729300192995445427822474452443762730074428956536582691049433177872519097915635630990288086787001937699379074173008611242250628092905386373189806573923963663802675060010069033796303752744779527830120422364030933687891833476828969458380314744198379573721992592649441575471090275954704268899085064598990905900514651976314734291688159253993855756027886690147839674147221322107320937075712309128030880527241875130412279799563963918243228987275482600219177066091658674881633825108807849208413836383696138052599813724295006036728451388803007421563423301866288162453533321192500272503170964477225767489408980440995510302387454023883634426436687805225006136380079098334493546157308880210598603581608589822411098564130619141307470699920534164193225475358710972657565720374635516242489986098086322821780313714710807539817496752531921475442737227121563957888273759639907745857063146529539668035274191797952669609824883481556243434534287704788521872000216330378807240110214777592646504525776255834821800862262390348127833808339605228996117954428643218161207347639216684162644117019203972542071810172724938756115726749386951393819092171959831540544213057071521787043907085899440513917839272195592467086037945276084354816982705646822858813304629776697185924210178037708335908431597903022985181501800618894316515633042650017789072643747877746108311253630872681075507750619593735748252095606244353141170185366879999492405958191173413667656589991189594348781429000026371643830928228038333191257577497184394335098456090715663173203649007703273284556267599510500596105801643203092959540225296222310549011695018761146476142334749617036180825017695512537739290445493763628158963886484972831429153275060305899051588663558808243793822564014887980721378112837370702677455200871639092939078316734018120100613649186217852116573533404359862877520883134084096611785512175998021487187892274572891832485625998608519317652584915315364788272914301850332403080662283363383791663481217204078590350305343174615255377420582852013869459307385224474204826853404246763666556667325897647779785640695807840728571603532387873486547755492199738102500526052523611857987664835058629859245651202113524914281955649117209531456581421429847269515285828940567594203449093192956881777794727189504356978455779599705922627746391964635356338768183486929663885610731796207978804310400845353042933722577834302521637296811639443542513974601017245414088228070255783747566268117560938846098631186353352562171060107291164127967377237082819649186958094767006778317545949429911309195303424846365761039482569874361555626168528741260693333128317247513078651055495164331206367183623054276224412314248448736824061289072236617229210508446409927355150987055476871610707108047299812772489274935179680097167610863412868890755670907874036845702125637704138417847300749322488343932169543364331611661763016807009322441546962214656851054758729334338461025431907040665479849062652374748836629257219649234176837648591614479850016200822734493533387070513294655855706131620806109629638004671025410991295161826484658888285838248949223578432126406458475026752424910180631747692693756330252253123574791625294860094961857173195692996762325296761757869963888119188084748625846150021241444456110331987184413399599528113156867150948460068706938377175093914585975037349219002703623829781001752342854934325840526146630652087193913633614445199524369366997702270918550345178019559483875306477260409402980002901633100293737382693986520018979636038930892478113908161644658001342260322244414780518565587734104563463959966208536570016996803316493040285847606475323397876549142776442779151288429523664463488944090497710159952050856037459995459510976726285102883622440024580159219307394223934787855110043635960933771493247095862691755256248747065790893997076546328777644459893557844496930651303191630596282092876190710468885510537775580173281829828440908140211431940666812921085932769429299830862213790583926125404597106466258858774277263945871277338829350233392133419199322307329186057139563962897876862601150954556262154444818118285438865960074598654227715888462236699916897979903596024139097458889246203718386022663392879651705672770063331909003942960894392645118841475817932306454344064486254844852169549865420275528842956435027538527685144069656977743212617620407376045303595900495640264144032964182372857975340754866946374440957391076456660384909824154751895797619408273776792338386630465246959291085252279601159964032667030475615302920834232319441091491214963058877855551147698199927862803911703461951111413744800681573342516718452183730952305559641434648748667631701034354480464802368128436778031122039886543734325909396959940874629719642061290668376908277266209705598079175646168381809591380819490213609528176875101182413599919956846249823025356234490303726138880755505921541119455949457966073895559100260487999450715476942303638788843301074556958536953705601582827769605933694126681842908877699388716016100764531191108145209331423680671197487427051233731392143736657950565009380573033506819331153963502884813684956643518482699779514582374305810245320258796636140792613644580236319865088496222011887163604333364013323638543967145706896972231368626865816278233500533045200717127230216299015995125021842689913750115809071880746976000689906137339645105254946479254414000454771403182536080790438741656522112406477617124443877879062982446146744077120403902001627940934244933328377479214709022954893480779187506637389937706983150313435400707155137121080486973405618606781729295081741547587579235011237410481955559158273163072179380793827850904252814076167963221646576418234972622602313173658448532985912130577032679265699595603374624218316317364974317309630246382997610235523904280740066953158336829339121057379971663214405046195643144433385532515048260475905467098878501857610345964247899801844776694460145732115691411388640498825388400915098044027559430823428063858216680147703226083671898133901890782766555143099679022825590266570032032085842246178244536551828287581386576747706923714114642794536229132258537014413723399254623634180864002698522698428708295727168122445381024265633560842835317690490215670294487433147996504816642767417777083493985767533426315157728952669501540019582734251993224308473301798260122351110806668582131515793377055340552310405441463331297083831330219682710774395761814216481045929309098192351624662793224061814997156275622202222878879590692866915577562384501226919802421495471448978169038910470057706970916439559308226681765468273149141199094071011816186762974700457383627012048776222995513483898489965719636469477497364860541040324392034900428362319877528106987410417103992265078083349009810876647401234557017645585658894211355866385073827271611925296198653558014528646599528090431501400207507864519821398260145737260657545289649384545360967755857049811175150934552399964154112297955507162617165310130749343271780362149883311836045043124594499630682852940961595860259386120598075378824648563819722387135521106070038828800599216958857151157599588972922515135017567643729688219726910316414543393017234726438864780181085154436467980853833520462714944236581886062989054837758949803985748213813170646569107437435863389572509640154492204198287307157186432969971177045042708481155383231102920608185078244682161474582737758473429360463491553685685895713161959574042688299526353949135488709652458492047359192761660034641610600868031820736530424602510863070889119162609629259219286671926328196685623456872777910213050208632783818730111545429581315087657225675617802508548780664402557197831762035752372940125682273284239988911285071839517558667617515196240032010588017421361873416211873736428220154434961814260348588450036578515513629780809385998731407113077941594987495193414100514589016856782471620083153353910298751888437308585204040457952882463028079033039547669691338849092433559637637348282900126143707076388598083927825076765333732363103066202299248908613163283657327205466620700729592139332170274223938222446010072772500402930868232993869124503623255858746390539970679484134911425803938209643235713282890133525243225927686080757092293913435764410292481223007037436727264546037963747642067010970352763169331787760765954453079608078199571467669623932614278242693999687456514119034525682523162297613169698602826109330173406953934916264054381527072019617158881998746402659039701170057670008791125458953805466571100330954687905112038770558595623642723126775794968437747160539792539009619043928779456726065105770351355265124935107167584077740210529226500329927608450197104831828430065202453156032802528482640448330839023064400815887372576170522361201916407676836054369392136830064819732620377578991531797915130476957198779022232067587444079422291176350231048151197061840942355180390244281179715591027176281616246809625982282469411582486128815206057178139340866182976967799910149354935799514892786968097301992309370578277768246009358456357146642652578404510000549926256374939662636672522096721951951419526686622224242230146422400211047830354146615341252636296306829021172658171248703368801341094277083426933366304619289385618728563188791065813675709763159031728757045724455129929576153913792396032637368508344898532744670893990691543135689668060089857455639086171708897501715006907991446131017997916159590031125478699575179753262280799703981104018997786088944647241845611057331405591076804851864235175959923913424125089277995537445693381743245740200297791357779696024769046242429426854948754087966978459171122309050501102401055403647294218437510979643449394350986488073648651316079657037051267027541252736211472107785831883153867053798938600236568042406713158568171064494832417445399616810760418592577917481488698637803023777369758441372428944210811231477116590474070124449001367886089771281419768311439729526579753521174351096936220787829682561036547488769160844278065764230966561342143836207045001327834706650479942750014188373604015011775226487115126312761313281825092348367704691548912023002999073229667001864286278395052620998614120967353804386172606016783199323589369591468561294875004764298860524093564320810227899756376497386364121554101272165763330987740156205419474010531299054100769411591843150525355423238178991689308094001809966293133261094662826611499737895698297184011913428704825777977886219714206757987604684335877605991470913435755500904136578958041981984979990856266369937336692314276280991538558865914777365482357453070684527244611607007479468379337437993106881921258077621684778523704170298737457836801104711733086371956696200468348970882039715759276859651787559705929747932200415627175301376912905042450591395529421187591997999052178950096140072534825846069020954804314650818524064851089021857414330725188832230593545037479010585849742536480246715341984971670455272834425247318034092453775478975426256814141707209016005011890007378589286491120625328571030015276954805855439417423316888144017643341998808606778024783844132490645886338612537783556565178689484896053060736784986418512282412008664018821616256437302834516691225774975586822652607385507813313938383350604859209717877157629057312132394405523874150996282015867754344524225537284186439664366973846736115092373421619561410282523079341559716172182291810977076867468776514442603167077088434270554093642821213117189443677032496673182678339233024751812166217557695181359470721702117823524959875771704881073787943970288374658721417077731271783218280496842555291762635169281218257374004792995796327882902051185531720270506719401581842433757160204764722206056410937370044764609628939604704182236579076213701291976328465526879536905515075586996786389797534913805647093859642457279199143407023927386210903790088471932958803135376885014401386768330449331071598867149477299484367329845851258939898183743692817031992236679627002702712338614621672895188057232737190903085729013715979978943608357966953735589362578563311303812053432885689649755395134765117225478272081710996474806100446153575658653027460968337243904246163294544376075997245788255387949357270611732625815804848294813386957342750406648090763460300842703571148746699844903705181628685348492618510490792743185170566501716254233240335675075240598335488038253308549708092824596159054490698244986423138639283016067439388646614837699229500799492605348547038927692851716919069860816589684823586630035153005055674138407372811557685971209437647434411033022058076911100370429863998758462221177401833033507654250112199827955358424728459383310225854009469089330267044997183650685553613909874777216130374040301314143916822749870967603521037194122261718663427193704156866268343038978386956708241243994528665146982536340374119132013747449327761207779443602513949192615413880133566882934634462226661073234732892392724897874327927705236912125397161521500616345668304276291932848416839348223635883103544620677644563188339302383168723803318568092880607980123372679763990160240834167316284218380474032628869041687472969455029594527828185671114921606052328249397086956784569701126209683184599471602497044633789956313382067122398734492352556632458014154633858302453843546096731094078774158288427602826186953771820185083046969524716107030261170173688469981708969385237826864108675065556005549877379302421196926282693461894153303432496835572165315034690361154198392622462505583859208457860195140870770732729617896749064982279592806001962437620432386746656200704955437201076949335464849906296207408510569068094823211155489517570836003304609469707096266989510624659209365813300317671685557817694056344473578804572170393271158727144632285646913062704092443313658090648383080100578202753054472553770821762303047856880013725627258322168639252119515436589417848847844461963356024861205259835621677422252523263252476872125799025816136069471256921435647816078519763036547853439785109014828594220334756441654605820629842205801334987273818077584212554277642178737712748748205311660550157973754101707474091766144868483714200262792621009075918436615627970274357959147367715944482588651702194894561897103754454765080212356026584824882009530320246785114658730551227590803217371005825539642052036664291269189335095835435701678196648348052793511118854425818918986121234611445804090257104148548809322042577336345795070164015087492877772326129556729322739316826907065623968352348022007809832139390269470415167144544800795694420520821385385828831815088038466411155062997997640532358378407436287355433668441087219487140167880433467467619102825795163587036867357591726960909314232943572268374396785404587666195000166459052190600271509564246401526376897922842508196476645197616952540233111557973404010500228144652322277837864109765852447181079173017589296594456446105953167511777073006289508941136984201371255744169809267587510379527362142610401590413295844413523827966321394808518784174522873019803958508659365400522152644610606826062415770262852897100152226106072321201664264757985261679216228884274121821450703581269423919589639585967919715185668432508714676944739805013704422091786625878128403996856861899171522176104703227383616286710353764137733368364544845761958768758362578147686798305368271649708596348792468245854221909533894044887163764111311238873638790866702378674704881490421861077086311910724043650637749349385489446891007830478381724396756572930714378285347522819419074622123647811714677164787723427383828184216377758768381180460594697794552452269075410594988944414545866612869563587602875430937759490173016315357751647901575356419897698716979978745763996032059797875941242183546485341436932666799916477857664478138347481035476908862685998994928167777088196387538709672382032622115770721835513203731173755723390655808099659634671363548896275677644880570490816455437022849239018282322367292221521913175787074510416574583180480911225717645260178241068628913705012936240143003844309241524037249423017124320911563574551755762498804052010855264803323072596692238600297630927909690264259446249054442842617279857799636137676616229998970047820578571543818465387907144378896198656909965341382606194248350154626930297666228789392896505746662119084234663637147178423511143454356521765242149731691503074179761896551661989907441369687393240526032400755520074007825610437374317141015311549202155886775284931997877319014399795553446536932000562459384012717980225994645216008293063094870022479029822384142824340465332779259699417070340394451320709003233078960304984714903573708904338969893499252423269466723648597095536131579131333768439678273723954067315661744456434913452520618667511117638587019920381899818939158362244190593229792918842130914175780160120745046455645618820982633941587321451030822402979198689884132296166950470571209648032347419152223695292941078030025682011186423193738571025779198022345207691202620361051317483747638936269048805536650577187552159775776088175038112958897881769070908620415747034244153340359657150822296717195327280690155799778151234232981984151408475948125030010384735234760816516187803431435299658727258736113291779706913350227724145375177889766127143269437119434232563765983501193869148558354075158482706500054032792397626744105672165483649820067599760610005352225199476105110599155423852379176617042320668533362026138120511708047684375905935823756158074241311851471626811871842642344707781325968117963987939270293871935910805250152748255383186721812832953276580004412966410682515073704854659751714522961742367979544453234470862287699329647540537226667946576665005854904168245250111797994185902726196300564197457584580419755432999742013380700057878781992219637664494028248372368686746849609841275646198218731799758933477005916392455594715592738411139096281421699045040509809489257468451451468790220191136927270830849930424691725707382242975902365629732547839063450101567672950159284269318099715940718329387117221711324730370724319328707857564397618359193875446260367043170834303882194560351144142119468551188877071822925022568329480810923159932818311812183430970232880339913387150988940787485483586152371486899917491506316461231611964277745373635848751838764639714528855368151656483984057877381726807359760638355422117746956544952985683153072378496482694125140527642243465627248814682277414983131814722372948249260736590867947597470407574668875054877297258532960724933048733025973507425496677246309058075530082495914095067510542229031659420607152961581289864917441642128618531869393565423127778751535572870100967755013283549627246932343094017928046836911378767783121583473627222257117487508302613261708216044638656114681270873099195355725415114058461016193219416102508268120522891211241992754770856665684865729285365331300252525115403198689549790601459682364579186858809726660465195533282130135960266680021290592989527275634905136242944143040212246603828539584614271832215569051585461062399787624097015185985363917483499001710855925386641780605925767257662353780260274760464712221438363849073744372029887933413751378114457101204033919533672391221031802289224814863244784824275919847820104949833985292418752552876107738968175122006350912379683657273026237103031548599124348322587605353538510744722864720670988180799307963897691225808999325381744825079166545541786337414250316195611910196431224348817857448624010203707040154783198535975020851274722922928748355105688091431252669140091125148954919641998086270284678091044549103440506506313746751028971860340307219300913128353959446689728339599307712853770793629543045463482479706483334521432215215057531797362044673977182483385116566019039336226979995430582401886269772392642043998081116978299613293608792920086002583674780974295838642609431048852880827107639676860412710982030511856574128414759831989055870116884881524061748243473936394437585660032986375387677866996836224021150387902107076477763490022048736531298482037119912208219521318122203180806186664958278711787895725463772462446267870298741202764142395719468045438555240960564600567470888016731732455288069650192141719953772399434834022069002038539780891477828740266360805654329275957493019184688146347836618030426428149011514423922231597061407675522972123824516168182365850370748639428575721807704470996997283738458792154226281134396693243117229929063095467353000132852305661927451899882929462397113065058419763778691364175342906810881261274938026149606570927209571559742662432243907089553430460563698651825849358478833530110687340609567043654924071218940642208480154641809653709029821388285432536238745608749691060563279451865452280189950610736161640665466836987865854758920510474586316668822416058389655069289737658671625368798309780550641413908663770190135996414665795291391125005331176736038732747247308872399313241892552420090747530190527190345937325721610526662553498240647776108866120485362639703906493263341123909055636442538366303452314577554661195502757506534397876488464283489947189046072437033303925579116901771358960211219621171212939270372053756385300692443468382302673568617964185041565666900100074685671513073392504747622100813992992919759514472992460300786816366549127687264971879729996387233652865753130058411911393437368636746344593742690767713436117494095496378064781537473374437233524080327558990763449009209405747450333169585134624548934987846345429355027752946773630836670440752366284420496995786606686403787415414773999079903430850650734365891262541061991186000661458670278236907622831588102616075087756722164006990273338900675145549073396511250680379089260996964699043634705843654352035966925349057422784173639143312703084919415334953110973430042644406243951640611095040406053840668041913058797621540136185444232244463550507197204465669097959496962152136772499583492922034482696277559985881267501683203812644677072944065154707366078366916074858831102449474003295141948303467165541913555584294726716257005873457774439534580602516112134593003195729093658415066273097406202279989264488384071020585138811467742097543954564119442855357298480992487614845406546651442102411122964380417861424550460777971449214043091872196364390642821556771400728707473627783572251667532949524741335937291083625515184928974669555510973189115798974425515035646840715109713409216599124780678410878842526673950895376762376156554968284404822314299455994584625589582883563329449723322614895051784622377741310494009873189955811058042090537146510304124663217248384516981178423919402989055292696784625134911431896180696462837031878215941629080950761243727919505537028996134199365170111514791561648787563776279004747312614005386358750329280369328587131524150063131182861650562066872509193068376079605709555376977721519807910274485494153521194101995958994183918113831149666194131879223197178164595351988912773165914396418686001765309430492752883344846605808945911906813689884215792165502818671876920086503098423407118278492583335266236252027376453310361105128569148147828131411319720318494414587657993150701184837024188270704910227804273916497447424667446034204028126081766751670335366724805761452010775351654674802870268897051429010533127607195322774826883751979223319508445715828016788936131388795531234395449337931894989704187107493010238102129296803659646897361180564668488144958425501492824843416066739435910413766284498576343524051494007102391088378084234493517984148941438708779023663811707332077987636657187554774649469715198514633578069511360798817964567028298964915692409685448202844034286521842214839896348320049586324068900934799890120175479704332442875866353304817269895328303921760134578325949656515055363018066907057584617115121109455264340666254696384290662240406318852635232669153690026798754128295153396193164702836499010294279043454845336361376518554668099535776447748939069577512342775557214366439915263068531133637896702865216415155514690566973857208765450890410645276675132221448437468627419837177747089076669730670236249643754590417917797764967634693322365488408670275294627952434989676437814175526043877992920952415189360372146078370896635354142268831325552058776480642923561900337671780223992408623384321766531276660643957553415715012763834483527756351013708931831949651657116269026269038566002964964110835421910486259777845306894261016471793335707959519525483833257138493308911711576985055253339196302015539130974906435184065743205665697026994764387274002047629774945878486760289403232732511646495911524836913738634963471114877575194809864589382114558786009593248091569448394018850749255596890183784077872752727351749266508075844562230457998046531225158617934092659748680274689143380578998683224778835509952395120535072963409941430225066765189198613590433979960548170273413200779403826205666476270813391435164866337074572628950559058097131879790319476477365440738989413095455422490016356364400635467303942514590331772310497107860426140129284637265813334250851732132136515267041684661808166498288091135058896491684427703394317630836824767131157784143708111770742410648953877837989385201051041061334325199304390667054365141841407157730351100015464713540454919650415449361696059450170610205400289576720276972273168804837540442765064519619293466471360703681705654118212368028814422909190796397026385982301954909873311965332854200032456285072844733900413376993533868993174294857557333616102780106429155468617337593918600536565188326195097312735838710676148657852393245758400194997803042755772858507507483060534722501938682673956727407469575404075171707448587170129707735175804762517429066845793534426806408307198285006146870830911165181873055151181400268063546250151699648602406977926247567889485198435614688027802034870100345395793314761011955485177765678867108288108826239005514871189418849193418927154376016599721269914223576430246312875675933317039233793633899586626484219316870092714854796456405299714848498378703000811551918217334743777881088439049040058100556801691706577126955212027634007448907419173871757369659110025343602266303767141871758284175120960240895399638448001327155695699112044336093607796438615993830937762146055048600928164215389329277784130832422665267340578717537059770340936319341238053445111479149806635224305311628855679698545100279254139643458098461690863995402857511213880074363135732045335407801895148436947648185342127071415983819898849414075200578276795940755085271631863214840500651399374236203172751872567623813648169196846869905843900860516960977800632455672813240528683945074970619240146930204914321903741574715234435126133483982501573730467225454782335515199338226416514909762959802855892674994704792792508224250583085472527780989489805655125236149888558444944188025399093892167319730600377933980100921491010533304094266632829405729051571686522422780346753441114603898786891417981286474330819599134321549182485326688205846993112619999163417725633097389229072808934688743462772881726467491437912486403617300641407615494655067490862650212180486655472889145212335510439633867937396538104882315770545863681783579938797750932427626950116477258219045694323502535793456774880276569417027270257482285151540511340987654524729566109547487806793061355323731057779506587100894677928282094026940299406401770304567232595904613188939049227998975242970546098906108431504742726857510025590047464047224070686218972353144680807843449697499481414378780350202229372235748790818711011705047209894576936189882860303093361421390941214039217912694247614890792231433567585200355124052305513412940331614933959966429255411701815003931750185636108547325840387177086045076165311253832403696700420632128609386075618011055276922154523520204782859111197146457482006666432171108945892124709646970041460995943475233552035134234262226189673173349399749863269901135291108786219989154642591725782335244185892810039491776737683914503835414260328612586316373933710165752029867062509153263312850673033203188990698346918870409226304740386630738682723210010238841683422614988342418815149507081910487738414118469235063476758009586534000888410548406276196180031627908017130676901705227901107607828735503917005603607841388650717425844424690231341017664009967709965446063044650266847476581385058101474055892841298110185576813142455044859590475086777449274620888156657259698697644821887769246159616924593803034296206264465920898813521644629329730808301918718418839664073120386410742741244768427888696573618530063414162618630715863775109370420495582617621903605827830869702634391405424912850034925707094554521945203638895583980030557436587534649984332224874633399614040925496569938242001734100774399080398708944670219810197842530865331821811744759020531374235094582626228753761436501537867525161028846964007680904847855980886039859702762541327888579562687478475540510656924230288665451518602581327175662086370936052583205619546440895216142816577624502022565747346823913104627272852661765917224431228847999972649799899572075070076648926713045118368146222790171540273686449980434178422043269023873144332538218597029080636273404549051205169476778228572642106203388104232327068033930654085055405461097567072326527057573636757706105698821459066110338550269823691520859971079706466672497240132139759040349539177590868519375881804919317857426632290093404370471049731877994567951341254971594111244198961657810780326064880700937633862291034989561146565306480887794958189279660143754978588385998997464909189818279442667478101116963973286182020558968781495084160034351634191903894311867676181844583517084121489943096147754009429665455403311843432317250645748700106830127786007573885892537883483799628288581680620569256850639712487389188535306376086821916714997259114056465243272398293262588487803345618037214808975697988147289097257265092973360856863802129803042991503819308234988680496577038120369084141057396969181944695448313104135964281914894457426011925410773457027314538489711096616741714950021735445521849535128344261162996577558375433619523861610045419892456662509877297230234122623625487677796754528404002340914814005223078075779324952400226257683254124810096332651834195083007987281189354803046265091290350390956866548934048813567800078824892323072687451807563478365135547862443537068682061341843328858409328296029631702582351181249251376703213120964351101619681206552248302680800168891945687379421642868709522311993390558507708441173076421184458176262662225808887060965483633452026261124580249274319817612493383041633576014722486570653196325530037761266721780966285024846045572174985770392998084474460070601763844869418807122892518885624790779126415238462203762924141004822696679193691181628806135404720951618273301596231167478850932574985623486372129505525681627595243305614500636452736189580470153757020518265977885137438288690677826758612081272896315788378514826638069473401293978561602567758837115406645322705145117727294645648842130683409544137250979344165804951216274867360871373282911810522832755125902076225747159080556455958200168343116026306206009752078298947979077766761975337388702440359838163356801959189211918565477791990802505632247922029213317118882022507765093018606936006673471872467716007436416925672778500516613019351947229799227873758290120834763486258634146816222450657432020701353607867706622210986077849950034042215190628698808365662350821660125062304566846185433853306425717748195065348770763497913624830111000068418654056163187017775902991726665558554521794732368044862863462533462458732108156821401974464221325474656098272834405428448159725944152074642677258775667262243805733938575225031295519805765377295036973349336151982835160167730663428989535679636964608604044903979633529322160044246061278535979966715108738972790126661967731871875585466041172151447534565170505365473548595401857464422152088135489795479952481020919256391728259130066781623523152295157750017299103362149333388221346937424419368721753595461119281433157052062503585600019279014839201718010264665802164409682260764832163764829198337581827344090009407630213750466229293550833949988068803835999576167096067796140166258683439540925692190196666502212620051316674310962495917972401358386107200073471194096914676715892458578601981728871535583310862325204596805170092072641955014316179966421869984439261373670956836315720232207149205977601324480533997289964020142363628330474205184388007178986120061198817791981198972872368054808589317356787905456525970562955900249794201961092981381030928674138951275886927366114599259053416390168979627616134306226193992741412572609500655069719274948926798868534250793461072880656610803068588484605018373900863672060183480197537245799344308193807816100853173254035914972082628583340643005087713103276618250713415249015327064058656197549250982261162201627080578440570289716479050490201819444125519855729797358647507734122759154659864476771039618821384331246312517714463728506624403785362793018822192699885109822791558516212787494003026397165915598268960262859528249659940623582103844479993134655152686150743522855011984002813301537976972376166098788209198922024020135774069194031685551275715763679128723006582934874985352923000054496514667799016814535704402949009673097327607296049326378823861801336940191333161599975910938782381097834390842390723909112890573712847130841063579997540554051101812430653363627894354803440915361556114074044514667740856867222321324356575442134512079800505208298001820011463956040013511355298078113988593958838520803693490471145959028256784201195558542216006411988467548642024658514084808274001799771264884661639005924500621480328201995177594018904181730946802666893000087206326455704497975949673502232850806629374333740248195134699107382554289344003000972013929646267550481306275074797769668207807529038651496448011830136798822975145606689604518250722351757461771938056795965580101949733460235723210386416387344785944160913023953453635983519247724179033411745992358704459400537263473788848915146236567562192061049522023762831632419203196071600893998954651636987996122870781311272574214011570652525835964959557117824795795868069451271242388962321421457617090443096541017191928858930934222099064956559539089546879503799308418581034184589365981031106193294630642348219266849166031040225173557236180562057087649045878543094628011889595079318458400353371901633846765155228602838644577807722526334321687998711954105535590617420869958616385731875175579569774757907265014242133286744945045185158723994426421114596676367803971371720980011861599605020587675167293621933246231323385737880243283714269152179509016549799439820400837839216235988109293217485903562098347590893019048106920931954983283816491549044775089370720089248082995576075674171641137868063926078293263477032516064549086825601761032552832722612779351495643545215993754179356209010014024571738880302745260912356996884151443642523480592814211128571292935113317217793471175633705907274326631559735313334447649115943828878441957574415927034385439532530544555126468816513188434154074417211234851339476890390713753301072654979422292804011700760305624426859848708456047095002223629832034443133736618821069671656944128304317659472567045992382568095380251494279626831413997768271400756945023766894586574714812212689782596746141203438530713375721279443134662833337000880697281201340677139497842470424238729084130800943042495078063441134581715982808320060880223485832588522243941862715917437030257954289180425090990982375912390696936895373248316116231840838035443528062268627454057117502630889006348499335517869737699901693826588280538511578993033695733855222455981538389970334827938532315598685655038116236876353864956977770308570763967296690521964645942755541683984489763817729213120143869255997211039141757800851817113366918203221917981561635558715811907616575204541196913054398561482975106396146088664137694287377051367950942189913464834480799904970649829075244131308743280213614683968422715346509077991404095835432233805685692256738860045623000557482512303369441969270876197910646015237047930112263392682424866978210671762787059680182817337855918283137870989887638640737805341070304632771463301539490751045890466127756919544500893759687705950048880948781524486870114214971968080424049727644349258007491877793276767787367080381570620917062294977715030418174147369910498084036228558451053521546842061926199719901446452446090262166482389798136241917663803281761147349199652361377638410297524378431447181618156549280626663011561945687084368331517825014222402154212715249802141123717897977150725480291126037323089581839861632541218731295273192621299859812178119176382376396580470055023849028492677301905566547903422012671021554295624583101641738917513658256784201895407320325293088977457661150791072422494135645614147657373458866598267152971192896608761878242931544867171354117373901463741487338902289225802753604239335923007104824321670356628836091400237130388757676183076672099208216962848691157010107380360829342711312549024167559443083984470578110663847912508286018619834669450766147775489653108866899112408214513804541892019356989027001010864222232545847054473169127547834782547610634716423058559880758401922140363877220480190425544809192138547847983682232149505925782106012915247931079527791438411109026500484885373566899800210923571517791325747347766438659725441569269253250127816737478905123579739500712884413722455865782847230572744163936438015603348708267555821445203199766688152966257152442294404505700035161350901656692217264692524559846894033460709159752820430945419999843668965223270785610881129111432652708950462556597002448391139128346920798934094570505427656428740524674655002318227542593964409919140054333399364452465169218998771868978896381647514599289716674740672479374689490204038419358441717617002219729941491302184469543379121932411920753789607188282115253049856833138944530552839569465030824595196529225923318030320761278277343743861078673049038217958101633280105183994307083142039381272481202291031849797444834412778471835712458448969695839077179944331589375883510743218797166896720034492625380314411370542992350343618811508931874016665048317297790701327002112054767517936577819601053359725538444287600454897676382140403757616724832926709114245913728836528372181711937505657330396915070302607010647527289927610328660702388734433153716738388084249898909432166479479044826220340760356778823353198201616173536079499722488011963299465452892415282282909690579536598429544381007852373791431146151370510972579101065337505578646920861915143956090212571765895092930764666579117852435766924821147944170050288931347153063896685204240372677381330747188753716691447080878165173408754275929395146622562450146225357381122561918688839841647607678700449610719039247983205506355228994256464126803042101876723987672834925435181136275650820685323829729031025981566783184912022913029410974827407332465304893651664996222286137143945870716782692846432832062459397390643675793082547415324717263735262245593456841761648176616337069048973856937868575008939625978728010074278518183298880100849096302283780461651789628223544789369489563795739841200376211111095806638317831653597047128934375865854060070199501992656232557287896194593601987823981998537438982855457085659853820525622661468979354310148549473830223692393741056161495110991763854719452218256949230217243021865037065651216069989694369090802835621147749814831582483562488638349664244642803395710789913561965363437501373929996542691756851983953264039069505135615602126645105775931358438948795015035048469866598236435074036319546250011301138314824205628434411451655127890853421547041334088700916234102523729327308188405055387143893005526449863291862647493727243811329146396991300423912455801179736831836630833966144757764912650403704496566441269916713041940092561892439592237624620455206154410119886227334008579117004096649621822997287051174899866189921105073254040316990680388922142621414155166221477699404946223007065780804864622665205669969402964904661017247361743398279074049061090678266970182324083707033388009529203627339613960346626297414476372682231768011852217111040016497981183313318937124905058907400308850105174337504729125672516774869556350758173687255698693458116090953034605271620221266569626584817801018890553240063490587664698309647218531333092161622761137399844186967080897112798700276380745994216134386712427193272062840091667159330983521228645502706395971199291874890556589783313053178297648590724092753274617865889132477288138239746323891559587936722991067769038478218855978601332911632126472868148710940955527908570887152699253844222909551400541982541381316947815475818266913487505545547496725048583310100505676128415568677522898953427799812594388032374275579421443675980215857841395066062829082890523594204666320303521231430372370605299943039544887776621637419862801439012413892111355257066423194831250368429623863805349186748282487223391538051625070139294129910287378459382675907854279753200656154926398351799856931874013167664320490465341661006886570059946289658559448991950871197901206164099965889442056100416179123198210123012381124467022770813004096359522915569076374185094728099320383890198037854033224877649100873244495813301819273820321143130679151496294511939087288932939006097948241918312536104585266689245315025338138829080776399957865321842844982807146218680648142816905416142788105799208735277828269652903926996629161784419209197304922785795950843490421746105196425130912773504539513396154065720788252901935315164381086347267191899664506992136397639146157604475996770245389716024925638887884490247418627574982948466273981036605482446493572047820277094777768750886662933532638432663075824039163400991983047036046499911026531924178589275915182116733770674049319040782965853821922871777975140718668355749574453055267050448043490361593852750673308531375392701536904565627950567999697868980618205824549267800040392902948909580897681174533069739676914867094138990758228540041593445300495518972984660836874166145974981726987114194995470963608377327941927959260073539491810870857543106764036357747604898893973693304320295922559157420827469462296044654860356691270404136963584099626226119482292805500149868734145158944307185211665303711986636290636395556188965080874578499251266440382737139210704879510826871094370678323852735912645448953595119073326950957401434771587797011303301707714329871153387070984747506844525433949904329001946149917495974391641578882462384341176427515353887626710204988244713786664874427228103279479197825834052780462152811978244016418304080775183611560489694724730986952871482585437253108996535961301904296533962761141236053391759337699342190363384869329967115172624507423784499097448549802657122570646145468045280412313256519217774696789321240207063674441072331754966264756861517788724998069456924296080623443070737935441663949273760995693526217435930743071134690636078138501784306888108339384303506243700145177514076999023785962290350008275453111357895215001283409389575638357388326550085089119137858278881416379962388941368447072307858860302658746250361830270973123091292409468441840663993358623598437461127486735312989479808702770101525536108203033141409355044974505450306068158550857610472939655503860132004629743966899300454872485615952626128617789960602066042273005643224416606218730550605813285907653608700076636371001166017315415329369574380927505623108444981134678011513049560802199193001380803729465327039280075542816548482049600100322929683366999102244603369145758767784959655133325715219043344247518818395354085442855268908369958473320537855491657726690500332731600924100438582162394219557341522637116700235685766079233865288044570575608613110947824384973735234363084107355508796105502701188546081320903588213099754541224983981019237426215112252485777404809949588938039654103297157524349734947493644883163159990960201528049309829664737774413067658282898409805729819987971849489407320824700351120808320732728163810408449229037008904440608818824490126932778843063288054179385092202421004227563851418167669488919787958871548273354868701283600566906293066689236259473403222859839994054841083290594053434380774313225969822183509200623330047088902178147186807889626728872212426253246102809669378695698181426200965270130087714381468587451604224814230823566228662476370240138693206167719664722735926999707736775463754822655492527736627836683238567925289357649374830744043424866747638784711127477341186967715686431483840502640640899504749025537323597542343160912752536176856655116992354602381744374157862741405618102563936106592380116227965350143407342849336164883455525688844045670598290278367616391017004095269868044409627992824313683366014794222141479907053696681355179523225850097953516256866340294221108633143658300425911709623549980877232012021819748099659622099511549499745673644798874772399938087852187766148304641002555550047351965302689224495543310074637180968943855817759924876145407884862450282339353473456006405201443238713644127503314227675459870189758810596192476852609511195936113270782515093448855718771867538256915473867218745239500388636640284139334406192737052711411055698004978014005908686353796852854338153046577804867466790186509377056369713611902146100735995661426505752516493441821674151761524848469444676339412671172563760415728979791871716026915440028376189240870898192983826447532570854117003101546641991984018148388974785432698290984950911151043308410965608501661688550660000867504169241207989747664505504288680775557326850713640985001266620243217613526964460409296162728548053391161239312983457068074925164883707467285872772758412477244736117613454172504825024129232036313359568131577582359042776198276752708280071828559451078647967395585818002621405845962082986091442571920849330597336528205205586339706693295366867581433000289396514698674353680765695761055374895487866854143595645522260244229561329406010121103690135751698662738976100216156087461528182361663073286280150362595835707523498699729868565499871623774888500952675943386417187150083966817377077576183610795305695076691711425470811178152707236518878307428093135339365543936804558899578419201946515831848078226882878879455588573188692697268435017174354947049825899568862226299263424366053262015094723101018233928141855690820587012869157851639336078287086720133233459202598702408386390594433123727241407106000604077705797354236144386644105349917080920775086889923733156724870243311282512693304916670182847752763426551614601804750132467110176011335043472916990904894167591365392637894597726577124064414230614626298563954361563947703201268470281506865755479709968082551147638800104855456344017521718459571753576309837125339098291418938796869668984917273008956150655222676718917365769429293406355328958966998145351407137506496487767141432219804740335088783762039467292905473562192945165849662566569459154377541306590600596814769327791487445633494883474051131247112590047544277448992647007626432375336898213161181107252791280343484964203780680266562780828402458724008840745317403797641647813013529897684530913301990774950817723422655315828358085323082881068101855052288750356539153989826682401038801582030837590522622807311576810249122830501044877862947749056625151521004223153282695178073986307736874393515635873034007691390283593031070403527135489717514847091445023270186356856322057498170147491543771014910799660754585965649531758440813470048086703630028707541578964137293853658651607842343148301275937238893759957234341615641344357012926645476213944786078816791287712741233987048724539131388409767233156041624028037491679927205397222902071504410989281632670105455721330029188460582775252200607297583303083322834811377740742703700571156419173270221838647013534326164736051902955601505320555526514618264394598798916269309290779748716383629220386777398214396356443488398826576802261833083250922145921610399978766773823975466713229316401783340922674058702666390199017207790650995993924889264321622169238032866787091418530100024309525998700879919955310276592196153294215530943550606749433394246033521849814339338044113698658255753997524931404687918500180907436200933564580292485167464440910076482159996531250077735450273055822679158814979063247120601628323540603495947049501767333421651428740346518436680983141373312235193339141490061199898024783560809243520777089141894108278241371325908931167818173373704778844053609521774400554453540584402905711671836647530261549179132960934315798172708635910533676614934888555491508884849068376446214100305909294520166179571182992774299056134396593004913762138382494697292185608329045768663260203769120802588162677937560365150104401296935597873143568038035843987834825512216081066793219588783758859256969707501043958516171156524116481659928092578358959306099980985412623919111113428077879175089634032838934342185364834510306250055759049090942339853680732854720049301074239143026285983888060874946898558059624589747364202801141613933804935796480692703550941308180531562043150906228956843075051971704833036052228822312025101788071528859417659362232074820998853291179997295288180154076662585517553587151768387435163226560582401106331219317208611751911611027092445758687650162160795751534229030227080646735503660468962357282113525596231632324954413953123241714003330403967649611562779628894358954534058850692075451911895420856157961011549549258107435449031507567010794686760987430712867589160834053112554044555948968503923690335764411096503640987037354982184834750235543797604307475193566914442927998054642244614879556542958239321170890211969035898504518367246650119071710466445156432825658066671602795125413315719225960061520121357153781074222758779303306611359923196216408856301873939695983531533902667271836123036543036611704982591219003781679636942830768597876462479947946769595938528637633781726205859532638575336936152791178963326239110847956421597061545605626909137300874101403856724598666854687748690914963999212758784653727826635987112092984498745701989918415067332573774034530805406293481057069013205931493487879878993886561817924926295703643902042790894290426732407231108273483137238841345829230510742753321213370297208248446931227187397580606696561366475878683418368054408030296827007831667817275950032510163371052783578218513960841930370219522282096202183299926728170192094930861392369494201867265946113982848829333785266632341375139984517531523118703374975169619771169578725821969361596603672480671475017807249179594190712121639433490417652996672896758020377691671505569904042146047712912998939484131652183931763195508064501081335687174315815904385942857271400121512053958927961139171008493176220690785284527233541896569578971503505269640289722707200348487863578792780033486088580367239797237886018765514319348477180903281795082097248829545567561961996155234688846522992773645235772352401998867474400221507971901769176972390162463331177982514090920442975471226955393332016556806014473386166248046755703004390055158829360747691127063905605954755646906102432200674233143820831691213665116352364344997557944042790942902865934798798280796065099293356797583135217695046371192479730169697987257179962689551573411915389086196939565302717145239252730338999530168783776588436617893533534834915262720369342456790499624923966405868977616413426568841476395483281997902607073971378337150359544949504494638989348626845363381448338809507938792469931683362079952575938270186715126176172257493202979884431535777424762258185447289274791778712010128841120805578255798342027255983672264683939910206366152627365352378557447351271261738534189812847499236086419110672836272668009591350857864253024450875177948625927183626379041511757508363203868354559658021164014168583815229477800137909091003827099563578484358146822882321236876865978341710674602503032045620453160254726015371227208176460660907014533274228242534411720861280572824179912004417246497473028960782016339263483630616986918318665144512178078035134680587452471543954051049865406942632426104309366799028496833941851226666905206937986667107339591848334207607177770893257854316559851377886020476893194942146732918327292284020985877353936903027843461597033075292820514654080759639325312804731957806627568830497623122750984752425905468319414522231920556459260178423048532308345681548984457039141516886929095626606121847878941790319099427732656617834154413998640729967532833542702759511423272732692921607595209906468185783497458610324078640357777224791473901198079429308118889803065538592940423979377821177575367599495841182497287492477440680307386224700453261842855306439763369942356562074224371286303592587697693909625884147856251482349928745398249733416712337253659255724641118867750401174284583853878196640320099580846707730273658821097916826112578399837372091132699528061807294539527966709124639590625215433439643896143829550503802283254442897455296861819767033142408069733989261888069729281051415541299043030190087602777327117810711675174771659070634688988272814911309824183983987836242877593533708429024837020406121999093975871576269723349429176029771692759890697032515087609521472220500468130730084331855448847619224898164313895554655567338370000813182450035887887809644486690123782521780953459951521463562236512567465319164465413633157829295231817763356480626330302129328887751651616984915631469237003673066524015388171352778931077704963322730293028831201020290996614093674072536619357495319962359671539071044708524954618929351924928006228895228769048227494875380898497791642133033161343433147101375615056370976241321858568292450336098028577367429890265855829680029244670909478685752550447278138867517698284940141259395716516545348691921649652956673353373289539960899234372776678070867408424998380642081206208257620360964030311419099549915433212030002901554846511758151460280729447071315709320633721045455901401859575671922512343434020971257073007546313181514680353408398312388971220781033442814050401681031366174865974288188252901730239192674675455448423404263598100897077330836142148110817782014229588105151996647174936564101295949005184063952709443396697271193052543082341725890797872207752100205038544312430130920623779279402424940808403727042270988968605142767536304618760388604459885359399379535632718720779126564695316516857020217042226988984571318405486914590364517940698469440466395618270562838807327143535479938871930902556882706154912014729398356557863993307224107792434910678523239907010756485255947784268951623516499253710718033192003988403640196963872828089204713766215816954854081445110045428557611792407377623714052384824264878470779728195839844660544717880521324057603848989521799213593957674104404374558344257126331591460673217787099197616577415573700007313586445305555667660393165431964468386130994995809919260711215402502508703638283323646649831130632173169685507314124158607251686434945043252641619009725437303646598134977493215792567285006058566505962220295450938349183195557771227872636864006303912962395127363348358730687057172546379752500309094324092903437527194590308913385348044339810970512153833795008239742013933322871552877294171471374464740656072318182963695954261677997325345763018440679277668303367506560059916349752032664050253494843388605233855524170498931339603473671725146833653500005696267321591908258507518355446486103890304026792429015499512746943830745417969200490536794586244317467638724501251621707972957440916146121796977401492664997942807291035724515655405588847588113492782144534750732920493485502216267675871034029404678531019139734568689653978314460071535905579386429954049681327815699270938441153263306378989173856618140271665917904250487805603277578190841498907863888080498072443326560408897689135001863500002261152591426387570365520482647196011712555302210632720256810439554977306725722446803451101998966619033084270003051140556092167427536073190029490897969226059755431409693657878496413573931724268071125729663115871946080889280589008399240086625281557358909266729344824702344903323598073143112254357106860505897344112632891241736346518740936324576397706248549654927871649603500496148383052114504652431044604522138754027428065700360266145460968544485285688779977945788383396055493124455492132378118622052422728750862631957406840377371637490664489361823200968998195197178451798017818896458627198432114043103493125271022347607632915636259061520349848835654435636670787386067713446140115237238877690159424321494147211950891967852331083934692367957353817967320041580904508188983741671530292759049686169469936288490314922771398014754329403361713287943009832676873662029754046529864792757577773083185637480255735874840090955894630661441325998774792788991177698666677216547762806553271821674555375494366734143497500878572032394960584703410685477451792772352723726180048051065449848595161461002836675188119164939247708603070172078583407599872381754116165240787805994539081238372781129054964876604010059901699750870389923637989032138079519654024125762442081914200420838704698929438582617698718227489527504519018363089057696190355681993540137665933849652122594295406793399508650396849902727401903822111746200993389786360702150977077144189145244933253283806764733196303597294169463740260110572562870892241622563959031109677293872639188641620912649443982370597818017146226539074988204296717968691607920073522559890575913616728533297594530805584322296990140815877249454856356849608752925620518302750651734547998006360979470984411664542223478123625981222142061193111009245199295203769426955138710463829804761372967164605678155482647051863024771025602938198806977139910136666497314780226046744857505647636340737449967934274640059274858017942625448225933639552030152884780076697147704491996232583515642749727098928267983432892276208971135623777783560027265853738522471233953637322703777660179246440017079205485487824222296978551103514288314698560753125611632154354763387011895733008694388220516938550527543406132320702031513795269802393169259379459891283237559552293119518475105198052171805343958483171452859959764001503785451360104945100915296016019355780191505418974408684731484840356651270483948715086385716590694898349702156532596417849765322178754902070565519934449322071085004124051657931428156132018082180335682039631708706382214792131180573027463778636657261013604558827438584101490385406227108266218284475447633933568466671215371784762020904001302260529985903987017669471124940866643200728903867359614506052747783253700974690029513658100625278013243803780475628087389884779653735873293449608083540462355626805941670635374834903448711793454404073574429768656889236063734290756837970730339696504451699356484701854464312638923220302688274862573270581839917962717980226302251494863212113104600601545469580298993956927292025263815551975359412884045472312879927484425060928924149917733208143639221391871942885540974260705812503882245130180718913066794435354503358418481010961555283596556319876644950482068659530563709991694948510680789979598137746881834535062957298983460892561346841070769318607994253141517797681886252040455556568415628738644612932038856757228877550576419717930197986874070506177542103923483063882992841778550055007718171273224738459303130671502362529463357462990183317720772537598021719569659136654670426426836638589205823736500566983296465003493564563394535192005624690829409425722650034120792451545664858811827991440092955273489142901144462166658602946117531669290311082063476583995856544618160284953088675970377506314825232437151068831543946897205454658113635682197524643830755644723618817333758662191633471675548426575610516062024630702336726749535908407895235368766838709579634074442640801635151217288028728335005185609682898047340785037679842784375182739328192647765653292064270529655957231329997416755009191332260323429596015945346736432576956125008898663457112291435216045737775623300777517954237503407725754025413894546058300400751940445508691039654603272085396060012040751646774879964791002281024081128315211166193108721332951666397172294042334727468119516941953265373922954315407905791490121542269752604826139172815071626459679348936626051860597553340537673007577170778823013242644162186392874919079369122365738448607381946370646632137478597013716789322675159539709764376186225468175298164059867200911488773012707645881764856646303434438892482946092145909666715185451726740710235929611293444507576043396478587150979446238789158006613609928527733521804121910397768942322089083981541064235703570526454552191937802467954724205300452326847839026144149108708020309702251904141302912462243865263996674192412201841996902493226999148201274734505027389530531409941350517250003045601185579834592251769874160557924446374567191045686693707556562651998181297201352970834892428982577726398787802613799749526913776213178008011297520275078015099280353147667679203851413428533627207785115523751249883445878009725172174389987333760219493687684598717001879467097780495829224348335505170134196087180213972019840695228804036740890888381711318127198982030401041617541673572149658183233158323260988614961193896738215333963474078229674134227351104037116774376903412221701708613183122111143367330126961233927082596108246903553318680856950686162102379677831920387564661426111426137756961389761490783134416111686178121777208855850629628576853605929090779747204951688613779753737462861335539658746112290308717820305426019974852226201800050265847500023092728883739564477515103750260916170408393715760723128918975551484491817073109502445332645580957915253959244309407124328001873955074475927250177154493872020710186213865135598617807126948720165863324553674460143022543148796409834144904088838337279532905019298791948768031657615835030511617728533422621931821004687939354673630575067135050066102110447801193453446272958021877484358457544217595829610594865793679512257221597891735194550362635150647293603682205021621223789038002911027624592207490930457901067135330918729295628353796424679062369754071893807158664654387796606785158706403974659284382368899749774609390241873745042375158271041632583610042185111601755894649703912742547370168661785486780599446749149926500172649915397711826362301588172743689259069964839258250174251429805990829838541938917848237939419364365888182929610217259088317114441439363771885955603562183671035000885401404582167742120603069037640426198803200378444887452157906950051492641053510065772822220813728787806110578547245585316588512649538895295397972600813575073334505525862879339795896778261436692755361526360677980076136453543193963159477352170322447259735125555759340379746481481241979288251239837173092189673026789613743526574047689594515319159592074787183446005969045523960336496259766112802971378829035101023181013398224052847741312399638484113726828391131656403998575165044349079471420616034135399699814592086592906832606347209127219361188236416224826587109852844834214282619546720401125021300633186547794806158829735507881419657386652556148784458452882353140753301401415553623609233104773876480216495133006170824971386937708277452098180191844947308866646959074704872643074671540941139563898561590581694778388499644141713177580051891896141305437434787759692078632321558359998106432616330002208322833470445015218927577631004699907219651948626416295154265887012414253914628173632309810567013295301029915288214243130052920002348806303129996897990478148007904101000759449710948273278801279607796848036689738920870398958996804638378337800429563170389333296494830188796364457932785188342425851329534821473993575072986009399044706569385756786370500288595914750178077272410940654418114299408415405306353687972447827423663461679406221783617821924597862817884662133047840718473698555502400096627815346234386569785971995165329010620013743432639232415021198129775317983237679547450666361934275671927381101882413053737198425387505992561401609811564539887098211249014213604731504715482683312180754590086877383360143733446143009979251600366106258667859951767471812135998278206716052566204000975843309289683267787821363300108878760766541191392668918129625026265407856119378440703198753026040801837793272744435716577583800029763760953332379287774914325453470368040423473013194294357121356672804073536859481934319249058546474504680279618103509520944670212934435477229732669733324771484006500328477196079673089783122293609599536509151344754912685462715359719927109413788650391696719328439281195169173369854186840849983423563032045746159589132802194950275579982233407549514777745933202265001924436415662785143772336736306361983144707210632353881586561571136083894689612813387567807363165273807567374552434498092180478733877716383591724302355850773424467003832022684878953695398362515164121829108151537063862213546714772466940557929614318505915016333885034240316302642866933398774878199095891757163812849922018887279892029171883136238053377323940651035777311999631447053249154549222084688871030328113064297062660197499951008496816071396359395855508332010846990179558002853456400299036699322284820598868403060691118536566590543668733285977174238745718961567716323697000977042049985022461698710335450980165911524189040767358084494428457527265716052896439574508597607543425199476233785337953207061149871215004207298222902761641916642885015602836378026048450767578065112403276519328373005061384411093900118546299848558758861426430385416951780930499766380312622877607652725155581840154426463934551155431207763326273509014518347365729169681694745972440629532607564017975712070971328328454603715871048478748036839827484862722570869931629815727451395089901282650605996747267132760475710760051735019054060515249478122197935776488854450199602723482852030156630369582661763073746856498360194536995606456727882198579216347891348586198068626456255050293070394411525696222389511025756358888158948896921245866187659115937806491372855865483326986817787021199432413800642919197006215054713599924090082311250430857361104270505114399043973308910934645240026031045049551696127532463055955664051439239601977345196270431100839894945080295974933460225244667931411906260606879160652020498500512940814974047174255676738700933543859331940435472907918327436362166317734554393812413308747093219176378208758313934127440616170722948096149274350134816952072880345544426390898070633540734253863842307376371448348871735783714828986063428729231109623045481743708986659326096177355806121981012604554862099382754086897321592976908305732724905335916387273930970787763119400469745592950171979927814019797737007892256769752892864392481709239572148885099460477616407427362463259214253943765060303961534593048905678784791582514426263475334315000963157970371375300285946333020565810877192278218434620648086178937325322612774279595546936993685644858591714364506246419605617932328761928006377462537473827804310429108587393289509454374874194567749844882128002230949759156683562859735083287124470562650634238559297155474994033052247585048307392996353522195286562808184552488036422910650579500316945646678784960697241519222695772249450168703291749600088415111075866776585151440747041569065444905464149683809612856768760537891325716258054759043286433055759354028087428058060520964177659843264947516631932848553790799757522371976264579619981707243805931044161473782496646876627161971961347322515383006906801338789438033845725005684629335865750960761466796445427218141495294481253371587377988461321512212587198974684071235236320845689738600504621516129241733698639498420352012420536035023368481674738676365146279329101753091272147813944188250958037477959904060041896479629547481272733136970385267853111136490575757584625129173799435770526052183114014392574939089921017065201282272533143445635801785403155838565032667166987091644695004933794931029332299246882355257940617145101386671784301427008799569640717028703682591984472547824753217570342209210300971645818030637133551814274919649509904550585077234118511896621728900704224877206856502461927978156674914890814685734780643840205673032215746741159049270248476608934844647135709806900725990217252462450598335353891138574303693872585794653072361168831554673427985505989033345024030822575910946669252150213176362188681658890445092767026933188638722470590855078793953306761630408792674384744374906708648736987327192832348887233022628345467724359000947103473302082095885107522057561377116505353021384568487931636887793039173545321578917702899025035853502825760130587096757580132821352966313830884853355858649210819006364217619809101040894144856237631004358322402169051097303635319318289797672650376671125218449921850186701357491840429423599762302438849544247712879901995037442055807740514417897487328990206155968414767238738274370833523043432519654632682390381866454924360453939676085411009347762289571115896909815927931576653471232201772517422804623513265529151012023925039157784767166662300807882139920713503023305527738494507345594356441771855882647743108871309371742409613184976888988103080507805657813458660568402708194010220470180225426761591826611028238449971223160946090495222138705918779113923370641518095485777547654845949181509432411544120920431017342653730483192823618876251346324408845892170969400685375497349416034269583830060992191525792330369583282485736071489629150301472251582534717916897650301604079090023495957605266221745445198268755729846280497027949315064748601208759264630125548155101128278978109367016221776097461224601366892505541268121769234150646929823285554345955812978983659179269352782532015022121847333280567037771186591560910070328278967565821684951737808515037938800615604203416853863192708664761114703770390431135825535456984433696411658887603545455289649550400159538381434949528753856423985700775200922545128329278712960365887162203838662653358607790636035076504779683464308535913244364692934718820359949215353287886523447520850958811885225122210531346028686055330991182294257790214192747013635694574749293751013190672356602639674605154290298209846704653512656519403778035251805148984774525058870448711279934679156775049249132061659832457604546602163844906382183250668788708468765094711721862213566323791577929925904203374101550218501459198123721400023339882542637128555869480618147288218088734230498121609900462136822144941521446158151667160151067808867636022921062894909471899965715538996935178528557002295491425721906899399266509264623520339059763514186917539887172574805368697493896762736957034013268835045720221745949403723721548600146398405822764279775770226441093919280959972340039895783600537703922834562224144439541132302066651499796888667814906036742642883002677225125457318619416606215970156335974686668086559883236609938948240696672007676719813894893216397197438073152280504299394303719078972366602781533811873690740947394836812116063428553402410664963201546860255715138109961129691322369220006097893886235051165971100339520515506243844354585528192657893032267130583492579203225534197784111421282465065215509391203674011671814926680644312831669580411780589736577553847893121844594629580423897212803439443069427107765712837536026515145666455171971694701851690218178034377486539466959939157950269683347997448277465679825805581643024045434316666776062959719535219474482945999903021840257739003300429381922268785697607336030606043264291176052211468731114519645388657817303382923058709933388993952243579164984237899910297076988891840950982354794275650592583070989278895051185512509277990048014675939455437227927529153260247003261378408690372726136787660902611924531509615766073417092864298440914864814950252619420511005063139989465230024344219839010396280766554317536122967859368982366309345127752402122127353422772948650281522779255124897755541881158623276205638296581014038002914707953355827589568063368779498009062450916059326238679935929673456787804778842591163170822474375005678728990129561973278337960926939926430329694783701454892521111107157280216127595522224106501595337992440756694785707463729684903780496968404229920737463360692456397711062344222810447921463471297787123820895099779637504441753887994497896810912712157238261050117685642889620332655068911983176170313644387306276238346602193643706969114579813519026643512567312348099715651713549271697754977638993493653197256350829148030907036879560083151877899790617362837035591794173320844198311268606953114919483529416611944175750503468351583844859382904809461138066354661044177827425059020246461721144089803005435249040720119451352969177261050771597587623164624598921841054180869102997462650863408843665317064289881514102325610982730407193588025062452040679024262634932876968990774913094971914288302269046365827940545554220863087147468866308268878600295364041917050156712761543238092709297228360428574301657070075353766059072279965824024752980710589255715000003299846380411371846888744242496937345597940517441427681063327861749464017486102765827726296010106782587383222687787498057383703880846614593716666437113808898778334855193901216642766929594354917577146820272777608489099364765472238833239530685222393753403339870775702401386704929057956495449348801716797623470937588930619371933451395396481381494334574882582053342070072395871199593647667622528256900875594061001950376910706477502639692134872011030890977429459791460822814977486449295105646425327941393358087075487271876275295254116838831018946729058243056141500964775867200157028520336972057139683681393507758513872217790160104165023647320658142985989987935679888664478553376632910587506701131305591290087742740023157703375040210900657899001582443834581588131091458555359425744750503008094786862953988956679198570589461619204103927387410887109675312194708065541252410767734721111890730314774078102396538615619074847898661136880053381992569835394090535132256872737848195160845938033545964573164890590462539671913160359302342761017781492458423969929205879887374246691869492724641584069327288224431202181459532024924677239728219204626528720656916570586223451629146190592379966328755193002403764906806857461782520195386705187354232962926522496948628024163133700821215326005878635284781526511456250430251052484975469870130204647910365328598122739119270753893468926782812320133357741456226490598790755544780658125079753654011676657243917492910183537047812492161225995259289653098127567827958443813164573131579262618400962938076320928748435253413489199706689528724495418045915065420748684914038154326634898867988384476769313559927631980997550995855928492101343670532525317255961458336119674467098730931412940163513209733104097570858599113705426938320511953801605058328419148023811000506290908722130945926325297632507698360526104540521327184546592323486473063738765289560430572839321792819558781319886179576637980488102535110249575363093930243136588383109155121002338081547064020672037208647524336063244243962582278793957208356908119041195539752456572150292674083162826095643377744875418117564172547118786954143664652875327871997832166430228237483432319530367213390512886035175709655460579291729908237169430710810019047846641703342878210485570337957662339904066776304698087005497613441250476117899827659157350926646338180620293011841071631746418412436042849623163645769690377280909157588904681041336530710503617288069325228528201552631664401754964696216449992389336483313683458025962894776716724531160146875842653403661214754025700501929308484769667189127344491990434063523705062748599261556142811663485095646334024346711193165611285740781294287189180324324095081567942972535174766134194738416780046796307662650181340120088136630842167560100134924394067676921283561980055857307271149562074356905166089743002855404595675564348732940557660044902539574418429471449685936644598053251479336866571490558918123605498631991766018908692452357352644314361409513197647332665320708478267566884933173064880545553001899047565101439007199645349984573609196222170837013819962859339681105360399761705594567025681200197096204108362715324382588050455150817176775014152470232402128569903461910234573490609631970053268630855190789954770227004438449668777079715106818307272321075440113741608743575508588404400714557327719987193264832136601134482082516184651430427540428802790150045800003958831006418665637243711610607174927596302062514321410283529720355172101882485927051412047269144093122606938289322065116588696849774500322798613984750664483085110170237092429608749990433028292133153612770643334878515343668655068855528658087630627746845941549790081391325185508718331284419831679723780667412101944848766594507677159422902366079279152997422014547989439167914743126697194506704242204953276016673595056940736133718412893196446210485165679126440119529429209987993297817068357549577955115729428532876908826381079415462688172841088431386923872822976090306143925673766996018938856946918005384990422886033286046238446567688683024118430950682459627503845869586401146057747570804328462133989105680089556567921275166172816431762672372565508945997862756203838302835474157179288495150583771143783127362927198898902850860882548631892783158287209541000167361932683766365913867351701841552246982194870386938922688996670360614081945215979342215510161658941562719283518974327542834887207342426573355029641775424815352603092047269159104704984518986772844219885846711038866000455032830977634889524986364102141776621874218496444938564010539728760221754574530631491805738032079746195320267675382106606474924855870798889840725184693932816016229089216583986898871134270309753960287516421875507609001632457247386910787887834521431082329183647305506294073409538942897129662314904036834075403988543535967122731006651975403450168678010080543228717069023796535958202804806708692512612277058583815039852604528910621448734850914931003913020519799989743068257988236619360481404838974217420303748293572249725832652824248207912066286626522769606844917774440292672306946292799405943819700117518948818338469521818870708128309872974823491911574753294430937615855902187583998012452787270019782869370715151914226989812920701087915685514490935617578873988618445063217739846331621724499719573261302204357162877201241090541895829691443627842754055707612597012923469125900629759598316565876953084426768976798918210802465445481663696697097964492838564608534414315751771568460307987400527337645740440952965573104737461992763309299870852813094720227282460684364564506777716652794271448725797415889552062243694181368149605966297593205206171444676207635782853136851198693459539592232835978329312029019012921518451900141371752300545921357596255748895511492975406216172212527299812716442805948991211763481648837293633166955666246223023481761578774093119991860473633441673282841226107638855035199936220401287514201424872711177880768655213015253837437067616306883881585791490140513623852810662469566319410484872633351694942426824650379647609511873540289889132167343869151057081983552090084219248355624279165265709686242611797345271782983211073909992674906829606574208552478953828443716738248378241630462635069216857722210498011511247288592538960589442448538654641653389305463222900057226740497988137857968480106465525070929905040106493867740958055850059702415849255260064014559759796109729500777505723120462084226733859549261574641610142910169144053551113335681783821208340811482015373336566084745403897681894668998727824774481452473637184461634637474884778173087129381137795755622906092927040292840087156620892078017948019021173985367061841349462570517061072896468819250586158251408444524558623764009460227817529579335042586609010396824263481176707417253712838178988318183338632569556660641717933065584588711050773564824578261820541717135257164140336785429298595488381089595421054091325918354400470475593458521688605721850079266779895574304662240444903396372253027195095672414002490959079065026123293597267179005222777559983715260283430914009560717072483664193513645740929252170894968807742966573877942931043896940486971422187929496084005683785270692602416892014560730000141475678605637303234563796142563947213092241111425751347910878760654376159399502235888959911734960999228473771313569546182014102474288316322921181183981899396281991539375682053592885294165542710835055442459572691565966127878963909422099551831729918319132356130631342935437763591986402489877379820467835813787395353262246803634461288186235790962069221113475137754764681219920866921547361467620615827740160607943259438626397372197513878558364279844649935923733036995490207286544220592312945930915697647150224162973931077728121221921093338375426972698974198155283433292836132723147345626012165522258730589372139722275558569884789789987658198968726387403292524667536121492518356332659913261390688740770811381160530348615548445212336304295085800393652793042974317742045372360660364410788717266766332229409020365567926095559939608406746579862002585682333662982219617160040492291804556866021356237879031205887163407902728991556087351608139376098905887825716829172135180089001550317023236671687188621293486491935316619320569930720458168861304301363564532758092214803378505809233612458556861803670611175361427374556868641912685043344283529813578945599550683424668409894818610203187487770981796776396600047088052053871587787442131023117595591728239681087382742181998595908827120568336803955002650925044913414555393397811766520410993119221802196897832869468160944273528966701886188930852742079516853353987030677500762923443100954678194854010977046151550506213901536271534439303884372180048894097057913450942495092535002224677998701636801345646503953316840423207879754550083334154850203824872229348436763857133763771582206875751403799324982628744124331360780261863484238836877748187504106693668073538558602141117035434089708093410514951193353880002485595067629231458594714055705109073709348673502834185855588720247234552622038891162952200014420828306368252519425782020769800678234288979552327861690311535989721837445059601014798143679984356475662566055717134217291566929429860360243207525894158562516418600932932720359809345371283516054340758904874781550544210842281133734391664294430353470296769192704279975811801782493776607093055282807111290924627893970416950470105142165074624659917726297648368621333502301916201360199629803004385137392403369163227171071709047162614629065174571402684957009661952953787262703123022555657105085006823416790796202943769273094109433897547742992717392331336453671198828005886334995072025453278667891473399113841687492768240813074343473717034190240566799193890979028308239045046861580032926546332212305001716273134334815506155195908565292475674850001537787071241208619705904765105836720904177334505048570051602973951277906300722970633668237694469522203350475541470677601648307395293384161448814832202345358607284930272524875650166509691387492178624170986323381312293138881719728840610020198474532012043060801127522099230908773583271363736004695956397403153279730228984794157997289165907373929859113249073180120682187744459690146805170541574211951453577811740852800497436764188548597132445950444008582583027196292371016365439674237532758215198176274657596093763863775498045297869583809541279225112914488118025965577083831488904519487644103504282459486745680205778261973862956789668559934444696689812084718116305702937777521070520791122574897994030619617291715234098295411113087465286561848238281708448201016584446178725931438494674532762914171750112784359676607657907802685291141016401467327552142520014462200587696587199894463497948721901384124029475332817387578562280429116358476473329063921652205813152802633346723190247724876230643775178209182365124638139598121577104505149077103953690808228752201170676483254531717997202959965297457789227827869318878271130000404108918270597104520094323766174182386734823807664430525528145117350211383401435203200433335938178741779120246550721776204874883631531910074672893631762003545056308807393039114834401696598014847648009518656888377064421361237017510979324849760262122198181000956354882385497593535559315499218766056337956558420315341555947245925218723029933428721152317846081812927064669214928397682786929412927849892856396073040801920703120921561875594449909892554170941320548438398906580959227358948187298590998088068316768361451348627783235330238846876012841045013288963358388193215513759493289816694021592401544342217134046664162101158334692972655179543063567740081530244715649960795209254449349276419005237755169556354882223950755418701953176450288008081244855757906455953933674714892851985364463464401796094705787409547057893767120200314739831216226269009230266354384297045273653843858716943110245008227438156016062858495836020430611378503708836464960708880695365056720327490134737539084224284216711127269975492615012572800726311411100227060703458846948519064507755862099681847924183298721390862582692565186678608431066940360115834433905162386956642603861950583945828783681210468731574055566946777670272070850003496793558209557571485275936723718954994432038729525473458454455211531965080084948516336612232855485393431885851304549310820305055978808747322533104144538453939330467839956969673939053151843358118406573872507084491949079370763130048967000348965170068967541569071617679525210022376546938331305889064541771831627657395307938083208332682293205854987239509208841613490494189300385825301047658779882664130593767657001553652559683065437898589592435122122715260475957633258452267722535043184548634948148989406808038743602949798244288032776217850448706555007103729109912671166962626520687019553151263998198510467367935354423699342683294191056741867865207510219485446408070377127971343368766397955833531012133630029157672817178353913377236264531189106560948615736644976295715294916694599259988096273346522153148640318682931192730474814864344518718576923345395883086049327837641639226542407006485616537925879897556915593769255875814949595415041663292880479271457455607415586694771982728065806315994987533177242139188213226258300151159977570242876637404240716829175433118522156600265928548589835157572801480168075869659422991036602659572272050315015951197123216384023422938313012492248829166426924793801371951461367960207125826586536245532960144558802934648890898575163420509474827360816471915957874572509249947958255145719215816753290015212520208663165813405941293318420472845981975424592544993370099632725354294147374959963883616868475469360654359523187176616341825623080850023515245380277025734690928902174030513217540049341680989691565635218849244053234468838457711436860928593887515608777072843287255218698764268532829008883581427792729883337751062800413355076008248647286619915046293833191440041110254448648449462424333779110239952734231993512480841250910239835079278174795534806618649481449672488416348355196212075975468643627573160637367292534603538964906015570486064228873198242574123881756843903062282144994130880164829689735581425588712006480353845954686243640083262051448229726798361866005146311009816087842047259823875822198702378352868238470120999432190644160473541605845526507936500575240522881586094021094383241529070426768132704898509327535618689126349321772903687827899959310949138446485444356243503885225304023054635024243573198496262787357011961500885335944321511439313043644639797851229153962123555069344748090653769677042894968157858275628317094654685302208651489315118406187791350676108937540149954929894632065000579017969801128475492946378471222533417860407266096151668179588567508374925428076064795546870078973694318498700450463782727496482055568541948873319195992353347042941703309108616121058106708407741791639733889335639695821814408455922141760161371880575866559794764448681679854165362711967667148206010742262638486434400769043543975244455433590029009679234271690993584720497978883782193099869666587301386427236444654462110481992889792637072920433097832894841806506900162011733393758168449744138479363534022401488661781102470224412813471107033705188742713254750095552524583599415504890539574507848228490915876603761734402144422874691089325970076177958438123386345314785868817178495676913471457873975472673437423823371739334901218781519647038082600269442948972142999237655174634117663383149134110814672715988717327463017284404462463290065041965837055065820000824389143374389820428922201735414477085697131831746189991734998982497301033795453178449528895933199731492586338579654617385331104693399529860632790824047486771555859135663447507228962193404502446394155378723000812781732741707201687114994952095812258598900361546747870191561988783488572272337621578954921739676916540793019515011214436463888291513119671323982837996376075794245807830250066354826194596136871639529072400714062108203697792801335657987722884869849660153802792519098643074731281766008720076638307072991063696547095727262785614664643061549032439336666864433334609020561208112409691795687741818563614898651357506229600333330746835226652136244782918436464785270382642471776043095574301916722093373688776513876199505269504059022192198960222895740315808411265902281544809519509569232541129104143140639134877561152679585671100255335708049980687281514494754833451415946025940564122625116335930656761536540412081566742810954040917653685459755046337505139089454826727641204391193316187380593748643353821532504708775212185219488611521637534225568531380994877986822124802876401521525599655403272161824521737093469607323215383847892363045075992294790337701400986108469463514454416962961836758903168516688360928679854256182621375716387081603964057799623322507454134417566110422088611072271747820514499248976691716706097152155369326585191949451467925549691534256478194265513863072420897888105605705913811543241682165642345922399143277759547820931226449855306722277569072415868857845177867527700453957273803986556807449062166789912449059562993711410745007050699325330683198573203055569700968324463241196393768888235491560333981641309898579267867912929057437236657612964052334329804327845530794973784656652026771601824294872443384777540475856819989281756176449808496920408260164463399865958220410119292801720263407206271003838038632346267737676505195253788739906368172886492004524311153864900896177543297231525195752384881087014200926636544788279701947111858335845606904092873220630785430656284246907548674329439303343726969539536384457391257592778517540181101792410405970745068256439179209994431468218286383331722836622045692178174061479563925254953140874903179332687534271874954146400709387489810857244565210623534221947068897905485012386788210590460728243873396585891794591795755227199715011385479066693362223752285339812196021419844299676813515158972781377920084787873494151696385362697821402008481408638257169343466659060428215763428042788161618476536940519229440082407731506719264538305361790539214276450929221288228359158957787189538106837659570393519969735623390268247141742553874177379078449926955770357375694689725159949883654662291202403887573308635813229164913812714008198966771030219221521257093861081415179413631828948401801443391378121878243207596290995193345857148117386853848639667436661843989559230578203279497452149360789468972215031086591032134988305035354852419867972467813307496997002385693221554303014095225243110010225015520639366390582701199891244986799195042321734636631680070030465809519269508696667055597197759540691635851669786265255030500424818767819569276653121804044684029909564798605398003357754282286072652432553780185982968595967549450724437166424804947110923850935325911413802589362881016185819323049009352008837815458136321049400186111591071154244433931502392561575085997567437586117380437854835071990911576679273557747575460681571774307986630655334080178718273643497518231684287464506993553645725346699576375328196045752508700956452058695436507902340001803146022877489062885723279276390712789055664973649332303878790187029162198746904972929131953965072246123877420787643097563941061631884203117705779217361191997088150360239228008016853788619572200603245471378246269470230908672871850899888323008711211178814023172888223103089678851966652096929599796533147749109996286242228079184185272666836725811462065773802787155098824807757726612999392434020144150039706583016853208324892032380281808323819253951918405973259741293990452533327060852557555599279603823449459620374472521833193802618520398474326656272335790576687051742839177932083583799003440358662287868797020088393073495135416358383159279047891554284475410838673388635487586675548725410565572284924060737375212398807216497979405389753511485366217256787247846286876123105766445801535390428419037233116095085087312174265845253084633973903727741384668622782354113330714626862859892345076931804337384614235287206243696973289199330287701456943798162698392795288262358757249880182898288452830467826565845133152784898586740536745409016029346309288997364415289739717482967409981892394789774041183161749530472900720794471109456796298992117706440246691008340649343099284429585160517028947894997628049266355553539839076786332728841874598027262325780484809546857745364602043838631113699751119680737015491022182465748637715133239689596942406094363960226632770820596499048089800442869879131485150614724093471121900658722236840807008288279836161422570644936740704481472373426140895076834769982238673817582879240821091604428094923546531014686912984051574401437700228509730987912325351061532006651811836843148320386208250169754376049967152293072044383153527505572792509937437998917224239612203394835267407517094484619143781922129605605437643446103683691703873738189773630331562844968312777874942625469474169309762319695335636993824996085463576718878454661042949445690745627254093240739057278283847453017884558363062885330123781330503024317315373864738509059742975258190250527089291186201036039981396022966615187980726241864528521849055423048553246754020617283688840338984814921499953095840168959477993285921572070021433379990180102614168624503807766205504077460140408469171475661334122017453361027048938639077445291557633109956112181428632058634682323716895954422656286049594094581604462984642313450260492386791154067172726354543415595124011815196269676426325177330948146900277041548249594165133365292389286471322235267126194911775317713831598304020119408360592372235322363754649834543867415513306859362311676393821480470765797531930190909969140033956770083992111368579883096660014398715722588761725548754327413138950259503831441044079081691322731871914436959033596000050389609736731312838764475232431902048665491941031501721702054754659488034234718789330057345085635935675520420805586425217193200755868505132455953015590789514281559248352054769301298887378927761441716293841009117707433572556831464388804410612429204835640157862883699948794378033339114465252673251572581369474240494219030814924547465165071582768132507906972158219913053079648127886201631611070114746542683395706246086107736467059396137543373407424319333338303782255077822566400733966911056459643532469765817913985026056802631432543045704183007712779828988182451384741192858751290847574093816690989193442122819842674410803559216280449147902256156773137416802753467664732476906774721295526378914462477772358092869407275249211638347946784543984680808270014238168044588250611703586434617155098400150111424054207430610221801482819839516147478478313170760283727332419298123681556139282437075574572220161001590672633790778791769480314362945602831076203655716024241073081959243217351008454160007632170161937517618299354251238418707049250157746137962049224883375435157606512387741379895871322079518135269890322781230934043954567432177784826030809348226723860592139621879794492116467320579437745053580925948811077395586263340961723297823853687579367783392341180335126742125574893647004246585367348368208272874944100021695277109729869846406175476093561115287828991361843014139726137431953908786927807229649231165447929663827531890104830457762378993009854874871150391559105439771087676976517065119175574289971816297808291120561735951661237232035209714689529103245731463430747927472972213812506925914936164455057010146824012105756861113719357969466802938176845207196320428465666179874302803646909940719583456552686214219598953847904813999552775332356923985128807978773303099388564736244383869374238472159381418362314418573730677491969101596699238571729301962259281800605420145455681280960034810897536906072931520914622656463034803246785418056667994494645113300366636999238441430009184083469578694894388887331862354268854829362176987352419976761165735888645242329233664043327105248926835966398933305277293881481152384195137322469100776160621409952286009972369317679513802533994441602418698326682917449743973652725718366258195817828269387309258347363604633598540474829781860254983683106146035121876555647053725515876189999095728841364141714295560449907658205819047968375903852700679430862739913987421105856714047918461565920839238007590801543086997900644990186747050346246318292872564621672594540692812701473467075994208594054146779759355094391059852187076977280324892900732881208133780390290305650352836356717863658277738983029754967472358318570898096159020491517799847040829550894304316791654610368660884207964958125348686750558044527788239504533093493536672310339304237695065944484120987028091914511464831994812917633506212825936813476317222654392965953407072160263891127932991907299613183634739260359475544751777031356153934655129246035504118163139726944425169206380627787473207351037091071455626796220712604546903251095603878269589359533790272198059677648878632614425468539507978435831334461944311584818946561946964657286301335450557772593865768538098426738638981158835058578562496788995768716130018736374125456693065921130782533902872037752035485369721812216035580464277033232176080453956035997872410217858800789194101690478050202006614884452965544848232678699184336047470699906574604768734403219051817668766645183255273362731798507130456485709364503054613856831617087357008263587632081314293599991056310360639384047028714269021553858898204715713352037710642906089842587467890542783094321287064402969496286894035252701426963260091419824809956523163237065458495181144616342479475461242729504441000244701407858101088727735939948741182793210667970904989144267262908588244760561876863235104021309442931015039623660479837598692279137717749733682051849387245719539712071466883374859659228245762869898136623024998499682255898471130535334636294897007680479930436221906732773916960426549535544385857931614836578749426591008857792718326015868053465519623929293138803872235223588907820320627506795893279265454353710644851252237312048402022301042600846524813846116981571558131824010918190881870503011198307624615909611557364100044563574457297054630468928100907459469968947240735219328860265882092844873776527774233720862648706434303545172746794107091403796436597715037072387702239695918273873569133987178615277807607509393362392757037106094542320787515904466788098212049248298365377976646698904195957502896407734736991048655580566473003029490036356624867352905374912281318817678108841724154002929438129460522114518488252374603006665055806164852706803291191124744782771309740552404034740933255350377575980827372770855381402286957496388494281824430777278167823549392335138701325025522127826006357971632165977711586915567728675249494966916923466758009248319075925301893602609793846823848174043115494714947100607593242526332442716425442394197770150281090974699544696765680044804798810331737542826334417242605523663683034069519801566316868836036407901871496660576151884841996036096304654815305638390352067410732001397196823829084578609621882297183616038217207758135563924388554228562543720051490173232211777679724753783930032659847599685193448299498917312598472793495580540691976902305837196916120754150379123928424813909438228203550270752607271028310307656289743737346165155999358244030516841876739101017402213451868868447657959434022314621337227991853972463754957406537304782219034893887962898592022493342375071318904915483372885558285520950015583494900224823238160758634893361955121596502339411035276867775589265797282747416499426892348459591666045433998651001139854801904005872879886083087741296375582575470966176699243812966387549987512807303090608719210233613683287049989161219161511240038751409827273687826977038381454088106796911548401444066003167758427040925282480606273715140034533662731748644141445133472152648527126691332537289836920764133444377959937719350801348784110875142707290879214181931516237628741488523046482192631955642741331459051041803707730009319819171004211621719651755911829411048606259864481692681042281476464320333104113889799364583868203148871364971250598119550078739647418349479996243442544711645620887719402209892995690968108384616413645609611427622654666276959719193425690605398136992122229720696464262776297818849935951538433909806761002096622057133012875577784051326274887389407291376611635330177897446976011729665046512344736829316959155580170454945372684669877095846484800451037509687986276572958489524184147580393562032965968780377765032549423410788211161274735443797358126765710338330374073902209100513895244379873509764229581368192494250461821168472430207231367716958030844211644123650698167531814520229897234667612888239039105830954006733850625956490495622370049860845933769567047318508091703215833553609599676962083975757871717487907373375791109365807279167749834031550195697580473542411304873147968144153352346749819281082319715579037841391239264580635687263152834102910818573024833358186414493288899189901263337740391375643982047983612699341756242525058668558230720182358428195969733318717750414703576350963072909235482154032028096313078492581612206001124051395549491978741868130720382949683219072952020656021424718185132080870025218211331123336845944431504696814589785601496077285418012206187936185525160389454558277770345389245109512865790749134581868137635739731048400269909199417484905534790934398054719481838878174186612427563279133065029036484331641186718711431379713651350203140559075787948782534660334652402955775095844590158155287004272226360121919902248332750363356560743321120335707681505318280260337277194104127985712148554575099691021245592686785097470736725245408279490025800372077424191307535200639913218351084395917138807112352327808784488877871058530492928450542906849962450638932850016989735581198835039641887974428975589767678283837764587392478490139575010175392420010991650371789431845326447611925192302917683972587606184876750447102094754845803631623557182211259127141262133143629293195096216447308245846454430353768042960723860282114185299149667808161689489243403058444685217878763466522857653027060944081160082379460851380954062644859180728137620312556552204313296300289069791603811688004943404151356513491011174010612808904103382895821675865901948643811294700776224912808930755798558096558434883072474173178292013101162797414069624113101691826576441643485825083144951252511772492981969288263525027863790291417750130285436198825511243112134055213963927946013268337928660534675750930407186701508336538313131018426594397588500969649616541341011304120698154336171001461058546442853525778437882187572566337363344372634809241748944515799407112346176604788664254558781440620658415906555859917971365749061796246084855329450099888938794550517739333828114563834144083297626687413614758350327094150764063003482913611126116771303399194156914630372670027425003029215855474140932554228942297687757446067989330792552599331675060529795920243533756630877575576286865773722593989152260287987784867982531056100185014074413628545207967223524846500450703056541756375553121264043069551455682167837774444006934365332401361825036931972439155358318925955087708233680319605399573741412191427566147147055502534212538732145816313850711095761406720437139477969037101995205568579808171947641987278931791314091590382488734051383847604446430290502440978561294171469561977914813861850665494478759174243913391027553519035273268534878224739463144898132343092560268688022815201904885711612475223402844520509975886425905215943946693804596764727366980814028710534806053393202747489502954513406820397442392914693190507090588743855667991352837357216364782864923955013457660835803192894872062517272204697024443500396078388948807761794700538613123378189817728286728822751721724830059578181541770675224658720822988773697130225332596307247513131667408474414344542444242481648813255529356519127610016222036548185290661500388812177304718728058180359236268401953591315431604396798470869804229431129837809848786736185882188522561388005664785834285071920614686918168770686084567805855854098309971750697073711274413139889500464831014497692232391377100616570807738162587353544017944863427379404280494050825177443357164108004667015548554179354173435244750504299137942046834970761414549965102472353507232603115227692345831816225221132470061102220586610358828302014797062519863342935943001653664639097662377249617116313917958199236325193133278569387201837769832401764408721682094982786569206079006591891873959432885555005585983913818173494686644079027837267243890495560172544628093082335534718936617103477621112344464033868257213027736655902734182963575042920011150730014973523917937291651749381295594664163520702271366775588570600556061006374651268477405564770271208689795907404380221313063672608718266561283215851850874261603989363458817349329121692740047073547534143546610401027091477490740119884526865739069533506692999336183576594938759601938499830359957529850190331046552770588808036824957965694006691446175119882478712268946001540375720053505403248454765591085335574098016761057342454559217735510015575774300468713225737277698330675046815219400673263954187297397248277125495362630905664463480701879779302295924047736829557368972184983831113756598186176938218879077186538000635629528169104019455098536377635213224716292883037093637660913215347665958219875878761124433515585583242142398543533653719033510199816276687667829590321854220540523040611569071233254064060854328409619745951160864071146476283352461196523399349686768148826766136927574560675059332826101243901545122793603507758289237537032184506352317649270340600060319675131623590308393201691587175873289198929735063429831564497402163889064014556826756095208324865636259567710094563192138192773611910972924752409405157712228172334159037305913556044222259825153228297893479131094185142244098451283087393632427729953812869192925489937012538235550811255655105807411773480783178396422631896001009569444049191657110469413483321265538876327642769495884951502042957332247691988167372874561747011325196968836556722482640584189438719205553503509171488516968757182968327877837849883082422301975750022841464043785213318408672374111689954596227321333751319626833803313570187269755191678784269267353075553388629008016393478383242008186439471822663825831157740663242797124237249098114987096753211212091971883070754572380811235113099373816941924347551117467810006291294884390410299210255193274805808990950798036415292276248019209519215126814918271039325758567028814456239165968733574262949367015822018463813380058112785490646029688353278530061551128037871480166157710116338563674231694733252314308196625207720792399238991452163632031215305148242762366016759578729914565064302931387498112556107550561971103259540791588304438808299694227176768362869239286356774509965192320182145814939838788726000539656881505340848788635982788784088977701942354211534939459367096289652496875636236331242349573312990034773121507946368756968927451770709991361134278278764495358222396717321126246002254052100547430859710909085470310079042598356902464577128803926451188431360317448520299855047258604243629146049249707068066417285521792415424994923547866139999219190837899272229727706868283643990454661156368016534218571520659796994753727668139821289411290259475259239824472559141349599978598557681692361995167338563739783746669100607640028716667446813060292027913591999842071568185338168883791838162269153022507634894382794837944561590259907485493434877241630928338598997725459224648657131185364146084800543109967143208594557108556723907986757994902837117571766561460932908075026963960546879560655081232063152722389659873395908226521577778477587604535786682450026449837531481679807770175048812514075617640979491337720695679953422063333108907607123415741417072138705740944272504553986321303799480853408932660098787844916572983788128862569358359842517152814513293019810742383585432586725323950167347345959313499208457214968628071974127842930076832740897720288052703981601259248544583305586326958251897405088691947141699335009559262511970515667626132063777085242885915796905160409165701656486746357233100126369504749801206143629149175105364249619557657368887083431739171864384847533219117908387688189956844533505680716648093199308975832552798041000944568092357379842198337502702178794625373762861874352962455759455587869174833461002129773200600896791810049266936400574583195621068856826894256500894763432478430004806262668023352990974214490519749552726097707289071461033333971684285539381538409953619456450010997038402617293210615419989764047368417992949276501500142342269933426678973393092460181065232930965374518645755672704152081904749387083494966332366086876177006878142462098045089666795286172677991801353924689023530183746242099752067516223055168704963843310458720729914807282568335632687748426794875497512332667200389647225107037723295992947264651463016393789965317416444813006266301773717696400424597525800873608037433111391330588280860205778009054192079790950439271015762042601977345581190966131676350036372937508702922194332320497483191658599120558244645410681179077831505620118132039516372125956753111204742593339274075294878564402845088509840180146058331870468123765077646037739732761990902858470678215352630471154847813609871987573087692316273090269844808779493126272219187321199020140810369370399331591594491196289113642628708082803741787407619354829566790106448223238913454219094563945976520091500636233569007861946243118915166474991915428100194328188889462955655561796141441814493184749738991907644613747270336181768729429693425569723083388277053765908604279598965784941493741371985192899507778186913296169937763418230462379634175607410916549446544556992459417779473672887015680857788597880514741672667143140824329163720051034507179717227927059436855897853505692993984517534532594513917002702630191491892467107834863784749802299770835820472549612835462611007279116849974823691809349897760167204659871030186280363683337685458209649529247745547684285011484272788328324642768337570581484375053221113195337022768358545924061389312235474598200066583566931913958770464903343765629174250925785816041562499649736932826766956162029562457976215796540058839777447263287770954552396665034599559589598030469041985505881444158985078767596996632371936026068347096219504545877016139676403439377668970907009981657777864558106876255296600193332315642502537758165860345236633993201181301828294993280026173684609755955704197353545240129755131945031087006539123167615334431552402322093539613756356503369069430750319231380969105187982215238294647562774230676938511654740954771929424202041314893841755484741793420279176334157416851793492542558430983957425046228280350850078390322855805390585202067080747135228391802272990237420036962553907330015574639093745566190206690258797977192801606227567421799351527024531855344161930249344226411124231753637658385578977930946635499207005971729395404624257415120147182957967269473291777733056012474796405702761312443302585815303590659309076923223751308348781525033935393901834751944250728966847799221815762870068027806502852053128313682596540207317489166055368126266042086198349075318018713139379727281659403600318795007990124826692698555830821860227780059578899768297738731770439670445500729497278299994937318678681087624338250042514318041362533595769154926683129710497979866429950400007144754605830869649556825075667676241553013812431196031910936883299122846356077926384073491344543795359514316804328886042751323562175209405701315877163290844413433016101359511124517890294567689320628706126799641056794679820891524996626588866879964365420006474165627015449555314733286463909795446514890249635507581270668721301978443029763975685243091663211282943067983346712769863734386517986166892325434837298749551917190231038306747001540694217566918260970594738962703913974469648999735761714658585546528343092219370256568947145107224931356338055902851909084099690946928637167771363922832226436437260772037749552918008515750835255143354407278082855116864671532941414070000553837896881234710783636534749405200876886706367194650499810478812596749194445071621705904381744677496760774169476118068951972193665193683901517347925296270589517896688882547430572181819825479803750743860877251369643326867702428219221775742026241540122394152730305912033078581445502259129861405118563851381462445567474702453662725061297164085400333428392825300854573156384032606605088657614061214065471193296220303773006096850559465886251614699640421275879507709239674071888880485421639471528499672398530929115292374731185796985197418072543834367907706532176122346252840943254739566394754482520964956708528372486523796461074058436049355578147385429239562291494381401881941103550272826825848912750558265126487651800683511658171354244381636993436401393908750905302520508231972157596330870536566670832872532022490812053527802983630018707689167052042545305318268566335603114389123576430743705554679012293570627766210748463518747457658030533074591277160724799347759639805184256656282394910497768430125084957442026070461451616741429081861506301362668627989773770116850009609157419747395577088832842886183508877545384281484760062322963139038407002422542695047564800632629594770731828121442345471750642167692246406715546604816759280996017339114223698315988599554555499978228051760421024241833180061472453097775823877269821326022425288318163372831334492982434638619002763197290948346313189511529366636971132678114102099964441488657298681590978447616916046308329311749293661038540007597641900270185665892753416806999102575734671121729600984848249124102186153970498269055721894333292140171074311068721017992969269754753934298374856343208129925342748811571106521426497681148759668922208174230113184751191928072449061263233597493573579519325000019548882533037772804312258591250246015793972169901408041572418436954419619355835549388133192822046818320419388926969037175661374971457687700595122506535869964452308472235086615466402823386360087413375247837535711390543618480393723021687114328681274660376480022466895272226779901285666828351554661902401623056358616342439286321342804169440461713117987263817159273119686164859107461545672579406670168867401063803189976723666851277112466993526926216129084689394286888249853668723414094010742672457275545615895944622075303862360258274446647536477926402224798942012403665418402949199281060442348259479337900229105996869205593988728076189656507764191168170572513541372905453573907372736945391820704620686405853774526833996646634345119990016114578037893038927319603104000039647604856237331308378534500567236223510977401443516554320742603725249130460095477046950697426039943369685732231050323619638989743814612123083717678857767980491598401750162676455099621008351749134988065422302432608227383429638251389383173365241226462881386009550857225618330978827184147612011260508251543279645456643031742707749436475261174801738589340911526330970809767978553856128975573128906606906825333079939584782602731876810665622034054897699435726923528646175270913419083960526252471478186430066630653701508404408649247271021151171930824286767297300611090438285823051102306695537433282884573419048022117189520239716816534696347561430538252790072886365328950320984330930608811273675227740757901365554256667239232984081374160059362186061246491467344701051315938075889259493911085890989208693178047511241691003114343230205254907962212043908377824433662305226321097108953485163265315044725438964526535800482895986611276198604780435860482748572661547341990840437325612729660358738607120239309637081930618898694217077796178838936787532482524203190856452371782885295246880897217567292582899738152433704275580608228088038951588284751232002201852849874859059122366763271450476287216115621250230705102060740503587460073145980021059751085062611534875222254108452488131226110683746508187052699200162864296130714229491588036967566382509524940007426288364565837317296344597782675241466347233740803794763017916420967888404336854255946822488534119602898868334198354569385015423161701922209725156621227341530300297778162942398118813830472526051845083417514946340074344305701614274994134179624805563162251621859833550818137201614757773066249911716983484331321882851934360403887776956366693891465997497615263500130234781346698415198795339209994472292295431377664171600293218160139772999499419603831751207151791588622106407846700717787506802712432501851232885346036185764826690125893677010761608564446663305688459633770289559992150420746068324476795431006362174139706678742339921596898350218241613158373709276826698581717320607704412942440542509484430056118606277602150784597014312646275098341603539234543799251581489096720865811728305816437695432164847937055944898161390828972871741068723989844792753947075443342175739353926512654967855343575275807360891784034840362535922314280235013671964439902194389134889661046735681028910762756441849311719924854895856816250895167231449762766530169618145231621610787092870415877556708952436803364706848443125108205943971900509603992472542930246679059426151917407980633538096106919688007461520554585125052742915666844601645883427534070400406907429031888304174040486433732340678756854176241182374211371012904754975808314967649405185746166580582914537592895050224230946428485118709584864618215188850297251317456486773005916019766967828613030196654069070952454523287798419022604005102362411132003489463020301018669573449071461410318014934430039253989311603982552159757728730653943620093697084168923044634116160440703566795674508180913383731759115969067862171605016465822434658318987185753600109122754774170229871196386234542263296297811329138827142947451776929088082315691984784620547098937048537366519607150091087367493276308043717602050302138996179037303645805203616753376674325459703303467175455140928174204089536620284692385088371107719777393385865131979354341438050338247679446448968740885631403709061493276517220946854468240082137056527607905794063037652852889731204748439097693382063746783762559984469889992542737991293747096192391546738373707322941123996958321199316275877965400510411458725645844200488310773157648526906153468817214096929187363487377150800056738450897948561054510584769966333883697728712774126091095356820490362666535776112908714127445967166584803046283970322308318669851142079823972527637016386716837223240910939617962544800564134793223385199812069954310769404070425578024600959767147253393754508813297820434334313110764596189428988313167608395205025652806206193475881021257551888670607462689407083719719683629413886543041693486942028463529668646743117719876902395652873651909738483667362986437322786566356601272062199860074370822103889042187702056683288702028100990239259206428211254797580049493831673562333484655974136238718026897524362630354571321915125027465803558281569677845505095829043821807006199906375579536384556900627757960440173258496639121771653217575314199263878372886446399198434445240579972657166758296940532074483216152903694884631149291395566279228454041082514035863865765556590617051887404210878075147644297276510504955699341635778219776381169487820850883613698360324477813093613684163807956062680719652398329300379154174165482341232038184331825842937587354941272745368039560539044176470022326928745373707356031325975614814044469130724456536668239049177762494200665170061280036620005933988733475971686827484757140021793735005495571379226271326272099136054549699867101821122845232587221186235708320737061345811907117345268049100714199816418802105413494186539548357606296773731449169064481824435058749496500674908234477190688051940443544632508522302468517712893798282596866280943999288828883401554355709495031868732908491917073391603155623755771877465916755412316670269482075774897923141524763117426153495553455289374571369129783614403952910583190280604388911837696816516372752477685693966653416560262256996323065010055337865559191774616273253321136886999638885162326930359117016952938836240227717578326555265740722982493776430903465196257218398872698904293585397698302865982961512816465167271245675082687366068023995216196322896510786088568567729887009055376523932803569453378218211700574523759392081754470949035935778056327833968856698193022911202652465547869925204268607415815767308835068499704812550909930924927372652198609370741725881959210194434045652262913552809688686670080841902671526783753891790962472854265622242051883403866394568165607558661458528696408172858086067193751391872926812243581663898024023746099464341406004465789888499926785022892195060731727541011777992485964770888548543440983251596805750434273631128036681009817666917393877245918427924607101458533924497465266283738117596041521116358626342665668220215600935441801428313143274034800037734715638301833660930402414429869100066369222308594499674445166749008018757369794645908764138290187282550521791427331207475433620635522405816717475659540113186587029789745418258427925879563713113662492711521131862778888431990616697338899236947983750002444522296026138513434443119152759499172082268693190718620016601290852776802139856728091261085055948697310243159600454605334017630189987961965141475776544728443918865744464112176608305569150728057933327816907382354024269621204660880178080849373476369086394538788668788922810426803377938273054656817168503952154799340397712763023280600538544273812221273810488914639603723001616930520181946720517749255714558449208799355513730875663230416093136242337397998395989235519834403845798029918691912399353670379810506059622598712977710336133254877063920843326846151040509033588633555063872997962106060628183235977368613854276134905857335619521654956742042949672927665720089741106377719422768489790257557997581906810106182772207541480821388277722416340968347621231769219033324501430781817297020219632618091910199702861692121461386145840931915456377130211445160172257523067743134273193477591377787971426249298638052622815069451306347369002324629893204242871026827648061998409299092078172823569942279660002972022905579218904531607938970210538246991980594238993295787126707210688279012209368877576827095622169033260352202566255609232859945473874735341633798369721082684115014591745352287149021806652602726075915916348392845294313641436492753379509894558022435560878326261860761293112691884492689898091085881763608835937195673989194894553246570023382017871865501731217968190989894858956803128776675712403430693486974825152404027043885824603179679107876177809761117537448882260882292395961997006677523285826695717592406010324046573309851448204198070930602063744524117332935245855362114704294466946825566208075032139166330911292153221826542822249897203180177080650882240077375308758066287564757536138772770783048942939202523215613420485457895802799038925990647477462940385829562999255628300456535848648376005966975861076193367660977002170517661785411532719059814178951186200677148870715180119368007452709858837416936996231275579515696869184457623628690230787918741062721775197965158614674414983740314761366487960623160098415842248467665852904820962853965616754451461433522724274762335056693363649615460807001958487626415865122511468181048898175790505150793227794831783829677387378041863809938614826722017208452835133289573222782347396010268371512968721341639040021591656545156443424725055939874736366440942378011241082241752598784748868816938851449732299653256746357480643412538751792596608823639472267098202148593960325256101443239213054449098339625244140771710065136249527069728975233710316695980584644948090535947967978532313273098316824378643481072781553368303562534467533770580024635084945633610483795784087350604760123084953054658295436641187614740161964009876056279609230171242324866444812404221043287415660386206089929466441456539661139780003008505816491585258144044505720166821402701244336857594930446615730753998526355848407622407717520666207559347508831806849190461769523785862578632571972378315901976441012077351346595160550425269288569625090213436080965312789220414013958385707792952891400671129520874702714847376538175830475831284173265604687407377291249928235394048894051556188704932450349484323726015347275137794818530356047958437136819557087469493246356547308214643151312558228378654412483316954827614401835011454132980610112493086392721406374332370668058977987471328391463805567883698249304225388962887265202147495320273882232883531892415282424305872433603122198613362461999485819738888170087245609417658702124389042861410951852728021465320560126892500916304974127475293467234233441205616061580518908703151107556251989984559678218564984145495761247048591556311247206650107713402202266244991159189143351797207088830733650561843708538641977019335353996080971389652858858198441285744127816662150701297723141151862707506683077672116707564792219506391315791957316194066840163374603589389225337104420447365679416490572076572881591023847472031357335921181629935008738448628432140148390721941225836450650800026702895972587600916028134574157396268554704779103197291345833807482292516899241549785957292121140431481189381526202303156110573542795368365831517577385578768670913668852162811792365928642471373836046216554987198391467387233525349796581148753438406178916287075166488880236878493225935130199459560964693882091197933363301922834860033270547506973968390434616395330224286423992216047616610464753144144719566752630618545399190213362169426422460465992564861330531798473164428000411387673711931617809502899656696127368874396951900467105842942594050122534525323634143032528443993632255907717865097440714410938962322308895573384970270085034177394725440836142929986677298088802010982138892280561682413697091305328082263764773356144633292193364405505562904141739641104013551127347237811927080514475030211996812293368230331194763039706978260226609112785921798585769695788837612131747140845419999489106339292252021975987685875227147996853420415980291947591171394989979225636351980479133576600919865465335605120140687755697523537387565702641775828274314685936452077216432535302633656175189876385041683625436650401922611179630718207734183416851111968505532514648788297049565989196138409298029367508574966121378251642507853146661705458631164201937372649225058871053916357741590970885691826731652106014281469975641407758202263457258368832322167457719336914172688682470297566656960317685401030319050224516492316721684410898709061981040215045452216346632235261230982479633535395629129790878549362140747091460979971416425069458259843413260472730998909650816508485735284203800202806005662943031752636310948104491586088219807279968784415669307935611051578486344025998744616736853302873294109582461245106623216008696146880279906626452261730717349579016694947441901986708351461958053637956984867269514079781765585889129557647370066293633447055239288141024630944597633500051817668232674286210716267520500510951913835365799516428005504196226926688017014167040601387332034671402056099586226895721083319488635877168281050451402139059574734069823000931269834548417517995437663106059820534761730370120570962418225128377406799586688360592088894822200231833456243688337449356712964889021141656082901738807508229896663282103775241846673768236675108365469659747710905864006738395737330461584090882052503639680390249483522337015960179919429191541941975429413604136930620624318911622785218341491429946470389809008826226153564802233174354700881347294068211160265763814918398884618779044527022656694099370099868257159142793064804700223312439361046673746686841465576906073918140513047771119818523618606254006782751528073489442305835859904578774539946103557459984119011200176108888029729717439166460578901175626608890466474820543044319509534012560321539022971384354091169616509684388454857458863389884386905619958282554335257345721965805815878706983193123005737050738425683822295139046814931282200369907353718536419732551055712678992712863877427151037818270700058381973663634457570202636152789429435980174358106483832783339764418544530861275821380196450453026593339714795285545890801393909231772718774470065133431858015117278983226246577388525307315472760359504638232404035362338033611281629926372756779499218965813545054800111076859700274156859280294875392582684175540964723568383864572743519072401167055814357472325806506586874152187152741246571040256406413452920341234744844557612986268122427512148299049072967117824578419381497524883577838003983486214835624360317159676809701162359534912000250130435629476606610099320856599455154868133957358668817172381898633122219709342440997800542146264432411263616761226256864952528642700883781974507944930465428337052101688202121426527718910943771697663653296676233304754460410099560522091196472834592218401677696091364780152209434227187548581025847866746562198584507160767562923330907848935662502900121661798214176336550360730756195751297921018670961750559591425951566650867593712672518574905577360762165083249608335016872001231320072482037009352457259963645187671424007632058107536492905186248156887586954437947160080232255327356866483498401209698535531730937940365575053377010639013703397198274614070369165416105932992759138017897287472371804359138296944606705355742615674906781517653785411095509407587889471150524166335575268495774931926841471031403101460736862907675739929756157764104775620668153734719478530494030282398449565868829714783148131084872078084413301277690411494775171387747827906582880044887654231011063841773077375845564636916162186021696295942438474255315456297387058582743773502488476196252862577847363242472784578289517022327022022365672097094177326852686724807028366254255689766548669432138639037246364818110968683961531182670996873545786792051161457789059168612848359497064558362973872455138474125677893452824024123878118731993870764305234687627269567632036144001602978759436585024654260958038876823928358400795657752472656869105035945400813612867043373560157092499956787551429455313027390753530061014437908533656669968093882848912320295255742008125343586287380414287890418919029309917995227263596669455810687774362911562776318046035851022704243343714513901681397842476275325081455117304840880167396179363840546035153158819346793552789103304796919030914138392604964202342871469410616143671134960150014230258232660797237619048043547257475816005700008868692183792042137361799008022468710645037250786066500913424752479997572949055153592647909667043354222026322112889163068663161675438275062249549387259028992190209362766679043074481416957940029413031294523284316380830568634080560664355864913118043740051389831681460712454559091280390595944776580994020364405511006139688723172938182188878000719705888831813139232341455326319594306825512275094014314080547890445709778132146012159745215110398527330272558665635365428707819616461342613444066786423352544752800776825179098732531869077635591297927162468051396559999826712998395765109247128024037615979203249136505665392223571233655348131507992529335437375473396168122504200723402964165787885911552060659428919733801129276331398437130135707994921050221883019419740185737798437244155778720177303126430883566901290709202800034479172376217777708207649813103963998760606299536799053752604187388615977702172801314426451600826879820150149045406411477026010836607993794793980090095931966875099641513691391847018038178343541814326736196374172694985310152040702227457985336499865388623892278708384804057094911092355450929124696225945517731344448660448555680066001270022343548704069709897136856317443195368678001450586111457984998052908502133976110970166935313185576139866085670334107264624332356281726649061706388950765273694827505164039094939989644681776688928360976993899408011248973519030207989704161647823965175066146102254632876093667743987267613132870126882842454418719426338959827218522586668448888336781261894477619529181453114330992065369909518363925276720254951154561379935328826384029366447927458469540674805756484214975055283647749937000518731922364193290246636508860378320259232772991900983524430448378405803025646638089295034005221398291158606030648957144903033236499367111239608727846444644395169288995223793942821176313865251530228420113638806659733409790811949319789207328192291790046787000754104136962445274470518878558619724673624481563785645154692732719202456374365214702006269410741663658104294883816877312507998544383763483420524151978892529684114265831701138499647849401907439705048874782700053064667341034178457977377268918945594815273825075528671686829208645089366002705961255921302228288522139717666028684722436905056922483196622515433595040478256017559881328729538111977605655636977787255448678780753108146704976180683521536068083133897684544748394956461258962923038489263150901558231571251540814462453050413750746761880694050646032817851402214703209537917331593802751423756530093462355707818132094357223695268858064599923413325106308987712760822624536185143988857663992264548142839702888851698895555769896298837827028602682550429676312201612373954374888973622971995304492502325373138797862059181693971068755584761439088022058797474313978614871713049549713656595510950337122443743217984950851323662979788753303916138752074338866452190468370881828615823799005078311130418279744281470911969127290252975713721896702916455230154566895119588463757366480435636716197828347174468579120843591579619977504123164913334555368332921987232713894310525431666335216018410734721011847573589895410542458107482841928406566140265441934528419717985174301973351304309585361625511162486917376576984943396067377546394179113760489047425166202444722521535802686876220812613456401465932154669113784753548141895559554623931080583690820101700018642660442893403696109363355705927219947406675224120921323500636388324920076042823055589365726306909886053679584559363911791885812346815516429184574085724949614663545072361970466008708739055097879709497384991876216829186064558360982479180398564702606021079953028117785578935827517449440912272424723574984790321465161720415185564542447212335483895996495594047582547732502876747605809480624442026626653727925803332323464330715181226403790609050344559032729649449507768400803004024007201898891948272181860379468832924147735808237701948008073921310814869355269101799883016489651826825692442843697811961370500672204976159289066636623351419707571148045117930898550352114949007142647766028648253769839912382800107917748335333544076110936577310419757493837867467499917658363584458080839267715408117700362503210558554793302987998965057747678185660255811206070053385874175753984631563142689219423511713978906942751427338200399495819700246803237238720648373920617811742097358601729988016196427064715598378602462501658263026037414287977846849100695721565716357425505081813232406306522877229769277316117804648116479220376140699782724879240517405006859773812538216239367614354624521250394039878766327524013480259647543560907954957047312169961683071931716176111868488484707807526807333955868406354458433341038510587911953696408543902520884758886573391994672617803854055802325544943823815297743780307946012886543758366534699246992173163660016035981916350409792053688421319809232986647052887441577883405192754965236370327523699678986961050639949651814525613753507976797253478452710674345747556466526648131500039015464845880937711557384130233687941071621970773671004131548869518961697784492988411734380607785942024937585716583427551700938092467300350523220852349922587033966018576516235908460924714949373654324836725090716961744254180906250358490327166842910206988089512431933226807282693461483753402309223402770754794635064841789462593285382229284183283887233684344762778791916386927873939632453308098676851039447040890069799072486443112034739361214483062919684324690382775084350651513166100638993532787468827449605230947027010794542007678139471650275714426973520466905038146555063687433540001488112235163460094717265154059829947164364200930463626537599758827407295065416092074707465303139826195002411355602507141526580187223164189474341536318843165927213133122377763967575238852295428177283577625857409870579706462639617328128601902846141584942833812210115244507265126236775723321946140653115908229208249047881412427078233772946031839788064353155071300208451209958918147203390765644861397061116908397799121644216670349999418202745233622825295055206472199306810061968146359391031498613234548498239555923433285612583420840253465166580839947016831950593212835911281420962730654817805295575162407955394250077454028101092049991354864916981636841618789793083758324293462708256611525789823416159270716020558996874835941746312455713615876276094752643992093571890192494220252988934552276148298579296029475184631203824483557935243624567173201455441448457737950289407168890945237656004504366493840058122584760889726662433672108588307151733074829513080667709842768444487174297629843608951751308409191603197645703011374855307930805069057697283670422322865361411939877997345952435547985608636037848575194647974667580585648739950199961660427488387433323528809567549476586497942168128225830691567968658451452983768643931279008501352921307413754611020320115813048777685459249983976951160553580583029188528366112530979171470158777788202807449950050301096424745539592935802475934150643555347691400487144930356951117934198000630184830418633547881068592181584213345194452778480200957588249455166343213204143782746488811701886431602422046731628019647885774721190708171842084136215063388684866732731680920143019907290438450287633102851718430014539308740452958526608540735995399171889727752537225186371540941019920733300525740851508825991859263391876548173785613239595464707687925341008228907629539672790023648563313882970778044707950869430513760635446490856704277785533938336292732809799078252017452665519734132777386069067684170830863264866527003704116890557020143368554151742626361121953349077738809930441690360726667039671843571888534484134956194384467226989202146240428279950663891730350474458055975694066843776755468778768745752162707718098605554789672936584742451840101969705226232606162840101724819195876189849902632044714659112576023448438694178160306131373949703291083572604090140779288448362205251275117569033356960680956557679124198099375519078615876233769118410649678766773337009629274165847504634202566168130422264047689742016962411020755889374335852640025536720673418951135230322878523179841119673483938550591987715480536607519469779891004127759207077568107322529201041029591867915923594507830818633469357039103557654526792315080044299345805615590302887879868478104757857488105343819682963175577708097120218112987380933929303544318973802898543846118828791309265156806479498423445193517064455991933486860267045654975777324159363864883076914573483365354390109054568135325201940518016439214914911763116054056707361923985324600844142723325199869697196423714272774167013157175336168730667054764677247869757106987178998428649899062780911803971834622901431794754039099389060477422957137240310304043262291324729622144986627486581626923563175697956531424076748490887989356604597563688620463326302203564129703641710724495740550398906853691080746349399484347715375149383880385638184772428870178081526315630408529304130762243787723691630084193551798683447584177367247157547366183588871029330147875855780057181156113636378038021266393805853050077556999637007152317410470074639064205363589165913906142296794466153468215542728148045581968978394336350250406300035764831823084562559639134850485758570001650111436442316224860806875981690999999754872667626893214228233651691116216000113575490683396457101994700202416151644183540054359700216868679670778253857488978968692657179308895166247019996259313258346269554008850416527352312374423248872566652785412827689111290443267073276457099343669145953237901475525147678935863506449718995689363538384546324201105585782042111646351369995558033720967389064477982381509216418010493843523506591352804971446389195205061051824946524825798222208881745143818511131633700570372058307693722487406873093842801654178304724603247175831068189219916833253262961384501463717391642033473052550469651557882263813841598948952920557805585048102278248385630221372228549659255349190172411815897613855612861501450313092149920628303074174760022738954798226100641518074752043796547062268232460297230416508098523803573217051512750192772630039637960241912498695197464462535093619536047004527172599763702491325859249311196657082245290921330436277714605510258943366122034535713632027034784317779532256619803099851273977491865173744800723455738826755762342026175869540079329219059284974399980564664951692596140905326524221726195395663078145157236949133010141866240119919542066098536597006424944838076567229064092823933713458675625569201172996513021545763414459725682317980071471392709450839574228603050897965186891961229150193394443336009839043419336847395874040664709329790449549474563268931387771108359318748418197702384963476316552680344801543625784622096644082969518448413681879000044618071931638094517878002762863828247766555679412994634629360710988062768404466665257486362400480665165558475409783353588319071184711365294742469074379984073132010903141018992952582506653418845106199497763291698695711300543156169478291723534310351821920865756241564932053263098238607105018405254204205083971270829489530248795435529312348822082982912490906165589059850777718843181934884657649639537811616359214205308742746989230430394304926380457206543406431705139643113077002554883137560881207091157789692945955110350815062573056584840959273774106610885735538625763637862981725083917459225657889209331543603440553607415071071289168326479756022975148742321321499809685350624260661671569330829128519499699451729388722239503078760375028070592109114005708344545673911397328154962505191491430577680220004625379416119027861657804640111975161712961063905328693059541368167372654621567915562626488292798981919476192746641026481369188800884903545181887431244852057272800202451472185428750843575662608759541291628940311154323146313501713924815393213726432556268253244184959514606200006322778250692055498198336883803741051266875318403833351252957183558116436032075254684606716343065863286235725772618562098795680273748956070680326357292940768498965860259998228544099630823557480522003873403171211730044290679563864109692295655933623098299795524675096036420051530118434562237616258795437995489568804916188467931388152023655210777679987039483036982463220211452936118103529176226017319870135495722659627146888081231391651205711345574632346863911888595724448354877677959450934084375263006097220595775784258467093923899445782575254727430670958385114452548079178789935027350910357532026578220862407451278775304741065696321184903277960266655377878289105983626222957391477719686873585104789109914745290217275918428012528500133138404590714671832504283612651565588174733750244618854685231347352444405252531728724230531235527076556105529554326512971383029450078618198370045196520474898785681371307049759218670407054383262754197814521596816568850396535306528926634762345969373650288568575743154488427941639346959753922759783186118904571826913433869009255175865162847623767639801528127338387765874760172668805623243692440253985277755519991544347108191610896106706554430839649923549606734611512337824415085014787864957979223409394278733952357392775740589733333213628920253977998796568827724758529078350632886918441479201342928037343181888646235957132317242144878817512180880699574098441089152115401928531220224649013088134832535331553631176524249895185014271443833251108901591206342549435637570725909314244522502147753267674731125562649534650301289773070597327098565841726733720690510939327130969881598551580256857757020737193725041402967799145325453263386854378812056776567024443192434610564235959540183730236396338265840179430962599395571629398960002794374252588571658127957069174310402609744654711676262636568405996645713365424653587051356445748307208283635046076997940410456119407095109167752366049188086998086680017095640385179249580830557418067337599175041452391817563060745979136571024569324979935207619815543018946752239992402670142354616914486892394574256046992494940213717058224557030500703850168655922594300765548649453571575893724882050560318077821713225180926817601205381782147031250065822621813182225438431107547935233659678082179955347921667061100795885015530861003902365416451541650900621296686797208155895048428324589150335559096166777292834326497831690630512523113290697847375908637466524480932003453317015755375779900031597256444098329206180765836252213358942489260638250612555068320547400163728136173095325484802953549910051790583203593821777688058185597948823776438641316120091334435019835554731959633819811612261960829168249840930448556319126418039646714307536389349794845114183539664655916157460486123574345585116523234147486717400684780059737291952028716596809617092534535101361732874247626778710299357031451556064391567943756292373351987026011097537270309762852094951610102881586907198796055234258191080601269356474042506636024129620977320663918071236607287564204723182317363977495075252371245077145367887474738642418577729517877852748265300926693596838969277104519760484298769789235513842739142981204301343205806456450920253001442575903802588276581734663811150163699037838302803654457665409102855942924334617517816819372521348132924924387728444777793128372903109687574829616680937394232028425306719986984778967058908982875059771883910247038861348113350480075368345820873881054156785975217360395075283494447044866839460773268067073646090413794852701425627387553463029431570707198070737795325535271056763244431986173195676650336707958498205870974078441716829845480966297775516868313093969097037746925525895554793678903707300318917126317737172037051355349152224908063742750536156397684735897144268194561259564052395577442253944781674428951657885135208301442223700634518299370681237053406429414054045455002171795297065627839628832793528564925178466486341329958891985121235417847599413197250379250379736468357966139533089995283802265941762650580468940758442535499157059335309493797203465641580074584199788035318558375712326570945408954886650400466405102834970389280240173988795082738850382482796546676560272397475398258694347649952254859924264407136519068724013859310568569462070429801936093239079297331036837279769683430403900095564333646084463072993981401347836928469703312040030769143364448597420454071602917475916104123856253373934121424823772812304670843196649967306509987352231828991037703354433931876418200474169785850683678227059772891767505752851795885655731428920640691033978550250235883628115120974244043499577550772788321232749253398603185372893126726563933990301667237251825227247527360988921746466273018160373326508409789227704089207262351773187998512161754460730694836360321687069579084926326264606690475862579043343751453051216725610393498988018133826320480386517688180054661351227935967941580530360147211555529077792351928951451960553724754611003525653129542351715872623016694831301944801988198155151066995076199914393875458903318217575917961011932620032107614454151994474789458851564694470842806029306688154662809312949496126178011558215175221169521719577222983691484007398917922486608221197760596681374374018156037446537959821551072839053525348462047796213484954020427413840411362330641306004812357616937345032479647336778885022255550459601067869177527343103670732449220910213041443914071432452507000936457528886117665147771899106506309626030538663662795930960042538919361660231166646278127994580200977407946561204619613503827174174238382908897740799776168247089057761640979265689770781016324234090259630807488518799699850864085556369130972058602923228182494833882032887746708421241913026113177580577904783144265034886547663834917369324356397015683335521046652681360846152599127636684626839459591658498432807084719113376179055838541570383097934171790478797788416834200923517744008474775066056524329563547186019179139232739824965566400670760816935517235733585559071838849437841111526003175410457162515986832457944971651823705134082870759193649439229283141206084050512578486332578738496530476601873080369795726248494273263283322635544640623168403833155206409183996626494643139688753375689424856707497645242395851455953410274538282285971894398834175597571453998548929617248059698062502773046602006660052304694346694906639888681848091270703180975910881624921502803563561744144504795430389642936238017548942515755012747327244566170839938044763067307607383020525864872208157785275930734760628664755419432864182441824590664262828632520360315683064464545999061676069031546288908756411894866903068493578157162815446056184627839895723767190616637322301486477982366870784764986994119947469190404826094391594004944802335765409546462566874466758003130359008719210386129669028834431655855124201831250539802139822834598975400680853828560956115907384710535080936392582713373148452643478426030790650722546141228486350559103426337444999552210196419112848471264994090850426671993103107417564972939289419428306006085135468922687228172195417502302515095248171793605383980565986726455363110648732081975707737039425695480155357420503173673206811415607087185253552294960181887705107190685747635680492800487782215702776603872720482285080760911264624145744441830543057853981313643420624621863694201994311977720886600481324882629008343334059644072043102644837093323468560209718248071397328494453234417964176324507403799271172289525869423497029806606550933543936636912948475165203682735639618751489208204749953977437332145385784051971458965189716720160739234251000950813313637636837374373782056714463977088625213007186799349806315418567037596857951921763458598730291219421956469402707024670579998697702961682432131421307373990175931682597307589912513131351389740107574597438488201435730932351635124028059897687804810739120106333378190783927902113203213135766484483504055635007706350495606118726861310799119317384058679780089328641062769451917951642082656899835501612697673065868759282299332545706485166350466926990810500900032267032061484213231506153779969894729610730767469178769916515224144055198242772080921128011450997175352882346904877440066823806980713719973604873758214845687918001861426018563799532147283592702363782919493595041867455623816676264329794744073086369368003338319991120130422820362978688640394854497105554509305674829923875342454185386728718174588527862861449082483111391528136030630536376414503339292400965917954341608526361707671140351952512875451139366774289388313841481958469573696181503889074743901472113526105420657848557305115036696990523127295487579851587548212360219007631281843890437827933274797817450904115857338229611737986805596835672827379989525838460810709071423613322620847548532181892095563168951853063232419600004511779548828570183567435265202780777625349238878709383272538622460116860843899831945815307014782909777243137707118067643910210528118109343465142902173358394637252853577420585281572833940169318578614670652356349213171988111502894874737339601054090395148618840340433645629714727282711877851932384588341890776831743420818891329237887331100833079212241168335356483255867242642889403169476809164367236146857197379692968301696153625188892688982705623766739342389929445278263971637146533148329438198130125672333030063788612435745157737146514554192378827982184829902563352961192188803628364627163279948160726410431823499812242130614151541361890468611535241890484357545242293803509316997391124120735651912766586899573718798556142939834362929450119421543860241838725093607478029355196292660853979716010552667385599766863800070470910628634300854028393991194660407688653138752963705438174307629217258050034254488886786243744126444233160407751995926791534595503114621189107610333352816963190484467087931791646518753075029943835271945459202998412166703868726551479361208990628055504001083199106881556166898820461265354252894680863879397235770331455698781942877471851827668225609720922126274709469281147801761106982477279732327515917784363985042122714888954209366241249172233612163563153606853259072501429992424876079774340664531790011775532602580364000960116396381858882869766805930732681865715378474756491072813344842132474691191651928613012209640097023562500221271225013340435468601832575867051626368551587983524828579768182067041185532757391145126245171095844828577817576152910355351706510543025312811131562371668548115166819470567071151747426004889433210034292498008763751088810663878780622084867074017045937914761157651607857571826367189055662281126618544093490256174557441979547587432581078297958749683911565602135899689586654543088681073275222090914395449350818463056875756790187140277693156826476289964969238527012237107580931518186217868144206751641151747751802192323718161143825573403858791066215756744417690504397603832790139577262816754092672991204882493938905383464347499378018311749905032196111759692574773365201663518051142409695558561187489028354448982592267540848118743287948855356055917588084884793681938832650356668047817535534010281959758842523118440870695945664996867779389737069652638852462346124391916552134748777721051486071741770951398620043581542634926458530767398654620687730422726825029926874532547994329721871941665375328814351970053086846839057499494567827149357432317988650070446736938539803365848379105526070867711188136087544313497775124250057826882819071861982840772835410690798795587480690153996061977465010098777131870259325647408545055028431376650354172632533059379995460710164087178941088491349142775542763782312159777069685698785438609702894938124757265122020643115464027901931256786839384229695653136105360396436049085428592286998427356476518709348113021094553375525641314260399341342131081963878711255949620036656046609632454925198648445570108849719013626874717373830675382500505840869477193852736389878470101470583596425706726236562931984237041955622043571574171329798556841496787685301756180803014352028116072689876517140232342689840552373827345576519349432598418551330865523737575431115617046522934772530204652141665461491894933652895128500193115662707850233987875199079346269386807270246303700843269365836007639106455849434976191538735685837084628143170350088336047507501619526723176531435001128588490306269161811955636677723909256535645265578085446868293697630043372453095160545329802091388489152038309980050146657235798361524247828650124187514182206305089877639926095201002376954802791067772774672658877596110508555359061941289282865683945190470619045963550898593732178782719493252963167209881533805230047017522652613081713329626356512522242408971482345228691371102663680172183609128019992478608771736081712310610055368484735961848094377686791620711248141720466635124946714222888051068243965029704783567082231482978730622548291045374183772340982957197593089701166234640756605349906260902721628682976957435053115235237732827998869111363811112064347752482374780310410620938640043197032701585102454434825816632476817191352846012607955569063475917624695946444751675750102928605874962640051957864048241681811622160520603985270774619537297997108756713796874158476073588096020642027655326796978553950736785704164033150330687533350680270529401668339831062432466674523497947418526450814789710108389012934223836553555621028784331911929673548948670495458498258311382833524174841731407494384414417536079801215438360358315395896853041644505698000715384840989362460372765120707024740075464228371086088351863157982485420736261760144635541203928004931069576083342998542244530772958222205574410412490917315197577055338133241642513314011319142996465728816265708914335723664133587666683620700237225738838230862248837821202956364870295994660585745034641263553436228394950298353711861994015797306754141904768878151437497167393722641446423265682863865400936409496122859580227276607157783937203704419363223344880320439853962145505269191235179900312010854060351352749164493121750118376542808506704839340921876728131604173739170601198018446358876105484890455415263968981491795190979108229554309641999140249421000550422510950418554472941717588963253014494245333046180685875536895171699590600505422477480366778971469877205099382075808723560522110563857754543272583690822583624297130000270527321501383952343377505109675722568749384004411100402055896128647234507243858610825952515323006025523219941884669319861223838699788478362080946800535152537474246092008702293365784145010076000252945714567113870769472777063617166415110973205425186531008497563350933045221672998729202461808737131842984777351435464491007116198344892542993059068640889069236941630999409502954908687942198322128199034395520614992935354684614143440405082157297531135330804269219973430860443189600771304818174253103967185564133987317458350470897700040296570559168167485673222699668028117663727595330349174956829404453435620315828896760900311131569904244272634624363303830625276084283055510004903284533113560067674752481918053167485460198974171292779195527026884331760831009762796622793147938490957871867582766098278286273559378908246351789323317247694984987469117323304392495993341384771462539022397754407592070229286972241564137729337972026312012570365048875731567695532319904342995311885973199152831376177745771131915745828941810047961996567497612362438248599721455478431472433829897396887857739634398073195697806466949012680003551458192690807912141372116830115388153108682436834104919736570338336404204641872650182866979646990124087695565432776924735348953564361012545505955451612148234912165825961233576785409705613691378796983725825409827696258556577760346248760508479963627512915167944866168736333082402011191631415527032149029073999263700331542692190223450778220152885013379286870088327542344731809631323493872708301286340310630180451401974631921672997046820744452243330913598142748532335998222576705900809816660199012373233444277617161818628596124572048683589017010594519242734026416899373423979277026232534903052926765274053571523161481972889404271347880725076384972191881736789407254540529210151917234790083741905320536267827410914533876806983968206141489327970821826613824747748807640411899247299934634460772447712122719411855548174674367526047673550150003998469336576395179206070960292214348444183674447264619020259072639824092532003752657940250298741467016132501732833654609812432074973751435997249945845126749772443997707607453193139996579829889886358413700506243562263606486395654732357604464287396638067577496194270003782079598304536045735821761502279895579397877553480737613794592603783529554324347103681714136314759078650370285351283557991705180171170541851432293375174105485495660151731825942842444168633769788667027565073299181965219197430040048413808462572455452017471720303730710810161562848918249503676645938068140654466575703838366208994403945370630274814387883933103797440216221901672853640072549268963325435970783030348029484025208400487539796368965578307547153109009152126233639570722548791214570445222678446428548195081548401062546389689342965496271707487718585543669408153459441032390425065847950966154757675012677868171193259014591493548715128501404680371083065119467116279360556501247233230663582248816131935311020779820608023864138381993745897597946139804615591294562418865770725146330907063798512627103778680998144285795097763405093332324655964382451875035140070145827987256410152752264094337842170794749928260782082631700472028963258785604426848587211986989388049290745183067471391360981542172065865588134827480328603451633650302378504285301847649584472696080200930284220396668992038584116682119641304867362891234312939071824423628954147344330522411714755501374415258704804567258330013304702565076414816770048981008158535976272615801031017630824432378373941097471985165370009146198736787308551618621544362637969646039759062836981348305839076344315508839809913955257602467272625561071613681241000106456634605294915266982178230395205569521046548901216954450720593472216673132136729597583242411974560787937201251182588477728101827094197354936424651442167928720581077427307717438377072980734323037807050208263256749882805449690602385428756856535626433696953848585680846142250655872934015027571007469596927117132821900120781303177544498253499556791110690039581089258318330156098562080598520967459062081445136422624834891670589851296725376389687101106149511997295338301576652869109636221658618299427763781404612121702483350105143473376556900039658193258536386796928645090241494916902216054663168818312729452375177780509180898380594280772260149176768776259617825883904228978987644937226438801510117038142550179342144429087694335182193071424248857354165869087669372569598092474461260418355726341791979293472685040053695263125435088360679197694700819255952808157172364853431952034530478609836509813693545768372122399110178330639659576424328747804107849168422234371314099089232834501808742641464036540922258785169987211120409897638779531127641190198356044244895902873470521034765443667299024788051402336335538158510092638827942254877115067569980096254088236204806708978268567522281360215317794904557409350847279557479593147719974280645050440400274831847322799804150733919640644352134372704237510047546578820493547619646572680770812418391967387391062092998327097474079754828658455314803077483559597021494329384828397395573901165009576750827959190511943416529726716354301859795627006327539050908697826388960599297995608431119902972042825049120480602175433850995870055675458777422501597621396308608229402916720182089876912185402761363947540772141020269007917299771100869989385503099714429851616155768910859808589621039316065333735160888317541983392650155492031002626372001342016387805758617514920831716489565630985688545252289050457319464155397060837816464436169383635288606677876795603162873889731706702930564874905765238868589008037143894203471089381540545007952623257667480977758498462759026003570583705863448656392098901322139988233704440354833441031912251929844882980924756208352961568526363334603401549658030492081197199265507296865085672815505107734215491805097039475495312728674417576665057625504351492563856695799146275789668467536690628476180434236822662901722590675120765020948372511005216541111892725505834105564351272748039010291098159150053023240899793216444117123228458140396708896670297546186581614436441418683787420763367192989732272919289452718780932779486121325329218403106259889198788109246340362335938538688020822531942947997223975803944578504746435252921471045724268036121097024434066548889742014021663970503163169540353860227860719247712542795530462611626525400632310881783624669364192094899840420587323927603872349506687739014633249562186786707257862310980585276606062941931145910547691346670222831324137316926923463736978237251278684616756047550847628462047876059144569233432413305699218550795830643173905900655057970578109759269887131035027116254820342211360051384251043197738678922912792024013407025898520691894780076901018737242397024964535626580938978132009526381423634001581226718285223631213887221227143165000720752559760606055684261598179772174273052692148061385342110024203815094236593056331898272901803691019860199296822573543619583553734186857497343608511245909936214641306300722784697544240858016154733030209527585398631601706121952891193751294390866423803918730032517816164619602147259065669693938205366054595056969313669739031734289316186246371213820595651572531200215899388050499259827427160367549943431669677537706492040565720875478786713468489724085905945739896391323544112767518306209630512780988294853919390826365879490220175561038505878071546104585216341125187660271558326436165998056897033975397374566390373405805004131877984451579977136990660962651665273876851731865926353328920224769442103948424719726893915796359402617880586609360909571412587602383999927700917148736404435548557109281346776276011736680423788049606053690894493606300907625584798125099472426110129629790857787103491775694662350788195340247992288652291188112526530929203346884797041140387050879602211623258591865530741758566300567514918251448041040084627563924157550287338995434598286525948283976013602903509859125823034640257811256655748876771313719155726108705901193367375477929939917318948546686729002008748614546221383979686029448656763474124169387185656636201670523755429590915625901548128853512223691460710158679711629544690921208268544308095896697941269188892903631664458435353239746792610129133094405116919325304609445606303406741279785406281434888512944227324292754580752618976131029437870980809691667623596815006103769617182572152471949676652533917113989720210622930063899443758775881418081352959076182714253432210922734742847277149460132345486099897365119263098002946313720223070125618256329975777708164102814275090608112497175452586423075291964224382008378127229779601152631048376411970166635247462484515805697028373903467357961854516036094438797019669190323236495061696826921888454015835726752037140028716903959812039337620901815093241449429987000097303976662160524484836259625468625697723478851660410338812578695377707442585606465309801085323399200616075809619597429910972356961522809586189689363994520751623719136638554455770743353767587737180178495587676719152238118851925537345168141376933941549654478891922281926597903531503568058394582275283652938079525036656595500003964634875827492672655239932974121814987316493969021701178738266097613850353614992785352493225220145399623189088153804128700542136560980633985698608020647146985704316794047586678739485085669908787695839111550949388265076554334508466228651692128828230024669978101285546686846482033042064192635195480437689459974213353001954383188029644686986702723524635919600807944218395519757942872557705952827608866955537907389103064789754195541897003189185435877836751648305023342365080787844187562756235060213162648112350708330905505586243980289378990955627664280992939076118716586177306051234668449533911675344337416211445435440471033334329267697598446105147984706887279507526245078836405779846608008427612218864629055432700457332886307379263880408565563572071133321106559945755189875001399965467426423399856054213676320881118906400778362460414907437973650599688878611099396553349603322827221737750391507565370781141397551908496429023336833914376701596330336039945751091786373275840772484937936065434509787420766112405172104815027076300160892884733614843531331062160629408469944518398135562685175864902323099412489083210487095938448006643855451037162275005016960631871182227376267393253385607382166507246392190122668889657884511105211176692177105552657113045695835971872464227006923488311764113341990255186086764522140420430956544974385911002686019547427875926484488884951855775962205345745102372368596640774744673566069312531068261506294544266800649676844373284020697844194622250969030942940304773448584660569480281055489379954294978335685571760031056751431617276282775809832478692079492341136223869009122172246547818578410815735053515450904079076464051248889316254145382004636217247607721915955685148168577233323992712057262803260061085924117836927350714709170455034650573018946774252089517826636177033299520442718994544519423455469234032248912863502485053586559022108586505044063456379686602403881172282218247465172628213548523351973374005679342255853688235301420138877761145604646030095734482203281374947048312879458122097058257182176466745518289917363042021242868267808964089220361840474960067277018357250390626207315279616537544225680867419777997221934432057839055831585044076031527406375708252586095896580378414413401876126272359343598998514899730754100541596248655086682331642101597576193067018057268009794298013113877854860340642276169087371179789551721342967136983353566636342391384802212646339797326225976052149578667680517901113764001558699265389305151640617232839338142389211195278146206774659426077582134235744568602707772096126483295254559329796592662938766602388862618736767401318662471733946671417868330090374662413695246459658628109533999597385495909911183309775021172603009635281052066326965394246293526782055929783736353673223868882376153205739845872833507162306388296473098625953298746021668047083571402999618842515852790823350224238693408703418707376576415714136732130114853959208464896220921934193189615081599274306886129588515607823920287054762358033900928895714495832005409475358107766407995606354550135700879861581228319875637150782964081077650078107146011612341723412200870095191236200134461663236891652004320439793900078074090074049358024459847126972159493769809713393699379238159135613905345433912811896112087301019477424660020571629490594926740873749616962930458093949055164132380299355962964852654431046362240314838007232324367182659779124479497555830868124660412677422562350925980498480865069915144098243578265474293325447261558176192270436566225677946517734038122369407207488887627376698385105028166898837617458492952837548957717899111604958357600654795850246406504615962761355120913451272476271609620537122398085083888480839183313287174885394086682768725195887508701965924122831705404340732024509467396660227720293042960723284744966156321443874667577979133339072900331165437716881344000409380970052129705189140940796105063838968864224046699241811068834052754648462961759659058200655786016081184816462112765120789150932922853823612532420710706810297086060645832154930860405864495605235866614310339099432514483853349974168519940906263150880928071144627294976049729450377518935146036985086551042363470936718377809039279014298732618719477610941488765082586018056768999430905178068676491419230389249052443929179596424970241607377673688817814643754156849581091424910221352014503587775765606737951298218817380777102323939682960626903905474352769474577755892858106844898934545439424109030673840421618896069103200907088000458907829145133155625935526643708035959531347088340902897753188252127665865308885596818097076701515807366746642889396345049766643785863450912814071834044534058631715896217309604827930633662240561913182321174028924923328034513035452729643705350225286863586534094932116062841916429737534544979805605683349960526866186172650693059885972880719761792554886812429227893467391159740350032173042936048420929175919870460603097571231020437395388182848744782641892500975477651500267901801429635173996981185750164422992621927732890362430882885338490266371985143127926532374372681910265799314926193238441022289805454272161457784581019439404416377098176064642041404075486564080105975135034841679586115298461390033048378251512084604135816787694771825262040988462866445891218544711681030539272469039224421405586593399798391162296804136955029964768387467382801645127505868704788425867420510573195152555489046857490945467943487721433678375667257377251360063837463864613505198028931618414815966291788667287924681300806899945074410810927560118547211286966387009187686782099507305569716896626104298262147799310533188145125320251221592044996144763095719592030058640992281585069827071198483139191038548328809073647692696228603936559350396708784319982501143695306804357875148197947822262496233715535729996446997465227193778283937374628176556505859518561372015408246231844522197129296876965406889052103561364349223343692981256016244606569265691513659379323118403259722165842957215169753450406329633396349463969279459043817117430448984431835739025122886541898200534966904164282416921729889068740967830292731721357594085178712256114613567310841619392429774584886613730299240738071985256606787144863352414532198278407082093996043609141379027087191311765189599827176232926112605376756607441355019091328981822008175386419458098515338245635813744378418774568408604306496785234947343725758320699645883961303539164827391508356134302151713445615572177131123655547755010760741945878219526062480150727343130833265472292769650052644527742527188371418217022422599859817891527173838729235293395921646304794445959307285336319672856439063659703473829359932048447581535061618975507080806244282001353432238311894654300968883530457266593236606347770659125954049917192013373096872946090665095781561832226605185927653482852188385735754005654825370113719407493330172122082016097418564310764909949168620398211817750145970193593835151578803640507893421272416167875901931557721165564198489414193158317646553314476145774883235359030273211856992912316548742328534025325882306866539820049698622233518689392996620063260432706156686348961144971050202355837771779101609537403921342270304234540236604992070801415776542687138572562913063825056026566519056404872819259070326621705655188789253052073581352769765037521100150626271795320011613773026302811864583496879535296270068861938454879721592673167008442523936730527374686869315964123825535563354080963013697223098710627075096550635072095757059370746777439066865400050916320866404381648155790561746069920435476844523094920485707141613175038500887968203064914364549572144873341156769882479946813992713706675091142996626322055256208896535770665247119515659267049119671933773128133773426810439978682480414763066612113450538536576690548927378432724988842326321245014174359429754095146111575835106652787991776931397012997124743242300921723244877893937826327043269395445093541296205327580601643086293059586232883033926439231741486211002595413200478693549141550466998323587812341259507548475327164158200897431756477128847912310967995128626636223545507344830186136566747487496958725224717287744187539507146527737884836895122555174452645960876432366768203978894577142249814180057721604033484346570750575937497807237672904090448007729277047717589939306314704159568436564073610440201452130076929207164738338417124680991826414803296202399387001883002706981129037264020044892608381514865948059656170885396704573714811686332596541789816005375989827104664746147883832927936661124060109281488779393490502945244513257662048261842055432751772798331156288859910522321379784971395351569573177729167168949068173219379402859714056530942817591113263096086390959269241464855717756967598321575548034133402164161111439022833470389964846810534452420485037776741191978806408728318971574619789086313842801329397168893192260908543857068776025483204742407030521862485468816086031106382424379301026191115521526805513568442621822746623105086601763067284249444735436248551303816753623791227842928162768077530687186550591360661134946014368059884901253920466562271954277833673633572706116247269879001740801840384780387439280175862140736578276191013029454700940185275714963421023085502942098557157791764203427630768895341501867579661943715542693900831977127200720432303931831199748098058318938183890550454450314893371274255308350923450500148403785599001195298520314946177339305085453349917680595803483787070152327253002479957291860460798384184746551957529362691262193797417649260566546144866971056777690428470656228854368177811415595035007129936750173696372977454890100644433480780519893087112377604532619123011698502164578252095739526776667832486658087645499904825651507976143615391498800298150701064963124536291872095719861567999473672677866313307727238064991295783395242594112844161922464880853964284318597370323519095127934878049802446746128643260518023223256129953928312823592743667159531882156545200207129019403356589276211284556673669934144631610896828200348850222863192499419434691261110232195656056631275318895377824371380924092726619071987537072653856168089881092362576282613826700793290751510852495716949212791786436084922281864535779509177858532849551033933165234643732273320228210755944843592839618024619427658567560492546822442788036451645308594463581642871961002948779560751079030725806737252092798771104613362470953655410788810198398544930670289042673841876911956034104012872539613638271781114048724997793323956949589615239635063060824155599882792526510665993772773388759626575890409517610623151795412488736089430928176096141194343796994097787682190403598768299088652777456410336385495168114852399699185008060583526519212179852302884160502030946508664088111337592338338811088453370105548510067505213431151279634880467514665622156023745047431198820920579023899871869766446732667420321293760466274709279841102553418370914329278638466843229406965214852452494599332803344680693112162048345768035267370258167711403921318599810788960782720312095292696861107952136623230357527677466760828325183057095642229112595174784255129165281401885167307605728910448703987332917645996228759249395857787895406798058807316944465653387229646334903992902720513914943873466843314280039912762089291295483659698515106025202839829076214145906257610347042481231779778055849674055817711154938089938072330508126998088242859662125236967280538311437842936492999623599749343478131714721466276811576656072248723634015444603562107253102837663419613573661362106646314054376175045498372155330265625355804866726438054725602500337014426085547844937976993815445486748269063074141428567300518432692973653122513984882063039277863875317406569735582384303244588826890510805566103418076246411166183793127482258546419102792018180406782913211448026946797555779308663906352309233889497772443432485399993074112862524107546427446962661561769466963459274209090460121175864739484569790216928890819959335485646398335881304910667074842713241289290049484448504544008284834237086336689836397015535369745043919667436591618047252817869382473456292333784127669716740615858071240254440440791493395114889405438342404071036517595098347474324873349588497561744841540898166535850902481633841321910106316717536483288147874779205223254132821107612932102778799921240656009034470387840640680826647781161765323069884513563243582001009238290886644504805871615808812572526990241450763236137029619228609552891527382581482854319011896729604380289205590013914838437569636845136461177378166125928033365743259234887615727477332837690011742940903537640874676513447761589969450759758243591209219450883929036976721233170122494722200945426962029514304688902270208678393252402170306413533494576634170840473654266079494081977884470231821713557192634793005980050412068503062452914227245431975674774178150169121369071901421687536757258748702914472900789535510097522592510322372565611943124889307715434322826334832306520775576142413763957213496799162314580428916541400470672982151141949351876289918909025206262024233084311441114940890671286961873523638244862041956902441369853463823953537519689412151549097055184860984796501902589965497568993568740947495585632268210416159217297200637559555635476140370900529819635913866857302049328426811725399716069540406699857573902071465105588003111696758349682078173102546466019950678839482136329718840072178928586787232176030744596354364876665753086035991063869862005064443337151191921177594995726356062533797530850330909539134134018149215002314257941899495175291339948669567769763209148023579798789693356556494348828129035639563547203943200338385732605775373671460930901990775190122249443753456985090324112640360993381046082467921249376011772060488244603900773463388283775148158425860250499317717961439419609980313713227049165391691469179675434491414722958019942580528212871979988482621682091543002218365073128180410586731658264314525221545156724493936913535674281483286171675672732968071957531083072270553002160242736419930324734804091526260064637004203159188101099649887458342205389447296614718470659010218862578103491024218215358841781961898766424489821101454659013952616722049254997637100803061683820450875812851194604197042654337915285437406972423292091995914201767442811474087894249793869107622653549817681271026090685995451721125501920014342000367295336957082708194099460129355400028015060383910285298467180660809176077642885636562675353448081179827074449215479901327699801223525349322819353204668233342571140904904258888809908733265435916023801333997296777261826220835967835528908797930639317243958209906631768964663157093140821413962566732212541876807379761598828994900209128007200592596590177604223384519808711918858214933559746811878295377272697388557543366141914584217062456930493208603292190984279916565853978432309836840745293565405966186752167469918672618520915500942454352812323429385751121683864528656529301781554344832755176046191888001595427769163449228438976080991773806193465742177795102046065585031697902904667191123309634093165042100763351478904701609202373061114175994837946398495667646430664357840708859375881847387904531076769586936675238055039212216974402099159389224296341762210715697788602741452343559663466025766805378926117917289048390863290870337757537831494426172465047483869111463673721025151420951223912761297693299018217392213967817574001841240182794747273997210030588193146609582578468094329047586990080183068380276218730971319302594887743088647671114390611594692278506808199827473151078890161156092733351445167382689322893902105549959550219713761167313021583510492201517155923799267468892348559227673971154614032538408250412029502566200399981996996047264337661228240864410379171614300524414455470091912271126813827748031368302905338580334850095542401328434876706447530060294937163396348155698389915970768336395273558262312475675980529844784964975054002471287920047793492472924215560918267898932215320624333794372342136646321252829427879285168447124494337226624262864747660725877889209048489192685929592353789116933287732676025289782978512695101547359424037574283103652545606983073918423073913238418897197858239199136949414204731379523227193576221500825010669731270997928342236856366777930196474407360590629195655204799635933793659980427744214601284596073678057278009468552951192706402301581371005379534385660274424841942209570954815458941500743967474760012559154935661803644891705525866844828275739713676973174964971856271993972859283300745846422823751294556081362696617290804894189301395470628225742551186720199013034019532754889486345483604542799376099426434559080738399939107246036115730670123815726308186813298313162906735723226511911527604634986371205172167765824657782619437663962364052874808356845237203092561336700950130211028520066509081855093452609442002539880526669382935048211658305332568508826796548834375036599223723089602312697600825232164293512841734029248238020298859296380828121840329078447720171093197014499717018245820030459109329528375335254887038342699741069436728941442416030591356356669453198912070093902889559088877675199447787835090987910868989586277885195377176935358289704822388165363442806268346925764063288543550217295990080667896634045251418640101175279084165997173994845416817329834901110115220796923194606222747298527691295400014690341415587332450713168071996418558346254793179211743335073492267736266480371091192458872061265306121774359399772955370636319667438567732721120217437245624565882613570445689295647021856718479062057784551310336990529757343834309637271215347624047137471025430380649500458903049888265552906448367555188446866989502301799231090069575659413534219046820618795107463745419988001553027247392963232314981164131746926789146516447870955222249282223361668531686794637553125337436843770387875645560122691937144245309482275191691249060151764695010700989165674842567151813569067606130765229249417041162171630536409906351622237249175051557661614078859142392899230181052001408128471879616334604940809779911679045052958592496497899212538535428680503036076099581087536287346659335375548314812729643829627106647367343940115499745767268865449341015938151044255354980800337240876909962206750318713762797078565498764834323703324921987177659009056653464967168854907012832975108645240800500956752572323670582436853600153777281434692327265777684217691701005059691595759310082595654613583867764513075932153634271421911323392623553392459217208642286518941631781481053907855741949838210513517210862010138903015848083929333355328357981718445382347308805658870018161211621382737817931249018460347397591890506572271796096677354480987397129005136943535807506620342628248252925322152831434839915939766232206578037988612673313488773484850689347055673547682777537666891738122991055645642852813315162874227263433977423594859489106536152847787720430414897788399761453835230948875907811286451330571350040826401135112335456715342651495715897659973843205463887612035814932536103056268385213884503125598666962435431001191634867067046474351005813537750226727454025117741205991761407841328511599565624826621129862328869612442114753710471959674246964425085519598564166625798766765396984066460696324100863430764895027540412978347816589715420437527550712944578831508037323758337631912056103924602198239838826936686934804254014089702439044038141010471027027510914663028261584849724164030461884052131031923229857528759494374960277804191614049280357006752464639785445471121103868178999749126542430471093029790881162141974390002595777045943295957169159670762843926419025609816954513008889646269571609410027399482999412364302889477799797569957982231283335140018976660458074687077588377709772387032272544893818451788069823029676691050579534924839680475458908741466771824162783899342766047309953338171866608971842008251650005729616214747848874387886961117823060949921193621447436367950229173643384072368693185559453017213828318064086531644120463711506230971306697767383996305137256792069511784068232384033425864580177339698893193284604352632067277704320091162336360163175175788025091932886986758011419052335997863938048537460583828308820292388146218604525106058715470499994226856107882606870977298218936046306989765361758013007433919691162661236250650659898533088650074034195190491380770177453464866267327990389280315091491537478727720271736446575865754619746482273469511037542073263239134854100624384819119794656049313423904668415149105348969979522959623339837001784811470336055704017241004047763835698028922835976051071294009873349678680719280644212236389772790683222360127018516795091058757552519062639553065591948766293816952299775500321906168062717016483560306885032599993951273402176794297003873821204775270995288979651789884923483118253176963703611449730183716479894052864185657836642198159206423302092383745896158161311462424142796308131000020356480995390661977144677048572677089210424801589867283587692157335515001988109405586061651521854842503626233035543784445333663681670268207635090070514027410870885188071063184198855812923265338169602282331115787297819784873580702963026119967853698845420527278588865268477762712684139029334154056066589232357677864906456266516569682217052777671538137284569668127714788819372737940312922782760297675315137835837469795196861147741491478049370920612348202382709913839328094976637746942539229850755654818131813221909436786805745574918700959265974006901479926899262097833555585194519392713846390845403807187138046538631965595413707029886285928320725445937786108589959414406874696529874959280897502228140937524923023262334682645716514525159703613990838199549173340591090393286407894958699378579764125101196210228755226149601199681298532717916304421548163346461120679521410674170615802748191120289285639332804266506804811623067718253215297364285860459551567900112907727431836772149835913029710557343339557525857738176901389699596834538705381114522392942872653732888551661954244015304516771856221060129278687263114818580041145815410307965791901333425350231586320174093648978303583841710358014581281396570737210895371329362242288940007861368078501486148675689307436041867868253866627514258028700528511413062665524845297322012990957429248720699919450164146570731444504032181010139421193977297328161863477293752776723454822316622734519529963902790680959610325614833783060173395052416114854490912155196677632005975917092627335690275627624652224571313184978570549423835771603987391027602561292080883809596599138999469477984332307423882291288199250642884080813033721130667313122490345614855453861516228602437661168369273692770990864117411696694381946830445556526044698657067421682495986147620350010924046361052319061534906625638639889807834560332874095339914660839860805699967445250952415006720872679862145713197796712075519497862820493238730379461100416327205695081182309570098102820144034325542430760478315482586922975173315963980133628528418991912493106859216679062966391821005291546481222094598533913410698341744428549202584666370274094111829566587887803446833655839521886054241452475854159887091500332131022862168325578328804032238189504275920614861730378767136187545787009232516790257935623495412393598973097399497506971385367930359053614036475450302960985515998007627976455203310510797889210498082822319009543659857629913519772506911141402987968147832633157817715034448295122222046851351139188661631333401238404232383255182680039787829433405329526752273697608196998069062843363882011248383752244091603272976776129002402214946341489790262353172579261429268378073716186753012817132793053779435769325338175111762485596737081987059598576279135025605507221984306472180551316064686756739362371552621360853920867444078594767130959422331348044198064176186158679397671384343774010277842098835462791924663778460962729636650928880971693190270095321254806377109208538315764624297298373382095317588430011075543836898080482677758522274160259715858237665733368411343517017735461695273381458470036097384532640475813012137212634839494812836601233042257537929312945863499726666030743420398984458763711019551721211593973139304390690582417789139255977190924984818747922853993034817764396870820884957667942724709788193860044094657882073351104898509793382988244421786085449055262539432760688772368880352033172919692053682342781313698097381510327505519084788014719841478805951366640061201771265960795471201861463215193370395165917889366953395363371742611837996669611209090209241471393324035485958066101630505114421165513924391016601535228989983100063508977325568688637677710532141699321288477483699713689412148883733696900838137159364778380419177592135626768250725255972044405810051480985744354044825632363607508763934750297917117240797963391756301527381449941705807082672158645474860955536241382511212324794077103137086593794581988549929146175060749787519317819889684582632095748558408658119008676474334115518390655803692730573604219883908686953328138799427816472305522281737542127640282769543024940356817653968846344903950051311088534486631387087289806978277360950337121834506511194419514826223074548189728186051611202556299061713404216036910627801645796912311456696673309938515277929323278116254002842598955751905776103682663006352118487064508507062315940087911166131332035803890344714617073179650207637865813965692488155087601248118875493915423725514550874951878298725809744614005915444209549652665559488852960408303111018214654825226751343391547284181873929117820176133599709239777477857669321964479786780991676137208686248514791055850983790078663412101715561276280385381679540696973723713437090957271239534704019396089500158778377739431426252048998827858776118773496400569003013226278840880462816404848509467346909734591238790834329475270820993512869541893710093701481293960698296158469091254590127462220330708464633182010983959444812538353127411241381155494459237816372761221647282675000399936476401528738275619898108677770574658137833547112369381019380067711797772682319526201489329754048855900576643999401946096236085572304971331886763211979315657096086988203758082327764447827966939089126537570936884374153312645161289665669442175292342207828519811521330877837184016083323709925429131288061765443537365711945566372187604634716048609336802781353738284868063033480398764793669382948228405388200180941261619368772980669171966456270002571947160638094153774273892497609994729436501280692518203224552410647976055481431987929124996071026092846175193266089675555987302892863337395251422000077788478715654219059431176675131238630144257271788285786875698451017531278806994354790400298995853634018109756178352953460633122058659830794544375048481722504253547289441177345356362479141653893082301799795052138906147978592062343273804964257674154853752977749396281893859305438832723050259786658257245153295332312687557241337740337581805088372775390086396210136094757955402841170612496135845185054588152753589438655843314869652004412250187619887284420115607489716263582618118860777118486539143277441926394044888608515655529171327467655939776045916222136570841970244662971350877955269851975808400176704498250126712197123993478075012577560259863038305035341565905524902868642080274635221545732988939609801367958306073314922124100705101048050151330644712670372504662281559975958613467549879802270129370401815186595496577294669161477716978898982405806696234683946833082026422270761186638107270191143569489928095644813392605348522183026128590456973677953172876690140884097529596170350469665601655413310166178736067973558631179782200067774598641131863011228986477579326991967875568095359853156136032583017478441588008759839433259196661011048320825348311580644618943066414976634830856245122777357191143869570742802614772343819905091505767017541927667013607759268076883810989277124263681969316295859094575741032925324574593229187205298983199331485011978341649896015153225464226489223499636483930445621189722857263843934587509070451640871352926743288383947995365578226026780506064532756712880873245957709693538966655992779876948413745017716321659930889610423597076405066565523532225489488935191598515021718084239351447590936014005114912543751939959100703248236290136071952561876139458836932775214623703801300537366466915624393344409761916952875592864868357589613725031263544910404421055258427037063625376286515164884644869942044963741557259233872186236464969884559946178186351300014949786200987171440744785551838567401010431735986077872295640096926898919688614953892032172485939824289155168414803135730452679897714056595103929690494744631059521273993132980632684999505762645219021621083882366124648542252026231442841955383591220573545609229662947883190482497330344479521112588014239179135458875972419877666721900092312605455912999309386741464140582555526277374926341714175321309075936711843188263150380214385331715337854119494007407910394412822625476897272469549469252451141109931202316270328675615067379816973926685463423420960299417517471689066206141525365206773615832781913654601880916820059489677465389038142966792089936794040374608901668444895560848467051069250218302980839320998286968750539285169326450747069838668599595900099343882085865882099223759587251260225568378989560635961830585427835447964128830407484238849316499482151065670432337675517111763657953737145315087370761122765934850601650290478969844084229357302645903907478418838623789601497862390402763759947309728574426767006863734177556478501031856450382226609377493365339247939822845282025322335182846250830673324966834305117594076969506308279797851024039693305563053479688720676274376907403803386116662806377806225513354784000833597930600933308129238857804019738604628897151761660645712687251483768245586760354726481000012424761195899665809760725341372686606883504976277377012940122077351221706413136031490954081993234780133446279448046615316679832613010372489757133477788209521489387514245948467921870475273996648056548533462709061482140496488434482857274190803774489385095446475966917951798016587216331149642000889169559446580569978961539026213592896159604042346752103493443284456142827795577070673166618913532316461933399341354982669856832924936146401271244769893987611436588960525549271228664742776485223560169277868871192434465952311557735706776910530535192236583195974152497418192012648245552793886093971774186611677224496933716952098653702158520598094382325367024448569036526548364966532357387469871374114448802556294484971933323376188971007429514432889194709723818456749728323950704816581286605538251653849733433179271179117912018966472946516185459236808095168027210130474086397931809241230504370526963843990363065988765533359027113683607064204943204074166176178391292749040827723286264482845837116490569637080883683434951498128358206497014477329582211882566886789273379642989111606139156549607513876803386992738542696880652908131493834865595663709278754610995334249443319111747485692978961889249192136083192539190749343390064195350404396614277584939688847673224324425472137707897022198208088315806669634361057600564582008249485308197347029465220231650269328684592741929719937896617370650249279227131598360233640214469793547099701875782510974338511928066486024854365246213446174009682664758584222758879524487438020087565708231126847763746643025796748673465283544079141837809690114692678215932648441819929027754004764648288067665670943600751759934603874825364355598905123659742696819443976221526725040351004526942717299125380998386440632454811693303080194138858846474913114137731749430410482290526109187282589635623560209537035338601239860405619817433148194734095823234162650512927924984548877545353325008811501012639825935505671019124022425123206213616433592293016920401483892331196975410164292210379535347700974353467982803574672066798843152750410738735639634256263916001302934189302319611942608644649673583766394298002304940523233123256478084907750729809817135973574066482836566061593952006955640910153843540917551725093530854971834898349282891224021216012690330351496915563418170547792179633725457217362103589321072354756336794953349096454734248051695507056678984524637268307444911837896666691054122967115664566504837344449031619427423017834941667748995322376668284011049639199470997652609274965469532985713753758404831462874925833234093108300269101099613856628117786485564755023117386992133512139660675436398771474120986910098750321042513958969846168267742957438244171791724464061589357972993787416713599939011374890473531761811430110014624886670339379976961389155184961160490081663382542164557781080928710814742901837328967852932913169418768113385074312862072026404273591666896253823239402709899897713566371587701807653510005209299131953366832863377363137864654816421512163393132614333540927493790700270989549462171931859407110837060088202830961995504407217825161539397653574255658639754150359977959767942178195407312355187667191837677762914573919739840762087918817767870770033072922467924129120133986884180279396074798716922948549250781639128070289730943435974807489979652596565779975049206445007018285544858144972114695934691718849696851885086710381358849653547747969878452662547404295840862948378511199833177405632505181241417871239234278906419931144983266800965011257865090293276360375767131902330813711264780130696619776243875258784375212028065485984470122159353892383066547102388887808905941964370851866595339718752373129621632701923657862039168379953097660104043695788426174916282656537767127366790916577175669894736891896142650668694451689994868276491577568996207293402248644772080781139935330365096890015565307674037157379375356104226082491612685181708156283894777461148617506557476478272299902122417246824153938539166986363715133080333625157526634816871035770168268935022792086533521733930938049914796653251284092104513671631159534904596238614473620701693297174691736455884572848332572055699808322278766524286923826236311364921466221541962650677477461536598017959574839330047169291348299608166089871271765408782041663301912557104192764793159022609148977849236060389623375417936853679580475355667427432894475054338922677485957587700163946308214671471060868077841985256558477910652294122579244819714680306147552104806450000484843114273365909726566598750936806892327600013893376818736003785481030438699122011519562411863196758041149269895466709633417312558584306335622010280906362631616954744389617927346406427438028356888376834452591436265537500950514931734302176483731242356583779304611992728273305023940757314052205418816885815049049404108770740856559687452809236579183807942691616650907870541602906999213772947202424912202249642766053942350252611221778659132171665600670444483387013551011440078293541041845579304338451277645649672722122982706181705852425315423270792283022993797303686262450253795602668500587981187388265089132969728193577875762509977963867568576091958343319101579572169324254512980278025692110287378799659021252940582941943367080867977808173484650148976300459636747202934937618790035619986428734796003968822588462034844575715224133191007515706818600586818663778199890124689061351645315934407221415594758104612346755787812574120910739171295880583060569288851574488169829763852739019639349859428577968157376497545135481769678300989689496727712078573399930019153909094227985557179753965248251840720487462178781566571220121700543330550919461402228416827942955808913978974207403414855420477210615355867180694444726402576520363832249108024539875860783068225286716784088157041631698480188895097667371399025309172855070173666962565772085869785302513541644685431269936607853476348361455576896922320022651039512469602764656457975266812460971517648397974362463436149653326886380156989183027435615499276067557587757539189070552992852233367929436200415420489946096793393090398037228475945467828757574169758285454211175516118464676093976207277396565889009129632373979577636284668390414133697674624476571918886728445281836967796958405843628438872711590518030968600026150279400746927972688505777839671162216896854909630408649462114217269215535923357964773530375837548439102593487075136007080598530548717477442718888063704111303824957162257457628637938021114587478603874227609704076013177311525053008005717773600636284912679728792545508756900753147887862184775649276910033769593738519105060070733921597362695284337433275777137502686449277058928036258928370297433080718732505710873622022897187082421903106174953847281762065609507152390283392345217658600701260983354174830977959100353137096990734467534791252890200880954322002306255503934267192789218135294956655711777530449610546184260679960604122378159858647562831781719243166455805477951078479871024418738366296956051444156875014682332116987426360679889601459175894431732593982089060582975220624444061702192521061802436750575286082341715497738270487588370293504479393899916459259445869522892271408788353674937341150259125863671155566514630504337703353915103651492676447234891752125605488335744365290063141588924773894678520232607951812253311314087975580635822529846268676127976967703154302779864521177480801267573958551830840384447091105248457131929779662185235524616275801737708912488052905074840182869952811694141551999717656351272999154815044537343313177479720219097895139701788550732472771729656479706345950706928083517138723539646275845816807141684540827671181128488470193265905808813718871593281409735537356681082482510588988982321088441662566636453543014484605035889093122765309995343192016903016985102178070013001154262147611682192680281164996536659808763685119777107143608455411960963947334065102961523789549764980568808421548648768514491048718369037656143785275633117726807240290476057688487537492320138214954709244740379572076869193447844734758016752713226574245113738095700564833842450442046311834585573325418088224995489714091637562858142491006687603986890288465662126095164271060040236653221265641483207856230755408265653516576937918079513293275278155781785057301340052497516451259760693477492901823881167792804789241507956514292383888917585130135461988791426450940818483184619424280352211100130648270987983291098315980349989969416109252395494722513975121440792961478615833206440441703704079132426618169582621384316104440502088739022345298827135625514905581179446313193253526959666736094632451830784885103204081477370766635567254886825524298804855450376857248770832697800011531049122795167874151012670146573176794573699178026752873287671825448761581280899812840839039898532919732808371853656475710717021310711116733960034014365670874491433681812916868309596178543461668650277962527738373681643649329450622054325283973844635535520358735558437504892473427110452486913554638507192557296953636946801333576610722070285821767515724755059574874202154880699169943100918447764018524094747016746108715284179421308171330707451854345974947197098422367395264596417406379354901410457278780518808057645663760413116917704022826162665661352222028024368199159345096969629506227104258778648724603710633766268343086212244535734634622445824480672372886047961522939589066886067306795190719381938764079583796172325489616069112327128185711836637224925425384824979830964144672352190197329359081320869947712650255948964122538962268016027349157622022696903380499865367821124245039167756356419717511880684410800831741797248510477448852629554421602859661278254049306246537394892922760758116555658901024102443422600037245864335390176838864930175751155194436219159430102940169717107320709692625547326212007108659931925882216316291857360613711439163541499080526255747152352441027750666465538484266899318854776764436219472332940164018566640150718552184119606631095478444453010662747144126574710693360120234555875030181467734542384582159631256230431907404184606528069380621246394284335946506165398777187728984904342642986715014838450770116231253246135988299736194124009329086994747329488735745661526251485819615342509074535515075288475029080545185341230801608073381653003416635780965741367860134958963724830926062219766338393704574731703451557922355877169183042643552693992346752196552669320093986029620082707278797581831335885997963401784628039331970277157982336913388793846634863421700909559667092920056686837992495355741672039357529337167930265585024121927024344701095411754811888981072750666962358493993412294248877798872198568171008608237718102542729139587106125955419932436905037875433155659577835597409765988414077892769802697575472799612591171065793162706595334419005073222216350522960226843100730282395662777833176601340810548236906828887541115646799577990900011332565621933312990177752019438877269267645382757798008741194969463526176744910706197808081794542066778913299831013437137057349556250940847013430615031476995812514257406392300093921145076980037271334004119322848170564694854602599471393918978761921856619537809793892019702195181649614132966740391582768333462766271215083059665888077877618150612160688583471296681305381335959383952222254055117953076977440765786318003301499584620761579668021869649349796783382284092839098230038659079940436656284590789654573577230965454740564732181978841740602902568972936430997717299024943234393469380041179223453389683446205829652550578979428428743679350145056166748879361014917085456643798736499647660389124668222135955316036665544051745749555135479673138114069031250158086403504032541933766909444537837621366212356592940538422466673282752914150167903547278883243256634208514117047086484161581724901301596629953689892766342821654999017914604321380593877923668868105374180309222358040262703986684361097531450607134771881785483593081253366951837115613293143498016277624074393123114895159937127232180010658766314137056377843682738430411770455303415832038432594125682893071976147629048760718609874933538285069183439112827380229688850880180518911860095147815256165301440416008462840202671290016567576195384320846710732183524185293732524764701414758161055444407754508746983137217675286037469937139868899487581972792534624861997350197338197124458022623991650080934693596428974261337898881775935823782111627435091359932622344388760449193698341222526394248791125237623971689006515176607508931548663246883878830319358283930882573564529869636862429768540191520669134930653157094380479702427907982851126746816866582880405779005792117389801540929085942291283939182425680459116519607880782173384740945967583053387689472303237660729755967021077373120178858787108450289564575727396610629083783114234217192528636333018101622450478762114328251698997392738430481959740814642025672799501010520941679640660675976304727160347122128003342421179678264680617135243600894625749813489649732035060669566298198047129091073829771282496236832518116756884085310006950974752954653820120833719802577670915314154452443544335516603790200815311267160929275752946654372252156156518363689695355547350061840373186685727025875593603604285261905068151044513738842525925380155599037135691876342005530443123065015357551448835025741860177472393378359997719650974622443512250619552325379674186891260097009241886421560343616133806637969451967217429437348734767386216202573961950942909542043771147224762467096906685940652852962576803451423229947943510124684440214815382973337468657169395911493307400824626556698733162229144057923041955815876705422371531860877007417360047755753853816840446293301870969657152006714087276774675188457801355378028745748134366461722809347414842023217862518788086458219571317436836175408045924956966637618178118738363510405808477685242161626466681131730053666635619294148149635739555353832464266580345122007360410089188285310640739577919480308768750418724996893743317010722024776509372381603602126519127394968974777974829397325398996751671581476581162220331997534641775502383605627824793675224818131692444911064887699027440478008993686436827385460765645965466154702030406183668018537155423743218308158984582506806798855150493461671472134406183560273889974861229620273973783532857832912326551667171752257001502394566136670201499210826363605764264329144833540140882067542653085833625854502399314333916427016005342719227331124145774682011222039249928680625884093279051663047229199634290226383412150356330493213629483499365953094783021048133393463272564817141058627140839549331337008432354035308050385762439196631112663378762640776778379575366914465785627508631910232031238411051954964510607233228340572897906204116888874872505471527024161036334084865041153172735893936793076473978088907374351689781567634434871313267316733736135478384603439162966526346143227213591085325722938525581744844129232735305563588006224425908210063340704731010048947294781207959921512235599748383567911003044789706123452089339746099199526311293894028645071628142866370699129179802621934975731330743028504414579754775653880573871126069157861548231792851970345811629910802166579565307789560118793082838651990431202549856313608291710548562729557636753900508757850879983359762773149840970478678308407430093964941402735376111916702138506734755673625645701411107870488750892264396645009824675879860037991779239238824169194389804792264708768572789081149704676056385657917012819399233254080771943635869629134089424379466212550876321484677441382455435162238046455398875426944115610050430621751037510640027134573405059200933146677530049959710121564495281330454414047799412658347268532390847701171175736897150019694856952039677270772145988862843574118047772666817784714034667338780871006700438948715892232319297585187317392580010989343822244175134984385125849495044616055749791277885231627454447322603251161708304356612964458895375679059294004940404100987251608285537632489493523804755453661089164712949966868352601159101567655576417189466995320571173399915197333588341808059058991665080923273357769457841022014710979462539069825098625570523379868086589729207460514950364270411790379919035887413612382559831869250019893324581589167653713415965621995518137748122574057261490003104707974708760004013787475530587924835462714754817397912179869286586787799390995556708311336740794733414000365015216703859431964583351647653237888370666125579365007598403011615860688752981744604484694942820003724300203457065337192789875605604209568605066081985698889266387380563054086930710160928883143465509080368560144164230120997039791552466934902089810619506614716102752465242596204863419997103425244947226448405402986213157514401750425499470837694181147665872552008512053768680884294368134997544809301443049945219562652290362183584609517270404168978333181227122444498326148197993964794918161364153665977327158211742301581322132573803737165055099823468920256569240661111677377705069806762777583451632264130303093973729104680335615799517520494249730606539893430715324286810045400513024389922968489010775981602963841790845107605856759263775540675934941950651918638179643851932225167644227353160851125227670622284685919869377112959783278888874073087971790311821820235987860199648542501242590695658937561418922934128175293601076193813475271253751324040178273015650339535484300735994624448155916756442575508379198512677104573421952431098158223801215272669253054008865685970535995915242408388125556675800111450322357665909474832564853021768915621372723962403633021432490547963925348824213379343556767467601434346709173297985084667115669720634764186868113338901414386489611705796825809846225021410078030871477409423699527506755584361622920656598264255481836223982319253586989059812786143380380718145296093983433544805006521328258839641037373061563071254235073147724141839781115811072891442007911777279740177395220209113877057783740619653123008032785622261200391320640684859565823131374468536046040212198921633500004398494215946376896749347231028157679764017837388466037309364554706627731463996168036065154538144135135924133600632857944255100754264012817624333398476356446411570113640877169468721252338933890485258298022553385551718222465453217891260071273099908823123641356300856832286884046753933356177555301225458791982013106583459928563460075781614946085552056560166363612056431163936851538792109921946391688262859157679199424944602022713011922323828525432453272122484790813768262274440330050823411743862038618670309773363912182260404791213124993242290575818636398631845789229673873804792408991808615697457781628065802467747471170060428742774401298055680672665426941326638270734737980861741360506101102310039908587947003343318876450879388920465075760115893385339775157555357584798039443145683361275761794138438016718282675122544937248139925853371321780958490508634499208008008969050099233180442282502533679680248164498341224286680501046238122605926261811283616992681117157713414200614325876636882695511589171294906041250853406240728970018625987350911311904792511754905978547251681835186578601782670918193989204008990918202165146428025761019675532197818154236987030751523729374063922911972391115696489000630972343608314360403770245094190830728279211529625051759645410525238807665802432990394451107536508795939169706752594731562422620875320903123254337828158801895949870781049954773854915506595763740800394651707462881868983467912171845515229476904029014316679329241070894507120437531592061362676761530513850116151496020890494930962452544640102867686256681983031096526558739467709934263505029028968355842399950336910072760421122348227652947566302367902145035527744459635831579130644529234914339060504138830407388226616114966652125205410340709493901423320053374897235136146260708108553876626473652682939082502856443383511601581737608465594739741280735130078226681786021480339440910246375370231323969921838306966863636134349685599788421666281158722658009723709667534998711975906981435609902843688467015551185824345713724148220661950766511955510565144903094644120107157678337288755140729171803848884092318972877085125643869113933393165286345382305832736973318309886003935039826259817060658911532425922023090972206650634629858496916008626500584639727099858029503094506047043771591674480329020700528049941529765156358683846267957800113119221540444168255950652416191394366838769649114762151635131006654914550207653431734026973425386928876353623559366851619164560244192873869043242927909346377624997818108138843615217138230168194030891267626683276463514009509354943992858503115741994933945562426633333506192861964280990790964457454720095394833694977134808293050145324061305360516282159402036017002350276114369656115068126106078327942488701897932306210083178168135606461494265823900106973593542190833472896246013741529162224889386456197760221038518539526863581047670617322218669376457449423931218717895688462068285679134386903658386213328985787365033699277319557431029831103134374510582091291065596944839473570121180858984422948971414401652001975895789124897075149765858791782913665522118159577161843815028862856638770671154692833829184474666541072309992328645523593866319304155213583272519694670125457494046800547846198081982715433534327928019351903035186186559992736702767269580662432930695848326098809827231357751234294294524654217505261525096041718929984110935708529029547195203261080768015174398524881796627258064909130548983121073762722630742654621933346089742854030505863152588897877214518405491106653825325483959889075555645736664233516567434778479438353377352273041158832885855330832981327296754743918238588055379871985990844126507469904297334099717410787921430013507325224847301771090050395850768405760373777438978869464012820532983758094933783714562848466189859218714076985291499606248159888731801997488607863344567449286286733330221796549342180997234222179121639807406880680632048127056301690186549460211892218941223834433467438820246712315103063296057092822291011652760421088937516953222533775217940300539676662128718307265749822151424280687296023496983798599102630773021022253004554762412876037276546633818206288574500240987190971335317659949090824227465853498205621109829105912607912778538201025461535306386352308429033547580622588880863742695254826118179946617350482234219483262493144469597571068735488244172466998971823828631182733651046848094282134415931753083317597969756556648973857601635114500598091975631345552448190871685766381066754369816551833165856214352727546337077876164069258077244209175998015116193326450240219776743194843312998207298801981450616358783592235730575114209693608169863604773012080349428231066681941534813930452089524924520036717464512603450664299858965688790398643471519931194689435100586928733403534964386297406239325564545424775221737693176960679190831972388208846409913355616168023853589891953244593883465300931755487685326189517684975481639237504053470956981117211597407473249557818860095139250124361196805506418600410174382975659889773153041176058598777707359221965268419873489132313493025160435087263589294678435054383717501827940974257427836162162023719028497573664621239019607170356511253927805602177321406783529061263524229538939048538108551484464241306112231474078682453879132554118807213180930095198471338059915635956849707943368503445672204931341987255180945561767527625734607399183253224486421726533830359833021323378996466976491572423707485243953857490390746866567492441232253798839561766053145454587527361180732150060991132446152599494335366410738990639445520279575546158841378757345872382433127045010988289927635393476673577221559957657964040281234979855204234561686774398622878670032820862897960799700752784688571189190776416372716082294904642883143031252172532688226051693234085017295399174257665447965790211279347394532148431018468684804328761235433622265573292654156065649159236538112451509918007789706125326430582736628023238243688005234548408917502881120556925653575871568550652563878712323986395074014959302913012291998441771316003800019364107110104085587147002686894360659455909143426382283972249366061415690501791787407072860868573224377644674599261280591079148649667785224172472958806026403914862456103370758566598587190949990943081448573181596070726439402090048007517407684756408329057749871851090162447440787516523304704581337452387544339084010107527083880718777862761447664972079299428140371134811811626874589596081096852631966518559697565054319584584057376743496570270484124638782864433195081017347951541681633661566810542676417116951075972699224936228510833954358270992685679135508710931881108223115209249098620418542360694926353236423080015266269544602215128110656687927110759848395499133996466854222757257629824500461160298331740868259392706181950682920936267034795405631123048251495056263583488305043884903829709023948475437545845188706834940712236704385135813630309832642739157363966435595671368122759362622085210209195048092413118869717631525288733335816766720146021362563420409141134931570413854920167569212060357141941503681863737765594322343702028013752070544189617591589455355440270153761095633408813784819423999908846601390381393998751096615172953933267371101529668175389200006374190859018231163791914299824555448103141137859287235593909996059570166304132001263124071448091823636675053693392553543364347686739071927566772876694371206816647709561650499499651270199951151953664072143146250926215415420363602641320660718587311494687597968005786299731926300786958010627518015851707430637175703430654934199064206838778890559544922229101637273881304257000212921680935262214338368144134332004895439373819128533149757768813962480393107243702316548671008045972055372709551459214898911237609252115760654497366989202089249233534789518573607461272154693175853406014307407873716361634186685297940616587890478558498062207025736478050284172234794409032242869151111295610733838071048054992930775934753958198355452420131590013162388677197538952754590340542858714611280963525328517744320537718635725270802302199004076075043182496743942731297032597554338754057775282664221733836723467755630880271649366880149480241598100273770116877012301065022622424315753593089198103830945389388194927810473356686929546228635528271293905928076705997871224571390498792721740067690757139441290644411668291220753958781051100414953529059544720164499253203875368863396562717343181610235014403691186700354580960275046864822235866108489267755673861889069748717573669762277646490940153502223652025926990525897974398180890322760363661300742711019743175037160133930909396191421015033379097955365548330548149817864980531615481281218243871543986371655972653246841674157260669772633373806497007791135947484407202730413513279415655542500896571311899033836847508669006551869698797832666460600648022221195011299537411957922606537362095442287870198731282527059871316335579523220151869786605699600093652731229257399502681661610720306003493638585882788799124347286736102395927395693266747437530560605565489888907510115506603620821063649363545952653547639734395055028492673032649796605328414918004709302049218106775671515388018315218113717999880656710811936250432039642653138488686283244762902963909930752380385611794194082651319774687459910751924027896991067178208586377962043327870199372523531124274887808001286867384782960841900009608720717450827187601456818995763415006289743509553179577755126985848869820222004498974074197891814193677418177949823920975054144145749545525928591145255522768011846443559631055388694856248765629255061559155214081048381327544518262043887355887114074039610554194734027458797926135382582934237493014351283868798481814842392623645304810760264051030913304320591497093425441085074489168539484445835208464685519611561919412422003073966956845641984619014211041061782374067486544995630886499583538766427631761984883569991651264106492483840483166997434749930448091928672298716736379236872676003093716515022526973538806098652782255884312651832236040620742605491661307555949604839120957746126402010876952586362947614247943141017768648441854524907880087454780237305062270017107567080051746692282207327856832193617392854467010786654483793598153365435104671111015038895256363827818926632450311847547223640215768403820994900549040872842302107076746355869530863933071428211106607168408205371617818205735134253378035769146938796386958944910708852873950053927269903022306528148758049828856646803062277515701543860995384150325968643735764848099178708867421026779323902333005371905833940307872256250627195849006288370105741746191619514019943685942571264416422372858240355278193658110149526358678458805715025651802631967878251151585689959143300205185451627568085533882674754560495694550475665204577001736971362885282600431771637976305276951190247346916861550286241236144128710270751288025218491858517799727804662300788683220795484919644135841860060709204521124560996635282744791663055400718095760385825623842889625473088093262831274946797268715122214926916395487646330545221713544696732066756781549406747746842344593993260691173086722619564253973262661782339402110314131288788370724727770687123007458787407779581975760912182591562860727422735866736926142693259154816372526168711298153296448225797097620715281869374823889662235145356952854089458799221890731420623653538812748002820047082018658243972463759303888785527359386403452586362196262395731788024380874047796400136597354041443102713703258526935470859738869291943973114265138457720457378542917157326141993022131483561016975602205757910107730195165801124993115058478703805632216834373766169845894839492920188579433158669106221547316229173926081889966480134106771559736612407983258809798270405328662347831693107065587035106279530949479376680073038269793964885178389597944255131302599917567477059296531705515628760263979216290091973705104295514533044045252570631239294037873848906030750928236978939315818754401501681232662788506139645755275157305108905522805944121285194263011542785393151206340158151142214441782223264441006048052255480124087227041358563578202085075293843877560596433529330477195033559244000635290049124912614167580745823222010524447329444437282153152792285841559424977144428404744430899364140023634956495462929494753457121275141688951078889550097606585664804921828562991712306846438039327980901295599600997805005489997326055040771411916924465058708286416843162454444623540245624420291036705239666138637468815307498336963484408677832869038717760739923924093892545176204653260731981801414597549263631192290174641412635615623764826593291753296862147012243121734293072936947729527499651779482043883627002689157849556942821491183994236431345500897007594093572388311114505599328237404785464211153498883677059028729429513798847749864127772383519684143775283117453684583783708743399068061341932617944297041052545836925515642292196429532053962769594316185883784596748743615891625532466028814475734610992969299177818437918554708231269661853037062919674729575836185846770295448697226155833202378546475535719111531005964525883216765005598339838957060359183652147645154674271840915980037891734097180940645098407000856421926190822784625282830544910901127994364091357924994828970701867167536729438094420307637796281145842734923088790677824396070848302842857801487587477723815257586487365192881560870163671429834574764898325173169479458845021108820261030584654063052949050472272032548136917849362187450303715968172825669914932711996530445423890778602333169447529812811570425981878750859353882208922288961415903108474574081405596022711420357724768815413156848461192931768493687854830866554750211064204767512210335859672450497957477973545601693407981927595017234361003278463726807296479980868088908134845227319809955470258992976929660598268451748072810149542584648183510537736238237218280339885856661969170084215834017081796634974833077924771815680410509262657258963229986582345471646969884141925207841587346237235218178303705005851347974875850626119298858780868438866772906766005252227397686350548263079973097969792529496854557053593749771629239782598224018172271269619782390974055598131429610032779661761929587576570702893970147188770987289412198201862737574435234188247902091458978732291201299563090352797831485217961120846465944271546669985437523291637369276153383313684114516178774214474644486950284849061025578329456400148950182022256379387505176019001792982972181973879623105320699953607260275556984345952839581686952571601661571853867786883875410463132664863422484989813812891771220108523550573376318809946490010957906834588707604098262585574859660116596495182842271258423952307744728997049510266645715115081802627836569762548184921618659498974749871961126275937580890948721459120464742136238856095186264025941731460685325156825763896505314366653668793280963748784000921443389905814550796290765219624311179827365790987896767108548264141006148035747531300554137551607581041704261171420038379353580043985755206823277857801236499246636101817361080133083609835960314546060455841404507199020844817384224229753318586061483437261568756523763077656806354404411811391243803016145535712774510748475804188543463529931387982621235985133963328725619014716850332745049412485616322919177586792599396568220232310791206864419424942743300959558405651105709438446713014381057834893936233702566944376165143310121644725304985841622901457472169630998174319759600459322368593512543733120194316731888891820225098740735192705462306358729348038889584559237392048248021737727761807636857875415497549817502899933277504993992350250346836858844545119248367617716325712581397968432824976010561333590095296411815797817762191732397249869444816565611299514845086010880100735585161329483737365041593412887964706710728045564860227383957089455348044997369162775226385067047412711066686342415324018068110816951135026745780029956183941128993451099324835556629010285116206304000379651279019686941957932779266257112852952737008104921628598452248618559956433829741892746686269443959247770356765322299548169219560595604423227165041506795707448246475925196907274373495829273133192196661783869590837741496579204791701014039988770238521922606746064509592822344528571768270584620291086702133324701437632854914054522099050541524922610478088814554346728251707549562401814109007268411434930857337546281666447536875963378287587701122211730230722263555813557054216952759212516616370586483488340462936517044323406441356997910367128956474860805594187051127105883951666087986269868735700201327745447155905200593488556124491318383361913132563815324703931909686034341299371800059932633990651108650982032732044593870830619934258342349792327100052251706414484596171731693016371060937487806881356149764294322448593703244698569109747620484076952822510899774882460816468351126601809723864426826430949671573640562665149989903898458365307117107856446579576738175683837660834879226867554638182801731032707810653626784346907704494001665225866967366682197482238233759947481685997334767606678746533988027363258104952281737023589562151774098593894775702838690402596471404104607065287700678127131177964097058469628425961389334612010031401638716894911351987309549854208128738690173718027005464351949892040909075871477887127028065184468265548930650287107769409431826279689415896128164986286712819715394256624446130317395828329304003100225596108283420954169350138180125982333604904129129247445597732770803681129921051833008618996403761276691454202720795119154241279144268864473281865821521654351387848372040262999520372138442609243020206118982174527084423661140793480534889650799546122759598903329063481251636474559946181904666924716067766432192242381334390399290981873012388916472565368855325660106047101794820306124503145075483295928207534879857871803674257845060536168059074468036073613307533491762621493120057159168559213888202646395789674084512941697410446337929644251878895073736694128298901154458450307000183157011485129026107871305127087935114488963299801176027441081351296350492285019626631364634864025434793145845530612421519451432621774744784936655339451927455344979013064530689270646141655699950289325208517985449124816887476716758926711058516480458288044195548333793819375888619295601692628855277683468095164902627711761697672349140686726947838769365681019216881267153867391194121898778503568742782142700384021140256178910600058000506543156937824831745173059127451792324449654745652900798666805531559786455199213836494036070098400060344142264910134103136605212313858934551119379615735474490434422576264232810493642857764057747730387780693304844925707833790018835512308368616095938146198298278160771165729582837063754997242275331500014211145206492934293006619117011054220157423353385460616639126114987585638336812708988026886566242046764075096366179173517163077247857456654920558611487907867435088139391340205897754801804394149231402639476524758573955371712048634945192130903693903336626108374332851493171618754310994599973578619335950786451983575314466180767074150591705761027184264548225631118352919356166746181983065987213990282287995187617865615494756728512635883596463999144323711949880370493842766195578038152784124360384692335044432510453892172026507843997347947038901851077438046931108909164839217263453346282920239296621148734014119715249458086287265999844422919933732661535458745205906118782641411558772636832629136252456714203376777998790101338666676643815962168692884227354430872439398402830286070230939876046938980913512746301051592652269370575178160140641640069254742586058353664654938961477309733307753491169101792339081881367591325866456847182793446741105703682360051599463917115604789877251417525881078182710197031154486442037640266738118908129293747814998293135467890317369177110061856023804628335853998988962673408783652935468906917691904969767623945212416671679436149279712530947618374431764185610451237776181052311457514315248610765597417472888807404248851162341037773578769204318257307860929883058496978157991616855967901846175147792020507518488429053647565853238663422373069152465357953021822015932540880191480360311064814495854079162902119412341659301921499683362525253871679295319857059950131608917426395158236872987348107159970091936364075839730340627821710440544864293624361448676652904513868795292264104590617926311175035764094834095308658651930579856028154891900544870556396473381982376358959688276546775008967928428161290620926525815557762165622503364712307776770003711870190417100469028283222536286852187895313636289152412832554919476598185305373215343352245165886968477084679748155676123916959999563015182870424784577348749078978525247120698509414151883470319215499730192068385064432556566307026192689236235761618926300177920114950697360680401114521884456075322820444094961288312712222179111956677642298245010540341128081583776698633023488321805253015208240357916788827430669770244154986318444413569326326322734482498388295261088457721636496278307922533563216799376522140526809613195440298485335006365308883434566044845023847892034731389919861744494516350581292054520645585888660419847718218629992477627134587581179268952561949182998235469265673479436360922064372124319196435552997052079629163103681094693411887835717924496468956615189384164407443041222366756862376461778442691084993995043938745812823998417641609659770071878210666741157668907980946256421463338850796052942950380663436718255033435375383779243766578224485964817126715842842397116989820800271984783700932163736193779783352549165778312179774883323414907176446084709433507913153194446187526714143250595399302433903621713008748400476965702371044077442306056633806418623033323772411692455729069294041211669490103131795211325321004230682728852422035979106930421108738427282854644271294240019522150797050586249973223576197140482547507057318206907023906514497419340592006615188926031171806592928410560518086041728293467995320194487026874478822111498453982482055393666355057703081181439356756700301664927417666050607552901683464428013065512630044829082619800489803556200561011142439407038933312477958874129044171089774509323434228325788254511755045287284181533663134175359390491484745661098560305202544272586824630129271719080752154175350639002087495606245631145509145656608744018057819729345038267189870647924657794920731347113874455220452771211382698512202871301773809507645981581612051811460376111241395009648965886749804512967965738266427683973756879373300275248094812223055542991959234132520741848996805711889550494736006769165620324303719350678828053220604075002128972525799309473920291510278883773089601300611214328578318807835742024102678139794830852788233954314384736824624675354978509348080409790751360357687754119864105948961478752689379457342223924432222967923629084724374698592612701119112707944402318885418689349810737049621015845744097430719199854773491375751120158105164720539758435039218489583320811717292288337705465030546938110259537597707490242681905512337299885541850268930415901814254939745266037279417061509704328179598026170928116690300554519761543980146403319087970424008673163527369409676187723942218806972186837488253576657908931464135262271586621495289685521323701318303047018090508084563387304342388735063582458057825493010744680183950736696594262204493594537201793700788364819723146844862211883478614283719387169643131436731491038487293430115161739227798512566265171255856825824753647761810669122252101723227442162494917292817270979305599115999653810657971343883092920369728408188439780273792149968596928884372070105642205851830677464754330629033682621520017134253187839311800912738879059263713415006193728006526040764703291995676149707400375662667930291061975132922157461859545827615277799049393417046889645667700092330859811038935654717346405369264358457672356724682196182140807595196796593651383202790228527462719797775219275129642135376822980688116321133583370677719764949156357714936300693212452175822791015912234589463692566614917692313012654748820674808244893774500801586261622694687340005441946486934618910038683095201301779974057720428699792557385273228648015609349108579342994556412986271662155500483891000879613608490221164080776547816212870612237618058569298519327473970664085306891431171467713259171787559509894311174134994185808601860157583284342805487400866498454084835833604877938196285736393970885034734575682241106809005409567591299329405831235385405011056383459448379883248919945115033293475725485146346459888644693851691536009521274161692913015043064883302702888999796198814007343245041808052917785916344819429703512324229463096056726777977001565620960472131810225651208325666489241818077619156772547959547187626019106807222421339643670504621881578432794063539258862583025513498155568003359229778463766494059479934408847537758347227067765649918396256144197877419494873391542875526457902879889106852421659828524208577621416901515330427440493083377399298250479148009553558401694157994921480745682951039937799832732838981647318030614612774602931179806627859425866727264470510107272190462423149375377262297908931389826464855957064312217894806162601999921538501900930887223106812537244262003159692128748568033801015557754620903843719808302657285997578556389291028055183483072488140552171449866446331774748955335654235000443018052436052135572651458522864299105907723227295999515460598904053157654326045232702081639649115288750712077396417830918027895648922054085167380432138696314055132177719794277311044152507822614544359016813315497790105109917615520239140575782523990459527054040130496026851331206158278529814107529680130045573912827235119778113199530293786791903363869485660897658473718618799312359891616921465780496933541029948044509209375191097786678907113844346363059256588777011772077269575311786991846627832860682244379344132380824809012727440231766190918809838170721877241825329576586147566871991579066446508451429553838147372155142163142093145923727447788952716138832835485927853230956308717334516059914817623772186397733777482718312013503916600258410555196213777530537589787534255569504833575489999993916772820973727124950969207204320115664006458001703207910125603473211328416252755767141425311767495302092934998160768598087978484866351462076600756101914658417997687628661886824562753245210838353204194364347745294757843017230101898238738617682720515274977008709182548385733547113316337560680575488250715460399312027681427892981176597706052261163762576296021301083868806534037353127464774054822429136474871715100132409174429768263246358832108104612733717991824819381175742886081291338235219827819744523498715640081987526069283186835362696014802515266185169167876209956033243850380514614274515572136331776064672646637880617646462768190241958010697751942633415994524672224265934297003992044677163189721994395326534256408415755806275932114573787131633497617744612783106481020422524660695723618114832870210293654199080208819972463643512809896524781781123920744763828431169509487151976487002456141363240920019041645584431650623887636183952294456383289676401255106064726787356444892545663419895587469663863242529257912923327072831942114570437288525496673680661471546850409989654830096322361369540331080799186483709314268735424148732781722341445312875562893884458343139884590132686565317431875250905731072724687630534317853259660256308887221152942365456244423485199300134539949481806604852742254013048013820602675713937120472132095369197023641452744500657922409353517809226883921426609401997415665908479926433559750182909313511250758596436350745271391631050520781472649699169593966327013433031024181335431002444868995214229397431192712455064800426734059318185214066891311504435383367603809698144616019436699396716699608422715261244580727995818775114002828421210320559725923120710870456175614901589649998125952033116311847652925048148726999170556749975231807892859490123690690900236989123448695775857131624294133636860850114340117254597747843368680487156268249827907954636265895982175385772458966109019894932789513329833533799993146088525960087195867999900543069398877509992994399499373477042261798156257851266461827033695530737788592738069190898982780997924652417279702894426338947214188259050411034483694754355080189555503471733737022787329801065468076369258181935973378450677061659579443299566628505478002328341243317849781648224736680322282797061062201837309553172392247036036421806011347924926205491682154090104571390016645436534680449245485080004899654157570455862473577056337771951692977107001312055380239851508336395094961353506033854230062999352896478220336020676238493278961649874361755940440033525338289169243248734719971958189290731786399085581608610237953342630740490975745208809661348087728129933860708258374486786747289001311111877790048895386326793273938562529222579795420292619160943647083091996647554107755192934806543141876929186687978766685848885095513213673096262885721879214208182074535595120207394391242937499108520817108698686867601315762769879204149382500134552387951972255182529385563714816941806233482328480358937054923446299551393026918205651100435146809459515435010559055109930582064723549823084709595021907881419461124225811593879803486831495174603197086705470893003481162868277504809282579379798200653322655635453093989109108076778195763895016168976682744955724052013747820707142237036968725112719520880958704368282552373250085875811562658520253221169089803116273250572958985299373671602364116065287862595629376429282685477093170451259850988667898897986398796680701099090985161087095883511754380881650362744158976592740096684443255205831566971666759530128144937292851770771880932804104101159120578848089508594127044397412578028464755006783016793407440821191821316697617527011069996567455700866860485561234499113982971967715120838126627836569913545957011734228640512295538545736925700509233884102472064562776099440866003651549877379280652153419273586523527368271735562107948560197481302544371822289485273204256673935976922968224514101904362969466998598992940441930639708111666840603308175186411554448959835314669042868003068552626497219746859012339520169036445205175575509935822512708704200686920864018504078284289658455929644617539634116534227543776210823552359723897759145006717646485781311328773965867753434888769307213464771986410303681897361625853342411337396443493154357319972716163396933727754002629825488678321767901164345053511760980845770896988583834201613357485444056733393245869016538389152075946302395807926235948674226983978747599450353922640004305455489912974990954686842782872998396169303207084020020303617145439767815660561531639493799724813235831915929358086958008499398565193428952921043907941437876902814303304990150793183719825803337565228582889329759356043660854427648859655896646976045708898187775757877646258649100942271051492497809945108026271587641843868450923562898315046496191058069929536675194289030631072139722349132758498479055306829651549342859007183751450944142353441983011730714603146587235480576953958893797126494559388193596161312728294325088336458421882780837442416525667829886469748752290105274480141373095087386413393129326727768795373232404400553146501512470054587057741722066811648740788102013379451396936744682070005670442899900535107620109862178015867737769475593367426141160405807880034848254585148566677276182438269566665457713201729252846331735379142197798605558378988408225509904115623216096465561634088032850367760206397850267065685807232570120279479991588847635519990825516242248995626126449344663023173000919172768238030057793175838102893419469837373659642318814012370430149680898016143923609921344171176384988145952212957975482826045373425548266094199785973025963050414051661888990663070572663214244527170975553168506176551869073859306734443191016617765938662397353515608116970805665982496302147454592230897620716054680085274866144245089986055728242773298643122515965244185702471713046518453800659637669441603006690662621223041331287941902178213587555643249337182091688550823803478432728578382363828083092832392135202796667975880077197552115963353386239473570338202334053701369138591103844683542129110018242928982328090926532729696787301830821491333077006163907312826943669323023908038891089415145997015696168086187647996140976043344673855703911516484021493563597030916012568653283916876999325222836266300905746163823049896081861508721357363966684716843815737758277919557630900819568084637711460944639080311086834093171792075260480687440643622069166132780586054390058255273342098388100380391753080932753146509983314412260579240664166344616548386423239238630365207271975310473510943315833552269753885503804121056570006941712194167428333946682202157561077776883842220694911009879440483302922871067279023272753752839398015673016436194499918913068374276648623609414749846246658155474251153842336397479489641606864264911365403209139219126284970946152788883774656107649927029121629030143974062134105023304956318023909856900633909316986545548242971222227191716168163747598449046686817578202935300100503479863783913399140318970663810331684993213942268252609472200244477623065338473360122422157387349790708364119901988415659351677768485018932276106224166919955121249760032859928515813167318825456702155610689751943135424955043236819847066850040925796949439857881113075971633357457692904138073418914228170339451837125283429910695171185241214471983438839593987453872618779188888497803408038705040273972463785810090344064139527165873778524106849893051630999129639455022696020006943235383068059697344948392416433218048952357963801773013697911582928840075723516479888957589381325093103221533510732028213507816877041317635921489110767697527114817595631490284102682572702966448688552636321415109443066172603787522287102306299437941395471711388405883897158773271443686569416435642510056930870991604031769982693256794870733014492751620997415701264121890927511198930708361643395734026120050696020072055846074769500717087570150651138254914622034495915370671909014162441966538359112788794842919709009857599476453134871184000827769381373523008394932610701977168533852810890453819497579442891707392345677492295878957031847301209461025185039997548296886285453633210650429150437060583339178892305423588229157834448935073196163824371927881339704636228646006474183696664580017923489113125596341822581321443616480658423685627607885923208819053750572616675190081408582134375117186068163407057131959525561307461581252372938741706702029225619320380381342342551620452201556833391550442700347832691723874909321721582463952124442707688375844818948423024758621024242534516221755291314644291567633635823562614307747884755387741254319532650367030150876874116083851534166552442324777313274169388777267797857298460811037084569598993803720148256236687737286649228596223908687873036142928658420848434149618988059596715086873576956119077186717789992155993009953282642741341454141118725019272000439865396528169514276506223218488858339594981938446281646400230373076557222644332932086121174108735216360786496454576262515011956165469449535178546197282632534927113247592339666519594389552504150664247728342648199021735122512481527653850828303191074334846544373372507975471265878279287571497553677097022451320154059647331728079338053443921219826486736063335618922309833268256175886156458353649258165896130905625091213813139896703231421281898942115778627744633021649096233699501439165322001095740530393656966524000240003362293000453010148247298996686823116864631645348548093443064013119211890806084469244627890369611377277068637972394427755629559417375443147607027876052192714963736131473929255490258375789727450883979850307572622591991441290927253068570721769885265337168923593932628825638718982886417624469735416593082329882793793634409826427814241333182132154672669231296758071161970267533785036414665598373028238062442588010194658314572570478325478255556587766953570163532602291575704543673429318021654847085913605872082135959192715447660406044709604030837980088794348084496267653359713845837492066608919733309612718944647322619535805221812600093860501180768064385505365753878956441071771046298764045761965985759907575615472168456259133497276312704614286492952102071082175073893149960886808725657142391905671424547096934004213326548410760450768957918323036627211603373215129366515114327797473682965390760888780409423969220957704294368291622264692011084693982780426529277731995194898840145842439584843194230851423449691677942517544578829659039653493234092681369960461636269117404835637862367170738094055417616293379390603677258269456366834055755642562106374673375220209291613314037598201779778987543166193081052394073578544886903513545048939163337003562033737730449731839626465389646755486416349212744189346484730882425249292609565790246570791530968470895107210514341317325678834802884060887683611347066848896922188926562088369995433158284874942016794051641720224094740857881688915511952907443416472680525495809913640950758238966439165562274134354106668962448118476116928856401001568515384654596121135694419236340187385297805842680475284858918974276457530416677317995932338855059706586420588059062602968771073706056689688568468714685715281762502381568361445314960594013385298467521803641055543208734957640498306626294706652821981903635396059694220515107138374205287784623631530162052958042723999489096581129435770028617936691568118289469784075710716357511581642288336976073392948905112342844956117840750385543184720918018996931025465388860672715823605622146857966586283187825661673182856705133254028679448251094530508388964179756798639566478712872544806054163105533028329128097509704048656910550522814183053052046315051274555797684723497684289777708845884254702458271827576086758909777571187507837260409818826811410777089508556387539653075561184309305285931627830499326389671457783744565707183415127247609196618603864136845032926625947183790332587191359405857836814902282419621899057436503706718769224867049827509255646290360705835529514706394285990339241520444602337718742173732792015829590894937317932615830187530427685918862849529064589376464737770634947691025106770447886920583151836558525754129224417363259033607200166303154754723253850543389303230440196838316751908274186752627778054508241133750863316876462608292697856519449648380607263557451035760393873687148393541944424256173640665579817109326627600746676262872731386110012144527963594702802553325238522643548372759164103667477561166223006026460762023291759950537009592446631894516804707510391542311087462329367248219089349124359744314371894243023855497507141041637774739776756692794840686744773409764363070756411526392000746557506711020173716704665398913677918644970326304450070445087228955871173784228870019365767355017721247535792153356637584244608976659213801066621489849353076195833029827374886818413512513727682202858792667396738966728674078973666545426766149813416069778970941355003223255767891906255827737963723630867970892546550066833082126545512580153688973386172299598583774789841031019523112307868704754512423160299409158189146551207871426104043677119035821470339387782309806208030005052407642185409873884149551686212340274287468633445597870897226329314608555684464220310041552102219545390413223424654779027060587249461863239925641208821793088551606688987810737891071311548402447816681809536830613463134368154829297094931489144378621767167512383436191396142705262748816411404468602403259629026468936993985364330667171583831880038065278718901075192841589043376251519349574393844174985954448733925747992152479017521957440978193015986707321392678109619463923984136723020147865601856179277491694970471962818922820460988628162533009270429724112051209369690024270599633596847756189998480988777918014164937184785174844055512453299506710904360996435054882950169504922537765193995598848039258093111975604863248407321265973802831317344052679717567625458964690904677669410606467381109238552639679208733210180016654638348035044948333948268844222492162825975701116209445591576079996380885081896586510162157884406749283159573809351928053079947202761922702144455415459855264177019800087272922384499837522903009774543305620180111576287571423992231274539191029695010040145076022570981530962101877127073648742709246325413853017543921823473757442836871930481675610427606896145172266463297467203169530887973155127841855244577657334906530081879025272337902625564723135668355010038177030781100883642013252516035149547716293315042819287684609138211742911170220700531049670270091211045066848254353805518014701120428723296316581729194771563548779822070903637933181716740806937595248475289165412866169339874952810927973491637739671886674227430277670058560323076491336914337418421497475605350572175656023504189159979873281616136106630809668242284882400027659261952224153016729928519568384571170906768994334675132664687229174563075600512454417624665641988274922686251107899196426340106453845621708965624705948350528661100098597023038850248868113195626716139906131564498201316344329380106482796091141116147976755006166564913791824821867460323886801260595520856138236093598069937530596950926738837316957063436749996601622309932853575764911666682237930426920422204863012574866213098793920886605896301787772152897545178313695810708369402992711099045194382080589647098794432533898381239751661578113679703281417051254592016668982294818623400894044973015561561147088074948979818791228644242323393707139294584116509277799734184593549562062323816161767249747960825270208903340054127067937637871711567635667430538054395076482066805715910430819349444322230109856384335747812321714798820216555120230891953121045303459355685089042704149488026581574625856888456052815761928743451208230156579928174988509214196363889428762342447063713984584583427403308780616452936437158086398556251449074747074841609699063255115328637685390532412834684039848673361356998277036835929537854047989294862903484473946190582846712100822393536576446663819716907501763719885087910382459838166198878306881282256782383999345145132782443673467809716346782506694657315493543566440768115431366866291180799766160762332768584428966029398208488096128635650847358620605300409809307637051586426083875281656396117167404023872304565299317328580739430800764531864875161728546944115202349412457154375840272902540632372690542507315253500975740709384975323057320340800740661929190275282564661899450742230089023695789802297725167791175752520785716163566945050276131531828525435760607164952412425579642772403285182227524178638300134577830653369755545450526825992288254056668285795462504789617540227771700508840425847219781220884281300644858222947873287144994206549240922499879522952264322629814697631043280777105104621462910377283954429050699859595502144052006064757771809356138090492082068515070016445699537222095552499244825021977380013224481043115278560331636995802455471681791050795638690078241745241833381763664165743717251245845208371085788532928938469291514616584772809646927549197006162482567694037647045277095253094136640635978966083302107553227745782236557881381702683348493836073738840949045804174857067510247680202738731033555898558911969824782615222691352507648984772817466092058932314812413212755393180951169568649701250675035896352009246874352398629754218016637103673938414301324848014313598690507272060468687876622580350282343043513139769108258690327070106525622496906823372426335890510562851314561776837154121428198938633924438154692721487565157190021213222750352659471614991240841811915647864441054314430205763051602043474751219632824317029275850280360409552608003709274925987130833971540077188051097164348804449320094414794808239614822090045513092090819191137393376153965228341039934525175058897831915765464358806609585196227179109021189472525342479119923437174874156110854096015792726231494959021707011223268193151360869403014609048002780919686699769458496683028115943303948700573702799259770157340561216883987086350010045344594462326322204826893572190826312037719769562803299716668557491010656265862349621022998700700904579992966644828820309142934869671662296678576860584538331320692652237604281085742790227552063056140505106004072539124092495277969196209105931586498258037666185723050897298294766967309379847308002768665657793442518861815946131529207540387829337703865221794884758255730197587933850906022992325324342257899336279448850183365850526521916696253602271942085344022372078766411835382761256427668195337394907621003812566659325148345781228049547157821576296403696329624727537238738940610402621290033950173310998128770687559361770036167542357084297271650523126286520548848690756612000061240478583141771706468140230623711820008959505155578546772834140199333940096141863080695560792545859964170139342185397351867312298688536721360945980992611359086182257397775182887312086372132085102820609072999628271230734278434137076282380513246281698917356876538551070918161232276248880103446873915340773486766770686992448114059300304134924791684772241025894184946503976021558157229316821682895718884091509330610202744392645852565454503037518202839582303256153888782103041797511777208965709132896450028858906398436057839988046281358749687206171853101060895154406073793772257763668273397845816358048710644798290725447693665923362630187601677551767227307443418658200237922097784382686781988323618099118218457497347896325966683739436186349045572778265000077585418670453266604611217507473267910496358761033103889906050536485281885911269284141012296697140518825595088792807682867630565824435167275446535852453110071528154095633835226563118186184293999323125106493005706968890366351310419319012628232047449243399396631349082937942728504727676917417891975387673587250334170310007630826697007978481749041521514806403200613093798773820749396041725168633120950190643265247640129792603436706295694040021113026241209169578767982928911505696130286218522379076083102161504996489844354821552162504610411450512867593258078582727954070943486018864491385383831791390478573890755911018185239355644535443954270833922922316731227249672884227933344981338080088831633085755893364378277242906302696442112235745304560608556663333750275957285431881252068377387280485404115291965727750121813776132924488620311569133825989179881008072592357434195840019812727631809885656201875918635909464944229997196331754010601562278693721666325669270904608384915581109958764122864596972542268959018006186154272408265893184524436464257887106029781099415822671125951193790320288514558177799070030767986749120466204421655406862409430431125513054331927817809372251643503090093453404957647973001651561580976420436285160140668639911959408913739747059707487855383622329161300549413732879153918937401831661178134563444088640518663797023826858351716370162193520470511381276462335026221441042234769771868259775372272101327634063111389954170570842548451080586675454533917450176405299760504365389198341812391034780502755909761388237125298704379970393589308820070934188277148347060815696175826351029835633226932315714328656895319871729448081561525217808268323817470272311816850651149707848952924443836188176531061650005924911939648121866464175928050718558011927551812556363539856784283151968988510147683023103226794544175902887043241375243367306203770578297474019128628930461407154310863825815842046235967196575907882875001467880306775767996250367383542381661668620240419923521855648767006321281525262853038041950692930474463476970138391737935272905470978032336519683038029935514100721696472044576372601528976485985952112322408512551719672918896741980423173935595441796480361097430449720423717196074526816181081932518055544496783800722119645427976135869438685971755279227695720735135339092948080165829210210165651813196326436701436914948794681928082919875447968423832239966444668390847412838708358987980187862517848825107948085595794302274927201198966413711694302453820408229586855497942206997544021379710572410515676680780464634720165606443141894325181983204876538565399262379890408520403024777734537169264225312321411517559551593500252742341088221911397840990822186879240046323993566775844014029232030498509287571845323808204178772830998730432964662748805637012710077245059132531838890188672778624289186839717457790565449192894760593367247013557740198760654940669075182957304126063480696105424025235337873514950373021672230855046892218320390214167098087005378587782512844253755541972837169012203464816517618731477122286326514441536319173125606832577071041070904621335974091663356130053609663217587299822271675868191425499722739475816228859947588499197530261625480357594456571594853627671832461776272694852777172349477699121828069109447688202115049685267702083923949345217095829640455016048593596576613335333755359888136448949561709422621329277422916240595966812007141980868924290575357403484679801290455004250095821208053010359666472050633738578649350668726415472226145847931720856547487870239688539422401119483033542437565228179576249293400291143791542429180693353619126706176540274099729469113504675465515974680271652009217602182686720630289775401546283472062484636197928836159680879128277271343667585507610362235906033928609743420820412093935944858704925032658634049963419843540678245002164141572397698305869426258898026775989171935222770751787835959283084709117972682956656894641684391850108872042287999160666634165985146139904675419930872310912326197961345913075947401202267692756587296967395059983032210852046520766940159474266104948955064433056040469890838592046447777382171253259053688821353754070974780958595737670739375171896986944280813426483532617711273073134258782084173176921675027266974638203442607320737044025686559185386611222332302273519050578704801541290415105806819244051226771556707883352892757329419600735666869330296796547096911330625829794191371863390802142391707270522514391626050436461897960700247390572518507264287825531569953796693118972237831708630986636534475960621715295346440896818645702024770151438127893243600277472364596625447557185281006959403300285174027211333842063098542888985259980160859887650696456565810122291457329782217631539630733705404268430434159193202241591013065946815302255656873276713037310574277271417985733637017544751774375856191189499518452437163463213737384881742000285787088846619389822471181402487264626705105390665404325064298345001578325364423694141780890172631974369838024496614203036966752235563509090719771505487282221177101426048571437783126387568248866317025194650034618170614783075602549051245216521926046316304179677679015310152130553282758674797924200912054428390776642094381962250722545601120044843210250252668711487258199279148180743238443360315891306959840872387660296256724159101835058402754900448077103980834603119746307806605926085796445995561177493199733570051322437140448598914207607421311863960196187351984037737879859418163143525136571845401196111530629869095814143713945111374555899386053674354214182958012822466873584312699307223632371462751952630070122528032776664582540998344296876258716992583168391969418353941041509706228933217100343584502933210672187707047326317329641671131573875977933808683873598640949481586004890551487659458035142133104625474544560300116818382850536790834739161247770605016295953490587856469724213881986118254386456048069356771648397846023506001470525651671161605300697265945486867444173876918637977347353860697189508198206328822163494945554070157208344221232119641897454380888582670405981828038521602074751153018842411141568391254880625258209438126182893965551259758790660255236642575185928949228131641356126454730146718350375118933321651891504536073516254174614871578228861205439677886440124760992015644156564597509794267731611619018298647402687684209770447651826489182483362271905539873618905721956312358483193648698018578086911149035896932291065961428218708963019774967894909106287893812649999039218363242766027312254728212227664892740008300718249002663601605797547714915392573458767121141810643611749754510742663152910087280328201379396329382880486564068449056684529938154902155363183736618513277965365203124782699742273629438197715119384847675258637000210047717075409054772609197136819602870477995854790712293466628780019545967964360071857225614397367047738659182232392993823340808961572200687241667703640785747977478331062769514793150193170228074420553707393230667016254426237471164253561847272477674543542824370901299182794619537360748082669731640090580394451498644541028074539158800353989387572358305333416536051176176732692604738309159137858513740791019545160308959675338979052450516533491238274065045876934608263859579668293209921000604779393301979754975938673488626828464380805209977015039321039546857154160095247909058744320709873635966293527890550056455684697114633482258291315624289508863212633520695299454841761016470501531073176339604832981012833048542114736584438946422681075860085844124020979363969231255190685054100602703921267100579252360588496857158910196225548219356723679802066757051088753024342064022689034555764950022997074402992331035452321984732107588417688204095157318551324897933118226430619789298907748810759037369738320675917468664363361656155591550696434005911237040403215392675037783446187009707618856534566891029556645083374975782576689997389829463981837689682960180811320756696667537998292593074395951806487527041305337808157328423916371954065321339887071304040929863176060035170572095750746444950454917772753675036321692773804243805141105100552957501085807476462857767933797986155162240545269145668112422230344672476239275367936510476432621962184243969131444627073007954763607671815608404851520349151372018510204796758585943064941698105276042863719405587086809280338645456961862056507376855043700563191570765293516527101502234000129818925072959181704381407141546291329908256210172151146753649902279678595181851023992104520048143120262540925473607967092312095699349091521220791778932724836552361986022408038259575428291349368841088955607495934071664323821830095014182387799823742593523937486435231215528707662905361577704610293639034604348380539531103624647538479679894662741045097389669683950429512175004055042741951406812003825287981887194447991102286368373989590253662131654564079223543198936792229780397776039230136998688203156864242461177693031921944547761782852251039967796809885263461023387483975641691731859937983486594149501766708199311794535762796661902655731366291544043789261697169683250045136886203352255873266166940243482614202492090215349573442282246864052200917251207241412788445178668451006115677554942180074895152808269082927168525414190561749516636693841125934397333182378314619598474715092990299360374262305890358075994640231308275459248858924169369125944400907421318082843650382200439258115751195943667862814448684073614892342912942720355040510897087249797306083824601935772242756083744613601522865441783914345525718173523374827844201941452994471620523652055996202930970700648035934369592130569071707480334728796392104980342700120099338474147764269824132161617892799363276079669075824790788506704302690554152728553820316400098091165380757192292186338433850885968604083517334276655836816834458856002722736564442877778488852255718215867533705650208790580915520504020001758929447738411392168320549711165159224451911727542169257094350030763671677821799287567550603380510780571223212411068575105476010237103539571365974845106564243881510380026399975461624969169440247641669630978036416690984427978847229162970529936488805321505975024823633549237002581318081617475542517664923926094423437869476599198628284541859659908821520398895992736738066284001043844316175286893016220202989288122227908126461547134231552065742897644169468525531421655743853066379816592312788423265747010717664278610519075145083096416445892961520218474953631095537706384293914392843624645950367885615838842330471575352451194847174527393526695765151319825730376744033512568696953475814712978278460663732379877036968397451691089907126293442511642508731721416918189839717490552277577721009941389615465353133262755968051799259368040486983427086391951820430061757739949674029685421321968014305569737429879612151327643604111163156363980760461786626675391439709830016653849146552262292687473151162402001338326907359255593117815525412572419464320759963144545892802380283206025626345438697219579093350985210931473571590405253864679963941770098074560029974887351484996629622414231314817162895834420388986432039426919593109513385469185439315244895385221291582003387440017286785878419738964946146670801271298792094132711962430095088119789534685309117086779589627103941942260780009668445128434233281414836073737955558500814999239370965375868489806088374355080758102263722750321241308886641217855624438374545368950248521659758401606100276742084722660482129954014729662489864257676552803702970365228552749403588530067801161915436167203986389876467010622616973717978320154799314298848011529376694285791183630939446670275673183686332258758620097335734545642003341484221447177589762385066562641119330850155001860596661957663673093059293878327312281143055588954388939132431565406359509828485798339503279114394984916801523173134201819802114230013212480220523780335783956571242616968247261317544593744439681876245326534431801013817160392083236892534713322670396439877124990819680963515693550112298076944196754856315999045695709782202845114995426449254008287932238474193201730504024331266426379862809480810895394977332926100211656090695920929252199280697868773352998591483651750628089696134647045020026701638680205757509839012031633682984018293234897648025366132024481444910292661677259503476733383319561080835749384032490022302474656282505634338209503161641252676493039340126173334364280228129142748902072531927814847623836876121827747857503129155517501091510389133050423994012383915339755053542836495856573109807724526455177382426671247270242908023203230330622990103302795848059116755305262168756938393320432340650866078244991556941569701615136287522525985255521840718897065170476915536665948823890118904181863621505398288722252240868481328008966050340706338909453319045290225201768609455858068932793656234654437654277028445178411226025172963777606906441304717890280160721911517799701967755916967607969354212453977566281360732237243472921296396532288468921984847129387766329319044623741005647590557104844133289399279348381759842189472348427167777825059196205807092402862784631482941220408827648819559087315079630412616158907597232428241285355496959698412568038421654379130010245192158657003408016724860279469988382386402247646490973351972427854326661551893153036783621658578985097175526241119867947153845051246869963039265425399658300786710441080481638085459917638465694855385134927271810337853615062745004121744584301405944244301043862661960986229841835844459521281457678681378447444598377867098056009647877124434032217445756547063624015710076645257971362021123463870818881662931951104933490471796679821451414716481456097485537155839222150680629729739079234873103875583930771252961478066150968269980001573219342634331085812295728434067706903912463375173354692774677476396462883919900971184967413036882421445581039532641797406615271629103633680169458335397969170021679303583088383681981643515585656042711170848989291758299024198867795153709257876506698545129927501826601825878769357471984759019072284030849147615624878548380926444868106886170440685699810129898349299992126467203589070082185929460754619677916816823529403888247890116483909929058677079967466212912632258591100027553758395361478195288986093408829803815009755364553658950725728055501347755598200058301836761962060020185366838360396310730021282399312953639844708165664874145130145706494921697346070296819052869338117568511258474659263984421751129133660463608869503951591295301347095961883701951451062585479770140648490428093675945549025516441930464527365444809428860908283906880221934347536859474324090163671256325381238099173556057104881104301744160888090878182131572576618393152320662865472282059613936596852379174650259214372955523157979065987975031155918081974297787867526597512662410466891180088126082701579948069984251529988934318239635571708195053243854508764581274302192763530937978862895476535557905952658441693608991283858615741558978028128209804302870103536910305892217889530857009212504493176290491112610965071538604149987421549336846780078096800169245518621475233252762890997479947201823832595876028052384382446648372847953928718009878079078127669870919626751035719490847503794051677377801492070083602402077917646827172693867231292615866749181423242884488949465589995961508614435789358326095023923368147131285817677381450859631848751017007191620023875918165205530982666506457534213274682463044067584606958133905803534295669146077577147115594485278628454536068180255941169694357985929566919214773274357248369657762261293935570753868730887853756166353187217654138520606124934702765544594993056839233158889291474908466387299983473922001755765776491441469322091469031889497747668436059480926547084713471391719162009831122029374609014061805511614912544831783234681168367776653191514760225126235293364424151378364274653578712491419543451960899290343168339348227320948768607588595606922241250708250974643420564016500555902788672976118896149062184875330773176848662238364289094247324851816948052392311654793843483196735046076050225795336563976377486521185207351190506710704363099686313220446001146957976771609203743203168227578719629080253435705938096443151814778051440258913353592237040461733522438422040783520800974540767825660685212559556072681764500269272531480286168616902319000133008990265668677702984292614341926238261599240603827126544519446764949303310501971635576802447469022367924099183659335522867477765410602934466663251102368747585165716168343161656676721597146708494641139376545010220501317546112023576593550831182571363817205616420737764992391244704188700403802521177402690564350572382998123174300481728380055897044825063785820953736606747790014455702668666042110025709362696818839602242058186772336945142017232407459954127950759631802511195570061207407814416593070365226717035680524252787686877515343178848142550982291152002034993772676957186498584632576191098115322126322011067104208145030809864442623866907890657372223436785896508055328339945599809499041431366301403455428871080959016087380391522250779980516428058987331095256039221885441458004616232630423232438741458739290099147367003143041560442981088762826170612512730209083707776914968328428436927554021878972976082092362754384722720211123419206109474452318576604636157142020084333834197120140418337332412547015305062571173959511764247592287129311508326052224957249445973223554209697465217201707015775819183970875268821199937902477807684575159774843898166545132871207329094949698066159384186680785464976639526364059358956196353614156481608894411691349405405472959636699613913673131071964112585359161379797049911836934884562588360380130201327809575579988562838539830206495577609546711422084047581303180035997840179409700535350935678214505165223082727922467396272443349471303595982057525220282455450268567982365102524105269887544853427976615451675409926904907662453813815846562160473337411385606207105081267502840156835511385818432715828493531437099544469683493517012593363537955272620387983301742155159577509132797744269009408714023998841657526981944054794768669654150396523765711053535830443641223719825137887053992953562250356633707165978269820672252188088056562062975261430045525098588712620065248834979601079927205372825880209368686259585612041667352746835060779759238460947356508261312516810543448024254028076437545898616166552659956005575165890806591223743032882466842481391645200138797919653639699582320738718075414981551705875030497020530052965225372871019017634991019442750658055886960377850713258607394495231829608788987112436049185317533297016672111281580788412246649957533866184288099991674712899079190999903151432599624127411352966176737842717583448610112374932323649467138599026418098661114869790337991962794498860758516289077301243164129658622150509431263921980165319264631338591211315409834579046530516398497860179902565501541508528982867666127659566590589162847508989658714474904053469884804026780110272258174651439096706406563484299796739585890367653459474270060897165546296881579495963788515764769951588247900525241667241904356222769042995754155873952319709868607504789577514731749652268547522815572820618549994541461676266509918013550945784129982737681554337297272150521086201818434432479634760211610776807336904739824097735329940745656426514774552817181006976266335819866344939917903404332489690783156358635507808271060330096619466701260868972117887072002554034843183798349820097386541889737533976493970802555866891176945511424501743781794085266503021067650497805374942535921050453733395227968678499466528013639359451722354610263704278915867008790442050194381399461865248947690465802644359641447348767857783263163944927720014042018132220768377333702356798198280867840095486430118834735106862411695689800172192125400120275451214891797336528116613712381755088163650981574011585208702319536136926521624015028276723064178267876693817369270568164752168464071106007169929824770610727689809375110625989594366709339567442995791464433284842038301726967479808657651290991196286079975132598919229303575128209871452653146172410711131527394210892043066719661810829301265435471990407257030976813285290030657678411556806927106486240074361629919993594582551318454329829688658455849569768753194392522872941717007634279367431624356252673767540003732305178086854013242618821419072439452765797255792895339254048563913288952914017156521769030410664148293925535209120750686464451045627651026475607503419752398949795952686114234290180521612202345349270052842445050945606074288689961233677721884220742632384395614403209784557448952014737092090222114788943717789655164306884246321605407208180917597341482324752661271052266511505681234081948228152456345301854833091747745790343117500881989283621736997036014470375467415061451660319019471607533528385187188352480922670769040162058111441081925394338407430325696465070041385658329545542705039546387618520888085408041707883385535825434612601383535183469462353104804693670178047177253754394529951553011205265813521444795257801653310116051759871817145104113997596009248572016078228185988677095311367490229783071070177581430971126618228348972409060420448569292711947967038308914090993716789523920126334385578484909337115242303356993091747210038772137560116451029478207522111117207734967648093266898581294514836384151013622356586967798179378702750160435974888667802979975860841017559833082866314281391834279110059741570576079124697773598479164548956172556168959381321771544934035905137933255580077070746418396895394636941673139398045503861473359117416401241756341249620823629572357071101548394170314445266470320515889774529685951831622619646860868782033766802123368103610347983217984459194686402844661191311532372107745735885901009918863385838766191055725801619045314542487002213915395488259467518071597791119441596513676998089178330418240574064052554618299925422512043837267698989150190821726198925806007766838228338356505266392817614018856383370843263031575810811461440266319515154294055479725496213199664069927598982029471568939644038976722666318942650757740565202829902834658911748103986701866474729195181948978660624000821153272432886955398440613129330577186235306376369105119560336631140396781701979419919555222719064598441096217026182313915940088386824147426839532853463434538352856522592575372800489481990589462825464271503383545066430626832762721387101133357078346652848147908393257702255420940246416846894310940030389903658006354431117905014148641472866130819220355028066723695233141790614775906935366854508014183345081805664605164940359721589666129775703266888436283900331686420409505385040898151025813184171274042609967330393302008107792954453635831460041916353250510513251063724317152310540562870628903569614994224161394143976473778251902595585463488187994985429519642857405822930982007638148890078331613304221726670669104893634088847545684008609068516683674926456608151751995437332391041215201203124954493336751892159715787480976368426974492914652410221282232957513341526262790673511320816745652800325928296604431968190686200120567692815221576391127637830776578383742299279197548837009508986919146921209700788151036718719553353371566989776269249261077334690054110184224808072815480019131776589927061708331800080990503605835896294092329970798455817938217171392202863807233969581696333997026769762094914795575849724288586371704763602452470814967154976505799915843302260494387721113756398404710246136891505759190525206236440801739699075322125241236333677769191003502537884466971583776250515191377688989741029566240215677189635030188399526020709394874519198388565168281511323881664818398481442718791305159291325387757895578906929491627306583147309232188113769728963075378688234397102536209300193759750727224907066436041007743971731991886126816428951549940692744725978537739504217445168255304028146880632736973402397004102416454276864990626013065238587884660093592391703879918625812217760562632917358451024742457605736815554745179735424676047609322463512168540877344610774484647306283818632428791166896473875447691613332103478857119628543469974372248000101041002976434404747547631399518403845194551740399751997401660459510149232967192877405368212054694306016458352400961472961015264343235906231031798424037692925693049261668261333785090841043450578952538576446378020268863062543729541790651126975286640070331398419043895604145361955119229682538155114066650675829509439907160792725603778196837944602861137041035454955758248128214669092452899263437123348537398066801381675683563088171828670518463731526104344185710294343099749767731870928745998949807184539096699123317958823515223734836495331366473231687745197482964382747948065563936199735633441199272561807877679467673903228074056180140451292705152767621701316758637573038785835790019542150403786508679848242632743605048270526082922374679825501626046921802966768752292535516978757551986821136828186093286266894253520158890043089122296448151174061899784225408104015529019193951095798621915680357706857036835824920738167304266607595273106684288017150705317920742045087297892584347106494504730086694548419534187117276775883995115232310761575273188184896359025921987391325155982707875403811365120139687065732217004047718813940503449126383170495304682659251313402042520483181684354466095483959582483261847919172743892901529197926325440884400575544447912453959899501760844440039404058159116685864453339325536761584081198746980195770043085321755777685440641421657823056077026785661162522259492389321800287586002918609951308211859620007882945178270002955278723851453906156844855608599214659219189406871633263314236914315480490193503835448378535016499620297972248941817584012489250803095854371285425773480816779263339792541493193917129762234112995294560836967040832687917961226495777329698499834893676545171375061811608376118249922224735438261117913441774654028135828482933021669554477794790867854924050302490370635003540482556821015014054889087035288170026697795172975845354832691199725969375354129377458209490310343157074314496303935184428853395915871907561904638320496942181876955619610821448856486322535429554658971353465209466152796073835938262314973436587911338437139567925255758307179954512391674767548065315169833584435080286957539399138422520462688729654084060950939065555506160898144014423279722594396828767363308964424708112333237253861594278121506106320496063631269129645574014734479837215436238115085115400530036179181828887691796547648973362075553037152851046392813544213026646694458334729381914331272072126754008232121210091387615211378484022915884719522916935679481137238752831353960529824944576387275057719621370561230041385011752390767988489097570430128522637763706166411648929503261892989999852773960956145698234919681660136275962289091215807288700200684006708581404701312242755537744715990544793776391308158894065899407727549054582759350981488739103019162047085008923602682023700722327150505046357078783127850596009297463961982808624564117117960331207931116493339769961164751042192151274185018856560244093472144499751854073187943321553670746806987381225052543136214159690261919552097707270558858196276651380503987983682392570605764661557263046822360425456486300225923964562335777578266092275392506835708135073931795780621335975855370029416981475723807282756736148874604183954790303178628026722949289261954499594410209630842302199906642709383118733393067554993922267435603752767424515978834147897706106647363090248935208040326433318913823597561855726475612540381062522249118632415422184759482342774364484824988251740746238068047649757633898054269117762409367578695971337772445826839003639684678388800338080415936373448323944495542435391652314071369377035280437455710820592873228914962387213065408854741251186258362052184740538732551183679940072789590887292805657270927758040372541819173662156329291204830089205626073650649123754654370598586660848241647095311253846662773096011137717825310060571918988312608832926860767363604168757043623252089970318441929147293656162105720299895693862674023704872559833594479632800018132487090554059400382604082465813914210832303856871841741352738622648478047368278459372836963096760118419945023952030418602015877028799743119582917656125546163477367815942669204904038948649465363625761464717771257824004304611966786026603282446274664848354481780952363379778937473715951417594928565844669467124620240970582284505624858431289372710578472387034229563732932009701578067369596886458716582170858140637437940095988384907337578317712306575921210563661686231197718810900336468204134073535699546428736443190635374210986691158220924096775400670409699746172665179837178876050149408326314961827230604905914608256294672109564342197629676590555599847547665108197718009830644876700239037320867558467886949115770106907499150857153134284333486345159498885027579230554382113500426695282094164362350559926922667335144878857003908075211785522398679864486556330247230696602053823700111781843722558136181322824698687290301534221396724150788219285505845104359225839285079348126405550616924056361691502157285861245770578492120538836652159468865711537211067605844216171659994529432653352917135077278189281125559267126865704250620258498414864831732264345100652830736031401598451244399709182015068802872293459370970310422564100885143032672289145448019479984506192958661039216748119907278155093547085099378537368024224908627653797385583194029395830514563409397503423022005377578559078509299861008036548995241049185925430125500533273156406048348267970224081416417350513583870308559597122864685053548466062887690379427982816829441327042241718661745119165943331396729829206989617355674711679293234084531000918205409701673544550911540248918176495776877234599266605062287069787888961085951396541190686002091654692203844233797535651740905217307736770814963095430454044795460683675065224010979980023018001401866738786959729079600253977420376883414713378712610421804957262856581682704395223961753523992340096264682571686609085263952853765359947072854869250549567100670918783426443454577626108223943773414076477801418407715977537242807624492147662136660748883356305969185856706704134840810022986664632949940610021462236917421745147937723385948048429545375747883860982474261564889393825809693998468549248082829382842588434458707888160488915495322298660412391019836591374799292249465418066785727942643062374494898650749552301737039334767055355257691682116813917316341277377239110285678594748943026375930389330299770416702561962686912416933265796563030685718793896741328766426596633795488427956382434096353755307653428098934332325403251713441996615788244038256599329093994140465018536894485856957425404957168279522335929998603396837142256914942224477319461612747696843689326397592242397439699278480625549652122603115448735209776979188836883273544411430672797620125536300782709918733560270625409381828080593129983885039786176115213620634971355783328787170046796772782400643219298149433068091339574819174267209408667662039982938111856813004624185098966401973139377275543753909785878893842582103015468954534125786095502375194931908960134767884222764075514396768810447990449934059836573420519694056446060723792257124572487413386625187981350395363818877783969938998323006605931834729005916059987886536497393398954616760663946395842963058564381467234566760536375592606059911536449330427643608387080811378454945034715273858675539756959894473478716036208728354466648596957100892814712013272529657481670832959552188746291723631732930907226094799434248879084744592896384391822359341354226128248696846635243982537135241460614217232887552785061023302768966112005295706148318930193189614881888855756950156061438682323781040420271472208951058175175588517518451381623172458935871141616040031551418012624106149223175260961891841118347597108031211803477053350013881916571738119530525585120213808770939205642764320715295858608480165776573553836826897612443137917597396208666316072321943261163558053304659479285154889796709063524169233976226013842528416662022610983289198540060458216741508744627183631797931281273462618187628355381648268839216363966314067368656454780335277513989562743172362781049611823553140492500950076320958666500951836982543314017761582082257840399314645958404534174885469564260469542767114544720630947620344518199121014878408565977519847425945504069927031912218834979721343311022244209114332297086345253297308122640680855510977511837862524409515391644060087393297939102665682919427600123280945043014964932968805973189834327066888820466679299996887263966200365467011279774085451504922093253572580410430748388569003654095685684193538812444710508468092969782667151144063735524581917877048360429016553371912946193829318909221790866425647993192825234658041963637257320764168495305205323962452632743472952674202224765166134032246708441698826651698935186720591340890181093065688661430381914065114272577686936246917989787856822983162703698997241886804285430461942466825177795811646098838754332260014898540275687953635396661182280904031674293256011009017004020339302000271638887899838204673860181003030250121983909427467132467404615301843266929225210288655959226752100619261726080875281060501403622827023217467686625804595689988295835939146239057679183559877370389639777807066437345432652741691743249210754450344099086593971246734261153845342634384540652895660205774184169884705813522304621722579648306680357411911974326010291327991669235333283912400134103524915853204041268774347985009532623126355668199144750861579956076719180143324635424304892056425206482739390947801698020277318974891166375376400855386537578899955415405700831036691580581435995724738443573710539957524096295307526358388979072442968401427325539987297527891527907304809548194082584265988080345132525163576826870335926440152491134259701882054879985385165017812823413421775498894624766998384414796373055366705601761443108374319623545996725541596883841087828327210529885590306718085922883003087172561497465073699813990964804728113615089214997222294679735740199941585198547904706730455314788848950835718502922840173263494732311928743258376155260233405996960107817639723372929434283295683591185281259678803422471065167612569215352556111969345659546670949054593431326705281651439217016696288721359931438696261202466703319501433235762588381803432786744242740374334413414131780796896781775038041256385804650459214773422084555262624852746909412755349358052660647058252848373679273670593201733694590139344056574456851129131405298942014121415018478832236284544537835892010606666130579582132265457851647211153993061691852943263119569180890912913289997537943637522598827149912717279465858361452854278606923223894066304202503055122889529033232764467269085886375763407730085728075789566801025848054032968208941995290748640719991979475349245572280830508074450304908236430237785981056896808663994334437725106311524241752784920103718588537838452580814130539853881096881293395567280664165179090955699725548883498664758269319413740646204883948973648688572567413712655684397294309498854050000436776355976039024729675510396020301285302395915272831541786329646203794514267427724686074494703110318034989818206335061541462561143999565476316580543401600738942114251071343095222314674374358303006221207306044650460729735689860345139587484099032472537101511947206966227060437218016912633767642184573612998697369194779781753800700468271818286743336617018311295405552187169030432669724866109378688365379251196061045260123897063434199059608624446060641027449780197627914402193225054792470551089861061692673260479749615605693118093753114469783169716991785329378217225935896700634774833436257067343706367744771590769142262512347504734411861253125352657639856365222553482656983748705508333129126004963500988510658208963098513438755688575058762459476429466782347969284977994967275940035866763381220172659954156771740025284318814209448206601949080753823856715381426181219523303938182456106148342223407955572901472136947519445308101607444863384001248381213089380640064765307946192733564755856505353617291253458167399293110190787635106364442228686106237696370674362148648625607851630012812979091044054654805512189496491597449684499546159144719170472196938545942732842228803898478302452766719472411904221378497821396129218284628009880096509176010982426929550792405125510452403252507783220637780936124433139334971031077050556316452727141686245738108020357193975855724761638399181724310373852313052796393552142152809463913752049473659972911976028004234542415063603359782975184223864304423586875587446959673699527776633422810261771139849843398690090992922990969434391086737702997100250492627597705198377404616760281437834560102904446608377647214262467914649666366736777583838123584599998993666412442951091976832867362226769078517724998175369900160238643690977932152005691013739647618075233435029351662442763184128823646777409456245661548070721579725834141142251507813461786336422067630153021567512070231938116007425931497278347482171061347229897041226277321309619084304350529431312339849398627462197103478534059403489614673353686766887640579755514870625341553492156587705690546113053259668058045045007237232119909129468233326983857670036012690727204283796814276859012186464426837077383614887460554754381295144860844737998910406670348975594090705806232566069095437238815677863458559382986159717172959599468234591558920641021595473012473984515251880614467011637466233610619741310478399254958347536688921280631858515597295867302344845180743080698873603412232319137480686771173923540545181783398070787667688609887505639350383263376535492647877809624692249092338514044924481971424033057259459743925373659865878463898915432771539182904014932326374973980024040077589426485989936537440249919024296002228838825268502217254672788086483349251761108684971177807075769457347457721630235966406558061125959698506993883131392562901337772674199350873665831585366813312533717087780104555050462265754276209456803575789541978897871277975728017371988034491790206931962508070238011703157484400074620501204806152758941296777983846534811108940428561296013023804286539781294902119762173342599324738351961341591958762271869591174969667423201613732200309174269392434496862631054265419806259757411486822402132395681241615882879854362047550511854778423897247685499265147630303392884050778644583041233498104715249514124847748909949597533539168488469233224252181677092465845703038664693190383314534872976734173573419876704354438739069060085536735691103444424165615501124526078106693805999861425692105712915496536169046438353996567239444631626699246883249016048156612303496314943318925293087217019111111606744714788170223264386693098722207906796018406917982654520783088291322571715101889847020793461594708746892651197380591331473001876357785965993086668197833819603742398158994231682618524965838055727095093892695967458990656791366845430767270144484772592789441123763931624225557723509760065193526998779722763760226376956383664977482008220878941794474003763251652040107073344076568943962691642433753416074187332634208829562011391591847067034937109859426170023475559333779495783654983200576386653320724927930146129853355473374678407561131581062234742276382715295008857543984562744069572772716241652360441682847133080587495977487829083586881616522672735412766417543684064496475508105708988572253770902939224669727824586540205153754773231608697343810251493102551261205228721944349974501681034873697981601008969818676469263215411205714667789089582746346808019498877445878237518702181369738432779801103789515947760517615480057636839490882088945268195941103849432922560333452625414645442828475040907187719800783265130175409943505935334165639461857489657744595093554283462886158570982781836663639168939294997483066550095444704170531072344289368232876244697172926371176726746520873401742175484360829170319887796493339878958159748675181558518394620456775524804275043820932646762631433215677390427723242977853997862664370890549472217452812450719476768040836622986847242725830094213591555267476779799625164540373698496805555197756253565679369223571006763518371830149126647018140467173194610895190766715595032742957060716744868615679058538456921398335112889747035341421538931706548695891512975374532164793650128354504051371404041610642108448281299798285126965729359704202909134981776295334473676129339795262785783088963465497387147707125542061762956171125515002610565891423294404234731130336282873485059072125061819537319730776228013380026061468965720734771813721673922833228696843951256045068723100366316501169269765575904778468526686323303643897366313232256440238194255308845125026572372398348229583269911496980133324221330397703179036985282639705506498796648090928097119585526013814493824451898739731851627561153175792462415745898746283367272138909089544380676192125238455444508507088568685705124363441866906555217008596916052863242885469684924886258541449034913664772382087333384663845927735314090572365271199052436677524919014056093474966116118173357402447590406023727148388355236940241223406096533080402160829193317618792349890426724797421991928394327576752731605385333854886392130132991021308050897082537884764653425154537141673676066871439720913721267101340862466038076322997077920838425473417178918763637787258232773208126813207033567003008213463535348178836168724732561836062543744339341749599713706438221407141490995808579305156278419372259052137506465765885715705725314129777115618879999818514820530696622650204821339132960675352635841947091385640537905288994907954798344714943948760998359361850503955633823699688289308817039006995568471009277749344922616253559427174961657130714728467643603217570074719725650161457217074850311350396157190811697352012092522646158719028572354712320664337190674566071279682788497779346556895207003070989088495960599807998122341055681324576519450277589717233146088101412795010308066390393051394998756337082744064260202159409436091271495147300494828733126148644820348234545553328675652543968421725259920830645590433767165735521184836471991301964903393739517578316980685986830057170713972008244100988653257984686305070678193723431539669953242248637029027309650621193504568928329848947042031230501934565887383515543159765561887694507582299717622394105347588405974234647328337171680573343020199500483803768957537430013906847549450430539436499965362105127695590503303034237145422891554498235885150577050500395929655658570178856470613449721477295935560599131381880345499092377207316335215359526542837335888102715852645048296758968647348713801222463516955460097683205437304819970936885486635660931075239344090913881814134312962016170006008387645165892722842709026276541166625190894058753764472178926056868046931084210512397950739571962542688776833028582115090212186661714994933107423338447571744483343616267256543848557212058556589794659856699275147590629184001968328725286334624977373680232450059800022373076930056266842397182950826752374864911081593788635236446695011649761351976961459016897509157075822529902843873605152565853339453599236744140256287254023992271025791307732560392964810383008695506999973748102607437653236121155913592572079497117443526218607103134752268985822662322503569506020487990289297039855566011879241301959467530038699069224899593863947311273312041956200328784187841767290704355497532424932076696164656226398780619662054513565007438606107492159283051056621005166125754512017595778793691690663922268378453706541505624127886434076825605509240312219992539803322079221585814911629841302264271033266649731004660201285808491196823289111959483634563681729646593984460464433071002149214792340358862516469343796563205535077861317625453813130675579346844687746430105839592568470254298775484241440715354311886839126838252888896416996469699344205210282398322536530496425631584629062924692915300658214715721064679797528912825961130238007074517832433182208393511122693360227342641796836650200461530872497507881282400362475699318623994767566134899616917540291998845425525569996105194561906958797402128444076708062605724033394409799551391439622781134270426336951498518305342875304699067023500474255299303288926024891437524822817358836317327295681821468272159057592814550648353833941511494454494229942607788240315977131036106584495345599453841883081982257870274978407873513799317909671343798613205935760560018799608488690535051762007131134624836968606924257965173888844114079026645258216328263127029022237808381020078799319211058311232325336351014840560085460439874487633425021078870068930749159265340498708181261736465287708401183234252746529316195894749084138582693960217871453574059969842492493646442494373844316429806132534469308872726998716458139521145869719242497919478754442939363469979506395162912567496244229016301440012101365259965433939070563351532063388554147238303413164325457867260228278114045427648472161342362851553246769288531084647834870089704948502247791154252636798231729094423107611950205927077364358728203508800526899318324315252229539570861869196991989310716114433111605257792275612071861772480391901454918447508867063069191394645464239891461570305522165048464045948714875117368185281045569349542086675671513045570503987946288891191022553806611488812419391010356507747444771881569961752895514444349251122185044073928974915249066220390974134122208795180864504446492658832287836030367841339093865159466499824766236169300039638409076844989057079063654471337233835146278847107178553833228463591896464319893223985439989876363878662043048246084064697094229788828459177863626492444962433735124898999620093023152057960117789945232888209643571346116337946445077269732750968757434653043394905098969336546440844606058063750130878564122438282197574518922045933589189643235216565011898278717590723257496254368093706536267561342027543152031762736218479211166703699597570357957730845990603004802104016404936845794615367398035548456523404344811510330881173529818947502644343560269478298830599763687741689009771788756838278944174177711081642404074227224205080489769424163899146346355389638583402965230187470426891949659157049480652948938760154703351530908854733319937854245212902623629308813756444034324635758070779610688108865395813956758489809820785369490377773854349112610694364950289604190890666234233123672927591524343339632327494586174536359387345238907449931030788321658838201509269043772446727281877371532908231110184322080819674660449762441148144143810454387324403683740897344550138283557280038216340083796107508043855744545494168486059765129548784038683509148417993156904902870842817389635959756339511205777753017076151423059717669219229519432398538042893510394139842954259227205392108230273733352914038515397484143627004733251218766138099814111398253900887569771309565007462652257615627492988745504407657994467107495152626309513216716086874849247911540975264639967819886619398577007498674460656055717757104394505569896133371824177537646940424462386416173586641160477771582481049082884611238535541108866784868895462326686600060468806460814710233290234841214835002070653877573989882942196476788764402786368959843115430675227197215722320345415815183559520782714563932200930898201061560911628374313015687712564273314241407255969884406252217229777480228257245835704811261905614427235182611316090963255731584944991094046265128211764949666215221729213585048022363938074063095300651674173594915351376926543385349171052572744990852434346384210284304053061500901215616490357921554947483690052950137412647547744489827944110491267403960734517202476841044679394734518163911660391067662238819626203068341241901957310042991265644710787473444992331422835724492818899214908939137330244739116035394532254889560484261693764563939100315013905489511602721247114105608660699060681581020994350819825870959873932324017906885634420053639466441086359944190288141615228555551439839602924458647080774049176903485356822699170573617905241330469682791500390368230304134101987396154597023070838870018671583595153656165478841420589971742998861596305612458390966281561961162713481025755857651626816596557904870164114125054438654791992537553976589040284290309405090875646420326954072172642259823526019842401444166281279296253561665209006734370763106457564416203071200790047438406116102387034559641240539266412974421731747940058706750160261583169398550711506207938575397299549423131606459503584147546607856523643395349314871817349073443223199846941245774711474092798208346367803993793736550402062461858889280274995001665954141266624816861160140426446700642114202693054477278543025842734167328806906677403201138562721099766410815700079433098770853562842265295815223979332590499305909098035940388807791069614209243397649464446295676497572006018595382519518004025658260012581416134612742326670128453437936584129542727909131551976102258636093266496906176949029804274884060057171174325688213890866406462876016931089440421896631738315457315608621383286314940525630206184091412630317146520946109047748597384702319867544438782070597916230483669364532155601377440297895735111295022443359689449641525048375675284020371320345535879502381516827187049702756064084263142199187401943312166201363473902281110632730009331180444399218237299174888255893394458452762743904150220290064527544732554850020228550526039370809674267760062694869300281698967703529833932899127427734607134029346158255333237009532943695858919832189006341589134155178290016405428651301087115885790329898606160900521121192266673203615793924343166992531260524429327665100729039469955705227417478943308250929444411149420739678198069255646165267803711009778616077354850620108636806609309508788442420103146826762892589951295708956956880922998793787448895032482027469834909884942662852982681172336019360350728626708701591267745504514459318860927042192244823786061094152778307552742591415221904169595970161255190367567835586258755841518555089989311978400100391702286357150754913491814031550495839005117447377608392879720013996182129933016805691043652376244516567318259620446060437753543785475921755820784222546933916712383587853399999487190591890914473363091882065442641968878125619176579002444213272157331727674832132158643921182124657020730641762881894564576420319399667760165162676927114017710045228596567538020617565061996982019580661170103818470089786215383058009634271729578664493578000431424171163104240790265549936975334709643278923667270159310659112639302731648172896199537281274577197006145065091670606816774603556278970973440096922175104660911241491361540702251745570561153852776994496150388569741831616835095683521232701537697150073352173665399370697790794032211859796394359890638715403025320106319443943317606084610480677862204387806392600365449488369329714135541234043881886845256867479687600642418379935900652809360567934644720192423916679229784295986191810576999235740383510797359184545238576645431901593340151817728899803422597146286508214437566577089111088628380437603414989722203585748379213228000304403104192189490315229366448697037698792896898322792830714475132733041578237523554177922171195964958189154861567957425597854702442866371395305712577541060469018296486712090611341541080524316177460806940149804200632281160208977517886204838268270257308906751091628900413969443910564485608794750302557400188273911795777099499902041048511911736325443140036096029730201853041390254656189079884017888411175460782064781334017056914173683086638993286314867135389949121689438589404396724377194594288570624781248899702599092264999114921820095901024467933389097996346113162976079377425795531406680396977008500010016091673880446989381651932872949569433341197242961604133296593513813579058862003587619067879160659026386927167332018480261924893100320271995110179412967347647251327095974626799864303394225182531613097224743543876684254213146783001688161635272765427277612432352755857425451926844155143182970509219596559086444648574849997676026982055158225944599958254821296307994120113747910256844061266891074723235264116542529357039567763541069924478409838612340408495574845785067724771087025943212063558855159012333229778698884725428084305238477839739510275609959642320658571982205779832892326843899826498880157485230974054252002223788874232271391419348606432969103285879910762355669600804858863154491226641898725738475612527855307755117944087189973595686316841421725894717713980175475647361568281323341516590806027843114736243145410038327620884260230037610267532467573398484351250664485618054146416012576869507761114356262289516133504769848365547757680055331705863631289435721849544321812470627514679555296143604692198553977744764444820673799925307348998086164194125591032247873359129453010475015917716495770051986931120432274045335728708370652145717034622475426421740472708412639233461800095897539031010339246894831532937082606327538800511537666167375618892100523776760495838871336523135815609828883764010052943984296737803440386920240693365585527279647344463153137162001798216273620721079200008868979880008248645414636568616594226580441099506569486435341944262657795211733343063650893319789456466357823786472378313392400342428380674738389317158719014622701635346567376542362103520458196237159728575604988618686067304451162758231292802910440939515795423950042579798506485700258993403854496513226500381932334982451632763195219627225904979554455542789238825173431567960465223372592541294868230055545744234993260224926870902534821665132340635781202663367389146864400791072635385564553382150085283529687886051882191806171565993653868075834876999297902184775912738125969504948953666947484014943056089197880183322570839645551790005623608506812614238938885841092104525312965397253470980070630415274981287258156813642966379776514606400760392556736670330428978705698964225085956192234110637229495105147332284786741207204309656025876761326698120242169922611109763310553608247806144650445102280182016640055991188390144679552174965296689884967868000182275810874355376385665451323953797738656478498809195998657773838673537103976667813904736694776111026819714845515304787279560621057485674221423946709068074227160583664738025541878602072265673900428932998790080876055410559913513330306972681229446567563150790694583372254659840637159696003610535785562849640048124917239161195198662350374928296963156078608542951999934312349969542194142823658960517505054436482926239745107685053968675563757309258223548426063369104845106914988834829940622085476366386029078621942265170952297322379159549127921404498769366708442366811704141975469827671744058398659689820055097990123313689605702905540770121332842089342685972065346793114753681149876377775212417900522903498973535673441211122928522139606044510016984165936163323974387808878510695057269931875720401767463221793991993410476937437778691939434879505927518381418516682435157189760855095250628149535161810035128282430473789411628693631424056587003664298882389336645227364522463884979985101616061708700919879415308721379284578521437139833171033945585305825507026748830842058152297574243708600921902101426950130172569326315025700677795513646861034743117664422520966881897566329317015055052416082689435064586264800700760968416125055684965468095914742686775504619848023736937967026826248286390392251432545898814796438792785854169247675737427978247058082917870694241710222255350332651498349708021865679217465330040605889456164300621021010242380510089894877194210572982404851561959514226605166851775267501083006876994930127631608239902378730789370501565246766413369261819082396713618095617367984691929318552189170688012389295544348576135217132965156142233423601795706338968196901864458655318618140514514184232269028871208143564775025316718404336793224765287559464113188511808237565664351926809924182847092263253879831285813569836141996261492655932473015103137249228617407204354937995711132268304303976215575096926498181431003379745615809107574511332938514053244283811881842025781334609358654318766399739513594700829621218387044504735322516421856385838091150486680980293605009738814735170737626676510147827814309350885012336282502090959190085596609449550585148037612937918993444451317678003734398735835551597604092512708301159322136058053013613525012824965533962531715136035416522658306326341782988937471458964802154451817750949082466917049226648274650124356060724088122376938306069331387492717835440770155989534183893547822070404069946670320803535707370407253835862007804653374644016632400493901519935610012610541721765085171954644777230561344063673974001263083643742414223772253950945129113213220614118441668671609613847911922129864658936640577569928726742100901297576106983713715136521726219310108918754351969545953985433615034540495013714668318460371769520679621045884432745350243290206099069692071396413179786685968683793919558961294956100258157654992354508296205080659358665127413773715137718065514263216463204503955131840646746305953823237541795449615129477658620464265283343722392555257001210401355400251572484808733225625346601784873621607962071388792266080443821094958158879552754903281110184210505554285555477378906375035400286332337917066236407292091560788570715376583626269370744348777350548478192401797813101464528748059323954376562797428540113490617978426327246937640884206800797857935570012592764926587904187450342930283837656210407292070348192724657666702210906668792289345757769218102037642838360931354730253757496218144057662476823458578384761284254235270085028760742987118232559665419842594558418349064594770692223331033474947984378067395697458177824631101605451458996685770049640510621867404794795376396388667626991957319277543747686998164307293012612397797995210696646273631032048386426224718109403411746188580840775248892934666686863395933309362899866180493046650166992705086222556868765140681377180796485044678428703908883609837031965083171815799876124638047174802032157626075230115465944549767150788747149079256621223808193645559646113329240609173443009408716257363895030741479561463625011971953538118513039877431826665876181666334800431959989022480395729376370822056742688917928580900179681325351631195174021141060192851369248592390095702435166831159358633351054905684216264277915361094116513598348134661686074296256072004292411985337124964044904897950234361665917265639799312833791640799206619900211727881117156997284044396411780586977248948169698104833502708136511068091856549746548218266882828416397420619083919321265425196115802360056644995997448532768945801359848121656062381019537362388279673695477588099776616620082554899369397179844280677138261552808346625762111837620675160492257716113758639489235481989226296978701982691165168892461246900007441680046680576999718769747532613541657853464881289743774223789217692671110903268294956597400433980540103386452227726889617602794599416150126070960664739614243139673760582638682429880154494573687175481363269117650762600573401569602993272867609477751141669915251938614453413516604543459131202855356966112702952619274365191077681908565821852990725775042520695379829307300952405644501939759668149997032002312293920164438466853705833077412247473942311480332410008107377240886425320753198359982080666389234201566406083554150760670227855082804234845026205220349608214605048812837663807194816949328950706262199582738322815768349730353889091986196938152395623833735557031368129996004673417905987202388975527093157244245350859823496999801746121328523072426875936579864519606296363299424490146037571891477748744846073972391015285872846419932805973186138560501028810549590581921949531774631978429054574985624109240716606255222668614520514335926622615915588278044734125504074940189990808433200467843645858199565909222896216117395942298428065004337708619100060897042118876867329302372501479585831576794757743278149916889556298558301991453986390397387061224379986424207715135543804509412750990581274244184639521667564305358642149351557538674872187702898233720715895705915857351461843407418861714348664378666023898892052227139192033088881954864006168256039751294820536669715707026519561557336322866719034616528430200105963034819100500556573538143345152159782383997597270208423069712308364355110507460353122873689037824311617296001373929662400545118221319928537524790721211086131783074370683586727653524863314152880339342432716851469926939226397495282890165320867882274024237085529639348288858025710704362439470233201183550698265329038416244585072972248966495839872195525151685725467518761186737265293843597633385353734828188102165220052220135344558229511439666893223114601735739660006963382589386412020862033709341704827887342242649765605420539883219888433764678641495645191026936498249812858983333770612972333789390399420894134652299898991202298498491272674805344813619623332352914820488923355553617105319893373258175090367297325774746868671979218005436481310471579490086550626204745046720577358516259088564694121186338768832916607993487631751202503098117706390591248810210398561005498240105277758081870189969316386919528863675612661469209283322873179633153829304713788597393958064874416967197124919110561954919265164336894637192424837694625360138669499886001590371009353507731154151439905376057301107923119358568051177677327999432622141904068845112810420106779695392034471475971962829757403909129789707167746202332474487714899083246582213909449566635834760900147211964141951547470815531511523196230382010590278347096629250479196625967714497451668061727010681273935636315678247087112593485461174502131732706299578059008316835937389023952027989341887753278275350350400589840383496915513466479418629488786574482677275823995425464013735731476136688784401127045745309988011931742690020645586428705515820831827902941037626787281291519850524025085931815265757007168591272292325766836462019901445214640966084563661342016027579997920004768393451546200933528551515581034743459514308211867499149912665749317161044587343148306740570118284426282009825947928139129972997124685029989953092476131588503352182383250060543653774986127579954590732523250419154697923761817861355993795645338331461019802898128985264926761249885628405120092390606655572077845208226655896400187783445388785269272046096784375850512283210402244382571075577187381149579405130004065171607501640016739068705719783605253902414332535243115636389370674790101470765428646490169566298462802913487332430365814141989312368223201619527659056493382389503684435085686574490863902448292302542071871207971899283278077600229507998397602738566907422106869449562622972752007216638922123060714633160431102020812606723913970132423969026588628761547708911051155257871082278334314799991692184221901393172229236716281558189349301116418435392088680235891986883709874886222376387738134838326844204979434169098966008113062387030708787231541824524938941988489334389017098905003858293489456076242360783356783164123188598000048037930003589577173264928016748149778211339557105391494686791937876988305150636739650253263535477936772131829500377834201655258900358994696864921255933801003717590868892144535456150354582907428127847286619503912030153645204491028126094199669995446629049123483652739822571066020965568282418355961636101849776923859945907456435583766195270045693766009198666347157812960384068067452562867643959673000969503072163835763635964002013668878534423340250922579945461265260123028099294194290284578466227722422592119804058747897408824790086607231636535606318697339292428950614165552713950734595170718526992459061642449232437409610489303457333599293054465665629674356117382833655038494646515244194910049822842019342879921028262996326761243997792608878836538743388719472948629105310112350849869814399387404656733889555313289772335747194275703177785605387050684712375948536278985411152154900807561389213073052780529740921839619948974977240620284793391793659393637824295427942749143574514246109086432110522620647969819244057885280583930471671228404006479833387116827851998825600535986088134703430379098026485731349441016320333744376896916643358347126764327118719315567651603887267902357173181704280004164541823896852697836503023346547594600859865308657403313944741533982599169605162217917259009693417685227141212656873859228486869816076431447155216744143454233933040977605953392712355743913640362132478068960753187339507769813560109530339040837311360902945290192381858996290536642536377562481694461739658027538343561443791962512723611482510080176726236013165107266637102138862929617203045150660727686319344459782486265431657177449026065654005075750941539604286930450081887634130772221513801757007070481123009678804162406773596260291120456143542888749665808057883835177831155487498010572329200980485892669415357696634448876338651483856993726221984814296819920053738436449314494666824743812695329519181301366309395926903421451643859212174677421624673212041031330131572349600741350984142114237725047178148443066246591249878608765381053263907243223505360404675718693579926318999411633404481374831964068667698294159762053752597163000740090538203270169048816145621463948154726033010075101901346514406768571538777347969006843243972809792744396109784276034998582520477935876567954783931288518608612762923003802758406123287515760065549331181644006363685413620553303218921859755087522619913293198569604860701112728424460157581528132330286703657099713685407246161046867311599678744822490337644170610769620534632184651758268860098459825973561989291829647334299920717963202376845988605185190461161608429032515706452903340380092080516518860217991018667252136929891440117007917153858666895180143745551601959224616856678148109810098861052526450771695193769676552125932683004321746229015671010197820565597152884417344490848528063196118196139118432908211545050167910267862441541857470972200314032041128894750820705877354013467222962427676948716553120478739012676843548020581713268501309031837773035047095520335925731411158503275525829264770387872671872010719367071790753134851477724574670392986367259672596497267711113732958300873305001602579522601997865275431000195164524149106284893537446000893812348377586059150396767899767248221469334720936007178530094259709926955264564410866345228734669828926670042528632155748791490281527225390879818101733273214880789550864241474028768539509408595599232998882836396398606484255238717883433545978680616562237073301696518363536477278813342216023760451933695505761247610140224439125036912610497087492062811018957865565519737603387430471861147593831071688729459457360392138652505142866997465913652490186255387587137504979043168765476691099805665953195096472345621976698639601052665975485891985635091406241700387102706626610420283067323706702632861109105823959344898044317263235329482276720881528976534335442554857182477382849184255014118876734252564594884336694735118774302286341315652139170355329474019989954206021137271694783779729461709355864176652010395997648424018861530245618096331425986463678797911807205862882367053664516346243269487016115063259272345660270105806839508668687910596021459767790687284225677102261996224733660220963497018246681576304802517033540119331556759603213387227438848878778303571439750941939113876236683668772472146989682121122266616178049981770872185749970543841806941311938717259748305943555653100604348432975550338347677389604692559000789179383348988228430148676083822419648233631143242749703901368165661552302123023188133773657777815292735988973996171674916290688181952942314343519758474523705346780932867608021725904246660704448544061737380609867311788748724205884884515348117675225936812960897508281869675690390183141650334583775382636362596687258691441440713581544682891765392287837703838558395763086100678858808548415986734789174785397480809768041697893699501794471206528057737672723961880354470048238673637330762557558617021857136280022583019667937359920619066889334743584310949342028722081856809343650246897267445595691447861688904943617507380761038605048340255353520817075451904793980808488965683357277221776080458053695298768273379870089677361007352397710659092515776271127739200522116635412782078589971685594740228777248146046819885305224864167060016170445797788303116790405540872838351288602367287432766664994551251086248108632043392450600214370340606967188409782078658440383887119471510443393775078233160468636852029205563047246560124860065853027754886254650273171401582787322262291010121089923803856452376985766579741698098340034695435774304310283597589607783984529627375664553601121030465022117812002518629210165864651470559715179175686889912530872872076285734470632118746421583049523180318029476382477257228906273510309645799913181079558588548306232011179371783529340902253499459337432477447219936038400350386804274316973757727554586722709428509877497688627210089146060761734201286144331443443270193628854879864398701543136128140964657707644252682434050141717640335371591592157147974024695158861763343103511336939728095919780781314267808063933756806632334156943167381728496466495083024033467858863913053240984224640135446968323848223692221348302410424691189335606788182160045479645189025829209376300916516640422635911502037121987706792811458040487027839057282967108931342238718383444263847808756065712009779710877776559075670069616926893932900622598758825719707813028505270452755082248575380281916603134797278779073171489114515755014894340627616024131084140257725592003658529485577982859081552812342746165378462192793000391243939619287060084524019009206069724843300569787956078854051705021910620778240094660041730634536295822037040957095583170043749976290561852757931582589847976910949523804136725793908896093537907979108919732782590532073758594413853087404924153461482274402315255001345401475870876290042650400363259333930657805890058525194914512030841034179431276986125130316405411745544407026703627957274644409909075925574636030373756559697950114761302088617481713711681427537573324828647274953768030125412404927763762173452406863349443166802244027963231029769559742928312193862029386260293466190163678625577131195211527164386701627209660357597618823010485960810228948608098233913347837886906474344053876050434680657844053398940487487425127100463332247992860306797164224092542105964063842404796863195005822917219733237782568150529459708786220420992481812517857941267004773041074710800136110408129606099606305880270528476909550758678714901388010406862589800478115244947411769886454504530074571950443163943384018259435583479889974441626590483399320048882959392399230679805944513319568016939136605530716936828243173720845795527511048387595664312615372096767683110007574164280279892879445937720042509142878689568917218673349283882785718193734396240933744617103171733566685018266585900462902505208670275874616394904512012119783645950465144453983691824421932891144020124939781706915732209401760560746842878361402612280468917056419943982071684001738455402193071110367167836772373805244563499842143042485365078583787679967030053047756518762378355950939448302855022833717242942825599675041057472975448692010845311101233565670519433804799004161005103118075888789490571683846361249505597754514975183700356679642810617368042081165497200666978496620389966853025522078282499085476046849644699546026539413721612023297795354730096879872674087658201349399881603538042189309950027426414756230170674169559654804895994624958684788166640387217230611606860457870515478485530198480156660579759016553564082706979926962939289698178352806000950810222791756619421727831032500245250714003372214138895103260798424110608124600580647064326755242538221917568028735331539261578410520759258482298695139685850284931297293218617746317955165258719002508013973608326261660413086567126704094362753146890797398491785228847143437947484732557537314086683642607838794937313974457105589925733483730925051084002577868200193621072231524625917432674044283800900734740182392504213626462648090349299816302743817138258292891557418315602861955108951931845105648891513697338348603763995014445042392579778216315250360375510279751223387706522109946366934728614257462167999204101282918093341052160102988335496179773088047546675289915583762323328732929297299165394242187417599878324213570927382299843287345726124457545334161054057820116095815263550107300474422611373575025685091925452856586386677597099149954684523425341585154776677284379859260252438749678477958591599144778326041664829630677539589784039375164712294243937579251426795005457039975719743352296849515618451177664650745492377898506406382388296897052491926019359910953466450094730194607207261669424924835729871067901556265384719344016673311870336531234831270266462081867701483505302901804049672444412106008972005637118192020343837630497226265245305220603222696576267813528255543549566204942277753267110485346914735650327552123265406028206438267986244333387346506648433117658914725644234359223427429474109215020268050033371555686707911767108794078777539386627582130305958916174143532623057782494407770344258844625470343836516306108223702542568630807228368175363964627369995062152034354320143957334543175101059775234042553139437405754412879412147607057063057656923813645200474277883668545699193972231482662556965322567290506709025342286177926129614106054897944389736503389905767618401352322656007417508790331021145977003662269494230510533561187506455889917480903030154684243621865311967988590288699821689612728001466220554988401157856717945966765969576761085905442690094275322878968418028996353414852614352829620397144345068708835094929915550944542968765752998081342372385009518795742354973763163862522706249914184833027760340248298503050598538690888235292007997173725671081614686161724200658984259103687606559240621187095074535103051318874990480429816373236287276076958606348947674376366356520237009328666273647091294460354253553972453433899365561266142445239865702331322932845535002670976100264196814115003659692775347548763719542559970423287994660368174681090824054811514271552291429777109443820530172669796963994824907849930240650333148319292066161102477503560308721929957170704038566209431180442667618946569350132832212550937609058795732239997930787519825836992396897550096643442147737293999564886282681340653790733539953560593580277167849006076904998176635377025225631120275018225749760094485904072474764433049793631709430278922176181656561819861579916944934324690423324430865823539968957709941458094381793109764785503479205608668842492985471969554254545486977482910517039143651828220533167067495601563728478644098565690249031990193367050697374825831489128788903513682975230192609733003207007593130579587790507718828237285901574861476695495772005223918702657465874682080394615074445244358449648798247718404210300229630127048858203277261014526918353964308005182456454830747240326985543076050347066395084033826634503781309291812028568736523106978850672468434298143104865598059080602878089476096253201345138783966300498634248927916799554460802771446491882049449974415117363597782793641409201343927234690945628567836834214750308882734480979110304179041316048665277652643069350263091384307363507689834985410962199035185903648727800409977487471733949026607040649829722669275547554492083634498298144892297462176385642476742995300585780200801888526306145994863793204592447539655366490785046825772660140042515514289524595872547491550866646137617583595801848217649347361582536184114719348881654382513665996934677731268818951815735718248527817341909109764388005883475858596402384940519052212536259122844996603835226881895380552725955456441703699985845992810186874761481865464710817647056753893421389099680265794597780536782467289572300797915251812670144595643819569980820667236950730606981329418930568610671309652134443436250236753108864750169976170576214382156144603120366527775973863718932740361322244738356381414734922957160339769960211766073019249671191103662065336699181343138638646575907600759008674490273397326348473263841184967021617586068443862238864468649033840825774995904070590012862443476449193344992791850974503230513224815163484769990000532285120559046087141314688399174688847400426643517926585524284548808438597843514793905301754244233696667250150317011222847425339556222085561884639059210852721671865069387359586882895241375943161344519916839579513334745784375881387308791908031333389894096584615804100143281783424378694919138341725578256884211372905751533829270337962512008785427814775547575045560980233888404822576648462988194120301893725312979164514248243228815333398673785816856301819794734914979561407251573674640020691481188581741216053450226989493496309373296650851011689062894553074125795420638713738517048717550661883132414301988584269095807650010735139633866676364219252724845571590384215605916707826646990946776498646363053280862911743554854803484228750708912366151521743293719783942620050682347585239929798134095775538413238141565221393213290083703027828147326974461815973670240308890313676645737934694440507169704535264451940160765797381910098551680581266473997304203417619316659550252043414329395404381167273840538570806945594333079076499063146719761379409552465830744090473253326291884318159592654365998768787610157132273883483920746484232527329209526489864311601032523442307113096109763468477621913262726287924390073624386376029634266270224552799975227871223744794345628931160081970365255440162734136436641925128295003833869794961330610660506175147068922263105924256082676704692249388959986925274924394513738015742902696598315123417932449747929533628484881775943077557586142636351831536073153942562522814413481806507574364402441848036395442949752015918338748731009781182178795806368127438298617637402928919036847742325492974573252252786137916050460319416772204057911152353108306955519602383509170071228432643653249956604608830186786648790914262717502632253188832577043311069644635222420464858925004496885648025142682604171311266467184522022197251202646855348560945069267068658777743244917173481040913248021118148867716616977368253943194721592336809264160101103429316971728328961964124450460294421063197591317959404146380541405588255355150498458625574621394414025654697501523797163610649508912118570822128395455144408602682383840773013043489641499050029187303886084051097168507438287448616401446576513153874868992810440685021712731890393011920507209318501782404783910499843347801870157640767451218298708223034332110976264391358188109013568382474216275531913960329509472042342980964828332151776076747339161025831746427771110018140544535936225897598652646648813449114275653803566912541710369400574387727027491204063745118430838596282090856171927566989111447564286886949214724787167408918187317157141105296245141268505468982788903254872419659776839472127710673676002771363825159234326275840324892908434838775684631881545513224200705495702030982725834308533646211470529685221932912308784003738350867379057641194634526350503428264425256569412204624920484458685740681970181350849143311224031967354842309302652150805674387582457343112078979897251240199499908434273842598164247307720391549703996057102296810505382850447596308886527278086266924755210121722387033756858073254329692860359210944107109106570303963937962890835183340135829855440349780148548078631829991873020374951386812422560877956346172066530515728548036431590944911959683347544018030178456171943414076726827797233706375025154894627121106753363630042366102853546316026886312799875941986559229210404953594790963473667183531509521424697505643964585710850120624842254460729716431115161160113256642168664636120687063643754730855401442481789611151242998954834718499677262276687719168404254651082100487987937101994479377937689738586837260282394641298992248529549686983715620541703016960519503451978379595600042558217414399845780546843883398384410163443486724925449912654917576088150985986575465698402561860986135987474704713966335561564218600815820652636065784885064200354065787099286889947479871197409007718357033547995297876151173200965737477143992854783769640390434671901616752034644543128809342199456412440770016949685829991364798832797021354512275405893393595170728830651557127090478141218335143944158218829192767201443049239933639293553420426105092778567210470593985853425507923270270681092751198203124633478681217103114252416084572521138840908410856798785892209962803890651166895940307763239890717315056965622285881180221222848452662445450079077483705729753420051633569401836632982178395823787410700143337976186974087641004528549571853409700838940015900121789174919286124595633814012436829528375228394214332421971239417128208336287999819503988856986329154494532675484879164056846997790270833784606282400575373045615723972721624762311316445481631727334473611936309913635878643458490141596306366957948823345637003260396102207933366742510881030663977214201927564333180971924127321119549933964831758930090421703197586463736661640100736914837040285111328899241421080284457182210461215476058009291418908236467348772499121644538514646075528537319907281259664432256453325407053878502094674706798498731918316404066277817808553687639205517711395782456509420544419755891430514508520163672329516500631614077322761376405982767643759572629269731570470768231152874093495532695235665126864419737821035566589950747806066051362526470860292933209242782338908800622747619554990785135094698561645070999477508097813005209685856013868923580887739444522857097348058227624118186881231887359742217746044888288482319129580361977767651180948638516573967238460912210725169362184197891996427147802597002784744661360387240066708498085157056655992953682907623413284213289832922586010443105704570652405686134325712112707057589873862011304767595140471821719250223349042211431137998496165498403381248885579112624911017905532452538968792031084578312964330561505264198308854275251448194364221182039923914733987089740280611899831181799615129299600261519761289750736067144469382436297355385652078560967010510483504164607136920460001236241177869976870847279369391179905059472147417748930266444758489606729384660424427267821048000487890176877654866344147082185389409450740161332240870676530547364261276085918543319195518478829750925968320354028548997386406667603569568277319111102063400304719136781304015800569248941563225876947927195076147367796801393130799846289298670491806954196885095821338549608958335462834811563460941156235143845902717269979890244003793933440655552684156903158400842689973891812699597309380494641749565222344874583383771858973955487340099907961446830001369593566966404184526642678186341332019412105630911998934974256052369144910553447701765721262526980258420068861060547902435860210685546304010009845972998007608691741117861928865391085870177010505014147010242046643526811020041396783851290424818409249610421000895641997225097844802440417385581527798395956735309954194687339780861624832344751583641330546747716993321595431556562011545271580648267280706595752586282564138737581060568642406179382175071942407736696976402614761816469818739499304604776326773003546200717877177787638341960073430992603904853099116028075795992704175741191699622534723469256202223015180494558418486537154290303225605579634234448277321992873728692256752168648115099560358557774948660392613015135235759328121633146170907339106130171650755162702289060786965275842494161259212611356348138826361815951596486211417819146819143835499869427493013600418672577537454368410001560544284262105635151637983675092180988339077540777301638700711643870099149887858960672127343084257333721651364617488322804225166372080982666080706208585339212129647910523099808636912069600807864077933264628118644690341775298156948873028577567776580370250033247033530242114207589837546227558447477966343425545570393647215964239185925503637064476503753744198776663652558360895802720953437609446163722042870504989252778226313043112141658729340459124676547670062803989454199998157883145157101775249699366073085462156953532375787436092098742770798698906277228006858748545771988070087097527165045846652227109985962091706998548643153901533052427448421628388018968706042195296244454151826296627761475596639726299869470380678079738282074659454594847471399331065487835916719757769504658586962857872225681262757530775051115818909170001330649759516656649432607381083790011492383386517298061477513241025308231085542252356574164367195658858705104946636505486826092500738182944256637296366907719339333225955251319596123354240153626928398923953175351168789932640165118753567177534830168218394423362481712512752543703330695492855302919937145235716208870946229180485269276320753739672438560527836974622744950726687570917257053552615095525187691042042986238191342528112663250730059032584218104913443173565244072941898462665832563399139191738044871863701598895007996257586224170696866061321498665027469415705680174498295449232525847227678930106447309759446629420915744578634137293456198372944860079343806074612552914572788960811593073765584591642023847377384213702666222489419455714590895521413239382751010231113314509672755722023823788803960212848480786574845783027129037332758905288820102496130327297316301495436435099263052875326489637675884583953016622986740425874341025939959336635925136564288724040171771341116733784486985979680318955863046491628957805332794911810017568500051165804172275839366976303316787052956521560971295961102115561748566793393469740187868982434067403813949830292635675141514387976647064448129983567921870800072396920124763093986463921511144386320061402416596299044681414343632415884189262926987879147214201617595838704895563469677033373955370937265046167613876159740556158941724353468881617902953481133954157632888708564238999106123280670807617238139484023504371970245506760720066728659814833532159510064684355651021059861912099483893310458839729100657373813981139474885222094262460498611451746005438629262358385224070593418362865781907500021161446378646857640511616453611875414261751656815032035282211127959513772424823894927449253691433540421995086728749131963674188094535140651896237654302963677254436742129131318746166628542833533860181031198435541807732738046123407157015108241214907854978196781294096810866017087930794457697227311501449492585787361877279948924791369782215229453885334402265550362761955857230768782580127612040400722687233787679323156637048095739711731280064228893581271493900754822447969006208826300721617899175083447799690455532379516864667336316772733770055485899502331174545885395445187724276622080503628615004018584549809750477603531582966046727724065668629491275224990167926928016747909868272185197932113516881220826895897036465441462518109369728664947819812099487595068716053298662743854301414101607146200710527788010120835909017320576487636279916725960391196697711111209027180071177028241303684789747731660567485271466306266574958596804066557169688720156739376942510505071419218255021574027212576160147035541191420075974418531677947701670658902304833076465179999899785542049252592393931366625904592211086758981448903633488991629835006307831420546730218600670540855161278659710361580706156559298397011003806065473030694236725673097313284752485861020182432152352967518729970003421763839671145617369091551963863009208281698016947852691386795882933757879509895063051774945031351106392324430330782942968261270112921237680516894201102282492902937868052056446440390874776806281567017339014412793971367828642904333711205678933883756719176294692251126958474357527536176192986658911481278111487557350007348054793586375871366094002716657980610701667722146704914104123036239920451835188237676132120651914767714364186081923957709598170806049495432842601378568671794338386354852121522620311011729769711921185912352553241532287223866399959207609004659346270883657089075992399825745522570775774127988293225398222392593540105987781852494064455430935784205447452524693097154651242784109523624351963965502315672862376130226950704104444726666185515028162643891650753092327071550462939848629393431720879672408889606399900767460827057055472426525594214926705232720522199779338444425092396936758577599783294941014562114437661778260003997074720405292105111655564497959762898909605719938423643801210899261576350544360024885116984560088740468039460510234565476883145938668726358000983309555546657477451637468454770969707596770130636082457434062151370560745651061690581694065564627626870223493777066508253896642706054336880021222834458938121879214607745012262960424102361615517726405393641156416106655088947332120244037024077313129286956271902575519872842808569477887570880391804668908979287884607186138268437674498030217286198130638178753519584695378911580874435332571129676925760536392479931255507712536043542380873620667777467222715349474418856807652442916541672133194495422928749499868219624071678255534374527282544462082971322159216245514802506294134078861485629624816033815097996806980692994694955593641610482102556976459860422076800283764496561853484487945353455403342082391089164009808011394637789168735827963787818687178081738943222634198102650580941218300272073102451590569029492440976948332280586438371431611638536592594712841899282867865906104203720415488238852738644407774978232544606514687335768591854567891200936097787830985394873980845350699106718426354310440370665969543331523855973424956047990054913268177959196319239924944391763258919862061143282579421280883270302419901957245265235202215116999853457445985119226697587541925870489797513914791769915664120504887340459290480788161509647751881633222109027191293209991968445472939572608905594636515741782566639724959896567703295120093395356155646385125199505886408329763692640401544462261180546163311161684849791330583168198160835841644373282107831278906311285927020922168217078904949544983694596462257340313325031079176227912896529252887953517419188759610604650838473966304600041508900499316669983117375694887257385677480325911726220022196266521760520748017274182000549990162357349667332691682458846083773564771159979732405182874900571049084833497321026401521257557610447305918594429784499045094749253187388257700798115470625685091700279069252845243475717173225389234384262543676534090473948778899655377183272401994119168327176279410520669426392256539877123373447047831857820915152328850727675672596906614158436514126716508474314238681690577958956452194396633328888504164192932008350130303230763276908120989601695150588190088182652433206788657843316196304591251973704049347133118116646104927138182271832894830881545242161019179456553034625696612668358417487740131300269251334383005255945916084603721939961837727742925135824387927608755210412982317565997247582541256228581990204362660729224611101453490117143205222721892454204889981356757072237328439687534980430015830111510848791643817338670364513396456134188041439249363036664603657303061529808626111263213693764411752654072064895089267127744541166831816121774028981051838923203327006445692921722616258279875159026083266519027633986380806915740458953866225896659124785553181532433555330338619729221523229172971716761431839742326561800544348622446801189203362731031924725368685261140655563131931536048812404990139397463506567523293276899209628081978316562842338466138089351051037970328066226775431224142511753946651932745373120016295434607672295221076414704069750818785034236190773105343895089588546927861219077111175842330458473951121027384818484509612360231644265339250763778710206204717652532674323760635740883902388988927869403621008948286299923724144786784577818343916399735175602094377946681069063832327570695951604678780190127542459733584641732411901716486976904004248884788073801835786663695191457320302543398843888966147942241739850647513500837154448643645754775712682658684931006023661354669419061200839797431305852379122480957300999140417369699405172838543441598763124255622149340827432625058352037902037518807253557726302874666503339799992077502390981990625079719769966747112782405444195286720959039189126892775393799584741379925068504812380839428915775666480179641759315787974619073803714492404909499318157196766910856928298032558657405450588139427658452093436554492852969150612636545728123885885859909341060827156359894112582546047957745070819281372197963301856582942098639108128501060989121861864860276544066926229926427596646707467689931811250891069951486540284040802748942589972887928454811104996184031583359678379271037630754373829788161326660251436018393287204949142300295978470517753497635160635343503864116048179622127276859897075585331901336784743713379399259035989206144339333581896058374354239026264311762013931984452634774942372338650961600948790588696258050696350453389103241859542794107854880919695135942566053822789852925150839593376404797476923199466256229181966477391794745072230492255532754093062767277422448597452442098129747871576491716784784388269112457513597534919057500448540065810641903154293485056089559297390448812935765104391761385144477733176666151246565031694735131857169050113452767913221289225318387563493800551478955153535430297661626924624678956449649261984448433728895605645461933380604867642603381753121633066750563696763595472241850517625087862940858888785389097899921579508963506938170721257075320755059017267191717322591696097798843845273570065623816999765946436418865133026527164596505498895211762815569596271623720440490903247712566915401582835092136094631717768497652545646586472663221623861376457939350559900972026023712400288626602402685921405415623366920088267590476277779455778538714324225826438413962634814515463316611619933286213162512701385866334769349903084567381746499740690149540401609381416276154794914021149195126884943876836720142760722962242333982125510538308190995642740139465445866991157320674789493108201965696680155893071500244974317200992417536686016706574956480077634423392701310764162310462277568754104204681038667757383483766063622856259169068437822709888647896994020643342412949150811604880687700152405110995724567405564221271983462398612666385235622406201061120592287289921170688935824778168080298302910428900878355214298015419945980164880333220974076341918464337476418743419279056880200089766180434761962395543701391502066858447585981153769435832380626095433714931791327918370677467317864076859542189727592507072302805856914727448238377289135564109629292592665795527654977325781161724122161007775203016211154370839447998034207875702400019464440335451551972027612308845834202873351014212232607530164997265727027475712507009063466340989829410090166513559005102959390847023256638180161514601586778831461365152417197010820694311292824263114410875100105689288625551752085307845232962435904110050354736654194768120178190409835920688056594213963461166033798338853541904857835266301181774334987964212617926491714421214650537927627399354131471671846391649616004028923848131169923292387386010087136412109060351175617050420092589551498016837900993301644861880101649001301241932320724300113438700740057299828273942617869535922608419899585640976015832901285197543194367214857918845980944401843266523654895750238503481771904173750744089944462187426837539706786159403017203591688394940772626915144863423379319055316608658989462300301294242456327949426509579296600534095608413272661937695748311750936252046986027241527915306073978922522961450911679197935013890005179378635105590630281186578532384693907325425863033162250060816306981474503508828604554154566331385363484441174537804623087635884346846663207268574857454239559627357863821989477352257266284274904271030825332929123021809089701828051921685252635458094183268701355900892463314422809406059752366507368351056285147133670904614541039902216211519097426845998769895227279584548311957707471522243610434614657421139530969743923383150552291734820842068057561327963622825874372787591305772549870493340774422211090689831926173227433383666782315071405074930169383269943671396665318474861264691160025666585301777119765954067813073658821583458413938027719403885096182402881626237967645486726823160899010459292549153145751955735388919184525742722914709255781900602931717464740093108650355418511446643091240187220971147551342199878578787289905933228920619999046914802685242358645844799422368564966743299686308138640286507119675976010506899574934136309372228425317903561526756961413633645769434388748038853387742624241231088227529225455961010231512696624992275230264771734927407871391711405518454727660159102421713423271026310924814405390277023838468666244211352030931446005696912958564874706131008064902711379849238570208198152731169288049493654554190146318297115235270009964671312597741894761629059379768082591136906065398466249963618589680075361784606427244193960776423627244112258212055810752303853545620078333447710648393770941078443329675245470180446346819567687869871186315633070699809787089874769334337695431188803677033652083815635849753089067196112243675960086176909986360359170037300090786229964576542883481539021907705060223222094143156916957347499612570977065993242477610371534691992003952876440507573372289396189454235832183515180935023444986329849090709012943399539139336534476804058717031050040280881437501216740857694109008532259630518711308492748315926795437866474180213854099096481774259898203492187472852782088212362904719528220952822102294135209151524175844817403587667649411891051529988567281123897910044831045832696754318950208869152664244205248967062425873207044271644387669000583297591171139902297404980909727596590965379693002716962325938765616454308995105534130241662249293127730337398222577641719241086236019034791103241608058935538272875724013943131537150174842242724833892129097915054039879617221828164119415666663614264295648283694392510773696717494487009626596080385227581845627390985586455584754837739042669694100992365721306629422162434765155281357542128466168232781969367037373949004878327222184375134916016211589396840677547512235686426494290779608441002138792472762841482724160751772529504315095726701608892538542946152988879914288453017247584478720826371724943999752190268153961020774972742355843821151945909874598097819413492429385000487852236681715003166220575904356581699776707974919912497955228758133350652690100653875955919050001807917922186661458407199943761241134502399088490502571766886238253994859645848877092462287302944751399379917014097484295789232802910278467316862418124893821238596678751616796949918238210786999273690356213722533417886140479531846450604106432801304332105213784418447309272772054213243535430222809162070911126364564682205826709767596091491036142780513381286717054965799666609084410307772569338352772488119268588722149965903599568317729154323318691210383146261885614905045227821043899007438319185975867993939989444303977349275807736133997841105658575907063314795101926888485868796539138404513435137887439395696088772053086960325553858273514054697929267326745618971513688607481012688932036165318458496575649460952040353250044013380739031064931520653432985544891490675328384212949025890498979283626205428784186521759496147079296299755135369850773951566650307001936976409180145337052225225769461648029026887253558795383075050114004441008170088442736076143530044405056304544507581834440514994107158228681658286281617719314305244532309550195859943659959322529442481814588314353088967462256793357007249017193971132740204185218678649913273227349190668137983005366126484379200204263078689339872940958789937112711169317873650597598225462880002668066703727010571632709436072557384054708184822083786807786485922597538131715265187220059323991890117367790248600347075075243180299601600954366266668688980407180517629536224142527684227244742351384877161536120808094817960239435777038068632346496475136200804066835636124863862223706547580718617345867787964191120030118962315394104662157651305276086137772032315645565781463623731695562298838698575621788336787688354248963715702651880265903319968454015842620708234875546303203743247545916076372024462249615577604659130252257204152152240488831431746003374694070603795645418421587525846696867756875632329581818920024929382311387886173962731561789115624976290503999497916547235557881980939153811713578735237219870127425514991805850649577549562481303134652804623774631902882268464601186599382280110860368907874445793218131273477843441323326591918700174314203282087320361956180782086436681633987595876995986016064524031728751455879430559981885786825569349582112863403130830096498463254212849466684990252813125252946089068124135832578973336992004872790822613967239443287013745635600528816239532621207274510052851557122984745566375034880869355541662683513465252560639096296366066065606089608344415136871001822195858878916926728762364458976568440975661163413888874583016962688505225544244753291649964248973713850178831010005561546984296649765181703316005618717257497472556135020604387009816865158351367537374216360565206160684904897549239841533300625751100783578353212791670923614057672571266157454722130948958079751783838750865985517974375880015142719146521926713372029740198495777431353681957622356878455113057770892006063093151397367033168085147028819934982309835915146291756847659143324655769028641710282053521901383004576152314164216054392142065569944668063592238781470068267935528049868912394160856665131816677078813051029505946766021837843848172680042495060631785721758829027063503658257014508913699227566063379135941347129618336346184935084313199711645510608744136310419033261943510066258449271908063363596571097824581482393424177373787276152261962590331397559111520056265865375074949008447381342236326262005487268658280534692139204496679351333747007595003792348623795984120466318264037618740437843465537367095033982491472496806106579030167322157781092923521353291494447307165927891176037461915266384641302280373112882790998969397601859697188247771724602027648277466409357843834144305082749549853500218508677576525093678320110555352251754962628150971716530330726546342578842558810964417851383673027487149164360820266890113346911130139230231732074840071486152604925385047276890186026571534269529469866805038186079465781523404151900802943308062196166452687428059971854572299767630857227307625219651336808608092274576079290414482497894434329488512103493152776605217841967800169988244992163866594373214323569225278951506640498542243812436402768576948021032374661007366878733568265595123751304843930914290106479025968684796632858295771164242386340921890178095505520581030208875283523906990777010034235132898225236428967132707025712675074503835142115420240346037915427095430135154838902595474454303975585065074752593099152932848790818282641471998471082972726604373391786862886271237419512482435873130873379880197888945160353338033484498284791639348832996257125995151700055508761444760462464772732082914061286556312748795310763462395030253570778155512143668451497777731890105619533771969573600061564283609029711577602794258495572591197241711081336855766639632301185672410091721759548966402395255121911822516551910364692312867523158428874047202407039441753675150114288325340671539993040462586206004060231727556676461776294364476388949840903890929034631586993335464911625273312719717319155265532036077469782509102028419498645030554498437407183503009066261536758197056317692601008231289297637270458910601693153086617131222656094317205926283573565615638425646317352554338972887849382038721109916586955064980597551131546337263436664102736881601504828277339438294177966088007536796847302532049075722741972744825338243035804240278278677810245558070784000172882517542605707251829596116951369981247267998131517473390437465787125498221106176306194059643430349513260680344847845329234339956741296323955899992886395907258397994462965071681417643348734511390475423180653485343363202542213066273629185598871537848929988999269068605631199384365620917404027289468671640651972360126864481990390953651993779385673935994171811399869633404435016831405733307711601470115618536462213646994151982898177886638413569887883748607404795825964486536159587252661068740960234017225614391397358258518788684596348709386799001716559902283653189989456790752307595622755678645043692444545218771302682957547277654457287509080487610012195206014254472214269946564144872995891167185318202043422667961781131191521761895877474726573445203148335656444727220500181210040907245092014459380905313343186926809842135360306198387346248091192438294410930313972121744071475999398771698045992426404227405794711687722803881409415453715434426438482635281898810803327537057188546191875109373862649777432741585949604756928255054979847834262584921301311607213507086271727982580647243628934506969730167690894986386764152372532045786159436849505995342974327277677560170168278753839737973376600720939265825927344021878236613895385432725639431069141763160572406308985726416282193273695452998400389640922994794063089453187890174356452941207708617381517092186251890025499868788896859557070961724251243810063784331083083855766414160601360903806613147403044107569887024634678647239663340705841170904027705272635224571777682570063598455988228391977713475759115032252854736784173380123971822474378402289419785503986625095901794130349021914054763362237303510777962717663682942325628743383063313843887485787826122539599586005610270046531789452449935917772992520558261462565800277928880687112001708816458198630016590242263619122865049260860319852994711416949027829401161897669909236317400716897633539423540120934945290287562136522153654638843585428890308039412629601482122315386001034892184202593706665525779857918466757730081903045160479781024402789626617463054229959569612156887878717336364640345683058600882956432454623110227449700115445120125851586503325897254185211922990687783534599975713658838834854601441498427072939191130607287113412155436076208791982583694434128599314483788664245645407836586233847250674633838192715856664639406756609799887789618515361994914811410731535075526286502809965337418118406527281020486101482350353174080102994898034063609600706725280829909035004613150472828740207995868760734892786994937087254887199717087762320431101495717770086461703353308204373230524010149834374948651816677805833176085143347470234548569987380259144861711674923846978221894615883072266816994607184572119217707574255175260653138619631865157634744088798617024233107047957120085601798238007774448153920520096541077420207193910043198133725964103977931416402417835513079098052782294044982216545752762347474867255024355573334602492140987572125224897389946073676656515042815284303989675852863879027470843860239379472741519027767255735041953077808054458569688300376821041159162236479529948645155721048730352002080255934986591030676838535959252254349386071316515095238300470045796399230514611693917100902088359323167993490742966769819533385172004451792738656231102339549314597968773111551746250269089934505518673213293065567722090460516353541793077013567941025623802404683110709389250973020311120780809943351819188258167601550669661112519806051972195495591269555996584964910153121155296190042741555919549355614716494061295681272677188046593953148838338964367908721681857916757374924041347290375056186623086613534062269334076700121687885780538779935496887911945204649206049968367799929922339900605542999109018701839053238390220652905981250870853552215310184847463624354836560599610145803975544525048765883675367842655835264568180670932889303472552564912205541529118407807666427981000184043641275469575669979420718991001776033867576236827467540341877190205622749863878107953437714105913337837096716732107688148501623077148342344211061062502564041223314749580863315710988372931492884448701103117125073450415750659679017864176300424804417899699741182866203074753888682424782021164506602742674296481231026333027377073757038422393874832900247144968645417670072160503935051990405883421991109483180825505509496243563140841593931599060681327047930269573012015646222581818975855946856796728494431691060855621979454775117894175450553221810482033383739637343226288669763757135158199470221456349090332088446705823976082394326997586388802967968531328487847370994999562958326573659482224584332909263306096177412852899456782558435855111009387681070047042147191170441036141101258872593332054835674076327481643403177134056632363914466019309645752446263101648723584598367454848585515823099139806018272430589790072392716883063579219439273019711894480000802233248623836651609609575289686776061821927044520175379107097883980725975685939069164418266744700869724645395501428428463259236324623835059965909931169093593891380741218436298612490928944321540474059115237932102486329356163638130397565625658970785090291674901312862937990274987250341058963186169663051767086841730646661902260122609734446554036905386709269264362067906764093014308671570288898794084929905011501494311249124549049125514808781807912319218288941240462619884536629093545103322707299444140327179196199601205163141909811520778275519507809040942348252512087875680370218255175640520958626794848152753623584912958797513523403093723291513316965365814479286936643904410663367695417318955736763272072989878165120300665663714257919179416982965806778216550812861196364664117856733325613522374521227890537188068469583547692305276031552535643623686918647937864892002521926584427612632833098368838056724825379024882679479064472789633807214922557525417783655099244981744871457309862446963713593236838358224133613060729651154395532914930636475503573590507251180389772921813346539034021227027937195587776320912168194413755533225393298980426227494333746710732034478936474170663379056544171511520159534391538572110148030588554740001406579530768235574735671980409316807839021791238260499721618050910724958724771015741960729147295426168283610042669147181854706802198023826846719956875380034156626290911692015935869506429762052091288457907490389060448044945399141088048576373814490605954631242907843125095846649719705925177305764126562442322794589061276076236998940293368041437042289788673165528003104769486786273963250922459839266121388437791952749496189303901418826490645562753944601802990543837867933576818846414463475694071613611828103675598938842639803114512475854837126880411940413131177629084751832324565737426418738932082277250933728518563500791068112745264038706328337568909476568855067049001645444488273345424699124558385475925027430630002327567754281293860748822439694164272636146866877218527732741005720553308469324194761100087537202186676868695539945309288585066577734101247045672936641494843652237301717762184227544976279995942441830948382611642808871035021964353041578731393463155807826177175278986281147824431577878204794478844996393763531299269235594582877517054512329216020758894439676316040778193789962892232030474318411929618173063949224482134136134213010675388792161718412514458485740128815293192766091741001955708637125244347923708160312426995210245671967744868427385792482216348929756851646957385705181490611940050871767216886034090782604065318206751280078011596843583078402894950980275605401613271988568673399291603757294216808027712750979903721220652673133772930469509752239386397946710370897362934278097880308074628420847240913970526050915340816209264938450748431055812188783458583229939215200734177245999810266498000437224525065747812478023800306991999484641866399367727971074919968320031371446592063054110484723043607352056856570588246590562711582351447338284751417459968760932353689599348699674592678591670677865818062251310516073773750523118334934822923515237177071097639990107403799533449468651104249450533107035962653560715118286981200720473290332221666891214653583656923636522944863872543069821284608408310054828597948050519113807450985890023279752130960461677883095005290923133401213685387225649190297546865558987492236300730114372385868200069790447053062679153450214348499923257785181209293077296926013829153057755092020538267012748963218661428043442063503867662868446975127967653207422171257405542543654540195674766643796598395565846530253910231247477496532417270109649061092487268403543712944191897333087670003972679375270888676674253121606351146991041071133295586256902931205447696826353297133182437846417482699077283836187520340877810128907629482290603349891376335675163918496755969275914658355994104023421297686145740569544213458337350449998895232951339174638223189003242914490652409663150664052951366435256216877632723812401277878051703598925418735347808813046620760501197013156955985459168017407831256595773372212096832569769045903568438248514651486006064315996495020915300300618694729952789572580963174990674184689656748360231668322668577982925908116909834968090253322444667426034582138673961312116813830706897116694631408169270517832266648136585325983622214212020329064278180659652114711699242954183718164448507622461985382835958519475821924062807362037671010142951228064177214290094275232734756758690129670878538414695769670765206389598024225249124885390375003382756094861176275151542304926618945990986182469083069334138349066963417083280811225307819448305940997015334047325575875981504579203924852844263067922167295083348484259736416322259593812194415349775720658905527819032845890610995595534288843680349411916082411975682609407302589526565709974112032201738042350729589652075613560332908698842892092693322255142390024577114298528374417321243505933328975395900060100265085929505253288836523162831202019150293022521859227481186381489686419663701769591436668984164503321895638106390140664715963122852432088995558314786857467217290349685463252139556070739656891944404190497213487393924609960706384314705198689373665313291886177168111730340749776628457243030067879768202837179528806995501101639321335441133037879165622256128223935879908541000304651720026993723450255204525468134333161615156439118065566941925566975654658597019806660007448261858710831760904304268247780777524932426212645774023490428679646631229494086326534832978014218006213650199258524186861458193515628932771349179520553374782727700869066383578523193239895143012149094856860147386737870584061398516409541733424090787810742652182587151013714005556424471749705250371350896834778302862717979180154535349364118950540201288885600862088156459600445129667971268751187503467312485642178711159135070528283380905546957461050935759118018375726355081391659850814220884076489117541460522839088185465431909175413990096271550345812255968639417088368831572488622964304988178032810034263479769097858070706817661927071454660371191398314714509133714361525630556091810950895778916052743324241556952359175035320101462752629342490448024076723195058857893995813034393858174688613222014630451389738465709876606895513406292297697728068864728844461822561720708774090128446119880435923720522311651778737405925820963491499187365041883770807646812119814302796055139328136335150517697807886355163437116168939461879647959303550402576313619078918113821761850745520357779008973554886601634511583313739795037467254938064771891497873901137569707973366520963400990215090186888151467368423200859114358398203250123474528321671689043550495850534224682190537613504255986203397795972855483966657885308847089712140847038676214837448070652786919256989108965792167478957290766997316860146676043438262150012751286152504672337340496887764540103604690026017587247170290605796902815098907271490924651015308258273371508911456628171432418268819979203484434384243316822848892235995450881174885956998211276299133285875210341609726940497490063611089080010010451133805463323550060495705253649643049567241324130518157594365801013159386334052865517439269506322873416235493585945891217445096276604413810639676483051495702333641611999821896019034235552557838282664218759228378741907755666739866289892092066476303717467628846742443424254052377516428449806103889825074839035324514774954276260107828754273998041937245831467788745493231931742523961051021936857445643416832730506436730793708445102442411798328805611406255216220467840139797112001727744626737484961900349882224157290292475158995153342638471463088953479093041841603511051481648826680668819585496213966635093906558456700146653927757097805340870752923184715985265990688123418454937100546992134734146649749785824007591595479191791565771894807219607817617101821515027674153189546713934129370695932016969941036734302339754943182426008172302971346941690699759326412246355554409581192978865994630933910605138775703265901701635772942781593052444129103383401466288222873770014667043433301790189903770032964790425177156335804709035579434226029642679727795150650110517096659019621112082908257788855204334657183145160019692007522014409557028018641594960019522451837653881922499362911809796206226865689040295823706900031168305222661354553422221419802909843674885506111968836174664067564425578535798730889335187488627153271563702793179654775769100051954353038763715715704917611128101305826922078774783178833082411420451745216946711603664028335990427069102461447338985814117733425005025545601952499225245123789168563385829311650172324208138857400998207467113535203731795007038454077201639661146254606396921655113748165324215434683320061408891690462984411435326221380053874964434109487581317851984931288715767621302059334309920815980245302225353361678490483334401302748337220235984778991291177318825832547781441835885842156100496448137158034776739052704600542130103224063401415231001380875407041214918950232533695200662229616990437673495361748263007149735514971192605499100897833197386126035275962740776830035716917832137328768354593940454800061073221042412110947771207035951107666110677293901895046792714374931542833694267577251474043165796206606007342543646320011565636120710693131559728222326461371277192716902317267112321979471659074198018237238057388069595198210408767074529848489126671874266146628271419023274790370806558317155437835976142287746277117869959867432762377275178454795049043684398598763902061591588067007554464048275557386087649805330271747233453910293533887665313293128354269354137074744302043085843920437254171163621863795451322342501558296368035838149798771348391731803073523842581453943099925323802038911426053005233107027751676655010934989792468453916732573707357315381072383842093294580187158991947462404867737274460537866086320224970828519985183423234134549914414106515543180554891750444434821344618694759232361782836762921747775926717655511126582909914573522545154367329004913784841896313323986279738026876279411049282722310305617228556831012408576407027947149342082621255082152482093629520983438121078427140324806902380159378847216225229720563678349319671006237641726542391937739182886609752344198535577326026393650531199277338940895249595549438193494463570972619718323082776710445850210891337648515535351467335361298385169124725963612873493301673203020310247776045439704110961630635843402620452225300245525426180622933033597743976025972914685401847005403757564712121665790623207940758336697049854194907782818440210886732393620533000349557113542158914561400470614058574906571681892409445104666051843294051245530842760605979593273916059572967907724047301969972158641899442831814916786850997539838913394038151816569322974176362594965025046991107707196408051277807529909876444026591705500382715135772923823449502646005028863247371178592831966301607029100544420136450064002297634536614776095214148988734873658889825150339687809025108305329892289547397611482165618442651785731342003522274865434410619530544361023392857272559467754878836259999728563623254455249725502744284400118893952144757194763836655197191872367291865616665732487660409532245170560458532472668813844097011626122120086826763457791023853432892427325539547603089429376387017266220842647267746671378556625203708385787668394142671753988993353936435391493381272751894391326677293572100242804606085343560364675943218142888926693278382522414091720641963767221525067822773202401496784143034963448807219356220504501054513665744269182146820968292044910450284862485111998660238744544332795112331711235065225516307005962243511374510928334698206862435257891172827086531689642549103919271979782434321343371797516964659781223007224805217168362853712190443272834622650953925812872333642754296752968143126344206815457017660301614304716667096442031326921788856392355896853986013887615513963233774514531076329549463956604640122810946452228813368469153254012424274286220954585240100144618198121445506347175593418099859639514865864441088780532577555975470467912744762591609995621940675227453309134248835635813016743167128416498782402724202652694137545608984138712566220642763175408710307083895108672916438680666496462276042923679392789277210883451136252156219319630290223433288294036569823276181804285396284341466096756933455515571923389961058885231013724197305860227956511963668571818236502199718534180292809964481438795363833519849297680542779017684888353201830181755623932686650681896559094228085727717173465782002801197611392137916687431636353887861150625645898562188860533181305022333340698613469116212613328549251430919879015338746921084951054327264565052014981078352689330015319529340052481877757982581200250193511265950987651199399571344677845594669787753602935526670618481198750670019679479475433798236451534101557166309494100948761285863150828324936470902728938667383446544839302979206649377960205973486565207862106734567444808506909546110994498162787294808894481193952011074286343975097529269340191580186368606143250747369696627387103114633220744128568098626489367254940313362782195561536302047646289132520754016609729532697271843797987277877078211837937211638335261276252498898578029108506067133923342910905144197102323747559247343933553003228835809375490411173832873404253727244505798583391103339518645814869451224999621852717697809400967698057346895947038258042804375612230687807260733495151131711889638483536179783084635365144761754425879985656017194468686274873269703059835101152979596003741990679748597112986201216903964768337780919186247999647699154676762915711990036890516679010012185083250156967193236452441440937774214627460051691701538930984012118712355592845129591637510348478457424450242107643183882557455567680410195994454307616695615092888102491089230320130178184060656936084569729455628657585892838853174641911529022094107423121266461555566391217877575859087016906786849727397264171026157709207702281038707326522967615215958741499454399476740284403562862213530430871478877597045317315812727896211524637962569558990492140876749155103725649126259853532873731751695743320081508290271851445192832995262848379529982001043238125613202582851272531995959995291415667782039465808289882503798715126827464790805486761210449286909087092182138871733466848506658396293532560514771532153501102563884674331405334620633299296862510545751735974157534904452599760841672847643207745669380759455237944351108043478694500705043948721547214612290783737517943708660426394990663980036563247501439894762414689227226152403856131011629979759512881957418138638042249520574184937120940668405033900265685084921285847535329709559555418526972671777029729817896105555448952525287515882292222122901172161742344033499944965083652117370077266890385298141598457947443016166458764060404504351397333657732326151289899730172506394858209468600085323440847247306390348447732981592354799578135887709458115383188593372990155660634792202178446423351371989196901392249783506688510321965392838691122922949600835572245554955998930076345776123227343882463452208239615562835538950413095799960813587526251428705802513370058926028177441125981293037344792218045330086738083298749669632813322875068759329826267049024690231627476621484740068117122349443364845362670138849938816538592097934550104875394904270128057128266906600138971054949193592047419347551333713746125151192726628472977279637477960387265185597396080139777110361922211883276175381888789042387203733184213819467762957261265911808501297012148391245434501463083185981343961991342807382124631881723144404851565862851787492979411204881933427122591576986519656968881511762488584919305344581928473712867955399056954018971722780914609278275322152271191506596234046978042175117879712494946212131080469052952169432091261305353432377040146779136651408598778348631518317346409400156364380797793935126609458272001116622650333609699544884179403614695412199765162818194479494874246240157683331724145161676904302389684601914730249103882992883327445672771845409383942248946007047891105484718611123485009983750039840781272439612682619364486785252602681566116655952001364973837997858017162482320809606476058429162594578718277638034527434503626518219004983642156040264675531851044150449065858842166028220309897866471210140456547300377022047200016911069138612219744474540565025722760217317175901463064059853902821390433102434543070667501570557007572981773119610588595090326495433479382353868962838194124084319970395101291601337038441545545344214790508542696720663246386885914560898666719541368206717050486137309429122004606510875143149521704191426139543148094763544014743679558929428040060138297546060070875192949063426781507413722581881302328030915115954255123442262809259089893775365344823485326210136036598162379497134684002603695296256673130339781107241627151301533115161930439335499150793273089522461540390856120328636760556521316079291586750866764510307528442153681595457711218131391521615862793550617847123692241995730896473402478720609897448960553560261642805628191885661642130006685858185540351890014297701990510496264142702479361669405268194243283052363638945941048195672458892589919874134529064955394906960074912736945510723469411959151494044914402982375754050857391215892819082464318298168886863190758426040559199582785429651974819399603640663893307864788074892928833911402348692526882061570193034919529690201204507933298448342921645087117624149126572317080291122637683064493677032648796177918415034697403544920843030997910430731079336684428727551234904163967357156977576955010846326648713035852807628793590095942223960215804717326228997725423509655115814924696608346411068072944764234706295742133238122292879931687594665900497436748609241482069274180109739225423047198533350475454479081119425951099283817858579674452554770706720944991070805757748817836986754077823466956079738477186866274037505797101929802563681723983759471365661429184973609097828021021922766292474727559846964623542148165000566303262549821552286248252064295704858840596741417293564074691087478752023018763252784171661870663496006022212068547971975694169311532038992761769056402380256674561051543373319507071816402249846622630381982962934626606176527074255258257754615580000216235583337484948048829847395537548308505869885355805424241990948528272760375984185829736227441884019535843301188188537751475482012180533368277261765419402432423063242377839641179771971153971126380653025894161250659493991155959259479972745336021174304757205835356489428765440680589371785716392707963388775446239058940668861457032979230227653548351921494834518934858519880789676701507183397639579688246345270341932661696704715109467121610884120863290768519474468706642445480077778793522859748581299635108595563816540611840266215303334707349193935897179876463971104798682942707901363110038551226079085400119254799624932834624927465680169544518242837971694277958760003073683861620944253299507002191877602155375472236709489159677636977372473968069964935636576967057725496777257758170115050880310654863504198958438517536038271402293679411684378587855369425435658205842629733651012733620149690377993132156839752102880128301199338427110698171758701201977681735703111264151724699441474749447377874680688510875593010831909324268137013464989398070675479935088787530900094109133370528456690221678012927563848878154035961167387783631705699079268774764293681264636792637795745214754904123371254266403917886209779435181616238158096689686329177645764160186191000683072897829083811488196075153872539215921135870068830250966779914465000312365292095370163545393414924060014209255644149679849351842141529067067285291529836240651260074217871959749895717698268094963650150563259754377901976394460306192033913038295798567220493179805799487669649645077591189633574734920104735726463660040853570144807552678723026819298302209275334361852184041828882004466659436469666979891056259279455752190977166742123196083886339248884191639617608025694269239439356546023918864263475497389554345096112696919544394050285157217740166757801335941142815178622327772183241695925195923799612502857117374873703083771826169253976409749409154729353430535671009381351612175535527476349387409117107144029732080878920454159274805561068624168845935248152532103541420222600118142985570937432383542864608551130605427186448487396939361460585367013255566966833342715706269590339029323165995812699560456015841752849533075701176568275221811954246449156271954613625712622069138487539044808270392532081345981772324233009045544511479306566911754670068444072075267769806980227554644011087250839291225006794856354092437868437108945889144440101576488495488771974934242936292447458202532774062516898997611780023055449695564772107619295229275101530059884907138208328794734252918554984720800484141369374974770482617461660685688970777094444714311016411650948357195166297050919158910398928555400743344789531643940473817340851884438073687587206075601034639365413414070682643948288312031233549650025099674556199682745479954828886151539746863505785514225515055836582035255808972141167507407574785618397456427041979469690118302430281317246370676151291924435177586115216015876115129776495630040138423113790954657537648854369648445685739409941345566086436120671475282326150614326176937372922846641973176650370380993540853834681830193723900215609965598968031271056048220093989622625054843359684435150242089527136159720344421612012639356541461507865069243929268476466886821345688942674955129614816733374574445252654737000390922263663702284241906058760837962920699525772500294614874650575006488609264796867666107383156329578356577507633551507237023454457812249619077114707339354100319045779376652796809828780792931025193051035061377770965976011037771208523811106195950835943592633076809399160631377153290393377292668370967055390712251531979616809972689336598890354207596865201179144881774809043584479773455871543772933724682720325012029479494315905462498505742481889602182339809565513284977644368307894559794845017587863272220197070940835572270605238729698480677499994483570283993363572362929574138878256984979441654815109337276504593551428951828554492165496560488728929034881205099115657054968097437629360609780898675397367852981004462144870306580676919483520031436032172714417034412586931859174717715173321591107759439504699232999553092825171157938607331593809153945384911780014387413527955571924803599454426482413111218912196551079603091678349886551120602674518301004389482405838133103960254632495855856981692188507845321696338871163873234783885059165939033397365803030328623791352688084018508353991784039805096502435813748351132136333623960415052931201945185121346132303438164200545293672790417942035328116613898507280340465595543547837531503810123163001525208435922494108933081371699793921114989309087629984106383999936678040208477685443508638712798288270279359794895022729741147797372690275861820003491978534950243571668021239974142236119059029525687900061437950501327870414551264273497609793031873075378991602684595507868868335640485433469819861116005886468949215930627174500652940379778805139005427551226431586201905283104133744753909189880768352841084895204190291962682909718125549181839093405193790857534971688984005031118154304583296957037122985094730446561600723892273527376266244905609119302829452957924671510351221075321137348566455332193754109799997844141335581849360365769663246994324692555443204851674482571503219585556785682593975613969555343615274705340827745889646177168274704483038852787024169152050796981428998263530852322959850006535877523531467197281523175303252677020996658031489068148067735075371817486484166885350552954894006472260292760278449853421005211017869358802134130744857685152987713559836794014374663415138714003810993404792051154465818161002870929125195311550930365942146869951767325035034596005140785264841762052192316433935022077558441867615875486771372822552238805083340924879818782198801915401245371450000220274830298630722923656240253061109461118007197391602291022228493327197657050541775141610614328073386940976632704592476051822398542739229902529175760093405042367906715830499133202746004732901094032937217457457699684672088558523828794227016572556403009391471641326297169514473859922649660070610535143084006430596784426120004071877246574410286355760060249061505887641048322498335717663873996728455430704656973979794928436111837898764412296026751090550526627726543063873647253212879254504013481101466344168538066925192960912022059064717828711447372322313909124559712089062205814311627003387786605228074497850793424358213760310901429291289883452426712295317726495484966853185146137584395139189913522091904668689227924497520718502071593516369658192828876754596152097735028832410617197413494412403959506123063259795335755508625204548511046390528399875619712693381467884528207907979798469573004070741012409216502851831321656481227810974696681318822793210218576091182077893732667327772669333366425948602749963025020622678187780492208278247033279317068293328997672965875915503017677124829620781552886575613080245525803220633650573679074907348265659713557316886896878462728116141136940720202946500649522557283174572323248893785058411316007352755542848131119642627297413800124177432410624093016641501397577209449636644252475363190728116195463283328347617177257728986455126976343678986571705723387920522905034115893876055906654466676682327193121070620230517025589043003593882124690163645638093621278074743063881588424638070157896375673452252112617862658025695177564827192719328234763576560031861677535480184654987841436754205684266062810736772677405472686006671122169079936219398076424273860017692839903984538017127703449678111935652266513790310087434176545664608787208792664427158742777955207125311520595928221302366394648717319054785047811902520304200967766846663668219794549519815435192000863890131967451611221219393731537445628542458593703117737062837397176280769506510546037451225340537686687383117334436873880926519960903015225281872003877403212372031671789018846540903338268184429784236504058746998643174638142989707933559454262251791513987663082983564307712173808316169029328333983415073448937278801397478693318838366323296519869966007981303219473921234645817229917814102347057861439600281352869561240689104171345114669965545186449973085741364051960224245012423406921510241369278784999031411649941420279082387845496866168379810392085042014159232279864114399083381118908679271934522443151988039107172896940690462117528993607275624829915533561470909480896388656102643735834086441312811528899965771122735943806273395569963988090038112661939170945645550150400657863865489901304196823762470606313217978415360971313315652488289608972947622245589229698822168368587821695538766530532886362201470170789586254898233508568337895032997964747241562474648460798527996253766207874730913159461446610442860404075039874582961854578608133812881175711789958898635803883654527248692350977915374120592633046288071901408440082180075784185051748280103748585438662510933804448792509434723423226473450820416694731424423831996183850309821432492847143486595307503137107702796390676774127536964461365509402821421663227619500732641528124361687774479174409649989778553344718840874095419956439544391527656200953266329319662810818695709147413046014589819800861461607324510841299449830532246236861666317317835766623038879590028781991661360771534599095360471126843869103753695587414625909312194867342109204792909786209708132313847822037873313723599089719419687168454346067092891175163413060606505349802721281476193416190660143336529425029960339326695131219478699176769249746388410264174670775617052286386681177190286773415259702196785583705016367409168101856195483070221889710166481262486164609251177799156706124425327778176668629674746053929799135631143124663158079285606159714497011118716840380897879535037187132735162238126265505346044083525785263379079877737268322410206889941212436058825200803475763386428011648352413191750468960430825907411785997480407675487789842108455663127779967121170035039261420435430071615261171976566313169347475593473202322425655593093628105481443293559429986868984453062855343616029720627110178446185597102287456402965112497650588759839084045571483097692495432635408917933873117582577913415544264936189008458913645978538304605248468010677511840034513314800740556295600606124563380089210123256970704602975548196428061556898347901327814802368969356909676466009018458322224690792807146270782157162944749419226493784140675664224817136155015964647410107435381996821343040204496019081732617557601918410799671438019516685384411918791298394660907818597558400571189363851109905652770339174902112256385696652601863469100822732315388304551076446631191376165445722027861180832347996361305227116717361305022592141975526654949594397152271016896332385053388658172086532936228724029685530291295141808760730155643333430499529542122330860191386659967461612885476317102583229813889868583689465237744980751114203633117535968729737663267662206167785609083439968578645606572278646415419924716713518273017244245998648921558062621883601954028209281093588484203173432906432174222557753858538822313098276424859008825326954466779732248708400139103930217607574061932587072584779729238914055524405098456952549883289657896230269974940496423699859854877230321393133156354034835554525133332450553053025553218028214439502275492993532738438314958476814296384709462048682012579170494290956137190903435455843427860085321495425124496741234371309927708890601065801156204795307701631233819965544166275237536031989376422840528451816366558414183041199083390868824479794495359318385165471547523624698222424864932278137082306437206866113870969482849846478643544629811864776289145337672132148705243776009248486573682898872094316163170043869243469743328714056531289493460357574994701455459220801779543661502381633437887150931296972034126600792922228445663828261209233323966696004011513946534717926317493792146063594520170041636033068600289753965876715198967316572913938485108126435930884447150187862003353629779642149503683527459778670651334507578825725227143806974516832026424564108601225521648575757280426621503435432194236630554054346610279427465786246177202538503458197312295638271070609980311851172718957848181612370979127443940329542555725625120286070914268147736649493281940829808383310444266799699091427016794639592143171692091855830037901419156441798346056711438134750745762245198968608129618687840141861828920082928405317714087847391715697079630997492672039498726041089371375722200471555631659325239430511240262802371173435269974987854588852204608525828023853832461591752656729106195344953666884078628553955680690273731271886503502587293410962564828857968479392810367936710009702977279323109255190563202404996257976590398857478411437685934570990891184264995620582820658559721686743854817640374936163537527976449653463805032166776512878859632173968871772200907658757748523219797883930322546481717705773090494517676622509038395860897276703758383264907705480287084999124990268140506584282213119362173890895159823456681427933072256734310190120977076636040979958288378700139949421168637826662504600886667479171765184863842868899634375186270711240530075970430508083506564474148810620315163500928969048293583647904268011819003048876298484388162148821756437900434921550553562463597356541096246542937927406498980206127730734127134548065860748683468611703508583094945941494994355673685195189058331857937047676971646933616442314826376482786732135977038701340380063035047452359686198397540257873637990321917506656939155677722546191558557410993105828493137636560386623537052057317149809960211148729737793389301797733485284573351207596350592159519785453160291208023089780904267320476731136530010285620778793777777872303255434933162721704800958868126006278018305182412341878919404268090844543149508299472322075732280710224442149222016785926107664785747358143504868409048058268528481569988984229643401852364019124580594961981899136497845206129688864113592140984009560525284551376037608354172267426812589234477968179422940533842457109263615398845249759522486622566474476171096167800510856903726027893481497389214142252158294536224679544855861977561211976040458178189259583921628157214337656928243622457497458241661910609956422622669699296015718139203858986958459512175662436249615422025259024586085047466370971006839985576177258729368702540892074298638803159691737317737319637669611375226187441379878576416879937989568287006545788872221434254823114836162574198966977162963807456771244611123078110139365521268240294365282508399642175258470012583494231682951373446896614773486690203110357653728026018311046054853440244588889564800177853418168275019196109582880071393478939539409465582093054818587766674589009853799866007163986832573225506020481420911488924103537226228971384751069781372510522123363550534286671600809426355050736748204049856479424186402558927784979711290874671440260133001582399788231733533307729404698722590971202217026378274728030849347270452442844372934471711757718124006834466416856505586074539388390063515110921792093474167587786229826457245121066174808957896844650702162820117261980030760554724744585922208239105121357724527988495082545446938650500614351021644056148621980364260855950157127053835239761011477520650308356613003388891753992659348551251485558418155974590259800876641042239406246871990086675690204111582749605289245174511349510877649744910989965769796694311340367380614723291651777204537594957441432843192945243109742583622101064436755316412670354041453728156257346084782791282443432860001178356162169059350695757713429847138622050331288057132786403185748986655111111237007531697207139518664094002493627597794351314659838932203448318461690587263954129910886660128389999488208088107152879562344552358923701742276859945315850870455137792741590598426348321205113784848102582336769140938080396801798043983749909886345705851151635842560020445571706404429077375289593488338940676071028253242947897904453613658372745453220580091864535343727137008238220386498348698812106587662999491112784599086022604632319889159195846328337220926420357593194637810184905471527132725539963921880377242971254220132354239902581515843130048618881862097374671081246757304933124247238371481418762487914879630075519567709392943210363340061182088364216725034856775819842866977526439702726925232099205676327622735576680305526379253469760442746412528425907490693315453032594990562929352168358314548489205039816995626482002237774540194312904731283998338726995708642432392538431293913096521361580957753139013225259780223682271430160847858743347562983008260109392727479078281770710602212889763090306764656075226093788295910907468844484088280975190295446069577973443207454728793381483266462586278643249010933990904704660429311759612289478340173137262789531528090385377063091322155229830430692504556492786632199995598555744788471168605491588633722074530565631634535111394981049585882315786969171687991566307502651880271745015282437620271445323225178709030547892803711035985063820941148333284789909231530318331659860256778569438508770377785452869859393803905341493998704027247493624062203172842399200252530155455624319760338037100809198120392643902434270217951911149039744410438481355704288658233725040485340754197507968937529382548315223062455722344430065015409217261571507687463696695037284530098692753011494497226080643515710788562573013075360240855032139942386834736547808982371889670510676650178443912621796236009242180819090475568531750014061127495930337662473019714235641914247645719474430218973531956392262907399813676408854952421284662049387163936698158344636317615918242570320398579133665963751282309011464018441785557618425715385363826833244314914642589958385294335813895815782949689439515899639076240383538529137996037139784685605220579974151010196562310053853524819769296405130695441240401349366455282468072299344583225241484864416516417584007799537979328424866836246681195192164173065648282170779242139558017253895654802509009357559583054949648966290104231530064093224746948024151389212837251707663009841724971033410709519021804993236821366972341021072562914185088507943747552176485047294643236015461146170637675182452306972503937091195923176395856652146361236303595248486274551467744772719251616878771628583938150872524155880051372504374944625852112589884506714319949229315595427881639624612285807612955043007889806182149320914626835318550553021317374160503774892401991576900554324723290544865939861279706156992996318294051993692662813097099808228259323740763617379249941475569463267791958290198375249851877786009768890764916859892651386083128678553454874635600979015320597508630332981155458060247259874830573114091008980756664465887594898590639972999278469800016459419055585095771881677322132816335739063456271430647741920220110506567339446441080978198505504745445496042426772348516882635664340307943270689330946509132601771213761653783709118219711889350166409728404329600339467907651899083968373184193198538928468914899054728969853154765796920329718264086249198983597454575659878185102022995500695961135870551674239270893795936464301481909817691121108766860371954832677478142102917095076932257870511889645529379007419272790197457725343922965179710932983601514922362123818094022351818699924051559241670467205196259714518377880928290819974805595553149230887446230201972609130118446524056721694922100532040635465614615548528887979016270562854582038048252919716745587376477069883933875785212736414158332965267940505408130560972334171971084993569828111061286165694643743617832592652853756421025631263810542808065060579432115772646632203832758174356695278616215814612550527823949217254575525573437260465486178956979248656433276511335577833572980921788653696582128823298615485950769317183601366960722620050581461156978341932579464287777296703777031729201460242091895210240602002639648804610076998994118017360881394670889257564068516117636901655780641551725135034639942977104948268475140121482180170153689143945923727133487124632217223176487369615937797343323121912737554658091853769179859590267587375214168273957103355572005880915515145535017939022863981606560123875585307590072828691374661447964223642909204118416822401761799397441024427558290986559764060295643339013284006693557851319343040130989263416557816486917388076694968126426549086297823016999914725576869473050581465409358458881470025965917500222673335804159342617923948816148926045537439600187401907117080216681844092126033541102941041533226314213045711394188415740786504817088784781570664336584417839776420167775246789586855295897666432967873060460401685533667967181360219964733273279455973412871242421952408597026341832379928814989815527762895965207516250895496286204290081232233741665586072146603258113526247170282216207275024278289814994811275718489375738808079940931572560710819399307606510529061236019712386345772878168863471809739107234862055325983524684842210830006647176273132975908746117737753606252642993964928734563327009034084778451417048913160515735508612905607972625115581603365793299331262218657664092924158573937837206420381621149276812765654930556051538433571512712259955077961238224350794008946533619436630907993223754785982427563147390501184165301795649553331913504342364113779972141434669321700714282471046381343206724195723834650191207589530791584102468654801096476990317758583448866410690605161851190037954650386562351818762415435155600367244509743852595276596704687509287550751509385596939307235599266929506252964676134675506485725310503131069705474236113654846256401676918615856079003629448308597293417967144745344034121576249131752936639741343346914689235358108490879248809737174101191046886067620586912071666381822098722495854867795294748699471134120177596843002285974084226689479404049595916432055571966446901756577166623044663090882533951769449967291994431312505075729324405597314657817272833341287899610898812479966931739949421369228155180857916467150249049119834372916677264560218205090925100123715081066691542279109132661416777308386643243782046209481376899769559235811837306171432746655482391424222674371398285554085107816608403288968222527915930345767092172826448645377434394998058954543015975629753147716822806619147111714504855734135821312853137176384046085803697231945687342129643339375012856109302860546148770629407357674646053200365637064803206682830602682287733888095322966028777910128545277094834071201720015889702890477857554168663419752886611003663649397328607946424720567712313013963076414048877061049639514688225762291702031956868847171069205081897135248221228347732538725488636539171413531696245042088982446133362060416522406992529395152444818886842438729439152561665529387875062322909379448076518647168901020695026790616297931162609656115809081143169623897119161409414932557953364404798925896027830828180933694809840627034600507775796396429151631882933415172152913062311323368532570301938559033938197332933193378500989444017905466986215413550956286431868835147654258849483289432440016416658242923140948881618151387335893254443770492662932338558472527997620671981223442591433004433351705634849308913435607278485260121305883969778965338355750396960833598595363230283005095311049684621796635647394188366072200154099922292780019330996918036200316414942306284790485968770975466452985071448099149952365340113380380037475200168314999809200559010025822124253495141793127332109766466409912828825807597760724659635875273258265499406620218426091401253057757398438118895466516104317630139217818868964764689241171361946720622876005022116541167202395920635684520602799573295121227203482257416110366146716135923643087175203627790093894918195653399962523522082666670237238674257309714180564329652809694923556799210003871950146870573350676750388560557671799690454979848005681307148320056431411777886610989533707528441263176372578245295452333799546401077232931751609963916983084829144147395182265470179878132718000937344825276318327332802386535453361291661683064454066598894196688235993858578866200181060656140619634091981134600476020321778952953717097477543383272848985742713749619563691156474040849241293937654454623223966256528267107771976208490266530019282739824140649197540363099613378802387540390491206905366670482203809231105910188520243005094020091094315424379862077781303248559723900023128686738787683711838008326034534360857007093785574905640317671189538944442831157413442768009661014180134536709363325903987617523947761788897225995407599113664636744405485225954732611473387440695223982128053635045349537777503324746828826091971789270020444559322419028195326518469630355343690599292993984154720311365375872668833276667678428642508544849158123382417363295648505232710539660792730739208403773933466870636967752982081675337517754439656720369253626843782799464943023482236565216737934019721757042303094231606020787504141626689674314089548870775955666799847682812226962310061632295073477531491320666668353096863802365658217165482824671603292400666360300624888123843645492525261263233009840934747845055185730997402795869170745025029063547018684134407879435812425616010559276097817336612631241745628149855585223139647881036349674553634094206154032961211292085140166527076647904598921966060393150036275361388308991847625612816798836305241936772338126845700814274811087297578427169447414329618652710803766753943423885748778974484075365940331712482560424959894412160884243704790151726266408904008324267220150755287899764941153801852770707596351954790909251429150635096044845812514055907359778766964532397076047008689794634556109009810568502131437983290610319408959045806502750042259369774117594035948209507128885400283656956761558209279532211830269507873724707061760308721691221496867814781851335483387226120153083054707917724773053430400911917753644309250427545354782870304325481019453733631990497339979402157430999637974208223611191850988872203395761108855776853635865372484300103254277854113580696291591390623241154409122988823264134033302787852766207302410136253899357650371070313860511537340332766552554534291663492093635015806627145038803980257983194055828494513600971920424238329269068682203247112640486848811064608714549097011686112884455589141936668818244031744751265712199431715298618683828829516592223971049380519815523037823913697774889759137697036277126353928712290405501348092103664133237784716497298162822825686451298996030846109437339761493862162109584863672033205356403582403692591452869094468225804735551435845651465331106785608481863016615856015244989407683182347154609753995683571133343887451858714462889857122171235533206238969503930308975718267442783804351156676452073527009509683138698315404991917605852015865197247914560284592046994283904692845820826108049005777785411804840029126406992661393436357160710747132944060800319626821298315302298836402485645000628627150741987282052420849480175984120848545926414211959389507158789796882025294007336296939972338636080040310181203314266767971791542592027379177102604690614211179078828972732812720029905000742081099046337886714747508415584926220171211222324807369262656100031075992807456088352831446968945052215785170817988504132359720908593275181036533935445784310381618097826015059290625473481358515403923216777376778746633945441912928029568452491030529880134577277595199536531970733632768579626774254675657432824534057125976317026260082710608234633650055540731356737037781233445311195790826556733009903174803368316524468019050459402580946134628824335184109722851979976922892191102210878640090668265907251410404183299788149840553728373125700093706089837588380712789159663842984859877082113013022969705130207323318649184035562696035907130968707826254963525637399813986188052800774135538197353851784174512827346646750238133689568834592714508699782835725377010237942757501032523812446843387867582145537850193798124103277023314805297290766651418569830717671724582538179560885321101608839982108245922999477153656484774258712625530341527475133497150633207431589280909847805460280157019254199849620674599803668443839269394913204605428135621418905051016014725196999781119215713925247992246151844900526059527255314119835842755666009981839757438882769708715529200890621822756010054032039212408838530424448748599277682261275420944669780870635633335659491809243282643663111193604138545224028109340045073613642152491800459866712224314344089226513141983767399631518139051897853288335162825772810319728303431257030415826422586286529275725305591937245977582975700052891582347837267385215015661461863275555139727494886154780018812012441062383298887039663341591938209630120977460547122594303647318662456460057759978812828529541514707250478994413403503539306577130610173223141806756701491548397849944177952114972101770621288302842258199107819802442533570714451524886277137618237662125401649565994843565527498563339277527392098979144019582933396774673754684898640366661147599400594586339554878697992712672260177958116850834310915202365698655153837134222074068116685618396960257003733343855729881433830953256886035214474026817741067183325593027665638542824848904283187797072539168674360997933215495577967996999223453875417036879158910622397215779241992324433846147354933597177100989145762463948755965517628041037632822088161892350738157675631189352877922297421298844385614540788776018200759120582532707337430006550639718350376195146741195695186993672538358672917594331976765889469486490703934704224142136913723681076531529448627363868296495577327426084659243608907568197583802458322165057395823199324535562605485912852601962160614208054536208647914149082208131365159295579447750181288924742719753499483665893822911220134614533243433106193955763895698060344654665722442871686384262402871047584704747309759293194945000418250746024691412275957917613068965810458609430424901921667101834957354355482085007360482839333021298065325109692585862609493933187599824758212062232421595163714382132287026252499656478227279225196331169714814343617424087589039181222653625877760378840890321489127775426898028257712791406342428794244503011300034800276678900617926520941037985788589848092127955007453171390142589708214079623168184987133639436495878237274015404757040643226990554895047345522995281405325830435254011545052560746469908698349251955514022783870546599019483173993489307916355998643891765784834826004345272668486200358870015963037782312700660014982614875227490654821891432240726955143170829562699402639391398771678574190064525107110977580926612959397750933686543381030844390652094950590693376310558089403850552227779373200635739786242678366266459969865675888971845789750429708343775200437666302001157270539605855450369737351530278466367481214868945827530571382530934269709799892424726865079636553427663071506600953807055404455791955581843177539703028871572004899655654527397327083915255876728479482595581061174880268610153316249279565371354587772992946537767748146799977670969697677890293767085044010249561734915216174220083253183702767615728719585631681190509728530235410795705142597602023770910702886179596158517831649941700981947193668334860338138474252451023281276305237745805832782198493210499512143826344887893345318723106107382801618130466096319544920492766682537354842485135078329954207064298807826981941528275294000495833640277324680352520158014730621068918429991556916561986735164560848742527561908771383213367424998172342436239783828994282558209528584200359248707128425988959402265617682691940491546788992565451563586677716452253953741777286452889567817380168883856541560028680307236666373858623504132656093916504932069068642028464425764695835079309268655970851281324463126206884932169624083185573783191163457374035742706937280841990141323844341705937074429846157524506787420148009723390040950257269731570411234193681046160439811546323498659748604566292054696261569985684860642728535955772659013605078594745420692990943628524324985913731204651805837311421828478133816483349845296512353790813248590520609382674049364005350119462267196694256346396668341698033405329440653240640550868915735862131144535661566915938767685302131152583906238286834013792549948625346541606244686443893017050071616730521896043688995374355636597472649896857813763704599484949083849967150409305710057333073159739916523825539001989524789114542564671396445774179293142298255763352006475597057612007807743006613851727685283031423574647840842197491611248637316822181677013527330205410878711059113385476016054205833685965627798073198920288144881554232933030907452410956712142783401938543207486180720687885181767461441815373616741380074994287363130293415717596066184198865793530546877301088425762915736743296524232350350672703180359154183251813290024195733699763301025423712647191624541717055824688489340228375265056883163939245116679356017077800216295721004084457646495252446343525935886390964224524961886979327500961832981968032767629232867416832597206501340319554436984485156067691788204758122521946923439280485165775560054073681580693579880450956062176668832925413954878507381687717454318379381980255111115138384908405447885996702395922305757017590294595092894424353693212453261278750200099305563536985209856725320573657737577829575444618306934870766136548491340645422826015483504819394532307492338381958183621429677118852621477685668216689611768973698363549016854232996954962120549556896569608749460067987000844834910170159535669055718922983723323828886360219181518157491824648455165181607430762821655101568995809128744574003765712177318666437397489407528117201810569295293475922045449349429925934839711227238588850990214595820441194248096205480215700961496977019611011094979131264769078649724906949530692474585488918657406210766099807658418133191445469077481604401641403955697727607819048871693916684284083004095784023439593473954920868084838819709777847748409033818461450308167392495388310893286711496234841325743920142451987140486554863245860606507516184645834920619140478072674082393149727739441492790745105963137054719400095467577363370678756863811190550257390737124908084843947134443003928768704210762300218559695128637759219670974651933112942397962850694301875534372025420930389975837580868196737010323712832786888317101360191768555937130915662224212310831140896319062328589440779555534091524783584934463165280001094659979832489690615955911803927278100799828380585890898113981589041276641235375057846733035298841984671750846916933178308750204595498647906011370551311417387965538382214739069212005469144910412097952852554446217817293990098071563832961228282786940237521534281594419189724821008049288312242165858936175747861561546915968892796952404573635265680381223574063828200421472150501887561337919242838870203696064941833876735254034677736728566477034726748637434783457765044056188414244840315152875129530561286302759554984122639219210454166730173220102480281880544757262299700523295404251101068508111087648485384024371096656902830453641753500059046600447390567651453542360228658304979139480361672752855411813559033928621539927506760813272116770490032257128615641186596885472957512489194480600951955411001619491834700257042630448746717813910632186473563947061008274671952277545392607023336590950437972622470694829114132617844387212049580302109851229466126804718966623414474400702788709581873233441802554673990107368634394324068229927327206425340980394232912249239009293455780982055667252225236138589240283935013161865079856845985449534175209170036925613248115555926248858338927701717913540353528754367548428294542462438906954796616962332688040296514376112654471385718470516950060312697341472650818232942357334217600406028077176346551320037118312360771419972307502616138563974661441740937066079298408589345271939599930692396697031701346721821426100965024183542568666278517023106830670245335475202826930210645379101925592862945963841037821803641645894004697662728542913859109668727107394473749805461456345058007882299921613672728362517063122473780617566919266656918757871601870662368707859082325959254491538252901862881396538885219072312832723870078864894859293896323623769416618395384252588535965519852224289502977327016317285307594815001225640423903745641841969562738729427180592887089834744965642994928505213554415696268575380965347272616284118940235436471106757473502717072156620674802582899673885174971556200166922895188879572236000089167159816573084774579047953829639118529048615587660213560909179164386013979786382840212376229081663399283998132294708113017781929377200561301548531959042911982462000780426473534593436317815727703102451050402340639065716973312581572947016461876401119286601974214247949001841261879483830271508300949912111090960474025202166973200108111265456438897682292151293063964578698110479360459575819605820094908447199535363220902033794279100775081069810155544197087787629203447009938434802472407074628822926528915466962012261257791515621561366472526980212367702697044876242398366020242353548591522904215671200370537593710123687851975575149125535059451120257644355218011597214530300292973090275988957766992023991983984411369462034635322942959467754583767361241789182478660305643331117077273221786656186415331686685337576230986655878592751158672412734079670598529716395064196187242086213178626921774292559498484029143482569126243520639735851615141975314030296713995174519887549706078051203522391211834903165456362822092808261605600548238077911572457189163612707724278240723810562220758704900552432268247852683268665757709032014235480947924047292171424300656647679894165171993323414336371318043125374897056751137392705684787225327704963529285220801512794463629680449066505875885840519772246003710358829946229790383668320404853393063193349891385371982463254937092715615869439372731466730324654492182119024147939417691914340622724011186507915000565265804588691886007886035240484588982294787733108880263192231565977377216084522751991514154784488226375948193851609660901578281675506181371585298209625366488689572732947587036142235910382237528465962009358777396048029914218927998978447595192006804858759646783661964454778040184565210204242588385395797253132949335864689389087177576007464243276742535852824897986347509380970478810984671531619818970479378022729590070104548362034009332821368949696957648618201308807573218094500085945498496613854453932267264533994318227595110934060505035154409476733432780586446034980722702215872267421447209668603100532792647450933441588458974599761644755611790449314299827984342706254534606564990818703914922653904397825617348921620682982131775832571875988593634345160018118318065208963925537054135358690512535645123879465013137471037235807265696836344167470587650058160842031032999772734012658138943377550358727619949913281625926367947645408600674679720040827698725303171585384427198869529351672465460455554144950486721023200657196576904764321593010212561180886195613881265341302741903274632271423675836125939382839842911302963004365300744022293318943690301728876767104924787638890384099422202391268717509558447276444851053180963788936104666103510081173283171741718132019759709253106204726113534785996543702799668767610816034338222609365764877170279927581829233224680115866233366732145260010257398147203746186841848019471419934901850827794373125475093574409841727177795537537806971257070707114098024171632812126374288051157440478462394834992151511608822382169702385489305746472393728298481456746996583609834946353208291055698905107726111859741899294473933694206422333577005516132704222529304589536539457971596471393210288205244265826708412933269567343819482433746710743432889779627512759439367317843447325536162267362198207158129469240740144730503780253341815516059316831755467979662155916627448222365197716428925861307534575926778162958351614638799480160549320088515309656902769970044650518115883804597891036807672999919840309712318764093705616123152850944391845532652172710457402741739122534074674828911181135315156300339943478931921642225705466191237086652537112779134589112910961066001515274637598942055745128149049559925187810480812812036434188405742169680706894397500611958693053036274358496467317373440834765533651008453375525116151304689646188993114374613386001144728736393709679796894352225939069552730637371624298428375672687006074448956159070797903715013066998211402218893167547342245889511098501559393738232717509026460345628268558770439949285803176089585361801874646483849169927040845124731255368842725191055854424084064057670506178658055255435869561107921229354582536651269087308331126056275928293680312684722062446587359977012615157737168723086920735460544942549090710649805343772460165242713464269503182307082726171093688205615788107969145699885825526440193389947875131017348606075240583401358589305252431600643190319543059631861292019279643929377675611867046505471212981955121396538297232523469603551376341581149086497337585718955036916173693310047113386229866487894669876038559980799154259320645078612269363262711797320905453545044822656040366361212776691397135998024873789067293862539133089255978715265855766966217069830333236318072809194151768833493923695454013125101957927013150895040715049504779265942930438089207875336632579994062217309804706728578224674851132165952850410243679656797348861338236827352402085945202816683949291263521108807437669290540449768952917205382816746181135816284106446340060754854120995199936776935153288832427250979279411102126704726788310134531541283039175842445888856093834911520418297526940472720715697629441633311633566946159261315648110970272303050929486629420686105946504252625432835751709857521708988032954780033076680699232104417629363667579711288928908295263194620631071342801134161558010921865478282898547828988264383184653232828057242671214630925527619912979218478098544239946841088905792749633923271176069492672182086621417806741951730038184583724071243501391088194024695808006482834132981814983384949033995566719289436795618202190677035551283924927432919860199773166260231506964042421878960873240273605560798054311385524132067164699792439653571787602721867269097047825947811915361547790929116682696214607809393934438836194003126152523379809934656465259458184289211310813462912503264485963276853394273660790050304833754690096109139669116205784613338989525613093935670739926313119337642489086858519575490445660605728889462330930221283875783763364297237851982397961523347666892434151883231075986140438597776020305121252226589892596549126919569400713008136312009407526816832558492588156074493144659843739573132644829625210137687669585502656817053257054922287893696057153675612009238899476973949765953450738591940260369664255602987483928450529929080623555466964038663794317004548942436178084216435682974907388329526249276247080069699951383245649069024425217064058994910771513152646147479947338123408189371859681319112206705806016429463811630105520264143647911871308340061764538237638379823819070309738367601501381323210732725917532167330129575018444342993517853518466292659768958883106489459334393334709990311564476133517547833941033583866216033100121101760830589387536572076510451063935531387872786273091921369939100880864727294174892578446059328144494060595354096125598504396934054841017821647299959421982206160310158476902287142037014105412975387599063142992065605628050619705682454471522009255902668694512165824289491042670374743501492618951629151781103892643332855582182313967804701690807253799991693028753308597443181975081125913665624834742591031171972648080950977229517549044751769669254872744609020354838451693500127222696415429410544900902639182743697562636385210575999539583236929407804551200301847626206775814474796185269030680584008543414981197937715709263876341956534102821926578171101777320714337742799767631612897407862729780519897721936802247732772711926626088560482923068979265252138418926024318448439247558919029963391078475590196972293385343092911336189523773741653396980023266021021212207176641853251540575339383863261381853879990988993158230115521240900540531630693746455346624103758541051712554341086495673460198927762113173579408835535749338116210742577210081672503764356754504125635784820112047315444404029933472641029449721793701813939378939021642070198510126250188556618872497016043196002172445645059215811278478507215569486918406058715774041006770923887369256510004846333354271659846855311315128152682254204389420411098452381332288235224901734748277066671754907589199210670197675055512295299626982202754501105024986478345918217894121310308232637867664344697412744951280808760897513398195874492256221183403317400400733932878615790564359725206830884879339710524138081987437307742760026371193919484531333609175326008508719366478807080312034349459047694296371827352044400517995097957243201842897858586172077563372928292838893273544966729334313349808130940669597273321902606496394034405709999077790464761257128730316369696582833249008582462253434698459599141728849749746310983522150208605006260666162403882788827199618375692251310613634013978625291590061792673300254997171743301450093074461742649971228042319593075590031274882483225601122924431966604305283934800526666964206133991757820202955493013430617521927117213756882508946148937658963775268888473315564592151907817249420053838460752977688273953248416900066622953077883375299180958366716094688075180735442692612439772996973396105744159070191491209390005703672150547718622888041861883248602362222907677000960821876765387230294693806288153455077157112990804876964157040629475331584815107118366355690241753275860256444923775605184341276108771074969068399973632959063028646632653052579842824292290397540126823014053370070246493891159404892370705113088608821391642422706145383042589006777087326095217074687359385168868388267480737541041981719417368250485471353338853455213214046191630736005290117753804846574129286923210816626101724052603580814018479953749153242255230424378414430651580220137283716554536582179930321957677467330525610450640479521010753327197550782565267916800717312517020748026477633833823959424838823679496562243670043560795743595333796008489106931813308277934636462730940236299383299075515684672009387800850662278351550972823880862134320361207946184271715414534832939962889263829126793698875606224626159383792233261524880078126740072806144879665148009557083019912589403485174703968357199099581198901452311923921237263027265133427578254805074767114571614629804158269916546598889790635154938903002557503835465219070343196503213415132426379956437755194718644793859231237754094592471608641205393410512050931079496851209300695206677190947248167079152247366053157367326096311770165386653176768180857933850595817296892039101857270126005721491643030170811459325770794451562739146288283899773352768347071105718334836786360575939185765690820437738567980987106451870231135235896583735326443142214570978655011174506819651990249756948702941535339299698537083465257163311592779065536401954613686207422096149371551047739164468848762535750023607123165834326013449405203411066533621586452469544882380193830832650559982024020462942113063379677281911565390405184666617211896879856251435816475126785184209434853313591799102259858124658917085962415095540484019586121881597190650713218332378649446722072362998189637506041761623549394051603542406354070380495534997139196719996619574905486088416793788454982396025464728717257854729187285234024138187754935401790447702819040790779093339372094396502909019475531488426183244582577658011724174611463842597595621912099342095113333030809736712641200779724355008349038587950004712533510007401537897993461602053659703589287842604374578440949871215889031092628103708596474435917114309455025099742261997864724463936287790571971017210000549123757946409678538090983542684546556781744006633581358980193035984260713076491853229025128551174657685205670540684279133515746122130428194342222972838941781874760136721445762232816073795966778429725743878363309818818620826600635981128588128949054936061681820691406206603979017094449022054741233796258182882506299016521829505765163455201782241374020910386968721410381485122255491396345750636203521998473762433356519224304024757450041245285107504791938710130052087340630905582110370017135745428383050842592977759381789478431992721885225958748160767614049977233842209225119931458369923728592226159005074809312917950902803152559502607317562323558248356091287298984622962444931457565452001075018370985046955116534726535084616869432017757103764544525599410793879643623795793361169875016837029369404650924225108236576852562816446098802339139366284262755063095630391260767116542350294717121113067991343212302228528856294807833648429057733652879120186284458513459410957333375728860172309421087909968753717299203391265137544290126895169998058592530431502991652444197660886964631389947664793374084935590978016972683099177367024296501417273781029294975740445711519165537605080109628190631555783927914210904529929424007539849865757886796791258271783990111121876465392926512645128165584963933319385647278866820364449598475789653107467792409917082595265011687326151564607104294507418951060812136131434549827051339087456626357751782058166073550839724141079271117179206452229816760052916124902136602816533361571172603192898049609653536142811463522330262357524530283385467124826562144886025461623887236140153575747919058552373388579729944526538285106224073570113196770465954344928444035098315094780080551725657866335479783423982136151282391953719545085255374636394556235535048642633031363219589599826143809411799717176623769854081706546682322859983993184363744887829025882379901155617309875465566886581683900236488364968394890827108264548070576166380390195108111082958260069029895505243399932925488191202531179693712134540902636875103469387483128620698826821454255339572630336538506468271720766951629039715548251102056491857064822899787690759332851651296996465688249361626286006512195386522348925132973239167462755955531536145015842700263850749775934687472296330172589432353246139932300732370856062023399448047242967155533206700981650377773840167269987385894005567438880444251313325813212475925560559749544784599112801082524118950463290221355451888565881317212281935364441841516702637460436045695002923429733301945979157499258670411797115257467449461690581055184470106803560411637847759542195139504097036361770150047258645858009460446402909928511933704327132392341707298259097001353892103928683973850159748217035719536745104870006234042543001263635381614463904029743395827443955775859397001025660264841720353547953815242334193321541685075808579217953151378881318027279248838364343237139368181639367154819302964921315014699873994311461360591379652240738988423651651262565683938555318289420524447966121008412741800975604917163939261544611901434771234797690012178241322496026228022828245581183103538756364964284001019635193925173092604951746891020952728182855793500958561469262625778901995454580014303487843974784003470735482805193114426660544100767271076413088320197725434459511419600116786843105747379663880342612907535073246362809225072793168620494197463112670721388085346102822944525858341361530158383269710833550329656478436512981375444461707342679898621653940697192667327541786672847613933761893755966469534961240412409683399805503651051459917839521156527234436624908006551874484336645790658671921962515628906175631904774224202512475914043741828390680797482639541431639118497579202423452763490907682284885803645596531487964117427088158205586423055683978446184003438085513717527374893715041692046251072377006349959687071123064853319156108331148793968659283065448253013874188024688860198987044682985367888015953854120755994521053303354990463867519277712662945572920166485985149931938293050128960802356617759878233704330538783668548723344346681628931736554953731590627410297865457337708453534937145074973230319568120093810443917209017617907162202668724042002106595566607228429330696355915700690855719434787556338446679499083744776996600121119440213879523464269200470770235584446627625371257587200954246443175108567415995621544816269445631302177499480664712229508812374242713281672991083729080018313060779164312799158443551128464603999888736188516001707417291526960120765929329111889112069571903626948390803394980772384593421883453137417164295584636779515236171517300556276299880201276218900768557036232501226477507435688060898590738375154484801112556716481206128625403084654004539859693281379675595600080255870788001741296431002219895631365575307322128960555553006693284518260530683262235738250071193283656820126547725928313710707334698213231242938520323747372231424512593970264491039015630191879956924663899931052214900597413108623628260914952868401387762967828169692320876799329342175686705213842776629586944198205129383053888030824782656405939318787770404536075090673386327785698040952317453505298358699422328618160657233696185502009613949620463563135599561021699387950034156298313586588312233266977279368664851976637686677197132472792532328008615254152829657268246286953080377632823654560608813102068326033880531614067489984709811009619234012200010780094841927693325068072031978092311254762306338642783423470125871743575427651448231314083710180906899907902772278125419064558000460815265197793480583199154768287117823096717634883586951310520548589623131738736451362254638590703521292392515472314953930888971501581299164436970055799985283293876048689661026401848614405444893258606456352703655861860997962262481435653585426935316833411462416205325491841405376519510905364322214835785754878079333075089891631758751588530600702066902977240812331923297509282201528271734640179442429650652419707597005023312121519612779879093389245054576628595849658567538892545151382607906874589476572301685355629039980677541952658825409327385126693635952271186361770407003025335133581421501514644961831112696006486520624142059033505657161823389700636124821356451115896810284911161516201952642893182488823409005066570321549890650280390340069336898674050886678466938793480322200228108064371804776804453623255585156089833367525387327592382606622078158375060449967298740629570595669423601070018520885230399858504078613884000542427307720346132684170877855168002510281423176632833485140107758986015287862059469102441559598250736934247961569559899340877497005501832374375900873947930005317298879126758993244020544496808015229924767694869774023484008477067745486161733376846942783141093249232834849029864602831308944027630759307205193880332275043064663006486297574768419296715540354591098326516972136245592780757876997339306743992637875491593848346572987039069240144243991010112653749088111917885627710999906418729577971198753398730200881113606109058163611119358082992867172988132242358532762742968470845505091191954881869092448033806116598602862666791595970392129305308289218843949050152119497854213372942307324436418182700552057481521802137554188946264990717959049933768068169604666296717172650606177444807245205837308646176968827414465205552037631532267984134748090900965681612992302540920649062092500130991691113332342069872950919262262910771045434839003935585222665039796376658149418886256985593247418358478514460681545288677280232524938690568022715707035325840310335725662949430166165901356127088481009444521948469179563747104667074251434647136100680329489868888829509710578791118143642607663444106433696438533019763856715498061056420688307535056594436587759663491378016484208753118569260721311375240196906686905910252841204157540288181054394987262446895494059306980956957500074064898469368956185805469395886664603373054526856589589804753792472960855476242448759609481002305011800620500923424351091826601466514322562826763545954941073763201115232160469143593111890987993004543263494320333474544084140734757499932153610714290383898525782652039415499826433031904845138660367688472385164751239495231918887656257789272173574846612949328139386007846252637508192786224139487245401043863173881618323284916499340898533507426130617723171466719519606044292543091141223172759796713209847966076552721436671631533398899957729907176048338087467185946591302280497640876989257864217761378920141154620143780859726361236887683706096171436023626664354134082474252900610342768039878223274828380127528712947297100250825075914002093152026847785577186355768015465008645175227352840775221678992945250651076908624644213002387400209924073533155034811563717696913776109135150706957088119992196890217470313114983203357258130025861502338474256145230298714697895320526712691698478508110847408491914150072278796248070733070088993852927562187484797048060200377825114039938283270765765926908147535998434322369150569222545863315009195513934494407943178580022166109778099087410819197137814215858140397747870416968437835382523862828357729102964951628635859099708679720190823849759224681692314239453371905196884568449774471303391106133541036119161634432220485270376013997284525671711112570194956070906375301107051449715884058282557320647618351118109698205078613021061394125417853891291094569064481188342903284063604663010354644852269658285908081350667887803080927363669524665599046743905106891197908140378575847392445641776583229445321876909848503384052112633573402032912947063257072633817480537917151430086612249539695894268154402446832893655300622553221636522852608423193164202901506613135030629258152473216488758876064656659564259043253408882624115958343879134849925723539279969603602462000390021581892383883767078516885229307011608159438211149980745395901584500529638643658372914505621469014701330732108232671234073455972449948561621804049571522639970587687543212092103726237108751832163231239437337235894433927152360643557231529085761011922228446075668695042153552034765223480133073212803183954639918280002635222618469205507858307561980996033983154620839654307923573898983651184461936103148915584168426855733312204846287668221850121174764719520309803587329970725261646202062709999323091804674657651192202141508350312855701912142126060555731023611059362722665809402406294700277386220722646174001479060522230742526146186697827838624063428044459164296462183452393551698016361658891397997944633015104074744727897904172608007194776709373696602099059793995452083834934316714745101651645552550721337030583354749258586195630486914113349678994649189746865559191867468502665369940466733650397376556794478805385571572671474219524973524185099386943776204639469409561270254903018024930748573215202198032698632805540009195471089125377876296503935505744868673125926845440695253719595349662897278459011362799782394324737419182361507121094843667820522065062615610646939193609632592304942311343603766328519800234041420079766404123279365594616340735188115133588757443948566408786951957086166631495413258572302364296560631742246503449883102903156241025585336975855770975726011271250198102991950623579009531504430427749549354891742021594176019434681044857879885585640288340159799950565944811337578406421397638853942832357658892633324884470800391092324530475287785336127407707853070685376122910125024114650090238821109609580364226478994823203883106650546244775745598479627129128530693401119248363653450297266794211656129035296749450128556471472664844103387525906868836593875918420501721133550805259683554578219931358611025526226676163309260394748889026689983151057351664956470515402139989801531369305186738918673629195413710589642668645521704898661581410246990307459911869793662425526345903339871087585144115651580467684263508323326230045060216782913180250943929682004356346514796478023820109570135066051983617563218023458383992803856666263669239891123619183019961149106978026182013288826983791183481858655827002033663876303379817504839259258807647395607064694564393187529301638097318213157213004482061191088701449817189050969276795119405917668379519725129782470892459037526643376463307379473104999943998155174236943836799390657336919567753122572013417817431805871722754118490783560128096164922747466089637390357291394429347338616607261342319347934960808707251901048094374440958945017173245305376334094816605927700474077188479351738835814100314287419549259454224798130311462421219762920899490566524628689901868957532721741482206239385561841792979524052206495921724227498600510837622681957495382850863479814815688404058369247118786457476057097942007248167994885415096649897402606154279995944488559042937004589520776598400540618654969121016223261100529078191341100539567020234894270556232092633438980176550761571496381920047698344101868634270552704060045479970104821696767996100338558947756362110003256015122792829793200281348592787032652442565765251454582276355004628038265901023069063488134555772478704532464643139605531800191347550086011445056664133487989798795129848377264930499550524360754565603762408695676859332606707825055014737288968004724397039541216941657482765852262756002820143837962517008034324827296981548065467046799716318164118986058849136315193317893652733499226245571465143649619399646071562868362541300299860451751060213783765422520145140880196089472839050487302831412398462968356718173142284119086485155784919877989353232021425827514222817154191074536961770221248544698029589242077456478217837053350906494014970827039231114806494929792323029353807700672764586184117642018561324431057246080414698983109751777901824373773610296534406120891915434137109184398353171958429260362931316685936894974761120718083456005556622964030518166624326076984926747281182368271661940610098338087023175754407254569087214186705750562612455985838660805762664157792366049389859164550969938219905573235593756818878999865667558874010051308878358444340913339558479814467653829394440900156978075893893736692249708775462149673996448683514749748506360137508415117331914529748582875642619399516028042191003256666684083516046777117477151211660529301799352607735566602734984804713333062829217834423158102614069797597050761165198731858918880311364570807036773564906682310756627553881332177525673374342270846930010693244509357484363387989128534314447666824698080232691805300389938577262129229413914187414194694762797253318512884361857266704754996485655175835777258750870534245701260102482782322765968725227815108923091942453555484369203762202316062560550493046899653692159849467290274594101683993138655539055715224226657569556804389119133666545797945337556052314485266764343289935642668570498792984641443122237333109805210916524671928654388558614875794966454282646170181781960515674582859640171168951192969679262262624656297936510169736557076170070269672926037995794410869199903040729074481466612458584817379316649515947537080346271436556824583705653828379439838623096795455156757758445146965038125074031319274158313916179656905675383089789360148486057577688909128320451229575898159530743276095325238854757091638449903543430034084928041355879638674017885971796052072270099868999628185811925102781970448116508063016954500191327175342199173564214099534707762779398539968276586582048903523629194334728047264777817066056153779386419513626220685310991923783914767964182334579727840306003628349092619732860565637028024457165281213645648882460501941120214666342784193096778632419552517228086309263585182341212967778921252792224398342389203267864332539030486077712076317579882010700459228280316555594886394619952904582551867404262959896221342146563348423611650884597980320802637449850657702793005384023753011810734057730517602637670211875423340988392681894717651405569889946237191514738820113291056361727620608069008226089175223405754283179734765768704625046408323546354125990647531531346733418894741123555843773554438035274545417249039582729588130431472832575475356842344762024198248584647997146018028540135309067821159045431448956446001052234118971586107842300348944115648690544383816981586414263224706605272322284925375131773643703735490992469761513278890404924417480153700425123863352426344707475436092588095356316540206904873978294276002226473418559049424078482536249792234948158139718797880161447852132438647510315817907490292415467532201720942410187273303199880788077272866038273638154200338140317476404780440534332013655882986131178813918088317464523675916514720851591831523456725691402735495786765875954732626802562095490510960930383064953632478896449649971176881707606772190259748688278293124592149697202058932217634065179092585425946255402877555830108818736174939885026940722058528198759987665754544019763860253128402622443749385815639027400364602720698201814993305295090771615161528774704815191659855034478726371935330306936380272060171324348243626693793028651997497525741530831873917164514551435746107059621935563771979373956188863394616559612902490512980952524189532510449216548390099015128648907257430102822665198104077336243727865084878713248807844356756416125211560500778516752903532381655975759592810341360148584033717020317307536275586752863799143479515202326024608309174746632186177348296060468965296083560447651066144754219214249153101516151096433653467984440965562230635956955368350444041075882041208347993069460460710167380278552035782180365207028273280900283897429094758948237538617353506027513460663710266931806430988152713366199165463779337292450964605025851890448274077464840017013943631824611506871402590575377177638990291716667610856566578643845533195816356020018208713052809893833273071351773407100692312093349715086328697844101429418015294141460116699420435390280867633007962754746440914968761857055178930105876197829105238176440994923449102867069017064551673230882350998416615662088128618817194347855221231476050226600987658626193897935278477667665994379410795556775923968492067479288606502796692787288340837897665425740435756857861706000332651172938348339483940025839027817565345119652775729906478862651916352860093548235945376368362022909252761805673465464787408667821977605200190732968120095151538150760873658087595164345525661642823339805805576602133757768850547430187524995476080655534180631009953555965441896070948475146123121010398086751170471713236797826850404732139313386824649906491154412462829215200275248377208266422534553746534733903655137886083696072598462194098990244353837874298960927425863592242529592635749543150835864917874788561469933174729258783693635822391852571446402803569705075598641865333449013806396098073171036161225744969700067411296290508692760824118070175078151734193876869043726836172987133174960290883328559252159988584218712843172716304874500579043567436363106470099489581565305824949346012586665056866496562530360000203287150888814990310070222680968729359496048140537096714045452725582350380540919172146222030655158325598845261184301397561881954616709569126061629105955070811160664555308662085463325505593470728939966183887722271661585849488785999613038701157981648653486620187018197161009838278809313149264612040065035939091835661994537245686527504898136764692886055699987111485585939963568441414476070762756660340202219890148219411855088600763610647107344992327490630684353386795967402894894731520943819641256121103284064958465309463528057497047146427498263734800502097249359221373144100203626376496269827332595116962955846357506301150746492229089659526869262161151013937138243430729936240543356625243839075741638060668376838455600859117082630442155296565199177280653798644896332907374671259634297788880643503729012363053004772506464349441756508446768197943903511271211607656628820103303985717578761979286132807637240493105392983533042660657536689454804398363572984670826900488491786000539933600442767586960452008166189241119666423717851964268011593185176306397194339884764357880308228267209092306829767145569195857863714796622011452979569025120819504990927339006368375426978603529842058041863271746700107315865921420087612060152261526448869455095805416478285421333260460733043355893168990303164197740503254434072181779425212129610504725165461082270339495236936385139415484897893596722164200567277766324411455321211508317138361059136609095372418540767879763551337658529007716611319181110866685204640983919249908006155174507723241278545634773354513317183497229979232473219362675769972515177023671479518629689655372016745627475758258068660797808912640066511013154785316377012362457269294387540160618646467041652426906414828535863193048512439474832639405122645354299211166023015041356253338268545539855347917236447914482768122133198868965351625589111523254727473544297774340976937631999567009993072869471972777950887666601058991371936634947971412612208473149661835026787522411187671682576862430482702549186138290990401174512235081088632345422091047264224814298237529807726778467444172481291435414762473646780683351396134979320836720121282792477886187972466107780453383825840978695436859607043581712425255314529216005570021456581812072858947293277593865916822676620964847983964519411033427498742052461080700528784514791414650686506115233571404267045909634203594679463971314278073225687202101911224621315300766001479050575292346184290955431726547935932512115837107297812744196870628738057541801559167402909731154127805417522958838619863278193610595373948871917098312263416615589777385973506247974465277687426894456255870922721162635928965335846104061552449156210472260434429292249412966867089128871863720301723862259509351749671016056131564591107024443580692952767871472617377814358750328783919847115322988665635512014150518026538297683552946334650044537931585064450649803804933820010154953451822875013390506989748201741848944515610609359696211940278010542799738368519595260882150979931826538754235491847974282551690420877392251161923816940375619268754168823045134586330612764459676165258253366449014067777510800289223475299506780874867884780043142148067772984845866057801908817439232733662373352749652299306072201859097991520639749670535358962081980211479724735644964554988223195417836779829700598602559309594199494932580126514409045195405027893499892206285473770089721452184243656725546066608834716071897942200235087804135106816312301013433577451070103444237090377639145157442370057249137273828872385952645046123366647907155049437141975509788090142990719947182014448239103327800835349875988892220314743613469763165903461287281063681785027815968431826177342493026072773098428294612352352148626561490062702716290159322486205197384665359534580650301598050082638524183248826652855286089685379171969193417344937906058502313577141139319504332050604897065787815148726332075460072556059206374649726129046543604688193402266398894760755895446502016686342497634564176345020971648501102944287644285468249237008324015916186896545250744134449932356893704093232892816966032995595304220465785170732345999403424150182885955370633069286162461228288793613683397442127420673153406499774061386276887040468837350222464478458970055773042526546857361273813870438350547726169696836571380238027711670412417082295535900272192332634449041686457895090224804595581474991290456676464946869461194317312264790081740902974077437898833581107477130968760526060985647441699679834687735882733816855225185538459149673085989047378566232217379432483213576818836390811253480448214750052570063088317063263937592219150297344467528535025719923782003624386421393413835771356593318389119732851289702281083442910788710482005448562310741530998419417140882189732968321271596758399285430517556435354886154716781489913061561667840082045395998792257979907527710965010702067736012386951674114064636514560015335248391420900832501067422030018098970628362568108905867169471236397301212865920353385301960651431421153995022914988301750459884615570399769709662575587288704731199386314453675397472560059721812711242542821262118202898157484908233849655484298150604154541718200542249324941517011058659446037014179801775580753912082913138647495594305023860275044244585823690654878875400530545513729181767029984308364968240018230907952088061672130574259655083515213030438859790030604364358847881975115897948739747171087822505871784592418002019324263010984414870446960528536122723230673100588485808120183609874774304768291100454374272300387050562731548241752647831380954514657675887343881843601943261457505149425008031233193015990520654936308875632883188348260481427463452056781985403997970029743714482751187026033479844138652490074556794507121604078040488472446428441438280919560101078518123669823306359968659190304965583719192629461332857836795867261018474590620816220281804774227685842063420487209562230943906714505587462267074385558219717046801457102058860618029084197938326333917319947757274858554681965941313963384396413971173380125386637785020563532256821567133794401120059680860660420163642226678916849123943045123645643315747785782063786489270568425412208874409208172294102496142248660372213668980114193370566417975203623364917592981723663123409239136052106663906970901388205085451087638591632678115692844151347863144090422749018899190908377834972194510033075680784384498297811583653696885466004755891892892564082324819864361919900803045390044707856980072148323935070825937046956927676433481589897424013775725338549249592450191435031871306141071179010551032085794922572884551205311997233474415408618159763134674267389713725230722793922868409247095986345645226738116137448702986083449017780375979873226006864100678227237285428372049630987528491002826908262201505869199408381871436268493422927213310733560140477470941986462797856593331274854657300918071367545631640263511096998963751777559155769623501947305659618086624926962170637368274222879481264623946005871611857435668449847335850908964336750503913065400982947630120598316793498341921217973348778628405376281769193664207414120107322628580289325599297018588163651074422391006724498369131256134654613446049485838109916433812283507354496939391764071704131342203090237896047088925295044647191125135202089616492006609174251711287944514336064851214813342211450348490092436816389863721222744984784148816042836856664606545071478126965696822222196565823006574894678969793851303613602091033683147653745764561056344048243796556521431344128351603411868410262823323574519642782766162453865754684055127444195026611166818719517500051360287684543013295842046581540272329028785924509766920514142209985393867911551429426395463650475576857242778747248542073813588338478948642381812513601909447760804554778350181123191499573107042618840192329409629024246540303875309453568561527021077021340409263094475555311499450885818774066788626183904918773425585293525807648905036759938532773194012527768021875466823030681018139247787805330325470792187779769789282379026329399651762327599879842297363529631918815040222877331530128556379353766642450178888104994788418853742304687397345542179420730744145254484120503156195761542350934418728695401991937048587945049578474025461270028175800514647503753808335529864653715414215670025355684459339150521909512557283348624245631460060591934751085105583064790665178249654327855718332201789294720519362145055380801924090775105249558700179345332755397220291344092397416692743985638819745208307026570011888385382981052490377351160797098079754050730104322850549562758198755028784040922789736989224721584423964794798526977661496072616126157858777180630631880415867786212976099951905543519140274701986126468163555999249485947654018705208609386859963971537192538964076645194337077783169165774022829174752871202904850515420448603501522827258602977931003730076916418078836186079115258368484716773794638797248934679846123014301276520970569035706589581614338067735154302415423800172518071400750372824495063236191463643412641831886147816330574253802861763707542509304707974625485935632961772514940178339073040175927688402572234952663446321957831368644507839360050661803265706152336803182896581137022297868169997191138204153636996657064000489125919386470091616728408836025456254571631883816117772951665920565954488988243035853874422994832279849563919650386795386283621337956700987830965196734401690873058464396752303058479106298486110587666890655731914265285025062469007344640490623286644633786111693217980878487262334184685190255313099833860978842151711051373453997352361398516694453690262220450381802783142446334605110673371263629232979726710076031471114216845156900111424248269581756385056258196027104703335289453284312032373827681434046360278315590391868382194942106970758456780529209368124806076716985673208126347640624483023732502064522271062044370436660013696954440565278842593480621540690523707124763164287064416697711077095069914774112159618888386917727022661102396300230485527056562906652996248363318300265758213047915383288970232811981793913443572939702124111529509224410618393257530626198691776415859564308584111810196922388743288644149856249663964058358430184350194239813531536424272897350499888530963057137287671178012046815232593961773779264705013965705530252992230767515749633810371762753213883494992677557455843789757890589487829308033410067995010170264898774704112377541736418647511473962509390354266027149811985910797753474148644745790267640450607436633300315276692738253260162033396121539667136369093279568086410396642109209747930063881955518152567737562020319057784926295069912991759069587740665725300167064526964272085881319456587611956581076010986521711945809034795081904935593919335416353009654970989951048963879352063438805072401261534984826333599453308372635522394297757605456454526031070854804271415308205110337707914044240345586202501641207919105636288139681793684046851827439295887303703995212089082923284266847257444346007816874677204239873663411676212339486906032045657840556858643314850557892809979420540181898974774216324938071949269295101189734760414306583359761724708278373553694519309785296382980232397301972913120521670795386798135341695356431958555918452103203170639538316167287795761871024042089307945796051265311264195884066596889536998967134522743880276466340106657319706219647527957086324553594722183972154775401089497946349671206505364886237507831697380354377747383959787784305966096001375551782601572207853998162135507237255635288938310841751786244669056960198798222057724685239517982081316586240349670716783241477783539859284515477419620888424822240508286673739011280516372205010021319764147179346041919042993751181440904070730966171573122324591626214573030130988763791259752363389162763713034023571462161619202196314010158726833261641502369179380129802425667208005816138350771751286232456585507592762908913363762636834825027853992904418639033917237746588382110955100366354878686371337424451400125538579368085937251854179843174343923225441454663881450809957593222401143784293406275042425924428777509310915937712993913973653863052969862575236801809008321342558462609116432860344890134647642843502404026239579912610740586651746766495329889119521123232000337223808529389636114565144231259790871657654681083761176688479584470215601466192744159477934236228799576472896813146139342999798850766578981700082999804568512595276142084547318404237678122917663732188218893544234158973953811817983772619778366058504611439700314604741496582435419475585242888385389394496393370225692739145450680740056227536175960837686937479513138384477474533596279013200939316267957010044825359522148111479868815826407427171027971899018703511415817097670774970954534750293175219139159202092132986596908260236296357125139456691417169430884916855114970703524277267133378409987506393215102168370336542998439947091105424286945489349505059312671855111293395130810334691475374155399218193552722995038098361644655133756639045811865884181796745005866826171480995903827613168434839430365721031646610589672764182340479677922553790217383716223545122122270960303528993853158563277089306786560486111376236383707663126265641981984672595893510012094650545104190284380226815805703402219197417025193241130465403821596895981514893309302670683917229260335311891356892961076064230362548078460531703032733935263372356722856109254457929869312832685284409549816467016039734225598355457508142576949631966228083294677817995558988562403149769910166462546555963353175094147388540565162362961597744990006107825857606128037786910552708541532183127910478603360864735013410735026887587966697025418725879504438415493041487219932360715973418484671473624388954094273620821674972765967351209305081064528214608766294837033063563843124559164618146769902438728790045532855646011669044579975478657718454388357239844038720282420996797559408937029627665791988629329193849548136228881949759626049643278557216598898440887175262242817978542451740816706080872917576625676511134358924383112774171330729081560616914329676971570232225902758311293817149022512923692571066126317996297398518913804373224288541288011159090571014125351642515670886845732846397976330084024950667358953538850867173579581998487862406141096900974555877200425554350458794402163277606483034937383368977916905251224531841280164246666518106923458560516557520317555418694545826577387946965546267738151193719946118017081278289288624291877348466550272705334306942585617230366208159506327118888762666900504492014534777438614858128517725135055346666013287395158328171416724845715176879188773009611281208764437334020118141250698269840252986094693183375953164944285227321164777649624555733822584164286667140463095388769684720214680331494533044288648716917259166315541613548531250625399287640063513361877392208437203300165846135709198841842348974550451084297673202283646010574121073303112092207861129796813850852993855792999052951219162838198589879307045085911582108580497931219221717917649996455092995531091299586490004615080964858543631041685843208248741226996125077497066010731418694955191397486446566776421904574453085915737923059231053272059486404055450851015549312526101691048864833855286792886590114299611323961935283006808001117486283279179383339323878637496038329750138823424446313567323782063050329932730630010256495092668207034793896578587214011339495045244197534104350829202621559016081318005495723026948890142344794336788290365393457792940981974780433476345249637172519962303916858886991880286388836697530121877812092437512787342660788250391228222448223744068264577858075205462472751106986647730204533239543084101308958277694566374959671431798362916035578387981504763007473966609574509305218914554936620394281193188902309852372698006557051925517946834813398446039596154815002246316303440450712689908206201862498920627764440779203123781100452002322369001355600145405300833254698719498270848723682863293867728766820679024431998874672491982487404241472616572586745092539607901408154253533599288719100510953052372140592365942236830085520794750257876255179938658868045206661823432885954358226720554231187156426195684752844394056199632200790466532626031831135098650438432068022341690523357189779867046709695538649005568710524696489291426051665359490911248363800616660207421257535393046154895414671129151356116518485501131622683064033469414833592932295082271014665582975430187124111491700284870774534759875115547782883197549660335358897585179543707404927149353095943093202084969152462173563904260723741589632963136930893173954073008845081471946081448168286070810388169080986729039585882829281398635429782697420646186055253642164034349716412500053226031961733535348150578854011296952403143178053726015232284084421983440878006382350414916027798194338264565859422045856510739785165920315756741849097592354415527245864981063059863992995638493534599312165883548686869706185742456987226969676868569988864295562441680590117853778896154729037526438441774101795502735661400394828721033854763431950115021143067398078549720183941040954598412785308526193606160913308919281882551785161011001617410172995882312515120133680347918334881150025928825644932052805858452295830078226478442164530189737296911309825254742930962929011635474565873172007078474681415840671945797322271939397252723763644256000627573000666311151228879198393103025759433654951357275013457933323246416972921042133505952345113684236697867690011655704786941725425258752192361705091560304920606418246429294057008493241322250869055982785542062945901633800216150206774716219042084169561289690000253514204238431637359730321139473303682470283197431372037513205903178861059329834048163215868505222462614089079532813067900336123387659513728358437790616707811551779283068083781552398411680844258627385552774381174475965032640308400460772877001368707425998975964593784036019645651611608988715076434754647181901975862241428280764888141550470853041552285000556034587023169465959482787791140501678288847807887421320362050599362004482567264795354197804278752431810130673708696369142014812122823979699031683190790990120469437210618730303947015185340990186994496658076469710102066325419899895927088960454284354100148335176658028480691631533336676567117930970381576451487394401661913068684209805337631123920436773348222476634028883327658645917942304620950508277795201620451007373722274537932837715869134055039908898483068907034527608302401781685338172876762384088698554629504073510379194042062420305810274173548289872896490478975798753176221918890365220049854743192271368064358162984022705335562687369088721243680124216921574433266424559402425443859385245581787564033113290534756915745860792808518062664048371905561609055643997408578191208665140916892201765397939221523912907706496913161329416546019715538564860566081802175995690335393914228170415507024664307298236238543236169068963603262200758311394991341855574306647625193395781185592747317141191081003153000053830988247842886150651716944931975415207908026408519698758574786946890923557643084482776625468474140789458564205401700215762923516410159467555665047707231751161564334071779656811346616318857324812376284125393166733375051288893083597419314348667527473167779660253167534583894327019537027655063766678423778005353725533999370375562980167996647269117751087076473650141801861099206481734287900974835522389119147627070843557861005433656739578636853155468746069716439380182325066818152413073932182173656808394386867548861476668854709393119864055631636609868051466945179221759316497943851977009408935822422192499478069760961981376679311608079317963194829853708036734786955366143180766188927421792834597406173141805236170996673745369446386298660096733638480766900878970880664463522724045701437601387361104278260614873484948848322626868194718072104771751776292161110419360458096366102330193007983517382394805691998245200448084216595981265317726336412370446957852710862406205860599336344979205382129001238221794529180593355068686449969786138537806730997535371548267044365956202708863886000162025921842338657462930608709086831426820730979585340072834818570214217567863229169539535137503919241765681055235190017694130714037652375221349964252713733935138460298863475906477185129889275091259981089650481892161763360458847771127144115785824132481172865303397781802957021119360063448760257275338662651266829961166765573355225570081723015481484993950679369391020272814628333542072371508992686955551661238589605323702890607648405048294366313032773448916342492182519114885038204561050246769439424926334479221133550001206422057612951470584064758369929646510655881459921612317586009801529508899191667333645303072723991317282430838642775336863215391934761825330535985121484805073082401544010914963139732299846566536736689708542576251620289999752846737048905988049480538375634170172991840487944714189500248563197036775363215559318169720194475588126698968340581868238589184069474854592787656984236953992227304430283910733200504686165897795642667244199858877001815154474688333628391836301164761224355184578054060407421982280933819413852531736876159160282936069564702689943754017929734745213473324199864249572989490362497297951870493728866841094318990122336926261898283703721692920329822479725034541307877781177079239447676233661472375951821931413244837931031606034142704268356059477258791585913995945175246629702006650362847018267646295125132934805023228902215343873365182448221721668861638548234988111344472627248024255662863153510181752169826628459974108788671637555411061045368104950019160433106911425109627395307905851931736700397024974729689171870506439742529987138113181432793643357536839202583096535198189186122666716402996119702283445016011978070648330076947048453168003597511257140269390184190462253655900894488098013014397135618039613217782489315615476535745328612952948093515647356675765253818735195871766186462112181000133389316989685351920934829675008286746623669408954989867391222852424274185494175266315942093051367710872716568518769977624437264595847197528019699051792842802821450574264162454817125963064793633774216529281265929056697431836653449729917314416123031077713851740055569597914442065031569096298842755334384835066126541439374084286198177017863013756128032211946457919493114380822454863563388088774321470451004132025555974604913982156808466949134052935132888819162152386260982655101620923083783587496221605831019902868240872651423030730178622364793518225640967237719142581268814675181287487182980871976716284371722657169003955620143238629728411246612653955722440732646285878690897610055204081781072077016249399685740207424887660774336214488458294883135280746687016678943883330825320656274983822218520592748489575736338977417112129113132687959718746094521958143350484069309715318277261891364386870974898355757069393739698927534347410567248776548438270649247274037353754537032559325581584201863520641781563428176677946654115431545047606324309850117027866161427757572794859404465002752167755753124447361737875884104892073117870439573345095736988552822524705550714167317016385447546116666192362339205258548440923105337084801642572917128387979989250886346680287144783252989012902542920858424946401368211538414175923359228688206348646202531607822437457414055088241082016793478161888625374838106115124681991992327038766324374240146094372265510975375202516396027185587099177793613497761412172887657865246915066836645984385943935163581903848937537472167616835299866768230561817897865489737282508132271344247380320281470705015787152997961414666635902830678039551297508987443821116426762881133838401149028235740850214053069468025237488874913714458135379152096466077747398659701807379876960728053356724089636763630913127753843158734764630659991927063753389918927014221619993889902887776263995482811858079723339293313604543726270243112974917621136382182493856927995882658802217890010396625637566367195551087300980867744281574476628993468119340715012850959728523487406463474247454754567148773696067266178747126847423195627419865857981854310887400662825767366969418131296909954948516472441139185984508258441066566781576160700268324689223344610098254584352481281988656765184556408428067973095279912796734340590893311294464901899057801395287197765139911691484965882172670705223078785116985884312497927688665505845809506989472231755769917530303776521959930454646717155038854367756038911586423731531655353011249284754400367212412229297930397589056063161131925086074975933195642991853694422945392319808922329637286556865550554316043209264319423420269537478880127037692260274068149803518944959870825940426757657383092582096508714545694533060213142002245298602065838841068093988946773266527821371668616182026024894605185452583350671561018749394829566348989437625616808372683925759765834705109670645726337310260452430215196277105052270670956742329123973869836280420355587519151063863608841802184614293393822886967894615251327073686620845086026492687752754350908121709857898995328072016091833736888447156092432168366351902905648584185812868247720765909790913486653814274287045281203003936604478473413001383443761517063857677232751463004559931336491830896786133818755465102634529569656384762555652213111679771827691770805381693841147667874720433608497372177689257360617059353755730547764348314149919601655542188472165723614332020317824190741400554180486911432536479795428427794280062165413315095498662897548324534283456466518643359523397724999845951549050093918494936165489987566127215562700283849523751170541518121464017449973245365435153254298783684607954807338723023582213069132476081418060641366526341641571365046509085965495787255982560164664602911224517648245543877446501376892368231905507709757588667212038752993168389927160269022708578759943637563670189779211930568403427025480891681371442976106046659600480602489308846972891415794916791212878933745912838901296173375408521533329990343222202897695792636030083100749447486520173958156441998094805528806797784941152174690992955043468787677683196136998887143732622740948094853619515284853041956383176546172432587434292743446739262193176549440557162128163007348156298837577674565240377945088343181748474195181718620855982994837498125116320356715136559067955053045589387428979035936301141192680759336457286378092139732801672688716481569639603349226782586036629102640148531551111833852514217282960436297314989729128918749350433292900704757508293652584030514544230528370612366592472874177992640001954307005283869846769626259974322655685973597360509578447576696623367066337709622435763424900479565714718886356144091157683843847992570201285976076298429548150890714908957629659014310667007451426558338352598026311346614236492469143360865814392842910990794087313205540442923488634911148548996353130801053571836398158051038615508258220491049307612195081037856538157594284554749675041952328200450303763871958313325507032687312949099734081155257683237308962019156895631912771973886176273654930589800642459412728309078140454492040592849072881552209882001291951237016442309828630601407107402709875927687328052922193396094025329463066539283189825504316057573182311099572076845699440211935253061875444284522513178646517930880873277769995974210342589814781328089471806152910087921134755981146716743312393162931829234683449417295865751718578536957770097797089346966291779829062852027385734000932713897224457904797342460946244829079910081520788907937782034484882074583882342547766732179901621224661300521858108023674015975175204071341012599162161510267691701142296424148816314313268078705693337803823549197119947056047370968599825481974698573955582020837497065951812737210957556615026007774318345128068095397108151236828744559618514648761004343348807128647672419815203197773150150881769121899407768817795144337575107202577024944130619690033817765413868934641228902256605334523057012315500775284082156437113642377904138099655648313515550333382829966977591647319220750101432849896946924479825544979916722229229538350857401840578738547034669411791788735315010527924271940302258127438374913704437532495556572392554332766801122463073650900971271931322977675360344364864847538841953392912752797305252737657607577451245274809623860623515274953665254227944027439190796899069762888070641819969062142117620321086791810897870345705287859780491548401407719678208395824587018109228442350163549046843335991971209664927184853324828585486913996262777467942233216242448855918727435399719194815342228644481999011553406152121540477801634767495824830606248662093344389775085317105719479004240178234440476207228797513135301856304526256307298671634619829073575893620969565601696416956084355482739585185841104818218879821150837562969946003102219886666007419082171469297842259169876352053135765096700053399908761474921567655873258893396442430444355798984237044862748385169202593186518774908421252269537875576574226504582664740417412618383080946588764981707529213995321306130960938433920428482639155465132020319592444987065056436631525173006713717039284549874026858185371922183885841848621372439718593065600840838909285381632465702660418368423687325783059597328671849081882870534638925705022021362948459468340120711185594541714511812584526191060537838619832929306020245641279371349490560929232402779063924249847289268264714045136031702195453833245029551632412900238421338190106359355572810109939142877611830743724598034693085765782733758551004831507386474039310406962723653153415919100253967099700330962019467925461886381152358659223510149680674454396137412543040524213763364102189599667312150527335383941571488514588195080858918889604463109136954812260902570246165501304885625036220866221371940254977283356433873329144658949027354384792682294615266284446778091825166977886605974100684996978072236597670432495112103226137165068285908098236787527558053779948669903401962878761005109166669548696754430832232690887285534164138624864819919759847122370020954352578119511794363349669218790123093362802995226791280677180049155759504476709732925217875893864967907148455366016097668127392791855670306524278967200553501285718219428745560736331504097961075734796318202243937156957453036395021402878344933943345899213677519442989861845420887882152802128186809185542570535802637478276102329898847522776196582170892367629429004737182333779626551503676327616621609064009938157907184178238886755036870257775927302130350541787304666814457551004888535547375611640016481699808497625956965891707146001667571853978860402000991687612986663621681525328445000681557576706990561370652906182961783883588760250136865919772887148064110307493675046484545532988997621184946828133059746640808741790405441715337875668737577455972976657112970901084403959245245401169959674957831361440024478160957091406025690521349308764565403149155201841793833809544399772816910569389794948341451502923366228945140975880916136077042577569300876165148840538785539209765109105510791335310832089205978012550263247954948708313469256212701816251760800746861388864588328400023929357510665785339120545713095211123827541834816492014703104704773199688120020299450712111337167968964783646042697195380250384368602330392194695345931097688656848065922605442627216829488412879036329919371687333591466491427567719418894095287484993983676255157001057078948269182507204282765144205782438725954026845234155294790858251646590395026927826371642744252248118817022414069589973721544970826888834348452015474655729489033066462187115991704092318945587546809404277895944831861864605147404196721529389707858473666647653525001679741380943946773731339222848952577359116544963056189558773763186683250860736377512445641340792315622565313634364459836429059479592633121649645045795830935943189869510626327879966238052449373943915847553888180074590838034117252641397308554937312606243667161098134934128188878492776485435345716110853079579153699913085572981321179974865774244741901076382110852618049307779640635331541253490942777613861129716125786032496729125070862825989034437562130145584875852939554874517749281504759921918980395658806411320248482362000132524974522261128699015360993428620655418974250437447566910154622019616057487337177980891133233240719993884749898101201600715830015176533582830275831558973583854623226506579288618868286092692900017344499607048641277885897859864619200434807108795437550385207243900439575425423022086858844663479181896825753884961446426042463233022251311250447137613428966129244757989798633458787640212000236854439542670123028481355675233868954457756793787810761794071926496031177995330159738006353824086965000009004299009160064670419375149264764832555403885871312754250241129882282969876558767246980517922168338926684585546820350285203904768475588666402985260778069662872430839000122690642651238358419332120098525352527154458368309820278206626303990249142376920432728575052701782957347009528101691685521713848757963798341149217937210471447986562616037133284571521672969071337608335530082320408484825889114760979492620954418183819612936770836367997054615045379744026973897182032561736531151987001144058501258484498084781544087340733553700303980810189473455884558004776261781188404486985861614591589749059465343482813571846730948436532449960137346333609775919475314843273937052508787976216491631180685645916249878047105536055803193420232667058453261400486053502985613006469626142651131921853595365282107548481940200445705703555188661981968370772308717542298396884368801527416043547869999720178221339175528946362347895196116329102339761652821889976026392338467916574623814082623689670889101854814129098462578909615553935075386424537281465310498804276408536696026059044791216183906454374402426940931249795760903851819803330341103317780589994883623325508977104127988221535643741060683932098263907508327336898016244447591796388750041333660171168413461700576986863378259122534213620537373371227701235108658110157192981811755737135315934091205242199726700210124809195670118349330479523504881052237683274957957724683040853244107548522676391712834680111169122828797627531410714015230659847513114954680235170509802340400836834628133930697747269646847955690698756876383788934416141701657121089672989134903646270023319797862343762544105738861875053231133767407440720404243680228589559724446787756191045651888702436164213505956330246714798549112774570208649103214389225382415186576346062752747143101335916053021853793710595736490478849492387622137631603122032349508536713785790321331921682254377707074299671165171423178480570763430738031118885891503018013229956321585472050135299163380169414717181880329696856163644189012709426903244486603270077403781382682571697739308035060749592448066797826952009262225554081241321365478137370381435223758660873428688098930422762751779103303557935178958214477707659698248521535234618723057279589553759169814919300779014908271356269633927791019423414719174837319360959838119393500277057268127753923958032819464526165239434443690894893418327308576671974878376217649202957071166137085055340125024749629135872651384236244271243656922707457406476252176336618910413713752234535231689337138166153372107650591278351103857293762837540057922809782765990606191326413772260906210998363633435214822556922929206170219858952747795292802299090551589575954523316666692403483654155461697457736633587627421774824808764335736645038195528722331995645647084648416652047260798915081797699188680209471192038515586183229935194977120885035415461994016145836105529122982875857869365676709410396092710442379257086304712666057982232611197324273531333864818516559281986358636553681766539237730964646030178662605331019863473010990049928352024581325193085755346684421576484976871271901433546687211168207735054047230416471836883021452993690680209866474953915020454711954496119223613302120272180968741201434992929449184344820122147168751512706079096343165463572321893162060294227802451308431391576277127380580790134567727444577982572615069947028308523650150175080707739973238047912814813542215967756371120711177721057634713983292476233159749198405300053430262195548818911688167032033026899505133695022475852760234574094868945637604041406094860660051838539149630989830770539272358253352929708045128680669701456311543673924848043734821644451462937868907327253833550217943508929103672426989719419879510239774528672387445684559043049704764674407103374330277411924866249800660364218584873123171607125729966434432914853665265225498017471370645959472193097358849163854889596643538976220712863723824058127671048982683852668686907720202335836616162155753562031746686053242931686062701515171866843030825776603927058430522257353817691477492356888638933501807768641179035634029917321405597087945834895004552497182094152376417039168327104695009977377530621497507375467043795135413258458454713400651317495203216738829775987143865955342956861490774061636952053089727702516082757568043604933206413997694439663087264328198337692794691964367776008379262120375951864650980339390473860529195251214037818589923079228394673656902591029387947857802447216338128809119263037278532806406012167582948402630967153047840836461398085248679369513969010032514601927124840622982184306466588461958217834651011383537577428604615835744294100664828901814580120229999931637695975854954925130908148659478524321739400978364699957258954239154380624824693318471143156353998303444921213022009855171460454215952301973260736558018883668116912541980369935167499362524243251926987120797743726929117996790210079519370394261326940839099253207932074360735869058877654085770572274442818920609622970176306059247994538204380214448515641729071446537429052067773178081744971095787264270675451598464134341358215396089363480970398194113730091615772363995033934263944432838066146274196665492583927532621932716326148129616775048710957748347403475098536607832951055369875849026290824942313780118811946467852399378566483884741220056072935963003247056794489331638403837472429359087174799784216810865565896583019236312590587101057066574930745529071534227516497930662955911621176913721188389514267061996720630349116476124693357395631855681612251576698269591361840065474724903179765371279503646289099473626280515180307998754692705093277590222017348071306662146619493367806017595618349328116186170410944150177602326640317266904843430683070379252992354176726045847892689632817295858376186526692364290296111959443156659733666022105437874760228838243983563022748535768778611879565948504478063643883965661764945514476456500442440961629488727152192410309104228008692985751351046585959685734283558747204394533829417272999804209512206417944058715157428276704830992919391862901291869052174771080979142309036799995447064473833661245148656579254785108128630444602114807833663148020338116397914526019688697152137947198188715311546796126592493632083169973884392647869373937199842343567260912556190895525754803357549624901904093878178775538378694188437869780926149963225918865964979792738335438447131696985866786554861420252642023361056494456788899552805140381751885843307395756992600934448619958107886943683253632970786168923578211795384579245055863670994454181043975399079300655497411885472469886620750846323425330312834085473059606740100430474071642229443453204279735804760055409988160593639631226232005939867517426092120832894972833059941540606869050635999532439696794857995861926666018217318649638914660971642590706658768031294422796944998793004203061984465049155299757022155180900222002054966432408833157424328818524365692461013183298758592130041340521043355966829512952848477159927578357327425596625603132621078925932142461463133669777380988750350631317127933527118151230011133084438792130212910710520016268995432695598374575226588073273667851296692405679401587505685828826255262301339943775007833990770607281285453127428079966368369798662522694455345852451775019181115410637049702734219910451149554331522417542757888083905166580137265098489969756452075081957352065609599790727797286326324001678157997837369416773765744663332856974703910734283524468346002403599159917864510376702144555508263508143218714112801798929346779688347425166123874339464194392490410112783231662871665427176388861094378214066238572213218549435932704523669578313930173487878093408981840860878113313082949038431891817550436218641264382696057069315843221064112780565969739856899903766356196281640651120910171842375009561440518523180473271673571299865883744728622365236276162009278632092306216112434479431919428956843283071032839498831866366905015290785176315364644417043765176065394703040595254981613439858229545158318568415284673809060580672811163081048686067292895496549583523976982073666106169964427744998824288944129802935801435976262176406889551994387684081198730096477729578479073564920168115999680024858572150931081834880704896544216408686307698363064358421968531380467299653201469374583239400867562568551456285396032339381665066074128837623784080534318138707373990198762935197931519427130495593938854018461984741615986201530496294533092547233929827856947323181565754596060520855909724129502876902835519120779590004544707831648167509722362072635527582870454603923417866649563734623575892748428135761416326689738505021682408032623117350541743449872671993728405850732923491852143329183179131248755777637588984209221153826010614600657185144974791364986061354822957336829962626025707709031651552100910328968267954653638273561995851805671774086233892404616666103358701531033248345814776991899872990816994547679286617510855641879758887229515403271289809390311555520029940067425945745412906087916289492128771449797848932573982251789729843708904585257230191774645095620463156951363652289926460274225845942387989732153676616698959574915697534842051214017305728934336833381525822570265581298234534498786091536966392601731795949374822747656621666323718937828841246883542391950363289547727313338232590924306133537983975488963474152736538353975658149402451229286790155126992797430197618251715298184292615871299465054176786394489166296121338316467704880904430892586570861520164937234393626635655359722260085899088935884696252132014324553652477438356318341682598188712403205468326684499368940054834072105232856142793069137285936110717962097341784002809158599948727908629125685830129527734820692851940445642118507302052904508211046614765304499564080984306001224483886175696436622859722669675773492473219384353281594976731577436868140750567291937215499930879397089642377932113922576121318866130423285842360227898661349006172536849464613636784986268819815504168364250337268905102243402146283283298792462291240429202477268434506294769315683722845139289001081205962801210933866840271586126405596495401788851675117132217736739673147574894451894318499569218330554236973072634052109771518164687177693888606004037051759386512775574799080989925370139527350020041869462912743754706755040471053045185637923775157780807721924826256458411206022241083225874555095563922011679671344704750298813025631701372852347991807198194244394293936445416047506633284316883485355270857382401691763951046184002679940813658273931863144113108068821699385531009117764212912336861579987745489812103215827842317495058318057712497278237765274493750866241186711330759566601676534920149378757642024382904129879115333193509298798008147640100959730688967060763308655248221397801995088123167442299078404583879573917696303311967003408182442749507456528084231846843720415802956653235144802482373324733736780983289085240424685282994130860318350382791324943172393145866816913391101518851641381784342286500831155341255966591899124282770005480259015170956481721482744960008082999040799045052727279511191554805456165496907659369208981142011674813401109703842529987058488821213241729577838573004564581192577954588172242784692331107197696077026490290567232130824654415327429607554757637260496229112419580205426507592691181363453117520856737991295935356740306875081513346416961848036122189732535386069051202899579310734780302383236921448396210912268868130948820966249282405035880281499418055423070314923811912988000345070317223006017442943062540578661340098475217773684930935366095631287807802325990626606218165659660320141403309243592236718406642770161108025257429380638631957534370741037785822422413881101779559396787772561822967607729471942554552382531576140585076538602107477046481795893646892849189430065973952016903422564157421506724944133166487514218749685407152036023214928947727953844167678659972641035719621796392651037943944910600249884101772788129073414286826387874979802309375910741673943495524765003747157097882956701385108778474841128156468223793776484865988890562898663408763110142904604304401478515774504489528020919404628058157576707681776864040789857913002742978331052031609790588456023738395268850205459793803674221074576940443299105933486941123011722876370136883284157168617737027592427757604937359129976800778141436284512879938017604625945938075956622336918826753139660588365944702208922349645070229857675553006721131432443215726523693061203118150911115967184130279805624033552320443377238051931377219087537850691227418207279290710592239264570095215322592174768493185676713979067692744351794516890450704343515902547970031099497541389685398156576455680232825075453844847374344234228198379549058623306083060483480417080420211879184166552902658965680096439517978616399947618100382484006473851305270868449986523315672002278704378483487186053912540008250483796605648459481512885166079740481075763030753053537192504878351941646007886100229841826586905804959547843722843401197773044843774376729975272168262726564639007705142517227969094444992064814210189756841044510540041953367697436722070000623030467840918477430640091784508900655168048412332346701574341419174716612561638574159647042977423489410230188255252358551723196184752478545965646476270850805727314552698770664691560442219073785771301749451665538492476452513266154943202371183052250291015763510636126783430903354916806457220871776299363786292790917079720189979711409699338376236971204655285977888567816830957485783783853498369737235649296554914372652789106549606971426239009655259105034056482546439389760257312610936387435902611166241336865456723308200536939494622220967677491173441332032219223833621667084789077989024086390290991258106455199983999452113599422077712453505004815321860452561255566570475648556633210425514381584832021498991937860072239876077576040809649882605149595929054059027757279434559016762936322986451639361078120625496886953281505384307347927751036168105620342064681418540382254879584660772815780592815756485341241043206940213360073993345161164466544141325903831791657108885267610962544828417129965823032238777926303001616591550038549441282164117053043298604000920681262899150259054103929087093895574755660423531019203290467592007164267267636798866940666834153382480225490011693513157458731618840027669199363433449235725663819965548960598297222299976830272070069400474195813245264871898245364148067629716125974744965060903125431637979675891659152251485322835685760313439817941820261208984170767460010970806211932403432730387513912456546358697401721649403299396071209897611123407052617295340955432941288659294028817132780151660630893439816772835354260667081533805680990999475050800054020373307806812009970697677861977268510748851398681350239677162675727779893110811167626366340442696531706761322300461041566302210023492480866321211354387109824237871992712606688318053702086901925342452223918048339828149684127075417502106725896018926840671096398652383468526402087082475533710946528410943336017248915139777315239029761029257615681993944013274416198558854927583583613949130834532519609148539593776014832781551826421551734444758604828094801338193774702126164802454987949959127633516465536408003462379538824204709590824754804435416467102156106656355603826582240786162346217197396712046730018172205408649811202060238744859650552814449085359451902804160161898255413362803287045918133608741469393155863910422075593760613069358160937504584525086760302153228438968048520108958960181695331125476599046508848261736188222937363550448613016091173565322616506066116726727490330523132348931390338794235019185053311623913414928548831822951615546996967386501941396342363761532752026781218304604644173928996370940525571219061894518139923750219474222312029223746697843321840944926886369616168953289963372389843944563848884168180460611438108456371750139245292138552297797555860670760033569000333968252438996880789755744069202556407121733823930891705672102546442769396294525722450491437116723280588110602705897383975205243763196038213400452508902929391194243771613645731755214117977794077459262372097489231685191767160174055255554569900441557452018463266842759204600989466764878645920431021894051536250214457874753513965049640527038214998249328444345487909894254479563398028548872514252077678191469572042946652895350764860804540317961484359538085218621807214022843771790329275973069610188065986506406080155616787135859840515867791057191071063108686128083126372954168074556770390457155555551435890861293323354574066870764513533024696772676550721724026221689362521704605030405553548939702507652047578234258586173517767579525219655620862869141295282792794787874634695944095024369674711130226369783690948953471328381873006789625797215951102519977736937272395251265098516705619286408599511110770972260431052166119710620435936966778084533313630870109708139762190935590583987659067325747852493988036876873421958837471014253792559591101851081968595598781398357081632133605466007907741515374951122114029359734667265374259806710777649752356782932392486532266471133908659267791038522058321082208419892433724953470029750795928332378841900466888809437570920572496442087899501152123683317703988897494889292468603169339378424747467773145555929220758170055396027790698543910371227683455865446859741827773657783035138178200967052658896809020234518582653324083318520956179523207369140490109991577038266335802042820066744826122082691462131752256123039701819301790674846650822038051268299181117942242206832936455893863246575205131426534802516348906395035409909082693165356392419230307503708893955046437802528050728287550463633011853356622256699892824842736418947054031300946517203324859503877851021554006656233301205695262500099129099476236061153371715537894969484551173889986914868248100193697803241625568887955159491435547941265181237840254240994870715425752544605794810976330995700778144967729569099388336923013892033794310778542483603811081322849201900363284913654384940039424100812424559794179792889901165105873082108703852757225475851931376010977130142805447844516230033891447770679145133049034126574624521091084480808555119106415711509860306411835994744440184296024259571333860517057727896605905914493135670084880993077223198598498707352540529342036595599862843597967008082890392486969702535485615142098477332018767827618505508874472835099131988857497747108634511776057435495251799783858918094819344215291856737435353755850761700905321668877553438415395480157229643878151714427445160754308377204963839901434875407238622550460542849084378235598405346042550824676605145837504361412137375372346673646995574669960767152317764718778523443309705410999888389943842249896804167521083110719796094150854399718904397056355124340105945940389281135331450606452739052519363400716970569098536714257872038846287901056520958818809912904611393989516393765684117950904388199120515025065963497861645976832871054078328884070175104189650413415568209785745718768200001374230875984344350611812497136290954229674825702624750663549562786727578928191885619042343677742829855076133907194179015071769868666469986540866679661912189968595463547420194334966806573373681330666826575373287632262976920344284791232140002353674510041535661588407333830595419043931965100567263646307938198594452268530940714091030029746891524402088913904274613271040234681558051757942434214894186517297769410734761635849345172112847823597789470482859420045788009073153281597912564921849718919160826363690156471758039700822645589675734987263962597777959798187929322110604801667387858588223592380304482445044875453577036178472518632353029047596466221580518550302414886438229988211889780979911659737700149697772349776794707022110065217333249366128879754214209446805744843899100561626002903362824757081262603462194429813153230455627311190277783615319102138606307139762212794829500026828047091273308911719975763047226348942953116632937957192112895904504301437005382255459514000360330201932439087324619040401517480355931116381941975005640635925771792569227443325648218605747892602024006489363176237771336199904118626896054115634391029408062484404058130936365043284713392017272864608167580614531428815177814432796702713036598166911991119211723345020607361798315099184932974266881706318935531661666647297650663659903808464237107493720497724885175152092745178704032853568657209635821219997922856572039054715991754925758898120231048502695387274864390170341178113678972318785885989126359654917665397674019035701623480221672715952409226215443403350656576509746313719111438012028091369057807233269460985235942069501345417438637734435315525685931664072595213326231410026711477231550450876741549102177431928692009511650310284231429541505432274150678394339845324711986796753859082088294609610495569225447544337048946666589656330558623101773407265553252576663537767652236531775334861224396464882054794522451550110436412205932489502756018357764538676126233617751355142268449251194093739532385233159106903871616594854200001912545443155668158999137640332127639675180169583043497272510487296261841519082679126828141763337215681138939246975256375310593199322084424182713572114808321604717517622773875645252857609597303200718861641948276691464699832836169505201439770116090412231085384114840018016623249726032440078105663008971493570005278713138723227817074714495533594944780800848717213850700016343209516500908211629681374456802068701297103223638357947600905053830591983972921180435989833940351758959632078387052054707699444425362654595179975426347124542922982274358953926133303344874746798464883653412998047837899646996758585776969681305756525010405220736900177968360622176903719608713693279218566824758126209550543470343594171579734915901415671419382368221163913635563147800369627275046977006873458404582399841556176802713569972239680102346447893707173389184317101149666190495014658010261977281061451075687681001188361399927160443134118697594661811308906223534320844660192198076164530503873989829000939804505551314530548529872055675531608863213278667743118549368907246688486477671248099293084222757404169810036647919355622644405977485523501666972498060890811106073673438685456253772692119479190750201010780391700306882924168846385581656417018936073854635515373588321415176076867790949780644617478819522941878593867777149631585206093415643440514996194638081779694865965318284216770971797926362731786170395446868039789175240333164524957886872257938993955624019258224384921011053967682545880828369958252525822437084391751849780861009780278575113447492084310031672262578317713619341163245993457031193922522709355439992082731976883241059067506929839175205219094852614493800976764874537246244372659529414291377739532087387329789940829194046013474202634024806270550438806113878405294573461236025808702986014948570240471249150979413086866572818644233608780980174859342221060125668972459404506404788465173388140435277965131154241965740899379173492397902129062526565565146602518239557937105130521251433988234215381638369453059302574917624548911926239666412046907535635717822884745007740970045976339466861181474870856746131145442469266330952576321785022066199496558914339927818884848614769028538792675239984975310871459738895053934806439813626762504538149605443069993170995033201913837426631035520164086840304155092840143107934704249049448623396345013911545703645686193985083197960653034596662412113958704859473029992478009631763173135828952691739208099378031995194139117841467433227236255752678906507697341383559106548188059333887462122153866340666326573160027459383165021668945734051932298303404815474608321348406548309083103157135568163525357893243845551971945949103806975597628497650973011472796965165384845519278431481471860789430330424873002617764454490658584632915477625182931794731805907845269796520560968168842616628132775833569608589941530297595766156196636995226061609567120633033268265617656096970501843116442136815600800783062215766901823749617267620592343487638153646914613976079085851178079821536023024305396198899439889309825148105845935062462071996608739942179820818534990383849606740740860551321450992853152987184152307620769292345648683689457194652018879725944183546006347480838545052940889082672523426459299290699999113822344915580239667698019389957080875028675568962087063516448364572214346612242796738821421650650376241397311197910987491838959848169466122674915935971456158070696018589714867324653799542587045855854229733293968871672435425886189778301198759872000263560642789665254150314917821795987789990981249289735393120290905983995268210656895348532130034267134125507492385644570525805874022395782130041358995851871103614896824406961028869879281594989220428966085342720447795458337697367213282543997710157515585012635671174878584940400268439868230492720584066946494017795003214369288240270467268462766486151809832841887305551387326916192539480955354652184087736976709520282837073076556998700697425816747296276485213662573826844993977839783251388558729869994973452015337305931476675191015277329058797386025482916883864218630524404066758586908293928045388665403688777636130769161252991993577013078426431879074309549938844199733088722659974709742854878523876627109904724778769015442129341390721274746381235719836585545880080370400683835088560100000665411651077803464770128543755828649173596853914492079841215398570744597257691808211145031474796827758990789434241551603878402114915154338059021753293674006929750966750330707561722907000367911591948502940323018109519144660573658367480816007377001656585090784357665571975103139839896628986314047866450523894217384197551025535434250202889597554576494703275501477885676938055888149325901326945332453216603073681576538590936610008159685393764212120634546291177632973299337350037187215984285291050287141821024708142098956958452023611363591456585514221344481938834218083290485344629593766605874237365498319576393517497147369901893195792547509633563723003191401603419928000443089395255457085028932966467786568465662066202913928754269786097705494841930280367625787659756022370538748273627374018442592756416944861073293485801469847989268825862946413340426546097232474663477783205142834860530793008038313021384079152879189628726894442412071667603741355000506358365971183778692287603913266258897535212401696779848551578085864488505498854234921604681628821418240954542880552780942825447652439499533353027498480753302181405519619145319167218169026298634289650951574971706078237394745104716444404291028757254703068721847418101044008456788164698905897178905466062093146343801237851785310981332668507156027691573073743817167489322503436185329152189610531309945963417345193202998653535489694191648011366248142169587082901244375939424693265484491620401258923885814385803064807593714352254362929927707182084575079926544282501860279867665583837077399615007008164119234745378869998642646236387604664658406722083209103487439681922081726139669598176229218474627634994226993773037432300685003213386763725259961192844440099874085557361983258836895147573080936114522201033344099388651226176002838930584772261867303416944811174519282653163849905810134935909832749422715320128114014104741051293316938242559503954451522301770702338823544606267099680670391864116662905971572656895466282806254278493242445117298809733318756304898399647022586370725346282601399292755342236539597239439464292418793231029153823228755048253389779961282348581064564427779781729444987071413874915181879445812332853713464212176004438379061941532415616930933022246443336692442700606224467485438914590214676796565135302346052251130861426993132755626128010468087133409911526839799799200678577003214506034035569105520766242959535071635024262438305538291937211310935326221362038313958846511372701906955588687304175641687212182655540219554159971529531454469562907636086493868778848671936336504265811923740244546082358500842290414172609623037013553357871060306700164644829906550748091359916021200274701126403656466882178040580608280972792588625305777886956699112444373010725528816693054381227453976212964261448697210211310779378680970427720905240373902802501707479818750233324865647365988024712285032345483675826648440669866810912838203153491159985244337192094841186649841888110236435708718966762059174289791433608447407852563689643245077048995682032957301411191801879396263556270514500687521085922563968304021737044657349270387531246256501261667515072706101018553228357725629526998961231638548062069617419779797140459062763933238156148019720105872955014620896662652414741377254706453810080174072293122713913954405522601362943961863145782698896115462635360066446790367739900503489609498456789514787715342234738542065980313936054931184019184572330911340239343942835639412537561343228928598004448662282791711432252492880025092386523853750168066585344510759277257355558957154943669897772058349252214558544157446819494263419629912382212060148063996103333827100292722347225033336263797082328994866970128009006126941803524483671921400908936457054404787058399902904671806490279184416828596446847145352153922927707405857620606114181898925563187687868838401769094106992515885603415551777618778775338346116861174742285702168122139735752412466662097559836810508791545964521555849224303727719263740636936303913073625121462679482520698971571391836865604972584869864858477243350816469743996891379634687994001098741127004786363431529063929688078346208102872036241435562276438384144322047439096779911352727911152578998100740309701075764818247652226119416370644105920156508014094298573243607878446413660251955145143040239342513688257656027800856314055706074203958613343470002110976585921476338010057344629874825293566134687165529220020662050100569731973789455128748305380339153235451764866024205982263946719117923189187576574537054847390049309411719815266723894473858147584750477348898980923013323477936779257031726004697527286535316534915296264768158321492957426636098449076049901001280880051058162083740944424075496126791620942292578715463142938087777076917805733815278613988853461796911555306168919954100495354906052452217866334986390366980468573200561722492351636391620798409912204281061805126252800165947203728914612753379878245487327652642928111707111584874714287770448341718106536221216264529595996258152724529838906216324038973801362376981574722513611537573346865961243986755874785331423112653124286397674561802898941985268340599372613467454077119344666660947243561148752113519202534503125222330956974258792621627026815287472514165507364629263663327024512083755559076693486913812608607873173496319108510005685685814644961663512556914777043920758728125314470755540904524323890181883926992916873973053542542835238073740788862203080399891492398373383619826467344736174063042068792023584159305709741938562414064318640205905350111355320224457326420799795761976109351027156372438389042274635385118437060971499118585150089955490996541308915336201933452871878450082420302757757488850565616036172261135204622444456709829690825406762799166039712577655530904249189272789910284424674847932001609077951682669155001712387287039517367787174428702037704546147785143662357378249970589403761086718899476337144052803560643150418500444463099156582364309798404218380167514402758535975795686574244062977615312282583255287878615182669449797967803764539770408055128740321864464657292394233880804064637415803992568382909007398544900937660248476519766253290523293340484080178060032120878053936063317493370922625126143222940978523572653137639383907698746194139231712500667080967435910377529134711836316849289837371235896260314941187977768716416587309734272033932945084511576762748139105484084467621556717364666223595368805243273678003993307814246145718453853250841131723914671281547912413785366454341644761063631742592637791393105910761348002627952937758528648676378763492791921327655103779130264141920711896765059792268255653694470796983535400618048067711519558029410415530532865833160384146716939674937395977425612994062649060267553693094708949302147424050836044276455515463522818060717749740256784724064382635574857314368601987927342164289406165172077025172811180438837892912339777436563543866313081580241589379578092267203152611966155626002491407650980717952457590737585200684163267442421951124760382283733628204914018839554394193788868805441037632440427906478718724813468670371810897512052190834628022824239791397316570769800695204348318546452711444566725857527990331588583268710808867066270691769267845894490115425967320120374600180147987489437220720494515490243755174655085004722789019124809453227022118480597500544110821066901146047610249360588097292786235563265464171911032500332623343796166683659723077215647881803105139090967827158361524029924967534835001531248067836979763215628058504403566447778851834408545385245821976755786908444638465886681397625406666381885197485678894664814962132112092943655742870507641365725576317402280695145962933556868245598067542499613326376789058882591443073499978888151376125845275590145444042450787152090605305322847545551543095152961657545654508816193616947458653631035181554054452621835289930102987639697819853608494506433989846148196841896510962655608325022678861854269005330132242877148855971426431774222120481070972490641650624221014832100272705250055475317270367390599309229189784446854257011372553745623406893468264635695026942204314191360596199948308590224815003622813747321715141907980671355795117431663941583730959168539250735252184091610867618661328845490460736335393986703385313088657996340234525738244276011578846034725112098204339947141244898530853797824049952520607390761576209280966101393679430460008291786307244699086906777129426896747361669856334816757790293787987103277414680115430749211291345827771186471179762620406777226235842014383835817864731161727721574204201103390108804388831876378971510828505768500590319940526090298548240637056389112964000245802525233793242487620840843318689547287441905247694196265277837202603496118720071453547023350293547966547282622748560023920656884204347817808946188520646866444158846539691957261684698285932398329809757132544100279143615894779443556151930717250643645988548613635038980495776057997510205192720645606459731559501187063958296467279186763925501758677919477411640895661602918618424474965325178148087072789816622570709795792262138764078781892119598184535141583350180995595315651697450147646111625347871188762051794061180940774282262277761905998879083539349958094673167865258546343409541815829574056197207161582934551518652731220587397619808143658085012159300647414086457339191279364156660416526241901834268543476974878923632361989285197581078715535876157270298344109057115317862299370510794875944194589776905111429376282852163552269279940602979101739646230760435973393944245060337852138716303366464636578459855308580418575642676765104548996264845759067135906054654107415627764105629788874409509662779368248450337638759764335311083132501762887790670582511646891476700750667608233349761221511195273638369445089703979798399940514219213387010612935042581360587547134828783243213327474480845939215810174484582715672708280964026207805868362854198166982651638938905448302619532288819770167545828153034505936935252558462993035873546038078325768265726095255978842450963832550314654102157249189548690296947777819995612843232788932310966261991312150371924490201949480046736080347983455330240510463722575507594024209658493234632686581473892412736754011225877624778729091286757468187100317471116029372928594780435987385860473976549047819489086572713933835926591575195238442021783140517253544582892530701817398673952534882550586675346143763759694557137399064635094467408422792515361866359906061525890015572923992238275677221872514620599232992634128195988024698930506826523755501343039027847991093030227646877871191185483833469156255342020576345420314999893837976104401502862587263397221423038932102163024260796886138091268693685379947618485097520075570109140207128832877742678425494122487548020206444666969995754890026422308133339469218973727907279574470045669899951061833247792080214319106907989849203756892522041214080392730795107833863580709429497039498743935544769556047961678533666988317700527387500277241840187682693909284594343011883437433246915365461444643023632860417714112526226849336083854016595888724010601088608517670262960639240536419732511850185278748837563856117112625539638438724294668579330414369488887999343503091896581002010551998159183648058075991425236398762490232628513839092001890814005297103350706098204771581149552763437921570255748990756577847131321267939296007773857344671879507192548200451764852342455966229391447738140956800992710942901836663655961612378511972402855567108587414140515750112604215935577051840596408138898662009433514165654899774173020814228948192659520431199000604804961763518092765589527341762087361636597564782037691964813440279748022959632522520181718186801779257454688488957536245145028142616037670269315598595693209123409714794274980192891837206789933735235851344012818960180637924508539260671638290902963435636184464276963094517933536700257530393622339866967254421799124813223620057653120619818161222085377665292127693727947704207739159582295490083675089778549593899697402242984236491287397344894507362169196090751639128694747805865697322822063805754061949447676698957248844742841303589590723881249147084933374076133100137089639907323576465960066761593204982333486912969141244075358097533427080525882986918594709750683732811655017819918469638929291628634954761284756421599611762480078643503138794282585876214929923688154617664726397539320972425148691068760483573121054958102970331049522246518852968298421523223981929968352738807652732862511976376203692438474971020132200912520273719627928432644047570535858948155903596022824428224771444243183800085690865080633582983952464901477736833629082358562114844508112319164868170237935713610691594033437754022055334566347574940046610463392521336712985065325097702323404559867082402712032241577284218656027775945404328830815168330923656400700674502765409315884277109068138567811589902112958703289254826281896293231926305730897538850613502151105553722850518208564935429313249985463987211533472006048317096445166400670073131526681244408117538923001432930586349829971282433313672726593832499225958553912529093719383865930319218175808935707727520386889852388207751843062748435569062075410209279458676355529274239608806243027598737528661139373900553712336061983241762206675879484022291810841717332133997497671462929972571083766305698674433515645657112028702220375858057059284603752304442556033279707354794124677103091680765542568977222753804147296177611199500614447449037932231655388681402174701344888974009895824256153284166807207585476371660646668406316309819557358872187765021759812137673537320657533926841983689901033978481509823175837567096115916741068192644502739963449358703402578748004740141430352787753620802233639309146734086778010875437056991719099966322454634323068685252093586755521966462640482429131751081969219511157750467080159285471704662160269577166943074604852827158160546229004849425626703901126650491146945629249438809531940440306582838490754952270220330058685709187414857911416139305715946046471921484724746657067156817674631392635242493745649579260289794821815355111763510021303468851959799819756561873683364162640114307882619957672196939084181712447553747628699487064863603266550263518358566369592913524774997438004328810324997296850546800546765227799261395241327521414613905189337819741664285467892129615861847678361264259294517275813410467086296421462278833609752026981793556349245877988410566268062114316375410698566101901672328240462411796869473296522125156042051495381435010753256247630407156769574811370315870168294378838009582208319993243328663412297862827415320022215422152427509320607761991213246149091308713985971337148109762714058456835368387898372945853919392319837169877521107565013357981353169028325817584068936292550708802428658399459553077592908754573140934811983993679915203760884434655332965462026889334614306080649655659320601329704461545342553614336989634621314339948149742692058127164833358256783963792741019121659992997562563226371430126404806387577176459622106481298898730015806902971165379690179846360851580759892322613497854602292154990129658046105097866706552131067445347012465727610643624112146475403745301968491327625350856823064889237148840396181272496730909254142680978731659004547734109942608800665535718917568834124701789291868176731926154147134757644068897286934246400743890622307833816587779284807605903983599367271068604867942290249333737327032035723356394610364919247239600983299001196581082737165610892703002176239516813701398289511362530649096441799957213799088486213243173313311095882719965851107571750182855855341997257724234484328382867673021089433658866169081298494264415299846279486044699441102130000138613626549077686488055705610892753374919887149305887266872708233596772495502489899968113466417041200584194106623997440606152817154290052250194751955648819944565524648944332048137906032674335394299919108292107733020212979218888931799892080553722728557848280012538615152085579321328257333656854923635206473350260454584922374327294838288381327435977302922297914216903560662634676008580052187331770713973812896539532682229102064197192594154798997304838917705427818282870843937667836786699218848875511810081188104952352814037338222872402935762227081236265788873561066927819987132870023728299731176919012502280216565798241839282805579122957796455945280788908867384728455044433837346425588812853835313994149169634637479213376716563054020725262901372829947479652534081957075343645800775621134202686638407510161313499757815001671364416435585484988053071484256602847414761968138557585931725307646995993474878738670734064075712441370621992433802659138876643575480257002482127429351094134151645917482551557412054600910434300195519669701571069594460403083559700438724616174631553081295217286882418642117780398611311188240868095903261782267004986680466246583760928645961209263915549714959736763199252341237470761326680011407620353197901719027497162978103884286704971951456387826872159861440741233511836725431019113650959806027007754368132346890301735144459676393755973469231527560406014943949562201781830780042016809891353300179867742259776139842439657317621420742352068872734396637249824997197148677172905954744795592689579192507085602749408324469980462677246389313399081173770402558339153894904571081814283190814023005852354689367553383714811054624475414770570979765774808957399197122727686121981178608878017517569160894013356597184881883632775328543466951310392681402967287436122137001433834409298641107700711495025958830054189331571119308593405200081015799762503784722857751004537605303364000818132994980079738964238886434422973388190123807776082224621486655011977743372770095573166932795301024616814702505259484930421635439190098775421719423551357146984943622458007168154331489198267289806897601483495357735215931596080438302067648829934078176282644748611100666296118115215760164184111675850427473362457833481458740469983303326425202128175097841481081036968664070369841903586991083707298110696949520757767128541596858955266817726561092392117942580255978855296345798045667359957402972911550204144732180877558014933122776493922473709134564706424495892275246229437813339534907158610842319958192433850260153503014727616580221324008335864140158930283800467105341354290551355429723903039944029184434410823514978093758399515370637068388274112530864239155498893164683755933626895998603493611779445071654287826755349729371399392094164924371745559779305984104285902536071068934551428900369724080279170628183121252644943683161570352208136527474016738079439091875892129601582976291114520345964548998153205536727765474446916828706394848251149265015574720612492052668364774845936724365278102342167710857911539088741602370900689632216774815446891205594969433310921741377506730648684812089684591425297825453607747228536941989235891206115088678693996003696312347426684844473144943004282369424864222062068618080624029989938069995794687418685597429490770056819076378859798080859300615221793554548380460042711327327502605173833240899159208532796303530252006715151476860813111002325346973092132680852400425799248368461802622837411241177585771632150674727961035421592600968971855367777205256045296741256529110839980401354894551113525489883917478480118593769911882426455482538144322381079447763807112386924071858629740812112805548511933116701970616284547275052236533155758594400315964357377151662874646319400359889962742879889421853549871582071085004430501467566867669371874434254081292804340970272952299940930993274223051517787555624469139738389875870813281027793926020324909749362394606757748501024016876468250401829881168520148406655665004656027635094899939230244075495985376761339754720840683809472345030677757014199483531517969307236671867950386791473556011946036029046184206462065579521034761373756220230001830363442677344144813755781892227576908791040208459130467130826810271973653415682702004808680972421725846595144688999798735496142734619533287574602360866111008109346042768568059697568708673625136093798400788710285520482534542687140449522771041897558501702447038765852201945198392079683043809082918327759754305512121624774707731512218989805994160478797658657155038429913606436810523092357842748891004141433254496802059283831789159905872652851160385517555280017095971039391433465629283237708359323851640159303969627199373199613010552189786811307005834514425750711968267287291208935260375614037817467620211931560052149389872484915201894661018400789578010563855548062388739365570131716343497244613817027967877440031685448703065668711179384156788088336356177844250967544132989832395979603616026988015017120187185866240290916648036313166621352383932808519161897500058052097726844080189740656241602120149279958511515036841295902398240019995797792003727259462851385908218781298831230376658426154541147374908192801894431647702660885133399226070845342281021420978720443180671228307333667352217224850157916906620641675798744955154657623474946486361960539150830262272498089491977247185211903520648503865627280946804989917684999554879483910279754271124970837638151465178265276237145253326544092139184657598587683214199782047327343463905771323271282849396699611115502262439406686669398546028697793299775540180410896683380374135844787949515948959441411437251632872832923679048253926774444224088696062606676870626893634578590382879426894768232242294896234070173927719164663769574978716263827380845965146592860551645210974735027000234245935952442086592885353565000634470626932567149636902772343893025335975711281743340867765726901364297333631096946639248945984514369028820383514426351428132670092540777694866638691099001210987159650852859869027442782193695067395246571786547524882348127507763888578462825629718393447145553223114102548539764489092751774679238030787747199271353794281478470138813305195678504821345581603655609506903770659477483033864433056582089971584500208900196675872468585012976825291220461539904713802131104025554465052005702210753034337813973413347627015618198108326422306277972581245075716983036389293573637713373966822060875642944550459086619667557640639206645384030023312563212549808002414914814096703900403751194180278085126450495835048399205701675358725851018807263875611410752293286183733744126960027753977594154796320768018344386417687188194276427172064820065252693469399114280566458088083923901821512856403741949131144170174015458811188287570655133128277451803640432224805060327046381271430576040900900944923039317328806135476566802239393906995112461730756281302132037510208167814613120855132525811349393510888701146236719615589678634173806396491337053034990693823401176291436992393348151388675133581215129358534288314653298291191952100195530355657134349887832229566265487857470801231735214216799536890273093280175000748531475194319977373425019729685825659221334027228894678045066176398503439011574439735427570165609033345475682927054366487322789997677475551337629364037465892711234006498214029767563227267110982130883493553432037362445085718357956040382761176662680875513132750264878630325391199959730885066175069081519565530212178719282172124497613201803889400652130931157085908861864494042713825134271353962819983934391382876059528491259696900685061354875408708631194079934411255963744289977916449125050750024167434845089711099453336714049320354762259892465560225812718924770205726865567674569978196632824971113916192366674296146293515591524040159679743045943835156749365325810589887249556250505295176009657848675113252271268786925014634631682474497377691800049574718958045208198725240073176355141316316546680529368682811271655033439292217269346336800710472752961068183243379613689718741575493974596393582710199245643252340600844493632281321168149622674444403064113974649717521015069470107903772754065874958494334570348617443998556109543428328954986457020169723941707217719613609301130137727780669584036750063633737681699928177294012139690043810863525797678681992436717120077727169631637850372323001004949851790596335216994712043193118703270306579904467259339435752461686123558492302870566354700022908200298700257232622903020982485409154610625702788924755534159460809723687635310613208487817279605873298278628606829504503936561464889510133695553342532245413108061789903929199414129057959184279846957871151692657602900095131299178684561322990817745526653475811358318629377142246443505538918921460322035608609077707618046981355648824481183687003757949221398262459811837575411014224840517969807030734339786304513915333086192014068106780260958908307977361919895057719029802609119804350788079904592001221904831202023292275976787587454497279459316783360211859514134636284548633535978717502550662630408375792139184967908406250108765148830508881038285479491859656013742935437427108856199853480936423537131300977390663245078749518586350633894680829009980306509660651049113453516862944304760318732568505597000058955623669163242942201560971980901063772822013134926717611600555484622523168808951814272324102008466481887097365809840979815109365455856672171745106282131565530498759856225731292496687999544226713787155281393103447646647055084502402707650206415906802506636363195876259685896750583220487765519685515684034036168693200487075728630221844946223086763278533978268651026445048717977641947062463561220957351573425895716072967800799708540597264557522286718555823459904066854640882441788600311505807830703746566872371876847424564154191670219523804559507332750345778200153778316605626181604515874878764603583587007865560909836110541415951727711016015520658358010826695317507209380398930467677929611340890150933715665216737874844060771464064925979313143436476264810580493852384396880666555151174807195815335763224142873495019977987214839815828055542090818188405890978213219507295403615480895645703077960229549780198154954132868120187527271377682964448894884574799737488740604118130387691558239898706897447546286651520747079061553770178408837375529706160752412626095750794065630247852669843439678111059940258026225991350805206865293449318269381737371071179569115484667346935680147803170918320201602097774085706005808352532803007770499781364911776006662698057046134724791798381720599955003009932821159605824196023537712510230564749122762547031190289607318725480548175130169363185088750081116965341426386907495416442234182451137162751781844503757468930160880633449300220285119454605660229893648101105204042760461656924327519370786325304105756335935206830344351444909071009088629423905496792642638724130043965673102105228119345080200034631382973494065918647093236738863028665133509831513883976018642600152915947278720732321415553040733781923230856441156372966074628049400863568686200734338843519799958535172495624966442276179134292386082102247561796593000402548530175662731304593889764642422399517441711419823921185786530953424633882480568740096918885609947100004883193644457027833233802530315339156345013647488768370313608646499644484952356463750175387127262926661168251028516500303316351541881329818664797716372281792613541008642669453405838070337573141646414796890893832235970460665046897733695354597032639627091121150018796032357792708579786264713364408590028233623144479226712562736737715631181870897372262681535363788384711714226543377390360452325462357039472945172724736176070120944754866376343271291004473884291756797869342917124067091991469681005460702090032621856747875253842847521610263511225618337157628862761506108791282483907086082123276405461964827997178195462407909414375585268422436924853750710997663036599335074846376720479415592504718141353284399503885390388736581724414221283152192565717432262046403081534062325811359016886782533118088455643544746709997638960828106944370981591103208267189586439610268157864118910774367313467044255917444211818633976205430508185030367184561844083953372101196762872107102175843080193455244099237127043652172207988343778640667272319834068005373861957452236417603549015398991021643862266423366482706907202217614921040820319282597032919139520485085397390366941538481855544900576251752183908928985691871516807095370636346455025309652281802351756762643927251836694607931157080628293182642508586904122958296323779956269604100918857756377553135853044315797770516147601862813658752940218555288475465364703616063733150947112052125910466315256576369839307838685405534771366457720881011462491119889013942444619284303885439758976730167496704019746423845888560359861725751557081278457058258520315812078571997890025487694159136049676814183061500092895994050587765842044624736674630865677084095550003642778682135664552602074853102180044629273911129938986917100047676651518526789865247336169813714537268343512902133028620323132359081496040291192535971391451025118067648463870457064208904735978314318957956867680099561609635508397430372985856757450131848610641140125098667957100626826416867946293414774354169046014382539607469321884038647707271756990453185222713445282530730716215833893217824128052403261427372457399849637827351911517100219997431559295238638878383951691878023323771434971616690039553648082561209443560784824139828170404863572052237823366286340943742977598159507960098713660935290265467313523928330627469035769036104958042619985518668831378104796330935370560270177022336803864559981122629494858864699988583131144294617498644655478146342285561406196441920444272504189322741734536988783527380804555114380538035730136462822456025152281055058504086406520574474184821565906261338767566175765858949679437196120519327172867961155510276367001958093389681161003536439441979932575306335414979496840668716356386721745349179029339093690303210556569305834279435027617337252828706519829363116138877803761180714285841847386551205039994614674917447087853912499364441557202908688890901018880119436550497320651338558256591327388208774631087035290724627996722441402918851121118717324725249418341694658439445571842967219508257110384824432703341590364464920646068619902274822642126484191108419059739526544455142216270397589931263826756239758903379282954497526405702397989149086516984123891924731510748864383038863707861330705224596994810404300836240352667270187648468098204684517030792571694305258671954711358516057944647536357436666546801112247575196221179343510958941364207454381080780908732087655014609568018350606089178930199079958963468371785237246735653230285713550704345595758074326205639344290226081561004558014606609657733499312570050361326882395733735164327824060371082331082605416395217165756827884941240687081707202882580392748600186287517018743494586792588899795724611513899482351649489958493770855435719739348172308210695000847278830619126235352341482428351694086321321824559272454343056993702234312355253842634114459358023145612652573243809554242611594155524125479923771149632682767869386953805098769866409921653415942464695462204735451868294479430336618772561990392086881694974964484894042385547726696671426127905104379900558054046813987179780690530360268618543459313610273124317728168739685514100975039405853364149242135436598732072853320941211186631960311437857229228053078547900857140083412891388237607058998259563489975923936529703157550731130926103555881933219739878274843416000274595564229607344705509509760043252551031359667313081157734680077327203077011889947340386550265042775134435748278318980688037852334333141028085989748562168558117243381294315402599573375959365365701520477309190707424529978766428827180299554799055337757391543115415637277270347926187710164273003816519678126202804284363283732634235160045471947525811514698643758042616433492424622768446787076780402621264056294950424497564377785001310464579473277320080834902761171978243135112682204807661995183965134933735183535932770362567408103466398426104473489697728203225811923797430022065071433646186518296320508326378459742889633787158883234140201765217454696681305395692740652339138281115836614881275982115456208278548447030172476357389471796957294860815702910924041948263841480386765655005565700257106548405513359876692560960903189199402883446311859247733178597841121874514602951813781161821349969854574573999444804364788716699545865079258013715070669010487931787781276196791379904169693604802741490293519145872794835226560334875441200309705761595346080647283164923051594549824059858916688171739058857225830887157112314277125161373948456085272803732559901022192033304828101089942535043286919662975258520529777318471375002864985475947242297102083398789641631437284371334929260865330147013663914100510880223080575915940192504837085048744459794134076932576236823414935091621341122216240527126944845052366751212631331438797078497493258180342861961242808391132923487871786938225195454852008618393296188735740490939697574704730155768970304292641007126105680261090058630886505581828115512681826401132044686724284262494813883715456927536780108179247031359907649787384676538934882292226762951782884267152119413415876532412199014516442881024392858143428625990957820682598748902213968472839598629030569100722161161114106119354843299231975209415900662592839427573536207876806761482794898096370990319121159808909399770628574726392004442763219767527714465752887325672772890417494764540358703977520970109388839457752816263133583529508741521464645584405134455795987724735560734608526856902554625234592195294683745359719027904122316260305027948329967574844146889170158587845974025497314031682171872798935356058810639449648453267524223222966803159019777454947282573073452786536638467986505903954260990037801329853976950015043851547639355120100026090990585060716947277183465294262047001952476776572356705027049647757372846521072317694099190605192480675630529238628367977494716377978043497279077250560277764949701360377863664945478910752787355360325667669311755163134599488759249862090351546118810261710037692614372369002416169712615045599673035532106349343797635432809443494805454746893088560106860703657906529615468454130567418145356510649419584957719671034690929365240634126332744663030679658480711993311819967321442722475735659793582427301760503969746981092417860777153559083794531194350483092478249028975818536464766583300876109530359313943424403779026464311283701702280484549142127923188114311135530669501805954670075331830091079362015044878367322538058290062355974833467533859880239642501991819444434982704308687294879772997745056322490606057050583417385332070625738628340184852669243817797792883503591974957551860280171089152319629047487369770069886811595957213107558176701060579539322652907492305926233158593134693915018934054805171920939337404756004881591312779022444420925921543019991484219455633016048607643406901594835385122095456310810922622806451948010709656271345290189041531285038346994590502465355564019732266381034168285186831152613396920628411197944509644885707404342618442380770944924612152068428273085946966614440234701843223180838694808569060128884343051630297564260865050643830095811454802023644779603072209416246675850824467217246188636249669228637436135159834529938118040635046838319309304757648455603768467469527812302274519829609114377300730346912376152867792292905467826667815288360521266640337282012419234991672056281380591504461197791937351643735265178547932397148408372033810743144973684350947143881119395958241134499580954104585573845287183621977839929895523082774737592641499014926457506890646696579535989452652217514102159220093221213918909740818324570859112460337317252859097914171461136289023934758437803020401590427589399637619009488481494468783118365062393676408588223589681803646380457605373183700036808229482629139957742677320429343062722548409884108116106649770433308816904725658140281855481967639200603379965767250644817430600044036416617305388998791501203005775075913649869913458282378433851235974643846683830714852343688587008043892300691811877692448843813612627685552791915067358901337726490927838346076695314359597209037328076821921472933810115227142093767894205769204273509935783174544571067149178717495834916996689853758120745247636947588983856679416038376859676011097451433692327661597630971590808063995423644278446449935690865797348244650804498220864519068098437405821420347123928876394211673080722061618829912796534783053154070979498480102462845878130454923329325301088174573673164956556815194440495582407184162022579222694578529568029240841898154722853633046984583689303885544644028004548724490652544256937872540021143125142657966655229143646848939800663987993639100293937507839625989988080957688169481999053573795088387024211569498218523940854166048920109032103161264383027690349520511042684352905223093470665180315251389717466270320105182567449404253879174858506453435400742204895508476188345443437421922255147910381806131340746278095730516116340962955023223419163084174560115836638147274231627705138469661165662417176559453306187986489596101781434044132898483431697837828282966181013057385441726031354108888252410706382616170755149094695889981368187521632087824207168281387689542991653039820142926690681517870344954504033466080226876234586256373186429246891762021743977425294611271812992149012587045570208858487464669060186034539560078902355250182282766745714324890063832232971093519112774050095848041650554103110869182904345466639956608986303431688741073359496881513984377021583739226177983297918413049579295081177868898901260216510967160675771520237758519716210682912639842046419723302997271666783233487871014878022837241144312706551204466628436830323189549428272168422629503096528928826697166604045433979502491736481137491916822554089695980845655915080809005843249333603052667197012682850858575133355890727408533707779641036687048998077390853561557224797250006756277554927732476019317038536972301659598594902150414860243470570798259514897645430402440694898523407366452134762340512103363971087035901350536398538251233893953180124323231384082350172711802670112750807566626404394337499128195344074712063212347905591143550829550307649360800404522786577110069491472349781356204863269008298979937270996899959010954047659887277842664971016443070427259087154628343083185283498859892939090092381965822341754921246527040261019404055546862712086014765898023143861697571722299842696058083101570273814899047796701085581525814666339815331432104994780865731282729431903583217432491061677377478229423129378490577754975951347566485180612452730798862908644511606001771945071066340852039644144015288955019760631436479147997303718900444334400274671083939955539763566362358036615345168790221136004948734821101158216110607239085447017496048488586227756456528577060673445914433928563666239799489832951807731230376650286153300601585267444718344707465192967188491686542488676977665322413931734997930374524956743367067982568965084676151356206253926902673452752122496014115497863303358135152295099138160448769842228710201356983712575759014976611955463976104705185691675286335726441440555833152842660779674393284148743872933870709716893067399176263552019912546195589295715895485863628861931660010434892854778540340640174654273724710462194192699959832458579885494690809323539626052503818112529335164363605497507062935722579103211570210312399183767165739402092598032298673455619228697732849061082018181379391803875013094464597122323122890859433849603389620109365173880166290030197780626860849816766415722437170351247396281927881087366669593799001602034683131866335051120584891480842980020570463406762412023324497379263508469220858151491115725772151712990581517915647358991648700884366499820879754775168705599545548229300795364729167539549761462724504078509334715255629907696817474515044262962398536265539502215894480737669000854031516834690484929785738988718282709626879443380534820453300029793600493011614644650611327338657403605684199120720850708536277648995747183836420100129375451594651799033157813799369776298344581771228408522507713441415411737005400723387218410602944589420192090634632970236075004889084099291283384284932516908356798068509102212325850655901204935683539099376321962013443386097798812077902425682647168217289362541705835021837351824343133171490747634191993532566455665370603653714608805176959422946851991338716568609628357313344318204450939683524917086482526236330659589219713220959909012522988662415309023889240182606227569655559066988474983796102564770206566438417856506896258674499499387368456601208684714871158180192112289001184419421807577462919352792257497492251848394202998671988280311756865700429210908085820177012380627669193940663972307563301059635661423899532657514391902141979541024491258666247779225826030792264158793708033366149356602004784772148173887264295793333369320593822291408387274978597750239212579953616052138779419414697759433431814685818601491763786240197296181250580344279148280721037419543740958762896442858049954414929825959442564892070320648400830135651510759671599325723841438604699202392817278684944112344304040910017728051400154218769597206388401979133858824537365679523565561870300470132535591824109050933407208095295041108745163478635843021841490415706921463565514296621690731345497047270266332276971786195086123836909431902413053705820001444388530743398638028488609178157097225613869371458041429426523118102192515619547404588812212943135544497329091653525139709009840248227380471682764709422911340229576720867422339433299629042949192469831411222575971296893855694745399899997293023536929492330025724958111869607688689955628202176726036819644063605041701561789868677442085777580740440514415330042928058187808803615581339770298536489862820661885834967440101491525800941261037165438234047179272275026819524123192927625172900761215753623390997609633538690081687116137935152917906869733872094761571592584900600670478625900294427393231102309538408249210365599388839728043550101152960897455187880047483371740620518095098611139688216535514481332131052587445124253863439563159077498989257620207913298191280331791455494661120482867809635472114880722429037863072276002880579121856718860454455052997666926081476534815281387150491664269483014903464412256218993370605964304033964794679969053500412508108429190317167666622522953594038877352047572222263112332534155618806069235407825404387965829720925042522309149416979598803880340259515505905821576859943562528989486701069857443146523012584771036597340041159823878067986513125174899851253146968688800836555495644034842444585981242414961476570545284747243281884791686490461436621311345919243071408742833493445592828946979058725630916026311917322372404478251232811377220034152911474823354653548512148516501811673906907702118015230231604802138869049751271007289513906133237634395560846060427814757056582293504053553298585075014188494174159212523304486019403736139706937604344110022850307458499880251141775457890348918804879025618211614742270049349402794268703862039659037438368204139743553658905346418872445653266535751003797164631789119595890287014787681783056337708386043456965897960815808976211301986667884270624727388652567298858846600794498839283810623554276443054973177430548168372487456898591115640767194233021737325285402771188366589209918865862037443408009679390182436421441803914825959832310620380184828263559877275902308810575943393555070908386758888459342873880855908562584268673962128963805306176898948611247486561043259386283354579501396012925199641379089820647972867688658332722117622465837628002190011107848340760719857774786146247884249243164902995316215368604874467012729559033898055417146488372655161852800873785037030285963149777951563302119510236598097191540372682063651684608779587056386629357405669537026021012490487580895722488529435635192397420745788448921301293343099808427609501027955982727454754211235088266286656455958715612313182930124978819640691732723608763427645592408612035057897070354157878377799046075882973252999944730627184272183884938236897831331943507879555933892034746633672416420068938089527420894416955240496953154086529135398006874762274425025488250002269552763578009694420475224304527476778496191972256865331471013774194458167206766543704723549675916495887308119650420326663909696424285138861107154689119209847117696278087664052416601022620384866910604936330252590225463802988989672403726690281860472006876044258372151125610325028407005954871444971328641559046155237724792611780352877933497720452311088444538945271561663217852711669800418289202552454496855827684033166909808755064433858808003277682663018876803249400924353609563675694723594059661715260015204969486469802229484116998633578684235189177450224495609033734087378504936479505115858273064717253517097874869219573962004938283713977674138682268758734714008440391898251002971538688359517355598699151168782339336796585147992326063396613865200587070745652043657733480738950634185803654869297371957022349731374254561545389607662920472992056954555884760744240867131099952853855111868926190793008719309732040385238401411429028158436654259310967953629708185243586522391002838357046227446870874874032618600930799300038271944717836686240887227987517985295184912965532802425202815381422122673334004978729303072452018948678537714096068685111477963928450988016583369280865088543267815482087238983389690922723022838078392900538884471942359740017992514864411537103029945311180678198963530892500160459615775121210964225110048450007224524759066762305782740722046214569543607381118560556063210977522120647974611168300262882677935420729709840730958170252038351384161278936116140418299137359160334187362009261338699379215431441764143487324617339472168957979969341283630324141773997403156416082826907785477133598068015696995519500166552863134239904244615613501810050663647677702035819778617215810834948501138135421696083924019918766348402511992926538425955304424114203273932680042589571275331156583128884760881171047027870949061327505652716436214522431968985837328902950813332106544359383368067600594853481239035878090396192925206742805082192339440381553561754709481560636245500500601048513645708818710218135652981662195405146576288691177359241394882119055327984082254139822091084422543701365303740968420850922632248979147314059504197388409532012865026498692793254707116290970484347749981174540707457654598304575865920076178891551609214486216946116256960833075871377685946224989989189157362561903949300289295413600070748101786807102087603712724476134295836349651841521927927084844279249790112501256205205879158981531772735635741953130370961771586080909641476001318680594354898565087975363303001153805207305895636916121807891019986692747104611038733383840205280338962754592318304019172406099290249574457125376071520932436689098462744500761085590598107282889309502444563798009431319379647558314619593763431017340419165716508943888192768363731766850920310945910977590331194513223493539604384649063088311554157104947946323928565625524385555187910726232447636985273844028954062175645244366213698944449849226821969513578665463440711848297916747974472056925398011388967573785073908313604433363666874280661548621980482420656264583255172024262397664662270254112719352785832627827392225542792892144963678197918667182930738643955061972934647826479329858910055575449199036637278669821660673792942948270906861704487324497759292874147242829046840094999056911264807277700551542226490935882915744412789340503243011734657465992727710826024896100949052811511365298528849788780873177155768455342646845190112398681259736974301234625936856376871777188602554575239461719901519326649991270520659214100099864393333264952419106532999786996035957287673509785802666483102615130072871524724624183309759373239112360152541084481154238058938831729952666066567137732926123058294524838918202257756291659686300531630633184088168826602905736063211524806684527854572040467935780688129430999824400804201713736875005416009619943509856211478136093744060202398133852347620915299878793689064941791897847487213760048749744590625274176947181715566786884013721057623036877794128013247162618087678663241209174417667057143210749258435388053870096711826200014223104078870463723823386474649307094262395762903006449164474239365094738380429025480810756317265161626505635560996080648965741569906661591606094876082731896256912583689138323980486584561068241596027615827582582574802511619974961345794936788329042756163529448229498416070462960074121587156263475315662765440500973826093619364003524492705277627391674278830399104430581344730158580549745044805934183082010247912551302732595747843329202114010676545483366163747040396000641675325941742952648215960288950892627393236623959314384973703865573932252997227919069272412541730981356225846436952922490808818654324404684668338964693551667247493609954127089950929892751188827163007703194273690939840925185047107477435940986228891269504402896332868355544078511251832228137887632022668358154267972834949034103304071553778609682703229588129585751451878987905085341354501044317975133267431479371484329130734709648988899867064425939226426291914266836912673528603568926502848189241311063722698356133777701104830083716523308656017084043480760982117324170603663335451383544804620952215773664430571916404019533287816172555117574950591171200092481222645564466117915488939120055620848003806878477775259623101840559866242099378773313973135863342842013850696165706832684474198809611480901066718751872846857232428496786388647968019291665175722973319573813035406428189303676395263200627047383897571459966328524015680578292170483546858735100694549992522587711315897401424327508068665685776010001488671077183938249081170530537305873892694149967966108919687581687103242715981573495655875991754383063623097225674124439809394811059478520448701634540433216149731213397429334687175183580115212852408412715394841776331394527151545334359496023600314274629248179807384994360732344233952556529746856728864852778684967440228323394052551183803176293379219828873842885117444404321335453228886689843817740664790922130287712590223064146801513029310583527043066307562006679479564946675415258226872709140293573063476586533579454781506673485488851361868594708251980387193537076340798399728158756245382175920001490347450899976067046327127649350808680836513916067664788213508422543989042940456007151329184162513677808792405328664726297702949041106216870852109219620238853283998271311471274152721494972712477322202871648561229826535265610083717213521256952845971504330997946692273202537497552221140678289644435655974507293577884204687964710887904040820661446861367651163315650536755121436427063969561957577239409212111005753234407557282176599382585346268221234948085901093415606492557572353302115097235853774208145035279222381964546594091348032942678924148002780664144830389588734458542728915978700409400814380605424445157805380954514574344051021615155127393272192223588637577606645906526835070394895618050969502387013350720571548704800093719807865658232952072445220096409110100166795006519150440353359333988698244189772049480276247207445996966722187135900334464898725830666246885943523904729383550031828816203797114603639229780126170315487823768124985248397241166649834778209562102967316875852010103909769472930385316510326559638044464714084327256281239723302441446681909987253250501233626626378064085757643679913227945901856447954750755939127277353780405665120451269332988452198837913358794731930603995166327313281847356560684868416660352613641995839130272484213533340914058020619671808330209706302964395661038468068622934330393051998091570158001174930566861125059479129083898016332501537422081498537422438233517983420217916398571298827570468777318583274052064102484240638914374471141589575456317705365052207517028103479494559685178648798983391335200247167285058603496478847910179355563172008462635867234994295000033203966521316381712916942007996144462981736276768956473961951574063493988696168515000950188762305334705547948702287095691313618397264359447503855581045965543821699750164616195091362491727710369905703674922802984468534655300435483419964393346840618235900310631165480885485107434099470910856266495077582572812170231171752069492523027126184795674343399669392657804291107385727719942827814628827696555854898091268747242673523469756843862808785811423491008734984717168580270674653653305758333696700964089301334647229005762016723023161249010840861226563830923631153671062712931354871443843145768778986269369472421021577919596437943452779780794380211540018923607204456939819449783031567262837845935339187232170443287350702275384318849776512284556317642831728761139909290197238452546737175656205243623098809419628069175241589976796954511588046835352035443712874870641252931111763775071428733185981774332025182086973088694276087203391206549226567454270796908870054335543327067005719279730939833187012354287146200724502061253027014554316603576473968842743302637265416926221955239577112756341510368003443338246401391334837392683926601362191923438559431962061981698081788603709853723883453406946091922909613829055930867210480666001805948349026296798016209243406140102289877114370383342559460943542055750757975970746879626388820412510177454576306799016173066016892817837740575394244331209459902812743529026123006810666905105076695483958341032520766462639134003127172618086291211770713573468262640806148687738161204953890976883203378524919593296609974151349670331275980070624722385875545885751159003983348108053356887819018591543223828175935005805915501395261868664571105632826460084735889618861726465492521455380326284335447017660799052978077096568097054096627279628678440016475001859898020809787424760101843855708772219054697118684316877938377546670194970890739893769919802204489683709898465621215937913499480912408572580043142230599085623244361570362879491225747775119331222954218674656311271885789266324811989946901206059963478525376567184490797720966965081566221333611615653756501630071077437595894866057108606409054076378683975167811471962894525637986868226324596885775747327233824677223161760421579991695008620721421800057174368646266102494471844226584216978364570333886404369684949292250505600804941408052532698594762568155267727154749990082234172752712861077860313815665458940290371706346741213170028598955042999019244233443010194181616445369336358957086959347992480241087415435390289548008426769128730127219206712979988195335380236147243339413043611649203313699380053617435128215341009004954342084885969215653138930507745313939992597310783622376228844114928768888256572234382309553229995907227184037627620647431393361925336112726805140589803675730723551909348097816660005654417049760294162991985154081855517309125278246274401989986191691774656881916270125925039980072655429843707904253432177785613326933364651133691415271324613465271160312046810891689837605095859032259174932235869765040993917131522003859592514817716607047392523169197269650388188310404387373655123672825467788957786201204114616586820540150757031233664041413973899215000512400751058398648963199306252628332914920018581436980278243285253114122757945375689349486669365036589458772976025484986040259188144906018028836393519457739250808898069689514346193257251682385083012394314612914289246391113442121584213141189442369877260256744105840391182831630759127252074868807950060419842988026771884681046655311996407772422612212572139094656266594248204256140564401039376047154836352718114426038862069894289308300689660529250931642647312797562879195895559155047350966809925149095362661929452366981132917963600861786914458167840200446421734545182350472911742280081852189142754167150489766186743721687620903152167496122502932230371493207898511359687201496644811599651961316390108295873720944072767734033921416098929788972246677001974002528831936757323452260307478798606657300512262600812153453653116090394046686568851237130247561146031332203101577982470655576535813034864072785816534170925587742280903187233408239498793473972981563760313349725186961980328941536934896190050128963560184598082398810115883813841486466734769857543954181260289737428408292823345264271583059822019260847627181052421773691972162265272626376120526663260371941031696463290390028853412423170399722906146461822632526021835331810495323894412295043559124403936129895919008066957174299000225651013606605992457424923979497132120947015014999260619437211670317662886956432891155327781559339981019943162552067199191914746198913044972303493500624609029824444145145358992216712587846283747278980389977055768560800823521334973332511286198733880945366299445142968170650552915774131655949142340803910074762627904300320058610451296816246025145899226297628682411542171967192681106658816588471379862626851921712432608991417350692354496995413452090498296098458640870504080521620922221036366524576157513589329185925667687474908086788757810929304390721714012951907846214855009739076672737494088925398939787819560547515875537507099339648833837519837505590276716748143056757925709994126652546715678246858501467667509823236983537871528629868725589200837402672004400108149375825519930813828249493413717386377922938188130140196387775748612276316842589449532517392222820069946101278637666619444934489093845372235766403269514484283137706466674503703208486534561401884535878927833262380010940078668275724123916853100571359042843733809636780614112068070251326621459940263606802010345736770585665626537756474140253358643589253841344391054970246029955111604490475559257406962251653262190709339069933016158998161948389486585622242817802788234011893434865206079347988729260717005558366706701986663150869269842575415254428427777603859452392122487081048444258445754719692463988383244284431913723080872239657426344428706223035899529561182988989698709856153020704833199979577880726571398028137689087240975121463098688414126348788234333494308579202238729845101647433656581321006183900181485207619356444750538391986991756954554593615940875369405029370491416063639317575039080319664609397989752801145655586117349996006847127700911797886913352866250835724276311293167418872036938168040000649824295496576337249303226200559957256793643740801222936631973863611576018323656152248198656788930113286683908767310736402579950518733840801832660821468215763435835280640850545155739039160118165367991730916426097474188324191158963323038104474336760962570707787524981399143036749392165691081505135898925147324428962158597959053517222074543562033845770371796078187948689283052269496901156648095872238929473625196241675657738543055642958156945132406547712502941522614569639532759308045950778711015612417026583388955324293487537768436684135235039699660453040517804679749015547515708222434380280661825096978030413595780337768514304609941676773833418435620703138001146632587184477229204171230721235213678602530421673034403148043563440313114711442812615338441197079518372202107683988188005103839971021881728758430947893423650088487697513504938370332088299993125647708422962771525846340305617182835530465889830973137820624676172449679207209370520600411594288247783356668220840558192938305917578191917427772381863456253866574048257482823716411001351787565117633846146673788796036447876426205557896195413611597785851091415138694349100607276346761860542311000470171889562956326208582402327822036734676672208757679894306299360113239710293047712342198045839512542824915042762755406476453253710830036533781396521147018579476464179151140607006637703620157686782025930084484361440689410231320574584543339285319406581085399724697054002767152724980291764447787646330425939322274743901503184200314206918239461950721091864698304116897001235878533606008690037325948273188070737974013336761734585725053319689586983131890710252941145974885316837763377833849397469479159258435467894496958833946137533038456037778360096524085831999431755798555867829318898374398729712916544578627291808509996706418412180509461610458396517597533016019574869257799283819105479418064809533004277456313843553326110278962336060160863667019795597159261530440776462146547010441142494323641843956625071247376478465156820412523549075432921062931100820868472548821193167252476641613085282493238368175204652440450509829849244635409988927094116308362053504545852464475141911912364436655488835503511311660156419686887396249111668100510823198822980082811889393340723804197932084849857922666541039676743808153154020974094721672373668710730734611904877764880411143655021368433180612509953960594782235213733969672955169356159703122459603618638954209798286216152007074176641758173387766550622553592359592285476866325795175732009819050410107521071887887456839429580624592801290658980534985172740907226352052219435422813452521648858496187611274389717147686205695367566390057431850083162382218378732622333383074568153758729609039985597251991166262821166435623025714797980753734916928450645215907195528030519802484721900305115861899187935566404333275780792529264152146783255727180248122271097239585045053331657682108416959268035292543148517361883555375488047535119964775231905050875393181672288374493139385711131354147917294273771150653831636443684623848207258027734346289350874656098184849879272492574611985695575635080552127997424193660861514406434341061883843247308914785341796650227431270229379298522694262710839408545323243989235219998185494911830620451985331317319430789902381625596656924494194817750602946580163774381684001862503973050931399095046532289363243978335198100357273688821786137806163327175283173096076918735741411459759515265567230094241813928321502849296716608489389306432172220877001670652831281463597668596826832968104182409011063465857312265781624400972256767530696700658667432503355610275945760616457369462771618361659042174958876081832759592439649018902969096922707372076152068830208138899505581804241452141094763415834947949165491030824972519911133886314329876355100817315504511530071341611296481397911510410215840890755882634445514026865612811668176485912021753272816379285576645017855604596754577969040487547477892133538272840352699575815168631107664828650556496898527663802703967829230273711786046296382122000266791573143723034397522374098796462629931279347746586247867017234361910288538123001384571432261875475099650520266204709842321262584135296072769712329898107423596323421043013559871045218578232425383612418584810680914885338796251222923074024902132314018469272460564439556807852780031520587688215327622215351890962275460215998061803090309679263112421120065367496106901106956301805377655139177001693308672398843604265239038352854765350377812557401943702467740968198606929228260501442102326387671277839231692046491349008053024488607438874925967799802047849354048862109604746742178249052358626278665321595942335861480113598976618172458380661698984063154576925648365633154260453870424236231627605762987554329054580102693652721556913645630723609794552977362436941337112689004405381623795569687236948696894618000958801717880880654007426177822817222115659807125115785532071193490074677630773084187555767356537520747815008632511031767317776461812451936883648209323940286898555641261354931010635215118651056745398680976138154223544572913235056911644068987847306168135816887201593740960879122102252606409067470634906678843778559863081931399904469280487167768269904902179656223259785700270181497671267079770942541294697399971339524675399920007445379635718128681792984015919347133995410198273937129657526351655247053299314804934723547240987335425665863876523354391484582135073658349427350410721911780268984118779874377885329431318281581049564392613907800240433910281073108621978521812193777372925171976031950808986681020685501090213811090984130384618942173140401443432526833518053544919788742393539638047203699403026109474392467889071365099680212506005526097741250190934712153200514449282159494532098029478000980870984783182325134221861412502645888288990310511154268506746555569097656236140098924375894906001726180318950297604695095561119817074747364672236211877441645667779818253518811708348942055337984867662118839364279155557336853605717673619366964440750753873484547807189107532488121632701737781963620838134842284685034998317470535060789468254783413427316381061693706610677802925680680389083338708470492518330498831419579338900635445410045173902102267323377094039745785858724269651414934994983037281966345874617080944247909246934084525380803773945500429657973631285371398426743715683770516961447015500416783303175603018223279506595918099285735168447114326554394569456081186818644247148612050930169315614808338573257744444238651838171358213220953072235863702939607188533039822354896651190053444946327121958148089251246335846399739406444946017889842119979901326003085812487755071821826961728702285694741793600305413086916142740690533079866904767182956199055435152588568355353059650254964938313397399841842588757165619881670622002367272638953098568930813365531535561909609440521824513141115183541828934906389370517665752587576479651811392226026203204101088930723400107443477918893536310232170008829979023135745702312514688821437094633160358125972295433300053424894472390720135831986072334461821832282138453664322887226150037325182532470140835805719787564159486219582914773952597061333837186608524973048016220098595314864594584597192037864460639544235126710696605538487062665809166128053596703734272560030680943894314087920048369473755467995742677266003586453951967004964762050172365700404223987805432638011014084129002135453835568448807425329005875998384122636994971341245491102915092878199523707129249782956584375432065909939083074111007830317864969655178319487574983779738348496589767398289414543458493224993533945052922643569178531675085425760374017987838777675716799437960959664096871302662184157298092034305089709970795931612596153710172435671697550853514094178370576804437271796822043847358959723174221156380365707479601115896505908206807341096315531898332750256094701783835399259189124328381215952685755611887105346314340270583897698709632358875528269861503686338929288097670263517328011144230425018277058471655155043966692199340335621520718476618738228660344439562847896263684345651571683681096073292085876287260809166144729360649639304528563199004746913234782311853904079876155522849976074160904531941942961650441093785515300360329125549692609368639828332846678153603138992476819519877464863855889064677354711892776303083251771344612741567429122114394155261070435599292422842539517588587850859262406198937822677488665330515558561113640498856688129020098925301241978014342070248246367386290264288611614218245127167711138502570943383634086877945218301022197641331963199078080617042203627747027613794105449215553128275571069066515799639384758208698376410730493582607465076311372310985500459200464756212761799081287511245137528926938852597001662922215431928481181235671628834606002894974927890682860899249610719638073646979846146193080951713704426452070442622494548385404664824975783782462921546956887373082532480453143045287192049408958293468514062445257094092707420757721724864919599793541057470211488952378291941734239224135163582867552401928839134988065469446374630310055300381225775182625390503531973801423992985376085782525832224968998226450581270594948635755901065496953268876837593139975945897961304870530034659074099907502484029587174446466821274850312939003824911919454170940501209339734942532295483310864368614271885444006195706872920661283585445684689933057833971552210015419148347465896284792501088367237789495450350636695145211521820228911158395504861086112660889962653788803446659862404406325974989688408288384430944970573465227811054148358837892365038594516447662295057855961492215634573640081919275782125174916467628962740812456974195236054149543341428316226997533653111715191308280646197997701620361840205893398277225416176974576033376420474052555297633518301235124581479641319531471244112053855664608204344416021016553552426650425247660090527120954786027754122123878095176987924255184025446245695289722154404767723565160065811569063606787718183519050248349402674385835446961527171668470430044961392307140041509596185390445770268935341885312833876285904294441656455697737331453905741168334843566673801732122999015972278100992753377780560420888200336320273928925428323958715483848862965540663431243767331011230725639838185002721185309529771941545674720977383565305582321800130221327795042388206780935397769407993210738736362092858460397736221035008605812320198342722121905500858913537766337137518499333844921219558288372820556324961454784515578754119485082485671611108889141686324395195770148120478005042982818886431514472793550609374858291330402629783136916884617204534858261883275046644478731176410708850123724977766828550167763165786765633800834447154104575444936102708359394865656152135484405554270054725529522180209827914505074351644750341561233973934157190214468912769615175459225766526656025243469193304876853231232150889150907623696363275833904353099156207882687880790686979997084156422813338611208631529229733487005394534593172823940638564530225595175016523464238535163404332514884868529935888647353885027046065039645650387498242900512492948026319765196003572466405394515360705399314828389111648528342254638280637533939635784178586942233568887109119906440921700549656860734961187112545932689730522437731783894394847720845933022829210754153695934214651939127305649620730371527441921068029566437704867894618751424595860908439639140904086836707481017515805885712724767165051774799356665131351509031025320480794331112559952442409288334305802706166719724631915356905648505796540096275956580886809915838143375162549434421143959863411878502401770461139567928686854068863751777333311447262606466365069613179623036270374533714164659552684074027264911418909506295219868413916813833524612458743916370008210954077314209132828849340028014891280149732317366554639383792449506656493344410416028711639362866582822659182380153450236084436496555874300515961452304344800122712717575326304382832055441927180069526828693725267800390437478519745199520940109478407399180996331397392508241274393255507751869038003461212787809657680064043705468135897794268781404920005222908771432985243326444086508317730898012468484145567580442024598329026251377693551728019536201180216137248946067444877588843717902858814624649187387985377863176163177948882076509962693955054275622012075482732642372181401828948784557477346528057591379082750411441882944397016949857801201351463454712043192524907265611249321727299707571034877924517534446356703218205370307303170708763657765467577281657273456972928750391193575377785582587017602702855982020463554419996707279296416949094697247208076274370899645326044840505495774168814738121073107968468124106698183399593007365088624539078055735895814873751152212019191598873871017762738587921989189563288656178193865734816663043833478255745984255004467557734997177970111155988001281987666709572703801454119133894851581939520259960288137364391660546567204397045050548732140632061266525012572821092840262218034576340585955457661172525821266451224942242788915161219223902532203469344074002650836747967681873525818669939432362397954777657384301106620009689651454062628097505380717605666630445248394606913135169896891613038563189464185733389765708269959590692883055107533083558828648800029756035818731238417846938133053201368971278479308865101414141130065160603519090489488464581890323251080383817404093670109255985147298867244459944856479882852732579298296947621961285399745312886014978436890367151564266028779764313052062211412570812735759010964741267364306770621929771280170084959511302422008801196559769048877715645621886642160182408803597299233126969502167363707299015716321994822864855563280067818373073998756607452284488352219875136735036835852602765995043951088518068395382356292178657803609153465386405611386837995962642564193615678647726212442024951296791275793623486296762644431499485198169896010324116757154372527891604925778071542086283827052956393294563101508305008475686647179289406343696591860390215369931656578907114801676814662453358573251341931238752508524306021316160222187814967863851929713130032432007482782946377787472614908048855977258618437886795848972397307754467780338616593319453921066373968073152316964777848466230151288097165767937609836277328173813830757783876493076684246935406882964758458109147633020947177132948986430986336649638048685944917432161284187562794511469079088479224131332088960876067119978304837131952824037547411542568614751219370127050446032874150256404681191747591428905690018490874975053519883826843219733433344254485900862355675643138274809738939231989311141511801972715144961324908379773155331142526698075189071915795166726195510355740258372856765692548167848607949696600050975188309956792844501398736738882744159990947957954511499607029168471802043479996501603344478045910606432843009722674763477536306716852063826473641062108467810050455403013146187072465356257280085428887880437928015099316159447323166355436385583045981610318139408075156592590221603749485179743414033086994354119279208123625815740308840590410061302515958296041964549466210543352874646347034431841166037046877109188275715590103049075899097077771548894779542325023237433098125243712156031239205054977211328780852061767304285557958339232413341069004630548533041082297712274172434371642868573629676635071683261724069304529807419680397372922421878344634141962036561829949626883535893113668182432424153167310545226235353000331067256916472062577781370542164950500426565196931338220982548352735494010871680120596404276244784679868936284452213662614680988492854894898454640264193458847780539466683950928430039032978920257064509858052296658774333739541177683142698911476234723623176533523860534471289233838498538056632742817227406680847895452901079756325965025336820181164934280617863162494124522657106374923921858333086848636871574897923698141545271828351498370988178700911195575382171301334820274788641243375762373517587681885871422956661028812424614546257386771017792502953316807968839050717812347824541653047502517361020031419972339052989082163272055746459920701413129744730982810082274630846410027936374660351818589106036764602949125439282513465128644108719635736618471027628563116358199084332192149821809366285608147713879394955331659282461938842472812892584291113666764350951193798545123738628787244177676865431527489295214091244244279517341543209424789692723173961263128529712948518664174380839338385695725620868710741465964744084352882993909465079306004839505300658540739090119407870390844001975820028103810958674184125531607042298885414468816794674859957533290230632710671347168949938327931696342970888046184657023246371175872014476499145922302589564147084800173663731745379226566669265018852881180846220003618715354351092710178753950843813249194007999554473584638100299887482980802798024498480447427502202479247739439727294295811518059680625011891897478708006339558320401342603231371729165234099534652897580754897656131584985362030815248756768391765085439115485610225551235662627163830136910531981523393064268371366379295467387717778364667837798808361753728004447459795365102264111453327806102432743699088300549973147371706381446232313799298996748321583793876104875685338973929627117421408442252930764102280313817070671304895229572371480033998213903152299774759444815752915799992292922799201340471733852931482414316960973787043791559362008283526687221941210593127577970625734539036385726526057141350212998881759389150850890520296373476048991993804188388991924264500162545476277271139658473594357855719817860372882017149773228448310508381406366606347710067606619732776361469894170505574481227614164722838018986778689381416223916542567917606973228057813050387629780005797925111363586382416421837220147476595881082872506495915345088942473238682508967759735475692412107874929070004558882822788525019960101037719959492792776254617024306343570577585862709330612765011070410078702674887957535893315351468410337561365173090278848502210686894317825279124547086109490505276473629639809135304935617270735191413163642275581763904856983008658588003571284026182282768984407553452581311260439065859819078887630663722218578362647556568981769572941473475299422542591590464170285688826136308668566926407299450721815236829047997135321968325839001179195490771202137263507176133744989900814318689121876551115812801690797093230641915664323420643032219419872426592395197782021968915162078983330964521673906363819389904738480331685083970150610403401062638146292952756539466697116968740478509830996842616332818911169719843561706501098542346081741134600577808268962247590427349532074850398033372877497393997998081487389698565745894653092432004848220504056944499448523152319058060172548763849714426953010252144308657163888992310500460055842821867236781112559551258771074563905292020715951783886182785368478589011376881457109364485449289027150325760165526694275808736398634204593878979845074583781182586374904718911525048702364585925818672812890139478616917037449046952813012294982863095345092150903744384084525721269116459542753393053280969328108783152267609073093883256838203421859094228086802591062397692673727009143078008883562672635580676415524901868051675221045338691089034723781350489386605389366618449562566129739472228098198277117987723118498053365009152920921461260525563382827800215585837439413423045654659690281822409775203647009224323838651575645401310974078771450694539006264360563576280684838480614041535799770487287451831166343952823279767208422199873084686866480523781228021002380194236726652803623276978840500040102133780226505657512510873845216950812696583775355234739637409683512531060489844169682495526368319525309559310449649737583645104500338603010178138660919301094713705422143887340187050456671283328715579890786148330681722964722046476037924730051004453314682495942003431696620260190870866263203033335319478904444138791719828118572328551995333340057856443716875963330162460449132292045757997337735162722263193375122645449597230689958201246544471451180874150903490935126945526486616407839771429891161371935970143616235355873464393263952697187037312763458357959346238218586431106576265189385930305863217644713611096624529198455183270076514056252555987407625666713703939543131958076073731253497995515613280752950938892725348430799353945127229898934456873919464614545309223701548907988784811295230052377938863512485911865308238733923633225575189261182444816827605105825040797127947568600753374050599591817517517621386513226472698955164483368370658372567340210217259186286797508022083341180549310102481010997505657761983008673215681881804738754865588544943767821828935326743691007094476300423011998083142812232698545313509512954812959624719541258309214573239416215873062817437365912021099531888264841823007444649001025885450717001942437374216514731998276993658755574092551344414909071715026114804019410314572699679727185730916253013382600496530353598118176182852311883740083571872714805393119605723064132164039489471180527303663553687922399768805567946658604480274539860516583816262443346132815488095997949383677659005702090120056887231172870183764057312872078525461869742890028912934267928392806934549589861698147198190386519362476129963877297579344583498398063931924526717919831591207736063121594892864983445592074464780689458626799344930132900005666982410863653101801659616707137107506004260966594137754343428856264119218079067437246621905534798328518854644500796039601712004828359313667610347726639598407320399417053547394833872285092823372116967003771422664410616326391700975428529766237345746185984089234558137925404225484904967561471134639633685990862057924481499664804157673592541261063213816238183429359548435273678952698852030527945884825173238100806524228500907359083502481455344317493456102329727617477912290757958991792379598562437863235020554545625144786576378855039314151619152770350239237840162222168615880950879779187849651673070348643232135649441406260321337866639912274080579552721282772307253524239969976780950699430287487419436753449753344495845990763127501639987424886447146511806925975114057352198912540213351983494481882912961889215681076054953528886156975180220676627809810924521083542809919474465129539716066027918891580465564382050826101701625647714781828316750906307022443418350290362201095946680867237200513435778365577982243094651857739232946131500595538047840591657498397171112467306559297147548289758567746687919976005225595550926039186771942384217538435181525448343408353671780370183872277854875759946679468248488664770754482411438455058864646417152946030515977586087600071494135444680179694615568817864533392886823321777660739021858063138898226961588625242980828652690317057940515135240582176728379005044494154379926048999301423846227934570570762305619497010361800340658616512000564182706694843672667277728803700226869347584458264009818112306985871161112433519640970689401111804323861106861157448565073490078359047727444034941502687158519308400788241896757650480290861290464078857316588780642753159404192320426437701948185117026240680730202616345809435478693400905992038527024172025399013479234762462144885717988188574715171489902630106219787734448997982158976812890348744715946159021832628662389753540778916604831261671897579451899794890549811974559492812646894526154058923192249127224782502675451667705885168081784168690870925526578235156449659325702894310552070548929859022373357918284292093093925836458991108178877874456506378066370560765168099954515523653553911332774265080956507719997174939100772743682492257126489670977850484893403322085965613592117248385362524254998986917561503351150397980679622733194536776923776433224919851890477140017012145431328723211496629326894020221261301687950760399625566923803076601538745869943731563507078168625090093319794988143977662964234698958752201597372807389713981202000061614414096651222932942759292609309762189047774903176525451317501279629035761431723632063681615115857859526841015536030699176566154748115796295880620155867321040614723019513896266900866072479048269340969114662320109946773979189334124931625091496173273565914580928117086874063457007405240134171105912185352534361122582789277676137527128275369774332018178584560739763522933107922199754916059374520270364303011755830784858269061751583047493804874706260349841051678300696071898949838715666610279582432545257703391469107753655815318239906397433058653880997135427899303171735858492789254107526431567851055637889749985628527556122795389262932272399403443937072177409811515032749142123352052457351603633324008306668911127313743947750067374136364887573467319216551877879690156342346734937465777746073992426587414915320745938871424327780343246101755784851443261047764896739525397970062666222351764419018551861979890579779655815557114819710829307524767923839240885090920617775961146113149193199196360068543474381708325889861599211798078394750185560634313915016118116790292250069997489165401539834212691686620757631871521438211550079337790280473402565089240196935563423850790009734510438580675562139653398495687626182444830804218434232576873593158877157947911999609404849187847804267973454599123498407533852912839088346974832694485629262177554835079517055664793797867393895735275104729420722221436815367221087439715406624969173723133538409565405271180674770022591726414912794811163703973975181848892959209024643830419591808686176806017948772557264878895367687176356643183611562209308508920097084676113614913602244567163856201261657147877525737363213109245505268682950294563843420371717516032825432542686646446900685052229058860244717368235633917386211022654253583423024079341797161893918807637928041538249364117228526758301624050423934749958796795656645122310255145304141187707943372344231691144642778917437082842207036351076022288337724568720229280985866935411433268215371720119461671063595588773237671646365654758948948160897552901353431592014866380947733192002816578760633983375490528299305553758417717697625913009552197816065614908207727512721951975532306388628819834427100438617097119457216657114507384475743541565349976757533082810438571388201907120595472784393522384623475068108380847180356569096699633817593985726992201679382386261892376247154420857455382797086304104387569940342739860200757223289587928759318652217097760226545958504785983207085344703664343236563008323776280448798310122956200248377025886601008302876843405644212321603535643913134661619628818323883944981173985873562433034156572672282192980612814963297920445368076568720752789362951605036612979888242936157070054055926589385239895658758549196548585965218079194937059796724912802301647743926564327490415283525337157488772527282103429882623558889210320654625490461477842274241883641552962943438415464714391364427910746016316357616565734507326857132539124661205285609255207859756723287200518813434091982387002913848810847298239487017506531463678818307529072580373571964688514899223270680072963762701107272475241535243726041786330860087442965782597236246055088156839862070538939753127986547715066674824177323872477429144069420177491292856131588327944509098732634513698245736265879068149514840344942107439291501443790460641585473488849500034293729710265623831227912728072214098537734746280036459620411057967328047324875496211774333787199965865737398610741875592900526975300274331140600251589334915311204219625933312334208526930326010258409629870449742526604720490198366746031242711882669329246946531168307834546503262667452452557519785098159000502728147096099041151086487897776282114778003494614461834968013800533034134099415418679699831542114677818809576438000234697622788928850521311279572163116687790943382370788637918471198314583193595452096359405159421184018274515041053938703802834404937274216166216930630337809779793703406766397079766089104668333338453326835008130048174973491938285280467618044722837888948916531152040977851085363173753018453005016154685310674033943887694453961450035828950527366074991026259610095451960899249037054150046964191419625795952895829242450009956902162932146171025639839056105843568723276328619843300828411656560573491539716073892202536975987904110352163212426184575585611564963094777712518591669173887022824667044334309767551947943177644497841885062349476639812629422138213138537823384710142552986559553758473886526520503732595175542688819775704221534008424929398088524849553130294410823761304776539796278828352253477534120046186399404874359719511735314757864362634968915966818183774811677530954109138446942735708778944070960392003066926546049972366923987121281077093811526300814215098438380702177410126275422897866579939004011488131296084009777690764096258708529710141650373633018191247635623890687081544237420322197645936648716975198904689014630812324162412596657763631045601260643004013504691697721664491844592799396596600980807657723192159535561415959798612577780836521361933039220153559149720192451785436630835435123921038881581262887957312123507397604557739465645036485032330956472675353589281575529344542856249865805216620256441757155539420469107466665673691640582487062650321840607295443061204038849644402201739554802427412508962837672005335907839578129318954398652703255577120769747589056466500583373000189176278779693344468247960708332034000893037525642661071760933675669901822111854969706168650221285540242859617093791147432926490067360282987069976424618548145921194878454471821220965657542959143795596383271288716511587998256176914088301676384374086491474220077013401836142515789999021757764794692173625308420158342954841762682448490009688563941406454221699281223650921342846354678800867248437115694916465253701209493224263112111391143537519870064286366706377361847808745756462909330874640161457815091403603176097640633526000123174400123747032042241358956430052696586737326228878988675151920791324193459068153301460306516761348880224015601472949765576060142507216889914022027548759423663767004765756837281505453779251205893528953726779428076686372588346011231248057955304458333833576851616797511594663277082768321963941685787279505925897140153132753944282098066109784783193495725005297025355570713103796482721566043940757205089230785432508593323401928629234565983281254894458353049128522457017296102496755207920438231194558672964828988195542101848783283590952750665028425759760885779429948984888720904529999288195824385947492476505510548252116787743203618524098756039809491499771259724280585165877597255679941288774188795884495228961363600720873396487211921191673789181342063677124280436759267499531153246465681200972896908755022244725223922560364730562411834676383545581627661817181579163505241511670681867421134028325022280372291561758232892212258245492443080767297564892275795930983044189302754922155950616826786664505295146843921610310638790514247148500905096785080294585998081879342051712418367352265756095948401622819928421152374322335101961160680555681340231812189069467644099621011899434248480576627892986478132163204692837865804135981400361389456873511586536367122515009164817032760379047937583607177322395602328878097203066074658852343215350381518035009178067372322041706767766296436278640146130833588607109837064895920668163107659861032422882616353205329211298735722876865371705770497151423808136006352741580817097189578861247781775093641638873544109970014956650963673447891259159832486362046971272076946847735560108218611932503059711357699708252033262819233589963992346735061004486807601893891332870542255616129152504125616009476639656409092735725326960557333123590788454393881612961260996126517866948567228478404312345188201024234014617469578891702544316400575283747496508961345726781577589955933359201847417891155640837098297031648843545134491829182329589759227113022596570929005933589311996963462173243437242519474208063060552640261947223648060019311901240406982487251571261954724551131935715102766370541985769572094294663067639262709221580700270434230365797595851059618369141837613043815743868149472981249623692326950471356112530463542807471313071625789245212735843358459618295777132457355444158919753692150704079444348408001264220047684925852427921685839009982756414992281114103241418197530183002773467442785681969330868839304080910895046285158260076609952115058608885334706669254109100204547514351922941681742208473670786191256319893242541063637586711472918888362249983110508274697080225869642657482125222036390767197340126171251314788793228973385243688589424112512439787821728118874523938648284075391375217995307171215048176180025378505492527352835168295684522859311792561369377631046843211365219202757138866863515774906253479611675966686199653464174994496046162025129521903046041471342209460809425886663746865473812645737568603395734950985047080112715374377671797369966517500967284975937054086907436124507855533820810417312752347719504993572989776430147783015954394363604919599008565283519646102636114389913525804952290060573820722489023241870689188969839705664029806794943803798116429073963468696834294973063168377119122145162694128665827428653656882717104263384074895574977870272442505874174566968180105684276472707033791242322208179950073143161989104825276089442525408743546669783828615969675174118885923074201116175891515220491062550747188319123214262003026286280429541379711162530657349277362829669929610838023779281065976258165422191851633244557560599104801339642795340631480427444681363903039625976272018495379712282082564553691043772693188107706469298418787458748558521944211436229041057169697016933805444047922533063329969254907607376897079008922228331067897320694149389651350229688876878539768767108047093398222476730600098504563516093311300113450626001098849982089310976301797745969728245594980704751800649156421022141115547756648086515523015184225043592535075616335299197914335191959638308236385359742139983349930885238118356571546067991851689225677394306924414073375032276598511422843176812609989990844279757284424900034800868203544511625837770064188884742746300266336551949594867038451256610116565447483677696261789429035762999104963678425181072994824656660590349953779096427851040324407769579433139138699991076397208299424978236821155685162244202460347369638218047952172686801779208461122304107255196342571750822848620775866160777220670610872461143552509232752740438370334251134984314069491108525202937236739165628788949901749661170740240993851208151320575484910579127777787362963453920778942352998916571621254058063995097087744738627494867186127917555915217892358123625157001925054975398708594760842376324316216083698073137168066938215723410910236723171300305118555900763032094151358641851206719719257240588589540805362840902806019102559882810570918919926682489831754184147356733756777268434628354092508560876296373315233332396666592183533423525808934017709334681487400710965022586730737860075905984802089986941078971859461115256140689661092678674044586816393285116057749517576146268084090829871860837977488807792941569241577226928276682659550756665919670141901058414716005784966185139005252057301701220049797427776291495853817804507979900919594235891645333064454039222416374527717436151107584640680594421296204946862842540626993327062893561665623464170930504068739482780567578762184096056122195425582795063981758253096791205977150920578995901475223456019486021396661719143039196922224597376013309498948921654417354056629103288694072610496319458721847061896654018724536728486893775869554487853329895425077983987441578619090717201404523002598083814097468146497654081566331969026085117126441732630364590228284534432610298202586425379197576757030856519470400737432102856834594344074377668465197616700556905692694297926388538972926938486354229351937348593388268602172304916993545268065975187345971291301785174482648562437058144787033040327565040108175660730186534328775028247158184935200208873826383978723658588569426146843080915248412484980016149553335612176876150713214809923605291592409628233223467112014905866374653023701318835374771985002920349530310449482242868622168822239212526177799337412866746880262752187013481245950495972045057332875662509525534090759572888229777572389233721426571773800133808949319929391550266717966841978044998960755726184532811507389672670590824393345054414689861344201625707234907773204858347372293081711362742086989964620470475519826259147405991430132550720550670623161639552567079028612526115326325617380899916557700238247122092689743795912862013861613958755027034742443374855884353238275828825101317137428881940172654407572156318175185862918109403694325326053052044976456270602332961805870292928620091248543314337529479551803490415147397722055852946033333777013074491168403044444250530029967465046156015820095608350383900125972567329668516134757291471951926095534541818693227078405598390236305458810917594943807601928339302442429245169997180730804857146100978954769712602432582216056431771841548793060811055614926050543281571942656103948234303496453096528376734079265051081133575824974423610464357945031849033390640841732711325263975842463451414161847023953421772958798122529893676704985740993843943976661405518486504708417649869116811050919057008285131565876108366924218993016125519591040098476249222056207479996466812938964684211665984655090035655377879676758109569598748028726649077688671406990160321827394640559877226387678820251739550055718307669999648584637087689088946501156553766440553163172003387270623560751635138360305248416500170782394810791226502556677326916276942685935958134947724480641534239954811367766361712282007075746609115324258502455549409248676181770819052833557445406813754535111699581093883098603616458035961426116517767494332570292685312248153875006878033723496452745259347363449328656023489792733885955577681688790289761926599267336116200165929219324048479987333630698381202179551723467990006922605604038682212322449457208345903770529262663416600480140901832046691285743436232166740373938517678702472165989097747412182685404476635897464188628900526757348959941595307741925276669746474688912372927690155551015648139355492739531628358923002036596825786255131380966072571131685817396770722288016894999273888807218420264984275510776381791479643542270600690213747205193687184543656620400557898848732750567227902616755914429096141342001309674779092404241533065251398284400186358657783064604667401566604593942683462901086134855797910768621390268172324741359415801443330946071369006375010950405679482446028424620177097941960766684466289577745662765965135966136144597781386737811507217265785074145290623730029145076030305994592116080196406435082470926304103061198523571811252728723023291373920348299467594062347448398529193556485510166012956137912710571224573172997693223062765360359478490461605963826733463343810072385512669411610077951266643291488681063290342354111998771884651250282777335482514974108815458460912392337828105283273672411506964218330765060358645376784262196485840737259474219226169959258044216437609488209968576321070141849549452009385405802056739671946030611050674442726276827524188334276767170507235158279623054829539538230757293508267464541591533633794954867772554055017416687339802658292337775895356850904925386857867731202316566131524798428580010759223981141452490920382557457304301279969015783582168192520338494270154318215112558321461949703082667024220135349657448251116123746449554410951207464100930379479815392213406546374279923997551138275169823748490887619756859646959128230602212813907392570042557304740886769036983308448073525225410222264890279383832416338397857333055827553812389651947226337187593221547797064141109326920698350139726305763165044624621062952241883842479453901496952228907872612190462563857056315394699359233060660587617964454202946566379704167562305621790132842742478012973689302021061055978194788874905373937610435474713000712691182808733413162638022391656036557524857826919908372498046578979312330566101010953063453615447850610115553860547523788650824204428477896533185329784195223431582272576317276622623046550970380412956056717320836024819882639010690264789666088720599652702880622546569385914828135930687843272268261963697918564133950541369868087502176904514333157081884639417547853994590734345230677467497032389663938294682307784390416459393723590768440180611972390887295324639359178997086987743476558938855063841034998849579939735330110789509619094610131399560002141824294872403877860274899200337551188154967658253938914304083685066328400958824175982545029497301005940601131580743806881675344914927757290952408867842094613705589618937444234010174161948283646222282314481558502347334530738903348788029959465671848835898230500993758408628262786965361800125933357334757525567437175303695251352460596743503622676622620596622323853866629393509204049818135173963803269929382166393720576965521248823822280539090947905427970771720807509612479264595414136072961760504633149096785696629750287555333011768723115414287134851576720056669939694664539388953995388045089754457735702251664650427583450588124054533785591213098318541114978474152251039871154406868259204998474837860655455581393747521056730737449189663319695074327214226139435543609947123032494189384946491206053743648955753980882128008289759544336060292865190479455833228174996103025836609471214216099021204338889880378545859600370025591481441384863593067006277789675644011709264853960911945808852505983850919584561592302147000824920471323924605357502238351573205304393986269558387893522880825145212139626716543710539055418387892537021112176817954613908064214095317255694719554403748430899779154724885303162449841803749465098491811668938233353059627173504180861687694324775368664618007105003502621325622649649309670496435775956766388948482865201599023168153317376396825884425378878977540349309246209010470304319900218725264478846002945613437428754707359197346462583207812978644050733619561580609914915027221771203563973403152854762561128063142877352782250297505533023746678541324781292723969920192995260421662438902834565071938653025719765762732288169400426722248697008556279311448546009972996029885737563318206772185990037228113125022417879259870323490543287276876498592062104076572400535481037732152924682060500660259320180028211350214173498847617719250043507553085258972431514857871148375233254577481847317471664001645338095913267077069769212685904249229673085526046524005567100624068656350651388098723181412368543716456299920499499422482390089460213378963450884625581772670182013797178988963037510814177694682128167846015248198991177898976822392431965220816539591417484678759392405469116019287782373414284092589271526875834310860488180341322801270573581208249457186772684819077076715107251298787941191629593295283281818069930151747019427640815973470349806470756766015322758991187024008459894962474745564803915917386658213138402536609095612780609162358589085349587683946127074740322184202846066558714043784148112083870496031226576219119524734069675794680133942497724823468811866659382971937188061441675969984600854872214887828917053220243794630499681744730539031239782723903447993076929529759710370033988252404870214070267258978140780055869372344556369591472410788030829310592615468985076136726453835164064629410807004417990922849408076517881650820485039302044259607094080035091209944669021019185199270571538510379665440266122189257428839225578202960157371270941814478146994871246077547563284278293149379263512314423697925308288010198325535475913260148988115056901359327661240302322431317111514960182518840656046691406354844546278020661092279323257979355406291926801314667643400886606518037420046270929747482934594301521401627097695026105352755324327329517390981983538376622804543310963066286668511856270975649597967292089096009288938972859127034698552121984118407935244128603143120510538997869760918828452979047622939716206437648318736073268366894977891596279756546094561496979283655635345041484353180682937904790721015733322950512508514805962751110489030982125699543605433690577484009239699867370157303223744327520548790544129268424148769266258931832408046106722909955886772311386626022149602800416146732638205386992448442075143636383888484652310919644017594194397002326894090463599131660282947978151137342160171119558408923987347497700922618280405889165780453056723907885155824797147704938275917229511110853724202012286723834486604098802242156089159873031298600327705504015089617399348571014345743390686067741399110993316608259359458120773801794520310545046627289304045785948279275775177883244265964305772467196480542827013672634094098165555767553436046562609598055207339975576408619401594150066140675931053616300719663832164602745805656092985075326445997035306334270395067959873125692336688209340848341952235506020567025491326864645262468639465865745530894509647234775290403344365574807556232941487195329855333972597005802525851186540517404845258352594818578944733427882209967436002170481420212696752764916621070141079135678143739008519782366792584231180113537196074821247527107508626980429181519073229888574081584402591868466178560093849026679581570381862299843145510232909353572316686476861482829070168633157385578652206929014743619786937964680911572416438367361125812409032818936532247786597315291335058761078753880017452093147136742657163160698455970653756643480298874414133081062103280357210685755840495228754763702843343547542044735626396838452561467799788071816423601202612330148644563727843372640804425251142542770711586077020264634552084664481705798847758024542065333019260181204820905103221516327387278718554092271899935212858251087519810597288610177588684936761217590618284580303397758980250073607901973370242970389286381823055908849955179260397555402255430338347879396406046551572124066472735684279197121559101755128722298171319184159335843122675936318637047212623645841475424099602365687831433408935489084498164348330343009949907684896719910395224508811882114066266179402709739224743751626516951635459685940199817134469219738450349656582795024400636805999206439541931408378987511826144305601664874559611122746362152632707575221562233802359850721406456384736180857865682216935311362645697743801237006172752027900993768449907170053151405604253829960094650694009904702886482627606498054801201526247226711413739934207971252008617092976369986208276847207342753196809513009013034256299234675752314409728851150405243548507923081816202787578038240527858289557130706602236978529198132114566355134906519424410781419333043355110630291693947335831339576268583386498940541580321929102972483031588317189502069984131107011796513366268003778529063602911568723214463042037114852749660875417241230278295634229066606156849448325308380977273125829911588085836524208577544837345858679169025104802019001354552540042064598559271605458579908345061351500068556148834172598237213206700003284096166457936707268617143222918439672623187051654823821028530100583598463956494771273184525145367090486812022203160643574460826187394089954213677745601917435668071712699602262185779544811945195445316837031099602843909251214481188929627091628098673615918287545364375302427583539562680063900229688169624474139243488251112632789335696987669997406628955161818546785191061128079053219741506922354643146613926843766930502178188146789995905231824046711888930837734852965230601629093109407318844283940352161755276993982163820950323835334209644305445584223125764228970093857746584198049284486242658697711722052693874065035762602908904938509735055409068754827028050518993688057790049260826496712119255952211979507688064155974550613693161863211373997426931865357859307280923683499484338725026229508811984318174510909456347861374739184447179630228816089397786450798027849919219500532810852770285911578684640649538128287348991639887462283716925029675669550214670836214403531972550264649648835511928240476904241648188177094516182100595733764190695289443604436536376952072957437486422934294960470922749099731519683737921542508953737426562202790856850140742067600831187344654904793771901522135951914040662794511057630118148611235244543970709990272995375581352471653353017656789233597063755635257222709342645355685934802394910096630413030412961237096167828908970957655848429069436131602466199121687042869446299889016170072668218396875417906095157745660768534574567756945686710606741295605142025524681162652878117451814524116969949068276031637030213938193413004637983011394985544368182329757323702259898246183930025007759468601536388071090322082439266633870010416050487321261369501700151468356663441381721564212159326043847046655736950120732368736181023382443044796036161475662512886421150021921021929169240710123224368651518888645580857498846913096983802164249172308322825493193726903004835454598860578914896229946486505917379083424954176722781041471213104939709562434120571524892522021544461101247869414238917509021825503460292567847864347406370154345816763089363034933843407155377054014929186319344904256750461582756553934750179382325717723251988848588947022120324910550855220453347637599585141531702932380906081388898920122041527932467511773865619280961828408673509439956673851312168821719628056849664849303851253224534603166581734315261377304530827828025242118948843565034207870524989569973793211295739407504424649312411198525586260624416558079040133352966632957547345389483210141854605132038616363776273636918807136048576706354837463800529779416889470160078865471013439175689803265124216884054932440785957641019336635075685190330008685238911222663892397774456141230452333654902217644398791375198211012429517348634449538968465702922173181104575677910046454757753441127695869762122376054679576657113108986301323845452348777117026962941113825842117159893602837498517747452445255791101300106319919465215966434925897566488750927026617881717896939628898441482139930552903210487879053041133233166541675287424889367267528182832299175220136769932467067728473074218882052672366096938984466602326845975753180339242716761605515391603388862154902069016387962956046977840670876244223741452950330375126995004433832605385986085207306926538659594500401141655680149192252737955703560530679402316776355718286005515608902249739287276354920719268072706686056106333943339042253445626197501435986499477446530450864780405590098307204373032424046090283093207274730171577419034489479345861602806572135545567130374162262686420737542677391428813829126058701382659795536996750572616712505108244313128129527343087179519438790645359744616853369467041802547329669269578683474543554586457358952784040675570459319880795823452784086974641771040019767964191769457511804845632708246324537666081604652891835001056784744276679907273006818501257382475537297160073556407741912165696216753293311045182164011788703084154547737712017671504513414549575872153823392203342101628546046802489506119831328579199534596467595143876580450008764584961137559395927599574824253104257430729258255461519532634116200488976514517287404451241598421904584912965684422769006362071429181898304682863103725175121040300016040581535867533549639282475586923515204633540803533132418080862768992672977133584263538515643682868559959658324520550399704674711635757447876319371147325824585456100066974321781437279510833952242704441363918598502910704708973123741468531714938079488917027829116560795940339851408533638215931863017986212154906496440452856043738767448906308936958013395958493388017937906516554626452419431051755639249825238802943600399123125690875353983128554325405908670211023323655129591355842728035979164445146891999830519965591161373998679596137202028452536281019873862164861396582673964025143327663794793709209984001264941937284015683753652352583310621073366790450385717616162433503855672282635457445859439670693053843531853160873421489466097166553667532233124427839188048785841860308390765921092732735338704774782148692903928866607385837138275399964238299774553976628216629364854455949509772126394579770631422933255207509873461179489959371791827377410359832851302720751844534018619830225446413594504765586637861245669774031804767227545279276514635559358909328463487895979728452234968289453136737679490491155163851670637190757379643191233310128130158402894181681269042214240673364389555332871109369242566743658210038281731389235140007759957229702888188058149995590208415363070383078829698894502490463746848386598460089358244658851622921693022060637258020304583591394005547815831995422879517514748080116280409870882021643583341752277349254553095063362326722559912866086036937967226790815098247505823281895490872072154347583834310066828499600455586612933662753751655681063505327906325995826543254903980435686455440142798751764654004861061386919040167070645153784989662228403967559056114747123641850275825952992539045285739446749214270938182554803438040567671097735300267599475878361762377619895686976058509205764355283256581033593118193840322305590990291680560259048976054551875418886516922641256591445375537286062829738875360734729247418989276257715035163022426424664142118150823240101138155999450307767002317190213264839473878423634160766260066064703039915153655158793753783194980555712538846218132180525859269873546640089488072935900965360357596252019831658562227683491594782937761340040205692460877668677000653589442234671223384646681191617502803876981096987384933817981114673593367673613421656414683202739810657257131922685195483213837679195341458099618023243840736654480899477980757616579014715164095867831080315114135445938937689148265108277622791484840485904986630142256622610632538387086764054454460863882892179182440834656823490688789053548370311895531952876328440679497706808494198729732383533240673764550940611706473274177463440372452328119842959560036983421655569369039033363613939636536532922743943504863170745405275937590511411257159500444040959792028571087281714845867524634726844760619194104612790192968362428301489011849851455162429698412634110433446810152488176048321875208562872591885323098547069812761036098163555505050211953877724541363369598995393927426113921590952301534687082345871132098083598034838252573087084785611323226100260433407062775018205790592364549785094698574911226077535722805755532358990112571300351517221649959284321647674294741703905954114724727268612180815141014029019714883506493363562334722831250275949830553644403897725556328890624739738468733142630873463722517888956791692083583621109214627585298818747123066930305544013847385215371167238585613078718208438730550167404974639813608342457820703893952104142261488564838215846821218253850771680203616535646703787590394583448864276087462464868847380854753555847637026697907576316179844333859161828153165231034696640033347712178877089697929042477955660527572534388333541855480225905513520046799387527782356587846826368122989500945228611741168622837211885749832596871626936849395000997108936185586818013174946317439810348848655092622397067334713907963092324610583999276469813875788297634260309141615736051180128442771200617596864081336320338978353385217677372407649409507510976102772670405217812031228823140728519918424108983168240937737461805511146000349758483874781768197302917923216341021408227070519317406000792480903250034656049031361415163054260893054091132344376934234687355459878392268750676602324334455679670461093318385831693318935430995739393821224098798326932782964445667244516949235372246316018023750620012516386897469104349736597601347754593150090810859828851710155171380987422937979136671738784832588521548164804200326297403532286581559169894469419338555827846790591311623653464291059523133221609509872531512729009032686159229356276131707350123741585493232372936285573297915227325637677624634996566204323634005435884262516537321665822678185593056882825900508331972264852009044980548914399182652606967012330639588909494924361215431945353267769464842349167978487320150334036385611633468260104822801373913130693939396546619614120685176928183285990982207263758039549119672287064444276430978938724949621825948272089668563374219841727465129479222858676454638606250293208731468462181380479971324030027276735220463171977052523181619349244539117305433564579418575777240117209831121349033144659757475923817613807320098483218290014842803187390230344496712851920284377989169213074825853438678324600673055175350917142655936040180282162881825617904615381402592750368689730687454246694334549178189749527974421932195647740482145010027634103731482912615711298446412588527263724028910759676849685318766888279350527418776449480907956240957547473216187115584916703491654208692554771205133656030822990490481076566599079350355840513793451619483552377251497933061923882496720116467240191249238906219692863538298010537517672008348620787698370739972729016929803002465780616635421391322320331743552752154809802497553659903042508045405516971989632473494857939433653170672597836306276841998696284091432580353029196431163359827455928005173812592162965871830236071458127574548366026317572516957658221829177344777799937972951371156766994982018923635829233621552560410413019543880075349136531351607245188073759854593125792567644582028988071441766101846956006111240453717921448727076086260233644123853665658505392501759339617667857521233459962706523521833781143820412685223152274950832411219898974740541064231128991567732284940431454328671290045901313551819898038866763118181156039457922484217836726918082968121673054007150459009725539544440489341188343720948092443778421191466365597070526784053763917758129598636892104734211813257775548366462110365017396986596133120611709731093777344618430171212319596003244567575021812844375840220189994906225908233116875448320772341630588504078106138713711296318637508398834642508357245392077095545569661260435261539787900702937472048724453483723774080559486947110279806225906664970781455162701745832108127557514000566298815973082128086409907330281280558233519349114581778908453559200982160612593661331143128598298518963125441311243574000966832864659855130511074500355705218383760949193457849643192957844781152102262188598636060694453017642154925397624179035370680810195682339546670048588350776204276923786944790356706429381739097724551497491559546239619252341337938967791965861645725097999096165703938616686009186109107098061141523920942506557721768839400908112133003330752649412503714369011642300687484395436315726864716902590346501261035112215968770632428843661299786793076218202508506063611744046398373459005904371029958884286123587160948289458514986428421347995303615756696211046269511948248106192024697692384152121706610007557088862630007471299901409315773975003436285357197975977835505934727120202863689983851233805598401014273931723840271998626486014435544670354243734294093656603766261642577761973763263998151721661696983091801390295658481370677703245520903140542029579306342064661727364582833480811142509181175931291491909241055690512583436405132688982466961221100058430470923748295533448819393836908189444190499402083902958243516069376372389973874280868142264942036089516667377688702029823138854408331913217541467264145009660384340303484074958610943979343034606190844834501584936280154466546950529875064503001004506039942273281423580772542043174391465698138450274426726958125831678161553767730716269449212192154257506484436589452352933393495560140531231422140362540341775193964105140619297884799741534658638930380240197960607702033045139836119448047751453838275083512895752133426475286190856885833028004438731333704549401743702402123819261920878935217889124409710083537110928175349168253455408714644690815424764523826191585182328808197870361360008035866402712648405742128425119348457162060007114244269238761040740273294532794594381555493102192349804768627178695584500500349353791427777908113985892914779971108317596158694232039610224797126941665218835691483701728153178688788640570963929792287110600645936206878317571689431944039304423458523244751361292473371587719007152981999749965306173399379250845939208868727838707279290757998869057488905662226131017523779938673179291774783263324585414731897087700536980212668064071910243819456007676137243941281497523969457308041919445049030146589716881492422213936629150392480909971863058294962739096161267893236794059214226768509054341378298324226178592704820689919420240185847629839341444055702210305245564728425963998908076900709678423169403989906909145431991611738281254928554606972925947478715586451388100867141610209544313220897822430016688457181085773713355715304638739659227343894086092627991990035576059648480736836381768289918904457006064588501066255784489432706735627524050281945701639382554938972619837392140529026468288064803858928579028213256526944811938798974022791185556611797404379052423892598816267002303525521037867561743991828886856546510825479258099960572476831191823511190525530898537352314179549703362654212826453266092559131624711852818610130360400631070282538052968669665832303384385114345461029267129428112371691116430810129782370596548499469502540132197367916618459696622072590010449071224718264708384840696611694147648759645251814641132760680342220558138714700343284904469325067978218993232615885965723360578681565071866716494628493412261485678752770169116302495100172614622983240727843385060016866895483423855161102644652765230878552520066647004675163891492703694413825533273975945324442170717570900181054623859333095249335296190783594269579902285582471339898950000793261818163925643718454767492732275185885351117923935414434004697616990743826705619809591154733567165136394804622984896081234416173421381069006991136506677811587143496931278895575034842007008499736060709552987274365607019939166371569665683622599412267064709312861421004509948729864939347370068147772837362797778936101778506899420097073394745597142128555541363100757830639031772576053758926331654738552002720569501740313104887403935542435327435105510169050306064044653678303566578482138146212165530999705120996398230143282210025110832777313826773711789294302349787659084292741950889605635887233624210902465672386964685136399939174213458551748698334825436976381914672730456020513740825468229464645294738914227375333379845861636854596924758650044643810464117720038914026186527591513649975218682319760598797800826544019428219433839490556503431053630261613490702410952258064978888522753754292592287879438336996265940812542325970528339467144138984450050384112383591081870218766039875074006018870290421950513870831319376527755075645239146239500710432910329673816073459462370683491355725750363236414452351106399879674659760519683696693145789231176973959372331215297404446150024291756283038965676511767370330295242028440292823962788142711161971903651718989751298914285207726264385008513273750707325656426540918361125974413766842068468825597628425219275706275800840208322876928293833474742593046016922847774751859553619532175012913082150041762217375396246243969725951228394532765404634406678464103832696630453697963320108508366117322208738666500192657598047687792936424163453358143368294267591651258939091801262570926335220822993455140511180519237285333792465976810814096704183851735566036241703831357206561200631514877246238961864656700663259128881761692245644360171533602867461546704381718222894447976125345549293573413900287658058200281501491566551459684557802077117553860254870168666138160678245832831107600086852260454867369312895001761955896321784256582703888687572314068291620772803556647351377761166267737025994063450749955637704625086080856935884435466416951505978241728844300286859477432317200690204544010877968982852226532639329202707770225437875435690742459019622156960092116781345223441488465413317676456162007819931902417462646432088485198707999010119738233391524257760584941952894839888783566741491651240476325362538578610152288941688077927311630700412013880241443191347902947790221038736019448189718971381817064859309097507827851981432759740406652063220330632183300590253183209233853601379345222071123289139253192548617627600479192413562284608182394882400594873146485898837106645147104308203175543377992154838913563715114696123087784123972496766727649375157550292711565671302023244371847643996537455879229714776291094580976145273037524390972129280569909139263783866473345105035260022179238726775708946978224857320595594255111446305910984190531354921918560551204802460607087180978397142458626408840469919490997008656434212990712757718344537181491474988455106795836951761761131033633216797340336399105976999954901276821287308386492308873742840100263160491800680074020415607580870442785122043387094372915230009675121899620898455037319321908990470433815425526020741677975273702453431243846078334196810908951604674359705807737509763814591844613240258875983965055918570388700911594836202816690675737593610944192870846977081959236770206160882073050375861091143025077741415832131834049977655608047202438681163649868019984378831668774572061240844453881165049991339940357467983014361502286616082234866432182708689100888974422277194080505914058252894282570358189575140643304445850546722907660492435227722627716851283386057704500399172353302966793745900817385365303868375492881307770105682881262437785038967811729009355186810419550717799316745347671597928892321221671307714563720012533887713241475332869148455217805449280937106117628078818564902216700633744330894763887365314497897198429417406996356280816835852283442129378709617968008857101147622278914616413605738895375267175250375521909626121004954833274916019111360333575635183267850897316637212948079579175905988349480144757225578913871572540899161759912545807439061295801383277411656662561051381075894666884715436838763702778486987470794482995008395700727863720404503804138870465297287991725207676741789192570196996926881220649909486794412254397414809733493222595752068943776850237060075675070690713043906546284606019387533267822290099868297277661963909911942576002525020969940771359803624608306319428892188061544587175763995383445524815206628118217800147936367274388386593884627299359102279301422884140973687697492278624333523953370327456400995021341442487057359847500141969258907533698942776446888450318971272272038568821298538787951418932735562015318963156276522706831300732832420943578691589302896470067905668404843516174355380897980564602806737032794201470132033201960994517535208802583991417198251809173164905840987478394398674271072166049380938393200797811170591048656459745212570590664017152581175893494323584324337451109415756038094298219624483085966759290783095194450562813080837442633623085755359446484908602228583330334572581288382791123656725636817018954828348585923361807119739688287103413753472246140600810632799154155707257489466552316478079463187988556422159820195211001515360196142223365472348566925887617376472904029478740674907671086242372401475422118833777086876584546122048645635278218402679545720482851038104814365173456787216306321464678389077303445172596703586133923097121326929108143064444133049765294087147257975464718821549251636050445870849246135185412665771214877220627774675632895959676442079192459039547597215785160227057222644273608280645827853682133075234667157649403753275935347658132849057506415742752560416015402214048997826835682562974645342729670573444826126701742846767331073485807811563855039887779160457473129923598207075069983949764389204701093180511424041482389482804541990904601242218066576296713638772881266354715884280531458307395169117686021249388512870748529082852529600741015122489456383628617578513787416447106497453516100284987896196377390990317373068133898566492668049542207650688359249647870213159794340807201003306537479299995744533299693283536187556536476383462204161221920967172531289393003311772422936575691137200504349111495774626295314223114515828753029471133945140060996776722126815216931330483324835952723492244491062106172162125997672188629892242474281088874524290290091493289351984763466926993073852873569412778415037512302250234144285181378812152279472883955465529141402773449299395739328269797073091936387508269186345913907543114180610970038797052415488638733639289866275731650103088044614031505229928592251339665222522502667687610686949890637811981400604194115444168313944523146818507002236904105748172028619677119108077368049246546766391804375554076050761958510068681367669998068490382353237941925160041747097430145749244056342981554927691745272981819039977377649572143783913639934655243325203848533989763672373302395214065547191409014411387891895415755708165013137152077987979637948124034797226532142281128124053203363970356777834055235957763648738037489655706557227297060467843444244806405319019413257675350260110848372196478814986095269646758821328165874240432585269789556704064317833338666490424056337089664014842738547393701235045934262284606646861022930661939238975420899979368105671619648046509377437671680436092489051202527679694791181817704978075449501462878613729979147796023468946061213383840086003155819851087184459391254978728389803961505886141457990931457183739070772013144222472253824736068123346420542539758852343891182730339655462927751364693833295814161730886468246634975612176879586072171470043041507943479400459595002303653587910285982239693764765285430098572678600456527102933480509183160675581102871924853793856958675420894890863504566445608891734187543400938099311184037625898285278928237850581569016074946379505787500438303976331888228745143999371830813165492687445242411747128476985955504349296955207725387849443876078911366579674930363193152577547439391240322439352527107937200517145260867116418781194166106965442152967371123843973512871810881876562042469162913134663355435697357684579777951413136815405691790251724824742941750996498968626269208920492119623594817446081424905436030398745867862466988032791275327743910117635034436263598097058432345590243668640497593004618065795735134392811186031300941387976282113024216909016494493661025370112636954614436972537837084606661292142102961586587578890856301891246435571863512669821634132055716695127793891961187216860682681150662006881208749020292007540070749701260881257592126049341655299935399734178962454113545689623520235232291505507164033920653292957436094350265226002331169130045494187152592348720861757634912726589876820115466966051118879424346133233639267275710079172959294464115857074943674310666730932831849094197042385539464532782788943040732142449564515682409133370988484896405833572099103635255116020196285302165875741777350358165446088929795348324181406827595960726770340312754236107436779029761998684934610111561430146161862702159407726202343557861508831454221830764673826187940374500749662315706132469646499053313738566686835976453474872416651706303791146654737672824726718264528213122440330386476283956417931635419730795272969707389293502745158998826258071323721499620486079643688459138009214232716104717265029711750874094045395483683392176359182231577251739709469180117038573961444353615545732680338857790180319871645008614805848087613076813067979215700737191057744768323707149637119722256752548030081149835592255495293246723229243134600900587713629997358725640246539634868290291368194734921950529656902748607568519487894253984910563211205132682618018448125174202557454654196024789307963527186205748988570361266665466750506940695528517679601010253279848093153803325225252069181532242625034686078791572439048516855263541617281772863661413491996865429634249049962026366631378510803861388552925708666453030167949513680151497609749493530899201872568424586752385373737588388579746107866301402043108127831756949568641672560079060953623966151316831974112626139948373902893438101096651619766267782817610049819068817273396002147572964343344232788427143765257124877473486081872123693126720699136839000351257048358018640884802095304966304233232140636656236335102705575495931847619219046986787985256459616397704775045181312124794603254245340382175824405482309265432603730475519699430202564010445006630595889252029637290994465231765341629263296869984748575486342316438620799628557270250977537893920522265765048135839949653031227357050056500220942238380266935606233966863607822685700317047696589380161448215894780986500773863121197698461612759938512463676167267482156882716617410251922200213903911623755401365213841600666196445372895238592444309708562241936541757816385971638949613999971464142845815335165799168109914858346842884826023858399885741653467879217393847417722660368258664767976275923637652313530191041259603252352339892985095933611087897051234621124590980596776797163737874050399181987292873854477088044706265754665521883557824636515863374785956564375919776261168491814754367503439838491531734830857163557542941460088318150254203727327040485469867909362050680974170087354061594078644264028873486846632449373141628320774046910575490213201739077875584656955326350421593956310476099474968875265641685639070638225668749836612495504262371868233905970257183729160866641384861470060231036164360311274780275541333621142551838219921686981865069095232752714903589254078873794227132562750898196698741430686637213916564300679165356008418458354069610033404110937008764665055462624481736135059430706103218003796493273205930657531078766432393149076219096115031969775789978199705093553811589645921768344726474826732281405509551495071622391969505524121746161614461126902188114897902392050415219978311015390223075650887122901578661592516389953176327714254648792369066999129996558722876169154754459207459648566184883234337239004874122729894886289121718559837917485278522468019304120826379449866459235885337803135759248511425897389096330807493022955417352219504143996987768967165959246526108793068251547062900664568971982782369917316034471289691292289290245140201768722110017337375060325880240242037153085669001655486867265026202573411896840774047616637753410141322462224019516408883469446430399084624402491843022282147529592293043791468864809080323496467802767804964220482809140890735855983647203322905532486575942459776573036314437191901984684546241713793412023423269760331180976296867740575537423963956254056301413546665352050550250887226468373144048945555188120919347788573919262367525239570722280700477653368615235855667939602829649767930904060349975209395173380099502678770944784800687674174353357595247717954294374023460420244252502897344333442308481650163222809564521272876153386075770170203722257353275201787814251360946631321946883020423628393326339348092264503309171318895837654777994827279816758157356381467176531273809195028600499444109470128918856182086767448816943904704136098998408918660381079968423156565660995720560917717581769772117038911121997456489762638550308721298137395315664120723856050571283846278873127513172796825634848941271351471455875965673468933380155182696131371145418259481110887280476774728940940371378857768924237566137203949933152388656406807748149578425296287162905159899793791344774206184204489744740254906339735769495405514915921174916355969641236736968936694380778083256793451424576911902572268051122906511602785683939065134003335063189839773987159532681921013615876603736597012604016880648047550702054529166347693870815325238545798599978615563194745112195157010100400926502955254858332797820193678616213632193081723366399896488927060909995681812235134886366543519745369331443336737260966697773588466028136578620864776882561522995147634634044247822966387900118768787841180187372365482810439289513404013920605060728163348085648586370398209495696855695608374273657391602845075197554194368427237666180859497075081005695597318410857818401948648940830335518636549906095666532757354735351493521006384496355372544354337434443092920812560074389270857739512035318093572582686077665103451932331396873888053675177822860960112683616556187906875125131035601489854147379830062166851103351244479273180613434882385216883200420609029750511041236145303509978214551419520785333182182477638690130944615237157258794808298246308444484124185933256934495162698194279318198423147214295368512050318587882960328157449341336348804663165109033423858478860138281075728073431793724297123812084706467249772593568429577939279722146919766751505705700074377151840454694670988486119654397413422048200660662925200964435861283424626985037514089007793371595320410786722856442517718439491464305948447355939926130373153923240192636180028780930134769350427253242956548879229311189458437756183227898888732799500780115809194666451040650589411074491873235220866356809539358409135820746463711666610054406768222158283755702406949893622125550801601503211581571272937333428639409053330456704325028513178202342729104357513745966144866491896640072890704227263792188740930298747533920395236433580518359374585126687633845404102667102486747572104300530867100124723160774637379539396623054915603818486674502015182104829633562595369532504091913763547598893643803962998204793518492584136065359894524182535258978504124910518106288582575374829475342615181914031777101439500204379557088507243790364684172481617163650620617753607796819824033386216083943419329862821095977464129920545625855010003704454467372036632532192765976396987156178456979050703934274159769980610850423422445681629009568674646582795180129696278289176947036097911594441247228891904888910645624257899683735993684672298912507072588081736191659942062225373277877277959118730339659503881799751505752757293271101073750994160546815399530426867898651782648428138259940992838649341893135293269534085068327513884222767105071207139549878881367366575378080269055419498737355756910047970997857872031720229622456436761960368508756263456886790975630155799062790736029029603665793944695628972528431519530063635904148357013494895564699625768239770968877819299410068794223233638971457492609847047226219695095940085739649108830730131600949720824734037188220375019023634088002710717665315279244409878990552300301290290103857578329953267450491699194414575435802315009378928413152857042640798837636417465353486024102700361209006283098176297294619259545494063708219267852111400873941148729901754616131143874029762401162243068156524895272696839621084731821141475407569628310474275943067078362993366644622299621260193419619387685500321036893082816945575162299771868708559475012518665252763081493340171976323364484047470756416770182271827092385089936491023048356044715354658055859082741342675292038724497093616101515060291064055369375047261404120054073204639285705646676089178649899356612935048986567274116465424179005172900614470125239560671037985342115051552645610298066367888299840410682212916433287760956820233066899346294828006084082461109920501514020463629287741320746592818904965061362620512474213788213357584666836406723974104634304042365869638911560260812316839806405335785066017865686366149167645805327019593070498448838632821973258472761713872353307147211536396371095929978551145950154289063585727524450575530020187436086094315248059906901689243596475921489628767228766988393436685513113194377281424995928430152077126143741512635485624555620278521142205834362089604630081456958940576105066216894232633213363978132836111825887423095487899850319057983705436174659458473959802689453084777239619951361597809558840299182908938403845311297606161917152818166629580606472129289942023270982560681568447544227345970782398334358381213684589468265694315693794315577351279126071831433487382012251395649989560659312440726555982195842548614254899722359394064604683251873071634541372619937732532664409507699658603320974078248323869114025304328709300578527708548002295438808322790112849853959825543914878920487398119854335163376982045395955816043156929055583472174208121379044393721628959729592188193802062865643071133189514871803258492989991761671956743391992194075658695048168384505444710217254444302974516565824923885953038126573007117137212579568248250965801902630816540549070087923325350796039488425255797476939771253874487000750304716722819231515197442349364693030437308404070768969670136731645837483834006179970256524417958420933812672884079021638886442655121813519447292674368989651082246285016494385814276989782370532561262093741202043691320528167498308877024349042357842925548977544595889376384468567168129827127347479540375804349969924137977826712040830317120813401065446080860941816831325950992816658804968913426835480475442229855567034415466883247865303234480809414154765974456813330695410888976708803414105146956554984890208663121320571562216259124243243771244846645150571523705883574491424532163826334676119665469920943515120463182659751169504122896796630196410490568937833185303106306703797154329669346664277289621790592569459978326063513317265502804426699831607377056007243553275862104033813514061082607003020223074355783100773990958339547741874083848780185255132702161544855496591466334646971046155049665764730080456152556246439683569719328488254565557327814307809364061425416603165337222527626098510638956404961925242701366905094970967296543664958501340770064151970398871464344720744171480141115662319118660651215624896124773752548952495959406793241815801079163025368836460610730612193875108836972116384833246113754984220044327723130681383967446439277373343067789801793334158690173248341679551012221297180171580603344844236743885299094875337264432992466415845364987324861631260349373377015403215688345131896116195865006876789372656850733776717163305933789691702232752921725926685365625513511651594109012220613632869159776175825240979469318458427079838922946001560889580529776720606885478545045731543688368574860053200781965001944680559246429486383753996143416583980486968813029689935249067065643868058463475572422198029889536676177867804633703103094467716159208807926206478821912932576514062128749624283483364272922466797047725837291045848006126106000982458504074706417443217278408875317925256986599567603186380682730852788081851409847427419221657118495191109277114371384977122463076007636165813125646122068595805978080758721798392571920021083456639313880039315521557372485454009349912775709873032076936684859821016484208416401136946680911939007854557668789088395095158047767097461007786796547129388353059622075625299490954229541386498740594850288422767108618532822610899236702149802947700652135163580112504751098201112547102998437781862622366894662585399088104329735591462278648616615158745224081411603956703382089389543942276252215816579242629174100943300263772604649827982595391780618628638020754396658877322996373607712832285412563213016682235352446804154402743059030512458517883890889518582615495210945624889064649873566907998242846925101708421640410310536852872991987751564925470707212213588253354536822038687187143196848973714918531684674873419685895769312789144241072373882489052793081923550545363705379794667663345423752256983484153611949659205791535817818887369592309896944006616708241688905712065244204590955213660862245137457380114178599146921854381521620595454520842963819474573560328987468144847388674678607540320967294715822325195912844868342878205179523396929421366704521550667149468913408223956735005402128417644808262972464437613501550860498489301160329455195216220726037866102509093329304538069368580637160504960680752354662640931759163171964289424333017279144296121462747705965052915515332571853531781595970348511353708274700895490823548574430400000121535427264191828457433448968574126895469625467942815350791306073102674575098113400158453076716895577557128148413038308005302886789843248041826465915221935803050131687886698041567794435601497247572684029689950203323404726239881050692838986496736224986489121428256781441260880460905173825146061915949451639454217821759217355694310461945702992738514841249032097791913984543867002961700122680272867084644604676439728350248823649298119069379914288753382760286536806749033611260306506947035731104544500522058261761011309839001080644262817405000342099218597851909843556405381115840927144506841912698260423013499303549054993887991435163946312479037667830026106755040044045297619135294857408022709487106551895776089913551393439378679124074329578250277267631889036741044122243527805042898520524898617556952468867456617641756324477105132230879338077764530526091271998130531207080563133005109139947593138483539258053503162044033180953480157563667599474155849941995333462288141910096311839380602009864177161094930558175582771488157665591435396693126702416018806048658805655075004489718549959585477667028444963592897500066526975853591167169540054048953700737625451388448427822317039813418980298288718961490048968912201795590705694133860062404162715588525091429008499234119766724630907292184370498919841027747701818893268257368696597200098148775994828912910388434985502751809401364103046322662197215437494263781903143339621305397011822908604193191196404288075395349399293764476612600743496727136478593030260940196361051353779005925711944299268236003365677721520154123108910961224787913431241171657455734925017239691046611087376020434839551746253969252685768731972425950006071532582426039120050577339668064528829261873678030884859981941567847431519465184826381300349875356674616056731798858803495617375998279617172214123020839606526169293728455796459208581804969145722213616613782739859501280315114928454054495694350978394895398320183210732063044646346525085284708893172008778799404938561725096877680389409729791041763049679089236026864757214917637902877651506099191405134338485655774342270777203812976123467267557258996939078445499987660396430439642173718867487871745447701574316618946550777858494666765620349174879194586990091844583496556905709172633787729108678407053313396076417272508493836478029430221072929564501338259758033879858332679259439642967099040956410407181149005894476322602010056671075084463699086806978720719679588990914677088074673665779884068013762541465980273821782212709818615932397407297808920784668360919538913988945313934182818875127895247387451153979368580053820271865137371377619741742443265167481368069093819090326441071487982703650667139923399613351370044194724737069755508838993422521835887463191067705414768808171193285501339899645069532037893193549098639709320311834117635272743986924144390372664218118986267461504317104145093467467961355380882118848866586050766432365858893573775015654981054322485592176657420013797455568597547393015324049654804018159743369867375109654946321468586515940261467807525979736552134916956761767581240697872906781528593701255959766147224279359921156712101808638611839052035284516952955931136085146793187214244496015209876120007393816123740932969339555418116003261054009589371529963211352788177067718072918016250965305241294551954274100520261426848657888792539594538898590766819801265067685346810121063004187347629451427301295306960193860706120375997875274821922997804545866385208541506065808833865688438200506688521894974626991834661429893202872311311849174593732831415972145438033276304237290652598869244087762590137159823666332772712680803792189361305461405795349177815905774936177449498284064967011900310056628202421138725291487725504878153040199946365617133040000181385213591814522537217549988220552371792771665944440555395012827848188445427427769184039705387817928236867011278128272621752080602308848057913160669275153326794446705067598485814857130955641903380744951807411695816781447361374842989873278638483866250355734135342292108907574050622773906523192546823550704566835794277590099438688372610244588303411066290089369122646403243750163362415977241742514417710600572980517259510204212939479644242796163396572625493677092585501817872433776782186123094862797907593327770712121952660815826456046831191809372332052027102516784162162631649320001337453042188809863379282243956788262243935874964132278237164686649688672020285657218876925729591003135458808551252213196631857540190734638718137967427454396238050817776161255565570077579334339037385121919284650571325641780458273368092975535316094927156278799313021042479974893240804539143353139290535088717203486754430789168215450569367328237004381276844189625537486175093510116781378180188040468850822159687431443143495002564614009325381953591869430561913332916598552241444251303137919680606327492374174801264070688300581051891450355200176291626697819062347415460834708633098726945218865073956576514311938885496905994314003101331669805674867199052070577008268974905345811600328844924280335327238080414516894643031529694602470705962564425662773339688874039298758596625529688234061573104440148856136356847496204101325779100309486422205711275196742408676918416939090120464063018624147087103220621198144419621710352498134634494029160225076103167360087181860756057708580257087654623969361399782838188926575925905543867477511286449871237424347705481453113230988171278373317050015741248432498525098509782669879281987826107397236119275446937303528682689682324744456644626261150057214883998044113314700341858583592032712747937745941323951687455146126511415620963674038109619523805392430533169539317379000564412282465934642061535928763824910559620471881172056775399312119131313302600364108084280299963404329531241112001282023593710284924761328484397147298588461387347686341591618882772540185488747510928969252881674121851835579960384128300772798027220158081453260910533922623474436383494075294133272669028211085352216041828581708979761216989998062335172462619373185230537172127851473748750162405768929619282389201402409272040075566711718656796890282410951528804486168268339513669594508429435536931473000150722594087070201049242252876276629613256577996230656860778814491751369333655356613269751071216554240059928150624601796012108976139075225107885855148280955504733713406826415021430231286804091149257668757413191537233092791676103139854180538941603684491315846124523503446554309982807034928905978975272400158385235316581970252570873647991797405610009248986273808836307633647382826194992117510644413651004595675537531741160534386462888536853025660202201094582404369488891756453130995945163835416347572789335655428571214836121260570982105825638792190755862394665947748548252594727330016611917382757112184056131625180050192075491883864872837499337061753782549496383528914561267584801602904287651453043398647451677928881030322734449965175015954450148948396021900659461648831452618472407593506194266516081034568572302911484825393629694403594783288206328979659719904056261772150646333500741005835182050580556278455790207344747889066792773099451460073286624071808520372718783553346882083289347386362292573652680670013702121295421425062264911281909747025596877936654107351395695479837041589813723308606900668697378633100902728827571549297505742684233279869335175228547939573467746124552946090432949782148923583021522862071205543931333744716910676062994612983054342841147564329345213436297159645561502206194394533276906805098312421711885059431000564666420091885624305300640197545198214569163853087858840328620891956088803586525785099469620532692887795630451603800365845582479828695446420014316142900708688032080472558308639509092004075857031602950388672911285642260649316174365977255269734250627660337547935663671981130946439658181312409341343992048331514531792358088530177150866639827093545668435742378816103636593571209867739982897747211250437810398501066273884171254346619202766564631081415837844709718253263030670155955859444298625775612562285547891031797582145719262283298594834774395007372510880700688702283329811672662806669675676360299484584616074343023556799869726706568247407315961113250905463474682506198428890731772077069928644240772108975155884153686138489287048587941706064511147332801076349528471960672985784917512081078990953906757156288420657745177201452431220291467687429488720057685632462513611446414613773090465410728753126677009827782392737934926840041687702941059934157986071365167116130090935649315022022225178570674486955100946244381228403363613000443452382907803023773053928647433955302143859779573259409126982788860230551526758389248619408526393522384589405449372102239099323417867908256234291475197887590591482997893637096783602187039495387365582692484368378325998940620237780539473210207212562889507528782513829907807077598127631995684220105092141204086312240328812538410359405101162834501779872868875016296461547965772778495493224906908019423393702438709398383085209298296012788309500060271837768232114270058933919032313227710452864343732231693704490081166548166015623982862646132348379254651167010854480072646200392868783145783256916106684078721902330956019058161928870324484255426261231027358712732429337754510886447605573371676663363340516870204285118755232894422238660375626176520362963754409843967175645211498584620026425582498546392486647747569489196117244315185972573420316339635853645043290358731441253057895643914091828375171399301508705566159541818293308297436914692263958969790960319358650209699636895565396142584925626137857394768400926369345668928417805205641036014208226502809399211683136812451438183090574274119768477712705115834316258770312876136483515032724841248475997233498536745779131157743891229676147899974939214843850378279045648167315411905811244908032647122439665438112551930635721563215113732310949557989087168448600657835880145985723893131698114042246692744410696481083120460050521044697596824289245170638684589641257083955929963680356953441385997042941627683026577811340342045121337509292156849309704844283081783219192425120888230085172567242904982087180888849735275584184129537471374965640604481079039356024125394373034361209910488544961292765276137698702102116135317714228269740189641525778548547115726027870161984216684332043592055255109062445649322375519738014050946178119093255213523081157394936960708985664662057371386455412202058547031210294579970607272044876723185586788292782112130907901761498034805566041387076375613062576254753360978066123832423348162867401076353574692668767955108291393104039750649785845092030157230354230508163850066534047258955446768943563690275388365065243465155910725299271428949596240724649761710319558987309630136797401917940171596001369393074536975751230893728424766616205834466551863511740258723785079893423291036911595066964521086146603195957167659061751022509176185460536081505763852076881365157825620487977874454803298000607241130611814463996950549959275822022223882491362399228360533634697784776929355694285794466017668578014608928152705120755804062648391970579655784165117458854077693954749892973683764213365876787826251981077738341919698827164049406436814264080683777040329155781677566365792662099581966287702616971294845156895080629318065762050732025400095959116412634911412585620866281646571729208994143360421244011126392972136932280419262827057069340759954986871346302218676094970445179061639334057930284270396950196655011742682099846372383389524994646580548164844904913885431307267497087539996524635778422579325635514038345921837657353054428465572939534923348645121668433268143108784292782892442550073150260052910106706135501967181160054826484040305115795330266071890331470985425019853923637712282150596944058938205218707367662539111867078294121676829144732820038731038543108637341978067219446765400290291944027818168335239076645271565105449139042601999370887122619136953484942306884688549836916302761280381748260818511401825800463764943822007476139561225708589578437821131182740657996471847182552495303150621016273374132214053971062361174495640069815596702725853529420029936974904318492933606098659065655158906761251188265054252906929297691224943393753610838596746715780844010730982013120586943932140002077325174469510999856388485934103115173712787811912388321509747436559954458811996572759796830862402460715270673854167582928645243296794901689126463738211895771479462465104593114216820875828557554242425970503340479138356430223131401042243554796946917058139945071863151136068259068653544681391641959962420500747549870208584668759866887700765245137206344593094272449705998162039567447326151891670139276009514005669992762117188283486401442136429066325258047725433270421167139452566393581935282125921299188006239923781643549687078006022351961260369208338272133876055557052974401967777689710395910162258148526522451853743955047625470223996759713653859296840111766029490512166917390517047506877747893587651790745203845446815459406043240156136778108689165881632860259872810283079631831111113109549725879589183964108448040405766687822877214698319262238973801001036075480445029973190607235965047898430166084141308384234147455047096657441324004545356815269565206375079455200109091435717652628528175688782353437206309405085571590924042485893225874558892810850967724592255039527063117405376317729725346741930875247933984912732969509968293636786687256573092507940621615337477564240394495590087194686669220525012148842989140588775109086720802756324030346978919941360462560886983843055753293199203870830726932182048798516165539723004411685438637760679559038507140417293134614907332834857769631197473259112153249710937696295423923430087004446561210007727692660612690117353591540398338198543330477715278589639083406628995045098766129223303080786435130837182376466813994132575199893724628970098921615035879379592259796358261083124447708012752498306180932296042954025673901999144868073823857930416609232559165216331129567902331791337442283033150806387116444568433530270499691509218557308638168402430821332709267040623484823945509514471590153787847515517035399086650864748598314519615159930024100461761784441928997170237152159610258987364129333286743617531823354328108740033120635473813321600778661797727653286083151459261642321519395667172643802133364042983649498122595986479217927868178739008489745453598563710884055937605197540355010136893227802927581456239283936983454433505698487327572339989961720949678854780720503652205827366604121403853332051228621560239455646564424839406724371929661218886338576790494873073234111495140657892845829289487583005952014977160721541263272077830573045849834440455581201782429174232138409385515500975193934605737535867309428581405590883920751043870928037783769013087317345641506176580489596276457976341247418094722280220670702075239261286076102962173769247004260476001952942366152613292598838644481003152693343243259593898844485233880513172643231981494582839671038614049624471847336218186848156484995291142729540825671820942252735905826792962262449169516149592081333297598147111565713306334677714927822839095067447988068606772285151936098946791436618955313659699413995177936615235727111833784813905749434422271958290758375767826228662674541452270079621750835600461867333043670035717109610296336549865004987502738033094685510478323852132123896693195605297019023196465228354043245349159078628215240196111358808383323209529265607649543303931236281379989412356888350074949954523139569627316475247445830532042669819480237976624055080964031257907567804133504760003669636583405197125110585473294964410913596338835646463509610761386596856745167234070673826887208892526682473363847837871999592756099814079758733936202498530439940771302759548235893443558226728072429896003798671305833808524439828411296884371980590413120786500748694358373454691670087207606395465417313709227807788749733651383637804954827457308485078697486857459625493975455401154947422916367232087755347391606039538504965277494117492945677944658552220027274530756450491593149495553446603705582482164249694537746759580076163677478113978932483903392621387119481039182869247485992266605345528893758775525395024658212182963995935134261244425784838285011726064899591588672826972975239158085106862394883970213434297026663356426222111933501985706438408853519647365909634206669494599498329646000228324350084252430183702180222175136492510696179324691332425284719827225411005479241754488054351767251630870290706263751580768659401160752888348207878763123029192759697219316650710492430271965748561959947999271838454282684995902389745895328913666965069827173568883956402421697316010251457063439725305841133931422871147661862811564510950402630822356524010594423852944618591196692958851529330387982456424689502258709559894201796067202148569143027925665201695166019810866383300031345131500131661020673867257908468296411887293835325385665134792516919553130430573761790338972027480931740825540689847904019340184723307406073134466237162422773926769286169315127064009000390849483627719431657287843088162109329891994284652507264035011659943888684953978374347606375594213225338803779533326048093496595289185650775299142072070657025537305593616862924305381006303622991395552258221277213910956154755743861947621173388588433128834636081682555707414475161432997303477094034362286962738454655177764608948103895335816250605486482261769720003276910703962184864515631593953258286302248708898220701563753269883202027836272094927048826818861166764774156802332549898980789265735338372056412462080377088025592941270918753560919807406328138035162253315797949770296263045789984259882831727664594022831371144506024546366334469041232957663760702728951025942443674676063857515310884131000031696084715374918708914138993281935405331601776393925324298068650324799863979742089133559499444874985383313306056141579453001923766672183035975048604230552646327733472242692067058649190929710307636057861856640284832843805971732499009428951265414776845488071602900535602521388281409162221262132280795824654760291888112332227213049370605353836119178657987170989965810278111469648372960061749050076319610546029401955892479280562195670156180825274493120481636094017603386665960295257455565080547962755378794526305187415423309276995675224181530788391126809027005929326981322163503213981461895203245009609113005851729258443047735270296902562615896702404893965192303584935344389646952704858546756120883787288511320364393192024641766277717464798736091806449868435800096177661181963382062753060621009953757666448161999661411115241869572870770722499521810887955113393410946619331237651423624657501508435994400188270570663158233093551090482039583751654148808599530338465121927892636989269355404599333573000022016521028977095775158338995989803762859660261665987386450455655733902935522116852683798739908554511442023755513928002649412271447852760187985178288633456033380572119718796179190960979117064688430922646419984340419780620484192863039841772755305063907896493067770652407634478871591910085026384194591509726357586476497844652678851404869866293510149820778097951162636167642068264095024938119600466135488118488596962005863890195974438962109739328968618099455815054713093655944700174787612907446205909857804578036694211799851145003416302272863023895912781775219979122377099745215128905474185869206485889964730447278821858038685098685677886163776962500077682830827968818550464390972357895028048884764770410475064613606935188808447137611916504648794120489505871924877435850761925256427544940714623149274147324648170268162351434297502988086804097424938263213941047102734464427438198871489428657832201661423822934017798071410005738598291835377985487880642181234998593302871269963259584105257187839046440886729615205250194678362454131226646798152604768963292984560967244535572478547993492572497176620301429496906036575334482069482812598042648806426428562230098002922186242059128097642828687891832203108585411618587165362441219786469267338069082996079603371321652200940857742386634181818135355419034613787480868075256324018292160622599473013160007473522488925130089662290204340042653822143693045176099183758700139535998826181678657531792102029380153803280386955193562955018980521787715277561364314640899348646277995954071785952201720709210713515565208013252645742148845070719506968428733976335848900761858552646087655553755051661363862492386542660374682411093206649427287419217857587871425366219467776864639455605069218785753729831503835146502875081935362793395853197827958537439882047729063420092894396234402181069843369564538392306194507665579237079334762482193047020124614972328094013095565621568188231584128689584370980107802211538325796327746101616514144735491762810520639414431255803203576306972398544650442423718656443147547375268175670474801731971569052921744327173704073680178927239523609080115670042239218868240858712048785953383416740637950157773624755855047794933435494188306261564151520111958947493326517493358097341976105030346548410287576138495877247659763585026076982694745879840310782122357151197081580303002149729300535067338309000858537094011340014628430553400980453795474189335964529950786020395287586482073069365132488809097497887063414860348023954514328012355313554757158810130603520538560084465090299728023533974958077068212782499414330101441711431189997949016929435202988025433388455833015712156975114486699947901002808377882413994508081277134712721714507364291794449819432429982373882906338830798901414409641728473952741926637106401147888383303375754115766848585840340750069022781524789974545297459391103613171692494585620346115772562860812194270709255023419918566709029940156157741442832633646011429217750930122589177948288772573218582438611148331799273518773374334178767596890627113951153156973878192356353175379321528044663239712035241036931333692215192300369964542110687623594755984711874972933107921910695078384301165819047001569747474701782906482837169732095302135068825836768063577198858361046582019532070649857587099721908929020132427036331011111015449706903965213041344334365517447710398545640666999066897791787934036518836713537519613804960068720898209395710799439296257963152081657668125391994014573376261744378644010641719382907486442994940626519759023075478199735331470561441168656128614113530867099765385120273403650155932041511316459015789728844022041490881031194267419384051063342360445533196345203276487496653763339464625256816698513668494057636410657639311510915861327303560091214746675601664132756983797108418967859252254585729359752678439077068859295538195104689699225621388186289364126175061177398618471407868753317421519353897661351599274970579513593235016264325025558805895279525126542894921523144486025015411170755013501065202080371039752760379914547545059675647939772849676859093814519661463559887106943197017675424994908351793700424675547929960354801063776935558202067745269243188544601049534897571507527771164809342172259708100443982685902869741509781708682581232144552601088737834337768020271793745396259043917668639168058404949550233325938944679517170333540825856628416582025853260584213098218146651036818587345718888193929584168359089300773482178800772839440945336821157474827588174276562202427557501312847376334698070962760311940273857110671150257411440777680921463687027949881030248107492098261637609916628080191219525238391033416819565638775673853496036559675223820430716921875565878469520944326233511355798936554309048233058822855181700567735490819103228866170681084127504286305638895721453830707322367210050948523279499456894880323914415155439727406658720653688723225418655848234920639812328554871980433079313303180316846626755101442100137271993174117302159065794101749608950230961030972218725730115263487464730675798425411923784419630328224107513792960403212822640102871715302548624899066930227971394080507974954718592770173057869183321268169595514142151243400652916318249851989012100955327141339182512036181473339701816085998525986523880099064277295398645952663626049888615575158359871259007183615722060302480091252470000097276399897924268969102175699918407883076825918202029422226736091657806654948285040983269133285438284760533165328033507952200246879065907782772750852774642256534722721015531919241899594244865008674315368261027622360963220938052997160262483321247781185739649184671282083064994448287312233384726034797534701913650661175538129878334704031628778311810273395618667481148601121310124916779685345264043720473039239261159865778562179586107865028805862048939485131561313469756995942128957247483890650876054054542869622007937145555529565408541293453347093467140786093736992665903688121193599140262889136599078861480578524059039068515148182651088587420519478814726661117329425846116160207147358592177183292600536356090736353030453950123906230609189610978868436141235396655110520188381708109388521292757609613646925608184213374541373661860697152606852035466928656871315151598827773153557820403437181381986933600099452772954680936511161038793421470812865442989350290881747702829262365803582249055469600401127935752881190323578282065100610590847309152610941522397302417130603255146671613585981022129793880075104799719064897211754233940602863558719692408301339335883521137497360612856242439695084363478147470444757885307263438483674111256002085571613757792746580361513959492524469426246310919743327263173142456735164598606970343127718889428314545846040400971836376397895247119576192418907363387431329157511023481988904840708166230632095991833101873506918212920506391511570617324288353220863479873642232294978306203126598002632606072584603271158701375257164961730582989448296956853470956292939373916138782492057702130303146631383574443401712484064256673956651672192951536347333709529259088983970408215389048495589052994781067354497230804013863822415198292391833754227419639798751496450552648797448248984348337706074250382843743352502444084930328937906337461434168452747389041249740287549711958089445133675677576210310864262028784221906803356029650360873799296135560309544684603151970246702183180477730307967284758430348771356298753803055311674312955639128276060338643307369979421628426842958826414249545482448228404107610265594642333589491314881731682876813200352581173710212011105991897291908234795968226325929076032429904711779207389288323755115053916062998679599025159013843418526672248355485304214266805685356397467408136997778506084309140816592140107279327069863508559411762580465494871239957939163424843262475675049471659727861721044275012274712051894557317106415500654528477087119978545653380897923625875737774421505094466579544605385464643599533960752159464737705809237927865300759070626007419465707547343497074674948298054737305579298130350836928764465453986907564779096822374304230545917052912865161642560427776068474748273441982321932943172466665463302446298927353541473113525845548973503047265859897556531079886195745255479586770303694338014648873876101607657668425873140353006116639255282228956022783926737859269419492380500422131641280029897930025924876146860939242419264762441600021543380557805905973366764594354967702379846131247124249267074940893062791666273814015876108601336206704754791412127853314004517061058954984464631163047354315356982551834477133919932401579557871506084857736014049464688829539017900491460171370671903269229018956457795415688345895521602518803432870533914343347678899362844229651839240152225859357238886632533735743932246985702879960944606914789699749492245148518754782545797386627220357704168328878585899780211985036816005053760408650641287459030348325331362761341046491124135136999980509410151344666265356497910616874737100776244802434520884714666755807520777281691640569915054059394743741583503374567824092403779537051373345615511339344279892862627969316907232627959635832853036059700773403294696372853669889963840242187573217983266289398935469192332347267807886106504608469682700512734945579129371461983002478681927480074684764884784713898629232540838145706243686318458279339065014329415729047150079468317527360411039306723434303374779731521313103299388366655357417484633660948323123054592785554756244686802676070110000386641963360290635953198981571581588584451815064682034451642520147683320235244819414698585030651863569094942077989220697928014386415480921194405049417100130593223579669169074117807256208065862677999330043287828526876767658610964605599831729525390092654689426797168413933591477725186961941089869916901918177930066185872194078265187742607212076548632043444307022178296375648513096916652882594990131902652267069042119043631144019313949508553871981672961265969990971942847016797471356511585973108238558753293012807748518720349794162263859429387940599345944285122134592100262595714595357387549685261265359548626666009089049807268117952972099676114979542931462008277124406264287243049707604329317030711472082299847123214015844408468918247548179583905049284148744736765028721098254196020538814772401463995186071661419633085583135446051761576942090477503378608854562959250591956703021811791223541044953882807834964120781388513569321121148517028286032879244218903988342099604518655961925264713581432396297156580343911970008779244647245447827213298008809594820844586957722307324847954270510793376788590547187893916400992241174125970579763223490156985697015405262167201000428423905260361479438340712427611694805580729948260465322561013060457231933612054380689296939747733946480253990010366653199757319848103606486211343393239346817172893333094079361114390053161523641408125285729930145330751555230533282462121342224009702086019936260698628179983104643584919474812115690941577486161609742103300062180404232831780988805676638977279026158158052570772081908779530621326614395615740682658126913705229426581092110464973633655157369166701046744396826096059497532431212060009270397929569017989996966548906159724923739115067119362058560298524065919025287273292968622135068925070835006360109577373600415070754935922258578860178404123240005258704131876882775465586033749027438035360269896555209460170502486020664071143589092866940614214369851294296321571293530270994063792954834919331232556871496688989399833082876293448839286770350851856516925996906747937347970107371054201366615175071841804037519990797552492244818978803732806418033161281049836961387948903772730589354279312490171635584300321079342863511203684301252277189584606729396137459156804737372381825536903028391647531924903317723323286458915860093972726437773244211192213604969478591821412523111424813144363091570159435032343648319527921434531955540702888652015919150177416607488717173954432591977216540915789097465735415575513139486271578815056389301842782747310411357015902450601757768087540676348411663758412134498933286926294869882084465578870948301677040495507918220735951808695379594894736147144830484112013759696554185595545796985133941180863800796587629878631911316225377209236447514528710800366626600032980077140567583672419463031504306281499398982813648757792798218763871142648281298292103893904445185029039296633436095413792069042892081571814618705719078383955780902819807232913095488983847598600981236338508879525582068970993866527435639220796143907217742262689578586252814494864713908288379484445604834753586249047558662667484262482350259506307627107193065824526663606546840831096722169842754697125624780151013767142668236542564416422025134452176088195106944531711468672069087098971267385529147520779586422260161137910185215429082557823815928669562063373787960838107246064629323004874540453268968010567278476086180359022084086658990997359088730482263019949950108565089267458538102674128785366801508130835694818104435538027754006544774369550319407135375116968827139392209315480022825657763871542079481064379306005448059796887596824592157617986640712596839552042661878196510618676916120993922152554535567337259398226346653044711723372491437150946726660638774015147945961572466587579880736695716335763451030043854562203973162551480396938058822886674871000852197626608726691587791343612108774617885921952204932971961811361400980736006037562263628740850422206159351809518337769203727818291029237603955761121073615350813680211918907200317078926181029443221762180942771178260101193339034316221512314523327149685706504679869409890239093615692024061865521550124610214571451036505716693883947413010816439199935734421882580100255181404350004601262574867380221037190158098187167492486676302062095541382104018955220779084326326238057493781098840395548301393933343613410671656025167537432387058765480168693741686755459503219071924114625262103372481363987189996859544854700402694838814780831389490042063703988231939771241971431357495874654415501425245588276436168902095404251097886012230650718114484076190886862802548656212946118338681456598762061894956144021011211254737662188663199228066055123175656071857249653135098357780545837367490687318482400594703892293314590651674652782339177468430892425526872017231869967223895156412224787906706209749413759063665429082781425007767375413309036209837107460011938180972921304231527435419960603327997608508220584033285627482224332479375067081481700436257225739901622371659762905782718503605552310200183237614383436477950155429685713041946483042665685567095756254609920480618274972155296754442219301293072483413140479338289241837440847649858378479565007559353662052290000652728852376380039357700322524818370570145284152434104025040463729007406872107489840666662308981265042137762177419297310622388516683597175348678474423986309250999988045304016988150281830417027612522025597915795958196702912832221425215804226456000276238222285976746299066509637520578877539919161414522415662905741959329682278908064643719392211365953024333631622920975874146080543814756141889996184168483776327541657780921594829122350405635445442861284712604979716669743539175150241848440488154354086048714719589851149584826672744550405212741348183941267993583523264791269361797087284094752319733213558756884184868145314354585255068104784710962872357388270794247848766967596972888336823170659967436467052921286703229372188809965444402429579692036710692639467181560263393922801766359943712273447437993470744608260101373496270979381105585880311848658278706170093041678705453406500199041083343787949762576550799256699470126751454721972280329907365528272160888728603077733331490717423401894135734626412447244583269848040266224493901378104364786753953038616200138018051923075547598695911210283520330688249871589055921245917702133143075722010937233223320418429137613144098857239901715803395789240168283600080826240543260212167855567076119381141608514181462025433681652452693841083857626175107449393733038892312709850393415822991171749691006763378980659536048532607180792849379680159836890037510553688789355213321111838166281269614492099489279682529251020074220887892937827503500397523115073667915017373648282395178690419954628596572878899480709610844384305086396859586170024240511305502379143227050254150561627246928822850435236015099023036392019428066400105623311262313675652099813468153216602754179276929041375802179727605814168041485240356562460599466818285999709613424184518246368281915425477523484210082378485495892666626512403691658590843566978941238014145599314190397372496247652108146550346163464637410848354853374397701270756174982208019285510464006326040753644741024592676851447083075298108391003038222443536576112985683440344784733902813053660384024983135899688351037200646549791570108996339763224138691316866635213673600415590276734631914828092890989708411691567749026339022033471592901827652616079390820541288758817674366862927431776437093747229032047625893064447691931666862997698032639998986940712913952067331304130015478100585270379985794214630858886190956091954853459509024830845710525085681030207887156227313664286792008647258225427955679147201568021400101171180817928182693994218340582438148519694200396279852826118539358846378444770440079899097058465248683473402999050522001052802541183880470009475175529730476226552159346437408128772553931074125959019268171206567565352965581391078859035410710788884342548670887579531371680196874479747678178116627455784384933366149761094614945185149146666504838591406089049483178473962881776686273230004815405341119346847404628510920389545082863858740681947303254980614850481830115176874599279349536314274845154948377374646804392529081753318884154314568505525563760821473555421388143072318549472514621049932035420237846973125167354130165684805823769585115042019904954883677510568473864420109180248404477189636529733880640965557271013198413273354377913427116524781293344811860254365166181898147070493417480526860963589191840468968222853922682669825332085739562802568094806557327616895861948691933711738527824902929103477796028064139148623920664372513661697376469244150128394360724311772336818950163952805205383846863914183094146274934168998822367957321461797266938994771118221105822259427920133578515269405508870552363891190977658050341799787572427526348481176219981383922792694085925884227487103942129271769730447699122052879576182538057431751649231690396783147880881787513781091739666076287160226755283719684390207236640185805377824826339459891866196856386912445808921326509555747429192294765826224577520182940458388244949503517866065041717114646376422745103328855739538265747750957440904033270301542715506261605410302615843752863099979948267900640000717695471330530862359932863573700081740217267080089703811052981154754139592813050790941027819849883647845603728351878302008661945849719864040804245561699222588781874950960493390285934621676869078429696249272855605796203397659279008299668508114401936103615595767260384925424289892611231839220160025359140876020819737478758773778245093544871872762418199349443997115182944395305906339878810699538292826606183444330967487442259166007806800933948147467292511628282019137050911760912748600924681260028538268604700675574604580286840680255713063575987444816150513159372736981826003829925900588483249866568211776815106794704886435793187447375268594936336853265025468854411273977916568900153291643273203132642312271650977329916985204754749159008651589416739473754605796613454163470866785236688222544016632978904528312617763095308177928565724427546125385967907375669025728452571704574781156220502638412958632476207131620513686791994077998040613746291096010940062807491343669610260497604119235183844754818743612804685189766809960946276524370297213480424462670071529188862666783218890698191112087727826326915245682225080145429681273183858945713860114041852522718632799001281851803017952756538958487487110776552165677071742270780036663210588972640809849718726831145994929219950369560072450856251962901776170754960237255785419484562938879492235078989928175265532341598005591408709142790100076625336038929064435935083644323340874922402511175153775319098703912281288545061313088363125763721321814652147432797631168602124802130883817174095592852662832532471157854686085842766228593398323623063173099422548232353685408620441112395830312281526686541772591468469210153238337534372112782928629606285112894478302917199635341213259877795171166449646026611727241486372784257088780497149466640873710332871864385780436395654756497445762123603030364110236416244119379492957285897732791171126112092580275504574490700060003987407928499335405217354833042209958380346991542812586808223659082367760579550161275247946557678085275047387628206901647613014442412354188961672165560182752998279044649513268999203023393109292764067370311700928158602889315715675455776849771231586834758361024236332034114416607186937173876062067906698273557202067819359842606207952901675796897393996631044258213399471866059573843960779746554547034627914689557236773104647217444713008006826340650789211264044436395458145381302065266911892930991754264207686740318380630672255436965358479231268463199595905704616553145608863122548650446732507510034017185240891705327164808225440252684684738575225474587061642173775218808162656019129385402510526743736164425909610109944738585065239874455656286820711667491615049450188594636499035896472231083046601746879965849255355431545042648000752516751539390416975208310104286056688220691800082915897486392950594693880583923834290030251178817213157105516458530408328613716436212306289335962642833593726524085268089528141630064578410845891454977795820170118972756161380924827802812874983762094646362630393761514368593100609323567255146916692927725969972616395224102452155425405356298164741466962515215955490802692409343814171830621859384437508192468993065243034674278444326765662755299052671877007494551368979823244738824594579890628765335711187716937949317337920834018236422510908615005092103354259546166091122555034555172590025733846929470707038855095916696990142354731646775985350207541309648904571355294292885918768420212753179807737314848937270832350476645721777327477103007288052539184477547578740623472830759239905625973137384240688243274598406158713775299734234217591228550622894629053624373243457728084604691255554753442045761274584054145477333763778690088487204684015214070716012189352712410116836847126390286369276043291036251107466810426850548447981591314148803378450837207052466263423487219051078829594840716218841028734236871021562383560354475240483044624807336793220033089743286211580590196953178885327601258909252731456719211837672301007025600498658048145587795760969987164629026111791180643734027354470742049699105251133361784434337741922671904982455583171361339162539950663730514396935451959270411960865266072349716072003057078087394013897049708745771096179453815271349358725682462351104745787353446267307604418821430278648624170860769456511111857644468545062548289166998536969366810035846098203159593702685961124488076339708396101597521242908172601867996622634272908360546540524569173721924185574101287810670801690430226864108669860576621941084083337445672387098525663629016602798436906723703217291442314657754723537836737767018033309730200702012512301009798277890550301331019444701765282329036307157296998552890785930881993901617803927834596146176724265378918742378215214111266245262764501837999911400169200882755898732599047982747788274532728605557537962852977062851809586719869763256319348935324651365957274542912231748326055896087229273434797870572819713389488289192833087830459051142126811652558818390323221872904027597037593408060352464860160849320518311132541356703693235915854907267600382536832576965542052261285516717949842431642497794740733346532488133579652296967399934620350062458195496578131909783400296309613533979707826201710191500764608438424064940410206267149914351772319572759609998107570659331291593126232674921841746815011642823444038983368927887331376179854319766954524259751697227094366795192343059938036854176228258915443421648384486590405467815005299130310946462056058237937255702211401209239767494803710912111178923247495518289490855085796132229096574973786611681566453487057551127870480155350418816455046970591238783047794407669158854942248703498728788198580986718893066794201691640696494934540188671128745328551448465742190451881383531591651049956790695540761800460283550721444464350497250074106875241030453172544366050795620861400118161503439898674186036530609417377437756385844715324872169844602271085940309266930626535801995053350058137739000693969470717353650584540661258422422107301248506734713310244111092441040282094222495061014235378947401576209273300994233436484809150691648718318720870982116127850512395330227793326740386288786319427855364340027618967644610821023874114621482018569165325785462539891647631464963548239094323158882898824601771729636692638375121724507724594924757114591002486131171157409470345020145564967027483561633406431343526112084471139792032732117799656242285088896878761957369684026501861122604546337053241666909589466696430262971739768471213843304765894429008432056700106884290189527801682128866501508820280838228493119824853611539381094851440725055714299348574624952447457128957713210824033433919593271506035475758114709717645224260710657888091940270847032674883217558254165436559257317383350062683588636980176585036379149186542046867788912912823971159911081902523867371729045751437238550160981811784681376863318343970037712199557553707749479785297427381858495816624969978042196367798880261940276624974159152397143023285779836921476755545603104817988586389822156139821884293892826483969116597431687748391627284268709071544749972213521747713530437780822889442715363310685951798183619892057380719475232515197868199161092473376415975705002982564562564250611281902989069554572505729969336842536138387177281096109858306963265683755619719936549102661190485087055476145508669178278303199411028468491317378148647498789830342870308398651630818381416254825776439128496025324323780198086307037787276592845796068434484208753167129304672683096469328137091022725649531331740030343636433279665733264092138168175235372645400569910727488702373999673930618221719381775167368206585639920597139943777232485563109647050081447957479689950754654340867979833025944691079370346025360712114311857089548511340936464148857422738191346552512913774418738134630310782736352931679186060163628811120090096448680581648851128895375706785084403519336535766721008634734219740225076838742120990002011925200603191893811627527834172348243328412750651201693023883350599108075629538384726099486773532398136666507661302323813792708921513101549401937600472940549087284515122079770360998216102179134563428283636249570226161201394083721927662049847868586080876161696022336275267156559560920180362212634346524233304488308295401145363675332755396887309857030270692839374761917814817658602492100792450286791145284238835272740671143916410929884225823629793418714888306541322298493173064870456489502213539307408246234596815206399655165605097377392652902619986721642172779533392044320118607388849250748208715220172417911468321978596505202025802005428616702873875117659798549020065120156381677693357839075398388797720605659531326161650915415812805474809052213969332585486427615310046105971836405713313763391422720838567850421736729359957015600339160942675578700188458307091996915266862705628973647704903902675451695641808981023542455527531236511509767270848815321153531674309793950335842680923996829702361771392554961317915868034973340560255644836091942168020794046413627019487241375850184185583522011961346866321103403281339955891313457550962381148160792417813274107883256877616039809516976842934851709134451028975554754184716725487179146473409558514481550635827614078529189567319261565400308628930263722590729364788102389786410786497121981315551014536792512047864711625526189834413972310957463574156717223346799736974930026865734013912033471802334863130562825664979456232894486036094918159999720591217331063909131712985803352338612326416956503021243011487438765489611084431183217720580843100058886588608822900358275964400488357975471649145319745431914822852892703368814840581473153914196586728263436712971745299506101839442177530585034027183770799796871268141738163703612764562384373345730571359167203271462616065426100815219415920148379319874392625776855521504979948512064590856013469577281689852007853984399349503683097036888274780910620640628470386898324182071854428024302426451811458125032244499919939464862543955422566600796398259047787757191421796964697405715651443808900254250938115380127357780708126049528058325722697504772179715844186995530414310580651304306265191054626090744734913057610951922189496404886046489769319296206843961008485498985947216280218409844330098823138260721314428019954764829025547526949407819685210535100764179631970804096198472092705019684773427542327343064853701644832916326366742650924616761953210195304660533290261089231943234510945033429226994283470791048569105548131592155333267367051240713212146711646248446678140678002125945880670926265816830807403100352454217649710685976740869418565505457190597841849013623295788914514967038918876015243428659225447914894950980957069294822325819114961938879361498013332856487054509922726374831511962253622222576650266583549605685823061548330815186455287391617442897151371253814591002461495145238739262617705341550854896620780251341902218568327262599178967159945657815781620660916101535135235814645888014204628140031728802740008148291764419298262701056428102581823505548124091497348016724785254594947238544070869492594457292025765630398901536080119712723390395493954184036139591436691419385897320164167511089267735328642800839785987607189849443439844599250595952981228552172192318920833433409301381425356878436173458678259333416143620683336903748591002872249648900295966642390299132391834203259845890676267871145372765972788561812060772403677650891042346033728092035087503812099414147062311950083508356960989898285675746300662921116454767187356129331635779016252272310782924913026669149909977379032454123540942095982285733787542339230430201684293533605477413732025468327696480994226527480768549272734677684642943574899720236225331167066630989655069067263331919789869380552712813719144298294834300601445180190043920737636726701140729305409998095848696397503033365693391835114228113975253494276510337671577011287578686082655995546273371571323914481680803198469400680837778332283605643565344566128871278298373207962233898057233708502950855917661095248324550450543578349402970670258404108459139873494596625086147407065227522899867738714148058906730897592221386370605899204879679700091323460213426962371107723229148357112171218948406483352179889392516714519036578030681587595814812922075090545688746441145028104755089934422290457011832343953604911114965340856186224165506476830090743345766727997646662954283067986678436809150518712400410845272682240775824121277929123220122609233021422149805378164844333565137059859568944067305298263640824116107669544905761117191573358935541910878049383739456611059559829315519952286304455125682163490339176233250388766496214503995264870786985744552743663852499457638712750652040685678869249419316748994608194776736436882309989098523306761419244462874940296578649663875746197485315016287226237873413041654715996154941961469819114509919560049619243796394533701187157195134575858140789652210159762123427750811303804048666465141351153980769530954787058839281086884607966798974513366251999205179525576329369786972413952405721036438193229688945440045175066593527444881106754694565413338090905604068638508051533828783690801598161114951193274263493557719892153431749638693255028724571189699347120904829700510271514606809487071352105560154836776589545511764496111389112206241609849892690932942096386254615649578334063430264548956884889723431358617394990454635781373588886954949031622890416226290199701294331939251288693692074888861764391605250874661264043560685416273167853943960866781334293180288968411267794491225384407469990530787981199099090942582272363551339640217866792221703087296009844185377362920380375147930877457929791188815978988052524425204123007389899304118533274306449326773478593400596191378736224585084431549791385955185227350678306502108482725562003918384882157407570552506891600169384934401526846798720463962046356817183879289539171272244829304484560359557585846252738991358182359672754939060464150308088305324960281448408806906871213897631367389189467747769775051043990420281627413783749134602056327529573292652722916666887003006301292294843180219462486298489626435376659042882116891230431657465448498088534033724119153175961767137061836226853079688069233315543268866730349565259530353747454858533572958320398644829713543119994233616997553892220375554183941887089603874303814513511087141067788148086467345993898193818995938984020931986593158766267911686945720073368973756091290119073811540455496918168237003258420990275805915385621441711484305812207122590574036901581096734756991024015851294604770080964044461431866354130272112709834774314568569957022587746613950523238730072486770603233343399624864988480064861700170145191047180841067240871682569603990624672293796205879195175538165995497416009769385463128060207583209774521534226112132778135576858005085691685539321569881813257455620807063406129906630220636308953911531776828757768315880679229445914371755129837207826400956309636476793487257624816688559432630597751017107150314071543212224855925661742878779919720528330601071194546768529632784507142111235951795242204252063300142446148052823704986324084344302850780472216525409949149438119559063451810504303903026878528417353563624188788561305748242560983688466086818388602790642192142807232085581682182160904656557700996470973263253476971675823138340558168559034081725966509862501124574313860744362023586742926160753838225336976674302030779643351278314961250807737649429172392306153167201323291611654444536140937510660047095222555939054222404881454777998762729698832892620516330127333497627356539003425937586766874090952646735916004338328570903451167202367515860974326768530808591524539359174228588787753401697968709287314143539429126665247393656214858865958678781853942289373863668623473247845085530340262044810620571375792035391892544270530800358453621517947860014550389951443544088658340558776442179326237726454638894260586322938146648438630780759009598350509245683677769631501275187122175906873540047270291811458281054042663203937329359646485768886141845533199287539666391621403349428499899186689584083982053177564907804869333595792623257767902182750379002364003627743743316695460533892633883729532276235574596905646614049561448608561228847845680585075588976355245645711095221449084023779522341180324220620303869582594556418460910927636670976435013435641899074607774189471963964180473077873012206572518470032566144065899017726616783894256081014136866523922289782280498386008127875193690107506692966611391218690650493301555758790301131577787574166674236096633027851660095769858347741002778116824049626938734493334533567616959390123439478167995219061464872315386357282151973958802363407337437546517334357654365489187128698728383111043503263236621165205162634912477391454103866844294918799393273312296659634373715182244317636842499854014093448165751592799584474232608784567472446982610054813092312969765961620121544091667694452208159326283419682454111212851797296626567508163363914719266030249935886586001482056303059773243388460546933621782971130622466407246839829123056374894632492996831307018692580245214409303266043909012095471322779317438717807282938336960075454585770918539551656580016755353925814968334278095384275716914531453591034872923039303605492350394701386227526367148020076780867941510651769903442806752308822120989444325830673805102114151469391925839058407766121320652367285622927102129596947100487493122063488640201594675747734331553435293616525915750984304272609386618965727533445920901959528332919372213752824299742794532843270634011329473989861225457631361841573097638144494406249101310959186680435952163700514078607034628896321436174551698432211233467206416917247263003763508485573140565307579144184805488934899741345690069353996760933320758806432652244984773383332800519210719628869759898836594357519053355100285010275245748022179381032978748947974117413759433839542457765818586761567635767001132550507920477733439391424455279816964800633311602618196486373007948313526287412347123630053644291356907358604567448597640740834833365269725945950248390005665112688149731027898232449597354109920749521404800986916683489270316236251236560479103862370112101938155474782677656569076841251196504097511204795945110828024505417058114198413678435212263663975965234642663155348157799193432012520818774730915320387182955081165255990597945701585242084216542844893125586444125750466735802000546168412061054392939737769337428919761781760198820203207302258985469929076685890840903540401003153248365176037145827737822664522809363983106755622324415835693928103695027093252782001743110574676716662886661472142186868869421646278455471393629239384806539296192352666797672237869159726300609235659781463937662616740648026877424927233142089498196470163043653062945578545055881979725960147718909307537306442768769415191276691791378208222489659214440545849550004940528323085937020371884462920917019929542033094543089434974896019186096502431957739198683873144744950059167022316786953567292734698221186191142824049992725777364051271143461810001617080072378737454896867643218597784759210981634916549825588096904748468186200020602803365299589987594209283656671838065315952174384143862019759935234940401826305098813044142767066610360289200595113219207559622836726216099076880765380021872713964729840680417820544303150966078847946904142213619294141392571891220652112436148152362430691893636683987357861271522269089944855584870066696171498045142984553111679866477751358664395467276544113661707476610677219920674789788511983324710247639289328734760774829818340074817098722080181884635603794906093011938531919599990723628636709361004632620606145736053357278861362320417364109820824922102213858392296544256868114206076641367506954769766236391318638727364939731515388294128933396709834671586744285801968878453019794905380837584054231976634998719995347304990411176212431067683051233202482211169361595028448299792022216179075491410000603899922063226432561141752923492487640958453169325893598806878335178202531828941150222039642527520960082750612599676061389687577739315198018509685150751903066615612870788461039034783294289584501713569477352733212972378947043984087805477395016092598252695344715245997519099335753225442498264869627233464306439983979971209304065381364395182648180356938994474802467403209818620262418452280106184387289629081728747556879057537855052122924023045954204183157715297566399560035598603546455497708933309405909934922396130150651326224362377752033328904528167223943969435039765538909587498043128875441687764039236262872056024263685243378536272990656447444119132795334861010300451666467000408743303207717878082736966956053209967630786925051127059915776066076933090045350992195968332212347028034239984412009140253082991819140356441483014371362982849802419253067144601507029382282191002985564876347508178783943773356771438195485250659936799920207472854871920571417600547893879670692000483100240123615311339910677417149553152129610275510202592442833694097591786951395105254846419461326475990374988179094221469380813295779808911511254164008011599322700457794624926835251861950975818676494200360862674381444097054674118129903976389417830100947817174395937677666134359946158730505547100943152978308674443700292075074142087165576755055478847851494429877503522915233931339676466800157572768504048751325516728286159176632633153859069169023463609777659539296767076264196955903386030663376928491129797833021675142256358378153724884436522457011774725948749931661690193810689226878338516968612232393279282695681482557267839727132987288839906960478951796473858557566965321665424763398049716359075237859901523266968997768668360522525317649517240941895264120381293444929023219462899799870870488422110614820808644629766656994898420369270694847890517217291307180701419736364201766161675830411493119982179818542524914084665043875566711195903455757150401139399843053589001707840199853717578879996378786187844136579983218591497003708755569336319161921027905872436751745449148866606743328974105616309724594199256300222945597326724014293831949656573031007626995379574590781577358274857699003664207254852732264280857705313097677090921093877065175116511599763996254441137672295311923548644748809550627533859882777315647162737841466627402161875940271436661869878500923637000878024048506504082205598024026726036810853142173279888656151163963878747934159415079699021779823996817020206365183479745285552944476420852556574355420313269874681036158381005197427834225551821090036496674983962525738788346385604396765555940624458146803594495112252099654149960790222622955206290137624616491957979873307756270130188082089168874582485831776975398925716522270533561641270593858837639382481545133674891577649113948960313266542081972670193768588538573630047421519241957109894099657019623704412725853506646218534269595270855757221933941371015384103041502520926936320696201527286583565531257963909874079852855358746666052287241446613396047112441580196004105895336057812895771997237930752216870082568506428335473856738282301932437200721248890831017421196144778277979452094323542152907620530869716912364260046085923542294196961258403512371774383123734589464756824644030232808395448990955104795403664370751485085264478873078423404884324891112097948153349631057459694161703198079573213684108808127022630580572758547140613356692507622406324043438774679858852152042683690252132316213654896625200548749380710982931778374158922274882745573650376794589276545489213930104719998000944075048952744770102665699962224575388290998979346482638251778456072473520237958954171360541134132704242632427495677022464500574437547569040070927924936961309608879183315146899282728209962652190222513121073509290157780970722660222502810973862452545719890602071270970679158396320598038606270076843368366743753727823057622570353386465991146018325215426867092915155883805850407931855892745326400647099581283758654285539923586776255623576171605707672315432955757326393171673586961240518156622514710578568345003535530319906938717485188325054107202586125338585435284596445003141913477671731281903181440268685983085728982442076797091162187090065956701642645304990891234523692616047921193560242029321792484980857987908535653045057957834646293117869790548300662281518437883501671403231478676488045478382093413315449755003470803528784545698843340727775589034517338470872851826728772821917191676080276814698168053818995007245279240664239308683316571673015730042872080717465539254442196570963042032501057554415648763002818533593283318599182699113184197458884658020275752089042392286418128082612497857801737697904668132256981429611073830496829893552080984069761948053189080549605776159715893684250246355069686659216672742798413119081811637103311171261693611726948124157250534406749897270196299635849181214271298436394162144404551192336213595806838529044891707828969148543105264173828493794043144989146745370741126421770838603372375848546525957188891092921714068146762453013065453191632845877483438259323800041418505220754969415806100346209920421859041310498988613242317416739544020784456737567488380197959443177090445350560554825119357520442948347632163755176865328338505465870713827109323275084151824275473556190258183414913345917289253189052085321797636058400979301915269900224629910525183922970706435344538231505433165172290252314265066401655591533275251650474716057001006658788434565863644705830883077782031744921529280270929453852197509595104368123379257139515078268680757919864570644545770208247491212329413168394782619105176771372846034032025982306671674770742553652767190055273144508138951445043623584392143926601417006558175249602469894798297384014856846034697726071028936104596125560727600892123898069010143214758849829188975389608820933720003731575231134818597385688144822075317719596977230991457725046271043383210798095549378977432550032244362490119146936659340242306259978743291641287656293205607936896216744318340728480508335965238377925159199425748642332016027885715761407965335182349889782559945988931921771734777200566568812955089522842619511090515150546343543094523551871200200353146792629273955064117427481894273028982973598759249573070336818879940159102127257613074974982560464958618947649303980261931862167419795274652482783420947475281037882009087230469943341374752326665552917861099797051954346489224646134448499252582138503402469737235782302376035720290414788749779449148937233691794303079320420373740444232178258482670903254549139610534049055081401607417222307997067884891472839053177776249978485106138532949691803462142098053776210586581528002637814962012241112636801250441012761898238189372572228630074507022016316876015309080980860593070874252345919282868677403952285112033521682752924940209042814729022176582906383236042726290708752768970660963506161788974797595599923397967831308987105843477932817148044476154635418808012393654614695412312514633774647630273438809568099698012338063338025141375563194141553766623242840300820312151584573603500196974199359404019742559598702553099497703251740704573669177742807903972911067129754791375018137109736256252369404554418625987306828262117039810405631308446658552659644819542906088105494555276391473809348258069367268405986971471633425544403194354578603242450557814540101513535233463709532382497379662642060327528113882893176473919821619019170372086513721466477981501761709043386996509476724955791480753559910137143925058915228075587990473924626154163434900204293992956435212432045106619764099389848734212201665551932908207109176659460089896945617021105686285526709394426803800930455738059774816582415562331532469938302825226351137301524529662793185472099820110282709431422364886215057647563260781028551750035769555891999151896935399766076043443652267698313295423877123411514042032880033958552324079513408335460870938071489948457359102651912229668970239355919507720021877159530387942123402927836540670532842625100777118304318047683393035452414541796833152196841589281978261183167373311472659637063605740535351425771285057863203605947654148167675817501472732848467928458868148127522095137270298951048160595295058686296394469859056910057305544722533738348269503537304477932468551027128497542657289556990303267900122631406197036058434161013456741792727931768642435334706362761270361388626505908637144788574465156366985136921282767919908808828717115450822577451342776575463736345031467383120502520310421040110396948818160235117312570258305712655657492908678096964477654228136518927184846318883964337492220870947487750861747165899141314467926991848643001258501996238954944078623478779324818977268107908813157788048557415135974978173308366249881582843955458954390236139799443908647517156706809544612796682566904596414839884965723136383494404255211934965043533168632395126728514302044763328832958253271014021531082638425077150032640561541291302702967128160746313520619946277029561567865482829257086543824253444977756525606176900138420819999761215577379613306027343837201214088230919964884779390579141019602129014105176862728571399115456403508250942821439326991705792019167074981824796104931999303889957387966395821974251080425806049156490054666496472545750382123060760852579843212684299617202049806087591134157550813185929109336327358446168567510030882670637451518896786038528979105425537015907723508062272565278078453559727297381908934840162626771326695330208430085790953505664335166918583755202058054288882213457036250726863740155290324833517347260503400327595578413325292126536007337722333240425160192786355381846201777134391881342998988441050090272954385406826407893433642155151435413798526250676731843894587450213345029916493001431777949527128967633609874926573681474502289677377737895497570634046336058871331452218528427479592924729852883753904772490008863502773765036387454761325616025698184833703063944808916745517861758465748482138483322864461536439505478018425848711747346693386062255298402275349708502504386849670681079816477470555307712039556270285845310163565885727430965706183104006518041707413535471292030006496237651353223644021094715976750512967389991986524209487990167226142381665401201195536524044014332813492872962870959405727703713828011244117221552481394772967259277815592566456616696852684997180986504922819789003307850116389860344083302217966223716083081003829122565644801005534721397625084553055172248843310841301127538563220499694851186709783903085528193706299546896612421894598038014984750904919181971110066434464942688442783297981671832011618627889920043242701511686784822756832533846890914458582289318848557300264559372784137179550362127193074674235733406421066039303050943434424996397252045816657505715752987239367576964485485987292282286839952009977216680067762395054876111118400679824786219106036694967357990725281002080685658479991872346366628950040536699207386216357733029665461585877746088565267646164273959548130126948513369678492084130274249393742954421250193136981589154249227227969492643356596534827389964249980135420444030051454466351810669084036881270124150468382602995469425731824143911749750103804302892890578431564917813019789411587451513274872647924235791451695838287206564223200520297055850229241673643642708818957632177972953318020615213881661211253231509327524729578423552836504245453931761432165044941509507904595336089942229947835770588980492403789465322831252149587962405151449951280342234481776574504749414524490288657716556095636866989514089634561767202799588693015776727584277538536781758827121897938350312434807349299969062921261700698707650231399783178538522822553145549231106174317894365825417869221288633436877349104464445923557499605196204488508020344254421992377884025513671104808254533833890498146238963747554987065865940945854536940646419936273226559502290212862734643635735633570895539207336047395592971435879880520185481023658678029190058182638030994531455953261804364460509540109465101057426346817410366505447328567605354789672180113370313665678990793040774703088849992028242272137799542171574904555174194695817141609118229043309458956262026540527845575368724516726118356026968744340817693161204111494625542245701766266298356280328712530346174851863699456089430665654578187215412216546132144880619772222888048127316652608402064542329424122329541624872671697905424328931719553172258132543956538646532357419777241472606376885110142536873526063296473480096979563758430032358348650547954962223674796705969298835966889964012652264734961189070020632610912153935038026615773166662158560936825996603986002248672841573075002033437800665804383847562556460811332457432399489554717045363274954965096880607909836058575421633575510799527393771472443198354400492187643250172337834723728952084709708006509767500123467668715080509022562164755988899230204144093509639320588807969187500465058595842016205237050917660325508523047381390881103716146886148954981960949719282859566765373732909026827888341468162583411284788075684816066253197255633672990755163419664224523335284572288154625025604246350464393639112946162473153731293818796655797603982287750475640578532148168302278043492117574568355901818428441758067470004911596593853012425950631660241374349312135058606599861322879137848041414079883906534316532742304177803598310733575259492344323464909773723632887314067351295165931981927439699231879176942356203705309282971728952689980736839410810658710503644397978768443807832118580306206522696604241576662612613999898003545530876294542732887628803480453111208885280466345928306184392640569281798254387453386904026947395495755121020574421080078336145009302804087043231270403830487422472180519959377856068154205879493404563875846169956740904035241043094171228837275505875948017579461381336852232497722502988463819707142452618406434046292511713697398883442274013132183270177202971445477540873157244206435528632735652773998443579943179527832968012709683855601627769070265944673318870667208723089077701227519087903137392412559275649646314716136188143802926813204436438709403037207652848864917385298638840970975905971142392341682328748425180852941663303819797247832276333482249697782726456047496725435325499469173701687591091241663324706398070463577587432862275663755623670842466978278392847248379466743291489588905204878946672091731992107129162579304854672872556911159061290608580705218944300387608352325133221950887926571663951493930634825970735945225257480494992601469592436209317918065077817441148160138094676208273724310305994357771330837924106835626399541319983234237753013348177695288431824025202863954757435199268513729143456767525615636802780381476046627880590907678106244127359505789476716981667153594024523311976507457820527295769146437665429005424613071906203567582008786995873946459698084168656559067434766128515770234452758518586122486219488303310418540059937775312844583314138100609490929171066071318293598300230818967229729127661575466273208813111560106093956044922801547359097599715779958557622339249625046382023357135865128799796029315936295350737562008515097977120207402742955756088038461946061880684182674505253883108228104491344755573982634488644929370078077516194379758014812388955231340277740118590548484125067521331422602704658328958933387958105148933379063242866459630344030946383359242197573250059678243385820859267729740305700480186003900553566802727860668453888889968464699981764420261052195777613407334554768287668535553413650618870825987464177173023219891745640586234499877779130717788831641403972773959708485840410113213730306385440545666255886729651685574652949724174608223713736507557131032763882347622778870066831992057138861881691286038923956048501549453718301487352056698049149699161107475293594440564773418345157004005103402205383562111790885703107153196114967208559959504913003172305738781611689364865580907860457954039590412416501198527398687576991627648723776565060314889070811718363720729370416848696047322731669044504110913188322598937456345295139390197859175561767561490436722113654576017667117472290240924257443489224702534836231684444858853565583979597869265707270484838172758406458027118688664989257160754922631511494045718494927694212131877596644327129161739981529841954607100956136447592163911719211895944963902278928824562356980298052372147954680733960879946809515006786653937236191568066199635622039057052091610163716856949872667139270696032018480148376226510355684548031511416296257295432097664025708188884145838193629355581750973538004662947285456220235346944598215676751553083438069556264871913733203725306300122745740426291753463258193895007227483368283755165720985112664256597433272570209236120114698890821164776421630771043367547017167387006034278069199230292129281251561852167100679367321080774376725808235927264439524206423091136705614703713023943478607029218445404725766531116089734008701117093964130878204577478902197722410346653845739197525923294617377806095853651313690198807940796535456396492153025122089688412927448958856810681220112259202307766208112966481457425482860958078753596796099359809399258881571681984428948587223750668344820951510466855717476747390724267209249210247916175528270567544568393578712268148407758522494448608769129078457063497290713226217077740420418180392851157197192137631468046873148673205981689620023483707412982056182503386231154276053596441778131234246303057938198616332658833580018618612468486138450295223694282880536737861913066733836040786932853556981842261720923219785522941278855142741421821090051520449323970496116825072937228672491681376587542206573945445726739620355954707284555658282936843729518740355332196977616507047570525865345455345872423166682450740706752495182746901048234330218186074486175453446493975740704139896526478058884484857729674475468569178573962573846284038841946576595030286242113702885046364171045111283964616335873969544299553457073871717074215836214293600003754980324667874055979747419048197395870099680532076145544166765755929176978460029351120046201968922331847917024534130094486980188842725913662058598075071846692722909962610943629099544126442709755615263894290995322138357086888305873487144165777654717304919043823521304650469931680265300071319807627548321379898109318515192515537567549116515942470155946842189068231444201515409505102126252014398799755828478238782743996973885370167909510298607789432972277449559775385872063482273086838318400359786150845381606069624681357851562138878952371494620128396089930093204001850266726011131765637660256408516953130064693256253738626791748027211243891538468972659769721299108530624674265036558471338624836553003873650515313656236228922540169163425546569163252438305249510682714721428225137148760653347089545883021473504623945568531464254992532502441230695607742027112781075947169724209221932482432105392682613913217526017136889391323125385482831934317521794978978225363303492071301025877935567048755858609608968411163306451729686030339567910134874769532487609196841380479037149846167343005091426112088931637273239146752791657125387126287007088121022048569500861996749807760092523073503672912402759193231234531854952196174331851684680464705582192887079723590443898901575996602182594684344653230595108521076235225246798223184897776934638522684328383574625743969764689745453928675325205759440046472928570985174074942077423792652466160255613829257556485349294383834463754160051759463664761794972052480223215440873034999127684489243028875955169560856770770162907572914786773228039353463116188151643839380194038734868501609173386270351544892330881162071052362138198765921513891032224833968613448415231526457111937133517615864993490306071771828319042253266336752140864148616814621042405534130065012061676666412878805039842908852454638566952485429927414705904344609654929282022606711825392897817525051983166825313893558266050634735112041769131781311277648662323161642060671759625132731724722159676849635371038618702089881269539930806443872585265689416200808235445666742250661040471486724223133351002448001714392917565375220181214352906053377738704607466627470585612183930636349062209434553349151810926340847344533279108245816933384335984542035812026549339487308514359048960884815423220096731449121370993130881949183568598079416488381693145006915245302707786937411597632383491650152478462236015719318554304825498543282059855847718309445585557083476880088094244626028944319726883020327583284276123246406173153732726482778689746538412099577691468164690819301189831589334374103057521262915981698854504719389769940287967808206008547472653338932134478143081257535454112154545204770024101714813996996226283950934814986486114916067448869663324220369384944180095763696934373802756632425076201124145191091618137625499492573267833309816166699898821902593246960601017541348885299931959439902062709694191834689718146798664975200469430409926566453308577136690224219666168520414494241795938598295283697571670195943540296666184225645155249942823280931075879757761417323387907363989004372432296514052092350367847985098257641726260057452481687423680607248326693185747320548590402393456671467619371006271422144524857077550683543108294254330329662010268920828161672816642739382643987407337394577857927405919381015869263532219613474388299246695984740274706015367832644075504389055145055733710534210957425698038340687235238126887700823463011938942811000249706982237102626020380996473474608645943362510917599102254686379007272718486797387483131423554135950350277778172879789617379745400781040917771599354794181083394910907396628205413907113679532649985402777726063795255795893083596083881269215887451195640200328294443120650491835629552954830578580672231203704130526573592865000592030845916587460566919793391936109334014658355357298002706319070181097384345823864987079645791146240545654781015706876753844798415104583714144634897261842244110616458871279536208039712489378490534551800160286333004416427062445444591801672240944239641052116056976431949044799442588494180031824852515557532637549618887996709190535373800189841454800503418819150283549778858463897498193649975134897406913993977200070611928708915621955334258729154799669120977757797717756419589627994100170130283577893719950708631585454841844551771719759414714095325097302801524447455182245011395300948239120726685775939195197437143553489281172009368120816051762262587887971247975602487759315428727055542531726718050479151782572006536505208209578607305000289958447418847628472271849400523754943639360954377372343711351851801363563481220029961656566806138977382358432726478389956276941397592208493586838021922326796751281029991004927345800579659028316792425183884344000600766143698126645212848166597722568066651376079919369586338809353198737558360899751048913507282127558655684532096390493159899014181929462660208781943142996903333752213868409772503853744714766276155411816961876250300392799775710019789849602750096574567362705670152650465680435194819219747948121958291205259769839778728572119190429489134415005525886493790645139779683004216371275717170079176944713806567397806751745111654119745068197547733705334177196960533444354428907084685337138764419432217043286730579497275681430635274197114619912758402638792705581608078768258110688593854410537522988595375010026369234273540952415425355163642876172015757360653570996990359899952367589077035529822776076513462295908519093667093780723117897457814825213262817047323340727142127366182237988726923394655993546757593436970255363672999721247384268284874172825694452901009012542832263392464648873896752256237122087241793441578643847955430931364562728795160622400872595675008580392251402368918023492408291714002001069169359570847859040281894665316365858057664799815361979139454940101127749735729790100149820776339276395464751009615579695670060951552257704882968684105080684318518173884925160183323533291332864463488900622632278188442283317213109690911238600630517380123697893621422843194811033890345801346138028720697011329279841083883430570202464969894039707050122462795942619110870798646608801124620528758806420521901071122836456773393850183943639297212733034809371002042169350582023022620739140724824390317520667425184459330202435517105246288860028980063565742123013735342832957358150072223743381165339927535537012534904614658165435148718389037726267382946825845894569892072427497771136664684565578828574531083314765669710064510140805956586104114279256895837688489866987937148872584934786884153340442321987667986394356924468336579303541554703957138071134966649194741448888706931501517472413000460993848714935610411295127653516589753998623992236234360004929239295302749056429373776399482178006034585501182852294046119923970438104340781382637233589976922236977595875030080667638109623427665007424485307920283442891990391915408304248951266920954621799338621080717873396452874700300491941978309843186098261995685907989336235102427476127327680394153897079606473554678729145029753748459538030845933124238759688295011034676345508066459422102912402575652961962051502422804624447280234123406612247633616839845953753918270963920673253504682555377522675612874676780282320091672026474472393990815445344900505613310753306290178566327539076798875255316947160875291772512355988728241647912124316333733202797758701179000171012702925946416537952399594143395515133506139423256583354805152346777140522840818775441661396483294600891390385280020559622661481524510570104729436203932026380551053956154811259798455273476570739505096251671617248336266607020442498499538127735629293450456318452002639032811975635726283966580693741695360528257523316356619242833453126431389406691941548616249500540053892176190701159812400984328655159364964059497026738807921829555940232743058329715069759949186842518904679638820152806751501662018302486513332431337525097223458475311496365335610419344383964565437724802575624439423183777836902934192088790414519923971742589621116112570945122867873371208973576109786396122669219590100954467711572053935268771575838532659323503199879971047638784643579183835087110120153600840516503325402122122935189750680906982413276490264217948030919166613081720947875082575937967012649229770814105253927195244403299381064508800506709160308792706997561030377263781487878313975851894353174615625190007724090409673582004215361025693024204484393215699367226067311062165787720701614994018096191820679683420192758959744465880532981690188758414668159463863187653599393345978264910279543474629561401299459663881524919809138880924958292522021137839009747696994292312390544424343198467613145769065853450257373316694115084458459306535448875200974998160234726649507777361233150696507411760096757257022815776801854140578520618779983105661726520028964368928197619474348764746994380331105483188022533218023371531750473799941613753576744032240442897357626733854551488771907357338369715580966860602745852969446697746478240339722771681624380485590606100707699360062100497493460880781598907868654588910005255209582598009220323004647171329118260460867901199265725505755644808105530051304959102620488051120157425895423688651797742836480172471585931699709534403952277239548559393793606812145554570533807824013280941607263545743944221204004063847300325980425014448019452995950723699612385460184216176337367555076261609487587068936765379627785843403822204721521627738317807117089708947902908684542871543407843829229378848132712882151475439482677516536286567213259461798274119388630987536043505668615299601473810028889385572044675264460613624950459969069897022517774806547830988473529065760104816579109344556312590880827412237488955365504641984467546006957235250570506529510568935335119932428666703980987571646804903931560897814826537226832670268424798088884953692496614975134351338029969441252104260523105747342811261222615445463886644035288705535289040451718401359079373053883333008519084775728499836647818303267262382802423178651699681003018808052345357549222793344994019244228063988524804742979532825812684730459030349462977932454342856732964869870519068982033838454443767215783006303817584635032896235130975138485702329789962917220297920551397742353891091218191948300621496948129860060992414321466844486160695629932502765847674327585040806504120491913593907650056112361952204849261683705573135504419510122132340809540413321946009621611018816436508026487503156485637613693897534028642803673247072754989660897882823248819887637907385357959794765689968111017422786281662876644031210661090355388380852984651862914745912923099313155600172385934494008652107107972944949972945215877106930861094297800586666840739166012094700876567915710869337080861507507670064017755676818996093369716570537715845721655674441123475230537482453813371703284002707998845483458058702484889467367592194309614751791685191726519437611153290390255826166158613655279302041299812598772999053153949768132642706415329539459765901341278429912630972688740771751877988551473679666234265157123058574334575242867060812404737693142899103874174935153257734793363753103132201566612914414065463738507894411654245602840981385648174291241978192137913924327703540417055311519333611658828447077599439774461670884114799510090867287572891752471764929383239699433482746200523609684420700877531017942482734294914417950355138514750814001733946822930256478650453951027311238753507617889215638046595879694824579505619226030164136137640819377886759587845428917139487645611718741513653944616563161651675572326372256253856537957081062247482436156443869748544473778284993382622593799204701450132496065213687089604558203633080391980908292026429428663887474682451815300937711294991954691211811380844052437067769862976679566913247891876532528052182450353117394310121265233888180937973876159059434644123412966460948828697168786300522601801064665194291839783170840180324642304981073428976384708330608655067671037500936761057207900208029760021647607369038126458602750392263258059090308104604610005384626872128838735078324971065361393836829052023214435961440312398258993111013467928776579209387802726397584488457434226481796985155515096269670553113640219264901852655454382712324973772774416778642299231491014550328476007384225254927889450418411455280257540855965438617340063624820428298253548832050212052991706591816939493571054760927382214035072971838166609418401514704409757597659157652670796357553466505288472136573736211647688754684852755309047680672317896665288888140965257229267548966005433806384571258916945348753212436471539013801946210515718026957491702148650778805890295240975031187330902719029621753673462718913256788562214281934490243657789690782874530551834946202889388066453900719890331408346482599062147710164713250344057692633766902996915374917505871121828892257237983552605064181686174994125601228214050398731555986448115133006822342494521806889790458022541685741209464306851440850230601264658843958635768976502713652796529046045139948924259875476642544676514080015265508935340044333130663242477296045986605937857977183263221316542431065638189484785739574104755063635608839941506075445753398233893814969044702509685164673510965418873108625354042240329777319804109348971068860681151090513664320902286090035084682595991122405824101363802413379771869633564943231400245130855353842304709117598607375650146887320784668599426067989466356586779670220962745648370821128513532853177008469358185976373010120758329884426899980321633185580345682479931040044800975212690091675747193220342483710280538446605429805554576688483117196725631165797585102114266035181027774258938589181292409042707752161207715920238481812599617723487345063868849967886330519190015583913700334018028651875474630497116239091861181370285291053209638672918624830504100625771459625056737562655847285783339415240876650837306872112557771397567236766711660880431431990771579265544437021268103777691358912625405455538124693612253002389015529765755809253555803237742899398882060121449101288104466223959775460455016123073149201647929383732441268895954207754757701465381763877024979241822202823488304493485137737528941110742456248866563029507387297058562538656866212291431370701272589499886884948982997600699901965289443670973593920440197288015949156495593371853220967373128646421680170024553227997081912493007998282389655857817153013879670108689096047780882902963877193362581270261909394908110793017119087681644262881428665651602431301726288141876298099905648029207571139987305409288818124608082341107115853784401259477815373558636768779556387235036048017343884033851943754689775225351940457234700140744693619003761546816986273986523152624381232498799232418495218295538111797871619530306695454460300812283575373062390973837077921686418262974156702040159433433087543220729226463537490043660094007745990252369408271180064247339235733588814618321338422134684590319085420667634233422521784276159325654324055742443579055475629598460158081124824757254812578366550887730216644315329825088815642031517452562041376600688746339137267872583070354461282818541213148842764143690908525503923882221356296056596398690570177275442400629731608017965253936312429621919505520082208439660095262971499612372667688551246373683187839495593916519748511059409386686840146558681078020848218623723497382455655595846387092423353312442671748800228636764625863650175620589510064494591869397659513647793421065648108556496767758387172934002607765464000673384382773314481291429320883745345624970609271587947537277871658974233392938461898364313251679993164973746863486571256414574276228728603696138758485837651183599270845844537870622800588434737220770228758749313457165465168548182835722382269628997463256303135565371490620735641178495753165556178763408005587097784740023635881256261738235786720617312799201062980538578803561398226490907254983958599450253945528593008909900069507129302262215114860899841277619915729604842109305789825107271661345907960103749445992169752526990313551135164369858333108770019625796026083971605818121918235603804267153709666183453959697641547107144144743578155174583621558970279534895142250113375318239614939298927195255231156380919104819421799925671471229881972549218779622551768905866805063376253194173872609055453504156700965223010314723874705251416782808276300108239919838607948519572867923911529652819572755801447428767966374736118982357929974039752832288168988434795597751582849912772695125712682917233168198641269291973661955000355952388996037272640896429891773728615228115936955276300072663867577582033174079525537751249518663045439378030104475329763951539523732917101307168711814481087016208466466234722477433762398940141323811283313029208725397657485827130340067973391594185466036006242196336014749773731761356081103598265743467180554409275628796829733662083026999631862044141716914194973474400846308541298656593621755117553342243836023735790192860690376885152196391614761321201288076859861982323578401081473201256582931792461049361856015735794601805098413169926401516412735539195752494446146215358749566109153815713033750427157538911543903162032075390354735353421107260180774695407679012032632284550225784839305020364126675495676714412257625042310318545357090622011572347682034588953743875338302562082030900356553451294150603847096038064993239144333697643114211422607131941692970903395645049710989140853637089195124492197334779578391091869538842810117192536659304826650465064755183274543653270679654300943517673478689009055963387678365776563073538910078295774649550121248547801335058637557402039326083652185577336885245654400036113757093908675631645882275664281724977100951143458621179256389538649925861495488948587368675766702976923126476355789518423638701428449409402731882362160998886198094122276870149628732934007415792246528000294271796154070833779959796156749369644895247963147655735019692342229377464031834450850153948395859808617192304910214954726493403676202290838638580159763550751677525384531087939695552861465314338217988017359622286642928668014913049191477608266826550192426122712216688908266422247407920226293767928778420369720468724342087692562106151779730679368996484626066188065800389283805900625758456955827781554736569117559313922161350435553121530199447902586659264048621119533491625158590088108721710746556542595021507573453111255347281348228070474447967779184929463897677337736112083923115564689613637796735758623116442375435812046382505260933103509717625761420136551462600719472700403071249652629510389232839805885411751935428607604109246657886812993047390013838700055824857653927965546463501048689813809589489958934769562747757829377092044356700871826602288314642078132060936896892844641636345607805398318903513514581052511118522011331875301854735117304805997281077509190002710176304805730288146329479817739737819938743638320624837446951731536417502135634053730656374012804883640905824109426635634624352508132485874835580452685659960125534105014542824766351266083648011929753110539640012798702711142312082702959256548056830604438360069363086085171532864539692820742092186952520254471225770669702585294769707548649968395977258913057679961729042689548523093002107741116188462964941899735104340094364791258402954911825763537975130943512726157985044484314458930610674081880402282418494522344395355891126881902041796162077346646516242383522052392200645211332254005756433925420313463386579570698090075403293676173364600711084604450029002928167577654325192604350549207422977775353663055792606318925143586736853262561184210143809200697601077646533817047997728820822037463979531103402619901853147222880166788901529410155474025099603263097029738229985426738500147675711185614154756416067103631525386409974329448472535139898800709477613195107865475074546730393628410974180680000670366119758805330277119089128407552315574081805771642886547842601738416076535293863325454965905241215593014960141094029865581101195755149295761196326239601556647346928875583557272833771427825495082589853630334180684776809379483922701065742971690731449670237479216944366049929568706225314901707591034178520887658032433845427733695377943880095967247438467412551586607749464593760121082679143670436580017370375129065300951529120707779746745116541379589520615082330217099703920779847439215255653715766496943548867304953235429225166012848947764398809757932923028916063866061503211437482782085005970642427837873373893354791452615077038977312487299066535017605645455337035808762493646097918333636582470479500271117520714166837471177770925535064832551853015821401588760496486344986466078266800950945104987530708386316552588843915117414846718194874948856249331645767020038154627709487200639867022932933279747361822933320017538524216779496844104044244153854323333112400718814291301368270781488426975005738180850433980863273554015612813751847334923949534051902370935985901526024370824320503148952665170878080547958246803021188011007087590630866068375582678240571118141889667600214928651600078760451922917822412663359343878481495976018658402862804698044197924949025735827613180768683745351639653137264960187800222583735894908622668812493194300566472463814056527286802786532271465795300406026363773922356225891996832343093106308180137007709805973514455413155640216261057460022713934884046664267210911241707552851474719339190321344337356130865694125863105550904269566060272218535687275695347880400754949417862282291462471948541344133139163579716517953696504241865481341296178108769471227150880430588075302653483061658531632238492626397129733563792902007285050327294073391359558202379638424708735219549324653131032369594515488711906440365502988708915231446993452362997138453662133723688245203355731063591986649406762030101074759571923041005803483939314193761101578672448228594283248671535413359135594322773043965225613120813705537387295996870604563787279280476638760845164708013762997620384740848130458587801248021414094398694910173451726410754270806242330363941562518196186381664936556195797971726637749685716470006795539510143838652621975505627125812872362334104757470924044250501522416626236772353150453224081072886164745981391149511772712965581926869266116504144449841133630085100449673863257364877265034678671183070333161109606812379148160283319945582048334459691451490262772010969943721307494199941261311202824839904919296625820199690536929840041068242837015468047792117774394358863287594477327363010243350162126880218842486228478159036314944265668226785488314802241664324098577068270193925105141452229411024292065109506987515202836376151033902110974389295239275269933974595558502811129194708653636317757039283378121643832514340985109858266353626396984020854164019103326470850792504593541579486932233072982442560187487670940994890802087599874897955344000041680165344120628019831788907409250927166244976330120972413851234890763088257246915911968179132807103148361738289393849586479086841100521151753478542065761112741223645275327554812222467191986873868832534467176723389296297875859421780584799182807043257502555290993318364254299472920204789466504053732933734505305459461163827897055010094997094279323610413121668649980947061874205301285593412456739294482258656201962193029302094031459359964695207517103175211168691282731408131212082815557119861491561998065938700046935109887190538084462684924700196476553379996782638998958063337151624833886921488551671188938780805690170892099482195784600416777580954885640001878040690869113982195206245645121741984912375243650722622740743511976546439209803737440392412291255531112501208649442204283577198067097393195050167411077869801808445197345019252729858586454595079810300986799618436307577053230252851997658984929250354720910570588645602076343531293975291868535524469874004556305908129318089964285655399705160328746943143572252354574188518075261451006780910232130639225392129112438964521463996538512068387226015714158911071543372657881966139785445428984682288185675242123897180926716576553663817278011690543913375176163926373475885685283376275965038119819118255930140047730815943711149171680700483742297625135622261435070943488921291422631999814751191331357309483645650444962489597459840326863568023490536336527423251334283288152494135988968124704774590309099037013265928233712872640529696179449990779765188700646633471915676084461010634887858727194561463420639895000686337570642822971810215106554003156310615457579665765429850217550726584730524492802932430524933665682928868749849254177898886845221063302111122231356118839096572656974269718154880313622865982311041068015201805128287820655948648963821989129015739317597905322565422093859691763571348921598793473336879293596305929011601585595726415359698507007710559640248216951603392302755357687496399942444828668841112611255121415310896226074340052602125293922700681146169969614965119568152119625829500722854027774521121753702254067499770445292972967966217517352134099536211686422180978412707226897930717258935622633270453558501010084314517339824568703240162521912510015816702823391141003116315751044096385860877047872658035968423143012588881254534911978086860112337378803188025307530544160641839048510799019698872726469271777887507475723928526674692168952463397772238989980010025969248410112354436533525080016233747649639617967150418431226882817176013728469637025519602713653311310124681789152188716900705014728087759619885265764380296094359141670902756601012400499602948801192668514361628636544823773807107860487160980386245518959531972846843965811366420162136329959661038081509743568054329326302891428864459617429631008743930998542428023373111337964752319476059263214605767469257545977811415827578470824430409475552290830621511344664469747021621335974186876364896866063500181101770117981301769792700671096758217285570835147157597243715287342944290000127821542999661880223142858606295003794135454529409442568611693019753414606051852636398937696070153683242674866097512674134784946884505016930704322031504297093711267878708029145080112957519397359518049366214643479509252144272228038341117116159996602948541753665090530113061296938709863847039702404178556700634346329104607008722970296131495443502580224126062717476415100508222723288165863777809062821683720793413391122503256043849479178895128670066066162500025559876602071753022931023802856642862348542112235848137561093171363365342456400913267481825739840972974650359577849069545334287582804131978553315404816206673761796195071395303103254654702496096212807762028171919360329545236798260756573541938837438923097249296416928402512568645622183102350521419056809586782404333040591364330363442117496542181879032863227184802815371253835289178696639925718137008280137700717453791574994368114558454486463169830046697882202823281727323389383627449008457311658960860269879623873204963956234161262638311791585971864975865800374311499010105542980242335431598607851076676113444923912257108599073420213255951277513464441037905380770850749102036006142044982880510038798824714988741296722352764917774321111303865834512316698864694051286506202123600358902844579879020276681409071389775672766207938335545936198083219177543256145272257789314789027017216447278602308944323096685056624872997692649382937952928601478307769809355662489124492908196549625695522486652045853886722698337309622501286040139229454433796253830498893921723353849653241500251908191972745351508432929652170848016381101478397850168946814669304150083709190961939785134450190151704456245794629374944226185750311642846693923019978807492184299113956567545345783835805142040523375924878160138908645839299307086514979951027291063180625198203215562639598299140117503370347425586080556796883538962083450796920228292016710082786830803073702323799391969146937910220283947627874954893915719135595491629937853201838505244922913076591677913406300511108248966253478559784580431058304728505636727654006903513947481287239934374475811597149758485086630229295741464471539232719237818765075613528565507809696495370817950969082448414395873922426392355895603874659274386324970818180824787822651930200320016566711567786062941436143064086756837563397607121811040523454528692621980235461315087888204017249884056997379727359523832933815633209126273581664761728907766224239116402290297738322647925506311515924328298186715155282226588839429437131594630361835780060792070252477093501351949637387293468399528701220985812836432941974190230338936195352656723011730693729659812563338899782406908771396607158907932717885393978595205759446388623922204864120474842801957452625121083710411692363195569477964522368660282821971774560044729533193280409707412315137070323031035154620526315784846827323545516329172832156713826788258648508351801613636621446002701232111172371383360012235675330970019626631928624322488017407480627790068967084594572882513436425668292140316313472934152985995377718233928272168413766791597225437994401520900189805861949025697115692441225625941761974970394598713810306732460295221631068968096245744247311566523615111100367013067852554238341674456605653499216821442099485949716314153589820422660901363465393819797142750433216493491104710567096774330367724849737502489444647005584297563518975460632151495907189842170189256586167196098032281650978846380429488855116984929506654075989500195726578110397795347181085729261678629458654487607167373857472373839176530928642425987127529147716456019413038170970546377943859445231433578471929717751057228201790637859009731681994214450059787737957463474020350646524038680725158362801315720596240132050093938000392880431684218877558095274226982828051610108436288618743305447471345114193448864400340881670904183420292574752920347801751620349427379533161692679636555566175926913031579573264228294261249233362399290124775350998273766027646724596689756276943714248301620138210088292109663759468648104215397330474869149331384711357696628231690864793276872665612310693589808037394318887418052872873513640143124680094132600878792707815050107343119003496165497401642026266048641122806791573549722978057391363139850836488007588141026145328049050251931037850880485683699133827610908125017556814430298594708919864608080877534874881476297951829995259869835733098996679697436065163077497599094135464007772489347904372305504005213337953236061219929281976493663664806887430913071965875282838472439552623567301727551539752571051735617300699780822940666651140749072936617358405616664879766576683240137677553377219686902708995665568169603481661914641318338895920246670268894144864956204895881803978259728620316701593116094402171746644993533979144153570008720084121072425414559453862534403048619368604697745493479609319609506367085963077273320089221208284549837491486884186967832833133704009651674764941291655505392479346135217323002998277096246806778806161169111664747742976847064490330759119007315207878446645502969547000149029321494000357955508627977950208394036761169479623563279436615290385566307332688626919179820986206529687638496251297493477099061685781745465301828844200816173855941619608662919117046951827342080841090121178873528911137999477021736002940352253024765391803838014467213515614539157819871221067633177013836433581834174260004049218981486341906428564333128535411248949783928506681142336094649371680097628499271402701751668863211941081356707328729634280406412200488423793125773414761606791841060303121207598478523217427902353522750897688392689311360025917332659662565463541534975246910368164217435060219936232151485759664851298121733035208596560763470345898257296297846220525895510470202022459946821412963371707303122943121494023852481460170746793188808477108162871138052124382618017887138202489683261439990554757511848376853019998709123254024668357135839305807185529863461628091184570007043644660610789984725677378016231784611322333646771875440215724987915364115205494670239284884354228711326469627587066403395581052031292863814064761084044774070707571490154615484652143064084917319685416041273690215409267068707349974966997433221511171541658265195971789379311792639947827060306527663789038308971283529311010621090978782265221592805595915737132389590037391421356841498459985364739192277343685998449689238860146218573950954001647263378385930740390736143149476358796875753248974078684874674758549037484148471125716458482432958119436230741798851155944588580874689037753414041186786581882437289040282640905740287502189401683204023966416936337563831064788808738343467341413886457622743806082455592491592431483990987859374250877706651791988831767503736572289192938968685643038230810568114598429287623542733584394996370860417231835127677058542907919461291413510490246584341985479076575310049416673885678338852493965938439374575004253139587486331178306104165224092285395516908783443339984592489032550587489618971626170280968283463122969186119197324340799855181220369363193071700418985995306334231448230623701918056256229460662688001661713953468947221412944967795608907867567314601803817012064882201511430320959106532411425624913403928023501195240100335339783872632261900959929259354996975684703566291425546726912391552295786566982334005386385259001531477676987683289936094851230483832881923520635513741387901968680614351167914026545040600987139468560003785317839878983699750019473661947820463019210485875792760146781693974421955854708469989813094111234776744266581082584876251667241372681716621497531960655144709875775723647012459487602435180252052376892704685766826108742653178207696187702914390959089100923368354158319603746903816785670105257897718027169803043644376125722015755435687144700197042163204114824238803038467550961412153015612731390847911537762227370034015755296815755742158204383596992968344066446511307091365623367619997341503329787163446624130942013111985439122194914641423120006241352579535591564101064895859654563954849253439417405296859614401111764791264626592587847315271964530154354961815724627470955041762569066974325332265593420737956059147081388653253866490079800517910138396796392327445658364362215468646480346946959362069910212447444863897397264504149417902249476415211753947444528949079521917939409293080230657329072134657906511923277061242854273539201320793952989093970071697600992402991820200231105049143472159797922361951067525170202211746338962606916320325401921731364403800724823903084217621184030529478804167910499184046980534171220814870889756436652319249435451210592473661423466941093142720352422389350232485564979086805344708157222903264683626366628358327323731089028210536953367513115431443234021315130202576393158695258978551900764797180639517823292138998545811205637659931740184502321890371606617099728040656154598157549807794539216616913825197241778936786985719032733284475782056666369678849062362998083577929452742573671730812784246317211024561596998929036918255715608210928907753532961973705855931368462255698131784791618615309364805126221988710988170245182138248943066337521795059483867476435934570655424815502583369871133008931096843775580271511551268323094911615052178385458917342673947450696352497633092483767348983493909281789332654694674823966194000566069490480438605905905386353720388296728045511214146022824319590104846854555596932372517761002515789305410638634357656738845605400990657091050804303343361098826756490665792085556693347620116911975687102024180782351154709804684365973769414021070624056733388942680715036584952323093962788864938889607332821759449199052193070610350231943745612662320136079229671143128157350457290676657570986982308359120833556489975007225461519388382608739321891938468487802468000009909706485065038478427712938077758034104054918522191785462115585756121234582028468337513431028612122939467794278986207662942332364318907806362077457901754882412150662135080070862939706417238926434203869485757131070084557910924601731939682577684877388311252672843859867832593058390882916799590636465809723990917229237987689772064864792993713550056235122162065484421629778194051737192520943915645450388752722892634207162728159493173103076944994365731144370386018737844300548616071715304748278309617859007998416224110222693661801182583993915941534718193601663714213621808245811280528400212456670989569643739810020901796632086134200499244003935883814340490895326494291975506845383262066110378537434812546876637247767870034872122128956683515159666046812338009718780229518772029037638106007004678048134455069468713719156223344411445093897100880287594040538518187113748407932486790505632745397464486032259756499103420458391949552449692271112105683537098384065988536924276188841691887990288552596525022784787906561710601661458659297686005731029011518516728974380934065958810116432843969865499950097765879879431468153793428409674120714196902686022522513560978433648170806315756922908777734572342150093789089471991194437560895284774806017173361298187724835421274513941143376097813239924721563513036973764592387920219722705166844765270732636326408808285650476383860839200958884186887590102329593407029382339288414876373099841742408441536506477363784353194830755111951399019285078881800238246500873566200997374948419376648904389160020317886122820881285120394197718940493793275199420315571638423326910499858113071680221970097195073672919172431262557135386504073694708604352836089396615744976218089184984235065997123108441453703978479991370502638811522682869713705782256931652271336255638279266041645525380281681888479174855761652801656757078126480866375706327219165893430927513889264336678471844550949304906857671320708716670388321549530069440841293537601269679309574400682339349995678469991034995709525380183123467714986819952407635806321226587230237656158131213894783588206918011814208411715457097947501760351707033815774997813397865302611646131970641201787875942859356472255101316438701086484866320389858127702920764310554328592614564735942716225257973548054568115229052675053066161607335031309362343349321731751038451083579669705425837190405500421419695554179403945718631851460447034803781278903876002561508006323908806938336602558598807924325077687706740398405521938269191600357643011529240953918369836687780415072771560268265739201067194261531895608189733345627470455537829286465660027617972646114666668278085892568230055172165063820789917974288921998546212668046647300272780141691145116826331797795657443616117942959998878483995524587256219138107255061124525085785903696507033124849430046946780669566169918636494751903159956643697691047624321841519050486182533935673509163341843152660559606646465189177521561336870032432447144183493923653268525174772892521736272407048784762216301671934173717950337137901647522121207663896695330478880166306429060903580483049417492312634266556342515207484905041919846221317503761811013061627263282937693166228365501332240329770713119998541778380798220201514193931197274643386419899767129263793063943362330971772628899868063476491968821821449442396797327766743793320828731329290820614029355556958498384597116250578486650052357008284564931576594192325127132723879561815056522308482035959026591073506887751742749299265951224733159716512438036821904413642898895533727006812505913615827740284390925765949870489851343848766528676382505295093852359841069395928774253764284085523311422567644590741607817486762999764849833346128109726750548769352075982934743494303255800873919356178364576248331784840531777189355291309092215606235339684272739832107216403858439462316263790573908909542056697010836821766896742992653656548860636476069073277589552159812878190010302678267361450124562510851583841679928664373874483539363251241938227007889053496074445936660421918127423686192506579678843503545558186141556185910901538029190268023181036507497339150497868446739702845100453407700184070476866692742773684610411068650589061027311979181556770013564274339089136740233194093902833288567151880290191241599800261649781971829839372410748048052634345850925991608170884918177041082581057371764602109280124261552753218578977155096718858892954616870251341649141752695490266206333943916451420214815013446980608484926759120194841782597948708981368843000039729579045119686961943604027657074769868543698426323018542221722745524289044717101763775699371454389036036690587809552549520786496379479463626077893428763976162001407413479403645280794394694396417943349674492500576669711182508081761508357294202471072731482300977376923894862669036629242412164862657979650417530190581400716566649981748642994140982364963420828312669742521365691250428929711286238524631760935448463466235403649816071685320566589096591629936724511812105287583745354908031170662780758560291207108798962231313864004356029244471498881421752209439134187323794119468944741502535280181310257178886631409598241546889807354179566570669027446395875687309498254899626390525587354639166673534129597221196127860232396452047573296179075018892231761732745651521277926982464140823153849420163258518220078373840931404630117584984626375456553384766574163913123729606875504698846348536630585246647354524434270103942337515073871583876571275693336203979498120887547524700796955659698275328210244309819403306029538413201142352396595289356503093833810105260638590893203460865096330610264774959198621962284264637080327121525397778084597768222830269284396071925540842493327456145876969090782590948735589531124238790319853331269088649747392436605063174693089377488767754330378744448879957805751363376616551405179913980774301834535053544734841944382577471955334696247926971458820756712062830600116677626189947248774742965972979051501077723720993799880467382603694777852670377742436663963405487310078703120998203085153155828266117712877230147755825364897462233571291647663403392971242188118750149120030876700221525594922145610369260391990963142937913242861566695048082174629632800546017587533175720083296984231835861930867733410566306891602382742076383094549137081551380286727580661848401961915395173184572597706328080636627964764161876281177205089367094664344628804969140146854610397243989643017321439497215242341494887400135425473698145145087866305158513888604657024995471929658517560507577123940408698500954697170966951902367571729170669875468201958722425764050242507880269477379520183294826107173377289301131615582401609983221454690221106725963752646631965918181454076595808291130673976950073454877276493666032413052870430915905218111473192605398789206864659187191590179485237924531591586183920459329992228654946241561241193253753813820884776772454494976951672211720948004968793576458132829258882692760423741860161766952417892824989634011164884054050698920519726756174900885854752292398784626603137035613652695793173635058315269368981624919525574431489212584745519405866544305313478648268073048669355038195009045193323264638994925812103677169597157240921632485448903377675589004630434054743444429143410173481210521498837427476543630725175515867695688657799740786092887397628006143725503061693565900638758191820850820312431080782688587804493915055942066154989686019357631199901577267585904514188974577314279568101551429600031862905286730925225518120669749191143400447205911842360372002900851247742802769454885230045040647085822953911255437238801172885672482965145884991332237320970260405389338675614024002565230358535556285047696496890224619727891241584366671315100023269786397651488975725312126706758773670050242369868543898364758416420771287485469758088692051565352830659403838794731461490360106558086962273349260745897481526568216319052934043924596061058919875955267397460786511948411529985665844937037706525110744969631020029476814969875276988000554231830659956695713144329360006184730700099086911530706169640583426145243548309960958507712722915739482150942235672390986821994324655423872645495514985588029354005450700347860573498083584798651553886954149534798225096338287929080494467671597085326939970057114038127910347041667193568816351926250600375233833366090024887773793334028578794376877756935686102111535724338400608259598712066759924205616329132189345708399596827964303535625287101329288276483169999648706145195355038219096672514979008986568743045409977880045511100707329779162925949307064069627313618081492679585908263169758816213305518359942925409184998268704513566963895263092789949301558362783186297485804245659810481582574101431412210951316240615097363115841415456137263857066939496607224178353985821022383006118452555791427640380091317197561480593992835591427822644980576730241500099073118872130431638086646199675415526181466959401436938631667366691881953077852570171304097730531199155914618679193445717484278580841990708927338620674820145531579156491911700534010755786104717408867685144059714797329775361779071757383586471403849671873702995965754972879329951384063248551584675376751618353830123813508932260034099175455004784783165135988402085325613012041895953684670360136066528358815805214577060278825554000000053298407114588397969572353977815400014748695287899188331925947613027340494198921277753399945411050300839567724071004546625681826290828674805127871476127682535007914666267106465166821472998911703444973518394537810532964403200455643777401535481478975670176026662315848606835634555611314444567997655350168547103157309767781053488404277902893691413120911410777376883013316401551137143562247336784713714599373765109442154099383402135403129040583709059282570445031112755196632386363813078487416049546482439577730498058210980693519622317012716763956867398430956185403023866304841776592592359780488427753745462401109306274731406626214195923052824901256843097425025981507814182167309752246966562801021808827485446738149211598201761982397135290726268822009917094386445041756998942151185108644474627852414677734515811652033452985285145580988971502074146884884993604248225870150800591209297405692921348226560229470860918829204668145379671864087883819570317071920804999678191915541316847324889686471154249199001776896331324607590979950974555685012042691467149475711438225719883177222060765587028095278136598422177730961580373395684303733477174019610879106994452041531613783064546662436930663446113663959299226824999163991248370124568947634090620108376038269512917202081230968574791518517206014709882390120597689830884006564230960296170047762881703856569011135665025804370381389366645459478852090600673072555741344710226368626066750526685217618512827879240503398630604739765518833391544890016653714550142228006574563831338033395339837385404650699718522851333533335440606977838655329566553441427394935428616172303360322177285779144863630430355442094232387286380800620291415464814479591267459013611913076611381436911555232023176529709628855410113443260797643281040118409224289390058425316188988008036088278004022785579095855881547425712570167274992482262331228068517476475082198196226580262257172555725046598062023721560139921436750978630342651341140222593065947191324101763764831046295621533957733765794216116280049775993196027991312505046632619517442470684355757080027136381988701738645770768414144496016639271195072513729864274741127322756290209487049104626518349871427740234972635519510516571627924555889826388605405220089157854578582052719809856652877566977967808101665391853690522225040252951803748407470027972673088279454860982359285668890617483711236450586940697229962144774766566330198040034710697541534530720688235826450136808595412550341332351133978041539284182956261794054283741765378380967006029882043215038680116865270649881223404384023908819884165553386193978786580335066845896271055579874668379381512324827098342540074663887930769364662780562731272823866970275861553179663763527093410235459265425519463236271874094028106168115876414812842613368250882453563462452354112189857338527886470762097442016866822890156068722958637282587773134241113313761557403264103042746887992477738567215684881301064702062050536631495837664137287670471625186022909218248818542590048277502302717852766884825403956615418560597753793538837976703549551535529975864382404230490084777823377593302512718436338637473318381313471233422738951804889828238247628612356149397454550549142491398683208179170565103363380950696842813283205564054940981702600933852200695549002208906387902764231150774767059928423921320101880386980573550063791239303744442350221622303034824270679884801738991067901354999030636165281843033374254584263382835607593979496961053831618859800814042100589474311133007311005706996331547591515354327552148102770821071442116986719442152064989303417565218740983676836601495858113454751726542746652589136989603896297482644841359090045828978974948273462510943658760408469165033565109610533683606234959550601506990398443782158703899955036984389700674052434044286007268544651049482164076520062337105281896821655361114757565483808368641236698788739896914115729358252766979288832390083867593637179754447515939995180726239911162219608831755185629620211995772669447143569596097832114622425035462269793082177021798064926768033767778446998756253123013368404228951053973623209177688963547461160613026458527375157138799266413104392770181012325755367051237546449322782618715302243779762102607876018213802947613966438170694365873107994859409214834650345985361942896033943277805824863305220193387512949059390845608832278345109226175565329572652664855552665866725876347465848382685388104637601071127884229790436441448733338838608563140942765283422700548631403602091551644024398356655862478161151195811354635371244804686772813733783489625038187213322875447119115843536704589731033356905925590505406558820046929756734683297770696784619073969797578053017294281468956027456992626697466922291746813529425565171875892341706592220452173630596130510248211613916588293539032634494011065061616566750356284361493497714734784056849311662552191602586386706709899691790377098491454808688155936713073582179823769281367843577039151195790047145986165798457369530960571099466721848572757935633601642572648463007980206492117843208209189701088319720102877828733233986032231720361843880848796875244549991867601855944353301289656838115025529326098222410538301994016554937274556104609301993568223208093810690291989509490214446081401117128027254426621343889944699918577604660481275421622350265281855121233256370043797232658808683494608532535262152962823536205813381991990604702504043393450113888693808645528569551656004318191949799517288818416438835764401965191389996372777784436382958010566325729068689835905035147414162206444322978381445744351426749470015312679510086556430305499723066423120287454355974182349617677230435007679849787220349716562821590156056649685938927203591633665865013106119888197499924612616470971501415992816384319970013507346393033733868700732982591956531170101317819860514367115226416103666309422708729908413962871095435742645852409073812596851426267407102307672071069775938624031692507768788934010740825362761128403194846427388601852113984182380413835461574398253014715722935193258807111535386676650560011094166340508839060518239783043984118714714288083672600718935395661952078398177905964681443741810615419909510474579334627490397587076759504539495705572067625616052617924828889181267195523448645247058440590500556578686459055582290114009629564859474160933019678395219516618389841619107335712806460865827398613154722060449345448883139975453412405585731608618762009989672305279828605156357606058218802867830302826445526177293598206674252560606636608445523379242940303714905243509464415397414917296414968171568492418027547826945181846800541437206833167488676077137338483647511255592112683778086185392891410471408802788617915922780772564319017529054254362540061278070780075438434140319661927556644532341538140589918195315225805325524620491149151828427818950301278772373489195315844911217600504102254568211520289317859648350066358794771285341161991528237180892225909644008183619566147879725151698756706086531719912522600473684383543696108821062287622379778806629454415639675141109216524211962539852039869556565544077552465171843770538291862667276718782200280079598993246913131429814413226157286958733422922749280790166536483537640076009474837037333954717222609963833989576382445928198750263302588436186284969879661394284868459206255390834053264281415560302273695283971385628789504340106315488940861938175934665562342366980428249926442678117709683493557230454601719974286449664919444288060894198662786255237766258611387589104253861761960837876689794560943475321405442965073469610195232574888462179748005562018400280878831401775147907400851350987004931577515442560961540395975764873694607727592647201347210016847590552384310397734993011621928626303762614449763403107857255550224673244057240252881592011009056597979759767970513081010528513497559667686520904520563267692554735623496798436058167444043057053715076374963344569169994053154797727850192160436157988501986454638466950311709204056035558564314679235851635056869636062482208230543952742273965721521903610487478801915171897516249145976227259421506169188235624740562560065762745043123257809285042403246405882979169314623993367507215172747228807025019775279373439943269502642072829833602257824964043312477727946712587243898585048033851413640136186623116270024260324440768658236996597455230695775874211471595041602791505813205480903576793659281915078453367590418426056814591209672544928482322592938956997387704589596379037492155865998263812016490237378688137970738148865697788029932662907999701927461478863737978172598497955688502719724149980430216896761260266563317638849737309795571372735875603454483272659515078870750428288903972782943816317115870467672688658339847647077674441967338484302793389491181058412534952316881113056770720245564324925513752114503875237432181215664879707689525606672771577737555996106068483045824784265758556451031669850334149569832011305000440971259732307177206746359894008956342256848750995323244350848845305743085951248776994081418806793607090868944839125268502025795386146343810201785460421087333645218320857840130061880532510112261851418369913189822099521139981535587539068599266132798332454334602716768552700908224057562991286326753615218886306098073448630751571392208044162808285734252923252465538236894817001653289245841989513604101168950726683011178079518268705287832810691742095990192463296046776632842995739288396133190144912521742774797449590761977161030084680787036504519563576870916041652621138296545427196256430970457936526045788023961864709190378525250571921775614778094402272765354519730997566764663724053346398328374150708436563328365885188035470197440913630216612866717868832494857878048905401712038970367238709876112679899467457936360633506250412640923693590771131823536602070328988557303716749024002360813843852471251194589621279096567004073249284995746855244315401864104435205818795516274917575802346688833775974345114924450032794528917198713011454645080492195050747858641091108792210713286632507715181482773086453078862726667336759757214470853211847453113846578065804040208281461016717801741741356317105953409860567336470124510955341981145669263447795047283691311526779825011091176151632053820802878544955950482757640375948047821370102630828101011364946493451880373871908990601686896671888979259539113776600451771410920761255221761101517556461251957519457189704686217952227918737386692525579460567066011549502737747971268247650873388665882327219855742426352828763165268534281091975762035855969710887291567336324530692399108977339261700158631814234167114506470008084374064620150533291274283714894747180922519394113755558752996117950963727926043169043836620815137259877395932739023831212985015380035194319646128011362152576967204852535508521479908969629117029724661941559077204804316214794738733139256217025459490410695443736624143115793240188860600116465604028670104129024623834852785611804634542915957947918421647805233984473869365049154338058772994497890127151710547284330488515727876605606809009934715544029757659254767894339201293764197478247288703210904211094745474122970540430932321899737066969376169839072083308615445610690467654043445349745152489656396189630456718616844764481560426677728631359637151805118677695585159203486656440887375584738360943032814961296274672253113262574008056962434793945933850368509605092052564193942783193824828059156764589822099803358626728148050222130880765929089799454114073949933541783811112866936462703700607054786755053271095641435836621397957886776911655195584562678029319668121852671875293052673844514056767171966997733095406869855277453140134608378685745328690853692322672735134207098852302249619092148154203079338101161759400665596265541403123344827676465461961394825594306449665587874535552363513194484449780455417224972314247058005709082061417535601421729362345533561757951461842997156664700119598219209445270146784830402967373458116452324759630203189279479823773534434694668902245528136720328746656843936303221812577490723179642284943523681908639118482634893375086276516158656220529838936612634692534541370738948299788094117365619613030250620619441125491085532315646795358501398674760142290948745942561274351696712761846009114559542477260161580878287780972314241962821912199910550430893310280650484230435458309806346112585793949747788308445654675875767760916022896087929210338290046631225059684741003231857503468120772364690806185434010141067376355368343333367318670006552190915205096407978015777186136346983252861316649451633003751656800072951399254130071431511040211793596950110739796541875009494387930377535526420990799115756250715439716362182344610931458410619271970376434545528338399541837265840839800554247006578447048963275753410152920322417766893829267546028066854276393951411014483644784003789047270995343565221313966555607074982080979088081785608802846115482661803632133875616792132940980434041880676230247810612908855114142407375952143673316281101176440274699970832791600021926735393530706911983779026807640846300561586802743089053852588515036981866138135035116182123995897463064885305698319662166856299657311374561959370330992130489450218430544648984380901645814999038263543517098192599821548603216057590697732086296677780556207438683304855200861319744035461455378985487335981265188261593601457038806644087027225011858056711934085853987159844821350658070559886536316226904403888119278393377957391139462205220181836355030739617283162360886650458287729515723061748840955313649839210500364504222431972763610890306472422033286408610967751754557122786170230895705681728233630055766873833908864802709254008609229375937278525592369616295759370109868900619744413476280934173142221892215377541523979308548906357403780536210664901581401391746681742446926571710591052658566845081074003331954058136912523575842056004699129781733928776279976332781737394890757175698184178242231906497866594846200994357965236694298869284137874951322694338694098951823924504551673165530609957881745522116558240285851274205558032085622593242459776596516141754753288010042746268950324128170985368456501355390999532256431899914931680285365844664253675681379372898184986263253432020010658610436793892192360148784042355197118904804050080012325154143273202209331159736331987283866256972320689717865695156411970841053312987637832421321599565144191204060042700904010448906439282904877217126016018793460328185752077167933877863022260203784659081993019323849674113747046187949174289906141090631320257852484530162364289684505659308035051078842628911840831343264885868487797615007034782068744002044464834405052331508075897379554822240029805407817406387896556730368278557020069209963167547207605891459691686182641346941583544662847288885185089225331973993684245754810344409891695722804817389874217170946900624637634594413645020048334616069305500060139866247802149638479841423502100183389691337022330046325155226554954119244959403731507550679036675777195784679343410293031868299274464459084948202095893838781896549681518541020527724319116625093936413666292838371282990277199986217562314310735354069848965931413547834218102162993663762145843770184123744753358532795395986124336471232970270450235936515891119855098241841720062197814336993672557577174659194789091020879151883670570743706301870904208664598517857245997578465967159456641409525864119211699220083317131404916093504908853998632989854324588853587115630623311518582263431840859668200806606474151407246032347024807252382672270212222206365216213772676403551038098796241787689186523163068746922580470948317238291798942561301540077044764708972438867110312006068345799870352620342063525679575499101999754936925978305452400662473639580037788495042973011583886537209671604788687161968858094536351530281908895527979237297689683086420263445668604557601976471384812915498661219478574665747346812160869283043161961975789617729858033046015911925301035653641915196820783591314648705107747015578347280994315272829785384649979916365859911454477202922192206320326209248079317800509482050066021733614018543881548892698724768167082713840653253151411700229902447275123822336694262213443328781123998263466676773008565360664756567005895960515464522984865483953794188284754646867477689466934664047083550478839225685547221316262288193371119953668599148487511374520357993127690215611666159152333633955714697806408551682817300045980651055188210929183441820848767728808720846182946148593475711411694124159985462953018698122166521554356265118886406816222002829975374333177950175643800503292732461172227279027962345007635135592143621995339766251172758692358961664372012851403841236304518879078031101797940176606643474399825153104985779519103878203105795281437961087855941454253744026840439117262368182622732046156439550661239224692747549944375483187707675834070593093562591978204681445793338007117533952539732613534412545643416979791166658322992117146192657592690663332227199368761068262984422229268288743127365392716612005186850567008287151748541923040254019490072614471806059210967146533030557329424110242399545887816598002061878717265019120978954180148426192934143683198660499779361464685457559212088612181608625540472907858192956103084132370193932421607148824082447203195911755363368641355563369083672035378915660321688393303987920578787938248182704599561793422025975206414872498674115771322806467064878921681376468010549302662469783834876649026968226766319958899824358856852017729974473282656005489225138074694902588805755782275430297414917662419518878876234917417068510516076257700109030234938852857380392182964925828868858832268708561012051769349287344417152427437802557438772106624699847476425892327814039891149782933597411982804080144679815104649017336159477412002913154958448034907251529275405271428752788429542206654529105224203553311444249781375425204105992652732619393645793699683897428909018088877550438356143082915726538928728506745226219347510498327303970327760708484339776766267593509363383626483628406165600716254054452944531923826413129618046063359422691839355633523228853649608929762909713951274681137892164412071298192497934605591143581560930535797447535299023407991204011566875385687448572499824006390635829995072529766774140361794271467532123193431625011918090745836641447010200134152253472310240564028314114474715494563159405560290718571639772446934022939006214299673846320726910633509976848200503161855077504954851048730735663965194562504530133773020832803623463186224409544853473986510017501054153654103055716217892072538648017951318232842659274309898389938376382320769090916190383426480253415217341299095085699071917717583361837832665940764098074106158563433428799378757112387967536196314308568054996056778029975905941542276040916350501897438708941646613278616317774938492067495641061681237079751800719072653408411303884432009997584180174354101887547318814528678924190438265492868070379006353611332011762028274807253913556889275743662576341256050139436993667162839910493495453169736744254830832366315121118464638832876057361896875607725725077502788158893316865024113392714912178252470086235989144387107587521551962125057473003169808704380707015229650695933427031243343541204474888282611305751121855435722429153444747530410196371370471039118908139618191756001173499585864418949338066153349387903653825947018024644727029233540415113848522317874787095671490548957723379568493513694128121169449293409918652702294419304809687829243036114814202564977530095461836500755177231090447247292895209793692712065547462115784719303791827776982904632045139809828145308352623399730259262775018710079264785225737457072262459249959347849070326251386846784899506431843568236170200646683904831001375173481845778883861690368338273723627413616941533245400630246294570800450299103742670312819495907520784847705801544955124022729832926539457992114396648550847322475330533664135872833547235046720453708185198219306227881301941314610027826568446005175747955214008825141159354311690716295135439156663608032607869550019299975362958941726086857250262668191301309749068307760747636056726129407893075343152228862277584560158769310716591923972870214980254795919300794435685468944786659718232259803220449591907063201976681420440631788897949922103303507710875330650246879599876369968571006407936786237233256724646889021582499972553196164624189160509099159670501977130289025205856295687339782229089588503764713599830702674488784866995700321516665783931612266753473415317218325143274688644500590568848697580356065383213690790050287032680108728882718169768680058539119447448027099245094109702632983939411734406670981538013266370565625411688895597934253098938601128411910661115252614154418506334055743084875719181215668207690076111904720211855867915011940606408049687648174407798458995315389435482253245895342975049845715166509023310177582414657984860676894342153902537394482009627187702690429910209010653303076933844836036792038704848148722534501805605974001038430625592465016373423212514550937039287829769152765038652216437970662776898034175234785720785730069589262254968485141446882828176819962084657793912160383195696773016172282798728176579155032868062563892367743719706284501945575901267243852307619888625978109040727679745283276262853845453209403604663007039629253910467804316146109652865448582494761278929381848874796475475344380378270126168457775423301935241290030354131120409705878778422841712843500847533263739561750205745559281483757427341409415404235362510092483718775150063313727356785482415135678062535710662231501607559915509751119961317907894307713559962035322064454979635350803357194112962886622342823092486837554661727696035606231632727882315079795734376775582120808419084528738596499557077807584600939510083462543046376094149894137233305601324695599028203239643320668896343666431331797673102263560572625351972231907723776477539236909693519207242003223182096033935686098534419384287246619761406693966966766781897243634812407317558141893529668108451202750985057281705318722270710092632378380994170792500012256472666197120332227434502211067945967619082460760024327141867946256648293911203396317652422089775924815077385167457649368000650283239597924165335433650772327021089531708903795741249884589358686677129704717579638758240312329445134839123130266538136300842389189137300618838073738301777264089509046970178124406929597571657090226090572598246232794483344889941815689838749084413704993655171707265475266909707477337967095330236372584145844991894704493718852044570526267554916922097984224768158430872556317904289025669910432010330403571311594176407025017683062983737031644359005172300627997328228267664302047467643189607117260391327446114535920308965614486456177951582406710969537712993171996842202835106892153669635185628440734710283890388773461283955042639477077100007076068464988446217620874390086394780571688940140095265728312463761603496408538858657415777980638409376888839943845093360625939595145495362846363118381393487131326443399754843656433087117845770268226475690532517815662178882343043137361700875952265245367981555748289617316105134801866072095045281137499787011370805050612337450967332052353966788954173027247445074160926729788879588622195614951287930080246192035235947910130085689947032931617729851235331258453342085076403091085277843927827474578391849063666606443293362958578969125054383497247725328798419576104425197135130191635841406952453722077151456196725455434692555215425547021684070275276122753748860848938907901610197178300228895378487754710618977081297520929410921215107005704562563913129685767564423551278657765600263511595140345934141606455460515177210736278993922921949124749864848634588124039113468765611610126758694164950387621167744988154682584760120598815454470120692799892128962453355128928314241056905782373089653948143816256194620197316182051166760929059868231225838176034153061700728237460740195369834657819268763789639086269502928750372681216499477147189262577507327577251198685876105459319088841839932477840093217142232478804577472357447307014429017695141052018717385723905893522965860130544903364761518365176817973882931694477892355249466093559531662867152161824592865443211864117076708167808696653427288798583435945609328922284625347684796309775816197705157039394314331646135355851985277027062357388944968727762513328341642689612435873469776063889476060060150791596189473671779454163184205858438328338446203243498985721201752480913810465318856952997903838634325038931929977846762635723174110027108181570415032487752391344642021140699940561901598024049239564085660967783989589117070218155510143775480359146667905515735378286165444945770150523511814564430517851638709858721635320895267145508102221608804898800075041945391898861159333154761627861808309740830018992603576998354317789143043154806920477697187408568837377498738384542546664023418167967578345595575016433359265345926108245531800607845402497929010553450597281479557350615673495511941595165338118647776439567179352476618852016792484087295966543394431485085697082073574398772637512770740326877473201806936967038840722879872834511378099672382367625098706014955705292612722855937249966044823120522200974360724238125264395306681878597246292852765539234729130296421546679479857674423177564114950191068889027325514113158137639036383039778783571127367990590737709508038893952064066232008532375627514312697462935032107718730206125196342535059148768744184554031126206502218719209341335090952396214439116256499277978878305953850332963398010444053555041220535998510961500189401581631509916633236448928372694756811087003376600652804035565506452547539726863405266098617583439465888623037238234855941608887029074543638544961960830998373132065125346837862972258707036284489164691938446725145895141211982548208184337227699468740875961580503931787461155391399523149775396698549526226578522123999502526948904747360595229296371620527011261833527685022894578376773275467245448785446206674432278209399601765874963170247842340300706031817836257573343197887689342475127304023270841452608620566842927998669347928416999369405387731332587022893581885379079475770768481750049447880151789815165948866415437169466380855647035011477447302360539911138054396205327019722901199406190046517543381915842551488097974496501490631609095677280408203562063327667449327971816284055572999201032676724225207889735481160436857556670317134604675790217703447297753140784824620207408263126667012140715592977866480978796950362230968423827999268943681836547562513044461339075081506716518157084509793688512765808575661424386854220501130256248155594620670656080151149422246599740425877778516082443614472694129773856852339677965556872209572896984986257061435236683155109746981144182691325913852638795846805093012397964761278828583308947055265265269135038192001418524940715567791020340904698910980651038617638494023041926540727245722388087570814358490440371938339384411488407037562284309736890201529658483767408635679217317126592511446458878781379100220155492276632788922843411170109812184223596040172958547913876624890173133609023955376932137829455406900791722594035965364633952511729752086817137299131018911510889244956361293410289573604571360693375305744764616595520204711866282578600818141794318260667622334984929321314121959560765183237075252552799880448605156397893820567453654180365597849422431077847559972964532237656363651310816947241992096703854176747279886553156747706005848728014568273711430062608245766973132136442048634306083700103402277309391016829781006784063643902616477246099080996230226061890694125224075079760086010951130556693180250084735258107874756001382739208165038456148790224147280636357029943026539200275098544289880613771439121948267652155932123472611652261574617980775763375835522378617498851002182694983854756212453393474510707144671917176175120909698258822692384570354018318566795924349809813819915219085476395938582253894346334647383105877010118049135966242109238424060075862320279698766171771335047587183542589753167572189886620148656041299612621005325297941308813465662727184204504887252451745414015770528994209571686211300351374276924745615274105364151639701524128771508923189726151552634293850516282856720484754276034187528179774983715972426111574988044490343511354421966108091192817850812975473563956557884392455364673845200239103740752403166099003812909656847277812709955493982246978621073043314253945059134662839703088342744045381951711615022941032708973690139998950768012233221182123613639067504314390557107916986111274424792072601289267920525588959457106011847077133263111027949333057499596410965524840688297762467938782465158059597938693879596752797735006232203041310042440115836311110908190383567445482574835516921857948141214857160308958379304020164593502786847468622286110912239377362670635121648561631592713822453414466380651180830303276107267264009557928054064472903374194024376872850130434575188597369232239901417844622367595420756158678498486460663005812043099572436131438321713380007099917593030369051022667966424804167075928180238943860566556906576771574715419800723452789730094689083812299102344492518103194531051416580193212424645017222547859588694205141559896074425118951182408555779262383233541605979484105916947006379046587888613946315807887981985143018616787334999712967152151897156890055698479822292722744826435370442943317724137382671318416681833930907463551850609631107832902625379384712825989565169753114722876854992507558820500731870156087486318739886693714914282549200276833124341180795902055463035585283285660778362211449652959237418003079845939666989099149136371568731592247423785105591364922444876387756947226661615091070111680634096347008011131716638243475278667887970651889785363490247734532444215197338911199155126478579629179606286965416702308484359632636215118888665006112430227661510912517403002834719715598421435602160719018976709492756953370452221169985386120986997048210467009094538541131204141861480210960603373794024863327297230450737440971010586164516276425219017302112542257409462126513632874978771157839296019789443046317997328722676170218441804627095438309433962887488285626631496457112732701606131240558957690003608596067765537961154840273814929482904835270878256821141006788469339273026444239637932322417752104028583712499554193019654204594023018946076313180163244526044187539232726500567429328033645691913118957690543097001660211685763972209619974770778925414946074328895979852328302840899916851034104589723191286690609418382340983883215640670389928367777021210495730773670742546035287887117229231261469684560583174777971418098170113040943858059284879334654879759687344104260525149835770617182508330416691724965884211904005628132813499584884742813706069843029953958599070051503031617072617314789288593129371954079076985315944080134726773304671306308792120731306317070189311044305131523387569427439301008440862176056042992398548237107610988651402679570073995135423827907703963009534527746751487977774201849616727225118141960322786608612709000507286837392057911666114299983529328493335237378729875674280484997294142701051746938616779283486971556545861083943568858226497079329320799372949009292391887108443202453770839723223688685406810566399080588594189638122388796141374004486822400314094176479432615817806637326956862686335850894704840204884601351843679506292223088156453178459185077846605500679394562882931517295305101588265381591537374998852269189087640012136733780064038406513558866120931566841898993478232929216351348690855374222719569219174402622809118193148182842543290839080947287237321864079347798008795633200269931334433670236415340882745336751695581509197505219342436067047042041134888109848768303418915434381201007550814224185247206700765171184810825121997150957362576804917303341287772004988620315717785220568556481072421330478996593404588749829531416181904593651109044714308525690395381262833436387895975661555081161716634655197799920782380158829757430526834823698555434068860510455139108016680343177313628494787341886311050160326849904209845472273637029682503837529729853415562790351866223967066936475419550937267387151065270446122649371708025464934401860215630209118617264679499258030952935196166086207141676732802930010974669236521677850927953473467750619364679397499971273813480910737908698709706629374947322436825014078248265837161245351764134695952514100434031844262965435870989510301870230164574381698729194775272971030563454571133936124537965478769396701536146149846698735730274309372629230122008648749369836916485808300729453264051675085938768392008628353405997560627415890156529008186972267868320263915775482642034732153011222486434126480414290705149803190390487438391212900167442306658184501284817934511104044786609040576787215565081558163928603924328821022354618396126553506951419829657726003773965264475559106293865378443297982101827259111736675062643877122316183383062550583397514286801097983442796003901261581045774850033007245683565496238915884917942707247602222309640663143250968823685098369009500870856101628060912902651149017711596224197617554452249239382072788735511299120725613610071054786590428084296420239107485027913155839465696181409190627745688647196033052241727950319104308880085860896668076468772236929843434113315195819533056375981758847413074616725110601440117193940332135914767840258121035734192368737921769826877408384714138583862801033586354544628802571852213022345757240729953101105710260503518197464215100208257071306335399683787952109033543321591973824672680601057396241938347208404573230409713012155317017840119324316914548656165020074592909882054622488555724799991229144266614109656065982920301386908960788253327746535555909656714355440309278078848583789191278821457804339849304663378125566345058016775705842233892110313697647485624651545989940011926569178737758425069920260499210254459485939571772305134576716366695182414598745071108806446116346629546357266891288161041153519885395058009234229474731433723346775430761387342589579596073989079823370522875893158055655941858220737661723275567302715693054220047438120234704459673996393982832115842606710165225677065169530001170000212598281056899014515301003807877611565235475276371271080813936114707053462820380075618525017164164483023729575790188699563539484211486021606614428571674215876271953321560021199185127645664201652859424225099883074974342641761906213501127801785848763048447670780357182375451706306277556307765506998546541923778594277930526173684942016133055183028693220251803701547139110795086827420601144145102426662000069750499163966860502297492143815497896711506328781641425557465009244846938643582506257163932498760262923457582623512926461214888443100423193554300328833251565344403937353494265147504751182510393220694601900470453509491946479263369526523404016738406915374995570462443195284509474419143814998918764542774399627214456822624818475032353586301960732663926630257032251947545653105441911900722600618414162820322903567623654431071523553746450600982913375851445901701698254309006749451338494273081742827951419262314867951611336814183092615531570653360689698163849609974670164353802042408864065288837192543514875127856455999254517959740415752329868110058191887905093178521636037300057957802506394150469625733164157919764624759097620115429227975105073363707734105592188945435200455139255583633587993442523744767579846472797377443642753579867600841059156131540184393876060461103160561660415955366924780356057364945798980801503059518730922020320897891896338636391695218174846571692111302236401955862440844141405438243878683282461147602766562620268561201628662872908707596806219315664027004470830716182719967050574932793082588638205062868057276875868304320229914613108515471248848709242282314354483655917559658467933998203426158332551031647581370348782037608058703867632288635103633213263769044855956968534333374155356291572667045983522000020798167387218591099338092502335374241173352857961553803872718524039528660195333852157940021637308627116406042749278848395084691819671855417107700854720954115898418179769045312871017855827371551432389583816642210376592460295720612394368745461299934502800231016665757340570798978262347613201128796019462243307698950764465628710968703238097210716600526111020676662848469866629450640769447188718791913139888878503077456107248064731135799483491607067963141997038958316124790935795981599544727331665011198551840185437384910241273456831606716204928074681843690947893905141926495501290339629390566923482331076620973925259966619281792053360575635870019237854606276045851824336031634270712785720699237404279247686509507863428290267452968151298560877926468966150312537120668990881618957188128568892454322693956064117403456755067709024266506675538413184060753253535409959015372601361370560706948766589245120134665282591279732219123432929679812266682534258367859633368088106801650077580498977847670935668046816052902084355526845872410792863068843989389616954953939167072598155028849758374937042147174191314430399619549975403325480368033519882774004517459968135253260299842475906571685188424898463954805493102696146308449637995173877199118838517512663826344561694753419571189771856236032138809274953836832414230395529008909080362648729360484063727746120496254249084672048617434212423647750311239153101306871531789617274017082028316251232241183006942113643565445976013164100768426492615349064016770272800187972374973240329995724775132322465049559481436570668682153863277414576252278176516148062406081689184881244613302048882747643968055608294011433202151066437793092931288539341413888968828140736474193308173816317368505169259343169533016109827669351626657801424287931321810160847917098093434095153510679870529648855640500921829664760477324504452902188953847070009425540000231199164017958467354920897486255478983734896198262987959915076775620846907256392809740948431430409365575529036636816994930477920389708118565678604917972366994451018395766916372717170684633571858348119409990509763574991521146390818843278244887373831507698891645637322856799054368087034941734100125798285626381091951164168544030986350650283478749528433975953661244689127954467984587378361735313983726883840583030193330828327876014396585193420124176108025759147856339501780761609721169375289643432832424699940972428352688369233864913067832374366773247218567281921176150483035474226131459275081086541919247205956308096066269197933327737827345796897072395403191811998968871504848157251727136447378893367936896561877975514678942730640462561799424571118496933726783377469985996908401526522685732354825043924430987848390052167492918935820679583276506286434458036962924341682540506131743579279755862862593268217445153189590207643604749394823094453768748047703680213688494167467688111537883870185436263619937390266092311236379310036969468825489494705427080644080127224275660440764454256915997120560097667339475265838483318903000446978578749368355566497967781916251574146810502201252058502265870539171522072026575662861949083439899444597386396470342702816400167076935561569029166165354824552105351665842350560804715050084092925501530607314273153131862080202766213297890954672400263576294764558555375529866971384406094244910282698778918534656739004788902124833626233873821105341812412351312626014875694671201012175954337047222441878398125398790574429106885175290646875316239643195749087219995550921570040612739315199802282095524150961213104509494777602560253387343417251379219722357528986231905199569256982575615014784027807823442604384362641228354867851149684057632758826577484056564899662408555715959307150133554604519140794037762489628013621960552692129842982541559577487930455238604843411493451449194048015150807039441672788271170595845346292929129333918803985567562257723863842689212246375324021277936614819185628122272433937371961436862686983885695981839156645250084336704096233797791431977957300617977400442916650859934063649327950013246086248425364863508723847331534965369632916194590629679315526035771017909227323883744365884723906935415487633042411325170044869734299686229300140447891621538215536009857011696467444786116685504880358360276466540637768652887227426075242855995800527265002846948827459063648369057755729044225502301315834039538520008345551339259181622911904069054532052948396828249197418449802351801733566118989421259795109552888039462101689471632086941193291029875739668921565404968329575666247259469830812316705849386065285180896383765220620236086634160611409947657674809818580393464882189501520989601308456395105002342296561856818228502917004266710759949253620594128866296426460462230727145135552792517109305905160424463106481119811861536164345283344638588285867564569830822059916800662658552920812161849047541407650271316025139760904883250040863473569265406039696062017258244350061505318551646182946167887286665130422305746557465452115798424067453621880711337938856266602469238025969137610236256312751379418242796164676081414089091261534123243497770661470334880579237070789618663666941578066100349223758712755889465192472473701518827444839065329025217881497174775441317903681216711001040699668193081643251047409572138927244090537471019233220433467020048257336074676922592853073867052087289681834775575213355722799269857383035919300268282011922727711947871266079572362765938292184986266098830620144879606624099141092554255432421117258392762678822133892124839475175775638137260546528079396782064971102851606786589164007540765891304698766016964046996263831336203148799099833596996940537634737276821869619129213282680726878824696241587610984964307876630366099614572842684894680415044137155270868973406226363184435944806847568095821265841988691575325901757162406689594509762848530751020054411976619233632375512210087661618635134734844344646084666845780503811277345355195810950713210043507373804585114539165630884774442407174744571301427303458156550019832497681678378030844311808388604094778505683537446386239975307037178992862646590459712417224137838452806663075546379985379265891137404025019278476135619349427338982111902201626259867461475313268825979488541558107605602534971059862675127259670796535274494388778661193035197895530362409231870917946381769109254820983743999898218754841105215391065705828076304382983498572375513872533171832104428826532534857806882069462867087172037793723210637403723622845938546245644425545667761988209943322373102570110595669188623795482247572666191971912100103240718199729738572188901028072596444891642615917035216352119651177558999478148050768393468693455202388545867875826981081459601819145379397149995525455772171473532327915545114996966476741883449444145396661242478568003776456130791546432628181888321988574386722253157795065713481082501755616611717792532563360590266415665435326993115252664326433088918335224092170490802307872144154395524572787245508706693340396613860698073925216123182552042630392159579497120552645155175096710936794045274082265127379655659594183756244144753794673677418597869882969579288728254043541394852516343043896618460111661679647834602813832990414623358142508167670531739833739811267550376436118773889851262653483239627573957714587864887444152395758406029199873282566304861801152778145550536946662274704451419338426730950893048437584985319896384890801150155478467071289691884583789195979767076690905773896236152100906644355164468813982817178403058466924848987078643139918315512659955152536970639208399468653890459032174838741209748398351863727413334224936665590063852282639268269302551464877578333928504427882496530750328056937492795341199945928457008283349269147260992234571655547480600815590804418260018089353850700101952064454814064573311839949356638586579302238421757102342921588581156086276707016100475938271496110767769431978884658759725876984350055926060085686708862092684122339847717400303469763619158286644225869305224700922847453514874406509548084433206499717495292822725057489962060176403374817981998831795807273885141537981118322288035428656416845566133130937071114915496290898024506493931403237406013730317114028759031751381464086943527824347731408567124427836041187015840723644245488389597986144634351903263927930038561482178370943634824064328095971165799293411818818295865074197982322780641782315701726757617444590790876814483160869437572080906845734167309891169910619138357444080098775992981131267929378842759807833905210050747545164855707862764114065217168494235436892256378273137779297812041677889476198467143378123032478002375994754276493697376365547785867995260536394813915278872143680224689756310903915142729735603913692654998583320637605391508943520954667638806852044109698254308460452726471018018152419798075277820332004150659296851090229484025138284457354782397414939393817597617814481105957806813870628555232031353392738052381777885837253319301796792163704181352575515280115175635143044431213154063169538145401269340208249825652033413286780590442868727783815385097080409630859019078850612631754131188718511327349972515442102749808300842641019532063252490684175531597592335012850425140368135582908614959333043103215655053015445935650895271835823019983877990429893175018038591959076661129334642032315242811229144719395931967035520506566348988219262054063788699010988347078905947884197463862632415987889080927476833230498819356226186592074056483503953166440498227538493154718640076278268508427107975246602844540839898282752568481089528546377798788456797793740340952364660511410907148479415677468445946239472355384044300512902970044548259344262036805482204204336362799819007420834026986187132492934569361825276808476662738102725058379016117762666618481800517140391704133832482761017692689044292734106059632853097164534671281847498845112339933182261812912829266927276970260511707032133086288628011991367912403652445931632666796386284703483553504877821043863517305915577066514948999177659809994198786298605300767558679569576346843948973953444009309729845243388235915424723535276667119830785182012761465946383641402908148544985070303235630795611724593884916240964145213992330949285765967798513405547905556010880223790475464316323840106583745570329055650710156526268067712317037581859313632281357409684609672614385205376366298491980115120460718000827796742664847785582904560393403650630031050408038830437123802836928495475710968055933033398285523144932680463121989520525524342349740741599949603895751688977720203439280532328888925175674019640157170188594394288024021147951029415141975512691297556463314001764488541846583751171302132437411364735279601606091062775644460730370294766735859016764023329314884211118085187518754971740566491822250612301998716882654913359311728926994065379976545071162678885990253552951741505978511465210421910121224912294501626040182802780529545031855609202542009502900903317230644088314197808981314295098042489094857637248764971395891835412495088382572115120563385798134349995816373872324760677963478742922268129789797092082000719786675133561045266453505703039285610842110779864805269028150653308992912223905249828532410819520211281471577587216989412282924892800887572839571366636752906410656702184543763606663670477960337268638500622499203253594337535259526505052233398402404111296054017680578265604778876823798876231321646627459496273674125314434370783441529511283922165964916079818963825369588702910257894967735110972838071782004930266582813421675638482371962886919777785211059866233303331742894372366420432626286203359474299073096050499157931491032391411829230893034167651888735962283536547469247140870078656710535325416641249879543961947984923716905305065095330473173686937146417882668494637739609434656382116761893868755319678752090476521690950471529104662587604773523308128080941599875384019147635404031284171780662373450824377952974551205668670417595873131685502479266890649319932460672653945129638152013344533498537368192710879471937325066212638060294271069992091819196602722326425043959111016234526099556582793823573876235624439865547331606954622070564319916725342110266366264932373620821773173885903973559025950266441000311486824180359995288870211058575968846445841981328421702786103422897248612769323326428690384166543453084435200420465196394893799910506094812032741687622338634988802821199641731055401546042576023908612424287241407120952612878364284337020872718262820635840255328443743896264040874392678267813951587163125436481324644366491071816574576172066500580895400599375908816816615825892198954861822184467224564692269300393752235078154610968270178131275992850993390329177733134685185479942641319767569207974433041006178716269777128916675633387239677853804635532395745969046911724957480585962469135195535020304152432643761293504764648976781317531964390135772286519298763761245134228372293663805794066220072678843700432373725632938829729066320616550848737232877354150803696542524673688815340655746349254563213899588519352500355712874601220736120191059984279969316499352108417080084269984894033598518593782258039497799830306769345117667144600509042506144917801725572399901121148737292535313148102602678725193693608583749196992445065253087697151297296435494596967183456124908984050612792066899901932857837325877572697167097042634060547968133297340777740006402357609588610228892232231776347778758710492021451416104503076644394558876792572655993646944478944523314228879215626958181064298714978156108587092570927297927317106066742245610898064502113468120819999597626228073820509225182912911472345246592661519921588017645314232932260534115581857903739499717191610232134162538605702965443712329868799462404380490921747129898021855781864286690885760225962060556371853981411330647425416071112375910838757896348265079451394837738070649100414141729612385572569442846174728561890221489066772430369397779602503520538127751210177904764325748700018891745572571136607626713074124186502828875695892498756804642045427209949829802188808345553043048158071343181318863777790397051806591682415076103162802424024000592290342081953555531005772661082457834074822528086652940955177509512837403330299785613275500722203331346363496432417886521011785755747795377070781130453502633742699794892152555416120098033091572980640043079966048188673552498214237298192530909379342298271310142499027159782322212466824452569132991604040375538392037798922196474439568788537867193306507466054496032283955469503872421857428191696774603862626417910816457551941599511822041092348768824844478928851613507857887766033502099304404420715407842256462540994140900255277945447960237102056297681772140986861334572081460659040151831358866873667676157134193416940265169291748514218407250514721972137882675232572829885914712437732411957543433529053949526936498385163151992355416056210270036806996165927225817341743907025266823186670541553343280557159360368445241341997289686613331946056840627941323374082198203895719101707219606753963139870641223228335463006183810970196251448140198781843714330068356583487247835302043239600762046579248388360309296566799062939042394761535000636564017217745248389689763463342376419507216050038195953135228307098009180464156498991510143249746416302376418567768364174926394028088780438767939171470821076297733948762067941606143146004775368008115231876930247010314140125306331069758636916582710802950712265043346943410316593073826709308789415635395778370778563018769556363524255582910748204837872294742993010373215753981094612906574551871947437867358426562722339491403378552198349920440359298395081875902483067243897666162051389020303081000044995298230304092427034204974017488946279848871451770495698844292300769680899027879972459145120235492613322613588706964630596490574446050714175590582790234171659654732018188400325835943617776894311867664970173324030254851697873046848325883407304079344420674419700428615324271908343006217600624744114897264411575021330011851981935499489167729119257213303317540585526646915984034487854402545124786504282502533977145165497063634174020773354495951252726483088868454023285867966400124414348961399878983699699055539832946124602770406450235877815919709280193543422099758569002125519917738598303489828177774994887575286466274753114909791003186554886106044002437627734631853067982423529160825874886402748252926991240725128282061845368078611597406323763032096175054059737960419240661743267743006706722092264429385880111519646555247055859832512469206291039855663539739507879923926205396943047398448473888740830232435633913746441907808031993689062503798312421627052258093612425988302167411385948282365710711964724780555892027260548583168180535798559695657944562883987406728383837448222643238315735174931109152353454746887911875081093075445913091838438451476213414814014373652184659705724851116440315147874060573915791949522727690053845177060187243477736808138914018093515789785628955106859602167449409901986261145923090515589278445433828235471482782440515966595595164305467260089968333393810674324404223125525635177683652071440769441823443893111084310722225591339211446467449954567425375827580812907160373685089678991869307857285628707580362918447591716100049940087130795384762529682107472294674236954197673062647182212364602526809166198079049599418712206998559040722340637959719825466938872596546199129435830583493321740749587510126840452608322200584982438531557655897013096222565987086412845513390027981043573371480275136374686920659188365119357197821524915686838604828119384519729330901142532858300276015719505430972446069992410759558886955928807915979982264574490220898346927191031524854873763529312056369006600365937111228672130034047995686655134991367629139298209723035473844049286045782386655386007435783488573891999711862261777503086026957057816268471031724857936754213516765567935011028387437276506739221792951065279477612088816446266277681515959856813115055821128924468919658541536184946323506483832181826555815767180909505464876317794258600057118173124276754519219488325043493098945969470028784190949203426194252188448148811891315238479068778411641366905651262755782418726085216154935179285337194940585253078102704347125273064845493341104694660222711357494943312792204904062193125242715790040584735686163612516814026248232757213981984247777196886535929861298925046485020805377382140548222960044509876062039213271590542246173004038733717216913435859263824151471385221683877376861478253938635315476590763278446359929043522364177728660420645181746265957786415247474259316891704847269116275263613434677481645243457610679909255802674005475984173144246406037573618530850939091007972847592888305962078668048838683679366844014834651541951513494521829139372240726555064811051589949292959709561292132032904632342303075898239332116638213789835582319107077521356246313830006781660261452024414829285149626237687560942724089730275066364865492121239016317607030420786727929267241088445841299336695666378710586490826552852735283953149306181311195302191029877404507471699870017446830796519938484344135436269514815600373845150634759411915845981971953600626688035628218436634108815351597724063165492441741881746088829402796661065543074239673267128089274923082876104783984277044069536985317891423908990077507505872270749494025068895311020385884723819269926103040010810427104413387667851184006471916826374256277952542683097874583324720865944344395046698498393928219569497856061587713878117191149457281607126504246645278983828148816067892091365034950407859738922201972715544466459973416986058352634449678056286136998562917051117965675036814732635726839593499262353982939339651187669899690921290977343762773992031921503466587748778332607933118319807717918978403816807132630801291318771502689215795928257974563275511285402923324112109905788121417153676471748688252563890077199155403864890490321977749394880998451126864106025214031593365955701518720202697503207870360129785413205063028395763862242958891474875674527989831582062280875852194551030970739010562477750667644515194180487524691770139652763571570808168650995241835818186829556633148763641121133641241223404302038537319077485018612259797697501113472059042557731617478361348065707825460752890795056722204538717952717323251620006584858763595322855857851472234194985056661893518968663286290484326465875780470213492924800297529851334260152506805207491420636767704899918228067324554474181274065917366618804635681033208092577457413658547914519756329811931674194488847744463396045336768331467104788910995252065282023285995571989308830091977104221159983963402871315865137919898927299694536509805541533131422591854917815846968953670178133604320257919532676874827546313924156859090428971098358727372809492253281964351208018534523216277844939512941027267917404155840470936839292004831713267537247943866197941891935207077508095922289127272625313822332367753591568835823771602713626375811078361535610383645201400654605347076613323470930358183409988687878508210096989138725733721588656248641686508120393501918831350834186272048004967555517428372715478193223765238496528342795749440681601259800999026178635719983203011610882424014470520491840511354708042261970230457214470308951115095819162673231075706511273380462704210098139301810546159818883788671796968190302264888975737814982147823628223552927930250068895851073656283592223411201841600556988834771221189833917251554446137020954436587463332535723500236450598711464849681242061891692187952755597092607919521803142169163088924110231691363146708411802085044004841838502071349967842734583784883510930792347685541081316387940784599195249813886219960519366328242565778855261273746565409009887725556853996247441721536732260009322834318160183680952466037331490515809810837226315361904574582443705811296358453688128659492722342111727994166823669917058949724155843312872261204312774367253553253569698515626086398988467076079122179545437651895978581057961885080274394387544682682102544649143472953355358386517877184491764624496119449958650450209321250447826295963472415597791790525889206480918513464942038432989737453910506050055618527367805085737605474511798844178795135829299167690592347623172679057514578827812048387568684450865071156989172273703102306235164684159823785005925025188230532846715173174958485530714167157249906506926329652894107153712408545374291008674720888489447953650963135475713434578582620224399478019351982355319089511151083575420548467727818579178480384736669302165455417684506625254282566650219421526193033011543736462038367060695553812363063482523505251779009825672074346259823753931298567351368530511505580244086972784814683372134198172937396183869130974828353706329152479517817645425500924692608964173134533211880869682099036446253012276278661507826863585508576764149882721636013394859196744361566353632611857133659727363684864746540164697992863342442036963341045876590857424399178788217196645411012205301951720808403479649650939973200725244703189931077970155927330845407759455970794687253630884986574160807192235817363225276720054446975711444689885957331126427761814203660024253187463733436757297675813322114748851425820858945737982341094646820685209952142293919659522775779128647696873227262013893796119395730541952748468187833715535179830747815104087710785710217026601237053624114221979793476254360120944523855160493772486007779393997939444564383521811871217294871101213805446666117806242930794268974023076170076479136094928944722558803571239657083508236742136541113177435974229185209603954850799020956443129149554221606457166431677153708347209931862144864324200612393933226695823922399003107591292527883258092996409389850376579963156311101044010875744916688978315159845901516119520562287253478883739946837736789915129453743734255193616429827151359364759649578051997493328503733907535328088622960574990420266309788868934786985146801392222927041634979639600250296667280625806472279106160519573176560795904917030615425562649042928029255674943532758066728060007177709345337861987574371671564995672889739774600810688472706485965533225089978408987011355802116788364916684575374053781410483473144923766945192474213433036387717322884868386743385919391752145088478293906868848105555085076803932833142125140008743500432000346093132932032227603145867624513989032720354700394195298368444752669051105602652865645818957507584602622258099629695543393323637242119548370931095838701690294209374327637319816763088964605052498853791618968093815457178290406125535566650705089840350310211075385177481558548024254020374674961826007951915002124031584937365032204216343239041136773346350177599920593997384882885927041464764596392900792900626291175805119100286734861652257537120379215993198915064525491461564436846537595890832299721609532283183343694044059419649326607272019641050441584718082621155636824827904491021603696482609986167915896793584108573833908790317549786251667662004907328067958871816642720184866224127093229938565655857553433661676837391541310492737823399010999269345668773763139060104369543518268481391176459714372713009290570896604136552139156274494163885416376488897095839934936353929075705209037837373599525801251143346130710544783305909043228970992341876936315849754884066990393771769630920475483531877121176125399473138874063866795236210183616618319463468082250174010746568059355909895339931184756838067604471045720925895688445985876504774704193967122723154944516246747510497840025863575917396659713077964446522354623394052212682099960964677229641831214884057652551152268565684430533898569031324894431128958567406765196328069749938676392638110485528209345544514295245454022021029745065438265720729224638240627791512862631163902094563516583448589958692851332193160855887656168963498752935433126837081089003933131369711418081763546946950214441015599344088741370207861261118130258771488608202698564541656854630006021202928365471659030850090110866911367641546552804058661078047271233172000471717429772133027898629263046997833958507178406913588156742631896584985721591693624881008184230181117419197415498677705064520688476971194837422725697004235109040734721527220878999801831468503404257751723640880170265194323673240786677997491137657744331715332910149942982268846329619448395678200601780104911825687495935343700503330688734408849828810922383038185658647352597475333219324741134122467880325122455006047110494624874012211477686106995150332563182405411864396227756890423322666760621096369659722619107709514169767052650347066097989587402308752881660842889795691567611953067115074898162532805581005949733615059047938300165185113145225730634094606064434693941384266210758113619513018303411390189578206944066815062614277760868456317233250274201413796051798307258626883401590592377103568928438058046208533279723895379727227511139076746523790014676002174765131359184501668458903334917928036580700430677054144730071138808250774357023667476244637136497526979315415830418063816907523683435448639810008567163181574927828637078324162442909455685758350006940550946569725193970922197197537811052275377569466871445244261751788739448277189374888847852680519579327899430805875445370804808203671656202469655292586326428354798339157393838976420453392506441549679109634656241597202337293621781430578774251396598601312689820519012235308624583989631172466996749193419551126097668590230514129909258969283715197701866927857458900353498744400430606624368131299129346332896994937338907050627599002651587161627234068216842110754811947172394679039300571436863313371727889186688272755010820786817582050925715162603405311451255793102695039106086851707343070903555894760392894459007098021773072685127636847657206192656425294836603337466182331658709683033352479117736885028478362321167557966625572967379969730773108631582025256238870819905451656290989928412388536535427186068324050657468879320655329445727645164258601471377541303317394805011669809926581777946942346106414724692006306338253496563812294817986723867037176937814748662067258499273092141405509647433724562460678562816684776622488549574320159152106140092521727985493124485010983536401447047955295587672140591054640334338789907003335189233836636695581330104969172603780043480581184228952560470049717749505228750883600192391426894698934141500907147647195305775801270884383113314176558472716812277912021110373587784160451916315093101028050710769929909378374210737120073381212045974100757531850648964018139741495035578757461349489538103465265371457115047498171098968432568905869792031520059580993906315079429883107007635522794038314534803613362458184404318276754261585437271040572881036643218911560790375105836178159296093988450092133908312275863886513437917644785391203030304399775958187469914347111524384380254275031831800382168170751779990823090330004960464611324927619291705075307859669580665623662751063435007169271999348219139508978081108727343229155065714066780500261303073366200036742472481626348608619402295852819984461557972644909341113874128112208650145904314838753341625477719979438930045132754095568164963989400627780709347879502507393825761431386246633182671461885782794721621233814862646074702240965202915563825108206866063581924238035574955814654784499035996307189241206188120980747638437701028707644284782676157178964291962374865858799796782838110510787738552192800810648930757200167506287418103745565170153275441124164122797869344193735571212357104065969057660241552312954355889555839388825589309901670990006652962678900641034333428817681727165146401093638577454965994994021385841187652447388707126491687182735073938457636185043396968942539324690071866873489281526336981129468270384443713360549953683456079321490751088631510588294322661638719262064427821489716260053336577751424036265636165977625009183868941092877463933314109474859956847729125827310895090802988421169574337697893440337351422584717256264872750777607623284861847313453486265775738232385356614939808546489626739475323656982494165775187473853261900104945090540409844981937260717786482571873877286964730819176248651934340058759056125933014755892377064566737715273995073825117650698888892128550295185241909493251768275862154577666725382551015085821912851511966648231657951419025870734414806779614241383941641588620940490151919579553401852136069623317071261312392053514537604337426562236420270370479174239124431549361748668383203058065635431793809477871222695367182220791561771305555371067963199455001553045135940826821485336234067275554669804350125951117890219775324546414464142148209705246989525026750070196879188546495490316266425722054752297947178734578674666876737157979492850483092220476714873833904058062233672004589891932045202061749218379181067509107176469352092330759230431017870059962547287040791384144106082821386796258992139566234090102193866037201223796279291705059643522986531737386072384639230298318445970752088502493961143566307757508817544074730546344696828576180824829040126175650738261312143957855201736101099295105985835485581962980983989200836762257167221564622863646566126689923608542875834728980040686934335362393856853245903027070687499169178117877435597383251637875702577888190278521819976585654199067950451347311657585564602855571740257390194613522137408523425066615198275283239418282537249946335633224812406806541569009419301215936033788989505815099681018518061832163034584776602665053122067726368045417188832661991998023807950291325329112679072121356261964083687727711723174036258803598199243423897543283102347695624456317481244545829284903421311137602631625827261285605019583549986056967582403161271711228072390673533471588737071135242121220995279878266072827625565914708777827371483935643657927010188641132375730352345983931795856140268825471016664909740267268925580599725226115561864968763419503350641558861476401650114201516321474422610027174906905825824005990963412308622653852151744199961550139307494522040526628096146497529925945377035215455816602206579377573525460319320626029906288797695666102482964485759022963746989030374041959522910768710826651674565790078759689484913842850197722986205940255792529823663540866257041992373456366320641452040336782393725729857110429340585603311054728914435464254853297974881237761378224548994103903017602543059536538187307223825843877849628875563033483145116417731147184719727740803470949216777982062122264006027982106161788601361192956011573164798450204975845427309953217292014799842583967683825949957474939815945463921833185590334979444147081474632034517390683923567418551345972313083271753747858162015746867482836949155306021883947622169030871826562905943452737420659795106623724796555398945658030132980980690928323211157121077581170114064218953594277223751090651469558718176662581024706332749432119933680829934718616323058842631825853938826774127157849843959520285213612740788671852887011696892644092920007804097017841035108220427065289200665517821310629870566049966981778455587097141770317223862430317762231234642795841470588447621106860669885551091646195616835119303211633341728680761895979541861156038902546991516830174731669233432670386332896808488854043031446133414963322923235889051415183539064306433330654876544437444931609598517281273179754851532459391653248680193404313584563370564238154569308558804540423817187540941808912423512300301764393838035973747053084589327532205359642295542882451901153289849465292774856780967177382020307631529344542576952454716479579691753279691493883930293154378012833808432684139497164787925933338817326274717075683235552101737141084691992630886015441185532111481081251682109407241722245726359399481734016241564125442980843457333328972933552750224494316709601282331488475776964073663758767908636238795883872062203543609091052643228471113319104818091279022518149297917204954177784924525288350486915926435753585994121344286796884586205627177077801012698026039847954818254473472962203666104626222473918613255417375079221360504095412125973852943985083190050893383578303499242216339191591518538294780111346757927285046098502949891586768813677044232073338365322367055015253708969555544245929642238552970658444684160078380287326900668552229977530886021899996138948749996716519707976930273802208000431105380711992763608089644477340231614324599393547172392213542065072058067567922655942311736062641802121900204576279618223043977605438680129169067239247037457201640314730901379211082024624149098802205927204890717335856432289631916514768373168897408977244899636543113701013349681665308562213605404066732557510144482509621874238358065343195072350636438907449993793360326156194411067147930063555695030297458932926128298857437887020893406839429025889943524082324641165999733939369332078764751941395199341798327215024702518762769191328871199733167332916762298568701047023369090099413116097349073680509984166960997978020901159482504168905525917689959331058461097642075287333360293126484677429191569004110566193158919851082936078842027295985064113436356524175361951268080481493114577544166926079402276037053624640434581233365648323415079511056264451861748198664856273999205745525663310653183334646538058110600200888413058349110292539561419207146835229556304546721688466170930665845799481141300986474173853900941107838767859122860175027799083717430365124839708611020556714230936238210354987947769113419738865046109681128187775015089710012886005468576759863332628468438680907716661826589569273902808852704693843701860769705949173237744436898046502522258651191810051426126480039045359145555493970096957278675592445201546699817016702754959999938592278638800810309716987561497079680604624182199925742271177089155013588414297761346403442629893276079340658759309929358622929777376250915311055936188319598251738084421256330260537682222324869387928582318320633993242124932354254028416767684129569099349661385513039856753208729794074217818062576006404476889374609876140406303834327279943419813950976121866920061559198337146824698082258323533647347841977155156860077325152014896590149751945793502589200186856480563007510047901195083383266772881612016704124242353853539378613856173156406536538030236809520645024038633076988371894049461776254191211775475458298216389568614000500176324239232129518126985351703214956677036441341222417905315454358601391876855567038062704405619807168427208067233367302767193504623636134008865216186828196966835250516918081282901364300022009307477522465703976877455395726926207079498888572472383421869171981097533185864739061002915408899777545057602892711661441387934730641351928528776046572225105220955798002399748660166318882075321115955038841890284043066284136103284875498298829512622333912483033788557321913236244321698478151226149449646031175729304504126643238801011802308677984017712771225497957849613760042335896336279038039735292967589831372918642088972921716309112791133728308428048855354681290688049283217286861872129770933849738072873988593187926510197795546158966808753585830499961026203387372156301755458013769248235786052741394508882906757025569377140260931656587369792892917634945546427896916312512252726344407585139251345239542803729927332083859458400246868558125755684147795484305844465566692424802279905527538156207615691139113045390557877436647568152998942570363762374935812956984701446458397531392556666447790235302705079398833890855171836363918824666160570074347592313096466970766337433854266844264603141803359513727802312077532391427558801433403032860270571450512322707714673353833831781846123282552457698970976360287260827968158341429292114086162717994283510840120802926492006311867715524392356543660731856985541413025698264483075393645382782817359797652890357289097211401145394085956254240479258087038467059875479926764512827626129853531673010523181838367348180524965722178594504392208672594651323291375972390178232972076694976723921362807168766972852591049526327710606640547073347748785927620225373809876272060708113087279814568965374450605994963872249292776873688295251525658260730391136041758644886663659966583297287711330443172302100228067060865041934777552356811320649668721282828559470866117388788023667159217572183626902326244057540043414071974781642257277373513266068283177339857857933155681672929902071435279195916231637841198914983335836552768907725299580552874543283590621763678574060521192675321728367971039484064842220123358008397853981177990339389822962070839982625503446053483170471256773072432079050722659878073204512618383681706207045932283286854536304263599449193755862827706286217558438927291614359086924195778840982097864219226392984076417893825310056172838499414690137025188711648559739797665710996537570999692842486804869561199516434875028530739257553974514972732545622245101397109290839701147091683431455741613367943780083178708305846447321966094142368280974139116475800540955957752570346607089169442290966855512948721889942699245638697536059151496133673115496268140228297334926653756249357792914217301130565546893845929910484437573548645708122032938928199492728564417853655861685330304401525331012501807632298805397350132255565312634729058278463351024354497364573039371441806995560971944529518440499451694632619257898583096804320699644838230732060248174655756545913302683144677552640942564227096098603531255747846022479638347720736768931402740592321268929848710593189981266460718531737464453640181820983675825689938145189142610625979748386535519366424387201032204874756055455914279839681338192058890595095253334794526552685088822330782061539782068529769249118798934024270681248954045847218607898457909651616864239600706998842479232090603542737018989800272918896271505962756569101307547450881743500124600551731468242115549148660182011347405288791214361648782141722710125198207291558807736471379646689333931023353967973636028698765006422368375446895113347759856011417631800044003797089064066654736464541699367290412763989594082557266832451427638359185023242895653090729462265467447014918976699439394011882375742742439387146237731106445437444840156627808587535646410311137865054532707399355257008593560123262439976981438241590009999424329278216999695447443572118623577849610802169653880417923981970719698243132090582067691702500109993894827709158760411676715767711756968154312564617166250979062026752376806501300819008955350635851234370162485311786242383113319722238452172452147868412516798971787534085103606763287384906371106754293815168839275530958226390290882767411230138969532813760538490523052047123428128929108033666969069375609119778203266275470064007660794695531416161301387426437474667864176672770492913258920341232586406276331546519372682225864709254498274430119244529365615609017282231617467483326731332450595245900041362858882292883848739354144921016540185576962985868000444688381551521797630447099851380105037915206823190467040229110500640005818462292696025710649556445559229684354422585436482236375849554942310102595723308683185617490170202649244841961111869815065916388059748351106319092917046229084311318683052726388674760826762807816531201298709854421269643339913281605183064322816145133801761063517286362898453608529004137106415654291126559958914386256011825119689048493656886076938328858761650443109461634739593145506585467538021559511853430176278414710198763662006319319009976034160934301498813165403278087857792985736156622390250079033873181276057929117095478012940468142108594611575558747956123652543079571615737705501108402672826372293629903611107610686223261597284949786235408992950474205311474402705128896612342093911473483695498678031761677327326092238194891431169723146018062234484173557725806290772077091947505443842191234943690275514193300615886927923535926076926485883975357331975976186201445157444892941828268506117560548463059345079949221425447100735507855032284015072182352641423155461878280410926311793469149962047041285718227368231735476450520432268639166693439578277872589949273266958014875366038244455951888962294186142348027119720828264568756782340605723325985979547702450190347431105159083406528560025198672955480867291312534695298510924552530177361296578909940204252482545230469741851554582953567994069322532495548970796029696592615314657914690697697510584128080157152381791071819766457237726198322721205885523638213121868908969955459229809449446362646472267433639993397064578158415495218104687989274800853450824831331584773114065843526070161521387691445556778271628575466937376379659139571869857288794653368766742963290080547640541184903006821517390436225246412930730818954818671550893042369669508024863545080362489848892667128030955689420480559828900498907825255850594407498824495222863257829374361877176046923236388917582060973211640908649163057422378862572031097708695907800094604242831442690311226348016130669347043271095907090497524622494641292837030506569564017860722171520415875118907833019420361577230529006748914965243788169971421038443495343739370304213084472223455883657519448655737705218455737639103908525160387921484935644781743370970073008801499169363337363847487561488414549789565094665160801599098189161595128635370820476016689095260289364815643093643097554567597469631532582364597392415018723769069594767344066354194951445659861739231512543381730570960019289555654580298199791347473580675028866911997351154365766805373017267479579946188252230991951387909372871626978741797015416509634140983194583587626163704312455435694241147315486752740619041029251698193906863101168582322832909843191159475255225938458734313745416372957546147563309667099434078134076347838284413101664957214697276956713682444473982434647691201178108665698351778922147785890124329757278826509700856972038912044233465728707512712551561637648300777263857761355096977280553998435515829970730848122677903965717004016946093330692023866191687011741334156757655544728923141361577992005747442920442213582806683865381346653738416614091276781887805975821018803708219132743530151766927374499924107185379731076112066513596388108810435923628578462156948513917477073739723032120786374611337253010195822790704017372900675386343306618084074840204398471950551316051232726217655856566321045521524235091106577652449346441025521291849107226562427198884922257584838197431109508341482227208592127707802005842268498826560832325758797453353856976081244174859093268753589510270899022528582015068316516312760729124545911457149261846781650335662778210415073193515420092123181050512694324820929582453248513719688693811215609842402195598514515981163624891297274724886701552168596088046636900375409775091161309635103250552524390339075724555056888872862264236440989606700741580371709022748674235395064472171911258947857153113466573501857586062922393093920659502462497892835086439461632225127239498554451368155855892690948913149371483772503052085235463831889697571176354192131514994732887528732243783860451082158734463564489900873257958838812233309603121830887632970665031812612265283461730797327715472961038428858894866929414709768600284100719155049879185418044732745886972828269980565548381309676596037949898307860526995251620455222158417677761437165182427269968336015729502830499645286088191597593850268390844046969684378682808076123508296057568339411310734350750096236343807902993815543366512163615734567010539638715037878039998742245986398955443473561667425947169472928042949878578376634554731591978786244015787936464189791915799661371661042603663212632354945694192258275103869496305150197821149011513670010341028072964129957490426423853262858190987806595013132961881303678330763574221262299717363639142307344524827770361075555434076916755984541572404086612624355673965809632005323319235469283707279389672840953458910167002090735623040640172293551586584343811609708366137805184428980709374612546184721845008296323809897198045691067241557352204894048361161145470427177928574429948905852218398636987923621867001531257854584103747920170932918223198276011219324321101714203599465570562675023998948564149453116284013375237311089782107442044841290126895113285645914888873873174407321093514488738745448480455885781503261243158245073235852177468827601047986001642939422928307890569938492911393643778114501120126273973223942424877561447558908515657606502929572621952477702059110189777332553744094376447104544139244271770444100546788786437186674881065975477149316359479100918803202912729118541430287379958564251885944210099347378506822568647997379511395439729059556000170895420852132727818580192858443132881431270831048871218278169906747894143108802790626994528904023488211871917959543547062406720505024173414668295906581379340946522480973944797732253265877821304843858585422352960779640681656778684386433827423732556458704178924599845832313725451028240046300728228727301537495178502973754082013108069027975938780020547569283614080714961278045138654015186803730724600783815099136712347382584784017388837063798668776933121477132729467205373152346221372330203511622576719238982873469064111214590844707919701508878966673787378006085412913522715777164593138170577950743280653962747425931054882917227787394451007461702693367315050224349287712810179881996116515544166025484073229934546772081015897546537913073932683498131796776655637202693340864234611464098712923934624075005400173047077932169825998595781241078327824524306144727099705406053596344593868935627004202634670271143300349049818013001621978911482060578778060640968886993731671025523630283853945587264209797873713268707676967851058123871697530036706281199662105515210755533919092518674958989851876951640184333371487195670062387998365798705058783208503112518236924140729718308801625820587396608580326184697393808394851457205266770965256394609390349589523968133434570257924229615050263955912877594782958915161548217284983597591883722369216645793412511048522945023243048841262276811451287998456911978771069079433600223612421278271355757231753648877566181083562472268576682469560174643413357408853315869107727776714496044313821112286244802638562604965323155487215926456885964937827453238034791241183015577560888202726727424935382177698076077194640840479067566573027328174908161657246653248688176309115958599331771214041099003361676881324156641474962541771419101454917074835731014003996245580993717042702691341509664763063308982051374089332261457359720632771852941987953222071176707925238476269055445632148160337045059568301283105008162340059821410093994436086940324497625118666371203675250986270727859119060484199281929306735382695260895225943061168065276538550771230645387548020381285208034998618053136671037206742610361776283639615913647537383143159575412033575718493851130493875408801028074322634883755679613921621111503603558528427417567671362699268514101084247094239318989472737648841714832284575180821438948882009611356974770998420617141640059785714893732822818615727395037791651651298429669616495090410245509341246710016935880510247637926257991394584610331675230072170529016186619649902770865214877375628600060208258440099204572370160074305155052972947576275849158675358220757936698910480564227230230591455251730001251379720148837725374631240943885830946409566087999628443368979241594699676421912803458720506648689928328079532402613531146320654852347384436839141784299123442784601048888371458202955013023037017460904754746682162342306117477408046179456078798706866229706914172183830873964324418086870651825231486238659775235345264643941334732021511082126655524288645995344570669890292513002297106000257877762646851032910906843206716532348011753692338854395089397657954131667413126012381111429763489369438593170899601093215096824059501848418559703353885748602462463244057024619727424121449593582132403522769918873072006700631919057694672579883603941273134302281034150237738306712121755501883827116369136061533571058042886672055871210981628530725487763462291483784524531483130863574057687081728834962533985613164799377945359109636932595714767445575387940712392521528169972032981154861080941612828167721163402852175182132440574270282831088339208072348523200046161566195084526773066002792065740578884546453463618492705784673380614763687002582585067316782060598753058927503813967240858687985913827788991340096251750802645789858546948847871063857068049360317753356063063984763649896923982037484157954825601026316562890334412360609095066501487843847923505434973553251918011778447067948389854390321763732374301174452776496041320516727639383405883324809572799357103638823205441117008475288657599552158092179821048365556628736060465162808799301499971511940421111157456992947818465416534826809213169344424234197070755901618086310641814608532328368136214401165562112490325659449286528154645144331201129559311356703064475223481900567284887327741326753508735891409325047096117707556700943163101641267235852976416064606936066925815528780950499480445968745860224981799446439653655709401477017871422855913278647345712966994089437313809827457093866874180672557624118537257457723919434428947183041458775943650030447170691083851200921401614418586770099657220810019275819059186429393970376519496522182897318146929249023041384252522142215591984468029870527802962577070332173854213179071007382442421745143735827387877627049611465452570906601843253800268638697591727617356902291046811799464682769677315916359057697067929264114547345249602822739703612903892821699249917468135709267931500907056982546640813873316184556927030848107329425898574811186854386488013659400726136098615976534295874990843044849622747906972782173698086039892875995307281240837921045642770743214332697277686127394289263790101833385926568061517626990019421150295445487366591734537908201565785608756594534325417380169397552035835525406932556036563406606470071586077875605366779202782793426129776375066782762179090307614832448770987614471496384729231091892274158580862822041308600573556870918327880117390032426404508776970730357278133504174603296345579452630985744696389345831266840338058736411290543339358206368718661048721543832708642452306035886293429923088062288681831477184692643371848954409233782961393344970985856062089693869404206992104827208204290524487409735822430951593486664311946454355711754788275274967305361920756231977825930828362102367016817459430139782108149745900220104769715164199602813133037770905712267498061691632951039944501249715493003685034285578878429862544576057453647636211335320148639082375258934308813386313585340484469804790441527852507029349781987408841523848030460257557939272059309107418100674101742588760304997127895711161844678752422646367684462884134110816310436791138610969919669739321290572716612109446799158285291215219864764974987669195698157334323603104708958695857669678989825876909582044915506948542618657211843811029191165367017710232651085026755804590929618429163715633091159718022904882959397446223702377319604718008847818071754056817829951085188172042366778504280719337648776415662582826616429286767444782010751202521932826132107407780341366356850326466299466544013593735941098552545416951065720708522446468189199759213400684993415919672734984526675478910497489220514512467804716524333239374403139598207885093295569241330499389612419543653534274787163336750867755312958602913560259428039472045834880533075827717528118407500680975734475028357826852680577894686257721161129352597770649893286098712310872021874386307435793490550493259201209450076629748361554542252140682668690988541452984163466984584066177695768105397073254005452982196508814664671569279436820571232675178171338024701944908699745570544076813197995960430460076189906233465975894827515756860397754125845071057769198842817881162834190282430666317449423606118814134118067158998440675941987330787964553417565141238743205211732030033778655213546739034165987716994368772147493544294662345533353934180487528909727878348321638910100803196905032157067488561853645849918701781745340628889914535328957597201930714447406031719809999158649691671472427530801069374761462805267272163137812660705058085766520210611864249303893187468620318151500520360349020341513615077418972218663268142790687729287148307931751932141452443096948991026814110950069105767359324738023159893963873419069767362126996531960267793719012913091316844679131867276578556348187685701245523709829802486331604412937457168728819372321533647272206069415892296072290300647373914119492566408939871765117079421179526131147857557762966697316645842771019335380970780526441971032095271404467681489173676113142980162788787023106599580740641388262536268082896040956798955741388127899007142201690826448020629261171336063315169013920947759755076399227311488647627597790953210343799169743480754025690507899985383952599694958672067538582479113542443448877861970017218225840955204290771625124755121453954911867064800548093794402283794684134563780600904592741498724931622750571943253199682735309861938455651881979681827873448216853252523151053990737423436157812557101960549337339425479209416351237379651207652658587829682719930511013626054538930750728407227006359652824112203385138445794995793008591470314130913997698961213482731058333859645269475796969423956129575236831524115595248708477666625800786275600873523585387392359377772818724306701965812128539757804266388586907038077263298193001320916102020305775572764512326110809544058298972597495706070291054057158377162880433035906730114699510745594067624157376660020846729197193892890991696972506579302444522570585805551830670581943202453699748981787821291345731099160838727043414893292882651909286959374827645074111597673212643384968283747249627883449686385649651863997447260425342604917035143004747062803585253259826566845791313532137066597661921521641892184412805065235776514403471298977047062702676282470920294095318499692006774636077582604030148093665012659516388203653610508894619718188756422466631032227545241520487556767831335406394648649835708454147401188625016689773095013268517631288562266302482465564935250908023668532305083360353801233661878814438905232682117353829183311077681623614736167454648815439715145940866461409216054492579995544442120200716810543034286413287473435033180447518817924734228493644124206546329395486551961981439463930157805769615934675508420897927703452300159121936603421197448846742219082424280405886935158342007915900734375784513209041456596079955753424318251057847624717347124343718059764635145602090636253604381224395444110680149373603321688404822350409252311800678619410661404479727289640660193635479290768306800526956043420793886680257177561507547317811025800037480972978420853019336191663732890325764984421778862129107576528246425774295385116722034424660316068939366529893617052381858823904315886327436192416363125567654066575546556265626699981958711625247854779459417229622212596706148614045494775720375941276762702024572206897513435677349160516895600993772533828147472977391178195939508653983070117455969657495450112146860603223034264883694723885505876534999412970107777560698478107371759450246697480925588791949618910793440935118450686384426070526151050206722869692563968255527929353064186072034470316068417638400745855570359129896394339464185824566784543028198300185108666744763125514921578060201281150499207696424876148138201356263131810210870858868843486511671644829244340077827234379502456142375483985365527494949896011414720521434322019479615742856164916826481718056509473186241963051773664790149703948526382108268737349407410661998144572306478774547640553867054808518766003670563074555869383856799610159548544504280984923625851991078914001483535660861019037841495224170472104746926505389160624370009234659668536365960103883741904939577929949946157668135856707696064449369779770910858366575416041870683203101548974338356097103555445107754918001560881959985292649308235006951428620897473783120745400326721228598914500695581261051050125542103304374049387884583490464651398775126627153217723160418802071547846768816062447052960657488255764185431925565192846177557354447223098069880841018094715460802411323623860886580338017988507570966063314097232463901789006848742347642719544853163032373467280894308076001241760333523145154282395324421631962961823833697493545247037734583975008794668284362438636310021835564903643625800098926156886482006744350966113906237930103754944296051372217910041257416321134341438839469978654483889029849328344769751742818347822232932162503525382310492464242005352121734207687393141126842796566429726642721992053235874517305276368288919430439002363256889562278569739375079533842149496908593315956603325868614548431203858940854538920803430059056408381845357088220619630747155248551625917956654334735225961875286950194751928141286910078149441072178509979739167362746349373770938615010345890915482366439086836065571698325378329976747571265935330977547602469506390626767933814385393661734457574636333954259646632344800389512191525322644129158852921301991676721803414637808339838674339095842263449232613693908362350828652496006307709026180022528530058983578323265432346983866015822333685451422222364490962315632196347234759182072995881589440751115805400046588643381076212160669853241337119114814828197928686871674621079485824143041390487609766364010884348367477107436218936496038443031165546218298811787978589911080770645139830535387836511724400423199596113541369436420631100385567967204242517478925546245127920655971034505879034446543000388928890699335988323688411681481003199853917026741096163248536386640697314278393951449890774637304436628199388304254932994917362630494734714268847270730009009517411794303583556179050508177949190717969413188075753563272428042901404632936683251592499438298039903524396799861946093179769143608094768060131243482023578973347693845692492364607418232784280961768709572341967701393982765803460038613959417277151825462184314239685157544564174538114798127248245951425107797194412367036505945354636282958982732211152416838856536853180324859939931324135530127189669116079579003392697240439951831377022782817119280630839136623936785450704024914728398311463660386554718963937561960577912031963504968736622127778133912241633179787482232695088235112769829319726947617811656714613742991947749739811106315875807097826399807837902314034879326681461465485099855737228673761787068019707651001920905406146608064802866996395979854283468350653257431180432525955534860038671277240465722923738177195486373025852807814405488282838380514158823751575715734570824711437726825135241265338043716367551541925892471168058097422584214678430885818412094363007243622022173579506292462243460240775805546390850478253070444980584483467271176700156601699429152601986120659845694763141421794414217487102525845868324658334127490568785949673195427205076446991231533723047277879682996495546483936856471124344529966836313205026861512898028565792077140161574217782474436126911197488923366992112510686963753242801602973770939074779125501535216155739872068960152436512248500399971771918179695105706308857814642000894011719159772970175472530320325161706843640504966857473847548433439441578676826451947797008219433818022083933302210498973870628989279544629260467678825617572961034034575295061381942200440544742511412562091498330761556169287709940730417135910540697108307454041411939526458531753892860632827441638768725202936042864076691409140728135782407444170887376376482598681562545624625345079931628879002448739526474462901055212461816506569156024957752636514312151825710909601089257544404382855812845169178704174069098119745600716795887173533344247774547883266416919575652756470466647024749149449291506298237024408043373998385359671076735283759982759898354291436454796103161340533275254709653206779537417961753575923709575787814410888757330785647141330670448708476538577185321365917426054096486421784189510500484153197487718705533821170335058183253976434218661411604092877774472540664841874786704969109208931364350408850774005745386828765734149351404769511090557386604993967035040708377466423840996357873329680233901820826910415099465900396983187690302919443741776176679084553847444125459966702024407799498480215034243895359793403765212144446836394733904731518857036819512277823180628892362017841802689717892256538607022093742326786917080800350847965878784957433698431780207001723660807513487849140528110805220039568063425602979247607991518236554773571454514172972953222361416856246425592133851760751486982345394650705946472509170622635765057614257743882929567153116823918420483601734754460141136919927463821798032556725839007235745076308233262101287593990734806600855101337462486958526817897230905224239510410042495520496829793332285950757262579523848067451277266683478276835030248833377945056736620254324949704641099920953203511630793239216961977639023634153211824187871540024870978515466169963790299079185315711437146051007478224197001182364769270496087542927784289815616508928249114844866833396154335290549753901210012142948405358571870508145670923026203085329169321290903378695405343032564214423544991880070676813425511784543968623936608153663373402249843461235984024549785712678515788841779783827780886792267233578166497528385808960069352509340477322122123819997074931058688345129914847594012281266657098015520358942317644375782175748237684110652430232848755530929317929329878969600728525689446267420728936025363359669847361473413720386857514784976418140837602736865341956505653200423116256042712092104604369265708734041130278852591472783682287016669872717218645341378727221345984909189946410852697426673489291871236264272047068829314728032030815090637399461727087704053628121225664826563256810188030865249446286159809989482250674520987626298383326153056816782578956250193979757543793863720978163461710781738661561839486772109043113975880481564649839939646538132447027129092492276899465131571226602488582048553863754783481498935779266105922236691658345975715479341692773066261735972479518302599715260818961709768632177296503432292940810031063856525305970673179062106511469733098881663886324384190281987527002779842560475801501516327284654531499196925010773977912692365079461025541292726548598521307566806693844083319983143522437568970388937806087435629867050653257585808670000308113689443508176651590655531669259026402397475790353040469035776080334496382192176771606884803100032170922664315692783719991423060481708048875540090377153707768491624502337379324385866898200917482106623825191953737971987059870226493212627756416753721994844806005622865152299251519899371799484576840613944379404689041734516786946822717101589623856813045541677307703538891536045934911882289814708909055130788393467967714638824380160080888415707790841487997957621322426957227366299702920464566944210084402235148008834376982612859131006215626262726946742808996982374366453525346936769913620546019602271857891891411083591368226558477074551048052033706805093231332299326747123582313250476409409013755320225331903815156556651784502578455459144007999802133671794606514116695201617245173922455027594212413753973829059334487580935743265801664602258393780476457280225814533369825115090237456745677046969868346212297173015128426965411893827738545374320726717464976445154836606145119718427810935900954432103793571890891194362297143260433593862048985910951380169272103969816532777460054045012915342342594361378669185092156115717521988754087494457555757620738148063536912337463332120920310719250308097289844074760555214343669712084126824256065080907114958610512831464545457987658635958783228393145717003823508142315413678910502470375516865469075757281970977126806410692931482139290402786911527791557938187445932959095454363457440385613875570365207379284685233273312082352945141711987690305250888571875367610983009388598157795622407341322223528087047385140245517397679963264121956470763977598340119970546546108733281700318289629089649468366388703595680733935104944730457316032472310293230041761237516404848701907645042171387130836543235580345996212835428054043843806525426346423950470070736677342305617117061966405972387217198032992230494202652170153687134874131358345117119528744945829320396048426081401244051634543619672740772879941296846388319424294393878779140770664217472363986161987707414528049664184174632596354854022414636466081682148482890208626803755641906370318485471409467129576768691121126004170138123304355485910379562262307467316425902367743295714676301480423932433966521979777742044718962856937158708004739878548473479390520907364600865764441465751607770214567389170541282679497898305273231858665099562954391091244897372038391800714551182784123167521033901372771412471717131091429334948157701485976089200825702932079883360674058640903365163854696107579378645325185524049054823683121246014342233100770125570851918138422977683558996089523846141555079877015592036685314057008344151659964931835706950374955214058536611500482004277638196582195993979094408286128846169855489880337686964190103068657909574347157644930172196581378881543591299201953694538444210969892437649391960415477416062598016469397551592915449662580505700780835764062370909348089838510067155008059970074821024603930543049041479364495025653846657793641206552413078097201883684496171903936198263868969150418246405878152307857147967431417649794550145783863287605470949381088650247961912521388035149140353743251289518484591540453469076998563518763939265508934762131831472622006520670094894795631961727761921079092518595864019995444827509979093785193708354181829755332898665046471734769761449834677935197529027647474029674160560531505863471685152838826469560303557955140025141386435227496479573577154200802261689572828910121573283377445424986367265369886985291883546202249286468019306608860874224772720804756756427394126751645020989746927249355657244355526662484387206572789062556574816957436872496144880241821329783194528333473135154417089332603004536190982312098963661330979690501406915013352847804613739274547711284144310539789688470307435476902012602731350505331619395616077770087524329509239575778844606467309792975619301778330325498092880499116321740724444469106822494624886942380540433829979564144189484945668773438527985666049976266233020258156743514012526806478129014761616179082846928532453099083449478080962542469101577694966765047793686524790717172090256825330086315946253843413949130326095467992433769930049244909177725039926603205074217375727585792527259697460615343717781625440941583290691822696991251619607005319806550124190066639826508661244468670525299333771325655376147125440906635595913555473094493054891671057950220599316302655899529497850338466305540929307566006583215562606468206223402726956070272154357412915342310768694677020920285838114364521383950440718957567712033912672937550304150081597693094770411417194035394264584888151592290019975249635327781369083254845444072656289528923950387868414803255421489273166570873677270947047613345322247328232660989491882663346510625479290946693736305345475170848000753658879052250786846288795675886446338361655662107460355435915824649037504547996012449689364920706029341728632281361482574606550916302474755548168136816121980961642764014948982133941614941923335664566011056572163983941015656155890281072384212033111267366588868338538382428537406982981464863985425696887897652125998444773438506850023103105681557904156633578852352683664297956174005185588156532475180844510010381309207284561995977762555257152800255259930071045726877634075499196475343228629263674726759313575805538779943400961196115360776217930062754870650122416856937369796380915940004825632202385855171988138066358906321285749429538571146737149438888218345498036416596350000357954321698360562705111025083663789091760208309031617894798199208368280822674965449782392419442528704931376113616923701280951272016624275499513361540423196557187603543923069716174828518095285537161198769867209676310650542748421603454451494595843669884702540260907435471148578097539053582538994516877608797584256759858298201144330686285393011225895563105746949909080395862523696971937625018119210118377431924669682471215766126706864089262954214346753395405276359596252051679316434550027912607778405853169443631882231759217737871024250495290657599264573586006101056379301195290618453483322901669180945732944250420826124647638866168887194521727082242100779165681455019829383732643486720268689306119747680157968470637399854164983181413989008945112845057845289381836602524904090878528138561465093422345802734067285808681243705346837464407178772876923851782974013795538988270511463851068436862609174554785127098474376514134657576653459422503667063396038407857647737452877010066330697322720758325558899667734225666101029765323748334915384753908718852795213914731841934246539737880830878340875833468136048158525896252827535616308067565529628133504665845730657578276151660742445320634010255083118655684914714506150652064648512934650134289876731886268534549850594512406235341716546176958641605894231790411871968234543205118217999392377842329348386402305926014674530593409784637126627003571098175549863555186164851151577238497073074113818636338438243842749696822630886718022587913883484416999577066828577728108011661936042489635633669925523824848008531413084323774395645241863419657967266881304428887948541390990745632576114181728256379155565663676286113925000337461933618532612725396411735316377422907421057743392930761279903572199679333480666021099039623120619118244011452042349923675278741981875393659835870313679805973195865142741907504014602991167387752834333872290606424818803771422666774903993602132651614904715906574790324439952335994624303961875264176534989198971070119419190848752710284193678217582072215813492913463405327442695101238449973172249113786002144854651861853764238666760365672306471517883759226685805954003192800461713707721667944438521343259053546385449430943090381187076316236568252492383014731474263488951728043693076110106254925433375152900432660295919170085751108926130935562113546662471479220101134457369431920855322963052905092333837729595326117099449294170991615197531616002423914678660020306431413922699202689573304983005398167111032514219279437502299150636404699745252955314831361624797325278153434461769865450940064766773791544998983311983691324137397388962515704066945334374659348943935563273030488093636155655019042916130172408996994144658111208249535234234218651908059895703637524235561423009643667294867915240367703404790459820307916174825118637497952765917338616416566608589927304531473293027693690904829537483828355175178682893451458566992346753742547713900575948343386389721700327930260130037646253393945814424400883251811632951342948339069772042150661116833590289467649903073560704561057223329168338523693162556109891766413958047088437732266802792641025046813459300868508907075161236057116754381126004232109872691436586529946866781448184569204590007135552276435958311849963088137344301730134483881256022358105973826516570501403861307286124305109770236435034156243816806393627818849614068012519528890189341878691410434636915244198503398791703778756236487242951607661949028670055936256476845274539597510158660739915848737921361182973202840706398393318098310617171146175995985828042605425005797752823328117322532629536290097904069673125266830815636965426579879254057619992134982567378686792386034646063071031233004038559142751274787708530523284821942753718104480837295152771630033958413279918973750164538829034372419992390466272991071625120515549148593306988226589258383664790930545203945129430850878138622036577359815544897688253879646469795202264060977407723794969010693528025334766078018733814259448777053097311931610019260607805292072589000892638822327476259368520617109121341594893324937791467903635653605837750683555194769499882986785410575511158482981296685792977474888008153273460240119925234444471073924223134236799293040180623157764627015641713850698340035757715608300864793992588348098248733168254357977117736917069151432969576678956454094478580359808771190853480041334185386321320787883617344565975011690609721865978454779410725132046849998901337736510142430116673670961242457147731199728146661694471004454889142828361602901683458968022565051692126475661136988183606378260466545073959574739181341128556133434270016088089861138279356693582219243688394458697042568968606517651382527464549509475080392770976495423556602180269492638995324791332627982487896684300049501647045499242175279993467625689933358569912387476542607079901059829390950226581735436645957308502504477765928553298139283226022782959606309538750285350283856345118878317161532216611496072358707339117539809740405848348002959727690141719838889636822877917445695161392189156533309932089512358084893634758059232865367500406670610102675800489378922405320131675092172586567671875954940050931691697046971980937421505657905559468052827024780039213899047381438155987275281165354951609372150430896962162157559382425523838492730954429106261183890959032940638187606233069636517265745838998083974570808173745095020992046971552500815524275864019551665002809201167732948109662246412263551916408591985324775306426164193404798951166340261093641655871161031162715361350134793793116374230876143233957120054576574447856676784100521993058835744472658965026983584438462059731203471858145012969364145707814171397698612427315489134852190493153522201243848449371949332488705327894269036849818912852404099975776002479446194048640591459727983244319042892421373830491421513849508357529133477075269639075398179770863031333443832637883063887869578850050682618564180848533642308284173958585604293323526960140850003526775145644991814656473111578222464174320572538468125663023738887983268880787090286772989604506319247427191505137108329783912308592257948182212719317362008788289851349913328619242662750979466835414407738282504974386681393739884440651721301880417997070506041159620377829199846956903888066249311374249592452021896822898627418403323867242354764479751401562627270098613801263874636342302310940445605072032733747337961149882783909781502850108217008741232941091536337606596765469348797997621166857057432319289434651127763737846784372563165538174642918001055734881835969622938173178574833578163100048870824228407442903912594708995729197474475292439417273220833472389368091826790871348913376933397951127030812794360395473674086644505780035603826998952401769375233462510685663325491183002904868169325737647014509738724279976974847850364286139478570604601958820876844793608011317340474153767201238043721998670309928520345222324266947408947484701486849574784955202394942711633216820010482121077112377055724682949745852035073609702938232226592780915372068999478786343756234266315941677957723317204803066529876195356519367540042839539755060823351112151709392292815094658407583070463640244201855297817739340782581738764506172079185975055752777921510526082097890557195541454086043175261244042770386647031942599052177841281155196981823772490509317573627467072152788000622287108345659433738534630580080557679917190595056437312264751900092175884473195344992927385144915444215571488358722897967115926291012798657860581452667966929138590047880757011981885162863541611655563259938867256654398672548929378362149094577999217793575101067105953251525825099985418878253208447992532321274261018257657319364631306279412317707584835118775941995315724624285576149682141310063647600503922567285000139611192772023182631488011509091977359683449933273100366902592867740518657049552266356695727452214392997311355758218391502303643156530666759130921775434728578602366676595350549152315857452775687771230470871192435976119925462846999050543484741708798808106600276447739597266602582967442186144296885273489752984172091292858094904811646207702981343194219688975088032054053149984741482722678964902680283058865271337584987326036506171721043794059769766935313805282778882954616504809407334877605998840593386128576786733085078903694429485076209185451365324516468335755561161525504931961644812907665581936401896148662500076967487524629499939328547934117969638884601090481629500440558021107930937898824935496123750012164853050514502623623629755621269165993246347947260280683353066249180964548402724735058961721922812339855525207366075117558310144081336346771107763701377759950304539988918513275828836977584709321473806381878316906215836566296077373344760730465087536713025383575088347104945696027424869733343698218300223946736324117921171905921307984830019871282420271969596298020182859987712191257421709181937460804721877772517071152798589648823662989703945428803585134271641093564542223904676662835133555328074521932968840422873060882953521344881532619302468856838271012037348406537337853115158590123449226576866258804196823992161616415646158318125042309759526848178849515136829035268833487609597209337854332929366164969530702668201226693559257880316022607830275786688972893306120963131631785429292471449469948207251652235538964722053145852165826997507519912415477955094159721287292509396340440574800590597018733121565316570296390506701289158243153851376896968536451423082073362588060376055067195213850160635127361717368204950583470269569312764325654836599267142477482294307801357681972013420702154924893904737504765262942588968585127964666516626690514876259927253764068327230208282117410333697733084628997798304360980546235555102873062432652345236353311046028217332215523434184383534044903498418447883957077702608517579908149484229644268429078080792553089978631353910523221068056805645819920811300267069301132225811632242134283098171485142050811935268474741891911456954768088394735304090493624278969236241256067482124951951571140915252124033741825373228140822594368000712917785336339738591345361610342120099620633228859031590544402221213704789753255506575389506307195103202491009984069983172185513674028310494035878142832945547105512076188392218413809421297531672039467111579512828960034413658670552651145546179803208674437141550079632967737184849967815941799993578357159155104565352037058704036384858136805593891292146016257837385426203780838113211491102825215968301364481213901325873715875351159712324002634303882584916335793841149799828836375702173929740446197232085259187038928007179741198412538602531520859972860880081264737989703971322530385983552831517542352731346422555940849698362616544051922244569907869294935821283973687186452770456450491568378917567215849864647798265299934837705039134615375188526479724173544950964977743913240676244730092882576501367445418792642054224684170778144345100651860460505501986112533515812334206872638414364549518858862332358071981882652275852721054894302012463449388579957416031372584507647855346994349844098333714475602243465393291032092958303718897882955559829376719666857384202245947524432417344048092126009141822656516080641024211999867800193879565670615124990494958672831223261169408865605683361246975829357490917432898834621408243230621907095678885234770012092061596714904759267901050977513311337868094086319776544249512210786373042495665878645936204434564961058303604584907581011123914945713741941425865467334234656055387110650395221199010881933650262002418869090278545456299008552889129327544378638388132304332398128935839776854470024237174121053723084899876604993862103168060617042356507434064292444575958058856692071733855087936822016550979848319894174414538703271155724894393952734424876526856468117342154586801936624707775971478386887504392115983993207763336145246485264013655078690419611502700615983321656777633026988455458159272336488466333694562276221068792875267117225754644094560161403817882269277890477802816578349179799626995011561499167015374799071772220220957077200538645240148871791850019727955423710323107149973455779390998310213558442616743068453258458754143353822590360290201468763842714685445947950415277600749268480807643694203784102426254679271828897399152980744220714985657518612055568435242738603678354391538867207313374080704395049727471991998169670789595108784135418126593992415282261277811731814516423899497240547308919067632207617436810863038497671319237335236083548625990137238454255343724462021985038165291584690204622089188497104311241687712996631210308393465017360604772436713301982619728321615428867238887661859642155713354060272163666856089918486877385106273690902727347309870969675433793436605639577979999217852211109513544039650794403143777924415853312225771316492017847289508491142371528104908156960636550181132694948974402988292259167270295856394404334556524700068743560063053453492471120549009313397197259370316817676419165903813938772182674681295239378490469695112999354402908820152302713634847444334899459938516436795387263702160578145645455337068236881861590601727139198003060411150953917825105805564540697326243374478930909603028816424800098498899716427529648811433542137521495164504969350896302412396908971721314012332805522829022808571220619757898263174209954636641235260524378611153565445994285219054981383513910512600819695872795932177156269245033840593682336863848488802064719776290978719938205249510093436342274337183308505629045296890446352949661498788223220259934578984501760769591729989344570027951980973499560171373114202012031993945295543293960364256063866438202680814121045032738961795386419211494315952221448848479724898094583240460051125872933176358274067958243772642203380695117801065818727938288793212902933288270798101710792598992617971851321292318785289584258442642265290943784241473116126350302683617933089318237549824277156863676365979209189183147690683158368771519227166021508835390941460823446471744317108684989974875233435399874133468106138960885394541197104977665486543703515742771637166353653295757774467276477209059853180535127163718369634251513910411425260314121146896486172513192997522660521095292147110573143511440262668713423209208410783339404200669493368682293301872265182686517831993601690045753199119853522791453701047460446171584714733731678780215015073285496578506537270284177920172440255313231396811204800817352839116267664887879045030024460103144322267792829558500739055723355070497979288538587563159140963753794090693545717472525379126305892623538708041429462702832283967933555732607889770337038326643121533408714054356414978213563236471173625701111035309673390219055390666857844278935537597079213032322495778362561020176084369235468601125140824797826076427688222365791830455825590164765734932296086679738686354486829663397400467216471617854309357827289829267053321543655207234552439971146786309984898933316574455200079339524647465289945293387593033737836810685708468459189718523182451026576521126383237191708938849315131441465314982880492609959445018191591136184651493153680680507399749103728427638193215779379249398161368198549475655619702343939326140720695136475905532443119965335541615708425443544120138099464873907857906039731335617883597352135764961322228436372571275766698679793687423131245940834781993762380776139871905512848868616211735667591871876156899379335443368305852617126924663806101978016206917208083161743668451517496659497807866066828991953317890151860206232416004707891515295137677808278959808408753812586350323778426859040993841734695679732138243700216506411463300050415273923321851532128810130995485216799779969220894419662723942302553451524181899100944611152338488185333347286593145381522864793475278859375067967268938363626579841428983023990563372199318104407619429606708944409886755084948716797004599116729135271867381253916166298005176413431977903116699670925626362925964806080647123419494904126733501436380399858754050225123110493657689768656023247471943806152991229180716015909703946990014695101730955204262738800160137316840305934591365345572659805202259985205856784283670590455183799996860981449402067023074022566351134441025961336325093314254231223233054799940099672483774393705055242696093674672065286415985248459811914517542822291192014127247736547076267229062543377133325204834701834200358047467417830417070522748052311190193287584746859208629901051514430627301026321030686209150263095612296127113557780307246204448365548667838590735450498157601488975784311624918969851853091238259251313421081207124195716513439537270748462545759025513249600168185316533036881504195913355992783978283110037584788907737218601890452756284391142052751762657776938663460743236110846315311676555585366709685963372896794248260085147716960152036315923969920007539631489183003154098317757861551070856727980860836578534866048407951535766648827527144511441457292829987725125438272935204687400826644982065388955822031933489535742108910187217871188313374469997166237660748848104038439602046300700692754849487733234271223229763470536451083080814070632413195589568480934042633788102408247164397061423586526936347122966994815139399998819503391232222165823918587593918967414683838895554841902248834831279526778429072731287440120488212615734143726661107973315410455398811596737005002299630869818132932024053558822565519150150031025341068566770404711184587506324074908700405667315083966902659767851339259062382091773387308566061529408045431394664800689915381204433609156109180166438333386978209227017451409296529053416852781483288984668597984609263384957419141149384859664511465757395233145950318015132871063077110862610435372076506755177752929524116095620264120245807159811421814851567532340971622625371115822907774233065166101646168851323191993932124520034356140052291945747780946371459726882894917560058491793819142106431873424921456439090805642251928817525125164192750681480527165133931230018418517334812726878413104164925061827079062891128823569636822402833910848503645331639842448828324151950566781336965543741086648537715963320336686340986791782394178163331942880545319865133106957538813576233760110853828140752027102739799221704477359628359814033070689081917531325253279063711341174665459193751646260746180294725447421110121426769220791492988549775738940798882217372132305511741225200773097588584214530043479119696894765330433824460375615960567563343623325729418047541203645183542222263274939536033091687899207970456949493327351120216553481992738050591464630053004348412935597266218016986061365592833612500097211002479879032161001063178729132837004251827044147020363929842176001390069971201890265344390232881955698214337416432019676302411203209383212277864712475647613250951208197272679778044469618965749086437622937507686139303693060600024180273420415848343765915980756479316532920754785912872072483938197874333116354329826361246434573329945525171575741722404111129008640667663173398523040874076405744079983145300330408066182669223155748561239174910058916959706486452921228717486756713005182279010288537289313935827335633348979941873884039538057912313443085441408639113857551388250560609625473394001014430730595961880277184529906437047261458735677797950905932603911103676574501687952600414460505064616748693585540291211279827156588599104940533786475571129047060791355487832470404805548284751719370765502432931129026080418855430550920177521233141582514622323642715392295525975140771040684102177153869860193753529830320067308551412228284116003687292092542185304669517857967463236652709544578581776863676109549537858207321990990286389595933891412153921867573782932450459217221754119111658870118788750891365479573736465621021576814441852806233251431558172340662774640596257749347846548409256542049546585013436186960719026153676009929985416841197243864936972852111615559716335378209588386192101740425444660092782062777977978864770515759664931682801000442574190168851027898874288844950505966063887603226833140407962988143406510511654174350928572329758188752406843067942035338196198663095026991979569317476524366367130273128408641646637753263934540977172022800836465429388229860929559828295036206729090125850000495380500562736162730607870072497841799100356718360773604665287001042496499095143840701421693720198233029831056598593230970959030752641106433144749353374024941397930694211642702047517023207982823447454471543692252504100072714649756695375727550986766070914944491635848349018682593511246269171158443144133002388670653981594566898931709233319924449376950557710541740765658266066671430578166206106598207470664687586742872881809754996585061138648439187539719080614072696610895194744350010116231440548471310642271546723071142049657261672426138413509766568867191299844395333463959289774914326952573514551068763940871336640561645666461153937646418708411960851891671896425126922722510149455532835448884613540238949345247353908526094620573906762115374408070512258018335687790787699607971508989561653526178076989317590573703253884263878032014935451437529994918025688649364166259402424204101320154826870973131285729076278923300746378540288870933305746427067589230160375378098417122712957027835471355548474989951995770370880607024550890457847456227503353926302014287117474170078225306461266333459623747348228787082754260478629047119446870208428760071419468176834259914187013604696150938406080001693726460706997923511325619311845057766785417286680499654819084949279815814711010785847223342485947603830501689374665239078011800560922750200639933979434441302883720529341512775541608161397559423099031591837603466070616565992825648351463476357781603378095440464466916218534892259220540169756941734006781353299390365193512007227532546815838484193326980597393280113670402232489154689404226174545179645393758759233140345001614297145672163455688340929209893483017627070969190940939053297314295969206687739507917368311868339743708352028729643202154723369394243929666475505320245983070890047943779846199914552573300037688424409282960216153267313669539077286957849505096520092936416782330207951626184382038791356804174380762061414636871668548797656241172622225892729274475134988371182396538970587645911585691112659322235649021711078227553357806080954115156131353938345003261115060830816541502693001897854800980360789677324863096466384785275016677360458761219549874604085716596865607834008367519329999605421575580547772092728159435489165433113939440150349283592044504638853075231413544034091055121444362164017749890067567655208594617889936501690733967587810197630243161444104368604060249014908265724420028027086655017179206710311993919561999235168535659435842034508670776066687780754401438142981848821268519793412969385278368391571442511962804822290502995817273060315900433056789994234404408957838501018914367936930584570371831530165296731845903390895487775499857187692187772721922894600692496439870130519405271575233146755153769521255654948926022894914524335858755258481780634643221766157507463722688141956911378235576687540525641184954453279325857267439491685354249926896807574563517085219723893977382013537180201513464215147283504449497288338731618977179168141636861898104026842879938443344036363883759639554202839328686385775350433602970625851627868571721926650240050708321823942529993085759086258535807543184227581566172929239030607027148314872951326588263584879070713385643140552040118272802588896709158905673406816017619061006251725790005103138904952142114658891705200881354470694446009160066176904520020449219062089589163261394889089744115586385272635564767202486769349441273967275839374053251576223440056232553316848530028085402862198806211892625134319387686754850048311431610314766241012300512834258659472173227773695294966341534799329961384420274348685908320290386797440577481269098416783024546547760871118866541211487068061075628596029542931452913464795792975513611162214598611158045877587578652939856000328746853594315339210502653371520668619171769858590130744963734424226164047163369360711187007068836202941524007982737947920841505939511109444462783857404860757986171612790068028446751583560768704240514612466882556386051701332830859670497931211608865003871685890005114926840097601699280055742645426865492596630937428817965781401694657935517850834129179738953030056689665171739690737849090786950917286008798585042034697531893481047433098141710073386788503299173865892048855022454110148854416342562417514539339115484411460437602367068159006621159993793427085412036168950524701169589377209693222523852164749249514231321892605766430196954450334302911454578185953638564635489355132244761788039591795848568874148449302981166367492711384322212831973150095298620314780213754660269282924904733844465462895289017205173285588119808642989816517109513653105902725840819147224387567531109526158738171264474530309854228763025365244400965806422395323423767924031199195870939267474930691737580409038317537498944675258101758804393505655044260992458989330288075685761067391485574081231532614530680196755208402582903089037986900488298812720291860473450856922295876623617090814612484409880621151627565588178075473041621000409552972661067494136643731281570149653675465698081711544891578453671005397381253083141384957738592600407616925025809031092052529372621159744876310059873378938185314930264603043151449817154975851974611154780131558911530536265813053210114763338269399352887978250297896503476376644860110509196326285648953190382858202245087969497615586109151810459701129037811442651842163866433669054715155612657717646139522901222447432221873221967387142709441500517847838294362703600853610685228379700536460950507391445721091099648599841294190716149830183248105514138587171978778874722291810014356066476701592282867043707031597853727115583363380055783194724228247210149731032940255967367763452266767810642683207666298702203778199155947105967269547456143211464415314273903440515583863095454094260510009090741077143913110814990036644973010319645343086233218371010194687462237571760861369321705734873715096266768820769905932870372329944065384767997558346314387795558710088788625746187733340845067779098904122297999681860487924854783183613668448582464828157878148528217508277723777543070084209335512683018374902885627729521585384180788660845325899938965619041396314199062621535069966239402781939684533078884234554055588163865679231406216406902031056971910156891139344012049670166367385432524036934298117595711009204324921559866693261687281021653839037768661112110874236478220928711206981872564188819330887093944504743548275646004273880357396109109946386038367200667144002442389600214445576050119067368187013200820132278312264675123992941113835328664433286368796290133650851274872925607091251173648926610370709950330298431447980995603294365318299562687358084471687206345331642140670961500234224855933819185636220856499005284687598931420206262689963977973211231288372524657959038902813329911485635227748691130378849672716734894240597064379760400169843259773912828447720466654758184567473965563750089613268659396826607745408050447444573497568962714082872889782929841133999270117398800106438424771306697272381923122126417703590723573190189285522231794571295858476132771692238923484430031472836259315390861213633445135163700320376919944589580775593486687262850381027253557167551851981642253930747262027084632667555695416340743769245286217243711458801726037694366478687586549279554627953399305752101566488403972705667448633650396639476691451553893991672709765426769613769626077013003931940614015857551070121618995737478303153164611603632842597605666711133179414148608556657522661213456281484978732157022040391326814583053955037695996069710680108655796393396815198215340700512754619290750739989207566642064226944400520619242610289945003358453134081274545785366637775595850020701593368877913847625120786168809630380729739891517763003308301473058277745021378134498401989190356239482227654925178236131258962531718194772567611873338422296348434443350213376184745182526895241668781024250516555380601587875036816346926396704070793820579670669281157965170645716515887222296971404238291460163613031469516933632032760288226775182580683303844979107702925960978660639297031756980466668988341021634271320642665986076847802795122248765361545823850281665273391532787427241243970134615342138129920533312572044335140050628232574496706424734340254499231462006952947469064460358556416843608782374171819777538926342727236596562169238851493243070381005968367711107162500409365431747320984622030015408923261097645498282943669225861380022886767077408702479813486328952978181960978642104325472866986772266942555203387593879888497456797457623610695514691766853828464684135871463089472630715341705315078723498648313607229504072564154731946274735069896881310385356343001393037435054697185805685348697315658531813034097403864794514032325938162139736582370246551571121093110264788876689874982056057101120962567335005768814898855229381263213588266274480425530995665251613990995110485221941802285149677398165052636400084783089057306895892001869382137464705119657227186087091899730147901859605867954146225800373834518713927706438215832406172377881953631403927325284832529232595459658781780193094613461467116181179920051486138472935993958044527414716910149411258002314691229084972061121382966565096865915058374920964473344936436017781199714813495490208997817222196595905538432332494562742711864967866375837328592046560970874018877314467129687984458215623909631819083172984918163745720783527102354028873372381081597831159354932768716550549732938038763901387160448333593456848311867194441142451863817027871361039005554488059033751756229492360764773511930666757635021075404749003116183269370281355154354707538530874947037282719179035228626762498126466322626120128494501665902399545871890801825195417472610846884069173962280085281088331992439249901564086656331178427738815826559347843726980912530974306660908192469639426564726604268512656878094936106144070366791260901337939637875266670004617085835058032512998387033946425482017434113704399066746277489891239719584839408419929667021574704491898865002801495403647739968455860237868767269314347055196002176547054503729439728172344995609931420231600569825123113483917037530069018339247328309468148348972536642176592086528299486551820255003787055720544035099084309497458135222574417669042845441414763185431426830256622991835356467811504701919815726934631151567520689875041672290587148764863331597108344703445023020248527827795330556994701200130306480296116630550054726959277008975891593538110663945137107259670607420061409540421385746886162889992042723922683309279509144434635801802518365918230605768857412100989611162198771456581907244355910032551605601605304433226832664660319713386238604748436921270443641102868093258096976302769141889323560339590488784343685070784294431991870061577535948335267962724510473418734759269876951429110469424304316902890309136306116561954017112467700537609879423227595214154991235250647587048380336697574194984896894613463080944367181730473669961485572291109099912282833852079305488135523636452973591967389515272443368523077471147857321585841348709066900414553121251081473279398225143818031765200194363363786653451545921427114185532858308664250113582732675778621736771092293924727200152010815584974036808992716366367008780302858327163392655540551900766825553935885296461128550128506369764539408569883108916215740628736993623915879900858281991598766257043873623406974960302831275361959685976181123183435290961629349361006861102918326505561109081747443123665631881143834354245205590650357146080430328928559896372949731783411864088317243322938085538392838937008138412267343290476470527975596647057837169150347467886938636603338645803371704575372120982377379914686769494771880499575648916767202415175946378651168908290141094699128001609334891251703298190842901737391959019933316848191221483628911367835979791791348071124604991582582767426232505438504508049873314007375953815623332732214111237308554124745076217641277394619811498608227701330108734221730080215046628662439467050573921291695210126116097150323087925494131409617495044900627060774523858539336845366493544493248686530679218820478921567764336576419455231875180843931617834113606326548860592009094434333325027361684856566528219021861870500844714996515990165312285392315775839989569191940331098994408526663020941636839854222331681347403537536523759275854596376115040005075506639578334577364596917606166959021292569558192845577344233893056514055262688620074983777947892127286188682891238067221523483791973348677679981284390116909916620382168665917119514728577656452492013661886003702847992313058305512364206293132703612963941456388483250705340678341331170474000150178424950185050705461724549725222302365709830336475205289824647348642922900514282631568681207817386423230154021798150868986421614096591918545386003408286114988468589702272011665428952079867953094628622929778087715997515060092816089969093291136406022490266682813589404986374382027310315975252918976941489471880867638144481296870171040686542170794995546955938185481483327104677641150301939112222774494327515328711590887881559856845831300934113422221230301833029014639918732359942096334318717585930193947039570314066421119690437409939176227904639006522959480511634903301451216410955111310616695188488238959725073857745850126104534667872762536160559439969227831909941147624178461727856571165793873326674009300865524930355073933575112478607795750803041174124490319477679854317402975352668382258620710187020007766688241683648319308892358148675728808800225888777732137639978018133287408855322320241133278667454694060810637518194991635539959113634596674435769567696578532080936864502803932497144140012690271554097030294378250627163685461358581700680235385704337208225583173845529649133264971498419513908951052894566987671461934018103423588082655101492592155151501721799207205388811183575180190354496721931168524254734672795546746202111692992489720810303252835001620344938072813964747389592656187160673952844658162189576838642557673966710009063884462422180387914514503703707406604939196270552612685966950091279592455999932430575985543957808431364562759716960817882709844849826759079758644662322014044962521040106730872232273381871915265427149221581754026072243340563129743960928751078349647438647279676030923291338879788613727427270373936837262984548237242281500515282339522768225908065138632343281312297669131911390704188807138540154172923680178640738320001921627912019559059671957114879713916956245916937400074417629976359720324837322162897752274879517872719785313980656918856501757462845655154453195899287846821620958180567617104962027066084530575057620507096387411714356456855204128367957683981059656964130925219814192738550068692300474188768147606570894478084286489141348057131594240815525445117926768497189780958644690830813198329936543422051722684923775330661442605939973927892363352828157632029186104973214668441200158219709848902549246323475764696031588423304376163660772886826283819484840081796675301662281742321211564476234419582974287122411845037147524242247345082963237456057802546382447650065780850914881779113806653877339769926461667359944121164624932619809766876177630845585760047930569150199998926390925915553994282417289705096108902009188800724883280630644856908091192196206905919311995770138421949261862759296133371908028720572723264930847389204507341761320095715177191421133376468530995666411611338429109607334165731113072437088308352454613452566317618775090776269393581850142583526925493045245637243023118973311915401394705255630365996087699417699898256202825162976720158547832445477192905125920678448925060942509141104768200311771059428264466360197836967411219176461468911113124373923261812591592857517807224834766022576297839491537461188895154064427561472198582797755280006305077703285441207546110318777356394391845916460701453856202823553354844982808296165855078873666759009536039099193555681671255233162767942905764137133910621415406615193896588621736498555317958813761408803189197829223403354068652913675344597841005297187991650652655763484978069982183700770176590443315014251682945047391948597900074067598632109548050386049059435636372954310078797300962618124281479498008032502106120315674794408715721730516792962516490031917269111017872993088213389285977493284446183595958864048081928038523786335555180529563826052527816764501233677253923699364181555568771231687231171964831348454870815440043879982238353263610100536553269103198100918246648351713055196959024704273863214983159400152604248177746513056692756090220513897219475342969106462282685401050371027264179860984969768910883627543386319003340899232381620548720024067426356900875994489754325819897069627129816735717446785099648855247280544473821210628224202367994318561733300580223266111174852549077431581745709344998595885147066156870739311295251936687006409472130296064781575890594447988009822180032542919200919914894412790215875944425174600237076888935227412977586751258079333350940694150724603904672698977203010905237417071826231896091511754504871239952759097238952245978639888508965449904105114933900484406008308152553298457184635690950927618711461299050862841841619291082170726239086062916517168696346129790279968793282115653792489340653278245371700650075851736107706408654415236621266939533458171284438933361863461871469219717439152605099060282189343073516466770212498853460999091918236758059548251487064779217633938616284165128630452447885481526314052849659225349385499934274819272297616044161590982877989463941899756038513349614607708903806093151984010472181810181365343308164853051640109947998525031835172618619395104860251869274811784321132618444901549940984238768771561171631584968760522228860196614386581108424975253128716562656290951443955067871556270867963429781883523803876236901468455682861106548918633823167560549485330972555222201661880889574896911551481579352928261430772134617921361791760407463290580945251137121584636050264890809478514015145840823707831663682931950312896518265758114718591552025819890288917022721756578262861375938934520527881080141462806509202413261128897580237042590322765654655391426121782267879849517553543924531741159401142712059544256401397268076037335402578810360122989983673425801316472716955730679578298227756877421374850469742826982122459314529006714513812971454151834906993271280755473609569896560204062985899141134486232167663375993074449231265998432717323743955521618124488734475096349160368710518974847022245107247830691962212481335837097529605816455535023877568344551309395956584868726945518295988753079246323889625314504209334385277413845960252831143637030632296344085250334225815052414615676179234225054949105432795383093137357557049185952565679308451065096767737160912278619082731907574454857624628692447331083838933325608172057790576694275484621752011841828940251550222472629290063983632316098875544999719357281806533415897471245242824957532744169642103872979968343679769172930680096896571332990504309839579535388209209592812105626773908210895267115619524454852311481230641302352620402799861087749250949699442733309458837146252422888719983970184318411308466231508566403503308973111445124898091112305482335945571807745076146972502682039557283694277916952648861920365462105141846659411393248835116300033592695609473635308526022835315018372024895648220389791902255702558185496651980279984672742337637255407672668226669042966684953861321117421375392130042115439081468150286969233608764245142286137131800737186580906570327689190608705804543482514811662140412632853939903898681847903465191530332517918937911247151259374705834086760148856807211086714262772313746380666984994777584498142918200527148216311960905390153719372274704655602011321078403590534611257461050316354377511821139001076946261887402693989881438070222278108561971353946141203066014265206402670502693270526532702421594690942385276338102583683364019597609855929399444852706562925231911013646812120471673591085961067169174839361428445672357347737105295972134628672917687193506454018737208875857735413624539690476528661762284699174415097335684789119056165567402642384209622244783925045689723340042304905205295646448852454332310197553942527079617850400967987158911599603866319648889417408593013723916249364194923824633011042653617602232867654946601211680845534034735139832941215494343552262728787421791714892629514937580606072929873386536126851828816139372974089350641264200766553804111169919258882750311441582276999195880843290723476727631557504497755858578213372812824759022799926541110100053118978251632187615631346489245157160176455508153512350096134991464890657065635115685880641244066417826630334844664597890981453462109571822487455378698170158142756723202007553120869456516789911596131696907110922914884638913830061871204460700595094778554215247144721061336638181958311020222081995241287636831398274928622890243709871022236980952224747818020087772827558106901180654854137187395418195605968910267398553099952981799135628141343849046508733497551690789652232662616119834250810203421323728060678803512073702851588597054625049877189597593472802146313154046963850316724894990091677864991071162843151096741750611153438413983705634871479213798711439819832936073608129727379840626300492616714543184954521137528747620865210434737778725314880693519362003646325422905318754647790745410244735493832334308897437377029131776510639755681503313062858660671190923922215304195658010667040145674931122577667959000531906528097490413518018442952436447307644326694074051372350493566712501298385930668882023599845563503943964368371699599696655881139126436805935537322558788365463625864051287574084605563378097907803629509844491249405847214333131425429054323017621607207498681885364510035726367357361337803329364754076042546668736739115437594174128418952205289153393680219863336061866393971133989052827893969139331255639825470171958958256148580083062358513598149937723456598671635053625935595440360615278449580141983610298158819408767107502321045343096543817975473033559069912878376370457102203464760263512599764468487446525907013540786817767592346027753609108874950577724554844610751214000541126763963390825610615300371174892253968485113540192316952873602018151482823658775188842178312009564151207328819920448361373700117205080614451646613857742468440796002245487807548894082206523056309652092232409541689074334500291117354507426029423046547522703300968147954399019636655731706226520250567785524934242616154190661027667275749829370209585415820975686700150458394674572967609621679463931952480579464938782720696103063264174880694228485402857841608856805101066778446756557212383766878028705369750920614802437906771908283033400954351201943656905454870230648775652853080131525904985798676843853010082857526103071827516464630793456681531679475943599858408604627979247007913258564029184554785659565412745980530873710895505008743552101215843085515682748085153890198596376863632531999771712070346369572801530847913158601492978916345203827838881545178583003561754728850676241317814544125460906683241574342980466940973436263678242758186126948592359016055755187832968085101575868520831112739197268542885698150374342006473872666223302489992718402988503947279026385482099365683877977313618364367192596835250021653817278305766489554004529170629950480822380491071057769802150016994811358076900970050341024468406933105287070631254972208422685587885643027254421466219574344009533446212913635242621967440852171627870234267238228986829038753586583901950967588047081385916546341364254270545252901587451203907334101067052781242607244703804358005581340405729774777967137110775369788199091347993863368607934792320468306981806262850409751019883635460487006186709772207246633980991782095729224537932009819487777552429841020351754804132768634728176614026005432666792777484664500536115612291810151182871128406585479520275022413414815110512428855993642394176542564095489935539398221279184661304948178345752126339944938195016401291658613674661809500058138232370438519368136056741313986968471558227945268858542825707059303521073635956430650691574601996523987059555036712257202109395095204048914624665383848645921226545403728605967406051389082381696533005069952035525725364085097175386009519337694510539611397573508684844322311893379014090867291188632192323536625049701063100186150517447250237863367341944253306528160471945619572841161566494503182190198610099982389329341206211410890269566100154155979957240873993282309070532901431012203296832828426832394337491839164755876908439723340933916802321960313109422680718390930198339920143630076615984664564364363982490363895612729491660393809100130310641474461464730160812371931560063614643858904331693205488236104231822961956768203222597645000645093101443872819345442081743421681406114455936059831983519152962291576914705904260311088619608298359735432367531030538770809710399279495350978655579592532226779162951484767616797115810694366473420125662060830005942495923205325133060747477570932453486733693079512625971006640124620666807475749690867346461276650744283237404058249292567781417681753097191296048536653520110812542465515268525970727487961266650091097042146869524692037275967779715564141382530539108486993028234275651192183633509571953298025766016868735815487532343897367240147713873609823421140173381339998658454016504177477726762959854335966918274194861945255046359749328089148669303903406568154376123334525745043906591849716080486168088082972906149593341624439339553471785052507348474045184812068719991049678587023994590240668419383768880556046600878489196346977547707104584286694454683896655661174650563527787884574778502119415691567179847955733654296736152060093257652365897921384573500212969467364842814360376539078850534510116061618484270366693544911764170620850992122383413695190054953403410877244173650274189935882826336843650956653444813429754449466893076185747343289500923700596499810083551314427335656243422407250166904428768347945029934199391451580304580322348303005677943839970117625131488446055905947007062335078691379136239501899271972912272986412181629229968273834598348207242659892090042419010262078136115217039810534652936456277760846828389961397541427855989994826797796034192818801171808833055069174182403220580676487595051326640599173214068856515372112806687843836997503859775333062074493214753977918762035355001193668883418158980833460519107710311721309387469979987525385013341842866050335976829300377181704576007928368072589627877270630454094452901819039144871273984255300588429053083423301110804738619725889697911632910408580500174060186275673502158996370370781438379846927544079893275880577222193249489995520777246574577032999812960497725230710564595646754793534947320220167614108596526029907522025355704965242378540593752468786755485155015828866463479666731676661253886863557560622384862613209423329047290029424834285649555708113311830949623357325322618142197245282009880687441156056546683436870601400272553859621081717514962374694562927150528494428823716277543662778241466000028337945772351423687319617957869710127600629005764093321836773868699509231016230096796544553524253241347750144731373278838327265878686281851187706859627754110490193988138657524649199661854192045669822674323945075986776534058284623763283882019686354914835259425130276686482846853424091356039076142429849105992980318060902472953581902245640978513305693490664117568711460320199763461164844791601830102741486987183035987005429638664225652009979578245170964364668710195938096081181346084295296307703994585624835990777150933757947404245272043001004432003647722526951938987404152879873877056234606994803355034944594743463300007350959958418435450992629566484326833281942455902434583487261594986272055910329832588877990695310588194766796259616879518222423075641945740763162972798847130168561702828990658389410640268976483089774234411886344110581515264684787264139772533238680894017496010187311228830427283389725921462490730555126348673101020924152759539212169302885674821538711070061675882821655034828398200533940179308108547806033852987285958653583007771220862810997048188100790145073285247740986707875805957954262328473029820112343787108376182093274043672621746689537847975048879431453592622767197145194965657492443724792900703603296691920279609803951609407197858828376460898246686035226842656401476459659432503771905931093084338539464286211077009182147451834443731935934417511000957336860645932705235015199400323649386300272678020408422275991499917490216753840783933418398120436371808696438497510278843350584862262081304829691562678885985713272377105524015872729136315742148676323069757748713840534976027853769266581463158319455622563366857615809311986665050369828378088466280696172324022556542085887295846888632061786180277706561782296886320843916028527790446739001199339984923548125241575340568601583449728433603070681238064715831434514750857736844021255409358321646803121965865136632494239640734407563167101770330560908422300740984523550922342230085724106432414440605722052616078804261562851871196880289127897736004409891915107746186193136643791908556911108476053797684346350392139821880017086663833965821626189221529561945471816948072156247254671533639765110495933777254888874052082122876730958256490079461020379242641220422726811747592821439659680634927995287755787101306077152604126962123886816984332766389328114810973383173087552151921273853514407177999621055218838993892519647343405125707400385474746175135869174920581658039587474109147872469442415284868583152640852508883893054219779349500629982385323484684395029040602969449190074423471498594216064372945228352523846778863349912011954193267569144590792454501909274255061058789157394826243846467056862826090528780486285552609935291546747633448729878906617015589264744828568176461513119749154733705875146944170415040568399711376117241292960222114323459253580774990554308835515030464986261773639526841134597959996527769472137598537547738440186747703206290460287990638555220197592312291907085999522132796531975111312673509053406170956817829876490337132449568337026945166174076451769837607324586628142805119995377296311381069817791191385587739370621347820081950372834121543157732020843822384376258918891639854548869023686480905857370696271801285847255162711217871218428532879348240127356089756700792063284359428113295051917098016050431551875444933163044307113656417191684138735547177549265226374754768195418034199608982331475743246503421584047402441313656001353581528133519054768401512685424909065733002456338014915981935786818692637140014440588638901159780012896729950840234304185907356074858449303827657542616598313606380473335362218414348302860115069737058800618749635096575919011125722584921719922822802272800133105998910786747250481696306766420527318222850819882484484733909748990836020643332199530602522964152885585293233303084802370684446250706949835741390119383270407295693857923559670810310417463728397625413231529022475270772184439233715665751116789181008177538165911855914204407603514860180899635037475964941598929812224932364839121152086825712645541325248457499885344243991083884568838736340782937781412755249346873810084826851931490442489349646944267480167585065025394639703456041665264467179347399685972812099456296089796369087475810451371722047249905307652926008921610380331482411350838264583991009923032693008719448426734913623642655230483971140049773947276575120411810210884041508447008951532991214659855889842234265131124950780234999737814974721843891247276734378378379693009306686881414769481591901588318071358273013213716641502108750097152929337927056501341699887887906870353884821926343828943910304208782601390976966741146777750539538320253025270974036921612743039421569074263606854623294683259136337286436174581891839238820453874197969453488036538753222365154741838460088475673409999446630218986903554100633654711391487116744045913263036859000938858508225284387928003142170177281165822873862235896381513667864669441164184042223086447886793795730547990568165575121337803429793453448645418766929276820653475529299852595824284312483914652277355023567395836149547479527545284157627409782394806988760365539294282961608832750578221013885080787800918702728974204094991646643637931547618658625886626259771359714429677066010572073696347152081180993252677920037357108427343246088913103334835478867788950331251132828825993708294174830226449468886041080503429756628676399594776125464163082399993730377458446618586591426049098681317052078434500464212432128625973593726150646724872576688841489227912322283474228809142588115835859998759776055653539979450409873041692079602169261101885195376095099109952637779994119407795701022834662500003110481734797812888207206527675580245643757362042674913284801956583758365217061657166826668222501129782617551435882867132897779303381506071946966718849369046616089473216435897952343717792151633836143810246179596505335767941786479171551033997221172920279367613423032599692409802208088487106502701031873343080312941913859565252447979598986804611257615361643951837116889653960939948541874802699218476584919600533788742568215371637339432276808374548656073633240566895092620004502703021078130089463205227125332776392076092554546784126487349050323665046750723432022984814249446828327035723159264501267345981336988893736941130278265190896820464361415157179617796800563426870145218188095042406179741438220757698268777893258431197959849252737778293958412675581637922871192047106487390790314606434315164739739655529935337874965069617809014237932717452781879776548921993050825034141161206169482697029661647069384035094210082242246659883398977586089222739559111564414527770142392846911327464346500270119415463760368202038778767834417647806699501856312058277420799970804183216157472192716556497655344571283221056734155712063269792907506279832438449875152712954725232036092890558690365821755753552559194203101779437309217071346523723567782997312586491100277443714713381307431784268674527871074818988313181705065667040860375099295022674614629851902849332955391318394091996335055487774409887255516439109189056441435736650644036666375974666747548491655423538813265583386224610416575352787617085928519374592810243510973931971404327211254924263607078582489509311666439370442066346181106029417307861096641175154530270536023670417227928499470264921545779699109745870056117824700472539963196469050719971690006817519923531654414815167464625521275934700690577652601305963365861307624217996769463292049390712563829523454267457214244885419762691417651743883957875951381981845689053297052294730493759530978290849499643344985214559624686408656447189557832312128669071743032626128950531536901500991663723774882291015669483364354150220922636569232052696446619269949678238272209231116428238259711058625454216193109012627694601902320987443491776969854509185619597700702081863419684311763265073518355629647285958371444263541262482807526403381862092948542904211656092570820058632513213779752668801069765803713218757935638868675811301585905232186764590824433925298369236426929424010613639558349916411036935558579645596282263448185434334691196448198606713142102283680695376006214773231570910060498429364985007695376188390542109402385099835315328501562228330455823994568472091808033277326462231276512950116755541961519071865395297101954526800942361934630510093795603517982217796174109907323803151545093042712073472233106496482180303556696219786211925234640090336435120195008153961405140883648358788528425568614322651157604412169426253150778739278315598818824921110307092225121913199057923176062713424784141172459657839095175735553577312629444882800692422516560179947979446651198386877180647472939421865385880072021166833874551403014850369153895434441299853033483077086040906527488724618697694752248850816053369567999528771496277312926350450206119960512772403997961845804779544435545962401988332224818069888241151581668841734033654748495696008971104821190568531588105728274027160452473068271354186856252154498542039852698886625344425276548360981807178942773139821214686697584239770578422302930463713338042439535047044530790407230894239203862238868343393491340800090404244242183484949931489380243310161268370106363201637611681488093951379971376947329713479953414089114786282967344377405700779841812071645914429289242112224556222087049471950139058253488421620046542374359117532328553645533922291091882135740343781934983438268323630696469042972699125791880074362249315279322132593984069894383264027667263243156025348013195967218916863477783132827821560441368793178623366709782625337004936633003682561064752413821817431637778846122077302109125503920446432775294639197187500623144532102341536295861101877612731782348138940335449768303605461860217334721266972509822104827610001423583744807540158774875926436086572116904028316126187591361839269451580622711725532351203133628476144972396743586043072388299844741948778497504583857810727862920798144282574389917298524209742980408508644216790281297499422242165054521491038785097246583250495913842737089643730907732079934509895301195146459398439617630279223571665938110784917335727744357650886093996026562955896541488244376169587091203161663747911975511566621142249925444845144057799429611036483878067226168411316470182918687790071718175937054464053096066878278732952501783362643859933720047974679129582484411767585475922706546527271972360255419706930307913241568240441834623647252052908104462910925735395729242882301797082513018402529417134117094319515393360162292826054133404829981077037680940282424643270965429368287807961943601629862726439483800322595051260722178016794750010767182876129280435487247497458200367423379561674746179969388924745008391071339115824794413580486724229411324732444702751955159400965366063108660258994148665217098104201487539058693556551023133426739784841286208687741071428126130293152839896167779443618014475494298828642287193489283209414460910354397029138540187598189603625735892015224864021095706345321892095929483059839427232980307917611312323490454228140030634108647378449559322258582799039057411724162675757337149830444597589069006380663017186058358027972538235464262679116011943498023733387966229758513512195986701961603703518239378602703619285253230385657144220667324683644790408264470606420256456951584093590431349357974252657972469765160497016368466619513869676013515471656933228611933931215698996536115404897894994651135607923169358387455477816722459167265248029708062304290686244352154582922084003595324083329540612410016013829092086449743932413198043474478669826969426001385029465782860729921713514229895831081835958108438716522446216461212298769234414110688285871993245334494137874628927953408496972365885880144880831381564328024290383078438827736633374723565635413292617146942524129839787413963337117887817706649655658547864924868735445015040171237860380256978683770438160822947532493592357374546450026517306514807055691462456071007786152149661480966172089811959369833133442053225531999844736129677475039886592353941185264949959978430634730278485853827035061472336723112623466616160416066202046388906118832812970584012692383371722645470072755495040651243256949926689628419306459471431799674791659393024309717585955084788400788413616290182427742191106774157362343480593046394316139276093017313189029145346272265299969137582975983572344573848801137437931614146816999329230579167056079444288310536885857008030436887405304396066174854713136168742837718481770585597406316475165147068876628469523575234134261952354310579403622393373627593155670987330202489976696313754529067868795940381310647024519266274052214050232941222598138655766136332170277969010257651617495480721938522742351986583725994716997417405436780665742453762697531891159219244549825979244887258684126109765494662835628621062046892341095528827252181915190838698329600009088047002743448077846113207945178287375549696029810626558624606931061018275482422690651535445756661143392262085912470782138903608129369721784984373934711698049554689899473655349025127248286340540442384949704400016293169153414060445613884355372149057186989339104363084638355493053910056253682339647719960982687884539951468697359711919953419535654583294350240853429043471527084041459343214142137360377589097879474890004847593172619087520703323857732900250537892375230697915714529245047030902787122662042602078044668169384137953460349590744716473495614894806980945874370417989008363578959151879828927832175917620471161471071623123278924298588981584365375328276773749002539347343931141211781450769298627532667871956565753987171478711778084560991071052264581000260266797383941036501571593631796168213393594874706127534713073763891496909836463887755741414274335032832053677862485168078921615767981927528770521385390709583554370308081479662283548100448162868335277399846120867934042570682243808515088949888639091740770316645040313948741152664456731647196809918065710341928998017456696386500778003437215044635004113381528515936118089591108491576109372973165934341729309229777694601754060847464569939974227747494120333337870259330113921065409736242599313521859037324984981755341412411062719237445876425200946566590312355024809084896153163083423112761848588683267849140465172497335405159341706087370793778296505382108375317489879554049839756318376238238904668225314186631495298951282128635114895152581703022385900132326355958669123785968996934421278752548192056052812282271423389814263984655739833763965231214697126047555533432170680522308292738730148739995968221849980551578769767310296281077979767688166296457586776324754713332959148709170489959290286591894945356841952383178738980095027803451220827464544750398202960703140071165808904923667205904080523497710188692502485785059136282025156324904848871731362186823469354315074329851626040249044670602868773379663699331336366786604711362671604415808507115519175179682899449674717492199201071065306249242657890636732581668894813311536240511645742547683625482247246021562265880901037131750724162731189139667632609108499239162001476583381897815163694914283765934887435560545672843446170894733016141440835884602878997265347037075019911017831337478247506320038893873576739427032579211111653014649135404041593129338227709910859347780815935513693961639242684326294964070578589130886297388041770071570728631434102075834609273301098970451848349661105184337859567279787091006739102406079603036844650967863568334325323092405289320495133570032075630436845648760642046419761738602757058872303300190703691966696695035018943914257543032470504412373504507870283010794610913943128554060805853212794244796494174523725279849914279386705170760857625826583806450060246672417676822570107898348962795004592943330559248302929085951926465037053806507124392647753283116745018267652377898867457088882843849701099313657491777696417333038141093132818603771739499732271779764098192684635562784535099290106816134870372652014592153653351277848936489675096157769486188696886352964708366986800072288358909611474112491938269341315871358743250049146044240009860256550170905029777153103830260832404183064583927630464647422832534287150194690227643397835046950488677791645303650145643765376782045265823444581627960414337993052293803270981884060407525830617811231663816285073995329855627965004399492245291968486378824975820826715981676192761476777262545628830067524870164056342657960493371743950466356106069111098820085735054195054104849610178884201760781269021266144306005568490386278532311007238603831746710216242225117117763448583095350012173140410351297449210392924806306859668860997136812756863026345357579026873852990432507745827884379990888115395910769734135512075707285626134624277762899673118195127258173056656282312793645311653562417671639100538401763088796893469060403111777240624971443390920276911036732463059336415274319054150745971758252650256285306379359628763378347104909682934864757316411188248441624019995939321044785057330870320271495335618288736841589895192549207640595614918736651868952830561653974236284891434595865731820080300250033846681513990745487740496326599965530823379593857812983070176450500395823676190373007002755914839059066509029469747215209909621094917767091919195684632732896367459903991659191428496675635596840087342144130458919867176987894491408702567360501828597194713003807917466453897344609565437982215210700441399977653243171304975239976756424111325027468785963897633345508994571672911841927778522073415018356286913092216177566292353550577921109609351768393554300455452524934068800550822707965714561264658702770091104626958835635683344518241722146156362233844212234335938188784475808606384463923102394480773905308914811171425242337117289949811048506910945883939471086762073584968064114628540681991138430609901626489717642034626691879827924456842332653356427719089698002518312057605302441015883600751696033063683870660399737843223913565800360113198043936281829619944381311170050750830939105535229302039409038092505536886319409737777559791885377789362515910053677710100130756496301266882389289148830446865759406294732070814873749661433849757974271285826050339668061826589312582368368512668103335030329554914009059914215493065460451387862540602984186030731109991166024533931025101462338677575357082178604890530157470753245085018087569648918063918982806927322200806488538937407007469154174921799972726058111534823760822041146903153740101962274204368413138694501932609388482467544268149495626692004922766973195227906752311784912841653276533019538886458986749283199649441140575777900959415763673542455737579012799340189765615203950946238492602105793747868224227466618481722838717390929265050601224173691661229174594663363834551897173246578201845807779815881514655655023693315589871642751852790402426209574200669430509027614305584137655013639414897139976266025595429821746608471914586334852901543907574294087650084596283990454997346418692491882470017286441415709458167380537111389153084155580511092619511164187840399738914302660500006477678339094232184353532455054669733121049809405050280235213025961925145266365974488215067590222749098969821143092028344279349262364450712900595545405645788917059387803266616263049092789237489881150072551634066907962332958683004625861689985018205763458343839141843269941983662493362363787298569963234982239471298060156381035001380336228973785537168496912925874500592495639223124772817188667907469443231921609840008627040994785413881271946047587973571600602298043517273526269812204057856825831893610390967479018545969534045297936555448401532004290211162838712925542370612754214336616589718914694425352394689270264853088707131107012381895957442105071224673768278560235528281156524045440861249337455468330123601769250682672668749376274123891610129995877188863571898349093407578696244313299328952559493374446003701046908200607646826732115808106874726790747390079176143391323277541103168469465629280203142552139140972221028494645361650574869330283107670327589723174552825778339707914214700165386687405067931345047349721615045115268661102201084549213612153378291845437214041347853137881815953231780152411045320213369663220801513133098867281714118119387314110091603181956883509666045178442652187286770259364926189701567077058877575710219554637422996266206636300412674772867990301909011397511491659915844719697746152207542498953079152061895826821402405421870198170629214668579098739906112013865724283788311217239831430555677645845726277658127542117638787302113483652346621711312890592338470465016360443151504153597095414758319297811514234574592447686212993728450331709099151748495385397767965533704884732924496093200721697684181860003437847507690641953358321284679386595903368362868871841695580392578630767164391199294994425238275079773009475591167866594395066954416129763990785588216176928597294580287592692179355016736177764549421827730926353112275519734436141297988447079425567771903822894764888357572053836230101365339061529915282803437595755364513266244956632383989260375994743094341672106949147967616043395632132361522763879581280174938310802380838980238295576160142878142774219233901729344652622382959991384539231598337985612985875593557739719788205015740188611534522779626809273572233168367165829692708540163865694022307625128026689663587292394380732065074466257594139635554782705158404940337841677014863845227517256231947266314681625815152535450732527883336175256293005501128296767573356719636577475573643444425705738210056205139783696613799837837187340081061968571371588541148863540478390638583519343030958118621285314934690180967948440420421377466955955615796249719576581966212150517295340214141695176581475264189085439697237217013558856633041604546967207215684833213543417098000538316987165524985559033065966751736969301750998478301113019527213005218839119467919698654884765554606112512420817491851168360038180951901435047540355127704130671861572574760244135606518704576848583232455644764246925304570182980660019979489627642396642770277111275439722530207519614716301059672001424256374641468923730953695989989657036381973585064635228626964954428683157011429234981267018049537805317644492211865523733906423806194973995256476300685434819766838098037340808489085087202313747960831151794730437999816745081454964565955984449672471282176928885010235110547127707990104009340871155323856906087367120865507523110889526134202587156566724551198226069134908801501828896212771475772632993984741344522982262065656722615824092206786394200721820367694530595180746155490964118463629711635179001276764626627036687259962993971380419524960386379824758324222278867397336705167272516274153226297956089335957492668682579891436152187377625014830484044512535478929626411099663884753380011625248130502746860106431081926537353091177991143766944692092670521061353582732620335323548723209970416640862769782070087331115722536921953099296952943492719677096365127694129611301318447448973649930994623789164009978181254952888010191903958213771353022256489158597781322320373051641039375518697646037803162305911195837805762521294063503198938741418988805819519911083004000655992071107356332259818525138924463946600421304707718754907474437003825355711254283404029220358732094448302448037510733016137119742246766236204702960751202904941431231001744190095884256054819805399979191594576806213298435392907862745385911061859705980871333748483897557677110307798379832021413264854108027231561869601737005907090461641138716782827307436733795343572718724062170827894271511581256440143529043238526080973511811060617954116114004613503547035732940518954627568203603084867234591449580777071184210827653635488385830967488569267748607715447184194561081279257707172097694253499127771573098879502964912155562361128031262921485620778979551377358870167768407252575307972884422846161097173965225871715601841411875392115144105986819521501047362675786954021335073184953016777415408354313981707205171903977015692926953649327491514077757937130947479532239681622402489325127624542367288505985655535439649714871784181888002074073716868563878864587123174672643714718304020618585386838317096468688594971531174013335538831971155708803267791587188676566242434387985263606121156249408377686392745969014413680893668558217856218547763108120651747176902180473619439906765258531135965237012791197805375455605458460297631025637710404408758792191453477749616612160228015920690541405870704253816250290951171252007289058597690254202603419814479371792710314543751236951852807299570703753175980492153109475799424220285875246575839520089109701240014259225057360324559437545626460697618550691401123893214789500660029665490020357822121548208668101312702107605733838030093378906246060597973437867837772349992884329475473282377379927019866893381630396991972254717852184334977458933651085337104234136286937848441421511141378144664423345838446924869145900152455097205628037361805979305004304747797183929370089206504231033188752370990405485209466688463688728392320025151291559554882687210447652243316586943694531091745761841998989757450688233558941143438121293739133768635697577727117731899865098373650437504206672082458938309146305964984567891348419998087133078957270785622817258045383042941308765990651131662558805716923868555988104744614998871500863671487975076013375360686303955450644411073882170819237846082577235626699351675370499010925884862513324928460913452267965737144662818356734496399848409537766535195898456825641607213030276708244889188255150740981783631911225563083931382351614543098776854732609616402805781512249838052461577136233487641607977963589664660982169359027307481027838276295008896331476999814124712807088822717261971808984404720495579046651595754588977920106500460317640834051647589919798340760669403369965760308832521460192497066521221410366772979587418326125817540871120849395624358093178593278401371340939346943302707062202631648888556247307526048415726949174104148846427589240477054507960077482261692000912673494901128958695876508879680335003083081430936116444525321793475817364275996125776988984491085492754123668057642385525108150810717138212883873745924517659654219259941181179894681994840244237720615571575943662994835697030939854590911475870551581735994921912815699273184434732074068184395362525621726388929509800758608629881289493135488295852223116354214566285137026058060898253308618887441012812232741972202613310268354291582731312783904196708184996335909452949089638446987238120959717540837882456901726607601318715277465721718147369061060220417310685172840357686942780210088572771433236121212319756488596387150396329846772767421277949197405148007524820837337757115270460091268773390068166186468025691136166299451121434903680368163641566533601474379162871290370626513982529596314818322233917834527779877820710951678145466518585875189068870805066960186505793060351564430087559788190523211509330084545479408736079755906421170019721227393758671049980575080037523971660247745996220532585618896537183652678934422168322891734996436857021919355820169818322760336252605099424721029460498647063191849934167499466108211712968310932833540605467050615389832306531717274643145312876766868030858066259828898614530442943339069060684728306670929655626339734085155115105051938239134895950531257508894289357655204577907370560483230697681180831479025174505808734809772928825404181893532286996634078232104172037504049980967455099188651396204592611145648947518604593175752292367978777880301189087439983948348476553458425938489516405654202949345514509148348282670853320731720005046146604046713116169871180173412287630108418992381649997709384866522567699543471311304599671281549186489527387182021572390975625305025527511094686008380997535762343542805565315115016598782726799628296318204302121689168705912691209905546221521553103806998065100608976817246574899244893422928627457406853688402776195069708236698954538223776502600827209037188007934141719669399543566898720399719041825473499508285713929484930478508729269494650568730662248411998808256379179606281672511260352963719994444691385168230517855710366787836024720885315030280717977483473240861328264596623705906215762662298118078189891837147595355224958740604142727855356733656331743878677379404929086224548753938370296642187486928996121245743989621898080313099814993873770550860808898532712261150747548175445779924463992176180161111996886762262096459339767923699395055961211913506009604307190460892363109790178798272043619366126524879078224913718861667185279655615793178721549230570819799685138755034648978120310574493631096486237605991309081017119067941119625133760168785928737584326564299567719998399362323014198152795968422285265200180736738282439967442038621122087008879338830974382307741537544728395837072425461041282574280409765120488532022759180376756420629598928472551764064092423111830577969549374547893922255852702982288445613313095202763657025277687309903718606866409661442861495855144201959775876789711975696006121394588528653311255609116040958879485488641677661483397897883692185517709002194637567659624961136962597659296152494746959095637476557174825035292655134253140657709794281117556508143882571039559998594778665470449273452140239708949786274699636988327594889930432470975731943166518833353430622601928419829602645839650026475507133292167541166806531867761515298979387528147639087749552592122064146707555069094032613283687055423124520648370261597193229012547946681302615641973358004976829799982067891243293524967214355421236282711550417038478952878466461267849340951949384653072729544789563336785017514305843515871693767161012585878772762226554830990242681894796425855329265623111516104828553136535393177460245003930987144530686378302726606508216981168399335163690221318200135561427122543198121525487799039632320760517923770006500461051364870407996543318550463560840555295001407623841378914763617895350836974118913688763913384296129352681460638929482061975644792425653319377569308608677921421836444207778131771359936231488318951906320517316383300637753938419969641983616718816327206943505212440259031793298594269700408522321767610974008988963653821498646588010467224993839827484685757017097213773986522208750048536191689690298850701109204167904433145308188993473705575819200275289456694265973106656677905790910406628109888712594777963826525124812143722337726781868973398134797858865887044826026624081185752432260136676997308173455844512640383851134433146594491843960450692781417389623685935426936574115923324581081212589083183640749581852371063841651585535324072137056571995380003860718668111838174843183713377809516840179811054967064948896987414847704031466468745366716239833629494130872518471281573850730385611166495782748356308108528918521318647508145423612103851723972896244267537184161690016464520096004435073183705514611735576897978512555735336437619683740060778814048865845895128633028669535374008149929008213626684506186841313772894838214004952296088449636821169201860926683135886725340065331666691413556722729918287466416568524979003869133141108316304350619800558431213562113908993074249403617305849100066896063295354470208709259958111545629911444340239125588768172951656049724961009835886196147145911190317279699943885511027207165603988737576171256120485368407568984529952617592250961135236222990389856247026014131925535293734051685035290666175743034530261661877989541407144529043938797776159941311652855852003988414423054214236943283512548372789389781534187888014873025007982765977393358005573943092627561740857569624757496024071582019549594041892997826880521665193290318375257787781004429992149536569701977612531445218875127771859303999275341422536494789500929626332874324460150307586494996267573484076311906732633388238435636372117505652484323351260777655626479915549903480582078969559286015452937351763871258119478010331658265333499199481099869052291207516416492793180445905066738024116715325210917309088170036910193550537219584020885123998659280096380503679619933851508925157818360955331133730101258338509363124554752126731678475597914431786331086410934875763106928570648152062194081239472363979475866109064431956709296846403723738149855848130237948660948967855451536644784052144403233560370838391136497922399490272776393527430140844263120382834670264265067458824946347945847468036544412090999026244307158841668960805510541349527294356825827436586331391644340264948939103396859290786590266469472877780754262001838672472844139322945619280267556193164200920298671229461645690174787965475534567004599525556161637079857362687519221109519562776247284396855047889250405077717621281582045380154621668932595611060318847223359450188796431106354402979110403455373344553955579572635401179004441082109068603878171352575115066853426154645565976520908948103667521223589656150627115696742304998220195115152866616129771609904931970149935296962598177417769227620676079961562286425736444970754425396000264379945044833953076897629056549488782191097660057313841838868938797743817909244469643069407565841738479670041465319340122552188414123368127887333060747039109822730182144478968272555472399554991442647724519335093451015785142474568317032623912611571729332030195692867557928172822409273053593923505240102410743089127646175471503544898545160430703465273839150620151844102591101694181766925163007615383427678593597980770360062745958502310030353802683403329028661040960857010129840342351535354054106038121163055551343432141148372125920416862380394618891024506697703672738811985058379870491852606192633752684646607818052119195765558288607409599877288170884782325333101096448550621303972223945226403224373624400524216985750359211299769200726087166413614366201447760318475436724147220960761215056143221875133767650029388957111945704439782632735513357931764398492387360494830896261156757073980004884549991509044041435903452212662512217117897283525712120416205208392928573119104949778507817805993864947963387486703010969886939917617575339572988204431387300504737960837548571247211377145372426257257873998922090868299205598939939688306858952682059129511933447594635730630946428203848862118322914416176633958450402427607503820656502682052930212504663815038733914072326675989195909255350912781411692029978121963129737068643475654703651941382949276638818178852834736613566801879598437338529379124363746432441842189819492396717088975627942859554468915221145484736218837780074799223431596434202111151593673589081859384550605263270216249138584558526498373139050099424732035438144377203757434143670047651456004099287830375789802179193470665498193849977792815210074776287416061010960087123230809818722199860212618112181276053446989120503024204880440131362651316580686390772213660401973432157445283794655562113900872005763246494492424100082132627497549612755523376115125829133370143376465169601359229776007233908538629465082677752542329948331097490076647024113001458373488692268013783808756064401958877127310946469446064329921063402365131573254034493723345778345556112716271068713398496262691665237207498827114769832736587586592712702993288509886733414104907251902430811936890549117102158344103791208682215163646539987078890669391020776594369069294089905747263071573912427006239685116314409436875813505276263253159222560174863760305734088188939173241401665833886374199389762930479259065859718092039368064739538945880570180620710473487597478617921830110903519122249308841546530326581636844148257766170455829434492805649316750428490012083460445452768966822586732249754198365442225200568534893207620809273055211696997093185828629527155650012897262640103464274252693801194945308331960893037291372683991992828815979845350082301708823044658296762188168145086516735339896526786627738021640336968721277595408576579051136878929057999635584874795897361629147634867433252917673013307370019998459672653063355349219277009691391040028248166402502347508328754377940821021204739657518124879886904692896268030696089712584935298955092196865577392908982296000298720375307732455335443341945076921016237689906295165909156611998137851119214057650418198426853855233735792612696047420620114811822148571372624095159428506741872655586145567588385006410697241325145621218226867696374999113361539274128298263247465801604894949696304158903400490199995846490119261225097162067545900176131008601130936462209593719800011433750107117744973047639048074002948371070273768481885820972292137238571640046728020474050155350589303028584293721866093174430282377398636972463545701860939602854613597557765230342406574950943763007832800912672220031316431748183616583042764245366969276560434050076443994399513671986209556825419218510355743851945478874461372639477175169970583889480612599053270339483693202297300040805917557774253122420813485747226217210086556179811742672211550839438387701851044568531069125723276639639976564038451139078722411306274138757013243093432217376228530935180209451039975189187408415977403758004303762630908560108621285536431647132496321630127339794728525116040754421418447626436247873785069458734201036484039274397011980864663000653211808496187432771076769329562937619431889115874081974920737947618003228177132910049545556835555851187752600234735937639246260886039867183058002587007105715268743540799987307446585730283222970831404271368772881520459341100255188294762209927815574997526357098764620792838174841897324094168925999676944075722169683627336857973448360987839536057094277404734528358912425852359012281211070106932191102959993788619341291720453372537163421597227269913067092217057623173171413965906185158646812213135406970522603421062314740527791617189882605594952434123014063839382964200618642170547665723506412627128578749080579509263162325914882614933683519096288284166829506569980936808056094866190230609216990505607925430254338756569535717536137404401117539202952065154843457440688289446734680268716381936049017848829988719752454055389200169234648120254379193350212527031073788709312028643480182940485993886470775303051521687208452408428815720586915310731828895519982559441896232379299581740135813422351013053201659276318121214901239610181481283880675718181702428965434307711173897531896055127150177032239955139079893778172078595616682958931664765841305632962036959339437756282988027371859122298740054295229655149141412477149853156668076022150035592212752356080755595677393543734719281855513419186946718793273990738745381327026903425117323590276324125017834437527620896039125968277068536143218074069552239044780307869581434078531173615842422382988547163638562528971109071472642058923810777896800923635994424779663397451336340306883120216423707049425959237141335369811424457864520180954579749310133304311677156549628177583099827649031661033342440473132985358002352225552326587718026880258487555636997520814823619647514715968939107799895164110760056828689606439374316073612865944039134985854280955088249879202615110250481007638222495856617973688643186457310651247407592175039135132764390928544316811958973654965274254347753351481891080016987159240022356716528262641859202186135184927869035298239493350896900011494942121907772428370746509257516466163310136008304917632184135865099373936593491959456644617210889245291456293410930001080478204641840784491372485823105145066190161578794869971414391262349892381418739116532872754589989722978572357978429232684915742268952234676875656343944649162737417269210466703375133225879918860146911837293826639705863307075241165937218374110877502604760497575458011738817132190696450265918390947820064645692333083164008335110322568105177630869279884128913074007469644000666333345078149947933191212383993508024123589199903038891453421194309044137862468024770450694538077494955046292512409497366767033827269511750507310057315883353738771119216411795630747344555381733789667115207430445763059027476219095199839636870808345004544171657325184776824886531641781690580883344898810608901493797706160240035083093592728919271652282434335790185130399442201457337603725154721868098303777402775366526384008299109352138583743403818766567374728890712096627518177384254688008066200435348720864228868256826525231704588827395529713093708805768235185541644655981483537410133562214079129835481590127309019367342602564933148802871099947604554647151866404711730424188929543127960962439374026085370313114412738722655223022196616683971891847351112831541875474934777997408647086535878466315351474561271180801378064779739479400210282214127583019450890618800068231530961179690652219590769755341653079733793019314499321454385315173319240683088092899041338238835485833628178064205653448828797258640232070813042072288441024842283834660863279388207873684703350103825164718785610942844353340117124064000359441623177572906631371831525561221599837923081194170325692863091219650027010493010471063780014484909902441159822437381662305887385287974139958873072386809141658710013658556678478269338649314709372777643502837474295640919084842859695562070351511842365815262357357379367042336416536232319344731642207536449187534418649632517472941732781903839847807383768891567593294709404164467185029231139945224985840947937328871311834744781021412163559864609670191267420135826949574355364693873598599516918072323533006219002056878371870840346905780545441451277127264392083116433905940195652160733404425383803846081014152534958235740305322470714011272000641467675598079820000257514171660867139969289106949494518596033080946162068687860124417350924855276196230592374648918552492568636829059166798890833197859257087417544585865014195284556612206531977568192420953790358997163849001427299049137216667681463207225221273381184746446544047297874348315619939286635454361055870437809823136001749136622011692801112191851502767455680983356343442047588317554730131181871387222403218764657746991246610616431487271490527620886364090456611417401631855870451292423070873745636109879452179413975931196521666286566252475689542277928934284734869066066034830667708695943160552615842197955015704566949797446180098671205998176535195073529193223177411504659785895677164506078738776896340791609558524476097612254185932571355271189585278371857567477371443549768763751007906017131767212201069363580283701089548301277430533547099694568962008198825730720271990515914217015651443325408092913744379806099205319138831026077473965983390347692427532376113375070329955065896373537093884369797160103204001953850843255396002357748304846187066039691510049975115646190368098605176354466577898689492274461402754514487182606755069138533245592529059269725542633199124207380123847943572463026487137406690866724672514621570900962159896051636555396784711683834155197618089922409959412404625813219229121309563166637327874048038038147871356235316384975750903213976072043599901699553483378041721510587849306168787582019842697065767858678027580543809428663987237017991357993248164002287894350087905704728157286034618231146392367060195061258292044183716762070257031191589217433929580755583420753381496471209339599680743690374375907965471766394006435644210648781355672472598068142737232806997513848316326990811652115123712539071538161415490444483310568180132756155872820244225828110223790357380613524410695843394299235632582534258670363302964646321417547711157428399526891456075337755317850140135896789604410214343007635438322289232741028526497038598295636685373887508375387662449178667039254869953755968709256046991141591191914189382734228440462144999850922024152748502405966512125488091833872435190654726142587538262991624016603589232643521371203513596372100815372963424648634368969262214283452222611250646605487680816377942285101615300789811186230113097909714158379969510183747386528983191465086789914141585829366471423910108406039656385320263832491327957081217170509478157378369710466512827272551847084646556930373548000974369416838583140517988798657650237108077330499754645999554692251667445108371271577028712628250888685181460320019450691257458612722223981461715739733385054231134288574852370256950203897222295354027903010558218819209279935826401564797066859310094872455965094084992644539095881110347604141996927397817771937331711457535723483397749893875385797434381305318610355665247319532144505795048512471374828701872438907615764220149188206626554281604984014819270506178682271694713760019924912030060734025713935420705011479487302752926549073892547215161679306019794597405664901880839457650081381684732738561415657822472951383222082074863093924412723539056456157751948752200854886336670385381769507078639166464419576419632528967394203923370662292062460874766398406168123794350879699112858206312901621722494323437051392644350719713878090964390314351898459665937965828187837067828423093483978999339910885454098542607369711787261378587482349921586068769992925892982850819782980869553310558665849622663067398350929841361297201575184317685577763541472507977807830701965897576440968839271305070048795071822845765359907102333498710559154357431747450816604511739453358703619912409056573064847356479061992696302242869901001999751859527402906590962918128061385599104165089156171732948946373995520365930974802105106589459825431025079921232367680343425226025862371031158793358071096398305626076763963239360860864984425226043885942624716049768699659800772160938318019495113837469557177271159132743000893048494320209895321558686752246535744910912593404464631482833810194789915319011912040219199555822060578713946709495477697693367661986114778156799481794071656754130254715720165076811500146245805674906294424745034351393135616674444261762300939912853065316517257749700562302981549495294056950909798755096402926385410744914307746474690605411192562924245265267013222303673230865169998171920425425238016477383221112902484892845347665035685101839668538443191926886032424863318141582272522808764176521879937908075419588991132071367685022038877894343554301445652840922694384196902496847060915267132722935092500858677759814153898924629108728374329578318045293328730074697188794559966665229295966066790380647478625579772866812667907199632071316090190044683604831243122495127377696947147899686418808857025801149022608379649915551117099617560290487769305993014309786041559259426937726166490826488741395707494612929831343684177464049160538029642996749524494065452158253143708658128019766500961889893429225211077824700711639163010302376819665432073834631752460951352070996961695636392912337001880542270218482392646941798777829025921346349338015920036108330317083958475188395858015293291022525780353569874742040058336599672122843333034262957605200899341249712562507683853709676594285870168942425089592697517771193521572559705336005535679457872722204799937281405543293144275874503969413233960109557624178014689044188031975325789821281958750236396036246885913095992886000914258014035353646685297301219473129727566599821816352206579004155967005795533391463573948186568976051534827368823664827859144827151099801650379271784136685198527391609586509318396286844038843377509239973906930127584930720409804445643588414868312446525727862840380705092712791747744932773497204481859369688116669281619780503457497675053620402886716327160573889680128708747480640192258829926545699246851490401726332146143149820410289837395586555541216031539471409239634936989147762680483234864360999460764343471021047087950042372484728599313005018000186416557332094555248060333400083055236344380625938587981189869600840807500258495494854336892542057296496039537696002405781131157013959661408569089432151274735623510840522512329987806407229592991006967299798483591733130221010612585006274885150221454763868728996851417523238359878878295072510559277245384008694186169667794317914760156900212132287742527051345855990478355258453933896723058758202911831792891051972170500879675669849133309344261830315940124236779089145524078030696716451502396961545871530041984733102787275668800331668995724965209572218970191946216880171060669321064152026889375256571026977965194717369191392477085791547976367064092156741761644360555198536920405080640664207180041866573713728373203844652458728067999481809558002534518521120265920240264828876161172982435167815278271500580826807206940320034569138820611563782710089497896481665951347584194989640851645389888137900961229591812953300417636964053069373558488690302552494297567867472144487238773546706487071394283005739965734675277746716808680624839704606910646313336600699319845094696702966024639517284811447998498567647369982727293985134241533120947691870266734985411795701359941834464496905749370218245697021108597354068734766264958576666720610059730569803154541898840329228643130141218777172262805261933007343149425249350903673080375312213176071473535362816425161817018477713595604935769336295865754489417858947081139035838981940186294887793901228439660372726249816134967790641261081850459724106314670694645380108865972981451631239033415163116251632104678740555896221853986157837613046875785071782288075937930202571634088622360186621461221079922034224421176806391446724287363019721718070044454209162639707865452588035655437404980106096427253676617565664638795093932536813306925457856681538473364630907668946415301476714756982735246065826685249370108521387425107931626745603971644070240673716236142193156401137905890352343000260943521119973822082574249322388021050802013696593477238161178005370306726521865856754566071131379763187517217526398028154949646100764340447647446071065464436752872836893234436010300810176795823167209055143222229672778758934976452023033807354727398573281445856019632775442330738359470369916588466677537999222219991911607929768136351634794048986566320900286548534373591487502392710030070358171973423249787752290527245998367730485955869378794951727813092419671626781605255708791860877248050919516651483062869018021108538828558198354278695272385561645976253716306741963479090600566140215064039707057655885345812090800654419563006724296012388962799108892101672355501417468273412679014015376871524819570654944741689043071407993942432360693876606532225786890395717413246486615507307941916702764836798238480661786243769326399173009525663621585441537886882148153058976639500757777207937500024383916593826669011899406005712490339223988097355021494966795188306317008066982229579878893000922226486298310049620229727675956253176819989294762263011362712455375276077583851690714585706811251390892482201565634131032534837164349422191738513750644207544903437817115141296095598411279779529935299811229921186162223686807210875251136922854802806586232915391667367225256567234487614745778247528209142071596583135084225820676589916273463821291756915662159520547844660020966926092991342809411867187672316293394864143668261127576594527097101112451628009085194242355231971580232614501566988148062593041864788044340063777926628650060692609313076929538788698045901402561977684059813002709206873210837085639797725086150000159799910006675336909624998615733182360465632872257118524281025655471642511002173798808827749566789990635080446033961100955200951828530100536694647607503281335572777697316431554365197937800981681478176275559029497586971215195295042033591605046160428707534692471384336351114814181417136506458022485646074973529891733469864438099867933799157236924271671251064101181553670626049610810440838951325773484703713696552234779762390326858195029189441574748796936350369211971344906311300155926987926264915957778710012706474360986744612256035796416554187033213226598055018733734109778864959153213743626303422728572392250408500873983842172831855949778116486515714433631757881463657821312768241078713044250213013318055707690029037578946746113074808549840713764488114188086429199441698301094341390939902156266760944213047821876786115638191957604244135359960017020845613314665604774719180403957175821270921860706540869892063471844978429557157935267091596864348830683738060252201471120535176851165960501206809914135780544247214994434329709275173637504886086127000547933064595478035311916287511523552491515098158646397342173548374652872161464985171897823292940644363770410534614156834048394077942553726665519180745309334739139479111762075008226845399579769056780164318073363160854681273856857915959300710471403078623208590076632834856087093878788112678101197244522993333837888005514592893266785004510329884073233779548934879751321475457693990696963354552260358901548326853347028645260311002730300821861174499354497508935978366936194949245528926969596713835169807924838426312053363887864334826925678290741237559364443718503511001743469489320018732115088865418061277081693716220270785237245220731117392567631886413717375575911743671808280059028676303937181348857604104943653699788301204491685910605010340561480519580685887289661881982456886359794247866163847719335126175759407255059187211583515870339605459583242968147368251075423701926894912022021696912099994550150925911280259588042172215376076636223739173174071136351053475890526688267853946013600988680018420873049045765498687692994288124157653383047778207233328985199024152911301660585365737890758997228573272847413742754837278489818016066472600885711271146439604383854266801887438482967990049792320601262413532590988368454658369691891877859609743919272303449846079546380170854946908076166825658712907869371151074699171754280414917302789133488948446337719713535908337752902083390968305964243624476461794462014579497147540686090879167878405713335537979905830319274580809389999127884241515174349950362945635513776298536276849739349444393583000489600390319958486682907450956882142533317684503947000389098970585267485164227816841732858898905736654585396402096085307347501978317024424775019137971540911162785668900077274529001008544868688644920988887152475652454111344448463241066491240173298597372142152870353572708562900701749666956798914156839536814724733838150966171858703870556029672569636106295886558537228673665715235790154845725811300748928003492220518669461026202351161616462491636450262296874850647153826857443389628505988561200290580071645792084998309997301738169359303828214784811160750930484853638253391410613335404682544185931339623285617342514594576802238433691754643195634901870391935672303465451016800761914014163706963840285707881414162546573783522425807744563173483571642678835393233465704426717168757607163924292179560513622207693936371510412789400882379014993142478582733558356599031929790928740880326915439519409493508788650582869013530023282216570309796890540336448659920363282968033149734843593081100590283153721648843673044852470631635113115789756801064744004325284193900519321083648498507701779444346029282683707006678040754659049657261076121757784326282243758737376329690939697077550780917479708546240360843134382012112716666252083331714498871236526357411476258045354151221804872291216236827662010889286113797931234370151398648265956245572438488928497966552272147377333660255850428847958357400806401786243543997717293762961180508026360593162963379138855912288689219702746245474077915679902153234004882886441675638764731379700646544204043381620999252871586706244680898503459467432892625824337914642683946910958899792552510333051332672597203629255829211699349232432179168340340050801982152674518404121595838366864600913150869545720441935969791703491418936642138866767969756670171234892098468885069146178948376484001005325618109070033126944527049824211315087133896588321958490561137677260208770231287513722195322850587974384291514015376020851797094064357989367541365062501195539379660988477324296678514461360521123785161343262448392096655098978014802946030208507610282109514750947325898338857310529886262492533174328526193452061129969081974522559580055101193966703665470783210084299634151700268155858655778154685156589213406497683632885828402458845538934045975026545760373119594971659606967930579915208580871203307269654592097877360581742898126614750015645179749805523248919791567254601555981611754553958333237353155333678460396551430752659288750974242028611339001532097203066474109323166431174773670231186299662973757145148878037546294462488468425285907302422712784288194121306276362383062634564502703239236295767406563284082497256356973201989210668301240944516259067603072817231712263714718651677160470635102961077743052249341116531950779298213632426224089036987658278156907921410932019600303437734215534713699429729155276169464883094956666664749876204698012243854352407950975823864472901699588114278076194597875351336556253454285543643566843901040118964319656259133921495901410043066189369685859187857003399583115780844108164203918646441682960893729336064590969554751281073942368960698644511056399851179852260977009199502351367385750605794144526334217289268047636237007273580290224087723562310509438645695797852182905489663560782789235092696018218390644222155906977455902802539023144040331320019535511056844740367760212483757621270252059324176061541529904083397835961889449116116688256111430544799366519095155740950227928098622365045642124815157217468500051125887802365460020331610643924136783970506121982209315569867766849052053262920748075635384899409953388399760625039173841104476336528097098003391361640297868353866086019196223357869857375969692435135067523378735573211756991464569128445539519537271080354495595988677965532931765261736189337985617418861873470343970229887866988911333971792941168447309649331992377724909275423125176689605938908713976356279643141285759443340268985034179234727737326435531850980638495129121058088574758092388201490654793509901631554223780686726841732891048571739269891066415907628352421936806546922394282081716897817613809528236908667487225025691642150109741284991080107904561577555568950930695627241160242067784521450813511604398252381745929623183086709017322251430059927488511631157955153274487795804802720682509665219379591644798935825539428648579458571355985686366427880690196910492850717056156921413655718743527534669754416816100093308434611452763004406519960682138531943561634456394442285227143662590445384779204570084013376202464996293736400140794851141463432626001739003054948073375647116958110928851142275270594365365645137263710835108737752242846245991900523521758883032704172286201334845398331222494567522303034381945161761358623129067373561043026970097289548837402764866306852813491294522265119261498101548779994622879214004106339593202048721696326203662174462860552929743517874895364645036886045912306781907291685666145313273357329774758866724677331541425935575407011122577418350185801057126373047281159975415822192311532783400294316979459462222214335352152818534756147310769942059996455994588378380093723507019952078667310262167301347968941186898243678060674896827023907689224367273504732372920584751956394378866087027091513799435981364291571078132991357051478269300358041751797021649934297828685292329596411334791105070444360296749930770012151659831733632623777360433401283472506059922340022911188878555662946513227656760576018513633589452133038012693286448661230222020060674913154291863239467034444819585565074023227588000455138723343908968247694520248103573283427872669864359651537346119776359114000611259644445666683622066430196313553703834715171464992367825681096343081149156417304058299551460966776515348497718232011234472757455917800862293329974374538397758002906048935735435527861992397480582995166855062441029575515168436968917901756973485015224249915417865305201620755459406705525030337231265944814003386104116551738728642742691767312774220512214255357726806325969497817296252790846244963579439178189807236479072534799856790793095274159489412328437944473404094695458720248636229954006180743171695073969094191799755392263808735293649130802502143011084971274343899453821201159903403862622402288825662503112268080010803346534716460358036909031384086403381352231127197516593925312444932587355776105214937113076323706607885465804378043860289342975739238072294342858578042290679554900084759178488387549069092389989191947509437092220500348718629403689359516051032612355256200455735800516383044562208644528946400547096903918115720117849215468681821249052735288934760504068214653004131340482212457110104866872699253822544824756490523902521100511049713768764004162601293821048076097822757990395350712465091985966880130285119952085015607460247318265319388336924810095704397359860711939936113400082250244912989529921322413785767402870967235324932081215276441038252446570396026266374830762340583205809742543839276525641568455135025677926979293024403783652026561053440615085924229999723968857940916155987789613578810051030000817830819843171265171632441694198135932080112412042701679304045418697825713160163901677085453336325273803603952205193483342683026057387867334380384930527867425481730050156030264132030328601112791584747732393712803966870258242777500897334786879378839246408208487091158801408963289106084825008276214453723731586281070416160831805499973412088139897966822267431693569563882500942836335776162438118273945781673301908839682470663708027333353104069191475763218004847610638545262798032620862018759070036105307673613490854618508544528024381816710987122142201276522040011891911398656125611914444025392661564562178523677877452748616539966155544132286531491620148928699587373423766077090998516802147961707282793482503771771003408109118089566592117070745885882942836093091758635663099980285175982652321998849828014823274063256925755657798917595250995749730350568396355321417311940794106667035626051934083701524461832793977603738720545505126137918341953341101932260280890520795109559642539433724575329827474636518079002447116246362646195849910407002453384443694614872571912156757476868606115703304190371354495872431538711494747107627700784248699348857242944381961126834589081821412927139048478347392872726663891604846692680480378520028982403982986479212032254890558115189868192438405167013758817066984541186320986174446665537512123292408726536142118772462044902557544081578079515978930607207940679750648954340815772402895093163892168731376932335925417787038060605555856673875533015572627810295712316159520203566407640666907767523253559838423551310711854053005939027440621813957258187363698779706583054672631233602647348200680780075393855219927993130765820902687334012549608611749100987104269180025678385188075134765070078843577845103164402677880198892000537418168647450980971741579752417127512399091315457016601988686591907751420114690845447993585498838385629399296438577060790891333370606168176227342046226066124046061277603233808550194185209142094093258800207873822790221583820577345959610964792101908424213070021055640159932376545298142866677598185643327847560598070456247124854599619225002110306179354907528155690148987078487407910254529164645960017547463901644874827744806789341482139133264670114284656303770903391843050800140813625266504255721629532403158198309549088047718937547670166129474970615690281254200923922376477867051939272091688347033273517235855035071989001266771706346183362234585106888563475629359169009224915908054499197370266300592484047711979159666559013465143430576199954942858025999858757739566362988590010602320871595464350564006052389044790741021901286438690016528697512017181322082071440107924669689780043011743496015260094035429616515343076327622520075159573345003675705480253856270346603765285603974462524575479765174844488573617539085085632166765390435144596156502050399482831697469498492147295612603057569759127917426395785847951688457364443771146243980288302049634539865850141367720219433842440432108142447958205769019118672643497255813948508366691669466512303781122548864117186270348691779002354663251269712217520269639585576663439117723810366563796357235668611912347348810503146699837876389662928440366366946866569290502147405180346183584169658151585893973713210030313085271242029007526504507582583921574348043408318470185282206430608931196416951645580286606593157964452195952385351555272218185934821537806606037171611130224612055084972979336140565551084008982957615797680990218718834767952671742055767506425416056050114016384971298847875947674532598922121891209904348448680852669729142664683195112406645994001410086832259464304487084604185099113788516484948731863265912031256855584442561823031937925491530212372537452578862136521371542989715958396965178402850794990689411312357897473306598621739468376706507323291724857104481355387872571081151683753995122285937136968418579968626827222961582709565995679331613583588827529093065782043109252450490019109507259848283419368244651543205822447389028048753520097222908941007844442166680523080802963051178112609795673040098243880009160421621063942374722995601135818346639343811468619726520028436188797720764656217485453859792675589347395442886057607457166519132005660331686306228168045206983209718417770768035151309534537804266955757814255501928259805713160075980492579626293966258986769707949244411336265931764995050466281118814546837868798349586211111638279598194761421134532358966513174480625187394178637937112722103319554439396589014354029040678365134888363508688755559185107850658808596978483328182651996551335049291025351547114055174989756528848370693366441713207005353150569793525221320755339325146116244015567145703343564235705712210031322901781827815948214565131706807175724497596885061102277522086353854383342273402222769059969258561686723406395986637066687141590533740964353639288463030134089097849159251573918948763728608763510953801998449687481668195340548917677950816964641357345293395112763164469807578564765023128258729723740623217123155527197847645482078789151765883881381784963389246588944395294528785350347567991376464159054704480929133123239004995235368538971347742127817906286853628585165400948696231310142464181120156795673942912258131642743899546367797701859616571934583268376264649494665554665276589521261123511850497733753321323367066981729068043040079227563719780051977713348939833415444252454483531497434151505726259269381302623962960545747051538495919800125851641662835682077740665197147796657373079079282252936174765263195096487736611373187005462604714646274014101439893356681095271475183215698900274171394244582358931195117907257744254681172085411969492050649010358458735013847693317271110122875218043865387691360393413061154966397664690413755718712555483016859700838916921654737161938127852754438905354973081948254350865486619547474820076569800009302825320112320508643594745669299680011699534506187552616005259670480147977247669584821478528529201315626760407675454445878492678179565495757552582478232263525265705416888514041488262406120833840704005740498184822130102897152256554940857023610424958588275006954298555869314617488994983884941420924780818288832882606102263124615602929017715053480896462050150757890952495504344758363108267607216927422333500632890173023981163097533005941679946860470614246631632388778554298409010492956310010305490202427398014590250144689311947809722265408182693615767257753313405465198289516271488699944951454278270336360062282866361555958502926792324751371381518442949457456942778762316101888616595232999685166692970180414564229432832500667517819353475089637650080147490436390946793257446500070572822205874023201766248037739222157460784353401410877569247477981506843241014853940482027032637903349542141382834574690445582248750665928728924728407398681700543953157854791774708976117494169119363098695731834398713242552305008861857976206513352457838651964639427895566048613813581962686539795502273782241207400207541562154044698005647047686751991147003338978380299836351814099838703764089228658631194862275858227582864003524920432620202739119463431706357810706547453618752716088203677272521115507816540465083004718426723438645858347004673520987773962112474819468800647063069054168660539994942657596280668001261190102746362625868787634725097698423850652904102777261407062956724059003830071305469478581561436135076729012835641184230592103449039796702362721654830847740433331451955183377300671666861175999558645114779915124746943350284857668109059521521007461929145395743769595579219857611011606948125868179710647514940139744205425437935509520221164982426614687731966142839214100154412318188525880363167420319358549845895592906142973671583771862765963248252135611683539272904823344686362126195236992570741621392884546570230585030820018886552023248862575906403842669452594164450917368952002019897766983089300275975758647798186414171122150751702406222805450349811903728087484270781705910020902463731817257223646394299119643987649342180654432240889689404271211052438725645547754690258863983839695841032391492919301549521813363191903958370683119870143076703916053932452983477141010287574999610560857928555290098745808201033150044183551802465697515225926606412184554317892966115075921319170754896072236287860892294082314362651098785670224139857993906199768136725663249311289971697360652588985888937203397614162837012045949590745050476997279973181919681228294921820206189795621449667379638727312873212297010840465944240974604825422538056090755264466153946354087934063487395779297622117362478198726291664409233751603271023231739069888555081884045029472331294895683369322640649259627542223932641324848072988126345593646276507459293977247717384964682372032925933390155941006839490549394329032595803920121931950473485201826894979142493699004192791836765202077239441453423590263112156198693936148262905718997531064541135018987765962000972994863781750108532316232711401003628817839813528641579426113099240438737549549700539998229495470351099955213281256669707607869211466832802325466028161265271323031599451524756879254421193087128937154287098366391217828052441449380913651982700589060870816714017559850665843779444818229897988161126016747933765901916760064273223554007608662152348142594154110145485766581290372100895550126858958354567658988848345859604706939546752858199390787016001698759516604960604096722194968651365493585621495514041613687639212860655918734868767813411275692357284545316523596731975401652611134906250171778565766590038417840600877192792830695251346535312255522133344587397245806818960459206953607517593153684525065606891119912637933306653594192590429205259148815274936911647625356989124871277427502514143056774177146211783152898296470491381298114378820881812489395820983549240472482087422869615747056509283513712599505997534906086635618944664556689034246070220410019114702420838867579404323875480643998441073580687389388385108903051055307384122434474134567866920002228104367162107566403363046496564374657632642206752705033540625733764560955717253155192367831618874601391635145758917366743737441714028729107670303330676699991473682884803523885728968984909017409226340622394970615808780410809871256575674230572492923385895757645840974957482027871737192743121665486710584787253349320253129580985189466006380321374188280723951186849962038989534243917556400073861142467062858809132011707208073418832527470335852901159575769806237456641039440946106060350904511660446616752565041513948002135024230666680751593332790224193166563126259535296377732663983100791411131366793782763967638537198541465142116129537541297422001957585022773603872854913072088280362563634519543819617324820851147043074756405716852754182727372398191435482879891645034863140202505269846237668691480778611257965187693468938658355743111496723262951959554827778352351434505727524483487277486651483298054705404563233933331603202719892846435511704378911097553155947043308163253137692016540591396226585155300251575397909201175621367564996814987341055478358364748203685119512078688832701339413698904354679139587712871373173096091554189465106620157655390734793498217990780908323089586927381849860138814942413046889382921776784148265437390977094430002508512822354494001042904695699510320068294678224289840671630546254210679904271598312139458410372875053486446773468103119537792572535157029983256981217811402151940104084451090057371871337738010253174338484430370716603168191829908510274802450153653937408755069621165414552744416014987367228801501614329208804297467002999991825958079119425277917347135907966423643730533956170492038542888662832307816977551028058708721053158861120762440225087073985318452110058752891286282891751989652901672374656471761506710299166685269923024810133204236546957692666774969098448533888827289295093284193614468118002090591976679234729081459773862795198853749351244329245146486648743400485914566389880899674675314933905339190754500631681018040103960507410285368349561428365647403843706023093313613610383319098631505808274504668737534919112321094334631165327295665894529814849689386482229664917186944102007840602400495365945018136472027141104687947499907809188917772063204036998982418149963701281731280856246436746886568814169337986281641560444358729648764590858612237286374895709272923009971683803098207592743026954717750221556609077606784273266278186720242794318297831211760818746437048166240500962839859695094631541235781962838125592175282830516625558351486935373331886103094364885173515697182092986316883603183702183314208989284567108298032668530830525099617661290788743390160278258173254714180423934634734810417258372207769239454887362410391571570126488632033841085015360774218067715503414652206997079759693206850035250798248245061353225474508776294591037395760445299675664676930558667686599988321066279751889409755942472983795296047697015516214224800498917892623106645672339470618618022948565487183842705323375072258816717503782776495821403841510707441554100764018529302100175569620781407033227410548825524331862386960993336938929882194524282052781203246793645213568166981187139902355298981872948137941762383664101312509173220028722776355497306501445192612546566140191114438628687466354358295619307314502173742848543140956539549224994888427645560768315911128599930030207785879900041341406851978538813587977384040121321422396996879060046601138703374886261886410269281211381170874254131957876242014317222994567481481744327311920760105612500933898421948734236789151370500746362631277538456713478508579516382343626354180152789134625935336788847019606180856345575012000538748916852168685575469002939600777321801168126738632898628311687533129652091277913177869366438541319928438429807168367269926858196002489946784303381351037755644652855328904997581268523121437783155347310367576669740743403001004231114192653864684033866982605782546589555035666473430581461379611468061694255273061457739015480910301166986197388128472245876932259455499082036644367780857659422586397853732519540224695429363553110482109820217988448759154185231328986853765014498562613467948941672926648640148487604502772480927281205077218925852252732453162076829007687866216406509526068353104938207183326965222861114730289445482415966753915737116481672076151272537891244647739975177952539468573660954127124649228746543394959666891073831273018615179254234143822042353209747033144301775952524905414401423595972981190125258510268258398166544181403664675169963496477347167325753454703672052112841673565210982026337198580447585988973501468927991110243795267962434823097852364049151756431602973082789076319589457460590499152242710910529856051034056472675775621952052932763627968462094905201401512601466832848911675991809474491919101452331529150994214397218731677642543042625942893204369269587931032886192624630472734913381390981917147909683495203885915928795444544861248835586958858244015215752754319896124758441613406480622470136055828200851909118738888988817964091724882385550416946717562548683487851041084495539052863433448397911059899333228499532523435759627634092278178987279959645522164565058539400440036356942410378345662852765181956019601503153281276656382728540156854333754700101474712144283718070560678797604233677826774920505235686138249583821707554868236573006068943228358798564202631834026711778470047848051567458869036512740492851823905560242740713383606855763572253145436366289735066604537292217746929297307647810522024674356667674077361467739014386744050641300912235968051247736256388956646600634320306558557818580577283478035993118956549883946341726174890395952975731133559757246466361856307043478292108829275868761778074336649894878509545555106462515504633965142181325374637615889164331411106881114654550242524515651575906506048431760361299317276449502459148150961039022223954184289794252991496338766520297556536448912684820944090400150069041222597791142327462413620287920997957073257241734953797692598930593209426731859415574315540487154022121212186468261680956757272339143797409104553283874473030553420594316378137684809675465018226524858871609390043717557282632293403423527446345854904655271925819760000334974098568929805480942315647431252237732283213674555422347658135236819547697848362492838703483737844673970133665972701895039686997325186176095226311425650978585840412410795708159959993024053004108407776097680587342872450897073085744909046081329751777032883144825891896708565601942117658028511234459251912347308445320371527704613844649235738446570772307365852660887699751600691264712054049917947393036432434282312724876189650410386957142028507466694877943104600001124253831969977429235440885166457660685513208096407763304405543678903512064474538281670902297860048506046785171427079179977184366058080462183825388602479850304661918554844658239373180815770322632242402110196507310371339424729306852445677710631901665082957861164125088818993554744432317194059032975626331583988430221640356994275904958269664370042601501120528266897457595576909462831566445619229083597963787616230440826280099404125921550471978007569679811138336409568046132031100843763653180454245805864993244434526848799901017329059706155874594881924814253199778771087333204399427492720269003227175093855320375449439722291863002600427999081973269472049559307779115458274642303532528340000651716677426931179071481014969544709006109020532896127752234774965110115471278589501396560351717113783142195153804438062383774241715759885491629536475175617848831541253069840169739540869882433310771708519362021746821639651920013543797773816242096240589038284777237884623152067227195874061339176640224285433310468170877956249026914698769280415954091080411829068548801819948311227670976779695052027934289486752250040509389459875890615140376269639975745278129179372457264426770319875149275574670619659940480290777331622024020143494479644876868890853661775671825421051545984832921415070745149793464203086223177016737429299988313239716350022891348427316241506931352001047631971222476190757968641081912662870069695027498781821027928154820212501318056019700182838966391648703153894822183124915411223564686509411256474138260389214999435589689845560062552597811716531089933626567827146910010009685619972519641138688474589430738931470979694350459239545368986559470542733406965931790041684253620245937287209170577800288177364026598249767263051769059092395585508366829211914887250203251817368821190136553892942371410967117166918814204753824736267042928807516523286715276671202330814510088825714762854771146416997325345139427008051036593782335511275008480203723811716883912565565955127114717342207696227870337695719784209606806958474122528822651731664546547796160586363814438941036701762580138685640598572734438125513314741489725123700452967574532618731240165984366224281117180850479070057286143061549267237961622323134783817066237987518808115193216556558016230614302359677776443005516849838934121810157519276280039220763038356500709187534163966506554990984456733912387804277351556641819564568823746640888516976977844947764124980576217855179966598001489484365718183635186691817469647679200822301698871729146769092776471971516433504312240643046745086416831363072427134777295122564225432517673242535109161261812513567372564292350558617820970184943098404258198994606186431671236396770627540411657109572129405335909889921979621624404413428618569172293844687051650850063058441596615129881347178822320089427785349678596619965627919032718381337576714581853355497461892788014429141612710469995855762658120119134603339650463987510835705286930077474231450758069230192610120081845733905458516469296261186105577873496153274157799460460221631564331202413837568512001559137152763231342099392317254474489976887651926812403070966517207522876144258847179303673045766803060244082896386665520244555869808693887045550863362105231357782936129513176782375455310028543544201788566344117074279962537264847090671109491043321406432289333970299164756279397545256874383098258324845311212418760253800737736162003316386540758429978668597860824821829795041451913964355113181669997091033036159790627462305592663970798474671500598218418569652931190348466561541610341742663246513426064619885608698296693453850778816656118144125116860128635184685972810339868842383268394792635016389325124535275953913412578439143740766172105281709802894319487899291280486833860527264794831193782620573301650066089783946773882818352248301897084928293685091793700010437897868509500439599652528022907918165637723135940114005313210140832377265836083160762881123952437850472840856662623998104401637094430218457862374118433558123608442486160172689644157709960132215408721365105186295353401643167151238570138550417956000702752681183451043985938123472488807657083729919866641314294011208043603457645704732604595386098332828032729422840324123783920298995981232791879759768908381907079062687316822948830616754354526256926716155916229393856568692556164563391592304573206858340671081614138185505289460633376422706950576261697105251786333053557843637854076864960054619611061523958777456271668543449059847945469059106596510832901429056619318500818237914808431225089666133508532513482717092220051589129260429018061173018203842062332212956293216851063216115637919644343600808608360938545969235678850490396545257774503428082220545906669102235434286183468513359296353421321138391127271892527168816911430513502963436796683562212367862651263334176895813097079892120503039300859942833391783798564502989398212412069096101384049432472183166581325102102907324584129092463926415834164492143853351897604857402185543724830974853533564272910793147534619407643258087860386760498095394463622212248862386777447889487875682692013697704699715269735647697819944484504919996164109483507888173094779991064923618684521555663626524644201554989137480887564927694328703127211675266357577295414300493355219840004888443945804535942267592789657548637022745287466849101001327411814510858214462627973852059982276222475244786592065949221746210807225567338301689236216399804178369899506445336710856718875517998446995324970167936791990333467432270454386275196556350890263151601143903635130556026077925368010563590364954935158152673436172532477179273495368369107804472911058838093070138944280664170859238403765338180388429354834145880078821626035237415163467427641414004101778502986620349473988052286123829036347941088804361538382865147485511030057437904219346106868484502705930283954446053713175058236807154354519786535580838541754372346574436567520703565848049010658188239593847190508341531440936327980911925086625877912265039208118195870458062583657116463984943334284069350567475464029481959753494147444685014510891328585049331437397779537828445905253165270992058500172098189061601450319416028509238094104584223200441984627447885385952091731656577531322788809774773139837000198302437007706395615387659207181955196327018816018446798588260616558735568744506107485240950861002575996553960695668455639153786773155340698249997677625314213820750396365411338935174773571635604851664255189847780438011512269341391039976101456765286667520937129805295217792729796824643066964127586994823192742481731627294893687762313980701162845359835487060542087042378996119389042956618667707627568030035607963444882442640172535857187742411218775101307755039372494547384091201064667547500650077198518328827382015828671884360233111275403575699900946142353140050795713266275731376077797000420156103449738371318629449137351317760495412264861213342102762152270314009923792643029186115155235754927956716454120027966875753823692744643766176137865309506447678081977024455432840210890078461764130783534906275936030526311738877216036910331208285542034946890575676110237320796083128581038753384297592446278224641635387074849362771463505368160349981477439114681995575277444020650549727181923193881310270883917876558573785730411601488874282979575881209134757429649174694415849093156852928914573596976454652052325974493498824249051260070299763056487528247462751505362218027178865327961319476502563938743823193376095892109150576825169513416520127763460612862798566947044521188298561755860109322563488202848569811021620363737655975080210607190986856957188521328613762837851353663548959624406961996682605381230047051292183532789816881514544859009972984067368659913624945152004022194610768051914025845883790627946529046443614068508331716178676071788080600317338042126065959857977427719213491464906659946612944477031886070530539592008417828265807224888839581198090419571114446612606471925416649660369337328852054908561342463604338920667351972279167384391754447676942328590670749664303146775254174467140888615786284724523882643802356161357169176048142644550472694117148017861016892608282682684138895620879670092915572404656604809510280441158103781315052414655793499107758552537410296446403437414783316928440394649409201450496028593625774217503126067868902983032959431052949854643057229068628011006899515801277143164092553618925110296989133279061387562503380405326607066925275376183724584993938004814680123895821624258830514552834609487399408243803644084353340104735532770780831133475032034250656786693742280194520622859591641009935020119696196083005966910781090158349256578651916738243471194039984902832912408320537312680231275191906161494548080436594620638849448532102501321325976074301960741259753080419733383547146482241003705236314049676137404927205837578031952057582133086800014753958018576048892915316205440462958107905903292217461948498289466587468585359012488153132865231485916259649888583382102790718123913061057207701038800966479770893404343152178610783933550006703192515571818090542442315410163951881809056350642169774256891322192022615589815027861783530933864590926242064661730922998676328301723939254072212342829225224644747178919316354764815717612080474367157321301354915225560875035013460586961107216219053444889182271410385977313746024210972245036108509604844948081610813026879114907643354746960259690567053191841714855215564162378698899532218617838554553826492618332352589777650436947561468907779527875706623147172335638593649701445838999338431434024137700276174017489480473304551514260726573697602124045186738051256351363574700408094819813629707980243606515191614240726070972132754140166512586073490366419625044880032429080054822313058385327943334205406162778343682174510801494311735520343553364883255655270474492739263107277645078735806670429786873235248456979647454560580910207509464590446585548075178288902773880177393097578145832168635663843935234951546850275211872109740955056080642296988800975063118490008769280015334573965074010221769623912212335585928080390161471043067547083052877399907339690223042245126983005471550762734530979076273161369052907357599214181459032961567804967723546436062684118272446059116011948290143032653487199592513978036115239306241577726503068068692046327666907077880359857432440232155786358944635601407564014150010844362954819410439298730602208516760481960963342938890382545683660818106708282774881881572366911543662350066479667232095347511020093370667615057993879592559147148435029426803695430367436953187553769670853859669122052759551678762930096011152087940160777789728268769939310367368727943077637440261278470778566253503511843928507702884449704850498430548171782268432953971010477610546206712627282330369468361846620788289240180935700079909447116922943659846848316096882638567554122101481720857248147674022924804278904656698445606730266059322412851777051641071178307072791918082788410699911697624086070105930697074221533625777202937180554401313538221511618892740908895180783963933153760729963584146177251205993988049409741425503136368051275833100685077218620866292163878959265475702131881037654364295204187880968163648553801965122311913786902653988915309881153416465299173451393500749807546766921210156107018734846052063891016234509623687726449694822861022112913764889065215893251117655256003381071708865446227760294803533671465276930138298024687414920135487012971421000833460139972954220055089837005226834047812497785209491083261388136478523095595259024437374965693333466411491102677727462292819778386191806131698185799978239224944301694156824537048847161443276496195108325403484753667131159666781559792870032594517433868857055672494392974632326277952390562140669972061868238729083957035718044502205420442197954267257138999164918274102562086219995872152195640668150491253042536026854612374441457261813243440454064726756204071330783521901421484889018392569102976393181042795647384054268418659203446218323363623458111363176077107866299437958320659902256262153848469131512040022006066235751824031303321537120690828601193824975824722830975850976830273082936788973459957070380314518665593824379927599230186823729379593263264485364618936318102921788192182093243107174189910961969813099834185632971195656127330611834094741387060708505222184111152504176135360832396681818021848710977803847758248919978871804837081299976458792813380164037828708257031623470754006165654440355985404310802465474324148129240746678903994294613269788270588553468938326898805671619432476895614536341721653068458559017151010584805330332115420944652075807927272978065455674687973213654256193904363500599884138849517024470950415028729429195345362808692559816283765443470505053903533371685256041439046490677755398612610268035164549646830278572902215199563710463251335723538436684904205106108766437304515526855186960283914267146976617768377772210393176034463821309964963600634179448526210991358545322765327643247266192160658664960834511113899932513080938107012113068819110193605933534730188744395167279812291724969261139167257574914756459852831486764444517234081345157493895669568698078766831763665067861876148988343464343551145555473280579206293183105152961367257708604911692198903739109971420712086815996127906326100326479781673715597103076140054857420755019040033622589868142269682583206035123944901423198803178943902363661892451141198792634869471032124825791641357130453490314426351490852606665234992561117701646857643648886915527176789046434292576476783443716554527707935051973615477991686429414669174301304224337199575000388898665043188837433664354006661307761039351998754378582438790842977693771927973043903435786851981704566373468998914616397160843266724763871836584440198614687773183860456335814740086552130500501907525190457762992163337773356971676703338984793600437622808075194579798896743658789322213898340068546587255611003603531466727020086847196540379555247530853203796324070237770380039693794868136746177440381930772295086498320806185733827958439713704892218050324817040278477907659333288041687962190025841129968983261576946388091821972478015652945808536869936277070019331167680560841382039700835493500593540201349045699012166224841203467615922960820854107284911054324518909564137366894296795779631208590625957219598863046116042920912219571810428568436374672652917193048686880892004506214522669893639128227485686390864685806778639849432983204242665439547588777034375934167122684492570966520826853157266455614681960702891639216045159745060682242028971839924191053655172606784750549561165332893668670310927046224785549433338131025588670472320851233089772017690503401611188394665010824232141512762469057269807051665388906552879114718430358129657193745855293651673943938669067902743519955655933726627024805051043200639790897142267208999243425275689855973723867728375021047285005147773150119351569324498607186418184260617904017699791774554131813514352430383489081914928345219814829573996969943906988957546010725667311937234712849556007224881313173300344992004601007635696355538983659801006272588353683969754439423952097199773409887142114752371542039159615760724979103771604860485853176475131615320195805644501988111106123816927086730777674328345044843638138637677718347024830446048166308858199018498312001075579603990658225032015292388409502576035632409909380863832341813885264160025392490135020410842323594485421415434245617060965730799621601577680005045845224185845039243093655035924904730682228462864605051822946918327772836344440602290084296932297911821915574061771450256036499599173331813487978445709243649978853356232322242670168608700153186554590457592323012136874897235905864728059576046519589940593069683591063334346157969710324454099731174444493417674804564257437517613228690701712079466062978061597239592005176671088748673965995122286122420272576393924543416687686622121333999777477477329878932372188280968907436312308090518429947734547678726268218009498995832946766517928278603865372963766784319196270559579727101622521166891244591483331365165723176805184036961061344150496457431946114638838941280064816087201435891655330891536613194096945023688588826731342633983616987527463583047533961693340904070443000333187075497836892945272989892408854585046223901143992014268727886914438143779239902228285974737197337656852879864951150450789808663672862852870838935941696979147575537224759662398361220446710265423135057598970752894089924842929309836376925789228888609761962542687635228591358849371068018199389263191494124649299173857137106690730561582645469518204432899839126442848789162592585612058496548391795765348906382647268490110250938830837929082288051012362288210055357574389049621353907855515203247950940286782566966372494816601625205827707695890266737398260619612752441849718361851878924164427423667348500018363128520331937114362476076771108602316373452839682483558350839825705915038645792248309901762984589927918488435482532435490362823294132280078733115103466981860524355350735536990003231355563001513010302489458085217044138249755219874101380723513036829938135233454288621152646825852789567041465642452556470173233509236494538697340516421931990850937436496855479869702082091418920725904735227436400727218023664408508951270601411965322863276920339916203374848847993108866143034153091911148178738587283622179805782123774429028355297341912476789526351152504152863763269192735917232641908898561665942505904664319259013569491851877789775316508301683609929511368420540796788169557269199464337487738986927335553255287582961721723047479337917276995692991232851329201842698977360452141560410539527214594771520724166308645854860889668831374616020806521369916029960661212775926899656525145338636287260980594396575215005771108558542416273983841821154686313601160125340354088709186873236582431951568121672789916341999693689814279299676069831521908751539228312019649139653926956000907747868900787915070733794032752680679135737995389350703016133749024905885760439987458729883220518323450207709778008176944948218503234550334791477284968436293321816619782272270021228584697933537486360980768094033783929469512719745873144089658138880325302974355183060582290141084146522781132338563240516544907750265414058456066477800956999622473778897849012824201621600558424635533079711121791736050277639084964130296775946635489914035813917414231853546196721394939513075379039062257480850313365277744957030622183073779809790593465200211246625854819311836157556271127291693418830808270516349733711244492216013253106273888920222616759895669737689575576852019549027711073246224855374287021927283665564579308335785370996081897229526479108646209255641311191128073375300203058533805562930906730306024718182743648913706653026394357324322365147642206636577394372500590823617153941843655036464503746478431177380486591266234877156186140381543648535312187957764747013804777800293991493552188481099719760432764919432895148050057994717791393037503978010994347706111481754632969081249260679409861492338338439748931797654254475545755394844358280325765667125044944569589713176610566898039015265722496588650831365293721343588324758499074274573670561208809193501710152335318110461074114311496749536238407565055484595315665626934536065844476681549142433837307521840114674096636168101296140908012484840446591625248863208943412558962407989508525064941473483484417525296712870096512177805325343919457086537967115853571009956595896460401046335644455727460170517335884065071506339114662771492127343471526875304442419063832143215500914736414232222926625752211376530515588999658440351286055093440491792227346313971703942058941147465240504651615655017664785002908560675112843859272738891985854235168800294314098288841080544692870215492191144379069224353919905617045609665723679002602672549067166768741862170138260418661627344716795171415021365257283292728575590730226061311454285460464037007320991188405564371316505788835480973558237540419728788285369954742415842418965516765320472064352517311283452584340386690188319940254662456625385568897196612605647135441164975168824355099019420777952932493906561622296490414626291461738593364271545987066454106898560479300496144542980366991108259168154706866775774185949250424267374843988267142077585341106910116959660330067600581378693793865895275997588242079535962323766514748587852455175949287961310941112031338565281809485098528096545314192111230846604321225637438146966691333538512920122790363058811090882782492452695028307967511575669898306323148576389685773353608800248910346927359145653749021319312469248408437695073171256269857350189015307763361648074597783737574917304969798340845553368321097061797468019440108360561533727554173001805081688340363837559317688168234672397127309463370992442625598559371320634487290517980075927487562015432690507570617932895635641816880376690584682538103451435602017842350801900095065367707377493570425794053276258020171530603670979327434990086819128468912395503046880591831498409624347410404126900539561921978050824930603091389782978042943251298039161795026356085251946688040364776500202151676719068459703639465245427163364524236927099820861595413001706970497343576052044970667592454602933038244973609827304899514755758041558099125524950264076485278191901394747902306825707603536397094399807701986021107016197285592873207795795857217985507022948477837919410958447205284124366697426889154930912840130413327449047886425514913751020519468168740618548741123198569834070086830550152012578460772257169684398123254870821886495613164468507145434921729247533947604600452463082864685711122058175439879134737624931111847760702889981336319781486593345660571624414336703742331991888043016155587035726359459775084338427080269181142350390297345540117552142818391426957544173438477066560767062358659647946599710624245849795752364765106740360333925633382028025062581591680076642208589460634457514889583381348361668006469095892228092872553184013241965008200649980945160762335802046891859092843417399457658363813129880890313440181943589835727081542298295141955569097383405961047863465348444391253713603397141517277544707040076924114989172850379679589258890001431834621754774756022560556735168303576610111573673819327035483982854799280961616045826892675890006308297932771083935262069355458870663621982684154275515762590648600975567035191974434362068393352319912767694935231610997116029954319743221685194753363981164033580441485713760405280601020438475530269854960576171650455265594713224870175159679296074226688381033188104960043888540866238674585683916957128018055357124655529800432994193780126003976645569364474101731859618228086556537955295273056708247938129542766623383765011803214668943342592711905081014535710008952415368259254667681545968610596671323682632260349557037955610122030655589665074177123179107882011421455472976796547271238791730485536302853306852817582463635505502192135341313289019016551142283418677477788511648218946454528617390250009411620161569118036212326446514636161616036870408612149811732929002489335249716435438705367046545288489860632468322596213616155797005641311423239206729219053466531401752829766136222185611947343106491142782817920836878071539114071256922639666816091207805598574326006251738727915354432017082799026724509246878769231113518872536074404114719598496922519317750667885692562600836238978753535640810563837995619299432443617852165441505363457580099907742188659986053340969124309680883163685794176172219089741602153614891383938981840196973008114420286942834829074032345563352050744975388896034993225108175996614719426281468039597852259244418545737366050140961399210809820517959677116641965696269439087008172622588588392789108605862707686952816393140113804930356361301643120592324538710528564137460976294972042616019145971253307291891651365970240205135973691167973834824494748609352572001095747956339201169737372859467091049553740983523180278128080463159086639488125208718287260318778927471989993970513049802170518717000737133929268271332388391301368006345975207807834457230295353923913498859109833063283016107917439668616291213362641379107881054032228565769797147534441274421434280361423358394141191525119903243461297792980501938367291675279321821761891773301240722090965381531913116200093723154515749173954010388720201876011171927463595809235895672215275467723812921302517986018949954276654902862244895652662019499749893418080656449715165438038074138430525343515710783125458259002285230174560386126215463986050529294794118915241776929309136108610672254128913877717962996668238777281279882741100004161137085415151438607089205126676465048610232015606621442433329250950034982934803212454636206154042349921684268461465013944991878144913699949832879135745500442009494273473601232179600197985054793434249949840773628327808878102825231058182986886513056427483002229770242082233131390113481930509317463062113083958491881432355902009192384855983557415769149283902967571301996759542551829378565277731270092546539118349465150680005760585376848073703433229436039455726306734891546687476984847103733361979395915306527378402005706001815459975352040018413826863992361407811787642385879680185849482905212397460357229484903909562668132107872368573136278498430893851879917019907237244897397191344616609169793262394859998179260431897927426256480613437744038021136878845185933957709285363540148420142576540323728882246254213641236929480862451486276335476339814127742616492537232327789991317330103132829559434468147846972268942680652392472028065414676897115282427074254184338105507407173815560156912409083978271728718308214455948296200150881375395163932148161748362050607274963494407455841317179509996395777010066072297920687154794666082467996474475210170845483293892339273529425685296290820506480324620215240537709078471010973116443972716801934366832888522457788365508689854973781362497793860653287011872345932243072081725678521759803427561482759770005954336296178151444539285923179485142390402748366926513170682253581583432789093098537286265647959233177798669173062988981171934494113722564101922847768616818389500922060174022838151598880881503914665368468275790851302599480285723534026886788017748771388150901993154933573696223922740834139422066110167731920204102213477730630582554137145156603437534350595346707726158486026935776356417998041412172487385691111059353663317652956938795194471994748765867300349308196932611365761379731167357115818253878744675277297965832714212402410320030948377756291487439637617551052032348270564264617871681740404929194954428721535909303468037267732670518439005287254952596776457397580451037375025287259796388293184288783563168655642758917776158774168476213887095691126816035761284906253155779177210131233660929554526241571325808930131675442208788595525135531388081175738265449781934575759692552318985489932673323185223972301207551216334785944899665115007211676427314702086832108244376868756698777215685878708022701655464646734589039086216473102257173049610808659147443152565692394847068049291368359650524520430991764420757161643844096887745828089524083737348281810073690989455570586773040754471661835455154811327651154714952933772075977201977138147113065179906792035959032221995541939215963059094170491316603517583941981782754303159893285887464753555609845198086491805138127179292575333390492025165422256065025738602140610830093065643052707700779294537120726942497907976025608755121367889906766941931535357507566535629696477094752616818280328243140250916541673482850745032691474973146464047368815052987192241393149770271330906574285374317939624032375997767361454639611976181817499240395064745493442645225734090367711579847691596249681746482591315884631984201257945170244557307569454370049167487995066593989417405474150166121066416140729370706414784881718321907716054564708037404565582710071638968970437034212166766911332600001847397972677578449334730285647539938244740383778771672776271628440119476014592892913441319413842170047688121761655828118322254340448728986652973344309561212238397126541679532932704758959115297099166530165284895335683851874529633422886811665771113225297783448870250239815239255552917342701735000628271330295306399063532159811075137140997802189491611883852093017477070947772538218400165143119758108534997429582050633515436484284282649959432594337070087788124826229117864691129160569119144248470387620665514375782091406924386564799728250882703583192003047565947852119762249025199269759977104454538884267428799013995999829318244378871072462724787528009446229775007216614521669220399687387605816984378036248894166677180233626549068894163649473890540163601235963030436741599400516994466087770422463891595945344902585959417642858727577411587468690129487845809568703549252953682676314815276224652772875053616532540505150636669024690640299943371896740440738755755360043157491149499337996883445802456450734998952381845367382024635837637652311829087344672299876684237343297340941313073253173975693230397235778178886374853044682639449067232091199556594713404546117068116459286099333555307607454431261288720556428857128314669548455542936720369460778295726928440450875641858890494891962252680746548608047585137008841970341086489266865805530153122445729483977229072994187896963442286051632659084896024057175234479779790061671445221850403705452507750486340324289837772995109731771670453339682698268560063518245951507354505911987226239986408177793788121159333592283698364273519389134413479075792373469078873200360217338098579155902335440432206494654929326528549867643290698471490848501296697150392164673226358407234115022875822923547711099995634953970173108098956877135592615465404775958270566197311650545650297003625351860726281523382997572917523948042391887743406177759627679022907774119028754200922784668792744785003064411912873164931170676135262366228416309155976102089970712530036905123903332799881068875978388271732910970666995200336406020853163974399555272280698340288356660123944258423702020546710410672928259293296351514077752453549486664290082610117571434616341824788775797837661863193812341594901565666014742720290316493872902133507081449631536473019699601000551214710056902226392768812221572346165265190940066366250546630979400910195987397612602063097691641131014100089747171603559424030442867811264800779556367823200838287399399336281990547677652560610948006129489794872600826090827503197570070310950656428008459862109340856725828130128597902351596831044741408739667925351365452677411274089158031513850126969602606961133919214537226549268647126167570579053760660864329071641312441862771000505594130821259020839729472117633819821593176994178020398762863495985371163483773033933766880241007502700598005994511364022924418911662801758750080911222302870704415944146593796089701843507415223418516570365610838500633696141649993760195106330738633789633601248277122841197318205453308865521698197929668968159009845159299913564914181170419465173504874415038089912211465225539051173987654651718163622717882743221604806374659913710296439373715032105355305360276324776755770116204549516846914226103564718169836998448272430527348545280601559963291059767437754262783630031982047667233066018579415615997902590156133572625673714068759699536370711814571573120138249481276370402806323371956550416871748549729278247622416929463578740116491999206590804274767834207648173554445732946214212218008691892609920071616631477347426000107389068102679786858024634992900096466956856288633780624285420891241870520620964471646923750675396943478868076079178625061578245262287571908248748122514941093108550150631258011957905789064104953572557977288041418484285495529674889090038909428520890086440674263837928529464086121399373277542253876526694064839809294219093507810083959639987450233021970367675915109903252373587384898206133625568824736676076256157627790392062755069936093347699742782809353055973008207986897272251912583824703306847458858249689832975008605116567562734408347466415287385683508628784627611964995692766743822336565390099060424250107073870362811584896131213008630810699269273386061238013054194773196077086119834896188461472596793207808279461564246811880963462927563352009433070112403920689666893233285867094966340757680850575024032199913441627321749181731943870036361683532867640009860862073421405364052357239682388078736518952348015065455997410022701305458946017502995544217483715456446069974505512940408794966247238693346496799415591735152833242877656708313917589294629983618215082622726859626016820920604359078189079722303790912760038722098878055887031915603666451858114416401072112522822200374076795385895196965266121121628087045577813956469945838265530968448838779972211076633059699939878699460550997827136022869202493366824876003343604691322091895980136446518203778877369367506118034765746639078313923171998133163325437304546063105451643512431873974046175930964575794536110427875079505300758946509094729586682382273657245435468777928535548428233783811483891998095571165578841721422787725620394586816950795410609160951110037084025535668820800353860100016923974919193545861147894130785689279894084058971154336401090375664074696632319133691297694534734078564688862785255962841765514171411419101433623049298616111469955344570622203741056578769537089221577520385114502467500661674635473514041366409155305105088273068785677444233776048615570313547081683550904524211533918704975612750647858555385627687895111743925193048208016380894570622263445999730535538649323049531736161839036118274087830190714102758191319448934322127299621401969577456958993837335668342938823515176300081051597541449282915506199055829281843809706895882174562330577571163952587404985837718557995155320476195469127551085469176178555905563098063529095879431539931246874239757113096426566761123031844445987327571161865495697007556280916684186430643903351449890851604569125750922917769468553866648770969911720435450720540459998808577434690144377110353506272115277547675496510938744037695651983844281933844613179789766445180603804949561078911009774865308394301109395223644709952115720091682826858796886005577181481638539954619711558948376398798793084277903679745120909348287579222418027103288257787356468574854068542967051365871715919629277699365012414478649475366415133701484923701718116350257273353981824188185778414297052763143377875947862913670153177136081549687455300186848605728842998941652161246162961920012690947378794968272026291015625419409358614553520791932361417795269831001194162314525270389335608724046221548347719354446004147428296115446357081622666887054772620603228402448664132890457906280818876356919363361300119078537239947930371098779334506238369087658320496340759525256270105864848573739238940256003645403633103942600997097076227699028785585998657703886350304679943693506060337867053605940148640770467099294600702039234742415005718044405689646769994970963594131351417642048614113073755493322280524419160429162095410171468346977923380982430610787272127484878653426156474248598247220636669652552435764744205485130466591370150217861467407051993046539860441118358894038128230744180655082355637160998142965945810765411164204370247903899981677961266344683437238969364824438496457976461689836155223467569022324568176382577117135264890035019254697435946076985899376613214962107471544247349587206313318846315607100240410169909433695432314193759769685508394709568431303747186074698845228347710509712425102747272401525786005483689998138304038746691901563208408612026682163674513710926458788787403239349744501320270105831562535726585749258400630847608572404357398398717957143208463766026259629262913872224432654959764902286399112353360680136336039254402361943477867149146919801907583833472819217170171435970358901655539482219140576741810812097824382634498310079655303779538468398416085861538681982135814788346326824249865489782138189937661950366662040805384229620869951391135596902133877024474457931908731372027887237619162243848524378513403511954400270630850171079291833112845764863790731710408610122245704670973102319211879351190180902783806173649787119254152025536404996324803727866500966369259094305248802310522795470782231162658819619271093236956778677073891063151143910186031592143466158107813608357073126445689497132089443338822221836380086865279651045003588750078658991687785134158889038748924067423737172295840321524908910290897901970850019361085345279907242140328279857269491586472527476398102501213474940148411097818912574464600224654151328274970842233100574493344529835039847818749064431267935502521427721276347771977335461650965471151659739873871631867785062917758806630257169716963736248534881543149650738948736978093350272510212015188446413850970296028503093194018398834124140157079466873312235857273082138989640499957249368574097912860908567920834644584390273931772872019862149882288669865976731367853268074153493633123633154930783210353280958929652675109933275818527980372059933083761866140238393174301426902131239722777310515448265482911819640239513304516495564217126777593620876005051489385072524912113963392909676857551668237224535629819821398743337180843615902398914150060467027457583601917367026987612383121441500350324372797060161327331749545711910449702917978255582540597164572027274993719156805621555150404554995628745750434507031461480701232716459704337261940947056562783811409572299452865958864903997773990726192323470764374781424399855038408612189525548626495918763394519046060304549220693612347497475660416083874363049769606606736610412611356372064172626806105598876796179437815137991699993985534743903653124697060852628881985748340485342811795338893288965590631066216693266974528528094205062101246662834396655747052681954198004922013022689989041207428563669409321263691818486254157884167259991175556509918819886945158932940087637855100149403115836812975272303700531956635171977690089483121772997873264247055203593792087958651572757118329067739140809705007422426565251128703478519461944039533316701476326277278451428102806253902599072936609181713031466793017249069283543352209461513668896460859224207661110921953598689140340199670521496163640460162684553654645246334396040325649908931298555942386256676403409118883702128409089177689971351091870358410767741429827950532172938412374815691318480318621490108703813298225512481697413934410283483909516134996456607453071240572343235605938192759250862270537389666612648696814419136349407467073292909857370502726747980254202904740614746026357167237365601758656789335830582928575147940673522255940324651485111029443805898443944952985936136069316752029747949074089361631946265043220952180688285909126234790591317628114548548615064572321884372510465639107749899885061364859857282608190393741546374244177629732475853104772804290598773842942357625595831804088662495592613769233718391939972011722188461795877319430969226067457542139861132167327802104463649446999357159363315963427238917801315322561988165056079265603072534996480441057567875629055151922244093996888013530373475274934501004423895566737908866120867917024001565403631383976464165656924107141297007910304309701963532507589727799233054252345140545441285605658371431938296869559090703347574654682653178205273565627017037471060191710347466903938962217018347924258046011240253904425949424271788537963167984543140282821208318321976160286759870337362753096768322094279982774681038030743135551792199781969894152890496749743531155081396310798938806656468702958995597434070655541897807127625159088470563446072118067727294407884449690514052151827615164162739215686411623215794632991413577278507464121698688495183926726942123338259374918103114618388435779603040497968074980555029187178872564552598015357541977920777851268962408668737275563329607080619890003316395857665009894073547220828015949195614996518204901124634716526506337271572772266726609360124541666733283748352607239954190965446070836262626323153143982411050827370592188944093925352284520459030745202135197811333581403990281343644866910005022924846087853427277704203952808202321119142913175997376719515865356198712095049553326030223667107175404561100851065016553578961564004282906787725369162417975721843170000654357550097240215201730993060473046996663188167282807236239541095734415799550575834814836568283218242887553218039579671670647392875919514921279598986450892988915529411645820847375904867721684994175579482596265406503938377698302012037406034501645970515700800358521208219964020510186475931122448016882548316134014620411012983263610195728470238784425515768489449449058515362879834134894007632282948317860424120749250043013821505136013008014442230216520425661749746420227691037822866098172985988365201550251162574864642733027702139907801053994309062909369233224827469624044633796416476057795897013747232372923483175645327020550052847094164821304262933963147493448323390242633481139027309567052492420532117721784392957524141400010935292317422762135207736221873427348542540419090235987350429200391068959089888890199825698788569270441056313467220750092692271988182866467771458311912066299053061934710085626809058239465018707003054841420361942143320115323179593270393381209294141041793021566432635943584660117157404984736795912695693033314792142486423584531963344138959179684911087661838100165118608764945031225538187352373385357437165686492211452589598651138998688309463204666546815823382842294897242138210242369151856349714004025816205741257257844054879128542097664756062828167562102837830395856387037177235211870417711680609172188076554426600655725741368891636383472801507036676452218497774616983325099793591211518290071771420123616147309027735409285727970498804474082594062403943234483001649584259469040583239937658567095639178393452405755015003414497262952430351447333084070686533133645758087568004045778866646940706733058001013054636409001521594920789759423506581547562271217262131835793567712657351158563903017401125967376650309081551404967524998901283617299035106056938615473964259566919582493834420105543086784741678464227799825974266811772815375887435969909717467026748650681339859297081922670050544864704821322014732520574876898646411524574659994579089217893161046942217393703040653226506843425042369242632349428232524010665153361831554555344660517040675984790774734259680498516871192117286334626487751267002122909138420818294968215789514424915630625582545384597559978193032123194258909326576966315793755141075208878872780475409734486392504577182666033615036317984037832956332224370931622998688418228871428099581990659390133869694771659827315571073110878061039873864463705556342194927864775827003776739770026527769756547398933533157523126112575664698897465181514932337049229435435016018045268945776762678939846652722348370855793532210826295295196273632438838847893522195854792597050319508684258866760103565991111311113703633049024926401722855350110402213436511589007788383926515844586417119793238723401339858983674718912370199851874116796564736871893067199431879242847921324600224012742554524779226084086020572828184911450612544885106858454743129496381385619395085750747407753377733984273700529552175233541958495667625881123919530264242895335403194220418220216599946066835733118105557086192328819345195985769596230709171833105895871732844229266769803309848821079788552329810254255910195054442076717538970103887417081636200337391737967281111816031731445921148009188793187064967426556770973015298379088941493426958536959929135229167999426628919076201379580404270960962579173071478984607765139750503706634624844728201209680852433560815647442236577762627547928389663014421936313699330826174956498752780008492819893948787593220489976570794618702753895357173437803687326909581188836266919024697952857332778965400106705741183661584588955692509185754419882024280496375303361013665134401475569935503134805898309107083260926255529729001361420813796921267941194200407965040530287888641298947479975978455955423617137590559521574668799442162966030290953502711844392001777661160078206849800029875981734556566999231876988662659805806316760545187262123221020890861548672712580039855340681830942075598512816988218910575212032269325184458797598934203379516226349678468912850114088286920634598029921042164768401756484792968701412254588344653311802287596881080715723251478922511931046748706372513084899656055541798555097446880804620682589911192110682932527217638048843988852525538591115219441206522693887087975017708454620092476592321819776174384890179686325543263003566756540973949164524541149835247658792296113972111564692237881258034313974587195932301774788733756728392578431791535142567162124635824025434148534813572199350810087269327769227633962306513675608966545976721854048054574567016527410228185963629295264333552122046875840901300791134439568923805478762370899711135303006011172295016576644437038147739212239259385868542306818191590632520527437506511897678356382725909184583725391476637333589087344914332247686430571165320057499190697927047095454783235064334339648469405028955311878856100592744912529375297437189782591772706154725942997276604612128299596919883005823777627746132424609712791108500237941495944549594955096159435626975228582995965906318185779411080993309962853607631695497995543092032335623967792028212328537320509994467697543786488233079167624654148506104180599820254055571218131462289550413502940169054666044767540771167289714365969803175939278615876473736563986025992279881668776040029049948615226559172932879490734480342244383367065958289925176894566315162122211866079125986940385652152671490166993599340938496136260741362254870787386604353356607382065908880910231274683893872180981781701060574858788782778938480216997416530734903204568757821017873785137805427327329576424570707296724039691507854010156259276834495211375743324887819204390242271946178225545840854573982083160104682610308559183638964863016319194228422958589474145048575045464490434004029053074886799745062163115768378516705604830294964594788511135814751725987323608691357595700958655245049239528409081100297566228638512243325470566634675639405303077369433619139541493346153870632942958089730898954659132305821102273889430692408788938262785696519510334585758283316811185273410508920726276732166899439568875213584472583329008712371047389386050773283128592538406807751473997020512791427491815895121400818713092610435415100155045484648828321685262446997519280419220644926122947569730227582467615865519714105765560884843439360687014998573382715485404231819399703162444581158934471567371193851524734671198912495443716147304417544957026213414005356301722048002474979283667216881767260776807475383952343319913215497751928310755064830999142340029932571417085987025839779067449041558238099173616856942243292681238355773455412677198277309519003564340335082726953573857862037606752302986475700698870299911696699229756103959008781797365625002927625400989584664972491200013524878391398367600998174034233236557111598370714709546049963127366171045522901191403769624067256779014894208123816935795943367583291976289657906244906219685184141058716894166309309341185790265161986771384790197532647060042314292138450055116135643057938582572749771850540333820373866230335347151161112844645806591780667134218475659701578105963961235505189252351535280181641343583437676345886906600915306491546982650458648892515945415112929949516830396910358104176967851402698410600627874704826395708214307772413117573936249845813250678669433766820003136756222752583756259611166960143332562388537662736361478893248348621016887645613597536856274718133615695875828451722633767378647282858685182948829017134470201472746006424507782829719714838770056868194959046466988042640203076635828560158245302745336135982283672634986499596770205424761600186163429825928311947829603366759285539434472369503310444803133528585670694792293160579711857445172149818548866836069617026548581502136986395689377937341383157459746497476765552315727465915035552654494038638308890124224092717907036148834497453145909417690384237783165958958807192831268479903034122443030200398294713965583929965302447595301294052960584937302480538633855505242904760448993461169186572893610322555937981259902698554348768213928249447048325657718220990319369134326396596808120340210036549487765099536155249705048576798890794659219207130268584905620879498925260292727773623471571232884768451158046744920095798352152111174703749241227554391958864114303909238141102453613306698257154070777679040154151512029615993278195126449213763710011561402907618407536308253321466457589052576997490868015528904518166751379818036822454239181679430496431464732283470211280788144021355448286577591102856978564346069094499577061586550013669280036362411778463924017117033848282489416284800147607229375210960477233195617552645595198011024093678995476526198335571001300612086908131448932827031874017698538316166111838819352521467042368129956103286189456229902877322282478403052957272465282092905846574528713132364835660057827347690375285484305373933567317000269421227206555371905042065108530801988042021349928646499257448135130051232199760292085000863161494434633577083478721843095675806077366122736020737296257380882561926053368501326263971676650174227658392961541149462817868231447457576603559626026127446938042129068247789281435342015677045378662836585682673268732737240583719852373062821917023534894720426958954021772585138036107005687654224247242853292384117626145842086530994679806686766411999363797830721461598837937814621018187621307295765422426404989363758822084943590407160984862092459150105973795349820469243122233400913884400313425388204181766044987349126675597840701098298273313825672473797715850649072331583428901613040700892996664078232565811550819741488799028332058872019998296112295612853267026742754787251450776427539252559994612093289231695380715200928874036943764108940578115669308757503262463546813519823696626715990375933657411236070351436558550275696422463313022285932674935434973957514427763279099007957827220154974644311513434477195433796161286548643449209501868521464061942520901517299829641400092457994814458607467232384298434454707578779880898778416402914631565787328579289375465583673687594290692763404402187592881503703835390279001411834064304143058383642115771270804385103393828758206158577850863382627604794572239303777353423401277105636914032952759215857058286878117325975132141819364621000830764058604887727759498537070805988982634835344704427870434304675958459998085351359881286349334892286002571365223894959924039784592780408583740971721116753164538342058382828917374110887536040442503666731020759527233019982287701542646537815974967669677594743018053774332630497195789270403468808548998366285837578926825458601010143195586339451300917866967544448421956021484085964670065013556494503526116331366212940166716919459005239112082582898622797166541269159002984906016846702197512947894887162058190405928132649761422449262566909044827900711866687570339247668658101195232047300435699984929487822625148718733357019621183363435075790020956401485038743847293210512120533837789424183783803927618461937047575138684825224348584455677745703453937180897564656545696556721715276561343462738582044425378201758277244132213162967109642889759457313665810413339820590085360253549927307067173890327370582307595566025782762188594652712176613700355199041679675382731858288267016202310793713900984528423614216615780568116883440924158253943349774965838187217540177818331784102074255302783898093278755414434158209706323183268199676407288875025946129507581246623496652767374187745421986257455903435411095785012965012314354305813869792244842361289021051065503452411817550684238307079413951456851812822930000344023184692615263027943554424253909968405137290373012123362343987032923508779180168509708732701509572639390494186901334512803589443961650463914565772431694375571973900469086390007326358907975113694360425177288927025603136644024539274976751324866761815755337925468468606960151683816741545586593217226337623120995364073671994970077718360558257790925264691010362313135270978176016229011688322784400381508169508173860429190102269831284120166349944876572190708600376217218861609418565042408224388321168677177448952611747639013470653772698800636849239378068767537188225881949200440103982033964080933330542039364176197555541793291583159188276853814404175176577676594806285964826491336676821840433777325014837965168459263858890833957214732822130966328799645233974433085560076047902303553523008476817596088570371386943922342401723899963541659361555253108405651274496616986911702536977808482461111517818125112482783913079738845179992863044725517621536931820861081804222651877720521795522109032496776563798138910666007436638627151200358264781983725936178751318997751720482753208648462238749516085827361556776802455211210854922685198651903288609384211079804064021254934328194261243479996721527985064024554005286650087416562655963438820033806727091928503765681456750226011047822323186299934562178600009082902601285213853970343008399188604514949351100343654358876396848981159150800241266854706025816640780129351955021002555780463744609102892693973625240539633165345839850942000501392354593345744380774873432805145717270906070764594744984890425491108629213568660665106830018705741060230744585478212768217507493273747607935290809755231136849561096197185724015850520957753224250691987642258710634100763137386294738565787133707408693008126302491506308957479570318071101331987120353589376129314502725708493047364808951559572780822723731250608602985346252276706769408308921626089231798979494692123811554737296963298934667595870963311165107211032649193809238472486578505967711872492554855668912221118475972839396013911574737364573426483109926140150651137896807213796192655402906856326866947637462178021624438863846120065688970637866709485925307844131994646025511212507950987679043819833402343796281705573315613390533670013788839333497516355339941320690893335824803134155738226574537306532451000477470892358122879204105483449888505152329838827928583462937077248857281424798469592296982224129639706486598846375504250751056122013265317353010062989422620437815306884664789790247638361262651280828050575497047609761225331742947224505258379869596932341180489444004852222525943248989150278133883421305902177127282417080838922970232004864824088596082724320910313400525058920735503999365257993034621844770727742262209460698465696754499048437259015619397846030588759218973288366573523353805578027156126749130194149891367148950527213337460443716903483163791139756070782431301549378561039020585851467585021033511347501336729142304056671933158812454828862814407811476058076593151823454042812036084804323796850686929916081508711200035957746854254902936239034996197261763293905736745405587402790534118954072940188321752950363565465281045796297164543990637586169881595537688792085670602393757980592950510500698765847567022446594350446413865948078157669531048596112524521083533186449232681095776406814438672802452847085619216539891170147436491229771482925122384777313621820585098546638517487105902455349911166817115646663780655265315588462493958448464999042620934551570845150865637048917047118700176075693809668258648487320456024124904366746234635627412821659828764671897043497991973962112581426584393254218992833229341111493348563973263287046291998581521183332487588997778494521902038464917304094925904903754591784036875679083463800950908780774413743779565957699813380381454445944676855297377128259848257049959427136505786006635408205145961953091264911822424262872170097102607591088595436592897937058370439635894865183205690928258316921438182490798492524377735469979543844006232410249840661649035898540195987208504276410417215196277550732902244387731631269132385601813258462952989952973973087009346016617615634393811821638623622241763674529324715610793521889270491727159257241024085881066019990531526833355015637190116080279619542560825259745851338574828738409046327432289402490784004383780850952846695132128372601498059273952817868913540181131075428069915056001580260149803906987217566682161698683827299447337434105410628974054318140762311517744142351317414414595326141175010586513351646256307372381083355670222763397575067602772883788528216219297471385466876636333618325476811800265401080397807277823999167463243430203792061174434558221914782951745932925447978043410605700362384292707035917517315992655820513999213290683162657385638906640349263039500543558605963423210108828998985641474771769274559294298022316002796845507139542672378366971813631610273521455843466755311480001273162356641131793331602794098603560844686821503291602417997345676855416904499966161422743183562746575522249119296878811090264204404489774379660368077756583557722549504687855508812760755966524663178914299144220440133011503115896285390599705149081628620917652313373720596032943486347017488903769541934755251057248733125712013484590931165464337864228909615403413434919654037752552720562177366449027487300814475774506674337728030274964597164275144633276471232031080615114635975433782639757404684440925425026781340419104006983216683993372349423718492754449058729105881371563663959942886562201375783999842838212948825838629501869042545607741487352729266955249475110030569746828459067961272756450728772109800769221815308632317208535345640436560598537351658524717875991461843925901702827994451162208604649755636931016062497561645775192149407550578475907281031298213644391811871559718746235119544534969468500886676852588124714174451539482635390681816176096580706117242665660267993854414161007484568734868666269428882021654474321786819024164566837693863846319546319881321177905743834161244647495569300288038700646428959797082971771738570546873827206641647523989290359427098956678935700761220788815228364939742426778775374856817312053149019875322293140927588460207107234138079108954479091816946751822311902037170689606935745364897067848456389579570810991452313905156408095361793584571184302557947381290784506072481217393751272218367063497712557654865498544969037290370913611734249573558747566451717692527910361475150505497400527328305118488702326790886318930361118246795583857464622813308773008401130991091303296103441241742320419853212864956758908559416513084482855362181199268391048527203831550344677619939241357500778962893299882394680302855297182089797455661090004913363402729837360808153729795923313104098496495741437025166769121129799641106304898772735399466177322291928794833309963367727555676113448195298801276401838626963052142550202000870805880365968742149049480742484582862386485563615005975033984599368285104968269607674439037217515484196790835669413577482608024145969826212954861335688697962680949745874853513386872475300749581831299079556980767991194470140396337482229664222092829057940237373259853951105721757950382210757699413211828960006672909746922950263949702937739203073849304233199606991798415964615300077276121614528444861326076012673983824339930088522648939406831778263658543928013005510461594577536097085948276557643029359142843212787531530372696167021668022180856330709237100906370712744823546133812461589456928517359284626680306454221140825132829650421147892129914263875858359779050389603628836094993260564251147310933525505345683778539684705146453744993893527952039366851548504858623530566095650963876023520524937129470578070194035723613811339846376563094532020828449572752587515916437101614389451571208651049268104170830704655655851289757029824705725007722992818366961080501436851282433129360594263968531377615095865830923973948604100665011364306668691559324016455092598451062113206384984853889133068413597093943265513785154838852072810620459031620433807309929863971129796610781280724652710313860630518941287582763309243788507303318599919827908220371990924332621208185491235531967184371012118812995225382901007315898737559823933240006003220240545253891627625412543072626468685155244466311950591649951973146370589172019780868640616309940085248379188977070225395293197723425008831909213699019328439411769641111163321169356782278386123672472449276567321990246717519849782252615976200445828334449065396067300633756595935363294407353735608041296092489234535195762661461218266539933770646990215930789221657008696149952443536107877065503920115074824141792551066103575374623567784162408628268960716554327978389436994520345511518509420221264738008170194857420158509878387041957201260945930323896112148110874555230704661261239808084701338244252398928524681652656077024336035837427240294544837352347790578549501130163536723271068254018231331428618036101164683799178090021738282650610468426095729828643872946811455128662848512971894118963321587821672603702557813081671907532804991828118361921439422033796005925264788377933884178545056977078559263689929310315524147659472983173882037311594688174072410378980486271608641125748469289615392250477153070174226462075217793071823352609233295593835144842576138262699500691351538724899121572009590431554005476859004900588681160662942954455773840439273286253720772618131759911443380901723873280107014058028290766966015765218046154718560016353777124558089214610539895453131282838124801803640404133230405254588940087343824147289541066677149988140065312501779491466308813653857667435046952812179392306367177799154964413624885800746043106697572509123507593923242637882720570908540987420158083344171019853381513502510032937913602804653540350080055045256808022409198037055998820315397864196647220224074945432617084540543980064830006067828667844348354876380648341245993752612183300033072161561556467696054226785534156486277570332130554078736391362896486121714139746776308484646977425109739781333040186198847998071264887725792979099925985950943113540646182599716699921232233711222089440817697378751556323340069384173555846852951583647455005621347271561584983031222600023808307158142764056282659607392151785074719570259884152051751863300551568140354721791442476449355054291483680018620788694342136930758796059739343297505274747743998539948159600643975044134967571643572242631652864953556995830862117017249996760975488919224503985313939483346844580958411031565808155264262919575916958951485984282415193944031520914678042437464842325668193658032291714905908188932718501216611110796360866397165050008235188689914983797323116495342706673960318369455363223100369416334079787140865545823280821080512994372242171599144872524789276694417693603170701085451185087051038076580636327748367823093003729302859151678337947658662933447738239260808882418407688162686749445748077246696050805760908107584338813322081236560818139843002921012223516655941214065977762547372423396831925535324904076523159537948971931530902123445096426778439193556268475016469225104982429966305402852151294423108807183294100106278573103249848583643201356962209019422623335080496670428024362478381338947030893847402421849795609860114722244137720485400899038110946080377693007590311949906359139525870189314658306411453736371302334759754230344802785895808288945240112361570617612523367788068161504295952495588805623875451465270754084864045085489213179427051617860953509126010824330695655982765690336636351875857463546201565891071894196892355246921922539856613086548614927999797373774655860406913793758148068726683505202571862406525627185369074304476235554826363736733485113998851115928585426078550279344735303188362259522045489527388408872396784634491298695153882111733560917960389193336794560255839323439440891521427240348040276147454505209860562844190032160656538108205645587198503144834415580374848684575536722010507952704496236182387326595815429676808764086910369016325748617430134819714963879130033165967670917140515911415643606441133883117446958674917970350746624992619378399636579332427743595439094365857516550251474606707733102357985627740350056375588881876890524270431544489063107098048787217231086448143899532727882817427947966665809505516532613261306151917700647509487763962899214949598512403862471822921573326899835380993140183558791538659231142786272663155048137699022959083896618204462650819213182085165677266587942498591222264207900219254581741051739011369673888574812107777883919663298450468366569323611264058333983987738909092246031791168185543924534224140745520921143931635937260841433228154922735717747459713284915744074991993488836491021829979195622767097824358995979195112470637473588222061167488977600658073738792173025129391464875982973405178655868332464324862203350291974960338438642278815782574078312657672990525845036724900414375253152331747293292276695069337554959234032667506591338633454771708030173162003300096035479508078838660379221504629512574636582328099198830728473957342689108884320735111084335985391036411300759023814968891810567378156077392449814986277824252196414876072826116930847296134948061145040967885549380103771437745538285902530411083480681109936157152074595641023446955673567494238247703413920196120638983164803170028846559979141723480433102901625815709163241712812804849448958600265439417800385707571677473131884942895958963433347299957004832501898037176651059033398285165415894153936120965949511978238139085360267564418249447690051621429379300903395957036912975896888744295748023844935471436251974142427686220552742842544421942937909083471143161276351958468472844828006769905443923468459164107634837866743049641833680680675345225691951967343331339785305961734571884441493708139796582251594634987367284476189916195156755088647787138395776219414757242199138141498941998431539708531805554015588935505117780354590348792981282676742608437810825533329277610221693526209454900877468813414784955930207648551007290653137258457621034613638718007590764264721112992972679110356685180181405386169110533526933359834933854106546103476886424364893470681584968791743526127362892275493939541107510964227250233903446915300153068308643950056761956808338880170782933817712466372629772159961031232555703594463300869136290809684255526388598811544404852598691358350751455036519250378304991604183619557617651800232190973291364408372378545901273018178953799073566706448350357270768035254878047646407084771244463090605153173781629937426886357907371260769370561350252716521476227084926212678360813202320237162384569468241380477964459656410380595597602452627309032993640854910954391041139808908580779150550757972817443556348737085067919240867944181345816984341779482481651350722219733808900534011566156499313793703336526712983912569536248695957215159784162234550624760484840427767154495125076354672054785250268842037152506490218327416191051534677096321534532881263563752441176781923003781280243707698542260760895284983638054394154599033589814748684431010266726301899618552741715484160225191289625753252156565289129422952096337011342297818832287868852423152205032642127844654077173864335783025105624989985221994078241790530204787360212909577629688394681589687782363516166042919748225039087729038852631004074529174159541079571970646228682767713109273716208083723778282520452795821440168230143700490729248598033317895628567039794924329472322660132857809979212089436612822343783766180046083752135683602534523309923916154837674332431929934114876346541957157496742376717416973478546786482574558477856003434803726240275287602302934211651408847473661681518207138873138907479734150114720589045742155276396380869925860593810408406540968881522409104434466029939287015241192438791399615779959869166325506325508631260518662330853484643551280296297984365100328995872295794492705951458771166888650952902967971169326183189130223649832666137263563583571863264109524136366930741350856736809533138845656777193766528326097926501984300139929163573956908269527204292113311616366024643330966288050800235368168187819890136173251782832269580737041817560622490427788510241538057780882070072252255079276981309037800426183981390419145140515423575619821879313166949502324613409001281903879365967156716942349992393224066413389955344230560807055013365802072244008396196630206051337380948941659035063446457248580781553402823853806086802310464509194528040536580576496111944295074341153917892508868669796637036490503864008866329092649038663468404176602685382750932448578423612303478167351116672635551639785447621513674638232723417651606639994341856198978266649389700903298855452438681653733552607626433496491697856069134527480559921248203600807497761097859814503980023004304669499745848958579650381272082681202183168776185315356819786976745564123961566254323079472604428263206884439425125411132964566295654938734286494949075230054154833319937184439066714843593060471966484455747877667493688393197645284625359473792638553164620087451816187832881540939951965009731651834162501288326915881578144153095493843349002572320657267896254441456157811965146032478745363950396374005836406308175189477231601475211227630192269701117719921725727001061874671024375705610024458363833849188323997769136272017324199718099134424490172472117798386679354073388158928248154505350461453461208129774864178587095490724268594893664211543665334381394302432729792300245665173737988527337621222118370240616310552878753935920100345752108327001502520200285125655888969256383399011762561154202482262339009238357201912206251379736112093667687539482559416197551394991851839339029167946261986552302051469288868582022576965619614884287901375539850521208061469321723112273193579445044055995271760366062586974665864406887174197039308989563442860899198189793666366126107702763054144976436567627811677043374400507027901320184008432970795779904101504247087273276128968444745513143336633632226443187336869631640772129737725144113584055897470940152366877476532181525860433503236056274254547032722085678238935842548266591766774765123588878986106948068650739001660675332964020088168615261834174417106637659558227523987463981544457129590079948243649713112545773493298063739921628791307429688054904769458415233392501761366967699364760599883218930443365155392948556489933065552111694393773320542889321484294433916569720237645304023333044123337381108052878475007393716542144325960275643089782984299330971469080380634634613679827493579077799903254292161724901463152642059169966188162286376655578009514755528631372036086651001489786934942808034721115990565971738961781391453515380318942002298575668023250032594727296929194646863492849282422266752480861469961091394781570254540727001467360514026720565154951273695676584495283893738818745181546829722806078451479479435800117723342336874409087818657923128475863254892015779272746850858175126698333498961415087608626353699788475389052753109379189827404977870466976718115893988760891931992141381294281397115724349964980910428539940261093022845865735028886383426537518746230487783499603110051065132695235888822915878274381641399631056856696403915507844210272161934682294303351592247200590029886019479352436481743593125398187141622926246328019411468405239841984635713307128281166700832062920412501804730213192316907138318717462015841313777607449924796119858432558514235435911233911507931098306138590544476403998101937850748617930136841194951253910656869022494259710722140502888324402676182025530272266252067426134408301652153779696702678825907964978607170962104000070202448085060593605753441783280716715514046776050386795166609557930874310036479020149708025004992396514537565807582991649147434396914806725384908658219933001194099167413409094506501519246079802168316055770914497607201874171956536213956205546788778402136498382607756728857119307804462267010805161218930706624775976095478009240832086826700994384449934722540952215056380286466936548440072036787986982927504754473472276391457351420153559116069874080844204246289806820552183235383501593664669957297773548270366300012567072479685192221985964504075555014838159414136519353273441710633752061857971648159422280310455770969431203417965083794007660223199817982120768621001263759325651272105721756720387076057650522329793844267965993611500525582162473332370917518780662021796528329027534281435555464986185312269634594062343592375678358649755428403814511965462244931801610445998085796636295578275831305673103863123616269610526661067343525534483906550372749750882448708296054715212497409196347547561254142009381074080767825971259419905924320082730661358921684998361330197710361990945549805932554406145028733169187625357173636457179629746742750785445550016126994594617283837311226982906872960071108548090130621953362193898814408654049709662959644910692653329688603364630584794109104478734293272303840530545725121168731285120164183992947016749880462154180646314299531131919590846544814567230204485470407572883767750047567188491334444895845754112396182652540691100897231035788190398958757567458474883386687271531416411612798085736727761691229079412819679516853174064662929046522477710400783841062745866359826936169164258373333779348365722456258591147596818085422984172265765458274570139730028352794298643439533463373014399679531972252268177799373529700929148502474790571100787994882383852956097732450749917695027435506577211963055496024084942754199214108228226000622255088154558546127877881013785113431168620009862083412735457823511484612122616985882538034149985151719733366763811891348526691121120022282051136081045257323419266641830043805168920675706831527991717762709815031529422567249355461762013711198831050247308268998120288723255829244669448695978513620027581830748175257639094751565743349563107601746071040600219726060549797677939936708182856615738436074825175031568027903991406601654969453712121439704179104824647052242473105413545195679087961790331126776505173828943210394132392120010420557442678811652870404595297827478127738982288343076294097821613378545110305609507018169477785905217182662180340372431979347779548322567483145243837229848898616488501970139014219827052819433724394535239170261390253314990851973852904854144288990499951559289794145239415032934024079075406865247937839609831573225333475376736208907713606928318043517291950001021784420130808753349531671608078986294371511255142473437776063649559953466500409473289628507710464494756068436620332908495569006615048123648110689188158304967745528447971269823473727763373232225011426912875959505121292647150622645214373014169900756208537344079696400251441033068373714810101557241329721025505164389489622346450147252358606844531939955865580906212077758092425529276870328032898544697286831851982898279547491378775157050552720699855160404148747794911750936579032501946752854076173784164687778913089401565003708318188946593271302310622220946397340319196573907139150587966542034159437234223761157684423599618637283091517906115814178795000100818096562389117917204053212060711304830755330714503769108975643268622085542263307127653999533256254484572801143375698474145140550770754821829038728854903134371320174782905025949142574219522653727780059403406369470037975587789303466453337955448640186519875209305207774848534084698907326737608486527012896658297039768300612378990346258671712052721746526901617916098141316726240190775674292073792762184690106084922909119509933707651973726144679056976163728222587302069101024572969095087162337335372669391514002640126130333136915901648075547111509548930365770482554551816856270857574131243819614381274611320250469325499812989447784991362394824143776729714020025087034886979215955412531236158996471125086449145248046051715567194605037567928761454773765169991579822587627344830807271276427710624158160015619660989834997812413513432473420992013748914123904188649199432567925738447881429704367427169601150630359929375178004570339483163730212756608187725159854015646678949434376861164181825610919809912656837833352963200477057358056826655024185074029104533740923760606660348005714819098893496334188012118118281599328510209747988000734285046150646721249049497709288248210071013711196226430803027602164945374315515894167483042188198788906139138996057966482030305561720509259674397202556506753375383527839718899590996280179913389688879061911531928986802244074383592338829884186098421096033158922279697675168017786555502896935378938372598704053556437716364403206876521706937190063909499470170008672588604273519633059703530322870110238457316361530664725618614584551539215853807449523037185717766550768832913566878408217373080654019873411723674237170349832716355622289359796091305365573901799398995658899268818844839033163329237774857366727279667422022806125811265744957606175565137975386298374662726091877528498569750762408098446080472696961518165085064709253214091999308427552843175380217736035205014649961000646163421468322717396695712139156606069727138055505566038208424546057739276753096958179633637422361084441223451921569581764698180442232971295017160813943903546033619229563874306570391717797124136658519773456488862488477510626161238247545906931958692657757461059884766994266672536397884359781685342208290338049655936285302516465647440899023222658026608175591136559759631792540203780832339341332750746862699070776199912480375331099661989441700364487407966093521117871533070227365726795102978683552649533000283388296274048810184483524014591951895879307713354663945636049258283271990508043671227574801010682151622060651149635442534261365761201064168212770102064492766186112584016433899660773704940482559382204557452027706909311418265383556262313230902239049535607783954346813954710705322689414198023621371087745369455443048871059539717702182770243236336527270243464293304986589183040833931205553978774532350447891783142071224723034610497749598650824922516361718540469195948368334628422067127992973414526636723988680326106424392774726062855821445349552513901961098266441461735088078204181760166458890193359357393298374926542379999326870274346516831654094016022218483108043177450038990570297938667523373671416389013152286220093755495612481627722264984438221076071435129017470933354364390072029637621838122884555589650480537847205335965423072553038674379524575410197037920488089179147509841775039956810463425894973963579263207851875954128940848521167144375133600372564332142375356493541908587294338460168837621467256767463375547319321331995324125211459837856366649587078758258949241128518842669433991487440221230023981480469543172803600412364721285098839909206130610323166715180077412687456409107160530707676479104870171587056742581232151019554734287907272513861273839446691271723049093042611201739032154263836433754411035529252733904489014977680070217178351523068217633952623144427236901453948224543939613578669483011850330413730380415464792364072010148272908758430185686435712162526674317297247062385954829674346246087238773996091994325449044604926340184615588857080920093222195746971904353821270096896907967277336028731060555563765776681617929601543329705057113497165254569163828032180450312613687357709196988838782230714723591401356754891142629755316097117126029128696866022513506085665013235944769096593948808019859627619097875943070139378415196334098856587803734001541781824143866276031833686147969921389944325166934201538883280066495963022069573567918443348278269265325121514456701573431486806631448238721181723499242427708658569527858241453982647611048371485342693509629218345774840573127535913728531421396205568862122453750768454008519024565079232582841630740093867968654749171775741155463714669385444531296703498407401783447938312812139502942040809826304704435266532181033445889145068635782566293041179001146838128446089406946844574970356350040371153095224084078725935119939401269357598022703543837990114486524289615661049837835655935195741698755065486168417792362611865240440530468634789066296699949952707544133096148091797355447824114438509911640252452481061132492099390807935030505973823795279143765092771865746577517903976118201366105446573273881148356908277977795367206716062332870397120745989141179296207690146305554573629572252004854621783947899156979488041798323627692528371629106181768417674906552806035805527541450876142166268713386981379655215630467438147658321391805169807655230925779930732425398334407139833121613840762026289730742561601483356612557932617888746692764208633888526064246760398148025229310737032546951978852663733257486506110038611280324389015792144174811777584570049582505563863287678416199330756679835330515409949374013059114888697797917710689761607279991525986485254891831716065789453378075522110700831039946563083230240624623724725534551635338386999429932897798427471060110966629348599777589514670906976451517716279415898965228527378642336224135810445865322305680409145932900600114092081408353219521380357961907334399248783813483273672307476401424122949597186427188419483004991484106965702934020495401825585832761526058437162636627354570600029030697182852977469691807780796145697355546583570852321052030945115487963119979666904787537724936231540812728463098622715682799319004303568478311623226831966306760338736125711647349194430877976123486460683556566479287953810244616104646859621749826751264303688100630328011068218108059776065669400595700986476743158908859610489943938434712088095095300071023472595712102051819335975515178485898244783408256473498165071019358220271495539537952400425596984080409755817106102659405083024080797040574192361944620790046341530418958770455201483048809846421108145335137029917785709565022394219354574318252773756011786909253614582579906008197715490953668598450054002905718994630812486935100134151757521832796684232498674911257359741730454089719591128520227461736036304379056256393676553919350338308211015289990503350580059542997088900704975196121133433349753470195198473645461473624452118506728666697212061140909569938788302597084770156470822417418144668062227287544769203809488846825887529477169478252279119825439791753895427644669197652564409145605926404032431118161991259548132114828220809744425665274296126068340779818286907531185071648825378724571750239888364531558282909745299645914940312320595175702646887897355585533644205233016798372436378969243541636857219755649603217929785606048904439405239410352601616859282163732669444212744859807520780604827151047110729412025887215223117306387700875690967811844911749946389145974865201362023026863432153384551318230174620515045419104770113530617592008597464498001070931734575035312068363099945555494638866912709245144077260333237021034507096568878449284152975169263171045181763538196787536632167384855124006899254850723456535117060955775551251494721372073699905624851951508152967723287305540073189372012429049868140547824721281951644941592243726065842180560905821943224418751459456053345006405015409210062569497826567696131771495471632293027188246142776621566406235524875383131458566430640302501567439220859047138738819895990032027713610933768442962638840035914875439321413035535554458731224277715611305164985610477629829170045042813209021173975182886127872492694536038796421822275466070119222744560877713571138517558483344652013831400153969911358670065294273185042525893139647867470933338127752757098358511588060187895482422387118038617349864279276010040973093035174880581856314968929385399187065516033058340476931217871549644829716404579794187603047767391037516232566059801636938575446968036999561380252256669040936245514123193069712916219942045611004054411081202589676378971780299438519338856341472745360345619150265007872761768180396434968685349777343147753791525466535183306163078083912437481713852811246354271481783564553698252514586907021633997724858974175133857986769663508505747106764089766471222586101822644355831751713441679957346991073726299022792499584132489487465206905997693908880921420519270396229446184903515426011765528554814495460680512917291000213463476641004140686565137786941173388795747036284545824636166375496522104280940975391704314999271775503227263626848185148507616023218594369136295910450135067933268887991865026232804106461960603076218064589991565062005954277250440919943838409167923463056530716539112943328249379417936608917146733491161592224528361435113823266411178063176029800799430877949214571827745336360969817715443472006537764803017549102826795065404540460306276887981687114493835827157435569032689011935920694356933552552936635269034328499582063510984583106422310050203367002403124421316871133652051050842452706410982211856690946455295437165111545987593954630276799388721414636826400906969147582308122066423976589054067925150471080819236270098246536452984024252146058323966153541232057558472372787992056539144109129017539928923528536161574663610655958742246621957682466667413141041708999543093321618661887725574046656426091337965552950138759356777278844652074632017610216290013301594074358022794363517500420426231330622569246063443611053432078832522521630801047095805674466468452881457453627281053240500264349862062073379280922625872490431375611865801689692699021102429875806736965009179450597028639315934184690811494060523357657254449730621172340605781770233470742823633363617522966877901664263916389783998370086725106008099023225520068656137219700505488005437897780056366364630956288331796371992713019461594815313057732988446030238672283209110411951886950451752198895679832474746923600377045452155612542699208233095107997105826126660680369362179362010594067133020940019890130882115469253523713032216757336699373111333447612518007582067701917327916414581230041257078701343878726537574492639452016645780383307185721947157563170977120991217572562866436464963212961794311998866395756588506728342867733175085842636977449883759048530102462534503271390555157122260665711506414111447403242211039404883346865283519642505602191165705410595584806327928973743393466487938584289873566231318415473000081655537770984900860433538046192046672127897853377363786203397947034351984983513096234099979370143769905344022077753938938343899635810527009685070288188673768308032688094267197179972191012122500686427351149346675597158358229366908917701129685202240456673699824432798847304248130508591024116630424018227027634652118021712950561900895432928041232104912348993155614198304409246175869987221343784343501853137103702772321700967279095872754788601237677357742005491736067789271932570889065919910995798571563363084083478215196256613499163691965903333773156737978960849519704133980762841859350788729786070421008327025769744277621029442276342621790619594487926838299235682299045610266630138073202905465857230661574366899358223905431319277341117240627852436151912572329653225207171154429153508232167513074023382274252130989700713422748107567508306582504506453791275003045603352399491852677882478807643066990545241789087549751957389880653879553077114744970380251437220758820181661322643108100837707681713491701968835940836736878005725947738952367169849959174181777943447336993633145234517306777429692474509317045495167555613626246439819610971517071193332594865899134916271212679549970838006121480449498670370827332396137785631252056702454906610690670558853917130991122692044121001489348441804060823979770194559553535980550934906279509791532261153803022544215440602091501519026972567206806971629954970805215940143449638778185922603407119215062693369385479640023808213418578214401929176832764915832118001006924117513608097167332606597095248212613451420870162241411856438235453898329781243957908221457815036427852487873071965385952109750638326735287111949959995322891588542643218978809707707863101117873816221126879764947825158147648679865141389724731763612684279287024355211025362338904035409797184990590863892283735074765984799601527151543760744753633974159962827364447192363661915655524237057667259787163277757688310187939617389380163095695402408303776212937074042165242807319015904603262713765292547789902713613288361470785285863696682702335118036813857924407029527454778798406145051739798233152680409772497963584522142394665547576372265110784986745125305204019446481922384962546796417361269721472536038490574059514527084084994423516719826725010800841102868139923504107513847276971107454944151077226543157970809374219153697130352300829848364508938204226535464461015453092695657239888030622075002396399930792915563321021209274351770206190372265841199844065684611922335309037800271588364836167703302517132654673433558048824823331897418343696284462302460411316219667598591063084638130007485229465203953374520910806331810266586308972929213779394164111324284462755963926925442586434183910409806767738780388347474257235501404374011067291176867727624830711231457457792969096035963135985782845303064984339251143342084146620767438348453995930715474695665055942782468794916873603195387428105158021999052650472164547861987997484586679626302019664872850006151205262303393830158030698771468107905121997817944675200639219664212545464243191893923206457994531274834576628389356612843712121770771723690821320813569065264882528391799997626463856553672416467281959787459907492378022592855899292609973522141041159385900173165230924455500354946666647053996668492121286314605902018007334932513446397147337084984701211494384700006683390938789978633596084269146158374235467222982272934105309067257744485981036636640039517967917595657238201092716844199747792926167973291030847595346598052862883862242651189637140309873976533529527512711694431746670060513283336432211437118430775777682682743444578215509117896826397159766160888261222661992828091022319879391854978428272857125509442395403794027348379806092147100752929307809338434017656475872978897971443499053435435620212523896634299286121333033184657105231882443710955116303041743505540539212624509826493641924608180223931833539114562480670693596531019667984530977150317676874107700999222896320087803950644801800917580944184270536962137486086034865112715062590991533168371964984765956552545785722999193255092223010311512412211394991778518018771609147723228991405657965742542445199406084364304618447573233462530014581916047797650114184138710421628749276554998073171629767329570729743952407769575939961441498084901996795768694847486806461232550843780773344529448972210442129290773547173932908207760866437247309730167597035898382392593448203921400807181544876335151570677052566656998651012209409834487148439763445531849260759776306785615994172965568453814948227312934007843843793126413672858665685429507812180174196039244427387735228386917350274730171293192946166849720796138389490540519238127228035757470090252727400917635545252435549339474077451097552714842209397218069711040600339126300851638341993614507869098325268844754031833915648739570287549056937123039395159874089665070166323612351596797277238307064968705120217442998884336109685256984700375197019343489790629363576776538038711811849618256170101594356259574667042146495857086704249548472047649396481689211250292119718892055054889682466154338528493733885709836652797252931807807499167444571320130518069208240935898394397245731578980778795428154760645560451507021861316584946125507149091762709822644194148535916047434123276308176336732428575530100036080813686974557482475260137988652755570587001868922022706080140302904165848381907610748340426625942947174875906354785891495660451094185513479808398370697969256044265496697110473290411505153107353816459803863054090157232593103455780784048714439031147870498982112738728032813677029659450952488683902040065158834481558848127054444419368590001928438560047719783888084377106079627982828873628174961254481256212260559500989870663726170563508773730367133416225073834019114375772929441051224468380429738246508516140908385982386685207085201706172850177533721196162970515316527713280721237406076529426151418188664347900799119775691618257543249371223178681535884546382727580012942891516708820672739464403138205409512350657015249758069425673929776489787762455183827360790988313213315899147546630851947428950943703628839398496619439845814969385835701493599476769434638222885762241678546118881348530919532522109905125149055941042499761028691780872232705801533203977702039320138123740241047992961603157549741684975198967072358713986973338910985182226293231738625200307512364401832645351357503775610375034999449388579701265019377936777911339628745448967335051008447801688416505683548694497128287195644454396231939440573645978346388878223270449880961103600753555838244510925757045328593440546919475545960348068368597868257067528189479642286966399496015893245687207234459562552477622410691689450264756395801966823327207668384729528843881736219707758204622752387912367893406343329039941656435188600326357057712260985314232244110648983273597447518529859192926030976879055007375466847418725569882712452114829682686836246838078774218115575959955176399374280627598965792919122837040093035490481226455319573726145467354456477715737348135174258376067321628767503986388573062802317898530788665158678726225915951020620588829001041610048305892543036284803503315908918325678952504522411023680024081095627513749102079675761515227406792979689046872517107710815027711311451837045023018621316618241110629401973234140182184734577860524206322408489254481688608735011494988493606912496278631458299242821009172563102007642049907361198437255383973201747930593958209468098836659729928341590085213871326870836264388552118615300022904775148629535888544110629869409457471158180885747445863254413337303035492462436168257487051963860249872464634144229702192415758072096037503952914563251538496909140068052133458916214407225161296036679833166973954295699049835269314232675750912043100828150600218544520543670928450690969401083613120069049361847026027249299219366696561468997852409567476632096386994914167300583926078466318580768567688739164927489396140273313992532605259970821666052330807030415784426290047009940946150523478383542972938406298413725929392561131636881713719249755553907178174743025239538140368389685007860816495519552050206209683480583185943096387022542143441316794141615943398521804589401150029543651801408501970678991652160656138038514524408317928984680079009671321869881524511615755837759682009353471409201436545632316455626987378944779223198664345684486525952574419857694102797313206803976697450504703432706805094987794660612850061078280277403165970873698309453099013552964046800473185839264242619860634211026197642702758192356764753019769578926772288165116576250722157595439713531921636832494487308683011059186124921037937234955104793762457984907704472045081258603741779381666511551574335739250796650841086136139245790980129766216427644445029236789912428628048282090476087262968913284085241429487897916717047115835376358745981965121031393683317030627824638808297206933907949637332318960330127882506140984855096178369114075397516604322714162362743694227535699674505449429625704599270466748958546142686499629406739670663042567672370974511301267161329294312647187438698846799511983186846759462360663703636703376935786476440085138687084139862304465324016261914412008942664110780527316595928714840781036173401424763503103820869843881702093968634296688924088736483622783640068355004915569620400488996572670693895972984839784284727913046155878222110941974947344842745944081010609539093252922987846178718781255333119216642241397435769206043461681741209994861339445870827140784197542397851997807542146861784379060113327635637325947937849078527073720543370931518757028331882429340212784677435112072572876675362814330811962316871473733726752524560586076950249829931291340693298997572672444349368318179199466129775268721929519943236687553047178833654671143807236680282469675955485177245407447339757705191205135323221313877781029962557386987725957161946688191175571157032549588630947085821596666242681069066718623662356596778435738896358961370777758007733664111527757618582953060494982902014529696854686940902756733687347201284231732995439610850907513201037657622522797843285115200261818954820825008155943424810122453159026224064899229014477678826510048252361119733752491667219972511174457733912205436930543471195829839468033954290694263713427297466554566021550684887162148355798746965782445301029816189711192713995017317086746677135889677070259710091487140809458112144831193979797616038170513818830081084845285284228083457208925303279385756577641325772707348854642537236496966975796667092067242300506018603280353460239306688475695478195468424347087302433716086658538203377248782109497137258445946631749614514836837300078377603038284547323735697428916176644835983944031156797131491990241311934141603474302229000270739866998332931575348896380457268283605425741606728942798114522902991043738368593142208068689076732582320156621925421438551297783739528346580350809627983566367575471854162678711609216711567634085445395772751241918690583567561719295429978678051647259469685541451374191746626271004843017533318005021689109850940655756053841467941775357633050947179277585042099355732146466208572799671775532061087146574321327108294223465846911754357617913209346156643883555252120776708494249046676452332444907746105510939342670143610286526904112581130201927652250448323244870237051478247977889258632453164613044683277390239377953020629330076340405938858753757204547308333609535661434821861028196738327264717598451428158256641357313531595682866839564569946562779987398311064256433226475072831588693015848333050857759361039456586025271688994829074961640937877607937752894504071055686647242405382791847102281121983654465590677962065248059702837372190100662991891891450413762396754983446386982703481869696378755881705676955189590309517652690717809758164081363815477067350763290909440220511341425587023886744416070238666623432841515463272367111586878111740380281363746537355616727895006129851547945016852063255549575084852310963062691575991028645134890975155162333451086682809985652734318898074697340384219337488143482126466729623621832594185438748609114102474453354303826049122414870957657492024535693408676160265456216059577232544045903076099428188982025961038054779993139031627325226797679235580343748031844965098909441468861223648795125850084563894732644178172980032804337974439246845996211441837462114022149132599826900350080522953117995821363290096988017189022621999559339758257616747734731456668833896783523632028373805120685798571481845178555978583969449971470242498962332248942122684622878782161892215734957761148773900774794581199226681405295342784777047515805854425891459739772939221224918909864362683928748094309545778399825897541744757963455521824149432338849416361652791674611876998061346781519538725653596516646331203893449605892602654862997144285118556357290423931573578168782050047594120021046186752089104808286060065610906314013918338742991362366767616802913434404176721273887101926392974029269145546037208174358141115318620718922611015680994216977431706271145388309949561482834210008608301293239047009703655742553267268996203173055484039617958371305668561557222276419830392601198121097661402487611140753592857323492069186840866100648085770152958196013702361299675905553981990034657088022422050849778637342535605202961810274839153190017185544814151107155691245031914165644426543584381575262790215873492752767787640869986095556431212428280278881437301389228206095939686551645720688628798546462589065154640473125008278116757425343693082146337859898489972524714835810329056463920416751106391194110151535619158559198317785585603519377565660306879505353745904569067507811716052829367368424962122729622447663818625674204487281141383976669571952721755132037144000109162245129867100581691215938821011241154564025150508782818677561410481226561696756541754863822604921370715156951113079719196016259758090566916898221488215279554956223463160240380356978154647614809951652901482680203075274854874089077500579975801965510467616678975750458442275905061198523539070031598497659430212945521522467080287212573469813100279253006437304465521518312981467177568058274353238748355417753748546643662742455437204054236735483696780631437632494495940313653164456650430588338477126153855417868027945471238424628115519622627710110442814680627279547813829633992875755370214640255547083332731187315404827725945200617077921448079347163087721330573536900199891523220448049466096791870429550576894419474498511419832563100295657272190188262915678888783049523653449190283333280752521670195003930017111193896504958067384904966164941365775176618242895731387769769240607216698582342377419318837629027792757213530384326683274039164972673322787512770965661460881266302566634196397427852522786580344780695413897618626220925128195063703826676640181100890762518104474042890579020404980928268321462903829531310969228710928438740911723252637260219743164449681827052822606572667700281401110588013248061779989601332577360255259287394358425502762100113552916839183232701892447520607189609456765952151798540123905158676163299869803884292373314007776208115458100756784982494474962213463073107540003177474335290382748202175559623862025428527097558275898375204389330755349244791857573726718299938699854724406362384020170853077400999273614778425557456774524784574235551239667382762514532735676751821706468878461944220228988761821968736714409478531431024520718432046920712019332480287001218656756068582631924563782819287898814184132539293194208710213893250805775337724572081178846649493097424215848548731411770567762270766369346494385700037012828047274252980898743252606004675940205134359129125031390677226663237195625186045297019469613666971322749795757246899023062009218411043575266762713492988840150949179426697040127800572962075946622090781803566744600052138720660520985241782416376514416793533271469287493835209648246307401159074386211005656381617502388202073649402033230180796411566888639532668143654238729965683668474016829229676530375361218088243892046651274134023138840960848880223341661389793461024252813589088099304495436096305606075026826259281712046390107215704326629422451167710954675303805731250754063761201708012382038814059026525913576930331210935399256775528302701692616693929299250045389507900233034121401110926138033682056986532921007087518779355005990123492012447113540171040092315050739528387880912184838945379759063131495487090656611614179372978732970888430716057856438805611996048083594498563405419137423511918654817156135549422780508621645049733388196413929630956763451050799380182701188071306113404333763586594409310341896116246816885781048931333881635806419159141897893872023664570888913135454179794985682276565575005059912560060289746929013256223931849393905683317675239405798925892509464530299792234771657560172542334529778682922137038624306372354392325895966359447000342879324989371410865451750606573397523236206958941218683907445496180219236765085628592036693479991483077049123983720671357946819390424003431873126337016375128686643710408896607140537447814493570530017505633847726773160831398562040227525313022186197598738682777257795922843985501452284407782327004283032514720603235639116181885323923886674535532960755501990653699830380755440287986555087202638708180524306157656798222503164666914925307207242784631353781746998580743835411508276107248914547938751604947901785532353881475806431607123602920695025759020384411779535624666500378472695762309298310286159189737397781482387164951262958401638282658509681804673511057463243034579736037090653163405152590786528072864715282478428748255442722113866668661329177746225007034341490006645222331374141353008416982297101572188519701426322760813171001995260417899422995530936130955619182883530744943528583127338251944263440671027654771996402957382583097483975118760493080166064697428707406842476880488004514975591359558331345978937800508821694605308696083158374509999208823782406375215474137728366204768323345746608561366909790370072432901337149480130438472051144357041014553333569983867172728309227585622011687268401977856259230209712138925395094874984685592107756598898292829081128939151036483036458990279762481385452023777762574889273196317635913543076881976016090412655795992262870396519531082825201054671657935797388258979422350365055375299807303480724677864024268869959528859178071522038385474494384665212417633643479482457068070250363544800278689530442506212991510925576149305894027932328812568763878067565142051204337906372927943180588905079579725038523167162092485666833214166003595601068883417291844594731567167928610717353576432953997247269276560903708214834502649098045919413548720057314611203164618252022953021842609623405833584729065385229808833559238206579417490282725693049718121453943639403167524915596304050285788485628815893088970139372764912861109192643536566199957467036398941603199817842990446939354737579212595258877188701095372605166310926340979963063407971538258798680446229049928791065736295334192680960676217227839328465113448207966836673168504982395654201246381194371158056422114298690664276675383754786275249125307250892615448812889157654547959443636153915468555676148314735761545250805882459865999069688691333082743943214157032360542055004777968623965787152523486883468308646163581442526598885407633297239186083293269014122591981534166642666363921661083078881886761121754876739202506060020463228440591337535876105092961170165875065125031903841590165855476155265217678037184391446019774035119225820219029804627536738479650597507516405597956931260493482145819460580509369154544324691072596886665716185967003132074026428313667137815835179065130757158784843992095593190067989573424789271529488367739345064151330449745979455210464117998211135639375533632857866161906074792198285185827988674459302106132760950082517533836298421811595573684724771796264236900628193709438833354451026185521250859603391947530422198965313738318784489486352858872338547163020160645654963996550448959797101768251464869954628958129649594023799134619672147203285716868888214650626288598821215314892891521566643372642296432761701914593135470542172848040251933433319021222266720002284171506601431997220898973489547685630407568373349152043178810898468309380976327347708759031796703619570813451966058294154789709913295316623152747201534754833633994116044293229993940101372087754827659779792513965475105247235462829354362089026790775996255105037149086764547728566534537571169900920445626761627408830045749069727054457326245998554250770046180414228307053058010760233701955382104900076429074864622586672309141799740599415152664775605706380158636940143207548666141129052292555016372152019408527763758034266333880182287488869296696251183755704810978479210925425242297565504466829443450226848487375004619448161955183176065992012167752060258460698822500434377927806882804155339377722711319050662285595255574576613493365267566648035087882871980297677803764779304942682883418975382467526716236026196017561731295880628678614117360332492557782569921514235426175182017790220551859508121407876196310640253529268382971456804155438932045582434130476276228694254515571017695682430110294339116031626117969428213491946241581777219267772984827530018074655349855698466590060847521635639706757809156408204119677995148713422491887114025167764806014018307196868128896482876295140842737657147877204499294174093469160452312836037751339879647900820759371746423963228579393294490871903925206535631170792062278372030046911368332767501221463012171734515149380197643856866218194875644465382308593934163022417331147915494244094503828808566257278645518918290410208250761101614130236857722331467974369751327427689893831116626974035327047004470896268148541756112306432873655298112278328070312497997783580666453663479776762533751432617219986354148312513950397633861591449209342137402429312600162879820540417414754108856564967220296959305919764445288406403341417026837075965142742489936842445479551000280072492818983196017849562931614284269564639148996236537651804944262302481269094171859173295536202240532753001737914269372956443794740158257869497234577443898641972752338180644923354973129188679791133612049422885953959432273393162066252116649187756083795470692122978693697457448050045142851825260650500210214065104150167237663719389503849206440580061222705848728821513832064183835595091454532802228910765761441444259419427559490892634300498335770591236348366524714875782622538264218183706278858723417368851377525513580628063590052031376146657242920681419705550565531111933819532107461951849136571669230097293080371529253223162021273846775623558796822469068195628302040856104369600570187857036393860444887356387528284502494310989860461041463835843116882362466832695130543936718356182451212144463239651477939808052243128987222634244834262778603544917415279655900455752483715379979598786686802521186821771591377932470997826097666743717801008234944934482980210918767194200045641660843048726151579637517387368481541975869298649280499485509168449839822135794138310313453993137759031389945517906694102470545872042262507216382928944241990097892038583513559675012846191496670687272313335124651613118574539238378574623052028023249593086654681557285089267784473924115592089318953015361027343735682720278912980256239881600963552673290931503856654098533433250164342753079764400283849033076355135012110509784950642670886650028912314229897702882610981578783358340996928778621145586124852008602967508762147700851159185036789185666538270657771695545225749479815067546113076502864636963245294359401245750301409324376971016832546737299036505011842196951552971315759767368256541149501701093126499979535007568099398653876623958008004524452348668927576227478616705238462033866250267796155607137036301792587733900121541929777586041308008692086448684257431713007029634890918091442108578946897096233342373009173626305962591037602612538802952216691731992849248458123611415654071377562390873591687037937359482677101247444941505352694356426444003488920389930061317972696445019701058427395713670297829387484683908244009239214393608310707722486812374795664868036495089757228688464764756700364034788948228719462776976962037372454578724735133990783702163354720587547554149256730424830316719570405722317827772580161716413460785827945467227587312707187016395236177688588625645629740722047624957353462613523531050542785870770793492049412570357487291984658909583049746423565770327988585154587369707256100514648901437303815404983379199324965628604130576988558767731540447449639423620909335525210898247600577958848832333301737816835457651895900531419708919552950120274315597232873955289148651772197941900592277301390606678751860009708486755078143396274235670514597861846997026466889719429155653153861303515652759494653985544309520124072897060423714036263786513603011354218838554395484794422395800284639378284491593754052365855922597004244786620545907798643696288229506604620109022503292941786844677858936807972842205363975325009730166808325183777061094797359329182123816202379180532872218982360608229125375202425507177594063837925087614265951814942473628619620505042622659270409626481929755735891973032267833630255466736883253359820121613526505597058214051885655298081584309662564401944272065531654072970883946893195178209365172440547161004818398693231274949397932646269968164582202585683377577040893847498915624618496893642859024756916316242329409598024272643883847528875475142194661828165450850948944225228187102978931539727738342107132319156782675218483662535838923699393083113261304105847027779041782782867629626334151467491032528586990856364334194384787712945159233356215379520390420749241326845451007623449831138262851717008127447030165214263946270055231635671371231493855775821850398654050070738173900458790307422087520221769007602347145881764325219136760148734705290934921247327750379611657409781037565812172666020022380332165262592442964208968413551881690786647555371086361533699743729528473672851079454742755478143086206283953170619956740544814409293651749784229456799104480349226857770750815980170295332362085159514892548402781371468137526722061033304269200218524884580908555443997994753719795844111481027773175187254510077637776753376719863230274465372161419911490677615291521113727989713199437061411628786690075326158676153202368935409182578815211412455755858370521142416721279402537740022808230285487136766499427562610511645434975487060958528538434171626621143774981699596514016638919217719359788441405518315434941610857500682821442412778335999626783946878955361852329005434777022624520287302588362734208754339135193195461948047126796011985506079913849254011110890226216063163816848374590550274907382148657397688585495442535183134648229646081777030649326268416709090705397940552491559869274036115500907422619462270258270409971770864771132304398946228500475567819140229584789525349702831139695746435042215724817761443318563281840036008214650960440436879360423249434234456354045834213132158066016641972352908315287001097857190242768238041623676485614394474515702359652406777146011759615774112395666912972491790677071269280500819603447058445987154906448927634673476823448978723559854671010502557619172425479561532626574752134449248521350221431499260304552180213628141109263075103228357952748297254648764801239346461601877262363920638437926992147154924926545613877456895671979670552751855569468331897093076864485557677707185897260017962968642471307485969302200701822951563799017701383057115612433841755320925850167054783149703931899152790701066625250193010456066584631519488106905278195021785350716973269744915153709942124007502636751568434934640767461495499519064538641491647698397118461029746222898688723494406207903847960561805110059176557854257033274579875912100120139414645239757651484563607406942861241511102668694028840176250447209362286058229983197019818613352918869089223135486813942372248248429032273837532334401152070720257409744628491726015967655188596551912158147933446397322573145488816785939280760697994316478007192588476616008349759035986989231840329227772617804470816520036672933456701058784366850769981021041664755481642138656253641718862926914077436023071981953928865627544589629155947239660252990733471641956668331474524223857846595670273915114419189264666939571545398028057788104365398752976112997468045960433584447924450954848749571746354520975046603861428314936305796878470147146531520642497328398086489578471945349325901006350637245433234591336156141407883699673226711827896051682804158825020159983564812405018264539997010515663885342179934379365051825422517048384416579065336797072432368836795926611293288944068168179436701506118858642301420643543893249489605098895079050847496666996934815766823797096441525594539086581133160729955705557450404469383938762557993764659089500833290472488484483015720976324693987001408531610969468115860436341948066553776516733011716583201086972086734202892463347676044656636619545371231363843862013872496692008343014186338616228515085869839339330844089204745286140126843720935854238910658824848349101148955896778209866982233863235719369776929839853724166412346721118256726547508981891371270960458900699581416487668855224743975419806449281442712922238274009225003299424227486437398854196863153585044548641925228328303980660559891668404928836566511694798405909805542143312881499116843173106276688671344705274023807250328321558701899459490596606984141694688270237386634225458547610840521991914726109773254128893644215956541025240113405075162627732531771158893334665385704902351690881367694095231210462487294603759752273379063045586666309910528146378352302539296151089246397599543593760680843530826858325974785606127302085294025463503016572336229058965501739892780058747997863284358487555002351819247348334014105215024217405416627104359613783523668081079837018730589169218284206998362160930059604972436198412165693359799712349432329500770756797457872359770894577763900883273404043065224408873157805246743117697237467689814021391993178397947694787394533104268944565658403640056736823287871420418077712216959722342055112638021463726810217028327735750089656999088081714299917980605214184737969445531012712480150946294361893907487514941991140036246997708839477309496950680692915610616394479864680577202572197001579270337718980722495752094209744231472221628066483576705073820772372423985236905649340036484539275012287600725522085988963845238556980086533110112096096841202214767490830348203716440402928149117552302629250269286458562225154738435042773246633528116729763169831666506468328288402487149127991422992120062933839513780771429354977163957277576794495149415658187739084254928943384055401847175730092522312748516565130086740484173354274818607265712975056557171886195111173282526633979074649767388622010452609595599856704288905485644954740681119204837143823631848711803069455585354792496343199050667586738138960039921153440017718025607057792196613145291503767509622855676818364379201183994262501691405220230502176040371025377311002571136986722804350706699930109573919063455639591119157115812030044969130804619087153599499024149897016189438407307263969199062003134978707735546249216243258045694943391738149017112896788574503927046730629620207396551423145428320887376956471916937776317515439773905829811029674924941718352103243656510873409264813001350471110080226424929499957602337017277994169049914162480980017121281512202167015677534811947145813036254482172322023279387447552068760121726488666230788449815427552965282692751677387596430120067188883749066230483375202688387049392234073625168232302380449392017046962661461720790373439729521273975056699243958180865591509855723761284456841745621868775103736435693380827435933026715187460355608872695593885939743410955334688530504491477111252860372578640738054379448335415615169715015118513152549013105491638936347408990166860287434340378306022610075358232298138322811910962923796076630604723186417658268281989599970275157518475386894340149286529944069089092043685044808979416350196934458052722195157333513272111224704321435038622624871779114876073232417117335303244716748197380350574446091379917822449904591070970083794058788892396297130319263777818468177636522252646517414422262381883181050648829285111885857093293132498035540115573203199329179188981627459105245873764099346204376120107074537265862457854652191060738190492850129903367053078555237699690279423518399626725488176405976023748664623435526888907254117809050205305385185015630612893213198059393591650782058426699575442254182713496242307093857792784304838445204117528531812226392250535603653527052011048258726570435154416742712201656731789329813667669507707007187505530033157339630331771524504635507571946617719419270205909143002690021698366643650402015668061413299010886379137936461380875221694249703231973991344024525141188895408337214428907953608139105777473945122573630646189770327553217021776363249086981674816421788907946415562760453865246047589462304668362324333861767972422582291346017219691235640797431245322763954264704579626165739985699971664481137559838737113962503743237407728793604867654197644169106468633617435682991997242735498019544530036688428635733038665848213767445521727096610249514034717416810193289500118266027525378355766636660460007053831321464485527519581249710316246599496573281507433284369254443821773856595883651522053473587970987007542222069611858694092980399022338676165451579894907457590309281996433481753429355158474925254592817744219188664016160738678053710422899963610192080619286960155977021390314382108832569035624030073393942583248584962314394747341420187885879619427614281746147805408493329028032669253547729603124500007043846358272026393066175088403223613113387833508845635637599255273745951458110825517596705035229071539505981603951481137230618146681190832573546793244399849221068218835413143376578700476114354936281718821009902295107913644210685215644447584166367067284139380402287327925980891602551054875107055059226383938041673818974224405065147163203588624677289539388699385712353756424891593379137786538310365135002413997196062511030798103080002387065868407221748699027646478105135298256187113376590485655459744368532605754735031492524291578743058622828946367594300372421849896104146067792211089318398245034822796898232743075835019448063933063026643208193813660327542023339406799004632645513865929951556307709034259575366798121274734125866596128194550224739146579188226033503416884620458387876640490583863032480089567325128793472001744513828210483468738701566813852002200365888788422882573838126032558367703830134060459109849840191697145610976960527734501986786599784353789230312853475048455807855013248546902455154114928204852440595479671285623280820280486913905486228349279192771718562663228617641473540292994658897108949637299455791264672642618401140483206905236976403313794099985572840933661710235742654341945625018978209875118085526343035350535514275172974054667823985945903900598324657749574771304643551712878938238804878664081788467596893610160338996913414351342723618953296502516431769620419652418126048786558585637785288032475878307075150592414175489310275633860046948487416868873868806799095348538913386639097203827527715700923588255963446917122365169776819187356071061657372257496448924049900378506829422156493473413382536035720029018038227159298165033604827412458202294008582469203380993682051984825453484688404539123954125637567951713487753467990771393476546190004377891381379681726394470086293063328224693929851373583103010073977844226042770348732114903975333989951733980679947614323300194724074205136420061420854865815225233249646387818577495070515450508571035538573164936151624641028206758835457860365695919064520527702345527493586561463508181760296365449792567117778986035353677573446094875283478184338947281273135396223985177279676833914441507965315753537620683071612916555054557803865638360662112685054709700446322326674743256952708623456103096263598700090529742248265508614707957566127307566072959127382615600591130487108469047810872244886834914396572095386404268614810899540440826425871416698137835499053685743277250528885157384810321737164795069296053689867247881174073632827429402688083822145273083418987196526858792481173590284968271957600066187223522507221808154284560045066573449450187548768172483210354216660069879223477824425792973544529919661073020837016233337446783354637901009195968235537468364376831960121993938470147733311602175252755395889973809241292147713340191695947578627000455462742127951430164171264096693257081124892755392047833570018398070687699163094789381728953803503412948707518559742485002440484413730509744297658019411328185308557382586716865123011365342661432756166366674805259744920764398627580933260037611517077621011876047876557253202850927437322873635793588403409700506386367806177347268176669563147273205727692336045612687680133992947242383228175855908302252602673333318725262874452724876172741510466906712232273529120715351749103031566448060814608252361019413672220231977830703912865857826251939301003742990016027548656083153506254149115265015290944292193110892100624033697295923335066569168264117962930734043619077132270989350502148496853963944779263331573623198166343885809335276946632000522735645473883505226079461071044132388939125793312203497601108561100275842798166784236152606330732677244736029718108800096463149004681077258203373815687665966287825469305827017270950805390887478456903827222484277899829518311159222948618082524881478964984094773681414157976530091206540272933734990457905845344941007807870276366328412895324940436511270569560972749257002177786224990398236973397764525337685984086173272937980120901825370100613573734675680581803855434032725339226703796659232015737704325466100580516695100592219871301203841168761374012289055845598230816920117113170692702272887208372402068445581523064034241978024683014064943550287192977825953661935764546480187463903324466813076021172634871629880397274069204335930250210503869784424256026495491324569172174832912684680945040224696912469663244846466223434633976752725431519282421187645477246452359098326053589260642947133765665403996545164241177475217181551556187130178386804988695863173449722621317689289830486528644646055620367834242231624672138912109224534348070788587137963532520545432033618304644802498803904112334528362702981907290014045147025882633148920108254780271308979996088390567231197096165722859146678068840839859712232086230687423978921804140109337751847471114066993828098555548278960353783385922470576671463405644173881781370305980442408184266515893296193815194058063824491057103021545708436112184872808887171405161019091739644230987618364923709752207526111952386318876998201749629067021296868737114684229963519976551404685577919204472709469541078240341362488322055169450368438822993946686798950472754867641125555442544626890338299106772517104677882798556103475198679701402147006852363309100953193113104913452662803930813545204935088852971774254959958023169041223241867770288329298490056865961145677760502608444630150064473179194628455199577209079894556636314175161730138725701150388261500811343635051898313663228100908835823228887179766412881980024474350168423768462068022809074469904117042764142602705823231060318915135762307680789312941633418688868077691291156372599554475139789691569456557759608714812283042420717319479878399635877797032146613291911627482096767016449353195259595621767959916662026205400647676563024218605057489825311956049250261781510994001997517627075604619636162096660683625717281248600014195952818294296287299517011237826273815515694492352059264764909922920692507319507548063379009383485354275504542127664348765246848974434452224487631456841979195425645153420236978528116957977968000826168866398583693748028364691183299549970443294174869485538728128843216225179059522837415577778409558144280321359498605872214666994689138508144662524987540260061962330601663161739195023857412043818256401516354984210457830039470289494795658286641203366808139099504326110153236987307056737304924044457420111693610406425343733621479016900079119411439271918669011684651554738001196269756874324866263170350229210037886879938970970740103600730970833957021248625433636051277994961101631218449451264130302713893007134766093062982121421659779936920265905806211912374179324392344749253822207315266372679203460204570144052196069048843552347072044026395670873642033610301001959220984219227506087958240098988810564729811434924406073816476551626920597882016881598969799743592045058826203464669116060609727703741703492024594504816247090811677842243895830525841210659496677587321369893987377986631657979481003427090728987276454179227860251757976802997596672960242008704985188903456681167227297227664862985354199677680287305356052252540123546241133314928737984966234579232954213565411643324425184073846278746616296630440787543898880939109347578318609712741186378504313822297275258683448152073793763634865982569458614954407796502750460781344258845691177506289995076061487103977145934861517615337333720239295450379105392534423406171694935678943812991139257586145902855021751188130675745396774985843535629078374506012279605821500768618580938436609740306400919748660611043419923318788682924881555825241664254852221575949351131973215548195693634966852064939356506008979728009322633617131911013723399952382472072487933416682173760042599618403553848130006840912053018606188017430648827363320528843777116063829312863558613626840777766936984664548753789328653559922966169002375127023391092129271819758533300580882097784217063750893335892029370733125682100569488710952545178881138248636480731990645534397838913726224461224506232831989246925278619690783591487359359182802556639440568649906372772617686706736950493867120085414749176459302744017196317506739506178986649175586772747207400817258274375553267493407175150647874772875403215064965777949457776864428409665754614515764950136187364146127528199559781465139835457938590903338019332993722995812355104056266475191298748786808126592711179726220444014028721522702007071881485228145018789643292502532276700494520365038998625350936575298119951969809874638714917899757802172128095282411044453270621855616539849956455068606763538316046809286329962552860926939112619365067949526977502243994673991634995128478130282927983620104810751817201944057009167396923970739824033572341498520510114797427022472071926065822579477531294888677051725401298011101587386192083758036386155689257807698397886762277556972050434243501257646801905204740831330908190683063419089826096552130970343447399118680353940085663659454324211490476070833864987482389040562188028170382081255988537790479638309459905671180592410963623293228689074094142066765585403776901496738384474085976916507247125289931146174379945947503289708491919691144700852390557486896454724119698620353083971887491050216713653027641097764380957723051416825591521429037316169275174053676095512306759153246063002081589117786971416272283109700675680952129770771727451666472524426948287226995171790498183387567040439794416012631700195607025931276132054962982154320745881983295356215200655479448441796978510000704625570391120908793207181102378681223641775718529992821833071072161845145157735075603562495334606051106495090409716315790181405921265472142803830241671269168994230622620528036327535115615432756531645023767867858998218794397735096821651667248151259680882365752504334835607390973538040692685975330453960396072776177537765353914437324244628854393333020085553483102790009336008679322791783654227891152681043383029290232840555767484645579483602608724318708284976618929323339314986232192356383747666423944556420405356629970540850128137280553785690687866330955169344366037914319056559831024230960942268605928587000731036453343555250496183946512796697220332438783014529419039609352448011035148130119805335939386919518570794572560687524375678690415614514826629597002672105223641856784560053733037111714148397094974661569237309604992241541140891205907283823394930381876684413770885591829016649788509804631100202061087547359643429952190796607941064960159221179648256395318163051624461841526809992638856496212042209763947128991687999432178776265434390405495916551542109052043599606778018565462997411434932566888827589790823730916419660562448476658218996186707235061831137125955969516052958870192722665382182063812633199874251399948617595697892379724800174385831057591293115800672046555141195844968597203465223507623361403683472344791171865473501074267989833159291998364512276913217978642137137536053731545648051602919142393676128780775263547299092296650156758517623317980335036471399853368511190945970883682082984474815672725772630344346540889591382636157778971637775807327039853246317600031686949691866102158235742114999170359317884961864316121630853720375006685412069336297789705540307720019777859891522124195856225099958809957609567078374590844768634941165037331544055239916286910899396563082271404047121094876573574610512734800502913902992070498778375404903163314228462856839036386234637666501521921212569091763661266234647838930268315384451909196359670661975336244152848686994690925003810867579638147711371670722349540903994207558174276967628592279985507903860478535312437432611796354988040519924025727726461256003529269529625943439979402836943181410166173049418686284863514932271591684068557222780542719325182543194496737493893400376717179600148406240222926732819803566756017012172960857884602656713529380803321439856490253784499076851316767474241530459841287644673664248547294021383911880848308222052077136812155405968515288532521498256024510465234189151983421681003153216970371593797199285684215809428513661367796625209442416931448018695243806487784163282967643105024644212952308126793727557855562008909946249713683655766934810932311208618165673990107640496276303701998429882800983166741795659097911937370405279901030649080752985031302587035193423082691575354245025819350656858516616080316134343376155029885139437450593998973124649451348988409891877498652940599262132829989214169537857578381009439565458461001029404725375406591933899744918993509832494395218124307029051362858125886687575092352665486597182514527599100045336469592068229257267991398275713979468266819730227621199471036757675478186634765795691880399756811663046067189562752671995721950674699653218508501266742002557884470664256149699916652337322461251638600252327640342667667945041150072857940374170174821457684701703707700808579489496704197464788867771959834261808147186273704382432786703812367716523712794163407008793350478982095668329610874789932626963221221616164265331209051619586995268543424036228214272358198356074686241830359079782643269023091437387605789887231559815875232000959624071235254615310890123200555413780577386913013073933300826830995211723188904706778130086652680394973268756958499122667921954690316607574548629004797941293480276599184778301834499575931214783433554000010315102781910631778924559394715013731639982529241601950483529151031156664705023079223328229082681294773899740924161645922299908787295023602076926528173488661444137507310894122760117157880857073554776392981696701413478868877169689684519020681322754406236874307210910453349836038456414428286868354929017241618971808261317016064382735363446157505345662798558823609159434815557880828069176703207599610013994526348026140023722338395738374184459101426069391737267434643993766027534113116646762152214998495370651241824069059639039904746898520012178054476708533769525264618196741899650207378228201675991404241058316877456839322496208132301383067929954580543768574336320629213779776235009270442214949093963164737546472314737400525403530637824748415299458263213872417597326946728626971083480286669885181107706249019089659099471091783883571146292444079541070760442910879493314022614302305073421181020210405754485211316374831077835361952806120288470800919429483810212769825660118560080395043624295149393893063195333499632663535707905581119696668100823829088802935797965354638678928079750239080170454292392914283140331911097111332443189576484827867700248876120018601573087003199987403949609456198244995570463360948866780899499344971252402758677351448168015137527975965694791398825123628360887928261209673330565580975467347580476072960564739394701319614322989680914859968461247422559312645552383534386239422243459776488588580948550926072756529199018766789261050224770941074658945842228885637783410554542338472563208218644334200626848368176386562579354532878659871470387401200865186669474507727378967954589261572376140086090112764840517874766839703424573244107264647398409416743322203546466094554105734868222957217465486254869989475037678907309317901201406684443439669251465475220061382415485496109874926598122554875898898457158727448231250024555500012860759175170719975336943999220694002686135442155321793654493606998290399402947108614320106373168872951808876428094665982144096723255846865431827438162988808216996016062141444073760033318037283080197997485839804139062464251400940546811262776188417063150293763950100411926266967447117362166498546108496545071852008114660099206817061657857593789783088725561776147240734983132769262421846804581635998802375185222758629464862024528110796360563780964700266442254453949853997437181434796828547359700769525235965277760940202769858681996199564798816869238346725957701551486859762841870302173738236376563441038361501460294343103782382545152647478753466517965027864549880513197920861882315999640592215494863046331315303083247485882171338544354064329749765552260529566912282273733966327842039882294705578843953485939571621417861371508476806189374195847308614787851247591570734614746981651917049864160468425652333477355458905154093990466998089786886391060456932994477147333791687532133076348598291852928301538548987755647711417217169573444260771751963909287557240354216053366424657393744958116637064854771408561381857267328846068340121262164061546545940939392604610154796186757159687354590601571028113406349153632712860359187765512549181598186759649400627204539315883718604825194502919428149559333929582678845186589259564157992716783040116513353149745559184874776851739325606245060031004606626836746790942302642958285088707733844468933141287295851625361753328442133281502084977327587159360959801384797190353808595052091075684803076516857588162002206679267780822946741845937175883753108406389126685380612243575348255256165304576805485885028875058805533048164594363514538310837227835488825387103439290657060372368142317861082085673076140762389873281638237341005535655826533914076563938174903221660829834059281080777851065143754150609657699098067321918872922477717082594440278191709252565829291767159391900834432550040946779984712729245805030038611802500913922772917421330932201817026710264224173962855804234767856011226663111202284588571832937786269118934732474138270211599198254945535066808778608761110427493032898968157191677306851759104163834676066387606289335170608833228096497166170822680389285772692478145163135730117578739426241464774852644367163691043531110178129183119109543616091073603393848355271014484113482056217658703903070413210865842960728979130456407561534370446192283276760360349426360498154589771942272884465731033806776053382102074542282392658676094377164516908495456889736634779258417920154716972127073642222351363976610532829297449607995862722669945967691660581524092223152663309609842102829952831598455121644645588731851219281176229969748698554784472539777793367015839213013451757612105182698671385698150679974338890718400067851513198934483886200306364819593516634163330178848123246320774816364076091427339412378905576312100163898666644556213600504740724584781151654770166917132306223310628353171092797029382941233791099531476885367373945146549674002612993858572845748595300985105713576844826510164926781903962863869665229742521162892561080410707376154038281372137332320854222640373747015035199410642528284711772274836762545398618809110608730102880586538452170921148058860884190532985704440920144868056195634952871640831631153480721418386639383959478119495141802362453221740700349061235264432170871413294855413906491267703082315266020069476871058787589248204866781907036141739173779657252098107622158099504660113248589111765671822537885478574914445725177224113746932874988708126898560474787534230790403994589247703528992044459480217704547678053216820347346729356845356011388619309887332664956989787481037791577452045487493601565862728742699020210164405689872053423953190775845044130114926702447224587199682442632290502958376085176230719196179919617202769874169746682172343738408685370136843410980064712092973196153658289817158625089345464517387459945096181010228151391374569644882533065942108445912147209924915527018797026850029929950090667721032788237104875593339384246524598241712563042608331974349579060310590928392035836207002112892282672921508858468301402633861597241912240188957916125335064688615666159419641231657771582794092733604647309354694376594730257371366947122915745174550731569371883854110234494809188888404583617547885682937855046524837200696013329905892715763025326550057179662056596653216574146851647585476731599544563858379932575616826707247989061607085021700719817863056455584751493703338110028092904338544302892597538715629977671323668572434515095584034463729022728731808629474633069205039852085539924360923387470942902115380366159521845247350533509013477363208797996336625807130176781688814248363601202233121428306010326398040109969389697512509131798874141625471971004732401685729134648746712125282137528569682023600714149658086597903710104037748110051119399646646715236392728150833846354943517043763058984604734234106252858222039103197545365401372491430736155628837825816104621523445052946320857157709618102769541278423203906397836334387388667168777430068619981498054539176071761692101723097530326270839994604678355504612442434803183694687628305623841758007409389806244615819681696160070525395433084133143045328068520918554485921860955048605322014799438123655316195215088770387244721212627291418062320069899027799893907102989132898182013908265955817385160840308703437923625889980762436780489938715732050891196936749488008418471084078762299593975392497065650004551269293063062767245980462487540136730612171397101046614204025903216238917870839434484555418581704349968170063796434162582854845397765507779799597515327535292962517242611405253513614622413463858035664653898522421703662193483676222839856570740842553008782558179653324246251113748482842519708208543581851903223791406561001386215295454417176127464296554362791837732982376235610548418895084136659774724373844187549841524900028244518379178831622217524764042460610627783643143137345004471132349799337598957495424374741200804725838409499681397578405388516433132858647187163074443721038793438034356025765280462353788280786732212760597707559085766967815783919829101591350726132429850932848505897805815960473212383096091257095615091522303448760077997511972008666359244080867214580206018892344725919774970757185434875602768172607692806220157728219057000386101698561549905026171557008322010956374633149433473603632847464594003611316584871868982845728031124664560319764855815880313468875085260677071272030908452101932972047084768940005477729733545687941439887788297348317066358452847876824751827919107958689676338898506569986911772914777112390802039335749958686242880982574093005559832421965503900134299396769933719194474876901908340269340872981662060891290079669370604288351265661437954807184237959387633296212879578086078975766902012827179901145376877817198817167378742204757696256842263695656294358521670934190245015491030830324765281972992168568751903416606903426598834480399330692456760343146293331008160830427247550165934207126293424612922144611234103677852705447742851390584786504585062228818812298052956095336373905883789139805599473768218743467342882104241959429334282877050271783269291527733904875345032164399106906847048017186352789058027023547820305362642552248630517370471835014388429587880621096015775553545071987054361198643818931492239121503984920535620992146684984413809122805010570396159829266237567165841238672587169978851937251982194173095292285529768961786449643493445056339794976367040933623461419754576324369362933656771938006213510240097215885511183461064033954397020757492412197006280676130744477290378563814779712450187173528891308891686846723295720035129131922447648322431987723064732435938853374295265274238300204236248736442181350085134633331720170602924529469894852545633275249305221562700328176751177477752857750362065331320685133007151609809240740425601350589721105531351424120421788145901280840509465899857143065835158114400768496973446624135930539192737040206044229038958892806019167487060436014725269498859624509254482357476189177583812181441480452353351560049227217972019539593519208673535302039874365294714107510241642556116877191837649601857323930692321917689394830706327141550286240966700542940230985495511921190531113256115786272613569781314666188104150371410209669946736588466207361192389882830229465751909978897557644693662039028939200740666083095280068993995485279505401027485678291158013163644032363588919064996888882475871573946543446800257156284467392208493820499695295536208515195020315127920114122213091686734269836175690737420758183601259936585684440924704286096236496575047387871915251175509333627506717108576085832609512335172087273681272966651509996708855378966434302988759601043536079740373433289374913936571263346207022257528047307051018185330169676741557898198250767692394427790427417229039173201879596578165947096447140565708855917957027601789205920580639982923264157445197078341451011707635621284101034441560804664765574571633377605857668611580968341003413296728620071116397105128511532630715984318103363720691073868658560923871694345925182937867206640759700264508158312574176720398304944210174455980886105905614736529613301581478330357405169685337412047769296943750238071233158858920180218428658732097460856583274926854784574247240067753860851487179032543372007391184902462537199969539835153710555081085897972996387819093048291585165863497443227256779836786498049488326092162219109471025978748371092595280375476975888891615339035131922071797329155422865331177010236770215988799615962000372502301044809468046666175665964594557306679787411989484330989659113164534987921813600100002924158129182264174783580254428208920453632036983257011967562120731591796187746089769375810385909112807009461461591571304109498842813638956328024274781210981988713483626308223855888614162912047935703010118672622771386522866992242476611443376513698016866789032582298772597291755722849195045055298865052554510432475761300886694984631762945425696665164847687300773443741709172318098255927091801529144557242781616383094378880738107965982109705099776193351834513799452024020127642323450651672360760951185757268276677633664912988540635874414188547315804969551429791949988470743670727267059528269854135353045617116356269275412337188019407139327932670378387253103695105365288728139550027578567440153709083866199107153917349642108992389278880842026691660691059409218333296060470749621388178050822499295868131006151281279473981370070292361463083308960969108423953905578980724030397523241184421699343428901337401455083216321040136077147912514475136732344119031159374020630479566300502430284915063816679120221153002868402573671682027982933089095800144770159815331866895415724479006290864628434471639382605932901972474258668301970313633119434435687513171079322038910608579690023218844786215078916500361875812293534249834063105213043980017935544710573107950375705856696547665324629338264448844779964902853222594748801515221391704481211240287507534087567689139504594907424684481326976592258196703805793476560406582181357192444720698402984060877156845417285020087279379624872809465149768670769225713530402567129922976762547418077372759101053213519039713263992690476194587685536823379994919525998800730170388020405691468060390425660091802941540411350410313739459553088520167434629135697442748608980585664722219017367768761400601443647248622640558091759910106645042370901704368692736843022080125242880350720319351223512750556672092915238137337700579271163989288195941436004821580134503969188198970542526030367054406697000154413254831637286158174030643427296038616278490705799257011442457024617543725351653003863895996670672861507299185131026301842198213592546937335767430243685102671300418327480090287165348386613919087133268687026410348582492417327003337936655040640067586849830039496160177773119835645362344305283798753067610034205537057333928318164508547200507292304134964217701769296650979797899604641294242571746446668300303870825269312417513173023994205675487319331909008369605707370822377413673384322943818308900154316941913545521384318840535071421262544945257366874808661461621111264420411438311117803018207849872541780233188018868003325708961253027579543892119307579603024126260403161222979360495160796627428054314903159180827741202346199484895399630338265695238633879895978328921364309250400371355939827916478128126650647952185153188273525692846571714126880665163340640312743290244701471949264357735932206585627020958300345686171498200228287354446024186008565998917412329519882986446068361488760626743341204719681478983058042435710838045588323227938202356846270358192662215503822847167690277674199925441902103663312351621942073149734713443901091425101758483814410906157778986218726975880316659499908589108788574123585775369106544361055651688258963244941910837394665951174293925777692140347564543471880527235259512029964970211260585581466218361206302199861480012932709284325694787479920728788984900136117634544853192366943340625992581674217310957044061035443192863378261713277450661882147583738849556260122905412513590716509549948489877996256563468287294920822801850276421882139421124486586665788017539954134424668209226916700998161757332218478903680092628938932689724901600300852285878716526630714833162493113543641444808867389070923494115476393699826254784316513641016541220561433519517139858302670486033199325224688035566087033778094155035100340510677598612845831213338031366361448094432765912679216068792304230285450175435189093528479843625675639970430531818883070021942747001912050296540824101188045545342989512430876966696492619692634270429558087967606128960797647194930754193025298810070129673513853497226584626857535385732001791479318964100866512020866840908010027004169605444432069317717109580111615757910882787828509329317562934609432913308227235928831223451182357281945621551093435225486583574278207441364518478389073610442248110501544585705641990746645121838359583025529392128865304449137726726870709067186983892130573109192931680927390379320239662059249897074774517031923797822762773091923363162635813212774257796585758714759581649060267223526244433241245737760821465488780912243831344318709790478850765619024235818834710580925294654739470036562445989528180482197080754939772274036802032365924682351987336807216750126097168073181953826941779281831377610144891542637065404323369776395483313797073579581962882856800905039149809604621658123415238938827181491224957801171637099694947186436914053795811628131131159561163874170292440609889176041117683107572082883311654583141173111479526442641158403051001224298113703898919154495860751881452022247668413906147076461979349733932396707415753229091859092215023973801946476358358541153043521505216816459472560712653544096351388018384953744917121872652500598541213790438785095420419827243170007763767483674834987511284174471193621167414961657085327449923207135812440418230591984671161322296065979679263941321242345190516065363501450637274819506922402457646533962034920499970732752494460951837407126440462997892112921497478581069041952469641976737768997173488744461266085785758441726697172456532477996765744091609843235377160405201825807484251006091503476991253878599411219381306547399524436319129927581976405442464075349183994103525592966976920914673369795094717732452637617039708156956750782197312956817434399525297631199473861608669007931737232312157066014025008884959544354835689105059517348726638778400247959070624313700753027041020698640052317182335387410523785213847226154100485547569596891087893911559100692889323451930442523945227971874538868539888151764702941889847509639651525840714431110396383947858958998867482829275688869255019598066699321307494721823383740429224324910871763555266760073857170743663118293055482841319296432091047198928937822857875477946656230536901761595158941322459693607912986565262995091349812192699506686748872974785272276589159012821654294950427922086228807737063831686798309820139237041498627701532432244405202815632079168413618367775683807019655803588569794669219745733813837583573087394784953095219327049545347562885640841535727982381444890426112222434830246401655123726701239344340369770526165605689962388042683364565961368479891346120256626163552004139004591290641205333421292246941776314268181506477808334120233091740242899282416180573244396357006008625339979214249837410610825085851833194094497798568368832718348210977722993079712809631508358716340382471785443165606173203428745022181110435189846240516320906225878612099249270163438673042120973832680247824882258370999478883976026275630485797126324285340869803519942546123164027255998134316466901481771995486975478730649760886784103801926282585598555793135850868664480684855907573128333254230127673250214128829960133959735288233230289305099451521341585496076937421396395968078161405259715228214979406230305928255071892471967576504258906158558620796323604009556380825242128671053599146399487011247460150391476050738576956467077475058972389994772983650199402598030276868271016447863848999080921626316056419209731121505944368242617897086510088301215166493720683396657361159413358953546034372730562004965664439240183766120162535359823506100970422864334250760150514384061335613617638603667627056563919848437107162560261513363905622856508015308200935562481091083662438315283600912815785923679634400941910629838480589471196765939144931667828019980579487308071764832014835221727329984876575001592880663368365844785402444707364214017257466150025311964941483302797509951961484856557784367760704443131637868998272280061060566097083979431876019709518905014249615524063787291018009234236861722093633918233239115050904809753789608447529862433551321320053323797673784622002485219126644227882656447460302441490892643569832938634848351262061495369816637144302101421642654545725232793014292874068681213740923846498383767158800875725384946984608554002361732880695184971683394518089700194496885267715933002678876570644368263288480345032684711030116903681319077278142382853599138223104893509868496893286631074003106553735534427234510389370323327163902737866543162786241501728740428593648818615952779404074308740356080286393565985642767071553092333566485044694233691573720443222134997883028051182067782746963874243079863322221731914248537813046376550218313521915074564827880681402997771423255710668005473616933477886505924848766592549778384362856395810230043388979613174496255778157418018690673647054479390799161490051526354656942354846638206556285861867806649222964124546921808534623615874574333450435175107150744832774786663297782478469386976978687879689085450648474675249300472299176232154578276323349040164730491840285879160769358322267046467635045151295800555229657207302886247157045880243826911386711262444823671878909851328171828948273455311234840817953607512286893331214526721511531191278930840848780892010346891367377609643405854997141116499767484829651657094810043818931691555690884443492821558438579277931423046758597046913904514967800965784179386369657338340310456593131018179919049761672022943172938444280811045385883285229302745580379731748236593100171677778178295506089734512154475632675428752948014160164682902654064892400616537573462084259635844725589459650984539044095566774432941663167468980666669534040829396606271156756744983862064268378615524717127287144887212574229115299525060777832230157977770215031948729739503952444501615149642090554407192941839921508351309105745056319898905393844034586764202624219278392525814616178602353544641301322705732987540024863070939912263184354806274489268060696183741200546925199118632913708001608880185763049759333458412817564394749968708127383566814814878187673001373647667824445269087039815037865484979739046143382099748751437574931166741381440378788938829813136830350899776564127956086564457508761977295295561495206576419866868947101654415292255529651677842714897466160101045180879194550703264984739517964676820509074797606281011032070128348460739704356651142500127800042798721012988951273958043554278051113631328997190642451460422718351012583513039238636915059984921916081117652013610267485016906631104101026741169411080284487884678747917631232404741877809881443210126222252591536639281927315029493645626450571366319894248912520261806058089653434336834603887949712347420227666952667801494798138102223151852867563512898615777970850055145657028223799226104920972241787707928568132996387441661774475113686588451010879686230605650714180872327705944674700672220802071797950538455229798672893926848053937315915785586933810056320303648689100197659593441281642043079110947774878000480318780006999369378694551060283663553193728035597864338938349009527298287461608799605440740889376678547233181643257395827878720693659870218549969322110696550718837203258552934794007362528660470667964978508938843468906564380134046251640503238030238644993549857876100898599536393277772866846911571440674214749197254219383860967957689318617559435056010437236050763794865170786918660642412135389723582508597051920841515865447982637065723459093613830721138283056025564779357268553173730815501868796101528143832094237112266124292599555245334935575908174492575125124173262927442514850321335763498037346163279852253669444059864072608019822601722664671583278723669873936612778129748176055831290585531872716878897567597290991288323676203153093315060439684254811027466884304808269460052855333148768574564858827745951945496882640257526097373016010326851051013582902023488212959870045572339897159571584833934303633111163929646755888927803852506799330596585202769470145486245733918895327556101449133657404842547892215454403081592130996688496027106029854450748491421277851725041613583844678868032702799673062268063498735330168386957461909723807859642523078011278322524439012254423937396335878783277392708619318115612474243626473355116030748960052013090302545172286115599745084063732417179740691311798201053707449773974078224777345331405944481735566750960116630951089985194363189677368018285425485160809374321275964176931451099321922054517341473165545484561284449498179580348427051037200016234480288694124942942123629858061242643964004464379445090326849654929244516231800150053080713009467027872607610206128973565966911138868674791988089605576813241236125720940264959934653401316049584791795157154847681378289470389173833561947761890191035282878540942715437596402398862894083515013339318570470462596630561078642981785892502030247777155322628892298520907027941695948785463889810544209298632895334627094283122044947715610228930525181809974382286007980936928381963736492378903414345321559646548380480628695548465326270572497116629506645177568067556971385308893428181902957604374299634324373206549349144104584172589266308331141356938778032430889707167442093127520007876548059198797275711631542916169997048067945650780636471355907989936187942639245400467499320998284317073734887042224593870592233056444929328334723014509894104197221904656219932131811445059545491151119865694490458287848573325181978661555872511892688104903631743605187437228997911101201339738019578150181050795878976085938303267587414594395882732695355824173868027866370807181777427274111568735851658922333289066243787965147753432450043663377184954036905655983345319907523864635891845736450543120229505512625441679753538755670696703144523609492367457963343798836387344272940098100754599456242542462155863625154468758646286946437377397533551038696248581297722568343915019732341861698364722652476739488804343715858788672046795768085830358392303664813928214770714454400797954485293827665992522431657547274411528229503211099997337013529073626897875134445647359035521064485087347957350694264809021823323662535313315362034982614939805483778519993131675873079733492264996008685463531371740149956973348036560769235947905250358431154297174255713588972943040286026941971832774010672405919363462768184074108141523111052844488042798414956787239012897775067424117475548663311607996681002247735475968668284239566928874223416985032526867242262238649785284722091808764252470539967285584852878148265890592417583192184744061997880536771827281444742187003361331665278186077787515083255738072742967739666288497119638651289045843631800065960499737759179601541898051191459248349614567015409291466295877098301519808106793939594802824794088115041127745154687353701152315696779776510985457377297431574414591602216767183045447216567380786211207958621259310748510480448992362487030213760172376174862736111112839914403521850366019311063340212977367073081981198716486380187376834233072574614701634843617100949187148047067373813933465386490599374935201580786874751761858979960093621193988061662905242354643107729547425712290333505846834521170531614541152662226257114088161800303490342991974783804708692823343212846765292087185983108122399419533869323333130052187214132937143046604642196716363893749571831199875756198994030492054603149003813178304148756913217545890633107189841580586463831505254650728884896110787854598908167271634725795382122495244877832870433009752681109742448606409041005990147788335384556691691887658849076604490371424111808078438401883798120054617490107260431933786869904693252031285771845880701666523854487422257599368468072683937420743735180845360831270495268144263957355332310415642126884835327549738065901863507970677650979204979509741427969945134270487768119891142225289040565018526373504197017497200383633513465917236984577056870943559151155680386370983552818115647619876416943510065198282590427566331941557675483248663502313640605254414785339656653023058897721380035903526770180285480453260921208287098659486935947886543757435924176580412362144624588910963311458316957162020924045285381920142477163598188814516044750285987213695407469623338742310461075575564133802123631386872481081971083900092457174644428474625943665791983407085023923979573007275601526991092444869712621431640888343419448231884463352962876077397931030601950480333695838606307499235696527912007554334922525442345031897942562416008604864527520046951282178549660636471749002105236412568151584227104372363717237162087138506025305588781396609089784700993069220709045717747779116452672803327243169134830465029666688582962402186859126475757970205250547076447472957881710266753228681977624104069518069311721487458584560553645718416847533645650421005461719178962600322048668256668063352398999637251304352258761641464184080270892785750083414112268216820049679087472762947401285577710843645838613464846797243531865857150149826859304218896426304756102042265421617127609320759969850125274884771192581166326922504716441980726666612151506746149470675492114326518354627308012440567810703132048084945918418032407111247816577537665865415707031236522655830703825535919021501540405011413138865057654720177322609729517237746587635146304705660194132280572408606720249547474635321660690929941692328101905331107212135370186677572327767828129244779599630347835512889636519925046862713932491507913473237766207402145410822762713037203926848721114349422123108387010196004101964018595378488165698572490524563115084696728221479435306004682519381335492184566142025329821409711171409633801660387482729259088049958426135813612513752587954722209960299567004726145780374056545172038223636681594268619379606112722645742374004506200341772524679124122140703647282984909825164004540458284298115952015443013162353191017108831212086440647699015990126136905203989308948818519167927804782874214642011381732689682238145004040822717337873772421845704254575234338365683929290717178679981337199598823086554650834062734580466560063456429369786394429246911848387920420341521541466681893635554770493720286887070268742387738019030581031976962803112646134689026225010495116512131286594862572659430049647227179197444562356283919063386784554838616843232426292871027404064846418785660772735983358249798655662921001974419956147908017923296535658743150120262628681571531959136970662535194874552880285848433543950106914111501673122345734370539415638169189222719047497174877520112462224050755039383077863481684203470993020706500943682006922181952220707040770061873419117545141087226510048557299590683754318484699762891049884095680803625894204218003414335602244982209529758795109006077686215635713273542992004854690212432662014532192920770892220804088645940255039077645611017224971397711886217898299063103885088977308288904711766352062181006198598682451286391869250868457862133806775988116803775746620642373603785713207889385229267028829083969602090418869821659767660623866283713270523699364186898214386518378741192490137493477988499345591228766945364663188790930764082892097675305734820822706003998893052639274612395363223924860710605878506330325297110228731200973960224715258619687266658881850934414254249928047787039374604897736653088830830623374023432593636626229618005580184593750239893434864515234818256141911114407142594941750525178617874411768782220732885228864678685737714208097202453967026906365032951289844926860368300341649330182421767244005049316231350406505213685736056890842597518814624673484838397297792793437281655358699232849053453236599128202889611796197161626698588093606456864008764343339277574383242145460290927088819994536090375311098928281529037898569386558424258815778834349128209890156308323607740370060671512182408195648318609709157993305392418057369534594158412187397920711473610082038475772609951106600851610628211279227582927395817068917454103402653515903871076765024464442043749553183521627890520784368125341447123408997556576847705851468027058065192474146541777205128530180225257004904956045577698772413940965729740655513531966583542055973997517835023991690135910200652391977492885693839135920723017635627462443058734209845404263401102566293107834050810691960835954266112133976940511161082269079947854163172252972722041491045435356132081277993856689747837238626494854497126831892817007859556141467121356475972537536982810043131295622656990267793403257178141413674289097309934048620417406813851057038668176955840309268691837941967102649318146273840708587592162115859344019738467460329232045465817205474731910530144848996928908338089184672221435230578618882488934863198534656473032611295653646798299400501460916468118684973071916333054347779752369506011141046234535658673451108326580369631950096359996331106979122654368704092679230048591639125729639987030017853770796207244650537860727981898666692158781417349833150447470597343946766630197055954582752966037724600778656609171781333828587033870441883484128026016899658714695033360287861742596946227177438194024837302488564805845049052280115614612679596496390105309429633998521756956504974603079757109587647503595255813168868185886473905416391470987483894467406893801352645737263677169361076761096990064836820791254161341620581819411486211681047475374447245014884027462349801227507786752315686113202127545316940478359434377158321530003619524465945643472401831219847789058876449176949659928523977275574409802617458225115785253925089144251981454468039558954999479658907433823066477524808218004765992917660815674711674060066059965327452855743217019601882041286728092744764455884464587421149643509221850902978828978327714807542096569876854911950958385108641567846109782684818889732591967126602038096209544716747571716173414378542192749483755441013355173191162594199567374398056070459853008585369796842142554986513608928110783251736475538456486378176389539440270123082870607434312447255105199645657739906342823118751600804969756668568744105159453845382356588360415908677571077536420906849196223718331835652784822821053313983572679123699455293005124081397648109012010594303771941410287874344014737502240805222253379484342553166924050393451488284811302620407612953214455171993507641906818817356567264902832628103834935219531080114659414790790399789753638048816132442857706929315427693877656324491760657325586208495290964638895717448582791938547638398597476079623482857804868698736679677700239611068442004219101839061069588371672719196965960470249186039101041580349814377646551797498063974065538409871762940276851370169918463028869397225978052723307893301044659442067566629474532316786735442705933312422113915969537004750228633773652822533717602629015997142875996509942000770578304402244304797783827994961996545170645875510404232121688462891008450729342539714200863224407177808305991486842032714528026096294664933477118406385996464851180929545246430640160922731983430553687161827044882202552577857557761793262536828505234010595467609007898418949538898325118697313181527308201852223254022927965322709589590906316646230294108802770485198663358881294941831860099041852301003397250598958353778612113920128227336105569648733054457044401227577718277206459232236990758508119388525664748979722638472273531456944148330260791582851070457669378505070909413946565354952341250498129839452693587900227914717239972175873795519150358615952953035307413497111345063149738807987537149586866863517170816228197287224270678633940209998767283008020067162421463773202194883453830045816348074464278908464874476905573090452022183831980975044500122372702939318786075827408210785112070655167440744223639380651974054686155010719869279594611183109756579719828237663675934585598771004080457586013144844613376653111616697295672227268437162089611985079701016144470477640784623233805893085634868816048997064648004791231208554620323652397419978517461170241725733687381788175161362616714603114992104739476814240066397616298664695333592929306837005218414777899176210197265881186578075034428743344314583871909696498761121640933431935210507665890755635268222122776421213764074104117099889855978304597440786214951757603336060657352161845441617964374187507076200508957796266063990596415324541745203040357063738496406022481358991044775832109566192570901537837101946297693796666486392657039617571384177450351358432850764894709036880043353602123284847320682616460816254952897032104483898996061066786251383467655716483036216439467777674541164755159469795360073140444705812612698443021332040748626213236083014590513539104273582559478723906972283792047516123381734699743277099823457335941444187863100165488877693626992021511522995435832896854256708063559370494862431239070711169179813274556753245585784490400422726504718466322209062531519215694382783104821447853071994663780955355442943550726876764444207292762529732162856075320477696433573152176124427769811244205645761072272111872870537125815928167644323417030346493897034249126180521005209996971805389669943926129150415468056449671468887580956637070399648934375744094280912745364747006335835905099452330345598943227192560009838700369998436328194572369071946420781298772248747824484024865468280705920628608323427633702018746115878439880502740664421475843462146732438595053187783786944899530848334617868797820172578302392310373082104663512421687854075433626749181534854322318957845609187891770804005275859685474396903571479369792050959166990514718823323770737143190001140501955107179366891627251092061451093248026088108154022623878381957595145251266380435373107140815549606668798634364413012235444703350835025889431766653444244977046335274826102870896300504259601712738721041744940897629713403438210205552828176621543061324110241074596772351737402692411298943510937370273869645147742715011476479603406993504593812399780256292335257336899229160970663242631218304005728976933948262705844383191835339690382731520851037522787607841547237608797828854498503977019296138221801314814211959381831687533513020723388843551953958639239287282454546527360293757532693953139923401736011425926243884547826710957405866970024676972355847747667908199633954152956152830864291782380748746460894885236415641150247476572142332647740105681398860445342494572942753675603459814373791343910913144883064461574776271546471848007161463047251385884835302570786272697251943935954110535337394096178600196418515676696064014436357148482272969406951646720665508611196855375432138174810082110925218476670882770227869377848493667831294256012194815172553125321534029763659042865181092718773905012677374005434029862520158527284338841905179397866483236526328121313452509669747887114152049538955878453242427200318404842901308649233306446141648563248903089642361139093114620883955273192448925056890116141689711343854104674171151288347025797670765544534855718810564956544159310190362750950865925809218365981927983996737683758222992468362820590258428496713671930802918367420096799794101372104098377199959516980684881686561490205669928415806700500897346877358565846360580508070241273960935934521694986308876676007791220645881180779049714951767032717204502003825131032958897889667902887666349041303790596662614072162888811953991261778590995068753313864728242606748937039042377642377779277913203100561051985893995002205178320883823644273368039023645893072869816530194915306292001313081527419219807155993490143006131013411237942643255183198771371931267620247627355504653363872522537574428361141114242834612177319969700714121508423832140484295660443000670231959068854174561305598451311397734424117012091590374459528140116160675698710927031606872184031824084278192515755786930415799569035309652227269568460063029504133206057173222394835518603844150553192732238103186545660905723489397400952010064223529425366544723478591977738413461510840460802220016198399331575864592557536178527269888244618272827052641450890791664018903521100635466262112975551707335438593720670038797530939981199014694977758562731708108073536525021926226956442968632371700971929844156926689581547378155114509923735118453968082620050761840583592022094824286284608874103977768722182017891188477695496587006017959128103851213641774916884719733375818215953524678322875103891232310652977532637300755196456072085798554972423955771358814945335388272865912023925571294585655270515176935565823444624381743230151132916341740044435567513521868203720562009268641705906238459557819271138117787598066468130474104868411823635330706727259901593934536155969349399768470105873644839434613668769692875609810312406611393699952208726643732806204699879682695419537363727687979722844016291309637237307679720922566466195219841519086324636252503186927917312028354983401883045441078855775648182367171546245177919457541757328804824611321534465499706114180222668886175853125712453096145207575711520957708812634533167478368300938502743581734727880591658864734968798946387644394484521135253325033872137687700291087563892878289725435614663236462648181814159673480185375643618588442220738470786861464589979719437689614699694406496506525838740464560723680870831997042447305407290092657893150385466289200559882435926256527446244507462451875720366844598640307705647755777967354493290738790320435657257036087431654599363286936775506735715461997504038299114545232292720703823873116706396559948918331744997221541944843119551472885281143556478405920808850477346080558879252561341671532594045651091747259914500322661556877766138234957297367744160391168332282250254153962343278829072708219412635233829291746292940930296529164544407744105389276043104929234073108541400723351880989120382408207714729947341877090423744526141361349384769328752376429129070408665584817868579313462113863338536376227426054023225769136968655148119263066440963135696306980272751600984063445317450473108680630471880224014192311631312476937499661736887886894464969221636071725051931122791597066710838537475906700660911214816392253215278417329498813750822311944486591967902348828480460801996812499517791546061619025259569534435137647060527062346916728502352321421224792265857322044294155654466497507260574284908162165767684230441317891829573725893924823335579564951232278763540816552650044415856726651824735112136718642046162286199798913795250066287937745011157757778262172690645532326254378775653511987032159627772593567320532320165050386146380761998009503510907837454838434786519636246794208905307434495198925340042962642604452537965018948596906650258755153209472228740211972629529914510825441655802410763322104008112450152633418816111906161821578731145706199318916311112703170375383612502281743729145103601795685826007591713666991176328030195951391762738675375458236406552690985369501693995877264951004434361068021174837092257985343699094507753529004287258592910088500162088669529788026386524406590120203436237396203626292867963239320627021196471184330738682855722253301874798953195963420577828817617851162619798757397608710821587079059880265165265646629903305781501780926956924201532884825252973801456655896424151266293772403299295621796148429395410789321763414971553266042598430380717924454361485923151980523415403498845895555656036327147622250411935118927884401596486212664833229938824385888216510975317694445804575678687208029167101930742558040058185535342530191961431099113469810180058397537978476661211780927475147474204321660345219466112689818889362094601570993360057955928845626735959342927580712755105532606957542856173894977584291411001811287946806326159195703123934141327728686553077839109331817308549856281184797303254527748356041796184349628699198234855278423647660266441654945316575778023612390650165404189198144532617370745570461543931101492413926901578503316198089437659201349327033556233151709247458448593949970488157025476329181762472558083726812115045716672642513578424706893739209435732228565556327393275871007678805712025070037231943471856181913591767318850467460621942297275571093392832760528103058008164767396525112230186952268311992449856757697755203032280412820622866019115993931620954826950252980172651890758210555964036434234612985450456587623356911536011219570921622353406845848680019492707805081410036566721763128616284673734882816892118945792946289364332841859641981066951128799178221282251956123770286525251587411427693268788245178837901504428933737021911649486065402348583367585310601113620681611365805313532733710420018198062667387586034288130710444766671778845142477455604135809809625340654521829187139878291177955649639198945191186190405218320390995670676152589156486091854863122217818303229942379834156477040575775053337671482200792092234539778249635057676556316661837469215973210089072926884930589624436765094765633684204714426701247393433735334453047950713170869514073496715172737724053385757871536438335551793837874025147529711773974829797291941306149271079113330977961268464401400646182691692730070863407329274914346593738807748998025415432059732568962484838262346178740041949487660184165430695860964017997472194638777394953620495007533151102584362489108947734133586870605511860352064382207051230460902690011114743935357856864920253373626310080891925900704829240142999327992414427663104545474416645320271966572923644616812080801372003879368318663452180015408014210874915658734085364608442920780827987688193032150961977136879275971474713573836986122076977466080257748333854151596384356239298650850769529136877100509239547394025408678149566894615521049159551084859856193610155159883254654242702276526793176569074928197722839484125500390407101191089469212313346949808290921845969931275450092420900675848456172790945860668754322591351372717902419092448241093050601775506180423363686538337608565141664671210758106325223401971404660244996908699212048881262452270042858720825907071535516213884464920642195873314073149753630739718842884095943424549307400921859911129643805114266293495887147724314527333090330299736238409668184642087403903111610001129459036643367625028179451322255178148433567914487698211032088422879965662619373618269392233038240543796031049445888014534330700098597987543480266234015175238416636893150164357915730101437101754243795976000772595565209843068915848370223100931305213073259830533860093367960318134860149768480985032438697601851011568375318802169101103614933512959811882582366404046275987151227085572397151058346249461261652416501100797572544343618329055030699257820319219081522504558448644690362456726658186648814730810607915967774371006324448770995219344451427205916691799473947153316018732795454347667660614999410685723346839167933276994125760003469037849591006092087036866038934590392849188832379267239657424061818450356983824420715659941735243164975094315860591965996301578394665326148191777677370888362834916958714487394902611732572813329413984490372818314426883061818254426540510166870327569092384091637712306915789629044054257954442401044370042097381673113397916450432840125280423898175623330619780405297682955764321746982139627696740700476282321566666640434396381822915156216039457514788649522728494179504022893865126869652616207491433724090431400432148944314387034961007814441179464205021550541767252058287273007944173046689468705757032252746533121236717950501836333225059172459382749103842592088338899365949540174174069618853878296847904436747437592527197142343915698374027982527561322936344655653881709931156844288852171065990672740284838911006460457866367071896910050915185257875463780398822158947877425817384102920193970184592890427028320796048284529041091578904838004684831488454749394030361973388924546472211625085892307412142479371628857713922274583473455642994420322557106603502271541824505930116133068601742361007958177399620796960008376208059285430294282378057604836778886134126388835860856459462788327812456572213030083661857740056693565982911258758773989401796619032669074614338869780032977668516870271654970426394393171654002471539201672010325163649701613206846123735547101741852934429135112689095681614754451971776545357532928849136481759770724650312278462580958578479608276330093355625805093175511587203439998825565851815715738889287703901624512696342943337302810151704379788305754096835686400573522898259595580112229812356170672839338413676626189766950769821251709177436765338774476882539906876436998524532897522547922747063609337080857330112704027121389471675212401208241114938982754541281900030035745410920246807877938198849555108603973781351570234861822557194173328831888710341072451423738563337431165641531014341590823855805113955130519810002304917014119170069075593338684187875653746467557374114876101435305032498700979424496183145457625350853080337967720621037469107589133151850626728092217580754698583005758535606864095441162471809819128733344685867809852695094971244283532810962964728224569347961452236883642713613200477357346975742225788357752149783104254893702280621994696613862699222098067792119117999457928855032397248487331536787733907093280139180249279046107892157479314687664413611354723299269074364493158973540238999896598158166185787183733502999932184589347829103519523514749681443603018120847753524940716130510247738875401122755347333084618351120170406175627227273585497357366676636824921381874133636108613949642224302521889864244834315441054933529917691620647641204068602209850829245318523799820441671239805100217084330077785725248302658503904998929357482849265749100879522364031999506563461668600457719464736658776717205885343232256188989145282815391294965145022028963973283474952396488014086718489937099720913826979499194697915336541732697430462580892116398034295044763250797405055961669745417272153338090520743631695278725670842108461035914996661791262601732192660450951546450965640110084455230886952584693836508542959515569352720492578409032871666406092281606528800855181125766888173015365867983758480352135143444354051972071253045627853933341948598604734066096298119615687307702300352831614161547673492030385817561648358173857732594762882533503917457792870007269606403259897168319999889417301751670918373971281854300832904376589627584301647312700853231413918552683349905925320024744948045402648782828127784203928984794198750674039898042461774249310685440565088906071253552118368798698291193619739439952779219387108637163412588141592532884277804149712428986821421596196490071727712983871683719587406440325295158993300944257058991338474600528650000350617528433025792248495771491436440226145135945327317576562577359383866053381741795646095975832965370217549359213002208471349511596973306277446347189162622025318851723196046895245787609920530592700036191253531541080354216070167785301644554071355321517943073656716593244629756961392271154221359118880460505795876830391185781323530722538414175827327424811893467529051503403216663001523617284746657969936644079225460042140525367662014070526948664283837115911072281735765922726058888836034845290121661969396319514992667436832126715156709798269796919295608492764571891959008367014179978595364746913949896964279867813960545198611163911461264536167089161136499418272181484834526993582739032424092592578060473590813105766029934720014042699191672929876963635767180255942190239249870099199160568219420045168498900454253228350315255878448817411534677958209077370393407957002229670498187029196869548179897654308121738119131328197862759450342184958524694176619604906267654911370547120126096352738198342405747736285941912984067398722707067961569403182190525312054998989431086482589148815757118404060828198306996463350824183710613606808795385459137921597354312271351794476175438040383715070119366551755536924133516431713594208322819884415865942474489978348934081605052904344731971703810121019736531677866399954194507578667346628037425213558416957531853240079195748407376394085213290372641027509405215443568114388485165507177768748598705991483148584990138135474793902279151337237465732098713170491909289777935455691482156994659984595239205686336113253189432382865343967338970200463257927895136291482010373324225579994909204686869348142925468523875977591650742241091104848516729286822738533570456687649411065619705938694840705736169766138796859479256496695820378053886596061291314950894257130590187803367448508067538676059551027534160284221179487064815862246982477612680324535050791423109674516295543506330486318939592460313471314597610169593317212797113340895412025761900444819881735198717398419254206596161558443622645154326017011003914199687130046394493982283742056679244332300589796727706935859899279680623797089760212170805618515846243712761025188234500954623358461507357293651130859563095082587384310879422873353800372230166389043512254846565356466556070123137227651830836806879018161882569543092020671888304636278316346590204647151745732924381768725644974298904163710682840459882338576619310077290555756456646875890491958806221654654074627631667065226687838016513856610083061982404135213995057828578664345601015451760529694858606610766510205280452545619909122024290255575412011869666545384108214880329150128932278717782389721200811460160015283200032772327698388708013754246588792733327074668074479989465362024000798190147017286326690288336758158357038477470063504649799175888755476694639674021881049257574346207664929735895816096491244987012104661893899575111527052741130979484916890634836586014399302227437699412691772024215942409913840084424549093855569639382781896989426333301180271737560677324255590249663286130118037754090744132672011193187456086054178871319660850297642623954845969814010089708116203344584310960046593923002907544599131431969342240658596971835573912523115640449557960684220804496941519554585452952095451815529643643841710972837269733723225394236126965730378952453713097300007453555643314727679661345350170984669148399086750125687306178361870712665902144940955536930664588652751831628807524726848306267425557109044065473209095755019515637943611734448523478767721322103240779684972189399310238550851702529370011757103350901380501126413324170269304315711782577738361623818169727534761148231154390193590970752626103927735163835628133009762383382952391016105569230752627412440284023485809479388611370404923553893139031304026659174824605668365354473794476088433482902553347856057288022776835615043117163498216943932744110894348781864645272172174847845030217629535124895937087916664567544056297568224337894133199898159316340229700881415501632187297613782590849097003754819881979063516503084867600573156402774620335752581343326460112951997481327444774221449220486653218351347521608720184155735321081584818242658162303845930710147417352217383493817311688977162762423714819416482170925770169760809586471535822104856721564830708372525199583898384748550146803169633358458514869983494322670519411350084256083329299707917048959039964082942315915140479007211162871271683005351207065181454453987411320315675362915494999323856150660160342889887333344763484833733325033681081011552554811736995074880446633458909879693853299423459225969600400829119574569638010880941937874802395968297422535813001704400852608127239129435227487467210299299623506147338225352235037738018065461845647065849288234419800930321489146307324905651437669713665134982241159569840687949553028952882310769639687587943662779492389617980501782485233891536458650290314408852200692352948455314093822299274833576722509485532466806384862499201569245488527048130797306124568062251329725233527174375684700268410386734872637556865352105683836336677398723189247362299567984464688294339893596715513894941093530893710753282251303140237192317145207605752678218789663237567584910613519599194924091033165168281852217069060284442406740134435515243084155674425370380416708974878390123713949271499438667897478457320688794253919482766897742857006412417878876049753009678252424404255383369018650519604340597643578358648956760467996574208415937750562842727385437466312514583756819803137570387762483428942832806859066566215459267398976242888739838278593451578968358414513460534412186359296008396311185254352131857922965937248965566617040165227560201074696085767776325076486013524193769510929569246115690548771043559216833900147088690184237263770583737722252432680760350751660345378997527378047831072846986567841484928763253889667480161601447619598312456267676313130138343217730178810813133060814858409471463165378052371558518236925145257883784610322599520528259343697075462360026684582071471904746520270549663868846441864736642799132908428863777737975114790571611408310958125648260528480601447557772288929619672721381645114694121080020115879424386812977009021805203242386219120344567125208947264977927889678455004904819847026666451759915331977928996879321120827911900532720402729391949140194289562571023051701841952439842250574665133037886732440988404669560417407146217964558924300009656391469049754792778055502672672163388899780951752587748004697428769682517093363972191792227667458998004518001994478365168831713240834756019544079210355931837402263198065024121125272719160657278882025849712271477489658174049301186259368324861809291966316655866673204574681195692810027605638968957136053599593485181924522561733700073273837446290543519209018815526408053407709672099910658970796908247011665827837063680755603843268492250831250802666077926398299480095608820562526012730513254720042650266935539478880269122932345420395031864907676311934784364608657769815083866493366873696822565109896359066980763733958384566220885094952115222413889357411245543104713954532775798812192788394373105551640590008866146429444048743228814199292000425783951584616461204400225766071751505419511924016515801499578693666869454823752976168748460820119148614692454784582711476527372795218633159019046517725762022466998123406500776466743810267993938975002022111976632881704598610278002699217912621766106743732798560868533263178874692351859430546448855249945050223563407182732120210618435009220859051114616342809232011927103400221327443721556521016540005062133477232694518033229132677590327767226110525372920602782107488525952449862347027981145687446975801663123095522969754780158342682754888942608760520920999356045021539213001312547052463316704592574024865500704878508828448288188750233487643286950017411486340598940576639094511594044554020297487362464640367078977459648099829034279325426195099998818242971708803532912748541255733970434814956163491153782505867697422158805906666372129409578237964056293948739384437062900834458122869968025004194081124621522751930727055487079794164863584228020838512118213849987681845527324568297799990929174022470915317586326333496244750851579273003398081061974608091049130349523787257034211894473063127444431184898594629353487537084342911101082914607728951748901398329229143917053193546683734047995173731671492760686726389514119688013257719012377237736196723412046290426125470341980074548670940925807798853500594267525905746551592781386984394614657578540932757946294453087994444370787135155665334701154174303015378774360765105167677370828936994763146593171074861853261471103177159903718394677111604410645522499973372309604085481472141496302815749127574296419121713258633881594055995402409832104081731093635063513731274196738568247730040398538192248654711625408790933794687342513441015641040228997238754004090256119002918790300817908356334430666377406687009872202316063773104133089337678220690791366184908790332885188746579983309953189697757724926383980155211912395329599557411938097739487747393260021003804341869539952366576121043244162319775375441296408086359632607252267059367668560982411503573603608608351241844440366579571342666526993379730071071748883337932024770226759713403674676960248601420756494749924813761650619470895427667298502175469701518084192014364831894215029143745879076612015726314310640993459100811524839609047996066807944314599936650667798454398606738565958916609032665888796384614402730461258601413777546482154260770724745337154544071501299619944762911937231946754924586976173654801380935870806403515933830105085385482495846789692115656840157316681353002230442736541736601547195795525587562703614846054036332306435186907687313382219372132348474919167721323809556336865319125230462057059865885912385718229594433953273944250948453013471215437229205726161519861857703357760827345478663772823847129568630470969019259077541580826161326329542876739156631682286385647722266951426270749020871266719845529448440319755021087119030579973367852340806547002977408188469414157269046161437943299430610834671286560516481498803048332667648152459236537698832318422422898191369091017685476367145164705257321702138965232873980776779916664042221647151521078400073760911671804529426018577174488819624589407957496766552954306117831143777237724531988979308934248071524140758001072522405128788627986376105628502223462013688554995991054053560569240226066690646998521914622897019442010373666248664541107247137680121237253243354975015999310638176560615115566142775230446646462472738499963817566533238643074720992498348416249232431301891518479289665620928096129231187204191580255195769767351062356587754170425067823108611053061838043668213211941653936338763971988677274035513466420397637676965651049271763833220757574032921356057094635398883819707999214000986159784216438433947945548983548967371220959656959757671412740260765939937225905610692562214085934924929818563534493275528212386680501633153233221644981605139552023684164214789773484594296304731126972081027040142522911092248200070534266733584560806847070444947063246530037148400152309361503869843409120227623124781870261601057415943811801213912001428751612195440634454388306859832190669291550137890093318849349487295094626808717908503059563796751893497024636127324388600041672285789299108548513926926175635418796213555032272618571536731885971633308423590538575031537374940346982925783094262389642597083248254129457897614594434486706227680336677728273660198253665519122835503848804243636202287298002317999597174920741065109576135907679842662073087645578616749241417280140554034676171512269179586477960212103207662498250717525143876035333306358895420304796759757958965869482881529247965329140839100962518032808235827122508796389279162656037719852301457227866217126141901356289522152169574862655954453439256295290962476172717485252066012355583785858062011959118801231614977316980193614627564770767183181425374013026058675325035000037937496654911600720443379930767972062630739621126634865085139224052349798731910227946075601770059816066715301310125454944376762962020369407206915108000859644756883921120615258621900534324705238945346190073438423728726422200718717140581499468746931476008446036274535889143612407154553486933146849775518089770446972568637204223613094538134633288053555354017205247694340081795075813843688551678100892918743864172162727261452555046969509257197902884220954018204676000943050190534994868126948600523695372689458842953955858616560335970944315219205654819699242574645057039299880812827634750307166268876086039252017760744483215667430647397432359611399465023841482567214545001450158214775665074956808591033498017495613569953460889674737835442921952428428467588946494982195436665990585441105842068888365124266781916034492002623078485572599061687373840450537087592111164960417389693828141277671662076659176743498117937247137056625506518793476476543558802108030741997465338914330057915481732989943767227293857061408430580567456282499205111599358131529655270554885171879589926849645582601873529635431580090689523392054849181125289003986489723303674762131082173681723336161397042481563842107602930008449227277031548251950273026262201221572636163229281194118309617047608353963346895406480009445845997967942567276453032835887335353851951674067994261188511461149554817364098533687135629382279939747211247433228169337596692540803551936462733111072250785913741650902743695190917598730535907450734601079970495140228643568668016081793162105023335605874856132627620017475601713257929635737792895255360635426336515928509654929186234453368104605166285122402972527073805135603099877287167771242561017983126118653078289691092357787401358525046040709716955846569982939220510731677817888427515075902414912499700568147009902445856328265005948769527704993510147879947905930793600651549758987250532835542030249391706995603684365051976229080226845494579876646848038450582191695025146941427478539575428697618683081379996717397199597830225601069492537412857637429283563918648308184248376094346557467554456340167539861932341968756247635640079887803272450862912313863490388723297844052140750180953314834392390112655345372467585184979252335731233339676765404774528324401258979040219012413700680654787360732755867678116675080177726375770091928873993183299229852155078871079753802058511359983657066244250671687381280106766653590625047018701278407243970443391530690695609270066641559063888051249460710372702161440239371525787199042240562420048489490209611614470444835617306960003737842116641433665304812258511627739045273679718336366101829977172087137141691534321389089100247464500693598037974139351589713411835505801588986088473257718845043389325076680087181166988239674104058560795502343554791172846898779161085744842644213582361864148235687526255525274833008336003768945326713497792547150643416477279326925124079933805466908806895303018719827459587806187458866404086177635691374846945923982476104183516374945268186083629686646142833881136778138277174276956414195413017874883451854877060745322721265596589428777254419364885488402410326397398418221997342452722746529007998945224857909093375111009196847412009657810728054793054312768157640794251345836478485715229461670002815701808789352381121771294144159275694139912305986473992702026977707465707319069307339526932819844971945562344264206240913559292347940805892618637396410640452039535277762472711442640165901031970118685102233384998323619454188645267191908128562148254330172282365836104531438193155160659909447847599061606768016857842173379409528995272613605905704882593356066299119311738483643579999686476007293842517411913205183440074412846684516763616456119386387882976578580635001778397196101381836328199561560704089083455098499206083882229385404752057522917958647159927803136926353893367517876232003414642625013293071195546627160023703705420512628208984678422713676861600723014809501844256713180846290925002318079387894734562926917468804370591878038818741030980542953424944151581832762086257777557038439404307870624456563740028912626110053940056080939181902573228864857202643343844603893906414814494173312328891940483222051616400062615272233530438900162197153125138026283273744942021410871398058443745132336653967744175900309336220644173498018658170880033922725148828027840627386321016384006127345727902867000491296881030259880975088354997354668025655917542451765301757582411837292751576299404147060186028887939515558074162124835595819588008082902568934223442602418064017107087800605089518356494711957635948162997190814969613103810222378439343202822911227194857118525877285964524114468540253908041876271821186298649845752991489160948287028765739672721593309781552824391263690227209125219978078895251579823301601941360013839560884899880853170974855606549515791126812581768671694193737473898504767133372265158443465239919019061160372396505598507705505490687528410334176350430367284635597352300666032501227902354935602466713335238480847447167936708509884514702149182509025140915629313443850170221966954344990208962445243208225673362370643914848133077679215520172026370849921561407273244642162412007548605718853546326200206366423325237929337591654834714206269587646393994178916743439557191120314856240290869371486051192393225798298155954214165409175641352169316814159505782032490425844879728885495563191917739000287132129588214601989571358689668221266556972467908521473909811832475845483458188470350048181431216456617362787667633427589905700269053233332763690793528457991632103643870340222365439801128614894798238130800403882215414790826098209823012268109832759061348563934202167900275630239147115955179249541510050724765246591354436052923732685000811972526884430509103712228167858587951672084366810733194057366108039781349961990303887881195654884547168232161417502811399704120823902542861042709173862597411989472252843918606769134656254796480092936515292869834427586147372092042812270052370265020826548121616936961186414504382055556892561874045739223522629199305952245594766820881372610244802803104996659678535687504317355238797858082450383363772930515775372878124848697774366454448848827512064289575782073477073322678664371694776231910133211031648829599818004392505115544277943314740240241082943169973230182537763677014793641417851479053999969383360353215908937567018581874369581143659119728236152326120418367234230225006208016337143038618073138813142787213262524080495905808175039387474291201938303390474895164991263917825793499525926784407261780086029395272999651840313589767492242365772483228615217843109104372507170861860232584894134204499608948264286565298351384563967024337132892835507983614911979521251401474455050739481558588326497740870160770999831728399078363327261368341082298661785803240936445184795273169068728697895287462921932114139329380528966461837415623216332029142705613926903479485618267493525435609818986588076659706136069760293338087823770147412872936622756718564852732582439770415928278666943693484146330957803632808974351492773426828883339475199006686930037693088910228058230836661666089688241975266558868893988307873440340651379417611271829197081945185550954695422464252310734561681081938345986970934653735982917385873142729627370147365386158917282765456072607953316070051584838321054868820104538165643392893208955185033711137276915848640405011496666721729376126712607277870041274266726734215046359299942871716024513596698099687756919206711666036830953520442705856756535426487753462254292760924154860845543768004898503566638987660115225677803137949955432460599451146100249801978839411096306630689549777440543446344534829145462888011002364658161290654551770753059632738727155107107522141132320685121470181677118424320329220578914641132486929349988198306492363809128116521913051262421728950562490819161192902779703638158273857344476572595781068690684935671977781047979168197962882434714146673906115848081975213959502422516430738915082477740686157250424634107216972220516862081940863356269770525386458631280425732847884546647429911116957161681321834559272208970247202250646921068163913864402450518602088607725389668371851489576035415165754163601974674673432364620477344891208826642077086292403445461491286673850794554769643945360369583018053972340876780879947671424212754744347182915587852100243734121281224407589375269728641862079376606419956013323268916471763252179785296994755192170425045193608765505585573626655322833549320639826128180459754905338278203622342447119551055597282977234002080180083905553521843303484682819703977440504869360698346668645986498509015933369807285337298356015952145974949087682847682028742371637095988667176445703604281417257695107003259923818100200685555382390601100354074869799026420473478513041133682790057833961490290490065070868340030553509244425245765975249634513175031786062064448324588391844348158104950737847205969657933610636220427042311100357624718304733701095614419279210054736074337705546056511043108331842491103899298518867468450175922252095789768194401824685960689332771150146261000921535490301695626663110707002277194481962958926304945418373122085369805113960634740791172377410736897651103961162590613056715180267359709087781576836655149775119286814851738405155806359470147943280188259565502563737585562364343152331773250992760083656111156679180246763838683254725103123298663307037794607156335104989809253751820555202808144609285078301564133420006233981872961321921073025058149102845206094764957391879351606860394223266311302328532491579905669353050177064979135235540419082449501005985700289943750264648407237716744559442160559904079403514234126853436218678310775129176352830695316105585619664026019642860787631538360716345062216428737942923966909920966213438606606277838670889012465320542226535521359510490305488187848134736554065920453888367169026459332447090248371550961990653785284322850058940046638313098984776851063578808364386951610523470774551853374925845707994378486259565010868248088175252180077180768207487365062061548627791599839822292907816681526761583563720397582530397231314612732430184437594270076614642058111713260559092913955269072757083543044213092273438223489216430621860460564056312690248980327816636506671119684742386383023681297782856737483907601290888382496749308474048110485934737455176625591162781736477758171228817526012622357732794738861816604952886650949254789079661088395338736049817917186402779314438315607056254046742265554605395492602837524188861128889792313079441397164094043043213811785630672238504185316721398171021081541362724810574068578649605930745700383589624831737805833217346617329933115421340369471306868406140406951039082396980647912365457724811800087249428606837720936935099169193976843967533486927395560575064891485721067426673543767646900876821678389195123177328810676060421064528074992977984721992131459866581803280201174448761125855440076762289212726273137791399184440796187217570869986298732198495875670232816603516985319788264592029596472159949577688185818053117069661154589829520845087023287535183118569440518157388713146899116074458218772476143945057203974173287695468675617527936801408119449830062651300454561129071325237169115461280846195266771795859445239070199794937981887443111361191783906464156690834638858193329871485902339697590343961661805401648010807839484783289702053712715464429666812229576585026421827648906377670225300152612876942260957317946149942743890927887323911330571025100970438815420814638155102221776919232247561360344991563368484842929127883244417970917574706019814792541837111246891118367921942909198794771281915856635596249372365492648581051568281160617389488327704465268780610458416216902659380170922138926064052251555368687930082862678490408214353509934585489429178133777270940128858311072744157629026654395822573523183653517588249595505608341602265283353526728492786248768711199176750883475188954772341449476484335330701749126136594506968387753150298696056759050540646500732539803385351611786029477685176082063616541875220068255498283107608555175050902380252713510947321262397343069708605762331295510111891427571683742855342785064189015322171962644655576319771775633636083349442734488355000976031701670747961630802623927553391878054234586649919281556371322511444085034928122413620474275625407360113569306626382699233919974410069911352476796599944030021981781643683052174902445079914008899812336470451335039576867571330763862021699904417235385632141218651266651441792025996349645516708500468808281127598994188851522474043063807646357625958224597375620198599542443626338731578244439796900063352794554550608622890509181719651342793029220441816570354491057474000935284790820625184303838271583397843930118885064689659378118029210515504660766805400171812055995388419237168209723073059887743800893768554993628703348249040511617721540959885233556631362600659769641115334286336791890514790813646425043487306217836530401217068913774407191181962254234576853886762934973053952484066926407913980181644577776436826340866132708333277203264849771763162260179547796300670818183379436201971353841686159115614151565834733666926606438792007699063273257449509752853399759023972010675716004229243968506865051587061036835029653196071877332070617822145379317722360274461885047352825388514361125036771991529416533862423647085168266170374344485048625718017553749729596800823353610216278938853594198551370895468679216935955510820958529946595915530349950005694689122722999915393475851537006733361482927656943860532968797477940137566528370342097237000406800686955181292719149091296367063345527832099141383614093136206208312347865505257613406489208419849224592883752328639856094512540225937895904907194863364693516842154914373228377560878429572891175565488012151390511434509773488688476460661187465021312492102750295321981453910043590104189685460411632783821840104916050317736093628594375264790741975472992557145123509256038686005854819063697790619837621611063434192151578415579181397934510689441433305791763312279470272763137197575249379940948637917473673781791670809888028182273480207528526701072492327948064371764861475607352558155126232837649173258343396362966145018896354439068502286426415836556634046215016046908762959081638189929820429234177083948458151274859082737209102973050375154214507927255657884347972303415605189658743761167127733832476977108405647587663613517301396753491031957946956658001566607584609412282260889259076079616111448566070022454050484547585550780738839714818049368972781735131077419160224816996640652490173708489952398992870446755123677237247822733167203287774815139310208452586486687825370309114200581342464355502047625735863445410507582471377142874238318787371851597603729655081324225755068384792767571714202795397345134440385667858341662316676266609450641498303601746286880430775619885736502731766148108450372049481648267218135460263530520008557793600159859966707177193835909036888252233490912708483443884565676266355028313296884494031582721143587427792373009826313225749017857599324091436493020593118350632822566691328766123146254440921750389242478117201132251685652781789580730427590904322670107676737088689453129102928862631950352766896343847749360417963425114986509717596810171904379433902861684805911928086249912950821987614274036946890413278696841563691020691927158429541350339168356862486460475349790292302658198991642506983254606439607666944955112328475218363393883188616204607149833085247749052118425758564813042117118445856888120568127520467594888997046105624840742856116178623616864320300820795557695924266360182207146158926431854260867213243140879479991435018998871013627497689205974907344001557194267954589389855930959743119620277922501233807507122010707204752819376578552398490044667718271910806370164022772063045680305963577432240742095243385714472045750702276389292839741845020101591089749782854732961161142804288072457355584967631707643852383694798767553874620877355595159592277588698030111832774264827119263991791803991386579131772324353078667155798452259282634399607020266501607285531991451889766866198069028203625184241122635044950025803840671864259177482409099270610304972980315927530536067540019662402573183203934863580034488524523668415143308827306173953430883235974053678625300708533798897773749580686368515120099868323511037403363547754780092471136540400197883595964329272048601254963417512765454856957504227514511523523680879584293524501141840824984158767963627686912601469908226060245558727791142118057009120795592705545866751933305557042462831509435818265425704682714652034809689747526558175870970628150097328391664606246022924595312340840015093308660575224602551463456623480530575377742086029014552768284683902529050003882160316707368968661289565596274955238145628901374950852120085848705006199007346289985548293934239919632192050818461241149837423037951746831212414452613906353389118305375007213885702653275469781698108253166761803240160277113142381113774424165169690962375890496467150969380972865666901260689108231338515288811542484819363890071153010788471676896957752167046015012368796662555376245133072250725575555579541375266276460086515981060996655555251655456530736052797262173715991967043963629155994660001960874357429056007411022766160326904705956864638298053822291933800695144548417893060731609011494093559712008680334087655900463704613613505658473991736476592894192558692936987802752731387567327282062416040269945356892297522005690097198476946747818371086468046010203439241494438793945033554527093810794530403683308840612161646137272211518611762329665275671896051267058404895248375777124062117770402569674962716663282524458139205352412907588403596614422379331712842855490263217111935644462526530835246540226806790269652302180193551965802160636316289201052528989785739942149137065103906835087586664020731362746188480496389564012818381274005477866148441652565361541346966422876660353674288457962158253720403164675212266437880394917534365778976803229906978472208031698178437929077320335858340895213909397887035311607087379485994352764379273658306728892696179066414817500354343719529786564494657338734468415136535575880350754594069905540659420318177294481876275136772890953623603431118333945711721388078859986634720307401055424751586214182641889550343110320627788920602399370138007561621008260671561942977560692739575982046691820140043883308068112747813941077268280427374926813485690926248658065954481325939838548000757981327553872443708575212024691057616383707656169804093828651319618953561740838977190692782611215377098751338694145828804076197761210691286321593921321972370862265954190540289900768412838605014776904660217560607693815497605872046456935672525804613425742813977638418090505529854972790976063700689909238150450945146990971209777404116717111516248221022763429313776883293888582597691729425501880237317784442274550928483600578678274393369445505868391559312155110783368079255276524090807236939859013671986942742461017583179070762451608506342331938349007600203550317837358334656303207934651363668201388723070103980964453279519155682357166964626512367788881140625568431578079375428150808583891466260146932297417070068395933501623507258671419855643400973577507159703608156505859514768782626795654210897613430330907049142178709136741316001166211950213490442288732516320884969867970375174969062459819895943165478687824545760601090723768762474384406169894690130529783893306200449316633015519480129268668234293836961822608791820259014635319325034437162119314546661413807997977185526942394421344796518010307378258267154954592161107423686732811555098955434199266946352052571103520481908832828325566525768697864614907640780788761882709512707506852140173879237446589768886247677518291662416993138755066273563046899596517742279270031199248264463589037151025752480713557326214661074544648111235232982722645184952835929225801583656382188188080644306031209752970488987249927674816599791557792629876948103663729034418357270262648310687968338349970963959178401644239256248305941355163128282892164077822044005469964995266550628674190445262449301252854691784150660386085952496851404711832029232169334613535581436840086180532347102549508738669709852367801448817333458311815159540523324888049969802284491615818862487890535571766111722793726745150492408940070793746321364596853480639156923673906423571828296592949542444249357249206435049786044581061892013686593613114507632184627211232441621059754940242328792084687906186317785402760224021969615760893769906784419411022333935918548506209670042398861376339575112540803706617997094604079937654196602727035377994965071814868289520782441087138915514717661184416381499590622257624253495963562634821726871085354384045708007480274128042947219094464691507590030058345029687937589263922240935912509680215095454272118619205908196385861408409170466320564702077454875999502972575674907395946510266505281759393697794114151756453705448456477775896512564124567798397346441288605757413183781384074797104680588108756893457852243876233446856117876136012340650063179478340574125871202227628283587529402078235063163954497354620357267506102052461714255281725740309179935230946765526583143959008302025535648069823436646004297623888440153676563672584291304053793204540708136300253099481880915321470867673335098913594040449187634463117407352240860534594991861555865798925343047887847844682599295737808382275853204900048366046432893802774867048346855283283142947178584270552483341700943758160430740551572166033830545885741929059768847716358884236964566938808988359172584727483759082483867617783250298800688480525197406952800223216404207300318521856599907032888776083649147399365406462776082448934195050857982431456534593365876548419027050764005599743266665639129045830716408129820041375784503425615410906335703907235214015899958713874691805352201379892616881479265133340389287677570290177234989991347106404837250390535170815189337832917818250748047954008412240837624665062333237539580532644779388080710313454869748003942049502300144713683292844995607606085779833188923792569221593461233776284244482500546568194864106377408631906481795101459973529771149376600255343421016660232820998923436335118279098046940644445136987877639220704850050217924928339992085897511364115662964323279017781731820307591132788077074367592369940182772728584796878809376818424521457910955235276363525327934667230801897478652401233372853991352535467654948294451993662230042277019351115943336537730366062058751315589018830806529475939306209296867803423317302097685525196502903233739527232029890694388445052295934704204247757242212948040906568591545916551827452488206352649647714963481849798521891275766250637690912156786483535164703020808545706673010138661236849193722395027243209503718316771574768592941669101119135646478720128778399270823430401576011388298354652152006647738415810031806730332596874392763005019276035274322380063830438235828505519551247509259071479556488102216732545042946920199475877715249528789612101198183441427059221022929779378598746542603584206947585013921877323348409906145871274707410601733082467708898450120666512715647318517012247437792843164430487860726252234356697385857121646891785645199730975881332694889345337571227168349559963974452494376233885772449771985742765605843713305401116654438031459680380536150505527719840243508542397663540665670197099298751175647975487207076068134780071857560619824668023875424454212567373579889257116394797818832037205820107772443086277756020864482384673751771864981550254720510936131633465072700903993902209539944015070749671802826421529948740934556291814066257032564590518155114455297578883209914044258534946927244658090430001901994721961127186032941357890503894254748737590251302505998682655232248887065326181681064697643714691186436353857971742484020187805640789333474589653204803385286850974598892050293357911378498057749338255024666899898315122901729825868775840663383417821361816541803626178139180074567023039398123196291043458498430267676842686769197113847722587952708371212452755468507686736917704313203872829760863713264330943146273155528127283470452204352572393078817226382571333817188798327163112756424052714247715014539928976310547485050149507514804504038598593465104847794977964404224093336538033007079029841151420663251719879332335690700793748410282486921949314579129697907920224362838768510034936551678400172838773687542042149640318106386222691469972685313760363433333532128638425065916496570773203703444247259462296656763685566557958482789536482390023833513749652714205857697794384408463090936102932044457356642324591617678572141373695803796610663654140390739873611816299578628178110582166662015966143045190369570851167231374897760488720681436808832933840879917631348515103461819735735105366212128456611877475613776072372231242129490764187423185451078903611735065899947826818273624508395291530507921153769360354840297167847561587899295903821778359953843112130328295611004043745907222945948506365796378429320236402299218988169394987526765222980775038678799639350771219239740834607687870579167848134094798248736108181817096348489801779686189674905745944948468004631449317537645069661176980500447437812316111804145715047277511024946077430604961108605397984787457679239983250816602184028551008402893448130719756346019164763990560292913485131514350849211504799825721091149435694068999254846091284171346536315666496913447599155456391158299893823013331851996014808396067632307637319260748451973236445940805807148057864104809675087628359457653779334785892677278095570886745682673159774310004091080202249956157742816466815022369569482123334436561712237372523617123910234507831779199826376887191431442073673313222992745938434726413284558508910228202707885854475450222136413502482513792240711230441251623622664564162389851880660986726549608590916189841124411898444728172434050637551900655639519201438751230395667110421536453974252058994531741357826484961872272003008384704287350120125015824683057731661577119493188829298428967984981354481710718927866662002105904593155489600777990189511268491864919081418912824694287411798437382809078429533610625764002684446952767117148195995567098963640852259481853548469365261742183524121367463236523697526369857281885791754924900387563539297296761340945844988035756326339140762190176071532630012026924610944217062178942996043316903260434359716207067630242073693317023428874879386859177700752981859442161253973701858734367361260457629097506194808282844282852721980143974202484418508841751992509669730915798013132848428400915519312972491753963492755699638645008814276467130709368834040109788675977567966641140073387919018596839358124450628544768814828144191618654988236688331433623383547951984579881461392521745242455341802977155675311103229150967581426752872822384064119580113836383208865051851281604408864401590246664030597356477589184948642378238895421122572797326839899381155377472576594656966353593847282581626648063313088403133551414098852953909055338381390837726459320579914146589195146295329464557324872061731160092982040930046648741541555092934569508814643334951792064326936550503511206308559743986796173852584569920547528235537337264813417832554147219520561813099658859089620237419172503015345270468410313615570139275139366930397338904685000601956269894335878611805603379551645096129334257225800258189148137749767142959779230515984404721106098508560451309100661104848776590320500411090255401203048434259478937235384127126429851411830514156219205394326119586725109850412301201414439341350685926046477942481162271460146452277331300858345431818852155826187980511834815937846891626992299858876870503922389272946854810959010909114520479402053243324663422980928431767987453188679233150691106179963006929675792595395419127734022338443339069404344084447786056539892530895761445311652274850378871696529804040140739605524246687955206556019970796638081981266877486742963778812537880192567274674989531837053749979900789445868872445319404565868887698129256593619011332818535413462579231269623355147331485219681301568284610699519116983297576690448729927041733697354208178205191039832762251745941480986271665675611790733392872457114811888774033447758268141706875674588808021709695937884653759480897283002338674291114879092199700340768734124841767052484216716838029963298032208617107508067045644750781196874673258387950005204726139864992742492707015707303458223155397319986494324340414899441872597055211652089342512771811495892850209809195945563224717008619791381751978739845886257646743608939211292200463630319348850469913511411521544626924752907499060270251543673079450760681548496881510581297766402219846059966699332925819424710577796961294026942785342296203091884867872164311099359922054832691576599130947292938008057862370767103440656593307440929797686956021959410553895672704239318687556484144252313523996323535854937816283230394028805962253179963231332169704606164799325187001013752103183550542181482961918168607004544296506483846748272371641344007318540821029466879656150919851299041011845110572193869635029364196990270052636639477841751870096751534448048711078863036195540313089420591781474647845113280537277155746973941293817355583384422126162310709720531167993050982048713785927712792443640354184025669333631800586491624011796540524500402332933619484316530838491895951275922946362034357148388887911865674005251838011535900855807363165786696924771088164342600352357295344339547583341527655409411783364316189120545684938978485323335411490832984002798651741975922094168524965127965010441529320804323949244025619793000749746800340163317061902435126793941534417980538747524927179287065577557088027860587801274371577252477354884657365569683300679507998177518625570320205970453298970076921144122440617912356684312432287386942468127987779963362414871581893262969863361920811257243123927281559018878462280288816620922791839425397259227588187667781930269170660340583396282997328346903715049249426165852940815677912778877915800578059443888031584809652055061842947900202840713910654491591807630156670228002705835672382868216236527015916709072676047817575124626358812439879309874329112078553894454271827222676002635391601514346191708328258366971473085780527373673812354075398307339956448382438162153944712379324962987460100188859313636063346443885952663587903726268600984233683782096304600794467552452398057355062907132132907066215476349398238572344630783530475691465950528175967312969040003561887584916885290387628384257667958837188116702978329326718036152879738531170303934874267325557500300285414529637593366146463260034098269135898869397652300056377347888221652268914118813621323858086411766150799571449028387921670215552766850819499854743241479759897703039569519976294983488295310125082059958869881516507992680434819517465646587192013680460897542711345396371232042739144455829567123007009260575822174220648068959581215802470653416131654074657793691551901606690068717859376514206673973275515217128328786561233448918689948189136858385931354629630048892394503656220985040508005392510341760882899881006021056247641956749541072061941163105663829813407558240548809597275198699755920111359180606963864446965245186349930295407080261374247341167807087073113565269012455161473508515154138849617484424908558916219727288824264264406323674191502575160480024815073447021946770124422031652503922775977921019378413687215227185873139966505462645445211239425716792536176207145165563238784358720465039406061149812209241306585736271795293007174045554903535578223989726390162269434524871059892071701119891674404031310957923840895831985154040255731941953477588424547748598524532924463346022123986216654662800610805829377664846184052892696551721196356141590638449471960745198012172615115468454615676298667016410636082617322671998002724098877581044247577879341273664491781360923397514279732042984170793325487624278218200086285686835332426257492517505900518993281798117105018089335833146609013916944720325845218688883068205001306229225647249418583976417694909222444274507344229728425734056069441329863773910759879858427575517562435310629614757984727230039499203135105626397496207447530121345335876941540863990275623941193034083526804878698541606277148484414368686669762355720046605654648530962147192984751954007910199731992476869436283531028914693120706214954367876663812230858687556847514196766758588668222590428497583187718602266611000156192608376395032645558423248636721223273737318957738947420785214138771257928992874026914081307286034564837183328025300730399830392406653269442207146096766559057678980184024599898049551944418877622572918257577890279014407128124352002057238822139839875882331070551469865092529512425712310644473904256976378340912234840341860474462768883814942107224943639793732808176265035356963634178550813994463391127692653075622487459043244002593798846280490139757292544267126326726323413359999937948133171253777793945425466336216634257198518762683654053137968058986139209098401440196928335582086664393560964480066428097750509095988578319500065198485023754416770556700890203215639372338839309115522419541424551967976798851914391865176809752423219688134557840648507159250437119276077306308952774380620652593953715669162485262401009320585611063874308556605381066414630340449763234984373232980010270287813568538170678378639773832639331328043159600838024279182603558664897828847877494654784312441494259373344324217456250624537789741698467040628314519322652704683750745096952417514565237798626888807754875811968147812159823530180683307218600448523732386596021903701493536696550931245002507872324527392423818441541678582510342180418867189360150254553995825589690874116093908712349231949017622557385389541848301770204111964110852594940626659730579189846579668334821297097843753037060431589941011857973701276127310694215325196787115916503149782667146648751695336581918945971546047751573794200032811213564570658966269132064152377457492186788899492035649167822488924271001028259901910716832436505783740701717811369737564480306140385224226759455516935425593731110010087060783374854188630830433982083840217658732755450668362277488872037470019191485069402308248491124845725988751288583146540640243723085069730918559809862461245638595644455029336391369026721534086099498690499973573778730814941183623633212445851959306756799223358494884611230945866208660360779614553267677725594181165452028982114056816824605749433595784554231433103527997725650891205671422722297106852834384033533371688765431414032020887904791129826995862073361051260353442810736659967177638706999028500410629110890443169561911279680839819756230601213073282234480122451350829167473267807339305144058310457033996151906401467173112872675194819629390253028191663217975664796881778011525632766041662188688978524543272141131587494113122853466526118802322622942088545750128026564495808115875606394392718699347393171240379814235336640627318260083955981654474585592985246517271843349075132474696562329956953215408822612483535848348851316953805650558819341293324067116572056996691318090151248482573037973038153133581269622987162053230046698771961023596196924991647322913006696638504872261408793328568786631295239136857364026755777595813971381373727485278912751975143374971988506017029799914925046159217562555803956019383324823163791275846134937381415859253436527894878507558408030121477401650033975274703089766788697024722235104384346797925376307570816398372482033643925947813879265760810174389068155510618631893970624091654822401486554847223026553323784974223075497914062784878576376321933464431714154923863865909004347680882082783146592518465475798987088205592083981896546622344030317797732662605347025056882225045802833641861876815871230383389699840110602135820609639803973650129343979444342986154644170296432057830613014440942845173367615967689761483054414877183703010744850254455656013401213104085912074615108899146274715756321169504422255538975583518408899071706796418334783680294471556427308517406894103442270653130961644840930140299774467667203020948611320116345962208662443134363937903701609592225440609841102760070444408797660836089816664647748539071541628240950648574994987042897409471445399178225972669776327885271610118216959889000155598834751809899507421625377890381292677419644919520318731193029180412297889608531792728002129880055053612176864043043045275106942929798506026232113370840773368606804262033362705519992813459136204032004976757138528310918773429131754654482895678997042569684224269331926606893204392449186355820433764219216200430391475649213745336506466299172839256302251401501708737448490106711295815511653849329271462471572097023799731092376120221168474926895982359337411224415220904231039382793369597266551715394215523372008521319629489568004219696366290939071052997224208241735011364685661071117154632092002026562179241525630515869801917525716720045144292179127003321989474514235037159853096738031483533955744567863550613607318085196431997011970650033709521758987596023132653349242160297568778559582575368969697250950817499417237818777998124819276018815408394196304021488360758125345247791094105160611478804502640548320910405903725846235916058652762722003149149778543445387607166640707560252673006013782481313685869510470466103531262169115292962537850534666292928778283915766303721058785251748023776073653776769667780165417791545662498814787899947502988504605014076552456687284866955408424037315109393455571712435934853164109868558065459138424232968541073812424502689759032654843690750919619164229795429307741099906432051860183657674407837259645763523485391448170078881038788278526299790979190800011877184276888668221734709247895574819623424774412900680652966792479644402889800715473051399605942884952838998652814472042680203796643744554491364824731760405438369129520389789487014226626011115189267159563768345670531150658335351959891322187062569072239070833658759568095655210803563376239845061882769817034587713424892401049728279158396134864451240181892356341122022998148032558577938482893339705405430471306266523985370217443136178636266194281957986516907152826641573705562536165575495482657927345562407158740470364893632955539630328451175007127237538593252571861192671131580407676362009186275393169045029153443876649833813996130312193034564198956395255580649951898315916987722781044497069958507563239464200018559000835927517613204306896735530372943304148687494879842022028509989704573296759208213303272540710729677130468511747268061709655368842367227028222015690082811192312858731483806928549039065574280996630201743114795715283372868064199419516214191476448214105831141234162925043963698566102491721623577173483746050889068162271990290135347841751354892176321128263667373644761533219406980799226558630368546541609931672671586008361504930981489511797608126266993593258135356784241393794932560844627516624215387056155138899864343591627460476725816132359844816968781028922531497958512347848583710938489934667052830167611491596068225374240398462418961647767834058291398364998335556276946015497295514659594984914222587405666409406374051590789095083830209229234854791468158834650205465894911196108895736182739171452051979501439635529854357071601354314449089710225722371467054651585262355075888460655972387753979268497298751388250623107307101997689267910542211913840398219861680776568286311413879259470577017312710316875419363864879411386803168001385755473428163570603663093717962447228607193074378806398708482522978962349803215050196201976968802278447145920644701664922048507260649179956610886064361509280834056297286161646878832526648623051737488398894090848835213222948580888395868311986676745783256226194623895255616445756709724816737066469699801199698430472229316345757817094634833079680582826969803879688918240741949015005017104989676134951895790702095178888543438415937359266513082862588339134164019014697395459693332135018868227147633620151885462838488118644592925787414856186953736727276068585061498006587923027976354630567781159617225645670427009918025842434413283600288991842224790428047441977239928732827132828237973493316561337416399475859570322779479771442261967693920302370756813087777829075377122320515012689409440521261712043077418128271002210158823105465689206116428264770702977961250739382233688150054589627329565810301297012506082246172000636097249497852180620143120558816348939926588418450007931105405815898577971459996334163752357060303152283978974745725123408254914771526175452342811271281107969371721403601294440273901071566702539958032604908302522979232732170404876015529522466392172283125587139609068528816119380496655303581190388857019720373243909620094735300679379293402968853954759411815174051635560504916377219672506208831044748801190737601997638665975343225260924948559023382066981827355989785952209966396675279765841579279080015582264385873851705626095015462336844429814294574379380379653133150962919228369803637640399896435768671816927827811920506167481960181177521663337571756414159087328221513058784990771917830653749525860822404868894299594210736171081792016965688412276042201845422681953517503216447411985928804995774821313754493734544884483569249758067068285698241863606671088773626898755484373878221320752716535541005302496026119925233901276809874848294682143135845070530226642595699849290968801929365660930893996933503668324396865773915721385756640362597093551280981224815130088261509423497488016079542735503239986358152758691476870882004081845302717033069898605962671985059319480439134017181554881913220874358019771588046883685262821480296810729639002002783061367429393967951307726520041855392296873648199704856225101885343896741342580835861458637450656000023701712679950469355974102476837010170431738034725581568007737022967101791473643870675641563105482580106420840043105583777965321110708881608418477873356748435992509813046221314296244838591753417186339953206385110911188822365578799604471126295136359773418737036058694737329455147848471244675926287199742142215443305194399822600461212616487097409487964766948906756971462221687055954895865985203573335617770869981152187774104094362157694321364713387450124392028423055152196105741301153887188081729127980698880758595960941726698745682567873271332284654523645797142047543746849188416259631718884372760066730419992647045899855705914373911531425658325514009221689569489426053915738896339327707449856117984020708283088167068988139593877187389134070942138656816536987733201504282336944699983509836679839342797985849749966515995006426677519523671447619221465128278083444070301485160918876121463162895978432821064542940506799820477946852670835392050078213219431325884028882272855874937216849940521671666276023349905604967824739654838763379247012171005010522001381384405858633296717779389104341083063983705455647942943010719149262032576363966409826723196256502366674175712462244637889164861190317838140243159369100334307417651417155308644829955467199480945070918872087051590189180941130401014121332685014617802770532914186979154786655419063722618246277254672682119109833221717634594470817391693399616407561718517404219660567191646061435722712799052419268062736852757769891089426319378191036817814975952490971904944812745836983531925043209140407308335214560764636526542144013719635721632137995130540540174716992415232304282469028194781729282552328972019185365699244475471306450360169253329902332141940756484553471203080328464304575132283860218137511094554820039565795019110006660639459595345837561955502322660634573816524346975814855208595470943382453917305121275811610707965960999028045752356150721127007227119827951163120403587561274877254492489599117252559561660378054283511489736434264248587399214371389639582094465304791426889327192121462224174685692797578264512442334720351532147458700994218434212034586157683683265891802792832682044789589627015738864001933265140463455070165992065592846587487724610110573237635114003268916012810575805715707521185861411736319180402869578020840626114064157324690324330868689236908074280304178903396329893048155047314768942420275824309339553295680861680507988903072894069720242507408767773062429927771352664175028560520052456164121191292350246121896269911138027588309139655947841355069208270513354173369565659617961865256155880242638686574850448082517483426059942918234678785531510299179054780013419417168280532986918764605012944093360879154987833280269295346059557901971262480971818374431044791258636577556127267237672776280179765349547917736510205777488441388348316091970892540953841353030285446540652273220775187926036607762338055070262194098700112595365683817963425281579261927146977351261670495344771260227708873689279053896435538793174299884011454943763759070331760843323199186494876571450900073111743711480937966197464862165476704232401871243682651011314789857721284756152845020250032340799366689061293187016233013286560112001818210278706441586271374517801516301026271621721898610559580748152946957128997371635908642524537071961116644625110188718218297523919866745984286125606170538654195765063044152836770285157839472277295753268993702944373125303389961018935426198238753634337053019537226690469073539428094249443377705824282453205379230543496793316826362063660519007130753537922147555557722692171624213693664457670200597956008202909151442544775979206908016979730140658830688883298031897743692563230953648024041121933597213811889238646092699078164430542044533895281382894515862487794198674904220030857099817376816879147927644962405183862557224974962466488368136469605432327411530936600266657335083202777090489412707758932073388377626652416869192991730372425221070829482108165327424644777399929525197809059814127125801261730405970795326147580116728380269416724804010077228481346818959743162774303534535390553879016081089801170961986051426378719278202924680376604621931968771516961215993626311075379064152788862525034481559405884618734633726798105235499059389672615147669462666412072758482773002952691620118025236945649777023998846327061383546311364046832452414715338502429471498626983914905823845093775026367948858389842514709301127750607549070533836892663894220058719325074701751281163380302578617560232855605335854754770725064080762378922450409088809897943807741241731545691070680111381066154613750107751809324688336012392186400743353333493698316679125189871791353228317177051705519222125016207398078787413401946213595039979040746265158213058312973530771256309379147962460025618363446899952572114905322036012257271050933401515367358373430208523561166028625436551983446489374384031500575151449428434411079235119851552169652860514941889967511735309900293561020865069033079009062215897815987509748757756381542149689625524476955149727091111400541550373839328926901116272997528670590548242572731723983376141339850738688621679841453631401174544107623382372089883842902247581340964832669105076255680281781284177521970554180278002469144383869603160076139936989478728582748363851617736695538843417716688018048819361119924037136649232280683017948001596826225956246729997571893394817703698481554614568374036426324109816179739016790501276352788602192294969307386803537869206271166305732736294467769179678172115510266003701841615169514404848494473414616465616088893186082642168479411251341662639411361900908163034153013111954047465859947263108188973432713971767723628082834049116432004106196554968807522021544243352423196459761946804797424226005811113087227689443331705201047184483539610544317635846148081853900832872694273004533149043824183450662508951416346220750339839177881645270125350578714372099057963411848813842917321092463380689404119013715992302990181445101666152725439814625551400236500018585692176671033678524617245375795801767451271276181339449662221296585151838233166218374123999342392582462760463842796029055655367410043909031333620494773959980107568987612041385294249984305215727551781028791760063809345497720550668308562349560242580889517040883970246008765103996411524487683517216911408921888594438974473107419277647514262662017332976438684359163925402654115957846547970950225429946931703717831892309820376493918071045403341746004901640703544078479359565872144900237928624800092656844779620041312983904723545224611003638249632813767733106413423148276979782845329808913510225324794581600103634243840863420051496703660006387469230964900842041037591617614211871570034303780025638508642615248267595545761537453241495071460679356133807308071849170311278656919819421958064801504847757767997381382556213524538925395149738989781426433578392246557520895936136775398449866252796648185855638455598325018616969808925417689587936185945761190440007414701739569425947092789670807650816749664799492267192946281880465691327063528523753759245326384717473363681011031580543366498754635871898815578742549898754514284514911201008772193207416955739080375139485389587774087259212067115031365649277558658272953653611221330755161593404399428896440036652592864437606703893571994674672800106164595249084854079202353103530643786227279708139781971427421286188521407529837263668579686908736876093999861594504014618254248856668357301289554020808224456768040693561928224317761806774034007222966349595572194494599280236869795005139015874764979433564598166629595275417228722452012463762166081815984744320725311621349764972542529627796135764535341168231556353991412469087937108283998249948999371203047221767424921163119755210790880080626221790468818172573139063622341261501722135733035261066815183662730518923201743081694410782797606279224815655205478309176013142784228533086215691777358259068201610229932936828836815034547593517014262779587239229323148150815442999220683332002590606024071448067050984843467530837463321952602888169109906905720073491063525609055025180135958510574120058214400960348805818555612232781897399312248728357276155474360056310841719463725852081152771314397117679463123504826935750627887146199211558600331366168709707394509686626698780140630898528002007370815566363575126238365595511918203238099451904572888630622457164695366675394761687989445288699951177679555248917800451417041740267117481532452723470574852263584841230506045347275272642820479002644439229786459841880531170670381899729632752051301392845392222814775102380123939302245133083809102594535689097164056331499376471580138479263518470196948783610778243726049830794604525171734946257211209351039517280005193381581967124791635042636073302504722599148035281854941000615322198720020939163135738455116709461534547294448228859640594882850967946870319678452389147852901288804065032202974102188090112461000554614399693491528976742654483826552656362131273104072903348120703033190043096266758988314108284393784147563663418526149602534696922479905537769814462301246274735193575114873025149058758517826740708519319370558381638329892771426786732022184517530036239789145688280291946422446727459453497313230594004123766365467924814519618892658987539834671085635738632336874417137555465542851239012870021387743700002178509380913075767141746229988227852519164367175639570813701223765665827171458232136294357128715577333460480917501386598421737989432124076328555757175112992128708986313575499578234953986821539044972901800464210968210901841451210252133149549103911400262129120534547040511774459949412527595471101098737943650232098186910993836187711140438873768145216957737875906441361545664840106129758181326302030353297801021661822761558198179164798349172531049348081492269880763637855102417544038601218024713207592274314228997705929606469450400453903067763456397169768480652039433166231323191877510404570337315322420136931864941067870545410996648009537150049233047735354856611139184395797482727188863738170669522165813636746336969886129459611203768076204339266936260038926582074901575781344105960699214400426814029193309175580812204400941835665405841415953053488611926866995244919549196517863470810967329434727767344870984278026093921663937373327525148976798284212754706987360747133952113015632645780735549754494104137637198780482861769187104314386755672281273803542479504290588151378449485269084846112253852422104023498097013174045643985357566513965409519479325583782499128221610502315382614112535023492154575606204517073561648364637341223463153556824093642540842343152151757383116044013759432177135621403013551368111974332842859010622718829486938915320260303589265105901400205784536225066387931184264930752551347588873735420496976351862892392645820269429968300264786325646538802389920098858412930385036103848628677851924501377030619820705237384873757698524558345970091904888741923433690893323595214073056427965344228740789952005578910505723104488216899128223786083440937614517361912574903299398804833018045965904251019059348863956500166223236000858386904851973173202603679772350831215421410466711261150918912608465475122628943507515028372402797802710394319598848667882060084034685011350594127238527402664776422423291806386294050344028934742413696742187610286692681679197645212255009478496585752197661716362945268879149065412152473482567795329903972842517755577213824738384874373531821123146885004236517057403436919980970667846536825137122790254479985036871173475920542313430239485738685460833690908542136627463754202690885034118869875703312980820709603045890060762354474781138470025375506505833393957854305027309960775159515501373971311043141030231198729938769635711409257646972478034686424901903352563942890761970611561978904360385454752423167083411015846889187328937885756746833337802316926067296451303747259312212827870689641572439566918660485919648322155309556924352692312514750163786280379655803308545303923844552383634521983724802404359555672212603096791719933997481005083619524863122513915479483906558418942990754402859135278771465875039690448893642944770897950685655360284362303087229762278316867754998931260415781666510256670488037385180647011756368628376255456706865634073751996726116087389532923472662833078009337068773225607133872475665683742193728248950679341998100341512703116631054612174901087537172208776300114374222872643324408817136767866581018416189071668742876066910136444325694745294003030864464972594118702364427617309098028994465195216405989673362832627263253485164805991766334666588790101420948963021235941192770458360251266321650470789638040039831558876906697928766861180251237028712489871882009224574521157494511480132403106541140307290736035731358076880311014141201253395961628267802608464612368834830497122308916896699651653086354005000909666297203383234724593068195820723874187987867686763898331314122039065464800401530000977890526879812352073030924368182842863375744629268150122565814114295402872759012484610696312677459412968237509203675629931934248714419368937920242090748497237734552475668625749718259651469825300949444674944432803556111090616539616658760911991470563477648224773031900228450840908926424675006042953505651619296064948165119187433736821167663903620537672703985772556418250660304077935216720152548564770968044435740491782914205148172354431544141028972876385139783384754935899734287298366778415971398097117437712976372792287310177999336954248237447335534463318600171636228768241199327270521503620753338782751689080215096412112181057262085534059912441306399593295425179050297774860850056832267025940463784407333409862383403970116588071359897364402112657976695005173444970939063886710594467323377187756782442241467672565402704602762859880516434964016269441741818023279951684484854096080648216846621686983027955793613299656139055942464169889849712376652355149472273327743317805269563626017185456419609776888065040336400932567452675335764029519483150453143610151062436131915792535247049064488929446059069103798251427551136313244827166452935994131516096553179113091343416008593381294843063196641481134492693660267753146811407685767078000362593470355942538271103435396181381931412263069590350143921797837698620339782548396438691955995237471298707073105921964548739815170065677665925787499938619657466428693101792615100143457598899998772378824410894997402081718465985456562153773855250887963405437348988687877306991005416577916270850993507913087455884596363679231813606345063320435112487237232073546606695249779344195532094177477820863882412633065777975549220744749626328129443366612020632757194796410964863952715388509114500941614669064782732581782447867608853539740411236282250935317681352300677069489249131119603395975830536492811364192014966058721428097247742337592966077091260247471873640251586759764260600487022442953838506114653554841660817061057516581508893130803846317029216191115841273397832239079766795740545185882853674240114521240733529500616269045684863073855459727606275240882039252309527466376407624089630519092243128798675240623262089543470213819018907497454332586522922622739564674395759640458630132396566158356827260949484502028766027690442280404634328668459451189471486883619968698318887001358823239257433282496617999916867966059070157022071565672929571939432360135900899970908473005270106359664180066259996934079776613945196035831804187084341639927259971466857221360045881298765104532258486065583152723934758184538541884799559730445470502096575956685016157528714419141116168989007562697454139190420405416968350679271224881729764271981912501434638925086577048735578541645860378123866199660566198483069460958669309098563433846882486753881599305997270740977643550983765793699334429104094415556502330641210221856196766209346849539073942459745265947655428222820240458290970910689299300561403900419753327263012830239467899713916917606054516130018585638588985026343383290947764394943309091220267600655370363450422242599751117090894317008566062920121908578279179492364617943847203163703409768364625253827168597472260649134371354518441032209160651575293371605347935082798445093926219948065762479080387063118509160694283340350969275143517270407913836535516834580074012667073810406829624193192051460246417968466910696871929647503399017907487622672822803212856787056337413203490018647428351604070565917694248103736620421592627001552352278589361974119236314471554583301605427835434160609526374362220569672547839158281182952509065785691437162183839278093268067711420518112279085998518304199831631336589556709937849619685491006415814473355861794330699974726633045836192898495116177851807424829114791382681213247465974775654763063445731308679352198932525483519561860514877129696306887468146871239848165982181597999602720225358557005818697608252139921416915682027117226581333591658835585313290039432957479407012123176486851098704757573490830864503991787410590400868432247564001649825982417683050011468727240892235127236818659169108565643422278713584272676289278731934909429360315256096900676813914542148892369914379862608747663421216577403653411701494492982244741284042572418154261885889721027837877494844641888235013512116718774647182223608375649974677750603332541513515136590492890075002746684576648585309855576957069287547390372804922438209818160751793983241293492975376952384082949506084807883105177715562488549871397163295797660222562272409419548413473895441111675900872781213983182603720073050120835363852048500189791223346287811922039642298446311982506961895072909933072160245828969495875207657315354024868381439483527658507873073296994841628754018100051468036456659375284606855204125347452558568007337207115996074054654699864186133828826307798279873712516573327609648772869101688481873872379379646317734774951941371646293569152325039328401347089005461335229443258154578835399986791335003879015194447679154135451020018761350772740833064273088152763839781464793860940013362105643640542945833124116483725044176139064614290337981613558259660933567328061146425535194306386013071767527356969343818277387471910543469434424156376653491167844346459861398608183838457057459235352619547101685489581330009478835797316778116304735697089021239502107267725493650837104496812092986472692563347843951630394046135806780287100936722311303436437178718581498493119433884750264355538759065934218153615563177840248849171532157383281308353161403785130942808993657474275266559065653111307075653549703262597532211851865849843783263525386114495191418597965862939060618885519560723981143193927412133502347252052621618997923996267085086268258676737647266325442339950370890871643529175126535901607997653861067623940030257356754046344747565549378061672766122548569053697487951607421860422972233460352710742541321285965727407250247742800874829968224437746154022671069670632076473653489233475388120903241667676752438744724238238732251097967535294813958131047410760457806331109914587664289184329526999859243752892483627923348060991503218532945880049172382625895330370193411387933820837422420433568774086253423491050451147812873913600937646667080521663924981575267078732510288930077794805325156470833232798086191733271819893130115118841036775380382441906806181731657577796110214040152274857294615178650614858280841825031302603293718317009857749826321725593287574757891524547856018150629891718800827175463594008085373727859008290297303149343578337000100776008292812198965945956332320798365539600594436642477897358753957811633295191734254307341569858918775990334853532748599330682314376842456462870370599640560059769314686681060240720027082572430829952582681363510159599611380582973928257896562444967576578908500016050202270142626148674574011702428269314248912644221093739560554565209376977652511099528745680951034320353596309872199207960419289456816428166972077679504313892246506142762893819956320425900378028134686007796643719491429571004526149457070440420785902294703583734049661238803256962700998266751987234391139996096837642281505409832413201988949776586167851558556861676134323765027237165972994706163205087409071530994176156569479949495441687984954426458452361429212201365528531875741046055748176565272378557359066207111247572551884485981041002954278052860250005306804947988954122431474821220573868961415926868036589303800305548880311123081499318791761625937245746006006719204446852231217144760274581284546933100273499491803271770603344796320459313720348538803910688876117811362952223089437648324424859554265516051704299059047442930251409278461981092437184936078549952404418900180499320076983689604397632169013605465143245638129617031887433599247257545820186264952002319657850295793235664821368853679299365298490771619747297646524172408715110259022046574829996794313813912582045131955800606014518208032503864940783945222316712844794302785051878558844234311484475597003991840942961960329318895899487017609631209651425591188555517966162006547356399085407435334296171213934747714615691599120767708207058732880472526590352516801251077787798304790405619067769519557981200691713526250896769030634169427443406441802069224638432829993758019668376561642047815078220930038856264829301598464215418860701245684226398364363339023389083535668995898548612278178397663190568548474812312426153404452095934597037986069145631619223175557592539977057911020270402444887984113644265557997464380168906866153663869314299604716937015138671531973064663076032963865363318982876128924310397288669305738437541537764080848178978324849303482349023824377632488596446606143962289109453656541999726918367521659864789764107270012824032678533002964200701668663776234790787113093464285919581123043228582336784751011577889295122997978715761591525585219704548775845369042154837149616502113567654999267062954199801536560455130015194967385176454232458615252383051189762241028221311345307423044251334940175734713195982714065709374206034129898783349758440126132155271459005673875169216540624396635866801867409355028204078684974301252446057986002305055074607585763691795578915540590532966625794945683509375767511540644406907935857266812207153387051101881839261993738165507511074701830713078415233832205230384802383751613740725114498208027442345090967659285893848951521833406464705702910060804715925369072562966630293919271853138129233791877303981907943198985312862703337396343803489488733809929515762207299881517935751409199554759868141181209914578965886681656125609916140503138509016470256418334544165694456270993249141870300680900293863437302579271892981533233307484587391473562997304012640244822835373565772457220790695642853944566046765267137254173071887332745957504648078947678555698192757347555038796496704563315563138377880670298008334740753783314518344520689344442751607570729985605571033066150246116395239143861971271845465658212137620851582619903549455556050271121498548856366439036856843739978373277503387617753230294052660121005245376059656392705400947590153216300637363147918249665295860338520070611852589168980853471532364533751734324774177311085306023545456034476761533052368430791944472807600799726361927977947225420870325667061812816251079030086840416164440353175479144439998733956324543027537103372964684755961356848038392753930180519306422587259153997147770125466491394136376497627433125662735173914626611433217640071945757071862122961788250522226979470430010440477767761328122967514485292441069352866935349195733829048426826655735964854528949478717782226923403826854528349413578593901435109770380085128006530555627217834365726899071055658303253036286568349986411495123781682973618247727983094883727911100501551669211680586601237430683476671767876042089075692090189041266439297131555638866739074412612723573806072295673852201593714576064731023383724849741533869345823788878774292188044129168330359069820720958346757906612459032605098191678399354435914126526756660679397339943407242843641859793022646300290204880781465910582764028967494568432579592673328803556846725395861774608743739568600187493978753250933271971200053420185765074519609294554615418395771020420812654677169259899363019651280546881008363756796618381507554148582356962997364873019247184752960425751421340476167234306478366444573926612377268629387667733201813245582325836641253929747422480512828777060657266362587494086812371800862760338475048833466190361977411502199021863256396547762261806727377738741765163198039936788396842369306969983771206844532074847287347976999962744339685355928493306143598128377265564963535257933806175364921114162011381778694532585245693236134090293231637063246314870341287708741274547204862666857856746886023876357702103422684487297579071689632020497684695595987894988393259350667982564117797351302994921143222049771059793372557540557790117285239353359643322120018966744196405483742429661849845162970420370484278536348225961124882274370190545595748900188436839778079321245480024677317715461646835071120190173495972101225326571601784597308688421831754209941626711038173555970916110697913890404109158672049278916299965101724380951401115476777743033632564232014032032610995266707959602727391520937526030044240203264009755334691391458230262584996327843284837802891531171671257930886555119930724913794256987220329773983343030950859270651836499407393794026557524979590891096565676810995370459093270647517938458516373389409615016580807532284809067811350867705690279732913540649984905924479174311924914814906426734593400461580575570000874105204648709972779058311144701258145576199412395745651616328105141251081472977924222094162406242804297291977375591690384753909066721774743374900681573018998458542161963513844437804157408672088890781958191816142972653912983195084994218198222112247905691007154906531880928227479841525996212299941352962851194562388728311090452768312379372866576880343402975117541138993583632012619419739425269605067470897320746081048757936874931830898313851777018228290287563909346320157475497097307273343324846228236244508738571335931507570005629279925446921681723647116601336196470049723765495246787542415273460435954568676255211059387530153960215530598778397323968753380558341888956314090450455782126823579094798921399363244868368497434883780621558527525816492876905146882700913520487587500957968638119108423747850285920898620764485859404701547380819259295375394012452944137519095174755993254302047084813969556679152311420105534295174860606380157990526140512906561946260741078392504040919805932842660070014506136860612489674886923148828814738723937687886197603533481934187209925651546487469760934296393128727617030203244061454668234073532439800890976773372744291826861953528381722551768018560892068435777267535523995445968398418077980581805864065951839108419629085211010621292837678358723772711767454005940781409073337062895018274374519558116053572689246654762216228257460149572246244109918509498811176761156664813701059310561536129241688506669905121329124244015878115681413494777578278415566643565561821608067189627725072886014779363854266153642402348758472970193713768329090210953294368759055303574381807396489030769775469335732332438458964638588075911864838704696442045788759462776291224778643572482535369888254962269431088707881186728512185237548022715330869659887306744056223048531546398084763568958078860872342370531422242639769904222063402357529382313092753751185349404338623945907140068061925952974660247096554349224204993145689854694614565894887760548855449899770567340490266612959979016788461815649802802799897807898496907951037820602350184859164165750931806718509956892358288037272386210106541813967522585238201807838299524476745657640224371444172361128194108957941381009878711135395186294817984387396892144348614203670236539826751509411164892977103752179479848940572074416187423794332944232344685847956024216453744563681399788203513485367412900252816409245995637854622957216916243189209299991212125558871172606393788953519713608038562136727152530212424355357348317360316699396405738243219419608943545886837536683894334653382577430742690939730007308218567641278075671097779346100459653536116760451034596353057050675162470499730005792178512396733580588775376584229542979730093439811048394201695321633555614285946340308890067007779458538364849675408660535103090820470166534950831347571476327843512767176232632194487233610614500194352707816820252318301235143236726002589741377432678818090895417147546169630324688471584679218846735074743747436717782121783520113010966310971500428432953652710316606587107501725237571905126361582983957881756225006208437442025380405173635677454285448221867480859759377552639270660864207624021905687931159522051265397726049237857686288999962656659169879653025979129902685356229649029706086057036244588728655859362526048181121819232260337523763844414177867876246902125449506018982413637554743120945510927489763873776907125080532032951953010660497869988249570608731038397077929981805712921354450097851768976486320194574853726985857028168202864575623418450641858670810466423784948532929690156352325752889204476204030348815564102662810371336729902376834502705918864454709875470410511260246479259642494861186092281255139575143439768621515441626005928767151883507922713822242495330156260412304687579854639189808869422244234657576335273368554070183989292722722453244679188059005013469485830232440223071601796266987944703123969307830467750190252942676716015252215067616883452925369077472926468604804972095158337931590078310751678691429392678740950629691234730154358350412286874071517161716198611651245323228941184198015567580257464481078315419374123260050479836292908405006691547984953318147548738219420193282982253802153554816725555346937932994754950269355338131808831582144251703974240692770623416101960426469676841375721897501588821657699610855217512018201511735596770350589445444624980993030859795821928283925263357290443691892862706819849657389509010952709081389014351493023905479030032296677890616281382007381694205709468816316956696896341245313919602345560321596236562836396470312455718890810742959620599175068969746632187189368726898351893151995321318276265985537164335565834022190657219083508271809019479917595369261774098649726467570658152408873052320164512861589145677911022319391041450895118188851521984189309439999143872197396766421644962206595819358455331373852162124005265856730872867698849749390471439829892815903259266160683034393756716753067650226266832309984696030142572509252608871313385172667495810954816945071998531554989637902723318949726253415096533646744766301712862652349935508175840791590307649010966128704465885890574141500826799983299934813992161910575098695710551005295656361068774633968199802119109436026071305210933574493356620921298893262969406239568490717709462521963312932760524861677640090712163005416523517832307910954824205072012923586554923002518336527367407298594129297084082322105336649664214210374777593132979905414908145463506336372989402072457800640894371549527221245986831885190911121756155379444748183250992215047184777296267662536827396230763153313054819312069692597552735278031502786092939896904176951194998288098668390374033876916387343945657310406486942375467129230291467858266545618850581772540783152983894673928691858426480366299115915817615825044722518813727120666786051797542466030163733995257631079566899389930797993319770340252047135799526297198122901694106387038582496929360802826918931940611280574629942397907466743164523853554098534202219184228633693918959314186575323303464785549568662491491826126289604754015503629130558627368237657668331823660606773802881464048883702130490073453645364893188660564890095462272560827892976277302072845841840468949539774322928964717090496024470297443972263825426489145080360424045118073299051083259286141528788616678325976421398289824558711323175212980386086625361924903040035266564275198079863055465998785155820832584512962348610768573730174313090964582473220082307546380843671157004688914559125639249366020870988753192205068185413412508982468155257308453832607988603472420178411600156872910835555748661228818838395206251940150405895331609428252140503950553151263282585239184189195568079602129690431966240831994575589519048695440620769492389661217366655707808326576477411890035420922317386069994201133184455705036551090630813716672886112926408318834586193085334105426607531216975602572343838672237606205997498764650986427519051765790984580722527860027807227743129706909547839933965386294465679066367130884660313911299482814144233130975265464662119908244631435698742048449367712459865187474128315838705203480374110830295785802453501660515300311281095032411287887726168131940802802471900296393241417992555198211511677226014494034756003014096620828711181716791023943190182710505779850743792726414645156305607102402649397049779709098442020015305679185743460312547026053540129433032116295231707835164265594364568672918700912953245608452245415475789545765633044786291980249342397361701157928532598549177815699115292889877528858220696368976812734832808531922666741511501292587031195045250457621435677310159315226310671866028984484458276179122220238527402126891521150386164046118803805564112003913932427293761067274974762364993294839504167148379325220806420898797840683223963926396395796657906869503716055265896200980195081673374318009861747695369712018938559425874755372398160326022507742718992387759653056021370378083777530121717437809679778712622017639712868574272494247144377195021919129353914610746653509760324942427366032613247017694982686938655832841523781846859235774682037606348999894433574869436969963527317363469770327741089403992214395524436941777267598576667957275865079343251967732409156494390399184544787479532176199286040458916818182154214997035491789136731527266056241785573681046414769426388335299181170568665837663188252563989242305489059645077933578699653272639528964367354167401480835486231001019312199382816874073110956084996676466898932551826992521836707453353458325569932634065675306996083909814403580414919405130651641830111835152751209317566283642765285755727372588143937119458560131107564627486690127076079206784949995001753603153000307552071303024690553647505622178989923364573690821535895468146071283742655072736809152515422336466547835464862549623642713744444909671993033374532179458225858122613138846127948445001031784570430231152584962501656333107971884128639031983344282662474554158812908120990282752967483983218981353580913114908629656674930087019392643230148907899589779526243487977225479112721740831469859652144691184826133355177640263811461957694508660780795621058919538647693208817204190640242654733193567049021666273551878354919641042771651324772077419111304041124109271825761771895747735754806329351935109622718593662579805318640615251408468969304147893516076474813991948540178913937628695332404129136427999499722504504968168229273503372191437313971439621000611052896758158172263197372285201758445864176007349727690444914235439220699675664473230209134660634906360583703744389712984607878630824162100737990989095337157989098939170069357716562749041615276504209464487890434749059545278401031526406581431822419117402283563860275259092760304208659912658986048296516407505188660393762536886128076376055752222050605985401342348553180954950709625432564073698047637806248819534630784828013125517982649775575062184128942052769163525179104422174767111518975954174549646489575105389457541920455693447084375434196024203321429126849561347142754351121898480854898309220251262003937106332668716752614516937897916244453145904363615651560626207162398252464715178632879050607476271333695781597924520988123070852418988491622266493355452521219755809918294893638990461515834207741493377624127244291664700857167432960344683281506626508578251496886007825702888458006898314699702132087733607873888786647319421317133226815273266202064712157545171886219389072703125633818895899813138382716231385910424460745310176905962588406214125552714104105869845109612183841563506841620828735640350028295375258291930551463080147200485879093774058197394805006025262747251035465720995678694870289081162630893894797438656196597104172388679659909859274056675565186251493411599401483379829171736582192062070987877765413318992370582304978702773925387003848002744401489205819282460736499162736676349760078657272060835092210298613690611698130926593288042628382198910194475260111465059903237194677430507271038944808267424383374441925325069115452017028104075076689764214462495342667883786459999311321685879357381662610920662241470699895818369102127620509284359661841379966768291950890491224240278689927953429487041696279255824002093194712166362466331676788730965137941398071126249592452877283659123932383925929537573204742652953143937570283950175830418527389488240825487779584322954628450555408819171952848737739711138721857340241013757647585356390820502816580614723226944290582779075468208751395795990954764620974324523084734649674576171158723056126779716557258584171598414746047317313231542323159077603910013378176085683115676668797122241934542377251503203949586724467925136690648318097143041131346225860000960066960368652285021544671490947921193816632000441700032609191340796866395607771338887537421042521862754069701218660417604260481906538073097962471261312309435162121891650200627305781266757454366334020311113091815612807994387771033004184600181866093939113434751289215955340942035478563302042887094839532443629262987853020573151262657576806117231981882953316384864211171165966483465495913265540073718788731839329205607655419064430630257841338318283532601557979274039147978975149802577226469402709420039651294714943746199638745937292949659800404301286317069194079386066021922008938874888748837948376058396192176140875912062031835907935298463177814776886332550295008723907278111185775680055655614106791964241496576541924416523426947760549854902767290619738497643465400735806732837310075740061502386513910649528182122333048837743784067018882060948994137746389402058319048982294716371817489450536614693901907305946433271694714526834134698572134386319893228259597221547037972804053506225048412438371939301778872223933380623006364261129293543131531347778935399086978144262423131604904398576968993857036237018631895127723451578676915435233311490620928128062584483824961979604764829806244383023077777666168424751586204969819428657871725181436598121246820072659899112709202941728222448040396556780388872228023178888375023998058282519793885696189471631818294871097995596965771738819202518933138152424616965595330576485533444044937918175950336184272696989284027272343952102653151033084110104390609444696270620033162815505039142085436927135216896787242321787877043237702289117813139697545730495682875247909605814303922867079881069722131917598599151263461808989418839051569755775735545208428346838305815432665334248650000895750512351213760257503193508726160655504197897621493600988854630980663688749668237067036862218486178570928985746797100885706070140602717696409813585372601308611355158402002846352665370830206550037710838619039485587428414068831611408047489124639281252685540040371185841103952436324834966900595749215823412456302910387225913300875580382419780238424066378963497578866981880595164344977428036940149093139527555173259234233548345124091962792090591498937432959545136541391349518334497606554757293150692247017056837150476339800414584875899069778458431339594673854548988167471731708719578391479138107092406196414199216873555366647748860370091332668792293091564856305305146082911433213874084427458439413901758171232916594085597804753168803874143909246128726462495089942840367722637640581268669200409320441796493422390016580660615908322172804553753555702150560782101664044970537808082838681700204663022027489166831342652932915200259746535011101187587620259128059537928779163357296284136858103565679282817996751571598801019417303245141412578555345846812237021484497032702941081263510816917272421747659541766459255163746321532717428080253259776280675007594026250060345397554004749133429432195228420775085558523222073403056471511630813075938252288893048173765889693694221946197675572676059221051587265675164812757173217832635293260255879483549566698931400221466702268032763289562189508684563428201581198316864163065922921664777717083558227167302415029640358927557121749475918265619237478108447605077254202633400701453401109343120466292909181443559256377961530964375077285188143491504844333797169161270046640118635319078972524569396930181063077293526527685070049093443356308000689770037477743065882761828420629449887795440376372920238170144410952349208291688305999432722942497023702815871361507077871854288154749077778465641549248845522236097160658978880977534894911489652204325798958442583742205530589815241066385083635493289572116803535203356968782650581644200540504498099387945869694680154868509522283730860934322180599379381801243816575177070549954392358980507282836423217022193455241994432739847751479554257579950949110126288517836999919159615196773744703557631249448797749563077863400720759356319859921517352593201798383268839802114745890949493787254312746464068007881724019308994383605055568814939721194009203308141643068169440424017256724529817873375122932990175900240418973508120727171800617743640360082733411644394614755437061771850614528491307652837318337646634462092358286454400882182644248712445089415920961149344315597990920267759603009271352420478014503633597331390735468619739399065786506389545514659536993572770338057910515479566833486520151132383383903279701131422317203188264933344845618310596815313005462635441648393485706434384369513168414465900111815156369746948587286337571472911698970889618806042247849012766440238441190979468109435504116615487591603904087296251461416638013856906424992293582266417569500386957585419075566162612573437647355170674975771811612140068484998309078612267669559761623947695681165106668054220700011265013860051719441148967362999858626191486408447841946309070278813004980763166033409330009929237538332950315295502280036072556889449409005260139886789535792106100817855804045093159452066259325749683370029734645672302917881758139101126022226188752910703957257367559211667768892396362282576999616010597293912895663267671530529024426221527287724518349291431240671643757302713250185650558584085708224935256939266402636084024316319755414353760367637399945607582018346738689864398632790863065607166577905062217838284133425416794160465547561808918531097893406744220139784688443673999973451396739936837831948778738728979622325241315714030962226500303043886594597348200582043079656658093712757588870500724784469763272602657825271550440797809361398685977009494799289006893594624442862718739481770356814544002531035646756788373040658917072368770469492697558266621771013380065536694354841106767705835782752692725455395618465547701502941224262421084342999055759897768487199555847225428597912718258545228097008789723918473428486739697632184569831651122685805448498859298204259568249887121586059416084452418337731132267994061879738426934474890475624632255849171311878243857852134136746831895682732710520308378250361663530630614794003856422354303754572816787902642176961978367735652976580627867408073988913556997883026818212377302437053034584930326390634130401534030677953831527995783298085568977482403686081715951290210005888154402853553576482327730174588550007185342799951721068023438239950619005507265394389253400126281470765110072585593224368284013154064325421322714093440149557458258392701096799556778788520291031776592377918704341678778114441149421976652035949626503665121755044741161143459007620919323026839590030737308874269407339847961027007057681885300202150868783080332192993392278630859667779792786460861446237833360315205421850422513403672710715694552096146413905304331613219670050061718916088007717319506116958273939681792310587088279552052071788118494732567621198149124576648668449866800539786304850038162006699076249159342340415627183904790630408120327759522815871325133295544877640212372048006513127415367350751069989256487170339048222907903861683637853250543239703883896156009452488395638574886822360829491923786006863205749523103724236127549157641983539997315258493874320054244785299053718480801673125829280152992033150779231369850662516966171541704466510977299217868140493012480592998554675729603179611599125652084852250103560483081064339257843530714547117998782833363608292355034024661956309826178940832366404590266539955221628193848413614762802819668112483726512648453370529056802800142023823221118447927365287313864157406320023343288839484074383711059820606971673579371785755503079455021160051489586895990002050343034308068131982581619154958016628852638641291517079535455822323812280084139623692227552587131413918967957044803990886250654044883755352239734375691991016025034606161441656986890771514385878055794678173554374596415337970930896745023700226143247652194208838760936346125031122618808484489981273028635192038194536896169991082552453634625848031097959375478537717882712940285378203883676000932775438935701684238031132201902251650929432187730136269273502914699021770131227444776197141993249259496180841491414288109416718957693826314942835692256938877813241734506742757154771966947605495755908898078192454310729301893979723637313097035067043549248568357562078018868386134423386538404300370202608065515089040399905586784237068978606455917098532464079885107722703085101048671368786539656778061220707255988455630569191989417342435598708935929439174435828690994746102550391483277324789919580938618207846230887379914227554422462250737195163478945956985289727132002107866995116353122033775269548645803166964204543811829766198413504115159835891010383872136426159693718533625761113160835377590218150156733713510852349140163662666656269893678048083200537477772001218522831955760952590101189069013263256808488651681586861983967847596867608781095880858401220306685935283172542373181553998749475231616506588730843466059298086835600297355509671124837170800705801678513624449707195399981506550179796028526873046354632313254480093501356101814037206646094115750078412073175179917155220633946521965415797753629597404473334097002955558236448671910676620613135345977010715577107718603301034948815066431494928097999875283003538394917528405192521024185117462722467898974718463623554028837618724178246087686483491363968470779995477860622196524799060631951987100163222253620058341005367683627326338799821643189161522456135595176225530870685048286411032325575135082457943321390436239509847335259779143602674171559331650832601208380284170961145136819784173797185428547908613273786071891102967446462754166341710693916224311653923691127813115158712646330496291559328379661602776151425385446328964257316865559492571201193791650875425655865855160732575388917766227735169216152106232144074897034411286566183778731124491617657762357369248182223340570738602449622000789059985499898967701530077313202580011364986905718458248612992336571853855002358719116649606223795352582815271149025974382745379242820842469593369262804027106955894135850602184059206569848620600910333734283582571183513414662571085753305124286309261135351854507048005178787946447562779840266965594809219939217191096177577836218893539362084882169023492298582345860662260355124788097745882466793215096547639018654077454375573797826761111921279250077995113565143154053678105611531935693134140621551115211880092309954913062940148653494034218185069901708741878921327892875863802187584726306516707259103592533030865514614630536751756417877492600215489914114880121991303543376328197687993099769205250610195801677819447951509076189947558239170705892225431251559337624524688810698112867746803857333267256708113109755382967406940394585238180317437394887732755933766859102810367677778980662852223759947065465551765280617428272180469757363546577333929360061784331507951032510091918654031543662548016309801265256956386313980409756265741030948387245451019853555561132563652125478479305826286330473269153201604796603259678910410021960709235949666259590963156583608142523874996559557997643129958336081111094866247170122636224579564287065978081681510493055450568180743981334836523891777693178453424485596574084450898542868780622878940747412410107969410225868376150382428492126376831065409125422099023231846281170399548580642679325577865278372887950439833095478965570318816480837419273842049919757294650557619046117018211224131832034798611568809983927091782040705563647496602622318295861837240835964996141789280357105544346824357064775022021000133423169719286598760249253978620489516192402608939100670478032179535347780436753518628259878236830662504593764312581495066187161207156282426241000308747183723446175009629693411554369571954767752921103536774547853204600494573095431375474811223391457785876184232780866381367708047866261761641928559113438314458790204604191666244092846526987299163625513657216856351906663597167326912645130974341949580040656101355346910523947237504595213369067369464819721222102874215968883863926797585454832700290712971941427179789558511258813233496346943052067228433801171835876978744845101621759636448576800759935129028594065364707620157024283560181210401335417039241903942891397339978654322894695053291598800270920840322774109466089905756076549884700758306080983271417385189554277382229580096480122663034262913161377899310349971167663977482881278813296157870776114786037182093531737353473920811231642521851891862117978194531218632054869381420056352434659098191605012521492196395944484867917511560721905625439379472777879390970886031189928887118771039659119656023566236166204368794245446685623065121035562936169561474820880241294543347068753005766132169505460754815241083884432961463308454044735085957933252772971222469486555389196426109982872359029920457384479302099956813412378143318275093838739792383076722554997175157560545412518458314021962223644062887164428359522566422011807648312227136479647829337175726278169884853307148113965259308394821193985029519343577311810243676386561067254443890695504697667488677419993782723428436618199501720816203313101587460263138130774413513616493438324869313719019127613181929855450543625494612251056016194988261092793805207999461703893388641621533421074030265305484117326190616083255160624704630390223927426358391823611262208019531204014095076669859268904371886068207328988242302089754150773337591100951544204211442105850487354204949083392441398842836544883195170225260598750387036928775924652975609707333713147467805867559930452086089885252014741428205819545186313500450942331308962069226565661018279787868202987016401422090522222959721355098849716435384155816080794367266586568526428396225206256611135967327093020839520849568451033550079900925180031350533345016310694227598873448122064831303861199098058523468932574765207901347714125877904137709803007671113375300280680650185992591343680060937474332416097910953356227687876622021730539121067834139241021284787502259572950413425381115612848555705069230650605438509855279966908298197906683915783111069637206789610621843247005622619320487506769805323695959078660345820635228643363929444678619301566825039308204248823674872150699389608751400430845890744695866080350233412316341750290782103861782053170043879512300365243837662617635631631508979497453923866876687959768093948510609185458594421537888645137111015344287423705545775959895179616751738099994697174647961240547823349580799942671602254192359360881809934317677305457527957915641514430685396578263057652257448486597597596584237523389973290915327192097445900214303063673604485811039913301715606866484397026828406832473628613310874480078821609074916473459797169098507079368504279209575077013424881216410241208095922008021949608547983140887665859142564693768274477297179376912130717639108946290985890423350123843854828410368408040260806394569590851162393313277378315819994138115732088137349757857430337563802521038446059854025273337137999258534532330963687169099534586435665546783102793819355101821974636192431267003103162750997719778836343000933704514816739625573460771327532808351720475124037828259549926443371116622392076924754478188455687061887199811758007465169079959655646465845423386115635341168581556618846783103697121592004869928379422796825715760659468040595166901971807511340781275220761349117641986787661855150697964258911182564888587558639305861217655319994935501162395755391012484724020408108698725166807407070181254366855533023926982157196182555915578474479257686739894935156581034846310803721109467859759642703226187721134724888222172134210644341315561657694840797694289867188356291041439404887039270221692881319453284920646799931866573156907914302356400592113791377630513782978391560118415101382971392795504732995861841035789204807129378668219708635355125031172504486624629738613809974322210299801071724330969930011662263917935727988132267024500791430834543105294293123687148228995165181568598243625284720279908103712242971785646794244834134449204273672635769346550393517573593999922886409466808665429082146879397045526245183371444038076880055198188194563923293224923947105249142484634705370323011652581725872264207006451606312065385254319224051494210076257678721941871742645619167108851852343766539002491519148722950939761449443862317357010020678567497288197146370472759702795646041200616612031367721481585031917684691707308447491058573239686338341261574705337794054281102889658938311155185335992776693331763743564163135774709904959335491633327948794905712350709200140315868161657538137980229103288414060754542509036121042830290606365419689307842598475003854863953339370015749743878615688511270599408819603266907137294003095463038588959009285205569487277141678644951044422228767129982207335471089535817272627853917538754541591246666138173030112799359213462543016419540052006693676647437892674921529268581261128457273480163084393839002208210352307436234714111005790737300554765057933337078264269023094736745065562771875962549646863929297810367889862242318962283203837103651769113519586385623725091707994127375013272831376536749833074761595989075993129799300362281911399402093822158323024878835045095545133867579198311538663930844921393561570930253506811743983718002128345185219809122269340103573265263667231268868187114975058473336685919085965279752862405209781381090909496168906967744517063148014799243952624087411637467472384893659317566569339903240388048918122825116242761362684557134252437117995463050026890385161247151108520077312064274311079999026486551386562156231994994906651146315485714498778699542123067576049562804920667542888688212646531637466019621542846681429493018150082245498954612223340328985892491550380105894999190450788046419932660476465593075852580568884908642246968995789234507693924096237559583550871675221525424643317536454798250530667065484747415136229051218038674227417935533478028517313838087130219157398233316595822723744513244366906384447437310122652194689293528203461187404533048073324799136228944997029425564217309767442111513067217127864253689567332527592154565269212558049451530563828201203849070400645916919535225686682251917710752765996646203518518777899049111129975912907124563091938135187333935991981022261656934840684147363012742048522008521347561431193435481629410784111795770377136532669604882878349995928913268053858613832816036459893387247971043116134636016864453991697773230551725047308689260559264561741869663779572256365494417623844811587199680702800099448743537038813552221775062914374869692612914821507899967281765942196064361122192212755636104065716749095497086544034922980918852620775104372856250222592686983900352783827983841507944681718725179240162424820311127214436922938412241581503472016360766522382999812290759820790204636137119030884002966490131378680536445500713896514273984011405991116258148239996241353619022465553385269023792936360095033002820566081919055730734510748542584916471462902841726209359685847518672360360329410730650380928445906847847058249673465952629437837023675373902242966139748817263436573485160317451049912203898427151495586605538273833396306769368606109908296675858065416757596917227911071041244759934792479181320702764043988573916861646641493944858164327677155591116130045860353249016831478512260447286646666400173156882910837727908261245486982896612082548291800283439216144998347736575986846875999907481061712746121640531977530434157819272774457594097169401937969448302963473722449451836503788079955136291514023280110517756818690400838099875941705912738295963745251219488851481171456120076516677170313080877261107802388301750888939474417648465824563679980833420172798022966557360638942917694454514199091423405103788929350822859730888954069520075140515043008537195092516994522867800857481359688634059483612961252224775224031242153914873003090983504655108621623338950060952892225529535342379769671716197740402129499685700659628909126490279633619068641432471558758212770302856165796478091479109853481848756497488130792667162067870869133450020359754568516571510677536018294072207227392304201777460412240717564962975707332529470678120723152759761206730606214728638820135452739498986437196410440350750584487807158307173171104161652202052072456862298079858232262453650538217430502187666197410639848698671920525329438820385501812291767218038699774299618216657569999847368404987825887989364916099577862237245599230348882290252072525533360947463065644519054327678271381840709446654697168125262283291754040491555165043778814302262973579362660948240610009568101257922531186736890376826642350607987722763197171771326036853585781689291196463932112042151499833234951978967437887787707456813308709370980790209576998730902458049877293006713561498358496974522074541012690409739976021970762415981334480092238915186342295259290638640325473586511344292659641679146713263299707675187284126955270350786145475503448620998823093567913455322616022814768770777675362527035978276661129750342351136256488941879052314596182047472155576099983298234351254318443949194492732960500250891547730459681672616719271239691236536815173922547374314402775545620489758932188701846612557199462192636364113218327570639024446861188274271630057626914001879252350907010740322187333226927681781851437752233596358754260227319266164752435515938846243794739082033765511959067560758386887241577510659979450604239055746323151056532404439266703475957630740972402639777469556454607649586324272405975995099939893748481059582130756241557276290269386753971341053921347950580369385812149956962756508484230220316727658924992003527302595775372798845126902286993221272439066636699290525934601216900322782692880808817693082257141636954317134060712934745808391633874845412115297558272933799846803916708261110874953634832413166403644045038149498150822680841537374214080120070696607097241632565274420568191557013542319965485018044982855693141308557732338791112702668316019799246969894922152748363600585488260331236161189463867429375918301155039240035711265485433313284851653871130948080945772185952752219269119659088353727534668105252006692991836471762090644160947766142656171816733771636981146080211289684984585114210458150450895210875602883761802247482316734301664146193972303113601142161112594919760814222003557552822593632064319516576683186501883915885336958533858313382585508638880418368528120373107609627587951494522534195400947773094364938072167580535670819895191538109872832207082228893313108850367532814747399870571604722923008207649244217748836132986050475480340537933658975379966984219247968901259401302693450184479856590575810130436715439562225533597484506872141547750546266375167733121951198558012821442282083381964302552514643615329116771460950533686747926323972798599587469405182656539223597040797258112889562829493633228494652903259577256850121787300245492424950439204977560844678768708527362146508902227408571350562389442615592832297931224574589667860320139493637155948825563509490212828121347570289443637922417016954736112377588294523294460175184987993605191106343833698985276194496013950192606837030140739228463624302141898539099373448536158125598012801138080893246163352945176012354865626800815028091417858364257557563000749787705662752148863537953823041556159990249803218273338970734529467436584362765849523380387739665682633089642343310046134295452118597183609351900750229570293483391748358610334979384201447902108078096332731298070446365974363734114402430264734703690647793972739994303300517925131430948538291823904921081300086828161427876841119305415785739303107484412909492048613168840426824429745421458226640701502443080347266998321933480239629148809808648558851112920738736613489548035002277133540588268137811466239261649609915229160018711420429666310035960594062430376138597231493616950615465722787465221308662816576617418944113772048101436398205052371033672047798972524349878488096523146969991674929921732211115569176477989630812505926104088018249052059613346204179628505181175709302119883828210500026955462025888108009226454092550366185359861902916617171480871851908211562246408738387825314782986567854239927660653812510631007748053975242926524884382172426897138212648442635606511544630452191996472169701129684051798622515555965816419074420166827257446086975147785973549411810735333768049455522429024235493520161486103313257826730506843477170111126193682153146158087404390494063509238754347293840409225863062936086237800678648205090879893661947752171950541132088993348800251368415615708009929203978977126976034897868434520719436611021824484921990934267554883700814564508824970708592311228560124050423246920637930962468536801578513908688270340514406589981013917116216065660406041122758581428809722100206953778304222890624286264711623599682035286789953329266822655775733239999734352557360886096979649835485964178231927655251604618849691646677034068789080995293822412592018093114515593298868211560512563247137624632542995092247092243802939762040596888909037509138292197659823057330823124170999794528464945597665499634499729855050413861354708883666973098711852407912938414414360624754272125810478799520223629216364628339078883893897780901962249840383692032822721776067298213741407066044276147239654738499214790700889382115223639226244822559312463969217166394374690868147990214515163346939967109681057658415589229867806729792581926517803102979955346789414100821558932183842693840421551229910305814446704734876239978146705487467780485244646704633687633489678499169485067657144739441124165990337524251846562551224581318806307470148968297333010923579779211560781186858769069524812231050931235896809250945953432314626307223631031142853397138118423354443450234982194287620064141106838252850607341273175988732025117631229301483049332111411806034521413091629980601716821574265291871557702774576723765860006472454931375816051587668875826282700103939080136624550669481323246189964669435711493143551401926745806350321924340419991851258527544694457519611689539279056979732235350935010411924604963718076484666416314051055856172912672547816285911573768506622851806317414483387949751539077247498189486185271030665851822080722711210123308775792522841515972709070597370231167373187643551776640903244758033718841479929199821759173556799554437775783163784423039694436967666086572904720581671378192207632386917313161271168368744889443812319593672832899592227073034823071519332383038262495766714086064386767290324103048941200445960670306229945517250432758618011628627034566548312208002093952968214575324019779836810563481561137030346331059306087172235347957716232747407153183814894375520617189285529476157762759313294279478048183198280871777959678849016784781303596447935491122264088686767473060000358277873756173797019549963712799817751239849768846613274644653520039942515863495072554854083029976250723797226672522492951384541778076214391008096472220117600189834833635842137592779692981329057213579203149797240690770752124527081414130209819443256268351809832667043539322675337947486353404507821817375450321431068349219122469074430372312408447735115346620119098374371858358880517700422251462575478159051799182700908199980314762762546962527741837629685480938727593905819048415880967767307367018470543790972986356380058747532243551102017170736581881884904028859777705401661990901206036975180421830378977835977916476623667983250610163738733286685684319066694088293624071923436353760271603852055419174507525491867945467758673685515952867820217278315893888416469121784524281446158083702277450574348729628918857092529255511482611694071212791221918534470051048122117420155686067197218209763331470160892113787850098067338632073612374813836682538415265629275748114931134506639334402061753270768731149935896410797685894133997423222965826655254050823374622825226952645799670567275378729331116660721322433389229148668119404480033739878277812200314190900900090793808141786341000490341889363387502039216152353482984584192612806524657343456475861564480112369081069333460992727710099268598018282040491246792933807584985579838136098458762928520141588534468165560165708183012658425935170786016680885923576907290525250324408333344352266475401271051814205241964344061635615010953080462016255055146315683488055987165611841993409357970920849976061032275928247636756264982212673378980760674505527540574696241765255487077987618370645332658110693302329356989293829199642983009303320059567068244315035907561712727782860210891697794347026243789553211455594331826320257598956399596288362049734390286887957387341166253749708548731318612869605489033474267053249911864594399673064922634096668840449225972080590853075424952095021780035061167926774273274995254263368717468097222188560175337810538033086239414757527884313811004837568230354730106710073421290970511422148064502024549133784847096897527896159959152695261328893590586856795548912467999342213812509915953410476170061660769319987139979566916070884103999795362522602943950400783529193395776283428690415228481424175020439629938975977414952998516660379042022588729251545811772913933154146454123833165557278795101467156975376474690275312255840737434827767164872581871612174140964413383549648144104360309080408045206632355975494829525428406963831132846237834536247172700827569324248179657766879750629950831846040515998328803906922444089850634545988919840491189954065174164587810608797130374592512473017610064948735519652719240530484281973582815027671904665064272465333897259466934155210051136084871854796549276351173118835340524721168542627168388605798871905956165880274398291030767154918089643773315715572435531856931404660844532318277739274911302816778202272306136217235398738287032841866861306191288804222585360348859177549185306909453878391347606989224530910519359342241131527355886398786834063936935537699930368257821772221968148351307177517034260246548936337853878005363531044142026871189512332390727561177147571011029232527528772530836773699031741745126139823088781033174560786909719766297521772413764339466080297698618754660229123976218440192192563897181869130623643554948132767550928754083522332305663111669942150284227574642623964065055163227513171622348977990845283155987336539588646483195325613062813807045626946662197716018760264487527925638059348734709416663745395586400480906575135354892632425059121664410070154195442891696278821379236929822189779119844020193918085521330665526966806547046044068634041148844346834893789432927805939411317698842432930897713921541676330086851555688865656993791591905185585921479593418468032753691143176288138386390998030971837238632916381127286133181141011900840330901635776164209079259470491241808115929508374109663446404982491080643731409182592932512499810696760183112581780977846707621066745115650351501102656849986172014750771932990858227183762398741887421148781311817113501354431721575195925228625783436499284122512137377065583634877075565313287100883942643967967576244400212685232267701676894991273828439545548082325444668932067847784963707457065142366056290692553620486711056953418648425482196134475400801439759423254945761794860685475644937166215865004732941237891803644020251149149197571003432238524581993219241003021993047251987290804063105048068484677342118624970556108318806090355901437643642475992596461716558149060942524532325826820678856999079209733545964542738585270750293315950169404120258095883565472522915007694059779729394368730330571229345812837777856113987416629945041607506932575893847977976367124513182266781988026801453159455278746990050339358864529599485058552154100493931247881532195325382068989509505689468803100512372619492617515936948744540991479174044297810068067812137709917625499316003059380638935327945334952881730945140725282409415758379290565853994223027089106038259868276555232951875821121745410536875813546199921634366904882931301217409264489043001437305792118734303749898588882726550001097587462984318436340541002102488410695111216451364638809107839761780406983114331311187902210915249166316233278089923889727292992806225380022930990976500000885059933828706261596645805611311684566936705641489926629847988787508521319137410988527081982600861457063272137457295927230264544019192609271723377326900305052618432260792822008077203975376136906037253860119659670422951599431729576789767319090293197032421348144449668575445675693571437380516008378603708250503154789990696310241859659920361316764497158065976315059172341421767383694207248990438133748462463592533199131588091880348377794807152488352911788295393132129931312861316192293087859774088147364434043697280582377383326949530227805261558846893993467735967928294491617865072437536182947763609051510627395243236780428364337986925354490016426002608854085459132681861454549096737185977622671289689990492950612087480038525291517876714282635144065470718696668214379511627403159207173949295043530543783928810531867033033048856224665805169166860266892686714095937936472651630300824110256831195631120006008300331006031520055373801584848757100912437979026258009025319194883737653952403344261984614032059040813881578224043691885428669392097948991712867900434959213655165638545879933796019596462530097000108596202791521740497460890469981576561777725475391888105592936902173929257760836781296865073429792697324910274653814329666604564337439555157627404378236875818183473002017351991317284851461863447417511306897409539381519105776031208852364448347579916323807075803285444495367331693757390745967002118946895247620383715692937136547750310030589570303276971130689852679838592598714299850264264609358656673518737946747343683266646573819024627038469979300553679939163596532862889412882698568269214405541621496682307921226973098442815965720447507015516157379979626192376239929857902014283213724288769965179545985444066467565051087938196736143877224043005240684692712514699789469784067808238770622699597413486243591660851684311150198230196123296991237552180667665128886691284888907486968492732098234024353492781933107756638572709958158156315363119325413020995733881448501721539749353710143226406399233529463649740757743098315910707372147720584836544503880197913024490193308586561789751857521639149477623431059899348371274407401022922539624756741940090021305946602360304649606231019710482679784686911230081746208543523626584908745742475044966867347934375940361066810648274520479913646287873652700160581446683512963291624046304681227652292480659449958626565384281542484518964919817595256354007390775418080583900503675506661386172668176229810184072277216827730549929004892863050207261499909575322638560527668128629098304119931079301425427853557469430071099026374505226733373747683936834350911981854554297007708624691001602480593010822423751506810520036521584278154943748477821446068032778272004806825403648026017992158827051348036939466985435110698957885568166304020944869980305026859524811748474441657873976441427761505585091195819815508504240658330929451253430910417718779837731574301141045081944246156677554249640883591634530034309044703722343769870950452218256664241741207261762063624019635552519504260638483594712152620691590715779465103456072823740979528219079204248291684806773606200401089083262851420303162691763191116905467657375532215814555894291384167659111427055279680332687560206818173071386507688915857822382790609845432661882654457596875861479003735207409804661522846046018051541059653146380365238902814959405563611502346064559064423790444112901289525333311255647761743610281306333235987924919605273427913876678760379105237009877450648172771073950074577953045727056592923962382711587084937792741678199003674446159444908415161913743747059844810987789735917391567852439258743595109913678940166789898495961761507986714794032303941695034888174574232665392141847496856472214602828051866549226821579815980423882054276460484607024991489035816854913630487932715651231671273467680098616288821080054268305286831483175536921835634577587219514258116586456750129815663176009848484259645442211458786309528257401253288474873396921879672749223100696775210701650001906726152284241445698548957506428771997024781643276180365241431346768041794498202297535868822036975774130147197923732376332216191683131701041622646912808243223262741007236926075197631846095289592238701385466291418271986030036470098242435618496729022492397061355171845874281787954641726705019797797513677389872521803757641772083568292925924385834201810811886339810783391935588156135619442713096749124201934621412282672729354097943267482032434295367256753135185347454335333745396867320323782082708951989409256422709299982414751663499125268054700272526729233510862846742600656908543600478993468460778408721297644271108757702291198959172310124363362100292781514244463998599103844502420005596258055034292366472567812891615550298737159488567716210164506548097455576917132007426353727295713423550048585794193040258709517383638028188805388942842575490298699043052266784726253945708093739466332277908510243397099039570729467750881588231480445704595677550779280031236209628897526661320403345476289261798642934553710165144520629145554556804083611189773818010195534871905412727601519525341993958148792761048452408517973608389799420393282523686124329734151336515167619710164568337912733205554589529155055029291844831584325041711154991447704833764829321665999765562778610335897133455620853198633591513779682107704037122167412196033666647685060716610439211411663942153457956967183680942632863206390006730436622366632900301667791319120429983220573234623409983414558109436323060721304660137066896479263083833094768613060074385821633636556156347858486746471301442598317243275650903675386012597193585644537486810146146872787163426949803069066054898237582758847830559590612339890123479779856477379010802919921909869530695018626689355327457858159027286320773047511153785849066183524782039953089136056078238881126406919270516017747885044272025817961704669840366848922887236879594417138004430114851392353414887725065570416685134368475789347281759836209045400228001122177743516391419234895417544843040009743069035990400290671308328381319443796907738687497128390540283054754917699458065532131731016701460625799815907801603082696176106728559501233006940174379029719699755343752357878626146342329104770093710021508739542468053346552123854613176863429435482841512031975167036284200550926789308852375132033913566887883169399962148088393571012383604727010630764342187164291079722002226691088360425084906490198601408972985446267338955262457854393843666602550600491867985016888738735774509109210367043712234496219534060695665560983666078058476225740060453815966641144482069578154600159685616284680202364895306834573686798148303140587115048415227893815123943296595148831238047373119876691637466904695214357964324378785222450552126868898389714729849008765112222399075028103697594635400736341977374249151503674658580650215880855663706546004948971101452163962141389882337538235007145073602928532437610990663843073885434706208593259155234660449762240390505454385695962230545160111501309921887536235845040232379328673698125623651914647690435698917598286592157166915686177145250257856289749745503866522517568610930233413226132751297292197777900569188125029162838236122524188092203673609060636489892381278689737137422626560242568208171380478752442623528698834019442649853647877897973114420541487547674264958358155926105679754232084588475255886927860095088403880089994384339170853812981665497881943236991337843243251907540274755795880311856039915996654155980908322117232656977830680396826252479540674339126413842162531632131670975786941616170140962962603526581015213562326572597689413773904152116104323127067480439993281568210497935616865046588425330098609621888721518250112635892440011122276195141805043457438075304080246213503434292518661758937913181132240355782539636842686932309544588226754897103325554849038160481479112758372093081148777855300191629137397246481921432926636155373697475273701474858275561606991812827997569734737279682834931626188154467208785660511168991331090896472800249571668133903916191028056942118136941256040058671646358610569434530352316473753013447761047518632397212966201631544741781457346499587050627779849905354285733627811499792296791747097007337227914900775203366930456060124039028223303227400378903478406634899375656740352406163576156768761870088007737579655272675170639138313008924828300440431766392733473241800136541565285254676433683546000642094500181137470980331522891828156291292230192030159860196385796750496315228570100692500498943992721509799140012220033410660716466033463678056415541748105900075585426171277652407249649590424493968316393303319073710824208009369549823421384181837769503866713262230470122062253757249532020685751771758528892299949529480244206129840031564090239904934779655220693296404025482929377649348003443429018175078112880279506586018328310341755603795981100798517115950958037517324736816924505972503778385082055528824568361443451410748773921336574842781749978450183393028490883499197983390910863049445935738078823456882274558421332543663079048999353667369254596701252922532596458094924411896193707410684396965406257606550846284882690015687118432893891286203412544163390716727254587462389400651895285286620297849113038926943742176164250223014214376088469003386665621178784423648477859968837375197651103083286353941803672494157662518461524337048112412475835717117688746408994893070773345271980455082899554043511774064501976585180638525108820575136410133170222065756476626924085551665794321416246021772215168321670275885168273306175019630163377796224632460932232763125770235241496701038169025283982676120315244414286880525200394822306067059743588406969173875838624372485796164599692428209276516677827687369957393114972931965472433723913612611165214638782583213727670101649769696666694973135881108753146666801688961036333631032176052005594336684729743501550479199175866730388378074704857233563955781960451057158412542490225813980650988022583271926783550923267173667772882934353229035805567240492071814235738458069038900798595597975467350843955739089518219509912787112430883454663835936702502881672733166325530461035248940996995856760930305587235539549018933583270027402937689606344080391044858408352424476031517779526415188704077398654933993262277483066872432658294671811913861707777584508593733493402958948892290905345674900156900578871058220492387713172524947917550794225304781644040218676680064794708284830921362823285951104189344341599353411439634138066487346632337492508354873694494987577649075762160564389721941438621744477115415781761506090482609100624401603062910954491476082107005994893188310874469216198753234591491213919525759451878743613627079520189671853474229998835643872882117852831159268078034572717103061704151500972482910342526771969427728104713728928745011232756376055062875083104759888466048333034765883977638291302683210259226809748270233977583794863459489100547850727927954397905676241136229647451180681152773892552473322242111126310729935472929354617882092098916881023116002227399814939010768717610182097556781404022043076286368169011543399587262257283402070593438656386009282999256377179117176402871443453647560598170253871807041914760304276906569891175178990528626029247351922844905545786741036622454054668644668053129610599444134660281626884022604233172318461434082570132174305028721049724171212670345026417854947134985705888525187329856227112282335924172989386801366058567774381604167849555887291894750886025714857684521360272984700292413702232030481761360965122571397943000426270687322885618991214554457201374033987373200802909724137226955629784582065697185144716471168246665511339229191753919063923568045512176170186526254829529656492817652158145675737047361040038946505596969642439117594680920286143939231678328043747232031969520046985795432203086259781785172029993077329362882570534656993295856223848600434007696425877946594744054418339762409958163843131735145328371835454329521975188388944005447605106114316603115129200725109845585711350184580952508918656330124440362380724291995476206974753000761899251317276946648980525617031195947490122331670943951806235079446802332420041171402333842536957870346180882909914705790741401680435332749214627104514918098273037267392006629882900481295807151837024900231960922822001266787926906268080902819759211990653552348374225317393853588411001088110115823697115982098682557932800870731302179866232613087870902954895720875838925421901762169271939733420424017949914634367561304337938264151721638673420932029016487617945331215821491032550794375019097619419721618998543116885447052510633123810979991956320511062546598892881624306443491730099368947695886592400549553430529164594875320192329031530243513675401599103266207040103045801103550536567163976869630176628105964071417865683176006051777729040760084414921985379031293836942716880295181508009501549257016466405811320906796084139888109655208261393099268352153629176610382024155063565374595495205798558933737919963351589866477289359584272517296483095424914544751186704650173778285656923911388031404360944687255814132929838297008884889280190197902283783673424263657452260943931680189169461104559437455913900619434209489859709822511109212037964265632245465081530905397320509003690708601665678931848497082545778172321596376451314275198184890306904584560015043633944534052393017112396593453913479426439223581700471336344252661933346948373720058351339853031255944381164348695962724821131712529455007224722351952513203496233291723651761569977121266840419218769298200729773954376841677481127157160321259450830498705788869356741587599064417252442791193585115097652073571448817015858701049212435795647413107913419430399844255184553148692660882517469645895883265735455123586535010344758623835085359443126331125552925246930522893945498173126126658737615255593266608673246839492934850178746613673861873977171976408707971417507426001348973866618517018817981460134696304225941231815723620489295748638825070731137735761365420210181545167418607100677656156911960612206682716577391005748599871703837621946458999775479990234796848301593031613990570658086454612673661176754069700660111230372861555346541729224566711310849554364570415476994993632973423074717717113704891726485214344305429215708294797856994932572072005977088244505320972946728808217389154534720566380992737261774354620370877433697898486860979027950427410604080492292773883302295471087518693306511849955350723963246430319542659664298107555885887530368504367083355096048820601524159114173734446104391998607449632158414147322882698904055544631780006108130195828691159846778566096446955040801852508421441241500309812733552454267579982256947720527989224880215559567942132890861712611321827221757971616709630838117773623961154556593693646787480975646235940762328804794089879197124875703808886714603604125428575176980513236529468838093822370789635658140981175841432021353148767081153259836904678766189200588423152029655730780483604734168862552202760285249299968993025950404115210857542357687479988470205060439910440035349493992032722685919399994865601726567481192855662849206514218201289464025654742748321320935906031328664850212615230582342711216248623778946210371566784365926056026768958915799659638373536343990639014201575241004900037326109372781185065310581059816544504762464872875364611980983835722835479740115600868596749405453884224486104614787346865841044580997219951835652610553304728451443431390046435250355701363384931011336750141792015131884907846126494569024187854018312288172045969030480780850730705838554255085651356616261883653949356044536621519548734758577432540812258872224649910939932588509173553533023915722909126443093973257509843657897995432825928803566392372886721184936084523818659425950733155911908585281786843960514853108562745354158123488126164099359003178151526390853749199717188739897196756030044552962982298082545905056335944658444577685543894864498176515386056642080680867951348783452610395349029981034061628796802400065462061380891530754225634398211333063148102616536624823775419015163602136276181357524652135285335993652524654476093607364569556893650006431162025444622068629827001957724216037015254260492103517457819914183183706067114477955743735398173788549305461510979702563465006614172330853347920973526842512575366452053274305758716745524037238338667316546613849614669496859926504679160305977346306319001076156473283716978379238587262225853436654245822478579613930153268847298625511554280184527458646552444115579725890490151997148359726814191003754267021116816290233761698978136527597448607819132199031693237632201068877936455293790228500047410169946729466990152064538054059211739202304400403146454567686116921794074978896996591063124839768338179350074135636614943321935708325349169613255857789715866067016347844694304106210531427805742754243938073729574475450038615316220041276381249301445549983389972026466757070943725717506067668018734801164006427085012865366214753406402857433145077447963235336214805228843641632907479882875119629146498487764527713685113550812816609237543256697355834697214449733793652901848340199833700572773641751202855973937798863843421819712415614999019200256013005785245231744878706933972762175994893007193944427519062255758507998495712933161053567883141957075036140990776706608794046233015331396528961370660158710386734156071127378506989616071445077576361958945083951672470140805348708404216830265864874627262534549485640325412976389652302593872219715432120994174119228480145321275899029235965330207549696386697768063602353722531356707302224648572255053906287064882143174788956231036890850783330212766968695857140208708524128239323301867251157755984651536895074040377579994013215569175830687472792539841743781970358202645307011718538196418800260186201219282940118359760793923413563848109271521200874919518368583700470750433904254703492714430253731603274451544947006820441495190799667835463460115382003975498610856545803299996791497536787786650575590203569772877708945142645481241745025946674402807305299602869513670927003727337105699227264772952800931153222713426740428963863784536538960335870753496443834690172017176885678062000207273540329352522980450159686827784676262117636802666318191412619671341821796046475236602637968637698015585860891726901541508669209603014884837471220596095300496296519400695410839269937189814230056851129859284522274923625980374496000994067015543373406889513778670133046662614858223643303177107450147526630108092092277585677209499992033706195754225665724164144354676466778527641856129918426602505400379457528868013943272134477027774831867427634949864871620189373738443844959871643317087351744921673958122413533674266423828513685539139220427930998217720205063382521233509193949491710542288439053440712925715464599202988441017377104439649018502044843834634037077855603883551962640812506869453814183343626613789018755398186930744517109320448813915697238854526423960316756245061663653670258423073951211065528600737441502853984487800756267728584911167860655579939187707425220503775889203710547711818735969065135931026327281324748151916431149683057729625412743385877897447113050371392016547304299814318584319172166204399661654981573374471664507352337991026775390978518639756746428943113442511472516602040805925124354816893302954978136521895089258992882635581354903029410952745434535014986421526473013427843457580366455708438015785167492075479795628269767952352242921682500445466691547024324354857498204968949905837633197783157875196488284531308863143704829631866163318344735245057266968306937349537026535460450492471240606449499981900440217372020328082552923244307381907852779205329029126083950535210350237647156458430850506395088648399005119328946260558284529199306861584424410998041563335620895687276925515125753964710648644020489129694746948181684651297864335091735514407442263743845144131206465716287626210573074458131152047652695017639683512074044391416390430863978887258321817760871574435686324240741326881030301689821014282243907178637064102449547185252606403353188974200988765632234854891069155598362899272413493391574066502011115460863449987622007433446268766868673371970757213680512682288077231369820101938737026597125119051417127394350294198539409088745604751186326377885586497266733756151010845529602608673112306693531864855694166176366373242748830020435641563698123350067616772203393254733315769729736418152878892926984783703018308614453954162634297250772044154660081816394963547098384884740135549202537143011725642460686918308106421226904776178005915696235535485838741896457347026928827396045514250433697497029877011204800731440520360068634485314861373621227109888563774934623045377882814700374431774238617453350446560793240627890890142187233769735570106449258329430713228304191641602806705237063985341149997200012824303218820805232660359093337281756045506742795400700003691705021750231903877001052171248166644023516499032819014408626805695800896090126902268525865315062611495048510318462351748661902669403385316315182699205529573920873953395430349343974794033278265737027009677098983899955455406281393386385000993414814026288866674442974937883345254222938028422889802962860704091365351924663154991084400825510650740601634372803348967908276878095512946304378268318777132278919080359263588862272263428148999641802273467395657287833295032390815195367524450324667234036419627150219445955445773947612088742784643838879579387139928012141976856806413160916906366117833695704353593192717972297553657017514271732420528438814653190776708138715569090639672801270556223563680005082670581588465867399085726383300623120932699664151527959865809005809357496881257581250854806467109465052246066960152477811044085587141290147132668688691629483805078799982393069623807563579026963362716052181061794475320508314420924235438029259974280536651187351157723139078966192842334827755495165056395294487182141312841455844082895850482369949176527276311276571611353752527892284183643705303481798331348978244291076514946035182287314588172025576443920426482079706940061708652982013145004133010924936016536699584043447154346449850174856536373272910258494226185145195913751333592611346009661703387972937013322183546401457580350783961296068616155813096821692816290513856676776629578194315263685019307065339635178354722649338565480523335236122238479605847156726864476757249184592354246753056578493552354143203598210176205307092124005214952968780674709547721362884388354672757234345029138491930583905330973179075642270908228066344475494300954189411122237172139212413168084350127470155684524645248909256489499414119110758177006366480599060529694189811584940028937917231252959812515870925227227502547931623415662802999138247052430914343771962937444180458439085784661845098292471599232902836007952965381388046317876504124596972571765863030487580829308956072619575880763211549319768631126573524641286228392681738303881630587218841102564611373397907498685436925885816873162536525264192038650648251228542578918937859541012785872460921697575275790362046034524572797505406535730711490212629624172004450605027174800975061623075841223292491730759821783827453620621959954775328692508280914292803478537888732357272113267922143373054257982424961727715486294552923303169121691454635950592745244550387172113600264797592298402022644304482971902652434693370627388871278028705149797377059376524672083585121494969508454910871176122674823771666846410880054296702819723345738959880346644159220283800391197962189183081811190111780178746858323591101056562424256860504438512945964859890248377290764469786266939238014033795787312500108790724436945241380027191190398786414804176554777287419211743922105268680052336472362917919590280622151338069019944744680367253767633021504901223772820904882639028097174876326983741460003504160017256868851021737298096708447498958834061748069281866637195135637896233258256644276881658251746427960819899304280347276413261511542975525770197310149235399713022885064667273871284273929632169364180514287979383777751221896115201489170786806747548149126135488185678391653966532291180759289566878045324222170611475538298214662340685875653396714367643168732608716714023544890585781965363366568962707518567425844590822692844735808162119482760836179718062302957097995050413219394988375189211355696994872379451295608917716132304865838342080921754904258239342727599292517277836811200950624371399784889745685726672396199035266138407011539277121748910901371968252889650985624441887477912472305688139524347619824313660092898305377530662169996890737113683659047747142255508222708680717348634484531114544127784498654455557173922408234917532875421543749840762875444773257064748175624265785492666093102315386750668135300396537178459311468806609085299860298978475578644363197644702311786569979302774673180145082787610765705988906957114200366696477893959831607452421687103003145487263369797130427160389781569362821423817666032498597363544966432192230659394123016432485130763643658985328258106994883940715216009795133081317622784219815130685345498823102881598118625044630150790893261045252628647602211991013057809351864617936329203827344638576389835818808959044839259995826670295584812768378215339537752044658848369197747831913843021872357972045540032977310950592715675511697176662109469695344792118949415294234317628206883618057414996842544097967715988522079556683098325769640785627136202645195709255987531091514972052616825955262844739413477104896138546329290455611313926858084632195813430557263668669394539544076027993271768320551787547859105410735264264317290966572132196976435677157674341689741169387192612785821680073834199844824935455415718864090334255005021607562262357867785983863238275638358826139445694164663860185437631352858201261165158049416026398431388652234113157008914624630270457414703849636768443504654278050742949987641374123611602159091215382030417433247345298812558793896993648697860760349848441445122796654447111407475283804563664824178946230116130124439674161583651936504756646502439834348966442581415971825144915851407061433977703146382368335013221321573593148474851097629585515976162948306601708966700837449932561826701768800908107798951027684630111101625562554568366685612833164233297591537207916483998233860666447706205339025039548949768726385445289033057904724531390663202040430861415747860535506930830330011097053788941315570748497715282760136749821011496083616608131887040577461610669226618923076753334906087262780795876336172442793138261067348747898320450426662674545391059196320475878301312478090752283028266234411834840914212549745415183839779249700144282176332221478038231233927372101889717288456023410942552467534944930919361470351720842753587890984771208681047154517379070229192176078425164738797766392646484296223755315861068891647478268012605850901826114769459847589633408068772350042482999764441481918207547495846309036814720426868542694855561600367653083335374761150250630136387981092753064267009014238708420348785655665275886151703698378567376782547693787052241683188840398112376962449602188159474381166036559758491267009292481388930733090556686952206959758434719493532563694946135889738509513752571079681909538830737054189113195062345504588390058621010782792149128918802991708112752548314202786022936935024781983102613794983811727243979006735252227865462271059529336712771134077650660006226936623866520358909890959284713963308782922622017012032488228003731581907865973756160731350372250699137081628807438475952215126485484457218881447495584394741857714092395084352876261660094715868153923169241428668211838598770731989405791707571888767034416809298662414391929583575107342656545090048645065463793337952550448708185075085077127481553111889017665179773973123932488212820986437850631628646298757065685603940627623494935887513819679257392320154414454823102312711275202760781076317812739724505211419497963035352407493976570698029931367658585626852891752335913138323928388624980216988204601449621964995362418195705856569661425195943842837521016820710554510793257716349061949717530727436076777368146860357677954866848568298019705421042138467126462772298127350670713796846358494850530653087032733185459984785780165297166603834903062353081795339027167874899202624009371736433926037291472403817891379696568865995113532673183552090598847633688162575622962568695153421765578573295152036504365263033452724546436201660284307719588171309860686840981048083667806478524254660289081848043408373079295786631005250043320482607175389783415671816162843319488018053482787877703963820923858488677826440982687904836032624785877621568950755821918989544153952361182072397353374377373871560868215170040438029620862652845341613111965622204629097333934900521428567794605045743796035908380556285599413346293190782928592440838488517243523679740030918978325190885173257970907500147518560524590167063481462076077951347954815453073331863283993560600105609585378406339103540134832226500152525754701335769840419473495446300260308901701440652437113695258606572140055511880212689463780056677583036471142458997034304505185404943930672423034124449554015963500280456503497593927254864094224024646400250053688739987439309726456928157859516396729831707229065812419131208405124228418975458389734172198002427658899102383603129484925200371417850125023509010695674483569685105602818731928471118663278056678682818019113127166919267005442538921363032765996674973586615619249803659773370493031322157950848361798057667331834228926526730275355929246748467913581769262041038905439034194579962827224610849861867539677218801315861179469714416284556667453104392657067802633123871340462401273197536580204986828057468027705089791299608677174624112885399539510641750611683004044593041680347225503278378034312615260044986061111342082102148154810402376009036734386198243199595458567431893122604551521496642960530392140002639895969100684513998751094912619463919255500301213541306976884922585933212955444755326820010576014476433625503136420570389942386927988859325558332772723994827754120243408013936762556750427181196182122065439238219534031129085373000164266426266427887418589036573814754339634529460413691565810532969739534629654883122121853229957104689572292848097564558183471547659508159889173006943614415861577147476084729282976002802662914973984494037675979828022302010471833524608224600837656146719007743918006734239082165205925520046849132236273831934139382468409783548075560514027358268860601271482020904671812963642645259341680771751059581949271681149822594905826197132682302925598647232862491810482427933673626870804919651933366791503288589195357967432028354760133226167606932619473452941036823746379415786113196449205087536084869302538623627675020071544909863325426892797996045479554184775925348135445203772310164047122013808684135680425773068812183718990328000637179960531472630957677020702831469798139105872961248333466568144136332442574959491218327387951217978788656499853942400491940490598236942597216465878618584718212711918762611515515551521428431156422593804795903808550505383917933065349655080502062911710867164095652825246946088066659189417937099345754649564509532756401537849612642227157890610495932639180114146387255298260531031915805617591943098943168600387763569568282972000436257792181814691314868647799941032736160992878032245209476991551493263496997778911344469139666879721679535803408481408126923577796620542843783078975029668040849009575523711460463016114107337299977367138929540796232528177030362621768312352773229543252404922868827367485575820802361247038779163711689376906329271846015315193564144982317983697031700412377879395452326307217529671022753687022011276523711097128646837723988830888420526566266949754179969187364042154882899967824194061708192026126475213722683656587041975889190448431527005361580692666752712391545194800948320802368644438055320908213516605688347880036334545797041255698174636958157507776011144190207032248492410603299563080435403976936415660484543154936434830247134254146438782678150807480643553529806868906825473286871552686621869473412805476205892498518763855815349060413202404825243620778063426735553136423951761980351753978373631379506340600198423360341900247757033020282776721700483515590792916075926107444062321872950245965575954636702875451632607705367739731800705780811858589545998305200809579248160601511613345219809809611507328793499023083457525873710231042574059612651833228557313964151045569155898937837656012049332064323022753464196650865760623416079736823119615306239684159813204602084465432399764832183690198040674945893317964327377940544811386085045700963803680930007764432177024901958702404924854562326622526597985089747601947515142781173052950727179190318988154718118521867406615157541498473271126003461854415141670365419241563785011089326234282108343161501983600983789133233348222943900422018340224351452668880777301456678029537308538855321758986104330030024469485037232112269138024644599937303295438318444616256766577365461238226725221604013453691293071239518365710369389772931826145002788342964816504351889936406631483525507020044227394061444479790259370293339363086175936270535492789168712446810746111178385571508955233046039176226736847854544095277905638458234716104241042450242930342735835245563593549912324874267982414303835109687939779563347888577150222752815052511769611013829005124372865893680006774254145936726273645395921863189380188713454697970976350717299605550292723961446748064054971995986242505464675737296200897121914686587399760978363333880422173334795401290866238423773223068030460566774666299727468814487441040256911758996547444466384622353793194679253103737081218814589812773958419310260264166477183422187613222981325593103675373728658124606275536780151585122870463171471647536588727400780263611847409032605426973316687732328489495921541701582863930951063532824182284908317293666421020577787208650138065692563182172877913377282491434766322182906561780337596791154241543664950532479383384940895968216870214284321893121441210221087808262653953572252087307072659989530894302923132862856133247584590942693866705168111503799094761269145570140710764399765615581297184687433201633096985708679771636209727456620543206607995229271437828118915498714657016704610955551839759066454805184195596800478191559798052503703033534878797957378167761311986358168366844915978753530097664634420466561489870990702003618167011683454492448031408481257925336149654679657338629710705579960467871124870027714178432322236365091742281105885677794011082853769211211434444608091132085222143084960264808917887458890720921397268817047253670174931967116349879360819658860853616771603414184566741427788197072957685795188945739672776248080435808616744595579975726310511108643715368532298658286091311045735122827829442513446454043412690270218398855230798784539770319748359052496955244767511871093503935680466729488976977927875108039183238020283232745029434628743251771080721944255766698200582201890677749921036041142726299213646472228212439941970024280173099484368601986580428779974848951741746026992291804095586232907185655973218675403788373155570139497503412409012073209317364483295516364054403907253925758117065744493927889306735990505667671102532100845903422055517612050307086276747499716200966183480885728743546786286256367452182903585733477960085993414667118416154405254089446153675107867857228820646509864266183711259247917842582066647259109378497868379415598810891862703424648362217032997304391341838287705920297989933011535352389339317043247882206645761982710921763891779587280764666660302358552062031898803452154207567761971900606282130039276370664241211233257098446725526199662963531514046272722528955839751800416105077650671095247247339129785643232475506725333268215955222299863688122390007645718566708262266775098094936381834548593303840049719893852613212917496692319369244998999071808686723011622928049660751355601810605194561862550025750607345209184645113593036880606385586049163572285512564875000803750129918501190575769057017932142722305117461499758213540678728596301375618235082860238841093939369322063698565343460027851575602696023188963790315869387602811126811844466718332840892887171179301176895795453158621836788226801029603281794352798946751297339241015106533833226414384884711209847306389271949183260402065822254992123115852250421126823055995400670926827680758641382197769841595037430220119575162376235323604578326436892194276145756431752126141286358152469424658980493230158050619696732827735229972501606725748519182270188650818599359249232382700565366156086959241382516444207366396715819974554949075556024399881955988360996930292696064574941469431169460557728397226032782684359034323289167584118862798027960154614195086087422498217459628386169180246609058775033685077095920684756519104773840176629166960917187181950730299182562010698293837248318805866933048364002643462908853874327761579839970910622205318765391612982349073439607947336765530112029737806952525016633198252910510522217002017877940250254141749215236821578786234984356800933453847104111669940149258255948917140920912327100262378683637056247403042580385195294137575917515939017699002863054180231835989047073610097143674766122009566135447766116638539861123730982918956595364250738864833164169698135297083656817793788064094993066464784485872409701331559862319306587581439452501708545761047847566691334498879836500349398726419605377164077402939794297064901260542876606116980015781518266247133366854245497013776068766300454097224215910494557483916230860108556725494815409586371559394776828660311937421135528998141978208076548225478328794626067637297268022387071946792515089870497480152140098287717444485372008855025288835327788651260528184516894010419459356961544815445700554295326377979648209071455345039443941089939940326594550835675902090390030449163407387786524936661498416754212984957597609171499285291282595872664024001238916134633894994663289975962400839495520635909500896581155510979680978298579168494650370756357716603119971869660479460518271614342693805410868167945494586668934811083118667727171024384088304364842626992598401483956516590966020114985190033480095712741523202254235078145782102444046538545317681400318745787808385787366329993322199681214645339714647132726168653726490822033656240736053133723662849433332824320336327730752055974566904266379232201425316068305193958354735086036189131958213235397035147283909288043027073966212376676913184707694279372080452444553305931448024774831724169068396586073941103517098959779774980859295501564978178756379704908658811412985003828863610791551356435774514784433097052171825489895675297950755238345941436431109440112005647616060304616494745087185672183241386379253197956237590792619866639200461261201614190059586018468901864077256276291999146868448941053102917506321155137407011567632671144884917668584239816052916096847853059844737440605858287535811154922334441117028372339804905392856165974337122455125264070540837742450954494352959353985141920345067592104702738371751622325368975654640044543043927469518460408621674760305899262648843061109551810973198311465433826703077190996931423610412610798101974568805736293697153612712178735731568518677726381901423376320729687843962834749149766428332808751210884234222852287366262539573708528009810575055559406125127147923558746552146108767290190460732121501425345144737301051816663937729629250186533588120316352028799471437576108976978050884558654837704544544321063351705142952124733003367846388898478197080468447811517593621723133403710440688175537770411615835105363831833152165060258388827903179561456080246953929661449408541660118399184354659526061757144833016790124849400284908915520405444599392582984913308255572316276794350401490721421824560138866864828809930175209428951784608208381481267450745148716284170925797689382432702039307518759235447506627083404431801848643938834864744577780672333790199855126504858261773846903431521822190772844751928356673892640373398257400206952798442728989164138695528509554399878078982265643289680362619903786114875221251333432914739501364872814684040885331822176166269409574536649966508079552283405926125785109427236818435329815178035712728484026845289910029808738489764027358525251072849144667921975172394542102649924991478146752584357402378071833239431946493987887267478150195545420842554704251795203536145991695615637958281533720740035803573111002224662285266003171025720115189624349363108392883851997765939984886762939395734089533961077144991198255535955404100146354665777463866566399216943977963850288572557869416871932011387296538962182988450997257582874099757177267204068149741474337178037796987714918764054518844387512571580253331432930776593333689987666226896547635005427762387822083652196521316947038286693207028300891914193256794649777232626298065538253067538509655936671744461913263042165571705644813293374212546876494078356489053030221865445077949777488446618104675224470503546026386509222789751266700426686246591333592974936913962404062884961364004353686671480486608147449736699225440485128956583398122182821429765989822909142542823230031532315176263958902724378118716146953850182866514821423626905767632877120618449083476575649233579713221252989655374256429417377632030383481571443073851290390355163603121349587283736862641631832331243530817424099053785852204946007007998605240548293058724996146148965997335506627038539910075987084671642085088016583265701007313909036036959961201946353267649274202862171444015959989176709057424822428498091827162114270943849077194365067094960791839134318586919775630014614051370887471765103040743323353572835266429167963289836572328320471301233226044576516289641321517155968577656542744792893811007958917181936773115426810339439985670963529941371644522983312420437874218875095340488478348664764994465245248427874740304210066992413372503385459439529724178516404004333429044478983452364362344927662310586870683917404716047628475259965160692565870801266327429912679747973134012805453323006151157942842453876307792607465886059481763383394079120631826886124650588758374975841287378810822370633177734306526232392040628163795927264593552895883691559035864099923093398552168424756473141777490831176640348937208816310272023518225651726872455213354717525116446482118669249020137993019921376500918964923169815027786331864064120979068696480750907570919033177087270426356723540687103360149501660235834425735718053305479718693245744469801000989840467447971999181230042790658803806163436458954870763403994729877059676254743726456972092448960046560288973546178679324018687760756579454642406865237675760911622360025291102239367079256398453323957932633410369179922156422520816104495633806427998274094024853972568670262921955972718714890362779619415486144498724949238433385284016244211054226140871799887464974934164186664382490379193999626494869117432256871924302141860750824465125373534940789495459694989472100540047624304837893643499737914182911774810860915646052123153028201432398677474632751730292805738853253171000785038863042877757930711928869067128060078365195864687524903603696540265296490673134713563983359529768157632921284191989476972809712339559081484323360415610204990039287151991215758800117798251599860758123203728207619797195243104969309398713262273043453446860160670213240067006708925773250889790300193167257146666132649959282113817308973097254999453746129404377049939490831543114468487283215008615643640147971509803786925609344626906923673477292370403758786571912051615999853836692610303141348952318052230388673389020958877301877606708350994562231716789203017712841353295001057539993841500410433464865484205852846825526059039209892082055718984301621183613410391159449865092868865213489525108773174204315712058676713810286951313526402782406007353745251243568419771809366029421143859724930261458347243588725417001463260819654306910870778576683462875629311205723227764946151815245382384799059861144986191689924991011770635699158311310433999644298414842321650750583157772944478659567718205410807913138069867149344210468809663559990994286418538066582481378889384446392278902270556794833522098067842029011308709392341768996789215053466931753646948148352235366172627774053088294083438870542377949296430141816900978167804805061206705129870155374650283006366130453765828620029969352423320367185130689295510227564013654986604679030715253037229333013088037713459761761662938031629005378775572227614633597929994391125554706141013750770256912433449058876840042194397845187909073075601383072905790261005237073055428050150786590218480338121109694591059739803811860513404079652296597752731775571818627525271405763153301142503897180650617425227457197956623983043046573239248774507266588903911860122835946966225058745911256960623781565939089718780385820396653474616568816081331456879429177132937153782994964713252403395866449283428615083721799466046998054825395318286666734416886855403012833065174242394880546270583462154725900652194110602247036613565130674052925302075246438955203277904276518499715011462111784101044922351912454311761572602962895143910208407156251005802422150139164239457840868754971494375264999583865777495614905018051506830678667920794701933477297375697124423749862043273676055589708876535724958849053918174944248038123912509415635135611671376135761785300637638291650298995996158431400421661376443747450270689902717543887815608997913459695399715437006739987777814594188303756812303528327728313885358982386996920755321963523299987032152269665103209198684301858656685263866946099331109977871522250825811074201807044109697472288566274573926670164676499069478773682895416634457556946582198908454194787435366396556971497996607189383905051999112737662822958254916885454193692644000781723317298643791727957427758480803017172319668710769717766564971187121910886674462449641133702455901266010026775697988380615635072206825641658090120685246237064862135963519474259796844921433757860071547385718492086149487831523858229178300729287250746164313246639446219097731382780840106304637813366050551802677830512957732746538012272947503785702620298007603073321179069084332478393718479773977893821029586769477493989545671378806399653590316794805194953267094542727820446765163867210876515653285200729425991996656979454247265836789354904481704222318238924143533155724005649474574061340723720511181733941238640150388141826461497806104698903889881253891069816103468690072104881267845475431090719566191590958142886340409674870286299633009857399787172656559332499273195938900125235799648115718137221924577726489549815390063228137208976242230037567669026076897409994761720920799390368671379719910114275699885615306716847751196512234466203951989867933141389587940646279047146848719164782911802727333611686600998583690024551186671327378622016994504911203682263921990498570761550047892231443269768402906717837990933689022266635821694144463035765066073825710582650103008971956421458585041723532567397017770863873791320325277481738790622998517018081235329569144272993122046752519760785974590636075123577343582423216427969710333144230439938054373518174498548374498956929304352588846157802553031232291971380227461284365979288476766602611637102040444180295703515414359387709430140272881606503623027334187815856375820517871062227362980160542257803662107088680167464535521600943229969220736747721752711090110262607875325686820799740394817805428694207030539695459139345552927807178101837510816933989031887988947509669948853082693944848264961081278732291217460511584315941485525726423277211049672405997200643454033847756978583795877436211231432904489594989180360095928370654268459264974160002080256495561223780628629505186189909559449944272115584589943791215770168250916149080571153351898124672693641892547302575227507088103286879384541488591870564821279067129906037858010421822459843667886718107449919967941918151980670038651122384356362927790543425653942882923728997668325904411786258716329604900938861753933868073152702098652167948692056340443879438450026647880834761157333986072729982884073170836127255482845028750515732951553639629377531204909046510425235908175513287803827960355129490392637505866487380167306021764031257978069478800957299156937877986851909155817834512437857744236043226864846589188666082952034667908007420662084719226132276149386617423476008103500158585218430007841463092278877771812415911956698780358596937270642507950149233827964615226446629188028242783296018531858859776562110838309860629232514428866089875965437227196181614244002283119392976923850862388796180653692162548333183507560435697336781293416412340370149012735531647319519181749847836162541441064840404660897878866839437683303744891060402180403878594068394354889692573679707170488132019793435282519616724689799163218419338983903005458718124377877391103049958018391147772915745717156844097145366969799220915767602002576371082790137755154433747758560082668240756503645668467997602161756502130093462452269317597617991312687631631994193174743848921241741064574802626728678725248283513700768770681924115424972852954596244060937314562949671891368758434421558165058203643922022021689920929023516009355299028073300395215368821773076202130166996515306233758849056350731215420980847375573888623931064879928264425591159659943517913366835487895847920567880630801072945887453902209970865344676874548972748904971806646589408584522218243657315306120852849741677580147548285677324684922553461944055327843707747039727970344945740422917625863824885770834854080207756117039422544385319499989759242776943405078488107043255719672017263085488507342253184683280801153335955651875635516978360980508385799648235451219184324477056380191762601711044907186448332751422012534962467762504826524125989727681999119769673094431207788228889872580308973122213679373102672173675195167337659841400687984133243820600836224396573032240681108287316326207640134404185100130940156756484805088731885833929347875694566362457179358299793365965714637429212897146741720284368678242685574841594889743132244312438708429556035946846146836587374842857578298164688200099689903694934588629113475246893465477996179249162021085204125098447527063829610451530182607044297277307626760612728022179817835919467482464088725225517127128766185202432248596311747196007663430863949698569748097932537553929062717826144535769664978577776269388481924351167946237491006733741061059335896156117682954994702861612052575590005900123592051114833160680776403098347257519534040756648924517575094991609755429483746863016212912326340986583430742901818363128924232839460473662240474826844332077138835227144778080006827280834309706694342342150876599531984309093889667017526638541684978296401083239398934415569156043726482840155014873466274415374208544142797405693270395707685029899136219093319367606718165484795623848112108422927732846519324493478062376770929677777048256325755573399702873505516640680508344466068279003891556537529377119076470447080977278847853245569811900706335565273391085515229913397746397607387050716584253374227411219152746925195601777649467717429599336797799688031720198746523019044787407330133896899920081674846686473410892380933801757830839062088000537026695395991823999531663355752257194055813116180956637171483844339513889520402595951122450794668837235525668501743159036246435340267996855678873551919022986468603567170225494393102821492297783835681598211959865339605126566613491341826208523081796937842269791904731917235316882864388344751640596470829728743011996380682880660083539630806945416715104702505971194765570370461522343501225120971212541034337555448867576456932709235121820722069441007048285302568774164037819845557891695419251409737401186999247946270486494380932091689527823249619193247203609178591898993198139109124174936704865573918541515200613033035833447822897681008236617789060022756937890814110089799336452084412874234363647894983098247228211772994186781615331141597055124193691169532329611112052893543694954109704919713370214984890468669786597220861755395080156519865817315789521498687016714545063399598149502048810446834909087669430218951891179305979517147300981454765366912420839811175583580841615447644966803225852769026070105330918831082927924926064291013095649739485198610153620782600984237485016829668803107739721058444468462642152853213704591624289298759160327045716229706641754958414525145276059496662371693250761290080107460495600990658740737502105010983569851672099316506287493008853792805542447049553575155328564946442937202989560989488909736854379406625945790161555458866946873171279022145532326705794784350554447527023021236798171470682255638157221119007992539726203403208009655449643025220058145763007006176759463106605389504992001588036687175055393528168436084178643767026451285888050428966495092284784325765186419463461864818200601059236484564320892848914714639279857173152795910420404125197342075550016523319396874858491717937147994835991808484491623352727779504076221167143147268369343074554593647520005784541037041589372300976002779783864772514019809497129051692832263228578645185503138986447283550032238352766603126252580702695831656378829367158460970361091847750999909235004806966656849323731060400185611978479345933295231276988538720494231128387253494353427839728423547024561548304747847956678116307885120039756092439250468499447585067503423553595699959218009801009245713258319505260977746347024408576696355546280437260347465506173785023098544900243201034188125497156704395361439946810066989980453231148619895815784668201909456166961197633712249344511149956541082232850965013011296630628595804465252089453388319608854451206607464222235659217227566180864132529082362156101476334148131139846121867193203932156443459529125088448107344329718158989220727071582566312933347218544584305674509146321819035998743310092932435774090770867133690722481469611175982194593212787832510683452486805580410367002856560134575913794073191942274205061052636348389237761057098771476788675278159671564783442605107340666623515297760874531305820442824679247483967837845059553871222079014681817911317058226576753738736683533525594420367735589643562288133985520092090656069335558163525507158713836219616123752544278502267430225216049786727901638159312308604405898297707366330771566584603281064631187295980566082566376379811604972547872024704500845797893624974508645698835072887012687239447162227673723157063657715455205239924189911103628395328664336155155582097270224477347474608198090173524074595489949054241641366142639478761594822606206469695343535880400951137870363101929318869567446920326019265137310807500108063067804455377394011701118620368015705655874413525063770200424130714435254173265445240397389218971923083663230490496521036819957180790605794531719597575362832519045524307441993947571743214769012986798816624853482011555984787995351165724777048480160652898456283169814971108899387413520368047973640743657630460028217316204341639274624907865272362166774997811899916742656130474997274458902718612801076331909397502390485976257832873097668750064463583805364405662546861652147157741312706954767786346349073975034777836378749469920262995377298899397649792337283888456718242562507878922747107608686019002105231931852798768815544112664252556014488010945226987904041323071909560334154518455012868416426915516328657517293993501566608488870772036343715884050848943834172902144622494387393601029931696563482918802540738833024238273729596970060029385759732709453862369682638462423054564953434210961930344756147310987553543325297488652598975249537414935262134116653593496582496223511967462512518491513982871638615674224281008574495709558037381564888387886370815548508464904222204421432963435391540470580173588806100495050617524966677836386075268273704744757839435362629696956792775924659719420616905966066692530716167481816999925615620760955970138954286696131859001691975024396381735396834844387679991905089496260617936277848359450456305959873073147058472298776230552666732658148015188908482778136775797418643763639316733117088649794692566447781145322543301000705691848912481624465771637357638507291149349145948263895257909741854227450874307489314051588333845945951173188473289200640007591968065633582116047935881562452191785326628899039217182657441660424625052278073183042094490595712240940509703948532754849265233786439391762591166244214736699007827927535312362016433540077145493040707608906006042641030957044977434524767850473438607975084525539206194527703497214156252642175713160177661076996954225557604686969394086495172410498510924418118163135115704822419540037750178876491489510375879396687861364532154252124127293804164998831245359268144543118467723574746369719008894188309874939220024390538056859029029352916137505881539003172306100130486659901729251688572010814468624053640298200643841298372442177570681011430932933431305638162316556990119249048968072140471581398862884071172267693889316921705203162492410322292524164853155412735667836969556096108173811543868238068750254429619731766259346724799897972031905576294198781726312644948670583461979475216493703779411602709549778106325054361665719774801204575149847301649127901259658103778233150989723024624479292584277822634733269844864627651718399028184294609635409799551386080848770453836250442179156043619257030341367782923063306252536958956398438151864155163341743657287306465244398536251286308041080582826306253029954318805677754566211559505647009958854554487748882373136388440281354855042094532424493597891027930364859946700274609164219517264105909784861237348859987562800430439863250009747851124976953308713117191615597306494335259117356291021332969902120878107177756996302452218747649718682360962792055046062833873173487539418694278993267998164101985930437822814382604696734316943407046882052487489508728804701466906943600745444510547510367713275505388702427711757356138401515745347577543123149376844081530139257347838843947698355045166189917818052735371358938344610582792561950335972895610412135795427540278699189207504554352910663186210990752551446899559532009308090705255185981195309108252122213134335976619157679722765295905569394287536981199454891034238838532452070670038279448119768968309462868290943956850063536978961245255685739011887165484927543647746576844355742350763679689615307718157545922243039572015190345822606573188652365750405268628630613494531735703063039938328798485327840525671443677747915095286356956809624597057434819109227072812674856534308091219407193146549516113976752646578579079294119571721981827146170422794246802331370515806472517271341907008680553510889986307601859642527185739155991529865563178704134021042016915586368468583006124231265411689584982872425003180734565453890356892825549368771315011057467848168568493451883940157827619367301926678205083211476617917609005398837812011002189942925566103862009834240237296678113635891393897206709194066135062393381747608807038530001916474460406369385198099018259466208218306643617970416485949043746178832201312069197405233656167288380878198046950582707263324375603896042279872892036866483830043112252962831025684006265322870519510269584397975702548998837484413464466606258141068746599997922739921560206482212956454414672667715124672851546495213045955325591468704426471290877461716773211493343920873274663147752128803957290490688249945168551714541247315425420730823525645580232933249937190223110180519302433806245966937200732619676636839990474004381171952436572425248820952743300710054430761044450053394092214903129651723709821013913784148361284626252561982545490751771895327461157829904438069923456845770239202322110524991369343240611019645100677757649106793357361751849139710911545851047552108033599426858491368277080848417413603963531642807139428131980127301929810469964910755161275906513986058649917586401951477922372932939964183546720025157550793658639924109040415838145464787495254771962452444135185493884661890987590802225149521942629900504049774388093724066287019528457575941318173755822727494100551740547474962916761938074948515902910758932237399237992145373449798021148365063219671130951766781387398898320271485643108188984594880864933528330715147874903816446490111100345886890544825810365973853382516083159608568624562535299134280407024239042705828552910031650450495560383343838583286999864023433831461090361485983522763198950344989191618515670571561703846817143599521290819490496105705235233391773629812922104872601644113473465005400867185184579331464068628222091319855490391127334226655703318635982832589818973859396080471562747801335319841512650175935638937198593728696718279671271135840919009073916821786213272752795724164958651669959456070274215692084306824338068998800759144062698651792684327257922867797516748635225872647953722315745414275291761528351293510473432757158813163169412272759739448847034240569326606749806476274231558334413054639116682159319309223904168567382359392141484629831226345118832057524585004699602375484875670775859430472347979948526551256335645354466601698900989611496923339090252189247931676889863395662859974093205424154107384210408632624464921141827632989182728808097705858617181583559632112535092866022765875552084914723058131212131753815832271908353470090010242677499107858045089594937475137675096841456412242677651453878746307257462240610076082270539529578356604704942578758783801915120308206978121357279508047865484453026500232263880443787956722828645208372969796474239468743275796205564181804647562141747651324868422706372517923439545423557305731164313747477653413613943539321858967308724207778099432855674705108131017989593181821244666999735334224516558800185861270283110597373090482237749777718435769602695854996595893647656113872120904938227600350873477242507796911423164196909468557317597318241212067502651470545331732742133084018484653860832750854231857269803417774067934478801925958337414383239689117100886679735262548834068486713111880172000054938990923551173788099029751710635107545589428360496771489162493391815620214549867854789071251079255745542434333206547238753700604067463125007036019414020508856032389170673693425314068981069717527554789282722107811020888255923983899809742839236314145947490070805793103350060244184772152906284850689219852450840054358568648426748626969384273629658559477895811349259824913505114720090672792622287877031113924265053075524692383443938421442725934720366249608613123828653517869967035504678172007194183097608451617092595440618336939053876990912357862983981642506580235312315697971489348083253496827496013715029885923820977137548173336780466198006513627697460341379326395985264090601990268578572252455533692039035148482004399619380844618524222818178307577915211478944618760275098958195399950166336392199849411661114396868508091104112759965392370502234022296395453169618584028822794799763597954519120297270952970826619180999130024750873834704541537352552684355218981139050487621873292188148860264555421354176823209435569119001007463997152857807630883857337715874362286421292654119696765476466173995416062618709364911414742304203477235736021260483791115292823868347559833344022558196137545955056087875188808143604532078334550294947530529651468859399010238002406668407943360964347829375189635714673419664418142930410797840346814018052255932107762407738004468849429410114434605362633682273146862944870786977627052805652639471118359053843537728869253821604725716474797944883663787220995002323184767999004082049747737185661555293408907437021195111820275276844050490442907184308226676839150289932170794833786936427883191476053504717666292687769837490509862008983064587108973446505448090162994968587244776585780798443354392544838755507422665006642020081876375696394742320661790087645124743630110124203405525931317182948234535231578809784537506267450857629251173164820752382668573631618358184225803154970322976006742583956332896979422927041308383096778055450625689520213322266807409061734033498222687928743816265669420606807674708255999158450033624996382823006844613183648795344386054712875480480667521321409623297147051974523085199119223693305634561767008758923315898602542202590540686730389663387593219551486328108700183655335985080001485341335296277574551552975352938186950490903418865014457893178173533869350305889183793256683877899161508789799782508804307456632899487772847549485713898189004352949098368631016336105183631404146043132987245705571957584927349304631688779407485427914788460185701085294019765517113422610423668204429654449133215763151918302697428499152614223932790893814568639076411928417463896271569867205415441211924629110735739595134628333174597765015717391855640524360699712243197631487925555951148497585068299446619975211674779321647898470393023159042690438106904782027094361573641113147047784481332778005347337970954976075604200396907071344581804503242599860929679076355583606507065679736844796146424489213395880573458031224644135963657251114134721660356326755848006678522605939651869730598769442214336227888725863909354172970043984853514942892876078621789191910749405651266704824211021475939476611913538343985768540413435114045441492293026493596867448580851813869742384906644735777461115664466233841625874107836159579347311576989680186346646127318162361480036617733795680569249587036683989964716185520433846696959640522136316044222661555862643693007049736279795282941494333058743952187088078912346473997833762202457417997893433975840115949902139622330856987390580409058588975589904718712903913979031198385176879781604827564414741709053932921885944781287719604998743771193002427133187955697487205938698453886030265598864405431977361803182543369114546590126437829951499847937955200027036479653119634523101153590931130851906376144548138324330205426244326440578022672394179456460823045707512658234221507025448431912050660561175272982069948467509832344280723963585899475353061201792162449418684734293551678930494951729699623485840856092540748355900545650945684387094814102562813636867600622631204009403494226742658658662402628581385975349195028416316406668687584810355729311932096766264056535445092630776048366166158948599126517115178314914762659233611238016316395123666732714542717925767995420924235020232015837044020169575196374161471893638113730401282625895846953054275044519096341034007980990662787244599033793431030583946367173500844853740003149496938777798280196754051191594129151966288480581557100750862373083962417230719152151636853911598607208507461306115036676642668565451866113969508281279290853344723129482287653051956211853238693707905755684141173077217600620432078765438345676697133107659733198558283374275393079613237962470972697802334953573255809346409073656200918907640708499053837942765985376745348823755974258927856259625835132406289672091319867217930610695837162784905694175285354423873205174475621650293236273564115954670593633405815520887826480746265648847388914372881948167041467013477538077127186558715974547991414473487838456985183565574876635729861060031557471645327566513524661775444197898876828161851650514370669377185373819894252261486410262505800469720328851148107506296354988595026359118157704190977959556377835506855087563235847021990041016645386856585392624244048540626712755131982288523366897032758055032055598505584429716975947042045110772553506657034826149109727332105356677336574900959509547751737109420144534436386561134277568805615103995225293328098406822133319583555145007257611619351649515124722604928120297399854704084122747776803470303377656840084036893960925498776017813717341060785112618116442253589403799146584530916519249262793984807612759295757971110037614055590349322465478773077587490676312691930681200754532271493358705097373389286725713483598532010601603787347409674816396790511797581746023317228549434036774529689694525323592289406308826262640501975605429546413494539303364570338910400070563425875530819574132360558150310453950464804002814269129195385220681588227449992859817766013415055987051168038695298118455629204968651271403693273457641237144009440033552763743704798342022820904247772784563645704006824898734472391099327730730636163690550784681422033572682296153266663080838673710661690678227941750372431587143999215802271778254685252071023423729028775893613353452429019613871919081597966074496678911686800951682882480786761164895643706071524104117849624222173663973870115663419885256887232411615537390984588437143498498594020869378955346857283133063914129030836973412976254135882694216023332141108232457296757212067956223351606145382704404222141884666901129736865752759901733165674253684167367405870364064096533047361914529094780161786404676377984069326011246695857246248336141205257318014419246229823053331292265683943234920718604712512573679731320815093411007149551018706606609998544058075774689748494016846549501614291913631731364438996681538916063620715607852426167058412624181114205591163270379442884206414347884670554463566695503168157077187700940352809548237034276658886068671274175913582705744522171524715754563884819077962306995661599879109006867431370273843695236094090433512836416681018965703916843152390550624224993606959484056499929328718117827610480290674484725829232808898934286597337378022315411004526991572797414748509324245216099125697567096753114821201839550405406447846074434188228478838462452493956944550581869750104387402416879362153350656818370107875336050966367693056804116979241663361496890402959412410469096984167171855532010699714078548853754839567140555519496772102106484720339868234549413041041168782102186130291973305677217396138946197957462901914069874344876925621791950475177789300579818577245781684950854798621250476566180868246461268423434407776630219343968975223516463971587785966472354329842209182050903507282275786015824891478769344631762689306629432581004082590435874677555537066718879615134331785147619044693861322675087369313663016624725877581515494450059695140703373638765889214146139024640284572975148271719127565250186597427515905652540031214077104380533798793407735132142246490971748745854002610625560003873918433475593028833115523130213241670390345989367429267413651522076404220384782520913275890716564878685083695354976809377315841736389940903923517971960893136639567237820830226463308614112144444930958806745595280805284641654190594920429986599760339418967352920060645440587459632838587656144275604040711079437255406924378119924360966433661061947379981728460018900248249931403719581884250634580655169909464896624695744004109595039729431178686612550025724806401265254350782673622401781417820689290853635858207422995976107161606551481878473898847790702632342459282661580740760683523516334016420743463989679006010044374995794389678361251636193535735149897401992857705164003747036355229579417170495558169357761842007116349841290739298226351041031131145215796511763893780949481172400512034264472780582009841770092955796636542015804041313297019334234190495434486368851981511690604400426066374663423657803619235158675181606910187806106586618218162950574554341179039484706436415421723920412778643346933967191176478046550396410000111078686461644363435104607378645245166423709285354299059291848373249814078614522025799725779145243848292167553429430443844130154434170757737449382627036337996141539622070699098939941824410820602141791714632540954399123459001918858649402612920438807870509659597983209409495737994104475651288055866495041044282246120216347220416394957995574803307158741408637607911173809021535473655478583885362968801904218940610061603302404894703820451538329197281397167684004941089749106216593398986275258409801629762468603688575704000202739786712810334025887107056684096372489169429357809057640512108925171758439516639103887692290234350765182315572785525760670776678718721097873239736001678279762766871989175730006570438452889802190417110399385015089966098489441898620345230018243742527609974513626731637722347602547239579190510120970828902855698940869286314884017862229816975110056487241608880383618428316101911821340247629944820591146257710718257359330080700645507315696921226358003680031506324410587039328262906486306141080689561938201135978297753868717424615249460742821616161009304586148618819485624296284853386997275585893628762738408800579095669249415059945643033513482538762082194973740030835806051389921660436017960766011056444488710934587535814218762152141069523945177924486280794023067889818479368818969978978264555210774265660656880987144477083135194903769108614549514144499176302401970864141833341791763859056199681916994208217761943750849001606301262902104485959575127713672538174379343410677954240169258871469643185099393825436108060576885977360657400241382518974182952303931188558222523919046490960561951106143344977849680955263798603150267454389897595129685609094358959414617947382157677302168522261175997195682538692443302450044472983911509329576480936727788224780765157957129053309477806878391595425022186928252114644033146080413434232976560025463784957075971709557487779345322034837961419884206147772215359728272534254222486910909509484981004308490272014105484514437881613384997430717489520178993599898011942618688962870673262435026098865275176574052609120071591540286691913315768820501025467283294289378816683889546267854098254746214971787882437111942842383015360407634281746386877886946399451934737876287406298771292285105606471694030135417191303527894402602953975098161095394266818095335386658311782464934849687067823834330657489823733639322023966645199274986288351985364279486363011390642654915149317220450471699236107711960605163292098471755636441117816415801605766906903495974928890359347649400423098958489998704117725724861080336894573394531523599374018446453916533510296268630953399006177222180979382736540182612307882129108484655342561926387702460931118694913253136683914922111128565573556336466724301994293132056048985136193858039631731628636444669426213928192702402363770742764721152089903179530782579868754320445175030552088516438536388843437239445036210679791953758133001769510470290890933442880557618395294422504569772153544363973160745046260381093134305002023616029930383675787373897663231342215281287664635269617604323212907484242840699652288654136981693653522263474428862680337831961706443569910607340950873968506093423042837326776395633743757546998312846125972997913813085891509580875711741448420882594199456558486858527911938865587451013905736296462842409614960406777380397864616874705086717948772006360691534571349354057753044258117498186529131341127549726466813992308322150842058635370424189985825789034195240848061259033587723464633116937764348090740483460138324719494226238159110712952139691109172701939809399196522442564336002739803845060128763462449593960883883984883472516727947271580693090710961960671310830213260091962756798310913270326675251179740928954881493652407973519845002687046297625261038386761064083219575333910390539489141112100396760351336441941740185214403710948187986685739140903069526832939957724139868266785065283860107405718232699221438022094274558057203315342206105671449314450158529712088305863588477371058079262229443697748826606712840082523061388819242321349112481422477300335861107173913684455075085121771554878124803980740388752530140544039228551129335431229224248887872761187219853951532176308679820937546132363063625508097117299931456752857082852591391110193676628528100717106477779510531583586021147475603139157015193013768393114912717419858556252556940176846933631175369801468598016123180100875157084264538154228624999781760331174105171209699130265005480916720124118954954790231539155685759668752913971031063715790187149669852966105692228315199255896831122888985046889435639959184030368783913451788458712960776665511498792182527268861837699409018650270743298591452299595765643561245218992759546104997866370375806099596289979139903033047056445110016843855494286579600751946650787584265691049975876926642956578225803907134361887173445461697643930788333849902054616325427961999381395292212449017649746251407518572055970526023166881984452525494560889885825199746426231835566892726762041729114425996739758220113277318849524768048895059922578434972255500933835458092789396650904897835022929943459009582074177575094142679031782398037126399816358019990959044360328092508840833115952216371518727214251010254952387031229399597750304763777599775328635762530831018528637168239743399259402530561306231157344623087399528137943038840455564250194745016008789043075173949295968371100714030786354633837114572713074406757308629133843298360967133267859580255539026386737635479986248832079279092928523308550734380366610303807078267848731582009099430233852324461477171950786844628190843287133960334052530034065433159463714996851522948423029808531030174740178850663369194525536546418292335765990408009758537891246262071027887472285054697898648727707117761408173233550886448822442540631440551828727304059395305913265782412417602502567630229289561959725570864690711356006628847488287500206597076134547104741449660773483843846607640116540229802599990365161763281843116618362513247206206911993808536501249697523771676669542806061321824173374759191337308254642870045448961373869457668247070829307648736459491032191443273801156455136742307776767569875281237895368323195632075226983596913372928438610746117677493339214211325440246012118258288599879189347422358114633888970308843486425342940451109305916774672627570002609012444863016500085355929739755529719361093897627535081868161308982615773706417686452371809911636093706524192702672370637638295995961154034421923974915812432894807723808495828291240739167064552140232210203571414952092581301625224942264318814522050965321599702230158580866023786741978013131684190065679267289878052909435217320124400387585563194088657952479286119980127859981754933466976778410889896169941042303713403737115697679634148668482276876536077206516178258948492401260794565649002220866471326336949137522680642672651747056803009435357113834470418189244831023906725599722488526524534866707650851532536113000664903280767983705493876205156887892473417564989184256281679065081611064305644261257605299152803939310782127746917929398337289825955732425331945009202247198078129841780788827001435009646790350735266742765762261106414824245949541296142677123693547684651124028166562315548600992339646676558034449067513674004013275562935449514680794871831150759939263445349977520810985082238490750219556310245677279579155239601517141147741349861731198123047656669461981224905153641132642105847591441125633848037954887494650764137074707608190530635870281332473666264156913865868269612183589360310437360641442188638307710006419639411101836237597976232276928355493937021952532579180071549649333556813490886340437860148390327705657932439522090636495154413914604892093940305883348168113983568450102082344509577013603665656047020634456093627104295310954478574385253134016548208687380635457569937299022159532035987706790844543732330129171972391995739648885401210143776728112672192634204491465212419422577665574378878838060532017806942377300933446931828733689472772319316390765714026096916583574246111304948120566404497855939795724625906901396007861046293054762541704425518870458846653199014086894867963689472004783615627493952292697517436078348453357243688606312011611018454738096537929682098771241716387736477908986888039198405532838240900589279181887023354236936653051759903984430292250293620000927555577987197708160021135352282525510892099787260171877154668510783228066520603945704885680227535123992122259365022471396653039125946473360753418534243444406517735121168269422935240748627274073427762697067867200505543315075140574931840945753418106483599534999365759855758255618901515472283953564710574648057193093640096274531407732383276031656858308024962402316433686043951474242191490636189500656958345487002151607495817846576075998036730235829996229508331997811509938642837822951962564847339262882489502428704986784499959155433429230923902187824380816926174027645543549510735741831176794792299616023543359647888859780243622463685541894245653454951327874694283362465607240434056685076091267829939871775899468911384628749182370342272154467843339269342668038341267459474312044070893699026483129782983394794593239591788360803208546188158245481590796311208076635018565192633683139294307828725321608063488811285106949373088032198633001528432053279825111384539953223177077405349349769493877197386320607948955284452340700978714964788542272834133631359608001115324358902741433389452612486262006600039845404544902049530792136513462510700362565583908733030261000153783328168808554335939568858978913002047899788585586879926347737355125931809316591607425436539246566540935527831522605713074606440824402691190675633285930703487328917525093631475641231012825032602343746628166151763922293617766563618163969306425760181513182273380713781685237700641720258028025717241064990583425507025250013689143999373515849597223840083246840572524805322237115916425565969113540521731727806395170784151221683945340490531344538791001245513958755443270584980348297742345684517202165915256512262153188349421631224341533008274167272320759255660429351572980359216412601288962404371373518407052025693748932798807484167386810474070555302277804580901639024620196471275034918122648608770163756906968150755339225583220562744829698961331572693771676560634150444463439115802222240572993718947702661217975535114536292066426026687220839509256174645694721957129348854271036570812606431682756140283746125596968895178761438109859175044762941004244819513560002637022401872266457327471080644716016629404598725789673415261509113273979518166843637332165926839530682072921067166669334241190473638592834440934697741701700489688897158077060209017999869692662499549075708833637315924532692181780988104773222541977785881638966890469074160452479841645049525470417064360927243069265571368661016882594264698676047348815614861620138896579832943131742603947258337636052518815634826183675233203957701491307415271217724204976749621135515721676180322043993099633485856007144897050138286975894154588275554794972389879570227151152563784789615441446382184929212991181954033484718506801716489263611977516230334050847778811290886876317892556435871229639930466251760848378665202571827872635367830723601461493072640502993279553334583894521774057479003516990173288743492355463555051929230093041790180291499354566687412467418914827973226784179827327311588866803970759440149587245447078627140536016086008482880703722516535846245240382401596905828110455219141707615172131741154898155497776289578109590794361260195383225800269018855234379529191758235179175785180676170410823815747070509816669274862981473531805455944731473921421866848644812471070125636603513446036994769819554725282871088448004785079451060501898272650232286954658531966174913499842997413678983623153055252091619638207451653066879316090600959484667333916478016459478660773746546234257584546057268077943362323247622945766495228074214097349004539631003791604073386517483831148915686528025285003365854260549875611749350039925220275863765835966596762313723853700280711995373787863385474546287481061003029085246085387751045592507009700958163304227383177783351678126247922634291731481065103174077340989314380194167135851315659790903743089089219289289821202025804121104127203282054928410640865550068137637102143554530676420703405348061320670306106584307861765435185957622100981689260463391682555216524381089263726442787535335600752066934867850471883759487689922485820716356932893615482477479828682988774961908576507344092805659792038219765119072566356848457729570516185373453817283668194697993574471301573435622724963819746230442603358707106243714859734642489146179677578837325763002854441004438321136403612809077037753421505900951457306517200116822932281148230887734087573055171116257166498200025483607170628101786326824543227776493653719008383657144720327001948001460332375741079180417530927285264369053910919475092669031895420316634566813123937914350503714870684226284827053798640251575406398517721232242684007812763287070602607185465511175467498180155005754233013788989009817232897046842863260152807337906071971921519235222481078437615554760687460998030990808076907072779126921170493669217022861553345094630688459213729245706377107414626257651124509574986221729107469763687693256399890486834384307250968210494921664415764529804012672818936016125115197374208252088186102176360041986618047133079450603515433200549127871769557071016099423379759826838620005015619023001240718613163521357221230760388496259673473086528705438185403192863873098458753020839103930896804891560513722546233863987644064890904650022323773545793191809927893237800823990446459547821032333803453808310069076851712778830021549643330653659424523788048798231195012928040141721235242950767122231199122460816275758584463250687921002783821404521087716240831463633889436951735524454745500611151320873273901111989274793251656771268468253037451019245141481046614350759044349089266034907813881103540487510344735337985185341752849930288401241673620382746645215506809023385301254685901968604493769912632162496526602431076546223934844944643098171942283234938888674475772340540825718780440557073657709712626783347840565617348033198629409235256009523890082387654590399053637403569737053377690240364360548706178881245624523753965340223247026133466002472129945490367525145109021473070111351290127474270433801436874695402393486787846134149281259547187617695261585564044815060389900459070187153975329535300501922717167430867526832759947853090946236884883601549889553266482299776973029459141597359964068284035025761484750828001770507041268445969436633367761042089157945959134307912074559967002862455832253167245107776213233106943363869001406126787765856193188930036625203409885595294254073819017682417531490984924968826004035026929489981313299429466000324538172684810263291900258269078998136043804198289525966929348034948864492040698523844587182693643169653287616059103975726368191371543058475265423606963315066955624674714491496451347939000005455733758822601604677361115105794193552777450947565427423423843597650691672117498842174610407835012022368112824101787169003181403821358116535541485164157203231201881089767100321297204534788028913246824490257486088010374294260176554878511425107062934113668717354371103860025651090940907993987876672981337893194861404481214146786524960239078513195996330826953293922317211756617843147447995085213748989286289725582392128189493802391095832115565257340883082981741780872721504953301250438020315361530731303909201736342819281901368546788771042046065812102931516860558039369101773441860092689383557105471735238481985464947517264615400382775377689721054893868925800540196921627700663792713593991583517923521697070559698414280609462559132233001413761157143873712912287403991592888289417679189663373093976881561702862617854208661334190160112689264213941994316631047524917377327148935708978069132050889482327934251617865202068266897378193298253462835039940278249362717200057153439191612827242482093428455483190405118786924132996885162787915071082054813509504180906083268439142808907479082679801254710756764911702070860935146908140505277628843991384464196659531977712643091656715142307778378284128685569098436400551231816421240220739355032196834319678807765379368642973950543391434925606498037260794086786032482289162632909530758154312446237717860825882734800202904444931222643561382064415262008546792860086157118428158854672161635485642775295136975135804448747226045721898410264299983944701834161566089186984930556840267119453227709727713480287024071667980084922676487269841591015911326699783496761604631056580795019266873140657334844837283936380380120927275608540119075598884622364506418754748289296512417710725298797948306718067918940021315323369439060070584359186390188544587040904724641156670059466568092696140121811257827187290563439496804266897225590557461258169847982387678852949074355714839818700837413955009190317684441009673149809865788319643468353308093077756753627556907586424536199633634214840175655850500344033657481604356824835379979947359863482133078476376731965881157314115745171933188818681298691289561789095270162102562192280939155303772096545330073988442357894180017799246175491480564985348223210851629796625710583933515221974568180825277143564705013707747757982007098862670465069431074065366779892848565655731080454498244589244077874487137072331661801816102188410619524568315669348636075061653159111264318592978238851819070702289311658106995322785092687817155522916115868416169773791355447840196244221322788757623920115601270323180515520376809999990467245197137898637540892920891445013907154560232045001996652769763022793015010859960034530314222500024245058915640578190439418281356901697969550172800390734478604799042173771350300485613376164720513808281423067708893686281844252851440300605649893679911934300621361418010080380218392876629953388472650410025669608623281259636825400605633899081795488369695025775451051405065275031518657472413239226834000406198720917048673923572759450414836908288650625155443225239820664893642636790721605433052072708290790118162653480969222207533567671030141172268601175259385874093743323225766086661713515454600757581310061944225215422164606058234548869168911166050171212645149661420774616615054318762729388936584319810696377975511630548541130556951139899528020264047525021826218521128805309646362348207226258220567245522443670509834471524103129004054883591275038218847698294159601512039553481510129786557651184808995525219871617991962204680899413251178037661341625350222602769175594888805046015141711257268015289935294216314304675721703649889000281647522867075898798668861712918942377836996880497919747545317443700601720052639293906863377657984717693896687963252891499244295245056263753012844640690499821834872844305800455044192496255631164673786266719036167838191049007143807348295953194371235494727123890244121561584359137980663154925813814622034079540148991361623529880832731928831908101153834218880511594847232971511580365177715983515439587912052957315735152190939021727210729645565949801698170234110951302122853398507062101535477353867552837880697013233101438311032576826240117192417364274853308664450982581875385686983177125344104378808058937717294582816161578582602211201409012020292848745876019741437416424491537332682613529957159479198870109589613933702290003818796749178285001412779370205949189977394550579611222066575000703583483986297033840805136361292875185279536837411315056577819747435069832622606570208821845739175267857713336345551677894275565546916814621840875650593515556526909101592310171181240070760799646985253310154848985106441529741671451074506503320507936370574140860850571710113462319532749337758070129548787809407662529902344441969377683745812110333330679244790174997176756673023014315670549353913116878069601528121525176464001970970612980419183751684771286032380423310985043859076103160113638572998393628701663807135623079171818694445159993961622531738671256981664285962403457656466057864649863178909519647117487936974479100646526697181996851863878795868420420225246876990546216668189863446818084641854563533842006573648154333261814562506948153448972305788295237367012647458374764162307476262468245872806477289431194163215627672842701802664668364869826084509631108772299702406839516760300824529483582896629541959399186746375395677821312862797702481278779947120365257681149873113633495093153663598856486468065167044902112296560146027583732011577089085266284020022833824471277347989950762193850195742635042397316284511510339267392887565260505168599788896524721063658038801304650360320666582262508972113664187046787569085928916004038196489927804579468708434155172410190213823105136627661306764353033606777992643279593520498692159403794289429726083398872589043123676733122737852104823825304016674926580256955122178501671524422599008678699450814022464459128029616850981243080548362023164679404973131340696519828938251691001142395071497657849399505018593304002085799434978004352330515537067857134523807464701508753538666600927009031651412168506900537387413244567539709057415477816498489241436433345465586949655287069075001785555967157053004188303304698841684343599492943801722528348617107098782351889348152244404332643332345409106683247780879707628185272431715383618347142558839391278343620831933993591583699152541019197699910955027621220914482390759855809681569469972413612496659307685700807249968236823413153797161868221514858780132444314091824928439998722474654442350239631657157539873081633826173538002139046425588452624746612014822334145077016494388786818747537710041837217602366917592141630574590784671911654547262298380136539462604016884969831394552389522893600070092934224872417645091328093658333439461159430266583467018439964719527879839066288155036852148232493011650094418300606109384675421573502729227562770443684630201247714578579603021170443728813489078388064568907949168250144809779047157110173394959226267297123183831933891641263592290830593315327040595686109527096664323371421751811033102312727907817578234926468255511355698871786263138910524598516617689720130164787456693127664255925830351598192971407947110620920777840343381783475248047681144868978706850401335972920972836051308970533368305000451378912483654030510417074378401987078721477941871798355003238561467621859113387349964928335777665619282269392404855891280451083504613289773766527271464644559814504169601354605115038130054843269072003895670648135890908975210874664458191889871489989005221131405944034092794659538982410691079978753479852111627348340292630835562072999132347390979061884292192416544923594265468482100615561414837095259786535935751128357514517798049233259009848445659570883279764199654979980555852968885724849213103394882338333893185176529752621912975706176258645498365148754456964950636457971699618424577499223589855809202579046083718022031476604311756471661366757548503498477373788955041350529970487356681733143759042159637541199248254524199339305049978169448406980816449261808220351302553168377585862692871295317395336262449321626569316841402390918182955824127441559047901499610699174845219088994782402706430786711081070768122212524032376388438236964175562292663520548592366707782555925368094840535664664691691568039639024334630739975349335102879555384754544757298512711253772451769216158782470260290206129900102353694087570943738534652093557503163214330520551401770881986357606094889443744225041789816371297473211726513612829537060199009836166323678945356471575218359050999617428365411635794098785769640864322961604700960873557053752895417483769644571391127612921725835405358925983129939120214127170857385091941255901890959610556041386195808520769455791188799747486803044512770533658894071402978465604868572952502241410779644931345701905982471184262728606810841446541381997066706906190209791186279431824892849459189875882858718529829157368384519542398443048436799013719306189058032246635315864930991060897327187440222231488612263212215762801043962687824705723619163617627602990833480438718877822060460411599618480827334153767229159123048790875826612234629822096938252803105385565472567525188098827790643387122595044919627867229005305544949353174396711456764670047836513162911272239956022036829523824414540851435359345160638557202549124585246984377966449207614686905322030881801603989473399611833985758280641634015698002213236081151386760961342972047872116321889011775823559194906154830450583452863804091735493602959053699238122716766858236765174494388359737490348906048789642211471910554951559373069426663072975976999839470618090172658798876089769177086464711842385627906717502290094508183090842583820543896174883959126192406888799009786863319216124579330487874992457552787370690443439071514633143916649437580051079840126857811561714546426528003535573008020491826671443586205870187110266383704326476533365743417389696974854192108992176991308950714699472903763412616959926684169610969424196890274185818570784852735305684759966463794881629507602180434450858108489357253063706864878179238844105051068162846590685668980157587023869493712087967620223665553214804820472924678279406408686721765796429033119850397604673195723509458042391927818305860914163875059564803950439402776813248034387523232465709721548292151148924241895799555347562837452376297377751418422958741912334253457652319168797955285298442630356745350636702870400907700629773207773773631807880235622607639887500240056673071305435736192301225683835197897621857849372799664034276539039067143763941681870344264964192832592696774122584336336407009076372551977340962889062162979332695446209147039029545872590882477751521005767344468477629353244110843846293648430764524402610127007839210477224391878081314292213149432158930259668169284788552578441069856100714338697591261382139758702612855270479237320293511803186589349334286019893041611195343854399293948144296439995461832204089591048749983064144788241767824896492621372794857590336206597929659010881224057250421536645963843961585776306067543476658892685639763166257147561777614288510148106949402161321388401230234590616596337677016052005255488090165000229112940734008657211887721031825103608304388356831735625583332319882425629776408300288866311010197946884875381639258154018049838518556735084915396524831711676150213380417389294864881428283726391188301641256781181199061866380698414176360007634095296283419100579054698749361819155356350898644759690698417761737893190875850393422395144578722536054983942291661633367225911122555900561594152540737639663458504420736317377251318808530779995503298687676869202350798155620447973628178063946103102474888387522898210223627831764873926732862981288100408944248652256052006451684893395013559797297704041988394128963576344441428056799633735873240839828523675024912116872101065154355579744550274766607957795798130883633492215726004706750534220443519931953037928130572481532945603233475607867426740009611437426024065485865081785911369257888074906708958687877456265502817014274127404005020710562100429394059720974580525540856697097774580121017381747397093226074201899154786147484506952613081323603277340085456715740901653402938537828717026209847764298101882212866722231519727181310271741742302259742219673333314948775457351400567400836659469114172030672604887611769048654706565294123993040640926848128905491563433550574997968816699722733083846865255807987316749494298739949058886185651383314635005011251130331717945709966929462939063955987708759741621601199619245430165704899463974773271710348018376808654021497824868053352461594155651817915517904021587059578032483564706700891113057488996215047703964981826630432585367586935561870529369657423665108138197616246112187656458471293405036050692883770903101215834266153090711994784348251821865492714935346190553208567435289725837517080274150206239570527623644919875396543577529114115006666757392312878500560182595056410768544539897652350979283064209718142242058081700435509689681219255062330532719500629991908357827942290935109381442683212208256686923445470382707875954963728209993733653671970613755677045837326833958063116855106461912644049190299591471463618706529279052225532387397979248045103898956059361246158468485001203362226613045832473613284793056964326857858147716781828541393149600964014115448218978280418647618083916464709859328707646206345937826501881499955638331621564053234986842861914435558788713079596627845954789076542881873688086704958186712581632573222583186171509286634748485170952880411163380273153727464888635119358037777691193302513892719812359983014080535220906387170868175641567064584313087083824845684472718594263242952308538863388521660408031614117783286208982487992511458166494927299381954367081741879689898320905609821035051450627223987949311615340862770701708566322512769318225289603710548111417967153624835558774903452519009780363626414817936385084986297649108821024830199685034620070302420869896719265631811432021898534087130926026722663369660846291343125245809446631996647913676528452063051063212840810329582044757370842545846833575050579300079495918538118304565259121518901274329682791873516136356049771435324485787963082792416688382291348265060705760675214394714252362790806224934829514781047155055591783580307593571511646551483679064026607615746133819470914027912547282935926137010899230605397745910465174546537903480362483351858696383277342997210509526064665233562699993262017976959816050619528963571021924975525055081727982101294566633746245961799441408828834045557175266484463681399419132790126873419663873011321184075893101559560863633465798644649039713298500962554251234974276472078069585839513147343132081298963601133932773579151698586840920849274962456749848727156253305186173823906959103093329087942320629775158866032030152673160946113786339845021103464602580477394954854895656394646324436866915113582324582061406050575318050120367545628395871575045698703216216592488918807121937149483168236466274660096490543518781506438755639487904876032645138714072023390270063108904013457196804053610945349773854317310193403935332436582758006986075897854319212049631592295038974884342377318388344695310026142881599011724905789681700671370343146084200800759884186088614034743929577933878331045826996958974123252613172158724924074871664655810525446999436014903414871282411412939783002774752560514977213534132673391086789615974397913727506820503648504234054147918333740361608199910594350393306461514235664122952186851717785560602877167917701925766555658677572703081688670768683949521137425060823666237958699924618136468727083931975734496661298802165546723884737282689690117464309000555142498702257503653959399464470638461208842764191847197363085396206629231263120271070596077324867949250040528704427908202153239347757567676507051172627425832684866177104107739067208783556055866556741144032291182812213896772833474968325720679459938266105605322559854609985002355792803210100291513675682454236355125944908377618555552898256785546070050366292327402078102688542729087880179137319150890052408444096552441983788684374837187590244831966153583533896682598817739898261743251918961288933460635745811831152403895905913710265736586591470683162495623417221411704204993565518324851070380773109817628390025000820854130697519145055337676735595429122970170935499260647072961832685226263489405504473277135128558333351038843107149394241813997835967466233311414791726012590963686940781370401961183092129451194051764171963805141358829570629337415378089383333769507314533908349901933915646302531482181807485591246025475824988760431199486339412841939972488271060737380292366008532107496622468716734197971291670601039264548301781045222609392632853089825785844668706397311482453095840758115412622050366648085650600896383230214231406942388541030909310346466251943794111142470017662982020238951450786977948985425813973378643769684045080821600736287146699092641167376829388166859929332492127017891865538930228585192787194107743199111954111267126796038064850819595387969465844945440550950181187573451577010873918685654653819322915237616903090198569099717452322540344397800789412599186471103208193379061045572446555384899232958961022588277383699589106739108995984925788120263065880310429011048443194654802621580819842211417517698014044291305944954849758962094984820758923304121084753514387227605760724625937092438853992333759044512958574962699715273765944575329179610119957721471379241880785080682920027389044439397472119787815728538017463857821419220098342012167810229674390325672423860043806383551567252522389840300561512875927101259686290457764465547848040015583086589785582523058298475059393368350427980457987972875295970638234277079882023021740052131067149488469513760730960039851340603621125214945833983991886233284224555395040439205800042405903379316677006259222063678070457051749713169978220274808535382358336445328135098217498008235528866781462996869716256534760994068164021585077881577367503352544358737546893544815006018653882107467112342744495612543804086720198473245257479552108295717803623974095462433631471981888892073458700714954749699391048459295172225321656370277307113941752714131024275088242911234168174085598380560231358647067385327183206973441173615899566958747289701886421262037580744967505324219398358427306403910721717547805033672603157613414420737929701810630758111724886215052005646371802792114229221674482299981966168583713822465472374629038981198987350267901121487486641644049687597946197886980364711225180974097689300163179024805027597052779826065821722388683980979955928164261374885763522595513411330447011412470942266543345147943836165384453139747640275238973319098763064245327726691433516776338324621472946099931821245451391306395725809890312555423113857552729144682114292083754004199784513006714451565035451314932996877019004017794633933134615023857863506542871654098015009632213126775321656962502709778005663143611969863273337344983435244670216080809939606016557390382816203373663672457364164046697228464997513404930155165313522900624996236819879856243121334423822783112860128035229107752914519866971661033022489314578491491305009076090080429128385709122084686684600699924783248504530720394596606302006346285482245287277388420120393474793843243924055137818921768749983460587947192110269446582085303602546081744295591357849556496917923619235850433600051431631628480626293172972968391714402190665908367900336513579320072340726926760941199706957853217868180138235242145227456915832213788404845477957429705498960737685318557746942672786485367810119557057295859467262792265199129721228240820228858158128355950872279549048243303965579348660031453329844960686700871972276191392268689442616305285617764848194304620156257676813022236209708606335507404345376942685847832797085256688542300456874270942118287683666562843736159690643845549657373442838971569703311872568131403754108950389443386494960983148646201859827640623209324385376035620008495219205719871938360004490292782007831020892427300212451462200836951164663077244682196237913512929899281136898879136384855267551665959962806158127425090425441338129228190979624783886224523575096464457741617937005174308232351782974536870192337793700938479773998494929788461220081009421385179417408493893868330533853330906936869574648034353379778896289715451033510356472126479612860028528136219823268498906776548707311343099774937569880129095598388341451783789465039764401546229557704848878270337526362693350996237405338002686975135713707007794783016116544783325117854898002020754608531017989244241130991001662192822490974164626566679113624441339719340231882924593107862562165369640975042267545718409468186878933750477925284346068303248578655903832578463341060926500254728893336156754773880526130784696239847167925574838232809445489702731585611330998208249539959113641554036042961682684810433759364226314474839571227559165268756724443619186999448146283658121687985395249902179390247729226031273877334961142938175896722143043545159062590237753662263565419568862511592532235659270654150006051508038527432800018833907292900821708766320751002410945970460728460735844404777577816836468776011638089993950444868679855754049219858546301190785610265212056439058956435806885367071061012281708071907505712047945624635871113127730487741554169078330838235204649320255027597373059996078161264818627681996774747639834513783033515347554117699550677040404506742668022681140783429715696751065474830551132165992334307732298298096953376891655595476892555870587516022550795706452490168142764849643121258318135100597797512004653479094140523344389994979250772598570537616341648064136125129133007386316577553456479449503347853117243723242159777364933372771773192618135061767810918901592535844489417070298167501404052609157768213585611339875133493186354264990266645137911777663325606751608882631442103177633327880494979234496239616955332003269857852024709354526073496625733595803596735517431606362532140028260278242932484590160833599249570230810641381065565832375059920299368489591318570212273484273327599266808893088978176883085867543450379542455042323693260966196918656143328693459652160310733433379454569678256722979178576176803006350458988515047775287292851686136565988992836485477732950998034456685451108353111781561607214964104248257678849480731333872070512882570046506574960220919800245016168329311136479714430410437883829280233104252114737771614546187769610723724697142972096588709825456255715154783979251109748374748020222137765883585068722540558636964896635995174028579628683618211192728917530760992110774962180194049720990077509696557288992219059783585188707249558210315756391510092080533802936284931998058366458452942837838828320886894316705859626999113870185932990820045466663505657459871155545252837758453293428260905244127504569505369657414046603595401686704684309277551041535457753690610928176465777962979013221287370157182659196858420044347944929665323296366584523517641320825084532218074301236053837774593946405582383221493992947413090092697835453446302402662523268212881245963667300718678197229164732752220804743534785692102118405656272766278394001119789005770387808418609684451448164508978834200709083045840089095738767639755218089185865413667792104819779810793899518552254630390332972878755523475612487135050485859164738012955769669462679365489538213422719891404607303299149016569673104785644248181941551441389594003936577099241163054173427889914839735242090071164891891257506039576190715079324574144267685451054626156191604674116503173081615784172719212370161987831537169314826474120813404462048153054710897520791980704030398817714704796209103289968719505304404138827530260943823571447571171151627685350304988267854974896418047949710516016545036007960368707456758078332743106463260368326026535628631856161441419856055035152137745008724913619310389534283241062674837798222794046296805476820287977940395682972410357601060649563736198592274041678450937920320284521535181601805847250182681696917949957551219264694027778614297944400702001180204177674423563070572938622026970426205837798444808202451299728404632470430228574849465277803238022774347050866394986716793342804940918693508816542436861911972532092086587487579569006715087108633624838382499504915058520739056265356704328896194104202737445609953989822821448143313167076673646626587708905459113413607072989301525992224800602619078997853210480951398611146971405387100185364054146910636743103136879258036080963751806465866996084242783333307423647989021648977564348793973995226814596988771074749668454431303655403364835936385897770370360838143066672092067791388671788544090970529067875672177849192744033380995171952233854270240124239684864507186881533696524333679079989535989170502576114127038834771157862180618171726465000703129871884902426918132526798676938555839287225224463230222580743036898968436064665671334350613443843111181679012022301457022125819172797618581879019001482226705335733207280511820785832427807839971333423952320530811592903312998945832409225006514408070529618728346482009032493368519376006996249253127411421264354364263005010876965860634931683551472902064245752743238808560552538237083521295070722756581728846241064058771972036741330115527110300650107171582994340420314672871044956794704996026603578609903304636908926173972787588639449608064709595922236921569258046065745511652623019400627593901280457132726486239807531102961691910981611642477226659432526017329170961624698735153449427372986192316209199689363978918577854312951312006173162934855605118032037360555271283849159293409494090615733824948815728849018783597268717778711819025221367297799490400040416281124360413275001242316773598649196141042477555719777986430331132312900603393287974330959577768548573093399157515481206755299090764861331281262619768958128264552047701742691436912880216480554927424924218849718994033655465612440027293119944386482801473172805409399205816348168350083404445992921328693565726386886401110105467539244365176500395218699145062067221828598114758231075887033475338594935978921534537549768035136870834124119229684900877016703575053459090261098863777707384161496020637029969309100497832718791537347106919260237921477129870482906930072399090057354983466219943371827937288049438392286168552131330068920884423693750213832525145870206460637841532442975782936584657085635276202780267150286249784232985217464180567184454290104192963228532384434831844933974296844916343485953961194592336199270882951446568819476426761086453557533397872499313991718432228393759940379145859785859586798256718703888570278763826906236710485918863100048251123162276577721704230918371081726829514242906321608543793241122749411253476043712054621514312587050600080797467431410798927097602913509673801386217363626367351038028517879953328219640524869337390492397323896645508453808144183841054338917361492665254293879570798797212398239215371114324983214452702192776592602311449618430860404071407569273760122389327556152332577046641468278382611613767410759000203542786651828685240794449679246450274590404544458348376427616931494415261884502565725999810894483536980898126398037199946821659456976017809905472435367898853175707513021197284692864610392437788598050123691254826445879302774508264667823978286347180572446881661955554407897040291465779203677075672973303717926810449713647254006142033153323349783860917449737512214321311109150485588906185581726869007854597519422067586072535662239166181634450664849958676561979646680557532064869969017708657932771709185874848589038800762517904491231023819164784282319308193407052113502640988362854482903216238441301930258493422126271173688213449305491413638266773960005197920429303435230472281845789674534090521437514769274342444608101476135700035396268256033080841884769663261673896811666552142582653636620951943082307028541964581349467007924910918124672780817360289516715622539023481192463301705030701270791082742566982253064203297944163378128224814778329225513665400985076895778924205526551716953908711953095508178015418486481999824991970118192341114801216553012410139455764021514177268817203483982886501816997191719045874588498214810350829549019176787810182478235222599215195351888978183294522984318050587471881205897917810197067637416547967346071874193817046036846280674380284252095493469905884210086207898075636284578079224474239537238012411729413977578170174523397735119598301728345257881139151560046827376155265780439091629024096806696349689838175670514346217322522636414680184784197696683594968614884270322948136991688827391487184136590592698162135090483910218041778869087685187216892939285146699915379139326867063723377477953917253081748427471864109607124175948834157611497289029574614640905127965179776099087972243666947740282789546398230516107689309190176277860632832227353294236500428299734428610206275724130630432827195475828150721697310675223000392628688308736558049373497607766766088136057028765469543332575532887009855655377322068799373629346481176025274514768875234622987954869159622354395558145431049277620098149901066268228539393395372095095637124573348792343159073781324986175054631028430154449225296133619956247348639018680598062372662447794005838797583157791338777796134512471738218190461800088121826790378210933005915901858934316855477155289577240783781356873372918531542021998326952234456100877409845296439850796690874330500548336317193898252169667360764710792289884440207944551461044416692052671387428327622910798430360481123368990080165022341159554535133660686439330255636071561152721613759987027991048172782437872324408560317425934600152736157854421077331596863504576786939598889955898067410800224197360357702145601852677467651686799205798277827474549608532965779247709043654899751054737220486534593627634449933028772507662745512004405859259739758426883255961268026574640171930531530472734200260536512086920044055474015663770325764114988164678508158353771568805980655776881093528586939783076917739210540089571696961523352979692762863180377004075695831259462697827627605347518854032847516973048855755002004452481688930543802778719937508050176989712651145487975322872543824652990946112179642805130473826962014112466944085882511521776128384345399947004305968305472821451510173758795575561690272907584023388582546259281712511413003521370189858079164985674447775859050706667982615247652581737050305251768991004741323410348637159315004906193576179446048834011860318816862501107180075644563005455245312250386087511397481047431429025469057376392021162002943250299710796153786483058885168155865272872205546619459648169682514855695153201196728095030878335018662548875140865903488142434904734156657233560925616193605186284794140812896385424312342153513051751046400524200998624008151912481736578436107752507506157383143422113733863736355111949946076671270089842644609597898623539182703689718602265556884397740495495932386776299539086596089990267189273715680627664493863044463766650352227632461400766788172803707071406180618210180773909772999443664828286998251478864352877408086803130102974416823020892818874981316920176233656797794221745042895238334176974743404457124001223138260922996151047155344844285077910138778733001920323254293073010330405196885565545411683072956671791117453480703569379194748924127010533642997184735776699163119165051236293279370694646329785515019070875521529509746502051102030063170930478599931595935697975690828513742587538974570998512206941674977230989702029759636682567847481482261721127625315550349775529686219267009210216679120664548492689091083507744542811676724190885643306857118095562480694169731138076494147566632339710270964476638696501515224507941400891084247512717991376021811033700712736345828005506441424904252798105035563571941402639804057901459238176832575825594600449577617157987965834685794144244748566285466330419236934602903858799860002281932006799030623515366593210780302449082113162850232250301084269218849751274751744522977512615642318506194728901311549290393988656382764160441186871432820785536988424793691326113160216589851699656085799932186535331851689739592344521098068037813187433593572921483630396879821173855715171874662451618872473939826808652806455015236290497024778849698168166850589287661565786988916853855638178433820152841037133828672367705523466365736147820063632852791747579194410776776756591257646018024373035323575631189541605619677295219206824971161041724543569066661259886603787417091808958815157194865359494762083101318722485325557053059662465582582334017991378271649565503450399201763528960391139953750631511190132231060464005918149745485065283104611899438712470828305508285826737386954577818586151998885672453873133874654296792874808173876580402241446945733330645562277032617072048385722789324954836404035212695146211106074225746746486156204619883066691998847925892727741196948977140035044525273076896534113971602192242757347560228335739819470935586882434513687353030295792373225293104991163412624020100130422943410295662825487652647217854014989677939171539663677923388882561838307199861955591829643821179522968083613809336933153914271582438220859891651430561663117027088465072932637440235662362692178853331570725582447423714412028838490926914025245023542122190141975078349367200159313397267018017365542008204197119177839967155388203341856535396417575312550357851797359958133801851097228377107016301795780011735147291411173727336682931611977727548392480452147744673562867768191803930437451889289224841113210960069724546245483187594713578677861994580056504617174976609709559860892198181814305597006894156558749027989072621252048585831929591550189973295675629481242213802429442464282183071103685422418818547397053604567738361446472351745418968744987013738013447982207527440156426966560257729050969868850726933527900411824563191647971487682301740644326912014893275452943741953481412397808851227706339502492682839265548076561930790942240187601226269489283502836037454863585236265522414966720294501533460783806421862847196251259576683410624091464078009426511592594378304475882358264692446969161061825886315946802215207701084382447388189317267924580761206659910777596508304804418518859211990100225956918202069690681402561783101596500437548836887817617756730032625744629562203184078263116809653859063516587376374955114516003121762972937512339214116491004654223515130319345374692726234169867782886993963033840782585983063336631490377719373357132137182882875290832646645284513219125018132785664533843092432937133787378382610820855657328015376067381183025069913330670070110620394424458901696484984873329470321792495193490868375800253594014639076189621581915494098709238560462799958243031553210153615447819962895529941161862471460707311515823595260081747872610849713177062718060978481102526019539262940031126841520636587969332893525796383669991114529303301979115048185897938184953774825305347411593671619861417906600035874273896933959522353073642309309451976627547577930991004072523676290276771011080517312733184145297681987179340910543841833515758906012133395418222495704248509830853328132162991814365061778984119051478119155994480400517538627458462410907623005314605299538622089315950905918595232950829287264757821399087729980948471574252378994714445657926487568753537655319032792134246972755355521887184693279966416298034715551570070301731953281212307482226735606955406604633191090159340558743715202539614609767857063677491916984603693293664563399053318539775823238122919578494175528803586341686623650562310010917279389470424267638654509955436977316608875601179332824192620842562500500873835863451350310347012758177782774619582609579583840134292099118479861786155591914078973663698610050069664259047558099235852030464177950863601339615403764219516779684525842992989157719068908021825332131824204234229808643801254617906251593305445262300596119289513979870549130371434730302006231208735316619936774636422083791761324332575920516509004936425291379254194176587708162362534058506323681227767424728046906984438271556223792915420092222019653851156774342730493370421865985861850974911687275477706511051204987776793578151788347631081502168333666909367959704163798993474348154265322138040220425734401388989297673686268416618092346563739937110438652236408012510781121032911824455875744603343979071581405601911555226515348176594917689893380270115641433549188253064103459778272204352347933341624109242262893101858806336537802845351871710811732160126044626179389722180968751113667896700044547679175407476820123567107343961947567633120608991126511714671885360099728640263306630762742373753573761048625371568690874350605435558403158352976392810533701069098126773749125860298543762765670692394933522044737404209391587599286997821388181578148692196814827479773343375950316425441034958674778333683706688534279359997038397492911824553677991936504163071706094786279761196070037871030858971704940874346116140917919821586700454212434456961157685002832264333130520802784260299997755255751250804127858242580943205521529843938335991851110314174251124487805938794949914314655483533953980870298718594934799105698117338569838735450266904310294101832453723530870330797089616425828874639301641070533408643359599785940180456303956272903960051230169527140142509081691570390526226456969153260980655077726257954088725705312312967057229349574519836179648957147896392148938792622868432430909228894117059390149757262267647638446577117383084829184715869154308188491135855128661913842514454276036813156976003538806038076659632548834347481330343637633405281515351571346254517504688264628970466900898937309219113401729407994046504245243360377464925129244231737750269194365346835948762038329919288759113612684076238154778013538468109845195661192788989135577001652762350226689020298175259658679976917261635843658549126586100526698665529350975271002062636447540657744427887595428532541947083767675795033745372582935155782802118667620741279483085275720584957723944290293921356100654847458395961157087839113164466017667798945060721178404078465266133882012703453492297206353434889235822004864797903213712239881711237548409626301804965365771010684401447438711219141982809349374861516155884858579473231722588869178814189971531154042701283476352445317840930191510406318782266776017963454178247283230609266546564829211721025112626973488560921303258355320358757606682884742510326225509024941489224030277817200463194886197613328959586920500392160972518489346498175338257055405522146993123469505483537351192052864976062091135333607331553614433003283878446837356050078149026822291912516545050311039941429280336994074279478730722253643273919250438743816244806941341741839681533603189172784211824258863965093697227017940801780727168087786539910568709711165637412150536224341758330423564919438135495309937643114030626800503948186019479863120212432813757251419435334606581575803407831375075588295272143349538831771837721858249265344991624402991287674618860295165149702679205333357592487992900920382536881139127059314009438673590403037438266668041018870393667567266188120451717195842979990105010712301636732720815282708991258987099883573056830285127929348462648497571480966760403225875168448892445817016184795404822968834322476728226639372059610663183360021496878884957388139849672761436558363784859195524659759991787663376610877781272447353651293374415630054258332198031422238485183874534213288819134051185405785333682538531892252204166346402712657757314324656427344734862329772603399263061316977434050524082878053350757929205466883686672316060378614934553010739293897236747459118417261919866740230789605395062775998500021545714494510748919341183235348737483454611643431152238897838421710172099658843153017588310265353098348927470834962096666591790474275710418930341742684742934867128467438994549020886765584938142253729414972232224363306539344062815100796210491802608204815781137666366128178947200562826682255701268848100488755704474977968601744140420047228621461024697768751433348061591426882626805543522159125666570713913127162421498400049548527782290224148037562617661361341566549552444558023581561777149212354576156415739648372412900354404704709851837905340134076521521397694991584960683861948073285186793707859102132156209905138901585563233312160549242983679277281521883693562380965743151631374064786542637203744909356598670055622202826701653974685446300567587791199785016681321859052900470007272023832688849731993813326133551485279239893670068684758052280116982503085634528438832924409014089078100583311177908765569732348344047980104240285149466217805711762622093898508911183287673829888383455000482290279876072567686616273703826380785859541847605252966472433788908828018330487450483736317648238362134536245428462272051986459991350552333997601671669332205509307323263621941770152726141150390708523260081828543709731882210909174520590178712968116852571874318742534454268717344888411824976243412962002753678735217633781962475645346649254844945762293365261174437942662980873712665434710991073720607695619921955358850323039529055867505194647196996527703746188513204945261766327143471655834175085620809638466561961550735892437732034504104520359793018923925002309532171667770027451300181538257705658216788823654199038626026792495487089821053545558878613583952176192725561839273280781256522590040594656440315430575770998661627702499975635987380538438581816420213096906579128552404959241906070662598885842673373858030173135937156521535611744179313468557257301930880334251469205460573063528738824995049483505737642503232187513667768249937805574937935953986460284922732963923728973763586380318196426370398392553719061155450732430608695107618134421147510940459996504586909398077384924405041746642693128854384629230523761171300845800375996177653134134510418435304649905214362552120559149014633535329506483482642385259305149766010512242329171431418406333156971715208913580908368754306782387725849052109281751585046429110828622860593978026964049216615502258723512270703864345791436638426338196047341432639417470903589486455738068950741866652075653941538758611428698411342107728468354595006310452388869642495509643211501790503046872715006329950769188171747597115570411831279295496401939367625671665312953000811336418136911089180743555819626618582616363100051394118032113633475091870116735058618687961456185450619166341889592184921578349429921207530240269829015878771599593270089034311129095704477985707093096248743547557051177278594934998832015243633239953621951992845971448580627756836097112462656433629096823241676895627872805486872843244305494583398612454181032107617826354738102644111699633834936738186052587224192569234307706038536502023575137164136190116996813592533446079581482341906201963812416544718419646153596058215614693365858143570446597549161760691341385179170239516325700323414553676399546148136077282921766512415671875336590128506357119612017088389773362354899957031415713752403627374907444502941577158549646236207058203247194008895455661858315614603443411210058212831691730961280748407034987139711493296506303827582008972767890705502801367895717938036891389502631197465209745482929618809513136793574065944309373833994042303060637541788594306495086688324169745517215263228614793670277407703465088832355167417468914623017967469495704849270873146189818485520149119957769130588035822583263697243077721789454254244998068385577560518216852149696737722755597091330967928257796675455315373710566602815330090669751693547304119467856562965297035153592493411285103929930917640396669470564353469161364266313871990165395737403303382399021928972483498032350256109510609558960120970391493001383958400065436905136900939693694300516937392467251356243153100864158811881196011697273763756482051534678623088581882652752849397169342172374495418000359869677018698684947800651717827618821984462262438273270921408974892920289057987106648263392722671035363410400511548635513852419082610420770710371337783754037339276958472031640237500958801807862839433657287472901205745103419343139057527672293696808331573539647525842506273317033249732852984878798807175045121280882116314940565669934884143006385056496454972469288240819092315619059282685573952292096868060453047312258867789258649029924552770571721655373426151370125309580640858126247429428415251554331579917236171848601063545336042841656361225928622926125264107395553420815085444515616646213552948578846022472771126281491946397087172414685315895368013586738992273057542835029363634233754594920973371542578015893301348339353720367795010727844061355553869104067308135338583273325378081376082332894155242801590620875387624869336883611200408781215157766818533979359900684273530809720993076420776975817987013805582767339040917657538754936195977177535008378630998227754268421218271425642991356336187027059629692107723376296347328496314537285935481612985987590265548626137236783787872908481216461705740093850888535299358309443238504737661062031638206081925656166192634057187553898706492834084235158874557222781193356642244224455452505131318795997755877093112832478755308476744194703803508025959047977271122306461335636034066107986461432735327196832286916815158794919170535568823842244173433833597553827785959786828077108103380700074275591892690322156502170632729739867742902196101045608281761203819556953240114159487675015409923976629032410347697347992876437681615071497948155909606278062461158495506267447181608926202994161013590018121914866504287024957380042774390014373884461905359068644641736384784166441344197781531096407098416685934540269466636504541274950918928377270192648429315908213549758166073707358607822935601351641544301377377942408778163985429568846477295078313486952939983681356385354409619701313463785609425802500890249426595803027825543157124563619715492530973169000056494817880403141411210346963541003183947140455469285328796934986940938856841879688726822360220319409864930657092349714683877883519663831026871542607672266598653897130060616115983705948920730246190177938869792851636644387868782326270344660512180450440214598765951152510272443896786045243323469717750457998566877837291175896097359936404207952345627592594527739364053362524503552135523383589047112728006614454776115302056215977404906855412425692783178122087503122655252601857021757531788433574368988095825401041861109668196445930539226059521268222956455717806723861988982375543215043232797284011404791699792357050834489252809852427331162281760041318600706232391992456412113848164045233686581775609873416260652541496002967047627728719708264676911178229732676024019934862946102473503115980312739564990893045539392365576798500789685983890526387949415604055140898572123600403631505739924612867074372821911280084128327216437387192725490965655249969427846505561813319346498816498999603158495507312504938729331030758909068454817346170569798363408024976849632128654235073350656742778110701995876895783382564848424674951277731635234743123626811860820814411913575498159392415568287734134074654840714113340767235636144974771814329534302093817581928205367524017089928060119672371420506869472629200507268820503313026485526453037341861743961929969165213254037195133099653271540593718937794650077110747832739323063253173039524624918081821107271875012056562529464448598396730669148597199988522152578420462145223277467315979468853530818326054417367273341675901456647968164448364436981315056430498099751619192913815547433857288644532273180949524383441977542914062457251526872711132998990391739365931248473790961060218366452868333419945302341988720805092869323865768269361732783402656632160527896827494853478087134771183058706267787739563502885575821247851686814663567322740304350063589132014284969633986609105651351277210312942524686763611642264651444104180963320854650619854203186023817399212966677989936768693095319668401514687822739516102479250784881003714546847772343576258629642543679646918003932086785823243606508640403769700895798859860281857344135232793671618135224781297304982089479600379146029482316549956555761954278126054562005278390223192693085856213632114395121213030996709123280658029524865453968959746912773116680704985153314243196590570351823277555318805327066267298345459140119817025124564705221202092565019851286294742318549831142145036356153881169885215559814475125740135785406748706233717628671449958435973560319712920653945963500482152575651308867472859161262466883882990229188337538897884856437886087887817646458246454112282621058290471664932690383891333048029459331931687305736031339303090427694621409435934027522155636050645193250666014791840030189179247508483092155150266183472663822722163594987663918568446926514085459205860375472929008296872117052644262967559779450031790324711314676775493606461754554500078815556445198684808496627851883348401063927840985803212975613661765935816483638863423725928507334100118455390160609502205413595435863087060922868078668250314048952480687099059154585490764186542298144417751155849294813533440779795293009849382814818358223696271262469446466830695760511580804487244932049152393849534057286983334471726844928420807285709332374508507382807839626958923270164663468537327914170766771838250800149619271868834793225252475452188096978187431198862972256521787836183614355405888179304052351593485574062269863613202087547947976486192334902850278609993538839295120532998840770748184583313300435513458232638690236537917232613867064398266379969774964100801002675380824573058410531289168381042969750938471300763275749196561185894524276065500903628568758179223512945137478960368946712511438737226621638660805933816346417583689279016687527411491843552685537601431899668915617633826790758038710976311696839801319877524970158772411733995202254245486657333467373838563921043527242176041940620593678640744034899399503259526273489521323946020346331460820814146240029341043343006164912084159303636838631064932676589722894286683872645324862304521930926128205161309983656204099873312421901039223275377582657467835995242554513170415910034933544798181466493155580056263963216910191348579404548280938497623500510401749511904871792978518977859126501379963068022443373418497276200072419269082777620556541147806631089395233406903735929162466313919021948969951193975584683128724722360333511346549443398797927555515695485171209412404066735160803682287432044778003867274930930362654643434896825504779673728866728274605344547565051259452747496655290176545323989723923532916489722072152898931599686741306963414058014569824946395717878663687136778185652436304243584766360626304048025279216026008158435652788244452937090295603198825458657705509441352743282619879029104070477138544928327296419514131530121603206650683907376783371264956269014927872603667456069476251374241918483737995755380980282284395133599407210425713665732855045108946713994462990885784095532750108152422297189285467889549794060541215465680075217427718781656353614985484301688906986885531490704320415827836134044504060700473725601785372447438293561427161979243534677678957503118682730080036576603856124775506543888501197094458467256963944414540796477760689902232993634393311193051297839952891882196338600207832563281924511200297980243408301489108798305261397291925088789970359465904250971497979839389073287897295095645455494064723404100175884188616063318841709362071944377170740554403438428958491199120038915057213177951375084631832210659791994553379982687046633216797736577490298449153929145974577353002337350955908175166023427258004853529766483543978628325325358652017362538319019696177686350238162191105327044853355884231548824697378041843313266159808499930259384057906161030127866155059934035846355791933833831044372739746658468318571330289719473654359102664044855154256891520886993398604019143171455638425836957151982355645258858907762595312900459198113626303449368831905745346401679340645856964626396029519956879571050509051729564447312014753870469271500249373200820663031225504735443912062057896269867573337335222172818088949252689325987822334296689659793618651933518141139971489530448193205727712792682590651073628713344578562310455434201493256291854595004180691458977767618485919776241023829324808357817119519966499884820557012064324556660788234636661301362693398290559386443662496650229292789902359827511939086624083495555029165780106074803002652704648033960329252833523980267849039320550429244048914663571318916055790130533651780570766188101024681225304250754484082114334916207710124041975125125898371613390586897401511085818295770141935016598530765007637341166760203189620520544427654292837201404553405552021004465957968375330092974585603996193643615989028907651400695924521567322517584913816027036323470512306608323810930852553052642228677861368953177025376304763702666198271833547583482849055271150943399651044558842303015655334318922650790881390109224398366928841608705015368655747433715424574030326606585313240957548841327080318453540253382027370483547595415068803908246035162317001092957570086921090941849455141949081128553601902305197313665716297003949942706657375389181310770058012496160661958289058940520031863866866269553788661747705699044970934327440161153082032994906967607684765716144743733732711885084468856293197168355826891402843773677568061821264487325480524470341330073060194427721184837021286850972322806074993421881932679233952767854931475978509808599465402229281815635819722787996664072542174174862829567235581700825699067505393821695576067930653896008177078956315048273832861451753712570408067181933522248416312747809358713988178630170928907554361353539056224499461472076701931583414210952516254218285252769184874892510147698452454305738580268389276828895479085411371156924605383154529442357599660248589997707738659694898431238478597334120648045194107569161668041274633562091677009723039777539412003531716777472291662556257780220895293014363761973124838269610758023126793538399374547356084418536336567615458393834096266084011095490130935111044579148880432059633399980907904256196517114653383752080579103640870513060066153306260033154616841751693971674485160250089760334011873241044696864925099418801692835036187655072527473125941307145147107120217522138243634561362846679437291767587149209537933228173426640212836985522630447844153748057586238084612348409153207857047425935916225976003389238215786563672666508031193766406549061714004249144565094636105190603642589976741055982301987356498018609666173269968796787045040278820528669493788818070180941180123637342712718933808033680882236394620595600124209588993172772682343067574868947124391112049970728333438611133274353888936633682250148865196529964497584660737875446926478818668712289360990965545306990256562134184166459443254801674185193570232172478907965055207807441493844171696112356115872611902776155388620586525393441154674259473453523112018205255459070208510928689499464814416065950244724503643134098985652892533701742307417683639602985659133050760464348771962807102886923897802162524321891803792807147478201250946814511356443743870264919009353682060075021267246998597140743180688455717190336541062699728221616561333560324628306201944747693858942378545844044959396785993765683446575931584640654243924183584771109222226973787772050060707580751856452798914105388130165661106712837845004314445117667917453501760590573046087341016211644589459365722457996345395532307977981381126087711044245160391931636641523799867906377447336182685118820118175862505727205226457898276475499754152915036709320814526321000592314685719416203226398413424295570675642228108393240191326713005449209551689015506645857446849162045907434443673509406273697506151103756875282157921666979393132249274191344623466688181545588256860411932222971049415750097475845472761567520888112872884950583740151432112925887065567259760035803809398221480364642073863855286449432597737483353710298603286371073850923904708097994755234391580229972131410341330159148451110650690104913917755678759891492577118404110137425808809714822339397252327098508875062383114570707752843231639576270847064816265542306257051866580914919968809527902082193346500508278421100652388987746442138613059970949611020544544617514364345460065017261246442620481421182651003347708120381865379620468379807893241320004508634833769930064600867932125131923780237091142978873661690737923400319781701568884636367176773599671070484642345451684039274140336948215799606948636805925824313063144413742353333148686635156022434128678699904281161150099863046112206214634292063787183573551394971023438784900399278100249635051132065290122964541296978310670922289816741087298057306063375182677633586623814769353952098109394012824021778242678810547646601905668007740325654162926723485855259488687451128403858631356749814483149916877129607742287088310902064447701654333955402114937187051654791293238823294540551146322657179894930322076264120736005198624172333879000802805008404340449307634356604513541869306217090092332837991263435260888903903901361027859485171060881887000478994391829180872878693596150123386512464109975238997235788932625914412567495820822591449853775053019843478053047000565116001672028774511287633157631022877349267743372909157201082284539640011021241110702863945969590586885092262513712882424197113991760722408053689616810815653541586180143001770920859315062260662888860441864716828207489230327326668605688855665969078802800726477480904208529801642940773286577578061440776776015590037840750433098546042121076866137348281807215518438899751318788209654226461779685600903517667896139226489543798768447056807741530686023030180400048361168661381691761087108032423996922554568675976668120329576044878887565601602635390366036330738710600674283745128371988625965874629546656632911849706287108334751747844231019581411741428220603134544125878842936569866868349075998781444276225645593127701100542489636177079917805245947928156067956369634422018057409230503640843354963330172073980085682893299308778906660860999869219653735869778080086048174301888111731215447371655880078883034816259421327236711717040482715791565563537035154492213941765356245794898888366527549856898980365011212431672524457668112147203779009855280573797321532766684796869057624197222987859972683785611820608124936902015709706599843535649588744072246575015550524670479697527674967832176592688538979546450235681881308475354061357302186423075659925697289238650233809627626016272428117717409983111270256219634637303360685450751086962166513208834597209090491471081324515804582808115151650635716004855124880640603184772117134650145045549652628883232076680834256707328641804953778382366393567047157182377349520732157730103715379951205802474371873585601101873595738794401026591892955022352427390097169958988973012114583247560309411573724003401094501696137480373984744761033379198091033664227508380175520149231732562145782861170383919088720730847877850364608889318684060400295687708820668916988462533463155533998810289757591241372742079142413299269773853667669920775776071261633318428255047197082765641906578573175662514217384271183682468737835763911559910105731490727919001064273861399221129187277028030425633752946269707965368808453569970439678260280222063272003788981506826877643093499094205977930914883101581158989267774640580155191090055667392629135760961143659144017902922888354101065912059051939447711900141278340628453260311308339355354570233565368720321585527043062361683913742908834867143625835786036023300531015247017537803446048166012208402285457701509903838358005245419503415069368409616064807860844031531645584759837525929117284193972063746266651445593532687046597763419324599620458035722349896486101065054707418829087704122800448123656709762602191051373880048111380723938336730188734449389606995855646987186054888945909008015924285054118362050912090681853554885062367998792654053436325607734496889278235563884180327402753349040573946705540518352760794834693262549387295477499316156179082076384135565704572578184823852784715574876528163916533714909290255894166497780041778717186558570293832178738339650037374473288362937628001533837320422416757671218530702260854937410001624186712109360479940223153156635299550608512461764674472511539069709762498108639302379721808903826892941888776588387122480229598963657137417282409482577438531810299848911725380989656639880029321229131750397279516273770768860339350375092942133681847758723974043780166750415494710584534668265358711892691501678899273814325378895499145788037637988440326418047831866602431670994840144851245474378001355408766843465403494625486905803291052039239668938952635393430881496284261588136082160164196431221154767353940772735081369648348760389376569446513915718974352472688141212470505748277310353717709573000678255229128937182719550998027329507168144566151618976224802427666068041011552957288197142019678044444820076320096855206791913443023913739358510141524213631409434799993798729373682774011099837487282042899913798769207324775160790923163389046277357828958343554505765863509745870277358260845630377425178930248471206668443057338700438901446035671973934733368339072584646597070722299594437364385114200974329510328515037251681804721240956117115074963703403044956735462604860564585859195546294952561192223955703063174458818671762443560752315998817145462189330251910291310305960660848690908714352644235261540071388564417126958544271090167384666961284064807328107866543201746347293976097135039132093619152911510183202274568835053685185358454207456071857468494112522513341900459352608710551228513198861338768962681699024993825111878766872315778754857389806445372602863015319549072953632473034335734786249665108846641217260412218665423824732400051456919538865546206378556463068462747670885220415103488747924626972778745365978599870836634853171712247461266620817516139665946972983618640292086608022090726907919774819594156317370906450044303916165426178861086448012716578671888389158995828142217213657834518852442741429469728808903466313057145881252970421590592605274318115864111479958823948463063889739898343005706313712031477846980231532437577275918414223125828316599593009617732937336121097041349831338751860741374586422893434808154762698377983045414851259822082831514008119050534038886271905421352193717120651287957506720895235685456534644908446189458769076660888861140668178046136551245532037251241744422397051797753521168261304833866906206090906068676611490416282860698732569735357501690611372855928231079786692435020613935079572099181369917160648950356776152748826081051275381696603268419720167592564726895982039688091801795193355400029110872533270406422569179268777265697519399388516885295424143668500892625202667819696570803904416784932511824853708312686432742374489923736762283100690544515598970081822225143087641837206353468155754684131369730527637973028240874137373892254694292054584808970788689034109811509870573552133378443832972233611925721388952924850793511684671444935956543275071524157982327184463602599923317677240180070812930358177151309654592325825271389200046528717923729303676714365782286404728542666516561343433587336177076413811859598788099903784244352095558465876339704493335654519322159710002125411377066572963392579694140391739844012408602736414855499489246644353260147228064702065087509428980341938354252830337624174253179608413686848932127112492860000036707645652510029771830653891246291559463650204728052749774084764192197896315753529405150569659610648820193375148013154786240811010147045376022630505695202592249307543303827381842368961175515401657951782437673278901785269174023549803871289908151302597131297335113894997502160143460478148404938409083136881361810613722416564136335569654236998733391936972792169647163069356424090398592095230641313784256003105653368122046024340292125208220428346856174929003753317555801613262274091185070275014298628935809915658134339866238144542514329802445940560200194336203363941827526104715431668066240724991270278095146583067734545842407135920085117850028334608555171921228152822190311480251378752330705519013528450883447818162697439516863884066290738410415558515949845915834404171242534224592886870589902038443744457861769398500933758194077243632575124346858170624146483814372681407282951125059569326588602847367321872777846436504227781251187181235922649071811614489423716635317013429970308364532335501769393723618872131625278795028349937459511407678017331326116718030335924833945344988295082970001134631422734603504487184192785911857658159468315036030543013822693131124628062846391675290624628684487686265186213179454268127358756393413413057789555618465005637649767270116267496885454945778778799610127607513550254819286077455798453775422349491811810632286068156892833729229985684623032969726504481839242929957024687747695423207142275317040923165337228879007441995244842504296835062467705209190824110177361274162862149894972892752841057414763618962440139442235382169348289330019443663730285400490632407434253247472143871211183543090324465273271362302051318805159703878470041626374971034670471421686468355419180700690891804154948138083700280462776616609778015893165621975474198161468863847954994213196143809375516739518615060619671732843952329368850080707901672645071005515779514994394721009207276786170562110866081261379187175526760225959128155634431148008830645829410696608214421448202280156163208862898865038351573220736002806863601924748835884507888269521896073357827194834785904327876223642010134735002885310639806302245174727496207233037477960544432933805890000497691490429290402508963597878507708491281826939909617355796128399299898490622527129842107595767163820646119242226504649390989815535037194024635387830943172774862733851480073484194279990893052457989515910175086680179887711870106003840571749184278326844421519209274180839257511045723059026415320346109809529784725946390287681551602436106613069422983803880871222262432660106333967908697722710563705935726489793709888715347391313911971951062201876391215899298459657031080784382389112647660500015785563032854946052081232007851857651737677944541503011120648792561453609423387924539064915961076958210645670865200059524518321499407182991767037067945175487223777909930614017886554986568136714811022004632095645744316845076126457106523884576158264145119304273850394818793989746622583467473703368646666653350054619475457631227129209543163027841567948539879208651911270763896020991662535897372027779507896211263552381504481810557786625617419663497537340663135829487592483700564992699921952000973117312647394468889758805267917327140548301740284793332303508047135295672463442467780353189378248791159303486355398942601314074566937498212918710838761556109766806626815025730573386002068307131007927005958278365317395176824674746567833994824766702636469471648257299349613208856705632680927333769218558577575340229250867817515093309787685324041161862496326915159554528960915918128771743753293754051524890622986999744228232704001537744074914062974705469887794400142394996105754018098505095822180406769312252128274837407009134777122610276958048640708503945147501797349169032104263786048360081839413069238243472169633731374977445742453114371770635213415450860271554228095595856681741398035928982356587523132193693878017500264019136733535694204755712760589058992028335851499525439918571927147012689138779326843871346589760177521094698214319533913819100446276855441565228565376025589989723926733851600934898229512971786714454500414575932165220002538139191104607427522503786314155028972088366276493195792415633343045511827798225186201339578937808272797141682914384268668823787306667340046712170756267029376814636024115641159973313856641240449696081404709460757049171392539776391473277272925846250607058686702091282662351650237565055881095465481960847394947249742957108529956243175125779476801521670974688727699582031315504542459159681789434467511289052894516081054923790325166808954092840592989161812504073859656377726324178379023543381154389431300518164069885232404409946866001771087284705716123048686872324563178159869325215606193482576761726537613741628735193815050179712434395864323220919380397326515448741438370553314161056197450584102737191282909371564711237929476212174471570068541237603387915401835060848550679692762059068772990471816829669486716206036573752786752091028885328484246592596099165305497188843728930026612861827721159386768207088430227569939595961372413941700912473983958994620051041513450048601340091296245952461821265086299176066148219006825165303307500841027800949286053903074595553351744153852846492190763247259114756240118757788165976333933642470298488931565324560224452021164614976316813881578731049446145592067833499006590600485870785906460077686998077764532036439765582274060962527793765001484512934327429982299422074476293626349984709929672045373135462907569844927524342450199013609056848183582149727467809344172972389916879285663744428551414078522300021022836076085849640110099325854318885964431856649153761306107189596250839714101093365273449692679359917502333610801212726371987839076186706010884379787660240925656599512477536908588975307297132257907259016965907297533791801481679957895514676476029968031598368319592034051285595565299312614656883456281275138859546372414506785771367867237092046052569846802265325674551825589169865814484649634323351223787783729164716894456579191528650954114119111923228658275281980261771509574998277529610365809882606379111031774941359325187192574290154356570126675507007204531223536560216028081824620894209655469407573719115701038062282969448666554270709851231494189629038733671375446964018276426808288332635325330820573233952804327440895275078077867729497967723067906449765340645116008928847485258260439211650402160632942731583576864324327955644167925741264262032205946077101217006594581981005487738529745642038447925955248533257437344226926580026034586846777383337182852481346844188320068320485462776618029265813979379937643565587551536399228765090471547654284880938790006805660621578348787544528356892939908545618980353510963771816992558820613636484418947191669170704210865084283993811377854005122685770465834912604570556336628759733519414420737059421580166151103224545207856957197677899458496510610740772185133870270186547493618210588936412438226336405728515273632875755598898946676183529166201825732240148323169609581544223073649955769978778836396652514130624595987691781109681470162316795007275673569489672545568989386736944842536080280716725562272123342913911147987684494216132063251867586456459908658248840883760591580702554423478655079811052226128511683734716212609244137042800820445229667407731890212351421328732016714583453474356022730901702891010252955071162219710486885182313444870116909625081819622666533023663618163207409297719260138185215448102595174789707561810061178325485971944038824578888795577107778431423732208840854415806435072768185123998624691087518541029324792862478031335618940780681141225373734332762028206657939074459869124922533409449256693515800572088198554926049162111557707677977219147887410662424627269263595438825708325534449002460948407341868497148652019528037429805341578787187929541785466620924601260831295721002152974091050698454076786690322203242135140823298959020449906633114360199419395568758896909900774986307538612072861775395258763382446027718918398065403812460311810282319526823533947409169041134419911558175117524841836028817600941735299962241501677206982783484120098739770117816461466303875291761463974258059884471619216108304730468659120039140233077470092948924189501599992697389530539000723924848255848860917821003177291233728937813780219461563661706050140338979504622757870410278009337754144463464867111932423256674200469692504540203054901065859317317644407307430473410343590950565675499384778903601458860964497268190662497355625546424277650673203065826302789496080839641876111997625892743795252673975744851766138007108330230035020615339042006288963638634898492269651081780246769550505865539645254399388026841125596316899951245915975162560835591389961088328868994802309823233501989125942072978682052995301619034038270654527705013830206832789791620601809579404746508423472459768842009385926115357542467486709326053834245791712115535394196272658044214698871783869791326936862357529676438845295991444535225606581801063065218454415367688896753192169545262948747789770145298472499904826893509618972455906562726830427691454114631641567766586379102490590052367826042858444217217549299108163624687999783024686716173084257614321857827906921093793266787355271302716462445465595218798552379916786771034655350910951424942515658510913795863235059105904392849743657205855871522091773646384500758261935403784216805550181741309789677189801200671252280254766292486125488969656231050844373290812648689238386520610366201794001848335789054496199571005206683206227346374174166787241739789624806118433600804113047884654425978859796670472450686964002747574292962421024780006635760116430998476804059200776852009492901682963407456490204429042571566659903841891115200889385339988049601395691869543873651578548050989681431889829107338233562599874452045576032106056744951494676027972584064214377666625194135275987828397771570913133980205573223793883310624390121916754281587194065404859432738782429409819271177882084463857772367400421210950511531040493982864003436881302755375155357199268463784666517097907136055012760230362818312335499596556196124972869494625951660971195857218881512626776628475931120057043341914034061850825543132898967789443148028187471985703799460481353060796235840872653493791219694311504758041214999806265363598262042419952789118242043893619217914139113967735774775345342220637216882162763905926517035323072696267292640699280249253789743465642477406529024538494204732419265317930548825651169459455191836643084333827100192645441027597975076289604065908884288029501690954598033784442409133283380678968909666351375118756856588388197005614307435504154467552450831446881484549932617243280517222623454423656654887637145778983563014778672481711531756991548554296051646542494793185038731723248780775723131381909059316273266969458946280017560708787560412654850504863388731870498438741658265380838671260220919599726600870730579204575011223696881409079579831383562537005978620285322329201479923326663431457451900318477650688144363586574400089921684146547073729068681514638674346478226893320358310530957435033122331748398590131668915813498731698989091245217892268407183287520345550866798602852529508087949519368637476352987592172615089018617579692152772629554154340087176315072881907755956201337921683259268289216115804452986677119549510256045818196175846045063014569676183470605203485065725078271103821501165206820111571008102551398274545294033053259520469297393125869172937527096602161380405702052157497483691425282130050052071526224104063810315134481285146357774438589747658130433580919821987168127444068153572061031579403996695679107047685114601567433781985212618566677118172362510499328877683723572005990101849945350968120965098277003267603496116459415568344113018614211268474939904817042860810759372230429393640277291467262523371192038561147330795059626632257347283759941377685105736344850584517091869568082447104296253372510092482702954940122370019582378990729713263298133824220459280697463775728820332321844327174080595286878183756539549980337980536722424921178089972629831104634617099521211840507291162097201675143232093828468985369968120095620650819217135747246856349701445888656819259719754534715930320771494332865911062110276756681878142013025195643300300623366610940007067746396265279856135962652526100677007194001654308549300206908771591011079840132293667756480538739812082019036768933010020415066338736704633243635837756664227121371812031815593800998441218203224835625083974728759376971892736682896409921863211095787946647375261992086966083915683076076255916731929008744302032918271901740265819576887106226891864364757763818003679989481147993388161122897641015139848138956753556315120358825469381420272220813228762614167332483772848184435975259331439006845885315772892935175666433894094015233658854301441852240181198866746146909951993909475195076906552360298741435939759743436943331884903980868471562029902099745683816044540213941124170851134350264090337062889421240133407760781904404645286190257740425102887868708494197033221955062019149368429080659562835218247672130006842024367252216537666420157219490823089071920313264905430967596400200088339551172707023434925292508797162873510424573389310200125890105840885463921708668279625321097174669225520604586500237138472100683359892927707330421764399510086258357335057001696702486028420935248337465340807212434386896552616237662377843493801077978555410639153040967352089609293827459077974393354733490556520484085190657195327834206898782852201226891367052368771278230387253092718737875162137162407006047056642568962280857076552570631170779043377971007865331562293741818269416930772032626879991185067579685083418251582332270097225647526794809340275133073718276177696375759981753087701678226724343897978753598240028940207338537472822021244666573410880235229883733738496415414668353751151502461139510943273529557812610935980018420368794911465035628187868472181077422013838911792522226340370156562129333274946855557714129866979683609302580625148317001309482096569610206181074690169033221024085273084147454363818080744802112273133221072151777932583988886452456637934046131681936805646081603554155388924265196494885800502244121952740171052054433449801314225039020216087840106100866668248657565176086450134308189640246173637664102008700432455636091612822573612817607289619366713152738813210500200986792488712131417035590534264315885810476683253432035218197450334442880966733154823195691818199892050194873143138519198363703039026538645222556335727063436170929586237349147072725473933751428430592774681264514564483586466842931683053443479963951044100597445683794363521758761874746452405303871004790434535754961297152337315355250865335770223803399021898529594203090981097496238468445558936312863841785158939759044158358895043025055818575269999302596330352421758834297667398025977767321079593849366873028486962815869608085137902641252578561129584330682469946586049704210751221803914912437386233452934269418321898253250050506279616491923352878284515584221032468095464157357022797911606317225219163118423697806084356346109052937354083652497576213290030257969784908776393475962267189953841250976201864255939859901455211152194201780042020416842969367113585485256216670695601714257081726730051195906100633016778099336905395827242800541319702095791087677359188339847956461574218400011495444463835511796766638511335361726398882885808837864535287747017960950909790817773946862560416928820452678833567813908691150402712493837322445515573578680254863482956173829709162370057938623838191641091005639013703517156456094743091600695186507170009309949756954052043303715814011956636293295337832525500649400251048806909483238992621084423832567174689056499784908459991200035735452739803044589225427931571330167388564321809073211215185583476941391397241460156253950071147985570057400731935109651778843244939341738332573101531910784039953896403755777824007189164469873826556650868293399082847552939652609407357528773184886536908947128182357666844869421125869221733589773771610603872690544612468875426318597651097241579148105778538885424048118714484813746515385867983034157411309967886154494979063667703438271755984229081975206606570686013583279281138230706002524301624853698455211646234062268138630819139240147718197081642584441915822776555192090593488950933192476349185491203641638894589529422863542403021340476729198538484131326695506861311696421358345716446682330965189499037913629890812224968015451530736338461148301790441494422072198494423612470267562716301754095998854096441176992842372073482392217151484065162002900381136434375523484089696026813895479673325617378046971973342857897852086695895789943297628553229749881316621300529260630721414877251764562191150665648432253641386920101961141258003021895088732346582515159278904075591856258289108004313795801164333061672846999303179841582833928515289493068170714550312267524863108744899420419547472563108421501082080591809772225928336760309485208292322251263223114119022147396359342035176848642320309382458607490109775730951489643755616851069374282631574137833279053782134551576761798737107684839681817921590253622776475270660195285144149055959394518028887654945307922562745939322959236490618131582759223701124730522273643198297325109061625164912980452338351593104137786900563426834930450986594727171948851709386542864851375849055847823467539185194260119272653298837784607002862433349858412385620856046710468800260823206254745070211429273690123663813003544010627664755995446069020295788503985554600648564378400628372945320849963680775845909014229523272159816481808718566235775122080068373088584184665543220588820995037357372276161213504604459535132450788576511112869119754694494737137386837651820653129255049284098532819115869422049268573124476479036042016088407730034726026699969324794628847269629280628985165670258973133968439279849352692306881038410346822127814234855288940410220868500262348979000862561909246732553563181107704272445021000937466706257463713261853160434707873436201446417528216767842524279229632223046574488568015929892849952807121450709088918364545196765197079390087114531256141208595381344248984257209155627443832764463858712008324461189747882186075917434256062660031297918128710399320252632039192687209505811743354734818132831551853529722289516247577748176842224984823885442987786510749250052294702557180411603395277052917456483898247672743123733008673651425753098833710407493842545065146636370772915034361168035320316334433476072095720188168807585383115867747647181723708105811580907717904275188772543183261856335221131853064873020278212770646789884412443995047510516447007949668272386309816759846739300795977812827037453699154982413887106069222711452027251918566729044254970410383053967545383484259466189408047244360119526922536104199621726565899925593980370479112411897897792440921154376356389399825554754028978411865618736377423047051262340409290979087955175183350719484871958816833797981022864470855396123013003165735590831453789577451592546165831966316914525276662167006568497444807573889373712183380456379391397395747928937452054818809395181861164365935751626242713792284017646425207244791867282163000647585738367428385673675579538239443050333053926235782673229158491375493356966920889649869932874090846985331455555856099663076650872718229265868416669037569729804205364342519287437293755542724077864863829003668278408753560084922948148443552111824147358690446345797908488949286175277171229671284211046804588844257122137222829493963620747827813623863606168872474227274958761499671585685818231615835649475512175777795920555417460795152185835202731953832898060170763719628966076716504691120484310868248618846708410396862229555072613362879022538853062587328419102372707166020827327334054904396355274641598957746073134421616050962702615393250661090205086377550355348442051890197779102625425167252084260812488940540198289830426134140674276280896993080301866348599482554972640436781195791965716936111984192855459383624413334451247490289676233236714025640455604730420928502633542660864803563124786399498560618882886512039148893564768588904982788608734255805572947426000716361662792013897529198766216170539330082081826799267664337259318653864610209837896552064205894959272357008350035487159765862012089933190610211678055338580312509900757277398706416713887687083131235677368442548131061503532781115324692560663315356980424557120315108484925862386829640074432786094471441032530367519205581735192790908594495493886516914904244517983575705833994299153904306678183114919953437591808958719751379436242738339258802449941853469127197472548934596822402617664861312255591759168088218126613890167527996572797487523576472647321396688681237538835978068070768301642581918027636304901486911545217478659362082725795883354293250549440861404843621211215317326923867184094759234250703530065905766097271081316600400898498261219450506065582753888054150444645833494993361728712229370182516955862286391984661858687398360708204287660601673523408363106510042169403566929926703613276222264929470226020519354136799647742509384004930517762006937084960126658963757653436662671166026705131131073619664305801805832842492408303158160920455638627674870603768199239093729325120644221973698240154780511033675409580163530550249821619415527347170774770194339162895230204728566015203774645055418967180879099905264199982906879623686826626917428882473403235900410024307153088155865414286659874954120472429131173124455047284403956961628575224485921766537457417501366740636322061254030182930390885893360612267753022569774532019865323839590948398770070976840363321763964478022697023679311552645448570086562288400322676802781388879698623579160236650381028643565378945715423811169482121667123420202816465908967840674576428853111128385875287223502407245053586195978678000829216430599310801313019737357159471101133886383067448299860359343587347025162527361446067973313859252582263421566248028708535645557649203397097488947694692143012423165836347784924056433087020845394627504245004470738742077824491676760450576451178302281877608246628981611718075344286428834685951183297348040485253484602901618549744850773753058887981295933004734640543296892701567493505754227103433782531972172025968631635198950177313748632426406469975034961763586111645036752138868216170671800985799100429274433810272340169898717578888265958906607318801574632040431419852594206667845686139338716890996508896734858732397004233358181997208061938115843918974170274729844685105908365662604657227513717807444048968037931999176378861953513935001609617885928160694288248879632857039006001173452121898991917233323538022570375501782557441018126442431707733737367771499775982761419270822880437177504286268376102249299351574899843622736342882956292768365073712596772542998816100922583633390734985000351015642362582746125737837544677793102459739926049680543436939982081732169317811589683944095231684355986691084144005125869467778902325255449463693661518042930600372144114658985103738755868803168115491630785672135949450867843598014219134218777614921748605767437480314157308208088795643807316732163934859114717710462130932883514921991321899286475086676151725324850897663492701357352415179373811609023740909659418060523280899551827514556360292276102643494499342092891077230927618258786209135639573234324413812239775608841256070811296079037998911857751942558141565336388556501772019186909274187821422193187876317322866663417269577770010713617379301738313000848347734531564788075724895976678573303545211065075608580769431186566517577439618696340454657473401180149664438797121756265433733581267491014034069286067757540229515074185084696968081212518709317145648927149431339546703940844952436681158919516838538214736473442784321607054763849524709421056263060521032257231750505236176338957509923121187646884382100754301730905693054275436476778871748461364843220259890650908409400915009880450454949161217982860240053723719491056244095204783034375300092113715641515221911293597062726321356752782786235202305362833665570141377364386639520782345823862952489324268065019426079309529191836687535582185476754020597903074221590875485050709994363658583818632519714513923914665987705624985542183901828963519243325984327467283832272810708897506811126237400306751166750143942377065953342173071483685823337219083178802757808927037919011378440215160295599456891927073769723204259336453051639959413385272820816813990044261203574885947938040962544339239979299504697348340976537312970093784679364912989904684681183653465583031509806622137730885601246483830531423899664777839676714055617553341750709921682932143724948625270171467788354832953690560202786194855588190171121721196280865797877174828088648669875089526099224512885216087859853935306218058972644465770267543487427602739662252624467577088490445121996900630102980817011071657156087269616111108720137197032320647276754137555626696576991047053268344092091449382155293027795540080733553687374674276484161218610086887831823114376278801772173873325729929917858380798789258246561737906392100554412689714676682900717584947180313356515031498308584723339945777205566071862266022725909549837608837210742976928093429557170237093718625267360934562960030152505414854208417080683030244842572851858675346777256751037393955384369990032769204633013774321291341606055970508022321234348926223103843683314027651469132240216194748175301024787875167530340171281542261209469856102257935347915648069653509004025519779979969712003631120218527417505658224290597465671112338636130664516158313271442651269991881817835234515103939946180339545757603412120106781938388950018974862070593729135740750705683898147857604885532692299480552643500122525801883349366960988213857990705617745212435414000994326790037264022295493995883852240268184346960642442072597545651389571547836836670590284976679623548849995638966727914197119710366540819765136350720642027216786131018601686545136207136481757350884473078683146957422897266220424154793845122395378963530779887777556631455281415794746207466495103401210759067458734289722028386170557256396733374615763106926292311614340021036488421854163562049865211422329829571402755350498124993180500912619250294480700921117204059241212644324392618480389520402100435564775916180148243487922132082025638233175432130789833142742582885325792402884637617388367773355276258442348731465100060150993570556473226030810608360137042759704845322943936364718201473640705930502623573581830374281994966106243352091026007770756516878647509602001513266790220154284334557476743776320146168594483824664238581076667242307010642216067432407224231549087889582544433383393954253749792699422155319106858335737702542351721239181394357156887405856370704595785889272034734026954883357287944422192414955725533081404305781588448025761481947346890947042154866412727201806730024735156830062127897747212634856104674177174490191663010692361173625469253376169543035266075834545498065045443168150078821242909847488003527217166254192578477133805399190505494521095729706609101043271709736653237077254285195248493911875673747326928112663912212468186838938268500392485674608845636740374623814527648665291036042804934946279047815454077615105339530400588811237688812861867758656842380333889424826577473140401398488325788629895533202403297197921029535079086979847741131034606119286924081335040790616193809317689232963756827203980628958395286251865967244858730683674146971273192652564875771052048057261799916391670821057149799869505857712728418547710955919427206007733213907676396933921210369671745421552501336821566459409029889050762949509370040730159887869357636352332346534810407181549273227863716226071272724121063068614290935047330992633820614612885459845066648242757766098179894830713767672177647669862540582941712240904330274752893002779518935598233471566961302388214090517792898866020574741327450182801703524582621331119379887117457350120293793188332015817297188409624319091517131186777061547922097623890360513733161935596779972454802527255442245156328089381701682911487033034777306949969837798378685770899300286027977204634718054407994666224418677045729292398316143022234568285686136859429052058435457419137567008421316092838220260944782228849280419992705835970999796917468531160930580418189874406743023420140761429850889885351069190764359516833941611214072825376521843271245775115909629867524271666830609419316365269903203967408542261918666692283072581817167007821265494258874098218642600437051771725066256792188013689228426412430742631793396255185186723103863889371006008044157066741220358127814409370384804369504465943865833685884032020815287928014500338809315808190120175307794306525293411948813715914120621764857422022720754647157055380504569752196100471940893095444925462252385220785788148556243807427675548048523919196521227222151539849279025172379597844300951269233579302292311342711602930661550352826051402131268162750259434722848012625151466834379396312578253173244826197893742101265490070640355882277143611841077687559772205676561191954619549882827208663758072540894062138988653262055403695377915442276711190600372210034163590836889132899967737017627431856216309427431562318773602002325207570645252191574043805216227730167286195109829662798829716561298705168972410430643642241085175305884689150642056594470671396593837789715505671568817516505140689482049805975971987965829695021922957537849994608395163505016831360912854806696935516842398136600608235238329518578423399205424341035959629364330032892076439385626564336108456002720356178830941856196870911475336098562258730402988364901336359002943590408816562421593151992793712792669664615275920921565660132215864612946281646585266529281917667671823974500860569568800389128596852496957889808913748608116688496437675804521205792680420384187723325451542929586155665675612101348466006028187487324473304567986177423840183446942688103598502607532875101277666796590206528063119892912709167109617496611633386588248436914642759917296337305519762726880574017019280575977540529648347912564583190299919494176460072550035176607529515487091277884863383812366266683441920815961034463982697683855746892359124521035878430341774491908821834233502918139050813580730141892823974585983298367347172641016522252020120291743521804720472464909733015600024981235053103151838213165912441818158872883301097739411133284997409300893289563906927060731425809737792530893261641408037230884287844491300408283122496369963044851486904399840282337102254887381852546491659433389918938791855921121641223640116683617288115967849851440511585631400189151410726298516410112145978967737288244364395736065758425274350322914663113441369791365872964039048009617064374239291486693038386192992428159325701707593497514775433313809807782858004311392552732756673731740933390305214983121673266437149112032463009448901862345955494821557726831618625650035204939722694648900219904373284188354952539672348859608011497140395357316199341230201244178707794356499296488099317787029064322314603264893420457384249705578866999280233488271795913503648043981091145753396879897116002834901461446943388682523789744748141825210651382249140341252373690701335667745341848223487425572627682940795320743218221419308364706506473012968200244144647650734882898851778687570700022565754938970714951399551474566131075238059309413400234236670525015824757220480262999051059551932755230647645117781439203477868749146121816430102349049663551258155373987168656741643150609999461092868531778113944434624357596080094416940118208161291537374554492930232337464717237155968612126422451990231905185752728423434815677909171915600534653087281408078250664142860065824874922327084187743563421769117858773937293688720843279490237263658241584236860144668493316836242932292347524364933971068899739177189439208820972445232903312633500170705159316123953791587665833499070552272810998652216102655875134673768910551087635188670874617581999478903024177249111109842965863665186689870990938012514905718309717995790363199297411499211819857141161911246896067034841097600520189574977284232160829902837733990809774164501131617155876649732407763125981521063455442985425202027375473164638429017535160388530441692652937805793713753122989092999159777508037131439811088239184745019517997262595439540619691368784646281723836757819001129490130091506415986885473146359593477408961519084861780059805771425310205086639912039176004909807448672635411970951695374253686004688186437703695003596939633207555966704395866468076299873722642666631053754722387614618703636222018122573941696857483861954805659747513012340819749377053031258067672943718226770854428482526276450780080733829457717709958648450902538256868651864657729739129327374642545033437443442973936425744559709494448311180348888679247473156116677228470678745201456312250665441141368364578181437392249767669385756468585024913959278087985819375584000061675729953839122634220957739753104728916844133869717027186721042117143672045494734423504273816696593805051990429009585856995165609874294904301865522696478606353897878965406501872957668278356391902013867525516779721180678401504758832859791942372419880607080969270124023831104154596960061638204121865945548547532107765550966714995852500891765536008252375166072073138251393168974392179805870463822523668953781281746931448796595196205914194716488323882901375472380168614077088571394432720462003839099248627395488877766235295860278698008874954394231365493982622871336369476803205347910450884221313916042160292890054694034988226516851188937691510253814598699632365896789427826836739152396339834130382222753840849603715833784511091084260398696140382521323442387621596699721364708961126126549887371802434719865877221030086491992438313818156029659758395257985494895932019834804887639656459113765139317773126575429542463488511691057553722762354085240023630982602505639950947306180526414909321948574035083075192840230161447137813462302777646252424535965495724323305387055222626119630726070589398052916585490131501185601427540165467193631413728576772116351051037948440901635853131333058534466090875127817627511219618934431465579219909966278574476959179651503279520569432905150795343706519578269782881321613309688559101952823713339549847402881286191819911777082279588550991747117115089146234674303944545768742206300597600859106557709271009021969577175552815275630721579800625938261058244158982876732457954955827900235753602249589953743677668403204824546669294606248803728952094853757001840897328235027598436998799535874706457924677410673050593185640490210943735282857325236201970944618841050623557157919795345000002597979748577047385879954928242443052418642309851107797833535777644751117553890378238968568374858900418059101926978229056898098667904073336506714941813796539526964594914493621664979152041044669319389977291080084119954127232162112084569755382389414654455946068815924120538725334736494226227807823075256552804428121346513577692757739345003194834339580151738960845217484892580031651148169647477223594004190403470432844418940842756528178667974196992669105757702728081162128695113316896205260069929871145969444171593247933313650574629846068268136336246614844331931618187377106114461292477266604647951987317874779390459323185501195294345077403624279768517414539080370961661559517304896814769603861148862403561164540086433370061386254412996953013014575357041061126572019003469768219650123659405390758788150141669345227261663079845986519317401342430413580474118146854154350366501306805158726290022858896417630424824195682060540131345568005133060398464027104172795664747621396753315082691203724764120489926060150491361750952366426087041030118214056715589987487665394827954207487332120198249451471741634795242114203103231737198681731786612719222903215172727078920814967368330011362017482637761991206713903475656025326387816772637891113449757290488280448087716562019811581538838028076580242453488408120080953487026673967239204225429927940144716368024849422977190985419610323719958863112211684957056428908092776348682622116808721035308377608546030874634171238128374208931407128285903617167516850784446243645178449438945045212909946274857376150678587765968986365386089942492185841875708073182787167677628688659932760125419766064830399629655316840696543290321149351376670507288125785357812326643174852750156824673385529124315517690666565799416779009794569544073747459688683954709474368739290152071482312072531957577381663056122914231583500951634163906987447246228258503039932749556276381640851243452535103280375179633750858279979451377644427220544347883700662795675210528213105089447554699129780205655728548973755956571373844210034247020884513486472925155293138441544824007091988414805089547157853780678461290091380038889412023946857412300831574573466216909304621759895203937581019396736141809793125917726482453565975324450020447650263011369587475647712282853541182150494313451656831303265916680141826615765545563651576506201604296948909468893997042089211143702041890594865166742130377975818240556230419271249116634390888954775085852767226114149914053720558707860469789826892788546984646333515664845756967258434528769660855120443578225968277272334573017069646563171905677841285516489963055803211904252781980849315389110485455387027570843138089092047284042683299471981820842417927692829542498752470375850603929944335004363706386687807672270476651554535047084355430216203664716470970743239303395792706434070086483201363589400227203782951773736229732960299444540587851688941616477133567590759138517071461498192796925834217916750012692298496891036921948917718894116855873642332859861991754066686114777377947811109376182606268434192341823992805672385102953010114282488331024436223827785306050012009253709607475378751346912006644471495052395239349342626292419672311409759193216822188926382220154461345035255832580302248783598800529192882985129506707377911572203273048904554320516817688867409593979566959935406326521709486374453500074910450787653506204682284683681260012532568306164088891699956161501641314356938523373445172266405417006084613231892197241694963721235223813429481983322962046001526791085386137423746626083258280177619783989526649664598200067265782538699438235333368784522987280449272242101367833934969884652493524007660228872378090902134920685778502448099851518465505139433473940776103138921172642256700105938619148516710358920962261015867132247161799280235121802725949201462944208185242526379048066857787345753069011488120644029749910672232408349403448472170473972164190396694869466230173943617816839094490157280680505939948574944969719830179657673882942571448453098258604668837899198949502688538050319314445535786073467350508198219503359812617383925242131652048641686020371416366791230197329588894575096084220211048204668130270070383871059008611259717533427386474362515863916018673379540033857395961809793860317474426371327438271257284045835087702970222333305676905509167019856566396960796560932651023757447478352545978869496647372414378026834758940395021437151981745268842744398344832109773085803311308111925438434090180485408770754759268583447404911726367709710815602463383312655804629261839407363180580493691204679649769341767077584076758540367058205871170611878373606955548016856844455679853506797149449871872963407964159482513732648678901669583748768278983208603009208249354932870878736836832370935942355375518132680772161562523100076113216368929292169199192474359412154312585573323478674530003035730883444158731103094590553460977148913590268199384405255097314715917206518823011287529260086694757309758016111255445173907976546344470613220131121131330385006610098432537685920240413608763344191530823592763858124842526067833496395377216132705935228766705698347244473551445936782986583571153452496859410148835017578240626866015902866066016564134960528587511083877122067181765128053360914111293830465360939406745630431878255806590962180833203905514568708743206417182338296971133332624771904387811423676695878112098263736827248080925803398130999125600757315116393961114031448216388243678340171468909053478725294372820968181303987174956434331777570826269055720876155305386110374225726183770103203983888599763019840005872626936252126590722364237619833303262926263297516826797640285439708663137394787201498616993429133689072586918303294179744531513791802772031440090080279899452060158700438487895602888100092234385755688991078621145661628890500220844585768348764489403667437682791607308215793332135526957103383357972782221678558510147322683351742040715157378775997554820341233189280688156302987162692270118743806268507594765296498415420628562395839444824155154765806581917448047962531636373546817060715930037577723042992881783208917991567238031391088838044626027736839178473214016240615037570916547592432695953382959456316284156042127228797551259267961090684452647826244491109044003179529001216483373143027539791101598956158049926018301804442414506131573710604807656673987852533566751269424166669169846179372833266404543485759769293542021110177040715946192177498615494876103485883423859911408533842644431330158365261132170201923965395491218118350888044481527885341069189662278963871062862802208445194276819369200493624060200604045430764032427937087277689421846240415724646011957399015128819215822086689031135363773881875299194385689068872180853712495198500059236416695911928838258516417034088705699388338736825196807863513892467951592271544503543186954631099373208294504022640878403492422183162272896772434626333608801641955300252151025964823819230621430325973696274782400380118394301561933266365253999011106567313825920837444396502070946393112728855101532341051210710342859448928573866802161617611034758596719966721865493208839439883083292082073524454523324629828562267950440569328460795550478618927519475510993816932265713982297581177889380180666765714576993561947931294228228390988023285874782962169518424794730978933753880018703252267563970948641613502876661193470794679984535547981773629255881488583607523244299463224680393662787414269761491662354836539141048087682236369547088347937003143203493072875332396004770037201189557160865059623904005016273471604127958427904807385354055908180096673596276056849568197811112236111859890747364601975646258022479752527989044646141109777885455217546692007730997442332051600378156605334110390063343273630760420605254457833731518681070463067123519715927852375087334281129334372696326003079105579141185693336744981188142357697084497920924511939614628258002973865318215268804558240118848255255353531543101291965432172090421682830459616949667982350347100505615985642214112482748156183205365948025682068555105635276059037205677105906548131469222087951810242886109660407897830881462971137578390109067513391923503538590160924579635184015673173206923416483086848225095979175366437065231915661838647750360332293820096784746523938414709415084325898733274333931282037622422656290348333916365869698791681892797696424876462207079341660397259795926089204160805216786684524898219325528675159510787682678781878937149227387596510156163560156401059896558327560900762328109236220562829364738060936959272822678473363911202780867491626704854656458615733555794156484469905983928057480868392889126730691992358587620143176083512518193604733144474250784533149724728756581841180169925117187012028634952246339924426977882399294680643833451926704313080819209487034900792823590618826023512540821172761379960964525872881517531471020050092621162988558667562383002177895939125047385324379548543681923512846710607299141161986427280073885826787381349646588442348851629044301722717791477334039147683219305205352936505540351110822205241304051353633000824948557124204289769607161060250224078151839702134226222837790371464373471316038158972086312479108820136945212879443676911595801310725660768721757994859855133409233346853774638241515746049312054341545975747349408677197798684190400883882126169143274260706942271847615139491604631041188179633459909679702028662568766304435402139886116692175543214853621005411081596080507918361140549700318528119801912199619096053192555739621883827196422484554430624261964431415953095392937620433655511606956413533269291928988917738695316181710378466851726889146567373674402032863383585182928913376830811706871577744242271437534129840379100681487155759375534405869973696065509671145205909878434983638539437424709992704138756464457079269364271266522569640482659566168590485254266291663949880458763345503450005559453752286272619439160264745649816361847317642525528607243408803920010370964322248904318119085992253878631911232971673855854747926224814335298032377072849122525091555471492726487831513408008113085097570671638276085490144642747645986759251957249535962775978380742128679584914545260639423071210555157662495184946197756808435839453454499708531207721435668435440963577716781668385789353471270091913434831393284042312444869633945651757793309537595399812240951470738581351539020731880770930547571800099767352863108831585268362709850269808904318183561354729320017966923260264050591234401262913429725202484882367630394364344272935204301493540888262657219341564352571498078192432379209428083275192991497248584435003254237323309773395982336691940161748117529049969143938260450709021940035400241927173772156651724234436164863091068245182585308489737011629500970817222293252420752739469764714588819646148072350882691109656858073158636136517254020219424192939609145597434895661586138444020188768283113937820096348586706403616699395505602879367746132568568220177008819020588030433653834768814386730351247641752552626920585868805839482070123191311441921945328985972663615132216075819066712391450928186160304007241114247720223573193598268333875321153991275601105377044600755367213536148076576235317585012919181072034676249865322978372614426268781109382881721743499240215256813441100786576300726604236448981534035926241100041292615533719483176064668639820992281230685346693687370499817960679089624038666294457656779768242029502827493494737105810544259429890559226454139157544797958568433288173745490340261080550875318237087182158348784159550279582708725319364682387291401822287760382536858514426577773508157302795402580417972321418933266714100688785456980828856768157851422551149699994510412153359703818780588394281692339096174584811203171726865007148025954804534801255991189787687921275249429260927276591499498409012382418021661774006161237036111415848024773375245603143742105757833119249261078843244006541052032319523816918138360102498318955572950419209293155054177882560469602911528862195887483591749029748274205188107702942611222908229205718894754607864100933816626966649293917553456231336441279582513895586996015865720659436713407868252238990688361780839442586550622522510900287911665721598959643279798403869164415578482465458043853780940117496117212331902042354393951072531408887868750330896846935298002568479281096713696826082724328021336901496603854819018072822700794722221350156373511185973777499467774977510674319053912373919350223516945258330004771147136867500243491699987205486186402744979054550421333364240307019438674242784034203822209372545431024046547243149507325689652534758304705572006914243300447274271183881088533724683956438861885822189765393336937477658465154883964328632558135965166110065974115812865584820699722571770472452084885042531190256946045631162774803232629604449390495988749788877506023230260759712846124990657340669419149090551519051228508056774469857747065089835854318729223805897459055622026549120519731224184251501385398626982693598731230674440660248789138067742704452457685834476162085606899788743990963926680621421000236247952401115841518209222883094141828504296019796676821277177490193165204601679089309045135489182631378031770622842350361587854129824277426903754614226143477488359670662770340102264879276732138174036369391587408895543830887431225409772876233420396762653081535203552311405561092638870198906136690048501155294948901892513180637193360614625938524548593443508629304979462224541416696658816608753136826394008915845212265880167102639034747101051321030303728791672700182002459348419241857749570010527872747604776310117675702864211752028910322810163480930755171150914526749145898012437985057543373693726081678316786225907027325686790486263521755332995003832285269722747982091178074890704118074253310754719538226620579666811496574567456550222240042362514184978006929309320082784815016417393817313603936283722586503258986896168463901334236407045527317333768542373889729371048812624379854463284750632451709888492188908911290604110737292598371733745641982483764272872832472216093881522247279489170096381317344450065669507476077050169586332344941740754314251933663734203559658345563853836835545149026941798743058785183256637049113738242546467002245697474030476548072931798549766029982121357434837462539568067151070070665694818896610831506453381246228386081226751658466039581276295978632035465844806359224516300560246670024629566154911359675721893900879535695169663566438257492785491582819225783399162904592757058368702154400866255382461379332794007258774504460416851936607830010442874839143132211084017713309424454694630049759100319841923248136982559977712826663425015154657264654614523426889944361463058179831493684988966398141466462848288727689890424329907948418514967101819243742930183899496753770110193057637498228683898339838054079467862980970979339277590551237424617649357511629273217114932432362367597759153194868177739268454836470755260717742375844499344096450568590289665086648074466000934812828173918521982300531450741300898935901518309837264762724100006652483832226284166008151795477017009620609909421162299479842773149274881420597880635261757182505526025824676166704411478436888474751954944427181708534684314871310267420689842395558603500198580644933946837391372384577378501935704143928668164613152222842556251312139973770632425957359603012651328152276574169338756054349291114683117011977239400917863396406244866933855287672222519279396784489845575291933697763811480182585681230047007913962765335981403423567808024417325242790344556502190853631080704822920128505501844083263029026379068772050272857664615852605416389500189998363249564247809522471481187245840788283453257028101971542752763639284863986434306478613988442081613486122730174754748193956441000693778178845430683931372734519535330527284117444213347484221796522791300991336070597671920552991402264899869911824285215565650488282817543746965502193695538673986978269870577717823332846962870033634410304784985760038321181861243148875739512961473358220214684271453680676831506070194957542919091425486052139757554556331273386235550494752574683982921217488885536904782566703786963677239704420397321141215734463611579082409745850598275303368197573412748234693977029224926492134963393693552354592422990663019191728889048469591263506353899436675445121205218083450260000806999863831989435446517248251459889746576652938063347637962999333164831306045676259778195657093931659363371392126242544357347240372740478332806941540700801537003985865539064141476383930162138559759300291647061473798842943075857870773094062813299314275644979670733965413995171279874492228063961756606186237077686806931805405166840764590067910910060491405455247108395517549591551452882749378444518669780897988296865784637024652778550027101261918311454170460085810664073981448390548806380702930077723116895477682789922947000825147211759973830892698358613572324332602380981145461012566035155979210972443944015579796418868396878226484992995987823842734611825361858591398951849818305855558022947006400807087600051162202169112674062561835686775498690521339895214971341696932203923724450408412295125887452164217178767933728205027034996759717776135351596654301360517749980458908220458246479380980974548836717110820075778696259548229503372937609814913092841881238997970972511740759557776248421250750700596105220496100857047741430554592636941574124804530336505645576937263587192184516862909262533423609246818145511442755019823590658667816123236560213024105815675640070337416711077526169056103738620224974815062011888213428698597437973878701006746035999196360228943907027437004548793425512416805893387363202662428785889565689424021471293326731774998319593325425458091580463542873061700658788256663118282146343020998444506752662145278506836025110412121313364947782542755133842110230687922957242618558702288288439958226705883998339739611924387667779995910026798972500239935414335367208045794529068966625458047324462288275612068431257437578343666096433412978702489992121169373997341104830221345750156426253749510899131642178929060022005328591687833224330957780263954481294515350655481058867673688788148290641400659137388557705474916783936254840357422504798397566398958741099193459742465526644288865267224372349008039732729332385596829647982775774504745415503469641953155428005329583012386195719636966296810047499409949228495814193734664731268039473700257559390058337313159164156126466266930577641910376608319681725340057551599141301946376088099870752133340030822559783240044878675394414087886764219353705688397142258610697737339482071956007010900988414109932144619048469427613146644999841357320744314440228284308629609934486709747389518631546516534449544255773025090404250762808711115169867968133734276171461253916255852253984440380726721976841612467815686363179619489254164243296418889977682073221562573522183182844606640685647419709731301106295525716378718979721108421329790516780942928146474738865191647435016330254936994822958436233071709545061542342810525919148624520525066382796705790700005638466445423217825322556871489639311608622543457139257638921304897072388706771033737047618610857005492470848236360349714928495842962955525059308436439744983872216991134454723235575760394149506349302388978217442463789544166809601782756373626464633193244323058055328239049588710150625365825236339434715859670668616339035792066220414381839856559056938902858970802431640232065632000832128094662725224911587243601960827895861196114091188527015493207596493862698280871702108639860462869062310534329681809416832726377946158280002335822581467170333968585257711716205869526703182037104042970898598418954800111285643397720409124674697063941602480931341217433656361899773484372629449003819501132554098825584819607555948359697024860888544835908762747117023040416819217079557026998790874004571621446669576384472119786016749088692374472910416436338390428059467571784165087907130487482099400129624321213945061624825396882836247371429504458290823661962534078887166093060862199529751064328070887248749992462932418994149752905809000246239859888725080205510376047156259999915526911980706812509519177611984291750394759416346051137063429515674429921843110265057356978230924565647398716973672541298219523455627242788883746441292158725676419780764300031636165534648153701187935639675281959616217200296534443298830910918278146918933597217563983185245334158744576432646120982761419335570536226098801853207333286582753120535558902068132447617954870184496507267730753617840657514909847127760577381956324401650699839663130261410646691908919848925772056309789838262505244381564751178571141367176980957964375207530252290578744153972945086288020983597414410180228823221359167114200441476757164958329089858094288027955654402971988855391894937846054273931734270192564043293049851492519582028318483968614888212130561404778681401464456123274980450611009187112706545345898887489071229473436283190586158612558651929502008773888047595739308068701389826958082056908419392509398033810563292562769358671185193686613786613351521528328961446137648499475105336719272026963424546703839672457836057885783602811961878066814997894032780601585375327221060542163267843350341691745312277466587669886990043368588031556087939585833089336732938699745843446110716973066949502912388133070526356406484542967710018770755454016174962466857870282198630675706233113300709490620829373119981997564299936774916612019662592864307620373635680083549422453351551148015039987875249450668233765695821782957936335849566520963208423634517535092187475059947415520510204619853163400346253760842392698855344625864548276145957078536595314974649949433845041529960041646085969276495539244097785309256282513387553912469208755627046412137097862343242233021882900968806178515659701591274884046040086809391817370637914431837960167481783521083664116251291668114443166689458933993746123002140440376596772136083422359592544174217294148247585486290669127240923739252331864527778081351407584699873251871536205659776280403477781885530383265512602761924030191636789543062782412349522956286295893672583805756667107936622383686685007503428961451353744413369434562895410427274003483415563895302144058395519414700568208220960092617429560541610187404229386382959618685099721441152053155450038694628811142822867170421086033325269359849241669200006331264157810924968362966291797868551137749455513761934461077510656149086096823980106829613639702892651018465053888510324101547489281757409840604234272227800387514370724001270461802837912316768985704702281667757719837639935303472603657952765722378668076045043394849811735265661244408588007272392371796189955356458847648230342256715426865501777363412561242147236011317245486151128101001908859337633610756881861081812050293834158465610168604570857442090235357459385769597794826098403361647242786598758366954346674313212994264980255523133599242729175317820220856691241020213979416415434242878758230061945841060651562977040500989517934645514335855809281401526133571915462146476195446355216151415851620561563040284193025815861386889449072385433322491407973601722525710861982120559339209549792356966479670598176476254784273157571869155898790967736366865008050876788797285454764315346338280182105816885584058577540213478660965965449701607646993290405702049503969181535970218246191401786952105722173810837610360160104486696855122631836396071644643367349391246279983317584272060149778452111958877494959548468834162283427674141569504685028887940190166801608837981712297160463666154784031084441726583601693957072567020010316449579946548330423115344890944233823371136997583527218266298298771048295846522476125244047303372450074812409197842617003690637130553838258872300700558597598272610167417165539419055211568513740781679605386631452873600710922410710932219791385992159652150289010067473558331745089641478080740192874689547185718033544979287387781437024575422887073880004184154581616804144349340593552082905235400871994727666193865333854326182897003553165246809008136789993209953090664625149660310653224318555063458434404604211872629471211657661519540173544062486163536310901184659302396261631248180717294171914859033867067776151302885302323156906818370930960253673795841479065081978953687054724646847585503224761395951275030772647539039408399510020420709100391904634214497530026305675334729516401902884505177603809195013047929374644033868282164019618679771257960721976366271388008118325993318231380712570204554697568286627088787927544551022816510693415064894891744690272866097989877124434129940213332627931118133190093107510065415152306167048188700753000066395075926060080026358031109921391496308642468121916153104289821648946320554290020672677080207330832975084170662400204656785680536941084564589815132766356544619300613421030745123852114231251332699676818788089984172707161384092305203066263495491123173177635704023148437875658250601845161864610849096804590758771588193053297605746794267072248257295266426598938181350672202130918876986801554375241443184009683714342787727184176645205370580970860128450991892298606891581452648075693755331011547453541318387384371470259050807381268990929246962951410789751705369568029215047593814824461687917345955467819381335395755850055363626809613427645703221392987740129575830168872957542484818703796860415342851920614775105285174108673699009953252774500608200269946506877444153155237160940470810602274732602975548629084143670936168843546638653140792661825475875293005138834425521973495075760875234754017457054224981209609419272331744986421327346424490099474161806646548612293404806555051674895239226468547698682598854153754314726499925436088458152016065223760862352931545565333617409015586653366684548820349560174617744907976822633643681626051994982145490390069702276832332473363867078725123348088472212818556056893630073027406321409203349098487707437541354550662877409406134362908562134567349826879209672248130342394707140669481325571165851472361023388467170094913412690846062771812559109251717307804038478671284549836678500027002136574141087095977471754156247465406987915606195097060382965693409374276119433539703678093782211765765545532256612585772159266349618638851588139178128389663034305857741733377671333378417338795927905272623888885828208464452259361616512238534244317168091880828654312905050915377048478779721224957544292617694497585389870877154749727603559990660626759950765890628268974851340543012790933376725004670063726251836084569815443733594414355520230149785662882992787612216276711380480509572295347317242730814728752779101752381215787734959765670417245912284875484836779714339421672421833759438625219166125290890883981231562905708721411888606504372555903970837520816681151077735310832175844248929606123523188306464037271529334072065566963581286797257006707580329629059350953666747457287132075066524596580858124787833113797380610158856182425520558201109783218779566967644161829068695624637826649696574736648628857512506963351929320668777936713190420178457360109770949419540342477223465903245520866495911155064911535634484817607581875193261912563148456943542047990276602772857466884488516783676217297517505427414576443464529923145363130103182184606747473859841276741400075891629950537632119188468509955010857134160512816431299691254071958611811252183547492829806817027073764423611910125496013998204891299583353827060812707240923448989148011934002046218244323776898337533710627748856415847138245592013547868932041742162556069971646343984099772400877258391094285355997732736612402774317223110248151922183577747476456467884588808572477909908735812883529439243148334147737436762781965955224682794237830074731942719249981505140563509987165055328283291632284844456706315905705580306270560077399251081537847321173482307456050793195504008753618082713032927643969537210148568712100961886928925637154792899092516774945152112502019848020302978430821273870537313272044121389917374358740097291280729231330813609339039413431273784705957346987435843795201700776954881356033188404873171940517079260510599401648598742339961728869063123542808353589074789296433387060067107420825440633368334269080722904813894552576918194953540994442469648556572426080790059124336981118106372208591292877930392570487116753892059902248694121148924543694376092107902267350798140958505806995591649601968623176977233033611730223045436815591639317227853091380091767309276806231954245563897045717329676212256824045491135385825071418265724743453440655027150040035109193638697420463506439732663873665844199530950732246444111695351012588259856911658651616026718988282386092156754088347104874346852928846870340667368438997859192345425761269772273376685563442536319219476400262987811773882405818010695198020157857073817174433612796696780208753364918838335461087731723164324181376020802849038629220540274005467288052185395401912170772853342515891609253415416852633591769673674032269660335506020711610380372687269143775883420952781627258813057446365270704276268761685265697854182940061391514705596357416775274064471747989369136770185061229976789105922988810072001670532937005132928619404676153460419850440243236759406432566898779141770242747582525298823190665212394699417454695472386303021906587316425007237899732332941608778577590140619363605022433442288467574090719247450389403369169051672517872649550709814989751309443043851972825437346471071319410375223406632273019290247042370179961708740528175168556361348389827464689317883879595004635058573729994009367073563237071013243474591358181574031987689579429373277382842982343998726905974324621535479888057825474459899313105569788382870026348193422979237153209715964001365525509473840163074036989747113835336219463667494387437520770571826710620498167058223881839288294016067660219380217004832981810179952197154769073629953160138150228087076888853020910452155870488614285358928287332768987417823761221840970922044013555796366885599036444291067738770884596872756640796741640959592387771930639608209565797851617499117751928937546220557864418416457273836025736147680142594476607818466577215875974193294137533290277147575503031596577847027309596570693885771505651671068146930263494634874236114331324330744635296412684240026739924189172371047162033728954672206657715953291736043379096132785503253618684201088618853671216576441735307818301728156111191795641270379822338048671765127127900182539306858912413266242462722244632556612806342968587763843502679792496291734763622665189241160867090215297503312040996426657094727382782066344432857705384245058087502225361985825850076922779503150436074313910182752295159063969842036735532438036423751697846545736533083560397804159569498056220575064627993059511550659124856029765824473645840509365796039248945060401954667905611880442275979411617409950962647309058927283342348476398676724688806264195832837607367005158490171725389724509852487122095572352658162129015495696515288548496694402462616479729823798466360549593211444632100597665501786855370787284535496821586156563759444606591805728760240629869519725637207650374349177498937407199209442977351876455142542184602925794920581955638236265490056859247538763635601217593940518219221661666549164701803280593167481563445122966572088896972971735399086167830060452264407229510512932567888401011726241565409689410662145882105422415118305103666720575401699170230066666765100729768475895774794038295068110545561435227357028555094942776074228824508627183657593132394996973997751628488203941654054165038598551190830227972864082433201709208607370460213495258947963963783364247751171066628675298918285914940034570895673788682302845871166796253478849831306152524288520220390067568039824829046619548336455448199275704367461363846730948371102453980957227182703758365803290650756250654788578062825021502099546418516277361763384570786196834881624353209776597009648527466499218393321483905724536144660612982012131467873078518025873207061644379041406383954376789905583500936869389172267581998624957978743862022725321038941655106662629921447203124674410471086060900484094833670179786896893847002870225151387378783260279472068658885110205149006358742289193719586317019990678186409278363841435750774088326922633100460741565464314732652744566410891802383329498464019023249665283042036711330780731344225094777712411505587076686396036935579958249787793771051352589479512196316947895848621174476595115493530396881848075323032831919666519104103066488644002664148113955233720166823170549189477881146351078874155581452934623786674133856490145616080425777021448923189886763725248075703901270199614201605225981924650574788232507792141263533510232344736634107914848033828541264657851792669317402463869868216663052466298225884956929838229175515740577737966193371364104797145642451417693620507110047482989892074547010243341599887454479149412010371590975683652040583574992896848326103292460553107884132983556811041832779935143764667597503587546632347877504732330069169485428496422822775679007951711973307997346115514068157487590796527175000981606247574940492713637047997313046760355510963623402184732554273213517722941754648787673541147440609013905717211033838359346522144037655560061866609022754628676194348501681472018162866279420360908973648797337577899329352488558237874902473778714760600882811154363738697331691614899963588247680353719889442829374912466094973141344127836808200697149421736562303430703294203901181389060188620731863520831033437803008867095120323412350136033678639517400926104504996799442290657763913246569445798973352972835666440383109542328851445030668214365338997530830113394281120547269528555025353796840635065785168680158770374346668794333595982465218708719642192201469322601570463334886492897585678701458726307782488734265704135450068397060750638194693986683975686796745490566289963036800226614889629559493619153346116293425216708793939666801016812567386222648755911465267984271797867335707966360001232634926466078977940927657588698417069938718504626447681573119294961957674499153278174231983268412168746315114990161438702098033971556755082465133923054924013254101755974504320863813389141312803286292708160178643140649006652720434828200263364521876119087514444744638096410900189428143616227099043064462084185138654077938024090244359866912070744959535448810938161945399653316938924873891928466154161655703732160089245634179505416560486047501327467441636075932558841451922149743827240705005262703085638262053932146705820464878164733949557191252901583482962530126238971172954658304585894739909161584342680506351653533102925593760065915049431522082667214023265110373876063428735343072406126357825803253439177474909986755381786242048469691409142794450637485365571127011597546459306332038541368158543767512557798611544751550834793892352264272438474380265071080948188348718300342251717234135674711831168585197248383645388335313966100913060689836221194723509931419827100316030850887157446572819330400877225344236182440883896355509261797370971136655960278572252757577937937168301594502673136780199810863456474092373363302193001787214003736512492494926587224462419536411039935971823464553724127924966583077218071215771122424647825990089489746639585119903514569893691051109394256868167883284865539749425410127684577483521431444807961436991054699569036488230803870359463158561797815166372477241590401696047421064422056670956499793804321830796701253710851008827673943989065394417195692214829107473460853052799454487604983500453033077587000867639167747776922642833740122574853312073944235335692331506862584629474523213408221232702496818509991760183736134110038403781675268869938560676631349019035709920779067512671920509367691091386058548015435988785935187571313278254932093633952287822045106897593017702320809437540989128265109308653322963043163013149177497321425295058632933555094442092601626956647758952998023321802706032530181537937119610326362964733182985766725304602097568379913233837184957327207854405156168836297388479151492425450908479027699400738385211152160350026385258534013653298963695899993544782349540023004364777655900292933506025967181094413382965320672418675514674458578128046686897604192306257800990551307309499632902578190940949609347784440245756715916974834496253017196230361450083284631557887244802564553006252861237275333565709567203626380525632029961960774785387662706568369312827038034614882819523968808044203696256569442388063580408256802537752654709565743841491622476682637430845688936028159213468970425323854687034529268091681831989278714469684006750681916214492650132962088473623907792367598844061293344750456706575672658076887423864031667170471221364240383891554569418071941595343685741500706595733999144806482393935297891608472110473303563878630813594422793477800251225168997680902620698112072030986983024375696832713607060364218970783255208213018848906657587971052372274835987177611002169633354191735141795144846211951275930294471778771854796796482842486623655380723455133839024066322577246536465051291510811556796497767815238564882990166372771239182641163430555274252079638483670309827967849125920544149218101530996713164551040947730098479942472990134232723787138245878705932034341044887405199716069671347738731160915067185201733101620506797299424682818296790229174124841518730202075695528979235511636131416303010778458608579946567445874232791385485962477314274484302190734561483058975230199827107091402442497327316577457617419215702214808380184201318138884649763679749828595962131587275764044963886403416818533170752122769577583737450919698277917175359211405227454952979460418037952137018605388569641519341138018846148051486959397811615855006078963927786310236591742212559901831048012193795878253053689795349965260146838552513191782515457334528883309994907589734455152711009359158154010432304824848746301534935621360583443279302588040877795493866356242894129728981011500766603842825811379485159330956558561005145758990231463891301742470610390778978598445447303291664253425763052805353951189777243525602984255815849853454147120126798507550424374242419213039827908304505266779656333526910027422392744639246598680553051426827999611522229299277066647170519871524834248142916567765710409546354420461577161848738475548579173796316719425632598491703440492179358406961158559275251587103542941735413258956567824732073536477288593814555573261648864460004948722570892780659522876368992635883802487931653044002187077101517393352880548756725522201747355900481735906248252642473778670563832839682979751202376644879673721607977267207439301897542987205940891240764699467481920707826760727838977097148805981266267925346676690062748212120621740193568928837026084422224184069413772427639779704207409017428191904611245881981605127440036061226645814539211219697443751697478835149364501831757818437081369633314757058820513984851131690732464258465513378747642290834370076107035386000559462111774644019715601813584126832007679720606514343390501182036823019929012651450495546997951337318246664966067966193777047486413980056498957480156834652650313759432250548201602522281036788796743409960992165333696870965563162585516867643129401528510414374324899321433390679060957434740742223434339434349585439760159679177477811431038435490936021534465762246300509520452967418816449857257429298237951043525230387570693614696299264721674718182618046469795808241413484879161220592105388696885524040122916952383294996998558460151528244828982546021959928927737743850405417107669215219664795005752594251709963254312859698239934882263582815957340727716497366036960245591066675179563600577091859631442699375093847131661175961465574173234784514353630971555728438030209964467613251477542926714906220338168038402944935028309524797013634792064222030696182753438307156830208446373072640179651399771376473529008262871840229892397434908347611711757073191279644719747515983968400716194231968460689728175088882806521930134469588229940919848663342127255664941047060377407315603636264247739575960085728051022486594560285466841004281274678036738496279652501536653350621268691831393658261168701009332045522502195837603835542129319803232249952605696060139471140063073310146947718536121009036938648058004140961287977107499937431182026107442107653635146239120962311998631281357374371148902140327611288248821054367626103620208554279016761366009899114149972523508619849968028984030242506523104354019293695567367973693444479499392694857454600245128472490737415681858572612055468150695634805518761236160790922191603595892639896477760774834507820623686875894472895689317401737456039120589444105335274788203071802311269317568371839991283958594720834543648467902182234852759440392090030458140889909949556691303855293983806135868301092747418631233421508333793346280400928032323783624746745750890234990920524140500964277599374632027617969135049620643521678740032914844344552722998394800968699713037883262504873276419243597183453831654715336345653104722886593169762268418334780977649891731242291790221387533097396179487019004261008220501770048602740110583608932387581914660426034322599883020667043046729443398743702096443726470175356272061484474446665662882828628025887634355817871558016410270611099617089761210827451591495328080962954124257545027619402444831924461524344092128158799949743286609204927764293733433314458602954788360009611894898746642799448644827021639630342920627709021690526977969082703125084087522103143060759346518120269650168553429411610216493247499058571436738550191022615182855343602464661794328960380207577366465308567434163975134568827280196982030632278010800620966226279884551609163035701438143385681855190923058750143194688159172105146777119992775160419326751044103040689300716243782788010091432034655214917979604155274746163646466646346510018461925978066081383271143481921515587061611306029940442772556347945073072165177485414485779458597820792568541476939961206443658508745696092102857049492694830783612392480109178665780445867774039080842670074678059646451241209728670843169863356603870640876529211104723166729878857462713267666064927599759627013333233214108705873847614393683123765743912270512826623667717756902095887724254037530458619058777734401267990351122602294126333373049108046423723872981664381183713775007187552837738909592784425375870221614719782471833466953853751405746786710820072654928524348221701785785561686305668848795375016564588078464733208150395346714670679808275490388251981330959352341061242556045675275546334680905712340293768307980404300718776772063742675346579470432656645704533131513033772173758877773884851715439845590376928792999720309617421210169279855036414375825605419343260291173407812967931052795489269572086685114115732587938931743540084219281777305584492586335214401608805287173025320263306882814432368208050578255664693627457223797523646040719065240933529120877031851107947664868768693984742767822961450845059168737843516616319707915983718515876554017657487109333989833452622422578131088887666195132156909594447535269535304035712231159173955038025192407192105540943438765192837083691411745050193523393203434607570881673286429125571887507785736009087425184538820976705435608356992654775437559262054194596972755035356182237823787061791842223498328721747600791454335782690374890740666917154631682014481575713421269885116009179932110673601470233563080894654388926681054302477436588942430874232302666431296079375967878861763477454116071071680245232027928569206973166206622484103284166998037083921247001963418894682271835124778573727511839861174878706254216357440881018507938515922209093893037414397874149047174299240145039133905971913690333429551131297840155064246805916203730876213491504275994603559912547660851035538840471859715898923298919520250418735158245974470669727594196752736367278590096883519363337404950056323500974191219470044640351281327818631304872063693814277757965015929671973086745559876060465014445589435418783943095561005080943478665280118837266125166480988860072368122263365319333631764785934401804271278682569150992370523454953543128982861859523666185252697863897311779459545248635771607467082046212785510051916534903377732358381633263335940052141349619913913535847001828324376767993753871608140958509675489372234415963734678647065017933239831483713012349162082322786162398733816133795553410891192425141512900453950512361135646715714896483392082636888026075976966198806048345936914414129971656193070712620052912854346490907518766349511598778853485723735039899065957307937948969176075608331542267997257615203721969701810495231239213057919285018719752006968117750000725799227036198989382281317846976335843521754257502326571493646531826499265166026873712430689164445719438748843234017348956954911922494186366924542099065240012901938262296434895815543465617927078213959980222028272365682484687453926830045966361918569373483127650758452752107795509497251442132278146594729170259275674476893010266354604250825007308510123420179758785366195623453468214942458903511928643189446621905494688267846792070690734871877370034868388562435002778113222125187378258420198805763413934558347456447603018985009742649986665239647024345173919117714459322033319632801900939810297613955620536912703610578397919823006101420530381896477270052388981479302868653053927504105750413643251863675213106726064089986649257320243577090106079313221342758646636796171275625168049003465439246323721976293672253931600487354467857428496055966130465585139832170596914380291556160062905253693898887179028262302721396897886231435958671842816768844534186271411180091601280285226512307135345875333940893606917520618716498895457050813846231942340699484020142069103757201181942416129605710233589429233821221888412278257621468854005958913419381850897647418898040691166580936299198604769775578386118426311591953394400432640324610664599247983804352645010686608861656458695669722667657647196216480370839443100905268735807308215531031921957660614865120415872099817314469336817077214412499625804095385822855661633826626620669651319695203265454718454420678501093549522610772137577654863070685782986591710694583489000894803468205683028826926915290082133972708375072685376183920843279799058549484766363582580919959695842200579015205553506719016855038398022112437903262781907296279409729790113934406108086426330065025723506911739326966979119252146919182900374352250247374257747878980142723479771096501545961093519584072511113986210953872743878640763955222174808104751204876594480907965114639314590410493492696052003230969178101883084149757989937111626656988823564241954237631846377949425976671349400523424347975249314728780198434726338592399146040473586893089450483902206791126552173108010981069081450286788835211344619259378163465864868544141413615824715932099897963445555620509127341129728483882802550320331354472456858280644410040400078565660254721217607695329669514755962820838299314764228572089457017982511896829546290023587447076620211079566957526962259261392897114660272498736877588060129128106441857546327002517606431175508947481364503544337405286559808986381557343892401124741027315172365574820420410584067010727860088770995650118164498858220351566561123859980037543782248295349532307406956762536086156548516613991372242468836595590509549832339296776903031827675368973063320966702463233367209532603632596691733544132695984548626458458630942490742548486462755841278485477863514316805981889280213538363864663791686216660100065081820908137834923124694960123665401301040992314847029875046731390564915407634360028926748693626468650824349544825093963445565469476188400062137229036381165776955868609457283700793792284614745811810851017712168686944885134574876229815845822080603455923639534393654675569834947176306635787337787838423401586648634128558297117631278790172507746621935873583010984212517175166149864019931915885070865294909427286470514611757331190808927157041014218933408492110529185350884145297128987686013735648526284886518145633152044460576192410511507080172725114854674065034659456817420705833980442032385563308625278346950847010637101654016728066034663598551444919410919974752603608745095935217640712621406483346166462614585468829624780038308969838518806832722201941615969441530894058344646243973813512078364355733052967064710153419487734357931192457253276937399215501548948685154160023995431346782374323468707664285238923157838025130613488457464473346385481033142482856283923387431411037238289253707098211000827532687926327428959315633186559105229079564243817603682688518994856616418590404888698182423662806379504311662919467367347959662260530191078857241140718809816710306249709362195424720032025664911047420530439331627945053860837119054670077089561991493747411246576949950832540127589700335165801704436368874103338773785558685213194719090801135814829218035939151761424796341816802425277204502413479581307406024778590551194823849774366568533200565885909154395754119275225145281940432604959995795945035995732693310091196710021328200980464317009811486988529336497514742523597342217995879856044353785131255725401243016592808052663922542476295569987508647310917846083753632241101733395356892239068397964540579175768453441659773288321992443004665789088087686994034600168166073362372188512527571988781546796368554083816901402645550042796244351767222422596472921331483161252170025782406733108673004694867056640794661327216996377854838836531640180020826544001239601995759222366533164476053196258332036823322701509601495060858322020459602843107896278523031041993558344779754563281359398000823260999719194689934076722657808521544904990266939478778195685561957725460017622124457608173093428490953896230136807279148149218800061656621615554595186495535441893855432519111989023149183054770312425986248254320891994407053189141006565283692372211739017312167132934807673927650826890418990794333103859912376824513213124879402310574421850511475661845717348914011761412264904589091137231206472075290030549240150632509192410176233385538390014698470326171055046138321323117124056518567163282304421287970222699671519586595689860495274158474216032802462420758547418308902823112904569865329372458973537173714362596468308294736381431659030876658006618561307391103002748889990492897388972079865361904887413322949456791935281240859352135797800381742845848023724796069657792867842125806512582013298252017008742813943871981818198598853494300644303528639210890516285987055066495572907005017586849164924934132497781627288343634653538925107249218443179526405156502788647547166073606288204254615853337719444135850541814928310613748716227845034040491908178523916814779216629546037780337909261904181963344867635225837868483820989667213564331855818694589128637496624014632702211662123959951390323772449448517077172579863188819876286655161556836949161395971206678708139589852477479526333555181212709124264862711947808115479142980980012801533497730376029971445535636155767911306024429650478430824781562438776113762931319270903167033178148723190972237438854498743849170443994886867829953721010449106175240555601966417768788671855576727519706818513622039850317961530417160793681420126441586070903636016999101412044897263460019535090689130604955136225832556098682689775976728429845891325152702662942275770824411070753055259952990360208750958080853576109110752045101477553485832997969778787627086705371657359075819804287375902134513725989927394767150471666205862138088329336971825403561274264917798455895509485023248870359877360072939144556775642265598998557774580192639214874870188229738790513344450410455873916731368832677037955788536766507027021120196477499476235152194745939924203587431672058546556051513150119909178660746147591629759841159907488275479451665076851547004419348177424379541169856023903318479630153662073852737109938983857500345435418978459451862230493726139284185996655156869985624674652744862352888124545364201610807041269709294029432088927994112725434787660640685252700226290187269655734769601049735118528500418953188998154573025199028685687177386001353767558454151590720157848917872606343456399200432263230599447626209702611504190715121144461077215811752673750303752642165692109901603435200387339370423332640187038077763210917378906096161395753785165179932877866287468287766717388445366706068775687705803830897334196972653954267044010913393646089291901746064557640071849774155328532837531698540771308323549815448492577281368069474942809361878051231724990487227526793105856459000893161228766250218855484240522394806057129538843227524320441836995518623266192810794548123410939917249414917706682007154694024842313263549480787985094205418128907697245480067132500882238373356731546274251698233267759315393883397859229168634871244804940181981423407954511309505340909004526316529416667516058885584468443684994085428498894900544630995232486835157112196050460579084725104034223472960309590692100539702731294727248313596118594225535084398487316223944462355467036455147517850466241928460652632640676681439314481456515498284219505656035664138268377404299092224396357809843836521214954719370532680182077809498501360008514600946637534709500782511846524528572679818462653955150039225991990519233888450891003604019356921219922322140431917967829328767323604085115075783438180220452834391641693315435722186884774025785886496068426569240306057440164714478816846773677290336392112380198228534093444170565200994922603867743762225086541231380413414458341723653813833185640380236639056717080556241883841177364560485242190438816694457856729973821679928782730051357754620019895351384126241119020095306503111178118887315238745601263226904721296742816831800206062992477579144512590420679069763953713343149154988728784703320010570157175820486459021411888241783759414589965779963720200336206022723728427454717263299878876040395272511155138159687895679711827504190932192577440348631255510211091416912469265800903502110878801069191646536515283130925866966774148125049378474553568298762436188785025232805882845591369689206158858679193176776940113394441899658029156526674522625411251317924710402241309050012397736716519287313767909222724259856012198456315392170453013415869261664233873408454452289672982032954124403774151670655660307510599317430087501910841948180154931897462180461267951587540783438180086719492797837336231080081903434903631542634633961418965754776452844358773121106671710264270624117622432162221808815165720781006482281410399472311900607549759512311732136437200213406733389724045982062233477819538450401945815705940255811031055677299167719913197286376180475845267998664625453294400335370273136633343115349577396317960675819802902684093014355468933775956128146893688395963499863614587918801133245481850010754755691540151112434305885201317827130800404481971832263756130345938178847456774068695786085624814727941765091136193579777636500814510701498358573203870846387207643158243953149780868349368808545882555991550312627537115491925395013508404587979951337908315386019207615710220552697368764860669003902590009895336954570289881600579701207070643887723794342773895089581429105570959485073226555248770780807967278171998175567425511261340977161862012322596994531354714906783574688588523613389745687505329352950583789989649111310402596038889427630456485104299340505643148303217742988993894617440103043314518908726344695187395946051164590490213305078580884648581599883265768776212664930659820383580945713177702228658427537092375273245494966663402991376312765976489667577355633750686806737631649432152454241063677453859296160489393371814004981329083005866467916533482802270087317224646433710950085812147419411580954323191464411463489352172318079010419891710264973998374695228803938001484468052358219072429492601635638033312844183030584180561320167325405944038815315643955052865074127144633538499583786165102661056671055201128737930487312260938521283841086740498845322996728618432570278884228606253905954527838615638362481790157576059112956054763607272305177200867468772976463136741684388552499970492006271470982190082511790115773072327437453397214732172930648897709072053038088723766683592189240909910434258181799994615890723374184750322237932971476702518063788045942944219329943658102351980333052563210972213325218910818750135874636591024460608800317826657405752463450386749051500124160455853298859168163062751896815933520885745224947586430792280138297633238482793963728610840233153943142889387869011843592990517221565649137089579604576117739751954272075937573001718087724373137155301381745192864418435726464683291003041009376542960550560253748370211090487530542151405296962301864454946665309032732822588484731307799510931431002724475332902453800941739968995175287787336329906421043329305086251419164324308615729313397206194912646209675603355226734698199804268857513446564924020024974317963111801126029322135991007241731521349640758663407898428848392044660636431496440819315917206018257220384091404442918028638748397226344494860480635713546222436513429701200563219888655188696254694686753975851918820313454208491141382631265228072535178733198121497919626985290814962897672818368921289197512858039000987825819767294473078350312538528022874744005938982283503762162927788249355725848509624586262296534447123879684605277640100215149858451208878478594023014066587410951862424275019375360620951810971871345797821106833984514684591489399272899722717856776389305429148742685408758075247592182606659579010438578712845335633829719706434145662074040863925983922333883932791473407931770737635814737186554177719975976516581575081149040990854510038476088131900058896547713468311901573197933846169690783228507316306069101779183462699781180765838050492908688320560353422137284671879862443036637476004276808872019190728563909064481504970380021493300683281587346038360251726048542818968584561873056025854905812939978818411052709226192168879636125709395760045926868955765539586599655631537523903007118540467272323438020128895263615867292340015563128026702702256373847640249779794753083988037082062085845575170237505876741503115794471378528991649731845253377702075235751545565891525851232060077766810394482550459538862979739574898607640102314917831199278071287505290650890360419789752589070361399139775161234843567147414071639484849521051579455854513422108761750858989568330964715122357629378193769005545978319521856093928751101593726077812441112331702049389501452648225516225220654960515391030621974056578672309514351278022143792717666306891749622513438471349139908751906932690546137352068283372319859172139057276823512456026822737135191978529117429552292923235152814809145753785966253257075107514513795542025569925063605826810848753318974689357361450842672498352081222589183931514244046088332251188673538719440198258407360763025944206401048569086529087285065567786381230296028233346214131161155558071893321409455806586742747272111588961205080190206283392335311112479366955998806113344172862829594113657578575561171285253680371718218075501473823234258020951826964006295075643737084557943838967105178528118177790514453127849597178280212081636318629026284762619724769467939604658084955989022263627293251304441229026185586276498247480782548637211821737453393429294688935108901182282401156934644299631226612013426823343892080313580862179690610792877050450773671464795338972532722615864641661872509990088688078675898719719208105258479525150343470530457684227581680188743250549216677841301825529843966356829589304014514561437072948454451377451827653084010100626101462372271442916231253156790867792767268645748466868709176729249687508027047973572131867036636379603825825852463678712484117323525108338132959500282063342824196884787715492883647896209876750985908374265826563750939989411131991359233716010787696317703205326086776696605641479119611137223963821695536680565982817677279944989261394659413918415986731078629872604851478298811530658770726538606816595521364485929344140221372896189311575936647313948917992996942425219717986707408575867553588182431061831687106330670848219430382284985614841050111387276828684019998313756205547305689891915923233997079279380956562212394294732499457279278325464622455317764666428362534331752790857908126610792117135860991553749620714086211192545216841091611797348873228232053040843630088996908994259841867107357510692896169491922562076530412549060680240360704647145134816719405683729738437422964553567341398849506559977342212417777449419273599725852169885076884484720026764122983608348260298516132093002715036553883320513233352854615021657262695015682763158521367381876661517092840880369803706573438265826668216375799244145814734299020697681912397366520021649630323435587903219156087226257656607100687952285238608850576439388413450787546099723015779175282594366403774907736905967880516707023981813989223349875983486396764952249916607262926580725124995584938043939657089525185602549476388790440105889924269434274324177735931486825870417012691843423483123854895094774920647050892033018875113318265647205942833962134709815027270288963438706323222136462733986856261872101939126304672913451738743994227530267048223837348729783883510668971833399997229845341792676619556512144118403599739815472209179593985046788042931083169114070115672936122800494267210865755002196078864275927956023746185093315787716116496214956912015525861155656020888114670587473873665693172923886783084080582361521426046863513262826244839430315485059807130194217146578754404876085328707391005071599565319416172015839667545713042631437482543247649577242201286546780676141617574991559574468857798041244421640615284567464860480254374751234336754032925341107773663265506823761683938731251495910174682892131136006376467270403055847169231521483433141669683210456199722005579682583015179354323446144814404738081570485741567471501681038831773294595154585332631685203544910082005216539333360011289179899097337835247484034710042715643480322326557165799603554221314808814901937075251336032998741250232764882447198936579710227390935395365060562972640652332534008139051172851472439427823781180327705783676198401442400516402255112133390919991346645285384446827549992975168140408925308976068593668673256377976421950906649412097434850688286740494369846547306142279381441022036905477226309207562658814998774210496276243726521990562136656253001001941466142727497523198140000236621864469089152592267844797133874405072767656695082822610868409230764480217918015983181625256670434200943663711949450038097705203653026751456064039846852164454061115519426734641019005403505449231209518537166873295808189605786625243340260007180220795134260177496678556557436541712501018830070201476620723396294960880666453163845106092657089294957980487778666730102315554841210899735236554658290775412657632282632826249135587469071803442688973109577739518574914322128378855179625240714261957930627431574232253657247433202860201836718414541184714404183936323776379790904740095838627239342611783103799896839594719852351987791213109575969452057321635630279362732751583588687751399988144122327212530492505878732732808581452790062642957312479609986906049669642966716559491020784064499178032327298926142159605554645950408941238829833526028330723716340533840582032205310105263328769869938027284001705312362616748526739287467806576101120020996666220504046616250531352165070337339736538208326861777551652905648847051491427718694627233094193869056370168361002211747409969075754610793364528510556777461452996416602869064521724848379013470559251634216282289416526464106217476047400647089027433629109425339097114327137838370880414039296093753813073809436087024262596496859498914835089448698987725371643776581519239236289305034623267346196611282637703599942641825574792986826895063276078098697832318322506185626252085168814904151016017121942651110988676878254016766394895844519552173956019871612515859199369504920291265252934494534074086182162245036265880049473311411778813826021654372982402481274744922279753703460509435065441055936986039178956714025426094859918164515418758268817789933966271916417111547255787400060490083768047845388975285811128885655905710060870587566942581533409257549122960250129094274606066787727313203850000599752112922619099843017365122535295643476599248891212168183965056017309191252741974606043693950335988259239295200359747968183935255557141105064828565068710550378208532599125008453599402327236105879070826924801636581435156118169474928224818861397618671687433552438573614131178508929202428974073704897155326345816069322041691555662801972791649845076918237662666163340411326322169195906798470995412280988811456516686002089938073382363706621879064221112606522668055261274862107695134254922019895156509327397713242753183430664935407784170510863388497058325925977650769107159789527230713444682422077485651311824861487243736275500075844552182030645485169005714493316744802934163802432888911650244031035414680736656280637539754363779083525757608218634666787502425297013075204976688895249929051396217310310049080880036596382321725344561692750582174375876258707262907155458245531523166008962799827774834201213656913977560659790080092974905628752520669777722186239857085028489082298927729592537086041904176822876253197136811948814555389600755440731668216065015450192647810439024886729721000095596517251752314899704044748938050205508143815442347875580265189514328848673027856368927682251929238785884416680108879210986965794130943671734265086780192725534854502678559425595296947438124466014253330304186591034019278793369765024818049268757563500932922558758313252084716575902754117192333269073860442013564878025006150808516945892883006923170336586280400143513142998590125351747452947857115588058750869549572843420407442075043834227202491353115365561905568936358059104546790197262744669329254086819326856070188511663486530636162204558286430362690960501484335103818811528860396608987458715589368122882377928570666287141011685156287650327935167128294085690865349168531605308531254898928074914229373522934696447393089012152992214012877996504415752453413057475785478430184480948849657938809300897403073632480668530675131534195587870421208289887347685024702087738061931411537323672773368122210060316977058999039592090771292046653174611695340170286284369149443046052713051910453557221542980409138443684342347115554683689233897273472771475746694145502734510063284193653462492853831295264849098396450040931941964262077411295677546231755368078988702520974576496063948173751422113443673357595141898463752960836938195683993169191971030776040278730598265412877459904803951893241813070772066926842201628103752405634890833477966554688889208107834121293449829882335986611273807565064403158635958896760888307991862966423155832751092760179638759721628347687058520807639275766033922794843937143769407493869920136778364213997189659721944254544714355431827425866386903792079004497414533647067271805720929936834670253088266520343626839395034819619848067759863519052274960987776815367626144459801698583036315972620379190236798501547672568770625101083611771001701509085330120434504146337364784234574832817917772123571190463197322727231867093511296391554696320559294998090388285556599278743163594217712526300067033409080304723099441179574637457931025576614401024645960141824633709001658008317238442095127823555865699330860460154898229059898248113110160000983271702398208729411617920533087110046905829956919265015589213193328891015568984933883293837807288875803824619121975725939663894865371852250956034542224138794339123830581209554630542173735222209848811165685563021474393879907340916493738269579297155322237384279156409497757700025307805101110344675818542047798488491838639667254376214190534592227934835897055705610951680495108312328097289381789342582198085194540480113622529494755951638586844268321502852860779310678859968729944766489999629746343102369756294725658676007663512205267432066784477179914214624912732094765546744475946566567731426798040190543761406581499111159063617268520617278630272573922854141335015298178374155068734469578775472542212372359786291156766859340180861869782356608481090333428536218485360354179385087619120432113947314825584482514315261977037647961045619667901629157375373204550178618747206839823797622809521986957286764702265514832928646661099725138038719225334436825317220293968517231613561277114519633033757223344088673901186513976606323153537583887657757860403194159712372600463245771472524409088429504966070272695732850590137554580342544324936156928731508400890490494473478163012139324198040563113583178396091099039815332130825278789440316617230520427042110904898376682936572454121464172421280666889567305575299741490817159402086601555044143268510101294705237211055548622049547485810526735928216201300269951404388991812153184494606708065466146356739618754942749044708772971195837432543677574827548926991774643125649532968122719646645749403557860371658808863648796706291500029466013708132698325595692705902279898837163829850668189880828911086434050500077524553164979685755442169501784790628302763710880172981078393639556563985171198219491396959773090755740809559886762484195991914040739862974408615920730903174416763617490258667151022766456476043656927557370997934376287228022429325654998680813325884037525449087415963434386649911182886235585347763178943705100964499449982783007914278314186989891368277554668517325495619979092952043991036525133312405501748026997112472133154125812171802718267622838334757027440907998090798904018725834727085302826209185221675152782838953102550569375560634570153443665566144456578280503788634708783741458045159891681502834925067279772516017533197691978526983886425466846819708383897867397515949067041473792901517330113009133238507093898471377630194511782166811057931507409695302462867556243403390302560724468142288097378451106801211985810493138328731832769163446284845427194796623589587534970259778474005525802806601331410174064825769398125089053531801229312622128716375115439579596866204553586541366105951168312552331515439130663975915841220483838841156346949565491348350906742893664918903775278964764495181994810379357707499472283861325251161267931089149432661922971395723439443617840753610508638518147283027792400203105301661237826880770846272990203986470357855516061663750042271813087335497543635582362010878855192248051627773750201688219840832299171350691121234124731690096326533129819346355593393613904368886589378198887806759904312929984789093191383194150231809197201275927436655521159077238108120220799313453330397182100492326566709044177217383029224285078123481863858541174526163600079950474805855219877439057661752765212000249759976224569898724016530022534104128546862503228734782714109894924873940404071241045782928190908073215236374054627398441469269517253321249153231149333359224159679912307504944459063598713378844014527675848101489999297202061317928866395877825224505841705321474782922867076329698850873154294185368440813380780294955590860589583589633454356517615858658315023522334678851607201892050935196569847009293283604257780908497790439891950185864748457961649110375107843359807713011500138287780446774394593947060650174815121414576920838218095503586859649083630162754296435258621425791575061745130442452537057803250313272282895727410889284064168371244709793760296591839669687463919635462548556119347435527470330995731149653317267348898783414976895336347218637835814010612341012284755152777723988542853971050926124593915905098375378086073536849140604009088849949494033166280294372363959642578787194213443569541046538448088434839196309664366063624703778525602226038190002484070797724632355532474506146167044724960637692787922980222309203728116759913827308011274687195069282260562902539992102628455099090405620785234817633786089374651247848590610592316792933918451760775506214599913640587784738740723559117553137996459591540469514407681479363734771678202739095748154823493802596680897137986182378656153802383152076996647401216643512797536490666115885267433962142349033554436036465686501364931108827135938624740049663255091811220024492600790641104892400148070789671065489272545899361072017839219457948857750586949755836243916832274690498813516450809899026249913347220598454512974190471658141535240119552241208008774664275544475714180447946312502190662911330634730493636860096734082672779686154238754401142734170191513268370729161701883941655586214394138162120347667105044139530283380230878923621652189099527497425066732622691361770791551231013790972694682113855541372918259437512218602288143777134360912819501263555060981059482150017470535773682591817395959591305434575035859604476923938152275217337476644884739023347545331003298339713944631091456734025440865755293060474533945811203051078860116187625584556589376951000110378900642804751349223276925152938946702355686123441988550717644668889764731538213750094525126032517707091729674964408525128223323968580149117317767678361315871948577505741653480692861688941373527895623535230141333808170141572581586436684490115980891494916083610231350880875428986486316422789035071372923406357737061747831091013154278455770562649160200204321382946928660180343026388726069232166679330924463031659293634064733527774945674999299116878103762359931571324512662864627143158070654812166471265863159018584880957052271228969245147252610215282611112640822161707623325424707919660593582230186313963115173550097218767756816274196828217440937212501486339188736994404941522097773257331743517027616880479540958519583212799935671774102007892991947143353863968827165458914698945907989491252218870773105154861382825887705981746990477911744803416532315466593246464245905373390586785015226503792155338141881718986753940731172436613450202164241520771870325214882563609710205026593936269615570557558543596649744312589734377374492775399992957075570190302748700862482559174076359539965132835682289728070915186202706055259262871195040262985572553538404034391264463981064022386563316936854049748737000519240439554805773722485875503816831841512737471866423334670370529564885820057255802990587888321566988706436456078050262704775579781488766727426663471655258414785573326770390911725067286973787352975627178928343208031731077988796530024909629698970251190904906621913194432403927310341611343942447277366882314203591446483448467083864763104013135773321323594903626349561876230483662993132094009774223361390739575232399126770991271587980811347968419416810021036844993943938442490644213551763201736257363201676400657869147638686596500038840294826858407665994850529079003346828007482157932503160334025543730982992941118556266638042292048677274463979625104240429480621047832087038293941615693017695736089277037120605375703892068728573724981176882599912575640959742088140135054554810085952250755980937746676799070227123889843791122125302253126190264475254177182172788864758140845065011585588873493183385711282828434782343271830673338977891780059702710001394549368530600852169860030626900251497835630389508138201909139627325256798724420744137225112237299666617330857579939814957090217389024023812658088955634000956153316349417756203547790887630319528079639046116731025147351286007717520056160650490736437245089121560489017229957893640731635993747500176029516651369418118361539797592692339232476747364648540698134178169559427395567521935467511712664020938344408399063110469867521799078052521941114744210168643905050734038965099312882363818298874563520840268063891867368998396765688325425197473220288562096772550643342324265367218346099415676069197467750086804841851871623620796767876000281169060874672398629455148330517943516904107350747011202278466421200525680124965741080125685202697953023668944452694116607758234470969857080044520759949193397534671748590129785162171514402054593088782667048246171656293541924785539576405814406165560915056845696858216429758293511093914578662011700353982321656697900746110308636882616169761581779026409594466924791507251410997435873132769356670585730130189083899459979685309467710133296988241862333682270812491466146775657987270019012904227201955889806252719147726266496188712217450918702474464296306387277586894156634641460347576425477399242212597816375336162733071432993746302839631882555162344739283453844809020054102700149525338598100731647438964130552369168525175555019760009497130434094116998595575307917675881430281819843993057570564362994110670559572524810652058798366035991664368101632357068851334972500933697239535927070972500271921154469722833692480440008314182522331548408603808210993899286412340213018640827794118087771442551034987199058821390391522180450235414851180124128663353478238853615782882447630192388075976383824449456890868755508474675284388279840893405044527128379366275685348161131110937269920842679592433533696218482259695510584724359406862455888034004186583052419346343113241893658777686354642465952890769264381970882779236188884543925931573868052150981849878983683509264856019055105268381293466990827602052643847276238599694020669007839783231440464338721482874547780829388605240926359264865036202527990373075865439490128900234418271134550264318009877564670879550234512636931671871533191175993840619111802970598604572155739227542069752962115879839557406706209010027258202826651734734675367497404796233219888716413022368591754543876714659672675011927369280283583063438361983223006741809740670363511212559334598163019915137675394427093747204896822889367348401832657137051049031640431497933371989603066044292913349524735565264659846453842269491102884435331201417031314610339523926397085169610369470647801437060665058188216621016117397346080582972792285642312909698352755751993152471910153924488786660695325454055425565439873224331665122923308300811083495446436621734359230364876692228949001834738990473358840704028862499954084887545617858805158242792353256003558950578986178872451681818587532215554366076705068594011837571969715394965233124201993542778747463370722076064875207584948473133725669489770827936043943275680670712859426334058551765558134578058042105153822747136909351847938769159306182408159573260528672979458278361876638779346527142431799749316627554717299457817472701622382255645340923197754177424572058458956033957845265607937888003708446145305346836311394787245532687268652485939859372767925892073674989007678202466007540656958894326567707801578038412971269877703385953525936023905581812674529557900429566567970650201318182041231853983765204691211429860524810265506439346103241249792148983425467250473543907720569427996313703857268067216134212148810484965606917593811046232787804339605484581411336575559257382485004346500830842627507470603277024603040595262154689674632582877730263074589638696957544853536929401823974329750668954562908746088915311469423756041199803286738685831308916699056809767885071025105077966455678617515564589922684914594049124373739545143461926372972893344223913906285425810722330631220594843276481384684214437829736604714985205570269493416638063547720861044506223106616573243266569280984605577672722925055968417995563175446622706922089539295676012018714082587442909471845796530458481320551574903605961020676607901590540544054338999362833367283362271056694044920017274163734686311349148487372005060478097062929719131113161489409451629009728008358275813387114421092476244366468003208485025384502784536492999512106978912048763887807644956920597404620248889754302839309066607967816730613407260473220723632217078342790738027472061549826763340469557964569800246754476444409833518756097789976398609829676072560880989082326261636843790277757433532236127014677395548640983110894869685668246124994159681594365971540246850440397061577652506870971533424730797802422680045903375228979577821428651743651818964349949449168214266017735979300934149552092045111666389458712874887914390682734511712044038389139071698953737602311536168234222980840068247379992654798637961496476260793872697835166341677655848491152740012038727325515397657988733038964669923248303920934924242017333503119331265198244427950144329441547925313989132928809334301287193102906072229489510210315796516124782147388702551289734367639766789213680974749309708494536381579267864686475334078615352187969242401502568031869806712058807017762060085182177755346739040839121035675092172485549533584256827882969025216434654233204815113214652496239353780075131933102606646834519925296931032973181171499703996275846678520742756409213049241568727610216066854820999934687208427966507268292970620018318005733220078901394048604708215964120824205399636463096776050829132296043393331939356411642387990807943448448902726811438878256638371859570201290399535384156981282178071508659189273362271798459516473399618051497264514906983899810980214546526224964193110559612313567184395995780667210719316670419163637437224650119328399434266499235976438141985776865115196627294741771095519257044656221613457251178698679925391597133005611329501940253224764226172895959968756378581739681272254651213667908925742371038542234985528521978825824203058973110686883429841125652769255563354328276504279584248108130902484604480512596780558163863083886616747205167463613626246532116136934953592082928420359664822555798955622315893254744767463609142593203619001290292920587464562789599823560286274008543374794639836384575001723488932594387074719888865538766189977115911606760681438870965098176151036855972590538994908026542766102749595422775791380644618637377335783027778560219095750059501914711655402108669291717915432332499211227876234398564013345408378915515348752609117333274627898345544160329081895920787869119213098386433154136071945150224497077630461528929438257445704669090167716164204685236740059346520946278397300201433053954223073935802508347685778136008162854696956346059798496940194844146412020856869561376590392472217716406301154432614678475026893289070127590693739655150422696133744812211932327323428492280900784324197987858549697721667100850187270853190112592407065757354311704361501103882031839638711734125532879698993407295071286733038862380352457234861197783384284708740293557743619074511724505462500409590216494491978372799297242311417175568752180105206973684483222841608449377686533177174180098959521855441946568534957034140761143723213414127639505455668463827231598814083761264083859865644247703870777583126337473412064600173570726028372141981242353815211227467796742586850760740780577173095897234196835464760915956391516014557860341479733192528558842623106226391569880426397923020252886799627208275616827056665276823201946999512773195297981895770054577092644269362398599957518648726431033444600605364590244184391777915112987923039709648258554027680831178292000538785954515430667268570467747697126359938744802726663509499782254016835406461931499081163549965264761402958934968393075388266160993123319742783615171704332341156627183351927536830730280438042474223989666830905270213709138284092219699541039987560376037893335855588585967428537650490825061650097576082499084628919551947984195749527113512340785936483540393184144962159354912110463158084675129040558122239229691515337475448045826064651740784637876998112532731793962034104978261289478325617019241748783374119141335976544057870143559947374352559112718228498846174839258364967774929517586073084420996756524087122008225964025084752018197561978301269025492678476173790064063778921550334020569949792280638948189398944502124120492685647382635315524908415696364204002288699839286180508541275113776752128774673273772748401555856993043890449230090201865887646559671704366329720050675074366306108532493771994586795178677176893525920481180644781084705165935070501753449632522412748564132004796590966562749006103775174916323456492550920103866048242307130763207256898851370486191788040180405744060892047102908141744493597378539709002562163424822209559993506473040419589038650695658941418452636079661763183358181018627193368634091731290805455800432073364718815317318179245118225207414870958004996345424566398203603439187797911841724574582919809565164099436763445769821436442784467750408808742480515486684523875370590981285722312827359953519458627841829962463208979014868716128692522334628966858485527021331594710377417160401922081244310137705579994087262286986974540578991355859531829253979304920230008129676598129349219006619864473861053991478690771075225517361097112300973729503758312580486480472035229737870390740355292697152007088126452740027223799575041348203523910862685739829793759635279679031782149237854159113217084313998761910826796052765768412996732968638154356924696831853862385105135870762795087136227621866388100884068909633188879825477217951803693199405551615068940970084797958175669388456781644156792554848803785199032973633480411458201662679372099247552952424102535669322147758359626286708614705409171752307284844737830280604806197474910992531306997653852955217404296884952464908717230650565507681355760799071265022223858574872542495925012598985627137955617481468121621910684775475044971011652682889281295264524833402243044915947532431577507238502379169002130976828651474293881786809070971092492259059096310881081466135624141456909215212070500745601832115102001836568429923838922524207394756221905444591128668137288270413335098141288690268481740837776923793766378083204258340032231933479548079376815922496530664577725896494046120012428772998307067467308682681399916813222192786075436064214206943750568265295352174622405477694180335005856230810312296565456256393932770611272986093772866522865676850609116538696433874386516948937490160354240209437649087335110486252091350421464887083756919562045355095291470593849628990472363753166096824528507863546520419436463340285822514330469819377620774443895786692885367927856581672217852402631598059722547278430349544979087547710317331759988495424026812473760328188483324852073110207952131801862384926466160357529077980177013975411838391330890052299964357369056213470798652972501784151379371206097462864786705601063633788660803271445802280013018843737240742793386359403903901779617385490800924714374810343240101741997387390340397103953812100653033252365238226714609510801801815778059452716770592471750258583937629416366159173373179746493106654081068445531249559931563217021116781657479983550519565616559034379133882254993978742670241030789937017220895250093060804300273491591442804529663502499454723328614932050551432640882819640461532314922425341468906099977225771606654224399307797221369585956588716229154275635178013813353649408745946828197818347851100697263809406982763813842717239700165785584106627253952182566645050889608152706722208845987875349058694334301957754293626638572937227919667332610507553405659877737754711905581664926365181155733426484123125560359653916537634138152847012064700275560397942807486285690767442791671395535198903032569747175703146544342452064406124450626484433063258948512385393774147843847065496694147419366813368788268684850913068151951716544088765687591443221892819294523091206439044422313948655487958457850641349741731533560855669695741013774530482820227994066547486207888067343927898716861877030258466276148210439900381787064982685062878703071003720466453194169591561870966231252708477921846727257707489043988793695088120580411498053520929198865847551147098092026667252696654273203978552330526871658597365376694284112394184817759210475279800201278399925439461027087258148383077274975374830022891738530685980167844705870539430599674543207397205862609063689077741265709226815948084074724905428840614353801330290083785503361600459989347547130750968759800513291446963749703302820461478667634787037063733471705330357095108500087170189155650361899112412092420012146948566091641971900006465013789793445931655423299985232078724175123720714527031238241953912934263191779065567052792054755531953045529780365998127176442065388233689212478750791020550512474887054881022316376403825687950730902522516402984151672670470393121991050066050567608546250816423325027780260090389458274060578144770232028606658771483622677985051482031326365910954588327003599179423318546794732913980995991361187999898109391508609256114246807844274288469553908511657222112812377720317003347080575375717829896728958555984010995488223231622551418473742457115350788370860684481897284000479639142682068526404040336677516352955254417574931478499010976997297107990046511880725265916278593519729415590594882398854628355950777174810527009908253621414975050600841228231094300754077110578698287272106926128696742727704742958223738017297710570233678096875886217976117572519677966981274455080935454730762545010548321406609059068087923527770266362174995979194420257233222919466547912683396743222686307742743488134424323048206763393322596730584401128073386060614194410356660298624059666079532973717484492360574690198059441401191122675147705648578685294598127218064601645254085586305898055565647225115538440506667052987756410606127946838656426730346347688327204612707422333547103520690387694739483553824176930163850290784876868444702396903525746496158087099688322514650872723226574303735681572846331060839312037263138863556879908882838504993261220210634829700144866519214912227039093460220265616093431392854543406598193631470563494168487650279195131531118484095521278542384256198559989707699580557933047559595914597208300296690084216062628696657027280472576414915328436639545354517838807183412012708708540430260801921453687903918095767876044816857753602447020515931213710766034975822153355421262710766723737010016376762676805874587546536019962628911500836533651099379850430221793360083531241712226811035275409542481411335863046644653027161515395574983437999892490751639168536682758799877533653554381755232551729604019661667879895409414315534831410255682673776643268828654671657206187557021372610967085979849636966422106299624915616199972038642441055027879978808102631740815788371966954247739652269444013398089866572294018026399837887756838576667672896636501673809516285567782863212852238969427634679054045262928527303223269195307508423715807918246556171472312245740198487980670327064793456749065918422877294044082602625865364660544422045204239282648513897615934429543332549781116760740617088815405695293970638789197293060469829123574995811097670569653870968904010846404833422971570201245494408439898793652430470803630952012844971703397176564328707750188257113062953147838364343480476596283487206441762627188011331856222369817443756809357981978411781785093002710334984893336290324294425622815674897532279274037997284024872112162883053241882991925593305424098029792720576194268389400328625594573163974237171202714409305161409980544804670913219068567314894644247918930212498591110311547382838613638959894885912725438902782664988871085305350141725481375144535250909461367458880292984569241900326281257248420491637098124570283908982996918610401651991347246902537164836482437589193183399915897000503204207753740075820300715516773181878979898920601182182078920854170613448369484075876146181598137736825655554312133542975929195981887545788173096857226358127698736443969838574196391022068790906135023444930601884956339180867871181632240525498609562169961262833787473467739693026818044094121349974932135886906387030944238604744053957221072943365544220248279507912555089412780634345881680088111400129419295133458713229579285551753169389830238905188344104863031052002920039554130776016453343397119406115540432270274913104518225610713463917424981166653042151202098264658209174690394585039738314167482615754581303063293400304950656549176941586269219493649371874033458224093367465490552585896117849127774160669030668254073387702769761371889456006863419321457059182544981137886794610134464107713443415042488606845627499338677129906595737646291460045873573491623009100539063602416613318559458867904711578679032723159600169257149627979836648358741797491211181248908029436294735562680923535460707695424160448663863911212398944958406054103277997827796078402517575971620337434425677744973185177202329212814937080586598425052125204476135270765036858563827551624555082520882117317097280235252896005940101641584536274757057508010009648946815510642330873662074700988312222865397766901722724492976245624202849527258117374265676053608875257470496313270408803553275044548967853805831041010677957482174647011067059347602507844207267708562225204044406774275264133894789177743354952681301342617656751063942784264123422140427673463838475842242169482056976388313397700756342754946467670121078727023886852539857450611419615293232580541966502147112295187615665353041286869887908884915930494492433672771561162624780883432821840129623013136981194600016495895534044149555064365524886511015668445186072319981711359089477001261717379318061307096694301741786857626288084338415527873790948813529688111221549894187887999377986247068045572593944976088592081011085888953004355740936896835707993187934490359586004060889593400053720349894853381145635827952239043015724743673896204918463971622510018153550518300522726406303232514250455732324771618296119123954835978441079162477346686954828028237359053449349599037795490692111854769823632839286100305737461026598284691860031407985279280898787023778466714516313076750355527401178860464367998361232300377541160269749074018154273186460294629603221121795820119737175377389889421956899105504852291748280456869872020884772644347233211884080247944621420409496616710371761812080286497112040287649099176610417545801321913475119878969979500184647280544867387409413487380820904247135394803160173667111900090964526449498327518295756226631019471883532080993494454900730228759997538537127580425628265955283885812835731042261952482184136112834702781697481048769217302938339460400623944003092285940889894790294876308632050491362092136554693339069568859920595459334248064579138398639810262773056319433928151077205703603531584333754240568492174043589080592874729053463802564701515622164166261901741879665332670390569205608127025671811784187497262011002898412629230782769384554536397176445189124314114213389922813157660551227317041455152661941734195998112522086146491669179269470895535405590853406810362173710434221718707949755885922177025733869824496506705552060006817949880367522249863603884764807243224496775773027171527625046910156147191556994939531890247259989639102136232130843014109767607929906158435667761903230297497973405477435431824578243372501152460086167844660820855626539420579988505026391317580097246716356808080126152309563210581384155955559183489277043246224158319239569921302553211615370028237431959828702900002830516993859190738113801762048301160004608095613539647059136914247413899845474701949101537067994612784171945474647391794669956787047110635374639773822643717421063724304402154505825009914729925911298648840162065977042060107650716942215275865595820305257261997024724752494268038425534007289390733952118759689639226117193062959996884940619431237713088519495021719158664905127126281660304518556738171733243920973100586104325652511154317611730521863393360782211513078958457670955824782940450718442041311351559622805268491243101586118737090615020735015175379627708390623104422418625331826008467342405417732513862736778814390445197029749250195585688930692513474964264130418058985912225022388895372604735701062627129554390554444981112236135721012700807930102840182356843281553153316353664733212704331989578677389239870137987896009340395349883215223473895746573695023883056308655018577811460059392772141317895228187737670935503023608506029708391995678118255773607659276896584936256981566159306660325135094748412419938272613220426701102156325913116834160345983100997349472982408255838108723102208257791480491124976377579796978487382657154989943408593303668316416690644493325680849683631347585788814466416499565188551204644439987019235677835187465276605191245382983480909015571172371546454623559096857803767611993478920212671607002565652681893365137224524972377583217789496974575557160242387634333232517177665948443474899636179698281511722697245007193466544874366593984059433669880245872530047528268344143311220036054406718428697258225587622625011980758993964605399615950597670052622339783575973694381593883225946752091116296669872070374579195840839636639892722190907774462599165704815224290347802975330523266101909508606919162148765911481267235740253265118499153628768498973308357382851267215001043980092886640676214029878021908625590409814376151232576369928962680981603437616320982253003478942161241714436645971237485615316646289377384107100120153095009785913793292155448728646227948545405086722567461749317691926772253878707665261190366351421574318708403229353071425101972434703557928589202950055665890868255912252718981803370271377982154309680553655470894118302523719426874908389686329039346321853276675638698629974647699799371104967027985328727539802669713376646765677258804028873845837703457672685205372412900271503116525269832964802399082336752698191890208122377849560241360530503794904816844395671951295576874235752688624693176836736883077283032972363339430187245188011661090277567161055455722784486942980934541784754605849213428459740614347049647991235554724009957335894818817823227799594313144765580103124697437038076266180269948443437018515630184938935314098661414587565489523309029849608682740159220212248790727331283518195038962335387701198923302214882643059395646628994297556541095605709245632418267225014732876671844254466195648677644332196092635256490489823243079446091394114245463986693022542101358453428981130098295663945039129391647172138474383208863095001523905895226936550872177965100307986116673281426712024865657610159587561034016923651604917488929043324078521066428775842870704017150963602166195770649677740131119693108664194926078888982802081255087122811342989691785846977149985959780857881104852624864512548463926887678915947691478284980274521700030779283965579541801530912386402165813196203307035743695121365893007829489216662703656111830580107813100836881404209294876760149358043341077515698459986985018144042307256420542666999956418373429662355850686023302279278265192662163288395196846399878775364982680208720313086051218754456545387230202186816727295810290189873203556477149205795021652633200475397790275728543333789687847496502252324590044856130945608311920464294535671592033047167143460229683788150341882025377267219180313055780703468099810342357318349357667304552738347307300299751448340948347228409361588637114670323699000510179303188398275942176383570952991290532511619635720640441235904948868503354714377738503675591890920859523535819024038505086643807564079886969283413237058484701900546009351671106052030270582219227502183557570637583344528842189803592328464406125384318135403078984947946459008144067716277010109014509690764108197842128886961247538782936074664541503335938965024568063656962401354012627124286298655133825694702473639602600505994089619680557157050400305558105886147407437641814185929352617259837673052476111097694765449856876181060527210176609821742362010439100990351611605872446764649156842107667238610569433400226907808712304838927950468974359763024612023301539214583794094244218926211702389054753109135607742975218810778229068194302069102423300498692875900300903430627545860299627377067823499817538484949065237974571933578501591067050216308471481975543542173980781730455185675768371423858021003965816048257356546283621831355390251235036343025874298168972914552725464846273126318792736895629243476075150482631465089772237152590603430620059339316326046197315543602939635212249338347890578098348710388553839860157930676515410339800526542353422773076448644787350037333553236360775828657165884340971952548864217446574710797901815035786633740039026503605565201949745675466590969924408430920124114898854359961500247980848928074145840991487830747665809941283393031805864229206547669548447416723371563319290414447350120443921823056224446131510496879415129563694187169202285152099109917647900769107316502559742611628109190685554209823496665198999835612289166564821878522955274309208054517439315189069604230959772103736707349415473489390682705155122932845094067372245612143884924950857077997215829728406736748009761690444000213332666429156891677154830200849140687069128256940523268353725805141412808877303207412851799496398921755102583524951965856612664393524262930287503291224808810152666417931732236930362548642908442779770069083197152146031326913143587527853650388513885634570423785666129586486836058698981498364739568245328464185347743304741369238517660127359428065772857597909473055827828772193647196989773148259127605221325803034975723088103737412299722996693827615791786371533874838689498033854548150659093033860781899096443755243086854995919962398118283584143321396238418057817151001726914770960810803618364499078142232063834301842466100774969579617883037097974142542012231760328244242347573149919288176456515403498563532976482800254478953698540361240513140775966122992721503782433576069206941653557351755867128093794617814059605926232748739426801792498902216734507190781816188693877744380833532300518526608192542391948966871056108272204480063124124720226663292739523067332495773889343581099633268605894458050036929020913478040243886918193296925806048572647234436591046072183010387574627040932536514772048939955714440340843669300865159063940984954353914133793749418903240073246471939710021487789846231029297474377714170388351875836709260518624370654158080895846407804434330039059896086910467003168936712954724791043022936963134323398513716965092730512991558902543557740276285969214796747546933189428189496519047236435574931927415136646325764337456586765405573849168658265023395899314519772598238900798227877446870320944430978791377585197352974243426086698843480406837823108044692934900355423217123579744274540008375665770872671141083557018370903737787400325968217428236597078669542049382541522913550920083254852591259393919567731594015331584666406915045495203914890992427893979377972106698886876423100687568738399152081393997223456522478963755320434282966466720861442113288724818779507559438236307367709094934304281433022494512717299036284814310532188884291549027792938381964182144661644943499574636383788760739253123323823574762215368078211181608692637539393775332179049497051800313053026833976446295351688229212845095976031052632312371303171397642538023797224789895772900042699454151068324593815095344146260004449154695585827058816400043409250081548242386259875761145452008983541003596703124609743487136971662648317370903605359815633084415226348164283609474280010442030512865005743335765433294753128628079191743067474822334374545223470473979572169362816002442271987569294436242951848374228189051396711565869351069144840926856988665169606588923553004255256357049102317634042268437933880903899779133387465552676868229437599459100363797451933616649990179364612423062081622069281923019674648964726515226353161922721666186781057346894490946188430577458649476948829497285657269135342589721213266281482140994341687651803079957390270255875241276125093617059370916742873435902165988628198333596634527051391311141713610312691887681475390814423376383177529383128288922645558482775549738222654947031083347553580085014015059823405490184976527757060509960821427662870116951244853805466915667666811591278541634020582630565335618959477366564926513880450761185651063652479680929298754785236186318671435585746300362317643653597414474342363818189652676273381419655539477320004463652661815830182146312931402183412611445381390711395837246001993510158348358924594459569572203745056148482022729926010312672252968747051892398217267057641646745381510958366685332611325799586799450334645328194066819300366407343102439326725867669304358488042218056407484864507616429810987127630808259068166037626066310824783361015249860425236885571271725401250596180487774516790851098967737575445821907794580076987521246862946796481674502992037669869211476998094817508452227192979312688423693522938033055507877696625432043763333284631301371454552538281105571626295063573671945493443527098742971461982890728203368304075891605668454174048501317584953423908994681729626961636987837525748060520643117614674429260737343458886330264259435781913209628033801658905040119392865010267260063912362518774234331463579541808220597868607064008126461451366781710492082801392496464682856138837871195620703097360909414344928437149042405375807697837669282914920938104113125448501063722136596187618205177731275308350090206881048606462304006943836503734179711697822129599106686395600678547043839638943697605238584192539488199857830063505211106341750707883534016535873163458437770937607123542833406397392559623685021958976186838568864752122441314264824262685721199199727342037214268567237656482789958905802400445310631945415024988565135717973598840784110629701981043931647563209339782345705470106896598779821355129508763133526181926244285677295087594456252060517796151050685256392726306274233823479400560944454195799532875120711463187440573410949165588625254767776188489979890409623296082940420622006296892152890054947378585721470912195029610227111905796859533088589515714979858091372946528219694686079226825217727358839894463504962748996277683368295475620902694696766928408211056269724884847690599186997766613541523938690993420216962604857537127290823654178203410855761995103291638427859477451134947739865049821249341196782710330349883206113159714292916820966291576589039061954094641534961691321972711326253022068184185566163636799673280070506684302070585716008534292987701253404467114926058453978039334378346154436221571742534387695540524890092235314348832298577284891856652793317594428385237848190740178561688098070730048976745779431822223523984462736334302664861842071085014523018532804620796236917910215096283344735438167304646491914869436307623966760912886075002068868376639033117190549121867974082280682943137576785281546988806313295949304578412839898504268739500269205429968221829842851630113018249849836832319685315662651706859849667839374508313208434911057864226786097356081675601423696268393519020536824958133576715985614940934189271803627021440897333637757327216592499114958076880244729411006437170964032746310292813165422410739485051803180643253181573765735660263580594089898671897693028177946958640740957830252403623813546155608318795552551168213195875098331391584011725894938937690232902941312501078829733470907679466660337310959166549055266115867978821985253944660881463317284375659261267363297152560920445828045018030756197702740835565755279932215375298542806074091823396139318643696115561796804039313981031478285190826114126229290989273551146024415459541126409790746172739724652666749177916153269947390201117806109308510666248788345479474260374539611383042681218859511894799055258465744961966973977531881945907917025257455360521312739295936080676601661651199564974102734480488273222020491189242395899489671886081740903034209879059386435325216882380181902828705453426685658842109028777252226746572537486918700755609430152942779213380596427599005955625261563266407957896015754141736859801912640869517583029275633503970492537361726720135599008531247303265920616357845015062633603568237869834122532303539329439882761314814691782069655287120660494807444502083729954860417092960632469533103634010071152780659452242844381411982084744082555592551240629114596872646601057924680297627990319692572079940098820420445952650527092616116217618067665203870897300040374358864411679444810923525757345925402534944285787710281860732180788983062749764694808569353642601553102223916533108699969072062887247064785860972647567165749628408896528456204058102193541878168259268711119990183573147548511468981057299521926469875640599298272173420207168981886963245121382140912384721678661422785589210847054730560142326796995253296733090095462400735868899624988721585548537811892508079455773123924104524928240861187676324427698739262765560955549744919957206841593468862548616052633989109679889380396363682849074869725349512779135830067835686696057097166051465193785530247204384528663305973810766458177463184073926632525310285649414445452203499753005916475312204536565222365111231276372884007853644388073813039925827850694272219335830681982028784237988841313463615206834727767549609984096839387900658028118173718274497025043325646365521409608380411633565394773577828438996207438292132594044385054834366952488692063373330327290594876600650196392854751417616033197026997817729800085485096428540405743926015068499522501979121871167555725697899662719846724862427725978691273859039310481619674433307669397787013496861774512629108787932241913414467108437559927947699927913745265272254084136260752404752228835009172701842383147395158519886455681849681570749690940225128748289124966531065062284036749280281128104369067657846060866236145218589738313529940984191732775084712086722216590654672401349618831033178293661879632080178605619391855418687288237204995328322382797168668975952910058005506021882818658744847645049563460347534026271519764977299025260303552977575877321935412461652816904289348192488591929680659697176650065845593288766649805223094066194582102326767631826640693105779343288750537829579742968966733803032502251750402919857307728450693243611803315028368354580636798530489885313683512200436100495368908308634367757196622872860807529472955923621821717970692831704737063729651861927927192718215451359653184446603227830205839197093330367280444804757484918565517149142920113802028873908951800013813223153182873951282313519898348645853130156404712564289115418558861118454543047617913696464744773539466956412871729494335270468116167441286937765136699694273285098072389458280442784634931989557038025992883846830420796508717977056087009810068566030127718168370516075063228989714829484594693561352014000872871942180413193257825461496955243332947416739219699619950010706165843444501832871447124899667025753236686417609848548289744416177558792503798142412354632135888812047093332757255935775547345099666606741692738433235423067763252062749728601099357017466453004260676860396553306586575099301243488035019604168980042760342920013730464918239364567031752496821402083848095228621533577795527241820983340400100001463778831700636351713548672074229320417954572291577766240073742668267410151684638577637207506674444605328272751172631455574092450246595440235953608653870322985532834471123031735681086184053007432773717240219925911940256787410844301590062282169438411000762380179913326037091117884455057596319741517965764549409707976501620042991417030430935423743013686449285398996349726239246158076438378704922002541989448283457172493751424210577394624617986997281786980878050016835513115231526094136367168146250504531899483641194617714619066222203424943633422140682724398327207342678922488318743327318222928292555369590894612293561245746240632081606000894579239139246953659482361358610906687578748134467948361500837226173779495852750925203653343347377335115144867754314787905755877980479694849595607121256368735320819780071707350511853836622184151424873457465970619761963897497307909438110847020419394998642025831413660804191004311065183934658058928528447526805914853355255462174256632464314029078156543325127715188575461396229018190624941454099203705905714654033896925923486195694148483266547249804761322029798059568343386624566442544990885533934836733377722889119108158923083431889653324815538077766899276911822541999660012328403271571439567621073135738213131364373171608633076215147301079312803058623731505660688500023286308724105110961899483457716285654509125857948875462988236032426832643691349320501045145065612880625450247710201689447312583385916283812430151625431121077142218988412605563853618895771220926258784914851952070490197572300514069067435554869264501011223725992686632370259271706945891389655431065214562793937301631834400962890136581833046986833195345382169081966656270964362257082191749192087107382918822145910635482168422027096502703062045673044685806081088917378977950568716471900317653294785594547249202623087284910215859740533643573932863852763920722459192264494455365876981282208865170340031972210627460074019572400229194483430848779026345380470789384290218840423674300844496583697497100883418880061479136915376399751846322985896343668666970921558571491680333295203638368698025457407307211748956320655456414659828030157576383780609568762176661820997925694039633302617068184904334597309698760531857802910132580202552888993735845999044486326690465958518126019957244004968569228135611140767805749717967211276512224169572869307645489819596271878351906445968459517204405724322325511413649790354970124041830721283755695474296779376049641846873443685152368252510650029430252505996384152730456646112585690205700006998178702985359423704467300949605931758092470706258772393783310375408127925183286528782030102909062549759026873283181699989611164612923436924708385422173107210800081305096773308588942879951591445161048111422116539002484828442271211980367217681671491687484337149927250396204454821157202038017390649127470413594588050208176854643100533708519153700058973841042293387384642637089263312109092124039863324211567841211083247573609513426867155761866259199440108688133813067820005087025683702245957470846445612563079755372920121214461902528858900798068379071340390449048242129224466044865089688669745611292225075255356744914578691666333979148928375005066063624091601006593222880351450736853876636821187366715719769825905968999192515654552873719611401067130245851610928504058278389290607999577783034600692516850020127387831377700980359449995777593845702814727994757846283668035911456959183832529034724525865636091360586729570940247913935617007972954945467870435191741792183637203364169517763696939873115426550869746202400422531209140788390204835535912788917563025215399167524528784599950397474101770802304061037304110019402924674499333821516161560449418983612430117953530568990789706928300265928903600826382381776920390669799567063569823384395023911566609537001225766385688510509878204040145513232466174732910310772452694719301854491330823549639663966150192588978502780556152000669868673547892549107030701279074581343960932079563285533775367912031560689003400256835388037761731493852348500724192218786640888276854671040928802411624270741089542507398093305840762607641127012201087960675320005465498978535900240687600584329112442991240681708667008990795626037647323975227630353655074630252774573421150783037340041908809758018375136108837383243682773408603964229567326410432002545487929244391090508137857433331285530757189930938223239011688262829622595491066242221970838704906728869568921416306555519934842209561978705986445821334220796748279257318474031557959444767831340071967737511505035059041023081138083898428167562972024954309698566316699060047635558419670067336252035934165393485332296732132252419727199427724345364069516574868647026574896525807149234431093869304160553103519888586697961689583382187466166347743518752198759535868125674978863327593342548754164859713128475891109607323048389477658985062163375411791776972295178554556315463439354913353532266870925015714401856144939242155605977108215899939079200077101907468780282201588272830738507249698722042786865387298960046844464497029917669996242689584633165578731093667090835620258217898907633948161256582583729851866953331201255199502237335779929361088577945807926381990937136376899483118761343037768469194917713014256327214247145143736100422581504917470413219014053567055151396546296065341702651051468106216602783665233177547257665993897831641025947813758121554133447972295134983893028834722604402921299443135665614686865473488122801423165912790064630759352111327267061504761596087628638622853581576085681772089537800176167723599449241091592340660496325473731838544490521814791701488938577336787347451228310620753263986300708046554707329946772926043628174926019119371987805236227705127742545303053321252099978445157293388385136462953919290028318294495784801527950607762093500497383107414723214426623587203659607369455324287264559386355676873916061445009358495793994114662969743439412929732876007057805311153254474342564246547835871715214511364849035052005605679948429434718764530543286716602493306287543604707152984406842770073126767866313928360091170345189545635572582771566863480513904839847083622946005338820159780852861405568775918466815024072346171075321407490832509304998006454785423856703983659006700648398250578069668342652459852257187834451332171087843509997455053202659297829318735447501785953533649256534370053886948061183815194658380726759989908405261717389016548527808158682329584178644448184058080789422538895889772719798091004481456805763499791653507275856629599126281878732872583342752530950519650653795994698188874477744452153224438853970674505763172705846809849599122050460548613857173979017301669243843045773664875492765696821575755844530953144310356185347689616097947353202465363594546424875179204974826405651439594898608375250939562688405040435074774629683145041908718955273392247516851273261517564791597377804421742580889684074697788696186691563480730996426240594676810261234147295388777466675077141376682608653299976303458750311869331203902476234679107933448984339650854494355804860281471675336653872418438062673430394032333847600488193897173689802474454012047272962512222408598090675191846693275078594377980165586871867700976574204468061582616672411305744803030574707827912638417215066752402272414005191801162999575429070596977184678004257142088540318441979619047866075929484618833937424664532542431188897681983585405328926915254856693692828261944902179667051571618972063937913971497795606775311846768481641847184107826565338845714595493204915365726831852578007234299941896957223359951013430425803943601554038817483069541328716197325763789420540574917553291227101325637322464779024342720919555843474167739880969841294555820702101290874160349047150007687338339271442009959667371549755169271356885820765144291191088616682866084230254883900776618550688448381558514864731830701135173517564382263685371699711885564393250855340695501736894792762892212719713031689719997675296825587621939280120759071934617671333369016708988644207314341614011179754572123805170850275123277132537400289793757904761216156513553842328415339080700690063661721542238650503467688115016507584169378673844531114538508110917766142234996413140065859337761543040210507290698977698778704409156245324597356235326022676720004673663423806162561172665470689082702877448412888820739847744634315303150053780977071575412501091225606269318246364628594639811478412697089569527624749700198102273483950570157951341908945621172802288455663166823916963626817295087358570062588828643562693416901965082906539666724348136482687222318005010813195287235054653229641008817582491617503771586823411640611211860658242947563375843592755553978294692794303604886093086258982172779337350272074989497699274163922215235721209155325067068188531485683118601250921956413929622192913009370682835521584569799753100895836140838350395553226874553951675078959052840471015794324917924340571903949950752817935620048302497902713603016184808498270962391899495660158217164817590588638709208358776662429258899842342877342360111277109885571501140465108325665396534713483789681748403682223896134841908118099838796925076657277789640365977167860519525404971912473786576382218372635943170929327676947180953843265332572489364826370751269278891994043499345391879151798621224841231608177360358039896921033524481477983067157819995558644501928675115704914388957034373679774012662569705025228342381532997611809171643353929286965249531308869417741903672787618736188638941797331600438545118364177670298706478908646183512930974233884413846660794394673398615654074264456146040910460070780623368411552748994277710267786890317154028009862411779924280139486224763344281550603636311147497841476468290982390912882340844720153305797033137736375226918482235440026630845899186789673243439171141594050236288408912140833458541678314667389953426308790458548598992898354977961182008714382688072912316561074150695182621934139695311960114163309222876748507524041687048194482815582152369116343040941147103181172028086522074296501268786477392691687895497013340878819600375442254409716945706956911962043800537948047994850937404466834935734166873348520088201247324354473909403435669601904184817062262514220520637238190830760031332508579146362585617852897810513528264907094103414479424445504117583530796933216435455969346348275116396130672411374006265482166901100450084857279753639078862521200936441576448821774256311882903912514565574809543545449725974930443947480563587076156134460645049470481349705923901825693741549885472642104878347194697604748022256472063915159114901599018879901505737134379211462740292346386883151347216234469693356819913229013725929661930082479138816180045317097219323457687161370943524022999968661451417300891022398478550446505010424724633352842221825771502619367776528229306175556962683354382248784636238137463394377537315359209027900643227214887886186395529798979135705536468897178328171677045339772174355982087676092375334981244189873471303720878096117110894822524695936328499434299635577810373913860600173245683529205729300069092778767739501533672018504026331688372670840018923760005129054269463473296870514321211640584942235248473692076789461645137600361431800874873974558790686716763611367673483596677165109217182337996559739104553169748446138400491296809276349435604899234359492429262691083028865463065615996109642522870306669624812986954398886352612385878070307047872576801555962442599863492320019731493192929692738929932019933982819451101256374752970776327687157092817996101445091103651731914340496227640050712006332674676363984303751619243045313911267989921188407128804894648546520553146986594193093658622511975385832126333115369225657476614997736969194654374220943659561267913226085581536094337579358106571928687744058758164224588019792177575940411518382657710874262436842923024796843343601410460216578086815724190061631829109269967074591136260847540349206522002743575176325566691272452917971572925381742813217639364660849227079662540898541310343334966050428354411411113745869094287289404540127364021458408233179291478345582050224510700411549299687105427536346301127334641153918363741888738014819920947999131789526417873490140935244545820246176768273722189822155599407779959003276924202099073804392879858648247450649214309143861464388836907785603470357235379873659779744887536704769782760011143524590990296228430465189653365793468292793235833697252277531483253994340915879205263980377422139866331607999425691131819932296297078166402286920199067211271368859902450654959880126085992694848799771611780107781808402912955257468084067360478238074280828625387341241764069830565933668411289509109504872456362588514483427034162346641121118979088904789162306962150846997226794407378994642666052479561599763616253334075847832530485519109325953151894392224551867974369721579373748169333900373558313370014396970817165654398511694926888178352600825157128020001678861334206858969341798601942411889496102080354892455243543293902661997660076196244409791128241733287139880952093543686819101018500171916336683138874807276075937144115101290598873763908070041541090846114571513944513936007563532170279866541984374554966867339747237817583995841578491698890150672578107958850988854432897703875071331393539507297470686848494436291782090246856769328265476309226831765959623927403375228052824542373234138886995149601339299395586214526083436589668571797312975595522915599409879260023691132769393226209863040006197673652879484770766314509186087811841568917080715328362271664720605318450589058475073894181661003342392923606315183639220702844800351966169111237665864815269058981060313983542534723439747374139786870179334220386233607958851744910683667537286227517688308621366210971821106896934772939418340445493277887354194375149136201209313027864603805786739990422029187537767049581507193316072653687633263368550160517115273042569647450817251871723950260198764768890337917885606698301342526318332871081999232432221967667629377107849357148327285332992511028284301652933364184738071706521146026266714372556346961572648328571147262502000640461096832115750577758733293698920020521577300436538382370189733904502631630798463582465970830954007216464758994314784965706163148153873515451722282150288556889211234136764302367469725287227305103640704391222097880206341222904180715876161031915835515351177561190332389060218392863101260864958360626209834377765601576999960147996464782226791857992756127713538724044229739661941590672417432661329848036623807940719747666498060526162378588557016871556890948486470659752830505393141543580080223613713471771978905800260390995404009431244666816494302925161916012616213318354490899862830377742715407511771099218583512019085924521618069441872310322161643341254570114625289108186948130340936699585777824928714541294935201518042327123590453010993204767559297665312482791729798874319782130866182675634990682051885843091011076664898791575964182828762335379698492020468208705078440287518447011315009765643491216984309977295231839087020131011940795970372900947851678905411836364389987472537357316419657089796305972542438816219811024518366884919176761299695070466959189106139100700816928735981185688728925953751209444444768663921739367031469027220425117565792525688345918729595490398882312503723328957960837781714609670305988133494623868125699081602343895639891363983086697020171356970139738862334727850479764685835322879159550931765957523998202574072751579237446702192643821384122374594464957059947630147266580924338120818495093122604254801851182881644369282163368771791988280928244792824889708623147122047615057967344615941406606990175587651702321152711191646738863487340743162018995241549405564183699141007886632595832649874960579873136749027361397474436853721979533881071920098388436534301498394187586629880277180048340716498836283442377470681725729860220972938386521496875539419320552836479867028012634651972134530529213869087359225521286039907964315708432319477438179119974265395952206873097580054259848977800168620720919081754340807048826605919233919188225408288319193581683226221285081033455320810168714636008488584976625432451715802527117174924108941608682207298847389163310520661798114741574330693338873578361217653243665090461705652277097951819805242572250990376955530736138537592146869493155490851289283820560305830186845459446760557495558591984705750181633626410715134295822432481798194136245419024522291079129186959167590696402481216430433524849448175947154407910511745726333223692576728611352513436732719211237404461204417036036216976578341143312962116863108746284448923705392985951218418792432859792024566986763432599427473648283740036246768959267052219544830196701578517659952966758082349827809727706558686639274517153601365632670380251905484033863441213070132161455134513799439983676923333103341494731531638806217202295210815755604029217410320769619037842041323615885682720153306542978792991864866517761767813072473179331739086461558899077295052265956665240218085499887134792825139608188658054898167287524837312040686966255162132511937645862744388714221058021404161324779441405505695074668191145500713636515789898361400212586782276467322750037570708839988148304234641323874574943526973227283970422277747630668385806446171674801530059004107237372485118048036549529103031503120886293309509271697110086887867400028275527188440070448229753906993824478457063432422079578504632262206168575806568436246184598089451271826247754380813193562525637925946286980703524598629843778568880965449208782841223904415045681605870061530946262849103372505115225638272243969944542848486654527458024761852566122140145288920776802907286398990305166539810013368195551558146752458531251161120463164974962626409295345357702771637072129449238359985209387113278707202503176642066984644414722096386818775966718764728271477966315133560522756727613964866087790993366853523802526267243879601229138419018964199308252278190978448371493493396801734256398783305359084174393716107076764703616763031316994144087718089604721122489255069345867409355957658706048083280783328337542801128782334564130264453480621556914491640339329398358524826802465147846463371979812805915733709891292152347894318067877186813620194089073413838246806526002533192822962216777851946865743882624210200977493120706103149978491320606312591596486112524601999708203854385453501800687031072553547386947022425564893146032816748738459807875494619385724354990022092933009477239877470423899589578614096494713934491947778102005611038331974905955222878478916284479937130335778522971478396304791015505361396213017899921632878984330860295396573048666221097232683109457978533388014097445027080275661996969129012710918770510704293399641926389097763503003526718262930173570912451412193506940958717437291613546264729471985482861354396570084086309602105142838480632113934732745510522379752531610632588038680409835424964011005281871766491615014889212577973821312455565723961069132904556779612759312629974606764828070516055626470513637013329365829020513187361907447314356818215100341184561860825524381959576461662374819835982056783747739324627093051693236162153018294091889474311708958652238622751518128698874133651103591842061119940524704825174553566474836584265446381306724727296143932312303184909638826603651985075722862220003971791816694054264166766578934273620014682136351382661075593562656128753854559835161219757924712639261362879779440481904958769851588608859535790627253312796771231924715151433269639412331013801324221760090759398823803138982340027668239856438605562416637751239542198669005533795473048572484877098487878860511257529303857433439798419159540867758398551112372288140453680154588365528714680247354117524301420931270246608989166073003481951811264074592203018019715025709310608683736534472042772468240901921079470725716152711523394799888004082463966779854155780742175452887331323636430257300440191356301325893331374000168744561321388860100352345954197320365652371368827880288570555807531005808084929801969669779062373985003230080162838182752831411307962094479956089246019484700767686928937111796109648610587209100037131736256306360471895434352699180173951582398623182709103804242886727481587358861490805299082516023553630536091357572004851858555513151595365582839578786388042072196195025888596216904406284770137610309237975804773107212248096173126717167268435242055029362098367525524136648025973443914170794727138409011607775077234306095235577241137448536022220341854930799988529931437745223347011185387259335789872224064091978151456167518783903020312940107398201467434547808789446845250463947324055716190357109338449075490724523814218805832017178350336941913888397860562843596537472960948154824047261666521430219791701009552159176892548359746700908882963242754058281954729115140545567811642017866932557411857173953052997572993217968221042917655018810843672701164671328702322937244798240258687193605923473754260954241194595244951434361898565093187619549977643783437205029487823627994917800442679252864255437259591403436582172815968307283053763343675991986504264624524744774370271579600714826879731973766328582607315008000428030053570721269362082273296649930383301676874023319384361438918996609264867706585234816632480822188049522158107222720443318095965186497996881862922041903348877065763781350469531135491981604792276686881060638357423178924033169894801204766759195876813664332753415960769679288683907792030188934027209917009428950461840884352822330066609953338929941404223923413391932425270589989985718805862043586358574045758025866462631114902047313570998013529645350614789289155837287327754190244054021601427629566545165186632110140192139985237175708621521919218525734172002593292004723430623638707717784222658125305730088374079049648581196303810678894618557631112221899422717297611566011750499966514895545727884905989947765381451473859175824872219911548907593240600396842338629961743628898433944106356358976273081574612201262477403805976379939994136993259844211037016932711379972687328334862783482137137551107479162895880225465321604598619751071482218888728340397233616534450734627324051500409879037045519978365753092554798663410646391165237951881237410328996009718731150543078553994510283438940520615532985731275923962404643277283713559020014531732626190265797173184391974377539647556001003339257662564036013066013922015011347160415348881890060357874865581723940691785137751172272076358591158939743285229778310208942019435600338683668160030902942652504206093972247016033317213869681522786228522505340327593756955582379376819647078780321233320898736797900485458513595029636980767504478096423915785077926292707843804572585053900677303426208249866144777524623903511994300603635332074029052806923537026600082664086433340485003064312354044349372276719693076752924300757614944718081236349176841620669168724953816261611103629841655478659729934155834132345390573122392910881766260379165820346519149643636332745447473263666732442501642147001121295587208630549699625919223601316308262071774607914110380780673373140130875177883885313472444402747447734245576736341878462855574061500685250091559035853678023887307155883757492145809639940550148171977168277857218702796561327461779752562027850629402160487337240512326688769861779399441744254660409531328521341159284078314532368309265808335171090146118270604625162141212576699826430027387362448557538987443125862072050473580372108794046934008419542821267310845286244055120469886798768955814540739480684106139341809263699567779677872660347694926387638472980049836353225236622306143707464431621545910573684793091350674574103430308567900360626535487583658252533692338915490298047095248128449820137033332654738703097674865375405732183523068349757270870611986573696431558353772923113512170578375551561593155754196838163665808446346677848997775722054513200272129029927901924711032797982340112764209265549398428690256261817499855406649582012769073174697357970515791936435315066508717692217489710959285913927577932869270214216745837600775350857497118769699630306307898655626606858015093759170059210728258138285094537121129315044791820567654767530697485830173740375169474888485642340972854151331731030532422620428660169108156100785312773225451122470707592565887820497848099739608090391922205352944481984149099185110644147031921095495128790826276884959388145667745854797363795586001277702502467111944550875374246859096357732753727175172622552081354969724887716590041307047947624133576061965831463490574114456593694969671210130310345968815447801713127533250152798865592163673394055727253994300251022382711042260447163438837801330374148546401726700045429529395349936222849033934193356458546405443691782488258286766431246263504386164389536811018081487671731314878135399695005063285395564837463280956954588425754278472439091430614156650650577602658751530328742742881651193050685274997400962749381981646444839741426595994930437610725919777185434067835791671521119236526225480988063054620584686298602100148109523457638376043663834048287893394010096696318538570379613181996017458411150665548320992036550963928572327457188420346083419273878124580875992962656791503353725335425298066649047970657248721918829142733720237492613635252115906773835205595354796690594614006327821860691436097919475349132800443810211330476951489726305314001850071966410084219941519124869002508988298258779779743036192263994170251929376419263008711404828065513189425949262835413083540318884477115981704618214786804973772797247416665426898163791744587039701451875433830403389038331881627622170471766110468524483232925725432077546286846568113885774675322883349423590705202946912455869320119685143810727769668035052315317769060743729261551912063119338964651004920930713113148949974989428074956849837694940100350262870777484696829347622673511690908097106954728507808415578038136636560979804233080603925971347574306596799436117014489015543473761410372789327564761040829663732963482494979963472382701192246332291595977245408273834407525239155683134583188678498607602192089025335112520536371412707313194545408098736263221713164136439413067967966924132244750037288897984897644668682284488443386897716886879296058393586242032365949066068123088890660783870231190875378890085799088249271027261755702203225351353339922201682208053802611121238066517251968466392673289998134083898556627073011337530965885673289704006266788219434345624104522101788691699878349404809361538612273552640690662612797858529124664602528708520417423804398052264636284802684672605973123440703929733438806417359343665220167095993987158791152449342701117171107734928511324660482612851462141098837304122770399335611985307375083129662432166283699939645043427050937261433110640400685747233725734161196107414466994632087337456541293533152985809636279541688167636613518428095272362715636457037234179293233989713815237009563854997314627330111857749623014938652151074291726365678390692993774754958366872644627824010550768423671506940826969288447717641628231772388879373502984609025465551004235451034144913890069605283893717114847711615980405857874528855341204006416791769294158473793461046424425468953577120242315850696473098515122202961658526506416704361247741898768515691133659620335950501124032077920622726335264615888033255642611242078934352394759052380184503633824885704198117982558097448506304945778764645934382694155317023610673237974878704671434165660469724804095845217797860293526404488030795895245967122859295382483859077119687500257845913913780004677657076675124498156512162154761429197989891189470197807564010869744215238492061512863315644749536649594209699867466672488279679069501948606137839035103476775062270722731047500081438264950957805240482877982886549766894661454095559672910620093073823617183470887038960152711519010177672827901527502825222996190413978407900514848988051654420124287691755667479199478011574004321234746819922560977543934082909971284991590706201098518452546516856170472475804030494254608562108821964094451025627103349997445783747699486229750571010357678464992719735465912559599048997907170851573603082035100893402818546981131783035263992265204198449850746905974122253268491346657922929469778852306374475507936479188085472753917725401952529870282622242398421998064118429727862534692532523661622537625508386312797033948064254787059483781549380964957190807484807183956440448961851439864275772034556027842129482692112113729430717603300536923976648707607196852771165557639715362093571230387576101125281732938938573498598873331748400689069758322747213058926256355903309241216062961804819874550158706304077737913306650804634805965303835358064256883205911251962893613471075884672860834749716722497460952191180882627998264463936114151111911751256407567874970388350343596781656000242702620501707815248815439994429327603806974785893300528963947774008711105464899663561753242520682759460777731524583011435355378646113785127030000176266226427979045875135070228406463328662637641882746522064564217321702883301012678600470795224562156764941512357377621077883091501116864088779087105268460258093810240174224339483024295654970811713596525355584587764192617878878403007287825195483063188266794581805987764829132376758957729994181298893601377777763992121782952158200106782796211551117372473480954787106446465869057058313989056225128704011228045603794778272417279704509680665016320211301047675594277488355532070383989385079184502661005644679270928011797233127187785101682573324170668668808550248124449778303703575740343114685511022804310330010872990612009715324886522591987052709695836709755899909380144978431481949619473748712304380396486739718593361062912168930835884588099332405265315381201099443175389199457442260345595927693556767704807292744072567191351036201937256332751277796986017709136528114453134482187153001095192114593332486111986397137264852304806295958821357537548716365002503359345111890495402065988295405711204976802119795512515160950383804155052866740009806413819064363877689886119027775728022467968708617127818348724393987489186068717089900325842195592080717260293542820508571314242230074009445852093510032344404612482692903188121375321868403365245297524120121968039620364986535971961428001555942100835368718565691565224655084973564789782566905183704048522832697830543891699804572269059250677316946251460522663004867153292458943050533341242102581852342685583521051682013481284147217198855633017503534716429469779470515886656221420310536486330772710233355634128005492723675424006295592109783264930514886944010569602942610275552051441564602674443719811464673898650088334672115967326450817205692599941198201379737796098435567929044875248255729282356846406472360766941293897600722025351906457265148384209907886369790761610542381110840743724976022223889445131593499125956869348855059487181276755743088275856992752299489540624663029309763307836759753508758710293347076827137573369872638896712738257451087633010170175094469393444496955515845815756591840835429420325999435387438045216685050845183967717098811930766818621254629353236900013363008046200749814521092429614951059154845242653628046958334988667400100053049496442560207170494140373763321218302902837948541612005028193300104393902695700873374373739968954171260382031833185288866804174619995951886535719690012978504619422608204226377953463320205370118090430071646394683204666998857601905624596869874947457772025676785304509891775232831763334378818406056785858886554704440498323156304874564922728591181579008944783244622152003289071720523611817376861580427213781362164931927628651188448410440799481569186544066951120898332912443445546192122904741601949104268491183081323024521199007461002397943813901648006930537966947465180773252881318981993290690037222665567228292965714692142403742456729616713919315258282121359819116834582370145854796995713016555516722908193235887921876511687494821415985209101053337887180280841313812206666327600872404554487875630269079660316649342639264301291735597341812485097839839838076606089985558134404125728707232841837561292075636840871018686657512858745814580753094194718994260711946475223860147551347947026831771585755391023081789094338082561753014135034509002241708449426050526843346431999646379631683886289692616979074348295799474073837109189194122254566206217874868812289479739249781044715047324302253178850989159776937435325832420984144743944993152699482491641823739415699861381768727823631556279309760366516023351483660890013792922493538720650332241863950411936093714659681556078326367655157392072813468648738904732562758895732033431075383185046124491311096922010158481561090275950228208303393674438194508771138272265621161606408825464955360728769964657580781093497809018821830623891247976686395655711355884872092704763547744833344873983564830810347100651940295068613349588247831664743242510993549384115659333023667422454240658817528261293113106348514363635537872476874404135361421323423353232106763839559331095261865476767147588920304942399170192836300229657124468475778622861082399448361945224915798338224153940787173975228508474612199570578850374096577430843392257794554303151351578099545487663022909427105545177911439842335452264731033749395283173335176302369950063599459879317281996451415688222509372290940197838491622566755508705808513409183080407662540643559369919083342973249073036081331432918799380462369358561004673037079779187216533987024879166654218467137743045654438093287956734991501537008158594059893800248027882326323467988116460550437617360380714837551517954226647227249361045158818379962526338558762916744695245327862148284952910303322177835809931668274610895639000579337974187094553176604058253802909065918602644350400008331075896242593252093346321508210943493090877049397050949279981028832773747370430829601973646029526896126340408166065054714412884332299812211844966286400176444126050022392119215889013103100497783044814438460463716964938010817549275792703666525785905343621696444764146771853290618890008719805484141425312214676769876595924346607183890278518422718433998320161631895571674792742862953971461032444503348181262121004910391325328387345054929477566079153023860000395756482069802736039059952721184286527824133466296876639526897920827662876597175005543537127037689978062893458494155161173181930820077342642590128675527473017081412232566386284525844609835055413289556590180939361413158189399101413432603906227400714808647718870308943804557706105227942026432404371285685030786113414319054837798559282913343829350979699490191383558896467891043685068521909640802556243380867107995058374288628775743612264775689224804855339109582651670900623368858290711530366932463402293033700275784731737256077505570860660510938619415504695768752527771163012303753025087458348417958170180275397963116292893943662861141840216665275495685383487763321706617080155594291594235794723121524447682311101736956981991446902455431431142734747036685383537218617572397433623373403084256339284132910451986692308024411884192752744599286912560761911385490083740757869614838764177553560528226578384626767591800755878570012195858803569942743871738105733604648785184109326739492524379545157676038788938638031232709435911001253015895295502510401856902333851658617179705886476790851727529788814054184027541254602061688346424984711966505328534016645152043715523666679680762840828976750835907687346667305060241478461187792291285401366653211184913431465357293615788752492075062499312392089047371831311191978361967387129113613229606970388761999957779248152580042668013279547520734470825967220965142783791647755901751739498212490305073200423962650681170507465326781085524567712742081708354430306208057275926176355033928620939241368529327735642834706648420074622836295504497785153277609615909041488141608354349041962514584017799267428875700601156234149004216899279308890144661175195676657304347508372052583826776426310694324536016312800053769494258987319242932543995420042323151513343346428734838853161767201839051642537353754456754139006165075788439726142862976934846138631786603778819370285604545770355149257032001390007876474496016151117694841864544496809734524361236804062244901462248838795036928870929135943890665283758971885828496373175551898305587160823910104832891105963576672597291578500360881564113608224286429929701945461547595031208723684105354152696251373885055645144123635428504283009034950718542181648910791375712653888412764626463435353821302186263744687289340617650137454485508816299464230985100238509144375759732025421342648870243243287621863928941533238024556922904443320802007780872738023501110036852197828142960689873836898531014453352968608108474862068768722690077248730841115497615815190588694304667919433124824924743567105406001098989275369354673993596598398168337092166897709375673777000436322914165062147539196077494903353242142350186696833734019940441285777136491880894297716601914569239812679478071552431453094167007949882752849442345633673988348012117290269078137243622358386587500654163865785552636557353670734638806605506054370537205806525376077704425742629189478165789151458321358525665852792957988188178235605746013868825848997699918814861951357010792566900618267289741021150397671008938452505467509277868300666849489204731388270097380277298140849103361942466558582381770105948119462937984721813898365318934942349379094343559114942692643742368830321444732738338064520015750232761360181401667435681701193755583075432439032441648525466316541262547982737971659450983715329315243072222879152587600968185680254459567232135976423622130538056894866773193041388335640242126806629102546735842870973781647800340943236214100782386822493813620872681091909771175608151190128833137770841959806558036111641831237691191931511456699792701716728749251440999691267591685327023030756860282107614247345831475299526898316028869426971172170454333346945484650982314632697130561956515499448698241038054054218267690243950663754670543644914456807388716120388335275756968432003236736585172414687122049727677496748511898337542681715739042490873479574030565580535771309126346110350726077011031856288047964234427714804931493726579294301598294349520164756249960284048927675704280033029788096240859174661192828682166947486653261625146391834693729567398131766705254713365179795253189126482459366067687191796273302712300446508671388674641392750637256531116390409897619072703715819357608428983861148306776129488886914754917526158301758629176306706455830315252460174290499646294157713335295709258856210747657245750811422149990406289068925959478022079159862975247610768463670957213439807631479157456618110383441812564177432354729312792631040427614967778205582371427169976142223165265685494514510073550532677369550128900445519812700081718986503699271951690801714366293746999499785990042507240314169983343049658967563402543000028798501553348737065955394543946269424810765027127348459483351207023663777529243193476547332407938107175820813800796803615276131209455567478999766482544478996803809411210158493958409502689979620913231891893184260793806625352248961052287737637618772829923449981363128673615777349562224074744120280279579105023781208683520724177786326590685162528273702786744909953555590783938845385308537862612157064317873736323720979333518953840666417917988848808005010408358156546262479547944217192477113186261152547145512073406028105681066363229996619399903276916573551896469735544817449100991985002104232377251737232690949609117957963877017373237235670434613163621096380316551232872815119850580972262378024981924931488450135362955615425019539007289876317251117953065105224143001663744245270352409146286915580961962868152669159765899914018090132532019845214465726400319349984268505751764829042221324818541372093148016502175965358885007340549124253131857099235956244629477639466827649957076746542401731009626009162337231888060266337845904573714418521415709675343146685389180458131231106484410250635083300690819482294117906243827081516567804321723606800300681099670920093558450306220834060818043078833572180198402726354789025008127878584106214883558273741136233122323891743626661776584681872480897421666176089663814442234065333471203301327982084441691916178294552746004921589136638400909266960751891314778216756299061544038628508654753950498347790276056877341822041129279764737368452887950471250704853526917350349443460628922255809479843507127687341383856187569102729736466742978790282047043733560328116471947243626030179261353857982621415239682596276407130961775724008702010338838088123970981102607640463713554905176756709715477191736775448074846865234627911304874299545210782091348821941936617909311504308795598029943704084416783247676287170503293099961149047750321254865111950998045155845704775126120273899113332078330625745082636809096283133186671896534331121289703372941562294607236989914354207308234744674582920300932503648025443327384776362544817491479073102940007084468013372177394177475309164690133924058088793624328150328370956044349539311066516758320009701735001433905403130120785352328663212038492289985028274471946100531636083411758914086017313281423975066471726985906283474846327593046707161579378524448267128625698403492747034481179786314519324984332556817541663152644773641499424911764468925827834232910153652800960779001621904374181020909278347353450928808458604665273970429009977114796268176533876583690761477256960173931661768517987916152062321038522575313903425797422178716385429668061257272170501364834780387836320955904824439084320945031442683297117231368079556917821174668538503741876978255868694005735842402113886910743885184248642802405847378797734268414875769269727788123678128084746800331392560901961050041381892098276091225593731884315962264879517146446936812775725830027067583389490814075209380631647764197370130001596693108725451631143949200438419824584115986268237682334727666181502463545733256580666364109719214777006018217595811975446193700438407454637820020754243464512176882677568391932045013690145920268643342890553722675302338030972039808961765441640738117801860975371735397410334170839858805436599589682755212838968701414185885883435176813825462977359243603992824617590853478216009044295281177049502092261269307228145501564025980041189582888066398485101378051543857774778975871959461086246817943112814054929084839496678228149386575402430207209189719873267776586992522626369650226517448467821152004060369891922791284848518095172505645366926538299968057854198186813339032800305166896797878506599874696484420270811835619312317789380208693893990964908501330724458660571016620794225586491576730248299852327075237248552954217450565172674077989115974306562982201900627497997262073029617327062666275461311201885276050432987084168722146193910218191735268397791146605143589202593192715121346000819113408972695873700977194169323233088968482032117018360851234494669168928042535893455183558328553251772309136942360356732806917749294731576904114361881627498931661198387420457307800039678382886974133148163422940015577316606106418446144645298730377380014026642571248185336575820965536567515722570991196187796826310287328465570683252120006931800159865717547926642992804685114933053578334941446757988708121450159851008512821481279846705334059182435484148648362311130437912633014190761763896515816818429692331513651054622665811720374733058546885158632236824437580219439768945333004482328864090848817322105467240951900864277501508366286269206493665483066025927924110400373217553991366687330489716166784905617603361080148333448847060955183073182592518266793771627791230299885112278061114192217917110042442845747311383063136911747959164986067056479730830198998018455083853668660308724503464087440781805172726569518268529964208193260146215564145444884123735821897885931311219226524788087824973786028450783452866268728523421566989073711918160683146686428503196105436408909643367558161517059870260516065047180885980927785441306204150236578653435998407227065561365530158846492558095552534667665147289533165519916407111306054664859632527445777461794463231793971449101051603395193380564054523405677692474179603987670401116088377087536056921725887973345538756262333628161577127645570141599219284767577675215756745000685996241638328421223514225901862952714033657529926687057936441119094722804576771327401580966153118740137869841371206107965755730385759470270246049190017868909643610349888303292640883908638655517246775402278046736104565468905533680364869141442222948927129460920484406787814306790513520564528243164696494434260992076439883998985186498497307723662307461662092266377820870184812903854572579796063948942683463411362128244075046764493567454421620019051550758066903708095481296115403458285173414518036658697682130399262109958765378355131578656145837012737810905555041745885869819646059470914480661952610353790591166997150256876273241940347493702595111335392035235373734574984154408401207663037784420851408125355029399276964864329708144516663728248410801555012224919927861057313546420005849882525866702402275631714187196640456644927068295720804181961248046370767783377675775520691398927492288688240756780342718183225472028700108944092688536516029438587791657223426181348559774309459129707407651103876445065087010169032676907002792077927963430404266803345897433816542020998658260068055908997871172352817133250881943922638001418882406821345635102167626449679666699432704769119948378770779738019206499861432303727856316796359057330517705839017257658968278662578678557506817705426360385765112130857908053503311250916473007252015760372137909403879112418296091428781880001958110526022747432361575934254583398890525934574559596676736803659485481375652620972368353899180681132525785844277136714192443487712306404086660196101540657419008175971106977410282447102247255000964197907921670589871844237459591085559636285732305082695381079582614135585409306853178265714850482081136557155648696916150284884797938641867052303868769613601785294470376365334768326759532345704980848921508953329492978039264681628440991253755906248113451453013644968318342681710993599810710053248444359786854681547457002246041401853145050257377764252505950658878840581782849434405414837588714011693807811941618302961403086320115951460311081745772472755953975457958972432640553073371049812185204183731294470218924778353329351398593039547529192114598885895517554529352567158944458973403992650461341985849696016852711094484380711911442411804396512016281463137991837022706853856283462064811827856442231946120468336375556730642768839388926164516689205914193552870692833532363935969800490414358158958118936766815861710302326950297907886551921779802039429955896358839011888814248262670863541801091443566711020236474461346638406944380101932891585935565475799568155781418292404023738706889133356511333212950012859315628623292997119072675231481394017673471606100517693287530291292670667980724740715038138677460939241421004760436383002389549863607547275657982135046071862730395019348980246126268882392364965354786695749251570513075246756553541026347887430649880075537867393927284766708553627563232144696161690670547583206565394155887429524354485352480849739139374331894677652141009494293458422705341722050524199716093745549911259333793037874639569972783943962568304352961062043712936797092360968828584534732066593835182641117394353171694442316909060243984989671177066106119864349514623918324609109393742109674781592182648063958085269803957153584397841113549110220320857226149843802755015032313793992954765687841668257878436362136729789241923468037328096048138114112101057807143570048928775134246435105664984865334904455315120720312773114980488859335972758258497253890580887052021680698560193072191932552182306214242048356708516533750508975604309103363791983412201337472637911149983899670066687280004130209484867638345890100725601006938484315736200791409871421214173745926810261438831318567345372013140910173129730918647591061556121270209640400627288762779220522466991304047659564747071753489630620497964398313059841825395146234802723151573339363809315857558069857919854716803987593835430845739329502752319595332023229363046619630787496658078485351574547965532538735473867587418911018670900199936730729896087583048152380227116720486748809113236102128147305437404800018419376960893040871254780635528019345169799699215905919396077167497548997282110624982277427739125718338056498493125075972950188421491219128401463998349797043991270547653207169721072478351546643769369440582666134653440523597269296762794961184384458425553038409984259571303714706260648516636750941487934821382795669332091462837997731845732055654165223413064193588959631202544200943801662562653845476504496793111630106776023424858419117607920158937234078323740062431161925695007415192568978957772430094148536869803860894059944569513997910586463626412945695947974502809039122824901146958339700799822834637022793546855033298311975417996537442097697749504533343907592929125847950298642623743605392569810857694422793691473742221293167093362203054995048244466785132855993476920836274456867599160151389274725029926279814219308341128495296017374725479590425601858599038187460982894581747046795798707657642545148896635750477007734127092093270128340080923153162732514730965359510081479047305769910914320971672687154677872667942503479412957287721775919449028930721079322359937886567645089769016622915996090544961320178298060437825527392006825242479884272767507537211193245976978704753893769883809202726383068913910598322769176652942171457960721320554476935364239034211013830694062408528887004485260769519757644284955453860837277512124234443367850322731916083788701486718176954150516272313723076583721645369286733549112013996319942747970943650120849232008837740296513332063291910114465651594412589424180674209687989417876527755567775915406548816362764157265505603274926128271739222475565319387877618036701579556525083764640648131592538052194418956931809980634665189447531643581094269962557166994368097787412286208278034201782258397926973417301108063238932991308779428610327618999455504420997198292550864587538584293889771989514196410465822291464538738877878306683351251169411420906606990996286118746999283683822574541841487528869613650872015290212309091258546974574967544994647945999849508491646667100644658816710491276555843165609376011580482251426823794060984310919459795632812342825419181894962361003751406272296222017032897695848043116329811777980714923417740413505304480957958677997193934970351664674248870652039175477067900347459137101082848006906773253250349566713000561134701381676853427093490816539460218190485040016567431583436079036468124709964790263724126800591175079548612618311421076247281641755508998041581392512867105028558484931328801980055965187218340840643886788475089796441388366224798714203216419337657357061532474293435780209120998375074975260043147796043629670253119969722922354508411774948450326278579089390126386818083521456732638260319612717074084385354912481386482222374659486759213614303024374584787624328621102356578213784385595091637934380433559932186578196289437094981130345656452543467659250258920119704616828709415290617372299704002577761500923731261429028490945372619336592117857545386817541853570146231768633075763891162395382878324857551230434919766598805132200264924171355629299325630819707363411976288935960926864007599930455958398682019229887979111482880216570716099852027043054611203643345554432505993968067876803069283172728726144468591526569721606822831023080599519547280510705003764442447625333321068966131774572054706953579144985550471163325467637441826239344586243170932190391209756035142732819140497823616052212033439846224836295226302760537321083919965339506713529143102868006782344109724326370737341236494816813654280197320673847045757121382593148109518179049054657648252203671029945538107180949860455085253263433057587562976592105779301231042703822861613877446765796213606603285954752262154455784803770485541636522793182433500075173974352063190183251120678633490833737063315130174879734641458415264860234959289019276713321992560439119200862236584245728808541150486240991071399955118433250090538992325500918635926237359153577065869771688080555777695546328635451324260453980628507999459618705240693591700164580748476957851275102134436258840511538254956230976067169606440568431556349617467627333731795688592361156276113757811429996698517821710531946749547085789542949220191644109663823382775153937609153044386572890934935828826142622574323675487720511098715880784699108377239561179762523327499125564638180069956207374596725195658185239450409566358779419796528278825918644031531142244353614275351419113293648664360166311918541649136662064787512607112530428647789671873971828614667817131820846507595857770240955898625702474593712425008137865031601970439924821844586381927304894052798794001989498116056939809104018339115093769787833777230851172039676186408834357250435402856323731810966194114121475438654995067293312372419401194201161588407830061131739847780721770392243564337323474582247245826778216435588441900649182431009672424714628576305819242915196109743378840898945973507395642544185321137171698374582299915828044074513531347157870304410982352414149745227204605153754047016159225442939832520641995748836929952988898160444727431564787946773716334166287301935992105135277777505187293743543348643566747394468771945166169662763335834328216607156506235695327172704143992585256116074724782869485955231767112839977032126425371795590532984373611526040020366501573963913756793216123339075935652153004102102164595096085302819717204638933971348368750591721630875241106372360572454995829789685949766237073468150109669973466173424066205607886999493272872151745370685293796443734954771128322835981751301345036512381952703080158048383417671358776335660579647678276995783600018349232768905094595987814506273786101195702864365061047121353813749210264333988978166846786315688154263864209759337556113122032705585005405356037703380756066933050218871553492907885344963243151590080253496643701732522255612197150553888136551074282326111291303944433288867159461589178133297117658126904291700903013460340233781727831537055744971289917926773988276864328724862458128556088664972525042883187516074519428497989549147859004067778814900156787209785368428438689994115650890327481631138561011585860647296959685411687243521843854765391954400812521289868138034029578272045247196208256815401401387567579095702329535028430022716225348767665261784983312529785715360968674705969983066827630676769158890504919608090713093475557368381553183163563857045521099574869500800262504158676643622098693741625095133759907583141124472179215025721028020121855041947695720454773656381340922665575520491465327772208866022563121218300305735330300748980001451515062827571899348546205740403278931512442546154686825334107153237066340708874829522711865754581814596962402548211478029356534868058104018468812775185398272658944309242401820402939371323164032614511795884138490269565639773387084072670788726721191331291396941888390184539166721185179776249317679736494833366589625140448944109876397651279692589085289226180878461390131734685872041068065651160852517951481805293399996230302814524198745790821049904398079368333767733084973816154619530281079450170326994069598648786044652254879122184162905463628777651309136526780483044439564995343023711034438007621648530955888065703691189990181487213834396906464136219945123882879798011895647067513563297533383240835123264844043186627408312435362222382652364966378775245027967788586015784857212159757833523689927697378221521040187609123193753369819927251978543798193925186449123688548880425600376108031566881363468447688759402685394998100550552398460121831365412257381037129066992681446743853065113959970245494862030386331507444483918311317657313107281661069665789768829556098622654182671884891051881009582411982114170073413441758174016481058246412329712191083398352198774875427992108875681558758758323432362671083003778197479085630483640774961985090286703900487082953538872930796492321778285292821389919837399731937710835527987640725178454993440018513958553399704759098190696550022487006199530706011797354651230289816620641303959843198746610071426723859797240795247147842991718010783125079458164221999951792180725288669312017849697383603494841836709042379422060928413050443255595394546885342952073033220264515775442812807019476575772226910160923523140860305504528960980642302005314053604602668674893701736058863808416904916353180617632822045982703180384401735908905162325315482109055052969665411851130992116897752814833752136206400584314111739346291237417720327794192310335694110629612206222407932763748947824039923941186259858860395603185852737394055648565926439787457729700966018396551884357562377543342116291901862817483795615922613873830281367468443483721273696379077925147134692875976386471038778776881196245004918798873862525663757706645202329108238086082322228815622180453767671169628856143815639563847315628678452106481610415756506413260415724237535468214121590539404726645276384385647105848388746892328001137156682466966761965220540102975737887441817334872759756715854785167000418578082044233828815533823839726094772202269195881968419839419589588751601115620436549614669120018766144990048346056454016519233456713082876600317116144155987841185335619885645486986493444863677577012279224181570062751867450412526083155773738465563170396767179150225638175076122262584354610427126129032750623408548761026970978372288847584901996841853475664043627307107258591504082349108863237301149789240185822595565572442837200389202379557083230905851159213245680081850612087105722755805279869205332803506645071472774500706410051174780934668504435497459136867331489430576442106161524286868571428612576098737419729603951878857245475593527728186408261494559423640151066383909491268174583747150722080437294713844250623470282140345604007156261670407478987988816964117942554323107548712429593853265993969388255220155589482213044625959445143114983203619992184846208015767306888515348473763539633451991340757427436150734332958343026517084131691672341106906961958326286754985141283365027271777552574238564823565216505829057214585532646882436888037933600294051185882575598334358906218946727921454380040427817257992818607936417965582002519997609446084597518961631938095978125881073561160161676495447225626679948863442102814252324969151016938619974446348408286056440960541270436957122708085004027337537750775627220747556100540197047323259335514173472570409469511240784395510495525414828186348906251184270141580769727736383526477390827242577177571417355736722762684616591763370894391855268243391025820565973859295280434762245906015046842321270973573372860347833526211520575621026924832619472442249174553118630136360241617894273662845265531464548325970261240972497272192312297889303142387860646998120051410135118708435659743446116818874439249686219123741689043587068388340427020216743891496486472604310505869600367961243937680279477152774333335518777333459434382796321356603834167016461969214357341462395134283613394406247156521190030896323625712858322366279185012676622295757938838419387546211934126890781630491090939406768475645026773083582088758140098986186495449308690526944193967823114818191420102783014134227100296698358235544919268986580007364777494466509185668601374273511075356289857802396955212871014065892997200165679660804562472682079302785736349769046639411889000209434054423840886209016560625891338209062925215736486753658870740188585199463469328724715643790107130059539894643414690493445269958736294644426484010240035210731116119862665438063562374845327609327845070316401155956304841983258406410467318811573747524320388844966541109483125661137822804667257924417666323610077530430645643820572238292695976708126552673781556354415711872105573208586485468580042099110436660252320291217606702150873492924976184139875419060422847936140186158448236158913667701123402403319336860737472514558006794718898460341500480400598378516267687084942110198656807659572311563289405042157874792963579007804148079847144938230762333127443784693033026614035357908046059609618524844298791916980887324228010374096860091863606951034366838924815592905046172932024611708743607036175289327509946109850193809421041577523946591527936208494087079077483948304278211706121138090696220326781450919317471802935502330674041286228475778308454794682573517699571865572687824038616016725256803429798734812861370242346450953210966103261103070181975967652760969008120725338954141500937378824122961554719952340664526241359360195982799623011767384438000976307846256267997704279357231842928283317879198838164340820036070395947357728781942317500050264984181260342114611456387612684993744089839148357625452839942214745444540250187266698948383904344848836526307041717717206046935159999579196171206353717226247232805717615994603810216002176735863049092093607455242554513709667825891101571357713097512852159300287414421253794255687291853006699115671470076082380556629565654119187603285782953528378952855174697512470027635476571647707022385916290211018225203029172557336307666002196070344185226385066585603134465620684893460125825637945223261535383100656152757198664005296816915329329103339330200715314996786335570262171405296514464940621639909434366458629241067313968798749065716201739732186181476018197391671402046902733569387686175186593028293928488520648271072646228479525104460232908278382563796506405934846022619799938472912162392679678698513594275757065532439654766512833305123300597370053552919488200791927897709498480912572527007320481705455208895368075074196662060305591830596017380508449939370077425315355346127793896496809018983553891926372956040682558372840790896518910192164121422181014446964890028181069039114675738351117930451872547658660979553100372270878992200890620575433725293862047617312566937788265750784401302456824169732737808926443604273000217044595737761313873577084081002689380019457461747515744220795261182703067061164216556900813164217647580099006808513600486809663551430054548936165272355148084771910825221471357972123832159231476037874046475267898945305951048223150003243173553437408467889481604172509949147982643768317821076035355709418049740976187573695031665929637693822104321804362912611765734796449743889262876343629110651266835294634008430404915351878231788123942439959864361647876450933341147318988640946965644434997520326632473895609007547882392818824142984032943510445065581339865271742587891886830814770925184875735829709583854816928485348237227359637698935085218845293882301646395309845666017998580419926449535057665734395069466981693363263401657637076168132455549684869552374343990105180231831458782058636030189312700664072886109987356523505611852106993273029960506215991892595922486932617166186026881786712578212764641297330865024282127045511552551391667252018172478812573506289481587997369815765874614810248055898753606035139702851539888026347977923107730781515212491658065126068377563824468303919016461561964031621885184927097482232226110542860442511766014933717006278681782906039841622255734969127579034377428632712941341803433404567537364762508372739072403447570217062541011651810326236116372544930622441073145077597694536369793546506130970230748721470410419820097171746250379840921033849038051495475705174526043354372921656371690160902032361847144775584579931503594788882264186437519249116906384100315188342483889548336584011682311018762699407344995814315740221480168762259207296545072436504476534263342407711259050093990197583281153293112950081100296875147852103530219882964205377751494962114968201022988120648564209398428435365974617621537696313109622613171073199366807577443791696745630342484223505939954409126848178554328553845252611733658991194247633051397556293778175572235548914325825041996635323388773710966847224452544729989621900534463691395667862729900723139745749361256706133299536919554021781338396836814297914156540752135933706392959026695108677393620039671720424406405673691841735379252517890491761949067760827517458949391823985662303548889733423483064845509002599872251496125734844643314754279704244669424750996842475010903611448273060147124108946420037107414568450934901172486450307359250055313652172301675637054189507237418067230084266973819092433994484086777032958623014676520950987516684998741222390328548928626637824473902513519551514805969728899582180137110626125571512990384394135026292937218787448919548828819886500354723176839712742880319332000346894246080616019741379407030757231070957764277734257911400795818277253875363462801039982238741839361707609884238710444286070160143082322633435328119582623440322368734524487981795958961558659855106063400041252991835986731738486387837022837820826731285403173845340024265487244865884118200287355123338944943492196921941040903211795179309929916436626142771158271806791217532673634814043950897751030121590838147789566626117343449134724809681293772309266430586504271785131906589844276174538641871137819322684181047634850204891790090146335442392501809263033375900534850909214810394233282126520114913785967379890317429841873288950936435195348159255804504749696166960792676035667146888858723009803852311275615981026098550740596335361846590244946221158711997259851569083477742751503443301288891917957255028074057291592291204514284884367660276648073808678259947424756287129525636135369737684722828982185559293730987896116264985161730334619583623265835847460872437449704059640370181103480498625825697392452889013822796729319301041562719560835749341707797603887946534010940683799039356801877426200614959710396467155989862785870868607792010103454696960443738422851820950288335741446284197137109479872520972705303055306994361322655489603622460832893255243665187592865781976369162822971484127546755197539706896028047067704386227020163655565925697455029250174220453686862446919866470013128381246889454648333280360338136590896533084274679382220935466783623639906765350907540820237981481799100453788378060013118620654021159254159091053720917845067122570385351350182760943202883984022750205752299908357189412204226206079267502542588604324013917906926815591500977312172639641064999435621901817080825137819069247589153717291429706365476930414605782567839830934072039053110511020290191178567803032599219214446515081478103374479322196629669187751132870052644406431603443320036972277944931146951098000887833904346298324598029560437647753768854270043276555023244526636192852909299231862750723621170008936786644496558820124774454579572063841909349624687013187036666251096321480671925388671610737528547196836880754822256864994139978699567952791144040320682966012822480752684667495231978339526487935703986379066525748206285050311845854029366346412559426258937389495882332231189578985348881237251271691903673358235687986911289492824521906234000236166861951863112010012631397662822332521073262643790694011441827392092971574458762778238097924972456500054512692178763804000981801524824276228695435110085162436545114993455869972937936554408338960776761396884537740056921102988577294625000505740659845745716680287676450836498656518142949361433218664045429809473518283162076747530285432310040747174294724199857349511967328064323016068567558638628779988814806669119713215791982909002989145255515271929803167746998925799277330067055414282003496182766044868718547883027625432274400681519796421399608144821740711861530294009791348167069054372025431479105411788596354895249204538730848059887014126483037555834779928412558267648081024127825982395503917495074263708109498695736523682039040416019605047686094382215838881215384673595689043831201702841355642828344269013980039933240582827724257783647101445603339102818641891637492690008979146976104233165675848744921955028412931025921717198608136312821322900535700830160925595629690755403523073372496699129549424727205210390193104465178931931101848965428305666980271184923595359248440633149339758821167555187838755861749164551219876701920725539488096669497154935059133566738235791681474241465221750563876647925019012189584815848493696689230276066604978532033608982813339499277320890994409524923552610696847687720800582255627135243839858267986806717702924223857003147538325533326530916991198755162832927828072162001919216334727346005421209098226513517137736155366953112269313821961675837599160874684015048401468022146827701444028444468224990839161837226199280831741651950021190943987876326397483456992226384973653174055305690352343533402665609686169338923343191483444440984967831897745056517369489815684781980427444677536187915252107582664011056555736378056769303377578124288681123877746933012033566571502612985082785032794993643018376324101493414877744634026849005484782522291006335293945395937406534050627088805906040225205092799646767299684173971928386519192161083550329872550961224713124213751294532756168011100152963881731746465024420553148047962802149558682963606674770000421456482875151340026256349172784361220266810259338712270734039180447849159466251009614029874249881545171305754380749095466082903659480051109624541029514633877766766631151938677309204110662476492296500579355505739718832152827231837291323594116012358556125816259412478919548919590984090787333392957787003198685602521540487720888437261955226844781799706390750576991201230210542983210002564911411298449760434240170232165186425736978466824120416936399480406931591935068478897881902682445453631418232540909120482931402266615123759510606660716206394306788040612114311156172981512595868753629988458503009898987528551646409605303591910791262222236362019406710269677557623522844092034207010498657362113685693400310526574001895600585272851811806016169954050473020512218492701276898776087186056192783835598492338066088788083165605523137635915003455512880905122702395939289475238793906034582680570225736965159947677697731710359572678477780867574729262056125870254214651563705745081940198639263130978813793466933622796626179428571321848573555001577398399539948973802782368641515641306177751684959338113537855014014850365639151759669515587371259760895647892152828893962932684393391813499919956563898659427049094637959896914552961267366389240570125824920366624883123961144215737452144028023968595691837380892991937306152207366485299635676886314192594349822510353933329510907901523269437764794300181665551098070739275117877325890610012343850749346025142076212955157462651392486746527446024987869488714494785939586470663590606668960563860245890559678657119912683568471682150731298064796723615184989224241844647474897922501902903186771008304488942427949910235224073739445404179930903267756180167467693843618736461121581981839654061092165792615807432474344590474689501173130469979145955428277116546262627302868340956153914838672923136680775463263205509492201936513638537004185746038230153142534609556492440115581533246689228419380072967094912584797445179535759125117751639113512197125919524664570535303638819451580338815361165728434381951775091695959139189919930101452770558607580586366797968001719627594808428836392254736825352432111759253013379977364967071453820728138926748414976531031167355582088007721689741619457551864289970878777284599913465230773973434167489473317788114541993890212938416606801007374044360793537458509945924703526917027747463394960876076513182254974246424845509052984070521969752810841028015250515535837768225899349599774481838605140888201383958769462686298323210115982077683126106724379563203614675176697676456871506042014191503171125432373480901637288616549950974442177860201066856704290229475811084035621063197297184133796712567746585854733604407634907413969049148422814557614286152987607206313796051021595998312892334294578865054953240325026478330817913202355405464361917198553267069426166449664626616852177530167272271482726783856695201080078969672348476071492073786302771799698787658116336188092692002732695826670731962980316445767783675275223117060961288934725853119352964886648060547702346915439026139042617999757374287671471140773074228018510039525065009964092243206362346243956601313377038542439398067466914615091383080094738382285210952155047093762440104506472391465540531096147172462319538098188586051642525779038030359900546588414557193873471001464312689543688268728555425346718351599494854719735675843662603690361925201506556148698706303162331030067238203335432399514115945449375762714609274527178570238348524107841438372507062677909266671576421021606642187675069076417280169371088873678570934282602962187988016537474266251254965457847893703033068285354963799890994932587119333089468549919155040124042568785341093678706278362291414255252467750060297085884332474824774141602256966707207241239717318627393629968772787208504776948521842728145377245899521947879156674731618295308902540020773732258833444592261999958394720444372525916362188636931357766265924535526267908027162321970792547538938966726605934037934814986277383803819963502857174309938348495181706484245751996518564058980509627236446462372532688025154039516813643569802003153758789699819174881886439443566553434859924820131304071612545786405905932116474016190035637509587624212890313489362918162254341224569312563483574281044023732315736010633237089555288385493870748610713314274376147945432384272306342035640656093654233376327411599846141977214545077896233079632583829018195351569050007357185238710011338727302051262116812162897165523107139760784476600659049035383580241693133144219488279146805685499194945637990975510265972918514276847288498332009715568817450468696513718287198964503419646901166601788660680402381122824675151547855409321995867436899975517022402165561914743142005878913954233038420174075933004245160122295712751085335374297442916683068337301463937519953804075767799310853764289758419614454616001341328491114133540821763747982695063077371449726879778351870403930601039785071916546378399004714304840774480425158902960121628114573441280765173877562517485935864365261688232527895545364051574598861334178698474444331114981833648522969078017531893056241429630792747371096793105117575201141554846866741351266976231000593667436254256934073230935856982283731888161858022187787294332245622295810396521591013907042664943783841040597187439861105946521495964613374825617662947142107159710870772376534054169366687480371859863168061672067532366303464011088174844761089867717046714260141073380829060702051337862300822942397910961005662583827088631812398977340183099403613520488711828257272695909072825255856589110174754628693712196596101810860431802280030722087171901972688162113852659627765985758950772222030259380351284026712413425576851487106182242102501734554367228441430977860872396079705715476861313573164512901951494311855857897444334417472885347822582562142640535410000358116177691709382448063388802256715599969006691942145031361261334681520391132671059695943142342962835746051700206894908121895957435833059465624265806258932677709923287514734662516992002112457080764336570403031721122166973247362617414654967803195734005502000847818104829396144509387134263879289850961718771603174575783918595574852821665863656041880815658400417679250346398474248516397764647018556257408982239449503361684091990046234714793317188226916227037029903803326020385524910474737239355344225906796736571340390379560315470054593266140069512269252342958547599655804125767021706636633330906308020123354873369104862348268577862726655103492069969940630166148538655400155161606579670335129775003898213386122818348205752630439241067881632949068467065999449992121599323318360425836673514965290754875943658817867098150654680162235607762917208066504451417573394495594713715696228714093081375129383492397231121636220588447253713040236103111319780100954387952117591326102643998723282171084607544709037567767659580278744739149228412332607446975849720603683572869354421258474086822045690349878887695482899366491741483170601410599073107152481464666773835951201489825824343857170841806776808185719291766101574877883913039350151238209294490560230279923157387770335460236362933260848982594473960300016468320593932908590112204117559969746970297430993615748411466523398112096445484296920868156239496262271022562901607899495857756069460019759099754230416872077980223783449298717228252916861056119878130513223519999188983241997561289678432301841844048972331802049728481104566080868965690206085498295547155083311143807120573812909220038855839573307360421859916495394450949533493468085950444093421432361419597864659165256205368972100464224930730392972557426362800261138430400823034135412991755357275348151056896930777645754491833460645718299671922806302132223619124956969781464839217144810402297783959164052473126579031364901020325403731047835587629165781265267536408106784392092873689101858195358604050266349077841130752866344327359808189402556579653903327858687456764723227444190768165103416639516301784984079577958217395677771731926697995473865255847571020434285300872922193988317490848301387395572104185997900760807600623690886595287963089133621579628232014629574396644213954337968261963578861578813967913968615685280692403520008851691994987463482816552201057530240389250268500372059286471695657239148726618450544153442181644854750957795901954585389511783037557792271582732594479027903061191978832386450057773447679277628234930503375084895449827629335468785273782500571104416705326198745005859193614987771658655289561097128909179306243571944459790864276577062608070749576007548404930811132926864931338638281450971299562073882987868009882829518920465194369431867795591469383964826633399558267211636529840330860660101184242873983050898683294877823301507473340120499991777157298583822929003514989315011703429633765194482736020232943953151750666287301365441279857908893249940331381522461934463765339020589178224278933121491444057730573177855760695484106094124125661488322048523094940780103870456939909007405898532380755186059020392427465382378193479309825500836063440627635357952393836352547689636595118673140028554886894759056839586954125435920038567076399683892331907200767771213835152121820419614339728322885779086173847726947913602234571474878476393050957492443660000009693808448223636778169873252041827219999167855385184126069838991057707690569691572850530227955208223057901975410998318174700456450753339406433791038219777448702207963755159240920258945260311479854434275739918400050873540900530388967915751183619300532634511663641975696433116270526492219344484356312006378238815165125629764449299969052178784561127249305855525006376371223268992333513817252605753262934124181818889200668234354604279438302393129578266364956812070956622775042774597794991794612293282240436370824197260364390111160813242568103319234268861202777794731329443183904031035114102604235115931649629217330304212098561551040164232178057348460411409196027447353599427822607246331400842668241373816458176963464572377259818841024352926613827276427549574896537302428841362760225787675353768948651914651626489242034932015441516239752870818712708828767163815065158977312111769635979681578460047351559214745120653523549831656974503135236778431620034359928406238108650727502200387372620567558997333585650221588415698475084246133023421692680793461642168930926734671161409032614675680969092417050304977338479882097886250835473512980278065556704070088358103940164738247745819709656984059368591372222237608165079377069569359909509784516524646199039448323373717093089052621719309492050964053260412320648843792561143681417665239338645913206067404154083286527204674888946538239696980129295229179246404881569411837883701426558033902048351104668263403210864358553228543190844247139583473767167728453826155773960643104923271191830221274425203885174083518730366173982914202347593272353765688596478540647873772764878021160120311810391372694264268243838614673251481741019928273005174826265806371727101735856703456407102906843569387664510285830237925350376998926331466037823433851847381149515954140675889493518249038769666896955790686922248300068592654830267834286575777383490208641759809653096256045522849967361252914351124696309056649995209050425846788451621034873916472304510014437706960534025604106484097028117617276626989157207643557028893391183741464334682536321599653672769433735055615063643333337786254595260676489561408563995708236831215570059375377462986284563359129177954015228226118964871156713030870753965011177338231994237290898310109744100076075187530173354303329168591570741509218758226632436304292415095540403436769096447842169674188095097507636957865699773760203979129616187294301649133858663949929295772175470068569786808507223814964830938736373164537651388341367610004665109609250049697588013091972885322394174343549690620530264186937044343447433851257478579465688168507561317675652998154695743641577059927622052610114896819021777596952912320184736477616693139749464193996723650098919301686134160730406029215570873350904551536628399193468905449128314738785146642999677256632467652513305903319736382126196516022888982711413212391638510085687822716793863739891063639859696024484140425136604154845569963062193366365845871493920091341063549701414455161101352106264983814930099504216123005238673459865352053340168643682804692299001029703242135745341037160764100348907081073147038845008317059985566909281402875029207997719478752741178531570275467901518625800788914451457852217485726277696331850264441004122064806002679139619117781198301984707527492768303881328155859449437936083165894390595385097601552800914929338024921749386851307022067488028761629073237587374069924484299165373225328391711029454798872121873371723213284792927938129074147252305431925178389972070331483403249466092737549824804695771048340277166856166053751196043109239534647199857052793116740370721404173196491517788806078399968122723657225926477749447651715359135428711422483805768969978099263393575100076170661781905748996178790706393877963097837131961164547502462503824909277813554662538083098407084216123422809909358423751525432939476365467879269631820241618529171412985640450168137850510089765274252095575798825275710978649022218343777794492076111595807981796057124039753089456028022045381372860229994869195624548668269194803641949113969899330829822742483520300428715663320878458450287296532534224201976735825743393823910966489205316505861638801784389242047343807786328645692827972314803882130241037792590864606815095157983227869239359418264419015642604164562125149249839290995418465010946067187455855831725358028581137718862770518676410137284899462652181336295947065807759035355497260205930037956173602840229168979545780005369010709148650565717277878441902200012337750172083653547867204804769890776417614282913528862356139271543373852979733006282343197555885453736434484371140406926980031564951075993917595913330146507650674454913402642005655431077795930980903294273206676226823907209553340294996438981623043091463493306699106288556082294242598606095991990840162151316212262554098143658214250719010003916186782708014296689095941152152487721319272400884693205655330373807704863651715138117784129441454895251404528019151579223603585206583636746440865381405306929725283292388353966187935431999801562125659546475319842092339525563501790567816411459958225162560331350865096412617557809913479926894950349551917645193059063286764427737229200534682839333068289119058122190416222239691151078279190239416673581221697909920271735438758067600943072318429497703245800142751132373918296844221599257463117731292867279104894636254007914392583348779375949971215828052461660290203154051794876333784318647456274577924441386277065762140601760256144730867907661565480412562198111106716108355980913037991220621898582496076943185874449681404152525783614458016855963384673656498605455225465426531335317699851583929818098861614418693966314077512740839992247380098503728071106920696634716878183325234926698524596554590637848869578451947508716772407832161192027650204867390710348516731429419044236388346476042690135449131522993809647520000766766765754323742654003097472072368736000353965655029986450501094038362663142553275036698390297425209869926986056884202219177758306392664949277664049031353004658708425519772838417868613649404857123234173792479959174315700159646596060821941574211911413590180940440213995021815023673802488362015661772988680101176334636544732110727510302484637804682817763697466698419139477752066230827154414207924151110339344427311596558119502417503230649125019708208704656487528469600250977433037668448689059322246178248815540250687473646408899942998123533061596462440399908455158475001383697502361545949085616300312629683159286917264205461473744885935440105262411017510678635018909112125215486412108975954991069854544493647094440497516793663647447742247536952513245198621414454666845090607937844358407357772169226438369006727087691853928291172639937701513977571885559673643568503997636846767050872790244349298347905974566241997525170678068716925329127779132258479969512438532767847829307266745314894703796541709035470730736652095231384607324852413000322398465288828151490249804257891750883162809417324652698635345419307096403463679704522921976096899559302800737753535406813647561477532977699314847264975961759549877174404517979308554767969261110397762792634498342548429253383318548344966271678938477168953972290574232988714226860084988402619231540431282593085233905261668688832622311405859319643682175690925950090075546263749434676564152056541618747401179502543426957409377873080017187522896756513630259586546451190448638259591872088138985805472443389300930968468053096582621201878598989567897349635687244338647940869615982633411664069465069957636399999080876969372855554745528620242360086768796765481324225359101427211441821601688303832114850169840577791117225948806958924572186763986159042742677990771674143682817047700305197561962242262378655099530757909172315476300025440852911421717660701552945631760736376688149247893458930210684882044481188764293750807729145699991906541610323008340435155089393426631284976446861942100128444805370686729355612667487964757495892103307999371455226328676379814518033741773426425450803225675531483521193316323510197256222893004953865846980886612073034700318327404985784863909464734548534707530956743873221724824192977546883311667792459910604092563869584867039370056955889507706131610789881655447718606946165107083658453970026734528916520603989489159447845897990062766113559333092641108786939384159084409544322543843627449127346238850948119324398125719795504699748022544698196048466935357900230308129460915972546652366409495029340144365019475393493347730207419436584633100154066345519113824400994531646435508932579384000394099940891848130127920837497545269800960123413092219814442401449245106843846241751155678246010857318736057537291536098324817017051412762954447772587608519822640932592563151174097074937145259594967905698171095486935713604906628972695986978434248402921118427350836581720306678051608595286108986544705301649633608442331610537195096282103625626626961268538590106569409992738229946755727950361439414199143178284643862096985100475922825001817070944590467651654380890091950409778545511193971729165207176659300895436418924058823713655723759123985897682084394787463617665342424980567780926385179792429673914691893860857846079535481020046855170865066666667268277860623626190251816691560094201324775924725541910044244292249929255994696493321839347359512153263263354846710993722888998607836152687573734123363690574764388177983668459494581239630381515640778804304483398539085921675248633725425563635498051363851314713562143401790971964343845538512816094688591455819857858422272957327061263226394411575107506432531455636814004149142522758162267720881009398092945437913976979250728543208127109981415621506894494500017373473098059939751129718830509580748132276636221139653828191681830917179273673314854577369294543133738514096592390048647940535675770455097809073355597390344776245686463189907044132432885792946391350414928683509950243715102588135474205528867140226305411894172563788880459207900903318877803032556163126070956210809826295702856549373396610275444932870447641580233728508822553373615765162770019841776196418439842787361488894834045766037642247030285768145121190060067671553407000009095509700579997896761954911431092650223659448366747945145679276109429553648595425156985703421812847075933273670975618778308069092211809373433084817375517989828808884252303026251193646807187530232537589545270522033365814002469819247587477183098097459570466665323842817524707459038861714727386801579203439822948402601220211198498918133493605902330214093039054607134220394238137740679628335150361562947328021489091566589241430268935813201943350581170958588903964355165806961406842103207477844541053784050305184145061057101606499928862313902028522984161771349626009215721354680104934848963700592290052887443836286740023279104295889753184333125748485657992469662865703746177588296403408150615180158652709014498657195000212713596266093373000096319411904140953757759871118791612420664407987227536181413529996052396743559700093500275131611121218336486206994056439297973616124932932333528055810269340266421699763916180226798377792222531639981318311885083404575468077724565210904509981780265562055887500960876859013468551063082176856701442104323137717592143248584817807395016244673069595073156501577284553308122433297263930472707103230751436489287457050009790823300119083924493688499651365498584980965534297957333531903405718752363616791801759437902154434346110442945648557088964249408819755943597712803763126442944083211920663043165134167444552471000997314572845029229930260731242552685630200044519154990747776948174514963136717449032259574218581425921095327690398433077873443655870680803432008595143864775518655348641459627211088099116427389642671840717847196779073627969395498598536727439492473940986125717519476000123548863472961785869556402579348865878918371762569371239485540320585499417044054021357415224519884444131050587223469097078418944991141559955437304435071974120523632583666625900830272024645281966288292403051560883635002155880451502287853033628844193962847527022864469627030317698900937702900260472847032338383190259824712920881936865055785623033391620161544313737626955360916608606245201861650174506542273864489181956446935191472010005757971207779651450243621774894459217448056288791053597453444736153750003658821268609954510375835964346771978394191582611787066937012690871056435617433563243323771516304377483939609210466896160290862659929631695468941675811146731006316279485872617231535178610526172813225316862393265353567159047156905075744111519233590099479560578132780307700014345511089916750699803309377783159668542356860305018331624136679089549783042701026977097885921892506650569913768149266983161896954422146619625668055827378894309059010440502968508384116774039886681104967679265597516690296218472278826981107160965992474687465859586590773202353225769177418640190372966539040550859069152558602472236167522676014029198346952138506790677040339472631742234126619864248261040373433333030005684723152968760546636824155085921207977532943920391020840599996500604227601808626645854813523915210788181283876169239984452775190510809666196173115768232611546938467749746671571503173878773102263507845216689036932688113892311743697895177561629688472853214417069836156973863503804566589939157740510332079638689164669082747898437734617321353358992851167330135365162964363828369764459031418519017201550808103522417809065756325691519575249273946699927557586046316422150616481240788004251420471627308238691733295023888721046074568389553744187380597196003561715589121097647930635594171541254723818888163667825685219746650540295147262904411239146458259698943940660594826533169170874451927050331485887076706255252591668060725877147969812450713107261275348220024187277220781030284859541326730114856757579668883972328098909281787432485690427751249641209498105437097237113310549072290350600652452370427309061641429963942432442736614814605796230533705259160400274629849084448568300035267162824760781379293652527425108677808614630994160074678048220122449552814398116765448582055087014280232578829554193663072456749064572865864823057561131323542272048605683495837261917027510607223520590896428870045229361436409655440864673506674337567002198584226950254891115387059120216399876867896607617635474359942806740782551625033664514304976802309308127449142258243047839156458509025174032375620088943343085850316743897543875761688937859517168615659953805989994863776894588170604372348894392764447390328160706654495182424452220939889570582642720684652265679147038926621053946632137892465585765018656736406479572292723207963370954512910748707235952018952981150845939125863822387085719801014431669816844100070620228646300081052787459775215708714517634312741167911381174396563118786087019909392911527422597306475403570817583964846903975587940669379467391454131065036833656821825624122516725868162522771401536126910040542183029129335040135101290848987830918178338611345205122762102452508367880710198522481298865633697049985553440575502192929884307595782606185212634922442276399215704871641608924655463469987252879243618725087346169055824326575047234125954559340722191515668224071517696867511521529450206037119076493765667204111705103698203706568478159324952976482869311770188540304699820078978562393718039542169348071449133046898468421460385814775428034128795305374439865486568630356229093656629213259105743441619115653552357465481588287671286877636611870320155335115776659220338176398209412112914643835568370669487326554520732642607745680245714288664070138278543954400287613616415644613801649796728987469402279019876669316607378159640823082984360042534278777882242609443726449599332188867522502796518217917126394867163805410637667277692324069594919324304734700502835905909981836571533367756000610850427904382357414600399902934220600748122669559567030813371978711790318064356184124947822194703340892433472806774332466676481832310359096016044046020758799104152979735685127778635553304733744011207212365495561926988576429183069923658344992819196289599933172930938724009974953165907309732754175515676068066845658970333847710011359529939830570339995978668267032492290213661740338251363710470025842004417359678683738680666107572901953255202352775657269594123719682369401358824206046936327272165077490989321790238196080497014204772230819869351592906395486268626176013973326405185463941864381319321296328261051380654486663314284326000418803600495685337712740498606253359929038460080192437758743222170134508453861999600621341421384621472007735841473515028110293916034044680389028612223393997227029751833984058671975770910030301579622503821202078657922123786900752154589811209229115478344822000319221372104607823438145966537867643669055544218225405424082798870542542375004743981027477452915837982608066018348081047723903002049802981900379689080154154021095190346421438500011411812904223645372593279221861725152056139570510342165344679808247007599221245774996303676663865449982920116100415759675721851788280179820694281600044437603825873976245036377989618628741929748130595013896167948329567053928125068263506137999146695609775794578313636877860679417068637428684813531018570129921574685078222881049422534008302464096013815254415768034704541090806790742717520812542182050284161554597344953607195727152102198819184203102422822094393838335244348293494659220896016708857260112340366917423562083721665529131292068146225869023302140556462289632456468807844186860631383666366197859753542382860586717154413988887419403487846181225242083257140956470000599807818921015624521408780647977571708062954624143847209824428013996861214258178858985217393786302109086292703658505066880822205306622353908764713824508487091219899353729935952983826114432744253971309292588602779680223636293777811895474944720924135451061258516298950757376263403134776343073400651129937608551868887801123437926910831861716576546239061937063152668883475471685955268200984005848731852805467747307630049767904944374033305256475134362345930966423173139178496186688207722386006167906404936173810084915846426934577927223282059820683445844743834486822061711721782226464603757310038951768335931561263748106328564245487302424463039619545223027293120816668571984959560693032426725576038922361385626552288865685302709216083888669055970777702266963742595913160098400808264738991462705938408727232134006065182498851372770214296000325585361150940949969667680256787732678590072963128238548594299369813439914163554339084010217900797747768797078368484974889846191760868358826539674484173964306455556489573279619469117850511967692025410413038081749780850316644808298945343291699756368211571734570845907122955149627162053412572191107328304465087208633668488543259393441920508886278443760686054422291282151538010287471331169849300754621558957131560674382765223574090853484248987837339079414840228147368699375792766311311360211775339904008408428868548986876490459064708839386045477886955566116843117908018592169769646231316831094592004062029895870115605890697238294927343045841462050382039273408603048411068574805506838994496108812747558331942205259205317098010745994729725369167150783200551053741124293950516872069322664171199874572811599114822512922443537831484171974703501246067441963035520106724762414270237596497192094571972625566577827541854431616158699931989744226616036617437378364214341917740125941318294341866517721258793344492696736081978078506619525245956785054258132064952008708210054514887013020712273569330653444568058779733039823648472820004525391115660003030878938514102660333794840503964029823266860142420967086045093525289605064623233731942765984917892438189957916181530937928473246271517246475684623329617604756015963740345578179329805088376093300366732278566061919242288115451872849945747449058775074799231346264646078684003273771079802051018087322315848539376887998046304509957493783835550499961017015789814840091617507525796010364166535144131295716637362843662612614880909879226292186315028480937423997911750983812189619389079837805151319132145295924448455586503995466924517053186006776431468258075078438345435293683119483520231097825941417604811310080585274663340920617478856019752325155228785788433766322945183544331124124747454592797656361929922391575812810635476448139080369041414947435768790213620244350702218087075088733231674957969937634740767781080185427454296027928922650731969648380429048513658182072730340525993164729876146902689872327992520087495428048476638164560400737543502518375158390818162502718036805043023596550502400104428382901085972169931511873136832193739064750871964384601178794234518372517027319664075831101094411640302090603160722746486208699757473163217950033567815378175054386606207073163170215472602300947425087790470262638407290991742254355407584026136045320665801301759715817094484257008894483631585997044575998056915697739173797988145712338796681737058287809760847113490811394023346437206071199926757126863164240875419064797302973625810120553311615717168240625023396067011143956620676762687827434057634240725954524391427802517286806788237814065891119281761897793062589666659176905894669693043458250706828686688914977125336026647957615586010438696191523547797484439751206723927584439925189075423414909361137275757552147662269818291236258566054861390296672427937067952991235481534117154906643260791726037920689101863361747817557087059134906112717192646708374660079461766352167377976057052646511374827642735695936236528136253530640006313729439334208753821827154733022395626071312146587600953518778957845920147435374555578646400849428394962602898312433913617589169976991704884057261432939834485670801315607870862629329148489811265662823195775118941292837414457619262603445197727219670226094218466770681788674915861057387714051428617081237003221982763379665345743650766148201838115860423924775426006334673646476336057425480416979348806663022828153876284322089311584931832084685170192081977739185375997495219670784929600408622886379993954892463623491098734608565239222189305632691746911037378711658420663728687154097471242065882600534404922254534415101256223102386668759053382977844123248656910566139484273481551202470714310032981221856151613394646320445176937582197321426252934280818861523975334523718801539210602559775006189173196600677538757764981728013811152780778424865864498929978582310248555645618054348274145783356537050286702235015877127617191731194495406718944345529416385115005936395169056936627687087231646107479738666344934719334618625057775834588099643384108895742653990311361945567704925229431322554827228767135144008009200770503801619688261377825965536621232319433950787913669895412560951423779388224383013919610650910097557560599802801414786762598768691132312806700780805688131824273706420349278338328821321167718049783391451992578054224982392852452810600851541688763321955299746837082053193828203583121106551870076754758192102167636804840163953079474621774880538407056023444480487204589697400343872451418704499893198556155398991729170183055875345687784430960284455464673033937342603954590050845972366109292937429743188991194264957859106198449979904649847445429665504797957292799016673779599498898351526825930291904890526167909834055358336099738326742072933366491629280893601121089251749323856188743303533277623522573226141788402375248203749429685717100918027749909181812439328469166216280137214626102652087759770841910547452201605560310506891561625802539676605946148875821262382427275196349925660765944473659695081532893200371876667822572361505188274176432765326196031823303900451631091493027155156668963565812280098227437798799914495810401954506611339141648593714948681729539357553434951644607522608672198565111114429968306729874703911927219437058881311095120371042966514277731788492737364734891311224241654844052891290604456760490246721517840883604486475667949376965333163763079630245474432409772487549263322404832950492419710156179252665145748025329983041981578441251554674237880766341019303565378659795730390767109667566867283974920710205943237608577446913520036672025990239633652235199628888151655908125534080836530967419562897705196827808176864469521010953013837691536953581655378984551928604826344225961774562572254059300331455152910291547143753361649399040604013354015587565896749197520828666531839037965342767043665062701370670032504854307167115586204407137595779443302000079183041636447930287676209872470733247572098053192251987115464696798466278853788274558844566926791349460111992425725104310083521521008818276874828864885605123016456387296465070817080147194397208339410225504921393159049418940676730417418100689535645652297361906583533731183844788491904631823466447429735993212873475207026045254211820198232277406253216021626335410842713454895550299215799412442946647467225239861531775674081952958165020056801461886835797165487034886540912053982122429961461216496900375793239420006665148201059654683937418100355254723139626460765979551327414212400737697271248708772688359181306368141099983976556741099670057006405212973860649605204306311674818204504189894060591318607436695371813255489580432295436021639663194364507156109874618714444123170639414468620962335599972425265553566813869681714324054184377749962294728977228868903909701553886759905562222616291188513475705564155602573479069369799993580232575133678324624219885482599713717917576347750110800136087574589608846292502772351432974684478008744877562671887826180296928654599753721413998961376673567989223799206422335802711614921742277466701914671330896709599292983865709152368692779754472019936736925616285541223101657080297670122677577046843046126878512566251437877164012551310440952188291515647213128604840828255986056841799598268359293562634333152573733340188123239263869764816586266508111231546702043623203474958538315405492087918671012442313145522271920298586896631785187730864043164917809930674357077950961558078273385981044326220166068545534299886628412863441285378445014597132311234073456512971860624082630508987055571400253957027500630518000180325835539875129193405937652582798902958440164514547820735479546088464403673938092100140037968717946853173482275691550911876868762443505376075833378583339915344162487083773014407683961818158499008398172983885759123543632333364263135299457532200226934035883760158483557099680236530916679053790354535794763259022728288618993017260990382236966408252228728930144941602493949615207869935853343297991963138563744954440168367536904000448501338494319149841664526863395568580809414626463730705549168185801523814091904406339054441366283595979029218785428253575796564254776767167908307490882553425142952456593358504696896668249674179707065425041015712950503142679645021704126386839166588844531434076750408736507084817330805856410416912295494426366201820549395079402098251425795651600570143912942446119924008620549107658045344113622864465889585688311742990456518979501113470582426413146381619367754978770789594412381291003530439040625145702585676553027233049631464671834777705525689573328500596789343501507062530574637198868495110497131352557411899405936080569125989172733387763537616790892608589136418386123454580784101029418940687389476255324179392255520246487603351160371861545911900669343569741319483731657607533497317367225204515386534883161868661145220078254137557280772391667755209957160009840448201628474573113161859262456338686959127879122368025604520667003411428953813278211841591608823538962607745247264317493558217406022724708998013460235452634676018616335718516601623323985164500847650126711744836939497999235135649757697044868073209383581148029650392466063258283524665148347616746207267852571747100384956301828362286677486685830044820332782635353893084371089107554494696649832133131378836710954393304752841682586664359895173547430240302121870929800937448233824950126191604626656467882398910403228965957983282635325920034094899479602827258068341335328276924026193844970572609934564723363592357059238217485464772518620809642020067818274038545503663267952748261615260447383236897631113877860506441931769259389027180435828686365632100965614953850434646006032450000995099777318107354078428660891539686782291551299097798589808665075004468800886438808847270744882479885420760699601480554970148738481142223470932090095083205936567799956382147495699596765946175301900217565268063770000272797172807765746890306296027865673894941463655959905918449322051292523397588938373800090571245526646366446014116661252484125599417492758159996041046782887924846153368690180480769164327112410762541346542352456824166882836322149303684663752736194029262977444178229194109575777056055661635394958146165054932153520946085644213189202060692400553089296758358673418424027218810734065041383084839435302870003969527070166850721612437475537480312671754834498615169616255103550379631622146508727013970715572218419978024578160195200955260446220131974552720520582124086572797912507767426271444499863592561200676500697278342498505925497463831324862355029578108148454117888408574532742287433500858215295174134865338829127632419536809935425943042324234441017790182284729152838658221697134358008295705671476694994229054932921132010208059820650271590804016210223330752932704360752804017792027776979010606137852199902838249753391629502313267590591376325899926738222115766579164033880974166240960532935791282806103971890885956813991237236079380093310055819533440806970037095869779637207112798697355720647342131149231396435956511791896627876561557270476108649547359786166363494775199189358328892320867248864362497412360552988756740891210319235445714341844638788469734000208111317226796622945256497415818516130846409820977016072145424627533760236593545498890471078019687174774924635191437924492604673678381018856176377393672893452816087969181546002831109602504443464764188723722647015841762029436115322192654906878407997267428574178088763441537582775571191060537008208227495713637463320287465563202970249870270703403974657365992388935248121696939077820371582104775681397278606931357410098240096828023724866423122265801608613570167853277662532969444926618912599648112814974134691127179232540753099147572379745800059082373644306107836875528076908262902306600762918246028959801814326915742297700500756615762490153558896056437445133284104512387785665014154731483660663593205925717304849039489732235080692129513680314836044423368988611772013684409168788630687955881549578652355671784969962749776108830881313758952144967477638559016940548866642627983432892379071145889858393321859399648211364328276069533439452386561621165723539449665749140767737359878180835187046308823674741294127935232342408861451429658792757724874001766829236568017091131119130262411433380599998306996052346626538206265235469038398746869864715265515161884698337866340245584827111855779546626192304044163165929530400498848901584371463424245377269252713876590605367720620605492820030835154539662298649248808391819446475082771878359793479982729360792544499660779019349410512979040172630641807611845301464576324771630036153103033217181764588416975316253162955775726875411209145742018681128485126923533147762175078377587415848504356818701094481775341919631030440309371253178418759869305497222217226591264309162936118253079074424815302800323391215921293355492689408820763105810040369228204042033572743943929697057383577945981992522408126668493890784325190320648288532741814895425734708025025199596040894725103773423318062534916683748260463012323326824078177375952201884758350154025771665371034675377058661675536577359146295831076946446860404536931179714636384037209964627927561742460364492138266358110984151492607662598180783992520174746390083854391506704082750590354950606174890870281170577915426998385267052723189644872183194906752996400304456016247375894705105748643636753610498794731384150059184339593283517839790886315818527391728695268927574708846058608986113222311928652275694258225076754862587230781206416176168271638245992737198722967946587236809311382903911303225165146063352691904161420825511306858643996252580433767997599579432333633865354286818696040806655023400704563721725825020527392821273814298546910724648418638549881683635953470576727006113536069992762878811091860283396583111330053376347530056206315977988747568951148136041711973078759319631423324808627972209555074929021289894659722089183452847771027755656772348221421159348442314127534069241077887533962168971964935521495174190631335195267671928160134130170105571573262901071700391149089471994231977741070860339370750489443628869415966588835201525661186895071811853105159511108469207330972216730470792502859327957810399484041124841937661228450674241944630243955940941346406730220492722429631792619833916933713878435251880718267034840615360393891400231745675892364651541827040495394871843770054141968979555050441250509248864531859419373090749228877985762989284213006234235335250532938245673449897295720576379884650200178845104536926973441140991746899233556604484186367378853529235422360885238824767009877806710768363587670204276684243596476306752614910915647613752169482573549069469885133569156456647068851593279713254422405720909046853369635150656873532788121962608452307733780670026494934613814897656108878160436959303973947665920102918513691179778359339656193412468805178335108318492315711584841405279595536396794045567025255508358697979702676983230639202200386079714803755217774974627995330661277860991586012397308754218482052737140261829212437050336507806388209844485261082544393573277793568379504561485027022328475722004594426003046437513316613034339359872405823937067548246722868477492115942805137203398510353020868924053797035271239481377358326199617472756330893665164020227218358229198570310237090041268872170212640487012024630932868603707485791659418407092216325877426781536687254406843850012474675823818627945520188006514624868493313439718817210445542565371630147693204089338781182866641553052384430467723433198573321204866276991938685016746105059542508000186236395370552728223520499898618214351762189912171460522683609199002375870310771944004777437076644039931907968092885634221482312987559984604265020506164835825067590539276017357602993471190601394660124972139762934827628140075698039836962149925836513808465539982795438957584950856964202451031830914794692650818871087670767320795325761500995846652102847624061161688811472899036174724076195586305593518639577375185197613844317720225752548611255434543726523052339808758128679712237341454368010011295807060030209788351804719359815428456579338734996789769535595083244435388598416554788843994534529696089943500974037619682423270570148364081206898447717275874221951254288465594945630188925176144560769124866602871585047111836305197760268152945922020616851859702605311542319174396819649713844029502013879337629802588546460629516529638037910058823236950138926584662492212065648273005890601342364295999295045198203838322848308146100192745229096456687480342702783363439732561084454363867643758915237930294889564403604362848620447035906094123162876849385106906310876538838157099428015694416581661416210252281265184505127452212453751751293962151849188030072633775623309203720366172156460037575995407106121635659236115758894864615250192836427114197844320269163192696020575626095047466289322695427332134135025661649814752053329190274092944380810539425836076006868273141697399558654954591342811747936022299833612101840555677086195721156534782052085922614207707644768198196689125891172080178091748401829659340390579130701617396005297773272182037339481168054981490514725944323577305674107894286831361565881386037884034630629111031975140655003274342779992817245012292762179684687719442833491110710152916951533130742882014496446660627373181583503714864260126112765007962415248396843394352396821354847164623843240664613261781890441274754544777616601945581628917578922686641174104718217156791130802843290436622469078065660695053020869881783021452239039641759533551626544073344265985872467507233493094188389983576009244653739162183943981121786839400340208919425176071957424402042018145588030118464156360755569215039799442432411578655685666773273014473271331820717058289520109587828997670396766292526121414810865028364423614765502558523191154800329121001121328766208938635641575367231920564609075469527871675962929259818777841015213237589863548452393465333598449981394378307186259351379812773001004265043033570411423406832404642144425141208269115911210478971465207652235193792243385139222178301142351118693850177569844688626714658031563572925285655970700180495476492463622911141815629933246530910285483620915543613022611217112437113178231259631988088829008373248047320235477425858396299967136619652275180416089118210876308125325705118553951745061705727158857614527578457214859191866469737424856068585713161897415923129080384993675895015604346218817094865028169258575531142080955882947258209371244054121561304893853890019145005002470107932105923043967021987591381625254680173507016402310852217360402068651146162872005355387753210469313832313528735502901266413425306266221709252356387700985180830765505181039532876371482201250907944462547602612343612334172952161317934927197049681362115579405741967432443488925169182830308787833488969782816914709019029259788254093935465041175803264696969995450278915073832315049742096112438875685056662051847126702983731819500111749179796621129137196549447100045615510109176990738205325094157887113580844090104864595989902667970126350597673718749341672905912887251102482525264202017071349542293441084249042481030680925760099409459127763990109002484223919837231803942064305314821764100709652414765018651568714643747065476392127161984244397847026614844847781014612134995024019950004376955840770962828833556032256351644395689108154695598484442231848006353116496413125379655374620913057586239221718062926937555167572089306474156314187844312398359404678716692159395171732681123168637749153576497572829471883750614163383822596110623475134231815329257539419733204732697889084386545489700762624729887476701268761853786587856967681758008466229430146530598612489865418243233923229072033862434851447254107537369227140532382556058646516247384472003645935381796035303918438052161427583550235431486760286702580148997043793867658488550309736695499224409227496164860346631003198066910717208708533424983048655462568114533789851930015067187631050395208926190944054696752166841475212256471249722143350726999972110554042333697556968253567763915981949489969131403440005550088805332404806030173516092218641326655491322424575148179366202746682514866125376557106135717721500054834474424503072172964225469021084704095129844414461920383181646083000480775330290641854259288427276614527581278431937048179958194009486750343467380864144784757456334139053478395052384221803228353907615897189123947441039421778146333134309221833075048758551449580285287405831809729818934685108033567334688278817784481067982100537146943791534009436468095547749686788469190879512395665062955580604760737104347873445097919091983701615747604868567668589555854719020989964152385368210748626407929493932814624010560454587318232044126217754925234074780325783471616887766147957163404442290452354308694835123927939000839858026006755873065883131964312207578665190208603615025742165743071281440378190064000218498997758012304658306588053690004282353838681524476850421632718657338518436151294487228260033704138712087670522554480829331737186205854277914613877129562969602841982274072597270596853711964158441731662182864820491427481275428640434798128953202131704594588043460640461460557730981227378641431000316822409417360492416940045950449002599413347825325390248794304929835449867810424107076626503714890574899240353226029750487673885692619618547035619188810012773871710173362173117831842135188355512007186171760156286297923273504942424901085423769550408603521990674402665292399321371800187902401681772293357424397366507674742726391326825511709913867805579864141556364043812583690916388822980149771937803280097805438764861944248031201164891865843445026161101958450282708235316147985925237854009675907915158283903281077676228291658073260258489323532396974636032400971346046680659719289920540957582667614375457841912588098539963771296863828367133427182119623568284614038462603382483525133170862132296141109696289635048430743617726530644311179429101002168219710625541730677811997930449464780260804608210736703821569445621577721448753489995053291290376685914937375813872174118358474619110290453603204565149830232987659724223820525106065062755021515294484425654546657279091289591482173654851565166727965532920213681886739097279365182848869398623485199364260464377670672816307706279845791936108195549000406800486963549548918096005331095302125152278420263659749826476595722320649259237611063985613786451398922210031019640049968687179721010796908023774119376557108689082211187401997131933350796693039361649506891844418838714090962575666560437517595631961156791429155335402308492415671341611875463654963329193773371053744669638999133638338684952964452382002970030100847653572863740984006122863883839517870476451059764452937750117276891935660847030050711032979237529363540784624125869580790044975113719164441615327824729475054100504541599268402118045009634232864127695620129283415581473552329451950717857594942815588672495564760891034867553898166030458076103014435038481208870868331819611431455329616160381334936289089297948873089505899221210658970981421692635164878228417311205151381556239398350366092770447852855042783465027423680596711368954968063871068582908551064910460648715054025841721123054089852860293179360301846114005679633789024039599263684117058112748700548814627319569207285243777972139626554591304914275553248559704970056695154587316094548894961886152647057877240879766735284008355216322684158349680497548861323675103372122983169848289367216819239514246914567403857613892323709341633176290511865003737814731449615693457483974466344915886317902635166570410920379139665693015211496205063319937511038898982980304890930705445713827037417322001773889311098304186940841725037889323676274223220811255291244249545861258662937080881489557109913694364184015505927275701269214896106795458707092484414767856337076796852712874404601526456482008035890219146283991073104958687926743849586399537606511630373912455170664813833485917956652037685649706283458806790232305830287704438186555009295381264345947762113180349167054817202871626352464950057465819595305649177852058704280936307195711137789153364281666670808970804971936774261096238354365330579459630518767325658723741074335638962411873082668498180290367141402222030555854554479572289144508437690258784536059612222373404405373004954590586495405786025202561551095215626618037759000534713728868667427006059120604752454497433021193192055620508316752464184987834407771135264266900607529274859079111888818240581203345139240657061134360062090482308529730646492863522375601268299646583630586184507298365048485735040192992527460148912873585157586374780378604430011486471229889408953841716619114742401106231805540217234674856725297515114211079362016808008720098067183753253212069524281566056063286221750634480718704901699640087717248750481946743335812083452536809962291940244979351393053274309168801401266900820914944584549309156305781841131655816316766937394647667359286614414522791610337267741480650959542412371534808534460272790119527188585693764830662474921672824326018936334689612810658432403655658353941183920580145547572217883907306142911743719501065224116750969269594340356993394986107434622807867252635011756060645393351777398701054602501099645919198103247748328212626091415609537392460167683330119875744880947988232314509881655197317774743112475399308547208579224737980948059979338966706677298468190319800853137422562427695550571777578895415145210552782427715903493305207375025553358358240108367035119482116280167487850700268650416688447890847588267405779474465504438718993407536417741163414550657194061308570792512789873120633392016698544496136284097727538709457723453667201727662154565997622593970700879775809937005206621451919887766206835509957033742376953270382841076161789948249607652633396620362733727426038704219300610761504535317534564426421036416079207595460465534424449537154918397536575561542897471282195850055088276466416340604110772980205495643243223053660703931790747291279713045960995968000341054148187010984297775765041150257062991816197440051120009063606919654083669267424704488296224464727526326389799536603030158231086934560472508979274770301494680933675520019688617493059628281015516408732382549570267402189917470204552297609059390249239896648052021738916086889632238377638921923100336076417713048633438171484700362879468174041289508079315728457815085566254615298615350204916849710323043549824275051238918013738649649372000568256600403083029354839935133143875109170160389898822703463144032128164339805423505145168013368839284068238622398348547925636216540387296710569179899610808682343856941576081569497833972491620819178696364566138777902306329256873195260329209834758093245969821126656589579013873118410732266453039724279433635915507155698331343942167635456499297218592424386390112135708405146920954290875781955957909255805169611335000393944181850388568467927566792589321478521515867217171803020467573397475427511028914305286291813264342923773217994589178079277919985097800028199223657501675237974595642940114314411922737072944202130749144823996951627160559632323693529197236682951469357949977715722857296759676789123987984909764946858008996502113188094234028677306411233578499243028250049785819593428017890512686056981796901085468549027938529344356577273736693388692930194886111620205506161004534305737167545164554639172498799815545026754643212024215035203094470906102606313623343665238013611214194255579845529566824670428228302987280548614792716895211810819773682820329154100382285909034389789822005057627461094867601665095240231105142943029894655526842323098837766333504979164942968213011957294637771034267735802512398030123660438941166887657889667904863260324123917051871872726765196408085966188114999409570399043481338748030147341248646540399344380628409242312902607974725905926814351785080664722646060353870146531679132267789876499794312906426737595662229682821932961616685710876259442401951838774422510054025448448541634836998851030368218443134723270795345240997698517011974209155932717940710524669213492265131681866393921769545917769793276479845390181460720545405609835590752495427734290222555273022444972116551607804999203902426804650729596911191429113314013057051124188896839753794460730230200172651366463488076736095254044427637644525661414919701183783030198328079675822314389634243632779974163172227903497951557638318699962781633800579228385265407057894935793665273602962890274858263729418305709491937542130588954295544664537064851928968696331495038230118834579783059785141539191781264387932723854932890573512609129775550251848731052128092924326183636284088726796939583352984329664565269510992248339673797499503701266284288149070670840999661021022525598587745538230537245454117276056662814018387664496686075928529854502684107306758550292499408208112207133114103257647915049607923916262275760102630881265229534891337940248517313126264395441037537174571198975050573490951155474938795634203426699557347701395603862894711215651356729498317660086050211694035057716592596105939001380745322995409641781428135598761376434717702663901820200444986629519386363090169153452164729123922682313723697630892034060282420574547784599932011013429491616112733100762725392509982165903369694021720461918202886810632251712844798428673909446278782638832350640056924763099870562216741217031782660095812501054336872969965774687262085425222387157596635136148064932351887753062955255136378232801155430567732903337567027570222028975584389560914060443438618229834830657099207567288776705812858839541963904481404376838715808105476984956596525177053965963322853618357812324595456625415095783898909402573136500956448085896115187890663020794201893945048580111103270242375456356113719385563458709553690677067710571202421911858145173869578007526073242952205235851317749021289105737038152882935174806819295703665211433417835920951924533094383892728442903816101635287384151080597239826071148096362770903826917752320507436603662877632815116515993181304972779513416708232415815587283908511908661234104233472881603433826862290912912766953831076568755557715681462789045649261711480463126529597433577991498438491671102531366846945713431561426840556574112450530425889163907071742727805595109730056837759026832385767622098804682552108397507822489130786333664376879898768769361367857540933828609461885854322719970004044168125816736431958473038777105693566108414316614109075150167302916188564307347621050233923250131870916123719031502266438313935934984679717433690947500383161533343305093780818778070722044728553687546983272769338375965943997169920921388178354675121082934261296411970055547548266792429288349223996344781203892660170449340623862974500248047824787396458770007752709732499888714222113498859442617774267856349805405898844464230126891839048912569645026505762766557593001861773556432188581720490219395804526138229841381151181914267041374312302935090754716549522649392147676509762734472702745733290059257503901087499148147991452407494565145609315303189823562159550021711591933890187286216420257762756617849305810922273033336997906511010842294177016361684115937034491684855752722557083446660813424228582466681592710120313481900321449644150613376319473675039991954087769687276090977055595081664857333586733804264301742660567229617298198572561129032194749057308242421701248751555307408431486228293748741746823864571038804692559323352684369918791467963391570523032096472716861143784134729540522021533628719754279909385290314249473548038402358557733222373561903400187668732416833384231047411467056239362323617809872451265336295723846600030165543899870745421346395548312425754357250551789619565389850028550465261669781640302642588846567213488643618690083474968753167149448533019376804953630994926120001910556802352494647374541774295941859519273073155674222993579159432480699075571244165565439494278207864440202048170100572618161327488713147193647557263699115486536843750868410561594601245187663343757858872915850626341059894389034261779141789665121393452743535088440659336774915940081775951266209221267336735350258601113567994917962517472819004096549669376952187048498680522265999157144306905955068038215562529113437658833446534511638694093644959947812673785974181475746477461621939898398357277402340529870206216149886352631912970378028355902095165314386885620045107546969408006679816394761198247403919142078696939435071926513837971869711059811485059855995205941503838666839192497269913929923485024105635495452813477721315203210361669392070770148821572569809492476806226755839988415896183754190278465991878702490990374353328933373924421343583894331540209389230375796903922825746327332488474514169254009691803179847700030243806943240665543532506271947641479722848637134286783611335765723442992659436417272287689510911405574878207674858835972310036031565737496452666426409167237005665621652562999609950309270069885007518817228758910569096298389461693720400412012117231528243208416470520224050253558526066921053348622933983971138768290579152165341182756804937617724588920173584707699997808198837602323936585174311914374542683017108343800925986521716218632723850793740589083405259473112034371473894012775849698115017129845615983030998386350061964037368873574090864433252589547470455088821918584837822235482878909141004143248590967521894713256187373885768594523622654685920909769909904564870888875820012074306837309082483885764897274819763280136934238494187832910881733523349056492883995892386072615001585363533497899464049801621969287728782603937511009695241506187151547457288709098995072598828929485591183660646431970228445932215221577592062468352574640494390944338618033719337293356503054863834055732335604817402309924921082895695416589939729953441093968018191162263073588237374005040933542868582911459974802651152518290926172048784871602874264522214959410655267798698716801503607490794059590925504565919757496584743045446306750348675212388467969137621637863165687961705406324830562067756294223928263973029443919570388230168181836201232748380235637869783133812755207754413098067074111134395866808296764910893318908353001997026273968306725085477494778082634224021440587172101140166726517776754021499029664574563605128023458109014692607663270747232346087041708759684739607849337287651323345760959957327643357290214991561233253072606444120223288655524417579084885005884117727170683047737655007318414974083445414468224901578948684688207690496253600207320885899175237916877266830043992383623987979007723129434419608357769960529014519631346507200272387441496679255172200548475019191896948061331567962568066463197224571990019616654817275769416119992994393951529837898631603772933172103323439960319256454372736429174215750057097489005814490891358728243589298223393128922915596672313931197960182279816483507174053544834568110955348718954286971881845211390180697725098730737417231576993630230806932986405798414571116989511091219613665205079995733398633132463873046849520983194939295747381564917571131166294374797108009265658521417203034674787496993584136671882279392542792760235583204623127021787965454856018928580907955292419060668233864815602902805612019291078183631259764551304645664578760456090191015476025281623638935110012713000430738069343695186158380052746013548540370789419761065202931910051309848436009909809763708229118860708673152077990218244603198000033095083702301741693001591674910453208926300035404373923415345721227952421945279508676017469382079450420430645060440312038845513860960565322463482287632324598236387794100235248307164570275070921937521722743956594457833096240187627210125680931731461215399412733377546457353430977026191157102427228742835067729027504361330033341842942226715112203342812093638686509077296641619753431502589506280002224158818662126225069219570987061502070161020049230663178910916196446814950618090068151066912606947063498917651965915225792013640325422576242264982692982031337194917999239413325262916514930113257417370132291099289912836742717635160711620416413149796622260748254589716734350454359034323991432189202373463516128425882893243331701913383265308837027985309308575489752476258536531949033550578450617766346386147510936723414779695973552252406726096444541244206242512300603638345059574285922681067454962767197363509120213016298857959684927615323451862738878524003259309896265630659826826594082038546489343688276557114795550482966505072167262172875840740178143354425422781952539017818581872307407874250376292874625027428689041661752070298544669227978086625615595878425336660955263779953352223535811612269247528442225157597731617057983186352168327443716936963645072693442439503173822094340147679880410298508595488958882339099336902153749434715130259710486955453259865999020122966389947599291839164751004226125265552762072686785627787434353894892382750429719251070237022046852263895637962963340489184037105076496816840838398259581484384475627033388339612230793856403044413306287042472225015313557162642264964903042597415269485435096464075739095561622710740861227694716034079671499552855720124354166461805436813042329352120386792885600998724077861471561186971735326975925814102517502627290181080255065565006060585877877946407708384248937435797377662973212418053002906821311364909006737254715055906752963525417226698412805905515668600032738750874255688311996285200370138292245313258120567179891459282564411103240553042124675904637529810458876637598434409012967599353265513063486009887394623457951957990577567932261264756324169461377438304629610208377311948468876434514087810607619669222085166436210036980023474211231631600199849163238311122747359088612299568367250099414266134821058706276099166956546436596479619176803285723838142518364316436881310836191328529280691660513602962580681738256666643092193180047089389580002494120466784173251132575876189246578817985521692487851770097563861826368756626752959273118208571480815985963888627053557987306669012491412079705588827141245013429305438723882344993055445877506795920281757948243886634440173466798583521106483678499481229436218405031749597701998209983355130257285847503150482593725838757704604913815893873898601012613088407335947774116861604004020136091204957329726028871738337470726704752009868015558693807032019835837993320827803615897618268481241578266493388016784747983421745854064599856607517522374061594430420065079098138575312309342528865433269154729900928184352779048081876158034342540729718356001218344157918283685454357046348420181983244565899708620488474706722308645578792917771985726956398487800827845879040152312808465202618667515621136911373892944219481549791425179222688678641064217592767976939580257795433164499277843410579596376761557457660392970131730280178088040517169733074209896369543538933701079972886218822243433914554699584754998444731062896318325320050694111628883662289538130365188957417779990884261696036966072656052104409039467787670041155993562834152962529804899141477101848960040665910707273686374059395733603217798215703793002839106530631133407465459766095517271000162471087151915049874429174949555221143992063037212468728006242982194777953241742316386625358719128265073133366396686248103280270256913189840390563854453978849964946885777891929374286334526333326955663607272059369967642771535655883804004962954898358466793508078335449664964593064907884138301354174140359799305582056785344681803165358553298023882143236233281183216541910463634014928099060938716608528336825441128891958384305302246877636381166336111776779637026320303323325962933716739481013777107507835737871642969498031866377068780430827875505270133013080916093885130105072514170581143622624136232140609053810402005297413224242756606110822925780389973811377388588188894244390818008431516376894390188441651731054480343949457407746521923366471249084860958579681303933507531281697245502377188445018723153820606160702644347036432261547082032495171410872101036261159358693028075353103691159907651799545891819692154560757393611427509498539192692232046568938352092971060809262989212338406760931475918058442155481065839206644613854849074091430808803566518720439499249439646471623644279029087556948656969927483690715803964847849023290210589337476610343438376627052024766150328801713048313600746456731208492643103872101520269365052117383919953166334190675248720583389436104905080514370150038025561324173622692543763211347704024880145977581331025665367312050045662906022978495419459853720823274729754089777802788882190871818165200220600565275271370465744532909061148560332858005730543057403716066174450158799493565488020131080025907709630300111943907144987705589201645241507749066403471580610746481729802991493975242531676527549873374732880337503176384254793912422449047432589300660845303525430227353174649535262417723762776408995541919857743631666031172405697568575751044229914440192391384068844932389709020384047410051605941023509333057191855622258774443808232277090766611441078303169890729088645579939868930527014098475147516652234330001865245222857329027972569612794049249945818200460947495856191923055257304167909807923367698788527569720446164088283263698902963932685797105427915943192986108460285815953084231936558175747644058529521901136177609165176499777607537514908447867591461463439221486476521314098130112354805864127542540376201601540096244124915342183696480355896998647749703216747578829937972991208347543185707320049823281735049165463152126624316711710352486827521697728841178476399719184209914109687378108169678031337492599434631369786173850443588783752641154735845571195309292798428886881904660515668118409126536002903473150399358295955410576267255467214336198532113302900043604020248156990432846917264734293045989384938203578580862989014819595049124972697493345869757532545513253407968782187176515931915683669501825527289305934134447795564214663319874234019734662608025448032145612763402487595158679095501497173237701233670894261892043716686280063738436882830007431071963546567963094162353804153849292747746927844820029662178695005476870218480311746802117366158374461556138956095697375079020262573388222182633468425035025439127030831696094766898716314774876891560738182491996329410161543225846157327476362193606065001092131164095850832381683854287074961494902028067200261812007780641612117103440402013092232022189942149603287308682465824745653108496502623001740880063066551562147310612002399288489547764733582720881174437842421102833307227832361567741749403333589927391087594485520676843664684337444866739179369506194833241317454750078605073893105365384408722542704882028112148714373543274027118799770439519748424205893025382364604323617407632137314508865519770395345252128386007004675658636550709399001291690817526145212179935943603480594624698238474343363623893983105313844212366743711358197904262160543979729925109888456682534314288331327890814479120977395769855091000105626664629096602322829706221926400235856177552996302973840631185726402957225911210618969400894178340722085993685767170067399910983863810259687180343956133281877416360534185416405287391780403678821761450501169944851926209050112974685619180636075840977718042889233739997934315102665181217656137980741748903343402958120297650147493455408958952846688678844952145314675926542759759176194011128088968071821527637327926173219763235313862933015709184497711398801347115114853034473844465085125351779230556902885452854115927618988012660465974305676998637353671559002823541612481002286367955968498900975330109327151972309193364522712260869342535010415117101315420711363612474422122258772506449830110812803603976100483277781591420987770049264655151926623883796432789041750211772799951126505958724510646112527307295678226576043142324620718896745508666094971230321096204515803965400244584907933004163830678760068490865147644281893677399089909669207648823090147112635422841486321959834244918437087355272850682910241197837582299289986546974443170119841645101594157267241567225959246250035830641749732932619091135211416740872247142873508121058494146403475381254926515263065014297019807516933479663282524522042208117038549068201166008040868452375627178690408998038020865264073272719477612929210737903706517408364544117486756230798600901540523881586296473855707217985954589556956136712856541816382327342430214671798790498596107644256412217779057848355268460687577614319699930437547450093866207757058758614938756305776388690447374169475505831183369698475565064253799293157546019604517428766635535992581405235628982790604153658293805693825681069557519318023736599649822987101684762895798750823323225413776938483373301420588411628891110256979353217688517095809601573699464596659378048739505324700018163065909119963350975657743663220296620998111210665599803527776018618176483311973398768361994739346102104288507255294291662140498403850420323971046490586422690219329482130709433964521525554497523358585579086674562979769318704336216761345238289902913025657775170019017616943398636971415045416597361447928817557815810701622444874755606026275829307634257102087376208360765716403911180976034111825690675070695767896077985995933092305803599774995058508379015486171759187157375666972025732652477792923437734456398904675391881307496115634945302531186006524456903513851852127836529204988283643819234678482098207847160923465442122051380614273987146672866954494149208760443176520777092519727132967751303343426734770818964840742691640714560665259623932274686694080074933141790449436340702118858453038936098575318159655793544414943487739578509651751663324042083834105227850926518962439648943653227258896311488088384862336005133757307540268743030490544456058828329921828300790392616456457826453273363345874306296536695047183071322409477368262457531293710130470280686258561272426087927390723118369493817226517159142300772783804806878020960468820932215963991461702923119713864053247408803411072141265628769839959659210019879976573855726709736315486420635804281601206670487111537701909707512902543374045221670909023354468360090155430073332881894258814849318170331229116143673615913082848287947587859246528503767395204473423942705866193382142416500779302977710543576423328523555172846027670118511948983296311729889874484098773744544910082966824890423568848599783372512680450443632692079926674868691336181313371380705463308947431034844698783160101494610579367536966641835532604061504658234086101883076314782896381731378026426391849067829931369020124360630079801287481994885604673983713196969832207221193451499306329181768752313553812370560009678203712207277658272831449067095049724652520963125281512747855970179123568946177187349709200586120114077077062289582754661748865589813030793181075957856873010567690889638038637856287381991104525744243846522658455932301149254587864771585226789868413694216512669165147551807704546462784872344483795338397902777144196271178755115402531280470685154320929541691446171075919733136573433230888867106372419274317615477208344298548536724611111124868431503704423655140482662570437942172320650768257828947768779041501650973840436019720185251455107035088879423831483214522959937116282828770113236689862969014069329377557265704679997064001433805571559011314301421345511236360078465969751702286899442111003812032706562607022382355406263851763348236638682148148790998680484602455597914616596179099621994472895029613847721381533979709978938957600998170202109256089644117994276727271916692245346538144064493625298930212418059834364338092890521064022845880082920433097027449401097316813674598974136401159547926664302231599973405210133237021127733675330245805083311633871486147288848964153625133430042595330145412870769115889440508462763057058741214967767406072210095587376314429207967271815530230618528621564565054401191528048211306001699565769923346962221493048720157035777563266745414587903363263575659213426979538463314047763816170416630041012691389990637813513337186396287679911680421238476379404549754328666215373140517311017030546997765874232383884919765864935304254893357603190664656565186576905776843421135877268194498348022927457310297220966568400714359166735578958155731165798108275796734235592911678502562473195037520998613513542347666248690432637783773867116155781596362144469740467729410956230642775633485887422371835427636492789790601324815814787646649306476909188019789992393905943310939437575773182646039313611747886238479654660256192762643871502883586618647698308764706368731894248368771644317479729071187268581313518273870630263630614597106222494891662585862684077203646554960619335314866960521271254988217486417129864500843491423103274450111192652708975945881758149610973284891906631696002793445502265268713477834490487957180652623154923989773003300120067284586616597543463349119020188091374145842794740076486860210072877212703373451439431619933298256361008817817388069938330111453188819842479776540154681605486148524732779201458382351351198670702927864781056187586577598064586560432738263215824221753090215258550789626435325495396478536167825181199834441973348673362427934637269328590042010178572531945078084466049898209835003972919098577330215489136058892083664108170352845656323021426843897144217091276680981204787523431474865620145601295601906729163648062730535234273542924393050651877284080726635188197931452633168573731255784719413845158697152389400426776254691076063931855075262557768679626648758320115835618620723207988074843445631433832137262173140198478039864195157663625149502278462166072241365200938152082533833359750441360626050351310157428222614231616911156911940076376613889494704573719501968909003011515922744303610423509547127146829967595622026877756667354797281816198827988895968711346765703412109617420545033364550765503230947765829587469387483946103477182854197699489900802810622866125330506853561611900091112867564799703035241637167472731889218527889595207567312638864365572150111456880243486040559121387864013204148661116978083883287032055267267866307660496259256987837259521073609597027467036305159153126768958658188243619331771978130702150531880729599513785047712567153980794961199359377848335699628610331090409081589372616044884095283227030844725927636051461176601319405419205188033964576317655756727870545071046911618741759617186349341026719057292027630594490710331883847428894404856579192812146647506350496293431792779849098452240179862495370825831267348519789840461939524900180976323429717616380601590889940344206877448976879489149341590145825827740143818595102500287708056715222315974087631565023253039197248089202796727843299671781931872807757981680251584876732304798692487660567142454750665438215434702353331835905888439430762691701065844838260787830029580956909392733157252516178698503084512309998498976501380601837813496885551864801696720077894614249662138022260543553847647086837397694881527837837184708896406948894583255592616597097873588996927913939856210879145180038867335573593497639884075697296181339898211664609862637925559371718447424289767736445856191364963959467302372119908470937745239224318327394034655510653434064442970935274085398852306594290271734380493494297450364234692688962633927100266302808532514770014436179234327857085666989862146068413596323920862329669043502435076646823660988682887886278909352385179444310454445003252902243885354781576020372976583517522377492118803005656574599211513013774712528241700385398613757698982814140356661922140835660063543524255875148452277771655389341884625727725870696261660005977753166513647663396474091992591345055137979604596002339675122297439001146975233071407461555510744025233468170603275461890726709290463930032723762564917680638313875167580154249154275771925589853454740982230216844950383846673708879754328447324209697661221864923579905130152345145639178446542929482777550279850555253685270713783999146955562103077440339821973758293437796903753860656350158451765918980600823980916285106381551747879308150408836213758817050489072757006842692543611952865330626554112393827461544672340406709628161806385678407663056021662608689224438376063384621327377749222665241608029218343195027938426905271718195122400882236794036002930097408677998869845123635619432879790373560218803514639562681718666673714846057526050116817944156322473792097066045799225036815920622551885094015797789178456632761798934322534259946510158248511123908124478317468240822901975902337450503948143357171162263694296991714121485839408492028732896711525277130479183678355079301778885868115011762124349515210260614028836828981209327875783936102950491629107930816642866230880121063100657995974492569953234501808122558068180565814173447735694927773578382332257168234394340583619461068003067174860148191781431345857653780477912880215418789125638747386667855223316784554400299168733605445723430923084769322988440320359241374184881591022502310705735324604781707769552326161756802821596165442525241876848219088174763927320704563872245023673962120110361681371789915086965619197559101796516994972486515609029849258079011002576427469620623303343907405159753962600346725225041983752366113341836443717033267339942803535655284422241279428010334955381195519675261988437489655016661962486372604883448647360733696184368513327250884581234357380657083766107777982149308219789825055240471311433836094133369594964471294384622958441861979456271947317891106267866713108266754381759773818101280884048589014115475989752281277217140523047134434786071013881512034086483512302517400577633559111834026969342595834346770831382925065181634746500741820919848725234329015777291285153037465007483067064586820561328964799064364185901291348471808917083642673295636178261112612718005691514382621599218083318783812998846986485938322377952611068939205989573428702784250574557253800612690119930852165483903889160002247633778019552561505731102559170405573176692678541199055443577483459872938900210361850708500439676574846047733996905889308420110260927450068455888051939378391579250374500463114291558580863702091685930123059275674388944935900671706791723104694331370774871844091583057697080773892008716978758386048310976218224132369164860504308237908736748888269103552362251248964783494324223840155794988085813569439115543535960576196259044127686679547773187373991837074292914883287971304259452072128873054957384299704600253286486372210979152151026775900814245188803610554713880038797493132315005388139105869214521570445020513083741700750707680639406495167994008105272784829161105294174076495967277313739948209009350606511033869442503622385913074532853785329102225589079471565389631858589544436124535826815295322602209054092469162737096986100097534155765747093967748275467260076528538496878569559092475195929432629983005936171829474277498666831207413766657346150944598284232818919802211093210522959918040800767963476193645702294773912497844149870543768561881461504321413920644076576651515400144224777140519799898751756206286434167232217307034520080373521215269731353705016934130916090105952279931175724856516288829444033316904308889131789320010995680439635550278825963396190730744578554305200369697851193580821520431427063222434480058380116998369439028294967148368172956729206469952894904345609748251219515892387085150327035504023608097543657225203382627563713612728623047029246773822436065183057531539831473096604089398917679314510091541829008634210276725955394220650933748781720388944803543668937123736667915756792743750836957139206234499233461708246394060583518172543867595969282596782677550344982737412173099713730291479653639139415403192498693986774233484787780207898865595454677371656516334505289252743416925707873957929687251859239275037312352887244833271386449492190905759214620090205067695413472879766904961197688512098968969114925755232453247301732699787381443333659187959304370841937269018606878335933485484605215961730991769559920558949786162794424429556868862520405127324203330066940008344914110048776775033037841956096896675556269765019065360437054714831214743809805807553411062867378724967037020822954529368067266006655723281922671382149686117794939615626290630768008310241538929925775496999173472813850390026573322050684756205474007523400550748781023017147457914731832063198797054317865407318028019300512526596819019735618370063404046871295056537954340619868587915843632103814331061014521599405337686516195602962556157398011242316291828416088173517177032776838220226285869130770625540304080684860362501930547787774452292842082332045388852445697193788787789875321317011894618133442374694579363560755691356411584310073330626908551189107479253816650184680580429460540013220229703125445588940841468748643347991416949882172850791566267135863085456466625175612257128429670936283871315504996602782798224201317691922797644596489178257490626946825151202925845870073344719680898233586431237931014436650383941770127619386628555949796606716675239179862887807318353907292970618081043417873514546305336475978779553142916434129042475120524879533503493264086365293955727462543882157025705259528199537542803811943976344581923572716532945322032850727653445244494076593063923395109536076838423467829423519759395646334879241276637830603652370292915178293618314517856578479912948804872065094014356851829234209076388668858904938038538280746953596659562679238102242800913407928630496400159499563835525457970797038544151152945344108976996049330442962889826383298483534224949452870637341315318448323983769298303821211330629424040318408948872269253395900753410663367164492269361765895638718110687226128338967624511735754165648930478523696575541077166101091614377637580233721547204530128998558609203928125267965494629877751619705052644451437618691113486336355737699086053666321613807622301105363056080915122894583987423260840878006294279568005917701882985890846292426788023241485946337258941401833500926646498115837534511857571707865259934343850524883925690339305064391885982262480029297087928950328006351351216654160677265383213117368626131194350948602394108023943199777312236811402686739167447428237814823905189889297157069237747139093518950484895703577133978806401137405840788763860209539650363202026895604068604157485148324100513900143738364717732380627037852128204648999132230326213107070400078522077707821009774697756259087369842444777758433622135527811864734337501862372598215549536678076550876894960391466267055207755811751389877620244209717730681710370477793217609942718928229136799888429723689035460542227894975124897440046206034292878506096608286139059395886843245079724205892591533797087288212477627023237888900043445458533140080452226759041326354395363420599542937388816213871744575218641753949550487357836283012405991373046720978931247907487862765736818957622904990069147562342651767475562156151486511216466689520214958316719733648080661630997971570079633634665864755898056803948160264780435799162322045064973621377535180719482821310714563274340765084998932148173265853555026642154071573712356349222358365227994160118865102287448369313337475070295157465745776341656818480554627278605529561581721041488214569649161369452547049249391906427291938333875747579627571854678396976465885180111129946818957084480317226840217606661948892066277794640809053189783558792542871166553505038444963524389162484813847736578758109664160795083928367838010411609535578553787641829435199921290594856558855781725061531587723506227655338929755147718009895683415095766198579178445636204510347928437486527149756465494404726670062146838149204447489371620777840982361284734084027406947992924587308247266682609939336221366936643137163657180038873012357800533079918468085995738586220548548149864086445864619231237543478522317125400366246150509257962619359220511930805644521760176738610808559833542440990247222095885097539616615491332507619557674264118738343707711509237198788328886109542753207813287785856093469329852823253213597549140196374171601573440969746282893612698713635487609054027256590533558690564901748209148849846028659273463451279877819137058931199219829098862684412247937099786058719961827473277087891428873038025762730198267155714891307463449082876782227722169593288563261007021050714309534111143980561829938954052004377067200232669685077511019428240586759041385430654169678431735308920015140016121172073556598376082478537471715475743567353887799013418203593920326826824039056813484022723157753786992603171322606754332158510335536404820080135375129962515184542184471173631562471995179130803944006157723136004863525154820812700180963737385127305671596089774880774534749229118080983182327202287308316188052124970500433456066999498171658355314591970142692914082331046121351060092670022072646343027417091783339221868771888337247997315622411684776384377185590881231200545861749642336716861280616965085418647500278702890160923879905305427947536585981502975812459114487320019240037360597845381402933033701207720768441214289258738479434528686315914563775843826868799111329841912596624751787201851383532131019116209403371369214748654326493566388936907507737512331328142590446932237084029987422709717374293683807317978520654945852418596144930684461161500462049730057071433369586403407252986666373851633354416060589111235484032959696851873736087766876447314258369878360698483795935674776863128903644868332179056038388273544300873134857767604841911414355912112200856221269834989383819918290022814349427672186675346807199994894349926474738975642118128682807824050640854106527437222586334376709721748946425113514084843265980836365492121879277827858824135529442158389782827992523233363348295667812409534108986938591214901145039757529512359489727622647939722715696384596674263156379636630762248218918400579023531792938089328909386186103127298938155883361073464117659934665916350730543189962533165977173509552391133138727008009488600759036923063985761172092789083123015831782661752772770995121349622290216618310462097118939266786899078625842091068789558398964565709153205580575048695304187553267836098479335566167811525865089311958417447902935081096806570623877658937285664930448141420239846854367079557252086284414413249974259965444729177165200595953480445030222016938639031226644193433811065177778895755708422615542018629471530413343163777241018573816135768266521521550619051825587253305180793121353804026803743778992778960981280503243302493627506061011711014783750083817536363904305937050521239781055235340704027241200634542135792936812133191855957174294558839896448485255041712958650655377004385688491756630024798932438393721627800341579036947697369733793842793831988747181630073134928385045509546540849120945761267706716979741529289518244819980023520670446055563714232005881389633144380380748204220865541324885305647204441653584072447087228086193621689942585189798425969551800865185159717682314841721879354633242490692109815189669141239261668837930625196626335873854008457894427862409623521172452363625450338870283873072757473951773765883621761870255451863592717975432168282608910835823630249344391332522395417359679774354413647776097234029573505511324351465525088615903405435525362982811063652263954704556234195087584549201058487661589659613996183824477980738332981714737876079004162065132509326201454352612586633295363913679214511387708533545614779238483447606338240341123932089956098123443577017480845618381165051546681168733798038435008350170408526234700567455987095117500865338969653079680872952353113458880816867575913404168737214667856327268838939562123806664298389737968430629498129318842697326450236452314161714091315742294417959210874762927811801513638296159265802285609280987999500364652510962860742324258483021604922855183459772207658238052412860846712558202618502580626808011301683010502542140146610619621057687368408854028829135645056265882876009727916263589731730416304824771165533330160844650860675914542343405751325553768465039935312739098515272689526960448167485461764336602415351843284752211861232206882338610621009863877780842991009389183455546880679187520820572130593566286612992760782132589222972181548696971596952875680604442060170582240691642269771071890551450781458552148797055965540794690952515785490926118594180997253670280243040842994492303530535925283515887884008471815802656960039042054785332375771373202655389615231920016950666363685071637948024152485758384372314708932541164604907612770346969199277855695111654422909926684620272852517732920414921301190227223557641810036197236405405082670358755390431688761343922198742273101920310731257924478343546964247969016864889691112053387504025444499962333352192414656910042634042468566996718727697024598323585234497878476893044757941248764151340673544048073109238752291835229727943303613312720601612166058337293284899424104457607500246351170204551603785124121251120818995444083566242750606978842925084191592716984990832463201323903400137035741236622204000454215435747794306867241633314935826091525825132558437737730882514603946832147984193910598869970360765048004998526562843706226525213179197386707039109004849269296008193284520715254210456034969119285290502791094906695749985659503930523814126694289357032235536695251351544139266369466288769599003498430571005412620423572390292967687081169640531400009768838109600869649658248297610781166280845285394299432311077065958501662830069531006687373333578507505536622087166083270425987574733421286044718193183492937805040507189467907961955512666840576480325157907229941183720270388804877780224648800476491369840337132656478664288263279373780601929041705455418431732209042788289273197765189727837043751980912006628070189857467655639038940554202235189645256528858841078113980851544017618084226370642909338385192561402424822794058488152390540147239403189718436884437894868890825754680146390044097017521730898070084024035830987202383614229851579141350646141328061988391524604524856053272784912838449217739359471933020622737614910287832468664193173980824515212045479684938041199923657167817400773963439184468551330224750560628834466536424798112068444395147017946601102853469978721370864623319952146290539379031199392217739504771791307964549421762291315663391284700270987542171998916229303242713315541839253762371335827510332629693459049438207420826432074276639364887770355309618393305736848951133497911514970655673200697412491271683832972691342918133913768529755640240440005547544915484490490409134898892853207445164647346370774811357669217693097532478042070204762287563830236245650076460694101594699147713432679978749318228112891479134869901700565820653554077634901918309905344946196634763066579607359933117910445081364198515313489469340855037847973507289246118084997496031990564674132867316053828305694875410867087321990501822691538404438636311801499086992676419777869039467252486648635142431809195703869720614933045575369411170701757712481798761000320565531028680261238433085594778131892868947712164580499683399524902904957658227138805993505457860871979869924208862569885507506862960012320212800303048761490832725562099583468843966907405461675083711132035936608728937188861912478452195528795133713351172176155164273709391469363794291352793423036442021993356673430305170947059841933209970472910463011649280719401275949473880241161665247647669320771423252050472707108317677794710428108118181389681114671197913503505642862931249123519407747420013046502268649012334905984923432556200773271610052786343909751149691595440114225850985438856057840978699352157818546578677516978565350261720023503832983482670370437413149904435495493431572425346350293281841883367055836042451341337553328230627599940094341450429358505870122875111308288999722992776341507788462672559559915877509595914025065700852323399294131152764254378961820259080190891525510295400258671830258856770807751325880535543871046881971148240088181636286453341205700254000180508327358880656539322020808276094827292667915528042932427750187239670318643019796800555680545681701746772351297081709218940464571952949444476143156473185773158262874571590156030162882941851770118040456610764267931276056003883165959079163444431187446851979889492669918381996698743398148456896168022567034166529602268483020928874447049553926988799167325752479009574951694304978991449939524945199713616911757145399155810494080896699482138243517387973634351154178144339388728519847839195670454893815113830074450279445195993807852952850642741851106054400729808769809387319527291963640595864049447610348162974925995162167883115017509893553912072365265065883725287670477254250322406430295095607764794054396410599855784994442274352266318783127540805571930079203995435103896338860799667514185501389947729428060712120241602788091771486714480271860958851871583330993377468087102721300745915149599517089582717572235254204915717994980283581146263247808215652138165307678379455395395432149497337709943128893498950169009662758178783547300165471294043140964221873073513847102823984625580883401858416740982995852871587480018431647447268335037860453746280159874083433385427059122343933432907112280987062491766763568047603125453083279185589956837305840269139164376810200367599661177494139257248689603422033137810655566685987903649403804030172880266343809167516759586101182759773075938364282003457074394434453241720708233844901583525650355065622360942672268453894908564362770006510913547076039710397750782552166859921467753816268628013503931270281341276841101122260168652498403442038947808953151177370911265424436467874783246379536673638495359117454227914740435414420090689808895130067813630278859459184993408754676593719653957733792581941003779345156885798501488391953303004441812126664634716925780547234412131881553045293007817075898787937541588493725075540470663441716868321175341418011075476083360652141040612630445773622169917877379585032036599943776892903923754134076813203739674056272329572609300125234019546369956079538799709664901299952104312911267638067849071868367378214074869881543921182197014830199079730516354411860238455746934777715041353670544128630445527499191679887364540208324939366688940166727674079806377994566218474392260324067508172972836484200679601407464678693529577723859812330188589130801604456518645972605560739756617287828157657709222401370701788064073465411342913295138271395963499852851545002478760248623864327322381466786913616018671147791330041060042665198740885890063779142020723910461001426963474287481513687730696209316292489617399754416303427396284297583111759057174553698028066999671863755776625146557446948768242018687441669623124960114563083536358327684800662643165950957585974527705981544594390462562268320070075173732563471491095094369065790458798717543959290597130640911329100864156360198770406827770164206149789957906415704250136119544320530229406603067568381457115244574574138438072284239589959408693424437892865180790546450195699880407437751547725184088369289034250690084756738463194328440312335634684989727467530207597570985290673107935236936288991228207219593100892476292219578378909097554815379136439278267241033701217034098336221413181470520601495187468949063155635436547300224670215397927314934143672751901873171726689684602001583633548348530621316018279395623472295030768175644401082414744417602644777247590416053990453714199532577372056061325563230443304836380130220053241405232684472691937957684156683643377714652884226820971348034680253896099951837532965210015588307396266448555435186768653861283152513142439212220812852328696900860950664599672781252958292058493980687049650123876247094915120983830370897536754081477402327033862510555420480384690332013351765837655315220589121023071686686900046258141172743449983920327234273266598762393921966103232671782675865771104637115191636285204761473202996856805326722348049425669831188188563396024089790305838013496610063082983828583591187914798293394483393364937649799555302190227024018685431258332480798660793481508154272825043707884135208478961606092251393662093754493865286386424806004915492014895110227798088126590458849685249354517572298662588689628805910808931140476803911760626937720804945569463503027939511220528787244063180117278523212564991389459782570311593909500227240023386375157237126038723133665880784417058150828119876727257906644839186851621870110783547879589074939254604528217765713866931485393061294055843577935869214960194069137502613654263351454596360024500643145743549385935463609328884469627318410278729526440990428015122056115815078585165709678297824906636252199097639782141351113962817209246808710035634316369734028622677565513828486054639973470181286500023801387949510648115718929831387715355664689913339906596500024025579137167174443898192086373977916024534675096035058689877725700212110845231298440224125377294297321933897621056563518293504229072527013960194324512244976602382516609033495131108561374227403851366136831971546989646841008080149389897422910621948364144763558339181741944031135687640129142735067133609344095965090647152996492683419732640921041542252693277782051291561997707271305835523978408020897767843643241516645496226351632801736705458380549894777959248837642741800390732419161171529105282575874413161580436267657935500676566640455408008806585880248651634299727986083036365893330648207244129154271842480812006678866803580221077441280212667310472322224089537524398769238457766432289913193416829587480447676800788614259285812800613171928070063888474249715724647975703853892273940597968811671562438276331214565794775787371074346462012713411816342214000119137394163416517498398087530385012815480205988815908877542374845523690821379598832961340976273063380419497565152493287091664500734188394669434715719839984414986546309486438346308912876834966286557186960057643894940960016256419817809876512475382850677783786264051268651734643034344022500209858332697053107049377260779935485540850440561654320399800482231511466896608087378277601065607490305103079401897111465577518390719244485670530151640440138145683219914572197947063251420514070399141870474343668853209838649871042424415803909518383072683633381559916219422865671931996070137598087860772211587847636212512340394297482078185200544776849449404550745328933102631630849267521289633528416903572366279462284227009366673747954992172176176677582905678356673593490547282548065430217734753445265095292717637581614202506033430502653505055914009271606129651768190337596787781819887834027663640011809619925421442158770488209121401420350542081944808821267233286454639355613845731845594829142090125190199604407832794436337812650753545503132003757643247089658954637283419681026349705908188264435815149681027948346483978288794597138779343831800712840553153537737550505237967023350285360193368948579154575966470084218505572058690128775819151162282043780429415577100321740412019238894732432103588892619691626136089075748380385731384464604869656773032657095599903707962623086588687190157812520561163803567335338173379868134093007554978353545787951754944558272261421458740264605136384146124141447845102992222964604161297558293735548642894843265291301119818494905618634452690403478052637480597846495741505920359943377151765987952127740733571025220730177806006696988855188409043600809142136529879517390711102235391943522503984545451912216502634949215797785917965621910404088995807849258449954458090824652107002874708463973036418502495289934672927440708011716964015743583078035168601505694067466803513453234004473167708781161736056091669452195106021195044575280298080346849870280396478413882212790777092176512537371566687711850079195951888951088775961455821547529038589272888880289039345923413361520466149368073045393139238165796389009283631239590775122357310118999119176353801915030267434587261184632894098307862664800370526730329921243913424221978290395304793058790383003432231119285062501452799519679028345240982125657448681638823120106841699139561758394130567972559787072036669173215649076992563262175429397999265792382187877340136839003780639471505899737552861725083045372308727562437523107188309696189306910645435679490033824288293804291521399152614272035557242947325551870443114421915598133283455805118659443158291947891297143643087634353960179496013878669624659429059137820706318323543966605366716895211633748284401138399069577368493211348398172833791308057906541739283587019417038199966152024508261304955495513564205855267889878434125954459446236667581860020957587929822246678032243977944373664315327124394712080706321307496396483113524380354687134199270831394932409518018467850856792337070995730540652019099754070555465395056351134543659926806358454468008685095576086285949856006793360587512554141104269684243884498447801535311970153277932297262566561690383968927306314811847629401750529507348775972135214401074525014664805700411982589954936186190760605093891128258660663145789056731210850439341982946823270445224861210817667062425224909184453779417493615587117143592859295574685982092045162292505199593896069756773405504325188834855213061581476275841096817346377901444713084444535791954609498385198831937360893887578007200922861285448616628452555419636172917311805723010079723576775455562355850604162280234525553410825172737501340895630521779743698001410734411204969733872573561874842824859052367284735211725925809789864077189449847116773883490552007490403659104669468207785000681962607842496016750809243845474004744270087984484470216568867778395645882100999029005421807376660144332887560053356124691874839201808474239936917889688208604679104111596165895116273336518838687444077241575227767431959342732457065640552774032285333783162510107246532762000615756648521317451720090731477974110367132940907516701413914785862573801293782771086187393443962352672578603990266181854966211463369603310242943003675967646088772045322778687423475191154117526161031493757443251824743757938221185937643233669091475505250798585605406170288621759466087127074809324241010491048562015081917450454980380297048615383695802968851081985085611052223396118205567066670936632702618433444252030824725863490497227213989918765957613904293737996417147845932335591854570071854181433522360954750227120456305244399242724000478557527469160378987182740493324734796604907285616604050235839843029894960736551686286138991590158150738246640274008128832977828762628443329079033995156183247066419923521807631519115418576275910026368764082308430893494067306693163509759618064195079889650251231568471383141972308334594371010479446646189181892966734732257221106873474321156128734857565411787126623013718624504928986560709565696347239858835903594440797820592379430343550487213229451305485104329921745546183795758539059030865466801828634504245011359365792762671804942157000155408590199491156385560150965799777761419300123134070234059592061194415784045969550884342511903263102722960533376734402591135687531322022976666298741999244787856940446871059660673508685541428960534272898067594530767545026216432198538043195250139534512749519191062958082845134600746214719617899392072975654242263637202361036132191576647481463498185868653636165709835413719691666571732635216897509289586437455199606045179883566055746206509583760817988487493687197949014462226028445441975864847476554557453127362059774059075885408686517476486091819782828860171519419501383765593470627131008947556998891853829399294170989457945269393301622620135073421824186673096569791809282577054559710918788456648970024604022749534355415175346202301320491359047584791137884180458678196594717446985685482894924031463812525032873926143477780253488559117240534239130887591470547816480634764865186017512907132663545889949599316807780607387252358442369865045387862733782024289867304764942936896075949935519081988490623798304693362085623080567136794776768607401691343834720518351396740496586535903947276676079775873456435375663574103012516509527627519935099077586095584593175603941709114861777637624689257832204702935408709534720958737368080732377982194933966759301180792214079101301587969957776663577514726472863481808972954909469773981169086004597479630244313845301997981870742883119286733640657261403140589658863257958582246878755119110655753279183875728305850363840190937101894514380296270607315168923005601706327112377672631965392793502178465081805750143336970392697821021818688243032328665620509967860677809141052949183159413479617962540214660655137158831521076483901419530487952813432360872344600545161765323430376710835343440665322487626240154413211544554273227083627436615352500922784401359090543973328460065212190381127509234615492036654292951338072549572966894878344913476826662672262171619484357619263709354869373300714802488118885784724073795390110583438972121025542354488529062155817976725091158486415132511345548293939879111741400429704886623913428067369281774432820991640878688513109966639854632764726139040926708647697646901328932783393693843045538828104449718107890626129524891106190194374843016097249558556589774323745404527608478818229749758698891287475354477472595127785064795783350962070658186877434616584190298903398365602531379365965279064892119227598364443715784553284056203184472240340606176106771902012191701344633978955354889060933492394663613628302451095766942630721012751436937690740668918093381163667841581172779331490090989681606239791206796917066477471531449927666972323142941506060466152911886268121434426375471332835514696304936315242484643430937023122413992764653036358180440450932969724637494633631260781446066342460529856180078288459537513594619622143281616683983205327435892388544852971462039256085174881782291165528139598384045326191042851109661922087255090921341345096025834245039627478437747704830277608399834775133429482888013722202259755259653003400809460326285287871824372667153269487176746922987483177903137024469176883240334395459674074893763986933449171714767336698991427366538085309632964756793495504352050176339705173410969381643894879041902932787330787503907894653467708233965381969544497147335827776500122422371619829980114160768004918756669914460261143788463825678846106451434842274468477655582700232578441570966968411028143162980721606407788471878949869057727287396447240829081825572496218307469649972015259373939089795617046365190529206666349292670041289680698803895783908765484154055347481498880106246841297437854086425925638926361566303743141923089348044716197963030890547981682559902266919336699392675840892479575480391369248315391234696495736296630374732399860059473189865499273278270264735023281100461971590341134957794911471888403488682640127440172820000635070092303732491052732328976376112234210253090378537113219049141825790964950131125183869225161838304949375688636307893603179884255921194471923810660285475319095793184244908485910892923291657416318168172705630177857501985385895250161995544751505369077510613213243314338077595187137160918379865593170003374348201499732530179161134872688155194244814289637132145949410835498390457746184658970005841456725784369893564316834995050177423349325456039566925245735568326593587760127408690935948450916553558426693861351633225980310749416696910537228132965425123100895017044775056931856745540489031245559244789826837049628383667347161786513487053885485979418157324252905686772881101262205833260671529252658774350473579851636919961321249643615127329946156881605681934150757208050581852698436677296939900264253684321009892163633452608488294058491387333651434726224567929198232868252859659816614008495455530951450108325233443955105459560456176941163968284236803596974623041710279738192460391511348768590766838647343165424484619444231133577344604218579545681325250626488178747909924408204716360989555051010761798258569610237613117185974924409575353465291328059813611904172299396049715938379164602356399851981778451983321352894479154765641424133582732378031214853684318372636475507662430908886575092088280171672825813031664259251021929118762301309504076297562353155622399702912423314271530058881395169581339770384937869337595091882209898426580729350745949928607664398019417731807646147866433039189766202873377581089981332364759705406312078529762005251643315000931295799243978617311032119318551916024165622317928559080212166428867931462016786528177095028961775689392754984680032799572945021204777754155081595921891722933002100782238680968776019248013368357437097333387690125217828061062829670243731917085944217087162903427202890467292642923306529056620283133777807200660621178397160654771487160766295585758127552552350749490398117402607391271918977518784867191892970873906496619841186060549209135074237561156709968890952045503557297407688309363684545921665857772288184461497029796677678019329749695614488755817247732881567061324075268144874661019088955401490031812422566103372671412176700875427055160715385311245911859966370216088815542733556258496556650724223718519297481653127302366268754015070657527270856286587386538718245622914721425014861624903394911663161455729318468744755064978497123491378510470157513962746673247482801259975058335129765661180269908164565976035649916968648574956206896564227256812865054974070097739133589016202856518928063370815678249087049653192979877757928022697017302093539608124683348063382235671069864145486579306433060675423942413981824631608883699198098981828380604464020033163007764945316855642232491542974812687904092190506483553368330585374429486481912276366075247576276432919640972924367176056288421157543959707691205078318536459983970284182969091680769249472655536361156296055104028696992983476439541780698316854522618071397211522981606681552871617954903166666005664465824033303096336944950937607818918863738715003873048469202183740336559784281048797631744866401505859343683754554659330617788733378956145015050309978197681010927318523374110931792585181943437880636747118303820329055712195312646815176121111662109499205770431303753536361774101107958082808324014061410960518842275809459314924928046843039075178181115156085418130974642040804405900163098413642982713179007206796720984029709028046940537819420289234990932600324420474356318651718867374667225644569549498453961410714000562412036298874854026303279240268856000500203432755013032705810165997102300784930187591366173490006518993370027593898899981758954683174541266328277533288856527175472023364448826010183504762859136473301097531864572994040056656055477881796744639474684921607671076699008243493136559661522499485441261624914737281127141509407384674219978894979861904256038269363910716320278192647218650458545617489249715752673972827202056942294377454535692311580155987715174281593950725234129387471995619878905015777055280902699139643839763794845145720017754456640057634375478302418101356495162843785210391474452183480392988289473417264141893867897985115841135471118321075498374465394411802766045950627640610255154071816872677187743524337338509048321463912337844700722625600056028415016825133575730780367859026976209135733308007217396517948309504144952079110240558206162938397006738513459626293510599830772979620808453365183831169292269948409916757502381760011654530528138146156853937823734825547987777102165559209616556169664452636676213955227422514830843069227295312782740595102852519551741384076366232404844819116128914478961379393327434233655377089981793196664025295728746835003972771721422275058290206742245890393792872424444072779005629805446417679867503050883575464049465856370564641802822810744039366252932720422207831779794026573135475027898738782863762846021107532800518557128584730781288020365603964294380466968443704438619245490305343118014328004044662973749332610059996751995978578917999368382770372724374296798943341809985190924652978002730711130173165767494701200267407523939551528937731652773118339234888041860200557570748014603461907600812709006606690629704456362112178643796172477538294638703844152846621466888629486545838229683405775228574145901143332070644445494470910505661195114091511049740627824036913143348919834711190536819167254902065571126399496880822275972791715956660121225123650267425863125804029027230616270004235527302430590559437603865134875040712268749660240465468657074662635649247393502806664043252445279454122680029493400665448815710886170254714385316638089042753944124195232531196266452464379456838880986831842683046620742024675715133216804335586529761462200543584303309399721732891907612266895524404973258307366034066317562494301146524249060898798619780079233947079198591002576230364471342696204035441853153263145997480110992632594355744151712988035771496722215142319348894704262001824257042109770702030761883150167397223092173961122700889905280737405114122225084949663307034204792049962220945075447999162781916523114279092013812067375677772430040775748029714187950403518800474400697781936899109903121333197062664575062954201667424709158829958037096928602786053883039715142586839098395357052051322599885619245760288253611722019583587885706389670537595933217036495244365634861554274739693665188355948390172787497962186755275370134582130079632470328098183640586018969794258279711572520562056133651609788149672156749494445480016720790447279241028234547866837691420719591852863855742083722896811775970370159606143105604158396886324462813801113180391434082903767563732345894851876985259316822688607740237332045244568664371536831207231844796831356340821609009018482169479597415818734404037799724771125450356094817358161600437397829507949895231567664430862646793647448017628088298643090893780882202605048085783851662043321348201409963981326556583267275431523810396626183547826668001667265528766399648354874062506845336415871849096616726240394292290831133459430229264421406055213386034847326197866819292582197815627713345433415403107454200933672794691077878231023852225947387818426355531267928266987149363823674292792863850158904320750270425775984231238576230453377808441377561514231868016971155129278578990732945952908645561481190358761221518447182055165527172208461713424656690057539729877273478132064844608687633482940119289367702074530863052455721530263041545226661549743020846407294577816398748436411868578565631947090292080964742159460709507353019242562270229413198561573215460548296818310748021593661727657579466938666642230687900599549464390079527705032551998215269700837462640380913175087252418699444635368054444063808737535349259465344725562722939899383719435786482207325099841421034267254432782402691481283306603518320558307786548989702331326472296126174096045147929059018878200013891354281142718426444218608457279506476748541123436090151959613342332722865078869775481516445891587006724595401258482419235126750062889249660171956918344088345438071814300575386955709430878349863428088897139324981228122189778226965528883542940331415634786552492532819430477133223655514935130218200492920967004633758486622859263680059739983197358211631246928869651769381909356552356587563144194078909250855335431413338842123970191742631802234134791616295654130431236308489276927637216621451437866046942761865831944437751282986901383154739517663181756269222307430513947484858874363190073399004452596443566887245297790870770212424422227580967850033715467118251978774618268307060139597043713807120097295677354431936525237907387632698162089115874522982183946825683750466890335806223556366332268122901043325533188171043305643096724234889588542150566810910432088323716721983891483185550493164278459881579370801638138943111733620514427198118591907312976483023081056516600523787394873327197921105608134653174970077939646396799105772291326631338904846027605822634756814050316495231305077515251680010925294948753191922969630058374560234049908807281652829999425163555282272907429335360866063547310932017218963349527887935659570575008049483926858097873409376437552589773336856669005735905851167875641372359250099656937783593148439345340972026026396746005120165506203208221500762240730129776864562339420475441235045242694783380856803318456073460291475673962205294292553688043701475399982241567056788116745594295231305551809752432810817493218766943639904365703976415425030033755711604091753153849937051204184343315965598506207009183512726663740103138452913937507364331401047135147665136457430084207674718605438397114782630624715272260493604392335003384113190351157044278631834712329583253014502783209694094587813322698820947361221709146508718668103620692647356710616327020565117343464186302208466672685204492751773451875591548427691305528738794857741654412794842583518659530914001044072415291678222551716848207458976264873698838458000181263100947901061505794330076110525567200358156618757975081942613505784020816755794713982179945389041125844515543642790370206927355755922924907005430887302171701566842815453771481791754187398963485375708940016808320631461252022466873572092807792935756463649303852333266141317480094419956432232355896936598364359444291080271519664245273789547568566154907968419589443424955119741085781876297088026860913942498334577820279145002047500110744845758434522070741325759226924613303692323051847282201864939747770416196384596537043119121721361337530221365696023108776444249915257618927989130589194272143844997744461127344460073442275234157307186668269038932243248072667093143625376851567446894857347934663082652352106726481136513166440256310241521577165495099539721062531384672348682237902900647724999305126641473608274710461694733833927458462343439776296017698243234685528328020028001233322188238200057180232824378273295691421005997818979455842037395844417917013383497290005378669651453388577275722641757739320176410710787963744001009451859486457883820737435386049424753438816420156287623267279178392460768140629071500723065615513399128582693278225544485920286189998314279521979184938457284206562430545854223912670972318681133364306426754139543221051383092007861011563155535972304685538646298815772506468660330008789370414741453961040596163333939459599357751555293637351979262432673614371556070992826477007925675627346084450164326249551038984241743258428186201225654769279088736862724591204080722513334495380782426765010229210917824338730424071830829961842375934633431448380198089705625216429744465546021119765638814774908027701805331361256291781485443803433423967026699290695919473073021306988977725382958503936763346252223097777639428390381673182411585393178081192967471077070796725834750965880556729142714980782467808469821554212577317871372111818775801750096886546501372678336476097205242709416653576142227709520760832375657636327090963104803470860147157721955557015635982083693812236733419359748487503195165794233236396970175341817046116329040156258369761638637843148162763680877261516175560379958993060527229049240184675029367734429986740823872423575592571962910451917242821782954726030562499657129968313912680476862421844229711508214861236589821660480096705991019551863201215745347527805141154519011369024630016584415381532931700317382423240069053790521417913819827623658288360916177218912623055734754307527341449388714930843290434964653924462545565540923986525665944465621009136033210072026327904609573947058509099771691692343919871467856601900594960862325046068660634189380820974726341610802999898807134291909817724410018589653251989914902223055227475315430608549013863163622337139439601588656662845396762317707125542018654597305388749671313025260373702557240514257390497245271941240953463898420134995154679451196199829229502837594413587124070880683212563523157785361449775899256814936886978322437983890661774318622190058144491349628382761034483518031024967169320135180108051631882017928377905345915664823502529793712354662610112999865418197927827874985075810169029501481537676001645353910712804698862173051420582025417886867015402920685784015565876546213522297563379083353002967424598911327824762853996291860825402709749744214625001222315417981841089080641010019529739595852625650212407022715583489527104216791505644833752748254994158505251758233616655476084009672173553103130241276326689651270584894645119424788958689370911348340807656051553300945064308111907282038654782176755946016676600492843343726058343663977908493419207785548700384837127404970879731629427008039951048577244717270431467332651084192321098502373140438026036426964436690776269184325014075213829341370334360748624546468253318010636063707524748929504882923943897624045482236166450651274675498991206848331021566451477655286415756129043319217452577062338154937736839705879096830899144416107951781868336007396045736467261978721818688434492126416826279676745033399380219524317398186130134843381000300750238409473996021089721625628165511707605720596048453035511724026849264024139706495820584324859826891598932500686336306722627598838948076011581027453683441636550310266370831335114503171824993997358228454368954151379559112402820147764995331494369144978894525761697188129250440387867842839461083917682885057135645079730013496357869370989580846495975739727073948629875952967976553656128323124402395155514112848695447522801065485538365940436435336780302314875202291221136891820428427041153607504846318438821090585896193467988161099325651815883870772748691956846986948150157197422695026846295105063109798064447998406049341879541599505623888772334671154527733050133436307768522063013711655752693475088893090071743085914942123155547347038905964526729396311156202815731701750397744905646898398700482057014386004382720445298658777163759492103252061831585866650999015154403656863988809743973955469824923062624078779971112912232296051744658360173497173251381104830838596915662615253569484082402944603177905658798788780886219129982229665843843584275634074120996358032253910179557618783192311044442889822465354239114418716909031209919422004369459109397681507975248000760684632714811033259868392565638235606595313972730827859912919874131372728997686856759679631587441498341980233712720669560042437574543049843110822783903766646119215786879621162038963291783468990572902354830015952284821410287441611571689137205597596393378810307393314814801640304478629755303483128152547899057843729374676722450230408127744148443187439864406725723410282770378043743586004000473494924155479580262717670951284509067122801158856500322124439639444622133762904117588621913502901787180646536036374248247757555134989503797310355862428789479346858068676148862991835405712799005975350099184242916140071988523359305123627367186764258872838385251179947446091271598944959512164574136338485714611253232619156442892147818707016207432149876202835223338854855669958391706301504964196524890599851664964532441286459644866636055336286467495161259559452163072029481047767397013428590914293752885760549879005074276133619934594134801643838513810817886799816352156939002875908498067073950715162925880528366538901211766788084350282503301243723030848771986766112580123684151050073729571270968900741976232904165745145566281049857071625236252427426806567762345236363058311354918215905830448532858937250016438752254158384030211564916513939054252328193913323684862284607617347311457135097683753815651154033772184510416820378474884749421571745350927490347142861118322312642363698222349073013667405905814778192522812630491757053299175221495886012956180520350015982401208591545485217984687498282030584258672101487663921586953878561906966841646854028455678574235286300004811616856559265145767118958944543130184548552569866701563540888124782245323296883162109643919480469704145547896129252888095373618635472248776650603605214078045820148009035627049027094683221334792215066092153108544850790728499501948233821752772958006210672380853754541603949300305129551400582263458834925637033387744486183287901580455940014670528482940815453737608290358488500950709014888004195431672040185528026427427404149468495525667722897146882399893329241717724064196447291882906922446795557359574794936867366085079644462830950441358031750486520180908157718847224516176617097237014742247675121952331347485450796272984686475384323410541316791587253062740075621630099740457209659319964192045153795665787240503750488763331383909781640904891731138856430162844079068112938653170906117587680189142682275075565052878967661962883723161282653342921122552212160074048142840354993833480775157869109673300750385694469981073389554969641422117096376907828836595659009022574520662611650425607186936076477524371949174496059791489578134324124998212074159205248894399513788814940361359346225037338034362867606543294976107447993457951658085370202307088982327516085158725684605214716760757602710551291987990364829868471613457326722021173563882584899141424392500801530622112573065840860889428951923044940064968318493975032143234975171925387316445704548362972130456121386091384216703386629056689943100547996814816019663944627782406021325247158833113721175451112800353552138701589025196426117309020287594513355848639069367644987198889561857255374584908781576945004991587682872702235057400540093092029518462550444052619467875908498692797570536215386989463595452076299877604046278754871512526207041903941464641080757176177564517439779111292548780196131957428058163854307919962607202681629266506831823876708340833883766718344842307188577637584354810961133774690702370579890287688546660645033539313469842655766461970817802229720353140685864092881080319418291067135660346506751174960443825670282411954621839433178987574046762150685202153528482831596325909471962145044656538068545865408378499985328600956268359160869076185903710256071181032149241006031421806168215811800163282055640115305518682571620744670940097312592147884196590481474706859033084636675334097178833184960564927375277501256721815256055110416662203172438074792156404239655896309161545525201127535737752509828824207293217358285108078783958265681064627644905701620739164732608116629338430290954520094667692887168813361524651958636953094236554294225194037844958079834578606622125879516544094702755343312262636629282235426832248259505850670891789113287326096644602108378775988792124172576127250419359846000208708293810519885448727724772391998242308915879711016223960549543259377426564198320377915318211798630936287929540747404499375816526552614894157992955108651691972006078875413519335753347280231389435977332607821339859968057067790313794944916988644937743825511571832969764339087070743561787024128554658546301777620552483034775899274640614235150458352445198398214804995055018312957558696650249240654308604736949426106168985535154531940221345155518956755529342226110976401937348836152589694587875909097675101792873065151307862512407252950729916382434355755270657801610280636577501354723351584523308851214191417688553779857137100423738747049751393684758547578857214879829528735780507449088415401725330970645057343206012661646255476895794801716313255614029630561042897196469215747824620549016920235274062905034942997620242807512733280709559612641323106905424371862997703036058781037695904665751063947494638070994830862771218009932397646861437673643559047066440260981614635136671327118930609444615035756319513092662247028833910263996420622508240156868574437532331537667028486625497676977080208964334005650610154846175990934828845909103749885145992169564639118100089615459289390567421840907236141187033268740413461774886750473933813364412832235395448290238183224235844315648618871022816128904003950409977201067455340581966035362037227196439375464461018073322239265179962565125708577704991337276796880188153630487284749428343844643936057854020969061657588341832004238511347307382878841693101194087753677889147391548481212056492025693347615061045542305013094729600538241965310969216418973734495213647902481773204495818064563795728829934598269134262937785253098555173862973644970633390989901749037318374279428954485543983365678047047461383126792354985557075387409427594100244465694763133074777400707382398380799477492863616381413356201265162019021375316434189106944045591765626971107176782151487462469145005700080654697874863297141398399489711481383138982696862854999715183731137835638806121733704630627052669959793325732316194556362263023940915242271831851503847304601313907753708764249725868640829316229650072987837475963116440645497037986137943197081404689719985531126288704699510419100632458975199757253648103797128669831858269964190643864465373491676532551623494206510911630594001170786137408552993890407564808802805535100712482172109931139628073469914281835129719439667901858211126683855294843444399436261075914111802895657535284531421323702799898557384713354752369780324284395369195022999685085116156993378242327886454191740224411752519737256828408498500973449501592608420587811179512896523939809157309398200434908690700912053130883779766674473187062350951488118268210816921248277063469800392085994417981906530817176678753571833772573940642950896122574148463357939787223733330077361997964626318452814610038123631862467518113593173319293138933002274089194894899805485013778557986759358339199322057172531604351255722116170897931791332873700897912806392278515865260960155529207893550819080621620128592614737678593595178831664337208214686029518660797866953160570331114415885423125269006760118748261247778469029581409638481672767543365941326615825932188032533509296428663685789633051897392584968377099711782096202718632999647372789106661175471861130241402328018748969216170480662185990114397016581339962560523497490368248948789739224842392523775921860561808322374839697651558220283765391968262147731559439333683174631844280168630238599068129055108129785003804511238418687280901900754198155015067338423323788607181965841397535807630380612319991949985715589832454163305447693523347707802861711889216511959847027597294607234018485848298171085423511079844550040505029727582708738228423801906288294224775629544686408901038686641873833779922100814355311401823832003851897856147085044591953266069834916665734818378680052333549107846988695814011404269482716344923539984992964739891172134149131141114193328908999576286402089533074909732063253131961091019109164326310993460174304189239054532068015012504962787633248266254156421296589114162446396384131112623486895506950667905760769785881317614842125452711862275681678217327050090721598629920389260350734062984218431633705316080389673687017813704921572858443643894824100309783827204207204641567355644199611489303199748368847579932802658183769340079278287838127283045071940672095306717953097018131205477337884742250674611967921407534742408759182450417373622917386288638992685366324909584282438670625478671714794656536652425272787531271098534177026760577577277437522608639885057625005135150856130212556193835376576812266515912266672406612995787252662418442708504340259861909128947377555883976619382822186371841631674367383863614082050464757651563881240727370721663316875025670907334968305704798008368927120526066886215439553871331852426368845948361780226548004832524735079114696027480928693508680814198555409927256182932326586190146203746149568003410516041328433476925837124679164691442493800143151131423804108545360483230960937235558213707906709433722377065359862741504434922756644509142350210133763997244601117426489468341739837745084602612805743759458116905267214086347951235812699009179477176816763009540300197859290655263578412103046749579427459167053705828223505992683363127363332577847403717918574107389242818325214867723271468569410889613823027939644410601937016490950788303880017640289686069895722963613363488840844211253572026991119658623741643952865790636332456804533985719834778008314111998268199023053199959481087106366095731441794054026588121200874793661267590294586955358222633770719233459250197019448996220625795655273297111957053482822459163458150534327357086323948510378511493534195915846792713896409081491283573271873857725499233068068225831647315339261359365036889364669865777564106279762878698416770647251513171609355652596047252394564663215371600916522251668784644714706449175322886314674529281914486384776681232793280486454180220893038622648139460254279780192404714746930077412074355710241424805488125395149341182234242123447089994443558938438578008582792207028588831725815737750932759658480072982750222173808629716428755385424538245044621286453153167057888747296016797706580508605264328168516820475801947487180241063905022667172673843923484628349338504302976689719383153966071958137514612922217098340839370211624446471122113050617875132883938565391070063981314099311709448236903583497638948461104246137773056061928567907717638433739785349258296456181293882553827582183023420567675816573669488525992102770102566521246079731079061495004617652174071581589538493717418540002061117736265651988036698470493477765575594002816528696568987019897690774959744228141482829592270342642648513732046235815033837332273821665412826717812766370773468107362063863773066465165098909516617910751975119777025385769476319207837591454156664094917752562883288153034056050561966288114208652041404471545984378316594633804683913901828488369573766622964883885448809199640903500251586874009606036942010339968987121755253126889767561390137526305485613600853277855769267159151443821957509653917781897975069637545907379560587119290405740774147289012063237794393771666327789954152040872632661649181413208845763477727366143404470212299342169034860788411760604769045672076084751568794406389745210853847910446739659611864684563964276285056540952955159348797047576927652687770518677278372501809723352700606111104660864742673472703939999525528647458159590257956942931757864693720989854312867592047402613949856430963495614348070862181540349255145306015384699393665199772933313952397245705640462582252841907109918245521817410406586405438589965382075290568534401141660309174962476693151413369368550701052375427747190778804186486427418238355924557273273958255904447097605438641781457629229977446506536130444676157496045362546581708191718722797871137262740058483308751705411924234107700693909982027528028045929842820310370893022156454970601511400988433519945692972563646186073830536577802740951401407811090204370890860011566002254896836574754225734940305547974491264038022826575599768988838299535056641215797128266370558266642571263419079219697773677830970028028339931743714855456715030243790763330738059665000956399614560823171059912086175168187639904031875623185329094884703558609619758234844273186317063049793729382895608215104039849591299873892614160066372568067086213449840891863429990110337900828555983736065225565749030360427849541912363949556001883454023148734740057901658408815955902385179325917495771931871951965739875034708650062303623454265336208728865966982972011288352518026273864921114889604806291244262314583497651416180195094890074254264626056042520229732573584471942323086530858008994663752482287222691502056495889553589605155812502415008474902784383281998914235465560914982199762083837179768992385000164418637212185454437614813926101379243140287363745244357670269277048631567174832546709153621718911338558552923976281699080753687765727483592217736547265562243340377591001975705489616258872095146365354378340404758178106612394471352716728075230459022299065017742421653401741530831964865419791984914362229133527811376089879332172667213905227010326073042109248060181233108012183691875742001595578532249998246985061140389562954328502452773052235098830644915902505259262416604322903897050924358834789047688163138373126210371847435627077177423330473242859375242035334650717836446654780749507011399944875521862502997941387711156031182597793388701595439421263251922443896186949209596805318172022557746224121890545737887564672981093475840632634515118430676173857144774183341048455473743198642246875588481812249146402853519465791169157667124213142247410502662213671603302845646021652493597806403086278432676029742276832471162156535829031758700594458355628156569583150984500123241716946272080641901630320191768971710906457209952856129624298277748243669676494985085304048162443587702667838533153727266513040167935870075340725934674691962551856767828571188128742905102359253960436709982924775980011936025147430986711172579600476861141625189342229153913485457681093794529906823811358177140560747454881555831544827291842560672290074998026674742785123251397252308988508036231608232286477171281183788406698635722977640079406657095929645963814824869166675038902920205912917660120216721469014138612136912131834208742144105102194046750899407254531379570036197576250259666926630197506102761272924324398942947366995749827947841375913895587193353214502699221118540082689053102201656559732010977918324856231401179370351864082711534760641650632126739848823182710465651040348667853979365665936281988287074308967383211485644300188710885984013948875600559557264672143303344231355282186944387093409070016453390481432230119613495962898813410930109183951219546809098592636325663439357824721953291655897509844888220836442952322193636175707670729561678890203184483414508512260132978168566150641202575637134919773974333516511725885156462548188329451293702165558229998347771385947349390222915875542255452139508379514663282658490709543835652480616861475552101852677944988644535120343401493433377396168888617696437743426560016637361434031314127732865574313554085794299903307601468728475395780885261287887995973016195316959843173711426282600476724640125118032329816053759942125988325534220261713023180858344526669956114629420220703976141276965261389065491698939761439873428978073967864136000171969960614288566917864276832522803471270078910105645082821524448596299729519352216887797514226949772495180885156649319003416177036837663784860731901595051436811934298466054254879870958119381790939961442589303950090203913451064801922054924997023573110126733376475333986725258745678367077356899071608092762593216071006872425318221340449201292184522715628978973502534367157215451315087432900877891246620847303521993443780425154939743190089152520781570435799042120731560423692156150697935336193575628453361738089838879048085365079687384150993076500008176141441481117269606542121135533859970486777096655940645684460475939837436439210436449501539647132649875744653232185829673692167420794687309960618664608370086646794517584322261917477287937304005311526692477152887432390376728270656252195847831664814695665921436915362529449890413570670133000869727459794187632739928828718825255415739272880993910705380180898864785097204629083359004059847088430258787673501920580576930069108177564440756192352442108740519863819170584708770570222125761966828985297379156082124693414562323044873888636401401673195092466074492589053064040848454885924812373669799898760556044961319044131547458855112355271796427580774069493963373750202780417791839179467385627514209825133804421603677428404746386181920386952074940910832461057433208376044142513355961024396160222873427153606107893909115382494129658598277678319839614400950925723734082633105917516157347816299624410681107911072395483816356922538593544931220902753094586755953806657719193449979010776945110869678674546494328456217692094175972874496260406956364227266779658028826142673858671127826189715895792569267434621163534074150436391363194728978497461742076347168905205695670223542833328993473360578842219460795955600862590034155705715944156153665113624352458350340914799427947885906390038720164832126699388336908898442625855755585281415822587350509377818123488306863615525391824694590629350466280222908327609104881685981220028418040444580218638499580335376675076994972490674258495419723731480613519931810132831648096133443228659618763471879292389268310160681950377908575516221815732884414133577270797410677646726807112344274151695741634669256019827398376231963656230225976999620686234454633961440088801020755092471523451650635684767252144424328738890729027322977071099298226939237373385137166066921518260572165989418252810829171940543773891970633915580703570697102664720661791703983605859492270213964108344906404289712676368781464059530808909095660306352827399005429112037172438699460898808825504755159070066005945942823019429509749836057949298410643532018734805604825118283520261878849915740202175110289397184294115782781590600380930397304414447650819251210139152127593850641302115495410733048705471190756335090001253739046199595094400697574481689552922243414433132533423888836544350195176932610245337572524705181011958780133009995527287749197524634038167599346814004849986734272372762079606313429624837036951021950707435780274336936258330502178525902934159881217960476840105951625691881279351823004229902616800808531084143797968480969414158609699684249357503037527287955023529336995701312249718767024325505747141340908168857362083698450981257266045640188539963723191484835824289173164886462939536794667403382837272690304680336826137427026870070579415263478186190301269137653175073810643225237232537988301622582457156019973842534037534737136258548209194822960919829336232288916594034990663275755317831257630573227387956403847577725955985899116214756106115803926243138790587392633975321667342483388755409925788736808476476816034935572603213214703496300915884586366171208217649428025676601367537633836935325335316868668311181926984902779224710637072637039852722213876686032678164439819867331236572297548895347032117319286364192864525161843289497902661619342737003408544898331554935725201763407314163606967482631099161023828964209732651200795641568073049515427752057558607662301315472841202996918131564327523455366756512163910482239616594740698621741397274779961849642094290044334300172176333214048675618872970019546232672183625676741255679789016677763437117368734804034877695323854427487893503076967668618981330826074262696338592871254727322680574024484625399266198489258271611638295057341974550550686209371240607730045098682313877256943657878790834712146443303471629450708409904134135166205604675376830274001923946077359340519887015756650143362675304607809368567604682017926757574406973901728471196116254674551824204219194426724161753032133638369767082985970425536012162220903269566979755918423342551203334666629147860592126259541784953811251353707189980813629617036637458675879128340615135416933230548639102049189205423311520839421473034583362705257107295151282424047934738744565930282281125310772893402645104683780118030827122567988728138082533715532617997020167620099091713114486419431536022041963661032192624914256386273241432488372981142926095498257042384406984518201899398229503852872078805242525125266211227729981915199804823564240573176011701573117930831471563702769477920712543601482027385318722626266542673894931595433844861558185102180153532172841995704920158095143017054708602507249404576746367755915565312036658237196077515819854161375940781075372622000773035531114132137666947687544899649890483718871047448801776339356533126859680725604415683164583052420769877204726860729106186422673733885085116753989797179508891351248512207323116032902824986575879726531369484772758103393711438848539041251743370575683903066931042435545671245349992706620167067801506536717927641834626731058770169962852355788383293068850731597574282977090811833918407060162959084815234922996379004110193028975268805992633981424279129373876995631156662850039392480786286254498145170652527984888913007259292600069906030772561588583720837956594676040941151606254057997220854285868572253132537473762352729290533040390765370097970804314983353916543761957349047808729818389616872599334910023946169467896241138016972976219861367842434773453228494559338496698759723132864719170188907080300191324400483348088892012892638275959141585780022770801825614803822864049609901147384775432970797912762823885900629395355567836050950143524072983109523191117325975487002448763396903854032299748231176891948119602407720783358498823574552006447120492317444497824373920266923786343269211953559022642466338563003703131884043301323201082747412029065273872583603170648229861757242755504580199835363230709480098377351308941434745935084646982287103707551551015660826845334569753894129267175636912537170520304434236258214000701447370551541400577357152292236321935915646162961837172533753104954634200200494137279186114736266553101367939168616609180709551792769649799777500862855145685722869802208059865302026953334846784282422783736645737185263879416429817474024247388030031473492410025983853483559213463199932705176856076231505686660468933352972405764792242639875038257939278518416719908558097486005405477820826669102638255308032273815115361835398408386096138792640631746268892112372329997901495198266981277694977725065770795834017218804747198845536278286691108917473177786221156492773580201159278828992605814043804267088511770855106565399420905058134038431323986188839219936362893266788537881158989706277863510776411870781204384073382575785078495493927796519116315548372592916354532222547236332963247600256327061394590603890008854402236420559746907057505288059646384010445923768419436007043353619339703510683575673400005458702805767645771839245888710624393144797111714494892036502231284672951150128304458475253179134445292724483442767264657902623824529990055293229876273681986761017364557047965448971028797246200898969764351603010138514973407673819867584358062128533194599967999374064448083628670353054926631529014948659190583521925680219610799611185095865526729067118663854592298880840110396591161165164675422357530571941337497295450954580119992701606264551130422991605975377630393010558063467906113743787651010095796463718713856653202898935150522783124495058289708982777560162588708163472361633904998215895177673835477347819208996624233597094881833521101956913661595376271053951590293721505438730807342852511436595769960126593917041778986724970739894234044638589983107726265781278051258976854459724690133132355616144154787940386920462561450049839388694780422213922832421350098971089110743346620127673633654655488709056668192909471734746946731491408879364067936945876520959846991704098345079371913538960404237702748591006368359375664484357810871675810217790132157336696370662395851386314532860322690462916256488679874530254764221189780870709140971664472920959135857690753930353065461618685294283473462175738472103259073291424994638388645309679760313513860459512743708062743824992807351440583513356836878014047385022495602864517129350305891594593575285706047921421386568264394479170242756879547597206178865827782600997434184577777901601638710517969818635123843615381869244069216056636218430503251613880919282856069881952647387281460128248216625860801916223737736681894706239435834486854073298427835244746837196136360471249310826066244140811416646212965718045932030444444142881970656917760684080201467550370932921145442793355604130605438764581926534995918335516106926563591259909516970574825161561189707572454151601925427691278353102826088179745134215564459575109953290663503503645740783976383266036659626802569468769716837794491366819522486339995712962870290943565901163766581846754265970327519293902038119204464134883314801678591143139663070555711078589337022997365099586665399372148271648630879641102502543107218622730636136042938753396823083624516564473579109331332675477844468846523085085677310403195510182454908521336279395247682892453476015644437729813812124977860439458264538560270859802805500532528502519308339774933091868914962199349395554465563639066165337287835877070795852978553932606794224032073578961394186660754885363442390550884534632269003285400574608198171099499040937459507836375572530249785819093149041094427493125764752800832096818988652480452987915690537053635099015013748208710745113585161639942705605762228693721922028280375646349856531449336366716733598818749405077057474853087166923693522989805901345866164052193833876699164960786033989379479846782967153229452210240349074939464940431094256984043651300353032115145402671356057701747753869715612078215928766911853661710838552437529432552684529683347979992090863194590398882336339541068052688100419144262983532328194606235104900332321438092599118724990036840076696442888305769500667171757978369842770974469567114326815986997459830708272991812361297924920053914612155957692266152123193597917881267519457126273388697112656844455230366640367915050759993477918343224940402666754364422814283646555005138942432606944721293146755637342097810736911171407085765739329041656341324902470783537452689290731243974946985682833748388310646007428211983579674200101495198154201532162805468332366736751389327481976758524592162352624688972407375924754030540515586048054003617106168473482259197515248998744703637197308051795350901036822876250512549470851233893592697019176955209157731979989195684192323042219288345162696497111527750406433845565178668807407350872421857187694443371066154606433605473575055036778168539325651532475117862608709656387461160549665710054033721199510270599908553518047287886844048196824891153005637913201101384346236963651760998040618400576839658186655023522610156228864079962039863445263412111204439398423522864459120512177650996245989251077565485896148751737006339739005429317028248566689390823732309574713479529865314291842025614456892349370523106690673853808074811515840882066922880974521802745411089062127595970878051939163708778575041552150478694488168504265199137948964717059044165671057894022652657747285810752750091955804189095192727624203599772582529662626745271660572368640212222908531586558182324284819022168351553586420865743266282713781568057299925478327177728126187918174644460927954690707505775523569596475756738838104596015994516993543628458046060984805332905049342050458308972801624529762333929271124204141510127200748128594974639969140062170440340105321267245412373073718038039855111874132812032916069005471033861060284367569932039028809009858450081212372296476965353337670607689542017992717686204785289151296310780104794088750047018707869498778993903555111829595814959772876644155494530451200987603186118874980140919796089277946903122659571117485735719101094458913301990624959361121231852604138586257296457300096222288065565717272521075573118464804396456060264517267475777149124663532953663904798246744661937209525641251925108852261724942883180944238529153053950815950112473390397569746723117981999917849310722245804857886432231281396766543847754611503159965026630051185278798197995766227716091059020080377683865472217132801171714677301655226520462550952238514653304878630098042769955638227925408010003659893508757683901309162665360637825505700088599205405284364485872530541000401851343756830150627850004082488795467102288561414416298269038210943850436307280450577698513455698945978391870894817515023684843833014386971572797440298245519177527476871076810998840607286633770444465714989895356434271299401093131072070829038106337466192459452853298411460424535635230064504894951373731592291788652477322277519473319743166380857079866061919598329813374161973155764980747840340321077294121565365894531682738523472800258738006820654398740698762001493340757963359881103709527334690274570273093108261093066156585728084415646518907962466224359893948512741121835578935441463282848641601875710966924557716472718146495635546880096203142943832633772018643224025957606467896337835805567664416026675333838563843459592575968875384767162295829279441573838568443499389173638759301685311063742611777572366422638064220259174918501965052745958934835219426310609807195410916441390551586153892455257161487741459019281121789411015480782348844737082679540695937688460307028337557957796351518219024469899596012823489050014501181527424911565601046901317976410200735416710044533307244513621424027721806330471065164631266688151056013718270497643270262456329134941698800100640796572728340900402048487913755330288450146217326265251275963339366838493541407782765032169996769054204347559091154826364769943434163869380296571972810437435479802295167296570064131337085275016909397030829572658124600103110363582619549210741175925421762746246453059842815818276670879470504132565282156132707711775873883098082634181722445883256680245266612686011675311317295232389978450622801145286403498136309568950060356016704786826559827855891941720048473483871751078977079204878384979340343718474633243448434520930377246249490986414505368157349844649575625840213869218944673847421941468151879041369700596528474413118986335610548509007899930119990890502595914587206567124348265273398577371583678430645259669003351306510171794166083737493736927848108828272338564731805199950582964702370654242193242060290268765080876078496750931035607369364040933505728254525951049656359476355032960305451492628575374291730395032613228222289021477349928259675880964162282113324806653753056288562131736279594661124763861636730331574047680291234641869134327466604947497752125085171064326080925122358331864017258086089752049527761845379438134469362785066815180458618115543193054944511300318247142207443277240214572586733435672604605984974481542330405007592860935920992577866073764109974621998607203918098594384422612706808197359206673459909927032518446565691840532519715874287370382959194298105664071800212060134661238268941391134733526072976955532600672872767923717264625089112107389426550163300830244391874600232441867221511619354484012959308504374498511883878788858395277796799437882117453837446274346237444583088737789648757807884735747825615870655672041661977298604293373326787679477657511242076772494666097274282751624066560187625152607096510748701011174255687426637213288717403153475671561266613090449159254808849174946630376885260078890581859954015366766585227179447803656209037423746360378651721094367820881268328683920868086630675318656914949686816833074924951481909577790248064286278560254063430552759267562462142990210734795332363364370693545676951949610204425690728447147402773835849743526855444674627183596717047076994263254786955018714431059252196283488394172694107506979548873775651897667218286839345704841628643182231282507259379046034946621650442670594154969004647064009213826938656666421297159975078114214586426136953226778805002925450126311562669158893458508895465758082091823502145244817786473672371019356075097912311838494238933993821463025554584557480399609887120457614296303607766939119455479929298791709724053606164870336796944687950743792352044615113196460280466170346224191455300122669259767842316479818818189421551859695064163324123096320523535553758951463325401395192471447403936935652448489066617228373519955687065069588351597131608226897957293372160709508972051708902493412471316098817672294985269799322557956431569467802898262036845613327847225276092273989987222430473695426791759183400266488212796787881621850518401495594047399223377944337388499490126537497068176792256022525906822276591691843427608934930821443079822018735725271054600522786052073191011465004880299557261792583769840960883602503229292254947668877941547574635356653119053146072373921313725373847814042899862385787046135179871813146440202734736031972405230909805590515512949965774324038256099615757674055017977430265051033843893822376888378673722415737566323014530627967190136161296316850651638452737917555519555970355012951123825248339667097589975306753208472933568353706883827427298908316015403308425275418004805040664881729522162438919441790741787025765132125702984812081773852215974820211928357785512613197186025803713852119749440156451746303988281423655263343975613964723372844329431086019781553720141046370201981383038145574247826760014100903979082253363142805476385967125566347920704744666268709329310740271613269549736896529246208674817797772703056592809390941167063492420112709097181322017363330915879772181197923040267599597538945599844087312255105387625267138668507102110966689313946137762890253056506436163742761071179354515514081873290686689801453087518856566009490642311177127115281507462004414294521688707468420666760818611147834330612598244727077647700637430240745795223286652037950346644135526722940006888378623848120474916303882257236751738779515467026263517702433765597460483389899919831776886351038800469264023778311746535056312432480528435813345021544712959125502829065723193571181064143018072031979972583304826866338136122354510143406699449600277530905655398226518933810299450161126863171734500179183265010159208801523045018740489969861137906546031207020198499050410647859512321335853067053462608473675417317761310423234191891509668481765666805730520835723613280931672510123317630649486317810622801542248016690812660543702513696702335280688744693466233382131464309999304355501228853582850863256220277285002283559031994625433758615179931695320650233439479511630955679206839564222686524986561459693250871179462058517617724789688225221647859524691540768040129636927543224417369839596471131277018354996423827574532123364809799186702146791197011200187261735486032454145677201973184786875254232111308578249694414153328157771351811503816934005789791232141954362968952961841701291742329468157578522449678931609168790284415684379611222843605575895996930797296337626575764100043640359374557681201369139778771777914114280279905184852104792708976738841488520924373354264706122730958718364152276638971221426197410030917634378187718427616630567103885504929509869913886848657518151854621364895274133578636535272302006362267945054903903443279511830393049172542091757443177951751758103388955406194769009822442225560319958991676507376223913623237731427072800259187922788671490390480886959574624800160847779266603654773332804449893866902972930751975923705586403924741208822787182946744458163853681017102270702557983761969099533265500028815210256887009611529917203802114495573568964667408651848958462131265691821472808095022786725873239060959864668178788051230220325251691941968769069073230099254683945801714883529023719073218675734780280035176734202494809555974375324312766496412047188318020522702521598651643945901269437235086306567222945870982656481047308706145837136281424990585688637908358750395776275482807905112005990535956422950687844665915685011438026154769621710356339180922429853289499755449404849017853766841138663828520503613621205565360402560015759363818797482331279430723056983223720031695202020068972740609750229951424131109325742687329860036707002297749384143868236387871208321332388479230762405116633242494417799970058384358375178228034898476258247618930583577315158768498527808106189032900090857454067458180668680380937941929655712657773357135121955370782894559075830466372088549200703509267371151939813197396385443465514806720544017510695528707114626451369902850395565656367383307165663520116175146768147719107619863484880980050664010670020332183136639767750413500072032006857468985038769815091353979325664430237249416105645869830685586153600557061825995124733123937849859690885326500278511089748608583492242078839529626539064086187821045995027807030909391697088510929752017880575822453168401528815441050495289698325768691626015773459613546154558278658271075177607122105703565510295062670838309341292134524276078293551960522287159595666393742081625130887848663728895059835094265562832977480478681490502797647958486642369606048173464483689504163872514200118171516938029281344951664564127756081730298905921599600222022432205345235927859478288594480187143941812911739478605525122391493764573698868055878384059328119374512599002139937384427356752416254395001319783341133025070914397948353544321363267227019451160078544944338799210730044656235553110425388168443939233663797688367634379259502977229802674163287923538830033501496658800451780409058927895566031048314159201952774564493373070467589857972346821718746168960253850147015834032806154464069690295458715114248516396814884769916192914152143527070160190438737416788915116968546768618395634997714029517450270418081868812042525263337468487203711170005984112455084464933801923853883230278992815197290987963881399367789452646461124068542751976244144335179998670549226876085292245478589365578510418657481333419394840901931820551623522093491093400325418242944622206648566838409870642428477579348972323914017926186010973687242205596724630008314220201888995645979682624670685657291355977663660896064050040551871171938936587830755409669478879786892940004330771290490919441647705520359369019451715079974429430064840067281474004059754764988544245729000451011252532932050067887247488776614535857134430445670063188358505938832486820163011751662457259809266488853829705248204099928276385882992646517850395751640954431557151027062370495315089805868672257714728961097493198927234028433860210890938338025394957857939939501603106097287167768315164303106129188380651797196233771098458987448412282886750774219679304983011160749147460560155493929481369073175425767523346977594436299165175762636045856115638506181650915384280491449399415194611922771388265492156594760732695285192919150814293790509786666782752531682339428230561839903175330730347949521529472739217592062142279169268872721361534957140956434684209182791448762117258123249869455707707492301960823691845780260176958360391114334621930133259176784217677722801509497581769632328926010634515409508195480164741332115947735897567885056213861418705788305181572289546360355464618255374863712003750792698982068728258279030155381877955076223582836362474303946469837182009114045999969623849899293487139810467604824839881724517245093590791439464079843242052379554716691461837354418133663928540716593072843989552508286544814108556084754187797101246802900425795704385308381137798942602379893396846474159807187087220926437743512796879217973837677285840865724037794179680604523585102926539076667915604509468213872841338444382504039813534754135001137236016991738851135491219859137517793396307834589568134120777095402439950460379772526917571306915524755136124049009184909893166177633334664161960144151278964255751913752758675834969484874187489723846355276742040940981961141537272625242022053674591304809621995263476627602855015343035805715883584757749796405700932654199891536523110369030879223344021344988949470021756726608589910281475735342815848905726229945180746452714699331795401796246696267480493313392598890348839318712942045691469652550845251690981777230440824617062458131118294142233323102474709013241613514126833618092493572459511106630969670034663857952455710552187533143551836939179491514076177161784349262182050402902626325568008689738412772743926646019014351586845385146062192442327491511025662628133956293525625531310636153823647346130212679069317555176404929616123774152768860503306484129429577290339005682405035448476949768114964098570525181779045766034346830331884367545124822452614878348366916660090991068612765388109074223491012756446164567758526581874842929361336040058087666340677795121643002230305517622834537345637112663212861137823137210820878150152378837201363462247688085585916161621459284548484118520240306584702820480737617235904168735559038612483166506939158306054390741832139218502720435497288510075760269950443530849332233638884662757776276303430947777767889365871201215799528255705081929198206092468180044725298688056978065918985569099258296934724792955601576275015428134841210424632234541737650500709658174977076980685173656490620402987132481235209802495513476550878126487116268958536010300660565510911364470065173391825423252489349783547052432403942072496541057606139661061173695155667282320969415655984677223492428537270998732688861454847183418409191654486298649878704665428321608956165170913889260122424511720701552130414411452249014401144234724276187396791129787629441369624532395182610352990247533375040490286388930113053756685875268252461510838306082906526961710430036438027460855996767082941129344462461370813618798577797410815770603508052501332987773328410049338279380131983883679378387477951759094107034979147520651931754899948865937055045052526316285488004028121857803750836524263324120235204567656321412713981388398947233609211162671909815513360836455119960736341492052935790863710767360082085068149392314892944336360682553093123272822832065736806591007200102126963886740761668625004571537638648149563201126013038009321863531687149093152053612657199222406527957603250809390870376533630241225548861668581321751431375635863793929397437987967214707327887281653832177695277998023500360163870998848240656716262711479661801536340640557596835389146361719569288580496111247787726931862862069606195280815918141719915609392034027716761905881195489367984478965037384057902191302401132053246063181448768087838714337805477411162716936957004195466718824008439405896849551359511027109167505386335803630190159923765036310441547576713723159268948905460963412156790072296190060964902886946359707441678759554389195029212595296155559188643964797359950648736237664695878052536471875647926494579599661229315864510474312104105713810669039243476437670733663639029112353826402354012937040589116002049189381062327295214280642324433569726147941970495430198106111097894624219317334317964159882103656801381573626106904677598991765012799461086036747727720502421112960594724651967925845401373498066661313932345450104821486814413144324057381848139123374881422682829209974319546051799740417590159143325078928245181572826598349894295582082641691754590534977049440230388326751776429494787771903538176115188169017388189264088427807621989324829250173775717149404472588994355721268156632946809376408268443091446324330259764969917138337696551220027139955741470359725574379139873238584443752624200223791555827993785826186365933987349055881357604962536300399815241175150032686222566146997101166132809684286325235634373515999470570580432228830757587653099007786262134651653960931392090075146269889047792461420401402336505785399071413023901627093463800569256926985535047965349201374124388505619746090013568206787397294990323454574034357515325195711458277571709531634208869430455838689334687651731876358256529528566664538696002954603647275031953270808221485819047673879897153543865266249865109896996374853420747824648317282450368532361897923716977291719207436709001021057738610213485174561916167136429013794914042070288500953634858683960887494165330404685743359690295964105037641999985671000311436161378542277083942601027432371654605567484717811226267864567233000200070823973271747525141993618515287150413788837646679160698844533473150776548614618472598075713480339788668703162077622120145643284274157069308925205260212695065072510055275275886878574913488004068789749515380989801386765062358627354016343805295650382994652405712184380391261790089889542125955343353776998249067491823453792003348899710898736023567868688546715108929942388775752579675924284088469452741251920259928225620897904880719183005616829760680900533815881990766830269549325290256890272402486280024640973573595565280592328104129551548286494223092816692772407542744951259938796021586391865848927204173238894201421476712382157174861938769094901997673167474699430197230758668617001659182032512505652479404637332195086858705970283576623705602041604228566327432643480775765979147370427565477153960323586300801853462996355476234946568988648199240533625195186406368729056451858784840004756723311530650942642346655176830645001535051863170825350132110901560293161990334358546913735379412244458473343983183263259832032617626878348810509363565990315959537074558959299730044919231833471041295448311233333607576365759868843405509567601029188282016490616993283667538737379484451165319583804464551894118365780140446991943774684767201915050234905087763161758495892839785667894848672256282467853300798320328621307716701450693910684249256186472564314783955037852873977537083805306208452749994825912734005362072205349443251121808321612085067684953227375112753355682742115797940312821209129638672832784940691868928944461253883788585461738142582582430156802464386421003158700373209922365796091149641032576372640274543816506526932162493766896311363153165797692558757559381560228644098293163065198227462080291313283890270433313402676140324678334658792805237112687685612837485736982162725551382107960382847521306988767127670773320774533833545615867954361383097758656970169307209508209131141632661527878563721703985955037366695868753934274066687410016283308691487373796954424027201502666651539365194751351786772036553386825249606055047369005850453620231683256962261700977049702850571833835996263068185278439088670229462434396027095565221193074972476424406991210606345460412781045203758083830222926071526142787776559706282171884319124982582650572531449900556221699814482192705419005846668033130074374981674386761239796763887212325034714028144351096273842157216021071356712938247254788932237671907785171038844405724245735097164350000626401223598554767877562038684062213051963877478172911527427495307828006708562695779910448386472274442345624441422208368663372422776716611312599815080008794864529984321253529160572814142602890588883649823422612119373043292179035915685599659098843526939804771847459035732668590983753122784129325446152582714381027817939036322940004425056087169382136924413257609175380272328903833426997712400968862851893481481894128190388491198954868301055278967212991829860883346540312417444886247289614334253509046642881566602406805306682091070782199618622791636157494627849308101407630004474388048975908765473977887014338755763316489211046757248920296228640199705704709774052454842437226555025860954441760702617083318903340566410654304039029251230116741445230602910587493858803435852218118271625644291196475686919688505312158296193814523323919498669380815048728357251833768320084684961258711225685004339059734212078652511148859202749807583834341411107983267637759558866889720725524879498737447996023995425040782471388663950954287517489404775563481643570635804921311175749680750159800798437943956569469046834326169730090597598260603692538800817120602875274044988155367622247147764799987322545476301807508880816799384924065408526310123725861742218303242195877593436561366286737401901874780382956802116696118701167111651190561329944147598897590706640760660815834813526927233519144605446537102580405050407718145140096643237046293440824390602460674163475627069953141471178019256804845535757421346802767189869373868283252523561609329581237200650104350073528864599695990149199763862029089988508735797162335234157389634743894916472622118524235271067488406414290273006231234266694777511984409434577708825908658754743137539927701352172139024636329321881711587347091098532434770417058311113163331552054633267721343351483268061663094253100340808741381138003226611573094135633477669147257819984056623890921990977669203188715839301639288154564715031805039689546415395610974958388517080920693250609799873210909309633946180788371999905766021351683468366686909480382756570458362304584178994727512000053063993315223977828644888117214826799914071912859889952143235355750462040011757604241031534671042393247854858861215701824266268624153351925231430281029441936366556658922059402447833551828412448009031726587554983206545394650459819652133136849396711911458995055626312281977878227084934176666749074063747291787185850654742425268734924534824915226346894921364977287393403207247424869515810576102412354842673746396007480712595122554070519268096045064053008177989083764830875364219280280807182026828041807935126155333889631629020356700605383416392778798389791870375425238622462099361177496721126445230606153070764627453336339065782357812379103487821002532190185390542805317283567625527008968346907620155016099452087401805699986499460044650012951697362700871003312052582094836980888260551716721524564277029187652533275943742696422458893690200898327229104418951365888682637727185373021117080474003159904109328040435397900298470075393483706848650846320239476123682590365138886748902646906801548959213925408174443314143978773137183347061955878716083126424377390393711806414919367007337760737094308528817999897800406633039785552437519476948260452668788951124895346229935679304169717727693458896594108455625377490757312490962506988598172119884934058258754999534361389601520360735920472749936390335249150807442224556991585321348448183929860562947837974600245375610385867678609039948460790379553094888039848061895897428369818209223735935678596751044240181063321115283733680988888073557135301749400962395855990684443250340070488037914439475967598928818174781020113113995056139999140289978430094775795539794737845919411472721185466199140843161855055610260116547956885385769360924526223129756933432764318608974482113414832916772561342978367433879669666279150930761489215248734225596429580486224317156745052159427350966691603081211673800808057886080130121000877568144613879318185947943908245124027498476077320017899362341888399575683185667021595367218304708998428641970212881581426678059371449882558332279351140029199497937119173776816409206301730808830383073055267407752811636077208417849549638550610128153864762295165617624665778685734828522598381299121609100783909610918224023567553650220832297214168310764466322129331792371479948730565234414475967002858362149679636890903352152985989213151423152330388844251202075519176326000625460187748152998026966906128684514335228081977817714595650823063501069680519728134141248540639239617395139005136479306451990139643016100327183518128892753059870788484254040647310006512514686870193661849324635754553159621398944439542149566049016640432414983997615965561324667877190366511288542607084884173565278604914756686385773909282178213786482660932076685897281619181013943326248103953764866177678856051279336655867863655679029999301545731282073132853542717632949690196337345619599804448563326736907492423653732889380803876323672323084047418346436679646507946706306772814718873060482306831067330019065911824179249765698448469312791628046389501187345849974893858816270926410626883075597014498404011443510324379539285612352209324391010745564700681207733607174476829912362964463746728454010218060687543477111712517456295679046439219714307616888801016760436182712214254155560033107250716001623803747654001201440908634604196991986301428335944086263468443760706770491537799851848505448113434873221081473743344600435935601971411122778808561646630731335106979588528071043731997604486633312883737608885618959217430572346283008750426969122832259935196800899933832112201440039335350797707843631443470430465207826545539717465966307930112010489809883841602430681911805651216334147839914241110969843728684943388494179472872585293194116387960675094190418883649264480427732177450098283198522143696418163870406519393295899406355439005325114301999738399314886892275480387009660311912759049838668830538553785035091450290179843377526104903854051563376126983662720350789613659181855708706309273644235671020326390103138997595722625440908649947911179554263181765148251593311501664831518985249618414511523614134808727264737996349969914699769149935335356695201391770522787188263531657477899720815743922488518847350112390279324293150065081925650901795025283457138088637861028181211976444622489012631937309356436626577784356426281580750407933810607363915723394118788707933324357474811259937933318905793722772257486616049762477905014965103174110868123403573197946482423943251640059502741066365061344476441650240958489274845845924256209095026501748098377127618325058688818436754035824639321452054186374427270691025706272753080748549742348206996466689867519819422292188642039577618815299004250857666519282553603809467918517926854531872774697920722183390299527770607668452525680063425454226711802440358116862238910081258577353607401175801853271928980987091459609413558011216047419413377756402203148572018835561199185778549757371576270260426958393759661219837766388983875252061032774440745918499725518172113239853119034619027977432609993604695879702513791952758547803847283549209758531012814001553257996403797713329136638416524029700322570828064250824679899597516261603737741353399511355593813351823151505698236755279099225666933140927198952024040888482979238535185485478946528681356086959347298360882443634839618045596483893283816796489673275735920505769239767429849558226974690269679092732496013905643558924949451598266061898727832212864289367925589950609879998018022588242358214429779477747988110386551697606897687920635027847029321049208362538582149222650304710923764269436054269363784852278415376266202326182671600850123823903712986267333354974784247665771064737646495938583124459061372278547024802896449144532787558398893446772969534007420913694941138855634310031777184518811817952360947246783278329015782525179214893820688334737389653419972293122403041275773774335070970114922119050496871524250378276528074292403701739625889118922978393230215342226120213747977043874357128521009412154580941401094594599955727396780682912642277802270404844764610987102122888419141564172341406262046915937613451353210275829170711342464933434528147846772530390366995110400840037118021261615848814950388541914749342470122484021333239039759585563501482667502550982149841250094422186508367614915280990062893992014069346663021169022706414026847453270895254088188354278961976945232098051755351249735600629116360765585197940291145951008631741996784579126653731475164331258412495332491627638623607815594110775398515167532611736235408717870591301062951631947668131534567358204820511223342326289429617280755246183792371363238694895777526285352671084245971721908674300584210094549560463661423712728860081218310464556000618957897410462402003544616545553149208216889287891185465577649843050621898500884425928158923626730501237842261248920897357979484258861157813251430869050904196339755695008013047252511632076374167264312590302586126756878458410682552427201964061910081728255624603089623377292975035672312745884004787935231416396853098895726732710731281818257720511175336195090294131655004154212506120003427639620183388223194892326465497861248645477943646050104000287785110060267438613273837216374217694541210634928086912335509985983512831649229050501703148193527122714599081344474028132471812277969266113493015800472429928421187400005404240240028319022224585068091937810069489464068529130408611463845910939271404553837335565591502072240358100387901225450123099603694573714523665539589775112516456286811062821689235894497904878452768865861027100549480780895618585494745636722341803657827444136733775851286259715366749786939209405393715244307615251391938359166067140551869937229931092638353532674432973017691819252889985658522192316087041539335073862114706972367187031849508592791805236301610984447369352357807190416141090432438698665321255719230112076266702360822654035485860591959873950399364515193907397641442966831288236731428515874767083314674531572477764573167655192555624946070741186954896295225847153528603807295873312410038710587805066925621360709664367209266697257023443864179501477885156608625980524960212792175008319539214088775807945874061432112790315398517216051270961931559635734907555797180977276999097764029374690782407736593089930117247610221154431858637867596027821093921490465284396644613813233929732435070070942892649656235913659594782995606168997297214676686801647120549833261548710726181682792294300303967910525293071044735005552765123687923388983830069207902340976025891370853342177583118393219569289829166136777369306065291546043686488230887824879645301021043218721609679287158399498905880881350345128786843590472408228514235879684879802505458991186757716159943116599396764281170590454145849863840166649771062123843423564349290460829113091667384875699664114063970432236014135154381893104474729438982821749378677202556745410032193597683579695870021887031909579393277830038604092424727380670753683011334212966676175579376662276904408787746965408961229110196820923337965279918825352934950703874585328618443983808588922348633706576715563025614072848979509223201143515821738587179371091399423426312382604907133515182912579375950204168075457260375248326853594730217480777008888180612131528105177930311809239990083297057122246196292734563659766267463209342966669798106983886097683193782790309081715110409882956777498091188148252504935823345648816407437335364760943144555978209647507908531781642455788659882125145804285734742655032145426227322575885021281671690555346547858261799880182313053148383719233134238009828298407473254155753168811462802183022594628128494421040210788278691542845940940045788712617143557986427682191541971918730641360207095418216218643469560962389310160658498348766765213125429756346984962817462378610781636295538068015849727456322507368084081183315979011511098725335509364542932056743064089926293857724477456396164731604997632052382841707131164729971518192800364632484396845210768955880142414950130548732304462055791018449876485704693435828996166211560341508692127849159834578691423606970434248835836169204609270811803898395395443654635375628050879269798991828926904185084512982737264462074335191664151196212733092419245784576231617346413858868594609395946306193427798245844839848085905352273474749504052066082968591897832062330025190821592399973595450148459168123208613407915429233102997464901186186637614929002815256758661244326944709660053224939354933353455387918054474844657654898418855661281558024946394058153973345993019104373869642304109282440660997384564534489797449281528207337560823558760263537002846379207759348399177770199333244146370169734411250682441665895292870859822775324735268505103977369040943550369352979165485536657440203475646636764949778626375829231246249665072858321889903005819693054289447130077263591734546533537415241766876156084805971854409824586917419713008067316188628642157489040940006566132651134295467228336123628938440151739884319475611676202685483562655377051775518135168793807474293369524123115908665020122940548000987549094033071359832704591756315611444481952923672531281582271174226522912354153621120806111626226748904369343065257136220221154079546804132868025715355516858085809065356723684539570159422428703624946636772994248187400090017030826644911368528551988839043403320458111434136271686043053811391501852932801798744820326410435673636861356959772150467313660797258808219992223281013148474965997037744102188389541192191203031915066567136088872997582446677849978212973395468105199513119276389777781942177961010170587030054793868097568344138237998021820357326192044158056533595102453579689973966698530753211122877707840559332440232096560999015299170526355425233845649987879885876506873555094998282438403416645069896667024566830832454060112973410786000389211400637188987930080413321820859970286944598915704429231068456787996313150858705947452239740617078247521141045428348579574434958817339867467566536314453663786463983636595998126973564366870676472735378226524776031426981246459210923648900723698901653639951168329421501294095216461481224558830801737477283987698588002094267896209035021400177370847010622814216387866945722936957789472845613553791960378239786277783057897133653576690605094284392799494624426000573335565404750601246189216182061159053319799908769757982381191089575222681057797447215643700467689752903644591858011302052428956260627504135214106108659272564683242504771384240707367440675318928790639763898131082076100874604247791627777664097683927958947811097199432346056206165447752666956123860217774542430189787731797066445977254834379536179266164757451473134917756052408245827342499797226604980701039429073277313830958852667244134699594403256050813824252027359314430546127524056680110433607414046103406620114589498237855632576867340922709247723173172379997353338340418288348375912117544872835400364421795535517833215911319179527223841764989398576947453635676605317489654128728340299820361720669060329019302783706540216649804162972645321221029940354824821067759753321593642863178412721837665172770184941040454564486999410049204149023972501274694411958649399701291611291860567063849183401291571645218233892639786525299853559509881726601210657716880392065123846408222928927303326359258567922460192705512807398108159035321796703566772941123450110551188351332080286719185744031398219816374387500067413032575023581612030582203452681708785328073341052891972107316024005685933706842094169100150724684499996535866675660837298847888523124286639548953901471242596968331482977835351779783426742959690932969190364220091162671259584198484707305081848440763208620721481340026236152806912196250057928654797770719634906821678690129774205090152671643711019945494213654592215400946383773794663635135353262067618287601018900997787832817867866986502939748869378921745070391887436188348023713522408781688610982150913146769791948223427418807806125191030859860909208683781769532605424226620819414633463238344695180661778086441982372295623099622114777310027534480312483280029372419752165533299857593366629475818099674904752680705975758983219931155819225193951578536109911003455666998209626791218075156008769329457510095371969403098626164811208508216074735380900722065441157101683023413219157985851030729760025414698111013205015559225327036953614485705992180371886564768429077641778129418306188385907962404575306730559473240204857338004048051552841817790532411162739083952420210386270228612133921135000994061457556569779054073032263507928009383493301585534199459325332701030731279547051848913189172270811339781258664333747728210792900910570655426779390936353467366269168222009597107171542010328089823801662407326331453293098492212650459969455314995741080112432426137013062947871568821665103755825899279019729779969439092532882169298907120937829292105419514080229144695438564771448874885708423202712190973196117946756746863170975560953567889242320457859931546173329349923689556914949409823253739090011811463843310573374510495572379708415928816814465139100869134791103807642044129027937361253437263189024976360231248035728004130883674993354588836977323462882560361948536884341462601589878259526093239824186668370612609627414140454152738377168213751808579964598105940926027553154732987507936781677329774953173237091943753577896417213111407546874544473130431731130230036447570661903647253869501048674487549214958311401215216598986432838487474368444994246234450085902334700242511150509495042434268617850133179593036565955226783653055096317788914441852197369721622223583346396186137976905364074858649581424444371069095574351170228634583638521811805263337388378343056859655471300509878497834151261565098193658840155735582826879261118558188175654342315510017976583510776269293278331520210781911872572705142112514791014243282419150335843543418896466850833632840310864579454665951632207287579905007671965221402722727673702089264672297422391645654093586899119830165450566995586220439338981602145628707372151532930015740930109843615341236168001057259124262105620019175832849261278812300899925552147609222512767413449094625634012922952359137334082530699501596745704737738797805039301009342800904664096421800529532067476664638156103546146268717213925122520526813330485305653835444945345923096898850330682188928289468726191270586948828411377014499404586309884924136620899534662759132482515960598077186171603844374874320409149833721993749296305807241133661306606726687550891368310713765611660413297920999884823681022563790145346084571731183389424783403463470831930677402069706791845027017726102715543014093248076240160922639096604054979900105278012488008794726983146765105881005779933782657357097956544667137084120405977423944902066616489227373098714131607035031756032463582527474912139436323323529635810203539469363488048127424523337342419198415663052921692870906586377119952248559439059189969688162491351074233560004668480871904537419330464089900240024430983755317019640573530546858748852085025123256025989839291391609135052994501439956038683679306410834945866970270267775518848463351775662021388475861640990190370458673073489871818599678159251166683104804427658190783414952485590246411351076879754704599033834692370159433160294658364041417709592754672484538281734967548314629231156614708053509418409004794109015819277826078701010049674970633600924013956293076898460040573079362591062332232070064763303968848603722900528692190063595614209905460041259105063381817959868718189689035539966476573520694277254703255810299981974348205094779099847845483575770770897498011157430204824579201805772808563485624629699488858115748394595675780234269447545087312340523838684808913210253695785904012866364901345947056022279019673872234274235384377839268902794797229076205700543726055663848605352843921282738594901543907714942657244744458571575106839118514213234392410034113417163310914867445708384587531605809500560996660578745535131762192353637259827403346680335784383689472842854953819050628506224869105131879902239323731206400464505118947635071710599895708679586285612420958358271694589080198241650652437007917675349102681165670058947565977993481857566403904513693682050099137995759108001931600138510333719026541785188464925563614967037448936860957035490472196120256509370325264768165466840115400023032550519344265903510127805948000103296992617596477932775116865584851085809561348707347490804649984182078962917558154105786728311157145912402918183476549053638022849829249619266390158479005804575762501533481238747601637456893426493727869575631089253134605374420967776725475852352692665772148228020032808499709286730418135671430383272327448543139826749382683146476953972456965956077238958008596822608068442282612502256541569146682650951304301530765683274349680719446864349009106648549128482167723763918612356736273759376082035499775985147709576687411140049609874681984551627713695528086680261115263619575105347756410218206243513320690503241404716923571530122136990493265584176174695716611280509981806243266415962863532720377569428174727198548230653253455281516706323449191052235238022760420399152379157329200597501778691495241564680577624868082696444216357147999520003741706418353293739092047120351839655774632813814615625580657189028824158410279445968150560866054043218464633704333223604293839557758644565566671480966229553724615110598015710498223811721217775902496288261455852454778244438171888121126829720567368987841555819059472469778659737792149140589963174035517530340627579568886543723795898875245388793042242444149207455157051450906455978425157693767019888493156295993380652421208146798686664069242649981865319986956011043547044076039299167036872170888249037474551437770082387494975797386648027392533127930346043867441052291096303473090803729052108624788542489138487982659721351054193923808616421373434989904442239600147296091300227526396710806361963744695963187321667820997048536129463502485725428240600067797525217055504403109577494606225848171597672875044200521922467123649516279220285187268020070693030335473970388131324043778195325562113018476452834183311939465051675169080578097362539602396035030770788759376693100040243867171073665287274413796085108896049244337783403615979414378967516334762034713150157971632992131780182120611495728909349073096477051631893170167714128360487299155089820908513807809724314964707221211530853242432282348397145889645726438135136788865002819529803797573043635719690047342015745400554609667688753835557015675284704089351547182380431552999361279690089808188948981965367400476236829955331235596796306032048763367267617402427933496635443924510757812577675213690110777596208029926369941964020408912379131220374931905156625906492252785030723136864370558465744021944288768769103259378025532976344814286522825398961462508337991839572047768557002528162106498724284831441522980365861191259759566385173910756405956954857324874976961220360710471378523526852745248221398694566183410308184901982274534761842188472012401878065643366021706577168684216289277941788311117193753859118443124305744248008187338067734374242839968444190759144237367629075801446791898174006472956487745076568571540678056775680803871665585325165712914391008697851256212125172123481345269326016114592536179516223848180952329105057677654335027332484958073721737520874642866040166356470537225126464891409645938343080063150497477018574467691111225630278329385139774126529750309894436695032870205127324691144709811869848717853660713635561101095772631753094058115755167533032083993794088157891368239489709110215713164367463778914414036299476948121252824560130164691801999219943618091142112463773674025648152234408411507265522582486428236794996296802756862988827493195286523408478213745243709594302017740815536767780420309116209035299031496703625579818817321514581384885559761570482679234832798161793598630891454991405643717475578636499498971439619689602121229984493612875011711163070920584272367494028114409005096739786739171933672520427647109051043996653020706797906968327080088332420024396433539828111020709552401241875035405975628091295829664497028021703289453938048775839598154848514148814222007023681580204128389376275945282891672202100014765099744693036689428533353636782263227516878139038376851856763446979623265502035678749136872472684117187561244041570487614297838008113286591752509916071381188550869938723095509628363288922538128740883690478484991347941157905993131228182344299315979047461904851801810692264214255624086808096193273894978842270199280933078776540714759158537606328725112871032064232879186722855134835375518260441938948227230740157911969092059064004642521438228394607790722629445148813496185571500719901800618830194900806027515749944068543534295031705861508890041256446162912937551326069175832527537371544166607153737570273296435609279725352290723999734061922346402468157227999249756975426954096208322468588677379971350662671679662769363082441907853043912140343894858193982977673638755682530269095922780243681204124169638502878295802185856851318993008645085636895065487175609232512171729382298337395867564526716049836847727430612174971713930514426955350250682940517446645093088656901315963265154580984080979610640845175209197241612033917148580859126210899310912812151509228643597205381434718101087248435714638583597699343834227896882869660078866535296857027438797294297760214519219448110755557752782608631410421522977351606241992760814857952219693435167470941880724774346017923430895443664792357138190427253836150559063737610203500649824396149598323856160014691791611576953524459051472140113295812921022028633567624441315609183264185624485189636672214324091206991869240776972160348745889489515022671570167778987312830760451110016177141865204997311195003253427701500361186446416900537186935667921770762290448250190172915069036930147145576165197990055445695803555024333959322508828354012473608609065547685548627033449090884979175891830968946984427295919941133855197801028254144576942086929473218197908630256370014218172980118636206554780957631277058787392396111344949446748531041589127569236766777888269732317391120186709574758178653367394674104433281785898851040799027807236192638504127453571530912701335557362682141995980603645828475440451720087815581255073897492504217034378909435666787630175868107870960695732078192099189994065119994791884153260921826408211561888325417197290634155208894430304595698168579830159532002733279899557509102019801734039499898598333040661670477172049410941103119963415387648467692081216107673118795817042449962673047579268080716889249940936526163994997004624585080774768328660550460907913035622510380935638659386940079153383170317131944199507530417250987981602618107797458462839987330851567586707535267179613720019260125860778322096125061283448978932749094718353612416955606920941505859688461709052200410966520889214955045806018171091224535987333713007084062330168136077728475945087361104084036509067106440041711765761575338523995832513363384624957046630578952003537439443300694479600954040572099130225412013473401852294295986456942391616617952984011663409852521468712869566821656725425946666515913661399570191161541824974053111907609760224636091833294036798718147291455712930127802338095557423855045166391674733683714665154409144590432461485167714658912574068340119336090412453615943372237407110631476491089527495267211897037691849526242720385388242396663113330493195889036212165425490412557460228354871483806877208902456881401362952682311615539924144436687258209562535040408148753820865247490938664696103878587123783428096339568315209386148226749399115296389748513888251044558807502978458166190367209687808210346450346627393517153505090016890677589838431421788780282747172900074260408744450801450057368745720689676342327807387388330849039012800916363980402996725588650882322938041522126649971537796624135263076605157133621810357586727600641545982093183731892789299647362890122769669891385747247750977649801973303208058304824793836270026332988923253324146094746262656206050616376707641682707327778131743044336307269990990716633629994488803451004199382241524015447123530611049601561988762625059408580685175089823875431180685984707567772121274770837453440733722861186195068713902191496224592403955540762302434031958115542616468531691629498477740864815096976845612978970857793535151424185738499562569572879178916953677915885630917003363722054938437232386259764697653419480318167893585179482762703291687885995604852601672594843384264700209603450868493106014398975574136732083778233740448909774130368794422155313926261178767634243254399964526129396268679016302064671372739149003202491005790444919733545469447982806536527333146332942583056871418536804780904704519102329145117496373371691619772870834551984622879150599770332202237372403353382754272333673411660141910019313125290892621618262643389121468394127744200131427276604978029220932488871569560374444163456705877384453937876410435908082493460085623227400226817169046830591638932348409201678748145662356312690470637055601814319273252237072278585462441753857908868460014125619005117999824461169102805498430487622993536601903320656276747300046375843011849406092805607576929540368513013529456543040226916704674650097781284972997607700788361332685946332049243703640806595974099542277454306525022134179491950739067358016690293417109916122827802703726265185515264316278343978025966442495882528149551907617384774764755617157438202185004181322440031617315911936522203706741020895895556608634417536139436287759654894714982515428808132677743923821558365770775205407565676884892918932168423788355016214235826490592328903113978605493610152012542358676515622350152547255888557896781481289738388626507392455178715812263777138305185182049223373655513873828440031488555115295712416155365566554322423438422089286253826033509476919314627411064856992858197027185368977454841260617666450792877576455640012127643523919856864080329663989664446253818705586263318065748433624279100930757115321219179385977190763444469318916459091349087752494486333117254514332560027827924733674005181228610446301206339857024642284732853458294779423778922230534309996474673042797071005721393439595509671627590006228207556748655638347226391230685769813939857160145886704320843156626427918827102919485258358506129538510940217418787133434302906533451289151082888066096290152805952221697680636359638928807122382128574099627663060397637060762940712969272699381320024985401647678832694276591274051292043584498687229928194136557273266051940125069424121593727971832532053239107761127976617102414242302689077185462415027981773037137396539411381094162382225556403951236825025731486064619657058617144053857463158249870330736250399049999597637511560481819195091215308669140940393249060837083809933287828211032574878142946450184976421908397618464526725013343044107299711218226849548316027153934602661314520579386632470010369409567558985274267690875086759955087921625075649312835950807519180142138783438522385461236467917492969910866495905324117909411692702685659388346446565632693153916883458263664146781560982101130890065592717439640388186069428874034878694809380309669463859772935174303973120260852131479328503432055688759801017636041157935128418291307507877093537412723926072648964742299957519318391370224211979006045182367324086744925252622933610126141065875793659803232701071488100961222776124424099927708606729365153885116625400174462951709175851927889967040539445302664290444413622298852160287662655163061626129638870582409218403228519498535453552981551110765945529222120372037691278229787580635280051475493723265468221923078178601752535072513667132140144292093733556332741082100894249763821816568886022683418815669905001003110787316347985083908191777963805973417744345401527928493710318508168770402821063231420915883155760541194549291242921646895303397172021490827158113562800403402664630297470352722130282821993610641920880415842137614466264888578572192473268980510918368346660346977295126358019086631720847134977781382838027719853152394622226144942142722427667532054310608873357890029484553831087287506349277450204275249712694265893622837255796173687478569516302666158373740091124788929497135579290313211985433003044662247477235227913134129732042142532929180715728293835855106779742154300493094816541462462236326842195641389929586562343125725137623223748286187213853500816537112096885092450204991283351418414931036649145163791440848281712922656800030790612349597945194637172217767184394627710128147167217965774970866148901815531141547260312211123518326946825170025596870743109459285049730559015610655895201236399714380037053144815702039145930111946507472543759660934227090091090294176629801081458495011013952131311623065095445177948142239259363362668209495397429316264154393564011712863821761593256231167996143246734637331105470651440336823523538441648444235647382651450142089744077157357328149798856448087883819435042371938447974393426624990743064756162270709615535576590788383364923029338477393994182388934717071683241948911598690073708613551213908867507019535346049452156234263944837705240948560948663056406565833154206355706796871747475047288767311776960788581763552283430254095409607563022648262064792293847890300768312115354861344999944860217758617177769430942828850474618682084058949566131715419097173887577926617918868783486680901688465335312873080892617596878411272903886328399166203261623827495641588820131089479179275211732334008714564607893461592922873599948648109149415209316767998428635058644927899032978461049717721143264813565452435438695656064022017888692236853168519161489638982777548744330257778185894402635969546128504946505055703878346382171451942797360179316170907083925263716180022109177266942526052841978584911803205918870234419816337466266658157241450606784161708897335903155310553705910024445083446100543465176004155758808731016929890355694941183584327232887825174539807259865470969717938177859702389006499552779408685023164543820042504056334063804752806690309433805611350772785358237891928186608567813850538135423789604809077296428586764553109422937421326980841764293416924444478518802829411399268437097726150824176957483088546520826082738428646970635594001644589329474457380120924993343704240063530973305879955765891442212753780224695810684452059497145901913139728947256798037144628576445156815796432593338131571478340978246323215179317473962250624667852542693475549435472821658709477526454020635553609815674236223568939341273077128102580334886781565885124132464565824323623542065689267730532596272622421569683067386800904537134082070459784492007148979597816788530294578567900629728993188633963279726853025629985536782630139293200907661045571645827769780875551390216535585960208558661970573540089079305571948170258719055827480838980094811575679472556034162102106481056669616108195909808458882474076869075995457477965850641220845657248848814955697469711637944409508370990844010288346016062370127366600212192778684661357442297865857513194257470150044966213023308141307782063857702915579470204585647301810237213665432666564905818161864062965774859280750440097912702611048632012817636158920037886738492841375866264245789844139609583494874898777657696609688420723080185359789465993369316936870640455939432781611236689350017191045592368841891361379252420255406950178468377670506881315505277512741648191371121857123364987485549000673549092150161158147039707179988596414022007385195617152498935918865831140074311870100694725187330809230975714592435813530103111095170833933221883274192888329727747685285953299926309524599857284581457378479625671531698358531404556650239619971748559944070877009504109502657279760879810982047819685868368443647727102620510491492011381990737250352686298727676132023941411178497766827993220480608239439181997063508149472097736608429664222817395812127934208855444742452491540579855279953686683437365379591706560277152282404830453356038069511461458582237444576079840976306597226239308986126358848174063659145872676278855201337327444420905949878430426383893983170794003205872074936373454682195657591946226351399999114773478554279719509138388286202037705765019104308637034700087925331337734957648790063656784586190863686018970494711587746486761354237315949465352127846229041306848351804802000418457680200715000769638343995061253265018296994497486310718694570667950914816508198938490565915763236173904731860904315381392240634455727391678377904503613164066183790351789704612929094273736984749713739268831806457950471356276893628423144406147094819098192609885907854256356153620167179529325940086860381319459426471724738503595071588527619042782832138200186067434003512825238508314963564417148807896666060725060964662352424215489146075665097852925373645397159667318217900755447934909155139191271289727203854233963363928614109729540530079311895303886732496215061849408425943515279666414423625312721088435865647095314507805577600722419857531559498342479869315870055716446708109967884411028955113365222021515168066669340071062427141256287898273553755100888486087178246558025005462020197491824462448450203901535199539810978513291543014902463654038733137453529292471713143479129244105160266490563128717894789401259637803757623576811032370428817875794081956776701304377777957136621376018863712396180177927902837589762754551002344542878166373193246364578957985092522236611073336304013153356117217444314299221406226372976640366413683579168544984576884009806978515382524430873202744028700420346261102422491557125745319854455773338739164905085381866882070904192841324469973630311609108633714108692427667985456774745975714857646499705331206853378381758502741260092126581790910742746172078674971918484748035121353813501132251138287958036767408902618262775743724896629049726686849790591737165066785444418176007746611190923582551263022932015979482783271817680695240898244673118196378549253392674128012118307373162508952796167775823867543028557781869763882840960203168650175469683246652749850926982930985076155555134197100388487823060267826720080334554401834693316333755812554747946950015155564326202363500796453272687881117806092898957724026685332760793410812393416072168691225590184801097523496547492117495123080523833038475196330143066568608409766707291702639372167224735623912496960250568372977947689389905939926243758729424691643419328197477787303518528464358820763761806300045558254758643458908430887778532115222411965275478082339051625174420484757696176292834305645240746862303394256117959078240482166511520384668727370912548435663310918348229216371176605784114580891029306007887977275462090212840610478970699288697089501053686628453111515748435584377484605746017082063821737866977436430704782203126383591314082001520095147100980569511664912789172044401277438795950532847296843367384012933773907170122194521071087135872409009081018636647372208902594530342242611573584176519642336819204414148331347065396835846014111917702868375193481193480269476594144970508270490971739635004273715894241923961505596469932769509448847929960520587108938975519151137592589417450260180507596183439457358057617208671183697316328165593451778093714799908052980489830195916498658359990743347093343625431994038667858828084015381890656621685140155064577110181588806311069806163661587636694259741719971176824573253352548265052936728089142566168128018968135074504849347005825039575202955730055579047715684684217481990454334847546193136258679151340047495373104374831017804519974621990151825506575276762302539470803337243635576374317604761083145949594315909562665169291127675498511758908626713652640849701491475068269577208019762799000546639209017823267852857682778342493036011494538182029047720289976000097859604717741560085979325924644530282012232028563895310040199965111924630397641257853910574292327726943462147377472849842243294938113661577150989263337046256123470000976039160979146235790926433950445949513289326036109232292879834100893677952269353483768467523700681333618917091172432589102302114425993839467407680325573302787247597824505169969898880707074643364932179385639327532147290777497522125648427737233667600221533251672645872386677065225427737096820782616601773098556331919926840385471680652560582393617673502278521500869064469137251058970589515478049874115657787398422897635293737710674366144988772080951875220481859005253050437714103925725955165955126656291753989297571493459016541276356232824911600326064435916769029220264068110577493868989048374857402977322439144205441549735070580792780725314326906305625062848998055237709420854184153284577376318442537913669538912061765961151640583093933858063761467408883066843430741135042810202612824098438647818779950745628579685787212377461528367466117381190634466688459066984164980628952859545554722717804162760334248680746171534109451859982227368659126712594466966423052228795684381280349241493128849949981251461919070179126314481497884513928688291082612977258477546068348614765905975299039530859461146411844800595776524994955240111814021171748216118428214555878287820416678381387218724632381023421397700228444750961108363987130977903728270449334130129422936607872110799871292603300135325073428480582459878153911711264632053457172455545128010793126247081101175533253929442669882565133734887718168218839633778393952915394694129240627217338390390142154615173364632203882289092940596734930808477714672339120025643251566374571488453778862581096705829869110334933338053357638493050228246773053095147683113148591000344644484520283070045011842868838746894268774977989047834258667067730725795683224485574387907456916975329534557297441417520957724310301364157904194456392682163284789987444862273074760626596927694951912174213418055609090968010286734125371643591469003773457722367189806428451884066422957499393793459526739848965964560279057995089971706597442977878093284204991471580972494149812619787179000771025472929811312110730865683050087065963312084725115505833532875127571164339055944578969151622283251075033693130106192192042354366685136816502981132782346538250795296676613521105405920902074694276090902732688317319942805545926464012408179385416903282908547462078858785352585885351924617291669458387787254482371748629144484680420065054747167902679801865200810344157711982094948533472614359685560052396996778289351150606203548501744446795657669106137323319091496886424150083798991386549385327433669528006050257306174477854930955229024374457264589535199948481696753098392165714994177349175805080665068514921032027088544428376153992961342094103106843666254083821096168125814265997838631271177752431908879067451677547961278562299366881648709440055399560010777577356496518261991766300541370615202071793784734112781241338155544233005340348081406257575241029039246650996012733572879952732265723721605770408893236961107008225183834827372760212815917305556483322003412000906251568360769983171786740087943550556396867729055904808457300681522079334545103779241822016883434119054393190490085628612329537758413728509051613439324445219637865389833986244074605772548561236916141819016775188321829165440573995102837290191667718306848376610904675237481010973067421963363627098686212691118423024813948010248165421744767777090072460094459950156941721740675983583865298215175265895738020640614966686685038775763217034180639429836958546809970630548070917081740402684051401479721217375939602156357816268258480939573044947451387520128004523273284238846260927700671165157164763342784988416353232585060229702536009199759114246692175280086494839486905614546911338023953604710869629874789133558154079190785585635262982966523026991399028565878788131060123033040720439367034489358452888725160647949608928667095123849437069082813041844323337203867564645791489651263957181275719888990931161843037445086219587501950667607475721103129097455025028371515459417735823174356205954844557112033470743480469222823713989256523801987022832671375223650964308701761583608040389031319757900593194994669745883559695101313128217886373436127609051184969889645801665237633714152413608617713718944608884051461454580679044222983486711561303180776653387042114130760147166182543804464733647288460084075874444464930328246368514341443704340473810332493354109675753902825293797018433026710784832524274081006757770461058785214992269230408355253794946531283032001422664544919199860618432936705434760539889975114005071284665084575323949968939787231929395458615963463942365609555900344162904209270769743653758817289484953486899817127567694292483466065843465688434497281011614073818688288806916017171921611071160091570808080869104321827814331423408513029332132036167769586337028338201267103953390975384821294916309364466091113508231382355433857916055682113275468271514843661173595355929255895930677140591095963917827951667711550294314737955298454119846444108748046757676238601364250926100709588558235757651640889934227790470279767903931369205131661994657610324349782643154474490205627064532004694629300086396345804636602574274053117340094423104201180526599095087429883019654908313615326007780690572052125126720012209895834943673422753889234066683133477001231010644464105101527002976695910520298070313726233142205906983430786078262049891010294776022042019079311687952025560336987991048096010709449377659166642943001727598113593058511705436135150909061684639722179399240890635695418129213075863208744587852566318770422824659882515297654077716491258211035151777993855389235852696951614446664253485580506195228702400820242876811364351566983463870044428929328632671192948136530240742798909699049476749619274687280359679685823880519200869780509229009261908506321925156165355150492606620994725655843856701949059601150095345941140502748015425086728554985884680485253611269432983235695343152884224382652758847730277875197553070256175298539409428020009758816016358159454549927186463714594317702895946885219757626703983306239370177374673126368410126475864201497708657333765162459923367238643386691052659991538945392093326427260930316366570302976254102947103304890418586876161636421834171320752449218576200875178291690152639748236153198253547536162752828765721480016020518814342277059610176328031923335842031469333463487255390617415271686931811803748673154001127479672680487801077134664443745577156640697858390689353047841734278267232600893121764254997107811752181225836737281693594191235403851780299531250418305052403574308807808074851076517793972113938874427682441334733340285876246243676916019772568392318780554701140503172991692199383249440311118007181394055298809434804606356728097520428240497165142004113451118571762103441456797625144132859683046424271436074781197918942629814004043421491973303662904228353085978293701683401044358798871595918612807177458831155301545108323622563120292411151950117542778704825197074962242891744902705407138228664841317340459079816060384713488727093646119274484710537045707013947178084342411373074619195709052531269135522748548393546685800424308617093359238330696401713236589293653309731124947800722788740905926566890008012246363723855973947912637196173456736004590278040477032667025752279381099391568432456145532869267282576387483808792048600782336864071955546774638075753907673115448276015504109226595426522951616154096468328795166337805898893375553604057385189516434166782820497993030550151147881713214957433128187945208271118822180791342318185257303455492629080043414634524090356939119075696406615924692577896766842598648380332603470576250929334935848851917562126731406914515231293041344280794226642001179584138370349906378973761594242256041000652442327960336620418648761276186174409437103151367678296838005864956185839643399083661259181331383231829668125265469811945394966955453510733213631711265689284731338395230021345353644046813324552862685554358272359551150798857122737365641414543263820271200307372522636911042124553501025250438062624021281189725317615811046318152319852552452765746318939721524838437857555916236285840234582228098329745842597730907440833619126899972904901182266047803344396454467022984952840733735032303346025739417996525949692514870259968631347181722281764634560094059825243383552458436323765434676188324278820525458397016018555353694113713069535109232996348443089161646902153361908602694532232899027513774589553482053795041237146655446466589041300707693388104926268578814178572041410406433016571262392526266068877350654829196166754878424280968138490594820394700373584199497701747478464481982133024733641116278720592236713893117629058178923069606888944352884976527241271672512683401052320404216889708927623670474557287205509150148559111123523010747186391778698806807966064464581943842875321768700371877441713323134725023127236917697274691733060995196884052162075143743493083444704928808726544565405171954301817054724841484138470825704650598811191697916563041188710424271774217235295015247021386721607422417901522540147108805208748859903104797814389720321777355393525907607705004377194396896967564828340500609928891490990294623950032631561049225061208727864795918296712073416900659133293761820854269323732272763586889509267185392057680141123427138980252746230039880603201119181865486393681057127062068891257297374945067926084335936520938606509505614866147254134284566837242131642563370853847505226300979833072080233955670662795506796181434058512532361765833984546719416413038411449629282252166265852350703986228158437565512725539296671521535814842553965285223603321676855849740704562839843388757774137695800731318667119937509963666716176901014272251870089343893024611090414535648834870249389854840464467004617483348299714887945747872762326728593480335563456293006124420486296700324915194227409663948541953502675583070517408985590327241576857807881250777749683811061065530042115401320442348971840747698107811112917916796123822658872657471392229291689829782489032770779957728559260234526334981843239357781000110869569335146838590612396977474334012332647707973327418011902263664934505830134272451547469403424034554041987022181067941687395561499021490029303953285665127542405171185953196411890145241288675542653837221876576873469831745584504694681100244706498159579302967072652685008631731344284131124782389507389031273856552631783947914941467598214993500824202035474789530572003464352318686269145635709397485101972590712992836379858230574188230668549527373029258254442284431036107272266354932793958814464532086242438448581976987646076407916832477612383881691892342736185569236001439788853055234298667244509723865568254310384444765592120075580598366755896942124941833810011230444617730049009799518665499739574604977883692917059753788060054481422382734871859643797049304705005650881676760250539117588643715761967311931689038238146105021279274027735861811784106701359600898844670849095102741590397348981318387512885241781864080218727523919628774897964917309309717613086893058537812850829124330870267835637920491691636549266036334732345226850645699973081686909331274361063884922131429746897117359596241602324580834809483387505150047989650576534165798202585218346098089225204600422858830330280392315616995741332606085812285619130016265642431622169787270063917036398909435620521412184350226214266649473563568971895320655521446328921104251588652157828205201275682254769108300827829412048442922228310313009700076030547155775032960067714495465782707998251519858665695610020463706357334668935308420195336793572743233131101069821344795327321387569579981804426958349111180084229490471400985030497687397519762644816904288293862938365107541906070614533428948645985277633488224675696396502093043556614599811622887278636481534640935154625358873404793692101080531497403433442147312909950187231005078245227783187346976705400593002448738612133758606811031704228050702106589668564426655787894043956214175684651204629625460535874537765868322209620608176854984907056758868024445828809060346639172406959227171658372998776187309308720834835544313613368994338253260493038532614889011018258798584488464371040372996110924776303798856845767908114945327311591807215476179650718030397513016620296629059589659503848455061213722591758297755993505042680459713466316611883738180075653929251949910833758358789246605065918268066113052741028029554201506364347340505172035836300617256815201084648717991955841306672963510558385785376036330954826531929087026253240388994834538040086686412650192375059593234094289239956128905358597664446053994721769252612618060337145377739567869841428312728307550976403037027407976331285734176713729052805594834322233597625631243064880716840465975482516524867764178233553410948842640512012772778504635445073934967493474947753072762721391653248999004878656363181489203525011420019381534029234015389772061005113148639246205327113299925983670473176012802768804210970476326789212413582595761655562069875784636848178557271627256353298176046538102130505252552739977030926986620937833227287585624083157911001527647576238171011385216370487700896062872853827195286111592199931062599230729812075675522092597334057564747605052785022376615156616337965885258116622221462469712380034320231774935823751510084549908439390183178135482172704505113125909845462377303074451779711432486603241950735454392720211595597294726216612199681482613464249770556396434973675346911169075180936709471194864764987757007062105381456372057944273933407806100875946333164058030298612632719815367526408089823249850504093498808517195189158175513154967661069518027919432124542743961752037667848628188518936657573698257261707299140914237626618796773979421841669044371267380260822707425582549908419375544164651504295622710977526297990122551605478237355523668396044243246262678046386203944562416232762069720156486664651117201846686924024198001023083700438899432537847860496253217041931661327106313805835929134505701105625602913431544835885187350498054072885428079556814605826949154639134071065156287664810867223989106340301187315333158726678453408126928523652425007493428957004732218672078669716597859000543450318185059387113759252207998288563504313867870564434878804779947353652710851437025929041308484651141872868259253637333480077843902825714053500894328933305836434499620296065281083771378893990560239785862729506690490169206992119421990743060657525154643728379889226039394166542202837173492478486993316674283569796402804969086134540915925442706285114287003665651236029368001210875684633361673872196650236809774871543168375812961363950558926930159994182381957935306109481476801829106716941782361885682566438990966803908522994819315992739652617488328784978618777178768487685709638286480235076145739092384291755439705651642580542979882476238803407972948088044987199266583299609319876122868989819645255059717009050735103630685026256968367616451649495094839265058870353663283940532405825778179716082213873231910928974405851770258984732673189309811369116304506276575834333720183025518641538268052802281641283676486306487753170738314753577955506222975069394595171314567514591803247975728297350284290289309323486689915077443255255191002321098518286900310726525497621838561665898403354431735003477923733816303231257001045937662656331763537975222081329940809634870462571304769671146660712577631894583902221039763996718862685874843220455114901440151501953869260930453422711216645526743877833441554080899225289211055031896418094611851119966316779964695005934824228479323863934212748016745684014605187396056432719010737783414921059446699833420208305974251041585905662335356509867159250531125144773393951069048329015528429842869495064284570484848614970229440098433585104308637358200789000918877742647887406886750517812362713155411675698716725410471659103301573700333603994683362530437786720995036756488655237494648530976529065326475284513162332975739615708610420187858441427482494912624982764300233594948955274361912838115590775564684307372443483363536000056934217408051411784324030699323495376870748133318157140219350172686970127309738110071866603368380192495123531938394214895694687321639404160368884118887549934949240765034815660208752850799809576951136218866927386812228352951377136745094973432732758312857088620239343629976039385923532214695654259151167400289026012552408357823358550388425455762731319499008278982114867763719357721180666541143255306338861847840777482653643777493929516768674198867308925016739362883068648576311483754073466147012113088083583546104902012963793748413359331404313635729180368419114852858351249955963559250645681291880616110689279771141661133800351459825189903630179265933738497913422804315200975071238683084032179126170107639955014011507976936602452373140852174689284618955763298695849404998645979347767124039645737399166928276109321474969921238630772734315709958543181976722071249853916007156785585882685249053809160729287849387447262615510966888657897935942335951074968419349156694999857421010771989596094979580193489636223775858726113195330274668678420160724635836561170211616994847306620691016027031684819850455489917942881506145436283433789213706346986233863573246525998899341098661344060282956769377890652041423240614960201076754114032704068708490669392762106695333548606236602625543136375510046038338898376608478032977699932997689383495458726903252203675767827817456648796295468415086455512008715008195616534152572981941290546571889641526458946616362372005321588517028808040149344087635520679489882208903808185178287269279178448081081357683363686787774795910302432754881450795003701082033718575422166989760659552903763312549634955230319156382752677403690059391831950733253315357067941644740751799894383159544243997186306943918937992863567789700796086765695172462678115449285670217285294632473978545563734441378969249857986317875811784817615017916520793658498594763288088324484729042525338220179295856627398847704680647959002125424668634103588628724643294115727910639860587300699491845146441063081748111980354670414008851399066146856217410139052681059537899339439437211157622682291227234436298903280498496352604859571053326145638717724703446300018202411085858252448027582517081591648624904928399206657758428478887528067522980976044468976084434313239114936517391126804129184979715593192369719456888312682915831847582478496077453583204684038594750004558330155255529820817631823941800957967155751611498906516707948659837829611939356762270823376323584817043672387457027874004591529813534028033884292513803905039201378270689420384965741032401372727343817162852234845150666101924716821893501734669101411849650629429819777198778345851014514107145560061631603262385408516974195605763125753358064779186761043995802828521378063387796427324515938703537036043219515019153632167269837843234565219349675715986486016858900982256899501963263190828012071570564621864212007115559721765347924704999043394280214388068667523169099337100568043100617041543747733259054304964293391650149325841162874939750170157183169879087180626698108868167261271186467047635396598091268917727398119434095571494875382166625486168077722956427279402939292251837389934012886661533544951368998234864549801339730276522271348734658601702881807964691486267745577374780658340010149022847820589426275869876699876278966611315917469753943908515754824144999662225042689857169936436687990169110904258879428385156081604387065657137815906344145029311860137534767651833280471284691167022061498990555574226998771730377768714294972635672975567609634940320452133051097221862442005248593010493265934327036764137772079152997447651838266832649388562617015287928201131063260944206021409458319009118519058083258029302791174438016494169552374035365965489823204936578146973270053368923439805410078781398735689528393559335424897070172995093040435859488227019160712085494702931465880415841247897881299191682738656142264437855902584270999867722557746537490013831811223748533758862128364482011232029213272360947307441590120145124430838236762174085731110917787333928839379668772222083690757673415908494467206782189494300006753127614233278859339558616838783427440184177809921612808955275192691155486332772323892762222737762935463826240946015689633079894856758493350605431161754737192266650650723720660122120506827286273028960306410550487865408816620990713458075096648703441631660574791244804768586166576201485434972637590594876886081882456629035447337136594391580187360348427456449251253481130867120864990608112303458587792256835775444372480982874701468076605035351345621161993629258627059698267732593552494865336569276015134669785007981321849241920710382809289741902275651958716361201883604719333003820928066131697567328497308305314717266888943426370907891507262399832677795307080360465233264100126243689235899396297920352363682330438032904082006612917876631847674135997880224032741860964938039982833218958002907849469401708369400903368012049804250801125318009856312776915993967229960711875460303503327528138955855796071360215524256408015817711931916608851767045712787787597691826804328380523661349741784491318104548458077062439768028172871338616060077499474378095229565425286785453243360702500935001885916004877334631540061243314117177015341236765139138564753260984314750873478448080877163384256454350123042209604497365071739552679202184094167816137639513006658479313968340506099877924853980582253517237936664972870435410700574793546083565976138023269984311408249649676988241478255779706550745983474593917887178410462073235461513595442986130859355427389200091821064265129853623588915145678912878947081091485811451516828254919363528968451138646824729430534589930882990114614636325690522974618137047497071203690796752202340788006540419388756984252305892482818729926249958373531941935848527840690279564571477158660559651281339037151759896507476857083381110003796781688877124691018477235387987498494731548885175716441165240147395621859266359453024506219540026564903546885225452784376361509819393033071093351650655610345880503812722370093169544387446979781582322092167809181931332893979398122421811467834539400689619753395841369856106965558006696487580787516334208695154683781741234900595482639676079983274324480587693097634749519644630211275236615721778484061804619058189659330270970003858944786513047735694103297250596170383149600963624056883543579204100794647121036043582446729416070718758204070383544804978102891062843420315237308951125195641890314605586433793568472535824261062215169784399502350767997980188827010146023531357996716990277277494384753937278994091530987131537203132991988179564124040811981033702058508722794322807837413886709298257617738580478830212911842715373160309461579704088980685843262983420481069941300036860409693490814157406939945448642357269177545255951592173755619869882754813430000799045539042861457012282271215239575055616497789567452151858262890460017662726027188255022985604920562490471930742022335290364764903137733613383280808410019458285876020554262313892507568063607567132749996201791938587977496143841092312078482286471630696394731347473926444208548696012774218714614481926959010176977900662044288643877213392661231112105451035880075394678084750678923451827262730488768059172898402547532212448833362539835878822890262454168653739918920710683973209176141294813237962694301169129920360155913063019583373496324860739145786668080594932561838367004360876737706358813195738933669669870369330619757074333325635915731949959006023756464440750810807366308873404662092989482532908900906543793288504328790823636436485721248653495396835595389272843056858770434978843904095019505755157790644759127816654021300553803280815413570770803536680260991719823587204746245625163031531254522419670642846597965960618457377702596452818350638528521463039795990696777239223393660805189054427417863692310133559726583532887036941300057212275372497994549165121126376794012492824358875966801806069172485548971842863925415492321629163767233918935171972669699200667127932081905334238095460265515160794373757670833671104889837782211174462706097038350599340674186941135388616185089678403732331029022267279048988084260246160162059263717666449474263862710022248512436454921639703740457612277310883106408097794962559026597908589219656775426555248908532020581458302931720401592954738698882458885124965960396272270670422438280405965541519251539670349186683953493392501789950483404237408033345100050556370503634046845777040392858366239808156151270869577438675128647029110378038792776173284172103439298863199846514724440535363374473631384158366939921372617815097417942018989943608540683045710193830338629002022403265649452686928606655246829704031838498249186605294949673512358207012309478908602529360344456807483480855479552962952694772733872747796949811595864680022801323171177589011619681274918527008372456645676178141973288173508296269095323837099302848413099286304184460620052466780604767082190447787059338440928556858778733164294130664996057783305759327169215509833363111732990084525006601278576870694077581231362251588765866897450654005483433176755651317577557000265763784984243818441855184408698824368617569222044247196911929039712213674387183290846552175066982506600269433735184905285450429779619498917856274759514570654011499235738789149329239731429289478783894019728137679674392190518523924720603938084994211742560071508230888255310649350293349979926473123109521668714077252692077601383277308515192456896230376364645169025184941571389556341351261596841175868170596004642352756848048680814354545802036365195072019800468793166281616419066316691304848653769513947943006236325938405579715702257037164950441214684195493193037683618052342360364570166195830529425828758391005600155654457605076134178250622788992335109308647151513552242569391012239501212822926731040949634065071889021393022034573331088365486717431339100338167651119149236416457397906418733772034501374602007745105911906539859137777498011807078574722218515296686790759700848721015567185084497521950614605339265615517386609977131156962436565885695715116405274516314805218157567270743370731240452332057051219183000784084302872117536517275814188810877655435543547890568256268133305759884823941608186458374939225055315335888718991491854393560653585017410609445518655679635107307799605174233451477610949832759449263443624296830388260979539714425441261313831662326784470718470452305865418076813454517013122657235828601680330267672645058288431618243051948855803139264465266611299843564362550687549455197450342642322220427862364817132419024157321951103449058887901283716530003744701539392932946449657681951725125587181489279595152501911344493033895604251948231751110191450357656561902916036028446488222949041666491810175092595958441976098874918399504479111848668937216224547470619195609814801063357410783602262528347983484800164423515148853010049934239076615375536829895919349950337004825220235842970603099659187786517286758874219979056625934645180270112406271579785365260231248037334248590381282849904683424262510900281993312381347884363459898950787755945162726023099465572846953301492880348813455664585061472930218883032628112683737407449519809595129629385628869559394839350724887274485781245243066954305022461281746785411254673933415400523524343747848350554731856292137293276010136161162538014055991315372773601280651131179379658437137002210798556848991923475231313662736237233912549008563198486001758971558832193379457467247047086563523981675590611087681827519751214424712724608865503329393122376513644629651576962650511497010637828443218683213489557496916025548425978472786951438991365176980667876548681438331902857193836517961911684129213159104748543694255285638543394703109073204768009536869578334285246402495093960043179578658733096365903215879242909616343077307529789543176574340720658219008448636614795607201010976399846572351900494610893474445669893065578999869917131553202156686324009306032164662637489408381924775021472601563328932620636453193115123265031335438778926051407180910534749914613589255411342149659838008484155028317511006571162956052153838534405517698652721635955841163850009035145692896079454240670258515108441795529442980683622437095084184713320568303223779472105114042639392785798298992119957550790771231570737601562706409874448146518540068639757484817393275377037067845626359353843420269351074992053054175100424654278528263442175251575753425080955109890563716273340573176207986390399229326016296464060597491913477991640651420206741769632185512033781088740233147641361508976929892134483625374026111466339333766854040624646791227999230828938603408960912715894667413352567431516450186816980767142424302553682299623377493035949630037462654549506860042320235547299637266912956340420775458144270729596868820294912975746850442304294712838210529050050504831269574605659287137211856540010392057764559655382208158984632930322715970646448253191025690963808433516784393766440715481058386625341096672924474059303872428954899782424892570579877791889825380356812393249161428459850394308148094712107678432519948843559525151525865522223292027459252818570662457579474438493904747044149811134166266491067453986727478310393682885130039406606554487535217654048816245342256210653169510546864414008036994021839227796139115637673049660721323329453623947367023755963150383120000443546847179690356479909275646151610776098415484903008675410572242271965707759222926092659878098050931638605255822036634594850111956126684699124776625443634218534142690698629810796862447239178919661862839386299096889691770415705975777695322435023337810352354604111944437708039722854666703104002393308535782393283385247139104033675143895629064239370736998093682302238938553164370647198107009742750694618347783063323069802976754300620983603107315504807526005936877862760016221911312948062265272694794123435647417420073578512096850246092075731012068614156528158690993533859268003469448849092852810214476843065006550896496010476030325743325219692041388881403872956995647619410109483810384430219380470857911555202985372462782210972125556992036076934110336745294948337511587699974093888289561600309875259026078708413899252218737496028531277334764050421393112998112051662666681556124257707150069256689766459669307938698207249694387019478444017478683868209352000547442628178519373465171169615387950032463642446729875480122890752378314471718056695530530034675837295954528195048794958096999924254311908038149495518696447006148574832609893241492328888152284889372427163561835869473409105812633044661904996775675531948050681328823370809027724261812401209926672951884176114205735421814149574871470493548950663094537115225826067211962591417743787548060720575090384127369138772541001953038170429597789704886837934605086659635441644387870421597812191394436939769804825617875117717970692151417748209332253670663502652112867732427294761490446638900740095343541901153282213029530638506952123682817744860309339570085999606094065700055607221797753023840709678110144060805423789469082484398208068719602176968058751098890897962916386459449456543389368594803225210353599337223689555769533324880548080984809002675110537626258716077233604140260335966580529791304961327692797512168800718930686541935778307563067081731438045418051841458114092920260843171861250293590854248612523739729301124745963901406640383672842301081179301546175064186521039173253179073002165846352247521152010961334273956292549177530100697000605444330623625953259025976123645983406191504238813402683780644881338584958285852381757854436111639490200017228170399659210478865830717675958767660420805099695774132436385090152588036468548966238925646518381040170022687885617673054260281738449730414705780947362046185295607522699829896153260849797905301960420890002870963066900806198836203057059978401735012177025716069407677887198036169034005520280181034694344485797947618107522235900516447980510894534696056523750462860541750178330079240072182193643836571300926689647232603171395630996236804504930519780544278698649466149023323044922995495606890829197144420760637396440877463516483375435207993364928610617720251598088235179537270293663506355982554630423893733552343585581196351788345906874307406654454604260019902720054564149292517442624052312043421599918275301754547963617271653874780648294261976000298054173238146983355010889684533790873369666605726389122385139904327107632357941599332383120125384910363093422781376043137932614109515014245609729613149758694987598895842107228380550817424501419565522740573305445150714154259168281646599512198701985652298860652867573311476800353968678621978448401591565205420951515648062191386062463123948338321156904132137335298013740732813791126026385456572088493074956217011092229471550960080085420679172025903988647771749081149832828568393901224565247951818455915789771440433668812597117886891019535496366162202947677498755675182684277164363465751958590202522236193550183570327000858246046171364332085102486418357623522525926825258534967062169403379741395664219529079821925387703172883398825591123243985138778675323374314743051150050369287591151004949893492369390467391089648206113003733216639978771960356544605600415109810752584705013984613119652446416952057575986537503836082427480020410090047337237176777051225776777399515691596877114883105965567887391582465086304728232007798417351111749950042557850981543627692125546223629770905739487214220311284817347750171044961757255265080223951234300450450835809070157252368659238792839053735131577809524208012934661600844008247691788986651900157256030075925808327528708853197113804154558062894743319334639593775880789461678121942570667380128099263346882399324709517799736976257376594809995503960097647929359493724196456903093640743326415028322455646384402346222565188745081293893881582243764034104657800565068596637013230764231194543439379649312765622925388240185616875568702090293755377930070921141308395759197629380919703489656819413227983526294485627147919938286941880021554914618007051249121264756708515907345879236299165567142706736127296584781717878772675140609046786053358399954284196397466226098230232090653660835046538685507548684283382102547399152265021398873625258976087645973491272924460816323389097769037300382469864750584570360434600350172771533978624074159744156650321812881947468238021695413877560583151700434857411559787544909903766840423242384176792931624994614523707856293926950255791734862147129206192828420117530079915436903600531677042878335289869110780036849066476512660482031994217116498423546657880086564826272771985376398826321755575102960509143063021841938606844536182675031223381680789906599073295883358207779370420521452458948710711582253101614929457916291613951949333848156351954388531877255499497116411944478251057981276854651126874093382550213676503232148062020834155852046201549189318238271285364710764882028948702845000149031805362388815396114430952478814301556344839887586074584631336479028154380750261362220693964025156234450592606543545608964792060474043079137080043263974693567444321044021004380502025208397706852514353225032767790231195335674542067593808120395036829930577875978670453231452159531729938485168109468699486932348724694861544302315121164282602706602811285718320900759576913303031121835161820383134133226643716559808330683965917182240845818081560241073241456998245822789871224463416173503680631764862672766456453034645430145193983702253585831114016557427674292867400503411703332626335954522435022932495171976260737848703197089909234668080888723062923969455611585200857843967877831371066656595848265210432769271773687873757322546652085695785083303517354136387660456881213218995724303859116125982529615582948058919657148547432457588446561859827808071010101990471510590069954425677172619472131768195502834167135932115460340237557261984408848209829369707116084801675655787121243066325407042602795505996534722082988956965824475786902927252810479539844794391178557368945591538936612504549439637412976057693529094297669976951325714323159607821572682334165973499494032074044329582513456112346236980196702898418660042754066082697062985492464940876418535879508047376309705338504270464193987569661468685305979591019860518540430324451637836504189512464845315438982040383359601817861613113606407147276102637842333083322425622940128438606076845354617997917437966924339422619243347557819691050102820868240745937662458596716404201340708981434145418557270553121837600520644124718746552863785395219691939283514210812159938361834936872439420242258237531133528041456734594947785483948041165391499921070282941359623192055760679169371258740321156766877700028649721692333992214477095601662889278105171262009594815824450462948866393833807202385762966673043430889425598340718353165230831619266971332463066092778324154119513416565668897220926280943228908638512586198067136768459662579142520644457800631730932162538655500287322378667926434585941413262162533117405361363521923138951189418474263116661698372662462016245680701987753548888231077016255724524819917749344256111131968844226890720822611230827620801472386132816737262956978004805729765407550708296460188858571668715696231833272785973617898807151163980052915130109391396911967667620096889712183590962338646886265014511830148380139410814371304232794531828326418736241172083253544350061123392730763917429401180855873365351816670101955270452978384279379448956702284753143394428688011899534144508328735828888453383293674145145446853934264517479620562333740265654500751476718211578064233000906673106127891587402408967735525820892609168032720624580656952341668683440510773726011979889022503106641434633106024082200889192057275004423615944281874965295808571478039460952218934006298747291111929818606702170004946536913554166993683446172377792064686811276444235437587779305193494738046306547006433587074869550967386801010727344156624646997354384583241853602920302786746305738882328699614838134014477301563739896404956521077529423573559176722395267961193541511358504725219785428479006603933973356751032226787385779931723334176067795870374187480378563213106874527562785349639364905677733723000424339944385024729866727503366979798947384020475980084236945622607730788409985616789953370564774381612947485527531284456491475834848277871205870835948932360783671837784999961473079497766675595769498793329565866166775490504707595998295035927772726766718021869452832060967332117877843173859429125945080432066596896110932505257198069090661525511204242756950277946347371578056603252465959914448767717902723258528350687965806290407148697999282503267628811395393335781342141862415366069760700429961212527431540522390243724875039237482073141334460423432804380178181289781963390253699744910474376282730435627583863565035908279837410429380183353707014099250228092124823897844293716000230487979584152450562923584794634259561462394767137745416621663829197701194462385624566741640995871274644652874086989132375773862580361473922107673692391280476409858329629461815012446152506764663191287514876647684936211267227597941410985980282818639315730873605953942564887904049358308860436086986764312162865989753188086275615700750405694574842017536052506082056126537715660034518243390509318357629075140554736422938911459974617274015626181238073799285344808630486171055562415431656242685129687124564688137661696269646068351578491195669599186582946557461652112112047516119366164818627352614213555621342953979661864199071477667927602210546545854279938809670635796240424505321431754235627745357926060646739214079950266478949382400862406503614307218730302306072379231778876583555724362715711191935162275049516519182888047490431195907754244906287118184505376209284840347101512675262740276140330083737705943542482098941675369277629363649981682281933149043164822469460894126061021978893804525508932881102487171327860707980808726963129841789398698324365314865350673081130312678700952910687736991543073184909609124615905445755865285485048513779930189661324124169256716704341441383542172396199492914310422282235716247792486452735721041709197726513663415580103747386350451677432610449293128075303676405413255019981801523149295829479997184120399827382616075448322143770492001323179968821148092254765413973860140708106210465362775635633209372683111530083143848197588332649956696299054392073152508685350756006485158056793012181806366568182175570817935525906976825480286042562183443124587894503722356104960320732914879394875389189214473418619440467059773951180329072051752539454696320287577740587959526249388017951885554678634255838226561257574376292752930853959912635895695762719126286219524986242225273336798357631933490163550648029246357780537965097156981551053784633491939730975985966901131813650030005342336017063772580600842667076381552984967117879090175413770907522900540181396040557608845266301267645329409722433552911299608187190209900461232530278097181599316639138525521105406191720630820106595810394506211496353921128145404634050295661990825189576119214414368873800126580309159914180182789446849464841979984237437235203046756115760098859564472988356554821479626007003909864070107461135877048827753776617282204879169646123853948261748132702709628752607470353536271701314825281986649755171705811511036176985593186858943999800738675888122317303020860649460653738954137939862060744249113437180338161988139579918085680935060104537837868279359789202669061137293788820989637757921636175448600883678871269922463689961226956231443752487662522943364148623291488206800309267914061465759658645895267000514247761173760847522547984259076584815397748250787759138123729014869937806702692447207607274329676439305274889730224424590218286691477108555653631776277869799803600479064046556593933248376440336725288355313602306062129708492529098404790116830968592306921781242431134325751743955129491624805264529228541157264759838416424143772482096228477326026860769238390182526519387218269011738186449024828855271193761804826147185674504976275011530931341822913263312889254265310262930621015275460975766511640452482482517355537307202161651846728545501777039567565117129210511241776912604464156703477634298633487582761045076082948466689759005612916925685786652966211775254777113092751719357183623505352205480854548829289921442391014438159527527139376275206077620210580357342606394872579115432238123446223303954045421231981680994103949657098348278727363382645901880355877325403088446140259952636902387696723229811034804767844231204338025756865451449232021852172405388744717088178541961244215701862594669379954705306222086293298748063562841047497168509768107783742389384088813490541268899402305708051392540864008487029057366956042179393743579993622960274020636244646037824451565886689584399180489943350282159034470801687783318081004511826689464688109887263239576018827787951692408055605358023778057306161786093770381604931512890362347108243199498016197859484313382370184550205768461080199751372103959442096088032069680760374515437945191653434477087006160580159965703636809533817891033257444523673536410484431869921266916879376827944006556235375072279587845717858469093209186395690258034653846704524102860279968045057697248501426838409660089692712528709210119890083909042077661974248734628992475569027476385889914843291506172665677232890836473554049135736167256931086389955899910503179489511697936872867721439292159420746018636743345338425181440833797551329987128817289031729322987211686640113134558332661748319718809020180063228207401282116317099171139166120499738540872202377672897582488143201726753340087936963821077041902019987622724390968055764746328902886319880884683256001307386305278363894743141869739443817037216105701300586861131554871747544628477041790660258843280001107608285355414294388819353292218006057573368605242400377499204218378292872000957778570923710820099427546025742867444116029595841597662964959376520179485143536353595644638724002901891800001944592071859125603517382302443816437432172426265368622867103527454488420699071299938088559170941683394536697273998085099382105978236016168943608871299510452950160397469338542575949254513858003786894655631641918031372710461986256215035433750432971875578581224426805491073755200385114576427877353229208524479173997000182985482706898566342988865582812731345481534239655147861217974444684413809500078255537471488028989234948008472756606265627539653545085306881254815205209779581366205663444258221202438473366624129403761757348308364055927241269987891416252547653674670772079577026439381424646133697282764940798667032753000904281049145517594724988575833178063685669462915166337282733904414808326088152539589042948115857832812043878114860894830150990108966051820160195121953121980118618908877568256008476318607913792975574344950812798088670371377941589176152608385157504692060632946720451176021271857548211402480341572538483418680034953969770042652334740978233164566446259222834171935152866275157921804669288300913798893194323216627807922160796472843068910353395868095201398632273507689716904943003649990548350837104619312709569412471275646801134970868915279472469663500364559556827213117189270939337926533213318428176574623874946585417991301987113111758942403238752815269930619496660643328403009517509807843944647672809974949362934898256598464434007544774043974266267400393926247863849715685764801176493910841138372156208850232070030713110575607338073062427869041367448989025517887734979239351138911095986442154914248858702612718481275005216580223875313387875513723570681422153498300601066614784929001252562629960318675067071845290379802682434419060372561497725668471557343851902552729800369599224455723821939898185357132895772403128538066801709843336029034312630118681687752881970882852934367837821926643982000911433049897498635770768239272441693404206892501327620088826320660746753458134107987327550997782123104645645009980738440669789396482140456927708901668179140816327181304190377810150528044639355351856104149527600500749995480703168680573585727631920517157207055062694907230489802288618979007544144409254372443832074414569597554155712510354987433671767774715750242689982021394739197145225101584774284505517628145876964838446950087680036247323948479329192094779958558986668675129436599081661400325346329666274550306030920339593769050215803751680397885803672585887469774054156964391652250433929949102277494902742879185030808183942752276852781995016587079528299393355982408498348138537242977630829759834061863762597417189183608602266893622447838616522009153487008432555455213512488621178600754294536394576795338309709023531712497581295707046885051334285479912987755968309983919744576108824276428115762950185977047027774841770149550215773764006308370712683644244167624911708521567044093075716003577507995750659930198722941469598528434614290493396530106257140298495844617590735683237290345478853759985403584059085683513663908927217648575309739810181099378419907082922765982957927541472781371201187485378016228069754294899222891183116424891025616506545123938060689587184469709852783485018834829952009717442661510255034975627400552289984415405762454614032098113103754302964416348239000247414166155053117160117921722256996795315575023741845692694501279108915294306379938229291188833411061730340013022163638749601745928829257212541510454120037245314185230414065827272675633553310896851374718595539967428041246116738024307792525558842599022198674746185891094809856092630341847450498734175504369384417253580762878982513286317264462656684958998970630671063144726108948467821645620754356349000584241471684010686297280100680300430362129984270757132618416210787375650455920269285170016148457133436076974354810598899663110361062543523178537004924127276080096432160662395848619011529955789224055440387203864776439407436679924071263354245539865045843839022439180305993761670905129222480526292894062546643261852658627824144081001383561284079756175078565812566531373182831963154902168159066472676120134445071128461733111570586040807810321436327773654132576461274244379661711956954747166395011088594186985254454941465865858055321645264024856103744204859840080864150375926267819634534722246354964028544727853289496571337365826974352593669335461262473678614971144716443720418312670158168741609747674089879082213127866049414091419692172255643092393480502614199330021801169042274221333064375538198163121709052767355810880490958750627260064694679245816417839798346136418102682262290081696493574987090387637321952963538879418881789974947209250451611474374622390338803131689559553410493060894869685932755061398126049588557415025043493312652144921121786331848901713619844510396068157824022592099717374264771366725181186020625227453888563480853865792358691887700406017127095568475931507558164791794489622758260747943530770701352284746299156169893394250094327932079253802007899998950144806179128165415023739024754655105859034150723718060279806540041368199140945840769250350192353799748716139605936299019928648178196210807330566352472651701625686279520019748419145653521849094140039157495483713983881394294764442058389506889515803824119686808470773282108981526912600696467004846748930848468332354998769113342127573612482203053170069471312312362595300169815689722594633217228435333479055912241200467654307318309351826905744595749846071069755925284010226411908272871791498867662119511261870875121239942465511384754149085896011537382936296395942535773141327882566324410356822563077223459582085930146053535592653669109171641049928783305069663659825925586286479142906418274335552790917327471615247100481838713588661118028699188370989491161200633407071772044408731294132404395219562246842877648025720948380964410398424310482750514980869646812044423984311036823450969647984492609481031191959910594899932266449637173305282000516010302233882537335108529569455915893369991379334446313334046675558591207366040746295431446435998036830109847386667365107313962815026529760766557272326580236038381832744912113058411471789416605011600454933510043355529835711509644571895079863661882093992998239869801852108059820940199988943968849653937253954428374170434216249193074813882225637075658739676769653318219161929520132927496702743317014737286932805014591760846119825509063656679758349013315965321927165786600465757181381018223990370950379885558571190146973805154335390311002528203146627083761083144961389758982450224568451849859724725375742210639349750261900743423042062591569476909571443473523767727793237203064007590775479354202964910018798034480513003261534425015245308072610735717709383409220614162946790016804358362446049251503407911700989368129805579866539113474782403605445665963317381152137487581320068458981879583338420533361742730053602074478836938295580602227488099170473032800642892779396844562423509302119228828080104998516361914804871237079518461835262421997811205158262454420217617561954735352899246339108160169741633303408384542138500395835088814065001686474442935094032554424669726115259340839607757948922170878904284871681731207786031737677188689157919514650693418694311248113710234126964478449289766913110987757734140768339057815084461425474059655533472502423673631318426471290536064856723316799212490021961734145520322549754234771719552874382902857050748581915877823481448372251979409287738402827185093740230588566392464003653016528513077517837245836664250659673036540092942210737420438538738452702570635200840437633443006234556967233414514161150027342000347302386059735668293781078887999685110768894185916465664622714420412311309211713844579797941215338551280024558959895002829207163219847775508807433833879049616140354925165601353144886721644576691585165625096223160311864439455626051361991771336069717338437463430605623057938957082856729183277278384370210296651823049814350136098153823013988606946353581872122153046810696940053048121516557656066016237798440182659385138794860293651842866303263361583269151962709691593520768368852466876603658109756180229640035383844128982075248813896241947618410099244966830951361598496034497116151360449797040433923645821349404581341519336324694917432327223802363603992700259244557442645124472220036758562983678800848228267023141238959451553735827750422549522760559581930096723343122786954232342681301762350745907841186149521086126123688260551552066831686538446264467880794951152172708333063974231728843153404183049023690144037690458949029461199395252174361749796884671500954612217968862514072930749110513319799261513410808418270494117448943251944511666337641364048595499938164376849000161898858935016347214556614119657290588826909272349301861633796356344785707192625422608745637988101021798516639803676858352002233873796789151990631872233696403253939840546161496718968253726212445765413158375779464503452198198228065174453585900483015332473449569416212020697883124717637115939790081756193867876952643568643623188252815123326065017458698253063667425390058587514377099891096550780197428302058550724787841448005687335538614762267382330434461392986680421091680063289913286693249232007575270896092158911225142280869353807822998380015245314830113160263930142484326957173199947651314032615317925386534507224436347846546559683033309684757523039444581564746568076593139496214770338007324867798558428723627811565787777231234451092071862332491566380442232987858437057483407994459831037530099273401212602382460535043720943608866051314941340511834131383733102098416729422530849204850022836177487123158248180142340637149957268884277994076968770708356323646370785831821416853129346103929950437132433493781187467868306433982698038484792630446765885215107991150174135819281562239045059190694679822427302248898871302876530986082236807982190394524374451788528676934199959838833673158361598853701373662051735135635340707190600434748770364105954115432587318145393482668013029626704718390462277199702363501250161050932139040715145159956556429131821028659999800225908525864221502941246133372507615819323236797561323186466819859841916355772404786544791614824248200360397507357935768523528864345868891845985481822034032353215365294069108435706005228431503256154161999167059729797472048371723611605939773305309082263661412831955458299478127385892942193160952438148408029933756488138415818628323437701561288354329946407473163544710710158418309585687780857182935277785028525050392680042175303342618112142953753523616143294859118291958807846604196012180113163906289037803396014556786978606080425623916438553811103723125471494808391047971508066958332121542594460963718841985751856331288142539539854156896387007457306344382110263787768056061993112766337505940590839184014570881280664158129623900409171682840945492811573729780452808200417069333016582826174252549110874431175374884587763575674628522153443961726500899615058738107987249428292849095136748799128672913792303459895397529948030050746458163175203223701852110281918082337712349887145298464729620170961548181724815673941982873364653945145966545351888022418434234181903618181524077522208627126439281838736741579951884453614503137173262143166291281710330206936060647114101084220888069859164889540636339983138042186467507540387693945095388047510235018605914107578905504808077379785695403612604433872137472685953092295304660527793275956859010231657149770060503936007212356197293218952976405740362151412842110775686071956732664580629268765158000732595739208410882642061501840468509586412483262693872929259887593323449410911710073806383757198427759349560646024083614738438558623405869644715589000230164977738432944877101214299076705908670358156911168342082110175822528222719973473296320829518857740832927538447033796152188695639034128095974315042155413669992253324852502300070689468736372362932127931877323142214329764628111658239796314682385773967256919059262521650672083764804071528866955603407073429999986491161136272228098336828126252411415871981206461308563815353559713239240614559108491138396705297021037177568649767678451705477435279517270413940195611052496558770445296731456452947901845185040504609620003732622618960332728346667386415823783889656286515521543036112373515331798860590514891206953481372560757014283345660964716802050711879421991426368153027691668036500100974191744349595935408765625500462647013816186383884068206126930071129061098992524664322768717136891284075814474011380894716397268143446338449249655939540620298656979352896798994288682169874981152403554028898869354625180181192256629303310203678159849858908636054163701239966145678492843546366586494551548041928323788041668571400379246558951607855649094576140784404439393924186092602712780902177794534923300105056896151589138310110469376948023101062160865517064261757835062326293406752608413768942790522604303707998491831884444631251274011195278051564717785661678058077908438734123002482884973176095082861247640489074090264822160232857431346588890875681795174281097009723242397154882390570406951429023466325541961856052549841585848933740868060191562772178898664336117791149615316215015664170023251422157344762317419446321315702290127076522824126501643259095309247981767071948414802274264872578286017782739976439263354321313267468259182061034894307017211108242271626417812994825792355997522769589588167536721219831066257247573963382488612045486304754655614389061436057016132691356594784386977503270389316590271936074218090952426542640979222203540832640941930482626617608256960089991530990575431113545980836208168395957005007019352635564907311830249464039872759270710759592194774758754785122500539186857200340716249454263057365605329783723430419387489628216206438931404322769818866046298765873785344928047861944525259662112689468907931701772405155789905636281002954292320246636770247327950566967819230403838755703056659262582389098493751559356741348816382398348618907379303472178778323150822214720956638875225162400845571900118932061501407753909910463695008894746086330320379700489412561878028597430226622041525544469600070009300237271710202631346657444949675275809967558222174784749959677751560259746570839216009307593993598132075875241476045478513184864556903435772957987771850270243245699515178236702490821089372819654408550276885934257836523076357887118822361862649633817696515206262828810605396084666190095693227669396552652792851457973819106883694084453840142915750993483418835517437085684015884076649538693772387760127545930982816965387732414155223730536914741708291917067240162466503722347375645886430225682742356874775336321390675204785137733047163116582817604000778446405574865418009015418591965636118733546403142410807188826345382519600409659709092032911920283480301065647956062700584469226051083454486424917714718953671740991621166989172379047220519914548763955255321814102832581734159943432900962995841155860458118109766560516423928798715720164102800630690133328155730305059730403299765874347996291608279954682344403356152047905215537824510698556061941319091858411276022447793861793664805484232785580468994002638716546686342392624130338549934404672448662430368592485002849966490615482542586634925199492714922830555497778070993763169756244487086727968665272457860917756208063592209193792515194248157192129980173333943698590646752164045511522076012253870425464063925825397522535004346451620208823619278208954647173619849197429698763206415294300493758395672667626127059416693239570633453604090871890721202979461778178104231170955321435348011729287511168387886746665215477954572372338741232335580550706475167512225164556672317149728077375400061231051374812776212310001305334079437835661862447316324496641438305899429016421179597905156051257674396654557013659214353354709931857013544835623058292451587687346635726702860470734756926260194683835617763668586965759406990293365165265787703745581715024104238948732494561423869296408948199952807779720305400433138467607655361925195250243344722083903423142333000354293744095160823058614638867517372705058214404028516026409156040633883020107162574975147233258219450253663251527590595898178846903268693563178238263790615802379547969077369685653964635292750177128749368954003794296130231186920635266131922781976222255745283802645042364668001866420463812172221025087687027140479382059327094373743961020908345493492885171846030467895307157162513727136422543630006964322282663270740718849121700684428706506280637836521650362905972485788528571398565867211547984152081204924423928727302222734251276830167219925729543180196804445268927977741659184058264414138485894733642384900207927115058678263863271508713040079760168472351369731341627336075269323876165269519153760054989383179862551576689261083715529005569873058192894781144017161702674964298720754842410426277109075061074801548849651175639963807387465907815086982581500636374561798108695599565465069252580634239834551843513985145184624131138238758415242131939899069949524203914387215758996702141788951489774976040211546896351718476941423963044939423237514878570265487619162275630293319191764103369193974197230766487123279299253906847868211868617854849115141317796600108656480264216453166651184928591460426240949560871946909763799066439995717179558782137855221288042337706687574173006057483102378615618861179130557537779622770080659784370386173598083524270517436107409520128246365678905191320931587649975542293395717694927993389212395302799812939721963775692225590081883478775097892588000754883390932288698973418105526573721579579981152306042043399098853200377704360100723913377883766186826988559651513371084045784749218279807072220786509345186910284602522493214636340827787661425773632662726053822376355361067005663484648280331523587577544978648041342584561339121556822666253546129575269373696510871532993216430008611413183607831608982710293022157112320236459343959950582614515177681154368486226032875220764083887218885812924721625762698893959413888833724288391330601247326527257101056492198740338034450700281719082419181754743423383436208759724217442544004209099384044717271896709673544666006821738513387038556065106106194325846232672622870160338389910260181073489213927943774485927199377226950161502482899896227904725423093092527695472590783735024770259444623341044347208714251478221468953616010997091046098253282149393178786506064919666791933315322060673371661759750240790572849608195080110539849593953263105541826352906236705099245331755470208766022353263857529794891353359417255482671577433554292983421133352269744434436809810664566082123462593946628051530418701235292526799202568650925648435006808353906291495308550048087398039088927475390982425035469658216598423852464646008103336763803530727503677486123732047229934725503534382062386712876735664167829576504008998370116643472383365368550560125780368093088239816806548197599900865692459473877809482765398232357256054182945638136386523788206111124240257528671103517652619903424493637642016100587818003437831371897974105076612390677363288657122058553198847857877762371811520760310237493571848893769621287139892493600261474374131691124456342948979885986094848238811092009117232427292386673433991605712656991595838753572742629086074250471316285194846623167765933430451192530704303784148087160526340990807988680838846217774546939407807981349778401072617974135374702425667521068790942466726400554610641626284243783557828762394242715276292617209860530739205716677880307324040080380550716893707588482737129949214900286531620093178830931171902568827438334125080407307125924080869254333703377333872475892458559426177059273930730678391412154794726536965087897543920336548708515128953465741454125429645356051158152458148769871899351302176600806063456367064147849569298680135798249184457069409025527412134450607937384153724851533862472830231278625437348951634560564782275817374985311567161025204381813080053659566259398499671987449988554617914579322258612905750746493367822476669099764793412651665775339547344810821861318183069396616117657697746121232978595072628320437466785948562249481831944865544344290599737744261982297648345466417972668244035949409499861277583215969701580218375846370846047922741151314198362537530507753189675765222064539378230632905735088774426846851712317066438753094047729102257205212802152230555768220317947549319983994827434504639368835059452951459222176552648284425552215396733921263731274476294626432787510385763445695082650468486415511559347801717638238236494886670161598505771572078703413144545109468519606013066570762870188138265052445654056920243571147895876102863906790639822499659669235253710733668415816867334483721557973397313689627749606462762742143226167408894841992122096925264714048666508753348479979722236516124460747516542025003249874767826315374789933416206163666700755737821888777298036184251916529738394230223788766654211997213589744345097352518934331535331620013133059484578582730157801779221961348483243454091874548451533998236438353175845129456121310961662922664321365907287775229356189909121543322917830243995474290922559819806760324717897562190551915620276377845800250852843701304205710208955883919643506812156413710826262902839660959314762676877991173194181365497187897393966373316886085364745158913083008277644907254733979778938197742322550310130301578109388210785982723567801881900095737085235554744527955249891780625651465756903074167659031923646589445583552466757022714356241862157032235940973652925170289799972959675816547885915333839291446497547740402432102657416397311412066074055211662385459002476565009097434554372527473403116038899541857852813001053379888543906477934372262609237019976890829307560013296972751808507434919081406856122522318992973502235769773203278734221756164263159595541485867742825786227426179055219078525574361215851096887544668939073214193644947326880182426526135979544395529163590664943642500231395245177433231531062784500669858566864654250299321291800943011527598018944746362038471174840991424542340453387272205654551598924049155456431909688090420728235131064802155817734392092045731929853108493673816831874406223560662481708276198701371358710564945007789966188251173118634126106911748477761841505608596941907042056304193670002331103194162281219561006736688765627526154372151164497800979290715204417060058928333900312748200873062271267197284125368920497735055342324637227229013932514125280369507972191147183559376363898203220183918607110552776769988265034010264157217047119553370970517574913984903686183679962791157839837707171643192233207677055028768528786744616919163632652804953794504435261830148319531000672493026460828111920370440981249503503184594987820900438895781786594563561739992212421696325393962379160954570031708738255421619685070579494633519583203158208020450663041123562724381812690468871731823556654425453637570679641079554231195782105564217828077187385395816230435274579107512561338501053939835747360694175489650749977583502157970535584854781630435072127651963848379705150478286458363059049075241969719096861315256979479679156259080497996794972263515927245634063503457392037661312627961909446660169736940060770418048045973776615879532046954199096878859903631638170543262622722246802385460221807918805962590994657101540444766849614823996239888017828885327668461879159049756096719830864973732643504811371070844152124662181399015469192353583585189230492644134464680203825876650507237107302574828862865956924026254431718895484365229296074313880910092831553999470110104929696652750838065459506096007671722762720221836190330903176502138660062003883511644614245315495453091129755928717002402364221737451892881090130615922901386050491996236439750550802921049379943521984188520188226444329854306245549097618677943784232955153030838892334805587282239282675676911021816582571869346149589877799661448439190478535509484228188000850822923952898634213562782009894633429674797258817867888918956209225732820186561289019018950227568765204228231775931855148247528093970976736667603543544540654593726844899256201333184523819634508964052147740371239961045001557927719015890845424279163076552667151901428535789412428921642234324372365365240071750692176423027381640575604772449937051121451567926567491101665649824249098176404334107171344871802304381021455118201862546965233870837981106236882861539151253006731190271367364161210546604246280956084935595356018636973550791890729249602976115422381365300247561390502340976026165683991872304710768829335852174335381194030996150486739827956047738097366115159242664821861477229564192243660192233863961493137916946080985061465342063389347411956044752542221916934404282475705868592061894407363096143848440702018412480969454656542578322460211030099695509538312217217498236506943484182999338068771697292956258708505231571731831643081162051863456688996100694051077847071810679530653051516997034976167452846574666897193906386693765135427181679423840801194550696215362153685142431064747669577056612367572709487107207911608164301209329830535677163831878860862006392797955686909422530611765005268243189995130333182038288437572586978627473727999076996861556381092879298482818128048722919003837243158747398385665802857681709359987677492218839914672131786871934787320187613462286997460980329548346435708345850469432362114375059680257494109006228586848049689538812678207436232948932892571216323857110462920193607274342972979937133951340866572880014724767310989695638332660581678425337173722328991652792003614481809604426262501687140721249096185414993474769763621439057029603888001369726719616746028474322165975828372540657446070657940657882400993205103528154856209474510680705223589178631981981250774769404357086882478477370333530775729528553067467517209875073279619337046204495856962125619099588211911389312288954995419943366059414253973919528765212431242660427227189215951512751954636276355677134580983448159349941952317085288213088868329659115061595009798106146005245877424753130046541044466310817059558542659377848059707975964086186658756103105937857643235373761080668808214792710153025002288387546501513833062756751686152239805168963258991245036757974354356511255078082728446245832601229032885862072204439307236966240561793759442029435248557178494394761095692579906097558145130280533723615431061521200561143145916981236962755575318127199240945130677002079174848899284642073661864868590056431086566731203169994535524385861965943019252932353590796568991355938473007918401485768769243096709150500196756016456618311468897547257949399589263982804301985971116188777182183967411992183897769651313628750274543528482892423288386517934191388672245840277446115506760356672477237317346095384408812668359401386847280136809907131295337191368367619766829118028125681526497941878291870484875679332514582029421812557273995915767483004456816418055741279177880590928925370582311527645273935271036852534815192763135303026504509286868166048948127478342433262776275178204852105933986061551983061612149892661467870457151956156136864881991785158527507501458473776307195382727071887705894706870171579672541732950262765271334128788285999472507898712917908939283692638243876537290472048213592936451873949353227345284388397158697260605426408364244322438644562208796186466082204790272705696150834098654555727380222122742761535108165231672418536146052988256313763908706380190526212141698443185697421585900838905085728529829864617090267906086349416041715826217993682825249698066090033933579290652589379759143515345774863101286056628125909292247487837984753139949918956263326931526502421400437169770275124527286388119127121459249422959959553877569000552136467042280548252221254511819483880553452608337840340645555302089566685107340194145822235165189363450435479954419593448920410837170264143840572158974405753864554928025112580021479963228972921980761481964397079214720970762010695366006084807165567237649658942945296666827151914086473480691214807667792740001612013823688158871574833405466551785119874660944266836060268515951200649924636767269342107462807256387631340432363190469220260266162529220706509239814633233682040648267373631983618347404617254317927936619935636198277731018599270984975140076741076090655409428427216579838943825447536929051025146330569453774964559681265548670403264680636559163179904281520693857194814549458880056921123635795055582485427388995637651735853129339327653604465600744488671473346881955340415289621503878238893310077504411642059597770682544655907740215021159969402732840822483436025851814284650953670069840880654758654513084233841340801077545945494805018632753042499565035572353358638063885229328163122771244675532263544886306017450116026186199612419346545113314824777834242481957969529407175350744782004733932308342990415863540105322482866495682802955867878457541666250607000843280259939551266659510128846933676869291717007829895524995190815277118275166968054380152236313988069169624602306438388332851373295796600347788767866891423335380191317716847269765639438407730148849089336611475424461154546885059623245884039078477557001309608332047089832159940529544199320615082736866952398467062074963109159584599462912340188617051554755089780004235365964549657653971924720875363467613818072695351843142567688057293529741961242122595207131617476593840544512090316851998128310444006446966273431052933303622216316866943942844979843654937787708598962568106945352257937374523694886183741439651397327589165965879759921527945002372173473398811975838985976061950925592245936762163899897837623471272117440442016513584587798152905823279435528543787181236617489258024426065342183036470688663770596531664034396993999294897967166022934869096470065680208443060174490881017291547273937722350034583277376988963531298888900336562884583225607719204924032068913949421067408845680772780306987272080878882486746775530806929908107082504759495706158541190810446383916339752056718757732500039165936959521030647256128072199768203997380488002888686458456561173272130191281465322957952508369196331341601858484566189425109599764025273794962407769052824777962638417867043545935542148005545340548529142131541783820481380101684565219515947783425629132682679677278394234722357601083976955985745400806769105802131222090867906141198199301733384110757492020739950234785114397049083115115680985794314156914299215261911996594734844463333212228108766284039147731618469714794988322721615450300272611674039444620898421680664125057485228093497102488406394508976037843263537974891138209980276313517653429830751286955057558745871514469316532027590514879618853637259207193314689762266050287161577760886915968692601071212537058532893081605138363309689166451713720554083754354684220000282814773358032512674433984246823305590157312905915444948801074466576548269270846579558008051925459560369434652163095416675776751875665530649253055386814916141290672602894783389569601413720504578083475488626945668670634585757926314194244627660954789124375865039051308243675185990365534353981788552031826689424260302663108979619834541495294206727478306421162413266018105875957758647334661478642310488261975320095943568404588910100938020270071189271263774752596267243349296079256398082536091444950209804307940393401298428390645624848972065086104119054730588277449138061510534845053770341488237533533272958457788622045409323355332623284932377724836160924889693929843633650262588225076704020691525223682697504668776094018347998865741143365126732551724227825316307044551205202969913177871620048395809732176425009494730868705304261484338199569659817293828908207481290800920752420792945223036928186128114494235987146189173876215654904081564030595664377495450841383609130829286766913825007956068569420617666513454277277227748681999163712517282017566887052336903202376496432038773886318857325744922943624828749943082944498384175678492741420562726966701281219041569858807297349120982343863999873869971671685074861343748072327463592797237986283793651391221600072999497641332741726841675766221972618446578770675560823042903675400817725251789061638446806132879202214214595802075314580488865294975375310962111364673674408448550229496805942102795233597899292694126548100889958085302907073131808229386530938644982907926441680733404996327160131875121446838315537724406538782594244614234445798962071059933244180200528574060564355760848231442484199025374434209904875188151596260523048707466288119398351892208779729492199812633022694561060554689191796557096555477125018995362711641934167379975106824505839891668586806987994186279062804621554980317155305341364951873278902788454776131810945751583520821389075230793653190135135761331362334059841238671612812616263540216447069573194754422525475474692786087364335126049202638208825770716818781468871375207540771135539921798696701552450017185008930117006558866893525791521377719664889377880938941297657377059464557920176764697916432814592916400858426427111014114579803159739079030707170780224529311009956306265834706014150905242974843146918613690755137697989854144122323271749949605341367562745951542430305450314737426259771351039874857577691125134396814525096428317742413904336895191245969972089439172673086911984067603011292159298786262354911437884673757018946236207464916902432076158680471840644814894423799253540272258626895803112681102650820430786749632498413522692055410657278227263458153919755389173401220221802104969690475172811809306891192226299818583658217002427371728707343792464590294838770109428300048126904505865522680288464669896329408914233293920092175063153702306678854711925897205369378335671091416425877855741046697052120693901782603045155834621097178179217654026165459359740670034240350144823041243769641750656580415093575164198185425409117540263287418600094588408606748722428588969315556995144655556242119524217555148174864230618638441788666148488823878302209297689163357718558604182444559114544917014794527946266702368728112996645858924717938210817543349392346325268607314050478620926211635897948123864965990855247783746604355747436666717256981466668813524901399833462169769907125294892404327475184956097382210537244356742489822875174865014164684849562087041013666156224754127740741487602618976257308804212648111229757673522404892524041258431977096804634126817201834195453038203411621463099390696113646348090650424453363289565952205428873196305614523839129278020684882447495929371006038705776889432902403646652733139697290188242466576946074174969064674766061158411175398382703311122927575809512041522347484763783206431651411559739487752132154625207101571672000952550324488791817741969024272400490482318696508497930971537129735670912812056824226675226348803876376018605125728312132868744508692346998596434303324870031923777507471027989887485878732400032322888770566869604179027027300727083660720897049636592198209489512924839201235792450661084110213924305233298417881217366651714076464699526124608941978874840632309485141510902229909775936406854284032129560949445635982732185495347365945361998643479046937331679653848569940072088325128571968539684905063723921126927126093980433679982203520946510441746217742860134521575646735369938651397127822613204505704552941607104699234734423046559949432103279362180404039296596152282269573210058768615892386452253484778137570400079700414936592213940136819933225562001077125464540447795639665030282611537269061292384793552211356532191983755053343765212035692063897048946638085828743983598887304033576840642931374298863525107289527128457300760332024278731589158261419448268364215851922597247936894495771325651886290754540995469810946904914178433490428722298279913867528918493565608030795350217062050892461247929121478606950924154986155614179028585574220471032463406335174706316308135019349449516322069674749633650144801048880720293707945346355263767117072768221884291797191206558782602621034094843568032533434063084680941925050172773173826516443262983997079984250833915000507378289315940793099939664708586604215880272589740182952011830983170601724220659045428825687087639644309466507273453934271832160772568290167051419217476163161797211344626929168625503514683787389966253244844863646688560734341208267593175874738112850902259336224206512781743009916981447148669160114214814167706251451648200558050614012884696879682849271317861716314952343140962957796350125454746859227929465723518127469036789051363440298335434660610535753197771515766388075056101286540246697721407282570462864153280608770577898597246695648049299717953870410053539593571911388000025040863309844753699834404714101463400912044319517064314590865228737218070852079598702813997652688551587110459299899480614843900576684907677794836146555219430691052239136606623436141831000235132713776044811201153511356298924807704023100946532184091120017832139569502029871397012899319603987525041974579294769981558464194456348710441373726580421798346859256908951204862379587482775606259608620212559480820170797970714961649405046325594912616728752678101285774170828335372970274865271871761422505997776369530921760182250786363077934000078923537851406733983260398593825184392555002483387627464274188038827090832233380021396649851478761603359098896182332871665909165877806054148600894310435750426842387846029120322156637732572325435530706223288252739397780006562937842438830639707940624667322708538910424946090841639350014914863272540811767208424505044900267952513918885620000360205756428580685404163086571685499286914959946228287514871420894907294358826208010344627323972418314210557359738567022816065973694200387175309653454253558394316315028830201764268905372873316790259316976625484126550907898608708470394382490543034652380948125026285253711459097721787699377351023752681355533626493400521262374034269405307704773169834828860195022489948636825200049031561787560371192812279091918471299940774282993852587623173687523091988384461262756004530901938589435420983963832236148889086336000369534262899550375251679967346132165040710285051752584877167655902847937511617952575299638982590340280873302465611977421223490498652151389575274859488563465014581967103395904929827928869522394855466323618609157823985685713136815902721727298644693575545656606997615069469260908963096441213452675281094244272735478620881629939520595377938768261087018447374683708485602164654975408589462915089130430299340615392319806607829269717212218902561977552789963485811072759153389705904853342167609858102577137969612831832017245338778137096218730126397000438448860523446779820242034091217348391993159262051013354163148186098884726707477193940420882128096060353299401894304294430091782409260789778821031160670050622429536582724131455912700631106904605421515742593645575463338395677116641405145667323468055140367903337130208179735160959463385089934193749442608540616731870445975107310933162359363669132483905049228036934535562244693467687268496458807176295240457153697709552871714352914473807872587997302767403316913519779383436625805101332700621560914985888579017245233181119367969378507306191258084328826647674561050984701251068386363139295178145939792366127000087287832772544848536581298586970796969950866195711296838714533729998958035437805149225389673800220019260836520114317029538506983113869451106804518373887183598425417815766802721437556195026186319213973698523752640920211316373777551168821394064585990014471082098726406103149965134837186010586713590681532684600674013821899897743485391840748486343893014263886422234073359362774199608948409087314567040463181844213707498771101777975948950332906694212906970079982573432270557473373189430250778318147403960434433603910801391029994171000536769727742229502232053407508732256976754821080979636459533636958861117634765389178228003537346155452783481861949584426370783437030492228536621367889747305970401292789624063954558370170820530382453925354144242149719893557808447504649848085226517747032355241036440483541168328434383392957659655582084784581566912825208219295977979019491373669285358860952933413760236912294074568694824773458009857664411520980744260876356877087044486253335415869832352635917612789108803702952431514353476113129934409718910595118184990008246520848037938012622930201746744284887685983187618489418556014364558803497762808959335844903443798277869163138541960666805531429595255690151830339336411511527188713554863205087238610950518122241154538025422872188640882056234557969466670642829974549160156476554508411894405013305247317012862288664018518950812600629248053340111690502991498948710352528565738225021348800830377854563219313046651781054571228735448248198046218445199975710333272922129916062419856990346953464235326422696671191182023154716555894479599269391241007655581347409464759909405017075960719900491039979383894867492207329570652406602334531332340236067725594237935921681264115892532619845385812369951290013091497996581942055401307729198618826518845554447264895623099361261125822292657392097809080876585411494122854837258808332456964257302636565532161011732265915096703897464819315289816348949765396336174695756566024369702399587614113302847372484720821865379096572898979354772397526856116655963816585091100047291327632630659440223022228466324383390899598786102941415204035629806696508184293009029783726694077529081074370602847585526518683979836169910754910728479100083588276463074563818437495030699605423123412777628437767371281857346058984757119120872970723620058049650320025821065216941973900935648587919110130758577396246289812877173709254417503823069764085111292397383485626636337937687725131788762403535531980747672330857662813774010553213096846529823616007559702433622264221797205211983087942358095939898438040627174448841472185958127103245639056767456109859310529261651055229916629748256735346690768600612506968219433813951936998266029513554349615429976764518003887149757713103898883177184126244071810343076673516562083083568943021141188205233485228919350960175155859323709177263864549535336332233414690853720979524578710468649031449345259558629947268718625055935729151671937636813488086275531879518505979519207700341960258482164453627431682430162104384234635323300362643235936904757538458529844881121273762321836832138721733200099888998686867790446291755211190393076757194768139657783339751966995895251690026324189909306069094482624574066963585192875859443904236924739491267026571756077495156649864301628031808352167252078275267582896325168629667732342166555252672501092982997407998178232633694350976513289628335666166783588388893213570056832787343709912450569986528495427777062276424149430979348755661343505423586587707478965031536814585652222220416981023988897644111149556651655802206272748033772409387530696195958740511191276964191467778547112747763801405430004006106952002496718498229219930802691560920314914809440417823101782880463328844806075576117053138141052690896763504427045455439515915645013805451281474331283791701481996452154843990674601826217769458338171651775034925063152858148799165240902635048349811365083355811971119592307606480661232491662975976359557093150142065022238911913070814953945499130087522396967404811354409150618292070509358042176366251616122592012779165215423745379776112686102278938094352795275892669516322570060267307851929336232857858498340770383905978887006821133514338605364245279717917680175975420652824092697535750497797417288157529098660649897133339799058873094233548359042556121618747057655866055632609728269015952331393103590094970793950399160709235218263916518249359453493267255587924527544677152723938688073735868666037205402929522650719084893986014025462074182830705859134973007385124203524995739354541267803846102084170459000641812685256558224433804749314731099125103437929361671358635853073630987073773989082291738746583377947365857951171942239290040243926120643318079375035391197973008103421577487132188260089867630829205336662656306019963486868516910076187204562885939056454554661000180481713444147303685557246596284258119843766949724375514647566141346544896120485217686298142355553372427314874934401115661449150253082236460028165604105549549200372521244041377361390293273705486805379959754333113180643157459225858038140698168489369385956147787145142616578539543811818159904249083260939160438121683153809675474630262984079038437171309133298993868818746478955415938119494049032047501115047146148181799504334174102423386452712837723251595136936445327028423272142430632086349885772839986983095469656612883270900587918027263122701018224894194771140882439335067923005410706741947781720765384044261615347927664989334050425686978747215850995058167281680438999418907108915720638371491912905501724914811212631384267847891560713941564072224103592766484306246516156958536611745441390356246571804153916555361442357434574265457853469655142393956805748235948906494456487136326877004332563433654803840210149640058706607640988248499265942227558547776154553208006666453056380389957059019176875328401715373376359535723576546392666521459139428813098127650112048285710433261118482976818831845035410186747010050684094301078981848276346175015096317590736753538618927695388439848204412225915546250240684088852736125527519590365912513891006716666143432282994672161679684999072078612066707582843224392599888772232892302486498043856387744269482595333335520190301106422709421136517823225676530604336358720220859696226700248177635803380833357940921242155553102573172670121686500148425281939702538481149154406017312490080661691248810131147607478373354257578469401335682489034864632257093282047807050039736986973871293293265236640337836014390595683910599839766526303867338869276276674273253475268189117948804683843518885312132288627931520248231893343025553364305920246835421607356763123969428799969594085138680189457676653777577298421990263253473929138038834638044567853572561820775665490456406248169981768388662500952432260052981262274544267737798593474220694208250143063587189442179810054344977005799647235843617008538606480770508784142028214598327770369529875133262871016730619590431311128844412376679437968113195374435541258654747626878933053220998933235327926315462336203280582725331049581519247783033157050060891444114275742799307483419676940822767220716406743198922232086329424213778343042298580867781451296610403304954693449944174158503140523517592626659723607804265369768763779591835082290378111239441746585709702413863364696667561955178613387816164611364354420480701642308029897516637638535628178741649317163972789132694821567374634600201893529649926029981005890225365220192350168947858400266707759836627695461328922447560037037955370939439707364911299566384914659740035620280099465280920393166170047928741273269923623453357421940383276399149227309760360734302490383841650706837757104134487351641860781448308775831579488574642781030433145075131883927034316026157132106889083460737506777358241808600421729264541192000098007285116211624181204341120737084150279711267915625244436934125204609863428016263920274822579036925854837393251581333794629843261452305306994232644829037644629350735521733354025946965883727480815557158754483497135635396221353351390925181501752565705674258088203166576233640766940308957866875947554121517083618837473729259713402633700136633133238674650947264136162372074945753268178338799034568722857950321201852119051724114640082039574199063490514380813404224405925676357362336843483046856567889791411649685321048130155289503953028716530092846133972881171643825427697265120897906626010346196717671643683975114101322294664071210652984994409677722445466006277999314388096981175945488568072601110616800659651503660230979580478814549084790191418424241532907423392163567358854427102851934866707433668326980966813090103073327267083314171763286708359464610451529573541054067577309281092459192948039922246018669357356618985111415131395399039488862502287602868871708099017375412049978290834619460847810161962236241687102323162662913466649066221641970968150095266881999017033291638600571356031307651052795281181087572977601806608465800288921523912188808931745665313167576304742640638914053250738177221888918739886449823432625455282026448822143681230521068622830362258080844300013379913638447951987903381472779116691445950898442337959148443202581406604259696549543133595656595319128033755052806184136306878091025118972356406874372879352110021363394061645264984304437863998122992994485807090476565834102112410015716449036726453524235218779561720566501723340186936135617840541590714942218716124383666189687446469031047377745602696325549304039460531977166900839141764930139376194434674933799888283780517919980062372396902824267226323347370447280477729240966574945712712143469704189955692231643491294814461740272804638366651564094859461961709295834136175293259276787336781014333894255778327234160582830956173938695336498286761290241017399191116527093192934013634927186064909146984942213150788799457731908364899989943326563228674010596992120949981484441616326300442244806581775194979236814278874860844909320068519623885881987609750668132214562607713597234009346099043485891341113087030222013817435783785097513908983686516737830758314088351294578431471136194755972560554760296613000695769806993700251497858656067916182291917052687599952722375949859690754790438557882232935152582778944670138493066682478791593750642856971357510909955072753828401057784889608292311005820582284140335138671122500590207432685293214482756778111886720523426626033040722437287255361825013901360280381500669188117779080074105780357382731943044220586505026068491753325162349149543385916388075287907597914643944700673482902246199358147445120356818346433206750218539032452392993848123162431088927957733045024471916892868041330378093218937723145921804654010444776709689411634658596050090987838806804528196616699877051462999925981289356885976574497383340241972116120158849678876127842078242895060560554784838130758543768342100129636366660745357293916969590293967340631094127592688087207816176486536501308986012321111005846544291750722810118079846601336675527482895845168962581731552330766764582324337888593814244584361739605322059630378622832167940696394803701954753237645485952032503782405277799226497819514794273743856893581475075182534828820899659145598407251651247196897052233447486069548922449038544267117383028552228741011572521706486763933084301459838155421296072142826376065131534365480466321360109605685540135719942259899599194428386630460692637297079036361683944812753972192085548757579937363775747128403725112116935117695956339220164078746934068647040185848519199750493424134340365667540868759750166943999335237175442561052498033131656627816431156030796037496832193391543021463409813574269693896940528769434047919129316888296223124873500731627999935634309779844687930010520410223870906095075347625176545760282179625621872430321740084854930618017986130506915843427442687760967211064495199478578586509207042584504409038116714013453475772660753343277543180392724222272482480526772233867880956292311957599486141248455346726243896165190213047705898077432457190046393104685447543165761718271972087149166553331611128273895687162486949789813398011414593721549224264329042873560712583824208421524535659859294834144021823244119188370737518520031488143491632240175405623100725795827906312855717586523898162845631725580257234015834034493175223188904874956024096924188736601391319220271159218742535959626115502052036175346198410336255581006969801135164423971584545451376226117718311864644647339020646631633784124997673258416265862943817100572478286125808699261872117076215174442257368373353639024020415959518289158128275395315933923071840228104909841078003661061917664461047955108746639541897179544969366105889450540432889525543589143024119300307054092188559035879826671838718561644639566845443062547358858763275838532803356368779506655676064406538470041345891203175359284581183615701743765322246898119300959368598643903163620601681920134797175605642915174930410455310223653912937784745285545011530126026769641315916110499317809037353811528120882890316764753477539558522713003597319311880122023106801359518007663747952601869915922430319079368008267309994756766221241696956096628848080201210638237712875846726069161862133369634369274432822636681400293007661295591699392933636532148858948720786805420847988253880652453991329147773203663978221750925026831409273576038118915340462163031764411488088631321867650499922619022486752962617557267929285263492666975216300236596360081404409769752941566880848069994479785146944732741411504244540648166195467947466678412425813425677411001110870552023226640478879243870742342684520910731675249564971306385779458339763578787309185294173058204296697368528736956902818306723282202843172495582487926256786828481193567783176132935379096169941864443149388732696285712339280596957273800698631258075082897046058055817730649163406245577163317252898531129138315915950457399091067302374493690879547975635795371828025449679919127457422332344671344221160819889010919689061066199867107042662357209451635419713904980490275525839140836918457027829988778773174250104843185304130112792780291522366510060149605806282723036102547470597055510802832195256185179730520355108652901332629798602653766507428819992635634764573808353085642700604023770451417496212508065947453535489651092048857575423097363444428005900222508665778465195099983589287617149944857763941309932757863676105379516013415438326729329283089246827664405560147227532289702175504685690811811908669430729773650380384624371711924470917250748684384653003606511780380163029600701930105583968590836850231558046884451408913813832510986471811257203647996962557950289476793224464036957466490237772296664141117852247777246309908768881248770775912089667190145875671539409369432036065274380919591089727543246602123822944067184193622975744046917083408292708084733505743463370708567511547022035347117566641446172580442350035119701498813897098524662433406054938279385167227255741619204332042281783934621972357323446960347888678402032667689951796367437827105526413250692564715399042628352404544953408741828278031058964929077878099393746064206339738744791887177237691983386106653401132274091123728634564838308835325148491440612971161259323367770596773066210717369128668243451703161143659970048317622673873371776113571771170123373548985711685777849398282629966580940439366080455055397732074316582611808780259766990564617047567587613496864842598863241723239516763558287987082821341002402586646916060872516991572246422051983087035957213875468383302946274769649651630687747599299714081783199067328658898048975420943445262327689480455124508148462826890712143559214059612528423710483139664077082476860789842966299745340958580926604175662176787815032617410410304256029941140392358913928435190646674772079971578078684531492090945150127721810991955950466002500247324966797762654966543043682298401778836442438618318171117114858689329358507640138542782106169391681576732520069191132141350891439864824956481839909153028437356710347060411142829930231042758593277592111238793236992533620035591155153856650993338597226402311558233234592299092326268062012227406399490167307788252077865137548256228383947583263801004959497149270700074928061496223512379988416433597407808181087193338713028665142312572616556557795796353311197977287868891148203388471062363610742832017475392379268053393104480353165086801153251716732097263366128117387606503604809093741047201710122301080128299988015138872620546548025740219187841167735110435066100908056340858267882882921899217060218757266139782956586457356866925732517493973626853088192179464608800637826656228849238481937624464890834902566584614931283903312165006021286094824244363316501043762142514682710833716358965778269139197990531309538919528016237728415827646220910235782834965574676041253744385389514478704750328198955165564478910421289917651232262322583215254889642298379795619167587515934931537087193033466872237804702104716445241519024168086653850323904436635148651106122135481243798510620785947779650977403109541189639211066039098480915729303255622451612779112214560109012879504595840920434054060283663215534017867219063250891656760352780869583448929600928053738058965153453279680973227741318946807288078023265263679980024968832051899988944627585297351128757859777266561945570859922603685439507596301235830457569196861718657497213050652123200188825679538167441788714218525340447205914688920497420958694031790394630492613909594588734426928837817785659867812723642642614552417338419472844689475138237305884101325204686637844626725488272492627989214233562095115522772376056925360724719238711743008030925742234776320586431909825094160831609807087115839068917919518312417891239760235142957621432909870528422259317858355933350745704835786898106433962528351746457699341218582929394572629394775418402013798524514902821203884988998031765647310989593858245787388856200177689778531932693001147124057392125263001317617099083423011376539883947160910543531423379998841601810110572669702791839541797162753943358369768671342792672813094961633784448108410402996552676769220624547349679877393286131912689740608749405566624087964145251719239001164193799640728054164323536226627814260038362389213422725213271987976523568826852774554600590793380300691362861928062177905961507090370051968643832902376051304691859552161260206340819996258068612393890831970185703836924779881050891893589183263668279241891765383509896157955712150576914209626236599419932191115963259847774902496159313701865132122350868353175006302275781961757206028272037014396489678258316295915277028782218944073571425500940185616781412886226713052090026213606356779664828689427256168114462395424807750900267780233264165558993181263595618641615090090442140552184627373435189901614726617455357892614414082805082689052850459405555641918886978703563827666748559644482462283104017465345518545569205436485427853918057931261339467373212186746584798990731737644039563877589050021537829796262458727134851022522471990456645325786380643254466388983392151909760992967152424338818041915900251860230004632863408349332803908261934211383745048841090566805655073492616522923004131955608442836133482374932701122943466151115882815030667414391591841290656336737575456074964433597889856377480279607699884252184769772056035610958069692831888575645876889441426926264924466263057308460763770811163958759509101928943673675185221465572991154097059154295201274396971212748893091940916554707001574287660550166730794556307126468654657214263151476275347489836234865115890872587455357754588579470335681276137958255797353610591047128621211180165001674624073884877638256442568697085003939268218957747661282742274867141813302764210170698781662762986963652330707441608892062682756116846510263526787963202624021970655708004798226366482320617214417946743648974332172745825601673108554061252838932090275188978584811120994908442049829767066925177087105266160569323260333986672590871811062689961472265204512071065053374351463697164898331555370147391873090211717769612428459784194772839974943606569149448760879425540630822930261057771289193384907024123052797209154386243883558451838663808292022158286460454165374283325054272709216549024562588728407540179337611879300923962069431876727017239313581847082713301301522412815823020837624057758838136834437422795808127382021842837336802367527643652977888474277676519169624167998052623665915296836732881656581468809309363061273891621319418628953489373605593186838098145271210433323046792784795735462259313934891201433237576792647817579985664777954310856733074585007113799755748277199294431570672754828881851473970896238235867723796330995327267255345355035517960084032847839453395732895940609176650057338345513980848978996899054421366473424586570188875455235552238498988032707107254852325756347951538718302953679203634255475317674149345827495118186684409192218368657644475396606694605523010382456692271677576634791331101293511378806409737023077923061068239822901614884659325971391312546957247810608597238415879896305795007587568357822156540637936735226721529461544955856376592073513477999395827771326195102623074705785506468814453253990229360289908844350056094156579711972544155708375598939265189350625328247456697156790977652956021860843870811116976141789241777381961407972417030522722497769336669712880891777174303449599025971445288413359265835395700778433757946089672184322553521816564394667096571817695449149122772004474127940265127970223462413691025171653643588771076578777863406539517451571181094528576142597931517528393527510809192750055750338010780837539994973416630262902083539598616189960825153648512729315041581533279455076511658402227898802306573308157090589027868576718939849260446194777379290939300773693881051808783381457081198501066911104825519420979321415371848882601807420761787264743391554663178332551132426658239959487938942432984811406087993912098121313913881455479322747167156270220326899663622447615467831546799066449514658384600780665194016598676870038743158828396014889434916925921594982689849705265189203546196353289409560936443584004177453259439938148372439219619955490775056113378640491267394050203434743629078177936836309679935241845224319074047147450254065415466017968793840882418659969495765800808034780990055241864410472496288244987975469699685982798970439624102794539407689304699708173356065926645654678218302287479791158708397214030562400733801386674758857660116377271406857536960452781147925107018425140708107296450338809615966883969046311955062891994442401508839983873893564937248930977784443231079502004730277652300118624558109209847353667914794416188576618431910743312487136969741718226439001308355870459477636724393103287787638291294060505598573915359213697754275320677567265519765482682150976590966008019190872227225236214470763286039486375670866200021817554128331457770695062540191784306547149447514778708874400837535442050224114743548970337602694290434949055967005071645796806676828731301527001346998407501109091687071784602670024423801584766699007102122183021785115787089850774042054367685609597822343495794294806265722800098332524811861907373055909386039326703728209239023189833841735739967783468506116945200610584685340645350996099998795674158138744537534305867260607531644348069589305973249937110202593707649693807380377029365750086888509574147723177011596568720426646955831402999714407996057041673158971367506189494124677888745292544071850818817909024503987033580734562889472345541986463008001084376944600800946465976814867673787964147778906457347768609878064154542339608438328648324837864299199051401998826552599385843057561129088790921690908548128875919764354167549128374579431825247318538243258219226213802710674358909369044488881771019325521558690069922243236729326722312039425115614400621237649108370962806297888725839146697183348322296089903389097964280365151252079066203564569700791405400608949248877362741773684510435143338987893081655603286234939806966316013590159167305374484008420525075405914016728237972945893219242096383983719785737305024945828529930277822833981876117719796315352812299334225594782677132707206411612801993162491327961769232972288086923870864047366422860543624061234965678409633790510792789287109355240977646392541012415456106929817256609907561782328238614819097739238177323784406752561116265836694337182867301019654361835266140611043884868376725146990564441754901071008891798978537685272285049803856004094414587907489273537759990958830196263856873805324923472618122822090823498824772261678871641338002706592489580337017093356712880848942336173009656048175786404561020564869149772691048697659237363908227387582427144494672394646117351973510451864064679551101454163133149461502022399803518316026956732116180949482407382273644146990225490860956390008249451339758135972352100753981131864180086929285891749072711080019925662672515428133608801927413933068513212762739366865924401382417259073651034598608739512123170036961706884633874607503481052271048007016236149801953096027243528961443997159345180432814625123458449038179593863082321738752790811002242039624998381376529444898332364152622209527843986591994265704092474896557494091719918577109494309956073354320791822191622116644939376502381352708666815083073821365113914001234936992808632596418267849357816638358542806931153088339029138765186763591346821254666530862665260623643029690107737020332628112876762598347780400982468596190110842119549212780636121247383258331542934901721949764516718601597060571173015524960516899917648537202431264280986027785600639055044381946344602188151127679631819437016394661905534578466010164771309338633766408425514011967434238676636821050783858069802738189798162332857999015766211668940057567123631533073547263857593109853133961410522399446776753826336156911440529252084714237009397089239514305469890651176596294944376963623825363804574962396554051816947340908706885336396215631415815854154235879570228130114874217691437212869084236460293620228027026314141494876353718829294906007498239809333545891938561752454660636161229975283753844455865397910828976442551528081616833670444542730997788677965628712202666252879771552918723695189229159739082484108860054829562284103625386856688637376510694552325192720540853098475956362775834824538135358492687249575316170068028465347944343223613653431960345988938959676660656002430900367319338542691398654192677861051870368633081803032357011705974171976871152229776661294624732230997383046169118244195790331514008456524405558293876199333852237855694201611738844859827404062682752978337307920020103975232168599350590577433421864343796375565319074224954086479858913595422593949945618859539612907497043028551020594894726249361372988346707434438232791007851265837019207099488209941210997956940974534531405650061287439765265317662889395749560022244859634007016748298850532197431137829285604302865639751560651445523499199931895376300733041458083312490096680994567908631623654936146581766270308830682942344338898000405870787685197268528411181233900545473706109753514963339057809212207962262440114060524376875917813224202168329912370558767765319497274447593150027186817475491275427245926780669376335409493692870645552535295912760891962551449013777971803016698815137389412537463811502437450715011946266415090668162260140096334998329472267254041910398646073827645679336851951037304841838986369645823276518918669926947722339362817107629418658829297298877000850782890737754138679702723488541560305477848240639396370139064186387901376530693403959564247353856711245373951498273369929881307595746090694530521680232054296468046731687353211904512302946060107711440701231353256281894997259437584911008723866598733335981163174642297325294496311987859569931486487617578011476222864654858336053650525975605167326419930127309645869550851636976682486000966261274120985653338468171753650886222957495530814049320168483828996554405524721159729512022321250910813137196304989543569050729523821912767566952252829666024371242544336002550291622896211648096701065582305470324313554446837666759426920173638526709483664056913616968437534825061938103602121059604207454164112526537226929035026229444267846569009201420348278917751722087181487413782580517662921608802972874600737065538306168947913175179354811835628657630975849298832538064721072552034270779622061356262508025392245209799670067217394813527047887996223510408562813073383034375185621480688342372042240989242404052442335230634263526984469413978605797081114397420621455413574129933108367454811439120026592856041665825356710735654826766488462377952142898679230536218418526907386358849422495774497111390631306360010620827073979246794768893256169463763624293340695589834100134590888992976416880443154351956585078430979861406625515395967034116557139090852773868176077360663230421746967843257599011167083450982735677588202173941001758263950983852873465939278992964540525438512577873263244874641334709364382582354554066211535262205332915509899256918268157184193561256822864076403575417507060654887688650321434154046225853857696396570025966553631407471497079624861547257761190164499787673637875033917226245260965499823910651812948557673608949634125497363053583708519134336683019251521898372053160083855634792729737029000420337923315733502508065658543362779136364486351802706731654917701195289877103617311521738065561458930524840229032690527086057797069132356129478855649470839727926946360718404214603446100084259771783894846281129373990100420188483221761222209692598812631861540921017563784984102904915150890619434156954790450532078460924185279582450488001975526355346623776364639192352749568767952211174642592117762973001925635114788063359629927777959952333135783817910089692842777631480039118681719740546583354001686716084496432451942871310957802588621919450709303765331626237664455108147426340163842074602683155596281208843071703078410809438884367811921369359487698423978553242870302818530621390845410465007730671931941783176543969946355254642757342792800850164680815267741532959078314123088923893702411271530508364042356602176715671597913936244401947712707153037833361086886543506878108200829462311305598780350395821250527615342964600302406781538622705930181809434267928220818336262430117737814638338026137962353208582759596013142012957296978436204555226969716570912717518435953581466665431210387963290874271633584938715193907630946571880334817856551905685180981110239804232838653708826405181285713323344402042565686057648676753042348833483649127282219409456554827554232604416422256054315155542990588361720810256513292339987015550114738060548914835562783887662970195827238125412170538795967045175569344081506243447570432167162355752184152992579871555089206023528698438940927945438644703919078305150427614979405708443133377033861613394915691817178829718321715511849786902856856796827640369418725760636056291757331436483984738473445898589656648491697419432908803509787198197689240212735396888446229386401256322907860530240670121256311949688621240156207246944908257602054015838697979148167128995771629890695253939199568654898007948908397129069029047855593357211838490443635518636751046259335975895835911434582884155397219773928620897304033922360140764637079461675035366472123760427395074838633005161987063312131596779506180526302576751637308156048986349939649287720847360509816668029426368359337202535956491032581667342855912671729092159320355680592457713280040853637725949553215193882166368770446937464679637299837793428175805490740043341296511937218126594902258634805207368775278043735556265930595662947242436748788928229120918950553109855270820976773687899760078769786743543384472125300113858724345303353452663181129906267795145498178596046438480478759436374460675169678210456900591703636490470450207402677883480041803504503588616027713272409432794967018936035147145723480203520628915014693805368054438313950036894536675180633662963018540548907374706311628970125873321104368063246948191630509865555671772364833557125795627744450471385495603511720687114619146293104776128485244637216977617360941072740452309731703353317009463313985371631366035300850246019559451972802337825181196368499214589957954376770209684893817498739067848313769857449230666954356630175603122521071564124189923861333080630116077854944841470695941273201061269256916959915330917812056383245107933056894920288401998651666275783382590718700517919397753046586001419246265080369528202145280795310739759508704268003810707880745995430142867486722800799596849780517724283324791487758294028895450049478756708770453571011153357774004764097194021111469345714982246406105233848976684993695624238637394654410474063610018890511586592275230799327765250647440415873469171567364874000691751753526042901283949418445962109963170565816890008573019856128436689115963971287391066542926645138739160925513547394793360539517562394074106855217794254188082335446347709697071380939200938753470302119893384566534230175762182050024633785973167794392965149136498015039517968671863198253131139085300849668556378974185398795369154161593082167366152000174137313000171429259527430797545690373860489252913494124976901949123189218495168802415623083502378171021726046571104707666801880714226401884355316521880741542543503609952159922811967770142443240685635422691567670814522115544796761010592801136619684727338113449295751789670545887707037082399221994322699933465347596762802105789719623652433939778361222168581822452196751122890326571931104752566138278997954442744146933486209941898226118098501163231590211511001100470362139087415992302450373247217731731600809866468344395932457572018169213858964813775918369564057164997292178767377041863288911000673777226547265460540480733505157993882589925962490231429673121380787660568704024691226029302679133431845115527746437462987349251846653400382009399057389238713929547577966184112779846084370338961813007472365628879952808578663239873772744301474202533742726082297308648502225113107742319461124211241871174745615115769290729383954437009313538837235888593699763030399964805813041448216657445889932050962563407162496229916252443990388353247967398092962160572247500438504671658647268229125901662739063845093158089030959637325334082658550648974409265468171998108252110863090858691998444408951298793576317802352125732822235631872902369145444647372643063553919506133628610684323233801269451238408687894453578596112830787856610926623991998495664379931836350245923497293344035384249501709007910130324030007188578363966023497685046490621793603430292518663268224525543406155178355947832082487219121529452740883768241227227351113147902371364616879139180521287304544976847342909457203856019230882843465399733659386392651724954702158914718414951130545390827615436753238950069544232915100435992184655721781897347326908155071166898762919351768659429263186297863725083281989507114342271093798836984048587699159968800121445991739240063384431027741148010079288596562453190329345847442406513210312078620215926707132638088072229087459156338071586020022955605273883179730821354157090093638429908452592629387727899878466985438069127479846575763229942100078657751161654261069192618103638947786297957836237795357098099886334324961907595862860515574154803145545153808821288116647855324318215163471325268590727076276607119820472984617312973630942539327994369060430484774097231335253972557988028608986510681596495040421566913886182692237797625011700296649196955312601614565566161515999770246433004914920171407233063259141817978809860738986208655626610399924212589284196905208963966199202859443605415827223096508621354056314159634135625374049009806956172671990529157884658245827096859411255860941834205092254803775574124618726144582785903490077773845496715618136884321735093981314306028070159073396104788475300209278631149677309390259668938223827476368835973967343822599641734540234355973315060836751018581022074171496293205286617387897908734967288422255547446172953941963408494499628463808758604629597512279358328205860614326787677925166825378687984169610135010283305058059309763819369546304757398641269348076468924325066875147805702178037309010404617627635984688684785427515312969897784357577896915649458065332635487793083042505663795302694434865137254565591297432612351489949703817050455667106009621885936635489328393511396058648758876580864996527553895497119988244515653329485253216450373361506258936174207476248730543919463929212801980951368268665063916173136350532818717137723704402247193518426883259757201744353360837990256446937793751905230561944197058293088406531589446604450712132764075762561719338948823727278639677468496962603248188190483989068627956231444678190361654883457062758426881292430679445376027565578284574674358560149365134799535503543539784533328725855458202507326601434302452336087939261353980869216742949929411566585464676843973708506175503583076378203289246652027049393549452015124968183719041341675398270488145692915916571088111500228740584120803682059325273751440969483934038547778593865517381821647115322827849930293523199500691409346206510396467187009568801796308524418689743059877942637966613193831028496508267830837574018572168275788931832484505555172249063291194300869302073120490062200603529287211719248771978226364809993113676921823036336609416713818387406465794062735533197718141582776733410360129246764256418829557289547251767746529895567409744015549077458222124770352036022371159106041404370164013812502850923754123299080471082096631502852165397500208826428257792721766204048028156046544014475199917674679504028513841937862429869607149907011151027269867022666232509740309312339996093803752180016492615484437854084548876457733286885802920565298881873398428891356823932438815699205918566439507511425556047686835999924215521679090107641105014583572298615099190058684765700942162255652728162571088798110680564802060266396725573301885554810150059446508648655261918442685523760624186157443403470517845538846150191021119269208948505547682589952494562554807923054344569533688419078560125362507280624488069283008739912578622555248398795288890037060275582342805351440037092045458369822005604218303648491637606501983171298833166175958428320818287476601152077868574015915881933745847613559143743809746098776841359937102116037254666640600068087734257191169416617434482137239119212370477678674900138217614167403091074702825623731247897459611440562491820965412289295746435632452398005747622313604940979000634636137820787237067049642642833193356748764367274181314265416613876497747302050396687160865144192558861991906491792673415209900783443137048411738359134456572265791806524587594484647011890013633806377790214685105222473400791579378997775390716129247259480194568767372218541889088539884546180031872992506944413506375225336636343206826630142694598092755642905875023662877536526163080324357140284213141978421187329986046412989031529338236390379775756508426474619896101006488542065832758223754830296160408530202329655738618524243628015293896216555453583486495997398771167915553062180168545518807530278494244817258926270979742074252519927564935751818422355255382457930655421455703716540048397735026423073464621147331082499623450075205760581011760267919042401027015120969483593797322186235795857850720290340078494650166615663405382692969075437557658545775364299811931740692429111272765969389592895093897592608660627711950388726829953251931203444696432946666027208329714016071810626764056110855554534923701652250994009448221907134207704774894888501206951117617811133895598898679439902281845141171202667704334728023999072018583762663230923305364603690095258871303640227516612808238165356947323091540333016922639600682827639376801860435805862064096500908288596737661125338147236191728301780462546679006479137362079954745317162081687971997393166677166064566135631987573835054582925506736216150912642555369311213964120631591618310633448238360963065012610833851032578101951909510856882558549275223244684120088006823028579999854523366843683332599010095807595459514042861676035657179983802212921669564642846011696162233523817786233461282667289688756253559221386705767883664314775662947448849222246835128917784064200185131171385927442605434047774071036405781385948701917911080440898173078313088646434763352013209982874331188920522271551302026716973322585400235412157463634106180508979248309112923210628224655584912035042140102942538021469549626696247666435363252558536463871143323350872552259942915229907910710044065958212110768897905092002523767012230087401390214008637643712376093759130513677644574207836321738475335874814767752685867750445175879896083019056614428717092238441677459136879936732849819649918147831806113777605389532272357079217037624046255581464582472730631797792704284121235235119916228620252462402898522003797189281292679663019607594117094281302673463756695904944170390282818884264061751813401373943534880907593193244701423161125520382252862954150411929295134516004286123992066849191679819657360494376650560680751295289639697630776587825904341530956443503015074629378484317567730333713185919722680445004981439988894770636175473352038969529644284831400177603441297100664265569957474401835416746396345924564786901988748593064024053159042570315005688663516603319212566529427221454512524507486474584547609470379934056943251692521814930353547011009679191432923665913873045465974156299860565395450841116273149202455416262467972730216578232933226854229682787919152083187661876400462676436124178585682099301133681040717501543522284260021317126373095162197496429981670275005621756085746890820260590413203023113187754233769751185512071676351421925755502193669675120412073820070630698340482820334497702686050145708994220549486094977805772317467203288756612627657488246895700920850262881932790518755655053564261058706334917468507577141364789793278073808041675047697895057110221830017674968057856701743854768639082095216451553781888547340559882594731804590302635019228143785486803564146941495363196319216795527484594779486607685009971232259729530064603717115230571357034745922471318899099323381546584064824341238938903251841251420726766505352803651073950685110231076931327684171353181897409451697756220343134183842688699869312661124869181110528574624035295417659369718838528776905694247511862831544322047523711508200077647799714813863762201315270536222766443837414057967743011098178041698337089285123642889146428267601147873289820230292207140710436584524823738868424352842099838192668602866121497612066136645481721976641103964736559279633671297373060992734184919216511194647662062042421627233359740448157439397527326015318364808497014158606982582902202766776922108143710706408073169411498167404681035843556029198566334482069405079500883268845780905101121497501327136836243273502172567283922106645920208618137771080508670094554188350905412472149130874727862316282295999987299055860555987277846786948870758328187495703131868309290479643341622357018312522286929633461173239193850331375235842262131878713867335385881400413281443037108121623922839752760721346290975221470586468142480281967586765892598084351923758086399728646416771747685669039271420803458666650687435225368680085776533470107278823240396612312656251071130124051983175540417231699722599332334424123681324707041383442251870870698175899417826376899622329698632080814629115198557842868115048367899704274692461811316767904193386614572347153338253590666269096713112715797866878341614647755871028630248874855964924347450757706832174468459302156399135644903841573743711149251366483120758435977326036750632914194321721310945091516868814043338200760157685198301188831183565380245810834807756003663422548165165684637210935227446695118826109849443879905134871089492887999417312811734245477802928784887812478510237157117729607515058693001437649747806617163815733758319271235187320199734663969914316172035917617154185851554537482049130401013684590576540620144179662419971416433387724781421125317421829469236491936853857153345004918598547280970860332068110526904650566941049134937091542271274734649664936771212152525208577439733375683573262938017981563089200588603615374043211998289879437895928819386955357297017493751095618243845239872497600613539567064687094208892522757640732964372039882015473195041086745003033526770332321036489395430862225881742265014892718406860831370114943611932953129654109968206790081351349615115559198000896816484282268979251190174690861879046854399440091061354633607666781705540113907619224126137685789434400136619720681333096757321280064286479320514523394011012898897594481748253818091413029016985520037480795100161851761055209154003220532766289098628525784134696796446421984138426680694047841366102655122504799455112939799116381553807370458068513398419322027036674076052256092563971287928336173053911638763773609947742584086453068235915017514152308082187829152573907569853098024201066178828841340250066525507795691968092644065391999351373444665748803084568364728817270122200117751044865333723273571895627763250010765147117139929693105451818554692026014145764844629880097050813460504523660345135262995596302551845805048715687599646341689838419154132113605179350197030248181951470506094872254168118772410898803847564823636686209430737968707424697999284116812604260534602056217055604983097879117716956538360284376828604584599323042496040648591162006487335033700979001329378852137726476572082940246788425172104589643650042630190069279548473983198627529720516033446353841666289169069881996224659973884419835267780897066551691493200909264699138000296028522532224600637064391684350434934753482634209782979348980983470779860667362381670265530021571331998748243829066130075064315810857065402155078158450717999317690211759590733088076014262924688124782423368238110729763826110324723643553892472482384771088575988430769036433787538875285482081465296664123058144417912870137388069167744165256218231410217866833007159595232178137785362267363700481537595272159503315914966707272878057533004997173924026832489373579552444872191155373872769252769727616204961944325083400949373206443821157333677595576612733857313203116824907559221450062351559253955924072165336318322927496170813147826046204532854935583233400278938459090166905753027821665641228679731116101772096890580587996809007301751533954917676515626286716614123185447345236075074754055439914110232394262779644427275122152878593986425808776369346067760007641758932800777497840743783683665585455221548334407262620561859486681206163866268794957090592982946423537247372291700021251803408611705492783403851099312916495212449046636910889598202863621110613627890169484022372432777915273737110725431049711650151618017463163682294942287675678806418634846083600144764926848180812207031596249913023501757111747098545194899224838451216158682669900011401869450914480843171091467555076558209309032940159035749626918881698662153659605164454344511239739180892250256939830468012026426397860929456037524352618449697150260176293200820352938969774960542350117143628342496373533968572407697741371529703569097529392573537071383973477185778778849769102693789937340789734083243455232915351117394994032048850479892179464225111183745330726761947162525927999016427784445014401072800068378456401410384387547567944527532287476088951726338205089796659679292153848195810055529766326473197815083658399962393242269958777936802060760805487997292658853030796076811455778892652617616896885668337356325266623727720865689784123703128488264193175243909310571991205820302911165872915566525959313879032270529598976075739991643484403680103156811595911203391251235177921951122867522157072261928419364134026085464371063855208482839345049182897685046540120053054891400741023253946865043044328566440741726294708190592345985057204998786532099628262414946766553173687526797940684274707905919593754447393260277219795790271901717576075381649212720421298988250302144760482706499356577023614103145543983813404577993344403554298572375815647560338077306864971913693835249745573324288293333088282970190903081698353432068749083316533575367592398850670908657493911097189463223587925933388040789648871997266342708542985956676959477119233119377212062240000719294701065833075415351737696667697695455027698390648104460915708814738998501781566307217901596792918580036574245317469057487917294618999822501697755070629407601243138320235362489062024495795007012464566467191370778021320168367571233957488631906660897030704970737787881521132104619737861428189123080113046398738250945720988416489572270383467668284321790508553549078553033735007799465486162950054169712746469136578196230351818379444866667593149882717915203392737037325218086199012559771272826983031639334715632689070239354379809265727073728296570571011939996085380061654429238078669130302995292814697710708858688379202993696046805630237890972630279020335978844149382022790101252720883175105738188902277008115065762734094540085342599174202677571441406832850747962827160366557041520441673833482700414474500142462337426449578963963665366961995811913156783333952267343979332578459585003893906473979417103655983649412086939873791002774406630699269833789736468268974789852223401931635181085111318515930260665059815283297797278369113659799539329656647530029738501557361260906851046033591348318756255731139232729799672501586804099453730224844559101162938568494218976804499185546099773804211271884128196622059200563343792569107579682164133280180694010928999905847019860664941648699243895719914275432662870033695805909655142258900802078798307032884703279028907652636833844561220857079474368257371668764742000229304993549990896352296904658433467908213200287407571027212735065799308633701432176315820657191538756858765942097911319363560663577576393895843469672050653704459376206796910736604256334171555977600847852236376456089695694061760283485146323890916473240515657274669668384608435831404944078895896863013681709259349838393144648234672563897984759144291158804344677233885501617077462493355096630834973615246802402535734783295331789260056282431005374891046044641762947691490934054544911979416055261299072397088080035144431206262067816991133050468845253380321682203287468634993963855125813019066401073264286050408342355700495219615561753972227570486123196498089441074467314151548166214233497381506005158386095286085596717991535262432157634835336331024110148965560413038676761464398601893806886158750984118388846230973172875501537167282050907901117474555054552522037995977436734328694016000596940291872681390737924408882721053657081231220216871355849557994909411795346902901288593474532280822302476891508316121102699860789124715138641509402622527383141482264523305838302884989635273471725883268166117228900459209979639653619130209591649686286322181760797508960824545420350526606635599227235421296697779943374471709538173516785383234589897809774311115822965891636671809599108519861575356144822595800014592525212016698609316713839703047131974485589773382121532373529741343964410812521221976191780425927879678932930708058442260407264734777418955082104034896736970924379304118445218263018636454659567275123193899806513579819817469173552603910220139829528195022599673105209141199216746829397651660874846058784009100318741676763912599755417328534106490683292424721058232663396813110848021376262349969765981708303015239412459681625302940655775561854750636450855608610529406598925035156090188232965984241507734813973533366968596174284374250171430528986652082408830289134362398811210055566287028896877271720479190316570573847373573428488072231948673475110735310149172720863931440107981463816429818032503927913414129705536526645694107304890854249049080121380602447251100422760238248552637482356013432001848587968210840864953031700013464629548296257412465378170012213656511608851236121815714261155528999307243911256171541367412610391846247337286155026655681998914372652869453797359480542186551395846953801597410950193739375806721538061991690451995604357061830071381497524083290788583944228942178963606000175581074536036404401933449919335809266427069078526778650583829167935687908653709937098155850181247728022495917869022574283340297884342115939766209932890943287491865629192991231230080370483790346736739682976163227705069897527762408049995421878348618766001110576591859465285121751884744973941075139273198525566311978438728410976744262080033791047196684160338780892318089201373879134347068632183697858289734006004100934465577492310016926999566354674952510919988958226540695430050765214864798754901091333092550925312058669031986823010235673222783534991539034580604149148959726297576964069141224867513999459351414963521085580813963086899604824831206655380166035504061543206700084532747210407869127331732530940354455390257466481552594284021425766111264395937715126993969016241665234389709242451287987119711040303695095665632302369846959368927362335001793189633151733602520084619740414734439846548585145891450906212260956730083744911380645172531840020606295204832655241550303650459366360883738150458565793231700058711421460771623603438828232978944700627089911930102182326760859968538509095209622656484041744683596654350323890840621560188845000768524044199394639695599444126647191498473360026777087800226805034361153989696634969488505894565211797183867429950350931769755263195741235762753592007151545556509188217947381244685917877358654104246882263377076271740629111492347958955455869076626145208466459879701428609613541769900095411055819411605619226016608811161871615147612002629906035796577517465864496820761827896824315324738641558076139438349879365882815462661548522964270463458583444455712476736478970713769777311808003442113930598584729080495278387522056650173034702590095946307507545971555741635117798659788337348706852214595558042479339370820227246836491027544304990948803382320293385230624652261720044525332423626590170649642209533015249320297141606944810680071016322845260472299696687539327581204688992546156524017842201133318914406731257281632879390692017831103091292752827067080159822198241107553326751320504688620121121920916294894205292788024242065312894290200826204447463968358785881444018489860768496068907830651600699384804137624916074750121885182710692490666977995137106375068681881718317604852656042335848233093622974801203729960034033403126732027231670250425560538672959587741385797851578044782543585189997831570540529995888542187634484185813067864211950736334127625453131617585170856598070798946009529733639412602667655418441694670509237014330495841829660471802102683886283508318282028206260022385513317992887162211789332822480410989003279654323284114979072908616154685934262511399662601349042616280361089743113824434067545644730897047657480892604683025600406576205667920476026264997498550611248959110769410207424880950040930372621971168630006573610767060686293422249812697502106095083424294673328820019002494972903438646907086022983361423957108951047038829089938871275910993925144652162918881824933354525010706568440700954449379872325917382106038019925173986116973137268190966721676902017039396330899598848882355652070587212935796351413392832612263618695641261281870063915532395714672179580570640583831903201607798545937730840644003147644094948773296271975572053716705219202113572988399213719149824548669200975042687101989466471088971710161040360728722516522134005678795662945605621609699376272935666370789954710346772396967707703586450550681591529670559702820631463248842397601485858541249251039626300829391005906518310593924801007793014517263613285295281352600296499702082561844296119618945184622579810728777590642254460878796505349117937276382405645760358098863006348241329427370611225143535341243113991754412393881064223506628401497657937572248629201468832973475599302863269550554348201729647252389842437801954594176670627870823301153997740207633086670646725181832824878612048423345729136115939605475583520795783940982302838875020092843606310317713374081030595111142346400822353328914778052796436726231918008794217231618011370072494955879151984740812109286033747336603169732530406905161256012916544017245453197458363837001621838925351925640820793760010258909754205307806508622316053975130514004988929130280537153263924953052436434284400854984487341864393416549832881044895518378667286855147095073724575479842221287286277352407290866759053705252477292421394503727754090847743247762380302430964727280237269956138272481287671619541733053105650409608141073034691231887624465970203815035910262436900961787769936174133149234990016954317059746258688143402981568483624976958735563619171864978774356106564587790781045739350988002573192158206214471651757497413795199692724648073830597364380843612109681473454574269285378532459491491507400394297384781887355240550491552818502727125873501966707097509564956890086779446665700905032159570680057247051916986591765321509955319604164142916758951521667723338867130196619292284260654466142332916996687604085883330212485574227243073999587069786871111347639570999766035575027900559418918024836663802236697752150196516754042396771983760294739590633223613314263776483275516745350667778682439499843654399799797848023961964562034283500702926149506798346897705759667959786449249259873568775089207364914160438411160323774290259265160053603857142197119465852631344454827545972384902354221920381679562365020859737677115336975141736479862321497734879390185634818222457063419490255745029002188650042557931168786871073666535721970320445757048803151862573705711088701948974243195255968212374853418766366648861710724337281235492777343309018546653657768306762168872222744253105337059873254409144411603678778983249089805367343597304014184104118892189400129431742926757270090790467698035563349460954122188542280387597307580311347944739249404307014836747530778911484023267141113654267586761674053508370749244152346077735306098471382767332749817561996631224789938154550269790279578327480004284947433739976595400178495692126871847256819675260751410289857555797378772882203380002603261519402483016659322319140468361532608916850945786419854689248449454066457582453268208854747715371057449877592984177384573924362836851703474309035392006314106853467758035202770375938588123746133298561324186815251824667165324315301660321925399356458588620703597523829802289350945678598974285274629066826807314589583087853974128362231169212451911997737306706174308911844456888284091967818475806513195080092652014094253628893239288723234864370816119237988540589532632028949089532567710605129433156054235434351197361786722892086551749716396027540337001891602955767559695834330036558388207026091777096714238761763114182938371225163823651363856082875528903136205740208074617013397079926472265133716259381312217914802370679009132326234208484076041465416457398386016058918415182383880119884317931574999537681584929815335354067445656978825885423743263927206874367698042758003893922997157974957642587356404573846033535368684753940642643752371698318915488763251562418170317334081352289453453998037006893833123681808312426876976079301837629865528568679352675187197136214083961555513302625646776907216808182063863873005458337880063090141842324114486236647530355815605714060292207938054791247675689506702076118989847338501417222055652776625531682404926585429492038700082182361126972064352197024336096132143627704493499293070241245209984143526900150525273039305516325985445053006548615017030046584362281433859838891201003283799051264149270800898216532964747309716431098955645543766981148385647416301169101110204962027862518435833829286460213317376832344888237202208482770997546272237716081686044109819447221018832563472471984721188939230414802400633405291404609905655584962937477583130170715401274957898415667947829203538266564006969101364426622240872905367466285653489862831093821467154882387614630367959308191804350923008874983617405980950332766717473309426004614300204846523958397181175626129701221588998507011444569173046398817433286927077704512772965563428311508612964695028495870335186442752414413034911971550695759939663358360610045105338286479892952851605079949465567874016411002568883251512459343419474631953700729097907247589290285845285567123080133646240250288845590851490989071498347007484794106680467144268763506059059991180654871726221829877837426912487146638747114571667232239464954158382219422682587097333474603818183117127413568424748749403576467530318336706740838867421434369288902405908144165891426831942656492272495814440823925116291097196675978658480205664196494117092732829807626742472624552173795927971203649549363304070437362211115278984720957513622707180707697032756347425760145778862900203409486377845578486695620307995788547175704364424523725283412352383556023720102314274862416982947245499160836768130185120232307383466164162293309267244181851152551181452560489995561282349550249937331266341401524901228875093680810370313617234189979717822047047052737591384734314175397448424803943177177488685083797377813078230265863574297211185928387394078700209660880927194627524762000605612042759798795485095246293872769185952687649384985387076404711939201201356679085958616400094641562908713257124815485581864055920503912935668554671428513056424846549201191121225880045462766156165313665409659015570768554734237060890186947601356265535078489443917012520076655278318786138275687625375107139398096356353939264668237986468765505547632147928855917868096329383852129541791733474420755322020047611685601729321503003773162411209283497671829763554167343261486866819555791110812970245980456844203433850184153589707464659816860287461008074405206642217466173614496104530915980716724710249825593803684663682519760422739540007894621101114618882915169909646340807803134225564134826503113175557737335625243710116019413833329736429721113771964087983733002522105103467334724798611166045873418251272338391339910097730431701061769549839682930194195722107443304729661462316218227865942911953638130821620249676753153459950634074932051559575379547116419122967477876467704262944408106997961828206751044270248256692611531600957401972911632078061824306001640053142974517208239474241039651007488564081690076372343301365774871430059178036457596557705573784378831875454069064651984070174122620229594435191818456044573998225808279955096756540414408721902256643817755682936406528200767212999505271353008441714683165680029195250123339502119340540598540969262048541125243798354150870947325652053331535300796742554908558767341768627791962561150409537721145509663362308543322688303176671783806846999761455550864496015752340979914766118674990580305462229093901128164798150335181086432991116100147319170412470877320124675108782243655726768224446270098313103241116731740856169723071702405645568102921558666823633209008043568920248501597685406904531902478938202933894454524256325091511870428147490302228386777630609398840325137993532134686677075306613904321816335568096740681470095592916956758803698773215332198848555843973660807538907634796082022548524507379806022739697459085809570631474175910782045384219580231530151923264873173360630963344906864354469317536048986357018351454510098476117840602649699355356467503110586782147278946317556770637230268001371150602915535063771704464870677475496150012174786174657178033253266265354305123489632329948115984561623854755615089671846974214088480696433752180494197821695953775183783007555987013112189535282982742877171931726566919474577993948307310642411977865265872473467522869566294074434741772960264571116748519226732568077173951331543408759336281369541215607490868117772762292495046209185888669188162529510473146424508088056372159299599491899063194845328098674944014526088574266602820912364533367199424362654104678404944812127734283790272801942290972956892049750970488985167137476368176126456921870894739249877933279446681527956686013976624879028650840269184880803343718355025855299655437950441295910192788520176186439739900877638288444293249385741878472135688451998570823105596893241834004913235656200582841877400542293595542493075010404172507518638191248144651787194535080895500339055889187225402985350015958701341608202087151492952748551806874895638987641063231757355716605829132817925097668523401658905436262402141916532395313912606258184270748804068874523418666734672065643590560652109860823103224392706062158696647371792572712570722319699059205376072519914470571515337031707427258632183742295471302013653944388606477138630291984160593459155732801519076376146344195893250561604343135489116846265401722704488780224449497949495590921168012217515947371679916835556427105619444053609069615508621171343708701438255817514906083258109555988547910427849277475031427445456490689813541929285002995270669615412997574634226517722192016316784024880312204010345980914949805465970535769898298041191074426854610594588763389992732105857672488162267606429588384921360408016603306626610056322742331723399299569311903138171763626510838366299403303920663195751231921568607238496025110718672974760104525984270718502646248437318873642816018121871857622157221474388462663454878461574128796059203799138366634637089676065701890653841889476227693394707238257935908977047066972572822954558364805947990266308467849088552686464802458945773870076580581193756726161301495037362676582245341424946128796532545225337867098445200227638232281226788968112716467354117157945308661487254547538577383582905382235178816924091693270914351281937139208584335208719637869119519602618710251132721589584434869812845647854186491440860614060273960647345660602161765453958881126220227042130014740314986300259217730325158110396151810895166874684823597340956592550769946577561298892972675813117685930895008175563706222075175400999035176745686106266572876697698358845462743214553912191194276493725544727479420775278924003191271854547508806373286815356058266869155671377208932477596900729836431534604810689100313193085179761587391980579631072790529120062223121408416826153347303629235294494031849820008559563357675816822169217894294363876468707585255257995023125836888905640678528793283539281381155542141508085967048196044318992651619743981509698318590626757505832467251388458318399660483132464053525605180933127351921846887707495676570662601236585741710491113088404023898372413264172114186515600517174389768418433192453377745559698234917322082292249309717943616087191228241798092375999510899558591347780949829450038060891826677103235847655107586048880891135011801307098071094283209097424254708512200571567633913990729509767358106691422014161394133724710319642563093072892433926162001137288547901487462682320169923886824125255976567359987321439699499356532738737505245270058539958635095562959470676428030620615477029521382807824895673394607482655791957809965415122049130318865491911554652967286184937354942921488325530585715497124236099759507477276642369318948564482109146560568281383268713162656633150034860298480341713051726730551170927112044351849744635816226770034632878082035052463074480523363427272899879405313965670706180984523890480924423226656723686501142491615089226773249910185085980580261145855519882854244141058666831764627921628409428562065020865844762607197340240207217608185714922208103921360238896839211309797554140615205013992507887371586639069210509583238918986021493290065489587134714000498626638209602769608943145501807647161631768685356381586086742186910999970445809407961377805382660559621747293522755964241428545691826517953755713603232471538357233853095547905583928899506276245196701838285276581281184619306681522469724798726091927146008269305171826094582088523392506786943980610870180192303502772063821294777017667500118150482355232319361833048237642060563410736577871375174389852810245940419774357979918650283144549854981985761765499086721090799999951118847345624802690601235142103418082778586509571496396731256372479115373037862528635325511105822816012018997358212039230222338144313067006393112220056805734010574900898748325965231610977763945261655749195749473102017707238755610891420392837243209882413638870635320650926394687343993556712833435183846150025388084737864383457954089769516250744047475092137955714539508127058896852390318856850127488316337501246666623096663341103234559452324706571936023019503032167362903646059658532837232228579462091563254849511740416790225899548397606095868683402429586784410988400283535762552984046141742884655192535561211164588845671080772667624020954719541240207933140888623917244087682410787162472463370952564158768581233044440705178744834527520147969870957029572875004910764869300885830244778653029578219849845570081290409037742442508451707598242882690748759015300532952061754805447546692233609709900140212613592697947237487520463262977168191914777793231391970503068706321458940438018180256186798874983846703995874194710528933525277960563550402647954800646198639568017551887745245752616187762468393852377447493218594304769092491751405676906811319530946579703567297105401603278702856236327258879035951060086562680388698580475021252283747857943327507621022661487041295095523413166217792855007678870845815862891031094056991448141930768381114981938733834668126709727289110431239062663993919072844802710979363153279588582503077425297268106074676828397583504713963484769865028743539608069714621658654557559663855812765457976646162746600857124256629320688564415121558782135044616956902053008750749119543517002624541521584886750969317423851895536055586844390638304216496624450235316198578092029876513452021981926413485396056079940146738594272753306665574795096647720048854030043983404994776852140498348771476886354032880829788246138426398451245260468658996282171766967250849449460598489060555020545928302328488278073377993264384445157304269786259404449093488391184897727166591586510860482308257944261103854348282066145821957022316507067506050083736246988608052170589784637920719846547600489422219739890008239338205865442138064935348739704395895904520006599383263030899733462855419225502772407544812721032604705758331917669691601821767282972030446229877617082748713490478270894169665277056843128484402775061118550257951128811450452742124204846663809959195781435218958876557500900866244706373319293636323967014645390262506083980782696039994636702157329198253738547824906436720234445992679965583748344331434597237055226420076539955169246120016274950644849158948824088942283479327544057739754032653665689938836737185972574631271312291621742088564606572836007298612699928587545579546620993521605556434911693746756864290141449646653784822636686550228387670895574654846345519131261603070521173595103653909292441826983112885973959190074247479904071993011433221197603404481558140863162755384441245701886335679218468298044648175120721392215063666716563143213031731347641728496356162471497079110998258570344639449143671390735085299941028987335431282450370457588258887369756098347878901731316986925032735308864786720089342810420636142386678802942520640013144572160202949160483336722180387093991815508650066958928482433591734952798839973769079825965261864191599110750142973081704860129848029616873075693167841308344318837803714570679320632003945656959094750162459501758987694732247031469579839974537403207676310263437103068393077782964285547006288984991965669097923972586047659810309203704864902242465591419087129170743614520387991908576715015755924706934094343060515197017904900409080733881251372239273005324570250421399190436678625036315899308572011585569211870600381671036161516713734487806597201522110150261775445949201964073391955627257928385795267573261247071700154465062686412422633713220964187420856436714606543503887092582757720850562167703584691386680617977538873376084529719900907970702953064880356428999709118899930857156827145623316100375846102566946048037351716289038825795850101529716659852699116168778817129420096934275620913607524482948628331607110605919697133898582766543494936048874660059547545626820226339671260387389528646073875121050295868851556304522912787997054838388085839684293364067770348971666543401649314500131835028781902375581932994943286203591509043283417893337098644603233670378158189741643104380524414794997060258759421613297633027142566955329613284553133106465505555919457447989605066546646963392065611063013909499875289240924878507147553528525067519826053732540331505967325472297889756618675311665151173741164889094991382322592993978806110625839087797465092331713210486465506519125597869104480482239059254748092029375018519875709638777716112330014112030288325848735444616214730004494318837242143323626760970095047694216358857689351031319577391272801930514800664203351274172548172541223466658840686184381378250105464855858240919100625459420403491468678089971039351420594237576126228502850673199420261749910909475784342003523006532311307558925523273784917302737963946610134715706073762288331783046018897367084075890914044359351321012325951670190796344368715948303914513093502411535451277382478351944219997038554296199073375340149447711032916791336394414786992560089732480829301390547156939165376019799015124655764725864589519782900358386209815132766708488348020055948419119038032785495595276156013168236596912017440356035620136702635950582449741951016834335983588853848565117874386610663201826572442865259210599745024985474700227985238384057791952384181017085391841723752973636259846124244437609032648366127511120314699052718977833096574565048175954457323706698470227912244375530830239837965202248638531133008833217486947755284919141180413353022686604175608260438193998666765015193459561579692304835750744599628965671841099508301379791192137783609256919743429301572570649327792081867391439895263857543321489700330279052251623645029324484938409871477182878363707882221940707441033103302174809942704793296203856549074631249049264450875811971072768014492074494000175519117460711126845119828128428475866641416770572759473643023252033081027936686583650715726055997058251022783973282483500260987620129541277491641921341775363613357291846445262001852383722837220144682946266605288382398930599690291523049916406246336789756023210335646231125363596314575227506896749751965188228813016819811816615186714319872004576987693996765602170040366839070907669764312514291077962648886127936069331734479212874584394919546717140322136533601246088981294739258951291730446298130424232512627873465482552286757112825350265842051999845838626004390441284198875185216258155942642127726062571259424360613382400558403974693493688531585528477312587370696224820044953274317898925456725211749083055663818149463418680053558369299878108870696617336590354276769949005151174475220967993211785429245917983349181804266653325840844469379766535191580777138032361093537151750069332249663908488739407043632244507696479379167283673576034763637009719761726037174458370951711244672209628907666389679448197887369952660098416932982007525929950773360735321477326837331777992467804477946564679741291410484094756028230113728568904051557210072333881277782116168978648313531153010526589837521859245600221643370323870671857518015841664248167985179055668027875794374208893359062645521633158476759637494849438803068991427883333788257391143911296093145665467140113177077097077321569977504696362495892330085833444425228847592884544913249449665722672003459254652490562494519555050381773329779309916588762505416849422707897669381910536372388202120435792294828063849781909893277151278089171365027526119938929663530171234912989624521175083745334151002442767190910377123362598966727779006619924267754550352970378443066740574419041722414890064475093632651069790903228229051915652899587499918224694973160541441106438375015937883083262157447807037985091179092784737135388537027347782376045688708752145622285804840333441463653520578412471025038389764250775352381859497309110764727400332954226055341076623321472774624908674291694534183584114057429841643389883785004243036572548502194710082044582370711182691644706917371583957268388941514535243488253167349058883190414078661402093907596917112843044271993517357272289707635119845075183543282231558024575953862111758291301516935724894427682027525623210623133000612155766014858741408620191935309728606131159315747778687551600721608578764756694757801903887509030290566356842509523485777875123983938885408299492292785839527556276899636899176525670956677626732781974867209135696562656603833215055372831704819161946428825271661787398131978818899705825143796953538119789122541285398845692508104972456548183719156279607261827651050695706868121991478164580396575094453940250141651931518495715173447431199053527219805080636484180994635739663848539209019158820687014088962984498315398702365994755639454875980367161613871225502331605402148049131674795929217423188208057216599175844249982233941437835187956123773204818443534838420628759914040167226940254931480182667111738615235564413877791752420803644236107564857574209435791376891988310412594109459524307188943797251476320272660383335847238002460433469187755289332592901836009074499960420707611884254070961511033071270773197459160679353626732628902060614043669463118069584453306575791206644959795042541308581705866196402060211886802057178699794305088890926062206650197624673904172712697204775233972199973198722382211104045086269432832386383954638873484273837525284512018929109216700359408434426824943649074174291577874251944811462638007186873961310663371167573766629436327316699967782885326481188640641594198193851806241293402148400726421591123900021834859613037984491748128539546236678626301631232107572274528383124657052196480274864868113949767472363634770802019422343893303653954645106676411837702984362724894991612707731600650247696246171612201463957739169011052670682967777839995701170092586170041218927924338759209189543533557516498341273090007900203540022830716627542733384335238273191399287360148031853320579871140640984271610460542743294524809419201007776007724363367143761893034588242508132556542090755030855240110863301770910036785900457115494697017468194658251613776044851854314330702839540614974109566586593699883821082294674625056596343515006782073500228639949509172124174694577678435324200551775608533511120592230636709748758400053770534568620451502189593288668666647863617467706274071734291833340348037866615695601003888913068930792220022665231364128809736438292418211899708522375762130861506082712177809357893645508568217533716205392854438414438927957853069224002003866688855443963690845604064098823857669999095178400185934549942582031857997728009879628693536213956959074851035217732988995521468296435646131943496337899617263988799840241449007350907478987736567072644816162535008180782136578544254182009924320759173808001446294132913802040947011896335163030392995139691340228240343173732078808796013145560586960742070712198944240049317784366115848318243414672494084809936337633852019161807368086307312322829515501228810785799762374750125141197452472809033620391607776236334898544551313226967884508994605422492931332162793375548524193648043472405712447364425462978715731530616065511096156047656606756668119193298542643609136205591741414573895962523988772502069370031728108490241424214156232875555355462292307841612226789164125705876623586343566520648909852729635812977264691754938322538286166769028367340160557004623887259177617329371897337481104365881911627459048544979575049863650871420861825232592598956586972301020589952647490771588128405948495186314280281546986843602388136635759322622297913407478177890926709434452784567518925230618002785600540599922697358233790954195771054325239687135982496991954083365116124308108363742290988780754001873738028176460959117509704490138530074751613781764019701026500243206624596237501997854394098035155124374640896426526468297871006846539876036926104043814325698640670291288739481628969673284045515395867100016402050816767249719163404688959391650213327371366138448749630968426668221970027552335041716323972544687648882009724165294557667281962965009955953419992249563066459034647493217274382987278469935088995107216617902554767165840374797919623539905505890435289801277600618598038084957873661267976161516208329049189952101256416020673290275223030786003770653722847816859303905300551456206183367387454104111569376393254368894211587831227987161946458497056729397976813231202430561098411722521202162679412107447303825999811694383930998717126258131972077053061173743042268883897107299447980245936275830127999024011216694874277345742505739601544056371223026310408219401253282392777217897069194968849959485793045959407987537621723628766959629268061754893056667788895140813404778051732134653286650066008692480990099350616234673926199332997342115668245542882961135803041907549691353782614026305983850263862472212024296791573504172321890035662509193081837508200182557622189813604970343703385134961822674716608738472882436466821258201710497423173920722314992460874311529432030497388721219148777103248949110595020352427346242116481598896902090266526529641253444541054379592502494564727047727319851532050239761445593065278354189505548348035824349000459756658333498570880792110110338719120447740878291341893526630581145767543775019883231010738286432890558393728654808491905637693074604016920182749132035131771819078529278777466460862785225218978505365649560265155516179378031876751784662441781703493863499950252521422104174707279467839659105685996575257826734021311609732651002808507929423759873523383217888695804790705278145345796346678259625125527638923072449406351379035776991403603645883354404387007995836059424673204224102615752647457737012175538893095892362772810677186000362821299901509965064556635320262259018822917306239377176675412026167185492652565972738871595847783300011277926488401549542153924942446580330500415384893546896906510518185109409069562571675580188044975803001909843030439980262382266907761282116043237900759646231145864483816832181921921918036390406519220936885792111373070716780515257960788838426731274746132346074750393359468778693062647367354881451200360473177275688005086643418924027027929358501934099715877684462967821233639808244720261636975881079507394672440115866352676657438106308712275885403250715436991718731813334531069771400994265454027611573519965161082674898832682827668642287619738688440011465681108553336874997538689739173865745856105842676850312986072866291451695091391801496800314502094851810554063147504574274416848600826424971226573389264650875824691343135526797860377747387835871141402093549304020847650247490037784033130192168625946049186609462583342862143596288763222569622982163320597003030680101973916116392555143818607623811738687214280874034068121045102859472818292195525427773102506557605458729995862664245419253922710030130500457117138549800417177918183068331391928260717884703832593523974426061106537710648906211711605502695313358644280155749908881740781181143202987559585412778037637055707563556500449297951199470942076961609939195761987147080152521652030619462221236954160643793364227648449307338223505455083514237937168465619369651038643181991995072929913932691871642508221541642448764740256057979283885090245438935140471104975523501545257653863625320559932537838653968397884903019619222346430058391421548258680974822206884544935623729827831817929362143369853165145089892845228438707352069334013550277542195434754355695275645632690136244118216891750051813804946753514817856532826252426948044308515500534767074051461558615634786337904939089930149782164057750362179048036546431766106485075091443680099111420576842918601978801585788125550947397200958618589983415452748590231031752905959384614324968292614717877557790131394961398299843035380105599196055622627098346114600312471761874998146783795168015913146445971648781289887557455084434721155936949833615430263385275390937371755426515639262150622307438240712087035792102728743987655026013390527729570345352129216747732002865479661090562037380843880089165517066478458095737533401372379410117560578824423431399189801887698951624736749878705140910622458862512971328031968781061468287439638986097443339456864237068407638435241224474104840635248756162649213459642126758547833008326660484115093672117599254086283604501053246408076328368806497105900295062477113268928876017073500283186412264753765428172679165118785769612627774965398316427947862459368619586115597466183124508269584620670465555062695264345165724577656685130647829646694942879191368800351879369550106858531117814814985511974292583751087473939337611073013469073310035474814921185379687700883435505714183476241323065435067094864999292661815022398730665211081380890243829224981732668842667242392587050988660002243843645442596658037822483886932708655838827724285200755271037830062171994975666115755955718064708456424794140912935936949973032157042189338935718743771889580572975203724679679067115842093539877389131568466433369560410506189400271056435353452968766637928754129615451629309293215195919958353565444282055323104359063001252614465126189055124994074480744383741779706637616189742719237754823740302856024650886553694511699472103069523402264925239138651870135559627948931208064771977155703915387327873037638863253698193687118188856064927770416249972514920976493903106547512191950108396939099341746583276724675514760631880615191947372801470109153325855510550233378236155394581285377607222962124780154450763919960019836758421147370897282162714842888035943982956423310972796824661244514345640543028907600301105742625499059720154043511837282361505007207249562034053137328828457210925804121765600895268800796854703831416554999433739652178458724748501872966836851056683731536890069691953007411216182174061874815399155346435714926433791410359207945832893523234190615795880911602379538072012856997214588213918515781894687075551361960833680845970497186863953031963787264483262471694339892417432584573460106231030285086790003763902528173613481057707624778966585647369712103628432176882812091386913869423898935841953022869126177347748905521258451059575094782366978511647347084519694971810317748955377654173136275836477597799248174377862441903308839002070100837421885291388293198882180457789305207444005783587307081105771950118955569527047575394264158898418244480636215098298656940261374310546908746865108057936934913498128610796580959022052390447707845643999618855073177863383392027186443633932932977167470525427785780567760899186083373767494584176549895252608309520746066176824240637709227449885745361973125939995041939550400834048814792851356980545162586948985512202582389170498180771126068538667487053492520536309768838646934723916789670787692578000014900179811845305330971047231727513658469569761644145292640925563422591714700705129097415168936716485448397133242330604326695438141548401651048476650639596428619802199308679196379282851398011831094118135822686939222156907179532313429655943561384802259907226812434853931659536642293608274636141115671307663562283061961482875612689887764538238193993054795860623820686821632918009423353000749054640567541862094589556096827738710887608022548014366656019582905564738599323682175049976739323575200702257786900799395681122903679237138049572424326977856682955642039943823159668833367723806866108455862523392496848679547341706341537812356738367022256528816770354537481150393825881099594352158268657680870164311341163691244724042088800256441463707693606662724690782269099751890934606932583311109086643915604640095564060443951516754798973067552895078425283599389516445035738469643239157130705105148791829740310707655575138319851771382934940893584187603750372613952818811232645299492537040417503267093108300657947854142083973881914435289576811846267375784515622812305278962427027679621567640825198692597636175451195495669585275156067528053423725431395301467047779731755368309303667895245443583679405418916333510801692747158245611833314255380938713930039087179477643801059471417557642021569255569857640527278986364709703731710264523873404223418779801212722253209681624784250216880113758936456189671264628899997818201254163188587469626542378499144835073257382985698452038430561517286787919263998956288218355097622317678037922195950995004717338596156226730342683472046985509350754068927358319190450412019330810559435701235151988295847764742423495399486015925942844950074678946600583000433708367397784112412171412757341775390682291846515049368461555826474119913791529813048573709589877146885052383634733643699427462315112166752788802875699629525461089551847136822109642205821684586421119588563589237113526547505072797972955365597784508019663312273443732592675426398757740291755989257564885030793513841118252843436692635375060997528862177288117068236645107580510827762774250099113038179501431968339111401331187513029727301173368744239778379734134915355783673738217845105300816052285501968395964594541200410937958016950290996197865866068032352818263070443764701763467390552058379008417181457652208025594454144562681816504880313713445941166106585073347403074633756398541395517539680229710036261291656901756044448149507043672983472940199801455374838009326951503744421315745842603450982064286802534967518085896385708751168052168204173890870735726198501199085693904893958675921677374535221948460288603871342202184202484029691339403800455650024611436472350537521323003385967787415397507346829352102501970074722179107446562906575589905256193041486369360267587898238449183683060130665858568743854389408274494884063063928571488513132608818863855457982135854567268171001985716408785994785519833906976399346894746002037121916378286760147308717284577595150590120166448035064335772607710082422708872700498225864642696215922872977124375340593170584313591180585019197094097031119697836806236579459031879129664507294290759370824261460474975934924178929253512654863907206580850166108474069351227596579834114630084954757517345921066778817145071691978119617518123271384614644817057590791815072014568778577200926709909647290395163138149736384093085637080417579279081720425463036560439707271067087828210484237289078516231235163086894242186890628604505759671363551553108811631860216610642791404121934906200051750303757605819804273295158660495828950482607854967990355389117898085719048194958541349174505366936490101727400586091592114986253604231162956227514587698011744269810307666611702688729169456132831195488006994576575598805967845830561216571332920787294242154322714088360564209334653848936667855761829715322524745433603323831849545636339044055344424076667273939761539544687894030810720223978385314533786835046912820377025484318920778564716929702227172547186846360017547898432474621457142399948854979361642907546905444554917915488954061009193495801296316343457647851054542610245127337165907472402550968710552296360213849967604712916500123998065961998898891319239598780613604855704231389603653147373001298142456318461318215159983791052121621620960937171637807533221505616772580582598045138388945171975444743874584137016039602895479463724539956854187301729012962560375256257400278199869526810920749434782757077931899708615540661445916791794175697146723007739640288390839515911407365643977320531795741301435078913520132638273906325706392287376686495277215072967175252866363237656183575177228980413633697890199398022992617753348362078335244945646198150722890351658831570160984505780407994852922141280804370376569989803467797957324972628283072545238382597860515710162825337906518582752073176883190847645597629471542308516034177160219015605904519580075836292255064675700196204677988814334610175898802785289302002105487593391974027485231768270541798995936812659263989434956565979828608201656938506780613640196626424024399703845045171510333742589348114458339388447827601559022687746567168705451636326615164495626919429403677909737901479274846915991305090368855844230154660683387363635245125000743539707918164952783252120962520002705600780071827293258411381512707005207987006084758246179235271000207329482264875012078824120923798228527045366250802133397977322171004905150830892878280027779218037199417423450798811584255169909650472466980871710031758355346249666301960734702061251584919216370515724037145766014498622156092058575094607183851498159754586960193022101921241015075362426942192455428440830796733199346160834365364127751477225537589890421156966307063960597985530774928337262549101128546317016330696548616183052618271469681895259472142291838677926209517792461721861723928139000391570769782603254342616026790934819075280049246774700833003771295849249697279564787459012694442241291350396631085651472966736450409936867237240799589132594018255077276266594537674620086701930766815454358775308052860237524707637502054433753072225971712813804012253917227260428080360846540774793943776538015262183574716408461107563562706131377363051141251398846884803835054422639034173190017410445028646750092945482900562899704417817889653588992389036881544643276639197274253940642070480297558070822612500633514596816139180087367153686344598493090059048738816228242316844364623346573485099324825556627995900288135543724148088736387563321123348497929713591889367216486747868841936842944660557272680387601096454968181178765446089108559940778443234815379644384565774248000187781064775552850530700290678522975918100747157994679364165401151998664861016847908479811756327097528253282351363335608432225142854342075333524158238762082284008416923469968392807812111569240398521122465994981875621842086451742092047295378986098776695629590973150991805275345520996629682577209165883789292660795854550820335355755151326708550525878367360182158605685174793269142500585517200641987756863919944433204634991292284305778431583673432243660641208731660684165160580296304123461484400660867599882375188480278785182922870759945497493695425501318347314736451993876326641909512079657716790581835283802509132790130230653453726693997992870195815382108829688782148458871463823699589929155339089337617701787071565407246813965411472489783645046899499081298921925599378716172543718210956365016023883831421601369926231632303387337129735910631192386538763938117106892209351883553250375212629288666223372487831742017391400781183790810409984658631822963495099664616400650872703418499963518728374805144539585385398725531442519643427248850896653409877365459953861617468746629277636674882802417231042658659408025048633460669070232168937511089263151050140037402631640261472448547781706644788919178350670707413111736240773736793003397252245243161262584799113705034099631485346797609937770228110130541993991385950823312840640920494808756939303069016322551961807186826554976538669682841889467244597317361788115525331113803579428247019231512386382231095115792527268547195744909862520824479793494103006212185126120285030305446460026426154105897265046871110671182343063141508455517783652971868967255575611057961274107913038733617047863884384863973971392942818202790233083405684426948164624764350946345977389828529985525581767029849133865412963744506143569827616294914493910762212136766874897717516313698897329816570828300966832864613749718776660115975736552615647479687373388028225082782147930160104749860622825873884747763823611943891071497059730741641128914143276631048881495826426890757349596129433832384788737619485189733342572389162452350274583623804699401333500833909972213682998484255288003139345521484369249045991663396422418301487945355305548109044462022281286890011523740658577733609353211469377168933054996602715960418996109165488423499450103027402996782765854104632659619892279248835300125217497850888589326416714521840467411317618360300487283411354427856732037584691502034281487504769461272351952208414494131503427787761696150048366516806228867933182141147827978691515549078431150320233229018510749602436344138681778536377544294274664509052295076182374770181698181345224957705094807393433800678757636713009308538144463860353566426969261534547617899380366697701014157792721721985226307522669698556585040279252882544456747736496339912478927549090851799131258115141329840306608929017435630860893785941253846267305463516335278941073222027791253658119902129108569368141607530940149697256602913453243596886264755322250166422697215781758241177567014311678612300820431843673557927488365459329495366869609215258867288573316053419698961516591259898707450267636850619742092735514574553399384627345197824941265117486740840462300622612430501661895762895005418357339276376807158516443519631841465411767056276203569962042060723071367434333332550687863168762120691673777310753497912270221132678955482051388903282179568214987497179110633298186763889661315202982178496180934174624791982843777703994078455190667552573147963139267441538270565459113661459697495355104083791015191154521447993003089917648272397827696671689561772408157453439293509414854626568940374272441201246756989245042255551531870933680008322395443407690418652308077825264879353981997500930320898321511227714176514660716383569185633761863775755103760610631524065908507458608620524810200438343120327495786387807241521826427388005096346500086184660843810098480177395686742292739964285230181304936969362885783630973437295674266447165455796429215691561700112046397488636220998620316663452370010574687212623294796563756691843230158400579486552468523197330948048739974787905553636309126975623152142558178992453233105262069458625933501725428247722134329610886948194715164632073412571415439280872771341491173717966628497698299550486726150321149988900961389673614384528660263005678161591917939976931005129591815411427224119951152554237856933815887052325899370950564549840265310860352702618582767438274826393344900877260242275748375419017862178235596746953096149865530533904289749020628789694339411008064618736072658751294080553458106353545953734093421757603433252327321836802572905351582355536625388482763719577025168667843496835090645271697216207974656211567643889660599120262785875141642606376323274133526301993516340321024722108320578751392959507913518672956065883116796147248319130542416412173933807603755859062149429701325393122826401927368928539923187458424227310282947394611716757770077025400914661330151094646812825926063101682724217995034542148746626758150498601400564452330283491518574727969569240736267504669243367878707440881153934903403230142346376341656213065374379288611996917164025587282983767916130632252238262835051108543449316699586893210861355641702800913367519013949618876603707436161062832043124825822691474407704918110457074289047500950673171189654488392181152053296497676080606048731551681715477876442938028879654341779055943549729865084672113305408001308093870736319328527212948400303641710234325137804760502968900937699679704844437434999362966341298467906852647051748196630901647508429422539661701836914413465940377938313022129343200279676700515495535444201044946236524934695432156207582596863491696248347666052702491591465499671585817824803229152046359445981085694527622328300957497186045092531929213855990037087319601262487028371472791714064838012670482050116287773946569836436571413429645391936415049360347680940472517876931179302635749756692170969861940449823402798312296325497518917258192354252356401469763750710542908772670865869069763384161822233736106465303596026465086841851760225021063374546793868793859781981006578327073874601434757531768363198650198120003142257629527691989570536159349000471742547567336748701438659066251133327516456295797040039882449565908876717071487652030488925757401299011369961969274005724937015658460023745238136101861265479697234004679499357758440245055924751476189577559879619997355070621596335825025378371034421346762654379580445466913693294637581361466908978515728974396509936190467161209346148616639386976265108583812286790540818624013395634903189297032477537875901542144508176333038686216301368760209970221516373185594831298448528518404679824813860064898735320691436045423082373762835867135203341505990726287004669533900091786631562473802696210359395029644309793925577515009786935381867610123427414651852210030126925396836180502915238848663107329132359627442589367476534842659683249537188158721624979344083353457109515617056477036250667919572076897311482432707856152200028431116736453857735282268516319625037536919091004044408043259057913959579458862910414582477240309357325978870120619850512790730781880815701742464828976839181334344336737195023122563664496242321180195788144293958418539463848652985798475977806320884067018985684271148609063461250199677864216402241671469420114779137482484133663308051966930655796370201289926803882658402083968343662916270012030187083824385988943943460687000190120800888372421023156101432046994431386828101792200456327695493297437584982623698683332265718587069325752372564562558418096317613082197158181803882286772553672418695121284377310127985209663830385486366364213567139761088730914052906919634538517379072392381175579342578819350317048012372338201286370477265078736271068346076490143663227756841437400309945154187587341258446037409105661594673957390779395008860135850395499449424555497940888123649228163712004042100109974358515394362781110728797577671078094163635888179657978249705705561342899623280982719083571096216863853481537828389974974194369880100285306673419224306418045803528987526013469378602182607539122449294881405296899015344765849184426629133276642471338431504891064524813622249468242636220005125270256110949254141319532690898879668156767178032838407761761557167322769848844122496730414241802596373062838469275956535129564102511483915783508430423036481584775317962139879881613226656287577029830038798517837052413216350564986083597682069307466362271591174196110784697462682807754074971822589806296298132392230575578991965827406164804561273875605685070851012061731043678141619199028778993345089756476185912337636771844755618596062765461841348562423079553360582357725433358116498439937464200267330641913945674137569260621918031053925901322773862776548153707311029933442578232569793017003214749612512607602530586210350489474325326194694480649177965251918603409532432676869922831996926827112346961496039056899390641992383289299177879947017522218362795585642077714653464948911389597269206274132764720566957731848478467720325436627422643839352410308365307917838330332486537817526817200212836949445087770252073954892372633318826796531363395768237273587202866163214662407014149181555092491077150490384515548818164373691123724364336923264352649601154534408440665918712109133856243901874225947841254303217189653021866313676905777497907613841816719716187705078532549723616669837375758525030528333480120596147581694281231394886803616948063921420181114626332388281517185379278177586940099567568344007299707552441575627447323534140161759350525548955213938520748585469567576029362091421986666488994998593139733660491551810130700227825404280319262772595492727779677079416869181300884332030581362519534180319586503789518291605829998567291885810434806463512326155765825785106982087726708331131708560572233128890251577691564239722672998780646937131934280733744497341939001459231775781270383491727040708343996429833405127921508786064554649412083228825737169893454801908372948268667469547001723904527584935708678646629100608828423246799952926355813505997080516185457387118345250218169175272245145952753225214060252539370571317455725688549810975153480704820019362596480308169225177414998599579914310315615610053733520331978782455064153803519237878540028353495886014071678549893313427243865949209953178009088622848813777647910454546325867416819998850646819957081664989125866692135363468669835329045236571055635729994487181863476106659559653515049181495866360330997042958219987932925645575600607496027437582928114022159835901477292115675980951922338260814809880356351965294745235592170701781697809680897920887015523022595034162258304623294679646511235077446059052334698911264783675939536005368750377952153491645397840561868022428980440282169261713625426538253583794870328222866552667075414562009756275553720748115468742211884627236157658225698036919775772258941593643080434717141938580758015627320553550536747527669727884365070830371911640066084556061036978116779850976961908406589344958671848616928126584242749770254827561725306620042705614843508243431178515237131618588521803394070596142898332529769145540192739276918316990633773829028885142070046186107678554539343253793256145537653637697207475106762077569833957450557182398214405458503313052747855074923881270400378474179643360548259699064835756976184621229535218644167385838247160861111412549769031682130841422094608058100356951679075172101110501977887726868936592745967657234795605594807307056134052964149858258545790362218090153291895415222857049964913122834444822542495632185527979594912869058020549988991396385931051063642173264264068482601418058826191565876421301367580630787857661456497142659355260864873001123475276323590954001860874140157704383673991618597400958802869227732855359494843564810182873932550404172374097665869027020175655502589846571190178960636257388629174070345316103904501033138043556933026278660793259175702756459194224719292420987262262672193600105356920473376813506505005534079532667384006274791201322269972933737470272569180639971822815717831739430962093309618056608411651162612391515137046102081993823957085235810107499998484235691715586404992412627844001909347085531293343840129075384540308074525513849051339472594853705192670921621200109055730424469571658683780495022108858351121191546138658031891722110007697662821959316720856504068159534937942707150102959545670169968542079953799895566908997700263286034124295625965569468655667152983688631735886491305294816824467618597319886544945565247854808115339406769448553224901498581041239015719031306041345314980485403565090726759789476203157421387141309323255073832471936590044029464300882627907959249383212592784803113278777296283794964908796792142222615793128685223377004195553347176434974438979113604797719758579784012014477071488106070043435367793968728305712796265170176634416503450818274744476797871481711509509608905113712747543658653894106810861053575097094409689015958539622298286742528070750880898774953104953383860102143483359358002630420366700104149883148710629139031459468126891796053616999190454060074893464399224947652168376301541816194538109233738408609729719831567065079691056709373112964080251319564698537000389452985052112347488924752864052471059885620435803945071879598188121188388170485240830969510769957126891744924403705953635409783796388557823412058601360068682740931521386776880445035024130556408506156506764561809017247177848785963315160520541252230329471175130067586992018101631460169480142756397026295492433654369435410298655470042418220761027422368428939932042615885451440612857161673699005042852458908676074473407065658442180388010959507668795132206714874330566610870374266176423719257173182135346087077517617576505287140230425845817845847583173829862943849966807526480663970467113094391901475654683466431322383978545902198623607534514970296207201841338491595080036538959541293350409423763385525459946468353956180654895790337300907822185721603839050945719638842385090313930546621576785642779255376462443917040523113428663721092268292908540824871603684160168252133503201432550753003335855555408094496042147830446694065470873372669810787005883868635790041444519026618968203127272574523583433294585428677892650490567608883970585144504652915855214559668667149496653655976799152771313482338075910496771950497144267567615435492672308467450518226529697242018954459048019014238311208801447823990653136757809274275498800885003446479637261926113781621232056965453333006991943679725959358925710847503750822939079515765556936766959488279098196639039405259056298655187573171061932644548406405148861330929607901379800488653371546587773117571439549929401733731994865816065485925370845905277533278387082506867638821698043286731580512335167539479994901772450914919325540904487816845420940896410342562327916622899457646438506699563206607877940258507272331427259524549777041458592981036632698861198242937265545307534240142775691979075815420851949072236766745180562315528353266694718026795850477138840418855647332120931278612776689081020740087481904598624390136819509393574618071037789452454720305256381158510079830293102040765448651884522659152769651707216498200363041192332047452007817703468105058473486820684149444662333287010394327807136040522065070736268783669241169158501848346345911184973435188973597183031099079510960738255587357879539703065853838093665699699268891981474465067100453374916725432359496440820838067511337204392674036482415310371332682033464715749163081195052246766974675503462909018222966722336350419270319164060535005547864764585112922427415580502007062904949209861790350566831537001259421838423050447350508819485445489417312105246898858782391251091869407309165000894393727428641906847039490373400473367333202441217884382899112447263490061930711317273414673716664915512138395725246592614069370778208492252244800965012735591370745223652891287152581583169584962756941153140366393843319436053185413014914037387565429791293481714883747910194662467677731788332522556990532439731645591099541978351702487527941053789359959190627649455889351647455662715845664238816462682823606072861719096833868319643655051745781280362261649608348359796295490265611172661054712345844762993895606083587154220219288962161746807059915640084281772786144405007587455025834001745958809722996784454858091602242970135282639716218870669585744579422701670860407951208808590592911005828947379916884841431662142448470685784796040735793421630758819590984485449011427519033885350040859195524543135849567868644781592920319718179328369575611345980031307818379343052467409580582393894231431819574835544860173312550833633631996624626794638259913043529404618218206112490287871685246128620155515604301046498367261150855181601004428563386282635949604082736449236753975053329243501297807499238493664131761389138724564303705084931313225296380609460958475608883817542622717871643140720326231230089959138102935333251324908776156956871357165619281726825042784292825464896567519998832461258922757425893444825627432223276977583991336404261877363879604060696991409725719804995766820567167817860445259782664807748480903490237680853700612809937677438409264193811183717508729393635184303119381723678584460306164834695667134753774693307901102187181291537356512574267547166211210501862317406817895645061818971981043930047754074452218751778236302350914780997155906321701257731359552569131837140004173226225850452528119554881484684731075455599636797425043173076801828996777153542869969149778291341030294775552883377658526637634834252961539961050994987904085888033104882170407194609524831008213447966873149397626227918198424570505190296537562682863219696768347515607689641293495142729553840558574532107618046088172447768415116109221596185677003825614987586273749233424226741139682749285209291196322940105221648561244822931609074924819827177141046709593255667603603860577223783766244848604092279473879379188617152011411577425440632069656876510107537100888485885786007445902686175291777194283408665171312905682439076953546448740109559085787028334663068250611557604605090461329089881237599066583030328221243648213409098697671059164986920073100052795133475966396305640928856213359566056179653658540541891922466736203045767145202568600175114958312496582115477121990466164829819427507320407043060613974239861397720960105913062812647549777469150388593679389635782499295774783872187252740444277513121132990515956117375887200448006905428792291939680409981960583633901681114378352667704882261000455569026706606568430085774950197033666696136358856833578611062089994402476727400924559144585329303941275206057981722860299896318802898682173270084214982662996823292420569002638861446230490093329795626055729596713901998583267408506379363248411396776152886615482662351793491636944160199226398592729777821197265430010565941287292882463655003812553462182639195264707019646159430596637700371141705261590183822386939430034766684777755835954292087466751057709109159037112549116337802950510411211616817613681497366227939676804929258147753425866075195820551886920485619801843419180076770896346277869601229616744468852597876082604548355648525913904807059947118453347698293365889425438866379316153320350718870621255944111068202987554414007075046743619306605692086641707509030709853609192297592644995531214767272150974706465602643364629249447589093372380309288729686369804718061841189162491528420657017994087439140245564769873608838227683092927075353098390431573998860665966796678307974404108139248461574367949062159539896573732137484299711783315131008604138994151019630270309920741208307081589367713259600851335793191188032736887401548724921748326061295003880536302664000615116500884876455707124767667767247146617473649727154455576264479652210992558892963051163278015953511015278405067965070127545068787162650165504106471875113085550976060347705301303933007539817584651253723601879685636526414807068604234355348275206643527966149363778054210095985805549089802081590253066958975153505714942020004094265668985701020183716573934190314876943684356779671014378395649899325482480767194886979234084212883064663348057842609212319317818372994328008322795519883711911983149225547904976327131711758028037724235457746647743573262812610170374488631073647559017623032565218170216146223806424703853562590547784262427126023160889295452550621247067151800495335956327409925822871186905327514476893103639775630120619458662429421324249673682059411387130563236885508103639822729715113770814524146876053112317989288840911138194842366873450808532221600579694312673386640033791786770595451140604868430089480318484306098749986448876057775209998833091750675463595207930368932965016109727803940309071530718947410683431391654564995557415953582655925980795134767644835930247602384970982936423978615332743018260354230739696333913788678783577805496739568234215615408737913711146255038030669039604525216982043468270649163688345587725160263510362449681389839142187662952891896183484992554679907814801962194814914397279051931639630532362404500417611032562822954845780393391116822260669738076909213828019315453231223874157742983172299749396541556846393203841229367523324724709506292143491708514686267700463361610656301353283132749492771282050338427771287479411779386612836827898249492332295090854488687555487228678427921299571542632418700357663250230406932220727267439951728582684546652167697385093558259688502913844346633790910769226471105503213699241723851582999593036995407879861602549059167014672207070474339176151180787700472540993791874207338360435773110860592917820252917363086587079553298230160575329754224042707458606453246778393613251254317483178425764651092831896054160636685111575669796671994325767259279670355329906911639466803495412780245680704421977391003378145549752807966166852556507338735077413342980089987285369667581649085746661186795076876335372888080686878726330702146071079446326121865345643757561341719746273026385091725004877571913298048321561508051630021321721579669613211317484646321119688577749503457063676369600167918192532270402886586470831474551916183053067332817156778916298358057866241370354640537368597355290510529400392010169356973703731342662791039661745620369501480847355013470784204172769223039741431678629479927344424640097389308084459221474005199341908972845834445572492367937154471373362562459423802329678680897215519973286460808830038575085558825596072679989217608421044817750658933561491659808176353761811599229249012354441095129128956688467055634958731451797308131797078549343389699262751206309130205202944571803195528469103906311924558052503152776499571473770147715944251175990378427270224303852820243119264156825828615957359677134424954578457621242132699598690773847617118710695299099963998740755217117032654021659319750835564803849323900092278799219466237798629903353733934913875410074146103507349206130115040141658111693832248416156562518029469672189077110793777409563398238171782191865621606215040077031056175033387108713852417103176078658272777350070510483164962862404910084467190421177763850151574366017034624490294782357471939945980538892820182726932582557186334497515104482893191797138546561802953108734576046223719504266879251972888664452602462024761133202616540459485811565325251561850428803791063699672529644820440295892650347211874698164739149302838874649969801573748019073904535136842666902812385898386711301845132088502905104864157240879694330171743419850667370618344994977035673736080031729799074929535286886427992027545885338419760241108242259841537274095723854519168818029642414126674159449783177837789453809590707058762052998640338515025986146222461971463480379193467821829082851232081204070284924655735211053159067333496443325300686494926298260883290203441590871903615272082115553412673309219715421179099975633386902239215840089493249293259541011644994618414379806762782660540301837874025318074781704439721215644570207850928038560308163656339987323903880326622338517412808648561909530273682769412974489642460670205348991182256922582275496728237975341854681776532187180543928023223567586347374639698313669513952501093878694432473265980478439057270263794394343963013784648770713668486373776927916209325529495464308824347057275878547609394731798029874906570086134716239509989920881822493452864481297372489980720122131328155758026487652978406047813147659270650112225202243990904732215057718601732888387125469265550304087177977369809291700465912281902731685918139997131443446348532297303473840836398026601817358905232090139674482646894210349274535539745337958924812083543081118706449370948451233037371575781024265603225264613174023133670320751246775746520947602161850403984356109312418215069862800461400985842024256755830400096639503715928521026538464398184180112285697800831903007421456058025063587963571063025215222129719014634769038034433375595007883135391727421285234738626784993666515042896121422554429483792683215686765229152536870181829348564337970225748133064132451704387610165105363874538235860372298803416752932650753894090122980306174946890485909280883481720224418507473100020207705580958189298438378592876004730646892179361866538373342502635913891855070120063706515562443472051179129109935314281728999881117956528827536990693166894212393202218137750993745920014616148150455948579080437260233567676064003475057922414017174519740591395013912972134125048036909559934417875871191149326272721912677880063542225404533125720923826491008450316033440508206803951178363492914006335587589051758628608801268745354820793721124207255508747063087491132011562545413147240273949003115058588569898907234915302569524641481686256902163456796756911546169399612862087756479258323528535423049633958135377141409027029887963610385059776640782639701604114711385676140911341641476445925115196017580830268878400411628788892008084987474749736295339177577882802218480487170560173852871241815542726632934919609156613169381912450375380821153851725810352986411500715953883978510178519316211767528788775147809884230243974518350186778562197857525153945849182422236528358828599299111642655414108654750457123534231705321091706909290508402185074167112889444204185789805816900908184732757809732589865940620975761561593844869531705468728701442900014979921482494554327168686901332341950713458541819472118229628079790137196524076566236193767948535922754552661109414155531865955529559255790409617906629791952489423190395968701323258571106626709291364178690431175740660758287727335991195889235959492351524817093588678491090790336229533037493251058260254436281231819684522888322444486877651190841189536540691494608775965426950846668274046670798904580131607257156693687807996459605412449723884845203909365570008293475456878388369715944285994067482946512288479695882598026810403273629964242384841390635501518055863426970077876690794301820993158507430795240879716055990756677209674104753792162081364367875084033961159712579491395458693425439282829614862159767456011685984568997049388264217835473655987474679692451243058382000352885416929980755468859498434321873029993937184431013091786524690955851551971230987357520256573229836220809300234846519916841229623098452897513316126483846479404417688735719809765853697021824795987944213706759105258474165719237282076965578618796676077531550649518861938059888639505562176476825964917570285389064542551862733843907947397450789540285341988843421129401936998616050262251340585891915484557284438217633097409033094149155124634215371495595981309789738712316992533706321322882902376444902615651125654421443904296339609060441447951356863850215757521576260146057275266269605233130005589521747937883504944399659364025812065422374654231134690039579676307696658730610802885819173815575977407484696911250910951441586109719712067921599954433764871428670650490524666461169778187417711628239450815477618297390852782341664576315374184836634515479737072022753006769545723090734963683753127152966687372531915405858712147848624806139582051667843663335214513422813654664348946652319768110212562570448957762574905491150632618133318329215804359596692333241483582259497579055969832553845796159437987958364578562484004935945950196237665108000683741267065930691893959381679108468222797339346383794905703405882212648918032294926514148662888711248735918205733356409601957460480102793167509280336142597109237012007604170367468726794092265056145047029244235402315925807932751689064802623435601026071423923332764343184812044642069054417242304611024538615411828991753561641605476494583237493901308318778620788033185344782943207703008868497577429376203383885299634578028514823563121716377204292331283400647504692703939920486891436836475520290214250889492445216662146771301671213739319755419396550336706834260745747066870796743789394398139982302868357400827689173086256458153418500148336552470338490357510152332622592402137376207675096969096474856169867967063003178771697937363804511185837583053800762886601952729562848988468489425907004625164984899254941487181193662719078017489264346532516508763450776147839939053050240359431687480375049623679741215470474307998497311474818991348584917144591487338347297463613401209567101451892093328315756663722753710050852726920786691572881993025338660143637699448696693520211327668708055445639466077932178302779643424033512191284276877216987891011112823694070392133393678536646552356956034823460332737279075033866874580417197012426989983175485005815044783945106488438853731673293121771286403126809488172675621204711995081160630702705765217389475623454506642140184527713730820290203592360517612012919869011999163225464940946282300235573984098353982910142868983414317114838472719375416978078768295802588045256849122488761416871322439143648869483078553809759868626229272895994069158777848407224827056201142258484905011837122044453311377140629185741943426263401232342407068602880818053220767344746754925938060533791001276515990361648577254739628447043465176849240391501670295788851753544337651847844804409921432443384379542910514503193352993806713606999806867473271641140112569845980498004886267947678823418361010467104720785539919742538441104004883518363389409919380957484901157660251242500114721344258340047664912213961631428749819979581866888714134246900723347280946672799336705397097865388424230859392998879857501448720321211573558800213522626781866798643068852475307329730610579525496747379621242127156156597264241929227405453366201258135021038292439256176060486043011376134423838101928939354867700774277926963471970536734182887902839118649957706374032550041117844591640542092847723473507166516887557582291237360483356966823461649758577665761148650005925482073329407375680380931337088739924333946550931236754910195983442453329670243131530000422420799692583519737872133783936537630004897640943173063687797099767070052038832271810638699154894665092818993619588803853155613460504971251715543110801667779613474883435412299523019540641462736000269571761862037237784216390482672850088250228908435160305618266930034453018704578927104129469275647383946378309447137903423721669759244997822601664268741960539187121135706303345621008311049656159702981441035470490553032982989307360132317232476068198037848219724682146264072845374552630954377450063298337605204246320676304360618117982095932139031323604652123862205242223785872725469834280273748301589302585716331166277145003941995473977008736666259440489845499247585505757792037418745231562394393379573695503582024760264090709216208108197396654747230663148096704844092994888124431827770103998447863394625510894828750667517500015959236630212380521252662017047329806174041345808476309182626829262201486756140105608974682277197832988796249348966305914100349328510470943210969719051070723145397045061680200602064512260453340750838248347178820110071011282166855167312897835880276401090071285202529378741252836542285828307522913145095388234483764159118787273251668893922761194704109500495196695292130923935315594909857837608098008417972873028306363505148365262485960146493181323253267800357078203473573508865480501717916721454915671556913282194960659748936506962814347627455150750465472695697209239788482371818511613711428327412495818521237448813937983556631993690846317991825734900805283508318793030098136237639194364886398814001118561950218938044668478194546727042679555531231660778681174080470553408911474086725986522239610830605369854417674344287521754345079644720162452149978243893477751968270271744653631911210121304529820677966951409883615114469734278304733812787195565822561598284465594627484521312549996690343837573835285491916287467574666856149320344390049988559465106046662988381419419899498984312421850692426654948674718076430940252643377093039117873958532064174040190516401489662588062744786527102139248015110704926846209113916950255421499240591434552280750833823684782228586636972155880087904518022537798848952740097977559635226038123414231556684577425517691153196355194099105026736637640781257626129704686622636814010264842503963353032508101548302493016236004838291252205630138656749412150638167567454634244675998184731682710551117642463980672590231163318111559191303284156078141603496419253896544465059857712800729048477627936330261585772954899765274944807111040282955476042667987235444892987930622857201818137381931850158170051848404126592988023244032836974666486782975063876304869489474496878283691390640676666135630773969127675166175423774638228384865607957224949601999685783036073838629685561483014619602120698001184660365194500296661067626282831868875063057835821619122062606196070919222600862358954837972227539972665457079544648403096949652502027047461733537238265450384464174703326813135116618350873247735734012393143734267244895850511860122270165062149583124307416434782866564484574872579653925210640295658127572377330050665111998325693200893667967646460412282217408530006504039391939272831130883632362063242836676061350726422659398317860114614271894034774979498468687869483976778253179188030410362912312272043270089037061420419465508063326681787664188573995254599771436633203930953798164493074506213152177427279126660501481599710377370799609873078883502216112799013440191014786956747323920811149021153661366147553339408074939304617878329524439859573671494102015105462254375057227560865073919602860142382277009256797162816749057550984308002546675844545981571698528294657573207473334194011788990594422952054311105983815644124618420807137374973628018227916455773703698494571583255542443600967086456372610861990707303965094830250235828625343549373065533896188004974309467903356800522795625715272385345275010561734638340642926600896210045457835066392655511129652095128797339702132804360878486383959437599732585576091207287800516478579173132253986158599278530530858463852541873383379237440754593672887499350176105767941934588623106536484669757324773056835384724360439162039695927581223887397450923149934366847017503671911075050868342914973082048945907035489854807170296515711977943094458396450882197777033913189324475454270776082437436536311488586505378377331103891490973842581635479534184267068523942740678119268383782128757005008080102574481907142895250897558558222223516354380577324502499794708781621064827362721229137650551185523245628367088303120593873392468483642586332293602516451287540765159758135500965333263019126342389490150552865581829978702462704129761177190214378054442083997286667506102514976697857079945201139476828108840225553251710285668678573007263898793533548137796844123242830917203619782123707421229333242180872737625260154541048622380610070130502462113187608529217355584731199222033763786920094399133486437588988778577926855942767867825563492304356797612449646657290749271501776183618793412498744589233136059927869826941467225400889968372400273179513222364461324629621006569480340161538923722830285314701567499832905350561636102098484170066914873198633028612612222357321615520597861557037655784000621823313294655472718110981148539872676401014472312095441920809577176702935625201707257338881898442772949464590875532536873875545283664723871373098046114260315554114844258252288153509815398835772367537621229090328130930934659431935744596392076874681060642715944262677374654128703893176148296157070415928746281319774225734857105046641499021158217231939265787262083167171921785908526920541009482219627618606456320816822424392081232680896747438784198384983405076035415638843375006304362536745842635677149360909888181831453926786199715480271859995186618581972388284663572110853286688821220030918624150362127274686410627680641450563253065453915441573133962445303576716296080375868573834789107785961094471779396553874803592459606593760646406107904210142836195794366193347201487160283642490490130998846507103513218134424600748164642259118516658874899457148558721830478836869257503773560316430887707371231082585764085883931722572724471705844892655670158225770754239660340345053420381429772554086383010860203295340589499498053539268354428632675567026436190683869813252303900084181980475584868604248098126046780199692860785269540012252923311853030473910705372397580459313346585633780149052833000432955867658600650011261476115138806015305507637983488028553372529202314191233043773329328972894254694296635275763476770806328587082016291736317329509543412825881510171541718396940761071190750737424895840225658756534805289932693270720924381854665825775173476494882851133292656618561762127448018782669971300026909603068057322863107850875147424368434427884873992838848725914703054243146854942200472695011873955603458711665980345969926984499182268508922756942360970480686711352139814440261813482509617054672518360533667620871073925141736002903198170249517224647007783387575068865246771972409339819113199992309709789024007614783462193485872690361657222170672816213060335587848413681884380032700051383088559149041444924702674229522463853659090946460919064046340552225634995256423905151402695910387861371492753544976231586613125850450353174162884444154260071121660025498961698486334778565259640788707228665771535981865340726913805752920451909434508178595418729523436789165208939057701025105445780592216249312859099165293624424276596063595426469071451673080478258520523310920743862945848089438161641278909566382024387261425263242396994880980290624792183652754168091586483103438424411966805874921065679178587581479502316171067692054970659124420207445219348885978560468023009419787738057362526451107094612344930168356580319442297503689381466801807409614586715679073843259289021108854344898734860210566285079454712319731702912777902763070424647704755455958054289115989711118209419072904408421308271810629976644082100664255047507805100257124988646813711691383120463908359418809674215742008001930744418344396559963712654563838467797842989172578747839958729251800122182497254099004672495877153960202305936172242590189644927804595302908708860673292733185384530190605165052454922093301964814562891726918759851372012315372377368212668875087750669107996335644896698156559115174672880287406282316806399309410295873968331595682340319522283790371827109354359376333978345039033608347234713868101783449908890929727910916149859194082608626739492806307420246364235211753874327691019260178508967087253149050406620481332260282546756324319229638520126324672009891673315267172587275331168259935238390256823491778327709745486594216427188612853175316932120744820248639363742500132949748649375897346473092480619845699062835058573871739314594687771295452282568215695751775014415103832415583249853307026135329538882670490342006513539627750919704657645345586236396118319623596259336738564264987105762365044351976257272786074282024200542475839759556413822842910370454469613835134590076764010738481371720967494800946045254713128236313334550037728607972542165820616401395975471293628738166247934727858079442670281343299178439973602281136462452565661054849607329192839408907432835308691778046500591760654440366982299326076298941352897277335739970852711862170749421854111576388588748540254568710711973309420528739693110405885675028139178740238475192184488552212175911346407234621970064892059257358730200433405133173317227429252939592692439267875954833154391655719060996705379970789662814511309315687717386966889741246728308683291704663108254436839639855360981974984941880233799980277267951918773142556439073501251100130966745763823813945297584856746679828192895244640770733554318352054649215151638966891520493462083382444260133051542244482386007496065833627160101108278482043525112411160693730216631019282620235387088368455461245987077180708101496559514541803373236509990402227335926483986580561434386473552048886122950645695959818514763245119700100370859214561060362891029168827272694643871689573509285184202663108566345543272868660775929935459960059486382226717929671288831415459966017265723346787463808236049763573129039084846105126867662646558982703895808984978902893487235217167237434843558059550876422265065762321848960584567967836948398160551645709891127873463876062552779816009306593290172403410652103728619391054073360527554188973278803648165376122824962402671754104498841015575507330406665504712847254086169048611789057703112433300762249395852060461845885926168322801912538394255123501753879180996102573061897039232193223669530592909794863812418176462267717469877901271420666292407177414337793808222981566138049820791136918250790422882780367434583736651133583324270645780537153156181326821761689922956220049301095010424494455526323567804593734514320948017936988173056686835079155270918045604076324309123480435752225903655888281757459537835154012083121236822053356969068776679948239878992516557716791234131767339028197135748840394058710816962229512716262917757646696987530032337472989320363843124091231798212613391052441583527403731911204213657059233223474661605410690263541074288713483825371066255194293923029704563949291592602787406071958786733201850121952279489737626500279093447237827056578979655225212945616279328479138806745955884142839608927787946043133796561657372584613735699084146075673280803946548840051904729639371278405305229193747733601767564782538318683298971169908375464468571904621664020725174480534023619132384116494592316238651164933088942069842864167621082405045705859940523911409127495918128705756146174075479474689072601918701413917171336657836316045711283462991024975610333744386454899844687018995730946867610128113004754477836845332409862204885748606456491364280462012144124355125889704242657629991193869361774044770949874237043809791796764139802285077096632394575557095197105481005000854087683447146537065804474324040456749062936190427119178489262500475146926043987184416837154111715959155068306979206357584973875719419218611461049291237456934414076311197039335590948634960958018943966945187508294484206922061358977745841271319408202566037078113093962831742690474259846997981827875488730691064287015198164579814349972107571540528127979505990009422701109461643340278526441075193159214817961437237280773441549449168478360701191345648891491553046818389700367853196539264079138570737206517398449405795250383492074341356464911427432572259816446044579542454937325903234420879147990292954342278985862869947362885270497461657487004069351288839997467391348984246186873348872074614030349327698838426594619021332971540184168582440072395976602151888285871775462729139103125999100860047042790717142571578152727277387664351954806848000012307421502878975022933166123489150930653973527953803698493405843627705643281849980472425159714798909269261910577394036764398279949248984544718190028874615737018384248512934309192798670182420952427398372437034233997505615657443929954151141745547868230078042125152253597239150963653186350330309870420206657343907614589994736756366795149930234617705680635750674891812103510083108288473510796947287261292103609477307631284797138326090744426311375512523347609268489831599188571151852747774106402172950431194123324529033698920170615646860667946651202256849397639849097187207286867531052552022134965000265091607295616970340371514026062623664930812463063092619302622711914380041684060113942012274501318197005527648391813961408546664651658636931822035419829614525000392475709856502133340765544131154114405788586418194405494113230936999554635632507674510121992806566190737572443122161110882674790755200453330199929450913255542209651825107829068852371426912014342787715862039400762622909865272263436122024882317186027829488577443958461515056269731813192461603872730008017015860638010235207633940068527709467069614809420804945324471441114680483199210766809813592108536235122962610400465683946954110977531052251936829868197953078037926085384695228891128363068715477826990257204488604164068166498861940322264790321922976108151020136375233985742031849695053924618989219930295202063697041032122194241870187987918049157116419070265654567387770975329574414255748523916995646330782030447612159760823029778385912927469403093268050998268545155151607583613187904577349653185356966094474859837615782993823624504231141338873519211544874961064870468877715282417441811655175679252681888304808634332549184090230384633558191503228203015864655728518813483151591018079210222148189520649442356163130471858314192064123427064174217113348165830004586510294188651719145133494892899788552964435712656973184634384288342139275996414061385764864281303200835459383753845739535459219605015492657072672016729766505168144238607337663036297930304111092300869794835205891232673106046229318802031476153320668443929305894909436660345572955805537327413907933285451104231171151705104631731914632659256750038251082765784755672273193293714546842405162244378337684517233821425838014394953437383622959577603275556082532543436803377236029774722597195617522425283500611738771902997962140070762963143477624784274635008093358064931615747251805287671462979939115325053929099341329068280319282543184472785161102048673890314778581504916212580281303798676733813862219821259531330896462308842502150384428623706798246474558677376809309136910438452877555134125896210946386328476554252139986132058153860628786899014499931387480411570903005299872372264564688016936855429846321378003130009825013176408992822000356821562296940493517064910673254654468784228752782847842156675951106395076464293379096447896438960792437884810462239058577070779409082843853828159077570489700219517624024239791501109674967098720856357831759362386100006242517551163866358136371314387501020981845308152224523451604660806816601351542750563216274713010750050356104339946412353223086972052318322553870081671595664398186128263458357252185971379086105631295615282078813441766910478617088819444206166175223129272925456533592746011653635934801304111030077183506123519933475940535767842391614147157079270935934676228944994948864568003441569610813712724982496879074030549623596182495408051811411692833164171520845128811151216627571358294160466634576107826044540839765517075507941271155852530486010905272878458142609368650536183665329753613851619460780416171632389981817210629883542532470407235577929280154255045099689034484522385389464338865480243598225802921085629961860927207998766885227089084625935079124361211966405235524457239013544321329037557867981770214330442335655830611495670545534919964831769174949880131673913010357952440751217025031932639494151339438875144357061874293266597264597971435399485786236165020615719831840284611915643928978833825840044356822974429355623835219846854353362555438966372967538654834746899622351123712822780119165108530999632354749928131337004299962878371329034132076634688769021394002403663338179811294676955661126193479367797230227675091849090290423162864901128904404108763377618058374182671597841944369713653079449937179413479057369184906822461877918031010965173309259647100497922417887939491955351356044784168015457782597536956188804265982938825440195566362562369988273924373418551709310370596929127566557571113136429135773197104401077944402773822943993634682054576635631870472438142860356366860434934581648000675736774188779349623240837199657511210972644963017275609395934203879683464096453541378057971794933099400223632338994934708554089878939188215452964108008438528568524597008081618613117858057300787480209688621135320670428992035736217148035652773119118776972881638744440132679442019620157188494967918606310540280537634557438127922733854590193627138275309518618725224931823850439479564784061103341544474395273584375107382931268024205149534149408236907898622137139933135948487708488759452772160162460596823839840793314844657801112259894700346827348704905010558219655664261394794597083387709577468809868264504092355479330493256784008735711074969522365547290456073557510668466727884496232350191379684651500134491548335324322500736438750583002448806160819400402714157218371474146016465988142994311837765876648341927516978713220565058143298467080944369261432815574941959824741053907472680974651730283630787310621703350059560525243974444261832192687023540000769233556732727041958749309970929965252500180298739023579026139595177922032360887204822512862493194920929010224669051831403173305299378660531561993736377412495887755584208388281195176203707016654479676175282413775947476302635386561985391448902270717939162960678014392097652024648247820502805474469452082030116461013424668725486990539036490832245835361320138206090143861191614342739027665185163311046246284312260215876364784867282046196344105368481037918160522897114417758854330468753804042620738050936790021354944495510865857007990311816155331319965462365192017389586132754355596577418234125927964089117095293926625017600704191014685381922453977965791943060238237889140147859545244416847969529056242515324503579438319292679191393191313113742624070219540862529601942141164450128161332088174254094402388445459406559820279067256282245029218341597142929258898079638178659281942203441837106412201507628560461747625636682976168380904441132115235843080886400779885092214554849969917651598082994029287610835698087196430496671786291825532204876607827524976182657696525587180609534536205616792665992257028692751775305580491766632032911070149793482429675520690737252965477119333759370372562111599702841463292861004632561278211520493387480180605701509392653101342192903903900492978897567540206334375875159009024422312178874724009583410639350510607371626856917492702328589102763987042578432096969458814236165047522965361439212456956312362684991637534954428629026444826111256515998508781637158487313631994365623486315021042985028753482623980313904743253742218747059309017228488105651826356675236136568911406063027182898025741289312607339650224720898352147460436327598964988197979751184137421933325675659257488322949779534750112473034136009646549354749391982660930660992465235931141039638545130066203341198059035509451466845465275910621888073443653914900291274909106019667634501510937337255011862927659777949557877850227231346792354545530784982150883647617380257454401175965297387691956501271211404624756976836379207031915468445226645208665623373374279062543455535099066917478862719171695636948047215601288985753608610629852476711330352594353620546434593363865785798621222234335288530871057650212857951134121380516931383356591322491710862056014630038672560298626704622247810883341346367147823928089910511583137064520597737433907841866588483875043783478368611005356563039056787691064830485146748657189147883977159248011495750382239325651400253152882041507334690561790090786368644417557234841446834477926993311535847473448411568931141805076973954918617509671145685759440140712361506377739771370369429726356239574810235192648042417290078196505021202567413233428915311046047354136285461994614431269523421252090548002872973410235601791466877114500641858796890028558036661812238572372226222358628621336456776987566511152614452617748349737855443661819071946241595015776127677639131374459624080779379091151166162509350523684035227443224952129149158281417184610476730940051546513664636825256153878162475870038533223482880277045148011549098931731621414107178044284017796528275306867649552650096584528573950801577813073071389570140571839910076558292484363616273796488770013986741996440947010582299918419460101358269921376411879675887734122929986882752633627099129371288762441568001048115828272473705243321382509335490075859209513613699879358736044635331940332493627452741478931833188080231452546859188062891779567118539570656341839106519124130397269470430841821948141255754579986181860000986572258195299243676642224861889390740942896875651420086674239794987919893417962846344912807047540777093622511468074451086121614020575702908809299621871714669380349569819539901148136171117521086951940744466075324563354279178527720921512279115793016407713392942096021950016120047589798586642180970850486591713430517326874206952070368201224725909457093879060876695063492571315065310318481200221406108783302958431801319102973311798703826765137569475610709579934761252822616167430897183484110056331757815932261087900312863242801780419478297442726557906311507069573028588270797169606814031872385814018351555992722639546791362222559196887778258338642858308598538685544786467993602754481779739421999265776825225543426998629334169912312209618202361709341546973911242512558819540451040025459864748577063872401222784346645738129908401509085556489259819345134261027558873665205534515713308395107722562605905141440545554567611775664905540544195771049444147882475257274396484473827121531185230940999425053478867838669221609606135714620539233569462229174840069102899151848400299682377994898809108065225511939068422071775823789946439246289165674984475576499901353808207990385583205969346403215249876122523286394695639713594888143098725705337808505499550546998859594721596732685112704301085631298493154147620305415582339927049286569059496549762368016171216295675485755497375738144011192699142840704797001300422760401295212950879568176611698796148084410050665644654222407980679201810244464226711701043107049605351496067037178099772043852377734551353701025923742031214753314470695785225828229057711271326305882330019944370129297102795064139814139046864263524205004875303465698718837906311987390848180218295507433924870894955542912935083460441478531816979122531880853050219056329503495287571500988216009956770293969973660428784642358798601115747862658446977118086610214445701377436628418877080640222822355565739885041470127409999763170417880224620716797082579348946380819828620332461510159074658669289401944685554966440802596800213179072306783044378206281189353668447231824921035223122116915864864885193411944257496726753955788518122988351622060308912523466065882379589335257887894703904545151740484258585666594314218008263312029081240512694229528470699834723962376147378158559284832507364053757275586653271718969874606683676517509950836569589279425004129101457587152315440214549412653578209882202668315846862193106962601144139143640829609083168507276402486710331661610704247448719046489678423354262744394371845703783652166256589918802576923787545006725043384810314021856634058258209436066633982679669240567224708318792384854227451534181164405395882702263626181445698596616360617678828664500347975827247158208674453183475054378335947685717320889208598283148429066007293950889582536000342206843677776027074523328157587386486993397142821482110675272911042836022829628415439694869693939633893251157812039697446559526656762527958500514498142102203028033201923722019766888146803607953731446511466740883452955757877340972568523482183147829698372684338306551631182902038820070559514993191571967889400205184225950922014588460568482374844726793106937901054590239477735707410960157840526734139752884517016182451817205781489022719661196024768237334398575043296182696275182012653218461667268779714158897649818282598084766258122443105372818848640428464155439095033927535839999225044468994279422069309282149570204412878750295324099274142070367870516292201840778785096781824443596303131416681989978394497694895010192969251525022574765174892342525711602748860869598616724520514191290980936672638415013824027183419214769019988261854773481138377933858462784784149515319961694567009315438110166177196525742695604279361629849598002900684224411063036036154686997765705735105439117480766072469804836395094032012164310780049064689561543860782956068416652331171307907570058803217827047877718711820235325075074513478315410126703077168163765673315772427054990596756358772678034616109574244958913821280636036984138174143616864432851533880101264042474909114854865788354527311149820487350919188583061102468893657502786189980679231031544025726884617195701799159280246305883867037439402919680360857776136622707443018795601410457306752132857445395078961763105225549611015928889107656939385797472628806044431030606257555547299282521938449074755783212911102222221618085131271129255393178396649776926526171993596884284153037808026086937273151718059516746570289890565193244534078179982958520984544010428547202694954519507579206572925699388323867686818346305450790497015278264680339805538446288148578194831107835028707423686415369955783710361689207562827704257921646653025459907540196612802349814170920429355622999402499365676898043666073221357695479448811029570197863334905982547692747023032447402275324042231908032099019599362285930256194857265800391711708356259340582471674087769745744349136575786011014455899480784576617752978327461890207366789703140281904344557542304338393503721966713634397824352826331336487247907287816270825122079069127306798092308469785519520335654182741167709525590113684855684100126055544850806138327499471257015617435546730307643786924737530864815816269297968082551631926125247772329558868757808150613253789012304454233369993338229684951059170687718208034346437130177533704582653907939663156508704142241576671631748327577212279435885554371053358854863946010504068722206510334900388872289427981078467575241477395810087513458151014643606925511779735293914631951778270883204048828866114753569177805043880063554180240136290128622929638901753830931446598250778936624474995217551549806537885955985864799300754198106496079773076145694669604232516363296135905960540127890302552914955930788617025246528342333084568346808490056558122515876789565324655418368770400227041482661006984939032284829734307235773472431558791591991338448172526379822040147814705603024938754951699569556870520277619328129647052764472547704949443195987327601643274908257430296559921184080756838156210312207213382268504716803904384034371534117628383252089385299801293119101053121521181051895790020901073222029142921742194857783538251160385603568727859871389487296961733047194584763167323334624498668042155931099428218085639771728344095020689375163081003616393664920501673958084513030231080457698307336979375221356885758377975575779228271513061697611072384922481963374497687845083738052793826823809129351548676554047966683325408250722847232899480463673009310382760651292030426420280054685134815056935819141336859213949413496117470807839485286265794322166899383992512856666518221991140789593609318967512584657814231839899617636899144222163276927272897014773747332025070972109826596183520374838051394253952885426354952971393861197102146500727864198738127092884083465513438428958197036158160290389675357561915267195315930283024754402186302215516435687897812762865922441965107911626836723397657426707867839677023225585671351814559190858810323708405587461932251407627330193738029491306049791546504509139711604681711645985819715263465490957967812788300044628739598772325366894589528177962523206532912832994713214988562714530915961418850815980512138673749111825208323605729492220623269467890843996332713329568451059420432589724148532942365423775564989061428892348322591979242359991953101739566397194801857519551060037726535613851408293955200512855194105580168735220229298387671961226894866288069667787075646960287573167674175286942147235207549304286326647060618834572825462097505951792693207155710885401606668260169459746519619700747697715080186969695333280381920989056998542422230142040157878388512582847858564304782966425769370177547624923292490891309273676607108566423023236558439001835942065933983786997204635420177283395254077164170223952102156766470244479965520799165500103342681533324003987544462598729457669473954682709997706215777304448806381285919194969879868739307395614693318104164812585264665249725603714423977751345164543299708179369927495614508552387450255916351410585972916187967157857166056770025402592738549107142378564402814308798320535194593197402876195095890307208247283897439469034507817886710432740855174625793565754262956257853189557614768819670625557807450550369008975736304308227201192971498537688755912657070741604317597711220949241249445266664471454282175567610952998141684555085297417635718932792277314235666754893567819381753817623659391818193265456613039331520156774024262369888777449835943740657036082944601124672766411373322940323941529936129890277835808170147471979579692078612066004589947599628971580976408366590181063855132678573108977561701004204256091222301609611836213013664131518682937377517911655727245485143654745276300813253382383862883354987787475052824888212600005709813607128419375849898450064850264298586324254682881217743242775988157575436822246794436838154962076179363150674033860285085443149290174996415460147198781960884145772486269379492670774482764313883254231182059699870919899384139945775770380015237039411138899710115086854509094458234851589900764282853823787274738573692214562119015024885149256667554263474942695435109695970872627882543315491634211805274369247754235103736314531519265837474531958453670495808742038617298730150304940463205326569222454250658211602401721654259531025879634342887395805496115878972582419585325294032554374220611025653739181112582137549314662558666107786435926534186261737557804438711090497727782873548171239017696118429493813172920594791264454313224676260933723471104442879515209805640234508168547736045527757855872767072509863704283014844886433226117274803108427142252797852350448556261826582502008449249500687150152704993364276949494264786897594878268133814873909434218342237145045591508109271269979764902303567286591309313838859663669123377830794443544011843308076831090157966366265399417868045302928447808630147822500837895824889792549493248934548276924033255992033978649447904566811914279903035162326894387968257779619039524917895825005579403133911040277919234710843132919335644063667295662548137857456242053167331972851156752761020767761617363139927640798372021461061019544615568525678396259295681638090218935122095634572352829209595522807093582068605317135464627735418031619017788859908605861532210891499992262235938164845852932226863028249407109510523250257110783551226517293277943056026089225981195253601714933095653619690219463317095782639937687425639215056140117423975634078671969180634256166345876814332962664108512559029745210401790056051147530075680942580275914627208482143045856019403525424709949185386703372716663059775067180768639003904929343788205013848513162186263423085416438978719341525300681756181585725563532394361606986778150379066295921927483196101756040837633892819953205608887394554056948112629766344860962580275245555556208308535641627303573987099858017506473589088416290390309071400173759590486289511968888413416135061457304300556028037421638052528486129570373096311503784079585660856204090004873339345897565555043016363052254951712897803588163271654732693270405573993946772544025901757567294539223158037127638106405190122754226121335358468704753900473129431012587994548654929894245146534747613712016466610768805889524376864185280132624719399235337066239988586497715944104662309632076703160301575740520821813750852857175169491175293689583946319634373710068038414342101408433355671183369439284667324330473506807784076838513520210918464026321578362199555827347132162448614598871058883050602542225927709874836035921817931508360454565336499253116396810848358743735405700221483151476049812920300200808336419280757696003723387903373778321446949369327400153592983765212708350954838219018680575290851119799448430094716662315707968485083662951260600004525480261205425403706770677208477017014446483860960320007458764099473007743729945667076380022893989145614497229113630298898962357985249035974753006277700421782027455342929933992032677844034188239554282342189789611065382004613538119041379855874254756299865252163298901909525332821443990858794564311722980085260716806073036748134424792029983374251930235622298167539050557526794600120472109026107682476189922046550845162327889954721566080458717144882896052576076205173957240516472162032607023213804022452932990318503823692140746571582045874165467702380165071926164845390710879235006072295881844328166988901733863912402590167570632976765236205588360124771304607462079156355817544870040039272588074824332987630905098008544851812490284045854410870355107650472802446149157076719977258312412215654909678733888278809885364986114701422975517167619391241163403134122221248515712750632562331935713119098626879439594530752365939315711170128145456272082033367017190344433380640299327241393109777753894832237461300451143651108501460702633197712372814084981687632459439473302259735062630465183895678362743581510210095200863213077444757642548318905380851218855958879302834367863285211898773720482850968420061170193629838933259445005620817856676525660013790482330035442307434938958663101180330630957363920140201649598088796439738267586821190362362609203927315367400359411660937225649634555772492805506086077834768264107279652491775509363974280722920860470393091980254682443524234544883956455332297838991528000474462932307884574780023233173734178000778458482175456407011591059851264923558516357878744186648166681562819124460426582388321721491757594433859751792342018306422576730062800359983138705744624515625305549715545893226646225636936610191249640489379025097449655070882983932108768256087841537218313928861592207759199796795608429265128570177898718435783504007037845246469026346592927350125323127485169872107947435724564150483825547465554507664998473036029722861546074912675475357495551940707921626177525512255255656276704272027403332230350763633265497314289630801635225190247741298459371410424007188088998606477525956802539727276571035442907876848662543207943655551760332005005025549019282422351607091547854693927998062887388060417950069288314585948354852146559815894574293689936371842484317178975004461225076870924259303949689244184489750231468488534507512707566341021348807314441686460705715102295335047442899378687857709703133733677255694404736535629033056947102320990508954701361099488545937791801265841014689988696265713607562594416436986820369411830864456072561805304558408861924840396476466126393638337883752638013164888885127406491861940069576665431966328304918419279028128875870959316048111494716742784714936099914127568732001288256106576004810232980111964144549649612712831098695976014766568617341009932068762430984765913042042654205238541555100308002875392875400797662735226145940205247204158353587058184911794672023429744600397195210798682003744163033000888242146803001484603283395573348556781041513776302202312952242443861225170652467014342418751208574335230652890535884490449075681645220640242863334251877471403631800746028186710431294922454850140852325049110661019459688315465928558517958812488206969703576114482605553504612813971554795925257737550223351835351131661900006100106114374028750348082689372511225505204176935975754994603575290148629615965458668329546114698008469445167148460579501186163461898116513700459058051418221758627181533814406661364381558597220603349193808379499072951505157859284019941302340181015588639372998378370412040237217976197163423147466922880252624162572762613207116760051061207320740390660598569228896594146990687535209669036216458897881089060682856738530597712064884354839004627863854329539377861150831610130682861844764545758504676832400113883765870274724006587451663588254315448656721457957765309459660304153586817333198955540582652047529094974102257191429863518490829729879029041127037226531143663895664872597329886043106697241982095943702803531817342268073235123772712177740836369687378236032613163873928514017244290166057946448195978600558812557503314383653539939070103595096687563509431532546249575661751956607792219213686341162597803066315837179142353261243335761179569577831244406008386173633416445279958451247208757607625831016186459364271677700521870755136413559628150463333753179467083654759632463537637034578032667644776642407524743304778407642935635607857488497393634060290002331993559103821343157968704768765251069624117148918549462422236372309663034061783569109277624964170069693063477843073210431601865497536532176085216132413602455403234424120865261112093288842456640620267383758093100172804331567232785196012046805883543488794867044767699316876525734607108092661399504866041025523472118440821424682358746028682683488745467323799111167394917857311232050123961143075321492861724185762824901461986320684999565600439416223886527673715069451365982935943571729247548376812253080320032005376544291588216315782124676476724320665284135811188577533087297449002900851030875204211948538024969703293038771802256432125723866847874914264240677769158557964349922516498742699557830101519699807721253731055917804959889213467314306640914895404982039759872205365828026909510596106045610890792140808109550002150521474118834316990900043356829957491246287966640031758013172633804379089071296774906813644758372393369099391649163792654202247463623107072526566891766676105550515389851219037879292826207616357445341972674221420192346201031914061171739916577292989326140693202485142432171633902499608140941025538137523245685249416672977386411072287900387641518540412720740988953152144748241350250853931407292256590882928504841229536094874325114074843052633192728370208147777534417586270750508052367914731325979158909595955566104179964737139442934045558814220628342354435990032212585588967479956180601012952530937718631107981836646976757310323916573148411474192916856646862882176407770753575534556736453544964959781311136324293488892296124582927053672049723807283560162182615110508789740072423186887285415161896871304026965708709197960773069049459706375675798353866492000330467431167709039051776972840723861544131917736902935848348839129936694546262880371358503767065039035588297063395867437409675822006701302626364084890008477569189594937222584450904766702373907048102773063524409706616030590691528415104088554719367184081714325146208339659391944662169796198086587403383224509410306335145088643114505535560190493012673959080069878068158914466818518380638649475483544045647750827298846428344782631745318534338366276093046752786946950735153099978740484424091375851808683659568791224398913968554300527314075737326048200761834831833399486826095133795955032347452423545547889448254544933367419402577964447529752605078294837707291081100113926718306987680224388983341958594814479503055913649588637290483288349252635184268942038488468174794278939245571482385556778031623795030093855898970155562152635605584140631353855077728253420131616399404152759744589875878139645068873104805877004936238058763142149128664372848117276564559057483150621314344465986791345682979931959531815741874477028098617524025926931289117774501725888713133681574001337172262739301480111156485322941813202357531212407423550993831802239206928628871931656466026554187323478842382913346477989817549685932302301675428013675523937455361677835236783996123528965812154581415885103368110394207172068626512082987374275176358135184187557664820240038593784102258355690419073729768242961715871028513519229067884181561053788512424412410652402566994146787734297983551217569947725556637749379342712095188987004690439120746632075985117600975041297105114491523205418299914454679325887510327404572111696519640972236976603221640082284581282992479150664663908533208328686290596780057415451815053781880814640257312969020172821952315693605197656978698834510701745640118421690943731818895700833547665097010853484944660761657963121377176907507817622275604158573680010671996966663797131806692794187329099421835903969054691935642756313271776664711323400070302797541279944780278069906051548605523678282155997436754190148535083586459055841511644499700232342130699859159569477665426433169780221879434289756865758086249512517414254981089053866892938817981176960147289839068683743248144152977787064682365005106406785242984011381573693984816208661430700094535649965046773829373289907912327626677742359157680901776894513032665506166710727046537959820595325847600444133824244852995747821788186968399598991213674811781039991581367600750410466633313839092920120631751011733536776751117951462537264551231940842728731860524497707217085287141478201680273633158810628825209488708538532352877498986319608289013530142957956965232162927756525784205331979397885520247125592572089711611405893441791659840246671421787899321763781644792813216429268096190533068502529700060748630807709915742223085166012918042167105668749377226730794914905891651887368323562490275509354618138219047128790458561470485993513444186367878171516769595015988705218279338297201442305654099322820104359414636096575372721621438108124461513236562021022615040480367155705945438177905142494084979007196114193655607710884093027166440378972982033919911964752875499693094461562356503210461445642685052398315719929767344578619850137832478331292017009726456669645369981520702152777406927729376116332325508742766951047047361233149754186894837945734886537430080657900649822781788729119717893537125679817481137946466157178494350680643997104181915245168045682887204761219025049064841672965126480893532620042605179731862667397147338408980066662973562560728949326192430447852144705323347033253201156547233472390855758715408364881529074416523586619513783522297284249767405988598269418217313204669114573969078298579965143746883578995353845109981742793694222295633353027931756680468466763654599472511022735822799437764049399209806220311607967493028425304125474580225790599277901055234700460303129273383687055363151197957594482602709572503997674718063886646712479356227969806992633983876016332404422279095716615388192817996534694248010208651375201754883232659389529385936864896409835122920050008438964972849693116222264084518760185472274928907188621242583931340399205877824714899243392205426386001015121319277292775948869223138897083489414944386683756292110570579066717056866582535830921390444985249959329675045277859403446806450741140659037514699035657205828657972361907437584220364103060898537410665781475824731473600876650053318658357013987188042838531500133797393693798574669419944852738930926822011197346172845255511719350652698811213153458253484298155621799336046334388222926624294840109378643819547660976330375554486509720086163464840718687098653995369534097796192395443553250287851723606089819458692854898832140648988923947068130055345389150831379187367385817888394436084736477437398423060537376074665611785908480136876780985011953271118127577566526339829000836520222551112913326682320464991188173609891026284805552823967380472418353677253022040275403439483906750190236114485911730529607824019144802181172589795408914402394944394313868870842217975976588775715856357182637037730944960568846186785121676345896133996801780538097516967922889650458840983525714711956170580092448863276213535660485049426977721065250502760486698889632581888044869738777716899290431800384945869358759943314223479470581206342337276522842778596174597418666589196032613218015889835448023181991517869901713278034849140424176565056938520191911029646732164213662631900972081896406974962635317359973927335033469263577025590745086619854596506749724305151011658164654271202658837128982838345591433196407035849175602453464746861987118273870828518810184471800020947237196962880310089411810664015506702931698163521462122818864892789993793414834195482696397605903299137408675069884803534200549082117621800791099844451151142764635983038426098434446874440715509569230247064177806059127652602918139024480123847503251851443155300208398491540919027933701512064993634601689484928482879605283908239120847029146640290991161253709649727911163638350776975728370138000617833316724467976729771721575310764966795838733797500029240655484548364510246940680454138741995970933186791690984130006863515402773855074121629721198433335163180728072611893934456402389783230406496145532432046014966102442508560113969619459973730996552760819832735312820845666498608940464373341635655747640900157535815950452639742164030760845522812831862534897069910666268143181183584945792185187525538223293093295625454785800431678299075639395982385216589118898264387867701370911365961686060305507100460330511756851084891226227211329130764204178037874068976534427837766941610343985546217761650598141459406798216517533721417254535207653647753750530618202110254164458552393781584279467265482938499698031328324586206667284863131626905441914272209269922410648311490674527860732171404205987637957987379278321618811520372584944012426243345657431646139049397367909243911305680438436730746911592256843578874132971028515086899988205736318102648639863891267793028225022224189970050469849581729135469919004054052278554689854994481800594626247635198005398061118979343186962100875523857741323274308182431407331607482163563854822235155581673095372728283699209589875844033354400605647662485543838343908487714888358717112199234739976313957522255276705501308616374446779089100307323377925075035014804049361535658799662763836442327561045899655417328926065558049264586140753698501374424955096141907040873539584983289606983735034454105229846775061412696240942354097545569043093879368224992006284775193029762577330705486884119956270838795793220193003460552554946394012073263665017021012290259341639981465362892002901751317351175052142900879356597675082044001704919531761142697286909247833211359163412171837635120946997390361729624778040322388860787830048648037557051300368764020631764657285275671068477011892300370333649174908347659521821982287091701044659735735869026748090247988120076833437429753781927863967983386704575490293814746156655649396916442195074159511412387966869255189929599176054332674907043098608296160147184977606859836967891945977567344622234257057215904264755276207338638096989217262751134650775554333172684200100689622686683625986651187934485461950457997416684086061598825658254730716584617164052243947237950059401177074888525790205262580648244366315555114676640115833002872944264289747497818150131923506152048575779101893542510529082282292727237748488740508762960820900303215103385025378900844459736130911379553889026790551901992161440349129723574362697702280483127400134071074461318328065473952981663462363593426600122027431671984495419882995903036916935632069669596816927266618540355511187457702608569398300031882942857156094632112095030958225685477457724644383202063560111235792248626740959411260004830470242131561687196863345432705644712155552143248124805965030948691986314588096209119026281737379639292312105053476994395317545188259218216032965674209919110862361499685543160932935275977831149514482682291816281703620333349084472731874592516283204290099366738036704922299942733109885072227957616956437634952192094837968645412105388929613568248440733372395200328779665057264856178718337906074592864201026366066771481386099775223005053989365360084303842800314724084932908375730595201104795630962952034671429308173167221260806214412292676610863623969609264226905203098874855383782092383065686799559024601381086688427601909362571675450607287441773757247748210937321329660530273234309082253759482558587552877468318859304087399734097531653053110033751786657413049465862428055274494336700972939253435661951341995462441264663258907709583504331814258356959475685982329954993837875432066519442456340012739529800840603845789848542899427019018459650319354734010129425292590963043062158248081158954926738686953999447087010063974986834476922956512519314482609051010220438737397613398249480058894808741896069278129874084511752692301314909723063742784242830514614269970555491336095813042047045770551318614053591756701913946482524105311890840738186511238564706605287314675949772804319626345003884970877733544206971270440764869514548084578142349200662960141606002328626484078994848710524898873852273631131266629727171212713699474994578608990097926608355923979033672993465977437740702706273813295136521356689147525884905331706506960694315607000166168802320493474171245364161015694423993033086540734568303323922617419422550575201401523277632552319097553906869423679707095968776500745859697038182376829622927243894913821901750717329707352519092470862513666467752609713249157382481667784234941676663240152975969218833939534333988420093692560022998128752500169778067864443221277104051971429079753371858169204037028608097122250181566959777046788846699842296906065732606151987797446967975177829306926887403100434916387565324224776866335998563197619864796573642941096507641649646093890632972762442253234868831419124397582110740399109824176336609141650303840035205044981403243576415504982636120996314250988777527498859845953866170952908615850786714303400922971250058793298603062056150815206780596251968470514006787493685056342458409803199252462992411685687264671737618711715505803141096050475801826073611784830688829487063240673993507101260462466277016513750125610354838363896754916813217940584521255738582178178178425426838095041992389081749701994818492146961662904004817858626012851093959453522323684570883875621578726835609335224514128482424549488328871668025653628613799404788445746715785428867190627160044032662438883450729848942783474701030224041183984794763310330338819360435974214199244232748785051406301203064044268785507577426108019245830848295756307901070043895655372143531632269255291618983222958337254154547079273319784834287662394941038187656585836582524287985569593519077736489357867759059086691266702555459609161681078457164302592314041008584643339719792794466934062291615690591020293915934365886214061026290652304354155221902569924005818156845446885502313833278074998927878690662647978600550527352992640331278654729392326792972095355579170799784411194440208387058779990011821550976493116982161509811160456647121492242567321955516924702492120020453225377633130822009062845521433152617620369263330050110377202921806108951609899967641215839367936115984727351525218783209560785005040959888936483568979096668441066303022907374957886552955471601073672221815015802530731147948342051999137164764175212841698040993640731940546592346993657715116946425421764654129033828350963733315579370118019391231947668550605922473692569252272460878365801700908143913691289109617907404203893933430815746490273232510033267573075884698410254215600404519270880996361714294615110625685852601863722545447704030503035854213887128204778189555256962942270987569818161961610658237150110325215903754844153177458096635337960225075279178177610889536083619312466696033073931521425853369557365907163238034041445444466699528581811900419304118642885136342720002577014256594946486660036743376610561699721060750175461865567524115766682650740213572373438835039741189741675158517520794562830779654600744695137115024936801897186141354993285411837971127661553624293804325805155468620059045102838444942943673822601717511527787111671607543179719108674326692451990502545998702281104264345037008556387822062576386032545978463397819336954185113979863153301988632875531638360303320976498581253831484551949891161606245171318796596180953619412926947217724650127781629643631630023902269144961247453935225851322277218348637496781521689098304779659667217810455003443827500822289090128369101255875708414469204357928230720445927233687353269825559347387619833567996554984103466545505103752742081140453874249037130664543310935087974080943826970613139168240635940213789085776740108803159487721568697058481831208310207790213755495376991828191614588977400713984465682669266477309808543966144425886927374912487567003329808695385649890901451572735272118610609066055532531117572894150733796662777886167485862182720756863781234296826060201805163080635789326122099409769502378844367813334135335538385503700906353007457541376193604833981703258960321937577987355767775904863210449281073944988449872561708818095413592138279206956742375301983768583228145015229796014251894003107132040805486477050819495757874961945228518328554531520122134442172706297463633812303893542149041571840601019153105351687734661023631597368316143103352588648399317443001524573466118562215917149269259023860569688488465975327495257360802959466193149145967113542037938715174732608588533520350143477526233793303073322836651590153187796323925336830919648187596821283329497332332287820997315476389316315798224498545581052035363597892711208028702204448381204373601113178208050046385564565664810889300553490581542394348381148821561180420369401410503994214717931076520845353864658448744570172309420202777622570030555608912282367211510868887789383243418741749811712917409238653404469120621393115897197733317332509637430560130153975386656655836269977858080530198888109409524829286534770140476531490720386372709511936966165344890579678592122828824167089857848337275107244099047931397940198072119203645922343358745201143017592002118672242353318441171532618014828040237260995861849813616346048276358289410169292480795781592285694347803314626614286058607102578245843595898140766928177255079544202403095415398326479179001861433337483991805099761323222691225639951503108188993458821126587835156770772935298387568851364520603079206106712316499957635942967829915018869507027596578217384610110318660266304413155794656337741703205406569041003980686179629390470591854661455127770632701427004223855842639485181620555027088974477238194166627995638399236285182751868809929876763647432680930567383775008148323473784419089394821619097633124496895273056730047506674474675153681452969193178301756117202937808547066023219966966063985042332864658289515584812663571551672329343255275657471861187612366577624198565917479832543024528721520643545127146073846341722521061801126019923086239969410893345003924319948891289702120948238477052222330126204058725131009732627277415819294241890079287722275594269892460794221267980503808328948618724266871906366005643461307682554132683805548478641146024121188581288748493729267828128459490843000223539017599620474139531559086180550528794693021046906539832090264217866841194895050762512111091144876334926017879236933205087325498469868682686143466238441402014966013951981931320617397836632068064490043848266853381042213724699735961590387530126444282154799132515469074087305922618412816580867250079995950571331528864207611195389303015560613565019251862352616457247404640728559826845902424900111732943258524315544746757400671907773591946324818636077579631449702723083966980094821766855346437189431545868825435248614900405103120183931163437720605568878243634119289524206988385139734159049161183404538413539353492753194648560523994177757993090727710726897236966443007718546094880068699330797955320815969612585815889342641572583209919601092707753166601546615654086051849629209163869185889442500825696974039093526588550858635136727414208142089037907870260939621116528935573698058831804118577711972195680647056780396854459805262487097573263579552971153229194813222924225720373989996888980329656861305371158380522993246389385914014148345834661115107463112498904305271951933974769087503560192707753620981686068907079416745559218088735002842097346249604697129256320208302005664868590407629064351087656951938510653808981699451397304679734925794376108379773036323811326699941906066994393334573187317564758894856125269724807973383227734271181089513255487706673250761565973044498609475039675961385054161116636932980134919392232171045325772377268697139610196946786731543768813442070266872407309071221932608641554322445463654077854705957823464421643435056105291487890165558046250834123643981210749172863404789288978305757435243758615362360217104651308103402687780469141355752043844801183017381069482292065981157722325785971635850569991790008679585259689086881297211279759499575124642930121391926742652052474157912177954171460573994126957915885654240216877101743669962419755628256118607959604629703824473772623536903004210856500237469290059538887611929986708367767052377366580838245148922025646615493433084769901452934484333439554296737100432382864230492503362196976835275177900775949673575580087875062073087374539394102841532480671407187372326666113528068018549123444539573320040698725645889638878794665151853480546322302435076916690153113753283942743235946630401384520172960539844330132875758633444156985655565494717825733062553116844582240913109746601988614543434798680259836764976333216530261593254305069698888890479394972167157592048850461792255319505697378311607694836897856472549359478819734630504711436871615221286444182829208241109193180337954051330712846228953395250172783234711207761989568191870984373650020827312202607460679691529091075286070919183051243529914472477666557138050819997480883126183060965268941314357329603378900021191999964804268486184933563031041196963254830268108479172999238074853790019137325464712283134118016780390126822001917517988035484719527427236229580877022435496305188693095688541510279711499245903514037883589648433771889766593699396933819421336835276410640882333311125141899908166150958327477576624605250492236039008926118578894989275135439187954421734110404995039144985962531407208718706976017398671657119929665257962635443218831870248385691810678787808144371694187948878977637135178745941439455722875826995213431997472645521143613101907222603830071993088540330619717177708773281575843039611408903951572648874231673968261005583880597585809150364055314759111828017076321904093125584439332257029379073907071260181934078800432612415291565425053565525255191764643911420233103747542729226467063203349345492952732607250137128914898539818527420321589698969948347546571150925112772546740449371258379853964419217828746526282839532811585315287775004655773183176305615704896701360136381743898015069401667345700976505733442326958537369237350697597409665354296245008233402458705769599451292700595467304125585963718899413479017688976225764947080937341100380244911428064501887438906803117259177456535040797380036043587236812562609811250477178330062306123673934680319954357618626327657775235699220163477109434356145300416346421971745078177603913646281850169301566584721872498474168845055553996132123366031669818387651283606175482303253068567901661028092019518554586206050777135635011621618878533401682816125059389801835315620010125490958046777842752829142818590241616103298666301136447507735070165572096134129581077768160455000401960961087840233677850393689841555447045805794910456877482488372846585451536421963842895559492281386078637656823545020482444374241762649821774739014849379035032643471087503885411918087857587489282215515217088195060822027094191772883163523302287972999193326242235973458044270045874996318961224556097533449969714913226718178321436525907240006313888201495202969890152749575223257343754057968329592026096641477185161718441149357774674124637888446925590526676587645893313394216571050871950596970131383473128418439755602571933923156796585604362553124737971324849412649441068907214347710949223907730264338312670240840539705062566624241317593741261264660025232064348799417058774157722613317532776077147418737975694975370298325523271078544270697148917908031647704323911166986113844868826652793247678169052936690742304199292344158566091803949991477264357458124383578763384280289209646274610539775679023363326973471618679891842291922787735820913962045751315942606963417855960555617902007538578482607735003895277878982703462830748368784661475436249081391446273414532579840563167950615473990648035755618376160250069846751251037317313165264593325641082202460962495824248313324906682053081907392098635384188334846928946508328876737573546072732230081092116131961989866073024008024166015038688980389759284037967135610453905190173148125661832804876544853195828549043179408499705275737648447774659051800585648875867800869684235606736433020265971000271029622955764472604648500049868893398786256646453761480192671744475658317084804673851672739490076779374150050600456386676739137808763392574922699491534764030587201043277257858143988959170268505889725270617935111352223241505186833053144742708963061830928812530809536943312103877669994923587049049958366307579797918925338098248397166607473974842026656972498880717073127096257377352300960517259717079444697055120916579056950427552161514759307757690232596862971997076585874579604910609060230026179529233010528868244016456634249105532310022921813184999467058871026893751733337732700214266670163448670322322123225689632080472726015849428096671749857546701297626844886160359188879819127096337706445144776484423472902493402140613701679058644890039171538539755390755029019385282892635316650404802766113386994691660798291322326217130744064336533408486026587943556944125441622038733029530953464150040009250688275635484988928234393856227470590532177251294701668180816700070558623645595815739360245782031544072823709436111679994533943412367601721264624497627250157981691191770203318503182556545844808419176998286387355610575760745007185734284458839275592371128767107277634707870028444026200389570983135259290201392399349655631766786271167539005959558897323190300144794849473117424662932099216436941910795755971508388530756637533486186007205829920802802771782056011878888183672112895164244312040747734731880274784180392010739245550029468417117319503265563180851721374598537869761811900557482004944684532047214977664544839310319251109092468860877394919107631577321359212193683431148209957681235624322862991666847346645115907159401725826183086804067312524781466489161281737516311416587691295092320246103391121312854966358616899415402776558199640119627684354208469315081472471099717338497626739260049840590196009478311270463127610230181505531517327303898894757564900359494667407471208495940877604107519711005738334360647505519351629595431628836224487875651421916995086948818487717993074393301823083208294345046086119921330169909398809138935695009120131360064866841285970753930459666494505000533834598348841144771522447954732273469290530006509945288993945001292551320519022092884563435558832797675212678188722392069654070068887194035313818897849462291407377408161195887703671603609709351828012467501880843741228644012119141561451580252508432713607847937159286745803592248701265906416898305122425142470041863298470056698233149997570955402532164421285362570449252420811344650291462028165910147006711976348019078918643633690267311074128548957666540296187540172688678469304521912262012257183991897996500651354882024802201767496331625042079174319546006816405375716253393613886414426389333558819090056616076045069182287974288247390067366639380969030015006159476963665668241115271330752964242947032764057740586250817731764598254796525939150331230911567796846224380547836234535421259278355535337535828955392761180924202097034499461845243044166955881449949467277261295447186559646298104655055846445144370863619835377555971324668552356818195483223573868173680471058756769293286403929318075386248810657535359095502696431467286337250626805486378344976755792609976485259655998562806920706013359179876381768804323250150824946221159775635434896743814398379603106181889842239092838352391048868674495455030175143414801232546333573456126258931493175341308288247359866224690964409012285606045784143931192588494062364216791102100141178575134157353529505663342259735530825352226144822225409072285764312938319782723869720966936626215296008434401925000897091641303183609328457766232502219526172350576465571447403803433369145171661358810752244778813036939948796666494458989540070215599957453816715596804441194653084214934141145417505967796882030249505018706146882139243382133731252600075626171826151747372114965696871573644003145812961613137440287851000768205343803980425634887049103526661342959519806424260738599814784607696821625132918542979942462007368914191030359803289667797738813352526378390736349736804104350677790469603141712539084809649433811689756544650667231353107555065067290326064267446585852856941424842327499301795099741593608976762562713977522717628543806438661341646505202674003148487850627386287761286909979360738389518131449173984934786471096578104470002655916140768367977337806843546231101004818645037065926549221067381161065895563893453720821613273692537516987397004415486228654847751262157026934357186196914040714454870090512266703718553695379487081665854016959998081679942792401382414758799208344649754049723955453878910003221917766345859550180158904285509461572504291386099574090261883035313214239733693170660307192388316964687097508464289728588387746682835038463758432572785316049455330348441164588755990084864009992635906300260006845519039383806683883730685702871842424245333206211678571259047818067507538640248246129265732699245573504958272243337980071009918894629811045608401152309537985735099518342498837283655356881354532326201233578084774850969590448196767185726426365235409108250166143258970077547641601163024560350651477692118882892966383845062836872361548916977785089369284652778424042182530460523482174561914388214608395552411773445112386722103939266815515653673178499258806261640334407309430736124381134888183702324175667563174306374513244843441670894273524480943106918389355529711761912744398339006043040204804534219710828755814810612996636182454862144603617795597592584822658864851713052432655774660293280924355259060436833384310567230573908347756137979938309345647062829056455568483311918113280625823738583706839411719247187670873554903724552728405791520698784447565969989516823331794756632431982145631431533408896601510399408936938772650734335244480746150808183006392462409166056210856239657866059815654174166387622371122085824633327699009096438535743414035887447866712529840737543166531339645418962799993204907878090595049817665984024743252797259572672179079586502825375399492188400668746481972629242775809675694252482217825013159253751745796429992387916659239767250677432176485201429810145220184619289996618001100541611833927924384704032987432106176265234681020039747915141594360856007403736789201832664595411547985879426946909597449509812240730532578201382696697923555277550938106857622574226219437372238969694551012424091861186156113884808182622389535846947287827431858983205685189187933408667612888950082360202979616601034616981158292683204733801837760573388137318496709165437353232136348612963388404923331577386718293217908536720623493041803302886409997234979302962612659684097181861945490585092358539661997980783502530561265296701622667282712927654645660982939337152457040091246980549099892686719350074761294277187635034169535759104536818568525760641557516434477921082244151394364800602177137786779836883769689847687747863805237701149547048412079493176974417307123906057874164370802679779661414832809919106008566409621346588272457587762205777114153623819701298627075664371910737537301267336031791930263715584684486675732801818784238695369120036400837606117729129308924145675145506155058215554687054513108466744274819660654955879051239774820890438140862890827066158538552009356042341023014842453605901991074250591761947413888678027932374558668513859547879368233917840121472295483173243542140771210385437796081724947167457929584043737720756452277501008023458860569315459291186724228251476049176380956638590935201762949110489030947580340837073675419887698562456968616696296404439891628896366351516785026248341818814556363435989734712006553682626533864741213711410748186326117896331343369664799320662902191741826375920224087812064970395721500904343956898872812630108861606684439701267435433511172666882714163271621697780306791958725860565251391944481720727401985314561406538076437081670309431868634653821306401051734645648244288054057507753058296304723048607955671616073413665072824053352753594330209639121482819175988825352716717759138394226148808306664351041388111073288912377133008900954691396728128137670209211579199215573365832612109831477025671486549257235678166728739131475945872845419195322734562875724064212371549626973042540534058064973981409441466626388963977618276997794727395696528785703745062745779411297526101590314011061756812057487787089467220165831407829203672755337581057448468801367762011667475775507961497070155618046766005886019333915643256056172593684651717318475873644797989597452934152834598277615673276208820541499131779056486592457262459945002248281294685046319897705494549232949718011579777979357642977675523723607820681038736497032610443797345349757394019452007788416980877282258749004627071556960075259891343950428635569689044988114881801076607732430534344369205627041367365348341674649614542488320581193115994235332429085040405285261766026098666169117608485721051870636607255624392368097355305777989750129009998092288648632758329175650595580572804678447617501804886013861602097836332098322030132873633604699463893186583814399775499275047743497493725900700370368305559231237326538386959237272386340204801554492439494558772302387281673099223976895048426740506433805339120310261497469524615550310503998335246667691870143856765192364460110398759001210933252648213017432751667782676469795717137154279288706960717941085021841048081844478438049510868674820699126632949879887993945775862820350555333307742791276260719704725989468542569514362847515262059035492391424812263211248461468322925454510417745788977717231502196923542627371027849990577978003266887662855563602390381828525206430684242703932337413833686259733737541765896656305169283151446172412248724892386830957344746002385865172447240997798303863213317770402013790519743345770930491075391799263753718495650500513501042469553470571087191486768290794426264314716669559026142134547970806707565236795794827033782894302424353966308476431513994983751127191202668321917672961591107726775338673708024927539087214754710031520921475520487946047405062717863983029642148125778373359874979662478475171671294946830250329508601307460036962823845079591391945211485073390025352857890589718354029877161585418578946193555710410248572859848226783876831104529183005305381802390635507142979348986859520856325435650785164314868493926698283433303243371354365207159671329910634997370606730109377920335151701638642262530524585930188729552674038082453390550989232414898369505239509135578198814482377641202445772458049969961504298613935392121815157542850794878137860161571888928142445341278254880923903203227626026850389879484957801827630046719018835548878667297958220475236650536084517976012727984648758730164693239910010335852542340115960558395023554195043567558235703177512101137874932407998460869948373947278191733095114726165034797788703782584882504826558324381551252853104118768215774232629399289070074785068800161363877722345491444492825310635276047288675920603990079157370386580279307105932192815100709850415540263698121290469753640976840321068497409029062235838891880721088453740539738406101442661304436836473243068219711450202452864712593436023003535554364441458296065231184441791203214231112437611707705675466971982014662659122127616335151763270529219412156980597532244503154162589364694342732299295104805126906326756867123667487334358512533188078688094646091910173695476343220349995150693309779235712627290350085620504818100215419298156913099161215054186225278237398524488912911950476020108739889506557100511636970049535776149134561091457249037193000514340123947959742057828846024265584897743228327507167868039604889837376428501459180294289506624834136602749177457313083833929348894709899785703829815219101421670758917972704044235077721412422356058055972127012088764345318356878003725560232949232838991343928757718931067100106135123089155001424702720607879812732739530864521134184629665604474842326926356778938143554849274602808984582091742975526006877990988345476011258662377752560281089621454269872302727600655577054702413343937376705907266284425893273276091129023708877113420559573149890435388558666784159020405591188717832744442229084200680878641703469094993641202363780615294074205540068289601792904623385980576721511846186927991296811176601249683041876849929875997783489563331451411091488355359861102725098260653737606082340653371907085505125702271403971984557569423268945376858030334680875325498097563994952338541579350499726384917944554531520903352142412663929870793745550440134530709855536349324561172678012569740923722609129290903285856696416085177982157497393675786413502915574473250559927675497594904141095111955912444462544403830742069704339714946010722624864812564016835096312321730424285675869200940725571720684196561412121330555425489578238951125611469946684640371633807381347344782608908072905242028917202223486502948225962048839467144605483883245623775334027886002564403670433924844819986336445423960637078618071081016384571934726592257452967856834920160189507196768732159052442192825010323610005992334933230368744037495734653156682283661187745216570960533543979529791052786141561520189384785878854959526899571127807172087078241221270216455958962700889532699996673004128107176429018883462915819691999702749013814900926545570296857966305112071517465911406257417087282644601332211297503190146505376816912035676977843841158808099526238996492028790292758557421718567502916965604840934092159600768425155024764650119427962208677686823142969584180892238217928817687310935348577266220874428014215832713346849862978298734156856080730833156805077689409791754099324495223282618080420867769907961932308504284183936529973727113591057192782145336628663185996577051277143142349048961096751414179685297880298708046350741688708021131574936376867999540072542832593815990125674242033502588449506360505701563306369203262079345292738947274539992653033616381671170513594400244934803857813052096941888653069935632444770145094590004448833267507427931765432535542751450322744468597780615379818834901344672300820550312319957178384495913501248345521489002878087015802693497899489483036397190281281191272953109369695815566215100137031545566303726728978802784680281144506912219387106964425771660092146460844460739413104314431217004694482894896608785385464440201796372640220466913562036039175152472454467881358378723496441854927529986381560459963226528800056648003632538190434638935280390369617538343569583843862700334399286177725871874137163079043045181876949181868492430332942688525497961430108120905344395447529987408940548093754583158303051564558317093267655380369753042579809531180896272897212367989555657493265604920817644519277137219283737583663668334247761329170343702223754712918250542291802864620205055802752412320288674307425353089589740138425866240153572254766639377957183675009534697998767256882881061929949954317385253482782948035860172683057681799489007820539919858803877189436470617728658502695530955606322117068102411773029782087591098556985876644397665437187895529022350110324272587972965971943887097134621303541238857763425993678057798599581998471538045576080532717785119490890311817703844269438248641136186447241915063675460104317579767693873274283612199047944624507716301800848145489842216537603357283944800115553260053666986531790181421416524156117921256046695977048551855749710429386846880949335216893764047659416620672969742591025659528573905245425981440956957619559763792034468555781129982808023788587440476177492168470612258495034032627546191088794487796806817121215990027665432757308619494451425004842916315848841815124059663097607848944028515661611675641140273657818883959411478552194366892159462720588048530906195142831952646090073305160112706057792784846727849224066108036344110941456598022198192883850976148234796365740794288423809187046397174429213145854974774424803455440868973698017361465117717899116257328544148675686009818104413272160737362536129125779861451315911342539379175264934576818179105147991658864989148891348299532157357664402413598466599606257113243027193453036251135427649157955177797767685388415421000079459134526885537326028347491869404457936511999308417867195368887182289924231068854534573605003368104277918739279404658950397706915159722765513424290358607585616803395355776621801455593563904736409439631531917221967486728422583264974184602638878375657663382956705787875349704226651841338215981253694285624533423422915125813876614814459218977237435066016356452935758123643897204841745995292094393631097159136496625855704232361531432448210021740784955147004999344150005238153168704274033411762734856313341629060929389062471047781564179283210573558372130022502853380276796780791847406571049599065946595685083372023245113449763073181658834333801739294830803281934484733957192720749433198683003836395344587858292078754695515905780353582068989358098919064881088181092184162159417362970698148529110442972979286148485251949923952975523341752418704586739484265600275671658005725267946963075937474391274961249933173784256188408787358654531666310952594597124080306644838309199684143191960065369984461834966410555278094500944578753747718501460929992198943381110017433161296609614041595057947595222281519686246327796196124701050298091810233881608414901386507239770437870974810914877594112957526967113573976492246933635332230309256889133130018321557624808005524025926880833751748683549274464393188107026972323251712428209058721653069129935463393016863836897469210432270553348526184587349591307369648141981228327574069858117295709627877197353702913835071520381537242021496985754199204739875100420101006273535307269662861375391985800894659110861309298379544698749154581431750918312032955777619258280428237751436222574556244077464214395907813712771553838535230986096264436655834342534089163710828807459409264754164718433205230926847486373990773316713400809425554601809143538961739155782676611278372164959384664890573091441116096566687330693262778850868322269775037291567694693281917432704281617868724116209457864063269323145197846481407709934630047779111985365369092756923229798899602544591284986743966393228987806877565655645228685073939931201816749485872626282771273530184693187231104459825349658742837630171157625550729585283885962807620906536822046011804385847846571500155848623271743044096602379673694243558291010440436691007189337096204333594975762603702183870374234115048964869063311351166751681115620687375700884089057372304968686273693386148409986208097507091792019166004264542431675050056963527177501422704675731413359305531105318258812723603235687654571836642777660635347987316032719211993182223423357207262719007486379940931146186831721543459263748341098784111006989632976085228484443161444904278513910008097456500515042634169782207117652975716818626526433026049186311625769906579562049416109868414247458051387109958861235104980562563634119922417807050768202955205786757776260163462100124306656325100945792986261130428093826660353969275472832830678863133768179995503629068625737201864121033071544131857827615842891413044404498773464143591088446432614804969922934710950809174005983351854562873031045960496364111921806857364963356074493743298123950873123039067756236952436978960628591376939692155237977690230667821580979753555963796064892206732818049743145641146465692681895258933562008729775851335866347455638968395126542122785524715695911359542470431882228624743797155023826104132619290870494479123187470814991847011997053390907760186722039161506222301005002747444974133313983963577991152046773207649031165060470739436578146879859883549496263387582545909990699238432753066013932359682029294568262543035217941581440881363270926133826158784367859392309356382376865698451962225482665410631920561852243195277742862400261431918552135017280544196056451749467205688207435879938255450726838340151609490262097020561958983265944726676199430612672383803152264805545226302116343747690577346506046625770653348674274411243930592733039837157300099966910338365934085632559315396198796411199091188908108802123087478304834454786432562619964963664975013644004414293971026258176131894996863984810119664804756323944552829215224876280265682212242987807768763329000734120755130085332208152552349626759548197702086189102738703019326096071456789329711743112200272832591499573206867027428657496201978379587709604729431946167738749742936506517441459844417264125723576807337538706157160947414259345989139784199469227739393907433401028836009704632412440651413666089534794696810908916862239426702374220184176134617975462321822433625708913421662647985012970547131957331079678278826268570336409538218771266659627841987955147548240696652847083525800382413788168428496811155232125127428601495039034600041389613390687851956731995067282113793785038085144558766994461045922148661817939003340646402615906842763191974107769792935274629404020812926157246219332568652090631974406907812900707217831903554035256835844562333139665484718240945692131814384495230649031962047739353972429705301709105560227552779926277782885246238060023707660834277320505213729311314514795990816819422997538752083833925259912353380325699894781064748645730309686814053080411198918697644935719668395382891193728607960392670199402140333347121334505829277332302271195138912132395692822081831193995805923110056274397676800296434261448108597234783554316251659481616051126897694531659926280857765052396295273147111293860638393210934517503063116984173919141638735034294319459908741407990405781131774471457550760301284042067836607882980049074318865619958983070301145694391463975076030290410448797744122108278248896772314564484105057972514192592141289415463189449501456731963613065361020387580516804515900141071125505514903735405322470411894576925106998203045910409758323136820688101873048282308371477611497821986139751582675693619103669881653446280742878566219448284395846748160995796968552058319589153639825823434336772884019128035012706001004832042848116931555334837645375119734794605664807779168238217245155785032648975496244290419666720178777250791343463953237458770347262171251486108875938079322769026212290315157473251829471724556077095621229877195795581307884755403597159056361252935723418977305298740485011034103884839657452445930446167677641375816333290328421404197105238209576288196544683024557208522570926546637983511133267147099754660999843847347717703458554800551772079293593750738699521658551824923815177600145507536420328898577821236225692991901689256154236017712327723247550046300812045393653058948863803506528255168269573928558032634004106915210732026272626603473389667900823217883830581058907092974040106347439356191494756518119527359388648944315039557481602447913810112424767283851158222434693064032782736126654963664902880720349833723173941754219096934693410703754248120118473640694242506817386523025062852925128638339000708589680826496603745872196433663833144010127496885730280468095274440804085059085716790771098095363670851748515393990922638499926715790138954531229690306926102274569972491005044205735214610119473776935761935256241933638508094284740100969843083410875816875470471141063653137067938552739805793781803064338472257556510174268642864128764005979700616821428005103343368745270786147292309224679040079934639602528794735831462127456093873485391688339022073662857535723268448630644204310785063622057318020996318399949308533451759427618586366197473838896867170035495154063463685478852368581276913412238599120911906997437871552110513496379850263626704384555672938759349597950330677496283043927459549145210369471388808217872959648919479145082471899652400220767880496432613670089310284461967416204383660943795124278762632205463181255297674351465134256647747402755255494556229022312280055980907255607869497694931425895813866618718136779488445179004486870910816604964029012960273064648602523263817146379726345412828606772186362676089019798469232745590075831638641411023365682044642045409710332853542575697929453400667429524511633658391140376381908547896269270379006371777336255024433611170998978525036279735228657658993427600734838786508445257304427908248783300739307338901507853605538974393494292320870281553689791980936698096431250072774316629844415000932930677094417100071982090191665489337195918481216733397335909025092486697772037981694331295016747152068156794094382472769167337280309798337660551580134289389539835342376603173075042207729259347463661866478490685601719544954081541511526775916257074045998892364389886816229839571729332265901966960225015554995270400841049573012913170649700271394098299138139040618870464977865861208249324329790823846591874033545899245095602067303419968106754971246474903403704234861606781937559202602057889244640255220850880527642522546386473631448238411199449596724137472185925778776336931647819899135067893381135438807306703250441071527928377467438737063179800309289269291727161455159617270238073521976906051743915855504922766612085600889231590602810834239160884271001615791871939319157097019890958569648151689108335386797357878922767724510825707574905361458679339964161742368058512255353124240133000419544370208623039044659254397315566542779304035515258495574810719326712399904310078168833743801208582949151129189991046281217293929735938383912674869213785992086094210636534608093982836927726518777739945714023979909175979740699562912294520242641240245324404247172859010942918465980535895480215698125913119275825848571725642270327127451110176624480291170431838340532025150396938191722006641869289256377862972815734862704996279568292048415042188644330793668317538158058601872203637630631587594256494049584903225900294586640720584731892774462288566674058652533001878049108093044861164555750213998908371122787214951367628463257122533159347659631263570939147956997890012448921614483978172988383422890816329382645501276677989204997859406961087312552482090290312036791080594198992975300828976984904835573306366398574802069502070429539983251085251755957992671908188491643234180904983039989398386193459853688053159088222850131473420075653930274434575106891273097654676617598941393437049849548626758631229519416264747456618287619647419679656248637771252029867484846199589648153540113529828687639031481859715654451228175679361127972663192344332760979977614360935383616024430262734388894102460759739191779186993271701198762826946818245373515159875210564398459877160648195448500221932592521039884303183435783844994773893526888886986722288707785626221015521486934459694685699939239179908589843098461994177433624201163269152029258931346827065995095699054999193508449045115747026774104531333147387573008263905847136848840753433058617179183144788811688273403671965465362610498203211983393682054778400891113286831896726724946087113759408592116863355472938855090407238958704280779556540362342391230395700663410537865785489974203091245653533495765293834954208717851869249889041783034298734028709431293314529338342305848431722897629755402192993416507540937310343777245555033292515528665988733148870331537424465815108665622449952742298780772407958085779067370167765857455412564259243604890036385021195459533948390613475500617912653078848466588546673296236597405132904977742586164283153218742605391461930561833789330624159928714124290411177271180542867851622238552461078842642773993027808819961355063508730046246446618193432754146154605364395561734630007254361104840658342187583040864675119890039220814986948400539773829264158409297241069434527712655842008336229274021899096768206226997602301597586719674781739855576711501250471458723927881086961739669023002802483251408656003679503397394849904469830438024609177321212991697031036976843772630413943859069619644599246917651956753950879833935051000484024898541106735232130327813847360467834540188503998961053695987499198955332009254590116642658781143333078735277911500725177986135847982034212555401828229975292516261527972027699126046670553915993469045670300725533479764139598270828866374000045233642463177298811245158664740491535573037275082613611786081694004219154003834026248389257572226852161847073079682616684588673438435624907075665506697708205461738887315114498316579099426763643215950566457267733234238989526913847027924473754327187528475455451552286275179628529615194655810370990233507183832613699851389509641690442646936655530661415760298710689833638792238746592401916393880459716588484442904195817164778257660423986600574912989391300414585600998650116408774004192137523589093720919498091670169155298199788605450224719531859958586701157948293678445787417005817338595972927883161845278369229157114942223857444659870183075944648594358017063625843366375003697916168236269633148907226674128962276435805667006735734798675484906244277817786668197139235757448299932262054501777523932114814655774894213181447231599651734890415252572847886716660355783809990675187899580565941707418175613479698539065043055237822215885239128356883507848228914519856300745012165109255996621069205413249104176653587657238695685190022699089142435830706681800180809964954574911769947797293041074551363355279954876824680071438937577833948067777610970536662911220142941472815161999826194503055026164724216648338969021343466750273198881781467110027250303881137474740199595482390147372973578879165247512397282895713188720729126076556284019737383274407185004892640008699020382068925521204968418462997821837132486829513816737258496813515850937775049867204153212292881651768519112674981396146940199041697033408857083484348814983104190003279807136684145094902164633749995034814405961105262982975786990223756424637405832564862934645808521933738615904387941833513656777357417464290845651706812900810190913062802079337593622838670651951474155104396632472039565612481329750492653924888521461758197046422577823557164499137695169320163550323260517572663157997033722726894247564758592328002806883298975469141283116144453482780081544453703401787128952579526861888564115065068532265951095519058069929485398902827145559567118414457135339368416899392964296883615514438012199273013630751908038271056200369981854447757786241570083706799985587460276963422429247071375479741091867713293321915615137738720905617988522782269244853648141550758621087364570090805054595761434227299743170604821323498417116121833473808738554089493879967109755276502237288021334614668962527346985034270378372330453426817611107231314559296789517973723792662839206345187611906901267842124069824532091362681943831308645535295841271940029195773610608880902163465728479097122077679322776002615642277473156391021430322002152799754254182510110317257989425387229013135726870608798825553110815934461395998785504667478302669771910961674628692277395219003972528644459874126794751800160924126063352502707761652932892974163604015534199598853818639846208995936116402296830112942057447842393350001982385173009627801441273045741020315579293443063602454801697969710019657506910945712498110170223261373073610055061433000026546817612298501273710598880511750982458997562923419900998476553971167328577165350134938794209785750921459838339385671397998717162495554204815508448739017742603928835098617669422484925408449736302021756466655762284931878162540462621369061300222316068073999319403863298211518122761147101294331101403086803851946792885775423980620461731497345066956109500971358774415536999618978250567822930424377253065452196608710086074115176606996297093724329190595372673867357083295666107767522670072667295173188331485662347485627299741232453881197469030108496420388616755877443347357996664153363375266368975620342841311673497273139055970360317107197932691814040770746010471848822751367630498788930699170509962173524957800834551229177360045085929810891012559466655746689165543703020100978530319790599222029817703615516399626804396979201358454149273425215771434817169758083945279987289720688849809488955508660721309059151189081192436402286093544186276073069069470717269531731046913599744018402686600045170254892962446677823298264179454512480994970570494454529576327319268958300207453551415664357963679686521063740564553433763190495346494852062514176358331576576076836274583437071404424313785831506617357251009685402079077626673880709513895074348405876510763762077473625843872361499631603271031517793330947742674283657336133091765158273343823900815510646975982262065303252388674919729649107615019354023995893225726877652954454494575006252339711098986940714859709116326541921497293667189305055155464000488869702855717111948656824308842093202032372455930362133365523912051130123257351297145946858468018872881601081863973071569181795583900987564144730512203516354346330906016913142492948006175211692838218033266199561243217025713617523284941159650081075575599284092178855535496271030630356495169192414287898232239789794598805989583828901100807848525617349533772105984884425071719764528770190102425200049691798793593833129854058412609128012487696945615625246861786819096509164834788087050558785305493033547793005389467145839763090507846679887123265427001977385537164411982310482851474297251599359216442670466887793751992130640096287320377790834080667717759188759602789796776009854010850747166896454652935165644364983502756434881669186062067146571236199428260927003152088592344080653448536990743532558213824226538023737790783740565243322631626144509951097384756840624099694351521653746351073031133359388885271289982880143417117059065819295911467498412817873686997534358628005334160363695837930368207238837551996561135340162395782867761217985681709172869920949367206502592484020164282797900559357031840437118652589306700516953494482246942718296765372580187497042045474680186947531358231529932817040633904309343859651392017498147214327315823859497160131450223615430872125041218219626304286195264130895352161813878968134346357112786048448588409267965370011777078510978121146785799749998248399427543211626450875898219389745296522297115111100248014544988854399721192656987349121730495924258915016367431921089000480356146456397431828484263802343079958498008060667360499848963772787451893284952816819129647582818446308522790066378306388376981545647461039391091900642690307020310872710720792332830980059719702296754558405587221464886342327188863181089214092264369924706404776434886931469840849947478709394488506681876864264647783446156598985678558159421402418084635447240722103390828440520617142010758414921785311610605665587172094656205166149184741855838743365386886474234348145814516518423051445654251712403388262842080619918294440744322122173110432116029330922301145467459597184354751078599559170030934312728802248996947928681617954233709494700378060402405848424361637554107211343301052033456862277701683416160663107049944372221078058961884659571561505394508563061468804025248669021968250484765107704072475051797764503104238000844907164235157487985128129059927566974536051202090686875030124279297364536536751399394318812370223468576625523679607588274292442445283803295820077626618267830601881832082063329197829391462143464925443589100050691167026185853329399214693910912898688088542833687301317958168440013089083073451714321196491790915823167252865342288512811178510983001638311654771128712013518520926341498841646186312007945680827095294035571359587869197921499356049667373922885442760508265567285933687351213666268828396741067950495107823573012566828996509539997069972806535620362650748471348211667863052542545633220443990551812396834035262332313447932163339675488307270598070187113445940987214289524159875934489514887903036300081599555610692125516691073768063705209011260572355677357109025746680807432631770934473523552500369171138305059961818468803240242096372862391989409402172278081041361788383935517421673953445284042608401966030304443219657804289257225725550478531907362542406315405211404678986982534864473568052276973623317857381742210888687326216609015713325178631882694537292896101629957511214799715524981142258265974792175945787878001331552155307726607609110063345346644603862304901499618122146322468385517478913065775064812588577463014468674714290641614610398950041291575654363582271298896694812804660600447946981780367706647960271303611828650759828916270219104797501694990578115417062046782415043712123619639721874262384038080650032195246054524786059233773279259146258429943333564975252200549745363967706669211072272576110851157538775689611434697228112541200316727385716137622741404108652496030456107121493936411759626410570831978097697298118748072796688380446170380007353691894897753180983088761314823499537965896678481618801438715820834035491274133787212216839697776822946242325082851236095683115965953670128570089508486218794929445160919760737564872285616754054091663353411911170874280871281799612627253946386335971299000297528012983285552596990047216035911940825546092850998633744803065546924668410421814222607947368338713973205265634415187236767461550814108234463216372636664449030311257635895084727753369108235487986975062901765460151378873295295948692063749745335432086530188577132364171078522223088665628382382913492182623757015494418134067961224031508668654058356229507730106803397564198352651665727574050956193342483761110305736167164791098509613024756186418319395793666789736283634507297490399268526094800489142991479307555536982650875237972232763517694600145156774775874981321070107411954347449182064938420539071405036167910584523026995157347444907976534527647435941445889511736523467287668975630256564733486465896657964638359185720815586328602259283853813050052425094752298241767342689198010313016525334477417492201974895463338272029724283876003966277038323220298984303306001108648534092616303303537012740399792702458450795297795365883151309913342116041738879577863866596245124854329671864657249939243357672663989814102282448534808203716983425206187865837337057106082926077325216516082943977145322578800299061650520528771593098284105164481580834172111073605191529134208283029374583826915223406274420650255444674117186698527812212465077267762290265126403059849983557398683548221315364912184727030899251112784256784588166586671130917634545346854572914999189978254074758037856338440203005409521785942407364752527717417498340676904635957790482093929144386595113730408858560041075906552474407089734811814017720555880240960333878723520591237895526446879161198481321256106598552740504226317053717693743974857688671809047667077280756750618392743839189650340490167390334830081674944548155587857200347119085067687733192453124490579789028730833959158519898231432105648949316542764057450035985766211961094713253130816967033567127081711953335709464201425656173938793637708404211532882558924995741025399905594349143441767590030070317623914079839684151722781892534152155129307493354082029066783128532917653798085210322939053662670424858614356013655462388543053410272457337729881388931847659316281318436499338983894839483419836915381804454368267981415209250625441154416272189269539083937489943758066288679960897809649000530037598772706137872592252206731074930586386856175509007812700238005563069364157469896010636043198646917588651739500937547652637690606640520097805389090807811379235861073239559979281819973780537585018401687169398468181126221144021979656016567819099041561215750493099352676290997938089513467264039006867482828154444619326164743892683316545879602222468686806175195446281638622275202139110269940040370884216427047223317583759879825316484591549364846659416216391993568880688223513823196356856611686062833658661904284495047297580520647682873998552427807225922370849024092246996286608349174588699771297591678520822145008695724746928461263233974632684653051020480566977711665217366377987083190707811694025508896349610691282676656924745589850501768661835582039584985089560646434153387140658555416230475663199541110928462874383733250648024578130925673567196990336065117743226512253685174760037593307450036376375912797735807446175515070943592432362457286421307829680361889686612794844411308023132298494799634002078747066033117906571028688851147583759717886302001253665902219352534697941150636398641383877212251681387917733562081990527967480640803187648356462082817788255113780842955208991320790168278363516919893482023795876195157482631522794081609079801855887183067750455342260029707775434803166160482406903552371078908413837631750370270288663045074667010123866734765765759235365588064863797950872957084644926913610940725317197864802769017500369635785707005677597751234133772651375187989659613659078838586992636461968746182013158983939048416225969686024064330074499293389967702077554802256977462486350155924140216584569716794658242831959220511682628183689552030798070952737911388465857286553799658791347648993364584615442818514664833552623450177143013052311636898851656683154678087441206525882023052328517064602191845527652237871463284626107328152298043054807899642494629038286468059577330469927618140417186269402932973445074539740516971334780563406313306021964600729238457690550874124617690307993367522541615534829641508715350987298370811292861109018012332603194116096672957794301401162193100830826264319960449623740749225943511080858629226933753528761875947007144818253973274589753477921637196051932372190056681264305727794599829526202776768370546147567825203299045084192320037919722533239914682250014064558543312117361700284712426262614431386872733035929919821080417975758911290176086820333546048653185135223309459461447583926867913305607408500100400073714640117798134373043927378938347485558122843774140807667072268792557918852192285030331226531457045588562067100800392772855536378043501341172080485723083660319954889034439755758982273680885534212409551178338507959441370411926549519314530258771874199430172186487841406585246018293220466711470007041059302641990078957284361429430250431183159971005852887727795402819122015315015559968641023001119741042884512936756389707365326099885291471411218342885651011395334665386844636677323744144402806062764711931289962366892412011094017889246192888823889924371792061132712743978162199907878519640959491561271175934793981155875882736838486703209176668428969784830261859982071041957394247425432900578484054011023135545402489481853832545375836181550442661624804302713204960799275255730428119212518988084012190858175516110707910585357987981794127218935180845758924850306507882250770720981610490839655440081443639679740042326217709033739919975203377935388219966088801568970866955230224858938685789293310568231373465572232218247493549524231146612799194687078850319617315763877069643852616508541446228430411512232930713499408621961764751845240554342797979686087403378628671475215140236850993005356236256018147702489989092967871738275610791636655807136730485541321603894298362885824139448466603048689400246916786538170464900602073333318215416637577360880972399094547234577797558743763718171819482620821391782112833742328799135857764965649086471178643574546450339839317291160680785186918272075321545147327441806390717795412115885622255240013528990428853135131409406720851962961519353515219788749343051002250722457874535386549927576306195396050072189724853699375559378464617770451207976389281021543525154425554043369634225388802904603379529422803128066159356923082080881898040797437537366830054446604711964952672449608845488790975960615964590435965247969513489512089375419391599067177390527600927654257668474682489756952701875910897387178887725302738099506940022271135281477600066282770940757515461523368980079529280030154660562077569021090128557961090682055835394687711312015678371633840992984186070097911656308168143985666559575768600128687515612359384071664137311961041866942011792880258784212539624416482017672457121201927532232217278771385224805631650596812825282336593390114473128289652401192712503826013746893886686533854594930358970564372982559904630668844072373778063379964189124146256135118823541558559934557699959556420720242410355773783190712096199009875705352161378290964875567681745005658658062394702595330732327157605613051244115569512476928916755958809894968112942216282830942920994803393328376103067641879686119020971924785950732127028402201294151605551743693074219372670909506230266244284641862168780314136296015877838705739385479190525415725968132676944875830063079293741298864776697294698728548379853607606849741839086735512750731800038895461655637432205970968233371128651514287722472229998575313744789778286182411862440224817936920345108295731153690423815213871477556341844238859878767837827329793373302059713636855990905993404926222422046684555265113075200733835861791149526745196155526222539126495892759916392961321432179225232445743366944065901777681014503695719629393022264803602453324983327559955324537393826315250005859925712576568784912079707395417430655142012998274657213447230287792209269847731591013732871590295368941378705617321587629301981679208797526873833842107543660953005648700693174691546240249946620363820966179550663000901992024406401914368608041960070489620620151089867057578512049737925540565625699472812099760680900093550921146964964412725262639890873096027684236783134346361014118629899905934511340791662421795990412890523103211530121391551672682610528898221587832028902839640729141882780243796290395809725845612608239560845775519704953843370787442720143457515200999701724159133592658912939407051378148820484926141530764408613858809366526869506501727843078062158889194941805206493669477056429934734351096706629970515478914730417939669795262626751807535108783427662568945913085888396356766720980896245396081371722202468640595826195185703874134406873520416625711800299186438250024386840129773714081611235717087152760962937214928174049659920403662185918273424181199805574465822487296364094555653540810423648171457590572416973714164534624512147195359355906140003511624928003296727042284558081804475358281735344519952307291470860358726648684071419489922749914926812047926176259961052462294171458459521820787972735958872521990431884182417341958552397467883750756377392483373265026590547890041239137156178494428244349877226043256396249087131533680944653723040895261940724215375305728097090410836480411968320938621210818936451988388311737133029146743941105486120361285359979660491369133382534279285633232591582807608148031111135537409892687945801362576600022091660870795104436725501048323764143601279529584568451235448590247425551810735928567193015960774637991970795094624329689066115930850377590058970516017530894451036653674953776775447528321472003406246085627739176548362398067276443631585441183587281308539193117642545145971697174329922871521653899599344656074911278843481076771824140174225693663383787455792866788877666928475682018313273527170330630955509999068820895884475935553459297590692194791176916775483796321760354326900086503916279402977759418413747232453361438828176667644362536805833630472701541646343010543020157447322204443884859604333399308822943960530443837521720319327643848637454896470778782251493054204676415985486821019022014891041607570113720916676655291291226635780060314446017047948332242966490969795232032794389776242110147287769133693586055478973012627400058747494503815250355225241923509143698319804346516111713864232721692110228640044391062689307479886028884258402886551584632533287360407172374560289822551213392295925767153585566563046054445487505511449823543445388813471844482846671879343586531057198449020783769438261281246220573561774853943583682557424082296370862885848329901190191116938717240958405147101206772008206416826087936254412367833602523759121074825219484599450586315915513724332075194004043737926556740812444214509060903770987687588132922503820340135542681099778738128071018062029500726643662231698526783559265582181448318350358054652457113073913174700228451923371472880104545857929355965037310851881775068777409828572107270590566341572141995838841288968489675653692568540309702072931221114686114730360595411793570170712675136101210417925504986569046291362720710059627067689808324188276006916113379992896236477273215616833348531483440627736567675900388649184069238915505712567417228346075827012425688524675048048550998018679836611116354332839557567833022493032651256189926474938058676085292250785574696963799813675919360025858245076143327792418400740836134061213287640082101373753521564463160099554002668266607612243591584088405120855287951306928702193736460047186327987170830126889751520697682491881183502642875859547914391959627802386293612993129338559234438670296017961539622700346473010909225328456184773100820065646569260990214347009622832776459664942315127277630467229860664899803395246769028589117536996137663707552926867992897507005025965792043631542495859795928034658595554469807726450973575354978934643492388549951241229145289212683373459008312044131694819696407723557098833516556975906333842460097215384223939535863290986230734550333686222144083043460982281020264940626626078104191412720188333621073525491935449637754719835886877230231847370702175620131357028638630220621856083428081359921602699485573264273353305651302335369154984810441446132913185225459281648288048244371208167181061239005494326938956342512060811454087884023071111956347554012114490786347905103486090922835956023651121359461268948733216456599727777396767620983819191714430356464822125134600617458664404909838720968866716863849283690830171645895558978389088057613568758264196058647721784558645955780588310009355388910278644271214662381182041543467684805714136084230641165015342387734628851456008155104910444920166663148231258846675153951776495278341414723054657305628487427665539064396890522387567237306307656058577807118016558543449832665585058103200664852264838433391573217406561945039821029320309844606513578243151212331477137734049828842596290694858256135911449200866919469796463085319668708380882664069716198071323875093462406936098252044897717921617150393676669714232865575631089468990213170808535611364217254235156062130607114013867656103759691713241834325835141383353926791779781975067363225719160692485459169403184905995463999817343607777427349265415339812828839939179173189958530986561908750108518551481414315773417859891784342907138215753605754715519594811549990173521196696308599207245273916547973521342602616013654335763676620653792350611202929294179967774899372397389736731664645262481615152478387368986723182491404162234697321957729700639115520805172500954047184461967739456924656190138298765822753025645814729005090176607503132495699471105506714760739477261004837595805115457552132747001569300216391821549873791018559913370107177727487019622586800286417185525237793171546878264190717704986834017825368785872373903721101385502873659245596296432589608013575386856332770313136714376558414811478164891389624494595054644996462998483870354038184579922640213913296831474932381048693807801417441445611984335863782844767747267627063650721387417382276712756412978737553388281090541025365497586322300975686185105943330683781425875204157966446952427465956097251145832280498005685633912894802595744716183839286784483351703299701065330533860115341871212022441781568175077574662815416653164018989098117717295200655725794016119270725310301500026940488649074777654533935382903187933275825368267630325402090994943503518782402793460433843017867833943134493749260821190345035274594048147712418136104118297079440145973493121212852542384514191115356956150179182593886001337346627720700417691628914493606969756031403898356962849288189767167441609464581562118526377574645955074323281183650450344600215573614293149452367366676137313321761215665595026365262012942343200108701450760742398250689793274380987926937779905363990403120895270051210185512099548739819727950550734593614963809867767303508998185983053883700446978763689512117378591424157119339895821525231662785695954456338607266975736773310390968185603291615416751079757146532016119072624928587994736845980389992462048152190471848921982908213999720178166154801994575034968518608818229017084535444259499384445332817029939424832725478330010032721606741357483363571411227564334814498068264399643330226502517511562865355625316580542800599240355331733655876004139000840730968456853108542583522908146988005758750303687690938205166890157011560991109120823308642467414203055936699724976179251637821366661421058119773353430934286161372289784327763616912473198246440330943938362854379885393316621451894056680793199979186492727460089034782160461729934125720116395846634119860880060344621157288576358993319584374384866097462338132768269490183240142986135976598870632034324973723421927089147386534600589730387462629242745787773240199035137639344747412427423975501542031296395986182977265898244223929625169101261031831515638687043144809597842903068533890041405416301698486883066761075437988406047471415860396816301308992514002314715159783599785460051082617990669471100586052368133859513560505227548847889557147977326844008697505557595512318127428704291379275209232762013568165181513122403438711452949667785550058743871957005202496311334436230545370513548391620497866234042495995067385357647139274648481940645209467082658915363112159289003066656175191843972148589522697072520924219301708286606914050571613305823518628504109744878311810300864820895310454039998862582954946778627237634132417963722343176238609811536410309960388841215799356865738181199145571190560071233271224998601410408213598668450987437727335863237090712826021179763082653880416473730279813448377545295583188034755327080187392811141836723027290838506276123503939760209851369714688847703951191402065254047554304391998624965864423920587580407186370219400486932060784401345725418654930030889396885127555413339922550133331706986988213257792415325778795320900594385474140301038772076212332976267652967231878590069135129638374402367470780183041591830454144249197143898662097048353706357625032580146053507785502384826776473396099991888047075553538617309530754770692864100141903367141441250151325176454411210318683365958592147964680548496305573449482907154379988091683763102793260857064012666027555570686118129222297611629072461799574889246365047188402580731424894723527332026600490791494252498600758578962654415679573389981465065837845169503427517153846919922162720687132403829112252438174236364555347325256301418487949242375735260160682949007932601594477090726979117690789191538509295795905892721129249846435612015077295822734148263540931615150295198059377472045122556878144633834398156462061222340888615712378867437657977821633174697665103237231906255892130295701648093550181927013627862424680021559056051674312365089357874690166455565452719903968058788704378171732479324659512183512125018076378319890377138218908902951835153762170805174733413192798204763831218139914007273447557672684968934708298489637809223702931007523505253916779532766946563698502708214769355172804182254863765656489329079950626798148869056985217136388295926709060606862596847972618743827195054552372875273350590070651344988516601506912752286254808170021857491693560824259458440440603305536948883194825084507997062524480724689011885377013647861017148893530633058456106075702709853580020688309080923848815518330860013177589977343564913017239390937185141444283701566669705062115711284432734431370085186861517129374614417135065636588151725295954725689052462584172346024108858743153487732910082236203365660727609921794938230147581809969206164599939026284499162318830496450313758882675531348936562078255422331731383604728217678651538337536047786303423476692055720205151185281869911746418033014836365568661007693057351218741624712563752578195320311829340530750161219318528793476677547249236610297606565649749429086346495458157186891980629891212425002274972330161851644437521050677079171807531534941270522864236498710778780464648543676356730863784977450425119793291619546011192383945739909153437133457284789089607044437256260341001769411280997614227352793099193803173520413877805394899866863243273369253552610949320771164637878672623832450169464391074540481783609196822653783593897749050397883744750904277566143378714981947730695730396084211689106534568037674568322481067756798101644709060153160688003296620635563442460004659758258463095600244303587023409917702636137728731962311142967779305450692080838771102701678459298450217354333043045687837655226867248356052415484440026459405381533669198941966821693729067920720494851624327475981622884713692525872330770547250410050044957834656745085873119950466983881617783491551134524873462056385735035231310958563006443230758501868186228334069527272609451493497841458106094131953211609299161521824173028241778118473502020768863227367698173505649240863773856011064314794865624774302844229851793910728267076209875870341025993883202296711564947902099807736382075691031318147047871407183255014379828792243405785575337406933261563847378584738382789428755831966663787662800229079356373701207455019584731781077740688669176218827902951222632076694392445920611242899565315420727648772202018164994239661915292845516506888495133713064181021283698564669711009169404593914242272735877426771888589582766221355618305954691448180192483434089756016780996225861949956144789356072835158543438634838943773155312909213987808441823798241102288309746404150697121857529958790094255636808312095148966201222546538526635007380709839479111059278270035438338826445881345624742273713778377041186132061117280794411950237167968414560085673415227291200788128078744603799272707119417861704400428607520506260257147611497160447073540764009083534389793841778296597625848334241489521080225471519882633062823593493612082970079988585599620996965170689849361527340521906781922012493455266863882281154470928207537488516959130109013974196014230026992891676780242337346992318495345624241649145351030031929533042739154408762037737708496841552532142951647299886502674390028869146787000020941003187550577077478881940126406329456040582503101893827780425863552752944803502270210474639119731799635742807563515354523184567635213991213273130459978093627309078359239321214659388892586417355360557063362361669125447139238441907703573219946357100784241636231704166141822520275678222189555219782936951479166443927777752957256021450250737372853524320003339723189754985992540723773371227947749643846970426595465465068708630574374820575038956111912444420371026367455820912441525387026968792173197639020991712539358076534166797950480200499263691032518775616559642881528166572738115280476962484235247851121434409950582963174980333089338971347265360649040659435412462181501036696535404042292402216737412795593013313804056223144651938530115310530963833971129388725882058437634786373760234260663674770033731247087523418754039439659641300331333772917866898078091837139783398068986897306609202825191812895399155542930013835452918726640552768885562067887945946993562460712898994647968792020577409544206695770914086881628518864691161103254468660956032591727985286783024040242283441617320917554959644374263586704715921442883006943862286153256977830088255816245171768344603112116481642911975850571729334180746005780354811604481002581749658988953624922498967161854011831411967848311824830945887523540554084875607702670910332947831536299858588331476516713487944197990768982691326961180774654441978241916071934848073111301958495606916161801668913671675948645671772451367191549641454621434864750238773271277170350897348418784659763568440444017174478424982285014883442281173755468571671934146028682104737340362773688450731917783548320706583551589907634719245741596946060909486566034877149755901217727156173640824433037505026539737071791760641153088703692069773346659213111223016196211388295727608425546753532714923944092223329203085262344746832514303336560066859626539095496700488317232895501451993616898289849103111287162096546436926318924673145426983946589155080876538048877387866716302395200879299538107117913851786439441288220313702488429579035758997147212851096898871735773982456539241788457023201633195067409681626329280835596853007408769018532173477193975765505551577327018538879591725644943330472741161856189226657630965494538932350235278647734132352510120421212668636706958012189047535666323634983175276805788645752824871392597917952664729862074172037676460528272864004134780118586593524169305021076389268899217258939286446194213109988278596770121750425660259497309936551996034356256431213368276922976553235097714536351874951794602008258789658347296920038631296950924441941363317654512279622980843030278128262885859371478517031240844610288891689068452395148651931940936430922089890697934878154388923696642471777137780204682031122333560245615957839733518608003817734798170127283781213261141815630534403044173731785557284951455235417426951278142691882012834018186637570201253585446059297583600097187868335161257998561976492224744976921532642546182338434097714907998147927254695488634644438161516883210709830486484333165049408947739126442389072855876972088087125985731257690029644619698009681509163983812709030874496289860422807119387075735720586292932971557745711648906623925230471832391919226969940833448830705481539424051705307869672812446037972597563200064235589055236040734577967145613494398718205547782870721576008602704898991083504004531488006061125360873091917151278304944447450071725250561694520719403673034632370073566357236582430521148220457308850735591409432471871956962364613078946677036606865140334727336016496928532197801958533258502110217599369434643274894452237703444209735133604191011770509093502420774465134498928655999557204455034560727822538115923008408522585669625149763669032416881523910581343903813422799595386312259806626578793872584800836016541977314640741261551996179588070629958086833797575972674690369653435149014115654577228419166145252441756497014192513383648055844745509890071734752779581204628860473397028871512819718361975710769394185766558087295584767736801063179160866024047521088252334758523013091484724981487263929249481121054540698550986599769309158642198034091687570222996092528694720376537155692007281469064212769056102019264000567177479114191417569826305089346976641266566766606975664024535909916693660984018075493254989578316033395239863711998522695407206920712308521741041448662787116651892342672378776374242632237790018639080415936294448166670036674180772381186022810100332346857793994824995744133487005295525855682743868574425163754725477393253341908361763834699452260666243825074290308016279582841096933653312450290612030534244134827283744883888132296604505159140716685001608549279793845462987715226318047564219326737743464307254769418796259592816492689502281848334655639249059560242943117447035499374640838978049721256298707304890701755700556056156179751022062300604486934656285652604340145928715316579862194622995971925195617203610721594673292826648111308472315517501861384139176917227695829874123246102122964042487586330159878376594194148851930305338820775076561829389958475938570507146892025685654383246885011927800471890828683587695951426196631690732562825785803029299192995344300588921409490384418978263884023383863454955330724304122996574277153405749750677004708579012475760341951816895066005079693694522399484489978116522053279475548910661999040531301594518070854335207805150989174141906602386702587024886168485705050695680494877300693826706984685713493344224405931537850277129596848030702920979511107196818536149027406520140402306110383696696794256840573518048060815496728129556290241693127181454186366335565938363317581979339175198498410458679233996658294842720798679332397394440433261234148815605608380588711819413078930060294449026381236776071393714375826642501906209533496393423364494809963491980021946811503014233066447664420029221010472599934598455581223621776626687845057845292344702301855052394044424291498001770593839526367872905418393046226834780369403670356893984739318420193834762411305698417883885969885551414819285737116400234424692841914225288031198003203793749152387408701862243234393539053690197002770087781313178565480747574918414410558492992607776077608563019371350378436889333850961035025610322052218053797761656876939575959607202513075487204185656477515839958176023512721237774111774914870907198323466028461502879151251064239360149892111851456144115817987849024901096364996026660491317115906575333855202031760724405098053920486644980151815758864502378459179028373395258738823470616226472678694643640099753355473222464772374848599882909266256517256077164114559201974919889405679631733872849621437419806674102059551360229407275335970946225521345755683857280361916654404760216777246100877031099496431421311578280636685797261484617672458896458252459191286797775943630297243993606050152573995164755867924201834347612688072810805366588621488860848656563492101233796373510051987901717911631271524773856570493699381246178775359810260324881216291869709503959715817240620588387398697047198707968243907521372158507603510384750295374325265841905414137236525922468176855902909556033618994599198263358288663461373536577595868811398400615672200860306818030603987956921801441671969228242049454745006685049431215737249153777201432101601529266367410664130883833410078536549687975559730133400474518883766923559783828275990592390314295922506116685924125858784704607252400861732546498797235566246074617796429330911713066793351653935240671674007833830302564893890701936637535207108539538382513383908705942123903275428842318433295715520704072356673767482324952488342773787269168763807145425663946625957485748551778084115383591186870519468682606727594777906266605855947482000882987719847441414931274376453062911840239196360871428276818218476708735672877092609407802045294463481417440787103514854262209305939873487217488182130387725228288200628767179177440014410007950262680863958925956047187619177541165035789611090524240413388054067107547062921394674753776278456997489959449762832513519452542925881602958149576912300750773185517923256123998733414764846677009390389490913963692836445520318742505504347287581978736777024392075764926424031259118508719237422340264500349342222639968262283406441839140948325666283963007975585256350956298697930772509453790027554651590547182304110487063555803430910081576096508914644163279795863691957371866645614782720162777249006396331317873127009103700913876129800414616200898219472159644797691526505043471685016261504663909806422851300897116523330388411108057575868279121492548765464069561880827756602381098349381143194887332075939774784494076029636587600864375702535833956624958233954172672083225980246442144201621719128979403685411173409655949472601469485952839107176203267584684276643434922358739745234445304183233647935439133356102678939639633643281589510924832736885137295329527117669667007709264764784878103506735742535496132182808754479490071407471298403334307703829242431747016259399191765173875981018912947015877285034843727730679200459396587921002112092765287316780103764681614559233712052491764509718460915092064298312942043817955182123342180655952628330766436452904278848527889199198953027755261573409149513873287315926632990035737978544171749362372020543859223803082003295499791285696471786917972960882330930920757403352956934247709662557065137270929845723960918170096027354115187921079520201700963068995630344825775038020325214669033390473222488500314276205509292611628680521332573926742847225593299720250682176921732151406578761415847231639376732945072390545558325962347887946618535011428526172995010829252663782477043417578363965907502831533751231693323591456601622126544240721877249705995389962772628832625194486781775791057200352101200131756236510528549822962602997714198278290294503693624426458090937123814778830256975785260506544025401722719800011695035754441354703730882721093072799566489879411352157282071675210330077854324721647610002445974653404947185854929490400132575046522195346660493207686116634438570254033452757020783140536131319080503582565152369292628326440494991483636855179690355888575019181463231384837368165092461739924101667425155339287723867235803188059442533388326886276068367974719255428867778082997584433589577460519038739807645340325947861341511984588590550563632554033147392352899756683764494200304563357468362153519041843666930995610978372755491043460650254127806741895275973595298392167134262305079201753276333206859788686620452132786243189014969423253693785404897569878435085445313716472270514922640953701357605558095994126892778104303480477299629530283869869245865719153533447182617345442505879891491151504798016257582726486079682511559159913632923542485291684680470287983372934795492023819530168796354313844218959177460453921523292993039311871669479500869234441521255792664453779934544751506944873546717372460756583609991515540644735853034607325014811712536406525850455494290665400041424601884510943797949668236498313827661535047607421084927776530124352565029335150662359683660293049744840537432453653622680025193510898482816117408330229325376862434960961004443043687297617022953679745461121398856138208126433047350636267912936398099513637012111199324166456007439668676739109397898467268910947819467204361425225025508604568414634292179745703900675083750628048802676107059615972947759519996478329977971331638742468201526911888751973047726302979698615643171265303736717030574492356218811125605534211982402538211729546251336945827362125460166514806942440875933538009951377810932516078526158072104687422643540533214043167017275478180169559020360834468905111641374815789165955936279988034290813204507926030190509526161570085163265777586985820752905280074527148347803451875821687078361645486840758514289453832303954485145775087165800093879853144121688235087232598632363988260652411684577059259825947036537428423156637235757225268647381392445345783197858888933633295455748911412601973779425020888307418196225256263149710184535779479400168309990451415069597591767633828498766628480586215131673004561570665467242656570253125935700322568586780328578518818290136187560823934300150155358558222464024127301536637399392701395973278766900824414062388388720621535269452912226318823320247357645695593301317466477651268282957913721360925189605106515290339047699621913833948862885255723163435464155142306688517861711609327177174822684717166450045647269359851769200561480697887724684700330052029807845399989467650407523922677762667634637386220219522044135818888181631011479668654134840646267651211705228358817770305963726659353188488326965541805530956031866041814771531273765416435229940108175809249598791170587960133631821769302224903175701256602770057489719420374853654897644523493108676943533521959621863171673034427471183913188653986423007487066914918601698722898478633462636207080878426885134939001443981642824163541423088748478527410205030042510409107255138867078346396801371701533942822690467910989502879815817842511999990735434683702421939844304253693568497354215937722410993747494589516913129073270796475747258003328173333951514419612437140998745148335641644726783271322602280385774363552494240312495091673713707958291024648319116860438335714874087945688775441951759295248767595435098890396124878653802566848452264199197924886020732197267154622043737397720353051434076119403188316964180145798702794497421991011751179625925964889093623670197244576741416164723677241522063108202442450924931651729079752465885798263935022240030700277102433257780399695160211816181150570336673937294449281279794466407499701177967799058315714827936575447833350028143622798378728977154671128062935818146880672129256296686050147852985727048599788013722062403463555813672805108640976621924133682114901770097968555966708357507836453270786337934436493282492803032502445521984558558540135720985633543278518617348389891488952392313590079830382950106951813084000573233596172035832119995531002655106431744672278173718890718035104489044080665424649254988771363976530233830083393191639311255559862204888730723545954127019013439149263345148288824674937578214546927275179222478656384876483884695020797413374303609694690524722512714785401080515553888522711518474361395001279639262969567834892634930419178294131130082105277115105273474132248923972546721487842258010445238964357272711547006923378159616643827781465266945215896556765011912383002906887994238633679615090729937639297956271712145940511419133711106250552846652206151202899790481656566105799449042413856251227644933542071945904541461111586113177225298657126926253814857837058271332956756101070766410482745831540920045528309059303317859216898115300896515426960643703712507197702979823343570367610216133522978379148286665959632105116124945300376327654522746444538494155809355181315571260440745196325032383704064452606790232595113311190272488368222130689126857907594233028071750134704876915443241604691627594369351994918174595687905008289603495569375282507969044386260760264048708918110106748578520379564159945478213766649651123992769427428977677077018549012667169921323095999999513123129696315559456701537338375930851372297898070866065595568450846461647060000484135315668332050067517194359666656599813616714623279021001961386989140071702355104449034753127656867099560043403293985050108918719733458681610643019229197395837373153291481564030534282085171447551485828134188097720628239895533019828801886747132984079900630865721181076240203960321311037974715855975327543445752769353056991369885202516907155379630482475698747383575375029028064645276586606608449757565488506928970636771227409882250923105184829694721833406490884051133625154748706647917055429981553345914487219980985540540950996346771819504486722645629574052792148994187334862776993495263234590724827770946689212820627965565435732194467772534873363105979616860313500284186812806892814399750943125353220926361978760826772360207948522598197846975401824255449733615815044525098309723447311604040154317129702065680310689979858762910475524698275072992349125374110036146823566435103270479831154129412892461732477646249092348101495543928345801337976367920207041519726719359325719739928517831213813601228575667786122604041814918233750335951294193650351904043346702724294879320796263687095256200605763650913937368714278052833973115229880000752335111522841423777328358289587944995764659324246947386814508488550024322353713265838579262583131839906803728097201018534597420200776416435188394992899029252807927518609777279985845760914173957269653636365779955412145841090798510187073718833882332733317417926615880341879584738795003047839588094130580309683110766382672491396045330671793207975468615047887457123778506054445617592800522853327572832802111228720813673353524964481203863926845344840322590240070957681435444229875035660216078414895443376426157750486724401892032281857028292552444284886452435123036627386847159555199552418102398528961373556781835853583020238607492725023232387414383002433063562178359501751941729720040288029040249331359999154820940921640488940659312229033871701472092755114151159539241320096508432202061189776959342379348870071320630969335091496683450824309233647748193611860210829782923508902992512229799349857554491125016970285272101589797212051933611448554553779795104583175187072540539746785304625549532632729324854833476960637046448113701038693150722278785456974969112712402414540658690697539251839433879189835552082194110923899665663749737567044787457793578175441912510423842458738156309133696595188148289892817871722371616928223630370301106295388428834169036328497610930293846447806945547541672603059526304072319701598508968712066727727268219444845205679757597400724350472161416266716432982509734428839999059782526033086776852655850191897982765073381226452270553376497620131849714963135042529523393275150207910901393116394336639840384962374249388681042547841148936850759687321660910357882343838166959042833157765195733574036783841598897253854770163109645313915645499243394680090549567665553103772679391067124550935892996105565382088028526431883731365462210283936092667115059433327708598667739850451850652055314875922527957777178638242526811459422247710692289046804755617154949399926482390191655051340014464357274908115627609284432019573503670807149964533077121375127086211005465480073401766807319441174894193622939906412030412593738044835999123542318271435586053034058074454256675224565016369661904700124263230761971263015607699914745531792340106977706542533815632106208134461004842563468512055419554938652569684739046350306014359539657678845105169869223922792208350747546082835983187897158294940633552643423185707131828887420483338569674304658400331890378893598447632062232283827800724592898250015908936074016107785484066050052248921613501190038220717755772356068623439485580644126705632310242936085375778875098643219624455215562470145546824101613239900650342613505754805377516838619157008933886720054391525742271576642893880188765507770242179887383534016119870980280637085141557435362038502682478442609660301116363695642608554585902269465863360708674740479828888337149501202298358104636797243304520418534515038620732903386113094016312764707412676249035633243158309989059354233990152520828702456493361526644468742617147350306654953316772033796653049765584490583141496658745811276329359039433272151404216889573586736135619555798330460237595447427133568124442197490484777434202974504620910357002840022311312675299124409310467393815006732243757817764053820634959786349358568372348845519099364744695220077391302444397357266225460518075805158096474255071774878357609097875440160420153595011395199583502607012144594684731871897017877165937879039340484601621278185415024675869284061063598512204977185623480039356885185193501470582622076270631163176562125222532007285506106243563741564160666406704451903252397081409788444411277394371053171576274204979870908560584886020272517025074307523796482226138055247748356114917977734031661784984976905429060161785215111380824222271389526956495625969359059586534257442337004684884460877749266418151945364872650469562934218494698274863892881633108872625817497166467623447868530454910952546060666998227594843300554999802791481997454096982100604176597198836268371547383562037282171602230363599367266743742361383867833549701626598706778445766417052066214155217341158729047899259742179963004917728339523276616665651905035675810030213822231358745039734900200401741032884023676441527998185225788166745998890047371393124435347973566271810481608415998263346153303453115670749036572051746865112927561978491247250248454948675559860911676900706639518366368468529835624834156402556712046184639070216251545270110310925437811750715298647693768178044847120845045328237461134798611870886584568150167225638508603695436428961122509713402424806239109625745921677417505479416765490767887599957890197062628147325359027415690557385035419220562149433418874744869867376783554274299092647111698243055420770517580674801202678517150464034326462064005064775532207353955027788010149144687298495707211612915753675610855679837149442760865911149630079752737827734245234071572232165616398874535030265147714085288934866029037804783326692044080067996189082162837226598642379142667154026730089414471333830967238449682476471524825846892230184827000655562516763230205373120477226166643001754352061109039517734634750749399018768361516558982003816460489416426619377200691552297154218116392665374109369360537070058474746065360759290359512002915685467276256076663401744754433122149130157999658380045520628481209751082271599029961556225690346184310966315458354904375446956111778455184354256138970573348797952632558814440736881624065714456165076324583974238700218034164370215451992246700589614032088496480815379798586680764153335819701473668059111589719151989471898351853796277083744683422222844581830772020114746470653638446294120515739278029661321937685835331019293715827741908062560670973666519969879221190637611883516334205472676543562892161848695712935183894540109905267089843482523328462098921194798743783171398835106504072239146515256439751704259590324250176861546842294643514610541219570535835202818435925949190004204651898395021962794382283701790232804168722652700917808927138088096283859228862480720801085942470801458483264010320263864325582467982313231056766536228238272623847202783477544503398574229548036428731003780983457982573561395120658648837278340468753192974518387539264437944611440014427504645223206657971550485682745570724288375722695098901735945387349818544707031739580504627052228898586909346676694684856922594393340964364736232166431368892006201971134879215873290226566697107215866618972772113983629915106957707415330489504540223008364368011391306400804053855079281266124832367163099261549714015263667705109716554312287850333618156258326788597721422112932931418901365632328275509503132865101013809968167562464544453681787888239831613482728810650304652587506921362623563128626589794696931875141654122697006940320133145613979601398778306458371114875170461717230023788636682159315409141587833045086246327675913162462194056013495457816497127545366216232620761955601517854760089142634682187662172828141718403049395555567067628464544958665168118564134861797944784274244837877527654140447624788832576456953410341700686433879604549531349311335379754227368072238423208804345058488549270073050754043489700752324265014152194319793410911559106864998587579474103818714537968305359901518576515954535287810989703024265840503366081403865179022701179282497156902672375481464010630122186248126500373479014570927358688825183406245563132236741235968445033744524221933050509229448067197973605324092215404418351783322016032707125238501967615916961034905620352761725204339405247354626253485470619931723319527694411329650026508658429192095864513559026035169170330540849900781376810389839272823541249542192231278258176876600246020056055458422688332052765179414253501395874843179940912279088700002742500134371104684853498661710611946928963629913806158785133078281658443098726576913941835827038725186361059949815092530513061081735709126997495590267991278756818264449961647572557724739953340267672795688028881014817539591230199048877404934946364726226778053459421121494826165890100605311105987737528140809692227346636846053725012030578664305577127200672977562619339247548422133411733569097994082558561854719758921695929998581959245353248525467464087866520147991969520595871986894417723818730249356950403399715449029394787581838074790909145815184949623655391615148911552801238467024229790440154811964084119886073236175021983543872752040089158997582364854470977332129848167146236507030883937966594987606477232406454985444946402623320845045848224159784526878995504663106913617221096584223033479110166815780906401606768022190413716435999989127499140080187142097676572160381879258206491720195325711856072951595116544982725154568737728208880758513228508461736223201453405817981429621812737963552514489796604744243025810241971016366774277146719458752328289496922852761619923937929034891765003945029678689530177024654977154691775759906467548483674128229466221800635835790939678790830153159749219097956027602013106469826937713840880844169395870432739286619803592261278849060325538064078324381389561782719438766805809782333185892315652507805095303900839760130002184372712023674291003122483103974073924061864393241005535711720316823384471147871089509933844233581630011072765438112469793090545151691786697972740528996875935979038777519044627733853441244232402460574255747666999886295756994958578877913064677621680218220007220949979644203872333310218917307895202108586611193720397122377822892609293016648195147544748422932326712257074433908057538308521950512900729699149432005908514971677368197329311800513196019829451024520269769190439562404803358720832727074958823063601603532207178225180472853949764669789151975824972580867296326996949996193317647268565103303953948969942454422810246982050278965973885397110026392785589798683060856043922345636080371711601443360169288761849047671869864266268380623208238705933587016723706872808963808431770676700206529624511641780656363330154013643424781060952057126677733113303759083408087307174135042671109586978364524124690148527102051654197070575222407305380656168586534604705460276815009242286722125604691185876795549356300514435722282572165632063035777350002693902409237949020475008288686132332697008973121473515201625201058136797124143437256302426044106367621998313650184418132345364005729438639928057637071406576432716384203436679282499198791841038877045437955576658548454835360451308728717816685380036821249487714144775232448004572895890498271969760059494264411920633696386555288922303450106937479507909264238059640411296758798499674213305536948585841200348649014988896898455907172302114708147875979444692789459914048908160309751490421893448947772455521426285583895003896863142441202154932214925949656720828016347229850136468597490620852061249484138786071589418115004741244775037869311048811990263431886118297392769239941328217720805967786976531932434377350777112183193538472043178807062674811333765178084862993819259083569913484779752911291976101102604448203131083474494534287611276708517385944986997885106885430629907810884801368904615684780022292464551185017267013416243940942587350447258019369026803680118075090781866666364681870838199595224812219330530049482775019147538052970228609280329784550229490574832305089974082189575257200674813966507151776887406210850771377057504075920050768644500462215084196929715652423369528191308148248409851863582428247595887840389883939652563503126554151832421348314173421328234036485883206872628077156778651848241260343129455069946806757673324409578663762994816580169706641188434108082270731014141783983181672981159289358561683496030553195338647967319103382434025321862222615581771936864313048561056444707290809389817452765956961612548566821513602917305988376813765874953615693652471233650728783176254482688837225729627896866532707105949929299126981602788679455117433834175055001515216486388846522009174308401295460660635584111788544046852635229494006792049936947668497651877113337184845505427644495845048110793641086676713455604151041976202317600779116074342891697551561320981175025639039991271625678183226316244597778530188873824089078303946812921241298284320096137486694078692873282108794576119754832824544038108179536037220184041536752358280409682693813692099116743440857490149835587052915516868391117414900547735335555441967190587263846833907270989522054776419727301629432505113834826544193138309994045594967804321699256006410819636058746843683519566593224089197390281179229245801319815533882145420551994583339283453969995075745033822317082633819486177202949379254966158992618395871447434379799276832082405974111111423044571398044286081522288315936717330968297174972106385071288089080584740899929858971900311894437330588229633301400815965736546048602962726027604345695043919455542336811265972054559979629993202954648882874995073302083587143260469745270284966245080414241329701502593619724351341052653100007609043371265180989799938102529657342972928977876738659719424096624808663097927203919215851196525548470028766734699187301657482243568963176581448418209725630018449411974891026606786029895651341708200895322553952784215946466627831633163007317253839641581122432048154737334547332764458664859958371520591033194828707453508775341983465622255177667089964764929481797471062240029798642819407037357867705352576281544879423597411719621153666287533677432727565809355005927720413274137940339505959401508467807693051732140150858916238617216416827354471271847380792892489253080543034984012961361676754551373971336625409331268586327679837373371885157373247471962285288758420665228098225355363985023227148129455026781431926148866709362923834135474504919552965753433928878719271793208017064810818609878742445422655503705547683499412730409951508445127465718380900424209775221096536844635258398422129240908933743308435941817789412095526654353129544371027417315125782577973339405695169223536034951207619452846839975051726861549066513365008635154146440128369641871006216814504450421228865450087632089897402557541602349949657434199834019731164706816761333740214207255624099582668076430211908977772494929035459352299405638379443176311278948965228831525372631092872609605101523429560566871808092404199837851143007019255113850869095871507348728410609714314306190854285969239337936030248546490401862396479353955220635801655487664673296769508710863653844244588625413131015543508100400009277847872011384379694039063313445570663282757245240485449417873101470127289389994510634738597718961631093027618545073772910688014444814604600032330487065964961837670111923826602975381646399034432721152352792728999575354801788909079357596852182469974170833231347443081386680430724258459179760025364689368920630609725035126291170140616894665436739001995555906715009234927638298402740868070396615295734899498397843386362946675877604622549531291151832507161582584222812509220211610003401601611428650759167395526172546031706709936500352143891584465194302831127721574740735622356682482606474700722699342794677707771247558764880111144563648546984184188203940410249729664761415973706003913511806591448499867679193834462373482878408707519816087535855761343434807657671480523581157387811554548998948884477557239412610071403440609345982814847375050025080438829817748719941671523511666328182751117411483988862008132885491397815856220188879144982536898081201972933566827661775055711769688074669470250744442142579813184872365846804958840470982864388049066943112740949496458141563128812615922333590301023125521183369131792961936383123534073572460589531760403475510372888326877036646594034821271135251080899778531371549218295300598153242202812377354891157947667504099694710296404404313910488584376093722926792865355905999028281218690528154654347276111663201513739883620028767334684723976565946095736091289641885981293388998308688965017926580418589160596701368552360460659664681127505887569222556144582240281300759256538707440287706581462913315496325728593523043763900006385092392911761456406287757344440364603991927375934844606483595490652217130346067829335306309720880508940831984577780278277592334532652495440864176573603827402816666300571450298560231396867503304950635952651661068265940950286257921300822477406224028512016499706677805177361138836969077280054462670891547663307971574102633850941923838660729724584083197386617801209262968843911557365002382973543882974390578301647584129320079586528945557763683274135952790428813647531754297048800818878679812820475429649510816441809739203038480389112602298418026346415695998325524962530248885938000615780354415217763610460922855641200389907898792119823128679019948148725376254408770641094717137989118743261101711542942944932589628508590660956675300619470105429695594990420929439586417682502876480623814496005884347491889855572564700530654224978791806867564734393548405209094686965711930494578904261027058709769506262636282934321394298351047932832654177134552890220691548175358930177310562484099532184440238984348093794877443427768325706098375489590986505096765915526013462517822114367796051718209587973310668775498902865949810270842601394245935378411778626106019061956637733852045610144417452093132694029391280434114865626194413936193577088434508179820447042003447813365292528553474979635998797758216209937807911762649984532331511284989816758957737434964214931759507031836252279046067084286090660093606469846130758952603344753817240052078498876186490660521778228950866029717642755063477073346663916060974069952111094091664595463386617387271297628770405602076503852676241186906871730122084325466337540420751617109963311647742667014290758600888346183401224147729361020891061468038324127372791424062369034062889988214928102389664114219181483957122865173874313374129758034479642666510410030761469515202010150701232063533966268446084236060041399127118043079959463589654116982021292463239068463686369832651496299943294084941717489732588171185763552406543884469871834826257607993568840726035297537463665558585039692451872482867569564824315817853336314762828718602179098622995718768018794216231570526186832921788042974206143763775029567634503223589436312623762023903424257216829890186857605647447120834579231524328879477686699861774628208057866370157403531579123878843035113289130430426690120780600723957592662252371865034142732673678628116274507943535695393888393345498399081935734948338061258681773303624450054179896194779759913069179908459867185279506109875392638078770128253565794397819671353552619546655311154798860649646825704480327244781684972268801964368680919751962149979420209500987489333292276587221005714798675419542605379870687598454576578819522310250202827710534858704274174844627608840644582962145996240369803579180275570985258105615371014875201883266423858636047441365371093368887463546080019045484630975808317944371811178726584525418314006723030531894317859260613308502121173436991605290732917790150504905990443340637152343074473678440852222341702297409827823637471626346358098555615351460281655293082827387459556412713845557312335054229628874464182823936705132216852756413054106949597621531806193032108998369198303771257926376246250238035069051124367692367589669622251442427863466889037734289243384545751430184560038870705955944044674613751636359807796976764737255257335979913671174695402120426154187408640915550403415086043944971147564560026204826149423995621107483550171321792197310093196364817727184032698151755193121573796462581928926970636202002325184172794274017223270726926242572823399435819770205126576252485718076595670798432132035350413582098778025742877524179124173546694830987911745201850252146804161972495911804837927607542808515396761981336735589871647959107300466482281216129258376778910896130212672261735307976674114620642158966906230048770798091982182465019737790389788528857491250237055688397086458640098493299044634592968232662249903682943029417915365517092630594391220514782403421855606902447410795233731115519796302576462692343750351316991011083309026456098048247811839384097642025768307530536171265369005077253130750436138163894837549219063727684250452989032842324169165853995548291266223269090337268734930766656194015188273606931835105985969573945767301055868408160712530086733570560934625123788055181056812156297742706503856687118912367590103850055106065703548309646942430446384705600782043630975191279158615342202583833939878649593422993698814035641839665444078620629859766368680889380199253948723662347846941119674464533388508732159659241344194025178975907970746676594110999667325214188473761882102189840716365593664592032490976392473299863744394731755350629491811942926012358448838166748255774278983221738958539833607814572332810077802048651647401909497934698673958987289788494363056037528369523778336893097832411606959539309247012001032263451136773222918623674682866391600972679819286454045835608880724068475800131182836001992953316076981932298026655728708662844653843179030344168205682078656142345987013593589350149053518409122184138720661167246105939422141610528799485337232163846529180954778508376403806849053891875322345448216661568113101447120673910998361393920032325000181856718112979514643379810936995955415005833588512757514099363054981192915418102938284832504346760671652812161324564939664537261419506004750156508345970074318111310370066598596152200801931285275987891693951085074946043734261290218442666134937970851970216865694218654952306790097223159801207601285424232870321608463887295146065280289419433309418204086940568723502252329821261045315920275486842305647950387989707980675946136516078196673954471368893915259405575218825513774179029670555548240745865742493377114655873610030004392523786456964566581145802400769704382948092599471281285667739044065290706756282744451773358037798932029201958290149343318460010359422313760629241026025149868117159036159287354401896555254488636314469409806808594382075864061309022875362056266028701480048022677037920518417591461420209878664881941815307902033452787133192362291836748237386309978807651355433548972269689386328549361289396981253053738248834295950133321652672746980013244168966817712286875644191704493846793108676495052631718265893226217094120770414614199028380010265372363997976560897161164191783043203942704231132180092134337388046435086466175334668708492226441510363925024311493521805530516266113282230959626655708111585348285117585308925126934772235392624703616831281012740266391644525781622342831671857046684430950447729114369135103111693554183016617445786989082093597989986425170079626637361814430879792266200721907474097730642035090961094871613927818542281809896947663776098585569769806327980894641856486113413121953115327224213483064670694148965230949936092828050147172766102020900921083211584186420876072784505648189483005286283619773388586431742623406092718653522832703338984181274838375280578749154200659780623563738566060407488624897954745135822226885332496720687507348327074404329395292438471788716491363848209561070030271245152299342814922837840518223583748394135303368018622483737267982179193641484985108268800509604173711311823036763936937222270863500932369285124878748003535222117537465454708962470559780732845893937628340227519601232120037820207045957874165699238315678526997528476125542149600926353454986131538162037922363747345315898884023732048706417630603674784041839930680818060020928780168062933153477676856833985244153297622461363210207549391426019066852536617600708635573452260486702265481633757783238004764887484182164539044339404739284576151843179573988227833431134797378603649926561284443359994843910595832938324711027246260821717069942016507967732488858725283866361611949226704152430717967780824680382445137031332938713152785529077551519293947776270198764179245528687408157525046783348814442440670291576306222830853013442076306253219552451106017688263752900061706893862521388738459221521114813402349671615129915297859367602905472502739749325138086907881061974843289408278520075757009480641281135599163812891252621779963371143423432624029256777995590914802691918056939343318128360232995463922250735183741183975519898130244340570070942706878533428055704953062532840794187401497922504010394652458452446423708873053121998129544372591565139774925695699932457615947309951431313464787164078144294007664007394513351248005656478132187696390127708265355494327462462260994088633641373954668671252621906461698778319839041564575791154120531099345282482552545815995882176959848247857431164475500766886925982649104742666684916704608256322688841653704195616658913915917423835581999097835205713689993640404597751584032810810236526715735811304292236205796181359823221056882792998505174999305251130201009634163317302810872289688779086502085360571232829561825599048084293693793204809034692140522452176512064841211478717890524350695570198019384018355269339002860967084262834497223549995983997194729800775614426048849754417578689337420077687931867972685448017817844197227210544589019757891014472315000083990194476880874032601820954312127298767334283739172108890315505881963344538861066479724087540267864730466081655444496345073745042443634780065106743539941204564733114025377306189510795316607615300341598149851324695428430477792785465733928362880587709081600725822194415813094760262668604097876416510691524580609649754981348486205707924062178995250696041582687073451408842985379187130047709599018901899657813715588865631095259204620088263764170160586913751241128113245548939357653532241311763266729548686522848739530019682482322899483298099146244226196491977885122235108738254347691127813122275206230730946833070955209641724171191497344946705773909672367741739059082329433389109122870658663253243296276667303744313529028762909256445195381217949461319666052883123811108187908773688127044468189820059583148638259959271776145337490065158934392057302551588574373921567370126709000671014062341283766832587395865996707459648587398509635639554347352607808623757467275333937322313662550628139058655602656182237475187421885146784888673614687881488969936618217918675569019346355319199000189946335218428095327507447262734492652148883378843894231314177540053082504601682371863910158633841821642309349029345230918901006543787230177037967520567251275836840428886129384120227033252103234031264141272886579409369128151901509304395834017756465084376177280472664277449922506095724743000632934397620023237668637400530247711556969923187003099552162268041572374065494899333086262991265679837509925489046013720228446402644750057979817397787560285646595277160427728450492731475876501040647816830467677347724289045570454727665495801170872476628249393359842569711516448300313389830000512454474000005167437784094539364470548380853870788261649252425916438465194689302873460250063083961426132419303154396105578522016002656445914553341051235636739891520969289984398723493530379042575648182653920926334027013579695259223549826259289443007917082037158235039867493372403174157350099050369063693065490085058858241775796154798009855541401119242266572256618972484702489315790937941622369648507343311295937523100914513110339098835464745212383597080953758712287735835517463857170840180010095130860544967127720322066017925831667546495756147886513252108922385104910867416319521218986248154437750724205904509698867769517784635888566278994086967537815647771502031118627984888989351869745629796948788996923168647003938945046281371475185477184551337348340997540700925707225138254498137756065335627266988972295046028108380774307168189435327143995393329091969019510426701944356351988668103398714169783262635643828809400817575972364309807187274266029849522961500463064931143727117422780738111250362738959207227714309774345696546001775008338112172599944457422167914210162239702557236868095221761174672312137907069489076277381429885395924291655437464710588830612124038342891548651964079149464399469168195935625884674985285585574142099196372735490409277863272072743218470992383127601637595074823521146884554514571026587589150584507945707211701555525994561753542245779743561758271553915945453894075544022090195897240831406939753538067022387451809727467347866778498281468906145699500984642014245338663817329711724803609284412533466905791119813879586456152273264843438113801680380429114270902209710286221635442939380229826950507728459550083831154295217782363735006175509904215605917305314620251429450843798864621030996165055419531171824452313880216768442680762484372235475483800713435825479216387501041315729350770465487466569987422628556996329054912104411504833166723879248819108712478136616094583046621774593030270383603503478161267307569503006986300282934210612938940345343991317866256133676470898790732267869485035026937654619377982390991657752891048866021764360884539579087267124719636207059326981722919384655937485185832002737578389206475131196454630278847892809536950594833590599306614360297438026162770258863812420534895171461133885059859582676500319840204057115342771104089245870001144087521439118114846082055301045899755106937552923031020932171389731206769482265898744397580570174247675356557167321961278643005552976772509071237292188399922517006948714407462170836834979371454259928177755829433672146931797034453636211906961497274435296580243972421795529586563607103595460449348588440135198523302845480949162265117460387649976594833024774821669396649956939864428369041021805906289068815487327005837240241991134419934162965792817678908008681430301066559960833053638521656767458889865094537611549417258719506196857463535629876120698515571891633651508137596253904415404938671012568540198977461051310414001444376514831671347880958546011961981763716949161890951586991984489686852040375253305035283580542036878335842152120423399691950454496088321378885867348806234192332586793489496991438529557885143610354434889772456947645915311306941447365850405886619023458823237400333700149145351301338812712751546009437762766294247945477916363317004645452547690673803921174316496667177436745232799542263957401410937707825837729940428449213410591261742706926448153515280771509679362026248770894356829167148869540901052027909246230502680932123964438841416794673706911389163245428534272466707231024541721756760395527751111777286985962998317530917514616941860333602658532188435253392008503810045252451564735438842625703495964397970433835530277578318084106631138554532102483092771981112046624060955030051170860323791107439673951292132146486774645538304561329379692779593840972059940219730542803081005247086963610542501403246039401985607940282182115549353425900060948129888385097296808354814485571729854374533063482675211014516565254079741325152562883249498784109423577835888544613363727613498288658641636495914988243161440784716932207326485352154427103767386045789651175219610780416678437574554014725513769319059397397381485915379047967729801433711073180009610142868670283159542158850913580899802335925025525247882583015907994806927383631339088527580837016791582652921884362145195465843209321125677242481605424642941071960297611878813728961341957410718187790678282725169162840548853703776735963530621358157208452812091892100824372018394783693962007527329215627483167304701483953440799090908103563978251019679111522301755660627420032266386652408087810421844477853569216906350889735966618675879590267588437743326477453786622746254832385116538481432249611863358887601127052500909566625543690468312500778224707702825227966086010159273030843616234284332779187322838744484492210179884578260788367057960803786369441820683199374879459744737843673256690797464069187818750182554755803741934638407561001853439876304203443107189564092879441164627439175624262530896794604785776254037730434266261976167680237888047640954176015064649875931225247907975933473041646114873918095463041885848912440955312536108571892361263011307817527695896704550934475560444436502003696949075883258659631634416231672342259334740142307409244369756237260839631722303227580197779898820007456727118314082607654661929174087400417362656580545911647780333881522993925452038786514456635448590922432465798082719396155398991170559572706027104059326588273782729655854968773534502092309029920025790423943772585346909709870944241453441821622374125470459154317620387057977587045843908139338767446053390252144695953055783419499713110699565653967502421760319459928697932777022721714150282379356911021807516373324432808220051695584912156383776442618391023724064698655631122331089443548250853460315299057078366972543867551053090507326757783796276228744158181204654227590313222942423099355247264644025310265484371683451377768036656905427722125851654300132808887598521468833295023421598108037920049437116066908822446338033609459175451372721471245471219629766935908513488998146333665999109292143792194847095851330962136861336612135977517889488098323120874009481152028928411380212316728810415878773532898433664681047267690393386857074169926047484538856804733124122130023585466422724118744052105741231331077442049410563951667594568550704176295098339141572001026353221538443522138993083661762670836636825231613881559590069617185829023778828857620475594327424760060579594719512280395463007088526784277094683578125549035730566081966133679460383998696155725808853514871463228579942680509822085747278304388877274574089216988079557906654750011420674776396691974345871612922728371077596920861821032958015825001545730836168172745423113524966854138767167978042696578935193215800172641770289499981017748462657439785935971536458655827027396202669096057282826554405324331082388769162700715266549457106592855049269447469887678215801063891017394304952070892358744537301269122658331497718759423642798678365247056310750685778865317458914966343242728220209698625688652795543381596133029884190424387650441894864465909942238927452174146349850462709116507812733346256896384226479254562363034723441999277047384244643524699138323519882684864544757739517635498771205814963885246609594805234179848531639320103759128317883799563141273480779323210389561206524878686946362335902830437724748388618338395817128790957157782982681948875140715424886686882515200481833773007108520749448744289007225391765062317859321389607113672892290312771852590976198019426441367952137062730669075244694607959542848367986249219653409560300023593739380169786194040883023176417495941055703319306246341697612563158598257448148811782472788190584907267161299683349724471926363405409784469904040411887843434309784403025202477914066973534966414672748069967164106769776453687833390339173441889227040521570221651050460010723883559707281680103988193088411138238122507784759755387219017669246387189145524516616055252351853225743404569627649532686396689366796775690973766970828003448523245689666438178573570382239576285832554520248571816540157306480987450461981563831792604998603750538896993441596433500065402493207419814205489531782292228795993693016245145192641998195688526681544664120854747771204029291596814991807936246908035112643217808043797713293476987676596117149536121997573747463376793679144114563770561407798121061048567793416225348671046952795242698230595127802607371688939797224305136774433916362462284820756112449988313344136329869054403045709646255005780463131224466711211796740618876327165224029393579013912465932476589537812474039619219826533725009096530403767716628691496568923018419190241422654286153425336425933957137258414078923789676281167788485304718896081611719217174203619135788351171231075201429923274426610879722817444862484656930277854057983924557930154835665107415286140272140584678264467540321722253594848770141271681241860173228548104151668564399729499722981708090316736351126421200575619206498272688826769878152380619289526169797252900185313345589590511045094576764878500775629352435957838417819133779476527583514708191367163576147987857128752514612530046707627805388640446655470295405266099382315414910742691183361183880400612370219392742384300102027091618707745108036192446180359674780839913173233309918004996156497168136680393677717293753412665975460196468822014673476537139948104449375240280573066408914724708238025617965821865896834579163256111275940788171485002465017257673866127356039973634393509821483689515204650290185705993458276779886904576960880872331615944869891376549987128633629646610044435537831160121675456608326328758657834947606106248125259672539839469712484727467507265172593309782011139761090240730596118326152865152009897180430342693240279338437533614057835219567077660015423200683423047483462166645089040345070875034638757632469062362735564395329836712367035013092421803291199151849363052382534248849702229976752693397023482169763346854158412647658017503639800304460170669255249733881122214293031215487032238785810721897331204418883731226769882618642893990167275301294696473102734825941037527087312997443506231855329456088165184288070686237661202297804391949222276668334491711768433380356696536856015621781161941546479818541095156161427158279043015174167188224533174978987606990740839836364504996801238938771159785437125311358372957658693811804062969192689606949421047991412874525417992310831608861359064658778775037599242658883126085000510384155793421792278381379710036946087258462587314450818515344627435731408372816076661149681135780618894529790176890997457113148700358884856992379032755391765398703010981461905738555784479342423063238387273832913527506939216715519125608058761613454342145558806693050547468374835632760069086664175838353836120839932891174841528188163579189269998096148660295003817168380089300222218012748386935820724081300597827490603677036210037831444186630787080092276888309481889407113636041748777981888799884691121733250009730826544989344185294888232330925044591326766697936948841765546928740747723558181869091763708191841447968724639998793492385477948468054305165585178347274739408574708213444523342268658011917088378374005358068497223998064635289093287721143165332173916627207255275454906617757424026889283420812179634593397747453921195310108839312351225054370390554651119397780314482236926738295295929527921472376320415840567033053587659217639222724601975165848542716799477895505339128159628319207699460649404128693379968296479407086637216553876563961937616146193813731946747018731726479350585893536898255258204945263393262386240625759443773955890804619371489931530066931701942378552016942557227054641636955199398528545933728163723196316338974492034437987462272601164897789937884430922234791407212201225199987400694282351700945754199219380179484807531476456937489098440244731404914793604328370799016531144270815350384423552067042815993076642482318981678431351855469268310181138125940928104285030970970995300027841338210021243119881931652903001858879702781380628716891215287887423149598529066089707581742912100510888785178162516768698424691259855870275543462139629499181504330577688162455297398055851351967718381820516846306477341129832109516744745998004944157036210794646466771725079821859749510774683869644119972294114013796171708176732625637479690235044301864582322237834831013193872258035895200559521518682413233220348376236502676281844679227798993436910136285926151531494419615658151803105722275163363378768282025904890719593595538197157447324946905192030497379917527153169018207227820402677133734396369345212611449769995295963435696696128850758450616321383591563547210908110574976939517649223979285340236425544522787230712601508266742530672444819176131387136065114117621713988857663203569810122666218755578204621458463424346481394352935918690364791865373114408823665456169992841111462577360283509844616253887643451121935949295932745974030060757625263917351253314955241314135175016553173756663725751488394984245454882506949883658966068843342604535625692422937295604638334584339451319035224416751887498073951508171047952313927190189719492566239805827279202927178279778106954871669814727669150229491315115954696052653711548076294477766271808445118667843350334988897432017946569977822255068980275775651299384323434106313673338827215927028643027238728173142901043574826742927509551734037680807362281236159025052596466947966786968852458257725172905279461962920815573282196871241047123836072945502822190591383808035716648423371803534187266971813267341999769321985339288236598022531868186327286651624489803512692986453369050919377475641027824387746521179637927391514923643204459174327920504695674162128247150213459432050505309439874296253735754160774915866122233600620820225822304301631235083275839521339506529751634179308387907004504502749537600526869151171498994417007223151490342693077506182459304954255832862135836143892489193249401027542563064421641083953242221554055407283942622596086825646329981263306754939648852788915114970021072525907242444850851366585781440879509842142629170644152272893465834937652347142263646192580568884190381841420005356802271335792836026054296175479868299098976348588145239909526830628234885921523980790612757431589836047255672484565958185004156119893888401728981193135971845005676615863403521642794042608646288057282363406164377656144895176708665137445226299225988494328516948276939509470101738704306584248024723439043569858777952428504988731935430774198723378981680975064172105460928434229990476846756000102150159944837704996861319152884899826201138173874083857343780005251794331031960991709849807456004660512844651398269342509411100032805234542390629469230511153175216563682746207420962835057890723654502114820486275167879144398011999276277055477392236603121467219022828049759277006816013656241121084375653469956868252149684744441167799741082245638165235563237431630083019760330645143665235839527634941861605564516248836625804665543332546450312279484386727367919082102039576730806931600470336960368949719106327874110220249356468744443287976363647246079868408984326265618689279368321803011319288459026128597639050936205639047611462269090957531975719231087655326359803419895825004141092503473891693463411450758604300514027129085150234188891594147061892948563285867576870691171381287940303979181163108804120560197845587381752474105795989879226048728471544495162552976962859931295696091775285971416475374138557177300016522097743800191616943888904870556828510058775492283818761192707149486033421564913839469173457611738448180713559974560524799209615134061641310895272584261899012916101052607986235097580176344806460986988695194106873365404430759620208783796214193412225732495501470265852225619791897855015821794663747535965535929424012057001622884838208112726316460462710043055318939519385826410319105536817898075900812233230730927739320971974095021187669278862244744505512090363389442228026626773063368220320903825583935059799809104272498868103633625292509963666014640152342012629007504055641490839648717592370611305573741758010429797046919548577315978330105895324886870436399132613567209510469699638528970683041988736048102443221767767046974408312550038952332745336786804386376169650683885989170286743865221675264620790118267559617761286556295465351786341556986790072107841483515197164348395986151354676477897831858488247772100856137186740450035486250309916230970320995908646371836601871465473232029722077646957108187209558846827021057518598871516820781073230353056768722401509579525351676517166280563979469061004235486883303714020625038820958116387706411979884249123091198314341030267293105314389930442238899655864046158867364899599017930630722173737171029559433228191225141959594065460543360260931941336753275359302850676678132884189661372269643831145820272389009418580823843114368417280844063408561803974020061597000102104554480003483537576345595027743950921068894129592998512336693532570399568902291311464725888652713013089123984614156129354235654752442786997935672449813075828193523507109784927812141596968521874870048605887925543512306227357372409060475245901192797211671890940188107037682572166786726129936842974818808515076040045348168663793940861033285657272487606759657576136047982524007054289794946977337994697571124065375107109268776439286272707007135245022686477013875072954941999255435142069087776400791986705122378390162078558516513236008509173868538466249067672036640497423505250930558641880159747453997757952968880552450066778371328653470321846065189088455904977792022879505987733142150262105087104499319431898832389665390181649250512868509294936590847464211635070080011788358226963467345228766807964364441347427727105362555348681679174339545471464450100185453747251294443818481301558224414527556858605893311973891044988159772479510505012017954904325001020416854883099248129436069222834299044184027439330182903495712528438758730247958055539761893583395618368246799859823676263346316351954177636417398677414532515844489599537732340981389755428282592350747629878722600669688570400155792773234293403651430972465545503456182558001327298873607486726216475504226039809581893314798802687047925998234315406286057205089711252589468380141999225079762797792375761137834893542816041190467611476175016648593044815279969290994486695608199058136803620100422005228974706992383898056681832972692448357337777502386619544546073716131243551056671048776704631151276526687154318803442160510703663404650132291535889402995270150927205402357755083523788503025458078517080692407725603085280343561843642507954305474607672043196893479496252049252785966279931455577644718780144854447924491499899215031186134176799622982173103109500912541188720650244900287088122508602489463805458375893990581332248786149504358212572601969174967396455870861703707959031080343756368047967345909552900080254336060617382034785658189020397903765752345276440973602851384441163999255956478236249469700161231544263642969691913048934543550179528814569825675610828739307365306546325818973361564160061782903786420183367217557336248202491156531680081048510483980903736448489574823857856095253013657005464765785206742870601426150289106044506293795635196932898357568265665254849533171444309112206910878831264552844663298529053006866559235039947511922296413026866065277788125004262586389835811793187853233599806813495886820658496533037979386707954083093107388219601851683342849176757991168595898948469090949862234234971921880081790867271883855377908065931802471264053652707350343787772854414761089759511901786105231591267186744044570320827819052087036688287892701494119537812750037741176815879183699826240125965636033978815237619119987665564325714748603063831699622442019743573741480746464391712297625096617145013420522445989013279023603139221847161660621503041686484322141386538819861268261394690441570778892586855118816968109430688481652971947857561757756769844105205149724299150354796683589432627389056528090289231414784391515931708648663312130133193955118313871120330234361540063238068318084127837929638380126834429946266451825648098884266524477665437688536083165104321736723496864866360827571011880044731637751086133608337568479436213398990935609740844256609578293411043562116018057171387900165689595184715855571888851287558095936336249569233498114264443603881969253407955908760099652755233784893948945187953128691480728173797511656684615146262593774162795066348235479016326199058767168254388426634283990783954236000714542631319511036182853170120040876839697100765123361309901332022434646105540087700179548544221748045547005872122695690736493901630940920244283861670933447135397945596056058470299203273697222196665242908615887296579365403295529251316012289950481647658955610907453170899348684510174600752313174181041469055610420730093361383120517881581126636367567219172381746485908070894968873591845883494389710798641816301976189035239001797767822417007513943749754072453157027361659109498555845549333056342796856818606851505577920634432585383911328285430355127291210959032701184466315383806157633454940706665336988318101559203765697911700675653584823133404924207298674527289200044484650920568909654258505546372889613959718309908376999848846909234788887378031189814238421550369719929456269866551205638950923981608408958528799483485795247335472482734387837981321222020689322343695316841908071837988956893853241177275779500667614275420941675805952492106042910371068688642872852427178946854033910576975439694770182619760616868317794496526237080000642139129511657418609592098152565364579219223702722477374910222968457532219520412637100624811633541537404736739788487096452771661708895272110738076340274266931564568518634225975074079659110067657805692429420537876714510994676997747340263504576468327272754510058886341658057217005640091057952976040022307853264430643367696519185756445159829422686289181104457875890086698342828032255647641924455244220630436803019835042707695988238042813410838213187197710310722509986074347557927491116126025361505809247092793169058149292677093409904240329202277376802783235755618738640993965662086387352409359293377909390157619261232783851878849953780480093284453918833043291622821186136714527366531244515368153002837535309718368389119882450385904587505599267533400261970940802557567996620715117044175908699742059264293473215208805719232393409274019405148132791831198554116434544997656371677259901324546089138810800615274326956409835061446364163006073230575199477845919366517913939065931286513510930921745100063624791273739687782048412300039667111865418477344074813433015104792242104676474324497557076565764499366696201283944675002824899897265144803792251406356752540235983033218266246367863170352185735062260401558572036494239095041127333422552016098880356934724678689593409717522199768469584349838497815369843460594095407797562910018334829369655387693372064755317713324190067389630247548105946654184901681039966952795910680745837350856280375410644640198742396172086154467282087682964598149434203069618263671212274230491817878423239233885224766153972039692431793771069036538671996692506995341858768799565972770319958667407500006498587946247175105623952167996882576819162897281369531836544620636490253088922978498522371424524993909083785052782153191652413047203356485885443514377385186510008797222860523676365391499881323310225756436332207000917467336807388534203544126611353102086952163073602179950834585309889503575862000128697875802268469722541254290991904069971983114264091814751729039696000158782722020357360230094283190726140257601340172859666655064097218574167225138699896625216870246919755021203249462866477857275094845870146432549552413247916621161173805772040222225507463764678346214419851559687365817763742107328793967790231748965514426642303123084113488971372098752927227419592267961664822321473163675216316928915701979969217701855988194437086687634805080447307377181176674138785870934052014970970419918449120919696578926388630630723280545050907474183495672626545242049094056835938568049963512117996766876543752738403629797402836040800881020048073706308935496824237942773496676347755103486357454410089910241523060558965218231473256923881220766114203193670688680476153274130708144063733492697351223582919532587887271329971037468665626755940320085199127387727478976934938224445977828667047389727952705174418815579231669418434920727812808933874033012944002435651139957009454881479755294519105576566147877565334454438111370946055007095973807963375418256555115447485089166512482182006766966930038844011391616014827022127996411974719360119229475911801687665171888814514635255693512174087464874726708949121355913999697639258363548678779254401537068169085612882224891572970038474251673687875002786443266375844497787660592007947375334590748010918482518473457466444590960099170895103179116577295153968248212223381232720284597850902032154301915740633664036337097813134325935221568087443346400886599628069819506234968818657787820478377597682207938048338776733962429066510481990396556825413286886398828597871581576731162383583193704088563595476896782367373290955672188615783033596199890644781531889478327762843764203570055976289308267131828832760879694072092797258066568764726460650796172784014153055164553209433080144352602898970540211319403817495978371996917377508715405198906070809977572366959275358817998886716121910419647280936404167877269127338503023883585851317016173425250484215569835905507569036895211250093129298021325791729500461329689150170250961514902780465833261373993185998128582620510775146021689605473508228050695469102417513681160898475262675189767640501877002809237396342305064933712818630308872174458205071141785054620782566995385649574865599398693216393751217278546556204773595678329206349726189337737066073612643582614179870493710886189986904514155296648381471919951931782589258132304153310252200924219841263713439787973168674060369905182278490529852395368581483175467846511931577200053419700309105718939322910199745845023588126489734669806067981346174787870097804884823061552975076575747278110162673734486888000436894403634050470898181718499496000882620209663269747669606824088179037854549671264654930930536806312020121949595146718597801208627745218342749925386485006566974139731949125980752289488850695564837748572813863870548597810516046290665242833200733133673420564024342162416869680938890934589660225770806005717999121145586954794467098948411642372292042502477103597197289125376728756750448042653001830272874108202074275946532887567556796095732111345439675227493978984083672498146053110942142031084745078513785050011764141992935808572138838872788775399765395810953675726054059589133213894506307276994231231440055017566635847669786987161560894215946264391125707820484185413369131359841781930100191562390674127674898258045773987788435709316555493038620487796423685510343317753273321546050007093701741514222496610157347436142284198782618105251020142994440050523217040851593793556111617967273833762535257778092339930379248454672325093925832480662830958596999414629884518305800438007810663714798133626213671993324545564107158024808692440258414449240599664261608492343741549196845040035798198091677779599314003837975147670272755482194642061256185738091882876400250798526795670528811377772682484073994631260673985913341732843431180294288880957211149077651232291976905537144684277051604605356792514593983488779739193905347253942099274033017457157876501435465034248910695565092976732695467220499093305097126809860543599358666927314638018013256518788521298750400452537020354351934594319401770751543491869532970281876274669018450315983510815691923230012863308040395778150502665027678271363283042205202229833000802194663123523732226885527483225565416888694416948827626712229540869424173851642963556702677952974074993132499373134116814084470752725683973358064061718086042876870687427801112872482777362608728071154368125508742828477372165936777980278720913972137663532031798522065292210602151632591335214799483553932795384685964809778082713318517895819504802318359648279131089679571192800343164368911172604009831990414450766306660669128381449073182334798470807029056776037423724743548614248302344911446804400693325804592735197475186769974170197080494790767482086704105588478678653207165638441480234809445131462472742233485276747433891825674109025198958180963263752286214107267276246979467288291741615117606982990206226791861198392473776850331047083796314533826398002508503678010889356480860692480446813451898037603414048580808419926967698229039097100485211758765739973778986480513804550622965389628749849917766413927939598877222204841091114079344393870689308359385241919421298718049850082796994047846308909707395982081796682640653920885107300211365807527746822561624559536549406360800889893661670988626669700533510831880203191644067731625330898213902202788250608265610095037296944427834915573455322388662307490188377783596695591594078421844132611429551993906824692924520963463332914407451800788106664382692117191526651457499275325034108839505853260362401689488118159089879867103257692225137681724812663684732310394808284329227787463160063915108979278063029145712013186061058917178029890898215817714488629350179746877929275947392092650931204661899213317481546315860646581235240345269611625097927483796951349252031538972820000018135080055568413314450123889518083160202757388914518989727540564195142362677049491367534978366080866073570197370243181174807625945512765816829003627935996973730732656198262639606599704133771838529848676553790580448364145957478393861391111452944815221432895630601885316818201770094079115798069103585076449097791213095399740699976385047986538717612898054382360093490802765327555472977620452303869774851017029254433312004039278319542993992125336930423525523324659938260489704394482389808629000501377682729761981039131683118754157228273255140661257982967307261995982310331791855948970797135825621377525610725695915227652721549530112806468968171792482670132334426002867600235207506814298815999064860301009971016133669280533009318412947669579128092888438711486867729815134214516016844040411487491355750621243860694212019300083081520358966436685295705378015054283396030514548209616495092252224450871799925237571872105620297670424783903479650877943360802078780631212061762260305646447702650011346394950815401231325869974673743293842717996044535704653468574528355792329332777400555105511305892768015689825708496037268930459379442049810776494693360057183409582300392049554476542558526479014924279381265875720106279521335214155624738859720122320790947321127216224506857424796023812494896249826842311051274934020594770749476255113206829922210948539823786472889739209490369492343416470520490078078175745676670193823875367987171036161449957336597798996421581257605931829025308100552000095339077553026798746477187061943749967011624277039495815141629384214692742426261234516968726389060004823765854363170273410044212528693008948529412306649859040005610704522290478149226791633163217539759291837066339509514008231053827856210395288911042842978171856705523203740300242485856081333397366426917133825948412408994977756512626445408076799142373814932993321222891198037635416355964628815865948534706401870902841125543839099243369154334541772052749699833951885831912522066433567435038307639831270462384692585587461023541909744249060142322101495774632858293527150999071741191048302929362889234736333393802747599422946074915543407547363447908225124267657564314312495747555029965581494127262367778223636215851513134703637932425912562294154592721326400266381362622537398751252842036760788716131274843666326256103846109212298049963191560720460345842473666939188064167868184294151104617995368458798906755540092629478998542840265854110326565209245741715020816394598340901365287025118734554555231677390769905583533332629398322717606157462313350979612228598561994579476731243853426815771942805084528199655129754999451441882776486094339048991643270666892872486901825309753685678045168794369263883162608492900421228507387062897453147518301848301109556941710149747833054933642202135353165439432462829538767059331465590104755025309942340743334918562981290619027482492301271962415426202122740424958273056484241499049289484609009419969291175642589765755256987404781181642696496094013897072982280216021553419348514978237492048626210646052834284725821908675524000167226210843925523118927242474620541817910305915598316387479883249847062974095158478222814773522512284289650974401598796179070622732998122827545839158189334958842607297257650448478893294956249537042732169178559012540517990322469022772927834335212584610141891754442190534629838770050562985571053808194965735002016950387082746701638093813858395979842603986605360975704809432757753706066348251374876895300302308118346765544600325466485064056915460868552323564945363792650665640534999189056416509334757996059624589209339251149477793466916068461049602627598635669538783428269228603827110961367528404791046452817525845455657382172806159843387465361811433573501055387695162892040243923169247590104393460861181736945659458556075493495701491181680073451796328560275400678653562898716746548401449590627539749985635254375801403456743490847448161371772269498820408471129657471399673286602776415774875066353693436192062720359451787683347582317327029420154842537460980224826159220477981404780918909368373333889776372357641138656614224307115873390995764120272749525663287316040903061167664189500547484967669989476047200620982829212214574081854223371718605642921604788076590221880607333982803577329503145674444969726376586970816777180464252724652897920716855639861804437471213516750509964374117499151358339993068851789102342211062479733844323773096006544141205724565890531624098043856192143497700676892848970731238705085886863603805339344323730433112522317653161995973940158353795076384334405120198337361122904119039413843614833974984355830653414364618436041229768917858125307573186653742376014533524966340174862822027536959673814304633937607093430560563555867738792574036618834714570788871335544383055555199551174045614299182141638878940324103750822782695928811477774711786814784486170396403143492074877888266902579667464271476894212028480425330317304429962349787372945073248714656046241982331078913809265398283771475577989120240617216926401620718045510302827340202939776200477281696755674243721079310166951441947472974724549943847390239674647875868181495679444246545833358215153954559529359032436173803471065502634802295252602105250916351029116494957086489064327160820061277185061084197616576357242172258363182274370171617280283413240460437510826677344063639786118346731268573626990347953006814730339716781524440031929441912358893558306664328107537735908279193597260991519915139107361969620106753991069420556886310602791235579402916441373326969147734602212262195926567506673074020089519059258078533171988838044224259989691513046601463198952131733544098740603832694254181892730528096234938391155871252644489878828615128042890461894645461437751969418563961431064196953423272826303620687025261753292640434253091036926969356092582028323500851557279087249674121812853965926164328782286127456852266196137497956531316051099023404510956353362044886062908290726193181116330407763642072310879072884830086081184661881868729262674784664683444122469419221347817188408355636889451496078973370683513088859587453582582571587842280447123912759855695201722229615553048024647122216563073497034231848503279560460030992629102651066646348639667076657412976658911573539837700949875696944802538016397940902466758675699529617903946155169719268347982327358440113816860897023218475347125934654953382176059819169018721956197706076648606864980211684819236267305239034716845078481845375670700571556142392694512070730203888665082127007281870186174900008187354892990441446580754601750710860720335379867075391462081623646729327578298514477938930957166008066574208702742006359626185844505112863396439179882895572056347835975650890424644844858831956525891231426659153318594961522294972431433090923868932629870136409753812862465411003215564033297880661446319592033108103132313909988747025550673004674480519110549673987670509016412018561623967679814714708042761373039235541599118175762496293405889156185943173718511100512249892457579799750202212863474556779786867305076605292946914275884784794891964592076922277824753680408537941526443587281770254297021756092450952493306556520163344144785973477289601757374455923624864561336994277939298154561201059854950672213350981409370991157974254375353663031641068188331755025540460734333213720201014833538821469678161409922154718320027957151558843109282028589449224516265603053129773355016349093287885098739491149636306314539579432016612030541246308662587759752575130764095924895147691829908453742212033364627454452510237171151022561060468071036870697890295593624820985738079652025880528437756323715989628124492883389902562801027195777099843813819929215490131227638726691602833472813109978894223340834873768226954482541548452687973420467914264991887263172225431605563693724898473390245500669939847207044210254292390419763026448907957256895761295665829109707000164377950287723963016181037147516732591583780074799296917405094236061018050496414197978248086092992560521168877483176975083382908378260453490871655532774159335545509467296791544163233427034071772161459311274014390484436817468931993667806288612701705272945407237827165646588447998403856874294479232732317683153360231674147717656107816639844506962327872370263275416229933693258957304561849110323656900808532303532614513835568431104690348056295295336430001845022074095871691221672743956938802984847566560877081747731342743642378346979160402231976395959211772347712297612999864206834231587599316037171291389998496374620445590638082275205410388663410323459983057691216067107979689897846374785040408128015155857788907387485861190978631790965211783878427119666119838376124454542909038234136675459492996516106963770938839334498400030089540775214113688059697268164104600484953270554789972833772001683993797654673475382665571828129032603057597177434454472748544168620846294205723206242190098621486118659841986694771288471724513003554662416915400854901150492555266196195631027505754190417669678000691240351252980853854546558412601815914189043954443759944512540634099943562016376562116519642793052081542388293275472393738932551552318795615028958593448397944056244152977061035478707144721279661735007879357206401279150928563375542586297467754486147451984466073150517137730807969961442127883556096895254021228278037667300734804455958791941356108348455227844068785721611829175931318596742705093053016412426797730373070916085091407570470688468023605900078145932281987643234936346300774746771797117055036376649860993018255857432264221889345968014212057946462653610289585372654475261682368862437090815170595538400885658026495549335946744837818027661182267996001803756444585663422848015855906778954444297205258346983123432846884563387291933712342657767669931989616361646993907634277414421608784860436226092848043499663984331304732032436711066438968622060552895700851227122070147384942120246375082848298300093381446514208174367846259724709105704755422047726125257735822706616004170588889421404054443133714441454123035717258310841905436246234289556895276295307845044493718455199055229872166064277931389074467567075785125815310173903265754566026676277034209549890871172955575385141792413973286859449096205150497719782306196535936364240862415056068488358704260943248488914647719047438954419208425707381619274202206678655789693613425483397871443008129568488543309874743592898850726187270472374188689847595598498465095139362311305375157371181202881553104786647520244461766999176673602023093913767567773596586991029224571929703034493347304767620705319082007150488217480349107348351272304319922155807024712306275785484673448558475470089228385833712304613851854276691459467715429223611426036843926147968039664023657719247119100995053291488795337442360676073101709619896368515922521266016453081766626335686364610651028805465014169883939584079701516214425044750770983064065147274245330603494032246049920183669145211882928666860263426070582469008573732054041850626975350170782822220276407769376965757734624933590854736895695154294787173456947631425979799439332785014962547804818515691624192081083298926214074349281265862359540312479132723357379193787229560238640010497995950338568958176825557288637660723477741532071687825769797952702627248390114365713594463793137780168364854118155552410213561984266242947783228486503027173826016921234916806630198545697395384373338511824641067329184132261461417019446215201124069632613618634763375455289984993164740254333016851419829370781853578758245764562951741010492803699216284771285139524863908197228469213595523077077880322546561858238969490845778666331788377435810650150976900159518795237132746798706240060915103483682895732287007478437086554331150990827892248716395524092321564964158615745036332123708746596529121553966910564884159480333493826613202580834848429134854957849706902086983872470478124575058965900426799687755262955489028102380125095586602036884937260936451972758213973886238575985152329100228360218743613003597595593317317211047900999376581925932301561765687147584159406719246974057799634667668095376658751722331739301302028124789907004423200769345457861804562284454469347533321438029137015431853307401705837733309762779938442069360143824056563575737676796419508152639150797189254913097143400817216420220608021694492470276864221277798504492729301889041447955095233442257601252882307635462217044435777508811273142548621961800277490059317312337900692739298993248282146104635478433899328049534171632388239287181221800088148390851281627570687753571425187848010745671404860754268912786424801042008770361184363297444807060380646412561205113541403967984257280745805705240460350792903054230889196272928742833465224183155930604342044001711253019453691190530923883855266102282376151868737167057305186081488871694936767178240301951103299460086361297991934023343510583496168073842282688332225294325968522176074912299180143681823314822299120335485219073338783272495344710169019591015563701377854043347324653881132933831689508572536167483181697506980823737466391937184924972769529021397307184826405834850109472446321602201273550041996859636899006699745473187839202458419450217472772101321560900202480818238952918120104883511843407408781190014581886286225136289978831581037847564092473259876337377466063917249301686251870775150723365429457689954625150268788480090930797848754256715365343142240245745467174286809556169049926435523222075379067305460579678577172261060320143447322964124819848376919602546824771425808010035195007447610312092815913200499713509463650818539420297301612855839898143933310079585438753300497766652855634733620283423226603502034240479937054330804227148837156238032236796856698416552911374365409337326071422499778105943568761953794552503258128104000408856048092972224542065016922500649855706364311062907994507847214076125762532218526195692630713787978722106207607687595259117283949645033521604102034920084965737454023712252078868940502004311356218292326263949458950853337002187920811795806123227502771003557060975070138808539389195573113721270115429291198042190349642583565947985147627536379299353894221871942451753012428882869428266702413148281881867647983668951853802783455452576255847969954460870567673694299091850967933400240701980510659844596405839905967240631512773388232898116359402563750423387801413940262190327641311018284440578552094547135122851868526905295363312603678680664768339634799003013579843704112009888456839187516940627717708961109795990277822067268436027333560992879830393171575049441113299042250555989495311863761818196644153018050879447809485673192376103498845049076069238517674047213086231414840648223129911621265854375096039472444630921630410948170525988339888209814694991905415100515512763376793517679411642523281401687679967755087559201142655196854422928131080574236995793396672682658379154974019325561882261973360734971215414166757031357524022440849980857036109173847222271892720255543765643517873833476239255338079154479700980396396712521204145431193224133069149819155235282145237329037611079370457676916744671550387131599469567195833016121814986382790910154998411549155797171779882322940718666259202627330275339030801669466860197624310093395130372025309068846496412576563778476212316915572278095709407324281663582810615281157850215526243365431868495985257123856507481859491386198301450104071733690229879575118890309289426071696999550095021776721283396969556648752901798657452095573340940319605214501639590539972162738314009153243338613370054506709559127126078070059224989072219897731869015655116356923694480622044665106764613885374477692549081078828859042887639418489456167873616867461792776373976247555978000132256488717105942965590100214507580952621945235262114081660608256633527528130155640474544455942790305915083073742724028041553899698255322094192895079208594826586031749362997177985614190046500388228206316158945345232285184535930894519422121469372869271883970558581025265602211357680234580512727430106061454896434190075938226191745284447181833745263512773248484982116006720298826239141902906629902375470582902136140601816495130884061459137213404823296164076925005683928716344536771439215496406099801131767522432437233570355219788039723377607389181218684949950085453809195699176927069820250967450525638792380589121039353614823155118725275619459943756117094309233665549771999760704665202898738658515513663441221652781854522105439119608368668095921295058429533874585044984777764794797270558288189289963688645716281125235823450919264754409403217587836245736001985649861555474278284844873764123259884268799002867105056583164488142572673679037465775563682802257113887434937695156385302339123056253785068407985899822808057056008378589507718768335664176105443932608199575830810253141760118455796712994421555839828386565034699959427714864211088764422707230359556153903324649927621394485343269231701025666278866455628757594339061765496902185766576645571846584648347851175093713727385980939729503987243668407363376804943681777918169045740189247833334697666866637584327497108174380135623695592032744907100417455266223444739832043953009492476676554568063238897407139377344547690945837092536109342177523718324715878128357234747431539808403739905188635841513571147422559742632528946015439997323558306551135801224504004261931035446556151320507548062429805945095500246254628469115869799344528533600457023517312413511251150142450836018315876378613041425961608403458329845930260509423418898990348594044512088390910470686688789025799689299240608322899548067341085145754916125022925698022137768775575674118549867740392547962696105824580057453397668112396240629231394008143970035648250927858593819744817322025916308193199916677867739655363079088487352270768445837075592079952445793576934412465622824276161194680655305980676377535322807684257561491671619163390329762802611827108132250879034467058208325685978189907428527684496620415510532127650803168442913843062372558855155434179602678733318307215113784183163056880463778012358215479833212861905566844070877384656398097615507137086886524071647164394102640600590991933450680991656647666948209779220499151088330599388528672615282676236646738909161659352039492467512055106372409863142861354495162293637160461317381627684807553213493510677603419144663150747371256065727310323597565828000534648887580041857677671023073427212336547006639945349421953887812152220885100553003632456800985693056640305132592023472229386140600774586878401106101102701603705482498148276029836304284306582651361291099051437501945478331971944798859755765495099708399945650582623743218852552164334075127576525687998093600764923778341494120103213272063739458111649262512926632919734236974819421760617576364491378718188231780767289214938690235672308227556657897146205739552292374707999769517669840021671531744474488440820845450515600897458081531397203572810968061197471850206079081574712925434436533785836968860664845189550826081192691513235154698676832136364534376267925822148100911560126813009747062865764806368547739936047377975764407763430071179831273159539699175130867829283195276865038312309527037503466924008706310668684653157107788906546131042677174335067508339076934763826815201372523686616764451809465634896370106956760411956437391125663553732150984983653373551479091967696228306764915095753346199755908265275465900531803061659180083459208089660411246825957486207489443770627510144280284457341590784941805087088726735977710150725670232707532919130924782857709225919078703577929499059871758836310996815704239251157701344652939536128116301753199976699181863690773009247780620057905593748628387707099094006536748782862410632671322905404735723111680435735180200173688427266449855416732215038064217241532721491041184455504014256210012137869308377033680109405091085742860451445940053128962353172548203332891945709753899277258327596444813883608110616271764273855590360521865754085040257696803787097584290248496675150370244328011817928126959233605026129860254550424204247829917070034977662033146530359117838867533661424441761172674836433600404433929702440510773391566644737470981405113212959714064015520160354741845435242317879447636486477425608495758996316511491512287995426619877934094179237626008572956873690771118440670305940099443617465038751925548004398861336375988806873106426981392991187350657899034733552982678604846803810438058977264221190569055422906496647015141199714619264629010329996152870960905337659085004991902887547387582289973538613033897353775382971037108269033415265193121245199744855723557599194660928200540011036406300768099967995927729570952530374422871398090569507262182681860342594181093141356089483528760165097995561103081397631003608681393833939937650764700335617604951326895338248223581823941690636187808217440704401494254309087388389487085106103650460863354528260235226673086358122391951719786675887058684311801154293698113442662893454676289093508595174666621684323293993396549180173337464757799415046590765527351086506619813345876841089298698295465462349770905758668550226164876077608133889347838516567496649140441368231612818615695788644297648476713348133626992326092161929369061350696741534908473615168530978066100581105526168581993416207764152978456241454823910620940533281325640480457198874283866583173876075614539837790181042284002214502775579549273591231398896325045945212759077026209957308739946747435572887101103776399084693143998268387762377241838501135859064112977022030890195411314352372428365296431748853750746302338523591139753989456190556774341434753349934511556988696659502394127222567315154269516382246330073829646068554262578378289475610841445857082242616930358706899448824271631980094048096231179217341087436258696885171647437389759525841401253067444745857238587957748455899760777384786285267440961777832932236335889305705233393478341362510931302638716873942757300087052204678101109084027771765596345798434148943072767021442686533407470214939412456571744650829702752576575518693333053134619753192524433939265370473009472119258298305566180000662799924824664409195414484552247545078420480511691101623457012169235164111161319775799095191566358881576902012281730773998763536262747095119222023483568289157669135465377659092278534606891751118009132791219691781287728911570500056181156456801547653347843028991883655841405655555134097450342338560707644375448764679259123496387422215138238210246097122189256402278076281780690644012561805048311754851926714530785120547670749186581953419385412353801498488839566693211364738335587085841786827637633916824728449879025925396895034063784786751137159075904024896177421662776831808372871384020749081186579956644874365599719334832493945662204350010500525520377067874391257686116105816266454846664596950413901367581590316839485736345400094768598954799627476620649603806940218840836264923174096530423287683049448737700033168462781386050220662517272512309049923623185674044739803367016458482888087756731090731034501607778974447603172989816747224638258355824760797874348283365193561347231295315208785269759359351116977998478673830727367396738325913315970548654547197358859964676034857933243497882335457744843721043173566427294941158081572002511456243945443198566670016652024633849789643092133929428235732399271953210962153088509373500467273186472707987070862995595583384960790618289716677909972336178390939723999326736790891739407819496200653073233458079801055445574552494606093966397772921966874792653084053829490496725890127610949562753123333579015631753505673406065317755735165376040901162106368583084431393640959122910359087128533116016576598869975118675323204844036149258345361081275007640379546643492364569242433437691108347524943599844217563503577960290166565065189141212219096836116708384166187985019831930820452166316287679857701869721865416037923471243232296888465624972246763019441683366443502870222451814353990217554477328155256965570229623487151554257914629611235681608691867116178368177259945392359557127037835559413951302416802619059184110643268231091873154072640275684776735529120952297528164223758731713568964314977448329945548009998492426390652282745074295094908502580143324714656626561794224130416166205317406668215373237910746378242019076265658123273502574703568668718580152102551609372815955475578779927559202950174618451344803029062921890023109354073193999606968383474074426520031670773912138877314841147910802284936597850796835091838610766575454993505244641271308138235080874337316992324075596794351047208177098159871059317859971184303946435689469999992846734974945615493598382104672364131154807815873071504816871587263106090368172907291614417346525525530450467546778998192435486723142785597898484636934889621454334537249264990136516329807575264553900565227653993840740612238483456493145459612531276876339666883420104027973832382870859429796901793726195962030540075073236025664609510955566290231268944125939487512643616063012635461745443381184500855743789150565196721257602614491560512157649312771688878130732848398707821469553671838832555651783507341686944959367548380823453258687104907293831243945585412701932176470955147252026910325387566733078877326575123714058187753151843211841752428380652841426127771945881692888891910125041744379201143156176355777927658180531856956157413764762392534290242108641039551659395442199974647194347919228800473084413888406309344879277418632877630040229279824754739182932663655538980121807406545614717261075117185497380265960532399031780078014451539618128957290796220548166399324931627712577598884169545297974363849166843885378872084425903079974944131688516497641929033502165587359814197125581128780217286631727284699093126686605092417983800458992820008301531066394125222243165365233725891256476622663218481321231790710636440351755252454433248902247614187973796317850974747882448951630278173141080248978206129236915745807289013293508760197125859445150830104375397302567304185296153320995061787070748560170721209239263446322886321232440935128207724241336804431474907417525350259560073985819800644508811274703833266978558350551433379020640966140373621022786736641835762744281691377407885151553753171422541713833149182700927970678314553554089870274050018243582821743451560728225694670946853770032063203732852709962928354719993450809219121218835678146130774775086298392775319845822864156071736656652785816486342045081920759423325605436064645389623561531576276874801038309190705739152284719757600013006312779643143014582595913151673270716776322476411792705333840784854004015769469377203477579537968741827595449085922719367898899412068299225485300016993134124168772490055845536310122459657805507554489178055216220014764316328734374773796647351318823387966942353981677783041250642213944004446435093759773499907967091313714999060194326781687623607444060695813203268454896874438246694459354490239309841639300166444296992704949132145521624253513917861504252286686679494114663295058838803484429801251532956308407881958792441389793645620533107792029638820531488240524925854304256750359199826659780745402887355762065741666013895588519523465190237359158083035920307533821670815935367407717457526656067405866347483714711031185062780264603062437148017400877899529013620749386321880777157707445427278991226017066259708766336317517997657877664003897310267284595720410938890105422536931889090870979377678830182544093743477529647479494668818162277761702770901633208293666706056413325766788085740485059104200778281294294535210450278855383092075155280693608921344642269229884808436901862670248494410671315580473623979501107865999342782859582272250019727998715320896179362687549490372812331326582073381185512827458642333773960084735644816362310130740849119032385875000789106037269509943341274192245957678240682566197960009480907519851530504686390054599960577977426398564959459765166796948914436364113595696005850247100280973099153951401421524730046915452645946634767979519930943253311375615079101715779866365045800679955184534673755849363938856647188571147967412882130144334529294022196982087622430537267246470480157451147074081082453270076301625240978244123384138413911903176525831408552955904906207693126809796778007075961888214713131901326167315093993628545342842416211035948883277775702365946249498787008457311028799658389603840507462336086537994966777066871303557397593585089944195552047059893816440878438201810752333466846973468428897502821349521728709592462838636217685881606010304613426230871015005428372050703141273481839650674418586170474808903156273150568811872037034671815215109890387952888434626941140058198349884725260590001392701813018494608060604503610854038758026980590815019524141300167786383902678154417540769363089174027314227870498559416047510695358026988325937586932260649116102241064472558582032089006847680366529832388152290763788379930686305128711842535238197606049283069841152011293530075258619796760665041631138431169198993789488426733810908089424280548706256697070403035544079339446799497246893984145878022040615389314029300665388409999983343201585473253349283255200169662669386744338601713202821557092387923399118419953063457226227558105186271850602615246570554765026206837263764221566240773436136648870040376042096209317388053013449815415154687274776100892536362656393762672202806204242131530498543022420366675654894123469138429463978009589281194694555630737606317649121862179105690560902361200063462910810795854559339974721739260043709780045273029519205367848798316921350838263100159014018844082254609823752120734806790312489786831586379143185246428338739127566273837889762182437590611389943895295271443375513009628011480623969157103880474701939360931910259285834699434780235513215219289879420100288207998334498183188126566373392534790562484433575390683614832051239562498205801873795874515134114287289176246852803561009830924952710707517698337917948607157612992424374994984626116439926893580453226299539895303507884932054057846822237319437054656773487270922820980110604601427396981840745630633342065220738003547684779482193019834532747398943205727665948432629510714311190206338914734452954964803603189681134097996287481781542384327776935764846164220790503012410142546801461897132504323995462342758932517055831019543543143327279750762085884833207014376966781857293415058301999695320135302212795919906043151953172257471631515411216886432174345336775696823888845048073474592580836052174123483040047564648228902002101679455298586125275661067090691127427592786822449587550233273862838723200260760371461694878382853103478725853295111397647035487094719580250780275237807064037696588381254641147065841156108043003277190949996942780603821470267444116594655268154820323871230752484664477932164832050513997754697997010856388901942534254447305730812035946101443848654102877079772307321833346689493538890543049131336062447445843169821995769232956515024237013692019293335361181310410594494969117476044358929325799640539905342383192852787775436517262321224647364258176567696751354874526901097395629098839827019523564413835290922782071101161500505991921228521863978641113928361577512504935672807298625200217622569871321257891801898326421228601176190990128866336383919295680712166505617520962761087990094307497282585720429651528037262487282266959428753476361293138087765999822097557846754127193026907050469808451688583246307373778897496762131632618361909956141500421211401530992798873694329494759989988153589957485864562941060195678270041330087896195698009770017833147298519618242527082423371758970874987904425058918895531316320775783073097070157865530022559193610253730087623864991835105643309759548183567194744101887892884947654489729947128982899950216274677019064734087327116624205407340776698787001340431812403214906370322063457251757358604886046057388944330626154516562432598437590133327207713903860355631037757514241351778943471775045265260120132117288413179137407991640763011132861427622419007105565786151670699373823953544947748007490157857275366008114204141606287216710006702292722661616925120474145558000886778046122211699346734563981000740077859325926345749699534540489061883952186394199893006579127158965606276336445306006884555449921890709339069589985169865340434058885096583416362381280592408538219937228012110279390638535167176324483660701648315908743584794027225417916806930260523942421909549835529771786533351295788246611525923611793367285156317247281775737175278411500998659047115833330142433997688142302262317209451686918273343038919448604206274580401763151138569654425267366901510053534729612650512806386624453668273366132939416350569087347694901825486649926070041937316947158794498038310570023824749160742306790855787992786259784408545163411255092835255272629676024349695727680647258614501644079022670559034610507659997146306838238589955693194873083645539815054211885559211132926758262992013013766378997965259084411947107691926142855678054613668151670985669353119511495024411390187331449320227014147526025652081781703923179784391698583438520807217492583414426269509667708411734471039105537792976305035760707681458814618714676907864769791713481780667872646874751595190244272109644264642398750192356470797265680712504657837380526147380693156484893834413718281053089760222869452795345751782899782107544296405437152605140199550574040380348413355785039867939714219941457499784148064541433529000481946089473283385134915255404387253659776350222547131198033411143173577740636640803088154161928187226974553124282951904395693232173328409096271175881813154223104786540359878560084518450902068900974387190769407491761277210245733322396255348626001331661526491580137008467620017145764207460377475384426364782848349537754429140246123632313910817446572076530345283745764354710753376224774944977425455744553542431093484419827779612367815624916630831588781430567222775418490783544133280223090270087154078422680562642985169100051990408882450432238484983158819665883609835288204949355097335088473373324474808630221590588736088705041685117463545279531362343104149563613306954932432967466177819360833724284031254979649031775013014575853578925130263818809332755069959232604761346290617693025546601522773908795540709977604695274087103169082608608201407954510496841338319804639687824560140941949541656546481833215428917157979268937582502853171051511459342879829301194572734040191869944040386973923483627370732839633732028833714553709079729973370060167804498631064213626976780405837063334006183563087723689422056061416666875914040506909979811532624606796726681122655175758423076434248411254504547385865078666071147492754297503195298560140458905532306185557808777861606775940449184053371259738873237861743025023815228957859605515202793823797951657999946565540634784836805143572875343480450578895827610278214184457348937060432349349377606215535290010235548610311887057580459441655934352854693029393753786143056733862888706598097936102860776837171198514310075029243978212137761218259052854913001575061504192949260700982007754443954962184668203288116992900860972333635868445509408542526369066706469853994310159182138572993683976475625173007081782879173376069656005619511246833600683445113261628437787686231191428545758277279223432741095103115939933151863671281055447576472679183998026725036543332265964307529190372097171365705330069824471517126629747995551115560456200415288133492008317571068408902889827028287738439466582586399793215454501553820065349035909434005831878014404220390503749026381687121958092634269016681663506440410572334183761221542748356804140319630700321728153629256718158687378173197768690661570188357634970490487685226747067089709505008786793023837412267177920196172849486381760227867141830730308934921961873177926139967774529593414361857551968305579358446499124043206457690200713616054460767087355610826939908571607564390571880668505449181549860508466375108139702454785072365766699756049777151339580508229864814585675916275089321942560697408802054855993887860319547626432484057987407528064918410632905225938370325073676782360221635858492933049055830344623879455295860794278668551907816865109296930059817850469481777504587551740960420238398293955669729105826555467179223404415039675081959717083286141229511358869438629102987364007018204413026885075035569892732428835158267171455249672015610830641267255242179925179403842859839421830816733669946199631918267740124417457136869474737210332122047127841886807790034624055952462100417447847197182663368543718074243891384386817448902136268099750882576415775263842927256129063641411431002992699315949375564041816980778907672533384400969827093732774178374572175415126345963136539890491024459586315068572273014040221579530028175700412792592637301132018647162541637320234774119829945648828912703159387246121668275482120460854726653736185553199173475471297119932012559460156978614679845383585617013260969928456384332284469025357304785221703196432509724231448679705143963659039539293491798380481491082770551857329530051434296887339289461710451913234599822054095230503818594835365701704204838139044570199412570588962290347555183537203282108507862930672030486609253941284084767139161740095039800590368268236204079542501320364633231646493188509028996550571011095957197150038543262607482657245637379448322459940336904831218784958819776037112223503772634572576413651585102647695463588387507713950627082300775250016171174625925850868668584517657061671862486605697419695140708279613580359460607031038504072903437902010139320425629578063078618832465286896026549918248990935755188352349244378572017210728987739903590790836335353800408746488783974980945897766224271261809475222426777199899272200769483535396497002151943705980301486203367572502057018696193973412026682857187479360809171226041488853026411780756538038103123235551616585692133886695756310284026408649153430800764365405624620444960191115153142489654392458529745637989423741885348401409545202793906159281463719964391725289637635109386337832074548000685210950416676369384666511885553419594522969353846418813227782008691951135855063846246771865286755630166332307776114495832784671930728293005640998234502366731788637984918369219873452889877963573709100516091933126711983481054594112020829819959253372145256146637621120021960858375311812046094613535131496107596566652073837057563030431154687990282735939320776073728489824305827419765706796685285619355875517452866595976345977309899467287559187736121581715964557665646751027364978008076166810704302990453884850269850921403429098932183199724041036070260577551648207623892013709666003313950679307484247267630901729730593058463380696216555536135519715748480311826612989323600937165733510807125466964540377419604118486249099254167276744780479705376972550948487776694625784454958892070775037346987065153399989454738776755092197928465219416115334624542891691392411159411027426186246272718530509320654543521416799400471633628023243814329980276205770958798050309379614412449394287512134580326514503835469727107141347486016990326465888277340006485850405999039705996801146142384613982231058269193721157882080591213415551570357247573156464686574207044342705514912107275534157911791309663751309117352067902761789326188739264302461448975551576346073058622532527909654027544389944294158801525602973289884892208943333992178558743973200220620550126459754824546232538996585306945897836607464776244887227436038765033251551203506865599230765031415493270750828245328569711380452722874700085433451596523895059894176939412649989603436740808620066209746444354896856372375008926688897644128891939517675507182399224048827723743247817684670119470231642759893288137250310490845119038955941116898216236211984985990934099898797716341233005457675162023320335192302957624892942201945192964821418477786105785122222170255318237818792844946141656546826944112301039021263643977124953384287912650378301614505829698633052297208852215833573121675336706241163721355976248114843450606210100415062838984959009772453132557878990147678322017232793042502704424731568722035752971706362978432401415769274627758993127097823523044515537268738524491748272594471551946458315073701775825681600859610820737492648076016055122289627824504394131984066353251650796657209473523165224794469602324110594536836192277477866093675962448904149641647161638180304180191229988652520420242326878273436078966399944407497193644049773534000525844941817447962360194056446646620051092655433302013007393157802139885404291605646145745878524629559204179363817644550909145520921624391004854205615837201398275034754469119827664109644413748787309886449843727884279678521773070676724697803631114325551980043441270866727421065199941193821290519115074344689926223559551191783930590940154536003229939392703376373748704040394700877998851464414043419545097388374800241402632089388617324982129907738683041082343825350923291521584775447453799630048449820618685090738216070558840381222713265822433476065771396984603260368850283992659685226696573746298528842811831840479347411970700218185720936429275357705414586172455938771002559317908869487409211140061079835142013705066920722146137145816215688400126098283867018806698441578342414077796287884546917956228947419874443499404801538342391694055418966735519063727298283295933151196766541261304632580814661919272694979563737043540009935201521303085731421748885865642366580868786693704196250538545091416814566160269624408258455150015979421410038854584281791074842468347927635379679217070475357410975445584958757073479317023081238085308073444515350465646848719622059396180073850166461698329058381395652115745621962256382625809903834199782473049202815647263535216913826011691418148943428877023187500212432613342528217012373315728087986855958236837741836593830833036772410019183404041608573496315001226727960649610950623122781576928577675552415616039975175814926294014989867078664731359474608516890833140803228044146496056692322307063025125812418945578085012772404211932594575370176542684554999095206135359011969360068862364535208608719925036828842453897698219741733983185898921057788654366772545188853786940802755210102622835079909731160945088687691555407408218700939855940558376726397896646728464581729738492272381474918761748760932531930173029512190486464657724944708113744479300544286519497091696256644592185445491853782411868554027338013033865608598380557166120204158080334478023873550614079593501902274147647838300768611148041980017053420637910691539166158336525192975226245574110652877758655900827863719710375661191645521122427099069035466745988586521750468934915833798018305909201010902511963815928978083528623680792208441107645620895859580971050227065354451164151227305068662942858692536616078522196335011044300280849551441262836823414004602247764856887376152400758420746310875223657369035429137296288852332494452017516311615425826935774283460318503964636983518890274241691607529152899842945335505723182712237582908930366500781240439354770425747740528764917059324501754179226898766334795760820793255377772790235794562565354440239523043178726166826419566174039273539779555548002986243450229175405156939277777930770437310300181103194523712332405921951474594477231053126829572744359674778879782308011095454253362788940532985647559463805967635170633741667831893408547586793619866657076738762363889013745343756715023149597346958810989655603108119620749522434382105916155618197659063068833347734073313962336331059318503155947379343689843675976399359681845758960091242757839383076447317855262510530434957903224981480442265699739058088134648829289485341723437761217929625063270391678490991767085547762674505125405074134224177395875109384238358583577629069514606411502245196645829946883307819927559572068736869798794135824363189190408163303456370885513469430709684722921933589249596669386374362964073162082888460101416979910718144218487138641921358032175243232661987606649495702627048884749718310990584588742384401507804804724723704383279269295484712214244781630529670144459659061472793569684832541402025206971793369956658134411941024360206831138121530866816246536899182609585879307532827654867224705852558512422699559008555679666781382183812516878319200338556498153576956119758132444147533928867081825468326192605721524303282726481757768837395787694226728344550997394412550824501646151147876176001852724309207392935442091324921658304475002690189354429125249726427784039152224429561776350221748898488898849459602233374116891235134475959856776672791254295202257669161076905678932365775185541445472523785262382581875396855872892118149968485607579504361771362818448543254575019783363763817901591593069306725511313932063131548930968742980724477625136786173722048521135482599198834843532681557388662136954164093786965438404398685890004142909396002810330410188809650521239916389287310835981930155647072283721961391107992503555766407270614304580369086476080227091296964392981971225208216965750777477168592495711414571028149476430807585106119496695618677023176854932189797171853007120668074915380150089892407176339277573219421058506686919271229896451929646645088452200841804842122585925127245964542281422821450938675947516872178075394986598350156559895820200753107054314812819307175828172863407406709748218986933709881991050404545957605335307806448837734771641351737181383693411581749179235030388347663834599873090325366234053107676997085522142411221237136301430519073918101167988260042707638648559880600076076810517288633372971007009945689283466611323774454887038598381304687010162854917977386013699068649071837084927679652964740464993887708773804551531289072569223680395567905248592112513786257672736181005640623745287743766033646828091060008374863554994953896675532742579140827285785078596508290944367589135758817996439992487236565313854182041733753754704765679020692502204472087277160776525749787551930036861438633399452410969924258088387499134735058977376637261883088952405109794457207070651502683551573503365531617286177633487002846774484548884796932044827985870841472136084859808047574579471159071035505990561830277857432291042778914122343249148143069541956146514266858212562350884968816453855044742188711201423828654859722882528807211271216932533798531909116146555753726869678553174375495976464086956391309172308298199048946311097203053048542158930831736474615618999698721828065995153848715100673288065356439350663031517071497113744850409803026698249341709001448986618770893817504005725927384288992393177414544559840383661287148075883347652925808538567882570489092215030709123243906892055237442662860604430728555160395192875511156616620180389072938882159269544312346597488178554194306950643356787611435998636394698658873601386387754133726998568225735670099106459827218563971040542527147742997502462397922930516168584494090085263809998241403836146399448431348631031788948399005962669895964226616236801656851257634806383691824577941631022987680803129052143183305528228653127984167385958985268708438640516249786624360670865454360543515829078938417890931961951222327597206677219324054964494136420025190227492481703724747873375930140053617813169576176849616192926520503755525899896589734218272407959976964953485255952589949030874126575694140124332547460576841415830510231613174654601966213937428853119813605502936272950424658579934412535472879961532581297743203590781122696296547869828766132075493967469481267985299498108739059364709311842094770952367847041676726737584305233827636253290735540960334868225076716213452890074134092180223724428609142094350165761290901750514545386049345110322361533648217407437455363605728513009733790778833581466486481557493461439865773406560694344492480751261107872095488111475525049889891181841990897534964261473618939989565024827249701361970668037843858185205524790724125718733025368777089756119344295442358591857824243558562043661418241196089734977891259556691038767752668621684201752895910933855778476376465120955594824499632397755220979434387819228313981238572302176435088844219240764394558140286056872848155960935077210924799857725948532847324863541743747350345093121672893217244961030107241425616748545215337993289611112301967128323483856998833297861539047125403189288493049100902050420192847596580555623101876843773509842242525303948047308702829604110808745871368555955427519600899499765063675790196390213035230203967229895130509007126256916327752656266481004994376618452006866401646355531383832596707109001880375952652774597630046514874704681887705438194956856177189523102975463670625590456341338905936988797041074017766236953972047465392524121789344353901888530349043941721953303185003433011807846806120411383311080929099588183717509068893254960158767602827285849831620230637430214503100412060572621978947757592299364824101794793453570170324643123826870519028742404970654474331328356089155844965041582185006521243243663583443059670813979631149597642767254000527931618849447057615719751834035030489977308675503216480822174477649272935537911263391752919024169469119455641157708484372512049179464424698371292373792713697650633690875640569223141024227424236202429118549263412508032306189685235244932692496031898198270424183364415885601566835589120105067572908188749506866979563193791770225320409996570620970036794411556017414715797782457220040821134132706623208862909241459665211338128349412050882730265461399338550891056337475148214454763770571968064285605174200892179030225009992031836897706755859542207716229352300364935287694539929034821152676723034076103095864203676104245900059302035642725198751164840312144772615514608399250735822369099367204611168581030107102063411720311278539727491487624450883308844482649063618213344571738236964649978162825080395023136071523655891867258396756144583609369130437470396757773494966412918088042333577720340551033212163560961984263520341329480770490241037036340869066452369391401857267003266195935842769732508746214712525249479374836158419890014871797894331884784916637980101116631337160701327887930386950658296431965540966331982168471317728853731994296040725859343558844698403340134809218907299998366404253426839947343592454038135155657499130068410551670687704737218171459586002797554090884892193363175755653468126882940973985967902395881633951611217929246736198654373078110671500301570720145887815456236979210993216601495397772047199044622883987435833460485551028937453436519711249575685506484021872235089994334397495612841947282286601298950731598821004964679529179971162230567058964222800582206024728710218124888059961705610096893170488747784120184312138785729160804500035369923133477429240930722410585255615719319877032559974830329903923318227078561293887824779077180179234467433213914520412609798483455013808233604368571117151517475241015007806419490404432085438317276906877891304078579284695990652906969454428621243282327535980070869105641501068150724760124580181747027005018320534002128308351062167860555508343124510178077295352953705581849350145905787401646316170612271220740957572292125180141015625764048139443537571404726612671797643068105427930091332729433676740562582608469979548968012400649818343214016806849187393665903247532616416063152198100477676641813423008927226369115781073364165928649618452015854892636495865946094578664863051286007587635401482787349268384601395784071220332232336231309192793094100955959456360878492703130011761597026370981444705612050457991444058151797838128072131026658258097132543843788201028613619113155831415621186231522536898610928452575859413701831899594707898686936651691905044707462034356028897802547267200069908422338453806293011364397775823957167631081730934162316062747994415341242674413879750547333095288956888252158175671035129725118192283094065609369363979863476291923198551742878513527388638332628725770313328808981203811549103347737937475661635386697867335150672374333644527985316215019327584627133606986321036494376279464815004105811627711480347184504807622850816678056524251769188986562271250168617411001993222370097651357183330240693053062001759918444021498023078924575387108719241191745660786733667624786281934138359250025947400699756406028557941139274947249129945247607287437328929173149723236587527976135843483878704316388805263729276978648754965034580523650144327184051667193826851667789731339028385269912226985434555962865984865715128800463297396703103261532595802262389800030798146607151946762880289606433198884214024483649531070950524982005746666396623619742735833919310361206389736859331289334513552093487776571875437483199786715247357443703551098353110935222325656483337679281706650500701131854377071674690516167684623024593289655781695227791913621467330294078293982711042234475082523111325289848990493693236126718319835157595910740406577365150743251048851532898201041959674701087155657238769365157367865095042430794253235350205300708661241759943960105565984988809059971657699177379857151808501510902243619756044277463520662888294191744190855447002598337138934289023600771815263945645177709626924571077411021137679972663616637088825619957132587306746732831672205423860128523093087168865907507165531591482208977605400809513161168073618597342129467359959652318144118681299103211709304988006628589137499703239090462241576725953075724422696490801969571214268656758772282538815628374401020039101040514795852797426958363270665339135693138171531381294852084146230590796718538048044662534025517532435532600096832260122349065591002650003410116505769299746423514456819491277359862856996098225806663689956898097202269020297240144581467652595846577153749848573396478552849603991757567245361684332163892686696338269626418821692668311507101135011018778538183677639057571815750771007242056492189471956746250123295629086331215428987569335689742211893538381868799157810509387048365011237669827247913305522092918962928091400210655100952615963839181332635147440475469637486126139985818644573344314208020482740089855474829936523968115713241224265236912013483147736480801816450280512679240144838860432033565303402223679873724492251721373175028932022713684870791792760476732418983116856204222972705772965500046095879375471858489259736409002056553918896496724225509296848997426226073956730880849332394590026174441780556754245868772933126003252305466559843450269656018921364473682250420779471352397142776600763659409420311008607644617080191611979338259760818387233054107827087847242487463178888132172664044853548866483097019190634343042030536751731339783098408353803006913843004887839781935455461051217931496352959817425781530810096300772086697614900825573098069146314787550482546634569356829572417222534538454782907466580775305497998438061271755242681605506840810227226262289246834954209645678730948324385460932092752610590274120254085637313769345318808310971222749760199246134768685401912671706377043900523040931174590944543134728431437261607523144060625650515177998702837799697187796962337636077506038207926141572965060055185804889801035049823978964624797787564282861410732408129125242013267095399473172607515988847258364209860982912672570106663101146417705956898142185253496785796466424453473501233398742431461436869288036655656935996799402747921175270491858839068730821957454514993089545056424601694897572191182843140552316334413905219072120741241856439838054529907945535318081098964331377640189900547350038769156838169475953567318183350991720043771837844666208950850340084718238325526225242141839830046611454153654936900809564758771392730118117001390883548491749651244401628664219332933967223543420372184221455555581983776558191274421844087118561386703348148732108598130381384932982262731327776757322611709484216425166551543270004230759945527644196029894540625625720983781259380861039230769975468577881753605836411498688207625904478757938332697985280194183945223022343076536011204514248360935415740126327199245175948980116859757549787206829755770471525344922145076959876859616678030897721164722754243553306237199610824547094874313686127275513984891846787033783952260408784490391247014179713965851775534087008544163167591672424724506429663053558861712765951090719182392061654693058354667781527914482200816644489728415682744419930728761271098740209926056353874018466735947619996015295473280619263746548557162172100977053527111212784064824518756661793672982157797339468970643557517519779463201770396591590294217907483244735000563711070276086661693677972781229592129859955864215483903287244271977864598611445401039601432791667903427136953633363159690773105097087500426388629939839860750128615114623684968874988696978167965577620176049022494794658415534270892271135799639680731582356760128969211032820851064556125604318171549080273219516878892076539833676436789038141276529562099551413648702816591971972297167637170475744796408636525984936784182815592751242837299835147448015996495258663515375931923339364658727164744698598380372883042186075719670116712854007999076884850895939107390472147163017058429191751510825051810079076562446935891286045652974630057309258747666192826599221966379371767511280864039946539634595345432191980785100226740523415715707792695597751145282166704669738133386497591732670350928527768528431198801801505467188290934073871671955949889894710564818133189536208380430722212987072003639264062503495988314006263811094834897340223418275658788355922959759074039985686451420115097740938653143680513452733126156417162231370847968070488474902634639652422267336562532986496582767764705426265016726063618512492012488109411937548728138573255312435707773275149400673950767119746014575394806789996261563115252923421121288018729580337542611466363125688811755199378971649936356217547137078602377779139260840592039496995915835998567734170089700209955566769397939945276050672152110920330066766986063848267269234722045989287445865026890473875455415587373652576611574769480435714764741457992066046973871833306182507216262112728988115159914007803505657814049131731650464328405927083003076335791058616717360284370883586329209276037441268330344152600804123534283758598843348045432435407021223231076223651056968793105633567701564184337856544367282203115605528360088420884562482217447141266550009974497371563855685076407786550240295400543575255986872883774614250713657885674751227310318862698355009416525891643325088984900341939757526330123576314857904209646265880237222406323656043867496979658747687665382427773610237854184722956745645782374052344546117257560425136574354474404247239137498792612726725836184714428804197733182664408787077099606269544492486326799957238229849220290008575838626247016638526615461442197890371827682924335380303854088296713970787958327723943770065258014683301508536547199691489364508852198416082858589563512554079996424018891319103224497561899984192353671892349346807545685593538605012697632794557331122484578370139409000997365377800649184658550985101323860413477117266189862284720652509602499225982302689212770901691866069995636797968837228140848445321092968055072603437217156079808823137329111163914683080966588276000473193842320484567710102198593125932680996381503639481976165256318901990682346069503938476719295921619407472274667249881116662175750333229956378123301588277817847867911934766933194846725003289498426684188887721354309962093055995485170733545530217194886572794013081895604942103449648685632017182053115293221370796296224152634287862812386510880189784254756966006068091504642376680443548963400450089111967373124909861677791931313609184793555567117039873781085915583157426020904757275308406648263856891283061060412837198247384211122220243124408520963965033078517088870797538160079631955729115743863845821185654653177776001606561959448435723831907898722229231168976713396260460322593420440581228117639933050923498850498336625321744265017753852573534689421721906533843057357523143926178912350811222083249552290376187374819599628122511009169641059645310441343250577445213594084570252968809835031550631386612600186555408307957947290151456863909386768124020414346755356895016218595037733545539119986903106105314159831998570290739631676782019587207689746518303682358112354194664895862634867928084110775801664641557827017058036432104843171538668886406837225986116945846212020179979479580354546021910190215459906289344019595410436658912119945956681500027583146117948020052793939779462080167530759976714301689040915857695973600654828057478168938858885082123244086122512045192080390793838183232516264988939487541905870037527304470299750069673514859331951984313531726024678120452402269037195392836895534008258487497796583504608839960275671591548983032513319709926694970354041609993681830233101964504603891348894315357924602968441298612686765734691809085272094745433538373430845933689796965221050935191463327102599415193181526588594746716895832531430421384709967419939959920308294957209424036036242970516722095675023315595029205995685352378862049811702943143570549800462861117822836111468601283471910817689056556696543718588928653675975579337855581641308719367450454745992691814742229043291210387717215076870938821250214626985484224785106462379376212864171443919519662052364560419365811868178854182353201313170483851494285270540525429851267213142723901064383264873785252588132499606557244415737186857323557445975608514920428456506281262557444513902089899938299354360787788777550020816680291999697447083863117325865202534333703098486745015187139190780867671745969719396680158740635539506272277659373581192262528690763893154620342184524410467349500737939617893389562960224364625043205333064733075444164864552592238042539351058470401761942931559329543578897648069561287018332650639863929067767049881368604757477950257022565005214450471165026640153125832158790893126048556429422867647187256220415467865110056979537454082523984584703489619780498757836631092012923930592530763407846818090026474130165155627137043329428087670391963689830306522238677966105475216876776241974439264614379549376708672731917108379636091942288033466023675857462565579978010283509902037272936396875471484642777009721114751869303073177011278524851159937432513071703851805399038293541579288468529110010603218741925115547561992672582219545454497825921302049934195220075553363782055944247701314444245953143593263528263237799577992401744244076833620191177453423221705845959195368307881939611220117298925397683249396387860762640615706904795534118716292559931370608738579714350876055001107696641927064495072876590864727802545605310683542244733123665386505644486429270530206535872325106512861854183490111812899397091819405909585745102386104940294283055975718262113027902079525375431827191573097216563834098227069642568966523374666548524393161460969465622394758201806781207599780186789769602450334538579819713331146961378472375445728377959279495355572199682841509710277001720076180636464479550481944916787491120830100955480168285782013616924089456395188849650835910794801195889366266399174175174202010701473713854120589891985782262837371100579063485568964356717891340787411623737109977173271909997885053193198145120186217259156965036896404519567280388512541440239455348669332897773078931680000619842455964658814143274775115500001354499208844227953215141113112668358656813114672740396692138531812844969634173637736173604885796570882921475768921865023817038688848130327677850731716008328093559331477528565852658804946386724571804734080483528747472824311999808604767574665538512297524446377898693657323426849088381898539880472564805780498759901296556808325485448420560632821524679359532788793336286530391010541767063987943886417188130179994472437039238325394211095636570859115650669353421474958339681503364599764932319821633714398133729899756428802008031937524816684146075689325010284531449850835664613965436564028054838474870256867773387902733975263402330263803524990190604994684011581266549113774377690318387550985235583680233466131136169373899098639929650505664801887251029617165851652058973214301602293371657911233208497412207695669422484873832624902526966476154998856965711197168486281162353440554152008893337894662140069664598303152210380863486128557420129976567202534000173860931833780416905016066413837035724570641420234082422394148392518441382601221908455123327103807101221618937108421702026657950387150345668049244694525186341760612820311626670007832466392084741994954681882598301482285121740640200455987585306114932967746554689288080588734531550179238926143556323124342219472332109316313528660740866586208063553452494910423288945383043544916863120408485691637603625204751674481967027723773229434770339086416712049012881715517465563864925718166515873633764010399617820118024223420484460749173427157702342926204756783576168578367806665363329110792773966692726097176580531066380853234293378513895930116826679665279756519996763843215256972545086231369528145515791867199592116661417297192862425432822511899814077750317414187011554934065744674584154058666779736040133903389319657065779762547605249510266771619593872114692438695364217335984370595171025171337287835751837751134080779253302548003294247943853556838940465571862208541366513652978217421245215138556890174737148725703044484671900489638864127556179648345079282937612558769818941104406101677865926450867364806212031753244834523550008784302013507691885194597422100784658378721878457335986703435781454215898241039814661939598461467633996192450774093057093451141901654191870631280389927855977875460960498938711876731480203781278858052800091833656737228769409305237787736593918946291921146963954190456473460788014014616794324140977634625202472079269014502813155160241352819612756022372755375578994942480660210921980835239902579579246801884467994441597505110692311839339469594920491166435388529621618282377812932125807518268092172372303328506196107917256634545041476834662138067449904045793655215918002181796893559941707864720977496270188696007824400242116493500266596707493883281010483510210034004764597564535357981407810303646638211802166288611135960200526422986579200144529956675763779668971598427764877779513219222312925913092438795589683790964214439740091478215654977060114603403304900651235543061161856503633773162174038074852198631080676957279085367403812368515784738320751371247700743244986644038476098595314893314847860172918363972291906474923785607953187178444114165745203627664619983834033103707007083289355528501650323726460919802181068332271573891269556962200866849266087392700496136768834050714812862750479997256906520701922823827500672613171846191363953525809861695531772027656435836795942574816484382237211819032878796253545263326767806846702428238541482987164478775797952721896367388894766085550710325738728744584258390977256357321218210434725723591050613996122524939714587980803432257004504660590032084992931943256032552919243419986441702682558979107905314907651489976206595955328078507098659624934629921053578063789525369300415527611376279078215267296040697692707203674508989602994213071877715467606605101816403840720939471778661289909411164004104311420807538682776704878086050062961512572124302483757208212277923145218933248922523086968372946693005630940131011984159165533962685568743897011385772102157331387802247165890650929797357433842710653940760502573672367003792775307132563592457735490563098519073552694438541255392462728763276807768193815196445324085375408473714503686616423510325141807779553516863174713903932277123096957413375102866458342292987564106196863542688066766764167009385561970458391245867795326796267336897390145783728058074405631578778202717586414147965025598964788845594369456644420461943708865641459648394637498440650321586540302323303054763913261803666594295367059598279163764350028759549895314240040167518044159404035070273645036594943130069144145126557425689093362966799346814786939623226354081915105844044075245877048747528487692333629050314854352812432884515814017533259285223261643119118734603044671094166920243276249102089707740626221798512084378346362429594818112320206492862300202863134963228871053689529397230506723525862226032545876583569006827913281059955734622429732877674980905108535815445151332211352228354809075161146537575312832187270551488795263270496497899520304260708552677639394019428751740584035472552763927080252117988615386057943187440307021354480983663440691221088913081374790106476061025783867898125939543385645256217391724231185520022859849246635697044253568382599179633322269344965192820623448259268446558843517865034083375811757945912024152854495436914176553088980170612146169167049960871262115445471254729070635692101583364902339755397942866629309255016199556220954222227471135246901833571389016006441038171068395606488861814021228877414663321815444200867408593374849559999194298933950518664262362673282307626016046410233015753193413705432408493042419705029833547667021537513221387533336756428602821781335744550136054552353661825859457294228332203530863938644007219851178311504768250270747975769466593648581394076045127367122627556670305312227787993120459950601607432860908280556663798711371728903478018501346691342939183976601158096138782975120017573480076759670777550590276243810012979088870741135189692016949220529604893129461270416321544871442564729491683198505904990816692641187501262574045946965835746710635101719981802468302377668774401185211182328916964288028531924479707169934373179448258534792054228777855978921492163960599429010900927846561549083624336772281457838191328847042475415139122691230644434168267368672061267054537329308726246316041621925971735462924507558359217586603106855970320993871886717214199789181925676397518396897743792749061482421088903621427025030665897980876222864337138242063578661793570443155211336262593058981824529932968923840289198918751867549506108125761037012048460710208269836220379810371042018652491528879123199266032342793040823468129823691501967973643569487893039803849168530263641182133185123491496422481329453489309665839641125789354264957145141298143394499313035517052126540122658016711012584602225836228313779721424001677319901891305225221544492792397012160899030249113181219447124630623317842773386698542220307911893195840981483561035422971680770847580090055479862423473763361448103679999477912903016452107307980036271466319785296975114220764985514428117173770123017691842396116224791454888344061562733344985681437816531109811147269861635744871141576324236074149916184311908619708515690559020769919832858143345383810372024536690514757664663357977159029015047241271118605051009694071180912172386021960084802010669314620864446928846636827009494738404397972847964226990325086946985331278786871533181528615618959240734597957144626120620172899373019017636445666811701452121189702728937187422939389596666171203851118758699064162174710609571706143104973531687488421028168985560838445016618583403997664499118908595030387595334671407001824712126238057815241166219883196069145823139218674829920991097330154641567231387608653070211655790026979658020714942615816513488974319197286651110255250547009055630104416112319291946876497375317219895706923780853184857239377249338015009687195291170604434400257158261680972316990547452441915901853877985691400982281002197899676908090349577974422615322968629379306110094785688334452656569764191930181692859466548708473521612335811142130398522081628459759508247524023237946970917038525584031182098538736644079308534412095783554324489816251980328285283141018908005248701673237840234665403805971156176408698848920630390193931498051104886822215070898280971921833878359405511932918706838739989930172794591406108797135145912794351156091127813303559112178289556901771896602764895803784123203390963509174254295451702367506873646110582467973577636251420144366724920633393520362481024360695321018061232494506137124339282301389109299031250806154040924328390221163211554374151487182274983267698192511896724884860321966625212822565567614657251625588089478658483754586269709948872012455996269916847975866501378270031425113780681215402972479677521943724949424860186033283845813130629743825891249722799713226843844671837828515280785959970080028248181549905505530178279684625972398948553518893452407472785200488660504012014988895313138556053480455062082137313000492738552913318228498685870205119335660946042606578731070628636077535259379846499898884508277941840421566438926953143781162103496698360578874065458645909797903299816262188989616803333035721020778696015081542853018137954407615044757263567954560536891986250878038371876969447661472592964816057908098160613431272909631674227832246065252625893786053541645629874401724753786400979609554231921691736773791638676769428333878041348465417050180883982555108320310829935923196947710653065338230885078593909456352427784847670356275844941601467932435417423549569104591164638352845086611659533413079529218006950903744701796622905075219080940466242911313238436735161252984950121847825983628722241233990803710254910861612245912194955619125613862037213134286560998341525839475064370387708017494422528677837447649555666933135060119167420210931826759280634217892006533351419599441974520407402719102836374870640159844786611921464322152029329650016627452575965133906951465418032958156752796974774174807255515504873167704044889614801310785651696402730147746654642283678067167765001101449776398557715811139685598616685909089845185750424004006341979471495662772813724922218474641620330738050379899658562073341369730509234310984655716200583147500387708215769799894831504391686714243433868909325419064843052707189631669843686680612796516341736667061604663187206341705889214070444857337775424125285699774549385959961629304748371153714802809594148058266184924942339276046927846306359705357255779543510039944378696410229673308226577289326895225417830043852617066666850841712429116983387601140476657054851764569865374301941682712871683975905137174117634138478182355112532618280929800933626605159981149817865078213180267692664844973383407418464069523835332262531350568377567167259874703395238888769777115468049895063723999245013200542729115291058218648186767487633238544748198300668621664724847484523727184360692702923347598880768616457285208251660005656158920804001932600196034113590851477655115879800023328804637686671388733286250359411411490292742359850044698955239204317265701723665148657817858021613188118140363986756497986633080412072041466941381515578954401188654429579321245608186469375301281169599958531025792838209912628558384519717043974916497092633310209032838884740988660172029338629875910184817379722165704524515605077981389574100213537319388440200148159256961804333817256027648149467847716936150844143964056181883260019955363026031755725788319992274419385791398823870278848479957265307225401690173741513244765593274045244180063482957014995752051582859800852946458051505344315808372661573329093477090672849052068533813067973053368183077623302323736302755609259575317327639423642173045174748576096362497762094857413307165636387225698507274853673881480528564058299491062335153592385328452035353741248765871373013293053608664036164308261569702201184570215552450178223868217848080574512090294414506359149121980338547647105363069717926163743020345640721228469339202611418855730214861898813176977256390194754853944189972870838784969690120584323622119164489643504840192502234614002206144080661939395321187828531439939789060462996645590645508524907957405668624781336773985912069988526016355465106116900696044395022133293674839392162464427775925753310792133508999246155982665347638528389349752359047888762093232853464999954561883944919964265648968758423940964117595082779765925337881187337319394999694064557846086911771093587089516348425918038258708317437444253627751322476092357040406001744075308305867049297702350559805284698399211608760914019017875409299609296251817564425957213267689215640664924240065024650608007148318736436774674077222853215642818085172861803112420806373782742837647643745019378962539903958584512954232617804647124175888917668732024109974091469941875664615607986406106869193177858496068778242724144287499380533302331443661342436604127216381957408414153543658683792349291425730786576759753491299605459591264399083802986389640979735262103650082262307428198442720509727198287342101087756656398850960731635863853060588242634121151158466474541547137633587283797660862792486558800961454364067599566611714093874785085235721127764040627192979444146744879611675968199335620307564023868835726604327311026491707771070619511890161864406446994716053143480936979450521883619141333221686559016552588691053972148441333838424314223297259516674675177899849300257132055623352670875149842033907081040599193594703334889296545498736757548758134496901359558560560914812201854331360020009949778355807648685706854479618132977428733026913815495839952825898626937465428624827392021992485947903221557315755733749088257771397023353960615777293880061387712776838849669005040780587304733712500261729057023327747192358390113263105202020992077473769179474896105684133103938704866066638855847943195554424955705223597576234441225635701870297799537601338319628547333470493480193215555388863735322359556616195654626716950679443405469365828558345144315965522372070120841904472247508481119846161588054333383007490414531159798498328208012352676346312911452687188196180906290679646328297109678706038882127936971833304561266278340713834871108023589833824319608002750685185212044612829608502624492510891082181124879415564234851975420599519738134343229018368855036087521542508207615378089033445909223378321952593879786481841358806991719358340457783932319083236497011057080058819933027925489889588073508131950152753401555523739595029995808522230226721748062715802431932275202842427382029924710050304425344639971810005882435257186026051958101507866723584528554697101411536725227364084217408958097437378676777742363151429838126459806362650872705195934890417514733300159780549631568037888989093005643050040625546204879559268199258028138091887562667101306706847526833204120717535788635097695312393067211636482165503962167270510461010383996378931906992418397948945213514198731343116504047862609117194364822748779383830199357835214696106698217300778872811344156242786056546321917515674863533494994146341653363661037795704636539464636529642969796766298144528722361577851812332146886079876299301227790033416750566406469992840750675474792430950190553626278415973742009137397412469980018449491632373170606376010218152282581286043677541971947527085977740197734217877945216664064778849166096235098112349572501364516886856562072214572078532364818745233336512095559262013944307991990449730337486556513694325262138957471803415461915972872070141844840036778534138580870985474188942009308226311399587411544838098289519030070881101938999104197552425588423287060802475318324977665674093521152697162758017249989430617070607583478780710190812088142050143518629958395968327242266740868102871579749319196462357537056224387171550899627747603795917462837906782546015719476241737569989000922644712174477195334737967070797255397730625937850083316758166940348655415101870759284453972157854453827143759865910869164461114592719447184712549576198300529330040646334894496686952390558264752412502761356531196945121584506089153117725616893032541954979664910898289490951247662896184399188477961876744544357203601484816485632666220254383464119785744096107025845941975772930710238357346489862928168369830774545326154907486794832236651966608280149268870173853193782906405882012516564544201250782670731150981330775031883848453543678701021614747481414418973565669488457041108897258479798689608922694816045718718934602070721400244438154336201222572132638819642611455479841350184711979506037412607004394126416338846269506253770697624502135453543501367679827689942580729069808695508173635064676339835020521139804193433906651608620062468125684048789930764396502082719292305190158494473258806014895249968498755930122680059619651894547625897328829433179821080163596368804504073225827680931263183293057587693366658920672248245147539487674246523776194013322170415688791816983511777763686679422468404271727794870337729133809525363470807519729131122781252022551391106781924200615932811620812171980677451218193605433483233624816445443039438632440550173578279180670268876561614678041694281224175757784814680294331888218873994895502860193195585641228942239584345132513432728722702342080855817696902495130910191442167693374978948378241964213389559888164325315909947556864527958431651810848430029653523432802616834851084435521927085846844821349611556763549702356924197100489355243516861797060732252885551401672592884292018005412613495144382297792190730359032312938896252376240266888758207588238586316925871039017778192585107046403553035070313986557316200228200338035072574678242117299556906124181597654907670305376584291571159272608615631520673542224947506806363866614099312225917232051967626418020778952896287705904225005901386870030212248381507979939336307387723206606183845661765993682738393456192261566605233517672220657176543625555667942192336580936669697486496949550236564366429532590836922938649829831693372942725127799889998290225458120150377223871234274727988297229197484654687034613777579932003712745404736918645362386980072041283541733148173888749613902701984095338904757565362003004216241971089336030265722468526832753419678362557872859342681255988454183326258839768599541032724250127139992989277511686289997116469104252755625925663747074155028793433840094121983921092023603194175191624088122485166932886365053886771774313539983743729224577123441120783173431043476286527723584601790717167914343304590088307723955492101387973589676889754556641886739137722124922215594932149962000530988096197038959678722441287813434950647105436982113952996870639758803942440213600774239808250896872068007272542128923498579384691269446316602943421357172033548062168565761123769014008904587429924262024195690778121571898618864931296171844088095873053203485943655821156707638815897581730440302913632818126452453257920323825997953508984779659123178124799705786445267619852019573258474609653585718921415454880144271226956812176357732304280167341719020119946712374360524647767586978253902487715856623050481868848347339233030404415200263243595950055688829664724510810192162348589857007900079704007667050101508601224990277594216531567663716795307880234249024683392895529608647386206197562834567682237144079575976662608450834289436501397007171019113662183579902630992494443574252683550017923149316291882592325821543569649971149585121460960691401133641894148699151245654599005247277660774959472505195516645656470642692802442257956358722647831722576433493269616871500189427171561833319691029942580152710824998888191578683176367874601547763040166241933387648844520432945659563392817211472854360881759971321100699480947912351182788743206883674940134765465122080409812082058463430442130847428254999237663269756464372129139381636056757807101002147554826555760563950982534285282353821327241894333295985816337163280739112020568379008821061736388850374278942903219489767106109755911219351808728010580232651378594689259314424637050551449745782544411860727826890906529362501811612354219961558798559186499875794038795733583007224234273993089443797088147423676569896539828032517254460155067566531606100343352843681737105353668341417804968259841055771695695995417711394789714721960973540975303845557623857300646738344769308609057166969521690690413775330685326545305320036631678815597710493071582046855567966971549156061471878418666602894814864270234173773196727420856071539194720529624425391987270587336791664238250257941139838596329902399966654459698901698338608950312060627700699642010842898026093144664930766083976097631791953980307777138509619058713555737449894014064082978105925865034883746917778208910492227211360388463242421851643634989978896748921496491295261899021365168759527318338337890841031456539114497456363417105004369979453941264398433855996102014480956889068291193349458742347921282165768543119441462689170560027192444557162586070745244889278065148748549073953067370258338944687588814218110959635808143830652758495282645309270796487082023536806519778178880927327338694721144522122626105727034987995520308105524633870580780738947556885938100440518098003244008486574658969761217763974748310651943114420528564145833818514570857710492248932575944809597476238687538840595608982798180383582344913488243121068148579808016462825853852701419596685552044860792797341468918844353169647750627308490344754556085057625107153326196171721011592659087537351748201823760855901385951799261495718632391514757406781415381709227659087950082019002307160865976455272860247178493235558709111456296988321325686916060196379480191991224799678687795258334145552247106582156475411384237747841138004104718049520361422747022299572981197320578942444838652568665473858327803843973257895640630389826565841346840709644683644392694636999951087484366439925367179102132920664217655615604408769372011004611478744684223454185651869957560539629181563458032025752993013169434292864709944418491631840986032303920034445299899990569189628324414497424918611494335635960184979063483285943796681082316297269879420961135969106076895777932954840314104043352811563561601404026931751450597928736376619545948052319184359299565784070521809458645427330841881279014642276123413393556996256655665362972035557696523294006859757554247772169982592308164541022706764069460005547073443621999162685671583093987054570334810916869046403725775627440245282189378675907689648745667671780663327063133621237522953930665282822900214543214667544097925514222528430306237149764988691894453752477371952349865378289299277093037993601207649308337716530318305637146108558755300030486609997381399044362346617136723896535865758452684287414941597921866704395131077480624890562738055131285109921246810720669478697480212860759734632392592460277729737128531520907396318517381346205599147643399331070797160488978335276189707529556001715166929028611404279095178337772273157990265596823080191832958767965007811093408557276006261680110125519202159457734230962323660274805974523360859210433391906841363667361614866167494927574347425600811618655244362403334969055282100504907576696271223462499483813934510588266526647563648346859498255179076787214939219055398227359069680952727911175839241622415638719954879984933787021786461165209387229460045859247147700851804012543721636055518535566190428526421692489726952715031118573751185391291614031991335337588737159584759889424333396193727224695098929195475582814596515469795076898679156156369423059049496614630132960783058361118674856366101493303911439124546615359231430539751050998930766801186554730907377583397924032097110401624479693956612590800327277772441881463564030289485176926368452613411277701640632662630333891534343006348843304623071839956424273364195820720119999001035121975739041655330088044872077265421639813230156641799704289900254115321424086876008392605650058362196996687324047310545279245623321183884929758507212699293452932821955785370694157859536348995782114762215373721834284788655215387228762365977380351917501822791291583535181130863190883873190364962835604203558353769623237566305557724301172696109249218659626554843265942205297066718826826858629653944026970162170883635261016977879876907870261799780688364685284078865087078246145081211658905936559931464907692443824029595720310001971398149656920949836353448187071781815849796593804774527670214240781829126297227491847046366973700458663366773042868816274326389911748477893174060602514819811064482819824500763823928471176326762391508226172335202889006334339664630157365273995185224025876561460316024398057341224884774537214175377653394784353171892497698918870054435733281725133609352075591264169878866214921390001271803750919622761437060420163040775285199230781113396435653112695417683802898426246257706562158917947561994971805337226050996121412934982284887917009773387809969924266785909747247292754656571417092030971013210936973182618638111208242672612429467068051386005891118515034541263853039816908254945484667885854303269498243880062768987757726462833344719554902503756172420550026555453745455516839483869853298686973194475305244888928962779773377268027288968468012198541681667350544509548808295336500660379170807675566682773701886360339714800821329684928369194156266902777055138023096087822626607936958415339112408108314663490586210794792087614288807357417257706321473789539121624077634315810704610902387439315960988602414087285056640765009243803995885360163306777399768124358178718862091309166288493145444641690393167300035288605406732009060476108501488828038043673351495241291342729201656960177373885929204970298356408777959213276847008407515029508192902776085294189784162172307459579507719803851915485025495241167852329884142301136511089604641692438761618815259446335736924152523297769069597193585387167799158605697321300683343256948732106181678264661123459164817613621025302814206887164239370728340163167707364182121282594438794472611221155525119583384088851211946338553578034549505084096120874946030250739240657456607904730766018473866381318728278541226491635994453844590571368070755249001499381158587075435581426394149040372833111932078752154622958854766622206703100444192663545860416305592649095689562946674879171259621440807847639552233052214685243001102693145288478563660814387738459447209700859391776790733143448629420181925421822599009637709148903320434790757010157004242641239266591063558055078023617668627960080392288820162515262011677953790317852236678638751231229124587711488013383130408673203706239563479513869768122421546259744123928258415880582162762630676944238157628869728476121918293376147542922193413255308741428771922331594017524335966898413933689163325847533782457340017481419876792869073862204664196100454183443533199247037036797259459273990295528528587216163196851402083494918587519868378061636331557108761033896721067036542700904470604827444383544057738832536941828807303816646760955381542110352434593348573283041787605003084270911454090679826694189843836414468504588380418003858695001629474663289049388308583431445740733089547487599358647859348097774300367576567571120201876960141512851405337729724420325679717979902590690154319924407735480222468135798309640928411585987070122585921960886102741888531406352002968814472784470603860582040713792908184347875321744877842448735792795575985281461852957046621186049242435733245008597999280211119225391435752320870313698702162889996359617718974643292625281735883693363550551856724286589767202415599209586016823903910593409857575107887525359467612580128207152051290567402746346360815111146749515309438419085183302653831591442129622401539842118115448138676038485961615648292691394266973853905638493634874295041127536257481631887134959137840191639736059131785639229403355156280948445726005284384942302925866378374274620746428425828912731678242896909830410377389825284762620281926553818086274037766825759801016545044381263647889286878999764261243252572029338079646612488268322912608193798279609765300357487710044444127883848525033232259138227508264295267545505413673714424827469599988482051327600286004395808472194576716583110656517698520301401318403965762265412535048237608043223244103032481290978267696828476768893922258456218185863993409936321587850046638499849799484464984947756193062808269213727276594547182757475384228263074482858554752560935321643563878587893244828474841626918319939245380243770542685947202452283535012524029357131275874592976268703701222653300986168662606130480904970627854308982247257281510125300161173409934262453924946464995362162889442222426784968166787596103027752215385638016238111459000048794257821240519712636772971818359951348650064347210123786587899605487804843182928636573692657284298409773249766029159212103114439255196898113851078153766038590577539003208947061456743787230078587640418328917465251337025791709602160302676410912409851929386632687059458099947972768000180156122984295235984403035233710422511424846117800980776440519250357501743389426922660864220595058145435021253785402600565265055088840387344452702602051535138940535501144869514492895135500051847170383070127154929065028564657503890857290978996955212674240955948209918976384645108968922370643112723526839699806750179902434247046037708687972037076456584842374404617725629739054112777684927609529271567763464026168886297782487032565977817143370028499829892190516026650233682512867437916585662830810621751957761590835951802851359673967623609620201262370492173816664239901110716266586131346422576142299924080818591955565956066439768176353054371675721389122618019165354582396508362106866245080160113107535622281140471415198693187520604212595132128975395243843178334169364017207256563741036350806922032953700521293114927419357456680990916837125234010184100210139007873999559562735223588531714288222095480901771611389306904893139624429147385453789754129920878175166935600886226189205780178585891869044954326939486860122357788524170705319617948294959974396684004673400674825637545933600447057127437478353071331379029163793449681485765115857992697805129835861566812344210185204353985181891863893441167330836859633987414313293843815921834785571108428078493330731032904384884702632056189316983538550250515869800583714408874771737153915857555672790754778840372019508563870645185814960008754368531578692320923824615378204719262338029668750656685119675694085329527182435205371219653547342031309207049607815788907765007965925740681054312263562817130295706614133743067216920621529886955993971939756635668000463193191767068625909688171949810330093988241496412371629338953747790622355910587790427339289371428776715344060653681984274368302967403014842457709948180536516557486101072991621876904581084490739146370727725095174984791907349955219931097232920622038184516177523090258573472690625576677433440223181094287293402890698255446980288804538981819595618676244191126728140690745462948118357524935677998950733718564764179370352960038656762765094063435637449432956128712130550897014843103777500837343179151780680080401566035620679484967182556070126852823589216460268855409217595627585169390696864229085520182932503769265413870106040457181127873507214276615666650194632903939562597989893945916055495675284609422216740860593612498206899309056857618872266770848050046794930227180774969551146680657384142290725577220253079851014520999500057344534905987281052612087691737444683136330568420813248753696913319629434795486704442432260781063647950225221245019335668329290021322611667806519152582284378646913906967386138133796449205650498083657209741333925537902085166338192073413671321990359412005705722128232023310390435670369083988865914652841404476605451997277863270845837222380777805386344018976186264562321523667638102415052565384059942424481350883258176206237074512585230503217207545210368421674722366349050939457905944542851048601845634457557253365511474240033613186001366408189988620539004309293309538215348427001262722586064846852725008521935117644416345296624468516959658222838339076468858070655477837522191926018888377760203484891229218357496690863811929257569223486161785760021441655812904244755358936279680560195706747236209730255093140787628873971708993694644612927605179087231593358531132243616277140833250050655608870458468359338196893301771944764556184461551672364685806242522372877643176131024322441409576370456152891971725245880704017093717322309236383644060612690568187145359546941759596245077471843541803826397395887610893142951641261052381734907884479696912428431378822738343530857487672614637843442951344552325371687461872418079138785706785780325541466246800748384392005239414734101555490512088819912973369747844126809526084848588854659396854066385663127209413229995218026046480841966214224039680730949691299930899728666341822264068043118284934767354434793621352178040916495164445852196251936087445042713744464788650766237745174050208910083655373107739709316194964265297182249446330597297231752947015550710273265222492247583948395245077905143476892553616675497403981676817976711820618315186921590833437352977402584850141375248405719957287602379001914356346670161362806560964262687572900240020629584533763874019108819098915061608272839034142840776739089015085857099974102208444443656849992906433367367975195704054499296036654685412513388708350995755166137291153423586511819840142083201400951146299871377344059560374914768031786530204231578878531513874078701510120222782575275619990863395274591949642379009009668802517573543989297769621884773422421501519360666189584694506307220265368258065663443210673364986641569717785621074258996499559544170175708480768933886228337810507657817304044309665108269524138940015515573671738885620139365239917538781956636156906492072212631678064232229155667572709796661905089528172618830750894626481754575781627893902765864470333441372578058667735592379076246843268920058872425102082361826797904589073094423731387426396584540250880396747817415236609045699305220427286206199762480400906614276906693207903037315042358561144030074047385822101197916844275504858929012286406171265789070672202471842768997705136315673987264362233929041780396784020451753615281200300025252976106386470451798075696172930441030188612242829517275248695343538124365434219160834798374144194250860766828219855688421347381153103609967807552386620289694010463091565686313475101996232343745184732865517712414108007906183398617946673343947914091702924555345693641647979716518880623597758111352061130780297110165365402440790276076738990362869818267165138029957040788857881582622055191001869687601446243838361355880899633267644943788985949507918278780236734021021788848844190649648786888585826487667868326830094637614576907234003062548746601417328488207009848771049160345951615060546106595794598680155781329899843934798738798912868210735709066837701257280984762825592491557236334662710179598994673720852623250814402779470955049364155919988868362979534042694556267311645613122370922837026300168304242015218951959389598115347107447274192852618924175768522175481878513240631239830345646063391006703555421908648794103484837560489805910016444840833612060811127557670691662561384373698564291674005541301014444215762176751747882883912121848878823612174111171300663096276630332873026399369879627547852319796688642027556792135844041719694378831440236807580368850374501930267983688346524460937868629166972303439832755211278230997425818954258191682200665966622746030935287821041999570598221822628026374112859308970193315213275688372432996845115165573114877611744806279447492157321822787945375155788611649240296322516341194145352046855599356213780723363915398334453713492628065172000474201091621469278603409554763303422495569827155320563614980063291866522024203792243204549481752064437686646305580172832734800115540855412838495715598430822862202627573328309737155097265963932858569143411662544382062544256504042442771724755875603088627752876448730551961601869918817833392070691828381354067891846725443286761904807853000559818591461041163622053071246007433573911370555369528282110006785590334466285963510896645016269058445025169694734551506089636277732788596617423607368087562212382753310138697184016301662153010813317076853309666708888230086660337281888425270366232620946508940078633394397854786590206928694859252782335185299666869356715610948568715220688646482127112317263555189249354330825671573904118482960232101521869238503719964457683813654537072723282327071679776121048472539512356267194304184970752354269806941075248874086040810950337859297889625610669853279738600082986352939921045594554171237051223992334248073281445538366172499232800654935915208591808948632123827305763079655627323073543840480603985086100129888956718540183593554807915451498375335509412666773776221971822602145464220549286640481218834116527586597817912294018263975088856471030155836933030839269865665689210939793457726344068123309599570763892413182041862460220403616814889104550263557857325924778625017276108924821363194229409799269745839257488162573452511704784470861121443168641107360031833430968261124290120039113530629228313176604634538795107208783170812297053715053771551404420555099196117021423720870945357049792527498841375088389125278300577648379331854652757629755235279272048818917387784978739366290364071287529873282518670081668094623409411470348101070953191442112379927291039740252543327007248574304078253993389804479363710843558469176709521842619325999363770886162610385576909253306486389713727394371601549364703972931834655612363109091975139334027524266359827638057466373700739675238226912979667783269455305233575675879825524162875797876988487874296575800171315027072897833465633898212574848641921421539504286858791197452233218942198918860389226142078192627345516129830761876315820695763617151639479606562967639307691781554299647114511309740817836262098658425869735253271215577486325904291566079102194448655381108832095838264175042169402580258584354130465393256841684731232326119042034390263322900898591337821514736704394264731738544626744349409869443797020749499471688002601359751807893034324660646708016587697052801683415229444568450986480273064565523687410396171408737018272785606085866485160789681358253910114167526770923773616757348065231342634124119764761345269019510666936579483322229841703035848956758737815269056837093751289319059171395307558382749458031963684537403389058831241615095370240472691270355892790250809683836810949895882845214895592630243500061124056316417770936751178374339189862844851376955732213021168935890785694064150133681058587300554126347983440804860124704520000846480367361982760372544275097614200131190997609502543241956668849146509484997544104064921908900061964269897993079898011511170185225921715007651179967009389643601025891967750791392120434495359038270685319635695546787951117373106019525023809377644043162151683106065033943609582873558715003725291444477150911850280198935024904793250192703283132764915109054614261409839092893502641512040037566059565696596237710259249516392990304557909460363481651876501431158533865871234468065661038475487596205159533954903006379625557933352932401989423549761847675614105791658158158218964842546285532820935095645768040985837409593989020227536134626304748327003183756065635718693034991282712939863144867552837088926834409818810186017310510448507232909248554032255620306789164506242916343409388856659161260664752971922356733341105545027061284638965501941693950636239093301833576848612136455015858114623412372697394412980656431298557056935806527554859069406097592571503858301356668499487521825652354456533360496523819492842129171841846228323310467317215259414353940090813815191518710259616437287897943873903257860067111503613021923116075527888438865468461410696222184239563255258468620533057722400181458360667908203594449870627951382007242450220206467226633281839776373185530842269106968081563029859890633973916775708101553343503703156170042658724892179675467008553239050690052864623121719810792681642213192227661107721835016138865293367758209018947237452920944035651233700530629632583432781123304859145098601939163377900985402508977746596038513696569618054787767280187330823630191962300824684304637943594364261662740275170475588680063542836947251508616191999749406467115943740838764680994399040492087492389115466927245284000441805021986938931329361415696702648627877532602475319064975550183508864027718206793211724721472197212957006392167187354802192269981143338301019945323732564664040531385288232588852781091578999125563464518930588600686462308722546250881017353805369790484507028586292237765024054890864575232258034047644453360345527621912086273287671552356492071353009092292855357162545776852650611885178341620077021452084656666762396824228982912324310638985958852256410396193998741320698273506174051244480094906798663115919858155097160444415189301097802882274946006260857765970652225829690490101775960283770864855555333372331153624187836753137029582626630694277081457112084028059448274695563385503675509253056207587934933669818005343027481153871350173376795105143163542543701005073901138028548375957753909902131908700416691488460896494826624012709987168308835764648648103138429877205495910358127778776622685349293772328001999061361708470476860003698936504843204557475787872918042356967231827182942736389107763386108870534608008056022004988549951466919057046909843689054264152096032924174770484327675293588691922677840001510770982288270593290709635133659192751531489802260712821953287909834121655545027999529009780665736398538236639606033302877657363599284266897718060272805417521848274398923242901435443030724549043796985788410923827447429329588559460488591469830700237888578299515453214209942322554850433051437040854865382295742513941661875905483439381158174971111419901273750817956367376203238795811803489943907835609590117307269375079851893972283264828922527105546967223079340590451298882389871415733651745095123187802428359742978866164390759727599110817817218768972167587411129676380990303913323169315925609082528069621337799844785455430163633917501732590656336711350951787451700749505419660271277072327936953984690853381754812784191656488624723495855593218581161001379128826266495830311935346227484223142440091133269715059605701256731618358379102245210716838705414487018313481791061324620624700356337077496532927465021512925144965442464057238990927502538048932803644772356361910033137783019912026729527338492685677392962540937295817708890359736908700743979786381157268469749410025870880434330844628413167203367743549936959561800555481785332015981559155312312543161680600361795451993942616556285739595909716045702450326832674162392051866897191027740829766827373684086191257651478941445963986044275505168525751900709500047183919809037331817476840075661740636669999705149888406641942284841212978600247778131786087009783592208279365603364100116142010063300914819535396233186763616269647136264523835095312740272274301413446817489012671520871447735736370281981932733664654810166329689796692789175452386046025481791781772151937564764036561247382745012621406988913787358952052390189047657029252724569743061271825984120375422579933152393715646182547624918281670252015629059541336419225729889617943822078644498486500272723718537757936876412792459187612460102715642104359308236521458494079145172271789018790242583398943796155182946392185935775770853307669474224508053502643109209504061987319909321066899393487998186113988541449262728521293591045548895472032944861662374115668406806514301056691859128898047273010172105995909160326024861878986265775447437040650922179806119302334657871643216277348056052217262176251350653745593986225886773824096788902155284439462596196951106817832270079954243722002304828544196858110489622108826090021427263726903371372849819893490443940944638255261879946086005249223497427710690370742602812126008969957931661642324749631494772022173199931703280455808933420327201840452936983429139858732530177616493322676468983604136850402872894236100506180788764987436544971977835709742672036645982205827611961571677131463495177581997989690644497798639878798553801152338854676236593262500970717892724310397321402837840339588255723664839241738796327664726199105752637269999569037215916873065653923304348418235335990847466022741008260565978131098924025960266302057476759498121000646224918064279415891635505184779699654964681989313588426914875583120898712990426027956146617093075461296019382066024965955771155473974692667119814743689200817106855415627693068192277198131060160302956393613536971734809911127437696767353796135206629338961878743613294257994153028995326654356013411765105733036280467582364478206555941162904848374790857841083834806026836578234980646592500305077208392824844157572366322930998596440235690239535606906507839221543837792244458638156957125949151424423847946578840342466328372158082921053015370111451502026733861833381427068132786489629098152461703982182869364897706833722733320802669728196772088799768081457893429046159505249293258810957198818675897394631586655411970861501220081849129328886108861123781301814384155180514424418943434686851615142398299709856918875396766628964576422330530530099176772216211283497732049018695166818197060416278983534690117342722316916300814584544297940536535657280319246504494276025656605652761751807508405189510986280904056333732873174251923491121919481060539167888812172741478702089571441388050433384091528962394713011995104036974825432313655249126284069009880884486116923120811229246017384452367721880159927146526948333775947880064254856339573637053200766964387052234129477329888995270702234410391820651977216424306342399542982287693306377481575469683878278333865949388172493272841539617080918809279834778359060188882120071399920381258996056416875741591573404657245960869701161607340173843848629857765940673135568966953100841989197151750085540854493957680076888080757422407482365561040970637425523112610939996514588339223652841639032424274046913692100309147370131447656510986815881732782222000842145796847138087884790203302881859531243750306009756161972597553733636049709775332252462190431056059537010255396964042231466793376407933769818102668027584007320338431939710766931821609615562553317185166458970530674078120604541814031394866534436379321437371334671203376463212893373559140125750198757096036334073057691489489660098656953325323380842852810579359621614261880252074810935909887117885414214824630824889955821065618528164523023814060933727071776096406824065954522047759844438612352351698497825061049934373437711709514914946124396356001013850022020138324124221539130890483711187291452657627685675101194052541986545004494456486364037172899407169804367904911846428136559824031757477655020803903738168870738368042182035190710562698141489493898846366103988261323680146323054136343919463503348099328946199517792319252040386015549119492447659803190231641054864716539394254499631776945920584580862906416795190826975458353382989776169257508352937904360323019411438209178579947318698819095867253988127179200631019157367277031180789611109599305738773932137248414156714175545967615055865023894252991973101577703586431060047865866215152780913422594907868837662251941335473636851193907825797207079113511485895382426479291644195492732763595258725333697062524118448492556608558229747567134633922677308992202800152412618127909348661933675608868260309390416922079184348145866361098229418204759180544633923586656032525268573192389610793683653506108579684815590936167796935390838032646314573121350874515881367569861966596001865638817872259249820569409448147612872426341455967408876358918182649264099223987855641593223479602210584394866684002977898734171209620132777629939027902112712186670896555970115885850260551050031568613771634952537773776423761502600699165963424643889948849382346394253659767016395205363076538474562772585337913980880172688337310307698849892239439414936992159171778031909477254863919145931802988508205930497327489600376806619395845645149125834685371590787655025415261506444648818019511382981003838679610844412792949946787936624084185915317608643723847330074894002965458761056954236920428173436997112846972395038081859921194303268219773293759619599949125539919271952819998019137737594627179006656344173931388566676625117764846408710987875142064425169001861219370187357173786701196072153317547534758859330795462556145028019783112666173688171833666741381283622766372951030884945260592322062941303402313307367497071757592184462476354043989091909254013575389143109404483833533562131839967008004295699858039816109897409664640845869699281758634157047763632451266145858442930569042451960444214735212058371388829517624154365251992221346790209260827020779469975839477136298649701412469802902867739367004905252958717687228608644497016020725618690228724558023079710245351866289551578416255801861554121113301820934470155537425979310470774865213580815070325970314815531081199258972485948501970092690844788923548421059689833921135311908609764560445629643727391364229320507210889376074112635204701995051759504726930697067810425070313017901731002759432748661155135904238419845375605707305219360924056216132108754421795557018862643511224472278903547663317594846246035181799964376837073297677608607538579975028867112513147601718304536303536596390353962783577242087579653001024445418997503023368044780617824567861611025312723493621021254705231125188053532500154573499480902952821699804563164818620242723806155719807551256578764905404027724410442988619046988263685877974794634719462638368373086315575688587146326525801746940969091272766409148126245448134587584518300247733860515999357657823243223295174353035422121683587099256656149755078798888217575206363013720800603830863947124226847197973487506992400750266519425311746421389712042877092382702407675129207895702944672437223214008966555617846612853829475118559338107469594759997345727303255729312954335070511884415809952815920713911305963708098515566121004973378129975071480423933446613037074029835959095411465423336184528132986278003061067810323114529120286644743184413258343284701569246454783429027290880072825393673170824086249024470947761712895949110536768645819957899414961075511501986018029839616760573256339535590562745676748475659333878117847086063946257588154167013174456557042610655165257205831757257192954200917432659848803131900763258365361344205785471522471348015319308406552524494652613032101236299163496890667412302104960411227838980126434499895549779182214441942239950308410572815483465039131703334735033680499240924650811578915407681698729783098261041438718673703424486404645618465974312538599485042982952278271471104211869706845433370269462752296925493827571516441900159364576814949901171631426094345272602511469116642082892045402192604006171729989347625801702480112166288584894563524922265946092148715830099948429826197560601012498338967289064123312680917637052591978257215986415075487837052521070608018557574200939657941489289857420042203256334333964682558649558577997671400177757495426700164570583193977973007754270309020230689221879464047416567063516762366980622079465219595003881179139699194232386876395134863235461101011626620597302968009382598018349135947894527308971843623460478588852335256032836155986143946214911194573821127635141563986410239411092620930821021979867815638762079154379595611108405148401770582203029813893849495706386299972214478813010024467256408797698571595317577160363964929936256785934270099530048487632180459734991943426482448433001701828022120669321347927949824853273285167123364278664509981660775235655816600419442731771418129166660981978569309073664010143976189158036356166517166206945845644831346241122931004723994752972391680642380027862959138889022411998776075889569805561003627664395668430412665760196707426334835094275425347029867845150549460409276464520987789644738601774816908231229578018411140017661947561588907931413712547624577832935222164695910993982105322879950424851719423134798197096713209863631377191109962528710788770057924225180609963708845535243482097356219628886522179269666022875777155996830540410249252853872312585313657416834105741283487967540121900272746678000037021433596466014106365368049024104701805420367139567151383964279951426591487912849243200035598205955699838318411776224779659245879861324259213720768553780060952636675002245544301657729792669021066863965696640212362825528241398461254008058175051174460948019489680600602769303306315533409406170945018370720426848476377605603255847470846758074021565218692737657931158568431111046680210480054474074884858237662599097761965983914593810316267888124066629119768712899194883123326889829330922113109076320854631122726736839674650058223663162086643272513648570177483954129088840219141667671696933798876220516318613984407086255981508389747263937306111027535320164585321180199307616165266999839115883704031821765862747418044857366216641025588799550022677326462655106333891552336877617855246807496751959776297968458916183299736107660580206589038380626091569876847963241244515263121689957778149480423734372292003177563610469676403610689014199467571674853121430282575102079149542560471362913524485611635535205670511530904449574049731575743231785761144300950156937613418531384051936688710992564610300324452624670918162666001957945853965829323006539842682278425021108980277461510537208211679647914311577146745322376333238784168299132887982696932799317344236574171335814863781870389214579726871557105729503604392265943024326451747989157486430206567378426834475678262088591249804057351787450637678669144875715063867806312950978576856975670030415164061458022802387806507723467597180231432634166294467472559683696039593534653560613046319299819644137135391911284182491766744770313156711072671843738802152971913693244549280043935003499916292759794588848790511852765207533302463600066130410421197894196211367070930488655623124325745636848004411148137189527853329081693248423245660924210790342632697872271628405091087132782784836949908212559309117596191082715593351258242586236842540162559584026811952943519678621491605337421459612586955427949915269162395105369737937119654323369287541954574949355358777314124563672538791929567344107035892134766489311219137567920325973496554072140571459190468764845306885505365130858253985413321327738282350665230111217121517975971605544981652756187728386304627061030022906476661984196880713334012062598220985516962312108647403155704782571332017262190003689193419975567489588096628609113656886611353333160992309119156298490487031667767428364646451243462328638608330210173551975474657246816226573329538962199587152748253535559888660787016194660356931492639271230371846686695201471817131235272203248042865457932154238945911247101275073825030121115425201498125997156797820833582869242922903877176694734733832787844877397304225394736048724012002619369095762353324626025744720307137476345479808346894544369242108011022008993046646304521769075293258790086183108691863911177855834908306697418756934782168383988955906629468271258198361271842709232399807027800161883461145614294577398082188243562629647110612840367640198706915767967436580906026280775846208812413473914454631263162563277595166115536477243254980034833407679039585190142824211046378023501553538586395240008862832523732031363587920452379734045080749569805778774401707172871510427598431656677767576473534061068546941011412875084232994161330892029453103652907412257148017349130599243400764522626211611104306565818048578710638794704931970468211921021758419882991312399960798696725266220844865005747867870175274529816850801206946888312532092769354632682215612061963740593204693605468484220785092287873998823491666177883512133389086894438741515568436735167924342186488356724747336872297690837737689071832670102524092050168981969957638676254387251281030562218995620076735964622275366941444752162273829754682392075932052658796617808608894808075513031947159898717462062313158568252125692057518714144437287874443022836179021115482209890916329378529937531539375256647843356693028735864722851157928749501851748035354582010368550646951033572116296589017170635284141131746693669932873587816512611744630474252988364088511227280397579103406978463679076690020336833782131616502756259980841259453445899528103100803004604072434199292564388975135291276554479340107484840158511437434241104598513348472302588090166529228600125103457838108230028482350213649740700630336760788614751762095182138923261024166366730278862770278070156161840719936686630378234026657235316508282765838289196206486511446018382330578578881742620301566851757727683659430812919367926746274482066533435052808624534399565259448673721114382627918100681357293800859554792197898315354371270462502383809074084113644994741127566079381693638839155766634043757867290377262080169553284329625266607197497010149315652632881288473767496147073522145924066567334301525174381808505117557450229633811663983110854779916797824523953406201788270348613022226491232630163340802926814763946091880187601069991541549785311741549610720678535471078259778509639287683142775172113898656689392861737207560167486599426444015139859254420272581541465593352038553907665194492566451413447263602811625003616672431668991115076064136209130319026892019678816112491461612451335315568092779305936245996313726992253987009255210569977015167732249382730828514742493243555049105425777191571968052289096871324460053695878644610308602084832543657795314498249427434538860646409776789888235024937324000791538327663978057484099743959219112832624843884236180621993326453874050459866832353787096792621181149442572660963516831967646246084665645190820101573618282067226627282602656873318186796713276037274276280000077980669483993891626527731550748346358078882085494594967826056553870336488403099453455309378368632593086889752722561217238254080054736402635750070549181403290729391933292228475424342383269069513206259301464658033684081040786275877148281249054042738378080913767196751994191947694798193769820196208315319804657813386658851319267584081014864587871318963239421384576898276449307769814060256398281931995942948527938014803675819703153408148388569778688223503293511769701004515589892596611284884227155728043467718992615184753289559266633621421688364517565698974904261606424882651067614590251189636657839882318371605168250683307666406237235041595663806785246738081545617748160484866344833010195961242368836232887214092301762242137544075308310079763553673981537587110991614353438797161134701284679193173164313116326721316608794133826715652251524347820545970748671314998686903942939561364122788236855178295576344862328772815200263269757304300766071817819904559307229153766763975144163122247125744240396201158354082736594239258730731188656413986131039635192585607802057158954165204240464674227282717088636687787789134691410752929569068843581017280989868766601552394958021381789828996004935213746467262684574073314293173163623329367552184700405986054711270175859591887031994106920611102240051923010041539480038129472922201404368431573678062999934096423609698073426799268202566231833275692012800039039336386543837598267776704741069955194335094176908830603600816582298436908332944982260467065479117885038854366941383611180633123329360403462355728702982642097418553847577971737303619413090340004998354895215179996955094856436281678848604616687905298317949813584560507233507523138983182813705373296456981711146692887603809844305452511984243542917892265164824926419431477905004245454972265547862487310131130320104576369196349744878140703463484404121891549441411890410833425949334460938175407165115167107370266307136899549749164052387123427841819579049987427846702437101845352202613952094728298746705314254755926261278246760826923710559091829613529728939205598807347751865410669886908250808950558281283237752992732023630417084014661594402196224597665322581433760540028738841595062335337131421963642027911804441796733176555245709084284607968583513329175092464706673380299931939766370738011700128988107377162518685940909658813453386091897580170670512531916153686572283159704808542684727012108091581806768126078030287497178209966770352167475207051149773880110572695681785261761962465386648512063408803538619404930590440094006334660389193790853498130726365348777185580350089213147371745986630235289174566245344911920154473768627358889235416355478270184833287522770774923836441350650457435002524080485577499413079835354373308448410620238062277506619485184969202759181647400201743630506713936560464470654347590572876336458853355240316311867920693897382937974945724826309238641296576657798406181575121141351036065966937806751519547028536849390735101337205601688177495822081659811896685227256317626342593239100731980082345503793213572224187904573162404548730716005052356161141287321821154662824702432926498561802429194804081970434818523649990915543723054094527029472751136375091071617564153267363508412054479864748690819293659497005832665060464712212580652516988516615848029558080235634473755783234351777887404909678666702628683907479439035523465430882888699289532004517639256902023205846648845465423545283104824281072546042890669756528128936942284031287772350655999969550242677534863290562853921704709942425040729292626486995925967083608305711038709302752311363160580344043939680328311443033505285220311610499336400370882725016216013994707336037924072673301692671167755173999233244132353754193716993261846708763511127013225317354966039565335173814057602982646916316247199812665270187393616121083591587951516561654222813432028970473468708811449280147213050359230148929725974292026491778365777332024006251492192787765599036746959381350125441851810530141651231432011791584755516598802664949276397603626667291810083271790645086542545985212849168515308264924944667353679198843208612123527156153482103536994738755493768595369022566022733545577834270564584931136840947576204185063887955200914681248162046605140074413575060386243810499633960357575108467980641003500577935131189793202486475605230833146278009600732266519654815676242937401341514177627444922982225934319498428043685615491351820518188616955490201776461774950071882623951281423852737511886404836743079515343701612053777025988777057252089619460931681388654415117788878042402321189020587467314625240298005397122587665530003721722830666440351400500096972212188354064121181117521340302391618785618388429511084258433617576821232547722071121424606412164249340246113770325695107272190064391682231743653098763445787967052821410368450825661771190706974939724199810108573918222522726301432389779974200729950154009581662863119707979565414414107323782717334951301279458297563361273494670406105454380618546242885135986417306819132160670884768944846128839939969952267192682783857504132696645427500233128819452654451627297722537199212598522947364642384801579068515221003836982840914453787861200491986985991733397238565458194775145010850584330835504952749271247369934454684899659603070653859959010501200486561920606992586743751156427151807166620703704925935440914149267396619361392083310273414306716549325201779252300751337299666039385373999364377542777607263745306443791952545190808624389868078779289194836739019900357748964649487693032434681203035266729162737243594914883548289410462695659154219005680799640684797781567199396689012315727492993397299387217712187430900570662452591380792283864177717755219423815561660389101881430405895933658643282033414856484360562704164608070265698715461600151520706217816037972614015403367093613630394708686644246825740264333488706818931225793861789289732685133974034873329885061628439889939421934286288139250621944549724268558330514822521077567853188578096293582206457281688588982150739107402175244614078553545639314414235300331794289127342104824362360789993085749737407990417668687364259072515923883412792811206743463291940520377282199388131630664870807002120915950372121542285099220199786689920471605895090998591157307988641880122679706631206391378339847810199281829845474290540096255195938535166875154212892264806139805946812239582816159417830565161016066835780023946793808039926108590122931956587358513413551785122891704252299878155992067814532636256178189338843782771985524895228400621999561644291388831187016472966128728438148146338681167486816075930788971366445426416372138630663438931366150716878561267891868091087597673293945874663724237940698948536422663817789467258317619924161195765976485090578653623986150871216574248115328190894889956662284902806402226346134999872373424842215644792936704349191308533196275044703517142673445774255407848065722349018045179869297987425168910618258199279327239185683634182153014028441420986964870755864779665430988655594601295060464278113236834697972995183485203342594502266994490014196058387843131442652466475427040363238965727666387138233022479391496666136426669911800037931270443718041031755432831843062949663194375668993282495093035245397630525370105214030958966941709981011424371270764932549384842542475539155715062967594900532213737684397511270688106791123146744745782535931614326151652317565134688961827865716119545767484463675010516603914096938012494031623855085732507902457905371489478528583622441746256421915093707092190065393600225229862798674671821841492569587206036222046229973931036379245054446398595229110726100125725128637697990053605609393527599454814796097180989832664559153425040997672025077699013485448180536893114110192577820512069586265580256604061139202673815967785947534130196035977666450863121804029475975010389081408799043004895900657435165322557102833722087039040160817189263755428889207647049699930119118876626150498511494619575724476024190516753127412656550774840945382818580570275370531408557965545928868992598572126804033542568881960885214926133616603026016323756757472637727919930836571848857313090757008434765408563574840928920163777922667041660010553501729235075358829548803940250689472009914518360415052461604860803934246784493870640363736552358024569117101827132012806988922206096959580904697834465007422868174565930545643277947440905637651311534561262278589157588576207900773411929564293830649303505887420607498017816874843813140323569698534403933142508908277120032104134783538925110131441692602589517809043945573605779968424382832367872282557535232833200676098586410948367036028213943025214867912489613667700549118696786921959766912610161780570827418495899644340842096698340578094342251769823526154479466334435223510946852554839104045443925006069099308139159825992973477925910214257218062516866892278008410339604255212893796075630283404070823691725406369086746350081713831417392380948305059126993917842449490409466564571936370209393954857752668196967107300397643263174392044480159853064706925147232212698894473307794615976386316312887117630472472558226399658593534308488380895236489947967772231797272178539512365194042636753115931158421448026896336116911538288746881483258770023721733458275503337697752773716406185847119010003120817193403208047845022688728757078722537878006856692792047599556863479831289416074525294291106475432594223001686907165666177263679441907571008955097871791224653470850596791045223299587292323168688831740144355237227825527704698251386987909913605050927330810446450134113167606944385720304482047741916184838262035286075613100030934608043675208263196450673062216692828857497142355390777092475255740289082293696843129785732048606828954552428878739126832011231991010899775747276035247675861158237087196130764635962203901667623829851264685384687582596862782682631327965549697645438672037987447323221668836832167301347980562247634159797645278624057245362754861025158722043351829441332361386864510303643859698766831564115300855100970923928722252963557006288911850325396595314101941084970711170786504579598339062182277212739540194054874450110405791605511962122042481647751800607622639223297216045112286086761070773329960095603503687070030906192350797965866260456894938578292779929777979893581531112941395141128440023111264944523609034352827818647068278420843110769042242760198489489586715324406455045718775010805757550337091750700136474419959713153485533429092203910539204736742037800368021189804425949613176947487824374941274810798049040489078196686849662514397163100343436040740684550471537492627042945964038887684997962281572682616074471440346510000334661180945955680518205604280373358648183392200023083638890173925522423921383018743402140483423721409920964446337595790234698001714951462603356842635888780563425533667959310355474066935865961423810924962321513296406148257302796700235456606699368704452497477009505986966725702015789668527278973773980429889389893295057208941737226756746942413963500937136828644130754116876315370798960371849818673277681981888510398946610814746598986000132969490225760276278226640491438456176614329800485503371275651013384336365909677759165219268662650897041788383601849649921228239929066966297226044626121552387012653959276803833288405576978098944791707195762987458226202622248391774945840470917494028645110321903334170071806585519590103104836910825954850225584250953156783074671590640501520439002997755631759774270666017002639421415953027444038664621445924031511824313543031486255081444518516836271866114416815830904243974484796155801451946481832264687309369823899038252145558440687738347324487729627270064700962105751834347394256911791372545705100031161267274931872607988587466905628900493531679488841930962247158318227136282697891941293492772139974596602588164198128592668372423242552533967405401178257784930078248067873753470263177012259187722157426960695312451806606758649958374464680394132376723938186512276365678800285519433780420844018407769754040738579006819988601800172153438837879111535465016203648537961162342056325586262167511759568198904710088689372508916086224732342833926010547367720767972268068431705732019245257452086167614364071109930374388242048174501624934504739282788691911598293614414453764241124663169888792681559352134661821768372214684914448258889823861768110608327019330967777908137086093094430546775150040483975195481382253565464426139613700864064280564978446257588440485798865829106382044458965703598799245544707688227360908238638505553587250268251046149853418221237880460256811170412214362386817991267790052222396292745274866941646356584497277079177216853023969539100166950708687197073486090049158767669091953384367243433434617972492403042731167821599530258559417241706208288452074018184614727766190417106675455160141126718653688711486400013212794225232608468718765233501008913213193217142739076210886322909846638375104142625915832897323568000550210789879828792611983900337987417217944465465383497558455570589258416275076386103461224607518545104570495981365564804091916464397409110324498203161548396206472523224652681031428400606698684429214901732768706557156549191953745671772205139127742008526054484894096902391469568265981196064594421172180757556884300308421227797819245266505025587764553980743954850248319311887137932089387338001198497072841241615396384883580911748678029679876715358426916022438378306519309958260497021750136805524780087908639491591162825700682083100436645413508720412114602274971888907981489321212933569147736014764623706824373244176012439991799682649475455078889082265106825849865539899355934293592629016783928197950937293735556358511243290894966487544502854714403453636679373697384791887123014479103443906941096011594744328673189253811163116685526302791166501559974501288523195416813723447386624968319852027280127587038546746498904555920479648702946053190485903205589310156980921805341451220756869375697708577088128497672729619378151535094720812661590399801456975554710956456993180788500315916600961875767701471972743457967630947573318248414362155165888945703006395852906597722066827716831211230348889649755190605421556377461679034823254162707716501884969537821699254912458924767385001717329969993098741289025670016035022395384955068466600602296928272837251401570571407499518218701146496480187633035299113906900160586621889709018624954742329430600327391118426589775268237210719026499870458981199072389515303367965614808936436307694366535569493378622517227489135975296215772643638840756358929890091028246055134886444648593426090581483062957081650935784040263720611175798521170282535982747586978129516574121550426854479997467597016617304585930419914703000504441174790436048497996228272586057693775317799018895983357383883762002251705210261042908234813145818486772944508146824797133332012076602215689243051175207647311362084723074256108002396111418350410625217510934154856382937264642963284418100718487967289146743993830174647795547325892829256735462705769140044668712762112608596141538947082575379667608044838644612300880329148169295586310323165078538509289180818451327701756337355893854189876424550019056370005558708421810505921962129128501411725010984783582606204248995978117477586021019877750378279226694861690742370353893128239735481846942220999451137921577658335905787870559868422299392702703444828518965211990602722804932143317069891876508764799901223946077207442037080122573198526520927132825137779884375327996779718818940161709883351695758795744734336459996348120218008170402060834436220145826503432952157370199699360538842667949469746888586487985327303134071624102786489584108309873068247747640768515713717063259820935727770094745038589946190161234791849558066082663202148668645416186990906915193033477022246273841666505751302934445584305786897653860384790473071139635104871131927116581650622430545015195433844911417793542293420113399610154932441179200855276967328268087529903132022102574678425007105269990428390388572085461448562655030663378261320588977222971150533412940314983874352290627418038247831527881617097655663599834383045288897800714713509563373408153394573176592627727658618264664414905590873517907659650099196655708228427552584500437552216412028178412725749386087123553485572890329296375170007694661545681661563837626521817289769884956588615223623947730478821352614936742892534096043351779841786019815788198155088318081738870922745996047441886990370712606344014992484065065944241305029491756931067258392142165972565759309417898624753317388698166947407029317974382739510023913364467700997784864960677740376555562117229691392885348772332207328713208450154179654786616824149653106710530501410564359650365153374278407398808752560359082575147449998283736881927671318721000741338857559724773233226313107321166719449310839940091966340934769412926622585287678122762609606171574618646200015876928341159084889351196649745102908230050201022561305389451207891354181939459445704008276511686626770236840442152029234135374203153864519612052077369740499281355475546321590438594393615758723347454694865635936677023008214118327382369705307890047919512363190037837604269660678357028244806753565712420202676174047288398841223534861352580434392230988775741720372212966152940996366002615432088119051639709992586049990238482154770687784283501366487021697864912556396806119767706947850694849543344539731675526036534501524519820993322760482612647300527803321596619037927383481004280571154687775620588815484400326891941590079858941678507860048446292016217068667263217724645221603741425258170818940176111909706114388009251363750637069784460586703507515383627351759614906856302662579185939893938083903184452767823651204050279226844185061492390733864932137684894724201676605707491283541543314010006423306738385060799181862799500248909120140804358518963926567991259315504437559915010212461026062485193782630531040739170614403967772733433882611838180644294284008765894173759074514439212521626413889660676634497232749605614604270940124942398923490870140854060625165045933785390380879371848370941704228278783656217123950871006029200477276029849373787419146210808853904345016083114171651586654107172391764214785631953751676064681621467867488087797146994047285598889167118068396430337134536416820151385265647753903241315677366680942167935387874743001534429088169874624079287399855846085970927096537198190050506675300379887980026587049013552318115410817463692138076405629652006568234074546476091884364352602148904644511813757207626043245915676524393664479171664538460042275188214793945164252230387409076479883356101619163476109441397513864585779393048861991902440176511887117566922658542888949232480404238898627773915409675324496150397447164463685952944805605829641904711748663053025193333384632306519125440784935192578795346918562042787734174846658570073546805683265359215371819872922252577703475823715461005115093430045579757206374740170441795376421532547082398243497466873140718250401975687775044390947768800114072612742057583054259371423439254527688581745649914039893375193792421290595010820573715715002208991206159415498434527133268500892890700085264399228666101900499461094439977159569903585307848076747298243017678764198213196743288815221241572647949924801289494789748286870835394907675686583015315065623689005867074836546049704574872088727084322037210541927702114705210551995505687425670697400187469412689424353691071779004752334932907695548012419227608559307424427424814067465012662112281160060405627289364367743668342099714126977337331485364629335432023043678134354866398194823912451262364302478271877130095858246742393681699531820385099228041941131229019340939815113697761313093210146573876155515643546403517811392153193701090973504881724948918093563788091222336126826471468226852680837812661205547007551719548831302914793892452266945259982919165890487572382968963534656162213325957349571234559671037663234284326105362834071830602098131787617539950236120648407354697698015157610099737980791993194196300328027832342499335341378092061256812080317337153897200413125886078740604648488288064796310580429705645806287653408516457320619364888553932030077420863355252704615335572064793701006226933122384924447065002517216322624312584560416812583197136472469241383423947429725485514399956948042170335567848134422523383705975876371707952173095048953486820186765316882230085733949112573664902324103205422302233945595461219511795071406001294416496262804008364538231219511339731752600729098972918102479318004747065386246206205657958695396742341981831634050138054483841038967107927949156336420130876040363647364638606398758861299192878234884854217946503270557629014640491002215708458316513151055744729835804392457635850486055585790961099623467343526116808226842749633341972364825725918866368332909661349855139167897171387155891315177307511436248897177255888461746137270153138687361710851981422057164603531650775206452050191440055489802731657704444833317625232574538459518354539269082998046024717062265504333894626333442952409806880727902457019897759933190053131072819910097076238051608637861341417484306963970483765049588488599968997414174633972937684379561094605014218847984119781251475623511199235104442955345256307814166641206809301099970628373880494774556961225192948081311313749396571932103332119395028248157485394793575732479020724191233319991857487488618438421069821558377043513623125322795217100364375460336501974298459907559905438812103796354853272123576661341125877189983843103509972549468309210952769064923173323065273874372878413817681113896478908249198321489311136911880492802698232101490452811999337817115781759842632636632884351438337542993176511282390717702092897629445472319913578030388250410839063615038571660361601974555955705444600962328800498437418906094554014494598389295173594835038418020492004944259728119628465442081120197869293463410480694096782715756834041074204099259619552627238264529786452481841293040057564109073205838524616407125870176353575267233020036555647537319389523829607440862015197020443349172079272584202488013440454605153486267789761414045192869720536003812553915495756860751068720815200170465712009453295862053913027146627334124938451218923755245605955560412230842115931862976742465331654329603922929171102512907123177303394742699484375213704048217886171802074527091792951596023190297719981855449377360944009407358824951980494605052060556073581253161995336525025602832703973218209489183152538201820811257905332700971951028411866877305167698329420988908994097564803132203488770757587841789926193643880503084990226414185806139723127490020346848751195409551803693968602199858206835173443764132552681163860842559384385702690235756041002952618648749956420770717206954202386856766913595224637700443733954941363089243276314010519212054376561452843770622827574065620865834289853137481599076834340773545998767472920619363472819561593075440641104925296664444375757954443205861557911441655904988698522968238299052784376177818906135805741839429028353901000905311363031206133421942144675508877215609548331212813961427954504980108262630653946102674247158827340168309691349369448190961485515028063896071959777361383500138404447847203773715924527230824350055246548820887338163620359792377877182363033024542156159240118309448105660986033297284276395539818536443087869054324231958563952699961937326361013187718606672431338705170093775592679056668802999059232614482206332115436594429236229124817460680676957730785614594651444837187502677323810165790343424344374810623727684533994638251464904828352824002284736731674387761263852121258591636348521213668475428856806796678755354433862219704212255739234581831234404686767919340865612484299989885883086616538610582105772055577318639357160170090992389097698714144469058566127533307559955181993284914261556314317923816503147293606792332504146487508089536930823771489665586007426781566986937337982601132740160929131233367999535499273539374193723043492232633691490397877331468850493194799739922183135445203923814422558769068407418947666911185423383844000514086988908953741790771824627119296279516127156837298842555438334017332964517684798205667201464852929015717808077567718390732923253155794718682487153500970045780324678331622908207998107463182479732325380320178989291829457152706830384411060856804205937406415721979477732722554922498168552573900651644277487917330870228153374157607280477308180478832164031434604145225043170362628713728233847407654042311227281175774708015723183242417877788498663265672749228518618704341878456422342309745996578380501557327480686414884741304592953724801473751975047459666785378105307108954815644744448553652886538411189973943887041412380415705439857853919434002702333398215177851505583005319641584902112053905880991633464926456317341807638774019791907227867469106978938205988574330483620344520535545095658130448995492217190152396588854416536484345646448971424347868213804562942109027510175061918777700658230806494506432539530243322516849909779797422174279723407746407834125448425532987401184750094379397817847247958803187181999394032003114547925990000763659110148399470314187912711911442285568899239481974886713979633438593864473235557015780039995674165758397638469163301943202651127210393263202577634316235833087026878778376265463726648581728761715084407179101065866098536339011049032677573439106776912870428189512472243425444685549995034246314351135957055064082836935919029858081586345997612110913786411033791778606309584197410328661412658577968045848859044866000778614483249756268210620799306354534585735627986726879370355631395434112502883203717420981696017800290733376416565176847447247121021707335678834254791870458434956938275140703312638252615245402005682934267960695532211375943990065795888434560059667145287724433243378426488777692537525689124096241631895006275958215528026821655600223089088514043941348032625789301794924658669263414035098178114805378263036606326228762023792035813631432150132016436889177021532829891101835451543841925624531270192408803314310737640707575467440252472052004013615346244158133171728796052290975305765961686858631320044261707699442824608281207152937264686055187143291396274806213742460633486556305401196263315990633584733385053890040940859666502903752147895125621004615990115589314342301390355965074857502277224373053784844586746837691229649068145358643667271796963032671150875944099979829926278834957838300894965964433543124926284055437040861397420472770933651909748634414642960178762461485085461376846675605874431897633307660302087402428592008651412609933961297117898445993764380288795683711532874248301740075840157167366969187069693413136226256747158821879364928341620562823732129941042719268700420814215973671229016843102503204980050697502340738703156317085666735991888885250919640297249882770232009628913424985198371082032533518197934775424934725041067751892334124986473582776646879900369994516523639434077668306574712142745884365297417563323819039526161436619095486571670024736274927424695273433353155773633407041215410446194184076421595736666481216799850580073953448955699878409467220829632347609911035862867445348363487925422291786698536912817561427021162379635588047812455812360527275945031077045798894367704584636801533105011398081316666121845651172531109818226599169851503835562071773087802399987432174692070528636770631630471988287387375166111560905312485971091457432774250059689324262865251195396405853614050347741825897300189379356947154633926992613658021468428086402582190271065221553817057649651593006100896338022408374133762619760004570967291580806438752510034374303014701457660241786261682456743313681309743162718937095911104458381477867144678029377561988611936983297916607776253605346643286022945346037362126989267773510862226259466417439663872019121355137975063816184097302996302814532230481383853293607063718397429421667859537024048288268977292968105513368592600556204784010045889532258787134205808989561043090756282422956241239436687816635574122889550826138493116515170587610724240475504312143671999131673855439332564398908346144191324674807797357524677452488461006364805071091492219032927765129579082069484245320755873675197005499673738787097665127019799112391797194243948852600471366319710574622648881285720011996381064654557735576781493521802580482665141754920297553046733477319784369569806497326855419161468203465953800999618492769261773121688650222662469709826926978403570735034054721733847624598536065195422092528255357086157963844590419727393039576485733397374227976002051173833554865069461024222634686297669733960495542565010703748509258849779692394328437779380529619892978003692137982899852850891211083438166625427685379794571613641151710217225973104218299114038847927570594637475726561454477504986261860256896372141309759533280383175353974733023943921022330627665820526591140877178286245064309623791326002419961129278433824868308567037883568416875352217528892006512107582450778649164220257555802709517480937781690479133610199555090242709804668708277282208090113905182967274634276792122695816558388444531535275711187429460385150134984079140474907801237816588322264941093158979925770424396556433900876497399670279051778185491158760660185052009118619926139425249528560844154826545234552721144815330355984606293336991535587541710590654137299431225526428655439062370980755113747928154379724480895090269305924209131910898289921951943105451114011304439217404763123173046803548217446799405916758941297475332674345349992607827504426475525493557949215379340694539513301647316874263789875147377671686879941196273254120877386748636894876825048165894211216008422014426288274973834114474237030507065824600524181060016034845485188222032129938878683515581166150851853358389537097397884061623747723543400159644607606729818689760117284930468587337708157642959896020280538820582850512282985982639499426564181098658109535725700067543236481255968943082884014834878604533560151189132721625729309076514392319359973520307233485149142127942160686993469076853589223431532224713517549523962507501056529869507346634179597687264949720769533354534625261584111775014130740570038538106975137812853512435581339010763263170817228376919839148061981948259313342151867268197920063960374384747165034294300023257413958272233043009129821595824348286826533343295892112790197988634677093197703531405313295999696107604906368784298124975989411006977388646521017575825924191920431297782862040612320386009687771430412524780959465731563651095908857256164580676745139660672790677025907175422781245874041066795031683338683179283137564273352227796825596740867696606524149185558661374309162996987109626763485126589918185036598529991254929992696003333419517575085518812909882453137085601931483547281053924104427006999885733282781102320735823991100993027684348193202177625636696176700991932211201115870243287626594890632741268829167647276436401904649249029766865116716236181850810950193660515809550010592931952589341588672636486109181571838697488896443289999159158837947892170010185187704336820454485598949572432183811240441562131976185430097331745003228225447657475983185512678029137748273934170192726819586531777663321469264926940326075076310794893634974766902017247237693557469800724132851184590169974329731431879486822814179280754911291197685938432979997222252419562713760010248668279588911278830909216351977269124595810360191904631333785494938784519965785166926670093639720388525392433964369022467416305404011309139061519996569521780610835973657298155254250961467641691265777794058213543502010624980784390956539539117746466545428343596045188105411883897585434716672534444373430524166069686605664955945836760558405988784438435408782947045691725221099547223116115780740166745518288804990558447698883551473753967824068893027754309241332554732943958157454660498968144268199905200071275647794905375833293412830133510190760021285541847735093408149842481797784069791743397740176787932254710075690350613697547101265932935820862949543643202968228459454448870768287512583923212615016133915682419710668877160145447549177821138975757725858269257670888179671167139646545482989936936497375994940191990260907129058656857850645619107434256323595086604824963636907046533119062316448442074498957419949480313612330520165415079743396870997581520372755389440912777268115379004454061576331338741214797705374334159705731288160121797718874874330087665835511908821161382079054790435597669963702750808844172971010056048113375319794508674594940820256971706078812895981416260773380634645973081515446013754150496640580795082653053543235650349025652730025715521133764095326267981751213778668587064077788814764014185507031802151364866039460922729913129326015405246254757104604299913617589697290240500679902447261419386249000562972686813189016617739965179727736208876815970642922497324534522800216937994956040233331962698210344909467824280493520656087028523171925212200249803719525112487724679467798429920149693496873854307328175992198350388885339257778331314867197197392358249196479019041170738599341358737598524915411739239587153869035369468580222969720956883771091793709213385243458451717976588950975557900945950134115702658001525279317657555717855652736909621362991297603079005060564486371183541748167728539047260880510771957062393561815142882499229887232463790068513918187138643100863441504816344587974196642680635629688278968557891948421708715188547293827204550713861448882543538523002530114083472743432809196808851654706867231162852654668395534568223114779253653968646156305926192021901898456099082996981632152509335163393995123593313811513260623946862366756835110642574715620324196740252394449557377087331497119258936109649437161642007895238373024526661922526522680735453866181279192559041186298696397906816472560870503689920122856393925305765048254306461657295291874421441415787814275414861444535717945749959130756169439917044716834131438137742276328023464817251582849673816131765742620658612542665987879873905057421729864942986330936303288041326407718123728339265970345785129475196058253761341468736763671259502295849040315466169647784950768846227997841337400356846475138411722702082299831470289563913484682241835661464925624238927107528808731200156479604896283395635904645454436656186228567666787007379380093647666114463250492979970460229744718050681384185963469920448974214286392427055222640315244507586397701211023741119447596758623447032195000644539153121090644744862395708800312473600214396219586895039796161706133116790442691316323584083424212426800237114746391478939628685146526361625603949259790792684524891322493459116568768658233358198051061723975112225264346918711020786822745177263707814673996732940543116875533370901300526890498935654940260434605091500693533212736966179862432071869439843268963070047061711737167728232052431389422954174746175246174885575861181810163523814166099208143115941234922830853594159373888953502618022239025826959308125618880599819862062751153417687831095750392522654195915676824795359542840708921969343666966348566619373138702694616317090415755618952289507694728637615468788355917218635169994269052233155425826853747870795582767405149973304240044598713854019263687610006152893754179765609585720130106501771494865146723262839854235839821034231822503513555696358063162727827501149082013235516594690702981823326254814415117914303780265867698407985550805869729369954278366185582292831052392119925901331479917548944832762244785974325314028168061950030444378875657657422615781345592306527192551018096032521312282563796497472813391361221882368924427436705154902498151131702633517789159287780578534365777049619323181804275595680209977876560129015611745605055147144724130224001559217518738297351231239414913103184659472471642361826294797449260453356883373779487929158939238854847800437100373939361421097636385224604611984614298732332439380741490518185157111570552364643317045769393866194953702012152898583294090325887921285113990125972672539146603468327179936274936612583994010334130226448266361565394176974128445990542422515338515443946222439385785470346590793889499126857418323768021018590925597387328608766583648345318429188945797170193818217822863137148990659820130331718986552393585823923840068002393129079903424603647936492587065267466004355711627377571225924877832419039372173354165156472825419033740590580828720869230772779688761709182656745533718241648840979019427573454237459557518291788841146047181863405277216857963942912805391197188861379944136460935384421453328134898520163336821021321620149022226622552752225289092801877719891041942442141691073741379431077115475278652387765439736930364200812408880597829216880449402513514283008941999313689981781749995999791505674927330449830439521527584464063083631465031752264947341826580881145059560346355802993419105422972228887791847090498214208032791753768802849042708922577663017116224485470106279755314769839664781906608448149967124809009573356490506849992126667554770628151965391768834813503417256146053526469298782865759048217620119800809627671791893617966081005748423238633031705812005896606675036444769865768649031510250195145902150373764801278907284848362243380347671733581048266939205209965657360622030948066659812841896567053522899661012715899475976744832552757988136764264705294589348405722620786696715547316932389847227240420079759605491686095478692613990104678901532452198018058086792771217947940664244469486112264002579855453127708130006342636329107684520568167238216851383731857602754675207892939822598362858545962421555875301690964645898086867489303560752084778554013083749167381884554581650963700048396908982971527389997354011478988496985460212270787136482443222799241349106863401620482706723360422811057930544532768524714232710997213524204920840617018292991915937907407217623090025625173187618741810276743678734743514757259907728628166793741736264486195341049197448040103907314825874054966288306547413350917510774560150513279497043977109862018464578601819558386813487940592222339136678975069848938200204747399391599252120091987262372536606903594258203243207042748594212601732976508521109340837990777829456670812095810190980883931676236754629758949238998581471649253298574344144255822422154321724818713681440626027006694687961420897325683731880708299434092095639543738730903063484807680662701043455854910307544579045526195147176996709332878452544535062663655745053332569385783273065985893195799163461596118205876314774869786870685886628266983499466027305014185619443985450203856473063840270079236384900114608173129485808022715889226893974715577638498198226764243034696170011665765376303247556845345758566664759150440919139486880995995349933191986562928548747382003415023712554748109556061390948331092784880065627703756056883332936017434588432391219988770819731241744548639054021447083510031716836054876270025104236025952630272702946487449979534369170629560115850648310042893158695687431521391953014195813789850152939048738569595319578393014872903013560096356026373750537753872982969477948310745383080196370622564541719079168126212931602616910134511964184797851014072265799936461891788115461550137491510517163756986544234922443148235292945663467089140391123187702487490105498840535456166339014286414361486204523632404611792142624228234339557131072315706826152883672896170458804902310213332576400750831947560237815925873910066451078313256744614513210503136742292916880305466774117017915746749397394255465849462840815827744222317476408364391311797111679099268801272551449124754295314560980097531291449967366292696470855429546436346613509902667346346771741694406257627758177404390113101494554947133732727413741436061670747044216519446551263605083774239604234582435454194226712556588272059684335786483597651393292274953134944078784103180398367950932665320156789863952440942498270532195122898232097322157623031340737595767882487232558782908663077102015712823835714306924415287418723916817537555332063885444312435607823487075091613657025975532947659939192363462207700302183707637135775101293720844619544190230145430238047397849090779240067305538971739124353774760842124946255364071825932645461602337171502762743647956531694444268549193072675171459159576596023531499798763653074754167874776750642287317137389492034972100670153396219954841672078581065422406494721927166276177888708805970111204222955576122242324832627992936803727236906635016952814689124907961477577382255420850905133290990788064073179719708629767838003636020799943681203610235704863750387548176056276870237183918671499970755599758550034133472354533189002302351556238585722445580847935596842599408177138759562310136551714507651507381912123967983716507098293456827888613279513258915468224720673956493192712237963254441671875566264260101628777471562961489105964789755540356685107002196430437132860791599769331403969760145967881116644799324230009782538148702031805772398124100468640209023374779001935394992142160948311714974651927414494193418848431621068756700470146572082939538751444680649523384899041695472890958291653807783268685153322545111496912490048122183500419649495176384877266513712490129157978358282558035197491926727212098210991963922144540483446754334203742825326502420530617470630768505832654712708550707111098126756429087712607452408997354973281084580822739019948863191181226608863113043298254612113949271907059301681807048765990162375985350285551700026537903695213704562349067166169569061889619262237905641625862510503659969537367003390783876930719015044746736002716154904321337767968612266408011732506823613309047625229700240961333516569574707459829985454579822809753226914128187988660841411181462115227761429832554378926953042464770029288950245620763130744334325397774652625007734011198382103527429610777681730415275168694703621424563671654578509759615773563969827924816805250487975949697460905693412104138452865060200281936535450970431928444907746853964459369643021347927157949680341323241712194225650495141204361020666893391714494926329246353414757264780498581894770703477861471139666853563361581131400662079341379067615889322743716524599935867788698018560785275807556514178865020643207433657908450244836672255999104412029756609001849649716824045997636966605502594202113872356215572965909272209765674146543712316910744402696731227904654381995865815131501369620744664947905750966191519776312952074262274273189006565377232183887399886504689754470834728121132657851292195942315655433463171549951150402838924716872070476417721627510986075476003090226554766435528331964983977064280539654705596293253707702353215401547894628227678658565727344533720355756793429047962136555038749012992884842877804642559219226194235076374269911555573269140338902398325633068735688017472421023489536412046510864608338396210383319667676389242877258682699172698703347687771958176003671030664179645913006290520433456918044286099527923962199173490079616777446709878187026163060990344760663140912353543479292786069984902295507715756294664817058037476207591170118681818400070019896778362331387692316967647878667673809510118000505395812305777787101657340633209040627154296809030063837010600721941780065984182230264709195625699567446639557972079482932721251774439393345376316682826387708864960253458143961604152059007077134922204458795785308277574901278575019830100539354486148490698260207231461382660556244314606149239462723288880303127103283176318379422005860350509717170813945976479012599533650191587455620256453307322374749624309805107142297451085429550973869287640349453606756444911122465127580537352964403193294516031133812649397232554105238591286575416551867913393528050834471126212340815052359636945219960484040238116713242772720973087978983117535209753256118480405492610699204046082483524308267758220373374051470464515026474427247179664715741500195154060056651089533744433170101794165192257944196881374544720923339901190049936112665044799753578640485410608830270635363865173097751148598994612910103943276730604940064784498216630349986608192959909389292927167665939855993607661877187510273743270307110718709630459405084133295085425372363301598342153027306925872762271594229807834688356834127350849911943624284165387539568702171153697181917607667158893858046799931275460593238653521887147018880159498101263172469591956537901372235034313895723849305556465006896763448561960231292399179167042281190874550864016734556043819809393993333949724352686272202432977213320726617727008790020528050678881932151602742441375722065447917756746938380542627463681093570669545359513494390863832257096590534868036507414830626435646602685248740551197081943109648735835770561282087030791646280990429635884205049135341420708473202689274894960826325713274934228876321358643111725558740906430636921138231069818953453911771114126503758219554032584971376140961358831156379348361262957997703139547033744209290802462101342940166051924527721604220052038730206004189442514233335655236608943229072361832874609214468000171042260031080374926540600372470554309981027570679592723530615200064642821116940289598973157469480232041185649623808524295748133236685041888805341925757942610747076452122240332443152954153425464544275604966411435415854525268583048687489166885013888177344596024951679713833215495005204217588439366209846027338894032819361159022528454757629220529662459479850153212542406188298162541422099747691057993421071019250336402652686272770665045569995538951418947748163693025010274973610499677983532429174822715417923396597497229832201241898719865393947472155200903021964809349157202664429163397206484126212399218505816633764903780164698115755859881863709634228140365467751856042156364870769754410880024658316284453270233696560376311916570480832852997311132194071322123689307593522325358854514956795478075144339411828025592501961318671701688148091382512904164122300067493628644039688619911736191813336478364658651782666190345507585738070166026580764098942277772746086014882989304145329090426617643251939015811138997139755499699933168476604606721186353140801703498137415267808171078823247685371930160175566739379126230713307258776101414850153895300497631591848881872777709978426118424756258178268149899205929037548879132270639642206077393758097700138656636123643161797886460738025545205068787407316694905753289207494902130941932871452892918483363137481637040346969746507482903091119540107920569477060019032532957382282592713665345017048829496085632126869496107211763345062721292177180434904272414360844873306095201474959935147541136579137782335507160345523353996879971272616091128421196885148267110640292802184733107902247320585450831663661383372229205331082364322396111487171019961118571477016528151748703878048559501900059985577730627485568444006992854457843121937814745075912854221512279941665924119282955144383693775343644474240725227643956436429837151019021198238711443232464428735379266160671292581275828522839533506812087709777490195479885669352194229319021269084694863172077749211499226547838962750652080737574367383488719080100655093358643566270538259468117289668956996282458618758473478354726796768092465733554186518564141826393311767804072980767642008047462986119282541985329365388200245084393103501410415843002964834661680310546948057936575493221894607611122676116102453807561739185864587617042314017742360289528022049627107078463683047425139856299050177108187661446913645051980238071094365295467269151065496593725745259777122755976072683141463277487380218295632832901671497697268560982250750489754079777698753248550284241366203383780694544207701489458208030976294290351183998944870694297541998806916624127293212893396450870871289196968826674416663019815749724316546756628428135579122648189967217434252646834017514079082002168662585676103569604581062971289122383518837184054563371973591202342280675538030282359235828413807127826341111244508462835704340822283747470023712128927397557710396340343893087373009866448244523101824275379273220932138332921519378440830727129345589678852141120052420538324966920841536841013607900370706917600876484906673491477204660331861935587835760736825522973032565836910057810679875143232798882015735171722900881043802116155048172077247616032149425346428821881928497940401948282049659101515787958904738444459754453795050038471435544665312623901574777654729149939702618095657643177191057157219161671121642966183184790447656395284875286809867094357794175404685099930400097350995578202747565836086212794263652274161608653547655696947388699876533386402336155763792058335089417056341868605039242445935554847025004592450782681614173732636247888543875702074690962902958675855012325519031627516698885192561619240307820962441040629359446055592983340377253014813801400175204817287342682436187859014365989444877671824086504083331648221692467692463537377378663534937614740257340481859344469446003493153052298713633998431979480229575998085802417172421993992509188775149489523153875393844893729570983459958489553306373834220353024436770934852550563856893679084259567098055805850994037953064207998307914119494833627631970837647298712382105712664443908521899806072955156053244070818578140878899118924478891197058606041798132580828194659634581304981658203257514747956011495033360041814751166182415547910625857358781724087973952750161568456731677054857428437810894098096458729169496681272390070653241205213952154068536938873120952702063921136073183259696227301397754239961153096858437911545939703388227104576825522162170088903660513104262151926293995758822788663022600657171614401559096083780042187634145463614309638683481159204952095303756366832476077311114329470536025380075139834630882322870440418920512783830183254836656462076946182372955710641752425701245136901878652608313218477671827135896885862489883763358841072945365853194822328073393618851936098090494908202139630918468318645023932546992215592523480341662986716288544534582904533329656338403463601235269768221988964226674066919421064537092980909274861596177829336438381443868915831209463794263348999671037991509738588560740020631980339070895089089277022953144565820524284764816411315704475375049883481849534075410545377303729724449547203050713745990368875497715903848892211752589135050071057476129168333970438485529796913594180223410685203289051994921651661901315656272828481448475969543063368507490436167074046266727624743840932363675150871335499114346561157815947305031088004324939605409603414836543639894727560201086245695573024756178453597067117566563085677383872360922932495787341772088585511955288022186256385033698114073296644590389412840974337471911675997769234291343095656833992866889307610016564476028286990638700971369749910134248703418507996094286416456224730170038614750485925422904683443425600136165359834682388799942657202499872888575125291401136658299615839060946681109620988463371854501814899517805168789447605491589982395253672134160548576242137097094681033940642709389095589799445057662740029695539765068463731698220928060209492900972430852649023753471835025431175638577625051867640159769804606617435791628832172456441239315468172176224421113217430010528480348599002389479698857174313093909554998187056958071469522518132226043194969650015024408688318024276670279636391907543675801328934238421917561997455757503724167782315137274686388073342215974786110623915654956965504109121661039133724530465999183728815986825363267578000702047668491965096076532114094154458386638151021349275356371792295008289863528210758144919774017345545322441095933771278721009553143932727713786151767832484788597633302958020839898978769921609156139849258479241907620239939804070498487892730057789246149764736835784478624259347633687901059143204343281388743611385905395643406662790355423364484993023570565862882965319852293905868531535927705595549957726873428048619584481948427594240578729711676100633410845663359510296530040250011295826305316988710639381379675127875946090448820693028556006162675919827043486985328461462618503063712076761806507772179104205218608306277984477645623443514596177864997787535644507794161854092491733803602727610059744349274279008356250882340778529533240066191926787441437809621958118638102429216877512957504128700535878659210070893586820999065310292798951243323798868421006824926421963725563471233583165805607045889287512687714955414793018905872931062344465350654319148705251224800130431816824961574267764776624536380888071078591847377339905828859660812703373539087531491280900039740594804665688851028478646638319905517554584328056168780096504693893427133511217804284860830453158817099796495421903070123414428829517288570381895258022805748319615546681599374923066251293554807851128250147025559823311923000713024732139615642824066945435557397572476576644816693418704252239901443684075613949480104003541695481069129954936462193993191885061489468668491826523655903188589085405079394391528711490341292334020882261975717157678476941172166806703456999475430053713153086608334033970067664488074007506942018201226518198034649390932065052091901121302891827030140563137067966983229181725677037195485158779473635528071612309895704040794882744798263208536092613898138078895768617941318492764130883585674653972541235635270144233670163094838953310773072904961817466881758364971127169813112368019764955654516688538974337336332403135129036199280358921090183969348437723566902245461990785513633208657926752175335733809163199382765138062376132264435941860442621560253783640156753334068915992830225568053981867041302345604224606915182532851441208669104030083345539416199111684766897322573218189241564331234639458481163805758330886244796034676078797789192264172344128719056649653848792804554149428912527425568094322526724139152870657850523822686741657174562961393889548731916453833415336671214829710744686910646465394152291077524889722805212017935630125365475383420448642314000153658245464046784293580190258021881450434044732223985314598474914746640581224501370676386318435637650472100437922085762449745984414927794258864837963955154046537464845849649466646281175230377160473086137393328678007362833382098229402724771862057855273155423125805499030448511969365867649337394005607996296845171626925639376304406261813785018347844597775997079544096074115642878628182962929693122114470810421927552424546880751278774421640529671961919912918800895052450499232445512741073077896876813593125140934795999830791511273253498153326213737099828647247451410233048585438287726470247307786314285153962871544623162893273653782444054525934857812816207438611429466746471233966408942500645910269368116633538599030082614939585076208570088520068249422321002560479551353731512864944218307342468407858090883058499436954129231044946160791093825281630526755335431001969169797809500558209770970297796965678011529429634945381479075800514096582865153162855188384383197610919743145568651713386320511907624035596468289021726061640768203776545189913680288139464553824866693795908974636077421724321932811354742113823146509439242729354088027537970706491607508763119995901875500618782639810023104974995553589280783854662770995747580889849237379558318175046348804652264134723566840674922989391220148133869635456076823101878212622796281184504645733522609342416238518905721187331885283035924951651810167582690060431004113776326834803383872000860052738232723223162363192914735730769412639254741097993316824940787541373869946224440969624235138675986735087335873955661547922211156613081000315706205080826743048623083153537533734506601353857176466895966254483686587088895798861181366872324681362076725122232750675156961012850127382092764238868315685668170129149057550065781036667200994619797057649577061722690890663674144329419964424529939234455159187525542988644016935488809226348372407260170536486390884595671355437517556313153211397322821774270002045264045051728134889007058893873646651854665126864498072524305185431048499399661024743829764963510153774814680333824080440087516091567498975223094903403132668733066261190850924406750486637997049671938008893851316256045506626529365096598753372384927370250116735027431672362938307199349390706647584621396971012563070859391701202214046002023561159330697141595831694971529432546412995071225336315449075481402876339527876036717584392606424066872972257352289173258390772255753682282219604376792223925004443640123547930875615292600085846462551138366195422991199040121864009374546725328677321796210812733215640304210495730635820741675956963497394644772046961660336036511621343877803429492982525822525298213866026200018962194201590320924100769586056775497456288592344625738025196305808005844072968039909882537527446387428029743705504269669743546707058916378570730695189207031686579590673434637014027954567463022280595778334579555469872316515394845832711693003523220081987751019991732032986291651940768238946713477216134329862871039478610505846698045166190780260354277383486979269948635418774977746431747862176080649855070349391639317329149494192729168084283674802086203481878721695557399914819965294039708987622296888534518826000452677834881575612836959288086673489515898139114524144860716076333817089820337062089362478620658008147477160038698971840031140078499618686727553882545093442818750811760420960715034396784045229869358037520605063430837970879295113211432205626152566241501078742320028506467404434097395319245508761977269989366921367935542498089426247106411123208995306995556467720468023527507679219838413027026984148503529406095326473725154673203977188215942933388606974646155205844210444982666177667951438180324890964391221506759435593055861907054820445854147989118446988959083963526796252691948284273899386274862747660456648008052051882051319400641301482683133911883511605518992113955680458084612341542618124415330330411468540828815626856051530857616078629720118585270520142887125904912107662505073185478332365224300264043794955918030091195949837427930975221136365512889351396579088254271108164388773693806840152471610256517262989041499280801941604420023890500786046765791903267296272783519706003926189494695520724323749155680975119275259942268589481919411368996261029369588614937199244658934115188373888447974587928242307368209168961063693178606536274529151523518895614184426698421461748872119174059016737415378802475666907350201201221216067273973930517157929935662908746224803210683410340723768814725587649407321141008242909347529526594780737797129375178313018476764563733753711426728815543177981800871995019172083799464871321612034673589046687830560857955355741923923714256126575324173153863216085241558039062156240840749917863391371322853171117286051744162038770527537642867646080763161816020172924775646422653181622672631739578913858942649068349534146060420609718445380227424553561461043563581550362942634787423476337419570859265229124565995786235650427132918047692802547443718022926140585983545358765807192930631790844361572733509036054180065420842245259557234549266346323772019400633040025154517168676017840970899994075462502513475374505948120589347501246858182005697535489755468976672422714373439123911477093488050963377297863813190015543904171425980036784311091761337991196137726273044263778005258219483871674110136721278444638183485190880851308145321113534603348831594067506244534607655655097442643849533354626598293977050824054549298109351195118197967457786136450789114512986078997628923420781472012044420068448295518005022016378758389865407815851597724517287014241588061096117916124716091337159663430404307459983203216834764841236174462898175035509434204209080080785274115907206330832198122734127228279662047559031248702500353094711229705838707280394582712617126492666448948927658889617086371612756808204864453283009804140043424757885062523083681875834817970464720300695585549436014071886112528749696161572331585099800012943744191201765449079339022238177250474536197024687030252841946884749922303481665720026534792045776314003284129043171622066124132584817248000119248199180782085679017662217899333318119802820885908118577087213837400963821624286310761196818398460442166391828935584615692193675178066047807741089406152332473854226169933027468714788409168395470429965537055204780782434529647496959988921120670619633596057199854894222236014030779953423848831505343438313822995515781387987884298446894409620109197449430503302139407764129329168010805320254956037527183607298174334327624192950155103371770037830960178313205689499753292073447900707484626803127022685509779569151311293362865317101336008864090583079481271071318614529834224926472736670539523956141120701226287661807372628917751645692078161898495333489891784174906454929519925584208551334872431956643581828486403234747336186244728938597346900963093225763219283835830871109088571466083164017565968462876821624261521373993520423566086303895037627901897228449349009163887536434986424918042075211982792251274051251851370237841168101676867069674752012789411266760673570299222129916742834157551790175713572699004506844019307016359063123095444175703515866345069353089637162061676003891016709086378554248136384975568594941976336602514382577542682040310802747104303374195424589228654393759281980770371515764567146122047388166500842778606564085304091666815167019750462425436223686217523704608280481625207486114101466470332994976852071098236739732600518589805683742767458097157503405781498171457812766772129614729128475209951596579840930709510612549877408570389477623377375283578201468421965432326401161296224941494174875343703257108281158192297929785352614852697669294819427719778068916149386836368083204739375621144025593179265536390738366495138038925351035058031656444462649389979039729964157751803416865804535752470279994936758765837219009139646981984606550663559331198221419169912263576735376992783106385274270149919690905405584692733456886265447211417372945037541218065338852998311707131739556279053553210101520862751605053903680144051519698967036732871848022376301565569908603038382159467897259329084882482158225708931673368021123948471724315487393747799696046879748199077430519587716208506710343108159815122861195422637455482360581077384382538602021722589434968435189065823561109211724800111591705199619464708287881476802511083433718389283976260493308145605113456910680517690607324181062618546321032277417755880911832514232544207855396588479774549316050308236264287888312278048111931901076230158072827956556681568577584289967367235317081277491670271028850971198247546298425518537252851353695633943374166720847600820414038701980729488199999497913361768811733162292930773443198428159022032857563482294289188717917174824401531359054818700858528441202629727053653250541784567216824746292177026955968167799413685472613746418939839122931079640973344458961605156048292663022647270870821839486452923658495838180732038507924496223590108565701304161245727049646586226862139107918648919682111164540646584827867875332925603971665633808446950389384557575974688335613803785032433510167388248685946016368230927188269838089638818384515773268868466847638597556722718207696743608414371201557000515981742981224531017708093961549229995001525789998784550228884277209487115923319716034948754328963130623308968207527573681814106739695472317901573923391911435503330528214892528743998654313139489192401430398124732320887422234121194723288563078377652974846611036918992789122531274568258494876256133383795332274793219662074373220876714227082600678104535610214984644224745939643918945034832246376484775272411593266317887929801621174596290076212788664093433112063795228062067135763686984770585504802632145362927222854474569084465737147413164598597198188491654933511209604237432889954056468743495501250242534309911361662168540424518871633148896386839127666261136366138497981144497427426816254239529958966114550328332562821137271852064590097199400279650412010917159517709387190772775262574616310905138130586129630354838904851735655676740449315017519708860311597160674196635517272391454953070052497684967310924731104035606792686998907154186749695904036425136978210578984599375815364016215301880373232536265821054921134443685643025658899453831997381940252607988089001671487880079092287657549612401579394483219412354178408807528774317929459475739449106257761173457379582070211356378758031406542913054069883708556126537812852965114726139586383999865429506211658884846302295662509347501859290712790116888104862959073623922809640045318625320942432029939148149789005436442196630918258833349330815742709287605245950041875441616659634181061787167266662253765654765308319125523318974034601509042453151836597662300346333489798903300742751993668199940154682234726605488767903194824927994326738359582021412838145905982149289891808182449465653429228928917646247156546456304144556769831566634212068384243960475728359736727135143426402535782534708484773745764719449756186259409220261996066957870372539463963680626073542366265252498813564842478404872706123164313582024158587523763185764571865243892803471003673109942215345601859240533409291265451316344761279511253818553628655240726344857095846361138603386468219943389814388058743468629969764658742885923682940287384395466576772134481445927591338616606860537833372934013211053618219745230941450720595959820088430272952329032410513439249498688563774504035591296623740041765531324473650702606778276330959010936430087252750874304883787969511798247341673722553650071308380639593823420671248366868520094917882299473831125802414400292998155478582391976287102566362592063000607594169563416150403900456293614487827644064076631864945501629436444881224649619088278928827419726049452531726063790730048947149044592559612963433466681588844927575700008593042690203847256593785416225380812503901936100280360312762588560394309506215992814823265807572726997686676516586101762139013372325843952210879528743943509900621122254289670722640297268064917226306736951260059871544841245232602948686554233797944815634288814962116468543688494444319446797790786988508562881499564267447298434203482788321795470690901930703741166695311075206279202816236090942673837175282064850812395349232358803876384755792612464530067164912672444855954220949289770137045447317020952056710895387219661323440406313437560139127650542794578883953646401535532185201299561952359525212050713114434118064403484011888111167594175016363140296996811090453154753995978068988859472700024828032751536026657459169161631427891724687203648751120405269240950478946462902078014918709987501562857914890586470753276177092329938080668137023973614210461497407735937912028553593189712272357173467888905397449478885287415175483174637779808220417816010754662762554044524428830899535555873162510432888230310300889212380928659797621441480521618787015063932564844041039732652842551996288612675386676130650478157463726071838504308218666359966867948534847051281326349742982400872238002087610245924262927459187914370659689018180144578024365790304463143341903221676918597763675784803830874384233991152144143624019025487584483917562250952325665866941450292586121161921993249118674018050548558928876302695585322661247780630758416862282498072683186618466779074389444586359343367821904973558207394070697787378653725522026823523670404760270614432106964066121293931598689017399469871191020763349605016834510706570562641643744756182675403620402725835048742548410275095818467319036805407248488234039457518637027738476791706743538253717637758627502983490780375365044309235047754548199049426712720398807415889579988454367831155532710531038728397681886227779244691676610152853893265542760803159957919867900999407523383572416946309963390638414779967034504999536257425193933447512155594131091528600128975409904580010890207292327547748177979167985150414278843829394505667752985704982215272616230567856976916705418272531579299059223837024997119975595383904854288412986293316386814087138878467208579029587267732170271345477506557418869063147640000006074642129572055842182147386950329672681959983543615386089614355437179966266885154629771861324776615658173103646798879553930013982727100234216617001183028765399441776099940597839903952876740178698520911792266285561164671858307286366070584285385184128827647402720016236247613848225513182038908986754973493144737275966303435308633143192316164120000554836907093253047910966015692983062713920790598541736228907796550510647467911253795866867974075352065247808349932744609154574157438300907603836602641590850750514953777200926900045617935565523453390247699909179057509933534409538531533125347273758122349874511069914058519557891807687368290767473272447153172021602304464449504406694721666452763639141401146158351062150154365494785379034179196245925569539136747011099480097309777862560200477757803721026928491246252951480460393268937558535073979914399876268372547330742788860474903418802375722021527861753862921829998748143915172001288946785480443845583184875025008145976738932798596504365620076367525369123878573319066919484269797221616775274668608626892080928115604631254394355140149362645169913099846872827467897962302798191495529375123139381424768372425714337276102944361981368929612421814518220732206932167902328002909789206007113521648090886090019494072495075966429088512075975884192831806549216188201677757673118671697308523785124462004712646364983763119544098533904485395567162669396591723498741445954482643878439585745739756084059561742669946697569304022010998086029004310238681586988130115090176265216293239561624598333723674688435215761773106945792970940261182950085056902578584314182082888141732635304015040755142627953027989208759136601324629796100020169776044413890951893855033240265585569356095932775950149822521025279633833364946791028834112701333090588657071867314963161843957251590973291849709101957858857101812372779450639013204684346042560697076087365078574273220469627637475654408317538163637065140331502629681481046085721621084951650206991683990016646017634910465230113813501896254905802881020899517345877070416207182713505985247354095817748030886235877127603280863076955522672827797289131714600296499504141329680794960918793730588811824352569924769854109882324184414830256648941990822297221825152827653984869197148163898245463508982741086821510968420814898640722068324303588817722484196072200197297072433301542224942549111343658037497909364797552432675808625300062392388060516447347290342674274395536107056765376367630456870871665103042287477042399497505977060095089493840820968698361556387678693761041470821919440911170222444197746716983869154948497271338624248784461442287050711862599127718999548480496332836552214656161323225463568870232552774940104175619664693235891705695733289238458051809783798195395541576021240612306886099371912656748713063414223334697080142898725464129195540758175318136080707881192253832755341566274283344278066524098660816942752406908729913390012484660013375650111789409609428649246182909099662122541382335909902551395219741341997324586572355020127737572960431418792777051899138442966854375804394684037744193657419427288489784941141729765599273839874865798465819215939438878856259621105328008780978718863104587707857097647043991812408851742042162369888874191092010397360866316762980454488056156833124649187022628014666937812000334010850614685979083468647406952040503228057224979753753932223458736867852992925072205150206022302033153887920764096208016688642526234264184299248109839086758851020047620842611665727941793383965038041035506456015159932457147951377354778281862286615305639086123087995566264946130893789874801634424202719522490063340665907209585502804602544709059084823192326877283947839600601969315500766199920661366436741602742212654319056871748683974388290835627299932195076985738236924811197938439726891292503051335840286621300979150290319600264376754528575336562959191929871906746506589196357274865407488177753501871908353032284420654653951386800050377231270418119573658655413986440814954021782916377553740986419122465687096894623317141215115551682896047990841144744034195617385976551524472518584791831012781606777152740752213382446496581959403701280270843310362570305311402123748116011222420683477260463445385852517497543021718440884763145417270230939388424781065465625042361477909175604035445475586501205237958438577611427936762788863787037031963486635319459707558709683192287347782908665429921587615244845762462900340068737854386489909935131928324433796667635592798462843560485475844237823602939461458844622556605460166901129184918254756421265084080740814480485039922780330743171045142101689134242243778460714289031269447197833541375057512168836419038252545553628326609409736621609925982344945357677114312471324913796395898247230624647827744482644655827693855422981643929616621925405123795259471873994721517745611089210809748919217706548952551411579805092683819510135583633217209338313699375337090044395313950758620174127690235584989219958383048064312162256891354758438341932445627940691571792193612414054750717413976707803900064188335349787836717814730346546273726718397999025822632269234823894171625829057167713453932739847368344713487855845427289458444553081698963500761034585243194900887426837203654160773350685690026835107638566988516029076873681370815249106505389208118483201889015970771563093382727983157932463603258338663068970765358481756804731925340772297433658954675804927862167595699409067341031538865239846974351960585231840220060955551420865687564707104841072333769106689584383610770103957620354649900859511833224261219611285003044330613329420549437126330443523437708644783643170903118866017741811685838546011792344802114716819986339045670714228906437064929783679584200010395623461913765676256094207171895015076851329983377715510489547833482151783536652451275808762565979045713273014946580542215963659476318208929185855134377153661332683933328293832732466347872563051254427786317443403738523394422980892284365915436535487504722674182302518395306828274547864644124193781385043067266664634445001291197988968027800741377569564801215369603862431772579293466116249638816745700699663952877347961418155247513001128898756672626752782415445950240520801707831740540946779022660125143521778411751707325390331178249032997408922166445855025575024744175541996285286352346969296630706308126722491215406263667632003507659552557325868125059378322867514991932877902033822547946892021118423989408499706035726689252622630595736709173575473607208574743794441528456610182515528831628822144797886289783075673439420458149746695105549850659135867542826599834664888966169340438824081952076934320746609549808473686207342543774162638540111941860005382449421020956291815627427953601450537740197010392997841162183583925282018439797581958840091997780973859975136832263533226045065496235741909639544604567413907145263102744374283112047028909333183198636264706184893660665611917283299074518521188556146663689988367904385280251877005451239822216636288407391953855865502823804407099030101311615000656297452980490043855912152032474728500793245104694200855175202251618121534637009975499215629699064469844263117151748032002902092201640847362252649049431201592409382730702179095393283315087175582527661049764421128701203801676527579546496655040592107477765757238053939677714844469682142309693604742806777889651970881934667764477010537579051620350232761533033545415573296099425377999875506561954995965409988748337255757512107905070671094344765141995401300162127773340734576231042006702618163886716006715357307181516787458652058193978025461596201159722261872609160329229194279198674850020173970026679175308362801607055443494775312383045522431686716668180047163711999657783855863307664421036769967522165831476896250255588989336458788073424630979133732261432159515073462254341644721726035937348420468199860103755934197142151933692174944260941536994834275330922230910128384757874548537466591791611508905278801224409522260781783016710325073782750854322204334143858066833303694570481242868542471025632025352637815088030279080990383023518242107528383004701431965638583718334347665107353547790983458674962554474119631771037191660137895421231982327080683347955903500768892112924260487287183977673326062506351342459125896654826544059944212536439131900715977661920106699577038208249183449117725702193162990782287162070292597391717482100334667557064124232007716113357261444019364902036861783634590122890099825441317730804196398700328311615189406356645989820885353406257030856254474902919959236872729795876837953963651824942867764597432205682536346690637058837327597757328699699729564304343887445138941831788332213692080494765135488978035304905774056049121932068598260522560237211125331599044947136182856340026065237143607153158530192926672682760032444236460000241093966939449885862537102211922721405484231555339497349477494706286654897640177145299703106481912653801678099788772168599397309210053391510787772758266344441615147294345008830114086502540910491877308912548963928041258379798106347373463001654619127067523323855907647634220594506176944044049470477340850844083298359598525468034826086877104020559334811645810045919201733892085045907645760745594768032139221544851348405102853599377362847994764744326838719721892927424010752152742013093126269667311717620006089140041686252661926740347537943185650549540129128584241162595850867768211990111458868151530260797245075649698709653718689016811677758962502032984103517790996903699734745639222076030363928893557532584717971387059577966227886708875255759931740714312288785259704978026300847532945245498971570604366189520143067156509894097521511775161255472978622750708200745138343750896320995236048724541327525049776232321890390142829090885955249839039678326709818492531080949836938130637855752689723484041336785174347453946029145925522798637237164949090273864675004285779360426320404614626338452122026773995303479118176758582547670282587560708329200057571964296935346965726914486188330040242073383578945446273342291436096799892195591491709789682394486560691074948569787685873817741124255732767816982483650271327918338088564691574358123258217842279905353230131109379413704186418516235174889804813040231114977769320340807083406081534488219647201541060489043602394162055823196189524922691004063546532442912307014450314559389627175270839351257250270308757675581418502096431225870219980836361547118655153614125634691847884736105581183559301356899564043054136822687963810663931373293666469342186991757740423203887296882152731210026428272791429397791560706717170452629005841727169870547214074240393750622803169193118248427441028957264237592727845139548958909319697625258756815443033292284648854144550842522545166412822862692044747946178386637340563728580626458217624360520868558380832325428888734796576928815838863239259746223358978426505304248530848437549185827216527137408854805046171452496648312306393227051674568859395539061410929804465026607338439975731514079235137284495402119297050004448200585442549295376694539321830518332056590028079579687394316707069648629872750222362999597910412802843282043629978474069655870776047951416015083835820313700714921761209130511200531829190494164066278125026358616350060658901931955452372081498455654420728768872861182485114173653514023980608258745272174997975910640888742331941905564937335287713362139742998523931011857747830011417008289298618386686611892126355357954804188355158788022135493045660233836495013183943168250032950704925864806484356682093687400973568524354808988719708607594633628792197679648065267565293141632413004272409092555315565088313517399089461005993857323985686415322066961199707831937495636936013829864482669749939130161670097758332694622032140287417794561157691589708150944619960168788348313496160200892917856136885150135267065280443640357082548786389187581621909928036061533548641670768591926332753450095677866535562614907452196410161736394836856585331923275226907687807805026521100873048592103731705715630176939518736691450997690829368429272312864740080066030452560802431062497105418669275738542725628801943482028372404181430148927028181666019898878298243042087486006132379305144747326162533822524750380165001534728782071284921627194700752514321738015496136380396609015345356610059364889145606654945785657056436852999722195554042095437368331299865100574327209350173265729033573971783216612557184145478194865723697416446693155308905265747745709510151532856030864048055596052934426450860625694985806713443215361708753055104932927146148384921410059812297581541138308276093694936300686107156420413334139661628197056511911355926423594475518996887783573278626263096890490775293841783448963095092069042507690977616330063452324750954029421133158093176150601984606700773986060252269928289695233398689587961203261327668104053580846575240844893115039931507961231631323135217917555690847827956072175306874024672612995503471209512807072353752153239240062053482140295297701742482722064776872463692257491486220104049367543013809591276709855511887266575146517760123127039912586389123464473839884217759295599529858907423256685387352332751552004853303073758025759423606748723923436737736610903167973915200474250085967382544443251985890719637919837611696517465708010274566173516361389405432621357277260354069906581930883320478765265781277694259373816662725473664790260951547708893821489547001999739307317902300664615003567756827171049178524655258987985595223290235104072884144133656946723988257797214640328505318952063419389251581524051392327728554305064081929243193530139917121604328030415625592097589648515563011412128064223241486526488348896762134129775099291927310132069740125093369589566179945267783699831472364055249295557360900235494375336675885746520469306293624867572057237425575905078875954441258826756239075182786188438741017026316932042294674809139306300985140705895348530536408711143537157704265667450230455780447827798437852709581719036226099696258862931369938695065976259367743321264615589639472653384142274709122590479496380788446930127889328720752001913573898886843184509230881614518550123702856993298229268898732783213306349128954314693837452141396501144840724067371822638660183058905294618471664042373309995912140638883545753111990825280796017189100448740703151367395820293671725581289138936694593037043849217383204107163630292173879923285180978503432796534626305894073051079487466391976296701031208517015720823823324275838802732329517915973181385218163091255373844207438748466272029401822759655227640833210789845035233083095387400271587166859419101721772823944038838555733307383587627596974349257642393751807008017803247837693282364315904199464365140979308757680007037010100023776795206416246052992492388988286351527424930437999278859269593084412489671347885065072845296303597255517237657737401798778239941970757787617995466758343406416244150385575707112265437920882719315682080938111145052060282441357036345511760111662247925984688760665336923936912567224785149327481373906803998867104560847545631360536454587328476573757807544308430803624846538412931257885368581794245806953269876007447803630020522580931247844046483692558456908354661692500033406652725456798264651199607376174650267601542207575133389236056796653731626498735080137657208273651048754682527502218595853485828117277187452475934898202426596846403452769831355550197679863695060671210541744465174765957897455575568965317992304550589081120126953641299381325289690329352562870565705314602277844526323414100441155456041077935843393543650140544981524461065007139291262236311766756400381500341739837813108298078206380680277033910122850495948071844933577168624892831914826212601819287868355561378519521371922130330572687560484762667410601044101529766474952985236594920856367671391898481683376771239251511082754613231325576845088893604309817958537255204467339598325035193003954095567360951010448706846666740388195789468043790462100442339805621414985507310090441349463839474003296963889283827635183031372883737967739732407473207476260154685640631536227887066708138872052741990868739638476827149647821599039759452430321480082059420147519494675273195963714417241206940654939722713338148095522461707128560471963437209658851538220396018063992426137941764495152413058236532596824022845766215811476609545519357324622907277104806296143322605182578181365171470430265251011730721192176316090558447099949729881481046680904104932013687414439539879522162809599968713116489463271409240322113571680819134675243866316102573124243586705257870478915666917252441927088835017642620537460849178310986897463693580090529226841254790591126486531252390253454215020120214464725917523452873663193772022182436593965627879942486885105684307600561737554823586269576465986972857140160563146596138736435910239175551841456605322065388393600720827800518447144830650839289347413414632443363956751399905043675135657770506334964419054003295955862612178899896645291902532098556254230066042416305903367104275632761085031257772093509672378492911852196376174480918549898338114246738948431266957598017076460012962858117682049140292280646272717763211453908269665933254498947672288732691938070366216350346707102931854854645807068088294724476719348895816562980110235353258717477284567622353787467239547606187761626683677757667692866834979778764848869120226654782214536132029162773575224614991985582635768188139875709172401821367033981352410070896798465618303539374536838052435006065939261575251085988189569360914229970420239966067314270179948630352375737954330417449726750280520533010222471792477104332212759717860315089204973411217662005115666730525305330414515797216946668830854869104747579025961982394191481935026706674594406849908481685200882157261517806490818971329784859532847287610353633535750324558691603637800039789924209950309827670469908795309975440215985604988136166122439658461295303957681895185384507686266827835876402580268388403247219142283370819912147033972108163586973794725316186095585977200810694089117516530700151541823171182763735082140910077579630556643314691058630309519794060876292179092827444660388883885677969947674134601447380581008841452804960158049854956365472900660565613648060144594846405809227719494631146119128594821344744670921991304170163728053304304262446915449672495491227679071518969829515273642977727600171527862271438770893264395813468603351004995143380502503994296904681717929281132148501018207178010315365604606513362448470189519381023760547801076994405408253382571777178371192336530115468064765209794026569826681914715462870069152874788098888311561313072611427839697278925824569740195918847810086775727296683136245970484309714907124637971343422227527116995006795205753747751505399797300082238776242576772061598935766925736028125989153783504786923903510377357040788378706930333142297214632220593156196209123883485226578870439737962839823353322376862891283463328398485679964181796989811682489691539511807909879194648441963616635463283405330765601574838314382584069274209163070956651684303238419279649144142540083887496604361963236203969798384974163001270534313502055437699357561341912763882269109424327403883298645004421223653039098343436058880420182456262037246163562227714699307020140662328222702860518597839225821341882823667338755808038375051350522278997261875121162788051612705661836982988611664578264953512119772359644970046320171821425473669396537335181640852521657974837426282525173583913057233617335099672255651905128179167105168765742752839219926628302188220975108898004324766556987562957385269701345801825424738900598592136597220874505777302929462723859531938369993142005848991582437236944076022665732181990243451877112769711489860120017218078155253753661896041860622118260089054493743229159083739014329037317047880559357797859377890846350068143282894078445438017386754839440913899953052209931202582957230190514727935590123658264879366517769534729095228426240743727240890953737578688307602543919220000205835378723861906029604278901923607159091977909614620210696011861437684969648700397941750991244238276242674143478773088681765305059160094779436886083684431788476269809302694112344386297917043627439312775778653689440180514785348686874410267620611249185655591336853488633692652776460116989618887816207570131683770605973798522853630855806476558722608129354704415116347245553499105598620563006129731435059957388886765666773520677054222316187182651277439184842146552206051154449997359933125236943212497380543784659593060318605106385200315129188292929913641474823350506881104547173965552695590649946937167998695724033125757005352270177448566640994043731012987224468293588947664829608510299942895086363024384704983619334458766002509754410577777343259426179875484686254978033110624573752988028879787155095216778324001515279438454056396958347656896172220201164359636039258763735308301524210802917570448606004816115951321015668595030195330793971630687939375639491031540952545145494272676342997188143040394130643051936439937720980254855850486318041286805654209413001562120075228082945189679094400312269489161111297930149403941766524430481238264113532250411703384558104402409141441387453319598820782079677073777336173222500223953192453107888325219780847480266128922284287646385776760823169973311048057582581217631004569776142009760984116381967276139724594201420620291778276560432991679107085470360780685774519437325142732891190826005034063553459105998105874186840804355972621756918904241160156418248583796805820094921723438773722610158922993436680565099141736505129834980715410574861007512571739992792121918170171972622681474038994590195085086290754685794832215552876497062232050459048743264215105767771290393003308611780107641557362864452712272023238652839222662751272353890084638270500636154951728206982025981551951498631217911477793202241325264571432920648284711208106492594173442045266200158793528610319529968446305446654461799010496953388067892301218129440771332362248195921445311682448876916342269749024993918039943179080830619320121066625760395295710507378115353717322548592744371505395677177776967823448537745250497532037506962908868790228164638723924526973214955053928184789597108091949269705142385098075974741710875557466628482077476509657875318152476549917830714359514935551993222947374203232187506843619232176542508165908593915204708238108381753000235771075561160741406813062640147539166917513714476732730342639574459999153700947869044118416794484593638213508993563215517419925086544278162257959820254249197189309383821309251422059045661178703953399716426930032099984432011553926448724308273206858542441155046771769178316120756645847920357359769794578462999970768721659379490373928208312567011521508183737312370980823799548810714816850872433240765303189833470605923681071137431590295188910640774122190702511059247637006025292303455574206307622672980763271190030636351103474856651720170261607612776135824583101072727599796080122720129039071244640376416666209338898266548707008839704600981543475931754929471452120837277793952755435015526405057014647007511644320592455965913126107512419464695323665014682593633385517079129038263133095625516441908905957820977561860398750397943642904296854625925905781869806660283233203276867094399718004561541990447762925059196226403140553172683020298620251438779504425257315022486596168210049351127830892367992508782555111706696698574868887218310102328232936776779734208972422630843004592621360711443565050775723812793347174863661396248127715074758977047848605955235867655998197023940453919553272747210079720976900435356071454373559136935293062124622175879127878280471123667018637219365653267093371569100225725810044962717910977681211241598362420553449946692768997233699456614567680107342248465919899110685905359463403938279312116544360351793796988367376812542473296743914475127331532424475340834219576503887184263400611386981074112321149393066461588173824625238286322294740563535998347430315248373220163080719982929937742631271714189051159544868603677290822157465417611698376916858994379595972104227849990517236263355681098600833278258829619961558409964442236619740419108510982979741171402140887195271431711793866874964686882230189421721054694462697177508005787571310483197188227805445208762205922354406273594613651974067662462672427932520030562435156067670414341561268739634581865772708612231314180390286596402835854464773356008757865022478839950875410301441269685268154783750986171408529049317298579606621264537559600189266544492390312207359612976052274693132376864702886866837499964618058938369786395756630603319529108960187860080017055467427775246056321390981092790848375961067126474451018843675737534418182461125641711770115995843561230804370664870232115140826721835686289928898193413406307829509482662090859546442329113075639818040723414697265098264617075538015784578421747820578956087846399045044920846817516818274608636493633880610810101112420416753087039214529612534688711886652951279692881564546637806734806949026563009081899675330057511274981940113706090135552502343002686740930639035538245274431634023795553997255536689263285456247620657199795222301352172428843836609015287180563944504392995307630492167291353119837737986627910820200020237936426758131636312611065106353615328540510885562429334041758382622596518756917472114012242977565612264905489989455034729416380683149661785716841158565092646838606198682014390321253719125591838393207038017778956138826878203131099495172537755754192447876619591036495586044568823751852687945950400507062954583513745594413020230517817653469632916015558046460246726825893358487824792389145561347414402122866451984553331205276266407063989753764501813685246213873570856973840618686870643022672400805498870481793664100221574013757900442482104485290747460522368028078375034448706449912288492508296873235199597509595873134737136662536154640936753852522608469430057028886655884917745579334683854080668770671971449931366067065831094334260191554043880215521006737770304177525290438417757828041593655214225542485549661153597125779373571797056590497383623810283123446718309642249711801596894239391187277027078384961080941662056435458750791527119625526708062867544481484477340787247583933557417221716132613495350088136181433061005018211055457941597242000336980674477427662897428871452514035665564159028794875825497548913449227223395180518165247878196651835369032782948364500163548164455314303449531690708871848962109754242138452943071218162877740747538331977097327490410886259275379999599001227108760056408330763398464530133807909251075520925868560991727620192968855434823941269254188491344428487986422134494440727131147746445839842230808869451806234320569089017376768119943007540482539773892312739259568182780164883504643170646171050731141770875116357724865377790255583837921034314891384471595652161142605835568048994996332594392370951134555838045031766107221367721460333284290338194671983286036429771493023629912232284715129123017510725483735221601409821427897416592312920954005607176992434370447248955045477147797129457064002708129618152687543535708077418941708365016899087452147970388540133083313128573653658944288771234508169229514805561824609535516652984648274030148795220368044392471088093512666906003804713890296405870507508849010616301900454199740056876471507828492549148502099874576786417478855696590092854503037751690072985701369991822003873803040299492997673062492669249860738822829722556821107508549144108309419387487661773351618214248860582002439034183922709201187017871128539502171733456481808879305842539053221899108842010517581535985658708439596575392737168519638709751371140070544990252412802315132235717073361322283071777305338861082306173275656489638248958246563714971193058067702823878011114436836860678891621395611405067857865107483783867682413986508055975043230957721027176028410207509209144667344552381257760640585534818867019335118953267658565191569321111559592386563137029611995121996304498130932169245352234037257567034430389917161459607358227527282011841907784210981171730437789395830303087728632871359919948491904680076987273640808050459917020142268154452862477068994631283290433694235859854529479613021467497926048314439365521707862991912994002725904741383409775706914121422412032990787040118249938029382276862370443326091672672571859881475814816775516381757905440506113708361734059897158823429407896966969488933763242171189786977908824297079237910890326321870603508281338370916603970166319285812831838601047230902306975719459708610365310578688603441500507614693572184034252341173420230337966491611514428147635761119895076491251229553419436955126280983928372813228704277796044631952947323476120250553323065830969707775847366484326052503056581272108353156975448380682130754617074337211233132784201704816029667412708815981446979084374356822294622372553501855758887356256039509420452779078844146105124355426074392139010286017468740621299913321743414429197334448168387228494616835097256475096364265138773107069655996761144902844328375680964102280489892593742810934861679422590948932352317022699424335733745925304526632020430322342240416841827107361227632562657983066803036465763105722051678285236219183755942590590094720835053081564696804359166863919960425610984332614613821483327353277857207881261115254840734573114744401130850678567499668963221747416033218175566914486748268815274087990188941559117644543548452942773198355180734009403283824244195062032478760484798235200145811214641135830444785233617100038571031430259426994885029268085939139823040338989800767989032758578916731389472881841823900911797721737432983504213283396336705587423314046129070232095440771577481387610162557207764998491161054367368979870282191152832088544053040796937336286559672694146187752374599890693462740687856980808567150035399526941781504975059455779726690226676559614275307222085186062456922646575940766233155898117959599962420639040471852712144800060151992701709055027827704468307747604216600676369826833612719448817836373599881740034619508446481539609429490709069455941559682114257550352404058809836160607616558749630370483968214587576130097480672288404349882030505359436042400453002835678133186477350914954953077014558056798538506683339978673409745505210643092436337983089602501374724408122385974616870569211476828311771174941397909950631658494522659864248916504069790064132478525614887393551993588532999866671642710680572540687447221856140914450322378494004756783001039124115714758670093472205169318943563060147323278835225467641739031811810371786485166752171814743473071524037976130026999726459103906508528936722055670754131616858618429542812427315783194655976824150771736152735336673016576354505856572241463622526256650763059788547293778986396686761196962007004378205816505490018995051095647549665895955368634426841497249753058538237296366846482510311275060726777961417628604782991305981149958831479259708588616024413607378546804706627399837876724633940349813169916252318176694801625653659725724575239284347186134916408824971898694256199274862818090898429429149788750686613987307322024333363964273186130563078511904792578168662376691598312001507317877434743288463390551717221818657441089526966405162312296927260871289862710688359976413643211930785377037424781631300492659792844920657462164226242031646840026608391620568507394971592809632694793918696604680842231624343288634346420956058609861134999386157801324862017514246314052464083941124451759025433057606388745353949011682067346913096270744198980795778900958078892357059356322460340180560718447001876652147270071199610130910199442411051968805120134696090075806267361694317757821997382444141192493077161489972860646412473156766437793968977336874080110220304863778753380163756233128339183002063472944756503925995097884283068654227806783528095102678749605482492796985857360591428889723423816353397033464157065056852062357969306159780484051434786057912341880379624814954766767815114412980088166883260540064317256687377198064157443941118735773484275898717658203379425095534142730291857376709250318810786560077902380870100170770870567652271545393718528033521261897783217731336402186825049042325674014022155144717860527787767632136057517718142234871521617212639466479796287008910771630676232001983798842799758581751364306723770542646726488830165841971481347650292020521681071222044547917902974288574460526355342246568958934807276679018548687429541045960447800860497328109686058410821007825025381798091852475793347660935843364262657996959372333265992476691522822270727410788318847863250927728108292160730566865929716654978100014798029758527084410075151451453773752536158537402024921521908877971251804553548551235744728514007663265317357476740055970693252036707632938538532519758026231296079066576863148981583658512183310810667275907649829825483488952339801664725692151490817826846121196001555148944705834147568772452217508828100814237420161448650998532291512567346571113780215765691280283880152809944077543290497673289759029106638741555697214912746943964546891754474606125535230833816663259991176060326155044712433817867678647354538899287449142982029841034952034226748823223951130201466668647115425549516341059694938278824639867304695145341140123965158975115866847772053761213971351770894591570658141638971144819756134390867149690839302629749188067326667612685760958063042262984459712686461893256568281255157619503317177377557218318076072561158572573887869780951554241735787489768671301897758344512904595709910735973175293487513128081185846738747621676807613817356795430739214081347810338747746126985591593011263022263960514240637638094313200825539359198348597269106687715035539830351370061475080497620605727103757838090094470884246350913958904854801245464419111896197554885506680503569554541621874777784307031744025443402717771960878837861802013834908299572859733456994175397525301531564461126324724518873968061483631210622936243398852413177762776994966556695668361123851216423052222531526065761253209505801360878091733542532689074831283965762976877842918596054582332583346070479072179797689428622314358621284719497113681032369921035988376631221154899888572846546202165815208672213852535009446795117341738975917169708448180687688163840649328002099274822366292746688261987122842675634128708702237821824174680122770349007151511911199438680014128240978786265497263235687386612713573039638206648173932366566878241332345864283730165195808391942441796511277763904926886252813160532483140871769853486471221824639435106150002150301969860693735513132551537209958332186231813398620865922383478308848909483776234089108359890198039283423748367096761984240000178811478498374408647257159397533119736110075674805588992241078172658648329348686940097801479349560442443427219790366498883276134980017579647223127159582799427367201229980713009991673351222542420533683992356242286056608271327204103391138056212965056701284492322094894654585623127639490548761212905904329273134836365474901588043572122362767802156278922346517861141720172700186312455338516543235127036339227271251353802420829083672014385962367329477167672486407708988825576959847167995167234483228855278782780664482285093877605899412071931933711060287018883930240286460374024099494755396023839082002346726625052460910801281446797249901294407050986168898919934659420670281752541896994173398461063537332819711074669400621993301780282012799468183994514798063553487168023659554251576724009209143010557871622271375463031656033830211185285686662533992722795144448785985638258124983256658947842474572417198845792306722407222537847209352260768483776476011607641216764786814588738702866857236569783359541808930898762510791269882462056102142782008684668635717322291375946679475175868554287123109896902253519804414195012418045125545331815973256664446248411291436233980563097709283259677884649738184931546000746824064490264549102961389880870420234486802583314884352137257274535560301775518629432769961851130759699366971144649067128680868737382836647333810303587509952948568570731859181400830014949800095506805956458074139447315080414033797662416863834383554848721991247314326378589025873760897790260584173999897881606733997909633558452261360574919297823557614084379812634265494423636706814601477851690553189837342694590592643670030077556546528642632449517447885637448077520582816399363289229883066847257100189354341810737226348628824722329301543359310444885811617373247232353120947788845171827954291089934919124816425009700057973638324736822352604069913961237878779629934137478621975710013596184757096735551503300373528076271844294529785059631450116255389874869806940834757980881714678358970795693727603946026345714757813205756763302827055411248407494303706194124189292414369397615960727567251324573601933075112313309795313733804503370674933479282578430774005556423812513753633411864265379007519736703958574374902641718936108612360810274874490105917841105761262717958563577112173666205678330424001121675934597146463473520285782459278991921717844832156279453369849412268602126894176755834993893735079612566847541685478410969676857316529545537759824570454588772469379952682736845568805299149649219650292178992284623283686019421818675764455449074822297439330753387111737113017651195979146161502474717647758650673647624246285640785712715429251188478828503646946749281933963217773933049301792387583393598153367598039124329540622112377371699373936806645371152185048836348820313060379283590418776036528187125085573427997041465186697450615336956806642960161010786897296946357684115929705202484326830858624301621053543124196935292078557890407949695277351089481868754800881598995874022252986923476253753241774752105296645081222879232882463952608618075657141821095434254327814503286303658636501218988673449944094380369949117668155171690929207574463352279551105401249646913516996996627288289435462904557798358245000310426468786997841999069235394724363038142670729451926220292606058510012891051880170258320362063073950369531387806231423822277687028422359014793438524574738145507267031186132193433202118550808835076919331656448920853053342590002419239225041048414827320051227479394766584847914985332122808598568789784058873368517076124406820796531907161303704314780478512411677855382337949268727196350504561083495774545988462684349365497398409033685325400081724727906660039381586824109085144832185779296666981320309628410954198268497298487405532944621086945724737084138942738118234454919108888909820430879663018412849676035421569428108449588644354962318732523586597005945269427284410519272345732009487498733353343760563211142793140871588511445434271652803152345810090532140519271048266684289075788815358565223907284003065257829053761543780595918859809222023272628787655743336445841127827128118178833816604349748494635012069564530621819896631658882815439466089175283904310826364257991835472866581355379157479224911910375695240356046600574071047797745614746880390353199781837749891850928092080407737183439020947162542316538868177459819364526150735505822947222731561650428861600956582617470704959918660187528597661722603182435433560920504892331166858528942342571300056933717393249607368026517974372251068548031170236876405205761599026175112475023064765078118951662392304604964454956036372029654680776704330013894860833474545186235609816776456399944302753896447628458704726800532999693951422297109490581159472952599709343961598677883886999575444579232480539412357280741091378588346245072786165352295227718126657040233983211716383108694490627228459517971052189280851555819551526594125799908016519837862331009023247876027948357193333906931933665880130226693973340189593242922550111376968939794608238648130407737327640922480815766575571027565536845511457692937530833262510342595164012366764210798153060401367408973932723423856259103588515511702148795350436399357146705693772210124605197799010041466170098972726284132899320255153346866645963024477266085060386926616480783934228416220161866450943542046740029341841999577463259893761263448810280158056900700063842412673749664138221256301914682429780923071194576096628333255579868696403561913376212238791230316202380012196642013880340346050584722090095020111985847485814296994042659879026484818931434892324851163421167889620062176059278848076649477616475336194078372679209832631843496247219115848950324122759408482778790671844332139470902454033786889392223231052486040827675409149855194268470294871006575321778455364251296411215924898392115411201826680007948985702808088676528517976893338692132678913708574277300384514576181273598325408383402886576820275819534634564179636572562271354835843638418933366846453971640921016774941474472767166142323532498144540362681890726335422270419562775390358553591561407094158752270264445736156024996525342350735277581602848177012120785785876936943752084632107896472949163628924266302795707758631339488920922724194405361282854899484989893510841403921212251171477371042506968164769654557049249388588286778482590892976067789075959269782129904904936865619286246832180284057428536985156433039249281058490970517654307606861008871030634018606826377205087448913603272754490425855188142028128520614827691527196562368638038537526611967112860087435482869843102812957142634784780275155736164932835790930517850749438867319206850366163694037292898371941222258476683895992728917666516825963823495956727719954283042136731330019962076637587100670046894813454254630622269179949854489429814825074310208741948565646847521064771634578729954744084906131122072716723768855117195766228795498880634671715308450438533881299029544272354234802137142711068201113809066081537968944947899476894756135860180530547158072657523609049177619547629960886630613027526588437123758468333688362662613532216230807649777640597269239001542355482709896329176427282439796672538994598166442672327956418906664183926707389113788704090578776582122888072342047927986670997412682216557078466543995990713455789984627962449215589229728347524784371398094780498829791246966263861099520169640147126549240646583628423774306816775742701708909126822013391314499667313220230993020983166605602207069692154344653234500268761553253436474146632308788108975213704941081806242637584354918749495478410350239159730382413581843085705195061786107824920589782799925241141561133840490637350118118363404876376097111329044025517572924191390391919530301315418370756139226949691385580409429957846004512851525161867109033910842310454877011069893994817225133575801550806646761177982721902709817285094143522786165264391311185615206085130323486606829603215723957903206809236477075559048898868244947780827398895905430272105721650536221002900997988000310187285592320068555586388508833764108208224854240939231313404335927903724955153778119513673507287897593419281368101187807339057313654545332161491237886195614843042383168756348462641698096801162285277965091852091477386666181952742584784188271683960417868508561509783078128368800505958169267630431700210418015636262817446710684131505155260988961436129512669039321895901440705395694059628678280775584269036399505911655068497514228885369629719508152492583039920332521616348486538916330661416935475801986885295731663429051931123041564063720875454104245304274238078653899348857964960352354763605959966835811973867286072730478536083810959984369743282333292480182603733727173428984198533626455128711156491654318205248000842404176646468397656163393497696992238292344077671762036210965197187356915510439717142646279261375438181272999199078605128092566940069535383718359714575768571096741638980794249284915259931459530622606200737842614572971453352720895455596602289923376836320757689814744870442881987749269306036873083588196793747372753472972347133976098115137263415813424494134462845683552502433491905317046434591071002368854667018274612990979266515380984049519624074187109802905268807261436619779412467262440624725182266211218129776498764123835631226875845933425590633124878380065016057906747042230913033292283637311594117533235031436912265607702014877882256711199126464346330550247423216201024918018616111121572428005547932666801644640060829809101971634862408401731449880876710476874398670098518733412675993734331246388318514384496596875784471906309793194158588105543147099393593008585629823324564525967266878385580400856787317433187907174195035609231942550661631641832022600356825783087322356666351511224361787266953111901427154114288579761779210450958441125466726257513431932355448676318567771013388909509318925868175458026659437558258124216370174366360168522252824205220825585964741036151226219026057785232782577083695724292769435696008364944251838231154160578926383102620982065604855710016560126410831208303048677894088138611867715277526602798363202935645974343789091100344719638052992567914918736902252708671749325954768065427004429893427196137581264243175770658293829887210934894735731550979818841093781498601145526128748865689668013844349502159731553282909095569965246531258197630519061274908122285835734674662947940619705458611183519372121350760211254127633200794575609993318480885454572346101940824718066826168689659330950890504759935328271454790873181447878982513485316344571398041111215999071748361010925835678225352222092526377240024049015212042609372281017235139450627751996255764543259788010306285792335740618144245763088429819904602996547395485177823820095552727102362257340424363515016007949374626195458497697414243819837230722029763201493093740597041405101760993970071804524792584502479741916781045943272603914022481928880523024440745497568001058135657355138748124059485899845941665578368799703545815620360223486016650848784276819999159451683107009622862557023612654859395107234451174783541610363215233161758930868857027901553412068964613999496150453249016326817527747904112855844781843748523044037457268688589811272382292266472705310822411528129398104160038528459971904983176233472021579363135900288300402747061997939479915203976106061696758749357607942897457306953215429861242989896205042651101225407601833353791297189690968869452508480009679714228736504393543969500069863131218952994986449775238239848258044713275576133370026597875560142843369046169834497061559022816679755661479690175911675506472873759920096703961082141579652443244249676465903826757634122116105096681987173156035141431367714571174316573020240228251249983070952198042432923241484798326385878061186930689068913727144556789368965209624320608491174867744238370899879821647246303185023948180118596448604377950485757253470978034092745701542930202499142292704941445742767204539455206708091469056243671804354454765407705733890858811500954862683313531987532857381417042405123842763402862129844109501200019759973938868773264199292446430193373674030686814493871626214093696460196129250136660209764550047362789455378538467528122939862546449561375200356183486243030405399794470076840164245849029859859012922822853577519445711454165579919449472956737655063111397198542753537321357335522398674585869058243425707397199782027889415002346091677261987117556697280933707011557865937639313751664510681459338193769678100459729576373684713910950128101676653996258311216031632185975711898981080364734482401707674582717027155481872052585307669591197297598866066436285824249651287781295870424520287971131013618149885307242756010633469387088756413883842223680759764853971151800912975448272595080505414449630700075670533492674592143337238377992722249057191521552960149707139374228543063723976812216980039199121232959117126068837762031775088278277487864033458451159158226003280944180031906793344933165444375531392856430283432326515002670985307932515362861517090919911104857485052531792889341068285421686639646375737732808885798844916517767397174024927817401263404678835758515909832573141407250052293123435691979001566010243836818442398250346264026487827355537877084686109636642439569935033717528091422501800010646119135266568650029165065389114892214598745413195181198754134305896937869163785698539531655938223090519639215899508590539010065762661939613812857028987022849236631885493880268242623802888623497755291141302086259605029079793558457187095447118207203763016881286656125825727307723638584076678355896340240946064470201235814954583551976852081385768659215115646225105022131344655582576413722510934825321812497880624563291906629041349039103323953958797030986850396154474865508742436195751454740893945200965748198716911487515881900203059485985653629547980866335071725681562594258284257404032421707851178503454586618330019261299805604943644154593179374967556295233202408714566682255141943203285076096447568816542179415743651015573686435508246774126150968307056738625853944252285022723722346641591142213112595647392336111452346711379096549349132484177665608421491229310984125742481969411283487306304890522226998756605902149451297825094458374880676642732840708373526725127573125843696490828522158224641425335660136187317654854910751680874826413418645817899393101141668647851570981271939313976589774593348306713171489608812320544354613934310162987739667651020094860812794928339749133970835066122415632899395935881199033548125310917914530997079541209631841160290601827598009310935505631479965294869770921650859991010584252842993835780966674455401518528337801392294439936046280213442021474970957541480981650924988201471372259714248501494681013611797789522491951545095643322113723163779442111625823102381462954791331673908448630515340832634212403307214151006632052228337774030034024404519830046752221158452359784412893169221158336544570457814853234551329722562356894633934915141920774666584753400224043301378592886118113722118368942029868214884336109133912860871770112835165535874622249016255981041397564827656781152205804722417057380119448452132481444197060710234028495499068081525019269200110322865362398821878370393354548886309685466445462743246130598945334531285237548721385954077899960755667957597289964982074148261457843464996565033064060496295244234078499295113051473054813405265715915317242189188228955384700073627367299518913976396493357275370339887964745309183202088413234981632473494254272900715529008393251389446593365183746560702131254781022250598714356710353562849032909673294589920340359316699118217824677051957504500008480209783430895069148190906625854199889410187916918905636390077848955808932008550539665854528875027958756673530743404334600577858019907926153704785575335992909961935086809965498964182598645242829497556905061431801565249559153584313639819854887079829274214498028153628307425699272024041981079957543212123464244357483857550098346783021066053850816438103006277968703935558145183616467937055035811595062766237820469950582231667922449486562075056447417919381475593539722013983807351020367163255543446774263872211206404256134907354189759538159328844548065926133228397138844949642541205965290638389631573224198328738119733440905787011956845154808972953632423610129648465934629744801459243279675911426586360794325305971490738887534411323036576043260343290643255151870462484020178906102270318506867979445732607223013516094249647560366640650053469217499956831052902362879595209356940630444917238877318861872620833824067830354367121483238365913191652122538942021319778068982916332254905679601147183253976774053158816534019405301847306704492367903218169696217207921117567177852324115924896724821636390505144472591914695359609171431364202444204426721121687510008612153276441808916431661965391025887557381700707734646408653631569249134318849646845381295087769118822140438057992464359674415269748104558071530872981857389379261273749686414555257866063509784898835321429390754958861224582471370692409880049423312303435641445568509260830817031871157298933026032101418684365815247229564062092215386577197011774885512966689698041308660237399242119399857671825027841711984239363648000977737475783437596543122774821951862388064721834683118362703473060726133099684904686563489140304109273420811924901430980193252733792347523337695611509850054704228539179065670816829549830200948735889449946804885165983985922691320866025486794810661448619534085741364049037296704401739681729248330862996390583576197870650755133899080262284554120601659793803865618593923749860350095196258592636667153609460888743642915475193341822970276473374842376980499888829061812333884721359359036736356812981327908490207225109029872108818490650056225561936416963061418752289675212602280548880481002584378578020478408783430662099450642114557918295501478583207872048730021169049697715550812913459684583429890383506493227802916389372986001683080994060426362561184624985252440407502020911861906228200362596264059673332048171228792106780666247104799202585094184685250606651873449740367842987705531984450486248995682000254032008443647357359188720284268464952853531714360309223251043050802623499836958891376910233063674498309332209827455596345196542493760708904846690166171017782999027764851587675409344512713119605770182661086642118674369154211458123599694367635474159021323309772398426880275345661376240856638576932562896178114168318769986547288016697233235692748577107819790399825783808337142065440288320548175913871700916545644865135394494328410178099215031288377681142214711675716231374428472914026344476931604909038542651064920821438212331985985882457683561497648591414093548054100946143469702648107490789588472626475808240680737452390278455423147282587548064190835580676132932480991197623125213220548718639559929864217200166174623980141595499570334936695349386498229822001792230077520527798483886135340784130163022927893197176210450324759031067616503196503109581919252084519206230324055481360581882754112590202503517529466011267311461645022805946143414242006929946505166455820187632898329039598966185016633258583179703693847966874025857380987258219059225302356569721258167995868399368681862010323938080962069048641449603545894110712938120741058553316648585243178949778931306494217068251907326136351131489277764695314515620266026944615009788170203520580287695758246413022921021296770557304816442560831357614363672602194241288947325206924179703176476482241009186878999262151941586415176079294123293855465457970068090964320564453116781216747230696866616394134057534843033945729761163928096887146566059700703956079644779066492657293966685923208688295385531482432519108924993191383243697807609776208709099425465043019070633499995401998146252101575198717012737750773605376376629604554668218387810713839239534701693692961483830202274759806997405538554650926752683562252868648834177805056583801072510138204059665185285175332130981024856371362546383994957481845624025262353044045620638046436836628931332773278143431002095729869874839042057944591158258884623779660374939172168615233613205398989193322698211552018103987601772297455147688293502520001348527429739594579558985895553967692521451108724682942528349679393268624608908864006358928093800499172562182720009849456654645066524188246601166272477753348727809224618643123245914033261093472777519583673819435151222432808702840674005201381727253537113365895815442505745743375493732855537160764921979974824113768724213298422474908398035643069933169162916905425228233172075279422137865625421740108725241550092493678313582596151436792730497592326690265513957661539050283018162235000512259751259040131871495670408431123138510828417020740930284397675995849973680410238393796873558425753844398649076034814502406070073750439418960748958547580816886898793792662092455438851071554198016771615976098748751618736001210825202847398806050216505418004393904031253563421224493608206771950772622266373190432496095676492224933985235579858416584654644176995851159576291943481228223868131702688487195672234950064422494925544264495821462063566557925391136537635852022639284021921108433126707619639599131203207310470450054165982110143056585370226385239152079071275795038019626078133473097053293347225535248896824090291177906117091205754268921829015542472608968710449073444967290742354952934752829547679872895705863950111784742237990309737357293547793419160872166273951773366812813503676512468392941429591045354266928360632532960241732509348445462392080779683845606304655308024773742103524765329677691900891588459326181891710006832410778024030498637112286730918973950758402766830836518522556664162557532099801046692863018839983792613008645953004169325590550102814788934426290421538323061343344909942517097986309091089210621430082241509348986640594743926681371477123972662810512513852335427083221003695855749160534166121430560913615195486135266391422739189608587827588142876273642388698907512273576700978493101814254105546448497018591199599437129101668066259907534565936865828390963156368605364823644129629097589668723020668965658451245839622567977618829435944063661638083409758609052728444810747712808157922604178207623603665665695085855585891994084536929596187935391431868449521620007673110854849867968071494787470046997335464210391884831473499058701788435468713343684410141661888670876550878594406027293409861123462250272759817740239244370697065007427179037638126832825550285665712953756575952577348241548808807619669663073500237602688195999979514964851675590734645173545499061664779817253361729739235513152178067952633715241485393150751745238838789369844774341263775621742863399874559528442576434437171783762451739973027573311835060946083660655938662277531159553962058400341350378276265580320493204723722337805187438215628215333776505210473550726886855062183881965549344938197520635127699815527377567575784158236276553653719044039856101941763412731793794780854255107289142243797855243296583766070768424999307124525345600920917353482505135659437141732928884174870825292615931626247176959360907752678880410628414553826388793764344256212316608682884055167001369596383487730001981378231603922035081975544443899291131566041125651599634351765818693638541535305152456308617606661539678214649571314346798777399627313683511671069957484861320062157397873683291843675097956250645019857030047091743615206821816683286276563898307788348269852139312385972567796821845254287441551334766195783696689529681187889318776503674205894070916963627177580775342393505630131037418981628879277020611629200551494441643803517339137743106107213827830271205944231373385937642447291479258300012247682923775388026447063143941683178176815189050521664607174906582167287763581322690166869333415131912198987575977015553184689985660919764623067103588073442100576074878045926369055385278376757344156852812392682367707482727496748642549412686354986718896342743804113780167375974676868553557871537038307484913278164761428076077241645943948206830875581350964905604577595157739047053559933396921339051728784829824586548540399399342490723223274511379858185947607077658370126550902434456225473314446044396024137451686692684343562115264557648677968196465162730135305285944234227251805466093275430522767341480662761402275219005976623800549228072523410957920264391947330508244241526813051502821138693181693657506538516924634232320213067993232231390969600562083455859270641742625894201324615619409427562649301924686421425622450031517488534712755621058842538878445544637356602735295911419348005927570841970740281775109048562880933500275117248647493084549988640762718088508382698755632082485054765054296304440058727421573411782328888996479594690839551581338751281437943857238285303848770350047458671110075786554762168531843939523553670444624723526862134350583357290478305794948985259425527434632434291717929367083041155317749635549075580868175830462805378526008450620256354483703845256377618635890244813953374716288646481030098325468701284166688448542170517347861606552608912453702743656598831020047808094902707828478440573839734179295309290065544401813744760244839801079068192185544888556036767222355652458615927941391107756428687752647911459900585054298977133584930968626705475370535547981154365947823210480577852273394761666899303945965573498855480721264317375673421463650038507718622773630140263291971693794823626147508957605479394062584177759977162383497716714955230485907583201846790409190894092570348203433830835475367289061397787162520393350966783736260405476684785804816697521156629573486864704108469333187652723827247738951652196426434042339872238097935406645411523488752980011301017699062264573405833255085935723534793654664315128609726200031304726757366622055313910452390543230583194908849984490578779721411911123045805676222115228537368327719953564609720899384640223411699764624233111333210290727898030261744075960350148181695921256568992665687947621350959848044410559986153050886367440469547149281476850181936210111561678647467365859844169446966209360576230849636995270734905471546475758568972573413804920669859539763551740462667376794130586937444159497158644742026479946220704395909589113342693128967562122147352943701756872747396083134592560565540528876699961694022394543619288396816865297119391274448668667587127116878859882793596553657422954051822907340445824189860724611352619074642836632925746180637373270053800865720471813769358241641858740536176750920718895152403057078785129347830049060994294639127766013359747345791804865515643759898163286776851858337828890585649606039686751109110353455255328063733611562985431472405914898210307951327542328777457355154861407118704854785094802915391496785877256797725847537549369760521409415497816405738865895144650875501470475862182521299010143629953472283154751421684612582381961919522306454523067158512086380751441128541615257026405794439126429416477239389719382159102425046519644255677049475214103731208884139764878302630040501576857286000043729499678991707494256112176021787067378152819517176436979302504402624129901045723755301970171824642524741351994351729803463531251848754241495539219232446382917581924831303590029730665086898595344591346657897627992626606508751098985317698881246575130311068425578203073164036955676470900767096190284474781434249555897142172313571759021701626697736062945679027801144084226370695531788719710753089630468293845942630643413334302771599288000234888705591720495968683169490633632948136148952109112538093416477578713228224532452297593369087154112264304232055376241554339085962937953066575787104855486968003521034112382729827114142639656941561166864015716699139426525020591312687842767942521008769403080066627713270596351935501096365811443037163697762157578937323976203444315283668401941069776308947390736390594474926378588978529086864159045402948125170026388902848485452319467406174962250187408414689013955596764817108346851809304004150590467246954400234434430376250244334490659208102761422269098146903585880951415230357320932499042840074460279780982741083792469724336593087191163522875376564059148507249382453868072961360156684197419219717051626519277481420188181602662707358720998637733343133773836843274152575210774588421097389780860234179505917156990128621154389239343908468985474389120854928954365142469723582515815720798933502181460506427047010880261011120672464592779057353427577050501438104474645142428556692577023096401135822333894345240590944934487464781504352199349989992350887567892477335494861727620587018530904807791560455190983235899851537842694538626035203889402400466776337982475709566492364981331924619507482481297852347998420450921863368118424535607031186958056787716050594032669480766421534489559285566058238910075099137362683421982348857235379007755220139846225835644909880068708624185651420298948999259303601310927550255611162815233348762517120830471491330366530322541205953613835638464996249065010750258919695916735789262157483899997114846962505532720532999772759223496321238538922945651351002312533404398629482914547495723922537248062518713563183566637309215217470248908100703447445147619428372018092957233648233232388494342086178432228523329110793141592660874534447440283505165195521225583491300796672514598433878718650466233132415455880242456630066160974274705925585448550292966781631356679328984734080802532207421150036698448841774526068620157808249819921696775281798945573766826323047403460208790840379651255921657247941888804892392736915669737395425859514808103224226842714739873107058729597744725702897008438568331153111092809958976528076019450666316724653965087891449422531369289045230019900237523865744835117016719574254786997352002974593936392163249367818506470412268003159263933937277189239387525746848695802579622768709248097413767674972298372125138954723149720986115945093837122851664570238315636913898284416457001140586545280933405923798621137900319075148989020866188641395915439451421339558000697648641978454745144295204038935744743068595893053849329217902802512090145516760939453634918841466203159310401478019547312111868953425017549603493353992680209006369618942672712507316608583561417261667637915566302670146890173137110100278339998551905864226979374421482227169467159333920241067015924035709021971722841738525389239388082780366964093282320053323468392369533369471476026703786848864415832675660570067032423696841195511505788298350434313546642978962109944208837761931713172214049981951163865607926131539071348781482047546620027810299334641428120719824261338017954128738925386382672673974270461777556231461028099003747086117106230840767338654788875199796262669692376212281028118605631131273338036392196752311283536665291727230742252793956774665694215478237251768544093403495249562751077367844977232941592707600905646577203848498033506096158735184208401369255020291653763054377019737004411230644633147749711871859619754149934941886470024578719533096323058483223354431202301749309636090776291407520142049433955595873477985092651013728783854341502594918454302191008984497739104967010862383686787782035383934395186683444504051865054625830580026258465816081220178866088704409334872236860460625747957058116119690417239719833395020725170795293274334351981312958820281177334179330634097328459892596742583178890476029719336986669693433466340970196854976597110026673933714819705631043792990586261167754003308611654100085881013557356334992277075396433929297637034904913869270022913948864384551273829661361306034673825162015303326158333976601112023688063678587565504091919188867553703284187562276800495306171361015214822288026533961946186715518665933132138102995874687510485573142777041005444964808707938876147233053778846516788345857568524715089470314246192646007842996826420866060381545555972677157267072242638130067505504324067792635653696513527625589067241688849829856084005816669713286602303431101798852727894505231518555483690391813219701159235158725632875227810941299810032370285869240764984838471703645831238911682364605307650379971970792062636342028704801011167784627139506740435731629202944838700407841039228868209258890082509827509510005790734691020166886677662772306546589659006438450464866658129462062940062198520683888267849041993651568304504161904998544546353325261208396371494510204860904132500511157179913765610871122364147594177973602229765420237103863927614478692592508239667277409648042855933342348291531065406111299434380527131163060991762730875868367466036502673042094960617114580037735975740563867132539235553311642132601582400213992643771245928553417397782968737595271186650382329805666412675860079531692655831386662677078994484283746172516603391733566831942887128209404764943755556957173926663710563215986046828764040892737278308596414753100897822089260799071892825271041797298818812483624495348653964420089295069614499843917734084928332509000853689569659524921722376524300414225603849545967791511047266534350995788621009217899223975789098386432748539172459157223081647456085711796067581978038278437750468328997700492855828097394222600344799981751420399488392892552089543080055786872511145683668783332263858064854737131785934491689631414603629719761883076595915733858377328692145130735899231075025641018995356001750231850828719855764733843047451377571235672646868023582415866795253126523624707495638236349050881193385826264459816442455241125377096596549328045219661761742587241828557326259475027223381052660300414901369934907359758316585255590556278354950958783241525385244926085224739134751751977101945784292227280621494701166448558572445962370255623124694572962772868098124244243643528939886699927350839707262676739114953463216144185839509503392206468980716759415007004664532415488883992131958374953052131668463256836679425629822155631828639542777688407565832071357869429942797500536142243129587260921605141107912235899604078976040627029234428419599902894914567516953625642046398418650941129534958913611232075942612406513572656065033542602727667237390733022718503365627222259307543507562516018997667128050522731191103800885910212987723156612058069234988926874894594211841464424708855929407895951128373016116664820110797469003512299010716660665331318750335934302907117454033051990505031028706995062416027035207267679742089188627451140187272107896303755752496713757431364129669312432780479780661355752458547187619968479342819276061652612101276070304734228603666004624075277392241324528020961202311105565131812018749095598341701807874409016366820612313966028728798775507280013632936968006549344435850219026728178231233649587866742692205009059115449476288958955406074521105313047235633352591155035853165439269681386108078710126778992404048402586083183378795197782092354073040537824236087799900045377894227772954015866843777256153847213206096940708062984704783974903909077588434540026335264382293932925441596790176862775033283131836834614786370615951418084769653447513526061259468115684168548255214669662394632136590483345183988311008769697521100727841047100961984519733943267849721584872648980137031238061348414903203394186661441254029704671979421020132317935949016759805608251773939383372967504577498566817324014518365260010341356634039741545476289667878442245812989792962999311579564607992032546342881522695256678086024482438825146070467025632470305491472097899690686974708472720010413495827099514552745040557994617238126825977009849011279411911174032878647142503523173387862735590571010644781119238675383131773205419915840739091937083400214055422519572509739636024887129534842435092792178096871575367299421259320842763249611545736638379239785018031157763268625304336472905664781367946015488555866922244606389155170066513493830433038778559243566511147782023991845209689917271796523590069306823071595284556682165243006998583610669998076699441876674108336670502955680106798094232819439771097771882241347643257997869808554870522471488708085145170175666245603823459906725360923183685863520670817733396660891846430769750567554079811432643884134683691582027661771931203057777575335210159464541353794178974360551983307412693069857567672117107354552840658861507099368748758010872898412543472507841823164060545961197064582870420512008657754049113517644530181763467618784376424417417753947881053316401219785119457364136492502651401373606843953873242462376400086338469348628857501257607461006157116794076054865372441763117984743620307794525756484063867108300156280472791053097190135837891845462709158742523731422421532144819905463907367364076389431637312301562320700703802652177767601994691088028764468194436107373184669548186372969308637378418295050947582320581707851067099816643857055273704914872436174469810576754312808874715488926168474987021228777019505908944090767626741602951596996795886292814912203627725801505627269827161408264695235776049724074606838792629136032682404273920275232517543883131517890157046728432822621926178840715109231862079018367758607997922443767826427508793094109560134566497144157575797552024033161560797833500309256142257692287197534213229774345990271998957418198480012789164904229667441716446472165533766225956683815494574477469665442633280555472542209129564841467216151871219983854784224668482342136173573380062284381668993863740438143284279320123010463720953660527067908810303707934815730102244389292935982278328464469619545574958804655185797711498102789963941198763820334880089485646962236604180845831776993740133330657443596488808318358894798395735990822240548745235582043459975065560657947894669111659494515701703787130587603965144214544636615565761976865676636230750475994293413051990872171738241304506889273134833995907758312747223186863606906473019950184851547365432094534284932468610629081340272770897598990454911072740738446359286238667465354135996453859128464530142766257962672851408365443248519430980286379189454196273761108409043691284353525413843445369785902396650183324871826119175995658815850922671031004924385553648407690518742298607138966502002411886539230427273797771063370683525290526327204546044728609160951540320704331843745859448947164681080999169837343358948131880945412009218352187472414503839159058782291898796209007551510399763573308561269035652399687490478939374471531853166466206031759978811374990700373105452851584012896684685257842432316520561859503509935978618615429889461390957452478271295050923479235903420228244079683537581403442349320995822738020319606674975643578337316816273431985728225411418662846984873400580625780269253457887802248799242057213781638462894279170033578682249121857393355695050407447078966045993335228646592630365654695296656822456812147486805262591485646511841532779438488706246262341200346728567970557593146352953571204591832414140758567187375412048588498255652445743013500203342617674868873867098521080325506510532097533235001111956062197815398165548491244626401558276124742719243494546363731816348216920595161878460947975922748172722151011446295781127347471328920061726545561585915892017295126834535059093825254607638465881279750403137875029963429031793676146430729787323868026935058980914077801068215314391803146186366478625765146066206161648179192521148350882814669336240534662184003833387077568375244222131690564474480573149913888554586333237256661503400579849703533671044646124548765438603043559212267516176980485275773777300706236305541977529157019945314924683823770359765151162987720711514754273934431781247611430523851450244470495623403638780122914426843148950010812957613941960620349556561686450479549928952129482193682441833441655457115185107062973282593532996824313803596458687273981245015376442196237383776942757231421792040505634634761105425136105169144621764712271121548707179065686019959908698165307490290350183833692469767672489854593530524820343008780188033546297461816139905712714164972164719655586609518080378604087412779830921382204258546377903508925022761204673334438465264264468919708604059036810938981196318999001686932147138638673700800109331914642974690685216022012820366297345289192440102210585841054553785377154658313602374643182199429678700097798044658746753313687037763574214586401041446342072828056975868191566168721654432594205776320230215469676104871223074963973462978930490929442156596966886456516147109106168659290381822204535623158271915359398415945328751052759823316377312964107331543809397018335241114144834932783397706713865327725840090428820266574563390416224995951600765336842960141962903085625472069964354307455428992027727142934442567419181754307520229221925506224540184153838002033031032438790920357259399071070774778825390702653438933914438797734041437843355443907512035633683459666300951110713619348169552472885851934320436224086746465657346837567164806681123316763027251135799179540340176309257462546203670874800188841502965587132623201023738436928885395235213381148730270537138198934971806831018540631096469287126639542566328275332903798490110701813245509280282793975047398138090034654875157067221903074390978605878067020709792774820273030416079108924934540395565309594975340251176772282040491467901849598105354020156574392841721380591240949383850558258224073379408422405348087230114198766558810154809964965976920642605101470406213353185721431756720450336023049713085375617039225575470030595402619419484373329937927720393050481232170748972818003489301083530704738387353363824349362990308488899597700534024565741295847575093603418016580324356317215726168943711718371554768114398405481977555683806771788638207627457187659097792779779625680125805637135026273232091550591730521217734832876997546332517269194795802686767383784151318240137870581047982263605586276006347476731258306820229552219136299903320937745858956018082136926323604574094228458894421842419150659993098410066356589885428638614244535298787663987746487706690802379343454023663499955194227533224537819708159902337126814123689732794892355622912616758397678287590607744966501986294448716437827721957656773485610691147147823920824634212617395307640741861855770084329185767173703734075011043315044644690622311453597263861255309194912951617588158048212945825421404663525995013916066679594219133864961449904313937081919936605435544245090464037781015013212469691647393176194399300582865073707988779438689909188533227594740051337032219844319633190038773869380942391262617681860971786463032707114151518745162271198809345066409072816419751172261600997750314782542602928062036694176223796702784757134302435016418661508813471027538447704288923447910906563099982962215333681355168160428371320125907510246447102637991043649451782830179785424800873825970018496119686617568618438546296236991885875794473549888420119989997237947226732509486347614221451698781490043910596427022657546085311001816277360584064298661596923318239280316032923626582663161188699069819127135354874764201500413525500462895350932203916958198006859054358007570238149361846793315599556307970782724421008045815635561470029393089474508078460830311318869673414686141378090512953253711109508632293269743236562489397301458933706715238978511717792845056566899880142400942320198671372923400834619092853046489695165696371348797665645672053671346427452901803091019105263968558831426103187083344212199149987849490063788842464404579748186824712787969545801450751658435378067261811114077023171545033027921051916230015455251886367404480410689326252168837660924348803950621715913822642504959933541710868757443920157930632151458811177793221837852594654013648930399924456152033967555804497797126808787124264598041316939801033265115015422675819599013529822893518928267286587772324736325994057418899475268063434029623014662673773521782005654420359124901476243190539765484109474681046912465571972185548292298814129161223536604448621704629941243572277227364805217398363877716590754214935539655805518951910532970008299329082908580841288168644370741680336306507592599867081918089916914073657334424126677488904602640562649249776969529214954696743507430769234000028076899228590484031242789624710376868009243080175306120992167509683311324909318027612570095253774657516928524987408672620738729379153531877374907469789898565739177116012338448030641698709539729379670784240341353916185428063387261102916113982234764196725360216751461505626899281535605282681902612982122914874985801037293914637236378441050377630631919852430246123391310725944257672056896379980661800803384604746311676852227945643977997205958254427054437042725152675716171757046027002700782260364583127835382194893071364569175897564635178793057765496405447525741124027296258389901000518535029468130541974116334497306208086296877296233646745453934924808412655434762012443653618330013503248035303297104366817387144350198399889069715148937260984727425325910480317400577639609886948098098805558821543696918678674729861002778948364195121476815777907225314448409336674918711807950366663747485988849012644445283456239612289480008255213230557709570350119303129037720153789574104081050599267669802735688421728702908981198580018601955164302922811549533235637269968918157978845458194170696198846048555544259363551111962821365716770601645923975698609842567007540960166230277222320736350271289668507791925055090469660689187842219027666420632576638178934279648430857969694091424952673547755544595824343618575270426731047171430023130040305422173695077330753497748640298683772216933157391108884486872051842608728160105716282782036990471560294117139703593193287876614501894781362185224720748227411450186406728697185476067055715895610787062423507816836149997053364892778512835494230336940442898064840517047010123087650163026275135742751136678900044411845879835059672750625466148672076071512837861235914065106007798043654681714560559922507529808668838293532117442740475600504593344347098809701121624369819833972699936199797974583657831838924613631455098863129033787850886548887905970601554528684641214097994483599106800735059980349592545707937992354551739810599959037537249316359070677364511033056492625803397434133263119957888172449361276441735784442957780076651249646227553669687629570098452449870181032771372559275935983880035203715337531223309107874039620013945215620758331604356948393078595384916300942081755512647202492639394574718854541358742339866584105559684606314090165567214828473751428785177271562832535140211979041446615554081916612381037993445938743609660214370274170257166377543303636625990654595397220218139793007130434961957093537027568730712493728435842900803978985539204159909539303627155895140476021634350482214889124475259136428805894077655205919697393146659607738821420139023234168288874440923559433395296950890544851328816434942748946613504868476631199323800162539660593126920350829561958383585861484371359384449925837080335119505316346558763552189582330435187969389166524854377859138024593352939604401374910190769624059774813770107189003170827582172872638388151585266704688264652145325909715676788414864678450943052424390678697434492841282470018463360492284040551780195011282868274960266941615859449048036385121917530331496053436204299663853747157624597424823699855848813667388653767779385125970730254909581514532067679042345971010434443644113428114915273127490344512724636908443186313557637213443666210616917057154589617627883680562967255935616305262378369745749608063816439373028798296258941010224421075167104337493687670170265462107494081487290681646756917896814480348495542686789867103206472842681868672177329372868466321396897358281356415038596421348839568447829019893603638273415931267071601905739710120743780368055170872481326206439051530944633296565363622444567465172837929341164057047659236420484651164368163895502377956738619242506476016283469635626130332205087265771435537627752372361037972600912612996211329227876656847412268229955456757308962822906293134719531989843610371518707535394918300994361853608643392719189038931822560955194402267234876203914725530146063321686527843756427139469558899574116339392484767419071344717535095151198667847693583712352150731495781750992711690400340806529298781522358465004974856438692058465294648848199853785867552530594758972986476163752700098474083624386858590858429902997828588170931191778409968850879601425710802934522251369585951670134052557197841211179799802865598472871255118197623551608813400275168866627182920317855884001062478065723009427719400174086937699546343169169953844149300515192964199606874332731338034108355454751861686080904866436663204096689367443957530491355434719646977007189801443067810271165290320279645427269229573608263032383064026821555895588954767384999152224104400896533899197690941249476519989524653602832227845041331515372128822021084104042908985025421229093302427890517180523279956275541103741144319971626092405501367949907134204798638285051629762156112780393065196494072143837906079388052914641355210996501346157029692524324549448198116649869987708454783846031638062578960286247015722110943992241706589941377319881616220544000736857429798993777653991475254037229676661180355842457639150087411894781180459568729912537928472095511663159179598088769319171303710533487702581366997357904800902191214318697776736084824066787835734916098324624648086662553992222194230926519054027404406972455784072754333628602677087922992232291880365862931487174360496365602492593511887596990202277909925908994886060231763582494277620619506030711329854470048440708044903472552663811451049603103885903941629209539175033207741772073351466133750348789708532562320665197534500371344630122576696537696694022264093013342341839302733285217839777991593924382251031257413320612390755900424358022932264002287341952207677332984897120762220848946746090787204017107742899053064100787797776757560263633739466868937742264292488355163753468131000805382507249461136866145601288402599299874463652502087542965587976790448611718719155248850992085646966246859299714206280109611485196909855547379680807926888683063454777678623837763112701342476458797508279285327007162830337123249442490718274392321389126100502041769314593294408457407194530796992799486863793175310546519685885058847311498691877168854004102510026557727163588806034928145692743371126728173955738130858916346181051773458789160395807453399519120065030688352440529044010145596666108490381416636009454373788326472783526901260206623538643268387220863356446020212698265302543498687169851408149798587064770839364831211850272989029004356961533593712296579695099138268108912197926731669204739528028880570897674405878306219295826631094829553276065585940591691360365330868880483330123792432893377069241387571606358792835288075500089862723285011229412183404564835788628828407028798131641802677476282969062493037805538532416387741709805148125765747832417811588569106334499770723225484058179640870374774009898172771801373955061382895438057366275423907291034940018988492983421155765435245357791710310276027010432606981374932250685342834793122807688962742489735910506655997910456974386977481438280881514893819415303377745932716202670221629559918123816670804664097666956896505455628848351614841689442534344789077316027687669098987604273169280581365837888205398020222785227797825469692422663585040644376082579577706091281678944973820089862842079198514695458985079062028529989775786558241425906039211093979762680290859481665200665588654347245104133709479569946782859661997599503606694809152005665136429210264248431619972106856688607229727918197590006113442591592811930674362227131692482150200038977782090531498989569736116414180810777629238552242102045049897493212108651705611392511123209942021905015393927818433786154054347064177888123340018450717178117285416747663275600116058967156653985753685777429183274987819343652276441972880339524555177576867458669374557977857247176286049847471108524178488735027408401541815807687082726668007922448803608283143214358333484951718616391520974868410171940810072096903460248668358634126768105863671003918245527906931200039412099223933381234449590620211262215229373593347349413025467584848730667415634533192017701884298580832515090792117863180306411241421297247417211675219111554430298998040325795628680035418073840879388667697454652176124108456695764838035831235524306006340882874310987690186581627212606362917183831943309031629093563943013256582779688105283238874142424192900239420429538632016354825485813827457365949284178290080438670312566403042917431855762254362695053343238594443646750471277220808933716513055815536703356300551167096189079834426353626327045882588608706076721840541931995944145660579919440448128424359334798074544164085007026072658656012438468285259616337927812898127130176858521135551066105432510356992192969577017056547615535836481275853638217706739777057401997059966934135920921930423275311190710657815280710221037916484239705969162941363737775329765293604231753798415972934237591698798573216879531640682911669256958287872144487915207008636598618178829611895786820642829170929151806142953245371866240266661513883150203572235563181750159879521824927425991094979831190350899304770446148927286883986151352586340789982380648036968202159917240554626110738845477273563159940171424893579574399047376165313872867588046896901082858179732620371433402816760480096818272284424464203095339778101667287266284841320708206080013602045739405453588087831904043213097836388970933820951222417883647789326303772829499178058553845133944343312045403589989330069934395399647671314263887339833207934657767231091351699922752046260809452424269114828871752190570595437573950510539508798334862719456076990786140526304971415343827750538833968336008625574598702827274845123905695454290788661173810427457373248266679502034350085588949522641442349577318988551242648925787586926944718223181345166055059838785979971741419279318406741311632951677053346628144599850302336870676616928314023763585844326652633574852978911819415211601328043268822238734237332831010019818095643826951467309194224595963308630614829066360650191378399578180317841822608724124304394595743422438997020710606122616400794968718237915908835392830811639813285512806790085331400228088417169006486563823588252445231515851505562053873289367415143832404482290347040177069821737849471326479283130478499370664526542115774415757720534077072266848175166033860955851323765776113239763822864545936701699295303570347499447731070320944385764795758086160368563139670355802042831086768234476355514209441685213231559552185542236904752340291303592306833265960263162252772342421880885613233552142095923793917429099507643782611817586404775613366724278530346156119734805120582556410716369526606602230973243643529322809333176861456526931921154501234213425443413382715412053241774794730412345838260169880202402759814662942922800816437279741794493853503014621981045167255314570539093334509597743471958674019051955088255516554744905353312952989543916734188698384863467559394371535368206711904484752390202983938504584742867598048565698146854543598909310156826460875975938183923735171116818060861907017379310298884205268450115721089484163599788829390769321941084551267972456970033000722669969392563197783982672061285256038262037238856528376761145030451987080513392941566213615550724963390380254866486750199782034645263315698632434148660293887035964657028510036483762724422893079259043588800160559351399803670811904770816775075771880103791150947218983713617232223201845369080806307838205888478793790951343411264065985519693725202575651563489134612621797648105370482292885276746458698086511303332601134917140275417326652871052969132559148602062249300250405334264906981955337425246742334258662444785011252296328020816124838048274652744614615837699795003733964346939198818375875004135521243810858232095270811769731079874583299107040244945240756977422482372412029307311408031211433248837613540748604667561016123985710252540593521127216277077315392521065344822326028596268134689823607844944630574585841747483063473480508216088562909191404164269513837297455363960981876233820279301838108078351858597081510243190777189011819154318666874610858366520398042978612028700076449179182476461256448137129699537985779218110485749340173992997174265436979548935047116904503228329482041934666952072512709571151028503313807083494409864785633011946505364599016441596629342963021791408863017112631536570688822173809063218694278807002816791152266191528754458867235641489502191765798552459305727274710103822956291398794069418536312424110921305755317970742694015451515243970344664910551408503918730557040426540125211288555957750295819187073489776964342084096807153829367310671184340610097572661304583559029331812902085224509552042047604508261347212996585046862952759413117483545909252845387215714926063119659293581444419839529811678101042741314279305926084008407630083007051028667168280951801469325275256902744501150525693775125059755322288405726471988331300690728987511405692778839566723904774309712832795233454578214191887097204029855406773436798114846714187474239451101026280888873874306147812132696269899773247233246209112142913172589744493642029949024159877158755252224406485163483645371930962733729954512441256631844254141565397394435034058356142561251273052236723074555057624865348156612726192155663468052146145684442143895140540287143719393425508856712052953999038188310937943847734396537592849677354267020042676571699552393281831645160875126672946663569782413400216178423986411102984166020947319676597435574300940992958046910095168054793038858221803891829992561657051300556266369595062854695565960743503776995036860009082915561027682891363922593673716501658668234151551476286843999106875905055600276842367010006616486564341994929811354644158477105043329405968147505510370173241909687257836323312242337404856128503532411181677950217164283810134656988317066922712670918753345229721295377092329587391396333675094816770092167878151438536584809808189019526076632933583339649973342335399807141962790571813066802238871715154754835935189959436404519737913731385432468620329082481975893210847616189339405372401907747862928769105827958701753247996052748807391599236356199269878302685640963089031457956176049904796103585031420196149485409326395305059107821511232498374519126476996041922433922804319002443266634090465923068494219985748562285608387782015544740293887774122290294437925859547771529123955659190061801556170839469024874911995207952288794654317415903556898381716838229166601314748907793295484371461951996688853461263482404865331657871561796655947600418935782448899694804597673386273469261239203261387634288639477323966055926219106919504691151484956581398342789906654925766344552822593151691516818122743462637088869374721327505096322775983808525935262764756763884027661247705405761800433439274930938952975319484202519400942018620371584079557744311431941597968503810318055757210899898159257162878707649819602703140895753131568525070775253001303466533350918805619364304217296866287028958487021338132642292887852557395305318892548503159444868876335582714035282706052766322791893944225998248036995332798036061715760755369665837593564778430350109031478711972351105561477701946315129919646496017595049077279765702640465079594668251190634074486578365997628759723620280707582534431786439453252960823468668468879820674243054051697916985230063886574919835068068690978870185024193433013213855439107893357235072287190625026929035898913273067224531149310258471397992916259300255002586973257042061315022613680782856666720573020465479483753945424163308303526146955749679285327725873096501904161165480279058162998109512924191692886987085061717063929965167215278491952342673857823339527803011637457964814549235876728394171885811078608372365523332809423108910795680259418202127040041016981462867649298642994951309489376455937069393775011040802336663751019551492305966043451106610917437253066651593457226282349382428842401117384174558530589122199242518315150033648180817752755100464488487187027292696674107638947789034865368061574292086628587612640060893490056597063669874437040158983260731104233482904018711149088346837984715288249182902467544447341499628997328552079344789059432328530321960702276527630261874490674674513401328949620684344628692583377273077490451069336846219800839531664658455588542237087983168482148591476700169132079523938293933260352649394383573017420043779668140885872394175939528321531235958706278294579395785872054122149471639265722663148349797099306052507013372416980201357839433879083712281186049450345175975420416433032689805869692008698458677277675264715488318586787971456047843232660154183024234710927132121710415924244075664546053441724720818630586369982987402692829109472860455488046007050386683070211606774973982895957303223701514933095699314660045973452112575111311336358710455945843138398467182934943259691194949737337372677149467055303426770005526865547246204449673762687742341808150014349574016421096388924467949693643059058897292212613953180702365141665908457618290910527043477847247489985415562263392538416502742298718027347241893415389730796368918224459312219140510478718665082528109566768711825661148813712636148291567196181322018803460021699447565778710148559438136201531796344202782185001892866402920607995309435672336322776354482567136232694642137289381480851982924513350194510840772344531518318861605309229619162159072733925637171560621842012291854021077181574831700611245852745471088766264477926025171690896679010621251434242100605500559564935351821628370275891125416281400258284948723318626076286636526989257077453677863069741933296332305365664940996377535144388463531550241208255645097784526798021226825763435640765260385934686391460115977710241969104441356807796421225910461381748775466293986692651581178620705880307109689418827664668547073747680327197379348480327901247087419892191731241203761559486769068159442300182155456291644159392314014734771582218705846924177957312483185945718635330052392011556394886599742095663259433483966529394722319713711684242049756186176809260207206129901613472671026657480947054515203111282938294082470991562655903846531348612716251921016633535474340591394350715345948720605953282732883404317016766522877824157301081075826202093922423973248832544180998276241730586996486073007380948921549040154227517209126626628210612590630892283673836998364378711793099509467912227776175776250983972149522617565110164446316103353744905150981968080288788214575066019661017113638424679404134620861901942555103961992614444603534031940884378905257907584273255302608297896712420002461180793971517241063661017519202601776209415198019003573564753571099923277194000928699607694156304752108411386038524654429123820318757152640669534252964942855687089017047861179777455999451241604380578604451776840190978289220636514766790770064473980818947694773764052117102563454755773895508684258684344241266533863984583124720036296260723199534248225194851429712975494311505284074460820532622122901984931489690437336963164232980147681467658033112407030596714894828293152592155684305770916227468674851735786802690941560630464906049397063718572179946034029174265559134434149575143880074295197366079498652805409625710295321563700386808002598434217476884634919472738202570286252811916033472763546100743806571684291791879728235620945487690376279976875138261994341619985290227366462998895637427358059375646684339233374684862555834478649762306870970396448106204464143956420550097041107374013811648250316000507715315211715088156629254313918057108829608044306059722167159170322604089768402653558745247973272111218627940916739842151199284870695654113306616830819230229761274985227060143115757112257945091361000164562194942703791279262826383524689056814278168998174606066243283280531393120369795789918351329389121790676284602743562739575095156404790525769508925335228976632735306737913344567667744090729354270249845705902791103357735721214986864820460354032759376419495356494437718052844118464872461771429157755435397923471483984805923935218260703306938736214271879926903763040304837388743549741787326591163057305835829984559784553784720366057192846275179656359968204833868342302156772745952027413828060151097861056034793624894658480540040377934454324231907785876899977269455364119009690167940914737354204536513362880159961366215565426365188288537186945612142830120881631564464400276702726645653104426633222188574109384198276436533570587744897145989936483200744711174392796881168255823185096106619593847603727810502266149431750895700274694613971243911787982394863441524450986212242337980392370227125744899311867205721801119455982834859241197594580144903860693190116757132171134153310118928789679470043584598720749344315462573740431023036151140735203706970935476988003453283024680425080894956661054604169687424755596640327077126393655995685391280818779817475092986753375724163676389160708584624184058708714742580130627965488183446432845293069286517557792944437208322217375808522240550484419517462971718736156372748556487356883950578066676773006231932862182800846477979266256891024606117754836375795479111658223360906196119656280857736449014712518617443791924991821345881135991479603880231075300178453112513041260513645179873412648720973089772576129660168608647357210532139482864032392753896434383755974454172043904994952129975276789056232453523174065000669438213390550800532354804139538661569839895696209470961115400781314842547460628520865721290916269565403815571640459984193706479876363717510049866385975716804476609304925876431401518001458318429978214439138623387463196872684525080587411338616474594656874592542205941044325721508478753101855873639657025260808269587029104096534373352895895124844572793472309569980878755104774648878665782705834616362776973831403972173976253383253508990990335705241425931284864155624041054746233957912471017469716590958738550157754829883715081663383617692722015023428437624985800994307960550916972739948660535829724619623469677118590187944875264054746734926099213830730520948827236773080250833408567249612216755967521232883189793688415929168195422664969632694876508824060780718338422390336928354652585166375681262801119506165398353023009635474463321729651059843634933430872567017700524089047936116988297878576292411982094121443177589763901175557776278046300602084695502261914798610010960222681875065736837531426678664683113142591326226998960153107535888235128500227356111676669609528701519750630632603214671675742188298857005840950241394553718492194334835361985838446286094977061103445502447178316728772196183689382346792330467954474575590272515077935509567345919775503917561880511273900143867845399851412455170902835431850094596070979859465847414964849162619707459618379834619096659233382675723817889929982640748850845375518391977480767899281193589608109223194473582713145383533694963653547575539589130087234956280920105335289584776286676164259938870160498266483604206911378828581605528694982472112378996947875060437961533596537779910669144806490400633741119669821413332490632668111756046258240653744355360677430893296253120018354078250729506311129632642988390144457215928263448036498977919460169179989465535830168680369907140289762220257927472316414391705014920510470587909204391894312012760303551000275227888876019983577706186162142928603498965866259174092950990336068563277019457138532186731811291019642933479150044348167370721697372517514734041396213192890596038875897725210370914322042420501439781106125666600253146385156692217748345210484060671325763317564352144267688089002654236123634245221862397049116553780053768708345399061124975449872530795577626600780606983242056077868728751928890268689057019068192392298092088149806145011579856915906851368594467790663291025614692533240699310663342219394774098162861522254730076195208517004626194604962266996450905684080159800567390376038702053681866310093218240545858800257247331977334930969502462356105625000099892195523309741888701443479599476676000843822360802891030574331388695588538130688251488654366291728282220320060294141984471072099749826852389409604871279866114547917023997504713104505350150368194170602135271023822512364912512997213206087467133361047891035640892759945942012590814202910327076764309994877259557641713227759886134066854257131537921930299648239592977608452913500502963710470972837672520668245213022360820048562532318485739540108534411026634124408162646999185313815601147937662826938519542235271007114833696957400095862901025818761206315721658436299277363872040477936503040758846001744866021338967379046430904596218121160475447379343987965103820076769812353424019671411544653250799047335945121281270108131065131631712301469865688299137182226563830376128408497951308236882993614401186136317403298787711965754530762898633927180860405002886699962688130795591648871574492556908590835297735906288889207466897118446801898702055857876639546990662610289338185043569471494179152055994347041662465005491394850079538677689345085975946462769660306137455811295464804842013708105337353182750755439734998974501153625947474521606084377977751490239959080684033602770357108937061730593511208874852677235641726505789523324232703662994831677508866232947535833298355535551889433373021464540065950481331271726028620965672988326562786084897358142994812833131071509503324529772897757101485314203866145174878108319407073311621702993631211657500376564417325015473892582389030742797722571041678609151082026340031333505755073276512887703748311058958640468729477086823448001993253613933806326484031851274024964739848409971082468550645687527402291940403574795559140272772118440782472346799420130873732119231638619986224973411584208828049584985707678896983969456670479691675348034596441285762516760369273813337065521348964795850667446902841034869895512314373565098555102837271364898349095201343020985639324222471976696263970428145424945410535310582512347348260299831353125150236966605628853440221034246458351247421771694003078138141787373380208067913842762302828645285495371643417522278446927161073941422704137607654349553326793408881633176386245608494306207730930024321745212912679264612574729863843775115689907480501827008985460869131474265447874055053384115020254498277770042619650081507639504112141532442909140217677186557804402639484316775221690597942258886621922970192371059333207432049780501735682283408074460484789368955888114792294071643295014890532760479579244630613485117434125084506920381048720590727552049977110765531288179368300969632989988791826104522943401072149655220988762436375277008755433902189667078590987524916289827693553853449767652757811889910042949654425975921112329916343387383702257282697678442976643679911131237893878009424918772701904824276200932962423144828715108137360524862715237460426928129491206387378778326803445099002142548163597014016628942479946812577653714974641032173887421309165942544715764763127162928123535158255481106181701083670462105463271293741739115467898123537913507780839777119691974561177599502685897795657661478653944093536686762199247463259862614703501418435339268082402402476403179552616113939971220581652918541596524398346743772495626743740447085510620509927043770511475326371541652939211758852977407034586488033484117642170459980097373488580478561921498194883358330736570040268166172781966290880431513874989887520913961251103794270339435321344536567217996466570417878200493713452032998861307344703102847194318213943386176576063519859604694623179275340235198711400757736187323472554771452849135328669794070988690701464128324413310823393324395858512124116152019360295391696381955433594503208135063055222487137997070020327544220340860939555451906285306278956114743278886213357345412744045172882514583547550581883827135859813884971233342954919844758070793378682154133959280611984507669182697387406794676131839146201582993465321472442481903539083276692006998297674789927504969121468023753622734031926522007323234349179407259969868563382185593723621585203242200241202965194736091881807738989296923443235135976461712661325817680944606546386427115134023251503567679097327604165504152056226169962732925586705253509200192843226819521604981534185072807781312926630267159110972303884195575454317678381799593218711958552925963423439358750944716583170466737002281491195964636564003218736312238496920533138514276285517991060926466357019948321376038348714407585971243791180180796272588440765887888418909232246444740057197246445134069238213466959889160384088967851881597696370824700216048474380509270693546495594345662987131388208799145938329810122775567695394239968908174363762953039137849983994924037632448419523436642864509299525856703725689368815445583772914444189563202217236584677852610140918350050030212868374004676658234211281441628917058420530781458846378505878090582249140072378760362913334582897606458921437228106956384938056375436687627918495360600580163363217195223480200037654771122924482783402207194867283300866488032866881120527989954575206789142883224549134858490674427071181727671686830689380140669165419523778292872941581663336669607644322399324132598795414231949168215863950826823503865479458941148869519117180780997694227257529539972226124852086953246370759843629645792817731576833843906239404375032651373854873955110629561537248332284056161019166782487159338929547887671963561203254128257176111236974739182010354049533120729659727244147289242230823362728427023333571536060995677087179919596021683060844856091807254622778359946282263095975361762599356127593665535582351732312075433653267325891572061414911702687039343318112179553877651774912810964375600045811220244847912875621729959242399802059132578814086691329318754993182411699414195948032372120650078203162081104461727984770882585949276561048833008695822133854218594915233565777813421198453572047533562923775889955396476212092687889197784554431663487100543958058425511925690262651297338736379089053004552702992808541140472426979554068841318576006142493674918757891323509895522031889618392299905795655563669025639656682448007457108304719062348536927895612810939997662147644416400472504440068835127061933555190859296572056747155040954575760877338759327515993074387047662095618914815610420056999973957297783447842603139199130805139050337430995467987791513783474789943855736838533725703962372042859404497370350343466314609053839569068958261199032044393153475498450138100626184565156113967350971133713732607289701675439275130835737444980582905579247238751522322660474720048352866112145172532420857271945712650722050638542147799520033958098798261039037937402182235732227780099058639471586821300230656909691500850182123543395277778432858893637693855402152439155872983281718396356014686672309281235556140776750608118278870159330857648133686515277593897876494563023600358126250627915723962883805258045255912745558824065812696190406471950007468336553662415095991987933447025578641329358656704999811383285649556896210986410210204613229160550017873178781190507411292129208142738715904512491622498574716936076503586340948956772018517468063658163102977412633669605409071078378122028699220063352366444007283677879423392874046116395776334672240808800583223781582097380880216391189788832862385992899990003387713930275970952982186128741852158344015215947438169271770348643553853388055835059083945441964700049660228647801735589863978315932159644434402725157820452062178011447659143788312970720811285314877263040552818286626871440511187142063086222545900225531148398477137600197656565060275217888567972880036908965518601754315868340748030144268400183702059850922097813303682105139032308588215793388157094755019927246293109443728300978971588869521499058212047713478033646946117696814739325345092362753237222801077908896315631617247642970388823994158476615697220245619267841995295151656768598465923404006207608484553437197004792694889823476620412608449791127965913644787850908804324259376972106338146895800789735021141822141041586223292291733128014504688038364944439446204470233841794335222432518650911631174326400713216251530052419931108129818976130932682449315425709772713273759705763183730330095311670590859884283507502011108650270853404187121820885372675097308782200300898823329054195112967504466577423232495440039466210988548108941649528864434026250883192502913961540760898838574566199481642024755373501001854391452184601835054892864755523479237500630283267876777635227830491173721465197384171469504902162184235311623711834105011976427701412781808278812850483722930928038200684443422253876056712639028469246364347625161955235975250267992010700018872327028227276800801096285052611029067565509213146824633292040190162666007025603909952901385484487779392829559362117551295935615532015112269140472359696915400738062179080416177299486494305392365700145654664412394154753706727510660943334689344761298570619549095500125973514760614461095792600734512880408994679189858692804016739287885856142555051563769370386829560519865110790311118255481103428530545679679821659545942949837382505912236403806281113095903722725717984647355776328460035870320640865963466415584379234907226732324706164917107305044544257052998443843209412886193222164669357188442630502327055071226315720317734603633159834673534715022857883322425865631227994679604923076591939724494000318778769679592636145253240904991340390312411309909967662123334951356432162454967138582789168457864592450359905300628905395554427237038184432804335306764262917970692627538235508984388280611797062725050569565882259442610912911294115977569838989983003701435117737732776848937719465285177897205043277855179237961187746653157112590364463157445345941441728275862280411202483203207323402081622256004951236084617880961123939679678979394267254190259697268134454522332811149327137373098807587355916985409226303055287647362685429695247472538865038591386657063141341892471470015615709159124688434180298998718452873107224532836407054394678623853019919089539210432337642478943703684461871416763554390484191333454590293767380515683587379727412116277580019254639454025564350207881877875418903861627368017289966478558854187356732235552649876692239323623872110793409229899860149561465166432819836605998389345803599644624587864081578713642788774978540510447282112600878507584056129022198792914171625459568227416340931727702694145037997740285848970620713764160459093051118687189869450306792403795867892229257472574036212925494473048724718144178409430251504284998117955973979227017837847894186372905128924151221363858615627421519867012197902610213015382864688543789012901388716585644948864000729019488373827301153976605537058589120831041082544283236577199982507016515998834062762564049668688808276341347259311569067731364032521352065374602470854671735136811201709842767856864810392910465706286842490068135117579962245843492683494219972246383627638500807853043711968372931911873056458100965583189771265929196138747553918453827470138163468498708027235885406867127868237882095748675716217190952392314155552065569666227318208884691155037260749187936151656311053350486573607374135648150749191931937808890781442849400966538476522369740657339511778852202386105676488908416378011283096709591797864106565368851194642268539949583007476787221747398275968680257638068879704975173464688961595322438353305555780341471886063121271234575864383422798934862184325702336043002348344363698586084584797682781839761490054049733563013362639097588396402517771733698893902256638185235032020510184307557085625432861074474138203710257138980159943818059551456118638058280481250501181874570243503113551381135590899861821994376721065390798379683616334578210707945075631058637776116102453438650035924592463623885344270489007619141515361786760486251603350645026725258214890125504300244063381633459277173047785444809554797484273102681474514210345570103536655475166085506105381386336483604714807901814419260735673862170822929050331331558775140452543705936123005850171624706456061247066986092225055477469731672071005047509655913165333550871830037012145090563015550924345496564633890143151702447537162934493716312955968160465418768310487132181074952879954571313135702660971516103671309010669007735517985643983360691882473610924983822701778665028805735184829193143940537230578546503706341063673325795121400546149040247894773414161608561938312000897868981198623076013363267927107955646678122080897990805186704976218833796289712450051028765002205434837236056796495996074684346165716141847299479126570352126047731157500458277497949253639737547771380605644223612465143502684987457663115807246640482058019655791197296232860044353930655520028917920550685123940077584266149598752557172637491916314476161929184879754413586702313894905607735113637509712123660253479945372756518307990897825950054308590916349601901448705676824743672711769234575453951146959137412399020266634645311297698963360248496538203884753968013794984854940337880041113211928689407028791704683057759922339727416827924967863869592364013965750078560658449612487087639026197458914567887676293470926384842033070746508809378247388442359869699314232851466475119519718515050591575346882089869397994357258681122658913569352648599852307419281283790744781601374226319109240940000900767242023490800676124783047750692340420577121286053679721668583469910935546416585322427645173843965852051230395389679732623984776287409201116760717998771714180299080722346091114907080626065884100561138903949561584424553022102999292402884864196986907168121954682183644678483153638625342783127310220996970364149371444985855483292073632422128953858122454918014821246451473885502789174816392742986173424145536643835151312821447091489254282186795881992127067185174279047658466162942886871708712314497812282404454974645950500465739866893556771811685454276115955084727603316609643677489637839035673977578128356129615837436413368318463411545997157123118432283278243717029162220902932940477119552590932480013603513917024034720782815179746752786109883048096590457126092431825133448769215427665865620887686576219599712135712916728566943927356968523778896179895735018765735777036881307712710402328717943240467723489283419068338545966048170201692024947408401183912179817764859576145641920381034902373535057203253412999461584289046170629165083801413932218187619792609397060381141642121514967189409465847416537525874552377157982503261054712399014112231464992527235585159703715378386094398879304891186716133487044525263350787205932751767609703410899874830991602859336525332623383678566200395641292703612784303496593964576847917791246508590155534820455966375833510070511934572386532121980658276364786708996653843037076514298457183884126182652795494468777704746464663034116319452963446134552203126035863762718822611196722430607713115792774892765623035150188190542666106938366152657239918978576141397945492052572479170131854565540494957638195361732966744873627394175817772445381286459592645549788572165410979234201531654979974058779699992764007717127530752642641222228490361109663247095299710457401176053204203585452676257582890009498261341007193486573453429089394755726202093556261697826283761174140833093633311076571217499994427306922910161571171726485381200209447236757127089434642235154784487243640237902906087358153613687520970318777050912536375011958000722399028380625989199637370224212620637477366807880719053042334063110751432676439284854652564031733795550888935671487472002092814797366630661191790215812882777557818871165602464756869471260091012289691502990716054687641953175315179766224660175279423814893210084100039688537638454413301214578584316414742248115278009886055922756733393802552978082512548013353513686364844624933979630721604682344247961033459910539936131777731427581109320763259859353955698745589051082120581192643419586030543557293724608720249818283809617056554512478236941561493394906419756167899716269181429878018722311075399315962916985569769356747545233109512269330825745002415217825314109907540262295495484457654599094813792078762953510993428723443174477869849172238937305732586997253049034591868294485893310417187583730588203081617714218369769420133138810337852693528547224010238512936435398288647815538960545172418274831800642370727369446695139283464589065670404717300817162051169185827712639563392848088922224041494249547353973005262437357517465129656747923350351194548248860054180666985324043761855577192843371084716937025122652940700473444115901087538272631920383336133911348909064115158563271248540685657072315724887846449938850652552456225710785278390791783392745754985470944411745604076743673728754965362720318096074000468053890522468910896291930924382377892989279108582441864894850654863543478421531685755241245242188856754496840410988630425959880765860385400137715661636442587791941810999125535900740851209368091225481054449865268560394775738554599264586019292552831166334899996368288868141535898814596200606653406851990652576533562933590831812031186811297109030741579935447338844476118248406781910982575114433963312270649817606270259504396480744637828306407617804062163241147207411644521628544481231473170124717150686146825920627749594756426870141198841304586420514449165851095283420018534164583389851995726204141891323252329879143572184040940802907085042998659769862779032954387924610870540052647671381572982182424560918702718134147536174929959613412586766784580790007861026564547011630579718469755930016770639925363002915372383569671379523532277096579131231300253992300059018696297709018407215646441467166200926204343010120065498733459061455141563771499037002281116533432536924664073942170353931695723031176517587021851852395472431277150499156621472020134094315754856708045333020111013402033843632609573108303882675941051868865961598973324641891234596606725716008630233755999495469112110983929790240171183411926869594160867630969486335454895954320073567532644761994581705481389830451259978786375281132423501071290014082001655930314292885082625935121240168214054318954841179517053027126166396188164832119121941173324382830004978051812651035815766375631395309812014365243135924069016753238954444301916693205251813280303220534398252265695876833695900072461464169399993192293430319407286660419457148389244799353557069031488068864293765174664118064953907737628312884019040749880406311357600461990095824226929515557341522271166159719314227365779608843795337027487847582634392816684627987722759504057840174568597307446177901112083115536573352390570903321240266098611596431862739381132617846621511229982548859201601535053952429082252065476844050547211478985706964421016257165161520650069166008166785028026328850331935233798889328125075265897684422663744051526771510007532326165000736214750260401718895590830436885860522631676977296795820121741252616771163631063730765557357708985680239757438373622099416929777965160830185790739768637557103277211702538688266021488767980922673435031619667124957065332720534389290752808153339581083055841765073478611550216533166821513375318435459745600508036099934409867950692750742248476143460289647935414426245219246850967249573403030383208323376594568413540848954550145251733619948213195374147526263835220244082803255767455770966949909474586867411736377423002654084557862925239111604108963874412452020309863823144920989829074908731679697546687379163126547741570007586010627512061753499953130912747196677742544272960294794647218461544116380353188104522916696432805656754794217017903935271460910604945624835362927811581345047964359175610018110156908466702771873828562475570707530138375564540673003507005487297693949232274590692917689580634868065131029548781483164949431853521631351096029608496426929031663382627418753402919446023868801242016782290698713102184502893975614101030945114980498982153751558250947582556021695351040478956927133108517822046330285146770041243317275405668284106685370409588891991602130911751025820445008802492127816061104656889621703262433924488543425701969938351562458034343005582555327857471531825015624091696448666704070790377244561755165789224820553144553229559608117880172892207002018526414551579151073676249339118036480275884173131414765848893065140187326228902161275470878547177991254649361673113233817268869196089870973548089564211827312987399626439777166095207637822393122690360331929561357518330320073441282654842963323173399260242819264475274552103392927312861616216651444657121777613280518179133875224211077671793200992898954909817715320126316613511559354712047118527286963156658891114028651008094946669177105127975828245760912435139554153530553651140210388176936016027043237597483818865055867479314875474346916279239157804228770260676414277741269021220499952820267154351708581946272276262727194469124903852648144264159463856190274905816722756584322751951484470400603784146939615517947523876700017027344181343869748690524163660757832567142174310949529701303742790498732374710029870049958560239298329134403145950245227831699886199773705411249134895235935068769615167330625099514605826323153823049423398579684577173722859558065958376568465696433514425488907851620978314755194329100684350503830458601875217348261602303596887474980737397490606415204996633468883958244625512207101627877266495619785212453308896215940822451969779727743980301011462254974460404549744661537836274845477409196513943705741236873603372339424274599738499918164043377595730143028055265619598803006949778994981245415755041578493218566786747750838384769879449594190405187100734331347175634287875501583462881387927335034452696984362939943632935556136950219768090419996251764505919307062774847081909394571641228356591966899425727214489088856579132777895919166278596674869917670106736266217829229368621574041525563876420226574097522764086053493203789678834451367080976561812407019560605405216036929774020822908004469843327228475166184471061197166590891032776402541404152925368753573259961228921054640287982780050763264159900413322511114367231780022788550391962410807161880250528574013097413781324428406619306934879722724434792464777207199958903843617122943351687211290191801972154556544709878206749659292523030951501397120660953133892618139601534339873073481092854397774889906353335897047326739527892104871036665587199730340124687672454183429043506167000752700630922563418261631642963008518470567086085379673040377746863546658470822386977671047560671172255634868529293870094584104574528498062504727874389090258923247401941879030537510911189547172806661309497015231967145022982304580468790880843371503626574754549553940526970013043163195572111698042047024222340246429213634508647058188950630844875753537379832867804313659310978047395361565355457370474604894803379191332679314962605423088516276960604674008733851491712760264339407947365277822604875175384763882904738184869941933341780131465561848324971551987139964475985366081710325120899426431649452049933967084565285649327561936318293939514589566733396793682832870034114211144888458751391801652039140089826919182358696022606717133127062818219303319196486719696218125062047116193352019779599221826655409354753361571123722411634078464396737662479002119907277407647952295669656832339062546984274744285351273015135916332931829693426874183001402285181654801636850495695458774500481573496519489886612322359341492296821820977824379993655252004581688757483148083134944917263153904916998233862157154330962895217287122114643767906800481356443804845858492814497910764565162983893666228779238383737776393542290501030686857774883306487247255986751567697697170975564806417086888016298952556461888049143355657223294464443632739503161277529487355159734571181101093802848030467796487698676303775356379635251966449733676785095150052509414590162436189729103506573869666267238612046934731663505395061939815258063071480482466719116387011651969272875290546177484808905360132161912241301804279654049367691121208871814303268667341818010866902568442417167057432792817390418964740992783659873906250132063159399830658259709784371915572279121123578064884311627119034160597996905414111405035722721736610458414864695997451234521103778793672918916991785769106872074669331396476032397533173173438005229285255481602909316441996647138953331439683594441057704684382364255796836468336812939757025220569261825852228095158428755774042185775454839469080287097037419454614026832363394693430973373515134919456064935736022082162288306563460785779697910118077819285452108287178981227984514926310801959862544458284126258889316472950199865871497802999443622472265944970674073785763991505901693890306705051778842496059833838018679791070785723883948491628104880153760780802492799379329161971135495079964747469513644717590647994200304660310395502854327194699720629678687642857264875249287874194341319716949403196431641778303330731104881008547588290241539413356380275277254554660576407784945751112095391245085405184240379855497566116835795302168379513134607457612050447512006779516614449329220734962378449654426313640701567364732936578018024658233275546159562088600681966285058403821466568472836045318076189630537436682664992126635730980991643069641790913289910583907694812758730013784890917571904392588509381926544054691693450149719586117232926792811537631651988366137333742337837224024739147620238911487025916995322513051409515189684983053007845214503801467745865202493683173515477907703292240849574302326939863297992646281577253066136760593922316665382807323935019666028993838416607932322154763334301535831456444397403755635134216189002825686646847713408336015744734462938430147010125934150610486523516920420458004581714655199150132422061513042210419632876071513632903033820169303873476079424854012621829406556720373786383931989732248863665311085054164381821590368176462476485238851960569632413337332300647135876697688896843222455021051298474123330287478341414175655715184592498940736532738590578177052952745260305405693232940815297616146357202879050418666376556722486127486589757975275367369080392994294920537452903819934250318246770948585637501452660772601214150388218269161930735935053282890437942560451392060144501393253456329679965293901311784621534461596912571371356295003415387338506257727296200351473405264302415410112597540698722450738747195409946996569319562167778183281181311177910604301965421102543962593697697719519744020375965933449860718570506917339938784482975558012189110871370486940379593634846621511080375677251295979946106849083437089360580332508504572380738602000567163943585564863464853660795529300414536837482285717723591091632363393803659187184412020298913562680213452402468053182547293930325514837009429932962894131008307761063429743078030116267307712704109614876895351927688170595412574659321472145787928215595851242712765680150493458451152184103811064808982824438352298692849753890368459089339373348934822579822849652731995054691210583867069424307338648775184459060263114734837534155852941560360678855163867845694722059169836526004683261812317687707070801914365886712799564512005810240956932007009688533950445024606001625670637332009699368408358024106774911311342924110757462319552989072370879799285745409485899597827114809225060189421381689566659989384173811172816294080117453020573260582045825368960196201563209517654325769122219002135405592684066959508373842240280312167614551940326538856527187478428364917425513689748252836779151257485636528101268593808827119983438799893505430402306219087037934047524701784444785165293743944357055093782668520604990042773931528995876314207781635610343651387616268472706098705507731305680156793479869991892096642131658492881270554120266183421207204170817369018481649250490694500434971425524739649656091356409524504884954767551161459310624831203605665402915525964043968488437004396918932398097618378718400405862596123490954758189487629301517236004815845176208056836634811877189594432551095261236237226282480480446795543197833053639370086262597236351952259862850743338510473127242210973417928874529196121974931220906754171915364595577959062469454352529020873815212611637426810548791005176165842152138396741666239460861053564241718558554617379281620584470711186140828843348933182608696292337655163982518063414758383212001165172201878700430636367070778796661262903726571516181287340609751716422106957204204100353962109316957366517226513936333736199089011537035584910823011299020540064369651099772959196555215163308173528095580018798488752985223499181645317473699675747482690960375581083963235314743423673626274059963469557871951841064651433788066859371235018981389264825840624764391390755575125681355708194346632511815611024149888280159944995920740975274560511599585671717515572194151315813754096524074682432528897402626188607000584935349447707449772272568087131476220179007225364554544651719462662306612805911756289844714892762325774863708129366977833740650792955059510958585788943258068609412674277888465504112771416558461405092726991099891950522374847609008429284246586208341949495628252074111821271822797073543141073513113072634873758912802891247211569026751744189155402505517453659665623694485116380875116451084276993660453232394580557570364911847522523976333126046171733211023969860288544710099738894011019441880989063892318121913470826709888876732685616312924341979974316637337590237329871871508527910951626793181831719957365921305729404059457110763514607642236460438940053180295160752559383562376881040654900687461727056710827275885179985466993427769552593492570115302631481541239854593652659698635117746738939906343158112089460906218813517463452398990021167413691820293978923955809600879509501221354639234180824645882667267579464215429358217088858480715821390709418134397246321875400995312993289165018123648961240018378353155506657473351348605462485791849503202370091823761264122500343565637301579264754243985107621679779729689964466268285721017513468113057829691137152423370356029766171141887165408818881905621603268200299803697399260683753702451252928542473198170124492414698920918297063537437478745630618398740586804225016651974474753450051687826332280184069137130739572233939760812346832966525718665654602398810187868255216618950779997187758755818228097710144387622789080758945778731601522825541064162981711689667175501850141066835572225488428831406700045022751500288593435050531286481036454161116834398469766459884479489538799658554932381708991414322977386377742427279556462034145876085860057250587802977504726191522590067753699378237869547538849275982179121824331573607122974948873608371864824228648804619817937064734943433765362187650568091458376611172480844391915449351524919892347332661449579568328087890247651523026433375888602010538257460494865916456871294155182054593275660934222097947300320587122671403058345883481050122763513965777433131633444304887150706399453085004728962825377013564811411311400763751041827388568163491567344283189268255504263951645995473516846063581261965026922814109231256778698578680441329598047469694689738104736730464686145596471755747798196845381611414709050389396939378656444552817022048287936792881391711831801402735921120898051459077965162186271337227324692780327515210661346930814302301033109237868891961164320115590430906201118416428799281579221251626242975071839408184239799568563853233098157691006553080220977245973275373095854689933962112885770017913444855616682158713785955518413785132774549182382275072574115786244535120124932534179712019834588419473135616387672029448641359077513945028158495938452871421113788103421509103959673390835754441170180797979690513106370398221064312944361732395210386651607255919167112378503121229440062468011246245271275103609241919893609074301856217261874999881681279946863383643744045549867754469358748303267737698777274933449887337577640047446184726979013288795506150023825022120271281894319027648511212203081196354189109063175895804932967329335254935572655459762945475597285332816101053515501109879774508433640509887294162926402919977601681488999785596223414021862635519617513198756307543197676908221244908695556612007712828487595637385232789884851815587124368967723735625354671885398336689027768005645989052032419463875965151954875243103818766416589044043576980619934589091950716535813924334307608214176855896626253713579554614400550779354673058324398298811034830310892546337066191448506215604645859558477412920430668467819592191183312288534034956059158642333178601303621516301436375961337542823874311326136305614289092965358789463513823653295154275839076605394669076230301913059676647065349664093276993708986452400037036160103481083789839833068935317585362184028739124987222046009498271804515569581969360961110700679657098631939880090516069056353552568969812692024110851414024687616049153544952780610350804669677671932786627452386854358005527338677289353155926801368991898090340901697511386308214788908787918973496856725277387118261918198156088083529975591543810935817673841484267816587651884098675756877942850400147745295115859456165317610322219321457086657317593764564897143551796980018082377593498203830351805266149223321547190519776581462208580419811543530560999846968221030929799706287920549052416054942451270602125453381133724252527276957162685483543955937921762319382741516894147297621544071797922455137304914401454262726044275910184028061464672024718026831991639328385492648198994347385114868299965828511793638028121311699293505765979734179145647529845596533244711569713718424576731125746074209504410131490911093395531764276100301598734730636220691255838263292640389843786655375985210860588084118891769047512817797678828443554859409257314242695223591078968539694996149258675672226805734845042749168594004079548588176906264559488847546928732836408369238759963970952567509567073077512628245176243914648444855704043319000105054375103019467360178949679377479378953990948922410970157444646345206982502773773953771251542505983052289178767083288444675743328266170052779400820852054071989270909200176838040049737282105677843271024510558958965568589744688876744128776506678554793817649309161493654109656874607933868678699534533294619478601913649190726329711800947804332745468406391929879390147155312526581421227025391482520197034509646530834855178623146054073823184276137897416070455271660409338279673741353477558815437239565142317834844145876628459662827068834221041521111080260248872828543818062705083980442334687478733557249609727034627812199003174348849817557572991927158761131355034095865076418903047651731795015889802578137863498713258134046619391300402356002499104363162176042296664630863835233674246541161846404969838491754044680373547755888279831983513004376602931702252407253533807286165529584698194650055037846617357201767187993060026929839469420735215685205693137722221987797374717178655067238384078432417441382785271402479678164701134605553361888170107144479229833395172638288261159155592235077635884011135339743658865333484675426945964958485715725032334988808486944919817676356207698874147091550280184108890239267614719070544224368693384193627122484748747451537909788959283024672120192287401642721254335356805228272494057580152021640351800464713104269763316853641991257782396903224477287506634203870152861453983494880719944060769606260027766536499065616656922692315977836938243174470120909485575431167017687873018224851558932429646470105134927237930326675996100482195349285984227822754774786923710026338612545043363462498554948450470259920443324057910423228647850298276160717388932096372346629288746856553813658433483523652128863090801710054609200281829689776211802623838062887651779991281339902123263477056764040717670305942009986745666452612679371341063576327288783789577886572307624897523874951618774631551263566016272580314006096716224940197735054176188236466110192343369571593322247949825128944057618650396621425030051115511343173155204174909184284636107111778008872939652147975086138394369051819873473606837865188580660349394196643228340562022772555769267743140576929980101907177485422500489717986596698446979280301061721536591600825603879145855133420538790298280039300261546325227646949811964817786013196989449274823825526045951399410866040029572262826050943764816770816695940510295309151925173851875469051362327798624496013229200606543977898848990996921181284714985547677099001390020982210918689625200258895064517138372217743458213368508784826809156379042575218816721423845535038240160364147921130226391199809304841656216957750380189067327384545434004935987896851570084596639398837096003383967933739514930841454738876401777460054460300905276940862869285610652388014897858829381690718940223707076978494073696787798525279859871096192732398871731141805113276140368282617467779849802163545242018723104834287038317622540508589478907927877172588059205896163172188646786515986723234284846767714988199027998455176708464687376906282924994438491756114597456750364730627905694216307633034624620714516373293588746819149662913635855262121359307716647518575365032697258656184781669657861242877978314597533818037006223832719008927141760651520756118090317029869922486891921481603095922589567272095735002577684061038815008261421309988312419036034636690533046913076358786842695087453945414847218750241562097726073047994064696641339410380093764828540663598519987758095752816838979289428393719092724227230366218900306618855473097767427120157128944319762231091081883922050838655301609491111694478699241399158764084406394331349126028346014281674218364504869367000091700636351543270886377730736624330017650489432906474511983730614998246723709673482660210542594373204462373324184225357880812779127891285533686932432591981647516953959356099360976950219974118212349218370549914640513375487241443473970325584878650197907219404203315825720642704649325117431374728247772916602912762344238591056095271018092517475473835938446002691281586625115931875619969184889486625308754784366902557782624245047739155639816970341916677031515191585739515435815801603714086297876716290602473303287940708651613506639062207558986450998179873187916427434759189031356338002016947612659539732277849572513406563421811437127097261993553116836614551256936173381876517152260090990385602621120280372703160562862363576994141191318228567331756815120625566076325354865850704623044567160349201564563174758623855785896607145770075541550126889713579014117667419852488952946604816782865431130708687912137619941196685970825899992612985825151376319997414025153479320282360668439185048842026144190721504020923164030914587302361001094137696729263011719288681258430887778751835552025825875350573931235007547184336860387705850994724547613307393664966862839192307358487990563902557244527238435216207211151845418179846648120588777523590964039849801687748605918841176072268024857644642958168245713826330592364689107758285412608676788936900485928126593973311231989493232563133154010203259186775004357125197182416121603991642850039651459190379398254079929149352445676000864064067443087928068107357433811113271118256039183258381237683217472762104440043835225810338701342719848324855167268536269991018846570775517639572692717924128731394303568931275018453292218417342550538185171837850282194152980191117072562193991851905796302529018111582093209485235711646481528173217769307599137675803466946478999960150700467472275210889889053232829953423586543824350528162286088024860735460837927221580692976837030060388669007879598604790118346293376200650791659208922648732561784160690986458580341265968906390010224744071384371504137471229612124967084865977708046918650337262516291680181822700486550705960467979229655878533773639755983616587669869993067212772834157028524160691464337441247935795258693477275721226084347216707237500478360313126205679754152561245633559404528918895823966281315788629166823409681583202004625933139221139569570778594764697594742363048561983333977110235247986171514973628961548261295308394969717487382311060068674838410012699232105470725664203868180041341832389115365189398949168468085215476737515905542398897111478952058555295201225931478219261844900534448900801947480767825341224889218061545031567245409579503633225255129218672877850701096296576181613411543893280314724147268020979599721889250128578355538523502451097949997619317058839748707652333461972308782925219927209406877004100744849893994944030273760837300415254297902007788407468898650577015912944323717681951428356384476682148810746153900892137419421526335065326076406452060998337922562072482824544861117601999205682448320017696170150082712188646432211787377774845949945558943446508823416872747656977526624168692720011960862002756507084083207048260934385358998365282914187480803958667432828857963294686518386020955445759737972560344460247579285433743668472119908368013331583863230026253611263282796302276067804081423727856041450694931000104678094167315352732227695428071082787644717159927191749760618002655282690842477156273586201044964802516452913155096866867855699267568552418990509568364096741656141769913896287643122380142470517381650715745688751745229842584274237518904100967596515453660765622180284349732800209386240224342744537980059625981453690062525090417165646514104529715897005651382836437310804781797559540328779913083091783547880729177070871050083849419410379385429793552187927988267860480491119618448004139667595649960642071941763003120551093519115654982757449182794713011098142555474352357856147635200977110399877967326522669225910994811489084004497164663609711591185245496809998991208265154759850901361786081874019453252188643591332204049333049071713778401887539305445411628779904929282792756655225395719801251171976043375595100424444506459496951855362471975299786224542508652524147249439608233145448210565663543937537344810844778017846362379588272596765384434511216474003232280443896781826896346846135342772659537604885853635795272954583001458967999647150605101653674331131519931679800623462298651985190194580804062320034074952651969651471000449998310274353416995899528411780107738274353558610045073704020976864252233247891127889602882523124541159900625231953079865482506456050626502356380727127545831821415624200545856770354440283993876118665135166017071948096266137593442548152673662968639673082976581598545720885512686679245307294661303765092545901560877767699515616379524420353938894465996545472423194982495726260079941711079505863677978481192337759595726490790007978104239394841758075472128250481827728218888809468961711160185602585552635094298114411268843442908622606888133018391128388122540265830708124800203035590961637458428341728902822624740018049944778419250945897195440397444336312649724358109506967706693675360294807181503768611166138244164982330490834819474273260132651891402212366671541271789239395348055618439879406347700046626737496895714344799334838085654626583191131005706259832134017930246796863319742731762798548690860311542615021183921254520648171328388285270345890492033856177252532628579826280412132958722218145748392208798393733985894574535865002286859775710837213450958716387295257516736084402598684358535091722515644398308742852293599034141312446815341559564215241161676109943367053980605043645297721113627269830674395409145604734874855253210461428195823400057806791736968875641254560753517643378637899771268858425436513374669203366396996868856409250321461858397935990402665797265980321908021098928360724786961607510521232783035333288607119878214722161758097401182289969326102723161307925414491070231979001924808842058554202409563519860466864257744252056345738076511041073008667130749150580560583164112846820291702445930603576100939442293934682994669770610965159752413298362000302215658235494986530678476274001610950673541331731698643308309227437844450085782551545285584501228305498063747819643235197069743449237582776288378220475173266717656783954932544899315511065789492836582246457996383866513882564662375879283645862567946769065422753756894464480896916520691191578503984984320607717523064661137628657860614712225323715407757154815789948206481401328448284447398191018916126357384551717300434583324228049546992119084816798924938570301731100652743824327645666502354714406785785300521988708741683781727421564211646962557170163418610099039044957169181570426673439083543340716102036731693928118215099688291560951955711616933114547952644102127128799556529234140532995514553207168318372412639951566608380595171124997624831905441556659287408562234523958616094359624462778332765721238917593206965965286539874768395203624803189809072899228563705837446725937650341508481136499009507103279394937017859964712494100968891930287837639317443557114625047974948201340094642423887244801014731410807336777984467025160943134413564403125456044159548697662868422396835039209944247622146152668153704943874558670641539975168221736734583079149589437600766457730328905169893121796539783598680547413099446029013247704959198859677741938246031723277865749744815176043039809113058136059503297950346498929468010270511091561907645953120528649155893442834312942547468059702234615637402574701672286715786572822258674937756340524761526060892238031835269046102089172548698373205313204299089362318687745469093306007652746238537785069390849829775943144809139531653064509894199260964930334887275373952437799125022010734461106826714776865635495035293219120626337250476251914441981430143109904197738892596852299767555455271911874165382060036767938521850292346001469815605784624916055746470664081570527693788886876361076057898998189251508547515871500694042331252856637976563100652183873815166396468580088029674003562459086663040857619377448432407107509494554428896034804723314417469695866509317622494779030005546757932646739889608326498189050708444999797688699514180138629818174518266770137150011296659333098721922335341608859105774313504357067089865588362799394223951359483910325903965570170041272781784993503159435520827543445777539030605739269140869000314656697735468883711403239565968892567758722061511663934546868779626337508791584896606147891069261937775812970529419690183533962334548983016263179454168525646962889971786816900064034654587864063279314451906313901401196048119267431050993721526705646159901544354397271167210516339216266661022081406658761640255162781813694633960117072719165974117177415476032742577821769421073901463405545314433311784682502569540018608649693024188557129546393035668812134896193741197448578656714453526566221481146515438712237782710133539876344980646385736179204627699553301193128069859682006681031007293776503468367133179060962914679264207580888887199187759987606735491724926952662277248102507745572463317494436250306737045935134762790849977207355862946008718786023294634818266163000149098717020493494726479974234889216699104433586970302404190938317432506189466019452465654479744436195153229003711009792417915108096602958025159398783409067623952202192652609881254168218259840664642370977447613225326110102228182662226992083825447271946674522130089047744133441022049561847943816148241165393664809740522192333709057643162216349999700825040189443933025774422205547727146411688095754852095369525394183026528864046557677092250652987643627717141537638662753583942428601104861962664628668172335954960697032390712148339431536256786632123089405690764890473555414246067582917278222442046182776876238523113138119011512422932924946351071893684682011200323518513172304188066877629741043789808596828214638222338994856058219404941891813665929220876166899711768472498598714682908835415908630511796639517904182120025510861899465179182215841338879504116684088448698514741135965400095359257312157080836358541229259156925189783979753378119305880683984490205951334147598702194390960613588680815830705794341650596064502141251199393613552416752220200560448111269788585524002056815242701128301302113047846294062655417566629913963447659390079993493977351011745335955240985386742786359586466206582378039289018537806596972638832405709025304842814656983390724803722016121144515578070209505829037709196791764039030809437846711388866615162741455393787985277906268077029874956591339137878682177012187123137154029272309010070335810979257617821355994811025860397772852466465694036977683544182055913322645139014277863912423677277973673576852648825305701949830653746284574965653764030285212145368374106838854331764565265563188072809947292744906919430626769402948148274857236124087602358720798376431402618519899656281826743771437329186560851347060091013000348809601152335146978549028618902994963017528946319214445090556953479674329635241984711641559312837258387426826906139945844952847029262549332955564824130399825416670879884721348033330305344298020977813296055507927592586516132253304662687442383967708935551339283969063621843292545454562754889994424929706976137270383977870610705170972642967026913896159601017263697297557451784023932215389207841349779437039501387619108556225494432784281529030916988460805475327795340450136237037721476336943501110872420441370917546112894421195740940763122217606300835626067341086957191543360206482252266554450471108600589890396846023319676746856964216996841206213809882477974061592932136950245025649136937801386824884879252615443439210211633217843060225176708897132568746736561190844621635729077464536330872822793775294463411523162124553810458796884817983823013497702987361301781706237451730473110305312684321758387462841399012589823930645712254427466373659658286038364436923444330916187110311076656972814483990933250477673032174798899036068609478466547029694440199972801680172869402068255209772787908142357981932743196961894353655478571877457432986754596135629756460314889011307201894148185202856287191108055153702931480858540657940467159958193551564649546402517979229953601787374527456357782033832181366681475247649366187558986986411570046422820464854098911022222640570548023164117396949796724845642870401497643991052464462832105989967953270063766887628393921707624109744799808349356924199374336723103363238040251100999993766335166782803021838514532190134195675804988917553268158789392752112791905474142325941601986037695873639903582996682166901420505521424677969230912208225460163110792770479236588233317104890482631289455345220864180748061535979536074077669950298339557606894605390324100429448273280723247111998398084753753163246405031188521484616364384996333007955199411012576867484254738322569980597608576465550548164691719181713167900954840420385889709751028244943292943837624460731948995362546197782338202904713299296102559855088915282415400547661861499658457211956876235815510661306697953083229332914682747393141436926583713146338756599696707377751618866748069037418306740121939326080465995612093764292185494740450691939272512257931981497995649790278171939354649180260586196865707259981812642284754128502188220551485668838740789896601481301879642268430278426904810947444132604801492841580713591539865999410762632050097071037840671120290715337351981355851405348069284278172472900542094122849589060329694767271274419241847066507833850250472484023439344714367264560735575012700217583849736730803376497432391658460271178792919791163351639060733584894522642492319671678404096984430595208839029628857338598129318371719592352638360231934305746948004629011445559062897298915771964417300634899971930328282805115670886741392144239523049383891658358770055649751535404978101455492572816718127492938701073932666970262464782873159409135993036386774961486651768135535471930238865562176761917641320527214248465000778250077536888818505629948825331664933043964080731731796397437009849920620546682724177250817398349901682619346395197120465594530227089764631046963255205359391427837650670682379952593898031562185957671939812209980089400975213761965119117882940353014067325180266775080362582975285842126130078265627541052265546332458497806045112064029270608437485836915258628811068965667787036391561381135291274674566465883288696507290631410027509115318801686655725618345392952428337992644776153302059896017172327995936485646568136956592850728640271729758462518288651722769120890562917398838838862620886443110580806893413483420936169019201565734096426084374217768778391567168193982692609053597534825154852259673090931382324138685567329968654468451852836437726266927437877739296424957696785540503026490331072177966294240855265816212085970721946544903023209973239862545690271990531339019304668216589827093651312333125017450267770089029621481745892313239191939737049481065643099889752027151451104059944547325398023152779065010035630398244756276537637565412809391607094845250662970323753467588839267898705352266094607061442616924677543910542987793051693424240634229146367627904070400489973279275612498168406315514983178797820772972675003086969164171685733273908992896087914946192306913163412427221027042019409413774139750388718292465586612022191701577844220850759146679805088128809275228179034342918670600648679677241264711742624520293375140472294667159280720285084382073772460137383121302335192640822903979321205927031095220191759309723654910242747311130431738035080390064007545564094999479184084333411499506022148891206076503258410197267279541747393988829624255841628468393502799262217466083934050878344450721753159454693963610346246964907673301918143431533508751843389172579917859918193779436175641623459900105503094272700554992046724253496986968728952693855619996845587504012315310563169794354243978652133801743716055389058125867720000337794636398824298171699744580783925349100704656393889269350618748652886199954376364089711343442704560987618459333183421130070398871018564629100239514276174215893264337453247630071169810924690746211119291680536039040136440638956586268477185572299796479890366540189240587888887136090638114949366382536478323679513647729205360271407082562812367765630359572568283246351089735473531169451639753195745953461415405477896068523358481078306405163180613958789327091234061736411003362401295985899191187332183914399921227169915080400273066278263135914563570816796182543662341254387855991922198939623411549327091818766861708788381928585492518066457895208062670920140411429537035222350526307838796597211521010769901913221660856736318387034264739144206018505487956716227279407775205129621130333729207425296561915324796967269239563662736985446326673686989789051652380673538515216046140437387270559626221895016639087003158718011864563834524189947722467033753014314384017878471476543891732423850749775525740053401380593962361683098816982482417878767598062583906618901066519628966362623809975695799217054377308702104989723623604298808192619077780559368757583122867938265482318452196490903340215775508611568799250648088546647889871508922310667852499391260617537907382707883178917848733734797281731799014161603635406266656626090192848311694158188412724036716898221691546086495096633264805135422370432287980720655720154255995532712299442868289130832295003974819982722006779557660276752480776560650401127197642522292581574015938767242694559121549554057823549633706632630317604916717931114908521250859803743716872851961629884780754622028513950793287597796859200360370827739675608472397285753350213476816990501487255127318118814261063374653028087023195875218589437144881513778254320473838991468055636710343828788462327065238823613308156748000499731890953706399994480558867091359570952204557901902091711295632677666858050936301814063040067305645184495146749354218024164184425652788592997602684384617871420644851967517480555373550460009192737181165271836131025893698973465173401273974525217027205232199063969412669226948415437920514467699766943236822064889992058128159068801605300599594492970252920406187661796721158347692912280058406607173733033069797702535227409137329809276738795891103851236136463861773617154244806986624945417106571097961776914628686309614448455740196119654916641208276696151623184303432460074598745958517960379411302998275984322799744050170977228286075710555214186176512789031233698283785840382208846787954826976728122541526642276827732606881339508409550243747832396279140095320613929916239275663964905851106143399654662377230079344919183539321925651663452135086004072731987715582704256972219568985622590719414258147345946253951206688981531051562146171960939619733782983862504634253017223774710596148478297721475560413876015237998480495406893494653900217389650163427169222902291365289830815487550053716553975546508472778037928488644243158189666166532620765644360190880383846283130217865979141625883511226949083221309444746131006001347768114393780698842704336412086798751816766487748834372493966275959090090372609722070178071655072462088060555710176388674931588668727857300747327129400958474907299284132599446060599179794044967139772858079737960132976625673121206554729885915637522966804131610616249635821993584587778791510969005467038490146590641677608663316211775936666481102713544906148271779077820577850288724691459033692545203145368210316992193421014383436920098538708229131831154068749213066117208352103717047320818575604464830791858789271622608772380856920226890614739175083261242834814542258956449430988711408282254159075460718445137964192020727885489328176953357698977470456060444037008016397663553567423083460700151538261026888563868066622720135925231576044346599996431329658868414278958158884401309574834921104656013756290703370762842622179240440341599312608104120147949697616114900534302521803573896637895098583189038126831088504039952549648764202277535738016021117461051746194068090404056613957970422539667384941842987155470209852598110384320959024047076328829963767985022393610641785011632599921478239563096103419146012422267122593587775600876720881833027365597770541593870260999431969089289937772832577885530307918036519576410548571262653982683884137265615282207653229105934724852103081452279611009386260503788227895629973762668850000362417760886405386107246274790651085186324424811850723752153489197591232144686686213226741478620439656856765832409508500961107047476435701370917331196377833922017376601494047933117664701771826889348058606824914293760260907307379276851437593459797942845508028310584112188309849681871297103483819134855689047891909697926012619880268249302689049504585834819907355837689574962384435255887624844551320400874989219272122792129674166791077150079015026386663880910961925579763555740697728707747417334472172425105822456276969026920380653900022264949889113025514482711018979104630287713979299064746879554260847287563250186501227126248808502535635076209533469796249930992836293299622482761908791243012698806553809618090207627276604391115772543296121013862670144485914594268677173424203894712649422177961277227628590312858870748844408471354231536397228818895947846918379071798451586310119888746068120219783512130016888884510780951530569303313494080244059989196900951628190729934469229437008132800399208067437594842028546922618676786155610171223793635647292367161250865817317758376129613849545258188236249012813654478501354802054765677270927947672703695926817020032931259955409189340568371207887994241464553610264460293232478219807196828408515030570947289820950070427890261635141539120613167711316182835536661478575689191455481441951249267101570965372473202837216584674341066439417494192487101330884831004168444129739289090509699391234221409206977670745904363921195684823270616369353624311370458941416364482420279640635273464729620433561346001253537496694118051291819070777311043344681724992636843876154874631210716026358052552085148562808099483287446070986665200140954262146830285044512430641649261594581804192640386640719812009720291113512642789434993479199714007097932406490648278833312865411472533149257039953520884711548960953309260059255442637112547539974938013522919038146149813927109244655468063231623382304753522372915038946790254260989021506580917253489582239670007333004835118079814853369165107072991311285341693069409522440314086051053875828997731030681694514948201749465379790571847122764979920907037894368198864527931593730043159014830002205623311831886888806685132066393256647625297787040381103361752334654229045231942012911305130924461854538127567319975372208295784081575852783856424884980936770147732121491609147007671439428291455475673204931575932299841556483882301962607041391594045092175584066266261473067125717891306047125211434459243448994675507067595968734831412702044786108777736434008694401864800696689387095523271132981882062516661177328627965950940808088315761243011454809125280303964792967375594648429680215742998059692540050288423693810893678546110554600059529644987383041986851874712777836340963953243366216702378381769662064939215695093946822049058438711169774811913216032252163009814445780611469274787339786407481524814070901225660933165105800280663903163286885681076924046421097170722568149782981056140895445005297571759067483715235181422502470485488647456139851238103241726601593332961988584217430388145712184129154657457332386501706999066808306502005603949563778025904375192672551455750115299788483530580323145633326958133649157714007587876176638008589848531446468218870752947060243804977706749026659832721020265657503579229242957412199582055330737434879659338751255504787903007867837488588629430310666119090824269055301363515565543946656339628186655987544742131497475529765595056518734083553219599131346269766703348256532296926115423138584820582632057752445808156262589828345968116753718345933309078254803795615174482850976641288308323754316077015127587093529499000994994221090948994194693321657366472776756667582907617807014816064471575541733474974468425464915427110124856537546028268072362731039142796218352149963444455044330768267630893357951429498090413197532453617803026847998665959176841700835515078374548734789253201268686829092652528375345490802670220578305356163042901528261665736124179493744174158603559828166340966197415346628778494502571412310506317452162926828895100756872604314554775673622272885101480837575598905410080820833727222517358891183821309598635568952251794654842363060664246082648415153326560700674940984271540388015353660872007119981497847319972038547708878219554942920085804788579528190217426117315922393008183462060548717202836663465986614745852455202036315783731026567981743265373173200178100939814163069720765115853750358504709476108812972883472196977580119355693187151663372914911694124715811392139713389308062926688921182861297751567823142923584236573505272495913055828715609459457015750482743407155003808231492289670428580743745039710889389782013378288704322633711716834021277000696959661053057709340867853693987752751746885584781676498855933645820009591233463707497961936849537791678146342093674510197226334697725745533795571548425841636878150118136371600329774234459828370219263974392179008617980108321941845733478477159506839571905381598859008531413692219840673671755550348295293474477215324130759070609214676885922972897625783272269358462034946060886420578619673391105115328691163391119889522494143079715220932658619407727722357840727467522673421955903933220832002828880020070519714428515222588710172765437248822753438539048484678383442217486451222035932652446036045535978885697896295943963180028502444071633833170988836759671201120299282147151507047488690697425463230507709045788600946850506876105817738243745408740894060284356305154579956381380457277696155587435790064914668580158499892246790533771511157466466561403724023480405986865391338105497198576983283996806259044558287557984061427739469781974885240941663322067830760473286895428864709469860883967467881968448835148551712664353641359105666060214795623780057966777609781216945872351751398713713280880147440496180513923689794112023159441011819844003409320227403436423880306478263287605014411530117244266190988141212197399568322111275690432606305870938646916944109554985047204712709555874477944180415675612576243032434415370819814993607109890948079738367749850977868955427025692067570018599678416932219502694070637723460374571260480910334768885416089672738738775347672490342287788117372524501185048267173088058482798402081211894063638357650712524862643187542486433937633678082788825685895265497871058081664633743434765306887269482705925322024708975132689083811861150570753190776853545062254418374327445447232546696621911966175442305611854439975729669137076957765744071720389559052257454421815449885853038764677066404634024214720734768979773219094037199628294552910784141766815509614780390369150671094022940494342846984794152193653790992141131700686597084563204835593319701817571633875660670554808794053225041122507404991663750189461178225260424110293448852704511404460700893589819540038204750591261847269913126321903209483821460954766142675078809973553565556896754382303853434694598158016065136153945454190139290471572144535096597836756425656458261346114944344938426530649079986101904854548875660025058949685346634154112273921802499167502218384607115836148539363604861759310714997006589198876666111215056819412767209943063121335247270735059019708789600602617449365771891519690417946488296077225072565201854863324713832227267384047736335014167209079207015712271345089076703249408721649179138954895803740266019289100583812349348326472380394464058685423502898863014701838723360848512507266026589447598058555889036460692848701834445255545699917579142356664343480397377428942760852443423058967920678547372751242262867600776578712415044123848884708765032489308487946251849147675512241947124538941501158147768009752583446637898991758763628811243950067717675211831814780214747471829126395050024215556167761381044344151089782105502180185747065994835505328967030999341128843902329064934640951914528434773530134355908392149889000046553349532691022120704462702477823808379992820448488652272909234559481366912432989180788565974419860846104478654587758057915381997190962754624715964381999213634235517837457790277024417688809245807561993347557156212290845351255615990172885772200291018216746577815844781766630377330437373768879049475876414570979012901220418482420064907323994298664983698782824413373978994883413863396009309187533910023566388190176559992400293698595763559134787035828093607157235821775586851496405673569714943146318756224704877186782612048587158083877854469220960259624532892646689541129594005570598438920554282756109718345800221390781487837948742611350374972978073799530257279958711616566231247416582757817295261942771774656730022274623233462440988793891911137580180189399223624107946610061943410009586504747698976828663468688218937164229908439052208000431317070385868906382745914576406998800762199206630941440798790978142219542875466391145551666569473282277938574640584158776553223728914392715226458376515864323352484139322094035841985928399812590489241003618818884776561274988239142492217820187538482768850140779821043112568212186063819520920977480891973273515477923152036206578513955169749925894741252318829431376790987885516806646089766207120981234373137272389541776186470504720511885719172466881384526795462754396391168209358092499490829857795295657840446008526494050182315543305040735347079149241369054291094012092912756159691504702683992902290930527180269986771341518343264234564575380149042725173971819318277502688045777877873636337842351782963023164354835198607446611778342677518712615701456051125324364823825874609271782521295050269841061722231871839201902951387906996500375090128581330290045021445819333465009958060081171262535377281981617953133433317611045308888015338703105787880457028558463719604365714984948711751406105780301351184311908525127615698827087140628519747482341053444866634207974324338715557015304616894840688052291860520660727423195624716831753757402595554705657432097984028360157037841190527477322836320816248630764211380244628789412409471783755982876751013140642408672509990178928144124172401136951692310126192938384620635794144867213730246404354338147858449785747576243342170835105183381294470265876055797295179875661348877828074970078516174157118465838304936130152246564837620574981326229353046018882802279348303247409545981874562205706156398720670981251594599315700008587660506478561900361939663497327579278308315736610924830796686008727728092061859987921271395597194050988357496878304522327355494721652823282973999637515479548320817190873138393468980017227833531360561344470569272675769485947655640118009495662453943728557514649215758047258723822973716064533728587053787869870030849935755786161026022306620454501965162692918172164713883600556357946584492178820680633324915473201120951533637654252706401814639506067781023020337062115343871581220212557583011201560722164078045766350622590709324725707960070617249973350427097126297290217998547517642274042671968851640445276868972760587707223513996445610111616912086792893893480108725189822102164261939924448874490053248859420873312284138719207530874675379657092196252963200500822811633674964823892654353636807149208604892646629108348563150385428549539501302079057826546885540143439230463850721523018508921508065480621196476732113361799669571978784658083398505839986268321719102554619574749567627995012688309740671035022465641645976666351869381423959380209742847898760228473790180040160431434637061608581829199113454724075085340059991898375030193766657036594938769420803637272004476843380757580791105895757432058836220117618992199401659045496190152453233646499412436692654034531394028150091059472547002928884659178560615492597372865522649366393974089311054503446517037705762990900388159520668544310509541736763448488584854584613973449500577345029537399109857881692284753706262071094931100762374592412742481158234691217421915025825553520083577710050731267418569759991900566925683072475476741617680605233023560999017022741700177900817336097517208835895251037528284309325220619889424647201423128677114474726845779412661039671362817555323526008426506157277602502866447238379541113237906812168570992546308065079108956804573195039545129175584724700082905588016040992191061744391171781237813947065879639364327872669737157962857965185680168600105340607327062524807129359492284855329693897043129995211395261428546735917218714350101112821783432016101655535848679477914731773505540579862643717298220374978567540128698677676158301253178277086388325697274187830486855385913445975057552010321166478304379120404750071275229516352757510339093058081585377594114726214006467315257322720485644319184750457995334309356883755754142326073586190052991704029344815623888875158033311554771478862353719061505599019553061990597783602247604170145031178761089738785138944689508060691964359794772965154990248371274975866642257591225369152965874786739978256033182337719605301271344933293192125406124642447208934846485284926529934465587688282703467695273300329611711127992553127893026091938917690224154383140309747603471915288370900083495179871791849721101191550451184178632436305425764003426452812052251273811085888538640490279593329031092740166012694238272704104472490099879537383089679638987027304859256396167390275869249005777103862097019229281392914688831810990078820234926457674137500339093568219095421416874098903447944676814204038952164936904980738289567374276045577312705160380192962042172170626192086611688848083959960003027560667402027134603395076201899855996774708396163563589637124749826294222521340424269743891176280242689435744229269070403893847575726146834944925537510162132533395340113517996676556869744454993844303193703840320833296747069463821581910442014676967931530158823627342142752637082862241551179793313434427376106638244653006689768014852638788261966683395457702140177533808356608682548428653075402670452964430682862998167181558369296476133891151795145458311709629693832346686536049870187768590074453209478960392969624567408712551085174095737538219188640726358775810267073564204314605867431058614561662977521467017411767541620482530494847443285275148788710384226997650119696686011593475259646111816564990364981777155487653302649165049948406394456798190260607916717879578751709211053466647488434166498465247235112573056910456359559320301196173634333918623544238866032599276568299940719466456771325262956335778528535751702780818246447550646813662568106707989084030109879005167619725562302191164239330813618826674720863447383823056911526437057729415528397753038763641095735915310857776418350627596625191069852896964584753241985740461382001706750948754880675305698451843722105960490078673468072802959351784912687478978523354762163639906126072493504383804759513090878540879469409329799824487928849157964663569964795315347678438302502899373876546709566699596686275132859833128603000932153223377980667970216671338254960451837695578421717211249464244167931926352795297722524480038508841597888867806553968545916536205269080050921638154432604058989639600535499415188388937183718720904103880559726983008840338211708200194569357832394529717547471242592637707941689547211334906414913744432189862061786957142808732908125165502424717247493874291118637102652116471150061902443714982303656602307089838497534612961442093358113330834334335682763543620277765960392762886595257399297243178666279654994561292270814459082483784733197119368899093599653320949651719858796193428215900150309575629493050421862973126710917387476292939145446361488988385870867306966778187683768211774245013857982870581659692755115329066415321858734920364507034588244141336374847869650507514533150522434472106999722710266978437094025776422026130847783472566282665368460959773486790972384820422151717541394926880159304717763745236048721880066558292347058963971712844601825497534025177826083352776357550158036887558439960319230840758754557649281852680744864642870424526853319148111156529893601806287186867863726613656459054768099963941183875097102231414378910826759945107154057188901339461030111395202726517236144483583581338218720881757529466668099790335777791597502056281944106301645751298513327016370883327008211365639178555060513240455694947145088927539881507997145576379774032302492150125310689534056670186343081356084130858132071926138086526086191912626818352288184963027418820158488845028949537212602153506696326962357534230138058503725409504418538856465552989480319781432898683680981403872407886279416358508621038250033653422233131440862597582935301514125363905530056195886447837363996830685603573575344091088877625720480414748424327806619578142447122942709971401743714605650229383400641447920804270340961378619792265671052278616912602203819269429135472200140717690607195155118914606054220187751304765560502823086143992101179935729208945527749920946061685538191225259068674890533609329528712651312233103276036851836589679739371951691755952574654820565576764509805503505269346989997383455694777021586895337846652295024963011045958226301169344024384060244328875691241060351752821148397600050792078623243903999658208901081949962419473410366402925366072831974010333129105370339784000492431275222979401314315845584493318498181372221268633675568260689392081751689032767059323513716769189818886001557741419861037617993891868133105170532243669057742710229193040767090948703814324373046953917787693579205770630108048680306241873455887796907552161350304674390342380477687919882945754714333186659675867334599405919728422134229362608476088690882142203528534963847601992646023072234560490219753342949829916792387302421477902618203345526322163296913654482072154976687449084403863110214809792907260025944650453561720278682669343302327796106466872373922510343033132330392162892309396648617868441707352717546858682891303054513883251600718437775895979686500149341038286302753204504985240421406026237111548832884505993809956229805930043898243124942437023102826664811242118641902088627083178608387766063595245075821502536441432447358994763563742719693188503142324357138901416209005881420678869581081022141180305980086376179168255677220607197229513444608331627719223032057009473210401844140767965693700049100565611469515517084592779821647326444607326706675742250062191689444113768041230985701411219679501356557982156071296559297706322053686652862316340298866795802798937392361173423874944598113182220673760696639382931441707927308066439054643279517563570745591932491021920433013758661921345009071508553670078194666379701055444697208418608763008542965694045358488583920437948593655482758634056458743353210579903392709722146549842585160704137349835471207820187792521703911621630968031271739727804864424556251009787806073805010550031739218471253652980413732049290203359112825185999550641186833597907659974238251148523680698007333747381884062828349681508027530911473502587326905440507942748666133889835816957073027841491279153977074474804833868658986745466122109671350473228013980171636384559738823628823119822729671951773588767072206471600577917799846976824217704962964653435434544102836414250723192781648844716934465232248980131772403134560352242465951465081207949949199505851277323293197583071654385113152881733086849443252076296789985253684965135769212535095595898208568793982809028026218399246934045580726130977833935406550517228064559761144855055711408611101447891776264313387968436838350062640480190498447412144880695731649992429966154306506335677246491048037275670711572686084328265450625440400573080484774591082252073557653535213167893912225380591835209924167942799374526331098809173651737047871473407985809864698347711102775553836238107547012969808528010540825890612349208046846255395073963522005721609546738255693794254875248300978681287978482803117291745141779026069565485187503653369083074380378374236729457995356598998319271151346765595944538299383610806809581185301731333185911977485757827187063188715880150445533792064083323821946721470639644350179013838170852506281598090124714230023259896136510087861980948719105501466341803387634389162145982316314811899311006736073570214478329461792129425494443873615200467357529968901357705408834476851899184608820388094100127746331903274390001542921966921638902973332683832131289257379466290268143887890408494312560034225416777438071559232293393494865997035358299506533818463954980997250972897811709492839115569846701919652093982317781660892213530931690601971880285013007926726057596191013997547099751994678982751319940136301623430135697883509530607749003057224611475461768505969544637255220539572079301863986659348640286136738449276790853292439650314359715028253589673334974275475717195356135612976168802406551739171801961158644477884842305824399506783541080612407657248392841622036011578400105761114415145615204256666692284678540778605602485036883601845205371441708921331222288842781168534100901201970438926329564511517207328738445171126990464999284235510792047752630348783077338953561546796994821985646297720614316195342234049439750842251242559289023968123418322707422734073926327396609073242452507787083795836278409905504594948783930722824761214397746509553631212110326819387801751134985511977291874876755482520607762674551812299048724832719110840123246493757437251033413625054243115809825967266105847711926917160389722040677810430006397727570161869705371853235308239392310884602420836554087900755126773889442554302936284946479199219800558161767702432851135871168808078711972657885491556673738699276025590670530333236144299460635318734361833420839578011012020445969097865001067548273751453851757203193219545503970052715858385158035593333385004167178776580954822499354399747761729133444604407471281612576630495869685920643468666588052719956826796263538594670258884792841671405744443636153939530114066424922492805630765878862796940036269715847981381888961264353934870030104830259723459928480211378360974596488183576915711952226981834321136285044354324728337355812890144673670981927259070040863013089816283775621818711749738321893167095084648492983034632430122023458322016976468921686590407040499335018782995441396500777710061481772186282408220332103330200130277033753043144742108468383507231286591247859567616756090748946131138050800466539414550756895559449640731377926474151457045433656923707467834514880032192620014537204493683437947041621080400513486757984230995405979395531198972890395821944588824891642127716739993455286111692957463489631171298168465088568748512915046531089549240421252958709487195586396308779603902110785180209249969275630226461934798033575690771391817147503046412789821371453751073181994401326461205939976458860998719439492011642125281618172629839039584045987363028472655380471063492240172033712918124502799620637686356304645890602922111427384003932053045148091498437564893126126027108929406951101076031533984556928136783130168390907835863624791338517911074525782035287664514085117419235073070034086776286799381508716374960565166412881283095901259037605131382057074703211523341842640856768548865055269924539363999666157224370108050499453954716706085367465850547655905815885238390656817527547033698257883539971146486573459347981231310659581653891442614997782986316402435809999899161297386850847275738014886605303117879450514015426946012386904486293120790158185035482044304784198223545336179125866601383121813454732050022154464978076062835985643083886806797512699883540612877519993151855626990612813229205310134947257672727042157124164362245277545456360160530880975615287851484194026754914836136431868679445161527336222028454148140260821111926783009402084652369715242207361412594583645862243217737423798671941272340024149965137456292146526390948438284236249650848121969292228265253811906416699814894177489094398269280390429881153960824322351346237694768625093601118760879146798692941378040494088823380245784219698588593059891758252584941669851982034218413697241286945839601358449458069033556719334624404814164966125164432349147584917051847315250921564666754659779712466099063825940129617519461900860460596189820644065942295273207782245667527343297624632833746229744826907247510111075134669164993891955509070047848606425523117020767535845196705493226892502720920544248795928700003491953793749578475354160026865595663443050282077296664799816424030715734135094951069715965223282985369384347514875854832698958326589401029007486088590206233290734757962371560433874232353742776428431774038165625411628785415494046706635888734075153437882463243632316241288972088776821405690022196781737775031853151473908949976884597892900680310553239057065897901296308412848230497397097601281535563322096707224630759834453119965383407731633309258402491094404252437012223778770650819479775376093914548368511927002589903303184713623462487489908623465783595232163010017682636158936856148125388864880533561118560597539187617668175475149716711587083152804184502664325069491810345638581133934310732208519979996185980249997347751917866408457605112881739872700628449678479783931995504484886592005077256833838639263428886336974442895718606150458189382602378558989615664579825908277146062219035509665721862602015637897453776452020805699057300228446897137603752023615521444657070888261273723077092235988136738482157996561118165162384239236971774126700109446928825677897900296065429954275391414536855569236194628096394099200890740518804533547717177674045852551872138891829152103125655936418845576154886736293767604072220047054286663632724938351634153994109638695711223727362538711807268705357960734014089829950970244561326848899440849870999153228283040797272389822372937392426924672439899739454991324102730977274100833005201117523106444771938084891289840261733987219772752965281156021384027962190562082584732199038083746029811367605599761030546684407135183370169310436232849379165249592446916850783221611837620464622727512994369932952251610586299323201054406185711743453872035657168481171077271504434794050142523584895314605509500534273901395840756447029762453169581745114787594234751896769700379918537059201331107465874850072386122846321832969339687605982324239353081598940601180057377834697163387807845221100756891403598865637762583283344460549352201017711490585678402763745190180807068338035525974198893607827597854468176834008238131529730532901017437616593326857649475570415021262646949304213004773229539540033785178805086953847065602923898958039772729010751045405338909082295856424349579814834199879538368855321196948902052697211495829437481166726907591020673351503673600902955266034029089312943013503872159470203598934090844915488436737683003527846306101823753082595035452164210406223150409679437293530514107511641001818452728047370573579704435436271496752252083701317026808820370915377710076641201393503263892602016166741569807312861041679748231503097629742010842462520924517278990056561823381321530689460222851704263814749387409519559897638711808987623163870898967850602100436392062227589232121367064633391226061233579743126896800318442892692098917256994772519635788177012298794303368284641072485600488091770088727860069072741549150895336498770035982453959193046461835621161786359598853809527458445742707639631603839204759976067754783055183143476912485177759199673699056674631260165853455258147579269076366949649716608140221468088985346712767727177677939867585021302691459745093089177467633003590233339357649913532467297038052044191939822937550329213493537188625670467084865616946818674578035078778769463025303481082109299244601247943545265291877591049346483449916645547753410995850397418204753057248478630025344488580654675707035359945040721857423843621253683894810120896003854707239955053991043932500362797553553488084172663685250509628521933507258030497564134872121508012235925724937603143420056228655352987034536520086587272696900203292504363544977743256789482800951800857324107790401396577621220213442417223934492032819561848820192864863178363912836401640131718109051802866792877231464865581186557508483135063003558074518401573976634513680211095562029611278804349432781428553485425969464644899063589220004015313806443217504478441110926285769599852446265190484980204424604276112026892955658396268262106603814568692405763777926297006372764762849430030870661445541773253735247412777899369211052120833567815168141183285507563216025421532964072311465771560445766780960567325799194846304989356594750836564145303352375174934249300974296809728755129698609681387548581176331503968665538413800688084464793800184394767113716465834297969885869074525091908772753707063589298434360958205327532159156709971493514074585971339078528439274449450602994377258844272514130293308450294108044987337931210685749870250031535981472543536954902833552851388570981857337334251539786807299327840724106101481814089959925404605912575870641930172946346729267081101690058722003725130687945548967704956240942424998284320105650828541140224729454826772607688228740488526979752415012849136048239876842342959252487532117648033403574829018685024335702478593966459608367171120606425816037357323365762955492898079944155479343483722290888382063641508726173644520956147871374408403368627713012426673221905636017123029015153070656164295114982660079069250305889443205085655031436303236614712394578886107575745824728639392906145389852511520497183951435269074942643798164305180798230275702024553972142509890580410850715542610188846233971143950205648118854014743451288027930883756831330541004262170522687068268616563881926206455892748830185378643332822287060227513263920724730629636085074656760248714740585265612260667490804547282507080406252936345532832166609558209150799266005900753203861327440898298467258090555685622858712449489718767251630109298878472779210034178137103995013282903641617938311047545964287606545084719360402792604361548680377906613464157175129534902399870739636214648727550932964368297149194591877713392537165509444818268053675237813701395465749885769669559396184229413499391980089580532697933563820653278536607837086060046362358040071085557467883558547249034459465200171489002357587537829511880466239322455229966791019317884647417781747380924193190829008680860039190623464735629449579473020459320307166299968251936270257339727099648289510796703886595126832356546835488883134228727933301998385586044637661569332188977418129131745971340047190269473346091013953725071207859051020434561589063602593106176675249180053648424909287308562508730997742244092576964920246276563597524808142204299361665111351844306956926979468841966543688101787808902927354322612710901161563755812091119724018974146023544756944434812693299016427880812711950806915960811478959892091693097638442235878594446405705585512991371565544522208461389008685562689064245104056796301510286752953303829499393460997882840330910521621213163262353753012752790140050691231441134835095530869478727407865958460297589676265968480740941287783424540802729959238436840860457909932983681823816478532032274518306118922408692777815134053693151319043131007265806708666756080144074604036819785749748250563836556541988464150818549899283369732914523691695868697616619498379960715258754273501534927409810067512966336687509883613948442372762153829541631501359844031424300329316946514426216082747564938180961366342545641163387081406906096302260080946499154193944647418969377070035282340753912492705342069312619816176180030172355619608569946514436734259790909549290184014774075556963956037400125397207536408888857172921286298501255571906500620677227287054038579080023054071941573451992138874437348091725360099058199049142813557447779028668961670963086376720558965673761743264039470087357684736427852024900718818220033043041134479221802989299781173288132218699901262752335013900093723991714560447370936619064450001500348794120975979231660683754690858611009419014794558342262946796460810867687178404467785385057006272031692363268995159497205424334802563487938264159235033760949924486065484252560059903332463318647415070004741897036824301540977143511232423397023562684044109198893965255607944364161076606635792324035650778078572614444289654787858765452070996420281695604075666286588404386505582495413819933329125392565187939070714717417064034510679174679357301941448812688453981242771599306332449933264753557339484483678773593734777473925310199462772170714064709634181128351670139028391589007658962630670104671973576455811714914275698873995596517596949226884371897465408091237841217301906577870141480744693406867912787319490868792404904862423956776663354058933138343010299243280447912099526339176504321661908783059730341375476991718306151368071339536640550876547792776119328031259011722322846824507667743230521882286514977905341469043220122047398342544626999397922714273438625971474980826381374791905247408014307708854668454185449137396041376110682183921953680163842544133716660452033072118342444177283573357263273457658706602587313161992947108705551646228401644137424061086725088535752039522650878865730036700210105719836197460266024273297413731094232206836777069427450519054760134490385555577226420728597178897224988190426372485714353411489000766451318064963658605536622433537167173338260549870952183993506340727065384143450915399582723435511559154527602925103025744459539804852202004650185105631006451581020277771742030028936972857752697401315853562823818952609661807868868511067283246330568214535434489726877448407945081334942242584642366786970442770683743029955105002977787563557887961403030945173322105490546316023485021804290389553170726507817740408886357493010135597690003263620613347699058372777354620692915470228553450043668970170930809522642947001468160279781567459975417891971593693091083895165829328372132631643757786355929762961876953930725062202613782992310920879940433320266633215862629331783809035018470415061687321740446860177337070557423331856161205658353291548648003720898983953233018586705916991439974576895800218020201241391942343351693905829860740110083721830343785812700518093317322297900960511746394496245942301462988351313614766317757150526950037847393816780113996269726241542017440992992975237223148492517302005495578647365738382165331984777165206949501072202486577240498255145849381348664080677463360262876925504378646257886647712919106168491708617526600209097752716920910837120126724282192054654961562824575345981978301906340469266295360150630527041681690277409751071069693126822759430471437303028083586274947057102131409038224860802855261367885192650520865776626455209369272871430535716219224999400627547415494490432861678101776684762496713976755659471951017317513985492520296226664478964778740455653683686061485029453471572963468526600855931395458328816471046471854679606730540434709158229673168640883963542451158502414213062460824311890659834223124540966740309819803487233576654862965500170385703236731594581409863311232039159782662150817269537461355432415719006758636601836102643908801316289262742740308613230826910236528601799143691175401556724177232716328053200701020085785453031856221028439397541653884843199647097893245233519467192909918128601082449945578823491074555608721429599583986812894745226393927970267897030222018623907736533686186992621532285272065242693482029107613324047160798070273621249298671227243976135961040211845490990062841489281503261274416332324013937209710410415660613022307293133456508294639638541162188635466168384654286634956751889393206802335856583589777375345546438486479997179408248934267221127304510288977882863273304995760928542656437100859651786298615733009423590497487279837866029882908856308084009664367031860733731387873463632301237562521677176808287144704620849539410298843670736186362731218305752440131863040837781056003361915574607296328458042772293015524944858117562468872606935185806900286755634559532461749971392814163775752329180346673284831780446371741822025740202478981474409350213126087203614099168273940613253789580937205203895082750530039770723797300939880255224188300771164955273394376144591636810762452488310856601260972389512920562462716434998376456687724966284996467256107060430687158646529746996924235873344725584178461998329253237923273434564648829275532523150018147392932064118579455181062972013994067253842741887094811504463334896797752043595887744007788625341136569606853136216502241582534268481220828256114739097623956879837337572262269815265958138966920919100865021829490919789525693475711607653971780488286738867722267590237574494308008688171588891315114775975063034286127623958732029636352996180115385546044164525975656408201242942689600351404215420919610567451769645523183886783657637286570358988597723741260296642605529892656011410766657369298227961618148988553654924897169291679664275611075251630443452453847639063153757205884040730669423481738635526307220093219036716009209659341263075702158798554388232323367752587956477992207787720225722379990997383670939002125579074176557223971213359801795269397518128237705070206832154321828915350650416560978440460000456215290850305636453429780817100313039386593118573670415259426575196482897066429793060032175989565964011963132326578291917600827815810776852672867574549181806356834682914179528710510176558413007802132625035068271402157886697486693873512742727431052237972540920504286859236665534667920468023830447789083350086090267230005888402389566421389566257077133840965927050938713140987915111207682065674818491119771371657550977635034200720214606665068715366045311228246071521562552570663581735664458781012368712139558762521056687685102425381812700988374109101828604182324081157715703821311506708935600158099534643649894117724155999472468721820751881274978177249078373272792149827785487626936975190618965325747953988696414254480924415916168331988219909297159610702008672669426609653736608277532828880097038175441975651066212472534955658911987690821722609109876629760532112881831232672388540119937797607881594469924186595998796286134906578336647764933743429070689948062270732526881941123506726569265623285274617902835852821351382632420293506566650391736668506543351754068530722162366730404132480040854885299174461249216927607739597491470548157895382175630437590558185770965803405820968915360976844605961840637720336254209830145359460909532594244504213424104782983603599952182264505272407511007854087382088155611144972991660594549015424329464997292906598399878629031568372937711825118314612027340701893226993304206936428028332064103057709107804161591892825505493757297739756222576628484879929477268246205492753720885279524742839158339743781122164735181952523883287279278120623432506004300958214168943179363422838411887093404736095927819546459740532879142046966717431082524687055778497242182593056703933573786248950931337639723326249047981982859090256369869519829485462841267283571520364792260456511138823282680427260680436642081436804179765099627538631538525577305368632628225283994372959164573521234970441380630639184543910453965258774766504094444857178844706321292467696214839741468370525680371131948670528688852444421815535205311910933060777995290883703508957658094701426611425353873244336947258106176578581702934763469449952513665536278741727898786244757043045029183011027399803376539259278545869250502119022766865854349885572069576437201295216850230643311165354218291223974738516467693287579926993565842346602636333664772593438325987162916343367929705319368868566726104026831839186834636414347469822555008783581176085788759610955383760755267893647499867097618090973518709294603825556114165683704509711372377504096540025577982699492430816501144722090910705743214173281281292850262700616565162862739029589338988711500498004969231405716328981840505881625698645068306754050759002160693010835568209663687644925215129557419100850929827715863959532089924538451118199440413538869341385385960359910199730653836284820102202652719692520507460819120417788174907148305315370825125692355037695477905233633116810070188277180928131970336650819670852560680213946549452408380115503664967748101255316774510830116587171123237782197120229305761449938847838532052765411188504319706774072099328954982136307380788931914182981293353667292854215568875190059512180282949609155715666088745469318540067600906851291142249512678396295742598870234753100027848821650376877444884103295072297922971490642173618479777642436130736577364454593996339231526438390931556666919911362385413298254550501656638164989008869405000474219166343070416367841346892434444802573458208168978630940042907807600089713744784070627826001958630897217514474576396720102106367463842704485083799227078285660088199275386309388686075295333816975647888912460647855035015530508697670839529388550958286133870773719253277248325734576143054944503738010831275010257881197531670315084553439171323672587484698010681433991827226697934655422552358636293366932998827816013719310840267307688449668809412299592192678696879889370104311383823299528325827210899155916390769515014325908802845567474739568437553102606408177581439103203714118969164917876044210387631411306043689278555085332449714754729629051769267506069770718927790999493237862699925181004522352293899749051626114398449550106602538396648537769008302129985069914291097935477681448124057588731073804542183736585254287863631923813914753225150844389881979362759923658381920812194879073960981220129330947721789024214412810545112922976213750372399729444365521419835594836096575926735878594658474839378757360164119584529314415289581548864469571402598471763785587051887899899833488280759319276367822908700108482237806072964248377886770554401584827794383659278610924136365604259779243050663598027971476767905646128455510672708804608578809638123803744755589981143037394856537190307355810374888954435685286878607624369261973917001456137084531855545507113795114037052749499559530143148875955482426788377018463627936978269744693522841648284511635299421091591182758253469305414463150173479740277792330923175116195922612259812013489187606629799546289531371841330928255926350983893600312110455390845766705874163375117439695429499889304410767585017514440876976285814459508895791771022511624739610322512744544735213023488120451719692494147242210798879278100175893113342690154877273422296929246107699858932433191104186630287032965798207477812389812027754789083697939778956626475558534546815505351655889785775867489252140362282807926712530938326229905506184154653509512212574565232713831414510868964576715897468067017111727518933881986816597511230948408270770735859280763821690046855419923144404750005529655621245560696358477538590739414413677762787691845020266369522764817260869553898785480988495042815802706822289264425636588373375819794937669728991186180034271977996222423428727330860429211400171216825642483319586157559046043037849510082245407068841670544260397861262304876733998770191208707478801588873983706675404318367898394274057055353486448479691736612388026515491094041933096222851479329923459984155917342591432274823614563186953121408688487038471307796531054096429114466883058465944307886271211222775951504830534056906024655306344957127035429183441939210965355229370458187830644810008580337664314707679526726592679949730693146795954346338787801166153867247869830398081421096772202311369310370201750874554278021030252258428685052350222448617626704235737646522100603789728620130760229138150992106643541059898756418957150458545305346461307636751544059182708283560462214601299487174771849388538333458017795225931658440748237094626559816987167788741247119663958874072743607211922398505534806084721985411594249115445340817785746742871978604371659373871276893428184995309664945241745180221042130661163024771260790893135394017542731266284503353753086340481481274193551939448343202489057889770571774189050767522318144436857876209108800187139997820421784386698515269563873909999401814616460969113954189642472599130934342804083993975489040940824495230534782738613203671197325175948675142753296240015779104357329081378997624263973889928621599254059847820483833708454260468265031263306978952061078369727031909167260229149286602468587113494965799698684447847253557568330803830356538532896759351282143081958935814251428426836137666104980310471419627095695103143786936496216536332730208659321800780520620809708401745099179647816864451935521458333740332765424183153611018333986626680544501725796200572230357115861515527818746680689112835906640332024404480060895922218752665172960627645869386008305921862945428223811457457515203723651296637597329159102132398911056196321565527114927122663371835093643612390550010510723523259794112730491617712397161916287216613842207994580753509751820402819735723555521068158579405905221614668800609307492997497374690043950663969405412963742498096008300811966271488620770833760427992426334352988144441670609149295425511804835138466211286586619774197590414494223119634610682359318373804106268961663307455716796546729253937288672597780759806480116473160318994874626361242971710527644977602804065802302898456117624308103772315281758456021344903656649249228517292203064600038394785793673851517265239596938993938159050944567820082721510209588471441753736460633228112836061236984285941125580912258583138939641193932879288501102243357167431119810612260424899935821500207891685490966607883724254943332912798538832941504022837507262794143144459314580311808976036491672683322022487755289161606094905612552593376695739512038172678553929565468533348324338449295244123936980562703973278694572083885151532529000771493834680478232341361584196089913583780040109368680981526234097999255640855281652128633830031812287736754647291424890477180775926774350110704872274661421285599404664028922488011868132692279242958442751170397394889903993962660603554868545620732408545028494645205704483210803090607143828176813092141845587969614108854396775835612481125987900854607851016124382133931700724407814779577830649295515368276275034742579997976697806153749801306205780313286553963963624662744999097397476499610397869527377522503952561528727164704765699823463684936002871001003016943472305500707997320834941818665922141940292825388575510663474347845581644718526135320540478871656689510613277857534054056119494710856240792999987883499289677733567983283489744586986801420197738501599241950304684796428172067231946507727576256060971750598807308934349900319010945578305290134704485429676506938762455018832649465091369750084331928044370327974415645225073580244097226752730803328973840693831146306424023196892983764214041595865269629910111794020226294314481421838340682252252994429429086832457603083255534641524903167606726305493475468378267027690322897522542841578194330113103128587647461988981022731782599795984646472936294349400081312560293391724947715294746634485133102751711910171026085745780435271231162016258761222860176889330191609573985407783725175045377116954632045200035434577508685058959749336604540100402337629434239785941557912790872013015598665691020327557844914537639732864748936488427868915237410510294372097288221917983151923205415534810357078023669405061209538595247187783219184081453726771387140590868642132497119312286262722703946195206274383385835853451836776847830045457761715515430441921425685725073826371494056646878094505920109331196357151216556161614140464153142674803033299150156959175793626018920754587604227749164182816493360766929923209939101649118501086333923206596068153745309444630607384480685967515356833778729924315575603807681940549801651890486522310687629679265990278844908555918888053307142347596494366393961639173758438694787515361032761691697964055885490337213656405055218581081082286234736456724855295358602669951105764635790602332633108004131548591464167535080746254715281284045066973074586654968258703385711424960742018454942481584593174351666104989283875010059811022173564886222637424106700636122385069108168723586029274808883818500912869702818229149318546568476082260727221211168472926165179364508607911799133146475853276218545194936369492244693557048212174239719800846870710008446864247274918226748777484909806195295519093436271861517287437214613598890846079024307523492909802559757597251299774469186827748862624957385046902261360014205507707809654526080520821535232337785853015649225054235612692837034211181031883271903585381277368053191409366475397723100226758617238194080158617799704755320627230291682040581141219706309221910408769182467549407570773289562126449772172395062493813894495028961872036152467293322012072905329059026909215629411889126714577101286941389639433458676215207239622228380737578244854391006998706012945873501191844032706275781737544604323839307631205306587538098487259942523524386830856243171750684547252270083394195285871846907790031649510247497361193628088920131506004478340376675175426288138453392549409571981819778586109535056658731031141021797790558765944422432056480205873694623330487237508432445865501419564354785595205866939742226975869421653772699304496524937812872321603923260044362925460036335631732770344239926128422035595062709692125449426376223835703620292230577485274081808389580154038882945522555135679017397041836519517969382205982201157967520563454289583870263858843508581192824009249111106849999884712145727638513690096489007115813112554471981947909443096390959659660613966733752040404939510245617185277375757944116570080295213752668787554778642359047265651605827634602595425312813530875867280514993617047573333407446069210700177299571557647315474450413447287451765463126091567112997895689313789494298193585064021892986289620471588486406283086146541452553382679951650007414414586039327248677172434510157086910696789045042128148149201973207335958458461707304617861389143089608285854225429609653279202338341815018125558236678912350848821251638938938647474858707948441527357134781290957232176160529094168656970286012314453700780943223991416072556466885420422899810019330914074680763723644146785939804423321691579577844082103886220867766223665791020140943629120485215012820682128018878895065090244881671943922308290597907023894853656132218448518044121964992463791232453678080962690276745192835410366707039392500499649111046937086499621850619770084178350925880833615372618997306479563755956888526527653334829910281611084318612137742903733906988346759578900978794518552439972227385712382704933382006473289479329312322680939263338775210590619236261935309713781417918778640560642369415533590261203676965131045194690444121720966515309695722708451715249388163497576160613462775802546068119687253931004945424659009842864634000315762819561486302565617345996288018647117734792813813934177653328866469250322613179186457080909546195947188046274790914213080717957901428521886475001834642977998501156905226262325671001330286575268563140535043964637130788497678365791517012897654401770741279876956827444434429175462463009822999835757882184799594167212142778709423983362235193818861463201601662324443615866069859859207219427696304154126535904421078909829946918079621903326962107960503975610747291768720961794607792782084775838730024766042414383644402589574464723213575824445887065009207739709459829735085627454605753158954335158907542229597846417202244687193667795741115347413515044404346981036309829811668891988699370099432417496691945804408965023340533376543177965010310754757821859067185879400306235293441046697557097126787204928837889866557452352270688594983172272064722525873255513118043251689963654068493617727260212028853266065799745706604000886205082608779860454722793678215206643921048171577551933860637177259848115457199110083187575762861023421321710689394568622434413530766321196226833926694207743071136342646298328627027202045872104813498125762296532878684882475603422596388510090619204462071562761584347055713787475366384127496703841409741001891669446353664076258844921425068436122647873366166318306799012428332250075302182671330044593784099911745945680374708334589669780564804442214411168251851068836034857148987508001186134472252997336504583328296951451496653613315423492278790776400281585852125300840002794181609347686867407656660537200232162487515134164920467033769619274980539828429209388398430935529725041129390805288593437443825649549684343587676217345545332985710375598007070944908978894160591398507392948466645492594636193258761714090216506866083898944844066115625804869208062709248371010700891420931662846232548391259586955431172288587819787817713441488006293207423896917340847157846945517641333959254483653012086334218970211145399858576796313561171883453393175811261578384295266848706375159166431268764902541140933921701431863038981916716494231073318105827824546957096765797404370728482671952308775163658094105328046954004618232343055495849611755747329708349324002363890144455177964196567751494075807646647420266469990374815454291263346455973061908464566969716220860458786985139020997950718377859837991195533014019054847536860545586778272829116892542920236585863351804059457852507979073432674632778441684992903638403033361425191643769064724371234449792159218389412781451428099918516507790517746435117935044593237331016001484106947202061674786181506590179349657154053104821850327541346945717332332463907730939978049338106552990532441929359310027778583057902551398014994547385460743982356291913863678995481933321714632830538877667161947013378980559534677327900234028765789430527758517141851524370755099233646273736043924990542914388786872364922251854970771904872352064832920142377857547871572091115829739453920196590015417378214179115071954422885149378012270694437420595148676417182209300516663231928163677657415265928555476233525663284703964035783522539512848634651776848239187514961545843557337363407368454399715217513370470987852918458089953589236627849014670845564748106104638655841224365447280916662357097087256921148329585136866802937602497529028477282142596329485677033287428463894177734557183550524393374124001493621570951251981583438601653590790447630981472394220910675562952472497097945904808733224916218374285587305677879171073182768398414974571235270045252833037112871831153225493036052264465444540253089172029467214036682022386730110139071277519044441019221562003177531338128103745753157969704475119314290034260664273562174018594637599771409949025286641409054414331616080513374234299392371152991768543823650552738932093768239495263093547821162755194043808491955265170636694615479922268152063387922159138246966508979354665978218630731259261696024633377749225749499811632322692872650395492019816237026229068583709881150990651142040120249733281972809735593362912491494523708397473631380165708958111308905993380110373284291234500596215701047033628605323178364749027700359014582106063996402649315846380380868741476970605414597811137224962723312229032055527642401980044676678640122550707305435836701984460333228652992025088196522224707119648209855369566698375056050981449618448344701215574132702645929421164275555554556049463728729093222987414354229455624219031787110249901226936341229528701198297003369702950172037143573636813790279700596432756830102438954189343513258674305857726281582717744372125378221563137455129372732925646197428229103123918676547620631248983106289484101548877509165755663577873903257159239474753581295664810545856828139702424588603889650482122407851468794806586366381680283006490591171570671198259212296271948108069411111839932208675788020683538844952401308101811946459427309268549951166197930738761870851983932591119242955585487144769710890300656360740152665181517913965133486945401054486260998164159047212486991127349300957249253287387736321913157774220450428296024525240733987009984483421578620110473993391179240206862591472420714681774853242914247036971391138189077319926899376506656211474819585842841444158035695760046866448806753503261695473827757701771102561838711058719698545349174406056278412488242399215907860094620042874000860402859505695505773460228398427222325203236591683513097670912847502982081806664226010683746936356901494665112619886516328896672362464388528796943103471438525174166318946181705954697640731594946404346341755684458430254250462042682450962820435303066891333844615740167912607130537553112921797101143826153171932853669383951279193823200240038237677483270009560229433003616540616664835718878989600559340937319060976182345322512141596721742961913178541469858035007856865834577970165434718467726237864425917165968793015390146730695167911238273486860846809125796470032240357098611918513554042951330691877658942367712475622905918479855454939087813497055883572730987572464471759968490580646618690767748434539351001253335007092867963636887911165708260130175284966909794292838976456352922499793908041244271853572641399671659143641010341908467276459422192477228506272496242247717443776061601244681035555248973867160917141595762859780658159179065505730995134595063229372272343283925015874510451012067505754093979251150017364264757482294655590689275854233180435553281442019209621786696606130886923763703408609910431157569159593347983837411191420696376534717139140090236589383388946951463050417135890106499584208918134058411418137482686632217451068970473503773792549631713762160730860275974270273533903141215758130066750265661854226287961541728576566053603885876049701187964804176516895648804044126858760160043648631881184275132909809079915632945697586809255090058056097713908538414742321729067552409166039390930671445262213788118867349287663289305933579210647468347463304260642904921717830399699204513222204565269947346114559059380546184687968795035598031495458556453009757735173040174449922081482372673105471506691659585665562449967361724032942354600777163444050052548654478380580315132284814594418436064905179805088795527986784466271547912376205747415906796486428868996277787249216775362746752200240016022262758969133234441764238759872754083709478915217600727228633989486785942761976042518817243050941123663342138821124498493523058934386115569054125403889970192003669606631638558967635528144940841268723479720792786948936090757910593774546767114643075156987159915112451054608693124421181559851121887816474114232209585568179737297025135056025480311258122460180464230465608035137093124790679892052124346973291818572147788486629511506361210967557946818964954351103459033337684653828893867104751466459033822862728251178012617073269470827626544000673506063128263298603048042804175742018992926878515238579592000824005338364973347567443163529563679906972309223652480833881949458047235721907220775875335304328326694986083886496951624889838574949045589520156172061504366357447492448061922600439689041470237800802733582107999237722588772368010366550437043260684140406557771675574966389432718155843603321571056999765400180797509627284287191473158054348634454763236218329251226863969823446776733892008645942275118871042470242626768625049100032730125532393403167713725379766525660167910319300741448655291707503750978617133671965604940155863780528149773326631429931080171535442435994252066830519263951774224768237343082760063841537250363212037379511244406114536486484080294417637703436261174584808526198437379088630024696812593393475311280689391662629018393836589559730540218290262640769512505677663697767717867901200424620454192293389566131394346499743882457075460239080692733237043589839686228639537062057517574788222546031096074139413204569803387642168056240489753252987035916676564106728111504979936480425954344918006422932891905614437405976219734354942063130570360563023265251970910156735440879155066801869558024332198982349055067418402535822683348892794532047186365190276734356711338213910802531926887074626811792124734727956307327912211090292002802537735928009991652124224343715617555418520553734493390866796734202042139119531086188312506634122137413798019976106197128667153992792307916819920892274623584124621601380040500227955844914450582627884365452626597570785521305422007906874290386888654378024361446614927138963533860995139669423517035005003808845824616485139281725898972402216369983788278849017614996020946477965025631956693606302411755318486714941331396375942718255306172181534510854211207833193646736069104286452412463712822816917301616055629507259331772532825134475390320917408864158206697864796771967275990410360482376367859817221019222814358116823052026088557696597735382627270204867511207639804266066379622613058730209331234331107982367994889645638094626466626345740341740239816307340111090602937215895511832235234919947870785355326049595747796522141925345522197726701895098481380305892426077053532287475669693437953659143373929135585914714169777279467829636981755722856948811475388284610002447396397404706703591098542265639200154919047648133165851689875452409738059929692420528783648771325846633756389693867125117915945707695237101745835698620148103474918179956511294230000186072712275425463544383599095584336856172482901693011482636316923302531697719546990857528221789550057656512118478475084607913334168621487016600389092928533788976283514926000621039895496921245315790137567830756432241570947748354112007590132351360732423398494717253560288844622688050378792241120961865809143406131421845973218209936786342361432494332619934641137296171850368499425601886596487408522729955440247511047255001973330141379611632504684408124034455482073525699673550143738158731070065708188907429435804463715246199834917318726272144271688648161337656399328720376609247224026137910789935514655312665755435535993580098698004447210490961626631958082864547288189886482903123643701230412060468694662345958724244962563924132650455650840855357852603338780023541911831176173740801263434126527749364823950281949183242151237081613074521108608532086120466812973171172371400755494383077562953145858431278814512222578484239260972535903412545135503959315206548565722965537422400800772976048090564120302810465006719946262287728960542879786344786343125456985158087201452620676294512801385205545455494709862779861332863877694819838832821976493885675188601449213280262862043043799465880556381725793457055198830043825154538414306734540946072742610560323865662003502915013147877292409039690133560998116852540645958435796857773155709016935627808181810405289152307699035295963419954785457067141211871263420668774023403814952796313360352672951071709817576055001494384333043198111966739003602012357359833299578128656351105920466855961864353929985777385539342270050060530544183814008884714088233684660058457729211627102919652441348704370451414383182000698906347164859667309813965508149497837144092854894165312003891159228806122324316317695635659043612883504376655634969760118346788448124689969011176137379326137620581570471094333018740207133097394022062938208371742586549149606907276659441423174295929196594190760731704295796931986376038975086003377772615635453265117016621419595012393412178957904979983493179783263200563392523482285007010494872406519921990396518870901125762725203121471317409255467204392302376803297787254221210083990133914010336844501928017716304181058696467866346497011850364759696897859826024595116972052666718944664746792729682453081301653938953932745277566496214028968064390833796966691779746255147975945736484948867391389000175719980755765899375543864271715301973711208056133260816646806084239963520458353255588130446214363996560128603478872962767841943283477179477277269521721666794672820860740262653504548212202194800360593629821726228401471270341316860311550345654908263772358042939851761194732521423196918727646664229707624453836109580503138753110528199443842301634945150036484508766574733152510470296697308132591437921065009841862408411157741582335454738838983394906059065098558782707445539194401739632967431082988686108577061322072370338190010062532412527748313259044278427295087970221434300270897060861727550761404689617617422528419381481173603574203111665368953133063656733898502803734464732058501059452077269870340543304869576561845408744467796246992193464968657352993529821706620000390966201371059694635514590475301781434568467698830476082144922349078452061367197112368094563538651864058734077322054914346799445822356469595178228959562082871892207618272718305633805266953504056443981256512957991600734809019344207779909254186706154607627276536110508153584645700577415865665233477822944990974969463890476176957190466374042434302535350076795038769120729935970957328608437034320850904431509127285121050091569301504262791727098264718309083327712341451218639776345686423534127242127754120035777928941588705931094487165156570158011078050574844646188604079151193176756382314077781714485876638676216229999440483577211931019948175192124122478930560402104552017143200904302319711880331355539910934958627143635789939706591573430504134384663690785300425399718648606226498390947462096938582089422456021871626099596541041978356152175914779854891008809165719480275206439799632152722837951389163396239459771113394689827870452247088341362245416383724191659073607754476299570747026391381191251639972944208086117627107973754088242094005841143568904635639085219895934335892847080533840197116693810740143818424043174673447207946766441215643165073023761828272305250016003081127947484094352895131747510389041440016786533220515394219287650770001581325051291894716640905281651893773242135961688414502412581425263860398187524519892410165521573520673474739322989454762257597694398992906958478410980142284276166789052033799308693926966759279293050470037679032281655598735528400642868952828924311249255439058834910349808390205260167217285593487462669849307268122722901679037931893302393687409722878748649181604351378900569203603711811407409748978358517116577612438163007181807981134925566396508199795532515395369044251482222616889255427249063253729469485048372454069820982253183459941474580096987159064200943037445313674131624516018182644566731933365925094145822788942702746800525667632956990948898680447240306542841343863024867671645639367730885994189440216269132717045859062507615976854759407192974220452946439823795041283040113868276488585686885532693101649007366497184390190883704127245933206234735075772659639031729196921039996540401142903560435079712841993191320505631383903924785054123260394764298904427124088439075475712437864884743187310060119518885588268761100873348317710528679876455061912216517448778394546051070485413631152118919275716743070568088874724236129176730531280826876077902832928592212900796544538930450867892859899915223305993970168758953360355739425392156294652128262535064443716824228436276375747268656339163232748151387996584524205544644119563707318808189505754174835814825125651585427764061689828566739501684817255945079415155403471074740460850166543263461990032442351716979050317430525475199804916928609334566719245072469156678782332179762522398443971466556971111512174780237774303601358472101039137810488228931400386549014322241917698474644357862419670160678717786177454452211735491518468599163850272756080953972641929294109771834313023022194956320295843094255445253396411633936987885210189490985661230542049948288440579341234149304064413718950854435846078591001833316465113160704888712678316469664146441282513232734681040891368526387134796835368254070289707729968351371540843812122526191852296341478595531936544092764762453324765654965574034127761080364366562202205297696117327334650036196419912091609176936724563018231235440703379935583571096208374033759344081763371308407390232450114935387670991047164887547163858081811109723677432104074022827678482932220767981813904930924130013513174824769479381924666755256935903077154525464692274570235670255748242637086729471322842809523896927529132066176307121413769237674810661942997524609370355968147040005626694024402294241599154497801055614538738109394516512570551120048419478597538706365204819182575631721878741517548187709360864938172429363850251785756775506418964733032014475669049197166168559052240256669785423855510922478841705083560169324067409135028235732326542596880811443491438848022550473395059601075095033465657449680236437007447257622588095531514420386523429039044127675079647412576216661033885672630554661263087794199322797840595462808462317633640914286844276892243698757703026977180883336296428518508650182180930036818188560054571928477016930655067956944089184268340049940541180481369931555598985177666167246629894861226700517971462292578077717952293866142967332847327010082782033731220973251490938877027563772962119906252847209041884955383949491602254761668884464687188290949142225854155887729094670764140047306765486433992056847189888743747440099625472471160586696545896568304646855365363503432256130424166256076331331702076236373575901377302065649002621739945937918348533596109093065499681954354112985799091718595446689950784583385610004341951459386471889445338128324316476081882450992672179048066478549544778512911350189557070456138453243112229108173860669672562078613062468619848267926361211927772609355381087937435088185725047378418006652324251592852732177651063375522349448207433424040132225777193694188264370452421260386544738336448528544765918154981345191334191542830262779250736353374662327708253707714059692870268318023398190439028641668769640448730729866697349755390851457462441065607742308007498519940107109871475426582763262844730940752910508080024003809784982167456048592720829991387271396695470829772620853163427268187127189558289968744991044747546699974483927359789882067519175749281254414770949710840026303677729100579250251546142371221848874174788679112555681998165607118379195739299606353600739935297661453199988181774582178793177061129523634981505848629119948930771671876943273450688974637553326464313088395833573990549360734461572860268474870052978866604714759955199853014541694545232505928445135502198080757233912745872315635785885796645703375897729606624323124472074288752276638374865814614479937488272533219026739952958719638856293569931909730765198175538428894397718368435868168930665744931956681865549898239273587509882499542315083075076287210047888749392430717222853134215380651215598648637120967807067813663996899178828579444105283245711561168066064993697169951276119697887692459713142264164721197397901980437720214160861053608823187377749200223889266913066837154630499589808124836219323043957668095086621352555212893628932460849293742791070253350757688364865644547094148488806043502472657821012020639092980462364484872642813477263278211092831517550524233982791497116000806222051666172056656401788244505779611440213901297558618439343059972986747981309969806795998035005797864887950135073053733235805164497686273139607432098387173389506946423667684655505069775268658227358786567362473760200071579219116671810797117159662896153931831521577595589473244844016906667325525123467144932859219012557739050558155986618913457962749100328627710184699283300165673253433781990866025876219526357592451891106866259331239420938299747199809874229865740687521037307121488696440582673184296825420737869349977252526311220389077431204041553268245316277261720644607886309714279452394128772143136705122119699184359312620754658932194333415254418431290886926129097461313779473702717264571809204823968017034601639124980171704143411971534186725857415033260890402656170060995813491613410991423894684089578847419255053758386391451899603083911457395973355735405219369227928963170344960728838747208216324107490496943850312469111302592043589122804742978876663739945563046694600276518854470654602355674682880691087716764786846671165594733989463715461037359491490891213612646426906551708826615533295823355012478999231623569798224900146382583328086270287287805167576226529353242692512517279508758702506954603915313287669270220377012254098159190905695635490889997678635976180668808458189985236118749301714398825830000435640572515056237257244511360166766616695753739619655482574714184023312180460779994772494597091571671399603408045478957441396733275057357563539045069805005733381382318697262616443524958093587558376409216415904168312120122321082751584602950892932030144473225303574422409138667420020967665695319523503361817076147033585528095589857572262912982682166404725612471319784126632571671458094660807640359886507975486376512628713476504460497381104850136674165695830533360412927865602138907161132022741347278154416820902971594861130406027276231774689919962903988847269838687182133914612666229215465826376271518565341105467547756332526846081587879588827610182785161898960367097288112950778812579885798910798985102786583596798252288063132864351591233397651485454952303366548992756389811242615717913037725893156793400222204968051665198352208991501097678121630778211991916448845150551840716284407824723234449386184507886598266271602573227066587362152422200445888527611711776396112324166181168483409667986374329241385984504385662289179256859517963837033065249411631791124729232331971995412213941488020829835292371239720581603680410340501333226702821430418841560396705298964251612715961266158844244529029900387544539081933763715691373936477966037101536071503180526410260884587334773815321138619432022827528550739349140657333792358981744464585658068954768583279096896347701075311720002565362071316248785839187639784741588918582624364286060472796689780094131957517456143613992559840853294553057208247495086585000106900466178234556182045902230934565007064208172426838596127645695560922088561413867864498693530239095370722139683558327766250611613224259460181575554637134925255818580270304068848470967146483723030574706545506648272789256682240690836303063025308116653333651949921892704241494183350825578348078941505119853358974819176176705017867068252280651558463662929853996716654279781497917525008176892899749625054316553619951240297807104629597039841528535873188868180290671107664832628502409381932019462883384237375559727950283656245900761979666670048234848910608105984852378451637658505491646132415311756011461848079944326016020502958146099206840556290828996320145762562092994685633259987961549760321957590211490920729682110410364545398981799395038219486477389535360886047086788390539865408868947611700154940582737158622457810987439337900663846762831094831696471702248557253158222484012410383376935743899080927872217625284841244052432725321697203409693991228871430796165802255844068090910682139799904548311719515377790921471448744094187852442378536227523663010510194998700977886652846259386819084449071713115718902592916411169336653291398066607730877403395498709228009101810660707948234151960333621475098066785483666461637592535720590382426734385542824031255688660690718028462435736278794876417718786605431578273645574346412703905842065414035052964874636747228494287675672460872526436150816939311757918053593110878107809867099681138051576448964475089206686415882256743064074853029842569236506528869430608132703113592391479123716327779447273495137083937170795805944194750977289078799895102870902099408560164866427739309675721600933569025773743940326111904200976960682317952123851469046438658793413870380181552114967324631432197882081550171516182657717097047149152801483521587969803317154561591313762580859899750653372705046458629533836523935895695250973437468151895825731155269195056831410395842332739374557338818951115994920036396130356761402827284071282223886334619745069204662810474970946508987494966927089562816945189592898169881238263773067918174346963920907470424124700770427609883363657269165769254110656879737976767418373105140516108721693589290838558080533804650538639000775044242053579048360406928265689115422574501544679348443132152926074744613712680286362652721925550609004445018596277326753171247931095130103198046948934148648803706690936051656018121929203358040775743022703983768226301523245645048930865506434389650492031140197351192094969040124171030149727521262094881730846379014987846820642901512641634814619637888005336103757185826530336049907188324373694920655322422310482271946851080560798597882216226178604542876733475715825047807370781548966147172625237109116022236929043820188024505316377876474224803095075491880398704892661670592694334605670159550927184240284398346865966827615192801732921198072906722479094472701969520545642406909613051325927388371030233583156203748497197843464076582684982772638683430509979408287477446642482086058602013465523507534942375727057204672672761509130267942786480061550406899921572267543062434988086817826705088920186355749037930762877458479044491719349066227866609380594299617927100475164111641891934393673682965444993727910262443907532657073772353154256669082533228393160832320660415685697533327539966843418419018637616603553229032151370119818052078113191053192081129106251584213248189972245312771764827725043188604566341256092753778528965378098583867023324703403491747034930305744135706498254809394887186021243391323087763197513568727726311720847952428273924581952028333034076724629559120879686943697309766889043606218042039301459767720744102299339716391881122640556633250420365377306292760234101735278800583466269449395232056079700096505983521208513690923775101023814880796257125283273374248752532454796977885133149520239088730680779540676525838829916848870361639480064870782898597014235164028125004458351628423766201968936936031294461546895589249177635624996668868317832921431968699234133951693086122497441456496444994538815819417541608196390451697720319307834714075266851136455302191484415788966390514548322364914482046689167257701112123868847201930988265032258380557968721729183625696014920304720545425242372309957974627650099686847459118781592970880146072807403851166139647085015838059206658539433421251741026816107324948912793002195751626897836069960509186112892120461114825738214024068126200381409882214061575979146051976447223208602905846449501969795118538955163214821472134642263798583482914583144746571263352267418053292678937760673594520109807934860773065112419887017528186669380298387373017918515670841280664657542107317964891424174963113542789704718241132230546308943154974829875477784805058269439160345876156111854917993129705492630869749498004582942500971154125518931086710673772294952913866264205207087232035404855832108250068653891760480145418353589670855351560394325595585876084394741661000899988990175225440104194986111386306298178179371344985452566676465025804547724444707417376347517736439805419134448541728412481288582239390296050995992305818278510304494611579233792128618344070122533328633918006060633804731080492841879750988359711962015714967047317926356951455889902254195515924535187102220752035572943280528533834612278160442769540788593132805550014284651936815332333352020589937028800991453614646566247950822416203562107834275692588853101340160012927839433214756824956986985936803759015746719704440226487549612633376161821434160052370783615685326763152906026502791113441741780864328504718347143099226918161129657342517137071709648368821530879963252810484130533470924287532534717327974601832473986906458282130188480249927724791572067864611186243164299465874554748347272557603060762475958495308068595186966663422173915931557011112173326994927306551071716366285349470082677445292990651217049969393983968138509261436741737627865474704382358316565705142592060667993915513238483856160683105065372890721995819184300454184742570125485538877733439512414214711787832163348670524326839341948690840834640168838016201298883431829516671655069357057346077389075988161311446935748490835748598690311503511766809203425890883266343709109374838530284874771381486182740242832607730281621849102763744504587660747113582423360926933979413938515693436241916610129544374757850872209755900737050687813500764088061612820456676818440732526637834709168320358307578572939692784543749853810976173762201085757004302212715881414045566019157384172543187235756745472284792814306735194484119068497728569093377292120930309702604478974254396326617368519778023122285717398598080546031633538828044388903133086658682934425781948271793903663412074710302459344828748721110808489411887325543010570908413253518805099385337400185078492038479274765856576229023176047421546209586702297378801592298212987911289887879149443168383990112921455502854082135348234450416194591689001930847584873905475227925166894047595229616292233013667871754053404543073006111134899251465167598027981574197195569723165833824688901408308053600003370086785289952741524658087571554384168576769937315242101081773439343894692067173435808967025293944633222230562603526813883007746865828365033747893788951879962973760842932517724063460994191345707646112727323850502824541345889396107111751360504927260488124166175557642647279233159493795218473032222464134342022860204321025253485420039157513807513997388114289332254473250727940920924909152747407092154225507673106075538968986186809912431421420234814198205258194821896251918767516124815429859396768110002846463705537777643527370948782524309517318266296317573488989563277716121729003582380943922446853884134930642647354671535197947569721805961773728645292210564259281928924820724574323335739279950129569303057857708234879572736275990108405659610607814537029221813467163877904213988009264950156018109204170465874213009842011389834143756742247660601325920310074355930305831625094636166103970067143878945102283089021689079532326412807680032209308026095961029078092754871119910378340089464453974116948204631194334272200838078750107861253628105437886780612814865274970351880530649720028772272683816286733198881325663639873390784842685650041342563183574496695433029325577362629037271318232793513937273153409650384579408547502495807124757055035071785001090800575959981603449802243308232606426156447874126387524415652165486459776092294615119083875415905778616751639799366442746324452037045658286556456210512792266190787308021781742484101387546066058230504535093683140628745258825028360965239283394914282350433206598918967475447026042374068261998197527931891227211829036443531049433471078672094714389070433612486865273216101274632422684567868178090623637661976436884705259908917192663462189956416324402141977731496396845527407007264075024360359013069673487915300599513316757686117132645310270716181771898196677582435433974792438587405924768097324347156506294737557478712854570532651855667919011279902707238580885408113835329028343880861038331922852102507074035826322102839076353193301465854394040433980617955756429204286501257618952643247651900094323012173058065608758779024508538163415031785943649096759551888661460374964825559476126431642956256684255172395519338565692991489415076483804413125982556012169660028450136941270342055919416861105007993845465680639548915733698802014702360440291260273586377158175622780409132186131569951731942183189770342279337599898102993717131641735768877182659679214752081686308346542136069552218313156483097769053657884703518532465479890589381297687463387489048022045352941425333589183500347644699417843441803810577109519496342082320127781779162416217583630560177947484678118656249987088695093092365708182269621400669016542144287695170201964646649330930267274571256223735347280901521956708256437223729763817961464047918997066676836456012584183537542789478275154320934349366860785496872277560588111556060660666166050312443831288169992589649045265553248999218861106196631253621807083198391175440962068143415305583269199376709562439279080288797135115720850188101525794883112833342253848810923244149532712659047106003680440807838628317602624306857093772620388606249896310717573879451957636766282728645923440110998773094664243682110590095875797561179820810095353923238221002641727062209144418610729411909041299049429858339055832606835512806826533783533363408204624001379414947017640488403839441179860427480687673292790519778334775334579050017932751226803172284968693930071812686844998333359881527298444608108750662436585755616577603360648671152691682457829830630528825448831912581829599759881961907341367099574591168978983717368430164878305132956679415705610007410393946840058551143054392153468519128549862012359172961831123968371483853126062141428330274620146650478816506828646287215923807082507701885621548667942988372862712658280998087363530294925776367415348371386713218843435782142807708858253330390588318193208622563065928012652683887323070283758520477536106943277796854272443522894100004797231639853961262208611881322903170746826441533009991211164861543764778615668248243608744604069096222141960649079466564445888150443687811640978783093065964696752693185385085994468053235374176576138892416273811702423973819127167637013571135664325953738244857230913302824663573129505028297888534231213513230877175152466725493525105953677925147973695352797386184109761013285439235032646435243923174585669192328011721092842313167593562952266416695267878519679585362442047843787181821562335549638248912273786223860384358590652285143897822753038863226609229459214810403098833384060409740356021428489054546651239064168569251484516363063910684842980199244777790129772920942248902882550566264228800321648181276805838291493729741349823240101622601762608493388161592288887334974316000541411558227004343543564282621521429117690106645716757159199275240052862038891111939901098321315978661733343903120807041422957474899294589265533592937997958220053506732056558987677716923817665827948088742574237701025932473541704241064267160351021773296499105019788586039090179320496475853280422670797209162960060766570151695631104317108943626314674103346366608749068605970982183421890274641564083965629518540530908148632028287776731320132399868753187252484572804885638245120491584007174680076895921108048988446058634186085824103790003870749548534010930762432556349512018155032581199887835908138946072835518701765366635522677605221906980200018580500665609460512198613383489091768297718560867358274819529523613179175193278863707575032742860496530631709186983653279744470630252156132331047553136098589714907557308901355451278456608218791150632239460584488850281681296533204631579582180606824289736753354292929301243000948093031232641117826702061495832935867918046311849546920588030910095633296478747509000662353572772200576756895533913425626858148396210277085141075789453076979905574936280916409207677573287399703409648784517389534234670564359782147051113475274085286183609517918591069206577991909163222972238215792121482314980450100680160692662572345695109700912777550815901800540830956595800134954394855126818704996215767587519463815546951649540502268788716399456964077870903965582963955241504142525038916189401230338221890194045727101947638698850189919342874416626578304142610223483238573773765548456219912392812645011598219191004271891859203963682424560281439394639907868245963790846096291519560520838851616755560976655982014778574189708755921642121119521962723393096182647346291554493560611893275311357599763921522085090446394506829828797704571834988147567242617413719530757070953561681410969963592280836979928373021282603539135099073719451349481472737713005593360542125524775776175166855210842182300919503152014159171858600031785076294068785179715261386040922704375697724639967638905879278066746346314296047515415297488370002154836014258947753920170429535088668605013619081022440374914613261430082621730471976275031472023098966502691597375740546582620073079338575665741288473106600556314504830693885003591444348906140766885372414842722158445189752109155777291174166494614071652223015331131028140582017773843080782673603713789380704223009901538473697713101709560513283983092190775933479239996024220248686091937235705617287690515151761294326471942689016806176598644361378746161101411593323190032654510720429290665695983762415507867719998613984035937989987484755088540677139419229465028932650754537119063530322939103316273714985828204384714232085316675693161127868811095677169344373240145017080214411897015926186833280374083598426535497091490777388847537593195939192371605453681174556520165575994889855857488426498089588430357768403825705264067545347356633034224528701871996681943271418145852233764083824566548215246602850236359200142005148643758870806139371734452133002006473422788142988649247469621212084260079972489311200346999319082045748869065858360322310580639282507375731747828072067050062248328322967845713430826492513599891566735535608283977151121903205245506162792458856089375132664981367128787555453087363139086470666490493399614336061426286797552637504307350500938440237653320446765113913844169621777023835577641093414855753521959077582844284855815823919209033465172298109328342666026158217113172423350760733764116753067201367672161346900681428830680863380198009814715182837623389540750964067542406353166672845272881051279696244130356952359273696832095525105263347184615709427830626199822972636404917868646558332242606711962331644451019872262061731769824835116495217480209432717841352585215129727659482301460151633796447053949326255472947534217189371866558646783944033783262653847385543034626080634458850683807825852671582549524412946215191957165669375222714090030693307186716774582810022660428413554089708249241488777707412416384586208756371853199527420377798872457424831113856666189084770306415442387416223022947262555828178507130370014004354534882211557719448660945573967855330364872402278324392388806986431833386136633929009905610891805898547857267815244909689960569910520262793487642180470089681685382778380892070845325329918145920859462004706707253407371534078726156197804664900417292275178141314696090232583199912556631227394940976013583411782637330425862809177676920446901576764591077364989640370770662077529357592249557502459166088257049532231614945168628569851104882638244908263497756904919170949033193066408815117348975299438166503351223031242010950795700963775154357196657739212611810338259433979953383327861262895366594187635837992327618451604700933292428353454394161047947406947751891742395448609384245181950713730690588289657806267122166050734642227955635351487838955156194211474420194514281838410892633471916148203114439112977214702960954244619298308303616528071735551972548369239936445027594561359197596674050871093103372219118664014874501202965422123397747528555601120817359061789087251002441297421181423156575160104369142833813527441472131929966098811849177348801530189721194026693963969020298878691470091731645561807620398390431452329170995314660297784392022531648687004766017874476650926606070172241715920228895570116858032167531252001238374599157320650115428385291396924765748115034301128551471755195041454812025081188825625073980754698523504421977061145267378427353476624061737952621630160159822948791731902842077844469835841365362404520908154298418754878688537584775058153173894356614844643230904263482619065593021505082836972631720501479439898616445565907798191525259296906105643419241309261969948552874775784929646033715817521729141543614219342300061567849168966504142563584731209008747718530501879924589026630404436455582049569882161392621664012591908590630986948429005323681581371091551915187652102345129532947305008988550929180745958066475966780959242023838073183128406910484418466879463317348391054956164773159252007316433705916516523077837113300589078258224268182449781715112757105048965056972814656646017396962344847977744213430336309638495452043547000963605370794650457681245962412365314411537173862282177130438057150716530649803320845185447633892247761708661264672185180931949354599704059493413219186804459256051000699314114608183894680242991265609255338615473251446460132025148808036181150050048459596365169941082111979267688590199739399594409145028641670360796665906353807174782400877436202995873451520076883784584722793840049791969592144698495639454395395675405993515710801601918703547893019692805999825621367019873304418391519858156504569142168207529264530029200715251061290246327773092951166627811634413054965046843835476961762795332687783059237588135521055357439774273612671646578530284062531445827562125576563739461203594930816611920607578656524611687535247175928370569710151455632510439359078405596004788207558949619473415425766599148895122923623312836607304915330745946371471503278088508955347740586987110228881953623070201451196095200018392667680722500648203235683431154992481757417987158567073638639770078372591871575923310279136776066465705936847625103511044353392692214175039307479317357299807102694487611030966630987832811009714322508615573611429716292594910404131173174072641374685193615980652322200684733602694790018702437340648840386036183021896669772937027734264335708590275632361057766540483039932115705615581734711102608371101796105762805032637267886244036324681331217143083146555544340035960824663752969777981279544194502306724310214338511726536763386569865699461795406038079364240821016020226461938397964037890912849439371077108057361952761203125267417688706795984753498385870657125136925842913875856422679342575868494755465892654040371137954693448931298632092614176983304538349667520384268962340536360702211843560739970555951613166681362921178358848343918120776137083070140684308559024834366141185853702880038654128820168408411282593281773199541255537998689067765472811201923519092651734478947912614568574447475200800862664068607597826902666844799623680947599868488841902663394530453744411337935344002639051630194748036986875266315685588957626382332856525551296661726324971642185095205767540479284557024436388765092575489044297537800707181147506779239412024839940491481646174296726436589405109143595702438554122809225230246821989760261038038962101114922515747800174104205701032053187192632384089747094273207167029370771651155225843158203890000264796097349482869100026523052281910867130856292648837500293321030113916176737776320582987761472511751405357066509276992763019825162724215649913957929252756833048709996740951714677979166247542180834398186062774917227987858393651206955679842350171052694679442259774535112712503720007756853272496874949596753191813933919166867254318051762442315569499491746601199683845796826559094973204578108042264222840521341679849934896529347346678888289220603072669723407866752033407530060082432262355957724729932531230091196016907548803939201290912952486436869621896384709854919829550934814783499198520793915941445219687398420543254729021117010734414287314403418731692183483633179183258568888334207703127824862873787027090886188469090150215740665210108716648547581402855113854966788563434349250473350166896574605421694339398346699376418388866015505565240535616492611286987637087748015880841186171795542914703227448399779219355325156233585451301441591129146417130222386640443447556785854282489514359087810419682036690641357469482348221174832797008483354592300241885156831679557139979781116243932920578488673351352186588833622595405947924250492382637331036270758251024836395831414000610512526554121992116734675344805808531731690398279806471029128384341447510789592437713438939056004931657887290429827158668860459796174821155580579855055163509148624647708672577184650509628592093985822132552962009565911859096230367495317470359970843171814180898602236746300029188831451618542473588627651765402151630809401400934071468796656725053613431072363549157162668122813038857531598825246182850994609112532000008691263060268910552437878559165105989000009370915399154703608312829615615634390002742794976904325327149509929800644460617805919652050102716941808361641902634886476157169895412605621474277158572482289629156449801789307655690204382128330937948711072786310200008140472452346260302613233324691587643322013554194842081886171855845153297369277227291098469078835550636018010707545460876150193729030066914092342741903686051977685779084752324464598412403639446649167236718703218501018848674199988667046190623878899571404526728109980049077421234433269950674725491505308803053385682564008215861187059575335439409290839619667921677778167172209609409787581502710732852271812585200380869667699003751937392579707924946702567404883245642611623579489664259250645278848992699980623233309729189389712335309362943507300212051183993385854652946419129957034651993780194673843246421982943292229688363049570013254823242048988931670862211249478849891711996272045283537005717942944470197580568099001360830637382439195210664211406434139865207761125177455456260470310625812100498141136563030903642551395305271204648152928259243114912524847714749771464630479456109659069615356836508457222806262483333376729619422345366533600119562330605070195415748853249158493387364238318910967973707809268626082801151627816995131276984050106122222256175330146568909498058656385509617412339344949826245825429762164269549875606621568432808434224018044373262182536565640070189417772784110198286633221694400832886740975591477085570229147330764964584259929504001450027292871629463981192502539289504224281665100967213711105559185731775049757689002197238260484867758573052132472294895142946409277254135503387467158313492155749147464241057389788745206309656578085817612221603446447381783448377720122528993344113368772897539826259129672994164988261821080075107308594121390921461026721998328971147755451941833913723705349049809134168613778643256526315797632485441957528985111704876126263479375851517828117118740135124039630721762091085648718652966754878197879808158614323816210706237805131109435867327212409952304389154633740795104553788711653533464531260766030970427241248117266556027784038976600578997659689827096191088167403312207697431473937452148165499621974718452411250870391285850099235375166483898166305603741468989696771089281337380142330415747851759121149315479695412931915953849909166345082822796344048091963930856745247189499984923802497164837370967311034620183925153728883832900024000228418685192576327611502970167064589012070534668473231086023527015967382240572300949186584060969547885382392467765318056609141132005771848059645842002576624647843672027157076247530579582239768310352028447908709671458527394827425279862276710706313416708383084524527574625316434721814613374032505862080117473710480542171301247393331157291845142974725141556739716810716039962729905359059486209143194166928464325293272415492816834033639560684603789676247419690331565117937383524232503934152319635862708199623072874399903713906522447606951643926431730729660141533672711153650151826679562741524727452581230978285272212229860935094511581133519181317864287330400506007315468845986760260888569328865588983138852003301372724637801453382119486430307469645192079157155609826631433658472324752373029726257140867362759274272876798500373077008746861078138969380945683464949124949830268642494274683874521259349119104761642301969405661584916379748420169983637252460359925508051057784560977991093930046908996873443320693023183729722711424021531704284045372788310620796349280436107488004651427453804199894226758367691193544337828849016470189561021991428723041061304441161471125337726191554424916999006136017971282675681605225702241812484957512006061301024566411031720220572609501555478560783597251267607450669479332111426819869141033219805302547563249762766033301844861301016201725216516431885768970930581747237273929576932220397647832623112394702885526690558459216831646856470732847732292202374043732687626650847572355464254068665469381944001596120544656998104639925003136651846444439116963252985426036063703875608604413052524093701371209121761706919046584771944824398087799951496270180769640603028318905619799018847477586173936749414438773265909373280214037500772151239390658533267527011230343647674050517910687694147103215987460565905942115323083899010742315454739630124087640554455690367161604308931558836897639893083545451729238609741800592470368398439642674917169197940367517087310067325512862123601289215542537187075276759601051038683224377001642305435437914170156008756494278263679579364407227494184754916000240556587608491729936267679384170022441093049017813195836190208492571460001030136132660373673878942072949491199736252018452703526655827973385909110607298993915252346850113514317757220723565228426216699133814961934679565779229648245019769072093324551035265352541999221466113822066397203035422678607073699885435179472763044405500129769311993915420411233789982785529726589059675171269073160197364056921554968343751653267306254084338211880803415007959725171805379230010801249586369143511712291695423955084183122848096786451792200840958145040639935648479387178500357458408406470191913279246674019671739844729722025519420943849926119077320761199378451684014197160869414360226226880235689465250402794431075704294527642320233125581470438123160651941054560015937152316666026389466410043490053667538017491273488817496820575647521237047842326213089977446243532609222460813539912315687349369042320284506036743618539010551540471470812722322059040652980229828049120919527552759508879529817853601978947354159246786015702465846764945111462992019347543595150226653384467126642243052969540406453908105422956164998674428149512467271475942738836687749629755211827709266745599635559904797506000609400359958083257795612168809592200048935147029087891579018007991184738188375554688732175796048539865875569995510222209012091353524197808472105714788945370054253761034818525720818554372161418261890097011208530246286430333745739632921747850449359766807713455477618587763243118033236707106051552275188849683864539636887148409882102899984350619785106265034493484440164594358354907628004498201935879460432049006839456700528790530012642307923670136340209355893068276072618626208629045901083147954012265288991391448115203802249040195383640633381747947664782672470687897533355536698054482374597211736101995800140111529147085594868076532092549740323906917430695579320653797348734736102767538830184901663749611038861079713940220337318016956780518013577037858126932576658285319081868586733864890281018774275786391286581570710126775902862446491037263262837396539718655793409443945902287366609405822416587926969074941051417713712176169566212268811758704652224873946257489533950167330467122813698179411160215799816316222045757572198381977538188424910365108118075927014881691091037791063166538152672009358649524571386005771309784744940166838246296683257824797361601625626392238200703709345493456913768274601872718218535059697372510399186267509595724231094497748351803525501347422754085749505414800158161803087667277084238833890671093027774610061426856567212481245632268392671653668226932933462463393860962340678285665860496222730011236861129493586179116433551997470147805839283818995452940642901711857481752154114109586050125995857113075726069265775383001362137004061347683350606639044044020311784779896378453891416423622040978974561095161311490239046767578864151494483143728272202560698993209203461736102819980963860010281203058894848477518507730666050452229257671297814712922390007966477289749799532354929280930809544291912282316758748348436353847522312703288136097434190442065091768051516749157014815479043310003060615382009758667311980061856216417767844379846192604259720361458655736926724553844508753308795846866130924671384356196610780446325906015766292381022233492391702630571793634852986220793906527120260482618087214724824632077105041819270946689211968744766976553466097847978484001604331045265380824571817286614320036322445087010119859094154834192071462467781051096859396697883350732754207806747352557949244890813863068856730429671156479402360352969993934689427792144780949630685855383398508754391366266324907027067765523288443513482328378431256998120447865466268613075338143660258055362487251649877541699212413200501184174456879921853572339975278883068835865574696815651500488293451235055730569418568886658018797584377601575328529693117422405346107084403618135693459324209800911328702539226938179915956723043248820005126990011786337332485617151240596679847427128658081299115352659951606288431292329335267098031829834883507682258373812187187964370658817289607084019367380906306411007210812422950876690810005932290746489573497552421198738957866757750599143372374819150554360181366542532555623189788462991347014352762764770660177117688414496345968536744721768073041125898279690775058380220927323463340030459458700265359167668894705407519259366767187874598682072502103700095917361310712708649172779979809934710450477076974390394530142325621525369569096827937180480094588085949522870565058953930301260524307590884227168888518711475916790945569153862102416484319083598087606313686078237278075271792716539858846474725344828706323303694132277303294562482651110781289862511638911216518053136224716658255788580537363225565758233228263796464637131494388254164218204051576616230881392596961829581704724323321018866953220697619945386652665348676569009076844027057539583309548324030027354199307707196157518478235018225747541095490071452293944283052391687794163769594503843219005882663129167275359875193564827741758237677899624499904917126497107178425354128244716218776986481703392650125483735442733998296196634329837305293623673455379343692093447879477599597380572221276231489819631405153516666990287476541655824613040610374186509328673434227754237075549815120966538903572420298684946692173789261904137854820809816962488701263654739124033843734295111960299141744010913711745989543731473523285956611011520654211624142588421254792779578056196012260498945154563679835234026117959260911661803696057956123740630741699965030636521458379734701747271343286083119106534752023808970080379799860305514898159114180734214899595518929979612410122428482970669652101208332675124233173768669715424456470034526862321112056593589952970221957135624726889776861997524339200136269337899302831827368364786482630687446731453635432231243735919837587713147934515823560134054136572094172369835943388853221589723231741058302853924809148049331915104860414318915876227347867215950319145075206997695444651041451962999308073066972372766231452264440065186106978576464649782810961671782664074085615328089309229312727927953161940542486914043296109019635564980171097937749542875768897231531243878036560615876956501509123602405778722639193437771526366943707122821293903319362745255653347862291240512182150724238473195033016083998279820182075367216447558331489773874628801708325577113790545827563190407482709615539916527953138606902589488964057398657867583965567104151877206031873732587761113556094628198014492073870872390877042058550296572122002794629623339709354815279843560283662461838764593028713495399350515680107172977933266700250737855261348870450485402980115171463535411730656677850141407981323895949934884865411386060380588148755422772901492078362772300368822852187491481178516162403043103495293880988759630714439880072134601581473113799073307238761562604030603653371800589753707188265296541157789822309058575460606563876600003073296867376980220158678311667290113504617421289584045442521534998142282619021457223247860351655296552302600422037218855881090529523774453825433001261214053360696024055447548168811436115005289502162597532591427939977258331100656984680216714836111425927466937489885212441905153671102157664605600365306946561929011383795990052896341379133942568513193685355582126389338112477386474157036925296894877007418210702005817205562771411861389622999101863248922071593360252813482521602169306473043180787426179344762818571210431674886303417828945925430685101432702742066903519020560146604190001258062408780053705038190615792642337824725032068038943514090079660334906113125174715176018206429314092871144397437495973362788186463521759377629519146372592228455657028476268511225772165975149100290072223833543350867881219071340903143593786648700761150192106809248795738491523972125963004189327113068353001330168962681252330257142588202425623914156823577488446259551221620474349291375083105086602806615624090658882034212492980876924901131116152723392314621092784844113276993666664273724286207904907295786396639766133003002451495039857215210164892928854322334059497605453779013522916449469440766694522784883152622372316576986097760874455312427244286588559714621534335081524937107753025870249321703489214196694965139107238130467585812158506891092839324548554740119478511752506312867804125476941525991712145010131707168447828564148621145597006238739929309160856411839120489970264622034873118111040578155953492013224761873393010305535103003098709480253975175410647374732225986537803703801076929618399262617085156223527550565043180709062789241690772464380566808985178117484430349996902750493711862349339274749150852389944876464780587539617783247019285449690539677584030986205929177063885011840730731236741231539302937634219494628151531596129563757582804960263651892475640844560400059284196047239462772533746132020655188667477903854504258495684740272508859594242055126656304690230403150989445662794343497879310351579736986779647886244736356892607004847568851210359265839849979190305033764646571038053033293329703609605410820601662475894065141059927862259840166859278116234534988717889762002220373402543903593319668350463291679933424324800256074409603393874977985189472760268982941272871910479710337916658263204658694768112322251546730101378533308494471009027832235643577441526450617096321989200123405273714451176068894780043208662960821149872939829260378225509701932539963859725261633288255586709462451883770990691617390023535096004995992917912633987436213864338708652298504791405618795447734186451159280025366301293978090701979784119054422673188329781140492177508538665030094329086977810011884253788546244560557245444582918456863375652458846251920995515391132926374051178321233741073304297910004265620029797830697741535721927213822482261276653550451935131013270100987129552390869111719068025115113947621584118036941998700323056221290537340251248257949880746777424961794323491229455213070428257124025043203353586466938831027994221671222384273362350305698113960485732348664737409482409015094286368814857902490841833691261009704891472218179866639180736743027289865645858459528769096958902694851503086742562750941162526162470922126002726383985543941213044904272337046307415234597046199481902024873967400594097393116716175794794810571276528762004302791498282419569161819137470220629395783070414401257389826856749645699649734165023732757443822803859946391278945509671467632900906692489965168325271303144756516488928834614054681579804381181913240331419826349837472427068111016011866132998481812005371285929381925399738867771440326904198924449981838496103403010270761080831357969477130080112629503683834799870125412691793738103128675822510179035310113059039575834704460613444354212032368653538362222887891176393464371463298031917820447550746752023659601439880116949451662605419526326739959633767737788902873428142613446896434891179555162351372888775461606054525080723811247671982783641647297775097333395883570608208907346907607986382425740268563107290114306706022345016964060399930835622013679799300829505234038188076486432121518136961891502370672565102941208808857303579615046488490506669096883010554236379499434620765765407471015569405127695292829954284205627917493193524338119486353364816301973691725963258587825356067900447574234603711215863547686352215127172137228301216052145233700748246469320563605020937588612833376222308079242548685579549775794988557687692311495662093493621483384188359156416316259340328418175892511676944180121029210433347572272804506622784350473391571892834461861886134018368946211048488154570136398127731523794698268135999571299075063952827911362600140027829810469888841253095381691189306166761485426056978190575389551312261612185568483041235899662963130928996059148007458868959799516012373317050588291095868286942287564242351999175816142178611481261255093460782984551162861497630921717218301892655964026034644976692332018245385330727756625909835488490560600942878338860740813342994174036064973350447435681825015952819204887251890619515822182244741561864062671938151761463184146602519093169374149317502442671583153204581854655514098519320345360634400615793604181704606192801907766328344207318820675114947894567490839279172423053342770225500697096520129112097590746825621906807651110881162256702796892964200958345382828971200364752728212320744285320207860571176312946529854005037186147574035972634303948163808730218601610715870188520561506017531184921830220089139713236390287839518664023274648350153061729237900688712470612127577928147378898898244480646388262418591219159386136048996759542834542758552669783766596760181833603931081651491692620676249313536335348830053728433772788465472717166222664231095104302666661276955189389101671464373000767475564194580180693708485384681117564485654008208757714764403017490569952042566809975891162289010780448145114153763672064352114717747169509811540463699097827070031174897806137762064402675302066958036527528009561967340198902028631355451809293520358950824250218730578150956484425051049221289983866829675702378157226617188106310645237950690745776084908776718874850338348591113552630127839580543745350827950800329275030912600015678867663257436403954740262861601854483699607860765363132160736231798702879498221729074252758754130576364053163856134181669124191578912229587283979574820600996130379429761457854484698663028574243367968060412767600080150149926847718140436730256253963567072045530617373872867597599348475948365559034086212250773954517482828063387429208413898245184142683690289592784677599717379377044031594702094979294225461914912373002914598472054615689039420587386150586695060253939795562656231753751511870534330743848647013141450146035009410085470821955931706211442773470584647121559519119951068657013806274480849029788991782938091347236504395071333715312273199613158654908635712881053875047685714625527366396676890027855526052060938607364340709721584707880842048047813965331003755465504220845815765072434871835968089209606037750687836330579521751165889229511555880717411455048906168871474894755517027776930080079303441230533412858405436831823448848782657156544188035955976528611356075077229783516299119756864480501012793907701184445496858421829815601574849748861727939128375775250451944534636145101466280260385201167426386008842514559423603969478701950499890741388445963753743276961965455207130849125412486405594841376889005291030510085891639956418147649273124822924878711486859267142417166993763080296068429419789253961402722901142456573092863772904048061969355364768811699536022308216174254306168589193088449608186457570351967390094092278233503975608570374828618449498607431068551027156476150099815840143518168503768599691636428946123792844499694702448336906110845351141003243225080244126742208490958188597668441675555119913157304928469313100151031387371443461071335218505517943687418552356551621114653199221670235878816671016724801677855400992414997119270591770837084928896710137267843029402758614026575368538235968616224087952976951940106670433042049965973614258386910214160945701656372167024642693324568579923462404719923882155006752969562835354401495103748132492670855258205419948391880178706114304196141973852130844167571902475518175242443847511471604666573304689041029821115421234852494462458604373869362986603342802300176991874043522686809832628129268294571653794671962637133554622139627897416098288219071368252575099277517979976439734468728771181903207820214845531034053350771613526676414533562436558029578109991152828889316381316332666875855408854427084345099989423629122541792419911410458262026489867643584712348242756247966093648586048157740770587894407469433087727631973579521194258539714381136789041878409589239406480039737863343641231926474893962449914505822540472825219001557152344481850447415785398595935150127927783345876753701664160795802348470887427968928109868389335720701949388350555559957170958682911349544094293196203652677609634583822546650281054918450630728401157617755470562658647647754530929418981056622081162428958567430800163502592177871809655408855179176413262536676335263546887659166109269246651972475524576415332258387721688790290827036526627486264479852540459379549796594828981792974866355150471769907754453126834998003983186850645389413539422050200413757501982626637622010937822237626259354194903964579179852665072170089417523116340060625075944910831607665193723629606426957293749119624105891990408598501060876007479007519252311911492892707073992019922722511002646587803775448390513380786000707133746414833913806792627097374794615900041579867342934434160725263050023603403877236477978517154936625136588679240387113322349618496691020226975785931313763029257572667113599418252623922073636370909730397113371153066016983468544922951114004458026233074571176286872002127055939676030452679802699100287019382987045026778182010361977303015690969700092238076324502490622761424212352352437445485158102811522512838771736897832583999977572927196240505914240363327753985175303534767005241660759623416062188571896375014457864542048499235453478523508852657520055553054590673552601960330479329051791868148264613594078695526657791296212181139025635289220574738348597835466410925477299816331854653031883229629335154560379138189921667419436455946990448353126475208531209702224262903162478682137623887766411132645103369584514528426129658732971511891848005139691370307727628943811490211235003296751066799420670533981154364115383377503030240276729029487311084795897772260419012152421671408714019855464702740999040318881656733617705919550082097339863541556831355937343591167331973006303152104506487468157194262760443116046780225252497170733798333665699134535769513990913046070531745231301884314898474950336740684095726907837427329408377985001558830659475178276301238958232304304166370307249701980182150944239155638875550230524901021986223574747958119295569873292781326255817441810369376061992336115408387296400166045785363005576437464655627973409729965723151032463471369681934625832169856359834046130429645928972459845460667065074262248019143485434101985351994081645280636106942644456847558041776046875774342518697605789520578678174565697773646080429733636705436055541086089590259064510266389190619286184950659003792495071074409784023336016663744301604187898172817917029842456501676531959030392208442791753459132749699777369917365959897799170213893599301182018273647889198293264768506963017291134489478987873079713255581079636252564092506036020603322122157162410652357082313732013691623755487606048128025088555218238427092960273244795042066069855198189396694596590265865589336382207967501200592710638872273083476648426645979012181301732063693227322373540953890685279955118602566576028842322802393274026998600474397400344761192768273644040326261826265942697014926515568703666982102970098753333514946036847814993842903822792346001523848004729487759971046622062340683529170767910725846918591689602597592105123110171458849395335479475459445311396229649494528661414376066003347125314731819765217437880034534091145656611725975524251328992793932171125254356243141630706807499374268620641589930065623360512482361923423754419454665847182600908530099301326370703279117745129107574078356692616704023028253086881610244365303231632479796619960611338125899924925534655224822452637068073612476618911388833027303547793708763361374249175255856740777709846858594809656647691183710295115251425003024584087492495889531303230745897715162724329778184373606002853569296605924779023658137557010655169454141264411891048707389167725340333548646597651158282668211993252948558975395167767316104795980452001453474399202603225521574250941871621812401816762697316122727834207348403844042904233217055745709888879276838188743879086382448347858282106134547058339082555561980162866242522597847909613196743308144134058443985110591941474554899385828100183718830888715463890086265648879119356145124027633249441413578388035295707399312151202556117340397165658775767863086614187819867822377861732316362492719188355899413951733033643461805877275492591288445460377412859048471126964854378413483472112598935730997436606601541247189477056502952871837422479562268382301536084340034234842954729374937263003654720201397744662729210569149347751079517310408307519517971332647691531918652892050594004853180128761614072829511189113042149877270681711832457540606253092379961369479384093943068271249797423114725692088363887832226113745276559268577918340809386477513784409332135517057902426037352081827314912884626453723270760281004963714424788705706827257646661369718084403164249113330608701502680554341319990111405204070078906353918931112275344871224553007042761507324775109239063103461595968482228685373524726886923478315471595901435369613276809609470048948010689268389896537564734827158424160669475941149252250828668803908818589670320973657359830415433367919403327710313577970771783337236665919366997685774728514650136640891789206396964898474805125010173849631345394101720882196348298400720836121394274038048155197033731739781894204380062943648050464114790365486582958129061968674086502297787658090721554641916228409794376742731971109836979412236227684769660384838803561249134165102980926577824314848292437281786528506196507073233587932749425149976793718641972943247310846132542667242037885666892379769756788336945816104999518920655688010475622591990820471586667114862313296306775608887178675421709366283468236683584264141723400221818546687691942102509413374431612874609367105027858957623537886684662440067623489383622571990887956394214474257099440241854736545207040573553989853816901224699063507638243872862348604147307925283627671289123665826621941657737812270533565494630313004726012375892119569320643506356153574695426793947582905642181616569886390869525221144079388270551242093514138092812126611266036811084845574907108488560684499022809681612075692353546977380578270978767027829408378648454409042875359154858902567886766193654083664176525741296198210894992262721746017719236752123056686564899250762454841687722687853126793520396071760828909589658644464207708632750219709147667046932773123196784899483486565451308516955379467083674310133848926134353559242885274819233338955957350647403367187138620402671362818561371354752973877269402438480562115226350900320144091832318744340698648622594822237607617116843141325106932678733106148056084411189055384362267217868036999168293566520069988669437492734083233715181304069759541168894389051769062395764704895185256208489187201969391353755923412507705996524002174813019892690523540561077949703012218187407661751780006637126144962543473377607563988808804173880836614915895440903321661442661206506223464724706489913370990821394723244433892607877368957273754973298636943400599014764251479641902227539504127980204864981278487955318071815493747065689982307123107284832829219556482587546535839261237919077835117239553994364020425672204918468905337520108272195977496641149168974147904396220101798739753445694817259951794816764445249558151585097373251639265947778362096551477116418422415641127486571527023065597936309480448526527680525077029099266975919019738051873191848367373173019216198395926379505486566783656103844831989323804291791488829835049768567471736169270100472217787334735628825772847757374855912296544111327611191564106524438846049704750785255242895068392210207919030350354140897743475374950940056823732960480014963413854877104478531826092590249123388483783449968221301582218811445226638933607614938189227514060542316844414325494971168065071116860563007487788866150943935556298398463773160134357456471446531676291296343880229143060564638315902769545617928008669965679041468981657526207640539534482689561045871763188023905620007381819090435720331230884668325139900623877449489693026078773792203512835932552079458237055651903133068440226819240146318663815664379829712508950751403917806096859617083525971019435683864653210040534727165059193497316379150657691449729758681932686485902392924963387691526155295485589180470480550967851996450558954519653263388922910617425498493920839968324705857329151670928170623262409735537276524524150437455806939872514761188268444888513363066605294831494770208329296840935442952421722381509317649967447974932358106569892072032665327727091874092934307966715187083061029068076550568865589684510838572452570853221034570393920269664236152785431633037180868785397026677209814394476977061694809160636728232535225534263000205313775979500034277761841589727854222996101756777950870280761417397848047187384873674340314515416730762719570771587485467576328980171074330021001992579631214726535741300592619858042824312360995561981956169245722724086461617342208446281012673933367794025623385293376314070140150918580743081429418629035163325519238716591171961567051694303524570077209646700906478852926365529673275056284136827664872599173922626682019150265941394281702231397215061559733032131453414513596317809110908232577054281520623874538274022340214210334436015855585408216164983532572884621834744653358833045310672203653242226254685609548748875556353304619612604777007576490254473090610353421640299343015044559129333505161984844808094513507690757373110860956022506491673447173044263010129422552729914412665313076441586490596669062915022120455546796256825586206948495928483407248583970134877166424601844055897961253084419426952945864356539586543680969471030134702047948498898252140101109392871398340762340756932797705601099206670800020068584796502368812903360457163361721175547177266524156095862158707193257124990345342957004699830994662452253192615962449001533340186710771575033942244951279065292285811774346684010143953616818856505543366596886846277996707995381291356968549731347172646297388808764994403631691529868628202533271198677078065903538987860486292108087121566107473787696469969574764358666824291330330346431603934011856823028932141371281069952720720323467806639033056606940297782567286901491289023907494578713083039733144301899261843469230653976976170212739481409589531853987452495832861349417034274027100134319741016093266174483702897132733932378144357665620681931539240235707581008419460128575165963828945214955605013504092477562841745569959106622796343336952050418904165099521740740237327978361461458489608582875537917101946620392695349904597984806208954852778330192817752096895844707053062574040925831506077564309665370734818320212307368040265585955354812553847057419248507288759551131141828659151526805107410979586557993361965364946063347599589669168955075577705991548693242985596599742838176117791195380680001000331478915641442572923492771425489349896357455437070330295085754210614867665682124041173707735818430696837848576620222339761215929243103977915055116129444873353355078543425404855197182670670099481898226548397052726251704939768480780677031893814496810587961287567664604162918595477703244475363363531253377298819978353455220268796640358372406898280188519482483684937592417534224712243898397314638089937841434751754979967797527088420876814633088277987489107747745566037115933687298586601102225925794592976296907952585040475745826678207271680790718042111248399116362653263596421321334330691126283352642155036548804893767686988321245734188783506993149406830581095935319947886606294381296435337902070279045978039556654990781866640500496210331437977458032848814841272134640252504717352485342897757062667010471545982957655664281569086485362180992822523373931880456037474019596362436323819361716321341201668760983154490970509274143734476351790891922870442984953077439402527154212226421813440265580603103730671263095752008907587678522326518658925662785050215854332339309757733557711326602743505375517629075564627283840070114756283632177625835023686533228773010753464996555830297622278873412912043439766105158953022689877561965210670132970723565493471663797368011320752850315988289452175135741847522412557946326424555032998102325814232608437379063690585167342996447391947671715543947870998629425263315987656672220142401964657740614659820384879777063605441713080191484429344383847748162011917028961043289383191462968525686320889818307632277205211160840279452698966465098648607447465888264858220600475941866887873916011884620045976480525196609434841612516654304140744968835096189343311525300147767157916042918551469814630255895409969518454931246557916459436315367091498824471994251685391573444121681767078251951749013929773707748708709687799881807015904967279040745451738396745182709717104647466982089943986309188023576660419864914874716597218208731441924018918744220815193579511057899506581469428050864622476977428364724052316527671075210182342929577316187848540851012058720887523166569004548686563169130239797907262712382591220649712083423335668087347296784603478617476085972925805163366834172535369334627116214273140426434028981696560534292752674625655507578483486713577975122902551035365294272707162544727328187662174492947217974689223274804858697669668763055181316186824937630258491264540723267864800709358470678634311093973898272861621892008386800653558451574974066245955600344765856282675327158106942475181512390270170913511256367127658920119822618952351202895344409874675103597766613627066756927064000829742288581068887157763815382351313871558362254477930483167213419253482684641680743345741406465132096320474788640833457773693919506435450492272583826621704598358385702425979711150542705748075783664646065278118885103602460394305413075813984846194009198348925905644347627663188695435306287290873613272850182763093348204766872577979251222112215904742392429262940947768384292098153805146624503145006843971374854058402085683282049429779870366464627679535035168029632242144976239872157730513897205166337976004444623009164679604495239901909017491417505519026290283429658716230724810038213644438479459053226168518222290987208933566399480048392215807914288206244683800241575800762847826643754409488785102640865184117005351469439446893202378112609260402121125362102850788725883821337329521451461488170992416544175119127695577207555752906465013727445460501332753036074381486322607710339979202885693792146897281951426606674411406139442245410649187683910413160654941205094186986461588530192930535453092052500648436104341263710611271248846798049289444523169189511547049517102909474109122406517666952397467210525757104096407015974976296823752997346440951071262996499007302314950583546206898014268198999563691820498381671314200418750677519388879558950287647525407422115696960876008287734638177176476626514843472981676158835907775811793615055624729051925727829390333836246725072337456849323572947400012724235883853167702262395250086159496842112537604398465934490909246347974530481987051941165362403681204576379990922690200458066173382355038049129893080248065031519933133992381045168498795671638560196524696564782707668263586811987211182953976263430876858888391886508569798566270532285162206370346374032959379738159363247259273289929550261327774042123472227675398776663613419039243160717507519470111537882918203098045239615800871750791420647857859008811497720776044864620635983809210968989806184573441980802070103605085075834432036180421916576993961601746100393422266356988892814469047283470480274797365398567036085835591675188253842572797670748555436395183417113120659482292660033347883766706451766262605226791750898529115906355714252354998670273601630402912670652964243844149177423279936589623626495581688278837575440688340970817138811411427579145970129438578947045437885900330934462091800286848491724103348468915227815434712644101639620628791888233058081183857588241959478869703480030962924653258412097692533097533734930369731183226898736358763207248594913643278163717232244495942877770447605901403901104934845235397907962433932905406952285352420930548841086113351712400130306227506376734647132513982797439861032025732022935399645303641006917302963576455411955020739688939122655083444398209875753649572809403257037352765429603300136326740646608221825490044358446049672050038687049687266153983470783769967011621028500748732595226105425557470845148036173883140725044288824015778876440915893657426596883385644254779834611564359257056536039669167730062481862050084913748769617388674204655205983475659677008426163635764043244973866545221910785156771487403727479398912979249607033341042896311611743116111667455868542679428271535565124406273406986880035743994185582597749724743621842245235686517607456418494690003241345333562773140493864106148603962291553754247976818949573795169024422258388235638205359813971121486240852903356366100077429941791842413555289975262247619324532580247782400186653635489431724009806426223317277623909514904857964036361277118873905035495899687749457658061000411171645386995822654967876384843047943021585867955012483543983892869190955626911298129248867588968643245369747765117723077275892406067334804304375827038238781632668333888493696396944944732843912011593915103170783371337778787773112681838468556927716974937892881246681192960693126428017287008253767056285185004933122065416402579917257216361777459647656516322694129125564763026354896619171429290327718997805062642802962550889303755341163903826093833359240218315616382498541770398308148515653913792462595920805130050956700259919952000396905574677531002113301246683941307459432495396069680244850484650517798051821912461795866269686107852022754070241435740696843845495084733395174250127864787692201997132314131858384235446371647321744106154232753811314563378186458546864751690952581005878060605266669602169359207485357223415717114127811576336675574606448517766536083627195916753071007922323038246075361410422968640445700538941140482270901171029405984911575059027587704397028147791426245454796439204741086338335102295287561101166894343116105517074727794843346150575288610368177905947344374524841578037196557908945772380434203803539301276339879123636014114628604585336523070137226993414612837565545547801838838708803845582457947347944089183256215512352833965493591567539393193595499308588108012804557438843802378128099651536659673833875071175585843661587636593146362642801015424184592611461782370174890907593053806569191191906614207620520533042121305032362552508360743894965928036289860788738731282667912988122061326819457603164122832670550950668664829961958856497141977756635468834375936928232314183514965006869124333717323254769398262533227381525053947510262598239481524462209509742355247177253198178808209698023107811080526020302687358877452242897523502493901029433180445874740945263137528424883847324863322674520535791661501217920986295450236415210268018161972489530363124595573055970329264557788015306389104975810493648866498483070731212851167251050449586578821663794890777769691885238753513369661427382318051472823800426812668600665341581569498929426690610388036591344689289142638460845639790570531501432218045166683183170694755954341861235984305891828457500462113682254059510722611684901008210519028362070860953407624726639607286679483604956278622437387601741010151116300994563051098279832762013882434095634546886091649559841505592517412817406804498740434903749425596783211917621357887726654526859214285641086401750333931928608801907119307999462750368172888930096246365700295705277240807124929768883075890674040348000047454312049823242545265175568749816072998756143049320356777946038558737543176984919375656468751496593086398972939747418630070691706944554448433386247816580573309379285887207705215317050339846961037477698176005150517175795856330956619274013526827327937641864491313739410866704297946907101346234968390210849588591560711201175385445987503256689999018883226317399006831005406036938046814314898035458264936212871155110075568392130372136306608489875338972261202253962564945494735153824395814628141663228554234609765962290925564950418783714603610805823168908636145748110142713720389276395131663780239949766862739737306794880722546910895475436142995956983638333550188367971915249312870628598909216063207222884031372317119295208513814597367246412880345446854130884594737268848801309029840813230186220995743292052650312416867180854984495725431721384513949937661986114916543725817630205526141828023301151505986503737624719912284557954866970043999847711966107304329858196050139673603740880663511345808112115828316060256007054322281690320131903393038095696870584450371158248149520570938615697013540350962483598111821170458787497884875278396363821427816631093153476645844298545101248280054575526849288330468974081730830604319519482363122855151617904506286286210457477762447607209970438996875735376686091107002451605479902769064096156941504278292475091020452118698542536459208522847833370349647743337905854560471374859766861408363841469673220093204385294178666468846771542834894326865784484116444746835519098804024098549081006663954372755546189962507503480218923543931946440260652390763519557629710467012370017957417096345635473500161626440934144848583959263676527209081786407391417283622226358381716874947504049197155279451191959988217517664968731415444572187753434860108702096633463088570883936488038631105826015699051029572886129037970440170411349443039095615704624417125031490908448185255116471273109614723439642629098315904302906092714181994064174477042661433383357740566015885293740445904843423893126678028883651305744707932265874413427594831061594136131452989324252347834454664822737043988669952211714260366741677929542295786223380193710856669236659888483450344103094336533624822999611920557815603237354822864824722747806990388376806406230757245178136549242322023523696997807681422291929263170789848987180098117351814590934999245852414269948676917566717494022128581755275402803862620368987953497305975802554267953477891582726182163078094336815394178133434396020462315225674318309484280021547207694995489752986136970911602535347339953244991634691345797059810604687547698988200279921923610131690123987439027206251140459123377484873153214986628893070522912930333318742782832553882485613829531526665105178756342020244118647928505461721972668755169638405474557510062142641195664489625196407077022256657963428539755054458631489809277978939915809747787936548539051329758037781252646200371707127597581328586603944717667541569316290160484893694044497094822599833106199503995095848663421766504409477915521895782401678598951392216731334375107166228045311983295897108080315680944733471300775813197194136882557487245851611597891717315719104156691738133857541621770888213201065452040788239763540753598883316757951572361864295606442557350930736642445722529122120115598441960346492590089153691221126655866446400335286932905211663375091508339032513851286578847589860955155595908254577568362889633621804234124751188053067995028653779859602421191803068743873236931194968336970430600597016131920333256998216273994531565538780816423748608468323176302632705946232729766697803837500336663605166830219710832211839134214902335645102479557587531793339323016044322938070157966884924540447642567774753937472187799468065646860110727463962723783494420996097908684782862246515439565691867243475618013605535503480135921683759529997575311395360725799725701513066134260057043713626656005827777540200136578337156368875402023294997553139410127538769309561140863729852670912774814436317082906365807750661523840304714824184436165768067264058084025315640799473747521304403550707267593623696906579440471638889196446413843946685945090034839046319645841430065130862646145864138892865702128068125874301076999979777470568694317248075976519876811310498752342014580224912331474421127988099306208368949521442756929880683338156637763092828387919078590889615961223718769650652536364404342019771113109909641207275538803080660413589418424322287017644633993414943667352657951757226669271815177948931774401452190732139804995130258684236929280605239426497209031973288206154668254583831788431734397944579117299140821180907918406078072590180187446006576589248751111934662293942865912365746803862888976994775516596035521706389690160760468700347189273545623643326262729893315003534090511608388424300355751570304250960162140396880093660427472960369143099818572816011488445195623937416326693563957493460282445338378041686540192833230155072832589238989667751726884474281680364143407869008477054866845979160310727013268318358459539455219863222904900750474444886824497867178202300857984517311913583447656287495448599582421916406816401249737117874008563196884228242077687527984797331658378133531769822233063459431673667004396408324350454301128963177762819387238297690065813836170305121931148209923004127974740356277425036231227471583526468949646092025909267582029505331227134974242447990922718167793891755177920706248953199173899730196320989899372720478372130941731223715368657955150531018013648775851719676927480674799725911152222112540655675126465319606518538034064845412112788005234152499628686712164702076159422163417062379030908204702912002870292592139852961367949211139605093810990541320801102036106843925280946911649567658863561056477172906985475505099753287927420737473177623500219051634596510564141734095301347716967272924110795640966642983470800139103840632326473701320247614342951981009171283688864208333103549929684790205929338980576466630395492532318011080161914327909043617490171244681685108237094706168792394058136530549561891371340443514592796775029498529523108821219455808932092621950924974971219988571184330832974950168267610279606214010445444876071473359057105640469301339085616023084667351599232115844994922676824567221561878829872311350120958994211406982706854917895807318768960389786955926760394185803027975980999613230916598062275247306766174890249702583514385518493386338029290665190190550949257731242906900335486923555294826576170752741416850013331279863162755767278031365979779290924816795022631171204055188525002224721557060180078613706994358384627115328779121554414604652073492675650293197766785611718989872018018201916111247892870936105072351402999796404728489775129085591306196528972589580621865726400707065944744127056457681111064764073969180116938496501620118465559067453754686887581276257684263988436317480660869561225716945362129237965380562875312209578343906178316371016456295218131209729584302334462073592395406783074046874613370774498089721852081030127847331867347435600966230747423756201748334798584693628609517228469686253428730454964278794281594988958516440201650096413277584840504231344383437054538883742046964171835729183702423696268278353876414562921331860849603397163975033700080888259775504405900164571297646543082172642314021505436812551744902542464652119677212814445984514383097031786190505959002984974002107855537228019617326488708274411124989054868908589072407355444061487129594216062574760988148705495184189358918436653101111668298823151395703948484780377945950024714138215844806635702692009625013261351795434447119361569928289362335938496407153243576413976842731252209446038692682096885763559232790459475270645545642131399788829277477077487269701147543240858025538025793362782782621718142068779728509907405286135663954966845428942705356479063577986648138769345025559286171409364229826048588224347048203448748204271548071207815614134284383034026888998174194163824363810618136359312317110248550244497695466049691387666182433981265188612326320131822786525520283527578983505708751539886088160510210652293440806314186875813506248033071955703587990947940044744717820752457066950696427579404188547594052679869798169948238087390499485934987595497731518745296810739523982209978339559913795587173325225236851821874405140982504674416483217131774607661588111628225423162107960145198884153545121529155316324218145195771976956538080649189606894011926964789107466917928022273137122670546169100064115056610420630114163507810860054585695388615716109453117937418076525294190062229889762348173952489493747229979004970607571375307689128014454146256366790831227883979122111486076444478934575920297981338657558698149836150660708611708699495549021262400439202080440608943905786110759513508392210114043453761683364899667607375952689218697936496323249668693240451012638128893235358043500007104532066883891538358832933597007429114755568520541367001713679757128566032835832745489265190076791666922923277474728670567103346868735401164811512351536246779464324217640218437831145951868085036964725598762208931953381641899207451840222681159278782923188924778426458974199271986964805497351410388520696662240675257009329930135648527576269059941005633450180327600121037626122496103571554997771935414019481655934592380982469997829819875544214464434982101090072297448168731252222138400800477461281669798762730518469445811269042307881061215660455418133085910794129695272992203789785135120688419550245928261387393579569507004134301877121116094557522109451168887054891441364014390182984342538425598296267371639400374512349757980038263918468784960019809460658069132823858725786766269777709428909808705001019811114455816709426746957900230902366878666063734750777553834023025944997128636470792551086769615997361726933348951965547727085632611859886683647750915902296534402021510898278869230062286842959645237605497800200425681853369772488251436614708376762504409202827614413179997418348822493251009345392270260223757629604387962435562119699629862632217004589009081161435166776789900554617251291390192166910965248785956364940379425453120051262744176222438516765438527975252403242506010704497138587886416460996920627333734556551870446037449656742394202673486107281733436263733217401364755583247598535678060503055648792359018124537440423156239926858505579215237655759943119162162058889552586623447373784588981176964519557655539087195923918233262133813717819912346031772576592442144637196700136422237870462711290597643273400304358875629618161146168255575735279854555238257402378818638399317615933232347640075921807219074032843990897488817200051546422642187683124313368841433481548293035867832394348433555850317056929805837574051950990585921278608153675609911501655002990200193700342795303789260058957195005405478778404818483756426570878672782995983195920495803588076009546784955031576375956114545147235116612721177729336669241464089804170025791009071682606874248938881767532428871158660224299278662711573907952424541118274212092724538848908358177761159907578919234747003169220423791388507137408174746894462756817998898333820900246272566459738653736843467974120096055150301642391083688215149974602917235125692194560351468460246317888941527180384667179343761857875019577380854414312125896216601200754128179707327238789310992481438699733734566460827783097350799477530430035429050530851666935246815900991311856756180260714569605426876864467088169078312264938287648769845015529032509795217957925091949588191396416272115968053210837614113789583318447118121580576144393550935776214395943422221999332553670389166264828732845638660845528594699505588548930827198411581734617440282623516301665756495133784376840240194876822811688769937783608564169461384470201334929478068827916730551372354947164618110918759014427849858438526162529784751860349608543965287268269442329233971712301525937630773289485059748052202676330085555148253061698798669770814852001838915072871814582237218339917646005738737327672665057906326855144954663593305523296330348006766165996874806570198646205081277288945580647681929743098018841687879471336678657145102822187792555287677056781870868238182346872187362431149532863797049122197760305048089334346415747800683246026292039370660788846998601291969361576749262683272477796214459838487394596791960452271325465788143511409623824521889598760161802922812178616591927169428278624134405282780233004577354487422087768654833520090305017762802206374551313830259073605460391135470272536213677509499269870795525351874042880294089074763626890374255797840404493859102479097684075184916343004142249031718403172282542041981900956895921887914239769689793914982783734786358914894930035774293703242110525913334538153003489049255844397130996347950871115456974754506019539795455571448313377168258843787931252879446868340416127328869207419134418630815524767961528847529419142293518131319316736888387065046104145188422465858611372717741888732973533535647667370183110524264160715467781803469896152466070899677985303544884788188633729794168792657528011838916474664919337384111805015678357653970494551943815011757262948097017608031303331626830984040835256757013362406702398502265451477537025990281212001855135921292339604666036266722998977996972297152701776413092271062754987585407919963538574296043992096485527360758840132734461240785477811773119945638997884214348238896551184455157667080212623340566765034244429808351770495595994555563808125473468124658666607057128848968436020257451897826366108990371400187008472053141467514338965192917037606195109951788762261127137136339226528279941112980417773290719175344448079249293557004900426207791559807723932595176142775559473514651204331453420806004994463943603251781425708040671401124060732546780754401442042340785026895041083344085127263380543715577470424132156758491179159005064717897656642948598310072192259948242384771282713331149353104350129580126776717563157243447809151888301421351878090628835225008318612693478392019750879510406325497435543511287723176006641682416874974427608584191575710080941035064636159411165650476114163585331149064688823665842795408044802157814847743087972093458329352209396644605619909373753070070264501273131102699754414951774157021480939246703991109142615548456267895283422560767727880418592426555635830952594538237536681149282451458578447153202764907003364466481169568282231188398072115901638602060566713910019223415664693186240338622751792831633821219319124937344873017195484558468966381721398486883033471937629193474985091046354102789680994550096674833436720583461524769312336534502987944298168779851321019206507432199481879240929095214835268640977431128878724153965178166071495968467873115182405126351627336525027415639645277569264960636790128543129736783362658325229373352991612519326320946111326368894360334362266531192330883674560042686983216338537167276008439211056218017500573685926070320852981178185390907654403404107909649929460087293519643928550135240811016020598856510454101484458760676127400569583785263469769088087523981760836939614356628750030661263217689947867888939968039337628264330321837084449120452758131280248783835890007538444386858671831367087263944196040259941280938898311099003701709451003844428012591230107943383672164986850624135277197650182303093794312674460867447687704030659940825431520654510850016951105035810628096461740507097191721508762810811483993585443142575031608673766619808199861871234491408724407205498215592108677970558446384571945179567435966768663391124113714656828630782273016665315855596240393748389151838560919865878256197513618941857527693542760483924853448479996577733671730020452795642013190620614352231866893459691946168899757584122353464214834269032604257027215934055229204713852960091217743087836006736289075091514033777120630076717567877002400194734501655377587697786182035587945605489933572079627060336005823560509326430046780205154727786649421070453613303282540791270036110911714333331571417668372159594033230101945633375801321411040008110581212422468162688288946528464499042494566509239247528264017259241970462140049869428172899919715643908966673040135234619533936055797960944776516230961733416143777748211013514335697811508811580478559940873429071646253239396437862683301366211358741157301881086490516358138298161654461391003035175700236167042576573585455198327504111459583989704779269307448250957798835127374248551810033418042172022108177420146127386757660859071511314729310731373651898088074287871959074644230952011041617428293749729647767600155975724048254599418612885062814949267391791431915297450161764526804644045251878237403591982458375199890563040279965343075923113199734035315211556114517585067104076686930601942893268011777434104123602186262383063866738873457725036637433438888980828878751945693779976992519446709649087466149765964540197679357632628295994069344647656426038842497763623743678161831563199133657364466721876750414486693888619482192762266134104990996498766877163848192201552654158598595627382130982784908604657175453937953495383707184804595881999031738316864113752407479251846196535639481970905274577248453067521184439604370688385449345680688814703460667192758655737468893144835853204261161594121625387216320920885838815114939827191595254553218153261996853807699312889113774295689065839144877677792322791509795695464880815529584055900119366628375319927281047909397985442350218415145414817056853575005982693023773850856390185104918086685265608222064306104641086348524185317500821899881105983700628575283437435638488605122678160662634530739840628237792599901231786734226789069893144306303033052737174779107572597384253204555196564361085199770755583119139542337614306671327915233679264624108655110978211826456836200454334885123392676637606428246857069166562555931578730297311700275815515727181780240918647782382460966185890856686031398304105652215654233729669863294845753449462823707723714480556476416846885271626552028824382288957756132530616664737290121046307317415070276449139057475808545862000512141645533127783570564162357846285459388963576967020374667397799508977310825296592344623787386536657458719045488395623584553331408155783145962456117400936788260851898535713295299081046167032355993254549960179041376631507125847655177371646322845423902178827271143503867504956201877468132746339810971075606796939840434410018215845368725070704291517368611617276924945551295850455035236384392333688549448424670148099851942294901547395010236445048540685951371222474962671744772118082121233141793222074325903301353110633041310427400960089591673616706389290951983230095282992595434489188751313552072000956649901138761246114353470360723304898958699801958148472455563806131375474771912225533075696945307199176797736420572493178145522544145197917975286942457278865555403529173769694636556720261351553249626006879893336424452649721944708262393028345842595413628643229880657627530282627269222451289970906256060735023646301269875968694279354942003873463541175207511128064930866007426496917434241658643024551423175295069947703148928130926880356673839667556769886829523916542256468833847517506673279914118905970098298570907168136612463062402358418724594769373498151351655782946994831728882536175366246832407776559142271243195364782317948795657016865310732186045656065559438613495448663058414176449980960747519077167056676349643748538762672621039502852171466151733536628187483965945511459363299235260848133732882266139506679333966684730173032286836020094026781977098007557534165766539672991328132637887123919687558439749654277108841869961329258884589314130431387317377497405273234187204868945606939696727831903791402500114295697169617212404083494412843542501262684352421852342851272635905257651824947755431267635141338581208023515181662375540908724279943132647411358758443880462100270000685007055923055544796167980790026709079749076534295131295568150927668681637002325645786518752044728144715421691228578790953288736070733678372840345407257901669999294003250393742665944909460164280005935691632723359362833219893654643272736101811734861972996588965979941763218848813332799785912698408416663145580656304028596380331285499604940583877560201083019876667206831842791602613954055519775974999866866655232330757277326647415860187066329755158321034344032012461525536705929750572231683527730708641666816859690234759737775526812606883065905613877947561988478951541091724634086406844865249387718988800940322061838929104080365051130582117021849366864336622246806412603887408953626431659428514959097228570632869713069017203931406470555541332853298466123910137268487780253813380481658575701821083490822420959311316257750145287480592614052093836301175451923917629011836489567874078265173745337759175150813720133192886824330394187594126997044983287054153626593498952469040542888154996151990736389386720855087119941151187001370558322335691008086543557029608653732793840974959487815537443953810330165022937231617265891850332174918472687745717128914094023700001621236735329136326004702400609605517928776228723397401015934130781526719293425766114030917647843184564390900021330381623222292553354723156943296535004145582769379610586204795792430632700804089821041839281258883392035351683828985480930167087108279762990185514162963924732720883691575172024336094081953744522770184015031795325245523968514206952352144538111738787566103385254216180517204160837455478956948680710011831753046587512019926159963988612174652849127924351602888456344669700597247612934844328899676405440753730921713199951851763804480928745648465396012412963641036378218367489879971971744808610803685082466234454811940885656562750786680792637645112023303293158673069460975333162799211786980372725215829021764149330203012476299279694944191671795733248847338121887782291463718765256901036377592711862633819035629805722725264891171545467487471801957144185510629748619637335004068070547585064114690758800408844786777723216521348874805404653661055121523673424302379904531487420972790315181640792400961012475386587585689581010941995718382893123985674488475368511414263050953923142223418816091901995460293980546647228291866019174770511776187194269362193663759594554366754977764862464069751383157218389538111643075001478574862609442474671790198832669331808767025838108405046981487184000243056567957640356165089791894443682745312545869810236058317480458948085806508958015916280637997244625079410850372405265022681211126359362358809386701701558000890041546248115729302950828376876946667565183894247706662364302991032945313638933896398380323138927078780552929732238236843461770494919847013797789832808294899340624536299611585882324811970262111203951789116463454416385474844151737214606680766873672795168814266925841558018224931093372117795437133385662522411950432950248131898641459804068131942312462392207594075927021099712813643860760290313714380369919083959763094592873395579754531635060787842856386300540693956456718146928840264555945198742758056733062861656307177448853168674188150045685173053066734040443241539355343015324300212673222120445452697832395052621413036854171319651137593551175972918455696584255616279002728060059944785638690416834545514458975541344202150462499491656944351693686739170372930207543136221068458334728054084667462428774414186165276149769323608031936174826535496717423518491314524367402277097895377538437105494026988775202303497862692551431499382723994343516849760828376130213508979114104990978065195736870005231126107438533195730776047971224053846039447805071667249694786416650696041725137650895017730537550580669020190947045353401014975038963950190084801005151026260860631903728087597289228339793878276543871719258171859449899623573241508993749342308389919095282175025039166089629442661483341917538771106652974033809308604939813600346186589157946064387875535222855132143720761214245784130339165502958248548943373240048502579981238404305909136741657729335631755395654825633686483940323975190825973820271276388086195322139388464527596794431899960126417232301175481261286384245728028910816337731817043808877878559620513662042331171642707991032675042103731365142405435295184320142194786620425596779591711159313718806456055738305245451744097254772556568865634756992014581592450563780217392681374315550740664662784710130301895844859555121049852163603197500184071912743267460564429159725871349367688522960840870482410077247178787770790763904236640367199947613694520014502335090170740750675898728065451265300686874511516091120690422914376306670628286956149049167308471313608342804836196398459941787339087415023396009685840748099140216321727623631296741180569479906237070793114339082763880544781327061051208855183259392645634125933879258533513302844525968470410958156672614775901073301947168969107837526585778334391404271422915136635569624583764849460283525998932392961898069092502657862753194050223141991564389247778841653182575510700576144796836485310737278939547667893784711435515041810065160544248113950420325461672387358159630645543538795261580284733419404454808282450336862578229159926718439303321836463833941115834451011068082312200523907516494091217390502059318466070206070541081520540986193796076922374342307322879902847896276580004075569045558553234809149946639830080696361900759821914576127218202570360511934035833139305835292832672316049765343521587347745452094394491396433682590914095763548223961820433668276230675219425680137960225368828135418479178004426391192394605702412794305573100508554190961636091235467809263663726336567567464279235744153135482379488312742341646955698721776129620452535301432488171797208209737142934065937005151675949646151019693519256196988551731704069282655624027310941222938432481908846814316361952068969702132458672834894189076191578342868302826491294971870911495620614971826679803344345837857593733448650420545283956032609524169927313894706222931726225214669273721203925410796184802829253473641476144039228986086130043570945537724866778956599051472079797570012695547589640267397603437610164318304823603483413115519947619023085114315558710102054543671876379971670331820027363737247541034158846889933191007968613193356436662838765588878643904124799971239495379692540285469898533151768384848715150811289911306600158097970875323937227237252368729576251417620923311215514422464005537239360553073591497567992701256591227420736855601815867123402496181021053273617506287506731650603915414096523213919807790458398814762195844090751835374496003942780794610494509083178281787895284978386138638915528765962579623984746459993308792670623147813490640668769317645273985280869761161732101187749224134422495730134894241886476251666093981103521817862878840596192538466193263402675953316064596411282071092081820733052267590633663752474613905216143452792664971055731676435997677651553826701995699740867671718368898928490069259895008033760628165491062662599453346966693262282930019208872920504417308509595683661108471387943098244287910651326845406826182582116102045185755765110548587588360816418379728895495137325638394032789913125494717595607765563001509475909126193349517972497182578808046950595358480828005548091468161846675810685762028844544586972497047810683738060360799509039767653470569679167146573714172892834176842448264540865792557955770976811674077850831487910019835473186596483068629772677469401865930755925233583699619975154651470220531604608592516712808253620587816491351388143061443115048117550602207824705212122238272063117408231757348212215332729676947995871721055825139746684032507030905648988037999749791144778902997503407899836808085437571338443085691490222352287172389211006559172592368890191901923590794086833840799517110456672238309997078354851817515470625487643313708322374598838317408571254818780697540276040077113783454301006309279097621906023603730577462664114980923545807866036009051049255173929571797330502932889528553519328905083845568126712649092485625092214122293535096994252589257461874038568619309521605239094762289581127791550722364657733359491546871707045049570334862237555037745767986188633654029707112300428469856159014990219706505500118943514393031380630660952949833668069780400944593070117199546031831027401667754381496078103384006704610484254380081149281773100433979966789886892743622740226079827217370594301803888094206505033553480450137905951770409184668589164096702862034958405215873285006471287320123836056932166358738991923455945671517912482022082890480507485462792038013613638085886713017224819672126663556265312915927746917054030621772635159164621078958205164873469297965292037948704874563867288310831355909096181476915953304502811256846657757667117381082663784125408904440184518261001022554753387438239865071264537449422474823752673464658687639905660047520303139053731731899792872835454772899001899481771613240470290440366579027542978453670198649445027963686832382789290300498666276127498584900471099672256819805178257774276281841099200515222984260818768832875005898556871852952233554060282412834646358228189415133532727991439572650455668924066389822412411815129241694674857702699289264710571504694203000284501852227042257104574047889826904204120471458845353654748847765083971974437706995469255109783989984309923437022767448484995250020121646164635262759764718429023689982889534442152766173700390274309381499753643458808213927092721063946314355603480896567455342461010757415259473291906682497101843530648248315897058403845850487622207151665852051062660039392572404129814530636623228255372499944279502409934671220135375604446719294752870235810106188215449905082521057381346737073360795028292551526010525299996850582858573683147261963387374203649439819341180840051029117356178707024424664458679674631016379051385163779353587087852301200126303734509327973183468968852351678333258981748774418544002303795360287451685863266353702810815766035747685065436389309360750709232317507924954673638455882207224456966820200234447956983251832538225646388201951598574384251487142130590261176671527182075539957824872202913127248320687186039330086611883019914338673930564192842967711701992424103600162632513984300959388276018417889543216109071266844455615529322156801264099733769643079370587178677711144178179463740768875785072000594438217092816460013277928789317600686427867747983200337864867010762091597952554392042251055861489663821134245185726434695437317152662795741085768750789541791139823069630021776330614223484868179336434726002056948966555683385147653065912977251158896070527405757885576969452592457721201384882987741207506352683953684414457918452746241438056843610390617982830131979333163819374782865880988682119125894390083477469951885944273247923016225330996053935138290979869911680167130269157267693733522621157616063782595435214438467843256841906125080918193651758254877641337595315154323504537318983374317231747885347270990264851414472910995782829551369739732287652154488888245331109935662441599782548452855442262098871299041807502332621478926686841776815555861489733274979901413709545733496350114245758844751769977175275330760955200796770062625829136350488856031248798706869192839775810011486500569228571930257714369855449548427129482787900850450135269803488037539173255164727654584655899001441834798415077993672249693468073106602484445415442566305337075849995595647294947414248368606730196038975012168639185850279515376231001102009073076405365768518096952304444076227148736620846366901195524358363171168711490883285421308348123343812095011971412627319162309508161957824267290931282565634544368157060194062211310831562870281978408441361089737727562435211378653996529206790341188429473715730570613142653957937407843606917791495735534548365547734678201233012688699764591365402743099663153495250810539983799247370086303874437528565669881713660987372624639469894765448585383041133145681339278704504267586467213913575646752921438694664557044326610212475476860153330000567678008348173379892782326602497555355080400049695238995808303192903061815140886065979850407916730017558920953498201932763547629408336727896509882185386601853890200768631713132229509009162835670187875635144670381163804150138725761160654233511948738232523539743973623910179922449300608737350817019062720453498141536508109248945626017500381815870267437830666662151712011843652480542108534873320841385583327062569455258124482320898713333092486945561268775387100690214209284586880991247639600992233816476513926522636965679555732319648997711903268467711796614512273940336955532188689235422091792251742678449101484948288114882833391839567657249387212543376860208063716801728611145720395112528829872842751061339378130323478608708336536887279776988325835199605149607784034550416627953932155881126035592220894577990917489220333922579250598972258172907421628785044426202258216378444328930688002551075403223408236942609318338318084861869730553227290106485820627307255033590432956453099943923203586349688392121584785782690670200875515964346163248945203879846749947551983577207929859985366586532555197249379112466505526669686660146652011488105828693694056548834778604759789767104560906730195215306582484111558252472260067498047269270053668812474258926524616101808339127188927398050611866911064182044725260844389329462064404034364264741680397135480999347722313092522549457619267469005186522069146147906060937349597554963535351712678422614821041394560358242634129548826460243196243178942139939147580218213055128685515472990244863716435465219743351054510237171746696875314629871121428057256144615346695142674322637126268403727000309673391725968423843057986274448052321905589236496955662535035052101635444729101689135473030361415049952234842422499981768606175909541761771089021408803075854014656485126315438145297433020171435337777221600825643481624986289601858744217116153647628202404106605999424773896489780198528787883895076207402470226632735780807977849401435704483316189757884085751947753381256906629895333995266367134171852625007217751928065680010315027492477849428522846066016145086565812159055401255807358044037232375692761579599125513271200344183767064634006010453377024712623932692138248077345275606159917226819844113486254262254529212015939779410042260727859114695195952614822439137378333510819857969504853475508724225231570351712616969579688746625425571237191912577381876117843486158919766369330027464241397358649011547441332058060854776980295296281479716216813759062228800083735361613975477259778198950190104930528751014443280237341635327280306562864558244577316835336595592426919246726668989471365667855774936766251514952326494757823063954577215927291331336887195900065924460193310510488855454233696491084425428198833425282200973359090509716008539463086325173133828430084768545543283285809838702106444026526540507702983771409758095721850874557578185219177597261842525164796577490361084093078985381472597576193096318091568750988813770739316739218771465030975544849409242252532966764040943551988738490253144199955078930949241524443479198555740969175422803092039832942169383204053443113102374067670912498537123861240555628229337851115757563328350703119452963450901800075017654572072562563160789489397698899000942862837457856425470113854687266876549319116283783862173589218681656854342923115756998329796173274995451751897425395749694228737997588371964530675698962366627065187288513178273743325527682197546892975578456128890762852655694566164165427656853889593330590791787965328627610510280528589917396403679451666876833461189018510756336492378088210127628735213037212473842047046981972084997926157269921977098642427625212444676082486102190245841786430641112334252341564892988378011823190802758589013550866289820401205846239090968306725650698512683268002429770880680298095168597032733313285069964001205169234931763068010573722718113061684079841541968732854831752931001950859167029496613186115737421688185825835690957891851805703419517403469283845140074994632630453597130444911611186983643460537603004393073118120686369726720788859607752917065279484386958112815191354647596631009523175978980611997923115751896609369326898127438433959940805716990693922130966092541045960562800241336448634729106895481108239812247943153190865060488448211242314240406003644018729611941389950867377428169934036321478034016687300200116325224716511364288723335327328925623567042967123311857474501069094577137136210568590876655247485638818675168898236839819048810939542145275281609537423033938874636891376393431565031751459294527439414908146770662546652317889934300024414738475497691933583743675751889157013323225960392349511532323920082519011487236788516688884646576773490900504914951087530170080851799650001740378426410339159303672680338612329522590064509086575023336235677884115786253921114091647939486493712085684331481330863199820593568808989325348048256411069381745296117398442848033369933634935170761953093260523285563351841115277018128639126979797368349520886940213393370793152130974084907952576767906924016213531417069969273093869207003199536986672040340716574111761250176619040463152716145283489358260573390198554639285980541880651083869516673989733857744719515447321501018685131232451710266692479863284126439928674193950773601784358764455406138123015592736240453016813390932810233985179411569642995883928063551983760417249220494155273488073972860306865893230788429994600228719973385708416674242748043268650963186719446319932834549347121459648024111863544197593077871949743332490187858804533105768018955469439169382718416729498787098048490310331017425526451054929176680505194982829975356505414164900647215167019369206857988324479352209407667310114479371477084697563660540983271787612491887637755844536275631460959738817595005617559392572558842920034156006128962550279000035269194604407411862917855480791506790943836166899134300508078810839131241559625205414204900734530443120808126590083517242024215897119325867807432512563952881065881407988840309889222331479772568777876978223593864860790540874120981884938428371538417237441656903952229312580329528852577471739579608847841368296200857078219526264042186880502394016257318254882145268221546968390058171235498652197989502132773107688980840805148944568465670677269689584578685500232186028792141868832009136848317060655048460200876353623977041549435643384181881064075667624723646888454944429211207398865484685084343779280672369106443770606554351470819243189923120465077463488774436094004656695072205520534283250391011692014718183357127069643636864374951619701727536032431346163716191788390146027645377888416804945823599544809916546942433718637414744499187533905293130941797574228629948899124221997452339579325736564041496353068709381387292679751840566780306031127274477566817763408533610600147153132140880764734519603702632538448828437780229037684694715087761983757426499408411636344469029928458392867033870545191374637700996652309098845221458571655918538337573348792776927945515455634370043863195462224335901179367222830302009428724385344766373553022848311738075829289659587367639791232462727766106590478233961585530252785233402403798526230199161653586678164194916448902709647637280664562760340177973946849268859140723645590036935676250544285627436785670318552962021370893426635931571454485282583735380531162777850937795505296353908460977561991139656103599701050765885824437139842407209055808880788072678396969663756399470209089870236303255004773441199081721572248932632758776346580173516866074363467098410610472049591949992198451285557994685971226820303842986572333303936652375086976807760847100546338706905153240755121244359280699519461687056259423321906711794179169250974303404200738558043776585788690368479882083317267730778168120802546459515585571520326839601689453331465770676699064847305813648914613276287657087330542232895552384605159665549884507563814477531457742525791442470250414477335285879476476495353019938334025637080069828831883478569356243165180545036801649965424435749739255742352044915465216525959667580649360476156547600030475495697575030769547014260068159215350404300828097525277252910134002759296782592269932629817940182982161356047950593512550106309272833567893567495195229109076394250093523552593483839669084434988434029101461272773552386020961844537858842128112050196962569481211063304474356816016502260319917383393829003281059876021525894367425297350628593089524438513068183197452055100521008950650520630299716060542499154551276301259567820363104327034796398920926881949299818637965348315234214551429287374445739972434671541188533063480901602922779978283830211751587704175335088969758136690348371061031187288178807826014993525922733378303913056143611831678807582701107803640652494924735884373543722459199052074992134913299154454896147347941874214845405426618200953524589977755196142300786618167593695255960287995115656184435880995239545839545270491145715266314793161771472332541562729357820287241049511147577327890880231777201723593766517314279725196125818786032565247498637808071396569195938466916585096586348976323383527678871854617353569566158860920101674703100214469872350615565172581284120595368414094538863028971630827705982996294808241178884788356641779722823665870046697703123164343577184152605132649754312122084418801136087038989602884799931715455399942793784975929043320312837640398193998227012822316192349043867814199260735187156660089339612935218438910441780076742416205978987536625130831516946764955579399266012941829857308088817237814557613786654335785502061343391992533572939316704994752099149130873630912022221354359560658300875295823753049649092703216617843192212031684803468235639112959576493300697135063970513332953382275464235408931928770911603187305358723993337160166583475804212514772559268615800577496562274918356363368163473351277716089634636251667127585022706988400497844088735695226867617278316023534810550613167680091114717950163200027645818484965849409125619637282827473923060411136777924955750099927717768360034235449831946534387293122401537617745127116672941049993979463262839055760062998612520557442990968929291134702975352673636098252464650298872412536407500884447347951448873703086776061800653211251989637210334225187455957925213907880263438922615406517928613818104030499858237005148194382837666671712932984092248409738708438816435373938332794894317423557430546040588308313418473024319008671699100007103827233152074699138615198375136580297527242769118133929665398032738395007583686558594430835925777309929268120472449820165049401624856880736685129260785055817463494032901790725417868855686252965808704664090536149348436109469126133708809588640693957563422232458908157380047892682210070631454960956865729866432637460139409553005571668015583076486693061361856845973095934916949089724981790466649479840612985313028171749628805328280000162542917166071849943546108059991294032207960992468179497529349670230158566355989265368155012087226565229633175429985123938515705520473552873221724555554474116829951261956098195935469019747783394244152301556729443125997954708089620280844629673725146294194643160753198277595753905584255785677317352556003640337430116082094579365380783213125650605608715084426375078805271310049619849548178592876253805168149045549834674406727349461822999866849269586209792359825996439756182286539714052304476112641627853453152033998377062720713854919896770154306350646270929832948362010626708437462228146531370565882480060870864505830354051212971562219798394815700665987037750322560433956028386390203682479588661747472067467639281875015712037888221972917818155169215678504500336758954643998346531855900504112439997264338508068699259988949744406871893567344294556192112386576453295271780687034491399331268869918341225512846697572096632327723896016355271451997192477047671999486807009364166845875651076710874610925478731583508907938034247769139326688228108887748454502918162318890328963166653669785004179833049281228034163999315867842870562827398772249181253361588526243289978707980804016672338529367131104751837398795527799271020076045778990397522181468543803121656468131726493206452614379556923950918254604759489202672905404277847936977101873945069210925054242659855123040727159504713085370961998595047606469845910414486655705394016486998086126273601730777325148482617254634065083885882388891180549734660632943874846481528400442704818414087083289390695107384448470016559892963897515330409617873479136772291237295353989495238498062049411336320841505788207889974968057171230572250318481092479628830118644772171712450085814824582916904668814653660802361292238990338070519964058283331441540165524074591412287047164096108210155394271032580249608641309297546057005827884988200033212373653147011941017955183032021157268931915812014267914257750947070606695638417187799490095182066718778024067728235304318902223711938113065868628567534703426668094056077665056800119712573879890583331671094427093608861591871877175188455728660428994177468138152738112323455343176596976820374184531475909660341637844176613421886174074012183182936853573595069159460903010845165893888466830461862859111648748842898799206018780051812843636590489689387783053350663913137987532153659398814875559142320466014428978163374685539169769391306131594838687274440625544135529895529589898658448293809074814240777189987439346452579139511204150549345363186489725620522345906150321087946774277584415820541417684637408974307768535950620687809211949059420483308428288138511010603258145435620152511734440171526477999218889447471752335409353882091797001175342756976230349823853045486133905237168102361009417439269391731401440632293112380330352774077121320454698454660188002532912739582091966465796819506429719165615837086984850337596786729969755859045344127320751917701879960652617583436234237558122529360605227550672314000481107069446447529235348132754733348260645165043667229042840251564893697907793287214760646520880225568760407018813787783809458392443049866761596870011000215475804795197402502086345060061271262120611372486441487887124962767708489953834153374522309036286212917776079278101464663974686169729514536060716411458317069040590106661798289303890861407109747655581152549409451700685059988251275638662313697745093056407185873284357351442997182775457626368529649604205447557490790616370972106859301898354669025028268819500756947830065354293816552235573312254964969894154208788886729828072722849400417179796945829121920921547375851672991453289648858445282004711485839521949916626653957714787313789279952054013317966981968147270368456752675781913468326028052400040725613517181478085579091582816727206671096548446408892400354503189049376665304578059054905954964494568113427150069996720669142843756423873124914916526953134086900570161831411541756961244052182307233040585276592215391655697559419502894001554835774695183859960711235931167926081861945369905683794112012364660302168402258550236026520860856448056435539676676834529014237259289123804774690542570013288508589864211725329432649023797227414354729113257492852960750923972744232177722762430111502252588867833848489772441560736788078695639589721585178295217042911469016371245125766926757918048469513210102470871831323067863442841892653992008398413173563756382620022940659332131333836031014791708568348123683483498858531204648845939123614984270606870492498090911790288690693838146900929476840419898926474724009359763170736624584624588742910145600428095432922463901201402461754438700468949526718026298047146590154087175072250104118177533886924700821345944746230134211046903973761452206938155036431058236238583202202596204008481085825438123915819523455881934385064680990154306104189126070269119969751950226656448104257221132715537988733137370100445761831385336063373001426378563148996270486507138963615185355711727998287542917225026358506697147611136905386286119893882457014238757655316605066484511359867764762538716665030218253091873907381056579062368372787017017963766523759839996707855356249427726878710959764427077937796118414827908120828416059745738134188790831815985396985074242071137280337432330193078710045000374163951439290019170671561950409723025894229862841619200918301969472574874370366566176531792245245253951329086388559103339370190662052158038520028471587319433362193792962862651533896498041423276624741273316880597637496335768717168027952364931337767538599443986625628717867145729621007158808310055264526084984483950395026919036206544940172778948615732504111591140978505686785521619137461003593520956032308710870878483035879149339475195290190139837905457320591645276222368327622568025307116526944098347993460875231280439696561118085286045337428541280283947321428842398770850742302134209497610443771550970110988807409649428905292548434649276118161112233223618683367666585690959118527423854431794497490367324723039680803056583941275371168635135998233608484791323077255189992224922061482856288472120474983123059468952689198339608973456049775484659154329343255006514938857284165239800731513224234950263926818711163737517094779361699550011657881112200746291538077985585216219096035046547029975315303544897734502834561126946983381739804155151521034303534672517178821903064177510756783459979733491437631223201998381929490660231494257325383324233717260182199866458528156345381654274269920067239419397870190935640080685618285704888940109488728973661824433889950213134382515811332415847136138944683077215724697157812491357033720827305076278638573411385444349659894497588259017264192417967588712634372936834029668341595469877421061485527953620867834718066446196942746799886156211550260363197003848165311104507887837103637065997592731607440008245576613067512513315201027130502954736263482355316248023833624380270221863093238365469062761866543836692159944211540742425520007255536184656977020360688300000603167769241410593133984727932767304258412595454066249750482225860557902845732043798332856624507853613323286958013976390122171247697343252268011740151182366863494559498040955895614344482483767818069009340740967836195782213904323356945939325895747311758900089234300131032805588553807958282268070703921561927825294414400442208163105772895387341312433253449815989583425346944571080693831077940104442905355447123607167881277070626875533744191744353718691773221590447616459122425181883494435165748692449487295251173533932894005237962790430182064798525805811607298535316000513989759671279642189459504827268778722744006081770355444395176991121850520855178894297529753278636545087131291410836821922118351077693223904961297699948729891916868751971282869183229357992448833192156924160763143364045325504197999739189253594368058287476584431209642188795626634645940004149024764043284821408310649157210920433476395907940752244118049683564823498780872346886870838986552553718408421452821588431868004239721732473722271014681727831552591582522330351740353649514556479515422692089131128531858372065955396297654683015538694589620277231941497311992602180236483465888110845865643569060553181341597536991449037443245199559274931429418014173621611826653593744683221475796853014465372361709290466411809268691058293529377065915718715413262659131794441959937288853433025839951304194755989565458839518159040790702927079595250500777822422321504602040831483076785316545563855370406602701848339395597720943289502299395357045724356756287558683399244163958014689560359497773229974336789193533386756027493112338942368410338282399939499456376367701263431373898322278011774648257393549414868154924229557486391330962231306529186804930972166129948210174244644649774426051855558928649595941943891009219666381331956925811272777836441930603716045767165328508509793975271190106658481323717200218616909151069802910124486070282656327322187707600952872693099999851028491559369429132929578335352973989657107820199042344227513190216615845579830793208627208507648519594195328159355847341441976854580060091340799250263614429670808121716259066725893863745445521351149844424008822168052494125127492054093951675776920635077780324249213708032233177332082402215824475414829181929345054631207822970365492741461218929273967606353215715674798595860787737877750299605586897943623637018428749388700456960232829167361785664234693661931427285951700321494046407311869967920412711578988655443054171326584330685003884669981457320459849762537602553624901797232139757118375174954939727493409355081414233245958559326446771522110031601178360809655920645985715650277475452980123554553415159077149598179294049217001418675422334421227169925833477012502265908912090374659657678815141397585259725947721465315118691246571621841924532249666400113459067859901814388323666113950213721211865809378330750584285654985847558759014251520021835275172995387033836033977211116238337500497302693903785202468754095788042554895102603793654741008603654885399972470068235269766641083966042668320622777886218600946262624521823823405519559824749880477824074726087238771009445710637762325115657330110430305161926103559852896726701767008907638269809195367799059346712686900581549656202925328634841976371534517505322539449261744917516438206672055939109807865971368502452525813783303928801367595210902765406786858394803104158231325068586554696790535443101980030260877806609518033657316528952784712455253290675781967235582175191682250976093568318904590507061510664193356166431610919342265112169846703403541483872591410061340678593809224251320584682033099707822650028538208030567997032785286191619727151465228343255639994933606391762044875376148843835510145171073674960005470762971686074160904848755806889787424094077635460435855629074813776397428780351923146971025542244974943753869439373616571743374512156900514846878709220568062200487133243659439903813069633695149272304022955106003021344114254911649647808906294915215864378012751451810658983339279329842316090448264421344358206129471394525656774045315300810368392149439765508097505509528360167780114414244822250826512542676571655431630685159012760329887674837775989262075452329815817211027949700815298468412529960050036370830140723942311881756114719395156310618478293018507444409278935151605852005321622764559613712418789010880813626848274583547410967737880254351268281470020669760414062816576597439748493471237678791910390642283919327149415630082722332303948519652958544912290265409192680536521762368191562093103845094311399700222306349892647903062712906270072370834025561946811515184808935228942130663840775041554666132195398426661660305872522961351750108384659422097529084784484498855021983997575414977597214631895945513726044617548224697069602393607484995361354026281910595672838970681051122345688575678472676506663502545986768164036785404575082518161944069881690416729327081919853980998745651441779246388185630153459475602879655824504234109837208408308668602758540090342241332798200679629314946443480804421561931292764851711514398764354601143242339458130729572663576247749703247008410223402382612246906750028423529042909730521980528276767296072374383521252608161036608541410236248837224934601860761389643278562829431294366851491541091530236056788264364612978177402761296797114425962107407563446978701625965062068771192108272089798323657987477901408395068284062288490140400143860736876156324641096297807167607368911572285722447754175241899041737147646107075342411534565454196787578974560835054818755290461644490968572217329749919841658431578713015678322156175769690218962986149012256516949625454787487405198767762113764575565878130175790853666427506640812273145633803502972579646495685107439891428256548068399852578239510087390796899243605864233514349088561819065941341393585489155831083065779808613720784088935578265944508737401923038954581839181045791843502049538187953009282982063144892547776447294632167150369485100824065135142524457456883124024802816974180762446670562298980070406826446749743549738410484277892663982266728917588649218039416592664045832218060502130470198206444053992922641448400066960776853104705357664303741382160394745292456954049883856305683092804421782955743848126263817490421345530226387699171716874318435800839099400316273399083888445588937377642145906771588621471013246180454371750188477962336801130187667755724595989048682289557047494571982917060816247918696226871912220825705337326479280418104100713461013621232271486535843651772934078892779044522320048461754062597590412603228470211871654490397920700685925063183071481118956839742235622851478798200674615116702455641496125336441981544760889182068689193829692209251781585392808729671336245808196386211749457626641267441640504706636789126859902197103628467407690364780957297659178622846047514193405970656875531353440647710320354148814210369844306419405167423732085296271863126021352458961220238772412135668801224497146570666006458952644733007090931080937458730864192335279899965761723936056767661739796301617455509468156178132494252857534860196870572411405387363373663407340141359067393124606569830694620779512947764797181119193347881095579836138260639871905892406591133537183955644558490770527388040982950041491170302585982253365085273223210668333553612288308967001596266978353975868592660200336301716842939138088267319166047148078190976837475724885187718899467719369177629115669234767789787031648703064503912505796900566339229894114463693892965560958780887455119274895505085868713212460102284308368960528097273073238237974504006284381752683623855159565683305717241114278968866731648143235513619922648731012369531948675873379947469301512500633446349863799948190243541088003382752868812928705587126576453761683585584156097328413370565994070619753820984325968831532860218934281988625996050692613726096080445252011982468110510634295477878444070763544919452184352420163401959533260608710113564877595642775145691583743787433039599540982080848811795133673513920329835425052297887776272597097040715637226180776346546256107392494834658246021367412899223600728037335943406059918797936557286520270390635296490422202792606858385006094501675006934669968133493941011327221270529508162123465957903542554887414749671322193429016883342925701486185363408284935195267038453255350411146634305909240054561007184422256353685729527892719679087932684477615966864500616264031135616763174730632921330732405247478998155889283080876489402550760583985226899797021169286933137227864802395899015152105517294320948934393535497620992751633170697674514470830678058557779999217596770096761120416326865913534387301242112693347867225268913404433538787933157073192322378565358380531960665473107358002014381726576597585501557605427089821421167738148021753083907848308281845465700593091635555867749789579003700970133246822874895962501465310441234744605065512482649045606880375576543045264151744559289288544000580237205158982936305827449868987166019947359000687387588071363044576855333487888434970383132862306708425485639850805789502018865595738509693615364559878846000013258857411558678534811175721755361717061274398146790952600316092314610743300361084834068929116535254342404815335243257445477359339491149716575507113032238170279505121299006401438173394801318806955337285812640052650871906995989311159662136378145529709923071064722221948083883814244875620022740793163516075368315160643644302704069082348500041225657270733714413405005761705992321162117226310948102198049605289805904748089904215028976951162944063631109861725268449902395046120065494074092356937742326354108756122503867216238373653184904487812424516467709547088288705740597822659730443297047875821419614393778441391376633300060370675833774217093065411294250694485387399292422667042480419674731033567809994433980602572130959862238744006149187601461068095849941602174442487470216268819340230166534202215297044492275801819465107798151364336248367771773754203285412740246449402773367460461000673174685806882554390902431264212994268432447535120217595787509464801294005015163202706217428702070360371596958145205318312633667514866392364547539792155764518498753759123667006980253298377506597485658861543454897123880695489972876395061046113336135606084794677881229214475971772778837406380781285635448133155621011425121076088986728825218360787860095721523144178525299315493630267796959004517858810861044769077793128553227117955979559035549553268238877024890301050350244535924308938530186679994452211505265752902752829439414537636544961714172349679505697652777479917249616376226717494462271469718608410913247485876685448576733515260870230574535210934317119346860406818801368645835769722187916474597414603408119302460680114750301145314103736352372271654894397184776731231669848450850287045213999155258788472968603974918416342512202897525381939474548674622861247711712615699666876036897093106743230551525073219300444441123218327410726864391944596581687245752563012283233125026230284518520752020866062907094608552324808095534739203854590319385568777331244792638977355439011318302350164760516594962240220343259637601646737672825345754414949857264486889537050466437090897423936806026084717474280457042832007179038620550704756507610759446535594600832598739208786233742930274314743981535729932286474992242487546490574792098030479647275979263132706253690054442984550655258409553062222102849853172337953525073865137884993872259373626274880931912020101317418359339818547544487030675659619620642379870010875101371410457728766244008029759521880727883527413717477980610027763787972012034903879695354017067532337417965508406929907799207177766471428580228301486087120094112818074583861251313438388127989132245238029569295893874131450267916964531916268604327851416586005206429517800955013664445893746331672457035690691202004493173399587253898222353975459760193549368975236630088712218363959022902181910129529052515157136162974697803253258903085928856080484993632972876276782028654593811158112695935988930904718993516384151755907272340161619203705478329997755797771113058980274274987578006558405369082831490088608165005332193105801465296196128410169485262057651799663064525163003589098215389419310645148671395094662690548719357696474549683179240890051308335122956690810247042286348525144517082880878555092785165749478604068881154266672075069658589586607762257637530372188600356132220022053622844214854679960340883170789710583334512897619135650295481920758379606928993500049815361409040900047747975159161652909945911988245112792918184627265976371138997614808505767602033900684832082096793532018281668781076566352877658702349430567404452214944785580826072587291977425038250958185415210247756836162489292067546251061036335595031687127280032909465345929237964567630396665683404372880228559240867745176583588221398173695542782613452488793698542175896359309189548486010630912993366855829773738386598858622878938152460856851690248623037453091158595600424538619327189271381805645398299093342695204855269715905208829165315910601348388941178747790541006083700715147226822052924627534056132042243782315704518490788567345505644857004995360978196956941450037645509327214032850329393839697436819673532991741562638530265610986987075592016644218214920230567115443939512819719632550176651314642987574836201561086199396419103476484241433026273920014805702948317861602356628008909549586393999268522743660522258216474563278347344503393943500376444814727662284762497947828196419911989147625587553091031428909953120830346476262475711316682202028876298127354704120334553540189163822737003691798585226786219256397728546352743785391352246592704287353833600506986540746079171154425641979611183424328943710298627824270063050320473142928782619142997491970185965290427726018125034153244118959292450424910222369546643373213375029903853607143505231480914692937752909474925379706932636204467127290697406918600193589042966544053950903573628534960309977034646690663971594210031309342325147140559091352909211934803919307381769622643493890006884923814091669480110713719593634210902831440277017116352386282711929524567721587901179081826018837619807634790052295907946070727662735558872221305352402468607778136337224431560562071152944032104049854105464843755083588420493683933782557410485554205550240719049297323357088504414957335431771988223137420292155091199004686349181164459496459213395170961276585072249673323533161426366641900776975122627169752002307228380895214001183001820393522342861930380016168193116509066577854332803330484073341021414009009268321400512087503848500671180856305427768710939605534001957295802658749827287204637344365544227291926542515641101287334595299719379189476080255444490154928704721233984168399240956671115786515482362998281897563243634034789365617869147295878711212977229293383416450373917843047273592878605957112126987133586567802421275728214400503062915890385305223202140492641877914522688987070755793642441568797936685871565285966330551082925161584714963669279166468685853558398389764711066350478552506823032788537108435965389880289715322669305182346080079972398069851159847928935533521663643252793894851799647675296620688016749058531152791256822710961239360878002931264054922963948330784011427304780694545615390720291923975583192806723617281912217696804048645339823532441433153843761987228718720485466708652329599443615981094062795021207362005347834927385855356100894954605423277406169526629577987629091485729323060069452478166381432665279017513730739783017786315790341788494093569723945405017055819261303411594685522947770612836957132413789472270624000616121514582613662015675596628552507108237549892581538458931461174965073670410525653993353389382710262032821939356873199971850723195685076775777072921539570017393166006857425248152392166096809575849681559324844831012411985142792979637826360273810593511806325381692550157924692547084154963979233816771842126214295905582793656567342731614869036974391943281481136731090899569001268394191397143189761534433390652985175394040851851252745377697123207433295453918782784335905299516325915969727666933489790037705601808121129831045006424867440725712094941892946449286420255207760893072462132341799332808258936410680268141558764226706049576000098832864349031088330959659371046314419610580312026791852761292817033125151784146591984134980893587502110944774269274530687578806048099876783116816507352151596177358550456930754317530771389407927943680368504621122497334627287265743050377851370379890120548149434998027819754407345656016538003454660443407122947925315459623142896887682587717767433938524967530496657224869601055930627961980516203239618767467923297620008890181530848458248348961354288749395521455758091269478393395056646028199223009522774496504676099010340706790205927372595878386378141190637522914585769009918777921136927004521747461660043663130799123515992812292267081547690091858448070144197084160127121314966994688883880029182329160518532382589602860851462589908025333527513122133618458348186659687537636173084255744435528303230460518212836800821571711210621636710228814538416305452290399999882554559642978104441248662673245171997939718682421371435984890918915834255967730028773011947349724091581010522676549208459159588537085709658993082239001502497928489010139349346838548413673925335022823376316171064202021478587655799751206218168794607501172878424275160122132971592471517152529710159426205772370456906998208724792593572017383621202868783280725590009825754830948713090956007107212148320166008490529779604349630513857346721263628259424630103260067235412493292401964561623813888407637023076828860311986105751874500136928680125515209995444717128307739128274604547913417610378390012980013122212659184303636160586538817904191265532692554780263810684927145976743545459705830128765295834790463961503770159197628471516559501517175891462145884797459036684889994276655134005706303825798520410250429199418770223812040972310554793471383011068871370706758187912078380500969916655661825515437615417890347044108581851906607524933735394066893317503077390461508363027628019436581235726566606035292521077401217454444693894224584517012459788562186357002423901982068971033661453955353623351279678367327913585468150442405198093645145668875428784838075886074206744412027365771367680393718790387986441934335946539725013214081053767789258735777395543078826618117496928616061548969454948268993704657203452618700848716008358431066298761827757385292600803540041326361922636582844788768330593302996066605950251908249486971567262509999654229556042064858939394188989576034168282783280602091695012885442224600427378460835382804434884181362997755554406467194563814526934826130392209714114554002067673083745199380582807596196567401527388737585727603197233591428732725030218144429878811551770937248502370875629250907136705441883833205810070695366949638466784224043273959430783389253606651852814999393491761905850548474506981422472975048189364455734417413820159943386695062631284544575600221198304354857178022013265217522536924754941519215441862740372477362698550979524275240402920831991141214605385710278304273505081198796685872435325079588054503312816334924547074463724352573398325515519234345360676726528058639796294960910498360711359528364470953949969492708375403475537291726251653402850961357912575315224793536609235311404070904356810125694056740000179395157910250637408310091508993716735789074904436322533190934962762645386931976034372689786597762361753568452606338520818558466393956466536615285264648944790069756714147701887710354605141280903376298671669150518416836247850623534580853506761225320646203240884039736306861224005668949580966616721030244982126588648879379924263605631863160912530310921645158355390606813236731282665138439677287899713549002629058964419439953403228226723994030448135999215070544171728504138666575426546867103719278472691450965887231484671467600309269227902277494578794961710707365904076204006524231549175753207621894932332079319316135834230008262999737227558785200257570117364863533602905944464503177742454607807680960866394727853877468568970817004481307952118710384399305908860946297678643568660691957217646801101807061928106601386339806134757790158096641396676978999447151686097309175020989973132234420592558776645727373411928247007710132629357867081507950917306587364575573877890306609724358066071589188138872998764321148783709254697564833341108467921690043907854197476965964936306221242673508130714354001825715888523880341803672001224994976074718948997887447145666236932329946552694926817564330254317117484642292905398587526741098723242312432207557603281215065277118404549711824290818169857805464489009772393539966551819490468222319309182842270354849395738833961099739987306661912738695011852150044515543035515124736148976089478881861527273572453497576174693397775003073031051926730227319702251647334053251119147695279315623574190313717361600497099421648705819006665827032572424267661215771410591474694647860046524112730691787117187132347801342192447670079405161939839501535234431410763551638323606773431394435731203356411602746614971479900762508096128463361941271795985512692610809363570977232087523224356960635237199497356039574434046294489700445924124722808960930409814636777828787432691357708764760768934113350322275324837853545019151962520263918344966819282235143475507773407069744331321284630958450265531715152612298146016018062580560191254340133072688670709102368403397270842378291053324561168597475798350935680464076924068669395477998345610147756260148988586133683761831796653688087500555916276312873487526361377813945324342300561138124567367133932647702621138565358931904222042093223914585228603333708361209139265711535670135353600348339874357995036396216971967629068084473407293439007027744981485784754653690440073911135892718617249037529383709860765036620435260927013771855060122307043078188725674624547066076180310463064978046503010098636020926155659433640449839602837006309131253722754775937482262978244675230152128131761943505647063668469606220798885327295000207014576305258903116062950554842519336977391281332721574220358931984168580034191535876844663179868119425014748228821225562600989885156190726505319009484462452967396143707640679686380059246733985581007995282209181683319582613038268387611063130310641817526919061447123736578470044631162786096561773940534854146825971078937200957079461473730823725473250348431882915094519982525632372029896331897606636055663930389882007127480020065648511101551563854977205006684925764094672966848995608964699763661337579144016739306273132221499855275271715437590018505261217937726499535747494892162496219039967664051562141079592720312547625521758603181580063970072837355635656485013683061937100510453924766111332880081800383061538804769822111739937271404352586173712619516000870975359282459973451322737727103593215661464539657566540323194762146203782910613523724882196158134721425034801551202135630582617263651706026581582632242696005704327460017349856340247875552936948867087246020986893412774978895579649632418455563609822639047592013070195004598891208981504961757162815876829401514901933613119319416223114471986245467365350067884748733758730747902286132527621747004640288887470532016696802909190786024807319593069319796740204927638365884534425285539098099726701683631980360585476255777737599393755112720627342329088215248470391022257832466099613309224055341462338333994994439481176215433927071361150909839156301054774105322877154000430540496881193290211993400551748819289252999030423052783264496014077457775667644020259742904484508894987717431107683450495635186814972657835869869116695688076712291569531295646072877373249338266360123943515492139398976801355115823597775129780305145231648421256075738170791943039618404312777890759328940945027511736535972341245875791446552996609831088938701710021315234172742309643438259584820001805733735462460056529820771057610505599043783471238536760789044197136448783926403244556045662446784005759689373658785826657503796962445536377554470417427415685273868888382371748177806361626109137922253760557116061409311214849725262653491380401448371181616378984455976459886994085682238751386387233020635606217814428367675050854513516896172721557792256255875630541475223717991510304098272831795720085588561078693007828490204543143119908993532432703112146756671457142798117159387885514284707041260745833689112366141759492374606897612042150832556704228984412664385080834012788829545246263553788948091971036054400057158177889808876611038861697710521807970613810891550240946929488341184249509052697463425882925809200591544341381051165825770241564432337674494332072967604189547396941576038569894702716862776558425157427553774975766457464110341503764907146798924373345304439869787424786591580771315064282041206153980183130404106359722654575625614195255043732076296905199924450618753588697903611564826376629888237474922040452670343582962408591869096376508982980177544114671592979170087543817576154296686655392284528983659910206070117428079170002490948955812984118626090495696424136437635421777890657386406077449664588914515139608147302715839809826890830758653058648532265550833198686790517636326785351086351574121758850734855378509185714112259069481026836921720635866387086636603647058194152232817340610962617852051758169637767034203183383531227937270253885077542165788697325621871732065137974985891985461413489106878376267293657441994228048973228407716443788551126378340751276294148638070374864601524047907426719378918114974991596276883778327131457508430003797884303441650244163833708250870408629971421944156947527929766279370705223053497972169095343180377994892562801613528612969375638400269246750084286809419981562133945564743682445626419004392223340145074679788468379546051584982085713596647979895969400023829373989199834987061077830787724523656740901589966028434215869809177796946173145156620466005970488535058079541401595610415859369696677445098163517651134290549783697037504655493543058331371739733752149572558314464839742345091334735257823518317335150888599205964937704660389069741929822255110575412429823412745084767837305532242823800871474089287756015543931018542241302189824415000675063317911076386482524697192649282821580370024596679263924151944509641473685957483972929835471562864482916988513290522639456524995380900999990947846398784157225727674069413100486194677458163480869850596300551612813109664987525025559587837116189648859650945838852062091440312598829667745276907329965983349879927990543315720511908185145254549020609672784802077650197878061833922990124996696826022842258716609009001583628002475127500986320575048281415235744341611081619227215633856306951043032740886735509182921131829925923807993105680823347808507976548656343471916390114340001722044512071391019828228632140744285621417476128578906551918922217997378497258682431567806843660507298606835643020708373242219292424015891468602762503993840943199990499839279203622427212827828190373288738923445757553972704135697752939605884280400592437564222756558637491985366378122463593603659554816884974319459485937693766277313384463846295291629767976633381888739724255937742816060001632319881990525453186169933150352971419499548891613523484459808980815271071671540890850437424010924925550617060331213973223536371831849260016905307433534955313258012760839178588447516699431311897033424071798557070900265645232262628291239384766371541131408137780937367614968601006544832781002873097194925798080665050651225500143500073950264688900523521671590791326279098079083188576784244004261665521799465080485352681674972169101757316997323194601022297312576753794070062613913447964752357188722132258488489563801499512959360498643154226842104339332043141390393400884548338598737397209190787299094377617618685559108596450379787334287172024305224093459426323330096308332169208796344115775561532375195215993994318797577450600552245523814967306974955271386023953972959260553358968748742169432003699358594201755590354994367472438368646112021187667815083099164068376488445400634488807318475097837469828076985669290437887591323379173063966874212830394222609810479238368377163910811062497152212865823236081864797632885952710229998097168887680893660949322292423691020227191814897068570183807767226009354363425386442863975095525527009242307416023944553579379149355764341356865359695236620137179207935334956618666262291000914145883735071815778277445042092053797941022013664830720397032782074852330129209401224114471163825589410718031582874881831205790653607153054795357859942076885563778497546197828006466204929681052465602593401805091142371704816140518458242721687493493745402157577512228574496207724312756586312602619650296195947317915643397790037805048528728713432337140434099188287200058567571342873541360416281688826334053875947228970758977991790119756183571161305401019269870899113689754425237212310149426325662278234148614841840632118972960273407622974411377559736554255794783691252942115608076836775974644177956803994993675929149096420280918133080463627093203928680033073997575624937102103890123854920707252897257223611435250419638391698314554919867153228835711660717056718903694069462171883933519522953286428685724193359404645363009319638575003662130609845492038223304484763703201871562239410912711862898169591033339921935386160409256129771145360578667933461397298003356155335205552520775121223493147067634265050689798773760904861977717304502074167439031957505970660905126330307793946588419220979602644650144651320412381111977576489563321039469324242918861667619635831365599641594546700259072067145030966238596921791319906047555929916794188541033653439917714113247921321309727163370084907508375694850107767774388391872356360972874396834040708434499941436068186604841495382334081261405791977283274868837462117764092439011893862279318283606180644887877392052777211027101503813043530473296463431900669553303561381036791517403880787329156023800023633037668307410723397287694556564521377357741865236350941340344924855217529151040580081041431433439819405852900816143635083641371287741067200179109819498311759046421511783127015081449944722683690701455157782828978120229308075694233299815151053560770605863458484180320578348993973206837994238112002269271658137652850821915652961437468079060372983426007241347016127751243071116568136688889676828562757434752395507322647831108286410469924892585471497548089428958799896925366997697770761205515369955918926504134441754690063000722560682501867720819728109707929754613044226628681157843601314252366072057822584319005306617178275699909188933588467213687014739304092829464100782688063015759005370670483987034175285881078600687443438191757511132494433095374076317081229177400023007193144046347233799293857519916729268279631639258802837942805715927992011820407227344992582501961081152429231165029308996523110898318164387626880989809385549495400011064155507081256914621609112878735078404613261077034185780360568454061988228803241671292130828472791703265480100987741932279794243899796535711701863251157179605881748649269239702126402885164682329956408082254238721331658516745568511623491695199006665388377797625921351914507744040116583015385362527290993604515153623340646227563604458600545690242260335866060016996217238229573700600614370298586079369174447666223639417658617812157250316622239059349375366190168235349767773096431631295779552211236303295097758611296561376248830924665007305009255884847275777596434099962624384294991729608860059773847537312161651079845523343800541246309284891351806071882683312011133400367253615753903281223705851347642427517783845880861044605322352500432599869979872376015573877045249449491148623867526281382253478567125652632482330074298968177819760955054441323710142053130657898183414058545425548808812218701465193785056776448932594060727688562503308654694572441396788101954463668587544875861171819901639924300402653177890397146951939698219654369968321103718052503350872612610681320827810050167329013130490669413670753575761455046141841607885944056874474202299505436686309789506285778774786178446019855817649090918862561026912946788248793845369544930870507904661673754836528218678949242465165843262702744788424182451648693919776777078960741802052756461855841856751544900012613490450168977395724396573624963254063887852888494774841555577655033426173468439111601838388208146893684224628270705726663660423601911468373301759365008019651513383091395633751143150984965886810906229710484729985327237601692793109152030341013910438674837859151564311098237588357034403280626346583277853373019237513824746510156508519500544446371049984936566391160461613814707926296053222605622440212644983357695552748166967927074403258273504128156969736961757041440025728603065387287853943036487455969634553107827871762646445884117001855467278441722157188299708011557525029703012637247161936412632861383970989267476543223383038469630340078546331441832740220787089189998517871572315169564887357465253457558591250892423283386637857445688570064641415984302402064402831302485838931263284973367966324893726741863529870671814640396071294906179331144017955207243796216921336442642423480521157747784833283499001414321194855757015495922080353943338209136455141697671708631156338762945315599141753293999109854436680182784354549085222326752112872019327757935148403117802001185776082946231725455786799115226613332736108129917854034997739887509441955355992062658235831349208920163821071224212446525727034932331195517689682139538916097333783759719595694324564257040308119803635272952823496841022286975365102753219992752530432343630922267292763805622974778464873622677288069534410635574345720749129749101209442457201737932731465725683542309077370909545425948575365468288026860920253187955702532831294080691730115503533739279801077178008316356633642149783687854022765706438426950123590198398456350524847107759651119604646982791207783557113532091757554960675659828293081135821016853777100088117618619739850359254233253667092061403818740720004190087933352302170379734940027174185830114322213698978297852511428373527149008635094916481197595860988571252212278037645720691954947624029764707744497722505024546478519586217082372291659095856957040386453023875689487508314086311903320364711653562689202254578068727747383581496021497962755442857160424980015103514454904239140873106782727554292013082881925384938679996996707222066695466142733103147770224921953897554106650424249809846761972345156728913614490070717363368505367421569471754027072925102051960430873338541792106603517580925559784951169381510989233712102021283159213331835550919703409790776066957187786006089914173805736369925807811253278194556299385962315837085396735145849125308189712044335189329672953650735486816356685920959926910964736048301623740626764481035770599400142640992807647799588222606622127189231130895091589659546945529933172057710723477068814406353026052700329410682350252642281869975129529692796575341266487341354802107216817316047195991165092995535389835184190776461710039261633098697354201438384339586374347105598380056932394752162126957673446474229767771925312938229243777869206076291396911112458742598299057950290594170383641614989539478091221448085020139755566244325935235249020767376270408884104442813170012068209056741724653843718248918536619803249822275816492755884801983769980025054633242589923824265833597777805201608293630135470961851511511409542554004594063744054500364745160238973077655581166255789713682509948156911291081260331253972279117221217715850286816250426171289822732831823306534107069203911803749128605475854738685351345732639817233771592271797967315121431216892850267127584689004805067911189858620533537362245897693759185973184859717656629560948387710841427739288921660686690938271837510490624682213806777511005566738260334267336646448166366116535059145469716273102026865483589853405296662609888512890652342448254228741520733900033927402850325863572412220514489336969022554815769131882320235308482156963934243471142269820529015201602059324879675215877819232592071094593755580230824191347064764455947287620356162828647842189614507719245346582566597649503201542212154226608929802603762708828084369677384093523983175858309939302384878684817753509479950470237602647188448976044264579256074789303574579351214557997956717349639429069463349545230420536251397082896136974280294045154990305526293319273770124590306416717428014890465152140809850739622958675555188272902995267158049575546172268774510468070121156600830381050267558684155638629240140671106265100304704909689815672173998501012308540328307522338681749677543842499159536339456112752787331100321600856338510747458889135437559853448528790205564847622916876816933619808827404550217241286778472383714221602217353518276796331370811142871144873057634408034508881205186523675933563730968894961318612348054446236351500822381259903960243034536572513996319758188827131877477577166007597754872498694289875082586594159732733748559318748487428977451692656394475031792950160343534390478854603119414048166200004570510793518121309169210045888594955476584745390176160032941116555272241891159434194588439511505648490596600999287023565946935035938687555123256882752753994453957957362610903242843288480468746229290867826388428022607673793209228509369034377697389057066243755425868279374310497938162487899099007609899385158386646898739204954791785793355886243078901784259086891112569314602111061545339751844131789444931089146247055184235601846354564484555559900212468324127781141891665189647090319817534088960944552834729567639163814116165603676798408214719244420513492148125393821851672280874996091234605127181404182612764234482521499489497377281086894931444290273072729573233176187029546843016024213460412658746539258741030636686103464291595580289267805024131199699611616950854025689674615597778942028576043806099956704666229714632089682989267130926497001396144154242562149186706590313590980915771517524082355916719195801934409625677509470908554412127855048225803931036333856024403217152252732729905812938169116393756647605043260615572313482974470833011932255943124921751589982432763228150643034038676964684595160454078953541486951653417574648357368235052231547749585935975596934985951711648002954474745249422856121792095276182755093053341321340272292783802744899331836171036632461127562178372622026845259469708896257317098794256169033649868939430584345273365669026164797040905858965245671358334298410991429301409897174657429369391704413628804172659143609588083610417029064242253829536627956183408162286294852322664364772656529803624244228628549494660861958079798888309071799271752275855902573804843636073841021539284279617986691489199082889240488633820068344567771505274730056043749220980502725230997836942578658634131377467167446543668939986086642871955896789480144780521243895169450040123595010209058092915640260405596278148454705946857941183256628049405504714724426602469228391607185940932123618046482011814030618011068741130224751224791247050592017477177722602683115132982967733941143593151585907177814485688121171004072253850805210985140965689440025699193360725741978702859939358283615610378829029964621938580085332976160088300372284353873726973299220156254890886972553760688865049523413902378960971557823281389004758868380756207974221534656951777914438094739969331080563413232166543291253802728702226396629920987925466924012511926261504041824059969607567455095187863633441301188192269767621735649562975197433502680289560686765347868211492086374311215037159892472413611541280712629904864243425636288799317838990797796968410528765620093573821514951566144685726309653826260296907567099900235586565540251354939699295102790483265044316051294469688206781729152209335742062247662698218227759789966222489209694127205235872291540041862357408276878116538703209211576718959940662042772667550784962469901683358593738632182512843104908858839785923750300103587982017464042249397395144504186439868578059102338383547817882625805873600017413530190421746163470677185518054618341381321126044550155929872379864676401111165351032995146014482186501488408439766691746885718584177840011234180457220848990329889530673946070449456064568245802695265167300146398501510093645737459762012023377956765247820555250858513392545720188985044809424621888035984414652644667649105237507649862611101797713378099204217737042869556685100052879736561220277237782706994108566297711778414327281358851682083873880826135038048600173329177004071535665921880786577402534747919580819103765512527618866070154428731555753242297566934271318048348651524464372090887382924705740422449761644462391180620099993879071372786014577905667910788882485915016874991332251679567956878223012997434251647484082414527193347147339557306943742114532354707959141454551912437082777912749448706851509461191728166521174061785494555034220686401809759191607839488953509945177487953901608580107474047080204107400658002759327525798699287163949492001687081307435979927843640107791826415083999969188964340250277229602582842401861906596563797302814035583212543777299109001173193512294918413465144200094721161620794048864508142104525434824370524932677303729001130510536632134580012585906797077813924247481631145849431994141058264686664563821110967545019700038574749040939283914462986201864474826601098407956001361534292345813098706634246848340527662113262177284161962177096394247351797836282113433603007544752761191758807183776288218351013144391782355493639978716164220860668249681035421026955075127881828109743567912802622918907344785693535813279067147682426289568801340659528003402453644571721431377023272137695599695197188759992417537610576851056818104703531064307751104749296953126964400089719637901464187207193894673150356596340752020276440425829920578116035772252609132857462070270827310621994957404139959801716398371303542611099047984396846124994138879587981006682423064044394259063355637847340356346101327371148314425079362286426143206137860318400508416722963168177536185386203429203280106792656328710398585272407012797022871029005150389737036151752937234097623119830617821846679131185560029590371546336443005171100076099379538181512419064788219178720284578063575196966528302234125814314127866447004535070846166515723052604469602637652284627162676067084133992404028678516257453327362997191001957636650775616318742268390279302372704721852159054396941851324162853239161875853907243447049485325041385097946013483973426592352750135914078492291895383061943866845778601024275247199049470472966693092359894194760066243711137986655997528321893561780368205163616777764064027160057879671277051214960071890485657440560994621061135906455041885181366484806260997578516489697224452463535822072058418029743364086358824544796032994244436521888773121406682240687596809237540740808077002763250757262665492299238375760665215977129522675298812646343418749792677116803565656490031427649526741200042266500441837713412464617302351004918357081096704146639487968865391638851368854841247313529379090038646381213845769146868521313503204072467258568829987193133950696061241224235229248996058509199648161348406751029939854336630044116776913270984193927466658248245151896933474338159981589098058449279563982176024393594799917752631809995534639992743657718329743583182202953855873329003696089517780506475813836147939256942088485718223473270301500467473530862239132183367193686212497073809948188573473246883544049860948478395344354320374826714504261651391169177566498608921561191402312147008305590084899818781109028420757998533158373849891474048155664598418315973036931326322791218512972923798357617569755451229471660967156725613654761089941256659863594500379613753980998321697640805584518859081978926561880112632176914226559920705979088599472128446155079942785456733426504473871996768560413495629587090695970250490118571319060953563820842298870097053648684900861678803002663177976003518187609555502951162752352577601503716058461304555779384262873111966914761928646459091903891310731159833919765312520067740161440179521672532449346585602546372183869600236938253940529300222904467846959151303881274010365280456883445194941807214129522734030426557069555339424210191799959122775038277511999404070694249622647970949677361967657455758285593056029830144132886890873364006312052242948194129603213917764562123617650688759791472365188669501613552707603204262213300293714568579257566308664854479604450984396477094118898487778755445884523090108972449878670893489898589187708208729926990712195306641266870877110138164249972262710692179060817783264852243061789496543076260072411887826798415291976966224965786654916077187228916976333906023452374541803566792263044234522582141809062624186515036299486394811386687879650364610605451058756832474964468879075596727905676994479882487312423293812135234173873111118619877526685191882785617677687215847401468608570680400808861267601780765889878408108702304270151522802321553541994888238447808712358692506918579460680001136569219132987651157950993004126000184311871767974222585989234735326616401517760913242034639596168418434648886828181283612443806392774437690942039104830658334324612325059154103305809648957343497301869208152622538086579233445646977940364767766519385509189733978288636207998304767855908415817942141460190821473940467818254650687540424808396425147218655308964111834972523482713259188337593915018024311369599369344695786144894950957988731395805338332741289582907133037787636168964758887641361280795070115065381607091839141015436045977322444444751169402500716130683505134915681340995217493929672289528254684665749864905770374695951914358314336774634556934716985289874245170129944930191380869685747573286773633985253679925539872123929190203753650569994775615276131198717739757697041694640668666360827790801465822543038860087359078362204911787632864350440925796834199937306552634851113315203909072686530711100090558531015701153700913190098082991430288445030207596589495979767023399219186059891854129632732029462831110978095239777633844956755725865849082089246647801831790139861780354888412169249795072703732069212858081156146038471514826415914153895177513815067969442123137392548378511796943647125787131647813412911619159647940818893241119791878053184572684990989768126779310416224424983534688499764532200274788194528487011630001637984777343228303888072336636707619317426543981172322593510312946842536034699005355712210299417498786199165427005614089198379522290432949900668489941358072283413425585641544876946059125005125732229773424364594408519374304708289364321468180343199809941848791422853334816727355605845761409910156413733020525314125580663789167310329643399951742813543104184654965926605587918022837786057558767850644495002149586655943112265647735359610819183852164860587344139907785474156009079615130868724355974017277206362157431533590311723884768726467576012480187186028825789836483083419698525749186093870758736393101729857710228000389021981720996234630595444237879307375863137094240216971052134576827629091943914883634593100101634841983955456165504054952854085178229670524941701213239130073975905776092791097890304616455401967551893447002657728645158581817215674571205840486266608424697142385068208835706678925468852888553202048099466031083770702626872198728373809849284074849581792545154284298568152492399092901781620645566601195243240149457678345208057905793477267212446935199454424056867077634234198115715882044321880289840884797166325909111007036553355025635651222273829851780394376752428142731658125311968985898204933748160131841201482871949424040095653136711115469578913786020166987685359496339252912987849448811338522852156338265904858593151654125290062168081735408590695329496452470327176006997485414402854346633462231814064143505625409251593229711192102191999784021905360361595573886121662372288738795156505074928356789081057302324152814865655030396540222057402706545071491708107844740491910268948985844931485875965720073714041910368914401910408123932341465141571035548347512902827975291606840172888271315676743781166992624462549729965559204010428988986560645392960017804969152205729633518406787509455652085749587655469666075015021206943107754140023185275705137482884795129022154097807442929624739973054033735375897258072051473428349445495991004170610605840671234616945151079433831056978436602132092236324049534305572125364121797408311944087486551002013729799668812176993243000314341387098481671683032043822388773402929985305582123303229699705280582644070529773170287527529999999304050560700361188064045286899646195476738417614519323674288360978587852087901210887989803537617849530625442636730305537751252011301768316113661094122722151806805221074856965534879562364900810163067083510466966978224975390437541270462721988930036075992324917279137721825980089804014596485390045878610305646543693077408668247510541312502020163247651266838517114007636840535002194259058190109441474969047592216073626894305142684310045255864751067420820892927441251989845079329030928214534780433003933000802595540527895244720911669167215841697327355599020990659264685686073574289452242141068493300886232898185635682700528132602628230201807608826815290922080352691186073638777222219396087363641419029995690821256598448052273896566210641061922477651102468792790111125928954664614775088130363110517889306041731224496746849702005509459432129953152126103095299550808193049558344701511099887043189592444798719167135483772859752194271238926048931683424726790487494708173154462998492947129915440123152457157248405983020612002900954322249928862426957404353486373651033130143839956327195477224657634612498874199937459864439416578035095435912325104545279264044827923455605519193043150704456240189404362227559455206665164081018293205941131607185978590769280544910939694099099880982745556118115825579251903735239286098297539661618900700279349550189415974764171525081475112064740856184298852961003783508508001731072169459678235358994998527745005192219627602639326954505723720840279913290459626086715777701458732849374691313952419039719927877501484833391188574140965525144956030597172984542503110049493250095658329854794937839876828209035242464473803906042505177050717004789151210536253137608229170789742759827358087931314265518783521286290201611055881426595267109631978830532524449168362217658502727332989149843603052960017847568819371995666200389776535508972490790335918274169330508812731089657810315965470999853901233698006605697960793064519719152979239763855606925502407837130825321600086857799290155338898556080018148735612835352748695708172765524318375317524878712518282749454745283086693039657390332019937356608193983082108794341849485881681879589325940340401721233607781378954224536378340974351739908173027293218932619446772667374109961788786450287982804281888782129680925121867542574071582784747144110092645672806458741844119778427362427389745843635435745083667638753057853915423019222897218812550969765889930152505519661999785583169755643587257272891114378573129026157569569521133709893858692037680877598253489218543860918423767725666082645739848837093168536399433473399730070647279929370225409028582261420808115294570899910229914336253643536276544663453689530930470948037894015040708216726995899886341279012933924673978883349249732077278575269533610165451980313698528784561456708638456704811957496191439384847265422319604206030202785473013881212259651848208588846423354956860644174346662390185206135863398176875628849051592824705556537633249577924858857795334097625570069868765403302711898049786092928556570246506897314836392838458315479856119060848827785914786497551497242484876989765678482660359354405312598516703025859096013642321164005279787763945124082760715386646754574465894426475019072296825366522638022905637353726689387701463968317917558304150338834598353403609567388064089443291624933412036392507769565908472960217065893229891048997320640780269034205260771937337126393846616658649948934643198026703711353950511815312012018122849534233417084583892352047206265913170650525152577025671138095179430541797589760167109338696417428941885354284010116498786926311280322151731090325443176491066558373950163597272560379231526295654634859908761852827962875436731729967432333924621818328868742736130092002902925109639153828443518220095535841335634262650212023860404480238013135690402739207734996443870078681504687211880908626316446814904836568625814093755760078613325198550513771673730792853972314528562912105113905217649488257051015945467441945974284948703768170504517211511298834061897793423605145952233102706363201617853459736589094373245670706174978709224959093459874215314560556005498096429940578630435136644244446533081097925136060888047273382430759453668306680275979147724762762507299127464905939399407084153260869362361694937721986413557769653091396328760459901665846301903816433022445485749167230114499458309353289802345973487128155978874761386044334604031753475923476840623270833634879400919766068334301132043028835626780784476015575281059228938707338907011031416521161610244969880602409601196408750922473093375432420318478111433844171549991731079948261108715408681756878053140440127348713772651975356789891650906196701329258943027932043653806291757599482465891136316476183014092788588809390163729663792048226059825297471101244441113506764195114419297282364182341350835481265184616738232921513329803028102876944020349277655826546619093298483514723695373530241589140212565473075943222604805589369984065818618852134823141111652067518533607971983600048926604179741964099356391132420541349340921918354385961710246788852369388580786279689147433938005092608456777200796414292337507944861881418920083502366034006642256579311280783570716773844779321791943147482322920378816070868365787436267505605830274227865044527526899943949750338863755393783356485197250961292345801602762591625236858995748234364071671206720931623977725956513699867893485853453653795981249471521144490204190693759755161285231475403628989925912239809755135116227768186432699231458466561843289216282930628908997886922289589392443607760022494298031638990706175035932599010409298708109330243185613192258308118262255363736137852964624289426614278825675340203001008985016896741683925873983806805746514485978710348370091728913599141249709725662374590911073886906518157625139885680101044094634932267735278957579896911699742024498802658319746082703869713154170391967242088889869851962426758899292370436792959565182781441207213092761996900614429920679549869134468295373292311407869688726052782690492756319271540528771665966290898528821632484425728937614021839913613468746506291839460351832966242359600538983551052902459468385346386393017681299976796968723761377038177809925069270170462948142495850760113664952045878146467303455912801269170407776823576738599832879486911049460237356487848547701584841730098048864891689983987275814400326919946459793889333203482818486933171669937830007651919616783317660790896653512184191409796822918488087114260387922248218206464973768248145277707531477860879637939955248281260911886854629200968728264909154172522346755168962872604552758382641018297586507015523940596554971844211032373714791695081672953030451595737122793309679522524081450103514440062952251485686439944484463575969643445035603017834908413291335257033754943196387926051668077536007477320582464900209018734978186317088086941613841587516151803807298357299573193970989915993757705653013825843760735006374420551852610612761338181839464282180839696299497975697186455791762141420502538463004406261075423335103151775338742665081243129950181012510239218286279417130694343952158390274403036314115445949988246179812480095058681190819415303240346040099820276550990757159635030651302695789254815614072614058435463838769450215444309197180575239955875427615446046924528477100969635410587734556060876181114770958788640263537604420378067106918175061964007372563005894406049741005636869170324286483307081947221169282862872192756065768157761832485280461566691362054798709746121814087277137004213202098767585426272820063568186929545945114630155153131228879963280785329673225717644348434657155055196440123351575771851122280782156158145239055885684309487836351183043495608123575689506492676294860136824925553540319263696685280916286069740377371598434295403934750603509435051041627790291130708532832879366855266461575974921375807508426411445620977070433172541151260017860996452458689070643061767002308089333482950672123265671708346603394332051392437100414401020461844182058158628212460706209769998730874603719403489703013582940949992272124250016919129430804299168168650608008555564391439259535657579371496554823050098338345313208697264036365526936531135256349319544961054073846599784279958878970741065247810220718603951979455199420405354156803008826969311448660541108254226923324286804465961413359089981320606572650315683710703931760613874688654637498750183022939830704621122706074755519998541815176096578126489510691170444750538561791926135089511351263155162634402002003812732605548410934514366688909683621150679441984060763973022240283628329743398029004426518742964297548858296258046506165871907695238185610773499899541365589988387652808832379435527420515178667684209620902960905846289393185438136627135899938393703514286544655688601085027918748178058295942176069575945735567504776498858712389213826324464849344337677264632786715014110309017325659998123211509049415649367924306467239508885604609738807781718143152904058659205094210590775905461447047399151799378205641592405939777957747904155721336739462444219105417049728107004327335011429136703572125511472303801732018973663273792854689767750952124379034949231052871416899054822488658410867504392926951098673952548389125515646453987895582533211479665425090385109116119441359583626250727196294098105767590124264512085812653812004546860168054290742243139695088071010224664362912320290705251511391296881299161323057710050942200389693465529481882214316775879990519993837801836630624124995216548182078073745608692084100285527103563524776447446991552716035731669586800460384297721683545896583661119274228728624247567868422354836555597262840478544787305759530000291201812056532677326788647585047127904300761352134906997052910877560326289985889825121922001507371983718329468797189896046198764536643822880106002991496880828360703769517383010210203245294203771385161979785093758405692916664176877249787558081324153555213787751915101505124819572681035778752854150465191157612765031877991920180163277863171671389038950605670171259614582143003403894714645417901518508402384498201785958692601704876338430409415694390977976774135921199720173840708334292270520629086770804399792626506566899707956013017073076247186155097461001352131467561227454008625131229884509139464429544545765594867478519859266866986025964292809995983306137243728055098970563838723238235290784221433887490918815098217955573566739233464014453322679296904675143032407342482329521234469226753554341142568695229276942312158295581898455191780494969743255667768668655142240398485058078949955093474356316512289336464539988789791482152462565368295419999052264392660233625661346905126630443784417147548148486191885086971224968099855545488556729938266271823757757512601475303152650956977777503854357113374125201180985402826517905036626139209049896766605833811353973146875131174102050092276960553676633993416070012050361658584900760892715867976167801243337573762444557875369416186230611904099804147517066555904839871090994466045460867174180436727815325494980685368054471442280740294245942341882221351574016304054303727051629881899124220168990228089832848894425227437555165313611810688258906214944604692931156177170666238808766901313323620274234830892162902934710673278227207165106079327573812577817886286787107672581186572912573637679731058952835982818692997057222434272919547426101938570438567654681388915422348413642935929331823760994986418438883147827202294892924097683808435817601043307454612550858316720225733627212233525374585836105130379702162125479905491385887617478839164340243518262842660179006141697577051081307986570981350920407154770660886973972292936658164997284626774580442474253957730857482175680857988849402381744936334244792403880955407638834587562674494543134598101196447588184679846255721855632025790955365073931070796496846532112864062779972938803978748631254487596246520025453960865680719646468681443643455994035084703272227609030597804351024717790087130454740186603426887458720150810997583660658417544530241215258257954721239005841399611131714006794042153243637228120360733407480075267433142888608393761503217378623619745078812595441947385427164021174567988632404710546054727391176497717068907525427473991434335797194906033658566611183470641267243487315032357267609662139706986887991609143526424466922553394279475038461713909965204121965708987202320074010055166840731399880044220175358603942455445127745403441276909324406987376670239642087854818498796685200477884875577098929741309465628864391127870216710014561436242727937997185938242701205434379956137602763032668466964095118989318507408012836499019968057485081062970458473620437652327806316770534900276337310740839365509532223189169042715502887059088181687385119463843746468584509188884983200635755147279700073726251945694377395001486651992240646721799059836818544004718872049427947009514039022001346651472584525464266578523944045944108537207363574150066983941502188688541438933919596535372647775442421468577029340403822978006454491838373273120559076941146569468684404116219274106756678239013179806093959750013566781948098544608297217089779315500518789841733053481079424515205769978688533549805533200495523122368971281107726509008462815119552140989867927184577697421158997418888407532446736889419752910567361149073585904706483992609005020230644102808273855526953996737121697544494663349746785165950166507504979109944570785829501222496979879249282346718209776861204351792565683293502604481965894700282360130913036154825845965720451179501516268014958994837684996870136677575075373626413702268853494730979788613965709119440728006792379683522562684921727480985430040102466178587732923226005033624213305959911476238242657386299522417161001816095477653868884180439113989341144332707123207079651045517975346360975084586441906766758233318974867660886466860835759336400092817917259315070453861089124206309899831488279189261874301066612785720647959365921564748440133525795193114433682842241337428652840103995337828562594065277134238312338146767114484796106440899270952725954237131813127862455178951187728720303432386852693713970701326473207980550348369271176157643245691801764928018771911484201261086583958146956498016972017191115623895632075087870855469185654694424852597084913534653162706924929569533086963016562065123172723084025189606116081400739467215805125081082168458072484700477173748020320335220138224659202818453463490250933604694884477556619948319743884648091658500344982383535033328443848936468345570957116259369416446765064017611384769426921405660312733350895829449836523146171117933571882414931724866662843513678821320852801276305027172629732994252492583692162262271747037464044735861883298325509229716625061616998199479471827253961068257168497634533099263218982892728779299765200075589335950009351585055708112278983815157970844888337967941709983989020988005405164479936135439669942146997621020823255030964044579930969049378786179989372122549682499011287181896092629238715295059593095983375472793628432935503978540078650805339589015106314784797934730427827177949634063965605141293261042217767580276295547756356235472877579399189721781825667807871058088234038004316333702293926893312251795542278474689096443012048354782285063194784656156577086520876502740021508285682663595859063889753691694901541187983099601861841392507194489453118241548537792417556324680538572925467738925004601032016367663173913324729239985822719504978044185287941534362391688349284963296022755102636122625357435002038503329755796652478761553576143581677428624659607426209992810091461967941137329552336424999922179039050261448665145452239663712844051449091200606441989404707404284175295948370521547903598774092026635203347652157095232876023844832659456993299267012007417641710466952092141585977821445632601323812948289198761729879778266583581475228353776312420445411052503580922488551022851824220100509745159559596400838057780470205434468897442585568815528193075278414067397440547758267411088503534659566996863893208365984560831760289303564408892219549496204676702974704123300015955713686215084499581704653994482283249739425978999766853544070196142896945178039210328286312776416098426751742371564057430595301036752931258664154126993806866982022806938407634645551247780304748009874977756978278306401177048477075207845630293405961648333198081823972710776708101229005695309840638889581098130507088577048380140053295711685245539899867875821937035406727564833843860190489886737326895375612776823123507377104095128122414533380202266948907581865993265794982607490143804665561714757356806987629989431744594567379367192807783152845221966544446640975613023934962125955700815139525087253525428963169617844894203697942022691972236313081418893441410045196268542568162554131243904664439441836747810545455837508156026920061296261837129345758744687762361668061656449586754167079198536406200830973383610858034411034679260634621935485349762922123866537398689403396678374974112322840299036621743689932178094729292335446147126119645095863541576642464897618890929765159110522136933130291171578718470585268461058761172823603046802393489946728284019092296728577515231699375481573881454534484254604970383584073811007754843395901112005724643045839814901222641935555547559902611258180873461835758033514204129623356495582851606882366232504907835661201190495466301709188822491573800107306833201110142582620808956712853636986397524147191914312749521708277654829925185027857768750084109708601100101784976216081096086957584819264541549794350798076438167022854798177957368993782435157405920785567205230642727603296530684724302315636094869202365310906236199002501554924875575986559643926732588761106443611079078926192903072085119016578924462200493084329613358673733472812649294498464909551022888823796549248232536624327217723932097838545264894750571322082629933749871521474595019765166830211088642260130160557630727649821557763976108818417460173746981082883451720901345047213814743229993940449454766596150918646634940781801538819738430821725370634055397536801163148775116415256928590461876320725430139529449001759891682495450164402005813208515934636859932634741078428609852822286789643584417915907836830985000205200950037181985008665612467039140059792035397177585717992712442520538796167951166662914852509880752406327796547791224116285625507275718099713615260522448890463302466059449981997952534489299728738126317351968696005828122375350498655721016336022455058628568317483230748859511831271291205314888621368401685873561018417526391596412987763247116212423634636467586514436102280278435503345693459268403185601389958349454325895545047986661890796596347135799567021403295968836467881280211194842822271753203053766450476010437958674350123991758469712168373699565277436062803132411856885921307489293493405026454223340085974353322749913077166335147082238260895829818041258143827148169840417798417992451770393524951383566980331764672423278388238658972457202203367115929368494276243680167227905899013823413703926590562870651418088761747126258379869964741439182965860206279293374783560819669766085743768075155079322211361706679308385144220661540302556604477265050219226602870706264161040349343699283013517299767546097413513209716114331721862293952109606638450364431640575257924941228158275365466063726060954588092801838775512881893187829054936429696601166612911958000676211716472246364228522924007480590883603826635131823314558258487774442017863515625963317950310277700920590959752956134698479331764156025956002825216543871987443928533992179339438926615423475654025872186873273226399837586445839426169415363866143601690753446838874503658800229444887548013021935681876669952688496357508569190062331576241959342147533266526310250299758269981272552350043591890740734231293458206310648261499246225310758189534528518157582851533291827553140187036133351823316426126622778143312776291726647024934029771784370627813073597891870088610846132274894925862561688481980997556487563729716364117980080549838367575504683019375403002308625893110423904677585969215400396171184850414322621196556196633943265154115926970207921939483130139844921113371056050914424697996504950645247120757623096841504905350922031245422111100449176526852098147011874340980655885805768439212076152480418571615041367520098773668507362708092011904048687555843047502468748855196774076625038507375293118478512264948566362011662539282172783935834258732907148097489002627036364931133760985242612702619998035747449953683140545403488450140307582042896339753189866351447309922453886877970528684225812114429718240263768482446007310013669822053951995562637082521907344939785185554574830390766960491786558369200573262094194833568732977257376908345137040568592978507387195085519401092974767149157038834113109567659982868754192487295055850039193999053253250002850600758560449158096259299161136357484013980084067144980500397584566183911177915336285198375009806979400849497979807500591385954593459917138079998303555348887927852128431788737273873066406006763390634886457757463820383617766958753529665750296013401147363862270360642187742765804804937476792388225428813001690823274785870575346636353086397120269841889966057691204695750477195314248461942500304137467948757257346451458062830821499297987053485838516106696156419798747605646560341079906445074141568458641999071446930407304784735011091396390051081938638765986407517421929340457463202712709245923623415480825791578098155204154503106726357733682493447440547671443450605367832937269303463721903823062980862785884705880804025270225473035607893380920744174362537718184100753699669865484665685237984390695288715118050929979365348103425783872706643075570934935895153638332400198593276267677979878768351011960151429938687100427568912374300338389684340979198574212907434473986150298390079804348337882087012154815016188962561637180012483127679863709110233746644187840993860451196028897635505125073115871406114549237997616031381472586691928553965230164736714527508240790217900318359712897119419966052869381842950722740774579619767045936478180853428387902474506286413557928031016340973114467621898510722103730681812208002923215999134380439296122408988266437449634129646308343045361063130722386474242832341752884356294276416651397054498256547172092213033717830494243712582114176145152584331520911108075383512277577405637133391952753986652868130008018286127635950854653412198910692202717373050717659482368846908727257168369486782180216152250410526391917546074272255462107436218953364272704792593178137981048074721924995556327730413231103880382292681308620492267651263247222517157348313541095416281303473861496698028877640628326300012037425054299790657838492541758233273021338426309621119182892659642448144533466145455201836202064111854642510902154708610210315282032185844138852274464411993537929174603966047227346110358069687393082042447855762539936517828935776174009645417829818973439955496827726600481883746919882640904482136171341469971975678759211495770784835162208570317106196487826603739333090215031339140373273322666285400230813886179655505393275606287989523811590652181367837376672827723528934477916664981108119622912154894492286480892060646039384112156773621404999744252424461155192589788587094898850330567964713426988120101147324509997176529023678572442422170178905385141003765567419635418084323717784887598087059795698032355243235701849210486023407589346342620117485651067482871213176797615320623614504128953582925474025276029813990755619433273821181586807504224718603409178815446805782696459508783596268308385926839671980666794279966697528579923082354621685538358276053960491562057921670198746832747483755250932678236355963417852151062587894741171455038037952315963007052554198752289608225267128180975778841623957115833402766056945786594990079442484403695027128281955008988832553644717780688706902906315006674804354374938593899372914210762268463019207505567044158556767153020485634126798669749212089689289660355169700897803501895236230646269959205406732205471747851312024899251013699769537025841685267198844322016671363492113184692739361646604159164648128247519419250904795340402141278035871258070986479768533805101168015391008988726545847758081825420339912224863095593368328690941568106042023027288829431574903176630520180633164478380173049647184915614446579625212362210952471446657303795103342368993371317180914643424746898342424977347538526171315306315486019582710836851052142988038863779518485280047136849496813602331247182769776178472376960270026970985814714154460819172033029127600335519559929925526629031900136737667290706845166171886772164615648655359257032202372167213999933274318565978210308409400003537275968252654608192291167857096591670474105178867112281019483956440321206734604041105015629287389914354812691768905224166847733794692047257771659482523560419002591175027091126964633896100486321124916968870560004176885455203461139326090388988943675844142615184597273662619746190219447115637615419665354514072836530576349550703383245396197868749100395361230048218656549109109749428259117427800566532785373966007968311032576483898787401074739650484334126222899593275102187797678505636950970893079487455946289139408262651532943125706212903606941448245890366188961806470258158343857482823547150543542824021138485969930108535075279709223764609297372760349904782639598635466515568417833313776058699293992783216832226163885438605674342897087639065499948058961587509255769296661084051122656828965102315722087313942596711094459252079483333354176177327992925326624659105843149818246691751561122149344569024679856455437024899782305392981600609135166005604768909662298242862856646022628006795173603064741675695631658994982445067239223852854474977674503114683958858926648637818060054846789959176559952994389520253494548815752742731751498711382787164522207059072368312266395979351632298056920411774760186215343538476322748428415887473550282082900087446815265420079671326492905545769681548189157323751106444053035087120225900072475158044571915833880428726212570560000248155286764169337495296645950631048646403889671755370273823196885271458098089620575038293214999395575565352309141085083522383042952978489049492795334767174196140422639723077064482028906583328439947582968455835323120556848612821433198075084092835476600885691617631338225217590947855228980262801247007842403333863166564175654629976444008263491971936145973170240556406612027247067626131676439052232600325636136736451194605658615809727649725107222130325824231427170468157705971735776326341549982538932157486241817803290114765754486767955203011241100246166536769281049444718276331747658377932026654201085090839558510671227055242396072462590854105544053005629497364162069452849156745176671504595071943333012888162329443646337727017731530745931131312872872991043910120069090474274634671013012886724988636135665819799787779984753564885073316309136865477148760331966329596588682875851106860809137742474154361703909455591307369707350182010601729917523200604161303464783688025784963302649490148484904245924427857400065450014001147172112033476265669344734064158030385775659400028735701013145564263574726847718059272549861353750020518932369486390925304892473084051892308818749767752981869038771287376575724282249502562484760839888651444505373425112753991532514997735235371819982302136313824315396829412095663368859304262210904004414017303350350307374956802908085013850816787206002464267866410427975016495494820090164163021104866446074645166009528592959277778143174217765364629879964701170018536541807377325657125865880509650143907046743446178462334722299280999550188585984779023004113539548289298103438189228884879610703048192441908220281346559686276913545154101467699458143055073754910887335488161401424182796434178145263703001389100790577021152601452489998807755154886198406167976033786977326743018054391496373039274701938378917442088233189209954955072199536077896766519041579502933955874162606404414183515213374568313042360695544802650470955919205652883883021659410709673670154690228820211796696374197200966158119611283443527069021053483044262863517693889379484178394798564836194871016289926682030506600188519663930724070380083779963161095691684436503551707996361490243159033510213801898198521926265652798256104357744474732983197932652724827199772317182804442485765612431172358404887974874877990655709019997824830270130262051392970125621333631921935241771952543484577894500026675452237019644503958225582764760355369107117650414578414118040311929930472982197461024338848765293848019883450459142451266303265250119101311272065114277460938073565230643676985975103899026090512254046497017132685677408869923434357382310213459884107326250090911711118150584373006819621799326208171394929617472783354031136133589563928388933195872617210483750768096339795406176374543663771962328676993882178561125061779880167665334259570906793284309199815480994640789921202547238896964247774406246053878123585940479126397502866331868313354703350756053258853005128494079761669378814575476491227960008466016745686213371038897323834928878902199560853310363072780213617790419547890137584774755220299793043863603884208870960530175951182799462689222122357751134914112470520494196273220416369893574907654737052862071107507895804227164974646434183205131803006789632637524960401591203216801475580460425407719586354955724096686901638080683833770020939220168830227592293032648798889977106505271994884714494871549850343896092646931453557122834552957009663326960284783178640706898237031121408488038081053921287053718108922154250774484535356215559982975622801948734884491632050906697995772952549984121052305783945670045827383952233383659573321194642922184926926237794380211997450914603868610625103950353718526601373011437031940481318096896541972536008783717622244843480738549695616603931617286152011120318304264911164653206322789878780233104297468928283353356828169874939079160803548061843201839872247274584679071255189439104379237779953537892798408013828099791446939808004192103423474971864622260715123117375226008332182790498202687029799323122838945811181369092056027168358470388401336286935897284357023975168302674872204899377396128247478541144020445225464617743700171330028697815452385487192159788680648394576387810352076116170744310132098742259122559457226452252818208720498612242655115586055534730797562682570818259799171310183918592321676826806619888404267547120647290757684403195922164332025084866531288209981330971189159061681468582742064662448862401588663147189931669074456443472199067956475512499988799047656496549533417923941271272971155732806418635838690012177228509551599730215608075968771401451994829823191770153271418939142972719129435015898435611505144522944840608577869275991681513775577887571332240131614242282617401252887227673737194334856679487872474772066016997807474186152614552351968449600342621760132924613605329928520925130573042778134688388588843957261929993578859915213413532013843410247772568670398079767752388889610467465778500925503531664236026357570606481939048167543430944126493935692097241813897736436062317114414112915712946170306859762987587973571691598942510406344641031764889970501673252430174457558241843061427107250954066078377624264412600413043950160119410239316803470056702389662335361917818678470433974936617117678663560556904559771157447556709751075502297004760503235734353369729034422061312637999213998958719399535048292747399749460170373516232121665818444301928336331783641861743486590390021441827344095341605869957072623630167923861696917718839604534794334187676308236250662832507313274014248377097034161259346464822257136875847923077378431728933881788659812033267883167528310896713206247398246613212634882635431943825615843790655868087479246230967668118223794548216571840579205474170418064875804446702154713102458797565127265623667653781790773856984188179933699289535344168790519653526392120494973579074115527148508367587312522086529661088181282234763031602167938899078880567476141397327670510827941652773048972795404581473030953347298563170181885826496966975190201366561996565851933627083750510625061926855868522658703801649178486693471848679975219597420004831675476653169723598571836351734332617280491527643045355080352325427481219506701996015399381648958302827791154459293873565335900834081064896664699953880832591357955641804378594280884713015025729549729900315102484900386382762799031717691746397208865553338046795855247836207503064527282500440639755204221777269192618507806404552028188342928958874388175928149396344927901444672590164277402760370091615154430461626005970811976583436640088785450590734764640399515070402618818793101764497096843684420932483173433831527919312522733808085080534020527956446957205096817855761377138913849473869469789211852422377079499472796090839897367536047165228082053358214254139811939900065076756299723213491646680292255626298380237775497436882429886184313482456498887781646240576733422812923891873832479357333899811079877985572561938942927820363281499942552015339765251009553000985966166584014871726567638637632590980179440626967245823523444629140686482279465520308788303246224152076903940883282261288846506097943753259891604119429240409819065442210763165113368515387115823221048622709599526045523630253572365664171120282576509436379364061190567533857493733502299585976340641553561358443527162311326576572411801189068798826998621833560315993399311277686449265923248825289462624162095169287450592954830031097374882765665357475107021317557201042158153144941152649742420473793613747353770935870972509470304536803780985280350206475015897360180673178751639222224249336050610323573557594897095448567470035177476419133309267385427817142802341483553249879199760712601666996863462090792418568907520530258530874039893803308170809996265789056499987133673938473838400166933720329669262728435687406836214557325278071142565345710454434895977435056005399868453897865917958708462075185415613956188011870430025775133693589752501975049802380973329328390673526517279198532589930490292088383892432695689250596651662438328957617117549917149117957859000115052495909998721691774471155495161407828224849902255636324268651775563302695787454148529832586804582665835118241558051068860171978216997751635547423187381893366563112708247367951479054392797103831401070626583728326513258160793311038039747427851688704417525695185837050615103910382106617257947519554416132677303547860727376698181367453073429660347256735613749576225608733379138489694759543497768531119805190513099295103669648297203889148612525042955036082957474429024757688271467425200599380913764555548115045714943990374041612885930692247630420337142178585214866772507797548214526738785454549655861291292212260706010062212246088465988100628213323430927935097615748574112740041297609020723561425928625260714456290135118848879894282080436978739740700002701157512908503330082138816303655401393294928264899996206302816785100367937354724415657458928353819917619669445370771616702877449836427119773535717243908295451388359344312589387246860393989290588097619142004993832351071792997848190116737707191133338556761515501424982242455025195449286579973498182813969326597834387325192655379817000932639231369102634483746832051785382086005944336696750672804742580928838338214177911099399428987825153712952190096407351687394872754495619718425274407420564351273263300541021195682638838360561787787468684466292014936495429955592409047457438626572006301718687021288816579805036779245267040996634723101526549178869899474230706062018979581400182426038372908586337806153652259993523092027038789759267587918550323510269092675007461074364071917664627227547528239817941440272334423643185753645653074213536437295478856972544875019141952294254840438195587016332253354427885362175852114552279440652476721718963874671373515596942581511508294254319160137627340776692728457523694652607889896702166461884672462600633670258591967608113523307260820437038695616833829088599564174599217081400799544827854055362966007584259380622989619714750982884838159962150737527590625911371271621559237463713324468044608844145041344402556385003309771734665641569515680218201376453317398135582633165182640905724080853387226882404415180207606243173606925389849535447527250910511754711833094306078817284348218440035685289900669212562644147770067266976927251646965998631100995339749090862675828676026712706217932325253268670359603075454201469972989602305869842617607736258239571716938377989397221945451065411192938288118214356481600391780027834346153575477105974421999540333651495409717951700913441004378626139701293505499794504173587360283172005473020656296921450928377232446431456046476173847757444615453596835799585239584507596294972116217776288568088263052558187551907428829364478750520698815523389922884909135348655449680023716118498894450541941372237002434755754845169968707979867716169051711445074896774881937747193785011072103420128233153811256315386380847397502553522816155795039138666939857908099135206134152395494182236297486711306632884820542522920692947733271147011833513873378822085731811505677380480890674576575394056593693818722335217753962191467571335485202882263470901492365436278992261752136381823381169504381401859226592260095253403151331215553146203973268658220322243656673451795854144815717501303423447792768839077647384753897469309064056567245537061024139434885741461210302949575441732514403066745409208573074936666228413891240072693411904784446494794846101815335893126796443286438232605649506372948799437964972707464899319802606848988731672983953003009987747850416093856185608005524857732481511335318126090647311322716353430556954048648754061815440016905202063292167268966099826408737710609829505649874649410863780852301816060280361222131680727550486136483297865132242312218252766540025948896388371454956163311811937999694707953948338888166438589281037901994739772331579631031915118204411925707306946014701274918645291477244778228764447187402429999259100926501546404544421923767165089281978809692827907127329263741074431824664540578443495982937604798478930740361381053152988345202984809543029176088396581364634140696785303902990739605322145924953843811527928732861908580207009202143413992410478010333925357509893944096616950206343937645660930663809078377651847185185834491108632890260437770967854850379882330262618586224635940019467994100132085476829134322597044662485639888069624928257119938122554004437069860444271337269215736584266878380998101523623849407216910165838714195710714714725766950042883017958497929563387039174841108818576134296417738608460444551778904925031896939181845093720570438698920188504394742668377548428838044947144708658415192288961635170490708570593348031470223620230168558420127797317239877609493330466536533155487997358927169483670721265165370286544540649705873607291412505856180938139760306953629244170169097750987088613056406945098251260116409576094604727288481371329154511407409776514706014702922558727863370802845926037583802929163258229858710876960285055903352623185095644021433533484971164040456062906961067507378279695089253553933471145687061773490863650510676585444472995928877525578710923428217316113610177029947283156093212962506954374482757193241185993214655122472173609854903591009329454263312113957565760895607270144965367930224014411884499412365340994021213356915058662928744590863198392717060548935188716058113441425976806057286100974309435522956050753993917180045187843566732291971025591736847406335416525737450558451113838710782358306127783444313039413544689806186943891430763040737845662659394123702755305580759666917217497658618953756541703823188694442542491979848010523759668471202643276622412324818863094470144604888134028904116544302243235584876542070764867606301710708471405469970494575428250661818369599017598673794900114595765933595798473433421084209871208005975072248921470925146197199697603146385869912280777807077958290907209423393294882419794211071940930942716693649284247376863423408204158513607173069414111582900641044574454306397329513429322130973303443432306900614083318051272454935498285660267876618778492594731375686165880339137795784232907303081807468771089088388401139844378829840902901978059304766825507762917700408208102953398938894122829448408511463142751582344967292473301961709274926374358509260047584530339018361143226668139551105846776075218617718410214894726419565056404636037768651312611861175138207843986715532171178243271200374057165273251668313843101181330349469006261564487103619435384759717373913516120847013513989989555054820687511329443908677224734965143919852144892262806038527680703809801255116856275580276332037258362291908327738353047772345853185401158543987858989725663422216747900950665779295390700469425506088236266753137078051973755571365305737161529002298429021258073302723533887717960951632122464267341598198090491754614940910390895816671122483148250641012145237453784930364626551328835697588510610045992110343212729714872872170285070992229359578144830010436394889709963076079888226395748133380882310154613646319164287147088629450443247738180281679237120312933075464857888116412810835991352350720567234539108172637979742058909021757308161964011252628325208190765765831275475751432721929088421021119095838222276434760153689881469213657409941591515839239490012055805549873502619500074201773529649391973407769598301037653008588064762657906967193435083497856542670893617593892493263214134198657093993352349247102485580487415356666790030245271161372870093386432941222467673809461138942527846816562573454596436886177877186024442149120190594168536178895372507446099432997124412701483899765233094334620378877928400481792456447026193980711298838462442722067477299153009605522788060483638946257943964672760570146829159044301170383353115925539839135730957731220415490695009353714398405082778189960988219946164082370025063532412319465219263745507061249981325967763798194815732983578242208682677785463750471363979306665078003768632465650144043419545506970799897693906804041557044036469738121947123912499070719157836638962722660003373125303383432894210799565047097867043850506964819981845568529836507191227281068382365679099457409208097199794261943913427263373421458875804936867315220743311415704845118891505528832150745363506506892436174299589605238319021110210008371208446163528965337152446426434648635489587895218974847533566551024339395112271682627346979997299470120133597855752942782761535790411407848045618920480652043883300330264837377050967465880231060482006907247801185371134258918172109309371569939538897522517602784818012051304855831341952092210628191957290250878788856784998133274080136370916591720222776420841536265086626910103977212596265944382127636611064149470268032523029542388817932710554857063778698359598575401295575287431096396802643856674171159813165320318687382144184181895159319100737837000844859042002289995497643060693014887116367132100762414013313175540128492534216161814218986513470209943750197437933603839245010835791259295902342213660806957487902600341103753376940922548669839836141593866423023935478341990603777240225813687624498531218575718720338004577555019219268969363967992502084312851696815576734339952381161213929586368813805896818571278997379914981679315359928994412830411015732297190764776275266551135294997605798363133636923094556574435936523612018638112451048017399193300515655711875339830461654809410524105411648240329248419450243959373406908764503349021672541920786364301724297504424713959139052984179978423523719833873447153859293919056204445963817556674890695322149748599971039129085573621881160369001419135769009939176911103009506939673439465483756655361042060147468458746175286621450671318260798947691539149679611820080277027338275044147388600545078259319965672040431662775082541891250256651936583038822915172924596794470576242909312715389678787054590425580030753291071041374036733650732409761793735188587296594809712042681549700466707551034187110462150279706304884717724063759263428145564035665214998871664254506934175295161332833970787729373518503485723508969435845761690436571129778609998984719139088935632328362781628510239889671178499886687156864391612861417449368182323659446444707129035400350877738124512139345482667602747295511158776875619556215502331219204647610025557694175153151494461425758479775618559930616133894189392180575863021163862352369605905820049394308586321756895656336703999168581917154652912256709337792232063455830881389337943366374607683984204735168725527733755167924264643739992974148685474047374574804129748214953909645708188076179308701758960780338700048849750375826892811808659338238097777014291934970634269705702926062766086573282443612752492414262402652435919397298225726126480092392783556835177257683494947213559575408186343690502145162461446479640550005251363817642121818720700910054897209352201545267705964273624337218909131181586225729670730726867909802158364757456145622237448616654894377615562413409731542108267880112106029857553809345848875729339146013681869760969680430682557431399828529074769325410066300450176237731692912111940302021621994994459470270428926946971361661016551524950311982097896010584535017666288158340978011803189722166103691314528701927126079515428217750389842308264265384999259576740394997919860548862633941362836973533582290784679207360301795498405131315612879115331597902565370518941232005989018187585098602102632379710884854082968079395541395082777583318685173491677738648192315537046012906467305606639202105830045401633612512185424643587099943380061703303495860665348564488941874896984172704980899156282054751769034338310033445128026853118290775742952975995953209714273816681035919565319195459207481778692697295818961850623502821770422683553465025966712378435979172179883471933139653006471649662557161606520549959374553184422086977151976117483882992006207202193700685272439051701676513789919459765762706855527864804566460354286951761588165317094666936876830063629906962556678688047554779837640878462170087792489985206297550475711985754645526453468681803535209163412587582633588816161482424068350802188155552058585916846851818155804223426517237213479123945866105137680625698192027666520563508068808038198437334616364282742560158944462043734592401725676560357015688327495545176467996432695297176112205804026942584608794033241153508610462162829078060706993877912739690751268222829417432112083075495807368483066688438381759143366090365130931759172488228979224502440226235075849505614947752601988267028999690947524375322980339707078487235531709600617130705208664758993735936350336415387276136492733492054873281502488483176072595137700476334259526545612372340084206006828592140058889673793371882177575791913233312411808313497812520826971239710931605292367805131640801550557882322457406446065282551284601274823063910052597253666598090487813008875182645494857339257153065032556354291165224743391630046975108675427608332401387181112231258419573519330904610457334331683757707810843816230378718931171525271703214128664347030699737770462405235615021608510102329718845780032378072023334289215897806079127215765841316216476206143975198398076448799286086284872636770425755169859172334883155817636644692002011793067703688430302251866499311598891350693551850320830068537004569084312010721771739624406204834458562697451849237190161223843203158056675669913383765799277332468701950691753981980860586085524626695634086126154570360529534707460760700687515251024224846254714184626829570945585801919564463753784418512673260225611303583989312209486482859942011444523957088351814235780190544112568620298912349437741213387594064869281482633446781072803680191607752388179262833829623223843005520761328018713133531378206208154628830776733339212670293337206198949737599245000757992131616243304441198729257056486297862250667168341001541259805046780667510701835245551681942858306337415077404763258743628667429163507331209550869226685976991744960704123383414517712089705399265908940478902479901851558985914277586328069269497284267426330341000600617329897266386566825841776327204596571982099127803672031958133631166397845830254932271716229128733587139610849191833605358984357574166685754059685511250670661804593455911004235416082903007132578810662566414850600333087196266658690634485270674056393722672061905287370659558635542418493902308610717714087238649852816159561102446721901917107012005128395111948838269690734094880958913778518341243252744249927708721471537972625706937997513488448634721690933387687257255523218133163670470612754892868976331938187808892245697913357497205571782431818002524564830309274497827303011995793910640628289434346355514186217794826448857950036738042555321066578894269328187606761034613845587355493295603640372781615395829138521791997782219943221694770627450347027761269108387043896947755871437929660163606455701814392299160183913948733961169325847163858953321149857655752979857635533623392388908504003942693112159706327102365371828315583756876406250737495532206691364756026964091344585735411772643183315598998127315280943679713490452869597342788004710043175450958552706643246432491840476879537194553495153314806198644718031048839235541038235945539977553220827449164866605074443060048338904081228921933173574400432874995256261180091500531131042761532469736663243530262039869771857356129717953518724424361676494526794464858601046402820557643760254315890686895930627117496861106167536882646772084317139441072177974909601866706042449977502051183298509006602442439486603076056075926492937787835905562233517254975334459411558111018046898576879146579975961471520132968837198509294594791248199552632259647604275293993234080218752006923371729694711627465019025759792991432374853800169298805182764733459029596109980055431199429380443913384516424570579520445864941375186365560089955653760828649195177422885005283382675640008289661579582938695043851403225280853240576427817536995088526809991361496667413977324159583820849558419383241403701443129881556484073656711833417722183929870862372315180255662740225229001914620742039153617599091843861362058590364896231613391286075134729548228242750356353482231992213435936426457091515344298993613869812791437916710703458825489717878500646240326479977539128221383637313092675337831853772854479193239523279256993021749894418678590102608978314142913600481466658186230250775620204910654953811545367615287350558040996027938787001819167857283844728861383463078403290045480516260632830591994372582708717513592154919003000908194829878755290237192321882568592275711103299634071193239721431882204647205115497016820089822773416421097285792615603923995971307799361532776988888343087659664482946105892809310518795070829899973808095714171437352065239461836731266839635343228185038003203569798637817096132735987844582093015373134935467015981208691670330791751123119799932740893721626494866869894449987266717545739331347728906034191902359025112490680899307993493780911438646960505818390651341805932034554478629658156387504356321252182867741948981323162851495553218776403482284208569977217083467155019041861422579418733023878808503981907339205768841674057586516705683359221845866347660621617923264141415117433418325925171628773910248803870702885189661583732173016912059476723132968261280955158503600675680584576009275235682929705403322338571840554740346686983113725863797067828328869979086266803196666693697376900781944375263801366358758887974380916331693477115212393981180686790219843957508647556338991183633054165482063789807192262910629346854625560202304037528813887328724185043666628940537970869535397070245982762318199505190677555243241854465186341761267178285282742046271657919723502559776318779362975449582789548314726141332129936776787761090919169852277497702371108164134264399675853884069949081984446538135721259504256690082143501840613758946787578057064367256054136226103879386112190269862731081367872260517006604030485394406338506671126306792047992440195518870949522139031509414093576508926165707914906396051222716340087533891588115482032176556723903055651557311288761622755608033887122913064621345027508608765359136183431143113163806014084010255416228935414134435091944934316965910153670786742672268393692813772541050375047700668529668168522552278293096178599711404286264202956546222029519044782116053833558777072665072763565017249679564571342192285181755320506682249777363523646268165053594770374611466545118320730029727734403736791529903311672231597189697768902964101608676884738145247978774776469559025987474624659031996294089698906565856486803913405430749416816434383312035827038568180495905676004354330301675488078489886539760200655688933483226999046559808145126819514206440656146742816215343531778180114692523801291945023609832481430331818851576443517768143859689299583928127966273068583776697980639977144287001816410483766098793187344075056754841325627548386116396932793492812187865721854586101637533137901188071009853151101351500287062194133165078053700053734322161374038076886023283752449652214736850706348505453547271091930838128113687742662302785386439348548506427814372239273606847889487823533341363110482131876151626931710450591218007234145048717352043571640408909420627206234255242815363725179910892010028883614026890505391322139264775896543978265304659861955456256494445440844181393894899601179504002087891647308809560761627420634015210687775443494740747799992875730282028741703465442746482408321077919076721916539418945824011802586772700915224674062049763326681482472604656342800356197499338049415612092283216044086594481964955427456363884718584106797347029492605584829037451407618855209748635574211842345514317425142368340863658199827798545590111350665252227802653750094959377382199075316919719731332285432083951675599927141358328348322992047514574655029302278148798523530125479539861946203507110803761397679703647923315138988685488626834187591468064395730782777748574714195629214263919363807709175179514017958073088215710607433422586968614981611964778266607496781953280891893082022569547286088505651904468463063502613772658072706054762111974307692101475772975871688479129548945054721611573689076249762823652250192299969413169754163001908666852472496234631496932451017853967353429407251627254383918839120938546321002896713464364786109381775913273823897178594259335584790384886826065142729089222944788423764118789863983606251622085064240692032831534301335730186461471312518588152749716856952966775185289917170406404320645353461248283317385686074559686223652681057822859832974561930271119259061128882776085948238950570969166602532947508865182613849964090736700047635915990690631704919787393873522040327451919060927933073162093445899788678442471412311031096412036886885212310254093067346436502152440090708552392045631146534651344653242814883934479813055369506039271703143885186330468297144357769926857958724559946882524708021512998904699788326046556301960609225331208270124697748076433959621715582049053573498038915233568684136009130990010494725323394215491373550440168224546866473186987540187976420287487017973397025334158385448556175541388532029986391236670980208735246341298794777505736464049697464937061048995109027623142180361065793146034541465631918174271736342965910633639431758535439470946450264266651568067784626568965072906959191642795998728050129632645127570786464364552232785498468950215065977293589714954156186941036153495225433234139458641060189972276198895686573185905959609076176149198720929018652093693292807470824257745461805467847974440291931409583240927138305607653937308322965208281857091256825840444295715626676896987802748869244523457415704326452941137228794802773443217130731148216502709765219316932486816337201853329134928296268665299268524665235873522427735970725945996400284891570558258577328797585955535548432389256134040295070213298280180597117391929273555441205372714246345973268801510080229047783311206933321528066590056688696576167117544762704184587251473748103142760176516451015015956641469994259845590673474890625625431119685522364732603454498176984091735531056360061904232590682157120258186762110431025042674984332560504103244384169032278788552031698635286867157572238740297398718825903313377086881952081466303382122531406062007258291466753026467136286555680981007974749226700763185441028228499279760817646171428414280087255160555751641619093341782107974364419006394162383199963564175612866966303823011581056206452947579425394719220947588074302891694121415681279915249472509870016107472108341485563848731917965853926743598160380848432736425337743128668163598020559711703710578051792299783019390543700128971346629034951170047924183676208799170522688519512021090223517089328428250473671011812051200184862034385334002570088913500640389045497930853719973900376045668407080468296004824108283264113987392859413543316850701140672776535473646786602835635342677497347104732600058002262906940828227710131198666834511842490796016812489567229916806502807772874125846774129990970395517684517738233751249637462868908883100993520881665660881718943495028293538739316835848098139442142240403832969022685231639673041425200555955454944774739779674899277495376040673242434731622346554615856672664630154661502202502283968049103694673076426894927278130439706025839338029597789356267778084942953298139307404460531177195263098631889108542498656500908835195373375349859236421520678267445490751993795703784598315051373253781623939714857017692346835786424236404036363350018119422974288545979858929460592727291013430551759877001266471925626371822240108324792045760690754009175023056057437964093676067917854094467233330204339300478793675924188195758023753907986343848270039676625155574608568258098200655258944894251200322822340238628171385940317833520701868786525077461398394186842912858605680418999734515369409139358094159030241627023946845905484479426637090164108940247104247141680342230205132787015996729275661203561759063888627592517154396623995625421217031935158913431330212479622793470011671410581685512854659724023280066878229909918831220346774717747222692421108051860551207251829606503416105671606359553511236762982166578922958474658931122375782396084142391126775846864303651765390420729332029574691538152402305666706413884958266045874094041507043177284123295235051783385484265118476648010659639780148532867740909980768823788054217577451774548154289924571362576837607417159774281190977075498056356075451974471609493284015446824438512768528764376139498235756395498095150856505223384588420335842128621025295250292072392327229073664789251257166999825270597635663875471804349470363288797335432522681993802688918589161046353671404635069572771248194086717318024855592474589180020731797887459619794872849787872372556998732670552623895702400999037236117756765899928645647850428492308820492864630096803463903451152968848403815286628431831350165313527816547321051842544339296528918009666034509772658415760682675723497656142855890285156412845678893519671908463873094597161630248035480522671097627411046750060349527347559999359585447986100083801825017071278375847131704940466207494942433814732109888446717281507754289290572377994895082996315379029678216969725085748649704366077680899176534971470222204458013488491701339626426089567747672158215326096245636120151461785581165380073145120534054174294342210410271632556556406570158864286782587085490212044266414489571659280671133309532044273988447990848673680680087788444283480852252918136910296583597056373265948855376921596024792253381767671616413803138670002871464489517824039655247949423910992509985113780584408111618770230147196513309482871367295666720067174686640786724408330409634152907796568123697843165936875423041405679251853371048158935228961653711272737164500843853629019179591502975720793927415377238640775530130590225382697284637614311980207679080051602971946536087057208889230728957922531002571188321601918743561887116509328327985035933070890351894575166262456291687852979544658157502018978289706264487635909782204356634431971545636787408679331971135106621418038620015268182910852720251954578677161311553360815615165051514101693473657861429827189894730245678278245655270474487799393698209158171283279684103497550253475146411946582627953212060061532868686938968817920247669120201662859675212383895912240486960984376909584294133398281518634963765142706808337932244671383960107807001890970549242568516777495530953406404593144825454944174685649071288027071660944973853949958274717159454584213688403149575878769581440963900147478460896647150667754554785146518868833174611498397665581810682536215193238871790114117232967712417054214924236294514604724422055703884239402500873681920833617050151143204118147761098305112643330670809333528940364470523358009135773139780669334480634521791319049734366432460471771477375387816190299149866182592776723887579479359242385163394381672286751744170146734001731026789794606264548168153833154565675137041614211505218266368591086115611477430261855768365944785435296207538938278397156525808165300326496375332912670446998008452755598716543681175321952463341902710623132470459327892081360329498547698057065932972269214816899270522121426045572393531781230368617031227607219788285570575040114806296731335156419949126035578529118242034243808215776078718634989500427087636594536018269644504035632377501409581716926847335745062560613349706407261220652870914590589994789820370830714885833733015992769508535400330514886667961335205083445883211415890057011395722397086012348156702059294655469621138885417633528042361697883196365759622911248637009863735244116919858027447442505343803224234672046253528973936410828208135540650208952018641339330098969694133412194397585885578492173433793277345298279980606245906895881023660177432708224266728765355249354078704151136105683964291865616351982957371881419015019831584710712420243432914103736738249102195114559170004496277590206362573944474765981612792250264218666036603417376560640507241947162426135055042345819689215947230224698484642689700848318425349646680671515404511529676128937456616850497612265177247473040140751764652102002366074332724273114093868430210488619276270061923024854961768773892867678691676510516913645579579145977791784362011380289730939759760592150359348798291752120582764770028021908766190046429937748734299791188607511024441798701275343589487046057954074716130374629546354455574094531816966853370207956147063080074598272541140531890581489874057334028380416484300856675178695903496055172363235326217452317550853122118112880856698843237440864134500281001401271358684314881375454500787578198320637636232345823416585314567628590999143411013128046828058638094622128126233945300687251390350389567718063142300791704005796529632265088372297793516462185318407252834667917786459968333311527374822019198848670097234453629636774971070933879227162898434529411765317152436852541809634974571943188178146359745302387109074588439202469318084734108025604590123245613944741951282167294132569510342022408210875753734631758697701201270919319151281917612236707427966066748017808657988394653735914338869666735881436033011622803468153214726950194918854476434472846765033494758442529802221525813331565412380730670245799732544473535939469792152393705935128367420191442414499148124148991038283823783168814379247439973629540057901579199256825622776359709845070230532040170942904554207610723415728727366742878760294508314589890121675673160243062695697593509388854842405763084429505384863451787062515247432925996122802645951244033899939567547978564179663408113599776641148430710651396471434641895842021260732417274503376634767962753346588611452155150318165212560973229085886030398100849112752403145318043423306106366772869192215364859654543736157890233146089311954741873157304035919479449202857143167859456184908310181380252703816357016134784688711891933787238052938738174498485753595237325119464393033547248398622618574433548375053575343635336775717590642718667616187139346217119197331006746779299989113767631314161968366569161096095519657163980755853748494084124623288928440558169277127019865388083463452156694572998713390062423158895966247088618701598357241366356984147251277833350036863441791326119251670059946035206006893059373959298077175297515756836309787151412470204903064086590406375797754289691892939898723536322868841044544653081925524511551458128664403347945438159388805872791878880294663876663439196431280871334430611079220656545434013313515034418807456665643686743375449603740856943839852616102047074786282839884202214614289434051674714617064295985136139914344554067530765547691152443030094617299055392476921493583914005090697096312490455899836016176866723108276839638669711030528095509511891305674009238543970909487629795572724015292287547681753156292298759346070999482844979822645801633981813482369706258108369512187848775354865431568919630337688032434336852168397057173377977277603855411775911322349855571022098124069171590425150907091599932987477705742945188872921316775093293325124580917245144294799053641727646516944275486829383423757447541386680801655751010727015851286160475743571056365459453954850761249000363386443177425423877426270341898688520935353615423816128063274410447733650586184858351829295481988272246335070928624816427978035663200489129294790927236164277871413358565220475388424924869878495227559902968429776537494627389408626721210980490667018702294584152632113730836740925720839124077535166463140168909765757487424346386214939729692541484079796437386978610302413213590565991472286581021746768620733485186458277418127145312826077233839943638954780237229024684078079709879495937655816170076563148482530616678359058482821244017878903391875148411193943550948726813296912631679789763983323311023395718281820567361422771318478530842956218793608062443366635987946912786875201974459269084256536989168027702752792364943109846417033349096549935007070855715665837144810109271203464310573127509119649233341382666541698228499450607401534191184841602831858448766175637859852250304532392119096588848957842841082000855618686116390878331756578087055109505093922269039181934339443504659398528083705337609882549130244151010522111762854911797625775097299687833628620636430610077850226448756149609872977571806628206591731652995676643448905718614667781316048504223234465777311669155888614834368868890549514361917610512316958134097551187333564618019012221108521592593302692295072040951849844294323544071954601186899289334439289297272130624662859319508471279587335524969464898153885118388865010085995899185840380659131261568174789203536584667692457943873421840455992410880489014349016905462560496346967088825263411757756190888907755976554033394986834789426305406366755871501052023081406813612955220382552851016169880824382319532743453554392725463895653642344519784336840125654941278968164246755748916602055009097684356919164746720501004189915236347247943340488097983712307216728286399499735363805791146878690657138088161612671351366624420286800721512923247702197256876690283496663059193684476044407275938678288876347150050211649052340257894350020057137595596226927470948657280205527521327136180262851233817514335995297935675863728000634996939762938671275368180262967058538334892868899131422510394314983961695761770376663756164582205973133809731595097485982541780850916699877980614264925461319640100749887253428828955893131303441787208630693311460617865227875129952512181995417722385517996431554519753423761023774600345891288622185714458769286834047368084767626925543355248827632052250984977676497349276937505248325864050614158423395640251259342759413762641518537144437833784369518475060214651026674238086887227654603374123214270797936793893376671853317528153658693742780070013778365102540825784323956202656061446746810855591490748011841293801544118883050991805369882282019034884930948160221685490601278568332701092908106048723946471932483065148874627759634142612742069250499653581486609434435889463269227362619227166232174362962747083579697216372958224550092901446484488729226880423440757362326135686747331696729911534893695683337626292221635351740441740145241133549395478049320444881814875251786078359649825227035693350360256199440439318955785339980478507978126847692170149462605395356591224372105396565368933142716309702190134990745297429239303373581115847871792186484631526131930701955465388025425011425167391493759020210583004645979183421066698488824818861646095494820185703726568965852118326265242362878043312018002618583366062191788206105947340952966652500974328915633455948487302848692567195562341702040772468368990053016885338956908460195893297886196414942418004165988837729042337104374205459646424016959737808857219817129940781170865780323213644990462948561509005209985024037549330988611490952713560911596409265510666504577035464280445369803471409359786568328884972732257126460367624686030442527497665350740597465274391396533194691843950550604535336128582055206948516683189453741179443468960225606516829427722370029429406401364369825394060666071677193462237769720893149743252191963114959956935636394108244984211711739753729796688063753529699033710352080907667146748113627208973315350183756946835687400085653023228106183127704093746406734749683326920843187436685627218633707088580445955786817469095260093087587975007605097835400345377395048924131024898045687413189723479020420049831479387883477829112317121949800376858579721943380693510588008473255844214657811238987565554903660895298933009552229053379800447081000920215622107871381591803983256741135952684822504734358394020027382737668496393154665484316195304853940359126433353481147900454003472537498955903839872513650271050482857423751163260847903091115708480282727696101157983504112399384568758137559549533119464591708050654096964306416551471042513827114084976002767033311806066620352638685359518995680531267736333106135299099713401398414227219610481603596184204764897105723607976410060411379576355857722962780751404583871212282948173004223654080578685928220653929848287289048031819963434973509932143643141159368826099570998253160825398510513851106333893946196070449664199583314628195925831878918165794489829970182076668679378110500330997542327851957305359453147931972846109432411698660089770568510818091591416165764352649656642010012508532173219298929097833118231733369154764709324865900124616139275507307265767372011790093284139843639365235066562960390730010642884154766504239839213343376822540899032665360733693079493367275258156102374965244483376457133276335519393499221623962907472529079636478945601070337442841022154601994094649442691501420495759097771347944388890114621793156750956360133626063041685984773166988480631683405655221238912669817402848355638696970836887443197992828810815990815793983249578216417407734816869853318625921622841135002627825995641725966810444055773552831802039012431327782676475775400842074943891464560276641064365189041861843485364554505890895870767163730400657422604357921122636553972754625245900480321084584675607783573472399815909740546464124596145039192917473657255052454680520293954271322862737962014836978233870462920931253824181152676884868363641035892680290060572376373641010282722454539735149350981386356748834469776980695934061570204167335246141600424587694692713212764114510087582951504484901572187851583875815622458134319953499215823286347413330274785561139427440688661008174649269147748895391359472894374466426619786599500665684539421864117266685244980071265351118377337567928004283774417996875790768943017867962198301409668339954723551619921052360134846309879336866887614918840824648716828486047578305145543363758074645906028101277025799068511236466876503092740641497104611885859132384871217823045120803278480193967637375464625284195837430850486047009754528248668185722110813887189831528993718323791508219871596341577762356930147754904920260420585139725031994118630532891400510610817015016950005276047622016955860295884425685980654409254558248561490097880642751519836775549132925831276922952194459494197073606222617500292930170436269009882095834924806908039945404293826449715476055379749871398250447700239536738175563173291501065385034130965417228556037501366578267274598705534575613880689431933458694881572606249447209170328420905795317939377415267189882553787683118366966752369305907172291627687312190610514222605920686484813560536065176660899785596177827789780591905408752947799235513657701992676039516244973491421265182540967996161584212421444827129925694803352362143381632280058802658425781108551789893732188254579384166656157808073899351914303033777543479559200605527788581435963993058545125371168221768827592284567551421547245890171284900705035372286336890932346825420759341771342771637304911851183757185566449848683628569207127208487739233503962405217123569326727564886274338581950426279294929811833795208013267027031183585945996934667252464469796436045121392691094397498310137106474584314170988772079886744634049841584924462636912279158523752477767432432404278978331496611998077893960765796394138054395852634735290460682948034360065263072540535325849469131929212556271346197483791063270561351763715272642257007211883961531728383935960568801109301216914856172435445902449258322970906803522016415231565460166242293635006617022601689065576123600530321678711757362911148680557835957746870260714251883267742471909139279463551785827991205567824725671140007115621881411068367134192592425135069190244003761853867720540557455545787277765502852258248845131841535982574224038244568544109932101697340506600605539534083909388646293278830492493208742094092438600739391965548454138699693944363355484255675348640123250089218634373008509576410209462720420701316086913514545471660128055768497733685577479699983775156187890542249887252168725160239582174437928756905440354427781776117466570312884890954364574902962069907073684378906907770609009152511681768827519531759424711876601125727000038388625640000125598888128104589694926728966462522778999588392808238969273872275815493096821617174165806883339914045341563711187979896726424852532252744316304735687913544078930637546813852897146917257657874661806224642238731438668233158395650959916297607891337099099200120482938985780634632505555596651679350802579121387563603311849982141315802827015183921866743994346645106983642937927119359855340285236975173414061591286075482786022636638944393843259836495236289035409052004971608888706631987374637588972824906517863717245312956624474478860648057203544856536484838330745992227849932687860847859278774654237937308964318876764198322740758864278092789176867815779826690058072520730686385836082441918354120393637170426519517846931007210955450842442538659796002334751061170919194680461273073466813633656433921590659116002587477178073103841493246952828192198040197877682731218006600850139354355863067319141173787161281892159652511968995771434092538932923455516011223261259515192342241847673431675696860682226006263420848417085644143556867475989109497782213623329624954804584141961073408549476104299126819696582776314321238816248393527502862635679673704597603049952782244814969179017771676797396209248242799785964182556590211119153104754295144021251728321252703240008282842848629271716737038533955576534140634756887935666894294093362108465676315778609921686195143076105459148668355980442576613526246611193594758146012330737103816909030785159598601196935662460417631179675822017564327170726127092895485393148282958891508992393303422176038198366839787115542471775733660587924844883873248782012308131835199158800987418873106509978551348841641785677447214863348733607571342942988778421215969496074807294404595299958593595265831704770490029179209654213930126083748426352965560027766670262328993229897912690183770349840078838338045982319161188985001669432972524280775346027559271498624797799268782738739994891331942844154708376676463302338068072539611523235073100150412718586515417255569988525871204581104106377413167762963533537708215592170980764001497627214376488463730136362051570623174506402335364032977421038196575392432456884383670701344694642186935834743887611838255242646505175793637853530700150511842147787648854773306043970912624404191262658922544629956250559182921835790801228216560915811315135543415313426624865199639170062816627787176069233130734791219602389032081875949485908127122227041059484791235212868671061208006573681605463325701671802560774383256308174296173982040372562298511773608453602600296249870874066631942261349616675930551488679564516273417170055096289346226231096118989121303101004905585347196470857225350975057874143615235438245322671302612597843010225562647757517415065614807663372029190263568526745292324462214028798728742934830753579661695506295644548597606783943052809056383005663482865719145940616332354465631406854116915854831234544716557855843051173146828286367179882866551826130111925087586925441160023556684900118381838165247581999892480717334228598681611456968073641435890680795504059062826993305157420083547095746514179792743386624447078989618979354715963097904167812821522856105375392931222661787523588536083752379071673797743085535490427646384843885480160677461243870725315193808013733297210447619852368735167128004931928881397391579925051996911227744957601941589316032653402467156559142611811494641374185790415184281356148171727351888728375458978644814590338898872122171902771682770548784379563830061383785237416243512631670846120964736031331130741115893470014220891192681363700404524396427365265501728643828251712010346342171306226153929344911774732091087014358831255607319412397787806199711934946186147230042166893361350802535873184718930277018130809892032998692844188122850131944513719959013668509868867010776404451878417000102900825133228751225558850348480586561559608290930599465151995183782975853938310332682896092118993407662294038210563053958978023007728938107354993013758873011892825500781136164530335692964257438880378021838725538347901973390393220085334368081802729776800367794555919080683152030368624548976721923912893049330208474302174528202002096629469212942404172068391374002560229412677350548927897292279777544820773660853413555202676188967418208647133286306444110229667314276260632106926853030263049055950609071964418822094647349813457133402514686905921251514764488338912993418682215207165324077687053088875354959478641312353318451113965653720560358665575640521563295186945479657476906182359020948697170523139954991306484603629040231232074999454916204763444515592183099484632896276499348707301542500865373610088895046869589855584003435128663444954547742854195769831143971191847464876631625360341827437762955976615277097073503972953731826194756944141637025373636569441654710658243829718763462752104668259448082891110813951233953822387779248145135011205970060837548365036285366877512442467799159088362853427353308955990069075107146224961155653683886493115961521323524177012351030433967939226565370416052278356885537359030636542078378057763074637621475046405528408831416715066301547180579713345949973594243623280828531418761509025117930318172658363035318301478897248259431396595489057598658687673574263406001422612348947020097419731590601399547052879795724103391827648487433704285685661328128159157984667604452702536274522971235803087285058620065749040450092894076348718292170042600649137844129030406713307956251743326222513806021409996027795756151731924774451502224119926918076634302191384317585121631857923172568721579864535756425799084275327133031784154339470421620973137226558865309226337583392180987918872945042016003005046474176386075005658236892233507293100668519232959854102750748209751164755368407952101858739600720919832549823052970374036932269578231683188063564363341834987937195754407055351019820211638993283202416639817563297371672728756996290551335687891143325190311535570018951161468174940100265530352517598431935896765129358294180001850297645266147257593654161172650360140657343863782261425853663746873119873776429809830861493951568808774112088341225510989161198139581800275463091404567724798536565996102574042930761653411682234802559750492115623895449533657635064672641092121424212202668934859646123723334576603680132930842746658631025048437933812022478136535325871496436616868097855937716152950802214939708215045244654628587918783576858778631364888879035975995283117014702830283252979329170746249188824279707219698621284577573825277343104570541387320100630558158323415043224491055030650729006367990099717476299810022522304246285416322723877428579443219258344936896869287495131439008055882083638115647136992025337922893781602372786364025581160141208749977677397701080703106041300014083582695009223752551646640641629546432391478401398913135343358547414287875342147150648625658904521316313290955504309230209020236486305188165471011578358394799809204301260858966061531781290748142493471452067819779960993366145373898010510030757896060575299092108271918715553861665096187765678508014550472728415067762508127858320828778108767185641760704499091179028388481692733288899667924535166436640876457636122457127949089246787807040133166632456804004877946771336544961889205498310167573538532352314953476546088767607978247546263474581621617292602900052327759246284859625524328312672656423385977599503211117897687945325173115575838011518116960838211758806265799498686440841621022077062880278830644927651577788909423502519844806892397849953036513940684860740806128588415993383831985382245498847887406931353608796337218492773302469212036297844053054802470951265164640966698780655489765788888960891766978207136029773028892248243387033401752444545313287326993884320125200898399684358377044895301349510672518203999384653721331050791602332989285904752069709887418902181183934883546990914619567472558172921745940789757715682074329942154450997678514928382301288662685699937462612847923868305760180559768205839320815560063473045463675506893553876783518478686791477479246129510678462982373435278051147549333395714627174686056283414929772859324090275797649444957826113055751660614661579171598313426994390918687409728065363107990842287273200492491098920109361149846856442840205584973273264571801068777194675095192327354644017355983753024986040132420351081881406007601448657929898223453402020938812583908002445114338428857686378443064970045884869204858679118309881190567728484880104884311367106876800791866675881945070497009595171780908999774436087798817061667505552013290291401251870779366738390571688765220252159193485306391046375102117508953459270630200128581660181994071432762560661180967720178582425748300113623361880449019979676076124978200844965802561031355899072505657641119578135712605454751747920741145067244370654439678695823050597501447492971510112702464452517064881244913936791776339380537485509384043108902268595200340902714462456557752386499582645143399070145687042776338073381471176312885846922467872596967077242972947288965354883885180581581797598246925900246034475020917542498364109455132027382299476044046384669023282620725084214873583491550143901323756894991502279806263434658196460189910151909923514236463183957895122980247805479651021859505989494314728340899880544401571068948483128735105453828476270975600837145459572703024010761656176654133676186769193365302743920843240894991747913916122447156014597324084465150587229655479059559105914941431897600886846255655544506173355505465507589556383353938574971021197949548743628689871802074516785436359328245547721037821660124304111811104080340179323237822627299695948503441115517458276552943226229676107983928941200535599150341833590987970746555529164148184766181094305813498636312523965076827056584234147562962585552624946667528421098826802687991975699627282044859259240986399283717395704986628671295273023494805653877109201615596015507529115679602606366078527263104795870092536676340364433237747993333807500505147018383738453126274705896505850267061835230328359780161978122785806660019860885475211516076196107292458863882781871778825335956810245486649009540494451676237782660723541464406172642735350430820850285060524149783322851199273826813920992987024999939564135835971527304741696349718551248957222976409297268234336197950429281310140545673001135308176125693890880135718272977039996530592795962853768791781740108287181642009337488860110917894298870808980522008272382895477742108551632148586080538288386289855254709885926985394249069626677039117088432120091949180237807784850486731400218388138395182519386995808244616567439815070551135873461495844087673360638598869482908567456080101416405382175110401845551734974019029538702725228836837531768720055523693443827429458277854007269330338031808249430983647987458272351128255940138433123077626941598444774130942120124504908437305320747197633009398291955466509349920209724140985314400706405494072167975800952287581593903096596471532368575153677312051440660178333262690462543400572400384418989030348423417851374100066546313583459543478957701947205803976624491641586197166665809575783759775922093513707907721546331994901580498498518168325799631223173239170234164629546454052407061831550000807684050273390521497500244030827773203630500761517193415840798217124571660895953808004798499754371323319546749391280628598496642642959943445029589984991953929502368770592179330574245157473482250601733863849196494593706678506044607317135767818774695573810998744831338233416133839489619056007738324808380807203398851599877819615559617599934458286015093426378159763781284327449652963873100389210884502829417159702997331566180016028647264760795193841115319223687099405110987997349210897415555462032020583662695858646932067566948258780398640250151809135704899941155010758054929831377589218832074369549862269092306321384219797120437791833908119165158388111452885929330300514543284488966889918970567820787771942288722421363593062499931493057394820279455374938077286528559138425351309101337835622850722199963183516427011536382730506834983842740122841876932422130445531983735555901715657346876479375683718037629189826644883340693703656594223632205956822883377005874559895997121500418903153604172566327653588939926886325157897308152472314583605078184568227404714208499176822680901508477213949338778192015260745987175112543175730664227318279268092830432064914191218252117135845644616132659515512157481413961724802666183649491218759756619299122041569859015107753651878160658557962443023230076041879323184231141033417769044253610899013646088485260846579982912064245654291343227940164335302988514340804860821992011129702358807299784279327790247174640967827497823183386536777847874870953985446847546878313613716315956996114273035064200550477217751222981175202558154149890861620004583158703837141823407511592788828045027803276458519793177181267219932980351813513423127070788059944009172714406645258494547885131570851811044358215074684439024263311558808044978820212571045872744800297117569697027510935448817703628046579602662887999036964892150328875722155107432073766847477942644133797633624642100415418076462661491623198932782905439053089570723803586676151859422568887594620436376063709409453189855975615840130588740336993555536068756647302907103594163807954032184762203550510525268997933833113041695960928547056122864786634838051875280961771549227332542757589037999525677097620969908478970924177427387261875439430844105732041982399402450307152108864137916572377400138470163152220642322550742351435633408747385398127767407076820482099026188548245564521639359927418226741750581783039776903201145677767686852986871964790087094166374753797336183020292552126179968394105120155592658161938803477783649526454929967647506282899127794935356523532847689707155045634647820402333017085972006436239656637306068032542918654566816359864452308847302287421363425370989686250260036907125524438070253884867956905335409417273620941561733196399284953459673020521562615419876479237495526511480486971657359877539650229419250206263112557734173338431938127835637938001632471254322879988371948963587384113144334458577005631557215051409873387066101610902363261802841445113563194935735822864503085076361655267318602534075963947302084477669667009121732459622657886892811389966772918478335200242538292459199153470120793068184656296668485415371883744211769386951160980968164668944418433200264511122853260829210561260724394793857503379288607041418434194238485709557517867979750206010596234700351166631886003439475233097490437542969504189635915075086030297721774378308015702626463431942144110259010658042728010628958153254910838018408411040284897547116392662680913352333478163736046187550876135092896667180678821568785454075231962447803581851254536775002532025436370471902047707641397366384579280356921761793866017695674341413745049438840182675827803400980866314427459974188246760900797819226860392243228128485055260222023533127063205554012794517979864053272973147348368645980176578195812648752187571379073238146301675812104092227287027635954777799016974800682770213513981418724084944676813884558465830308004719740674684162008629114479895722458652815786333275561742463457949971451877570109275236012782278044568914324079126175342245407033183066483867583985466960071991358744487571916046179227730250555921239390476440442707176006089092229811599725236865972375359336129241413031916641431616829009474468985802023592562679277153556469548947900696122485052705137678908184129726354760660848715066958758606465421999210179926890244421584360757093134864402719667621964251441199893752680901968669890503428331643010412620154104935199995654274518115766839359770174538456410584300406224896890651717856991914531043260687276057120471462569733799238211363036714061790237228912128489876695100498680391694136691816367282791902520283232042586670084311916821662157085908669799759667696310360618454883884517958757925755645788628469057847791358929182821952062823891556320012973854460473772031824165733741725691513068500246682735832858272465868492769344322718696276274184701451530069163892439320981155636817170273135568149567932790047493070300778866481310630288694788410992439446656811424200697331372567145941599622487022107877945050862978124972526884016145536584381219937374133835266174371194736265388228684467170757830897816346376469788925961755213141838966089929802732923805173130280425609033440314913686695424327083670303049585502614288110575712898814338649890038618788335977038056280373201564133151085755469542574794905936232881990522795805317969280526035087670526411423662001733273594920444144012218927555362797092352082537321988107297102160051123267710383007632103923162288887781020110222241423452700450960768044326955915049645752258607646585386802334103003489770951738155712219077059205388979226115724947241333217161316452149939328247437619474053130903980271885062968630257914670142631159905757814819557052874486086166587720920316916220858792223657372915234059225060265150448150861586382987989376138926599998975378929214220693830998812586418766852072218849187197113286684577059971677518879235139526191337991983208213472084992127476433588847246282003927064909857503039189358978411504218746720140092896244516987286301568524420577476260174262357084731752029958423101475001025923413927547181857848782101336346274690631572257276154186966020858848027940719260325442446068968679963122469214258138876619618264870241797222109733310833240923004409458788913871007791235633818576834457617249872701616861710925492288642335576850122350982839362844593843504051537829004753529624183358081396894342382002799004774866050450012457760596671291863074091270130067401623078887595480180197100586845241201411894512616005963654472950562656371815120005070054346950467157423256595046003707861729118268867394501802301336245787130777054240368623077017209398852367071463157693296454866153433045721566915454545191705243914452176033555192375388477879366574892024452756033254764133681165720506206631772534278619632333920812685124603616260275620207419669231766881119560133862886070546021695160191556117254416325280417962146523492851863094612993755439635251266471831069664234298827499967402657264149011280789392912897030280794282004015721133755468424262080545951263177957318214354147308663153029380892971948382778224947557451439997092643284170866366843938001695754769935665085364956035320771076258330583682439222431643205368083836829395189139994738630534646951959378083597358865874448989903765120644954325424550036256604710479922019447703524496092626344426208417602948289018322886255743067427322100566488139166278775049326550251987541601991458999730898962734503125754682503622175552782087456937198288380830256997296189912140360293372254662143305591733897687323142079370843502610611812977856074494129763461064356806990782213039453597955663868284394732826984707458594713622322004902640731290199781553692252786987484153290961744588670784848801921653034096002856556532554096339855871857485610499872104739492959385446085387869968632092034682644459903496432757363587143432416139966121837575091206418561729280733481752520387332573149475289999910868449702657299799239940892031917023754379820328038156697809091434422456280481054663339252657425292296564250644298786493072116253299048143360488203259677768837383415546026434139564707106279210453090941342692591332665320885669865252984205444502849584337690244181103172215117018826147544299750299761795250028044960238746808212804850182153247196446752932575805399852388104347336415556450624615567875112394286924233980356010223863699355143536220201983802616261465150992198871463728495131784533132159449596990501937412377931989098140375569531128575340694631514325723092638542392831818152501920587039052559661907438811169516720429877523135787274812801320191341613341482383943599518197407338991642928070219292754011237929093981273278545517218325449155136920249070125401115047894122090140520549960560330235822582531508290298786434726980056707607394501483479276020926610187279447636843700063196123888198143283140903436049644753387148670093171385329496667426270526795677587183145578966886942040293645772139776675330145550094995308881554098142602910361651762830805605417298933568234051910646852688849307824588391749463154098026546819617745072904807605153474089137109827976243785740284376702960549865861797406626561506139151829026696835239379511770978170342444173572977111817242983827097586091424433298212276090485262899231125013670994283960735238244142981797274626526019605292978410644859048175574293029929391284392677125783896241519353636201601373860807231364981774871821856353967260639815388977270447943362488952725494628100567923897088993380513768732726242063706464399710491097262466833979340918656869690195207263032483167782849924527169127244232131154214225928723623730493817080905977839130887586700033437514058373617636306500738876296039595522846283411269270305303893087310073378769583073780316496035548270493290430911790718203357768839491757586808016295323147209119407365185494744296768755966812732392610788307205065837882581171565057875915957822193867132084064424659680422065884085396438247546579998056256766585280255800570961765108402440839660851469739684219759321124910233259609181297527711878046276801399485338246146969555209757930351226421968101634189599078210369962770245901909207284518731655620879628057137728925144305313850601945641888570278545717034906194331428893029938727299910512832212741273440625959602584002468839901901129889510987659408639851379915108386664694988463794690236300156862054908653790856446167317689821281336475889818090346356203721352225993652137023320907575030006989532629098366992417011311570271946040043129354256647123789186877192213405922549070480063554381263174158130723646284701847957933506766125655646447032866638534902692041929199455090231767851580805447356154962312872453315371518742282216177092607632076467795410003577178499447238042921671792052427060996779283542211304736695349693588797258115737294305189842030331289286108207312314534652081266662094600689114400163575159544532756018072226654436170000964600115019145840575792721102400655174545752709139288116921521556813895795466135554411106723343656599171199964854592757070037581289588392581884879724935667978768375283533256150021239685567725780435120746451256064592941437254465456264679786388261308889722633447089407850117348803543304137750223935996866984844593030935157870948905867049843198673602994540013602900514747515212097366074200326457128386388068207598333232975778070703109045888809725572426492184481449647163697890976522568714014611666279009461289939424785168744881830438581834053453823151652333762410427788105295055988984428031757601779362104688393404072559141165149000086014979839533084918536477131603042687517441141537888172644452981809001567843308766559294357816733083878784915859699929638898836140519473199953847711503990723437494852613562538829576598034410174814754790485859775320349952514065461654162688495952179174789180249171280442791086040607878939410834689663474770265032726418108820536039085065161861623571241998701160616772845066977382612785477716359307065012457573828806247292520093045849027201745794423318334000049342985399356669792037813908844401078673377121542141169661582596309647874734727655875413173072519002163112513637115620507414897416759314661545045828230479027580752362639185788877973591439974416629059459366350491242911212399541517423269519574372260528913467223321545171559322896549351061408829532780658909497135111955484258929399569553999337453218911331598102990018317978447390821316139740803705745199880765481263743876666176845785311595578738869881005598134098610854400125085169691796918746395208915317903672570325615534190659420572068918918025371015698391112653576218466298456910251119286065725056395915445895546454666613207745604602942424639952001175081747224515212156118148669778714657956486369397735678383068572360551688271445473443950005892360007745798464849277084132305934931940645366376677197482502913348952127838760232828824431728105114193185820540922580370604032534374700721262104249756362543456915721159689248958114974605836340321626364209999592213920657296940774057038523890354620973844081108751958287403045419198699922322082980677152542397791384487766667438350826300918425727626456399409562120304546497509286731248661073491302631571195789702434969576599953394327839391259573978727683226372927729556641317370785359756980033530144290901756753282235988620187206930558965208362692215727273174223187859611092434205098822944290974059503441519479555259270418535982658161059184100699923847094375684717728637305849137238762504040965986433005028328375423092683004225112340747843139589801631585099209290056492555707783982922717493304665352064265974714453064909024493698862419088288335423141584333763973813443522793667294500903653240799413046028273479393569531188104768427657772031650115028304946207923258448835983353438616075562838098702138459348460919939209598590538789614279512371519645791502323441890853412269764617864815438763105287266844116279904008319749229630960220924749256593456780039569430764803730272516808606711789125655271789660472434779561996883985463649155299235924296100684609202700706261633766709486446271684910047639155814503432642318199136880134112551812150882434805167648927061858408190339390076860090553041951018160688553257027473081781747535114335031391050190969622173449524974400616887314076886642336742384035180913929537120426444869521867113497623595684776085344841666649513503917169915984950901334861536476895332766640037701423096978458161880283134242892157448057470505688013827364956985948602473125114121678090239500028049335614991654535150623025037807800828026494368832857111294674218305209529960099699525466792738157134852585293308435176523381017822535401748099834619894573010792001979313090554076717439808798632985705884922014387779341023136821436101963425787050192259763808661771073972023369911716127046960414310917354438759895276156113263767395022796862204895894737348021121344520247127016559709441624238596943153357479717407890551717858948133495846223176233994438399964219304603056243238734382819963478495589170088553687522457778829697567830403615221647125847607681652510585122377897985790641492712282478557553912392321481315191344136838572236238403320139128027333556288048300300724079158660694757736250069778491391408325942639583333210063558379047180680321096656109427719837793057730276688470821211999905981851617314398829510226065166735213331311784323495571688767421485562249002468319375773226696468515638664653734829817363983930441163841902624982820039938099809936732468762333978962000007462438534113026188853450043083969789890347865059583250672536504434730618434500078760499827094126001112379952104237287120781733165380593777262369023494261120803293886262370176347256421499259212353976924488407874904067299900082833107558326865875800313217729612370593162358944366277198499286830438187090400232548159059549652093969279883461810592825465177774807476375736752244965134851863107999093286231467344937488235722791792831192144588162517884316170584819476499867545619786455982705378648780259514564525156445516942047923134700808857821271306754796565198684769095897113189973789989769986631167177062431494056563068706065717107626765270942228944100725733449200636898302825075524652435650152991003923361885963713143113281876578017087033230866252165117345482809277116408092332553704500775660809625573031980274165371325107641768196537052568552936015057012832713732737767410096326061146775685765525635639592932383055881854641955284665508399233330357839354420145614995048042706967838313007503750698101212999533700091050804177404667694990438994287584783741589202834531406630426009910896222802365582580611624256878833105994597521513618023514099422876443039714417583384870134794008007154664532678585225157079449339192698228433919142485329943498967751935101232233748437430452328097357412118815373623385654112429156128764366456357524418269598243683863098001375908606542483649963072238680039384773824135825201436847422558956386396263264539324699852492478639706666302334522298874465371464418993621280465187954535686644809211559129502572843781788220038927663910069710569318820550725472318168759909310328414132512983754579916224049712452940552734679646054587202947282062264659020617836194620357945270731835110379476678153194828755021247244505252133601067424463580655789982656368409799379903761010198050055527917917166440177441400199013634512549059619412975226047998563544933353340577955373035910224872412767400340665482475670689414708245380642784958603451842210118676538736803651418290003696307666355859158904106924446349178864366612507662740007759229282682223371891989422902820660563915800436497926418211426910935435086662340928725735820398575893764264963449886319303640699306550044070946220776743823604204337008513880584621640078485038984393462994969201363142178600892786370731847331500312176932502006791127943805543249224961875888704595566971011169784373313687710035875065872782584474221298819442351523989834949174222448472512472453147169192247308251325408335714736586628849239435942225542925967585295833967694254623648069660889895969478544218957957148200390345315827048889198590304736714560194625408096340720339462844157156357291920070815406759389363393001651606804345038970345098112269314756090546895356089163509542307525008210818666197296522017599112043214564055504788754149747509273869215721612344678004030553845105657402942559011246319997459826824276656549153124330048839963962058574182662807463930994531083120547108386575283088635824496194035579523656525584612594140836244997463580182479433544810187475090511876181599870387716717429913876028716844491916356639733601835812245205193261018757015650028097577822494413001266515130248185713161096605988692011109139207069913231491794839837191076167919991028915740997308858143437775416591452548679277140336665508052692095966809237868107530552291605320354677892075661663639436799476102121201991664140945754279225160164627186895735318716077550440867191905672078314903696261791513417490562718355724461810589816684073459136810552433167193430691708222928337676076460672736281309060559995001387356874759100616725209794598597430335263160762329269235281507221175419533617432933056583246941445736864070454792900216099780599413509893200950593349358815051313582424188755535973900390995017870080180640686481301188845322641692807600295937297742883947381162032305243689236964176623842611719742852048310783457777499099484968231567082524688205735690845530506276864615275628171842444254918909837792706426900263297161126565814288019657719056225920724217727726228358897490937768521378287244445277510388889216997742733235833704691000201253591533811226376564599093166865817424745179500621919399984484605738864302868805004657443268087558228510498717646857241149498919543156718051937438859847309955620733110756137981609005821832272103110923362746227294885036327887032314756219537911609113866475940697768201506566900172713651691196179489214034426615920703415171750840499292313995919558962543257086190449226679783311555175671577300259052987899683284079338968812163000296872651378433680128631084658085108403886275995832663553712437276805004046410051648940106701316323760544697649678670403079095608960103897926449676500790140542747381983738218510031475936247509577647254750746611817909285989175939948777435874993824587913883391724919657771909423989184738664056046192741134527284040629393791070903948462479034606062193077445914214740458370027716117485626357818847624423298311989835339361105557885990256766814412067764413488266146969109473070536296621358080241246852490839375290877800899621123416858331790023629585687489766118425491922001788844084163670359996166699201173464541382889384714276278086132600709213375745743102103533040094328417612196581162978947461894040267263386456445863860510529543253112144324488874410201308598177546983108907550808591374500933805284846782615554996604477521948962346207207805069476295968578777847043352592229624326737927807926196131702246398540819062965435299239932535388427602171719406860823661687595924308695815210165490674880555694605352467077555890897965922284470263723027753451935768522330389820540148920450435472085128840431455821792211114124451480472930354849897778403165990441222608319855079790609396014742434365500957473703878556174115483934160427704997016065593710169086300523667521899161238282106331851566254418718167753490157655862454892636047414096971660836514199537926457137252845536366041664122294986396509972353505012163672180945287102993866184565465416265144140159340290382601793937650093866617751398900700630476551376960371477551732658897086220884353748657038408118257492706918968407870529417682416426217075270443985948873144215285368980720412597201438068774724961993488069339369676844801604168082568506814102063646053351790062890845257409455872394737256516442340587973200436500176763387748534669301776410940791594277529144752839957309884478277495799302754568492899092041484959161506694950042483343840973847090987744648101455625953171393255762103719388093009032877073747595112445932549458858115983662532256513489242732278115901865636848202004829770617108648969131771145332307103273465304399079759714923875466130497642258523208679018221751338152639398654363205121098611730856180617954698442873189165465740403891239234190601041819958140458547377773409871572640503032698058672431353268427069539362818881988431472568850343094558387506152901890013123252091972307601606606042126264765365419728469122465978784423696047643488242106715412843238394584487237642445870779974320200261957985845969656968564970254314498387378567527530233754920833796799831114194419090864267305338660276088275063637595764621196235865839163597938644497768081833882911660248439430222290557299395693751168163783200137976262564245278099296347389336056562542335999559250506480023576390942128204500093809065071719300623071851434256059278413570349083912756652320761217923334950017579523994291402772515978077952971205286781136503187593310995113561528257041118986430337627162102660947516118525725416573527057173186903404874512120229141526776463169524505661196863939807549952631305410826349637107205737044712411429975057499402142982777632266699433869205139985301599077712096788239630248380004358675061580244325852195609103513167563214609509038677761493098390744549760796612538870799238804804476591350320752025781943340000015067258191311488040128693855825423779742674415827125307624210039668506374394635912507965055524020268411217340222038439197756720543155590416247312259137898433825575186541895030719045972218215818302835077921661902884730443046811414096528016626475144483816854038414162899567139467539121851363703956957759260464105853928113230595003346818333981647122893900629040649262733798799036201385920960820985999822826285059665153017069991557971278822404378831579279437440364205482777789276209169993534332180501586101521253233735442751600126242227445104033836389492983356130707083595646864809042079554713078774289854717198433962752321906050462104194729063084668640652205567301711306771262400249537012317279662931295974749447281448853955838294158046657693475176242512457259375065207708170739422563902048451844652666796394789956902331370646028001980291797372137237372008449157349718966020903772798444883596232464020137808800052591052920959926610287736809422285071412090913252194980241860532349639949442761641536110198439371451335517185144143201074959133863174218382338160626448657128447487159201980386267980623609598699670944921248772181868927592054031825265914454794573434590055591815658931680039239597660797479467463597272806282619682203302388141747751289102440946226130072512539578734368947983720684112726067229918375189454960609763657226115360436645510974414695917802527769102754556448772026379568008039269342040209837311128224546629617151165636557675848831003256769819532804846289681726744486378509471339319348370372390605523288358036382999519022687125677389072486302498933044334945935083035737673515702632054499954277355635461312633977047168058642765995918390791453068093269889991210059705241041498595047311286732284730560086994754291383514184720797945581861546104898432130297974275891402725128357982035667472829099735194165953097081156555437135340707378433096761201796109320248598445977454491339536016687147947821288718155478510664738194874000637923260970346649123456858026608206242251687828436462653156974230872977470747237661425735718577805887528677354958976024139538996293831720515049298066869680584030274890905142379264456656727327510982716995149569251230755455363217725315094293520791828066241536202673719019813775374670290963422846477603316608480572877091879326577536232867734035601049646278490960914153418357798422623688755954417119851714862598483272035203883446275523028024103252278003570489061761211410001042357912261393221319692317477834093951184527841259771620941910709905936465097510607971477248630671880316533217609980584031952191695229854744115688075360987969817631223295219708180701124567860925271729991825864867875838362384769298928760653556721324652446210222186093053613676318120665396134938648815996891435636999114982153266513130110754956763394469697513306287746908305373175768421177643447604789853429603418273026351637306616674793722505051532801695941238812718093195037290562586735643183591515100533374903771164258211709340137995032182916407524320487140169253552397471154881004272756675758764298289669037309473517741126864460928689555241239117125914510496180452072860550964737666569597809479501638034187240943626657303658075863006811683709452017615248541452367675252692383448535735114882744507100714464261138132033284221109549262435442631999620518318623113612109218549413973801482046453600154061082232694212185555695275685142026838012236990616654292161542539737946014160586340269733831831686808291434490604928239142374525670260242620988851872150931890934040383232866130554529690144547587072465070895062692250026726507131911738156262224264896300975120826441584541642639412430219980326201438223212113135094666920948452562020699154943223686556698659600982077349214955926161890211106612812464358632560678417869899479400267751233535433802630597612876384794184613319275943183881139750193290478875344697201550193938527022918669242647123443573557398758980769072114015531244681325467131487325247949769008717007232424185645655398860011827529489588250438969271087962104092776392478908014570739415117026603840707128501279044304815214284415951875766946900525411119064747809221620798663459982033497190574310424473254500885249627858660924344451793337784912526213146594772105160808775108632614117383210466863883979785791071394448449710457065669336185648417570721091604287119549595016917489371537187268284289910217236102884590475693997720285312393189127972136903916212587811334069104699395691433495625983897796386385294601931416082623133301122180294191617681520264897254688723717252442276524631353111570294287328283101256216538105731914998396444031744561689699893075996125162814531260503689842293507657232585335432114302125343383648098417631251809045817439782636818662642693760881896007435245975341550877534390039253194480835253448124401541715503555711693628237081924035326612459240855490961824911732205207600088025898188201097480791915345170575386154329545717347483305566984381059432445828303682474653226295921361221432889811766704182711499430781640419385154956680612976355112567562592332796637595797499092771130053322459799194185283998424025434084335432247728754787812765129753929992593286252620990732930454451370295495496629396720009482742425740799861863415795334957370848845310073331691735309933882236522766429743598491259694118437693580939812317432052896808186069734671741938551880144574349920695345817991594307379946139998394971780169895819705260666671561382108838633641694566662511723586082894850104210837222065806881387245589090045185694272212998548019803105794764772968273653870102966698675291489179257824391135419883211201123441614068953624824108406225699483515830091402893997066319001763349809877668220668557277896103700715114834945703066279098136738264071131998715830062989796781291234711603047425529137912690697285331845839146455947983742033690700117498572065338451849447992686999459569413592779571229037480788808800209940942855483459082594532086539945704101804068948855684455086076363946577462155790132224937037587830823292847180232130820224270876359270865881492657295836906985546245979892376010504079659828828666503323263584350620526282769150256464212218190341479720619680730793573807029841004920308355785117991060861335340647081822238409457513347308790729011555028543008907652782904864676834830614956047658998033977275893918722725085530730191695923959149798464126011533091156614610165899630064838891745972489755955618558071609517111031118152643953655237773786054066126193225998328157925361629236834910429662452832650265569236007958861916244279722472511105570442936197786182015449955307397259151750481440574433804818803077466959647384085087241060013145715901348094261594780645925215737043877975370793181508227458509853037385745343505153804909251626548192843416060242408216796786390667046774618951497411918373943878650152244093889861233487403614363007442359774904747566024400962679752724726777269767764784852262602772586064201128409354184259218923005870787653232739013326308396544012672333211763020940336687412257137426556848938598253244587266841858956981531192486057834630172383091643505335722840933041989958276700788190361601495888738174376153137417349458355604874628847844073035264022656947503009065639290893835428385342602220267310856058806564857599649721918140501945057644238771284204631534430841414090423486245823940598975973905600133411010611009637545692085055943920184402722949855918240689928178378054747885692182885321167814874309599380970624172911621646405978791574484221087746309517785147496319010356383219725059919601361785017626024101297940927949026050074914529935434349148565016903727647523207976728841919261959097829907406629966900976786579297214983169611402580007818772019043441599866388349446733923511358251757171819063061998676689551667706189630279152968010610343660730489152248153204789522174801622319614060221478083237678947727336044431725003578211665417123499552307900693724883860352793509464950788118115046059251297706262889079972868597304814349672018586337120442657554865774981192513135924884775177663648379601436736718933370705477891601560310445215320864439087678172871473853946408929560809531844440793272770251616111490407418260948713578252273378446983595929398789395079553039610167450846185060964825868293543627919776625753559913695033451080167415596099379821947297306263761747834785945056913322743446198319098778278260117313588428512215824078775575339606970661715654213879636725080668949755756831876719752507319485363445253255809390974039094423214884683846591915872305044883533550767630888755743577326337481954362373622692279997028875862216283613978292758976222184638769704066982149965004394317567852819934452115129218467162724759029537761194717729864438815349152981351301788138606639668867784970888325983870329898293899066487924551801980876477737106765764995410943464526193593848501375651348764312354784524221365008411569539093844487890557955865235108192726547565681167743496087265380250020209754675088165101181701090450783626440391683948354248091753740897369457446517515712372649724175798649004294426100464750522326109465596835756161590437946678501765998592630077912214667325188481267632748887787674504972403103168682141611114014090605473937996628528508133629761354977198636969885815064776902486622585760372297855511136747135958554969469500135113475771080438957330477316369744464167073590975288144169828764809305036141561363659123411650297632766684142244691517473508924684393546292859245390036416081684480877446897708480748361143904350768853931690624255005772595639316230400461250421823831110788831298741068894292379414602194346398512373134345086458176482642161588540131577774545588984124909411521693737750687351392070210471951833997382671953059775042202225114213059656263856856880689632627135032919888682448383517195974620276313380029703749917395536505129190655960281462475412245637499116111073434152050741946000906364676397717292857559430586959423096594826761629523566071558677006874983056308869092898877146579569866237615615480970068350364226799351307206609893266844054233463279500965436271884082422182912017636802708747200398259815645116896344083334963710062122866687836188957988763481103247868586171426681676583745991656346728475561797323522744788863273384052211575723969053844254363545502883273452467974676221113704606780262427768117841693980897528591844952798258778858059481308876063209717799603655911455624338204882061806969250822061721367031168070234635518778570006983542494919175720476798154561085000205811941346625547170405583714896660485348990546885178284717194399044667741663766331812912785851115281367017231146971859454515855279122526942335478531429956665422505981215481507476774527949968593242747163703028953612970096097175171530417078847841854102294954476760491219368767300571026445136848195390372213302376466256913884610589290914749619773312602066416833442024220000907930122739038021100056127623112515145272162186899816409499460754822059503566800819385189205756365547382004946426096682164701401072673507248110016872832829750361029448782002005649876315520675350481318292707251575919483769738812890269760363091830105430528062806833892325834869114957204393807633365479420623417956425076420496724690035086053685765608903941033621701883540340159382579077493932758778041407859782537511625591577807574982124385971248534568359451162449313763176120125020984897018162366547464068111070618717517950589385202761544335536540052040778924054208490545947147760941999426121306193154580194573698553069360221101418585212229702292546755397519608827859856289991765952200372877430022656305577923040070091820980433521423718478775131892003048011157202453513536213938077460979324155802733062083042779583935632356476342295430523286706446833420357819558946846507138643613101569294489362408048266413019238057815264396588221171334032181450898912315743395175156594410035520365675700615225391726852246160378684882470238726970380903545916317535297483487725122800363137049731541461881409301966868737476891591878694981984163884492912297578776923960412817646210696434949973906925584134443652115885106676807126019663947100259252729608441596276725026692690637640956239387482866773967050823180353274821860655215041025052864954034461373486977224976097302751036934187317988398974948082833387555843056519477490459791847371202660258686626320207805280877666807251695314186095852853847555091120652061799939433751670003895028234385255102487865108757899950588949614465693701955424137295044144701157747110746298751008136105482692557372603915667667829192084759122774333714001223817437248724591584490015350417099805605889778379046013231514576369836631679459355044922219687017155606929747115883683704082245516565756482182918104850666345862466444582172589517947813534676065105983735580279125819493061473798801731835483970726921804421370572463546385931041764465290763290013139365217200336714838337806431050565655998939861828020722846104525320033882301119119732264119118245610079693009950269556849888064520127317443975477945366494282092854962562272964284494162445995702061098445368252020185337570544516468915895709430030967405034160673057879483138219280811384189885340911730706552219204235560644785142046080181379049887493790186092806519808768026388749448035777345605596047036229319758701971652005093979835588431915706123959751755360312713391608069497832126265318907290977236660187313413535144079376942180021032174660712623648956073085356680216738747568196087253162365440660970401065021603175008797235303037035996612498995876294152346236199511427418138610127854530837251056850429447833913727117723472850593621410134130280994415635338529419699160961319167769053345886916268411617920520043193227819658522863452236031517399404314851464819940856995519178981856481879205791834602755301586132488147341265211442838853823876107990968944401230349205118550798096237070801465275469377022008505950015438469208352258406311255049326882901398796899730562233104122725479389515387760629039506610924644457383786199857326033741459243248060998534186775383344129131094468599078379082242768949911873359857179739015557973344197042921864694222950998389341137226533539689553935643257666791184412342772305474390271548015640542627444299995786578461136462555155473840154673793058582945456910696112940507806305424221533429107916090316084181874588756510254497732647239138821908417581267110177718541465186120301229293072800079925794383317017960296412694918143112105901796169529131886154451812750556894871910544596409456631608244872345874821930388801188826873728554375872237847477305577896392820891107719563488034315128518906367639259324398249678191449461910687808834139174267659173899271941371314339200275829374929444964523672884676870176661096660300672547982227932123539489668645620228654090229991351124724403752938174989114531670078368600171962332444499265037393434220728130184227266618419429626938734002216439289755788627603816011862194765727496125409737676020413704113396622348489316087723887375001121678531681785894304691057799701159560070828922687763210358163649595858637488445749959140886598101740400961449065837448969941039646711304710320473855879102593170774565614029652918233332137595375038309589554264184193092000220122477797098836579458392128210395447935746354631143720997851750722503508355500033849433143652454603429587024726771380580560634407217006780379567290384858838296852803038363075658255132104322516130173158947754879567204040579022498612468928634550148262204581806390340819696988901525606436734851529066209082412675071801200204807363396248195190198311032634311868715069450502919504100861204005882994417910609096252806838877424781195936984086678921401676480580438455682149823495390835736484488864789006681365836464939709646977249293301500199025714767102629661043969883686430621720749096205580985189207973751606286419435623709659230143584470602721112683682720832053092478189196415635099535696734072587826109417482794180882765427073141788210333469358990339082393695405693821875078134528177521509908864218886508492003591322395297658014180741491187145077839608810739923466736695475095371544368219812696782728646771496157387822816331171403401471481034411442695519475191608765422294348614952982878132186835637848558024262755802738998030929361348793699293957027948335535934224049709286706769379186748347394375654424213857000909253933248123075431761554621655996907276103561899127724516202612788131290082977038551171884053208060707835429100719302770266840786631037479071544829315790748723383966868099273284658833234935120957504528239243884378819605331391921246913541811227899666527108455799393056287491871185064168726348284220466367180943449973374920218882207524923942207351162491778867017066111168945154220269532946411044560201998760201548232058818798340247898880379980716857615365200721474012055120448627500280008582002004470221669220439202484629982967552739144556810524677565552605232992802744094824865870830759407966839381794759852294983187702997330783749151808888435260665267943573264732135052152572002137705012119593456219114363902309701377178370103433844394510556709698070555869658799211434740064303011244573777089215944885517765089279269944646546214821081515051019216785533379915594494079963345891140312552893063425290689804104241090803070267931788037138918049136423406599396340632576234279383831338704566941635878601045348916850146935824146515106315024595715637198943668772283145470139679834158745370300320782993682352187345822983327309791895093425466558413887946681932632355711555251313140390590672041647141712097354067871449285374912110690422579043210268514366499617747609330468683903076807471938833591250956096935426835850959844201730312604466032509776863532919108241199503088318071756271216575051100868525493722158009742877961582774705934140738797001774083864039599718788115993631555636194782458186968759716963229633812375692903459328073058269678924737973956085936023955631628594062210689252948239269391804884243380789523186155490336115194129232757891007072582655304501830581864339334209325166751214990645790703432336998885466559277710900875464454587882169533144165007654431655481912553743332790367399393330241071497557101808159077333234136645611181792310963452877773768535646495515732149289673749556718320616758229518554637171143939450089497473930916114401582932647705017446425508557146762435350945186730545053535453837503971332048672771352092845411576231251890460730761640937399130852854091172859537997388246918889925481379211649101853739716173545597405373139133247147025823672991227916484295333729639729302121265091543293191004058685448831226001489292877834197793817900388275606265841869323739315533142855221216945502702326381894058780548096764103436348741876696868872364766442014987046684693878785427854313284550529273438993516702146342845598408638888332904466485136810428672204924045517903063121921737084347901102712092323765829461427669864551720972441184623120762127557434926658220942459920985154381257893964015826280975146759534486779376008057567592415519422376281187408399072097188975115010419231049489752156125642808494655544961664528362574492339789161371940352798589972732016952478721725730979269293841518795542652933816876428568765612660566504404732954825010008138576464189656482369414669184250760697663211164632251091158488494021232609261593589241388401815049748940296188822654509830120997564970725552097575062335373387647539598934671269805455145381945911335613016318067820045802649013582774021677233000952533323665389130596227715056317378137643789519675647815652667338691412891091480170927672086100314530885470711787073273008529198649526486250126720266510191001704362152059828909494513709788549667536209920251144061120175092187044338598863480598017060512903537452619891638694417963295410648340413299127112590494876589733641013465606948006653264660880271242357019724943288064774471418341718921224030795532230010611189932843997926509519318513335811296500866691512079840907874288946552331559327466820160084279240038729523765638050968088009449936065143939815495155500457831947987156220112843266408702656606152150920989635252862428459810212066248983153682370736463237849009712464702904168294040088561834925673968362197465763132058751929518351910780968997486542281843938068426374068101053088873022030896782775396839730245972051150858667345392395556676937523360009718860683419950498128603815771521934181636515980603696389202629538469252115996608082464917876496552706353801489555508407154038327991381069555770879955947386735566682138657603546973990356403833747941788342637177769738511721299234965097277444737606970140154345385265889295733580831850928375562154876592557393685760703290273398676039220669477262919386449013075059016645423125427136411282649055636939704909455195630383819956495113867084180783058502783254522285422189751494213243944075702910392383918668531724929166790906480846119081910999173090438016830860620944574946578907242284586035733799337092138324258009315007873149044683188024966064913893922068987214635825119941585928537816405616881104938292866164835630506061151898884468864839366229352466612239463023014778171982809650120973060286168883760988232596819986022290755718017816255829680112352048679397560063160592447529430657036621574647194484388183523807439135381448296667456915919304488269805500335080869020522209164356230647877047807097661890705030491874812740820308424190921600836481479264030764785911874262618887130160426318365825432669216182349017984889650496717297232323137321168311252867947952062979616456338080493815635322891089892236826824305483442750445873358566881886945726408851018500306011702133805123068498802497558647015527728585409687100354015356406675733457562824005795816666547050853193895900270038986686473577285470235666992892349945984687206502932861006085592834423850863417976254603951500140762971912676069472577749561007998361671152997975805658230547829434999905621735856900281240534052953273321175248569518924103425848902894652573353618910768732942109227752244768932053159244823079678528693339709562169546427234686864031018716851420931106936530427764873872369623451273260941017550908359100523627566711190213619600153420214024841465637874752103232319503640040927195219064685633574222212057749470943503191461803972965081983838770392878571448117389274198821879645615328456415839993140260975850776493083199033157400936384553499338299035559014767107054837725403760373950581161141498034541248722330314610210646309815076483706534252059630882124180785105171025145041674978024197137355295913978276613227429662475514644218720841081798052714221586366563914817338287005705766409772911106483593282574959569798165680864917121162599040028670342788135312334762643970370939837903033039448634233864907926338931324000597420716748806920349531775790368009504778738058036562026754222032847154626885374340430203955573393893991151000078779968493635769090790468972729522528448838172266107281541176807627147517333837353985420292617452200928350511719041480639583082786776892056729108241651092817434829081758966529716802413558545351559567528704303839297117348128699417704175415444068226839670285849394257032229361395803953308800407443724217785063449936624544478736787848949048408394894463258120659415359068507363001871871211512449016227462334606283807871351784855886212608152568300653561148964151984688956768490445757733691468793646154915097355748228605296705433399772368735370345829270199116825837344281272683813120847484593099060382987637543097752202761175851104241693610700810019266088685764124721536919615853175806242464162196337538602217965082127621146078722951119107148977944143025831787940631921506867695310522301070356071258138984297561087080139489904656397887618470003127454305114298820307637623114490186364197510089753362055173119768644872713158073029393193097799484379511135987195005201140240238944110630087963418636789275032234147906573424695742478191079345625394472486888819390410899617492873022237681044124781583718939106362987088615394359169447178808570896114424758057896407247211262187253107676224958568818936406633586697561234521706238323238949616511021922746062682729572100369636064870334793880679059249924705003429380373696678360770318672241607794347812012461252714359724806054711573311677878870103517730244751563655483097135930508579288656212342472280957297116750429388143580089434742716578576608802732753762700640692787530370427531738997957487997543931603827272136919902681503243223818611775518573348155018888572059457229984414466753397204659599611024900457770466904710572189189498448652141348188240681564228964984313576325576439899968144710161594139710566588544466435963226863892325497791043240454238170325657035836737475847322574278302545783310079917403963162102287316017559752697021668919038723980040388772797270182512462055570712016585828650290690565633968193163285626775090316296378324316970589236606740311982645066287844893274634014106729253247897038375065374813553358142146973662350071046014129259182435967079298392334275727329330868761301617252803223834981033917072370983067017463401551492008708259832986496314744795992032998964225725195418813589068480847862156738876946052949110979501708429936538173459253469993496729872273701836933245359118625064509089424066159937505371298227447218564029283469712033256067891258920815523326432372028646579564709223932195312292888515047589694714585120363472474401668657048841522578085407742901592223252290301089629854391275178558257888188518395307345251364466750130950045267308680269152150507384661020187589562965429300685821061887949887933708660263058989580507207831076636586934483205800170666472204359512397598360747071427727868128174336634727713412463050166006445682265595984031050087905916185536384209974213214859556529221413141476239779972220219698218185034957577904509252075007200097631317635730551290550947713040192932990277799059996642986895515427219898140528642217433058139683568842808008698332162476864824853204437544856898959815996971948999922016717504216078404587957315940011443994641445603170118824967137004176164101424203602343169755297933799173075929879211757949265131686063720051719255059332177238262297031464711020273346747692626983941249960511071972791426449518362511724199619323438184963857395524144301024658435266899339488789866667547481580826712171890923588772024091588557351505503161281396847586629304049926709129424272860696840222167372820641800016593149757200122171944900975175098148083292253917230309920872888888793925128880609150358221943394554633652427413147948672636473217087644664374725599153300783853145979186163307148374052516008458519761636461641762967037618115749519386326952759984428830156220598446050120826725548011757376591036406311531980765776866805826994958646275269810939689358153711223791263715495038072859312809474933562129981674136352020487173777871974884494543353137538378262508913805163791582798203516010632758826464787176491111697655108762715103197176309156778364607599584452044450814396615563748470545560830802012109610413268740099158197699020195880684902116417470178246765349452823366868773241089774759266069509561355561310261231041816102266046116547310236474157188550271998707266478158571015255801233444877157713057126536494841419420867606654462871638884673616078579196832880102309098515559636141562900256135022170946843353933557918376909975781573561263812811610584841836969976399401169035630666064995637436501111261438015257632622575690011163135492518216646623626318275452655732226950383189210134155701435255441383307764174619359448373007352581237198557799001920130270210579553085039148304095429570183119711484018162812622763437694110154932686026739816569734881007645031256902258199896587043756140143521106854409235584540761462221144348206553836763042913791922483739330721390999530163924465140367862586757425162884837858422842005432659031075689922366924185612176670747882925632458997783201304834968162866507663083752626862450454996383149033068311522859713331719951300704339542288189732328696133866296368979700876075937952020218062088324153165023620168643927988641226354864399810228920848630731864654541583781917644139864677482281684591489633555762595536832499301493995052923774239962554027624792774362190204108162957366059501677161973767657356320651219018092175541847389328426378182816246474429175449869237595847715457119659069389520069127774320471545107875743650069915406842100668695817786515644478683006245594844931424136913250065772027952502098307791385986646330587364365734889207538917052667032999872587873586066574368319403520590206822571558753916972748441709166941783124482959448091252535324187064254236911688600175695140120677192444799476409297424057686399056433198268966395240964562495604427226316761538019473778769721393569712708953965115843908654092879917550803370013582972796559232866874911558402787676638887427102772961132811025890669614751667021967379820167241701350971231882901075150304672437749241663743180365970721714730904686228123219855142425423005629622127715752523675394704389725679609456000265411104882850637790386416430435889293172507621007279012994416297546895139984362797600074985782498748395735621821945075835522023894712594197523262565985190181559650072458253905281622070027651522514208608693753070919881890898886344295303036552565661847452839085630067246764106601523301525059817399155755233799017503957570311391563018938375187745070732950825473962782770282127940459174488131923411587384844532429376601732500723528559711744028263653690023935523226361947832365209576229007116001964066666827447639546899671493600994136415113526801468087379259711474520709639400859054620510863282512387707086430261619251088607362419611421632642813163624701066293192818151554862780111011574809060213014555235977103944138338450685089082426115083554655638840702813398240103364247836374819023449098719591772662408573683890686809832302959401135328529233477642061340843845061801026554845394928400807351837668969355646066602829611658930615631126230034482272227383343817371739432249567346961054949165369949043577395257425969203611695690683897086840091065452394643087325314150058608103851394050747143942930218440062961856270386609844224911553658942517203356737051208642673395400848899354205789109305078948904499304625239911600406491187789821063491759519104726386010380083228731955769010420713335338459334298846567710237656886656363803606295473617553862795436564136511774231253393670091713262112766701489626856916747185139562003641240701446803066462356126397897103129382438464854086551839466328944832316380739756619100501640856048661439496641043095275637511493006411412424047899515015870876372553955339560343274103048598065950392489393102110199956117652990373559941047885598971012972083254164952842798708453898125536453105770542879640868424853378032671641710531526039714139076924853907342394897106019704993112466575520131335952032221657508037332906698503584340487102477048581521106717497294392787165783313829989166276811531119516533334089130107994319883921840163179184881735967089763097251639366053312511388193634768721292260023891962581987602526934835571296807977697205563310074762291758547005826123309867845964907926133461078891442997282157467491083533297138994970095028680140505876496348756389794245909892600401987751039146643407504078623281145168926923772614684595531523135824149977194860901458661499710857269409306303194718707053287648243636220772507119724529830531824526334368027757948888133583629320656430205704891155077174102344501624024854705961045412388680080254942612169359187797578051240334712302224534222989358714560697161927698570890617743071589054856611216115792450659243095257849169145189645273462134717535218533010524937280696643430669725925157206196769381277337681573484128485176276386828274360441757363347248131387241297399384189234134431183357281678035057484214597609741888518506715759236350388671326103400311026118039528310237218025219103268536341894343881910037029968058861540825752389409509715338901201846443849097277188679131247925418098268079708430403945116923162816286988917723375498021138218169479054129256314447282165640306435061061738684128752214773402500751732518914263301464929317742042557933202343265624538058515654343755765190913922129051777982614750266005740195605990294352088278902909230113716493633054755098171650663682809543442713520572431028103753868695700341963637910841004300210515917166062221407260303370411688045044374425770478797619201642468768539314727129293446841603345909199200174624462705388551149867864188889868598238091758946144050063059760717482601710337788139902107590098465535057386509400456279938205810541421912997880232990496552741220703496770370946315649831282673047968225319895843203603279360741831165086144877751951679586765573777464556758802223960998565598801742842033984936907961811908639584332348730569321792118696279447279934123786385972912569789198853697870453234342326351046751192107811611289489996592312512892739753862780334254928596579768871931496965340403523737295270502028110264187698790994943412169087817476033867711011015373383083167478838602221993498599460026395120348965868579206318399415452313977940390596982301279207266657374351370976825658142537436056172906472963271896876942484165288420649800056891836272168592395630361201783063042494238573558295877775913397999178015385293973440807955481755900013817930672674226728508363309704891388222879024337085052616351529292392341259010181722588158568029222248289704453768625807317893263370192724357138313946534936321306459599814606830560887152442193486078504164084365674355205956602422153060574768251817397988288745771409769163553585000948441731091867022989020993477329343408661978134404340587258762235614528280407130553645558306950281144489056026152971857758469570626303925271266843021777388939610542149883522247548129033923195289768355803848579152775973401947358787207288003929583554404254128684171620484524438323415481034442732589728938996634949850641629464847992124697231756844551723626797629612146667140793493309871903857837002747574426713597543149359480338064676988531079972484301169177447506071299739965159665837465077815635302974402157665679882129123866843633711678123892041678743572904599625677454048554612161686199866034224096283992320061816571030698433079453156033090469319449246011046412510067516189314205920872858174282520791669836446778668772679477782596014526767293388081473220027440290492191779638568237870368013778154263560662581402868015043434551611287549456879572506193031591362895659106095691753257240729968514497141283367357717611998444360321446405186907798703188478945410955251584553408078135991181185241894097672286609624850623190904031709105536704828230202721942326866050502707012280932593772522720951272820310495031937717910712373240733530126471510318831587879493624170271288801560894209763023870701713378881488478697061889342040593368209531984210885741902095316228655124784052512732830495001082875485906933736678466904105504156533127338316017128486571160029499252814187493028868572339704524941824284967139336624519156577189795498326406646438247642095272956629024378175366365167641358904845019627444695014031726140260626576641351883368818875295201674999844787738942454737782234508317830029774396049134765679195137349435624471527590993901880924953169775741538357112789278335723711123401932424499631061254007289767077069438976435508490802716867031793420125895313032720943841363239320364143762653113570427799322151685624705289689867994236993517447937190770722275110425380892317984152471666390365148287356503377791867138365691758157361582146803672063412970675197094443534409867203772964977770425330686731851466879957833958292959802039512601279489047432201833771500965661998542600274720289867436928978632846205262797918580781684880816513341565374708308055419165332233162018962589819319046687106802108630282595845845811702936108055695640153543938892640559101117299674816226386486498678291542902342917598376204928369017392034563841408495125115691675706599067613330540589231640019645046748090565232957877060342688495910785022790073548414480961837479685276805617783683231957245714678059337400917047371310544743035253174249640960329654298879837445014511164954130364015524523772692597221224217031750846825244935601986588544679654476897540732528029388634258626448610329985050736952377870124947432179011158836741327832851705843356394551032301401859941314298779297706640255215912650333911668467194627835104406966267537262944161358582189799272370944107272932671344167683789568280913352229991881795726869457924688416514769256420058127040089996716019319810186028735488976823777794991081073955099295494413594776506121320453402415135548797017920110193675911039092504478633845323841815207419064802961915302653626155851043872038389585105864974051383866862165231423250355151967810694698512444619328798475887315791152504099113305282294271427851101259337436525699014284091329834316898752728552713344165828021980630951904578204036540932125846205516235146671188430950626145599721783982753686291154974007049494232656139587503764157594292858368102583913971287578754703090927915687096340448047225612761621099101130266280390127636959957274347072911095037537540632837435005042416503964870842880332578041199438011658946229538931412006646064401987624663459531739529249293298444743308792737157266349149869506980250029727036601886472302497422779267507164231113966264799385469308057532241806230451834081864711979345930017821010529879828850794588592061647439924771787460938763086944864262290339900689261512169151976479912009237219698223949610535914620436246726684813874219170718679017010260848388559975269003584120175389475878066373133559526686914517360995656323340220290828450147138467183299784922818932257838340599826855147945536804805245949826032451817604966779038784254137446869211902841026088406713505594517671241771251295582296325651148807700904259182575034946828779903157616348229536912389316028657678436967144185200898024440152533185137472031517297477551258541237698478585928697798837715533385483887206604328667306995599471519650949374745569202295308863324236328552428835475622861528785701682015840832699668879546936440050717968492674534156957493371199487792792007590579989572011574081692671213974979049955050571295951955093708466047603027239007109042160513033058676401627560853979506929701423775018560314428172043644802050411417430089281788516135400974544470500648800714389552577019767169772466838487874111695398923966054575044398873523540316697786081238685657964461753119025286344197228654271420342034320559671265816161619169858387148510508937076335560428755140443484476226758222658427362872435700255268852415417128064254329854249912316484027357513876414043110635961372657341038546916524453136005543445376370644014093620215626010105468297584461415794616471299514448922361201693125375428956755950686597540273219435549703515513382672745262120575523974480452698140604074590856546320879947908590536642059515835159879357155371887442123543435358982332934843828623086736498249680372922355439424131229693710810251076965267983292956938294598793194488428083681182464501188949681255401397259012202585204671848322390440521416434565386241935827291729243104213860359700366526060515523982933247865047598993835856168870195667863480101768226670371612049444680224788592313282168770397627011060242764587579225763814942939492549526773816772003001300978687362978240939647392749235311123879982720487263534702490111850229522315254321539182102163746094251724128729809729956063793837882414100201835273442957078436827450125982640293723169782823257401869397680529440014763578076914960086693481360886725530439483284752718681158604641334627074057706773455936734370326393015587657797382455424125490137675530127763107967179632789498310576586113638041999468046815109753925192963241522588586074958094194193099366021606829780323591206671452322919429302554706082297973590843430633591188065057044186220831300380906186049695681041831598403329389591730468464443398450362680452371521263768575253284174873915885716124834932082284782571372051216865999532068011214784018229591935977594414077474459602204029842811601532006092095067001073847821563826964012115026043911003012564667947202814271835631306540807584912381049227336829983390543941404137512951175925220962090839769693319414785370746756610544193158960955686475953409280605280843064283264824655574821632007318645191272507974554187099582971384951599160870057242579934956269764613457085164688681109791945051049847451521541237399733393652783652332082173344693038297824948193262990222372548070235486202471709761682842289070625925152849733033622677965981296441815330144888158695830515159802101119074565733054740437005388223797723124796145247425919034737297044788126636441937393426120178445874565960593586227246356736309435813263991899971508214764582141116537923730335237546098954217938585799436351181578710153058704560305934164401633199378532859569997379266383564748900168575750836718738295806713986933504189401587878965342987096800208190545238124967029261231134461911684383728859401720575989006482640361493850687306410119503488368254879449136791546695784453081136990116799642639150660076804943452872419141123193491823905358770540998065187152558530349716777231860855165634472216324423726241426563975701325706582706433387656947219248567358615200298844199675232621999638827651987670985582059279264796638094419152498612124189143565381415117016668794804553909252775646642385395302464269491796091581345165667739858410098525362469003724304184268484001813028821462279950432998522005542280285594489784656345557569237046643147799765617245518143033561622401717024261382348875634173344493325032155069748229297248114720461848534982732445185351251993793979971637806652453818397878176404697895460038143103836124744621566309177464300466673724008009185867627359086400690476423234510867936111000888332819343882891143871368112297228903669728746388647333474400642578750904748165879894552833650321354219422610264180564410164555478152740451310059571645323296317698510112944517784765527582456464168535669817186900581883357603795688628739870358028716774454553263431616948025279276233087446647678879520361344066537405635517209828629528116627411854927849659036238851846834051537704352188819617158316650651381037673871157382536009846820528092186393293907624912681148638026379317592183079093816842037630309129415506126022347216264248947677885517693074317280565262737857039657408814645815356652648067420040697557989743575194442063694017765553758443326224704274766270620425175446508243993307407054448450334997151924197733310593139009110356552005348201898294142230038752983109905603075695067222296132943822694581063982955173941314724027675572549180907639951851533406725453877357594177755343104185872125188389038161538707610014710161233656938845628136708922114824255374391367325660213668353135388021851903926144135858113321021805015858681669595057283788409551786734194914349383403235897865261136802348065733566235399202768353065488980779323450838917366705344556809103738962697647490031758214768952871425958065637959599753592133599831803739789280043116006550948129738614355467343073349599862077312080352037969189082986091502972459703323461609621070370420727895965473942566162932866768195167973187296903886954020596528461755781224202674215208626127248130472951649266365415653405421938473748663541553189529860782224865178662365174692717434181531277283185781212155670385727000527215773006325853627435129821776455280862227870032388894515125402079036053517359356040419989391133921955574156267625778635043121494100984034005535205181337434551771374497249544224857154640882187896892038719444908830846511368099804306692100121166453513775848227850064272379510639689154280756425492984373852775409089087215475426723201826537718543194256843767596649659872330225002911206480517794421068208179538800208777775992881225042249733697187816614888838340899432954659814236096459903105769883755138645332756267264703157481523599742325276848027589574223764191814568117826348733989656080938476844687603500877884104845385553476889483374351979434648284069122543414879508614637219296865791464581259408422680548511506584297557804254074184983453749308315251549168999045459981617178695489413582706652562976316046734152450461689265926219272774696391494154073700244803766581075440940253891110734257596524776205450949115991384213998343640178340916593967901980244714544878583598034435814270532140575642003882483830666883733888375182666979682943290318328215346254419976761957332822163143833671687844543202993761220358722005368847619856310870352384609535234074078713405772833073705170541067390434740181115659444427108993096998399790601832237241170826528684859914478205317077550194338190940629164550918221818192414412736303197713371532490955164115123419070070308481586854260263457551754726886726557385400149435177286502692160910705836500188822936582152743433178973369456792086828737761009957114327952334202334736792650276361289134851019221509500677950592831206455933227368253230299202643213301753139063631718153475071781481489296229655381046577529478999157514963128347487913508616214215601308664489683825891908038758620177384928927286361532526478466965880493396510733662821795750421272398026806617159926668602528365610872166228080310726313293208517981635846752503779633815096698376815098862498031517704295436512646212480062719666852964101194782490707261249761994464526380293011210796358609571523003171270003766754954513321298494571650705561392678939224741620632365574372307245876949937387919627901284648837009885755283488061147611324963481072257425975592900840514181296364079724008799117987659084370750311075335183100996453498559219383878414881603240631538163006941303381942679881535366185928541860149668194253976176298283562597976260363537520212129954367552094188696020289135930643804212868777604476840155491771926884589748641032645514264382290432406750117767538469039436876243081233417841083115161514275972504238004616712358231981205267979343053210457204947177895386468717127465914439120423322697497591809279359483285402448731066329546786694939002975545081041321727824639598901383885627690390341767450670563919333677419466899852337905628757354633988628722417021223866566151860669593267550406718129333224782981416394263656093490970630436423602834524747207209851433997351877876003875532983670696590626994188113603426990612955421839586121090804264656787840545867334375249115573514968848660832747423973827045190824933516660177763576126718222296551035547878312938380458138822064039810480597212806129743715801142282921744209546071040314055178973648356661888257520337247174316696453042630356231065794995544601750482038069981322813301979666388282474508376365620009035387260325992823889729765394722212107255579626770168546722425945694328077190141245646141950076977553161077656787991392451435501027746664162217625802254367390327146480603573133019903579506240716570734463728048365730608033525220255312948931321449236121193145028343753787883011750407886150483552480789646625720044219899060936216743333527792489985291539629366845117969135555031826635662590300195591836312301348201344231555615896452922089796284230498963130098612142857046134254858812822254408980562464572955724663892330922033830592014847027612303844423985653080851667368993040530571439625059015004852316669680980515802993534122043776508766408508186066069185958015991252300858100308061869311336074636025807137771965853710478533388621164365849843216273921276714776379175132293195086952357336709960532491118915297806804403345306627536755423760462438498377987038510586196044679720088046099838407125115654959147532983036859183571035036118603453792863100099073251566653486208551239868804216082284498612452148668363764757267221100386811845661641932248444481900772990986375792755336434436465228162427129760799306963538455828516613858868897344453732139997904650816573018376137563033130682003564361419480475562417133166832017254914276605272242853816297907675472178724701100895474612428277436836200447280065655173444769499037443617377931795790008481567090862681479116577473270222758385726869512691620938576627881521446717192940806102671655495122540662597181844588948061881009155937889670391584508307918626665385916416434189211855863396618004887665601472256187892789515403140263163592799792767928896839281380753639761461143926591973643532334022408531697268550432586795484152847164309016422725677105511147647370701288332392660518139717000123343179921345542419107108209608763866025162149390097059586773683321104440925010799952614173469183953471586590344637062859028923690800262284697535537233763191718735124131369659092371167252331602221148225484567197880092652465642480561164264020988096481897361293084785021235358633208727356830711583707739245542830388315320919353649722120851034845118853773800770658523921000813141392017423035864039776896340364722086196947521660706764139973358642368789304247817391374536499210563118112403780387008953806953147279630306763500806455814993584018547026869984929119087162445447754368893215569031058857901427724678730550504245144714432265118204521660311121692467378818930363711196081420737107706401243503161583989157390217947789144956354141825609026248746412475759142713656317983438872902800378463131717886992522477768381833719466579153079235968954388863542860720844124416377597248471420992257715449041829434238519010967413936047459580846404878468793960462234355420019102167361242065292841138737162221839154151517005871752088249086481832239174580556892128020519515408077876568903012078927246230781451088957608429333586928089351431312888013937686123344670336711060279555673640350263132514651287503560320340869143493054946689595098895996823887433429640357876484035993723416764859452523756669546534585489719897058996085262856382001112324264088292205153000797440618056695610479254268480571211122405037410776710354830102150107109520144269548832501511610860890150810072376447169736221002245450328652551508773856446504877920912706918149409680671779769788026443873744942436800559113868653594914673247576835704833074701352076076692459478530990538094915252867096330782284559229557255448894162269176933976237650877792594322834685690595782762383265900487244662041521076445720876322863000291828358945297986716429742277549641129902313649157049254035050183294110714469546129194669774138830179143493560650466481862394272345143354319388611378705716042827925700471671117851292964230895059206954828849412862992297739191369835692931361705052136691854726416289346564509602699401491125235005470949176775910332917463553294050348726153753060527269200843276041048705453837192783138592992515570940837344252282259131222983907310139904046698575483411069171283642236410940240712221781066457273186181518338104115421457037377297650495286055483580429936141888010330158351698265502490519777227359944608294522377282686809682059365697160311054643631256619303594538768213741461264808174637925841966195988039528136408486608276188850489571234747511712399715826402825549546135589805083985610600477197880447702299736874051702347326273706961200949515776469947703612757237266090751252560172595909080147930689873586176511762199264998075158833841948975205144597638741665531764016959980257012993827772276023716873174177509412047674913566330572398511481068312602847851196512964805668774947996576481223816292311147931195477485354607195078803605132259376943527926824370079972297169336814173301926481252858738990620640771288131293285403798007424168588908877088166200642773661742677648261117528761189923847195229254625271191847979185780316199825968562587234606478743056653790306947372699016006154992905076304298222308077870812413371841731518725984869021407279510972942945845979149264380232954598920460357147185802382730756942758702852634587106692357520124463795168769966887365526743097574734926519797891355924379859901194273226721576600420509128757468328282688671452697952859700501556982747771997141591660754057230961960474874661264818130017905977987348525077091880980009304842400767029834738627379474254885269723761175852484321351409722484639567808112215735278274594625208538411571381779571613718844211108173288317249456566079999265837437427446651038986388747939907815824138082724539500267318530145556981214525976544151116813890595253984130112309738301671307963852157627623314217237476508391465969931760892743750668797018688016457962144803002728849133230976638761710540714906131390940003862059804447169076739556485476445025609949985016824130110955124135773864439058571275717020455717260211357225514537913819965168226671977130006847123388668573230293713488899109501545440265303361166946290268227211498181835003542466462205864907924015140131512517568853796288891174683109427073408503376814665672817402554442816413352271055124014935881006334591616555700241096403336698096102518089719621792003960480780523191361426180685187535935252045799619441385034264652840670499475568867476546243024143485560573690301078077698478091586172042194371401602278335855300849000077755991607614314262548605109594494024488003041950438616545352448957880755470227661619083870503244221586730675505233713315712408804002047676455073530212557882691622595570943326246493410103019089656308291332142142789837825997391520721969049346796889150084278214843762851979115814198297784550252375977232372997439116339819755383578237805158111487250777243169235008676799642337326506689057400580263001481568531647744516665973352545644533875694593809636269382955567391317602200106231421040379332000297568086408852032427673074853640984636629434835173332848910246637933963094804674460668895028095999827549049566916921172029439145621823777275915268182735020098335569851386138848139388855703365367373057983746254048919058309854101690593804000123917478970789794800097195214682061792618237598634664546173813471362726452324181152401158296787030535018058400813581133401054971374771346750340552530843773165634063436043193056831556090680002377440386157059144204376760218437276606870001727398548432662135577565414249791389806079789447273706906768086984940990345044456740358957130851119252765897864297798453466126122419047834712837227854384132337741063242432306708469905315058509380086369284319382790343158878738361804914248069313807320314698539155251051740248110256033353839287920673102978323133962853792585593089955129432741274306490730432917511355912033835137304047655477705701693914670683640798710790227820038154228125767412203602537153592488789859289856736254958346836393874235550279700318481760463643679958185671718500066577769722251310207749939050140698909072360644037843706958374501820662549897641476407754948221376921595581145405316054434072046307361091031749896583870518073525449475740799895590445589878741963988847681768028660891254133938943174842504620177573935745198643829657830718941276975549269747910088282387940967809579716206293490104377522164760418017273415923413665800975612787918779019441076865545801034612569693529592425965135459117476078274013916807729321172540847554373976716658152515620223683912060986012562538491753669038147281603514550440290587817334532694512559932185810681558218048899890812949756736743097037058978084744625967299879126068161002442521662927582032458856377780019304835311961576847489342648075686830893350157696684748531372964101924474874577239836535709181343139103577956867401001248448695847893003710420841682607141934175608243452694169501162705666232897745620665322002021038620103205025766652916908691321572955488981576534960681842227020050411059930248501287929011755343513406746561793307549444102128974357797596263164292986764840693287855827538838187820703552180604898549839021730134807642716247721466416548359007941793632935946923639924052026338418397003843023573688987864473044589337024703714662134705534476250675636329996493346846378048033267913238264365061783093871240968263292272514789556316912188172500015990788700014546394572231108870270318061558582254721348996243991983113925104550946720834088335297458870201064618933410891328809065160285697244916333359760104487056158067113078200755446159713252908973434532818492039572532558174407812752790985989718777796130664028950981262576562893898474426835283898649951866517526022623497443090878054048958254551578483668347551477197919608934331710455957584921472666756084566115141758318146089383057896139108500562977104220423617766948546779857598807057002673713758594459685380156833166429598525407432025725237188647381736247083081700828197559128642002158354692187670198597300741662145719410106160869351308638088982111632628223759287444249812095236919421205815845776144303938750663452913833696125901853503335417860361970756055358790036050521576411143898560413741466857249913828656716744041579333022949643860550263685659881085104683632330455699917082983045827244727290125701925639227288630172232463718205781982050053248857120363564519461694651955167215509407789117006410037780909925922659963269876719007118641299981393440636713700568470801914944722839131381929364777783768740760405518222626289401436334183296889702615096663971889973000813919840540473640159978041781792403264803417551899204077592733964418415700572492542583267884028119057160926656826863052416516265941972076011441478904252048253853993134149734957168222556403204655353915097262534589616433393327521241380022438024172162522984168389354882257655218583342685138008193985480974468616737368517784220788003701091470431222020782352098485509632158470594687299143127483736487501780267604593644731099652922307494371349049852198642473349002162902495179391638670693022160598381196428089649961485790685939561879294837016084856479885510526076184058503208345385736593264747714864502301579750803703654510680344449850425587570482433109810471176995862211009448596667742997956224243242345480432737723123676184071330070661327507442151526313491186620691792049314123648584040255652461072269040267542473309929481890666581976316365305783401653154336433684419823603048997716090530885563576503756014201335914845094418232161824590340014339746477501206739206828489009307012579372073917598297569907166862344289527386633455856296985044143524646764966479241569124555467669520566193614228670811218084185920699460809346218438635363624127854407217029962186181057094751441770586197732390727145674101870955537586391850677166002723770895355490650648790447840651123552490453857551943054814129580791204871590532515895250137142487477979970180244943593390798846925828454708177276735479111342030115743587643978641630908137733760706428076603799365260173272558479429266572756753760081498307731786601257851216812625443217611099313330849288996576514024252254827299759086688381545969855037185981777110310803810588232417323122846688493061902411940577385599098496962441031931727582995278277878806416188454346398015961882077087987155175069146015742960868131670042881359977854735303835166123368864690385772079191705044321461923459427529434918050382650478122800712126983178251331259710642890241649381679397062634341290760360321247286765402335745186481675379591021533385640979394523668507401041868545356711067059584343500933484702280326869367739617915396427283328508539420070220127363128751884200830884068902377297282335026759530440082670833937357446884857672046795131794237886153349194647452445824114773290188728559122060872403671572196893764350702978078736594593019629036253966520561505631121390177163414825146963397542316354995453270073242444246281530412805663930649606578426162481414224046122233469850399047780413627628271081095087625193054965207826735137693213270647233064381640702433179630777573258725241325649376672498435852252835239247796267687407283375231487731810176998748016421304593684437726168994249677980193815470875075961792720260403625923027209355783826544588927579564687913195600662444388141263753014278002788593627490843741981694078861838073096844126736773618598288877708936731414961639682785120163916082360150470904609754704823085276240676974152612708062652696370271585025512561768338048736510696670087438294394854990082969594879514011566239023678599135950138870428770002239760176819978316901794190171653180439966280357708928810435017389635158477424918523705161596092223797240541265802793862693769299683349520538882552797636753416777839368506576455514226385828347534809235381519337238976311510281604054600299378411511062941234949759360327306905240335101262077732578548243571530069079351454318352243816939768319567069954044712016108178233181547825359158133920445362404669244999417794854534700265361370314947536604612710732452440172030175199266623734028125440458173522724623058621883468337157495127227674165391575506764750516519211655703058798136153396278601623820083558954483931893334854313646146381678089740027741206267667468282705062019451312169235908116146432432569800948211563834667977890866635558227173403801331871660207990716989956788048292597025620937638874662146080403993313685304574268462703071379457474441182981766899401423730021791405211655721693559360751893718475973157932857720439443774234861954219145912752160777246291951250304129157460680407885960585809311408650251386310944408220095278481988440779809146833989009710149097151127887140681543068637912015952538985883861021057144896916344180358846844207064210031141168789050019522237545975621490097041035833747759969436802639695946571736190496624301708388727471624864440041304379071853562729772951716698051878552800123800312657207489937667966210871294272221764507245285193737656743798847332316374789594298593015046246297435752112835729882603224474852434961532943999976050702721195030189809316939965148266879459555225486010571724585793640029443175348590864279452867091888780637208132080561461599127702467186924090621595343078399512672615741979572824951632726218126574911041636409847239232713100328936470386241530264551349282560724418085999394516268593803647654742178897220452484086849587069841881539787688541574864336881324057078764470567242625938774349420870090865538485156095418059344082960137338165286672745500736352829802524270051787505326537863092900022739745951511371263199673786051529783283181202811791939626943490922494966950813072379816979626069435640277583812773943160952361676926848369201091474357293340518992886248960350678650371010626962342878084940369972738859218353872695158212174482414615848494465011546758421124233946226758138265413705647128588701604436392853636875677241636598217689147995896219182635037433439520312673621224696598756666449251999756872286184850225892202191239361644318458938619805047563280342763328753929421722725609850147832010484330245023845162337643883558917348521750544377965483129175326697262959585638264659445718958436458326855044800472521385032663331835225132111793364073464934909860633692168494154426087010819598037928537391909694166900260697785362563028430418799688727060082695762291954732874412550921927738087821111558631189502697620386923139786786868454372144999490254537563947766676177522072270482639618641664501485051303333952599708731776580647221162634823445847165320979146198453563237466391494213907312698936550666052100843375002814042828343093339182522431676816678366580947078188585460036898222531132153776748093706763938989186219016211955187959180259275581273329146588577805993667987169579754909413565288684750899558968750999768324958420807350500444450492904457164618087566176516329974940261294405451743448214381068071988837768972727098946031626873699510669251201463067127070591346285530239766455291356196581645550413813028369866005914910375338813865471445338644759757001939740904564386178174706737134159695287625618910053547259255509856665944194798786006387131055640608892581629881571162120504839041090688513661575355264702731826230880412381348111922555144496457381307701877534173994073225816686608696959125349070414924159332965679351485744876609169775509909215270704826975187182041585561888950722763500572625077700773666200692955842427776851836279774746882295435974865615574117950271850925294642255499208693101911408108493740403863999161033979985680785891911664602119965454352778579013627824767602795160898922027479351573216049597098742135035490867034452002955562358698396445907813561261085288129851142590511805868286084132930533715471484142278745211865393155517747914055682782397900214695226916793564612699831661903886460525137924593896255068491231179387028600063968551792052197303973830110912612136129967845427669697354985788628732335906160230390646758987714108043827021403032048850232996798613219644432381427080390342455921186319126903831375631440654976572225810679672705454454796758876453562693191150970660754273148460531789151533541277509614702380579807515037674324169212474967157714371417874767912420566572587008457127419417809520409030622590851677293949383848024289860218437778630346649111265159520299212141951786444238129414367679148928969910220930412630298431671411486439622800397127562293544255491712462427827971362044098768474732539851585649306836705527763221334930770222886393659694437554249930749508728865272908252212905398694525746434602153239528695550023355059966653524221473220067630094111118103012787290878167517905527080565464797253989555685140739237815179095515080203715980652397446891037634354765582916675014359313102467986707553619639741077767802658065307842736063943079177213494583263229041320325212965198832588041744613303860575385699674446318894784064141465853867053204772376407028189729507619175300852741477801959373278484216520761632991565793869491608080026402173520034537018916594371388042654470629007990322464230804490647430502687770499398551498381840075410054774882243557122332840469620994103745458071437033786669631814720666652678707961179109600710595536933467067961780916763542777311912457314269487369360424880073159825539470809568562616446818223591797753358838362113775712057427191528108156739910975311992738553368089637401611943386881851811899636501762100298983263450320751655889280420508840359934477905998669029259466269974284483752483161051158755655152264381095241213733996991333955391945982771725686495681565536948688830123575603336559776844720520980461558908671890519747571990018415117015053836209351117735870405375743071786617721573475312813410651111065421201698095372223922789628718775372345772868251150057905842271572372326920095708415964009369428820334440837430764259094210994864536464964811834103787036142119479451216089054160294028727368249617300526647526810275598910702417374813312679914406696791599779774451463685925116804124420564112041080953025131295796040628613685722492574582840768019638030477603395336488781983611541382307744594417143185050100135637795775298201183903325433959850274891796465529570953431424479034098743238604917700667325987201821296534397392897838055700821325587602543304094534593260609575367909133111055530789121225829135291302223667145701052227218738482262336688739186290638166068875918649266668444178340346987913191628273909240237554085819193488830081298216253778325822815318870098972969828003271057537299649285650521410602926603796062067667683914028242233921078886564628063702441846860081915847134261571328404227954687096507180343810556989132923573097763573026524549069963058338519831073435434395227151550779949414460064943102306294997300527219472663335338266047089556165107864276455338034222825237644357113789766802972927356362790613600346879865970507636681217933743016829593291293484329645095101896780106922282600152359053009062910456538362336259102745308674667548811291345324472179498589173006214563925860467218615217951185584809312485216439066138136096894177090859723998264021331824260351918542726143045226651162125121450206483735867698224698140729950570982373614226379460361944515325355495271660369935863505189566525425094259810126991010885973201093014644707375783747706533507439465795045424583540563845242990247880726508426893362443089393340804777682468473592875025674578685406564775182495188340307481705735355577620155407490055723744301383059450602187508566999234332497546904584804862432429699577761973618165913136242304078002221644345229670964419702433202445931813398727485067844668459226591628910877128988016722242144415451936393445239626448586680253196505233521524418552045733537804727280986843217913784399166584129685841458711225959798914936118540472968989648022839886486029017993369206459530073618825141191639359510389316334998248269265356163973902202815705922876311395922117955935826861855826518338104617988608324240552084631697622591689792899666179445976266458202203547491234247923163062936717840342025946658249301568064532820341990432032862327276714171246210960122740172155231822256517964628223987912243083115899752949474268465303816445431281998486622796131842572589884188307300504154446497668310683323293717208953355133773314206857243364658664321933809303383933487122937850912796348608350044729655586688256507201073737869718995558148021379901491762031987692427054279801041875057844291529264800824057633099986463762262012721288971504071161575199021198545762851997079373887691191642327058841539585182027677489297666698888896023983214457493911386361146321250460312420047339483126856015697121876343141347965236104229441779750092019699311466253940153558498554093398325910923378585635037813460384241933438750885436989946994742252099312546464331219758708249562416903400439622803384121386460614208977580962729354966398022635446669578684913309386321250185154821368775839382660116755728561924703475185659397863264702002880432867944038866194348575559451718099091572035636355361571447615386615331432702896757314118186071598456929057539507418346455504072592910154915353913138502404970636910889416736373535929217874970505302115470845156282594358683311780150912999227793332260320050128691483857168170110699985299449822739881489488312089189810165036146594881730066300900967553228269282246102298158121611631484462492328740034609045144755475841353210245758305592286724277793535110570196988719692432881055168784521462401811320590009716701016773044901387874604855021109117098180728195532231786710677370462055640619859825750781517935744121489609435659512467732841034309806736571498087071426662282645622545374983364423603627144679218645885389312406773136338824888130303960544468951039950782621304659544505450779794232648559624339976051693454049167010279376455005530638407539980090421724676683416644605381547765956741920224912562036625726107076996741551840247249169658469474638898205607247101479755003401638896277946028535139432555774055965000989714480215596065823726719623173777969654619841285871634521603956874233000397645262622962821478472996143055387845888547978678232230013217826118332486942121012082544429798309660313829302361315599634191443839636260594424553893567338466842824516811217674190895167286021693938442784669712618147513506628587564437928389734389767800154270214262359795747185597322404551809650196239121095908543953911926149154037518421399533589502357072868084877726507935657063121370874262759296419997785916713669916500255324196231060177173359617416301330067279779692319742334793817244745681879596769602713701473466786923929967372568063009849138085534694655802311166274169346802595438982307593746415538703116956568407432498494175712970017929532954423382085523302675429385738709445338613148753837382281955828950945289515040200992225869654226502408505815752963834725746550675576087838971994991901576427043658896765979396437942558510989841327460529389807944213391772148862643539702197650436186199315385287265748079732847082620434189055701147673738772348835415956918319248706154310482054579189556186867279720854311929370972625750908671243232094608302118026567748439546892153905928527343487420664502082095376764700594434415119672627024723566862813028772753326777205386034990328308669076376886951902562890605097829961079765931230676851898848433246280367184869217073594204023333026935273868078653784561285622853705339142728623957799519939161073318312917924862729085137869968600176570043777663623484967854392920131168340247511950771905313968151232818623454587730478246968482200761193363964984569733393391113458273677975550313990912309285033944333497112185098590316191120975078272067468543752838993039707132856969354937390769246101511222728926626267742264477868912691696671846425006512075275012625401299912562782795694292258096019424030605183364696413323135425089668709727151814471236839558008004101428469880587646048501350599756325591899873066736253714789659651635347234046754913364856318483820989310122201991571211021112207862906103552352526306087158740350417726898988568360075226120602272907415203291885024644964353333543123814074625364534211287367221702360801706718954050148383352339902498609099049315426310762876908210327179160423356623121562052279134732536931258770119977230446584890522995068408315679390222814145835299854455559291899679015761859394947058182651313602282106057790081817292663397936868352084470634645311459337930118148574984985554830201587611854558971408922447538364102135967239472219479388846001383393598946016421131319937962044115815703412120605793517745151455091029805512336495324599870941172086467860870097571134936633668636523950431421116377597926197047552880846925411005492443334112679095068118860304228831520204950977573768928343157920908279522831503378011126261089853981637548115876878908130996323056910107121914918967957348497251255066331742331252652401097367694747197526823741876713564292711034742145086975316225703274776055922285770463843272117612542873532699743401286359119237088025168006820646137031704927984126708968078837822633078339048414971676996541252600366585383761115608516804085887447955694014475664794807739685121813586383302673750131736493492849772464086151873864541349474676832343769886224622485526606324458881085130624861244302835445889520628358010809064853671924497237685998237146314120858503922138235650936077649855180712412313630766435075685506530065283517712019910776582765986350964609821606351063404658319956217053540491301895978605688287392181793165347265177574604411050195638991736795058433467247796719982646716796801170654727760996536099727904138528105270585452655845731986237983526164131433406097995939500251712715695184509523564344158438029162329737120117471139928201860271693620356486572430775667988239731824366403993616179461789331165211728415501329983700462754022488222342149849291218796662120984644933843896141681569579473012578824653240133302124191680409877065202258351752124507018682592713696823459383088552631825997257863084573417513466244836580935343730987761586721331871341093854527284729660698051269388741737924545108371046107210855783754758085546109102778038178719423993054068423811611669659308475277768844362522519184007262637861244138370863111910058076205682065147008246367589277815094012755916479653155085214450721006881977926536487217065634283140709212450375712893984107376649908217396708565595208140976224030281687218677949843230650734534044604828815797560945092147774589765988019596551285355103322345635170702483378791206505091865333918913953519372496043342077546875471334748924492256755908718716744424367341798650255716983259031129028357460033603125473109389702766068892825403593880371618096167863481480993908270087291612900276432748772281677806402561329467886244110901171968360354611794291853372887264350202415414181336791502958031371515876794909065248794665672315353243620064918726580135850981150301918049280225217911134617997701003642980151021121890974194866430868567440065948142351216661448596971769756661111916036341985086806878021304863127538664318420528225761618672451071819827366399095536925113209691609156615070426514513584143007695793241564088431242639705835839210140684487563868134868748870324835182252936266261420672323963223055491805448977755952795017700166029176889503396454735102544266395789164842189322059797527396202991928403020147605786776261046766081009954848824521429223492606775058062793235988587308057399749626701827897676829533761489281043329730717706942118795130566521784861252750286318760945813626040781302979704621611087775799490303783413818036949411324444580856416872420268350877842204032118779717525772826673626058143165692493497355227240786981493498574961653562995746598441805307811607765772567322508395276805714895061700155291118765700404896774331037168311727486798530814944843926589402787830111416094807386592023229803854575645696033452670265655321600247464862578471799227014455166817048964504786740136976218917551302366770638857991116986318032077567247944672826846071280652333028040087022993888339108533638295739252002589028181142734645359585038622543822448687001849241599053268610005784506772057467006827112467773848263583191999903751516250665673601949025842614995525326720846521796653760055843912071948985103374573870055655282848688349218574001382789515456644214379889972934203780866623870101365532032066554258385983902638803147465404032099686697679190127812592852546726605847793969900908904480862706869988191425694495234365893937014389549547914860014501097494189306231068580947912174788890522098842635303034114437875406740833151773781090863435842306790747313207456518486380459376194912670355104936375184209963453075681974457802640924450802014481748429768809097982827138170936093774476167585910942591883929293205305406543222587273734986726898081364713381500032382003588599021042003447692661892069839568699914635567964452956748243005286358722490638685747657694020472075087182266704490527937003763189865256622510494568522911171668952422821612903069779422875817048372997023823818832702383168120183753346545601059513510734290139143041776294030912570448138289460142552129692409849250104097163994283560891309561517094807837263043502198584259675357551528900712413008936390053135060347914789549387245248529961823110334895402391623887059193255073330024918939262441973867506059243734353364842473317430879461798047789550045807779523419136783740224135633581983125129086221594919510494034407040366547322962632323347544972566457644392688490727745987247325373471906505463048239235721878568189282815754201324926367349366216168403333092601305201154864458359698423142181737822609712305827633920688970877389320554512029794626379578159647773526898584169654774953965726510170998120988039141970389760324041650606178743362748098982186388557836083901697948489464276871123929580050808751457638887318848885027341488717448755859076735053313733236931943431150978306531450821396662240206917798313043704732768510823032586131193873551864463167609324827848150162630120838125807234880565098280046240161876040475559699447510159701950536388845043130030106416012396859101347160790134309865631184359052434529869308403291297445079030015868518547575881243672433336376827274623345691276699471240236392664351254138213306223233011769494996316047787723583330686053950541002738888822165849456187628728465642210562142639967413116206533827534059624026978281484735885087993619735032992972606137283248524355847324892186532467971125367563042810016589547917608636671879608283654152795438893713402286728470365520511034180238542599980132375178626614132710887999773049496663126011722649229253147612438919268580440919177641842442444201919338578754582653971930586679505809879793376412408376774442772591036784470929104768711147864705403314775605609560727448773587580550661092129895385603601905713300138871162345845345603802317532132876533559663262760588324258210170385009480653338401323858818155912355780375053440945692058009619177864226105027599245279117812715086767662660100552058648511562401139818925541516455235257260778418275924792520159505612035312743844498420453799148331954635377022178414352630009072825558443651281270712973656927895232076043802569149773965828018437952135479330458905697426438895868526002565154541077024225791811886608876934506589358983412473781433986876478841024889754002629617965807365396306105065927793478399697738293440222621755448058724918500087466765492074077957533075766194456470263981395038917317419060428098340269966093393785588290034648068629445318423520210936474143985082184058166584930877862035195736166319077023751182879203157617433945202689329761043022329434389223730071111147701377317395382854320482191119012794475504186849640782509819337839351321160404833520100720955823384451233269484934017636845318898712960688999953475245255922198104734131958718858612934435859452999488532783894854331028271860842812683811276454570174439530890154739660880367600659035492560504063649255857471957111957493418784362484321053699192677398149459097832035516193983458423039263143883926909075279754382938375175477298563579738123940696068073910994660545123510777417644523763158849041400631487935757259528167466377708907567262954056105887723470493955192545862508681922063258798387592230339083726104448560853994296794059583684105479235124940439285923706429441592493306081538405013594597983148228028655468777309000347933553446227218030820032708178924234811567801585491469368226614186594062914331790861759792173767052903630837201216516759550206111798249208970372975259708349245469307850837362291311350566992882123494986940358236861366966084006402366411857723815175258365976585452554488038840253691295089179913315069858143694119391965459196261194260680175921888361045103900488607434393154291202068758504745445519451873866419321442563024504710520687404843362466129761832258760202338892360333426555221741393066091646496200766269856464130002566321407322959660704901965798022517249035399547995489894463315051134891986412160603648467762984064440017230358997365061109627874922675378359032590557533091613809434008057039684978964062671300076807146405595140475510483925877580662129071166494965182365420295070809650121583829146857199231884352138976440401907018260725450730253802893326089947618760567796465867253049624098809589617884850916861773175097700310641757420826287042248014496463031025356625078082004554797850699820310496366627611028188556119478414541202685858676634937658307263747851486565673367700843816286200050164004743476441388875809199159446262226403379083151274592312286937099650788096486912370592251131754268898195106601381681394032101165379307818291607220447554207221599240792104967811079637817491424982963377049971595430180613251908067144073619153265835105547460541408742213358628174325373569620414905166341010620549763699111794215210079530038511836594275991695196970075516818693868808886805956336264779947667598683422631281649810139071919998876502581479064870360949162424480731960866703613545250723815077908379633231646038299870752922210391900489131497654250792569557932983869317639832606253255970207190136146992164276744656779764009886795533296670391696741354503867964550302546192970765122793021380665281613931996359459751522300422743039666945561240763827686343515470176255416985570874672591589861450711989254131467640576816590807937850445390850062824724650655068014488410576372484721318811321851036219593276305807723600194639775385795698404542478691988759653416228803696390232047018586655657584013663140820225764935697745285371375833467882131713723628856584437253740470004169668852857540672111355126723096051644279683057028943387606386731592417997792575975836136019544834616695095173758966789699555575688419787278518910844311260097353226896802367039345835808141617082629587570489238230705589773716854187918882387188390898093008972273126742125805190114757881249599596487179799890985850143753138998822408302232908804171066821373469000543421294790277269509839322284636948923126458278330983399964270509597591949394717725317437068413762281538151247265199025982608474254957382535789998646650782499100684284670508111839046870567135076569479321377450919225472560724317565883668166009038648413422569122224381398106620887695298312393869625931051117898487943329824654162494512139450528341715344228529309725971217164589434406985862299371602460107561028639960620473320014864714865082173034612257426242942820835912684057255270617655561944338482365281909151422367720731346316118000702838625612954060133996014332748504069396461352315101010022245868070001187090432870778716098664791021627688408268338199449377369079713784533867070857725996166062076082715858541263991139151078949529519889155068518593953906889090660363466327482597777591797391469322547363304229433340497989824762978461844997995845091226111498476209120268747981734355279862375162930292845601055373226906172748923143785224448020784612662530581861668064949431871371602615542115279704883374199965937960823216768011001964861007525141501776654027203037335731309318063121732939083440331363750871851171383566523414367345884562257817776242220492326021798229931857206840946053901494594354462323524224455781958383877258483485436355776301334874814311684098297624352804151763527105258821411799486404107446151130331397584919446012344957075120343442955170555186960886511752665018216815767103304177162715925644184409261583630205082063184980813860294471077044895795647151634447824152661757413703807964262860739403870199591306824313794432545757569516144321868892795084502188108955143589976830276833203386157320077941313308738297782268466053050410229746307146958228539151280525921958596665940567720369182652439640879883775759667986708769301812505324820426303614011384859390514441743629986526951012371951707763270088143712498459284178703511312489349004167195305560712524500419709938507577673765851322320749939472624198888437300324687388931211917756686767727353660974218671430119783196902713212546940289823341579943929971414413657601206516529233882158535353287469683264867867148648281028686351103189660969138604198821919438345659483156297328278330062491599392166436807967677272202577135228528125722778993337825740916475729046928883452278393937666778709263070798338662400368803963546083535836517231792043814390611655238373502497439843412486740601406296411800426189289709428068776569831077850463721221193755955688464475602576378702248094290883593282428173415506706882346300706054674585566097880263690608915457913935176135655507394644236975184335281269595296700567986202460394669124782257104718368996538804985971875316720807678857345848244678621862885414823152801250438481743084545478889221048902439964207737390308664474027123817203040723445980732514405351126820093210480612353627600363373538381875126946794451788900853046032151754260912776748176594941204476817816976911477755135064985158964220420243702686919653942253321268147749705690053650677784024050336798543412974006517834993588064236136341004766467840517566777385529952507645199686562063278854402823378651761968591870582455978323426064927229258404970118495706741296841107207311610408501823772955424630585594942103392094469736211746232541143154098559621440551381519467611970007066790592945359780600264065677788324208834879282810445043122995965045193678357259083748356681043744007091773842017662846657038210569748166543794571251317732307886946208692865618230861602892728399323753693381937134716467757611452519200482671316003483128816653396831005112717440025675398567150460735700631694645504002889831878548795305201576337807642448708148975640568851359830670566645909481781729057310908390773149947116824196950485229627956656442286744779570102913448838128514787227525451742402355124260521619825359801208591798705717946556318104315656325427933424275036198944780508880097290479108667790318661130845166388398483094644048606341167477350475973610925866033318484500605728136832126441584304662136776062313897525789111356348757068435848349646160706639020941948927667293220757109020578472186154845994419339159860458820787219353797156961732351275417054017260138081404431267689426742808429953324279983723838428558861245496193495240439711550384938561783993596567800535367529345875475927716810900403668014599150468998773475143425098269612045945670847271099708706491937207357045715854733244010652815225966358835484612930723231523595298671540789833093598538283966563870483871111271400095945902687900073321924231549378145374771455276676036803525609709721913168568131138372585371226343933144310002701855553775386590614377862938756991565338636243086512911367806689805756776804719789977513159211396535090680716607534074512457235992413263180159015159110001083639721085539319544678193444539368886600948283635374823552110998071743390228793204141113762453473640969822198214219802650859572696685414563854857399768743475871152919307599845465287509335189726740668060733207587966107841918436321006611093755827354629867897896284093938874292295837169272540517341174181595239098124350615583385386644387197619004767468761475681255664834215884577389318251270729347015892074240540098572498435750945861870599133920595040060817086138421311071938296546300244782743718481424820736782501890915900990316517274953137820832871351462678416075905609134194166171993857915418264311581598811529929570697639605651241581982192512677151913482876491524274492646772552420724509029824900166098252788234681901781415061985343051359602220140874712965386620312296435130378029482274062207420781282127711041901502986704585622081738439408416874941821649383828353720211549927156197245232784575803319503687109306848645508915892261663839937526108143431258846451715258660945922206548757413758122456878592986567157675788068857600437096273510650808530230934929414222554506870362093237521824398513174360011041037616225680206488024371984644755072926761402075086622112622980466308336772234580769465105834397987230502107648183803230730573989715738186313980694673086766196253415694343518893666681958743661401526570350367058232863884724520387791797239091823390880710969561600116332339008376804343686068900583207224564631264702670382782665375267972801622772112857948828328051718576314617739507053932421638487316310138327598349783836341917604612794365326411224357591838271139552046291326062303711940547175739549605288444465697104953769087903051739010711102272223066288169952464326942950355927220609189308849950673159930362537520035554023796632314488546528299672922054118491942263563210342210225380770399597704301931860470504329330899772181171124920352424556475857710003227418567502973078231378335346326947966133575474013373605291568248947843913293156860631383021291885358258543879332435964182947634977326769414215685525035285729095056439045019775728109033281998391069756984365954004032445403983498179271081139915644931104026434952399518075015092733770215311992322887556717743089138816076797469422119165238744506786530639622263810310062230194495415038147621382902973648042594358981367489890703763693824043905502802955998547520997550483841863155470070249264012928005795762600597580769770875937457955495292824164272912834507375339584035419334497527736934588079254756351273949273101296078622762153646860590886442791334423781157927382794125566859856153161991136253988306294705909797548458260612063094542217083469181797137792939323660200317660753483776882256049289240884689265495885044198943735662809476153633604844552501971848832829753733462721111829956209470996341707119536813931086371851359142635743050225485529529742651238213318314848207990252411939853168584724858129164768780866952499999387212338252352079120213298483572594945842616497807093181774708607989786081349469761477459407092581591340068457400130772043570272013036655396103493896091455521774243737802272716558490619146903908561214378165530677829761919826716938026717254544227122727471409299841206337340310709849312222178503627113615000446349733421469997621585283484121079027957744268719553498591965369209125392735283408468702892031239275436597513125626733796454579843591103815444189849941696782364659178459838685679525559644673922832168385732839559109628217990378470047891632585389602308181372249564440353502719524854269644609277245496169085316674290948390976346605833737291586086460162108497167545244993665022168528814860023433788405209981647505478920257482829107092433411083940747338364365832641239750233431565451382794906581278303375958472828619082309588084849450997815803955444702673698072636340164499893526554890819591712416955486483800362611514196324219066632749684855111250538206528992348743846864899929807981346075162355845788241559200580410941372817333841178385814558437231992478613922453907887513185702071542273688908152797761684190822250129558170565847040456501811147000941740156683587619320013178857833105945117491726425498090450974716938493784848931249651820707616888275648505796266603127502800678646846637368833428584420741846004045460077465200571882128077948151279709771677869554977313429499330716506383803792292836556719212719764946059997674957265482647060189805276673204333734698038080019787472779843383594869129970712116786546696214791366835746486943461253331733447484843499584893429536137156699692108257830768983923508146077547089820574356236863004840596582365415468518088101683490265549675620470140642508014550254578312529925993325194164313766416959522059494558649145587549075085425750633458962023535903280501581844113820812852987695991110842223579133441553499161868874429558380514714897862262070118753188771080311518453378121212562716718522133972334926331435763970006807745555981154869191885612254621010951702683913147378706210567006087403478524119907330892593926592828829795514887394867846873003591339976734960388076508417855638410312734201528262069689529991911742761511243743894518528760134898305177541434577741537589925673427926624289985109613383309974946727281474155657712191305135654779606538672089065280811250155381587899996780587678605166913790409387382827706408043543971759149047231253190751264436542538032651769239343835922988949565783308577095217113258938303468604265309851786778895221171655772269035288471888646934596548290402660992162038863440828920775052169688427146774226021013227245502442430406946475621544655085556209351807783677413101949535943839825074503169742281111820311814775590187461520893319708480867893151839991278123122553833965724041388741776994846038766848456694323312349043747763675628898142971022246824034203643170725269078157783135571985236959351670532721075122191564707802846507206127293856462376476904080640750748257566844927457115404027789806487373656007172990322142335348575532563384700189247750105005577540012593415076213297808280998698896771944803414306990361004869249813562327501850651561046610539998075979025671634835986857903242998526261034737203232470348388119861750738760943987904506721578550360579433296632949757994678228250980055387399953281130183539608397047780677492646806991488702247177349475423598101293650445624781081435383119178726135512711312185789043176547286455105385046501340562139012238263806027038213980433985977066843708739052762391265663524218534354481685980725265759693233944526595007726800639157705585837408740727219320100435254733923606314618356031140605847488278249205883418869190044049113588896214664426896501248539278804095837157181771228241897973034689328377230417935011960014864162345582552978681277337948936587983211560027662672793308334330019851704072006916532806769665155662051538461301098066888375034420530820649778950281088850002659511442086689860324792334027985216769744500398756767472787742711265154763753688405843446301022260115603847504386372109783677792421363555789579983176038190920893872450617386801811538528476746549087976977652630448368033275860629161118723692537018445716846388866361961145261754882640471733503777091195088239210030445868251734708840288713973050955105946362445456560999956316311261791660328865354889920690647807145122978449095363599130988361598453725947929364756310394233267399108755242672652438253402151317600843089744217401143694847318556970773943342500960194429218671433665932518754815125885572766851544612517310551734045927071503584422085784484663686498151040997071837321190038985160621095923559591209194167524717505166381668179981605963888468323074701629223284292882039546236013722920317256942653679166296044432582171992584375463056831173111671914986009916751355690132552115990018064295228785264949999617498542646802105549072255638392211191542221224097715394670123970866135737353930357283240676017770496893629855214132234883978142212350681529929618100864356035721485260235760268023999613779910634846403480272275661404680543935499919503162324017862880139961523019880830231144125944076062623771309788918295893363364817686414446742392090293806159732633641566006644558894280649948420481263414522149036614923086570872221084267170521849960571546380682965236405126004825587294525031358713792417346278374935219537953781363792491560037567027755495000145292132945013766969366718694929611750169330096443563970657140846755928045843511897146915630119201128208340415887668520087317699570289608168349930244038682734198386472153068103902413753515275923202199822269941075520709320230041967568804047912901919324752211226801079694430322780682085895806402151293729573260436338697068260607768579556213909795230911127435739896687785090730654621664735820400148880451508385261922423779536888524706193096599132092551939589559953715994016426283531328153568517627683801379636197638336066050232702285862151156647808267689321024415415953308141825488357429376359958817294534365666605038057960001927482722254994425583751384023406701087091967440515815582795337008912279136363888024937866836995406458302200539027278431281166712763862429079378127277518284908801525627098957075453946524795460324206639032398222975976999872369088032436782036634985264164787105910751184756046831963071729879945203551493292485922678511085264660858686021331293956611258888388027774535920642395481201900143719793688266915911549945603416770568680230229584417155085182234122336268215029370946973355322562120491625821571881498751879644153506428487330910400144583552492459569675179233123961971745133227385015803400096429655257685137874341149085849121970996828363842844934980930456693603315939070122241460935795375983638056063824076755267580624643349791745850139680996093465692711774562293494797825085248481418767887804572527674015511688231876029561882447061608395702397396431173981908319453159541575408984699387584089611208633532397344444459998153615661746695114850777599002256813826755171863622710859007433280406577582558934327557537492458977684366364081166370790922846661376555558476776642276525190366153042120172365087629213079045756556115637608327765309107018493165826822147636644396634140365394304357252173762116880958659409044892423145079261699324718419096756677256892517772885233291211503586030933475588551845811490912711455527111384701386087497083393988936462128823305977353058721133131648314314686783316519503549593317653140717271290437254696285426765167504529332413901911137367801462053273050192443091920009902767846808952779010550881735393097992082940374576653884499664264758594468899778141138042726441710041268784192035798072823104907135751390653715485669658853812520687515953447888262971126040852667410407029522019360698117656623577478851312738609332378423190738292512596619072517741633764624489639923859320499251118482008502188243517999721245791581955875017987464526847881457734160887361532173960237817461507029284411984971787642579715403723510093529492863417551943255672729377652886347501380504495579956265600230451184822179398000966107355411132301552801746486893162702990644388365309161872455739413550723219820920585002832036863974024804549909153873370794948592822102502093555770784317276712780195884641563081292834522831164700686256219143675263972238018622298750702787012830974971601351137062404581144498465406712771646330429317934406693035871040227387185177055978937600838636999836848792980228328605639527828700980206727574514079630314117025682362071911628102435428516645451343561023472996774541627331675935986848960268594261606844820785794926744225112144459350261679750271257784805471048341571622497535837028167125326371611393837457223685129516791386221441040738307238054552596002603258825688119415672400301908158202322801325650541823926809926792891410776773579108652782514352650557415646085169222392598778829780506518405263325944505619973960911008694456445024523227991611662640274153097062245912186067501233970899255478907221119257208079057298511542325081175173874892697749349896086483112863720922241227848305088567080379537332322966238468883781024659401706741021517930625644326291085023158668703040016575357117110981933536642418007034526239006420451306893965528233014500500299220327876330009429719285800137725129655221174082946461459629637083961327365341866369350331766090697654983793336559390836902349502303803241371903480435921470148713891376837275550533477199434321690461545201641597322126370280789078835306396738032045408965346840214508046042610212559045922235552394319566527144050866837715963311181625096507525372584916051802169625474094541531025048073229227072046145629935889029697843578839545750592361205827262337816514277144735787202850056633988808582448299435778265134972116594210038474446459996836712825304815330226574197286030236402187641041206450313856553284691903341823419561134875869742843992003144475406309447624446538337260359613299316815009446311239521972920174739426049107838576438350818060810410032551822958416795226812958778262682725134838036704356892837495853362131108812110558265509626571834774230857955819731038643538601128315634685485257764565238305335839587399102641820131816983712206478862918542493628505326959164176168101284246126208552774138592213850641075470865761237997914752397440568093318089172592072459458074088953214490506067868907530411324644629719665936049570647379399499541340142081818745889515898766983673061861293075772024168685875683308219188810228000691179774083462325341189049024493673961737225960926709093997264173830009031609683207615644002646500552915157523534820494361883616917046084469228064140095113935930039298961804467173559061918403547823830289934371677025248903107906873232683728554054537968564195696047124308624019858858391359871318673230122211863419615738537291999411749957118112700645954534139306360070319059631817689788293159479429511058382928180819430012901114211168564872710097806355341128110002461133877712388632544228092229114625915401026280129059696993609559295622804966191396248748841891758654557659571214190673947081347383833194589292476136656923503511234293739632182389967293717847081216543340621886324436766068366991733813099896715951923122420877620559680956908402572659950214034236773875221123905731858050761946234334815874946687713077628102648954718836142027509284618434473370313050008672809401600888642730467082748584721562721800043173664934621170901219377276880312291636021024471364939060104627848255910184001116514987865540309746247024478733610463158092492654902422625801180052050840719885748334576079284884269714391728298157778917400551468255672612117827533845475381179517827398396615436194532134359754562177260569263827688780592678007115014496283584511204411833161609565853700852271404927533852953602064151912532376858132685932351589068944275370742061571816298642033429431172419505253856473045119127040145481477721495839986646880447260133383895127363710255168860673068707357915167837000337761826175250243242360720581003608381743096445421339991989049383710431121184819225267147212292055388500995428967508722058499099072578430596821948072138724051269421389841136148910415048010783778717743552472241380591771713922831867403557729292491437965465270048842155578734500427235507898812770156076683013714661652875693927028318306947776514190973464369978328710820176095651824677142156356550711549299689125775237252938494261714440777660195666396092364693747745316195612996920744976022161046412627055558422170713349255723727083070138898012422761758433711367609852125679315036366758021641393180142920333996777161814020030771929056966607038690748981217054518522316787163096762077639747172051157511048396677081126700887753852259267020625038668077789150815320452595079371842123548464980855328190362584822810741147875746175389901405174043008740910584973118066432368301898934026460846906083556687165882804586058063169370645454524123016930875637247584846771575830643423457750399069809579653350393110294999881365447629884281820143897613076097865301522950760093258234583561482801014174043460401256103902659453550357308853439228231763512980137114149326069906287915539331469485286312623682928476317359353796522695351267386719083919632393673318870998786586892447233140300479555428584008704845721787785976458512199904417771218679196416270882904977311881766951241847451007517717742876291452926684671485412490298241458117371528959728858803273424538486014595391988521251216342026941466024694057967177805300448574794372436884751779459518216288956811027965543123276855341247556689812770900081795792205472355870331726826850805177121848112886929071465400544364111774811849319952896192250123746572978412108343282080586533501743668017903653991504530959213400207888405865656053359799249024156184160791890800534299647834890841041407332638108356575521444998364597590350756304534718129520096938561751890847753890057636492900460305693943614859945867201109774059212525275383171292477779266734656473240579163008033260831107852348465575304012959195847463378011746738555125049754889990682505771961587534742239851920738708468377970063004291905234226714315150197934036200199034904132794912708881548946116890726220682498552456760284517792673487079269661806509845516290637280303909842712845444074212412222719469827717803193394998934461507290665292506258602622702731199828563462635187412424632148550161851496240645760512955988798159478078930367062633121111417470942516634041397827911588421472561944438884809810442551182590155893360578181626051679982647435507615401147977408158306078355783840852703283872558365370024818339483256867983304887326708168665423447352030867789309474693529614729083694528616114867326561099494477715492801766989050201838612749934150216064247927202008653887895202157789803125904705603804793185830280035804077121659935562583851954505595246262703075978281068311610867939737007849054515719224486480641728806108598147067980271009249192055366916547573869927337484879968625067348951810244480745546057601891743560229930483853607983615224973192557950201826578312019101733803761922514768656374820990074660845198997289516617882649087621434232206001334163256994089294820525448044248365215097070539996160993281402000337790921337481522131358942902802325524036871231821747904326176642840590373235749187567714672803917006042011708956612040047985168418890555952319750855886729711123669258343441113622376481908772070573558056955687311886253053063399253148047245930274446166515468551708806321809352274962968304919220025959610258664133334977736844497300591890451425094221712774639325879045713540866377915580642022042480809384057826301507684901632010392793416530326270198714654841701745919946851098190717010498020315789655764840326960626960760892563096966098658454236529395349831333518270132068677350447339416101582362899757659252651306813643994820787974669393107542660654886467799276582977861025546687946693628083254072236039863091213092382095746193789405363144795666805687256183148717765170318174469937507421609411812520874961946667492953125659950183320613075773302450293718960150421555456324673786785915593819930913551201419475230923388035537109950575002895049091684681018372812668691844035445870297340785306088128328518470630267947026668649946332758436722353785168555473511719670245172189746202260950349231239608013304767159337975514989445041834855573011924991971360041461075580532408946996539485798085460629419406874464874293678578706169394197734899575350982226606453853689487171781109171753153430828060415773306571311894683143600519862660460434426429448858115463898022621399413999536115897058455798576007918832295458287941541402289106746699666169005000658105685940894511283995891851789167470627957375802519313927157313561463250937330094348362330373461865386302455347185698509317983668122571358372959753731578511168739082924482202979476412317517420915850793721165320991724488945242463333800104448686649547347544181894798198649920441083841980438342763627085073539326839501113013062963054018546672643349140562372172061606637953954525244908976373883292130241050474725137787834947668597706810028438970749907910410850930598396355111213095581635348009774940644913581702536798235335279024593574771978960165756467237384320739606444848310418305593533334194613961293968143157700487925008024450790112970094496858594185827819246347048715344539608448822131891523159831092320636317778549233756630398119045956545850391535803092633312288885858937409041080304149319812515420575621800673417364380125299591495155706929151959645231138029238101347324095714916529174622722159148043604681426279100370111436902801238021822446080171855849451388571498080541093419709667166126523173970414769459783201730246397337808927181556542283784699400852200758793029408354244531353098867542821627507030515916172411538518345661942624652861959945569783852164221671344333851054631039384589479659824130405143808025892542349978585863148796825183374292515785368249010432959788949362180509601587230644442860601560541185580044990180869852390914350733430722108419884396008976580190559934221609507518815292660144460938825065364125557870511806842845823796229341284177387155279130237338511669708849064190609134388705346150426230447791238416828728100634818881983902696267398901371722067202289308752429860973580010527738777800510527940057001286120833954709807077859309935776447178173939532627576096933207166497941868627634276902622143087101717202711606060896137582983010156948671847940296534803867305047872230811640304170620381383126758826270391884325146684880546617456325644421897093325905471937177488969906140322781341967380000726624561133490491426753193821510500754120187637469372964296001330526151980073737769798243528026430698115108043307852788442179494450972704091430761990078836426289847162040584371385177247820456542680337488084723421328543797865001839684686109746935427358977600401927028673764180479924262063861384122158802568244362729146929645762974539438073184882044001930065883391732493063374273291829366124809730854984037994234081162625234828519897974214064030155060173293972860627755913163690243345130917061665185850922723647243935122350137105992724455607496743799718595240689793148614148756675848375862208240745886710175761077120067208786756797865571295889106764478126193149033631024247366620924609095252456974409311910388113942776406126103297513199610301912414540816220947704482107159173205549083352142592577780458178841878665125877626456484027068551653930760800909569735733315398823853234496650145420707599471537555430928038868328107372502875508925100202504062411433635068163416717450514011625054510662836480613561797326089756701616888117129800551782794802222625210631815651244602626348729391638312965930421670111489744310079863867910275107720498942917517265870704935332895903063907879906512388786802574902086500102241016557963318379526830375628547946897710587696079324830585564217545921227914567133620092856604067739772484355061288141560787517685032567675339683612474008214176386696171186572002126460167921410693281254912862606073637564791979814430618315859513072935859113802846517428484452404262743468984110920119914154468404128955840015956020525998697944812341289009783941698334630761681976729310494337735908562061971504389155259336972498450824032647191142334159361392205670238286271111214030255746050895486424787049457310657242878822510540269425383629668893553679684288542663533910169200412673753703028797029312283158852531163998162648283388132840753619614841434451810921794762245056927491960712762671891929516809969363852306657017650979397224941684423651423174865565159700533766954975281079627967397082731366348054306246471604561985045275930710940738480556597423645404140746812293643826743933801916811603066050297998174082427851297095186504950947493233370047924058584264247181950128546578715379262411915522757921548304673721702429084170659558977583153927751464360169079792950793523327186996186872281839624244283205820438814345143024517503412637281669816189302709467348815240080331722604520208858443026735162956064180073311884035322256870068277012877899238926542976859399655630102435794204445073554367714838507491105980331745379123672227575464488787810522359142556211546212462029194449771740239074680071777793608704129802927859064132575444693670920992544788968463538054398724127689966746953743666930467335461054090584758329598622004227325819761138876761003906262104512423010829491566628704059610278676034528272277850348954311403330982534995985554573592996264794182936544467250007974163223565870754974061605548660423232899949706849473098530859465504712061605073578494307012145307979126609035596106400851732705493205631987116849987763129833156397691877876053525008837747090635200628108586347650166134022073282501330417320128895018649091546999578105077923867234021980082493229725723389876364807189676478490968829736361055751104032536138658425174379189250435360656933857491628415551153518067806690963960159874768716289599917620749648618747701891560599013904608914684185107828113743791938428812013649278267593767331417467518298236754514319677111415299621561064157677690775349066605028924427122923008110151901454100426017370321194993769327164460497858063439096955015006638738807555905654300495644281503172397786669012765983122524617720946456030753115296099141689786381598107363487047393528406739970430055195196872646381979575878442767179397745153218235997806353005234466770978481131845988676715915013129779623753228530506637422319160957845127107200677975882024478790485734783655669759788067757776457474487983112355523545956853887214172619777460343359336403221805494145357051981889029824155522124519588343872053719907147927449361807736537498800058705749747914322196017702779445897877262943102496803452208584171762800938964842850546795992229313194350619562890822243931479470535544845513447932345282673811385525908129548991069526805721719833256532889160579529637542916056949210998045499318074059429136919420383028976479739261888987222151757372895080209753155147595921396005511311719622315870653004568669598162309980050665831923605841549533670966268940886576746088629072817330032147361152297595806878756324731597697555374091366975755480348562476752171720258119257389388884559869353508346945763076810015970923286405679855236941942281516753239476926621730395803763740762459007035056745333815893420217126729808531128829671874925084086634369023346768200129568403856921624358160618238678553957140919491589503533230339372956651823881342312317537040401242248124929299899554901892307238019716730188068189186304034557093738514442274913714607483875246553121387226015462423064148679275656935633775781103788822124282919852599437845609450190449901734254709588087662624720423120179839978884446187635436009647618811793860553967157849891875765280828636488165902919916186088524019225151683679818623586472975670032551754395532911384910027826827009968501298328891493659060975901355938107908340180003804620203617134883239610588471977008132648742344400539016316993367123736103693576880397388842661299099662630772837381185355772235319260102622429284345106485762155782010442409479808199436788188175381369519578732703163681714579475018394458148604385950135173550417279491034269090464907357678625251871870908061841936878977486877032535091270707918180170906763209266912800532474487558983247061224763024583373805242388450187391677907998545551657430672937545064511442391321406289295277993804167694385618717271404835937385571393289499511953878191022325088269258465093026530111912818379831810858012064719162047915820016292966838089306149917352637689085026139509962861790411529530174671963655920591969400478778894865157182179944185982904118541094670763133542845578489976590605754403127544399841765153407562445309437830990999188822566132316950878685029566629219592119112422509177559323515651392471919918159318744009267444695279703403299744268298254953125245035904945416602911725824644861064737662870843307360716549697512018035539962257843712803953841952130024919209859115494598157101102049032052838113670724061950930176304175010060216232128058510404614850649078501468140784006576577899494868547588820543794839888138563239792269229368997020997483385568079343240810049934016415923646904185943480611416316615094770490464877562667580807015547624125671334950632166586593776325024749308485591115202414630648311078499595947801598870414725032725545425839932949680956339679135769369339624994883214978573731790751596438673403027299753735192048668131661333640837966104236805770022005818131929924690134099234048833030381892431368279756190301889306092951885373404997193846003131055083714655892092597123280730178011073227172258346196037364854049552429331529115234825751246511475228427262820722566459870788492581101739752254057365513041648968304112577124262313606743756945135767739744735735517721139587357040192799891131702902551138827734874000840540107739440244011165735704712101949158778917983293136463160673345232258004138095727341307019221628244784040059818946949334775600646637642290470739848609960935194171878623780931217484695336754006247012386414731350259088563531537533512657223311363224431452761440128215948410588575733444664700084775650984643192847954572110202040207917274470991390163588239099615351596790854438196702298077872817418620341154137092937779616942158980456142031260596067143749594449877883142777507035346429225123595005819667434973156146570654169348136373731480816970925499974714016979845011265700283189515280449578366341831288449988228934406503096679144706199648722455520554672981337121735279604626223394007562921352450989485799656301408177080815142394568748389261566429870741894612645451290328242003176207671778578702999445684457568003969124049725391451785639025518984063602134630780269752404383301953377020763499024561336229041840568353599890896050051433909431026498785186100959121089735034818292740974727866357351938066035735387775077264228687732474456878946095086852505609122497978054404028604611704660810827736591548088146986945306801589044680317687632438409731092419409246519780048901066148338938045126448394473164472434931988446509633533633831380435938642033364884678215182034048872971879153789113920262599265426001592366660918584158004582924920858556145136965026242808079773974329994211369528017256147379442173667101660266561133201343382774758990986354781665819948211919596740435257144995415846115908392371920611831547383707858163124578385506540485905366522391499944724296045392736351233259404004038035935265823876077756978040102346261386424781204510067413401411309101048661370132005704548470404827985105062277061495683353606893072043072841071872761131515408533116772494820274092260797209489098662543334783549670586832469024093895427149414553280143063659602247524233152588048573735833161075641460153776710636638091488949020917844439376737379779035563425263158106904566878800878888487846031831221170763474293120140076222353158694303231692405413229862856427816941429049280887687652883531995432640893214447512139642264496946258252089156994956001405709194414254933514430748461523797344408697296225691965500724647517636243915831076101564118780355236131010805540066717010999630078027129233873349695544553450518798024863398925343281160219711510666881550268584416862960337777405544079260833269939297530562724299522432093762499076707214369706542528989271664346949556552520261306243876146984079232135584251020039484148501406584774468429565389091121085044563073546817554597359051132942556016149781598359772718273346112351339901375191555161060618108344434954515354484102809814459999030969266175040273425356798741790889068174117854645519441436033587666421730708591633739013780009674355112111130490171515903921222953911062802014566049688126098505180715833367280277103292039747516611999623536761044357024424420002472674641887756203383256073308762557572372553558790114713530612261072989973185604756825173381723328413569041959231176825750067162356211644924357766687411691746631334979116831636357950246766989211715331426380832627070036164535656921807333888518213368103206242056675881741105381326187395407108393873404622175434977000980591481328124436057825282784233499937560460269817332669564332403699077393430122643021034842817630861941221921748947093572852814183619649424249194531264262568515100689613534090583599250148159687702035629092770654363115066418639078245726888832569063589694863766868933591426414480455010164780240756545202217709671925894056999578936426105955384892688490582621641487581580135510600059643155889139005505400294829057393999161527979509329767388966364747319848273183926352163391803353808086680068488863005663912475829968708683347858698540115890282446860925194100720504382562080542507179113752556307504734756195838572419225895302873218753607315851712131519590777229055485313641623357395128109229985384536083955090288163951435549649575835794012104520880467758033997882264874106429961303803553657510976435167382851689780809268891460915955224602558595291199887189687251262710691808544859950022234759533585611825718549557628862074163965140222682803039218921499127391626893538985271914970461351220171963206806202624724911099145756978786524397408671614027147760779031507932905653124628806674487916363510995665157749238716313806819980150241871719076984487295610082442560905197959486539873373797944250807652439063001177116307840451480336411267866319940049978240574659182738821621890805250711143719623684705368845007957412273995538708912191283863881712582157636859315048912615542004142032053247227393206349977894914269297365470685470820722441739265214706099929626759941229205228904144464376844392656788404824557650707472021648390689224070696336145492234765106740610653109589231020841402633309338611608872763195885724316511715878968969960412720444135480052486803817235864810846789199428815094702680066946338185309210761691002636745834587105446004344659196572152405173047674152934622508406503477182330458450665106779802842081594342216452385700617083872157838526843696236859836622646913008684563418119065881301892979489770220576517123621671038706808857104866540957502952971368816147834095385441603696879669080422556505501981953178156618550575825205551537559658902235986132205213910670474186892587119869773581076978438991614358379902909717775056630674689685003204682107990108478937570762460151090481507336775631635593342666581424204545694156623197030504812560023400311966012449784323804281652343762029639965802733222632187449577063968404490798605741405781345815439174571809732030827925129281675860092244470160120337372433755041948558357433171095205100925936391212195328096359754377109816688138387095988780193557787680147078940339626296064013191856787892441020805437946061284346258800235815340425574726386189823613463827005235235472421880425421589317833709565602743854077841567921511264351303363202672796344393006822910597351067871345851915247551324850952670135323478398976768264534171118195735202990704977260216956908477179402491023529316750886402710397312213704704144446586203820992000760464228521696073847080950608313022676363754500213651418465306635562138571707257343961606306731688796208473216794465950586661575897410077978321964581142150982661618404963522918705051699782936694605957761866145370582640826881587057903219814716283624172179231798026784079484277097985421991825516844834449716579895101474475373596015490332244288432357960100911023812764258159420222272916461822414471021024118175842718489372033487069067939791467648156268946430659638598073274082866775564849864355617872465309593074879462852846411221358232126617778133427649284452375074052196691991875992082398827330321800351896135260593705386382632390275216795877199376952628482254383712627944747862026721915344739346690980600364428569856071743364167779276582751389235911345071773316716365132821704739903160527806406884576348536062925157425615880962319558366619554407784489485321781242005275633863141222300590762029847647638453220610910727727977361703588624010572837793938066667742691387482405447331859923430933879086148913184891737611256918255460318227277931655585748167100653780053884045216798975338867576250519584268295512407220996140092616294333552885628237962018061712379007446103352595370732694598384391929748518891943608842870034989111701531384745202950886255543097331812296718019881891349114239103513868241414653323555412231796654117174788499592397317723566138539271959654984759735212818103635342364555580461942368443894946073040732966209180484756943951494975801001665454003006847709519842739488235782101468102487885069015684409469553606885693512626533153302487526022795445446535677243957422153611801739251692302206146165422575169862779137373954918356624677413595237823177539540782565011792390331125289105909995867330804886394836955799595784589654047264497748171133013479173230622798358298573239237743293395896166057019457518608265179617507642690928012943208651445431280082648190350984976536389179248009470230196079392184104262544438502959732453945316303990232644119951780251127108642592771070128768158328760304476678235454593466754116365971196678821720791230420523618849619640353048929778065656556838219818392195651603322117800470842037584080035283950058939815724115415620124292413458895359219013984187814368286294291343970418166404428991244885158554641102461120764470293230988586550013598536364427465341295457576710794096686719728049282183629666004897854474989461949582665380894416713683445840133772346847688025317746608508803105221077634120098300677390128048957185610181024189166607065233622260103247637360531307105517450372535751004064761716805116016150696012529831898971955745688781284338532896968056752063762032049343747985351074012842481916915277024144388125219376987240902583831715502902658305583460272461829637208174106246396528903136360121509378954991470807428186942134299827233929518440733958340871399808989497326975129574084576478578092282179310709786861879144701333291510868553162275476543974518630234476993737043364566659945951931543818121054117304476028840353650877079711675394850842277836006366798305958977487560574138061667571974250189319647045596566662373740262346451015058043226573844801216228313104032481330053340568184144485183381675500569330163253793965304089066637052925142820760942193933449542893079440409978583698365995235422029650326328265743090591514315878906467845985669581048649391287256641129285610586630212736102694644679321524982637929880876481047636547450829058927205795849715676313835681378715532488369422141045540192972812100496975548436594727303627354772541910278364785727228238089442676637438694041114819899744982701572681025037150548439117005072514857768427387420314924545408590018151203895189099286988667084029056260405246577459978022344891996318740071407263338530165291759102431305329409164781412761012782386764569722901897188333804989095645872743571627087412659920030880220740186844941932280310464321649520239730311965022085058576541317525200426272107771426012322176938099159345187731710701347031239947959822314993593966160836459541959967811243897106271254077265163523342750506597519813312888367863801279761245822770356550114409857022542965848327831483057119394277367272277301834759949422125102603837931828995514373704898152755415260358048542659081399371398805057789976296743711089393386208943568101877670197768576778771277440479643562346757555023735308119631858829998563518212138744704250908345946649000856340399691560860982096468765651469292833171677408916485337558836759683186596296383179326940759745948414460700558187452032050080937843569084480400082924749339161047697736564771508579610134287503874447090097422913047839698659777177208381234942829301292217650557506074959924269322125069441855595210173259512011910845396457247231189983265763069858337432969777079709730085703203483346104785024902396249655082366316901705317334218214670728176447675512386654979539275523964926145794606853849126183764805999700694449153053524714140338931352923184727397916161876570653509492393097568194829522965632515992368119387567538228322514306634263566189907540770410173018851342227394909458272387510442885676113859815740362337879080597464209098541853719007682117451584132919914031357936788652965074865001259423886299640450237487396553391640877846345092700774607968078324346084100283446796741696652780875287239776595646560537570501996199575478653844096059129967688463194233692205958822532553500079126048699376668549100809252691505957576469070434176809674583016044223302393623292031610932711627433667821365239863100999306539065979550429363136898508573906303197737159736643052651289355893332759774959195879507102652204779386757983057751810070618042208053113446796519785204580860707921999358671952659418724056392355451564346250777924072327624789864007733139409408606823075489135853180498015353685898579960579199079911081508721661002532182584783755658420406659197005346003039331912270535786754936012586689095970877820181480692829780400332622917290339974796746994658585803994353270039136079653494066101593096797207882346505511660526695278982320636323387742386661276262399097274026662577270248052329436741219255388071389437188857062169600746835009679895356433944149747076532466252795586240445743397590583261833072834745421060831031055323157478406503873603255503693692338172687355648423907046808288005300739657698520832135380410305458009518728986381586656374136443435355152116733362651704379507603200049011839380726688842062773237415969133936981659108412504996660141075024886554769099334265914198240434759911861183505459096223911487326920094437498956182337662755486546802334621462728430967201560263460585238059614456747655717231291018156407181462554424235045386824776705807797238694056507254589607219449862086783141062413261364402624943901578563713598730944579850077664209908301879042924860752299804201785993102159924403461883369826381305134399872307098160194171705025352306130911525323387585720559513895259304445037437222803364706811244763378353680453018069643169988880398681954713428105248652216542283686395718372423810704486823272734990746875895280911200593432859831868377174591406055690014199741672902611446347238329867311184050188589351406762248344817875306354798436811943016585558650754475009913854440054873436143635953533741108140089293604259390083634211417321000618862107566125782311607198413985183421350415902535129297840077058367369889135912063287687765757338945336094312781352961270614215889580594490377493603594474194773797326080472489310597301078994850360865895447699785884977773019511856566114571038227918594624031032930039531527577592346450322214541445485121117708137232922979763479380308014023511444015848057098859179415963176529996724371069060288346557694138881241900650784592072631156748143324217606774531789259090899785347981986176577514966761017234076003290608292354058085817770097283201524506718291545369919121647967538914081235121965562277361700891206147403226174189281137717009568260853492035383181897202240819363006384410157717569475295351380361496736857099674425800185113026515915951140770131826652840853568730984579578725547427797652944392370074079194204949948608810601651238663683965594580429194151395344229937507738254816675351812434669706782112349860116126163811008079218777906834898068498348542783001581228654554728362216595312337801302834681127417080932568551197307140303855529855002234651199654386737698857764003236549007295432925317380989872950814276596574731614551735556853287333536920603304708299397150755477819411259418504648602106393913452729285707989980721924578871506271329257121176495466179930986291377667694347785828930208489738113483914382564105142363673543683274864137403458955796408655978125430387962090273611393462414670084959150089395835318806003871777234294183067113283571202449066557884013587554386874690724754196271102720008928361701053649878288284300007774395933415008968795413163148635393413923554870179323756230360219826312555857652362871632043430784384629476795603559995138391836737270067318216047551760023056584859785391244761060916097671533198520570765419171521904679641114107696171511087462475657556872061024782500805094037740511044774670621586733279318122950700941103129458150009220085537158016995006755317668040896431932983391358203847798194546592480016642853666891509477945432769508054713027187789498135399358715113941776553009584926729573485042589525465230283345324860479970867404461374283608386001971133098995710660416592075703915769213623021029375308134381940890194207741469366136846983435196966524956880913005474097253480950575207630487070068794756456433308233631899243429476979554916929597993583556298066753150824231498776841534145696748956832197242299161808181761000771135090052968692786076993679793409150967895296376801166101853297306823792187301112191327458633879996551904401150663333956801934935807993956681417328528530349423433953592981300965872363714364914093838375002216499722292280990393255115428062931084891650776566647632198026325826066051457473031204392686850995643951908169430127650825809612645266428139194508900916191631842929559472190350176652096682332431259616272302868431930579748513599980519328787952808243894068300763601577989872843221408157024829744800874429507322957703006530366631222075787750860492787576668716420582872042462425373207867400819286956655276971368113976841235031667740471840816653116731868413086809717028957401425702883179017168834260344396320161586761492420794623680278207890297847271871139212164989773861266824539689930159490623031856390254666546149172839172387393853575406793407536264353597961612526068407606093040871685771223324738331328017283427585142310177013334598425092454192561033688604628043813851600105170283071087223856085780988718970634912765890785001461831047259084166430618224309888913603943036664498294090571594368089034080347697247839720393526831955455440073250511457227958586556569853566177090181733718304898239048181396763219790671705786971648413133774330966169667885767663547209645803118680720694935506356239014632608733508469302971139263657377035533200137920193841191699913558363031453804203145893765875149579864014091117412783913839214295566051636657026988657256038517549113095749070336749947894397361111524977124186790141431022832024785219696650456703158484962557364590468913110533648274909035438410866217014867323731784130981659481634628348666876562288828926179357149801245595712499511019196600848186001190738288977681054947832840513801276901345341681656764618088788094902216895502484335447241389217450367341597042074782190330374324759048097831331963426848060748533132044699682766508437281169277989115806395706378295216434707068197221512970259031195671798529831569541577729523951971656000001992037018034204931694696066181730243536345841877785911944459567173466861358980222550187632267173695234197057034675288297727641943587782453126130146267350638237681265192056169602292262573213370172488696233908964910350282140932316760914205074486831219512775564140007323192650525011117631571837601304343095510824739423451158402491347167137982132753705436853070366984575620113320545424166798106528263910626180309621858057663838885237074094081444862153366108617770883778792750182506312932272045568027794147238628210209042597499505677418610387921795552959314856341895628796207769197646170302247423260804210637350990486511940031001449731549416445900830937368748930369766426647026491358211747961157991423891362391737678902386561580654856801392093634990264971444113976165185379709445567636431742524605964777006269111787280826763479449460278186361740544049392011097590869924994780205392388641923659813988319903817824985502645139054281802486485670762753215380787666221138040650886229425246574402509755378382986254711444759114515957906556917831622916092306049341991738179990373973225978574118873028458121489538709264764748046113204908034095289556776153537575023191133297382872263520131817215130923572393457804870351201799800275849730325420266431947759111283823677341886920063167964107369903778062992215830130484222727213324328480518057051042305770694481881142386936236762405978042337195912388652553731520534558829125273302227513497942511905509073941496286004455448188567327471565484655281345071581097978670333984349900684751523257561032123650301767904819741053359193403821662868873812009672460341319154583214631636316841898439021105019903853626478420126582418994733798858979387616013835167128894291597363370954680754561525979018447531357825322635548869527016942062923330174665697440695981365224926179900357306798341191782540260396140150065883559123910408948886333484511180345988861264019133159958271461049265125202197559167615895490047874309198979705849196792389702456992781649668172530498939792212354268896437461701119713172189274302714422500549104269347077553816526372842907977581516598560585098087217950411321791618765393803969157592805208100291724375835962298130718761667298985996739781582651461061280555536802267185761334207424698216587956917028334485022778814915241753997510536183915614880539467322469824658748719060630314987335059810563299568199245178110723615456563274412222935262705469724069919679953425980361439564231062840529125875101776035583327834191310076877412725272761111995502995676256184513928793916883846220599911586836110022269579822567409413635328554877196486764399787145849194015008666697938877793926214632407044409373076247675439951669331278282007063437895436213485049199175482056979406201753468860983460707164398123145098249365179927205402760253794415442970257427749238540278308483047082954507317252701165362052091862529747854723328873216385657949554080110803409157885241235323925340790090594211758574361204840966631517690519303642163858134066383909883346033855571439360658945783636022805253563080130751626278436440447478105245491282184952069289370365885035292593098389762968251351306559803299591703302576781914726226301609631975915479203874742974613973616883005947315875039389715465922076367819402515896354079102067893092953266260461354953428691154522358710874325065278810725922470612721478694406681306351258424320633312674667387476629367678740591816113271535533758854971419425044352011001082677186268290259793917410440433137250329450455738835230309107177064422591732042118708444313136074759163063613432555741504147723551890789400939545869694686466905241718822555679981045448454051672255657021670220172180096014733752640314677301745068625089652600283624217370849779744386153765710194647104480586054878162384414256262785348530107006545917611730643372019302083052478945809743700813061084856156366935228373407891300426065078189026495153781180044736740601502864514876952237203668723822993500770998238051974396732320668179331892540558246742574471902586418395218835136158646544709293020593512483096239834071097453602913852926715206781646877626612310763296631438797133912542967812814216659211363793516342207941202858203611928318300547345941483621216554549342146722245767836505988137786530747566271948782978138036488929434009173331607191994967145100107936486903246449972999568294175612128403657039490589404314832572324282175037352680154926550500678191771599675218157589384903265614765289369210317360661429319507335784660779794539675464651562887582324534437975751991388770807607462591875651698088988854823385886882913505979602639164043443197564059795238969949280086754613035452271922884082351880572849440248424754541391398826578326441668971718072593118861155422869572624024871676169642949496074272829945793104059850036865685570329120211449285581338670056978431733294979659885212842044973691592427484392149813332523720783414544130210448706578297163387742759733582523243424179381719369050871208626041177139606603562417904775422298886009249194361093343950728384334491306843732143734888702778047813793663957258580617354178857670924687175702118903213132322162561686140947989823361665712367826934712731013375896198934641634703552214802671906687653733152828460204526128092434804800104780543407764997179444312692323221767967671703239448563972041595268789784850883638717968180656402760188208384498103979484885384334452922791536004132501212739482237826075278739466068648905730273058086609648041310839333092041021197986030002404535476938698619671460573755470816500123453340561702533229804324408055455933155242403106718440155638516163201903123336183864626419699285746472314385320852867421015372404473704120938591069204309614092359573865061619712944851932998957336635649606934544862873494697791566652386583216171626204117007984957672826084601395606423628731227052714956529359009561981966805298970402930409911597872659532980465952827125050479338621436126092148477808857270332677213931447848470652033161006595432900834761527841398254231983297956882901821625459130394662735029506971959084533949625326211364283356833118567353634339213235905596907458762923146660330698511938363273717168718368561767515736756500706819381391084373140255244829106402018437186641979870059189893889749980280869077743349037152747527186123086971787796466562426396781752930793137642796648175017502261056382601850406420986824545677689277367791373000480653643441849546975507943159901235584136302072128929765139406205580303422167130848114677623398300828981968830017389705181806829733975899692783385994616103169807674297809772224867241310207928794740459413481503482444947763631373147298922514039388983730062794883396310774585165698322648847448218901397811556717701126376209045312538491419052617795063926259832271564854084125975891565435713001681652759689011391019762302568049936859625482969043373216756497350514090551272150553285497597480769002335668528397169486522403890085934112296920689623073914991933977794981652924885834810411084786985470433786573112303403339249060148703870998615231724624381621254070321196224171547786685808519305138445562451630277756661898065005219082245684635762349435466319822001251604533575290724321949982036610974646266872849936334530790912115892363310265287089904335712386978737125992415668680588340371501030900732366537991167198785942376430237912222138137781001000182442707708779788935007598961840236119777936143442134760460677271706425844010083971899836850312960170765497590411582327621858314001495297616878464308416451134343130502343973497431929114695616844542155887865353350921670771947782521136165838718748212435400867435326557935015658193242163946043108765859804152822515855788124460901491332339310835288056414499578996182792337380474351698002422825083372648424666449321183499044753585141149062949251064646872889400904216372909453604444489810620669710876570579846601647383095193727354223931688352649169669941388455028867438037046202808378795900730920106668411766297454405162907432651536480716856298689794403467323316927908774532651656893186397646883719666839841403266832319439914957630645087823947254028400381232428259869014979936349502867011340589116758036957543363478289767860536103647495159181784883500087373534586201494347153506513740522152858502151612861329937709110508341960828025075713437132934222030300071918790303161947268110005568417815242291629721328125405049798041842873014089528828420587143344936874871075144894290571684583871359764480758802832812528725784946779281584446875544944338231256396816896238983491738601237113545341762324708150013927430622616820043929672147667097245206320705376754600542538901839673821993518213522449503138232946612830973426912334814199738087899676378999836555085801054088836886755825710880658984164210734980079687911901460981822457538707352007095807627805924966858464638756860272013384697967880550408320063435784764408223041143638344838704272932513373074799607467554324134091477783204515040290352830212483650821558205679918274821287072456347314563485155282586111887786102560130790609578005179072911792746728408983921652420390109207674901528226670237001806145101319471463867824945226577645462138008240287992383391372959800348768005346306584744160332391591840212250724978548957044434039192616329083664635809319102998576841398678059948850110701564811057849008495036682979105021634930557246592631033769766239862770931725935369815281876751859837456071676492697407286217869983159672450030539860785135208842173885291142657767128084057293736268500055033659242175835890367361794256097111533622735528224518533958767873807026368628073323628211821729747234809850150040126669703876380776003113152499832127149079319464235350148008421303743724858747525003360479425265661019361959716690270105826174058455791622633078508348532001731332793158483843107452458355842428541356057387435537320861819453833746189976393088030313309598675273639032111663648026018039721862139307030354171028834009553862822574980955584919332243263493049456652196755051624528484533404075558547869643238200342201551949355162405991114242396266430348288594420001002332036165672471418751581393635531070483114743131812934596190456509192797020496969792208905931881929593901689334493499071584022414309971186226789988394096519430569080398235909919533832451226981570094104505059598721238652455101563946462969726617171401421873614650354796130233869918725569095215074065712231794658271290768667826856548573395907725050615267766204850412682229200270742129870530993406115057523381864048800248433408977332882266622772289671206946948543373756968147897139989560358680003798574574450442162059707455482987819467909981753448201260898118056471965989857352063994701915962207407409406092234369341129379464332965417195916499641716740622479257624717477161328938734028111785948836526425271281026435686436564063843610153334791091817159088598891164887131460796031528147350775019860365408416852310859535339124115376500725062364043037419065153267891045990290429366763640408543010554407228603413976387595311722516207998648338525795656207527093363004280987085477047009121698373147902378619047931756018769101116861004116633951878327353734546734603554408144899931704267302023690834606156995715377762226357103498490146048807468770598693589476163923449093022773622398995402469715831241846517049871312437292336752280038758210513035624508880652634970999776067641575102744840528785763521400982358853092429558233073323033837680460651785800039702879568179329429332549902830724316690950077857023940935642902535132910541790329611462746997357154874924104315310821658130962584975090918174902952183211148482275275157121343204482597478332048812298718460959910254147761575118182776282690597159577148936868532425377244435393857798404650530026256892713043531635109297432008094148773943111725066743898563950111600668404480252460632040864421565411357148583021584111451733938152915358007835959879987088489692536847033374428815395001516613016129794048309427814257638835537468660861373130145954954061077177341500479878315212434816108759492000251367289364218149483492583018350213096673545811969088978911505079372214009334121677113907479743388243647917791458369709514710832643730068736505388504512268189339456912203508946625705553253036236985210854233011911721770365323256892934116527755315689720253295760782805777660883270698893004555020230662188535811688199968971083878305148392894718359485277493576110450537239768088735112912138419505080943157511393100396888443007012659885059773133213742331075924473976906912049792628699684140134631088294305192984403927589929325691915472764477009782387628687677892811903143995835770318000402264322551298248841995504412823818711361335454455212818545423797412167568898985048060385949496832571876349872917978893780820163864952532885283806883694874514325077281684582979536211436504707317208003972942111158411487007272458500015642350021655430339244955668008147938621434942354096906356505684695900391731722098369134217219693257993323590661154538665040740996757298339045230806691446797812656915422213014890001560854621648460426373510213606854042402630175261994616510626603643850552468384982709130291795667218324077514923324078169068004139172888697465120798085938834545240081545010834301981683940811787517411736685525992776567546531973018961092221160507444230860061132134901129207940522812724076379326429357694857663311802755208205646871117840246639992479005243458488390442054716996139876295365149620296303028072053829713570817631232233252912374007426070103918573667741101932457447561622681640174614493536578002161880017507027040082568890575591761281413472946975816012322761634857845137286427371041821865696543845575794667968945804621890859787660444044795345033723826428775883478032120902514228044727455428998724366823777477079616742337760200089716343607657210695625499804764592999368906905619823112027550649360198710858820035251008820830789998955834011901696143951823486514413406752932686562764947163131888798844898730051131948224067525427097562269129761247197257663514872103070886971645862077956867334504080991846523285066003814511203986913111420499615003442458026078278750628360376206443128432036512263749924697109206423964558906795362787128763786013091022681446016458739298854628123163745897459028198341749546462906182379490103552719860568721710297286394909251516093475072868154511137361842038433765720567168876873897775274670312263193871497409126364634061752344814278668650322621508924716848692113582091210018395548770709826188672827833758177735530411677644362615361220612114642617213272180658802327466310417739705274274333812094773582112722945160446823443673521177118258421015620714741237110766124218017066525042614133054827949886415736677808266812566921014945834620647723154770612661852356735470528116014460712584838464837324867388709547207374328741882091026602352812416185347725940266384409530040687723361530077153464980401103279587231566327193650916815419292514020130366159269030431083790821408530103018837510292538489342041683415053350656575693068600867302080067588661763537774774150309722689436714755892362247492022400134415086758735337017649437422245600039319763093424480334519678452381171641252770821068323181295018326794478563079316036897359022636049175009513755325572613125394936511177142424732774872548028084384969894328065818412573218194680777499521455024686078185824358168096132013221565970621886324867067204363335702645271193492316380666203148050072938001421008717048323181699838027581066002077731266065404524485430870977986654681477481377795860012277514909140982079351608759355068187015325929328363139424928927492986432829936413263423522625941839756164249532916177279422090755478007988407143199671260006088479632671503427408140720965321568572615902646870292308843033884194047092549747305371648745143835832851016138384285991389022040553256453061294284301889880521677517778241850020038337589617411725122037094261659190451691548309179351359830698307472254791317221482343523528659430103258824936513946091481392974268156968105462742285777192356977134732092177049114028095764076823917614325656585423910921575764800237465714605056101251635042052481712206600945014642178607884629688956454339034887003784021709953558446753993244637151990148915251061148613283688889231732159842010047184933204270987586566923723538579339917047568419009406939737322023924282771392794280189667306357110041378391295516002231963754473255674009187880612183425531047808068609811546580398331614749305438608250122349904705582489723493056075397272121866964825235644814632791534693982730118665522320364079789891289249772999767601652611284666105932666598741433209803664392834438288129337592062253386958906722089171806087523924588159697415119011388127530827785900409589625229848286892026624060497267708453005889251656834324696124509859400539482229877304197734338044438848555685022299257655530921373800814345065075276132962738964119712372554887886400842431183433067773573378434509292558041500865935042178172711635391986853850729526972129897956329346192920471080359078858812843033921984158236638522463406422208077063982880627383430093241633687613599121166169666000359514003445515592486711307174257709283919596952629647844820718288394610240811025974431579524700940918854911600449636886507676620146961529224473714997748226398587147084592354917422313937001776321825783739920644396481821046442107912657532012163821467661655770787981536079182372392083519506685748194694447493804698858445708563277446790313810930996349550198373187485015220081333544991824107694808518610007684695522697079961836045390831397551503170248797741232900507968708497523711133135609018565924125554591599216836727871530697774949554560138021223494647316239181910965760144855842153738225991201704886457308926902256573130187329552566360084190729164247465942312730619653348524485302692027805177758940494646318080215504836397401611037373385475243320492450802908055377800726446868916514811316984025225493781006345866527551448946312660098906927097461004897451481967284116584558360698531053794076581831105905504168693186900535164474509035943866625875788668426235672093504461602432799918932813779449854391879725754312128080059184415319882925579066310620575856604596513866963696406995555927323958916090449793888526387599991186436813725998015336783187065404906377278933039038731741764035113958971794168741400366869609948743377240385131951134588606957367294990499643807101251524080826980670811074529236873491256766229820950156977302377203038621604784651457674149130422083139147343158522928094670197939863686919204744604904157908001280163150735550628794998062807252957246549945629259324180673975569971914342707652515181486939916654641612662791630264726377218120083359567442921147385358853124370881984115269288323439907834695320987416328929138945205440374561938504040152489920553451890376120968601352593068514664889461579629450939077162523721058414987113998271056962825072780384473729725054327059218229489508740353484699747338339281211176477708465616927275345722337905606273377145115725174798645960515452293651466729469975028127541654147943893722516575489620264850570267040519364077402184260105737319984998713328934523625077573861644057649971144939884598787902949527886444878836454219019157866255105169447482670573394242748244817718944771606938452558574634209798498876839230287703522910626785231980759708773805187888771473370495008296096194102481878229667692775597627007327904963193861942903083327724857461519665347643051447298090536989373340371424465762464639566506509765669255844285722114037960005146537377247203828284889443544886043093295649242333614221488390810294958310582938647923088042611926747863553122667032400695793638767505543893417158390847335344272865109877484544047916612806866410724572006565313639414139038922451260477625415438631222483979349090692812167340979659819233484246578374177405158467616330425073734498767402742010333894279074033329932830944783446083967899610470775934560708958477784347671906172116979454361825648516541484180415266186722890563492612583991210005426855348104140959087488754976746074143149359412808047209031388180423778311223652987642103934055117632012272891398344003766461843865226347745315900798132048407637266513287518964598253836355089253728494890203259558374988886012996356737360264080373440003543897657499638883957995103427860396649352469318993075591167178878032288632369311580758276643980533392571235461698866715800525509896308492455598121022447309210230668762129752350961749719084851410234266770607117955320653529189560811112930957159839903560100524470825307658870178337428455538248239214786127881794294561483431901760258256222821032368785909385647412898333674539063658136322980613065031395342517443136524166934931263011685777332681396904012940659661368785166996707881021404879285339885655215530726378510988376068328591885522229145172298911972363946767437103468328831394006200338309491999989713310979464763740434773621896592676192706537076163279320043221397603052937180921177160899430475302989612394270434440446588466147532006306212388621492095899077872603332121642429166265860934614800767825446010317227406126448550627269168022156340475791400156188786383831557896359160153013556568769425474458137243523885131755870865241722268821307874861794064880887603704473525964618685026160646891414946658199677121304831351956584853134222600796309258632923339897352326605648300509788551673117332412177644780493395490558645285070835093560118680259777160572641692487650343996520465641279965690815913720938243854461507705473726277410968978144916351444739656037189292154340611099725044896549205915995888472811480160843954313225521251383500736701972163484122545659168885844288754844608349527776863795529161058976873423117943810616787150839361916521132431790960863525141910310922779171729363705702955179708119047336313323518225657925829654280393671739085825037970037973083055948860929041157469662570046243429944386101001957789237154824815489677243342501270163566169541188600978579501718834993200879194165522809435929312414808687584517048740092531571476254475840840152186904819866354537393000772111461306844775176521287889806984603891131808032701260261886771177602670617758803047432556109925280623049004723952445981916893290638778553266180157262815894826662739863666483135694502841842966167999904425392184267026298117611338755293656084421605198394524924620075798209426027588725670520418694458972738011970596955050312415904804744433820269403815475183796507578686178646533263885753718427963229498069924285769237310395438749021496309259796611339195311548813685168317762724370945258498441591159532935618103857013641836990305734985472650663398016991581070437459109554174061010126560765431087341142189075044202605912068393805001170546724476938960614829101836096116807024526808321921630488230757190662291058425520034661082442511156356253694629903390583341654664692855955140716506016126252074714226666043802006780266971031625812642112593837740742159497887876839156206803890230172475977492984409575112611140455252182917981868892263488537988929427208827877408413390672291021285611905627434470597131646625403783267493759055024283425939206883571175014577429427917260815494385551481896447906630549541605425417721011007469704788378802111798598123851587872903767502020307864054016965009856499953975273312273013053902991346762379712357183561724253230130973817994760473101299515961608108091099508907411951221803145018370809736043095162872237916091784433588740127506853455632458783500482688676138940467610828095493362979734864354377376988855983547276260252837899136292247693035455813350839543598490686045121241752441685453502055053940036716250346227610911953241242916872909931696401958662674608076458583133557789774353081885144855439437373129352214498048780394000306587956498039398564971369095332773001962347227467048615189463066596888872166876109363508451478243832572846909201041942563542835992609064339526119966418541885121759014148546336438167795067014672147434720421073722988433255693269807198351045511549642415984806996347065674320466518981898667318519889840510729896540246987968844151450900832858367817222616799512979798821584706206365642210919760907255168312118240939424059938863613195057480820472247716009584720028324635212309675194471072073543747685365052118426991851126452095574095099490172210012945892200946260663503064578816888462930125318817284384137608169390964503836310046049840315012263979668492843519978290483583141112575995248823204016574665114239159164362954390924742949437076450324723226394946971797413514531825771997217379554281084061549702419496325504677996826965835658397939763417700518773595181629150576867430868844828659544226931452382709378640573273845374982121917864182170808862848676217912382076709134780578340829749443566391869352816303381517387352784695645621876108644699884755639426592028644845082649891467742517175217407688070891879162244296595984470939104432736369583908798042154913512707223271740843786175578666052900778221949292628258973754527110024426156170847633632678899410103903761638374824310273168125609095050150118572153530858220008080233009151568872868306236386562590269292940329248236727005284962785667203502727779841950544138117977409511601035585646653632499226537942389760660660527560257706458045680114299802044846307522843171201056010246136278992239763839908295960846237337879212499649015921770942589299494459045991651173268247821468837602008530724909594901585284266653176183312236422465551902815301448845481360386077980951489169596137059622384606499563273031927990722293494002769460102780131894055910984416316658878320037487444061966109320686091824961755653736922271690693244496809344894746276205313087010476701560598276157734301592689888970791835441084352674024921657285618184788604641231507445573495639060729779036472631945039446595396985609627107925599282916334676614368116896417250202144182727267281549975633400515141619461720471296563540551399533697809357436403853761194860052474179523451489142686005332010312567039884725922070016443849025625545777347704688975525307377691322984522339666755020564352438634881880966956100711559917862319888904096264787909743006095275331857105622285536365547598614047740156918886846839367646402505297338614031121415112177400651731169115848043707174056756934051676886879054620339505866434113489644363846965555271959493880404876599143700698875401094642969145461813790535027725662904686225667210267889152929899724710751530179557852435453951643856787773089966063785289869327919528917917089376293232460445416397551926798168455964991594659902866078001499968609208870183118116615912015924580990089979465491344207423344733126804314675127589677886886177039121002702698331681392842137839104470139846353555236219596154474353832177676760892688119891260388074280981594302866875220973316653282803778066737269285369819903070653453084122747335299560838490052623203880250155068091760918084029207561317482041677243064535198684593632419241241114016126211876693005439310761624714283394417212215282758489914288658544512038509877845394475252853168094773642205218363769892362812939547226932445631720415830320248884142061938572767709972049240691691276360971895133756143361205499904987976125260824940008564168684187070420707219245506702655429009424466681108640762751144313533084639176623790832071847754119928220910017776797706024969862408838206002147080720601003064162232717437504054293063576283681005011004023129890456133475806719791341836289153096997579569198079607416349846503023681239175844156110045932866203569697676674762473152534208797990623978444171231624270808308362578667611482451307655843595656259346592586590719682205145126819514498996462033752311320441700230329981607444401433388209127947651801869593021487687995052667195079016194431907137068662027943478640225678899084684367528125431943816136723545155301664843051004252357274621857250781505873517147732753610790847983413884668134853851916806205033804162459613518865989257325291105416657568791983952654532355641382576066253010113199050128066882502130786539464365461714731116413529128587852888148085716623952780545060132615563321463089327635617433318917608517962352229791201858308625929774529537449105642162351463145123505998892803028571400007645852304705890224285357728533965534429445681546918639970507378476542406621554471671757459236279800944402322219888134809719703425174965760327917980350662616404951671343853500742959926361123113248477346053440485349486208025913829011033925842135065148306593887957151735826111059110503144414389799805109033370932227357604736430359550890184171618739346815105603266651535428015048852179245882065545180045256868912960059027197415361651884518943474777321231831090598878158398959914031280752079546191029656499478178132123177736088695931442426158895347071007812500724113142416061608389751298121144807414748494711254401334467375647955210655730922121271989339413393738774707523425098337704262273428152751692380145230061690828443092796730051366020303920076236834803174691821310940497750405618197353541515836587252223154811315731219722952595076722352750866327489482757675221916674808534324017170805698966892643181891507828121284542893412695483689095723538731713721112213069483065020248724894053061381910385714596590790910255391556477973019666037718404026798767998077215962452912293088128530606743970077250024372029665292719696796981327734366005600371977658690074292658476551062638770707618560181679131519343028019683904935710890512898229400030996302739378152585074554281072625007569933481581324657466249824579342985166114635009797204835552452076773657659540690057063967947585651190754791723366164522214080629795662783945410456594401321895581116648059038525600032781468631903957683366304788717585139958243679527686047669035819086309365467438176159660074611880818549942672690649335089325980277354622557550115667192240993910460129017874493691217552534333827005797568009843003010283832116156282038075147116725337186354642187712728832381277130041881888969547052727885878481773974571910278744046835229598534251935291307128075019338043827506435844260709499255022018887156843705840378943420677760467205299482115206327733790677704437450698602034146292841223627435531017695368546861547730923352807652367394366043345688792555621773930647605468265502469727869838567628738468402777129324905465963477223160744443337481894166088334044727250350008151718428458238737728664183077665170188445976489415946113319688205413678146596079195744518069174324620445219114186059200466178440932985295471768751427296573423677081019780794453984331050779076465316480242939226215060253922622876869820702323584576560449204236923063087904254816722705330571527705636491868241398894565885532974645164759532875135087478123994479707380465431073344162365948029696246059355481693423771324504666212881006138886323085648856305580871904542121018257282484347826565483609132492426814325359420266393554457850964759518277376990960859077165652344258247154900156247016545721870857618736983922920148536313518386535648001521416645727997167402398930622957409961450255111481462829259579172283517159606464884925577628931335659347406304773725557742237955873152023737124656358865242752323757683771343110112225633199436277613113872742625540548924787047475205615885756229720205192686840103117393291929239649635767257102043093569138422959371766364829848406398394632665883710203969753080355725936731623772912357563473261802526577756762969434335431696524171275092296063947767871873197965891758065908469546362513531357536918016094094553765417517556819643336679106049638203022062683502818862171585497677455880320094026658433614915880118233496637156967354378886725161043880034180038629675159222731654278484372437144017291114089482831341047728108098189463670532710561208180398911907509890183815827340127601475374970641012261755542107691605510280592144349425561689584925422872516350819645654172202535333186231131713194735239528881771899556205850788361498576004943881983309447330519282088278274937689409312415303273205936205216857014287934100540606764732001948772074126588979410913151882011343426780176486613395672699403080166541191341422081097572223291883940539427464391725688189205475015767535588036397665609778992997858754141041060752783949614049489300059465446106637353815042427148341872038581225844233656244229919226936288486075984263848836364456723676665842957470844447807496171344623338566661347461572336921520722061669522836340756200534397342434986410063781032543263728038249469360683788143762880959617397909905091750649619933254158412355304519420204148319588952706873816950662353457481562321079191745362931807951040705299817275503852940698307224145703026539209579352666458313690372265946975819829210303910324533678337092770312653430446023163120418101778476458719813606921138727211990902154636827766874504201515496762325847617413333640891691184180051538141173355465261504956614544943563358872481065188215965237631499168486073675577635430745010155270071620748379199426044051839060904603046265530314017757938856120731673916569140885360107169721793940642428756460432566406074772714183853116242418068236797812284304615505348791690595002873619485807764549870043091129829123658280338398131197087712596749542120165286601236270623572378872207520019514759214527821236279464688204208178389807840867922824383860572565774315757787459251825383433820527151208939392766980652855866660740739837974516098162902259998334516117931609565470243521127466869340918842806085399729316430394852398136123439388957734687154272365801425567636080967928949590833511088379599340107676677310095860323313655307404835374019829870910702853389679891950480052140446555484719507115207156826577664842767304324803781707767456859843100420296410464430622004614245222627902419846393450418119163590442069498499207206527628543691458744497083616189074564890985867317026400020536782925927438265463485968063019352061028968440983014131846952002172946488294318368662874785213713972479130824681408837380847070245141020303836123452368769627736411930210793992558669895577886850028466324084012584602033258057624501756419081971940855087667742994182177301223875880587120658837924350645734426110287569917343625934982343310808861690945909286246310533969741273693544020107450407239026481302203379839563171704324360301126539192086319345253306821460152580431176131521193856406908556036941809553353980248286805322708425885354947849944254688755155462911260687109558858099139497708467603090998329833799924356883224577680035272230670394085121844279041680833656461574800432035540298882741311008880250273319118572859234095448314166822791301852658298164452180580299192282654213398109475260532016487861816811059275336424251898069302243365596522263072565682930318978710638321866997187804232258124777429649556293168123483671189720523445616570766643477506826158270894543963494489000886955993580119904023114134694116200405540995871316177626912404488639734045902515713278620455431274622163081868298680212617707782615802794325178378144271040407526818881472310119031713731121463969756398890590975489502081979868065243490753976585650049261994159889861743216733687679974756518175442368101777683149530832920591047105861130157463623973892778535011452504280148941101958461370964515203162224717573479087499623963943333478553689302384999053820147509587806476274090032140706779074395622454601560348854852961302740111703634081032156237828504665786594377671617256555157743975020979769836027737666058788931844710599175423387675885922127349705949536477713557425016673115379239022269349006939736888472263273732665816308781384189847677071044074337924120770841490176171598781313051946074517753441112684907556697231634827748883391438853838113752205154616934861515750520483344019131905209313522041537557615208639955036211012880358543475160150387654678443389247989053158597936538283898471000654770551516114887999042183786518095268437967710506823247987013862901246001409569132087174124695004043284260654844094025486731457217117984396220910454681568258601288070922654738417467146668916848119364531238790635308183539421458214652070069161506048674319994103859165118921010630841439760682653145149812621955153687985760279436122783613149181988627505771021003995549146815123557222759113662104951209789280628470040487025311767081521361629792067469482554910534964250070037021160507613371473319386987067902205957060683718268907193282004717577200051648659276303313381720021235543778912319465339836638219317876887523511821314100638039754991857829509909292007700156573184004390981805468334344082547670843252202237387553365761578766559798539460210816003225898109913991403514111310257116150949210719516633083603898012030213453339851865949414615496086300192149605122971495133773411882966453164442223218590182710471434165936394761110528120861157959153698554547635599937689798850409262949860661145929645923097212331685048976837945756702110498656407982532760171708021329880650513439228232063471339536857987462171149501088863678594894058308890873446236145728878630143311112757774640336698244544869618939758476420487359689906354253421123785764590706851567816851989906400079297171813289445030023602956086305351778827040279936461031133744558132413435378684562492748710838692981242843930452360126854439690182419390751344684824800442470698584025175195172040348340316498415244832686332427179959449201742842861859935530241921424990835365658800067048365918958534327393964977527602007667442499569810039119999067944162980641134932690329329282522610254727890582552352504772791230875405593062204481486027418494809431265273767637075940658300967003740196480086911991940374243843248676605737594703564210098616095414435974682743725570358478753814715410717974103658299958287205598557434290042564960424227772347646862138346942917760005715058922816072927420041032930266216374265601723419855076510928185219205746057784128650791843890725486701241288808953746421256000582437134075414426640536702711796495532772320268959209653026942510539990152759650896546490368293293070911817204631725690380955196157262120849138537665685500866071983135805133243919147279108074732952990352550613670213614388499227095866655735183801311293745912548426524883648414497326489873452160099842452773529921508855761904179328024162428665125235713481083150706625071260525077340414288077911823515787345028159969595270858658122461142260888806681944271646340946453761198005651295010672669280355673786308893810712768970880749653528335781910214246976259492586443911644763173510115742332077772564409704726044307492077392726620153980826286877051578900596170445220170025013541249132474473658004241607375415854743634400893195025681634592892798001962754557635450416607947213038820862932830371322091191773855306544405807728877798188120320925540512783799683367472771215765223022643761086580154656149449570370890037739042410292876444251328125700326849348491274193711706802914398259158770924524089352207186595841122960686917254848962903672100347851673177177464394471926923983343778766319123580550500515263434034634083753280592522644807821795439516409993564113047582192765827380506000583549177980208665230801041311535744183476325037786264095942064355056528765036852244933324425996873353501177381793713364019990508177035341350986935585601467722674810069591299763977545621137090348760718427280503042879243863664550010294677367206110622632390205704724431582929937723183105952537455330178762944347264823795107145886651838047337592772704829900984424088228749196947810618855402793179505912968288808734190678135591087382795467400265567822217359000850637647740481159528466363030399031315713504901121877960240079598228509083649901044748087616779883814715221316625939682341485709056032949917174562289427535261821340521220196508530062454647641527778495322589561324456381005209908852945246220696237534765550841970695215965896080740442723794962216948334939529967409024360060053765565853021767416404638093061518429320701714881683069102377912175725544950014527780616773812188753621358351727403937693544312587545553258125322039118823691439883199683061272411893756458529238718688135282674207339523116890186878957854699122851635977141126315968729946942588167073145864842641936643658179700070262518808787005709695843038992150262282609328935451201419464814549000646197057689497788374833467830240862792688256312601382543385726756677167923728898612962046218219020031340718758796889120765706993634226519400347037907881183615334191524184798507898972022992836972984619206276483814621352894724863347021172022585232772451590965613224037112715795455393350345206789845050831375809728693172251802946454244322346157067268543382156990025184392476602148421365490270313726571057703014587009170961811582354119970366330304299218904482029360843371241798227470533133320015789142842854798448675367069246397161741598247945948411896283557833365671507949558850966687230680109735887012908846374497233445663476696862966166563245758041602422086883329345194610508063874321861690938305610573466815759327575768788649515485772436424712629002310650019157167212193099215846073960667867743069971879338979367316592571446452071625068750690013508534576186692669841033487537133549591542318448888332399460495377137692021545110003915402360249351742019770736723259257292798456826835287533744120414152664866879818882981685220502629212410043171882103635469702678570092286074354709759182146235486114033314570907524698419196318870549973118851468392018114681896381297686433146580757669144034592634937586773644070835061487667495641801334250967402605581778009108080950947143002835337965895990599511293622226482069187398555029679363163662228390156114919113659999070769069871907781715419505949297240481816749242505410511229261756034895948542954335968831171874248948437459242790023965396811316784298574882889757128456019401205952656597348261704343359646514997135608670430739778209508652930753110013771591259596494560308816631438372445376287790761235694478851711412480550921007314706488587349211963210472416559569494778818783255355790771245073820145123355284888909415306964079885009894951899652492470500424199580939209408018997272871113005072678939153945638029085363471390019974182040079100785038285437309309911043571479993890824348261236487184863390571724435617632170739719768922437039529340681570269762786463132185557631451631036700165268354247530753198774505029857263202638744283301755732817476719597974321703866345969146876378772883152143412996071132178966984048705236580481073380757002146634562606159861497547276417761063280287010319180897490400815079398727334803201839669391088549980719211057446717167312593108501710467389707704513338770692537056016252984308710057290625497971976569974519833498619660259402048560910620338027023213347177317081677987716479932782782791871303222890541854397612761843070785810786876804126191803935540475927066958887918373629202343946846361187013994072246055383770408561495070605412023733561838546925243431427160593893514757423493451377244343608751873413794792204023123813952997642442880350694768497191944059375080590481259051017551758413139145296189892657146469557449942258709962348788977120917004013279434803270781936578801380567021313628982192103380801726138279134499288180373183256823175229070406203833212670354475535136360990635586232438428584279689702719369623728221705838078575996952970674491207520337053985046166090885624775768987132256352201369543170253560847608049635499637758228581760461443811642346702598710904197482837071497403774969848323478155299251478862156673106961816216645107016308665865181612132095336746680143511456792116946411306367993314690462737649715229309684960666117788178727480090553556907639849513518783449767411524457715284450100425295225018500739468544282109320050751626930587609280125029015986834493366146746946515421094830238395848058355560929447284232968032372294394086064591188352058378244522726421429595204608151757235206395096414105416759382101858316550289829610346986019256114015719605385148263984395551660654230975801417204288294310596130430060221415795157811747346917125455152500850980874523011983356055226507001644412355503914118384089575464870436289623202092213758503003255111572201218988214791540551917965145350062442624310240446946687977240874289546541145395554692130579149649784363083412223752317392166812317813869732212652529364638330882588128090050540902109646241903854535899171788961238259927696337149432676954242030572762829284009440334866166487954561961844997791102380422927791884402718468430826689018523381550649658152778309398241628409936107441030674625472529654517067515335452495709358902441728773198880264941679547945259972711229353397193452035805882392846717975594488436580267539444999713798447370688380273486866606159402997182893476777782235391359305116314566231880282492498062589482727854475937965362682703608049218458817289010895405882274281476375837256410526601024620385059407926495262235395853344413665014596616220370363894718104612667742499874730947461778816461589770760496564333686717485210371465942085757724708890690820827291278512759597550882278282221515665196693080966407690922700469451428895167330070174079280407598247611896179395787571709165276344681728277575169748706585230887496410959254125605828574125341223322617928801687878866490777574463784969645030246342646937421250554215337355816803243257984471776554968403667699545183173115774117340945217517560614246117987047441286116359616297110173373546810705056218710385065447680989191630481082698866733191936850949637067347011676160208284433378604489319510128775548410515160812614741320688377655686656676502820163208287565649723373444888318446022675919420996429073497126962401954236070380169358477717438871727101063623390433153362250802995072369307608509171316904927158967584561343269919701405823216008011043253715028733213607654983892145932335131093483969469360390871116076801581642511361119838174663609693053078166996295010505168156684365387515108166541844376762669292391382208477633248117485605892632842928334837492653420630752775742399430095062683018996569256045444335634825926049031434604391545267494424358146661176424647955287993810543447467221180260134036355772802291574152558939316015209538179744249561551155786461873652117808330347697555720447995857167547486500878830091324027309758119901486582695943823417698036664477512659676557144467505021402119604436404745413529001171868208024492654066067654539600903758921677071864765035255591968206272117693914881578208748382997616640156755309162138326287582787175743805352439056745816616121978032123091974652319641651677375585496490369375338615145545862801772765364903168029001803542439689241635706286633891336613837098175479147790075413006961959930907852073581363462725557085477284063494151301467102580016537952085576432080137508372957892215963593964733243203617394399020656588952115844864767784997418044685829668843806224992070986906440683399094017415420587388582520395395736130597198512953898803116371372658962205395393532610134677593756062907928038073926615829631831451692699821599055768548075880552697239239308946741241101191127296559819515122387895268232119229363333031382530281751221031337717231693759087810370306328209688306318694711391139295435128022797119171216725838995231907764301220610428223193756436752752890786800729679058485591744343458782295059628862059181916598064261088277011368766013775612828284371520468695870309479113843083851101139576524713185073505463349554495414130566965394407363736713980778110753512005339570567683015382077437510660949639770681111846853264128326431406099831739020446299935240893431458565951532944084371213189525051957683162023288086070129246817078737730191868116515202439763639536847140811839806602774805749282545262620903756469956809607059726475710323562287207369300270415265071362827676082491996702647194439306012418154056744211415212824191955737374117597236901257250520922687145059716237274794392305275307085028338034830605402483936444979888420812156370194728227001411518168025870713567470843413683991729005660055196874153464249644824165060848324486191644101031439859906895422296789436730871889595769317602874378309382235730666312153225243549682382113527561185036348776734646502884630747131980888502359628500595541021599090515157175673222200338389185257271597430701419942573068340270015406693569603572377127705793149095631569848529156253353278811008363164244188516906975029164309400561289064898622327324853573818047967476062163047148308431569093076165162996520950606618432461410789272379624537999275712829874860522932852143577093730035114162795107646367246821010278104408030898072769263949062909455051320440388323219395579970783243931628696180409438187492373692352108977769195768801021067133129663297732413238390623776363069033376348501690875746529559152712350001279223906689212534797329405912300223968058330344313222045533209177251239996873567850960500844713603706228720807495375120309511961479046895121211199149139049079943518166201751260543992406519694071146194091537108572710803422531986743862506494812137799737395781584302542994614340930107267326651758749230620260736731792755956695944900334297357231547491974209471324902468911184584235303576885062856970972146247041044464413911320098522540665242778411455841123488466636798024874008010647097374010301530304050391192023113883754622122462521138025989546858684281715902300427764852090621381421508833780610307785296048832024748926085955269094746696856175820224749610901652700843366797402150224396297425655328560557503740004919589086804011966714075591145434657115523347673768951696973179192128110326158461880450692732399931037036459125431864660176699160281474888369975487291284011328410430485802107906876968752939720706153270510184511007055674121862337025917666868337162932455352060995288956677074898768457293223628175604488248754849106250810618403953932869486579683084056522956628618808325442179892126516207523641168868890291076822463883636621544347801086229013376487315693145275516302609898217304652647436624346054863156130515329008876711729411029016134537024253925929427072227400295762255718554908028808676352132512534650542604331351471084192842816808278251034710388322368968811070830989008327224879614970926049854543973963713390908175564083781600629333663974919409655182821739621008709622024822016136071771995575983786197664425769818712366657357988674879207269046079439501123813230960981331449327022233561805059644247454677029558518390753994775101898597277211923779639324765751804900614284669046177366845437328981642184458799019077119683830108505033000290245841016747698765931054193475119971814264932141294232378961235905598237377551768752258943519459556117745010481196639196191572948620645136449396006641476154721780232474188358298414005726530868611546187806760243799248270435925283875307382920972262857140377728759544802216598376385557646426151209171141623654936701632870265321275484242880634762652542406414188520181358433594715902867122023088176327865564313464199478238102387232746055730836795564804465188621413313434789089346519665318198176727802876962628037491093827859177473814776848480051901184897318791427456966601032174171244021633586198473556162622545316810932423086003785717941373075520698784186996614311951078936834526210287964108145659147147069082973877715641494089280532378564147948677568804708525954675855187963842913840323934855001510614400190227007065542457545094290571249548518632793357879373189986321767160336218632625972816170542855783415982923412968433469187165272750880388011576145368616820727137334349678284698775527882294803718029799997988784731977051677633341123790204725194636212925233111215675056445549145718384216562290671706150256468278021175367276374402489179414300547829914822075510290653307726595043407337740678953107815081594029021408911752098570239356091322069685303200716489594071465110902781653151874177043372916449843919544124375787178656077124946196389544884119975745961926949536983944505723851453218620295655006404399962194419333523158168352630991491506426479135990386062610689647457310168975594710046063696393399667446528101892429254439887976663281882706871657802369978160794852123962092308192808971532709917302374607280649717319440498839274251455235470629444851917578177677227028948651279169861902868273465530475783624801740147142875258131258472267337511053406729270578752638249514358899524994981446260744308506768931448673494988094772399233271240252913699468332679182164315990513156034576410971851395336921276740231159382893458396920241422967942364802484134809896373743416361090700111735304831123879773571935556467276145090931357981340780820923191281348326270904373156064161529395228705991429020255499626732582583960208546679030487970284396752208609181973226520826347359380765223605490692406615056710218628721448520635336074457363321711604951854230883696627652448585392898104390660257569684842324159041499153126688452276510157688344961578409167300338407600232522787494097105931064068007142722392559891956248566018505464873279919697020133248027875676094220173660491097403747736311162487601383624352578153371907153161593610991838052814506883109084709249900156939468133553908505471197522119335281063143524985572484822708417144928512498959779458330787811692850081160069204892447237349315606885396673508846426818646656131783578467819009981469521236525852514231101365294366159141316682109316795938764023172388219202390089782899893590557208751636377215101821039929532338004501458636361913832829677898395203604238084688803245477083762232672757227638932914252804725345292161682715607084745691572439251754081696304698210423888228282804626858999492432963235828152250168006939992104842541518865914554508023295583036175360649350865713187717172720670905605301225281521507763907582905684428811945595360602957602026437350841034042779507143095036902671489033471860761127121591295590370410142442075442208683221322890366767343635081898107855712621327271959723344603488521756200790847261213657791945603088593067153101821800502191055468242481294091251836676971234005390494775533535853901921476112045174578969061354566488360189713838454867161664289305185024900946218795197842649825632685393462222394355742422227620215140003815618979484560476800722932344190937522537955510289537324595758130989861839385400440004498207057223963035500768224469647943208891589152436752065220332947403678444522697859615799527233077120125125534776084955214923084456961903857976400694243200308325998690352025026351990263684662913166970923538266449621635541063464881352148111948124953541351354144851272074888821402285678645170050160680077369146647916278989188848741476160780504537004204007032928604950061395387161896550052935459313225061415861281727028567298908261030373299525529283143676919847071943559391886408411290198958302352575136256870737595601740013371335998336780173529411719075185853391393434747686425183448433815032996163620909552895498488860204363961066096026860993428618287489645669144738475963139327791672033666091298815243231838497318935371008113766800633999286202897673035535714371182581480069675365383702047565595998569486045182128608090739546675752933133435704479558608771503883341073237411547055309979474561150756366660245945451053824057041484120441627704839631999222113625638158433051108805875576417683524627843195543959689647222833741927480869253542798616412789186117616242295073336961053872510264324348066011873677885157681077883322012069429301161598533862857187106851880949588424241107998957434448405196815687831310152047529570669802793902983326643757766348140423363870532875494089479388138588721484316196207371251172366775692181217803402181539621715625046439907134862558695244019183086067739899032261767663645756255761327676691132362969404986523478874217052735762624769934377072191615078775761998349769261099702459201365318729851885727590357453207363733114753312033318486448688274299213106887921492355538019616151230308754415921474509298651401299579264439520366115052836827699620840740921761859537209595506517465717953192485275625787185414945474327391498177317139564202067356575898148255409406150404732920511858537567743310197199662301399561526329086221100066449233048201351257274802717729464390679546533444039567754044878392728317998509812587959580562120769001863447728680006184969304308903712039330461634924790647717326041826189658241065476845096378776353814612926774321420676585115667514017428751910271390393800810547357633479745754916402755925878969733049915729411706978605446224820479098682319704162268326025494569335836722746501181776149507617350391229954059371521482484487672417178308589030122093350459812273641554139523257638439162496823167222131341111466943887724906222121155480492482887441475245635748115023971287688278173680620168906846432519490502067984803420516185874857484240465459632365580295066278952480526133759537764429574060425926199940470950594749797835826149768721391545534945720694820349339128144291864537086784314362801910339742386173409931633558218643432311447868708324821680554346759281276274971069479779930740154871427467791799001854205938251938373912612852830027868021845233658131914672525716875597576178845751101421065685519154611735418348896868363383318422257667488110317656165776667907280011290970252352176261531476494307036839264533817211839402615036797194306802460535237289728963327051551347102449142713955466038526166636320993226203879809222179246852804055123839367521321196634541249557037183602110311968579963638794643501885328071774893983039677734141047093238889046255849558320611102295583077371973290438792967872288111583749729026152895208096842550816978524600229945349684770713621658653895887957125104944853069177347765073121754442575057962159383870708749159143843036165714989138022744390199581973628965883653857343766470666486195266506516611693547938403458952278581034472146446269068788155519139744078311050952895245198503739056386195067698680433586495585100554590433406725172436769615648131232086334002696154201871139490458318990133156970374249734722832883116835906540189040862382119053902223782995526285165273042809599642086954934874042817521798097314504085273906473335414253763704332086143558388188740718085155502091018023680375896298090448580137049470269336015351282490161064976888043267876434025065207322203589569554525365787717786742744023362628384577927271308821199307230028286301361718090942233925481283682863878424784450206129455571955148402381532109748520954172075338067965109207616836500595358077113671476603951465467619224031357006903012283271543757078575623813216248982597047891530624271479123239085905516597564055853583403774482414285668093166417949728788424167177331951694134917734032287658102967023492589836038844078102034602701469887462927079541200130331520905307618035745194524326606533945708724224490606415748064596860395875081783789955829471505672176923449341772593604609849172215084811627688030069915952929872248685456673748407976204900873787061975003215040147776601359461831985706342573900155356069537528482671965628981143926873300212669690842630447788326187593160427138978168994881055092374396164793383723795627762474265928966125652007191963027654664696496178847676322990747152617260560352663286346499270003558780964084420788085317038048494938705394563509293414761457388967906565867085102724374617286526560107204265116912905853673855219285261406410689865102766211273495726049814964450012561312683682919074681867644254867084455684003352889319892808075565067987934494058435654167080166878121479315518041203026783724264505264002797675683148589394379613865977651230581344084261256890102208838798022591596784737726843678021064210505364676925697599492963133151431021523105858350134610070416306471148290540764634659173879759653397618985066231173246021227280044423327356166084423817613364665517081328921386934276441257760487423876979537185749237793035858299787287334896755749818395200255180547489333186345543616195478469734911151068070977525519993860446327535510979153772837751572941744774715588160360750787302032493173104444990167258638176263105360108743313062293755115632226281192418625688956193403319167570131768192510046015086714600292336134897865859629816809738499304476600253699821840239679817220838322406623246773391381164452552787269473580957076995795366590627720810268925028017637829748688614897376191421571878013692325131603449699076232990108192996735197754010701898486304863933363755630871492529897659730318266867529538576614897384401767317818536912451983832719967518505215968479871702867387885412231110686124321559277952027458836188675695507748108710145310218891713582303991351148117676133298043857785085582100731905798623591944733499790737068351030929641457836897583195818620455891667841547120778417085391193153172456839280364002260322792994653076515775441731769885533319942088295278675050727513091323632410362275993789312445444354168348710620795491703730428747560415389230901803825213491894577118304270458047676279715387329558062509815964354534996623661649432869133058375253199145562120383552628089546331449371331158656785998586144799143699392730045422843701415755907158178332703711401201085801252790828967026561001042166375833497649108617727380554583751761046031918245933638066570320394965486210108056862548977002434687307877003270857877233667013301174727102385748290989575434325940707566358412513652010961727147694278593857021513477504269233590840868602987823433097185373920185494224364407541882406843043335465112566933963057253723311915561563348710503243784719683695937487109499525324160350995795864556749136308880146248246784267860556040513363211332144245208053841486335413260806496554753194467254631562378411037824447640628140271646499655563893038695931210977198810719883383398257226084558872835249803081276188095248988272834615284993804379206341445265242234425919998219037151718810916865934372751297213083820741173736207928743335253728943926247741727785124480471861656035372916480373674428446339046915956595683625134904894297874579099806508317765249260781724682612481256810830816994582567559418453144040794532546561179644633087924536927429493734202451272158621232168326910291280317561000148035533747759615772510865144592551153116947149894851984359831889985454015265386048517628899542112897237281812996431363616188530011539995779662038086964901996950825421698951113112650477184197995901069388322277303305880716607008523552508253145179837254415754229795682400257898467279534851146889903937367917401343246218655178620297934746043915102609910731827754783467646596153546855774234933893805385128827602319591298432615241504529935154043459927068571560490442816495583842753108211738768885847066995486631090384069177881751173231357065426362671214260692946996459424911874698942802555441620682862240771236020354260108668746321934079428777730186209289415543379350921361959962395833886630018639003050957090311247647927324008355811725242566215326613640205333170023554128653231840142605696808649021441134575881059029874921889719408339309542306119022402785028067982207004569310420824204828580257888123567951649834305890473474308861029551328921278889915626823869867483992886131283020572225655154012389944681440060571817661055055360476409137158148873619445358172712020384308787430774916860509376304824896496119717016410480406995268067106087428243178115481849750065062872760567633529465201523540716079871008103620099147129415668241035686634394044176848297068434481383751658226111602994645595247661934663476631126564119451878646696775307979138716406819417902972102493538772185728102910615147256545470105362143533644313838811742041617420777987126512601903190847837319517638848159872683318770809181570262853592714506615059845112381136085207355843881450860857098696252675565399397535620684940858584346854472617829464074769347876728734921744088412212303139485838039351729693494542707350874545936010652400559159198616051935356476042306417118328922443913865484069640569430267401750891530956323299790229952778725317497909431208831783868187736976791626251892648572880178284589813419165234350907641434544182457508379305196463642065071923983180412227391089630074201792974671893573050868537646786046724452444510395091986191146362018127581658006713876895057076238154044132231420421312827001129800101918931342432865644548868411244465146716749157922438777663727468335135502414248222027733706727871275936736137874970958355385636929720115533157450688219524952540983183640023999141662704788039622800372609634252552853676723489939797218640757724109449374150983847938443295464325623558122793253423033242317960576683644457482207122939939535885998923677709339950397092212179835053268240822050197570757516193536317757013974830311621680198332739963609243245548291312232882959598834065150752930113768882300829320120360016476913392594927083746169516008298104906615090560669647532715064088205800764657117735949768738650383615985792196501878825312267600256154838921899283988829534011813585102712021823243031073683584121915120602185563577408318621278259627688069675264883268354887760822554718691805620901686960144101875649537592476870635506590650192766667543001687135044305883217730849708778243294382501268079115220134533245865620047783041635364935596606923151870661920472369763724412146943958673046473453390095767917421142592289212483381188804564222528658113191028062159051391157557165774494047466939359771797654359048793858184231917517323924161923541476078294913494175454797705953331346860649426050976963855329375727070102334157864773752613803586240885832888685877401368653059558960039466511283218625454924167776737906601833831792568490550050570765042359506100635196223788404423644047303994824497900587267814031423979447711053766193274135871707905682271902448226120644243556196104116018506005695612086556495299016285175051872415176214684154000495925430730929823109735866835488093857003082641367410205003076532839456451830978894305976242468720789491622255750207302895327149123455076123665919151451450966909410564174843768736064986872198871093740820971306564118190580600047636521931949405785546256748491517784233433861733721333496938128090897100676234806911505863547372096619582630935134238696713705964017844349162095365485566605637372636611591675221517048004074028527973129827515524909126703472672689387449371642308011379165509273070821635035812427363907983230195651182848306885920171763498911590259888226321567913104592132856566205592077539897442159182942643163392560115049634045652559705509162433648540442888315113665493292956518495675218410726613155379925292879112001200473018626365904164886366866061806187052769209654517558670389384780724110782369731447044518104359303117737883804782281436203526339441830098725673422743693255410453014951125237501160005434091533194503871503322122813609507328772795869693076981216073945075373897221595757816950628468131958158492859962137117555043797631716561125193730581937254287265736454373357782272644261705693385607613814286006199867249206633626163937510749552731459820670532958022573106562497397584564006385517867850328266229287920109700874090568814223802115369814604213610896663701045458049766097667790895136452277449098349227066584327616914209766422442113461102063875934994110304745369608378331660839000319620185276866151043786114219502645197929742234390312596984808761196073646611502138920048203129409366203990019019485195058929233487859096254066742899376565085609278925633875501762934233148629530464404954495857222194114191607281817677613033201038379397232075699407191541865707635363407170884059426430903413319182883403734459508147916416943297532516842128723705761789847408386043697230839404404968257504090081032572861288242646172200751144751085922772485750116096516487778985693266180185990975837182086285868340590231506726084768751592134759357827960092655353144447691201985815909501570557311544460932001946732066462050038382474533937122060742146229253350298977556272427479266088381600450730365211851673256854679489648384496872763616092457560058765100929789206251679759603672903443231704847803463075837156529742214248476392425905870212336236971884849277146948711543589389282817208579406082049086337063760352772925555786619559700919906272143068406241874241896310849935255507239084929137566365880028886367557643840706043322583990835993497081790789992413683966024605813379413383523115430770172015234739880408661501577636631336501044658793287563904905487943395446409981907679110129706242165462604883714859734649866062396471064248005586102787814041703165828294030502310159829088710192265166042498988456900491323858205901859768691485973124058305664558527153657403489017399410473659073042487667348993593253679593873596022326867069858101899642616597972875406147598604547942962701565224969002067572742000901985992295308727027080874601746727644891384955664297601944425996343515305772025194014494685515557581640740645384263453483941453637891872415546019134846110234091551474835104137549433158201248881692571429876973003357157877252706273284432960539518281570471556394605086133190532103490317752504040285049304356315701954957339868609346644759720619571118064256314985602039798279734378242137723505741350342819655192340275188583114524956963118263257425655360388316109428865712686489789115780276724744301955552956046856427318648693027525852288702942854775488108030152151791059291413215865361742430269980403467546128444740797903819883778651776266894003945780073310586269081655544703070372473250853763183144346617737660969551402605100622294208058892759966493160462238219959311281741195868762461380458451549497436477810627187694436833546521134807484506692433169811920879291149785814127668118540059679650852805035071895693138132503536057602126306875442250001542813953802194427053760282594009330464086131848949770388159817561219506690880440981272202799092385960515427575629923232010085255533841953346902671450878001252976712634227963758555741232643962712391493859129778491505840868999031819847179013428539180560738674191485066776435773088779938240726694756017676505818619345817102947720358549818818027370823744424221937925908545335385893392934311479916329617210716314354650613338899940228681915915389798885660286145785956944852727556533745395580732848078466751687429336657281095446294553957647072653010986712265239710402626906333128323899405191762737648502832105807823863258266079044170461741374809731310219818192664715397541265041158540813824702474329466120592886254502700046165222326819634808447540521549938624353667873134245166557164590963832350905679783695019622997983091935007761433137321707195038884848835211048399735256845846233130369936570786214438117240503313669397566435421608296903401814308912700253541367005357066241030664134603057042452793258668293889877456399432273004044114043274970364944550859496460068230437572635283331658440571933922950524515912500773217233660279710769579063098455644838308243227090961482674469388232896633344561588466249215553739759369748203833019415162749935259976795922209584977932456983120912219022829149192899378933994475643294875755507969067312554389374599553353576497072952887092034186235467104308251251487680120463577833979122501366840203235908451744621281641587234347110445252678202337106031798524594102610907085107470404783427108450113008049764788584022538050437334523056020933234804916536051801627905086671509178134249994411911837532625996844447603186845472853620398019812708769924619246724029581013582903445867415357683156270951232364963410356750884152183028898841168557613897680845817352707048549147518857545792162382836987625406754904937751340439532904413091725726867416046906921027876002656649470817255058895698081200330244815838502705730303834915719933999903288194117038952359495382220584103199853642294394552527250721828725448906963315619803958411187465030484598870283382808018340352354067619828961812637791242880724661395748141246332962102815952769834869652909935342422374019549988589784697476765493170738794460667791665272799682066809409212092935701472837724166632413819184748750924135946564814145140542818989551243209085492442782776387916802279280477443285124192266282099899991102313233834160307887231051080872053660970798927651669735449667847707998235955609673385349482266701193330293750828673511829908451814265443077970130241624798334970723254297039870217155335178777871316676959296842535393549362622373569133024098982721570241373794212965469293521656212274736044461619281044132321733294508477592346579117661374043196942440102971541409901562599720935531809469938400291255246244671469789863866896486728005116612648846356514635097592942597843729059955550601530051778895169496296346014948467090390719035109622920583295647834563605002290440032979789669338633736028923302884464096798900872902395965930337954193860619507564342566446324676495044919331660411259292301738121357429180756479222504427517002653253150649654398697176447108292332486359753421380961294832379947789829700433225833451816786760066877868661603631550356264950455837568080909535770311874174581320189933040383829852882895843951566998846895099897186636916331278198617983462709361320074739680130401323660036801534843252846907035067957852947799091543024943775485947629739491933525273696880920934038696897193512645576715800959221104569174950443006628112906380240077589604263242390931913048160029294277002492439257528122093912615996668237083985497774202740488150562663935870097224308865177264868053253031774204204552830672645546939127058207143459515845625274646193935497505791429317180085137764122066419453045987961872796034718718012517346580318554198469983483594827852332795706254853814102122656085571724117306428828484946798780829207144816243195588280496932045400145663988016228449751554434980490735715788888237832226457957862444689050885194169745824933360999593622668413782917899006005693605767318747205899275191091120474070413651199421105191360599370003342166663651022284432130736449343223926496219059866330828309982323696538467112138652463096461378972596882574281750319122562750290944528490561486723083599741517590616662957113117029934481184399981983707684154840533415081172254049719866882216593463942243988609507969555240827678790237957770640771897049516715842790976674247473111366414223469135184366507760311073061467979246871885331493345609241683566871938332350314558957436580978123671185335348797826659481086088787054933653921113171565978994532986567477113916090545613327899347365929467692543315396396296053770717563649044584368624388244987378112936903820359374444634805063875949405997506340937025650704609729012210912238967464955252799450536117972619147505091985755252221555603972664887865361563759106453191779600148261286107641174364870235957978538799847454199049185815100252820775063700075166974542633964920127848277304730833084509192333272928720232611991360513712508333168683696573343940827037447221255973988320772632318870575543660628462598124943835086963640674987970571104300138644032935703437697608835155393211200221918644961839765226853406101428567496883478636143340256583131348659669134242860413511150299555029973139457205425279207218326762333313078345935612426997104526459567483756975723334227265554946543712511790463779567811977999500305054655584636379967577603492534159814479626713163491946914612082735513884348478727391652613376950321159714912490735682456806210373462128117096315466263207128657830454273993465894609583402479377430404831334674030784509125789357157936190909237494433505505861614235359211138026855460473350944814261350101409300118129984893700078659273619086721655458096121681758001911568517953664344155126522315027941797732040424449561216686245678525857574250449830638632279995075610132475544767280040115453180589781660369505922574825935190536437418722476172219746846545215888854852515502824830387275349618467594599362688768756337061036311814370590680318862359880519195057454603697396433979095428932481066867507014502909078524697344597356002027577411835437556730494976082565702751169223668816444302481926607595466996216028612315354138540720968623374097357910695492374318161328907560680105610590757926669195773796611473541436309391742726913328752494994748459235284857451172983902029611401616183191726594425305458892412016469103765348914018813330428254793843752612484898838950386853905869681212585921637757543682508547476837671185052441681799261520418129084830330655203782754028945168756087521164019455832870090582254465280599559212418718331782829749669433334132156660533230541135838842959238207975259475270203448249095213856713469357397905651000584549691510097880159471958761367870208654818212460680482610928016608941120659912288327305438545399419917349805850725762705132136865467782161911336208851946505255394225680306306203548514529199456313753921659429252281667187874738159639705689982338384115124030730908796347148853017405393775088326084352760722603251875609676814547274968974001269375133608715389614508954789374177271506076495401445399134407819077933629094467249815566996813995021732101685055571658521441937463230292014826215914100721456106279325349508282583132444011119928474109389448196251262610400536598425320720734711412406675425846421341503223860815549767318844539501164854978867101188002330715530005403913244375357580940203091254287962729671698302861656102932423424373454166220610413967551095516736444804376108107069897658973442457395778582091734938668491287885215525903595276057678760769996963977778960080280638668218379026488695534142763765545423623832789636719196297981781785946748808217236969001955549191593257095266180475354588169051040096823419639571278794957493818104207358374598265309009443243948355016787331544308795531294181006197544596513970564246923520845375808298630156362353621350947598307601112713056627981242377696107761161142871062447166918016225140824391080854286133848701264619473598359895106932777781570951983876297004643773893149441101897312384156368715241927852260102250236990624718018979888689590188236303966220839783196047032625137703035099599289136192505906306570640287342910650652184350159603654683298531539615704574214785312439042064752227375661110702083993443443019214157851203634046015835738732920201291442962211599440572780469852033522783502889077389838741247842974806662345186232712489276215447238934683292750466168546515581570092504080404127746112317805246530647946163174815760369075056911707021636440771495044445820616699113838508225461451947878330642291630231363336058422532365974543727142444265395059741523486283123253635326674982503236150304476550226876764376569821828333879176497671208759392695605240871990293888813900431376872608464329736339610720653459076177476739713019403515166961021443785900670712273755410586063948090832048531056758827600046119413205800390071499764601772962311594103623907191691618508441023402177652193247579110668864046946989558370984738378477028016726948413695707259231189624995669699760092237117183154920022794451441446666923530536477725889161605974002233939399834077729115172026463502457820911582086002010463915101727456373487435666675150898024860463830177916344046937883584476722963714000551015302169457122006627540034676075640248915639664951966797717127609217250074484674340324198235271277057677247558884152569040586810353680753099938679318059842954717779425815009402483325643148177933394608247142922792235600106234005423888114730686821737939227907017361997390713558841820769958256970376261073333155341383389102634988757533090018059727645139767422706698453959738433388086686800979513099111135277097176084896635855074322474177879283685600207717600401696163667943709458260674563038449278297100194839700070990490065357310010543646229695109348228459182216038158623595079306823519905186288624259035982813464971792987206823282471087232262606715960815338223013631417570407418676562567169691563217820423652259513675012195890738397621125475555463077371570347925050500069240539030383759902279680663185123737533799094283747287030324985862563791314945826105535868043953636274146909518820772910141225661334510623370397828025924314213655427875432312674932123922894963711911946121311424893051621774143703156588573750313866195885014028512402344949271657785575218892850050639645737930519544848196217733365640338512706425411450674472644533712995133952960546482472725671570182724575685665138044856921676827852109369247791409830264558059362061888705820883536588376377470843990658695254778380606029944139886014475910790784096081411395066762758547147384799581059298585318149965863087539396394440752834313007234961824060265703552483872234066575825480022018761006224213779559583045679918952872835839198294612199655149553037387701972003913214106093390511370986733710576965791064181564588227396667268600211469219664701254881255495286178321136450090379218912423058565669955646452601575667745584723289273791865321044691552253387230230787721150051824460008110095886636341782511499022875742668315397022679932031579256708542725844647648284283802928887868001919365768694813955929571807508215679930748238663295621912459846492198707253146235928750278393518898423047885183389543815223520742320003945182789723552333924291532689235731049722824806309160286768321602191931731926065595273744255597894561847905203309529336507228212435064134656875327101325305786008829251286220358103361849717726331978613345740888737445813711913326499797337474977381099433218853816236115130893006276412222501680637506317626189322387683888113250776891941105712129488146728673198587781815839022595652612499161607118443739644734141760382072166914580261959797661911532514351919604780799931211478529451115643179447586856709578503232025000346759251715054122689261721837167425211481079055700535128732382879670557332251638990669551295846685639464492685988603386132259854232507942070668622942035752601260288084722940863371226432691286883089759660427707548661688926434447186682758932341644893568065698544311048928899149916048386258167830409572826301388450726987633656789389050457254907066631482351423401367152327365651621141681255187503588005730014911882366092981693964145975806759600220432694221054849983816772799761943748263504439527312997790890565022723716268452084092761748692945796673398690410267188926169730378650221847535782840906928431439312599974951364271631283895213964813996205715376815687093736705178816051966347288174716127277986890406759414805203750079523176653688001970372663132851688691634988398585390076105694873476088169194246414453324595201475484633533052736133751276375664771606987223328234513566187550405510191761293781183097557175586689117567259421141369477992283166362373830588766218818911487771878267563931949423759705921077883680534201734103664417954200648956725141682437112090196273473366302683042066460944472790650165745239585673832294851355040802575073412943027338084238381797197858086162766063311737866835722573424679583092241186683161919007351125608591950948515396384985663995137963299040549616219051011798206191606004778524166791390072852153318258236189875476437134451325763775235595107140027707001734489931063342045410267654018277616654194999730496196431511395460299333344929048412903131267667083206717953738598638406308251029466094851627187693468748510343869509862568068983826137273457132880753752804984381926585365764418655254983391194674221442173495162699947480591135327283289970164389419171603744675411479672242645688523643113985838117189983077772500664723701452117019312450511807616290721376139675803739739560600548809234485244643237819864130978195719194117220971868111956120988061000890203872653491826476971773880162089061130621266609806252234767062515377781384782718191630121044147080692093553657829865108578261476253716738158398864237339113303900813408286923104822884053191600399532128196816919051137523805841803229424898566697923233295609542100690786834309181698074106706171056050724534355154299184779941794703475629850960573775227342628194019116446006328123560032998030251375237789291917743788087234658301878082271855080886260522071617273114811489978962873399508760120855724053872306997542245231218359817361027825913620372083887652670834599256814575354660103746334498664163058351994642176584631930988455580324217345764768970415741604057141274374769654844536577491147789007696237684500643795483339365587291622058188716240544791016764450641276514503827494362750512466364865756410870048772523347154333710539525162813136592736929917092572491807268276814290186989065030947178967879982161615552803600282536702328214468685438868231333119026055492216925590428228246261011777138918337069443857288213768131861711971888896134918408267592734461355708428289132471253591499351762508418338590782510067693747407718383052544146018094367624818616593964979186582824448666756965581361039910839048752674972346290549867326869601836490598109762907356595925533693770107588402529788428502094190990847731478314565040908029487757993467644108439746149047476858184757857783027145136620946756531176452748514038783806941501878757363314396484347372677027435444579906307342087125691076464145953974650446154662917730678801723140327072494690089486992131779823957097826947178902116605473148657680112582502570066021588051719893638147972623068086538936801068710716922869620996691769624501158315338936951061013718556821749115729054352262815847023152070864743825995233478179463689740705481670306902060117238513198849452898609100984520774974870689083978953806544513099241160577993011830544069197210016644655506667204408875555128015545515330259292996394486475487017033958007538559431197873317800719632021683924102253780917116403648350957928791524329632270001960444650837396015173351985345077376681009609231265934933981257935105137311141861486857130099767373973409045513226589464524969631928929457209168500410529733748777818482628426979755229489510440640755349743064963567692722785628904858971729203761257687712789225425430818079624274179556437943953086639132564314867232232873871171220854465478957459400352739338735533698199815046692048089067039931334350992779054110687415722299943176531672687806617688400771225143780773682608680151999349898552855973399709294325525997526704642609650619630030597286251631064653555003708210235032082364381858741371168952287447417056069424048312072631817229984430704732905534960423434775341989272611582642096357069722268065841654104586482643830531287621936375255291332769935302438982962859840107633727522175472206021784509226759891010689986096707726423537957067096735429677855554984795368524479420606118285669436920207818964369703689679822665103476841463848313931627731002792496116732370853737189606366809936832799639067042383449322682506850631522925094796116355986877637312027559362205679115587861161880638821729861997704439696632750224563432658627322585935864263241185894680897853423969537629855432313395564030773211137512426185268402078723940116807037075434688780336015800287189797769776800426606462248973551388621802558259309448054117651377775295787738712930180777901999805768250053094516931675374959957885474280998837481323441603605456213142955146645615185437849914283540714720805506677978540721540183388483311037449883578472085869227372778738809313543370502607892885999284796424107753287471013421540327900045017979529579947354509233133149066815309135233744747639967511151438761822867195315976737331227497032683667204469595298741619035368225478516518078638111616183583984683738078941620671841308431524161855761960186130963681128468882171276627655404547368476777517088500999354640298420042517722707465940491558607582492752851082797500376884113317085348792207566990178830681797211801913180157056806286966732622871675426468755364967449857269535310897728417035502050195971636445977229434422297795975637151171844016142000067648765339690270923849242312442677284454738173767164142200621127780440286443629564207383926323723371891718905073135550900632027508926303663807148056897289078394053896973120604547520795810939281425466577783280865250355928179078677693477874475349465342251605082275187603965384417570666608755021167714029183344735133231968112476360413464504385415160654465765482202956711658670339272024691073189793847749087966277439189030215591758184842975562952010893031384565208047296498778844383250267106223280960193427954831400968034159968681757945876192303186919553912836532022136226526329623928292239488488265869051479432064513867594658958671469429568423027380526389322257662163045192261257359426582294472433276660396546080866901357846395411240571775134450334582242327794641985454073868894324175745035090293933959614270406089485552270087511200583087818393493639766536984638939228401966321913162882798181316947220426207356191967498672634215197677555690228905294493938925122164552792530934378226593948396147257172840677294717350902181367159624878736381004893766476002479648544448657835650058716662987015690430053541498693733849347372971768374949186551131249968468593833918628948589558798734158833202930579543940953641585443578287907872319347245548651955821754441642770675136059459412095967865603869299922326094257485632392094640840769688215338216855056715909051921540563718592917861003291645691897369588064188135852417111333021398923051075352161006754054055302755479166265382546979456417888076441784613131885248507464042221182845258867020892003482938968346043473896519953599579973440357424447601058467767578054297857604767616288323196321024742723962460131536169232808070963316777161465363190901290313329249398270829376763653275022810712349215333549297060787076399832898601817124766809303373631526436332038995071142844873874688038612998840677644271950383102691469580963996766643747762855861622330057099479515529515983055000052968955726240035896050466664594981446066635161773325309693774850342320809317536343117992093884262393374666400135607396936751960163194316390635105891587776200567473324624961270189018971132276035558129120754011183815939063562178857986717781943310578771672044077976968331081763118841375181996241612033344310454803269302112112709878819327014270962005782069601253126224114878779840625208981410199624377549108959287080486445939611446557582016295325279199719959817647706323790126174138576953000217814250272248322672796426255828508844675447627539583345709208433535343369394161343699802848580887636795042983942472051246206722483293533633727970768978498615972503203223007698740519675375857049975480744713228794009023256645765243045040152114055916945170522712596933744358642074271835248570093732609709589490304318963576974898128693614964385531472449048281745989950048851841300149452567878603629804854931385815885309056518259518474036452385454673302989652954017525283092016513432503210341424529596049830365106144854851093410061135894714914718352008642380804952030694389491156872220642691076269767109166494426537361634457071500216475478966900157804746792904168507961521127859494887919288732344222357502447441994361949537585655222088037655467928319106629880685466443811341933482458580170143768272588007894941492002690126595860096778038431096785183820186763321156000654297590456812863626653485727006287975950967248889579958762135004792548686204147818883165503913336256454750126986567297001342876811816378517696146212773644822537957908351129715550733007612224567901952197404820895603502302207620287528401233740293036072136203366889920069827360953119567009017934153009292910925221782958353925974283869672588674297100129485350567139097498709006699815882896302668777972220398345889575248284299551988194211952498653254128414562202070030649978478703588026006243222905332633797337122741454797782997430014171236158405505650127598210162610720593158139122462202381010969479938971629310173219488854647053363598165162376574566832567993417553620775050900537930068362927515817880235189381464157519989385218222830543470765207379075619571896772873621569480601820648648156241962884884414356037442926967155233213887467029887900123884698905371416914655740356838919675072010009721877040202595951791600135040236056752415840076947887440447054040532804704711603753701733236740853983203758341893194452909363225829976813025162322575345154208700715185748996858192264292055463237520035424521656323535520526099287338574262262203400807668494603936654017162395579278352310065658474400654605305461184309850081765058610474404467863768797846825008152167558878305769493083141653278278319996928405609687206168520036336941044106075120966223334259908846160415306359844229338816904322322166585646661984807401576122589913163130704940559460795289889686728476694599396448056818254801737363607469965256632735770213234554974000323685567673897102276772846634428071470928646347472905772525216179806470088376667492346343545973388266419371326418408439633953310440779188908366194605856785120088796312219929152183357310519420596752243379235226161748065304806133047639916354839100172517410800695838675277851343157059607773185760643881475212627114391037922338518982034763917520617048633020447341021829824311461117216903322274914124757703808497431164268470787648363058158113832841100952384232509055155136579695668048059633724545966932336320316487479322889748113309680102916220217358407684007084069179187108964350596439254641878181778345053498533562113245506726692057463539946450870323102905150698029251433789940236754411445165450861408382761159072432476928615033511096674497112633644219836857204431065399966179680468052237490634438746667754503757165947049617263789807219436011128265644536685391627526758447259917870312101579215653488907807248186624880023729028831053864704709851057446001955521851335620529904324975851778231342939963202194612775401647455789673542662133752427006269745185913376607366048983605705928322110034505031520907519335392717203792167196561504947363386314734590616392937066146368549163091528186442949247482496894440269862023906325464981461442569742959237594789690064813611495649335923017603764926276587684895009934839912501983220459709149579714501505143376422812342269171822092540266291073905581008214698628429150176820950040261565307082900685688782276003506781759995339306401815886198864611445701295563998457791815311062879939352719927193198283759505577208188586318326303040853076477968962646499725669354576967121725250388503468966321196654132274185196848084130189883021091993956949302375980157274115905686183027373384672775597255396754656374016964998031814077701161011031759943955665003802997972728286930210439055044902712403274333002815397496158311793880012268089672329514055686953781047595717277950051951260138633178154944509421211875061272480342606804265640615256354925979567930306594597980324098777810755625004343232892672244335604003478008071036480124398301447010058700213569786274208080605381294221504317245680693523245108474855632731374461959334045168357518043593706546972222807949886961932355093996037448631500577063136372491306196008248349162219571016537659402120129082964098315212385310187268804820307240469859639983407593404201027210812906903410275138254170969819402770812296072303034851135548342892918844075844899201265780860942548288333835005586049870361697275753425044129541782550234346055093496070537645101607687739334816895168099930205796522508011490670360861712353091015506468601547133265780302184501930822878896200692966076295948520510180886677972426872393635123673789903996947778560393315140269052321873165353465896269934385143834825952915482300438473679150672739032750423629919366198224037653301517159831263676577697726889155782776719286217454329665417754512569880019291080104859927276641670039649252309283976241847093812771652101424057276624841538171491702278728426036666752063912691951438862232453384980953562853537292269795052926897424132511068130239623853699810195508519539160008978026954995078907929848551945697766232401194492326073428109957884643859601970291268732163006052707612107606353825798947304609267774744954677257446724959304046293389045111358737643376522244363473916736980511839192478124095095929698689856095677350522335939770119406379967345143663619602327472761226203683168113089292934306481321358303257168418455798089908149303355011719095261887556712351054952229302641825231442260491818471392394995068265472120362218562704491983629138286630693016884399992612611176110603172415935418214492654729643124824886330467231152017267652717079923428538472843165409062109094272127096083161559533108698545186198731779170707592629013676896757897300423174909879624978466872384554632498847770830069161580843234739704543749725048897016987925416690148862381330341111322176822221820620414989304444663110848737184332764935384637486257053305603455767087622011409202724243811246597425114789852505535215193585591157423479902884458812052217175223712873624814518096489040646374458961622956178381157749783653771113742750469271631378265175808081153296010437159761060580329035261406147771403548502102670463041397043720020629726287447641140926631801895211579131389040770377086510834857660932188062897279393316732322494165463059676053294914644930819145248490895642963840101680539866027052078726024852373400316827847622174145230879771674784898492535370056882850109004961102737576629877497350790493637349216486772916582214766454231744381760166031247469646043404807287254161311620113600138522764728328494187025501329458476560063746904833963651359157959477032508662992441196792719937194294272486641039601799996004448431266835955595685003430392462073802918394835496440568275643561439765850981388031952264526315105491782256950267817105815246706772094728967159872547133479435671658804773742208778077042303388990305810398612568856800882270057528804487734118060058882696996895252471892994236112435902477546926449724351763429365404734335426573545911559467145311191703028824949865652648694434969315648553351001258735748451119160598553650205547109196496620339000480532911502071090218650871760773233473342757888585312914470610471085397637556584170762325896470509032262427748455854337179520096544813374061198710755051810431728861820273315270439658911336020097034347090033575276871396963497212179958587807371783796520523460135667947736530341203683982584355223488182063512362561613867704692719287780636129651932530626590217584021649804783679439492700050288236145932269795178591647355254053909972244002644029153587851081343700572370336959150115980662903849662880763533510804191315495198474317265937633719365435193112834994326538190616543489616280088627165438597849037164471699217342732374177768366592339918263713799344284987849057147934243487414695252828953857946435963722407164301110830906824234586838718468512691265971022827463896252483109163484667800648885802034843923305815198463710702086438757322660087078583835046683552428181860200815606832956268609418391729004398334005998784698935413371340119312375259583202189785266628791054728746805051380932891623750082525914863165937170075419043085541615606915860864318827401995139007024704082127001451481075353002878433960340160839715793412601317662349114810534268220991858856841709217019895762361652990955129531410153804755174877112957899663935454189801917431916294299869937335022550330415622447060418333963307333410187839944605181292696999037213971969435351885963850992741814828520312568854231578031256208070942081836083170939431651172574385177927167132110788362049133498836069093309914848645331237562822696579244557750769852711646992721946801269468618268080105138693616729346154570642136430033784403194036039338754206255967446611545181913424281371205802683340543798357972429676996989400431556253864349543604645684667850881892871531642112502162162919921509470930436441123161378200687300686156581444200648910971557800099706619250467407036372882110680225634352366575544566496409940529934549254878943550687048205809208413398600367877479847947776473860072085444334767548405221152845378392382056514388364372100338070322168702483666080706218994714102638803040318542142885798315410033114314828084552344627053502995420806684571733025514951244022470836664912832930835022694489191748655998694076338767162837421844054284133414729979189517611439586176708499279027656739259722889995670920492132838412837233856000978833337112309181335814785414192427669107079237962162506110391291731023785928540721607674417588180059899369193807970462735110566175431605713234366279700795742650409857686853591614550967369522558023899156779545720994266807628630267134554937240755516753362049625267041799481659328097380675227002998485530136577822801096436335551307662160902587889945034646553944665614906891814706107948560410461464798412429437016403113954280903789173405966084740056459077959149441213985485098126973110018568201631788572896860727141234465606580468430001599315442625190357227374733491023387669725976827057960233659140492015379191584492876402139757939575382667357100766992917266713543908079146136792470439066658227418948579933517157488839028268476205178928274856130930432261145474714709121460237788368286985550554910779137454818399007504088068353406364667647422100322409618074071550899400192354607758267514657378918168921940419099144670363372412413083145253744009101778868197570692146127947803287376839605892486793189995136081186811863606253794470356526614098127903707343209817620629449554649740480018959177090864376292689639662527601384594793076401725632168918388662655887525999095779953583648569573522519045036872167136230198334766081051395238475928096383251580103033338026661201518041510059148873912354622337088817868417233984776591189425692188498599420659169956930855953500596009024098143728301984161656808377102117924471043749270277857628329388919604830180403833437628785705621392921827612197404272788939806167331844131958254679138210499859780669455429420327825400238367994188772890930938210673926124886275974306776592591070364992125930917199031406605140627882928872240044102680730080247012243155661260509851378088713591086551067954731422469028333074616592708474711285487786442617623851665768137686546799725973169545898514438394879603925197881813042079152292871785869065430193050467717885195724525354327515461109671521107197859668628856561297125690303719440694861226850708806910541671246666918188140157746520887302398406995927367701080855600343862944861714628648678987790084122788898608236892377642671887302082042153751684447629426124011678250672515716613597298144433313682627764778012179282407289677491088845295349052860196061946868349700316351752780996721898883843946995030688829053942724146323186218801100568795115635483567308543995339961069803940590178537956504348925654829812004868986075721658748758994198908485544853286759831377753395064980070928738791286827224509679681374779638868744245058966391882313929497148465489966346813000411208147667864094258733622608592423152850991403842431190902223424457306772123346639661215755404193061089372015939764582642596238696318285200517777819615696502544098213278137018550863970671587924251198442554440646806339873510616431475042767981304814958449583654695034708657631152577073937770549798653646164748729195824306051455158673704353431921557547953805626422645317613026190109484846712653246492157683120252214854008370760865677180482123559444602964632821462848292113763950694285645855006660917061853466818630349460518017650280604050874322060205942593952219500776260243476657744279693120646956096366411446952925230956771376848104053585715306886120858295344588878263411963633239955060242941241884750296368157582664250570297768818294493883019821310832102955789676634727738635944315971138551410744482989342377153312973727713205625578329532668199029753646727561782867020860683904458613447179460050832047462164153824506942919852971475568683437457691302996514503860316278216916222806245072213779482761526934131882245070460335938086570093409580015026007365029388669637227898985505715874480201976629205641157444455889104500070757685210698996561063967007241621836158516073032559507772964587070845808284641290131987755691111435771315323545970563420845625971814928330725106157004980355024012189989885957819776366307593304063172374088820338410512873968560412971060224192607349362755491500049125080938143123762260155471170706759728097976100807379551900643824327582435036530879006487153676400173290423141612888133062588927023809086863530003121114406227601716236789460672472065389230519630545916923583808176195350102698547519389506032824987067802542456250125869191337439917508632394607870338358401491821185866463075888577478707462604480425046137789512880525004306836953343780234468528615946996686313954993418781325077866760461878475540282911325774347241075097035503697444607568222535806166436765322147012353690574952844635628193907210177063126235125208247829415925491540709237463840432557266066866806378111545935440208417202409948035141909391647892272937158304601028293919322177623511659909852757918217485820268121986233276363289154440772937733381827405827223641509188151918748050828317514350451497853033445624241598257906576205707762263415398996532935695258596621904685553255538243384740750075350773339004473158442802555118320082671834120879426604503131769616091514741710933553355036853352516856557764734581690178377608285694603173658647757828034731107516840942116398073912965055039880009886501745806588211209560579928441748325260799964383936213510323875112630953638996117225813071235808066620761580362662570753344189672252908880742454204096387213873157118336958727980346703710368531363337435598399266930077958795263954838958183990800414029930341743478970577457036815903599789205697609180013077828273034789210063569693191479937927561240382914018265507130296123330404937071455864358471348719427404476599956159828366626050399949451658799412766798744351132090167276191432423840431654228681261668157035040178661707787308828002735288019348715957343108789982399100744183285557255249423911245827911751835439825053329439715670179892469168672263671054221186769317778345517431332491466022322243398507754750615018498569614013347842712401591512758700450323395325279532192595693278425365066709970789681607233258719409154594836254500166421996050220397783601815003421596603174239609388783247609549488480055713322117002323650409909334498200095537901661158600230698463142522803877945432966279850971217097700272152738461962728763679629941531587770554116612007239440762456316535819665124352142823472435851278338393356177640505383580133782218732694639133963588643828925875387869162198513396277818912201257635832037902632022226971386981085282020079925395945243527536258491529795651287139514220545764650659091370579319555088122914999360969786341658458502987419014767844105655688121304060204302727365824452278887189083877577227343612695968716492916479397556515232888460490071972954653447184984160196204088244698920276925205522015206296057012486443704332891509057253562298310562290608781220946230558632859543845550823783668039860019254059129401458509206041190609249945819642833289755175275084300152299862042964573294583477153879923782985522763268787964036114823177463807351683216810809477485804034690167620253578432175463824067023169111961241312656699816259071648561316365888485303349449006417757186404197094107093713071275697914715090825909048989620204746582273781341950201981052273153868963745235311688055532619421531291746691986115797137411245352442481256195019530372480617589451845959320630589015380371833088142668791191493759702563174573569438986675943204286550740636252206621489586403278180050276701032047367535615644130758661669357839840587311860983753416356136175895442320329899454624792584214524232583780166857406332272525653469959332052261620281147214827359102763815399288218741385538950143502124616738828468433998595857335479476173346481631848552835716957673705814764252500208305510382429162184270469657895205064615476095472940511046366697783982359472091202576783724910295530697664056663027826087468191320739341741644710880239577490224326103006597226028816232914013056124800803947728170788353457439615088819580673283902373637216311483296922952760037129202129930286851468750458221497859958575333533365873426440461873271153948333066412238546016982012234002204674268317424110138954245026525062897801669838200008608930128925475688839509180721989383719742373357567947620079698532306567137298196462506551924434624124701520544791663353560994558549246088914404858961628275779604044198186934762726483183079566724369120299802540150499536658294981545596190207923543975388208122143372901510456943633997791697642200090614386119937990661072886771643857532990000488736394471086606236300244649458373480560744764828145396825296131151756621992891895650921726135839908316621530629031425244403211431251941115522948043039516545503349557580241594234880733312834647630075242377828691273287204259395049848709545460239589525694794168228904791183558278212270627115739441889551450444595531668779715843304280548885042554363475759424860439480617374549942801785913401560293145812539022385456360673423644734771297590297163569268751777226239057785562564282236691190226532215555601053865569924418543201825652996586004527408241774014689944409168249488530426948963836178701729813334220490312720411299744161261628044315291237727396028329110890206981410813797059700709763697540518048868248364803154768224094337804386445972787804314511203336848586347380453122578396948594292036834668342101473813111830486925028680670474973789975939942066260923131399398698506189924714431896433498405564344983368476628209213249321009411970129697473569472630379356715182118553331722730936360541478321425773817540577846815611984746626947553406685303914330224951710170923624455609547928504991458973644784426584111644514787268850107786080549537645340109473765386053927612090390365542933907167018211491467668341429791381187168167394146297393277450053518682784303080542842317460318266982605498897394788717155702843888537945061294268387577573071968443038937830952051450963753123395162220701928412086710198472046553186440666438397689721296353628335275459506041111550700363268154936142892292315641758178535168416960395780829979340441310319485260382073076659364790314013580623825892785321362544146279197040867044706401968938991825816783914935772374389222565815170325877108622922796414581289491747160543152869369836999072433430486186701663223956960758064355438627196166932837238559382130869537837540916049915008487349196741145093017576661675038708848768918605150339920649583958385268355232067426620581240286750225815709716727710940499193244472872038603260683508640722155465007296743506005151420173281652346918507597849104324231315578384581309748404273836808293078734642879907580839351523785889255748403089768926697841086009338889326070830607135440112338170276565818767686723683314407905543655028028492127386163146044487273423732875881971721419872101313196932118749026993810640540234386158618723849805341039986280762805941407884693091852477410551798448329000214810959720780924556545448354883507429249193198851839607518188059750703639480680877786211337248871973385871740142395977619537932260727547743810662191417188683529671630906010239446746966562008072125140091562408931817897484215350697657630507322314797722119906383382139923032676880513657947167091927723023888444163125150063251115861201648340032754253142159435966155794448064360977761284069818436461641064282098806075681794631560527619630222110338208774668807816386332612029329314598604907802572360062854088846363636495720854824233890610318183467391060347409756445608009298462516895456470543694445070228263010300259306102593969246456768245687338660214517486284091626776318283936117010253386877015158204765592207892714348904034241338531163298184333401169442210533741886911340759259941986920133279930737459040416772486046250418992111769062974193708495869066912941521557419105897623974171418815923395243066191797191451857026269731619053067439230891819533769351645973462893093660740183867388171552452997213420697156552884727233858561833364062668984608633909561302002303105672125930590512413461729021651513639405241542210509713595513885781213107650152837917129456325301772326159689542508223396322421299997732751681535395526743389821396715676456957838256213097366961733333786832541130321016165716773118155667949990831113739835468451178355141761927676302531451805011512594032900691323808795816556427658985349690600252033705852243965110706994653354677387953703788615038208563822872012582266881218051681077569756947513466006965431911689147367014227909196926726005272476122608066421349503182213164958254622518577312057131186775586745851097670479680972764116854618991580884278416108008864325099147920243098136249173209139804216528950763555394018650035276387354033869103760350318293624928678076146011985954195262527032595323372788581094269654671298086273035310597248852772588978707579898167211733904573195988449653299254116699084768259847397761040463504784640163825272625370185589144966481857006445325737230886836798246214088655384437758937410733457535327517466970812662471342542526006993174799585709987961228994009529208479046596059668065112497576041578107706156844684299745728391613461662264996718877353142701187935473499669809335155880260002952264982533620297481956653997683556213543606051592872455271882026639090249059065379381310604557923273426657779702800195974490199011436736537223699007474671561268216930685938709472065079513967075528315992087499581914810501574397704008150632456604916192782037954013971222537141808825237133835398934944892578083243364059736718245423518863384810992231512499531778393078484216947971905678270019993117257481547901660883684960929345542747877191737300080522113687970089749820510667393796381339744760278175665761262722656913282132204349738948083274413484076388742039552773385274038829143290593866597611036849547075910130256636080051322393584481830577499565106589015704755280043877260935848587548138269032004880501547227107411940070805162617155010304732907098585262411949939943654128512915667634895834238843387208466983286713521344696787539649157757543795449215394461262235048399648543649810395031892731693977055923777779669144940445200277225161024320164186653202492724225993612140095014900122993365796000045473615879197516371755482786465328902426403569137042885045711590043255894827373460460532345416527641113724340027383361702344510320499437873565859007596371845385085975862621439672012213147022351762988637108972746897484854242852720255384438221138802672125566158638169704386450011812629115812251891150017178904886278746574675245010809881657452979039813372364209724441300470731355293172331775860167109029284638897791329489283432243833980491323306580636255598363922306969348203032523718695067474832151103260428014626694982767843202441217391135175167693773949930338356986685618797878133806152160702901902572253700307489740760330704987473637263160645675670011713351795951700077147781116159446633280656823991975172762965960823104392177743139642676551772184797662502076017599251867119815564036564851603594224951878824374271761168647966523509432780563778682096567555728499935494235892765332328018576140758221610538037276010947056100057909534421841432446383449274817638039841522497691402178377410723700762218677982411354222923465718088456308366602077467902015774957378417777294139875212459118629487334727617110109877738955940678230461062096413334381185900721185662028146807877870565451611561612122715640083271699547282412591665782191952004481483836957981199734953585320844067499954960248425194896634737129981713307698650169022832416637762949758680735964068260111553219300515602691398765723751131821103726151420743238854559153063816525007832777277552049892676312913211936162421042542187807765047781685824565628307465107470298038866847692777941675407385344674639607575707555208847930994942366959279330064239991788989904995480896370279907570776229872962933125952853774988536165893562749335353029937686718113566072068045584160158548260527479489635266711399463361035997858150488905278027495486723985210209454708267741220240509981845022131142597098589136136936388057201792853482860178542558855170982311303675060812032770750306368956817265503628829228351237489384255294286193838270390538306797793078019452992295856727720346324195221026482596434178772358559863654399429969239107396712459231449548646136175488146732338512341352160487354263446408083468942612764534943623846515891566086644931420895528967697838597820971630757540099668176410632865978643561429655568190776578542194187219464038293590360801061126745474030641411995231647149834317586132093199546897252838056619616486834298150494853732614879559015616494700980124100353390634974756842986172702533369054650105548424140660920017868479266399537540155826818549374472709576798617668829983804664038885505661929048840137212122476439903888679178058921024066391606650798168600600180201243264275920665373297616523408848762937291592313069997216126458921349405144361928065337826877920052194088179440025696876716203439844584897381998733400901655957406093690592511007942628766336352951333827074883234476463196332274481178749310524859702153324220009799078724003131707101830646006840135651188307904283865198865836809949510564475333379639800196830894966062255679155569067575804955276144544316055594361916755207457493155777808356160883555762427315986025669005930274869247079722298048077446913126193831759112049713385840410944138106910028741470096838040940559873133083738073006362696858413608076111250817170827149469253755181668766672142387241670658137541931271167221774131117967179440644948409705510221874986335133267228960503089502374738552592117951805654345441107947562022538029510912497409407349622536345035388229630951379684979889426568450360745689150862310795866212167677163923276520598031908313278733565005770533044724275033368072946506986989615354927764051562352293782524883265843677014350538384235116319228715816209042581249966577255739557372126720853371653882391201612335723433783653413740393823006754767418107707578697729247846358762478696352382846239680425935111236829113651671802435147520235891698672258476412805251279823260201064114547683158159583911322977923859948219678406594682198989622057013913174768432794714112574304896771852332309039312584278763686552926788946650020446864161305680121498581941347186678986249223919305909042460237848929092152045890448870467761437513127730702033611587627200082973139687773556542159604410486318296588695225220859815390160878437468240047529057309657556684561746179658955111589905705585088603953558590717384089980764175806502470507668514502953072782418461287377930794009069372390542157110980355554434690485171754533254914524199819054995330030855912849763310186768452601444090504566235006276010551772307384361981041038434894392078793718457440737277583902083425060980965260827328252127220996952862211998513768123546725414370840297155859010301442001121825139107225091734227829214506816601443667987829979330489857995970691203430256008852242142725658482002394457798446706669909193286424637835870810061594016105497457255547504614682200226511142489582764259615509105139060090311256118782455708833346160411952115265433420944672849588910186588922103738225855572656532840814223686846697205828702305176355526900651586950564962727010294340253261436343634512117365868095079627126952861867619751943950032670130149928800856249234915582597873264435995950168131085327229956887949512936969346353534785102997304177829971077289669612136345856301267021073110271562315520224265991351019243909441248674072519129642570795397884489042272578460121507037731948545882779389087031487338942988210468527818548360679626050340444428265003972211365054436956602542804736289983218200606810730310869130475509464944491531337747366852194367023919766046136547488416231454785811973997911720334720266819101459387148117825422091286848755229122629604745143821292993756931152911388296304115229504904908524007328037990020967626205949496881681363328603115758278441481007474776396989105516663617685977304301731952071424907005822630129113440293580934982882465605420830550983119906882502093986842481379172020086002807781455028001302685383795080405359172933517100665916620259314026122047436469279365552316312958718266417090881641470324281656983856020637062266787770301686397945635462672911028797495094035271534883821252311964999942826516224716568667399845725759756642024959040196692073682132101536847937975274901624247869075127390906702910888707952756305063095766375080014208157631973992293088963679694249539499912421056038119415466974027699678856638596513363107010134321505962829807021976485712971003210194487415166996264864086724034590964872537855486885088650692569888769214222642847003825175118826907888204868146317607034779684404724017533213940131806960724926436277032482766751629232568840120779595008314606800289970492910173987138681241780182248365986737680847600471338074231689312477174119585508119202994620702430250341242489721549952265882733821899932924230326125811393370413209451511040166631556450999266559741104551327662301503904334778633587510304040645582889922599273528949903335456129633582037611338345112146678444793523587877227572803711387390094551100492638215164049088864741130534876216695285993531223481103349497716115062654237001909134421852226211098023070364752679815528351437722775885299652707503312785830867223803749004304235443644771466762579176647426279524119184024559368221960439637564161756107381757955147828067960888400560360220939117949909144262450912920301779507555948862727909964545122613989641349709451971145591160134969578544658013020402653828242968346352213789504302408783725843672131274645048602542528165633539769357354443276180089988353415719123513197938694155139368075840305636750082181486979148654279228822554237216436673831966951657308022972903031733075411777437544974492949702951347686089920146748263117251611596641953430795488195955734295706785130467625544161553210685373241176434055873806821395605456031537879382883140649419599549058846588763395917890179892278494559315801860400949050726325244371883870508949682049087831700650309786088292104326111932847977897895628407887364255366656288866639620811772894121860383477669555312093934133622821381982661172819898494047997861552554669987544467505952120592849989137552457530995619446929216872356367408033529863796898168366256293494032207914925711629855720750011444101088539844638820738692023610855829208837871555469990108194490465193541507128369618685483705281374225215566633609551357824652591201996441725823159460882742346727930914034128597895148685249105417191280079319800674175503434872139428722571270723664288213757248215056199184908795629951185886167830425567493652393278314350532110036277727808774821930424213396125155443051217175609517264055637076543708869989836102960998968490359425053407320667408820114223207659683599649848990780542423581559164716239990055081238462136137837436513544300258486699984961334385009991495059688926180155365723097716554207196866298969052650643459988908938481735141523186237776283646529960403869823247120507456411323928631456253441395582740261708006645875037892067407270999298990852244094905131419963323498683441973731837053335326542428902425143630147694985442131286554953733694549020696998012678445786603431014626476512087107569655747254984715739594079887422994177767744497437783998412069389211471709705349088142962137625787660160485785006642154638153663467997725608780125311204661598471701870147425573344036004415770637021910591160683528071316466780929113162861124427391065698459211226739737871135066201599425830197113367695944308903090639642123606204130783938012501416984704088706933342235534782869895702837061224036253555927412600441754347285532432554333537292281783598868483982626930937413730490473487774967937823122130269701658685248873335775557524905561240060072328443666777328045029457584340324746649291968522260277054824905861433039922835005746750705469268152363181071640534213652705529811737314906048266309501867828707325137286633581729596558181410714077433250295290908658005201404751116518660242290074380646574310417213321618174573957565642080931355244993511956588677513049978871604434988510160890470443401889304874690102667745134715797011348110893596262165578604978750670213861026541099133017099369729544992565566250474288599352225375193122092559768454790499223592172906863848539820074863330846482591159399910918529717565794395888670913630710223489679003488104823868364571822887757786340020043712524454873879844921473824711789817323030950287658033718539929201636127126179781095371084731940310727704162191937147878213120158115790540682872882672446535941113944861775957825281600600786678537479107064620581468107912179961380575693073842699654853846108854899445931849243500889552508875602116179272437601643962033794083063628780115545505223200711720250416461896425753924130836337222546332894214584271900463739492346470615279292978735380603818564918773871684576854236850331434718801402807851974152300780552210795394111711897640552704729600291202576154924989603852489478392236351986040796708048115624660268943189151670493052338240256139263996599470743735339393810147091738107863923739426653787063761843441435197811715714885814512369442514984962012490314891243679627544424447965898417050973192080874267465595436121626173267835111448634639994764222902561616431558797472803439263948747422208590044540937079706190489852890449966615506950531764194179996990630213674079114900916238222624318921977552589528056990086892625678329627960437714563750766032239045283420897493598536052580443549694767547067905854238379272319784783932621772701153592013034714377792536246410572901959029759781511000463455347509131643990057990064610587054621259578429134539690202337359213159530111562453711371799837369204086492266393746412474564320923220585571378894656464293021823722794677272427841229929915915368364556014955043268884862702596763118484684243941820997661075844680430310159306899132363091433314683832903567969942019053305260481208435924441831092313825633889852144751419703287523159402511059868340119242438311243515795828502167490722276434289397190845638468790775566151081597952367605277101030915068227988627848918102653895201284939415224114344983153260906946589868977181977076188373188803521492279190527049280713990153534049987998675411433521232251505501198646508401060353264731046009240613779688690972572042805489382553052854821338666130793961804999515707576728666573861629066014817199754313249731400093020564977526954585651027372649334122127356811659461175088095691117700633391472986641420867279768333645101024954881642957857850725876720401899749665430172133432883282773473119209569315881366720737519440635060882101869294155765363448586036192937789897374274091957862759606966578101531540235589618861281185714414209886876515790314246048477659092205307711224715044755178342192915740843431392635240931375672144895797237821283385472781714438250515956093411467137784254975402535702763053283745791933062003539765565041506976964125455966422992715437681251203671662833787093917735100157569377256186301559542332872144405379361525181605148905321130554127567922250214937736429634737553525874956617238015479585450841707735515061749226261690218000760464559301684591166386786597226805840171837552018105736759547578766201728896818391869705076783002198114799736390677142579995342815041945104691690819902808772651387107675752369087473075342876235538389561682650375986330468436585948718357263679227496325325120035164730670171534864682971133182023214009030114522519541286889787893418970243019320955563517057439870196854977595447238729925165139822205875775814678656782269421407746959323034354301269557826336093170785608635134916219480876134541286847750459974439594475599751526395608305311530915979781379009544853290975148293522594694533176318943200494615001700007766638406030425189671842372727483185112660592852886983674550723810714522067638364138899163785877377052391318570168724488462035335401069720837321902084474091851997334725142899440094813284325528434323290693306446682497751434554301181272651866782622889685430503374120803522873803636182565436439031642102094885015350505007921046629222862045386564732270956507158124068570610225409958904826969362011418319175596873532629776195607631035572289316176102409706505053245000064922705748270028759930139088750089088191887469757616639791879959218905623276369770733700284274493582033320567358102815825327399824045422502495003149597766371465503812381662018782344551750966047524811305145330553776679226588969020900873975336306054560908723227185916455909018373165994235332501759548039238278991116008966852861795347094833897533651341163926507001346962149955535809936863676356928632642313058790233197643773097056745023207722226304898128447796053232574359839458587548427754589574760523462488597803018123125057780566129838115395802777581409173225431138874570118881610272434231090552162058010044766150555960580179682646892693925303129508728969858576727656077085640983979249716380087954792084160384945210509989889765371468989273833336376309725039548310964630953047157421229364587047599514235989099683995585810987832072890307275480326796679395885072524726530005702713290194183268452696916315057949941623543248956917153172849970171793718440487748339820717891722456429685509785192154871440825370662777338305984938482613102090773672875580301124267359112088782633763319981781319371532149198709288757249862959231212435121546163798793699757824066597737747173456103511545743583090327904857547307099893131871123506679627667566449867778362685268011762897064870965153024152530024259114645338661153057372838407450926507492032537046338295384030380771677853597268734927480734659155173713506105261622953829208378769265813054405463478919443267455245019442001972137109225982415948383176602607681602148228598977021072267463495720075308395840699529250004217323834366605088238117300829232070156897367810587378095955634620219440533937279256701088022469903947395613945065473670251356359772249511521182614523775995084060448142840366052439971585190479672914016495362419600396348710056470075023033410666315038398379139139013695630977440512252860661052941972246063674340675887731433654120571161517582067016254753753145395254226764813322636167889604663920906061543330475996497587038551027745754915107759183836035739204240715296940626299456782684213642021871970558857179376293149639042232692336237191318373683890050165358245294122342986509866408195193270257613654475877351974780844000800619912525933233580540929831545586372720959465662105251635490599237105688453677938340137161199911167340219635848723551736221258186843157008380223121325194035248772764476748853676064029172293158210792128248190769917621383919395609742677221401759617293450038390759663502864079612845689357135225865273728380630598849044862042205751108305350124023013868278169448171053361610250123069976782292011920693128934582031490749650458666002637988313794733652479649060922177115823428254655492786214925313965281950221458632432132346742221533369138531179350754969421003220416172748130414121282304940108018168936731713896235813116728015007248040910268830308141470042579658772972752947430829029431691817195098608646442316973560222950040892631702277244350949408623300801419890250690652066690938570432915943627290827872648057041436953378312730081334976681521551276285347923837873236393610137621700605063858930050147453834732271394014831136595334740971163980518104371648054730331498651011255445329252181137967109621066441228827019239247725762458862491616061603929978342390620287385714032200708762714367281218434522143112723973146274177138930539203969045775827997309243254669931892055278844740486050161970021733144880371320182972170873986192629812206478907924114891184831405677644483348019922940250267968259299500231957544245793552580457142752835487311511662088547647834901912102760313380013316162035851737139034094107712840778491533509836566186073275513495767726119470522486025544095332596897593990952530607583468718063686065165857056768824343604982879624041987632927658846271602294856317997543612524151748739978320231729917818693664419821608490739505522961891907281948320633292434550199193774408461702197370874329837095048701678988444929014670617988862814846945570107704724774402363094438863907919510294224595839673716701791725797519616988470633491897243810964975086499053180739709313649461611449876315859667160511818626871087977530240412921983437043582494509774649886820987629838981142544474149552329190739818845216327111867585887379017913063605130585949086115431004080169612939122547972471957835766238866513624020292096044643469531680327530510590180170852525687816485932768670876436671772253964904513512981353753154930757575051144446365180194435064241442708057384178322208925070761681536511290871825554869414612926465573545257342295099885744429098503625549037305503363338108262797816086317788983170957432534203904386283657534773199054527483167065872488171683082241896216129712678610642106522771915353555394390152534996048902230250813740992446821847164378853421721018526873534628705178341131066389857202018911215686679984869124222148288844191946840948035981525110086179835757623341892945182868312604650997975108074133307542610463128502921028003968754358517620916101654297316790720153040507751182616668562607256757628355636833360819004635972014363008783698699463984183815659919456909240688606529814815499072341241786481215147394196246558931670389452474174142076372470357650579297672666156151514363277276976793722874437303940723992338147079075138082114889998268362037183386366604800797735790890941602582927283925761427048292273949315751335428010120886691502717339727542686757421915529336442560323981916556502286150554672199604104629290936393846170014304669990982159168832495886668711554891939107075485670033639410480991733479354612207422308656502080455025717160494665201337310217881008047458740049531719569608943818856133302160950500095129753481973929282897140544653424709986986938196629420775928540939251632083971000891007478457634415118161789644212303279140622113481724069247456665030969883653779239172813439814416522852283524990429261266037887787189285743822356296812357693430036022855737441670938873686979606607626254551408690464644113687580060334841019444157360469445166426863310734485230884292548159693655635289183080338055247804590638440669478030298375471892598478956755888762733700661260989847554671297734046210032024099173531470998012988362709132781095553106305472259550595261826603640902546968223736431724006501683184167091004372607960103732051334361995045274379000199656587301545368275798936887447630749837403490560335758005532665759652795790103426785592553556244981578959753538451539255344964079248388747689559169656593412490275010182644556741509002381756856850325446045316885533144745980994270874154595975603146107125508705194442057015487419033713155265839056849582581429574716261164381854994364033466364043200565962752379314328394958914621329756188881360145888399421855656819492773949298323056494026478239740231641974588752593004001975927757267905695623586307105835386305440516014450938020780858150926943349573339944227048461434775754323411267250468066800955608151513588772638799083105313866130064941615848806246147532450903286488017321321005752202418174373316190986080756521559531700415924835869728837212335732256838581863607778017587072873798204458145104414616611986021813840661747110824240459662942276295863053932132127554624205174876485575099370379614191766774094208330067699827637768954308428289743118338203761993356223401730716771574276013320394704083998426808209082606889358227397378233947235983768979740758436200617278403950128551889313243223054434965738409712583781401949495872311450371443270339716618731419734329666385677385768629648422807655326759650186312839031692820293183575616131012703473763265648440888999730236490701164307385436302428978960617841138573009005925480538106151854971740123466833946331697023763327424061370016696655833624935614365170250256842584631621781726542395539873685408936163035477177210345656548497235923505856116102938630554690757042376369365056844316623303992782726964706298669517127327798238626446800393515575278524660948662211820146896297126434503704504743288291686327061496461292031727202892349642316143824508409523615325241887537625108212600195406018530386208946197001830919152972241963778107635781252003611944522146051668009531785055465009665523765537896355414974466530169643334852417706801662893963508349816097973400876031745875699970862117517970286792391871731308860067029371717006603548203165768955857058984300895994788496822549049850943515750687525849804222522042867524571188991618705229998660508817607276506588218826029281723121270674033662443431985234057992858821921072604270712150420268525005138130298815158810600576684584433955886114576196609058436991104105660788909870860346464110017222454290006902397347344718402527771256388454922949907588595196992920763648750081306909873499640960513709331018612826747289417396460499394526393082227247932818033188369647117957532985522743905794401506210732200867192950620437103036012833726393024451377634677080658151150690161691929238945316586351454136642497324450553437909036900639711184539996854255840913669046452158999692398310509858973468523933592144089551998860217878178380093101658156744141178798643227091246278067610661798626995210135828659344240532907252386058770083825531084229812392258974444755449751470075405967771692349739215764645825419429895826979960884968596448948818509282111225489276194722424587278555058328686002662244413020953483237835523302905472640544090159266305851042738561299305810302133709110988109474714877084676907737839597505499179517420173385795545466479357978628730513135009970303678583885359508032860771394619398897840886042319161113166658448419910823424309881335600102009287485804978389035562733854278041864735785987781840823613424406998420407218663564945699797897914979212174977058461076892253048056496255321084391044447974334957693062708285288620044071890609975513662343291775669353185514111312281533024140112824003118350633154020688049920162140996292507866247812855108138543970597577702562144887265985094299244766504880262142867758614421532712730241540211040179486819528726969835949827232552127816950294347351598849078660670915353965940477475303203112929109438348826303971067553184125884628272663895720348907984739320406393089193909106643998667638979385822449267825662871211307568482418930767349251560495179131389074535032570917117612331790163582016513231903871464209564237172671631538818105301841428180984325393845059875141181500086516133471684786909166747353973085269820765281623045354605008089389646215045182209785518110623235724242374569545240360314280980444907775727695763660525306301335975985347871848206099039729963845852456171894330015049842796493734441841667320092131924123149049830354014607435068216884327014868958483639018329380891221926106082587278780235232144837982016966419592568240520754315130912802547671458258956381054145947334483017988177246221916703652902785523309748589157843945778172629783779725685768204185899060750884313057751458334893165039908906330670592820449598319068748271008535302683523302264095538467982055115286163211468677012574396711168660332884356647508110153864619678896310270117078885353608542745925525852449013772690446838417520916353708190423130984700183882393348803201972634315388538348238605774431194116340027873701946285410381705748176546892784457587531436032463786154593831066937118809406425013438978752238549911375879300742131215361639291915739678457953468144804744030308681186185128027459064025483063200676659759444659519933989877024751706324348229703741012060084731213386601646415299911499512655726221901743659752014886410233462364175080918528023646386219258301418311008006024810985018254051703826137739316771328435101440238469299304488087785158422544917269069079949672074024700175988834316276116224277700265837858869287076201891046153134566604784736767477465761453165883532794835675007044033912160715409397256630791406645742090446264735626945244428641641296979195034483462308207507555210104731576825344706114265598407312335879939674541323319643767861837158561821612699280183332631650459403883554262763531045040105804978723030607945041732792579614721284576231121077512968339402330715035049279322767005492573290229283815206867587058655811135258745324269683022337512917219011920823264038361640050848516160619025278424935464291953822016541571656434161644969570545436337162266853079237455637351073134314511027011217092319786700221933332514668832075089271362312632613645971268570123132458311494960654868149514383448193399354134710646669355604749528023465508662504517739082061101026633999307004690196093136606122790944715385349206808488649088120558291815775978935921407131167805863428137376808382671182828368067912126205514364909803403503676135754264945721771222012852393467365439711165057737064711286476435308542173889058967406358154407167949147237096032651841138826421391363967584277753428781289850201314875222324904415868430976462806219244392311466596388925407768924927859387363645920988389159288821688939783159878159545408867661062187121371802596922545455038098008749978085515047550872307174847392579028318269274303550043199712695049181370133248350529428639224329483623865643939471605758340950986907806305439338479832668240139270643524363806965009784580071654071317363021563023619727770056781186570628143852377981656115852935939897911437280844074408418693152915255645868119421535151300208228066503171592239627676701130869969974642891824181370742261901189052382900970225778737352770215465671161409424412292222761360910467831818786018437240622663322964344001390271631557134474480584192683595026507253485020528983008529854736213002361081898384179407104670859057290299052885116010300115463120306218732910914357566094308526664978383359751648103364195940705253363410995506480671436923344399710580153774872259793520289039156181070817009451233299674104820886587185372127712776043036691859306633732281293091816164044281642553070667592434930042476956787342925589618405650265241034760942751208198241898413459147238931628935267292162505290893485871480632816328231130889159394044676980307367813975716206587723371095012868318734622978392784298287841580002465262901157938265494502951865697851976679340333460163236194317468358741036202256519909045432420520216699292129801178412173329553039406743330270015245067413555993646375616031214211664553166605947932012857033715284539399617027826800051709685469991914762397826685944292749497985357674917593691377228950484352223646684666785688285140284400763339717416545581316185261792030824146771389775449780184649046849558182316828265433933384412060394032509508914424384258036444296766950406642068615016431254647036207363553599179651475176360922693388922984969618574772542708284462826466398802053355207166831351455734185610905973753780886428983996650910169405036513089964057291671258145773433561049057268059873935282693775636161497764442282695769759201634446460339795425546954323022724668552828573162864657821203773809251440049128598617370976313374625208503904985436751676643226952146949072804446307926842368360402921233941526786338087765408629220759833602544355726835533812086736625416816149897958100822430609616956187991137202423286590925852684471994035963733334762945202828456558366351057464669341908213394990747151721734726846904643012081556120495771195836920562798177249209286063899087856682650511637795568423837067851602578942327055379764682410580308397990805570973852435283386015496977325297217171296407894156406773460244190169675853612242725465413379031498937054841818332877859402248876768702638338465207508565579139113387026471541223536053105169187188701491805768676467739188385273458515576537551129433479321989755569713862441538583247182695036291520755529584853169026608520195413566085117620154622727570213323235355033500474373395776031285119113449243017063401462758463929789511529694022767529036242687610897865830509542032816010316385992741836298541804951214680567908021367216427440558991465233658370586464915599436764629524276017815575351682613619001472141017727519598533363949581751490998871589604297012950948311740474826495286465871094863437590317012851229485942916767715198060301662317892319445352908172441883456368754677319792026259219142736167685550358924620001577145589575358970525911414289047885496451579050936109250453794727369587031929567793609011889693484814257234224596292755566419628591434310299417831423867693407280865352491071893030185779816292344124731435583648185018456482601882673680895587950858888254990886370648620799755462553193033062481793297437453452822605931110413235210759833018134501100421678678861203179721454940583652250719019031997772461195572091657746865557638003317932786646267978141175494569037036727651777701966734171375418503844872558600192626408217336083279385036603265379726263952386186408901719088725687806746967088284264347772320142517802297843163562200595973836503563180088034221161552899448990387474281863865418776631686327701857205906611069566938266010380200320711276734972418597992585577061766453574692796575614993705595567619181381898364158853436874572468483254511711007347118618375664635093296479752323899829849808310660418860332289430902053646875779182015969156368630087250014696963661887666930270243860321296106318509925409931984072297748399068870602708135714087754977329645404667763123303476050039595030500604504859669152249813215408145494650178029966616478294894800525822276057979527035754570694639942287525633845046513413865841653719949238222537143919212639432851106584812098572277633308615760603845538438555957274280357084524960603164985467614740779484499380946332944652409904508461782649245853761049373341937264937157538210851817896179392716776748812197704610756357352397232500652679978641889154915408151048817582810433832940759216353065320997203804011725306397569264202992962764954126297184737927262380799818974002057735036562351852523313646120810152997770750653637677329644216706754535375096666790168567615007667579534004205386655509277236636204826973582862813937516006372227353400220073466964214050509080305535786805464847822696210705349310581955316942092176442315789625134344808715005414837486507071313157159272114625295016411421810511189803132173022392603992148968582692891682823296243879030916235618575227329650596681417859579796210482616815733061012691105265720404022620576299667896638218493310157313596456495809917784001831843807443601762127485483256342293191591319590864141128099343819455617971814131738798950355998840832085644851307951511325247298202394967968602586220334009829601259489226904636269768301699413971470042127995168265021705702030973381481905045812313983664835731552957060806372066109218714290707121290116554307307636252867438328690810446737512562467130911519745693218545218374247249408678817588790010710290797529968136487379614296501401454347226385400204312218920700022529634554137631949468037305820353717702444354649267907298695723009845796645179748559309462766539569312628278665664088655043209406680006557316650977222490191981067992959427805146517834890514744792254041558362214650991910088365099659728581533708409598561766044825109429162768047888657936718309731744378330206993767102353681777935120583497829842208433434753858502041993415522051357697508872632899166080521891858576912148507673041632320901155636103453378645460063969442051636199309168212569905580385693355642473100131856401503106815465060598039581506371156179168198798073633638579394243517643738635356517652430363731111928120401140683004275664565226425614506692455520683943557853590940777980819223015273499550398952232781572775047457502363196136746290504307403429653979831369413534712024290055211799810140926059269608553823386734896442396049253114976723865578684174150230710494259298989111780117077038179721798131283554169077937596507736781921353223528550578122170344246782825106972314151469401855716859007907762150159682831426433429203294418750242266512890566834963814690865494973146010164108059123701135431843922813701803619542740764975704633547499005546353140499019438761403844857381767191523469650090123663292348785551909614062589143185525482184733950477473504706076104818768476756932609585314363145037480522924873837314091436121788274357814723829847602593758086889085236535884585045896922705964857519459198493215960114771971424737635663370252465593033884093119493175360723859108236745753400134697828265539811296799094703849863125150261076007184132964002815788366239690954065811306040784777833401136128197431515927606037006965141510207879458287596828203756903279227660864439276355942518640278210010142892551916595966014900755532053553149059087584982577837774313564774311191007463771553406412123885894759593514305203189219023095239981134821499170690465788244990414690152504746840594762982338934451279702090346386741261384696992491729094511354606205910874536825754696499620879576232191958106546895287483992880544916646131352602323191373821919508319730662201079303951665221078803549875908770478709689014889144664497763873180024071857004882178095321618019851976933046083291790285593552921282332794045064678607419261177935759954708380886857488033352044252389696903291367207937459495058785651179999050767119758073487572758777129928896294475573946571732003691349323550226187923296197408552423893072689649176772895854913542870622769546510033575213909249435859043170656764769868478592811211615555336443820125222515112131449681373948181092431146396740034386571185666680163126375501471021264440476323712328354277698763057852757518420241827422201403438728259539524797158654522406470782385659065270349296985220665584755332591441392145076716951589005326812446362774935723725528584651652716207740170426748304902236397617306156318885785859448647781454827077150620522239165105417695924475708130711159365332293933514923817696768254689654913857587970850758392081833268858797956319863642743555843584491838137604675131016081489385642188754877065639265960940158652834922142566965742168109830840557646224593214186320444417449006092938439855178120767551474541956233609522610805091905504979052916775004211021051306945477699941644510211349480486824453220412947864991927415675045254306353905648660571588417616379957558386180323862567963554470469198865136656288070812219837063368470243822175187704916499740266892832825423163325960253925032167995024353685694276974679188699378653356741984379463281289694061653701812306432731134371675192372765767869784719146305857108801911143381636405957604703529855352818309265706161530497179620543931925743469058452938886714911664662943448662115313356574718513014483821728190136367748551701477624829853200493999961849516516901437365457342864582341229120611317598732400359494351514347826940590535632095026069709540995323459062073899013669603444687537458981989027348116322928219199344493074870377522807379352720079190151102071251866096790620372205875862840720132313420730431198992346169075307327025286464225960825053403781990957150403606889685888547139358461213337979763762058480545261624764931411221441274104088730364901696748364319975535733485477409394074890240491943534324492078060828146989542373132854123984778572252489387982756393678499923071035960080940063732186298941331720177608855977470408048576182449249194189422771423169254748786384114546567916322732292980307286841379336778711368747491014175736594782911283135577952992610397516956025606970676898298457636993806885717999339036139622077804541306238096729483389087724053616751468086899259141197108909776597955849642273720941764065058308801223238855956511216789475945645653159257121601291177123714623873948578515448224462934803793453740895878393615311836975745337012447825105603106955165858839772680555157386620718222274351382281481533128665602083469736772715532476437526519677696322226635413531736007193544702058573783226200880378670724781871513636255884438821729336304946039601266059988861989761831047569518534532437257911993557963479853090176175179868844734866322976996149408133576602904871786332687308995017248524279946640365319761575524641847382849515773224125623376878744669311198202848590844880841460255268213016116751877452802456332787800125464909563964588099000889870922441276526059142839767197108941556478373057764151848231705626151633213628007097743328119633660924871613458089777712976533663471666338772288154337537403326471252455791261472652000449848417150591700117441109832528875078314352548483194659359056382415831724086922277231576139860528654436908919238249818336311468150288958142271951902877966647332284162008826966534156249868073389792089327611248102812756500560528747221468657312372956060496001246322570295166324093667767707871018408130336911534800448316221296888662023170270634637270026280521184724442210510631227498796053032900499925647701112519305483015766007428357048537622504605211935403760812295674369846152540526905973045478053912786576872636506229613037554849736271067909476431708947342704093170265008208815456276880765900334844674603278890334822271457230444416862964638280174568759616214122139917755781818609124507843639263743303185415947863929768411267274564634948346848963359723977896662073846560367256735531179717624384390808298651896883262142206782352115314375022914930373993804687631939647400423732306593805674024761248512016455672144372340029596402647153577175440016838020466396628240191378949103048586437708038088647656559064904275325823144763994043837240487863866058911342654952834367135598432117159083837209979321541692294772065907257374362832223217144626361071121139589119188475537324254685997783969064976159907439196509486048516832098003297716717784661916120782158213624413757678234722246692073792073801670112991536150668591244299524223227451582448423098601503121021892117151275246280611797274951370908193866504708662974560851821920567339470523784700569390199751612374069152343789792971991496393028836170539040261440530071990431497831267595469011978658799804081964948670976960342874152150961379595342938791720756852907807938783543584981925765731164745208856682066218049037457345576872300033237550518502145583444781731487333312983211169468115798798001612195898539820985354051691910361752411863826956510178472735838774326249423062815953058491923640021015373735636482457486511721215630984182865631634114352701943462694754424164648017708323898290979024525813114824289419170478384287813807798076143956716406632187200264211182648308609058467515718198248674692044795224955845886292813108115913551734387869577831131829992088311008318687761583838770312012878148126179580392114326639040401937945346845407296164815725994022836250603889045009745074327602370140901958190455827256330927190710005774367177294638390096163836389067139028434608734945384639778462315972000232026527672564990650335013540935664261443629424820324276018448815108779884060071074921660055297443130457995714089142241207637949276484370775289292279267678685317336866623413439441780796500837393575239866103478704419725667727681795012575416798780133797536357293186201017718603804690576718262002394621362502310877007852394451843326940941187973164311481567308190809332546601599418571025859764987549394567119141119869904011220618550885893834154233002962967758841964734929828271389944041204521818544776657902892154245859306400674602064362982248600474854260126870228095661576185161796519558800330192843385081141218732410261068367343275660800661251523297442461198422347950665076820430077196212059449710791222285811415886400541858194547052948426613208012517235673194283650190707394843941390867157495916945924142789894786963850136312305712737119250774049849447299797263347778692380295957614504023436078628732777479308430012676344437312217115138986523921900637489322027768001258417983070434935721307667897104267916320106978764275164710021309218084746246254606730548498897487357049710523896274505508888592804312266869305059547848117810982209720218564271225380592647214195790063604491019500298048957348219363778581610445617161316547703253105076881980310369976780184368708328747685492599169111830484431188577896889178836039625092101290913354422596803499573945003250058741841882636374934658875747508709388479965089855423827248690098850611593828727752355404698958379681183645292494485655165693461472444322252334290640599066808705685745349393325653291531993223470168225180391900692688067222451757355234909758845078513850760277985772776063350130505784378298759642855580445161551601230487610581422176721439454578289447249531481852781114729814620109047596712897105061854646156791501642157806610763502720783284396559744570571578993235751050892776084249889853015404993907008533426086191640790188074783367995343529299222216588528999483651628203409087792080502004567254085893065080985758374611601318358885960168713226377147532493513800427659875122504295263562634603103522377885893950968965320120124956710997877553396687541973454758194646830600407011425825690861423148428482804018783621479960998867247110345900107398488959777774545704440408147204665949943420159166193993287973387305803607099909798072923624487081477496927893100514005514741894590949261466055088145610971864520863712469381862266392756221200468223082690470279193584055728098458605859876925013597988678808841634195848928633147044765092509964826042202065506991440474413557754035096143273506581188966617704072034537288137409977123633166463809692676693504481201036883984715714996555505538106382844818964676098943525490657261072684394730183515556256503961831575878712073470267541504655479439100194468921030512943172115025962292146510303809143928731275162340291586087832149949895096538394391277648134814272766919249991549129124459368264124793684823885040807264366419138169656566899463090840317719803970586499847564875791905166805677134722938532789776715205946680515114234805116736428549061346481605080082516600906174751080483694315290765915251632128723181164226715977107510745707601580940314676562870734587245586226597121152763184887126563330224781587225983029625265200970389468992508333428352815533600240116769522060079968736066969890370648981204576645161503143693061974176248810898707309544772973940009719054530163614705581836703349547518877315211760320308020321196342728914058089007882058879059693340227256924930210862923791832776403101790775003543587783421038467019120915336795881690488794071247643038979889613985181413894424621764837461844352858251331514704983858464827468163009100646479412948190211741781650122025691499211036576203484387340986781263614929721469488492375570913646461491124412944754059061109063650191414329410382545026521825212404634039199368286689021497247877813364030492779561319868355114038554615058045770544386065967737512205600371926977226115154923110894438315800774399954684436832569289576290860731148736489435150694691864359308715824467304752181544704685645986113724956185475498269992547288023759855589833871273740760578720020463006050267068575380167425685519570367767378898950556371298013476727203330078876993830982432176391349027333519061788396602878769337848902570459122783691806274794144308148455904956139513878534293252632874193588572880073713963828138780434038047964885853363694266371004520185272283834302632474436406667918565344793930933247922695982528916206449606157884652223046572574873110231817119002723121679887884603665797379005917261384432994122425828522614881876786446351425277978780222423133622448428312638972976344791214826041837878381353980430402222699078794912469793919622974312369105328748225031308519482157782483248584284817403248759016453213018602446520597427313318798204924426580294190708001871282500402689905815937879258267208358739783411276856850631320025258228806144291507174577513128834093545479421464295224223629083202189247003682257456607716456890157766732013773128840191900742595406373360298700455580049106527255175999021661316124485491540205743038089945512248198828101319494969629364803082402346011330154398832802095873537321384520282798630754215809797089245181291467108569166082971893699303776339455993263867819543927521537114725879404603282785771849665792209273439138697971059542025477284684610120935212241217292171308565344442127112211082306131939787185419135971525148786003922461358519573319703150636039245207619360019854789647682433314475472962988787118800847306433619474067807550034091868393213551640098351696497506434982356575736960531857633794010283312656587687776109194705709243345522527184264992267683476304666375337024781283284608447424971490257756572532549111777269489643818762419170179375973316695912579720000253074910129659419728617918309669889930190232081158495840248186212448249608111029231588308454183216730667478240639658290975234902841603581880694360032822360403807849129544139253375760669567321038796875064486897544840696946847740303866342311071117729678387921506916160711257196638165671854082363065977345457574907774184837310173903083548460426593219973205083531257177881296964669129239369312353777142044945242035463680538575293673399705324758223817857257955026264258035595488284947117444123545821821598768629900451555049480193523243202261290990310419572229392001035700943615650513148159537097608904834830686645796403198339913279981368881564977771754049585634658111737530685271764637926950764282764493760183499600013750228242106722461331083288915297343519677573430143819538034781018238606856829410214100098509074406568862500287698252606523321465516691421098551848847198778596393816030279512152224026931380878037554521340696672273135222779059048743603185102458421276326332892245334579759505187326787398562563448607884401706652382403207487038088791152508425863435376360375378837365198014260641471257722220194297815147815116336801689224181974770111603818985306539403902524056690778455577085274421384001135744160570989972896858457790385079882045077377963774740699476371081477948732244790071174862180222985056151680195113836760078565864516940877418631371524463320154145110416854183113772458237268481694517789314571414492357270134928092811679509520658330900752873222170002153043533234768696221576544741680360519355251464974933567817978408715418881305531470042854318704145875413786029058051726231866793759782184217538857358791084472935501017726749837266881149049911444206239661590489000236694741463947233255362159624630323117731232723515299099187723534551588104407199846840382116056512951425215297718372731859590672504360144224888998316349352848134997895717368944271707849504562633652297948295842110257512528248121588749270576929432863785639187199155353165838318439568388934975375424385366018463179320364637823559505558493305284148071688860525120660218987122215518824350654140466090137787348645091276972837447256502512193344863841494168973309027305391650446596041653006154874038328859172923757472300198702686062267883046398595982864763373442695646440271697973558200941440484061362267188415376678843362277873329466483818681846043231434598249429912029483106152517208942762944668172642447500925944580553946966342244577458352141621485239070787520821160976741214730110248902496358958499901345356856816823991264877937444350473387509419453699602961918933325982338183016319156434853313369421251547182074048676951159388273177535764019550815886849313469811993927280716691326246337538492934685741647085132455723622236620973065086870691678578156989122255184659679976882214508715589664583736452317837849850590254666690749882962155701183997380935806495775763878872316028903654646014102460276059577376379463620929493422652315349295404091044278526817819523432980999902948825068603163591693110693005458387677385085331689482545369831745973901780741301271736680375591918411205627722447529759177099922388967584059527045516102666359404422724788083909668638021779937994198208549012183863223570191632111916407610119773478010053063941811070081901941545215829863857719444853140711547810403776093557671892548738256360793245322885488179979750105175551539072148030779428603490239592136727375212331619461088419519218468880837613446853083059718025602146758369145097368561289768162293178205227774140397084374952550050101120353987218587873782926438151885466119803177687916074569374491034126681723980007015051651197525166217002917559900594998280336577524044384116710135547871780155699871254590610092709164063231415192855928654825158485732895680038324416270583334444672539127766035285023696407515217445231072258161237964456563755100974352501170586858698332429443790602249553350507365151779990823471323956085402575170489843701509489446112398600717577823176373052714094322215036312177081591149557702608772244301078365216741995068406235707087860987690418801556818264516685308371422527077238991275163388263088756868767438131567856747455640354495576812966829229102977005508998517409928181611799386308463528683494413890386202235168227814924883729790264973049618891111398697887784265126628845444452468995912193173876250791976950530681446150066599060717073595973617886197731134903877690513863520540226845830491707897926232636127427004061560195006243970736320155428065126979087174677908279740224337606237467377905822426349303617091677577223888388912507325084725863021981927327265575686747936388668947895168055442411908888067416115099508435960698808730467337094414506446041365310358107612089549892031862591103753627539737307388716222210016870746187437486613468143641553820766716174530510960624385216416016061421904656962895217329478565753087956011885721192101210068153958899677781027662353593134998039219133588325986772823107940145917837002607520980380225078263904861937966450186992784821316315096482019463021086956147416244061857788107752273841060894587330746763104515306884987267746648125735478776789606137553568410908653395845347922282568137381655555281002061042238315469195372292588595470873080366443572551519701976305517092867994978368531897820478694541967747917134905164112963247974168971411315235973126988945717689227523406414902753561142153759103635765399390046987166659473726248275130138686453780390292804042225895951370498550628597502301663626879661829352536011394925094912214281463395398448961714100155741333121816315027755000730072266225724881664339425141861776429256291102389382843373805049763656160342561178323127064977210530868784527007501584847708829112087085935618078486918634505088506827344848834592348418905074101926059236082154625577123994874911325565622575615474900374247536464332030156183259198650820824475508931771607822728119766252498276884884036615591811960227802816296316928978343673072508085752158175380336016287542574812191453551256363539564924842445343355768442964133972833973366001863787310986019952685552317886208815416079045601552934252180729838599451532217968399789246775097823706352539364773316531018995775389385427977692825234738085801180417079244369606406446103918881378127384220259669982270506360935147941680342984733224861108672445828685789936041576534142350536803748543886512649027067580141364713191709361872811962053283677458734590322980046219724922804791289212003314165072785565318532777140023922988011391952608229702732908316736388582184503909760474882499965170662608797731914301797091622231645690107555271337076449598732254716634453597928501251284326787930151540756042812225735804670935651004768309005601283495165395786696512992921488849388223912664334249434938477451783835300587012461576655520435917980692118461930048049377095369620940853888883289284769412555476138330198229008921544795769704525518332010450723388684333632597844609848336181505932257406790216255221823946019428389609247257678381187926433721089499706300455551977579012429406946201908205640964933424849039736876941711430450799663380190987801115021441177631884960761644647301177447289962519687204012299755951084435582333593563864333415921229628713421690185531225323706097897710021654323576148430636299156791690150677231820308296034250490831947139448754486493232997518365618742069657615222403543839195650871901593923570529967841664435464874299572154189069209060642201960128211638607096278712495904557709883863160145228167897408655976805170962651390037417494183902141090716110925425698986547080273879162728481982260744811432668408367918099322793851884546709129122309355755376921102632120517546130872239257184904850219863306743333946377106561306294912300275270480199209414972426802617010275036412070046253780796513560875561967086210916199314158697551005509436606285869909557305532304048563333541075710989581175579747809164141149023717674471057315820203706594429887953476257721853636765446898354372469718921571246610410803886797866846177322253152069850911002372755968332005190852579265741225300326087208813034565185487133674347414095038198040962434421745122562323740507010482686726068192670257932886589668876290081930503889442969140960132271977915137193035497176301770116754926325918902182966557631437530869122545391482721573349068816329574677911807638966796069132591699420797828338074343294651179686737566281657832489235710813416707931641897574976711433279312977948645593510304167883792027339599491518490233599387482601272917569711194649537580812151082404836399458367432505503451689569164506534059162994029944711069213574484135330237809153224778954559829455905310139822707183388877251788182774196599989906433096659559187261302136966593951529631158641943035350675810113314654083169425210106712184684549466045327165879251987777597810934138932953200384601000660085197980756085802370144953160544014247156187911545799253582189124258742873421229540322128836017663313823035366373074392715010654024637478345432670948465196526811346902946566708729094902510014352129807094008446740765004500845818473212816318300418151620781539990415941853435759322835107208838015697625525617417620642781856542319863073456482851318083402929275978769390900007833480441186805467109878562337763321305162178360574253907922241097219874191344411439312175684366768811833328655016500432861603030128568152066666978724877646991778526476793671473999153207602713209211272904414805918542844932013526876130289236933041555643110489776769005638729338635365177151065969710092418711034885059890719361294825883773108900740214606282143532642728679209044269287320405666230742090540838619373968520892833046829077807834878955483265700714290880886059182020764824079524060052467704369455408472114857103065979241583528340806991050758233460183898368222515206097679170644659623892926638764302527710329290929223312713375223681654264114645074113588359197475714000345847258118721270801917578015733694378598575374631410969977167374090991716336510347138072502671752002510902225525525229796951493462584032843454251561655454390571892112724896457235848123028209157044351822725477156419933878367896166842597782563475520259703000695297790927539971109743410290635287228685642079573068304237655944464998274416686047277113980297083482627243796918062285103586464806421237601219310146900184497398800063428767726609887178642017572301169789376676633132992928030206471451842527158499402955727579406072171466509993078727029264124499483762615191485142276402957760011751902244140769036991018542676354061649848620176239421632093669496694674171060479765030309729566430201213739346621452700818569268187601775457027300661738962163927729992266971115039779337096784225831718847138546266387019831283768960850313237929477191708378844868844040668185918718900751028261252002918929857633471280826921069273567753107674296206935372197838867007563201137251124225978118104027208800423515766042051392091318067067682716096884684342683299330276593181991310073546610694839629684701407666222503733621097793101145592382235722947481962723707292166922712414491881248075451950784425283540550463398861857204196110376677289417790780492729947929819460291828721327421246447482604945201753660633063962885618499959606683914172350866674494679033457549287933424885154324199754016024882672155519835688514988142777888722712870069823568677231150832975145359241260135748703721144252532738303613208193390315039993007850434009330678376290536615485692330922887429602561638328829320913137699374964525737197610987943203884829553243829106280299053741677291412900249436259755141989858634294631490925735347756777675366100834424032044843583678769662336628197266779385015685651353798474482768710049131264313963783683710542692113770992094276142358917214267084906684963769010132601603882194553964732829994763633309627367307409410543280128430609783487437243717967789905457740740430743639339684639214103909242631444959206513258289566374899607068118102812179999348898075240926324475188803789579421854782494627617030607454739998271647959864906432092923981693875359625741926241480176594770664619219340323432807609666223526967511304225719496176425208452662788874450812577662262561739190013438942244758049752516485140155287191890098447114058641482296620941912524815683851924739761434123524417213385300892587053363672817582241287785891616779792305890153140429980416205096914241167398284954206352115653766798383832435187479084619361513257061202738234941516373481875652406458769117661511235155183834187979207495597122706687227441254614677214909689909877140388504711968327057331147084575041767151069365051662798731004630543746816556887941852300057496238886311834824850398439649413122588169257622172264986870743776654976530403855704316752175618201411806314141906430797013397575408562548459303267427655330488346956929603261671029792297598561198229130760379675371236745693829113923264269056870850609315368164048094346125753803590590770880369949960847737525009718897074097002442454326301789461850966123068574482335732806720220710049165844533830689547094199373120245704567611824928463252733654545591652291221759048585250243334572004361262590420910293000149731904782167654506553586023455986770146465760303663787323534125545417399324543413369349868149099509601780147309768409893005223528280712749248268851420286185797388280246515156654787653297729618651367171535815831405639536256688048247380819024445088427948536693875192800401460220304143228987092315756028124968031227060772088907487566554342173471792069086750102112897268446805813546153182354645437780526969614693415320304856076702515509470047652496826690325387163013187735912872843406684663848916067967501871466107716847853144015434958903858761384362095991911355975444033419008120218542210895971473055955600241605515396718140466437470357809675768556401617985272961268486501581387616926555308171734120292412182055967748040176651766193708695540938290617493344251560828323606004107974403584282576095543259788439636072852084160223521677956183519148202132150771251661548648103206772938549610376173176828168830541646847094854084514717375314094020351019270379905919841141068439670661678216014900177594057207898425170716485469496415060403320461055703457791234842262802071740914463003294547718651966694712456620773803370344214723090835156151141231381316334817487272815573544640403555161978003869111434258094058313584524749962400819085729877661217279388544286328955264348741118194058960551852137802490512270817980838592967473322507752945459820130072505907006012723065191357167074313888251727849033208019540796648336505067331039621047793773076330084969898072028833073494953933303277688692866015268247748812499733396914416815025328821598633102190009602404448446217250127286929576331187668279165106812001432090066535812180020149927670026198462484484338346334437406376118700393939898698370786673017983775523612616927825575376326072661508115227226031962170162391418311927593111786749790932445503847548302050994584005293951149062804261776943600230651697072734511983331888570092035819501078910278507247819712149395907927019778216107670937992259764440041467820033799865124110711593901472294583167529284879280296702791266781843180298334098614215744202882628776801797959280273526210054735691922263897425230594425229725522351998531465614528136476239303473381420420883974983407551491183547851595577466499617211735422954529230464810531146020479569915031226712398646839233989447729201059424214528966347147235194255960796800528976300649350310819484481760089180072958541052253864713158395922688325705302838260877711456483447091928614493562692746479341498290640158908458949624343578973961710729768696109560935229406758407670773211414052199941752257056759354440498363939291306569157013494850367859541095631054077159311560974692524368653863410925875749595419577359941321471442991765301476995355584775197046406763820169205196382336794348294955607450510093886739445167068199065936412502577765544759499341312705997918625658783052984475518783098499729880396710932047516173603263049813717079311632399101031601046223960943518365051847685820712524290119402443481188794996452488621917630413534838156711039513220673292863630069513290068172600183829060279893180650442886942163758674692478891867550374869375732916620639039597655347501456684412494267670215052973124056822430699346512613507259849564450785540838552729732792164994455002028770481957721779205358858526311491983237719940996875954740226734859626296749818933194046343688968474946645442973881935487699908044560320981736465143988703510633827096178628571428648996632591917977464896162036605819472744791466990379644920718591945185962110680629960465134677381805037091463817668057627559422357315397967546058575360378080289256209002970979519725113288547737137404097278482227311169010525586377591914074868991614995793305963312650100664442612416762477276940870089536283826844564385804922845021382898000097659071930132328189015797161588895775170293255360158970809290899057695911925092264196240146080921439452013930641905107794109365506502462136426955652453880860878138921035368976339217959306661759844488514586654639134575811701818322457966703586248670637372337128877719025125041580272915484766684443957634746115471864809592446721474694972347332668562463547856322155425850171478341189093295986639571140049303473928300658411292010270215944702244260177081664031238381596251115779211971589702530290944934263522998687069104723440115535805199797557423582515261850100887665104836319980794239554815983331299606388423645175735652608961202622530757669577488369088881836926928216832045343396255876829453025780665353108065146298274636679702643064516271654715011409247720581957456396453670114216147820086844941722215786991981253115087950741648268882329604579264936772313889300910798654513657628391533513389565940450661460334921525175614021910137161872033168580649844863264721338990123185567598456574691836694105412935319351365210150841237594886357944401154703627543930383395531265363969686167425219013048054397343670334364182034249300992803566765979128217597879812637689217066971693996097437977976363015035553870344081812709297140871209048281317804952621511882314937861364797976886172132878366286868740480280926623786569590515937839064398271156763272824695879205954474678086395551164074957473866025558943571926834623493727999739684662966961626374569526155419141442578343310072525484340743888466146439415774386657097063292958486334374158445833460671873199227925342841880028470093341944161291041058682335078065745440256994680640959769957642205175681248341509026705350875211244589256335905937208090190487711219980944711390841015078384090286739616818203888990254232522755668646752431526564760471452746947530285505701918330736603063496496322581920190501271212972449896915764251055618673157001323455087253139811408078481337603751472660186044849842955199280905926909550097368590888695845791123524803623424782450400431918451912470770371431179676568947471265753065593673965859147815043918131619901665252675016520106129808572767724740883383943834998305332919589571498952516435323276054734070981234203346930003619110735371943046910512448333304584079849764101774038794678648568435552799306348105083947133659405801279325234469111826937632236362478498312529598313508953562363491483131004912617820237292829602948912155050569244928952025088427937276127692958614969646254351563390523319356510648276861845577617674756400984691292353621566709587737631245247382602557755862148445266209342957119967216490578155880462362970486235072367496289046678278990913862979201523643362486701922231248683382290386893917690531421595002982900528210655423039060950545282944155901412656655821473260885353444505618539821794478762862136550915530213313850383732990783562550662743630837408905686806390056286580213894516995884830775943484954080674701801168280141872985070674286258062694753425755684788696981270075792475772219677764670921539577055559091223956188827778267089451342995348367716687090769800414361051746147989555056104054445961966693135416373561636209799939775168728826984542306385053404762614771628682956219170028100330138265265538870173949524466443132633334934185863643109631233212733916755498887192936184668554956591796235518948007266617680139703696338162990979158551947364923588686131847135322170603571114973274242916509568287233006149527404267574414308327080265576239294254017194806537262607751425574113518707560166761126480394874320977828686853159713073531638235541560267857364119503416641136231477723893716981533118848372000499748786708028408282890518042906481272958137764320518636055657332957835632263193442781503259435779752949139066617037982820212744686803902337989969352345570523912139022083757128871960532719300885795934820714220738230488123897324315832815697551371439733027980490333808969670512072950765326081547380788081496130314477509764659376874916636821899416924417892387151392719265859455811488000829266643475664928689199071108605942180901951116613455258517209271322731190302246320979909717763997597859166224807438311277234916115628019440770917910838202360553900261053584705750151170775456768535593901461616180637968631496482790559932454452934670340380243056039674973642882721596256740313709879353313540831974958981813591016041875413448333353870507725088431336862883624784698877785714415716963545468560276075510746429803331080248668313973956970835109361062722823085716832531681609996188405624187621867069711530902288301483897689002675263944381309050137902721797460887433578535823604656054646407919374252269838326635519534388639051853425207316975635521837166205841540790588514477636204590817790676545481560969009048629628595641325870417986897552792254902335540133223504153313098980839064195152551047915834408082406324865915463912464362379367149793623448209502019523636666611982172218948494283629952032103309530829129677736904322189273446176791182567296348036794523606439029484440828115095702295021282540057437740049969277284607291153646872444078774812048517274824253104336927859846668978022573243809117002767315549982460462697193504858320464188871500528251333797167876766103491496479624914173397834092528368430838106482952802140421339051816190966319245308811988706522745706399941128460744163024462829866735791848298592274849935739176046245536390886755653022152464833249690613739791438975581747667267460691741651517203477931261698576773400086575531537109198799980751198982652685943110276187744605032307812346606995085718254436610270824340946555102332812952302572921762907753236293121171244071574926940140287575617992796702012981386010854201270531810238859073947587007075831739914612206739898264353312087352315738431378252331934325056565846628682502662753891194899410825287529379328786831874887763708746716563717886044121067033219677837926582133063827127893866001477185156358258045652697426146163157809766036904845370487291593012818185723581020452972904582715455537839922171427242591925928381709051960754868836657672573877789760932678718306825329041995198858996484568472703678006288142373539202957916257708170689338022594174861467538475220575754979971999398567216138590583511694731112548531780886911345295400974140012524263199540897456298852277422509149817095316504314885933263285187287084914351384321411844964974090487331443569922973794495599494173284052037661078308416889723746957802638663970622991207702488573598859150573375387234821302503800034015792098897018475291070957921134935910971944057256535254279645625725688300542972193530161699592406794184121753090271354070748500548811396171585372851919367317856228005871649353506406125284740540216332823689740012774560201767515585921486064502698393522895184740129640696158118549016933352686572372092476161547648213874529852294600947079388599343713876377311643642477204200243172262256118420296863117621352275234104585611879693464663432112761181748921719959791982525998460173367292241363173578948435888123112506700919589515911412366180048623475017298073631902564510595391381836325279402956581239925006943802064968563833611427638108151758313799667992637062881024565212011242395282716899209628600108635807929442327624065532620408806605221503515025313089803101803220610262680020345068362802688955921168915503278444361646500176955459854248495279458981935271506705924247929713746965875154527211023288201487572303315900374143810769703837897522214015275550923540954662266736443584234087477601390955354293514681511343381462567419447580694065511725120722306309867857281687316457854058162408906077851288120050061202623256205990620286522130203351782537218978541994349148620469563432645463994657514074180047526816126836277564707579641483211052558506027357688307116440248872055708784440899232489409516903867264077348047559930506845114233447926843346951175215214754935691903000178542964705064138368343969508247535740795415082257639523436780095223023102675198683857399093306710445721753497133416551461963022054996302263343167808018970149853281980013332666992747002019943785499194926367457446763594394416385123293297161224802248275096200560568990056577129454783986281568485658725205847527891114741631360150574378657504509655831203341714707640868503696420277590907345849598520259740485727628293491138882918693550179578298741833488678742007438669239208500035162632417658586322184701299260796675596909168659558070242357852400594621494654440884118847954269515782168210403168946851144181292364421029506281935093367611911814021002289632058907576693824221299835558050405391384336141779327265981658483988903604905416660153609347704645766008236606441687959341378425006836649916932787426045574972485673854606615561016291725458429063237275527230214246948373967084554712610795370570966676607127331111417666237299932987379337924422985723699284873580772358352125298313288301758568431580918349804887945857263042782685769052385654328774902223446478920219054626189477156288351253229727002940546916461994697867985781421012645500785147259075939976259642656067323720066272756022097579266842124644098800339564919970758879462649672153990041034926919721706320704308957985479798319806604856701358693581887649526648410011022720686752772138437010974749244945719551134446638261399167457527481647686624266925728562021098783899872431112615607194605659340604622745468055070398989445793848091613665293400263836968581405409957040917737617262439409837196717247052454687597877881973898955153215929165990875757537772745403168950389814861113541689778723677655501493812765054298691360152903123963952037464339195867494806010639373665497827376181111006184367646361803524607776732396517781905450162800402386735377160557331974133445156965073358573243253207217539334801714712163908427842475706223448038139782744492846526041928982792270262455912726285161490634224834883175883805095569355210413084459824348003863761901548360143546263060273448429767451618278914184541651415879711757462839289957459773164431474828975449464382357041936019034073569654414877478261903050556967152257036166497971094146191429444647979527321184957587700156461721265434793251272511911525066335120844206244185220606508202808758149056157423137680914678407828179904630381138962096922490229562317462360142351890052992489190218520125906731688545998624187355518433449679453715073561005562306925604797090719731030428361964254844473418131185188544624821425413776951904478162530491049093480163275669135654501428601336625840513391754377434046324378535875692801665544273276096333124720575900550300345868488288430417995838754188692592034301399349593887416307781401595527451002144332606983621971716260103263578777378561331781294758407758042065970757665708294097746358209173847883062522023442424935681176379371940407235276387171973323863920066880300623448636700784878803987231323467838455997482698557219411674967854524301827215742605761527804051979447528827231591148504444061786360010789461759236804628044882526308590965272195905021555864822632595903531494819310531134016367389907141399847061547694476667315307866863375951880650139143134204523187073980814539016033953738002960190279889586323682953814261509740043895301166526877775762619064804047418354428018441330018578057769360388021212236238506521666422420135208116232624252652749462458732298459801910746370215989031203327058293600731468749519290078194480147287308919164396254518171021953001162874051771875218356009672947805422675685525849919777873754232464041076444412152615651201924398804130669393201467630005125809123212803540224692112461151777971746623617788070961977415759835169859343138329861797149774015961964391733503545380965538562048657711066480995494849239018363058035028760991444068607990359631504477968379539347397594651555750402613893231396293718219173673643240081809811730349235931333590612485997889724411592620107355206287789620997184450056024223379390565429837484246666888006126783889458706287749355409726020725359650619357579736745480983753313114076283857760291936127073069995456037253762144452427158501280081559705452250764126711364546973520923742359718003692735757061213573735826644171692973445038817807670603699243625762165837341166121259208921215079631439419308335350275348315903836833378382845342932673486380561115353772131498701283449983323276687752256746130286418663957587567469646737843941803994714973977839945087859933433521617194682762972074693389687719187794176191671258656980884784755313356534984946512706951920783871050819301493673059798750786137781284072551090143171468088869079781694841763373700791082022113457653593313929490525629807540365898399698555484522279215074092672763335348586494237670613740541571760579741957979342202028907438964413540516792001498190986966568658920377760567631459612867649638841511444416759119258337757034109739734456018597354938676842365760441571892426013870594902133329877189200183665828230195923148103317934477537444950200635163718036240565611940148318035778465881114473430206743354212003022616963987181844077112323000639420370618297629439062485249507082247803578675751113001862503453866261825340237120447278406153701516403307043266827659540659027407738366218522658597232239591579996515518907177858644766452358682346485326301176132888761355712280454806281866307173758253208327509966782641784522368222416958219356097812843992697220305132091174603373822954259121655159854960830953886176903329549743470620965518479193730959532925254739201890424611366100221800142114148636214223178855473130064159415244411414183830313838393603740685792974536629246864525056422169796937441180719989768427095702723189853905528747302223461759961336899663553245391540654428917785170305427616711215439915096644202225675318623264487171288201830146460740412698463987500390072262568344335073878531573269047200045690598834643691082404258878919936680263345613438591310496846108652965332609417416322273858160353834750042910324797655930846313778200196837851010743658012948279983326587066505676646396643118187771263027184894076010848768573364927720061179051755221212631132523818376642667575600140675609286694357098091710059997933346175662448048123236444047195495899604425902894518217475916074043767768693075415535930203614441383806280764124601731881170868276126149575615214642567367331804117235004647467661721555132178600599513225348501615566553420095832498966125820332627552290808566149653170787009773545520848174237828071124563435922011205242572041963867622581257503283434590750286526133665757657882383981358733371597355441821722868957427387559140142322639684825493256874108076213018651670404031567376649697116821762523639950697855080432889935759484801646298509663379768625778304392454913384528228775060090698307450506016407233996985856525483895414937980255300137630927472942108836767746814965853455615463610504455238527640957542114824065263805953191035731759153415219259394281181131001480914084511319127550703670862534402850371854710081977630929105542192146578043143661777527833655581963165294654132816565012345223456084185337036106168565126034486106128531413285397918245030106260263064099503626610882559822798720401898869742287402622588934321407891697153096113199332599756594544884644827825137127498207580479480039514915222365972140515763271047236413432738516182896536062595942836755406539467006422317095700305982881518676637599755349581489548739618320863290131436123392375866064832542177315993578619022980136521019864467280103297502851238424967421864636573176274417061252199410654332778731543328205948293640865207465254121719733752963872186675098273870657187659889491026150562515749015101199278774301628899003730953986241613259583801054979748659136522607261070613187460813794818664359168763825539286778911805208894871086980771885081476109667104141728786848837453204127684235213264630908782787433871060391420329810630971311852160636495791695637804775540512929214715704773530232402114085224236560230924166525087468762886252384187746551211047733935620598568070320422424283103608360593798979007819691250288088212953287129323738277512392309281591448303256710790604626789830385649629765877549639274585373080711536985483219785106844169516920576875835891824601223931573159319608926912058877148456943578719936737149292383731931346639517775745820048492779541667715692717432774353386996813529818601345914537831755639700088949110463768531140950639410939702677216746999984044795203591862293366030526068622019114460521299777455788871056495845105429128817507617827575261012547429786527627935243682127895478925128299251203477506764925725322075729350705872692906153663215233313242784756679102505641543090168235237898316862389505660343578071761198442131786276278098747264617946394916210629631092480134016086463847080604949866640849659577251080014138182909222422000575243562044019771287403629733688683720213127598963135542723380182112865823994128673589705884629512238340250098829058795832454137293907952592860394204650741489028590329728306272290364276912521724505241294962488964512230071934627451835474580739259806225382120620193779541962867918459767646518104464547730762484624390722593975482086683116443400311018309872909515794931380289138254737418681946959517239159305113147325981693685764256039547099461091923620422135804557881751587322419162243494953804101560992791481354655699114495122380749444651418949150206007389595265350280399062577512941953807667257524219706874029545937938978859449011656478648860087196558704365162613803738929270353910597658599660617101675682989761733657619401616606147310964281163050499167102773369257357879830096420995369406090230223064221056646193066633544639474573144134131557123771699825865385782975925869375944450857779681231046565634090512494875342646610288984195944373700272560842128633363136423543039561913856402449123161397015214973966212841569766311946034338722640043350949284525695868685772847327658260779683250666764096858729618524177023211669156659009564383497855600035371475534207075592010742515785341901764495445289096350723671075967550305405497890518373559925287700434767856519737444843988971747293553295810346853569714054779423336117626953396935691835195381417558615979423612621221192809436765978949146455560172703681478917653002540125408076822246573944883669351074320544539795952565486807752864704402115099735813687282286226874095052621213012152745151684425263491549696980535397957553541793745921844994111203853823260025936702531994880686982509734396901425772075127881065372809334778560415356708037549479793310162061727519470538033280853158130641418471044553922924942130548626969486141928444598410803963537940636939817383940163580049400847670995496759839878498357061822784603386875564609304747068795996718011801966635325787916149250790574838013051872365525629331556424437229094752555483591904665235472280500429068445140779508249465159452923675938308240863811185625287516092466652282924492943853935950192775462092851904435648950232410246183997607681664235703281273810907450313134747334039874147552604181608256437364150834286664597846214735245821865864643788772375486116221329363395725904330190187377111760486458297819832793021943509574565121419821322906138797906117282478962664458126093988956347223406455264626389242373947202186065090331331138075440531178980751447085113343050215486064931240899549249696127746679424614511871306399694872876096466390803404387206828146824945239254966677165829270757125403408092544980510820006276836419798565924918462677087204124803729490395177121300323515057303369140421948027849195883456242832684783729289311217490573156032143883062854121197933458281232373987156195070455243987064494988440986264136803050061364483696666728233939954876325946384840856045489002077778131397441621365316016986845192464236590294568076368431471331922688093053751396411714172604835306344217517608020554621220193166386838528681245802981345859476652086939068255135078961150401918665027888298831000942271101153206715740913768746167851520294353373094622867549391820756082365355649686226896418162050606458611579223744709704850181630902568274586548507901599942672058270979006571942131722976801952857190988020210704926340301950383107884835470347728225256289069050138445708510363550996390607550106870937111754082224469227856176478180297209826801207010758749945696733967745945818896767850162612692719446220597657282025742030017336350684257996485249000150475718638834657158824255033276949242596286170159077723100204645320074688371133137845304993030751854733278583388375878633882338225830524806167851979898492002491252444751345412130849555757072131451527257509993407542076902809426713933307834102518717218339246641656458646579565046725801387701880829667641843419555431408652188030655629158507821248506850529280560199880871717153915504111288498567510952874613141065194009733919763004087188608691883860932438076019119038724872528114363935460775743871367436453363498554214593388549340629417093906654888795473223622017214940789895266068784420796674245680605248343191289803289476250604377307071671278558579081437192864738703101843882308145095560594108176919975744741335674628909231497650571621396887868254801794136942655131148490906023571829221651012952385558081952584581442700053372873548781170993837795232617155185931581875261917198293516553084759663239477563230967971846110711679064577655227239946103200249484381513867836853288053380929390530337473901707746911073228170387812383453061305483535046015383329401750279638411349685340275666171022414675060312023467255283426416542795220322503553827625751842030241795612384134335541039723744063302273996508861276053287831025073529025956261862547881227441579163495340489527815634085424927936778300571120238753459715857741783447140366677292438632222524381994783149234225305771699858812568352433194819836255946309371886891181348253541262553286255531654891452190746041127835824552594584869197222469062851963261071512924946206852078076870131020136702057861779219409667274763063676756333349500440183242287111597214693886772682406624311997299654883489383690340090531670039028165511971226725643700275502191419773799820140956544469005059348548186691507500932551785216789236226866794414197112822406764444675856762021881897376626026416477242823849473908747408584458315240434251256605928609617612187022026491938248728154346168994499100074697939451965153463430497987613681375985867261960835842260532943754519656909366130828228994161036234922431276733851435348396751843254029779263596171875128107140213604418861556034791932672147319147546445872057173218946561840564647879843927169557155946912746867485259796137361511503965769021796033685133499962901683338549979669791611580882750599195745316509111055533947725285010237763075078619407892317823428791634488712630488558880940924434356788800299158067990164233301681867745999783794502310335385662740691207912859987134486410560048824012466162379011420346534176327465954983386424854858773293510199873574138822019932130953767772017621273630936744500347186267785204949165954249248642503671298368369622775182671951443221423030177284308576303205866559586676259983161401694341430562210466917291850277006556057500195589467178870498853943962170848885544030230691201417179429689744566585868090783923772938339452280260274734462600848826613990331288561624822785299073568172039994039616684306079673999994845666759367919578306327240559377639542142345086115818302726629059055415431494401335323660119969424411131334643236836085678776731199706576049098998826497640720521779637863358681710461320299409186084056962357644598042459487004780290209035074135510108311714308852741263476563833758740515098868415761370652590664508014941731379018945841210970343592637237301437417256708212031624587095094551289493317321112793623137604278194636370686162679989323888121855513866514234534853135717353062905756797615544086429405377867820802720336733747320830734325423928342512974514825119304559285885701688104866860372119254963866295226572040955754354528957142626292515704042837278859501796537030704812143572029287792870087684194728455131358220755237478498316295937791186257863506857128113439998106417631140430318802478735406297462826679403856668032877248897471436396055180555332758477526660175972041159258263445923428350148419688243095184263879935814937072637422699194626845928395429222892333153882278628485354832861698952486754295653930336592896367489074633675242920183995676283195676830309836165304554622680051645961338106135785020704850607666420410347969475637033119942367031147205773693107756671149734064271403026532541089510911886175076044745349710295790796623424779479509719947188959023386960224642982923630679199496171779984815527181352570180384500617606262865632981073014521627781936156653671927689690379524967793165074098063085013087826248600937324948651199958451304466878418667117596779479181517303381511988879400022704296638251490668664181652622559697576130535715076557827262695681083254154608775515984721708845474045986480893730170783874161905343063883918908630215202727226507139535237365360809782212806080085179609181531025764227517496354757947495771772902672894377589871860271132218181549171337688470859775554913932008011025032421034959836441158669635333686555089337416031199723817696792002629262139664364843181319147679292468711957330113827697702468217223636513676294787575262507552185585208336784840462149285344732976031910379043652029576110152923069438588967068060366130961763249522013892971485565571897488878069498164697757250846695708192128237311039388702302533150902231813358877303573280342879814965443898085646709293288921026777534272077271354108094053244819129903127554150906325989800459856736029561178405648761706470333102408810853808251312271694538034087476279241053686597621744761460817030640212912398833314137731489883195993272356093641742304478823046105492419598261868852142546110863986617007161227801289484985585184057738704714384989304983298195092444052859969851760577964103215345390710133530409514202170666905494581223657878630765294521280695178852946964851489225051185119918273208029921841486129850634703321435051707560139119242896575026263972696187705273940780947520623117007953519890579411268975380525484226992650163871550494210190077675090198069448948716537440156667592256105366730980599497485932691721163324809335829819221387477301695587523108628799239174647823147047168739630720636344770418980342168357838445317263430613972023859753063418882505077560802146208265453440798662433979206659757137543944978782588898496652947568297822020391527344441147212256868790705378413041321220669687144685635798768295442428332769373156301331139806938927646313273539521125439792515242233083142061941188375825952772730207467982034411882581098898314066267313641124410015736517327671472163168379490341026124154579641163363790872391321403705845428146458667049548087844606979062189949306125306992410861525351742125196163340843392923705910944855500320207878714824800287591060991818603013079870157743373795098879392667311387605413502562161958249803918205764326648213985480915835400725117661818137351575257122684208893488097538845626601674657111592056228529558410809321231719778890250688066756010292682702458682443751752516470253838002550043783572704376612619859186220171986490501964753372361254213899254655896191319582694029691419976612223393258039646910677918142998851041099488239084861570538459435434441956532905717473861035037825215615125679352248352199962690789221060920827700323243420214175153211981680178142920275454690002635409564413690404349270160390461367490039139111268248131434969126730428123826262817572377352646197523513794505151177809414617531972153945189295773538225963722145890898132143695545007764151038443355241210667349832176189885943553002170858261682657768107697060990581846674102042850235350773458805020428487071010344054320747969758047842543624742750254947962080943642008523763240870847836994778931462723757293588971398098849657997927964441502317000984236058531424834949215399797497699838264610316784758780906134145378931565681842405826411617952295124541580551243024536602036284943602183793573632693236885361297275876669679036467108100652612688609951073797930994913347907258235249888918887516074385030036439024502853461500421047789814695641650592831969633905223300008901472756143154416968829051108090836440923799267698463091878914356610837072557801331850337768022486431865013144072870962764778770975900238597311087400920572974849000797572048123227017949746765723284996573513737668906362786777534294914446216201725919365904822654475194309432626738765377788215968216397434013121719173247821355450239410464376670788477465563602195876504717864119191984964456975066265979082544372105370163025520225965842512440260010124445051368065656421776625200990461733567248194037019901871808184967628601613217593296989178466085166048552659396698789822126294446635625054231457185029295881325434627991009774794509725914426641926934460312173766049535877958914781323464163468781079728278857158035956252056503450743100988766051234340410793647456706130075152178752251950237444389890372439851205166839809761894654539299192417048777778091474392447710219429080969102487420826262221093362724725301079656512540854853068333314536231034681082336181736347556083185416537415961264706038708028696167666922973740887774794748056394581633408057740543444829378474659069599021732170459416163625596031318675193965680552460846721655271706429933569708632262804511733418055247929914092116108508693242890449149885663293951155820811395364142965661313113295597086398552022240396076113321404606126882780309418773278438257548860785846628604578649201561496623343845946717137881362325312370367043421176599887756743658608448806068972061315495198534752773385857572476695498714063933894203542332080752170142886543567795424683510079050522841405936903455623130370568703632810624502424474479637068129725999512265296066598249540134052330909718142989237601669647328919979095354287681707757704347289231813189987917674523188564748993330426814718289928604615903218576376814346408869184431936514705099024148010306952009836465654843877319997153578933010410722958494604529612106659480974598134363765965872604444006740591194329720808727466187272266546126178105127454645137031290253049450777168636594532691997050214503094882438640301826679086645133346810566288123103665361129491093163432407464747084205887525636653758979385613260247409442366788059922491770498604759792663493257833229560745230032754247578335568460541212022656572880075444332685861017944966049191785247921969203101476934097569164623575136124998176088284240279899337363237191621989886095382953428320355103888168943778143518791345966919250798852185144142017103594826556018912949779022326891371620264902060369597127477594807326951791719448105404409644625998770051321643196610015689085111112087115597938032899491384605018751252756972023225967724703543005853688542339478250019680802867352680316183188387509752145321147034448527278025971139043836578262207478890778465296206779580316591792177050006697811044250131726701904627850310594236418659996916232847931027154757853788214448700009790980355557291043394228495455325388831488099018715098996567592296385918375297033186387858150864251332474646726924401572690613291744672139342824654449734325978402597805558621527884880247266837310357692077088218702184382275563430233685120857271875026968105019772733401283387691598377599586585469022366442426784632602241367249575008193729468714343572870976137255540508428544719058302524032271174560484300914845543860077967189199520091574834352274512899938061492605650892352040750434342652846605041497907055566391218839769665614636381438102069731755525261280810496816615808156788339685359094939592097572567288482199370516013441397580054785952134252391035753837776574115288711972427938540564620661706606785581151247646711092114095532029226439070124704929963826636644564472923119212794180710278511426960008999167396296409637316611842007339167624483594238975086482615403646856023423335982220024292080228365267428956372378144262787777274233255148490631514187451456468177136911561147313731581193120683354084429465878433344394132329512879681553760429268336760175380392476836075276635211375112210330671740648989016996284484140882765409743665140484078430919175660871383922991224997417203788700230031842224013443665035338242383665877446131433489517694398879130132712314109635753745638626722958738913643509679083117595593086531900065383616302700340083188033472552544128393311720544421377624458949337394020990832639024901606955653561353909403663787930781426904724899506807232391573242026762667023926398109043518850486931040322738959001373776684745117137753679631693808495719029407392968267888796491138308888520221676332731418139159601621269170421254311404671253749132207728453553515958353077350798667176458423006788443573994113037786630722026034597028345368595385379528327097082078662956822250891233781500718824811253745234438473293693818119721727294945171002022342804218230362702424126385306469797627925564431559401112621120465350714811773198707285203438360263163692569960578048999509581379835269228641135842156535608263606925443300168721623736132604442056480266492094284831032362811017243278296926004854421511560657746338956450975464489625115823137983769871052578509258643935469649082306315008857601650778195492261235533519842645951125830507630382224583311772160086537705548854342774647684379579635159430798442574992866434075109929360401906437305545623638744080357841700411551319565943007536604915494411767601572746716936309742419505865744390305925694787146855855556698819790351175468553227473239405792952815177044079707167501898672054672183908565615268524106415993123202058635888619373291333623393341071983820664474758309309821044538405818599525257551613493123670024189512268290955169322818727810030040750856519850985545016024221097873407749833080438769024087191875390597136083588265598535531866367902418058466359259610560122115609270521870159092982816639516871705629158350536721768662192781933755159568345626295169782230019084210767521382355763625106774478083723957145532094071274822834057491150948708260897318954537736196424740453332302732475777512442743468623456599757093914951969977176500238351031072062140050305489600428599944811316322533947613732811348272794364850754034841632496551103957002701659251507890008578857102577243834593716266918385613448665616017513201794870552940204735410565845799506467065005451363827689022342755179232270955699479939560244008936524661359392963489558671800657893536612432746790752100971004006169955406305993148964773275174342349423272845744110409116888630076376179525740751813560161334112283010619517352800830715081367332188551485647635544796171647798064227505588573253874031619226718253849946550214132342927453632608356141409022429484830845046346321292071494707071085065897326814432024773927816931651321617065708213635813940058592307381191768625983995502710828052096116865906075512721274570570358386256705387380633370794873304931532893017474130034368961784642285872156364948856181626801658420257339718421920006694696070158616436759900336097894001060427988130565439074382163834272966716555852112223281291437903855030084441955941261710507948634693705505891127131535872433822393040838243968526265996902044624789893704971722568932255470692665618521981407468484351011415401526580332945671741942528046702264844449045699690876278080815812209742088200261458144470925399677730441988238188222837966445707326617628784823996439525401494118641449268297545001328150404839127924283057209150721826436367898076975400002253186205082809617158799822153361584089652868886667314233114734757519027669394428881648835593666360841521087256665595122853260895616688446989551442208155690340020728186970991137493658826316607490915313576452355603234383574606023252774435933490310232631284078006505809925947615543796006960338612199074393426212259063141845538536460287661166183836418896750948920109098676443349799987662553836239534191568861896217984278135214648628748503629316241094119888464467384333341687822746401049699549103088924285470818389642724618120802283225470202643112669541005801428934829899631082748388177592758681752786791854884543875096423540939558548113870592947720633123228130384317725394987283104499724973405135316258937428441984006536624662108415936756585620014758222654676516186675319347779055832469889839558179828469467925019598066002530265358744964980825046550718492177967387414850527917630076192653732553227415218725802390919498471015080822285299109711075613785779454026038684459155438366100887389515368437929184594031075531919717385803999424077316865672393914106178224736905788001136568488956566498141750269532725540967561743239572656044771840712904137505315560999850962344021839557340707152393431963613095989658854642118167464582969648908823398803323108522013480555168344390733358468349011645158023798011855837159842911174689737730850975191942165698718013702956879106020342890443851260071403469623996914813801321874411043415203072089262811543847400924766822351853289203388280151228467360777266592311013442392987839150035627980267826536470940196371206504566295705030696667871002882413225860875127501181944097895389680648785151130643557606599362589857270231587950463470980035473624167607665648587689507463595314683746794328273497243971645474312372836931562191058659425634560648915785547639939826200215253927202685917442218611637421115113766268328497284571265766086817494947970805602950232075323907914317127519362244072314269034561422926586238080971526626728459939982594939952599437174584116765128445572009571096360512902240435132128669110428924355086464737444419302602508839466711354813421818998352928206523732049203885040469223384142673016585666045461826148819049683078209826677315347172629403922076882833066088965529154179981371043552581695040742399469063921725837891458689904707190576399086999580676279936460333921294520178685496952697114829354605261451456784288655672517890362189736589011919972852010692758157237245407659251601673150487871746911607772066600349646746718523811146743498847068116935055246215747434334515507000830424826873098378023437097192084316057814088602515500723375223460073128862265657189864816644168994421449970088118277937637181186002527530409938037436899041252864970253463674382214590458610378713267924964177924601595633055222786582369159118604844411844059807173326799190401245239241351887644149045252640121916604228598293594313679961683664231671036847334235154631106058660907009838039279766203223721536180377653140478899560282438779578063482325448429727003923796376056615572781224194499023053351089555104299095857953106408962088767881724912606923156799184025306404980091341133230684956754076208039145204566614311018131148549669804654249095029172049366329850311631606820236739828027429180274842812752948461354508499807531752140905821709313517498267495705399524940402458456472952954765328885269792355876597952036924542825651603201840704454832459349393062937271319369437985511025547723671141345753050319475633862557537055494886681993960388864505844622814722869416999538934303088951109790853875833975247500351984285186732173796540243767029781004082761694047338024901311488087352568535329211957164730405942617487233716997187303815831875435121424925914207321905213583706373537818423769144483118531966235232673610332772916718603717891731005423473148279010739929506527688453698287018231976026219583230153034048817337799365409289066713729923469403913595688238161959619989274797468243302841666592444799185244386001192601840288055954249151017498545463910901618852065642801067565838091438891839774179084598039895045579642752318172911145906400568322544042182203099441451325828329104938620302032993717709705472317503949617278945351934236230235152665738865652828878147855979755121608432165894269073145077491708107138284798680129039087602940588329594761487177437819929827760006141977642076007675960758514365741193222026416170561018517243552121998857905243810911844986587546763727006845460696809618611164501512308115022267766529266516938590742485564337673544063787371449955674207245427807817856972314854429037176926792525950293107676886966290517618985105693158065762202307609142808950253557285092419929658380621901006274743835183687638434239432023453646617399044854501680907611048483880197175880672602317266216739101284466986928822387477066856627054520039765807387825319482442539431456544321952483048290373917890793501322963388460175256277617293958411542640801726926813224639921791052533136689877710519486018030608132445386916510039306834011955313754011197596649682855197583987469619824209318369099384071895953545373671034494852386378866008150784363918894383866210273875257017206373108558169887847794943070785060379802566438773709663431421199624780275670979715885918234780997903270891360458541852298040689576296665416722732455669129006773863119124648711503025505163063158725599524355126040134345595330891510900136231969389645523473179375718439115506210722183807197871166651067430340319810962572745678175739639399628135149931050433858978603928148724873902446840425739515076655108938067772730908232996317729255981018222850002069331439365244873902365341854468357305675550508983744616998930699211693016847281762113348866232947796294263532433768931029261496677432255823260462894914050966443521653827115926191844685633562303074699414743224189471047820195401897029100895632924366098973514030795478383416737561260733020571170787404350145081016357537594390044565116393450751848071571152590056120048569231856597729976278262753041226598669354482198535280046917589521040451250192254386576074622615477483345737534090622646488606152200270591223090904244584361743647244139471915809970616039556423140619500897048208582299942883125163613027769590765643947812255062594139179316415997810789889134868751735192654597021847339851551829394754791904882841723729610972880107938564568967809067274775140691247811017175438011187178152378345323371076854299371880291455734895879627899475562880515692735942338588227620654779908055472259952754799352799336041776700728795173875625875009201414695933449520213749997543424090334328683459208452792761906885990250621213961317215956959638979535703129832226981568289813544953932154757223646903760618203459694268169742243398797534842940005497546464162002388425529880547329887145753585285314430513150219635242471553267679132200467837819176757014959261310124719449289892263166726574239950921489665121625680680703154867980973285211726931137699623365076417749961701564702901528278002825129351613469801963482237944389555036057844027857118776051828662548239722262704607164277199952047235711989914682577008878063283507333521004891518442960466120689160124752628185909468287840979489655247894333207061281788917129925179892043918952525040787734742709934964175584584916374369115069130364486794419274608333438197270535501968352316672353561416039769273481741725156573851663737266050062494251054899196150759416391906431687106722071946250885086394916316402907529406735194368435388087396409557629866518297129294296410020215418200762954804208339812950219121340465855755801734311026022888605049243796576418157430049587574937402503606013661905081140491053713193351413448606632717831494368073331004341631649776854868427236895399490081790440491189550474855196676219059105371189187347678038651352287902593146244110234280863917770403458714307859523876631368004539793935921948710098915279056688680840645811339014995278156046295612338856295064733952134143608290799869580905829786929086640213311126214454636459115594954848067072514371229836496210510746989622491275381640355274449600819366943856567784463076995480787224464667498641333749075558871329844448860872772050210162607520353235209983220286358177410401172234828768835834966926714366960438913167329966694135600684124734563953531140416678711972813641839325688687684101593582056636158200256164868841142658245809701039841763159782469451027171626171840625967230751772043108099442330697198187854085145368293194222077197525430635739702461692425686288518711634890267882610562404004785864553503612458994081577354436222476267942196188067090333408497392332514583945247277221010484525654285596973443417806282887675279408132150767974879617174085336832002606536078748876130656306019137829973367576583409417153601705758364626242377024535803150537608096408017634372471788701650925610453255655499012519061110914079485717762088759959369342504415751658398257253026325296359293566927121703220225006948014991631402600473541170347651071099383617906882921542346448147586368640727444633568772295006272941281283470560836595142716037701262901228810299092163940874901890003258021478647032637437324383749746424387880374857646817426799288790544285637212742836265160436184969262928271185502656289834831849530973471072215206349249950010399219596317048006324120487944540602075327777742479958607284825708503465397271974035221377283564849940394963633303444257851929578233014310185711110508229965061942118429184027004237536580443205256919589043639898884019342081059598960484982270443529138650771556481283784299501817457438865093437286377791637126322584917888055555859719432462127958613394214763258808648206645550390579860366366552824990515693027471704357364588078027929748394149514939901504097144451408351391993213945907918526889208355062858302302525439742591442499254477005793979439485552587489613895656218233485523259715229993582993162094499890706738776868680498561293628305617156255917733888048904764918021851266315437984404867048223615931613004135373279529860519038176427957259370902214655301107100548245085666652468006946945197124183044801592534410276074698248339402441632626374744515334668086113074203093011867924444967690598568376356568294485923863571825475004864960319269466841884931839928898647804760493421541594890658492236301274273653319662286399590317981385662272499939013438416855537726512480928812618807932932340117443334675400354294323856288293915266076730335737179054917776752430727455209621918346889489137858522798586903884896993318326991683772177725335839521735040194322896589128446707565444512975690325229403463411339021256343937375060069204778934164133157919641582161264207191452968816918287152276159855192764208158328106670694524021102948863056144997740139662428060688957352772865842577703611974328331395255345172510968036774509416205765016536421487149462652266094065777558086760570655169426752194955946288678388976870302313120383435804074044799976554561801766027255129124474445300728231382282072352371647859300307051472849200730723086014298981319560462304281837177953287692518580591032950624610122904654955566601178440738034590455640218170891433610236572836243602421114580196287296453519600948451096636917276772512150942471220822340967775786723058532142861111237613294916176917985805763250523696357082838115413733436996468607009121499625432300476508093536182389787710364388270347662003319092654445542242924537537496920140113474391121418641322026775372442855004885920002461494389227720331707333268135395157833976855798482585392386682991487876099305356063452455616090973680142058201335743424379539073273412270537635481224394067466471519012727435946025675328776140458067977493540424391164390530191358590038861684862835395323968040256952991247540037776874672082512712980424097689546199519078974734587624589832015077857091041282906865252347564599511046282609382459001323255436366153693988569081081706565635337941876303191543740791190283034301254197490639601617087516376102747403002083500043241076156261041427833585412819495665272011619495939334495477334327208226169665091470104438267738022124452470662998941551453154897994418390167343551118771135003044232040203589281479737981576547440453722799753658305254693472231999941855166028698958652784185822142134592363420394516091190400963206445534276630641226204891440977365152828102564529146493753223011092335683706272820657408997440620250678198981474562970843688549601868056954761243548956462996365772914328168467007439777904523024983006883332887138009001513940412183131958548477072617068807795346785431714150353600449624989161141424081377072018982599804590357858802294720019655238213502326354033495719387586109739847738379555329048733229024955137048838404165774072033299073973696737387388776964835421081490358063838873399060618864219721177777957724642250955600392197727468095535105475481641916968200954715070977868724167362087695844893107380651055858600181162779822521787718688834432186649469464034668394245271082451285071305052457067867142096864999652991890041860378353680717668053232348976242719995888537326229485480109429985497966500754232324068611230877296185064469694118699891046275202887650410061441578012192541499752047767206149120265552055329666386899999731223627139459649610851874669848669908100088862957015798669710552930806402285140521307668422493596017728484463014716080963284952194834611266800178243120146015254263130595571797841890650989932452705791785561119600563271645090045664458409234000422734732777746912309980043164619516537018047965385303176889056087607624476056650210892640122334579490930155831291575788448164288882438279685207552267345660851665359376537747156792536421225596351813167627003118745756245545823004388348822107342178499270157254675316490523371537614562518598114880900282170306366121196930888528454602153505824320609488080572287687492704867679929309840053412045984724746092909101739679649290182069446245192726492891370473098500328582850455750705154241844416915214105374151680959605196288035310100573720964480019134282330969391015626450215165253152924783679098319986774802524135920171950983223473361401254578036197422736403839898326375015434704848668999929361450315860200175595739434555962637489144485084421113716104694245224585478854355540463184052510305585622770502278732382280570963450381982929428185781730642113430827049467580290241264008557768373025726761913005750036081180873307460182598707671496316438923901866127996206331519223728636255049516010002874210592846810021976775603149789185633222182335478174556767983678018682046885844955427395417894568041241984843097453856599734196008448394202221273390324984602493857970597195779021782011659884341023164574310972408471842169652721583144828950957065483099419839591939129975858044260268644376322007071410861464668351413197506570019475156183814602635525070635558732251510207371613897703972307699346137021075548740479889262737378071705200092735858236815770512947369709211061190249533571296645636567803272988352681920300336871427873594892227955363820398636593584081029685055388621700280403430314719440690835880684708214423070803655506825734545139843128693361171942947584532384382234822846851350603250882222510105816241229800227586966530086228333075128452373906560103818107864569306832596607137768277078403420932476509081902636253702093728842684205700719510066638641850679429193285949060458740806266849644196028110462903380195380564047930402654271485358335910048874822738404831505253375136152286475919645535415522536884103616903004628691508326492753879458382705248040432550165688159896694159877974078750173493852477721474431493892727008699140284064378715947361514495108528993359054330578865986618639296846613313826927620786978503162134900421378334419763019646260694854439359795384154734699827738282571037364245147765768025670894642479356491012164556854382689738870245242453454926421128240190690062947769603031131408956602571551008500675144048355968818060089781776090456915448717870231280711540252544658518019309222484293333008736749771567514321880686159482405225131302203521925264362308995685748335138391727044580012970727055120938785541326804483223319589898447178084976035942593260243468988495779216957641559319488225108114584367625883603919587850861829341341983001005348047850530164862364280984444403257115591105331208052866971669521010355181521613693927852172803098690528282933988963318090127816923356890553970944029371753002723137366344606237392622258163246387550683015535119672552069508086841879086218954500539487727481065996426086097763222598765282443555770440909590289720601702846184666965888148977153934553650823857421287914512033826644560100446781546989011494481258945490933265794887753358765777210866184002504852876186854590865107542527782432451508253892866303101211070204148757612899962056269000342362579083817818847934231284014626935054495628742738532791258148448694710249872462291066882417212684518775444692544830735191029127059600285303422872376368456924366764605902391002873096515347923253031150622717814026708385642976352076901964808382212932019640906067579754048511567450927043063692376807562303389749158460588736021305380348825192769080665013094721256114590250431870665799377400401419782637909522126257082653099165466852840780049962125307207761595193094240602970287849051935096247583646126012155329799439247473080992395213505916652342813546765158130300200838866940640867979763686194865665072005355600291729280921553845764677454537025964272586984392927095446852722764076133211630890143860490854291737494202772534606022701609493046111678836094725485699105862384143998275007269993446987254207327436321438708197121924479231438711165182945412464309792808035867560072171627355585198687719314271889106948414042537867790553555558131704984909663986217480134347394519210925165672088352904793646639457493027493022513776348921128959414874728140934760641635384487208137863531785421186060284944887299576904126302707415545917161245591000907625307368837635626724332896279838514741629016581939537156057142804766390897619605403081132718751887939434045307076744516734401563027049570941613549231529412338089234990877757488060823594717675351743365039552888507015187201093143259550032829558647921120995268111823447823833408597748657582778870864777606104514792849520951778051393216299006894489497574836345469837460203285826459382887331712831418639514290501081902748584744631030022385289525251442210235810658029717341912743846416540228958984111723741052257590948608655092960604713994695207688915106411511032717196066509734863843246040992253584774335218299091550688661847688235807718441225013335758204101975252282864323780769059597042240855952546647473348840396810572696755816864989197639879655011596330696399990095472446416373413854555380683695677037714734290335912995541804728407901325314622485075557605765355162519413980802424849170174766676612321358529624954145976896435799153678981505874068191999697421613883340758786198411540619187317786212639668649124759158287901082676616387538003218787583187217249918175518004146507451681777656399989224516148804772401818867008625892136767241217383068903493387194335364037411847035129450825504683516189136229544506919287052424581918859481711185059482037991139586721041746062405042793840682785295092996008192866435728937172090223348868442558027183550251657017755435019469052080832413150311438287470001817601624219411444030609421714876762970703013831399247425481836281267193831657695009033472905568861189771274368219027077794776492891103562956949992321553697298434090524584136203471392667367187634696248331733568379692337318681872575826644303093690050987479023963691664963190831399853406664296286464908064121323309019455157112181352688615692135782910042039644089802808503362756826502755870109027977192281527372279271216612144797433700339447514051205308286788284344840738690528462244072743953176250647652981439329695790536745538960835744827692605597233686808459419635073772358443170731073371042626132729613641769368631545714846026030388935199450563083892211964606445480078987199058096847822928184590094844595113915476244990669157038123424950747951705171873073583979342669682932864367970260573983161719465903832414727640390143299618883300982393054524473872979219015788501648059309410073027556826141487851271287874687495641513987884853855849721336968014102171860815028062246807108260390183863323643305134859810767710932193328508956639308638303238471451474225151217355412695304855954618782368526654671366334663465900542215385306672134854485172481864897295843887534199570273794534490837397619994099198657790856546481755456257838059777876399355159076710228039205347635823837420958467079096163147103439909846687373424077382524499591864442996627486878288703540863265746420938404927586709226494619667573445374146211568613956100630927199636727103161350264388057543309765054886607170916337681780311599962685536790063479086143496836962716834572073941495637680264076471995585632468223015599396212242714536236425937069272427795006074310651420539884682610598122493412642883267802248606677780722945158065353591278161001028816932869295229081777247897985019095053833959145286363085034899042856591268058019628804168487850966523337849520007124143281984749121667523622534658230904257196162549316794863438770065082755323992894088498581204586560358128122762827375943358074714761981076859202312666689449155146133322940635062090094516867236709250566235533419930174538040810770660359569502702249125223972512861816091310190280970764536517035330819507192512732363567489688048322468846555137107652345916915779534781394958954969784729403034298646439260395892604957995264116897795487861878978339324320998935011466769034531920796838697189140869289567474039079583501637012510625348901472571152096638048956995185641630292205610212782953724964364676476073876171222403271580375556380997745426276010951266599603638240214654699415126532190703949025164541470039181670695596893221760011040951970319977413628929637017958767646734067558670164026740951058979699518256271866699541891701932359610976333894496749084460166579226577296302294496690551646932280988263130202858003346442035631833597012388431034498914560384133704531152615049634840717528823650463011800260487733831226074578635722483347651207406945978477715135903726346427183225072887623195953835232252369416964609366329121425013171186300832687852650741257322353552510472412563529978017207141035664035741885241635080803471696777648197782491804191002136071500517956938966958486037619153753342097913078303593027839578963915868062939144954932544460867173910113931493304293023077082905714471234533330051459970016265490368558389913152412095105494795551096109133222652914592029873141076848439501868282493963270906803450864921368206647274978658925657369059914668992417302589233085567424256887954646577558475213997142752060454972674709023175090729227108040625216746174574754477602953225483317545370886091224025663521676421565936802832581882299691378865476062865469110604958074598300771870901614253309023592764616494930624882310852316885996805280793137074423733139947582970121481642017163741198788163698582964697236441686176252653326890949533390907926870561931209661156477024103103488743448048346591114050046242871467835990681602324735396203297407523004050201296969442537307023835556425796910722083190529526673081207965635423510890737876001042526254767607382861621207404579449823663550425333874071086115356544824650494053006462163855748959147561700294680060565685308076247768607957429260745548178322603914415259554121314655392831812507933153135401610867193572090929742401914352016033586397216932384586535892821158521844277474671673647687344009475555822232926156608592717579550485102768029560776292078414716969632882200765316413245431398829354552271309891657448438653648303876073422550008775189925588119046152215632808614325265721333535810108778491024129556910136731341965339035144677795005331612990780764125826567128660811630682935970512593347280064325013771189157596036785770432637188113770254271786112401279532687063667802266176093909015894149074131992574071429015420127636022671773934346371941495473327580494667232949651417012787944517037310296120535952919699596881128641886120447881162761835468002955716012936287052261548621520384216074952091261187696217936322874610345310687299266013117959734918219954193889986240381462733007561546074481688296738083858238242823288972486769631085039529146131672332045818149870816750562953361642761801161600416799553370692744232339737063569291543343285150206079349141069500374639460895220683776238161773711717790628586917539039716277344566179387931661750865080601048873320656015649857574067944213866528880528612891383085474202000986606327489263262608312694154029217310955550177496985201759791543076098294378378861009404857527512673347282127396054569370445881442654326865283504790415242440997673327381326861528749034287350304455974882077866849649902765013129233805675029411869220209590605630936305887831150645364028322146533930879652908824596193766406888119124935427332032060731685335989444265049780040230611404567276870294490664063427696426602314795041993666092452166804885804495884668531334805528749361845931841845597454029878942538455204288822812581944445705775577321372486798571510107582027843202925230496407454301848410287858716882727518890324542667187990330185864512348052913277592995593232081513088860117399762884602406474849742650503313688623679670447118881709815271926152538450192786811431064289922699546541992409125995570350706659223388059862964862720577078121607447133305952818525514087664669373967146968545438333209815548061659300083556578067069263149708757198704295576373940829534209998790880757183090663929998759208321369411100817765395957904225089844227866464481760718422611135718805528913899008913089669096330101812411888700664289324886005030567601166122141109789053799346502796214751475755957381085145402410216498314820063370168120661158235053206947007396795824001813510485980442019131439098494622439156990605644278944463406540793427917866175536719901343514050144453629611674973993001813157177982432435057355195621695798174845688999370622001608652966562602405878302651342748683493447026655665825267791646701790350692323679152972875915244296789956416050694382498694416051413645603525728500730822662415624042936090455760449489093010579839500983308804420794577640834325014040258391189395796850896451061627585630923890267246360432556752133348659436014720432856719941864378904215687446800273176096937335109445764916803742865384288394485911805998665660614125623427684341799574226112590471587143416354357114954229979723168249670330473048970330208570921118203179322471129528568483829854919159527211584680566072945380549598635398846600034476131968181841641275163866084052087181118370627208249076736259329899183287665020187476368055308483657434264801312149624761711300799740317556657375128575339150819404767404412718610610995153699610546954813631461227545180216595934517002378801078797138690920729214114491003608712052783005922625482113350974729945531995318512640455506206041164654023898973876351087032766771281379561252736742398515034750017728271630030584839095343439157891899045039104456223534354413504685434384197326318887553073116232634802936069839371361584142386638266199907621718389595293541230841866161012881763783774258638193541592660056464595939874207149879191573151580241563274322541885931172240118080399632336498217113757995596481121675149211041163841763234441484945615262576628657202719665106413423164516991390315348600636754488967578051042489483793390991359105853642398406178360533582331210178519133020662457303735764960563557785800464988192793155875777587504555298207973479455712111193933988844839716252075853075319798839840557898273401049133042180197738132843656055885678113283237400476058560353303515743181133834453269608435848498203887439308191733020060970956395765425354907115632198910981077375357846252145841658300074321440914352777911708426543277917498949451262186404981283173611430698590965734151180529323534497208506751666797568241817361336627913860177734095500433658741942588852616903215307680649764201827138071133264011982952156365144451238726357121185145251333712594237427391452025268622822457795216348257750464551653035834929329996568049867404415009362868682846407809652166746657537398344895918404505071040883677544824947822931575737350513920564935554046638311742319549981568862119360072208419495986074739575730993462573606125698131316109059059147522369196532581282723179993128814167726297312195473184669102019946679918799220833773792860094709788506599307732592278436240733626090605917407274473612828898782195181713830017879928108507607130667134094536829326025356688887856240902614084174401293662790502431878864391898295891604718239047416002861039637434195405380188217390246921925326451848458614153778129178815098850361890755051865054463855465822170541133422102802154090998719122120078899000229320709862224997208965289415020689783218930507418869019705122819236887668309924322967537915894929361494016349989945870865218530378382793811903980827387567031256045681737059839670966854109439216484586936559528801366413812388802559455768765161176550505856047834755255081712740648462083006417763735275650605724691182821285908289413487679616448740432272170008256052938732786309937878889941164707680709065733985140935974818169958357202608554101959242801239013653701060877703091768978841454447943972449834114221602785168914904675079250116571040834052880922789313000521825847536418486178692349054833956289392519747017378715500871510676146263705247273778549399139369051654391414945191446390284433679626586555593544243198629907082468730189169956587538293056785101643497667460586277670403177137112540679912214666842153579986689043988973838207854212387278672497205826228090569962214042597921928811857041933700517089132265321249641876299093664656302688999765485072281010598394652929416386138112230421388098862918943261231629066398578606126419901196550206112743370937078950860491543847298657135804625822516685966327033970137418840800911495513366710529819719697560216500674059033853733862738954787116640277058158452110250820599925737643879911277590585868438790291945603912513657080706813320373968327295075599624306001228477822491345251712711950636344011156761193346192933155420994252876398735209245251493173267362284305780000974832222191177298959598870539115841264332332523367916984567729994547326695111137655450801965227579646191489774740037966431961713568065887362133595594436156883964078242758599512639275362548434651172135002136196970055439865078725809130287740278124860179953750300478550661358340176916531922756040399396312808390491453614338418718384873440384444718801962920342178469773789024278076417578929630351077767713735958197809798082942849626413079537794715323080606080605954676756713624929315868329987416817310648058828435669571489603155367527757586483627575913306224529335011379080966846886587630557385408644363173716246104949948653302848806256972094000985315961162137864732554295056538268153477452296665415582007444394837674583646028275320418842760483763911160880383257994657816703557175995576568997950078879638362957763236739295328541011219974432227884350502232424566834663017100558153713762269792231697521234188327371206917889812226844473352729338607630728613427994619681464119274679238615847122197255168473329105192523867923413619520502219874297406563599365194029957108622180981624840639993012075961148180595021546967557788885753722898712124859322541871238824857148137246334142630026890724970076914389979319100482176039183065634515104483533813552863948249936810896027508969625889959149962951914165629560373229737913465475220615863989350714130004035328629490989516834008404560003817919927863831348097117333258379361696807182546564536041962625689635966073857485863687201705123313464057029685674324171339278802100722628687219659977818064297213694786682190143959397977560042674002793102381317483486321488837986760076734023843795551155405198588083938991401359283060018524622308701792890534457399405347188849695275212469040623677463529709276813066687496911842455835785900207119449516357321624049306596699845878058301133218787165343062509478882043548416914109553571480576181282899786974722086812681421484893960143598151116448410380339409376363551576223812368923803214911690765359346583846669166557426300184830980699805779948818761749078843427230744004212217828781724285412559892985019163894925258108092936040996897110163579042936463008919603853639612348130888048437510449875212143131879596140344829313946375575322425730488439718110481614685069051336481577756100220250979858829926262333214044750523798263137678629833328338773042110510332197933373291600829617521205025296212579590781285342459019381548141114063065204647439713287209878834459798269688890894624397453333523353755599195171176996910449665480482074523928468472130210239946597087147999035855984043026958854909820216587940359581552771762331367472348698036212165019520199885831119587099931123273274570131374002274562471691626360235392055686853461615204369685980183167488292202385875885062614550329257451796436494211453495975306598047922089257281217836488562488629151516216670115280010639225411094502887189067192816933265317594437619883343504038871387158876809269807497956058688543158994936878280001619475319910432624760462383611674771583635514553005301173678479520785298764611305156537450549425749097368141377275757951192575896033425077629661650104546935516594124992344693391960235400425606477626687238141977440483464385217864807142252691576969780496627636902993311123983509211686907084285750570876047677423575389882605159974573259178111670445487196824660889629430490169800732620766050421928993538336151357938242014383926231592825715733709465008419894399827853360795993780566671008140487515029154384268646040253970689057671219522537865082920476292528510364362431871940072994302380649065097173259763381284200020883281180570768303044635819424515627644291346823462225619257855232680496377284441958228506283999813724148918286150305176344421909962045879262731083918745757952216730743692267706666974215525082896992603096838738178717724217349109708004513733274990282642258572594545753989050234658423620573771108330443028175117216609521092103781146286777228680917085472183567109579925590100261647919700827790946569964026471457221884241099119989073402315710235181018089313530760567653503530025627354305286857229975597379204463467953320348624499188564251679663513023497081504470755022975817084369639133534457711981009899453452239862617524471106587775670236767568953565655781049155183095135541116458768467643382082696773874313604465997768969292435246982109320324420760411189082989909462798942588274254061851209516821760442300994396660623684278522312056754495738889182129499964282169803570313674631833620755231569129227376491650518268570695031877707979980117490542647031561103116960939577529518554526536103735376590993076359678117771607671042867812346087252348202499016003547290306306563188572654921494266519529188104329070140422328356090890230191603026063604199058844849398269412629550223879776505225304675097054560193600911834068222429526512810333028228715923309618074740223654896679992600587430868208296978443747967495238211389122978663898629705294016015684599809702473968591853206823365547752079124600408221499345257554852355648087799055036262598963570644399993758796667207347204271205994616718998772157099123175670800223984018572157763606115348210773835990440584750876632409544357528522293625993444290846869264015148357821791645411390443174710715344664241088349923560241942008486120696787296934765355711742568222061335832726796279647258943772672986800452325394468216537744005409185787457720487664542902902136679813679734330977924660868770054239869888916299709132165538806552685410373876450687689303957685852288500657887043799474860697316035909699897165458596537235694267193811263516490278726606158000448346834546641533497094257634727367507129781721921073636789431546559232421844566049635741467490022976824568013259111509724719721864595404988930323123375554614789202550276077156160097889001550480679111531992034285173661530622174796121001373019589765217828413897980810806513990324344298770369074845689658540010086217565290277288114713324521791500956452396746410226849459143921258875303717819149953253298050091171391687662983306095109010777850604765440793544728471990265452667182279273601784530315805643310411441619992778516945569541207642496696238032729926414155242725687825102484879487260939707127930074830972379690757727863436201486536494374144590269999135138788763736203415517500113857396796636539734786034594231547117604295891861286003197538197793433964981258452638066020502490310789608169058491283642548024678744108837550999187226915678300749980927214629905483921610144015584120584760993215496251281790452654700526209693006269945055377963308813146726481529857571770004657808239368097634932226721806246401504502960841425403238798507557611316854284695855626122516775306829387298952743473779501123646939707252572460938603925136702079832574096883281504266518111567749297132748366533263581414059991120146409483746506654563919788181776736622113919387984215673752328051635352618643246524302893037731570414240626320140352468323064831410755944409882299706634164269944599956488831461250566657721570105432359728796322522382088342730991927639702539091039087910968647718299014483545864145156265439661851187941580595700013223302582026655050094538723323495559412613051107308579485740930521114843651216978647696947938912125309729949070364790235764367883780411107280300914628758108751946540718693620598206950597607194106948883911764843160678345857253191185049294748311409447325923167947852972012083122200602766749458013538021862388637444786175239951943831185622725275221527906757824235533492281959636458521402078223340257817216727987858325260365067237616229730432130649279205622652686637829278767942816225833059642634677439155515725983993101256059104669916664362373856651676377971639148911761724862468652730588334271506070953149416905484096655179447886749009573441657638020342746247268027461530876434881678830753511905086911984748417560646349266443233918391949734491671947194962730301901459951114033239083589039158130092522110921995543480592732910408855852717041570307780742418557631523986283139203679653153453974559083125695850104639421029892631773904875034767769834417716800071971898685434451539920240604675107156452342694356244501808622139381992382566337119015914488983582578014636132142510620690869573442912819443852045856763716502752566792391834124917938002668715119849579863604288390622789923917812373452192353505658092653234550250740340027708218654569804881525922872126361822777547121440640628722126368110412448876615802846433659090817826379891617035930718162119235048166895603072766678460970646883421816166704501319087777746506698721190122370284194699745472094364239631022640817460383193070131621105075701553604573917858045275591491764471786263958688852038231320770678613351721680597884741711144456287384899086497222157165534714084736358475066612943875595127883547106754809928322201018048061838502671353133886960204488729879412444478879649998543699783540571681260916816423993070123642832315167783517228967457693132923076241108376915435428179856105199862369331833492831600100672915155238914100028716598191701705627314483807698948986042964229769680506671695582076247438331997735342390259468861123423797600494242303489685411344040048001520786061858339248380135570848176460581738451221055702501220574515566559730887474110234520708827041179269448508476737423435119282083731211786139498686185477549685821191234736573889033550988275019813429742377549320385063136241950221051356720453749420951367782330818393225656645251494421716291275392372009273841658251768289418947987953682340742383937075784317935031610636230830911355312076343835132081678227597532308107701429037556483283634571672994467314011102353474022611340881708629890751084409292967313458829222583590786801209738660020982207879781113699463351030081474192861797531140000306003155487542072098333492172312502892198525045616003782421324286232466453766816936908283485085906848503636139444155122381739905930730511362664631956631705147045204195323836986600974113878096778596162511335141604489019125648718211416514342629794853915089571646779021799938221363979175521879456117775010317651837691054027196319308965947977837591355322333272226963827414828792081830030448225759929699599263071403867198766187845851507338541856371380771396904038722061056082322151430019770365127928967672655153474338268387183208632798896433843716190346287672057269103693121323992931711036033866638070301305372633663793138577702532871400821288758897858350172951383252150701040976956732225830798678713472491491996886653142007675950381906206089253883057201621512980391148714822131739772893089587611275795424700526789980817296576308171824608066182182994213257875446166634278159373578518617000082267715814234572632815466334915430403839890222151102755786420187101747938102459719732519555817205385904773513089968221602464045888790793624648949045201559322986078792249188017585979622824204171245722883172033001954532379191165880415594950523800239267334615334699968728495254434867390813726078627037400421904022394899428991706497881365969303876597606731151909015945726405231174160383003127761521493703094236259825416653410743180208141269322406567341021908547417665618193998914752320543601068195500295096382491018555353939031693608998401342844963746909449556960778471988932871566930515908848408300368743921249831438771835335425045992347754521307863855298639286615203086540273831849077293977076391883278027993163640174457438497587147494469242159274562850905268877430160989900333746602254115162950764568767201035300099036479138944293957890559193423070757525982517620249808527358063718049940557017685243055769093146990447183332782525064097882835681480284367731301658125506063239889828387221845272530047022040554493288621825800866932979295469532730921885526353060960618840714563535350943583354620542809814296240165151322342896378972269583776646002796662037708718619048124828901841016365946756993877896472466068480202508453823373511006356397803532573904429010887137312200069753735262813012989315564922620837110343750940970547247014012574499861687160407315423311943970051435424487197430596418174654808366976126871806267355461989201160537096024957536371297075111229351808822783731404245999306285444980973892356761923617184441671866228122641000425406309265008006680769752983531660055259987666294207364839430026590505876769348031890612955021083975262004995604409194927848922114301632596735521054854334389645145926800929692626134962573082102550500591743586184199995779582251048979670843934148167260348437875502592928034184938667571911908570646394985903363990678547100217391556290039313582368916194786886725649240160117105884904640598966800240181936464286686306664532600611409207546107842627861273689226718130063286873062792203544378736951078065656890020059628656271687644889465319291790944426004445862385093326770089617345526220511350857015207107705757425550969104383930415812056275900152140626496569862308222660716310846147818968896998537494362076868888235572130241201504234700414020206044730934987120761781330167794243398313325002236999108707925066312510809780198338362039572056112718727360988069921084839749942323245155732824574181239239730001855826505222999112487429953598159107058171499712884013094479361073774807332236086095633130024590537131919772741996859408438676967668017447427426263552500165695862322189269255885224372925269933881420954705824325840962452550780199974406415463947776386507746106470764668648419988118189289445660855225820895765082811772482786521346340461339824918260004128543521906193798657940746233858295350909079228592888701398498950511378931828743865381251874749850447107734242145517236510044541257420985574853341793029925167223548804299162986318047014611909672989274009147838258986936264826634322798702494702943903975730772918906785028188858735414046395659697922032717889315767821950048838622229645414008286390208693976702003225961929764559859722382309336263874687547765639325811660785008310948862134286583873464795933287845306764992744610649960893649892837344206767958042224417647060487408080383311925729829240301137419533559372108918072766673607829057234248321325170200485138138243255346148469127725564291376788352654512709944371802316780506813014996195779695923999023741464518082093566448471751437065114653580004720570083254599649500480206717071701543542833240045164797957532748965234877853770267406224968520577107302429070798491163202580195376341944123228764324146269320101819519730811893029919604171625930733074663255518168841115128469345526364612678519375244533050179399842803343505286914809700316011581762036771199764095129375831307980716547207795683488190604344718157886261795004282600041200512502425115537428866317214850349612615532449112192361844717361125839184887854203635296652530047055636288613105496649418732286619914275076236009653830119485130715934659134545063349402409978445823660159722653204008482417227236265848734316340454338545934496524591433526271857459001369643540159313840526637184698215851067611512186482702116100543955089234689842242437585684558674718230534507575340574997695953300307457205076730245966079665414051391040233316081545358605678556823095039721152455157019988310589435287829218507499981746176685203409115487549430186980156053810710398700119368829192140545347299746583865221515665350108041933204636890994205863055802518279199444098678016661212716107445707016959808104209428620950212328519354866299812491306554254617726026195036894009734054050043992275269003156593639554768134081301330613313846259220175488101119326744652599415231626290770879694559407596416520521341764818749592098684172814447410265201306990494215178722506040765049503442190284021791727466355064435838393416136758618072314262945846057223126230594278776776716547729643955864226063527475825450948269594791440867683988240281497496663213392848123682212355785699243611935715953963427619504314706550126651469152194271292714210179427065054946041792239000259550743836516768268529183541382356234953554434572225869470289306951789292505024737059847643272122529957462080153127160090539118819312682882865247479517037071940654120375552434650577465263229186142735183496029097212099419537311266253579577563769337926437034201396273465194382086977056633856454823226565670116264075019375116898733362551009930056875776055366498550169239510952426083822792530753010733579326483601394392909850477953805069706769899085639214558215912138681786034930967319211741898618955116894039358860881529039596864661963278387904033136126486483868884114547310587433202897932812495324307806134450858376579389323393096570821653711677489324311820961284515442789336267768643041268745800927618969527982909937803922078511043544017202196651928840798611206870274630601195192977275490209393853268971842794241817802396472176088131253556717148254218247668043189458399438317228435515805335943149439685634190504541091236108067777726871640539339320676983676384304703376071614342577099142735530473497776727749427547594109801134577659471226291146043621391719828157924734912480308258751257623714177724871474601752470621456693239145328689293055878940413351801388020374813400802929115681846099746052936097187151299269425156691203499096930369460557263029167573927159403962115886475690013331764579007305231828396479843648814357935316148800914100462070640882365961843686883253547242257386377754765138058918986852719203435249293759443988676529737704165542548028838825700189892806879274596056679802085154095720520363181374648066735347427287019388588652081276488617648551525085857761528324995295314700806977401810342368277832411717360217921092085970234080165414672752655903647936912778994130974519111864249077391490968439964159551673372573678427357833920459930128184016038365514260242450886769321893507489707022452894339392501016506345877877617000665941920595411210364045094890410481961561961944453346061580389152892300173183202916540786670591969814495626231795881506031019204649330838566967147883928225916245791017345724360149396421290321007813231587370588661150054998522026654769693317268392070440101632307049504227217081648072302114564486741329782529582322081020499324675905656638050533280770483136497763819351157923593203408694154333515611615664694623618216997917814800211071683277791994569561471069862330142905815316388132473715900057638646142333364127976172181679492969028020622435265618359567123201120785546223928300104233184042467390590328417798457648016071468507798861916254223788055161879569933472134641605402457573040347861712911944470575382764761858706487805340543367560993613638249861115028240029960600127576682317234094659647326884529762954290737848595995305580833588577141121986072760756050082316556875265107032185953440096551215452559295824670158999555405750499326699692411043684530776177361452131540281877540800311431463806612535835044031138203876213889441959300561807015751931697168489155302168903993602759034840943786620492367424169954282994718982961682451156405941183966413881033297009739360956299280885449735189071748716571109375529924001296037025328816536889515950439259498555823402238582108870728798366988609231588520528856431944560100391060657680351859685909392594117403279318895396449397376156400875937334851227992045968383582570063421601776048977949639786129548666947075344258957856927994948049808598568440403533299384844496856607888345740268461174629737817538349754256280840999450218519458105126508655080107261839516968218464135085051463778181845731494237543502673694652560389408259693627064325398269581642437837212673362281197636264747561124470582129009926274027443750680805076055497006872153648659601782833318207539780121384682627285892953479972716728560269912567667181848742541393559193176513441205331847130953653078116703686227263759012819458752334081210607976368288945442232351985247504551755209379322816934096920192757309510577462985182678773643038515312332282388862686594438898776471501545177803354273482940384391960313437055804499068075979806662712040357951125202889428760340901700449677354079597058871860977943686728186227915392190813715069577005579963124109193485421542616747547298084481226032212405801911940310417660138990285921526928539757007676336804033040980659420136145535873293556745581809688364081141365034703462394768607209964853679870571232335309736159658047918614164824374112117358901153714119248633062377501751227423091244405611348439998941147412219676442793665449092857134543381299232940904342634400958926098192011224413863528435053298141911535670412969685420726095461161481331483663567238466983145798054046329268968008701974480992521954712950180114093069507237807064760432846798784018779954618489786012760986519034274126824479540473295962554125505735506349239249191033931525553963538077875229768800417168224182283788428325765796345182555426549708939909066552026405171829773027465410370211431225319028189295102780906463206372150735479837782433866021272426964584288406238672102953940835994330140423890361742161292207513472063739064651138017374299904364419580814468122004326355028811202505753927436063548340504242317070021355300822354545672334728091211652612596587347948818768680032609852934653910393535162601256221347617959709596079945562814299195530441422056892170382294786619305168877231396062567279914652043894948667109925708732658991543519981810307382358798321175897776263639758713345117696352570134933753442779783163800692201835135673085327150943711413805613142579217755553250786474439938037430060893647254923550892138734169397401094426541923541630475233597903229583041536828176464227487540854146941974495009878940913912386743409023862142359935615251545613956177308571629933487846604990462070538904392179026327088927022955742009192736574299760392850325133887413748356088137162194692575929624542616064968988851343554985711916524349377690102835019381517445099746309429560574716357500258799942274796773226816609587014485421046832353191265551653715803352970231664175486815399052994088048102784589684622120194921403062156973571316466550256627466855927943678444376544579185117233008072777650440623814259938886080033751939099395589293061131604724827035354426902050414633506336344376106376936820983003679957689727229820919627183149216389855800771216936698118855739319755090853232034209702067105662833238423465269041625033629076971280877010423180898255367095787570573321397213998925767966438999205324636942766627356327927157689136837622751398089109846328649305898898045895301539596349892311407230038807811838808978940228629696262075098747311613285962680225833557622445880252766056946151641397652376538641737578359085079885698735291564853658639092587872880506478287438707205410617984522472109382932093335598539775216802484660732913642001363120834133077610072665810308597753690391902222314729581599117578421095451682241087491650893219291915619300936526434558135964228096797469429546072836943266933540518797534837982087337667059144610583915046087812491049930329030951315287422362076109608958357698482901220969900709886534857105115956737470544678051213913716375713478921230831948837167086300393519943020992893657107882241967104763688135071427271421145278424229876732818365782238291227743829798359960744489188456168439880218481974328369542295746502996537364583388332427138393610095087167828593437998166408410752397822573101661190568467580527210742893053486201187908585438948743514730285326155205023102111123832003560560910068407421620024316068643209594512616233571629270003051844059517605126955249190413675641945567627390805827188811364052683129776547936576192702417021897235533998959664643324289690856613980518135939755795745179394984302540451198487590120873061707832030345328741997911819053218278851855758989338301141008982176680972499723018836479698912590742157998458835727719083388828471896140183152277836996063284640281064966572044985338041210461781752299018898434330818611446626041193296561259112510176338183608357669420409806631101349868396310848550480648079216744567012591180735701571330381859178040060196959091934754973916271957191599126866686892244715351564642232019361837948354585571034579119419338980919240948598454684246877510926897385665107491806260020786438600233119898344430468017002828388952114025260864451005147110422748315552815755556446227563536142346994621218776327467666608096323662828330663362454044846976988137540785373324193171461509518360008865575090837513932695087850730069193567029498066535066032416649567082100135707745889557719118344081536287744125035039470631743609461346434943698714099637259233201797620307401360733827475222875809328720705677442181882374184592461533072457475146143626296955766961109662423568163482806322734607610984455280658860327374351710363503064309358085551496691575181395791532620521022707347176423361379532801344757692656413235938405323493310441177342724472200553715225110209862846380434572600215351931435940734510864671732273596262478522052112602209828694137374388783884479579211666065269609799226783679935560339323982585775135877108186869716679032417916247167266459566652757132983814365060908178084023077758718368456557084733402888305225899253684631200006549588489319035110596939875640410962381414371836445311664655478721727328703555083059211120120544609692832627648531450039381047281568541396649833797715252723005590435467328095920463411042397497152087778140468937384341375549666501014475884775298705964630648629505659965452103544726962146041909124089026762802651174872783693897578777835092354660467843809997609830946768115438510937294410721325154747055257194155504147888784316737525382476235914175697439267901394180695881153889235519637490909758946753694829980907069582769450680205948654407810234970126307665714605675154654173688919946013786529518835757830075763035407754717779250614376051804846451617044621917181010846690808878558019616160736859638490991715580105027596543941683580046733104618767833878259560760324423386175285672924805174894386897437203676098060278264482946828271295273750425903809149236110382396390315940358242366747558403592333525483456733151908238000662370746618999906906738903903007387450505252413371150985633539108599216274246172332840474392029082394347363191691490086041056500108279172125981103469953330554667844271050237307760100434654137825722192556525114822912750754032321204467909731297321201774124984393284340313246921220882103025618014463066161465747794707993838807834098110851571223393846779069998731429743650195768727195064657892392351475479194035498660139782379694791894103410909335373148997127999441521728030754601291782828510343602789213036352592481910993984696605068499791417422733935768970976444422586984619137152103526033424801259233595791964914147648391518188401478842023581027387500398927898927907935631995630212757990201751650430531458311920461459895794953562708247679765190121732666909506041619211401017541875892423193919011685084124992049033822511539879592721261575789516947076532692928498743916390011598544365989987822441009175269361688573883494389347926765503693340827719653766907984421842213955913480211122073003881423614623638728019108180081162912842027595549691157150926218638422577274925758043886941316743474245027139401188803860208872803931225239570898379421522678535720156457883669514140277159539854137381445863490207204917939338682952600488604363844855530229381316782064217641757953372924012950910284573512458332336272697985353799920541976827578275097875702434227046862987900798110251238628796159181982688262759032999748320551591619734906354792520172960129746187855760385061464623304909323646834699689185444018233516394366764741821156193102740680047193736024118678449952984776398459294381647105884567974445087069122569422823697116563942263853732618196499914107463070499722175873297435961839092349429858794077336758662135368942499865150239214176341555449592420872733717851147973958920977153676140753936795888570796536650243085754209938865189509024275305564531198704164404273414235163003973496739743151566314125619981613256695186220038215282364209739744550227895842041911941306339064487900073307555361999665223818503287962793527558421426610241519414347938543093472085310841285125126584178808483103817126099278780902495623930555082668551849319788040033048918271611048334750228973960911422146559530987822367955781642460318623719287107683205830301942577876860521885607252148132868902127621951613625105650680232353307974693428093002657062956592581715656130107417690515718017393692187801766201721370623088089792758963395032131225431818904482283106209721209686798193826870120162133841927102608874333241445878974154346903760631711676879875725345850213810675376999428005167941480548501159175221097439787181000308246070353356832635740403245245759446767740096399487300656134878264875745865576361926042295066567419769556367359074098273197442916268220373915642254576070819873721088861333285551118821508213441248361758454760026484094215182746154080834742123478148872653815940199101390161879998865520337898483832426792122733572717507390863875276861949607276021635581914890112277060054240763198970587421197660787917294384680995605601872841406470101436827346828985322637438863523298489884363333421742880101872247743322968698921753238915372882410584775294046966961707911735107081105013944748018169984228569982613107802971211766911098111305256133641412795335972894709606183681271584620076777398426471410567966034640689280675015155002380764159970446471956804563605846470004503201457421123327018986318066306473351718652419660098145545277195873663905276700271761375973129393668362990723786540600114251895792831304925769487324890508872141772798054877293596313614363535958695585837744864370868028393787163001978403099855308617924799165862824017706506066736111673082155018562044479402062389018908313252190540492560425867802690340083521915833248934664734070408677093583844557917686823080451033631563998311530912958983139423883181747939365623538076227027146559091432464406770440865632013296847504946193351799514931590769831626217840462558494255756412993427572406352530667324383430911517269123383466974934026869062790501816814287101419825823487724870706185798330004902303342934308943632397607726970858507271613863522888216345622477222082560466071489410874076691527985495499190156297709432889465481288510919344095605481487154462068983243873345420947609655887947983486639379055110678435981214812993605619887327901795023856288200561028265607851197620053590893512359746649055951338336688966361678166696986111458337865478576230608680159111461259764280675123831320435951734397686988682997630935100995968649693697679368338412302788900043155893711285621072033336218550491939110062879728225415961762546572253131761100586832607318459084143880988185853389419514610466068159414908831327097401836593675581557892748581540728212464524200971942301064700315684408833294740058275693206328802134361017905996712488864883776229166935848235331435922567859539421687791119508751295146586908985718156907998638231584456646065953013666469935669125257501193601320575302415445460382192622825537816123757868469101438355249859704346029842193429116527097242716864461110802665405338840596874158864971852950680414791285904431159432875586989283704274163136281512838102686102597983496710995857935640060822107281515045992414489494361673018907492184899158118842531897912993167241638544716349747733851528475697624046086098793633117843802323334616662127507503600762396713867523148863855353754344099039537106889015172587205470696377829828425030737384288635100452045553270610270122359092111518623376142765402092605296301069676306370199038142419161740366992977283694099075169464646375203576719233702765516579867021276088027452927146685678465065868257968962784034361107151113623671826185993613850468033833455580023655283527628255256772753920801246024444923497016774126233694546687621529871056029006811321729695148723208405060152861134076000902881810143434752776527252160744470074445366764387689158208402356954424505459083898573293200996068887189128991792062137921059654030086630775714129167216759498980681038063238123443544505383524686380740601019723836190960435718827141326404569214258327589663177112737205802948770080746958432845544043199116340529593949292571732002943082110581166286862396904754009743207294556231261591795177066806163038067743359641646008407771623877496964958309050070828756327378559588888068348811902114560213820114225055179377580652537176727744962954092812143852955316034959765728195601681048239370517629618174115966868099844977319404828947637669290488064002684271014921833972029006735958217117838172554855184301673712756448329731585167104078708887850696252196295970507658382854994838433884585512913254889176820825835918684757687611199539520744115505141951338187052369634762258017643225687588908792110647371224294483115045946563332309763936479386324181234923520717973057760338107295860553042616968302394705012367876122701773144336758417993075783214488969972671502163009471165435746700748034178501718204807967305425486448583804723542300140011563303523593657657651003436406738243197193486727152197214477320312498614742554815001488292991917810882058243303908686878094995983220813285598640966118538340789048130348493955703259053139553042488081762834009962429970917350728071204897931628321489097426978380679778025687580247763957717305121431279279456803980110286643485294419017772752398366200265783351732172744144084173911083582448648135147242650877528549828252481194647300571509659584139830705536533513945976738701663647718744372732515972748642517447325636955667189086809888573796555170280228007505218722179994489134688057248921095910790958417830656029274502976322367301953984802256876774397865480909159809031369952452083652435803484151715700899411529682281150857483795628723987615186799311498039566437246404718250309364366558860912901361795187099881352880622612400038876135493688856004324634920745143233475520857270869346266963515538233772711389125694685304126971943017038974839060303844001351648359134374637748861122928729334549773094122272634208507123955945628458730069928163667593185720379756197941555373932099026092098515378030859301043465540133602928162173460084115678344990447567653736823325231735603414499067956480588551165081118454794412360201782557244229362661793251135303588922610944923844873001129215515075919250049430790845266443032610278160253280410742543937248268931649336400504356761430222687721824303329615399530225873550557723396728014606949615107858661139186952039487124574268331027253796702513921866451526835700065219290562445543626512203169552014659566191326815721856863337700127142353023808369585049336468472857613681493956997174519193668337659160163640939070208791641157982926125232513107066256262564538325670988278202039559941001788614449839230061727969915347289771147600032679471392418072019767150610058147760917240170601726551268946689173455078134789415050020207650388044007349581184023785810328992549934880293763260663538626403511692649147029324347925589341823482247267096200963646036543849062841566926618490602719154059406233258123676869845809103914076253856908064677389127395782735068989625930686289111489413300886940141247327494872965549112867254165944660336560778793054824951581376336805807049655139196248053600567762864713123853540112627738128752254789093635070410238870079400416232051016255343769116044096675854318065295064513659909695206133341322759407755905403182218316256073777032856061261336181491013733773133141214633186289284005350871025434979850395169690783063717706401016841843746103325795662945565118054769865033324858868116430960431778182132945206600121277916715391637122669270375302113613185976484933502303021872129465956050876628118729912933360069280216231883339314166619732516673102556306059647017805469447954361579621428143468290071363907767051449123220413437606528457947765356044451732260338959120142951085766529555662249647631589162571115902378594982001271135275027992904305378777948851268991427646171089602771908197977753587783686683597310154326966276479757995706690341955643450305769986942319964900988769418215494068087904279837235779891808002032103500119827988666791102171931366429674808687024590654275601590545869529089238143651130613921899597513476495339509083208328413665403418131147719700816672521190927532030643014505616095058886276978927260231784405488155882631012667503837194503924873220548552576991571953457426841621206525076687172823025698476244107458657608037706749466188026450357489698379992111046365118395576347302661237686173479724881494358780006767768994100953242693361803285060216931938940712401404729709467766266616196225831341730251949360247608791227424913054803163005825062582011718583023088236832488168484301257186412094844409081556369324459396621456638252119225688950751686277047350398388496664960789824843530132941504841661266431191039206875472146975557400642471118250201476575046483843790188064982410292522603925430793992552811746232563730072654509724551452688843055360439721003921161555228003922727475876345461258110487748970531512018194492757908592242686498954924834937873598022561263342854965060314028960999439278367711487115179362705013245539340430903873830149445579513510542523506126617905871930691724681741694761639007918250282624285180797976491771674024768582726493333589747080335795173162166032083805575500317348801195882475621349500535591628760596784932341224953234387351206306457599346495274840277630709374576877773951852450055966208558287457643874581749384061913374907801267886352978170882506889352891827642906368223114848281995722080454813805289229283935280618476369572506737576463626552991779798320988166868649047699753833280142173217575447431262967706549859368618143748863093631064558152397786279883297157668011100492521908408063081193551793575996530165536649004907900549078470959862271175381717812052188521877996458159275580653176759418741313510592444183276488180750733704335029365476461801952373815621762998308442996920723092443177889508001055768475206437534416172001567176294313050880165735033681638175844800232406029140047375474338401884732773562451114525205197817249093839703231477993659510939115557697347272061776546972162270857070993250028586275953272414135566658071192248858682032480355006094004930895775364294658180027376934359622242305007476340257921994482805563666826846380074924002090811791528550871639250916953958841854500715754254043068947080366240216982162318928690909076598042623365391024063946643722420714616213090625748436418990194957918729618154658686542341106650005982757549534524875223789926317281169177695393361996746628236539078123021301764190463709038918122537730434315963016419435817898498255211649850165100102342904308573560055033388046292726775770779447237349063654119701847616325334810946827635158311701049398379098718312110900233866422187863784979492234174465331282181187884480410251217339925071182918906551088298397713473841757463428264856049213003928914104626209691599785719607460434362157910820920898903080734254322797119306371937206816208818493336572506324965246731334104483883146294819037750380906601745243580277312263476519256792021602656506779235622429364605929319280955920920166117212025266178190982382645810571895073793703634309265328907871908106810659590515419504074371811895032192140095781329097972493147673854628681298559746210658251283962910079160458695107434048745666442272698506148350109190497309182398946289095534834276753747225645531902165429788748573266044091314792836449368534697960890714966535265993576126884480994126418568675408208875230729500778559282643144242078297967881785006145181852697896857628383647552005459546615840524431444697865523256042902966055447212128957260212447982860501038989843649206972371676461107009383067240078835348485990427095344844504007216043121522265021348904502857380115071868279347732753367536195950890425225954444799546663915063835019453005512019346113293731366177940129489939830864583542863395939924308933442651353332206094582453306237181652353069811958167656614028402293231685124687196037181748351791033402737729466060446764013701496491936170287341557655176322924696670251879198032206789052820073323568122361973680011187467582205554560003881213458884438986877904835678623355020186266666022886185466470467389784969630028951794171728804567790674339385103916798450777548871315658094218309612614266657145704122318560210477054906308715331526461302662243771346957231976019931683488547337604757284662422484279812960472569015506416704883967198930232821992518089937914939762732230579366036554840203580931385168293834716415359082968702215291595137246158254923649747173257679438709864934193807783849535440652073765280794836978597494714097947489122324084866890488499003745991709806104714414970662145874832668523332899954524679541626906183548637775652292958871824977102196176948363912720708749499908095382870089746719766524328704352921190118790179962188216596272826948552618083721079950874875975542978273339266837577610705181118786493083426096408594119942372695425657857203677964112929790289753431763055411367942501157152447070967095341745277567489239475101413134053310443677372989833827601194522750189867580045383494187201516439166632977048438140638055250922716190149515811680064562384322273524946892911961416930380152301952584325074650571632948947392703792540534769255451878669141949474664682098524985121096180457211846218844703996896727355659575963106435867112188264018549123827548017200469786719711272192329663819790895956474546815711262045176664499022675388960454560768074024048272438161222918955939396554779769845725815033001019517795708027885904274992817233030816767935830348933148237404447728055827244644463038302537892034670001663963258053213800071693154772785935779931185040376221040912515335630000024975744867545064415042264686824465903848486845912739423611213076540246427146772363399155393741779332100038255342514257830710070794538809587400446933182004683583039691037778704663706998525931244187794158829215604751863245566511451322881539607382034540320292318810515452994681910712655151267324889517088140862060977267243110591805127757011051056266694748973600633458468287297872587884421467269167790221468562957794197332233384345663137455235737391283489173415829444873397278013872937951174654347906232610055986678314328490525418978071420643452800267946884616722774315970980796464015207497420994048228752470265992646654416359330437626059220237306523891083249514162671398686039796160943366360471322000076624397732254006276532523456820489964323447517419503552276907367421655200277226935429932071283324335143858066230437701121549523828422450479256904891571995886840670815136697805535634720477599233188221845288270871434252807681703379435791205880009519548365781765785717105168878490988870666494531787062161038051492756889150398476740879738597821645913452070709829689025917293700659129470577487152096638843021897184630219397382592641618247978825598835284590856839179449473600334099527976527605352542279466157983405273627110231913513246599338278710258480527277338002788416724971280885617540881896884879149070782138279696355994091313413291436763121496913572549027286501927764411673045999641569479448225283265599449523992476539563939837610688238772056325183785516794315560726066530927790055345586585241853727097031977947683523679861321212167653613990311631916193246845150486413310054921683847381435001660495050888682722550674240274486332610014887067588607090131726739012990339749453770035317237732428298605812573680766936783963863375071623392885055284147115309139586075967614092592916698871469264922246359665918026996090791354825790686381273290632332552717766232670849823927338309870565056956169843535455198774177384197909485464520531391046236677435162166463693429542763082143664490001975849324054299825441861871928906064552770717821388477428566403136266878047978679446519962774711234940835440302972855605598078519250750166545256885905306447659777960079801465623838615996751466164272728296940357577169406589987798893694066721139118042342993302332135176823832677410727593859209169647172028185514824603657465771052392938504601723614229752921360369975343569388096412370890424535340212389632098424311845118312590470451053363364253188026338555946317551832539365565903273989978734810292026001041040470053414446019530582078386810949405297052459149538008638291760549782847085167084083226317973126088166442001567742301830533729904997686479435719358026546478260756717511901941434973450289732392826140650784580224882721526072798810944890978796026159636409676179534809338468784065154548560241799989458549644780741533845330777433881423141515529093425379422562933025325481864599212846102536330353116634131384264537460527789588025116298245354249956641562491703380714473234104439915126645140047741528120672974579537805238697580406978338293443847546690141402283651043520582362418431524529511261362308338583822236169576197657005605984564334115391769612791462180773567527659178743778305056155016086647828909673192592767085541108447696057869267364137156931439796592245284249110902524963802647466771170343660946074661319876255270171839627546699831875936289701628807125934200671696848856888321940435280338485394592929246515791947791685579248577338000112536337713426289412487307426196418292952014830363405934750435363758612603044322731979089707719217152050135480517099608895311609177590376563845699005609889606252411715561445812410203931155122389749299421032794371832770565839415676514888430964432364442540544990711485787071167926844634304033212920583659217123442042840189869583816420760218676856585173345587610703358339667750644614941171347750735605069312201680353177922542886575404698062310531790555337352855890950876487319207713886488225335755854104611135195885556478560911751211360610205243269248348863576101165651091708728818842309789538126463247892760922315353587117854379192674328689045440285757738270238379541556930890526263403598765320667883949566956184828800547392697499418543772855565720140238872242315100640331558510031770221433601136091037241291798607021157580290625947786069592344513534576929985477752109015484360724001479744537311680222611841555629948867747105383720929640336213255502757214061151643971422323792238419790930541889277688901690287586236409763264294521709180622446724563317243851923598985095714630662847115901463985329528960578656100961390461617251343569953929846268837427773649441997435378364843384268029704776090605023470986526682465200179507243650701664064115798499999910103317057946751757493306749202755166271486582702598441227555225978961725003453796392550205685848994018948666363038325332407469682567879780174738495075961947583511092824398766622194839631677584912018469638869937645287309426493411474004449409253483634560540871747488174005659674587381194012191789087060233562681509028056217751208065935842989879454739858740833040246105048236932259466820968382141632672091080917283140493019737360590653449519966692912730250953784378851928006180636317758680620600304933056096238328770535847313041136102386982163735086663576563382305161118064748838806201499686328043136002479608594295688529864270386543708715683080254381858238882143369725680103968269378598511070657972796098352830998170163014490310424966161689367719678929071658161732837487682489032774003006874171976632210320085331980720774953603087901844962070187450445494479865050428822950162483883775416672079373135171851030932741000512052594447748247859055153012300143307642407838729817011965312184281480719218778631134798835885518560302355434453493522059016275571393625974063187000510754084613032039665625398731324835985224953648395231100679298378544304592747233980113951347416773710669337003003944004105462367755373523718916590145985474812732035130418786085635933994768280438053263752780808717777027135590139380453355950543371296784315214174955076215650294668182024621194880388658247302809195480844464875563269565400253062879294610876164670506070203201039891331501434565280854093684873731298272120994855810743928197100148288300937384179963753388366578766006144524255032301149815885671342178034912517255398979564548601071054249330263955508142289370644483843751856686719331033737262125993329914203368342817357660601365124083545092171740339896751813149652892143110214219570222843320508061166711943425900071460077074938043570217705762147692049487137386819218194837042473006818409879859362554897906083548490578168616152010792461797778298130225407397443373282245832398180715477657185922383343861391305723327562617819786013742594724951733105044240708167246944804692497485460654950262467809879351453347226542973224349437233733633926709877241961401861057370470816518166594101771541070699520577319246085205554766488801915624079732340391656337314280060034922611430882236851326859543017360167475312792559707711549929877348930135108761041044049367363786516171815491404951703116858592743351669679327840456054784642011859013913355263594045679584042728881552400009194093481830603492057757230405154366268902934253323993322866166475607293959139614551864904121581723969903596573586913410868382885796110589551194258939966385280329445941770850595039450555920121833674475971139781454758388901754504286916394676748103905820593086815712796612262751369659710102596176839572463038941290839051783467705062213750536994659321779203999906755996668507280321051988698492911045084010433261346898391993432940876624105932802257945051211410781456037800261801278742540659550189061170931216943896728821237558967772941130992975201615142173988781161397532251255575635268677789335187964936585604210955957035274487078530391166319143845410014752288272885411840997622179804179438367631917356137787335696206574100221833386054223971718069237370305481787972957229327910238959903472510758447560607252782921332301658301014497746528191902063652701004860426876763831696139573998581391103291244863834329305078308378152908475664069326091766997353099903327803807870335380629837224798764936509929252399583722133203005969365462850587091368504292037491186788340234812513537998038954827662429669936257643510541173223867795992713509508758196585542351162932936274902500552938115860421201323992628526367508977549544173212036846717490134785210067055950187839992285295185789596440502888329776037337640893769841411579801711147401799637900554672814393526186055804052549248392326725586410653551299858982674150673190247245493564791405932666080579905985805572108974201207349343998351993691325284678792394142413021334665500566795250770047753253554094940444628549052535382044993244376573696666430323614636079928938424758262019760720260084560585194206265746956560636205158621392122742554559512006393660853628136075001521593202718536408987874316891577773398938081413647483645492376256467085480012363539232869637362874959243181332862834332420179568912399185759930945975204658612228518872252737839802711850714204387449659564893725978857159430546007722932068424686910910537431715177537557650940897026583478765599781777170354259715443986078585024961049588489014765738483883566016164842351278375588412755914105475919795849066973042122858528039109796127372853819040726045722962463101447851314043885918647424502874982965478520862704685293291498703438560595846887504869502313293550146148367774689276488810957120844514454257918878859628792434898126909376424881465866727100230692046878214185450598388232517928429627028300631738183424476556227903391738637719863161874529461114543507156571413906199736030545082824801519051651723828014672268138044959070959564652450101776040988793363133125590369569580293676937462021708810252523147706379640478418864141502764275757221082909756869601862953292344745978317036368897819315808481480435468028371286137099653560153068613320802293129845303142132152382084281993727564145937776755076920959180787917976430563605582493381148608540757802012299953385119662794242329063829329093199344279127422474522255735684574606655362813982690232920674869376487659010856902583224063202239347167427364526933329520539711814531341306476589032803439770547741864405830845520126812826702865288350275279402375961400254698996679120935181275232071197234497872563583507693526607342524776837442311278364819916691386977747268154128609088734718318061514389606594924043279633379602725465422701976715892985241520216719872292963176851144217390548629693584278815426832127515697758924126474396786565339625808355499971624303416681380212218820831198929539511038256894855780716777248109814702931864556047418296161902961081985443920684005043348748817939222107248812226433062488196646884904601302155947248196714594424257217762661910028975023981602058393906430996688999350937688665960415280620214257712681159283898016511039694614976512060357645178091271780506547954131985044476816498181070470434519910924669919555471442484969514764261112478375701406707394579910356619751123411834490700142155279688243610767250489752562264707822347098604646636526616152937744195867020046098048158049775915100794103752793158675780087655721207717455750730386881818953839548636446138263002302385168261464524219803038216960981654295528648976365749968118302741077564443630747715536756076338788353152274185182002484778267015454094010562755113027411351540229021086784749224838796324773012396161583407156643807209742884665080263666956021746535941297132677240047229778739059302850719803773507982902787040487416078588268105570855348263363442696920932818763403095071412581439948932720568183682722161732840998163265101503859928973056760393117846836200426926772695744259942575022644782147231035216330374368444645943224715693768376888053028332061043156442213117007510500458533576598788438386159256320171169850412809460857956696848558830144586566259359730485146813151896460015320752378007927344455927159130069684049062071275347268053118214505478477072425732814193851461831974893678762603722393194603248579998609150151295049320730489301959464590977422901167452626443677277728745926303880398503727252501708220573548232913533893457317739301279811015133368051891999691914335142121394363293512403713940255809270279847372991650654719220476925758508956505746532779806878291579699301552270493781695024134245698146767644997984061967244656540499028104167869770649256034236659820084894626940543150597663432839978202011189596457999081971485567254642218490603214326934205825138346578894735648357131756109152550765743989584533709725548878462526329478771971847943404150532694323379244921124179005892222423334678426732529697106890227652991825404936700148665334727553123382640194332284576006298067356711469883493840459402888634193869922928208420530586198383192995415759041918485223036961058127290128158535687450857970896060857465282831227109766990666169021950411224163378308961995834698130275497175568709474998478780795195580304673381830140341330653771228865140155838086003950075640888722720542316663656437163731601479586754202818890169482481884100790979220968017030386058091192907391127850840327763521245611331171703436557431281119309757677708857867468845655081673770388288517199962520891032509023521505090111584441709768165843753487065515555327440716590572927704782279962406983118205764939771975772806632926400094857352757713579702404478637529240007615412490543527904217898742317401307784826454007640585895733369640450488136965159760038502468339093544761762197227822420945045890410409054725062415521871969027991382758557782745915808938541634323641135710112126110398707407931097560137658641666289637787378875950970227752626255214962684143216587417834249351824878341893167413693495142377862550185173884093241245123503447247645584987254258493549227192521518663709415629398389777079907764098217179284533169895686198764280255013487973104824266072844772913233760174237044372072686224253859790988588517057990414022044813043809574263397697212107882624599366403337190122616547272411886916190493460007379094592110144837285809087023953550241750509816377153182635018650260862506943961128427552320149172739410738668651941131692541546765221041525431074250406584797635629668561092377753450861115756748857191763967920514156887535300523888447618633763662704915086912329375839410352692778815141827225950633833107835877192740668396930128849488572643711754653655812187151454942665673370672368332246025981166101550493446213700210439606466553465938806476028295942772363044991651461286199225793328317026406388561620184219614461762641854324717799784373040860551099209424212494701833840472288827797011559334170575144775111599332772661365281176050276394532509328346351799978070329745142178770268698165211254937898120624522183105954997498007565524261939001071417731118977736167681019867190288340441777027124516328049385320140900794919076834004021348817751943227681763793542419432686566767699320184917233053844477661418860581149306788740267770180217356763054074126444373441698847684035110768578012391526980256939258054641776692291072037642543048447975598113280732033913007613161550242320115982775856581731601662286190547750374709242483530429405702925564540441892283714130085576423205408497368926389658899400198959517012014316975783659046346401989787701035985619886608262740472356591378013905657481502605696856872374717512659872224277511823406009900319234060764577274502986127788451427974331538454081780200607680356595045317282918552380422845802446430345073269093653266389759535442281565946775412561949414943392314676387822370974819165456843220691115118678308945017441044575428825164595831307264122886891944056737779437645330145212231129891209989522740609426982930096086261749744397334464107923606621304695801398162994017327920119895260323648607003963566855746840296036117163337211302729011177380502838495573621512740766759912097704458823485048223629574408632738489741420247074220773771619280855816104106394200531872837578490619263702222585274126195327939474671603219945476652028577236268436560670765569158875590568250730467849974011991779766767202502824526699838214934026040165068916971381488734322969118165534792932898357516428246068260311692487456420460456658383647479353588887568063097181160480622710586568145015741445278204270510484255085024590844670966413242558460509940935390804144849220280728734511824976616849923013619526067601065713621481213275354956330993712587206720652687362258650533948042184821362374150853255100169786201222822467586869096486126691062381808465586528965617539971076649925080313936720932701085955042470697702535058788881752676661005779173077142826927693841799974990351303388023592462474379056478381252777010645533278144482727803700270980814844291029332902391489345474490748545998615734183776305419558781416139155860937677142850189662549673327308122890611338748984929233859041669867154269865696104614125919414494468221440619686820666043665997491175462304618380412807290348014361266525483204087694960681667595247869914838788566111549986563072067150733419718339429086150517813665307603943591532124472870121744391368285702612496093355235879310614460035759484695996608480993776856868755538138706284425812684571306764487107458573607334190946826725406774521830760447567913580172819723451043651403819706267741044171782962186218141316155232224473641898448880733975017250711655179434904410703244120661897142596315428086902103083171326989166592327852599161720907526488415069283786408062525139013393481840345985410146001421713985632382157653193976916249193393428826818434523888174235075246447374790489213222273456481189389061069730349822532593611872606046251467608751778805951859235917346703288999073443463387197288961688822710043528723807066849703827751339711740414727190382689577037612778990137321818097996072122092683923061417769348985123200627652888587571145792501061788655196392700657567233903805647362774413636224122238670505083141534585944277902241623265129471149885473357723916550100193278353452836559018450342102695580620166224878674387565012236408201735903131948591564580353472923556187690060857058276414658500957138571659925685924963034075191627455660785142843422013029531838795537314660085504497334436145291668646454711473980425451253291641189765052569582528087070385319740351041709168773365535602612549152742424272542742565260879953631060181634113181209317199659667712005549580733531927037035357543186494378617180106460819663599672575071265319577714402936471056960318498616635143283032292362891473060748396369806776392518203484649123348753793565020844031746743080238605791214813390398533045878668499700281028320195516362044786143762004109118548173354841032119899875276065533137386559977130046323436186571112648053970775000261625209466695035609182344886612429717918259908224462889489858633446369441219609652965224502707873216252904405215368853548052898904455933217964216559873921617311372093278371330518180183857376763455966307521550319180848521935700896411029438418594493018344110171984467909438300138628620964056346582462025819298582664338489886688124289337996787116618334351504810635147463077764997045461123777599368306851774771954497162087073333499103044567312824655002954527047868283480177876370478214407017846951993037442501247192626329110874986534718010946695299465581977614077321136983371455897906692506829996074408489536763671448445100773867605891784650415484776996977321320822639175224609065381261311013443168460405284037441983171810576554976487143730551720975935410026088538917653540793231653669826850963742560013078080889878237888372271655933368036231016198498926182883079078520444177236632700914466182811062716988811554116134014153394695850539149566771216972543142850615887248202553952764543076920864984805878972255034896720050665536360777956990184777713449960656691708014230856338737031239038595584755180881523316132501279620918924997104866403217399756094413816972441064288780980359714112540427801004396427450115270688142067035510086737691774007066807511746562701356177849611464213492740509486360727031890524551463515667192755588252117483287918127902838275290731611906426543177840265380599261052262136617616688942444747398453299351195062416661846772157392423870847346144639401896139968600689608293591317105317875883129740209551045321853805974645255756847125494707874249019991917235144741854610650765285546072569202693780815626247217023213260102972366961339882239044070343519966140328711262527034497585246725642408360980061929685345496141178397829004967479873116066423136428159691381380862274037286136246290234616732962392933334573531188199574849638726465846766038291087492239014394418521786226844650016092873433275343829542213985435098786260195418806511214778516597883184504873497713147508240508811674471985613040740715169794248342755109971517760416434394013225033100170733049994529314084951364419058596854503262397004150728581139629438350947949292706460861307658789210461784161809636374591484280500801317806829422482974551727432271196440922246371730683195339110559701762872009800239169102638229706863897079087081111401131214832219332069863289242854818468017945151203291183859965943648457145288630750933032573928422929973244263496114397576746430556765445985007193361034805091936909641190383248433640181128554335041263484092662190589988896602208486267677875995941199936740320512245007642487514392290018485976234771085710704498921336006866471266344109152935872914024883215615442794416873765020174249562444784466963063499582299027453036595046828414783432722565490850375241311142005768847113545306841602480103454649566346676707439148191185051375007174995933846921152404633923104500517739302659306890635644844495736210780555808919781516401114580901206711801624360542307409024401106884174851887063975581730723620638132693723957977189189061115942354425915676814243857608762030591253321742050100886650164691686911005575008247309228972523427182625131407596712496607902053829221253876673135822419272386750871461018503556173274239436832268440515975472668492541685122259526986147386728825942866467271925334798088211649368466283293074344161622361409544555439990028892654642527526505317901134557294340961220637306694256894176032718273068574101948257352677126944237108708879454664095495630063486504515648300013443377526913355244609910128926940134725140393007707008547044789179753668805876091925208039541801219186156757231670503293565260212560414041884341664769390761146526208980394665399409774463754098599076166991331956485833073518044843242263515848925714400857057396131226007298183152598738391001993113797474703962052416981894910019995267812972138955745646094315514945310601667145128585020206034133898265161357830726259280520947722676824470300092918493903538609861311236517542698144594327466544436479293976056154516115167849087555357582350991268191645880129523124494484515601507322086021358698150832529960952309976734077264589473605401636893236648226660841685558632143025847500697516831691021892502920857820198130553202293273580909444445133842285872546123891288502121283025508051157620178110756566989205414517960120511667109653039746079790086411311434386052628932506185792500127343526870968502566989489931875753300031922682770316547032050683979096104961604994878327555714689447073650925131685639793168952946115466810086306809695301277089746217018397651529451444928904912711058433950314770449575025366034178473489553925653900957598229795875394859706130502464432546276179355102860561689773729672471373000773016739106489408805353576681049194662975146987459169735269964160299391557399813723390695407093870119348634004294959596314587708996651625662205178259619140087877673227943799463802811669206713111376655462686700971925710097736010047060710767982307713079187355458608358542803655463255274647205347452117028052557930258931382402157961576388534817017252008002142621760063004135869773435957104527937004759126724921401480654661283306583908620556588986357129198825599518759217910571360801948550354830087932642054023415756424985913444445213188013591232409521941994398376670775077989858679634663338071409060528776796492925530611815812053313204246514830912706871318704612941771839153865780828311761665469228882258338568113497303396157052998174975623732661357526611640164302499043479815531650183154390367581006822874506505570414983184885544422129692809826389302463517713955444201312248332062904037591617232775075224226610110685772086049393676834977095319307830147727345163781098114596402655154211863713505870434994741732595627022763435201419352209354854927037832993887231991148452334455874650222258118587096969851983207498499700392664231783413657959323349500165644204645265570828034357918150566166317116200986516156769982427771085133101663077972258633220182078202941625313414752726439044038031904831853655290221036303464272261203038657932309787462308343646808744595074225001827534725172775983670713563116204638835854910748706850895281287134062966934540864651644908638954558342023077835374146501074084901736796862928271957813738179118371369765509340731487118080714914407803901390818838751614251768207889300534033409743065568619230629794439593616619285464045687507325883925835489414333487178042883714109745933682725638202538674854117207571861547669677491421181727706053823805479060691205555191313984949262974522438739174639946303308434941495361868406846304110116955536625795036908616130632412995384809738046527874589154379932795368701514567816933798974146754179481501358170601982235671618562099753421776032234904600418859849937011965270737123922354631472087634445358579387701161841385437719701510903987788347785048771822176757885816367445458405373047151240579684480342396062490998513123421213367737520104192514810931956693764575077330216868713229017056942350238362258748884697528713463215784227010351227623938021895930520681820613747531489028425261734014484590999665827714406556922511041393343007814033868289193769771186597852211271839403001862180729549199578022743402534116141668619834232805561732333154600137382554220283632458818070205285128412162409798316491363727454887169277307857623412250904560581391945280446377287912069814802771021802918229163891425914273092415761293278819408150198944365542751132699441280058069612704703193005716403546880059364144994994201143187412141051400863594210328139898606234123768131743738260807612181772454358779613525204048051025717834676231321293115970925054173010803985779816139342692141848715068403757295849195324287941291868180451507735017462584193920511990274202020825388581379535133227122667902988885412578244492483292530508330263871786402272060474960330251169490828632211411657407432274881367710502008449370234867395022277986029344387069245389909488120611772354604332724717498277488404385117058147942088158960249668475324018368390166418336448850775950184656394590671411302038646683745252907312723076410744570165266561304729172520026836209576222505443091973638817352007137682769397097685220457905894508285014840069456487877588327848777291988040658162289926447329689485208463183607718875166479052465151635739621735306703705486996072989259592875058799957675312787857075445859731605028492931131319879998217106696431606988502417065816029350673614007929314518144298345554879616135354270412157622360263662194982096524952293633053524880518175789751193649840234416861043458556300544766949665159903556818195035249312235488475184397396043341227711279998258888776922986257516044406361450830574667201167033403607990128884717981397135656765578239726769068346705684909794610913330484904269829308329461006571576039543902757723612442186590573923119431578785758672225778091734167747351467112041050914023108285035097107059687284563403895697107079457072834780745209868915307016173089638143724908548354975147677582222057997436334934456285750747445428951424462929323977878919255138568465306627728538780831407088269958345108152431609505690606614925806817747675732840490282080029629444862455992048461263802464350749923008622763636995254753063150790652172944219678630121793035471873012010390035238666064723464741369043201119663319823298390055940606676595972060843289587622160608003942658717111164342678381831901707114781199749862650221676972638124431515057328313740987655168829236918043777872856236034537328533072228244415570373313204892780992916474151513742700923687021404029610954227561198615089397758191903432681910926506958920740118909246744905420025784467247675741242147630842183551043013069657479707964695361600112212161056556247778973473067902872225353958647621700286885498560558347902586586483569487613631979307138079066861467007269115610143151175898708653429099372610054978436906466615046846503776221368457893592446243624900442077552441586096223690035777488553816201758744149733940613086598082635696089783108045124085405942653521783990163258748802974156599600355406047212615340668382109707305467949853604544916338615051742389612417626307862276238572771261317583387189545954799036615752967663557363536125960455520509061772180760201909595909998244973624704527872272034207321456491158928512756395622914540844035482601904721187172605296720147180908942010256613901674500489034357666455915114806668026631481244933065790384243785875772554515636931517275612771852329443061649076374685127424004835466181244124223467017472975426081537503399594235420337577442508302418777438114701638549371153772954663617811597298482866119831039778634055487222084851893578694841503711029561777674320689623713219826417593499576041492895331547887698944630022186964472503171345915689863850952978789275739479575785091285616564603408310403077782445519658638269529808361307583236311580780827240262669788971483099369213077018389545264711314227679200080479198504826182898571648067028581090327408422956812794108024344890547782925856650588881652316757220581145742568476292125299442935277163268381871819254314834916097810857489213842709829744990509922516202561661383465724704943961972535347435890701857010538781813899324235367698491801032447807390456980462530043865901364842238792830168888207845074546461909194898903886029852575738496336238820772555261596012482300685535379472741580217310745322479732177625956834461535443925146203344342653329671943405490086225013974466350229510001313827553080122654868845839306558809395536993316769066089107301211990255179929326112806645766124358641255427647711112667981245699722338879783672685894744708953969571794483350813039270042637648046916478014464714366555791492636857320482397314723048968777482936720951570006051529562539060085182359826707022631635792118093068372633175630707757182438861548632428536657718916276803962216179900989265726549135124535987401447519288549123619128598537220828620011630407201702852012675933715516604445892469044405169558911056283449656417217333698277897977727689597496152491784708115292526638393992582358558321849891031438335879159122408032190700674013577853989487799414522080815156073947978311238078614967647688995603500360173796114231417853504041926090161113357025943966596937583718807820986830018326448137674110404281382465832125646445133558404431645027373013998810420213140238495861442309483275460118524196903553823231981496262898315651267509982626115907422037746223344965214963247481797611826435884457751428994585696197236771127302394634711477333195660106338186082763891145470971423809565303442080687655132870945155650249656549914490792470002064928597131181743025343181756515573679653975291429297687130764390273663828845291571090233649812108956295332192531625307035858661461592905735103532557390369639391321477460154993249063792040105487119451585077978210285356039403970717549320370470521726163142546397141361819091752941056353750743523277405437885538386709490667891809935092046270682751725036771049886196599905493638522387662344174570099265972493592670695693718298598923713015817726247608149158908016835251929213834191470405767106941721288075077628911669742239980622453703730158584566828144820844678075382777998028371753923961463428915845161820127933431797903103634991996380603910892127710297570884372133144749366792901153664469781420239970424334807029399650680212492605474281155356453171472695464158668617680659433796108655235590343274594065281945929655397438731340895612819673759661554395465362961959695958404166306983160262347708044091243003496641091928276798924447245972970024205910606354568356216346303268455863305612259391973928357813052763133442507468335909147258055195757796411813012499205433792116761145203138580901155288207415792090482272954643137558971764198804052937718899491284194914398206727617773325799330189505639315699824146705273731539787160401117005164505391316588914864129007323097365478138024500011199122830018271603278444726413912272812510728425009044639728033841334989509579828569157435396925668206958873065529885148030259999387458010581388520773855473374470960675998079391453908335564174463663359058094730512207297813631932822285344710688949238523442541521546513543220866312154869610576377228510637414753129270846090050323407363089453408820804511729460214299258449380833675788095990964346078791932022815649201322774942964557828481403051653943568879787061264538523857669588937838037082577362871399672393294080099578127586891596842570939321457854289160470707068799815167944544476090297746789402468455623087001789501941382605436411724291637672395490998202810936840530041757174078078288399969200307773393281991572956625237557521913568943656090040975324905297304547537371649840568351412590610613519175568767721358136011768702715305324046532210054592826738464102231446232287167538213670246252676411967845697855740306918918400236183381924596250984009069951350313251774978879807668581018475323773652811225982454702223237724450581575310093442829367121669871301753607878513189612739792666321439387014752914388158662153107485059783595781276408923170800445285332449936022022825295750881828678971881312472980557039472023241771854284894646925834226338390478842799727736856746540015713898896018933762798320428243872203171709898917109405578489871211942463746572803983546994009020785991829449268908046598036436793306919375396407302493214932517301081300444679289735977713647033783892300116493632075991872462640633367678757980861932146818133736791674324730789122429413309996586542068265970375356234628411911705794801267008633457517136349946391682605937804260417082639028973094911591915452414064114935804170084283986465546775511373448890296001708332477033301866510900093721202878026377109072423135287965566417770669357847540195980902653700295973624457339799937929690180627618698062463138942143870674501181901106052814491982768752370759790239091237780630293367337983095669196935948808386167805410852516520681250969355935241851428908449046665698861956386481366025434027027791664622974468021963162078604025533298328810512131388764799311819923467636944860211441973647257458064416728111303489415815641274047609270581663917709679901988151303763891236475918428707091258363445714082394809706427650931325348082121831300898650979494811972965805136804758533291883664153836469769107823116239741425232379025387195780612803518365970023958015897455095377848918356163268283996374134136941796717278283391945903302443285909741647829481964379893579677749420589138237241048421505286496470328554646536280582744027938376348842943851230076305151811188575366772234006075974662423968395903358800456234077691005034176780013566638676043274693423047772472918354038680742200290974140492933487135402794472646275631025470196839478576880805640962657601577463432095191233978825545102129421649248767516798780984606180925071420464311651959810618261586935071039123113913157533978774379041596658517048041497752662905150738058501839454072354503136011722698232348645783802142422161828495327308535814399819361195737854245285041896335328409782686940540176904221507163526326793112019754709365724797362585030234610949026202339965179895499260670640504984799489053145068550633016547241031647540058762850774705920029731165367984835505309191140083167793268163354348514689322274782971905623384958837501066679078437144298851983165221743613593303711383693042078623482048996127079506763756596124323598509408279476828003940848713185191701970076311201518708944076613140864128733485192308866699018122559840923811655512406708080711066130353978810031627280907877429698283969773827421092782810844934896138132024649518446240801231758752914554842395863156380204786854738464105744982200378086315548055453497729573762916193389193012325460840844948915323801571744216208196728477653390799154647507787470577883699262145454698805286759771955511384222839762481397140310815629861480039815053254189222637114859492746169778625292708049222558846586907772650556812939701752614652002406467480296676162790200250557193583617739474739679500379431739848909610534363105230957295709170419920818924917987825630279177216006687472181643878608080677155112947366497603924400534243274465880593136268629260403722522058219080400031998227220990684453998601080713933954437567207952242934705697601939420842639843098070209758691982136441885446214566697737592944598609206926499112308372517494295621032583425193473707048351644711617854685418183319576117011014018318861671511601485800891864309707753849227094870708825722980885588106879599347199540711512963101539881859904198413349045032401955008327167038016391490242058782213011793868943410195351783054238057725813594886812178295576603359084681942161989516531980999520624152633236278645616480742628864832196407104490979858686839341925632475158996529230329438195679718973349014250052185556769902794568074912545780599388503299602326592936393753922982911821644191223412225583430698652933487009022223217467665571755488550747535754890478588018369970197748147185072707499373929067725186204348834628453401551457976261385714187242868951760172836335232938313767404073351049471150442917206000227873141342396980379617567376065808756977072855898701558807458461422625589770918946403296850819699244909596791077624778387304974249128677411814906493488785108240740807177849440155533563427993486206358401883405474765913257609411259633565983805368793923266401881320669762804437953916760065446420824914258050223847997088572126167721246075089502495557847573226982636365559664178961280140021127901423966249617707633677175919633996649744034308849865919428334004369673352086753897159455124609138291198287451362801241508979065896198056224040907521072746790926620640986868977544732122197130138465572344411086060868686021372545142573977492449309002246252687018179134199601410448261302905095336722621916747196361575056540074525401682714968021597341489002916501248857029982016043515985455844959439142212393877707458504193434467310061231369398831890471786080023145390845792460645954922602082870657238175115114609752113702441111811659792684175892742980703217092403532597237584094797956653255201235993373525028897197615347798217138992963074877535308716090678941953525465711808835717431648748454223416947676387149095040007124314947186289410615144806521195705682611400218836452398923457732115838055432952056199255594878303116367308746946729739011032623130008803027444190540243235006464153792551988561728220431372259423760030253424782109782679844450352860323524638380717690752114835858582577857058339031907624753242793477242228997988092771626896416102618105830778566938369755513678612666347664046030412558583718102900690037355390459587260093065339202243065134812594024032751606690556799941607174644120713084769803607962702342109675200372091821729905094434555498037091601649362114720168614700573896772246305506590345955108196514209270415082517828838118648148448194482785751090928218765518769063875141886288216729111269067672072399787990668336159879288782406957526853105064759842705224488735596770734097284832236400976568096982027710364080613868559031025177241100847557196218243632504477886675600661507045258354697212280982861701644317320917888795883141919899108327899023118104412609226230405556373663010748708872347993417727236408861258038412440013862575349912198381493454348588521633181553874508988266189738237149383205190282770402563321674631215429685182041985593661430308147021373233756892877486026166285019380525931385829582273369245654619224063939111970367271912769457620752053012179221008815038683038491384110210336746639607656824303313430669843606822775627201935712613794117978846342166919517486697294815689239922256084705317672032123386228304994716141200267223970035750417326563630551513129539833775658571812558640839220955845377494611718309473445031510717183261586710584312330299618377405321449688214965262440333726072115974203158520216881655937103677808244333168452961872781059154352184818826308871370319855997488187169998551889730840763272775475213724874158521220138347988217342709806114168876188095598892574942550086094197518122689948310373306374480918417877546034466189284945998698277619956769552118250203232118129983279585635061002905283987953853453965495727024525307784578252575947217273016172422579758071619767471816513449546513092213855051037478566804212602708737547915300904712748845503942762419874364232422049168612729960138228128834883085064650429936835969149533252719678272930056289028616006441964004033321169018222016696269721243304409626960680399957469825391848862814664722309305903137014977560752607519991707073598494882457554041324331907405973181891444906071692238250954854871310609251744376377744707992951514123680836871343608883007017116532942568544480244204577889503918550941485889308602870144982548292030046413116186375751254532746454003506716150331790753471052329957531600479020612686120602248335846629676248638088363386314427667950272498205042772623413418539872878999142485983745012052751318230820207672870102455980497414798259752754314849561787308857416134383957611946642161636738198635229229165197026892470474613030589968714130834421477373362093402555376753288751011255682729884630304607377423898475475673931447485772786395635801955489615033148260632387264580331729573563062253630600985859355718727288946034117977188719775413557755247572830744810617288861158328022491733173473602250289921819594658019447120819629527930086715377598961932712893472381145696255483132747707025722050109406511769785493141867096777153293407520888039107571032938252136712203023515262591737989918066434774928731520264657220156674439653343758930991648923784560151264173826242033132927061192555582586576330215282803486664402685716202541579237993496059770910770410559919733316564073936019591697832107989376510687183708682093843969628993001925801348816980440555935872358336137083113342316462466279983123335781302526801056484722895029047895463360180204364086967796744140445212551701982975856842140382379107769987267838454399871639855078449085584059299519947655807971880184513973920394207402961408667691309467242444464960892224792848224243826688222174402930626588630620307403023260936596747709170175243190331830858080370760552340575487076471830592161480283192070243158048399314709369528553506700184883699515049167228894842471941905587818537826119363268902503373292913717486934014039370274817389449879220458170176587157601443610843267033203774816085756256569529283484393677875695656010836547519631270170300345166212998875070710617981689634761285148702653609196538800014657242767367119672591970066219502897082656761410364907920575622285782189170456804659265099815035048764218481587890212260732867246127504814190800942317731010958864109683630586996894663276746013623379328723712768397267383300908205573697746166438974735550491266174625306389659566785665431775767184314886759449289323546244538503453392592091879443015573542610762966592645432874637912963560342173411582530385565296098769588171572966416807501708414522335591492128883162208849801499701628937193225190962312734367079905769862120955723134881264841828597317292859443059014447754400845661027930056133825537657998030054200343740305583600070316651590550306995659722051392123420430420160116183845515740788197623859784816970597605138066320688348523003126564686349337767789142493140943746413238628347833240818493801302598123612710919717185917618109897469874255024499428608797565638814111539521372674487226411287226060621861405134232528021269736660394684389077267135841439711508744579538638548573091307986892069418245928047185806001690035974943416812164991084226170736045141922685418149642404136349835349152942553978331501747573178662355038042358162528534655891747033986446662073942959185997332445985326854518904061161321840034117603695611413099160271427764620746640193068201652533620283872473277496673730511357187016805543401199245677688737619026209141567811788322878142190323914405873033472474324886509227087336718739609372497614757604829140906788947816313688176647753791586526780507436650664983110070302915704472593646473622742675126372898697810635092563913992758286738140179372075710893325720749309076668552613418045168348228142678647832875810878687966148308884408337380480488668630918324949008224498730747928527685559806670116081199659917359133089566784185363652690237206299125420132452573187581342308931293571075219607871838481156130407909368609801059091509457271684470378492458304904154937670933322749058439373500190368244114326915339124774711674156440312284699326516605272321138172981762489158405798985744764869071019526893586743307830248152986338357940225350055313795233195403134708834671805107091400961914631602193189525912578333031230340809098985882112342623627125632285498938784750164254396427570582671721816470222464236880034139714298163482263734972191805190142823102192443373554740022153386902614058783766135659022775737075472340500392507671148513322373505315007384414538192020505895747761702045516540857550042256944772901565218156124896394649594275779387841876344629416135891986869023040650371468233464701766347137433143550608005466467856319431014220267089878702186518493798987299150057386003581955509112636444700572573101946378207161329319317943354772982836165437373822276498817428955686852068790431067952336079398657922982072592728760477309165756972342708692519974142540415776164449428806687110637857359166862804461331551604615525167156889867273765125928007942495593731307738951213056915916692062308476043154410857341779887249438036597667350081140021495018687973293242878567112792221314795479500466232965321873127642995748672053168553252320489508119892103261270756632004625543029103950233708830618369195703230884895635088318902773891936831431703251129230307888514697633720516330695570627003963030110223295622259905142141865055095812507887220729005186929804034202485679090040302878947323129336630500374867090571156948236068224722658538907943737373802895914521336230235640480484965743175937265483403264485026774065243893265332232336754486438668738359148290039817109809818887347875400124664289265505818226680747962251849515242645161588302679011070424349601968099866898111904596287156758778306938198527523183211715922440494101881425777185460345910857070753850519623311126752796186574486226222272563666293647767191942302489986093326924706440455684999864230381584544616168253260634295625028022920615355401323105646206920972726279425358929291119864504726259442914421914069436089607423519526816515779379086390849671464440931429660212124581141216721246351391941163653806974208925777381808487436667266333035865167606505361619137971137785946331764101318375935733216711667218786928625506719830785254950859981812107997322263959006443631541630699556984776051109514381242646284945690175131346443579164250958328778109681782935862749317657120330925554918078568246288509683671367220539726775222286498964596108159943784781034703422076278354039027073680237147048012511651021450760501413028543407056783537252562793315250679091258246866166559289861123769171738974468399966125751571374291080393955586782476665577893724583640932226770122429474782219710753044644381602587231405044247341631783018959301587598818467797378981589688912346378678294374923300194204938938706735433505226184454795771773617997303210189323188732894753049892349929151729089603909561142179018971821550898229421870532406004156183875747495081741935347654456046617337594691762548725684047825311905553597953415028215854777119184920739158615700883692333485878224064046344051079178492806266766584500294066901593589721550589452956599677306454178810706980860146977824083759901849627487053410988623531677009971960077743638088038774278339429366849449935478978366593977484358788945796309529796828439509844777129394263071511764717326072559217185072855556713724755010803812765398941315728076518540827752406316564652771164556642439694077216665063079027315667743035537034954605458152395952461442618947217919475117652942319713665899202984162003145794191242895211606293318210872924263229881882348997881309441781952531479672939056177135487962462470580235197804482575049203144693502952826213049319975538074614928491771483444558782362209674121935680592809468311137905844278151534823594391262095703629353705600581529736043307847919408004148235844575822090027533693932936192085943405345647029334071713297030392423261847127547430164822856279948531157248578530523333680402441645404462482707580744611337372757704334370510081626791788859528538957970970120568700454667218334094660832630138645399957915718735057249024023857283709416548459370360810830974194107794832374277522171488989668971590157907847895460211588953867284709577899225947089807196648399751763931800081962726991609152871549985776846758807418374097626360287239648779808402233544312976984776030017113478237734367320788630314177172302869918479872875591078440435894351547776819381893565918982932986582518461151546231862961411618972822839014603196360148748868411132410451221720890943111866837463402962624619501028498281980363028624580677247085912643067053539709731661252292796378314810774562943259799685559188391878342638609796220657215368397224154918286196471699587168012910547918485959715333716134508765704226206890671753995727018810434703809641158518685847018012387212438788899265010173145140074211509882922618436037599101900554904115529471548594338804570462963883988555125911167382508628036379587747072602932284481490102539802692334376798298251675422189723513130085191278642590620652352698086419261818670650975594027779200433039086499832748053045310167127437963371058054498594646140132668646527859086243305075383964681434564220732274016157629434766766463016010954369879174323543035894552072525723444838934754164082582826740521092563322757475354113214236360682454290386726057382793392631518245471206258302291756252260664497791181061020832097015666741429580064318662664742029828648592918685240142833274574907784245540456890200986283884880507063773485368134223593290838837397426484092781902945813424045934644625169929653689650938955365717648570771740427898982625527042381710243991722791145575528815978301226388435363633930380084059049869038426713908328514543305998454113524906969398068251032967195823132138975910954427276403972131372373189517706767698913435311835864045353980415287074748488518177939241811392135057793265579277472158801577613798037010006069160518299415543362397099882358093612210941086985331878436588751645047856222119319148715595565245894155403631630166249116753014324990667500939236326837761464033937119508098923356229293521233554532606623138591111467420079561970231553769959926613258116585725333126202894948066004633462911275126400710352545992730054037157607004236114206852126758388307451176413738289469577126035508290633154205906683798611722261146770882082888671384050173433386706352853957949435990336813880644983601338099627120592739611047778908554273087403237353124801070370794567734922986418128723411149086805161321277575836403409215975527414463711918686922355264345039251792332174729606499965497237842991906627250377407311709989739180142315620062969027570446143885559864816687677861989520881519534950547336663571734866601193090544896031083359378457361985796261760450132098310231068344817884390081125095684015373207553900065817945367212602128605513010841880273863728514598289933357544732324532812506323813406418555408255337757100299361803324965923504929181254540849553343063793649324561305498684510738519048561997789269496405938808200858059088253700569466646083071291724196851681394297733069305009098356451350450103462491685882714583714746124626947002766957458098564209656554989959623642108760966419029818038890485631692456139244881614758763230372630838309716958625373891160382698801664341229666552516206431262653166464031978530152951109381621725408899276635840969162626255229128513236972007280910472048766231894294265493788226701706257368867114621975399947279097804848567153859995149605712541177758534555198632790943769682741813642733668572731669757248026538503677591605824191769007098700127067853932916451461492067960165772570905030654861055696897773951381619889889720706124463784168958624689296532323346247572752198441752491228053840856972680518601520720336007610777077150723255200472468244482867596394825167856606333401131780979868488584565588939201951299031068480024720580560540108098400178054455073930567362029815194502708692967359654091885365130264523006676052274526284975378359929454061807217100979474942364659898187026891080304230241834237634180653794671825466440432168405392996950165049381161570436300878905846063048122586176536979548856422379198719806410096013511964902853918674294360215499832909320595790440315567362389810416141215562259774633637443169063094941590770829517642468084117904800134478668781635039470539472703952420874274157409188540807235487136990133796495729890620955455736290159001463629648733763313115021353994530275700836685824650879922675598286449912501361473864972547594235849776642564816017902431657367855308232000389152709450140627334684559518777433695466115371201737473568084468388307281882067743718315431576690025228159242982948536769494142678600168024463207789173455437274806235157143791762453943821881729167652695143158993939436191666708609579399813596442476057785350848089594287595748211993987391302764778711606910376861793142051127499797605452789270822008834302992194707959253266472732453811975388092593736232045010250629491175436176598770182408042311303345485390209674325742893592941763700498686530596583682987422029070412576099863987611242225935754727135729344130692151829210386634177603843443258753055459650460605313996996961590195497367200033603151740395034889322016654171455931260961316679373949671079910129454945810012764727458780080953147516957638036838086676823674651949367261099455381077775961649159113407609238656404334024990446456251265541536853978247550978787744344332862062088078798884962440525663305545256819742418886950433366500034850765107168957692174677819553574561604607732769400214127607201739971373180231013712790622901320281898299649983411884488449346006338666941691900650833504911398071353134032423837678286598783671528099731067439165675825639490729000665196309099127522958100392160837600399574289389278357136792449698030060631394181631835511310405451758336072009868077030599839733646528798230511177927025153698608600269191978806949724357246765583620578063312131392959316987397199333031810745611642936086963910111574157015808409445567616558955531897860697990311915878305130206216325663585973578205330678855348125041614701240251392817694565328340493041130151063597117651153274811027028014996282482901551097355151477225683747907702963832202196751108638468316166910271000118795006649043048840692732492861745300408705211173316323342534642663814843656344803322945978933705275454004643151938122186739273589634333922383642937528284476212439813800467339458247300475434569135417580407609638470566657707057529077690061457894792658567733966155425846207115282311324722430565912395576426016744792769667794128495266716565478382036750552963394126133478531170053243042198783231219214207149709699512282122027805514167680896850187002004618256405569338700342650653492489964655315702520080981377432359915193960271188073220572644683822454409747833171726428476747945571085336492908982762335682640258203058356771545464103848245730228365477637319027628679809384276982325639997509325941859194624656407422769285595487405883970212917082997441215865084092672713475038638173637876298747837186744981855483546110367427358225729849758494791232499279750848112020661579775608329592181057141049774728696675931726880045256787564102729219846563927748710233182026054169961568438704036380103953787932010713920423601541271052699024022083411698169559798984657799242215563582322695641727801870372234847592525663272005609725497545149668888641021313419436093741560905519230766955361876690720863550757634792601775378216784206130382121774606666181744626793298451736225220521479351477692268823724198205600034415456428857933182665553990256796765967449650407518236139378141890691220565060260593893090244146719915199011518672190897033780884509917181685781131317172838715239235691443728545075965815359897691498834482829541954018152088338374224986094971788685803325030190222527222222079943701237049812561410001571658358230175452135564384810778198944787789893211159613750548588401126128791803217468031737077514979892677617580992844354756287740539550824845245641795562803197265704927390589716697218360505374553651229798943562742274293019540373105915181398400856313766125381542428346421102190650565451211480591130346628192557878682396873261573801473611850782833651557503669027812392367975713084771765085627318614608783779195444364499089085881730606691416982379383774463574544730878341632947142872890342190995592496870396704734341754655862252456696730445659118984791288330651676821388445960101581278881747289539111627016608070256218376654337016248653677254668262240061127175689407627655250503676056444800646406366750602552283149139181464774717956576578288917820209310549260130572559200906526854826083629515876793501892017410088972456802039267303369699106388501676992134658783597017403072573494708347161379463467081149231570255717934390009234958674727055777273691221261212067625193755923466400893154681159871027034810023942360783297581173219486155277075139915455568438899886482319038405600189178329244899767029992438981459578598086794010331118546444400346155574035824928831956742612120916586175320405667705864868553323909754075554673328537663537866260001446342607125963845414717708936895010899003154586349577314327063482103317125369443690823693405757333601511856265211501626210308081749990314110772476761901345346356790130001618606719580055098562170036274778659552749669167214891562830556354935702097366323775329107397774974752147244527408189471727810345546114705285397062930408181815428348403669835321369533059034684117246533756413847636548633567200016024536456880548001610863504486227852576609621140653047913743010520469276449531716415345551616074651073334610936753166295314220390753945074907967348789786298316070613662583657691041156001223968321924399261942739579533700593224566981418105552246184980116948487549050205723413118822439999189808294399451982213556958768357323199888183706922853707558973683163153726646161820738695327077815444371488260452103771875178969111626579884791688680514370308510169885658200070706585354340905150537705843068552138900386798395607689827570044834905491191772512426136167588316670068675857961346780644901400004422218219107268309936945386520415028081685857682265716183320280362113502863240208574719221624016255295879734326133518006109531597841126965288561016844051390892061487936725299234481640083472518613707885103609778070042668678959890457116667261589879856902098460739438645089580204996063095567297737735108399197564421269807564206196790243268681311573951940876948580997546023481547299659818906739480826891188290202918765528161470191101130684120150102595427347929062756524401639546870862447753258468345723875424611626665998879133773307087399848606913737429136913695929592744507268193687052744639139988097307174673930612876154826139038895570003929268705643904731272570807684691410909842727705229230086437027210660850678063328105173332857741922798925508207458987647786789481332741118123157472099408791718305674026343456175284268356049430209706778318559595879327929617689269242472774874581082760381373335136541289334596737453948989667664205250633316989267490979132500133429396035603734110114825664358865006333400408057744947811603071114294895642431446169160815983155827412871358912619564005690521208980056640813413944413710297335046865732843198333007517972418591353748494813351512349907480200968842788424026060190725744508217776824121051653334500870110004879288718854929570866672456473477480166708916244300819204505293938031313360854980001517485043240620652691595729119326155433831964127338517022797073062184602144843035074456953685302714430791577530654768075381474009921202060823497569130540572377257768449243695130709032751686321085850136362814113541883877886049302358705299591026674436229146806435056431453401720676617367520493005390165394013830161846533352068345419130695225884949637805735238462879152874002574611446667613385581366009660464257447516539154095249729386522037981290408241271990802521537996533326380179822739965843314428298123101174973570595812082605117251357745471035865703234566149903259712135349752579847449788236371767805780718569220967501778025997957350406463226383619803583492115479660525130033509279999304288378497292988476658156056372589059434685604100026049992466833958514610887213635947921921343226281712431135344188818267135926976446079913985822413587710485753894524251285000632453594542940601159595986030527386367464992145259398881400237515407049903299379893892805172401408077800232594595861772406715471875408878055886221111629382155164975053756355607517769844504668245830830700043371982820818995228218604070598829224458055955098220058316476804713162586176349863124872509323140177468346952499791986159770892363075125439442300029693816346755193839549812654891457588387955813445347977332232175297554635880090778737558140052864888528210541979027663567054807903330656410420914140611339476691224682864560037162940982806292132713834065127537598099833591223640378365367259539709675497611330468606792376325861953409664723697959584126545509784950461086633634031566265674221475363053476996064841885919314057171165746991674547349057857018839773869914179770315945697719469373842029764303302229027745810810595858864642172473238721482572386750506177850134128822401425037724492315840912376081932846096971281387435954071992049312236991883244079177255878013785157463217757548239053142441257694812086136425660485354333411770745289875680466666282805484244403682477688431796587709561821044996711034326349986267586693792074596062320450263251123516593877330799130774978422481440147274243020657872762949071616662567478836112062610375371831265075073524842737082016643916494351876286577158635629635549936161991797997872909459427873417774397470870555018130160142269977636098295788634206324918064189032636377737329651490717746474613759159900923852360128544663053259078150075385783528065702297807517353125244400612329225709453119658031053376915413976934542949376991963742003067694752026548210979844718583119019445199926467228822016754102416845802382671499398490474666865590697430530608370853991164139237934841614957128220517786782441487415419585357486665608174750527240504119741240924846363068218267489418674580430925585068224100725633525901333716962339153453819461801109167039828315608943151371044741486288771407986509640443833874543030089845716826649284784658538204233885760710766383118533920032928903705168387871187669227046562324436557522026920400413642070574549103431346464809732230433387197071115482876947670565297622726940984414187220010986481431167857153850247232406986147815065926189282098377288669340989409668164317216240198662996069357927711805106228795489161443277474911834743375044296529646904089636553617826482817886611649167064340474316192582106483807499636507291700873576914872568546717055779169491254194375745858542498559077920467004204696364459241069291875203982303742295623167319968217810708249153183312628957299186346633583331282074494459811843102536701465395582921210810406007753748532402898319653573006803137959791407342200736669096681934937288020020377399291238076559435490081392719604688980861809186402269144979674840637532909894206513683184164594183075460962013634065401185941531584065221197815596053915813714364508584601636605210635695352121419739484286404142012125774867095121809256233836686269797837176602709815667077721476431207892794971927684350082490568415566198878636813431849307554029444435327946018807550143379309179160655775386067448219776964152650219644484216570570813952345705909762674107936942060333369670277489705544873457976204486258952623271810493545660553095472130977916554113129578357620412654062377534066375794689181348969460200272880613553470023791426424768136985373725021295164854221379550734326912785414990873461748241394313971126181217512698161715651308303611961854894016471711281203171088694523082912457418173903615169360988118058744022358514557400888853431864247219060690683234947116234713694718513829198875233905896895138990747868584251986539650566451561652171750897344415306604630141874385380845977420019473501745871915825376685442897482220240603523541036864082678382827822779171504812396861006375463779044479380589093307733058149757882078864337995971373505681889516113214461860251476440099201317022980128454279105720844611276697564417879088882241090036112689835953156422905192895044733561294795530803396021934043500182827487891053723787126820546451059637883070405968378161585339978815837899686665469494078190737556909456932537651955323204857033661388989455293386522099685175384584015746742061948609491483694397252848100657796625474730934940988235843255811070757868406268866534751894636253215151017668094766249107854518461001578494344289550442555490896257276640922718917055304521080755724613317113906040367648903768801400081067262784015086576288174081647764391231486215159113721145149845852406857744227432687417286849785880442595277860246543908964695560949738401226109875907740714090630019097383379106825048071610593486760956425315549039811824609138841561846166575321427747488414229762641238108596424133690604332514633905917957255373473003692646213614036648223259216927253175855478667485827721148688024790105852146981165101889758168957175150298940868795719592900434290844277204467308006992814956179452490205024002477898135406006267025694390670330114978192488405218527656783962559300509435190014040476933560004889361650344363210393571140898437974310409489005986039048551075628612471217855848908764499259334450568211169352761581292193271277272269383223180414165689937865062238763804413945453262204949189450607208314627067978910935146788980174089481278613578416476668119893831723042303863873424387184612623060782502995694036150998645833423442147883716183912837586756883027002953167946219811534770809579550496808274169449145231650439905521933680633935654226055316859444414862442364793285037021333726745712960403211920550946190440554173758871592848911030928610998861472134186198318975086793739879950552652180965441699429312287000436414073554538881852038908934261379332585408384705747486853826880696056934919190300976186473077549261917727751183111556585223731139781399666507267528374921611274792229093596258429471292722751486278037686796652395766101559993125454838189330985855951176676050633917797241339118949559337455499457984179938460398167195794882606699229474402511799766130959182105613850081809716056544673381400196803556077372053470314797334656373485696824501209160615498396720363206095689953719573307090237853265653244520569958577098749703523062870080672917141621412676868124897041659347370647826183559636912007897504114532957701969414114587612437277110037228626141371953828203835022474555780844559351282763274713421278144227908714749577542241439757043795690190497209469109021779178523530622170196910299958335708482437803231157974177128369267511412575512006883791356126938058244260006439570361471360432711130480315386505857611539092629608279823080978639050767152161342241652953632027883158914004213574700246506192833207184621280858927002986957964999086441028066115781869462666554690768129909664956161448452189967093879962840887398857424123638590322552044473286383182595800086971918930603368985180807429838764577044149898019998463014337525935201023619329459923535267980287613947654086788236912167839076252705676910729811575513398824892198068733190221590036967579032144101844333946404668180589989984599616607092081334204435134571527846484637740333022958544979021053419550305411454032377153539020732957806564737703103760435642337698412552562792289633811182110033095095356398148938261411314194892075167966935447491405084676388882326398576330849037542144763805541591998540896005271146193716792078693732577362233338490563286754081404380172606265373368456650052596681758006440914703366479792778640431631195150448924801094357867005768917767928306484622304030380363750693921419968274320578619240640427799080462948272204373441456916085530790279286965723727846098331956854244296684417312742386908515544711090218074049562933771505549070437469829177535700199826521619460286395048359469937201185304509686108316709160396817944349782918510315194459139344322916012272216985468678226594048248339754709125142742550479105509220491864432291278550321393470171491513987161078983759744235543934472033819610186874481581287992844363659329724373766296600591290281756735977524131939251877096199821330945680562826075061726304654246022166105076443578547934397615029896345907635371315135556189194841748741289545885759379285643277026367504610046160900946884836538565523421364189163736531476227963679908427644565796894421384946722699297506718959281868153751322143710088823383572190321557923812288599607985842396828511029712317482703629736048583396552149282574514825363874942952193758839813105367785502170621705077084825796350297052623982952212311857023463279641906599883289473458051859092035284011608287927168690334859091414086410148947068957847777577006304675523913664922330557864059813069099060738106598159821953924159549467384072963970506181937720105495807433217993821619068804820018373873078350206085259011729982240226864187663941840891860380135360881618199804108462390279555776776767469601391085841060148546745936027541203230770023673443507691907899024126462015418523431968289994171939911207810360305459952738568116890071868560555058052125320663078409535072362087504471595346542219364762176711257537233366766881630432465302702402843900548569364365112756711511289699971609596142387208921956346209992569255675989502454422084358289227538586108359021783817290281248402757398821061252543560863678957794839791722370730480727906912510500206237098073956917134957875278038642611840208729889616456887840962751176612283861076348570567806406443636110561517149290125003328235675945742143388756763842222143544718690066372068763664589483557708887534821160745742656038530363185978861427115132464337707912622416628576128387415249590673156317009956452495208186659618706144146916409458505395646427022587410213454329967843557482030755643485083594654137655009735596948931199530021343783792717932878020017980947557440177789683299256367962510410988036001302883343069810129168181847065270704917027204644117928370519551954581451973240107893954691818763567160409244560184388158876810741865779693651724724641054873935505241470705196013813797350824597384411448731171171091208249053447515581096319727552477130929036674003032963262103762190520187571187765827648374223751388182108150671460762549941728108277335695907211677604319535035967072497757145718631182997692749898065911506895819842871051109714525647622288908875234996284177914204288377293463238454450599300289860968077854393070704143545678827438154081944124191008250377228045673841236751812894177736773385052024274311542227747418676535798101008662398161456181461795990555579857840850238227363580325975799537788583540004878457762172060733859540394920439506536569167556058787167591440409664442164026522910140849803768587354290026433831320037126023630296009987677766324861875417997788097576731692405517605911361796853496109265784516604712320971687357012876469315967636366840966777418055807907294644195886937201856039522680651111993037791547383215890065261895225967190489537183622906742219419673497641422421311922686456625077452120205565939966514960710539872756738913798974708926216720318469119505030247056949868640172766452078641524095573054246552994272750873219739747195940328992870363280553374038953410125891216905846048581273198624715950286039283757249583584834754999572455928332598092249998098274362759657101246809094206297843252386861541630172653798127149056263189382348436335695997093549856816571034598516020236563586669599012645149803212154168149473251148820025964664313862007608981128646101020104739386840763000917330988650829830880406392667560317955722393861948236936297755957607172006650957828258775971664433890230091561508064198129022818211790317858496919876759345476125348906732941869013662211545199568988610172213974115860992665915692884450408961597661146599416022427488590453125938302234737909593243762196542487050025024536000637976767262834447850592975664551697139650089669985242878610991591193125982633506221311616595083317293551443780816946851943335586588304106570870030159620697619927137052336366104057361435599848243743773299153590352616185216934927802266952758171800640743027411462172419990531416379908771495321970619284400168214913995625273235951998612024148610811214232010407222486917018167285440807235339910286848508095251051382737909932121664857396065237546277954619342150783597875575463910575201012945793666839240748710847096961558320100146944389811591378635018789963068140653742086500851304598588305393398246251673698886186724153003792460117485307149798998025118018259957510283045444923313972395160234135546793627048911877588109650248508293886169692022947601409630773428285964666806270870311316175977519896559965008886863571405913771527153062348474310602723959330775010315020644817234275277101778716501274441096206889962887997851371001963211172721744781975680665907351574726886189525087679224301524956355845186167970965695757765257825003728110194026039711543093806303469756160981834227807211456725999097522483800208469032897592785452606005822293769187537259337205728200389165523999568380228552592540046878332341265622114225960241462184484751148133226602625857145560626992033528050842704544629876403536108574630107014488118564526709203002355378190008614400714573714349288143482125248049689877201816153635327312246601418849648937311743643464061165861126344926339384416479469316599228377171946773547164496685685739683216610329379344155618158183668361455753128424624975165278796916601459069444962157828897224679684351001464162515483868321853809267580461118495280361751399936316335998391277813553937213780971341119807256708134258232424827649109189131695644167190864198250112521725896979456003110307865240390969433757627905423018688706167172710264202375873495253542947905126373002763957041817964519897333311449039532602850353838710168599030977943768361579501570061425554421052183677800766249894822467396340571411896715014854322511397570289321965991799782887007636671008126205820195515295505641604746493411230232305514700049645809274956206564846587848516349409285683711527639936088486761330296949374475614576988657388769320694108062223626825913507873257725240163210209680003282202776958635092165502542622279418413455264833352344416305111346973488671309252761272533115132703168637279158163796181311535532068995490050439912688937738555369887622296291386678492664824680214209515663333476507875111773652725082843820752258580167481152561925698665970044359915992701311989833627485542356019123392552826344366252834415415040555191779024081316722142230391475205220674655055797308178422925770537755620596801106151071009548354914469850205424924511008643362174450044109388528836934801045700114976069863841924455966675977385037732967335705996561161883966979853320142009524833073289224183602505974332290219443891056300207081607697480961094768392693162010755311068135215994944626817379681950715169358218767976583036824066015400535284373217154938994424654045433929116472763265815619868046817556403473350910008167363513503551340401544186706416484818603301903849165013857404137395699532792193626308438133747965932070176656558384667753216702961602042127250411049246444033625306498767780160709210581034611341727937425089801048127096346148506374787595605519380235813693724358721044401538996123387684533490208178241243879997636132921675268150781254358134239441863262694241935220442711978495352054700216373322460901262560385046547555830483381982123237928118100059032027209949118661023487678300654467253463796508672249725195032565592036638063011521431532488645076551043995468161107778968765698847557472302843085982442057905791606842207348375451835808297184294682535096140491105419170072492914764965355676913725344225983615384427192677123109869906340822155456179569648069737491734447442353098351659428683924760010022675344718463134648648809092629686462727979347776270619080953839988363826458819594170914557682119930099620035930113755651369588750234562070330541924889112537975521475112848732044823478969998045254000260852539674283733462740409581428361122383209204580211049817477103046637138169181807243932806221541110616830828896983908084390720184773152477990844827951282344789995332798126322822933456110301588161931662248701022475326556011324851607089703166867462282885751068678707671807140593013080122530522122316074031501227830381477760618816589061861974413613124183255073071714944202535623535687601623589171762101929377110424004195536472718899697380550318347477286176997433335847911761154696449579754350146876293473505693973003732383127094425595172378997738538236649493457109744677423106937192147318097616232945728306272352190585108899399159124645396895765237235333737346151480054613429720416522771823327947511435597312481237504962506273404016542356424326697814598622229716716767569903017142558252464588183040650211065018145602854432610750622307455106551354507576996975622685394668870845284259618552410384865545165247820922281646766635303122010871969114517843699314861036884509378496022400870392667810548507328727440824838552379197627743884988778329328787660738282532261945946909048139756566677006896050740337058354823943748515071922460446049024385197317283857144207920305876226970572609795830049552515364522941671617080153711612609810946416499892428673450791993478388145468231083872594295027949120539817724295236668873081114883532039348120560347796109948146746517714656070494272316237888039969298978584452820271635017809645737956210265069265354514108391443424052487933558249971638405519454878601507770431881805924175355052233756320350868821854338558576118121750949365531261664921110077619854186394068659941257116637437208333316778915673610735066720630190070817961144875672642956380023135158728813830591419590905745276991581842562095406328408030757773498387499331019889911185730261306512814563035377859184999351210080727785925582405850015437640068820381302768071533884663274334995390640445200631253218872600250593780784523482542445946982251907909333905153710743770484668041883076445787260201220378275528573094463440027493935745077612533968200072049438550012603295715132114937913640038849785580886373842314973903313660461820239387888554014114212847645162046389336183589017361960165765796739442923584421245402623431333345887021649466736978079527674320113837482539452587647322487243296254361565072509102662580491645112201864074119238441843469791164677959186180922365390472183249236459226980928396046704854752965911527115376858961015013815277659868763182262306345861355981946275765261420251023917548452975804221092313861391986794361811917509084867696142942764150544454189596254653108952769998132515589065685396474455688029218869461372614552242513142363784158422171365630823372778892044256431677216025891255836717950881853876872026518531891409256338268418610703431487640745041767164563146749211018600286605910954431972045466289955317679684300393924537600471675326570969628391687665423126928943781532351540575784446152177182712286054940874781429567346063755865706756112827652996703037192993234481651124687283204499026495748074378918730407508391350177254256885646780557577457224641797934668201075538668817627112334107808571122681892150943931969010509096449190581214212852520031188526208406609407330256068584315923108058682365674921054188360547202528062249866710106103497525411453963082982868257863400731645566060516971201964998708186425076531476239824366987140705951843579969678295694349335003714973291221623909665011248259074058767553006926147742124320123479727878604570072471564178365355013796864489113700878088195679453866341475122168962209377678753017212996442870177401411821355781375508266321875679280554593810084111581894635409251417844069699023236924370271226390236303227114148837733187114112698355157271243253088691257488439793965816754482244460161787796465479714412262641835680794673700059423746413926653747934907074919641471849092917642015406294179998671526329183013398667063608939832748968861142414317545983105779175938418967302912759355797328515328269831976387431145857162070911923217770824464379309859458387554149666267653517817936846936237634464034128800664503324058763206905374781601426860319438753232820709916812750521213748040130769806871512274180177521836940573688899052154519526817162789164496864533244897139697877181346494240881677867759000933886203574330278410689464505045733280344797688479753564971554599767689811045557343682792731428622462259902275085387183300697708806723532317549681614651110433370531696336918783155199926487689313401046992820490567172373693222545794792327626677682733364803857445790434587848331128931122471410682623352062850034935210132137462494517353978584953538540823408309564943825518119642596949997055772520737951496003796539480691335090109659039497567239164099360442080846376534779873642516072570273093302819431513518303833168375930564598957782878674655630281451349597531292919089452248046197146474639324703717476535520448952144440090895225723530490196824953688318520483601237181149740199301508661456425848584243028180040733157062468565097143671835810873976644538163309795809713161437230632630545009686259891631693126795032995841821369326900047728455483266526396132244300217271353168527654372591267529880896964024594178131859562899325434087457159822340580106698872199394897021363180092420866660690989835002372247029689568647751989740171087725831520586827983735310656361668325139274996297856163222385849856332006461368980701019988125636115864402285788558272977703158578579553350912143645028503019832211503392851757903325247560709384252920475858776826084175441295762737720441507796174738344777869932445947811530922733648138888440124535494386317728451396842584600891285329915588930518500698762879942622123296847808969937792208230337596039868448282341076979105233043398482025114001370980169469493555752611823377368625446806826585785534832452161331554016017218287656193488415597875823981573464321724421715908103195387395372708572090028102487131937937755612452914718599627540047637145394465061368350376252058787740908753129424541371630729913565054075204027371155200767093432858992027854973654222698890374634388262568438125804297053779176853100039972367700013915571457769630860840266765945289442649912924469812646784900969680065817354740764338571671983367351783042318420179395541993618765513229736463613604892561980517768912758573642477323665145841060046857129839647273399215508673199765673370848237374528986274173753432505056948566049616188963844165831721772638086297356703322767633031919684506353803564811292945901465035127587881440885908745070963429068747243242411547521966890354695444366964476052737399770710925165569185697809275687846857990276840078545354664245119029955587154161839106201621297757933887873017329409301071495819839332195120267256387795549211897935146159117417937279085665779927344475589585225797528019100049881023293082261642200935220033811224232244818925388613523989801467022974487985447333969241418485347505088841119610754967855395256938032460202284601913811877229743468435251623176280099211805410022056599388781113802802916159274062775070506660950486795909075547670139679002440955619103453349062620633260966505589100911674804871997301201732064002454087671122769841506437896439369854390800149899232934272552468194868793906608386261500327255048644918678135817642558152440676828265270018141591623219200269614847602998823509414667929538235901910974468594656498220984127282018857078366641822486234467392988377522805052883227131762936847366664414710721864932837175653865764187959623983847164947513941077692173540041147586570027942199543499243409018339707469764944053315744898220066869499800385606759942471420597637096391622562498328140014379926254840783292445903302847174694829102784563481534829695294969021359566788720574570366800621542883276037112045890630446910362879594539101714461407492045485421170246675609234734111054066797299460651766416411382863830882735183441475734000021520958224891954617745144500417619721018924646367131742531845574972824459328481312290495732883454761308165101845810162560257190231579001132444284783211680861916508163583481900155458502075180717142016229894190771978341535696548042063214970415901334094210926582240311734577151647054555736938023209315170384334355465358158037263963469183359583141260639757226698421810642893664318946682448640992401117530310997221312946020841195556469559143766711063345884998402335798644495463179707005713397119310118569592153709498902037202729187351952468272414926261010433879534557925508325881677504478023805765782489970203086371906603474817004659021503579755086517656457140031148145868271169397017095275591957154736719587718407704626825997647577317830517788674284452295705182421225560935819803040216936127367100907016799419342238248657905436790662957201535479806246620033055890283522449142848152738934210675525730504974493796337383781526770268878892429586636822109768325244526100514552242506144993889306466600266497672179931141063500186929145328752485443921057815677876606913219284089052603595331089462831475337995842122442698836626489923467729729340337830212234686519861544963162270032500373208809136971471559910896596614580765777183730924355036793424770314944350302571299826456177597146430152975969446386127459673144134476909354838751587024532312992112655273961351838445037133784250658485512807014996077786333238924548061761302816873439686560211279339431935390044075713379113364217394747303939877534175225182409129860889255193675348859074257680889499655721827436061294655236322232564162828566156011847620062438749954385533454539344009344739741903750920730602721824219721093325326957260383959659818175763628220405628488838133706103340808022395611996212927551028219813792246223499867999394605630910647458317586010509815679917977859975722328390487886292709070082299924879812960291721294506545434428394771994865938301104764277070461992315018700761125194354333353971234031102651174666737048867816864772388603784518924029190350522795669804965938078891623524327170285444829684972900552479578478424871609719797778172463490415471080211406296777387383173434411653287121588841471301481344672071437003520774760465221286510618339912037966135941731756304518422136126380697431491217386556922359650284245086583216960094767342213400532288681820442556317915438042527269845141972659469423056905125466512934952293328363441384875694222437199893621874042167461994257299421180821789270403717785343758302500232169027759319203505378872376801539455855130306349240552544735979501278153626144392058146516153702451871466011522942261842421293192921205761179792616501004591172607649258459803918715984937006939185512478744953575082459198097190787562245974290436600442895871937405333423319104837246196761337366675991452610941443708212097749652964284269126474732792348751446970150692566140134989233713078221291542822098458900426338761380020808756776717591967686545215763313254861568225259841288632054212091491587014813084048872146460411814998431741561256352144056808384188488686767701122254479353140633765857801847354538978209392223594478897957731392202415923256938841593937999572766192197730383984860748056324979693259409258567669786480982003218410083931004248651646568487866871469990521038550975464839774282066958057617644324901105831335772449496623306871059856016265349851097946473397702183610055377423228970263184767983976788709851081407508502004250991682730388802607801841860733784755783729092211205993149919039328887481098629887118216486805602943508107123933922695526566942629147860971882244136711042720969687823847436572800017656892382783949504787271009999113657810874378533777302554716169344031281674177958462318460302625225074711460490552146968340321332735134639505200344164575789031010137058231231737550611717499002788392093554662267120762778607874909819856464891952099027962752435002535961630406804384890343534646729624848838893829875265012052013032466418905121179844204225978175320527481217382990465150157922453042759586262435147266006111079126324343657169389113049733812552164991369931282511865404125779377174278785080664990672996260841951597832821686606519860400405347187210498720132203507085738706069365797113643602130978080886161114625385625605145380450856006219658133229660670199946771302615741639924737958384081345999420775321213604923177318328391398105017514307348563513672801818477971077621743081808701065599762738244224009927363848984814630321819816647903551643968612950749764017447538808863981030377814178202640002473782351292739866017820064129234435288963382752024862642252178382044195318767062728141351127622220160355559262569000892948220381065768948227889817732038978939132802645151250597927762910466392892075144151612379433563844335079240070722076628285732371073923162814630319004245127016611496742935088714431071722988746401310712139881958032430168939849651062876874049922741097315447386548241397483942596635954341639388627972807406630739488939402494948467319263156029459597950410925612694754928091433319167317022302072157979691922704498098973893442577110041534051683595097657946746260404855838574955839547384478169802651190268295590492528476177245171453248604168150253053352851725780238124491217470974547164638090660530679439178835284509966110813034046124624370775616966430630053182269539833188767884134186344287888655751533619401702586090187431359656815908360499863685372400661104306867441206156005431127382840269223478044934004325474598506186879743547301987434501754960076604981239198376089609027959460587706545010384323716214935578730672210243546207136703012490263009942899318015042104843442544904050822044154428896963553316593526041180897537725325503071859579593410226023685122085456735643536161911178462529431489863370440507555908307853544434645322293409422633262728119852686072811613147798648567950644582745934086421507991651670183324165245105291936040742585375540645061122327309607251037040451249749783199811517702288034955882622549932253186346007576787002021504697728586721847734802315447389012041747282236448715053613639275424881418100197734962992502678878766315311173150471716147499117684806309113221389969450111820632549720254317459689056384732160484000844626302179025064304278060042635960786645232228384024928387162958599087664452333737851713552741121684421027554282648991806775447679895258236433255903232240439957260537190462168062953303691658396790492381261760193498858933279565679352587096942229537642060115743064397959740405110232795953515406081252131007779551672609847316753439024990697398507535928483931669670447151725198507135367674715013772657534480151153005419501370295455770202076029093989903601440354997260623454217628959188963218089142092146005856044721359549246010187695265174546222803181902199654155048956355183628534206582577703432672479850897174133885037900022978049865462588221414677660096670903152007329885571683720600357054948530557841823793169194256811291391299603086720958650819651392662833193293045753503060767811066530906989573806589597748433889385674352173108456265988468434748227466076435735351934801113341239383604395930339919835356241070126602732013258159639038494781967041439591766703913369479638074789447055874591947468765568680415439398984557062720691801269740069198424277073796036184150064649034585677947230627471571337510002878016130125485963509957645612386208493123495126878750142126451105937398259674826078970973796995045795167745382754001994607734035827657384119438652390452810086923353915294696890366762626510150556118401422963846483714707737189404259361659387763682361831440179265323721922212081570697451083561659128788357836122892429248828369729882513977171506369757610090120929684108797534673865552227050651474213497953078651932982872213525950234552468933098413905672046204910092438526169010383447988825517982101049306503480783555849693856839239869653026687041859917167786109746258809179207573494088819214777993699728050557932848129425015755124938843362379212564581273702592766736964363046003233821995094056691551913789810868364312996904260748711768037385623294715916680086644964072906990762545262168183726633678170109478558103454048632284491198634743675062207847430501225169849338506560278127664825736814018132505720245233446291178020948524810530023412554101089103822071587734332199747628757781339293421103162334525381381811281337506831872616882044470193630642372270527823348608750189275795799495291213166849067166818736266309152977991099053364158006975384954958157103772887493136284345201192940763458275081236808774472874347850677979656786976863449324211050370599672265287498031000184834942634170611437074825978295885629743227084002639910294962322726018148666255655153957465261521568592281383480433774674368049250393880728626365039813424996639654532439731273939958144585728437770939885447290970216144046763184570129191671907766262062790760290686310306631739433962997358027681393522824458464599494099207109752014719446041123590751632347206302531605287828442136316894086701093640404045588364936725340884578364597043960910448274197046003981528562537262881355611614704933436314771757970296808453671218786591693094200401655771834657532060561002125950654092210841882762475839333735575902961312776778077414255533201840428534021952024490072841543490552611749766399194881828888557421357996605412582533142092207375735286302212672857298816686172601414770515705065070420471716767381808966785262403801997236475109312982868894916521297274617150125782485791078603468295326103738663405963991615808079632229047160692853825490301873650212808008329920768532862693829532070563678487091454160327136569322348321615925083911969587688755684442604017259720402525062197372058632797865180309882666000291894719819649281903595924978679479578562635029222258239798084592638733969042737714509332080403009600765005601547258251990436172983585549666451153020668756866305731617203135525637662432858900153275876765104547500638476298614242752873857971890707971451023180219274336486802631683676314040073860368791096090742413612305373277224552668649659190347145818074901354371768880788406992973705159750348432237863043067496504342827453066611230387632566751091834228059395296060384583619593145950184149521793265520560239980868332898964598831342957905945044928821646011904154738258887468683616592533679159312681343942236220439097212411487891659515440956599262523244146070277696312896932633057149922887174624654801206435514909587672642357909400085885976184988786004406007319978327599728317487382943891376121566971730137269378988970590763794255660447135437832036581246575688950409397820824137477515735668283793706382053707822625085755120861825041774131669360282250978270131661077332183364902906445465711249587869124732598554546715874803819882602473708293771676564368522291500401320646118607017064614219926381455291926513960735403306316407456665593529194098850722079596743010593189508018748846261583686836820826029846634688385119483330135960558077459265173736487526325602314380568280370410497219655294481798189294253822781244372014912674528686974922560729607806694675374889828309646513360090359688099705916247410720413595659007955828285679442988160230094875633375480197308453545299224176628621952579920495075632808056805823310908977899668648803491925840793064947975184659196054274338037831555934225376202970245259386711676887163817835012844616924625872475919494138370369682769167368664768753571690115513235221447253540607352603648074107838739979333645480122133110229162966007015047535935330143286178714455338139941844448474828912154255115988154979709803772428695038633214297882706409642088238907901929492518834178807252473037985973160287031666506775978183546758434218562051622890841347552358311325867392574030143077927551727824287307755808864781177892138424493972242528316742364576930055683622882695573983311460883078628852142961033489281903896788360393740340148883121246888178871133879191961492145449829674330956257487870324037501245204419832714959058573917153862696004333591794963001499367322368611685991309467335774538005868057576953102675620762631687195505133498371692656533972252752422018542454094906662678089013434969153000325183040923373563786335507379829299207076844541418399788288327117801125533871787839830824758905119278244710309159517492625096846712082668792958968606265199350205101231297842495933325003884733613252326759833287496222709874136163795630281402758802031844154787710534503160061899058780756409728084549416778655664250675757336752132392834096669356991225910198249203858901154603478536820280176126186710867584329777313878817751983333855091426770072638542296101420225196820705379186402832014722113801813291714008155540411359099865499648790246142279939938789783953788911902986652603860247752379579891732222959450621127902580228281385850047222788693820273781645477317285551441364798195524982651042299504497184392649073387168932335406138871244006629229724609679261761472199224134762208477223266296847021972018817175763932946210455545566812975767688657590785215964317215904150939691529190560306589025411111538093759835416714774804837688696741779746361196523047791922481670174866890015025389057111565557012234955025673474120919814175979145565734826926975909832974297781082840200946954253275392012542578582068866714871221028356455735346979448766387085000936588858599667166973226716306085715912171710027339895045825226981267343732879239609044093371434662171461660942526998015595552134835320292961894128070809850652597160794965729783785691707761657495267544756378561209519235535998991113640451434343517423478915699298846782388328677045131321811080659611421480171154625934425442849687297667416162483341300665170202205807946530551523165519664541132760021422749837161929425726496118202482303104336080977786553068213206927881491862484039195793336461667597167096850978708553210446618894768473963051560565746544513581911606214729490804732661927712653064685007381162354046515339799194985933101866731370693990817282393062729033509915454114060088786065126283371708271882056574834137018401149547892168955042252487662351883192312120947103716506464127576906346553645174449270673008810497371946607393384944071868795459449324602653341828741268492752027023591208111527355570855497696264159792625519872160406294689416786705656850530935419621729852380627630223659007902807027393140065893729101919550839979714440837917271599766384776594117040706850969643900660973005154412186117390006724605361750289725942288352223937969880679987706399672617836841533817808458757358831572606970608261962557368242286712035168439299417248853568954391473428930997558671988591738916116359223135565953253531403682172510395520224156615242296940255095305106922252745373713439082024382485883066790726398424944891186423259522062219695567277380957360960036704033280832579537354831250944185835441922651845389016770482136005451036991106336919598849116515346316033387458334246861770599525006783288968375650643623408091705143866358839910895260534374961080078439958633446932493813684182358233910327465752772391988172016798866939968698489956672193706547128945739048927342330306846394635615692855313936229222919807858106085379352378512298935601200166688579612593383490585650196821387402965172103586638295626924497171398907981512938135626346209478020603793496774733342830583861758583807496646726143317281383200785478892450216332390096191569987407582610931414501441571431595784961709861855190335982055069060887029379044790786230845536039155857629352127289384378427656194746910089833024210261598391145239861808390548374936903664092776407132080102947313310688141093721663206536336948749921338220055749460124569872358531091067084415957239326114060633511752399388075842011879239567036321233262344507163472134132715924062742180245234789450388714315643611442679069084021540876786460308177320142583437037312433382785346252060794714198184655223138150304767715441084034137570145570956775073031832988008294831604088899854857544676458704715331285647651483289583276596004645245224687108460970557535356203621058372493995438476263817921422819082211878044182479438002467794132883500492324976056979935075851825281812545680836814638253612883017418796027982310032529604748826954744879221530648368063104313202451155813645199250065336209054168036630505554178331850344412534281723478848532836590168333592814904972668191297094228825927648055552679925084219138301659188506576646608598045759888542087949992209868768625184570831270876780229454266747417835228792420680891626363917608195282495365194342118175059304852815900339015295736304001202906787614610351578712054082614997486421726758747995858320686586564384934915871565307991495807957840503107446634087064126454835937678784794730592902239998714324259527093583711848752962970416095372473913882476146816699149000841041654904830017514386147686268181663240114621366332534328291670209309314637584575448142347466294953632458786293868313643922560370653219505126376660622744520170320210552081408036241773690403533602618393571181015400257895858590281328955736868755203719542902095188293188265198504519237074214005177120671867141870400681874357701081360897642060890918873355146299405731347703171492274454721383240480663210432869110045685781025096047285670597149432982172676456029611571375891347544047021109486898080941429273733125643842849559227441630840427099348066369338463217465733396974333329398742697226109509010671631891214934626928947433582748070354220244941474273694460197624022356214837648738028961247047721281090945850620844122812803617325535040449667349174468903724237745459973585598279294257044382591797900031315943647225701924426192606719079157710594859685276209388289193291291254731288532068111743111298341874595533405296861908037011072087918645700801529770300928393361173340643697479042119152347474276890421542837104897692503796272385979873107006690215144380985154213412446429984653028665619498599095448569344054549684165057243780743052029274005815714826167893981920092877640541946369949338524112227307585878527797263891111847033266081744654788169348800904015307168992413774680524306520605495969475723499709459269133185373406971687301560099721929139227221941518479311978537532047892452442172187218130431318783270697375745163586345976699602344611953522560010152341035930145289960066030725522155656490323605870124371767020121649712472264477814097828134683372308086923387537161412593401300212424899326549372200061796871362351211932012926416926072552196352414367183756178205627314276832943482777467008179099300804083272501418878645407495464706022467925095823561338517799093668863462820862427849268923113140007392670385275627873108097646494826516670050796168578195180864592607203596423401760799995144325298726739491976762658468059237797946645490568995858119935416558776884049530141727070688305137436889613639072364078417703839787279696701210263790132270103347436131272029261021521790660490879212793617739112030988230011679724997444636923572852677047957350427851852976812947286473668438970004744467467467755295290430618419804753060965623773520628189190432942571935283577070217375663166018085483763460302644464383142896656431018717749022706195802909711088980269335769716129364760266582663832108467801704269742948842026291879974974030623371162138140004048972173980751491273887903505921890234149400004982609597535376949312737973334157278612433062730443691104564814639884276507753798894641621859523268186252423787252051854867675342776849834574504789611415271480212678404916251049084997624883767519582740582814199241183318450940772294618734663089241032188558518914137072624599134450861312693872704489435558461353856116817393509991426984499037535236765380841323975779494287346903581731022515680529822568228441645331199091881365675247674761568433643319661946697438079729997315836230557834844918908206221323617857691003730779467813594642926440323397953776309373895001011884769558487616669405601723589531505677738687022011626649792550120244359576599505662036017769489019618602986329478725312131561612645975614727385216343530680172904980358073746523882062629187665466135231615701296311637764492359262746188223036907092212941020487768982091852254721919076268671427360106936658971923746357105170108852752378451916649237356226835131055501023813697684862683580423700384226700754420530530444318215115162263030267239868102997335550673925430615748830211620145866540303884282561565513496126280459471996396584752975029033117536126295178089102485128581015262060600324864873027758703565681312270460318539940714380963440750262861089064024276670541518241728955904732847656239262756148816877171502668019550253654800634610302444244665279663223524603692759711175004338951300607348480103121946409372355436834892797328452865425022236810471505182065881532357724343708608582330669460733991107853941949320004714733762436434695171890609776626781239072213887465378741035145051187453103901980282330113428149077297741747500347945700687085603065055528095247189577384739971114776556491507645228252156481290331151884655789520461249597391515898729907583386598655622799003515149899577410137715532568064299013407444721310633015860962243622870981551514212993121679836285558851530929252751927615979682053476884490582482768840323317358058683754643180778105295504064059391347654530449284159151480309573013938210557766227207478804696314496145097207911577176121765046045421924067133485583192231297968888014478788565552513982079422353699993621199403191432932043500723741880014548583538025127758784583245644063634227553794424483298978962325871293516769484560947292809151009277304840492135353054986075825782907091846096395747047763970224690597825399650279511097519548188839719000698009507591293487884849123395860045228736601765693012920434633672748069451946953755428137679865430015807608861068399954322563895523997520989406816824444701368584532688697755346975527246110153029250674522355675380261711938998451178717999651535667445031395643193466377923865045274203863543489533999652582745440812665423205609413544831982420522582166583720705045979834169934791501862993598029034796088695028697129912146861024493725635230557085992109129617574767945975970485296352669628651580540359790191430259353213629194978550221558277667810230024921176208673751670855467454746811613635736184800688753274583000916345088878319558997211182161726144754141932393321221838163425664411741522643057114464829781048969658883826946956598258063027130087146314688604333924508743650978350997542323939183061204260571122345391505332076002648515012817206940048349092321264515892871103420894513931065117903652214815693368651157818124268710604725612916226408921660757125385564170349625275976404926467498923357469970029817890817972323369115207710448008859668206219010359137789413780029376488626150957623795528128844855753460016693466004755410206192182344552472941794568069703586254605212071511154649573458740394334510812287713281500046785423494964615524807449359925700875860970055362782121571673983725398835066888935892410533094530977768292768275932055579598422525586787514158949696828723929377170700981804127143481831394474596492360344468159992143343797864392999733445757699423113051719479555401971441259281910073930304539192190276565848068135073111518183524267920401618778755194605911004308796533270057837442839131544718195749291371025424541584812487378743631034735265105693380860607316230841224925708047977171535396766508529813906461615043854270801214283407842271801665371960629030449077470621457440884989566789190961022512557069787422556913950269414291739147299976714355059802015764875377852916308705012207584986095033651320773855868905813573635951681867451319243313680176557206352593887219356544052990626296683145025445247921755197502111367191226812813732736177184942838260888086009276992874446002703670944919555174885453845825130174035506313171129975684967159302884966124654687747908561850182093806046917171696969265899859884864855591193970265536033695103776848840808279495015285085661051657768908889196788389472282884620471933984148696670131401797837039589779608403291319382231122532931048732936166035302256138868131663083450449054702233973736795788740077962141069996136537703377254550901021612685707215629914692818393255168927641540674165760482584771037274027000228048730256639362704504865758231060234335777069870039477271017512857285607377642083048041828467227688679513803946306374208888795737746478999785214458535448241055269779608775373433727995487584675483586566711147293140557564663323448857142901221039319777474633345479702468443491250749289582615048297743059544540154030396732934503014505184457327230452766158548183557546581697858611342932749636749160874038011959537797114657846978456214865637188713627977774234644301726976806471976543780231976165598476893288186523502361792656914991724721082464170288138954369721595221789521118717588829483375673985578197083456944414331055908701064903836478973071069750574265093792723489489183188819375732521340538292468401293402367126715809612832026117539263720061615382981189135884329878326691984013727060479656752092938390861556206566486110553492027521252257688536529308658939458518336235099880861331146423301855224736394300036766549787092013319640181268664040044367822642483263811259428324485182565413304480983416352592784652888547772153834550528011313597717722013187064626827311541728222454110944691839674205418075296783221692660143912446417111014730090705774377536602361551993659556892129946925968031635073047191026090363307981729421390086748118658547138676958551826833528259342312274965017358027620012059233301717244820156446646729682096372275481062960342023708459105297948387998410477842738721357751171873084435283896678601479382598039398596384853227062209429580890295833030553055496346954570593747447575252505089646882479121831961043661295571087661392385460022913465249228904358880341959143580366217086144365348540860325329047245413434145059832892778476965802700294053225522440161541918642277914592538659372013051017487755296837556288728216188183368860071385976491846149429361560562383406219348013469924701677620398422120563181294557522022247059620674399893470759733464630081683105929687374644552013496358368286188451281187433171990092107298634787648231650886366419458023710572924925742415038529155694628787882122409000813041332025168048809562331576441981340998858616902646265744768247584091010801976495731721865112964970954587618085805553016334315745086452201614155356200182776598042660653076375322872620878328653161444609734016513496700190827381296843016601089532365048973225253461602475468930833822003305264627146421611935462137358305777095251599313038813464226347262327931648201238544690563362375167021396337609257026506477576573569876307728830593150350364627965275555778282751068729800430744553560580730769385009938027103036848476519880360860774687156787082740009184018929896640900247928187374426952797265910796572596453076704893227115745371145562027222081503829715129359688795579971431043494177823689417690790466119040592940125724589334507708036817970733183770356693560139559909293390957717969776934406103749300721306080974016453139386888708838890756177321203052705768495144957754126902933246773424575374218041260553542642485885189070973195481666062403910802357283538603236877844456646189853828655441560525658932920350665875655054846316788432390283724671649942939979286461410712814760476240870969160767093402304316044953096128907714458037450657502747579074861787202603855209092947185132176541734981765428499471569957055443278904528329301739894351261115058909144876073780824341935341978888942358027954943983091355622429003096611041309109300649959404562478284573397094061646558600851293771646259877024038450415738934960500487330704252235388359591648799578130147812292416518522000188966451745410936633175418959265466057439876176675157942178638579788123857180615359330471868037844806911933305676625782399614805191922338327617758812259573411443013644680574248876704516740100557627056783800923972497656702868232695672650701569190841077152852840908389760918158774993523644906083527568647456447223727430601018645003312497111564305579124552469056040443774742763174198735456668426007319376415168094496013703058689619016756384041404461456165980318875784634144547866577533994347946740285473587467461923406127772268197147693303989375724174013825931464795114734039884075710644805406583168622509233803115777568781532332118988607713844575146499303464342252409791528785632343077438925523159581204709968318476957373026377700330513870529996721852148500679714585730621883916503318952329481363159202387255926023567163517706493269058082426161138452244564774054682642927427779973533895885401574953901921024469356312737186178120911948747098940456966623437661868068337778281496726338398159689645581281629305077642199965328372721948913034228718338596503760866119399582002318927348102304817990251619094027176305021620293807527446525107002384140116048752028347659385102734862376614959779868308396401172464264297730717140571518644845101288488662748364997278072478886339000685782777398270254937976988537313964930778898128753156398027768651766446032172874967548032109330974326638427282408366611030180096360434875668422574914789150113025818360960012184766413702261294333374048809364286174053231453786585113625397578371987803291133106337942318945160546536424325447939349539597274066371475563532932518287783225736574826455215914938987847025437093927008854924631496111236270751108125560185641177876409026782206295111774712435152565846281786644181299606528991221823817784502623246406393801058813610370928222643749430788788414088422917495289789623073516896404038400197226885682794819377190427764047323186747272710880291391280543308251336653528887828203039011101655890737259471053670511686855374149458108497171213702887461879559003753700934228645667137800124044995897545368945910002454653029213844461010014356381264223650279815889211544008310367896943282960910863091957574503478172766616746819980800763561727308809658522407632592243833136381644185906460262191270722200775407067540247376642037359768483277654444086962554270426747244109787811152700540035986172532136276978361080213252843910121901317274008709729834409170090026593586313511861084102233429154213837350207475044118018256945894772103877608123431892542428574373250066892647802117531244726610250773941471429464102136192725001235174797804584313453112913425120889512854371536859373019700068324677144334625205879131543762995991132104704335687922704752117536208705177092454185918533307179794527360086420313243789433483296434834332020381287379333622843744069425831298388252982131202844549792263437879206424836755683650799463422662245676369992674533686226100383452052180154689334695560228989827920033366558354784805712905675904837529637665154054232293105035852247669839310677266961005161432290852306044398230416636165024816683560349177915672801079266340734749372647083825342156348412744412102469283665207370798399394939311288130317781197167682291201879443614324676823471860131721919412639071569056539749056649391021296545070212716256919200306679831090842796005999414012593879704899686281281243670256106121360595910207361372366472865238793614517319431389949568469383730935447708093446568255322714924456534529291677878755204880830720228827251534431562236880756437117154724825111849359622504798915462548608121945924878389135179608801927987603252511625979952951830593533866803882037129183915513716407777073545956633384904376673528653111979774440628888245361984935873116763772519786038931673293974443826417490282049964476991071288131479398941883092383901152577580450469380674397648324825790371920030244079325084412728366266758668967160258678244624274820159767110417305944224243238424350132195683228245588590507429863839186369736284592151151615352647787163087820942128416565883975852980158807433372710661792360579209158164575652816473263660763914601092101306265454634429019540575570002674330112078290351161461160855158635596200130415727626976914859275966861843742121734002521557755618100760364430287193725797897319563315036274494801956869840558284425087735774980656912872940310123791657443962962617370137945644549162233388624807902124792289832425137208700966700863624217185152588382615023724450367486817570664097591256690281031407972414406270815788738488265441386068618365136587028877462218886821175073023877525682207318575949488704732721057713689843790066207819617389711422781321117186157371648549967035958884396327501828437724776965748686380214170309198729228998125531785150427445126487037898095547706191671527561256486350007815890000822172237412289145319156116401841835507956454481246678800261498699154855544589188682402693420206067555292759730013389707249643494610818661816855722849314837807982434996201813217153425730398948624669805228428650794784994594956274652470532991753697307995023959326538064390494069241128766426773212281082449871627302543974612331025520036979956904119620358100641020939347280825769852786876038597239085945022356476999123009045450910397723115116425395622107299909780432450580354468862543089159442781089320369370777853821576464772482157026580738196112488439503222104128972600925548176271872073521319594680157977101882456745556969438245334983841681893902587772290736860740933154721852777210561721222077686320563540909183923594220385475890632130540432683290988466097207212549810909846193049451400595378364381488680266233854292570769916415532901301211570061835980066814809174536534626213365231500304372615477432549559582632550214413984221575818201480924244810146607511661485931602299419583393582835180189118609978561195984806723412398877240819222053296813028383288572469420863936914530161569230612797276950578689206385097778024590659894785595494324520121398824010195573031203654189634169456568136333520928744454084394361019913194436774459513099819635683846015127037403751666891333443522271569524014332088257331805924843989983236030790207524523769000554389145499485735497201975025443405894801104121808696102676721137067839367128671775732806161160634671852830262203668626320346080547842114504262746401237152550177930661918511939590925136175066502957434112031724354592703214269597670537643632420359000195596318058082791040143921205755474696121727074269243906399563598757182011791390311649226852638849890393934721430311470935923733730281333162478356197544240866950858821379644210814088992718066546725442616533593270204027043922206352665226479120011092817887621322653526820122508558861930556162445208308816532088578812291370596331559519529231164111286183640339386145591773899421797115873305281959859893778974727255440237325429437627185267025416121708492172886391944508223736147970986580492160348818747736684277942240109458660911979680845930790773616495903381698243659643013933517460980282276649302671441890788861959751600590175289730197990148361803751963962517682720133637130047822286356409603568013961213043451271160640547463564727250012158128834467450853322254175736236736349749287811282944147164955729032659435997713020202389813726642125670652843684395930642129533615128424272822500341025378642292098516103637536145975650752995259554868243719687952059521229059408508975639359291629634466877393210844199465493866410625182193514708271852345844821222759694470400290042212606647258862540791600131423580177979793411237455540043679339044615958511799001452729558381257386559957192106146768969890154964904539404773227307252656894672853587829094431513320953537130272961852524731514471016796287997086979486315005851594187633818319958005071725546397051477832826453590239469654616804414962462446109594032659665575348077422825885742870767486896667318545446386761241518178422735951373844651752696283772580198992653077338071920291925193188421569328344773864425197824643204628311770374173518845836753997586801567558262380911687379991774167769664948101723909880867581086910114677089220526860960751566021903952610984424309515236355037592058896658429328229433463102412485549963338057325666413627906905505626447372700728023908724816142247503826022287192918258160614964811868758685217771467865218316723917930082397020812215172310816940682123990899361191142285485534570971289695769667421781894637458844785568368347241687028824680427705666685485664272373496400289026930362476768483039074397456923015080836716253548901922428820649478319702945424613599625704649630002679082716210904687927144702765901169893970736756567607136420778955062474299451165996433579383706513133329341352957754997614516446057668138321191547159171647227314790923357822250041578337709168837396419923382440943462025278344859183168326016717827138932049401071959418920776140089965924645360230525677713063684107630266007265447247996052120024293251474689656571154817046469683795304949754664621107257623031767110275047231853947880439736563857680571728456045810718613269925358392463371067668820298608769756225377820122247969723341097448130620380371786027790981182421982614698082998669090902721384884814878591534092103700089685391334525424674893763435861600064630710867645073984136550371354132433007336693721839426107282254941150281166602034491290648312355621057687141853958949953083467653433834798099102795014285441291716947033232936728645321997283763166062505023197300886529962085336443869489139154599868739921889706541851353489216627741290413479386565249026909570584918758374949332104432471425875942717300177681351376058927339677085687240424558915711442992103708097240862538639175187034081422836413892605990108548705750501731184770487859532665387546856556649978909325832443227756876287252781086668114949090159592289536995896925142642340131602003539092457903914508689514260256739244279305568208296018618735684990243833856483998718523718903954574737901157385766591011131800364356439705711029805020421311831170246551946259451040176677675027379356022552483808722188645257967890729506802180126751032980230303419199162595938952074031725553082512808888531645683437624585335811504790752428575961096204757537721460176181435000881680254087787947779944485710778153500983289514789316714628928132861454885913200491931836547271286762392256256342005019552934155448761546828201293574607289858115763402050221587033889792268409912777328979372166124030916859457671680833500194767810773949534670391025795364214661693136156706750798375662590869751498705722655512217145844629860507850861281570760915570481291638431298892607469075107093375747534132718946906548867307819974365741235289136801112674750378820319992140011035252157470777956222124168920830779256235430313179243694125806085849293157548492971300666114311135709829331595626292280962445097110819003137448480684508527594532509378628872428603779393925242179781372647114033184679629354990784611705061055410218434300947154393941266723561503630698050671005161853401610896264936420167288120215987440100892305161561741761067385427385166066545385455585837040412858709818218907465162112764452490520128119850000168127084877609472155501860695181740199232089793127379438552774859022984791196169743067900099296536031166087948578127224931993782805818777171341348050936170611523490575117261965277901170911810948194713803520448374996840783319560380392681969179082240174536438380438880053677781897804006035853388441621837155155207601988836458497626110813342291475884061559224930707665892583926203815318399400320295033534240146946468300977061780648668000170285018532500955353658258157540676921998478925047277886255777915746293775508868453855614861805917741143525524775981674729381275474370810911028594495378508343960198440291935155165182232860043915032222864329511000103962699956675154544304557986343132530185385229544590699880743634742241774425229703986829626379290303845225123005209772883340263814568585800750116137148109261586868689042084678566383783043694861036087522508506264411340380764148180915315315114560907580945720139491953765631585963084039677656340101612556345954082721931274346887586946252993986851978828599038121512676917000000769891859500780896692020458123221719258845713787516955431058338121090466618260721923840402219384985129092394492488279982973204853088990719067748373141537228934278085085750079713445652782049697189567816100692185634377741173360974946766380764877141964289768690329787650481406492290200588063036200003317341199984714601580538741778986877713136566779108489920679053748546566005365190335585468677322888382917976276907559358511938730940909965102721411619738590271455981574690675155489384975163799903654034581276428970072575052595997829263263814093294323468807139115353876822314474243532506879274177200043036138347822782880515556484101839946813871245152154400981104386245072800973166494096966055381236290508512204515314131703121817571433872631143458083172959678212962649877833494736456242786683976164369918538649733426500454500503157909137822741502920399123344313358120247501663641288526205031699852385942750126187764921846213368848032030159988292033002478605703795881908070146375281300953377464502488052043058920478153146757374483183584177931233784802912611918676652503841408547888524917738528910575498623359053322191884128133694876681863357887458294309524066791774766733642135861475951845270867039855161080369799197544002996543585261519102215715339573607926407802095602454000295103507012913181309808623717826503484685051085206453066177788404859392225131286938734658594458284208771908969623526050565629979259739535187814251854111361832437888849743081258971801372924126434149254172513885295716736069815861069313748316953559824098196139868644520120990424211816753210964536344595113889800439235508927936546761571947609808945170400949493756168887590661098826171853201546912145045830549522519754040250897180650813713917282569976471975939144701851657367324733243524810809527477421424161282749423013312217333913889351586118400666062307870597611204274374621295785645993520907968903974831743656320933064618871786380983965421766694694572875567958281732370186742452356042463172994843442670988855511836492153473509003406350602161841723841582459709553254358763843274370900482862081109207994039819443109948260371817177492386446642802831686559793993934749508908060270733922523799707325120607837787887750105694104361708013777731984252088948560057610318302984588395705511256436966040557588127468742094976818073898932467862090659436380435137524597909470758471022241747955374579211636315762212211903681958330379132330482338040848784824958867720222776896805402040798502153037878964938771515651790829961290899987631003323022087466895476954928016210199042803899177318841199799357990543284069057360052279515138109127702304327347373864221439200151862881944503214815228221395412928069616647866475234833884026806575723580670665831336921017020098784899029214642556921028145628356795025546294202548865101255043545687509488837811345169158295209261055872070342937654597350555911844446569413593104951502954518047403691309001264088286850000363244477210682615702223615831176565613367679511293585370581528555943181862733809236548485486460888130436387975726951926749520204336038256788242504656263850961730221280482667993854510417221635982537014561755068087941743461292771902009307384874775877319987887563611881573598189432103442919954893517958039233077791244597585415954076216605115427456468205517955818227448235379834651962046484253318440486117998930340530793861510065075483221654917225653067927538512742795175472728452606504931380488840445169515699659719738729257426231841091226084370177228944578785136796458825162235914545847053146444151920177545349213844517312281466020766589765389733078841156530259592668932115815140462895964594218247576398509517155814310594802044532930110993974310340687542793543228641129407831961567840219872843403732833059081378095612284199798768831825569242059717128297457281781973202762312407222712149086149551897835783606885391037723797841697137230029309896462843153368835274637418165342300342363987301856665638626002307186099582461329864128359461737367410039332804329288752310125614959233167464284642739381303269406792722927732860514376812431428618012246004073296162864933995241330605188279089532526221918502968574229473948025340258516565713572784375235466898657133408260003651813116289245195903024535789331610888416478904945111125913646954879172820662171680954781944578557355276531649544491400241516993664255295044672198487694310874287083656486254397514628251251535107376400348490977457052539980449659348892387965475250893221346326840246671982690360073791033518067395874891037524395092224976818547144593505286941262576132777966710410479074704649838330166124081406352735829014607372821312247513706189347105179051250250161718051568766574913083236367361912065275500025516233852261098303885766555760051955426015021616146704780974563606409176348748524122523444299088886694955780074614053158369741124465756822433867265583893148800480481773586876692763719290579951930424149371308641951312044207538400714120021657424009192284133677179465767556318318242964303590607085987526703334835663489387583451693779038674042411831980167116249331830251815633474277143659127294057786408931474263128714075969663253128286744561763757489523978451441298947925885393800419258627920390366980543445470221279465231960035336994360466923151894148517569632651030412029928835066164912777729751479090652394816913533133469540266852158409167595627146416482551905168358260443108923547524140283317770962536972626925235231516278504136658766710445477587964634473895049613392690935211958924339785315672616527893966980132216192367034503328797487501648955069288220197375390115106452025923455324215101561262306500839596771976493251802035811717228741954849415500278588601903950279003380484131723322030017335035582049820683716046359392911974534493948482611506715380598411904690760017471597692207763146279737750432525684975191045738271033488621950019894055029129685431649074945821197623833083030138717797579666658940385817303064074253252927400496461582981971806420406118525195464996144018133671869489386410215230521876421491484947256609677654596763982066444177589242982754502908784865107220714925232542126083394789006805128341037003026091494095893133409829916908608154499123033711856883763061841771560061903819571887293340633021387727700525104525649968114310397674739662213234957611357454378255327357173496247512334006454754005844175052276345393999321942293080360285631027609230459706574242014606050500937619560463531523216482181284533119635356150372748351080259997815628383052317715445716367444905485107735615505498565538141281226811699280049636543383778577027287532457150759884817812097056518224593787141182004911722883400230133506229499993129921104301266419863642201397956207793039400419906697498437905101686992942833270562728838647673836258663279392894791848319753999374149145429253223219040469329259536324426265399857624505053947610737785414138479354535814678991018299921150703469016688200320829635821378390377130180079147899639930508578062509858554146276120230338526922887062747139859344489854707358470293172566015960840714357462943001186321163745945110723000725271649120919491303165192618047671292202674361352974345745048913819452441190046236012666149995350824091997179191175766983748587423426478697422391422324800556774824803349127441266492857235074455134731296664631009252693898182606457696988401540765017543625676155991016731671902232302980189866852879535910317909804316906478862743719647937418701881433548446117309013542939126669201321005568566209246784547666742949848560546930363306760344491945055612694265018613664585980402609621569333089592166931175644826317644849206457705280970907023482432964897299973743701826206452765754023817362438221020940318167786643017893189231231684306749828735907753646035096395093932067990819540894497905713498519870004523870282365708412358768852368109872906069996421139153083654247132596665766077649472993167966551845604741280726335881506591103337608912796688623349283184502059944135862704761770214190388463004319077612782394114001837948615620271992663957673870406526004277711503854912350011202871782991443498595618661719118648312578449517544992355643203311466266120954199904628448157935128943826016085822080467591835198414522780462309435557608665558920874894335745744752122837143629368032971774888781256422176047931108506838069418140493397214428366255864640379828347544227735100360314835915760825210595987486549990649315163097634555159423316763503986542324765889101844234298834200563371474788506823516797068320052639505936624889505011858873645378765045391920748913806533210241708031012263792815742285825110229042039542849765711410413864526099173621791648443354385060281071748368724233472605655086767744572438115519837304135551247722734789544885499247914972529194238308248031530520808361178042488960732144706077342420779642929112799097349170599828445701294754598140538143081929747027802649470152542630919390985136494489548438992388939639711434102998626831166935640331537692729797318589742050570512590481112101741611326258855511709721586230753600042319129021782112605225004479313864903234090502083422159674351680675103153281919411809436877014224280022242932453774140951933919098257493768937084238986078228622850669746293093699523158645987552325403557381968196005842532562204403063147363851181167352414347374265380952798394017078714134079091545451370894618898679514346110836543439626301927410319332347638072160364548604909403585853253543657703170544389483794281932584324221132295651256328453706791134398483830804166906545068678119342709033061669360158558703839103008010675914062183627681763936815455310623328894846200791942479985642383326300306569796812242345761839908520052829786858630849080070358461860004506160564400785667168379296904196379195717103642958062176475505823784923891020175174729540847781760776913307192695943114303767814197371422135712144816346965730341294028698436708381892924374069954699287887805706988151655627443399771176786268439919462795209191288781855461343632243327822357791493023564886509236672415701346817896807359418945275425404858832305998634387183115952439073389514558890990855093536355253085623534034267656564683556137106242233581308116640018489546247078429570166642406201900235416984419722887589672672341960363370958424288620256163624467593103919840241416608107993103087516528319705514155206715258114326972461200636796833483087017229188393429217970367383784123035844567696145462056157746566773057195869982847541031305837845870367637873817299638941689927622079379400095962096870503446026882215571380095798997572414692396439741319691204792148392344978935513873984531521957790299583393344912627376675820633076621992419417617426476567514801525770918926079265331292008208903950289596463022524312492287785120236606010116358922222010954148150065912693483660752881539339471073494506941764176091268160882928072954514779014081942039435940540314064024051999060921231179056075361930472143411742815250571858398843622248628967933885342533410570312076304026884127633479564400090278973828208453954704847510793687534486872195290950409840953004903973822286096304120548031153950269128528573183172160193396872565680196931089875577306451877389283421388556644342885467342481940527297132443102910845295612005693861533004114942004812359040365225161550877738845830598350023978022109582532081421407027429701468605900714675419741899753110390610551320917256886483135769251813192290339895140880475257513609351302812636885620702287013556837733880385317604993394729584607924345843503243447216977239130200857009605210315307200666436110905210009011905849219873317432960871303340326959334910970254793983574163037458040777997275555020945108257490962643394826106123188200848179613765629898012015900936290378954916243601261785257110795541201962533253996320676060822876447947679892385246435109499952798805550813353620326764287655959936165569091439394179571326621549298137981636444687170642779379551849567573518378763222766156715778790203498372350738371148583631555517871874055812397074789156505898678440758832954018764435845504061744326016431934602425678250710376180158680059264562759151835279339760436842244224952467716821112921097055093168872607811358047229118631004516956806385621680975686221033708480079780866708477588050218062687628034498973640913950291524528699613218437996005835636321359506414848754490435335097399453544723822995267767569834815053583162720182341490046114312053724574459171504272036554937302224420964616769375411013593474054979548706270198266164147077406058957872472449107919482101036350877752969308301349832885267392291493766628257516871131137480743424257080313783479449262022151487824595704678927801532530634425826983523708119645718494809932541376112267775407072215266239903285536290967034222235359377774487596618607440302466480666754885084150416234675576974616392273534302298435944272938462553310789823437063164798455230958460976429305291099305957075318829241313313012590878539301062702698975042641886212168803531110575858440242898241959801704642677810725642629500489210500266625870449696566993704465934752365223737280565126591814456445090281273150598809524747950963160726478403145542016904496156208910117296412971038897368350649301100110736639789638764312719618343588643011672093973457150862575541366310328262215366616048107864573632530196002905823012151393820801907836183164900248057484327074972092157405308193807225247084117794566442657436683961406145855033638379025558892307359407572891028827860360446744281405582639394922380873143150369309812888590195649038344112649093318140744133982947902567733456216137601816198483392003073060474117172900187573958753726544453985895548231673623666431945682794782096994865744784310694728236123791321937230399745942915295418296178409138154180688309290802680446887198812197702250562359496953886977083146035209047830151631997788928964097932881072156555235705648698751599922857297830772248833933945958545288416887374356665316342286034145399577163029206275449289891117338218971117413034233939187700829246187608046069585563822059153942187026538895522099852327328661219748264685685933949524773723698992668157410338696324840184918956854526860649245359545779722567359593208011910853811731955382602088746518716067402864636038120116658223276415718329400054635502887900008411645375337380375310380185482924629817493959983432914406243840520592171870765376177699127632697222074291616670585042926192291611720345776098565141232211718930722162860629449900368687365365596803354710772869128194934571986699847903410090446606417377651556064309577029969656749331356564805526729988653237922048198954250201332571436660857526202953297696274423780300244331309232415105856245134255428836306402021838721408466205271845213897179258106949339181499186402231824969410635842778529886127156672496349748371629371225019406038665413008771816569050998012909505751620231375865679083659292514521048387310938667489344430577123075765512245433811496450455361234765319841415887229582157881573028694554743349918740727874096658580111041089034521274946436811730249871544400842604280148985776671732650609808042984835610580530675505378553332825505037098392417649655236268554101205936071241665457031178637732237911617144849408138869773598161753393301155567623211659831313501795719006999326805342074912644923651898712999847688026853101434650294923932440339939251509881002945793125237936349836944503645180913942904656724490661480724581896384276234773453077145251005445114256925123767553331029284874439922103382081619410379777527253963764283046426027745692040733168223016838270732512543398760141670346913630388193995896777286973224467576668940251423712429917243390352794758599477531363755507802605417064483826296462687383066895447687803086517395922348275923832121461211115134886077484524274397490678636967534274440654573201486143766122634796500369053667447591552974193380673218566252948245404506808796478090413563964529039080613998955014054334131765067945961734789700215846793965810548090671675474784089486055171017194847248213778056579659007814556900617784557819107790048582674302910490020056213131800673823387122231380266395828426747164058640259496146701316080801609223986588263418197623923772030317266303021240578840119078666848211760999625767492244833918423489257319255860685135194762622087085259651646249695645811706481534413564674065568419068937592797261103491024190091667572254402449590345985328091497036746140577189610065332999146261482433013211400350214999193210623493194838706761402460854643489643364764225659290942099716940419141020428836692462702711629093215451546718345597656388245376758871600228973126819483857962635838147247703786966898770840671117883083633287315314977391429864488611103203153706449666810883967733228515997785699290106689872628549383957460913843979748329614452518234672156518262460407801404611685288229841136059997879031938938837695208370459464729455869968147902929037041796893738475785260689689570839951940935704966501633120767871898549017836246241827933270532083065051913970232186446445736200262623899541156008996455053207935302101376615351046487201933479041821977188948070019191609367738611517213503930474011159918145847691639099805311518960823319421582920234709611972752957324216166284388640539085101662035336934812355189682417769718907251849983021310512248212035453225172575492218369460174022007986440979078461274267093098598532559988293690620155202064114204162669174170445030347775197519015824325677239100716006532829639311771842664111250771187827469557389502602166367133362604121116176889992731420290471168020936013742682149558221510616886266060668403134582546943410283725854935871297262465180474826137998184743054718197245722728634717746832716811329162895370091052137089539819989746378945719382558364996246263212538010045419954922610334241985782643903441220657572249745177478151888705255157576157698029548130076533181662811388147554952181028312783639224169563727815638956129515665014421998567400871841619784488932561749194100875760158446191784452765324867241938840118312738151497204795348874732733919719932776509771041745816224217986321284661043531809748926331384476692547914272733488878063290307042520855006650885116395492358252761394165391222095899776633445903169900183224825787143547901650925770180454602674791588454368102894997349127002526818914616694873944618978649493985997104809888158323388002058579756920743524929587113285771712974302379348863595087904696729505600635020639524163338771341521907995045037628965036753133874935252427926827436864937780223917107003950788738401858890090314470312278303347388436336240487149902633408763355827766429204836694994505908887801094595424122360012852302718849753469709332559279926766614782189540970395196876942290272594553678496228432458690423947589660653388433961252074818700855583291966741970862966558612600254113455742765519025737865200964391484924144481890788239952358168472230256752311841518192844440484835415998097393273656405484877842446934916097959721563653330921747755475671066278781732862915747911473044806281416186561830132492762611344761874344601518024080544052383412177056611544799359315741197070024570599976434276710543032624601966273886494861845574258981160249918842857162353558784920166029925336810849482246912481157093005827396149382148375286118218164591087253558478100011016582032062160088296587930902763244154527276383545226164671072596430397053727745813787956400771314857520854113041191707279698166762842165438059183967967499720330332918207766530773935904480617202063873780185582245136314910463617476600971690289163274136463134599210600573505838866608177454999313391743060320865224702178110614881587197602748502067864646997816482916509772779324017512553022035929485196385584192631040686335702150363630408812004419069885767497086370781941065241283878313904141419427714713688281356492698347727582815688252214789786204322892959544410607866539538108260151572921203149007585895456413159582061600030013585058637944668318744379463981962519654492746460448230964325941652665266686632620083961456679112126690748726682946049152586371449516377923704030758855032533947745804283515151620664298539262370589800807192209516710200976284434268496899144833677016606117417242195120860807983585694726043992022594317897091188200164819326608520842325690726918418609089411616681441861797078596049774798016213582462513699762548752453532774771910269597846640636286130261849160330195988154178473927645740104593992574210662471892626558497907136090088370738670420563853562948104637989183820252017719650722129815000338736713303072949236237271685151561201922505775112154849927935538600120120430817622782866585904730037170928265830307495119885966540659795642430065161492706376950210351340230299498948249058910248609374367016543164392895571235094208939577571209502550753341291745414766572641803216624288316894742944725995078577917533850628651981202016942112255051738073325665673033785812670064699721949335182772961644453421097328335827359641015333599764798963822342707486565960398062243999298228591222521537390972799338067830779252660415387454185376102386081878365456500643764220957878039518161255400527028812308137068474378195146988483662068556577156422756763846567905998628711193583148069275722933944086868462111244865805715292723676541729016254247250800112801137638061577133426991940855437460936221078666742523038962712765049909407590834351243457153205341916678325970128178920738241968673068282073990849384814093659331097498632512288369291736416327035435964155158035072902854138179498516282196291595397075161899062891370455596662858979965443149299780247123226434654052871304403500197271247373106527784637153504405309380158514505516747003722408052718595856505482197879369045429399681471246572384678374572176977139062609196105162243304436129031407730868885555342954127962531627189340962454835804324411516535847044725739579272101972673881650758011572519573809144357329708527312167208933843004742574537883978003364798638592619846362454308953975902857619579141473186794188088004096973889050579405923795349637852664236450926080329201774181610986045345359864660706732427420476124716062838176894335740997966622674714817337105954019000962167807470495622646876819884895631465569084876717438513627304252792595276919220939300143361158645093349061605147902728843418628350290091260059509463106646491544531919597766013091645914294691021764821786669354232091996276903698092498176746790496434044615166361231318932691899898241935139999948624418596262958816603550469823339573774836979558999175470656830502661811144030215740347981753529936829102199218220006676421340070962833699799680075954495036637478001129650036836457804804513536453668063698753138621887710295431860443718679846745943552862603792654947394714412068380984445484880702572006461643351083661187204492445613325778563926164922884842635648655595135828615760249821241291060691047199182243396959478465347596579575734001112610446018885202780610300812504053285363555236151399615789434006682222118692338565684835411179485429687508375661044094189144016230115277403042162478165346710166616646668931135342411407231229741715004116350321634158852646166287718234552245209553944198838018543124726398088050735843682715871277025499030385039449067225661727141282102446107191913778867909634011778157498185576598651479139007095772991209639408448791110549583213828500568260626002577261503339729227133892560503176008352122881919307222060963968700161001745271835381461539215468740340479703504331941726700626374927075325318499942759573550910053908360304905087400624747468799847984340509599266454371741483745399563163555822843242102768303453597728188619957458402552377780518280645808720452316312717989492060584663122740179315489059351136255889811911694804994493464321040883544441849388795866587463080501677237985406279039156474380584933201339962556568515117101274303941592223631034689097136514401797898613328473167225080964436886960085740942380865718419239047133402976399486001601599345082966319769146384878818228552164367713489010700420076090924457899245373403282209037868568662250847076137467825000370039918454607391388054305186489556614524651864760421988645798471701514249873023123296146563037102517746452797757827749411089466602054740577529630852737252355241778342614301469838370786178803663187715990683639090960418106418903867752666424133695409495636060938451273160427872734102191662262093047241399686005506368546428636529688894483895177889450966259095878001163186363762371184570468140506716925482903804398654525301202162747241643064514961174622747668830543921936481746980039808444555254475679952263349923659702944052678125393889336060441018022235694930949245107563143853482290066480930459575677549197750231463869645228548745621069294832011423618062114899493638350608476232952334994762218057058476491826260629641785092235203311691901506081086235399569940264520037183201285225475763183118219308084698718350312326085213689361033674950198146793116084258801989631209739092403934333944451941463698029828773380030293338782683465407231974836278461531199299304759914274048361263961378853929197432331604672474630779115830115563829562536892797488127577291866044831332183050503438517779153521382201963791966588310757638827099059682540793081100786173992878897809602520068727665602727003378424689370392260304062483715163436060602169546343937025409858532957701246213189745022952678635231071651853253778706056983243743510622387365139021339592154044020491425376153420691963481772288733681515263966153444805892806114663126762720003703637032822274216712862210276101531186100171372056201524185868863594671103482383931742869836578389119223975848054946360294747599630707999791556624498784001082759978581371855714112726415897201186887912557009636841643714637974169484630568209177719881076374652516717243566328441501465903480291720223552036176627294310133834236185733176427995061773204036854783396819507311557339653513545260769809351656855573408437944899539901655118948594180371864397688664863883106673621227899786453006513736626555536350060253890149727820866727288295302814568838673084848913625965947202325751271340786972987953475893090892230707741679520945790397633896636348164274697274327106388914583505323578745490335078967230867939961802018617833927463746518196620247127346943274546072634997875719193619838971905226684851420403238994414658018638123948260316693804066253105957898492623978623243258082623977068499642894517481446523233706335075419871515613827924407333187721373483251964862326868788551873264385427863784094060233776113019898242977646376578506421646703316539657928727285606513212102248710673210429654958004821441281147094027085373089509745377942995362816924029130921845553877028739917136199136791235624635926478203479581101674600774373469159699233339634568683163456814045136250762511454724115264674515379813069441112297599008870075487202570290985116968526661662175546224733799360170983212025034449160068898715696541853935184270548373860068415434671323636774234323595266017046044399760461783953574063898913916924975530859733844406288138094933692486348582846785733486540403128462509019867632478507692021296442555760994659490208496497340434865342222893801059168650005448707374385713281473973211680730281895584723977900097420113929283645050440655634229744995832571776620069333203709564773584531901095807417963689061742874736171721425150651332685635889183778244507213764795224178344266101573462180900530405438975790050264219437349431176932692713734668318928898591236269357905938611674065997444036368255776122815583384072208607720757180571932518833773009386440972946475922099507407514628598733343752922992267271873598225436844594407544368095328375652866463031067662370576627716283928196585161281913115508193490501044591388338383188373282054038477225344951305245819302445327177207802250819716195832739933722042282562488044540439923569876703531720446500352354207806888620711845336218090459840282372990863474265280173841608729113079516486075987572663119126834683886475911635066332290594873677243175987179526494765828083573585209844395345350082820765317665859557293688165682416945237752846222832140795709530855744739109046744740315007146779829760003907723805429750024792113102901760807136036072923868232801533060632089765602989811988596276146691193106517128118643876622104716675641638381320592915234104583316233675882487296656865495991095795635576568192778900995056022113341894658381241611867607329604258954699190194776351740301478344144439710440260293534468951641398274957305385396952666500288082377458049520301113391088340796486216746492994454571109257035583059620690901314091594250152055939347595145930579250508328510781088874330282316512872314773637073123510520726194416991007674691553530572202270270335485234817405180504365638588498720068904484386514352700717867341703591121249865581465428492055666218413721669450589076007679211189759000981608765678697968822413022842262771801939776835861122552341413869390294313064659984589609562927256413256915139891071509739145794265231759682362964705120651185292239272195137469118998492938252649768094180083337213141436505143934527601593503627213614500293953891460007804150824129240679695318725756329248141751901558852698286028249245431026795525082437037713202027744389653495533000169196491093400097969249013610129090011485426384023645667234569305650479702474525840938830426785462530524179573309759191599412520981727647260494728000006373633371917394977268457078324398613847720214536762084190344931664108571663351842155165512036176615770252601031000351459746688109323973696885583034064666516993461629683085443573866681310177773865770422329927509915011546458625011094260699615003462055671147117132901451990431185764203983571522829154834347695133947023757359742386039519446276030352554837958707223171904872871734528790096269790472587826020603667856966862387975260292926688676971485466922512717670577282976140574284819547965672141615849252907912865847914303401774417429485699450442980088710515193391647908817912045288431043331996691591383424958091752229933831520425257101789113003925774575202555019164764920702567653176774871735364599377945107196315097053855881495826484220117419988573705791820390328079718105038316745570183617988029889539792932940166046751216281118715802874328309190145735278948067240093730175886939144470760415414945997419836489433447391249017035972618542840200985547937975663384644443418037014157965075975509493930730165326668664928424251806155315335989303946752217889282611463753221501902817288753119667741670122500331698794465259935411727561778918541006043845087832415438724654612298543773014741818051379676018407110429385032473040699580943644208940694922568737893769925899569692296226353891322316921792015972156801700439234793149347256981287690838697794636955083529375550393140371593709775724095304662559424661168711930969031388353655512334802673288726244849676973359502216276739616968034634569389556090460275745815265275531181453757234380578739921945702923920800170611629972093940623249882549031106158952680987939445847583944360018899958267465327726978715403907205876454328960244935065135011850746950450871322965900736291509066262334495881086103732431272398203117016284594963891225816656517061319211281624114560833142613936803769862972144861069176163894456273430026391790928926218064752375507856742379825535551724561999091025282536044001368166852632758814400302981291709609576196043533494048532404172924616371782347471119152686410108789039478793779460755909374767828091960355512475860034379676907291868254786524503332988065577947382359828790286577240392322056067765322189767179625486919887221510949999186125004067091429513434384373397703703301770605631185158139801461940835156794168332893951444467863635289942293457455491960304955177859713691869825277555502009791378582466106302324856987090538088093532450699290375007433508849955058091353001418654397497800022607892636040291690084762357547251058961442504988542470814208339491573847183730807111335410261697571621728118834439872742464553333617634634449775739056599206654143517810298774422818043578558381335913738001071149358048784145459777432297383351275502062685956788913113559328922824368348650367434525041521782110765855133421984484637160292981868383127411595468081496900402812960129291142191641588620017890166928911173110171968830488336414106729679505610788278684917599514485123565359131574278013914682308156701603150881058422169614485311200688100063238967875637867051228614868561330416746992350420768436375771659124115663739142179340941780922362770932921321066146327422501918305740809068660069081084247174022987033372537249764764619446923181914659572258043706568218376041150480751307830396271042806680077909409090821504839739465734349778518883476087337170254566729966580974159008100952588646765416694378852294308473682487159746888545947318834171850668030400679170187386663866343350625740176242443056614860495416642109856556638007098748118001337848594578608859338473134137117512591308597967250695987173019924792812471961632847739441056177120217504567442527257044123567041251977474443468089190989648111648169220702111412232425960560447052538434350795850097714137119067453467299634510643749369774573154440617138491246190162874559510583346562419081794121649606931430901507155295627335034370581238950893559119027086362416863299400030179438765712806590118959627857351810545809592066945995427927120464162686939604023704099651501778472208373480271221533411153162432217857863502535969664356742260080125925991514453809920517759487686486022852302780636770365877877403022948558974513173855190895990546021139715829397301927629680465827666392843653809362703489930343803007084904418211815303124034050906489811851336334192024245324959946246745653627882211801573563990671464281152605888854651709734728511499892287745264521758467863591429007259121877991624863124576154327204361546927875412028209862481884573254258247133876134695609217735225261493972447481308271562281844236838991829030186653003754303052952194239172824267183744889091729894860700293429153702903335674769689035507615610443109521593756157299940957916571255759482613054920928039839109593358717780577341249590544961039633648257120469969471015266833743421516423983039043583926695818895598032525171370508882038186976908769239919367042257452908305449385770079751377190415789916284722292446519248298177127301377349760708055243409984723438994479981413127576056160910463339675042594427315464520800538622489205592641269435935723276745802874099874502163126109829759057185076759598028189036102583743412756924466661175701445460765581128533156637830955931330876485161903922036656560172433014423982743367728112722432503870326439990812568540567116916216812020275169079103511090615770156628715973399583006054407780467118411899243784638180726616758459744278408970728348646962224230678419138409025460236484089261159435980631041215036846903145455784698231583786407182145836475042191550875136427007010529931057609132579851151401820388769010754765377476603279613433769915034601699636603321642541702487157491057003836453051753911970720020569676597885397566837693718695793621329262386170656626988379754073503881784641148285627627643662153347967997757074250174016436622901082455385510593437136424732659992885818591096271587557975233453681617165627512782939441755896551204774703313620834898873493666511959357741201391373666173317921237563956990294726949351220511369653425429913677577864273120693534124034320832911143570922991737391414731099397073441853127598058627927371027511761408882467974740591765695073606326958381292803201337669381321659596964091711893060005395710852968171792245454249310907612678636732956141830831009768960811453874307211927342022672393101103762433304684210381195034605362294890316904336726132119422312279905642292995170792740668827528647221643071824547916238396911481769531125250249047022459678657185409717640868563431180743475663491943336653198379752075350525632837754229648668710412844002196621999590429712227685827609167353019811003525781715248824147763497384224655666054569961511312777695822863032746850739293645724231511645897692727267634774574398130992282293879199666836680485863761115991598687216662766183087852406526118023627943859507328508694672044019326591297316695629649032480848166993243972873619184079635527593951914107326286648722208223264353933837627538336498393536438824595886660068519496777649785795502786659858653391972511405129382396037248475221804869867448318033627214858665308525812870544428746231030769217869652493526900885677639109186221908235436795447387700507953490256754492792505157467659582244102811553223013383596156496175092383337770662362828022347568946617338100525283628386409084860565842281445431497362385503707907990221740547678590973048013566750840433152458495947350093574946578292130716020121498838458156685237211608088172504074226042931607292234027282336198466983605700564277247856528411902024789192680959687600834367414411743038326369512536835239832483883576899504307630519551034539762646073441340001063085766095751705763795293748928138133212720725274197293057806974261749253465852368700858703901510824648861152931877242211420891120215215917863679518074044427849624623105858539066674657577619399858816266163261962229203004531398999336364715350357114307482975734140155234594929152939525705755042087394999185805450054866584579425766107062289961374619570977515793107281814287588086938574058837715242274551363779227761472349062213182033778506194511093066484466467036345554092303680439790827481538770852353187682567789919718778116867867619569868073621041450683581605395803786414927402403634972841305682099444244455217958092634535014113822133731489636022562182221529955019778523280181161620934123606929146705877698351394375301650186477536453408984875179248386200538135143267650747562748319547437620838549665808159470128171338729743524420033043240664078137425231444583800531904445673210842582114326660564787651201442573503508966478802261093188573219295704796846432032841761179586062090512116276166475281121183486947795723342895779042771640864950895342745189707756145812526909589439321197503171782582205841192920701764015509404017533738761568038926400010876639492805803974307259662952715450719533493705886234583732475585612468954305671847997636545350759221873751617124652235646324437590277359619269706626655084777183762574471080536123732131312340034335174764563610321145360844908363816010234699580636887495448879218061022965341271233206715716082022587900225454761744379443581766776476416492919292157574409611446929606570135069604800592868308490622922215247936152490685490722801097645373439893200298517334399513273829160459926161200622348317129515179411905077952848311274623313315809957260156817892511562960661896354368142953315362426880661794576845085072217606802715846960951727859781322554875585764928727209183873213618368631155719844671252701922818345755893054737740862214733930604586154307606516045999478150327295959658388998747253570527338635254862469635266447742778694475948584677233793750056164275385598911443848178287265535082255682090753867356684063602002345256887460389105976449811947938926129374811754898542686783586223665900911808019894152386038433577766350955549103913509078789203142524323250496776605767592264384441388630000887597802158028518407467877731587966627793888680993869413189767965866748426253253327132543940905484038363064814855237648337728399126590755311799782890277229657493954064007922693139774939196502695891490349527879420275003247837928582108382077351998294536016985504843203596906959509386601115816418627692975522619000001529792261890337154955665725932594452202957731865633807868068406710256826743041750027945313434571328314528645357282519910509093343722525216427982890891628127282177581830685833010310363145453962150534459733294853076985151560465496470140026249197764442284272908394805997518994719059461476624925152364195916387533900485186554172493054054498712968644752558642293513181480703710625659305551286319129439852948633771994910837428187720959629830470870531548308188648231590806067674401042543518535363474171943130684580268658168293813268701050600449616370068856404294734423171344161189866390920619509032666199988675367166080182079169637620587723932362727484074880460249411049805735098391297561031581277108241727856130749576042600177123510570535745503760611949286867230576873121309314903257281206861650383367964188405404764496150473529734288388732216703748896475849199151051294963518359715312568421816677366117749958449135263628839522212433380951635518703713372792034138655893013850364290270703866143791940246690466906107256444026132966789954616830630212954043336338381618551074304642804883214491622820711530356667328907716316353479173007149100099781219873866915612471630007179487589828153988879403159880124461213070788902189579254653887487415883385413867842615348411467129217022163182846218027353873762549714036463671942525576231535137171221395521448123317146176339619119658382033767402430992450423305966824255258335310326716502174379945166869914218942329980859963471505864351328453755210202209716114891316477004393814990612076795845508953058832835015163421980757929553059347157242789973390942580600590885474452400092271574080683108981742932109407717381730375492013010180062369282028465819105001035227462719215401835104762093605498815122371830388984340516217878543289497847927567000629505217792782885253618855940721344642602242999845684315294365374630098160244877445274456680131797775059822856301573635277910081338270651696495000890126604528736190711298816742040388404961765982955565972975693760526251234990184087938641555382045885707005149700832893874675948239420339990954226107838505004887750588917834378977586363859047235924857810879077270874821671084869672165376752011622534561386819022443543029887302818700446322986973329162839778765353001711818221594223626261144835762680411493384337353552596345617550759953774057900160673411933272713668644029138968800825252072657386521371885226631561865482034974418887995335511079357375126856414788359776445800250029512156094648528179508561514918670052207608737131689263915947027874069371111835483920703677827662474100348305591565784408765903462255385287039668268898469937167173746549945755201748360753852480514996807826177599218020877109604218669093493089125325152341584473720387585401110402142670430854454060338946470645151840262167668302159216517907033303895019731775124341623791163349909023895558144561965546394212767924659449811548454138949440244433881742089273352216103184789595279706278344426258523859899037767758599784561667082783833594169805992531252455043034837531343353636604119876486785160311547444403979210608473678300424848826347609730142142154649236728974552804564845768953846214192327040636563883321061890521848752131538895285860505698434523206109856226257885741762544297834408493216865406196523163257591239157564718360449477073370568545372629336171478872366834789604024329352529361864795107016116596254149380312968554686856401697620261867847839140663131135379118472164807865902938409597622812093766559772499262829063980423599958833790318415541945331252734649733813280993361578457855948008101343516500797578891558472825737656604855369644954398450314066726727655014745420912892518926378049561067687645646715561337026689166782152661075011488200323240514429159522913364829938713697952586352723753708544602503180641759118588391516846608755715516562718354649762349255084060627853292542478103832632048212077787691239278882643706247153481041109316733905730696421695203118611512636944854417320220508996848929393928824924766608461183119733887911912213440819290714137013905766871728477209936548121328616562274717289623356717157725052312618313678517490278947843973619174780338443288281696520289750300209131370735744062019575047871791012589596701381172514603045318209583960116811138308027783186371320937657070064275991061749888872891874830760814093016325666419780180604457053797827206042033311458373620005582201821782735566077526403455941955316317639651805493328264658972966646277890126116814386265828713680905589380193336680282982226774690098511120778431136773825950057389644146826147824643085613054945803804231249793204880002205182286217514782012735782778350833244064301415065461029195432726984439350884631539079994482693132410212806758565418470899097053325148102163506433425121721910834868683709876934219903686482831288988359332196103503143047191973094559992426218099476946557338175450517241763156070965273731088917920782832133713348631464937554325693667327766697407417852221636874044862826358123921594403100680615658632106981894460731645503960281294995396544466209511149941225087113217687450460595781563129064619896288714199268100472292652332517070577502901844817086858312639721907442786690358735883220240719341817944503746661586685245591125526877159697495663705110703064947061361496220918557040412296431338148264502491143011999876370425839101421548696655468702470179846387567637229278292402933127091707871321201667508997486713306761943528844728929502082028349522082865330514602251201251773854076928775671656506033222873009621749661593430737773660810706292772923740009931850988292013217689000906971955904491316899951493966446811227978772199023025266560418093929818398480406159527413657692558193972671174836121440415841244618884937454397832744128948795555688245903358078149361571313918016985798824133036576363487077217957365561880528110258428546578771885142801294417600985368606986831395251355016922044631045047278582393975762950298471141908498038043122705390137862095206369390268066045432930892008237712104595161029357833379769619749233538235723374362697836105429151855942092886152730027798227998386015076315370816061622279148546661150779358031008811986070161786045135855550899258762100404141068094064207985321497473733748146844496766961182253320127959008894233743904552369877848677325656785794734578441611347345829063664513440188969618171497779519622310670860410725196785625041446384310157910801911566707060390474627041507626330723439976544036034419285423999341049232421555478051422089777444590423074248336246070135893822308455159482517789070467319388716330078232218768679874882184138254164760545428542167711362959067565197018599084983615085121130019721397371344720060898941405013412120717874024528678598521219770593832610650280520779669332866474274012259130239985030330968924445055941516946932587526392519678168792736656758650035904943475693459690366758556101823854730994766293091718756948670455058232747904891568059111599605249055570784330542585154058512571330784002008732596519808700123248219344150339062282196269556403508119289780639705361584278180621954020123272761212076443604401790079863448693282364906618935584537487805901449282056519744119946600024060500495283026711677801951623006734911884210209353422870512215930911921158766083739923200639332078141115723361655161041728029046602089112182474289746280475208546118316449956883086538777439553796233178028223758968622573403730529638313504994117732807176319116734560915261286279214948248630654234801826960631991364152205364262943789645001120211484028832967962283325037143136336986225545124183923193728252726513483658736478398205895692679346174407878957392987017864655460181965747111329407150060421490420325275975592008219778774763299925353532221855003228161240971782311622084280551172144311381591259498484134854481280418327490218875545077492212674864644970495855740087500800150665015695764601282161578146986415007405196272000879321548625212037858363294315956518216494513450332028662516948889576902422611966287187104872017043998894942220168397422525763721885183595603362147297927748620894183020106768152094388297515749696058008031606170266930705954284835839265531709489145599263659644016703964043116665628822283531829693242211630220516964009959252643709128835266882013285816256814271853412450009527594039436540730908724134113101478298863245309217819432277968954626458674975971205450077798691285249459243722042565022524386535221536759489981464009837197232858037161015303504425968918276616839265475618540709037525817243665760914526298676141882672949875550999355420477513408151079587456307750279308412898826347746796122793471081412283636052737639645712584115116177960148376932268477620213812810276747873534491958570584493144163933126620911940210872614761780932479836535369201840801528022837348802488450449101671217113678298569290547317685217147089946925107763310672070155880334942831878656107964433660546931338040909415777703124321570475575826111335870895318181554716518554666573218349593448755023854749627622689147318232993069741161359819125731137650277500743458733512242517945963532948864239272571397555383746162613398310094990347324882702188578222001037113030815548216741339743867143922566328635473374811797826830884381247807302311444295354579301924009950872340512690405652776571155835820240374734041563250145144509386757994745209026705412460287860806001556377228342135857338306597363462585107794780419847751087680955707659919582165845334936788541208915728040816061134195116238024708965300372090424420417391809596529855302347847799092290705160259223479990521824485567325794293188978829569668634239796139198880798839636891488437619567965003094091235373857932959018747246554659584233976011460955446264865819936255086805326579165434759122041105606777958324883428748559556712917145762016363580812814945701418784063587092018565823413186032314161472363128020882101480730507734548085429685713473312611383490800407773470161421650461377775658512902328329107570524960326987598203785052015237214185195118489418335505257073533107213319598816806455556783665908972239374730101974682492401542774198698006516655630022473393585287722902022084325882160971638350387423135260566303380824164671853475798155418926467985710496815000860705306531400821954570884034124298572659324398429576120803992877262231423160869864517600961726460863304446350750312184080246949508511841256910114269763472130988953467954728720331180225106683926731549418321614015492038841607935379487474758422670905432840124713253316969664581813634282629219412098967927213209028954674932146549970326971011454041623097012346374710652202641594999487612043430250828308685656529445336378951113857264506622337895270663102251265811031787747222206998562986674519470457062462122240388237972197909247018293606083326375331342197184131110418470637831213617412671265711906478882008008561789221175513630161513072935720600380718090688523119247395823185236677091646336715832297782312721547672404082043320142622977315787492414283059615480898126567487033830582580702129568804655040139685898156135438881236297029781449500199012058683436713590938835486997346786055699163834309966914978418335107632168752604916846840502789477660734555646143495457096234225451931499896420297237241878072985454845071707839411870173371042093699512929831563742484523629346189618714699959380174082106275269085195281010618646500338713420991928258833427663529219064939703736764771147358208900480499635704808520986583499781525242190782579990810123563457959283143565318268545104843443227297578485549734837556645716774315480126597384289252228848416620008211010621468928136640020386783479945515973085610423457199427144707437844643285935722639173609442549060314722049479167773654036778754152636144247735412062477384160959639786450612028624805455620090785450413093149792442108966666029163754699304788282737287027013986228829756681890635859484342858418625470816532300794566172139889569514359714152049017244990168153946716790343842202154247169328194236885267316968670541033505855266747710134761473294298284453997965363634612706253818999563334772153090018844848927198279014720947049850260136395497388020546153787158810083122124201755969514413355545557323426442119729486781162474318760848042471473496264677648960808604947877677651309434565890190121629805030184813626422514031525798113297473701092927509365241260782095119865414397184234360965716845947078075308755050955382744577042200424040476824585435934869037216869275426810365130108475586365668461415339937932345926213535572676653596993017003003000439644234991839172740219012440017512116967153598380661672514201542680875141352406651823956018518768338382031005932013957652523236712850962816598854338238864256958087739109544035975056945859623248868208117355125052282055445938590392798576461956317830263736528479453915474943350213929254810971219254958332713370906866037237476409146842337279619201085683575263884183540212263399800423058302163974642356506200645185063398139582247044466522769612610554780929543072654003111554207425512176601053742258682627998335482298748576960315554041597908471015090896522853321352804842978988253792756388898314723066028671498383466365325854463752234608610958721141806594180382008424661015016416909005772111393854513574186198846405493217363111973795795253043103606930618000643933145737649435062240824704698586118895277171786768341128562533981992033880678821355960913490018054848384814836561313423481962141519721827420733394254475002188201170290926858050900607831874370834824493980686356024419893233639988892239620957662418134846100783765997106309804915848697384730011267572164982860247841400330661227822508575781110815741931555574330343425344789775290952501381296139980177470586204318765778412951142763931192692658711653944647510115121831995471164704378186911099874702097889283870227509232772849376162315308298791994705707161689903183482537151505274099910801963443689666705752665914309236399026324072136643077729960885398338061668501733210994898322185868275343090093727047200341925143925308212380113800504535390978075858988385995564675418812033807557864844686791783131958887109038458388135990474843185674151791684357051239963442938074123579713095570086412038680012588500838352384674138997702548531591288357107634765491342832152477918920289766272729026013672267892995737103424720220625914201613233816355705569378935151694657515472039464231093531838018516471993982593679106631054829889154097029779096224880478183784821908048610965544673654503787495765505703132764928985191122926907392784878630782753502381935129802785237118711965063125361291407347331772258008834846023550535975614000752640379581208805397587314897948957850849604733440198362524242034228508562468608808996038589657694560665784876014647284187461143341908299835603007726134305321707981237149750297571393676992793285476912964201265412624198156527414064241106713462349152090284161767992811506791786615248861104068124847522226523577940180285567270521674236432158390048108242837086425724370452631786804832467171433302587066280789717532024852251515324738674756774018618345617040322237621339484258839038359519749149457104249659329396579867452051430285847618827729843431724594134832573942594298724720640663491125581207470379642600866641699735036571011589218990147775122362722847112448351501805473854889674142302148910473106502597213777705868919077590685110231281780495586890371668866897600689417694086259009590384279232890192845613533285682133444290510196208649728663994989683671093166212413287096946000799821703220773551399394329435061982125128374768299641240343420572493847078980854345239008237170707448982780207305123395820210134430753815784040193389402638924831618954142161993726127890764821839974088229304576540167166764768967268109880338578450446894800892757306300032658494526087735932026698219211527414932132845361144022070135071886365999559588885109848728763076377818312362453269985245642458139125339204072478477810680928389548119184064367431912070085321187535142329817478188791604789628362928759988476215810177528566034465005753136731907171308034103268750968093094838804462844569811763210792936124240941933624813347590577492256417019825225824395912726442392476729899729659560917459027087943837676324805380216445289184744423383946650967990010682159315680408523877597613701985070272785971637775519617973109455916626574640599133920280590775743941262210964468126624773302688173737470881424079389115758980614887530676810766845708348542081596752473014923286708176578320394220925160307359678691835006780771967151860075211440066336842212728053374044657524282450776007855285641630039824749631661448530495239412857513602153197580970055977127431570404854890493620245284976022905124790120187254999252770869718295111925718457466030267828770391038566903089253261239028683091383003736846733895956352259264896087260035994299206214780109591015261825161408942561534559098524788327327150641199327882234005682460567111301528899600412488514884405220539439123971763410588009471701417404101552784274024571287424566205644223754249846265563054108807586175830921247763807298549901734314509435142135826934097540881344299554432543359976654084391770382259566717142297899369300045715515808187216466469498095336162167459421574313176447002009252349799608528909442035665714714751094619101264719347356119756621622866148512515821860077334670074532030087329641912884899758584656954059933137907517167646012848271199982730052824713487765573846998274821627671654905145404183313153273556872575395367905918498525091584306484777403097604771099235128694287401954353002467425386584936721251738180621572055518503863175496804530042226466572827113778017613398316591010260974010398042323454627892139456556217781774836096734979492287441743597564576844145044422064512932588837360583458573426382548718016262325990600870333402951374512407450612720705968500029963178343930900930811349630513474676216212540168399282030292883662103311069438125529630441793164049483460674889790963092915138716179293494668426594627900302541029184893899233619727290041392274931500488055545286300827895700877779425965860350029125176046066734545546273315958585769265009964834974038040268879861764047156318523370194559970186453988741645349011973217998199073817259031199864637478191200869839415010468363999590138315008244154319506436939670631093046782647158215154026707813487146539086241395697138630251574946628025921744744927350012777885095206839235515843347657558945434880882002496711114360824273747041165288797857783409144328287786166525386586239373195288297027850595450350249442667386319354772737088731689894020991416531444774788915781000485962307514996587904282070166586392423601717194678573506415203480640474496635543973644297601603863985314947599270314867881332766559334415202706081639098840410271850165273927356300514700834869411058758915064644369518620594280999442344726435530092647022303643443376133651065311389575666045797373143332758270017054427693010957184769135724584037929411434435638298274693684025851152300072297577948482788851802973741466154521451788852994449892999906490487392877447255569700747670907824946846071911145975227271056123586818668523480616636997162668945814158395267135080451470112821483245832417959913189603922151478624471314597032868252809062261573438299763181525967013196768583411755644502608831597359366093117270506742700183641502704183802689057170141375838987909303819319757835492517982266099464810817037080548821153091078652350762601740611615734879986042939875086259180596614148733695379338273904447859514559054665318029332725592752590060042376464531278341800031638981819835355320022315933983325348383848729413772316901675254868703885568077873160181169403013178815968655771574499017552925660999033386636980436001757185921148616258573390870478204009652214443078648434478200335783603319886208811174798020226295597873131322178904940887631582600839959109594895911329499712685436605207826347687116522854120178525676847041358868077502240576326414395686697075512607824397287337582683406184963597918701623440801506112803758241291525436277715540216338021434946757225913564472582969941343390628584041865355093484810136512216515235514439959788792161690156519355430847466877703255277221200806363247852759273201270701729830287469697726614900908122543307693849337937324335185327924471859985808156418865295179658315758806698807584875792473376924637319959678399951790727679692983298516049579421859347873453757989747847709460709544533234727498557536466540404644509002807598953113770324832450844076032682089399562108537790363164073078753603014120685378995848807653041911335621432086700263294092560682884212738570376632566279102307217439091860665456976610500660918302157644185510555991886876118050378716058651557229549598018440838551970116991379489400915976727316756545760882736776627364272979887346733831245209882802231373875825582212272279485414960458258781745432901837791966933146716533786317239153534212358807905214677191699553892740272125721680816120704732684336948884664494572898136404666962938724617075847975908845132273533643728632262489895999531964416989797703497115857599915226328672255329982683362867119703547076530892737333687121893304818430448125457817908563122332798258075853138385421398990341145744955814190473685952805382572857439175340707257608842003972166876077591089651740222770477899741054654279413669176910747229798226339191816463600169022725777869357091408596594249648512542719454605827223140744403655161230932594353698542388516999118837607780896345807319772018410705164794827724509892736875582393816444107688334654428606976917555323913255226334740051748541487441162120831810262627860730545080878867115885713982577043524420661391783060757357525747771110360535418139114836107048707331346979595414299024662438889867568032089384486168612222451866739193578649461308183097366453054416096222839401615249482395749497969796209451021220935509928698928707745124456614055966096347404662407185954890183985008406524144321230203063637010144395617403897723342220279487576423975645151793885977996937010177831654149269128276174895511160310125284182735688180411374708238107489094991632676263930526441486732053465274625765211275147534224362288235974908790381443671771949373420409437706680228370311707998948655996839612034233952484716465581825918052597767995744763526703930119542833912636721301320426205489360456359832653385242065598166109677246624658750076578236569764334207806223499756578366119357629502409954401685412300593701850648549582013921844916671142776287579183731696306134032952707121465536623112976997034026020759020745069250368485215970367084177408599305050375912098798711306093347156476327044097342032376792095475173721285496252285538302463230434993405645619435569089502906815337180138570079580314524513723374442385031780231292479808629309471545586510051014365827546694939732683993167198272455933430546420219455584876345625183935676266370360767528951539741687066561011423930250589418183751021157347601845679972743530060627168403087060496551882354844937395663553108374164735987301282011165702202910468357238103485536987192441563947024318267257505417854270270092282456938717309115546274053843638546525076728185027117807374216637703798058597835459568083142984746150017872154372829011972800566148628703468313665629496025362526286660387741272931456851062748408112693493202460855899880927305039100635838027466345492795902513740981759195673904310449089097865464810745176473264786657306485956466150849066847530301246848882394511217596988034432896077047261374219372035535854598870445655915039775625599395049766071883791732227759475975557955597501173210279796223809787890505175601287247393311201656022330118247791553656867129656042554896851949753716135674772813330032792066334227162875590815022329412296791186051034996345069115136700456892247862183485317629727787188808382557405155317787613227563493933935738016886967292206293121522755060660473947183533093769855200769475506675685658471176614438070740164766622679299601199283039273908086028833981296796951974067076895947130067435091431906596013816772118366428554056486850166811596329405075926240561091253434251487849766822162676256837191882122908366745134300902540492070962629359633163167927534443310613647016898948421836174308493014579482995274697587491557472018034875649571322952712403285206147886009388082462396409477036447173779415130560088694265554131227049384738870902023062721967640919885486849257818318890015553051546162861139505927898425366030946462780703749395719620928399284255899597907287555145172791956225987279972585027622060942490384432113147114055658409032228870789737048633383697744688857471562510519556263680773962683136457090913024288036874161033420169422007547947504384059575606443785264684250849332617733043757790236919747639317336883852773963376800583545927960034433528902999089729469590019337126672876415154120424896332023516650530646439433144931025896155925326532937110508422270766899066974280270807307762489292031709999933533693094691419863789752936130032929063639046612882038852707616629656039782909193824359621703670769307082235875911958668723816417216433602734489325015826307523303254274350462541480003630754698873354881186643087515837976568757977420144930617771972517017672516600760294418509110906009687877162642809391918100797233944165796043239999201179071575623087314533541887015582191646358527437503866662199631267027030624288255466471521485877717140259676543486273541589539209749695286647245714087408840956469415223194853028659940093042896793570557604867939220328229369302180075236219589932209475659341009986760354503746112864859646117300041138280224955660567022889395476464737512788560008942218321826878386957191906639464043680839078878913737572817901389971988690116048984315266288190820740335020273418180935363012041758208054875149393996416761199680235380615562004337261709964227683193332431983271119801830508794271788493407448936180033505938162271250587440205136294652607342720491642058690583543812615910795017452146171944768285312341966426159022980305252704997329192870304441490420642627053722958539135926330743710826220516371306710736195620651540220262016111117451852070687922193711564644294774058197100827263626280972153155050999341428286572204864678426493142124405912411866695120125460482742131512909856070471671685042818411652299440223439590415514624449745944341164771886004673224598662877460341763933324448050876039772929998648478800362633033702461905465226857567391546034944969216066510321768749147958081485247259905309450402238932546538692211126793979225715366664163624548015335688908205533816569649950367919132658932275828485792469783820489406805078573703857481440926093577385281366537844247389446636913437089507629958727325509809183349146234736034152856683302897045177232683778376899530793543471923094813505767468853269025540015398928923730304349703063745457656055387828744591329974585430774276798652625372283004281335698781624441067383673099024888624282647216831252302749480227684629996611180334858805168395282422169564660675460633998592362656797220066796856443552662165035498342156589904726193524120709620351536828702231983448750282672979739609401494336353345728179276668971117358954775488190011540470751502841330516790526092004199383986112224489832871411897147828733804470698928156479457286832872552488884202184572322548460431142168746752176133307989427775955156133056967556072506414678215314269144447715006546266643088076283194076894328233264117085999252985352583433930948739892588377472760433575907779946293291083904110761686147051570139111015345368438033338726875574493074189467903913040932027363407033163503185514282990337346470613953136718940873466886608819801144950486820531466177144147029381159631909817121579212317600465811738742837702668517280546451011496114686829367263784221261606268516039894306858408461988042035018778008735347701101413514125808190095289732537017125770503827553525954518674587593938629305547861645298584246656708380754059243595399153308900802036229937271158972641311622342463180739065894697124592787126667335668348237091427284332607360720188782770053494180202202945217991419826700127468532173306426263789445523245559343161021892684289839990098537265695766175219378113464027570372745977969524390976991152829981557563355463530154700557257603796649023006881833602749141761843041777731192273937894773964830397380934527255828338023986558605838725213941805980002382531631580590045006328587442906019668430019861431479421620893593195102182305782025116882744831152104189110721617774741582337985509787872247611310825329770828125209598372079723904173166820250305229616713340117861788372950441675107122921560953036739915586937399298469950118974427812591330310645279888201248090116707849595825108353147426465356450893722042952464110694899952845399385733285941101110438413258240121617958738267532094036324636483394528388017406460809884522697575843358297368700146735597046173120124017410079949750880418665717428238521435511706414161832220979678086811396886697606217308316329295906176282723268274982568912174719032120230723692314596064124790276489501412291911197606410498470576393880267365198596275817602887194555458053864021622609346054566289951569741158539402817001705522085456908108156553958521071143051656013048243268611996437173898491097794746114976112115260427089208964967076530141667384928966940920418896912932119244504381681119840463150231687144316171126826567803919549386283719518336456609169003254299502068249140922522940472981581371482795168210164402874843234340613260051281028628821334307612782310603690303247315743838184245447432250944770002792179662753029261496830580566941491450403778930015459492129108260012807178197854752557069143102282204410191212415490937025255972754921335156125668428305339206373124070126383190681410335917425962013120111545235331919658709848585242604975399752250175152432270162032485887529462089301866747625229506609268819939179915201792833620966613418851224179958034144458077791219074775976068117123105224681895470630866040781630661406342856300400120048662156734685623594937278249046588693361912339025292464579373706805683153101701448522707811492553191856885640731091232653631879294162637880019432221911826819454424488524367287554195562352500961152734989589614298689714787018882868872840375307630585554789183484895384887557781472493570950072295586590912644066979589138820325848290329298119151609051620568899748467526111845115647469995489884995236406441746248904732828259851586975743506393636778018627947257054505846610403434952014988648411390178461438776954587873776464909081771156156188646983521861650894803801674726488367660974656770200501431805018950662747056501882153791603831228406520627066837253635196943156337255556014755161087251527636910054674662012717096265140432273264332185777463227961738956341234515530223869571698350119785691335870637555847023199548547941385257520958031851240909906247899167366220002313802539367364369677792112307761267606366496052421098090540252171188887901764780003173932860652573301088927389064482305264686874246792050626784055592015616560017021265644819359613405985973398202087938187379471995206086703588942414924931690519048268204102758589646746949144922431079394631275294998687859585831055066739818789281413580807105434844295628869909337995496222594898393286711153774207901409256888572355499607747797632786958758446035583161334362034479220608730465385880375926927330865714646465327954222860662094522279769504205146998011023665956649458845273827453455609637121320726650106482857600582030187786356379235449266064357947672008753462907181953308584287649817155055189905168620931377168823430004223529073139138217239197132037318340740726563964856915116744181665328434509368614464609786397857860822452167973485560430888914899814028544207099689843799678206057465899599199920337999000388402629807594418602207865833441122171976608480303984639875805195628539429005081630401577040674123571240764539163317274010901961187019585085411867708969752764934105695240497378558332376731059776377157530554214238583177275276991188898479268318761332948846356361787853404614257946935791665049238229788874810697074312349377874572865627577742532826186345461799181177549721423264552426146637702693945645716112054938166359851830359549323267247827883816534753865867593764786514840994508069422607904774910283872063233766749361403196794987425963732816410875449483954632088845334397611185249606289106851565198044463325437453868652455214232409299808927350819386614980251759339104326797273659642652247786943411609923936122162627749313191623808859852046414411597714336001371583333462998443647318345847928197531655953535931100619670033878477765724810932998044427521486783678237615027443328250995745075457916817011335775034564421086764043485762269868270125701077895042119078682943844537179794566976038556841294502532883613978418991553085779915019509557771977374024891751168416943044091988496114956882247655632344184197837155769373785199960189574358784763962478886263281270030591334739160059671940561038539215459640042339175984388050425242800085648288026803614646138154091945105870989347415604351718628586888372796926820054656352975188013925044561101390513823116241414474863950331712420441267015032872121164619878298774895801870442783129322515506392846424847787693630544714691821687675264612922675951546586971518528279769090234975611380385345065066052021645633664828736991164127371050851567767367087189469973318330854740920073718932394327897479002380920571322532762336148049269899977727952742422795618806269702668560404911535442033724148065085803857929719747703349933350262864564610196064765639430631921066643081129446125432785434435990321659333072520616139946840362020225801779766486445196727649793012850608264958095738153638802233895284711295255640339939449193835725302680309099380547802376497600660666940658168939832787508532400153505528427607288340258501626249663348330221982525044755240970645640275827839213665597345545136741789839167158273163002350227208381339257669997840373884233931329451498158323586582655728168938039228697556656017432626730535531566592544046157059179925752011441402480970656232444413674445835984543587552375574395959545176103384936284285789299683799140492736556538530655777720397390047437921281820435540744668723029660959066571749604345904806397344728984732957187678666698210475038837706208553821792377102328507794504429431663134449493140391984918150284559721263600537975719083203506964963123746696531561238401918537805955641303483196050802267425512884810471697607145976420815498494049613708298304047673885850962353315056914681166192246232460442282684988960362466478526920975301818823190941535425043863031442589917210805593188192365723084848213984963344414374463394863016559878064544144562596567769218971203489626215808409865765676035585916785700284905986959314151547110172242824048169682954893416153208778762887326227057448759680622803902894994461884442235960335626992011632256117419388694080481757731278925735685728497990661117700790798544442667242509422889952541162927551519416281422365579611037368774453391471778872265186752493961072024757768276326995290224785599315252779689449338770289864027228052902482740116658117015119440552676072858573359021556742002898687983160120349433474192913233226735605435105425047105875633829064025606677945787648630610188379496706644548951689131893963904144525444474047128185471606610107201494446579335251028514693500976134979336607619012462689835939958550568148775203892345966309138611832434034657542011278617359397831268013677721949439800825559352995447227396678553598248166182592336448979195940475230674274036168072896073967954859876336072553288352584439229657709854542606106080423833622799022210694941558171905672720021618878601023026935481986778155724876935624939729943922175488504837101305579307183833256708639744228627771457373418151486141582316397541735115815683511621702229528702067286415868809395370885754048166007717316019084617823609138483317257788147310281957501884325767700239902914358403973864324793749755489511222032474143495110426379110130855794210897740980921090535241009701346802705369132647457418631797047106433587667171575397796832996554365845039291755179396459880417522836791919390706996222906010687567123067862932635187582678680397398383951147721195177325333257753039280597934768699392678473032948334814474825656628093948673180413758452084249049713361421859594580437042188152573844568707626845547645720004574830978730255416287865170654277452311857501307524208533534440673323621439176159058743070215390422946668321294922371271530093526395224042363593100021298862920672189108846471197368501765333351949548136898810211076566158823161789957886074522330836432262638273137236677161248235263313662702586125650366072731367084540975982728777866423101104225029088586911618820638389105398713751297968843051596141720227723028037135059337037263462650972036577726004345318116040405933513645371564128365857605085609115300751297027166887423029572715985227024590590550446257014578154613113479163579991117495533131585874245628045584421200567652046857338648406448403947955722694271468058998562235224985725146112952573349442955981062549942440764668110962314710745678883065410101361786410170659261693071584738019931587466939596389544444073889278288831572852109236616480934412405427718634930020643534866415434297192765183754828946657670125103052112610867587395016502812351268897645694480983972064623256810846467063489190508774044603501150558185843228928574245937546132724131128672249084119244347930385131717958942311104203517022695175788796777821965096806990921132340742437416543841459926068449019776429276073367260768682500477791149031902107060214169300956223116169398668904269814929735813819542387235073076028954868821194581259628754441176917883771127006434856540697824625046235057466615957466107265080827426184240367949652414646480544008907965280419831832981388615379252260723315227188040121806406756453557489519893900293704204342416214444144734436475442797271796006355083541046506057547220689674588725961746839271634657292731874719970921127228582933595006700111895714919398519365517539984719085517661752027347371089414309115317489333378738918187123459836549932130172863928739229821803528015718227849684819588328999630363041913297956447307842748878685643199234332699505434021670472430690839028043566896253018401976479531080105275402774906277203973422427882293302679165551240460818887613431663886623724035573246006817135375096457453765797922742491979620300450431028727508542741086987357761628244143383665579595014083706183770147279706183942120984376339492110892398042805067638731404493662314904358498750632874028667237276807406046374054716720758158265645497142735154141015246945272299367111336518288081403116264913058887097580155163391584122910925551523290760911430322825689516303906764066874414701073610153517907013517782273822372131676580978565651314114055019550697375428321147945568222747686262635162927212501104197947415896108948751337083013642986998948657423894460175491174046804029404538211698054774122397571817488743293145888346436209097606535696755849362844568763706045715241694793975721456681003295088408175189526559759170982491527966552985561044225117698403082480585013832118119651508195288283695582283213128038689297139848918270397791424570427675983471786941817901509866452895621876120755451572045939740932080652510840385462172855766699833980813840412950428566941805997635295963204508268992469555378037972961801254626261515731526590636176617866887997043476479809702578032498792617756986804835488806342589139437793019061039856078013112731277773971061217540778355808821627070195015749978966892769207109071168054955663650959634850666402954689404135171473544291197708882282565644800417049769322085987055207920734366583157229094023329923136306798232385618901662626569461158031603543116282107343564142506532382744205493355200630135493015541142757850611962325848643438504763105326268320632118748372996176337263708437258517349202801660171370788086941074033978592022694458683446845579799870273868660829453667819121139465003063733112772353348034248585615670406097349962178172670964875897338425878608930325216483979955937737208668833641455965287683424342546213810820956229228644533193893144295015159921555964316982132009050145097199002925677415674769130899777505067618028108589070485938241574815491895854428377766276656691517092889965586883289723641239360218527045710198330890860216800186789125144968516380034727769554478283161238628454322177152172511822192369202380098599146747616951977146646659475808124788048715219570151054437514069851007601752073550222471256910236327059531447512250759777871627912130090091078035999706269244560919530821018912388407271072010565939428692842624008505182981554533635026879508142539011284822674401830132767988971564095687168496758461834720975577715476855612662207335674077402865091320922153661994864891060661681058660273283021220496076196700088565417033271770430578748075023369402162890194879014186550940701840699680765062391155309030419374426372186764580579616586369208751728817153842426489362034510564195329923438595902632275238752453957318543615444282073957226718489999565582206835115968900919844351239785732569259978469684285336182186114653966534812192876004184810668763768524967021513475742934603544049791276802610517348150961211433795149965465324769016023833388861679703950569012666065745187590964677958122443005069869028314183083592878004088565478573399058707743182705337597882202348624771347979224833196198349385491324618096315358512656507064004275126412431238381369750568461005697769118825100172549018010944068261243384316917420980161098185527722666616242420799767029351563448476248540531641295394214095046480374800926971160729386886492840115388001721940831072675996818714999894902148748809119361026954507974122190776634458363742416459486301792448502554916681645949772554071162878756572002942684531770079468464565116896570665923119479313505506762978770868883894218355117653551522660328900396004170147619974853271874813414466175765748557626863381299870098386617589973334395394996479030086600901043567956565056068593820867176807482755525509706520805963684236406982792047065624909364245510600778635274929703538601589958484480318429016167019345524412884974748014489069171642458360638705858027915195728567770280517459676038614091316776555415886891919699161824060866955305794821049899215472005544015573935028887570435777181057264648391264142868162946911430721208724635936872848855190510255181690031830784594226796748483077750822932527095003187887879885681283440675398685049757622592773284848770542295099835525310750474328431642922472876628030089933384108450838079922993562668314289379180704695984047425700367207754115598807539182428436826086471349135355313600322859283080916883612253319119865798056306231136477063461480493664384138971852408018349831160094851781730894730240079400168851391416614265522520392846733774877182035272056686692489020900513010190369925653617878102942229731106988751165632227982902977425817222076695468299451696776626039637009225085194774439371485621974667211172190108649252533383495663276686772118943579229071148820508426073798604049785969292014298320051974791821291626763804453824381585350824630617620345438229093003696713605152518253646269203970335186312835414072687231539542116476581443490264256229341999778758186365304204854474070273387042145712229112622821091325979113377449015166773400154812991126097432576491825726338510337024188239698062638416570696821321386356824272366673942619205013327457547143891403593673467592763663760147905821088545631059989658209710318530914203564640165203464902259088421842626980746689736184336729643333591433777308592891200579241118463220716707257504538295667545066677237662189368211016431022054859304157996422143979380532537668661277633864681195848881694771341840219623482185387697759785686348240588730820081490241018973509347608363918168016549017784872906779693154509267645550908170256496142467153896500130180646424892428425957746678599238235179593042450211807790992976418827983999469624436210523721101329622071363306308806443467492151959305127174610738025729380524543919764019459083847955983082532020104309558864416500612232812955762945949379683545579427691521815061062459457106780584835603824188242023604978623295687726526340830255291080334898956934312370556087629899319728642729716642019873587027835948710641670007264079340284433907034164379632489562714932977604581797467568154606670058280415809544056701163524454194979940494648495457165653391575392674304168881469779392471476694679009644884064166661150338776530602188000620615492645287964943904187073262413728811804284028927721320797312147816478421294441010803845249199079595802680840480404484477632692067603479621790543244149001504930172978666243417649347614697486190841071308615722987240252032665861306596253376718684097701809599710373146133666057014762370417100801230388686174546297363978560095168229302230709833605122114799828842363964801903554310538387915342219235377595431174412316342191804086962714285476285619177998365017769098850178698930716181039243113958429665716776061001837868436925371425244105711802093342703856215598811689995376848274850821378190781290420065204162437153395140256292029612665920559175103233945679529126459459421018237001282660185407601999145994136725433432044905273461584308966991471725747393184457057477900716705604221067855703556534194512947545931088154751243275699751272845332621331591292386982022700284769090331170649077879760841334441046076378032714816325999055421543310094307499028220677206839460271401026378354148355834173108943498588979388954848250457672357010227754019861409517600113958807864100058709923231831949704961160636216851104098940580465247051664909968627431999341602831515052189340131747587526285613864558114637735567095780769199498256251046590342864860544487180034316458734580126696961249514644449538238848974623419939010435260676507656181872878845449661397766393958115745026550458127641040013046303019494876725900394950934088181879705328454751615186566824812095430017309889904798912954016487914899200366496539373978155949947073678181184811281640581514085251735342837889375967498791653700096157945525132793583609731605797811643681851875927595143981747484013247915227701423215723649889358626821343145649276648228910855084875005454506580359577962353768498899830221552876521702217120198323942222371388521612799018054062531991717484390385173132717127303093221060985364750298959006005977901562320114576598090253644549224752112650989236170151548870550859969112420959150054347782398110423458779456224763735753491557301960812700994888583639513340410745579303137856080386989794070290813123808314460096485236373949688488897703054707295516315657422879107802223302730312930750653233117419561539825061216769894592079546037716835887920771883207777783409740708337544037297964178684794207250937165968418736740099029960671947196560562862952889851212295722913124235151976705530587448692611410827589540900952420364355745011435788446545545665056228936446243902515537470452671911552480254336478375442367730975486101077662929545259788544276478225496859015589292057734792178279759027327262846648658822158417966589261398318948539639778820141655422523365004921335995410626330235885117059201156302664425281254472899070282985696457606976297330097252840779236653109193164771590373836139956668328621767889028420651216828790146452962171273451741661120144442872684544614017118585378427701885387039817736924821986795235832548176129001536099606796344635138539813722360791937896266295353369153872482050896568121354220169535322843868921800866895251202857696847491063950598450786331777485185050684580370058875303620110454691378576402891885107224054934205323781416119589216954543501801353827190248794861178586298593773723322147312070528465899849666130371412256307684753262567490886222253795302672891566484063723475444029624973949815511691814115959431587635722193033577637268505338990571332846107874273718586891844787338136684403003635032450615250888231226468994732349749997132628795072449530612512563465928610577591667505473896166206455760177270673822666859030639832126012463028952963112663036765920621851321392178704248258875655539536889217295409515553992338662942887334926257963664022751061071109414285403204882500752005972709719056804402974725351240831689654022714746454446335402803381913244652273411155642414051243854019893445383447246035240050778834649229837469076110185723278331109896002821360966548128645904085150514126172981203404387280611912292303277063970318293407469251874136359065244186899896258058304149185585030340502609702618452561214928036071813941979201766031989316197102621746766744204378830141601695592441323613512191070999233662165011550246898653450495225436916847724144993735243974887331297719493428194385016563613838635269267737240722328648657077825426417629111091972920589270633640234336115133282432244173031981515381287846112828597541647518911903086304218803047667581973433858018587011288925363943932273315347182415689004096234416335388045294464909311050226773371143267474067726379427137527584375801317286691089907821302605603357319071185043418450372397917369486772056380740968997342594392352937020247831837166913160660601046913469562128668169413502013173623195167825856904763791935042496010431231766051814543638439903598057474875272392166529515959207545356658497785772149109090288788840946325004511836443133750041236092436808404531712972533422700331080171268920993819673944489800520415846114178236517826424119115914712688370018939685145594165329382019916078160624406578185765694798997161756554145923359326623701511090932684530318873050823294341181498979921877561500210145556553841706344922197654122487678711502327808739153932470375513841025670213912781598810101630859554707538075069068908026631908896843480859977783969810439701051181585631564865786960836609970907965992080682227455326335102388185149991008925252426331713845649179444153192459585289129962506467741902903426143079600234110440536991250821100769232045993309873472511301303072992428602405864951166731631095658760026380879204707801917335200659698577963290627351401625283256260651382212456729795147627652432072697597640274243342183297520261529228746075781768919136115001111931476470243626928863799476930571116535590546383002706629679492752456050970415989166466638926026493708900157626407789190585598179925528019722217649272217302440113202928036487094986775438961489164722691294332554554186434140544842523848992147494805602036638094337304870847510759947054032325011567037124185785098628315740197693501565650111409453622206990312627146938253285279281967601530969062817546193180435866896403454198052685856767364541234524840024078895330899591781256308906199398875483605487544752239017613596085811043307492018464702330486203085353501532827860207409915921119963496850334940846180711891216775625379831754631590792347637417800089150236050336775110318718040907403275735191265957083531797207875681938480258795790065493809748897102210502775927453506893083880656693045886515708819454707789802876201976087386445100588848803339424413909444694035541175537777993044660921593276448217304540718126574251267928239484820181922389376507987982971519236678907440175671478720539104194706777741837108997672706512234062651133747051043461769201194580243549907234858328545730521650143854947398925180802328316907138811211489676746758272750105964963885936301640368865908482635326327175374350039053721701331484489132810602400359361694029800166191948757905261264004394790141984347447802449081113733800862480072596136271697536159429576643373004552102923895117601993872346612486170868245178425881504936095277212918789143164875052871449576500781282992450207047868270505041095020323323775975311288245883972779112050999782472429969613525984032065616525767702645917353061295552817857329795084320254460134787791010413217571289174831821606597563017711195133883539007180828986104121337625024042106208024302277774084303904624495433075228555505160505354774179127433754099676772886760124850482426433951775490836044798720352552040753172012508627512809125559263628769732527023442453315922151487891083001137493162481815878163162543725740500224167327707229755771654701831459770863013461456405580332832844938628157840590004399845286739323466198428172206484841753653051298293288266787424184158353702878168989469893446080988296141797672612301238373487635234495351729499946670195188346879055911264321456129140532176661913011109054921130588090565138538444098520184595694452363502251956042499891143897302272509003400443735259967934350242098795838789603975853612198241143702550319525818700419222355606815057219923275551882503366012258052052338383945270428083636711249431465597509559061738229635988096499707823809335615352855768232489788173101793780297332097229556180603118286617239405715383435751061566175468020071593639941328813177946784073125984614071334140540142157705509515677575241243725655130146935954476054584121338823660478924137886598819978043910274342208167590560387736216969337328690526548094765739248828413899468013962810013912703135008125323227548435184623124106880371020357413856404153162533860653426291528736775066057765162636678694960260580339940131312571817114071130878781990388172564595663030161180365260347724669020120528638516375833370969921399943399078102073981559751185406946706324937172724504289932230314026120965172361616749733586133789044302996120274565253549853179261443162217132805141647952068744396034028266049050100262960725038832282685900056830727614767279740116654108780922502652477431182511714357934006977459706852130306992232833598484196883527805540740614989055147004151848634709227939010719366251327653742182155921076167672140126073080594630844089024279373723281744639057000613837272922021352434933318504967594920619538046892194697968190121597442673312929115243421458281926944000846064095825091979813674584671104781796853095575055159798704441737246888165617957472278188236156473327528772397753412833881595695007895623097417766044338804997431204726527221062094339084370717558796868954498128570007837292677069922103350678096796428703779335572854036202403210325665238747417593202690083481566371236542088140429608137272653465870634257335424440400813967418255381622021406533029574248680837000823057277126583473036241270796433098592731310976008045714400506548158026622118407910496205776861044342207659390110879255824741777917832440107842996782003708917532759515043574667378712097005347672358337351104317013447201447235312407030546478786391122590448041492954668987880912755839853649319639453650492899581071794567390055198396941934759668899340897584188694029123518960417273353396698227109933316106941741789030619702992591709904000520618153159105898268479339800508667824301777410023818058014401697998459711095664535980384581624095474380226107601185561923948957526722883774194418116896062924773496102441558636425852795383539517014414452007064930797216170513095506826200013688859144229852769688862477114498444268064205524982920306424472994446831470736841161731037705206954746560298139306357891256073487401785427292612583595046095107483276121176900537688703914689130518182015010016412637273179235942826317320083824150431761848434642811923106254346820699091677176802769221740052933665090317526326475818227758345447453452971759582609572179638336740229479817535080724076065855506829639207828376186393274096650399160791507608521937764949037719288566989168642176654876541464652748472940441375497742063839818090502294430317821607854561923276793657553952896244619712702399479720326829543420443330801149298251640354143681305516585961698831118164128848817330910134967807530585602918074231792371970011071416428253128069271386233302774088202520123053295476606915529868573375983358631769551411448548643239497085109496447242327274729716007595217282912852474137936412228168942811558548405197697528767493997664708012193096012006289432037706288721714075883654316606455022780239784018726757002491113446637623174834167771807465251478848566307795439542904661566831884437761122435175588003462825756753880805051530026748514076647455696174088991812197580838195122333960656959640946765262549753884656699649906007359331248074148716721802616900599479887618413217000088775094148499056499678520252752493625345320322079678799827004901161090774116473953557268566573225082452626378171559142518318529560765632393985888021353102778743492924348929180445569871408170054816510046948865655460645517812857116506057992460120181231682268350320129645871861397438540106076398188615352629681426920351492466330328173693725857532197198065266483214494124998604226979355291614922012852349439570389029467877107540584933502363418517098794454785912346719728311106201881978547158079671890334721835123528231587052324964198403016645088779120455032255811181474640358531286644478251324036740703125767090853489810616124631509201549801573999855797228110152966093026832385570063592961613422907697073443471437716111769053412111008841102228800811945899217305187717509090450931025069322379994088519785450525002230262086674363896331669952665210452816227053101029889050314203781025890088195711485452925872964796593013785953730164833526739890265623816483735220523781449001491970406483555255425918190903789845023607543276315735408224542007693500049764608716376235164987527625237945342254118919276649059004974693082440256045837700598004103512604069454822465421343441185402831145833585125162259242315270200953959659022638150060994794675847308057593807040668056485574350107321931197032402517479589954244959988724074883211846871709009600649539871413515423345061472092501818976991467562318195830248453020867444565016333910618449948589750094286879775831943997559814341462579485700200823195576471170470497447817480923985376733961797620103970865408504120857313357318103524373776979171623339446849025023860603178033200550557391790021164008840455312715233557332103369196496885649148689319134899671644024256240446811071061446867660817137325428356973069313270122395259795042092406178338120918983247707489975722778798663214696739493308963284905174767350706834027600517439110106686392302096251732948829454345042174268389028308517230728083902411538970172482341225869243155588030937939572830195618714675319179819999341401498510650457016403769820733970105990590622512133623482727907650123006977219701495308731417996597231859705392265462328165681906649909441211608511858613643393774611624411132404219868572364753430768676211333399834880699530212021710530258969911088679231451720347856555886418926616394363650063254880786773107521854439626865535433539622422814516544756784969151594887245820144771662860515265196538896244285008358075847610829460331889762076864168431889858013628113854175974307888279540974239013270438450032544176160255222856551806555062282773706976999806034392272551487150020246369978607601590650310144011155430806414585341568064872625356104745280415559709845347812565529217953104861045589166209089988301301479619816364029355727797912799975212223799839034537652462439668378497492063434921150627038215702034888325422922736159138496903682480862025652150308038603209027888443299048555411366132701358799717891539538576473084254110952187799269293528148026122481623680764652767626421205611242311729944658606799926029199151135370105537191394748973535586423163115481045218165904767254808562124434319658213818272132499149297645438695858129965244687627557958710638851727987037164270526131918225350524815178357491077090497238845789438538150595934562609660326942673820076089922225137763373950818019121527144134670282903366012753815966364111687651028210188602821647648496545671084760984156718085282504453109772518616425975715355157718542119265255820167314948187905797738425489175743987332872351084141752032336555319663470117106609372952625186121607547723881078602696500482580216028569612352475006856268696776160002021102103487101223898921008190508381346670840431649030568987506718213480170076069891111666028967285941198427605714574663658448727363418369753282190207061272082304693112229960183002955593196843853989777415927142149440510130179556224200000422568699671356696312971042386701786074785192646975567822043520457817648838427059358551003765951178636555452195429535946105230424633325057719603305082741489136896031986761990898991595756876326210542557605693605529778857074891750133230402634872943153685211442259281395945599068372855372164474088071208906630776101201442732296166359170802241890726324121739188898336872371939500460869127882043989627096382142012037874394983513940011301159603079913358161288396682145435312788931543222760384062948612894700674721283767605057092222825519140420958870021132647913434711606594561391249605653059426137977386329727495807128203638774640423355030453397163924573907115306152647621893203188611655388210007173157230903034324553372728413019364774258930877739889614798177819789535441487692122619341252068370317957290321106669218573739441216299581913963779329734733175139857956045049415297723801900412325274722849305553684330454017855593138126342090860603435752616501255035624971814530243493624542330626308219993627739085278157918298420169700679362870399969182037415310784514001291370003122069266595265370796270756906917543956890389111728053969912619890258644583230616746902075524967989544315939263001902597000794409643899426738575668730582381832237753862192751186586347169984901060091641147208575843437139512285392256226656038444781421155252481679786635855521339244337898691547453015296130251501218651115149962072524146625203612518144543441542132457009785541923291922852969916734396811285215310139026720216980688225642840567248262436877057426179915822496486469070879847386871117794351446503144663926143966100867101049906149908279584385791577493082133453460203601869581599620389607569622512414191638938591525812689182132996936581310508481203999297801945290498645622373189240154288897121434913577952002269201698611928653451894841349154636296864939698986368434372715077820102469285652442527778587525287677606331072330175220093243715014513488960275135058282824008757605890217181726251788017456676139974650252612564244963829533880261896641695197428983734458829083849683647324256554166013988120059212198075687813076740572407241133372084971108583644258287288147263289862334866893551832305492147571995385099027514233791710370765459819985291663494879900374638794962771459789905240852265783955888260935266851498318140518343801178069822453168264308846553356309014793121832072336448472417368414985637689425306086898996175959233413559128099654298498626423261621231522345313438148307196084197540742765210063054657609813273298557635702115742574487146617883310269047033637903552433322209930869411035458675390987931929150225529208203706297304892114253741338370591478723998575257028772839829328262598087371264500954714689363603437925918331185966252375263623959983139377300516704344041226741541431554090438204741096598050428569596711227339670253919019953504867128144582057477629311860380187364611851662376045287750843824704365367762690147672135581289172881538502862103553297193054227842653840898792501267428855137521446587324259830439022344529646489044244100341723811711277902438461562371987407926332931019316493985298087404418130568515422768538660079001426652561731427215452523384067261439953966638832386812353148375955282101996226959861211376697403032019837253670928282388850957574987617679123036311718895960299294160933558989829727082568636669286581872621818909023116429990356138342297865499145291287056202771866289340040843785285239783429169888632712418803635325404461617511484513704132045948574195608184163453665265760391357007729422509389920871736401253325326618265639082878980534781092610021239997941829508728030413591372242069891694952161437447069220473266817402175022687934359473903014947482169539756526778002296366574310589060439911355194429247808090639147913071720216291503949608701749478816582695820433579698859919683565537337422259567209150972947562830855632154476488699264809641393919913459110128471089129953091073238395534816063766873795157386624661100691470131190010129422876915105282332568788895651306215331573178124241624141489158765904859843861097454415197013445387126243016203362057468392670749339540995924479875822917212980965204679353836544212449173982306888319146535444288039150100923407511932409466353547717861221539748014189253599823609500925800628490730425184602119320731978892858760819943384614485646715547092369468017496434943751119542867566965046786919001501546818390795789906864192991126271523514872290028074468746813275861236461807312612508499190762354586660387176563365843258644282649580596235728408785307195580821806967590207770976770342988104923282593025995757919046493684024166206068526610876578985095996450584188139021777342350805943181613211386410999570908966276436800951150820076633464617636535470285035298626064177294257464687048594437133908815371045063838459186532909373788614085493936545757209670596461621216484217025749866376534277361734447148462130380879648589648664645094247618108299030746201572142197762259318631416651012825382709963528891267793522739328634627558143512559583017102259458939489351032359879958105766547761925933300476905539384690962281898402870388602403506959911684552292282405697362154066579033275869935762174409927089160785083591946775203716890766228807722177790769742782418389028072056150205968998175524510619193124493128975633513621165765413754033346542271989538314693766538583007372987033012093585498708171177196314843273239850922307825136913661877629642869946400320718287787779360143973880881655610438426282092912304647680139735633095000771831148813545217110175902359641274284653285605696814213231484290761249469416087093240760212725801116085973212662595515541564801085681725093598479244813355131029098815709990921568941540124024331033798012733760615071859469629748769550376376292005946137117077408713660437734597019978914136674989760154576060110562862624499391675440323542597999734344991018848495352908035873289966565462253317061611082633201199085804388755824672680481086651146977616179274928880692937457793379787365764215922465173999318264280772949268356019184001509227883088698584071609434775601636441477940905180267836565297574356209970174261461960598261476604544437065863491350791628428797195516449068821114104138930171697065335978480649360646302438677941811156034620856522586074457476963877145144411640283146204785605026155710649175983058419885903414972636151115846427521706578937441244490845659197624306280111114260488760474851354230115924553685406335561040536343868255748900080128992499802365561825346298460646533213266245250656858035059197236803821023769817896256109402977098404385708435236510314279527447943167134892240505005774574821868905221392961771360974321870052809641052932316005145684006251517505954848880922112849623672357041169704163741681407162866844465328431554690439966435464311712071771494824465731479791715449202826091124810188262135504419214577705461768141342899339766478677883713310281618471858547933066542698058832207150249582687411766520946717897897690632261032731114895944327016177677313361353605086755815945688579770755059602314317841657309597695986051132735895851488985826301871651975242696185364678936642503921272035881380611842955200853844351522714456555072372939981727457397156652957735245847613456874495369132122201890182996854149462746506320398242461195064655788380383016850631839350018999249847334060346426304378740090789101921785078535857259851331600926805609641271396532814005255065943587524991446997122315028823646759779508007145458136416305298142511298772423090814560584230772332569236947952966779952276793958714496809137069252983069915272642531502942126974789199863977755898506313555543384033444869426419683170695779205093048630774206276353972896117451970424410275240238209407365098562234662072908208318809839582323229423128519083525013170093326475388713160873021277531236225587886924349145516472232211770566681728705030429039368509888000416581912667538754871580787371221514396634391855900787160007964068350794965932232471722145472118334641893823237818799455559610708910570000786618219286112309011526918841565818982463829799669907254055601039563190159984745708199092657364094741425339315381586985541006286788552687594236272857977542969457320533062818929040205409573924013082211737557982096907326140453509885241964737244438712814913674580699628051028797818943579525183445239846160854422892653360893272171193850351193681095367534948367498830270524609551804349163790661462129325809318909657846960481297543137055099421643735360343978470561682518239931475663462270442093261761087044297646230482273293437157387871705258986099871917966417540876654058494814201298387758398897589067096965831042596549820503271954024060914618827713166558856682532556431752113212579121852262643197793285688427000912661107385894372181894733372455450850792878401851884662029736466347253226459137213099827390996335895626491445191711561068622601422016012476252915188048930715431732630115218728125673783717114598428219560954905903102781512662602434655623053252022044561419468456239468021745465428162862591737661841737216189386986774023592456299134504400843008081145800485276370260627256391668228800031600395509465798444169655506595449426170474615033909178762906574070228787553628571127269493249833827039605209844577900110610360274486211267553760841823752223972395036401073626248465148038463845956880091197798192772939543946824870285700113236534097420412836534697296632242713788553770533214166276913211883764586690453512455892715931482927567976932805323850327706467823204526595071292688161780593505356654935986334945799524852611915436145760396593264864586887652887053905490349498044341641828291630467651050606470014672232133589729525011345517922080140455868799611846230868928215144590925705540343415694307149041355527231273745916294250028327224165674042981127104783559603449484178886142023648716899614732797499748321053803157174443262842236805933306337393157658772241996106632081649068961350165616541048335553346205997134577522243488148971092031479379148494924111055350653849413826801666095545166972628839581449427260368310552084799614873284441010898647032285688000701773577765421254872146358929413089682039725594982891526262173160317551023841094334618191821956491448186121898978907683318019163887465715286979661411519357662725711408732567339501089625954886413194011462386751126465260262836928647888666973439871914108528919680983232480153047966602423932104206686842442462525340167082651764155736029354580385917650560667654416389244138386276469260046206859569500573148583066953495943335182754210638070296158594589738166371583282772463620563020181976354246389285300853040579800120068343804915213048611571152451736459237893474278590156491315219278274191492827690882282882377560651522393942758392338870964634203497527556203084840275001278527104356580268111430439628704879209027808518197673461468170185847613831153853003691135163951195262296652989084091425015590070165684417580822076152778615141000274770581756208442269626604011957840437417536839476928230824309444887079681287407349006915812338534809859288539429657796588790811192072767279654720524035641931116716452572113509410288425998379994692242686635853530779581849385367534202400436252212560283686851523706074836396106464964713127907770283261417891395273396007534568402977392127035277498225164605453070868331232889218105111812404240370557342434033635913989957594221533161062244955234746645246458703239286155943477242079566982451806737427403878087592815353386457171723272423498179888525212968995746840776584394507329831972089436643150957531521175436832740080433470366514211638687759862037951175145629391555952236955063791818446651246445081480458366973096856384387987337074851815426032766604137418934601549104831173925655189132288563714255519851326166725053203216199099041363631277769783986309135549311164497534672926881430872899952392570023773930134560651878409793728719297598250401468075544400701433842660120513846637502639857019037614296055148318690124489431219224553824387644845910487118124153360554334273147146604562022569803637943584976413968490831350586821824381392739128983065166262482976744423178807237095686185329290987370425058146081379286262883696560911809157636991918348452427143085586230689534114093115802170345795566451639094594036237031366444749141963537444108216005080417369280592456325267161966311359763266849853370657395726694275454436111292589773121779047609208587762613285981937925380181708439139003707299425267174092819758155546922562449175609602303815473516186435280314745179095458314534594668652967643117222435533987006996253470373894985410055484169379060087279517523797634230064960782011345360196317439129712195287895842235890595983475247952550071819030345990770893829683970840124404864313919184820806422762640289536601402494405820784041948421454599037905640748608935626978472174131299739066431090447980956655617383163798819317948413041178402284103179064864853374270730464244540019935062870182597797790187548023150380679414070961950362938589933706016629894998694781453604112043977907014557886626676274889499637551917596087752016616408700395834054221081316964797315793601053353811993032200212092896688859928385113037310083621755193482208051295267454031636674006406616941856596285656545954062105780215562278374418028819012259574128842541880865375925732408998485513715452394215973967441369364686340046905070360198036670163506951950439669600925625786591093329696324127694238404072661705475905696074854346125672367096329063422879657962297576560029122628050516247057115882186307308822216845903767241446411128442425951911124996738566399301964286502870372058163055935475146692498808939304527394308565207196591292721188618028134660317936177559395802642821210632341614029010080819469730145139431351637626119448665427210676018753244740017208434301166857278543707462728628581994150859222589667502888450009777294983496306124259146834124933606279479340604949140078154091058715196827465507445410587223437462565271604365463779858818429965746795055256367834839308066607414309068852179804836312956380535421782623897504084006899456894742442830670216798017306791473597660508262810033784988087009199897510763283513773347237149048949213858271215959700301637786825781238162738674825290949465715071869904485892598412956536351737730805457668944256907054342848618899398812080461940708478032676524199229589475901669045708969392637053810924634409999394796670184911437785716615686318429698398972043648691401283081400679258322376248753954023634469255306726616384472691185561494006684591717058373974223184742425392216627509274758982067027021307184190187684177935768151339858129589364769137028393955649497944478155797531198535286697430604572258132240190965832081762422575954454246372830128746735378224519386837787177578771098214553639557312072740577964333964354260464629639226286578958706300323328451404103675648954292507268039086401624127315030561145295500783813294366066400487740978195580623194763479130103044233659104045008349676869810621868898487178049230366576463782921422492810959727317780278894419309779802405665823982651008841992502511543690692402076520481331827563714507784934770805097441276722521003361778951433374495385316791205705803074908715710883132537299314657598674505735679482619104931990653909826486590742277552572655636693087801178257507411425884224319399614575286108405269221705658753490805060719025523923700472740499390978187600631200995236265383044898532364174042545369871422211699976598745914692236258381978935759929322018646973090290038003766237009828149596014670567965166305579275273847473438819304716267757487496335542394431861099823496046758410891448242963291227874863301026835964486364642026657654157067532545980453845360779397986488833341538894300756196589897600332145175599709064960293051004449871347733381187834488296000764208459732072618450069689831889633628178488085110854621637650309489422499584084591113184878906348125493943526634296872138113000599209206957150997621230359320311671900665104893236995991919861668927336977943913302046440987958298444268877330045221354621729267655758674595908509255979528949392705717349305225722693735782618259003154267464691254192166722337452389991326095765858191495648027607696404985654966466326415046630116496960918195139141734103711856648100711624859362315634506912861918280311947934049269943265928117490658238583667551465868891511316117084893065012426535374914019314103608155032733071333752781286404443817616756064223460808550208015041586055888777671786536188151694657577202392410844079113498344843699825076203143765586895379219796827877387465284615453956823087925906980435444414608668159282609577824765444864530333881534477422667869910259717509453949730774822459335021673251824068428391679083838993867054513230256956412526607778165608901551107822403708233147557792059493764101796467830840236603236787485842709256931424206524864315764477002635799335320077554523752063538490716997364308610839537442445498131381116594485819002119363043752526353529237468131899288827889023444676826142726763001268476794070441486845517218563590610905263299797156154059124538389085163362299972490882899886614300502580758172658559649211191517525182807267620052778232219230528905734742328484734574592938705900059454249759807879201773714478735434811068584600945988146680787262268937959768175317700673644483001238951524556331626412595145823293491902334178361754904088496149780500565583818698665445459827964763271463799062201218762477587842340981027342598702509887388430025670051728006479276033071980676817894086161186482078313992279361654423107738462035100554743913384950732786395977164660021762780588255390544946175259553029873273143683250617432874757088843595642580240645441284970731303453551130775349736024864099985918031307205632701149685532311567551944717367306425964390599163668540126960832494843719383167940101713393662913894626286504574632954217053982046561059971538898086498257178850665713568540755715921647557872798789140554141024109918622242073521624250956952865333507867272514820807774909491653503131458431460728396208569197306706183856725248951993213248526507828182212407966006038437550195004539005562833914528319500452831328775423917876579826327583619719032085962967630279555743955963538294173801945382418266120290882577293784248582552575378885167775923200989416266606914778424632825257219197791052472489293636665351254659526490612593993185734634704691335132034466556291001627091899461681464935781832575062717846130410311171391371402868585968682724326676645230525388015131162416395909159709887295247292259895574263080519826431666802896345749077684486817621725201403549359566778382141244785174407423981297995693841554515812165291740553251627708081465631198238368380922129599409074698427684141792703699048732097462950329922891153479707540303723333881143750414957403526901703349564513400314511578788355067091966598095344844457186619559529152283788025292731495485011074146871366380165879680886369941119759467700550870711488641277605373337886256569422239173270774839725940664758766193669210473217091735886965780840291795109593180201400040158420727983660839882304858057740984756516939347218408892618337187060660626056951053612189769243809174511101275520522417333612553813778232026971945892751183605690202521489647715741492523561850600573533043998065755409543409526706784607442581086411685441088769376206778967947461881541460746584855420979918415016382228692218216710975303245751885789830856646368263161010749062291009576065442590295980556549580997363045610205192770796629728992730758290684596261671984085198212795785022998813971898714881852962939636603401774151447175919104509569265544655873614448725985695810627866457928542145993716541699413086017861982020550006604170109759059263713173501227839699980204779033938682909207258975073476333699319074083544757052161977281623686381168739407384303522562094129573589433674854509289400890072116010293507959444443572930822833252928288078513533879698146122483008107952337908406782076969161222016967143618960957506525484418255061726016479624228763811951220088806715538531168109841900444680022802870104110587224005841957002027980216242921157202755733493545012595867511852392268945180199057708811339591921019899099146381714445958319731885775450055256927152428045828361099186418193950309709466454318968863630550018486906310552096494747710882443991690007281808730457819421031658343085098807103266919917762818067473581840391531402117875155996875264820746300234171791345823907262246200202648943830926306457315695216658331458524109601100120306499658327122764546159842577033954205028609274364546061626268901321433212735869159855566519010397845469212209478690556312606090904261838728106375975199771871116155589600102172872610500870405279889635442069991127228187063391652610416323692934305188772823676200969630364344171166783832953940629536606237708265716403373043751314136340096678681354723800731311233931299726332368339438976667150513584755100622284741175846704398005717760526627296186504946739613471832094094084275493708354524518645851131747170461504253845916223748532848392049655919649200849524990352886449974458194107911091263716923403948507153368529078397060393577333364686664461780675523978677028655542949337781810611009786142321152881669881771990084917294620599961995988530844071926292393566144011838135084590690003692997986803251187543103079438025761104995668694545570384068462017162849470258800083449605779686209874910153451341083038372866890024725324066223197908226215230423975634151391747775956371242869366242058087605354557216952467738244773691406388714504986135266797862183195266818538452724749233693280119490351455503064768642388272921622327306425868915378562922202260624768340170315777825407020541121218090288943885832539700417477414642184121454797447451821776351007968526611540726690764172554058948617891943518427345688374657982275875698013236427415689462348677785071159766615577625777272507393608179784980269873929102122501048450286839938158373659519337131831111439074697815495191142638476469402820477747378065481920321526321710721341165888805386419769257467235953003053583924442430536840834792878717968603760459722514914832441302084328947582947444297534024006930257503361724921448368256786881152929868533256078454025800630190621814516814884264030594639219413507365172996927546602375267523460076495221200000465086454785414293154796520980207547462969677388367140569542501646040802894715400392510824317486133827224899159954783095835675937936533270871113410352496304619504597561393002368522833273157751680887209879240752103968862812301762500932491782482353431446735276055381779330739311664220120743756959261646569000804976050950377926759159348250821283133142494387816593836078387522979740982829099780524805630552956760812909108189184222808883263022559406107923848019308458431157237937936572853711476869283594166552290273653133206658124972753982414119800732712089085415018733224959132367047118952582624022527445625757484586030574526469305243878023243207230226210342352604567384156272916066173764593897424137706441199414468497792581763854004852919504317264897256238792686449797601177111159209237098069804050910671473094213822317858034253277299134666171678187690550722576951449703416213653983517548902938600615137494321806644305813424543619518696888229475131750214074332798783249942985658364695316594228474687329634986663574462865337515402654835880162625474642043444737606392569272692170202038276948003284280863904145582667310320926327263666485409331327288687175174997682170378086347114488400414261131853448841877730149955811093205466496841404837149639665323911934938056715743719372812445971758079631248622733802243059528971864424226096867600473365206719355628128992279990145525432170554741728202837220200118469486103702143272105751358265185318150880954508297384202876179122819742675390737412338799108060961231206878728726755048895236823530011354769884823308942289891560830434369699417733562608910691649079465990124266863557420366938119057529315137829621273597290943880422888062176830320612054130701485741936010728580813328315920268982894188935435764450966711696103197100312155244057748479654138940727888119632570157862824072745459805835980053252239843483091911004785617153468750477674625949890707770742672838279007695305273400950881122527239284163981987976097296519650115889682786244292539335152128473030845959852831364982048770666579289554018532170506460554027739163142855175090957395767472783798154757838739302162256912383717418126783501573357893533558848034361957741786819384133169391383940943392949320126330734064920140256310980467378182824823220981524722682238489814041872378145496453291663743322915682534642249954367074379900335960278494852465487877357434957158761638670644234581173973549314237434435844233023507585031867868512575900794430018998168008691424622293552075357632412532699209558611108716004233752080178742619988746952673915909362270516918537557880514054219354523231165142004816999725407652518404271165387558944622517241983192104372800724473795634923552637540361997189106038835042919176866257932412668052018157031630522926774264503388212850209235985943730508087034750036160591462814413291270468593588340118392428501046488185458910045534329566213023478066579182504818998690916501042113819661489787517150537681176507387148833815782002543946627721749214222407531839807056647986717507650208134455063325934389942947945754973875122115734577785211028291655105209605343361454516798253207527353281894599981766983282770006188199921477408036260680396148100167139850708779066511536821358807612563000077374709964821289053316092904760713551682405043642669515917364507629058560608522638223991059191200914332496361586815994823672083047222344678516032348440766496878602390328303707023508401965450620409521316069295440727281159648350880996306407131810519158783036059489128479763452803083089292082052063596422533435576498476326108830441213328300629058882885724902466334848529994195059555777666660924042723738101550960526439263531651898042700364320233391976914119227042595331473351259249571153098545630204281354327074723299875332396355290265683826282704529623350859859758774767206083099776012460897228845582311872520725925783705712440051522558563835074099717620606644032222597838288617394206562284449968739918897062699488984824231203301816211897291133269043263807615864768754746461774691161955630588596794733756884637454568093625713620984098900013462796081664270343163528090269415209815572137988042554081347833929156203794983970555656990952983543697051112319934647548505549258139206442116044958585875367997435291888587796391560534595961695354196402000251739742351912810525836348449351250557151528311727884233072762083996987700793666409835288719838590880721575986871733554348180822601706889438627523848709735224917422545010743650129989616160515378594022734412851465190695464004389001847363440165801753519469059982568439128046793053722456101649542731575932491040836957048675238928142146270669249033156257980166534329197641192388594862572532622804980508194925500371073785967503320851599229123084508002150997828204805447879410797415500313385032598995086179906506998207095738771957372513256810262133582106437681075552272880309619632372393162796943103256375255796344429644632930268036386099757143595085131857972692470606863610709212229119660757432621864833362772867104038433649475161417893850832270368656463546269963517732850488343527981671610955795513542210624844996372380807771526200883510558697759096057053423925364915810983847388054459530133141114620987168727101918030419121833598704918633682898863212835731689275541499010519346905469073464087240347102510426629930815102299696942508191535738642141046167828757860477833751959950334383856126095044596616659894110582594925480765196022330158155732021599072327497533383554492981493114303288286717590305375010817257078779128353605582311189490854663902717010120910829168728629373290034021912903255769922469850172142739601410839888671781196356364650713303783112746227075501679310296636496022809835415939372259811386128956247424355539254902642181252119808659921018472667515691752809266064715946871335831806395559268244076111403946542400463450340477472812871798829423631139112766729432409762219331620887327029960675419718901458738873185906202126601746488247875432323542028502719344554936472593459879853939669209417782655267914465338001877158102545838392436512191530409699982284778752179080452337946151398469686889231226462202479359852157039986379928956344302682846191657703113803852110097850638555992546627401981723481801323722813878763600721132193594413220302984338404162988501355580830937098366246403781462571035298223686166472353332139809082932404568418756240183118722873346150238976167500430575183984419309378657381812539433859256198929216861894398425859881326119600108256691874393492081702069927126296483806619488673049388060717190644763435186446960245299090286773749106822609034087554899511629453561225985947094935450768883233876485927958449430479185818418502813063827960582038446180871368985710227637153863048759106887818329779010334331451706771913131454929660968509470350996841311126137970545036605892763180136706045570655061745779840088001934667444159773573656287442412679015021059130464090691947182361114892663858924363497327473307738154293809255739413233658246203515156967856957581153471262556203909578200065012919234701363616318547404853343220561911076180331201843613496063770617859462863768651094104351703863040672762747158819451911642927980353305243709961741973620463293655138581056113681095781517423665034147885666058045514585736753217588459108943601360312956353219039712820929062424123070084101883189191593356754434834536772457340691005598177433020990946509024478734288342079015752980557097093913373826638393502254272984454993923032520853397791452367070754345278631726212286796450702842256348878779481186328989992821436302215517267941290163226696017903010573776923943494787318437350083617625223065640810517525204926538548164551685221390928257803335074138375905712495417131675085127085265404274745258939836872575126680470618445263428949431003627744648821660679817492681538706566623735626934133796025620320607650397959816887326539568783981572103167178179225938217335118470333850717839112903833381514070911536771317847656829943153251845878146953792857033378006148008829242481309026888235576525660777653573655075998875251773272299643931991062463462356713572351980193633180591263136453339367406738889003191188131211569256989482622289501961544345170928236749501436915370679723337586498872297021693644695550002424313242547847123962359947884773736136336398041329591740237540859046425310399607387653442190313048121238149321966908792572386139019395564602624165255958327532885133033302590321229359992095447087796014880742258289594722960770913591858897719622364521067390299612853670402706208422630841998832261082154320933784014130682737857205692780124283858153591684344623853274932383261624007703727699635137257434197804227859796704043011323068439653889929409964768955323482083654525026890028174187993337129179938147914063288413667535036605754679267444446908754456398603335668004216868939630959973250618959926839027712090245262380564146321204984223274149620965462165845666337377234826801932716165683030148413854582382721111306108598720737915768143350992084795442340741354312936725672049080233559586237094892064429007193074693433711556980979885074281788708470984837916517976443394933591361446775087168978072921433234461151319853412701211851927861761726634997379595308897502872524327613685877284602712317238926668974845707194311802832520522611439813297048227614888391990128400914886656262569783166553327680946668627143095097173330567837623599461845470087928622809878498287709305580164089970687147965685392293628984173105705708252612720236572007999758313634593256980920690745179190035794242233517279875537446946618330205127556748037398598157797382839331044544007834210764412788206728509441012335629799648671264895968540327964155101379889377907642192887633352399459831615507928920914692336638060416925915712418294907669631452513488402830852569997926721714943235344345178832569380728515448621586409154352485209865082277729092119270823559311666404019177639243011511020568927081070397756389601729949094767935895421574812659159512954331475022442696674289091192390616267358607152295406397642278051771720329813103863099466154160309568616124529946213178257494577771297501903246286748542186662295548613514691149182133647832411050802870749775137500843925543016166069845011750855146571155553665489490955588951730657038813923106890472461315577107172719935473025086094384911208666263059722996355517769057625899059288263797099607232120488332881693276189515454935863320531455130764133178729202063468953002378958308291955921342671421767504384752134160806384802142138392335544408548495161340704752737812723804842324026273684566540008088273988098346272849630481968301337627098863812837557983450690673329913807725632810592563207937439527822228652657002666963019957039765633847653918727762673078761861178676986187675764876531617628909362693405940861364055360387868978508906299625314215649264790894077239354515790606633985375266764465727548660207827054546005091598463980062133654038819320587805201437992302836153681240866819413697224539951974940251254418419882850662000531741082981532502380982994811886936578294629417174493557622638300660508928247530037599229529872589656154866854295384006805030969524025061621594992059726822744074755130198425308227920393473934943411151126096606934270364502862084209905808860131310502390805857055963195945315720969255065738384037858324252722892573235963392950810158641834909566466809096867038847281364622859839766425661531616979132106722174335957108402989802023780632032741400905372904854812049553773523313427046818685605274714215164307276748230601901936836563286399379799905724112510902673502021803899072008920906396660365751351605735779013621120837889093645714257326239310217461787849201520808730290261855848093605607059085779637210821358822968655237513720455677169227512214141556604280019303130960886551478876458908349070020124468235933990556224853386017450232785610692079874803948379617408106329319382440373015282458731419072406811319188342937469609283353851208756460341618480913974601289062560181573950413824422549547971521048327936975926816626174334898982685425584389512943001329033949978800339083816197143571511614347431873988290291098453634495274492397576809730144788385255177067564496909333583586843023053460475320138063634088423218393536787480907501319980690213888342105150069659122490324331046359949240136916552103791842748819379927106046758200328376157771599408416793122125988049819471910342734419550245668737623768016196162874070806245742221250494304917332970212544666864180067330466009253039636793000690853106321318983180306991687553220093496778476508154888727300988958848249465860358798250706006621740057292340372052650522668556457793323493013963069506572750437526719286194983236828165107797905953237785560932081525652150300586441525232194547518531164534094359697573670723409382553198756775344534112279249980061958182932750551753454325725928834380979927112596811436798084369384853421779359763384811587368214387029602546330498987308850768700649868424165471926801344506773568086397414696425710864622077122910634178484934125447427232431814120533314315320926630456530854266113463706828816203340904076662501740921172762152752897198516307040303985434433622796444742633481273930571640105201242976294039773952433065484256083912254337264865784099987730806542365891664293947360889078018900971600312663827625139487296018211758026802240478485815163327007692601985749531839960949318004479493372359035749892829191879599805067515015183326691879324434450909618538141870091813984112503361490807574630541691260416788862874509787078229277229093003672323138428740853492310981105769497406915961373539022441259663431685131545712098201009485955197361633922430203425242060822056954938399986784850939239416355163526910472369324963512766286081761346146830665637561635338606941731993922234427657182800265592182600846968976828498872526060650132659140181084049302865469074934913656498688410185122465994110966516595753703751023308177145277888160177811342560211630480042168885506030335165582259919793400415692470202932304395136774146944054307745698163814080049885648508550482947610417668329328818566836879445541391298311319321999015467714388784225883257798259586733303469290548845687932123013478808486501761292393927346203725836433167025200925121685132377014802637399420872023358819231020166595357675406268329610435647732234522478367061636720641704257789493547108821847998222244701904158048267375020310480263977358255522831641871420563833047812433635443106256890182924088989555873787321144776647631370160559126613960014722317728912351803684113024212224259060508453240893003817862562728610459446769875662726808886599201004991844800655845524377864969854349162820660163938789500087439585420066836651544382177633397462066420798379457005770980974677785989156668012524152156000005713963525304141953069452241322376740756930323086024706139749112327844106980390613338953032209772785158462381319507690756752892817518249481035084683392352462800455391820809754739809111459900128630279547595366645849278895414585055633752740996482358767942762250499364262552515838637159502422102767180784296437128357505707622064887275231550061303803543399477114943041100878532941571966586120300276097655663051308273861573057401245914766636650574256175910765546461608954256371665322283517567360484878179939354095974452029818222888148827202662201039588734310419510304821680951419479898349539415898227295658247900609712782935780732759230051235215753978425049609275279369646070278191576976030896726905466529334040104585861942278997643666794908305905147392676764839313288186979071440300132127706447740378323899885791789912666222839628550557052231534941074257917939320274871232130774968829948946345757338002267003823311122855747338686915871029059251657935525463909176125280046964177303214232361401822219695272403858371419005136481090811127823285874048187180548819930047750362263163363963243691415382362519831546007400250800141536981932212824397740896852749665322393205466627711015026387372957344479139410388012669046400276007717596497021448651083124119624568832122904034427982143945721421652737551966090798543921126902127255313130527196628080487985694050307473152384009174371517539090573666894729365254554041163722217596155979359154455830289690597265372138283933851529552855078134552269902707224097169254078314012465815691877138372279139099483935703545058273375670203950681225764744455785164872245832069440207477744716510902957119610344898499185210982421844359783113250965455115584022676092329718869654032509791184661354302205819098413383526070835529422593567368852732145847937554440016632910276309898022323942187705531430127563885427197974840611978501273943726732177160640148822388858675728529787823740286503271844111167238025592209798279924313498915543991437686569368357725246990159975514335166113499492619579075238347828941900887542453505774300315540584335421992219716835085253648815723852066617858782805917228661357263392940972321455376110740209452146746591768019689925795203141350811524690224612916148303695717249378124842923098684628145333361309985967315495088095624175667771291869251822302292399006945463165744983954371908192259743726548633118826516325567665789610182523315487325458592305466569805719774993125844550981835234292104821849495415210061231238564065691643316645592712174768691732272954667447008200699659028658971233703044037386770595691641060097321792472358553552170580717195157683692616204762649888243285148934798047392877780234973750789111449798650947216059500393788710647959153226913838494392028007426623598337356376426517686389923772038948691581525407930589864227405087136123416451061066668307480026585802518554126832987086711697081767011734847980669918552339613236610053431700513369814936999354989780433286470695897292291015162640904142747740167837364741465735526472543657128451062421727077642299583611349789973949954660112559910672959292670451513574674208311204315890097381158237089022108900750097738638250206524374053363390524693516001199856467774538305486470083055189406727817258499511271882544598029073361402515589500799611075596629581301042186594927388986542064656047243985675402256300516068240358993857020375278573939646860640454309125459102561225426176694957247133546463935808173102659784717843987401523102698496458979396921234628297606328517905339045509602189145907405918862164289280171514974188775988418726214571354921808037087412272013819746612098120555830165658035217873754962085973197227259439045115195686616066333235023236344833843803631794672109971115848880688949628299698198850271181255076666639316197243257004472442517915741495446535444588253261302345541062673618279001744103645882367467836581951854455059381902978653060788371689620211814168069862729460055110800349255395025045539502404770429939696986633983187361751664748906291951240372532112487110721497055014118069804053425716067452963486171912294742041235038190523310240684970573856593976980461608368204890184408533391664048305398167299253183470946353834261388923778867997433351855736955094109932650305403359385569874365139521276015668085689021636316921541590705193669762152497118586643770556548123772116664868246802453643010380202841361223712145164971510962473890823089126198109866976454091431363468479172584352621559935017275162237949675970562028190112448463587383097051917835295051843214868812070930599139587392836238077610549553310632485889417427714856528669766500834163629162068111671523085707175180257840442130672915809129788135269989536098157435068689988842777312932886576608458888979034860804856837247670811494479851573029125805163344427401997768383249489286524659002983592541257923202619568441609838573316413629096914457040105057105513798850998846290373178483274377830209874266692645437219021238620098903745041977835921354149076183212451842470750731354102187789969886423920007375138079672559915361512359312728931837666480980399603314588587255596041494345492208127430196491266780354981289937765626098042647414964481029310201152828255700424087220389450381817996457530044888889511383739133806816321329594090622237417270844371893170566605849644648942541689097104191841691534302115572929167464334778662018713741430253209420312693742947369630797874323311918903793802325178017987227694594902204154580716363617477732373666242099670483213899273936651584331503142762815518078714400538192009110431444857816860114333197862817964174500899848736184529588642784754423944641206175587590343187896343793898978366924996012897433294238543578055917577564225338948259585567002371538529455204914084904886087818736922972303706646102940103179491126173188285226574727678383933100046185014169374214958555069222816335500166053221816682401034501685127675399722204406355042193977780432725606326026580014000973730743910334357892725315657693313043287356992031862717333316222817084126749152558512448688182685318942555677354835412276254223408163035288451195005549167279006143549048817133759146955006162015739758578142646598645208634660003337631637468362528097647706403950518782006240335431821256689071977350781654041526563375787557921417127459865016524905572442313281260220059145829220825146497435011074056530814800348059649102916062977444594032969922090729868718141967485222257862040956793536210530308711998827980004741327545117341736308067242412176339488926973317066908512288722321523497850189603234122932089758883067564218151220944209886182227900709471581175477281428407470968243178854044768729581599770731436447837549395903865532641862169486032197821331363904540748557770725592841220318874151696100539477505449490705600234732136857891820780457620053433097146872699969379116739707858140447440227034881702754540386206676956811273367725214877089108153594235725074655900125602938973081824724353467601429622900584620525856046355582477206345757168809023255404498462935119001241224993193405967108599581947845592560078159457410454383134711203920517352418594717923862072006004838349565153680505840389410413322048722853771690609394376571973561622629652036808391997352172234379667713191832874564112556407744820265810113276194784477056036096253893522750048378440836695684695826424710831099491370356573594304182140893664469615242243595250935460054811741516717543851288402136351825693239819933095852485256334475695693100039684922583434523994807556971844163716056268598753886772322367230399210247929138307264256968080911555341202893171127040642108221593270125366151214764223510796169289982737271573698340424073027662499525143305809062168622569324465688277070469398431071370046760947873630556375919058348080242565157354912074157865175741150399413540188203723775422535752124290934907193368177393016207902809539534973821677058883314802611757456050676577603771534013116465484865727754093957104341919290558895432895167273612888480989024261458539196296631333852095472395188387618375598623052657334854319888562669608319411314648320577641425261645807421608809430261696696628897794404317332616751937448629517466855170278200347447616584417006759220177846614824396979170973126819496547721015844333744758143417315560354232783356457732499697634653271470293805574640966447554610892362551997599768910009848334853504557660924731354955183486719438446554522789704650183124033102511049878168147525064654045789575873218534413579607718157150534610533687027370538748816522636860365270634934889138750749931990995062552113299549456096190522301759353896344457014342017092551352994686654364991014951480316009950867150503021715440103788096044714105330964452463773658896571849922643861243559842651844914142506154253190439324738898794031648951125488273698921646874049941630045470477218840687164773629305883595513024105736078055652174503683415254682420957114808601899790359356098836099466754016241266398659473038084267221631857720688940356659694842188234131058719909005007154315018549410220381980755894423833196519761151633810667119105414453132996529952033165655376582096986120502087482043764180173429307800529282921628606364038664192561699848936412899438448462727059801970012965392801892162479933890642979176668271051405851229553913208898674573055508144447924172642831490716528604519780654921370801838231961475127875505837814664578369859565326380748940459397663513012763798850216721488030756677086655401459447495500763589068308938920732383804963181981345257296224762021041994552178634253581700568525547198958371075145704851244978223985955764088374131092323002324166131683326157497531581164808114066935301287685197585405957191738132668944938677118055141844044728410946666361105726300441814332645007649001337376162686537423524995788302709869679460048493704286353942230394362024439376633165808309769283567711067770593830145645913294546513519686993029220530236460996526960119495892713064213556628943644635626906858650989939391962174386319891161139246874999835448281390989730342093308635014359489920724397297168178731468055939210039061891581080060003581959514153650260176061290937478957975866146273867399546485827223579657117459604970960751025616164772652866083041348769443773814740641660611691002841103138692201938065410898580945293636497332649549799970416367672843725080176915213565073811599211728879350149989303247445933888325684516081785872858410505744624737329932255744995811555530839728172527290405783731301636171569320277880245818222400750955325297958073038147087390848303588843597416488555145666012509361496364095846189190404287558751811105133191224351077306246097317544537092200713382146114444113806171005030595812185588971742857930311465900715901420464831071064322085047251903029945789658071885255367439183254855435995961216803357541681667241583572752192125276083437469333758990253417890022282308770083407930934603636623476498892683942284824460485833565330076593456737003298091506770520869798063462772345336627985411848996908626626759935013568473630174085795462572845283185644519358066922481506020613435901448574342103845910949922681841052723314926593472292495086921547206055717533810358997876041642688008753217629377890738895161249224593523302716276102176251131127587032427335254034355986030580404944681069003168410414805000188514711738561277077777383106174292732882792213496191578692957151563177990113038086541985409048941373334086460949261904073136168656678320682929655752128462390506126586442140219264483372261283799361584884090235860766702208787930766137044093696452029674320983734870451627623382758750579479137784258236212645826358104991007650559936375721136802237161306357875642981126487164558144229178179706108794721578669979545059777885799598528982382623030588717704707275206472991393198964461769871456265584977198510350455188362564147373278744054358432560884129064931819627150704995930392325170540574444509840600193896238376067934013820669164783720539056723925682379541593627438310147071842850502378418322936556523257150709463639077398086557569354602152044654093124907262760597289900873998907166173915487402789413791446981915833984344333728165175912123808258829581817140760373310492126927589962262991986249157972976373433171142287174737517671044884439105138258129395938176995417648923846663032169907016102905770295287363443281460735151947117021392243405877422820924165675247838910489056991832348995912469396943731300123671675082290520984571204226694797144015445923083597740304170165143415062254711481083791152318135603612141247606932287350903945657155312140007158169760614254269235902557566144164407248338063739664479439457688887852522860771931997211363132449182163168952620011037009054089095755344881750748429628798816778427854700955813180500898229702342140919805030956868528407483704125758995892679973283976978056713700510570009619196103589330412385896911405594770344998009916787095127413908724703586707190171528778711376611725243073405070284774717167021792175877621773650448496589915988644698166196587947715340714657639571298777124482658395896077048087653314501019177497574802376173160866796252222333111150966119509871532399396027668833179788820031100346450030472541269347592146965920642507955858083073721515205123017433958647169739397876468159134789270584811280143467203679842153238368769157447555101773645894555023785882698794497638445100354760254793086790994482339400952201648398361382056569705187172036234717088490330602257323405317997745952421065023991315499122302859976944242591678983851289718432889392646781464617737772488638634184196706015560758161054037868539013632906042509481976135970801435454886221442840080613773918578783804330822397507056520733930836636311689120523850839609945089921179941752653375425880158453868357739050294648346073042401266310212184727272686064200832774149225720694716123403294668192824577866373565138260317489897239272677208506923288688110862726123670185187310665064923817269347273039673920777146599598089836966399664135464300066605894052104376442172762479324040830983053401603509460143945812042141468940411969720578789675797198154859445362940617166148882714819597188438665475185783450160864449694526258093461806117217554791456141422957443987680305765326801518386031437054082830238337620394470043856165033108089010821704778175959540062502545240909599449563678743781363355311796041886707460219058240493904988280274346411925998680976670045354501933579657319098981127101891280254639358740071080827839121352077508387817832462096076892650161164151583732566260364649843019024792120100637208129024544578354729400145861112406937615164317984021995060743573999270740775270498209988274292821408005596970527479550180220248099337304843833105655439859273209883998790302238210727728515161112625316144888256942842945864753607651356524003037776247179245040897154080004062252642941839548068022567511972666559455726711126801063184620036909897081054565501637379354446221992916388333806366593604687583025021495474680613420817421519078159836979007547959535467192666380475844508795664220018732836684821976757838644374786541222851662692519772204099756532375346193118287323043764836804233514614485517784056679905074693123657539323071088271281448025777250666878760945528345648110771134058426544792972621990057586998513290714975138657359725248496127119194190970882448293794728010018134373399936497675946792835031681713689251506281799859922940671591989178281785286343529120796187315509885870505777613058028606705468874944168127365064247526790805289887478386728566383802785046157090043618012496826891197396879510193024607860312204348560396810919771816366630588279776346854575846350983602947883591479555469025911377754022585805467277574411248139243362303491945415000753604623001193797448041603078937857444804322902387093867858689376804703250075678000163715633376735402470918626996814495814918304288323153849637870206666649345929283975733282744449828833757311134046767396988978484928842298467242704613509854785060281797328420057541861940502316751839815631530653841471934538833884060223643679880516998469468755861253504995174606710977643374494871381443271085491280936256137194100407099003511272213088658370423954476839533759409432908109006851784826957668334165384396170195609595560565442884294272697405610345573854470381237726925034278988654528418500648071608847502165134227725637274002660005750057605732239011090394088140659332061390919583166763821324248914887907383488788680735094371985485659594189196005430140386337008728917209560451337416219892787295202187765108281855093070593077225593385933251523541828310013024718497581654413812968929548715805250095732388314606937873291459498347352060145462919912321767159469405746106354615329708599389708057740892048765391828614423233311351770087646490809734549651162895929864316449318788178116569753054947996735989443546291678842193684098220194052626230331935328603152151504642096045567025614934722272173798482379496675497002467084279784810780667701544953360382563383873089071077438973960226001857379076689318385412870676306252920360659834534682712436004445307060386550241349440412175685534552663922353224566057168361099948429566880596828236552301973658062230009346360346461651455222902072019052572213646327003232229720216840427278637064472665945640275121992760066457478134269967754738962139198307748882492416881416658388786296871374723738418750959215933470063190195374110811188954346562668287550683336897439774990776802696028568461003490780869394512863599313278866770823727023801119534889029682341273196328271053559536395232804854190930428309082729789790482684770370274506313908224896580558454218474937815715830744783988929589141950026362454810081328369924957179766821186216467024283557074990436130167044154887755661456712636279359377854889844177622963267485851363238495811461959804227572008912571934415412568071481024495242418637290479515098252713914693028157517361192429941505323472986562123351972231987100028380877965522888628573584638596584710053983905244329778504007577145570534298650851580819835394867085820783001624428556717343812798880094998525125684347111985268511114883122027333981753621724636087317213603924968637741967843676156181998607527856014421105065906357649112123577247247458158971998761026930043640904721582238693384297161455904260047708261571556916125907176313022181326084200460812907499631697819642092356661767583093707019354290797436810385991075847510437914305785017789337099931817021395629442337764235650432387954667704736243129965729940178590277948877872434349998417626837115979583627287692488216336736974251265174370034894952806199686444200870460109120773765517043578088441758895706558966452156491990665889245232544308819133577883775233986204308254610392115817054257872620685726971000565934960237847663706584677793514178244715568401109069832592110343767575117427726160447906513980416623626990912590481627599334997888245633015375542551772507951622758754112027896904120384533445559786751340691232943124066746851723988455063429484498417938834769429285363174027811514969772547608734050617009813298053848677535479574823889342319501886539207997150122364730717556057497769563364942162408962244382262274860359035213093631950310186173074332245062575175366886591988207794714731774715980121511661385966050368881375444984093905542368850985362603019797095217772709696880577746599259852729824596861342888671261123522522649273175931082076297069147735924646080951882773284269471258852899244236562313102487937174180778285726921249885545969559387526560159445331046466446835252316370536586727167207592713130430096938538167536924750129695436958816758300012964554731789441615524700122234488380299325841260669680592867591840132829265159876920980139580913970928851170628789052822568256910038317388009437148600433571653937613247499556453257125247282720164297164214956318885313537286858955354733641653967877693067339284368654463677311846732795563473840955718140603697851284220168067823581421770744125745643671299153241715555759450860598681480455855330879722949590975671804720147766532794613157489994527977388000752917793160892452555418358178369389133357204568574658632905836488124633072792425810697686054976670317676891989272318476448908753503038592006789865921495874350232108296502554629727186694440782393966255400482071963902692813454805630993129726325884617756895575826933692711305584926312810918853203997236045510701825365470404642001051797335411371720862502117560707205660282460021641488441282500729168075355230905810934143075727373486020777156475964158452050981996254222828189536948775146169299425193767852980863175823170295459664225730239933584380277077275577338981585667653821697999409604385163896166716806562077246898368936447019432586924679279539481592628343086071811026300975051667391361243046674582045676875477847041079592027762633436157117199092072930899043828286783074147685080882704911436425339202820923535909850169129597478382863400245387011401315961545911665942595056282804602467607897463709249429452581955074017167573790044317419477492054274416271723007737559469681166497680832790619199308308614766920795426363777501513418324073527476611030856570142404513215458032882306525883459074957276471915398360096171793621724667760009891271196583476270869681009993961729167732049685143162831148679626168310471376163010491190362547266139129848034880450627498840211411001267824140331417591614307740061251806995412275729099263502799751207965610945343488233677475368440961754733840965914092296383420845328207253214461899392300027127874293172394397555952985475031241616444983449056808391834822593347927949271122890669544894431359170088585575114499337414138847010557513410726906464013752604092412648576775136999104373016010382066249888927824989042899963053750600616678485150263907696418957696424209435312985002642670349772179753318618000240993402361504069572762387379476437271541576574640239518738771130454260742134998038882738430171951226557239156362932864171775030213849396579123825328337104266025306489762981555039917296560051967015615110001458428309797635443005461984790758223890751274559338165175079491440709509335447483600312792125549116801198412252646547363509927566142176770604757039988259791879521620032369293358120457732535223739120823020995331227512260800271240427342658155306202796873010815440412297626298791893225568802220055165224281517699480877642677832640153382460891816344372845692219499830743979968608749698338356163124702548599192371821108004817885733299623141447437936488582012066768499232121851625159164820504204462154831261269138860278134675979333777395625721666968843341675878711248496864153091092700006099811163927258392335187511893608183170344697841319343477496239266823564545706024383497222875481091567947141821375055898386081383993823707977464221441696875902181647701640003119714917575992945733817583272143723981725895496343488178620424473946093348119669920990620039392624338792699645341395752441594328393893693971535626818990154029453572942146948770370564201215568748502696862926502512613397008082568158912084377106061587300501858988470160496998841988039536863154477227603766769887325329123865538336984689699525151948366125680686492190351385446466680870925218213298010177530865515373612794464988032211605361300360039117317901193681266804479289220994283353851871060715322587414054417061347000394301347491323233323401233961731073702296936494065716887241155613038806611746781104261949391609442978123620388699810243329865139367441055175436790100789624767206468557053180511302051156571569488378152853974079714278858917189139078502189430972559525500838940279885498709949485495011851800630705960570558216925663554064435294942085897279590169664347327121957598872670414609085753510738273436422256623950361303038028996759056277925340698037056160570095418322674707496850585277303243025845434260861386735403630837102576484646642493120015559331698343527268796754775095065197017918209525689618110534546784370910623165794513333577696002236620608170530089204528648398504891961438115597737472865176754296718033571812858031815303599037080587971338886353034642063059428241408186062187466237200065562455562136210371046615472350429113139438279014667827097824684764471009401825642725941770354546872217735355869775342098121714119368543957246009777516025600503536458586519066411958559006954573072971710901663147346580547205134052773633893834142691503888444444826431023376545307482624829306277709527549919708807084878424889388366726011829966172921070682750233839024072413761449141796623111466456243057020194698936647368639676162231582721767340262851443572386350403060668789501694625075344639956378718949874770752614265952224669567531141388556834335388219013280632003388927064958928017812784974851584484590033347877432799019047503060820346801642941648511989278733036718860557619238095114667619730479184517597318010738624969468870906207956308097559322530922780620949312720470665604817422219597726421763024067257003674001271551804691996444287496760774663198724968546698310409588013156813485989321375813172159905699031991346842464155103466497268809335595300751154336722237997597547070933787130691247960403662123103785570790079850601282606742991087118603818939624041171903388619913176104685634693032197118476081590799498056299167367689460751685886089059925306153213062166337090530189566779554338637985830238210899205640506743233866807637639513152842267839232221234731471970072283768543707860266828104538952833917452293449746155889065124757095741650391287554840293463697444293150798259794828674232116789896174514656076161548450758214587915618746071839224357119487008379687914723910063112196997902354790408587927043494522230188326714449262467060228040392069118049289553162542741365791943271334302201409267481294479022176243572262298400195840566773763147152305505706550781534998595918381723693470791325916370313914347395900062073131309101320233535493677680250958330084211574661934163299551203646148105589655551959387134720422635996334774177779762421040461086777970873577758825006079266821985307401775919349645374324225468451970031300185868952565165354234234979698970197431306928506782062946660810687927397221051459409588139254671424138395902555973879193491931263695168935250066849164546219296766964686831510462950458564029077171237730547039966942930707189150790326168964023859920458585534011296755939124648240324503412331187819110099779984535519939575930134734677923026669495821229645991336166997738990412021550910088748029474285328964940346362665745715200594299357228321095160304558850543674972645388650821661919599941821687692199111846981459900113953774250206176118719236085699464634200441050701079790021586109885777353769929922711788965629403583137992034166763586208982103151462137229870396853135744112109615709256972081582280027335765143703147695524028229539140140034710811879649487372660132237536015561844091780313150582170758340033850669271450254316432224504346676512077364256677754297001202295439464952746235327590864017113256725112837037891726367884175656989948958240544177994774362898162347648725913358807641507032951936339171622355827596600176793418560752988622595181598797766853385361966323593087319754329881733288706672629468035021189509120759069041806345571164991223758186078758151344958199490458084089409579101592707790442862454105650486482319240519512079368594197688522079099547905414345558046704084744918740559315329188538671437792232670964028064709280167080383556437909791581997774865153937209891694233561009442008207691178907977031782583846396252964512949338193814952087036722492483171492895051378628518791081002644948987551390421330695736205948510629184786303999499843502922697758023904060160073469303260962140931613896825519039951380757709465821621412325820993220778403007339697703348890435952521250132153571300868068463628359077452938692396644318803177146145333788227912720853580894867064817801240405760447230124928473473371022648365744937629719889015028055183375576788636648834310636072429646831449464266155667786387345635494617828647550601017406341157629062837295562154790982365292275601514152244454712175582748118687310223361369107604873701098004160275652155427817919248122454358827519934965245420146763409964029625787821890929701194715561714536498651060848529822213512590623787463595783326287207461132897769085324837726748724090916953162286810083582347630573545464456472923777147173501159976647027124902212888039847784157996873433268697890099852814815330201690051682171092919446754041295886859718711457740512719516446845035109798043910615998625962680455446538199836843645284458100448305782127400245432022069010041236247715023203371494313909718448277222296775981620723006862070933175798839433025192633524117137037766871319352930092525704517771820783543148015238796749579362413011264659230985219090151007258710498735963861982702454845529051234062358230290754203173818274810255863942184383094021066400049966247870290068659333213472753748897007046372405083252647034350085180549149009985368691173679198247057018308394163154401655702187167806255360203558493563365148443823682548100655881868310430051509122437012988994426221158846346215965256489766643463888049954052749078297234195616076969152128263214700581790295271177292761844703363876798546496421226750111858321866674450136482452020890336141239667792796345559586336311321971497998859727547883975683362862933256022069370086217653832485591043830480006984722766161156575730547987516750901298234858038716282965601119764918151194284949073451485078058112937479315211447011508064651435240514386628223085735829354988868672350067001326907271902480790869206712403303000595869499820925660553362000632997309723182462730723528370626357811717926827050673676895706802251429386141021910061153897735109827265047326693936781392141513922133202418881334775230511008171742322442254604809847932780564014283528920177498819933607921677087202809961123964211636068937369591686313124770442096044999598058794577744973599979038087168207137896677728890094009969906359521140144581512238784602443044057278901779748798466914782416066397780467111190500401165744251566987308642453932948436574738369446586230675394048294578036748221373565308513012029254077664711635611669150833944631222351802146130083487999126217261161203258361394235157272829273179902566308257155811081241525037635159917671085019919866076018000590941906565006917578757431323896061157945146689204760750359374516270937065392901227798586397991604931784812781503854884665274767867532615647350281940674619481353750994426446593213768335293753542377089676149750095099536420930044028420348420142619314534766624129010409488763119084674130199906943172118404030333235471764773508202552004115971902940653211798942455634738501483419988578228881020180138753587649140586604868445596005777049225087062088373766330185046075262324268872347917919415419349105385393665918493103858380531021116122622126797430441203015506461296728737933676586648028984908475717104634145289299345917255906515523322598648716220067551601289153178077060872464828966291142344972394794788025149493349673899049236066629226262397113539361748708737622528809277686247279509600198409670271516183675491073888923965482290050067314925960726827368919257424476904390266163508842742657681431651313561700545653034916893303923023643907976185507207586877662506569196784561926498738582957860379879080735045965098441184752212119570012678995414382775083905365690384018658230948853861117589706924511399438143132343841066653000338052661694404607846851137704693140405162918289934123558369955986923016376472338359522435742729890098362568946918215595200870741501921021283861352069112969816296463675921145093339160373478195663496117155439971200068246990046070624406804126961272741034375942615862647869928669283955050381327738402660881627440819656722275490595764297609183611893121063981711230848256981252665967075283981322173763858888786478370307993140267932751636086501467582230007674779547378307960694081342385541122262697666422024616910935843348732371176892447759394170279990520552262771403263454499150204645350826077315196040424859976026017416894090316442553644168073911455024682603543774793648961482450975962840208765487723837986964203055537040927783834961917980356724447742606862596451034864237935644774365957829039338442630385181636574272529160976843785029235365173616507966219599273623152608993732943013772286258271315323664278789221881402672587283175378475273836835073503992307456342466270152244483361230771828503771494414818297273388315354314665144862985292501844577755506216881098808659285244117954245901765900610774193595296924005790222015360721060587415598993931160340664810604922864174998129615034307996893539262234779554157691632039108523498507163775435031144509550773152272788948788643336776158809715145713445392758122749606639154279362804410062594784965138667156226572685119687295067183771870524958758511447128019587280265588946701140422828265969458261042934699572011722130547231676985883649560847075607314767204889995592962474114040853957480791911800810793847052832625831647713743391345369722607007716534990091512511606468780419366982290806486991610035339397123228302843602429033724507444332851080126589351668616847549811043306287893558813381642527746662254078175554046802136343711081120244905559391578972039066278036149065403738396036799572163724161579548607627528830142322009177455377558818830015174556273908335042845218281241337490188609739133503464782728269369181149432047615695363092548269622593392569768958637564914254964102274940240607632617436813994153748959141231668317517884033348903648368832926407256518824305352710555706350585377935842213479452488643690732369541298845482253784701371657866447234827844215372103600312478624354087576327777370980514873618947257960437636468558695167401295498278083433435409817293252613245604662627394438542191719813543294258169398058935246785920186968559953417676690694378407203503877981576810609730427874295571662350556859985452384400000455670471300194020498379357987021118239384537461442070139884270204124471365989539720265156817271229838316333843069982499013821078817586374861899356488591897559446123493648217984406809982499106265653416895723065657723998868804777583364031076604749555414804324392179728728971525512303240275873497440568269808429360493010849345825966784981691389622186242648793514619533655381776158589801333221928317506622068849184326742146627770430909261238872899038703324538019245272155049303888150999048853068092319624522937475515174362395538200478732355850695429819984110743066377553153529211241857182387467438705390499094030290294894126263977217160701182082411414346835987833166482819994740347638017036706343398313136637940627447477585503559123733813721796942138991237051865076293376618995901777974244172277403208989240146644422748841165750432442853760725256803741611583641343891271801272399071162458410724971608963445558464514634432801577689918936457797725007810629279524544294212635408289343539887010656272304837550097956196535720491715312981303187639716335558531631740961844300421213100484995545500578366983471877094847291812799337982645200159581827770842218266195879859537112940493989709400303012311993492265790715153013202796724075508877297328085140556569026178249360021461462046453606442999151403785366760868084628578700323314351196228038908274103538042431300801978950009079110498044040360046983040039996393805742617663672661337402314133917780455450785265193238446876044100528983502168353461078132192810571902124197261441775099659926955745237624620080933381073300389353664696618808644587495946082799526880295598406301214337957469292010734128540346495146884438780686010585659816154172431111013862208629650363703452709069982312593462445681862558986991733251389628059407624427947909135263189780976290441916139795498811866402658623271016364019450071621896767587763963360248728092903756867591791949200566713674321697353447244635390587775396222310159104701677860473562448071160404392024132515236130101724097373605934635880071474493815547906778669424815229740836783973305740981862068003686622839829144604109438551636738136784837193020763338902051155735656116532246333815902693805596586210206179125896943924846516902061524624034839793017349545592661017162372940621392550375633150084395875458133396121713118239602848970261654964292236178401621227562801877490351857866231964659266977616369319980421912555478137677929959452045997589098540649405492384023464572417806151400679619436440668120445828298099646017426751084649773878954939042555189418695501261747356517184476263738636246149743900412511054688469687907098191495890864567710733924245962116059926445042635927680482212306241470253193360227520684710178438605451790626786532992351335904197780827783880511148215174007844381642577875856699984335465517018481290561115581613977429870357630146102492968359162971707031880111959397587327391062822257891614072802241182350540618947811172236859118496818999600538760399146076832414715081247754965756017436946737891001325353713207358029264904459860223102093298616805007968949856796795709705303740482900090243103901809683498087209858195582196902244315915574447501575376454235949766051000976073544535854374710807000037971617124216008262871149343920061414968517667020603799234277476838818367819643690797343099873652324444459108561207374358943270218674356446000230256177086860362392592639052398553701944385284133357399834041553168617596889298445515471227896403208277824939897670225790350512304409457323875568338564363099274001156782192566087653759110271076240682523610394525829736360136200047340830016208650549721656370048453294915050683854690619498269686055740258141217442225415090847485992782895230520253336797751605198405884493719737172543552224082330230830882107918373278474183346217688741055968726528394330642992705055603581449422293763953374803058564822221065451468359287396615046599921079790482846594465536810750196094667237525089368523268465537965046882753787397827156131066463944263867051287902825084168506495853360814483535183387634308430586054967371726763383667221191484591056409435374332869367559169440899621669658594430328664179938079960932995163104238956168812294271376288022226679113015941136107763732100971793035346712049419029278334154817127491884695122388501630138184026722644546729123783343654629555912582830499272073407840285260700088526812171735892256131460341144029380851389423399514085165467724423199281290788343239067432101045757670299944079677645796351697649017174725090157433134569573060769000294448173883797294368983963736151761183806845506571747845291899632128548399980351601100820752216795949355791564678379957352470453881672475484636868437611022894336715508372745406777968510145327697325771646447591428112223503132111626931835858313384965844245819503090585620063304295834493902954772931467016883493385126360180940021146558837816429325679558970879046672194245153611760861690470992986162440921810341676994279604116634706418439933936919787088166110760550868808025558455256601124074183161172469989552653485148569297060779419612156166829978008069353739214189938816411206804929194950356495946340021362309861018034451204472073474459678383162728099134630187937063759139395366014339469887397040868798685347502542004265077883588656102842097418908307298722452722094918111208592183673895930838331832033735804893391153820507246322728413108942845970422703328847616248460557101936916656474565421550213147344561096968616604201868283984316181970837437305212822144924273569449828621159589885780828143758187800405261580367635863831501866795328223817444105939040986044246499863785232083043630570114335479411681294494545067916961824247237529344927505505707722436340583935744230520920621537883296240760317267207285466363358740585437776100640819118195145602876642128454799956811705864985108487775925882388325016551053072155599997334074399530003695359612066995344353676411364503756360067488890381925860379214087102542140833782840873934158106596038081606302297840843243855420610653693073490255639214097259963015789365180095757027704349001375659076565658353355785765572428662140036558351912637682365605813586456003291543382680980482173240760464064286582037542524837546955838711269931714426748794363335537847295736474968830260553921550220367125071702523566353005096153765571473087205751521016354176276710821262522733931276382175197881765493695950649446630323463891529613773883203437452478574895519544098268438712175006840578457402828292028791824336942623029204775405207303786013318271878269007690383698749984498396818425229669815727991540958373673713506492855138995363344632659191963239899290421756138032061257541786564472624599268036019746201762942880080830073303510095426630572780885117848875030388974404774551592610531695613026131479795872211169554639477352486789741806009723083990153313399110235270410618122050096223984060123917398136594586036945940289435587034175333999536727895555468731997086196812886354276039786074273656678777386732933207195563366116022312755135769014948044703161183146102451955194474209790204539120377469445570656901740450480227351582617255305611449547717490955637122822447360995339419823261434953397996956150988303029466589392185888940379116506060599395649741020716034030591568839028037141267344863779127675679431784310082795016391904174695885680968443062369221980634442877982750759217909975237973418184940490997270132734302129233879220833511819818298270612307788077249369603575030016008064739278597034110885089434498264651675816028037882863648769754508492210042008509863628239177604203805561921163353666056928877701652090361957402105713090300989540529331727610392814750757245876921777804098748781950546544620519328760325302592798150979266301333798518351933842250579897379873262062973989085346815560881377481420787616604167326018062345241085591374710685028953227318030724244027402518336606065488092628492971500354916322612312916002524866510396932031224741928771642350307395186162967007351370184925893307865279227757674844924793699973044148835010489197476532662019790240572347651919333569415406627697710200950503969570157169042572672537079914812255917657389047494442083173447140930335700010808595639957594594514800192967025142474746478119619891769096983073741462237735201707362813725780253770247648753648555813738877422922275895255114151249806453327160060836747092972990659865775838637168801178608870048090952109262333014275484749058973579774033824171234488841442183236040354763361555735447052733134409605187547963098823686091652400409628842880998038925750210068250419190143989969059005762957327295389284454852488942210659733017429126436817694566131939140080291830034028749306039901766126260609210060415413871588011727482313098394785190147131578587914838436752932789476007044102271734510085093880260851237305645443415979683337788784518319565884795303981150488121666749236825862423496055520041458839363441986778998904707222577105297260961820642013540394917309466916443057556490984684207361082847282322889326291271339592453411650793476853863844446441479057890308695599151431342068052016382006276619121207281763067631257133027543941438239700574297428209697997416779730009851061442293250949134330842352328524803024989494221450915056527734607746796320598242867101284277123479178589424877356721404168487927100648008000695891965778476955082574375963396569322297139002135830566571789667400910777088785018184555223216126500007215579467056065293866283435104940541886227084251287149534736209223033433099732423904301140002814270466308663898575086964027971812419272896298019266954695401852237242567695645418288345670774870903335247638249826460513184781517046521374970044698335514970646649921333869114105226892772235946831196239766799665293628172586405247439249488223138147350644724589300705190305678191574357454056222517594138531676853917669193534282823301232812855105514647996867030416767799709098696236702421787707137362386140019370481162963649404460621152724369039478987459905447173924970350503478131302665037505842852452999856606520351705701596346658320398922817633795379262738549738392371295041383887646569682908356640309643134538641617314802255299160730231773730110716051557780687875448677777617724457621437761996522156290145607570421296758724901204614425202889459735083143105768386608996914783084549518929986105615090593804272728070625756794039998475734217878250790819555511622337459079520189473709731040691881375868562957325458417953063335403572570672146634385655347287254760927851003067996448278681066946922589103305253293879150920407965794717299826547150187273780712478906056862000019774703911714453912152591397439368639364909260747462095292747685822027567604124321589000986638217159419890497734976329383946341022401205567092512764466489929452595824931488508640143534251417145021447744312040703987458409125877020999048812979715444317891048371617715956987890300422492758151724184907477862267911625586418219281922226747274459637717351384934225631522659293211778088462650647663831125325478972160791153043237733241187988958977504397462851839404317025602664548720345700187901554417195496049945443236099571170497969611167319762333769568068552665614309801969606118188941207070544754409900774528216891113847597901703256647139418780895693589338969348753289346827708244894935310300748067369941975107776230073734780885144207491661774383764714590016954154106681175155661540385668363666548999940297878573315570473315423181546605177169316794555391589887592494188452406087474874098698344048545956831397833270529098125554430231800066281176623538547457467744182722403259552979804039856752743797092881425109663060737730256496315524556158756961066633527079201243442213507535381688626986366465089655601375486476012380513721362692588398500672790289446704770978737967051696723916032024721968631294961931313491572411424144153365255374337367842413014445581401918400593588481229683506043893909678495831719290331928813186645265070026678442241165572557679253428079174413436381216676052098624344937860411987618448673167742972095886759722331475079094829208242608012139102050348782918883218431699604334723488440665211770372561371109083112151960833886837200656479335500017026945605445226061460590707404236778331171109179476314363091627032869413012448561265489179525585391766854032532387448904445624554048148257694018425740365664148144138624287312542952855412239696015666604004022104179950539023173860844052465249489957890508705084337386631846227963245367686846967833336215710269458806656066271752560578155999759808393038029593864199243549495274738284841734611126989760028976724775008268288691043150651780874770323102662145423888081533025921135921099107134355608860591094791329249148765828963745946120577000767439143669249800320100090647578479771790530542093093522948515782575886557835862660073513022379830372629166181104992807346236328468678143756560915532731463574004671533300143931776877548785250763061473537992107469251941421684485431153859060577602144296745267065296193609356502206418016201322061591249835630485341109549474889624710243817079588768676717951564849072887003949966815529066664699894132127039501365547541354762554917566416025652377654661978211563942986261170483798098693895410094297334227469062803157809447931769805554739380329714738015320703682505589790787777062338345369271754218505875102959500979146053792418178180272298078655923926608036388936007786000199521510532954083557505452009862288337754811200785511155294553400604648068259274158221562801920515385948288156373610567165839337179939649262591877701663523198418706549371744173165063302478544821709842237104850983363579972235202724602161040188268544175624859560520642947526653127674884378601091622975238005236397937949146191703818349231704529016383975990237852101790137008632040133217083659083674450687301738891650480042916968206606986586516817340861338311694473927719390717946188132964531563869655950086748739854412057370086263805270415391479729591329445627415707629165437378020138603201137526805841003760692583431303490628586745451163591883495867753897931809528748930552474501987033082711518547152225034661517913527623886062123472101830792641229220960997522037397606511107392790338018006298103551115496190869626198196355904448699005666206947342773165168328661005631323500245072277009185526226908781523285272754348798708081760661292581680559048034124123941064418964863656694640235880360026508831755154667480233634635974365718287556426338688391445579408864135688381441629384489399180109760848163290785427779714022979950796924391520352120970247784499990641535985748049192194971431659834218083397323987503237405003361251868761495970885219641078188208687095958670497196950484336025285520022442469164321501609164444817008654487704621316265336554648002172034633339716002729054296623152980458031261832072974168252044542768702321863452411337664850834091128034952673161368206484618269477310137965905037900505759160058437575757006693123764859390485351250898694696842008344797553017675671721621845071459168547491282096398884724957358418777566600533283232451518870235806839347456278010511265368018344738882521677104013807724353684080933254149073172842432602510325976540113792643033300661342104161425528344407711595811908734265861876428749827538596746049461963282813071046258705280427243263631426875752052289472244446667609743992773147210349324797955374809692396734818756955383460171206014878879564649459706555036592606362105018992372628431881094519035927329727333333070841166283768530577789039604560486558460391010296680188458177921733962668255346978158905887506863634021552475023390302138959962061261573063592874623779772933073010906325186581672400865578027477254263933004510698833998574883620911259398584996235206556450994002040746519965206832758574454818423261833632450292588125860336990643580331665564636787620594393195306291973139346393745904639219172456832486360587430562199095718430129991094514091449408192057158097276546166066753987167420816056381431797911313347070684551571391220563711926238191718209006174721480364025343161346344687798483008869442722017617995911109256110985634798746580523322644697155555377596553746288796744457752865269959616286010641674980761799659956974359542100771234778668510417846248238680201619659894348486571970064004304213448580661351939581058495419372340295417752118077332273456338416846288303219144032997550008684575287511593717679881031594652504673133058920652826324924315549308348672899758037028182152109112826597022742368482380491698355051104178948752033804011678186057697678576068725494961687251362163849396181042913684729936493630640876713779094175531034786224602797439603012318121476174672558532873384639007403496550975523453557788182881708011602982552094741104423066051055783095121604604583437632670979557931690398361466731642263489670335193958845468546180196920737915912231612622147335177076377034635351673691392055355511469770688079154155874400586867427508016024215190569001127727190230034244401734505390110006632635580892531587877022643186001647574651223530592050069233994548786885595883689211410807079455950747593704470210129345267860744859171449099925598997247441438728654050784609077376981869381898165327764612297990573116231668237386466605113683177933262786108808367665693355256835136274544277242783191893263572354266483123800758957092916831328463786559313829184122994576987054526297685941230408182255245844530724026350847649201220129280150493537385566787170592563563936485466222251428373549998851406893104049332979895681923392086598151649185834941513530876350899187351518610435381736757524420882525634459522792401152769985756775905294790742335976914696762740157689564862566416135310446241265395290439907341540795749977463653896106887289056946566558557075084218197109238281005273981978070440448520013039354946058987052210702357500819691677683962831882215620790146523201192580448331752911156502219729284166700388745231712019893426771040694110501455659634828145774446113641662271825261407256898514927020784071073812298440549437384512448951276491404138134647518775392700464090029053833135466132699972646207752496205907300663112414922278843491198535025179037934640796948921554375627033837394706440203490350767996681083287788678096362084133906252651293390631494321972813546655942811022042326569722335469588531215489990322580775824717141445783146958707499476884982464778590934416504598071167539156856482972923943680990803387736414976111144275458098567857542612111023607022308512608578439978087619605332111163045338797598969282818107378836088864730106627235390259825420611174395953168918253037817161525892955300386271997114125703758745725733181129089121921102041328386314417679930506026544905580803341301936244252357191898702478696173053491383874223770671758396438942548009692140781826905703134047130165867037885454244047953319004667458537065595993337455400776287168323565131204130997142730180007536222074113249490008521821168509957167057069636403532587203018113743874710405331962842427696603770840490176647421932696783435211626783821340448525450173866995045661023875394359187827289399731896832875019090190793924013077754120593441783720993993407827695807062476914176266866723785470476230190851189029592350257616234933977006955900511217284015794102257090990368159783026243541368452922004302181499097512877521029256083933656805775248351535202434339369096789413407017855046199332697083904409382515501931044470866461128472988520887468260690198303365328785488039260693151142195124787839931680703468702154301079224860814425194628759391129425491191595983422654219093621818432496201494784158619821632921978034288700400476043681652684205717770587274557112769429294685027176773694991733868825648070200329173360812554525423189850486017000452336128736311736386297037689257777813420791849620027928364926587387723089912739356790217810479807282436532166336063563702137107973097480254265586235093262345890882737952099320110000168376646514090830691667048314692852293532119766883534033031842687250124247425568415577136935827643920641991471340351811321104739230715285852423809081461539850286731015729160019368356070598896677982634391067820095834582023311212376222266223383456092531491654196211390573404804159629582185737593163167047450252168982832387969258665165038736001724242380287998309232555139524322255057889058020363416835367740606770978808928121957168986230462703681005175531643627034842105099970632868933284190576528093306668057447829924225570745583445618785826470332308666971616157826278745211545641840657139244074814661522952794527349357469581724995207250910761553219154964429255517415606368063167086513868834098884704662389119969322867975162469932780486843789727156470289353292586751036485185634958367862246329475822945717293399015956899100243363255672346005829431203708869398925234309760458070585405444648133750369314357104218000638720538857545401324249794668949988840854739464207223708225171745341907702146207213810851438714847411772608812673496436504548462253912617441060937409535620144644547986979274700812193353591708994866412092397141579037407841468412373600776230568097320158008008795668987906212760280263329008897764706935418989101980244755496665736876545539552588912306115665816166659303451517838175650674073793994271962262602087827087473287250746264544947685853504997874173779801585347288142360657845040776746617117337919015038945026050741709114192413217846047597517613218905886526014019720591042863683770113059608966724115256995650111190599044866639824953899998291432282661498202893506616721664425814130882256281187695890693393410383615685329428230859390113319482175836246694393363809176599748722260631649289836268227533131794914793523153544716857671729600433310204499568850040619556622849002895606349564353947871119704620718634928027567273794348803293722237822354307007990067384393340646391972456084871563271140306197730705419681701832018598171176803571965632237022408441228206631588954340238583963582428150043130026348074422943360433299753450829552980006046454461895517154135816472001215362876588779260838598139721044545590285454256447148481321363753556095467944316502329060185902848105034544284334446659093829836917475922597794857746554114231014300278672841351921171285504402096399886859358193394375773118010034466351405145934700977346408784440773126000745958153467926767803093438902014787164038715028776817180015559194168854746446590940004009844509930654807603745872538415810522133839184452677267357023483119221969041429215058509327438767570809134335864946181817177244880188044524207990624994656487911011136136712756470068060130882292890633791815622298976479382018619471661159385893794047598449636173795400089796053935140993677306649059529975473455787788322795680241263085753012074433506376608786836983905545781645343731164844064834161143664973798026705347095065225927550659819853728642580772601632039543849013289838686902017460606673987010650889336885626407135099801240465553376494245247028316015896868939862801883430162399821680133321991356519766187152680434977805214441255456171335670276696159059124824681871608713250268577182345030532769098445788810602235478744279101929185853752286349669227576564583844256706483519735741642257382086335713545413539471855766946831268473883474405367204495284808372353803656655596193696972074944826463830986456400439418705847680188577205466393541310250312348306634765901041323472518233545166995041410604558167464798950762223279888219504013398353218377273845673303582814669606453976303078146835309502126418187598759875883631370648461772548327311196526912078090473999624235631017531467515170841308114202559293530255576007782867984375786462668073966922185082622457009064399684061558192996557130165089845507221110643546548490965762854213448590923214673096760930580647502617437587846332868647737350803736741684858075986914462260075606082162456349195082701430369435082886251184509807019472738188750553205964902531265951046644955131383986397301572960716763967128715306684506574120043868430680065500469051424244081210523939086374011060554838500474795868113839947334495588456041349517930360032824923321931643705816924324396596378067831821924901406835647227331421565400009598187780039530175670946085513333748396504817485029379462787530644104110596575635354934132754235555978994636270608227225233803742005890114326921351209729566997775547316455003067362635660012185212078345350165701995444008314691952210965034536114894713210864022536586418469785975801183639315272912071904751533958755764346141230461173061369485633591926401242074005401939012417750522555549033502168321636840154921317757424936812267384606750748793868787373035121839507158794965300925640075934783318281586191551095294428589409726859437748787710421237795976097203779931162715002421356305311152100559837314429801765954903348132576537461245622224970286775863356396632183523157501668052252077346842557657795345495750991583513653445952220641769490934055199285070728677672369064438020866871876891067383026607040987151373860148289809771866575522159647158552155083362715317589430646221574974743285280767901089038371945051563605569762237349772560298200324190717034928669771057287363531800799061719817789961532313691911173115348197959873190972453758605761047702804327944695362043135167084523705622479519221618159711825588196962064566991843430439022858032065398305057516359815820092007037314328511398397221662823021372747664059621548173025691969750335689849283632128380700572091430249275677789760350613809648863830098262374281882566051072979531460042786100233981918686080228786071525137698324460873230564798131222818258896285058905802123419081021981861904933982594573716730912334157580633699016809674322066823315262252337010493116460027753030002044979884773038907617058749985951728156967217835733806865659578933446641548378912785313196060102172229779045121600055432869833305470274623557522890810225693662086259215339324907247415933736983294668579242389636618750667185119053806612415175810981590061410447534188510182413444263626901603548924409247489098969451379164569179502575800245226953446924477887301394321504177767529012393434475690517992492425597924321249287914479489851759368035391235607473430674838854507465131155779877721852120770791344393475353753156628236826336053140536560069196331022549146311329103433974043569264604617468009367953929268265912823644143550767596670805302281346095638890192798035066389154377087435235119981202382073050630415431744110259964936720899869254769288137014735354767118957830351615336710314084694334291790970364238534310768196973821238531619936547774834032057526596799480160449324825869944055181367846837237626290193959117399598013892357650417296967704024012558314485497599109278584142696035237518408968131224889396789020374501662802432601174514607080104446086180367751589371219308403378221516508785961706458645977198067059633502354977189347520109117928953642584179854852503938658256980907289230814763556277596124274826513681480105475603748874524776712773329165017767896645688369615200257126979389041528142210031902913234050888756137687426291269680256579819165294032639135599080770182100514494514978634111503897960407356717299714260302080874946048198238628645492256161392930147965925374815709941248910661298357551712915020844823182761247561891306985521197842229572888921401814350719077575418872019762118477237260948250933881025272547094013682995365567136217143655041380296761903631872704585797360030765642996611843149374361695599677309690335589711481041730121655152984475134295449610053212117232837691054805181901112798261238367253868623233456019365178002639887201550340896075461134996791612380183577676650116471921339054885883595738002800818433587605107079380441908615789915597970822595264591193527950602051039675481415020859478164840764967059442186807468651042040205697865060562337140189353049881810393534289868971648246354481539084744048362426312390454105864334744878517396528423004178001759102193834689763789582115357326896189190140115960388396717565413502488716358906261096469604655199047014463953244677532829544714097064287034243119990449016212834046757935020354221763963607168491040877812481033746798819947051454833352322663359958210160889304018132004869686355167123584196437039721627122902728606023295907008096187306972508860646875440450034083368803133049269391720910337190033157387498507809057014441192561830544848255206071137869010819292891564628861069009251025404787699781728393034029968060639443989236474350624395629010716161678236517260634323750491647832836040596071332948664614107348468954945005270539043459335653991924058830459099222952462844128891033063380507316684794072711520928061874686161244943066344367118819540290943851104322066586142298685698210239336272183487192761089269492825077903075662106286699276868051256633191888272925398607735599352333031737282124863879182504767501707402800283332659250239509265642249382029796506539930973988090366215085022271208474611036845915058734081608606708191130856062584378573653774986040544066094519862847927590224127165811516888185443389589617560086650535487229038444146357404614833881209099085511392803881564693434303475632650415377352612688060146504957923977098727549439837090618541303476817023204133714251751327222120158148804248359184516126750380825140790421829654915681723630479407623024683862206930177708018955457941641847055975592006479598854635585480202631039850846897333494953752983656527229802734712372342302751533079497492580070146549672487454274799443105659175766120132061359145211101168867435904068100662832992647969423978883805479890479662572307580933004948150873542006156315944670020478428314193501885338312094244845664264022443879939497707882082274870534099547021648586490568126757932562521452376157085360525501455964744794912241562575349802290450850212444457238398078642617664786585451014920849710114559677738686983670634422285411901346064611854300715497039221154493315291635745808290305607534190709871213318118726834845410814267914419093088745553537224434186178996607022598954981959614504449359723024708199490124554470388424834255341926347736132634547202410417719810607955224663822335146212345142379264039415070203184716585768914054699708051460285742754812976847555928202322511188952691236715523075022706968657974429054777610283268833209761149747398680642148690670708712038177694977882446002683566220593358567769711443781499213879893184482265741023222238793871073576302050157695709102391511131123242803769800357030044774651959610078737053432521375587837736222917746264166270189500220821473685083211254283262053745896304583850247144417902412163179601718237923241762961554866290177142424115185843188931411284132839120357947216050557704749744917712579824773528323794012500336781807954482752974172792119701188756145744534119849256012608215658876152632427588632149431709459691802124449093186045651398359522263996548709902591860382121386618574678417865562577286296865000689451041758507704810182457294069354957982208679446000050431545515351853793875628411874064050756811531136996628007264788741237022842581260465183121067648701117131537643908282218194326918332767404626897749815467405957637402022888355457175242904398271906512255952720680496617713142448996791145286170016199870151050130687146451311938998502658330024144354062300671346954585927399806056993208663425225891250675095945232265105308420155642849991843630951214155376442238856623564932241951136746067292836137600028362942126329186647163963707567576342551167168531569758644907147855690225192936318770035213363513391026184044175607221134512655862815363035801826283201807467968632288718344757295913596184529412182311433908077144561868075935516440314191629861498894150602049550851683263039004469257671191819001182683334167699634292255593522261502490493187206455980133226606165524910188625266454658896159094925915635990001086090764544593734210532409677874846157051846622835349312650600628723097796307263504607533329024764004152343710619496198675153143017461194917156550456915969519636717377047638402955030857402630683706339656429419139532386172174670722824954498219112081389190147367782500971356559426441544726713819658989891267306222913072910198614864826273700836423017867340205799575440260790959908856762767386262234561716530351128040761730399348691337252822730589192656215546472000135102030300987723680828651661400345276882345528833172538687070969576073867849912144490318637634109824636533088640499907627997662020100278434056375885426943166916408133251943137937211399810401522797256635509600205692890927104693159997837622679176487920322733049632089172455517596047632913369612207844348327772422687475275406765935807944053719553341744214683618761999023412593466357260023401094749529737368307241414958749368544713563323119338048796680263892488810600568674334043184105619657309407945026765465311417032445831894465681704459212008731720759402606894054905030379517078674718885285052613405067961232420565144794419093935519037638523760164873293303865681821901473070827767560935725258562627002217127514666186962323714405935727233845139058807395299843435863291149923444806303144138650663443823429263117342856697350959051619662666464395545259638537501867121971720328032493053944524704877833831371564866108989878050482650056452333660127949265200361115359606544800644278492996001209465356678637925108343997228538721436897780475322705947684657011000969619512526366757661203398878163714511626676275333645888992108493225643280170738626678477242430774279234796290868860480934140033189256792388726364577812983692454020679511052067442014530441019340199503037713158521782481002693343260752397611797506461231838039421709712309848681408731415152757058811384770662695074837088470802004826738374761759355519219311477244881079332062196921696806729587756748821917364916163519211653862918896649143206262092590891068946208232574192731229363616060430045095476222580657430801857494120620109999967823702097194232223769338876456328360232022366894916784396345769980742059989638958114497257067260665243865046549393304214889867087124003590032096198325789414816477536864883277302157234372773575158330614028049604813164435407695101868739878982639393079565215081459833816656436719141504937688565973068612447201508546716504117019207687337326833306722221525903835852869136878767585201623553715957444770267670796252368758467510290226846876435327706834661157930381409662030760364259427628223229821318438212885481943807293084232025986847474444529501736056293879766842811535171693347462357798779829177272193873519889748583991918374157628053716801359931409227269917784087701062074195004084867030578176572870962049645246529783376265092145248828751848033284368623350579660397631392855284782572680122078741793011994167579216419987020627149653043244227847031610590095952867345581226242985706904984813497929338963474864202370758550176365933241356894735554710790935191061896385341819187417151469390657346573117976965703089585088878883539159155440801605174100972195200104194082868883482902024529824234372070140191843599655526176136072610186471424990306041651554593598055302130639470509454930370638961250067749443023926290561157937504858677254457595477257927355030734876314597672317131008713293846700864246774414198075654671611181210129019272803219348849668263621962700718762080895376579632438262622545595652350816148948025111080497774986517187358536909902442827603112268780865070670580744566758709380196048385574467582222217760957200880645865874907380738302514116828772146804454671633027862678815583326762385874925891480633521984707248918236748814438948652074100004773956650763906786782867560056208397475322616684827678214289572044535531840124048239984356670440471078001887013038922194536056658482427269964590246365272924663611013029922710102628222132704234213633415507723462401194525484979038960233625184634002302235545686318892764481865190833735962370423046359571290969443886166194483013547381858652462094596508013107931267799182814157142303648642632254652463970976218875562555031201581602965857213963563716571297332349610305529698922544126842685303188969847268386997576311791979522661318144790303891241154850606210641147121987891417868387590872257940081658247821614675470706225862891470008634808239111460490724556257021828645496312428811105125635762917899141026225089212775481381204505430440478313630698037579103488580418665463413227112443428829531657736627798189596568926825773928825046660482128210317110888011057275203458302630829107379233844485930243506957080292678202090141087906685220750030428199387696164827818254746228486260104898025632414321365200526057610520679743128374497723210663662915844373864044981874082888048440340646220317051248118331023811995754533961300746483606547521032664834779021629195501238431430810583487125861051800002416927548378625962655330145979336675605422674725950861150457411739258700459248357665039126446327698951907875236271366570098855434896922625485795174041913963976316709761523166048641877164731463115324270673081487492131917778861603243555713792668946084694690386970463587534088989950351096166280228439526779010675197191916736919093393024794185968953075845072239049742391487850036244154594560800494610689117562544208213210376063688870456674332592485596198817257860724166585292903037846288634529950050895497271282830321500256419167751913872328973703405113526250954556635209333245980638221545162155708214775931456169941193008468316364615649548454496448108998970645824601132183068175599405536706063844211144379502320246129372589265687054715430755202247745869395728860521037090770889484337035968011603793726812402863425134299917795552230125187341784708648859513482024222310379625033508395565112454888181350023814139586079335596715759088994230745233545713144264686914994193090157971484459725236868152079102115512477897667843074137398817854202339643459360383934117617420941684096697841057355175035080083293335638309515495856054371356947246768553414610033596784848882106277506086855012399940168076986947333414066886435667274021575812364204642289012245498696523926555282863293953786070672715007106467910189929936914445989118168114321962950659317265358095259200703171920022435168133373342324471908308671630984666945556371915280128160655968715384854548208043467711164279624600026658778880635306760079820970464893914947631950786467743686427581829805026169912117038295027924347829130606576907990926241193319729128357081999362006383756297298288219510473726965607268426900803496447794150098103681856220784355284345234622011150256541078578443834639005311852892843979302136093511065236355501921840670397335731573812268237116506051819343118977195440392279412392075495586802005777934433450567364352672869894008979096204881273285319574928689433168079692706539532327312638672807381457516423867233344006089448247259736716304465559703486797278188168597673367912389780011729089586150800135076297932130672190128092408442298528734814779404369445936849534436599723359115417485662159691007452624146347865696897625066036955206660389692207164261181915151954168051502048782671747549430460049007694880552936023389155582292446923993993692813016003704326437585066255947296550599565368291138538299647635107743197188435743728776437356750667484035827239178154021607994536746062114217987085144001374693595674754086820707155133225202222439318496483331409279077896875703112660154616065028802213222406941740157434590227842694754118209803760760714161919032448140970789617016208420137240276569193297215197229202822738738743763706326777839049085962557916200387598876233953693732139469282667544469956697915765644603951598266332547775881278303083205691066065321070827192002225585729825424034444545907322267283479744259628822345039853021604318070608827985224110135202726877584139376748860333459463070173764199541269331993473425971414059175971649612985077999501649719444255158159728993398429208128582764479746315691778516476700262390497000787035895679496460175319334929223627854706079691624942751323543862582001112351782572366121200387734132785780641858753004713944368784686498816657026807779066693279502828232035189853421735158062877205625244207905558467472521461819485217460410848140434986591032732756632414649365325209519138945982241519567918586495412416923291983733510079311791045909659387437722212181461616665917962768905947533029589148049639769095546682328121041312202317281005111912531881654889381173605743959084208919576591231583049043326216483211098781636833446589241781201712955514022112449048760565134773818581248620750300924846314059367870127198377148885743925465532802793335848502289692080670539573261858544006190843356597146388138350541842765825227142810618569570247165371756023400780028750736578308253575028420776912831173869902395840014759067061396355457721377189826403922052905212436173067599200542331214898153172575424339431580515973349074065768337336390716031081281909664662505132201078331636557971168987389845981532310331608931789564055945338964604294602753836133353809129224274573274396838342709428454154042598079223003527804421683540813800983186166884122306424780710637118526409036750843742106982863222821814050684423713949589992670434963223891526321931432169332291106138682446890064152067674845593480476395678184703508276188767006262770235085315088892477647015788351545014114785086837206279953295585694143544935205813395538342234928528120590749314362016919946971551946591489353855068615861921996993584713573605922460665208849216897865402566269687402315235960748433639393410330704601617345975932023371204296559169800649311495335398868550970433362653891439344798665264340248196893027483650530899951897556034681181866311080731799934262982933303396516265348505522629936646727088918534559535541534546662559126148703399013995431448022773962829019968985086276538106289562166306347854731752878834747061813800198450327074322212784436424909141768659657083683814833237231697279493371427909571659548435173981873687744241482858244310336798979407297551702761903342319232227412802794349512931550454606371401276270345629850007254242948160155509428980980252881209710497232976364480009078847439091557147252878852125957595293262113207824150692005468190553691124090798508099209610229144252435488000957025505898939790320575524129664409757917654692359793224767254430345258926432430523879856531608961189863606699676722538607735274165636243248847417876286965484745490259124029573241696692271884505863659714611485302508254744300447255544103777979390100852354421963507559738422936581511252427925463915470698624309619431418997507198877695410264852943369507981390291392485189816067679647907294706712780198243547035126181580441194390406405074207392341576310216589393899006916458829107276399794078660664755633613393989933494937512179022160205387849340281446020575653345158455619775993579378110438689056943732599100743263450364400141802875941309556421652061746173904271125603307906587619061898396493554551264264190973350909241702882826015961034527708285574109557183550003376113300716056626098254853607454310595357663297037451879861835242355108229097103154223755453096430070069333725132592190711059779555911455490860272189320433454731877717171812391293001588028448194814836911667987653163858765532029063097641381951938686209912423829621995054462966112187096452421433412285153746275376707009356846485418018422893467638247690865547159241315812850568983475182724815207045874730519984184074790467363086194930552664464852069976929347030720978743187576783123548191440946814091303175750626933799952981773824135918893088441102987943023892071503251745237046652599509292978021922756237940151624181919462953004624788012298115237341597659608415197697636195378157268929285672805758130444334091171669521242693632353448179363829920474170856159308341157334960689691377885215053258791142403337225223186686432706674311924113560782682695639192990779115999345451105297703678536922774767362406290860481562316149332973181510681366804276814729495498060782241195109827118129041263214815974060402615923783196649390737333973119095012133932864519131420728721196927057631920796518510217071063764872785571567938377217914522979484225890112847462769829990109803103922766295437062869927560361396917546902131916955438703796051657002080551793004768103783804475671747322972012031628463000391422313967655173029825179378583640228681447513142435663542971386562257176776580120475298544677947381395697106778997961933749021164584552984275604014768246195171908433165151358920420938049024081324953980438024495289168414092510283652942786191234629127803651001725900329349483623661594690902927176885568509921731078594943316605861085002390022226636013724200368144980549869336004754953150034111332367408957784903707934539587281756208827098892449434188090811666144661034301465479275006230876884635995660900578702044054392388417881234068491287449545688477558926922997300823392756819668309820306633576635796663910310943175830390625606236330120655602561667453365194668110127774186518915673550334254115315681946707144409869720941895919499536855382317594863009905242415751315392905112494428445668021037969597514606674369978893056004959044902678154271927424790544557933717859153544054275839916963400611934141238996187557466975735506707248925503142863903275224025360959922070912078760123659131107296960820600867627217080637836166340179952658485777514194267178822579983768425415056013730146616933181210679439699196760760056308961750812385097634690100991763213118001469587724286590941020789845259969364366980105202096721946309247329621390024958040043814937221105444692932905507442857679090177681408980491221547762838464681845418011127882330329432875217597633709046191209806201535593258770624670369300512668241166928861025569040735797695395127503779988755855302986240583373060699053317990693878454617114474382560389820777724731629000187144399836683131040198422207102558637927827513558050550277102666610810152316966845711018472538191870041758292866900291936369111536497272968110286984424704390580394466983219715091475593064848986816686310541844198114208234020432356307836201193489150474128389836223336520930763370798299413637527030382586074236417310336270012990031814883910868686645784386344889231586886752332052499725777643106871235570305182548565894442979397165850797096599944175139897199463756605154447127654736666398448641487737750535550785208172928114925487771978649940218479914902695345366941083235723709796710612738957052243001573337871874852881434244883795706117942280145114203095850821130655592637981260189645543792636204280430559326079430615328040690332631219718981199063712879219576030265690737542539082558385143695907266382299704130861335667852842778525735731993120678541003919473525237526033160346498127081153169316609666733228570312157107620767376028335489843708235491855759179068901500982546867278533065378429446145587025521458492909102423214730145356259372917998509405349601328231172618616349622410198447236188891232854645527107645279244175169656656467561180050424700829922796416740910905039445442608489433256562133068854061883479056354255449353899262687820599666158579592318921166953990998110250251925341759368405799909658922190825306829788795322637908567386334492035065756026532196036321109759428434190021239559682256733130868204107424607612042336738613233812479211532707861454333218574755467493997758156521918993436936620687296274236732103857106425115473770280351195002446297025516066705882673860111176171016138363368780705505473102686047172652012310737866020135704102978889706104927644175523229868149366579484021357162685877459859122160219184766813949875158347746944823184487319971473974858868028559489339080290039269590410225861058503161052833376636684547042060577544484725086316769787131425384384245828524112160522537012914114559877071677428539914078278454676591457866087893920859538278052107509771234946745823399310792072663695452652343465270660139748196994184153828803110126193082315485300516066722471280370059332076570444547492251087953814371413761422026562688483949106192825278490930083554184117520362780874109644271076965383473035468507843655261833059464861393784707353931021741631665341650811573346146834691491236256576096935245259918658754710310739836650738650001611359730080871765782033582832084788227554324113630166272816766880771452795289685276166310577639404855537973666458437364094378281504779926547873659570520068450132311120629748998247683050028877820318126139854914581574828630253092788319827425901763168432045394527072528505244968102473139479307856379314203920021049739980197353527353446685097502564716748137950665664289900088945531662093020221422578622235805914222263411469793539467886667305017755227945787184386280050027453236945901549310368067885199561029574320262755889196797499840131692448607211279617287265444436455909596593354507400600281648093900223242945427819777739687987752694523511511286405064576877634660011846496116909546162038995540900933121787529378733172483778919195108049713655514455479740655374359243963706220084044265240103310576476889243592919226025371178244115823817010221505254844539012539069380539660485608089441023485797258996896793553361939641520456728373051376618964018317509187980571218791381573331908086348714226264961846234617236951275546762043750167113818323001180040049806138104915496345351406972193130590623728103122297153996233316005348545221535288149235441341198315813328855478739083408579143038093968440787639366420260111387721613015993611297724046776689667203479299196408056302454396546965989365772921723932358764669979912601359208380442207071996291842606141302898185208324215408262929602464685010359517359424151798914188168592563610610170083132531561436500589414802294928373466899857953219767389010496987519963428802699048949844196239112663711099424819410189283294823722462715906996351697440812369327800318744745774240514663470291134021005378213910932649017640117086403537186923231272970224236783998903299763517065555000814000962338438687384694722125442436658014680321737178767918808262103989022047155050975232102097461535232658925634884347477628633024285389868535618180434160907407754177910665231962751383524403681930427550693936156066620610946706710112877202101272234978885994835589582674289345262128564581293768379842662549561663020640577726811178481151828828315131204672379947554606227394624389325395443790945192683857880583485893723364286776794956494957114119101429778494172201426611455847883404902995971879474121149097026965916003276552083912359671627204783433227684370371209321244482262865667713424663920754220260319908053323311375341245273082292036136264665283878309677615292124189087466644674345201580376228748171656993306411359899610292493952679978667713761223225275926067918268436101577870966895804044092419687513047769745466240768476522186188533421792816998065725546701012000477452085004208232054260063390482140736493624118382862483649581097194734336105120469668158812530112375460053284283776491389914437062201074073434786948478367819901499672393821432117226939792602020725731115566333888061632587066163884577289800288996404822393690123125438405368382612199775877139720825615459647366310446455102618140468416981854515317997675975295567001806642526772597797719904491633759425481092573808672188785705016586269017640905954517357929739193823599285994203111243059418333169812390678486067943200764045153878604958019572945151882321176245591333898935033834871093953593464658117426040563871537332397274157363833266878850752021221229930026910401858230130948066673479413205917135392295974026374732440958696948970671311817192852419014432094120433030850424100307429334647672982423424682541569290132162533261319815150399434750687873733562526789893378403247463755228987465226291565931912054770684885461012806620950379434788024220202833915774207655035123540236651430008585034726691132703989676577856677781880487032852668344818312340626599899807228121824654265991352040578345545086888563354361409430103535256858798411568118335620812425393112194617732867436213117834396857804057397867562760892320618651390188867792360785096275713156857367487551457338221121080427745967671557709825751770536063712849818287349222612092837866025117483845413486796937405367118527225081325596299799595599613105309093114394884621961394601012264283798750441534164412659174351550600879850530618069740058779326433992303500493051377973945346020894622206369962870915212874410446334141203817865058098646966091401551999253407541173047436637432612666707137183580402422014752715864447717752769839056419517825662336716172520949307596680498999036523740259419709765194730299148209558642891876009417982964306428588078199631446256272073683872927532517852487564606962594898995178777052042213127156477975458896433488868139511403251292819516104637071161647902412904384674480303970537551282627762679651377860634932378002580576388774451087869969387150431478502112384704923064810094197752551774959623567231778597876583513266376321360927297089277249609227114909961549564917690460943792644289227193865855200022678943785023386895751295111487706199943093486758230828768851736992342912824085933683741608834348882687418741726790364796097490682394295697554717969535152586152942387448220921929535780260787742125204300200064651756933848139493141501216563918652740047681049279612171101841013215975442950631951948367734433882165888814633822281329148231302611121653033699672146857027139481414163341606411411099102636603792338385590104307452135472471929274405387982915025335779775750625689186087145748171961181365517568805132212873400543564687070897557651144377568601151680537928025882991090766882066672092176844221780143281580211497612153706304458798742780149572766171418895706000901490536383747592015758376452530491336440708403830179846507229507619429061528838225442113614752959134580917275851308107385854312228029186747234992573595622055530863981357526304740296524339200326469586142826093576126188276627972037581673615794533237295065933113340465856618348309187356955425279142171481100673939775459232632168300800095027951973143017482108210541926412719136458800579064910335512227343221563012041148233699210563324267380171557982461836454263441937999413258364728302131009168815277580675337179213468339836296459732161904359280747531435871676845119657691452522375923905340360690611404561495337092534331351619598484610856523897460925556149377067423545851412918964256065105910485897548057357857686219822240093053792028005660447796729861203132722976194653602458791112952313218359371744674755396528779620828995266051563446522956764165587456603430517320745509560212853446529317917240686724613061798551482185034592367773972848662670107439911537075155766419602842017975567517472246355137495155750015736975339507807823076344864869648033487743292650725149107169982497399129646772930053042472757717707845406711864127032152442702038154528018936334612218666714981397022328069564664966663385307811853374756408678747262092959735379271440302802595712453083882661957514589029422626838928597354634415911628457747313816184830100466089317401999532961562287861027913726476661606788700732303807245187774918776685044641398279159677866830263293492376332151811095037352381674017582072343165998252015086608692221817395277762793981464329503533225117065443221912709568485130204757868174701166144122870704887713073465189177737437678282354382688402174215707452945189354279740597032563721716317690164221524837534602338736802780396088266070946255769705295759317407411574398193972040552261028671136464276805557802332787679044380579762788033225081602709729985656931509272835352432460192241184458723293438908832977623513590237638034428984295550646149959775303668711693841487246536091166048501914927189207107368648934705973020644101777060613990060034321793477841397314514561928579005751876878958778916655314403857246288222921906868986443624409365196884060180523850487759159501544832586629436376375711991514485460441200544083398443261476220094078962206973366337550743313328215122031595648351837480121427256883745524322824989925381700063697920206225494289340174543557467678568088195982257540901659029312413794178197934637591865933469438565639375036580916112404176994717185501557877907045313160895808117229222026126462139307319066100276264013649255911229274336282445363184554329676566443236025202006457843253906981780473876419913965998561145204612933768973239442802097657949757923182095482288165891728736381483461741159312858449367257246165946425050994968033118413725793826406052264183771493328929162691043911873251773253261426581390800863203246132393575202939735535042190693309226950542644193586077789625465047735133150232343518131310930942701922603953269876288098580643396446206493385513114784779925642845709357633155239781806703947788748606296711476659671270004397090364670334621120318047074597492779840751559065903774827648882619204308775818471553704568185174390475906554811264067707137680485898731444569275280430858878728524912020268989773751181531116678161764331107302477813172830243608148638385099414889211575188698190917511006553484333063129789737380689070687250435177829923832870493273862193015338017431808753369908576455570913904199259434592817232643163002172765801151294316111711790643901493963414388522592912350291671982388481440249883502731802216191961187619610537012219969950094749554681111381047613546869876227146763118115065922257687366986597527152353645738269024211116479738397807140609480252086504085774535058117431905557050166663481150307607400106849948907995785087196538441352380969134150797870962766748315266441262559477992788333763341877759308793058623203907254446606375419135485658238723127439283748010215518640244023975482693787285123831346566175849632707637589826896756523738590581739361180090629338167151976803034627387001898613163149678694077335925653521601525633081860216005560680784606334757768967190933728165479730098666819788770602441479557614547777183292762947378555605937098616646952152240797530547934034260872583848780608668263424363511511094655078597982359257090101625489824401892716260607905716058829319218992016444667278589805687769793515730069105894745392287567451732087603837478553112959732686690889322194948932067087054504496240738632984287261370845656050003304409974759705736158936514016522354811608542873742923201279171142005539421449119951235295312717904848459895285341447452836420696493790933692083541729989553202372343639103056116888056173982384881759328476114099318150740739433245841665376105066638215263876885075823354794769022896021122659655845152538725975054150401467911822062517981197055945039607708077576733689300861680680028900340963814742419026843100733348120035150060235798330064688089385860360022380782490905802431289268591673500720411005827081656280135749859751329687589254604188198201315592811807140774485395140523401986017948178292640112106420130158804301237181644391874627918719907577763183578032365287573363337494314879811611226159331344053158760308216188527827416519291679170212460730682734802566992180253619848431043255644157787748925288681510647643132228094989097864176076340013052423978259360488401154680675430956392829817701752148886986853179380555282445187752247470072046809824738378340461332016380041081380316603191969794128854186081816128945580949016496973348393140802198649274002529841712537555712915031361675024610085083989882426845607546215849304471011679098296541419592189071124175167297667973899367769426212761669972830511206201923046791890722039776140984401521031867673293251395934385327021637386542072742549538079456947629883477260390373132355926282323809405842930186274393811390399301243287304597593360119747642351812835658413878149158994441741125756959846185088056638943752102710480579603861889598894347924065453700431847652112027443358379087928425629202460446119466125711096784397517763826478652680203659484045610957057524071571382174987796780667583980569182346760462255927424961890948907935162767518605975273335018232176119426404307324537763396168264912120693680537552747963929553788842746671064623620700238642112762830729717834963325485088435154991534532475446472297960207889394781560645845297575578555908305686234429004935635732121235187654969019760712855268783389672363393126515612282439306481773964232564027255607787806913087472825999798239753165607557309386227593143991155367563729270356360404709449023653091979473626849881712646907886561163372561810305370413963300668057003173118112908188520018269794981397059250341728129664491618796823440517072661978354400022758807690438687088256166162227541074442294628058830952493894356339738588550221201818467949359642767191000539483639315535002144430145313593840988669997607398158175680075585177424194638540696088774903837684505850868059825749917336907698242070969154412491922600485048277904144979118480051725924106708056907073046165198579941158761926440642488149486964953383934941759998397171989110502584325615092497690005796211060468052708040811542393771512905400604285920353032671820449205793075030557514389194450208791756464605789851829621898484402271810725722143289323528429132859215959537706965429662756963602928226488172920076383110093214476467049264418940661536778855958120428511589301481158509490849955373933051375082302174183897848253263569413235348365303223460232363424720478006975132895379367851202018946324482805459089436306905954298956167573254364910315265047352592739286772141073624124472674484396649925444197679521404625501189108476526262024266739454630139927932112944740505659727050905943622105666108551450785452944075167520620858611813496115401144026076404015520308311790561990580876673444631203440471906787358256360776927044268752842923887344826244508683630106756460853856650418398917263139299918722378405843230019737014601214051264597524284475460946010057598395996563345167757521725917991104674328947828924601803721271672401811149983074072960927923619103113390202037928240715369421271277708280759105050853197061922208163995952526444741769452361820320904896112569388286481251142827065846112394031150780747433432218486320096416347801710615246830564038769764141382907661390507963003873125387786538385785931792661887776637601014952222394118380811898574007491503527380465486263915191897133781511190204594129854146816762450880932582359604389233025919760908957046386003118752754243560276084602478963093166423214709044675794489505800334373017995521545228592509703462624069588828157353780510526546090270268314562541351637941102611242019013085098211637041728002465128138758069991734073338247937882690803750790610793813190012778970475173964354174142132919192423314003620506102123000455291282740046295434481331919391906630566914444553465416220421879539049747854680517720078558845051911438260463255429861989402245145133233004273793134865457793535622164248199845490578513503191106554878702369637223773621595719296049165117614611098741666272926741762341697459212149309010260251729084539012938609919318206526661244428425638014475669093624089536202278742368381761091578186917739666136961471415655774448540112190246133265310857106785315602295896640884642428663275982279460347667269608661014826123912706187165545427739235218943202129571536368784040262825659611648264215949448227674763025879440901004934605425263703996416615377560924694149260355320853665427157971826044408891479602283662575857618253586279627332540588484853160687090669599269361231788144672541174215531555429589279293474876324312581799549858642137534960580157837775975953218882083961654233994005807458774184200046559966346573817310849670507190513304236938740812328154015485384930597191736273283996248904929527631634811544801760175307186369928574681637929487619276911172886645519605078616463398278431488353500550784756238688493869412846606265539659144268793595241190665272023473581883722177495964086581222981048653017295124582257157258964975748802521487733124807785950148738902554817697480421507598437967118671707133387218468821488761805630595761631797613868101739381762021945228851298672574081182495489723851965683566018777681801435895672676453097132242173327196542184400699280019145899962898034790557351668369864002474383494224320539794659974094662114894939968026034955834828256337662890390097475091523641960038002827369804069872899936255104056555978365800972284720307431147328084214663481762661041118295554123987598177461003446723515444229465368770300559950063061317241131639512782422529842582993884208214789910754723098580610595964576540883940503225791870708482286618315410113730821586240211118304460113215382837166292692918298668952886060085586227407187949227361418466394609291086944429954516931838315497625215585182189591686555648454688507987274989707869823498394819573088718855739719835598804504679857460869576558390643472525821537233443338997449310431647548645863578245188638792618746166685558016249976058545281965485432020609743699992850727483370904366319746822035535771500835041885504415469253596123724472494465310877994982293999419916083845537692073600782238571714792737536734664579581345290013799707540333600449461451684232096077453272789072417693289592743653170959844796170329559925920512886956241870469786591868602969615999952630724483933686570115849620144092905310575971213051487882328204557527300159668777841975614852999051554057978325468396305594416615541989184281868745516851797603936289404818003235182713470845419983073330156343705898986680558521738533297085809899176231980867140424678776201644330034617089627387932332814583406078297065684839521529818284844380983150870950174242879281204810177023680047760581553320197506443687051618811047003681265884705012964975363599555093660259930968382609569809541748079042513570691521201929508701950540434342119094071120374498719548157889660502065623731945209601093414446993357515507876296490849558032511224355971070159592657514525837379233846319347544677135232087733968682077596105185917897467247245702852878882826772036944707983819872225442426138625371541666975671260395297440337538189484281932793735862573386724420230698275167587630817560939773282270743726892681964646575994959555894783760127410261511113886700550839239738434115730542588498306606051507479581757946322473413530339236414130598386648741742246721842159051305943014984829237785374873766735829053007348991633089582461897814988177182609296741536636348733478999216695417698090141353030396917615060012156304847462153859463879706967114295293800750022062279393711746273345516216640332327417638826994922484821026774754159941173283958919598337286217565640964040311228201253081319490042901690234955719149675501115996881579062986776305988904957617989690209146565365226989305267475320989225564320166454754179247543621851278146784241079684588913704589144529168058622658283367420037046896856264237106388567217134205605969843890056322405520336089156325477298641065984221277239939934695077020672367812189401449571185229591156149742929824044726163626071199452418479824570695994466668743375333204407624079089664597020238280810622105546235541186669660058624723515424035129298158799697789645347971826177577205823792513574738495278447606878098339793056591042805288616123534734506941157557487262336345728463493824333020958153012093122664857292403973827333703803766426186086524250995885110368123767598990266654276909757331246246659638290994195551725836352865833328748135790711941369432506083734254404205440501641190698338294496810870368783301141819305130360941834462746610780008753836095786809155462834815747814171884926525277410629242809460707311159641699470844255329211251221791239726400106380648781898215727195840517687774816048657361600708999289101759490891716235317402612159032828212149981380648421593044512384925362381867090682112490600390613383587337237144369099467555834221920862112470563841601844601868699167699891946359984322386575856719463723791319047078678922574977740818635879332369583219932684524505847334245009899276495479980366793112044557139851964857039206572787950443852520993063455393953937000330954032891947172793167703297979101154787666947523402079351056725469058556909202398548323857201776788256619907121530329853945346817530331649031600903472951363497309701002331579039148812300912609398517494904106209438797345610851828693932847784340237181637965245761364832561750949204755756997119237948768471390969180518832910762780403228255362321510860855541229057575414009192727162675788613126294560910849171894213907780502496726694176457903780404492321558480499997289821747862014942487350641208410612226256974034768098544683371242515345804077251644497254571320969963274072309756202069441094204345757073004647008126359410826662844399376536870206282906087576356738086105739320742027637201788567339786147004068056025849450627412603074345121681658023025431603583776764910123652682616649500579393456631869744076263871617429800903258940478113365014506931180456996924885677407365116311413360274805689550033481306630913712640027498344919988927634087597228328793780323552045172062954758455585996357096103896886338621910699451937576823565405987922004604247205849533755139956467951669829737534578283774845443290726483811599488335924194230848377993982286022724342295158370155811331598219265060774016505210357502385041010346595853408714548885347563565362518604209377364534813135304111845795571799282868148822156044786656741651971510600944133665173645019827338271727317307478833190892782533126352423439677870760623833764832550585134741941263087859470836846150907775532846382880164058044544455890320865793160477221292669402205413161430516874409446731054827127002195464426257169434465378310429089385272268736681281279922377427911404137554789737941111354503026378964460296159339715108591136388768621985611513812646441164838382477265688891361107704770781792076958919263383832029404853095125660304824052394026275212261150366601172362881390261795872521862435906944054145047764230670843434029179666088468001229229881499275886743368458683634333338350560826798759493571894553749467116629366578583030448271277594593242821031740700557994639180433917310716425770380479406290824145611277880240026965850213117621441515930484186242594905917414328472230210562867786085739216524203768481618980154134168880472113999490471256372155267682074908783211774827885324073769269038926601329863344938436922114234856642677928655909689972943906789326034764074312977849565719913388297897736459209533635098278571718604205245509460963418432932680013005139809677841144365535472460554264127584827199457475913807495567536368593706691399748826221326896253550690399366540744303784421132480342537267255616787660008501693478903786155512394393533279199059724521757404754958132178163751970558008466654755420902679153693724665592068642583938545814799473776067218698530016317834976061758256519615817553373480126502707792286393933961103324780355536606038540040543254627359544118874035058268926824979190436836688977904154950138305002475873941932816181545360489002242885867401782641624928406658513296112440170898201350579298089690680029055934640169868626235142111106254380263530370282861258720025885811389070559782355458420122429813371878628604942885265358730023563516570088505938992575469952361367028793447408863038619196583115503264812790107891500640969609001853558194811458931714228566069458496296245545276616188341010396616215060270925701187796574408796983251041220791800973082381382969788425121092428690060631634954774135097327412169107576843149483301594760310266191214396775512024966102135577837706019884327614830998949739066625376713854562132290046429143186317341731781983651055368415036734388543856603398326342039965614739596459867953717896199333731186338478426090905969761385423153138598256590498797446769452541796488404480320169745464954613192363145409069506244840848228596595717333636486690163529669087101664900282948667767727353580750674794322990440130554887163506861190642034961810170239070544564294252702091554660286060347802006148650047780080647193685060162940943356507270948758728447465510394199970234449638675254449189443611753826941897790218273617096082697406596633768420007801619945391701800144763220568250841138734589074443749334975548319324422284313328417369535785823434883086065764892088700165117428181101980849382480003757367772866865227669554797299609782480972998094848343112109165139982788157563137296199671126116845589917528142508154216678218106509091147236658320934935327141367324916806466898002850849949521503338691624985701191078002363592154883012755525836520594047485098870412697282147564389516167917377267546094075216527537197710615474572708226045662478960108710658979688726323849582687320151696381683624018047557463815977302904950164984521069778069374857437578728340188273173973728380137024938302019786371889513957553780439366377019958412539430710183951327502564415870164159060581696533960073617638044569227864215797757757951948092222115935456313518805191493088474615347841039152403925289603736401812545823497347023906388524980103207317713152716391559141004560603461191362602857419421678323476800687385822812293817492466366100143254992085919779237246893929348182427245575999357820241345710690466792665538845458136069360588295010070989334435794066196238825342227996153344269881740869224057224259153309055006722358900359772874568102050852742903351367308089459430766047433910035480801700966388000869931392654460250401697438882214404449883021598865757000176473658540177571111729408964227612558994452293361904814596752877051873232435925554968483135493754545307483642004394720593921661133931793910788775458741519785355042095689095452323407003786428266699119960221166165951340860219986762789730902077586986438169882524488168510187165414171893588709560935975717027959790517985266530728247568991040534822623882039062397115850855047533399210588898214598128798582432963437391516171862823711933585521851363958670462792847975082587725816568630342496324432587209730403194749499671752349278463734796286510669504331112849493039269526910828157237440808771379127358708640774578690733518091859675426242255926032653292559284416817422075082644228750688329585516477010686129608386267725049035636440812303313553578457114898073631926487185507175220062690679327143458058663386954534847025786545274216377863781159694761145061175017493407930374181857301938918674544638400392168433952196625068739639690319650844935512541452499586930686957888272451441842298076661487495138199004790638356115065340127110552941513298901600077203206551032623856175953837994117240696994963686422564240422289775939762533505789165855920257101230440798319439386546431391426874339517528179746969513465276932634153396258626061098276473519502528259452278633930080713207542611385066968129369283572228472754042024799637895076999742555177600186137116377928757543929524174681104654200982542616407633278447812052889169117409876662862968490119936706872650656756300180505545378054239847704339205678984451774782044042013607773324484677298950680250301106831069586269168372707897702270072026853939493500941923469909829292564845837598779452871086050328169677316754791636010928184755453895131061333311378662343006872684115139165243528475977217515437573865732398170189550676006988303643234843050836508469949941954308966016892628342494552260162607219087083550200129397131610071399025243691717668837103511532617038994580716767025135280787235994751440368105483399251486322854251133366003598264761909420445850370574013471303753518801001528728088681163551928811628122337985762236001091311542123729866146426941280947936142780650630437020268861931346753466978978146956146608932768142002169260571047726695399476815212255767718944365262957778557008336031953499554315402313843404090219740023196539296020335305422988220040637760107749304763503592506826255785382240902306773928756651757014926014947414527592098034245958972708123614516165860354812494840898605410420569165392575157640359941915012428609113997099906552741388313056528746008832175227924760509166347216372547770654087726233660671037040060974996318806693349074647702158711276757073483800019522969633421093696034782916229900244059033358599742749349070161290331142943230590374702120845243868762654328987851079067461411987428259273253201565541033049110086347844087631621782398053247788260089640954499091715719706669560985835262658455869643291420284225220773708008867693072944506148959694562377455914118510328043748252240556253719229106089958064733439087774674143822909088071367899357737624735388464317554164986948718614789398183086019973015761375136683853979241776482616713876512705682073272771060605033042505473183462387012218505137603976001796887836601737311352084270569127330477210013741634201009219745562212431543752427446310268418223630884830439978430335684140801349744089879945074705839103844626391405157231276605075895947688068629854081944779400786847017864816418203413015247340706121412800827713245773251112567905057239405919830659422503285146068524301359927918947067396995075313450994712112068536148155823220048702209815036663586551958269765907270822841719711715684796902908732155508802269363688306841462392231459769243771306587258096140057525169126045852076084650496817919144080466595721953428962147823513109949521365992858245382741056314407630129707058993326208215821305063460559222242221971302032236407136137512280975146454196749845750733606725259554542631375225853989231996539055549278162759741960054959606772824626542179468907165827030895554951740856606591099726874244460335725354171350700429789413364265326314421122444014927576012379426582023802654461074582999179225832978235626372656230148495317642728423743195813915264336622565821001085842001844888038847540754287249406127990983587020933568252304667611369582440439913064431312580868662479771721025111540061780754601519200958812757609436810320461902991657515913345899034695804113944155301197144526465909816368617365314215934202464585258499703827816784963470962968788646358606820788899481346474329433360699374838846599845178033124331882674178542419830592813485783075175070425333170239619944745368969290896298774449735491547160582216860061039448309300984472070754403572404044154202756170603960970343344225314314056776595057258930993040616461709876968268514407262128103347548773944308885758439770955438592414028737346160051768395530012672357201715760371261727501078137927775106784683674652643574501641380980174781669564853921678282008743014529937498388497386145470490407795254310548886323555993400342016343797147192845762341377691652762939388671867479496868100323245566388367063961170609635020947726087743420311929614386049371468921384790802468254767498860909998495867274205994466120389035482853088214732152134655354264966054320452133092274811771563334789662591812820309203299279608862139658419370975334597155594310281740774111913111924164210714136270293088311022788564062750872900270470099270069176083872384250330395561700752060166939584890377627858006897513680950403787928695771345058935185227364454348935490643434378582384048169627313908268236598639977070536974108983257680240049983799245525601652568345495131103696507805526575019746849527008741066564426400296324032962170361136587567499457421878830605727565804008925459324712137845646844853523890364907071788138581100599178227209647387000299717526498418399903025862405150651170818089913045499903153744827262801412665880033061757209262950576695304968298882509504781589464480329503399371451430111064595680556272670313653202370019268193870275206501322314200464215492032206065612511391919453883265526147179652614711418586280344211478813153931271783091968998829662785903860291503677800374531130532170434468489509244871082154727090533287001013877769531546615028857633395894231023212506455805956327664177620267071739765376466719446725625065727041020784803152873456138512090144244613672441066021497278061739471531482809341848351752222036208263004723819359834075471379980391357069677491279496121212566921056400288131864112579649014390148246550823357683171627226631563029920795461364437852855278057137164386379749412290680578641583392030722922647657682752031284019958453097848846074263198278456469826519233288202960586679860993102871078659158448223172257013098518598836511648844329539075522140009910901408342622453999015002857114667277886485507187125927637246386800357677081696882365897587122904938941138141887434225461264358279250959451633535073094500307310690677598471108971539640368612325193268634556604416381572379397925583235396404882649111514309320762303872653880775855190351266007262591429266537714347637294920422547109612343223684282609646968236070645446089015239571519341435032966082784851715907564751003984949077368312851807191060751975255816652956002822923762298367030651119651509977905397368525932236709226229828822566224249563754414993086564315483639526382315215198082944259899321479087336602945259385591678408152257635832861666979801822956190912454627394086765600955873253197671876843006653734670547340457322011724938661637505047301105237240363298039117417812276248375447377669150569111925904346529158115650448641950799936105180171414769404962012511440876757393053027347418855521182406129626544907443445767608766099433448571466151073569161465424308258700179699538884458011799886292459202006812860879718643184407043846002093119122575407682431262082172050331155343835394779964718989827140527383219455265452733366342716743238669995529430638374686888555325907950134324860480230800198217175408093483767931696034404931055719255595401034590827748724541872064141889113827241018263526778339755356235553524008866807049516244656501429706492812810251702542832663140912728431571114522634831844878857520594330159752179998618753433459987113928744780951654751844907962214641371004367979158650954076356373560171527632062764786541029698372304823737742538007770972203156208880307658859941367685043626750624848612533031801409161701164338179775558025857103645535480509865753628274381602046539103584228302263768790602504610191954950198813421644506377446641737950829122543556314150289971110938072774803755225953318738093761523081042500089989304834962219400050341909345378679813273441484154294479672839290636063260283957848515952939093602896479339931875241649925675566253366923868991454145999662676635123228024921757454531079289147229960852957207100598450316042557685078720516446021512359711518432113716678169912239739657416976304551025760930468321780177000952520067586455005847940832227040117023950886955052261549492700200365636455855740363770937283853012324327387903900181989376122986484039156850387024046665064710428504730351990813949409292954694181585939047584460611650152432781677944606764696286662116498130549525416999865072479811214359644349263419404598633292819913131568232497888110411089757937886342273799661039384752748713273609424560119175704970124362878182980285300607395018083848234200543748091801494121517943216362578355579005904723034620861982419534020378345204590339809028088507430917023638542380676611431985967817016893682586114778460376385991502366558816915469833829038571057443378948997341058294032191537129606464301725609103107552875747235364937382677829647620303528358240536507907759335538338935460852332576795219039960319608705131870202227776494224420058547619242747447797859998488125998965137506686607585598175114628270675624431162526879119237063212901068420146132447456422399719495384761718534476319875350590272501860067529707013477516697191968129583489612685637450762928641000286202506296728204792915934525111400183721430182948339883269452751858997827358763788174834331453958683139747814789685220824877145092466868711583138932082906327874619940437536421414333745707636851061921764435378421484003767333775344206792698836837207026086781100149800840150831674471887124175352134835167403116567039429351331203885709841657792368692463262983243541479657512977146547665059683913879205010230504178211504718222677315184816133680549255673448019618679647151211592581768985296267136943629268320752770611162946433388347396913452398196284915141970765235603449314986743253204481392303751412192799355521823115047890319084506464035043827469897146370025143074258502033652661059849273551612275356589856030527504505825559673193585319456018537759284359327044261437829580163541871804520268409888578424031880490787735555158819985451799743689671583623277431828297695683259237555719066869608326032852303116584476524969041322827782260786321806859972717460556220436383166395568623768625190981233492438172500263022601482579925608440362473499493075038104350595088858497823327479992789219442382848339988595414086561624176143570556407555457098494358337345304433166276208164189517593436782740986330651976360194912279266893746594350284587014131496717241396590433142304828178257252265983106437368905463203840565412519164041962239962152633469114427976146869268830635125432331187973803479070043221050170107627017078567550424502439010050562944910184694922733850152167776641034379712724813673768505382594229487926006565490383965763282835161699445493712077528126632420198941326088062230175570229634518515923858919851474812406328402713762368616830118316763862720549558467271563319123511111656857565747522483880506346598718061698619888358276318183216530646459877156785582397107818657607002009971108156564061897616041204500686924691209387978571049509047383597939751853219606037027861210761917213149416609820033042085898498774134045741487743768451761771631131075857394467248967701604895816537829223504675168780546829038431892683909416198657687575432670130055896309791833372183466375989167720949855654978641833121990000092179749957744253151538238042279409785620667121271365946439890886626208687242460663695843403941806018936040457381150260794999719605313243251276178279359248310022309543835046798737042363433250381002656147738811469744106128790753945320388725208829180068712722993259560287242391995030351491267046752761251501296979477490344311506675728870086057791152239760434616216060567301390214054120924170919205038040712833385527590384507533357181183371280847714956319167719117565268600418225968943710761810636705270492742045222742040842080826758344409694982563641487130173920151454820390111798476325997736984877117752265639093613031779673670171059608794710343304267411971535375583800560405193549505665964678032211656351145409681573341210969751651450008505251020295083805921799099652374280921050391873244386093789196261341513710452121161437205090963027854449572645778879261910149813055721128104370877853890702195976293056307523922349153416943819212183811639810985492323613706610487107296606030560426363459819772627140592990676320954592950419135467490705449845742182404426133476479966443425441893243980008835125942136301964802744411955774006698335058106124647557593798335347431369817672959531255869416213000771089487814045575078013189222674150583762982694604826367570132220476448747089384899299348179912641247880252224959164179305163413485936346182295032209835458656316240007034273834694220314735027586137173561899977867606479421891157534135771137770184485318272124980032162243868147395120279975635474369820545294846268931748240445592934042819459560155936499609480770166294476890119861124299608219651937466701636674486221229101829160096215085449188872392347600464466066679427084770004939964850757939065973801707317198042549650238756774271407345500459195114167505663730092071149224209448249494682730309431587814409506538361680819026882272946704145714090276012170770838210585605151958050250799122751561698696600728196075188008122337776175423028030995619527434310029856927666063638209876669830203474201097580461138950230431897893318492311445926950268309742651523011157167592115118859314694523222963769032425284918185625529868201347250481945707481030282425010849758573104137452318238139674961007791829217540013468817923696942910712992527975091143798672471030438562019251826336465534181968099519992848700681873168318104550194618476934155524654478101677971945771976370142968920440248113183985456713699043666064758834454169229125916813129710022360776580311045236057795593314930606881412299558826564656678663951154138223310073064542661602610315630065246817763502794153690863423818961969017808658623121218164797239141883991196541249452048827476110797291370225078269374927636120714619562994861401335364924485962718581163367026595632288365099704394583951339853735214781160040734419121582164719662446166529475530510556286584291904397049072525050314094935462087452347729455328157615238889133703872136260119026041682527453083526657682602810423442761852574823022391510797492774974458634909944604894617759899546923152136311151347139845608252395866303772655224725492090960906250209756664696146464091838325277867039780822027898108926686439829024561195696799366516808754109094606575446356475451447049657731375713678514287631450026695110460409405815538274298795315820444487814085218412095279158975497421138793930577911394450503238044276062006959509543739508986563966254593364152061755223013644323850910833253970124856255265877419879392480685338720535936802181803074110672498611376057188532170551497449231387596930588769196017547351446965225919600381592103704425802221430137069578119908923419023250382380822892024328387739904124429271030695266325054920904039926566389243190891821898657766724113898170916208701687633187004946633409877060302829202770754217431776701374418976286663853919168679407175072565620715981546540200127427849824950041380029220934937959684454587617045737378873300505013645637184834941706717391068430783843636779998851025486304120562245141841255815330391547158167808838917507515835358894722726947298214529875895726111217126429842305426193025870291095771313979540294299047989089750806994392984375456738504810027845716729544364582168930110706467301684627002042715230635054312902014078949430357399012859768868765948275391869547588286899052366646179453098320151069340605191806110316265125970093118675233912511652158327876514180167105084740786358630197096608124037501361216012282945254075256674315217354301113514507909064290771423301604098177099629988408426192064618796986019775768559061817964851617260827516672213246919724725757954758803577631300829198317041730823613057815830062112864260250548421560710942142266807131529216893423434444086591377509974551444526428599140287734315770871385886336006159833054961982962155837433527495720408665970318710402480675325454776482826864041278688386192621178122001130839373915524665820296167472777258977899847850054235489179038367071700143809432030248050261392953290195106470225302278974905075062062805672262708611322887054737291481318171392300369158766413476866429751738427278428241091427693554980928077091239256263027627106115012381099476276674107307621316977441177301432305401827167374923282788241531342910627920915868880976201389527607175866555292161302511324376603854144441439480513841501774066689899614424986120175603445069899631113538790528729844342184125579973841124793494661401843310503302740147360828014406716120672524546135571693356854587912807008466565822136730503137642090428319043527140499168648517994391502989737598740895163158312634742442576707043339406491811818871616239091615944691051843174333323512174580753455150790771837275730723236779136946265665844296396516946145704360028243691654241124802236592183504752799079944758681140219000674389905644370899338879201350187816811926833857823949710264731515408401623418155333107234641791017944504874428921391548278142638631730519567198745524278435829121033003180903602743867466051408370768475631407802116472569969038120472525941923140955502144461391628251457912887088025292233463278670903041825778989587811594813275574863295843826316955428488103252138829108779636863600821609607506603313455784795498222933811887521271251154550094342506036721571430641488329149192138732705335976348508932866122671132665491470863988906826288397190034723943618359568097672904289267757286171473705250902710428830583961843091419182195544687346412481836501845153722363550112310073526606030068540300429927427898334175091705647284314245039772452844057455211661226164238209372463825739528336701347710862542277726777550946646837860501721909518404142142458751740555662467141877842835411971051819001307856079235467366087149072216808640531734421658189681155562795905160709876975230006176125530308386047608984275848884230605432202753496318032714550516845867728421628366781512420229180255546933541224027031495137292012306257537322714545765654720686454468779758852722898724616390248298773778003464194559208759919103616381825811833152776074885800695224511252729725486908348142317079882608991311854240356000013172262669145451107203502783926880692018692911454174393147002000887265340866435990217872076244813819769835845693603726948001755793472031322281564927851780888136740940664174055989745671491041367212345513192521449550138431701325704300107959119409421641559372908796730969171876731954179414024025787414217817638109203912869880448812278592469307684309742276857584817052203424501685124337067310981594691160806768663260060932495913229830610735353660899857775383057294650790788380800491438908843669764925052574788019381704645781905434084994001769413433988474148974980624664445455631893523770337332297980323084832245039439755807593538780438126054902300756319147595964989603075860924392159859888020306954886572499041474526062012939537752243939856339873920201173657558501512319083865158267582343320360238964436365940790428860876955535041694078751468947130197035237806233293779971929823137974752265313860864345013413732493269550649259868768836881793281599670053545232311963171342990812469859193782509506025906386444247846748308233546723276322412656708671897481601348849429102370732212356296113650763137384542638528291499899296680103343319052697186171110347608919942369366544352418335083713143181984459707591231033259129389287345407929730362262845815661616497943183703794024083635340762397441357335131166553247287456784484046827140254446761698594686064232279758372923678820268370781185916891165903112141142776183136195677826415861043406393648998485831860933584487877279237236365172539271936968891532675177632723912638537311799978696029186809569377646387401602451630249546444482504568641713840135481050084506447693289699662725599609240713494509858582823475499162827414046367569274954651819392148815134459128623468852434714955497490483615966188842914637678400565454799742602384421734303027853514541985439591420992783065766795746183566627567465575112318408745934226317665244433512221227416359270519634461937538756303873300667077733954974353849192006039917029112109383676063310953842274146355837875573148227037481201462253089579628475933586257670390811691297146955413574648845727182823338090472528728092254319492608844260005158658244313576274631978140681500906478915253393764042179209626284385305672915294338691099886577436865334298091398582388479614598937888495496831445689157527894160854464932763039566052448873471538119731702668405146296643830936697403181662570672429323143350533003692678749111535405691308358610756760582060592039586951155637901656786083171821686841407114414713215211970053445444703052804564040492588263212221260547249498349414812952564808609539813858563769486892684016140216208796025010665236705847779502157557200202263971125312264172063495212264247429129989773018869692124567870003438517198885121817495139615520533473846178240565458250158571374951591245796201867691478074839593061949951339047577378991891062878560160179187747829488748359096191677991404454805704800197849152584741767119130610517912709608363279855911281819263846032954654877621527483986969596995832659975959850012374473734442229239678204560407829370330638186829574810297945104383501918075808684563184997026652104307278207214407869987264060482021607325675450819340007731412957147985103028518007953817339364008183267191535894998844411945498880990625758873443740988604402443030855536841207355282280471265533711289570841029946618523408598943707855752687462473359632591475357899470271442960123822245215760278256093712313366798355315752902890458011394023159105359273246346314748240691658073860601701941492805386593329634239299623480514723135505239779087795889923878888527000982880820009542890182878060624928153971608762387802848764273893087265440898762796518080204601154799891040655816727275212979611625053203648036322679364832321601652918081856095613204682191140187582424611165705699772023654350369537138568441001689247899551352030815315047327732353658744020960565763075273866783753522909008162418749836299803242994484442638320974645333112785284709751469056778531886035175300771343652436790874998313961517533871808527175702657425394862956074750662724018074302506098476768504707247583855430478251172730353008572036792778220305875408652414726495103872426486487600882547308803219613088517213242222387327364271417657870943895292370876195519183248708819189407884581176977984298590052218784190244841194951568805449712945403289598822507118380761051479343362845007750311186130754072084724924346705138938628954367212834755099739785188978011764882683726719496919063793966907048217765787720819840946654697076990845143287045575895713411867075647116342400308672539894668340195208760626887248898879202373100119899214581301022700061849911717031297114367407504192365421394293002581095582228614529844401913979532157442985016183617283423201365400245167264819020996682255644030496548834619707093650608906327449291263283076238069479622145108780734456969217224129083500937928315823495067579520025109052191035581562830761718516469353431542013897112001944297837175766268668504360986719375187404582244574102236361969200920570230312013430199276540322273037318130329384570289141233852581900293301878055110701795270550064629050114441849305504674562636529555267873891987418212591241476468298960943011380001744004037477280975909813955839505545578725096292143737868193882577027729157506880393259095216403893204241863455882955966488325381131084708854037347738191480768874820496676859817317695044692655924715355080043004049016167379675745188393381977670941139894767273237765070545392223121310681716643054601482690005395838689750732659620180704684710245393989953413738581865989714183757766179662018301958886530971266833249482062086357797521779506409621843586287768011441556885699318764915458084898106029039375780057757414914270897733705630216691996191513657791921655365846129187366014938910983876123256511297479269573586036215215889997047367077044930526738706014848761561523055792401310053564549539116919910118405487682483993020889561720548303168131747616431907673551071932773047873050223268072961917061691775183576781842874539831349290217705202102344799191601262574257498206972585861068127266856272297749075520891643792927052249563385188584517910448613965365680413240148641173679171564552106038292638861711358597947179227858476384139523306293443769124834633047297465070010593813581061118794935378416800769129617285396731897613187696148476107800454583916471322049246922543650155610800823587290125109593343461377707035856633011801353017680089143099879219091887545424835845408154751426617645617128930331684870116018492554160696637985953265640664449712368493916144325931407525001233229859665623676281547709970988258288859988417296353933990367115588289543501669920651992109654992071983005046774784064242044283467403450884061238911728667108723690143496698036867841620442946159211579863378582053149494384964721658544888792887562584346588960906374690694226846434603404143441242860462038853740160456001588524253173263849795094048984031746953998638717653462203446249489869113431513960671841352970198516673627387564346994896715103569851696036654001573241497432191411392027516083113884424627865753207850011610950183960577440944536169986217467939622478884301958209466690081045843339111883399531556518116771885650284010428473287839532287521278936553808797775038763398860269548356430962859269835864481762073305880409941303782714634502146466444523559449973364928158822001456242122700760446581915292928795225976951104776280395878634598715800045784535968931987996111579563769507522513088646852605029417395063035228775352161709462560661351037373489593862395741237668325345325741071972240099939088320672081868584696296377944118126000814847744466341367936393425390581257914360087655142475936783048750808167225062021676372787440583079311084153523475987638785795387396217212838648784885704040646205837340438321972009306969221081249473919481072213652033991859753520350386139017479696975936770273756452459308139710702664013300863624608314563780615152580549921664307180203227950688541904716789623315950541995604427219800396149079853558163580750479190957202447322812289507906357785868424035028925612917253272462516780495448058307753532494198579150364143846702318458644372230944808731303949040824090315353371328508981182856097972514181637857089237070719956232758493583894009537887957892673794611027376981083880651669943562356710142443757562744967368279507626708291350909806077794429832285395795637371737862043380360682706804457216902467468096290985511161387475551983603808179818329764672819317302432023374532912534225320573518057616059973770124367822170338817692585500096328671230237023858448056577585984496451797909571463296341546905263586312812920077470162767249473075581943228607175984903412122038515949679718169074233751244409844428314994995706542627218947907912542888637131028798096968892898354286147453937342283865077395507769777066970977405025175006182443674167124775599915294691005775250105634737454679538327407315387306698067124297665260072895037317443971310463762587722282733188519170901259677462996056477738624621333786445771637525885757512439820907476468890555042413659269451847989894394442686988279476998603149853810023245935442224575254371527883460391560637352761353613672071565982709591784301306616393465975984527860690104229087382493335758829466280099600347892010176693438518847437829837310155845954070857200865887845580952526719069015517525249946126416894852827720986853520450522439974575869260689224222205474049454903864221423232893565481444151887852775615907183543991836577518199969836288839945892491553162829306872382859504459110569426231058591092893001232980183958616662829313193788106779891112830951493165287980296335202866160779606825276035617436778690829598956108171789850163016079279873887326695642175407522826988405237882314853550125533045588407573841225611536324033938259816276515305759770178281454163387277636214226500310135501564839290645778261508340652107420954034160047996996082408087073285375079260126262419240045312324070233848985142845805952704685067783046076009213905261530593111085378787605271857565025469187832478101789646979848327639143400031515599499788344540314013450750859510347759130677963139029816002222126618577744631404347013568474893042528855827831519158729233386034513160342875595859338845483992941308310618541058259796078829396075894444947126050351055209335268222173496044976292945609529250404061000959652355687663884673047387526054407455706344472281555492527167432277253525839569176461783130386665936301884507679546894587323199235310858094935363012324424016498138216991414348515394374559177372381810764048445017902759340142318785983160257180922154180481226010608287163761977401708017614771065202918482888952726242375067015049901939436799839445010790344555037735817066567348193946222397295737173369888175644630341725223247520071017223903243041389417989256440690994459386596222335246119788605051047588262678311886797720740509502897765480658264658935896881884855360508587298065978615143622114607010855717148479095025794917623069117596044694041369321688399056804731972824917844758132371229942200256159045082728400399552587961103129957304549424592418664751118067968586972775216172350338850036903585453486127443714598071569019008372227562193349733771052666663110939593603658132362329224668639449956684182978738741643697341055207390487964474604411200123399948158357188395105721957359435672752269964999559039223246602908867937478243395648204865742540839551825898061925098459916151591078829798273347802522984620920602341180644015092790716511430741522495727097455605423744099935575379930939725635700773990404858766058584956961207689189854313578640701736384443073353712785546754737040527380565350619962784130219936520825107979645295450458709434547478852508001232955749127323567858021671011476772180692801019645280487744685650876358588937774858775033157681084333472450553732983935831985648796716772230691764290774251181625503782032526987073615638268197064225837218533865350538531882986338896312517285921614880971044653928444018161253063590586538938911887237491742403822906511013781802615254976253048829348683119983367547693941759658830584134932194216087651492592303200679523646824098734369289839621314679073462708492677110277569013684196787436557567710522895444989551729413087278082301951715472350943213948281124094058860243918374708141621182411540733184260724435942481914402954684706558058326847007434555136068706312039849238172934243668280975022340210065838860129421854929026076048444051621868523178036496263889454586834533157286334886866228570302826087089318647490112928746925734311806312966206528372058381320922875522103851033284618938306394511412748002056943736452377431528958655708424029063154008088889019963214889616882350377496387750105630194892485334064758359163881920838094408646951486809138695431858502790398843004803273617844670051101530753056832306265562859581649482076063032877992562102722584376007511729027292665616291410619455427858389256036361528208862862705168985064908440657823749426807327485299187997106855595426239333861936653106664793098087636733995100235951423169466397947896063732395531489183028593115721096416484351762848562894979483916404404970225234365605126340557617701744481868604516906624328787506918943008255125287201119538250547038072965784605668163628443090241626699922067928383050140090872890342771562184946118524302757979407563881439394519266570479881154213686031314583793104939911729144044840948561159754831741276589353038473582887898212783851769337399846766054737799501787918089482345545180631072618256133256216813790135448069883706949600634058011556173538398759941443459028454683208957419384053701253970686754562240787828574462040453946967525995720240600911251614914779092647773246978127811716586551550081662577858583124278743703385137905028276291165886541861166712455900189079636996924337370166179340267052245448304110591984264302823970396250492815618181832072316719319781015781547097278777749812379125702931413740778603383509588394627739518189940420069577663972843154864520546966510365447284204840689128691923369099881482696336551407680814174789306109180377433962848043691058592917892263204101779510913435776167427455541688138214169685786750648981293568625091902520898317999572170556300357687776147163375864054262590951122486207833731734146297356659144969641628316716291895381634211483932421548100858425320122714247679121140783198323024880429386388662830679920297399601749349050910322132653285538120024424314919231984314274444509536687527300230474319414007794319978458273636805398743442807342981602504590485764288108409137447691023531927285421098073659323422898841850963696772250173832205537602984309108995767949324604971577325083991720545895203171032565955477483670527689345345781299064220253241179574551307818231871691512691516729324412701930053998324875223603152877737932159113550365687961359781782037288306936788271274252844648908013572936633691029634363132090490119026864934924629766914560775944707668534209400280946883973948499182159554526760566322665684230714359187915719160362300134951783611916103642353500037404553613745582320921952129182521865565279877437124829532149493478463174734370736248114222953901707144163640537856450178242890764945551852005403656308303528384887109104142047452197479436257400920752097422965197135364022270501632987920321097159674898004356226073072690514834088653895082891861044199262191039507460463546989685877052277946114916969087468407016286775122216155073668384905724170533880249376029022368820984633636466767164738369041155169947739459892976871275491935504224256606166417144004721632607027903183934955320429918927290641160519781946474661593422144611553678419411698032703869621443439444270364202542354928276875133734700820515137889216962140641139006368669191083649256146635979829351759208221218135204550011226932614629220836473196912005367018048967779085885678467765497787798836806038405415598195464459028244358111443028001443678549660941153514641105935057641732065027095951537193583030586069358275099316563375427962374243654922769182444396425788041602970064283424836537658381115973091827767787451396890338431698127513665756993880879103328844186160129465602117788768983704959110057052566005833697147038282985035322988561712923415144061437780842381885794402537414482361239883742380551002281818722698536002485762478386490060995308333833001987573325655913195088071606620003979063403104977245182210393212001939539929272378024336143953171621682158913879141904231471167131196763915632361594168463711196996360584623804200087967778391005987095051510077393139442908758119404940556506534013037605552069234082228278422103689602466934280427805157395200156729658680284476790955894130301363675829704199233242119969456283731987503640227887198670613833670170589462905095887894778567558217604477491442552810665327278418845178019995523937143562734250938228154796003849445780287580583074593480981167882948908489530689583918015077712644608145614770876195552647286907950420399039103657407778212613132597068836359169593189398587863563841635745192875461899522244388562331953701693076677764655295685319272958745249105808881565510716967259877393176626181277581080375293302043097942004616110332956661874401464652029546523882241213727418570006744333610060271181185474797985130128708509539528445947393196146425888097246115329360340873343639582706722939299675332648784749296455556737945110119346783756548450507549993183074771844590595218643669223371639521369398839008874738329820437786747315685818757071211489079167769163708730988570684030103290740235690243098781112662848066890525466799917530089182552595120426229301788777234803765933119085129392757844657884275543163789101277864260650357649042005541727093840803163719072749631253632026776953301130100020966230511497131341487948932659927620488463463859718107668447290159552757970278251299988872077864196829546393804620225113511855740882486534528181421997424785939287946906009350495417193216115630090841858531845527583166487107003972538486485124385377263307481171185992672494301455908997452848720759125661507020967930240802649517931231588714850484262550908315632033272322934209277352858836813119724563660361456720201129695167245915393663816474443906788038362153125279628438548541777134809039930886977676729143076333028858875412729889161611516508193646529388275347115609924437926985539597492360645527384413366951537295921072104898560043373238284966797766403670293804997551293560923213925681277528891345042099183857972515927862961127916995608105425695423171937408898335019242401770839368924489331522411267499395802808805202788210943919983147772770268372927492895816736615617049993487468570985593495737393816035661956944409915845502562856039804688607341205483234544543912089500276009850007037649338201369310722655573026333355478203353184709511876667755336609801400462736565214071033309473808398906637034967218061261955888608595684933565977443782703538070908697994289990074801771742073115448343515540786764384402275782003173135233909850707742424034129760466135730511505148864893061341736315871745741864577941974464845050564383030215691398806343550313280916718633886154187404366472862385834828003406821028988648572201308130849775114793554730584640016257971792959442200245227417197780156323793607249169831122689445331798819272255411109235409395549023181006077307477868608281995652711276503547728182948039753208691306282032718843000889127807389811712542152505301097758461568052376053053339423202960867192034158745969427552964641051695064812830959122738938685363510857785616087920716841543298142536583552884240306658069449301012707277556365470982549589248647168954533588190098790639624691616734105199389822005974902961706975869828032133603390407045438505840823096429250242045791483663261139091198211371792010689446195241752182234925467531646626063802268993063546339956085274292914793089314824919298008937622646448960108411571445835631663473893908108087939586514637011717970561974029983993808321305893260384834116974454423303950969074169565376077455251211596877425730135142450921226549018578643682977970374157945053197838172081157445876664176146022698707826344052519571774288369332340665431113025510670657297973954625219683811628726057689851722884111351819367658708596404604611175246169345329910533313774903229989413641115835905114760369838881345407782968479952436623734808403139755249810060283041728923460051901586514539164149645838136090909570579243300316272530220569866230863440751235947791720245344678768868048051503522610578848400769237826899316451622053671099517416107082748164053661888784644132782618387877142966971259310483915823901465238032396818557145695770844200219647546864084835446225830867329817705680329522513829631780509959172481817550217299947403456131670549051122997232051647423451899421467576529481836542868750410776540325563418236368438783829976807339934885501448021358116625592447530928401584849967670568856368440627527320320201932406013073970384104419993041791542152622002304115522879998632308216911383539113446141060418461170203899704955768555087850924142178979461448600389050604487814714185117227365582101070925760836545581160893426840726400509429521556687326854148614609111383235566319941421601604922425494060194197309263771966974290790460350055480960804175522096930468297051606734699722237377773294541403506405278413892203084125288996685793484385758638032679559378397067407862720656401499664043372363881849411954743572803342393146042307089936025987993101806025531020325528652688865893296172107352422368890602558501305628628727777355071373970427535729847598328206817285924642712127329116283862575938004543857537210269394048131328723236066444437254386939205725989461670586981593034662058386741796744523698997035368689197512857415465835492107184843625139463129474011717609491278868480278157918407119237470808963584265619776010254941457028654276999447800594058400528725709294001644848947843874076467406751270295135095852591387060284849623600731412091581177217817204746490740855812093520348172450253900952509075691936733267172990472526117275373041877482044512589831067795275446070827613516431824426366463236383559597732071694697736071287901613783492324966251932095967445143222341297174768371306406833709170431585173670700574724586343948241096458999871553886238385267735824694443435085860668322898151798927168139628522310990074595560279378685882440497515125843756066005594160982185679188731194354998598988243758805170827034543629981485573009382298829516128383332439449536421797874644429621063383525997655362774051510383053353090193927591551870699274984977762007247121520029130790342587642117745432652718795928339026092142067775870523960682572136942494957270731009679761519272507953993305172348640224938389365314240938092765083521307801638778831150481262863168728538638966972166303804193344974222160901660718063791632096136460402235588880999170898530291857007099046608328837791440188487217571190059651581743959890425867705490682025995611995014916623759609267520941215390543079780560239646284197592189706655541010182744207735606308847990611868716756447344344802779626087008897275741141516942318266807108161865651961957782745413938172984790416620259081753678328247008572118733273770136951392125403115643019032932039209865272702810523359836840537723452392553549077842990800895725796406833159586883017979506824398051554355287664294288941681625850736908651358653657965191811883189296498462146389601843243904017564860168219329470653858007423023811453155460022423249575784965040533865447041138369482058994085552724576177500229849316523412943110711457099772163871186883463069316121710737945347696933986675648549798226144476359303097770824994898703862271977906550401515867115200861883688780893164403358792837351776773146848517620517006030908962848534683328703399087143173899081631270278907804742390431359150199274066049333867854952277815037473878035588353582776622245705898496130618982554717900479792666566246139577206966951493286420347833622937016120700755409495434831945183106622668083829545087396774602266075737534629788955425740167851030622334837564746478570037751891171397921356715890672290905471620655064927650125708273195047546402993683484477388575899317608333853980916545873199629786394124800914194116290194278299492251056492046994102595733234772250496919039706504419670789130829212176938239903929431423451972260722630045516516909463937578865774103776528863836068024884308699817335577321977335827093061449990913148725759226096703284408332385666798874746454989518224892327646930469560004954938320553700955694637094314347920675394580324022016530135331010484252410879536011971370499735075460708740376897923461167749358411738090796018005132883265857631150245616655530090443390090554734338878154824875205405535681569443968472513276529174249614234098043115694555596373648207464990241206087471583017547198118141639549793183832016491144544401113809368894890092584214114196995532463682896787781626550104749269472696731422480226493360288301181957219834122303896643010696012444191845964428855318362093496284766594671965063328844883579392495008430797566741658141702884702022520823082235834132588187035732805013780651122493818656998013473390874207901246544432692503882045761290477168011931635219398068100025846035089279155789098796912829903471344440739759848576792926756795501711220342815774647736509520579644965739562364263039528588290522197230544772688250471439403580097649666170862107986812225447598193997439112682642363696546293821220473852521856897659970193388232847709485322672944393129667995501421327012232514386871684680833413159672241822550971157311056508045801755443984258708563230945676001812785626664575803441366926510735708456343143518822348710117472416993694137680840758078384296093852039431051328382756962950303126243607864286632953262892693645607062122393146457242472526531380890778275203952570295356818030760422171784456428192211840080590302290150224121148165677927125901296917625526550086973112289126525347915548103312660992490464626100358350645807629973374075023676413360455988643196282762507722090753532531199195549514919618280602892133532937507864838105695732254345836540916792748007625211364974183629241627728606194482608375621775402606609353857141923961502338703990260658059164284322296525989286518302857843657020648416929912555398235541277418489360291241249115012953044647540442396673279495337277345644160224873623654771642262727316122229655905435803154196708562961356958337935111441932502781840575383162534088002528166087723286619131731219649389067169566975861404829868145510341346324803968605310339771009962094844990508627753961652902285586402361272856008089000741619078078423924674081624976283175862085129955459470930722785284018183147215949393211850982220519089634388428113202208758275484109991872705478615257823711174344482078079380554426819069263181302333127333809106995372509292677386731342048167937398286803527619197798820931767985398776683629815668806238109143160099292860346421820084549387490633432601122108850711720681678265712199558433886037597712850327127426021940557939286368194565926336636076055020998578625438975367575836979624108053834150210403882457981566577626526531347486135087935153002795726560384926373525430073979086657232451620481368744238803303951813154727202503216535402536357865020953157583919729956498864361221084780817533388639731374952959332175321623825841235868990554650907771195254041784917565142960403582651983368511290489019800173619041007336508020626606793979340694562479151991341011866282748124195502382690879495114115977961022662671235717090889752149888458411190609595933628884381213763680385648412288643480974593657456224538208726605908173324588248144110315626227778567793266708636326166864883814856209012852548258960314490692592665528996268138197452973765373578455358961995845185598689713992164318886405993570607969759272830831329942350922782286461503834167032689658254129325257377837558805693060103054799234389390570278130173175215153316549201496556436145608013930424810744738569420055865641758448460697618888662353193715399980536876609248421947016332022748959282076834959999093733043786049903975831325406335693076305776552085110700700975802217367499757642988025328899403494365481294067554664461955251426536491447694046848904330141765058393706912417060253488968756433923630403428935570353494300368998832424073621432521764669454150040295729839530021939067423692411175727738509798602957127284800467170028217347852834095221381433834851681093903173659459922328358604259810073731615317272752618133983129724084428051261125751912422757899257203458466163473696561054076588506606186029757107658123956151356969072215605472103704534145956183402496897333421592572442959344873133491889569338997310847975512162656792214612424542279343129447937862484191994097095671264352137690162116065413223084547477301506884982181649332708533628178417101287375953999780297380131410262744273884564514681404729932839634001450898266075082200786476347958234477821555581881334472944443677813365448688335856315517000615852981709154682102182351800003621417859175648751668982480134729676451114943246854001711600088901268118598229585037940098136385309473722527394012601331818272123412517623559098399025347695886889461595586546968483381910671893555679877741017898113158601474388275584581389015880772658183521120603024321913480299429896414465239141659590352609999609397162595270025185291444418791313794196633702160610796287736515968295875873362070988375584905488087292092720626336732448913544241505982499486392215949405169655682589032403552351068024575849334090922043112498468911071595701787377858962285685808021509666097288992845781055789657303867107998368024833619098492927740592040148968711031150281657119983258260562386251918459014123114491699916216194640609370258032707454555819804492449106817367659343689590965909904925778991325653503922859642663791431764922796661169253595579689768218145597842663938061559176825360878005237294440881594507667052260942073236831817706962515074576192889758123234086701642998717652352693069767527390448775476691550141896917006075620790878566804754513422899077011893587356246384729416248440309052014618182761849142734956070250617977033681800101971918587571617001143519607094007345033367032151891871306235178454984829600752061091191605793596840163335101051362862079758817366763178636765937790155202481873006637279758096605543899639961122537140650952934932578581718520670324162878046709271961954339442829309214887861110769108877250821814152963602405662086216840546511331956320649723247112288691607885141077709119097716045757796231691976722571512701415231360746548937632234592242062886811180352786022959165776038551604569649706553184326086653667404303704309849319394707316705504998666617242015700533051328836310252332000971319789266684152545538452678583033482759908429763367735121483149196702973253768647076418444952794506741277366680245569990938799546278927097782752750032218295017172790153216091225770894516323551470454197631394907988110326110343207057929134069889887542771717716064731109838965084246708725694918892054223402286106700886632940595595697576355146873401888933401690422952143389438436315691731772935107617882571959736660333716665492393576049267067740167671520830392040898496096147793940055840043690379232106454168811314970414540893183645224835506712107464384521889670142339849317202882551147338630418032810451856140524946262038088104811797910778326898959622382433284172007190994483018547691840141685823839634187099935731657556100263273638774300341720035579405225346620792013091644074461685134479617347854283078287324052106682484273472794369541629047971286347355426296970285980784059557481184793969410911885223434922632752154345418768997580224250805329279896895817810137490302485602159527380673241192885991745142135990574764203705303533045058183046010306037065177955937793485021675672776441485949453378318043754560114730407492342686184119391238122282457452037809987935629269370087647643880428159921031795634814027538235815438526198512624334979209480284893760905570163835189006711893817437846119241045440471511377696589015155369742515820657838704401620783956925561322473300674931114424822430777973703085459048537099521645736350371915454700123128330068688740203720283074519860668172333311143449636570960102638843958483843883413277246885203454372503865697369072032671508989640858534804112029209353044699867011305348967550682729021827196675079796288500386787390749868743691129921810736715310340700560400472555734310809268572318558507845107330830339985670554479423628458626188616481660560399552816588604870747722512305845402702364616108618054116431735356183020981563388543665874178632011611196507949735743783619691437143720265010656529663649994740583191266402022061258759984094640521313908631666611864476058672213992380571810986083866227660831419969143525095323783428234722401098270818115980006936092423883203686456999535093877239381612767917727431752464141692398689581428660121723287781097664994633257719944000290098221199166556827190311038551597819023961012750852264176626748477345822431801010773550411266607505503786450896678785893231228450031528727742544799063874684604935892062608083485826819088662430602023086144305492267277452006098753919980401434674309043063396771537024369194386352271176895925644693923932249948909985619857959225409028918360775274800492226663995243378423372405326933318220179419096713895132237255255090988342254991397369062388380458697885114305436836134386076695949552536849922715502517729475985730837175492753704545927405722038432553137883660746916927539096724663427753081575516079090516870926501639329704715430315449439362712589951089422375024813905457602471779897720878961524751843323224373570103900806756503533719715588226502544736408108612530591145811756614952923025856019341625335530039674857444563725210645685243434880333854341489178432952774578016913990849684691129249590640033944964330495560442761558040143143624366041180183225068505286744622285200461593052845843484376938495566488413930273354926328800154456947088760478859215759062880655809316296483038202693651896140286914562567064472882267059211511469991875160304901559725683828674542474474876025390480327728421309336194884001580322141395768627880729423832666712985895919101871116589665404306259354654255090795461609181743240028462747843224430933511386390246578471511791012709556566283858025712645026852307179314889404898679488246152165416874637246936880685602912383812765389671573799154557485462621212141383068903543460160488087967859813419692473787503300009246739547173473757476520459613498471964785716589137626875997390284927442344683524418778946532572678543618529078647881526115965256188652184658267638242654317627011832290636718586995542659862022566290046508376173717028570399034185118664022511820758193820676437122049512742611420906901044581157486652676792357701807869757711362028146344136684350035568306194960091498823329278480507808120770885789471733035427226213337164738562829197005781216349884815157096814279965884883397113672029509172426170339588415198951072001118822455194751807089858579050664892122409590504288975535732086334165328457856989116488737702799158049994340322108777713035236252949590625962264412511594945450306994259937421241723724312558872009000156802844060339593123946780712647484796115064276665599806732049652317970742445559069619046761098166081014303588708970796803508880655589401323672211800609790988681756367642254305560641060833392380282686315706416420552731775733089690988390121467143798343330774766435756349136106375738117019855997692879740390907548126752166843548802616229339356046405127015308120113632663117919781064294233537981338303372640616793917645277399365134038702715260616799523445604633767324278012756495822138027358707211074334210646258505689509370851165293733827809787412292332691776211807779350412201118972022751406617170192522950139558903075872211115667685424740612364754227257493788474282870783595856263781413658170246627095798541220053961874513363134267304773766371467561303776137804110989243123897506876471221990548178832291658951189101192841355768188535321529174777486674478842081839869037893475542812975527031065603715069265902235405010136160584803676413500682544627232072189352920959989524401015445286075859662262608001759475547023036908109592477639279902500035430268030059073776258948059714959220727743928588008473936656597362149583985048987780380944364721185964574595269054220757320691238988938672157487465824464705196283814382918610400991338516811544798923980296794292818361078867283836562810068006242081055371436366582275288005214112077793441641020814161343216802887020793050596850645918342548125203512099343973932932766553343309962337201173032345686535282547840226296082675880067100194853480835586306195449685618040534663404533764968734586933851843740641442340624973255835073592742368606282749717832053887200262954673441905909561125049337367537195727860942092293221901810594732829967984241290511687647114127701642423674245602025666749318207632487632885787089845530690370547748892531077651234022251198497643939705425228714062301013447178125711407547536010264778140309592906417692775390420379632067859672648319205417065326798486037242703831987540564638241722637661416652342326623157213920075327691548503366068703039586197693327022837998374446431788973595263061726063176171746892404480298353745458370802310308525672194732609071539391927667554781781264420909936072682027576918808523008092071436949155077508802282765763273540982225217859812312005134069069792580365005302943445123096710971135435034863271115645447552136797135258624929970149288250174762087841995389605831287075329941926714067922756228292893684607080306275366739217823634706220293073268566553889135402436480818278289319181582379463510139632489969393512196568367569469177333807304147779032628946171251192063496392948668546309585161822281009815656582117256167442396333334937062833987133239170519156199008454883128693469109224516685453673594412756025475999160757531139007851869279577499344200912763269853425151582563116294375880370248294337486695021724026698472129737125746356808352619076156381583370556564792663897219155326169679709463965035139347569477171698721753052377660744039943289730726541376098782743133575133741767998486444651498638809740600492110741750748946244417973915511100143211207206676539344597980999282857515240159534718720463473603338420700009709750621014042167155158960455180792748852910490816546000578877744341457041979317580622231337343665821217739380037987168949646251482663514571323573610499986512366823387501109517367975913452917212461977933216294900128175436576000201788220696499160729874356297647627968309864501013849926815567708620633197918673046912797646260791855536380730406546254962166238342471973256785260254113519005088457793925249963521906535615378502380421251219421429600967232748302380177059356332498447083483439068377307407865789147577411491606631037607034483515604100060208290218538267732456215810251306385288022097067953599890619498668631986999336748699236955773349266877542661587032382021410110967917170765180807790586352765981691542978556897943083766975171876965532048921218315159624897583345519783866279685061640036272204945985776098141087605943427983620657278364878908428517693348119998368424952348365616147493770065779211156301441045498477524996429380037430484017356561233323972981072574072839287459303381362839156017893245619805435581960965119807513663107424532892290429519981426010692130449667330750679269278366988139441264064637339682455415038903643961765347360540247769059736747844066831797159108750986929173775683676998826252298625462217456569444469558978971922893230849847647682711684353051653835093603318262703637196861107746006526438442407061852508058128022148778473734434295140287091894244841436815604836816124063775435127499462887700469759034984517668993047137130247279356437755495128977426557406716261259296954953588725458340728906303764173540778704763175239613760836542733398142104463166817129386002672356449947407559905708822259297131378369579945402098498445450512776873419581657190778388522439360978460856886771245188916898190237448213576666010795801830122275502635938302155580312687016663262117166260804270381229012362433433450911114517038172036336777199759690856718873145514762126512337927135423317820137365042932786532325984428791524998911358287646673391137689125904700761451527467243760356993912863644926774956321931399893287934815971771977740924248753106105481799984753636489307434786179204557804828510852926327639973515041311040433946254902079202615484473918662463148335075236250002556551403004484090628944698515252606756065455328384168080842294410206751442757704696736833602790960024912635581619618740315615605024990723251960765395613557057984898362684812043067017081726470296253004256314452345360074047809318291399956217887524223958733958048665969287023149766533567817051787709187373470773177290526769807441093342726912110310342926545340392790038627440091033052520854361909189904100933353994313848667513726030643025440774871741782216456106768161213255712956200225713276541729976825664053731450086267971946562116828755263199819269431163083883375625998542655566694486730309930605676868924683648272735906072678848285234932229621202311669567303936468223379490441182163924348814497159222609431088700076535552397963913958604135189110327008243435700481395214271823793591146230199520410531739107788059283909281748748273944147395106509531923085448986314729408709087929971008660589687504142030428634509027778313053339928821860497490712292082737628327130604988190993086031386124130909470299239079511699274516188727825340123372377991979516368681102458788303102298579640287623842306518576565092834590715726185147248009573926737306921617277936378839801186529792328268311934364458887843538508709221171805099328426046833925972058105514089180569356215339662799267571171600910822496856437798710107247660837732950833510273484577348360520795380613264383411253612829905557622180973411305656360518251341685490309560566479737380751768454382460142729564229211392859453854254375128967925796511010781191747236084883028424017516947278184270104072734434039490670926654824371254741255349098700717677589825982084120261080909589370067494477609890970243430921346419218563341291163475720392550896732737080835084371101098507047993596930274892281141538289113876244961620482012915895733887034758644442010458177278799213140199138808169625868301658022962885045663910846429862092078566190976792654637240209716449385954204649532562302498491976567643830433142316538322222424438920321648031907177106249631326027544189375637079006974596885219548935361797060116327385461031727602370005745645636902527288724147829326754349549407238895974710954186012866886032729548909768571717811219893736873410563746357129069639128772760252329418935005473001781249436947233489621725629979566605624737192823829197634124189824801098699509160647739377061996132815550225334389204153559561184386863947425399448109382742842118561402875689665283493039484011957717745974151288079656557757758565701122705652960431266090973081165794309923959244560230100058664110709009645238158184140219078865473907207421344537553126820752479078912611544227652807598604838456888801526875547460540346563296924857400398982574516161274392456568629427490385878526300492056199784622855967674778920593128617355667868731533058577231288317676838975136177168915166331374079136477797392767602611017694202638329726470016203045905193170349107189080838094124971221668047324956314658702742226610108085211104166009598123683464818575081340635826761422961714661189700327759075227132311058913355188545688963000038215710156272069488945468897726376466517941940349582631926982042171274668028635204874658114705220171210633452476501053576619459094612362813748087903163683057577321737409639204829180982398217780981605319382137085948510379898444657104736303649591848524276911412776666640278116154049061875934423063374590659375954966173148322145168475743681105859204429985721005865419159763707353900979216619143223957250260166627556354868043107686815556177318778750587227131236772458619450901864376700083623883553577904436683549737646562304467907348334114298887515356081416349018808309987842606707850628669676043637907549075983282886345627298968717867236699526241011437386378680264119277319166747771942510329412526629344538345848022753110740180506277150201122453193607680678395080273876076371433824739148028298765605727604671614163579882302643515827809937367614590532658271695289472747124099375299876047303334803780275846466222939784055775008888393891137683628779036098233343807118332510523581162773039750890813959114730041915021979077932966648872431806367125750819714580598893655160800722452784825878360556682773057961639147786742458570720841561520811667089094163386128677801516341108179132321484917699094875031830259371408294489447773433048482104636513916073804339479638903008740996644490162565691470713955524513539316173367251073984435174813747692368224515289466521001926828682377987934790317927204313270084162639996496472922551587521365204182512282260167357902329153425151358802707008409674440358065025440381683877195098372633278954737084325042527940571927339204269194988864422531520867236229922864608531653945197934777407115797466834727554501474426316101458507722978799580286544455433088343221681277726163108114084501305268891342763698978128639273643252284615081913361629022827465547537928092588434335749831929380004284217893458416928660925131924339387296520551336214381517851746139245943144870256671360861410577327607950578533912391759884627792980114619668062461998170766588599713319377536377760372288294426861672456111895232968291502013173715107080882043483158224727052691249976518558389635208407252810448519097234280056808395358443954932519212318322133980431733950456580691746784746138238894437150295605012902756374523009208591508591760907075997071109244090232263843191825820726269314091236725079106049934664415196589395556337639513503220562465511312187971065546736311300244905806442861251771687815466556120593281083288534592743297850672464401244071775781635659584374754359127457552043951574905308769536705110547741960676495158053851190185834045962103713775373230360738891634993888950582920744798141032299168717879903308846288507707132582894102247708122718836899827938209756418620753943767481739349871702584258744691707477804472861337804902932120866223769999570987265454530989960826125562048501107203453647496708922458728612097388856074691105297938596825644631437730439026477814937930079117137489041524696370455995710552039902767800584264964860157880960139018417047042713831473499296440121851868459171695975685131974824092943231706429869534547814887860643462270838157022832054909472666916893128809750779978267742779237507951205317359141335336466230303555701190022071264122225052635834673304577237958680945396458681894905322353981491018594665486081197429936840082012620377714153211149223765760687152827623549515714925803374474781656763035344395671226393235953504080317242886199663272862431312829835518919074826757797513763364633576746012097534537728547626683802459719468861133318656785266988497438776598935229296104949450604160564430593924267630734445743404643370701183592615379478502939337835319756351777281806093485189303331500461575534840695788020363971279635944575028295210728435309805984367566372341085084734245822445172696224467893764660207456697334921251024316383181666789777214468445520646942663227608226829015538840095236739811448878665951329010628470447501747697342612798391354306025328724728520492334707087006050369827716201746415806917540313724838375538673764224131886297898156506642361696264392997053655949469337060883992677124517421798796218478851226157142779134909042614586230634933468787584482750455694790589066915417266330720496797749469982059909729355687974646583371128033533153329616540181056051531999193585598336548972102875052006936298308847179148005234702015361896604029730756770732458249174854136451943736918381345277471834458567585049923702375962287859216035740462414593921594950042697627016836007038681681389323196322220684842358604801953621532024409681791260660513011150427121659003868311824286963754780819130333608616656451932085612486186795650717690065317821863259666038872433902781440238338965091689032924682910652706583084510181243935718840396048523459338635217574297558545762454192188270273199475623808799035676302610549461254397750834279718644785858066162797311439665155986119435698881705935589794076374767889771302491384366712282944835896905216330900367723071863950775047187298400706882244032144102862825270578986654092280171152720901062219951608296366290666789200656825911445187509340258574676653375974908939285291976544644754615940572093336080935214886534623068192602157394165429917151407324711175816296162197533618620759131191032207029079761703190245182708158361748850737051739280545553944990287732035199916693010690886626365891736617304345690572268550931327514673944353197228464269392754101038148385988358724836947905482787580257059713019825175015307531133497672054063839356968070697173012387780643077558711103711985163052212215923265926501728866702729209163109763553943515597301743651164431985477811636304884339611595320319898359591143414850616779937818011459984811753346943411337005053184859933967725787904167281964526429251571442519537581081370306226411456821143060902406143127253028542682168920425863222171398601394199765399808067440090098527659318698451016237172340919651562708413247044559952167439685774409932136501118369258512658031330630949406788549425863112543657572967540040914453636295908027449265238436647072326910483891175871390983058016880194103850898576167970352891099123913065894671892466328513566635654434028532264394784126934562397001767974743429092336154934352050205423439889604993798596008764250869475593497971973338990190166335527440959592834914143040355647620635769563294935898439869638904694981569509863901559849926753738184446461764791462813094799628439609820207423977524413110268737143583757312830858830910433339616938020365314877738606469652291734856951650861600433352099092081738693045155438592867604265366678520081082290054942919170014143277291564249071765258916359431149005270218427879946208846559667772206081286759928308500203465704966980913561643594752997372991373623622845310042764632179700634176216568642316580683088490828042982512204588930704500759681664438874496641801398643011565581705882609548761359463034416150495660342375277409632247270163730587129047671199145007390541711238656327220168358922736216944175876512977050845684686556493167659270474561040264683860192726865969835137732066816857714337664351954461745074305833429644494156677803082142863323239445778248369437919711594468070137485986909162684331520319152696309547162400791179800566620830202358628521341214453395431027738446012661403702524073170119008195784045922416262167492037162576392156132373229384672633575019335884103028928872482608906549818472345903849090777856792010408044162348817163897765586817649984547010420553452217710986039220558117013236881568018197733249197858299255170235889359714320997710913280057331866821327634092285073772784929098428270737083909210750940954184414150958887028123338396183058671480296428831275916973992008722379755545791116262658245852174786400350955524687205749406415168915632909595747334385770507718308863122710250131338339296103921587413888606686971251142073923538896729827075196644070866867757330085628373266608527666901131906475550098623835291227871943242324961732414126316390711200557122708401129476258633988610977291050027170849752054262288390458446001284668481577782813354630048181421804062520820118175039304857314346497125498082831857389062562012409524984986206844651092492396433075408678136285666612046435143645163889558488070179395137016362665406572308987428290080793365316353831863746537187128062992760390485082366127297328076068568596921893434092634257333109374258298045952788870608748794011109381823946836777754847561739529711664101875711335691801302981807553593899828932583048251273671055453050009638931081886900056158280285245883794232370934125618759435656441051652400683141677125375567704897626724645945855671888529693870877958836861619333069972459970477258823097963317201156246197726574254599792016296035284000871342686829295426133988069657464550716961330414672974295544743778272469942821693503630517046674995983409288621061508472762422668332310702027327377697156683101150376729728065629502891872327307170251370608536737145099996884395736685509030058771907120765834503312536439439536203512796579866227031662483039109115843037932553968545847920993543160032589910592799172900769284313695952416927323737396825727265165203642783083240891779075352191232063950301364147269397269915596024456045147795983817099542849778294777919158231556303653641734863326605788557554963434914152005571249195318981080069207534029988729912915536140634486255145253086014922933425268620662578763072565741002984830473437398842961162922522766949253677692742649477309424303108048848829829352002172753102722913525533421224497486986116508796492569666982527814918370024868454465335799561813021002858074398182079778858858422976584463219675160975394392499313883785349514210792603240986270235869396588806099041145814642285771004062651938883584072863235156615696773365948969906835113505388407148388707493304371498889258544803440766537151222627767363632639537169094290071208397535344205301993641942406290421956060364218168926555248613490690269875968359310701146595588286129926007492437391690533923563257524617758443929384472887212909564942418810422815305843395394093964670182362794256498357822445523440571929693262993742906738750778688573340803816903817924478537182288191190141136166611368278564201160000569123592978012866468028721982202143089061934090701609877664672404513140444757105360192099278553913421430135083993897819618784516020263434910516847914893905689858345772126095561281953304701313505268076641550195931465908245046053958602113835544625929153061423904387915911272274512275019386467022802977219106411268117618492931694697710552518486259756078984285668203330019110421008930602688506363785687152036592911625443845572271278846022555034686210149485519312998529927490555731674757577022203053478042055232308854040191910981322510581584345916160531121095350092205049306260823251781497775119658428808446415077952786123079439875623144568686896097188547447555356416087801529872088448436172898124354824178921351432682375191599055758186104176689088380223895229959287928197087037285011060769013201446022381726481393351584551638772046003719736132765012124976599438783425757327241027666411200138151397734586374431171965941124049668952451857967759760107284501428834294002151842390611408385693373467964228038637314204932075867748664881876544250054431012341812859137385749519488303708481936451833205436521415913441183622128842624706092630993346002718232006651457767853064765449072241459660760449360527985316618138970649891922361124327547909421772463551566015929762941647468475116665779000172175096259055343044814379310964095386714641570605348712850824813085189183584227181059099843537431311593786575469345106864548693623207882789405075472128824196680544470309343176076464331330512946880821403303761071103254592707505403879736913588290704911182730920243114867289291047783005273553087904677188149235003164464195542938408847800785469079302897147678736090868891186757908380333614103597062867941552336793653671060816726132327385393450997134159876151095783040848378840180301057065038105512011859786679179211601579334769914754833360626293678477281292908664197581339393941793090608494083781601279410590648157368398580147566954993701311612238806446223628253266701668406625652510869642142936781238782749852679926578897556916263841823132086903052932770834595344879519320545093263495482746300147003018737453868831396136591402270222163609120846291952916234386936335730543965626979252076517257002500860271115780202961383752025588072384898158020268240571426180297069969376462910558002993466776649219537817922359878506206234841134666511388649430716599006193692737648320423454478134878499359391371043529747140109405298973428218176306336524059491941292851228348223898444594606284381501362260848389422717546967049752860928298353988930663588998242399140843263838256589705925904240993987275462062685089411947999013749367579936127028136790392878520988004676886704830310294867795472797406563643777068738302255417299883709897861671564593368783198913135117405091182230361885242847802469876227237031974227287501254072552375138770006154344680471161457486024090375579729810987105162295868696386649460078621181183927394700658479610187879984207432826252256564566454326774291580252893133702756899214300398125676861332796244747337533266172603069799213402671769891942415814697033898057575239366613557986062305491259786721939951323590750144928870530151582926210052473237194736140306031103731082727690372918593562322820986349136401481373628151455034169189616942691094186052999972284443550566550841037253255169561500488028470794267049978725674381327778734248027566596159496462380397275051566441965329337859937183876494149166469117189703487429668533897777509811260994836180358748218012180928883295231126872169026278055343637635367075145267306509511513130986334938244861028358504519413781382640479860009144696347105618054302507040349051622953894407791238536187482723387775053826901751870152277415624515649550420233304715148602259152508551644709014426701121083799114708947603296556810477748966644176894237803437499163839818708379037437271177569931762630612218554935192938311508325803977855538030275255964892168743958967695609255875277698972252106769940693111592721917224080504881803071652878651085516538088360145561520053493716830425298078443509303182275471409715377732770858800137143190186247168418235988679429461366552960722430724855589123766490709290649132323209331650265487868020913619865174752215514929051026130970389131663906838188920442144963182642698708303075090808265260783582214650675141860125010411444643976742349178429400846631005345456935440830877938900294308228469711166354556423752164713752005247100430594931621566471371412152626635631336258218981530815057754494156970910083527629620734126823995385613510958859351669503496980184147809047288436393922575707693201229100033497686580421794349924760014458578998756591094775809151079655957617178274643249548518404005226339685440432351509759043966431872813672075571153967510167834888410822366107447559187399690174122320615373439776891874171492665825183908038505749886329013488885427840693597017547509179401605801003297825016320165179968202035047892947116159155242245004627180796513402362772714612659044012298328069014548084252976221047433302225364672933602930964796580075710832430070441778238516932503581076504785623086457949999617981909091429148535070958177373262699929314444217311840651751427950603719504418612902784610580743241832841881352643722681177209161227652863371747516645099934082706791708073282716162146489272942116865744785978993221597452246528966627104150313295538906952180199715175548554551373116167908197770806581664330078617665093204982043984364983493646743958143037227644654411689702975881405672968844489950666951632389245717301757203960712107351543520053654150888070079448781101905056538215084650208593568462291944742466140354323300511903865040473135825900646991251933312312419497360347301972225679693489754203196517573638416910208172011175076083239608903284131541787456353575518262756550117972742941976872831768072859601085180568130523050687215973085103151418392061333363686922498124667701841838362278534629548272821744069645910448810179331987735107022612971177077451085949363319764989288691035587398276911476210885261717399398145305603272601849634387074576178128333715990665692184000328478232070262092317977629335587101785642130470144548181138013682330655958495482575656928341108972293792261294349107409412147654748948362171649814191650301803868019552125654760288995439977529285181319100286822440373703359826658996673043388251136082257134820147325180790777682156798214746490534502362258363275357845151025209044411550632149974533030511709935101097515090751259172810256836089903664108306148834142542180339763051414908728815199858987396339885938541308663106834757028970787344001841556762455123985505473266959606965554433044718150167580189854625292870053644028470174922479135360786884434208848890658039428013133466078632925156802936780818288364794230835058446322596574115930269896223818795955594698897059460049003818652599679278910770483693002370288678730842957856023597451037232742885133269919641554882877013599554988115917364496742683717887422807776002237126373195477955865795687566986838344955986824718962929943486543899238910541203779994591970716214833497394029906879281071368338368673099926374029991003173558903844055463607298428546576075100305535363904002120778400848899923423687184581519647605392431515731610385493984952993410458676798975957007494613327141685387417086443742272351421115800513921660670916954381164545495855363196328614794952923105176629160843724900127364219231551702597102556411348459351314251455959507641186432631404907246960441171523702107200716207290665586823248070423816358563117264420101112188667296246463245649796569446545855001586616018820574992214961868797334737867045184158809509301744489617938312095431334161447792954742814246389676997937625619879193119605549938854850187856798401377733317781927259911558396492616067454336063436364714251896641484404963440102322749077357722410081908238829983846579735510775459653752901045764328959912151605009926306415414234401710922293952401247785165243514478331527417806509184342036068416287161177946714581540016983960396863312746927784423120242520920688148387807362629038800025336991387031463569487105687607662274518809677645827294596292293634376912545715762225906352127247815347423027568976605887340819440657335585335522124930545212843948460023410948703546963657174461865936853688968383388845632509554185332126666960885733968485605373043564465821708396417227609935775634277125363157826125837017211704561838547214945583496766394845849914599559557737101221731518785745129641188278439984355534755201238634595235361048036737431148806965948091325954562975367300825442968515318255525413608745687314877223886687048921704699052870376784335563368556201106718171274241811024442344567355036881381315660031454738498306005173591388249926189648926716730710019621880938813042453035595067924841198278270857118347939465150476124172628246576208471685344587314251185814436788669372950568526777051922600718429945112134930933405554197744989177134650096007886796680973773388802027634160291477449379419488062313754981024279298977938678535828554460625447297694914691916232288313911745652885784410334477800555643043465536329695486963308742517864939975477068480672320082134148660416544647252173060956673598281625268300739970167283558936053226543705877289858503185115670603233636390458881735034617607503533290073049408805841585432845510505457357227638509749366923491886833862639961869232383438308921626735702073126878564734320891327743453431172668797435027161475484176450449121572148155575223501544882268513508861001005131029797926204690271562303926464624514921421795499213579489738483920710383466322229460358988857075163228771249992981124080122243527575107192379056302229212509321010326271181814939495899577338351259223535634484354053440503838952767539585674791000653006267952947282488119526631018011947806460943886407483169740935164268327629504402565555909087163154514578635361341876012820961540950846092961746110288693548161866148002873847537834949689874349409939687236142987088121273254071268846228846383228207283462883274045462129276944320728366885232433399780916600993007947594788342683462118319791415853886575113336724484357420422643002711293300842444061840074087145260730095001971718261776202156209154290429509379993807303358533563399377678505120119407746276249930949413828851864706945278474691441392511362166928072465440725049443129412723474435256026337659728010812084018221738084666436027843516881311017783004350786197480067044480371036360232738216864762249060738839029542904525707465430231633224794304948689852202576329597325175975678809754997648284070158972927947488567579324172155873080854875099389514720213208382974026785220705134277158461151734176277136104400894654356771684344208656300682456837233869747459316097970538012349263556940463555630436638785835963768573170473870622652193515747824800000849702810019407659252199108832491191729072836627295982492407241751893307967412168247769943993290050040636094015352203514886672762533183763677473650519657475496055376590139672606379505859061272470182586152304827950712016550651555314693388509321506525649300409929259632925414035243235982232579054907291697668512432987489912414268459137085117183882579532519290342663677118170785058019068963845227813547100631116619934108326203846314510600825462926931013904052145822735094931870086730850853322637191835026658510595287174024813551723859044093554382463347754703052845351743773663489775986945950194020196552386150350798680596606536804598906623853926291898618889381378794267160013312252520950410268127387015505255873736617572563296679961286871473916012947265762840661220913985297486414603534121136732750363647399365917226732554548411813291743357705654818436226953914312325305984183135256050811436219092159320063061195986537183686631506075340573860901884012319690445595351459978231773155513557701724520515294914570308829597328310001684171485854315627749494291996846307028409979388399456500509405286965162895428766437340062418025353525502852075376802314367648057006983721767577779954097567234816120041370040616218116696941775961589800726785930857615793961465682134693389678138815695262647019826412705165327723613962782389637805429295236229792284986317867486844958762157067097424930832821350863077567921366760798832893515474243244754290239260158613339705218663025647456394123337076983944120078804336130975554470985000538188340139223287170858158392928046996062760083407425121751661719913545080676612798678356299720087279779298055831228816636578804103052403839448923263319121903640986116678050476429246076537450324842887812044718662656338847311686495574146547446444316769818474547500993512926275821197937158839731806110958031490196978085181534024725382439540677207234473246473464027624432250776524221643050992619844701996391946139663882955588617296922774611434487735917214654674903463815465101659898503784971195485970963584585650418153704642677958266897703632085869276923954803614571549964094683713846044107648388568993627671967679583502542066107369566078027896906151232634625968673860429176836964018491902650774729143505266300456305944925083416274529385213484823195852728784001667791252624835326196982687399624031025498179009530538055284233934773881165074368418201658206531015716662281168286705687741357498286874543172126583054062919933167309885505340943783121368430287342403646171780024185893819795249478572280714036845250711498921974001835512106869414909455544126724302597462811456227277703699074131244472605411280648903385899621724407440542135767100792974063015970124069280766505425703068392523057503722687539177079157172600352347203856521371922691257419654157029116551552143594345549228309900683443139459104404062446054618669776720700499385423813104845870528427306846939087373613496674708345792406776170028971716247523917164946295033005538584981256544911603163207051911311162424299588822155357267790498087927421371940803883859650779736633711371205258590053666823605323496255250266726075546823902447824984617057650045234899787197674951874247290014853617282591607752844243720953129259293265396448112401746480342125202727801573939417739997127406119644770620261700192433962143741664760488288193660237903979041247923267469175511506228642706087261376329810313365837186668996633897878708488463785872743652866055993486920372988916120649563966146435285570627572626180627112621672848514009377860857645742179181752374427742138946675534628058154213039953884602572216823468207522921772845218319335343987067661394487021593827374778506707239720154953757906477587138765855810019685518844591406085708103197919060570900769461613012493869619209069881812601596794674607402414871402611984364953660071708252052246365334592606401876360394101359898014763606183362018962310333639332581271221031101910067253408878537706983972686838435929111571880477035960656451126031151521183922777092892052488417184622634725762243768961706604810209318802074213323993807648573614128166213293821835579044220206430346408327496465626239267835536589277291365999022128033164127626295922268831366746861926013835237770445289913741492684959369097219331954147637132590914464550223114246278192964029935475181840502069888526023834840867666914520561006258644441423735081045834493456245610513740022256937532113068390220770081221036138052967186459764531508678963928947683217957617362058216398416478666853290933809145756834031633303800008306896127244766258748208333776429669767843774184432549477070149177817362674776922701675950841508790979955364609487939850171370226477283962482207754831883637033930491773203020685446369222854025300910793272259164074359270864151368414489963413744875801193375449947450287204744577621947208303771196365889664574009122792703023318790214981967103206208132547010377831298729614530890440473646148568567385540757385303312036953406674051034300865556793648131103078262521047988082740548692954917918222405530042307553565575233747188895211350126143159297717527371719085520483243090103510729311584446502279691615251818130363998690833006434928737646280832728960205694369273854226688910281986565542397940173908099017744502313061046322926865681091203503312290766919164896457601554275143037836803432662075542110191794498373472009613716350551654688483281637530309227089368321554522823689453191605892057811146911341681047231434599292818275615510037194926674786295139680170322778296016606526865027011134013349094818275825872656435768046112483495929766041521278039173369394497824754676993093442066144576886930018311233770119045349278527052440927398292463213776087255684526337816636642062214950079848081312252766236951151137050016159462904546366196516005118196492097094877105477466716431544557559171518034924037215375747908598016015065735853596091785993332249469003024968072290716016889802625452103611608388840473150320055148247320122691631073492474590704640966972754324530147942546936348335295557721570052501567085491445930653594866204267479518107151989157530020279298231126965605272302978427032322346141774594463863334082884636197851648057962337767427091023885628862135566560929875274490438380871584862015469445892206730301612687737997447624206403834674632966467057705578008201955287693362181751574676297388871314283270660504361863670834823343272034631645192868586437690075313403549398973123691795418020198072018501027535110992679098518783193412081134664809115940592364868904081760112106268926815348962000104348527838222987740421886233300234882509912053303571304662600977494472773304678930567383587096494153753772483002048083816562161668995506529454494962783257406727685072896445395224267334288567369829293485671450238459698095093826705135751603247170109486639719745330367194076489088970228884150986764439840793049034145679079763652135621356018180262792715017347940791001778260080910520789830996316823055842999260134567193973962362454001975813748746048940493002440983639669609752122437425799341593778867707356074470995405385511879016303591568195509406946920694065921753279470390342491921174536280287589073143589430290346494289382230612100572847031325849261016575529811456772541041824048840161187005264584818477437883201166966943280129877087856209653702983196527828599118856406558613279496411047995176926968272302008694973434262497265677604258725544080594749787447732548601650260244995651594667616518029417711815547967514387570800877697951966531267083360081036448119515954801968931809374464764292656536075221673957907961296617537595894652412949265244729192766603578458808093682709877653730922780542457929353394677036911108407657451168633862249711760257079239494126307209518892258733125930991088447774205593181861637580872886551492833275296342990565937655269554958427677623609202241382807689444933387944418652478358719429562624540077738642958083321950496568112342237775844569422217132193779906121355732860607191054198249603300337989760240874874183819662650592416738271779717990408536232928908522591988545976822030038691350318141424794069881694172764421676405030171303215278051544808459858355709522722540368933049117227675114778149027543736065506502568859792396270059498331215650479159932393702054642931984474656333084244648498671689949745753000433076898685344505448197015252821516090357958824143518190320834440585191910814555214335338427793631351958361716581212245952364535614517196384193935391620645312252289350271248808571214392641655484701528399862407599004793229738721922166608010398293183987849357079933820365738500741443699184749821169377367618326067148465230017123351799507726662634923814520090692337801876132093702617809456808859251391257185526718509317874341831820678534902684524223607232331150109874145231138355698306478520794851811029226000025993371446674381436506707264535146160019204805952125746098567480032896901060841646920554137408532076233076178996054064457750240829870241773981141169129799552085265181801470850808733132780234971004103576870081565758546769267837274349502956030470077964955582419247381125097957127832771726841233799914632383053461913809906691530184225409065395964517339904148337782108908336418790882811045586806349110743690826339974630693769964241155604774002108655105703600308126887067093779863399085311110588629245469729034346202976693141696508682291659380930487717509296692314803092469288519471701612744412964275363609001564590764963517726545079240613843433472813729085676717854035575067213847777077277077546532899739852273861774305095787508723461003870030611254264407200947271726761498767956062776760472442394128776975269168362186737686912040014563574322417924840910680000456414663623676095143613729349056584737840395173021572535421542723568938459056412399544629237938996426313561716455438198178440949923966340398258907544437392890558466779136235805191336918585907391434769721769149861152535082874366213511163519756753298254227230142952633407095470161370069690093067866381122693422366329417157259186357583198796486650121057469648322935210170095297352314476129631858952313623009819520358653811781601506877749837405534079794239696013736299825625972938373123246152764844083511488698437506793329716215843772960876873119857164735232719735103299205460514949059180595605404680879830718140122872459623265193253385220765945071756722422861804135698540291558386348067960686372449519558008115012623004507337287506722093693699239344769426075430554642407825630823542455899996220607091426471420292471270000720936338590483983245090279739771662765433736931587731736111822054619702866355400019631106691977307931721865099111816227634434895705330948885441074587429337580350167624088592675127310631354878787090306526898224903215614136678909024578373530706610648003282062114906236958698257263533305206139342251168660128384166551759054246622887919732135655275145851832070610028923384858116384944526569983879367853913774601315948741847606926229391783790652476345774773950764393406052808294430421618812875354138678182852628663711280196539252795766229850174025611771835459765684601189769542655435633825312819665718830702729363321159007186196116583233825666389703239750732200612341627291302897640960361962974338143489470232841869217543996099745255943793715940248350984436084886076170362907891231205696623959104965672632797924774541401314613881584675666237805821658238824418415630804758519061097693170904107234916229247414148576647514120714679806389785208526345183218300864552867670329396305141498717282751820370023725109339359092197639325331089784442178839136547679086164360163065852494618015513446014077661782737321267654497928476831926080687907911752589372864408275624446547726557163214263698458547481820277033294015767521913477892777278800753480089856378968371763212277354866515193366366420519189193404589100942901791766601373734106732031900604966352376926417964899361238107385038662810103951581534855164658080422534941179534862595887208955890639508787439785002135519592830496564854646019830078865065525067783394351593575039265286451724516504776456673390153782157040066166904648565881693308614566118382849730179818251989252287712259143397524701762127753683653533101641300502790362449967584170021904049237263332049397299568976804865578843513790114823565384847482612923129375416667911263661530495993909552966051878273386760639333547193852288736500954416127428287982534870963047975946622995320154642547376130435170731242145572002969727196176062535778119905281085231249153681899223433071211776518167495193146702485246049570486982162987196668193445093402829011101780357814802744275812708232408978264326805170991462536145541207212377507202367117748770260668902754760786840847509868819934551884384939588144958839998151350608630176112908631900749331253653708834917464584673600268981518984041322345495382151672973890968530155741070941277788958974359974033725729592401713604230883266423659859779016101219252234547735947033388190004152554380363034350188679633099269899304386793423645238955392929388349132854829724938884519759253847879373466345929730718627101996376879833178133553232390904402706395261972775115380057988182005680244960898996357425795159741017283365453243120735733686454779506456759263736263906891561786123479348661024953082708693972879979300608665227078012242974418089032995312750742199460820600965086158881308207166846460855940535871606161069691348549387596169789856128685026062159982117660018787595951191749644229970572635240723898489249009011054321855413028675505458958711961282402062084252218901752026100952699537412324315001908078959373173772604458671188993348709606309257332252012792894297642733716341237452526849463492795176156667155716424313870186060539918034443585874918990312347409952186893665719864175130510866773169292958493056481121260729873987873482344597678364779915430229140898368886681605353048357664549744333211255829865097959668425732809417752082281502862208942330102552542153550245915623801882989150355819231682914287881964008345266443470035419965036160121880070358412675609512768559788404281776298280125556761799652358455924279887234296717713390075968832154317259927280899641458471394864409309406442127139854290907837777238203244377126088413780976212831459334416999076282429082721834742789433901997973972209877324074562081605880620380695492707367018239886297394801927336850627822857699679700950702070782389141007868414529768415121461960272234586442773248595077536337240752133680820239596710740571178622832061607051897571742694539938930550623396789125744334641674901565812989805927328264106836780160574336958857210942168568049469267859670814836025833734703815849988623110825304251291443666770426885884246302804305988236075650094710096596493509523554749772558259055467887414486656000886929426337565965355444323159164482568540322134098442154316732061380267946492252747477842630793747496365219961437207409249885044627333693160260401978585622212131861924262452205176981423667112895870480548229082199476138837238290833595344072715876979307552047626962676354230627322306059775953424476757542149474044925271247279739392072169107500890165154856776147587781079899729575932828412205784545855590708771062032153950179318737396868185744990862143851089902950892075393797280677170391925907592913540690729017822625492039777433827896134694007851162799927982248836698331001599993447423846391053766113833025860985895982386463106403157451795536125783077493104071845459641228944701625007271655373258909301158145982896010245323005839887619907355904036121017422598620930929191988998014607082735065012228709072961313783152440224738943119697987112942815734824181036133673060910563615546488556708311787133390664140214967740200537789808786994517683236388096065984398127395605872332788495954985548055810634948410802454324748252874315825252971393249336272885943337752068307801878609962472685366952190548709145843847427316909752333285299583330119633870188902498830600675591586647500450536141992454788474891015945068357264694004131183757843535197291603248886795310161635606596914830539671361796175952077573886642768129609794489982684372661424524269373041184067540050312711784000228488698308960989030731690103335739821660525215554023074677025989408256498863541693459877038081703522707068387886962040904297366364988937178765876411582163270934195069014686601336561504563016086674178334185960737010484118572835932425425015543909027416002935906662119780970457916886529420803846931779161208114129626158915432150404926515191152202114221151263195914514831555350326194839137610893559527237037635693227426628526061835294017948815107310943517706925971875346174720225737059105208876401983138003143254159757563730614197631415790270281495067734183435356248121689326469194300752313549014850776956398079759048019206504973169365746176832406145941880711120949430774105956909250398180567981993600379438958290589595531874898799570299885714169799666726240353960497594532326682326988269006169463163165209628770165720689899129124779846854457743214710073798148767564697494674677190286098201297571339771302807171812498609248768586477794977962411974615456293987217273721813664820433925219543382993809408615273103690200484625840573972484787094888332295283083506003619441741676281494881460192673539834839573263758663720374406217118236423419397707664763960331681200428208471174993133449881502942876053583434393807988166517919285767419456066586428785481621153719572912136737705175816416198874947248198230342145264626582076701534760348854498756213474840583931939239686130987341105903236842921721933572396660318590789462199747410722586086868600847635773736474711316793529474842576625791639391002063052596595759489264029514188155784262762129687433713027228965875715683985492711812636133645995167358085136617873423299752082958193371304670305847134495753894896740416007211337680796491330776508975277957106854285374278440371335975210495417249254515699914088639189360449875775487500496262030196205166541182494978735014858732205241593204765418856123635309016325625444442250515837218756423635309387304920852577845842186337647225594823162267126996973582825958222282129837095006270194134278937056933405055687701249006443432847106604432137834491121739020557190664271282728454161805332646185599683586183574650786654941286638890215467697319520607767811065560265356723178455997392917273631436074467961656961111648755502362843105523461090811687145196548955685570311777646369896834690850112409062222998118803954911299528243190600726774776411634525457818187593803529560912883062024048296340354457660790747170343255248658756881222670345634654341412506689371929592373797001784210453446805039674220839625177717484797545184916465985249313686778269446077766078220216942257693066207034533497476188325762452131522883877929540204268508101189260233540966763885942588563808454000677651123903236310842641145764081933534975208265638161693000204292795554226133525726970810242080061642874250249996128580641082602231271589688286114098952095863947452857788165312659456234998180840264030229171456323031207345288298759671517196443832900830926782676632687271062524221318939075435049540329399986316746707143254744749901150853391491520063506017386821650366433429698131303936558445759840418832137277523596777915199874856845452767588167608787926101309230986083687275378916742617399951012751852652089426567792678725274342888879079366454312479511145128659623749768095298916573907389210124891290312110647160503996746063436772175010940821610732965795341874372744261003612322411972525634754489343913820882260895573960814994185044122407861301623347884462420979655348727739022150500515389290328695321404863836380265181986778324715340968232565168412837485274359422734775064089805048679442709566308931004870172849856934722125096259735543562023121688444859003695481573221227200083681639761162107949486181644642105231383380375072880042577460018247968919560134869973930733966023158646469369547662508951303704932110067273720528111091776055455012966052681944584159829238320481135620995382481082000065323035429482384981136846730984740220999699407694192991554950004925389571934409081841817616002428050871819489161049819043209319945523525812853533768778891017362574475831004863967165216284523632670504498442908753028187901817352891057564625468590279483032453681179315224372145765025749876742762611528622776808346090035345585067199966456681380489186200292856714896230411867469820448910007805015963028119986199725154047463332776952233152234214604446353001238176938393716556500322846708546342462220630612748882604891740273204664041281951824303962635023074461805645082465460070598428374914628865325830554642205328137117322627430959444383951189140242393370745703116500871845600835386424275447295640213597954659031186699908250119496710684768846413755059289026473623881632880223889380404151601829598928694635578712687410435446008197956040319150214859337878140963715511804492509542601987065500057571906681905212115272273243336844924998564420803138754621119839994764013721095739614268538594175074117946857676613503043292577151553888866598544992380031621145768989395936191761001686005626008881655602075527337952801807444139099920374285868360643993826802964536862713786999661417256365909866744011298643663586219963715715510990181412567453882288340465913608120588185736540965414272913099106568550261388078336207327142759812049838305445145605438606834223324562827402340371357081574259191581946744203984761599903567282916444199687674185490781566888788992541809178819056105980961607704190093989229511943408267986990774603022503640230138282050852009980971846771643638346761306478035229919747915920705553291374332984895913763191346707688485264682966428272263096127390826605374684129237290137342703999614922490848379880919358269947430744396632941373704147288817475396424343029272541947995760577153802947328271447097455784886218980373500882156733662947595861222395010743907211793873721846403389018558093219591762589780104148973048396385958760039738772758691145256182564977795096408573422680412821044972368435244537388609739875644292059995845703674523242593097433825447604261507375540792056070998605317004331871994131114238065998081813088867279151871082797398136941644347392004788489695723228108334679962554335544344658372249250041794102348022629366717036878825125734597247289206049078214384934014182037582849578396732539889960434050420306925978899691666484687793570302852568536264241050165113567502180439858284500962054366829032305889849618784547649266347321548348761682066485972632718503097755732450391481044567884179667399552365138506498843283981872193833961817183660973701284770035967140115033012788174148478550277113981992623477919354075357185379929226256549255445486992078441384391737267235457806593672541067737763579631080279331903045866393091768024163672131324369791198082603610116189307954911866008143537454716395307004613785508104959343161004829337131009341294368260896926686699969383927294813108096805623725527984006100253452368437034017101558720863746987320061219502505629471049690124781130877844161670117966347635830963085860225631043989990502405235692579213068956848493619360445464391224211626043678601999634339525061556389072002916815215134057007833149327129627525102760782208950280171108465058306286466260344212557748255512725524628458049895263550837507995156216628794018548554098432057225438761822013636597990946245413305655954272957526015178128550926627651346024063661567907575543316612998696413705357204805138715347017297972802035716447426374983368566626436078573491898954176983636348538466740067582932001223888033585392566348083845943985394152003703924793076670242723690912986297666563227027526610586914153911230818837898076888417394556971835293698458490817487747517991006193512115101041096765907160298901920624144521645402476754121690083078610866233551801327384411939741462438728244776683273088899148078073180103730495792980270564248378727382860810690838896490718553225698529969388572197739354937687453415356060592321068510744418738318015061181998069505498613543249226012740656003530073426349176862073119121548297348647317519816937320295390018116807504382906493651671970708234916332418323780790105949181725443447827891990201234126508818653541463690067057996863780858100913132359925529004434073658616177396418028010049112400536716232822368749472888883898000901956849328305684551294084103615520875488680595482056195299392327607994801523564611249167825543169174524467511762027023443649603878676505851454049892094855958605602345913416473691249642366829698134954719889896176605501193852430847407039791849623928434029841124178227120383861244578341731832252919118904435731537845608577994073658467886745750832906281233135901166407128852479252444680896631895805316244849076266667014049940466990894637940682044114446080368560002212821815244095823180929744696120018245831596557080084316428970365338121164208286979907138526935202924886635103324165247276684954530719227549737670501538261987160901302932285964952363930456352585779478408774723419522784357276174756570481063894596044314106573860710653567322510563276163180174305887137852359620232010268508242444709238199012517601150782783900412732116009256446936829583274457277226290940429760331736412485511525680664708031997958419946741346815452387360873101302532183749002000497791784835697338103804436329003958637638059241466703313952015197290418050832566637075687546613720878114833401991571216070626640304192609686917424455328532476870244596110442259878268536384581100026433643989160562683196300049515261046408456758661718021603860638268818193274755442266241709635763953194598368420714964866901077893415609252789272241466712386014308704827568680984715389114156444201769730284596488987523339030045384426754505181648936621208852522017742983750539229217270241906137924797346850188964926705979060021320380034952253184255541226041948179254089874434593105361818395686771250916952149186122124975732423882542852472399176173004205494224479918936545665348782069748852599561404446903618127731561908631748821878999812247578211613206911667426182948544072978730937625118897698592633296619340472152594355131764359914769136226068967192162651687072014038032676494936452450355835234655341487425775831370299971726272802457315963473630915621733700313246024814340940158420176971516088193648907809024908980996125503499231936424426023939876178313009739065829420073349799884964002911931710081832393263708708178076986659575769239619584462578991610347756537996215203194715852576519560956983539528297432390931021633959407481980284495252226925626464709324179838519013371970689123509604758763236728673670544746051312623933549872020694449489162584451501302888398562449269287328638968551785586591504643788348545393756340679078752258249940644536777285287372353013095209998593991677823542537331140284110962604699056653388857138568499385935677878416035166771881162420392940876948292768395848482901292762798203172087842139060026639274955693979327126856800862587557908042349995720626839558348277537965717241210928565283501776569031253400374521848914059368883312697972092244694372567658660153853576997481502431565960090769152484278371934550854062318304899620292425068133433339701652432537592944597657287545249381046807914724562213178717227469020357533976534374569955705755403774562938790855014218395372202977437943581856659406415641529452227645635859514588029500978120825898790276579946465235342065736707958702994087890885340252274658601068213710001419541272597167186994054311420022809597688759271459265845399282890255225976581613130417644444657691412813088310170644287382367413865635733777840267530395663752680549652434188218893382654590210637377625073283977575389746677470350489919271027280497994035220006272621050801243257915161080582277789875310630185674096583241231142555942737525892105106678607729121892427086842073367792338723606953123584034197679083508868624123939583558662694541835217793294314230257706245887771508190311415775947752678651894848664698950316535334551711045712803914912557226445738641164772052465226456241290537795658188452030233093455782743903270726843805453348425230182359030865299254354516993789744146510437210862854305920398217192509450882973802413672810678423605590347505450000908425867462968926241823210794733382296019438335180136433867815106290997849797850128626096567781514185734129979947867906663130549550196788977272145236173876344141092692454476369898209779144388193362522310318650725366028140771094422707678440396985103599756867474800661207003713546474741495093493404383563829093663160317283881769770506656207411790812380602995821173142976813614742283905739486898376711734900901099610049716993371676875695996961562961459455477851302756542061587946809781617433522997525566008623774059386765783917782720228945832598091150789447738693183419259415151968260918596677670984502207345752765011369012124487923769695457664188692732748847850514123652572913989376111059414969526497706588022113647890697289676565500831224041890014983196328693870204156478559190215520353150400757067956628483647659058510038866924514350740904255510010025825907388783759115478399043515655403863432344665677222128008567016808512982947552267182418758741872003657602110009542389186762374073510430547521053958384386161275971992961996161522377677069891729440260673522214943506578440438050412937465788967566312712310522204136621658149021329872408693161787209666401267756580387067099756611317820933598220318140352244039796912795557996204429753848561492904851575046150973665337182050485429522212950703982955115005391463997769346171271892916860731777561215701241252747662333414646836957256001517115813365627278984277794517109028082223884466269734495086554401337907089802411260057678607089530618810370488721781422258538705717599895824602731582771606070647785329292504901230280000208287726757603302378593969289365396325243909787354195018146283345761292761849308117180713798965908666383252061599163246586645266716260730476270965931565492922859589937168826944821833937222586689683878633640129823545472937259912263757624171528750963853580743145296774722030158964362094890084654924022417845007153890223851501640988015851531223269856594545446442352272172764241016573210333147631291007720429380225878866937924288074889957811856681638317095569008502214972596917041245663510401416334788470980901992635632639495218538951876698498378742661057751655994334335271690499241330292539184229102990259786764508962325386567227166010479268786542244168381108097703537239497048143901768310895002855371668629754132119229369501133870510589709948289466788303554298886132696402588378342583319819071299231619704842256494880547908066539658762441056443055191931745566242223294841818748856363313178482258580077205133543341699230545495491007624727730284022106841994922513902633925788427479886476497533331847066431516443899054688516960837018446969424971676955654409574774943970377312713983960069422841069116265103366327849002116600995613002754723741083006953157161621553431773469149462372159071401418079589413594492964100239808916143988632527049691033134156397571575096842978774561212392065734234641137708859749475112640382103791981088821716968676587512387978768481316528933996635408175748004060086036521326427327228126598418351534398227946207180287903184886519120717504838166642489668088353218090446525917581340637185237691790954591791177992427696190355511215446848455321819351861380906949862527659677180990174949275771078306706625439919885405848959826909537160545804313742014497480377199654225988334868984600824841153482925687740563790518984909458259237609545096369242522648321148496098476009988320360196988197171901636714371793766683388971927437772724295179016557459083532233565699285286365727271929140957246261211636335745604127700181947776465187381921832989054203304878392863232330908524803602414539499393481970476397734601854895175345807593056090619261289836678876763269778322003806131091219874506523320191295828472430121243392411309234348572256612610452472051799050068331897068993842144536631685892687298591501057561346548121197956146007651656364383646548480029924796760599641921720767169189462038420547900054886390279748440179874521412546668841451200918404170927456096971214457841162828919998267351628518731163726885568552459422248054603389008068154816620546998532722870529382794842636268887359989869508973666321062501420516899717982622617592461437066305099772165549684843410974112278027828413956280446434832335186496340667882516559614618477391251284029642646162972863243452348616193582851799058974135385944040286031912718292366531370624517975945953290395778355266108236407763082901671109443008666508236514943711103596079083777935049512234172876437513807239733174187826183450334692319241237334192140530136673691157352398506632934252835595252427916323147614757972758587868877915864931069748540933763619301008139109913971022686225336780492954566392830195743459538723710705030181698958650783245209642975221712271281092001587438470124593999697280773812652125868607517213394740238547619909378833895845804666642010829658169927851935773498399588100517401134384821514226833953819039813212351256719961325436173134427552690732100984428741650061580684064908412443040293286175685981663692474289615160880211548084705077222386138458108452352446144572575796839655455884186781924257731095786220426817967340174525531866495640640830549335311454120688290679856980528238005075671661548540518764708328925884335586559398533356477523435140369290751586567616124163735328382125852312313808868501232235375823259528856057695770159190260224955219170918668411016431268763651678301551948505519382228540120546534285910414911748389147376884857691812704982741033829035777923206213516203217330184181871785604359259712533736304991802250830266462729336564945836034427309839444590950898144040274823825301615858738169361031919409994632164342623051034813201143554253772427027410167989489554796502609858063875232392318499090324802397462238445992318272078180035849957757388104320163734187156941762666090914920204268077596926102532404054860249285171731008477170816971003849828507486802635853331162367799261942370538731693072796538120691079464744749128662736164634088824140294379074013760476722156545290586145162676967899681267151459159153305161590450443109447385096719848170029161118508973779401149251268702125211837073750872732836422628404947898275128361763145742919445584668124912872495839854537317270226368626458032316523024973038378246590729326681092931498290796031877075262975059580158851442044074985064743925565540822427902872281702867277350031998091280579027322211943017298251165408401100797428953126718101012722666171957384639145888104455990187063052896004796246833585475480719375388493596214535519689350491231028247242602201404964287682616666444156005343676406480599648980904960162597528653918342778987022079710463015934982214329967148442592310743808701891001851494451174800544480465032264679633986104564374554593466664857446579795878635729268775600039630212144024602169913829418322224175264586366875928679001618979562256508762235625283091344559698811537356023104998527812212424195854662525414603812389806648850575462633370435416581935504594763874475518538698048595091980973725360813224616233313043847077345674350895415791563058004852515348999589914758776726048775816412458529861682281546468198106010570578128191827600987467939551207772426525590473552713050967265661296663541817736950275689029034315800340469387877171854118321134111152114512136171073124166135819370249965397271944925726950807759266897486356129287672912396450762632064150671538605627473158736503476551227592103108475295390361884126252508446222602703415991903372381392408745290806921580275120646303349993150638456070599808857098739735274097468038114127601117226469501094423485978275254702115594241103726103188780480006929684654130029680765218112375615383286475584965670256871740310555571400086190420152531629192487268374490511434016521313966143621340754862568106060074899522042277440172476793721848898671949565787036453104848009976890565603098113894157757726697240281615086007082315730310884815586692496511112275975298031536357785945742567119143058574415537447630120272688433207966361650461671788754958815978811599787668695140833438260074102374532385543084124899591194522571719289048921500384015839778282778579724996055372260067648556010376935312472955572211521534317326293774441861285033019116179483779009393007244492455888766606367678188788910342251918304006678381953182702295314274104992188585039767472956851594239109474048608375606687838975275128615124963072313226554198576204333939493742455348186696640152322813183797782244228079837932942991903513612534772609164139683066413358952549191595832227537103776135670112721240974503653911371972675802364062300355954265856844508162368006410547785304766876890967961977212541543696795305085402960302091317435962407258870395174448065419119748792425510943015129285779531955138632804096251592859541025901038081836740818905789729798212797256511328298606368159450476287952146949896494806999324490882500805997480134388214134211932389044675797174260732952278193583286599950597708168091047176029179659184113327292217792323046689424019010877647968480554107246475047081947000402961896916592050896499359964848698220863350637578172005627562963952023804729836735578111427668868078336802027798491860532351942196784178884050138693084719286528341521811978094226353314041431986205830449538867778028792115181189212611243014959882505809684217317324683821523448130374723155511626238831882571573176514192305499578781987098085559918937714332375588147349918266170087289566118244302063402360822904840775654670620666118287533637818473152804194904452159131994145560712915244380951059954561807597250566009590383518091275727640933704846576741529308803745507145500923958206469575830081507869016317622590965077238437015877558069001189655901003121548454573833879382975623085878448274400498959507483866392717967531110918302055975135916487407166167299076861220798204622776744613843574722388378066876787027295004560052661343236718711264766245240179387061138925324037320150606644318186846888479228285428023766642017263886837278283200312840669866038920651314093852475363282625825696379595107028091423707455288852454535381558094661504064985903852455970306514226735650828389752247349525408794536856407130147780153722222194556006369895041471747094909225758687735297142601636316634563531642283131274811097275084502362941332259392964142567050864245466812372769857097824010930130262247598568848918842649430444541891846670186277255870293717834317919457147682096347405732231336012909477978049084518563587638231078903201106489917387776880895206302170523395924079918995716289529117767545569269762374861949038658046451161259354317019866098784233734922940472924598150286068937001541266273426113450691408489467220861024599770532007083122755903305295698237958886420993341187750173743558030146348798499910949676480429324584218103819757981117964789944319577351645089079456508531956481460098373094444745613126089530834432208010228576451953286331587706869631167084150031426877125731234324847197989642077241445575225131726537258702209635495847011246430026391057904575497454497696004204262471455541433933980413471456740364944506575775192297654264317188969503383410861663981209693156585358601857347639730961051742851848759486300936224166038797849467702773007193882810238455455872413610607069603708705017609387991449126639132242006265735958414843967780300592820131856238947027898984259789605440579273797898080516222556238542979854429270823950788045381205384514433417510147095833226460950010523754135625620479217204504611589267763940183131935081216590926530444420419709468322104651960415000322736631572373931130796046163458305461408507213405429066525828517030129703104416697077438786790599913393856361510503424457805931215469740980494634445519837951966502740185697322463501193551978614733704159337005004901962177747338740415846055183635618361505991135070072523615692146034241124199503767484401373472286538540264876591723143961102178629964176477511641742217592221080494207482311635863810423366097255999446579842729316638773223820467906482905823588751647607753321618853152421470267575902566187198539445438238190524630479221157906262640095003458776701575308867025126043432960645933479232238941032201345781038969861164625030593532506395593319799775087980197218454401928172721348802562984592390452026610511301692274205752895636673133379012439114806979964673394993836236704327482098037174549726443283997389333654357703676928727999768526604941010773058384966971213290422710162996616081077704743492207022168769647949128968532942212724961587261361625954829892652362812204581920291998519940209954767131750732007732673789382881075714279843875546279675945888461499850690038872608868359754238878099752465534662186004165401807549969038698589097168811444105677224621360117784313268772188511072953727632955927288083929558912227648970856007478086475738338721228092008096160293549569613714457965672253340818218143831705437459543325900641224061449320776711716357816788015951956431869539963526589116040294101240587111876678251942415777226961065622895018311551547833723606426896332732818134092424515850139591286146834064677125101084779456786002339298984867943498397095615493247340161917965257797761706893549140125390464835227753239338540718626612471807166244509385718204553865392375446340688917315451367175446269978991580153683020823841274654636405624016416968274511750237633457872670015470276054014550440969238326864847420053544140948898504754414009874678569223126080669547089372193981078010988789158409838162697333604650226744010135288518198374391093376545284918280942477820714913582865423721031080740562640948394476439470989524061817190487255069692027100794126837166878065153530986895569434014323429393183732093138507457041003072373248871831737218995354539293741269964847149657640096409852612963886138499384770610537801492705938605812993238138263004970531743925368426659025502888904162104082284848080514263089636723875245653121258055839262192184852285783694093763589809763293063124526171194819603187710537346341453324628827509597232930420061354989053067055928340514889826272234376331614882704040169913856565676505049250861530696729357807122063359950683927634491510576693312207096012397564610784376496431989260958603499580671557251872449725419297630827524949667413551953187581942465262185807258333005173265177101115262800602656737366661110348114691062192144024990916316782872497813976461619968663481655417007087626934515086841523592245867070436424267823828405138531294165376175133925333911167543402151070172291231235696317101363844987334384277656010648585753553430897837236248725528681530609206804807005690812668191539780496070513832288064672128423724798163241043050620825556999908688272008202691641905460952509679014060687281926950764694339503488036135584836369199192980502839400971586475166126260784635232556970280343135696571077035249790012290567265203483205178658586493043646053922129587719213425324104635004428754657522117020629188596309588243235774913938086195908802563907691770021381456093707536160288273186566823615131816584812841752379617774598619664052260181991233012213256196950564656024073662362787653586621408231761235248772145048165081281081997625645898853445920266399757092549877278279585404448821779563918530634238561857983561805045970179136382428899910928957732437539483707788498652264018565610107386080320553424019265991629355458633380942292154554512965304571738514145873602282745556601003197846511911938164963313094419580092896144181121874343467598669699011082053638310819835546743567561421737481649704186094065777269790602385869602881127442773170775483042752312485955183927104257553461424042807239746504113159217630109178439082743957521038957062186735053453868854319899744652691930912547354764619661999779523098499008617479284186948389708376053055486219737095486779797166390515521819175349777146323271766788437814369968559664649315904875080606517077868593375159034672323873031491604294082149886755388537301700606744388432003309057276319777831129779315813916261447922459752345346547319218612816588792314501148203645133077718573046300462152649001394912746968462229086883899103604162526545277096302438914129106863248280841459350743054163446860360451197108418746245958054419518625839570115145285332013355924945139722176470868084133760738687377494131902094433752059139478478149158679471112284941337419446372034772075880211397434324318982350808467403722331951436398424259899267981662379783295160741626171018144542229444591591847340818072302813556886844786569492677122528219695656233105967152845573353273078140786929632509811526161596383410553920316949622242258082675565190468170114864061975105521054424471354809516614569341092545703838707904421103001561861752663355828750079256572025258103829097040458180312828951028857814785799997249143808776732817317670864768985475289863524436335883341487986839999032416420704908388709299636753463474236658343670320110016831014363050142193486929307720363201398220430232626797766153176324332055292315685056336872036008075260161579064667326944301862189006127713459163702557285337612028008939017911731275478882687363175573389814545433208422545827086679102119955871317333849426874686872846107597998759833961994093084240970467201178640648822556026075405745316665420049124911561981051361708219705086520988114660116789951544802411885799593094836114334133583562117095238043398985632112552518142276293428896408756106863935401803656554485129951736370208287401002367608596191976962959697214989815395872356512449822208361928134606122599564016409691719832514339095160421669421281786954365203312164353994818640553349721136767453175901213358898671303740510018054366422007033460170330557748762861196006081844034315946286927079256135587730430639381498733549188624961484518484338845804756591850173588999139411755595746207295443290497029022584256034209931897740898127049055749449383817816483014777161263925031206653722550058523594953984869939006293960888800408950544459894030581333971966628961197393586368388869487907087040883100992282167561229978231730147725860330771615851811323968101612241637937246202276522883842373363478527367084126560439176543407821619556348218736841843141393722161244730720648819376743476261224591671025806646141005167917207913363855488106054696380608707476305807678934482044188665902226357119699559702512339390034752278167192611009715302030391684806926825025503077832913173742842371209727332929311827923915789874267100781191308040839355778887592152538000101764943037728929843987615860952596326610665860053003703301034507863272548034258800725284495831366996382095396133964222700302337486674906708581395891872549082579686254393540945654633355670303595548857172098247751835896488674512723459842566722340611453368566959397243675675413833427345859237182296449339344765434000880046185375055715915313616874583168698717058190645670088451179446206485325487089963747713870862196769462546020582188858237487984214026595038142115802538653689359321078287056236840587662153957215096600055167453614482192057191525764173130344960054346303972884616722829639581307549617907949550531770373626518919002355783200540185366120271675506068410203123670213843988172367160665578085464442505068905719478394840576150998837341092759565265902539133251675408832339378182031054498513214887998860957805341481523671384889875674456709721010173171954443070874940624354340493897566801756518492575533186808269675314456842885044605607416267859242758172628203933121701603173802973393926572707469241220578659943761224100013797291948486000722107171951192217464045515463208403329155121042338215519360349984306954646878944735438499196889030658254914205078800777468000865430805287966820008198690988771834839253795000605216403279135781022885301969706974692543663923600407878556199968526223191754743240231119309104859433979535586006012399128955686906277800376610201577692978786853187091848248271803006319321248393979196165103208967886859328175490845061420523745780922392697760015351559639334863508035761335765296836289581975541795969865479536871352599684231762360529247067455629718768379265003887033051706733862403896358431977383942890610242911931197519231182833719863939816703845117670456775357187772302575046954068006034566156285928864869396432610654029804840212429416509502600944934976813570391988689906597018937864140698957620491686852231288163391510666467430874851556480958135961588277614001402165834500276131758562800339225791426949938338937965530263702342717787700621994847613446670644831077291314558252453667366182242563345870960343248186828413836389717513863278712606018154661857332306580082857201750637314052701763649627091185892676821665459419919536143534334669970143375144247974749441140338689136075824202687694831768124910890656593703611350529199580169996404150767599003134392529788946562760068624652064336317378660873857948288942282272897340663266168848748681981869246983987131301980183947087467929792651523628149970954604226157683463560969508408554274817833375065323086084490322686116452264659535531244974942519815753023813490780424760047329932585231825674194972115896140388120420536750632461069513676112960925482737549646876049562404416668054056635904988961602109396720985579217927894054506199142373715427705988417518110447120536105228572472268764138204800084802915288679006215367679302871463702501282989108033111733422894622462396111446169394602928199682722630671252960039908213177582242070578327046101202366122383634677977374541099707727166765107605844450009839613132951729419955831530777856103094841274368394013137688295006757496850265106843955974682098194311726614747204151154496562919948825815012035347586706273044839004093137170651177945109229487656385003021456563483714824505721376251866400431497580237556701331587518446551562748511726440642368777756097394302568209706631013676296378203810151948699138612078473372316187940693060701855843138829089337704225635574426457446068929856861955078002000940480360300899341364242064084222587311664921664396915939613676393980580278850631367604672117915310694049175667893388125046899176287690530652598156592670956675467669889936772070357794530612464446223017461104063018829092280299590941898314397573819572363195364146846205319534666338029872081990930795499238774815835870873670559051012379508243989736670550665083422984620681305201711305862725205927593816297637726687189483625083117370364181347717371328676123339063204033666973037857833303928276106178962449672841154325051845494476127784353821074879377159972456093073800705751137824921355830816212180718094725115707670041673042386088235382317773492193645841140061996496357486408579834460955705009854196957761351831027265242715521523789081742717867371267604932828779571992838025898765386266568318655255854162950010682009879062688806615259451248116292578158865073372307352827986812000091718001120602420745174527402699192608001284064794308326605821524500878330252309180162174863218277331833060740918161750489534045078407814458707086078963825521423798731890104750676988591610838400380872902770209256274473960439225758753527682854820610184798287375606436552076468070312098452945060267851038788395570622601280074609227552422723348208207576350410239964979398508533002567155685152141119921684228340238446916034507039353612624634937009854294125317917383363988343382867503326764886280346612853321563746791486877655643157085087192953702857591104454430394518278524499304964419087921405062160020362152225812432971318316072476823039879765781299958097021396279893807492374221094004641903477081888062955813546873768271015383425478661228560597702080735454187409017322345421039385068915094405613081749901233235085430851671576401976167881294953240521304811519026197380142583309247125903486491173288768162079619808841955752089149353273900072043273702335862725299896528970182060017839412391819042246951294612473730398132139170027209448779773160343873136244061864600268421435467722749101185592086456728614550436922216085622894097508184929184529765424605840340100954957324176711078696454140164055112371929395061850455791735160931622724712345151820925670780434839967928888000544182108386991170554630284685223330290102325158230795762039171550422310913342427759985271243698229219213851998177268017566792906696962092015436548656900815338966243486135042934410500585358862350362558791033746663500268677089184451685544489193843598610290594375988897454263205808385024854343821321614509516372009039153852776468361141348725811218740971721127289810562221770875187279766116665141776958292397926740447306010431059498540921383560527754502514652191145496650224857618913907242589878673242894616333622759113706371287741038708490534331883730760881834553608268987185852917436340087176653124046888765242123784955201585393857594880173355064935669713200752058584310724278286004627577840636564710937573559215143241705593989552744400492854821080754035900318261157583077011750504187400105771340739180086042872170072397873200532660180052964876287865160976700753828725922348629915552042359703673206171290854190535756256156141744602210718941742591865489641780671875139179992732637641381274480849481974305596081789538374506648992991679236909664236050596103694467926554538002433435235365174876260426022317569933316482920921229093096201710300485779775889303019493443702876737318281155472056005215902937798041011541393414310228369627306705240463137023310425345931679447749216378264982663877147176675209105824117813213255503741438608772156392544456228924462353561051538623045373741142791295121309333253526456075636130964989430593596158964504519569676527042253118940510281509487867910273071860269051795144202333879634035218263762137062806958616479838773321307268591094761113011478505233077709565438357499671541182409175216703015447282216700984430719304530560938313723853458692082335884821799092309953319095658084701358831684731403524497725163133010014296059599500705238817130640794227559406432703000388772153235364165585920644835440190639054046323239289583443398439105510677529475312488919853050067611219548151644576928309984966168939042445388901317420612191119409936349425366822328307022132085926906358282769685623413913725687529359732403768442754296914818483353680271801307303496006387105254900699809678986764933755659553755106464778979620426224086976362126989913915882150352183819606628715054178445837287085289365918594215856952140595246917550108954202015857933968852517570367674864822791843934705244051744171825480062378192802392384323088497564622301500736987242616587522846790549173798007877601837601903341522332816722793658171515813627199126120698599221246180139339339310588754891205449232077674871037300909932385342183594593997225101179250608893441975241844851911004106250585001905806106671877172141792258776711716834138820073031559701783667223571921597625912070098743242256925345296065996517581604467628045183312481565773104730620493975950162682189236518330485895682760977458700414245540529820328304823826860454880506174941815120365916227310188979802474862125926540570148746063685859326289220362353414224924410767930085688360315723969278617302815096813402230011035823355606786307336498437290261403020632701698544003907708122854716814630962299898941187706474099878521629009802562194550220286552904912951501479376372730043289715352956449140768881477805976910770718507557191536775881513761921315316797306061988559292480882154944330999397323846760048103999196459914413429849832675320072331832007070913496778747705088131323653911635262997225911025154306625935446315168333323938528991097655263826873110721792586262468097177518799041365341270713920695607611335718725698405138904375829765087598566404201410121197386494283253990203379462858630197230193419573958264446753755310848391688499062654228093273622879800379222684817164816681251287388733234311644463193481934566335297028634012228567572129797883652286484714719235067574350255786902124120476652243705267134151097184306022207951294734678760897035860400342111960124036660180706640367137085441393983717160769987348855511410769408994268017028960293694983795858491709456629195156128401343251579239640117584100486112690898769983143612972843694545257462415871984366678639318205935431308866090295231229869093808068481396050914294495353932976966340749785000437375859259647243691757271392289829549736514047717278507562559370884600749002902606365285428319116719323990365168635030673306670962286895275231033626255435138209012034453031478076291093305847060878015379716069753885887564406480227724861097390753038566560648852529037569690443010291588582207680473929638535521525015052553085974835152252608781464633952883202112015230104884949110232857424117626461700720497072647834271439679647746726714694637053942019551572223466879420082803205005688036440719947896888479145256896400360326962331182617822924239068810825257679110138747096351641577462701168261939433528905389161508621713317202810004624652088348181315629658260802903617499649691090194693352102371712337318486800569280099580685553251631609918454946736539122758498983112578636732621813155285056232107258455704910041143816565691039919268982129908922396310914238099042461608006997116063525622938133666568478549316100602595144653362303376254319930389174998441315609323923121749432799450024560407811253571453108808791044162855521253304279888310580538099387020021433306926345253179258455148593271165862659570498886150862692637773515381774098396686257275438606205410776855071725473848492571196444986138459100524451317677448778294681062313816524389577501252743906981652903344892095289705128568518379586457587707913014873607598106646058330735493270692294935394115583680164976740297261378623168200774169066573908341833981152948348989016674653599216198099651951462093006103211469858528786750992600189293716987253185292924199754996317631421216930478502623226507668885975908220977700983936203434132230035332363531569139647506778953646631189827700359365990449139673458090956195739308856170249088238092485561720504408242125687954768261581474614658350231892684557603150933380884264414979110701646926607410641402425320266109671503841715211300112011846890821573229813060561043775064102305556689067355911419391638073842104819963029133194270219668701096596325077078828604716680227714955208549236907285517995875154112133253414313252145397056171888145741578609341475890382174602320156547594578530832658401505879850625155228350142599952977880754775611179041084455193122527707620514338765079407491161214834908486740678690584245922675936102080801442276254786319586811407794859831042475435824523714523641385103709911955394934679958078239591733882123626065612927476693598804802678854055677500491616579077213872382577026991435033801158675213243838994876793149370938620340756146416865864480697009714166729261559137062061257031256974052300507225792855544826723597671849527325992121112682449671813522830647851990461800104423184963428602065104468870260282452175074274014498635674558296295513578762059105226426217994660111107615699248797645178150021375946513873637421739328089270113613695332092821971046158655681215303420776954179401849185776317026210200890532357256663991726875824268359612296170712264087140396794501437525014471776948354607216053283347487841278956640396073913490694961386516226664505532314382636901156420100683606893602842178979462415504257834903995359405895328670817767689450370079041741273592279462444617332110246643673662138364101127074738298965222716985303259220305243651169257247387890126911302926531276075515373724938832946632448699007066854904827358069345387465465639946848417192234003760217803082216582981289965909921282482868521198523532415176724295141856371042047233302830215032954614515698776488824678021809332296815326760009784737497069649229690377058780764962014608091886581512698068627874127901083638487339172475741261963234084669814363645327086012696932375725634443925883773266474519280820155149562526551704759054978657480131572647620424158431111682398265938963607977272289686370540423597738837416574297588150376862871444876390761997168860855471125993677112625284896242810153259611939680984730714046283918459873977159339164863080244412440858713752857272597031162703825789423800256863283403023397419515717199610867260104314491348646904745678090635222819790731876571038276673396722908890877996102849184135017515848356961267031897885330079959050616769182297892636229710134141024508270570954229323096555710879251709138542983654299577038492275382898438135293239945824430606078990335474870335441559518411881883725973698267737512131806185285670855400288317743859686632532817964567923961631303156851332219288331108544859419134434831506201014367588634058333907562830402569371047178344439215833142757203810056818354007592740446157110743994005528464593108651445024480395657973646115494736506792955239614855426354843652341371478299378240517296432152381513798917102001979117738881274264797582888498392008833378767134700691433232032489116582149297512959519102213694423631840835163514144447394369424822162299497722171790375143121441516499387842252442078103311722297056445468317739720556273830377528582833971851463470981512858204047086393593648645796906678186229330557054753579705025076902350673222971502492011296011412748737200071092155682117328769978129463802513673374692480686407284810997712192444902839388595789548370610756022318458841782680876188591623661393945550865587513669234807400946794458321406310531633266373966618962385969790407548375822262725545607651062992617001259507024923002743229743978991120568585655365370797528997259679976089399675199657334857014674536826360334881125634450904417836773972309306333524177346456687472011216260053094581958150837339745377206139675906162644178213776637200255970005515969377101172305773064786470741888835540472816573443400058917862191317238369996693432854029810828180947603818050274729919022571459242874419349512734331114154849231666843882704869330124233242466988771007699836772948697799954116636737542480088981051901161579979089371990726766367635848730246704099721907525614662358999891575253370623347042374413449100595967620592408610488811269371093792137515771647632821546223475465899179845133503467462671761146837205967615492007732544553123206592871745523616262368728999504839382147798593583838104829790784146158731495474916900249025137757668624884839344745469657391282711320094315456611939117120103164060290554240592833536973092303204502603296257491046493810666253370030794615072628626119515291692293723209648828340704043744865501140963320690193252260426661093072672415913712078759073969483531909092693799081426607488267136126615532966729519979468379368560016441868028120809401177727414440607817013517359006632303991145039949992500197241701558782392711253141220877360034804183097550496391737778211097597421630427513037526249090358331971492270486559962125868672066178244589694381803864816643429247615151698786246883081549885919021093024580708989083913412481280294749131021936281362102436382853246785931982783074167573479129023289674366364502509173682003297437887455200161768747827411809597380960951516977822226457774662196806030298122320228393907043932066578102317349841619859333332237730289533799270818909898418913466998100590533206678177024372205423701378439676423470891697056508591627747878600495056070706148547844877356630244879670351367956617341462741001968867918358674449952188889032080962631608044066483744209123058372807520676585948250067899316829977395907474122924379668242070279972071711400160469121350667459535169335915876591465573596778669698640980962189491642481799974138941261001946951703339546488806705398996750928156720301848236951172272139955134957701669420482870804609614858722581591870017109752825849717116581958747010634186767451179542141620391178131328929578529620965806302440507007276689990066051805260806256356552462944835499587685929087258985096167987472460091870231609860728062217480681108963070010038607373163331579927579165476012304185500098916964628218945814453019965861656365386616971673462441393079918459575740978175466140407173928811121336866341537164087993290077715409854947220380819873531997900590303802803062563204098011960551007185477294373763477511904641566069941982768440390832281425711319194653754245894601468245319764162460100799079436550452054249220941973589742168984730032522258861702203173039049024842324662649291730370953090286425953246028446140963667103872697578947105450347898080810147797705962850475410156531862211983258590141355819771972297158112991475596708901467999886498745585757704463110509281193103534047453599965417562346569271213596618518625457405869876776162415907248896401650003802943997158504297249766550396514894592403690673492555837153524979928554561941719098355409332680478919858408542896701634787724570175448063362647459840799743616856437499256614783437869978856703479736116833276080655632433703314898279031373124644252274900843460811601228825847422753203922444620064880814814356923721680176192462399420752322467072952457530887652660984037197417134387807033346193898707995805094810565445543231034790213223858889958861069831525146845009978155188810049148310764657468111502613362987266860216555811970930017104344730780539418787374250306871344588266909399853030752805665101380948215067570739961372668346627028005102028453086473017366305049006033310750639716672811488367483825346025691350733796038180003833660130374872350330947064104218539988642456329522378496504049086406150594263702575587772288563495285197115334155457926471970674974658165860994025421112620485941507077244318245712052149885830270637054718999206318229907248476202094028069521300213596227081540961086046322933051789534422857307371878066967643703951560758676711012862315583793883924327120586710936130126646359185365131423182951613181019243225157145847505308354161097606478533635677869812383883446680022091056062283129045356049540086448692766481589740306308708184940350221991113430132404075587608403525342520204688243250422465026029187595704795936601466337599109942459219362615537769064099750234013909933910882468813899963532905647065384939429382619843090567959599567596717326139696331521894565990101910312286773310354032140534121652676472583861260602850393222521468658186417101184449277640394246463724023703749698277171035702273821687674229548414863642158993716643623935356315794619087871151348175713512436981764158278308201602251449125243264179884063023856595538021529096444894114612240175005893591160517142890431952913622164195209905895003716466010261912414280334405777235811800108743709827935823912276011214776656727234213474426846269699568192056804657515004428433856145100059117647277034579867605341004042251299302657897561845357602168885285930689644905051515806894335759327013913361847686409318557854699903558537811402266184987534386877942534700990400843060423313627376951416842492515288463494988265390664086037328575772328406007488518835235070550555032123656502582739804047987482216546882899289148801360388784816760716935741276617404400321032702432315331186680062827370621488110530101446982340769291995532699404066405575986838754681068718111396290403574959264787942156188949261404080781876260793271375803964965509287495519883532807239119888235849206842847287268140534903807612517432899797415969582752284831580430575578415158375829307669567293870512467369753917024662681955701544729346166978638331799961185596238238299967508599912970872545227633069755827630701877611341843407843306857178409589059777089713134407946442379974707225174847244316258365001312192325827259641616437377827510429630933123424466950425330076820306858489357221360934937536147837979223669188504533560017599637673876002544195313309360174092345721873454604565106435665023754279275285896185140763636469959453683256645855935365327755140173418735906679970013357542384828137780043003948814569086125586839184684852476625775326259118535825547611481010035858664496808253725398639110821016812245025466633205733052671533042103529577647996155189974222341995038502237756322275995586146448809072955396099084676942458990555480482788828134466069143990547728886319113235964497942295250221027355953012204977617780433718488292562287227509486977558790003516237435772546289019420494515353574012604179167358943614935852664634343193713976280799500411313685898214258255592173420377031173598915298941492702101140119086791762048993941343437913732203850806537017166533819821650663403029391075750040064681990689557546374429320244719840859233820789078197484530191597897069828249726768599728880464784293226905994066191287393088168358225646092685679597504388382890543160955362620860988055975252356211159494425619078955748105830587563025385166955402691200686842171973720487385635912130655173825729518467340989164025660453125453019076363913652882955868139867642451414196858903595851206867016339205125730146589672674389885709171928083877832108285353223524928409187416277600111842561633918141854106276560627029974435821695092219096930790167343071559608863848940446972131172336518989637800490213013841004715083545918088139701678803235658259232184771525929710311152928987279005840345507690959945471698225935415916917232435886752656470358649947035477521527179420922152460202261124951220468306038185338669626860728292685005419691562521586364993711609396682054688760653425382309322684099518518233721328542011071375639997003804649778934383888342845701954865168309230809314858005906526660225839589892654634758544887072895882232771617869897701579599601424152975989096432243418747955859105799496995072101592910728509635866311079625394491232850943481908752692767943619938655043146827842881144494422912928074307220910705233807147866291081290510688586684239498901095122365662166009680376009836062842720371004088941854199221045395206816369115378786375526463248842553076190346545978563657704727630296687592677376167388913609647352875836841718454509224112424505728596122222609812536954112463601546275134268709624008260824327746634513343236241946183262927372775623291020650775643783618536100515892370911885546856710660231899157128591724289267063168366080344082844486366699885202380001206343090427047149782749147367532580922526919190001438396356139963287648766975061892324940563139585314926415127803823934091783582638262816251199631262150143488134100979268820190708205910947998916544177721336602575897097498148876854783118935932064655272121585767472557957539075623624794048814154365085678426934317827331621275585030675483776450560596737189460135347927340486031739350940362509572621346632585044355110479735306464342607619298590687746965982863456575036216978218875395342784800476700954676692626295267232533201800652319287235240645687700336125585730397691321749070455884269134342039335088833281775972823755880389047897045925209231334651715213575189204069694300588955582118300010201006843287431933376159272534289481614038005561390404559025391683102368921523676170454213225456252949214692673472650281029409176463757604871253652510432424514748366897679891952403789331850856916020615577898680938317811546260354504831981307107874895245283038626805256931437010593761570307201495380160780172482249998921019877118521377745957088198695830821329440472819278191706171542811441530666808333245719614555487577887277315221525783711203282076275845697084735442935396428223355073341818915303199797868564553746941174259404009370192850221771432516485112959743615106635560014971632480605804615848232910924586548354972122551727520580045377657354447453887226843027709949080967237634052102738339644591822770537254494700671815244587626566474668240524573225105992147709582469953373294415338914168124677173017644402793432632523829549600096718638874498730099397140186686994188319044806831840139144073819009035526115430626657654760501478317587806693453779954178833837063214182800009020853626295219609082842753823509310287221159755641515058226370655308083640778361691092310735676472406919751865481583234005026192654295954360979319615214879589747252249092980789740296347142053505020671907351546951680079746818886565106428107341689571723573601732117421229914961015656705430286005358542626548220715792824148750229914607910152475246392362475581213905863206257152293785442645018507438748201489265300964625576500525680634222666556173867386278390898235054927574837913241764897635459087513734790898549618500254484997110102547145627286878793751684407980024315164913519455425976912237048802064476911400292901111788917514738841466913854346543488055334215572338177657839505110051032592605648716328164653249751780059620617752084268454344470389265895608677063182482938302622217012808545114752299058646141020074518975354655589139377153596641164149698659769403878232615350121485243836204307711897979568638957242432705131398589737656122670452161333782710010100390582676732830231897167940754783478979743380901688467365470449382285452633594281884769702197699131576642209893360489390707960635239249344595048499938831256045971668567007057860240799418317251227553132151022023082624200774648851475016341148459146751092146481198938440181661221238159042695357467679882727401577107543458929585530049065634337407232521954477352767109898309470386102170420328441697563598939758843637484581169452313112688745456138140967645344606462221573336841837834866369337469455827924332809137854219370423623796095530018493593461543148579875130902485385926368749704064751952548019479233119855774027638324502893364043861034984271361777898291596583525207902425106981577744375851578203974439883472290814464906548151850812466394069994516355902934644218793726203011038214876971812596741327019650547583691902355220402117795621999950955229578171634941989778175607779261562312854159539614061819828538370553638000459011686994339369834167761372744140552656371246797589980319512598054722745309519087865479205897616604137583116299496772961433477309585795035816588499554407965469519328263448207044090847018860856573646165311810490469296641906602278850775520598565790565825224326096348699828250409557671008547235125464413571633794911165388047813293733482507454607179026128675784115418581733674090467601132123125423833139168141796852510623111929035162806725177127359547776933213723999005805264014604911507310777346874217095159802516719328945874565020506821484376342417003154633859835020229631089572419368723078133967345888279024781463520170328427822487753602551554848160858850961756113824256954047907566892893978018508350669066281608057972460234494918318071420823046630785342972412716816100476382645300205099676151734484794708307561086171513313217599348246203265163022092279606335423233875365162138166690043321308215930702185226802820564185734479871609756567746485625176265543683907813405533662851850509113186406575067825389232168330224202019123849617734052251247566325259974968380473117948552322962339912416270214731472870279443433595572502942283588378285096943172677394863806518398988646960807020383109346279910010092190514451025361228712004015646326981150245079162125560332003729720254507793879395563652919094459664796308061839946995127413013730632719856266585425712017163952291103590828999976254551231153280331898031547481407602715156928564376649900085669171969120565319581327600887383477027477097306457774326544677761426335551257395426354985224085727321723907836098633573059421120364461666959444270272781341651498910754128542500177757577213779477079775679955854631158228921899230518286155956876869927412448144947587247925151397066651716591732871318642111403685429794046109020192504604444479079225958119217081453540488012511651099801012205210058208753152889014111709364455086482840136651232105746501639165459914583078237889984811389064309000244250058341154236184564402640280615822164155678646652584758354734242057843435704859277062587199967696435947519729240996089689299617189432371357436890477270864366541749106147681209277303999555493050231747855119489554344927275664594034007248452134499382274299032016525568793606461291121141631511367058708681725588794829126669575340403329587489482682255496640737865715316996506525171916602826664869858864471070918908793467011340069214948358997216070040620988793005264661704338806975083408353597260728605272960407120247199558060163518427260300886281976280332793508648483706266802634993633641502337340888908985855096525264185757026910794177881142132730309217870140882133581206297375633193446364775262948763344042278338491576960163142933432542621674619519800022021111803610379953150337049519088521432618373191662752795175134430567875987928247159892340222103736337270110132051899206221438316062665916272983135810523548800922317208582069185061922327394088747473863452190624718256425018300541190458884661715656497070354419296411692955435832734452146456213644383193409862115450825612911728685408028241055410428458875513469979192320712278899713140467242009855194406881220804263921600833054173646741205264505971848617583567159556154430854311931750053029204419418029437415483103117529397653881135335236763573241664206386076040951141519836507102328460228145325129703009695267623359531332773582351209857768213361295838965229603008836680480572457317093418675866448420324434305917245303662249033668239464769456317531055717603771544452966868207646531419009724119732030285448082963263748993327131847248462496027234158066122868338212506427899694242180092870006059542429274957875069771875503617382964936081489785704495854695425502151301553579337129283582176081624660367437814101075033407112670317275573645894433490719227695839795774831690678248749100493512184497638598120165094294417131116616083881515101575441903516221602410469504753609326262883686812145652570132741207595833586423800038613536063023497662982652310765933676082093897437665159909447935274044899452279867474066407109019019093492802670715258658262014636011525924619416438040233809629401165304477146442508075462770714876691866984537450660648962105407996493239572257953884627979384778437220916927068425103666807296915128277795084856781828267368041176559394703138849792463742661669826977259880700178430726099469303824187482370625673770828218877001209625691279013014594012002879481350245764722227128823304025567207526243011974320688393922629525392352444215070954005314942533917675811850058623922502077830995383278524085413672247186075249017388775019098938790997864386410922501582496058530180854464582063731450627960454003794027475867352270026111502929292796087242916378525307969827789644356670751628361730922429583668629894387373657919829103662542896972316932409499262446153666407380106424435090933401007763937654516610180646043156612802629221893098517166061514284136818136275135262435707760776759903137458871482763436338273567402838514527915121123094225217313757665437306995684560075410288065946929555745649065224975718027618783253811944468662126297438077312285569672550603847861625624268436294731925134674685294416364221154418872315481282722310221204778024460344926628199772528802581643082069829520519301446486914021247059555974195951337277905673714037202886758203246910960136136403419878471021069651969997283847303277765280706923271029606432337529172693372489138550097143763765416161025181697610936701189633608013421731448239185052315213205639661432561597601628931439040545010241123887666535606456586442116424743135552287228268098876190131915317371525593495469579138384281809441159174557786194753167155504243318209635493310067163309129318699781063985373324356795841058062484902773228095659433079541646393649238952393272394493028080000386039948008955579945507620091150620726470489164617936537958169205430836398309840692353006204141592371060910344255607604933984349381433512132168322581169600710175202212750424059785467976932183495874010336336328160145059703452276839087695692166933298806058576698466926371713621310243956504789046102229341094661900951959965861581502686475499647204654675366667865354777520612551802871638144433829802527853094647755820842834149763097962623788007091261052843434603679309098648377552257572473833284000786965270804251393147865063741033332721677365889773510824971917670091265038096463322078550421159386993669569041061826627092740814275309820739218820548250647164167984444814902901490883178183339790889046830250378689103526607319443811760431368986870549292012642354217761290483400172464964659038182002854075327247360030306461335287945918791622563104847834646924245443803808594467784336405107990697355260788083879140405014785964092040252302076514486499525462584755823534932814979519240491276600545604173106898746760452026842782392401636619471738699806722254826161594821512718313608738679477091607775563484714035951128151558256491287384313541609501582880954680324670821922538745056871273609124839911632689182415128066453865675076507891429091547156486526046990049895817432689102535029246086983824050331012814424642238334857258743147741099536302878953793919828782952155258518836334973486102612028814495833210017821205044616367280920254063109755739557118337847714179146738484921577716690817715636154885434502177789425695339118407883877518565730578522518645188708458073800844636416024186784230811409309453591455265665420187096072006727310900864881605247917000999524254261256555066286944835865769644084004212251073924163867599648371464802578979628340689813105776321028352402821857261693811111054910444191299458526529413606545224303746490494175863788284080978484212985377446504758481808226870541202805222462991978537258364672105500709075013785951427058970594014086110526215979689351146542975114297964649061386859596030306714234196843940840924214725067054273268204142635918856486174761723033269955256790446526409679524049040747747433591833764273074990141674977628211978675105541295807651075627065188238249643455018954859459002228401237155966969181983350285596314601562015556554659493514335893514878594095843982499296006248136017266807861421022189251055238044733792643051065616997696872754911383205567331142517485263838434435449051076248436068809006811820644809413707911370167751013042511747595174697790621615268482401013919428497701086083129018666016134116180583087603769122018453032214082015572055295950947511131936817372399883921773081874106607545604563635877757476077036250807047065593525916236914544718870112889760406592813638241817170371136398764667321419465330673862017958332652569710239332382053478753708417273331913780162139072220993978594893301338135628217635401846466728927165657856870636345993527486019326826543318591431095243309879628917344070207937915795459601455407800416420705488367035804375190877700550944057606689336178259833617401657238486380989741915876586436194908939343491122816851280761848183064958387542461071651603494037658633667493185714478828298012814647370650446898985837364833777034479598397704235080869584766638412038354655727327693609046327602812907390533744162124556297071597270499951807668865218942515605643377744351221605664999757039071850630148972485471321157869214124737705385944175245348051124667082622096030319850815458494427802073898694195222019416130618861557148657416469821151845452650653656003635778730909800259383369251037686934451840934038397478599506427960862897545375781143909728486650781757275678408574722414587647416689343867793900236230418634634170418801154061094916084529127835287533775729361452812124907081050100191697628484644778643136857786646979603089744304975116795369436853184183914548167981402412771338725938272401981120679189152776590815444479279709309250485731124050143929725359961637800283787839688132264695959887984850981373672928910267678670970478237764447241801870850927960364253327335535127375605478766128027002978467043889185005626898490920920966823232407544132119633100717621842440709854272030954876690949055518979543825342705778359600629110256413446312826943012167324172719265208179164389607821064833133365008144694504883748503108986232142763966871678431659688804497150533277800780389432052182092284927359649736430438658746154925555488979666399516244190525796029668168391107152073680514341143233355248944855560862815267259213971983411534463136294662819650505633479800398794859026521242367227369796074172510998099906030593828200162387635786622463388964610180236160885467742983147715532754044955378548830784559249738134702594608623617595535150985423580849535839246190243060490211194976037264183003714013377822868057765824766462239885884080349829913136891072182510218965916676532858610019456811785083330943225011641812381338524211822559145112433504491104011882852639333454435409175317108626949905886883900374573893623620942927698785106484056278164186907507975886328283268797017584363539681855144323376872138712967194474384870773688460816258842995226456785711054224563240059703570768280540009730507681817030536024138564006585671907777947460408126720642637883843766914691953932083216052442668461914133288528791671644283506375829864478694471347563870764903236930981577773209773520373004521164354068983151417062604540503004955073415641635449211092643197020575409771209981849538062629385877294005898023703359811739677987950670099952265231889903543704628264464329402531826251977160504577004351138281493509693900932047858309875406325468701474070127660554237901693235767543324337421607193276041652363357555171145073952077645950432440974829566522326465648935696988272334514921787376655998506510624274063937200707647600416977162154117710921722244067607662207916564345777725243130081998703990874187303794018285831661104713918216937787588058189863665589411286817078217453208579019133311170455698109107491944169265414097474371846940740074631918189907942134556538788925888598585166844600096918372218048847318731096352011390210673224617400350640025560111796482165743389707761956611869186112130890569795902672194107648275202919731159515333295692034699406576447002390409735137089810263443962531322020228573949518999855414559138194872895513197151622809490258856042893887468356977561046166035527346730432101659814933295813670310016956873293229273912256322453577816860453971437026735833023671939657274525909007671303045249930716073726672472991138858336532494614759250079178706990399305217061944649243725691539448645770124797931609404035470742502548315802101786241449277567918484617490250977682117987716583388579565156349298147353083270849101876360698472063372916299951528639462486840679628455187208176270509202281760499798446157308434517858074687763521660747922554336467425829121789163456749563594446202692818313907730442244692302980152446581163614356646118484839924968609817447704693414947568357473948311277629258059223549592738096860845483822032802681538914897188012222461004807046801423291745177980172515813956348991095787326164176245529839579590115689349459511409157638706155966224355546091604463734045978038480203901463683112043855946411374132994333382611631445487957473415432047133009478206323352337290706720414664505786065110399756236857172369852865395159275675031186710704928476951596776792998841260277280823569719734324015324906768877047222061898989075687456936816130608372210342346947659536347625863827619513553160376824801355654140099092981817316385738068427169633779133310836674821147544714957864521094427394897632076928824147409559583686594480293272318059317470906691971725363834595717845736239769673322222613560864161209985828953670225221778428303170957797639059931297270941400432990522245286334556186035674914865392500965561618575401731635696910291097934714760004002920305826004546300633188788678112488134922498394391053405029883899236468328433859054484861348582122692048044459040316112534106060636646580244638905720425683215186914518502749634318784204742877204190754064907863850513558987564825613300785477056156760572782547696475969405681379481812372082014950712477544193029857996009188801734700636063740217627814160259121845762222474411390573871309215091470696268861446255198047577530784543258148174497386808677260148294010702376811955010789077449460229240896238269939323494343137045728908777879500838727444201380572070751898551790230202762842387316897592382318807402947317955691572454995673795529037059668261059418802189703829893681071439723172986048829550056566785149937584087789626180963604967882325117125852642208902341972872436411982006004963622592420154080682369731015735459791906938666219701815471592147667521502536514650694361344500629937323036812521616045142189688442172843901708274506983519784540324049916858598896465253727193129682971530423462548505837990875556919872909648368825833661996718498277344869550650154132913426917741321194458809325076161336560690157176772265821143924491393773769114421142185507266402821558155042628299966402508905808213701700103840741834018330143107382777440068860161844766059035958470900024925678093096396719050398503481870848349384789194420226825575663008490233609213757978025622488337450668243726685918489403078145484590988778104505713105829575114353439503205696856846697204323261564439806563311908163333056448261597711034546736333837467593586905309950319565748625360369001557198346209627936782635363219303478764528295289192759532812581214998483383756594859342616558227260256687623766552320004661320175870073238833796237323365623934711418117558751008934612251502997898322225225629522860643407201833300006748397013261842120421787959229532377375622823429212923378594136134343671496047549511214627442247121923378384892712336436309166888562515603417063323091946841071755566053652527464522495918107894055227824343043007910092956570906302438448912566542772387809090838139492394055773901145482170125376400581991392710300655128278404646312753189469565280508358368682003472176491322058170723689168150163567558914443157268049802276723787182695646176162491878380658572051792423260772048469532801895883494768500575020750591485559493571332149004827493984175216910143344668408525733167348083013794860607501604310235917876433015999834786958769322593199225554586460325870409645645400073455958802113042231442546303301070157671162990813025627418626847601858794959860656010108739415482477518917310937132837347975706569540273361973808242642592031212848732505001382849234843506456296312834055158189030689489943177095315890941523811010435514561414637173579124193680770247043268885408759294695304231036744472623222997538806662717874994665782836762634451618009677817993927817624969092258563294564105210009878373180676742611943308793732647027899321337817894314393230231267811355555120947753334119373482365806669012785811641374827392807726951628513646676029462867302882692304152331802760702122203389661001258491943815848208469207432319067958054390511026149625022634122472824604006850618758895477027396968096654416928566318056264892161318911761482751651933369999808631983781229162032613749702060601480377387932477921829374711552862459608207895961996202725856100450148852378726203486953354165104903270051748577932002197449143270874509989154660589399601547773589345618899412896316405242345484294695640351260861846896043319761427399874422967238559712110368872457408071895313958204935181602758295643634324783596829312847591639920191475497636930584812679634941017469088700272158173944982385210218814178420444357073808957371802474837265674782679792721191932467726602225185150507996417375945067670090740829014458324444878828461020858421548710816528082907676822554995610388414134389711489548562690440394426113087510588444513379145418675827697377470288694196226814585782736337913443287429172975263986740449948410512295902551471376502229712123165005783844475986848739768176565055811190617033022794955560505729398882481424678567361698512827156733441152232036286227539335613359873559686987491284021344203107006757690236521865847530511600575121819735957908345975463329513370333282295312186267143676228284405855053072166058041202661277191521759305446162424231293383131842135827892419789019768630884439983940126657006171873107638988650116062471932013424314107950377076473955617087153632392959289752562517789437054602351447433380981940902384083111269308839785154270316060813617517729888721073634811489993933449555992397054444284561406857585783007627975302268441154770811590130483355602217022301521411129442685508303408981807718442410122107001563924132130451540194340531505887505196038189112319636531267047306426595858540167593159560568611643555441516356597931543506576881190064028923940713451148999896853974793090622477383754968754007116086083567946085390949994725309195271257591009653453451300460218351401329016894203042909973334847136764351232095146461911680192844141627772301206843904919730957634865749520587324513308516603758036141443833901226627079545052331318128224086191029235354836226979625599987429495941286128919765223013019512508329491865024574504788907633364871793875719032284886123712969373890383320033376737282990256271203628805576402893549578131033953803179287453903346795704425978426215697563707445381097463734694482222361467521156623048798701791658508022205732690041606484732681100917962020496627860207062392029215547432046490308867101164780578664853063868202273614815812382090726324623388047454921261233522375496283876662014785498701516013841716720593979803848329452551164734120482898419518932314612430773734548783048740646544333771069934540253302449570256697594333048238648143376662017542689238518758664613691160197169670464410082631542281488616851808873880043741785300081490740583427761051230187277225673388237520878616785834024011570776307084431603469144943858679825863857181777235201370035323333950113782448508518645774627764750012330284775125103746867208537399105253256351664321161952351855817529505104943480082315419567108687087382412510940363280980720497387963096195238705782106193985022077131886127046216045208120153446031412708486307781658057581727552268579248564214532088224332649873486534184830701892240772220209730976484723071775642305069631744619481051860960082917018352705084676127986662681482249542074975357112732993409815104791943580879052230987435360553628934808424457896631954504688726765011561552063965491894529690694719370756395185506453915660914877924730504334736836930268181957159216178338548620510705083025977978828473335845415296449205980116966169804544883667651455632728104403941603285145667486995699716692980628184354933636075591667397364953763328351310491509528945004493577301437208483503844612321336185801192760604255620655504221136904702689275344307407044646873729882758829569757059114726377481931310560181383350094608817225546432137683435770763834389521500067058043289063314418875169098260015799997947071953605505024256434551247035560911844100782376276817141453866054097427930512065708937394031376212443674980378818027178497062410577238643638033801749309213799661704931759747068367066311603315334730382512222116306535292610434599260547210847038994232317808011909160193000078209046728175562683483036461692447914778492048519649155214850466284009148844985018365071464455212425766089038314963591274628945833961626767051316213045554099341896638327370629124271963308679500020010329443887246959720352690174183327133862900730497400877799218791138290834926162267046090550511623364196342268221567813246160706049687118548565791111032406930230772843837068359492650915187946852256116574469030802893207670097141957656136464668686049522403545519545326141447989297862186376915322549556005008505632467573042692738594304236684920955968729954492576136029518204812594188655385338973140566250359099283351487429209512551013659415471307221300868098508696335454993548477847717988762506115774221898136924685766833472310166757964227381731280586031375294826499414571047224049752850315912984874791451499094380666424179262451318571662626557164039467250865096389879128454047190724886751697527053806912788396494774120811424046700500590833427009033433419898952259020866115334674522276061074619157245949565263665207994988644580491392505333547084218014396340321118044340684598146718761345281888775008552524316647192435607173081187282321647973889678725242717458461874639787645302662993692071693842742170060025180410598143509613443205959387578919755322061397703995305442278078160072658395532039861007981723311173889460729180454831323270369096798415405797810903465530329690747901802845687821016362897941525760393882859961331716510504513536255064065265254276609089162291464927786852574769727077601323805502673930576419552505332413089947402356601091587772191437791488091390174979835602433971000037524674687025481608042380400213501629034290028808979264840389176345074268515454490290042665957501850898869782473871133399980065568952916572534368049132869222555171437344193173605961521141983952146908865989957753188785953783574301605180304900861513019153642967179770627210352236263109286380543099258539028884729732597657307333215199455303229622706616944920042277751459416116273252323941976051678224118578983860010849257557221395095286679956214251901204238302267167270116138885819551634693004206242712014987316525463301805594165332755425410731894117028089338655060087159890735909517790731222139864960880773884565126833147902025460842768707504761654315027807225318826782708636366971860755192198499227185056721975453351012145475898768933889466914103300509922545567623591870099183648708630854884766439117668254622330755667812046884616385716691716264043110068845338782462025757009441196850340181131457969652668545687998223533601137864774960880177267510679702233120423340994350024191229964493199471761583208647275818549558173183871151269083470217574149672592383144669412573125102699347691534012404075565117747040768582671212672835636269410621011863358852781432202509214616936633128634601433120129959432690162262067688618946028533556334620261546694634692220321174785424478303727561963577513957452456284974000687955815624613650661752842516078213388940897058565093619384533434470058349116620477235855861496066492976862182238831757994503026520079488323971050343226497151923865692626054500065303332669035669512887454594048994440918574555385885134548617072771108807083317869949071361397532270547609932883254225147922690390742199579579451923014005852041876070684607053771226103412640825701060368689362860961712208970601296768432518079472712684015639305722294346080177818846109872811832851264650030756050052983486534666945821134554744105336914040672478894298631642079783291417138480652943988694780065997124269164967964029733732269906198056453507518667279670145378537739942406138188162850629240359618720075310339279010692903198511505777647510220168905283487838259308191955080276284956865297823032410574484053868551187581910439319904991150143433850122744594757434169282964925301086475083206800781437087975059437888176423604082275461942161049527610068997720027157967915162103790343817467686460760925856276530052846659734561577888802026581516098872465134240994471453037083092027027263479968941950532260720321342719248794349445191671855203772312909419711905485209289410254363435205787624700674923313378646973122774458215663740626614410131396150589164567354604430021148203565600390344838924340220949025990261810338257184449427994979662305220261568931554704798102126891825736934063370253935683624596741859103717902908069702520348880389939953619579471450074511173958985448526270113481814388334032991524367498829290194365881147320502012297233130894321031058118099023190653212662801023697098373689147298259158023893046045690574383014781089376443266401767089273521494200677386117603876924064587950544297001890235898553356047009711953759609288448743431045439615103666676727603474202011975039890568076476360942576918088660940198706750493113922145343177923272058906213204853016611238090779957954969490771509143453852749165247191330590511078378773925846377251734797834621159697329633884261565138808408398095375601529184211964626444511755396339165426907837261934989788204925655496135790065111000321421321160838822741476247227715965151469215714155265912346044448888064644670554459675802718055101217826440502235036837098615351134662217362780611583281802240153737301277464592605487387945921653151630965027104062614801031283202960085879706637301679005672646401326263991318536738910300979877288214753140394486908108926941918305033889994945351038100879150608910785926913747485682261995994329218015516901476437294279791836705059516427897629273545006219419456349862148999591039180783390342816427544055357317224865930538205165080956031918406207483872190395427611445005203061248970932961017219496055467194524192084843563429966210914509711521529568319989134380799955897285788463437319298914859269369914561366379816036911214646910879793483214655144449359474049583762664391752124517330825083110422593109037115004338275467589045339057378787536318965563259819492543098205983937299367715694530583972096233511880022192174216414106030591326198968561953181502217235605983903713560148323567163716855707868017414845860127544848205726878096350904403872849197351955699043001930001814074124431240904361894392636746019852295303041673815672228182109155750584817314853195383498955048420814147509529348426590322426784657646620284765255259517925244917354760075581927016837655495564815245082573595465833791724396693586388244124280512536775999444763739849096700500503778330557482646440152404881828049922218461104783936614496586311134128440597183720564128943263914140047798494113233108348103146071872204780687840398345192606549758186781685137145455825307941519351106855157200618844214432218607801241091382033341672158815340341048332884251314217433229903337329976356105263790424248993814578245100992196577368922794114356247653894069906990737021254727697146659401039279643838291879826944030344902113966327538052231951992048557572191596443840482276517355268644507255087332081714353482175833622871681740490640123537857230136770410629094588133504627352859380993401180250149576394425417704116076454589877369165080136469630527788209000808660618410138114629040253161700080050920549071974505921382652240936878118160152691112266459890838575996860484803529780483173429710637345189581075072081410336282880078409775307712196708251918857146766936022837551220895371713053193280371913784542353699740624040684030348168129262192891540532447202821760569923015197997052450923527911664367945398488333774843736167276124884905934349915732561797152397046706342506181251759222069811676709642955293781118294877445373165106788004619485194631684849671224481488487340904381414387473717645143761438627938564793635684582316798482261676624778594937831880625680331817230101184338590022514640052329306414693716450427045883490873265037587028985901548557151915280000603261535091611297933600019829998584529231980808751782881266570531162084715590539905485988037766986875298097667559417437466554232008796087692314691579863956594442687565033040938859747643664643735484290865928212897131414983958537589561239492766536526367794130850128281374583882693747005565591707380860791876046074983307332369013633919817257349865073785235651765184095504241864203248293646192350742144581118375174119967678112363396085278532906683924558436620667604569808964615698906711635853627882506278336928088337290786729645286514073306662092907799336336684888311431399601024013377559288063827871284300632170842492140385098946176955769187231223313868549333369415267098928652799932364910220407800085236704838878330449291681177252224752257035637854359313618557320274202070992313417242333441223215088560865000017184423752309978398780212183677413249111947193026649541088757815083078552809082546701019750305580910742877513142161298234517567030072170183809005782779051884769772290918482475979217267461571159916902065256539747331923182764684373374003056065455883742702493782595134619089237482060014744502747933571412990527971187069939455800639310436940143971573025861848842698349063710100240192679567535085628164594352994956749988492253816492340710216167690989723005083060713045782800952275024439899725543548037705898794252016659405519852217318567612576905995211947298427623514590982917901421256573708598474813915223146314545756789074240742608988453058266041850519974420154960350989253358053568804801212673811373461361018104416101961864920137985216664219213472450295047017377799174044656311957741538806277676429034428419577794873280324736000891448018377957031757602730448011886949098302105000567805541759132683795842965726469648561414573705178649344539161996392529848147422296481347308810738845044983597593992726560879897586520951598128710967809285017445209125448791427894009822969879170161236633390410762452488899639091492827098061279066398918772452510409009161445558619843356201890050916714177503292133602869227257492237871053575640891282861274049425243422944399770413542936198592818466339417718295516627761596123275821327422784637210166285308598843000817483757143690272749347526034522648995732485231000560085054819437822839497150334814040788518018980166108136679523232079013900986709371681162622270583893390686490370231458565611158335789223075298876871385034475900378870599600516844895950484560216243681636970256713614424158026935175807897621946132455847064361543822766727512292761130023601958295276347578588356369902876815997212146071991489797578185925029581897543851712026476583109287953192797831021083593152362069878329406260900244068145426683785914788058150871993125870464747863059305998423379059692714118708283136112413055889428417378116518878208141960504672125391461557179332048490035918421153653981836249774655199035248626087421616296306798869332763723952507963739657675186294466381177255536722805587290646693080065277996307706296571697461671654744088575830361578732609654855366781697018547852611312664834132736036925235820783231624803190359387306315397719379401958421899627836614577732012121985362161103424719533040154751786363564477582291825790034192589884222534666759812510346462626549996967807918642310515332023528138155619819650554860398907982851795691023562191083009327452779679781388203686149734826188815073482762257916612977144317931908147009631162556495751714460064308839506876897445259709356174505782214331660459447950928193678989842668245938133142316211932227819728344805389423962842078822384371788672424651107946384273694818984904870801939584593429816480092083896702919562533791193988891676699538382410718454874292939227278316262683664778426878643853142015769116004444235882080467961252957103645615711916815288121698458081704063029858174196016396045110703883006552562297166591823229372746356677921349179351993241104188711775680117101969739704436094771454492076960914536334187182267785862264923292214125957548433288614144068277566800943654259530177250784281357851172706339806594978759410450100660378393279740470464836349105887511787105537387193688997142543353556749029849568373670079406942282514045199531134143602044555365423584036797335098214378019934782558263684345603212134749187932069952551794481527763822216600335445364706441760291979639041706196108080811957761168972475131082376096133926354381477636132311254129870049788701203013784486939488376080361260324535870801383896893757212005280593932823117459649661714281128872423735161076856515435817227137118024846851915698212907426099326007557489653850977440316470176352066793698079991872547823660047273029312942679233385524385308504030991703923296850314133380515037634002615238623819255041142117725753589020104513395422796347525879075617631409776417439783979415693088910735876304706641741279796745041180686580320674775052354433748490858615470979514381461526205092677776864278992930132919073038166377883826831527819300596181617790864458078905113878294661656132548882611220970772009145798518841895621993588743972529454542885284455395598757081028598377447568309641053548129823000249096308154206926305191864929913615739148746630461482039831265181293953924403365682263786258178228088171327229561276838859752011141531271125941801816648850546131967514265434957031763580269822892585384424780462907790227939429003160937947055106999069215078285123705149978067989388514846562060453820699838568506811187274348159886413538460364771903854665413229961160639215444714601512937286846259911512062023968633861635861077935397196759880290631012896478981262586402211522377975410267917565067804633585670406512599445957813955465451444171719335717741229121947624780730793467274739280706238975879098658402954531676891647944414724474289416822800953246430719854088026575278597592907193056083865295775688004087036610647671754612146088973639233658314289736185466200060582743372208269745299235166403406399481683643836411432157735921932994171029236866387392659260323377098389912318861724870684740727735997943895342978190013338134801487720941663552080144881080605676578086741540501338476157204522018775659189476142013794762342892638395537213936345305530036214204487574010232253514216391492698418921339378239727099316899411978833589252987520437282936818341425179936074402723880540972306767362907879915015684846402166618583764471461479428990371604888061817486405509574686555843494574302779138154880125618743089110417937634824681716128710687207869650726217606724483987656216089234096449397132881615403461535220690483857550815881489625771664614464455433294242792712280739270101501882126612554346996067480677645973348025700501574633148083652472264699206930906503188949650764711828389194341133794339106464450767772061567338853583632304277112233427240349773407469640759015657351332465283900824470082651256005636673684471283440488560595621209049251457053490408157966179942792069081791407039482955481382069034966906223217968456226064700811469593537868753459746102012114583159556738253227374444326267666200481945547422139436159996975935541739688121460733848146803427397205314285123656573215718033196033079431047003793885865187828242589370120841880322796273557658893191284817914590548027789494741760958563433210420025272934558460530033111793216397809869214921050664072617057466735895145427491801453888753359112128785507108876291141527101608366770995292002411360593371001140996419272687079133115015184543432057348354188642662464553625437028709603638819135063220574540943715160705583195463412142184663801557020538637723861137362976596486376638886436712828394431689183105129703373358593705023903535112430694457057906850060265740518254570000774320415693556344789705950932771793245942481525522032156955113565149040115669796641451408797445183284631251295032340197522736204161660048996085430863212264296394605818957756829314813670410325123435247684998860586144155109990493845996872164129994099935220329926764131988789819744258415097866249964057426290500838735105390757330180579912865951126944593413088816156732724067336502795961502568242544863522648237841021692028957022639042629677043762445695738493354703112604724451686150897247898189164621809246864084042423711492286661999974258044361420615753981525717356221756042294909326323873142506359784528063648219099972961799582241185271673057256617936947344579003359313493093215690529832968914745099917781899389470424531081719290836841515525931801832638638942442427826422949424903101597160882093894065693609214333150408808067025372829372536572078006183642443338227822549284903061503898094377343387214070453345394039668630087959545453565791552439779693615962192827901689334648318120675216334183173907169098479694865428894894200897798555149653604392619132831289783091321073924797351734678111153651106850155227990626052360303055908977815351524645890691821577903283884279203744235261740759373610161768360973106599528741593047025357252645061667076710292497387692824943386463632329401068244563781383888748753082759356160100154066014525456621189416013684726152205064455838890732113576074401952632973539127262233062965240084647099359368138262800524899982242286741010913087028786179966365515470610421491007972676515777046157830185027020407267513687736814441401310912606411392331187123126661444818204271509142322835974615643493777512822082887331868918958094474834078690149130134570521317993838480754931214443231561085336403073240001473197599545227688336868463020121364852076762363262040921946770035380891454017265178906423222948636283927417043387280811436220548561326757756230364648306496388037224587607299999786571044707959252190927454620776629037174785651428383745519460057175412899456995829405623225846298941508542668743769666072494258844363827419923199252621415531392080450899669341287265337339496335636784568981306167504615498735997384957654863890978403979955701617651462490889161686890453892420791835080391131869115424805042835788743172208132162900284915014591480235578072443743673537486572096683404572603084961265910230140525758630165215415529483505664712032093047498743505895517314499732925409788416171158936021619864010657980456013090574273176906072690580860538062492690538519398936252718895774112678648366480940532584311839070483609886468933083741906207135368803988061106672671846631767221123330676927468347141006723854605917536713262608750787445544162641880515170991671244755034519685255343265412247126077890566364527329907877956665692717064897316470918705843700209932666330254985071688428385396903528170052324062623521806670307590368347637607410442440021707304420104632558057412664015343970231106338846155136627017191241735559541641452860563225722116612255993808022733112598795225079069606688460103459279590104702933085743061527307679215778160435354107136705691826703607872863309762932764579859431939977939743993602923744742205112492371125553834439822297992033993743169539718591078701705254392949530959519696207141419998648948865712457442989829863447926309491521601167782387888971290501426032176888385604694006723516264712670056150904553047940647454221110077326014159448772760303563196696485292909385829187326088182568434336532592485109216209377215383265428634552964718705252811929648797355642779803265582778865806056041091494292469915285868442435173956761046209555024767325034745279826998991370662412691528651169530624050280650347613720561172536599452478735459699291125699450914707124570760597052282189796377480520806585408632133938336886341431060280418350947766511938435600700082236639664176458614340578079832744721127461884162212454101549753025804102526296697766941021620611380680869664528510885253805896452571268600863670416870867633435704216603259289878761394523981183463386500384987941840045204385374536368456886163306649995348003771099087945926269221498086799449060037963261379637797017971821763123269962447147696570725471424311843223092929527417902602893718675971887267812023898007798610823812640345390521549715624218351145008538845882621676936390261083761736031386733376270496518078695969600920676380637498327311221093097988128404364863646930220833782385816919301938528098903330874508957373078393929961488041283935739355749537210533089068417393361951015007853640603163477317100594001607250950045299701330997341370504965370585060507629251374272736642941829729776116734117267421211596019409279007854351925525976418082317970935021890324872181311568119508691355222879835547515353418692442680681254378243875503214698505216398069093100829767465873995200573434426047944903511954524403946996619742754780102835210249275892192376519340220085833352818254233159596494709027651596846050341438672228716154164713986010272069283626343483844923801811313879761231248591891088953405915954193409617602269103058497070860552955284041374595978100878142096754954474552344334675351292463458149508720126825548699945287843888939757637015225979248634014864539268331316783143093615168279602011827462499793489121047814044000742503899758050576811716163032361957650033071620132131407046317455294520381004835560175624310759958956090109113643331803444018612849935480663351970961021818614119574145707670843242691307749848513478989581266978567208635947873713860232116555462837650469366045000798372809585392194448414835203141436428083346388011282516217429802180676409146017377215541128372016029413126630517935296124339653738908020249569280755976958061476043707707097850599157080477421855240126225456183616357653793084818178118902512081384502584532994126676169994878260608924164591800031317410579526901095689384181670668915826434630749295452818462673459371701793330363502900721287788534651222337999661857113593033204667677006051714137628549980611624914625770755423340098481994187189889289225319877939213028097814438518196640403411463692998958467336818536172392737666487444750497835176180358203707341560192565988156662507681020814712409181273580189937961308266310032958741924797205226234536199624262030605076444464033672964293881421415094728003088813014464329196035330590742525213186509263393595810048905174462974391942026576109717869959693088556771014068734829078439645909315040709829122550070319909368689897438920311532507243906908731911531244547177163351412388622318313482132961839817630254686436190201891120194959411282012425876252251545886199480143648186511494260704884303254170715480237742639419675272826891340218495260106350089444623505996408679105593310859108469044376785963219686773278569011735899176215597968404145844449420873344752436934515505785059035812463634745439512745536107602996829107374426531188212312602096319396768138431636794686479829030278988903800931073864173660029645274456166708015412254572649553945004679422292125378592278226720989388017636138560748464145871111271583045904376112928850742371960949954114609699182442808405201195025749765979570113738561272275737560025737117229677115847980652316583576607113669500596036083184965873931624166764726235821459345033814142346074679128421699865811707275025515515420813671563230015490920083994878208359229029276477438709480479167693782890786419754157232420749267200762809149510133085542592833473163803455452786450782460896564470066712986808560061768054938798846005262208784687751945096765841475263206238102521054796838910037308872035288397863376164283521538175464241338928706513207612662057365255046679061439678352386128705874893048264942340917584570724766608644601694522317138198779509501728903829742062010073293727603980472618955177761251972435740071219479421249184144466056091004002723459040887018321693910505334347811825154034028804818011170409324563811961887055632568633119006252606643408092503998150346320453251003370352060755583157657758267070311078723394723475128840721113015618830474777476750366558173497314348094676613159011358432018128610414233546393590150262541737880069854268428581494357374223289770567307163389942061038228554930238913746821761671255543431368603639376098519735630925146874288359742134976510908035960162001493314436329919669824255644903981154149551249036406916396428890785381940216189028850472400465567474555650377734825409184901882282712257494568550919299663471212198623546786739588935190172424829703028657998908657010940982267546133855376213566495396136745918608108355160970100164645818070743759077761502398482410823882592919805876659154840889493141529878139426306060478511417705249213708569099640498091791939995613147904160767853037461354536635213427335452149696578460748991879514954008646303294281462633021620353553434585066010577857984993963522232006294274634054538730074507019084228467056955480752265424995937737527992733550786516577806811486232018448158784088036826480788487642114180581098960290552095816732218984147806063637724814800421667942385959129555498621825708395795123074466127576692356618002763699220474788644569946991722335827052178961944805625367934987446122815955082339642047674720539953248484707064231036297642641709745553731923570041364209355068162857612569759061187498781332531000580831796244844532343988185097766982651281068042381925037885394439406568897841420233051703295229676883216032809404752583063154148524330783504328953606147170147277474435096534819524107373264244309147826856134029771805967922538294205790219902751586080291862435254823683187025463390517304151818721522692854402700661955784749182207930103465795311917754552256896732139633698020139900981964236782125675099845204115189823827011948321426726013381619015410683929845338914428484815697438329121110564539457043337736195543620105259362691832616574788450658966680805073963582135585907405740304538091018140447580959161145038648992881630229653259113889645205438687987491257562711235007137407056673370141425532712818787015207662046057920519240664813481295614852151295019781853721867517781572913845460367751823925621900196800760164412660324232189988306583647985725682196550803066824397654038073162314970513578082022988822404266140138618629888375617980901274595681690473109950148784318601110538658595820794945164486201957639955738667147750533643352047075920543758892868523734978919341616262153004692360735295298660730134083629009343890514200393369595388893886544185972241990710699832027474720156841366011593834785961768968255494435409363471000454097852593696267371927904388961278400176312976027877911242423568324041037078705646716251799101705529064680539063882227638100287854876426705299705147028037223479632087003812021107143029640784140239905792639697541767795593018766955193707024719082325246641283886296507250856991412445044090474904640588000807827374143608836885428976458363321488343860303646289232387581931400624375221870122847007896856710382751894508085616190338236704449224423309623040742432260640934784451158542185724388803858790794865331773735464067452637846778261054943213239229566461298489705198567887945076744137256835184810847299485802088518642401132772514438594206385627840158321190230833044222105597539142156338172415316038063160558346691321860217724767480147442467128279163852651690181879422460935553464727618675640169621862934437591979146807972702397714692186263967472364604074637937019965422932481687467270491502981342861814894115588850127421885653837097862082211513198331323240455549115996552846813079504839379445119383294963721104739369648635083691088302252454465404292040239267073405809952145830225780620260265897322083892005614936174976766773563426615567092192918645138408219465509728672397334416323227022532499849179013293034210090561793065330083842640660088183692466458575884799612747493231078811436305702536060802256082547253912364134313876801077548012121015908657564955226610535894684615718819422944534047491149561948133524287962218127751531225575649194738633652817670612855718236899650879075268046370928536386723747011728246863950113821418696708857011724661520369508407413540343156526366888804127894022048546008276509283857212506184955988794571883145616681076101186476442608921714192824494124039474547904071496671518110933466485538412239051979243876290827521018910581540109757971825574511719354313673475231926643111194304482016953782389086080517506861274056053796310500584220214885300772297123725504821364919650549741751081360742162898839540461205529451278839922617084031755523995295041925230714136382047996382654567995819400545147210290706209186103663827180890798112942721424357294915459032515240228235980966962102538029203329191368616487228645668313100124992383136484323529417069093348301999687178372450598940630995965460515451000158500415864411097245532815314862579458292607612205694068594837886063681513740485131747649057190902425447001301755792854923014735860195006716039448152035550807837816852887655441196485386813930576017599525290570261825639766543487541591504179180077105305750324850038398124324553885772607755479661764900009679842011837313517084106190171364605407822000204420338457763576278396450284079176518517696221924440024519733856538605737105876581194032028295341799466080424854029368838650276804150856611261972204525247023987706100651203905392307280168982116344028611359699355566424125500539634204666141942276045283040595622272837837586279754286930438292073707830736909429562556615536623762728784060052787204284243353395440315856068908421847875465480995384920775403846239552208759376498094254914822312074547740385114928166327619171246763421803471732209845088308922302471831483341117973243034470611144567695818000482452721151539637121958104564344029483018499428316497140141405620291377416208465991323447727038084975296182666847999020651306430944526399987616481272937305541720816866137205153159965795993073496051446591343299240694143261548558713270848639615462007424452872226956432453741046375224550071920828627879536696597046696692053078424039186190640939953329006284600219334931564933117485524004832798405791278832789772158022097113428205698785258266859187423724641962289278296382661513955539810869083145711877121787260853436500376206047317343083399082853583567893637079822248401980200545566577110919246122811483913926811637808238798058916493645298153164467617041899209415051404313723394611414323847454847335631905132412582356633533858910319559693375323427324972615525072451557674407586913818730381145374943881367549926324470820470111563170162207921943461915900000135988054349398768706474923898487186465563821098405961649466971962129157431272172237424205969691254021866871479824369788426016429572699966331089652014795464184570602800401756670526430307849418241210835616206488121263701599687063509804060030396385505845970207382190397041588340660571724401103879261371141954003390645050266135487153615604357440582260709995234659953266103140155772000955374386052156362170817101191070474197358055155802989909790063434038485107376181194911436483677471606562790276353886401695560007634697487003236802812166942120852361930704423367399720148181651783578301806410747519104333084903262034070905200976937609597172823366400812468918496711650383683832683079537428322320736691354043693486843998648111544061537159244824941917704405971728336292069059282809780197837840103040477733785882825675474520995415677084826763057698016291463618490700980776311038116587818399800541707608270597221449800976801321722392708488311337941609221741924799882014396530756748523178235369900758962979704641936440823140581161825426345416385268495905921288280479927589833559804177867944951703740793831529223832054976670383710622923295067766255518221482251103751772483606452235984904643697275847641886784386205984504881384086374783421326700845167674833289781267178536524762697620610936649536911482651333863327952693001309242459053108587009875551137506814334496793792069258628650778080065907755142116613198873486401564108310967153295825933269286700682445606484319362600185291409509328791349982826705737041736288951062751220257767947199492171244063056296823793834643833333478872063486644702171483875737504741532929753766599152833158866007974569113882115039285981437773257195244651199009658214686168771440904829204989099742480721644530722235980366724561302078398330494002573026330112318401626046890458129266284777323236395593935727506720061775999561393943041203790548830297571254097290701071779367541902920297493427586694793601769387533552331343548255591037769751207917589146070447674141245643620875478420437112002012823016661659837105883873166795268955278395992727012141793308815838817825472770411836984515782136321912529142430919521426785243694493134630071712203078067066029601020153027969782520130276625554181046701530641726480669461523601776258257900554391873085775832409259360372277299049232930414288716891370725512241818451060707952304894349406158832023582939476038955708953479341373219593264718230107260192733759519243299080478541510943905060005273433617533167932461287566103723913505923433443150289311788716157809484473457433563864580910523119921157799571616114164664926024505679695843045238440464686940280188355280637250908882451751946455577519638655125603571332668599214390840980432941421809574041495858744018696111032698699715004948500136065971782412095310032413980774104223877476609790700811528632055215541790517551448788853249837009426032554095520680125592780049514385565887754563967932968608313038825063852054894725466229606244244193846510450902647163510552112644664280920699496223466386444503599113848799022562957932271325154348484816257604249185925061941208776838570480527796047928458706736646546792836496621040862098029308681415840913705174840483426744790989843656723358957977454464590830516604902536186200277623386313460247844996561682966352982959379762889804190392333478523461783288692218841551439629287403898963853145088805321175839793461618357768849234883805651569206882220605571214415070468876762998622107002070055927723666862874678914679272353829914014514797245462194287210858541596618840352257673360215459732932408565926493317393897996047366424269631332201390618422127651537257889248414246372415344617536466561227774555665482779352136259274814486753033479073964783743145647304353424790369142766143362217365723245790511782541851956706783207272558514217523073791857397263295683640160205249984681201021284312785399672943830511924256199422826427996296797553502604888649457489883698777158122921025453418961035303379751268074681567317795486394262095083254930060128826813106062886264767824604412841305875891714110901441919901621052251110510838138224470973166017072186632353724062431005473582557222785336188645819060231862192444635891421979406513617603492420299780070508789386302371019711557227734670708611093979001752862771090415986267476965447718785073720595191092089954799276142506124395477977373899258826753342582015186942077091792820363417084149066794557340817236604561214423707958755837197667676024039874460309480492621970048753545911789742369965070021478746648951167113154394389188594788514548036762796201162321741043562172806674291430001604117225932890465813383879569534274683107058301298266018511694418968851968364085115495550993238554993715964023711446809819240071597020786274680558298148098489929842998455410427725242984535518989933287821451065497170809251910246972232242229754013000471947333491740995016280940742079897722497506212087493171596501366935455641477810535357338843539422236888705173426192661385210289113334626006968127916600175958479220706470937049224595643442968901990731161700980284492804415534322816163934222586920627145108565759176962777757405020732513058219519714832394323856021236781887182173127157751611673784869595106379649405585195839451347874818013532066751465730804673677022243366403720246543317810723235273178123584844406772509375608452449217024549676666266994764199844945125969637636856571264375687727583900075894438989352441226127729034528174539629997568808364610586606108221277271162189023874106360338286000433333883065163724066787995924388324420984044200681853956334949057363568706401013756222918942647639384811392684768272205110804130752787438684512364600462711971158128887570741481445140709294437826441031881175463504316268233492451913319179062828818343433175640282370775010801811996691480687092141050647951407292984035121830120827092896536081463286471802158719121018733906395378557087916919321534701533458515750770907764445318159748683527625650701438506422908040353032334773195783815091946010889735135426590456291328981018428223560353163540812236680567239129361869526882532691206960474849039307469074369479408747158101805222748092198015827362042349341609338631030123613102119325501702938179150091808875059257509217847020730764956057106687261837159031033100232017271770994837608844770214369653045292135627551237963917630139763097225047584696634579831995584059715199489862371948666168041788233723342566048687205924448084554344131395221410742426372370068177416662841873231568229351997899702346808422253903821078630403637508851303349647770095926596355082131738996353456784017074096798874723836368863480156041657314335127621808316411126714362356515252012956307137452437561393133490291464704786458967467484238034750681350054714906876197895940816983933987923437904811208653072497058522169067655215001968586447479254663828814469113122954167366286754778856383756115539523185865743468605491049374300798424865179992510140044155333412142824681899833658558535919827232482726660427790995421531387522548196024829881136567077398282096945990705072438751367332620355463198701032935255879651242834245027698879762204308473556054416797987700735548107929343480111204129281054379552962564919142138025708986860319253548496075218164026508667354079772995329005083987409575936040947584240465312739180680413664603833525293918338991177478564615128628827254326504147769880405186106419554300974207218916953607437244236196231812865938770661832584019124892464084476514177962035198888309598679939248926787611161706893451290485791704791505395406526726442652878509684909152698585695835334446484122063798402487706420353353794795359891568367484656055450275559869119475374271947330420165298295169132141270902186945564496577485333240323704992732057670596150466096306370319652950638274541193639080764817812307504235084508060293891920250544429249204207760666000782733626755838816614981369073403654475436202671340837653103122120581895141521990836716494922718492720580161813615071023969162811699646424764064515553944443356310954453380292014939328997440308657341396026099248558391790443070283753520980516321254627339884724010908286678232198266957485235297368336379751588421881524362980377583232253755192943662497092796324356717844062965482936894707891421971231500099850522737511352100996960384231743401284437953874387306849770285012009051140183476513720316765340409040948438156896471158622545185292811625289029819984361021093449763613749980796248631817845221017713741113483389667090493887269530101181996691718742146729635458742259772859342322998344825208844422171426201329114745221377131673777488403806579946838835418192341257157987661781411443346481679829556898142987678039034095821771169655506148946550300640113567821946469261366170718620717232940909816287229921390865947821250928782497481205215990587904794165846540032759332071382137304290906769869312509677638558456967198110472318394506163639421468463522821763754840854349086779168542769103181804024531247809277237898579651343178363023304802900850942167649286419616938580831374850662018560163792179445793551135498256379520278509152101515141922147859207554713303987672334191850868502726702110582581085697548243509488940563030780515606942622435267372521534385112417872045036353435706498996552953848070114930394556676015966933085788862089406134756871349289620581566717504733344556669790962616513126180044749485685415890741495609575246012364453684073813986585243871884184243954109459297900626882002448597809432584334418822881986601057664338581635077637071504979480871560967454570817886408395829019715071283308830195228538386095767589702177013410262513920374715001238483842938731222724767613048250516822757128293108263255876207911699686322721969282712931702110447420794707349169323738681771728194113867088696164524878093180012242440858616960030786651454320465204687233063659328304564055403558052870073161522285035929016369047984639537053264877271137537658725043814020823777350413532805113177972448860161302137246986245339263265894609299403243506483196768271023598618276958473460666268587351769238467884624579438796763828262279960779119764364155297634319004432176566705317417815704147053478155765460786184232872263528175291079009924561277037212838267174837395625695891338836105558263634205733921349969493434637760169683215161538357586944322768095681075435188116610931341470737939101522879624470013577817198361880260509762036587088927381903242258081965750377133090829858193452682337708338641043928582936289790786781651483231167789003778500073447165611443209978776865520910798660499011519644909023441272694582641144601372344525126939690320821525705258803199442690437068720745120246090499711143382667875701042229931564616039207388283796743590827572209547026766523826406736042400103473174822560775141132661348613524981921540827996066146793194966295743620629984654586750575895100261472680736539710121803189482532773948871072351586510437836331218282571623518531034701174731181304000538317617053610179579480468933871531242965764653987926214166786299630708907286253739809476258273450399278508613732941674767183005580730130563103723339201453724369514359178978622096047896723125033758095879678447638636881571450972344848393634289305258209843394922603293460828820331123418949260418889769245783646017790426700321902817650227789085114807584377474969146447597581546990204012734330292123072178034845689719825056174465210594875774634776191988630968042848609385740019647929838558171123766975417136079423608374737043605644644742609021494071258967864846678237368147040319036712636809302298076271973206349984758390461197300399808894842629557005907785866727775321268697560259548504746561977140075733443283813702682031304695731645434740150458954072069165004002788494869736847238384801905402394782919734853793020637022826095937777078868873618927335555979536282756297206280434000758329310506813684995375073094018065709700252673352793429336232063910941075696728787579014885056906109210082874188267758331587630463368020119491615862159947215390827180859584405397078783180879445103892465775873256893061065487069615193450329296742902415957743731346176111171024178891787767649098630084886391431818297569738118560792183557242341951752939147044489620515325221896204455759055382876921194133456348471366142610049379823363552737986942733310876174184838101943140763766604618265202176734744312662728038165854355072900895836570808223402325045942148046481813383876362585155978181753642251427938947905252815188320593421863279192940190618166931159946790116235860435223758716473374823110918711303239944037354963463963905239155530047970107160551238213039765657397375287515687581606473347161521364471407426004179719091095120818300947760951690220017487302967147468673706602330076751411188030129713638603830717361261802907979035538474578949072937478506598266890951097804042940771884494661700877523492867770413844215790365258389899405807681319751363304482578537761339056910842672808410180340729620416375113708614936692329997578011076222877222458177860779249521704312548016454766158777204462027888649997013332712806206218199533413288126632085603125238773802366840965178854995613682271907294060599052183428836239650551334733192959034964152907234876635443255885213108322646596946010230882713785942590700370441025895311069216409840519496668553102475813401281210690797700761282027489248211893028174574156210098410520263749347919026384435343318341033821006682274658789663701806706826936843014843816803913145684050128972541956070458837841719630557861789319373295975168603663299115028830804275926412529695986527747184723156237479467831782096394976303249977385319359240420128626748607399842118840943436617052954480410844964017761443188707372685317032045877116438258295637790229488604461370723806047153517106894928452293846961164160398035109139073152484681353184321214878624330377913220869402513283897202564668192430207534046344966171897324566313642606647850525454013256297523142590758610519300955134905695117252923271275578080516160162834122178492583917217613138747723449804389986668916293994536515757044626739650437193656143860593467114673246539621817098782483954497514325360219037363240147061220224668463657919273848300125506491279603564233540584147528614594977898482095758691741835036641738000986044723838309945050210156464814726829051610632052110826539368166002540239292826355584939927013303016664683226693974620687003023249661623530805113299630033170203575472207754690350838944465580635678334477674752467808255954822027746328471841075225718517757501479699747113331229596344686260609023548382781507503317156774078494655146957155235450652360749678366106860648938795501459904302379152764193645440710388256168914122587940171033364025843773986512731250491509530481335386914151072930909014238322675382863692293273466212604077356068184086470841267236349345805439719267527431254226363562996480353557620598636885060836004877203338803159268273502989926832541099515011825591327816450317965974264661034907751093350343971195917677819794679251169992300362240987998020806900516407802707377222526898530975737347259585849731181214267252114832407222553324386594577119891493039430309410046941070166052606020898459608242374627157672321854733683460101842969637893772180162307621502356448476397532460804356259930731727917111343166281700896813414033210752778248533774813093004967580009282657786610084427235315857529259718713908297802951024043800479872187177959737010612074002220686392603778404374021848744877969891237096782556438018637396407115421530519159230583888795115336001772058104981389262560340053284531915212779933714543890171954838766321920002522833421945185298529591517347456168667589973588647906574371778514650256783977229164673591717247721582574707978630050020706337984552870640594144667592621454999056225341196862798289381991018770032065496095453002509044989736143698029450661778475669046808831794582933446208432916435451094540514347755301585667310646903775183787263118089950058916111568617503908797501978788332095975724116128650845132615686268131890292490116647500777287720340516195843223856835157774263078489591755122350418271490452402226772729260990937971038404641501056417122744567589266752203563990980103909446900827411470803592050206483251747041164480500979993834700008655366082899704035064957991263972660319234377690807744610236574414451006541612797468455070183068261892754144990803554081539747823874459442683894841836467341743695896884214522756398485718202890632722407756054679968364979338127284847450260713217577864419911870150292542786942292174342290651693597180520881705037011156594790491652222277517031161194601762570296604553308348801233243199885826171475177511631003550380755168212650667564456457018958302672123351978864904840076958964050831420348562362874211850152226704990725148743476072861647836955536108665664323110625813386635453077678700034416180199326583950257241728477255147005073680578662444232238680443351374892480616364272017552306255733325044526115292642143901955906305272079126572494029572820631527554818952769786510026691864977332662319589634964951727243679323876978588955987294274982623692393068947693435736446936579594278158945099117588298025270938048775487225483130391859928473045247052987226912994879372406333532218660573872235564737121415231402131251684460353211015199130863630289400855516027153803205437264327753615267044242935098869940236013472849410971196781808046684275287818426195203860636324436501217593446921210405921294263322788302225035476175399839661919907658005981189021343744167039770353826280447787795890210408254280468893553447047852630622175236493474380428838056471380896115566183135686561866649640617776959426819141631480139436352865820607344030295370780089765955678225837058277163500260987434242649004274729151402760561507628827678988660216156558225208109340176397296733857940356864499170983931966716054902035640735015732425732250148984701941992123568453870556074327088086218332509880060636209191688117418013642355870352368946304313868938729532655699475489768523315371360875988011231379117446165878533083815272912196073249149831422432769969651965606549285114621676037436632537741652057015368031117742764762218378382902195635241656821239530731942708876090429008179338533054916921891870482794339406184004466875401465662469801981500756589886298458622768325160531439296436526721822517463815915618803683382421071040602363038215339882468725404475578696105583731109901300284502557530837504239750366790222525293441196121915463438366128038847880819355303261003885053808266734749958280789993486495175802620935766582911390000267946177184473883997715359036753133602478057243743328153906972542971049599999693223904923182808170196036711322582076737355860813053078927560991799128333207406832611590275124410359567133159106536582374519325491282241112074433726054337466087156849078777385494632220133826728777891338390211143506436511428004645994447387488717572689155840208295628590002182193909729840806591709726378202216918112866162404326701325223560369554337167727613149388408531860586763944339216560428936020314248602081039043066663380030461762889155277322678763821332730804117427561623584186561908396364875461493044893196229588876750092176593721090443799979790491882919140290120273814014129641787997599101376171496655721090940770215184493893818491991682248643316418473901036716408405907052103265241960652828732387887321801148320878395297559244370668812302699875442558696445033101846119753371283095031955361269829222316964528106092749920157288406482401452796614539357170948294364991058496779027191169419526004699231383376416417132108028744397104711260642627889453827777998731877578141180440704745324239107306623884177675798956471289036485059526394887644024968056960347825170460558491289880896869940616663582821216120859956946956598261776292836594378232428636033074035197267400739517328941529938662932291980077590173098120584061494149461938740501296238293018743235376862149031748774842262731651913679622392576176680256569500492089378314756684747919461762550914952992833678342841001759538514962879751357805507725434578457273418056261178205092836089493134725232854752805148091734244716541848143868352441555621400502418775643792492149668175109876205782145218331707405035656019609955142106410555748173815359961604676047219450395241679938194261645300836111520503597622141427120396535371333190319232913239869543760764052862711114851596252071948248240221248317975584503105941904805096122005818213671652722455962160407481535533246661225155592473561651608784367552951223516571809593837392133971668591782345591570770931610949166804138271581655140434175771856121470374532379988178354353501027200472273922057617366054046078136249827235209876384214589451489685333183016441921982617504223762927006003698066971125881942740451613377677946557103330251841966555466273636152411253709980235297685825433642684172697896627009497371217356684968243789771141304332153327304901790991115999068131269587431169559069793481245400867836169657696471054286043933177070770132894968016574739297071607430697306399040332289753096649302151407813777561379749822979454617252568036738999131245783090787776001938956789026154603050148498578097856256445259241683652356141255257875109815710005269124100176490885540177191792617551225823643567245916899312141791595038664237617268476939087905739733869031679862459745010253378854971777491793443460234918730577159057914382406081126284336348900875929898887896478429702119136396888707066117203098488929038630644068743492478288668611334183772440815464683079881287114948163648746447079493622668681965608875697594706516843359055113576772765364616056161630492997460574895302310928754476900828866666560612383005282012089419837385827236204077604328763888634897033911954060493722338401595855271515175224425455943523731214328586931518270421076777956412349578534883670115199838727442698275723070580838156066494736156387627105576071140213140432119767386956271200553980393686827407567558135131991649741687057360427544345968852120448367856727009770189053756513633579643904200713041441300522597000703854858050309852452420652408074282099906989876303449723825752383633828740997426007756197266604948912928496645858844063896179741213900864934904025128774023187084821087350491400912477339148952220857724927512567526285041641951216121778529812176129193438074705260228301790610135093141128214347643856542883009110869449247162662559096689757725313073182209895814642427133643857607472064941976457994580743020940652520950437963379084065174622448218672767380419875894530030823364845635493278893930277839828558933724276586781160676438992199305268605270296525235912723298922142211231647317595993671251586947593111459291177011371792913855493027505873265396565283869789061232053604025811639075874051918312932899386087399373400059492478941982738947330473270810626058829063707129204859670667350101137634573547515024629008759713068098615702183549742279296419270561766462379661455904065541826442256789744569416560607726281725367917048489835677815672266488453831299492545525424857703353966980780332265515853060285197815294870774258687523934412377065065957239581624947657752352992302648569241457374516297805235614833867111799570853983257333312242266729016750038094551638033130903020513290867246124818587824091906603815356903081376284479510468503844622531093973152536968527584633353918383355689237086025908985446310428182074236665092099350100746396504548484378784241357040025823093089711304043407965431604591457489931197654576054815499361058932540700075816499065301612019227818809252788845524649583645845106154514633001044083503339643551104986645566772532065270591465419769186979370950474825061040987548226782961135794384548587552226173908841181954830145400278328887113843290412186763512181803066139212417515769071088614002346153226028199757729572381029680075915637940018164760304272284963056305666807350283257158820510431211612278231755661256105192727132430306650887331019029447060830547239835306257984772635937090598268594744184552907215340753049515740418788013392241223183277041198516185262573325202889711001164955270538021628873300051978589688743509164773869049308225237309943660278134416619294204225396976850419411879945444782932013837724262491890304510572310201001086889970402782469080746591861032870417580335778819424417739311229740779274751762752100890354019677318557657020145346937983800235311249518483440835100459332248167721930838575974102844489982460133204235884184989815943110550220878217038965633535445971141504704412188728589232214223994522752000352498421447570438717320575209767883030910594695527235018410427300695953272429106736343389392288596018494568819846613109874268101989721289757748154609271670139940696645904294308760339413688148553871956368827254160250651773119343647856055815860167831023210821017627459267106479393546971339347056176555000713576243682551537677277983793099706528902759699155516156565250605077971104815346678070324116411729972710715387092554519706851031928625675398722961292784150827778904565003661793713084461754031558584008344062677809336292463352592787973196358934151818437182410937174071120194410831292700922562674164224992235762143040015222788634865980660673480580269901434860248223477556150284833255916886165760637032673517398886708418076349578673848836878875224197815565320599699546166746556823307154353355551523494275232693412509923138310433853000802679617850879728480587279100579269095169671882597016823566926157994591118880327460775821618608583539767184957752102635135595088861208134847018837959164440601724699656635122518366872764247934996624895541586683041993233890772869904816872512082514619978103740576474260362957794573878721730800710857885149510393633832549723150415403374012089862041843192726079714133924951463069279311446529032554802558524480788507069739767732038805592994966691640500583618815860575488461087383385319227613010884876747814274330769031622426659806600118550659667055824467898408485195160007470585963094355850948650588261601893704984739850140213312290487764376102800441760987376385068970654807193766443228547202215690046757292271806050671787016509614677122599213845840321465799309017220801553318316368506477729536260217930973377614208028258982116248103421778961704329575252102146896503062159194456084551585571280422505876033432720339040838247544512261361548555634949941881673901412069671845918805331236244751109130658336715021871929288744621718300187888385476214985652821773502773508628102200478142452445881303451600048912526473917328565668180066123605604138223066789518128800650447911675679054872486925210267742049739005136665080964527626061580233336173794568955915091026799021504887781727074094988286292579169395605946257434926497784397321340936386936624118636332369578603748853685145373265449050194047778257547239931844864611969832025556124996199736248219210776084466817227012710099610606234061022912395966962071214057234748451716027755125700662522450369386253245247949661254725739941711247056970209338637303344930644787983262689067021565375635579748984317724654008256155093338732531907305010944635025098141853934390976251037315147235427711859271863607526052339355839104235590744712069850713314442601352138815817054449797048458300976872016560247777080754855826055716397898649824116293399145644367299715609272345095845052780864522619866854173742464216909403258430563748776768373895920493463900793266181387787121056334654027864347356092167195934572291093506560315977551196808819691667463927132969899608417601404295080421947688726773707208776030178840916519851724535046240944684547860481690055063497620851473386447114305779085009209368512950983339263646213517631926482617981320065932652516998574302729398576262694727001511168600421965402911861528945628204869184257952814054209470526461177970967062413836699940890500285748245746028156070330428844358617613833507046645881119090040154329089331520945263312689101782741159215885838357375048453543369890377548955138091460776536280768134942669654616303145494060712104319446228296795013188065090155153445270742317666617514606447154414485589571802220567414181749087928922758664950130284345812659081650229060288384475925328680907714734122419199963421875362363773599411640691753494668098681141059013417343361947445110878834270376607951068103204456299846739501896569966268920472031027933874421187376023256085518526867555967560414465637034977665260776433903664972267209542276226847029310027469672376199849187794719724979594012261292866961301781144062177343562613995722810128952139610057507541359495903532643189397290872451138624384103718616456210188010980024254777088476633803744914865641891926787410565529825407471228900018365704055181357265457509281539938559665174883005357020722908026971643037540067517740165033277094172289165300693185174196603195958761600326904388269355930308371165773762402679334778243317927007647108750791176082731963518761822924500526647128508315487469435056567503061002776729875931700982457993048633771914979708665176990820391955315507970921184482765940752723129108056731822184527545517818615307913522182403034074964197163611315671626883094753326900054872761338111885145209574193184632272821035130231772400609116001180138165435285594125902660246763507694331217677699414799299092676740046534174892951471859171533379128658749468126160026200346610855646094518420737243396306973185716207691114356200659681408693274329693851942397355793418984421635930212044968629846340959225904645866193720239449063949307187171606364898411706195834286405471052426862262900255619987916293821493671225898236852325476742364360573879153462325351165076139931895139550552127847171165931137714556193022564900679725529440373309115091847589082694562216263306388620751758009465623781815661325356516386441319005306648314772433597753993988001892915037662994555642999064725446548621642543927613962025085446486240786073379625189648784517263756391706644099449733749806640007457656848490413827137592996984789126728119913656798627489442900660009398300555675374079115555994686598419980733202816948326015104799448273067888905613890817911604032633071434642092007470125539301753700344160447708567861417477614090081888489881956452669652215730434702908688120020036641257840421599571110856216612477053869312223444852432651077105804401379748184061917196478069149486687307725790759470389629516163730256110286045756098524489281882316733737652252182469983751002279640011124904977928299784019930392161805978302726987681410743523195333053775503278684379808247997294379708572115989832999785291586561729668375112376761176352914012442734422913913346511470029720204143137408999685603114615096163619036750437439592127445471416699112272703366108578425777134131172369422167106520427221523297069890104510701802113245215913432288957570469688002294738640290309103010581514402163414999288187849622437883587671412999192507768781546970010438780694095267372675960847792940581230351646539005054394164268448634998583414761492050379431458607528302916594033931801230593613475245326612056811883580932341703132243217741852696899316743333106880075983983005692873317128595964474651214532862281541015371264829205829745915694687695559503500439153500720341544849004087070891639323428557469278493464520977128888931508193398308978836980919020386988544294098774437178548391130571544968263492490712073020336015909625738627839204544515738119554930013769470741516988225100117218202572876660153069035926839533554656059420507897786948762712473978841649657128945783710701320900743359468688945611348558637159329939495499324306678278951853383385269244634480265165147819045058369310500416782076749962322124099631116936447933172251729889262202816069742368344460141816023061430579681960515935021117602491491746862173752598479678277034750508265854953140982500536930383866613188833739177781711527283226171566115680333219783018255201930038395833571736267496957749907138547585986594883580134784498548378984684636969095344601412630255520213527071517193676542995727235183305332737115022341496752854594275955388831758831232909524317025864965871450011604950947242395598755557053716337439550459494870560684543698790880206010249327969355326805790611447487163915940332256981509884819386603408231950143676059858398612367429820630815425939025926365502627713542268322612706313380922247056914508554076243522384195261935808239618019896277714864004172509984599089711676091462584700074354926020682285606972051876780883588390720375527514369401210659054255923407658384988632006225777418027674344182482440316393947496539564628076924806397965537547441743261467539324129514677063730893764770209298654111245776800144934658791293717718950372351261549588309734514976044988938095204391379302465968371439149526321322773919929692293553858088862552364626830116352663006367778102791418109956283988671634172392353064563245419467924337383008974658027310381232857385708170538056657377041962437710333242674718529678102842502345096437622247312124013797674651025304274804470456602762059215049705394009196166424991726405635622505319998176223698537619848308606191715683073014417680322080968825164698844650127827265424662142285110291556766767514730126744847338926669106648344547569366415358934532928482327351756225244963090507703363024179612042723034985453532146253992867634432055812833949128584018530262017970826169536721632389133227384368299190366442162489390461309938026990427361226980474571021685827284262555554607073960043799204120097229411738026753033765846072081001588848984399864115849031114469569172758739761714782570797678779165557558241752794577360834225656978657287325939802268845060982932169699187639444247331351382066086527460496469999293830574493046580088206463967154314110037852451733381367582512730740028483343724921215644368657867317476882609712199158592740418917045171036413570975514853681394400111098652544252612870487806229274673019917384497133075617491128003097843162448124258354956674065837765634157360039619279855705430083433420458850816671895371016448844377671602311152997127158278789704382683140982116721129473567709653947496628169623656955830803196234108280277979065568962219982314497724163615841074614302914395742046717810684548829166767400208049612166958307405542200589089623269597708373507398608240585808323472042278365977645379940322393237029535029267906780563461013327903146548313978132502950998816683480943215327687412980578961643682351236441082357060878110901504267664149224608958003184155379618570321491980650587636026040634564314672820462434754389244918244023008053276871606529165703105547868131948057727646647156961005811230899166185339664700353636002921014283335981557923257675376987087611041855641738088189924078600960443134907003322317227823386505031621722001675622512565045081472702333232263687313016070732762368123807916885596688411010937579197932743861616386530435763108992146267856167174389204705785734760758079903264971722344551672635760277491927608533052626447295913344717689371535716691790348616134051058370853399303239455359878242126242709482298257174613143889783530740020483126827014723251760865973472183634574951175968715494551149629546703075540405120982821518859035984494825201327558802712219913794129890738168978701766387942004837362700758323413484170894821758454330063391049877509343899178273353298405844344276994244239146533858173476327442048798761649272860855386915459981776701215537307322133198908524765658975679400903854331429885473986199010561968365859696389729093273587628194807212210618108862876961542966591322979355150643161476965704770099418175725777183481143159556766189339085245096793218158880023430179363769372027606001948590605749393163472365642938440926541761548667879886775233821386384407836681781479495649074569509231780013771988323640158126875777444377350270257853218783922502952075165892354758819509696864737910857083655565045660644150538869132606198951306259588889228886570309142176323102549363304051435738257429431517859348014586234238913209098423624433291330495662574033141198773369990760661112871060882227613602718258217334479310773633864232667291189024376774096825802932237497765094722648375434695307736516183192364668261401167984263715038556107039554152351847124325807602204337674470517683652536959782860930636325509143523782658712860682685760275004499355856080385255851043537015480257290977082074791739041891797213249600277738384383909773496789181746368610640560172752441135882520448620628800255860301079904539109356268450769756780884653733511645320581044335749479942007286348006270205734286616194294009151621115993162550269720387528237940316976403313626935279904865138240500309999202597971676831138363916305840998686279776891647090088663822944966349148645560886866834974428710280020577519241360634132737756109485023047302311186126705526932812320304341103116451720910177599552249047052220207259803558050358457958231677789933793453278055322633593731518805293402868172126715798254722927420415806953578723349993033041673451143267074977374744321284833873030712597105429762987669552390257040105888824037435041512657289636480534797768188980048127342524552852960313825278065259114309888608646255105090995056451697749239428296326657342137261995396186951044094263608726903498290575353500045022566717899579596925320691825981358312811720314685560710460546879773603601152797769840490004524910293614603651105137248460797807304874657780227501287116062521045993114858885225682988485613218501073967250039149621529763497966430312670817747016662751503795754431498631488052405199930125471349478525039163839160752236482667204971222801637475227580947806160179460041091914323729656316376862900137748299656930891187237194713259817587409450675550001531809489905026933354386946372286428698083599896657270898330497988941176594571940369489154894764258711777584818359887825377579434537373101211092405914752106001913923552819245445567617212015811467283140971921366316806314587449818141794189057400135288432495686454046836113583010125159845593455073162955051136902578554256770690570688564733049729485140272593122383245251539433210887185735232514113735493006287836705212410535410993482710704143030724829433165965708535010155708520762403390916168754921445333465420546625556773651007998268193385413876056249422529035820580833957753144279416047607614042776436280659774763644272765646141238811392134056010187685818820651309532464760963601095337839812680316604552041503362927576603491173729768242223923346343692635761660429118357208983016822818882418498770988323235768663414213823767030101571857420180402184067327846965948028527214029676204704867907867589396969842410346200406599985764084700792584752497335603778613846483429534939166225237109062796078342543326098468969794457157876843180220056447380400939425769909198678565979898545315211767763583875089419338992969907419482713888211143799200075837006265930604849626654815772481018862182240422538690892356771032749687278388220083995397411931174562318782091014821675662080325819118751035466072181106511537679045630947299501148757309785754003565447289585738040968112845656744610781942676468529095833666003043445066966971414685076981326904995345071225576213087799427702911716133801362118434951011340675131220641808065072581058190237415225576950986683614770725861715420235983825754704696581544407474380642168451754789445173170963845789152659995848894524738641650168223529482023699386394139180180570145571799435980438012294083082851099197423541215197600111634143720406561236078966421126575708648732383801724688114886207236948300013305180868209312240152480481307925529850423583473511310597564422086047832031473905232491811967581065301107342713934777386097670151537173796536326854775185021541626498823388705816279192945960060773710987591873484326458650633645074020907063689964988248673782244648886001831525276384936736824089847211663834347581197370413377102489573620780705524648508601526026603480317886203336398911168612725071300770861154143143742955684350140199194342217031481288224267479421436676033086713658218928474574139818421091298601465221510554741709137967399273211392285040879332714619796531396204031925157702978278963719676806762855755891991862235009332554194036676905366659896272896335654659086173755020913214083128805476008053650909442046702020086337615318452723918393133651053394310763126464216929484751848808123912036360376058324273457652951068203120109685653551683140188991006695045858160816133994056716395909094473816732114319800263405238643326480708195256255854990772137039491790120947611179369728965465057280229406391253107783256251004977703594694232735557908161713418828589117449726364777147200403110566642231578593686975477210061061379287009674229166648954391326479216365807279095337798248987910145516230915318889338677717928490886718499720269118508582638199641995084326877687431359956823610391620201095695427153040122511929145429369168351080946765304039496896450564425648341604091740598710466685988367819478577081250790031634196789735348633367379465868984725916616939920875716224673410360003973742474778209277976573195364402338161088212616189635682534937674810382932140584993852797923930600973541543511670189253524010610548842111079192287408537965472946929706375706331512787780128848107827047039011085170394797184517542462649745165135528951459508336409813254074402101192517987292508030272131151917971604459568929672597319342485629157822330733886741090672059047418695594015762207902258670386932578525299737996923948737914147417695414248987205674042664980656803553169439606002474251090564835292898985529269698573721860009084167431317976747711549374880998308639459529285669653668736034231414460194718792790361754522913439019693003271992236728130364613918518665172905198558194946831159160941552737703214123726144922051207211885429464582059843243352973468880141588961261804241977867698188614694819070119605444676719134764787600083007716898389677879670222850165327463171235173532759986324231996738096866239654456359151629656587143436741730210800245368941104823823800487090237167462056290355967351517434768601148878216753622533898432535640288762909036964859762327090908646061189147119000935560923075005816121990053664564125734868336617936153954799432268419012099241362531411823436183736571864005449429392617957353511794378645721318215784231131415569445018520214864355602595149481756565066537711630265828647307075857157210533724080043268192799076353595411115519493785916756730357617110942462473510059779427932256427352001782532561241069380988507289700486626728492653223367968892773992356859541512261547160688601033228563537224780509417688932783626813515437111185818060817048160882741454042902677583741647558332950403501564448901456787600871785887709457697385446565945007321216724381465562037468709338608300521658758257168874902233478174851939913744008168755384853476009586798611367641752966807176552621200105029136588986774338235360725662958471156963491382515322193801719846829975827313300522219612212345876526391374097797742118420200739653937617060709595734809666221760604412149853796770506886127253553186321681912898970561290448554602748087546340121095442134199844800601053238472000579589991261072056824380697005617806427736507330569251871468905778676892333914177140118937821373467046738100293433497580846550625738455880300031870060396001815178333500132531259561321100711283077915102670939477787637636376793785053280774974274878993251928968468616246621690996431948063360542306175935951081346827844131804746538114232347665714978737404378587420326149373831323840323858725034615873799322220780831328317129312327022669005063845193474586507520563075330953976081712593262802816950945838946025892607905799842787807976062291159156443511879055452355609881884299187134206115508543325257458407225234280768985826283107003393553756246647115368447235502315990100667189894957536860297241898163865523337158591215467845381600351961927799211390335015784683536004996210682432519074857987952177381463840121225261572358120687228557297164871279949902876075976919096637343235198908345736799597179418944408719995693299759220522758123974391314942548198454569471727007542168117718262207342358144938738486689268106967968689755534835945466752086397293255057600881207863246283143088754122172482275936523396446343618266219463028287798546347414714827656431196945777608775743824131835849295772989808998475552812677982157759501250257237354612485826223096478457715364990383674126234638009333566472343862049384270003214602134317651623726696487983208142226091970384585936131324561846100204243595410320748560603064005172417510942843288889351828186550441383424577003911372767523140327008295865344624898105223470780464328396063040611501067921809911742216662148332700472624940732313804653047963081407992839218163638692087891555488588617957898264547207691189509550696803154015567221540445347671543314868648062707484374662451051392360424878030922271615688519779235880589259531092476697867000182940819421380728924172420675867107301862243680809658412700482659353441818655625329070741100274431806362310239547622641989011263751735080840694992553056934421076026133880144670421024989975237563378517643660488182648675672168650948511806889634664237924120125055058515820134519945476517259462199835568410008556631998268067886792835901846211934047608424785673202105831625908123993057495730903772959966560554576939220769233978407018819129998890077975142898622223755724594848007381282036990921151753715445428830957758807052924775258599041332140373970505272311890650054787116152854045568472701051085627588657974361869926764196621356225017373285131982581479382439319433169250721168589301644362585661928908374927592136201304621237516052555759461084210142455832082737897151064044161555485901010426028649520639913716867130393003470044145892107685009319315805346363212652861570145274326722625682211998132517314660719689827538533475868705890159640839690833256032220358451590520218058959106811043966063695321765063842144545738713039758455932606759248082252432101289477559528377257688275882474248576157359792925542449966837792325458751844910999145822275060197088608442068437419713094049712922485445011268735241775531152350068673812918092764511282866308117465783252142132788511058228746964644471026277066861667927277499899860522603118786826364568295750284592644641285114685361731421161322273961986090154077363660075622821616876357670580024191369553278371632685269486655693008598401639657032853948989009703835467283919080598220526864315293380914986614767156681972427766487690631693170068692081885162988644983101290523146691591715619805472120147155816171908226341891842623535371857685822467277708082772747792915025049145112769671856464314226535297758125010509097338524731113597965074249847237328884133830750750148440981448890091402327399260228790357564277802434767337331671957376763827786106954150302545352502758565124605591518830806025485932574923617840500452514381700885138314460584992120072268860112295607553391347023826142717684892323653816079682671023504724157348254704624757454618947077728851443004004332858048803103173532006382481501916443767980801812782784892790086459899873747070438797547095431934709197981275699451517825363271491884946872905660223950278661562192991474742207485211616058912527888028499416998539488875221061091471064573769735613117332755382779887700456104989145975640353579239040310527364282389136156176827917060635047047841604013246519318453147885608945776900198715355806483757523277913051836265779629042475288207752840200888543542125583231079301423669345313414984109516890920032436880057386814170230375019388134439420432918129081045815242744992707165666043476695817365541256199667246473010721191930167920655556749267457075192958478762990230791139087435513755435463799187070283487752969063797355978849132521908669775306280799303911235415261735690947410160880114314816492679651279632798567655943681649593635133391747723048454589799325569456848096785851945782760830357383004680166983517453631651126020509212367239631602107142612583905720358666846543308318395555336341775837230411095153861957448065376421356388136610509414856408960744425280445245129215595778444579598527367638281629587101830012142179220871639270354769983389303561090707501615486217113590706989656056207201167802871565407754846781773629938419142264442742479359822710474408204758194823636058588940991306355648565036939465001029523380787838590537192337485696487130026169419796978025865681912222992077667500447852428025359026444339980930680781562174794354244921163263670779462781326613612326545828893307604599377458851667976552752046484917964252810896538165638737319640996910745479033805720099347405239076621345609980823227367794122394330112914330450689026779190268748037842452495879122250272692703819753728777414536054705027462894378497886389021001241558496225797345815448145909575209267946741590487193139143300701426418301772016368360543365003657234294653751354674421115907600368796992458848348162992291169051998715624309522623659737279812222998397716576162029400646514276607051733776731406301109572935206793135773096580828102573482654047617559720341729084559845912288527574993579832942679286022939536363170523081661319874379774621087541373321633053392656867697975281152814006923938751961481750627055140126336230318854004124996232336891550092445786667318374719910859140444501326412864915007267719267278359883138834689077939753802330451251959146073359554736311149524009773694423392384242268554396623009075244165297892164942907992691164534169462365746394291561901736380311784265005612399403333799298089045879783102251559877437555690172529529014218467311869618417874663471784880181435482866675106976760961248534551417521148076522202264907940653712510114195456643545640395819435510689801254776415204980226186409864307852919019444885528323778948210619319509113468629446412359521479436529605731577108089818505935532065114046067011827678567558418195233524364549362582041646838592288346944606185528424739374755982501307521789525339422462073583616354262460678375427013461650850483569643463440298325383271123009651354734615595444616806571541021104079295685356874356704972747889197534607962374852006911626757683963371095374330917393224649682495406834622831229941043736676504645737574497693989898561613110884944534220957024740890928626699988025355265535528196087799763241893948064037024821677171539405712138912650738682562872123865967882482496402557368758474883441229973502014762287599729686749716761310934973358674945271376602744731272240545766170692560365784211217345041510667721084495171283323183305495655538753528199621624394415730077600407867923660831709235484290577665508886713848709067813358178999756758268476594921498152759559819804378129332757285787639862692694067928029672443853340777664125576694471306809164262726620852864876218033733759452643391457537916443454875068633358066708420476815983112416231035204460811370589233327063475178632994928082274965355122128868544348571985876261782643233076177370083795530547707188052348909109779238411223644918286648288348947177137334231652901762789265402567593823033425402054084413941840660322080800205810014551458735180273359138883452513821697367954055332658189466473206664145918621932252727677049358558513570711214494449541332259050086094368478182818393473833212671617974234280784429871188209152922891456759931670895407768212394859282365701865051508214212384787203529568834039233358545120730931317505196032826649227780274520249120279598263422694923786817863848861350331422386465576983264203053819818940951658998624661385773874730818768933353619616464495002733863036662960849255572196351437734650670229535259806740889549874522591827327205833152122182454236051830136389425771760554304332622642068693830596196963035955018587507632436600621219400058024296907658985592115127941375640720546132161195314100252911569701290488723924242696773915371576727142682306558488414166287864158679642876456941776106116259824283426001768886268100937447026463325638638843173510072555723868038589075492892390384125558099552463746273832586101414062281455841005378071961662680677840827963510166916753521263844945199234691156870230711406159341713712377183827813378395178968850286152702339615838568248260411073560636481449502131623427466392019470908235718382866394893613985163515208327156408841848871210505794626454709680570876343558020287371902299710301848077071947222626860322161611095089869741215050818026325994883958829569318972855446209743914725570294786635898889398503311974272643825605948924018290685525345084782394090537718925069691164522926968640849105164466172143974390429264452944132072311507405063823464388967928904158085025888795341963569256055185579274893930226634905281750886533902669791012976588555061974802475632355602371028559264785797584446925309536336777745783980852411857053245436613400824281767710614131942262540727155657580591225557067496295460620653339981832664679990898437270808671054802709097398696713171018861697210541954199255530886621417079029826842690953526214341991552806090983494083959019058983652242919227506580575131552302012792930102079804599734658817625658033309507734620161242206989131494219890877843504537999160182721827783217194156582579478518880737033364783793542583748726359000027919632664295768634477929284154307316484107901918569998957026302084071504470575980684909323672827327621904674004592994324218550446488888028419321267697568501001748658674126274052189440515173341492976157993923089456558684112974146185693427418397966022119566265971743022850037875098185466069135066942613474242573621945357049902404184568921651245005400271562160913569698497500323243829727796897945571401673424145354973916564586519641843434355520013619191875687353556696555580321732875971192474426278718285982403790906295370144217509430394879485632619851949958056684437879800239836258751938633105854563577756301199905537758810111749808016358107349258676275817622848080968528579805896516189070341620776713336161392712113639710363649447848085442694140211955187897617924157986669439273840663945413446463189423325775719233718961373428776351779452579565104545831014304145003989956899524104117430806583162390168312722660519291162785553981176506338777820062217829616812436756236213802024668662937718905631058118116436107049038377040775947370047927612231543924514548855165125098462536368079867633815971991347226320614545324072748774761127078499977695703119492468950624748244622918819514605620743646053460759170431188820383218299922294222452309950372989294976317197784471808195600322632001268327453116794537881585417245796957531441110804889029445063825975340915937224198660648172732691752160499058783334349094750306639526011222717603520948566243644589661905375118435758672465378509688307828313828911121544552426687846602663964428466142847649713928876647937393833444807917985046997122931885870679908514691063431254528296797565371513450692697295546039875027253259913937252428245178766002186281115941091345116346903709997679629881944459471231928052569476310765873232800478486896597817415728632454060013499392053594786929666304912458970716900531348921639069659421793543045801621890256965024744107372765416326375806298683403912598876533964691307171309752891416821721295510065610602269637866778264918252780178559913670376733455648897518577284634104606547877676121478351105917413724379293868801493087665264327093846690515917924451648131511125000700381681584818535965976737922903784771142257511988957862812173940270246554246137204185777927724006739059709296623548797903039802086653705182712585882879661870271241665756580995135318435828864872695234470849510579487728279423974047210773404493625779969303093579775479151790570968541690789783250934414729410240952257489226275634185631371158384658160742658363034730386329665262320345477756125779332043125014285028040269633340156523838975995499188630240373731949016685153096637169858991143271220595704775617249151128057745570872213265137900260880398503049967946509868812915354741413666217048016831664806212786583014119352037645649286620608607831176542869370258490082174428980753107466549267719343623694300250065862864566220647982436639750042621681632796574510287455181445664802840629859165866595191729037743938746326079756411775334462961004849581239761863752874135195979087241062697032512665829534867156690828747427501821590977255835865945565624781676338442870979402030225099057353743041425410211579530041395685727154750453577104348331405049004783754216077857746679427959553606229242914005504761296239920565325093403347733416612254220970248170978378960857439863225724381541733574190652408601382427991078891264058185480014412197767696616157215565208715300900597798438762640676136643800829368775886334062771049229137875680359319077998518489891250758578904671982167140356308523513903529469993681301187812957461431948697573273831705791777151432150869574948360004921108146578160770470877580818177121090920358181431634334225009383110597329342329103419114365923279997193347481632513305492890208557796854595010042071721519286446567947987242690848157116414719947081133847324852551489504807814291961017141181239198509540759257322030795236362574296757280237939147549438253233723980461876335996027286085690972203213316573631800040213786037823666296650533857882056430242444439799539862596516727106400403106101668650068073032641921951290194576765301906510555110822743524934994164927726536857327005923595511508237903271842167397041449440385524351491887292589205378776649567076621661954503152981615104793106433149827585751529968780914399953481973550935615688258594348921244892030074875988613605178781216003161113703595826087907623175166364120157234621405915135039872976751696985206740432225146889829509470947075090216881814923972865686809462741133628562341243642985240315181486456213885920668579444922532489061996634990506312081165730925651590476978350878336878043664817511179912077297047488487212235831889185076620867181541983181450118100119648384618902629370464614956671235170478621472644130603236928421272507991321031019198874757198402589899501243484793787374789050111970669222013545413383100957840187740863448998567869519733303255258728225309654790892563471299927204785594172208968251181200165585110433969167975090852077703259101067527206005340996377632310273192349945182137752968377925676260402310426906357595218692634955331547237212219773758758202029656032192166862218452536100178035045720796682449161342816342271258713997842538526819982495800044411876190863122902945400124343796191899697844491126085740078782519345788973578117486771019193077439337234143687899940840151520127688631985881018887436565521767292865736201911232475315999843540993452577062811847526470659658221890719737296141107446729873126496853408288553812611976644664081824293140693413935370568339241781655513133916437943416398508636491598389182614351338275487960371877573895225539995186023628449718460924386705527702428089630584335797931670913598575208771623020616142605249522493962196421397530943231974831739310580388562813828553566811977465447594764483098567901874314986346143422700669454895103941503563083085560398793286476326280819737332596541953264222376866273000547640089658014591286953298984677653487293649277163968020571830267654693467504676224305907480539179311705779919569773446451953860333478463247354946126247408776059179108870080940206426776556322889696576318637846015593695517901840957951139854586344840418805537701708637150519474070619325763417521173648348236838507601243349849636080633181776523345759355410597538287950469075702019204988835483154357836042554187731020087344211110920597473498092655871056206783359754959920502594250075366788761901179728219145301820395825582807706688682354269963800578976347803175628146628219518027088271988096836330982439484301839625269786620698806983596375379239065581197161346328906203377066256833142536636488744030532375702190046396094382941116395456433909969210246448911997946000534013528625720106417093215054922866313715793984812584142057876651691805311332464532687571812982510021265736690355962998036597833220306530771196138463565548854537534593605133986346329892036814499267404010341925134219073763693432996600233646625272671377829945643894983988781356069540705583396263688958171333455889612205590221566009844641401569239069398340804783978079284284152428890851586311669353910657260556181669034073104435446339777802577262963893569994369673931258355316010806846645399538243683779868689173571284724290918798236838184848019828223105364601780887150609519081381209292971262202084930504295101993410567767440839696686362094547848010928147978373438413889845134582002600696866716499398457986454688802780544144516807553900405789984462630323057132659944469842107504029768146658747303026310759181802259199197025190934955311785967975948346470594336773331715113670955477372927042160225995827466335332900271772320276503500785427644236630790196549951060129686015912984375187668415213932596037858936695565560915765332685791742982102798722161045957255993260222536359542455274308363320071543403797423654603174328906688696191232762627903073364447667823702336773785458162816469468011412133292543176913205055933602837411170055701157951327151079160840664575156273370318539958460433789807945746629555658750255523189426749848751982452610802941062112427807498222163440904389499269987220477969898146392920118575875779384415447415402352982368715178223186805219213320490891488890089142111558308000900097536843675830281318881222872096098190261840751502248199570683040130336917644158501275060578160903588664163226116906423413154646741388654428550735412847474797601398054035883815257926587866970415686936624810204836929269858276364934227023574361935330507404434307464538769089534251729829813774943206884471160487886529267913101666113257133592415980568700719074375135907952677606863934415453430904213832152956062290251701678098959422761146770649450781098213001007154121952829892511833949690670884511929909435711830012114329932825429067684699131210345897363993190488428099191098961579362025359277362005313371313489230934357059430385098045794094509536424285352126335202427605876548552241233872049785278697078870999986952489448863448618510367733583619508789692993844808430375572364285494484815660857399913971082660957920105965663805636518476977105716576102463501333924665427100488326539439256280323893105017828966519826024034277078278974725490213508849586891349248343937828243734748201559808793180904310185395214849074962909214352787634975311356537900987816786661434397940632940600586713580788413794911244151876706095062418537552632093793080731675176881903627885131615563578856789205288160125812937357545273822757702882042603174256363417018301351228427333159067100127343877971540659762260768825197717817270886531386383628928788363392912133084700472306007321637922016437623953095767956217294981863117500423609252190965766363361672295038388360515097574059296950983464858062363473859824938834457970792882917759476283834592265802516384794214725346007570359420286359089629895639055872860708737080937307405634619972688997204853755330094162313580729181059146494141353533795023238581983277123865881025188182139484797674242070133777726544518283122385832390673589204147225207037481238492207614534796176469132026759914818487991270592765232060662734971972796588701235581058218485994744071986761982950752217088261640170342966499883553469346100684867540802031315786487548411858930781759470707432484970099055760451516776988663658709999211146075999177643526027294360740826987740353014484561409543434138825417329894677306270359320510512104366242808545231749158174347675803349561542226606992080894891312459944848110460993644448444021377387245000476266094595787316033428837831380007690601239604749168317010089255546894802994742740720194994235762751850546711228636624329053105459331301507231951044119243968475267250531037484620498010446583284500893955627824467983512694127755820702016814315317703136656838383047528568658003179239598242891611786954042618040984614584790641634425018304592680957523813875982352053631057773881365743555566507579054790339509024326317721780212900957596291249008663190955084618720228671597465708739351245328820922123512980722691095559212968414595213110291783304232831468456918046487523102924340124842777058241292638061827420015747352797242234193996933471302901047453677835321650109222422885108446304011501822077691091940731410747754459655601913125524901238664108232506791041718054054349627902064665550948902437178014057674089442229116168689734478373659922399302367665168401934496607891528559105724558213958873125445783200302216751774281041293641668657633180325417682809650073928630495809809582071997354107896091239478218430994944559540624643582334422372100593287999104352466605989735861845658839229398052082807472128177344162420470206431698486802467742999950216651013643534427350760885022842368611075768892391678485006692953287325455007757789701439402307416098251173495343661981439020339095123700735388169116564319605152210486494406371127703478772230319883960959713332812318168017306119998637924560033662037239808519830611713664056015155309697537506791950502077932072253162691218166221870952520406906135252423690312357025186192811618657714830226044371820250893103294593738938631253811534081183753535922829215904901825278897596427377532601594033039979141571591903129160804414575090316650991816252918154685833432311702873262912918406074509851346921081185956979298860425081753662428270747187911095217776413392048947232357000775920027816788959969535847755020230252703559494451037005560705824258506387388621133828155141045694300486419964168822339339614095273871105881559717454779939703642856444090221827149208170417127477241546977804871520814525794216919410326939645684581821678580191049814261485482904326520678088783338085888296073566297847193572970366046391276085262425562849608087001054752002931893886934281000951744957938901025957167869343199820020049528336568321724145428595904035854837932639918501517951580306097379240681686456820004077387321971958252352200811402780344222036883934086582479260698456800679090647783693387284166359158595436630740222667699356834886170034328594182791973715572617582899178830717799670587840884247764123084985730481259682269403465079897985989565349417998231079526942479129792608015201468727650758444663998105233745005092463861080552788522431594233975925973676561097167754026586570132037529966831512805206711286004501152227700148538005590023890461599256214522580286898860741321697629273848635758264915762819826488909311267437740391933724749515932197587786699172470419040157181503221803220447747477613008038924192431760567601412371256578230802906247386239306638421557940081161637057753460736232767128536608420860246545505429731980048893510860113554056535173541477441924295474461695930311590803618075223233796225472876081525858860252663769626926832881138093911141119738408617938766263388075156340843524497689364647153257161045535457801631950233036800970495185674343740867330630093986716395541718835929621181171761684105103666460493943154595639450994554694463967129161267177995332677023805777807529186380395737968625911445319547436467112284886917430125133577691792921279068965125264771019823025959229550804713240264464275417144678592690488917007618512806348422225802857934775268243127574620803942458744183987344049011032650894291143768629437814499302682846420635684152295031903796860713218323654745661537196539274606279357284851161737982525670400393162201873876555550833571947661299177826561380483247966099279564737492035884749933892236916832484497139631254914735798075894955359785306027225366663596356339593216490424821240253186006886219579630380669630952874582589970260172191300358255452143624714824637558118074408279036227658651322594510903108617323600041341899737483293916051447558781832932150725051134708714776113571734941949257607610632178632510092853751607931569619680164155584225905153736969488630486232848908067253340827788577214103946142690147725943396734828873620384229228993509745404768379250904922416733033543156402415470281598210228899276069828686185959038619944240340918889318598271157027207391312934387073365400764055334885885167508391043868763801876306325192548773492924160257743474219903841489625225798906380771563810691791879591610926112737813845927247491317285475357102114627742764667011330066528814824319281552985277852389966755155386192241129047176703496471467603933924657753041897472507210348399142353480515958332453228334921584265089066354947339815519536805529889775146967875338055903118874017701207390769183204199563927817348006012958346791704203945459764259706207672068353679972855630186897294251011261614678065230474792647009619675397638695139784653949299568617717593552611182304840426985553173206203089193930998012198219665793544784141955161969665014559587015392871610344104664061112530360919668853667442881717472483880362216877387868658273555642401851253929743229353784634062227380312992238800276247200436354071137214661147067524315757392492909918069011231159437089042001917296600813217955797901986973298023128365662563634165599899287525669466103126032121362599656598355508999045082240350349022608906625672276798539206688214669002925086217195552486829950682048561737114299246594552692497954113954998014223576434209788788560851071267060015027103462682195831051274203525166721334193795296755069074820002498766784801528968424314574825288703756277472289022521572854339322961363595552011369732100278622936798136712811296536568364789993828558479699772314814539076960215318390832558041464427033519032395505472290121900658383545053485575270273676932261686026082618552252737119022291495419334686953954051599392243727017492300894269577699465877572815761160136825140598050685847321522031526462236805075563566836866228805166432699782303389994252818774026903805882638930242777639236511455158603936320487186882617433568868427607854189618841756350081182821973104415482399386029417054643252894369616362203970932649427503365871408181494494375397375587227932491470031184501928346042289331293611663525484896360028451980405453448210095691923408306195160071096610703523062544461926151544483384106528701941866249214182059684681156303816660140768943278027383159740383115295113381581088718472241309902650748359913913674512498142767142173899079595215448952621220381831308503537713368320816321347898011586343698023597055239927688359029431302674019770427296979028083111794830502271691871055137070559115639376469580761211343716650267614406652966036537390371838300465522907298525477118972000277928878730768616098917287541104339093947965265143726803248290798310488055888906865406172377423679846851954786769320993671356350031350539340576059729086012128682576981765577475851043103390381735996748761268442594073220778031961135003761904006467977699101096862378829600917096665187360814786658127569076286628898249310278006008906826231792653847940680046519442732930399633619385579288912385422329352507353280822825760934742242322643442313142660901915962018332284735911339638741605238175995954975423737915614053800103666063865924619269756624184106452537465033780538225535960085070289106149081267893063512282845752756226311874972337512165672150285573787708824336450560708012622201905410641769002421976507912780058776589818956819509938788590532640586405709643602009479137229019607519666684028603143139014018249542984974953572188080724915031223737878467356256203990866541252592576518188257640598105144204038576593807300805242316069216911526132689564590469088052308632471059190569167053847544933442528279067035093621496412282652994922333441713105764433781546101334733319218575270480764263126584880474819176995709103483339706700921441995138199662798664766331239095992165080483508197833730651524328013595760756595578568936343912651609670905068807779860641574724599865989067459415385165402667388333249176377848693845934477456829395296761294186751475723671219588709932168432897182703611380175082145885071166114750436238319074925595212662154859188863756130388442707491730342255747489607798560153607547176603319591685962704162567460099125178080517340379227058081217301269726858013704047023366998185326456580708026005781846824066519805867617297399479016073025995374747992313833085065826830808921368759650323383303332275183554797994003579849096820242681586001823407420761687226711343541538957370040106027699654590610845011060830618802412243062090154107556656544139829014019032662940892798057930029628799017004288722061666317319583400373163435483977008055143381263021494749903791396211680661240646341493425548116557394457322379773672067017156765487989808477579879975789618847730877055743633781206626594773127571291892632094521772329114691979193831136025261813219806908801229374521415851782341412284619355716208245787832699729078890393758350007149093860252023008205805830986094577881926395350157471960582179847976998475822854715402096154914098702483145006684242380175964747560215870303203825806193315181173463939670164274495633197352199967748766821539536596351718753565249898132412494407827770398558288091488196970667874649627309398015951123033874220554730582034493354134516927186142327764406748392638036358841000301164289007218846791132939467159213067678926685562643247129250086849832500525744080469613689550860401125705781401573703611548129987861595160285352766201792900275475761848090836156783341984219333231151121879764642309538929752984070744465792924369528237759064652667632414509661721011357656042554366907198258081322573252668779517329414902078212499367154107438329692317132667725853612545158752783609005679091763944188219326868833830264353611987441521846225802391411225879823430287698187655407245967902571331833369625746769782536365524677126805227336847657860892889051790504484125024234006627293325313534996678461913690804801881309642906251991611642474307493074782648713255628502786331478828793548059804486084872692457386036312081494762752660947819139700405586279093049536781429322731824460032148410826595764420978256064117647426577758649502170464444862003682848684204749558487906646440770473026775421147067464365786609636495501071176601094298606411523873705835811460810129002592196213904030088511217766995839955777330519657509097472464068562065032594425595238292754874720283946220091814433324538376230884801908532042809917094617098540950764107427880620305432944428574543965711296492436051693115783626619348025939319506618095161240038941915601104037661422732045919824918651685541258813576998000329874500922295938906976925687774201914037539827935358265650315368851756335724304431148820732396531016757186068046306028861491641694504543227880699070613457858717860996797562917567598929842063346799819366476991909155348710259256703634121335314214257637768047662024199771391071510075524908594981746218473729317056464902882495447328673304283469716739333274274645815275788078704188025239040524654232336482705957394077914547685403705633654000612452201115754938414898009333890008791612250550833935830225119540994397654981031193661168492707993058285029457058097745761666908259513822867928173241829966609992263191793660001450430413432302498280572590353984619450524856075170631291599715337957229029669772962182281314937142596842420701638013002410330672045382195522595122915557822075806793956454077315845108162228530972118203460481262376389251378043573541785180195717160596824595214822037254230884026704235316836019946550518444265123932454163965714470673109319146604991929884495495806585093116138709661844727513969927820386054944620497507993720050403054440709429780032092597866356048776510837717193621781419076451413827041414454724371847359724582924088789001051622978887806009714855451477485975839531280144621328886848056408570959353668998535083111391992251484513831407776958247421816186703941170290386450941094764710349128648626836452437593834734037801983112331308131299998431640476554762868435586206837487298559302813549055320253024701658500174473302570567749403011349217287403522538182688611628462006517399977911403239915266033444093195488937832360047047280535723267002471830011886427923256691451944840718737386426810592583032774994802883415102047228138926063461721238583361876922688015663940685056095102463321116999224974861710658880600411213235119523051582660750301039907399556477189224603889970144268735325919394935464961252306743493752545401341532794416798663000784323191752526713947168400703912203433832503681137937755775354740183499730082871604272363778702400100116053373881257975593082633266835785192688319783548823942124207978354095913851803226638592844986112589498733549333010692250994741101797755348449953398927312861653077596277822084199182390364237562290022403871974273331056760405584254010949704320002408289966166959782271794035790613646662387071346699081197659118827714945854903167176067835152855302422257384241596105702839074529579004701218094419104377814663593449100281009986080409348124692847897125080502698427996993873989476736504532252864715031203217409145967365407598928154206729933791367949303156093069121310093428678986927709542227505866255600982871853908660995052489542485508553674891122227856596119127183879370249604718101599781581216874384061199001360701450947397830967256064573599021697126138513745336598669019320588272151401110420275554539895821536482669752877917372218351897934687017261104565374482016205712345353455698133956241236533622133553820867229833787693329658273920552815055935747512894419522389543529638116175310415529972874907037834913093609870748779315841679870327722782769598316378663581113193756897724407717348725139307592273989194192536408474455383169165719026806676980273334864683187477121909378966016498069357323972160006334673050142805804081568946931483631349342130293468562564786025514365030418006924011167064042687563358742437484332865509552389289166784549221507628387623223027320674730421677390581604952374505729067243972385838619231948142451291804308625682785460841726581157521321081163992368660187537561587230175068330859923859375081058582165565687036322131933700786579583448888101572121264838141094651183503037376933168027271571489038099551713264949999646964329395947039542985588009792764160988699402838203508886372539000343968677152236016462108495747807379124299865202361455412932463382026134860259401900401561852906514454015491130988642376621221637605190281181917587578919931887497631804641174124422618568493004491497491013896945837382232878769406313742554672462331669482421029056248581759034962104429524265230732529868368249911159131203650251356309426734832740571038110649627714864525067869408655716768883150841633749194106580694284484702232804288634303530819498875971943802973056520115357661377538418263682513632319493340563891241996133619642139282471432632804504560746946400201331575216700425447421458945530215823140656790750127853172551822405705347625789672612613877656873504582963161128085279939005341632060448564564814828450920292753288888986024747995487441663277380663227546243459549343088715585577118133989001362387849018652302903746159827840630363116432966483779415426294346464770918166056398272330094145863560814369759471260023131511930838750848989625400002707364435489153352484136448536819311047093012798811888784280586916233198866159074380284107008442553104281020225618847351853896572540838837794074042067152507435457730621173692524038329451551028354693185031516146189569731408034270118873170469975908548363499524064891961877393067861285729693205984929309174327210141203109069656357642395644098810955216713912531266928861533874433930458773883500785205466519305332607755640508909884375768125526637983421334133955903915377993106950834427882746084250483226115160749329237954575255961732877636131999538974655190073958809461638191949554050023769940785621307626050830194136421885723734150376290694810257844758275971446387632260426625745825308097401018946783099713414559306563134547204457459504495198749539604378257076455198038072808222126560146596291794552199782499582646486155376917655738020641702870460515165454830373081554649019974911417424390245205966734309382749987691020758510217541116142734145568290078998031380406286725065467503578596839225644696482706387785693951237653211529876206152016171345234578198769377605537119530240848098751973631958960417477630134592363869488817241640641507650645070212407686214735422352463042657697775503910733940708813164412249310531624096387643589965305346915857257559096144426024920034897566097292834940582290657847367488687242973670635658257877893042370199823850502984880423441632986543117478001810967839068194485826966580348587906544131813149276394863439182776917010729107810881914863234129237629766534779827228858358452037065122863342438517272484375473627372589181327525608381913197238497743874957519938050348536908662318483154013548949287864030440860198298277623418273337011528934461418802042047213226692049287830353996052330499061873059205689792035127638348098439836895246934462226780886568115298445795378890399679915983282409006667164351095450732250794827359479944304933717244904501173279475615998932901198852286099922791267840314226385786892403226547492807741512393042078249527429357776667882149875577203050000656620039835072969445626816586119666339361716705237252461082074483955952364101620384196567415190257864140988239987047354569373010036614459180628341345268834949978031484063478403635008563210710081632612870592873531852262552521703147472728584779648711242923468160944471294625162263996805873949853882014149095003652952374224992476256756475279265805819441220001795558540371615069141187052389434416600565305610000657105458329836331866809546973555354653780950136813084176685345134219008980321421065843497749760070751804720026516136413961534746939808320723641130401371602451593863587656731717650669065678427105259048417269895382850129248264824430400025326979509177329165382849418910757904396958642354454864072242562656199623836505012619812312037196716456549139740314225128921722080657394053311012427036703938370152503185014305078327260913443232229694854983927486997220732464122988066892925538649097516705781342794064296142607674356251937191922970072707513451357090896362813560636412064309313258161067141904193778996640362188642161929387826178860535616902377058478704809550617454562792165379176649430305174058299446087288439156523905098711945737349670719401312645160297299596875607696882155242587248046102037687559463456124538942635245575320311257491967717802730904367342842221120146117546002557635098209411088272719516870764934808489179484581769654131061104818936488237048037077515553686953749610607776249632866808255654343577942642317740946384005255119907235700308133819783063361881367104121271701824871532677166922674318246846345709925439450735579614596073528288604174905960607341188043213968306125588068880993540315811361203557502295034422716876747347101622993699948742123275678749617881401011567674374207923366301177856683709934854319058759642757241608605969005501112240048190552330978497737745396658312882137949187409018251670424992875065955830970750522016816223610401722516710647042286523600319798296455593995942469361611912561720893702661360439480867072473248974353834304668204205455956673605575121836693796321579424153254381401856369767808198571219175375140064100371185354539883798625233731903746012300047604600896383490699585455345992401458230693424987136905289165165865223025863052395164357666310851621615298948322435847186594929301185323377236939033748304054779971218766280498782670596538050238945646249907598115647827922595177705855708155365904318868258414692589590208676450962588169594693449159476345226606861345088370457939831458994617455125671831147420568661593719647063477114872256404967651871749480712936781928919605062561104668786748505764178747092974649328481269582020953994368866050066447735129482634860723243352171483896610123940273192402982733824323951160761364834595594982643816861085659960238002423220561720503365129528690898035339818397167220005775711833257511498185107359603859037619880664329669328883395315089761932363288618883496243019550561097793788382454584900801837413893701498615661308852042940559078935121285692657742779105297380222843858563656318199398104737521395834155393414747359511357412035025616200307500465700573742954174221783785208631818317785558100545195650077102465760469907748979006608884230226704147378798941856738555706959148870000336872170737138158168321485588712225582208345408845002860231788083053118640438444699272257676056002629215189092847743972673595470996196101689024744212024600304171203028560139054890937939082776400153256737985019158856501932966692530974522292509165550163925918973467520469384460892285161835122414458695261287820396616106422193559036726256765219246081385661472484231034627774765292750196529790345524482227028156861075745948845350326301256275137348923436034059928292374119511157800779078157043917614167896708281226942511972232534894751258689420633760054116472011545343985013836200272123799970359171578174302103449929511596491696366316619205737321399993329788879196464045388532657435715351837531615596407096119373451094282905641885377192596632062116165373328443410244060250155408935773234554598897811300029393956847571314162908310220544042430734011881082382109212761806086634532463790600777489101157977577841585193794826128403247180593981267296941091243359909024471362105964243287401506441747369772636130305378779701299181956641428709647581634352334987628285254378412599083279534432627923189519515338312881310518571159422800877982951864521173711101480486233196771699523714180228514817646973351825283618463735760039566434608763013285218244846114922527198181009397104349963211573613201701490587962398073403625898550772240750630539825263859419673834966974177366367994947108475705914999605897030313753786913462714441677300463630453270253443135601194699957306183222765565105523183208234684355429319597836832305065501933207507400370551008330761231073179848127304515408206625600432366447318628692101330930880905917802945518061592519853902603645641196569250702258517996763070206747708887852832736458882454580989847726587710919132891067867952790121498519303273171721672189084955413312132859709890129312539563774601604742830356073270793621749117652341423915997445161940995356913354856692970547284285185415685839446186980642273841737225262293547352974248246684424368751474338539738324588601724547277734895339536860530940467123347538888110670960316589514027420973271665925738911018166595031682155944373052342243374628926204098790720306092309802649529905381513735477211970534522413613964806617712095685259796866412560788525648099476801391642179412090250867042930265856048006758307111862653567936939052322472104239534286283674536409963987172993549009126397499614175382784073607593372078399516177639973017653466608948652538379685323526773725739302560832230858310218557963371618662868636596819866972240510196583910874381372482651974946798592088023544153603759559805386370422697294275511272114312763174306917357956376848239560253271057916618335038649306524151963539775661631651320347592146825922628942357468182593515282297480235245295291179688961148394433025956245702973580009628306938636304227465912891155878350707812463651660841699337728402700021738327848129619479565050484038286271440237590710509352125038797758647363658713693278510233481797631650952167719057160385439570585771163688169818429393788406438474406512726415908056041329577943986212723725106559866139595776554440929014732009134080086345127200530687167532283462759497060305846415286388830530919727151482594479546773252402090019734374537084165189242114494957504198399434863474495437982201604171249728738538567869299795915763965157784583713756698223458210681494082157390596147857922217360099803932404828017778308266943720659154033197613985513211372984013506162980645796806347157529485042710477247696648431849909428838620978795905100021131620403330004396717208175074353761546061397030083487799919920325866213350997506394847487070351967308312080271976227297194645946034179894030980283054640072492785948599008773712085590661685135738367465910163370643060924638172953960913771689544651766200702262189459345749255823527913422789544581273312008461763869186555404389662129198847079748299048954816323824881244244011379601668108638248816612797489972766176228495945003178622935576847005141560060737205115375107584272005146756779880401687329567807419836487157120000035279939401190796067107919152932840843460411913273121080364220585652636020417617827346587779297420564439049625536613611160206460818161460162200889424700220699134577292848395370949088740889902433769898630711761966932825369456382382377011533712713451647367644328453001283335246099516135792574991251647844514628447108216851516778026220476487532592648399068660384701763114294683860211020100259281185467727700961627320354169076642558398142837718567535615025110368745072655034665077148601821204953989561711160296725231580831653434658558748360701442749070530670158368701550662126631528492028722440201595390133443672711311046289410106793070326226441723925662124376303813173874474669909873097344553733566243608983230489372946730162678546968023261530145786757663089072441028509983558514889890213724162531450893702490455860658799383217403398814710052115872999965191359331906751160604905831198619110888508789424255974169482809825703428625097592983310116170413581267243711026412599303544110489935738896804866726617281017148124264930118727931770327972501002416607446989513480673757261302968932749562373346418161668544951936312706048130267178711077588451993732420971940187221099760246948132766883800092738440215309151783654541585131571426441614908591968021476008892257376986700094112869826350570442559227346107481217714095273892286137421381099124922701128180269461040935561231288483220135226764072538404551543957360300028964359835636679032373469804332353070846924089055762671269948413916471832498193951375206487403489297045329343828376141837820049319391524399226046808250085129034968057473690636026590471841186488303295491241128592641546781740135184447293917785160745285803296931060487110025398024383859240247523230865567676000482114667299917062970468526528567780780114910036970895892076500276784262469763914177735605027303701673899885374414352766315488453597476465000872580247024964909446826737521999835365910457042533516923713327967654390194329118395699858007622773431567508696251342461447982455946219271211561233944278135433506664291855630896950478640780348383988679446297701189245019380728431652147176968394373005599124875623938906493359686326338150653967147529564229129920635077551321321991896121372010929965589069753512762407804015051922735054470665529057586268904406369473285570937458824019689194252623277452291827754823539646970724365568080940593530139763622855982522237187312317333176038670397294889444402312939415514590246380276801466418661010663939148898727828804321609527086400086366893906295042039123359520712261571073029403579485746067586740357938432159881307647143221669498028988750151005943063404871162537306634357624505754738508077685644607013402473830765539947900428369705002213264387121187659121594492859417534128711096869638830809994627794802370616695699544960681324794248697137147442521829473332192122086894755025486522393249687607361044136502778032189238586570883547232968476557340962947202213972556577062255528924492301398054134950809358591650881234433711115822042307196988473360314842869000385349080096674781730360049923809344147107212285844886391369142718728883153044424206863106681803874599039064037314590108600246298039067036583527052117136737607868201779294221372560608243067461675560370353704961739191260125474352915292337047535195126519403366926457026772997991146331425077911248798962141387038160593763638783723097697601463241465874784731117637497178530285664888473172899715157000807212807927864262646304166939265614867927133330770093167858419948281813378701084517175811960009053244196886663009557915518703078061334668442215615880647976006425065023918486570840456965550222228160754810043851826485741903531318912716425023495584312807667086203928305648795032318039744658080783958616793452416908879637109909657981472371580611103002568811753677206796231655497394824231629025009549643210476353512047636724706361444813903140865388113204946875633663168154717727028676701229349833042975717878175904518500443921078859380279871757253389473672338900068503121748779700768750053418050836557499132548436534063554983616336634190015288108530132282350226122909360156154693326927612918042817420484818239897689489000651868637828380156579746546731580091698120026319199608787079751202095413589320679480763975093729723444326985161847533938014042029574999790507708151669391319816184806542663144849510330883589349773820093539303207865957087037827543590877733723143508645038269345117039869205382631623628912855780305019859722625286030976039635542281898343176704003320493536235030998964439408277623407244912472787737043763749822935812941376456413741901269438918847386071946624632668301526708695346142848143476558346624487327184657596358796067659102499964381082910188181701580309772710973759128854250331344931911990475291836368027638821726245196114125233156413379674041862183579749938549259411752289983047045366390485571355486607426210287923356696547359932035186605999002779633491886971325476180387953827075965843185634493321266683827103578700631776869437787237827073611445040867566099175002202904147323354519588855679300612853684669157957752763801635982396702016658988410926972495173640143933786137837252208817164758114405896670421510327388761376703227155926004642304388969166638086081150039995321101348497626077224770837621281098565479849756131796190878469137685780418489666928122587194840248030404171923850250827503149891677492766074031073387927281733917488530862570385318728540671864944275870428384841730230830340574065133990717918597699554041988381760735172829836040304632275219830429588313570006578324859168005418064919140610108352008524976290306127065013489178980377925448990969320816804512335267376726190806045629954730524168279761115048284343431163157343410799000568798608184748656921398656797739276170431512344920257101849911640165674663298843382013355431414881843356431719192617887220084036256133484007904878121190732309030352075321183753378445641260765592161220532748683330556217703609452889538814502565636717712065334548536675743703961487046064550350789053406688431113283524671197698315051630090381962345767108698148287014266204293456689538427414983665657416944666379148582389068127093106843110128435467935226873389151732351605562744868025601465413259097805601925636886817845633050215306421664416170272459646049723687905310328686551742325290506441622745441434155162853277703141778593831978252085144129829277243970485501855739721898406368282359686770345913769514839290539012417694178039111680740798798360146607568123305818981551629852731318618295060083102374756153409029206956230353542066576414033614535289350617120359516565211004772981473423683761140312819524527490012181702121333554332138907410492439010037663278409221324590278025587291271745035141347847492361897456196382003422819901951955649012634314993197013768889768235305651031736797987011488519464909317001771177505905576835902458105998280313249399225989075789319014097884109738730943501300651105717815525602681429025668594925845900491383820407653967461750432134246742276711099630875052050688869612217796270722211447106751364916149874247463353373848787350082724460316778858846757567456124225937336143427022637042419471004014594083740290314303242479461235442793529629315159646868479528899283251502363454720178734935344463998378522159525283108709794903741705888449076938778174138664196933001153374796559628635863722203001613424911158455930471788682999610772341127255059868002508251522348004812552633605258271203194911250909749594510638067404620264889562357398028326304556328344968392176892481302909456560929695653022193708634889867032504766878073618029092546972547078985573846983742174752458360603175798665100819821056633666887524660467701893232507209869258592285534183342993475167493208914074281042953763453497175519377204225399426846095836002457602524724367406238783388940676391811872442960956798327629699897108839158816978446658349729113127826871637526654494355034849877305522554985110613258783735265295911182824921208684545981671906057951849151712047433342050920008714911633380931184863048656543387743854229375851793626286152476020991842809352954359012490449592188687879383902050276245435832409943275496195643688106137279034134681084610378724702572789678891315560196850335303664326552599084727044956583418825598021012250173310246184153031806521219144336036670051836095839679072141749217053770297681957767860823888066572649501458860950194393608118091950056839729866955643118656461007908165746847016206107821813200584162598698659554374529773648643745149773698689989424186320689396570852874946686166326249529193780423775334626268141564649940217797783106981302800733096379804236812571382765442440592287516799271181049364206588277742811834970013884324228099471552643959316959978621513129347211919886787588340010243582234940943233985933531167701164089544769801263120091447550698527915811044367534053857418758703238541694948125818802064948062666692447079633289841833494960709331199515788284599152363740481610475156240287584362840170058567011229081320921861216722645667906102759377386648575779416441432708625614957447384699312505280957838739779607711209965488094508841303187660999318746891979457129370188794262176572367284561591949216985826332642269284582815318359674102769044423886319963026253479506480942012577821755296477169154159299800335314097440515058459577480590464288068738230603975226731205012034598107402887151104764452975820657342661040442766330128323693496094982128213963041738208132811403196702960407412715033734495680346958071934701626974165255207203726267274809441348803200965283648413239688864806314132712578692246016259671080842521870110263781499300237928280389751794470035029954107826380033430694950607985976047471557395930451199223508428823939582123160766621342591710619620227305080706799582723838756828165558343832896720418792288037109972259342308640382397906751158511271808901003005917432342172327909369078794485938809450534349148340878599854417164208532663045205436816710234626910743803493058228803547638197766564294004970836121985696180820830423660827809512253150377724929533921743864954023323259472199605023722691630593159276155702485830399461112153617961915089780332708897875621697933843782767335535884428582996229536879773787670673116312279690209838293087122853411167552771984431549516754822078279927723968033518084595512728592744078306153811919122509523208607554334345472117783386177707045525290275053243712578692238206544605640799412465054172019192293228322212662705247720663140202522720958204815405586348047105005038576000291682637616853717239237076730312683692239938970858209620043798042693298095082660104820930728440731830689961707628057417979008924587793121929128153871458713393287553066681137867134347231360109568279987144787938173460678043188556336593473990179157545814904749880043674366200736279008145874377823589405150089268622549174174108120457109903931044308584114773470102821940381578224816040222101913822840066635263062390112184339723969527045005637754469717502018629256968823323582900025541249044329653092544751164082101125990928851457327574738875409731037932312961421957055459893753154230944298021734828903812467709326592883026567754550953955025862203167573955545379145675856316046714002208472127386381418210712042165549036810969961304518476440038091472493986215147315579181363585515099229074626657004011371826914999038522019757913576035566571574650611473302003215687340352179314688451837245695330125654735556385262040300175669995785181777713834084493482723937126915660049101787017475412597980695660342367771781315570512175554396628085951449120175877180698331379145253818266974105665963209428246818445012548195261289032534647068867664901778253876349577481963946783444004469032681623488163337165336649887351621008584726316223421712103410179274695567330103038960648227518939438545396624857853947428776725895014448193634740168802966694272975162224824381289437898269385751762149233362410136660361608502587108849719790153325669538871186838844395761489605289455010131667903897337698348607391433593889335780334581421859069864554020810697897290352946747786209431546592745254875067033977327020807232750427422888608904233913817812036281116613088916225955210291938266742854276468161222857253480571435172175132374929171074646718209776095982261395980461064948874300718116363022167641921669402472017009543144725886383648570314102014494600933442344475112512677043689105249700040609934242647075145079985330376859873607429719853463408274402257404577683220311845029874358276075917415568589066074909190597807668215876264815864820077700577056331379817003589539450855507169528074876720313177060403340576525777288367286126285169665670833758014738269865392748580525578684705176579979141722129416544378048173431250246814813558589928337555932958231383794711218702184789384502410509471771598382910999572500059681487956854273568222265409458598632758194443133826030212454700023359657908352253777912783156951738584047019719298294981134169252191999827067335081184230581698683116641252021652602555579326765473459501494044030810751964551833639960796102835741532212383832083496886593468462134707998599684863370061858441055496340741592946633194177539983088170322806958202013501219837996500125930300213632890603065213459529972008787688710273505476413598036181954840189811698570934166390184009843726045923789274659582601546689758246923559601004734072881472415512917325351261474575737128577884317853306744931830015563385877398047458381984287596683841712716940438178102566378885965520247229067065995004616239560351714225527093302515394212346608434809544126231424678153456364069114024873817093448157476635214674584348891762589780314666412204403294818264385508044180108306761597186977876939784931554228819147608814184149952487425051492026019859719213862654950161720247392353282621166613929026834783359070418289469921978255296078171752959403907259566750031601532265448914350546162755027033613410720076175904451881712959069196945257054108658889279936837587137004090917468857667273385430871180816465547075905928621263762373253096787716517826876899161290348615552772186203446939208757804120981687279015499500937955596975875358260974170269687560811446296062883264153846445818743263496395747755890506397898419141072822450352007120113656056550857688914521120841354872407972599170502144685799285040127954300031276133864303398277125673965484125686424448951366464257005927912238837617669930651158929524839208538963140437744808077295037735570628120709956041029788498877559090339833609115316063944044101051490880646819201390650435731075053758328199947334299655544180257133794487631690811467526776776443828303269046599083228861435414144717318103789480353630794674902286373012550540631485483442457109199070657845643440683680551127618686935137450244671837212355433501270474685220026223375734258934152313124044459227774196595816592501977538441375199759771940126894256910433194706359145274084522274259094479387991483819319118212069880168013842130850773731055360637512834721037371841253820047653086964528507339492570540074674220341262961250547085548053613399664048531342587362453475931310274650219510673811029831938441836867555291393501790083928306364284867475143547583010851830275280095074250009064620224972675794016871653380105027093447275173154302189992639972608169776556992097547610365735502696552170489486332282106230089219461592173143615744021466881257474428804048634704124359573112079078070633193097975172416125313177562802347847520593416845952592382888336434305997101148107974812710747228774114376993946691206626284219895301066141362344750243419908718152512159335896570091456509223454626164748547593803230488574051695869866933097206734520880300947650365273245170198551765241521418544782206348237851299207283742571775505999805599263052497648652250997330161553653827230511618359411841758903965724955467629530999825940978294773786902303051318987971131565671179651231059475898696135780493120901732180933695432818475683088485769732392004064639745865480366592808689696995206908652403450824624607578875941376779144300245818881252021586715044758697480100445461835539105117537421909641759997108657277960862117767173377634218572470751069353593867940510566148353536494370640144226156440222114300251956895825154947058927721220964443305731237269724585000513963446462988362209739798422748835947399738102641810127997826220250299800168213183574671719524321282565352316303111201611396475110606971778224020669596170947938307193850663540468453082023970363825680726655831777051502384026761410089663224436152520586323310543636501827121420711390257485219129757486995949958596945879833936872312294087484142550223732183521706481273152436798449635189785038943446158511288771097506046446417382805337250106811020033048401907629138843782214278678470071346072600858570652161889586464041411167103469764414089460179721595727937558347008599793436601565404853926439874707045687159521109527000338687495915936718416696766893445018935518089996337110456944551678425893848050739844645068414845399825162162590179007834196780341550296141790712702379593827893476285883362208407912079017432626655807812953426273311647355536130671756872524513554614907315375710433731700194027328097063732048288598873920944387055284434910376878961687102375281549235694110167134158761629925663549875785546657602225681033640853916524429359008897497843133174009872971177084552922897287257912757962696842778537712739800317845735382841690293180972693883072526818517256358829745128641462958541412920782130037351057038419138897802216540514649352814213947917889568595779296681331017538771032373578541055754220302758798128103287972101818312410857882088603933241669454587211808601172456087820885733384963888749095395903195183572623087604130124523209029812867145399423453373233736040456805070827756915753495366797240801340489290816355928398204524847585779804024167980549025209745069076437179735075733088049185214798523086307536068503041270972552591423503700937156031202784668067367523782642956208381837092052899537908145948109682548133058408782359152356155356477464551739218425347122542294152961591513930898430567187940557983038439998328009208011794082969735451253907902399014669465739536451113787968674011680742313662177053422643239578885406726107183552300851465183403324195267215017020093422283399364258752325555455573993035272339207577160716452890159066356319112262661696705237862763733929633454069873581477399182496435830695391810377956716752929651153234508197587768545331211509788019903172169065432638404474366501673817615201541411006171753063051753197731498068502904555746362962347750137160774797365890103429487008246523211035795491555489712544873146474113584343323911355092292690137490955366952876211864588718298057541672048650225619387582565695446247928169392029558692385062609608530155072169978789922634238715016375544536107960339879068053760096303767089095234567580444579498440855409246010811984798655717950967493485763041526838910746968991006300904775597886949656393840509643299627591648973140304348083193635487231901690058180985859380600159979841011281873281472745980674899992322903127976355392430996918202757938510565665087733497326372523703407442260832169905816437727740830957229686525664340876348451458469522612335346576517326555065604495992417656778088775781003002479939281701378845386718196035351068267405121090867445068620119793855615406757920321432011261140906385459584844580943168605390985482106310710139211472737575913810610942711364784321298902981496260693407988482892436597798172555881204515894599905181082031802093609816246779304657454963041541447023640136192204614038121422019306780466446792436046948559508675476356461926018446143081938633115523756593220108774348331615310308495217968320935781445631917745984540461096266530604758251912442891616475628077674471651014003132324390079787423523023193810271187476950882901661335253869482602383392631747190179058449611782167878325032343104223272298216423665185775683702224262309948539175220180824492333230254052981570855490061958529569511306573554022610002739897383487203854484329905642091015479089194724796263923620115330856996226922685843048052002729712513868281503639691739919190181916461328668943969525685994334845896273004903637096444992816441518427466542261820597586563215458913972455596552756762630908465718181895414504044420167691708514980437378334981817500300638528500975799156935605369586067009337818702305322168571534630489958883353464478623529217955375371708817877247568507880091988740825194037740504822234010017719433083148586625308237183028224732779035466054004791764699843388242443142657602239218828201208454598958839871791187876038475891589798809357548790585277314711813107395077270128894070571805455692767900547840734328361084052758456096611133994958487368166498056502552694113233347319210306717141955998623255470574052416957279455260444073646174563645164461777554157603317497782317138118294940431253368720628692084334717042576129404751045408422971995248764079407376429250633075657154133651642139162033534543812407517859582414939226155139440068992608244171618025557119890830038269094051556797308835368924697923018505922641273000108856949129908325300218896857524732447574667917552162691008463045610289756769235313436166755489058913901307633657352006438370154270715257378807724176236057892717589126184845329015401598161719970487665743469745264425813247716963950374326048022595273982668692430945273371025651321883508948713351029243999730422189550326608340688413971733849832073647996952862718518350786351119502505040431925594484767293684260689912419187443521739401157510455988573358015776079378993639090457135966738297934957666743069543042666857860161081292434260133013649663566180564396428181631013760704161457290490342687020403036491800171288912662948748906166693022841580396639714841319081302443243945433250894114005354077210462395169899979232605801076069928554514596733979921446302747218941954197170322655912088848031593242947882419591723099290438565494303061290837529024371198657699221858970705764852316055836019227586368626390048303197785292439104769112461460928345973443498172926522690835243048373413089669895077043825952503962303972653504130776158034344338565296121150208786283171393739661161636917910379105679814783690690769708366073626642224446291080317481967219589905006692853479872599755527659544011478546670649022412766716062725460793182138183258183838875630195083287973401218470931961066247620158010111765307685411475290142336862434778374478423426390253653705530637562347506270235829181348358185779399202819750685490059409306794795559272347012466021363923728300980878065545818462974197688128301975358587678905466648135460669930617769681657367285338720106188442223395709117568085095694864050057530787986149440588683728891464256191682544342135007661753395517702440825940453928258684214644111349865884319623977257236509900310979829786875906293971770752163027780730605625439604670753315913352630810077227635548264039399861370859476945957359716019834222477042145402094942316868570287632995725843377365947803290304684020660875828889508079118663411972197430125648867430107136641761622867659723762483909763642468958358025103088961340540437257871227263885129779029764573731973408621562812883691916559331877474863554220399547831598503328447620335989419104867206500180159614094147851113886444015286473154165218552884405555572341779085993970044892651218254024806100316506794870838692398694770227538965698475127087827615118963402775255827147626665664576688320732059709883756419456629471559412248245451000281925201375730298243443088078221851425735694816396992325925979699831072680732610043371201672489683636696275318140682831038145846300551887915946798924071461243231375927848478490113388901729167999994939212641764052455416827135165147175985750343409611964024559059413934837277922208461854366976786226443417016228800949868356691808989740987764442209381059500709767334357206535738062977763641302157208163004538062135566286660807286856800059849942905992261585198467062059962893840949808108736280754732718899900388247177756571797695448827219935367913090229038256717472255800889722444484987491340852807170174410614645113804966731608685302741655540770425420086384654630845053544976267482111674950576868118642117958761659905884759994000083405928826511942780881770165614670642194625207361182870159332677067708084245606290145133415208515347033211113474926794023604077561935300408606839695472402261756703810828889282192357191879052579002696548798667632828183182020965258464299945062724049493022225374607596219991597005978304513207881963213125319073693784300135727698773618377444481354106825730915690167903160311201152303248040593965737870806590585542875111972440381946142152684248908713300066559293022404573773369970557805285320649757918318493451326421607480996707039358052945003894240177633754331890622965355320848071338793629306374281385984890926575231450279862926305823871666890839654590492900456791103259524509153426572904510799317482870421271137014872593593817802472800281245005702058308236728726981120449883908537262814307497741900674313031431423294240146804397691172691154604023302228909582104463610781859488768240445757067002260914144676426573913790212763673465866596615779944853301952188935259844204035630961340669767312867931845588696355489642684986253019503634758249804437084573161037563779898678356899538050059551334380448676644617850388946605623926749938463846473904283184489477353118986509331011200760052882205409208532594408027446891737595121012027532954274567346851799262134900417612509110652309124408957130813169993349964162086067846039089701400622746060438084556413773704250438413546189274991929086264615113592808096920676946086009464502119533770357898521918540710669699884693529765982709883703568366855489227572613171815029881338012049662415719473726719743253773137752974492388440018211087900257502649850252990387278774443049788654733936137773193872381332608648904539632306029947623482116209143115775194312563697240376709211634274208728366087497976365682376241583288577207294487247165375751849213794123411315103704017345617459721172871008996017855656086437946201703967621966408241152937160552094197181963853076413298276062010277229438126011177996719444644613779303406915783821496515096632169686699535629116999010561193584849266035567038242320493233837477544682057262259074777757078424362331814874176791562356433374033652454801684805805057627250234967105799744555335477715507934803189747197775343092918604165112396915537472275175213352163925249206341810134943193125481281159095424533654448567857174714076657525375620612298445359921892863131286543567007674966739012928945323710016919526113015115450316253645677736992180809834055981787279906157520332304720238126286783999866889663385458567817295381088430204218149384631634866540467566402655614336396068075025161230359608047363083658576126890403410072392350219551870773537872197262399992052881435152698470204159400210182954121783508263132925449010406594403141483949818598968182540199964671623463696268539613442049099628720761367505621590151704513240070761944737111855078729260654888764025582119575168250719308412674902956173951284285374393631139703302567903564281307203209421759866133359245681231632918165603582540786345151553179627979566925788584201292791399255399425534256801033874063317590614493495701804743444854998621968169878633513585344583354095236396678912017968121075397344859370204610711158329385504597201535047271012015330446027854994868672855609650321553597981289735166769009260979227616913734908805533677831875589020753409043305267108134198301791666957044578396624490579869542152599885169462753138907846658602174180911343010666039351179667584209710096876638399402574741444591878396689192410560507178039267835831013617163139998855478799641286017780178982442067103056802914760718164037942473329571070318522377404949727814102577697815545449324292969358435727745943928953564104889355910895706076673330419957385624410097759297801430786064068652748420388601115404605875841106683394683176789945681960632027201185101829677168546378367568984715462314768488602453164600178112709042300406151225370529360192918357468982881791376572593648133220278263691317678302088053987737227289456009054822506948698910788553463888862345586616996947273722939105772477174788401486432822551673032396348737695058964458575524126532410520871555784724324917446657147239999031053324615087268884523215374350715217374154686787600872805335853744619243857001467834612137266257555488477627562309183681131460745153614158773214241328261307286355477478968626178281771457384299502444599549531893305543081460646892219094730091598374959073527889934635869684437487366052085823388722144548258644681185823480742113964024471343159266089200182854141940238547927061359159928282045771650552604531310499395328703044128856868306460620499281113181583654197782784630737746334818723962422207612676491480408053267287142184415350675404898454963048986869511969612379753420254471101075982623862816627153089541135411993259301083646453917306939431724093272276848336593616129638214775307845576232531069392211162957756188520843212897314612781333942679706420777780254786025200858791858985589893170261921164604554099560742135091907606659188755279623930643123878626018687851296719220495826133545187969432776978250972452737180219828241641283749513650833201412068633823093141085322681772912718570658550910423463742899356881907614992898002023683464213022359475001503149894372235119443456058971958537034321629004275400840974451469556738395999679361524787332685554460305132957346956216082356742897450053986271804873212354291282122987144006207318266744524846468545687687834730367910010333440720637626505818298684406029013699301477981060260755785788756187610912395901917627974914320562612023038004228207773783920984145197986722478395971882356168489302270935908036867609803452435385297108419883522039761214339986379868231986095660595233953775203911561013882900793072931765693051338267984267435481730832696355814978231611017136586934734791158505357672803403983587704947950105442525248607172438454057547393382302774117610354579578298803407029413824774127742377983567061611540399157368530433122908290988179053367505245697659002299087772809070156930304970397273161275377773543480556637922777838898089898240996627630595388708769945727859795928622450091837312193750962626015688547172367417815839822376356476525537727315965378915306302459343257795415958241503051779724839596499804760398288118855097040513804671240640014362619892814272165986147385154477734087218403150372545621911767570843744576085531473858992196570718695669080191087619961407290462455666721748222941273933641410849919950119638928168488812339139704575384444814661301967270069481405777684610619012033215985057761432974352192821987904173036941790176514538982500867006147830814681196816705083732384807823112977427070388246507597393203516878967864772616129964485480210940548608666980970537326024994201119007078002636622021783569991766012064430099781275667750253414738333048499011293635890160815210156479018933741536732268670862451554861207182756053970473232049777704755351187647962763848132024689306248916337740036829034132121649403959926017212579671585809061918424952915245914555618565285014885719799305988730637581831560423591728589805160156087827689747364575373394724165585540254732515261259329401091760217818529814706742935126935879157795331172448183275504635502814106837273349013129251215328612235567745741621683201503463800442606036411567840527633961483805938769371333774112686538121148877290991322698539740879266828543838031069301231203630219348327468664227557144670145497116470244677869308431700144054827331038830047760412766300141750313104394676603898049406445938897448803572258007202612619840507129739462464882152859813260228438590351771370964424878564392835023401797241032063818574242078856916336926602298054001341264244162127135747359286528026747762301684815756254340231609604433934432803187314308611580099104681617695409736335025050909280709665988834143996783152792123461653365871359253176193224028249551571693921666325106355491620577686717987215359184229308688735971490688967071865128617073659741950924093472007027475251999417193339893002966838916565323030188480943803686432574091814224381214814325681889766134505797199680407778018282572197045229077800264333860040194968360284623318080165804923013833616821138563165417761306731666776370096123599641885256230307382696696274359726706728428210688851810260684261202929766685602502972345795547400406254432081165105148462510091255223452948415282146198755641818848383043173306677097773713376694756335369139173587249581516958535071488783797335803093983408693620729506072453528587492397606858996474678263725523696483024035506610311084062810782747756991179105737802284786007998432120050923750394700852069577219419866260834838403014543434527611365138476581230715906286969020050805411790346633112657357399344031872251921644439384294337662349652358097041802150631062849062810457289082930538197522767459073359063887560693338571382742648736212543872763715513655023866971291299806222938648177179558430516897126905040851113295033882132051672365533413622005107316389297915924670877766319043470657054924968967319511375134341513829618692847588126684853927711503015820108654224272746794024687553293441223857132325299439560225799547744809782627377026323237863592679976523876628280656057290528968732358360952925795600928885089697134232129613246731146382434440339897486720297035570154404025112564421897001985376414678921915800883228239966997749443856722113730274407906662936045379117077513233857905405918809347043092375325072065457092992951333324595234585611469710168525050433354220367861920781777606299451834668442315219714271422891742176391815394551459495522384075841169565456768197840828425726555071490199421248858642324532237252816661444363928548881499079007101571404273331947887758092544750448628847944166691314560137677231830589818885387303443568147827294308469460432306959337875956197864847686430462052894807955505665944444935579270592686664821091498151439903534444095545651236189672781389036985469932836492478579944555349938870020184178421865769848392920561633242792224982468512262796558457952489565001352982268849195987533440634972563855316809486457513073757643286912222159955857933079648955523927110245876615037737612706581583909930428016684600510459227451356802591930370057685667516790668725693371950738849705305752655743756536028618685311470713787287452795194235822499509669559832271835586638016268831078316643996575174926951354085052931048157324653080241885425090307006430197389631691456528412398783805576327363612619302284517853667186679189179879902551055332763512152120484377524917605891245784879197391527561317536466776275941940302239234172534121423158113749544982156658086643105675795462130444419949470492752947041618569407645166177786683149359242926090982190805748541037700477525577919218775492660940120968054561751174382738298608198850782732002928687814911364049470484024857635871336148855525368016301820431988220778576039378798596186878845962294959212098927083444307850769497810402695385286190745474181582846653497660664813141293377551828913135627465005443940524637351229692869032983158158684951219596099104546262758815970079003264118616170663060561450291413339643362950066447292018666009537751749015952120209414241305178342365266274627707429628182813326495187590196211298189207129023243751169306034579385439358034276658808546634552963366183873722770674709679042683041493494336506164104143103850354603592014226078043379090368543793154233253576571252890615622666649914000161639250877245706342017847140541477184507345937822128588919601362982202549861236445227162369098232409935127216859389406951547619054514908432826304806443071944205830513770177498353208380490109953251354661091089164040084992444995023325693777304002561602745006167021393600202724256500997701624890643164592956328953319909893007948771189759637055886216909914897966831212239227083416160499496104876113436762654613553019510577532556367093155927462082842664934789019498675328793730118731665410771740022898367461464516016308120398096166064064027531667046557621674111699740735579715717347117609021392016262694344409663183929894759949844552500454887602260023220077220951213196363699447554797897704364513254861334013042388045227164544441759159999955707027808961324510022659171864984308013955937703360656494440992473172697968873704319996111367321195342895341210530817809873525451786034354190643708827666401757743192366172448123520865776509550207273645134555216091892643600120513381248533592164866266432749910066835634101092854890063285206098859809689731974798604513916293587011325448210820193896228326721478050738673394996429773279003623867833482208909258993697246519240388007468428101601768854634365591599669285234654036794181755176940515504273298692201081755762502379807719631993550071508844720910020180768042209749630173422200489527138447432657639959000692604155835536456646603743140855756628419501299060460922069588681825548246288551423032970107233332343096713600422298472448121296364798952139026571716661294760488020709187583503840165763604354807265707256108864029793866237775152185031245956440370196615694094243985010471645827689781026527959838522316374631657495873993678586007271594057062534237359418777849450696706212298534980216271937016566681804773647983704204367050607472541817690378308042964189793889248970256950408136199579446567641432633277405815276540475291156510406279694972528860055797906996766368001040627361733363252828833445561652058356899118144598607154995968257715819891155845397447974365280980164425540638337605535483655918412847243208558571024397249128386417496069297646668291181319849853895108759508990179186124967372947063710523520371126269592695169901113885825688542662396066900528369819549964988876171337909014373223035322154914622506256350440632809818655114729935147837093327989899615743361107887803413845018115039996834233688418564771711182247771850747018773153534405884135835786167485497838841476309652057789714757043702448885657754962311151244129522105465916963674217500098729354267940427958128083563323177451740273796692534675387836172079584226907307363917634332642166440718659482383943575898438602726500200216686053720138937394278274900935585621657734205582638532440985607650462885675180311420024577029598539731075110174714337768891350359413201895744900008070868620922903640358529581481094813427026931825495940342261108022711843740554383232064653712374121053558778330901656921180446639317067981140060243563015598441692078369056901506839229543798745331238435267928973460968407259816793563546985438189340451592233020290140570751371458384570751882478069528134156750449105322877863680359846426944062739698769003562016487117715523365896823462812087035964841241991072206062457521493145406749025315123507707945550301089588620453072036665627231208799996343364856010416543368788627105231445774887314488282947529172729189396745667859344776034134481687392302887778658943358953782736276948644587241785736330581600797025780290564074915434177742827143391546765639956692474122082471924544537668049246156055073744573901949731733946136422798053874356833906104598906307462648698456396228465792416760254283343226979061129891511123853986112161724422893935087320846745204569712613713719640994099659275915862428500265216290267461442928046726987029142792709502572439032811923133345258764859951778305925910388201314575587924031850159272520211246468565868735986852367330916059746778468135150108366208514734342504061374329173992395743725415629864349978959392128454483074232739526133028486029849016007610550260449565593449534753258813226073292272176941609488346622916094118075004336720752143399730937997471748160067679692294761837609137956477047137405852598146977144375889224199846325311844240777986414361095352971091068594765752759325903419152358807469077996723974260740208493405671300610176293366749675843436516190322093805693597998745455221028645200742931067212598764081941113304838569640354291048697835861787002890289415071356474029654857685122683149232909142483640564785095373255160042650444778690999781207548556007404311377866494385305155867065536858176973505548735229969471201117541298710821504988304354460245353385364565322090252548564147625450414015276419380438654502192770716665859552170806698347564045635968558043988739333254640263941607211872700132122996325329047426834232192327832332529998429938975583709467783255907219089943146276423737337343475325103677225575753442432724952028776211817558254554903330676489672776111154820501312005022145489074901232757968580340330882569166459104696870698391295644045510726402156707606848775391811420417021811325285692208038654168637777612386366941299139575392968145091467253638560269218263194828681786842669307403738718970197912027212689958910164981841701574561205666382286035837316546806424026118410197520043279318745835110274699122494537079917370018046580991248840212626459501385753831353500356184212986862254114216892769909911183832488006250616775978749281046484951028003206521633668266280797480961988796884925921704445031298162134279895208221488971374268797531840150534526312714999793059833474327433373157640773773695963264641294788014796416349637007345677203213781360366033249853629541927532359591351524165787071929936895802248933006366068403219013580600326144804469917248271054881079910392568472550452866149611871145755042729226555591232658275407832625577149790814063552339470530945505553407038362855676388813367043527732554953476329025747571807580602758607487096626893520108510645332410223396371067889783274198814660847382769024855472759218243757157839058318566254555296909218856320593255423717933475649126898176544615859430843532836492753859986621313647607012031553871129847479247370687638524951362522512282824085546460618848596378530339071773875780268868733329474811372293775528779515682708170542493215583537648934391009042402248182991470454218194575202125045217275903244838188351478957072242371576788207314781153575483344905561200237303724877198706461131154797598943719633993216620994488217345122665322636553945185120393901826091137376513584987292545193163472921374526655723288246759128989695745845377684167746063081420446957384828583206319650052266682320752821543096928443458370064341686162822807463497998375588644957247415779551601202884206389462218708491311636503335896713644949423874253233379342243024719467139754969042581630711473914640277574768757243015959721843231160949557487974348113913948615636860061086516385595818705636530196073750749391295207110871468612813463443013054053129317023434144333335999505122941883440892676494087817507185341918284547459345099517088961141386724728696288528488406706154005548168974414457625917354389096263669597253776622513207418472334950975729359906221798331532961234288353765063559733390299461805715764225603941712065251640482244133765712523873883684491601031596117056251379479146214904171887135159661530128265800439076758111961277229011859212783050918015819807691460464951414036351552702879595528562540258415175469576590564626285746185530250910339088257583257528901167029488307525728301418705681282405483608567378001442963854554759501248817173886267665528616801704067583463617299489239047676297117585783892475759292538304580167947549893497430195168478233851948696051091463327315140578709839811216057117929374921033275105252056263533948680407322770718738667186018103666858952812887526605684768946175603587836340780288737193442609272896932353482622421074787003012054507785586322023511279074613825512131559764847057815031270032684082364119565217668261609083444853016086752960074119022535131699571318038744667575020104396354638907408925382175451841349312835894306500210946483046327315370431383553321290288081186882050844039428970881629110505505647690894722692924798488504983705490481558320819999086660079130069799791452039265133922912215684959851562399028968488043360427874845658077405928076775282061389658446755541680067304260551736953836435319200826716053295820275931098749016097747572785636335782962434068942261230734965776929480909894193625107480045311718936537390274368698266979374147260972632211071517979695298147038305303406040202169343944074406973492966623644264054889812822499772102752030183843355485776836404445570220002470982553140179262416113009593678144060990377264419160758345372993621675021230858509227463914710904718865730902838890461300509963831932855757958643105343441701448713839522930973848968997576073483219693549757060295351318237655509120964478926531826273231354130649971862614918469438524044447906253362504561613412499715948123835470362620810591124385851269464057951233700125864006710620032431395422994060867468404080949560410433278438199564601240408854316682260552662078573924639466457102264538755044516398980001856619230783365725733626881052724380693189490115299723985818069352895823212663135309099600223813297005545890600281348631883620088847397925701380043743688698750569522843434827664223299773899845600789476938963757307669590740882061312714461541667222788663390716246886406863627490783129212276708210763723635198300457711758888197970703169412676376534284899458214215813657316338189648103065797028274715909872682446297105030538766532079914871894747476429261949727770075706337686946178543829266486600094062573557527952015581356450276646213256751907233577063740445911061337733322405348603022950532097402979241152988605216718818899699615515705857224052203115721791528330338729961139518817755668256049011889899720708326906881119720583871560261677911648424902145635618194478126679461758079482676489143022201328228485960872445036283707656733065485893468300443386269819956140540959407422475379350729310463010103696194741082509880631067229288110656123340846642678738123828765997958536159397591956834815791703074231586389709332327943358214098456672241093312546140437709772976605146218802176006011885624433337510512899287355651963059144648286573506545631994660515520596577114082802649161558778329445864168053877675124628656620352064121450011334391664123440119483210864027902943822245909761703928995846547847838772255548630479931807069960318809408687124640165242623231763479438492702719751309172577629031327722743809937640947373782207704176220710020460720897595267740941880249342449907062805438307890419746125505594738717271113309732040823380591048652810700105843127495960148551595007831393159677847766373094505195687078070918380255894135663018803235298622761651284638169590686022165194443712552281879892811351776599712652398803074699592620540087883299674416997664704360833432994778542160662021156519820987155442059874318761976657735076990192203423440883221570118502498887551133645835925095653056984494492859050030718195288826204367647008922028201466932506650732653924594128295072885406918475482065790715510192706129371447340336921389867966336812544345339569497547249330499760738083544371462096484451364389513724599055368010287984003272032716415870360170249247335677459753625881380424129410312797534023971065829582139826906411546142653460623420458298233372908922311966518662451817132844573151392693448698973719836489801081760657523464848179991959708462222714133337705723595228059713326631230160572593864338892055968100203488711272068763793216737437419619838192952213916021357982179993364591679948489561768555139357732014687701196102036526467532203807730190705948470948023807684287513951700743625213698427019194640961383696202836416522899781614365103092271072750483898156369130825858113460866056169866037381631303360632718181180777847442474303306091304742451389413098898799268950247176906785421957273112714640274653749808253627213402080619558984854528657330035993267924090909351285319384139779453435667021871061012535078964252335076687084889824105336804690297777316865620052389428260950595443604091160599343629291291207274453153468691952346044041671380274683917645867590785817326493923361119895970581367010174547627840926314835401079646861515943757497766930270310558014746951074918345617829038208476960020672880734245676307318341675276462465401779617530523562749259508108616506132293149446497359438335433465768290135397536490187271135128578472279238042151158937781628282540720799285652641222334195318346546207615714021369015571555715064545785119394270061488419858678573070167462913518036322876731566344976126001735861045151501779882800946037675371278315104897053766465003960175695830320782293696283064568899105778714703909858744432915960067311750270223229696484465775111878679738699767046902010114440120234293497998659020951497722856842084704618850681113906675729752948195977757031889896550387253529916409589676398222071290911917086495746101777312559102392009784192844975700684157292503564830414927805045452402543559047243458550453434238587233112779935702350160017456054416001758294531154074450355986820855219394347032339430027948131844069697861960762408910086620079622311996324579939857741935622312748599735854021172744852774604642777921684081784971682673743735868076912731831389571565628110985274562294323638249354741821767139521039654507880249870028895135844861367528585603007695415400185605852264020616020195855320371897549965972326052550915069258609037953694035432375600944440343881075310422822860160344387273049223839806036622071508380391001688080217823506586744906869023777292575435784527903892356507998360925337590601135392274766789067628031129538840777668947397265339040990280918734276384626438191923143059906523994427450909730808719745610301952777047179617992999926018469894224054230323502286563993997967188727348329265763638160023651159778447158228376656206709775197134614026970488397015309824576932832482261502271770492968595332603826646653454973758988600735843895138926667935420865708780673999379471986531877886085201030943947315853450855274813585905353535501555421040817204296419750106449418460085092939865394601317800628075795828952899442996712305189956916814916125736962815623406934985184988294971719696589896136713637813546634823016292638997148186293973862246940664228229957789980290044405684947969718993011635744011819871227946781027600811081457083266579949352465282108139476608784726242023049837341943221064043321205932020564683715843533503767417178509159781200134810271320812081174132173570398932230637215752490406660850998376208611567498717071584123510490770315790719328936953205405503001321657225059544186429530733005402906562298090277259666978531379187579573414427416964591768179057823220189950926334235589553536437314106873755622176103559217259989516517648169960100626406729168282374862953224356340915300138334600283276885695179904118796295744065828286269754797681116471930325592441384208196023982007056679893490170864016422527479538840953504476317271286089194379425091909581371017120292223164543362616757210116488573969289101902695520426271780501632225132762869360105031920703109377337564250898299661567194157491350083678771828961811822272309858156661647381659120933987265932656644249474312320927373600631273387718365691834928996588723963930999016274036819106986142480091405378559839640883273254369118797696166907584341558708698245146709022872592469240430358622875393376519058229923737531417865896809387643438098042418245124309535268866759740267875357987986338610571701098090343190408215478744266342061360160268445398714327205994752950931282811178995964288563290664910119200311197179973764165811752949397277604554734193316952909424042777149348221961713984207750349074628973419663039016072569476494773213814755382839624507064777866590252389808532017597367320397153897969272909978874867755180322237431893727435259835168567853601965921753546609209041375480932305582186203508321499819619956977077215954020014428038612625045996143897568686638856057152769933743593933884504226809676875807989039683814328702215657437598664255617377072700656631046002325043894192359131673811285805852056520064098623545340445468143139541901081788608702849782072681370613433017136433595962858720620927629580117415267278683183089789622962496652200057391221492113957259106240905850200678067241537207957503109951757077803409810535629649558451342463056444681789518669479165519159285057668165002022814528782017401346866893490050820002658528102227583725465102250020903286292369341363777192193908845572026709028161878956424816501988760781128750855326105310098241084118119462338600727317495708862526884056933239744477931156853051105084656907346421586220935044161998997416533814635934986023504518367641602364707423085691439686530484348127413527372833677817359615684285522519838579224875767468742533619906404058781359000368806511179667570591427874918645246315348161431840166335558971790723518630919841653821713926836414234393099452199818718793801515154307977886684443470283921762863948622291952355406290030876572476046273031953661115923975429457386211768767313740180677063300285497282175415177172271035976766623777732803808832493514407069266984243016259679051344576485145127585258208922826713654802309112398250169417650909003075829819850704751011865642961108201315248282783078578226093567387969773197086325126727485653178358017303306860407771364033823103288540954508858266287375895206981642299717771556849228624489236211690366602033253991065698747924696205108927905066141745122620929930243721842930234791906116209188544743844334432274380468931270527061679748352198560549739832733049154405492172146726626559541795184349586581681635722450833193751069167110319567284134425589974438134206270912624766579106463639079178649152615275852084517402885509925966441639440523547309736898832234192545299358588951863821215066185767451513446655780486106149944561206212951933306318868246658384639133934897631260701453643692527792426677472584392599441463454594042119871580095024726307358957504941428622362785341291811193160717532002771087029394120335290517660282794218033914231476128073596975509647616368446012523190876434658634260815814204144348562710154432891906194771541225051454980821675818098565887452126788032146030646636150215842588566014173126017661274125438066646971417181031234513546134752947794285755033935438099650683966185224467851684514591641470528802871905118800737964313634599448761662014227909820307347303166681609096444847194192532638974156452414948823044599094752671298351319752836030915399940585965367308128384906784400430312994680458783890278252885147155107777111324547433186621210754829192676589089119579791697064984959010551413228421298675279942697981123645278124983768506626812438553525589189714574243028730493396902254411432736466319910920565869171425354576756044950622037059768206871409622436720371562582591383671286998294337060555100451317461445547369908721194981422946882365477733294688141530522467089104616899728291668151705328697130058374153861159983608893714245317319974720211110371571575101279447265347488241741638578584527704486453801286409738127392375263669189725222129401024252088660435213770773324909527811549143670611951266809301702733674248190329553234167849865798814508601558949782702419811738141656197069755581563052646020007162234820030757100672471073981297111979405166610684381740005090778808519237898687941074288306518711390514633901730414606487863532139226636400585064562389271792036638991655785138223850435235420449530557629825805564720276267670467111351039500068541481302182043863849200160565929067257461795516722919134663835711612726648276987568291267382219418961989598722857280580650883005639402294069513508528590376804165844752460095777026226639226717243665195216159788825952492950079676573876497015415976298050461996962574799840988975422873441633207392320568509479288078611883810941216848878551130238322697939615006709543550797679746875711219403934973254210403680589420118640069995077724696368196124904285684551546203459758805330850266370494025583043636353848811053925248986740119761815996741316328552392332657549391565519981510633987482301463017261125914596122635200619359050086718874645653125276827300090443652422433534967259367148771916688413612506717083225810186202390916108629669373050903694260144708522723441429057501812504158769118773750430214399169486963368738263821629804094368923761840480812189535702471353105969633913984561158234459773009589170096805625036948118237240807804701632284701217835842312820306705406495157645831964991535912797216074584281242808936344482078801731526425781994966289702258590593489787816527988918942350750880928453726384703264043506535641652224475839779417940125850963984781138399586838311361546571961264668604827410718949525484908797089429357459340925853488631532267340894345723617381107718300868779139177448281672995300761414849954165280417427707900766742081317968459280759236631084866302064783674686071890679969823249785880536938405342759575667561474602666795676758990011218777522689261258174610911802162455998117460703253083127609278418217258979830775383138676169507132344437785555635335796788223336716256493617210110139620167029617434012996625670773951471380022815327485023252217447050392437111908032827040067634719908075320379700137092001322640833073644856160779144955338934757289529358609302032989353420715900913853335063531424289574825516236807145238238542056383697156431212680394726952144442600160666741147988952430918921392070484281396450679063927893214122895719434447478531132463990326262078155925115685010931349696117191342514243175692278839080773892437141936368496697173921114426474835386011634405324857489238655659211366562439691299189843315589376159590620017233012353869240576807352860053170966322780120600872876224431972230164761451956153962475291635977631164331814535829673802359603841482923710362652585766299579422302588537580026973784766652809924572940837870300580280940417759444593873151195427021594373145016701244377737467286950884832813899462941991486310913074216521433550229487800391117750644571662984337332295966179176760825833157199332066113724013434286654992547155889010184643708164893641502810344059412277648499414454693497997074175004968669285340029653466882629937987979414544167226867131462602919832548420460221382854508932573752550525730860552794437904465944800293751840408733038339537059512678751505343383331250293532278176345669817633554489014159645286995895599071068510289279653854389687125333240197558827095426403616360878161315957589839455825205994208206463196655422721259398868207775111151951829433996774032106918984379367719747848435064910122877463013527650669483566788524345495015376602055068061108526346479740590569900095316024967698570535371903591527944235386152112762419170054991340574212015837060426065443848867184940211451022436710124687499689619512384203853665843242221227370396629311384985009859854492166674796436042667660271757322369114464890923601149424743135109170839847758140778844595283994553052876224602130198787644484047125594416903878410706449183164170041164500522979541343997466282546627726336737110034205876275289059905197523499325582331815792228792280017383268583864335337872188534958773400641723031993726935588605343140334457323562704033148473275355240169214420779290865118228365123254432237366286398241316084948623777995469247721512834291934882619957277857310721960577316521258845856229449703931603505207363056920856312327910615033724125421863970316584671611858516998851890455971344685237242021746264100211418704335479967229844036953932404150521692842615149057220775467181034250265730427150556479772059114332923900398851692778718885096971963881472696826040492509605413695344621200639957897861447243362545211125812251348014805713559166220586305974710332524994656080517915756067312327946288910264953346483757822856752082015835161173492504033933002697724365057177443400398212436845464426134960388488685929063155777310325960834064739653072514006114470755687163131509215776910357452407300723589588610863280144033100362682560622372632432640547842478580315887233556900424008036898459589261499632522374498172603687580540142398580450083618169410622843274995968932359679318438053349753092056301577052478277803202227018213139730227908857397160085502069047310462867143974247685800615712262188485689961252904315860285788294578164120809666994439954350056408420467935540311239831560121969022700693873960610713324948599332476580634042470687931862161728931702517990774976375603954757040552967808829366233544473476440030402660299493925879359191680977018463719298587185485288994720400737705056572618423030337961180013404094685178121273400914607915526194805927171866437533710716741264148984373220902660178597414335531543554832389242352004030415074089149206183624307426699147825158479691784018167160185876307939874989493872319332830498316967504739990676833822343382594377412210480811886421932369342936299660976439405398716236167401972386104048872326247087913532494874608891949759397570271617758581162540763240716536683401375869092360809540545920287066521137870569854728169240282551566667185491900929912722163573744690508666890763986358009716696389462949995914677705879566595223900169872755377317640725798437416991465363386133241803405695275230250580058811375585920794999480700886639246792324428241450053873249817283825887086919272361056487552468393903170047989195690453993493208987093009758611004713658862116442066457642087039591700487601820010014673174331193910275068665776946385780791378131262605706638557828169079742933011690977532426694529184515215992594453938634882278298670947976915335665329217936930171408667276883384265384530387378552709666325393290706064861070590700316748048724738146530915879392601941746107469210687678852578199728535177948728558358083982413378493047747530493653430162869070529349690582047279425154725390080976583936892931536737968831912178129091341797024848758340625608248741384932122378100097242378985518765047118333296182057913356843026970193787089275064572343188466499119843230666558178895935818912681694061367457574291491089238690366146455964146655246486419849834782092912126779564980901937205494448664753054428633911211608869562477922805447448385964095385949963755702412954988648810122779740260091768174996462244624202989376304536597490439116404226983052301106717112167280260670020035657297072865994765656291051887914996645613058851065476764304202276387249664958174690831678764690562699026154039298826887123129703779088062220441689699348055629394489792091750068726342987037847493077741793943411558188319417362704364893643841691454956811042134462254429435895219419165533690757582191562841913483175276191311156483706827309379465261385802149428963784533103944152028681644262701142317687802865892557525341089549464925831836586290362601951574535007652874432037334505538419438325006858254767655307687900408933685000776462439005987687634218728419535002985163008649735248475673523993060310319653109390209122807240913828857916254692956878612936806563302780057274516261055212020408553997101765797438642348488248110724472607064715282816175628632913742066483742917249895357941722205320840432555108795857060334520146759715613518452755341924341901613744307436721897457441435902201463058567130553856061090795226172559319815953820028851054885661748814212138979904381670105538398802836151381720754317291100258727456337622900642820696690620982200586755310264587375177334034464085007487577726655577538941414474748489286729324857273824391771861385584300986153054935953451079278912118294569659752417989145304311643531538212947295015097563582755305094332869800209638818256095627529426462033282799160126954524832042068009081575962589117552243020893775174143331342848932959125753482666027358679097061602185992490709690917929704167043372894346781847075991181924802181029634314217492115789277499354332608316465366979529637573839746195678223977091304163174641239258782781110600377864480178352870880236219844633667518388001672108054312493355095438051115479055418418668599430710049861934601557259952938491629451327981497532180133895730420799707489008995251404854113224640492079946268655306334932550409843278875326175831737852372338126940020967215404518413040252875279924406675261539744112586701507871627875801611307495115534193015768141925788292877987514873487597784544636096879145516524303732038378317866823325899804064695694579649236837260218522137900907098517342082838859248058275279261009561916220648285703065948441142127157872050985619942993126597218734618136153807816230413777868948716655347162949176005212004082614036788370411799600687282024508757948035319585052373409321846606814298074951731445429039744661900107913582868750012875731518950496798040617631454960699707209663114514770709668706483176566450054971147735591151029066191872589579801256274720042891882939751302890477929245871747354021251244618572113149887876487255371943968069143521295934017238460406289790397602324419746625584584304500684728386133245928691321362180369929328145340598808303197539620619004859784000976455117535503428994282840886652566139524479490831053925492499159002743841530287779923430473993093098720050044258002167329334759967358192769055698386282713830870047295539448194490135387060473807565601773476666612597587796841610194790611495682517639769230384601832703496492093109708943192400511852788895262049861500221555003674014850694935216573468878344119820674698121600885252511297464750918442220235468353043242884715079934145435505713383893589745178516544818801107354551663729626128727926236642140712723660262235309015123244083073812539937972579974417988113310129059317079997765921332329138796515348800796999112776084925682823940891723973356974145443184691110113580064808097316425788426074246806331255731076694903043282330693129625236973653314213663803379942864821991723935635596061018031182280583159150956795931764353895935726814898891353482098185667758745696969683584071386738937303673729515728645675341583148060476136725638376809121439388561746789943797450977991087770774820263677206855680965850049904225890968984194620204447066430032785841045503960098144440034400057868322545374569405702273898073931155636120566897747244171077891835597174323576890574668031961372035112034546440226407361563766308571292902923331764569885274427881012249527502095162846796692520777030375646830848167463125995619491457253747990286697913808257189922156319901285460386782785916647035571828524911975449131403065673188078451326571035144080478901774321611793294049207577286455574907769067792997216218337776328365372342447876827915485407617781730255478657310060556371892911872736843133802728072104485364079486336244487574366589575926620823883080714950367189640441845513317393158762089291218411981481206751645307566845687051345689966732617472338266362077278751702280026590364937552625690290008332017830869577596333298171146045706194947585406104842166391091355228944048368437891511506036466470506548848079037896576660973595189602711822173950140392234520161732661822617832982122321801333995941475136006511477809298660118386429647863961074275606854947476876443295753030594970778929297417135260208024644763261696350316849813648431926414525515616216399036643005652021505352303648939794487306399868261522729645565779673685129780143407190875667663540775845831954525296178528481280763390598703378215377788930304652813396373716485579683573121561104890201987464469024666813350262761498998237159492975433092911378731736073004365791870307136233441783258618353409913002232528776265244047641073883357583752543600378823546633275514013015096254842828942002865381650865565753530887240186310656691250658526870128524426062317782621548241478149310943070425492606368998264650107899561546896869770224930660317404142631980281807355685032805568598316894569563690971789581001262109477137343713894761148563466042397050374838749991797780894818825838776937246883188762942266836599367535303996454166353244144845066560698545356022436751529853255710049017418954827954931588674922142973785993753144354466790344916388301116726926840010317271805891082906249796502583958259416343268859042795115432773454556296811775667875447626964974815552154706265945716061800293787906885695888308209570311954038879297697616203397344592435652111457695483433518698565554885540392337369281276111764969531353922365964933757557635478149225951557603505493534917014412058380146929884048197399474814714525374477421820361828824548761838931193546873787995259271282764352295042814340955617668354604574995383495448572878613496706548312652153895272234893450520773761011275405107981858859285684134644005590972494893044262490605066942452315341549226905815131540945456806943032790000617987540908702574224248605141238072709414988345119567628252716309105388742318329833095803613988179129596504329648005947693859486447786377927395848822286435350004851967146413871017004197557669222851993750699912219434117880771217510695954349376757005469795208270483329281037544346873857893443852692064539137859760840364796290637007815710554359314983744483018498843637075180190159630939637368095740936423121031494984307224841655893123161931514550332023373826512320038741625279055463928130433601349609366639778574010480122299253581566937383642358640621967757390938166053451245091508540506619251890745287236094817316469915193875055574110305348580474359446577383592707314724575490610632879895618561902091183860972770137341383618772474244924038402091873085971089127813036074706502890080345568436115790346556324557043383845613677214900649889584417161003447693614707145416742526164933595156484678060337571180882113047394337924644335951245869214562846917190751400606900646747075584321240327450703397742885926745249571029454058837900200715911231680764351401063020266022008358843168926307775130474193491063193011939669497802324576506411303075128567872196001700111114396287992274098148397143090054944773871370709845912834328337541946275265180396463751080880143442084823363626495461868037970188692170804921253223124297286095761922813173449912449829252307328649444374555788719290030447902025056109715613935379044649586727346055729068564503336316536073797483179082756655415105669462648332055249774293965089961444537979699299144711877851676527644776166151290764505132122897634711428036881267348930574600206066960750088689105695988623079651059829210097795905605164470432777474704188455388281268864884209054048938310490235138852577147873459490255791044363400816110576798145071091272568970373491535850789199080314558281231441862322401791118632598888236465741891733814208029690182356925418550592138415204075174007121116697830608997515607126510159791530705684448344121755255582706156431426944288536901780041549869913189708604746431181560031288305040133931131740941578750827350367752629171848507017556911151060018986450859666510778372102740161923649833725125685568067977600195613043441925613015975734040772406957064045932240435805988509709718001580793177637971656744343305993280951550873414564753087862589805863009300583679048689509896693043838612086998962235812558166165899713520560237085457640355689136294725272787926297831270939419387859329932053825956180066963781503975308064661909159719092358825436588190563952036464014618451413107189973931104609989090799600246220869736957561450301639704829263509116937769646190167592566097513488078197306103353428992478059523552986274244451399012442694439571098558261024648302137404119459420136090061785291865755353073709705338460558739302530388356744674381450318924719804715580724673504944949922518315407028158895369578466288930576412699879916487510159425697706680312386015040415198371214079533188193453496900182674845317006566480548520761845211015964376624363718399809869564825878305423851888525146415236256497998966498203348872687855884375168290587855117453281152508598072358795571249190317006464742573872710456165195471039306957031246879143037091328707354869077349158783223825525790663696095876897620632233699587958507792528329267312432018133502014068742153558960402564584691896291487485045158926105252589232305457591069486426301693994126546214916530077301767718365332680410491797605826743134181058170670761537055594839436313438685966060683203464245905515629070054492518301184620648177873117378816599882749520866106218181924872069721174863918508315173006295007902471647225549879341743079615816869990298120885666114487455749741472106335095482989996321055938562286799532835996807050845338270131831770872220194022912045362949812782444328892059557564118928508143850812928728238581891266583833408600621476826837302719749758130545523917175838292732179103253288214351335547882431871303874956869430277745034043787632322457708283123784859412212819643766378478979043241624333024741597406947316117579381418464913650691796296318460530209183356230991404472869101060111934892777955794119982448735393578315742685963297242069926521402904068607737465705788271182239152235169903832839304784116377091181616532183100945200378174384793214376000423025951681409310216627192861711215094183220215629920601668431500732731077106942638673451281545536638438253443276855906697823840272733148733713899079724763053404165640667050473351225855484618180983154180453778628613584493992265808623090288840379112786373596230816980601420343942646362475501916561375724694050681465144589339716388766259429109647869839125218322043050898706824185734696586373511347687973985706507893543170076694560009659886187956360845813877701598211163384561770265910559765000861739316013236366925521856784389881586878831034218222358580074482024613068916058718146994213385342880310878681953554281604661546774430774986656479584662577085521949296613737384293983808362736603812736735583687410063668137998585135629330499031616825299197348365845449930687245436627503362904026770882104415051346127420496837785724831946998692724200188779689748518781466480743651512474833005045306358536580400702900658820586394361809360916233588681960832591935416982427289397622082576617094569886718713100689726616215429473282800564597004850224162895596660724091530509529853075018470726219106105515615524514051564520193411832268810248508006486757911137599338139058783687434485750384669106759653083086610552107545916792247816897003015462096682486627510329095298256088096751686669685179489302995894538684783572013368132278572405461801549673591061788604984058297742277262872111705633179499751357226732597319166006852937900887565960933261098613521520657188426882473853860072153376909757485585602666521108931998403419781633482885570332930945365077227478593131960059848369694134620965436868310385021978705685021026039992179134074561506673596593891777379420718210107256778687090513230727706391965988811014298296515493125255108252110580172856992017265816563404900764267704622235708905303177396178072292649081770316503027189687298955387133097400947117292951356758629962614849889572876654383531814684744123997615820685168985138151543301504273614133736802960627367520840430479984102094451958228314514520712681608217604038727702591846482136759328341633544968428819227085170275330328351954239201824249484817927160888733227562922970616204463637507840077674385330423355457946666791014993114749281093107980533179544297839976446396536200496872055760696134786145717254449995907029880531145857959788015533314346742362273651475067592623325732235764304678712322422037282381756577171120592530432048653288516810705254866201222377297635606516751289857865411509643267258580612702858453298563676456148706409455956856591352575082531069743823447997173472162620784884547406179458108000533636325762341623293049174512262998115234014737152553838096246850013575170559628609797855458471961422936087758689817208311069910305544239728431414328898230475765343218399107272658101053851375851688281492929819487162586318710877164728933867195179333616122681745382100196226740635900273913953194671934727736512585108184319266915322189717489386619740789164081087927660768633020827396457198624050986891416592174905418760883609518799617586423384751635091791413638743629996483700072611299971591223099878826672824036428358607151053771609170806727811859853123997428626903202858873209821150405895950811091553880539550033035765028207918700468163337288154994679437645039518739814329524950798816498186233085134214682707770640576044189819653901161884379898637020991057946232836475372130176248317320126534938638556989304415382267507311839425682242518403763976689131980965555110254219445843323461004206416475405239950553789709085826368307635216873699835895037820846977033368170941770718187959156976166490115198921308998530124428077155004543498521835282155405357154646697250986467336786551401680010924292762585858673515072051371688958643177746303236685540591446344178953446243630375780277741834678645378205513798125934313265902209657054518088288995268417492401857872453276800053490462737498221404358849712870455706554987818134586997949716969047987877809270286038544457698098827272956776286472618567778895138795695019480623536817220981686101367046782779169700391220152120084899856505377180213666919281465562776239890440374474505781872059811721570295689570892233201453282567958816185864310902597970212331296165665547190178031965124056332517337140211620676557419932086331107082324487797740417283509255306999403395277656006309755416370828770042648845455635664284712403143974042684003372704963937324483670526568309444536220249692866881393092202570526803340861578948105324754791910871783772507435608215139646824781697988868467751860782454471847224796213745315871651771109071499828167931090479397708788954987374542589189962697811440470823474632848588211559811733367687649801870688987195491547789072662509107335994717819570571458364473837871512498978949999620210075104767777326035605278683384917925206016648572433892366899971360863182671593609543695513389975318563507606818745270707514427389832176048131639310360241835251511574278769853121026457097643314723651932348807086936116697528923238444151663280950808969343103949808049722489459039411007981144715961310317329155707594834634128986514727099445209942398333560265608469620158935081674078129938490578097436419944618152543295732142306023949502433926148980548024139036854601322428037583762984846726438776935641232665433185094997198267136289775789409939739320866040211914223892842476962738476395705401579410393237472145148400405381199990905326191685437248393562961557246060717925426204876916887412338380444064839662026388382846535085667848680421355580161523784204358218246733319761951288638129951591033257831663217774780064897145580787025385005444610453410971848403536563537544447837214656006733983931095304538382642992188649256769401991975486170942624486741025457098242466726941833567007583922497998530023016996526944927285664985305533215188493557595298562874371911639727669947263221809866906330090895241989405511162309629480113542365539834882638293573432339828685536781924008081623120862828271640084236882066330189430850597533352928247594054712980120061074826907776242267305722398304992428392889477300250649460755009939315666138804612753012228184847952274721365145435086144020775674639835578071251604848837204556805364432365774493590432423817921015633237598907017311333619989757428495258208819486156113706187740829278241134479564047883332495078716297010326240161012234734178028875398540270630986465908949106147159704754334067387021013060054407807597064696176096707029931341515652333062291265267049185478494294462488550096997726428294996096231739234258384463643393108199651123687816729029563845211688960308596224523394013371076955608093356731814478960417477217692050779076510527290217148568368101226842753792643994877629508022663159166213280423768149128897299214411957309694746138179153583955350572312630174835108297939540355339578376196475660244280121459314030340351807345256395531907778860196449598036628197120214601050393416191452529809533203037351255268746493254217323535567819191056651201196201702662423566784675638796884363129247876386731911859895142263429222784569500127228327860247270737561366105218268759876884914550768835543854085106453596818373876477772092265965409478929004493684522824123763480952832000717036238895001066611464305144735939276375221303043486186081390625474750842101973636737396912543364047734468777409573327181132264396523962723442469328670144831525949238910360350316736555080451874411264798606856287988407059310684605512318753235292750520914673125875953555510697834524160036669596047833321424454957687400804380436390359217258006009445455815805769161673791210038508168393318629114696335344807932236187302106469116684270968859881378012960557451981817469026368653244399150541349846157115957800666618279642205495487923224748725438598163064127971251198206538538801502193263964286836063233209264407732241357060120713485338646783973499460110296607140977061285859254447903074503208077982830867870341487772572368957679621760915859178158249732230186426961851260608815096895881235380822366460185080410808888762958117802618788413448169592227238289957590429228122668760330182356502568330169005656040548029886055202310383001066975762382321781179626507070399211361224290191872549175104139915401277051728657852405502638016327266422504632706528324265739598941534648726871024330952373967554208496123124674374622279589117952504789060376133073746835398921677166396435512773755712757167455865104045644129490849928261289640606781973647449663376459793107709838999605264037958622744201073927824244798292257500063945874510027967520591868844003081089585565271345766531897133066821105348985324730364270534042729541127492471862502173157833458482809046717853060043516691246323585571162389651980376556993451832633319050982074550693076001546822566493534953721513257351476900563091303767436512610854756551446851382063326967259900270516817726768321906656102397972038163764186004553768353260913230551899059470637012024055404867431822254018579669674096245019984067331203454704658920228273521795497322015568304829975679413617271787938926315436535945805913139991475599568449813485195599058880138812171089802362327196259337878082281507415950861019594586736648368699617634542842619533673196115115535022439113697879055861195018188946154373128951714067831673690064964536950028944831409094673853873550306745513907429940268314663327892245894572859338562580374547082071684988222521828188004133785883772394561365380214336703064373800383573373410396715937484016575100095251973290330042410193934062849655500336871488697759712687235638955637116408147973537140150741724572305800698196843228790637576358847509096867630684093772937855166269870731640680945892297788871431623277402148753614648942226400295365420219566792054296414458021721263939220107430714624111255125615528104108700054170065820711562363821645425921010693912121652481581878724655068288963930021456641680356337608087664082817480281314311176301786488226367333825940788311118286560755578557747030317100687542579702286549864889763786280355362633115261853534533497776326443025380660606568253421203455518433018000432302365532654378321695431723190450759756603156079096698479800764671713835069530840269020409558838667695458951275375376303275430808459033255922220743705346456964093277297354165364927422642604138638525990898597346107390610684143326610513403063109315564275907677619417647795905572367995753953522763646721137239101876072543177767699442468518203992492192919459253468675928734788700452031105919991441140304354725016825354263522239112001067317270462645641361362541081313740661555389790206677434020798647170459289798231359424634516627804444325755783320192750139659513663513286744879833440969651720575112457578720321135976933248265703332598032730721075856801349366381714114964214927240238344252767986676239041748572527524717157266250440831872531604878861409101690759313058483751632891755356731244245769707611905419894411275819789568323257527080304109069606230228127609801117094048231735496750644412117460982621208248964164971100515214727516748212496787448816379506716417364462737422552921143918264985085681368494399610981556667154959364281694015856165072357668661215388852728580337881451331961932283244953355900919330370285680645555324677946553949935274836091122199091273657829387467929762955941533366499825773940426395700078890442362088463882589630862410924962922615839520707755503646300935951673285351115186441631334137467165177269108921535035885000039711585803403988159342839583581525396151299302052420738231540277629049242840000673379565652447382342447801905536605562722745062751991004591245291871881130747324628388393160678480414537064652501810116753762117453041709912900057348778254389603570436100469034554245116029905439196075367654727582969228704748572843591735969618187069180628864918124662172025714277122044343321488044152070779868183702829158798891380636717972290368724310651128818807000058387269043800952920224863920524270570356805498445891696091635962421082879609183590333313259964631266964728330399167939960404279729798776718546431239361534847696677376469446178726861125943119708539092239060986863847568892590823142704510318032500517312578509957609987085345141660792336158387777888459474377418951317367748043482632875115306196279548810691073307966015097012494206970796572573199673793827845988433551395504963638019264418185479310390309722784366751577361944465451117794912424984592823180508480875304460115847526972958603320147409344487406108772252245262210088774414485807166973012737099803891061069842456440788526672693402988568011158777627198625701851099366796587636863393789374750074373240442266609706029996179658842964303676469549952586915295049765387358980582860649511116895793116142514246216975425284124361119356039784448562491430313848834646120016366180159539490565847786841407093884383273429203019166980029907086216414227423592375900882105815004378531632831568946952411296077566608441152735511623509346364172412208879160390982952810289898828500353246822886633328613749925494761268418452886641552585308122015150708615236557931711225659631294063750723812344267995971852048310599165300719813547222270303203478811701137650067016655143117592070657029659933942460303219341233700568461873418520859068289762268896583308677227467458385925566592370256396624281295905940885783213689720440159171335864818056238081086501292254481159382428199718230895435326345278631282961983565307920578031155647920112543989303623473729303877274361231072598989748707127569578930549288271342227793013561453761779662934047499091545970818014817571726475989264870683004486608991242938871528229290790085913554651427657756838058968675635194836694988043855143613162652355379303379179794951878771278529835013490702206751486858828273676264962596062458521805377479474786202067602087196998181821566896033767960098151740558537068480581315533468346896602046061986186922509980591953402398526917263430286705341803851096812408152158277221046121788309143486207460119265146272906698177330608706990478155089152856673314885725621516000209688812926940601946581992660890718845312419034775912865675785909174195823313588828566141750944022202947902306917419793467916714330080884413701100128137142589007680175264612756244918395137581900379753281555892869569859293286379359249318905754863081949133709706083577070617887607697699522144851968647218638695636149962373986142535854250278201994834899922713562138742306534102090575010023704610208930910311319119630452836083094292385984884641291776708576694437911062487925062799801588903665295981675868449399065891742100434394203103221858260667446253157213248693191578024055875454721693589752225994569222920476019960709326011133533627720418167639146681784561491148933233950605566678844953537873738721054555902632100564411844923527659784503374822639799918958883629204771196743922014938355267820115095350340386587108744300268384772543424735834504585325106338100670974617038520667398227500822798909731611359327279333895659863429311026746580854880826995260742247830430806743848034418551082404080038688903320011879860722784626887893396059901232438229994390154556909768670396108640814645131890804984525272987443803234267236029025908554291583599015837320275765453103055557814508038317428686517379355818365606392324275544474264502656549166497040334698122161524051429082573603174060452041792018406490827192203786018987691860972274636655380148049077248976327858287579835171137467919379621644453311113354953274274892739408594690169601076335172441020377922942959965921254774896555939499661831549043426420561243463800902581662076973285002290748615555854765830115990695652066621865615198664274427587862025448666887907770432235960172162034573916288006428090922255682886896334307738824139038566265616101757340290654743161839312993950352136277941550208019928873505616769040177192113352576488376855663381271194076336979839558224075056485173944417714413961909996774631020571750217622953692071590807727629162902359879141576009930503540206745945729371184474578142436330581472484138128169867323873375768648699921372121740273084154343190779433332378763015997051492848141376851829310277929974633524442972700124030050384960607274814692417205912257619187996556471282173418900320929166838211257159895251461219523490981032520463610216090789722506984792753501288925465856430443402734115000468264053226410099201968160738441816626728264585783771220906376364036835256373924589930365009806537011043410984587645831885254492862795975067619236188530147221586639353273709673944277074178670837986464370311364666875097292579913066401272432881672164113988308686629955635215984214576789901879666803263757125834785290608245887580181409125389081213414664021205099309960585946901675150942601483380564459716950870452347869412957574090316005716342478529584034071231564218950124628465038759253711763912012108608110320503197083930197199511001582631594506046249966985386437762030336408965337622493278465188001103415040531929436351822220296871668492281670897606533358022104206220774694782699494402497821378674936308549875931746582492640403431691718834036255029474752335662965698680942860411687301631382873287785838619886642931045406827403458752272999216559128763617050120712531147069994253235586990843088213286399323126130180707817482193090079102647349800145661782867610381163163418406458069919910478257768928786912017714667945238739838668911180336261312091942955961244285535965728240744427879061343165808853553796671985268673128118575985845998777407515892148529109241347406311493970033777749348212250785398837632476552788029867529320455322345518907882471790887755703546197293819658636502632501062675543851782879993669702566165615513284508627487329007762487737967810282046103461783111238322146848253530046301552202175946715188033115316394886923257175226904492127369151855218617777769840131416514139871020440143544277917612804705914742429468446181497146163118133483796814787813408082631000684852969117477592539825419736142299572331871095583245932270795416170962548651398113778120016210144535110401272257437329083528418514137110360967908553473870087051818325036811097082268633917496854151378163463802333366110115495439382758076601773295409948253405280777746357892787115739931546945347150413941084506662621297064443257545929094867095502995753745119324014469292086777139504581302195155763077859636559562962312363794499903974376265183176107902517686678629488746011342484452968213353893810255138200859436026707234612625630041839244439229179770774790306537101771789753261714798883919563322577781731564665534249642191928588549364363351502399365167812830089335315779874417711954571767934473338024512934117931708613475639320299708310886511308015811859821942067827013308525021965053711226824598381409823138360137449187997150351018206161584486232561420918296495284600604933569323028901521579924288255594413573883249286779500521448441291669387417385558528320412289423714090090503130216162751042709781631193628746235843045563096196022456526339213595423861932427538163432572545657140571884115109558709740202346444011456613244701353005919915107579959640051518822742831674004679777686344316405159808728496659528333790343763930491977190121616332325826427270398534468598534777389654934112568956816176487680236180616492996673917941463119695129986625329689298154791530754426250842046441785621299701471622333478231805167080746503140024027568241158621814207412125391032864390391325256003615909962209750191861483225989952121672646928533511856416806348754853469890918893986528130721934047718415371070143233847958854998375832940594657957230649118490983573872690446534578989072692436337436543086464150451172394711788027461950938391648865092685052269218517935964712219083254946404887333897291790553487299551185673501202614256494206514021084643274242179681874224646234474580231451315637324269586271590271082709094413329032074175362933817809516549005714292033926945401054711892433027686818686219024606862543665298891039268266584822934497745624906481093212055949384449828992655664570308098959438164404457944556870069657090539084434561139417984636863741278862934639161209710560359934927121894218273467631644787624193500234998666775657454366010588820294069245042724532158342137988329140048802454812547609587061855069344622915298630724739359480296667515858367084864830831038585132615821207118110991632541446967579749956312584101691549629530581292936442821143752878146777157677962674721765875625872835163442943723433241754634082652436924792546234312838232530636824177996722518504293696641735520111731257562123262018805859162111049064343161403047097412694993348138364451690823102961926463638017500854733062252244028719966102615739403685469538062231945378101963930056109861375778062549548775337872307757516184467436613874087400671859258957257153087235988146723418195774573907489187269288920720877126541922735800270330369527728394730772293896271794604239993163017725406291260053317225397921187706224277933030467132131992101047102930318960671008601581701442909232426927869045279188597440044952073069026353561909956785706211796024916579952563113923235449712000310751871361871471840832701724765372370236028800109977443690520305776853096219843611266399555880266624695710279621385394932192151968537035269506783717147700910456730277793655911187649101212564188129312871644965873787770052401422341409999255730092720555848340971064708979264577124888437457812258198487655381832329651202126083370688854098046944817559220350301661096176204797355311317488487901121885787462195896059045580898809429365288388462538629076447895413487519635466666446168973477943941737991905325455621250496202379423151430357822840504051671324544848290945723843808949120326397840768703557450246599799116214521322797263533406309407610030916371133018552114608938758828378907440742071223011717280195761619655974758326006319156293785721640488266196761441962767590064471240968565976807258237633965854303520313814833973652753625824125565135709158776736315091342980504941294119043174301926436881962221242013141913713992775726547365248432167582111714200281216580394649932140056471126341651103214435923111759450305691918791049102863220696026881888827713563052386497695315107060967856224536544171364867713168078852733954155345163292677248482004883151150489603340783356843427753349803575211218943303946438874249952428254504466369858761374711241257396500281213807089017250124419635151197435442645879336464519981440561536527315245755809717538304262415550454536173983179388876513592420642746164857692311278605080112593432172295377714075018962151251388920016701434007175290208599458233265613061204042515540703341942071663497306996605595371404781763806957451655916314075645573959636631566627498230718048067484855654666456653679711648294573142779992109013924967264423521313422130583977752696801830720384743286356139379510813324098908170090381814673008216855592281625060021218403760567361810522748415176160987401420022575222917527631552989232829261348605422478006678509755469877228382591740472219981267209966410602466600588967172775548903168883441366349412631606382093564462606627898808823070282244434146470032439665720755334117660360315530639359383301840597444390589960463155194712760110460856937108946206494026376683890199231092087190569219798579505321608325630965818163391604382680358612361221021407216304293711126390380320551519118003197436606946352529132339843795664767346825119817932470341163092934589240590558811301613249628402790298232729843987127330387564708606058075760819285365644218479999138524588618642114867520919883948990339893906818542132417341524932193474824853388529612038775255739648021916491163877376931027374207606136278400089053054015311863918878194811377925409377430515989921838044196082160013583443705834870500569289607157217746189463065771573719501738976235778638615330087874618700377589272777581127178074887413809837624527802379407591199083094009087949062058872359209064082572174598106960804029893226158875978349490198949383752153418688304179073191862003272376821644801406489103671581293077979246091334071471922676806076022638094673218069236865494758632941646705098860208461858586740986706441352555038500896631783567976393716501511071382460539672751683555525206956122067876032853365065366852216707319899590841357726552477386137161196400251769696671804490388783275821347887322763144354245926172345647210817134900357563813317003220287563166625873275137661525509564354113548911556214897150900207364880884304691141566099569926783376905421717149597761805052846059546894324100110041469849331582823524653822277340308333538197899617375026656911401322038454542325529514416980032740452370472760434570963525511580649613240373349179374509164808696916404914628917529887237337048595389466188139256615320856355177527006590772045972593380075456562985109793538629693665691866396131344060330955325028415834699305023686923128709372706876584438488744135064305429513325171568667501231569200864669147613363793476924942754450739331776634610268692335353348783819294461487008591843338106162667348658866123896906319078608144472519328025253642677081922217762724401195162686900828594156408374432155218189239713576903145030835787332406388205798932757541464853318444832779110010070137128019588784457156141288296865977365904655104538573845971635340134531921195386089197617002608755372277262102061584400562501097338004256430930247870371499185318152246264599174885479117793313128713213279156111490568797624182304569743150992749750146364571783901519181608846523943135375357907470684052910597296328983137553424582860958955831082268771474133295267127933613052404052007006688401343623825908826031446590557234694396848627088851907677897924146118391439351400785784087450711582688426475318516618871555229999554386330835269832249971097882649658205370982891773704491318493157736301353239926681479524644599511137573633866382743676455345881829520219444682225295335240834120321477792855777678052763467759843498288953976577210634318314978162843949599478769376523383925636761575992184524928772634818091650514261173118385951438866615788260221147935545662378912217036923944527399252803637799099877967575303866947206508619752152198613886136592248304368777244512262661953163890809313779668943702563054564165639468807542783403729878468932524632485887039113961489755293921421658966357079228400447755322379176872944940412425706357730330964193019303445901868638921378316816655451416811834696109810943941377325072658677265758695499152969462912885774032576973461616076781481926942766484203334886176773456281356691351917009319246361850705299382659743008158675646509556270422117463144600371006551696182679256187825100555056362741159428424601947151121662144032560948436798293474502793791798545584294388602696430870635058252330122371224666463625067991372269852390153961220728452591405609179369878566147755359450686868244048685242944565165086305985622807927104225879495211102224816387809062250707891656117295955860071246085156185621886165097721280650983463944169219798918556764922956076322194059909653782001810305266400458993007040677295613342874363698578880758639958503857779458109406743963704512179011173263322442369982131370959304802662324412640163551598481677074325541634513081910417444864494793171727623842365845309025984671331841961055385253679652833284673538855072666855800914394719118564445800097543368685518464317519382026749675584829029835487938503944320122219781514668468951862595658874202583913277575282042391793825799705507458945104167215239286842708718347431134533853020417110553015496973252669649551243701456157412803717584257249905334723715461610188516458939140031614994642842585575811782697691320053061204914496997742352035125909510873756471477345798088071451806677368594864465983570415000760368588985791872565089382876294631526936204298876890613907741161530731081951834393340779080375287892933799982222649652168461903678338309763489069267174913226685733886925825973073463858978600661486262625576437408196258643126857006905378803147550588670833527700253736997416093750116395602439352209131556927882679983041002122275590607577267650792020156063030058969512987253504502911715408922445670066383900598289698854748366238605275004385699435675479568892698270435005190755700999882943534122871464777821380333606825993449608650774621350242696217819761594861305480533889411275728603759976605032423721539313030831932743976594612374419897342126262767068105701795783880284039545878250398797075961025201791109458113162648903972763790417751106543885928101641944868611616322852556543623028096614851131082354092668754872064257619151799283614753214754320354629816087777993888898147235006704894327029317965449297791864995254344790669986029025656652869590138787931155599873016643074866058651281038115512400322134988584868818219101663228440108513228309334199421771152564853345661878100873498385981416986125463013508791061483312411033845604952511088160342550928007856245028695306998461957247007504872084885512241916092728824055281193528967082253527587848335837555939453111911703536894650762783218334879630479504898639990306568052872209554520800942837173519225597142125612842000704491475403830807159057885210017087159618723321365195936047518583068028124829211620005141570288838869015777810823960517258049002538546894105369965599027164750076673544005179293310669713874371235771633695771646118860190102075404380279310590078235617153729708128168128597796709509278096697831306522658421320968153057116643149423476605539774623470863559099781601850749414764249838490427563291064727383876512770091523012387954123922520226590110947685771986029671831563888351309242859953043814678868086288154731442689870177610299048391260901283704245962943859068116836186666329545137777239990446020888231054082676929765032319658779460543572345333139358914169486632726197519017745896348210123831824683487660082665007999268167737715429225036983901880160191167308872787310673311722878768276871863080724196295401954605918580652149338409549199990804479596531967326533627446548932256103489498250037321305560268446297721738531579217021321075872815069716584333954666151755135193083538416071149002302211528748212902148073652613611168956681449003491650840621779554667410325221422461381640171816183701277956995861116690120845442841794041587990981276394377029046858470031825393081770585899307749289560840803539026083723548547704502437468848702694187092918289952713202432393758740590887024467984934347390442453976154190422926505611193999850232175327037851152572685837140250220338266045237074168112980084282924146877583918916315281051634487708279375833219748477103924146963582378480369480022753753702582045822359774170487220119793922569284936500222014061594584289992284823005401070212046688766584021356594636390399701153831696230509625973529088462678805808478703676991400861959899953675155376448898191624742027010145776509061671921897666105712207666072771704434337276591016096609432035883180202273068728705021916475629170860547988051102484547112227898944151129177663958041031681560234134874530266803142521950099096784506754437907731843623048401114937744593242490895437922738649457472932489664492726318894311974648138250076824068315604163788083849796638405192920942893866832113212688923555788483013092990449266984953842579126951330999982238583631180686274260369602220305704761761437865956296204596038278673256113348151528097354152673962716432427780120928431196777160272578550513904393716046876151805564828860146894869432173310905673709926957957954089701767933539624946609297557914134059092591355434011573615649460480797260217589387724726253519884596942295117597652071557944700571120332321811134951833946622672068574401582168462774457733343692523751975874740549210557941637747116538542619827465484147637236234409195182453678611621097424758306896306187192678353497004094746076871056581351950842499647788363050707348621940809730756969346992690318580127710080791900348142481004099572608140702031665413832007689031179289698462668729763682188446467280862266297265376652222017277278280996459848861717136469705095764349194596276979945829790253567431566072732020430385590887957056340966252048932417147496967808243457348775378687198218061277368734497128329024078355497484960780042865157079787395329833729454334317266296387723548564584630821679152969203669349233918371737905207436573200253017506186591035316545375732096464146166303274524579820381000027086910095619144507584659848752774659439482369289286792411990108518228587955981962139603783295221336970775594374272850148746198763414210552564541546360163116949402597067675700339532490541786325307083137525528429492894407967548251684263286394337777175149740722312725765888348500690724756350365548059052527893908017006146336283836747925689226086414403086453099213548193389106606810610254673235700173085352920505039005597382135822131768213811329771482794158710456139320487423377377481005053087049702358373577192077180151981044705362675847675931967685656925090125283791282193403209955525255698689027518356304308846944092513742396695452246729398150871078611456098868587228026783173342669253207223723528220104456126895631303431047858576913882985616508017942553715386478078687817242239385057241308940969545513352462938912825855473355310173876175833712800936611730643691163529904892026204264610330669481466181331757301423274550915936837904211119977712841701578858832456830945319815380834796618276031532312721704561203404200725920928512132652307543378154518911416576007921140552220641698780992212528175029087617576727281275033889653397090221543101955845495845134269715220640480678645620243807299112058931528036387231340323580600347488802778571685562665939625171271262350087083045844671935011700332663482576826781467309105496883241190038816983471018320576069494219775872309954612861267493639208557954468104861314855764341492810826121845068175338123121138295053031596892151394803406015270805440443730924722063827365021822704888759757984241131972869162829654089098746608265385933529574556740269330839692495313070494619023932608710916672091955886836099892246622755707916272934352696605116091503618808453689595051548128667588289140694796159107812613862992007773831796656819831919416652626711453137017096583854697677827803187998829106002245916366120448894931031359115671944788778822846636849361342627343869442853276849150362102011713641391277070023082986755721235054080282621314905117041407786452483154398712558432412074658403472242170041719103209363280061082506102889543673845617086685093294774292764941775397291194005214107320708775544257818360347001916389323108573807520342108585245511103467163862791139713475100275945391164545343232897429807302771110610887984658509245935537276166940435254182163742262447916637568672092591041536878102031058741443435339543762397649115752487515086573352920251800042839889926648341326663999196668184199987502315086609028195906097435141853490123997435085452236751081328246615845948027420465113269355013327023539449167808686567734589438436522144904951476793652159147213373371281093491730065999353224666780448440749542727951714678278487636781322865159016332247409889074830879280413202784173865549699778647807946884893283461160976039921081445433048114317794694595857083008492025495627790594366865324576494131179856575479423188810665019696557108003653940181304025008081105810765169246886782483670894135495372629676780322023855400449750125288767165709251351485287617298322177591661632596233881204085330903932810836126182681162635932497818513932879444285161330354065529137394711224240813172510561784547877901650783416053230193866600456451969354128355121250943596658221713885944841356842725475712568035906691029194137428778444632954003844540898716453004844107273354677043699094172054570556105531369155405452436174372797198448020656395338259470926357860484352778081316034134134521515766077957043621752535768395307222806437501571039152876346995401502473409842880886701620759360347374103184967623149291135127231952822523731775402523016446688599635687556711174335858858227869580231630823794082318885880020705105883242511170715898170553085142072453851002125565971129641688698262334413599307459203093074668018950094876692158683774426216445202676913155441652913558470438482819098227151977431260198881508362710825822041046864502395334502275472949301613801386304359649429914066703273429434532445492425443274186689155314618648424555810641098786867525715632652480133952692523702501186812985756396769179195512201857705868798370642508797736381017030684602057616161274402927993556068767660087198083466322425434698917074821199141543731227239388061985767226439749154269958842646268123478018659954697206872039058143000935236561512178613585770897919542618035187547222706002087111248455226356206790489706924548738570963089277835087694378787414711580078345027199306388411053987050599788390631234863258628786894999063749674900195040203918007069850075263666854412095019083458150617857915184687478340453953412160125403899353754901454588922320083220482252886280767911392856686149131894362831135807361479516992634415022188613362317997932109445023809099590024037678153762316056607621648391815805412060468327072869856351446971999683742961922299269770483255224784273328624757907284277745340618489342266516078376164289610568975016597282643429781044450064785096303048102670041798685855307742191459917304188375120593899202607948242937842528074423677468303301832434455662181337153004052399053996052829363305875210938230409615140794342262328416731280970864701948773799000925106957095126450491968602528200916299077268708350928368001295379892748904834196782277176363615761205408775882771105237208036890376612725388923817710276396575249221207697448692124376528135199616402067037188670325563873121476945689257734930266387406763763387394492742472434540934625476032976141505275899402866389595778110417102609814694811499431977566845732340357659763796836452646624954420097306058318749694150459685071554971337136762927395905158114199002618125022972363033599313642799054823640358567475269480926177439443798480389017262257391962991790585447663226927860220943366829108484269927163148259435002299624634863301556086803445687517261127129336670924938004882364642268336421434555392415437234964238443024291355813548557125881535032449520287108915965168248761013882690421295383243211414932814838664254524022162277110678241347925816681578254316765343899221855294132747214278756072285668012263097134627182071578569252293928942371850314021227458422052018863591762677554420881642258216076841241612349049817087132473306058127773836932059830629051391682355175763930861070531769825003796131995988767705749615971448191885667286119026090786706444872562527371041881470874654013721299028277013932709651887364511029978009936451730181590763946256674174239128684387547877116640576392137719541541433133480630539354739357623997019413826712318317419850665950144171266246953263780746532223511114761665165577630101510085542520492856114093847498627131634241921782768971249901477994882052599612071828575133385580381965468223818400507053507100954941668905918537064394060529029446513776731542335593105936725187105055796023881933852946576996542935879823122764833680356339250824841864360367413983066785572402502107578982992534924442345236351748932390847357695345424460274002705856018627313667849611454471233815759829363085097744337981086064407796252468318336066420139565977312686326230943922669425146785609270655843805650696650541517306345061940841028781520868584377307510046922100397366400125210468237290229109171616574050137271905759941846355500974456220759629214946794070453659777177461210325859427782802746176081266207076130411387536151814875309602679139761090658404913842074738835959739798498960812523068835561809166395899978263505673461567714440574461951447362585192122122703810321875064529923210260837485922528152336077267703152245477679541585667376424014061038846171755998993252182489377979080985597755133892648251388982216159720145935495852989469631619730360313140990545313461508027533332193905103111408745693214776963085113893212475688045283069026028723066549847114275225576759033888779255696511646363459132981138121152396171795191893109951556009281638779697959797402288302146180097109243810186183879463889776448704274829957459418919328221671867449021892138553137326910718806726523114126662452461748055595703389766189102897796319791523450524744507530697644280680522008120415123563638523748178389521954283995068931919110137564028561825071785579970070060586248137465478581654929405455099069699143049466628679804155967913466847671978564701918390047372070548642198628231003153735278606507897799735363786199213031436974900220343798050616267102834711132332374557125128450298623305014022206577535484457299657681361048685673902946079875428659804641106034355703087084520457367326158148498479573168824708443133612448559522095906680903775036723533595418854999153439299148746696859431792399768253866920295840014887667591531177763829880158969010377474203816718736002802976796683649519636096296836283331204378979832928351569239658965931882723490505063043886911682928847113577426646588326749874334456593129510692887655425688129058946141561117461125462407220365847351000843095773693142394841914427008407358861579974405599078799700053897978902145521921603263198291556949387684409767364501035669253904879790244605408670849555710954729774684722783083702884198294172689578295329831275053740504558602907024319083964654063454420459634666198012825257262775362620469166007208851009973632199165243809931842878568998642695037294153559247387497792449303416847080273201815110395185817841165791485580789727633364009675134497211516347821487447905861631468550363875788511960255960588895322418067327079046983983153402944735324090372261535020359025925352365858525950777187246656672093500796719325340351947910343016296515399157518959855337388545172952694007971735852085414729211525691187097475961532748672667798937488214034273886368574332858060531157806663923637993719083862839410042869428786694523530274552531755508873507527532044700293602440604028931960425991040921308023591383805574894056532815515786645739207834614725056386738201355211958671150076789231269535961823472224121982005584017480536073725033711921327492681325682034880234996426738416622792949152914865532573484670967363647658651821027201495565781357065564007815790480986764864940746629389731922413066488123635018468147099661608318174484757759098000102400456974573385383920705383025735653413836167303117403137480227110993505972504340464891339909422269804869595576672446174360559519412496338948177996995130487487076064883354917251483429061793584461016245187279587571387183421571370065931000969269552474656056757094215080300078942871138212562162589593118941631904677924903466145965818283548820582411898569784217136525244798065946660491738417838020645462415396427183430169888031650835101129377085614406567504048760217461217806492384778624540841409096287253262659107214887842064782124118782740391024200675610262628432934725001309537757400312282827741002066793321190876574381895794509791357009813257592844533870027235314359456927994763329218257192739771806279355751814079744263625117230659858662921871916872215039783813181551927014759570032544818789856078110926829399619669723990915544839601106427599332901305847231922341490391959984165759461295630053631822519676921071140917473354675845747769950410034743716145368918949481689091573450713569060762509068599782045760927714861741031460709176284040855363551964148452420867915518216053191981693525931852651408324598648860588162573479801959069932399354788203566338020792518930084552626595483897145556703583103989157612439745490183774925641488361863294244298922963044820390060497217538937402328467893483854459555238129919794040107896320038223984795668787950203383667797490522423474381020529254128181428603701865375881984311723649592427575004618296743694946749162004223244370543631484292644926165144589559466923663366520425640179766102560482540698221905672838300879396861158608218669767265965838080214331331179121614564113474383777839040639930490761335863742429609396144377433339996228335645353520444740490851020335387731981498988061691622547752671747871946234467516405514232795640691962387977532409435481230721674098839467665839419479701965103090317326994335569447381399130962211610522610741733628627216413149482589914896970295106243510473014482612070059583552706569110055205006378751810148254691062513299490903105783220013011579933513493628415603442178038460176606695115012427407518092975459706034199848314920533294839455507483772474437380882562235149739988313985215506022205264594432588474816757910462036954288802264889638492991831828059742460928925140457686310749088109984908796371233320327535781377484532683609856547602285998954069234844020691264461589901521391217214854641427992789978207216167907672051624169499488764466763092433935886708822319994379763340746801146066861435620610697302101330713883046208837222886600730009803561912948024493064676899001158171897419210041658867710332900216592740182453104713588975016504634148082966524826447767869530788303748298371200897959483015711759653315794623150351047386931400408475120487326857887854312598197421831548102227990063297248550637404449386922570031591494818998434556133059757765116919940012422948609316832816926911033662988204568976294751278584235172132679170745252101080218867206031048766591146439873192754907387724607627978031637263775574629266048910663266961553755271750808520919317872493458327852747700758252504980745909608455963214557438936020241181356094916063391580714867706282579285243873697789262483282973004234292579548041847761299264427534014546860287979064523332251031146872231513607310378678109626724522589927563293295023596357201108941149754964596415187784723528353001239926302067342860027754296734488073102522270664843409279871092997422544598949023769475534054210957583750133678838725940727222343226657872394438048372325442371507054781199071553795266924666475237586847408272159237929546751313746150618897286280596030012927716066529995912882549584523944630814843969863164502220316748409112201137532866643109396769979082563765549724037173050866880150070206053479654506276616482477042326361222278991509223496310624242767751976983789626574875068674038252796838120978238245192345880728426053880801542298959918197037963400504888877190149470707838045610140465039164868544580034219062326112674985555393003149480822810337664703259621998909979526763298650163849409401121771248237460391408911612899481112751313141385995790560014506707366540089141017064503789487830207241833224108001755644527808903093584905463555213367301037493617254667390438256897543769338549869892497146027255137555608000044624269110486571269700621630988126531661657995938723426494107214347466944337990756120497005503133881846526672783425011544046479906139153243596998562286101580998607609376718111762905234064485275821579552267088316748355219419432916898992988306689447767236262899006626530071327642693062727675880842481339275978650651817067009025684847510792653598638380278548170181718027730481759807888214368618135096799271765210210199372042653729995958598782583319246147971917356407104141467805511037161719678948830887631653885950025781334952381327962948106454322681905921390951392480342315050386705817433433186124188813213618740199699673773079397627139634605326600042987812323966369072386317162984943855065028025633154403757290470795887612965385377691066829428435605780675214843092889274246010127153069017895151501883286906456791883608724327424993291583707966480990054157711418175424340171371092072714109304219049443907192847416995589121585738196880011020813630874935337140152236851887421175000616553710580426523818278632395138153198879544551256173632550356999339989239184004053412589416894061406068842723374469719766413179067319308641557738904357336303365561460055531786719013424162853743859189119875918044162753143902611008493979530122005941978134346076236043066085686734817401359486316907179792352778876017319763594264654999630648613939516014483015223526326983713531218777387408549665025366755969404836702389708323970960009555792786991036677703749162027684933263291424183673453380412874627561928253171002757599049441467517299687724312332669255962219924813957029312180557054775574928275251457462686194168148474638412563508931941856865391838886667980356446252791340531486523145021438323197888781430312203647315468931456442715829311747384302828061114584127237944038285563863801114842168393977147492350038601058109048855316706611655264268356172059440414176308606308289154129717926058171246458487515824150975476056504405038721021584442342447283895134364732741051479146649018025122261846068897762390604837882551043244894413993962862520128596834249550148887092039678428256888966926526102527017473365914898570761132623977305131362355368047773435917907791956914490217216853804154626865179525358921984436428004738835966369476998963495753735695151461048504897558567331984898880064521700458473379453624366213010454708153209092426307052242512748118580826771717310586296109981611915730528129771734131697104102973516923993989955754739767050651346421705805392862641701321185113208612030426136807400871553758173027506448465809653294364394965952064798767933165080776564588713932002112666100922474023045587793717227417543865239008391000172907375388055775340474840262829796310721470942257952569152178515367185094818346537470861162830352143578767662776110339382570606519498766168089430120823115508858377638363624476267533065353024315867187916499446482234339804415950198345135259162896159832803433791343218156537188259172526208099747054927038599475032501838299468047029250368196742904376769105877050695272770186160546973209472546340021197109886167466081176255746015358544728730526517009982935384987713328154913710712389406100004557188189382627029654508128844328296902804030197681580637791024694836255859646341102840352400445691088387543813292441883560727187109793517126201250222039489105927477262025218841026841644692858922221413458120438876251376505885954934585688138663216670438852470369723360095077269970567914403445305017855125518220501824211088410375035925708661968498043673946470159099189626930980000854113820504732461666931801697174364063857462163052676582651089744117799948124236757411877992687585594483170144488908382045349626993709079530950743834829073701996381048159436849965549206359057427335867395879022249989468401696270229130368710123514425770440552869339174564875768831810668415082766460131377737271806641486963088853638643632313145366983438197987480580925737506317094186259004777957829632442372278893793669998067900615353688908085695305520691060675254717081328217757058024294058812478741195954763309969536423114327238315677399630986083978176904855188902532570045307596586445295973213656051645102178976456689058708068021373072511475423403016214342742491858131946867082146190794941002755928632325578669921118216500260912095837284761250320392364679865820392407843895920685874341821831563566405270756580858279741490467313468787728069751809340450716027132664046180794224804011140561168443240037078567948590140049321712116920665050211664598939734035990499395481292467776020940613566509274894586150918257253902965416785220063825427105134535857038569269960411207499538560210138374999992382972992891175996811303050880037749019206764772408246484895443069481496530918584872975132801944090387093866094765025148290972846028275571496564750783449098040739886602429893363649495876344772296792972220837976096636416224558869313797482085061459943213860465741765092437975324641840374451548022619833883446461772665472782783131737340889844786004370285544560465879911591622528256436145969950983458532622789994827407439920714073926749073009250524839718242170481217443116202454887142249668996786530966230376767618123362175383383082381226969975082767554021973456732930380401332716549125404022824681373497757691980011516146005339577387681478635055574552309631160566799833674808208874039631880910412258440996170360309264330956051435891151465014720175813943359576480894327142244384400687580520932517368632980592218339324940629290148405772252479227049345256422623551014480731828536723624957471708203695782442055361919060065214582582251347928219837259657430284505203421120673886145845683644135143712990301839756595358080504764133420562943764975898278960075775811344315468503745482329497941463895320885055888833473074408899649704165740223965332690036751471874100583345816096865409623149397448920751726972520469434529210843180252952198263242768703822670775611933255386190523049375249002329712218029712545961780582812772948814008808550339742932558142685459141163714160942603950338412227767769612057299432114321017270566881552356512731126481925678084270594992743289517556026451265171949309186144609617935140305143894494491474466939305036036439422033642109395711914502173392504581784696137033131256176767352873239707670163740943477639248713610959479854244443276863460738589821219393917106934970737868122416039969376455365300337196659568116548057711753963673489095285015663433057375234235052393276591621941844067750846305774615802226664055730153327861331860329820073371243626572973544874427803430074463839732970629589999807309783639981760045201836992596344532817099727250576275283172864227782474925120581467735522398529964995795297072905097310692658031580114166749541465804802544126187686673691961778456676688220377969663510707800253145220033954456015871336064486724295663791044133476757686681091929830971812185812710632239106136077131156792021579142348337086099329562711636135914692665677417905757418956329122042029460130035858478892785750377535544151284574294260946196239224901065334918412133371792828723652616091249145704478245097086736793275309242101274293137289973821786059912169117172346323268587968301166382738499707118321630975894568685655265891421296788446131233569657540197421386821152005387129192208152670022796801026457347576623809825519282653997592140623779745378024320878450646667848038860352118062168801470706894444377786690286601433870553804240585059851939303400129828573330632052807849670311852453931252999128693694370542688580465105669452315144068184415389022609797235055779058147616093165812767271777197907349469940301061733784043786968449718182121033251241781242914617880339256867345057952857763155177473301577290084253812797484449876492579768665451751343646953717067741608838274433937348036089971895092165828228558245768820139384710490860099332016597016008487006932899051010313745616410618188901122055913927111629286161154204635383636726650096942354810838673189156129297506118917948163861941434488861178823885111123561141257197276259862169213496875523350954391501720262002814112532900266004647584014847528116737926455355400548807154151453801886031185665700723599225594372191383769796877703511263429197826505746389281149533371923821188127095461966064486309678937511915451649846852713237366548393464711610416048241051493400412952095976737463462701184890798450080842926346731429239506396974950233833718871919536572424666161169415454491860833516437678726959017080488647908635478334120654605905055831248559482556068042125186194359056563052495089481648694749130944124301055891242246086424468403672033019705993438550161699091599955826427384374697904778092085752772350622648759415829774499718298101803001057821900420734026239375334576182887801060882908666373168506709735741169602465764578561519410696784549344555364017708931745044616573588465297961308047425628796369049282602894676151533223268650067449373571351885410503765008666901213914587478454686348388501670655352029087888753280802546583850455221085367084056921330152861624037044465232064314585602929763655076118752951691154897149140542360455781921958412235944924916125343320277122151022435302172447214768554613951246302283432366305416591492872781743821040642277893685707190412229181231687255228388431399757766866560635301857498357644573394967548217745603200312916513794035922986952591908917212947938052959181128717582087341082533545938858833061730090156542670908600186775422294082461923596626207384101954812629116548972760502673141647427710307296033909121040172129598220743247250156369705428505790841549452838796895324245351129118946121601284348852629925337108538196432581520623520465892423248961187834444773200721693497344789531439966590608918984581288523209061811216349635416044495764927470930127774541027745095686234849852688722047303728583554516559862434119916471157866890725652238235290993133111421396528409383626196117389785554338613118220020869309299050756331409867655149848494708174876562553757549531638223391982856589622289768012933786126073754873716225870017863571743155549092249628752927042785718374057959756003610877832802056124384426738393311718726721707853954151570396732626817912145881553255353800099650944226917364898173123887019121013366845522413164468147824573354799574522079570326890485101172465744033242139623041385627381639786174037863805176049564726711022398290909374030609542304156480112407049938190864021221953395910199545702376065645449041510820403453993041930779738343803332767822767184226317262558014122305006799746442361395793192396424675198501433217520277497116424086774145156070752091259376728990054053544112028384239357949016808681465108587138657318101114666316415126264091507112856695452926787998260841717190753041682838119365494528242910543045461951997107182930136915854332765987322351699432238394016567994990833456069464773244202784715770746808510212459159232647464848904206244171204686391012404038991683267006364635047627895733439758901782446026952986749158771821542189473379668716207186002896028135655037278024823560446672637667457040867994758015032962933944043190880639739283800747509574416202413224573169113592322984707231854481113406393537889082705673556138300734030771329165392278615622585884731055091114359928338193025593113127054473610982738866352299411228047544542810527427429012021105362230840642114773451091884645282134119361195571508388764561554924752909181282043949472968955077110638269022482542410132438507015363067139286149869728296930509407761095759257538084210523630163465379860465416931817247138748264659337708799282505603889575846541245231140716216054603972702979273473607672424551188716245893866809167342343384591651475971446754298827159987333671218933381643813809026909494793380920843826898776205303666780881321689445032740922354309002634008480368482247775172057883724936372045215342478986555321567976942649681736635301471213649440615699225891172143681292548584379579610773182475212100913369613252922536891690235984360364787739794345372559435778510815124217276781772060517394776333367700619693947051979646577888043156419201782471387570080209192798168363158382965017294699007268264536469635898476307858125282181961948072684667157667815470949510640270435809149508829144350707728409795730393431702724294589687193972510603247412090943158903405884089296202677204977034892218183699699228208335783503329795130609287442564006215585552324801298256936285514650597070273320102574349793609538683590960387815086393473006578635166012646641602338351182280302575721608319807785552098125977543033310836735503986621561973406222656724199692068642075575368594899198458974962488565273926020051199456370114251426327613692498034992813766914865153540874437636993574831955461796457264164507613194710394049556714631630750695423778512377079695853024766009832088790412322682359281966890186781835594876607647169698202786522302841357379294673417735914341792434973564944953871332438789945824252297453503908631598570384410069047061996478735590727785471285042294482187286699421484531674409491558092877789914704528589778284470792952745461256537080152148709305903406493272284102554173494369928277623771912169788605036994757667245865300792923847307651736595284414557831428560763017474667841847553278517722227983215469490740338836643675152935158764110595890645307917022908373477986891537972276386040195684595633168455242002393648853931086712930009756341580893993468258179538120588378870011429870491888696106451071722621282484055399465295472887908715118113886572736834953831102834590610329321847403089987750044297436481927580128398780141775515299248252371643260631650602429396651365681192219411613998925807206387643422492261965746796793801597308331011299911322340597213619651828025275713343389109135750827542280785081573167590021984229757042731987044876851720786049473667010271098398603598452840237701236615689550421196570214850000305218732531254147070520189596932013467103869298732742911806785759706854458262898704531434082940544709478954999348934417002104694425997308407675484761471229117519057243830698050455388114077732676463301931845593524814675304314692710308085420724174035743589940138123623137894217796915717702200746453770889700435983607560544290657091083845139814427654738804866967917765452550908748030871684996637796036261153917493395237408208340423815876287949900142774972028880799366366392711675296607040028795480735025620202327053512822042263988969820625100786879977272655955942090360994648579775246389442351631348222170690064949723249361708562669637539622232880675310555396162562990809036979561237840904715035789771084223949588819440158850684491645635159804297400707873325510138517025887875388122766993788580939508598853485606420426685741063294902017142401811394164974124570163998125790756889782583094080194237826628886602015837176979214520314819203425063581510713615823391428213894950459711614119481600261337359435273633392157844574937123274241561593336799292663901855652707613694104993016962515861273229339210125560951803003891632432077337588127741255606832428537203454167010869987284389224730597005496618565445819440235730567204665526904046446275063884090455114696629323399423258597102876333274081421199801289259871849447255047944672128823177883330367981546860775190389483734838127796082252904528362065228416031017620170043504834805905177985808570669020458228341965777534918660639582555674020673409840368894487657355035386595912919399096699127231365724834264985187155896073342306187116394190071378329647122851968791110629281878210082258474829194915543780389956878144593013063384935977770829190890419980939935800141062148304597205073010130924050093121845550737148237949219345372092063082958930076901884687252490242383630956887876366405111864448296713919438003005839117694139387075232763238836194628731136313623202431554217809922327722211681979276796555952976666288988181355424275416723517715153036607410414355318577993978092622674569130345392249474071482580729377627071168612127978485360660100576921807072065368421907462626416989895943901733268974451750768691505505324791380435566786337326772239324807404863568990736613138835721169631331604031642442375278656009401693508128010681515324995161025237857862141451340611368559068404225794780576468751910485966962762491717257319590403597678063462450421262541083324733251834512881114396608685893489988494527732191542173261312906615218905715909578780243688637086462005591707100687666543341509734773789335370418097818470925501721894094579985037598886329461974071123385879973878232823604765741177178191675073067629924994540721387105139119251095126215027088100374371592644549602456222019021192594438523998158175853693508054578060292759572275281230429405808359078440053266220956221727945448849359882514393454143912439346552585085097022712457095620501867984387414748557538069685869184600190850090535427336281804511542334920095542034644881191207482492254084785040907472628589318499410003250061365574072915166279445054013161401705710566742566455358760006677625949125613673261300465321340231239362924866216051148856459510843270157240143069723706774086115580403593228643763209430424477993824854609063697364874178480776690577608012567817034118729954095173805896099181626980503655394231326026187075045679892707909847424967997779790477508456954209757014341379302924823305677884964437075457317417478182316860437248778082186934507688978410670793079534835614834460035817704215101927542789598195235092691666258558557792039802302873991495008417534246232423552961378372711137557412116161425758974139618191740717050586311531631534756678266403557994367305280181907783015603665450949569874882635250208907366958099421321907116778185987354053544289149160717679191530093939395846875438349208915828469065534504185377578648461493207039241728434225444282023457107225359487569652535933642042018844732686893691028505811328826645150805401710586954370940643879020688423686095385060737917040633009406172945615138752328800174987292017843159906253445315191731223686011617902188036133466631886837693233110786180652065325834451252368960788597042782289666501428063561858761616248798375564414007548170808797959530848871028894381274450647303539846699707399462521250328385419541225248852058263994310412358995481424493634015926040253302629613116239926738584272954707224311801681486212283601650531193404120203546633304870239235659693955433202487769593485316349731577551400354203631493962459653339905260678324028604555920900950526267359362966419830679963864008974004013043782081654387321582422345820094152507731724050556082904244078706115085401678824233427888435127882987098713618411704112919822394631699615791642514146649986216373482462690973029630185857857447472407836983501764682819857825858420234605312131031258167913000834669801179214439026910754801431605796258766980628352494513015112781615163315494868101703399668121625897830186574828272093078844858349381816568107199521059796411650022046678062963779707954079930760648986676208106903451595063735746179429652096189311999829977221182363586724351929229298740742032051080640780888815092237482485878665611505593606173015029059315108606127123729206440860096858840330378574086804486584456457111279609125304814321002835532933790604613679404810562048768529390754360182294332484695708696597989794151531161017428351321789768957141830894512214953358017351660965741251225968680118512058064066417537377303597878388625546252712274377696861487206695992545288701328800338292291592057443690405575896387599053955231571749792074023189097674474970704579993800582729918540843305187851902869926232372160578386292694600537446411369802414630678940577309270173862720488592492637567174775664713962266818616000988454234516416071456720374487234505672819134869679045737683567590705154286998192137740402945839379529950164656079410743118036420236202174578718109724812433747171657751030395415622499191577558831723583619889907033186273445170035175626311412263132921664568517133221749949226631845335584677435744501711724007121982932988560551510992246052341457212288315447359224023258348820362078185801277236904624865814276583312907595126017490217684750788765554418610055858879470624520129433621662653444835206198170528716512415799450363921773814487273479145542772767160355303028860950867669572542511913545792239162535688191235690906470884860431526894235570613765125371504373845946667059163848350411585568754573165302583629194829850166483431515065993508192002626131472167820139309502241017507072939382269613171716777014134050008194339523112726611255885332086333542448135247554601432652373056067832244082591896679474463793267599112119720030795006164033517242268206349310410064708788186240235568465625670468502880120144231185307585370286890108719866841577509262192250315192381026565681251107838642971551797410569090701687083360242081220567844353069159051725949813681219987990348570237358084252087094098435892472795221611468811758811944492002772622647558406480137727069899888164611972013842691538764199354785003970870124489311431247400219461848339152399622911649707901881120509803355333337459782552007842246103579914073232952270886282402866726609285388143238067676903208394242893771674493417745829363335997118029185581773151064983406606312898850721780651857949344283033266638025174920094895282007382034277661794834273515672383911911011008817060999937657019171330497611846756025442489373109859664082752380995478586496331299887220010887074328780310668957519667772886888423323919460728806479499353218213437007532098657437498099319356388625415041482023251830338416213749422739039491842964501672007601490436202149972711488967501783663097748468249034357313643151411299855855376202829251337417977519229830851357760779523673565073419327113640584701064282857111790731469142934814498101221797380626274748792099179839126992275979767878368587797555938822926752518500032607923637051263483474407245179150678799685796413183551285432179711053912700470186149946987143553429572605107051496809982670763762129131691865135184411091819444841633974217078273271451891179839129037019475671304934117983912203992297412481449864771899465309632190282909616411133948387909446110698174958866347890052871999492357142326399515327277951671547231421739228401406492317352585666390294708446649740128555769283276695179156759195439870185912288653343162947496657177326449003648383729006143957925084684414096978578455795001256247189035337422472918200766091245716968077507395674884932985373518172092305268350713085225994457315602119533785115831739107099434575456280801314145738618244476602687315938701952183961204282683756743526678922243693876430057806183564523850838784734829098548593690531238460385889701343557852603522415366157773461077926483035966431080605463339458654504005167860205831490786786851834848333527846265777665335291990053950525561881597498203516805334388290634660914718077750642351473232137267132786232303258344719833687520789082243447218836595830638125166959330437207716912414146700387019391441836610335690255883994567064515481662516437763139183408971464484664540001574526537641298093157036467648307653482643572535069278632223623663465136524032477088971929648563644145463882180289145437628816420326942304092255366600987007140693589834825103340722467046594363618186377211412400083911339797788592709526153974547208970750358622283132106858834401377202230254029580150931069685786368191470561883764480816941552591269212417875046201965966415248479332190445342911986831049367140968076521761019174994832288170055612711331169881256600970563057606578443446287204602752334384806051108609697331315098774715432014292359252871795744944959552429386805993851596620384276184355882940827589074909275183471037847640474452901286594695900589292284334579248173384972745419272297106053561189075586957458170299256882091574708800252568465833451873335487605268472472947218022545924642542286204548661104323845097957809413162491658608466676704913110859100075070627267987655384235137059511809809992635830442215796627148973340987202151526030639033652043827736032882310009522291179394018293206327477965798270844322941595072015326551161537778355682114824380538929306610828040563570390875892325334130757918580740273947834813187928363936830024123053870389056650779032513206963395282514079385905766176536453406670322297526582274436490102051356763456445996146411195469134109033813336583900154532068906138511561494849817879952961741991031905724665181298971934363305357436600177373863563042095734468704459771231604308286009965066258364751914048618395086444900519708251614951374946401254900793141822674440802439089505997808269939817273705543525694391014746773502370158500478491893577863764990221771784092750403648848772249403452291441296604853834625305752405057688959696878422502034055858763520214408874655583627378694296897978185830809994947559609700376924969746886642638765996637938469699886688976531448643134035665301748543803340744581799620306950279206327228723430737920471847611282426045062028287079206062963301197232970378121625544223145018563740175541934352693704754358823680805286439153301131412511399657573394925657256436613325512489994803654124887304110633207358106201604965886257001613349339029186732017865077860523366470759733734602030610657553471457317678595166359302797953957206492755450731504226492602533545109675481377786579942259628785429331380473634620178130608671762956411627972681344823498986307632522628993809361099147340380914772121965481181031717678272998143683751391348099139316636950962889484420036096501516293933748595789076188903986631114024417936151679234077895230388262567718372096121549285394543296857330758746895213139625014049011039556333225247824084267365651019576895287225064571200063994600212345727000361135017838108364073520764384882381962105042298450613520086548424529054787191354772673336890711974191836215507159184289467808892445122804483294494798922451666129506832022850074592057475852441268775883601027052996555028020695547701692980926396905633843591378382992726435568189633633212914339492199747922583746491729749969199784091971632798674549603646027491479587667660525012919276074722802334164040008339415750472322340035013575188640760544433945348656038309752370917923674770446551740137342566619450836398922036150649488887274916667723641709405462715084267610379162778935105410102057726720721030621396574116006355394110488252495289068271666604877018387777746761883446843735810126466865741059315866302554527764595515571054589373024517510795615230100753070816054444944130989051060036086276595333597473228974935407111307378485394533306788981166735577784015450714159925497007976723692222619769515240330769696174696952329220970995866130173416326094291595153990753241303224750372055715543641878571107575695470938033339086508779705749793154701670140656934202458370860329208574728879083252450621462084598072569115902371215107103714006237272188222418293781909295868442960998606415241159428999450683122938744340154188891661568239512170216681516682549801335792389542486475818930487684713661969306169170542698930181819304882429802359987636810695863076187907684151781357941210004493336793634596059622286007481008523824000838475565686592503960632616492087119330464989061902244572660164238558701551846891365690485350342319950350633723824685452742579595255972230208754744672831501278381012987757225415645920017383455952321328541973470589801600834184103157830025975730763803655296240485045314011898263911895616555137991799918546860116509450974458899840462327785598502419841749830566602371354636694182394450589000543856823270564319845803259211667184447319026244569820360787583714080067405198210628027168784288952999892768939774768833345814326178016945751122263988779673875561914161172767923829337081965782933215116905248384535022203548734218342307827165921134168751135263596490582911145731294632585030732807197071278345754689943927605066790272113507795249929873553380393207760476319330586913952994740122978258978775744523162610091312710759782621948496925938928278793609552761633949976625442759345944311056549227963235629600842306285129565251234594455083413845536454386974753986720485215497254242449629214087315821380107434963652561786691043851750466955558607108700352005528139203349083778992074776654627812504671415176430315066332448396710907044603819519334308926515882381141452065205556788286260668008067127553955329553014554852842921091902814370096916833545591922940558996700196769607896979683129343625914658340654836836475550382670541664132026952524889811142054696418446038606434490380682685040965647685463750858304795958352233649676208154942592641310618956745875116658074569909282340535092066757866321458238630508493453888188757301623373831441237049674237334528640276636783166884229920002544124372754651532489368624685925088321827205983176333869586576272908642874567677920018189953270697255769083010752582701352240972321521984719345924086031874851275899529780755026452414502409908256933623137100654523811907881617786596475033763764978133904572968961251632163882294402042710363741711516008450989886404526263777028355850649630687430836624777859198827473691697748369274084023743494946650262856582206830531716849135938580122932729153922121554152186550018253130006775501405496195443963860312427307737777455744680997866646290832643777146823841252483045539628685220329251288428297450140938625661885479338887996970271178643707364500232410815379030711155035597323438324234396729116524160229152736831688524985435681885837070750920160463806428044410293138825923505415914127568828045920733076406418689769704012663360075110910750574305586422563656071382549357922728354026311278529439808829619256099511593642783197604417977403652553021680336286527043862753563039340724129470519353175287801734247341297127388518940416473878620883309315976411885192696362761215629060543220065207352335049676403310417861241381628695959908764866803713289546978364297034330949312667564804832286958688054839901660849350920503672423908300260393932884825661966581340808289792631089910966670703460136143174991777340560704734633639972672986838099993181738271565510724695832837185501530283229213126576323042814241672201567607378371807113958910259195955455857968230594155393746142268168166806125337807103156666056780368310309830161342477678889352080164608096338084263748929559616112627762825650575315592992557002073721633930066171750864512859654544356063108716499484730174992668062654025695512636584217410943325353591180851941385735357109219462034471040993006329164452450554600370590982126311508329293965719617051967000726859737907945519445874500165667143251204289907908207534296984221330709863073742546685359536925407045537691290970979295395493430981456605266679833466010109194426526981661075592861597435186812243412536260067257431697708553281576871558805425783737257047713310736957014404785561166810204567981212046208895213981787168257081272805240930497611461295512122397573697260008037502728828506049377788578498130781786786746385427015821532259169711504404321397038106030872038214173188247860426816458611965367605507856895881778554738191259376649755394571969555751348551571898241071872101106626311539174927699384508771938203626899670231875783399254543188996928270863370434234850750621549302003212545372024235969125189092291173410004155078710745729614632569218423318051644294345319931150293357008286187541784426338580703806984325210470509970503778380059875673783545334251870824217236770030428448285578152783006036250462868224292173039111462066743459584695967573795006022395472904128988432708558294383566882207355518978200557031534794758181127661963794878080546477461357407067972075181316157257220577203054291846512451917404658074230705590520747159601733861801599542032435427616732371460711090594534701373452858065826200788386997190029800266645719352629324360806633683566463811074874811903949894628348772798624579445656634539128145684038522395977589797561062706963219093959530831990272701123188885652411341066746825085735020734599648930113148249082578457526405823057546703358557371543650850711940695519354428651521501976647375003023804977289805060673498700268484467394973837704889794711728610043538917754639670020740593095660633915062966496366416494006320938825079192214318878691937325787730832138639600700235756032617469628004897183180292607369340448073976412792835767297088578491552158106207253874504081958340914795757517893399024777277428251592069457620050172889365421673063501019564902962385044957563743302350728978022146970266041843482038441119257481482594766606905315853450486915412480163701378842444224275206661653050351022841272954389652042467872174402988366501402119533802089727564640147505227333598224928939620709290862096244527541306505775175742607376014603784963014383336770113853801256299287379467081831031545453866019352902196071845863881776480597471455753972556669491493895813706450747996999886972886561362571108380137454450230088830250819583923622173568360941781193884089788152916658305887666225799503509730978443873745848247515243699569035580127517632993990050931866474697876261819032611102939808023363028813247807961833815382400958257517873858542840761034827595364799689645600186322274602354456564950527519651568011297070268141425072176973084773319686033921519538493374062752073655588460595159379561261231762443888451291247122304927259819757757951386729393046945425955468231813200055697027100529076870710225092376825492332497426973775004666171820719080332042815601589715575436456468311798112354147277464685855961078183311710747757994923918615890271904161806356561543524837933349884259890432301285955234421749300052967825060992801247855967997999993924944869558946906367154438754283218032748853464939703837496802575092202576194438376179373697509585451437243251038076289776060228442186323112039267671935723295835104596106780096467452388328935112402925526507189839490742806211489858061616199721909748969986968956345374776199726257305845413250238469295682775308476313710847011792528713235392172486562432326988169802472878113626790904987246332263077247868009656774666423965004860560396443210663756400329255234955403974978022847808448101917559024510315060070396891144593402349719197748033680464579038301826340014007433928353721356330365174752676622726778899192099840821075068220196336508648692283385365372785253187028028997671694734150310594962428013223675718324349923534309369283997463849231534645273400655736673272776277706844670416345586237777827633663922643756219691737429635044296758782865010398447160083087283305209559020131488589646213101750313980118145159403683544007088300888344335087258883480476370477904116584549652194121759547320110834478540110862831585887118943670698223851450251084958244343902202269932892923107315657282387939598279485349711939582142118413376360249023686763397244983600198399759077158628986274547356908506148540168656175815087914825163779227984769228666670286553278177244182225061509090833783500054639069993408771936376305753410353477654491424592963902464718644478580830057247272247019356523146097014580224705202472404180386473079341981659637946562040021944190285808799445520802381820748536980797820998390849315899637072961811646209222078100725426923350441684561829279338527820317909727315419244520631985867489517651650784574362759742936879150301208998697138370731478022719860704027537406022010707256318441999465210934057161004065930686322629879339367790613581351494015828253878027485349713381975464172191284406030031995130081310849445893788428068196034729708960417086201174516198025967564783814874661188350740446653874461017032550450866638384973237411631601254318178640068760324859506918416354968127777035970181817833318580128203471237630472896546786769254147688676039310695543029875048600035683348856733262501901133465101972363640659382500612978997955693190685987719199691172750965911619720430661034448604571430897734371809991079930483630624419985982397680631529627328110117205678040157133538868107684070511020096028291048436722392554590352539864908967639551391349342751744679150757961846358261800740874765423676707723005967912034109218359569289162747428986961122845099984491693599539568911031216830354427398958646922000116311496078875155897836547134352889211259774187459306307349719621704453935387305056256204498002938078113118281805219881800710316725753578008436185676931353243888969581307169286819101581428403653622215208245242428008105773901620428043506908323929304480571345209451863949074324670372151990336426791812974682149916676290080355928720654493201593074054885751676308491745583335377503723933439395883862647933414975755500643135769736857978584704066613887231409993059114123613359411174501312608664733527648662855572390661524863205643269520049034820339860932220099644155436697680530333294259816313486491727195379019249645027129952888960833033426716089727170734812299194411812380589696481361967138654784465136845352940459088923542360816794009054471402127210482578436474886123251401640626397104905467338336004475666013140308799480837315974414252796300021700441365861537019255129664598926192532596843344205187318753459669955616757983700377245329040735987799895300964092213345378395333746747453333895818681842753935487227371923739678248182047433508997578158112388204595782405684117745627590153157121258916549032923354860284121050492732237117404177037316142498493967240854786253417368045181067297081510647525665579805379949396727452118959546835115942760105507827985298151366365070316044800702712310533606841232931217387348802481142755652524145231134684001614650657021605797408932561256106810778395341690593167835656898627579049105886577379472130603958845598846574063235941654279519162465585131096046382346037576215577467753292124721305420531794053159615228591961425195336726348250338044567873759010476858796478298371574128342688517984210130060895910216478350478277083547760453683498366036399271586243425754859547153512042408396208231670714709312149101764747631596423135987065986234422650203138056952574253636491727994468793131040486618651140518965317848856441148076387906498731597534038998569262162007343184923464574383484030711017810457206907594665809963447591274394822219627631914721746005565875556218145366715811171119589748678177568835754434308641317001238463252263862321931429075290344121974989541345647409666051589584226138150424317852800570706608211141965376409600956681929577968483903935042153538758719319200170607730991522220708426552058272128880332958356946693573591776122490839419011040526620156322799035387456246649995757128870116326828736041615344567381842335024445380484178137295795180524338383867727156708355161281591729378426985665911841596537561422154988371107373915797947937590477937253954551887461395005782101368652372597850570503030415546028047482560282084298107890679976527339943075397481056381794588183254542660320331979096425369007873102946051873017235023167260936751747913563440126561341144911958899823037908198814168772425973649893168462548872725409154175901016785734919432474301933279236842454726657337759484082852922646372164746677946274953863905124383304024542447007537493093892235789198801773417353926462745419507293968643173076610798006874161902440630017646080812925941673066841703777965969133662093846656973396858667753478892837564265691164106958827144508597325679887383619242682084410176784579367103575558032600454797550192621195412898032397549560435156637775256629664332286647085584552591566185705443315626244103000647073721366024406724823713171947218974390860239071498201301999341306471004429738125344860818517152391577840971961448185516331518265696532060254032878014053798137474093140303445766474228631891820851822196927925058601613814598463371774712519454975632621036217547740021144324631651919705667186620289442887771150207950463393242609204419397060524570847361869207785416593362899333237992685137485538759436098735692194483894278415345210010673987391844311863589889063599071892321904755928516232022424512914503544826836526723944652157420505527385920403837184554583596357860032299687513576466879226919831534374502464285454129634701261808406613948911978115463677867274224248894185774240536311386725563511944594853395109034025449861677220489549346401587760175836392688275629390851271870732262075044780625891527416210250680389154182796231396229582634157451583290118302292190613231950437242327068289796264571074557645462130321622872316609689796264060275182520672638286590037383260952279967870196906931096880331565682104144725447803522598547096631160648808361283094578000058904939948620592464745371071531137095436964275360260045416408183055805544572306292205796257651093524854505448949693438406642257046218348917303644594065308767871240428387814675316978221357670897456919101188630197570980576173285687110480944983496822813990620905774170396492021277552595875083626522920338294817811394138463463655400423435690488196625675158703957521487305206812823333818954000889025784331212267994167036526593073794150611310272874805777698810518680574033735366136530178591533631173802994027805764344918009597015923404644453954407071633641179574414841220711388325581688568256218836256027895501187894228591373257070738122489422423025150166212960711086503844440439035516298313250020246586304856641169728930992971193373425949241745317116468496618475987459812512285779828224898080001557766973458272875515759128872637276272891913005826295516124458595997871829742846709174846274204557090687018880284976995608512849503591074663872558387963681732734282031627794324521162907104439450826325591101953081965448211890414809536131126754875325373643287880026331871921045487106110201830411040705614504653398734060841150266423669114831265495304561329467569455541978879289162977661581137855711581976552407494160580294598103162419915489513773374410253705995150198274661661049986336077022203989561873406059408711621147816724676271399327092960480248598496275725581774448006802384735276284059359202691525838378058157852051393890451506477021724596749462570128719392872713245635029772947993143321089670311592988776760233513496611276876855497830874741804444496250458865918322201220581780568592111198887480739631607629059520199173356869548087979811344962696749351975931191913481743103372769334024570599154297827112350947686624910581453579682038362486101425448806602395151311618344009251194837588089629494466255542529056830711273951017692684903064243590108362762895154087865138836314830251013800681212153337476325871998672629796468303168851314691126791513212616810378330969402570065099882580948828365898835552793102790817749680284398307060781940215738115731158503871968908979335729063714566861123430024294124683895181864008546601273935645832912174885215542719213571658338947102611281195145111673210352384636328550126719078451744203860280203478898092027428460886192592833935952166098779428544891447080563225456107992909296167217483809640255574927994164819197160231735419944099621458937878888720478281169858359442080269996893174308564102993246359573973116284083579881200701843458460731955487414714710642109169353702600560714750386468530068416029588720127134448202280445217094979682670551855945963851764998023937592635957275508363129192214435377562208787037952450224666594517011286047733936062857542805867377432772406712103678698552380409609506384951927946497168822202540522025870524525522719415367437080000273456463787208755682634785346264828193103755967590823265441820238294606968441292858140657063737322395450100023435371633592686840080823028976928122880599276755939456212320612307530297135292870339840963247389220123993014556816819326843226934777603432178915947780983534086828191290159665803173111978944116322665438109370466244542640998502163424850640542538044869291635708208963289493690157299453978055820032352862359500863327003948899347962475064204086037661408352176727984178205874025757194942686438743242933353057186146323955065873864275184090524940995974503671909251952265780199819111331702975871320669025460029012863093488103277787751442949087530462468618585229544401777268465984498412076170326366613188338751609506905548630169042830582563114612295280193733640125383325010395161980039101189077542892236757427125041292104843189764566389417641802250546545723962930899263584402260529694692107497722768032750217863351469218025390658845958073144780633415090416023760956540668928300438432264868684121916937847910515303087477399214973774594133409370428680036229189382847356418767117041853731768039956182044982031090680313127401884024895386085807808456174157473764016393296844645406045967895882548096644798296366261123114926971334996308499620603722105478299650433481831668179281077120307133707945580978842823199978874809244575526460343363907385092491582412026034638459664918507802641462222936290483363068581925304221625215768765437781850113065686913679506191889997861527281203132662040529115924288811601750229312127877555826734937920204867241187763410949457092930214625718763342439928675367112020799034847842356995401123883441185375759245986996620702580737886395836203357994152161061456780027578918398107935765924427089156238952990634905481403499339956079952636760646689927035054774579117539055271358689614322261953092787542072059797192244168217731987793519248215028326799538502461834672007394945704585386569749231716618035478582094803024561788373983881237191602096624313270332996943566485021135438826518647090527848240879594714375505706801847015113405055998954914171769769153348994465314730096341673831722253467567364123811497208115157905703429104255302791112108658086810452033857270222365911993583471561863947352389347411730610144143760616052547799220636783016787804735700509813847210760991272844686631077090357980596474945624007081190246572365610312647067811591204569170622716817267059437648792148386217328103164061488086031499708863446577210516307320269791596178978304763469948179414466783648904906336492299286425099603078397253330705976105036855317954019164985121025808774625478917521708111758115308987268838963178583968942044392980813076658261141104055002485800624342321648002016701716613862522099769191323338184531076542114815823465477214923703235590281814522132893899991917066971579226181831477278850294377886299665938493200994477287801212952097896691776125704612565531063732273717677064668347108569334887958295478512790028296275207049153360873376524386435169672891400392032061810026190915334827342229369202724700407270406482579203155107800360583968080292717675946649450519176632195645805717435220211806288291444597367711768803966910368963386068958835972159294057709786975237883103452309110939273903657369428483718611985811042189506604488392579521609139228594106628619984611917931864216566477819021919965865894093092100461029499749091485966138623870377324751856613503673302783698220094332812988016157981735012500169640712325934805623277326875052864546415215505723247937801120218780088485691879163968857536485863736875418998098840063233176752836095836376174560634497727056022602680355778197315928801071031036454702646716270699789048150304348159797878836252162925504133842950925811895060451257391812051768788662744920722724349007565359987117586763243605001867543398169310340784561409577177046102359949714902975955882350050602604626379337183437206104791500987673128617724243499765472019489871805778433426926279730647236235239836575787695774556185234666562504829302565787547842585449306460255910790937556412473301301829728063567640875660000885668454429926145174744367483467916674614857722121838234280244509556344713661732439697374699476927087157798641820316078570100564245955078594895157474442059196040455460453033185806170193399245427584337052697910294549598573704995203504562904732314364846733148710966473204028069888763253501504124491766872026700133820682497624835273500034658126223197246685911264286212112362155521861645094275229427363715438318800679927308412168135728218597141843383406876894978834051738323900298882302632172939931744335937429008530616852157976924377876565868541404354911336343113606224505301207812756993996968997814651321517578908445915805232130809498346500616941121282854001330833065569670051383279791201431518566101002024021532039367757893728885948075038755428784801934189041757003444697455976036100109993044980194942749768761911576912485243755408843990990648513553800331248934293742871542425239830984190882882454376142733961817996708206679870120825294274775870503764047289631094669298605554317802776394316729663919887506487192525677135441135564494703023627090987456866679178593135248529615434994005191590344574671255971712604606173939803385139116825475176681359287902636260415258469249706211597241417979636580110738748893580339457527813725732442423296289042248323050239950701736128360742600001638375979154648040995989811166676593124943800764808132069039920886639820986416386252038837626098792599160127457189574012160879163551201249121485858198761218036790547983452557514364345146141410135129599904508700317487296701038900555442546791738717218864091900602583315151713802635605946488494196342022982376991405563545499289972543009290739043489892599761153078633429684358929048039748603305979902389208185299874050848804010378207657736384890397919992083145840174390882992344444623522846473211213108933556735654589050214879780099507062096467154454354184159653142527809605347381216425133270468522859732610413890362724228242444889680966180596736449770253805307211145184465436373699767317093071222206760528624073360072846231495054756600445857487442252607079040619235194486213199509392701986021452273940613787606894197412867797548367708223845009721385272937280749307071834484476188614948400475141393520803430555096987711404353203316021785242079724339530117878423392643687768923523453979064490992868304133837009892998885693832179899057731749440600880955685753012712936340760631922915808730390819783764803662972670642211400313081443773892209985226266951274457987808622500740085186568746765289417532767055840754043920497321003210643337480675104586091846737266349887522113996837341633501264485962074110077055609804023502084645273814005746314646492632641723708140101439524588729862753777554320397714460310043577661630275392015808068348395850114583817945903047437444979008541563914793591335987226796961584341594527461117767111061535098609090177223414814812763837287462582775929214642578643712207379456394315117240576259799175741120713182389824608922642447169932279376959160798230203546573843421533309055419803595162397961890572038127608286249964350002459375166893532154250754017597053984311011455436269197411771269941848581339386398828237520152809955647820533365446143786990288379661017437807130806190331192794388464942280173764340659019975414906847099654384631384711781442244045476163900414437668143306266466197925532008419426537751478566011219137626235447577943324533740917024149386546248027247383340851837661213579763821491433179242299014034639633374877899107160268668871633866416611926062284543010968732703279843082316287022317035139993960072213383428534083861803522587944015239680419192180466998891814887851409152920738481317692089254338657589761238240272134581497442669164077500062553949045291069313294149865964795984567232463620065496976968144225192166701889704525229733434494620011884232979505895126991781581164942105563868506561959271484425267365874513205634044275155290816690875734104843940606456314816549423174512750522406445517137826633517605628811889080719794686414974894890614144713179357631837243173870959065678281241179137931910489278465097799636179588781101728152749382503150500095180188274165397551618760497419457786388730716609363014341749671957246095606822497016816168358719017639745524241732323684719485035152234462886755784178830135890683842842191907691201643970678379731537904898674964060284191871762817252335581430192588151742318431057477845076213669267855384209386377606352184437086488096155274995715157991365929445527605308441031285667842624703443478809930788646674255602973304410932167665922177718596975918528122445402546280373678138516043436986625758906805366845083385484638296904301200113904597730513786396246765365458137213816269515826557685486061174575821279721080316833689819701033869719248415920985380413436518173567604884929668592215839095570497282492775768199787875999220391887188722301309820196362060379957791276443040744629382191648317609346513925533974469955631318297390802810793394528399623625752391769593368905487799183840823381130127710332539767623024071511289894323064782838275736140059614519164680256696888246221982266410152137607185218522268820909857475140351890308151096503302455660825157714157685302484706139007453009757263868724528431423364178759678262841372895607121852378992575470775153727236440512848372353956567485864933079558952218553410720164338317794288694245015105757294314531652529343268334269843468091253271722084678243338887215909195524958594418661978599418618314035461525322040999320452894740025386539573868372098704529378044055521976939731890291100242552702785965113451884869655290740502004721972164023791149825662868667599931294815325088875959204170765530873542839188252173502886956180765799217570923603775846679807199791580658783651625560428863872801741662973099302231135865395173399776871183737331868872683266464182332177163436051784460698056511103746177028961400645700776441648492466846283146391063845779504907220396277258527565638462796277023221692386007016204339962642225982002371410055554640482964772072023347867430015775112821509878527904193968844633758071518541199149577138057009837565403708726873576931059968686181920667691603997503800889491196279117844848087672379902330530799852311018213777809192130812115287090280330506966948833309751917787443968477982760667748638033790761109389357399580645108289686882820265946342275034084919282279108050367982438818780570360901604767480688284125815253659407460132927666148687925251370557894573233189473241434588487441532184914844672084555764400997340916942152938155247095966073147066700227502821492454665857814180137024507143981327703537700393160689977835240484391860336029215493809347948341558091120958817149926503478532880692770680702944232424446693617978966322800226548933474727276150640196668668409126969336217715707904018694258981726743591781750306936842238352051621234341855009717025566405582076866707764607483988964734073168220460794980358141838486261720552744034341171142129918807190161872346143999333168896884814891066631924451307859281041258372768101721367382214136825877305070701809779958674322820015221335364936314956113296158652376862331829736201166858647703048217183001367449301589973079772034851837138105785272041350460951256210912399926716137940433625380875545681504352752423993762299524178667764204783412564772003412998907948848541517979894603856404429529721050274759464677580040841142219342082602710745631721660197910373814152798380479814377883788081043428221033926859159495375149719947746522871482043287209338602788603905608868318813094110630279702410922511469653651841247287257280008548601976936898634594450444996993123500269030562299153673230392185213238669746175192053187567862507967977944535338884158307921881255626218027677756933567822188913117878334178230736905912427887815636760127857192506337487764351695283419391101486827839391496379917414365867741138929252941318230865453620592684521731396237694702854926468330337372076764554417862183497509591150621044540273251622408385442793094621106950052044660712957240614332121711408769394715946546937126082890796469562684972774553162228254635739811643347844618113128602877634270887218214230618877188809452799194251078145935101847785803176701687944689959496627853577725929491343151280362274676128236390978238279209249048463589197513551365466355209924978103371262982645290642110089096965601897942144503096296304908936285757498780563487906934770134379826826044929117425685213259548411307610783961942214707801667387002608993250877188369996078637913561395808059128111017577537347533386424077213902029984306352722197343678015691989570597346135614055621518568775360409650201343426268682209382288373547991661515069016477515956827121271373383894379921791086803540965779731599683805845002063487177006512927501047376023952751076067683872210248090275054053258508735524608526273768163578622640559955231535695586778710655725007412710092809175571587749470477638222678769694139862597548428543279169402363543906644252206076767215793198909361538365104260170684131796791071986814328538919350919754280451531609278267099661837063739732123732373128424213994667545508079970280108423852853039201197696130873315795650118999299601184094736083134341353666446896371675090575697961750992371029008368136724127548887514902944224379239465842088614427163695693410513723129819642008828680913802115100626797131816275754251022913467453960814206218542362107161697354964722649829126107921148336089285599811025227772527966628757607255176123716482859385673043860651493310829682709413401242018858665386915635421221109688539558976764927536074907248538142295359354332802070615085963417982924022856803095615553604451540080722483443859184834218895320617821670248577597441800575915898042653614267787693780423003376399796025718407210179161940071661183601216917545913833659234234303486815929821199502231019141430307532043036687016403575601545760644307055004113864015745519127257336882257946154881468670051350128122932115954712733087105030522339192331807648869387203459109951800268876372191574592306745174903724115166811272383567309461700067174468256630557300276109299596348566060529221367973508198656630224165233773117138334419226264035264113057393911240055390205026369180565510744225498158479166485168229679613515512952994072520979625640440464416188862720718238730878990814947260080399117645962274836670473123851690435035966852743885939872112806769211334235673687870411560577097019077443404636576650379048287616583404052741156033953409400620415225101317199147182091022653084048613664717154173060231504240684696120557835089469220046963006472368031401728272832385964554968916982815386058219934151991433786881676436649797774145158495544421114852244077823013334860701100170638133063536983728410121434569866652091947959578416058429069279896535743566111446256971617634726498649912279442094152453210792672986577585884792464671227991837309093110756685017733810085053012114829810668575687855203254789842871536709766346794238741813971991458151524456687181702425629497658820568685143845794294105516137806725872248311568520305476218169825656400217529644538531051033353551262560387642119938780359996234055800715069299174019066678022056400910374261064443808319805550822413620519239589400056379521834282343916593459084941800369337332581675595504792011675136951806224269293474893308014293700325582387804485088530999150681597352313731963989742056610104946772434549813973782564989526495026984113379475034211269214974530188349156959145037363152609875530917302180770641251871563864731026113168367402256995619698863988074425741863020614478641207411932531215656689197460035652849678272945028046667140334689736348536933385104428602419412682235316783395247189415672298672985789355127176050809548890812542516871047011409402375724662042489678410315372387127261700030300392886077645503122297972081700162017295996373252396838516279747086139511671664222691955961507455513996273056673604937565649215807300796409411578703182575247889848639589845069353898593843613995541561329336189105097557562564682248150046097998541049523537052309505390231912353526148332212944200089418465027400596702797737596464761386034578700760445330286028016516875718133690901480004982459033819140878186339696050363941477960894792750343645057553896735540508867920800200776726601492498358359142050733674297808206001311012157145706093788380456694651073893183366611471597371029433339371524589243737579585069600199410222754395445244773169488555575119096757596335459566287802934703150874895304174964023044866329508271951193160574339146077345791076141458911152053171504176822105095567422329192795226347396607412529467869169383786754856010883844877513146489496222570118903089653878325276694346738687045449680405827954960440549623310702759078412043395192837773160015623353137769460688677164140546418723870534200721684065378892071541954633002161188769852696020234268037314707797806540163233475848116334599883169587860845373145950885716379213049449269538309654310613889462612000374715877081685767189042295086749968794180968902397381106839297473303680726366037763494876112632572590762136326456768538268717183731504883202026309025685349078611483814989175605278632077142025665283769726165644896343759513732249039318395664605851371474269828458970750279288861464896523693509070569241925463476396078001731848545934550008191531684384967147912001262495747869615413668449319435288928805505461081886681913552811567900860267644063892710114942890854697254664476130755048769689293127633384484698643203729138482206330388361244012101819830952061736270803268115596826845420726969047384678915734494306959067035577374245034570118310404446477816733523057176894769484052319978967868711418584046926764202320504629093632936691578545026298568936993931632296845100316998636388445190612999354724674386335230533011708238909966578073971256480436886097479346795067791209009133675473255725732935152996314436972073678451613273599466633005662258863339569234511857919864727385995766954832803292171641040415472051706601888677616697001012310371830727869593814210194018218186885714600446444984367277651359864033209881000927042601161799607112060851235480148616199106795306220101621421983612988800632118429106677199084277920202991390313824162130129142820347848235921705537290433745409501291181734428718169321277196203117963821967736875609578847233040575887945704035861356010085193905032663823959375940145004404427474143114213446623824065372813709403276649362168607317474960822294690653147135053229816308486111924113285723160786541312881402307610183956215271032140757483238006361569190528170377728942491097987798792488453180042094090995023256062475217206700949179338583322979761664611228317052472900288400945789160946313001058445052654860266290053029082437418749302683675547095213728298456973747946444889671865963666437448109962705388260870924502496865524548684851719147776689836055591668296497340812263666974301202602153741016476371567689921921638042772709114885634783698204856024214717635378510517513426814644458091823670064324708956460453790346201312095204680305272932548762543146245990444462739286847357274669125581296903505825424678875089142878275261194384944339816793250312787386169820663404318527183024872903539825918902590707264762127983008610172593836737481873452483601233214175116895321955505901001171613155104723864345791398214865764115174417894076258188708016088764391952795838313701111943179256979850741318547670515405528419632404624764379191747676373428662558038141538472473712870332159206667191797183050858455212584401051483667074917460074230523989542628847023156538061072737211712627391955653793781064612846787579584821551709385563453652610719775925635448160772945661959380947277702344652795181337614793766881949399117861500619206400397392140548794702666417351849498430183128731051117674929925519608448239693745902175709573383663193031261716490794397173754588918209483122193216303032003021456692038435236732636961500544123492084740968811357240848807569158918311484654656685340710622113579268959116191643730963671714799938908341912387032816298458467734073153790935091716883006256923063834838157124554351335730660516553986750975343775856195555974384875793800768817970250423248213610767839974685629351627970454453119055198149182413702397023212108315738552116657690230132067968398308505797288148580116185308865881420013426040651326419537958278244116644553571568218245510115126382101848107194782664434904213301322238833738829480050703549391630553354325425241726511721599257593643704504380893675817640210487866759267172529260964062732908282143614320025849179115683017892107071011183607448851623941193458181595529001217443007140463964841758208824290492868399679556708004015682034880569391148339555019122691163842702512031660730640935621346422480509900070279285851702222203568057774073654271084413327193425781820523501069278854192551650742641192122954220663004315694088781782429788349893075498797110625630242063395658576357356742833247320924560760116673200407131396009682686203867127603061572098257650983400313877469957904352914071573373779022357697806124215270666435166438056002686710344602928686052497850988840090375912817008497345111966928672448279521373666302897352776580393725577388199156540029969643099598642484122513992678519336453933419566894069438946931431549641253309849130459398318769170178123289424516400673323186348897779989247080712450685278266927303480557050912160832905716843543260567517711495603256152726987937245141655391551813236236440858389380712697697645726189851150768363523754666910020869894705520332742404171050732507852040290536199204058509963202749766233162545445120745021723056088859045527446437662239097121104396461887201638517480640939688974430226527660657577432481686071958069532681179057833553956510042071418983675415931100205203884767610386813525345603538063533865508857553280125136715537433138388271741164710577406824826422674785732934869559186914416146112091952263828918436598823467995746416020667849061213140072229553530980599762356696012401535429559224989807654022635823560304375938997410899270284601050415202005978755570821153463777639347759528065224515817059328295503626658090785349993943047016847592222863894376567011393110383950489958824365649726921569972036554515712890840929385821153980122688754741108267966798634798455030721885317792581209443439687971570530569293524838618229648721284095093750596592359990954510378137840103914058030187434289504534097682742523733958423874496152640371913864130425883310880954143773736289627584687291217441274479839213879267108289987056343608247662497543705786400370774508854850845163459640586496522178361332922584966688271248225334565042200063711234386645489866245136124145723772044980192915645870381906533902909633097457436272938774009803519937712864987778691002813877678833124276670234072459521476759695236559967195342819280688068584977696434234614442191680779002503465855986233721665234159389828650359678075724231439116921211960171669456315402259743303650261986185742756127354031024216240947122953772781094428964834007106104659040265116819936034513396600388195281641338226265753149950275052017833158330280041893485448227617916233706960298726732403235360563064511474052988177120616586150497130228083321267956451583388646580146340884996162688591901227610663461867475567606507213548609336769749447952135393696393900850727410037970522337720990683001597666468069404199245125305741778780129156492825964631165329534784210961077468532729184155972336754969167785308137802134962816992218855267766095725682603121701205478930274319831319331890091755230567493613419307251063187825544214261529480653127807066274723837668843722761388831251798900119165882725242561308581213659233247283544748491710868394372854678485235723795912928428996025137224487873958391550524841955319912141712932317889753808990148598375234414320535667143346395456449772063597531753715707989908675736195510647375968639858799061526352613827714181630070242972503881689317606016998368452275073177272436302792303152195128381303170750003448493645045835212692086020136705630050238107565663425150847740963238152755435855240162110822656588715366412151016694629479026680122371082983109641686813366499190378266859121506693370062680274807264098185865647570898002609424785366413835674928359330855437372091835928000357078186137446479789671417156435332464393353175004171262831637436244679556806638071785033464664285146147168320354271658346250052432696373064754232284009181830236873858677822739579371894875752651927939926584677719985040916970037370819180084930877513597950397332511225296186494247090970404507394424395925369992816508533976768608220544571664034625260066317148873097827419721011756044186343378675955581063563893887572125506299493025503591539865959751227379758399851990953883936064976975195903514390426307807489038838234644765669327780319689438108068826223714468498802572620226701798678430528405970390990118476062517638807249410964785381864244573051024822176097407447064843388403111121246185542743951125533999698760316691434454928869014974773821147573376105207581048944094517676640634382202103243064947074232667933848281964856209176523217518295689561943323071439089566410344046236568214939358257293251748743831334333113677441638279849537506899545570418956875811674972837983815407036951852324306230304747617094802949414787544817783905246208138524940988190197689205625258440907576139663269654548139107448640332190263033431717285585769577924139784461995813192992184586448700198919577431577498853354701674272269017008843034448341979623525746347040858030981467055786717529620356055646555780974613376562084521255003598693688305177766982064565709704481340648034604104299095514889264279287448021490652104587417123840278691019487170025513359192965621178023614723017890351937820820109629249335570698917764691094420997050585217298669763380617425152689278503816106071601538042659441881135750120049438742920197314686618742098521738015535131108579790061552664300116296818142680151402513786452170738608196370066836632595255873339533226438582284922730452781784436774423373014755173169530243866828407307306427338195085507478008226306181111941604048648329068885511485465460876775226753992088996385279978014146078499535382529026858263924740197527743092399386802104705170517159603778336770092005798783010391750849201669672063039045192542707095531902708881894311354269928821242779200217898037625304503983498825747227267154809839957880842816180887357323683550156563541970466312773474892876945179185345530020902085275470642415571835131892954524807890398450748300210442411204263823725657747386761687259019014945164114897496874305286612384279075715953333907202278689963925774156169731684485456635896535010000409138434384203490843391509054011091935174793496127155255399091815149078340415098985563454567237682348514754769725196330405072205903785713696239631120200793985348463564570765985597905377363026258067349963666035808986631079721806413129701221684442756944818478314692491876904463276535750484349567890656610268109428119860735782098777491159403438898748340072269024663299780015781968324682949468499777762288388518294055810343992511053993990127303698369927783289183012194701512888600117807857498216161752358556385104567306805181037478059006069535333112204324451407400418270945511912130156314538414541083342278575380000827585664683682111845272382368366177124067226057236615407406763363248956582213916678934180350430018513670182574240095800433589323082124656741814168686683592432321386956620112844792917593643631851619427857368685148995878548671172920110404117838545811556657606284251344213953442006192446206700459481664003818454258473304611136621937702728273000932045826376696364642244433779525688144632950946703520789179354942239162089636106916738653193121478943798394204975335459311744799410104655357202342030892983136320874210430072043929833658228999847620571581168512053725021385889487466395097906886544937578803741452969542005330917248414323267931524237742587917035671719493061045641936804242201372012801376977587943211232517942418123771012544742689044038669914427857862422499178890522474698964115049812614539495021652011246608139565088429631768148094689143476660579081012494657998011551929655788311871271714154754030384508218084730686176379651597823569672309958965808932086772046899137856849829314627321172609145977060415799607641779735391735722410447507755197818396206524475882864116946919626797600917240773635570863061975044286356881296315492619212379296181933258179348124884290006711538738806891062401373846148923426029351162383180276647728043675930087495897436904525169694178211998195810534809019234030139954724724947836696218972908613972057696460629464015275511808345458189346250626290024141174789736851918835281073294444701753082708120330922691322584898614794766393638363407010401103256464192611732829569902735789250335723505833437405328216181337797156482593106367535181835724281217222578409638833190907028991666761203232212621914941223686156854227899306577504129628773645332780657352352881770165613420421140082928410513264821636745201937788290569598309159553208795512833244228218057173331247727871245493012499419576728794642555784301482765062972037206417798147608144218685611102882453672084333610150842235194230884420817270119853297682952196014659678442352742269191894009839528493167965615912831090043040712825261208100830871073796563532458180813017605649502725421840359549964228938177654316657178775886334186051218424165196858035003603105107785136869317393197660300904466848703119155758770916610937598450984802115006674191118638503309946176513234035074609387578352581799949763806338313422168145815665401158720639473406557387739409814173745651102652007729391701074824069596815794860987602463805726228477495589645658388395421176126108966251693876357083327244314068502457573148028479733515587136102527521207417065652837085261925041400934066245952142381946440224985634115523625321872848857018602005595255440358242793792606400925693510540108202900298656671766517250881417452107826067832104159138726594024415203151320251664270678646582197521273276064299952509794392634999754848658615361983686884989168810844544895914097617635193334589244552785646650012444950822835906651837675936461743656431403862610956781192354635659389931660045052907396525454414065099359093358006019144032604383425619771423223395704102126307526576873153429587716552222422476740432431724504735539602245077549188743814880111062165581918556513647780612112637101817763453535140492034286235098876073683981166795138399787459475839884593228912125847901667806766352417429170719596666646387507452388177455518361527113255207019783072653613314051161078751086453789906339706925055406377609007822963210293170405844330736165081293685447554732184808645368434732913131678837912108413687368984442539309684216151604854151349119432042794674855987398200602777041265311113355573772416472315589572034745823396630872783873583505877924060391219283034147634888611747064408466572273401718998478253104173302975876260401453982375433103696457440705425408458675199607315802307982695987155575811871384072713162537254613107327912466545630810321858586392299641656964564176633551633235419357772775716610183044760601230136983312695773611354286921165656409776212877953978629823724319326027935615741148202479043539653375594937318043650702556480551795371506726719867822383255356665353404436529504555915382240625047540395383856716476521947456251926102588493966033085634734031370921335992154903533552481019137262477087390836885505506404885754972786444569059703491580105303508495825275786747334835206948488420743407299883226462928534796460664446750039301054205230098625240865416379168157570719958078846754532110192207579324322098765529883844100221374384518615189138475002089628920301153926166697048855520525712689055313761591393809842312901057355366156604404117913163469958653384190861202231378779492451656414552983759422615204444065517305787568914796011127828789827008044476952717722403113847858417534867519301012606722841900853833937061458426689503608020230908867551082638510489777665060122197267256485968275712705373566235099725113961582130459061380027971187766068878936233396992816997615111996918012201272811118558758823816506602024646284927908843349319172999605145830489365039295723875060027378930319889341206731207765675638134008985601205100448561102945767379654291290012296173828885211814905608606991316467590690166762749270300524382058724526423769937519147485252856867506438916315918321015181544317500784690587225450458641623815841315840967057804456285896256767679538195008108758358421676529770444758403810478726203190722206052543894794176020168719918754932614360906080989101253571958114095483538889703722351962745633607302107032581483224846105141832464396130512793318131888982048135308291354813810818645184646824346543782550552506038159508983323272555626703932759896185065985576701534404050194075400496173477477541087031284990753571156186439774928014671800147664074721085798675668364284317693460488654148360560933437697285758949050999237765406231147390053630899509157428683421765948336033622138930721435861421265773625017010104039142389348115079646957299180905152204107731214416831287346376554229867252959975260124045798342471971926159408587790052054972018808710047207273633542085699376786138809049550818603834393895600210414435360140695070129283603481450675372107278357826777787641488067744397972992188185344350343159546248434401016906450352505371524422073364663305656986353918874768381968054210253176726631929769045846820139481626317590399459987646464124970925556121172177800585669569967053708227127963942145434370478062519418623503390626706321586541196409002972034505175835181167088956555165915522649756596545916805264895899737074378057406630736415861847989542051960748161629206399594216878014295354741444678036606064457882475152541750900302304534809603245612025099277676144481628752506730869054436885535974829807355498785579389122792775242795370641485160889200015116663465400471478654526759612572159146001890746162522169683312835953370589018872851820046368431771746964187078537856800717736443590292557400072602218299196185258066444830463308607796849427799292945716076762362547040725748785313048880580936887691018372380126386607437031583888936206483959720744044381913844490912974338157445426673806809690772365577358425340665444075101091727564210433212763621347737558734107764666676799356769799696428851866393179485781259154095419763499875312350121345894604861422542135192833277932569855637269644400793876426098981430576597835454183925003260658439226491851401668345318494461212514065990280358928502653379169137851049007436813485322022698273693437914929409144889248181133360584774317704797661104477474352344359962755017712614363469874288125501498702447314163186881526548281490203463132245498091120827785050803012123503636397754182992715512309478022616188509488242161035632562884162016765147802417348194262844270700581687080909380869608437187493728924580612570204977423263401270779849205581942799803661652675189294287324169090771184042292091699540459656932971962298365472055275942062285421475148953358247965764068382147606635380506298041579948771701422592759651384719456355477030147294173747242601589363666296720179578965824880347673816200000322942891975469158756313983801731756607876676101175390116355618788168740089191831768204909115299766613770626808727765159005077124450229916559256544551685896241822731035244589402325508531514706516896776095087476218395168325878195067691595112078429726734019362696378805522326041087130189238713322509283982706297727822678439879477123659499652042865032953299927019778720202769819555268881381381473806130495757909605327071121533599040525118549134404766976686903760833443596858362020625460099044820879908531788548410050097536780950000504385069624064690606489463318930359292585127284523316264022948606050365313564142693685323999138546701927214120644602309018228019402497295113049335755651751730802845580351260345545682265842949320709516023401204143268930742970341297586089638255877287572729772397579373234278725502463039055411203081164761870526015673624933552570926888835525281931954089343790397525525587369281310168618705002398477065780982014557279372337359797904015606612941494836920036941139617260177364827815576511277458886617176584736388816739327672568421541948826233765106317828805007414780222098622392252043283302962656900956623407920572121599023002358127401498089998658032358729869446740023966454935472258083340639978066656883902768564943407155342189472786228561398034782748305183809585825314596507457469000721013479191161016510530786447195098733445568548774438735392852049425766232266552172318490699853144380518014980058958781518384616620294019939204252372348637077283387550375341747329935094819215539788836940945811502445913356752815258017772145905276954197095779196336810225794484037088488421740274617361709663452209430773108183669899711521121486150150654447562319520283445067465034146051501247867442344470354899370196375896571624608009170674372706804471386901554320081683131432433910782751806137912305788248044414634757741360899506187338102204593869913936092926960260778011166610608254354784553657845208409063298513759150355767765001549663342910656872493284550630019338527604628568689941815133538204201628861444951701535709346811257971125753202702843245544721266306471498521587987584001387589593311887474503864148428159226125079931173911986930465661005228827327567639338096191802932908234658707597784521901010809709250879472068379807330801539290548647579565570621478292057696640254565645440774293272985543262357239844851588023554300896474035199223816452246315375454029154855186474696058641225771858689852690126591838915232073284411295042287838365656787949879115643329128328554864313530850385455497222922783573724684056809867703041690931466045777982677061122753131674648578893022875769406715812364394037308467571129776961943711340118781951942301629665424556469845406939336912715504020360304205857231813923125575279640722624440580604784684957257535613861530448566974766150799046083009083356370818255610383771823609931460718695151827733134424415722206555557192151773479637933321306901811260842351881165617955713150617602261568706891847212922012966855544829031679687816642531758821736801226817192645749125560614002595909676031913792774227999817769164842861068382997555534433632010504004415935704593383167028560308591968627766448217810408005171232413302127042516920131952628343812855960909870165340954386694467040594317498807858219459065353791667905691582544199999289909855219669332218237407901238467461132478938840038285123841268469612541827603847375124486034662241299200591735294860058843005753125259693066551297168576891597888302912643337203104012770415281815624140035999058576693200510067724886304082419236426636624184574791483680728370882527429149195440175013564136354668569807883354644588821830504212144046991214029655211307438038547903508568388536603017333025079842034750945075393930479174143483915886383317199405707037619895254372055003825357519413654323107982947910033362896221769441201757713388447239207146957008912447929961364134064595734510771973773651047627888178032353809975161112048484125758654704962576431009744185659774470594327283482393687153447063206050867393807388419734544602313225452295940633381825291717513906843750353311294010023875514245950358760504446784152743680553625167362754375325132876015061940791754811520899461734252943100168626290384936987929230107110888665327081024912535223384862651362171576755708818867969080543501548634416414167684605468752103725851737563861006781631519314587805286673444563340393113542987965372454717323379745172279486843605849195278667326579474391435863027763013063200875747891339520862334217765584537550181632444671336449149546276556124271464204488437889202120855419709249986450419036569129220268604801692999288840066888005845218615669149766850595777334789440189034628304492611754260053524261182859427137460823851424233200090530202942441736186103438428101751984657252842469248937090867678305724512034137846931949740161848691461663166813875884175760538201514262419922099768147308870265581396763941589986736776676611695540368946287278557581654205611956927967722577544192389958029664557967458131504915293484659931987116805804979011537762543645159411857790402643219446449376541641312746815681538865767210770593580588571943291795352215678093621473436794964989622173138524428111994364842506266848247534695600373625118003246971693198145946517731197722184267312624671980996310252038327004621161913023019341277477777120470380651412793348852038762325615237423816714860680599024643154582520840243124700725517309414197797070354767921672168938422423094405176091890525612860955058955291834400713878451588504697407244464726881466905841193910994821162025310540043329327164470467621373844713552754230648073241955005991110690712982344056435505125232955372134402481299408191002752592154871613355300146946489158673371657757979734765936681137778199900541700760167355079149600263361704457512002094058291508488579524285682282165490740437342446804205892221824528347192861348812636582144526660411214026361784678077633868242582646933163368157264975087101623228356796792068313427032582938618437434861783693856702779183287881916987393536916910774641856983434467067532997555226133123960081399453475492450011635732174546595344593872651068204590314943877358285535391035958290315522133211919019364170706551121942372803018099485811455048901679894897442768435347850663808905274959028806092404291282492248487125403040668557115534552039683804465723623983905159634852619998240375622991897252057471216587380333286940607583112028865849092919216827375110089480409602438493156818097854730352416515407657782894757221083384832906350391424174273495787215137058340204510662247453725734940795135376594275565093330808984943506429420602957441795051785045216954161959674141706722703500941853022192023301375872716445786711789561805388607739097864484756446119361996618858654813567196493389825118145199327860436545116178629845612529031468970713713985857234700146522624999576204282732384772428278340740703793108882440835728140690400052751942378334630710493659691742923813354000567381076033843598711644768059455799813241542356456614569497995863903472979972865303545951735422667572931848372006764692507567479486070599272848709925823757079674550517699355345510384816297522909109496354452597284060442636617163852570983328628082771914181277025131005640634040143127186741665779802552726115533923208713076843076563669608459619090765304563965180494567139457090656042081125227751885505499032891344205291355190117919453666372659564766056905922150443188548217885396158093924978544979287353454796770182858197116000663034258712765661633297737173266047254994407313055653902904458500666530120245586264197646062107246333870171478988728613478004034825605298541561527834733530289824718702316982162165999404324929838180567515484333370339434852804517451403906466968095018088264818831007989602726947782645796519917830658908899819477672210523194459736007914872314206455380208741255695195185452620987651553950201753024991788912435959141399233036431878397507317828957396787264595503496500116733690089664873922260248865034069430288812910815878002611203606988942310742048832590331650032063133580441422449822542990638190877573309566852902143109861905821524870857969510924971056303046951460451149728869579374690568450901620428666757873199037659438431127432283778981325456332054816510923805882671041128713544353927295903925305798243275091831083710594821835171763051246695885431582796382077745616553332869733826060517208078983939571287551298458122294887305587354555668156073409744026901369670590410414182991920020296191148995827302781300450034228550349473836075767329634607165782883693499176667757964562127716965565465128340986196950885869410026386584557325450119387049825533416834569952490807921088557131494650782581503462989597953889893879225734515023013257846912162105573677138730087557510316022721896910562782674847224484764384757611109223232967018701541021071923786256721899829449952697306201931641901537770903181252937946917156339093552128294709628411399890447965797279377904589838234387563338973235473352350107925344677117526070528049572446834837281428502961870427848686428376996861545989053966629270948527023455122910729345377800138064964593113898663130531146839152479960382545816938606662599244485101385132268562199043849569964794334684402573603751446840715510258923402797342003326575817334524366353856308955557171270410578281649757151905376750557327468357260990792075004067782062456365639200534715920151926957790421675849291380294635003902091246895568579571806169608575294091436120979405803051368341694232373501958169572512218675524896058119173749751129147453995174125627404445122667881698666343369179568053341694193804164379289489960501595811808666679182794584966254735650217845550636251339518191960042113194542471984718343467854713430796425005527498880074295798192280001472283166953658976250820553450437881411163536696934430101480054428219093831815084044207623169155970820805800194461068750548847791107837839350653928262295522029305624069222383182751397452637809707810547006015533198864157009243742928457184082830336106095412764586949849178202349190405350612834377963148814477803823327711468407845421067488988264772399099798820488670389329367966328919058800050588486656684413924777178408090770860815907674957648016755228603308032899156164648269107692627150551448208617577990049525829939032822169466749605957247883789817950411753605976120087989785608006852823471921955786204379007894605315632281795057716592280062341369254148960919630316375264573740073330984965567371911771346585090664143711866464116953641543241814455850938870665287956505019214006743036129322163528204034463812112217242605637056174395079495838359089379250255786276349146720257273185147136238448916384366931237127671919160590745924661433669520009605254561287968106411973687508104804802846648795437073359334922946228260188700579856861664039393088891139404833723531731857875699202454104721221045829604368495345631071806776942264796232866134617754934683904945200224538242534332838588699759931666864795603147057877162427905843508457481072717664895655925407004674670258605830940025106673163876915003009158311738849678172541237605551737104634401841462610829638682528051861724687045810601895328761295730338469848090481781421772640771408126848324360939793272313920858016567808363337164948004681866885720065193203047320337463569499002363072668435003319612709832915902258285911941201427558347866799058390849917537503008136533454909939355887959478784893921617279090146881763875985711867373320246414285959891049186123789215513601447230187810809315638521260335800572612925219865922751189314155268821355646836116118734517152888132797162703240277724070891394544232106707205966643268250670024744097881045141466306690966097091921995560691248020870462760064590517781560071241442589766773666515142387014623318992469281079223857580548333478388357065315122354002649450247480137303345431416970255756468919315837419241022238993519558925115000393761358827234207895364924619240760728547399833832400459788356633262598280582661086928703188601798382484202636678612739035433195830107021949231747616359258553110270029026130776992778663660889352282979524081892000770810435056572010682375141638977740801647624134137567829498460472822976239854886169641095734553322988652505320884506572163461225081272216146908215383256755448631830467666021491817441483915915919888584994287148982610386669309141751438156608318524801630650891586682892036716460084151764098914408003819480287828359165936883098385541254101279367353162913500411442162216642999271596666583111131679446194369010896759658264281993692040000930711171463543137596349602060890071924963186524023736111768680257929738208564284794939792714995982090518872138080479395734839640560511597190057406554425273660233313853048159700669298385306370450391240989529301215256956925915118374675713504761502918804248648603284794480886352222269303394791202671344685827959909946823649407011162005844018044679898377784946020183936054676280872007948781326480366437554552907025126754809731067482501680393998482998341187564986524665108273386410927814518242616617262982994418895065873812070204889162926527833819119065063551022603853797225812585016014783921598765847144812521833737800263249417255513254595443969926707318283481352776532124122696465504721815427209180047600247122656963651673094228387667875210258546149078527499215567297189844666695052220888791160413217547404737825255668173555669254895122880586307156700454488032430148293078863660426171407803410671413589210537444746045947315464544694728580957156725578766654552328894755899189413257784051271143505014086927105044513780800093834014401774689106783488391383981433566239767172443109377226129335140032070937542209667779120745464475565266744183394651501803138521282136281545966672099321836482821486695790192580559168485199675201922508967014679015866208036163709691439723921943787086179271532910841110924339548173573878285915428661122290984246241612516077010484459228589418453374135140306442551963587565606439761404218219270350044232165008777736128940017559871160540332030578200010102647595858906476508612526617371858515619383660380960244077451135308720779556434336568390693955234428927655589899988098667671530169970876388746985020260485599908178994305658048046570348376749129146864251862716545827747211557467668895204233315792369458852356583458340972056743729115456263571205046091482816209575180946166879011477477509841793502729036602585857033296546083271617279797772861822365366669383037415723659082034048382859262193841341696761149562416381497839396971898874035109966713127778448749640371463129165362815198761801348718285785365374265354533681693134335243709240603361378765107840108694396411301251687779732792075294207297522727702896920207543976342026345144956307442875818006174280129506918294592228130081155112508620497772582023332278366969707036105892259220674945248308843417044773548538580338547268180594196934115975276346888573765062110274635924839921804765188137316928500897650640339574503516422417580575471136636115627996526978333455456386017809545573989844752192662715820902366095667390126010195827830571632612238830466793525660596278548038383286924009477810593345908767770379210133552133870819455671893732300140731929555730738798407321639464940230699148960637245821151473558404170105898507506722857850445624567859768015163695947132294427477588889827891917561217018864029321134468878553028903681470926462940079982059747621048546354739929727205985754931779527669619280758409298657630377782303898422253058853189125726213470558557969772687003945977550518981090973633495635582845324019676272780156160276811445795952260040139356792964922375844260076429738694613566909010573576035327029812990247436369832398428396211160678900721952793147779350864546534328900403000629561992917647258093562182167560865651667301667574338343685402690711383131107674298446387584077993276656340550575771575603672334931378665061700335801390478954153123368451186175813782830763282333495416691438069496412677362243652288985206710600606312085026821334581085698212566309240459944366313664717447350376266000882731678310693050856217815405947682827789377682687812230038711598591697969034313106403205089740689968049666993487889297229471856458441053650738331335609403359446764589563672139929787263029830280082795972751090805782706812514306641238099934656645441852606175273538585532450468644128406277021791947953214836890417808202398291225717496749384482850781003434646917504455445146269896868379188570877701337245337852551208761681840715474554734262368247360106781107146342279498628012831293695839145704494753673390790030739343870307018663989511745873564318643247202753307208919697207760644525524469366406950934064216922271070398126267248722838619468676571581603402802834474531560926585647979290067892742113020792725907876213487607540691327325841434542668636521459399785002905886596473916952484585544770708289828142998570609468023941091756276146460513494866777810125771565508432338622192271846465246651826638992271124479334784477288260261155707689956855643490563541238918130072148455996689841045235149733080590884422318715451532323143919443935526506574716379617707776855392561818942064053207410915226134872013782500182764264499832995231411540255472086911833736518268078804302033341824792449399324003884780869801567135375917464042800613563422938788727369735388599745840268562559163888931178617199998560762555349981285788437202507031434314933419300584517492135794892349681995581318557757654539086762381997577372727467708106354307108018164895864550909930578442666431977928625720410754762834357397211585001442317211212760535482925331023832665787928193501982462377820675110324532554917118544327960298543934003301115035402717066979497058275646112411478008521460970909233571743200589380971670853955402945018095132776280840829345550440128243779237917339579784416831518582608175098442605412984809014868446834990771695117196615388835862728157289639262463663355658008750764475221549214362884565172058186022801853070481896063522920873030162520852479329608447576599458363364041155064425249475291854970870818896465618108637337800909571335223944951584780896754072388260053376711834719482813036235799010138657915508221144524454097237502403624645421178826084536749627623803448624663013948258236586973895013333276531414086940602808389016571551415699475876467776796688942409493337529757037820833362522240334594020111170258106551731201231294451795619757856025872900257357641605970614963632034576124539341145302888136258040001512614536360709087338006522455534558439631214124468284507436104034934202541399831919142259776458798609437046203153519276671786285262824142065173541018346342971847655149884598870040636988414717832231112761783920787667667425168498016284430537160119484555368918568773688034523189642240333591145765738991859908066183370524952517005171739252353397503747528772306508902191611520530328973081574103030726765187477293969212126502422251376463565088460354655810923029135292052974847323806013997143333427874798800213491790259481874949852817509982078079963446396141156718758107640023074270611042599337550622896794843274761805089127164931310397355264914468437385042590923127292229593649800760817350631076804220732487947698023163177547994393471674092354772376292841178888544053890217927256759992252207791325812935487992464994955195548146043715189092981702564769379418074962471729543674690364887788745342924255453609544880092696380300955065382676294312098004291856152514747845581710078137203672717791382765436585603532873078669033389159293482096841110064811628562043165181374754969088587783037034723418190540136747333468676463935033305812100627134985537657124690986667504292889463442616208227571043794471444443071370563985956999376542719725765064923386332151724772706549020554476890536565160991747242949255836311340088788778698644582448205154116529514533028519861670643717770524996334197680414670193358295498533940382400317273588621911579474275463622179470690368613270679140345270583675731364811190316733226697338195772782106112818931505779554731654433217828397962975172961729558117187020298255460583247861583128333475543482817369864645112116744493979568956858694733063312075011380644755950704072399936747703867556549699700093296718888963667776303155174132269736940842136817013009975723243463063851202076672870830641366729017799461652889302488511250256505168757114505218318663591864289039487653964200350389502759766476338221486963480564858457911543773896649999165135857726332210871088041601246931015137222094746343892260687933967884221622107073864432440333868352752231569635522475808585506289252826761774636663175224616434951522705932601180507119933257966295930467156257129279565806340233878425974099025739253787900477666588455491808536933140571997037102255297734454279015660293167232338852175721757427915689326636636236139049430144073449948163455380164459692635284701255366471480448912974748674241198168967959312774901504876633004707260438691961668916638290574180981255725706892476139770451014491937595404874472775285092760879731189846779434520171695798505049288976354496935906324637369042598404718141585683183528758891283196653185199982946402914891168611998860868463249226582167573873723700968026275236172616246570397414170711775866663762097102675817896485729821486660364079195106204450917129171139454542046535262617302106851166031020219298756775303188936810576356110251022798025649405467065514236861249011858696681249482231955134353675321221167440564868851989779531001629091066298057071236282491270758088813217857863095825854197070327524120500638894539076505614012847048513238636232236526236735058607083021762109697255495223459242814945831859832665735138816982260554720950440829853413814881838488618523569162037426596318091966809302017349507472101183436018636704873601210764044867183139859429731377623058793468083290002645327053536374052157093078725743020604727679800501600919531775852907845027210453775049263866737012309130825986159809870952931939755482769914775322552644682423997453145982521332434511864545682501362050501558083356042017678944158340868777870712108360773275165935818022624950413600211524697481152708756980866329774720362953607006054100597337192933942009032520254508222449198882161091298846117330166023517829440616038981661234733751906540702628369549582528171279602304624798249467679569954967818696659583252475760140756918479303236875152430713482535579996189726645989162819403146947837487537027115225708546423652967246408896580096746351328085734498055027037621441891401855251799270093393811764375820368307699729035197246192773450123345528112880771078157286914105682087373139968517977775911290703463839527377840100668201666674537615279881872137594159470843876611818734974878191425258552393694450281867407692230542781800944038562602817225812212665535949735082790837764298364863814476037996439250555642307822215527721557149928617447829756781453970354376546122887989441309421881942717145869581954040212033536614243046964463865298835821570788030756971992081452032124552959046162783469198643931232402312274846797237801652284996470422475193133532350891558431787005901953793188331513673941967066476164188756684672934391948792636167450515242456541721113083339882892942048765423328126640103453430789763865017173828376678173004894990141418994369563888393091990668249125095740017376918532291601325614173642625235694954761182936533180789172146364892969412311662987742632467786671959150078762459705675716285447907356231818785844391694925091017023676473872867857195364546364120857173812202634003351243440195266970766652547229353030909950632412899442298626251056996415316238021024086115956787482076960996604970830312293199268762822235674486005546639774050517762947795115365780209043693706515853112218264874058941131928356087430216553601038807978263471481964939365881534653715772795021980280048753330038285051919923357754539701871696840913298738753328170055776855652288809921336808273172359219855165908584591542685851575917539464984465323802689510665859413293411303090829400811966088385142112330900656591629713210716594301385695496437902539131023982331600834174394952059624326842750552701376892280274467704496727158664233884485803939556175797597334055863176122791456123042288250609274451080370446036200869888592384937021739914286688507345425133356741344756971742809639918757486296461557148015954953745679305827847121301364355065497448548063329405115908386787074778417054146145634822890523190292725916433058968899572021783500287976643825524903136404576472319573905320178439294410224361927179684877152214433338758564960718308623853341235178055316954559474418567637318228104343522120822301699946988684016352659292944604114137491447125152912653251352003296414544135970058089054016361241668293511840180604169957411818439315077297638371558519503033575970041553949365378180047840036026319706612278454947602354948099598657063817730508918931538874185733822400178052633266869932644407172915341467240900270781762493042836798369851595736079031394346135226928783113711612093472690889201854270658191608196944477254045124710318055803595552718590692269035613653952356084852325305761204216437441120477101239430625228006880329881455880899238287915899661257615071962257783870132307628069036130877399974500948397931727316548773346055731654878009176785905828587314108590529488239743333798520189160198751706520966651977140744670627564439178019830892588622145968219537277334778243904995147843491759384810245568831107190032196999482262205833608964745894110030866407387850162078571326211707036322127686501303147286200686654868186899269507444194958679364080842465737662354449236734630686252535790357948558331882071853123224785039663215346177803551247170844924474953790813559942096122760667259701289072085249804519547655328595965120505903809020070739412880959608426799978566822898197204543764364409107175870462904645011156052691040002068907947792838234192129246764687715165201756874083816003782060301795064354769058760949022693011837726762731154669034170955228499519363901789326087010824280569154171924843847848224399609314068169764855218866491980692951191599743184314924631906232931620773533575237006702140781722356560423877998751897449306775509071589695795313653820709405278732426594864533072037590591542707087593988160751976739491284448575838103024643979960523800378188067787772943355452613683670304952647201150256510328913409647638360210811490546932047862181740693234525784479103004880148744327794124968110320455362878650941140804548615484171585602416280251310824537918889422291453961025824600694805204122251046875100548988690705291750512940034981023802196827570713192427027700755348851127428382394514053869516315861917732894383162748264195686882979439075968241972073145432157230077036438310664672762327506910493304278922698875241394912585344726674970003502172939075540104597716834208463541046467779172294638321530271378798752001388246250274218793713264584240439567364362686909040586832806581032798073475216023515012511598398893968644385340306366872552274764443766561196618390123215890276269713389537293512953005393610131109456819485376314449753000444215012732990143367526347953119409301562300901035985337814949616485142366567559864286039948215764437011588464676207972828731433308666834289402553483936507132803582146263365631904000660006827223523024516786577321937144240477091927065520250100696696788057802743201415463943053799139948729760425031370785312419812695133043035735890636214291732325788893427781051794933024356023806356159088694926846978884809058456786707031188943959037121367335453878683675208286711246239504898407117467309136100183865901525708835854433473115488771870525651557190824474514560765822456975291145050765424757235327642711275006749824452966328471327395074077998326845129226883617898359721208355207024070478686653286409629338000859660205535609195143128219710793080783601725782071706229231030693747134837524609221906625477450400202121336633627699686750953565637101957714225058650031328462013420843050651245144004652381729484727594036090357002057579752871998732148033370741279030640062133024133991718745778737306345756815163859554304093637214549229635266914407724320091777719666721810656684112604066305715837111645998787597539955148363327558471953287964372959600075719840251962474474773375761773925024026795247022540904122281051058581613809407108630469282441794376969910951379335161804486865292718272637111536838609601905383713780266765725465804121249839181513986979576094125046278576785333177363692665207384590364623102566161326641681937288716074249200065142731099188465244419675604041976598267413585036290909966064194097265765154210294006977095002803973887132438680352133324625364361584229277918511060658065412970948499196199434554205912799566397959254981014648444276564107681024088375254615781597204965233547292319708800893949317135799084925432956291506100645989522113190909648118957663750888071823168702238656339678282595913467317279177200611487155421858118431067318262470393358286498785137654297910503460857720426180520551331329797828463786640931947098990356259316314949262811927748653786476244188574368339194114319620614099375561842299963253871093705239409655426931805550017490520073398436493238857077366505989265863929233747530636844245642375176211848354861502408056010618143944215406857959540459076984364723745868358645418361499335896846421230444114477330443641865120567979824219393688313609083866923772557985726026295722172939801567872117608256471620344596913429705251080377184308251730360980160397968755248865330238305101243397318982184919518630403942856049670225525317380195397934457924602973175077539559710326597395521561458945333696083007152292955781951041587333837680820747204424114501015580667710745135556006653003890162826813855746107264845239502329929217103248442501397930883995613788998336470226360958257993824244342232542635002950440675567336773038433568810338863394651997337960758188047176275922483518548173150785860788957338057110630860088522146971129228716260726398355870107650821998862976825392099007507654803811841435003108152512817026696198544894771649869178674259995811203930462636497804275438301073309650736447865344675481851836129222071938751765355259027973211287261167049559543998935372052893530362679789371790197208833056314135339739979123291091186184500441776031378580824663027204233886968728697861870548119476875769011628777844615888975698596714077949163228367676276740112441532763426399311399238027383464289104234573032669067295418382391081126555942987159461241262345312624031745275115339993238424461641949268600305098134184569733239885583453376551465912765270842896362918239941329333944782592664920047758795402008032570902293775054041987173308175077113500947488870316245785017021361058777307518805419706072684582146745729217416988866277365585421695773033385878687899199728173763959222356575145261161831893710620833848447525723662181908161456536156495281438883271719785366525980209888348754292076065205971996397854916030434686564115126051394755055611765688523892704304925546088607393352039429854836353530275527859987361820817999670860628618234285388934131409082617363156143663443905462760231286415146726139336635519149466456395429858805946794348180764381549364071392765005259539281020438073212750353851781580765913455870013740091020944562371244080359015763014477236652622074030984929385879557535567630988392255826436454811841586923313830448856863462156916741375190823147308419455782576195590564543272692298278812846944562435216733156295664475719936297969496434794035510322074563816593998970460020995860028078123911080400853835334822935123450458894862711573616105165206915732636582352040559268029597648575807201037174478289312951416053866383703709088966087968652612892003480793330927524696639623735467753265392243815248183387922389838922160655440288811510131812398285708266085870026732131770548163330016448251052211128250926629545429485645514534502974644680046736613153697620551668771024026747352874513323268861937016348186114606552774992568756573918999285450034644636478591064598796635533744299291932547926953796548176162370042979615050980021542020577310337361083270479105118164685029458183723253861210795795774089783646217305299906865425414385823695020391944612377693007998136399542989370994446034390421536130325335348883211036992903192062097319343164129568877532529252699776801974212676914639198986191268954567933245058084456299828430161494557522664798701286436096237635024102115749746552068547678233579831462498761978624592314133851726794346510456927995702310149866389671353419722480630091152724994488887832473916924999595946110521417063857589046403742606070183831336804785285390761509602565292528161973651549352907716100749351174907838017313925309063474114540770347019062717493582998034663168709795255088967597757853704072258149068103968914933328644349386555662664234363371031250943199820566733379076962638772935526917801641376041656472075575910895424754423431500096332766553087589472928594250518245166361036635755207502436111906009343178555059669542022637189778033283125183770215933958790624032147033991018334688834361393364578059855801825212507539708403731674903427341164195162764680158593342425848177655738008919142353950277523503391472212431094981365863638488001544433290893819549348634046226413490745296713667916762607805423222453452656562852086608857778016013999471122217849366646714829805287894011467344794460665164903263778352180445456453771746547897588314887666696701456016350644137490508544871953826770792048651062091609946634137616516633919957083760164831881013702699267653048362251681875070099301810284898695395411272672582292637424276364064686914611295398522694372931566285552385352894984350951947369527660364250527960095511263175894872434660004767714885952097990852395187909279373772489194672411367599238578279452404314815543585860996511879900810798622779445633614210607020367785632087795560602062885659519480652026159637509965586022118283024027251184855458829332575766151100651950662762591644062381415725987122135610581201178845496955775006070781489620070262684682848650070154839651882844743048230230237315142996730650960006908670076262642699879265729267202272707332946578558823781029374693331162024544718824533949267049714292741902158459150136330668704049443113838200849960691469003442481359404234842106914150438775955333287831152813273965137247082741408332047080153280443184492876426117634741807448634653327394758612569482978397790737674046963921062464949634796446787771336524874092627585564027359987573890696359225960528009032185713256715719859079458148914550744214262640773355372487109417151233225981078341909579377569505594772605082789609759962232745371717481016552124187946749585881360912446119292628478552522102838417767466553255451085586514940345911961460444942915363312446784808802628234899706583413414909740246043487019174410686749756402258151589518502577428331245085472973329106540610996618535093398597141998883619291331154597946884490512963657786330185825875829616153356055066923316365288010366026082631621736666404436774023981332263961383786805546366874598706319540400506471769469318485832464407014556484275564270233048378872550966139139315069978485496048552532507996020124085510737250625352429179068123375442564481042947386978649617215774762807245162007960767554860723896794630147420962771214972079439466268541845588300713936232568162887000806289041355665687315921530916087790007523270686185437575172339319217430610505481112048694448966867413035318606673167493874729137308670899045595206845783694913389274579147607802322677114892279446090780547066589615096899343725683138330571450607281678773474524206991543735728027482511041637350121448736593425530575130065655376479241046336937591230680739847692483827887630799428066286407599931141856251859310247660103244402383763128045155831327301714295524605390399226324150085997255400386707753122129768122332123534023513499777319515735099782561499375014278745805765104616138037879951067386893856569982118997072004755366920336044400562775126151195745842764118200336253506403989429794499319981657101161547700263597220787484841414695370863371189125873978392344301479410083720570932860211951102235121611727394469207322912417812072624695984683760343664654061526068692827725210987517111147454686418176099020788456622447993846487381944930081950262479430305558639843062275305393668785852562463751709830283624225768779910166091600177737944586716343644823870857471142588589031963636493119347578742705179007514917284736823228470642939168040657809198033305379204496488866421454547270884638857360595631933541532304275322328947958045347988113445170401046530928449665305406059804277635060104266063758317138643212800741814124519599649154845714272263619201774352963245802635285749031113720981768006332672056289558289567475168594170149351787549486782761494453213133342052247126147314254332750715108263905405962383747219086173212051945004488006897952613788096089057013792015780036220960714838722883791080648798967246109610751025056002489424965438678644247320279349999430918956149559431754108293960726852552967124682119266518811048291926760677732524856907715184589993311031220340418682143801792491154662005140197684566618127200142913758911693953716997982841263559728290265385061925880557806134207262181263897101262992864725721176382769233422325075916224281297387411258922648110280549872192036004948306506820854232985437865292037263011206851576936205273613710829969588578714604332882198117563992667615873681254256620464740869060854280666566329838104225161718691683367603637280755569886619971628550053191868854112806862995684082398584433578712767992310737212198348411192465077055661393379726995084535202052999077755485601855446040732840851763995423214769417400345710301093598724435508653809607038747537735534978690586318199968182746443913163184285510400347493799520261097655984132663988840341561274280434050140331291168553153969060003657149281045160227948000277974998800160447468351560684584287483608351127348921131453998085919727276637557844911209029674983521689273005153947436474571741373116020035060771446591254995027739253116301615948698759279286288452416742855415432038689681550122227522395696396460191628019488918053259728557544762339019260399983814503042801107060076623275200358033484898778443607721591805334928207189315804988208733052701911496686233116126643400922156584239258100902659933079994948178832099306997038057344042125720941360982176003523099377420912273323726530992029236107894777751271079838148220860143872818969616429300817791371489593061023657006387520391598623623750550885744699962021152364445133303589958449478789115717359321464311229255408444884028776619685155628619054974550310466271061981359362548335075732698972334876771339317315547108782779064859688969410436156583945489849850509317927022172296239155049126581414962376949741056986282187620133044931784277919907962476167946543905755495233558907406094301097714374083422197463376022404357640747125241623086184887827197705211492416241877006319162924331717853430351176762420117330542002229919686690406528812030506843723832233950341015520145511576898249932788273221883276236813491985758574325056061398688333927497811104664511444623752578118484473247751988778613069452543865888887277629046430334486605320345533026748355844641925455779861465850077739491813354409548754290940277391502479832412705780736054943980268715430968863980811441922062967549141128475994480158874974935625400053448693815051165227192996603922377817712892217090515658670782847936797018316002113343306202198148760697909253794933341489451657823186420544664482521997431876057196317225620800064437816405779024038726359618657821785479802640074671933320026750985654318654621129030596671306941391975930843194512395078644804726885999146210452003056438781189929491446264525609233632255080130084224080110173238429634194838636135639161261646066267037792779565377328928120007680113917154805238445546670671807095917475678451307936561821118518675023432779275166139227646971648431515079986214119035613062950770203876571204159969395722284641483960387720982638904916223273056456819394897379675291914164260702038611370584871866437956662477208766826806703884936756258351032155002608764550558204900658204178203489269654706715212230053804221855625518283262113197909451475420377165274526153104728249822009341783607789091594083629949460340609804306887510991880531297264199405338822108173322244106025022487917820698738577614858671026559864324281924716554025351431737383798998861201214029026848437487578546178811103397851415745353561547050144240522526271573872022780476256393755416047031788361396736378711031039108542534456933385001860372410492588791688528911489159450056898314032388335422942438849323661918363061886163023015932251106939339711056766531343824787729149626175172326679701147149878044410171940542066903810354494207799700515441456393613673952757902227334074013436302290435214902549130723450111986213808877654083237302869205685419326225843716358104033395817876866017478692151022664837167765347543728462310794857636987484741321894747749227259587580402273864806599936379776596517750507969771600713109307646849057437611983388918696675493099099152276833034365071069587314514762831858329233540920556988975760695154877391520881521533236772708201732034817692715011501763496321808506548474315418500419563341185864406498474842739268785102780878830728571877141143750595970142400567507034758561941003760761895510798493344931371066114439591909002315720932058996483186746580059028924997029938195310395690827909248393483814202619556986641866779789024819769320257058718299599595531825419543622104530720241971635480682540856019515002116771506676712605985228136635904597244866180809571514152494650089049802849037721754511186668735553693852642910184579018071400793157541860953626067141943199696225354616353376081634910121695540653237605259854712535271507619428041715281317813123176375458941687332700733331536802062482899736182175100938885609642299512084468371731342034905570763798675136864626504685997142533320066518082163790730181623078472184181193751936884019090810854357272116829868254460888199988141624740373690218996456388695293162928154664009408329783692398466007434086301659372313836357008925364274746227715382780858358793634464905567420747247107748148783296544584040612630425069386665234520886884036510666878181172049045932831181184250647930628555936208019966645432853652078625102507580602653455403656136605609738637574922312597467016526344003809959347868958473788831385091236405610596079657924041370933947825958591314751815592523099650736428844973563158342372721459873663158815188637785777205008233981604933261817123519903353862911282888942176145125214046323230855623121338809708263394229988696864749632912562796731944583041024026583985237463050700561506314779444901603208838425592266081241540071755485239715370422757643478644354259380032922892251960628133497876064763866492644020964383507704660959972818627353448262095225768658952119112929468386914656721942342473512277756785515867276345563791296137324147733828408131179251726459789328368188403710316486790215054815795738691594089306083770120297890623043257669579648778555778117425760497119674621716723642036073678079776989598739741923048249291334097389124650433775407673929740611830448411023743438258253770152320189532264652411941091993797639352422342663772079570725508368926794867999319283233432536471252035546698344523679879123115101995863163981139153320235230502614465503323364510612289760777918099935049574402990187385341478275095179064024212467925912138933506202851249065949285353535195481303861887075822086355322290531446143824056151650913138498331612919431261705641539107971118805892558392618666742635807361542294892723347066279648955574693205270524298023185705255154841220826830545389116538347819879397057343701766014376576631375798423083017816163856332739602997002771661254575426635459778831394907335912755312756144992358902440570852907981644018381759098560984449653849638553918718197603371597371310666472628798837902791543182987058049324313243461380968648960258965937073515018491819802476144178584002027278293374692679293133821124620225258409930319476410431443623506316581369743087121550878836789016320670346278472117348060415991234085318033943289272232692938069253617781398639689881389510509066262591671808242853414365374467203640590293185791449373118126116439209204347284972628848331107200422160745993087642939709294785217746859086770658093445867385927686364324812364108859931953641188281619928518094745264302306795514202526170206292710371696558836343053308191815205791026267488534303883133856636196984124166499380195509986399736988446617686630136311852548203193472003176339027527068775067836527154716909029400589010549318513287421774787928383847892256954336655454915817480978906979903534996615417114855790791630186501647776509794739920239941961701667121549465186444643573133541625328892543540179584694159481601205106197177377325299456645209830690216113864558763357065762086517982795695190874085037512841498884371847218061262199465295508334594476902329557664047142473733657164479308425927599508764509269676923805622871646968270171124628832227763113692225822249158121610291039493936567664187292906377105558677567103590328035850483570297626906243432622711315348415982809066194821643514760414037422843966675398917114870555376610390226405255092071810680341987511791696327077545563572801261273700218411288018387128519571417600677629180651390137626092027964919680045670190288171388597708889424549487847770129456862760520637937814178941417140231308029584467185499779217398812158193135732877973886804417964062809317212991600453246949241468638802856466034429447656786072843394487583928186859151770815148382004865845763528092878352526859394582141606475876001701816537761185654542106384596820595946404647188043068161030977758560360264048228258993034026649532334535605513388984085223389436029551998023484643440391025258964646757322009281556027470523828333274673679805324977298076148300101676213466746578861356262998594460785890292822271626648022057625364114136845848941723025995788124881976520879655906500603959440962773715631813482387067799773617044164450831889199987724544623059851892049192099873628735864429708636460058448765391158925321439181215103325741872022424582910998108357327595647647552821787099396442767986634800117201715711365765124010970781515249750631578729013222639981964929551496432087855691076171014830271534293670758844012967102559604054323161522111700143804633404604180595619707985432961979663352572492092478717475077413058666734487538828563650998204487165395905556573653030446283138564963091156016056613159619949756475955977584195701636365237210322187113464019408675202165551197804952776342396591702863246356372587001343563655752768832148379674916484821617021590616576642369560256985302492883469155530029624947090863917434779092789006613580363628177876481224655344851456329971528341602439356817041421596439163750411660009779961460777228148933058408902500588585942291409866374132477981038984492328455711017719113120138425994654737995913775795878089715583418221069074887174661460950626961692939505882279965731526410430507784977010392035875663277644385925746213671410077608419869733214252260753114088137817339682026254649233033571913826115179330945810916648230383466122880537845502425309720427260480015402357138577670633423736571368475729107178481833127983424252332183165116676315609642857704388993422301576470639563871230002995205837531256592112358602049828343835519232567563316554038608675564229086755716688603747933052843143367760062818445448632181777276863377865944479970067287984138887806775644048950513627313564113257908348106749258132646547201921245657976987996422301078918196370947068762143502135876088419350607005013870857744997180989539205088813138138545427474689166949164276677579974628397320080385769593973659335583104368850418346387960826211857057905450657348589024229700726555389889709737138686313693728039942086639837870816731682849901949698244718335193161241908907048409340946107861247761202967925552675913053552478113794261081650266376113053558964960693017379544048267219176308214178610844315456479850909235532058200796546664789272202172529789866649583182340005825677490642281707829441440554224134851014677121178563326254138514930047447699153848181215957478939434550906310324387358684808307960273880643907275050144132538147911915724477787372967778456966164626045150003060635674028971824441017389417137060866018049475803149283837256271944363301554036860340745440049927265844291658958957225462854679964479224050281789274192660925504598400324969013597757401922214825514146443302066188622040144889931475067986983107103020520418016125747674397380932737286369763635191899592358670759639486091674538001031403881010325548690546779674173880345060061167979112310018244434442463907587893380602653356409489262871138606194597857663039277750367736318437688544598443964120634658054229201580545993294755231222282896089698268254029910163790786844176197162381100445729060913115285180680643850118164450027367378623210248809498402794952134756494039520819834974172910060910525498385796396015986511883915668647454927781169231348073104970401957278234758266994034331146513046698051727958279947425328644811546665593587115507460456203308623237976857452879386753993423050814076990541602362083787849141626016808669543056864141408393907301163356662439779146386225583750039475249917017569010055211960725773260975329685346684808552478905110905136573004424838978546007841942755402031946214431712065060255342185624122303677863597036334961625638166995684721390464593762411719798792867425450610312979732600285675266295809337457631979493977874250853219020818281584504805339448706861470020926735067649374338852582504377104601090539066840817744953133446069904365964178911749311474459441254461843304395552992565020917704443669381065786692408149116406847280753383637391623552260559355977538434050453809389920581938142056336085030709904913004341858326095177612104567424472845789515785572012682534021015294256017793885043643351118623704390030643865451300050376630839490324553104463782865165041819858336777184504477279019014376767366697040741540572978847841497627103823969256191221432644002684493266872956917930747686383011299271194834316038708733579969075544414102467120446754994630023657588848881590684395356376864930620736333482109483140697504155392946350244110206333406842639080283295355307127361618243620644280745260193972449922653523374821300325796002763511587171468367411906378959372000005435234211567840189580786395230745059058780026978298841391482423022004416991708340330033258855696764999312812922980224139000143795683251600213626299844223162543206761328504281955244525175059854508903522494658155334841152525144308273286909812571508260878827496018528397172009886356266979354678794348466341288645116800979257137712446288221822722511375612420764532036530613668356736994037114344564542228466584450645862548029336133875586019784211927742354288049303731421765223774778792112666882243932426868446741216735463153785941691390993588434136007356838036512473859419106638021540006363592133049879665697785486841076946294632440930216036987941373741739425881197453683971318238079869669202349133042111771549490836577157139628150920097670303754168817555234181815266226866629205310111678403150737050124233954783155549671014352555733626768041052548753882536957247152402105094918950944295403669545606742890432432807521178207701680005319137437390650916511652435180449348874335826561654934889448551623769815875122202440840166542669249347644526468724229788299657937488374489599419575391264590102552567973680464289592402495420385892402797277281294410084015052423533468111932961504266215104414386757553357416085724390365846272518666473068115798729720099180282070220016989920630586597934115274501824868421142790525452360227286418861886049110942073574170828940018366585035135539132797797089239413852977792253310654292512319742337414242974869458373244693936768083074790606092900225089340069972989689259508766927562805028616858742385912930872773989505730847319897854285566072468525786675001539240723036998164825523840675203712248196901841333911302406563217756312538541409822503114644485255108959776627049695358350415706702585052042926386104836300109869332827605857463338099755383139159943513227610893513139297618660559601814448714310437665656481410610669978542254163033323962511394963676438429695346007902049353434794779987410996925501607914274941151684649311186569462799721068576562955580200924077780575562238969189514996015034316574107129964488318998401831318955949053580858730293875929770348983832778558555886921791634371440650825338486360594619502438695781473195010391095477025757319676051140993083865052717184220198668307878484595941511912436443992618105400719384581222955985431132861971828754745516047570817559670462292236587051381430414782152706536131248035121418439890436424145850624601022264310126341736677857061128044268740781869377736525675503345362590227746076225409579560397229395700699693062699350580607183435394920751581859912081597449308129844169876697532049343086749471194607879711197029951275354233615680670669607588700007815673473885708247416630401272785377633414118027714808784951373262491674900252128230866822043987510221534023889579338594811528550351005128159704892758238111390249598602732805428836330246296761964693229904875341459068970065430128944572012517089207421724639818986095033395300954742791339378257992440397934535083102512598412069197796026534688257722443470496039732976299702202154031588411088324963965079547858149842338907642954788715048608295735369991754458965714626723040565526853852603754890608134244249461056585825006884666616655652356961475034807400193236291938680007024311769559452877893673970302614607893710906026511901370735267254465110815230007438244804817495699968319874977100170857950896557009075080673188418760170976768883102210500156925424539003720395469516009258528306593336888067905370719658901665155121567276446162777858850334466213014448249619191930962370092004666512942955775462866382839353279419278312207389322855898034195313228675771626463167565766202249076304047257869160187746787743582493223840071973988362916974963223015353929135400916391472628943551708063497029139525550908105444304225513476889891474072228606125360296993919577336854950592604042201309446547663232687122129820322591628294647454092128796856318847504109724781722198783603032011551815841097484486797025397069688780007600139107027886294554647889304888368365901233579625667815631946244784635006567242490089618731834266513394365118789322549830661883635361325946924170318832647383569796641796040694962905614428031499252267415022333509507486319584121569149427072727970419141523501605841994095287874598498212091753312680746170592297872068169116307797505486901383206922400183637753462013123581530301276897276630350780878714997329525551521290479747774986703695138326814442022485224103625766531880354469206859048850607353490887972340758468663317852896288218625705968884717452386413428622320405244127987387342202386610949399196091709623268168200101077017123537881515245941348068287206928154683612110027125444295989822353573966563533223446598340336684913955603808929621472325151135068497475229725732331072400158567443650686140105454897280211978965714663340476938377945041163754821675774752172770606663315010893101208980683122116076023441836226122130185458280844495782916246580145730719559201714029079423770952487843564174725387870796096373504614247629308888212950416198402605670767583554033547265813110194238091845099090414517018461213065304671535762183940946977732561206932127893485505522661009214315092275199433139121798714905216539230965921244512336344213895334859890213048739473116233269776856020730282859336343708574911631226134970080565420267819549708923089842917358400976033854061338661439271806702706899379303496965157131027755755286576837100473744120716166373246072834029302696937055139252529376047541844511552205372621760463476065363294589044398905389764886121029792895812618648342728979116716752274366384360524738437736969472264986110865161861644295962907765828497667292577773862501180302162018441207819394734390213545387695978431744899201961959884003763459082897694116914246876073506489168548548055793336743433597721673412227958711134546537739740681009264719059566251825725359489616975586772672246088409304955442504807817152173017694095953415728540747499523464498286414246616946231002384234682397164146430412596440324236663658209679339771496131030114734423249130594494520445726136213967401723367712265065218714330807313637728693588694638149152238296171685873546708664161059706476203016712579389535629953755323401754369991058023622442246560107053966966998045640040897084581758398440872966018809866377724732039229239018348011372571177593324749221786182482580635658079153672763326217073993826474405770665384901900440259576367132075892282015030495952567390773156562844247108865407903489211443182032679558165780524378073136507328501491821314637914873163997902617854936123744250117164502982852234532366194658995549384484387283666691068428915821327562721611398678486425464455862188971196579411641042689493336562065693006961430652378138124577880071194847726374618606651600397520212048088150179158001944647999503987488402514932631911342451629664312069200544507397362444415398461033259597409371875813593778335811653742228226656037082217327553193473523012421430708736147673132145221463312460833390279217204742629513429917299888828286116029528081898172575383842135202849728289859773497038149709749355628013933697757629808072456919046616538500882187721866668464494029024745577617578205705229364570923170225853619509843087175937177427876127110582982307057970136769998867178916562969946994624910333757099442292958299893994867629763575932166652655337803289959212374026527453988849450386480643104306937425128021816876257555073964914872918319377293525886520872584205129092282293016858330562885538490483816590267548731363023079290769655152995877499267418129097630051318382347402352021663922217705453420737824830938369148723312161832163825451422518928929178303159725573001748930493188016414967550065181431231553275369080335523184650104103129922948388340350594054724410706598160946347605563119000844243752880131417498928911337735440144162750941984382108663174612671210918467244630227599873996771391255045364838652586925923536625360955623748605581529435078194603259259176108400966504699193755755292882106638590113976763390577050038183260846927265862087959352986328351510713721665878928438905370112978082734978515275422381085581024920894846768707321883619076693989412004092850947729762184509955210882923275685027356774367932679583074128291385656764278072111399472687835143739129941515491383175842927143837216609655852224050572718075603538982922371592675759503352181620580029158011590622364317993441513330792378580539374261172628315940526413330202405648844346333699135721361732816565191799140439858972814286656524267198765457365502948273986778532085627248453093139570170000136575505159376276779049278827212484951998476805717712937603549409045367692283747591956491855170177300516412706555412428965987271805261330989536428904483596848998573183669705306263683719089716814290083920585883933019542424653089070527165646686578429779740805759002410259479674066213011106280392038666885051966339472030900902896345530487073273158519665854706248401678505219964446932162895938257722384321951168906493078035513157469468569575201717657945411567153083654414315988779543888101280870483578912979502376766674015832811493135707261818220406119905060019622433754866305292896735908292607666352885679105246348537090276519260698912093672616233702021488174948125668991233950867700436260263965656556630782919524861973225362573093907278623892814202435292486515680201795957885195813703842138090324957199242755144779487480438425688964711738770694633650818108584428542554653347988948399508291406755528796929131198648250859724731978299515200955899880384816559856192104321650250640788065296418711329150902532810889872511802579309052003316134317884149090028226858915651500750363428163863136109470221149821086518587945247710872768967515435497978265001480687125507399894796909066012431786594145571767241526444982633422246249079870941424272946220425820644944335955180071320534797296203253877667516217391072470447220611984256160712514371101434663902775771949851565392796124213327489269141816386340612385039576757437819676302717379492325739288229167826421827507289718218677909966440770009233299380554368809765452824328082367100984416089997721843780358132470723968394188379815703363927401561484303378504383779319945158790395618173050635310671499522428274947475981190682015801908547627602859823863032668512275465228241202506398313391845798720156260502156735251544373515611796745564963057029584215738541890504681223716466074633759812964745213239274452779705704872213417603454216467631474824473023368419715968005148358873421553873590936881582598985286713049872751953947610921963677193081824339631958653161352298914529932559618997791557216854668499591632160149390202264858447056846881120048059200639439839675207188239375057129228827720066950881637212626873905728673799455373071737979256973321239792252930151449195482218420310789832528809927718228324805768415887579114285623580534402959736620635001403948612786741010065251575390194980847277987547177512462219074056124233710711159751821965134474908846101552503675111455872786470253499581469396703690993276956978229064741123052397516442631445905167158686085138827458064720408155295641668176225539600021150456165891660161061693223621519584935085326876559745508790381147479990513727766034611847232761560345511942805818660918428326249007888246179664737576433252899375677724033203219055768252969894619713618221978459638857311870477059630205893518919741126063230485815357377592784771262516134759281610622113857451862897977194961195867825190486005349663008450622088508139825481348386383780661120486243808293263275058088410784835576620639038236118480134783228705872641600250317746716602468547570278305112144772157688989506693954752747036939912632094292573388192209084815531365457584918837017267973233534665729493220446369974398047545789147675258189942323812761919945700184956665402213802352961417850375340532977741286694926592938224812980846011231133748398376608032663445560641627259324742863571037668759794296775852422441511153351180812260895737442152709653754948368623568279746873241931831851254716441488855761855049655014490506354697065976393009780815523824046219888740955086353691016583611276395614996732539639101674418774078698187672411455990087587443625649140564390855439912478016956213953524843339845211549039250187208479646134317620075443910861337090915387163295439992796728714717776938874855459148588846273727130614666422805696551460136495926657085600612553482171743350468291702973841478227334630935621474542412958440393912372819278293909383959970041893897469476684799669508325695426986183978353516059266648979323713813190492735895042803849768189920917613158568711208926217784704010748324357617715870162564803985302181025875687210505960492726073965543811149940582142359361181799092890534161382207077013776839310947854669234435738312836310328905350050496834030643401812285962545482464492187849687968057968923559750992321091691949904537566768696640437036012081107409522018248533250812101751054790942117704134707648588294277520384617040447511320168215316473437077921272232075123275900476339831501532581759018721025830011623787923316088576881002553525840551838100118186015731308232370127137431983380276596596916948973760282030743617268142117395160382542760890145184404586387312424562809887923318690085778283971616585845016772405147940706022633570428845595816700551064963697783979104390929635282472619427066643610154530501742962420512306918939404191092806558165271376084667768612617413292721055572631102577156156911859612829961000210587253332297586959428999992521096654577734843521049301361035777208710287611760699512279434160469372690637241224629889276425137973212709525979899397323820388799942251531590843871399736089223088849481238481349731848508422832671592206238522841952736922928258404395245488639591606523396520684082628929549405838495479375236996231639448526806221808617105826541358929284231639965072086058682706131340057211948688217575664406626384781671806281306593924334909127155341754601650857289715606578495037023991173675432594574052310605708638695801563703650263174452399733059334243746992807607040469797682110887767273462130711304729422975977041434511776115831772779594786186598856880521927051504648529793004160116285687919671717716720134656977310147202464546682157374268505229008324894920696338180231654182331201523749673495124683404442482177985597810825408865369452942068246689544246362462415678530663681751095121892784931452440977147425421106817049952554511949697255384727185294385853738407501166209235352789717961856351939981819099827033193635885649012891240587888981208426841339014876562746068349946842759758905921417963621180467719476443142972190081859703245427920427008589337651010114630896180090210980267410010860081702202795959466392775551101216461631404670135513679540941158583380974789634129534806816467345825624498887425738884578099674649651461839344706937368035355403170444480304312825610597904956164533589837983664104389215839946106923578801336257731657241903957881465070982401874724699343431297981423716591382661991038274904422019584281749752338430093300876274960939849403082420493964066326724460427848046486271137398639884839367972731289353637835658264302321450814013654752807903520227418551298121709275743630281289038354454103646099721110031154411893154297977406747677067485565588007515494055316212067494746527366863812983456991150996880796761305691906443175798819932249375159477831313939624964371306818073474334883356885420619318876620569109014571972617372329465342676713936933413375578557314076028333816868522733599163065313857866192581895454160052489663073570676329072180435215455505269936715330342467433681398562458337608129476253923788079553171364406644194923775158961565680976283253553846096676372317771381143523334843759014859318285585590517285536396843895341363041381296506554536897444388904798370170991714790080621096249602642463673653436302531790268304828335567426452974712813288191807200807699246611062199975134089269166955305133601908430667290791897800715398785123818160984676013440253656190508447828485114364699217647823400480288770416503334116217974058635718250167009110590035297231042729838640337567226352529843343786235413794787501594226864587075539707294262509493927215353887080607409065224882501490908246747194402773574439911515046753696329376288614491634828616073841627708690238596148863449216889849888205606229837614212017112307558950956768325608689547090556886237511778789948320317021960245863498301723454816560909318921577348158419916152995873963366136188286533525686422683117118828399774374382727077603067714589763955168687469980314169782260197348545253021159873547456832198892997955687165133176794615543434193046627646070076164429452954165388305345595189554236123305303377108443392940820735877984324502866433135331162750355833297578918555325956887670991815414291998669360237935964601664818799761104554964240319049952396308336736127107642597172033269175946705763308680299915714657560390785850159275683752067155496719518760788881613637880019389912662159781462532390937658700147621394397656683803952833242024559518154362122565692081482353016624401600602536895871334988359369107662579838660973845144595252571625405627103349429471026883560236167452366320811172802545330682895462909480770302972640359397026719408671444480464713151921769727132093867092820844459707659605704774366054602479066223913812491893588273152741807410957423455002834286500009400570326088182210397411672752543387952462736830208279497657631178635912697206290186452293016416625563056069315207289190467834897718538919358357819698652361058285647679660532398316567261292826255569033415702064427385098016974764235163118844505641722553342457334110856668869061712831490796064050582079185476315245622890051164619999619584471610726297961255081782988835557267904290419005379264676142075990518468291755942587335111487074080965115926846188097385880283561712592421279928727304552866593850668518295079953268085487571267284054027515290477278707213351182791074580802499776017073839889763012015271517110517443772310555271861744545117979206431501341087837682614696760074338526035020658294159028839058762459522331449796938534603561438399147162609169961909907053331241893834458932010957158864311728077104304719853396774450012499987337727184099609997493545766777865713697311143473808529467535448502484176733451733179925416130668743968403886316276390327538711290970582506403450791182107014329037217921815724145883453107033349925874468374645347593622133308545174310039946033630815163904717780203904267663557919347151675565943032652558312459041891848083982847344584268794945659165095943493591719255480899509900016232846106302508136945546411896150115507242281128804372916822649274529441179226790461459232805055206301797706594433222084908633972477843299888439413832355335917420313038863468715781842865415444971460393447953846843402232519742312639667573219630274224005240226252150473240631232273193240719936293709660582908866139473128940830569156805356684532728722454008565835912775621357628712283602907857838646285881163208459367557420573470393453494646690755049819132424035093420547612784880641510025140663887836673332188932424312400227910741387363438488060258299091294817148845091373550184025200177398168020454557188366274370923494900446862065024392469760011870466734828849832004970618070825440767306653024019338767775818401124983373775865051702034636908923582944815933713451805889157176768262691533825399720759884082655260859591988479036742799172990209820883244588459174671199573444624252867431478105590883471268690063132342942771730579546824865955518046598134598958070096125841002943546995922329173653005217163654797742779317217489955203346932046656014387721062942248948849834155557912509284940831498888806975851230013628715085171453786361070126448065201571040644315692319752426323980611764935377905859676900818289370027228545260042284908151042865122513975437679944126018924528330666410590548919558681533364829627776223700399565088750013619650377320037881875713678799627121903692026398564628397611686188352700164308452587962856568249976863726676580040712045136272538970664857921970373489316360323541099080032003877987709056904310722205807713626940041792224791720938180637079788371234059260005961317966335055874876165566417386226969963238997948542838318387215075382191166787809990563817555425225432270658075050457600555371786887057604448275880867801474230274833196462506278177502339056633921938211967081943050063301462318750643979176893066988670193149044787718488442325436390755189975459785121135550707947849090075687528025009947963852017319024044041862199264665566347463874333566826261493236934054031543110369745947396515315981192502693875167953478307875891482232309395180590119643022001614835599982140207674141834156458095541973871954031760309484172516844555002135972705408194527092638779982576866599588375284893374117041199626429902622572923663524911432073708114642184920053527255441236964117144688384839419922185289938956011712409422870566805295296737310748810793292424247446711255866541822742365126567259642491311165135568460666957035776225812320423674073161906099431037105568320552696103406659875570796240689366587376221032070878446835844722552696933494153170823250786724549750120412403437317850317849990174184663494222293243605736891139059515757785374925899197702108178591603391049032677613480694625325148670420121963259327272189394486266806406320316538150052158570636567790235852149008259173835527874029413112377261957140059131579940293228644173235776192925745749265120022176090255699645854209724329589452188412784336053855185700938841907987155555585074949335387053497047502222478281264787636329425004972288459871757139571113464343276670185912724483495208987809443803185427042304079134958531547025734644831291158438047888269136632412216404602804289025655268910701140291482603749103517731750576288570249580211494437321154318995305705657025610141517901015738980340352381723663973190419810168639575693829935980136552030044071183203408949846799201398980355520908202464895661108695184590541867402435994987628423808282537293088090453560575481463620889779922164993516253817536345376410506496310960574682231410471597979156676658079268675087764062988613497592155577560252364528141431370944496379005664582827901925042888134417989651927007097202165373438961962665882147019998446201094142569698520126311596965145658058313898102332517355766421016310466767922218342280457928505053826902745539698770199418689728996757951607404256709769693204948879841543971057431460880946613447910654109016862922476978036089323411672400217910343599345022895164546685715812639767359047937674981814857724970773530013223295292566150474829109210013068047763302547475720038428958203049024746493523729701530244794478404039056623874215293345182682015612924578122786502257135323111614498998156340267036294469769851225737129374921022448079744404891789876940618944267446543906937073961776238671947040458028155442817684994260121619621801931550388872807833120286165670838929097568430342581949252225953842488579884987637214247101831093456994399183613516914499263158793552098746012370991273328860536593150930949154559144691273472157674412208725004469719184366330202211525717380965478697377102859418554868265927982383581302778362954133420388980225167005332428234490976279408089232022224062131523878468079069786682820521416460000375603295273548878359501401960604617014730049482730271996291793137190042294199130525789090046342935074317941878342364944567602285045389238999846122493685247147332597753827342158690385649099901210968644041850230426547328943141835415529625704980726175473288903512157594374159759282772653078442078625379082259046200291234863316582807476337522662773980633143454186219651578171132036224415804743890017226715626341452504656370011794278766089852941137902990646626949652686163525964573031716042264080053860797692940939631916278990311549305685792168643096431993084051352066497027049892016807372020401869839281335276405468529138113098067931721481103469098159235911580208308117405874710880340448634814334058965538625994447607467025576576964314971776202184236984272767735509603803097452431898615200807600998746966920436220004498770221465686550498802540474540635909028650189699718618234788879597226879482265669219130458437461744216209576274188821310079412449408805618624844417610866281459072573233315528714884370016417936310538374320187784738851683147431173022471718289270152958770984483571365257418575320736029723493416499787159052741951736173367455345744837794168984089880167654374170565588573070365081713477777286134836541414449039104832975361264302856356265953557699763972542475388689383505864515385692699267928107047094762961880766184761811287994942628473743161056197642365248272161655527438872742999969734772883045260270179194610814587187448218808160383226460493474414697295000918569571256495051077180288340240564735532571768686531589701464714836615603066777374629421438147533134850784010662140710017369870374762272194407433432108161931693701219738046442452624815470962387811282213609571803101714569932305992243860816368164226737173747489980326538543340376510845669042935704858273943451052935798975152021952633666824115906318004249027422279659751104112373532952214788625870494381540037696489097282797370577090530259685995178141493200632811551947673460391937857984240156873939731463917951017812453879672392740398628714794846879022465258697692415741095528188089145758469092065815199492395145461211677614234557043134349530754337873808704141423859741033556582530373009468224651338711439748137971130050795174415255549478513324842689523047154053086336541337314560172361895920662576266426769149942078203981010628732570978789124190962918058296134884273267098259772468452560634130123263796015413954545052901326952352684395750411892550623929493540001390447404137364200717692855117017480980713419893221310545825031499636543944287277858684876584176168491292455084009184004322423896934056318882299779795505917413245757084458374461919835295789030236454182714760101230254391711653529621618348838806618747303145409875852979178240649028106372504128288706864234655046029468187678981892082474181163936265419868124789678559060276243820981792261785786422681382435532836783279705315908697632095201564914295645606757137129887595390063256419889273152040411215301422194136288070108020323436795625969648563749511018051253113623518241391646974269758983484188856522578084938968501479097087993734724914398375244139605380960295942593253745852892017692145819757236741181430540102174330415907435856726866455022638174460502139791252328944982082542476461783424616137484050066009065802137612117600353769086701879744469832590821951862235263601185303377221801181653285978884703343721994829330527878203298223203880874344767892676978947095243041562685079115580890084350521603235412514575760377219211810006283626237346655039574934165315404530491207237837603957562148428654853711278228274820600265314223592305928194521018756336001306601221295069173348502989089315575413110566870035463047545103610333400340334387690387552199013052999604559058643654169694286701899992675245461757834709362526800068878043607230771383492574561367143286459778143193221822869061934761005537319048631064470234784571754019321761469791068676859425782588402171170838377185876751925290967775518804482492849174959268816242297534195073766073664767355754308561955510993833377204104580479597827782655540702016399941518362112896263520530795338339582121090471959337231290375475559614154451814651279484441425495515310988826621630739799069336196648826409886238246405114602376034860922581171186895092798109780108007707737440234705319158281628546078173854044894633558414856478237113739383271327697311539027724788215784225891203578808699428464540537919481194167915883354716073327997491259415877252079140399985384492606459143654343676145413103520649092475453310314777456344981979401677614718562374807191895464273221725336446530663781990205939360655755793577921944202331215670795285136713073326073372321080890651048245921821071444496292877339213317357627534422633616085183848711082162464668104002333285372219402895480349005514764763138508342090453409055132083189110179997718203804038611902068656172928675175619664278019324574438460885416142944996380898944521048883735446813227694505606832089682169569661633537201200153877612826128622051308097840125667211713170030355327363060651603850846523762982605556828785907479983427688705683673328630218484159662200288012460529556450441719637998641431927062905477054527281190880205892277563261611527635264974642778405753580496508106000225506611523015351851784515092491724808828672448161699158529886205609339980101991061615946927050114219662620307271726009668519196963959011581003617163934157758730801033949230629267633581071757375083175295575568332746442312211623669006059465950915706267550870721598817047973015609118279679361209060238968032243020882863416308168712356046743588967871302386817410452757156706023958918741538917283990648495768964093228016983347181140123686504099210707234291480866964905772672536568519485669231686176005584130934627884957241919382875305982608735525973108761636283371984270435525641755452661638265435399323115059768391770670315940858710673014825496942021944072684019725641151744809885499830463148599233042427550484217349414222441928450096798802267486870251533206238264943235635093632277560490198769096059376543104491536653487700182658432093301273098887532335645405062649980972145180548577169157978852906150024074377673082789457292594305394581371701269365795072892221162280214748785915943211506417190432184995255959979473864113415494487169121078531945903144447880075260299392553413052177102792994776328911304193356451394243406854741652823940322791741453938411395785778007556901693382470362350384874153552093847614920934827391020514448289909106891255234760426344199132448958480694787331413408813376930558679290945236932917331436726479129961694651282151345842617765828146894105472492859143042665733817332662161743259540283752080664857653748082767839739887328737649924759667016208886040386560491578912619412932247589568591557018962109767694185759324747420290300029507681153288242421212070819085537349226627135203216323097612917036238151223753875693655946827301673825061040009705012159567935879049945809964916164532815892548948170338891057831274118747296774729529381816615153637370793182502059515081270181659564830903865650585670515871141370065959867256748810275441944409337709879610308642498359143799329298601548659719388231286332899111470023413191874577220479045478700613926541676053132487860738462523779921940364350891852183632357838320063221299198677427003560377058229477035983655049256237761506620827926024895926191764147746597564168551697340342938880769856075231884214770375903597992691615571561357968965328910378004282209031367697677205607879680489602002235862108076918392085439633681628708960504415164193332943279242141498504575589365416806523090070820226325373954594272493220081255974347628249554964109752845272125176121443430363934858560839150416902818249564583243373136213228830699073137662326480142060571800706053291185165671069696249376269776592449271368559475542520494377209949120047592763318190029692875027589781618036058322817206204310400255197619770750513730404546938271912426560128929272301594599468408873042224327760312987735318565262824708684583490064177102984413222991639940870366813096265262809130894487825800038297498581218854114938919746420423605668430158816587235600342615023494222060997382155049479312614716675240388930560438145447524434264565112495705075662142536939517674017291471657491448650099489826570314561873654878839884267114126083624579659159755817179983874930805714498913593360440486050483501050096587984806281899785179100410343054716576765388631765255754696402918652381342865877296904528153045535577223025702876012452306038642076331486639763990712881759814184729432420212596071470380745004436595141954188357540115608949313674765701919571925012641004749687140436837120302249894977519563443723845729309739284100692314068112673611056589581989491168078451018694697511450937354835406694447133561718003920450049808522933721228062518746419004836063558282929737134414292042373967646966438889672342742051977336996298215026242541582550860198808121500037601431228048020253691311598977683528506807219353961345786289305131870292584241048707817169625531686662691669593875545038311917440192597500917608589620032232621279101078114695734789205445629187889961223755504258140098512693237374997169490188340154600280867817668781137920059441337189543004037613285560909291266286054114158838598110413464793870790474829192489135132212100465152471090178130646089036959076697700487974201716195192630023021985195073456597177692254246044290127069737725043495362270962537005712379933062681397432035464162795234177381311637932396371634976738262513137271397335981191327761664684459685907311287379777917701656506322256276579888257270860260243978517240123612555485353943003945053100045116312632920704565877863875662974944120810732889810690184131167395952114354496617663563483093869345123061858964942162453821479500179391976377321651173553084236341461395539398932417335718813255107223699250148516220763427380613771749818354568614782947708255021092551207327851493818134210463771651658791789645610620223235555433739907379078293186448037090987940592453765359022777339148856033750508822766207602208227299030274958990039285455845748389774448847923656161472118923379176589007985684511032586494859725921029070751425408717054154130282373343832160926024321359388145555953920069216793853927579812904357436881873198906048675616497148073289104342092121184373856108759973093791689085461541810878260105530687131033985661613508957200353476848680970512578858628061050359526454029398812197863480933096773651158242871759088467444208438282528081169873082687207128843192743823039622996242174363200817129395555790677785970095357759885898778032779562084855390983993210605681594965140724443655431574984644092454167210502880709312634136317988845861634863769365501353143277254990304079666474107780896608078629080269037876094721525745684300822160617512324574630977560072743280337885681204267480575681266145172669391239798896349251029335614072189064478295720757100024868595341930847393309826135183877491481012654973832523718005525015301464622744511594707677983097124332405414884983651579512193699486012632049912116892232123274695709145933487427680574211896063826137259284713277483700583501340918765972834849752990043200004741731681359930550466728920628333387723776849345498721583781319984072355745610784195368450710402122075316212583005749054183178670402826328677707295236381154937535714908077651985160794386511681602990091629535963099671292030290506139259787886533756737984755297363013054599216069176279860435246974704227277614057785635323769661021140149174665394586589396866973655893982472419320383746967392482721882046432301850488211307722113867646512992894683621677254971636036854046096092060448691285374544815981165829914643394316319808428878354219165672721744061377715054574087061179577867705816888934382835302133549133295745905427865478804554434352772079834874418142694776207430793402439093704462583389788170421646332036342180522925460010457593915714390644958969281079447700945074073684306149556852227549866615922652083534864736086853289071389925632778643133357796009615744182867204181300071343324199735172768091622351992187812965105134043299152372698136086158140095799612137185359585548482737975340996601729657635062776297448994004416303765083632656823021795601570936108793804633257114678366114426245694926306047326293716313941148413405354699560915720691009191856550193391908413945494058158030088613201744859764434813456362611099332578120514749042374881678828501368535748028610294775044672477560922052775261649093998884255832661392856306486885888230626936900973524111981924616659111802670572497992877483578206436629591068777213835131035647517320702051488455839940399950314399150479968282005097669364540498326673871268150880155307440338070345020420807155831301197510027484876364780726720529250478551027663979710162985293675999419383426501678731248660247625910010112250988218850049626684553614777514633460012827972351120157692383426625449108572420547197868387641396171547312810854151157409045469268013580174958645060469408774662333040558225289443085631918610395987914133072559417194144283450468960877394116658540732877791540150924691690565589300845692846357390326730007586161950607880215731965586158030031570387267586914026913081041730093544492213382321922687132862523861824735817600462898934695067127098487935562146244410051968124343802220417392783703276867416911877294565519835177969667124980201672479632225836899084317849992514112584238409116473978536195991676413150103741517716514238724452333574068743415489233740999365357008993779411224017630429053462543905826775127543922063761509379237939176932306784798927597191499847203007226095564360566289448836915807806368435912730815325642373177891942566593368524650547486355131850125585651986890769713931137532604784810674692378411263972706544699067778204506408759421038701673851194016742525066975146629529062425364435993479618524879291213278922163782141230138788116020221208937819273046504890387138248261001543939734095670204822499529759058426346492079065552659474086693896307856464625197973929491014636776286005924450478943572798078813911085551452245075663817446816794486557705724275802539197682600070385593414104765850985972090702222187927724957189174903573243082339685329109896425306941057462025570755494891132485895614849329638715795028947485998747672916077998762271185334012660415578845147990871348448215410014535634981773797748099327849400281668159434443451967836092832787435224966497389539161934810654313466081075054212466424012737192199931143708460074200075285787086167336678709619117348557701102473502344677397090796465708165588144330528080334857168793316164861188801817578470689461368123624814051695687999212165916817969607902986450344011148164847561586173846849393595316338455823296344675495517888989772310613619331516871963169514895917959540812191255565823793190276312961715947410800331930963330597855861871271781292961635538240437273300917621178999124773103966498505745517380084740297217120282528165860360238727819540128219416645360468986733155504285557481924194971379010027482441778459613552733635006279778992721127492970182164600343982863367609349904405876560033808038751310620544855733639683258687464637418676246878111072710693287994536900581129959411030518705378199215448352935567101392519573472061337723737799527171291868159148931249601680139126333319146403706693242720102333812347407022328220613784043389412592044612065297645671715189100378243445243601035486628267064746385529303906742921190290078434824899901547004219869308673740641357944498758398031833141650272259921054868333249202096136324774230219143919247010665594322830889134252806957467670395574193139270105396723668322546938166596664202283967820909917839064921617007209546526396648972924366777681156855513114240562119388505209314952878788679974616079382637008942041558824285107160163052095209117319965751777588886485899614836676960163186172720296443566464917535324172824714392360432595835713247452146492451284919406655916749655954300474278692131633262935971107427522846349080566311793109861551600899218070307962265566093982409249493710551362192746474983971783584104885900126606692390667035090954548442878635119137499269394474147068334084877023156229052142522759994941766421758868055294018259691468250905107831276259557359011913285202066892900115828709937781553725674057983863628968684542341202446699190601741499302993011225096176666677180395650410390142965165982627196872577093945617857486151013579542542903935818368508932108279534660246701152838172758265530745268242684157743676610151589075935779470662423782019194720048410624391012893752901605413008373297520322886522915887915922068153421729737163780552046266628753695816958764412140354102054455663908111555954974914211823317005623084174203366049363330105412478809772866472594391336091750599476061678059582111384073760368418881721213232391705203058881173263741453442507892298529129441904188369944959885246648550176962987994722021291164274560919235342914350611759934565962388500651399309954781419219876012674997948671516258378262650533481523749411694507648601359037975998234941642224522694726290872184387057097441759159898132135412974951974452171370917161250326062213558447348744738074119869697016293241931079391828646610630244722567937811805015226048409047869580494678072346852635208930735877982326897434282728640997095016295964759739163454350709807543212742676252485496171790535186179211287319430817389239049004074940417490158684875243256728217493906288009573524601356029783431268624474717085313945314075329663653124246875011546840160095160720637694348960247731238881099451123296487484895774400688458534492251780540115727981189092283263987197530574748652217401730534367719873480811920760389427829648288256184458765942761027485183022175904410336714152288925210648521365829081150489824888247746344393944408555416475412906423812120128809928190289907668943256426371104211193067293728548778924117538028214375788029485133986586800430914663169002688708654211619819060274455271041589949227007528898701448730645561505805464149536199464112544184863763842461357729912507922491660332407769511120783306246946936160358021204691811495017874736684127049163290662599481609096124189650851663020517186189992200271130490399039400482273367446384774314137475334707057803338318034152392179804653290301255459040587161213776273186807859356899858211829402748300004464751600115531721462982320980444929825299585516296164910951853529555685034560535514239096433187869846098718004895596145813284221724689590597498211175215649575273347427356298698948727354955503649107442132199082492125225022231009676222777905193621926424050756166115372232651316084952650675117440187587384067750797347898893886917062560723860522448109133225585824725549526177655462512635589828579388001306465210746998430596723762400527024189056221942059589731331282606353621398628933876106140904221867557563902514943677328120233220872308987485482071205931541692161596026713157206821131712816768322658444934871329928659001859427372822402405643199105592748739835023696723545426260436954525507637935358892405352037004952386936521648546106186969266168392911801853331211831031458109014820268602398595864554250641882504558847332769997973794328967376241978487172979532714264305126475279123154176758553413949418364548601027742023176296131568416432175550839007637771018828940145451485899122683846065337292582072949747133661326678762064254773162317075269867495772283583292125650183767293300604120441526964496091247330037773324881100385414170798839291512907334573127824388463257741777652560160938543157843587752606534651847601297222473274972392149912171534290041252199064726686104923942391445796554882608318966715287633981566954417806900607918814044537625927588404118380723898592588329329426154928546066223822501340806153997324147867071794542408031501996338614207939565719243573188272159532349019172900782204145986792973656922348988193126522613512613305408027000540239474335655020839043251116949427724297077373749362376444545623421751307117973468514125410696375094665158220901545849411085735523220571531401885700779628790016087327010282460006139431329003976043080163263438571227779630549580457605583999013439870305673215795581876317942945383255112631284634474139186606303304762698973758356279569281400994796208277213726344423161737332508541082601905471131461337628196537430882158160254295853532777192447408202976673628444391360373223393042500009215063089077158691053342868825981674785496530836375169466661594207229905257775812096009675551473292357219262205021777844279919466156129642189184424874638046723395862954523272896652869137305693200812512427115986173448125138054551063195267626545225093262255507208415882184649135170057656379955873738664924089714625049371118319136416515569256413170812835624220335554122324287161983564197114326152490822071362982649337422001943641454062394868915607562659502186596416873437732557361109720978937999759553703196881537810423406744482337055813419486514556210699556634279045517182286239392051373455485890638291431819308743317040045407355384934609678039455346832748060059202925162269287971554977259335385560336510413464774756427383391255851039639273048022073661437625680543085106029067460694398162624151501381924925086251794895497115599993582468416672362136786908049605348934800813702565417575012713658541986602436101567426498482601402930447538392435850907670974949571747489896421488423922454651627872323488896488523889427218708476663813465901251875234606422510956607238082016946750988406153172836216680665505586148027230687379035211313176217118546192116804355101506646683628073161982457745658645662605608378825321561388616446672625223771936095431322816380790797314286838958399528718198979014023860147587325271950358557508647098698951924599500870181601614322719803101871689853197671053093780767339100193225795327110118446202827633319787198460945975217306925264975860765476623540706062155631076186875724134206911426128673992910250580115048635152274014389214621157365540969908506134786564600848846726221032094664667033935339273596293030758259625599579458284621847502738241098804306417053684405158445871814379779867821656775559048960513908125258831541064111447403801030793316691723584268654957145734022267596222681747274398445821192340019522358238865987029893364818695850724917656272321940033948985848598304614017096066846910627494314393910183083814918411686489402399749482852920840301889751648987744145812000767319416684589597154642524007144189084113994873480809348890868484516873138206880645304018394219616185306409949688653245479152141259283164245808703903700642730634798549376609052794557010676368338614911179663635051532891918020555055582359939005083545075131565231209630943958221465793708579627158799926895953712076454920106574465212972282758992687131735744228286697677004859470527999918303216570684697766294765167809094183361675950474091907672841035507611379996742220795772822904057904612629091267780112254350551992236996596597285130177012577270648538179345762189964723117909869781350871807766404773256447544539327968876276982913977509140886222156200955779959088323336572804728590735278482402808944899743219264723859684464905131318256052212964717163290120545828433553500950651135155806889438230900441240160207337097572842999765704543036373468024703278490476180852630530806821023345807906588017828537847541505502983013765873590166455990731493182668203391738639109011895826156086184529232786982406325999966295087654168730342304906866206378651465141779218749949557656041717711852102243418625561654175009912233379385866501694624458897981025045219887771756277830030016020241980627304030500156021489421716236171506838129620704876016812725460468630136890940113731198030111488804340267498170398144859103887701145468044137992038719832172974687664735042126827550912588588165611106782198600297878596431605566180945611862050889367482127805645423237889720849641720112282598441153019809252482820429920553650697464679051761579057524520876817050910733807865507324729358993890947528227231980025488119034943524575969727077265820369010052108903774844304603799964623244304546980550027326498180984879102028998207255713468181151401613571233894560213536668958641968534611795076723411740809780500201218412112059624107461122802618741034271126570932827493980434443004617340626853785336215601322703911323209764783928165344118482472159240078213720697858206650166230421833595087454943992337356555066626157456148359205214816538488769107574140966724329775258727455168407037486614747857903514297057422622865394198178010771897270841789215727905105501669862279986280806038369378802148403750395560308731589682943780006510112326471130333467737938225061490423500784115784750465410438398875626448420633873512727930056722696079385099485952278674461603317408943819219352904779639600465210274301861793193687953777566854504951312504075001107939177039467041717295189381258908616803983632163180948048239050834680356453573406169527423189970197239552963065276068711651632263080605457774253431543398131285530599785836124055350877852839367395317865196231908479910475857313336409195297987008336034520743011704203039077838840421912470603776804519465468905410603707463267779392672319571716204133929548315184459928767591791812775594328017141371773727772551911272743109893442878775483568483247213742775004689985566411303988092138439127189870525621229378215032076228836176333977319256009866325326147667555486385111932499942057522061738270770580666486255278957045240570532410700250715398786063332982619128092462801793820267494805046724691148595481596275502207615553581153203180069574327164788422075263346491517374674247773062147395957059036203671779536079091720130828441844141988331397587887446490918878588165370632657565805825012223240335699318397355388934046744431179648528857640032780142491831331612071414014812432137469384031832176019143870117752996770978648119588897301480510797462582199464415531604246104087985933863839101579979368447193603589940780335683896100661992475266250248324623236325032804883177234785569546817862094168617750573536609027384794983044445964273178005349160603296108891536837315703193861738311933240524175833377336045947132521951662443954492110357624241000132976794514330334003065267407396687685373221985778796586285410199065309981948540406163972753910188233818418476725028274537075135300833369329129672039012165579105588317388583176815510655854026063536914200039811820321407597721339687507363456735628488516421953590001785636371770027542480850527074049557771533946998843324741485950399959826679879535239763574261655831152313572325291196220392011980298216592598682858462664143176602947757773100753244840098772288564718848803776557833334010105701233107300320324776721412483530191329319987938670112700332818370767602612861013217980989914089256423053162040916680763618679570045389817485704373633713182062101741872105520049396745104930664186231835231203369633562439606256880016475442948920952551493995411216796305289262605684699467717229264550115575296947874464868260259420470424471709521244421103126382015932717707393673063318483483030618627056126453108509970194909385344856621278752548743638756809725437129997927790383462812796660545448612506261189302809719327159421431227399338098190574476508419129956707676513843142783086357141722881817355967547070272709136470406573371789128133380106205907845157409011052828263949886879423351505041629301134444028593585382207706365848001762967712391911763731832421939306501962582698945604951748757709553298488504688896284738390063705002829660750879922876933587009759835126682207675890386333357287379685773319168231708107157896652378945249184223392509113562245188351011585145167091228104402151636726848536393148471797976033912201013267879898991852917016538362030801526145031803287485434742296301390356438127156263375391551566962989091764925890836105357368857964374916957846207716320367212624869381069145091441210840904096612367971093359510503216790854219087741116037962699355326863211323645357983083439093584074389829878253926511790252132224161292384637735943246149028413383760380508260630501852821129214666960063602270308492092430323826650328275714447991321535235576078245965010292354860056756150027412258936688537338817838833065510890261397034084282232357317546624747884130648041840842347353528073892950921571957456759654975786117128841870642925472105635489048948214482067505406847975060412955459893084332426010858333707723406531263654706309146890156470335333044430353802480407541248807102911857876090185693786300705654705063708239444663498954484408224729004699123028803849720778972880881875537651372706489941576149329362481950859819922088754548425071830357661627444166898615256601515107936283051616473670944082358596598302451236864852762229544296805532351163470571016978535964547064536659209248894027039377823467906670395815723306822932808747943738180304140029330909902988304285917949629539198201227049864968681816711160349810600083050296686913685137315228095350220191036358599582535444293790572855817623926623407189223342827411883736604097588718775437410910319045703330776824019734426444728894775966471799100077972585577614130112292432865039307952636390144593458937643897518930963216681478706167957968697594352201284703546845127010299213998867321415313575683724386064309644305888024377428522994740796236482937145104065080341896302848459982502879165675257663090467528014370571452854693327170926457582953698396638554349872302529219062896180699691261824770115879396372377211783244327206003668421328461838842404964435339428914232909334917818643671807261471878581248973388323448999497421485871143172948926133596220362646553468350846433879883271864233690027888131764070191540765969109540317033808932840631496153636354255331185861037569992917034078685221190915414765955602448114613469635668194753417351482132486508813637920615908901989762168920707697400530283719158218958693162096059434942745969761794902852997007622132271773306605949429040498191906286536890961107230791361533604001666897262898492991107813475297110888060553977079028241820945278738874079031943474650669915386058448611274987667485437173051832995790465240863725688454837218768623255944565578606531671965644016515512108924753516357860542004785033293571148104697945344816161260128591548374462080498506492754354536640494107216134594103360770193647752302501421648831009581146895564512722733409123849942671169429108600564520409584283424178342630951100828137364936169736799546632726271444565451918020303508629830021502068502522782760387456618789937303312785665479497564907963538860274364130668343398138587797722511233770823490745285032772926776399020648685336016163359567840008903205703161864296160286312445211607654626544403653373658072781589058883144051027839447761001639812555346881647638243967785233567539404487328216014260151982377473293281554554503462715192629850873514373930525695634666061890943423935508709287744345304627216884938984952027936422306238534345918909960225544941496317010025287650512579229695185599919483153372113029722659839721728474837565648053225745086454083700256248515407601804823434958141861986399628977975829598031454288393572190136016143614922127046670354941458502782256299106556086340205717389627685675768411004808832989383141818578232350160538854441384265157160727269128457240381173967311591305355400647018956715656461506122934266990104856380238332102683779771954202575619611924375672071239480027968757804724519484844394835563361943097370582052657474255622433474011847974482997788661651031867336842770199132614623528387359789847439857854992244005712539193144177994251227783104933838277795306555043648831228973311092502202694682755454942579884325720485731528015399449666353193751360231291031506282918560173246218582848287830930120636316664486601436549623283147620195287832125892958366212898823110781326330743199748128650385788232453188691207900495791685392656401359314370924703130532871228185171957127800988801169886573080248016232381219545731306475238183770811555946782047683858247487266739088039873822679833171636245525878968239715006032783412895669374826642322490025251894951428319940189948860043839201015732021394572026520817997206379111670076960783884427181840213429162723368280495284015596946311534909836511002389604972538420396380926201102324696670689542827097937539379660819037107713199204262389752121888573533754668381919096317094399725087168345988404088508548935456162413964061498103078936583273646107070151738298642312975394654169598710278302644518749409820266281489021197823738242936674965054197893688343271189571878703677951006300446931919153043731851264712977250266649050089631595674183912101895412666322488757846269681212372615855318267046095270071711640598344827345606069028194336357561366812370746915938553551155508333874059568896676086909426839333912235197140963572428760809888846116173036558632826588532780472756359631819699507647133024057119333325949387291053253918931698070333970811242617762062435736192685024061402040736723324260402872792057934853727438577947181131036802593275663092058429713000495221260231195344792576691580812646695445226573396251263178199839818827009923270668141135807555962634911443721617518620635765763378958944900010277810945710528704548234820563004814819379217262690349743682370373909387407648767872948764639818086907942610554220821411152874524291378939315706794158335992155967474411425283480658458255902871859567173882781026291053025204226235899199017319855040501530665896549176344560074616330809412009446093519079728263849960428511996683820640240458484244427460961960313597722987926851979184728023171588136168914290812287776251596490815762980338778138085789234993952897055987939919971501950655083297765776419353054774181437899423129107547957848197641916502154247046717409881007390941000975406215115548210021831664043042639361762744833145540614154077163004287523566582143876950060672514305578905513632110439159360972318998128471952698608072256303952464430580475652186067537315186821705099037539919908336775761715811813770213554923261754073401223953233172427058539038537356171081804340643317893154954289742099859501453085410860158006092183055863829874792569858425068612688307067031535710567755018850931856513077203479719016568753658899988517003044531856361665940912688564549494203818685516432953509465448519744738576263776829437746533973431148098294844160040267678151150952301175128319785553864841364003276513788610386612319150795991693474523330364733500842075781195756926111165538409737813480540602207076185417695601632447402521672800661083424722611955341013304585955840794467803471909676430084806374573604213723272498102102081083281787168445064296456272314202312369526903007976488229348252989658057533729138069318001880670035778418240312443043928943029633055741469424862044469296331762559664951049406714911724400125880806142760611046448803297268087432514509540983568870394243863901728012411350549704614478650383282646323926295471237221707984765363598662824140801828928107175142123672555862074569856566847627033765338313171815977018157303209890519140869793311338504455666752470021672549461878884279822093868900045873567061070813267795197107328422191565655211196517721673825288685438177909543998432409084646525810059937577398108440465753014538307773175758917493522048983736355648509884040390110355815843372263843680314906043036281899408686545113858670228576970202586980670003657545799190189899486409977629886838405368733734513968214417688896990838197280470684821983550302938947257953347115059091475664476920588734751697044407945896739346478973494602843968925039275574026963940752197544284509174889606881412502203850548989364580508977518457979618584407736782650966601017797803964327076238753002134884562082078891104724885121074339912201769647677890972084555004348307023198540121361676507772874451867460762946283386715400901548460991428593922781768384517701654015178382974211670424365556382654574612054799654976446154102773931717646755732789074587477849530535154077587149006431211659381336909243459768722239226982375973392314473434709013293967187963994680835218567706994757628831838467198118573057040523847180098002546855472749617713309144857074054035161331858837962933983113980682290151470853694260476284307111975711699229858565556189832062236050118786946782952955966928464021062017246719507995834418398936333391170811200153739511026439239816164617163481794705866065417502517620751394895886650365330813482559919123129019508719608014288236782298176314740669256578971105461835870548963187467987257779594898861216447624815318326762855455357211390620121670430152217095518930710735239326733371163208592801942384339639578104978122999296383799130913251179757589363219753487946133722276473542895615054315094067420125029444260707791752177917219488436473615793806059114824472601825387592564594450663306345304659835574018588771934477097664624104403675218745648157410520922398979459083155053565087553130851405814080804933161010969904653854204640755615880537791890791998308063768522906733640937923016726861108061013466520604142110323816165048153425647697942439874881727569547300333622169519145700304126067588342419299083630318694127832297658555745303174974810285284596040324186615611979273925211222101842522171712139448747471825941962635557345983615258805182143274860880305063674025194070183666562535944790763672088113635784706386385755613032105438276199828133464969896696233438703465587120818124736938562227694320658964460370474216198255352356599250414334500191597015166463545271783679566694891281501828832419910715351199699183038234833119111409754149993310412323672709823888402342862056736292123074829160331289298916055277607054344537589228632431708343269835479467013082013039881751841121536557435229530498654641462553513404827607190112399819723539618022320521153065409862200159947414449846719925408431873745915170308439001413995501158383282058692273347290589012904283584909611428134966441036043441343210469315472753521797400543070481127638137071630568848077979017682262612727278949025641282548608198289178451159127891798535036895313844876347028378729473805618396296713028394060980189716501521727590956902690986301618149369591594506276668439005180339084145785742074254506809306237009521175351563314400395131885570195646997719571656381107427900337061741951309108118515085543258435623971105090241431169998334774024677892255659040097224594657989559485017159606723549308013726092997183757385703196563114277701812591597379045788287636170966428587473964921890814062214562223547240185806631351831691133335800990699459962194246521617448450316446997639451896986729507175549314740664414413111712532667729884494257909532810809962112133612122232772249294557933812919503471035869498317648456098888556630530056676855072344859827949757432405521717941784550003760787882027189802505186308064789208196276716011391812205696775168113402950739402452516214381475118646564727004593586122553649154503653199926962711790121865144768992094630470942871652282557854728517336728270950655662060373650637105689500886560693580002426766847853677477782909744968208248544471008431113896535887277682837301956791895153484444710458842400054419251254276222597082174162400834964470909357218119430209106806252106175021682076438445098388978530784629498003491459756172078482714205815198171344792228949762461106704515149607876463876799115039788581019652571223940196002118084818750316783984492624549270663902390153021828223268219785233815006024301612298396618185634009049345548174989644805823662808635552102352625562396535093892029548965657949626685502849762881950702926695604503692686869669869729113653494088391671075920074675864439393518770078212232630764285234186446979106771811660742089736328593397380428056378431449969446609057453934250649665479261479813212997569142738847749559925747903134781460118080989009563342064126381225179600933274296647667506551166260006005328316083415851345076104627880610417094074035346947389557544974677386330081473717037990640049530045674923841665491812017528111395531809366166159157274989072969825405636544757907717701770688609208022927449734837601798627842643087369114318894048144409053941612523259823703296679060121086356649601443450541154152459233517593842541272002185434068095753247863722376011151628581718338893068375233972661916271782594752061691060927499709599294354338650220576271718920894436406756859817493160010981150582048075495999014614385117033977766933099947957230739581419578318103303712653392166851491321119944466369912276669809380924436696346694885001059170891141598818464597187410979624318321554434746412773561304012422565948646196461280857334967364078876948601055224915122715748674921001806749087493813031590407787553140580354963971342893830008232486087537722135854996216703303825167354628492875264400124327383330753190678417315406211716939887404538783317869319300452950088690702264531283358081224344547477598702101748086187989147047535546834193175580484240113304398383410375512070577572775230852788185748008999288289983201607247118551570329987473196189717663981660932629530214250437990738121353093879951365639223546219821532641906520451962328705440757644512125068074216564186095037634807492500198219014150098153590448505533059822597726955829521568229150119232119834827445044254178874518630166334263886056177731028851901485505741620636199227395316056340767544394612057983689964126530208636658012334576635855483451423449734985111971724945563959165418461208647055485322315040595177366345725321524310925755853428180850932149677712990510726032397734934115784811803377384219189077786322379146980165304309131184086572250074886144913494817231973783024281100038598735055101184150526869956866328225123512337632424111613010344030712757827364187439641886450401498682443182856167116598069797531764098370999274136636789664434266701178257902611100883852540082082414143076053237908580303616650933529244308229002939347017539801860259326615467809339604003279566631409042586856305499603030216375923853733406454271602287341530711054796542124735436630890243146704817391916873190523002423804673681122103675210458969116440309602566519158330975269400500281209297675671334083079249269304277954788653608812429872610771141121260876254623377025387537866879315396155487688074090567394715916351107372099666199835754056794893810163498666105319814191661336038025269797958765360804956044172098539609261534877900751218830754730442510444560941197485952087823809341074236741308496509461553816686278229600632426276964345231388936745958220673709084223837780421690380037633385372920543330201537846138850793559176157334586180556983240048697150767688470955560558709177353080146175602043832701706003894202663524838777826631557255404091750499964451241717669099866404325935417936015242302860071252842322627688411810133117167570502551144190442695083595747986716923685984823026752558870353673350108589687712918625349765835125972900797532453334195558567280832440878984295880742074047350410296888383509654484419705892350456847318607804698641143787061649054719156558367856543666469205371236660759357647131326561121247888066560286110136964719699648907157816456412029264755118506081996749221773266721818451536334692808710946378949492241719814369635368064376532230415563095359934740964005799134564377522111628980828772457347774006337116540727733865329644821075723078027922334496630646188430116702026352662735064845629790461898173284847890963245025499889914641092009319104394221529296562761933421876670544086502060543092741122142827470444663353385505408289494515044893970837036365842575821969822534027974948681314807689857539798199335916538163728260900512308876730484777823180035000854985972628202324926908104233570004692768504239512936081069902393419219828260068704714730774666535476359491552092160528033606646124621129682430211612846709869905562119693589854392584759792445390701135053033753412096255134350816498766732830678438755203340708610472449586017557824792175893323473849218335266424575080095194834038825759394006611358639604741482514938678117482525460316182519506287028212974066733940080689633026453347439624250744457327397858008102281612585050669768419685027113223200815896083639886481857205230270179307089791215585964637805055280416744077665366809895386179054407330627873981694262884422896257364376982247965189459966067954168527341368825232501792773020597384631216062879099435068169063271645907657994213576569647161802126940017423361092114141981234946591999951212833811550788530173489589239223919190730311505805773197628557933262946580447251093525158110725909560228127245656506867498600015632729988893717077569611072278255473283872973769909339517946819137596807739880218983074093143909595152017506723901381999019868305072768907938732268634876983011364888046099054070542708170681397483148288585439073963098219675786793468984237083993083136233069721450644722961116928435103972978082031483082597147768737480779053785256271361413367660977713139319141879718704223728654177637582405726133174539535592370271686781865783704443036855319398834153827347270114750726109188791705195700787530626206276618716655064104654637262213177975692389946803033596005370755266344240421568314646063437523750478695895365703372625657801979862668404845628971331962079605472665330094484201629599031596152658546438471614704401585020961088853002521081491886368838761797305666681402656094692865901200525324661932743930529339605249658150640586710332660634718588868320471639079396299947408156684546786967458422870335387313077847350815368148983718878432038062732437852355656377504263627438070212789749437887229866854967646752618514492546056250376399395865323293877155792762975584459852605595567665188322129756226801246701735969643245033922059511643585460769529843504346294765289944470202167370159859271730234290181248202623318475575302224436624349922043110880992383041048572004796430333273102682214744006822629969547762153566216860972874296809458556516458787563806659948511753943646540989741282345030677088521504495490671393854405903549977798308447258687486958187789616958138103639188055014912983330874555359562330282616351954827911599550567335210719547688531958968331859340580578706953514766750359335133554122592546933974571383135984700205254286641564151365880577166495560790445491080796422626182595798444822920571674393830275533138438991358585127067570587317428902650931291827598297660846706681110994082184176481777750148692291240573554754269617556993423645645646537095205368155278200840189207363031564928422612607348266019514700341964475862113033900451392745670497792057599200879037043577805154461446341927155773963423733732503812790469913460146819089940877158722464064571956161969183602758323253383029429828166426924237424098068588495254099167776415693205275000297928006857282464711671244057696478934977717078520843204426815130161164843652443863302845192845976377285833227243182098238812978221294010275738908565386429876643540935781571801493453603208835542734398974475555272476955580408519059022751594390939919745576096768933552523779589621407436726952777663902755239987902164944132043171870220179063848468532937753112167776976336372907925834269478163048105364168360389761146993827039283135839579141965202267881570136262099572150903376871013155957972351505837140474463775793381434700719858368961173444135919394860322750215623019703717168792960453969860541730902609650553749003403801965180891660862477078674752793305736039419325253585893029871347423744699310966106222615789823430659373909006158093227256847193269688456358799989644043586641088553617425406127752932568407740026922776496429796665467538162111309158475054690288872296503282173364059333857900586236272305000820158467979673893825953241006440503665209166675974225218823976136112851518925146794341469736909727551276062361806245255391667761573093865000410426884535716561845724695785169170081849339130452157744191082853096810585957184082148078232831201404932062725161978815499576627066177706899711365821866585921442292083931752239681233194779620229539509842354998847918912586309273836345774076006508536427957605793702313601031432921260200066091361714780939533707041927287566336136704642048830386683635279983139726712878471129618054826290935089477948610603977359698675984790731482090877117997241818532665373036630935029565829042577607242606804244488281887695671481514056683828465248230183892720868730821857571814339260716853511908493956157585914693283944731533643037837674667852903528694587279465765409448647915299655767840979637751103994516808062121375249027109092973931427844740311279462937293654200746810915677318693890036412638535147295568414420966407008214071997979525731689222539662620876001599989120153976025704640850265446238410306186960717122274834116715485509499620780810425760803513157959862387468762676956949743030990156247357318065812910824759702749069643559067240952124088228934731549930648906530720532808506532318676682891582961394754578437565892470189843749168938811372039005179057784837602025701595807990987489210091318132177930093477857920891777915816648802152591832456068204530453985360833274228107172133260752594996014435460239035245443771886895441710743238158841311463239361191052908073025132337701407075050740659154766699957590553777112874598607951770571098500337591405128685792365342478863418017506326704323984763038036171279535803899774781834840513536725986906058823236698707196233795425691903814709495787933357558630376592948076301999787957603534271536119243623770413552297430974470369825664624923879454154334633998579224189547975796096861513660262707278522951577812006113422891825273573766542866957584629914678039582763641135010084355177646881901995729372260616435832314026863806655332634592041900759194255542958207444792028038153287416979026996212960626347887071346240945151592153508615807162489622130546547357474305370394067707006213197457402096313123342352364851582467807596221253329218244767466278559368608286004767748780501425051928773144341664176901648970727699020225110534453857046082740862786833885541801792552175798390838712439120537698069145551193086882801511527745844745898455002735594170797849250435961479348291656597271075571204981542481466052294937390641364794585810400187134023175056480121184615566483580409526430151643984707359958752605094843388799942063360724116840673848872385651557488272634855681523436037696224839043300573559659657239758283688903114759368017693171931716520377925933684005013751009147334624750735927268947815688249138834472522794891917919732783304552323216239821468216073283787466928879286307420723231929485384976360477093514486330256402250556922438496438869271069682780375873180626611686958651659896648267919827164462248069599374580216498022023789162225603916532594072091305883625980732520375430491896526091885617457731841538930057874236557049513443959672604047338696571179996087302481162389264567227022839532694634502652319974687845701040041620482951197199129537110858148095136594807457674770723670984254292717329559119339300235462897392410890697133054376444706823900662441231059848329360335643837727885836924084522178466962948675825224028528057153125118450138794245401108475060285683115712094048046712441181475018743376196387012805126986449072777760707981142350818479506950233731350169492784990992960128679355209698127122848572492223574735278338428419353159240788588439783494667553742796004488138741093392085821820973092457313193629031670129447772640249053189636256264436455387671906940133835640010385341408585642952992449844525396714786511572120172120389489177736495703532538023240904437939812407224383767545099631120153147238958265105291617515539014754562293555164062679187520372549073610854116627793757255252444200769021240801020026324714884809226910489520923357652618940563373748368022321942781344169330902034902223887660706338268421241313412583086566293816736612835896332180805040193429772453332384461497799563447255683668296206684364847209175740254161055287416777922760712226708422055817365500524041595776791708303276284430614427117294766325003172914831823157359383454228302431787962934833968048092676605808994064094653632416537854977910095807875792936239155958818937345721360985938506411923455129028682724161948913972219564750715671712520797565294066140426379420677242003622481782937776736211431718217171237897338118742113917066434158712444343295886801314543656536366750562827424286680274708722314541434942836316232200225291232861146299753030971020312334328739546338614621141834731301031662201955179344852120429078131675195608373139283699361479560799704056515508014317323725515134634670586087634181763492966625138997550209038783633445570781123848316454316035156661181026758145282256609329623093197806166887203961043870156519403091509706467468958149258217512259937416228670094154292768045267482458424024956143660698044062893893395563542907004208867741917972459331004356125009970211806805665504582408045834630596251785273627737777881562765380939363586216259486526901708940963201496314497614931435545537554531941299490019677350355738134228944729762350757915646461752684935001790069811604772532106384957788490817097004041073926516092678576737743319763701789752584281437457695942440039024808764874336412499389330896480238136338714906893075828697572800434733932761140771605404477209514170184738469226027941341095715181147193886645510697402565471711799738829727060594806528635974659704961894487901099185456167980465525352231173816512579603081100192728836438245574128734355430447595163158510609068259405712410469502729186498322195458041645361256057310050057930651855059698574489815895786641202312837977281283175156765668395167400484334806270112628864554624587906161894405353367022231245015855977268370908203846067585286440021323963578479187676276711523708081303508104534660144660228776310405337020581044938753412038331189908505072929943585593399390311070190326609678092038421052519925962594162386467614111936078535870107842405953448297275423002280819967337040578586763529141516298519330823138308824648528677723899954093378124163950780462162378397103864650085126033022029851831723852581704625656651859800703752454260545835176474202454849309132707425985645721843886959958776983063987339795571961873483148740192140229673108675659745186380183872136131138339732723637127082919246607048490315164445540872920476504920955065575610072700004212116576517269597103548900693036453751227108746737525209470216784920955783139319822331793822485337707921188604789319148276499447733869874391470703365468432634878444289233917955569467951825325908262053344146125492744154556063628606960537958183724549626945099028488875491307423542350746941378206229036349174267405343497502270739111104601233700026391822145654124058435450666986214277904462630624517494128937185220051957259408728862488971474572283981162723496878331551516704824845068514458619348208549600959442822394588903533450100293327560242407098789508872881406453654408499199810278384501069270344051975459127113733160970633448861025190745392393884091026377467718806203789605261928118878357303286852715787376049513155216243600943151906291839196048811049288717471679070090726601778801709159264175622461576356518612325895862348211721026660949441596914810755536525376990046836717210620702831370771665983456229932028489736949037316856697623686134735055632905332074579213866390644450881745465057668751289962973598177247053046734315254227042311883648129891534679893982088651569440237260522711774101188829106018716450333833861310801207012960840893273388553633867742474704599852115704945119950731402878322469148607051315218118053880359883038674962093466066326947077924340388562652630846448606454207916068184253943801334107256857172427310929075487887616215420295866010841565915908926796263590958675289400820533914809429128695309929162017256424375143807301637409257438856941502333343758650640103769073867648520280209941471943592590928335030840512627451133831471938047255387349729816713893395201078749971968496308629677511154266336209586022161033942438929580296872031577210939141856505712310199408639245222245350346248689464767887076014547651304182105238773621882136159900047919965395752758545674529405194306111657586955944066905188271841835065509271364619883472038329545071468211103939600041685136240319350883666170994707337383667572745235019706377645363882552850032786464971227186253608106584481266917577612194523588963404433722990556254999080128895506182293730093641588509994293241167241277643566777463586750831713533430576871218710433765648716104440880265953342690125971711599265554861375377534116390989862581631436506692519438806813412658002981552482597526841628533534784292967877017215265989332843082534968962140420331517374638676474096651707952775538011556477233045508199776273160700128411908401535768548111380276909695025770593050341375278274001366287413531383021330201902730177746828965675874680479016294669537662236224594707846360023284259668455865849248592751509829368116764562141621757771934660403498308732241321235629121415130131771735520934742903369429422114566255426303041948302459293317259815730933026818344374589127231238586792659682656253485385825731137325306545194622275179748686886384543642746659284498934288759340833816739255428535127256276956913955209233365759558593521191385769258656228410769915120803430483958946292752547938533465495088563871016129815459552439202275498419366406683982822214954226987077469289188094187717156810802334643610228065728781526533988455452029259349503259345826938306348581994828361289068749115872910963357470638778941433019199357496652899427242555844054057310718696091153119644150377558924312830269694771423504760884759103537288500353585934035638217859214716350154048046849063009888774538074259853381943331190562776504235650763149818442150344840893136067556931504585712774991690001376035016042750165049845617988790783294216743592805418785877114999433066930100967126508476639813919241043765272641757782155730882620390303530140581027503432469474563128316951965190017006611386763044631126898841331308440371902203064798109887054199840232599829188652682497129558787903910242467012654193636985030402190174383211916334842065780890676144111473418395289572776972166705231083860191361468495526092989547201600331314435699795452969021608172095390884067588045845676471079821195058025416927530610490025770233571405940035349781154159135843854685571621118902700042400705174161564729611816971652383576075393413140242299811459413708906605573082973829997530214544090847139664046463433025628401016428703236351386177622733143599782179569124002938805635230664231767069970961082565525192270837679858143709971975449330713104473586945732292517697651573404840064812046648949171542285147239934627926050211915292490437548992202782649216271899373675139110194044549807182821627089391154524447392753070768183111763735602276446817212790870635344381228280130818091482204240073602547495712506968555180619662858293171201381391325130073571540806359718968189253339767610520252136567878491182040712062709651766670537761585155067898457711173033052058992509074454377076774399387862750104519897008278776699846376042088347905987762136247237120228018786835097025717596126366968486996089054299117756420184844895876899151519901922065631124494745321249057931576336985078873509867032099765667972799653499335150519987645925348818127490141225523671967677208379998503058200682132971535163441415970181929490900238779755964194734373514524220326638276561838913345116526770975872237966179702073132983128862996362048902460102802260287629147643947488910949723290366761869697545142623085365626757518122470489649044008543433101900588718835095935468251823756810204897496007529272219450551628302522845200968200154829439886594512889072298174981018112255191379967452822111836179834579822311188113872249788677871315742974648771035483989012687185292937450643993263583040539843630138955863059226006385521800845802440640729295455646510988007454909334702664485794165469031691346650305796488103819024555661146984277879468945502899056211028674345340418246415639704788766413896240174621614634881784863984614084645318000863565059057341513590380534538971700836953211754546028434297252113906876417954023859925730348457079492270829164665495310762208296180031785599274581729523014053611750904023058125244656327829851249392777175926268831744568827505252143129617513626421100055622300527377590226522392411432045418222715798047596497422356185047037106501062458374532368164531074758405693400450171024435934990314161167775489898123419363566553654311015638691493603380452636724446769456137525873103820061484922802778309904115908692209953244397557308767692487872764139969794184955493145716450805731923496923513233214966601938300847214166090779289964195121474657249706228522456751402519448705787111789163257937510405744390700776932588507545251237156342334812864301499264887731096248666155443469386745316314611489209704095860027949481897186701392292161482111452869287626737220407101520735179895649151016623989784673899727498128137251067092128003436784101631373070850184448850513511022019050757139686978786202737939042707062742077427202207163637467134813723546440085166982473617315762282859139458514203048889680438303950280885802608135779210890685910613414814003904868300673829037760206609952828179248290097878599463353494284203095176057455453890015332056287346083817321347272979965367903045126186494823116595030312822019257991035178570255424515244470908065443525818108987130521584513041431963681493674275468899793815146424328632702698851504116301803735519196743329351271119133412051945772847719659855321102784486713249381808747225508872990853238220712573186327034357721531808201567316033603281470714010644888509851698022617624682465957568458579600715910607319593505379599601765248192108496394514801361568106878663935710834742781143351644201651717082811152225964002981222708386832261409118447988926525789316353847856367956079901038240465782482928248565954494737836493264611436718961013055447699316509001607120190663494240135302741585811989011618103061984484372877184296256464411595167690176682558493397688015779682655904934582199052652900025424854348044159771582265416846201622010253074328189150907300765772526093819647663133341106098677923068457644992651885764618837029941783953502095642987053419711584686804078925428096918385247607532821905802193912746712009949924313943038935352857871375509481442795912233970717097505452045071850008429275412305253086322637726326490802540760715993601657952044358627462950475327349237902011902042180532005073855761614538898758018870409880588635715087679485124890911084443054761056538431985186557137292584295070309062321213335135102999300035509938771269445461961205061903368432249419081034643597916997442136343195086229701742592298414962510667128794994665191887870386311105100334624479761221955799694211414501376504004193129098903269785456833512228866681903272560936937169611353696403036236815126036802128258406122968873304286261888405517767881023127936222717057520993286945520810247955783365892738850041580333255943603495361926877443893125104311977144404412202080401014281966302976623568908451508795694236495043754314078203445648105170838437341842014998995142024370630935798983229356051177485301293365143768466704516601549377204665686871651669638141781948687993534524321427449155361777621457722968502449362866123423357197550929297128091215935540829861944859473999335266533328966398503947322858474180800888015622942875505358687205762858428992915341772622879880704449918768514024787508649133721357857912972249863101191014911473825712393797390341512696381216073181424958636608045422608278264165030137473996757611868890875329485754886938046262111017393204419101009783827727514123632564610011784281235615786823050611531480595646986338838256640772983946430294421389756822959512820263243875128929560621522017776294389587722099600743068412668505633135932962592140370328496722441584203222169327000056830906487022064543387418745300309620387581797150028029474986548191877832524737368165721038340418796172532484711282685540726320234878589431131516736079944729794235597254747875359827142414517801994939572294119388184625620098867614657490480189145368328729304630284160947913571604801817043371198243093332815061790401180664587590262373054701251885036935611615867779377352136556490945886527417487800294976790450562462696367880803294938143795976493517599184032919707196461054996017228947948791398953323177380190152951872685807509357988687839647905316159857585135515124631702016895063251458906256610394462061265437903416768648874162572793008275828460653973511767295491462287532671676162895107357874763293378418997195424119708108356370716040337604116607718943275364963591255485580574042691450741221125792560143404424572947027910263141302938577750761315375195766465041461826134401704537676927294650727517855794705491726914094007125950561902360132932090741745372658878538605061031819499306964804889527429077095922747071249875945483906753836644510423005642985260599846374449968268274473826088794574411974609276634946865447669951490423336992291555868762739358686241373341739289952253706025214799554743007732160069851757953841863682205709872082177091454008254272451341520844277321336346766665092635086995114323612081724428090381047429697479603399144278171666927532948599899477710857899844298370390278172098271759452422198478767798286185758611520120718284634358881787845044355376201081702268889959383261705705637034169509865598886523253259764154744262962239217401762956009173324081672403259206108106829807105900302979221455072296507900182922822378797378706225416816837305348055592770096874269626932609065344343286926599682505803773989390022749182125406405606935579133587081579771884955041162378087243173922688076314518139119128183684441582633515652527363991163455526385867121838061940327909259530195101865892537862502579514230217854981922738730068835390123733480076575144599873301705482693741915308871647031262721654025391580836740187107073438992670500303798540243093403080312159699031525444434544563528426090105912424146534926470413167368462265232668770829225083850728751175022512939825984880865202292511295485587887205146916309911731935412304037507714356455629722277241912981162494390115064978948663856566985095067355024465646543389121796729528698505175017818353670668017940045278698227976139470018625044382057768072067046693517221365154496534453862976594533739721670514110966763646237112994516936936189449569431633405405962031082679404624742504111193440299034979537146457599557879117395084360665698257518747102674513907481043175277156913035075547125970622835784996558986692901941231735635381674951267760587046674966724496542448203709414968905669970593709514713964088046267084214062331556949367931095457110182141292839177059182590187136829563420641356901979985537198191931354893900156664612901490382717416713531738317281635447479122409765770659552379288347510940562337660976411890942172594031677082408258104464611456934557407998493115398782688026110199706657601007913907839459405723864667619777279841594459089341134188505214036824767140257884634067975437036036016619145229451424961092349911693224652646909370307530928608833830088817045736348208568071172648791892648422635481259797614722998644807219556375134453397790021306945732544187998337777900563866973032248129684243832713483256840312517493527182025805390537885479245378752062853806561860297235519490443151735309146378447929149766157320893102060235302980997834481413948971709809427380079617127445092905725052298319198379689324577120924210808762040084631057991504993259609238122658458723997077279732291805315796642787218719703411682173793107181823221545245591146827620979887243497060058162784216962063518022992190994745508895718374383117337753157430834055557253817206413261138388066109187703361011834078642092213658076713905680239267496464070930655384721972024910914591779637048286366974611919397113841787962642319701337133082418212331655912691546671149306508265732810272206020867881961602290693318933370443381135607028494530567418256975780636766559574267449748400102389164620557833577834827622112785065262190374741149137483713891794852150169551826786800465158499379253710787436732827777195554392281444625296308245074237788594406780924457905773247990514376415600448281754112664415482415953191946107001870365217845326541337165400019014371999988998324452865198464624252851109557552328457567212184654851530257393933913283922286170834577673650123001477642849306018683561484422385392748146643887908966037327508008351178169147332037170913890323004557900841613685657766514569090925701497275201036625023893632647421667539925515172641709850395528089135852499636280277857693370623624127745292082179586970945513916758998187640513213708952548908708553461086450144989064575114109638765157825513758198795595664822130571478524683688303678603884392553397111557392552508142725013716043684131993046939790350481966516295540992027544867518268452764473666669743489348301749933954679410162029055834545126330708611854898888167754277536840819842136295549780098580602843549907413197847856714740265819322146696945886552142003887308366610352716553674870885669407425086475226212016449094465557434179640732885795966708345442553919219572318455799810756680971131365621375180603897364974942102624334227514112141100468657582114555331683737715455422238059045962683620736572891801171715805347051717954042121443578837871083555122612349247620508069007524814600038060320023508597974261787999022164918500618847652578934947762762969878624637418196862265611842016151966089457027899765049573882920645983039708683582630602366263522180147669554375884779051115229191575681360242268858547682224632649737090031033535659450906909240250186006412814414977562012882868047103519471016676791795903324909369718192613347448934121675389057135797349854475069071042967576167703665948487359701386077944710269200705546268350463771921747170038072546124388553011246032992489841657738767774635871723618912926156590620664727735904367694070366224592595447988058557156046872742153166091324732147693288930524887122964901574307768499798426194608267521647317973781730175716155677425740889141675668896506107805799726053188021453145682319220322092410938213165949689122091683538686017814592846445688442014040418383745982158881612063701780919140218088729623507245838793673934333616190357569062215551010267591349279437409947483000834016986037567773648417111801477499144143982393961748893830042254987504920048271908506104648071933444707188084613689541450097049782913498849782759688099320097867868389475634906093475845238691174210737761131769860291688411953894332889829927959687415696026279449206788845768365507113799484826710999466919313685195405587931323077234537420778122765732391363933508298931897989092446585892561207172337956790933747420534789793285758039916925604276481664005979256725506239688456967798656517918319040401227100898101562630310837991436785846409501345793975261795122455828155871289235573521301106765910622594893392214089740185478984556956760923810504709338372840300636964644875553156485938580129501440333063559108364645974595775953814503581148200389125562848336109280089663460392202790907337114044637692407189595024663094604058894240511916262184976789829920013591022588744661992374005575491529502520306715162983418818419641242163201733381264720518178453539376533902774778047062603312103846504617051706645611132084585635174544331073270442486342250081259540350019455896455971864015078627175934480966610592999244846764645468025708647170354937723728148087244583287524152143829473533806289207880162568394574318535791397220435082639008036598774617148656704349954262324417222540240904302064572409403301964431240584008627443485191667365402527324139943067859118859464886982766756500851103695425011123603148163928409767120532422057023113259124866791874089511750194726416037630811934488468523613785428797033993861731227686037660450755408315234670288675113595870748682224285594292858249156143214268471972204022916764615465098663977298336769754259095141331521908689173179622820825240264154342184280367597683589884610463797863007548934025153221875674891231775157650072382331021163659908760505560436393626878211635477964784387523385950661296816129362179357632281302120933609925643181587011335949308920697401890126856151731406779550972987453703625618708291225417866233771290538324730216592686700213913865874845583923416820882031473394238704273843040664597523124349335766647205202806609348806611800581589831984534244795331698673249604770824835627166197006319114014186308116260520817046792429545153885478718492520472446414238854776234471141570920115579465305321229923784328171132574531869140656353074603232961723769446499103367176042875327577274260938522557867534149499902328928811576892763128898575834376433043711464082098894706714300402568312367013208935819231749388956926503517053523022168969248355855109140685661754165957203094035635025706492822702805584893801148152582842427250735551579529724287238543743706566335475358784712671313133529540110087501693520581063242862142713899690991799071803908941638614472908924321743317371946886254337489571890374766651990895916149356248703839056213105039100997056892796678072720586712800051515334276802708664850570800456542543555364613241062182542189488608194523551525416849333452451050494498647180218221654839219344234433384149969932034518567447260356242248914815926320672354885750580698621946669793485387051945286544871991368167797754248705192278493266331071480796282776723198179549149063164197325679444680911723589168399962668705559749215642806094150287049809210148335640813743187801294390091676969723965232230595400271519327875011141411260395716221179834712496688072787479463735352637042376365814758277499361339453511726559236870495897929044404820393904143223378311345749418788343532007099729264530402173016474667343920384580749104737436680547856766582073631350505216372187026336141038383894178147291473443347319493505294444468555755570212392071609004861605668568479066721722658959113663937221830297722788516279466006490701538546770211096717254240520226061933734332730206395315720309349636287436053530677711234946564385610620303262423460998059159265337271638846325969787372356552802156809797925528112906629843973771547619131888777062001683090316467396498567143954480220500944901951879224823101953771934538434993864636180518228523685264683221580201311819936690072962038930880016345804790337685064974786820660229775934424405605808173429136528652091227442544831175957432018274935111807919936700606921638803642354492785693845272649408274164464737673631372690308628993256478948770122579735487045987474802522861901513744235372589145267533125234780320514720241649341079161577375138393334320720028733810930780130910005201874359335480681396785657216789606226523124159003924690407854203102086218211555185398183120508156177662935764541782890785881816208341588328526787022732360256162211970171673443347309048573269856277400641235120702136432139981143076560761031151764039435660483972076887465407045018552650732795262116026977441275477950423920293716464553956222277551070005085953415983818932084553905437174357600329941458961301214508027171730605674671000682670945271058832704847668939575308193205012484590212515490962260506887013261405339431293540012040884941280632985646228370039480070653701443774585581265857572314916483662532313781263123146651095102412241788372076725279122316420860216539985861445327543194738097493500938591418587890586732731367088645329805085622101082345614770100864231900263432396311841786454968295922801961157678971233378911636977275386890829221249029536589070747349538540497848168443243370144040073506071067909659990184459281673472832081575199962770875327749296433186573357343583133280679702683724674007542698268374290676442956819341759577322705986063400023736002950943765796954400285500987013003051901882037600559855350347343329695832685667477946692665078205047537195992023176339483073726157769528971139746547366018434865348064160514328081390122579678406882956466572215812709566404324185239555951812243494488144467912874641226750115067616291086938508605409591477867950585980068664021374788557022043835631813935507350626938369845196233822980496851599992851174654470835508834553633396785661660830967262737071985223017317006270782054058055070948295500250584393025415752292227103269683982172194578475893982127278231337643638587464803176589441252606486343528666090916200643202585595418960438431453862648547337896040478295295740639082555057823771904495418373229507662667799201103526788749774673478896895582355159571245481480891024696581582914272469164334439913348203286256405888272879623351144828851447012940197445554267214081527358515556276630534965776229803884907762052101988116466173901207771736978391798099940847978020613268132098293024507453644753698605713568792685872710989000564325485597897609929637351942426616160862280631899391560565840181163895681022046585149551543540807761042840026081199260603807870700326013761669423077359109986555673836914030888294160417403281172297961565384187219380880354414370192981720807645536347241375246866881342893689711173731377776532777383303678103680638627511592882808217322336701254079183292435397123736050422569183136393183923221405116135209811634159155835488713130611180837594066188965196362177525568136990038588798812633899527249552137631198136214737697993945943946225878355962787627583787727823831619211969122574624653816464782898751813893205236294563528746251737603036585955021343953258984375444516958390245400125272060364818372106880163804048695257976679771342205244992869033190161507150625915526218335075673805654632330547180564189336946650098342165232146471812217811346498012016036229603186214428494465329127912986809356155186211832344726550059357459951425621895977655803981263124795368900231052912299847443060175482417098695753304189061401418747542080840550156271195043136702122942978739258238339883892131168235960752220834079823621764597746570998796784769956481888446837542372164327334441420279537129703441678660841345032272723959085196808512351938861189180702674554594772903816973057477113650762473689409774566624371272629074906497223578749844163707629416304799683355448157342939994987060380671184159255477536231100540635362887338821984176444903820003741395150197435967213411110480874348252938283033574347955324792821455925381899507692174925183478127669958787479586254027044029297743156745170707595903675789358815100462389706277395868719990431200223507138278320228797252830024666870200807914441362154091976758821313898428029108423417983790352285976988019688848145852811593500287902968075032722121391712592270500245184541727629084042054019282727980133834503014710912116664545400522976337154407950580819332789773207987376113249429834364871496012675208426916630052383966067694891975770181751555778320510508780188716875371690830018332368586900271972583282314104448301588763172481241524928655838903366211929207810587210479447220557349172687504632892624990912981531433859838666054939804839650171149859156246141736719019667736003713769121978441257331529883466031840430899299991970853259899192395161945090393653134368837175439525048308116623698333863517917454231614986596319847884041966640221063121408916582425832999633966097704787084412229291203232894819010926509029509567639146411759401102138285288951234501766188703251085326125605223573129016494102378566441592957751620950079081428009009395514360504256307558667166491001229316175381882141633480881749341849381637349561969273571267533943505748699121768977639861102517152670426972630547005792356985447864640855571237737330177817092169918448681699936250628208806771741379522231711380170355980689879511898739939077761552248094828632619467182166849020168146135105434179817023744122987021602681943395343652260163602019494540810472344768472414757309490515531577829419761392376867412106058878632940460348306627277872089691424457216670858688421052500169875637043604811455950443538188297293611499238856406674274204903962633345831169836010753927548930890417174392392913106442696978011336889193565208938054123557162678519428169062639839871574532092243520739261050826429188640347658067165635050577756616995813027184811010829489895231816693196385006108943264233510219710168577972065405382213435554357688177966660486251361429780465172993773573647100370537115697569173814213490939594122187852068710497478018078998245306429355997874692933897799380181039065839097154578242946105081480714055483390129516072988137286873806671589206024368189788674641852366653797087253786543987056355861635571727444417063220247190754283371955939731007834386773495592484522687662199618917163495095550053512136041436346946419099907076461417584078546237572970111726299060591552886505123142182410118577735952698686599745443263873008585086888182023601586157046427173738142492833975603020314596150001196423319253336340491528637007129578425072888898686888191478280910332415410839054469892586196968986639511886889606797202365248820490471331468688154809814864048493587213770152916471793504741506395809539928967048148298175809781968971468487814483456365016137246429368319219059657970161182509696193750611180141935193179171059541560281555365519078866705791571381436570037320514448452854408053965390276535974980050131727758548461063778539708488972853033555701996523306985153560798864568138211387211453187512271665391553897995961509352127140418384488936955619059037481357203105784281206100260979094862116696580628043804120989815154093278451497896870297318778550214899757009417970544915708081857616836185192941144959324611565397555956638790593517244730134785524455713065926823222260669128037692251938094156910561080223373545072616040268045396763351666620028668211279963786887790076410982992873260888535937101224168431735563720174707531683045196459648104848022711143808835441071630126551436049280144465974358911972192932048513109337789620833022064623649096727689825193720561645541472270556613602673424901582844412218375912904229944289281581867380560408954474503074046686935532157013611243604238742544301990744094279234133765348391875102837179019028961433558935593429955258424230339664003109853668359439432238152120023564723373336559053417114326305742505770935697964264245361956225131224024667837903849331934038861670680925955245293676874660097441978389884567862245078521666265483541118248510469715266600584217386134943842118324965362479966432886521339022138604667717823241864524143932315010563164159416226776876855154187577078874152082640364006957784321122953659646182059800985114741169945496644405768972557147522292601335675337611797273375364775358355871247708001524067456639789698115816146884053569763658367526901766745198648724683885242540010389530597252093227625270696543803924180000920828296101297204551215141173713058275978122430193818924672851470994961509865954297283947587287473904350531038460701353081542036117469253431037202439403782534526232901091042272590044595247045471777214848428754220295697991696423332247222519503271212932115260237959436037747111620590966779562538645791277414909757024469491434842110323158693020788837370402023081408665446636303511151414887310341469811128217823493136255534371671780798190415805955729949945431327252792809489844560861563349179157081131648443900364050320526653360979384579408911997650149303807670233125596012942748297090094024374074442099060955249891065431618144467762811032883793479084361880148001868207880720156997380588493913467534291598173942274750240550212696679655417690105421389788643105057016969128645725102966539808138589768911757614261402174972923589033690974059012814421275889870534384746383607291173938854613871769931595207108804902238270207578885208796054616419338490969288188902881371864529971273052818505189302559283226101615512243918006595038718833646622530062154925908274473565688888493833388048043951210362075441199824212911381946280676472260551210381246317951640082457727522437305975640270272993855865872319973025037857247576567061470546567698466479768146215755828446232746116608893337272649812807329087845823217319640489372638328136791366024496764336522753384520097902882845579620688179340107387538906457993214042028509436687865838259112273338988177817288564208156533729919563770258683938532370078188243067660669683311191310149322626535283136067310438479702004029279316038820718745278637474293717021303730451006604444446738309304076116985926587805142454281686917723432996514931638279374958051472049412503553896553872905858775711027602332607744761891812974934838340460828061337304970457518284217870849315743635028784112227825667969210493473153167951573887550303779184363943581921732146585090246586996345385205687688854589995586531487289900823504633752567569873801437645552053201097426520676544452138987494247094512239853688989657897752208912059094435467508592962818497241766882577598059569717123170216372513187013547511668481293246196526726678320537203809761274681204532326595123028471659338692858634914752964918888532410267983293538964511126772889477375454899852821397777687312811799563854688185517044427297742048956426701272152815696353400589810382515480290258031557048228216001180146141644461726001913499263429281186741134014281222329264808711108545572434877686015539216497971336850084670693618702303680098272534480107702113993428155336312093274966469996630838366981886664725952729890120017223645165454571690520548738451287895204587782813997835100473431561721109223842270987264431693341985925604170716845705929089072151047001962234228014029568077154969324639323634587265322096445603361236021073324108925903573163332247849566396607314827184937240392355291086919562820301279064352782380813571900209170557573916664511683226485562209762513971212777367796731051191901743061254198696270146578387084044200293792110602506026364097690850724883336767138023130618765469988096461458701562406223522105909738209824897875019336774571676416861257345963533022941372995594749431416691058118597489487746799565598536379856914402596149632846060500356404716937871249118465284751711556180174068938472152636242025017187238291551504839903831042841514198532079646696057905675705679103810433386822958124607246255517770878636792267407528974090859042071975336019992928268545384463319995770816698266473250107216842308480137155793330772053055319820570671749250029309102186941011397354639160861065567427037474409469872993546698845262919665770192260254445361874927485729187607987819907762424169468419972069991313683842184881439777032421996443304917011404561454176205941335708313788468941468465135357615733148283775885238029277401919448534711039424434438065880980217220580445356590090914340134819609418777183209473762120715149387187220095750539313683969677690717920591423527107385315437141918063257610468110175538556465684067753488619676100589976799725920953692213503496274992492725485182717307906655789576793022541196565153190363719844630485779678836697687152705483511746370900784154811927977930012052163812876748741702708108978571793393850688705862913338787341356707293672137011826081330775858391929612537730271532391492865941694830659838002583385132567937150321383327657615904248192945318268561028013556411790562731873972022228867952445298604420597581171752099306064148599819874866683165666550332992394491962793255544445825477597786451716248216388873023981298065190452302363312275417394171698860656517347379430455288136431710885490674390032094016019221026982227588582488752202636608647315041564130417127961599763596970925797272191022143165787253948276570661096944749845491490991793533432688539190020849647940639685896101371270272559452387849867593243552663352513766739472641138492054682257259276734787370515114037899733255973146429221490534290928289588615158752300860475522423944423112061025510819560350742637948601503027892736289445058163357253547530036925784575308206423598366538103332214667428407432925919736436360971407681235433694093868064349764965820968290250877475847298517577683888212829981372784051702213523276321099716583852797786324386944433940091319572351108945960114536471715469736298716978237525910397086378610042330991274221604944044541346863760964133372536321558782003438657670810336289907779331844787741784024238949920525753476677807114799548864273488513337857342799520335433424586378207626908265210570280705747374233933484208367537298852922941746615386194168034882106477822146656555763724932586427855036303085757932128458466847968959741228354083780828293424590400907305615809331004630347525996490540197874276834687558643345183290447328145059798221810429560777130035284371339093832526921335716834173935693203011974310211545005490557067014100229486872133550311397278286947864175927355795314286147865872588938919670914208320502064814494092322251481674700429098672285589775625662346951905064610925400818187529494284740084488856008883326978658288074093040302100892331014712124480593731242341989685704056968951017231281855913303195153703661112916615599499621938001812757537758604377623442107432603312595276082970982582267961883707012791765621661337669839276508290128513823015629408146201524298444081148902718590986051092402346718098640598920791038830536322240666381374016739737073418751707204043977227900567826905544790291320566301129266911224650525065334667040428203668323176914347039726769426208776374192508104067638410109184331873246599306727241680885974590614946464993950257729282339973728516010431800812432272193108619622385030484156036394740858466438015855232527487787927480004268302821018833603943895566115564933114566785748396555154262490961453446361755703594470101258069441490735821682885460885084690837784750322950529655655065495708483338406009689922323018929642837456355416385342007452304276736484533325172343533104253012707599576454985132340917362159274184931156488458184068402247524873088941079249237540726527015929624500443760734362265430050226581466610425269797702106480287970174679803470612801414145306105663781495629280164779897240562636126963706147840369343632641445795214833588916896325705190569204190628235533923519629748074763481101262671750690386184815603268040251117243751258951700238637007337309893637350374363808367868436033798193584747018906149153877786480844272487130712665257311080282064346447726628180273221824237364740407651315089997761151619828018462960911966875313416747016846475235843126629224440274165116105215888907835278870400850930814869812093449169976434229413852241328067068665841017350531440819546328283346990247975550999515628578499992970993304909243694132717493443717832507858208033499719279488054835043200317866312114165886338243409502008179661111166562071975447529013007373311888810654768690463304841559364106843857715366064610295506195706797826779263940023586441404641270295661844544821781217051702052561375773609241479138580023216980468148975717334308369081345858199810065986870539146818421758608782688820750977645220115063579828864443190590102190741212002732798790902110448721389864952254700723665228347587302318417783006797849110621007735099114889169253957772659568934291087895861891660080658036280774261056266369205079018755818863444426261808400022089907071462238483929034978245962258331973768343511783513789579328629825310934044484718726413626310324935343831869668179706824401962975740049202216493334750269797592229145604184026648912834112809396592085265382303661439205073584306911985943639708141289522168553777401080054053662882591633230022113346283323990780455912834579173797928286912860966733519938017363119963429558068534875243199184465059781787795087715580581914505815486203420005496910419601532587129400063827272159075462789726125766395818390132713596152139282778391806448793461510939715754468781001090017582866012291645443242420110696080759235877219634732706743539977971838669532103474717052335923985984305026711740947071921923604279097969216289724697557990275618886593079664469041661829603632723556226180731365575661342631636331532078834712921719401350712274125477368349243022372124513748965777161718684494866345032315473610752300743451186468654649134478835289990806081242930296974996076302606163301612071537039034575781499870900508862904784625778369306449597738586619228249445620759515683895430690639040659435327098903359613485199866864187969202890297159275143684912832956140825547889561733797066637272981270616715993909292929651542279222424081764136100897157811950766709003363266319423706147765400487194017747189241560488518548835026133665378639942703038281329746941883002593422840388553249601911744050619092680009023291705201040210813816823698403044911626976660656226698483270489634274217046452538185353116138634921726268837230187813764408973261990918633396666771617611672124579903682776508252447444799276728686556200912309587532354646513860491368933085731957333171973606393424706833322897704006192764915282478523639193645589720550455684781273071986853569121697400503971416564717182032406037688395779786393261945776389887771418884600804232908103329982030706564195272527572610378475349573511577672653064665756282846768046406180554357742478782102385087799430946910926301708775176444967658156528507935231669492226332676829355279818006792647106037606713808554925925652926522241750702547125398121714769247498071557050305057586303054923565197922006138676600803219529189542913201573280690097363022070800031366769832614361110510675644371162473040163071144394592709550240589627628789438535174317417959770670601215394532440613731512132956494088834242581676395484175776491265905509702864602018604085647338334268369611337920724581562697928201924477683812639560812630772634760682598932587270694680274132612337817657660353055202792745796040599160298210808601746127906756320555173807438612618089492157950043483200327230113911313777495482011373054889419507826861188034224761310889930279162800856559830576896173596630160521366882661309580428455445872781464321195092193703670325930977319095396386708023743720217715950402730304616610638367838876941542176056364444432215138333735638239451573449164071584517780848808651971522102834079933256585498721318120618509031694224830012728973511659711014469865071199455594442463846198262233652764754071013448029573030434634551680900155364972550237679948394575493638547183496228243798764623999044016917699444689402427956008635367162163529828070203378811838377856648537927922271506073115745754167362165582731197498249974090296736190387060613835286195142883900335761808387831858595091233409238983326411122158794631860179484202558420469103261089619185521634130513806292688432682581691783407115626030661094295509676934814490320891771748503219709291022400040429284567021180603450162357865010614202678645726342525815971710538285422056845284432404077476843991859793304676423501144075126972557115693257223050272875922838042220191139858503914687153219580503403499430882243541777427492847477919085954593782870339843502226188460103873500037982976443057430543014821673150630637010282494731763119098227298002083988968141201116825435563697838975393900412444754590104186606913423300226550647383844668279495758572283829791460734460122426829167101694847547914500711819139478317806261783444738417092494300430363815751491945897900248145248067867850719242537471083604145069066103607882750548667314152913298443857712937063441161512341781341372176886379722131165411803830070575755601073624908604841882253787357480454099433152200026230680104531634529924502125987005620831872262877413773815585823663722715651894709718273851761839806564959931281820344055522515935772966204579603664192550824101876816475912027777475583760903544666635859065482345541209757734302736469069890770056340746724921796501104516975799905453807830110470572140015497164265575621164080636576186180961272974985026854254850401751998233545210339231934921224172771997638741485896769180618772431121268556009873333845682927491956407441172100390935390317553792634524210317059424120964546377778019739255767541832653048971836569693159361120433886754390364189502907825281890219071255431196286256869784963547250986987960333266435996562374754322941947439961402425988640459154575219206247744293458455880154821993454498937791250519663905386551195148811568846772374244273570079063638068807324421712288975653162534935478289435705722389856946715278481391956302501638969202070009999196181073945674843741102418541894439377282923300168433897617175084261457583492942341776349620746208230239016945133545126239412738275838100561204810901617447608873619367378655419243972594514221945946655229319528751623829408110037076779498940403876373488557578878500784699062786216649225473430261792964694496672959401762642530643188033465796079870977629219020113315743273900272930898513110377510008501103345944635744080342904222245611132703776249830554715007151379312286735107810700495167531031719368137895910949508884132807447555799693819110964476772506807383802722612578760606724158136559088216334368245816893398921033225021309969378402410486027586068492572710888707276535689810432006445569559251883224071021106506789521431884934477130938923321683788613303141975645248159202286616299566406537158853052723641479300844592109630391299333727210939462209672979080779003768750868935626870360278548702788227720802475604687240207874100485031259180283797552760129310706645200219083343194799260525556791747291176285542158363927670508578427133116860770265583674611264351191052324491080410173749553032564740007116151936081858865148101558359703217539620490778018359701317270454712318703715073068282677901906921925076785859854585598915940989504556955073925955607934852552653785377484152047602038237791130813468764300730069707762361247416601358881599129226484142048512422164430872218251333092106450360421378264240134373753848215482814360705061185181919323054470590825833168133884559494120130412125513941105471182594810202326098154031775069278753201119488967962862444282153294658607658365816467237635179060010360358146738039310836448456632965193280850338743852325547620623421323273279962971191104771999656413855892756366356780129506788421937637411429892364846793519016334618222942032458000185876503985574550782822835214608701031405988389623531544064902605151085614221711675975157890970611170862461074980903574078482075822782836638085888955382754147956784786923589549143709431842188153910570946229425295519049425056682962475899453752522322500028313035892689012401768457771524929975503042992343529922600942385528959019987936019930251751962495098432195227057450879540789449793011187291354109207309408507172339373971674754479645549945417361499040232629437837247705506946813518160126296953754534809043155547500732331796553279689520888103186144887860316397422817506065923492896432370898234079710180770621153904172274176924352423848665025036867789802920427066717003859649312024346067878936303774595839394959763379207817586465875204230248722134554039189928089699262567695638599411748819015139609823763021824197556594333235548011959750114376251119566644414647944062236052925901068561880561750562506535968802923418590336212589945012923654880636981941548125402628903377165636025751369486529934527540771705910736355701460780796125580255951378447682871723417982616203334937281885806826390028954332933118405834517503449228319625201168290848636887180309797234227746018021186313356393687069631344165275983605704415531657375748283862580153092784363962826423416477099259258638081301764532689542279667219413931435679533001414992076705843498165752191460022442873985712606806763696065748209686396019083556075841881080944494672007245502730491124933335775251213326369271919159251136033730357310225620637718072070761565053394179005587438378484088993820514934601441732181932340034558644236241799731508379803409676877132954605611035479912117005864010311259783094598525008275177042549819382610863464021187920394353316708713912687119094414201652778148630244348119994997404465655880373208084849091587917548082662539456410081631988738118575168556478996502881476103753638397541218972612934089691930775843812456151166336601504382022061741904641543151036528825970376885245271899169884999517718105249032790488801466506990257709453088650534048969342025990931227150258814618438946583044319542588568641090095591303744934432736805464509178299256380344492055101666722290213584207149975017882868495231644439032245837865983774233174807587992571290838099059751456133210161114951974069299771851940866552536693482501535004765040971257843340580002431083436798662892810206612815581849574951967363910213437499787984234251011313135149809698113718099165715556488425665335918270591093568273696695768346563364119158826796613382161848270746289856787048482073535038907372953277473068261851399995235029760995123761354518070965979162002775681683251463281513267980256886253231405520900558758664367034903884860635501167117937459204554878998112719922033524147605176803399059620371803616340737231203007944890636447316329325514660784818759084246697244303269008470540013377297964055203889219007293975366714398363207950074151742556033189762378684084677285691541316272701003918034996586974576223523046618768659788101913397243795850490502795103905161896794105468699000911096582418810803495706250410987372019694311820716800088215882409338450181605971765334382394231146605480887285348723489359651211020683576800976887108056651768031263353880069641858278470578081882065283693065273311115728158755189161238325073613377103248603367737584099948381431982415385689612289101297446798163196836032784894907477418888610488523171268530487542774932564273963627039741023306929980372085249632251579452310689074300090625515570923591901343057462950254383625094762049143575378502118693272981715119881920272463733444734637927827896790340607216200026646537579374740831942879139037171742396529949101032651093698004853808778762103774061045901256776739760135967872097435093731641839909325054095019175921630242285718047673379958151797381078029486255372671488528034084427140619083868937683770782475374788436492925632159803551490300868292127792386687563306306300841484041771568724465842126401416098533849769194609206928770089289946678071388214112069242013147980312447564714741550601397283798506512251458824370743222769207482182771131858817457346764177132255753278704143137060472070813261481999986773084805242639700672682011002468270008006516220718205867900872534173647043863719067722403167040901964310441049010116518000485952581335422517624233942180971757041850439142900603788224978629287637184343455177835688585415680609152492053360175623651490642498042029130288516826831639961263330089886590871698881628754846980903486452560665393199209960413507732418318261962612308762574641429717199174388227685671705285775433944804730102420412575416668862854406930984955508611616728488061376623377366840825081174238086751159554720363050314181450539160484107867072953792375752504163829284547929464660678893295877506505240282030746942679809334766022129448173995976784895795321417921262402808414862970042130623687266823449877737285882928889585973428451385404368297472577545848505625407769425903137961732672820471976084163799213750467286772207674172456498961052980364581989013159617007008462040837079584763178994808213379754949947151641699819613710019225598625427007399050915581511118203934930741219874923481829995784328236106157588325868516247469912540708481843628822630981555912134972977173250573968612535312959192566885065285704069850236373833162072364846493681868480396252118709115779016368251021792382308446921827860224807812849251488816747604475730840614071487561411098832554540650470943275009907177354716337738135594224122104039823423000531495780513314338264635643733680048319574913320082358755389988144277986502824321675120347205387589419876827712740773631378402626790175538504585168591183230591580600766741098212168289362676291783789881611219021569357879380886151112888739723516182587095611823290155442724443424235341502397238926578209802850293884852375312054222547481587940919551209107570298362090400022681054809654464865007474505785412704370045717133484132047426293689125472305024289338350849576640655500731216238908475692489402970209928479502063785535092972772491301884988308461530376458300550499710502668442586470753239710974418418835761391077291653785514891012017623975576450097111057636287645471483547777887080158886641490392048756449385721799896370817952612370607672470918464254526782911197947976099444985660217646217089149290112912237405960755815981745501363368336900321117833138493806339843477067953725425918820720776806698695255309141390386887939467246840240192493596343174507458018063933053232457443396588947790592939794678059359689076417664541494266879537240984348293235675827300433717869938390216787558858715067256884437644450777314141777130755594343984582078338756373339184284783781607827843654077183268377433344046365830418005603587826219451066369039853570287557790386158414558626936470754462942130118666179226126912703376548960429820392685230101331063542712288301107308704096423922806359938024165432841144946302879614785590434608754824424183759317390778153198618402773884129304888346241657635629811081451305412751655448725537259476342013597541842453670432242027281024023441508948024506350980992842832339380220165273994960848994895143631691902478084891456016904369635267549700765981296075064936363739201796546876868805274668703454606061373848265749713668187562576644373046254027842248201061749698615053937162194018644112176661033467116527566554327210077934546709280833714240942301302818369832300726190064099936244046150032030518810036346306303836062431356364582756802044478012998547803412608379601525049207193114260538550606578755760719431674178079451575676737357724296298975423428488709575920232089317419857957087954773033295404235596760320205230601636320194021726646999216891217636624952497161306203904452782775073405322074034785025259875726920523914479491326108968334719575665394240209701618909948259633964330450205630882993699877048616128886433331150315141494178296795448192680341367442893167826015150158144884774669868536803762935281899501892712949319019017438396314036101431483642420557012500386810701082477743732910391006530687631158694678104939554899683792443964230524168679903014799123280064263161968397048009043827048614131329161706012460993177200520659819446929056189815092620837807051636097988916206251447161836452543082924514852559333557415555349732102031008979958529078953600687822428623106107110595325832250625556386192783972934702986016614841634775417089664699408231810798887731033739066618330692728340633879711972510953139664069457948217361493933863319807402832747087146121827304414255848898913975785088164606574172597781672867596658202511119316120353156719498557560615376920646514123607568416994978776606533149323885971794375096832955934050340574674844568516036664079124019470125801653713759325771516745853285292503537251864305554878071330850546900835826766570642998335446182245493590085921805204022442637607367832382889653494363873206446730169177514595796851246046553992868117802325375277075530469780708820598317099039363368382182053457890799574826980378725642867667896736789608654119545387958016996970000035013437368524514647139476441663216349275582178144139262942845545496333894947576928556303775351927850434090599830260362255723269914948146261436110078333841094904089819398147393027159946251712003713421646317877619440357999975440369331615107452511219773861059696235923888863649411652919486475566005515571191579626379919648458430183482128669790365756078684098871611557055321816703265399974984592372057087980275527772570572178237871679624414401346437622859613362101237872937181021817134000985165640435609630617797128104757312701430206797619888307353198960058751771699221620801924305589300973147871111990786774172635655199181683038498001029706114065132912010292806703956404969195868847552986348501209835057780062300872875497509195382454029280095341974479493430940398255962849665043858283083162897636393495376357063393047226199945269576005481552297998906182241113647470623033022049480932099038039659491204732766277889033314166943547367051158849639957288659169959173346326113434938507915344432812405413301544955194972697721244491219119592401838214518243209807412745486140564921611337676641281651700614098410631420594244500368722379019257229458674363393517074647373858040131490729493920364606201584900135283966792792136804862819041080321146452227976933768099495880536834667581156816132776126902287241337277663270768574391238976125027691913798738759040620859073030515247794088645602414591054247104824542822450549079315074323827828824464244488187811889123800399239651989973993864207145027015570787383820783930963550816405557405884881087730369345865927006083885900980388625006439587536094957033194730736493188124718519899245334932088960051921488864235419169272072402904253356603415128029372616710710215108847519130680927648570289625299175272240711197546210606705021106955856581567281361786191260537836907286264241314682401776746592467203020797178402177068589789597954281626945205074078589805541166479644523067221400546166429709639985312857467372077778891375175104371640340747723450665916915275433750732580834813330270114669158198237247858344623879317611590658067880189902871790365318099851315412866327584580193677031337328471030113985771989701611722235322342702571794934138056717854936815511597537410638899597727937080626277586663108863457117782466923889002410913641279723107022862155913977593542220945583254191873099706296387037305540984035686176834209147589752334914596758814103201794250356187852376312589270463386427661123700918128041046197466855124183395286865469513668071106476978325192597323372785058070123384291492734580120226820030962450986952860064202490979213507684102966415822114707526616076199081609390781206511259684730036315751531447558341946316640025516651690579711549546861846555395598052797552469979367352141011764776786313984404399758129058980288196528896468496634623484270182224936779773745057507122566979569395458684953390430650227548364086673716658659679064781610318490900376672238357326090397910241981874386467179280947777221310501414444206731736872945245784259382633233837278123047344020519658058962010052626846447846878118714662925261129408080330725620407627889336105409360593557152964223065681652345961142449840825514511071540484021615546873743948746446331748074382312369174933118424953420383144986634114666142219786718738191173715209509812236505163443330966507577346681672677835676742402792522758331804028608181725552343347487697239303502753584411451413482232309676647976868730367708395318613216414255267702218313585147597576270734532634099452666309400895502151074901189379882433376005265897491486142401497879456269625368406156350562923669394059816245325450207823271054957808207326831443475595708066309465352987730527086499382159721266840437640284551844030110756785486620847902542205879507426053616895550665056625914559566414202911982022716921875237944016889811982187574665830604340133699083541766544523591335272181905679300202913955921383111871906021839053927871212754146529358782104018959987130044596500564094839803423829480209838881975569255364384514552327970622954013137370641004872967174007671743817819368375224854877576798764073258143187675447832301800881433981084939110171858798734374777755830391589218017497993425657886056342082275078555949468341646834315413860195248147214113814576257258458684303256688128171695661868463361892677743288295013001934806103353837428604685218136702220392639144602105333080126318647235832842301335945942114160218129790851715145973228291050779073084438229329033494124391122304642289976493532139202793808739637446733464554681719895722241254020785630095070791302420357261334713272123670043176595362242419576549603527195556146007172253732110361439653523396189582681278408488301856520421718033096224117610435555809670627994675219753459736822214647127119696173206053806674556628328875598587058901086652915906198985554358811185520223693844587253687725041225252005430440373702641009969625617326560422222064233466622215756503124649454065618534887312073782874050394853938498211010704487387682979039052128903292766300760518437019563561160001328837283544421204129935748877475514755508970953707632443211469693156693588713772893869530160067428286267169733054921906002298420273736881755391940763709543116577264750650663195009240324481149098882880375905746682800715433821622157855015796590638160893712614322224485294792794844995704387639617839574305923013351926361207639483365721764466874232729402209405385043299343272032873552448887135108687984777726055121501244185404996634753521684109731685100729990547789580385644970377646994335749847092971398515095884259011641722420185133562665590678350301412059949240322329048139752301483741068871104046444527789317553060415247288367878803669803361780315992674972723541428445406089007035798672127208375242540695419087491737963863860524835898612568099948619737377869621507192885483280773838941748534387267550077449615799384062629234502347770658320973370346208712352630325856931916025381522791556004235611374400327019187417305022299449904100212431884359751714987133289970837972840803903581833344471761931699486130756347337502445043068623291932799219928591480130284088411624907281829392324080186653724991288598406115043915935875546089595694433782597809076706069956949411822675094025149966779492720299719008653844489738109339593434071032419548075030846889654292143508880053329240415222463218688582339685023762628502967960551713476694760871495865815723303507169606722825601719987771646748860147375733353606483519492883138628817365819346145337603070580270151628718229166061634465349335531018050064737229525747466883716676050741663643252239852638200145149670592687192159427336641527554035820097791375090665111497616213504125386511107212969967141964969644078340377535465276046807277959962015842236286873661499805295663902198668694446397344368984321586564911257448340540531924384925185804218375246473692244461201978179978663629669539537179523347712374847693859750005865847854106411950900707470425578279854881379384167172975377009262064210964784941801339664703044922230986285852370222118576088528822111108286499700437432076622603332159472034510582083135046313200868865993212823079813786708911049394799856287493626353875461881096418775891610422913159070244970412491902421184105100071964822222675279110456008948543234514509986089421391452875918465484856525834978233992256848179065332616442416735459688299236996131662444485253528130918848806683234575393249005079032482762141173137595249250804246128081807501662559023705747067610785802397631770885723206516488037345817257144671068369598238126933342973786821508232942162927411198512308023287523101721774851342774718888397809755564756293521580389540360316376471817374223552995270416802959221322932768558932792082837612742788495718220824948334922117690443204455798219640266150482026355767086372199929534194702343654527538455000098870869701542542940738848480368306610043197295398746410011774121168812015056500720694385838915672895547115297464916885117360331504252671534143343064378194894865507829327717679368140860135348361615070828683259457285810904786649072609223990637023664461991683258026270384677866591188268006238786542038628323405598458830568192463843494564881961158689829177066090292066348515395241609814192912136025613665403696355674727316891942645015830437513118763887914118994880594153928702240029758374545853692090591723250230945636605901793748987021634548938868170574063883610048353564095118579853751224459473751472573860725000354901691165583032730578019686860429037716516405993962097385976323637660320620103008003398955161481473334345975277467766494659199292949525801061684604529045670708550140149667554885157626238272260475847243256887443963471106423483831451905172278999468889474074137533939512468372746816172663298410574822830570731860976797395945907042172706970883289785139238200735424393987817182798118232186862086096340623911234733010438868835837681695103753509932080303677611499029513529515960768618706459597761675699369725515553543281693496127749772898590035807485244024919969091110796194891981881165496467100196440098027753420316042298321285230405880904356859451944917037703284449695518667689148322290122862906776080127185782775711008128698091649546287658778045824346002331018263324330253057721755788101953281255667095941647581885100735933977738758046964340768044955479725164939483998060543096504241646261693348547866173082387152898623002499050670121373526382987554500334709881634653984143197542928885387590653954245508758619004878309463254981141388861492928130482474465289827144876662120925797913011772135217937283979502403505113074411007409840555820455730968585271875817433802448382697042642432940186585583180714753546673560639722296104455002613422072841380520424853469764163758035299624557351523863798382780681660658800048688603307004745279346825565294007814026091631675930326477650107834705410683068964789710182509618389009577531705322950215953761576428347080658341344858609608283646217937305991811241885210640064203339785838805865235994255457375383158243198589893762700409218047296051778747355097890770969524081983256136610930707188992373185130009198573837000305002931983584754261604382662792478262792860620692167671962074952723993642575591257985611916766304666504950215511709205033119762439352834149015570556373487804463878336110854459785397755699700723142100994018790444908581662508239920193740053369877819259017206952380243193941994577201741205762798108722074466889448042379574496260762450960907027991839430737508963855940728471268821079909957285145183705288450088187784228646645960585724253603295797943457099243339982424875193746412951929042478458943233148709917437244822673363553035420475888563200206781491209633544222074657647560721724939339880471388525380523243672682047124790582066825258604752845472969949137412122486063733712925978364291364309287594899374433615767379303003406412777402400376571962878658954244919225544621394695378833429570447503595952157316156648249122365419955018456727799634103436140039925188666504655182030171652307342059177905977775154760976458746472131870757517966618355657285932385328818033095226420945599829287782005996855482702645373655099228992240922390790079731670857178287161139158107973884279218031846270894074786581433767015457510948328442229409431868489048199064273586793368534944384772682407756580784590083949182411228057007903853819800841347503655108594675250754749372746194896987588554551183518757140226030875359229122496081653201371692481251093303918960806928909960461703081020107165127482470665060622068137167869032747501888341291446815432664450133783959678039459180496424972334457797033693063334876105115316024716225039297648783538639498435708942218609824594388983044813719767000173474948269001920308518999651929680107709558627799341711219783107253582176560221517188082798507991236352259986022820249124309885777034633650452555355809573817316164983766978694079516583579082389221928966517080215739365906441398768319176894921942566201670747051938168778495443518129154360687053776176625020893464349929030954480393719690105471803319554975504858759495179935347395021575315465457323536843881665243370170887685700082007844721942159569674794400083574920273476830739262092153614524566422787084205951859341908552486210544312650631567279474836198066432310650346678696960813965556435511976886463120588765355450641773483861418364279343327995066615226168767813674934296132542661808187479708542858807080060413525094008249229614499680147211759546438889816145136385798825046904585221192805045494646195016045878081917815390233249740467480071371101023441916850566772418347819667684529284601217678218626980423971462524847214355461520056481582488045099751599699335662518188337196838180069306586120841733908485876713454524906675927814807688691584522046355635824480509392907360505295578559240453629048972416083791597043541048830239426137907384492802345028284966157162312263870267040042068284660991202980755646069591422824027204083534749702084934989825237926458780803846261786402030983148312992131015070117223838138283036072233858245541034783744125914875724277773940663298598069766313101355796276791098383285925416944605839013831419558851789064037588001346445662790618633858634367194286019301204096322467291835184739453115193164608943123362751312239113121941922097395385916982294296718529966534370600354885045683975876497673393328902762429322912414684914294073258205712034853802994145608903695943013265196195565086025058819960115307098925928752446022267607539096734036018591984412502225762017148472783664211238768959793773691654575649046411291182965848192470256838439019760084062130957306511395840211229202125314770803181343424070426200358948849101097851351986374055611625022595641378361203316956664886116156509342696518128544108674619908440037113522565600500431232778714714072063858014782050694203244387394872291616146890689504683235669002341392822906979674850307246694023968119762635034521275838389161294024710146290743670272688545775347983463961571539389025912668576863348984032873194802068385546782792989609702178124490168440880196543767655641443112808288602751293590386592492305869854558866303203638995362711030521774117554241940817243169793127792609684763416868833295737644558704542953147914521819281570896603269421984431468867932782052549188483732829853822521314402853756059790379032289977454663168236256613352824885847806256360094051496290145204971964123200473059884207694836973674557037170994320088774884397697603987260528589090542054140648812898946566450074179284118409000969144012542990907904606796312973412347616303872005433842423028680236174354180305851634966807218743102773896607914026731322150194570836245126334057790210583155335541006711332288961404023640370465460946947944719597256905001921213459564928059571296288758195974223218868754340990285901559475558458197568030733548603733341101897059558080538057536639159752190648856310465337287377744298130476762301566898249545631356473581835917042259249605632933209937013604813572774157041722948715954917378609079963344205135265234601058012709372545304691167466564535002960583686354545777444728122593932893324229995001005245465653494111272597388932526718718487587450338878511552035491441091445073384389135438475906966424801573413544039399580531920732572859068850427069852840748890233847712317153377209867381282777390136270319762153984637022321905595058217612149928587672981350332975301293721625736485670310420908079118106553017735940366427621280304633138422898326085111807184402077889618984179366674386558457363413945077010421244998110804617924254624264409697111701072889077304476046806334089137951442469682710363860978443574914830851563679866831036123875679883841851985175527192942797017604606415658934918208332457806398196734558132848144294919544036266670849464694327375591459516110079791465080110277658886832326540044790240755640210692483547155987641467996713210855212208524920652929509196558375418312325230946896058684556545154254476085668647176202686070723149559754194420154670479693471708919093239785339969159651276233008641302116228972121564196043093265519818017537910008179027335817767078806256058534908685663443986395287193649034208301724109234063891255756047402119490756438426144461980905844030792873506347933871243229515659620481137633932935111736339244920549895815127263527657830327258418455517890710731652765463325382655144799174185114708244931664600389044310663958449751605221541012980828243560279790949714914091468555952513304561572841178797068859638857285040536193183524950624237641071780201577704287497280587508716622353263167360435177061967106223374316454685803884569392597354675074603948257814632440096155068623403038207220175405694307298351151143764638622259503135083602685717818999605529601388012575833883598139056612308466829751237551837532423992768672496436751464996738805210066074521950893814690351973297829894017062581610919052735211104532782564060836168371143860151977143857222889113953469296156977718905913397789729489064512466246344755862460706337950426089642102734664179035352738364130848039680206971674880125628260021409154327696452117627348784934717490203407440089916842003658458636901339465484158810651600687369081099015686213548271471289387177089031287307848979424000464581818468975713401008284570204675450068524847287743868408849876263982874614775564181405976871557071101878083099791481936106383518169159680733512885374263327406136127638118633553475459361079415704944179825680298417894599061894987118404590129496345608587022286412527086546749369867869548034435268767930550462217941493617540823363863068555274270518191019643094768207145070353580325377033374929116914781566840379150071201866461204454220857879710679672354545595929902128160938345415519460199527753131752987219377538777732465080204035785386847997865005762150383252155996511666371378721853899467037115842325491433168141326611946826177039667097505929888968856836956984404704385090199600504741352875608958633988315020732439419465830518563402061701712224573178927816039691980935337800761587015119657001421424798860600762302544416037664508255769934558037596804315669912703880510851983208468253749966283550997450151855572756726178826558955574734311892582686851112296442132081001765791034078062471128887262174047855377283973802075840310265967351361182948956793278925988912468126441917275424929078965649153557807541118460919533853494980044291171286070798801083358476060669412253463461962716335677991387638129795336546070899682235038038302107077931913639112027522705518525443301342779949925733755909320030555145156957315516434076267122971534624014849777577153685842780871045800752261297798289315556678765211599767944281992199057290784701984181540635619217844718841412628470983618670075047380846141563811527289616406488940819083324599745325817710241069516189790580297584952020222191941386732218336346374450831919766961367418953108960100417807349091842360411272262976894185711478358347058914456318665059197493257213139293118487783569621425072012745636912551924924167934207240706801210796815204076895758074814613569423569687814647843430801644458966683086270372453225050081021181560501384832151700925390398650570172606800511033295654912082838036951112973137797839517463597432318471169842936353558485690802637445658752424588187443027307971763969264326589308895051068889312193827850807872385427027309995176731085285715435877375141456901350131510680095889238337769928995359057686772101059614406661252372416038002591387493152204593843540234158139139724523413947692660734188382177760155121361551954378231070713560324371925507955747431866345460777750234101658910518256868341884043626586723451337630435492379396666977994992426466595089068694672930189345814775836311367446863637931260475407763029670457373969153764260542049752734152619776696875401671494631843653969589980523358593442279419123338209086609731182919685446200198672405696274017492565036801216167226173730039956205717444573028801106310268674984856168228855700376843874595496936256102471511544610629292491103469539618974899005161486367791540390045406004543358796705935785102294598826095908448992473096571308165724462764380775211839280502656893488194511401646700889338020960848155870956277945021803255476900106311265443973204696912923020142508830956219447329744058790528618037327272671348832587885066073635628420782064870858795766915687502792422649397416392688602181515822252875044442000730467255194287403030687633986624666956859384654929557023849419071574731282576662177503656682437318980802193142502075586150864938398225839062080792667990576744735539795877754265463174108597930939662947547787555266276738511661681938522940072424319500990082656960682567668534094268163613544364591989049822088960290597719668638644204417504846826653750839147892735238376703295024980622745865051204661474351984868662792917426358871298769184615895867943197709798740155173510298737015614896706811889992205061880155513053608525975763316801075303444675981491177258586593079208196708427296783575401513936990535749130899984358172680307852176688631428315015205599467167837555326096264398082015392444944172680800660633990349634992737919223419994086329438263222089408634118959161809401516030383954032933984808582821186902640938778478484794274007328070063832927047561626695963264365782804163724971572040367007723927224367743108343972692918852400094485496133501456907283489130377597435757052330548909743321745704759308136145173669336074217006426959311359681811364254059171859340963422514126113223426129178663368065553412573477728632900345764037096736264263343356973536140007176492893338761222739112684177859805323442983846806158082772765464566238695564407172014462668177582580724223834815244180547940476564215021416267518577365037197890328178420293072368224878744102495757229448511984043508970845106585440814331863924891784183818149566241021423168813939746676555209971617435047816205013602410072275883579797258552293924534766646241292270510255773719211974009360942571769251185285320595210386420474620691225916838329438905222942175403339297425489886767727864431590723859080476453975420975692721402016096230439188454403240848694685649173036976508134065203659430298094080285193029885963291389413777589498065853155702870277227294496152050363514865819651675699320263731609974131583689218378148469748314325631916872568912667450403183738935083567645706901479783612381701810825455509184627379796555793268604952941154343354982054274252840087340298843551315046792592685409874564841513396933584879001489372816103381290206139683913470095435796450926311387780751543957919411896678607480885431755690660168962014676318348621351217202407317623712260866193079218109362352233762190628781691381482077843047769475138000938286420201701606833643647843819905491442312127332345463308226031353811474188961256335916117436884154051743307884727173888197007077689077552865587336370991567220960611092393400843367039665784774111833818647269678787414078166288997905769665375467089423534870800766576983346142106604099295857659271909187967539863756907479719376620700807137198081411426425924023362066551263684191779084725733788835541317405055025874243905709791750119741585283109613649656153148245958081192847417315542855903280007770638375495789847410386963846349244807862103886723298641728735047864632453130124413758392959121917328631386552764427410947971879105044733756162662581757249524219362184566205628505656210795396838359423370497524836911528815475457293628782116582389803746570279967658324094472842531673757077771272759786876874207797252788146049776053359534306110710578206729182532449639142683700371536951423250227029870626345135774768311699404010097414434381439872377844323344668882297994883442118824310316249011973113330614697508001638610448732621066276843251340980930000719717882774392969867928868003846844204069117187178716718919129207029282063359750137181239912487604369447322925730533893957634246060542392263321135962003823986346550434824512448187599487807213505882471315813471693677051474754806355314259214178798746057823433060229636110585381561594768310919848912974902446850375267422437164098634417912979092065140573866858319807874999697833552171248726139856278358986094985819397715624246467044095812941212814477775855672348236916757178252377070548578801115294636731857371615965603779124210276132107430005296642961982476727861330429602855788692346647489641160927752934582942789687427826543276281542545439903709001699325288648134534217434625427680775564367915585062006071793633610112268755883676733530216252900969557134913121401444234209973238541552502023219851803073425165416475154651656492843849456798536083918876564603371284098435832831469680142489615460819660210159630085662484757017902917542725132528243883111536068621366912814534232736846595244012169217246127298341984331495532543125797281214905386276947440497609247054634320218841413275886647144223350075551432090297023828359976140343866101421886182292177482094194866855566470547218139876962177934023399696575235928058921372855497184794129254680907553273346418130140365584850258015076103770937854454727291169326990891484771237945062566390088804840578961735230657198172096992404515589757972093967909782987899149382047367881350594726330238482905206011446783984097320968609970161209433146271951225559160234214853036172988333827203619705865784482000524518947167361070971737049200704455695121078878116532768621192747201735948616567744594077236782393011682084505585479172093016401485460039955166615730016348400513691302976894446733898523872711676104978998898696242700210310296583545594754861714111402513684971431808671742934830995674253153239697005727116713341278177953821321779952312668993796181139815293216539444217871742335123905872455472302833606288274836505390414313727104276450761135587911038048585231308509532105805802592997329418764558314231221342240037278266611227983548179725249297041848710430266420512688928245061238807152588261520786496913215903589103125991495513137380197982009666820531074602052106140842839139329108766435240241631717150210283880233368579483465762160637717242182269226618554020550632754250496427316994474285884499047672168311167751237541397202256576874155514019366348086882070450656547979029106293498942845681484612883459683202420026058589487402562064412281013254227877965168875647710971620657396274536383775390259673501227442119555510017280040649326363851500054992610860085626384799080773920075798117328128583595676489971194898733571936964026475688158989259033898244594960093745401672783728343238364789761753108177402248178322858659542222416476579632318411148558478340892067951104213479824813091279479660974626264222950147966265073977302641139502024915637109944898593919551187768837428481637985308505958872037237676390147216204643381853043669202586027707990709758929084164213195228875685043480510908728001085600293843080176478388297288471156227225382047199754184325974106138547509680406193702981892683569051103032686310456222142083655614080989407446848276726236221047834084940274104528255977684606811556736417088622099621216681933574197486428738901945278152344996947135773375385150570439645690010087097725306988552937660744032498190966328851248204331014522020353998172990019547714824374070883960381982753033467098533422807006338065737974467008973632596635183820176880135585336283563130370789918662915240135823403576856237586860219924746564364934882030316703698360713731295910021971425015824389911429872300111157168815930723311590308532582514772727027659419179917553294349362981578050431205934157513882909817629659363645061966805335496532207824456456430662170371751142669631846931394391785553882827850275639451796363700622738987075681786696272826281131786114632555753259377696381100854561895363524572391899288734751668977720965226821398289317706261454793423558456040198716955731450958205173421197503453517700216791293108485465516318333676240586627143888166112584424120515313897798108418613541459489250051344109606782819029729989457179027338342731730161116382689007269863349748985601466325808739805027933098999522082462670356844904550684753257999063403202841978671145045599717603430320321291042931803368756859196072759012697168268872969095170038909555941864836085111456973989957086582198083684897530584447160354266412412962045176527000776762449759753854606187761728296366188001951072087897814261231719723140221518098139712021586239250503749880310211871491634536360839213158378081809953387975703513640639558424905086398177714085096078811884834483944405765757484550078441771764663308043695604132093450008912581022055578839594652368504198015551821007998142776236019061095839616563566445320207771853478378250220265948686677452940473693432349324148706664802683892145163290608474952881362093039127254297302425198546336145778941877371718508127672147682181497579639150586330956842997762912768691501642683987584303993742538916444196016396835323141130683070212736430241242067789942926134113612877452517329191840005157932081716777110105735010892065467301798012213871513665223517935757535129097733858663145071428978411405459232383250272928614931040729920053898665391059019609240545173986123505531718277986317056769993773796008293319299232021294601697202981527480373131893946702943819190375387562937817584187283753384367123808111290420982712299348590556884657376572929809894437129700810225456278726556558327043223506999597513857079331222548825631241523070221851742602611092892904848843736642764682055134327417919591009582755802753204156346260914884672431018941969657705237360101765228113080891508525189043317351898259371977375481755629587419804468711157556429840680306971747735657995505004304711859695095236030481360851195090080813648858723645642208285366375102467340611973831221749476191314534928299367363289945942008248440414367181521259266018434198365327375064329487970944124530400992168044959043674769453342653702312609320677347408217027157260665488320120481915574419965187371233047889229304289871988975896517982195234570530395720522772064100591796192171342815724043142793156434354215374830777446016689821112894993914667138840989198068394106886245556435026173373525492153499612932428028878292002041685188713686181414107115924590846230593617753185206812650395594472026552420504441427425283364990222436203702320312220797929076600546058586323741028121557383501560201153369939318355956074866295280370834703767690222474875396337601542836892146281079320733388939254318437650623875412170037509991490867072901841643227331458703446119032053586077955682286369520525931299673178191966362019649762014706532448752250158211789331046604258561395379487936863362803362453084320288693378872275167984965019731005044315472401621758583227700018200842062143135157085990217643962616684161204072717052766249720748933695662257863949206281776116982827452538287222345197403584498084821878713099013929645869713655248818253810448708425517198563777653888555503271416072272699695411694236015840865303533989072910827364221538909967760302539735562499939321224009756926150652715132334744005697381042298142575570958460490186624913914822638770816530354059166489479176864564989582565929790623297887079354571922954110964750533792502034435115098686336876819378588193460104337181566836664394599593371677659081623361430716007904263528010915069001998741973839214041496992402787460559312016000596372387517566540268682730768300931964541046134615318138396639719185096795518250017661621700594592947851464933444625004324088837104244902125292112164297531308020444716915691000402720654447054913135266637931842327618357627226853614078368386331691118404222143539838410333262463138171315696236195849846291900779628723012284453461698994481992070985013140705560982154406234916075433337795446482978584178719053658486210930370672988903654316373826806230657261428629505468841686490967622240707551263543322970398510895555758694992597215046532566649194629799770849712728345414859023081667360893467047036081147474249190892992518127211936927696829202639409571340384734695637425926338228491346727570497265690955931733792557976923953896436180661662946394752200278198021486666849419142483042221536351227866981371398266489525072951921615234489299886977460907005075537686594085184096632719066630202724959116514444064639807812248715686329237120920796220809140045885943797022181613191045734179105148499255364248731071871428786249468537244490553709869382294139809085157341242643231184944906693124807045036460037089678765927104800396892319592287088068538626251610037955684510294437448178051209168091113739542358815504485457534524778373099996228292078248037557189671047270176255563556431768763453191484423945382085194163133939068011531420001241058281166792734533052433068158712333777636297713311493218954388362694172133770276867361177595372427032150433133122833594742802914922755313249932575415516856675561846770659004191841236112346963174970549330305945023167538334414066345232262284665609260789958944587062750811845741954359047879247039118708368151170463446674248801242035683324465523801391283121593826268357942063852838900213347218942910133129480095525362512259224771975853084462023647406922361824776926735160095920366601673216438062800077478618700882114841032269953394423524200174180602304601790723352810739547365617871843683430725069661416186932873645791093899312830037633820955991395134099264297433020007548423282753192730998025902101680471638274913742646264380704893219697922770707950597299204926961612856193908961321908446131129044331810409067574362786504564769283213831568881122450384910904472505189181851261081115573621842461817872653037712392090737649192692167895696807631719569512136060689885394042544490241495301840944934540304425829813222161515219279732227582644185200934601355059178864733492001831837381544973345942000118515496841747374424704743806581447854664274619565869135000710143863868696227846868079683919155753803519158274615520795962656481908690728577681999104554929632659696391521011995758426791078929492949397570604045351252461149310607325264398412031288226832889595730401255445068314449499492971340482710382582344444217961240553676705861831727958625161454799382661217507777665521955125865973706999883924926810098792103839681912292639921889798611730540129008788456319980275253066337551820050415995139201908276050771174614034823536890810906291414232078981715312156081252114401252351765019944442118278678241642394770332891037062605028069906228666137740127755651054849410321248348172694152442095641975207871060937302427771776654824318033524471782141144494357352336797635463875937507072871775777768311070945840998106362247875386232126396893884840631829062472581170995830321943906963887880671783836938879848277777352848790077434606591689264742089316027505376055877729890047915533536320052901308745790948622993123533392960789545824113763641312101717688817998649398834554792427657298900791858433474205094266422860163557517292598506264652952011475449086232431846314604095764043414038568869753453219669754649799081013182161476878110698610485200483896157032846376079429585782771272932950479285200106903360165184553279713019541155720745837809355232605817158146529052220124245907245548566894215744570330579869630154535381835469478040197382731542541757781586689621427998170294446180067081951424001268611575629156418437933524258648575550141673957507593264461295983523202820421528036494393073700929091911229663248938032451209402090526416328989831582239335076861270345155443238717036359361954580403419202585759301828175959746110373369903386332890533266072140215346310534426122752119507683772692001668328557737395431462227760442361016332371216122580895930621351377301165057955204846690465414744193658586088680943696674900816597111071428149787994105742117142903961882796313390835167236575963022490297291220131427202145471873258179932047535512360750936914509122288527171411740463532334067824949220867325675359496802328834853236424845982704290065061531131551759944239493154492443936949317433242224639886946023085909795385365677845320809753896102943905521426965182558739116301914558949894788802316802573379082139534383917598295102502501377286847463851633475463652728277327861430993253281386836286297336890362115002692396371945821979282465577148405491660286802175564846424579335121088994020429921666060976626496731020800241879985471716897120551709450337003601556207148156679905219065712582504057500521957249105593198818867289871952997532257513081377715795735256267951424594428829615950482481362226814664321977475151503904224770880675570492046896286547573165339502417481967349345361959219445647722548149132169060423120032489716906585583919479510801164611859967429774422667757023642370086483649366987650018675994281947187803663660388749614108161712442342814456048020740012137359768759854297862939851922465680946263267044213653121889199967281347217537774172799727095785182431121922177143442501022149365766801964936467323664585295824084850730900603833832274211367317182675517648639888040131581485073429713597931110235545310608573558026343504911288831559013630478578493608000276048343287967403496847945626960394692443626084353541982762231151489572272042435251966435493173684295182847249758589145734400299273097530740826812620715810496423242166356248866148705476932885815541815337895026444773411229890601731711676287365867798314384767578059390502713328894296331748359107599155682180355900100364194604788572871941990199044111899872164037433808026623630666185068372928746071777408550446925423732633669009561024479219851641306004844410842855544725896854211391794565122000541746650377956817631960864768093615887163480599468186893755271110669660601985291221491614454985425958346930591179185467282475776997191041065420131181187990291755194047285998758870596361606526759665163538123906445275864305564313208996925593054678358148617224461826754000054395114886497510088474172417153305140680940880400602805585621765807833891247092467535242095872729431429151842221579151018000375999189084411372688671769867084820984991978203890651907415403122225451586630778889499676588831511886377366028084411667396104068068045087269299566803958179142757218973981814001652436968982847069153009946503602950409968159204058962850818882053397486679861701690406177722674745394651750251788861179510347746616118889781403587382117181737347347123792674711564805208203963778004135813553426137304011727429807211987718581331096839366157735839332118263157318260020690699889694042736318839344266757083854753776211306832567351057808164840401441580477024385496764588110773684890353685174379844174126911586017968494717674004184964500956287648103032069775850111952505611846233017486931909807879019813155924094519032627580475218170202495144819542810957525685577147483693826504066421445233835853939822683566470500347405222263093038249755299701998110240909696074720008828151554934548930406059691383439741821621401527721849448709544637701084799431090270320761882203135131982753370767492187712876907866848900565431635396611800507086269119744606741689973156462670794106320958402151320853915588340704861145754392785196105106280964868477887233751962099426835777404649431455428929136720102773246736008912198731310839791510419696766828465027054561257982945410121621956286518176902097391026941432832747355166082450363300828177781838634993257631566408380949069555883787355492130912000131795888594517596135214271552067021729339078743632972676571462919799373350972206259285899081718553105449995270994558762069230654064348911710086739449717296612563458391768083570543191561483886392457716224591743006858837768861087416677144680422658784105084803379716551030856063827134043141757385581016192066427651079191977622979691876627207758063402231515229660093937161436514550763135863623844946067679131090846119059990609780443714463380714924996123439354502868062640644390930754223192037737001092375837871848102657859506054323735079713432621889200270752066967077340831313988988201034484383906126897151075809941941969454254510849933485978713896858994852792218966311982755528674661987631153023461656765387531012302761592928077218327638588638550434792747871100390604631914540940669008961359278311358567839343883070012006337020697175099296160474481903770422297090760366810299445313904949224933276187725575998258179060857583196237397347396564220972536631068548622910511832079359374117707256042571686991283296942387081891454210727926356233534316456988938990903333346821862527869835984232468855373128851576342178985718544353063522164809081337479294394312983548952940871254465680379332386158989121174865688612421364929595445657035280844827766442201384090207176000811425610575734276000957678230034189660348361320077011095612600314044632590120132599615927529623651302588584271033309990770724561095290583500015075197479413630189104492864588121729635536051794131969663430704218437547097415955749173187383326845847775632446745842849786951201131712705393133361251515717357674080558039411514670196720867361629003439629873303847630703061008415281601255723173326202107273285063661390226067758453353172953623739735059877348693615167069782876908677081752577567190561445667900827284263398298025604039875712815206992622494730160442289375946262491810944300992933235320951725525415344541104667590404250269271123120201233432746961829451467670332219992914475646567020413021437432600214119791792669342333628188308304234770396965564730515600301246301508516671868659215215777722203122417731618352692031476042803456293296007046891014276694594447904222839468455317019123975469622684767997508229351586796036253819303869329550056320173121111326319599364238014000488732200414374816078580982560228688076514049983554926403279717713460194693353763534330744156808851077390175973067458264397724346533448600522024485130853755271337059412927066404171608779916730871226713951926418458738256851085557167967880729773685176580921153004610615598190126868075574325066292218860626644677176609067792386535746866435180048450699221178230505918303539559634476086855777350534287476453262011286812486476685879697487614038569132970220799700005510418506063496653422674847474414402092472405099825972539841644359650082077968936923150500696486536505643006359269542671329272537870525333128808145648604008867290205182041761002775674571991380191146157967216218524778651570216092081647688029143023536079654038290622641583805487722164380207665617515038380371389316913329697595899188512421532478848893051498947241314826185671489932844066899896434184741329790033480858940859181746738621190711817531059669226430353434183155247029377479325088877563066758482843485135855548596095992206842336727935368846413137499629480756174402722398971566214705498804899642335752278168307566860275937030316717556859341223993971191804297770214427782753972356253311757459465168498935109071049887241181805650107702635541700666961850915706303715207986091731415865531866930060148895698458988981096404798410768361802557998734762892523521981885405775331573779971895248133403200680709337876219956139656903599988481685573544857646861717433152230353838911649964337570318732924327590465350918616358856592074914227130576827167270544284346973335506794871536012744750513943730151944789449684419787066491009911007636734267836399555958411504545897203603054041210750549845454194135052851435362899561289228724921645429053720287061964359357073959075689140254737377615352420964019275092003729062100004758633894671118251418644513658041261227960322468505238156363070408271664082889641313377509358577552129926540931644627957062597537156081865966078526218002593703278092236008799606203804109549110554465143670287930120785647662062112231511357509263242428965859021928681823949835608141517493259431441396783566322453043413925312130284419582428634221417943627575276382560056021642077739351902582646173715756258642345782393793153243894520892200503936566600248572365345824594022144355508021936771640045083421180482840158213665794818065459205972209380885053854682485484280684195550057943028413245111006662639547785953172544891729204510366182880579510301243862796521847041640808101357605558240667764168977405194323497496360553011816603329816798793345703034374823218649960626369961752521679953390828325074454445552016111134942115598831764956978450391540148649618759859901823718098131549264027215998709319416938547547155372861609979325998883620587142634233389648055109338076241680035533033082751135311353458783170776570660484741659161223416156290811531165521166713394219395551407523283535713240610533803507782808392724819394519903975476343855891110585384147746475344364118836884802150093162991870089068750920168574388677630976597858943752998610632837687725233494455630217822146202911494623404396310669811426509128555422522461580407767288272957958614313296321507722236485301247742658177498515516073929364474747814440573737851440520319392936975810950307286359162729143327627989994993057467476946554668634514679233286230565435438796731191307630661574189163760354549594485885954790551244083402490171387127577505055060312918488616508090900168273090514108521878682775721735770005402266626533515008816422783694842727178077485760780443921077337510783545893432392187088510160294170031502452738453698621840525342587872156258630808222022051189292220486665892826500841623195587402382943692505240915476740868124680630387423059655069421479190710242464232248813519223746505834746107168103999573798543579835435670433210927585587900216411582631009307390796864502186589526875665979310513651115754641034760733842326028907113478875731236669420860349473057366111721652872184430189624160889196741930928457416036982516277063902225490342181406641764631144643000287584116860147428400177110801306807977154306709699374576435193534806234133167049694094209075925075307665045780791351337246437287694542806848615862885008872791927909240835930401393696628304935317884633574910982677338276033292296859154553086502251750116270908160151339508651462300205933153603832565191855218574175852062455734209074437196103649768381395566903522940052650606437180224389863494675922279027242067275001525025686617123209419900737657965887941868309609013404389891688033380276350027421602235527972117999478821817983258023450387880144072202075549436121465871716667893425636132037492538519235618630738697968047971855654984568532367138391321207488639820904080913991611334735614969089803387274725837674290717249909977689165655032077144136140053605176023318318963217885786927147637138816788684894285695974454357688517499166124703662896934408376245425696287349825463940545741220710600549137586468138836118432793779656688394168145843021430203932453899287283444554795329979782074993664437818357007084881676903362283490007926471157306041812062043583986551339248865862376031843127070776566754692059306254468442255161009247580127164909881239770537600380651045286449391652065918650895505659842565283974983234180079234485191139291190890746271648679440993414021694050554193251779042915559647792422660891371608237025814205192481646277436626915296476040259774288291975388167727052244537053641172031830729613064319409277843658618444466143212250850308351172577294571610132239533159021838467563224883843415698583970002485534293285902530408814933091873069940265418902568032357452977643560939269758507142011920100413856799870548870036175796300218916689311891808918936471817250053676276550485946329131541380489073733560926962626180623589950238399153196702654405249589711557908092703295089835284458133337166541380072092704110424863765593666642579414668405293446468132756764198032089669473137847412324043079363548607152350558109585343222688279634098854328860524653341342127183317005896264072560676690809466204964124919436090529253169208269984582896153025534577701475596798819507490662002658026673170001564689666844907550875969949155940224876829695255607886657667399744664048747441123475515885219875945434049667211885647788397710757520560702583208485008269989044600422888039545948410237269110254123927669623936080490994743145018020195007864860327334080332533597756149108346790765279947560333495029816718583001559983436738036726514533946625773863873654959152375866883017844326255886417995793855423534076666931095575649067004393064847129402876011884750247067031446439530043771468736549906459174756980069994883287014788719399134671426916279801178993953377124602010112994373796111828878659782887025080172778219772849288531113870626903317830653477690629636365756267220224211114237682650529980503583668174709740089335623174928235004157989162961509024119461297531860560612406861603711330171310994222602325322634514303777173087474784806692696179685479286820944078625810666187358480876113740836774972235795624940523290944643366911589919459409766965814388050783833197452284030668974296438931374004953643065511609763770836893469683162065910153911023865199608531455700218173270233049751524690594143572858081975039019973827048159068585969348187113045428835563649238474628693184080487666368285430584831491568780329490023889690933333762018279895334928681591159901767964143935848867080997541707482412492962372453195254454448982198229650263586660582487974682597055948252299870944826666915864242562635458224429338888558465874166732241039453686323673948746860741539805865514835432698536563763008611511902605462494338125970731323176693969117379459410957519812060908406668605349318048690651521877237453068850414281394808640613791107729358541107492999767698336531947260193180118834885861335794976332677176246019234786966822761588356985876903288141069816374064785536928387562930364618037088956232055640200600959488336208145100119432601909276354649547275574335629146355715859758273170169707917829970265082948202249843380303634253221736164791268442205523267311061933701765698533888212879040190479041200023966350100502320295271076158147091909267407102246566052926508495094967416777860655065991145321769171335626526564133395759299656025521017116020463376137725785110494050694853910634403689587186570313164698638756948594036706573871801608323095427175636024100567418075381860652601123244944897128289654140355954979592409999634652159893422947041271651479483711440690115911683409498805878261122987654028334362932942172167018459830355436440447884884993118795476947405655994196258233782835567894883517500423409090556515181150009779096670171412692904014532405522791803652435579496087089602673330669966354222850079923359551432510337728559731636557145527545955670799808220575681480187947494732527035377332964985668651256200747020404902333825192421459071008597846915306590945706484090944393906558299493003184021661921328832519236879366291155468144469051262485597331961439372925889628831565287267431012417658059316495708908314141778047169855910648606178253457023663191272339324505801375902859120692784075566780033963334148315208144572070131113780883398328589787487711204816954509474268411484281219476250061600415631572586832013193324756033520689772725175497163308424726860498651553811086473745672884843298649241541440308822284351828421846029080732484905910534698524581211777992151093282510244982730118541378743276564796815949403161050967818270967985274299789323921470997176565413727996013311697841842964553565056988592845809413237937019448103718260407182614052303721498363356642177772238039620382158065226550911010699362695248467754042637607357168611125838915727130201001745174882916432021657978950812590560158938209002526580317011610246744639866254408081049148245020558112693634105037619471892600286599734889058996415482892252301493680419866945824435764129077789703046222707237921131819131736008707673969002538478059703823246655452356096578557530301896169836910984138040431518487392899241271642852692813633751125847191140797986059201359875895551908281931679851581669731681804232370479689846634549010318520386664577188900296810989586825617341080915630827430972039463725517751941147527516290653503880908708558475534858839359359816655661202229497657231348636994000272659550353031289234830103254516974375882571828098813392973339288924370955145524157907716192851743199759848819192086894584990447212863493740480771318496084682864870909175106049094072440279355215533390016526356910317182570797713297843252800599227628533953423671684344413714941614933591601857640678546143082961486127555886228086780791493708487082428404963521440262912704594923947183418106689261418735812577683870833460013312986640142867499968419363268245112110534258430693556629689866023438035622440649407951326966690101789064221439587050728268639648547914749062420379158258606201878709362748155972070720092360854937404285377919733589549379466117607101288862282838571253655434895930628583986952895221007237615984472162445868224470957815918742525034699061769155564299873975058210624007497794386635403019842290738831483620028198045374397879490905940501757252711222993931029368003753832205680148826678569723514371948243652253724217654414095981255723913177948559759904586778712821195355446607361323040251887393906405830247938811473427908559965424142180975353522265692387378127662027554129064550245214621206062795764877619848823266223932034228736431887341857025412090270779495172763756083812765218895728905363362510094402456016437516503193572314355531603719222340261006499345268605275418181235446077971611068384642177611685916233976213056089921032195642345188937082191952883011492745796231195349242070541483298624552997455277822940637393462860684807242325064760985186293383998974191687352750157340662881160967821498629192075175137140541573769946286382166450648694151120595354906789682800618098139288726579988671306171475796271265508997635589617305481222003047934945902642974149706031053884083022406556519356215988899328205839944488725193341941257142630775370952990045335126192007375837768700789210455177131881523715163225532705739278554755444906954314057325291780556922784834601483645607890979252503216792440330775148542039879456896638051552340688287816720753792148448616298304690501108293328109454598592274671555546541453331442735462572140547735358595462748180262282019427642296909304926444340504238055407357015536759260325323531232699769311881722546340087195045155381940763058157162613955942732890056441314200740761815382614168186805457149089695150339212189418614578230205824081058459646717990308635902810783834236686366013060516750084819377532580587236255793398540050390369375755415352492247864417445542358351944600990398403305162573176505650985780143754426068644656479625884367561515564011011420343688595097043291659765557036266305864883044103397672634695869484785457392259030259366291493628578724969076093323970869192627388063020979236358379210720123020431799130721037626346493703398923770049008325797507505486372552663073783774948630459804739270640218115240794833657473246831239108365051073095263281544446527028937584053010816159988870809812073017731084546079726150463820757839013313530760212758493986106112677498166588585087286887005104426258920476720511871179410539588889325358384791371425401900668205400662142916766752766956649193404668670138178163952573936077454922210552604476203737593425688874799593552172827495069640663465947245760811578037015265131669749381427648633871988716477420483660379399680247661214979217423620484896186797244393136951495724790061359631606112914790179527002443692429192678826119577549681422015460744785109324702972553344345360728322592432281895855079481251878349826378326118237224117911194351903041379102647625586273143665030585378859234195886643754196664284608387366700617784942974195711618244001483775871981956432238235663211502811364680307846900431482240222787282650984715502183092070201841414242726473377292662832406043915206518453357980624531653934567211427854129987700807776564428534917536079884209382336303821414529965278687589763818692857075839643107488492573595093243971399265591406833956764208054154215107648824121788623653569618204755236829619695363691788942407144057882741289186271628825867770965812118503741570450821660880282194991376123544914943388561451280761651126484343445584827597832494764827768534150988652657122877585432717139926711640834048593996236558995418308400478516663904058808410076148425889777542688796847104834443348356410010221475556485313430492033491501935236823640846353010687271693208362288292943219762013471915116191653566043600663930550760926750332520780921697543452280034836002001286643099286455512179881293591042669168679023446722645267649219818248936822057944136574066820882461480736855976610736139590482675187048391430219843511053553224943079221175944620359569067179391696627189503097830573683190497609620318727559679589155723827508527778227884623126075145177901357915341527666211464985948394067927732950008359220873691408928529467787982798516343165584378414528172293514781871228451541496794414872316194036912785145593134578036431395062661698257514158636832541564167679640632391453459659532815572356503852049394942080337518163410930800449108250244436347728760229276980638978833574492146160264770072348315501894902947593217088032444193279674942402508175383383610121944289078392999165446837400544140079218569568618636641893793765051487083998711469752833921576536725089340919931647019787369051252022049961918414755929486768512336686816388492926359040040036991019556864996322180235031315031490029668645494243972383506949090612643957069589643911366101888927932880500239395142488064959071801388227315349117049641489271943254089177826922726001620477651072590103521325876592365273232509133757522569262729222610575417061807918995750427662730858055705449308114082775065276433444800206338140075406694611044246577934073572516592353391379086179412159861507283161689198252037756715274901705447115047645587685761093452783039588915014511100813466237192710350794556116311602180895444037105565653767699250128221067779341658560995383537897415677803834595672451432396526283504803650423164133625379354411158346675735198631334842157602637410701980109199483137406138420697288573251808665632887428238312988985978819810071062607664505310352504345030399699857018640203586395432178500138478721675309188174533271377246411076203195653842278672609984963873793500402481777860735963202067996438020665788983894466479229229503504965985350028651211960912493626548887070650402566302270973198836212831060437919714138129721252088112512955944168853759492946226629377305224266683365303133626821576266497906059886848676364834542727753802433077296225093767520825245022385022220938421833750254855455602678335216682458223846545126094236378751657726243930673284141741700892951522932548002262148324930686783696621761884943153133275373775073945529817708858033592636718083267906368398621425636161504657423628602859199960867217459363971243643640477651586956055321249382431825124513878584180298878528736201350585925154009446245549272710822158053949684839331919218579733676007443843946880200074201335405969500299968588389015128300956409769163738510156335523311918270364733270294895608098338158358130071646755180297022605599628133755570878372276970420822440992954107000268102793209134888499754727080999987648337117211041797076036331432746383199967378966731151118276969625938422097292412678054145569772274974011987245458820131518801130112756813392637056939446014232076489708883444786639194666221814819722759052668848886831948276416670890464327707421056599574055696367203995526900441143196520210381902888631844715339495420896004836567507122780015706103613058268663742320385776107912107393960611244692810498076886002671480828205518897690773520334050800641505422736936188176318443271614257996883988021262888014482827447510919406294954663459450945990844357365220495949810655801610821820196210917090918793454214643964130214341627909467740608510557147262306439433040691345079877454545908430284943393976002592017130867419648961298622971401121355628632208749410939007139816578903514432180595200573647311190790302882978445109403060687253740236998350347946822610999230038549749367308807487547199294641981470036701238872366144488842529365229309973184088093769561475940069694216240376195311959480474043872163465119235115079403739438440018315297976522024102946627623633885756601025325686397074032786188533090770554410764073788590385756874097883087129542145514574092074825663816637591272954145878024843813387747907323597986622294330803845345172741524031369900147313356035060834169069921530955159619486925769101740411413509098408107561566471009145314106952790106273395923929393404108328579165394298293242592332427155324004226699438203197404420251956665135062513599452834836221670911685989975066491942791991467009910607104656288091908324558460890808630337090972910374535319728407694638024435020298169168070874067576350241333378628967975241846335669034934177798784241372294453813661923716008058607731350333260020590771419845727134028535665229789032566339386646805708844894199921295855077529084043618579219172046742166729979170497323447330229338650781608881847453938471062786562591093691261972295630634566762985255023028008016262684369335820723576895885319774842087097340991854173731182027537581303281195845104926022013789049685015006919531765682605543922194774785306886798398477796602056109838476271721584322916255221625944545564365123461978154246469581362023997941185154264579548389944421563566989407641089921286585456517632064549925206801626451979925300241882078377450806781399422859416863929893584254988212784857949252564713928479929212941659084806272637365476524751550709457456076139611826872574290331858088263475955822179906303828055969637351167777796971703530552494231452642826684545376432614310484967807525664031168570701378855238144408796512845569195493480415721924887783955909166961068538944275787870052396073609967422641719415920865163440424494317726537470401486267051323473864183386462288615344716308416743299036910026158694061919250293277267258914956460473591191279505010594836839024679804649443207063075306031681780495295145956943783098610194033435102574130986205152439266398614350434373200405498192616404044988997504937524641152211080241023629937133505752261901315679163011155292666716002325592965674107635778881380659387656433735480669934439836928372034904349281536320872964700406999272010023316497602844893653024599611598261668003758556325188372892374359153948971424113718184620530950307931238933329934005557896624499428878873316373604855750768344532568715213491028185317850614356445289195145984879092872867493745773639182803093385250862269719076656564257715980941204519711812054214458295704879136837076956428027955257572768043292265203600326181424747743981000458094071387789159632159434784647116807417907561328328597155961604807158108564875851443033399881589917472153632872786497983680620706092203766902180151157919694870556687840014446010580170600662347309749603417471744443423489165838213523641603880659567307285013080451534807557479129030967335350486394637896919243469273636099704019631441852850841755625017398259336368870472110737048362838070638296456732823423894310441972634327078156789384217322412503623508243080087228178886070514622645537154689621906895535467089113802659298907619510278586432355172029535577175713349037304220297919546913151148462996873892777055684247913335180710250701684104872529402288143858711685033792789348742385647325592277773705626447428018271695110880365294343374000370675066477157361353536433166517537833036122139203310331293707458968784648731497184969294198703979764588104085150865720882171396486345555703499062373422617161310668383239548986351644610945077186615608343608310596684497099352129682819679203258751236501575259167506719431753228099842754915696170261079121490576866467723035117459811017330201399194069419341057603799112016978952227103213895198164599710080432762206828150674509900877514770057357670478145823273656744213202425978855776447049747719392148280912618842494385159727063188983880969897772988041203827985005657725028869869453882024987218805090547375035785236909353758318800840514900327103111129099545446985915524901632575301716241821122924560822560272813217205428061535445442565816405551438704187673116840410509989524743633265761654103571467295646496790440409012473953409832267427537794941416463438079759636215253082446358177798389640449897721871710160167849775926764927418930534400370675017596375979889819394884116281058450684097648346521714209368338051747450641769086546800029384752673318482790703314452910869492343461433457056152271377240977280288322699110192728592577356340509542610746350209366267657647539968662182677148832731684358353345080380956417977798663659245592795235670136896617836759696959071309349543561256076837968970710295853183176291651597379323247187814094671636092790335619727103597398048146449671975416208562419177654764842976979588084783784466259536447865326369077256811785689629762545459470734797923571147757094506308160164790139140711316555636105412805464536978719736058529171391234905829690626675329490057977201021767362288174663265159167302752047156066360444344368149104689940003315477074459926597468537228391215481389700770376135393173625442485510214068735917079590241887881706941805602741027898046217088241831760091128325513905800579877850696156761682626923172307403579444100775037016972085575423197896345199981377408619427084753144058858524233527423690285901652843962012956631115435538620243696064807709543871808753324908276685001865532053679011509176715450423915875490166400790782192296006304229940711630506980180051809719069916653943936196178714722549567117479206867190221402834628807991201605607218197757112823539378511663066334326147020014993449633952968423819803467845903651208728642049382276933579339358729065679929439938457380013035754345025840642062585467816738990630732747365138810112469611556531606035847653637956107574985232723745439684646095434516671248854632674524985660221540463913677881874284353923378550115738409921816687892464134270871007320257579875066097633820192061154506041389588180466174859006970945103282498590457544716887981948008085607227416661787931622647634416148287691818136938129755221724869199575567999308920874229862144520039635967684474328657241483326784952783215314210008779467063950595655636677167670834264564384226386276078881931279210648115087537698685927305955936596559196718641230785939965330187586391487739533887988907052782875768906586616065493432858914603002101830789464250275832426201872534927410797058242767802522584019714683496354664416870354119978309288431356395213398589155294422646761322973228234934256982642577684379166113075690967890413180569423090736325711458516352916656227610381403216174610564578703561654219443312346165146916192635420085619314361637621766060671758072355882495356820045213702964922135628220096369662857488057044246878104454229287992435391305050102043240622329515485055290099383871666086498822763750833524507870073428501424949654391628590595097287080015090812879983959256109560089858811686591536426773907135527100063569860494073202429077257257250799292147759670329969633942007194481629908284536824005747487921557669030431600678717368202067998532849870867758149412174336586960835692565642365051266513279718537133514713487907435695094901233586594646769228168532630079643780630883489359481228400524560626359618045387361871596156317981613007263095924959540559003269706149304000358761646164261159986772587253416271283970481317193567788125111761953052917618344974035427998410510518993436558931027487986262341801897166136773409272775678104955495249686110355683641366262991948944545983145020782051045178734560398141436816841196838889473614856994298341665755222034308947159288084182973519574050989600051401125599653634788788126034279125280133143953105779346138716701747689474093491866940361536681247713843235411065392765612957770982561412373980088254324208595427163701600927608311726911637616946654440212022909982399442958256740110212337901234325320568862891916293567834731454154717709916384159527182282923327408586569684061075361622327234035087183173953860495771331636296911076294613584608094793693372946444267493394161879574045819252501864043321608286667428558550463182558308881702463580449605608228977619733249265160043392425685334328506839006171868387252109725841946150431483914772856966319302395889313186558647685122403478335231393510487748681748813853065722352656429602011178574454029635164362366415502190897301297633244937548768534146097541464946244862060274759570405902924527532069484895600361594368415831250231602371003820822491619880034076612653019980386036667677033015604942583797126034725253106317663494838564802844699104045920571648368982193643126471183742248756557559568306735563360839471682027405633669045983526564140543425058807979117907648590032494839713160119696706132249019339525702088876513086138719549048326846931571517350449932596114408887100592433862825158409331167801446557594716333118950710825376702560084435163833829317813530136760643708967788310713830964713747592656424155665400831110194883532890451028001099148722527606560736890839524670812724469932574749092506921358603270844421474503575591370330091562599444111428970167002789505893317734530735882140897457877058059620214077508393609525261523061198725767530446083870768639941973649952076781819994863760244090744300069995693458726412733221665928809253881718090857460185807093816226900752689469973050752339035229614892484634105854221438353254487332330167092013809376940367617528784725717427435028634422413617705522834889809584509062668964111762193722146382641658767834005085784127086494417636529793869321936650233533970875993527784477480527705809384015439571483998254209439249658025351368328110541484308860706135412839165170636115927547785554806176436341193773385230410287299741600820915536301051152765154615711612558267402069304765001297135558371764129602608415643330081857021438229708975455565582494291311371378329664792051968259863231907273543072906912557408464538066700279187632562726814392243014806571584982433054123027318692927221284480001058175794493622502130671871680545496393772377464364154114490080345387025742108714598438303982992925384820457466434695228628406938612744625598602121540701132523861403280011040472147975237680200813571830267163680182025961157140620154797538516026674259342577060161922922662452397079143329263116369798731421482764998978915137767816283357093500373920550160793770590290716649206103416936337379182324454911982267452244398735806218455843236569058543842985798191671633204247987405158728963556614580077640134489167130849551960496244630806365667321141102515806539708489704820669282880537473693347292606001230552463932292379754134746867561026693232092095470813800061391229863241907632137564378803081489533974150215837602959305295202487502752980428728739355148839947087055169097768577974963447678421477751048109167839416140307945676535364969968693839919463170158597424129961396779320670774807810171540425702022441688368772720102728929976215899479506997101099926414287618285584802572387421717075784678055742642058218127677169197954871688315830208019882700296542521319046596263469476770162702791979932460250793662866080372665517421133502968263436252843564088933372663133355835675157371672685238604026186668726097294902806260485295910308355501349587809695862444151437236579280206836414886035526032150911045044472743176567546757848797643450636331213068313023858504544230333217330412526848500489968241533907128783542437669123879192047522163800160976933198864419950218775537845117804247399570264694778187765877954069213003510368632476615868407806158987329821411646227810714539729447514447163150542424582855359865444913104272629882727005579731080178257024576048535333633948391803896059190761757079730855421617592084141572723515424111537037433915034793025703436096787892677111285983637901139467381918998224119346228376153604523888357694782155597217521596597655292378762676747256942067332435723034856423722947824597959509977599548130021125113465088540180494306151087968645795754890009667660473095244551443677145461954655500522501483838889961193374220539006282379391736021761465601867146630767950700385045870987210186680117116670269889738478916732867861099371202114079487300493843293008251015975798508998401989072066885985502518437059554628812874605674012262644375844327558250326053571609088929294020419102914447615614076998706556794786328078621821088205585686715117985462602566314621816968091904438951000546325519049072771440811762896471206898007854054211618095183488355931732074878251343102047998677009936160596280217975589734642617841698284727108740881831906952466509939840236725486088995184428927542796881172972577542743237158344857940804761651962252513811039095195893914345673059435074484619287646173591740752347834033666639487763742777028085701559399019643139285473605266589417368590384692226614452176642806454026297204326867073295692323867452790722051361166930773302090889933208858921979731490699356592996945627054108003448486205851422982639271638922493662068708394370399072681104425621546030836192648033123922247703179318144648130641838780727649714994339791038200690408309244063040950076118712875797909524558135228275710794004346963077949996702568343253989752333703267822009979788049017090006679479497437493956804957437487707478194943782529115866987559267655955591446051298290259319499605692653761231560798404925147415982693341666374838329804596829021426043616361269609922459832465938915405428772087084645295132123776633042166831802402963102405869403925902701663460519027657640256987005687694930201221239170333077233423292670106192487392073061513043647967221096629176898120985467717958511136378346139624653969493347448463300380637273306065852677608375526356685168437746187839328647322309338175044448692658223179376889604735570518621260804973415586473408809739938217887833604538383130895205215219319042778855837975622552267982807560222142926427971228726176182970969653701930387433396141303571099654604609331710478293333965702242444309354558905459619498970202753517559186290765620604051751864439722989243874476736905081574861523333533995383033058517192515530610940846338131303112270564520739152887954981606317520199186079314534478912672240654558786790496830127540367072442494769680360903492906904367804894832103587993643912200027128982243515005998943531857355404720016604290160525402212324322245080937878953006770524110162474332960158902320355971236200991968749366718961754554248272059822801905973256941591571053061987658130950212973422329056076855584646560787109901868571716696823849614864021909814342543712648450397928465278287110536262691189302656026440721424946966674322980576306792230354072878510052496927691867897066070065398755562655565171504407735893197440248883603693024343455391732611802737369053666218729175780323162644536246166073245884701802839970658507491996934875009716600913591328004668981974615891947101496251124425041528719036856094280964376945956255417317727894717498266437102084983053881284402077149397479083467570911190972737055024317088485486013928019143663924085919291575213592555611353270579951394725256134644545232197097006967165830454613310785022029176899358483980726985075441500652593097521204858935281071587989932791870020773595216522033065273170726034722683731371323934592896173668890860543181725471685825680326885466678810088342549023305914583506692080893028875763648487142950144777138332945975211089322568499479285982718112722683228803919435751013601596527632153633705706440493855667906687318525216342947166749216080130360408013242142529973330822637441910104676837176352518221772106586250926419723146340284518707461163917244321235410592462634869639428046736392481496118032428793344592112703449331160829060255355174684913430060988210582841087343291138776043123195859123553849646263932758610512028061116058393171948477740267155707032114243245584659203094999369777813251952130770007572937847337381482068198981861071237560599627222674963321244600785888531475640301265063182211376108051831216326845099981656192007349921992715164226004760524872554975686870089357063398551607016673053153882953482684394318831817144223669830390020747857651771114358601547567226520362765593327657436838965665101009459467142514050843467250207447559532343469975291378822137749592587587318183860464919675463361789766027843131003848355410031115721081573284410761567287906163044548128580710959320207403366064248160405018084541576784458333266416460215933480110820114023437008740598585804900339955611900836956436874803414305467188522938241920400280172249812088211372152531102305891706879296508407951829005147765661944577423462732886787390024227861351082919390702616997311418521686496297938488724566615360378616970975892495055055822842075461479360538633382584335455445000281778367819656752227765433675733047814063841225000332449903000238628809190854580765763711475699222238154322217584950419265055460055122354144042378696489335162139763783595566549242217265489347248831443009578677108411238681242822156303739330335632636599321785126990262271595994028818538454269030214658928871777321154268358066229332262903453041188030789106845699309271266478210823060586279352191072030471831414446695099259840676216801786268239033525408163400904889141817689345040716360036739617368977847615450635589799114468277680429178825302395329551394598237368687232063515157038162271909940416649515667444966170285253503864849401218355066765626660147056384437660322595642825967611690455345465362257378257937216475199443457189227592222088761688361298357094434668589131873122192904052745356418420170961061917051415933860734181334795743446351887633832910587376812356567499160367599853961904073093441742167312628086996235291770024958887793396331396759922634800705843445692023447666262606886959476333942157007921491184937023133508750459031385900865937044951037845230271510452462730627677929231968501459514807435645679374138240748441930657262986806224292793364306848733483128369548716274872597911004415749251950385539928269974459239504288514261352949752675948045994359621187934956465309200083200367223887463421389154869955835773248165096346995580635811275312379470556872942172124301137828369597301269725341495489820328671653306265945666074210796025025052751623983452051695601003627697357818257566407993566876609184598736157999516832909033901680194289924888627940339320905101402473717626076914886818231246435288950504489905697872897437708317099039299957112537339949203516503655146411854394386494765270379502563769874241117354190152417226637637325611283108590704931910033311861333699030545427184981070867953394615338595162528881021305108266131753138351098856445295844879941738799743066297282921462910956114813097637055770165197057649166230663712186349153549315448722339116185815623976493603251288657222067841175786035030130690504532764289215132176763789970758497040747993237555028975358783812709798831100508941634729841788723770348640474674548778270709438390902273520824064293673520835342187054857488572382230919068248992751571186827034497637389228813468379191438755755301648462495602886518579941174747812980203317848663689019864895222731162934833221925801478428167709329605589640735924420443182143355018649281045184193585721008489177502014242460622536317500966845295518797937560433781097500263852790972557027219268622901997067931510464142162380666922482383123791351367821201264498898118332432283311366326857686659078641090421343252381841613906585139985073132622693372682571132858272927910855977596672247001336942767539469933916365463629728177713396579094457796574956506837458194341353651692293831013449788339878504985563521911304060274357174271562522828252429345546828331772206251118081747678506779790448029397795007615937197987242974855966700901848856980563605123329421686081363619392234862861996637918761548369575403364083413180212370368482908932082459395790716656626608810382074816525009957024865387500715049112776901720186556851789432738993723708322840982335206548955648367359888671248812654840238958306666176481689048557629828888893793958195518179987846131413701443987600692406283330275737720582604346203075127815012915852841530856807703135800701910547968154090219460112744785570204490407370651056712993554167958724577157202993367601247088618000009208790562909796610235029520588785603772473659268598508831023842923712684951962457512727881319673571790481182693700347864176395578205706498730386777348585960361286406687866928951308084971470283944853763259659061661612432331008612934025634631594741741816019042484620847098516075560777511834784791078723147669761579780316513931327421257701642502992674308145254808550376497014842640375854974346094111697772232932626522959070175569027780457686658767622756533323918940123454485070113389306435368028552389939311786150948837783595481033329577423271248235521295879989499638503551237191125117310768774428748571847073581680829923803187597747349686859452232215765201075063060421722195107372248509887594877003742926587429923713172148000258003510631641112174593097646655263385822067040637367085460092749514968138892656863007999016915362437292931172884504484899951216177095445007372156596738511840933361574321114956602259476929405493879318981338641945728098147162714828809587247749898853520923347111017355205561240979095252479082010255162283482154312267549488838154882013867886297560886066404116086894597832419385171653481629706971538489100175161521952045615519163339523134655804251532574200051443699372833891840074501070451233098512030625333368033644534975608964942474743462116876763145643779832726616753562490208826766191930310686666107700761287948263981449328717042983085465155911063337717045385154961446557236463770901754164832401043944857054095455987130796974243100006715335070249621769839791296482103450598540615074995781170587049375665150353924826974920252159974939052794609577284499686530628246820879351293817458881449886354882857323194919173937210328183282215282320357224613057302706460683361983172003931375148361461831307002584019328390223891993094951603476930477306924539154965659730121204228843874127295223831251665204155965460120408876116128232003857226767207759341499734662468348278568955817921829338209011552374254332644030628165263395565524136130502370551138869992683461537880292008974710613497549239051605996954704330960495644840585373025326919586992847533298883824671764292330820812422872094200588860580972846172855210514905142101322804518359586533876878691214693742761256137054522338813989621111592160386847575878569974414378689152669309236985332426608854959812003706620949174744295523066741777634832143650739607815299882702702521723280289555647735520473067067557153638177529556679383807319117850779499276313429991205459356475894608702460824769520642113180600169350765844412474491097518791223839561483970920750613311314506015109246508397818482563332659838038241518613449010370432082884087048144556485900167086622797776560069602486764258685314824705980152311583844172825387695193879722453511031920542029274711732520543452689287168171186487783589828874628097957975457406210441893738414579355850648923212108221172540587504813122961612603591158608007350121143544306434665521661831512913824315975221166284633412933109623458415087722461206668808812523964956282541201386540402605437535239390784621017159765084839499610928099009833334463418601987853969915536927396254488267666467650792010974369047791111481422352697304218002918269059391458549779945373307165275356738589974861093351333525958836861964117803237953013479599224892970345368690729953364457867598049611876608939270520228311125476999574404007044567068392833514094220200080485630022934927559497253768005922791489544824010733740127325944524176437284549928985366668640142518356914917905753572027824158390094713485284150917496035972239077218651802183626640716734892982421615389661977640868478808406316942566752832927437218121944387537561736927045011144468628735487842087856392277808704716468077143322285153823266151029914145368236243147409404382161023507558529843019239416035454343759840024037226732905996802568882117016254430048103763750861746629313287575148324597922598239184879788652771462140663552355470551693524359020763074092467428728896249914306922293604681838579822241395427660363218345747967338914558038902145238788272361528370677169345240778800505531252930317003923927724837824341448257555128863330337144529140778261577372689178996290144467777327565014328070233409837373881758204113429880696383782734762051867220377492327604422331334166047158732990219394576573079584573322497662852091763389818038220062529426204143128095554336746833290891058125795633599784711395091991595046373755474537338689396805461185654933932642575087843114623444565075539211770336213519254371624381746849131463535386293948028869426584740071292098543843958761206826446143125162299892157828269797586739487834048754825373269669175545605098690009930165051200654482714488965262028832126297117270210027639768927201662750749746143840493118794886445217009341941285795147183643694779017248493559791422525605681498566418928324751224892242504439011285130130456371602665423825056060133476418502553478562592708855037258869950843022924257589960365789623084660432210386103339256009424792736920871818538234182584724316147554005211635630408892961005464103099639481300969374960836740162324947236612650060716658271346513860893866435401471716056444875642361915794102840995593000242003187493358224319809023657048293436803004394801104237571343897419713315371903221638088799175909606832790461286620071266503718675497437215175491355236030862090295136770405224109436475606513120829513962873680197541048798157661889179373784952607734329392825146886481626141818968889840540676482430013850708486292202297910585214870521983941261890581974231241705278332834151253310324053023725802433181285026373456735293614210652053577701940562385613503108343208571290072774389656051472554086136393522611399847302597853032096720727224503537565849884411968426100625989086133802471247455429362872395933132552738959651626632279240707406508515233057215905801080499673545625728052074539839090164914814363586722192508090010729712847483363452025203483906722481851518533887766693290800272335182165897620796355837497365270078825210276400509266397675230856363062018203575867105012670770744071018646101701775946448522181697933257073669080667225179707760784996032960575127880089916014241745155695098580580475006000627277429821221446859088481325401389763295971698555456326539952900412654580872591471569881068482253889169589458246861116515486394857079555229442185660318057778145980818167187633629184682848783332929714277873547689897473011352129931077585443625008004612229148407483321447366495643953081545241568055516350595599307114101974651349261631175017519578903326882284080002180365056208042432991336086291097568501348012558243103226656024389264788063466808782106393690923394451506931061983818956770700838147185639988739529974849194968897204009047364694338299738432247438856706281063709099109026948067857214495010918005535782720459020773840085362398223606859391200418142422902143567102178136112196102892048969429242362916244889641508805372631291814408364412018517543875538440650457067769609522384539264155528928463314544235604726603245110247353901829202263408206296568207311886019317832770962411331881782331115202645024922352290284029487753196439232695706966303769011832070438458401345690139204802108437606133986540476215268715049551572715118761247051808396432875823537297160671387724951381029196758500501479188863087605919779877551842672665427108245453939199493718049709418179001874389722358033762079143464925286807610774362891786770151195604373538954084710831806594034924213472098270413782152007806616942677317372766254980271015210947796505157167838185914483149290501016081645380866811796450477029568444416970010190205101480766603799861505408925937270085432754145216042789691088302507653652457954874005175904357746215868504406344624003767468986476948152268585616981424923805193352657245725168051752248150782649103081402303890526574064698463164047835123719106603718894559302209043581701200089099327565457532613073509430439013764985413701368393725659482494319312279339484312049251080491986815110317089769441269010104707075296415780254072377579554431151996433593899613171303503410975174518117010532803456419626650421813021404085486002691480499268771476665100303008943620014713282308683635523582914323402884625451614892172939062673181800423267734950390288867515035493297995528504882075218226369596943049399474329660238984401142313867280670728992414731153347111294730891308277602651511102454992790050646351027549163417996141261569818242934638477302996556085986864593044660069435226654708294240427656249668609642710943426279582967200185097023664313486332423313724855789003064799030225425822459439427860721520869506354865885764823438361116557721139731158604255123863401719626504567076559017289914917809638807928447620594593621263776042100364385800820396061036477591383723877641928455601663823351296510376605473218886830157275721593739341501375187376860039864728697838648014433494629617857573697605677623432786524205550097387862060188509050784220783857304629185650208033275100771377390787353378383453233787260019877525511010201426407769641728601853319486557212276797178746678533592604287424480920261554031648772892138882288905266630965608318876252129158048068599562717107496714072931474652311882581134384988130149706867813325655363822174141780073876484041475207712444662180078264186031074602505209848792622501516488465955868660259151206820967138296926947579989427136218469025503952062442209327484260149638755980502550333176739522132104298225521398631396618678816303784700447216740926558046765270803347448012743954524626690923900448465857048924452388775361114212527933711483422763039194511501594651073764537980914344655308742462775638840403925820281703343855188577335500762222691476262332658736555383962655270075514275137184152712312780242298850001121385003565440500809606183028091867120032797069018961409656902082070553254054875571598721140817450174483050503595914644642536726384274681593987791426237675064605389554236950593820729918651145917415320111546555189134671074999629893064559349475994480666989052415306029572802486613095502228371478770493153292652558659677436536159200227283674569820533970728201566186941463784282535397307310853378135554971153309713438800302904334244788585538721704066745347925223539039258951647682998939674011622586366783477029640136684015691120927829783767623819757123667650450195986050723970558560797506205903997756557763618956561194574172330015151947792325972512543183536714813867918744174298346112751098281644528678071912824306481843663284269348312131721806993976859392197398871817532037646854074164711128525534411208307976724878718456713996324840933443449366022268125970997937770671088965781419417246987202210745194902634168742527237022586293084399246242148990915068074893406895390231854656603535663855495191284925012228346900681694419721592135766583987488438358098999881175516135952891964290404386990333720408055934575462099371909751403502162079167069094934435784510944702116919099632178298134494621560845023434234409203828193559181437235577395976505176020723098478677436973197042651690261265663302579911582432757809936749768527053649118259660280666101094702081331043332994418633518713955437295807969414587698724973399182077782012668064755011530985845172895759966097157755210034282329531419067535673037984777886227417999037019912516928106044040027134174298132436838086203855683432998704350041482054204487598357174895168455345786075944696087764646636501595697925029897728214740783095858141469804655488359164630962946256339600857445768618762416299848583980701155950153866113804340926726678743925327805584933090010220944935111949185027250554780778248632092179599381672842191872807431100634370658537344366534289501179024895106264276582728383399428358421809706853234610646417077740137389988752263052370902245009927998832395649183311145860378204778331800633414152176036186008999866773350400138180623156495662469184300108293369497256212400102796350846144619235856632440636525562508318699700001727927727501438588968066602172343697675204832852928133382679582026098445557290836303857065368825826136500831037516679893980495222550085510085038858996183880118264891062736554186533576333695770080728532370536547211375108023493017484515011987039710922408681963399269800154410533564937583858240505017143869537873953278037254789482261363553196788486984466436526577544775502166887870811545939272698877839470029667723627064891322313668270638617880628968160407712484596345724637668894723690631402503939497661667291404668220852484187413960493294817729711761684354847751972409377131690170362208583578032952137376725612794503102388420087556152980544303256552855827583184569219425474876537190245523123065015007967944339149379548461358044966994608879353843467683525602366647847491050857223051382558321538222639775582996539025733065546581707593455277251190277139524627255813287875252233179792268122864043677207319147949380039866457539484990915603309042023868984718817368878866994105185980723213769052181148145773905903271365832053717635903150142362338468385445167518598048105003394753559084969539851965349668878004220781822522315453031820576514993836056537863200249721579624442109690582539346318207455155511485451252876872966641181358338999985984374022839113723137540830537189801132031509509353803403149018230602677585025742863991003205407276923257444154793904723636763042996986370777683241015156950540390684315729748259859294259126894728527256334271546899310625432768789071131702818236004816433073974520950303590197835543195186986313783304800927601060950346837835719888848749205187669843223699810078825042521536639308697631426537864079022406778788156648386780014991744433720354195236025668113841447962127668889079462858672905201384529253731169636292480072268844700080618186251604104230742018749853876894117306238419634499141362246938567546543275425141202178889054394876156415811917333456479242969143384698181543061042071174467812704119082242490094143471238402141535008368095647223560005026047647883273392802075353333140485247633909233539400862700704751895741310991922106958539224199395353002598810834374392815940653663892109489048819285363771221073602516949955973324242438639649607499793382971992155441278913565866807806137717951334636661063810139160711121360716266003446998623610864069523740449114879023816436946290044978413834521714349393420345979456884435101687692318758900491660589337178830887105362621634477449252104745533451994103178630395869954267504487737422698683534673237126580102202701375202439356983612441307892068522492394081608718884213468084749943007094218845022809754023050297495566129224157627094595906172945937145276730994341370134195286839226016967689941630577805227778193713610607691260457335120084699547132605655005170694737089473899044328227285920208385500089549277186130970332004435160725269106910770253979517813112604279143247563962387376454533866181021241880162781399908078793915421194793612787925803211620605690272849759052378112818910847369685830788004221926559051645735825943711072811784834696902472897663641608540178891678946229910196779450789454414582594383920441608224515574940182068816274262075740744505857846522597002861186449444823117744242679095488745817295062877449586539525144300665001216005990327534601801234835272850576563545114980761652711048807118207388949590199109086462564193759560439095390104496594374385670397294113699691869675467199506634514785069889823342201987978332531171963060573649150853995163646721407662319915950153466852861208850651463976199820907461704745319586079257975927325568232870386852824715708718013659344288496152598132178327021264477829267081771241469408459023168779998483467909967381458358649422070215129909639671396406283237554580931746461384159274936562058965774663117123893823255028602803492631681723535353039355799186121232917179218129082609742069490242487186872691352993740565785643973201703915502450671892773382625114082180090052940451983883007274509222104495635206471374456555305715462886522552869106259023970044085638020352965021979204155191042478283557254391024042820382001707425318798360213512427252762694756002696982508953756746069206425531602574708143233708281136373713463883601529918912342687504089755641136363849898176689230066006189867607217666222884438499215863617297623536055467062940724459302146483563970472458547958988425371674180302478378486845184610460699906707132814409606005604388958704230018240312435355588611746086134951633121235372437250866106409562926289852710662847399257279059842749355288365547937545443305141176272069741861133749993255204207392016411268957714357664644209448084261800960722973308074678782966289682394334358360456907572088706638145923909067889831930930593553010298976661639828805659729215269458028319071851117424339181848311677857939299064495940055569421659213358517806150878837051745575924508348495460916519674344971656622570732090099290916234401030372539409554656448898272486306377110969629526275057670557292178938572064775897406169476797613561911851819056956976780692554458039184651159762751167750135496969740107876157624182754733657008742212764227737743229162598399432401491385471847285538406994046034139160112830321967223057063444266482644333515872673024115312055143489041892624335258450306865519798641720969735284973125060782236390070765016001876967912564223377373550174207607782683930824182245845782157755514529308233126401795108621564163847623076334097020854377377831825833408800160757449087010468180917723559473745478101322986533669042549852915015081229269282285211172953192272210252154478660634726545158095344689616307626927573467914767494026315723880520274324998844958485161878509474515627014615763472424837333941343927001064367398273156927318571646822026949766467060760760472782424735364645037321208151023819437776459186679364857593963905359595460019475123076051077881363334439776311432877759163825385650623502439075784766075396482706264041954204740793047543566572614955851961698057281616659446741962330889454969879871637921406326111384944152240547071975851887641917414150298725559786447519490987448905013624217969745174955385494795076399144167281628898881684653625566061401330277352829220059243143769717313710178814058547182710342423837354828390660734910266954867058824558144035807883028093407971541851477258102723595479450514842579031311879203843912409342533981624712368901768796387300335635495323465558534576585883276034347374662738312635915239485648152125855489714651166145055883587214557346548800091198513671419226746780769630993660072665916838079526459867354215841601226346850593993014467097692657010677963421578433007567097164706993989851195409946046276746577643954463489853403888182948551279515394469302105398258429396673715729508563604702382180547819320503175614705206339606998940531839839307318494511506972906457558505736299867859921587891954554799337872930662681394540271896332391357371469647122801056437860708219416778894206082474074590871625594129284543733960641424135215580239238226101053762340890812282373578828162783947633420608695033520355079270278946738699617678826350122006978905197870700183382836003468339573168762860773677316980831397357985485805155738109200030410200579506305209141824638855994445659500089825129993386217400205865434869285805986458081357421522197148640120143584817144433672972672566599226924483032783136192315820277533059265435408922233135134132562321405211874013996343547393709491206590638212075097804387822651618944162945794041495870423471593490683827253125754109181413874895490661859524330980845385039042706946484883397044616875003632191361677702307165153846679487075177780467327022033001686044164200641565337750612269153421738036746351617145238557153587596416892243787164096618086563123569439853258516655900326120602117905848336101788527253912264161379628889706034080611029273138959154353905296416882073910386965415078853053616172242478619132348097426699072114156972313652984216742317407661872202972770081153163716445694630387188976484371045814951065837896315414788006624880829324496610708327777101427467271106237742971961074474030798898391044405945469543848152862444208455898863103670762450023594613854877737918143528348820745511322821041625608945747608083981187768293296643469107390637796668380444843805868383724496021847240913279378660404458773577913197593621762610186995562679974033401264479930499046582118753254292343934547614360401569642972964169159863617800302169723916062078697996714209710098646765990785643830573102710058002274114586394796867344795934052374556965520293809954871371127846313165000878042145204864282432721949683808229092154654266162791668332829241460296472381747493310598232853179000804266473529675656655782380385610690114844800297944266371029840327941250565466446104578678432705736046054020172222089572131584798705590221848635914592779682630928922190854808478919675595453530836068500280834649733625787970135118714936550869404145780532711604780468433838030499135738415995122874546396804362850868486134419858773246603019699390467403789286274132645005264761146721459689826941500722447239617704975845987542450142942485121684712415214818766733994262732748965074921826199750190099295915989271509302943722633919636199606908034718183148900498744925911441243573969179403528968474422736517094561320146024842460460202458941911197873354562343685520011229871049100268361130602898634652906935338968851023294900536589726002263686542211052755116757279800627243375973924305243877976985708492789075012927923800426224904532165637458253568859167111020611753603340780554883509116698835164690490815272743629054968349555842176216858479784956733824354554481877377405925623758826934196751762174746314957428449156265259841210223659526230929304276425486256791998248193258275523136551702162001395878116873611278159368264280141398173256393992303350018238735012966262443246638792935383175313070563583324130631513127805612665236115374574927701556352300856164872953517973786060985922643431470851106433006844500220974601522758724059262288653182600373044120433961799127561346431469096482547026284443242253049195204165649054649955021137666492520448935341817195501651325477667039131963049108372218038389933428429222007901797705368585803494638962085659514554311090140980368371836153413258977723132077724037976006211949474560462290864945906758782035948942151374840586271181605487557948660727481142312478325618584651108244244581035574460889271831396563390137324022167069298065046494701489693441320541667525142922676049985001934708132746172772095721661734624116808373866552449812207587968386904804592124226684469163354076867836478474245599112927352184088966442967171723135354887497051089806764504084697854833239031509113157951904253813150812915450084329571093407621213445582177799663734359861942624234123886842328762595377874502241797293367106475541302227936663700813790249040173311725454665814943327095852838383052147379929635058610645522021626349022544099838557091268172152982929421220695306150330536675084466752709366850436252186801133489130777315548821579935181405164442264800343569196611178103740174705538454991220464541173717099412075525810811747169907604467367476587044324847279776026199536990468213637829914383256039602805691035343902624071977338133724715740094977698547724045556033369511537709180632089190136465747498144819063435226638709736175195791997605476141747651533093051329904222149385987102463685391212696952468101112605973501671972682683277171854482813607656555865659257586986639043756486723710176379673471471293657134602874119406573455154671689558818408614429868101024806239026583032740563769312799711040564774867381354616657057188901608997559642522240141688304627893827197698372507442434805665418177148450961382310753541348231031132726917596682093411339606260111064366309815332572909036534843424868940707546556637927465710899558797505087877052616986349681362194714862536362997756805942707962896227776842925142893660588004606636531812834705211516464580591417064426122401357263046878696630753789423014147277669556635646308420847546941613166474616625768184323651968226440991299879221715028502834487857001635805735122793368650324860110197611340490039454560522479175809889836584685686638776916269114389755337294072438737769896055690170044967944672566836474690293288680749610875442271365100517205310245733369785946468233749098833519438959226240969087103905571660075968690413267814280878912841833657727975839703895840330992628642941673772413159148004203611975226882553920106162333935373569303423973996375082027370712706487023609553820764188372399304188945006208626404614728771718121069960554106281555168171329330367680797270482236077548642359221141242326427995018557490234205958720321196800451552194442017736651869922760229058831606596991472533321182596334572525632834128451240429030324191696545551379726398899201274047612566630342452010162613350071936399959137400357180368120780713150177049619372235005571529094848800345550193026032798495778153713534369425978806303409402097701015888755374352320869856796385972119460602387926611611871777668317702087138187109883458999839298305712889438063942042033224626978092578374897611561541062727780493255446607520841793052680921147706878685529183301502266337127886312296048695286662514378731456091824371761222315317416411460767831544353456498680419238310589920918740401091333578370366152813754902170870375062181804443663195114419506106263189810982386167007516721458324086513334816104001855205419580802319420329855975027399772380720993321564005595177095753657730183102430197242177410689987204258005058039390872706836689439085754216550489240753573108827806293997354613736070400980211675045319687110462380633205368959234551436105856587951575438598240304665426390210806826125265843792041359436680738893710225548203040428994537591037647179130675794742515207899989735825107114552011138517855396197389221323848413960186126239028430359909972832799196866840659848420203009513360754011129170456934566187920647791232176072840825773134726766712111744451150746833326573248617593564702199221212518739038601172275051468089764611068323355201712772149746197043506788023072206765260501785554303549450412249575278450059069374375559637444723808862986670238682814890881918072869689426747335209804047242741328539205375514526680843394719405876992758431265361853742842404004142003596256993033132255305386317495083236814770298556932197673710792268679165649373323016822418781996362632719900223591600475341081193350960884475071563900625849951467769019432139336588991857272615411008882475638383716044697293173109625015045627176124844799279820331987065097672372708808861001325800062103924463858429481135727279148171924618546649536143347912288593781606003660787798947840854128365048931016384883270875972964967983708411835022818754719288650886015693371228666463733669437812704747757529927643410376419780335986233592857208324572295333095650920653146278711224252899510260032203743109639500319902708854109989146585180298975943657915707224377958493789948997234225023561372436843064919345699329359123902813941871533443615038098872459979129980861778435612494594586321757307322476457128072931007214091608824226675481097156996428817287896981996439710497517767860681767410827729876028531824419867780562029650573870872952971639237495508812635522486107284745496661947702468733933114002431869055432025844771990363258816596664585683381044407507116695349961851900988704954420502802395273988376899213231245939329414676790975956998110865761448300849263529277102523976323321273111850296169491206892315211476055963546339182739567849206608405491251444632333685399324423258460172252298176499269183683188865818902241369567579255434277300602688251446780602635370690940853160598018031091328863254595612275843293385914768093758657240628179175538162501513201149248358399523866290108339725804611558928588539026835707557404215598325439500137500085747203983380355596351122097669329508792929937328836459376792102250506665933843407549387621556931547947961839449760934353826399195581841707846739331222691845438564645038619319076817753177746140943595368726503445863376971798965636748281524923667177763769529671720878458624100849767702046914873189039111268359573956988287124271039051031695286666253198349278631501110110643588676983969865176747445819480572312558074057169553313605594468959838975043886168405857869201428289342336904726947967557930159165076115906652965281491691770093968438108417177336218909614777216221624819998527515847104865632328057653961666395393627927427170477456479748530426283768176117723045670541367279961219448404444114130304163432119599356068722297147405948651221098655801074527210648414129865667037111573354809382223159115236461610370773768262648602374023370836070562522909822097085217996517514946198064171100182372149794001633963350010753415616751589652997620874510136834182300358863557443867044308802847110096253649243246438288623525437214203913904970427527507142769146795604941090368271723199502120126535633595231261904284649449542054088598447046690123932572418187966974085488267216443954714172292472478113383719056653202516954388120648621721715611542424714907111410442517525240859152973943729007318706457189820997608505919370777046368914338920112576040663608265040744489365802149535743432944129095488299666009600250438337076131209602729076556892282486855589904165772885873993425756940664026109870510792059866792365675140973986791681665784561707687093527569108081539968784671275894398388508419217651023537028867626775215584548522023180573267898816478262961515489630794216428056460741266781676320681696574703449479078704716850612525245811354948905145844320866200501385860457219710421980352430951252120574312249966743896691207891129092566535492008608537350135553513890534897918915503181632267339853301202303301692413588396697134837751693474536720831542804771373461415452344547326187230802194931372238817350816020911946703210578228387778050306752550791344386808000402750107291906897396704082432522669868832004041806561764010095072713028238514180699778091142114789905666172306010445091978972793125655671880960847709054569137999635435155418970410907946520403075718459769519255214339349931356256635337593636223843976428215348027845659978136198587045458767961804020808695405644611715109279178807592602704464992751551618573552947982634736087033080992949643778488261651258677735836017041538708086737735133550628139250714449635961380795079066420248024577380823937606433180475910212339773173588525288824356214535468021251791829705263670093773398150761582300785276457233525522527752123061294654578370761435508474112969664530004369804727097084975387260312030863589501260448943027886416587457945102428458228627876354747396255947663586902962156356260103122754760595740982628703253943936008206746535786321429823840849794865790421444680386122287946641987818990564304003325763252901349460882484065878155639197204763913899998045849470852791736420106949169031829696387812079520679642527292621994158047516010285481643715787743774423562120372205205418935351920547538115754492858815306062795748601027566046800557410036649955216009826647490578966818662800160442041043986054173677773097131456034388374216059201052018904154485215979696070384276630484317647007894431549142137342722469537615424565320649672504709219347027845390910156774495044151483324991998777256964670588481814491181395728312221547238127777841604450622571512466751486800131036034192628836094674859202400528894230472165559600221064974203803326266686122861414949534801004650788805213652432919313125826190664300739055442298117748941430539259554959977642869837098097106755178202415827340784884861516302578134066625896883049415506720387062545029166639038328933254286727799616249820279816130592808877081222836859584905036241402876049854961798435166872949676984933040339878640191387606313525294024224429647192813527286145020652706287255841395297777026928584651921026639652318661442532579337093786074029992083602578156915658405176046854462647968288140544965300548047854803370271999622270219890862326903319487701479769690325937759064459060185978923586688406985989004105122513476721813454056042447557092987077433164920277444010576730837447934645690845046814144604698999354125996259996776538008022405938635526736851862122386752198414732240146312297958535514316435230157723048155607898462610245558739087389724365778650258501177081316722338638126561178206431301161381248142111835350701019151641422151845896727807407166058295876094343712275195801982035975681059105520307561262917664910428638473376364379599271782994461334030806341067413737640574483147254013209325282922372354913676886700932910107016419147091516055438288603739802044180692394992942043005330034799659209679749128945720718242302817516035983683569270200085959419610928134864185278777854110094911975109703794828402592514955308988145210775044727071038402415284742518984447128978047945760137330769006098482168200287947264812060379831532274341966439406402188090329122772320049358533421746538119840464904611309643133762810714053517335151936622340788682462789642009371716019122188680410586401393865131588630537259777601071235957541567862273561469511642003330408219866990818253823688657426325639729169223505472204227880795633966923527893929728157781070926861020516025094875335995554192061798088418918364076912065118076909628910680278092964938245608751280901388094992958651491838186166017126480721225022482673538808580602099322917783797059555983158675254917234792250201470647360122612356158826063893259545521993173217274765552325214206650513581663694296256253496829422626852235289118555753690441561919340777401002136368770693511372801480314157220470538176354403274021042027442965775520104528644810379582736541327563437092533113249156542571309265932025961087155572093979402295733427112618152061287427728521100478360811957103805700579159845022292482779040892771386887359980679956519295201332601594188453778896845847636260352147406802339321881763290425451987697518812194559271518302443674185751735545217013265958691444713294559611154266908178399880349790600218602922602810613204102735274915911782531969742960788825977321627754138385165469085226235152032930850958755326452753773063930532822421887764480330966418871129031595178195774930413273720500529240859400037142702128480633964211733276251373826314187433173697295727442546336652119676364318848769071139172040274766984524510957006022395260259618710814968780647742887790575561379993409053325427845328476618794614360147674171236509961656931721904896446193460780502741352241072677827013271183098765166976376873583959587749788755094312644546691428393962627306341040815782250291545306255392540340087603105951074213541436712539217295038830991102980730861672423437525950363405665293785056344214519853427159599981859911767670215638444862552301435964939420346471263697152334652894718161765265314758259459748259841148362522068304298398626118035332973996000334625429406335413906296469554597598191578485955048364867825249583361212132533667235212712110794898457825894825385706750059198976374823060108113923435738095473177930165147439022989303018827325335345866009078084919022645867757005825652036596444639846392468647245531835324620190077548279717600915720796717508497881883439041603266169378269834007422961897821644021128649342782496686064688707726251229972859005269607705130592447144942615525574819993756650781369645585362288314775348828859077883981217061358837942275342150058529507813968084092357189380765070850054842770313270680952401389561932661493139727899607960746526314473931000010509874010951828863207642965107793502543040936512834190652630632341547283584383503093802990002690857060425741407454851335694466975209407440592930376338864499582310316926220980185932778048423585795442491478362650465335625562994661495785396723708039449406767182611062507739067586201351146204665623958413896276293147958558581869774932518709727210692430005124178215643624883700116098787748555328229365988065313034726245476890321597591361036907568652839194964719245948000447968061050834933796421137366861677818770424507450512654482859290283261952839277146070050966239778412959324055433063218982535884382812329466996539114815466377009379532360716839935217460713664115880291659851973475211454402803388058838016272258715704829513430151058698625995766473700441499083819339972664284675105906398208833404740922606253716695104545564781159855798822025006248985397443099028310046748928804211286862174827580605376728117681730409624726917970654009893451566182145415198021622648177201891323797399429754858491465674858419979451829419969007213937423978163498052277311234757571123838324975989272022442430512203647848469964676823871961024452688405311337176425580715162884288454178954548377309338863869013852738573404908046097095891456803556938648101318730013199442366009883760148965597134083668082435251851336590548422779346024278251370353481009824489218162089517732989989022714221683425800219265509407567901152026050880490491772458606322423007754138387268365457553018123730832238769194107782693746914476041985438355440599181326651404697011225958063708137555581050844606826605032222189668521098907106960448560074147329771119538025365911421061371178091774651189237141715219068645324102353338333228666093041555559287162435154857282245070429459863290285091940429785678565056004687169931783324364193229392542404018121371014096686840266254378718362570613021125920685111731476843020847128222518189745515747814052281737124100212732698475505541902506862099161938073625478140070663163426023573958590866553252224355112476568264024023419604469718654623520675821231998101996616673457969209725413730524731348511039130268652024408863972748966068782980466238980388931267136188649037163447104022565736099270391685456772563626428300871670289107304473100293192992277366036918875391866501092444835702808796943373398266655907257036189306069103345794343116121001471868179395939294004888170811585608377351456273415727687729486469724246174653481425486601579373898713896710167098443748560436246293448513005400517006114883040338814316787857773330340400229740072768733257020882282057770476244627577803629203725300421689648729296333606814016965589895535460386001829785285772678298196437696280886498968315662191204466760519507265196653732121455514719917598009149224238316830621124654388507722003452933432133501861289098612983764531283003914307230034859067690890000697898064266143945575875400686836979333206502291881741587782233220803186277730378007228767380234087480501333986356941337516826640569407857957621408044917170147941785633207293020025031084061932658423624585290633071437662976826924615407659518418215283524810457570441194212536512511761004802781391218043443647909262390476602072601516535985433411645065783438453194574246003251770915795254229442100351740874615596152325349290699561519106969789602958678714147262021009297550822165680473657772707932633054942497067816569604276024480600194068125018583460001672204039770320557816675001605191078729988596384172353511138641396816169203300058585197968251388898321935176168331437640270305205178365299438463759043653027972263120331585272046289528516660719475376932054488349427176827301629129212285942528125417663279767311260041554075407639884202482168736895063366810103899211626316802325219640882101844757047553527583208158642686267099455289800853381984228616535614451404608909933863546561888001976083967914825078860359801392439364223909202176913655336492256133493757152624982105628346170358376492993812807703820043557381542203162967676338006720761168304689684298245740711538330486563282097141179715855549375440077816151543348795254856501176451121793994414911777310211271595985896779879403010770023762198611750603679880025582250995457424642848599796004360300761478810555433279210156948854160439806302826748247255130996147028009874501103553648303877765699484125264283462651253689741072989803781192556932231158483301453514692073929021382684904400149957465289677296053281811748912602314394599216767265878575940230912984557373145132611736499784502584276403738556051962867738679767073145537123494568354162432740576897842059221350645135600515816121988596273048501235957912439592281397066602349112826540525474395505150612704993112640632487255384975956539578342759181258984232399513373705667285816108966608844843157038972326158294696905196746551878082723178028533748099862171274300100894764474532215986836612233568052870594135850095013591512296747566865455993668225005178773029892420673011051516312744450028592526969493813074256369407417809834998770592284036466907048973821024173522289943850647105475273473502641788604088227296746274645120473766565178788682283272099898135931920676134937599620139795338578278505925984887690677041587526861542971331675561800399283489497375735386906876033856223264651839735658584897024636183637510832236526529651079737330620722325222922966880489806911107830492573226413910029824707552414722192896524724450027364844376317036440511931125447340775344231424666618015786763018717036220042514686933841637088925037338596685780617031735389501547060156804093030755121861836637824379705605368263926863302700453519630680448653999968609345456977174984173046166728299626738348492486685663866837034146157131955040419030113261545069375295966903355957668995721862371550158233900572735740672766212584574578771172217891983971244785841550320621444469987295262659862339716274359925385872323999759002111715649189617964998012580829804014981820621086793205143290858026463091557623294519655404059894694179947080378004347710992535100013690060833862967105432405265054478246036573955990959475122194173681335620146919871637405838192939808450820469961691697348122920466105421441538614108416243947966651521489936855876966018477088019553624450031114395372505817932732305046131611740393001053743560887253637252231241738345006961501993760909605626565492933632595819436906266061697137322911115013507925523615586597653291701093677708726290232278597589858098205476410440772329020713372113955936273439317079142385378076157951297346166013046943660982798683939264587244172363023520506486407844585467418948035529969918477230954216654132843334744148050380257700005517744835734850548726325536462046279043850997518132296904145999729869538250658300853899329892622132158180456540791365163661153108629381978883794049240287568101616942565780264600034994686699901380104816781525997687971653718277533474737320077242331287340018835907336909688600051190372213282809661092369373789491832841001679194946025126729139171395684121695933724704805496485590551240565906539894986865598105885961094964953938326467375492272914583024933815911645350963100636165617089714398310735213261061942393007428671746569419316703868246274408108304693752256686231112632785270295283404972272458509768532540891948778244411782474929765724849764315738944835466402313762317155772106729196545364435046803517308211313686234775499836701128339292936901096053241108365668333469473319085335686796533794377105157303512276530243149826588853655924748242280403863053606819293764952009903081876520438882719642167210396567989186149188846218088288582809909993485852905192347828489372248944105379788694049359962918809626476895771195639493917399824614093037738693376193254114262219804642125074661126316348305643954553022989624006811610033592815753144056767854851619194306675013032812935572870838836189854551205005913504483348367593553246515913938646859100021827479666182828955714175436778610319815977100605875508015530399008707610202179346113931346729764639404919921910652684359049873442659426499215296521487445355566371280827418298572066633139282878279813325879288027504693569582484569655637843439187663058994013228797678725476283607965810173513029197946152956068886663032221238764018092531554931429032555075349894640556419859898476419414323604516979474937907852599073771764667932566971168601906884695783126375385016647982757489218190489143549765388922039072492625792143199904677971722057740567565809554402947209909219291408506300861535296522302194232423533095572688263404491851940475560257786807848555784567649781714057287718646002487180323198381150582839784708950479460923490554736602343510531693221278545810406362901775547890241814987946382303199789412771669829866107420723234055758678097883392579719597485609145285061453904062060147053527642253593107631266412061062649266560122044388059793214909025654571509602486441499112631290060551406419699314508352257063656416428359230489133435291418449803572105875299551958870000483115920168813506389485626450497140279834303166339028620430155202620617639586600721371208406203866372503551018864423681677348012011545301252016237486385033805079843592886980065035067071180171887054139927577084896190354886529570212569223874670520482081011252713408506227897446924796636680354855725099412537754258960778203740495577367903801323522584026686088785781354299234729505809009577073784682229827143353753587298144238057301478485941432631198197417934410394292754842324771361470798100321676088553813742538735539409669619643991716526016074442962202694202749847741452980927182718859933379564950473317368509565665717564123568812884685382528132695854224925882021611571949340972726920853713751315853679767621853670239442420957656274430101494486483867934109607144821882418715354976781911838277103170565917620212258068373489197296740395011087516031365330157149248008346068329042800896335407035190925416228729966690074650756161272417964033804953703174459864504539238970933328521805893744516921337635227763989966146634707529821584326653092742727127967217384297711651176638093177002396081180306844021244200518128405837193852154455312730160712776410558019238605484066962746875276529469434900362647017688548788400028886642700870917157557875711308205887085613400501272079112861277185214923052942977246018597780255579346344980024992001959872715312880289842321786077685080721582279341059637816236810350498345631123099606729583989147423235161814141545967584287357087347618365634395245855308668054266050344449618181863173310971755793505739930695681666561949787551786514194145118820110134428116932104900926443682283040280108589312894337698121717732275234802550700059889670459638511424237440954890049031459866383175108676144083776475342640304707994631573171654280808953719870211795000506484197644175622060322566873826641754096428979099793739319432512707661582450575693894745514693805616612090201320859090079343076154897082297125330789840991850684307219569189945808432057429563754039575023518808581824510795758279628469675072482620796946826904775084412591759660900105622967053576075744399695114192383476920663112930124468041350324427463664174720634322599984120955507842728871914705684497833758420894683001894994440696266589102476866697860287370340898674431657148127702286955980852811286476211051103706732140199434679106569577669921832023925900950015934991311385113366839066509151449680423165153359203929267256976553039106010098993286270893358223210809830587605770049451809438965380829550414390555849156498648908841238813525265677948117499912083067700804639326532003256353933386680756664079879431426300315230040851238124408494771085695293833075364181876725283199062413696742388776695950587508095340827886840155853287317716614545417499320581586024454885103441161388738803381425474568562770285230999895890826724368372592222794194984479627063287553614218003832037939999022803136946425334045616650481627560861250537622089534138052878522952420686598171233938676570569123174454742515283006876508641753675165691147415649570717590578303635889048613719158866133366001858363672801948857845835450709804620708285382215919894175443072399788306819943822163731998711832335464566230999026549046910427630092235119571462286874239702987040035067336500660996165262318788453640799463384271614753102866047753415316933650078246056938367387482290590686900095170254765455397419750143919884816180819189842493341668373657268529492326082534667662109275238869353394077974472297525189919074945678296533522666079425554528172379241166154434589833390832015713851940199969761272232757647404270565247314269754855450540871937497120593391324526737595545370812070140497522891112658551369616709862828863984533230834516328124165043208593881675271446582928531964969069255938384470667424813920245439975184735127453145514629869057660984578306009813786560180083195572796662247220428853649593903841703090426673819481815175364057866881222420371769392452120545779647499728797474891623856825883340487094971641876338422031253386892135182153699278845678137990319888140160387165194645735383078486807998161793413118571377868060944911977529731547117413443545924616328032684320390218536383264472227079462140374080356453640347426142822824551565456570314282912778976540024859375923475227472400944985728506963379601840959396625259418067634609080775759468673450646857232606299033708165179450503886663786111911253552649018201548781457964596625532254637562679933235702565393657925757040032673722462831026922542239905727674650182392944027781432231783679684625205865360795063741663818336487811536728006021087245389223670580755894171500258069117841696311966764696770512234749734454464659957378444088049818015107466301061470995746979773459614933058827063301400521253237498473649922524471036722940819527663890850904849443799299148334442673071932189468252146749848849830602045419720859599320400530518058867186731949018064668987079189333150415567374088791041221948685217319718288388869796338858166224738816545654259796929445104342167513725121607968505432694593731439851787307577733470466991839510197314669496934985021909241025264318456060462421979413025495844634211613659578114662292722952426202895604192127912575285217513842938022023827562043583615577496063009563048758203359806545039468750043566119232354426790638115858450641559413462831049492204849705693299251322042019331926787041770779753584940191484599354094470482835156678082071197110895733715881490274496671126752378436373718943886825706037794241400314295253029278128511266675923624583921909191798942492643467474478315206007097000226300787681497822697679401252185144537607965657492819716830817500684447266008901946801465712984676424393178768870013092523401615200810448251632455277534060158155651804815374052988484758639776960166923935602529399008756541675852285152813367611745696401982428230585017502250457212531289560438699522355926915531824856089203464108141203836939019521464340723178138409716772783287825299988568108308407256665810515072800835046010005118582753056967378827067846899070607957244463642931429303238541184373054403462139477747981666914666559699584021938441636740813902363240125390562780254493441336804060916721579115894203395727018954324864367926655453388317394560707462603711345425456766648317570251363391577921096837271168340268559106741071037763632666294344827254377065729153955990072311202306489908578266928743383152471391259493626981628147751467082514024924900825415724494880629124952901800685905241989881534863955364276986073845494278621309383897218650891203500355776974901842892416319514811260709159917133216806864731550530853618281219585323308109435188795113870144911074756517751293924590791652390616132495493619991242906501126555331345127405532833397059478274808489385902010582860781967273909080858391990936493904328067829397683303777802588813542930632649097677689539377217087466661585696380902872462577188550479139735862859067133792021973633241505534958275368634014419430295087134212963286725527728277089767394669183036630160344816198118539988464273987099145260619043511249980085102590696852505339601874391508238133135716384473606900126052225254218309495045038481485967265565184124158995912857223237703377852675545384138765513272288889948559070280306688636526919366792498826810970125090001197666686844063199200509197850039174266001842524143657117132293416844792574465195832882548158853988169200194233023166473266151439009026132769309084343940964625442217309548867333551993881743500588368233326111557798141879980733508001458802138736427917739702022361298288433559566380706618268621796321007807424408273501978552307231918155042138740608587393243427018004397930097651161824201263059578892897185456154160208895896441050000684481904851802570741129246228701064299039289028281618395915576258375550789544583405363344563366866093510118835598777053532979818117769549244722004566278953118673007817664521843718208508469156335087339312050371676559833191178688057763678124466657549652330834080312226841680873215753901020443656310766244337386193551206101392810348735431020619898443763894293076060537647565708815760413071852909777714768516247195895247446557379807702905669061657127295128728330419510228636449508072920852254443344321892473597422867864130082341130197340900617659829601719314788910866718965801249740156263208794828164654647004608481403307021248559529864456644237333481779128315829522923600156143501364249454459994888292990042275348849114487138904672271066354372281072803079818673144208454708681605521972425976774959328565082440605353836515800780787510764610120909047715007497941425434917979941353997083939061703093699233249631811138645895022322805612913152345062838392800576427569334454856903670744269809929635477429707711116460293709557016688270946593561653397207369532806878861651459559276116510031908566673709323334430903251404081596243299967858630939717701854388782915157644355296898938045965742868177251271926229202194104791013252911850910917100197918441626490093190032970467319934628751074325968678535317622001808785618271080449989093145206886403442629402212362135796205839933926515154229876675861406326698916483396663803993921579770915172013885768977447521171193218499762026758127547538692402016458331816419768045478441750647092256194256570528052098912633070773657974092909583994060902584523799724514156676902343429559409130159074975115681125781665062861912523760785473798952441762733307063545329357320508534146444665016296124938488401252911639244985200918449515939910213253128632539264640963826295148273902529374632387941614246690210727301869141104419673989459669263386196912473073592833485923999288809882185401207678625764118393232855502243649509544393338951360286713371658757461288332749593799895554173197317108558318479707256777035861557068122960648433746427816052548031693745756529922484941613538331000018155902937345598360427594235380470001926752007277185125449252728893032969018249400492438085791973231164393076180228049604790563350288220562571899145885519228133921384535202218843901111207275751562247826408291192892863078362857421459918999979952471806740731869287524914164505580676713327299628756257581185124279284628867908454271620584123357144234675852118753480658214749105078408951691868160740492100056172242873762751215955950675008101452656494390525191440578711244551893528236138007687169088030558874075155749674728005576551450281861740903932040000607431594829300771539212893859822743428816614627626241353823777023051021936376709166162612561608150146841541540827152696194925033690844365062533942796350598702178228973196364571960450008616357996057543069178102022449778646924034603111523061804598258779472890843101098421683386842612916709351561534393387394618208797476364012179813675488108773919189673951758430079304404876695888492028366378063559173723713763368081910482189636419808262741698387111649170737149687888315186554052483489286153882635530589058747058906183938703007569484239850578031221292359897027667720657853501079273054845746558907553579875516481909515363354582786967275031186449030959360308148532677956712294154506172999977161734373610082522586927787697375088954653341482405529520959474342473837169841968976880944132340867533663536332758960327752642605103886786608117915492310333704304097924707457732329865159336215890267976528338865952926545629351709376537635149447546810441575658878049677642395108085828564378123672349698390806981540845989947588697016783276813307324966884961954746690266683581132240761272125547888629487224608647396129150980360411997441452813559244209062099414799919533860474467968874759660928952270774245371471106484264812269439002851208743975816371788503799523124720135590838420245507309170757040884356965139216897386580214591952152015121634322268002465137281075335832509707418251621076257643037729950264415159510004149359748771531485603379452108175995999473796810575660640758605892887567816339042906839682872661376994476756709999144374038027751233722515732193097684118559126793314550324105481437343644209834243268189976387974423111268702345355226367903864738562180082216476283277501715859127008465713665908304177784703472234870141439385445015975892874597781790523751088510573882689667958291468261716845416089895208334217353451035951062022157159469083053966099816110068461329722999567082455429667452599439315558054489899215765284955126232085984325076222067821581634190944921089806773042662977485416887111091088967665092628287031110216511495144298273931580552808878909173089827786248317339924982605578750162732201833388085003542380026705456792341489760995469013896747915788910093429464839571153480114858533193401614935987336599347009570866950166169028665804545376470079101800011457729411998679567526478736581431146630969313703899908365398561319035345784390264445083261633172002115628775248298458152543496576518784545550049119981267777080382435019410785888209206719709888582457134826441083874939219306179048920072536311641586331988409863714053433280756409598968638269927230888610304039774018218889645058231905253476614315214680689741818114506529851405879889732262628213792455933770652748049953208896200919040624018957295985470427282425650565258309996060609738029590646867538353039721113760841212466796438233206113912935194991766936780930337674076694455285391536964745717330137448180874693462583938080848377960156621994150025367185530977196359896162196967923821978509561402849981867995307215884015366520143584348195802534904833770955572166726818497724126333643493472231949008785122937550737919238290759202953670755966077993846328689588847591720074556189591125565632614867304609592696229207833005383831860366837798266678773007970920629369068322491621780537752209590162833791506035982516731144993111534615542137929558525821455874413028568383444043686548372686377265865752229916054580985015153614077571108380258234426461913511929804696427732375046631983552060492935548132820305621921946818745522977301550700702187590182698011045645408294569453302286850368612148193054482998598999910480852511267002248432805123796210590256736838966605204431175511553220978079349506466190232956939170131147035050850151927447551414751051100310775637577648962974656312849674046278774226339127465313782733889203238304309074668770167270448209663249822457919637101782914678053485432305816261353694337199634349047961901910205717438846541240913601838536073265003423653471682756113575430715346383353698682056356449821361860350784199527394331577005882136067776782528334911339747609000069212744930338417326730228306257086215630421584849866047780532678753812709421528193034005915503622923878046861628409212406203881179911238589622059194423212248287221793888781521393126238604841056634996349132286987123079769381427494607254797876442138052792426361122699553664042661438023358466980290597548838183741910052052632947687937969673877754657355492312665983603461971817885629724773519837117392192228250487183189228872701371383160964042856369515065564303603199965828102712890691528377563439222747911095277107603669873181540600027888325839506984394206666626923538468886900196085957053951845847762031362334375105430758153748057248054354580825564706775752912783471454686068745462713572626640905658453771586881471575086271106096612731188127055399626857267036145952750670103955999570327425941736981798609371478425643665709052805503990533206489002546581899794706746659542066252228009618764510589778560337133392429672812195397813017216254131327383866260134405910608510288250648014076330537862716804205255311914164220048857236713234491523029952252158594638402718739844704476539537126625276797435061308277610039377389072914843517947633100780906973344278436117472449369141127609442438080388772072037093029437937119774455195108891248672422609350775506779309180426113248504269376993516260720269273148871381251482329999340514469556501346015278539695527197281816183644519642027445480646998373479398139902477202321764618327511160039551971042915329509636641693843484401127260143831024313604327867210656550785655165707414577174066309839817853359157475844589098334430214974356963131163527860202939421160675064573849206223353062513291386228145447505533699894477011383501240245087153785344389201913735021650600858036433267066455281906139239594765947464747224601756031940409238054384330552896460166759461453528180655079024789812768033786242162318759253743288611290432137205628695304831366029743071749660771482621332501684850900178636952759871482027050899053932631440924496305783865651236402424061686413380761501959058920284203034571206833049625525643224684624853426262868848943988071452936613031084372043667464136400052843221837175020886586270232041505718402909739171548987998381154027804825266558577525300537364296123621894274116856653190442579383747318038783796160696942017262134217728138184828547792803191345652954762374182525750556536695903507991481379289158251484398994149419067263920085727518929750627701993673424717872278266126588714533251169261072905829176535118728286482902406307367768459161578741898117910357478977514317270649992656196334132250070962977190613115290339885054460412331464701417909786130536702584760118708914706143416491043229422394520388408884427740012017892155163638202021592241411744279427808486170476073088686766875612325152524615448425618242272642765031901594239881057742948449149273221413386950166754943755491189817493801631651656391561540596286762340689968579204941687916231737635917459926224775286405700931574482398381790763989552116847900621564200949061490352287484907532065773784495864970183394406981218548568579241982922729238159937204612807579086860971012297165533389225933515112231851065230292064016901424183713044671911503886395886944306222173668468402363693165930718465710449152448186325999877230249442174195096632069870694335461451120076432475048737864264723567205110073819649945255097916739602559890998387120318548785598230398232120911533829656648045733452047208273592687131193217496846481975701369323648192994037448523941557011049246166671066901658259470859610130164675196583706846603333749757165327038067764518307600986077189707898533234286829808396864774659674162550480934762807813777237820307079252337407133944593702156549798116078739771358898657381593447416573254511804701108497324923932866844393101425172306369158421191168096538512036465096490287403836696135118338653802389646981504721369896314976704689992598490481346592059603082410660894551197233256999568250159254430193004310423898692906556565346042574772547816188400676981337164541262711437985987895530412861853189298099822422733470308662673259825782103268129661524042367394989882620191858758900353199878450563502288765092483799510356370843530317007617638593930645529061157945541295557666947886367295211430105691444594269397570115775610192864552793691636232609968150794732331011414939008598638184273693640527161848093980115181986533712258782816726510528987666468606551053606788935823454275548744856185481333789510721123568781684057426263668860625814376538101669252650089967302176430569033943622296004107658572657666993935306675864231442881595932644217196267682409139008535877856791192836771646133278985446940004692752778661743422517314050575064368294980176161651658344491612097984544363340179567814424940269127904122979111515893358842183170162426437661684351938528227844097189083725524803923201910181569667513167280049269393411760000780787489957014145074352051357881605355159456580904205856638010590510523777269880872933474816350078312769750149278510431394941763223639949189916937953295848189995169001147541496388811448949194811599936058660517969890933410474860198886336569645684040115203874977530698985077043872974576454538026759362755840467238228894681920561744202299933315039637860637788516358655176930253689615167771027235005764336189367858061911457211717661194575273927655086601854340719910306072894435323995277541799302397710962575939815210346308951917084590126084657874125876167521567068159787496701257964021055683382835976171350737669938199909535550263158548575806329834718383411449673558111519110719406832380981280524207652866815271916686103277179233496904163234932007924934909930743763567901555101853702146481479418451127676512810868875151185584543770779854689021475976342010842535557195970023625315980533760503145620342295982150911058303549004191992338635078401000595087614819219703163191460472681354911476460699898825945898853973716425477280798495189978600735963208392649100226538803907095501478810846606293651726695071835115280062850961891543959645030708336825327063469105660386713708111279901146264299533173692470269389847916208863518851432074248040943375006965659574492499197993494404445643954720964948468070925858255582358672966878792684068516125023008329901563337236481187183498244009440182575312319612315378911250764465360346744093515465399798367278721048636304096636618505299455623385904716011337578639097549602305689575547074610175869293705628646993513756283119928114102423669804346718281084983084707303739395991379656410907076532710066487342946916994710226328275101361611665429197354044733488420240347508352711165653150349980649829788792037567273972212130877059357139603567849042957465181277809855509121755999606910578286199735407958768902773807552594050556027585068931596369272909967979787090754159799487301722648040141076597217810097272887263003736784185017138786472871993120702748641090423463105831618305001631916640346929737003260380907779229413749573277566336850297230710032379535512029538256206184872806384049234729345157205150827370393624486166095261539575928831032657442999222414946513661014574542592161126767845772730735750486113575340884832422342872511551870494302343914237111313667690067595930611074813951245952910952689962620216572751394583072400436659380016117439255010540785739621369185512936400743688777611442260437638629063846348197063496052490775004593544483812812510407967974937753964970060379068595293945261771375659286876167406571666019446321353741130754880681244469892756451489091834978555682497266819136349250188425486063204688449788292854354350843587386205970925742124595332591096185210415513217115285056186279009589313302956281595356543577698207731585243889597943449389028906338951063952910494524703762710102346171322652768658441545612544035680129753827038513190035765991801314523461516579338235181113506745887647253917710141369273523976097905476117664773779509504805915219780769530627421043817004368046668821737353898680732653148471681546755345910791640891803988365079812996329807423728967414543424119380097241586626546450145323854141207261834918100429337284751238270824649394496379044564481331512894552148791374678440421479244568314285533946446932885949012577148043203689479099731096057666797768777880431885886839963277935835038967433079814219929011498141442243587957197948408762610283661780186480500244908270225317792297796413964281819676940368947292254163850605675689159694964745112207709938079741932929764114480549324959432870516256778291136221284868036359306153146637017187681713265808043873472423119696390969843021359894471472418945496702176144858632718091167807754575000278944811244316558416840731644787202977095635043763681716795860106162651342405733730357628254284612345176265286404749144378633052542976566890960092674580945914916682250969155879815648986110078135121584476365816885615882910243214256640629962108368601391501451950738896182276407927079560143229837916599934527792225125286002432306612011748530768627312782478526659106407290261012366657727352591728687323861308808608600346128407385023049462980183923522217515614641405908670772391582266818606009725998680120648631480943866191191281973784498235205220919743611533709094547513826821694385206967543739129074873584858048324447357561768154973834277547494051610801034346868308428390343961678394079270659165187073648193014823928702563916527681010914870631231802273334887049925774669967454401185474613241884644635258172942443963544530102649583526895226962365952344411124661889423432214634339384623417974228108699936135537531113666388833975535824548851999734605233761720935475311827429624751877086805097130213214079679242995781368458381719048843910537032634759104995739885406762177572963523802429745763861277249388946548753066986195572812715410066938976377157777329707393432516363302105066026008118208179501539371508251301251090898439041594468967723596059072321845636735252436538754073332053381117117639271825998255598648982446188652827323122185798484902240075373337031131066426193217784913673871382804548601901320067635905255721283978041013690374159683574807360813811375945769349447791687573839194012010045042996947688229897954340686468242957740059646242454727510165790652723115603801456652304943761038576612392418706371719200675930501884957741343751264343167564165279244833530494705776714657654238999299050401327671465166381921742692306554533266109568661051574539799609362123989064536901611778701141638589671951860215566459837193641419860183660385160266894171914762741283376777652392380528263879751023000700646057082155088033314816709037314626361593769253987777819530816270779625423628027358829340313630845840627268980046963585541580722347319093766592081351007767438116235504157150380217794650826930751053876576223378101859659801262792375974077252404909622149793711761890373858365136914723225747487503077303428678665935568728909384173813708488579713594583239922343665938892477175212900447974892903602072835219030384576983736013055501978011056471399710468023344543857439024270901736460865676120929135792379994874677601673804297984913153166243652639385555858305247555489887700732336365941282084292857738712662114079899724311098615348747476223859092378635365874324861468099698076026149973838283899603897711114712289971958276204031797905153809207983886685066308968361810174255446532155020284449634015446501772211827203147593431741190499299322516411431243814204629567657900606527957828563572334279759020310786831881701855753706144628692512659536935215868117868775946164800127395169195785512430001171837706538537148630911471200161908451979662128485179000208713166979096707724315448938414788902284837264847290228131007241511892878581608607587817692845509911342364890698253979697480794482003538207686740726913258282773449023576893696168497516533581864971610608056293371903618740364447728189575649526946583418035012712287641834830484618338581591208533993059895538096717310567356922206074460554864665660492636026420820430041132124090238497142931507657095890048633060386868945967174682897009852748969499651476071235113940801942095248152635922565991765299522099058174462906500427899678055699929322746984978906178966465454864971197464212743676884412382260495205066055794987906786088367189695271269865201749762628853088476509712550365551620709930259581301375603485180772282828966832175669483713924145724220561134987566465628438829706019446808620712475900400600863789172526166764442013158889090431526878701251863529261287157416418554671716359546530922945152372718544259232618860616132062049558135335346075401186729540933070675909932288080069212551350941074859791451524827425602739148088008707651326627024372878346645876204104664308220715813095585613011827513888127809452140751701639326263119243505935770502925953034627886675013355368259687037654510203540634423585682351822574734275447746030194819446016687388294678524015876449332059074256280822218141614530973644381651001682594323673490159372854922933672934488566050271103239735139802570196954430885783436287594436354293178148754017648762925791680536585384156869074187508548051833565443725211617224845214013627684313961765959071578476895292489307047904295181456480560629030473069549720055904742585945229198506248991530623732195358476480103235283875619072439696351054934922211240128083622031010939817446637347634541377995452724887326402782966899775844387456139066061577922864845105661127059908668692547146497751171052395930756923493428742950636579655070631355724429648443693138128021747077345446180142602777689324988950486110350037148049217839692227294478921849192024954739708753589959464022948570080626909092519606160109936413224952867863751219670156342059338079132657069028182661339154854781647097985001017099965085676677437130598508495073809198577001773962797935176302947669942623680940296551801834564198094098132282683527067115355536708211311857832734378771157776236423793309475784379020584457807752503219820090574789372142406008917159714771076437002338196298566735674065983881402237962630367770456409682866815782822936249886006579728797726715553620534618791677374323196791979476491262680459537597244462260274367481480121227802333000495025594356650199740469254070935944065002277575553807305480655769686898164842515238396116848727733150536808654491104583686146256063839620478136087386065238111512123190762220232963922353097222822449947937465161117700449527747388071003983576858492059274623003195969140135015786030439384382049141638566554900806559646041449963291773014430693101338831794651106181588833322437289006277502039001578006313385177790796158499767014868161124963687187701072198476635914532344373823394704311894814833291785746650086832232796328953156475665461870156780757758732316462756388483300432829124169893907092173508073329255431053857834298495211075897703517227042615427728047239395630263548711033168371342679836357777163093492999940987713052292165329070742529384491228841960331479581822810978113466926853213788934222329395406143568342510407358442285019686678544404941132998669660233022839017675328835834533124630919935842010015583609228304731033792743412654703414306913459547244419537612260706974653743837797862318625569436866945303842933342088771805711418700468934318102062600890601585702382399462326896367041647187007294247502137823364132582612209946691421587542464533997625176292399760955435648185106866731860957027611233631727145350398938556455166409322626381042571573965760567868232576401871078585847378778912587713020911563321147836669888264979547168446275783674182945664837511720018425565677680154411773916015038011284385913609334688678869837627210231459527042954150990488747111148666672315849684246965197416154600747504263212059319573034539063508842080004595055202024429917530967879991847225596461227182163211231498629677849830710367506655934431829229975394076059202839034893687808788330329081634911547899117515413058489937343040896246289268980535816288517943444973846813134194249025201464019958692204957640865036946975974940243685136770957333691636052680236243156335040675346450396748842017855511344403200434890483363608872583538431565213249082084175953270063235251186790645656484874559052369836733726115588097011606925686992835414760103071162077482906830288773422350145602617334766917674545511566596670437554505316993712533298822622059026376830175587634056239125582549096779444340728953756061261938445866739619433739067543088077037799664078285620442568141733490970675608003508384855689228449158365834785592528568578464289153006532116397028986182285593050867230124600225433799626451744078807305089080104868957101810867796769644321165028555386364374168044432431851015545038245126748645599229697736325643274648184517160675484516068516957478819225176147265321687542410649506377113169530664091789398445238139933242777765915652523694417433770589118135290256400671865902119616085494132454646258789413241431514495264812546909414194854563737951806079248862927162170347054724293086066022880051760041082888545264119922192700560767353795504744823714879803873753708732561013177336562684327893991896234965006221953500091569639155020744305811494640430666105798895666380700100897712060443466218668474484117482193185212675318387358376861565761263261490890441079031305907354235562712320220162274766577329409307568488254345411585730041438571767509259242384323220393908399323333361602662429676031267417332732780328450778189146762728100031324829119961960154751944688953846997061785296297896488862844487788138210377558648149780619018603530852355730769854100119908080835228755119196076437825585251433466093332829221481476624430911198800449831412545284885433795246837764924850011130143922311747533615899279159191133080226584229702570800910050993020835964823780015599228814372354971523496336664009865065647583152303731373809215414769440880124823037001685622691185319699618631347948468910980237720812697564694961978694899024321534269916891657315638421134754283514742097778070572307310932207933031265396358687472971133340634194878055402819525276369887366726158903958226208531093907137146461330426989107686050801195540209985380169135211538439170991568312778454243786904093586936081945042937609661508446648460877496931836010773721820546223560506595359258351996602788826315633361910020908794146667573245578082239900000534330729748881587440913914024476796884227042480616523786966580587227788686777817393349115262007767431695185652411315132923997768883812669558696321681779937120733958904418833507422986936622554286970708715521424408020095527605724443704731161404939262303833318928199996816642855508332377454373388944561502731973548474408128959782982499327491788397207358465023951426136294335583567074062209748693249997146970536884904283465328087593907764115019713917322002229349008428502103450221828436619673979136672154299113617748304971622338948674617017197125414075971084752862408204117111962812583311233103204073106271212060220268392782897432126734988227057519282447635426504546328459460345869886448170385403356514561185753821442233226440740834989543195655016957110255208260296486628389653930126672413493763203905799428584570494071066008784371957984504179193800356670646053530255632342033081379082078465833968415823722644610027642613202119558444318279569578600107092111798296760484843296551420790403633081755637146061919399615087499448627985386786649130229464228455762081246703468010588940921257270887151737609445445002349668954304656107715558763111340313933886955682054887428543929082930163804265951886614694838676035393894910024390246869048239543215036091542279522496273394667821960205365926986362864733248996588339011588022599097207729999867705112808760583491809741196070443819681718770776020201256782814429017922366884320762867546509642025611163856874458832731728167523013035417582365853246340503447118328399856098107780765946641270704765537809038956616763793149302838011538714157463300034939129665627721854004358037818537498444852626683908559360197010489673096183986594065097671254699777320524924319413060429198046871459597402742549979139871861898237477128826244126998350661289140492805502464731639932208568789172329864063940826669809758025098671385815655210713085150333416178995748372190885265516856833281396825686716510953210009854615587486977072235297717955932666429154134740613960887645914540559781854257360623681034590066399025425380244835753699296907848609856923732821306693485161323847689423802575022593417711295146109288018453208724236456768091034363902524721522754062186026039582685448386122803910945630296959969653548834905429451587062147139274330304675923137888879683085209962967626542718340267484686921306170395937998781292300999436575172591751268652707025738081469892309933335733392562010070275672375993602134797127993184725664046900447068854564194788530393331127149970638993407202259618176466525501997041564531125588199874572718106619073333410698766907994505465856384375258079339844635851938480574807252495635846066680221350744064677886572487767793885908869881404040947821694384542904880050429038114824630983783708800868660066352484037326873855536791324633484683486096679182307864803038819746911644787673984022739987203642828087742737905014046438269299834803150708676698268189576907067389144785225155467293742742067094288768327346911574043535088938816070350590055552667052557577099559780048821931697177065365981054125756048051395080124741590178894862146063708364211643848082042175005773853793869061799540900699913124447208165798937207534215710696230319542650173282415449893274516965977821009590735944789194923384660537119003158196239282447442853324842952588652365043603500168131396872277737077884873811426614570751498204936966953046027254575450892218728881826275925311622713477910508561758571887273807088527609186999807369270333715619383146738641484949938379714250382914310750703503947596646405393587621243658608114216357638292813783982468384280180207856056189046102683895426536543965938566044069149001059910239373757890302945416024990176045977374168239970792685641895176260759288537874014510731872651989940466222666488822870918757439238177220291297187486700466187925619646588644411897472401368318013494878019654640285339190190469869161320440670246222463344540471365807194126822279875900739296588342367872957864172698313261171964022724630694572000381993414736064472240320241177828075711397347751900837838884697444507064093787198496692393421179989271752891950438648693095427189890639896751485884963161318705046298224315252139923498607956455490251924548096433723470472648761804457074355551802340342633162264903497700158470784996434852770130531174578348878437129331228755138169050535822519873637359254331089946988777029594394241311033306916775804083698383194746610206381317300513633626438775569692649002910702641174682568663271247429356885143017101606311398850093896175706339365072278100057741752792380610590543198194542440592419254282782042724229846307784275970220887865573189224071224727711071014904755706857519429954884990925105505810230374413405900738723579391236678713347918368758995713101895223123233600884389109828254790259597403215906147058551116457615106511081444663939972001037735846542643611251693136067654745046048697176668832974924014608554218251603547354513047094165589630428634178135701886405148905280779995770161688730456117460075372349306099136749029463436869080345754086711767979427654249738304766186356888148437437136972085483785600816008252284143293219924543301861140351392449396420722962599784298657170613042347357500227017906359613609214583480394399898593436824691431658072849456475591812265286025126677642242867717999417767410316282124474087045248770967837387553268738721171701333923499749995288222829915746349664905780101604070651913766623247755962151992498979663037676907944929295437282653615260888683686413601586425084452476383608568762377415419966290130299313841030982221991195596070472802704619207694754425326446109741532485081554213124921859531218315318160468797962113881049724809058828411223039345764760133048766638430543684206642434645454234959498622429304598323823096406642106153130555466746763480720152196852756431606453279061288141037279053968222035320937474901056015383142443825600345684097606531154619362590684725961324347586281743788709049024297441362756389801926988526925425936957998093750934174014352054952475772774406843326135943206953406218250862606448631046395229786302130357583537966432395169202801983329468715503448319125862075725917660890575318283896379399532367258573521900655202324780809389032449862061756976300553945575406190861651469753559037999682660019829283756681626462132076202730552444207485531713328894504256794003575704075308968534939965053049797093407840001776145141741841681320302247527166842776688925735355720730738390976524425424265082347611794908293107629764296374646254742478997512464896875402892299236116114411406968278746820917881376929884866757700331337530344370437119262870841954477029460896133259480535598499805512998213731331386577037919406014856061861017094942660481812681067445349174670990027152634096609299767822029393024231047526284963104934978375548933220450372083640407372885732720500919547949080644009714095486865248613030912117955828980044849637832208316029681198079616826604876321144235273332886384061536896398765366379413178215086699039488543903695017297875652591906629354198202035387736514478973775709888955133447335391321285967481265960282483981120140796907768355794647957681311819524735911049412294292412061492370145913874878881009381968079069128315300936870652373081682378622778160272165255537646967013814858903838562002506791921374011594253165281951533411751271023572004835563204335030146429717707053459534140901305495444144072290500098509819279739546729882148880098725523158952691737511934414353941395649822552201241058200033815158073417989654667355351088144147456869836319566751265831879162611674529943643339654253963590143063324879104152521758283729943600515703723345993153065917733173620769950722359413183931071210410717407442420422254877476811869344966651707356957421051916976266608069638253996460945145498187212619612700838080919019830030895380206455006627179067062880872180188531182456065375025946283856074454503335711930473673214407242232967943816442235620644988619279135508881786264253042867375160119207695188705704304215945780458820421961249537865846201013487083182557990894259715956832755845745168178633826053325606271415972472896525260040233983459431864175003387482189168260224156389782216109192189372079300590088710242142199677706461128504087856074730296044650007985186786265308633884044712794070718300315989309194389196189905300326197076536703130097556102572318630836626549007854608585159803702306480686484683781943488086596656052059370090093947487968841497980796782567716510072089022641550781009918061886501508827445198594579875802519623896941305647050779688557576669349610590547180096839419972896319926653669002096961492062427020620449693646207111535331850668848140894431623879981188543333645040149012960105312223722073431671021115816817826732845999147073705873766056012441150556876612819375590918003151507904413973673162714890312914798402754122845297528176031402973121717400969342465912155708206578447231413364719248786415226896976579719952606546126870657583980878141774031770937563307366161186778538096577448388722108947830281996479473454476436436247698433272841813444811989762420803728049869486109166853902868352961831587260588534643565209613729534204050340235425485643736747698238167302883996036757085230941104630530615197275962310775874754258398175860300181638803213779568497693854617009425109274098269041263231861494318397905529730826401086650968028703449911892972474258097393467110079096776290137297646477227372353086395319985125163679515472058175267633865221952656138770989862484610942361112171222661369957730686694421252546744562269695985710141000691918019501208638255913135449772847190481155176539455401218663368231591009501670153517667696344451925508264351816029970693565052165037012239745013673187088305082190175858121905938920122813675456734942715951036905583853288670381429652788407915787085400342165531730606309197421891963019607716900486941273172752031502285426340848099051022260284157236237528936851911525573288167483473689321056312382860481959023000057878310192980700781240871990301171433622561819750591678007578623586601780498271086518626579957604908107692710416495883127330438597381334845782442929357591082307231459387258501304944714763527664485658208257958959576858186169679258309898282640988155744342268091924490044479625050093334703448543711273946285673406514968580997307529276045052145448967473011956808172186107162416139881268150551723697649916079049910632045343335443136001321012340360522696550592254829695319702742999163074493409029957255281389287838639608659629385615730233947792953071020725308425455140853163268926156503150628890966985589106481384378845434334959970401947480604563389880750285638420832857960988005655581279360281128150984201802566764454745989918771258490744304484377979396616540990706735735589152373119574082195150293908729734003765275438221265206660969051235590030481327870678251408397920962899918288564492024636153709349834830039254094553087595367415611736095253953856890511544559331583773913544793379053009851059331696108127312161429935990794586661277803922686785036040856816255052812865330009382903997677399991695765360958270983038704723632990889685426247087099696222527440429206262735518078244834634955955026008264375168941645911735994403607329523999571647796956773171487484322840520097285471196906288679321913375410018858934821184327285461012873471870743155126106476950863161052854267270822234433183846080504300102531418353636059952612760435899841102627556800596185215140237110151327794395075837870654574966202069700772336713545319618541202744625774619663911674715856238697666203357800402867910412849518478881594213400005740237591026099076388002907537005629034357375710840912657496223847942024121375233077751420091386353386675515163015311682833696044354193266477947561847001449309696871409320047012355473326495855394352176119474559159154453441774724875147915014734825905144464697491045413702058860325054694927468014920274812310545096083091655536564088102224381608862048041756944318030995902045544584114489147119106486586548426475014345713684664867164109855019112033432921321072754752737657658834167308756906214846577566328520574821235907653849453712595094125975271964414516547404684217613166782640832906825517449649818047359772392997502762374060420924478494807732423210478147033191936305121016231298231889218105177088039976328164755225705702418795037514168318482914452628001407521054815778111030820510212331646694107001844964897952570158974502676609341646262677711923804886491279373531868256661627204311074247632375686963551958766538615436762099719678992270366073358448765264779531275849408320110061606265097743764666109181710386695403503609444056594509014882400095689268685543796648869436876455342782358794771732230592303322348610782666962626758056080527170903876393689196801834331126319147268218313523745033222247386948509256685438687985277627034979979889431176210145163160217953055988102289513149555519939126597675340604297379733710020641896477961127554067944325938110881140225293369980197741189236548831258344197892750149112388942076270043501984300880384502668926869653070558760427954234901773169654240349399665628056714674831813743469468920760742346285984479499239496921026029458528742209652416480187417005542320248838810745935850677092527764986038479062671671705522426523831093636491507643572538966856153720519483617563145380712667211539902740633349561436339223678594983249398572008310591007866729044403599858741269547430267179644981324513183709079010396871027174635914320011182070819566385495406023741909074358618405812169667971582179592410449326482016915189329311665321233822451142869403978551303717504836959861404763198562046465748856390564318590352833670669365974832976190789720946268171987343433506236098829064372812124364853974910299071275576799396715387645058994434781073672228205625789058523316124803276868450432604917034438675437429580584006416781201575499233835803708961487239053315574697035542139637252881341666334053333877653341591087870058643690925199310287941972645761116138781639612874185385911367183012859894223823703755988273657380579640658502631246786790936109405211710448999967098753150219800912329256330659450992412658137988351129852049335663941985071328801338687365446546657601473931733189916831197593138443463435517932244725895413466398457856984528519418913330336687422332218703585658788156559978761536769838109315273207387162481462515484283689006639272442146406815538631602785843531201403631362428241994023980965502657130469144986230814423229834377820212290853744785357277420408677042039898109028531335231228301203393151410554771992408716597545298658570974245345556245312078235927206299402705052252192762989671866695963059205125592962970723908228828002943137867588492432762712086613611107878872965457878809327133938896091449510838094988323462238862039131870630249052842282655707255141532409792471545758796022156376550837810531193277074600897587878687712555473325984553641915665464675020822949798725087387271906798443033653973141994027488401597222991542804696999864763592913606862095816220930601257922802611528191227400020017243881307703362325729324346696713606909517654537587089520641860702798390820318261595162319825993613052634943243974365712863533502126863280569569951780027162471464008107763535240840743735594023154332461138266629521444676669357747479186436700587341090929705979969816813784058326539020380044887622232213526680545451325862510962848416410105587992849077509605177981159089207653419011591389921298353195740550304370890615869379677186128790102778170719793598396692914173245765455791744945503363357989362591302381136227206694496791256982634230925238120513041100322003538706884227646657399318367018865561250289447373613258105268892410395028066071036881343949813380667999140893731226266874560826183338302928958305622378690454579259627722459907993546862775048294786396736288480353740295698513076646701262233291939515653807717755962240505262958885727794243424809342060289643074050301809501045899327949057793153297221358558149231220843285020586742952043384807169743772182837995262220175775905658568903626654854780798673846036892134137024909774229036544950000063915348302290918470006405449576244099004366703917343680120770734707249796938490153774859661684916306851398506976807136221272641457618441124504776360059615687462143253081409783652544226778316463628056135587332193703674849495813265588937276674858408283034458359598463461566967145697222318203070319536342201543368637403646203984017218097239136637388684089103304410200631955887453850333806688262019098376952179531396676985091141219509686730046517450796339188361499780666792211427848954309944171915412875635845011923874070963931850614845143095258700034691443836364938442808326046936348283518118997988983814545846369047164813625567825457396618543386411737330306807760103404845928141301377554376794356803138688567806271785525256435679983775461665376369562775820884119804515486536129670865177384258023411034384894399267956907746045054997210925611319681994483516385390355598398467257014491781305745472082703871022194310679721161343672533908590376135100370985682149567207931751734758998030792741849698086338704253758998679213403312999287405890720487869163922023065402692383022583504568474968148930788797162635867718782311717181940124710183969166893905504904179343076255417966388490579704780798721617542664486175785330451926166588996040499776458882793849617009271052766235863397644205459512117435128256184838294039415831581058421203497474006853268280558944445562727467056373980691475064138127888067322370197803733871631412015759382600327619667002741039026856480171782482010868827547265115565609907026122587276991322787436729819755663740303446517130075413744151628461125592255080773217599160276443179937337528776278163517522983049777929492239508522270578551535587190788634945558330870948795246806480461667585871674768654893424105582540962306241220379681019966426415862236292245957470568575716071412243888169178587640532019570378178672422599149422987279408674389989465151780486008516904917591877744409478289253882333025035147794408627622723851974303515444109114247669815672604562069091796304948148426539104651151725955849014482719493683701926517705837922243645689146096239930923406095730355595135910026100689373306411743156283627609773481820628148842302106775726256770839543626179349650324520927226542572869656898366481115882068787666083478612119579817940707924841162489828640967555362232225497223966578615332675489973881677677048778891738761342161383542200886782152342827170379269561967132169301778969087835085928357796445655964887448518770885289057528987462768282224397418974372341580701019669192828679840008024106922485698924289528622161309874935592679066819481285514761313404222081444238777979323738472704028726875821360830341711768316079360501859053116565890821807530531616019239292526037843091273470924747244910397510660607883282128334499235685255332660496601427455456369931364845678174277385589513303440257087009591545677395241297510694827557883656346190411665801801956361194520062367342319399798260371109928956380303503026973366076796255812130784121696109837537824481023640616132539231775676410330032234416240169719501489823906424681534046139383394026109632061340529098657257040216834747600855795565792893705096616869937010760992134682402654779000250932547582588048329046401414781622758346029546248688422544630027200384746679739340948632653710812522299664505820330106905074137234508460065671060875078643060815452156007935053349082466680081873609440967808891966445109040346268269100219018025711685796406007549781956084262124580619864092394995176906281179733992601341251701766864509440318269400594811044061132936501012650051858808247002166755230169110037387800687264176135791739352653821935028060192704835226270511220671000937351535501829100371048600409434323663409574782829013375340946793427375152624584968408379688186561380554102350312328324248023625051354245507082745030309584569003712024909021553123030651347535835383256213502933049944880117684235957422899790860591883330355271275037438716198086019708717357064449062980404490621165686678870417597041706310807251049919463988056201660978981497899761148643747416313272290608803587110871235080851180098043750676867165077270721330928786321489047612118816711762064589508794743739535887652660963222329341770098931760399020385120411135190467534203054794608568218617582821787519276544118186599880711301455446392319467857087239988384966471135207615190846398518781274547091583150915487509516854660861992807027253339755347937275269169267049162896274903358330809461974000634614838909419202898050490663084383079153238440254302809231408596178370504185657105528663313149628689575044941609434839195956448015080132017284683672502617412161198051725490047844829486358611171348718475822484310739628233905068411064309595531751969451983169111289577258521450181580754351732854913458066317422296188069081095196426720926859406133028058074887127770153171477546380340677970735464670447491409628354058366013302351671181796453603451108214222652913699684250409772450183680082712888265579044704427532504833096794592985369457911916360677024240687085694037788005817841074811986717552356858100834964526086106986892103417813284270852608248346569020505338694887122562241219672361404264833691386977938181202470478128243246531826336096886094963981483495825703954445756981035143987054214709186724960674454370691570418976023117032828151348272011581000393617331807427051461271236713365687774617225205568394862879580968495402126375570945976825068162773021955950370208681200246434208831512496929307642679423011578751111210866125125801543897033360753177266869214410012794100586166940059121391985039535726007688524160486347323019274381448800761505121454131889333701458857718679848476372557692403346183253841482106722943796886420415400138302257207800286518733154874945465632329268022983075652786318582895540220627220996206144703158588861779414592027607132065674870951491375390983421595848190035971217902973507406120816320500995707455410453394863333835187404177385870482488523620433957880002162701552956056101061202487874697713910176340535284236650509114129750176725024708314311664318108824088029775965681993419145182143053997927632885190946899590856026714390295581437361600425672167688358345277285700819053794791349295108200208385036450841627909741517517141045001690756121534814999780703581626796338882197178879849011084402276166285813544159074920721707308127789329622131530323432191752858967776136387323284190607408860446838881487757213308028419549712796311287415286467859069863203359364870493223248112566506867065882845569472010798813335178802689300259030774122591105524506059623500016374012760438794085843231549392762567622125112663980269111202161781085146713553535031376499099713734052481334575446237418265097828805872322466208142448475364948869311330972517276977860312855763608195645759959954886375413316528494701723157013221840944517175958959466776768603895644182828710439389833027589937513529233348899600872661190980152668077649196316970256079365721209912813549416684697942086874255972929019349540926148091937967946523921479974556580022526202893257063364802063653128453270358138345266920495260732075137579666959731344682805544905847348757960201034831670660910207495399150496337196413364017661175668270976363530864497248280968151621067561483035526316121203840397642963303318427950210862757476770712751334062127041533871276157670663083411601492271551488890821430742225540765869231862413334158959514536286988882758061856299245980414232925811787124751002094348399382271751046437255893222808637730729321156570734731816659523734318905229585075089001448228298333093725018742035155353796741636460668462479849413511617939852993386015055297375278599020474713353985449166910144767097419694998034406296257268756737363360798911173912321234523221465398063267422916037991981680440050649733478109661403217243593007802789591487330946788075018202924116834668247580470307081411136496177081987222298170539976986995044259317281194923318962029829523301081563363958984580591113916119974101925759347409867890950856699126232260989354649026557886492979853760109740593515015220776824387960315527470342326970506418320862374265416790440460909619702069019417277078667726744199950181720156583911860669568705875928378844108656532884338739870403150971302869020843416580064239410627985327759171142611682813615429380213254481056814426338316025313799619204909106773952687196826238429749386269815743072989424652848350601702789989805893547868196456688695226666261122775050693992714574590144030615366308821330862064088862284207843285599962157107997215072293822427496718304220233934226145240172639446509346853913533469666812250233766556043034360634679257127801566133487785394967364995025054682019874549278652429516190546821974277163503374970701956705678943126892329144634734422842284698737356927031367732094719863260432757693883525098242220734536969627933170382814023372313522043970873768485698333569182564182497004792157131567690032092062211197523459485044336288086414294145002055083257963590966090324510787662430084303718980579930201206000414926952622143094245015388954867520407731649501598703777320824055830126133069758520911092805329767954090430864369205617580989637727194743532673482094298539125843851106199195513571237079829337965310427115446498626091917598617387039480824539802395095752510293119952300553324673199849322130658661741959853887992073670361004017298401998630412996361231401418046921455553763669623307755422555030268774828603583211366292470975716912481486853159761699990350049987653007033903140571448758229602442018497833430698904991461403503439713552993991249887486313532923277856409733867270228519465861314191459078578527464043318578866382094774751689261099047975381926780169242945197699932435706824921615194200188449196751563244008528923845840520670228443256790197361838202353274504878154627069989934797449365064632444143445851031998351540449432170744823932373977611762849646731700522619691071320271417054330097546036664739409009115842137776607850033386049281191811953306059896924943281064335854434867094912698996230817998474704081530927538139538211719431446349267515600670774430727216659147419264561814567860489963137399360087240322534696497839043016566358663676334260327476642844113902041857146372941572692908688603083724771247752625618563115215095194207377065250095832704021024819902672912611963313725104703738118002370908857646877051123600421693968296195150207669344288242194282549824986833769177784669337861377236887018511336324665313579020505910491282014482593316749656151596961675936504812415617543813477953343054927463727334582630142921213023395367830894870274204233722098453535400344494819460436428098310217893972194998557244034049109287674444262410130386153194975990764838287996406335782350150271521273227102123484720534922585231865230569933246630491519993078797176918449210765472683099145519574614599901576685264442051914273070199759120244261275076777075011516365774968909651379589254068573314450346179708526880680964588564104657901581323973592621640515567731418717007472768373679427656169301089448454980668101466102030996000791447589880020100627385219268779785319429564531874225818600019352085898728339953802156418591715577706104152190668016243764469696464753803132845399765647765769933743883322030821958133451363060068709014704364765563140894276062094096237487713157129140841640478097128341449492778811517379034368994428893039990770921880007500363826638292470358523891141907299692747616810118092249398016472635311702926673101437912990175452032152141968822084541008021199288097026075929256292590063197277751773564277454229652353245460395101111806854705010454517485597747324606737359589418370110467363266825604349250369165239335672971717627323493475646487695674631045114352903295435983506087443667741706913022790071695084913585230705261135610009287868347992826284978565539794383883111269185319239351940792032049097548747644075879679417591064541749221978665706245066249945727761223114995815176365880447020236566727493317725345324142981367649692431216409425241057932294898266399293332026575206800327372635625047671957160338391124543111154105185852477570360568752335581477300993318288632387395844099173273466051173523633156713677249320301816755219095262594403173309771829711254227195966840140649986575735867284571165388694254033183893864456539926857148271825967894493662613298606480649875986280911713891282826700128207961509628236002309301455480762209626704376203758323538880484854823332844155157580824088087604036596852558260876579565502859426079847266340647967272947657243354828449270199101001327602044670341664091223411807191900104585491982382395928865123386866768364621797221533918701969027631481166384239827613903651112405073537486274472146539941226332939081913830926201973492050870432969285351320203203567274540536504241664117518147065248305779411581768499024018398736132887167754037093744378875800740784013201100975772410759589175688383542729870373980573984672688271993860998054750375273417379962520864546354530475254663353725415066754076092986215362496623891356163898202751430904320584277007704618612156645814151724865311566634104651936745442556517981106333023120498246306791325946989519094367614194404420691030424887207774913430524910428836511869815397737329484144966035015880544977021913061010742108768450509402377082541738758846124995658888941057559840635396880446577878630924468475740448509602945823863238742742461306088685092092855464398481545689851142742716104692707646447112128937862038316189234923028068298883332911047395103928600923007563145240038063744919082756927898004886760537682409876081944048294032776695409828168721271773310755985752824782307153813100690236977521259329792353220596101438075519985598544440858450142795475175679608920454841291059514907824099218595359332788425754310977603297279726508820022928200426086679992882320370949289796226582149863893945081285308555747462810746976398529377432666084696156822435647485721170388223022579801137247914205104536811624349546914038861938771016322832408696827145812807184325238621448581589568744788159503719629920430341516482516724531415312330893114712749298565751187998165888093507890989241334561399393339425415117050962692708938466859019559586519234112006333571492400613675705166899223481487212409328329274786212633851700795346483613772593993298829553575554880464517841909880354795447575401712785262719384883786373390200594676205626922418446634172245027715773196270492244878538136366543459035506407766562351027330459186363368611115539363355815000864790265285669474456729183735275640715709471808833611109512098752967659691565022959603414336772982636903276043175690212607749081682408934146304957943817399929016979471867860425866348182600745770834065818127137583910433565407811424965257466971989917849910006765740585412380833107773949514831530391061158512462258467629406767581519058996628710784005899349199460383097852488265240890331483232627399887017436088336490125271263368807873433291038605970223209046643877668498593787910182401249724029415116747814023852515420392772783393885122402389606769992379823776087836803337244947217952111036698194471289077870661553359736441011460741065237807917369214653116481054333133620449650958842989931513134142866808462663486767196860563356165222611265126352730453262960182211522886554371255494925259414119830812567775637537538476223692129287453537660107341101547454338586593392873434755473079926939725461940499896390941175050191162091759254347634337268760338684018220397947394579043512437682666317160886377630906576773620926166470545400805566451470388343715693267180879410821315144122750754213048781687491890027720598713787544824461818820179892494343784645585144570636141681556770902906511965434402644439862887161273495692403111808249291694194898137904371641560442770368000958763739137368153306997649432616046694922421346847769016389542317560058582424475608266181079228439074831572018888157116857889313409420935125375939150577446387180813658629519882587131653928253661322356992096077673126223816894658227292480309795107437539558613733596381860210546913786424895754582526316026489147698516261947935624461191347228601426741223862967705349746355415568991398374583293868372466117908202394622944149972831657410447202788239138781246739885328170637450013521634173376370925889448753007234306455182229509736430757815235643569237389102521664634546453236884683044701706875889601263441493217981550750105662353492974050792439501472303154997870211417323874723190960047048628993302277896521275163040153444467355487650538646346676245200341369077089329430596976052558652677491376748766674824610864339392158735335317385112955252119800632139942710119121767557342486050011071273540438503944376704836431010133654042199442566364173343654955229480653539571733968816375863551786548148404007783692070415172321787473130040272229658297277520147038837029393306842320873798744469652142448405497826886512516266981016316115354953637211189769192969774151481892244221558770375300949452427602016943468129191662633310659008796285739122455363445973368856483658785866201060881836939510214739871688299755803833080337588521365433383266090712324863673877645597996825380379517045197474366357923208320702851868728741100548217522036711590343342085986781293561125675200680914829536281461417533262016885773804072286883033880680402305336431295728828444576564114061807645144077195949464862619459426383226789111265213777824852762683570695999295843359610365345423628676734339400730734482592589724965963596993101192523275417036624065345945109251795410636300931944475345179396370387843695547894838455013262329156182014754005192533085732457738553932288048892383446178511252402171189763302808735293046202496163168348531633812458528675670333058754864848308949036951647251207245126155328061381239542094298713104307312403079837228766476987501140963900101531169765347125340958870825964208898404865656753713537239530758346916304746351497884172196616671648714108226791120375713256717282952899267357653664599364192695194554905317990833563769608759595270155346673736657199724699750543721793380859907794944509773959267622135998441985080063472352924888265644413097283694269777628130732477426984746943755570532955530246728466015690564216227454788992394834238034157588423186232473517977681646348686424297164324014950899260746311710878708983173117495034455989007158415940204904143498180008647194099257854029931136270437826153033705209825792144645037899533482195769292396292000121052203811745572034388539699864532837693459436514346059624676942082743783709203734969773886738946770662737155180598976535237611933010718460071988498468069698292324845878949112666017389187001331940174052574403309254884832429183252520824963431363236403601365415314260621811632542010776984546394441939920293400519524778814997432564098371486007514403442329780500236598718927636780216461707327736034819083733483406682533219013162210502468477428096858019160354847200419833455532252093499502690278874297967831849934877322140729890629535692238098603214978214386438989905279039707141392247536579197839926892393232041670097177512075079087284670774291686446754769159943616485525877488995437648473376482104907898584965850517897005247188600964011285686215822963890394758354328593403190299448310996535808872878000120991231370695137353226194883070890450411030137883768348527508407743731918715728600987006403431785031044116546252586593639527797262879594085481796511393772095810679996584710699275906738852590286918285852729782175493238895012215670507364358944672860567288543492955927649533060280764713580917593976399723770579715833019820580578956580822187651515322919402397995227636701453047593538227925572756669734635124030035015426963351691311337338626273655980038175913598718961523413972580149158447101730919521248361473617483233553960432682222358693897354613157148791865264097761957862221632797047395621103827282122396587845666750192443333884034348185738905609789900002104936367737529765916952048855217708194551408721321136605399409646054013821369548298733766512412431968602225391183023004402820898584210323352319791192175186267403896895680418370950282547542649967425417037069403945273782444193455879298635082044048677841166577872306452033495420768679856566809654839761422489421338560751306253097346833412287482452993073051094626891330450731121096736206317136440310230066607790877286213259191595055945289505373544623192005469890907583505945899850110241343188076757042487616324665692025646359136305437587207116089976310466191315180097733684288620186685864836613900205377985124253391282528085736829048068003211680927309252102766744877066834563924917355441526833933041498340132979872727254896645716951472155250106796671727705541828251934168796875996432475911274660693397130475245101515378359174901240516434369125488857530449158558338580272846338047173138152115565842821273739536960376693115902038099745184911568117028091186475653190501928007826460699517411767768642476945491769696683505297195387377964328450376871235945129063402700942628471107817548101122816094624292732890680365865038745811730465830279348640698433889185221618914817513424907277405971436101802687629136429871277785118981014787591517193653732358264408722446271714861657113831786736367101139765079319832464363230984905156640078445865867005469269427136997649175517076309314148359990590235187776654887266276559665994448268723369697562472281740165011676661590656604001861735288323268902822642952420629030291430802795751817372291828492533366903551646424437344770554227271804961326558436840819115340930492124520782773425327590277645444650663270706194966434152328197611923694982866698395922261313380623976782713279522479095929966202446388360643681861963172401699559551448817938680830233407250072630222614594096127778719728230484896754233006647468851739513160537138784479986235010902967661227095909916955933371161661701909758305450705487688585783185733629219536466673140198735834167771031832074814450215868422363649635541140288271360981970215917984862032451185233398859797009368765818714283439305164927342713437799443158878900648877234321593933031661353841367678382757525798676424270641241306254334633735195260309543016467003962598954698752576650848064179456464597969548287596706935612409728228263860499621738546111566992283904597111192956082244956526635695240729480206343095485693159651795811088453389577397633366024315794873237298210380450841624067932183942305580255657706203169121976122766324703056574166809526021416264872812793693651075392080561952625476294484080472662662306676922380449733509577706564176651246353080294063512800885500417217200504986327614282138560402740657126860144466836114113695562480083134557809731284145486484670552870944532248629210619276981524780754012156773672317850824390661723117300986340670862437048756928343893207428672106962896532126921912686248277706198242090079194947001687212615378307556110066952771906000094034605585372527484673435999504590237795324434740241456198793829421095487097757371387377826069263492862717730164779342511021756142191864405961255544484611793355965381381928855787438998890765343422994642790117665347739932722261048434216092502083870114464977318646899783620081106492662624905132916157239399530909542763339963873636275297609781318563800440460735663145203391511274877831730340030883244227688122650939959038885954545990103120912700698992049888353173742806117680671859284844078047214323290547289108087688494294010648224792433497282019336775505301531743152815197611448042753324640432053710799389226269488923025884652286108729694992792409460992644122295308836653749929955081197475772739795324611111279447293585208556541514173106522800150892345589554445096627254720685501894142211940422166188025935614805590676226285837092124486155203664582530496650679185214287326224012103844490637549165481663223920286635038403837232135026512874809885871457814148378723809781110387658052233557409837952731567671065131269967307455549150072387598951232499909330085858569748039870995179137399947192810461108370020127304255690148062678832027060080049994022993591580953102285010407173197659884037299289744670025717165190904224647867123861005194174625306978838942184881002904806950163349155759505598561251484816367219981394639012018509721273901989097811668604057548490653065281621063100367756877499308787555657597048635189652471513677313224739926542645426496613856635852267169984029381570420719799410604487698680119081814850462773482461794528617910657151723981477673909445037582941171706518990870125916298057646222135258723712189529279997976843141936901771699774196529335665267520887008387948986290432584482442231228466880348175157186502535919629293542360664035433657372090372190557015700037471903503659565786019375303268292777284350931651385237471911505235195967277392337903602021164053814838175347600379145152048040745385754822601268240479763236935428760665047620323984363855829551505793991924733638156365772578963651161588410903397814465765520989451278508480800828656038232180070170079107417379577178942750951689793733000229492195673209966688147694741940996180526649925336223151032693267651568738487931133125872575545171595488955683151458470611976377282884769665056303837376714127919661245711602474939321695384393018470704436985576795816264729839640074329458856374719175450587804986480046850669618959995753419908911257728934514970944690884994816315022410497218533213477832186211135897457470264661493434920694815378117467456353253694889157908180994500506971954273637977995591367349248191908779877118357309637456906177234462616296428674674024159535879406012341529975663788167964152359238247514123722847561275889150428121080610850043329523649871600933475252102393162678020407767637901441536099779573735658087096154003775630782405176269668403588490707522151740685459412446956779586479822461967758831192035853661154543668788545696935866317244371444651783536621771252658491741209753850610926346868160646557699672350583778344877300410395940679773947489396982976878861534880514590504381540405495356555124432344682013519962661990322052239521567451347244359927888505838684926041880006135112774302078361454692423704604656346162891897490857200087078861328256926430236711415974136163108291696315671123442818726440312637830371126007265224876171269288084900533455952687723753100074710719260735793827186073024699758920221945665701053158736242844698791117175655135315697230195155034477500507252222495273030542139942989434477149883125563764895701827482891819707541738777188722611298819279012031215109812228880550145353583313499766808891179631088961366152808772180619132126451423057982808480146990405534577793601695716968847946853761116049786509590576945371924769839891907005293829062085772849766511409020160456740424306427223431040831177221048660068699293141219062293105611845557287662687964696737739690867851387707833968254787604978182690629138248229918032094378200510375703016590725479198843142910404837303771375684837329127402275519380632373228980821768974009409914285916308977997419429575703309533165863528811628612990688413505037457198830753882211977421640650577725765621165877114933984978918275500574387808986640896139291942513081213582924688368911026502203064538852636840505992066839268833474521981563482303344436918390082872413148334182397786450350859864653371869587083532013351194313463072298289339574737096209342653247498217507105879090951984167824244662376534190201670509003037608318050819284228157418744975756627062952308624623637064034130789196995224107661903877509374330763648639553047636124714956708703249424320930916917026250201071644568791515383367829505310858718646880170333984984938261719343745163508000864237036666906645508908592800475791602275022208188212410094661995093013508223916781542472351703928699691909475312367576030136143283496039555933512406694663456900251306426978476142590723002708621295910812601415208318381140354150598252586404336074777329614501759280580280117976134618377604026627537702729254172203305087662850104967197440242084751720960285631409565642462188832752679713776869726892359569907609011130159087663595838727649442430676642268701698825126185831970535583171152124139291753770661501016360959633089620365985064132633823663111906727750061324516853943321771732213197135022754221325914731847389632029177722463516439190188773702280524798549004436252920698723122913058494171475501391469932245040553885058924584431492453401686306344597908714065939682405242862058885473870795086542178747641669010417994806694250642959975800131224091540496880669987573026250672561754229322793213432197995172442512540321085678971104000813163697666052986748526581304328379283448339051708231097528058140153593741913076510376773540392933410324727350244514838966899991165947706339415583399373686866336531151030512125246849636474425916873636555153813000687177664182644575322157220071380124769233725168859321904781608425945309879892056734584865451817496284616894706801203167126319114062463867101708816712017929694748763772766807198050279563874201965551913381752436802531649617421713375238519878703356438537916754849204537700181203088776927935803188941616022700135626451456462125231047310192630622547277324512150647595565366721347521263586238634843562698995943973818466199680087906332469882754637450519275460184673194561956019866575971907341590510656664712087587352276223638977551411259050591879463608718427492239502865467782090038634987121639129807780608090985336616601055563513522229764356138232494473106220886999041300300226017225533711686519487892124984248360149261849036181810889805964757788895839174698506140852303340344585484013552372845326274723595499257591469881024253266139797559600571269938392967879320846625110199939210229392090614095083470378248265629327031398028586023486520169469979161414483838940363570574529139088904682638452196502784919984276191835531376272376152619847635708138833878157224815440853917938012677249720366779964703404657083938738583680886054448400936266273480053183256713366162764237937260010657692731441583777417012796435795138672714742475371567228338725284306823422522872508405935062781299512456511387321946361769916108071032803048699725761242844781939568982510182316409911519146597634222562713726839532635861312818321910997533377624933313111666697928730110366844520364764581817546755508966225103600506832924330469477851694741386516831955579087138582353017951571861657358097388977592547486460975395868592283071277841227979776969968976775640878140388452131185792510117343394373271302108653805897791509120630905776617302961870267246267246594394146661464347934189941895856703304156817736718931031439640099636991705927031906440897335297201533321278662929925222942168255411629860672012698747260307101025299680388619807469815610009367907641299240756644966986606448189160370816986076203782366740138341116556396424244438616495188645091497010286931859029413940033625098439162921322363370333238631853146532535812967640776045994865652284828346159639232670020716087701008969355949762888083639828091432316619567596188752213700251629249094869700901651951635335765007298957122441112277492778475466153797549021372980483646668968395049818587026351381565861007816833155547848875778772697446180338551250460693347826214871460526455529412097953482344305306934874958032493796753901270928956592865748935779320095575951523637477579997534144491903648704373085665536256967996977430572877260434541680612533271832237729305296073105360863851165637270682758167998478518238574891620583835215395912752677260165871558511471835386979558921902757211930240605095036291067510212133374954690639731952120720683593331130966290294661820224863623072641439635623857255408686194803455982567327101313082661528558887801480176519675327957351102646425104328011362174858564194998584836705337604106485696215983590386502329992627469363578775477231902182949783861975985104626151256276139039992882507621328330564591610554420264942308330711343280202888444096295997195001557964174135412927514741465426830392868146641569562584481565978168372291000354345973676337436973440306318294301541492549904451259519142840993789588377296420668554237426168350113860119340042374037506308463395360024782353185311462878875186982602669655434261645107383688255065577747627815156386924625977793882519138989315093294304155125946215063483003823813153417935420302346731511242713292631742518111849122686694192554232411941157716923642239448053863777588002373437741433325665772698770653446938959450645878560081707499537196924115600717126992027857800652689875990785489035842313745941813002332210127178748732625429409380611658858895491252835549527768438382885595138639521718450101954943713429624465654189923052154430435621671193546793061112948830834211236546886777221840786677068321331842185064531410051148596677905641845348792302415547560768786568859916588424330828069307621942249847647309928567362316873430694391662839150763506030420794114020463038057840511190304926550600107316025906814181260742559904257918802462384692035012633294729888783549137934755467933962467625137541250423403047289521288187383217838244872896427152940190404468772233232827327876416381083551622552535064263326811512614766168796103625971327661717250502058425404609215445550563202582748681248419876982097083436733830892418134465923574610051017318029744030035324766595183630768590242593515803109294072851259792676705078362137732556455431199871958714377925918549894392778022024396899817189475342663356549149544258180084221474736662237946131851629437385882803807143913303775413473552171438582106286967113694874241815787919482656429820288822390222306550305305127660524607015889713682226258764850680076710897491940756034135956005311324500038588813400157924462003575327946715648755539927162983725058394037615311318947993336848325072748169829445407167644622611545623781204111042029741994654954055431473420414238570994602677096385728206568232501436768204749270641154053487758214210688926515275855926850086699287792199479344774799217585054190353054946089469921541490236150417603535523500756740925118748977230434575875885194364632978857095758453725665712748789077019905860969510864203497449990248307538260023013847047086365480725934956669895618848504334822200394074127803327774324561889631272834949562078038279005341709802619696448088476701836766288053975272617635006488404792926330396457759003386063803470102509743991974322940233048104811169723954435422693750285618160596391025356943915116176415207006052089318212302152383541032530986958645449595974980624410961973914388096491638758281473132621408266516852967331543132217293157086569407453107126359190449336753943215099150491777012345062099776596771749339805481301298696148496652484374323075719805389385796107669155673281835542381020155571969569749066701750840594424252219335847661406527680416239652913279718949453876502875839004574870068635126462269339046766687842811434960644979330128327757445792126028702842969280068855095414399465197625097740346039434256973365536193132966951288973388039026415027218261106045069577593319058642752075927143753339490404333221120342389101685726488766632715634579688687117716837075768976950781596898674449512380764969624765248837029388405803915434845479585941565592146488189488281888519803910566736544029324365389907052790498689763719571897900363545245967798760311744535431983299300811734361298947071847751311864446376086037082928640719316629209182937735056570041836730665213834082058797379117832459414753443622817724644164867003078456319524132090091731040371363643304729899367028404215093678560782309653792432154036513277209275383080516753447757620602943777054120557213912149979198752649129538578542156009135937910402919824681452730101041426266297634336518270237471346790471437456872231388717044205430123377424179846003150568984255772065832156510078175057557795732160260159794795366602255660615985222026638152085249146602052794500484175733966029353098278896247628378642123485807346903328950082056856262553120554875433280635427153072693818187765795763748055797525104616881963409463013100808226034639813067147503994573095139082151839857849888168170873883049148046867861120984185820674921642580349067801558226604364267338215902039282439100474516087976308164617351705973443460550531922927156444367325670046683484399921976787281794055645326709998647977232738282625053654092455910928683401153491311565133800238052695727124293193146589676604581291206952396124732242968758532449599236861704857099172976831407230835676728641088493766309176167363136586519758426901604974580074420604090169148689382710679849446432236018804360386306016457350296197196369603220997660293482620605573868701750113586684679885488403056017829142755805171934157965583860151113817926931525000228562977723330854423104755220541977818591858989707312102230868587556629217891850932953186040054785883585596331144917934373569725842067544751222851090330780180828537040409384870421896695058983872681874768550511335853789366040989577901331511380937806373580765790846438213545314715008672602361460748465003324422294990493842975350913854486914046946960118738305533934618472252065711098509645119043177794788943423512211072999835554113033391320104463427830632260105355511785438416154282192370145012518186736050900128606556436673735247505002102857773596661540361317962642394301626116048076358330353647083795562990776957965770535079174691823903189839101310576870356625798837467098790215972408095338543487612354810444753411560848702642140302115606232085628901952655414413449217893404671459173250393598288399805858531636002260237552459435987649663545185186591594486505963853931979531755018333419132466589409359399788490314629195870367397601459948982235494368544456865141672340247851425859302738536124337641366585211039231648482475610944126551494929470332624082529705377690975539576854538207950686077877751786266387977024805473758446910652511863879364947687885799705662786111517516714527745291373563966895249509301662528914044438206147566353851580066726822822296838253042900885178929823313331951186084588788025915422380913086806625038313075031300906236887005687160520544125160882645528121614628723095464685370507659079189582960037090367741410862927968571432586699740316300064160334932907252118147912048493129423763402017119686852594004157462760680653665391465023066569088164002891586139955787399408702177349192538108011980312482855710546266626647625010885133477728635774134500576472126195368854516239850357585729375826151294177532027783304813784444731781030595771372137818059908731063606214452286308218184690149670207716587932367824946462926855403662012553811880904169066359338614324301618877221943921383477528311068540862717880692134242347062894095631470569958612527021584568524093963414728171552992510670286158685698245827970538407087429493346264097370285466005778980554142783890617986181210355385860693166599657529149210375185468051348853502753177243096978477856095695450989624907493768646222242773736005354024215750451707994650171257368733521680092910906400353457088513711570663201997607173869855669134080975307435113167592175784417951224392379485900752206451621085574139230015790391037344522066959787913716898840010180265285272719594123805356907861700372387335596127037840712718669146462107907185990005469768502410535212968235540656702035138856324096865223854447941832722670577471428146698297804760206295642086634442604897584314863963204638615942516467419054369139259837019771804662684377551254003266126929960959860521851602674290875076939691765268266024464446979901333726347124204461981528971146257010648455117821489996239797920878927826400866050499809493943483361033159730594067364235052491275912181063183474154162938481334071837521704395711899228181251756749740750274669511411153041569792994772253095432840684149372396881728919386566184986853650151883163038752708980973624692297332311895949868989341462872416954358309642799204851039295733498132361758718047592355399360780480437095751247323987013974995157254802065014807792965681102630333942979038207483613687303114330951307218347653621868118245394320099479579789006386774678290616913155618237188121718126151148083278442977439241851696133526967706346415035257136518045158286247425114768395507381176379865743532037894372172329595312840985629232817700122628556171983684608394542822478442810243323633246183066269216473237412329900851920963779823821221812184194965737568854713754110284655691173424763662276935742418769241458639803724548125526477396483714428280475697803993584945976765738486035726373708671748413343906810924927951904800144484921344168215413796852124495945611048275216031001857769770687590613694982405614871684805445130849779534908719632540298926178706701370688638151370582375995968890347693706301072653084984352546740559507313640755349243755635433407070807818109524172053640674477834238433048456847300009386388981050323584853371708326491351604701150163301466300872728158609715584533293647464528841735013180192678356222537632278686367869255016042108033936375957001649978597690238963248239185345801872328444146890988689086940892684655974898888548942494082661788884594253531833503755053653691792696903492440911679371332181008800921996709983337740811609820287188523338433052698694025911861508669612706645190718272365332979063808149323134363470475726996451060157606978398240717583637935569035874878100179465658338907330883738070040218563666069906158701878932924693964394777021189412934400319998038455583804161667242254639146060397425499329316083016113636097737937256105143832299341274164597676394371025675864016785345727368000097276052055000140724904716975135694300720223988565803076647398279563671526381815287942452563944989500791451765281521523861560614233676606700706155609763875400902145089380245694942474706257336877716206358026416882608077677053214347225680124927353665597615709676614105242784984490116381111539924473922161079168908667827998528562436833281498552763929218286128209012314242588457670513283384616191679041145404884000700803204610005311776399282525377069057346134530410387828825014527648544010634214878710332677772379917161069667124338315480661543356562758265255876002118317577661514806728222557622002264311643896472180084980118646680053015986433104409684350154295454853801931675787104134234743013045830163766927160595754891653355598925304806141951903620593405026998827614768130962828235151519690484135126895386654689338853335175997196682476297191077127618754993316090883366944516867947688970737753397272634727323797693105807972187080305754459095220649970128282198753769516007800889700530149045235705501962952039027460143293006794210410956630726262186131859799793626037980241052628016073984103953827256551000395255117861021480192896591750697698301013211752837049746429775614833361524376402301149754329138863138920829997092938342069241458880744749143522063836154769940247688171848303722117247510090434917730737009381625203749672020566471267639550528740377032967879172589691910936649178137566650153304046880848280007097363542679231011821498129375716456560545303649379077500580266728052569333022065019490488339400923540600499367653944132680704419568883816710267812453087678118066892942500330971973156535852687256357098065642372320766773639865290728540124331488513276622682861474045314282687309782647404002933729097454059531319494642059980727765427315830560222462155353142313902329152124939092439740822526455015658458849694523677248152294139572897556170333637572503536722290215962507708004108693622803815936549199697488446567984458274075969284629283684941330251472090330751721181357247741091788550338188710370282379029121564562963260389321051182443399049478456697046656778328146785753609228262539138460390463333350969423694632830034130542824115406751550954976731920885678913324616312670555427347949610221503377063244178407222480291725770317753635843967279706582879187762664405414472523863333498441318579801836363844980889342006054259962332529800610876925174101876388288659113865337792162041274543876425380503927178538913256670538986165043921566211356253715218272783745140193049029254418756733368945482726139246842207470386560170576203763533397561988448391365665441393404297003619036412476679383334151003506842604949285434680518910533079903659654758226909450483285014940603280828439350157731164255686019712191947711211405402969763451723702827516161994691008394200849880132416145138884288697260699154102889025720925093945462212355824001964878025071950453894480836238765726798989313680249997384031826947345680742392626354808176727044573024188416007811294050110968758003922255429477173576730315281546084740647275526440574629696243947305258416594169261464492512126173164885685238339749283432411949524205229780166053624333206453867602994654970509106788820845822546520544377576649776121588630852390403036574610010984885600876333894533069984015050101337177995505504684126173568266754863571856464468491963098254038325802974907219171861249342676238197220085699860822775399948482152641777060603921194323904925227961299922439849481851768771974858639147583811657013322724430479095197994130997575039865030912672798545918077476831657779888049147510525412238324569443084827521569345479250766133041425506028172839878702984185212933475134463383782515202055543726856187918374340970432060716390602199679518533188162254413659521189896006365883457997965362840997830525994029911959742197183470307649276434693253295330211972300480291680353938089378705633923275046785704956321188776714188428349111590549395025158968094735913286097173695745027050709917072145743822767996751659354412885834726897442969494119809671255017205699889791363188878914124047660315445276569330377733980219462507352061320736803406574565305040832820872570342048754649746878234238789660613656492094844969695906141214001699320344415406428422751622273048810262918353589149588027951977258911276220004836876580775173540709138044260840780885026662764973895898840495389703373801202554536650571458699705581087341260453076003000650337206991771700768758271049427207516719365872022539539458806277520805112769409299151255864841402650223049206596275305726059468210117884536259069140171757717395443206877881257774603681238212332158223953866778244383799584600896369020252736230174976053501519550242337044436051365977682214191401101945074492767283932657217075954031374447300901012484473225412352403242262365756930329870979240153728196087673107962232947945511747279539640258720774721644634219957041432722407662417004055832164018773642942999358565216246417338812266645188154101337394547575634684975767971834066232751058645200675512130163174055759454026749102678470382899616011261157308102947666655251956042402977948097449616540889119795247191777500516999680116522008337166546250281176971404943501931887897824369283225928768194861316253413854497089452499805332462524313072885273568359059916749584345202026207938928978938390360547274700894103060915190405012557541749137621124474382187356438033690607599419276340378054548309335824619657430176220383493638123389027239142303799099786247417533524406974217530813941746068159809569915088360435517278981438109805447482172376943312067480667130801328369791027655079188316229158598097677706099528986186472008635206808712526929738416860816654624188270602611317450453731796117892343902849985519598868225082816158663522646384127209113459934531658013347916026387142843836337453461363268696888561100270049350884629054842531762365043903307065439412285478694138541090006330036686619173174187202798297692933837057975093683311199865901755152020048057073688693587673198918997528158862648522389796294379892030780107504799593878021696731858450973211111806495815442202445120585323087408975493057051277693855801768343890374004571328308595332400519934400321465413061987881038772629687774536748573995465732279792909678792584528423130955007421246992150476429814051997950761025834341243435334827412241398344773753288425097643910394258252078102392795502496780589506662127820414312147174503165747677594564520203269816608790828114330501300029312746002473251594614358718489006560975776906035211353849391971332164540719355677613811115381813232223070694998876317258558828204493001538446991236002315656924421159016134453133491461978215587836238243469751167444885532143514068301357941783987811469390089734301553733226292693122008347420017408179638753291358616847223476048995094804221747644074457758392022755625944898041941793597006449996569322260910359200508164383203019937684266448474843420742871854340635616124526555014290389165502595182944581378051515912991229418789819138661383421621756177129361382729684587060538143031894141930483550270133733966632237629163985021578188879149688387309400064874706982532328142100357050484322395609411549939369963721097390922758562838828769838654527298376857948277393007226983378927922297460366140665288892572459482049871172571198959436506365330152990872099659793897418954950231470535836778558651164713382914237608185345476382573443306227412800346793354240422481110959498995774224578237738271597592400162800797199377337568676385044679440358249737074697706501171622723241283153724540932149406181191552240435583140248990324390048618393082214775693874208505140703598444876381749598273562380250468968677721648216249057911094557920635210233358021161754233782768892462914817289958397510471868184723056669117630774922418340907053286052499275743775650343595818197488848474455739060578379984659316763200639298644267969001314125422165891540861000335289090682676439139103468732042798114590348383089950766218506347080430388878669537194248459668067468088696623284835939869312513979835788796696817046555403161310937984676571864304655646320521867540657492472933702833779831953279039267718686758129405709416013812065298424293644695488949147744645452752740319605756877889419662517403317328797494712384943904532005690604424969646398434584496547974757216297115694779631372172627810378394155992863286261533468468397204283781594610007340818011718767909142728539462408677442995290496683689684468138251959537833072444486010613167522940772965714445644142668852165936102875179926070154549394238818753145651116621999318835591153936580101780209344038011758600595984693090427403905812663748528252245074128031136833691514786258220814765918046960060206735281796106222729910164434835911944022401623216395357439586821113431913079227614437026961126534235017351600025936081977754623543318868737329219833073172810945613938494245237677147385276031007559713333596306291524012004576919187990760272387745226027116712149604540780404819416957693253743084645635616258632590756441561922403958636058989088291111608286644295408403517641423243416553741963176671230106508027732941819037407479717097938973460514049987882680038859680287808290032983813473936735947778942003062176783760356821226582902616385529265658123453651262919523005592389766380003389754610787663491726884320883005773687428263790500770066242555788030828845855359544129113208361922846417450285778121972006423749201533788493405002005708597489677949228690193112568554270066251911485960456208650891345438749940666848844890016831005326358790072560994704399579356135216252586932603676715570859080427426957864956462742753970061374172548945578185957004416647319437360984089402152275929589859004801499718975387042693527420927346611876407597598742391541932125474075746732239789947417166237484466250031312350437244856354244036751059343535659538616927357235248690095062046907612496056998089752992524720596398501399446247839872770112273903953951740214384741486298552798359717265541140384256381380894923700003528135942833967126850755534423702128428900877018349787456340489530135792868076010584238423772412640454505692126403434093673546086501110551435578401985741041141010310894952798312753091374743175472234530998199662061316068983278985784892001124034027371664721048319424333935678189984539517109291724599951359546808046709873310993519518680448913155817216333362156041230579872807466154536068249201597553453974045285252894291456035717194199025791995932305373774942100127930300013572078460368509422880656367435200464088714257087588612440510705637059358340542674677762697568647000061182521688434469804988099419254418532579284560774210898370076899587211379499507088986527574863273622555214091735983977994604291488658310680926204483012902428905918207486135064470755046905941354239672168202132607000378787935087108764438808224171987300060124461980593134117072511510610585015563715117449256532784953770202129784534087033410431635911381665649670549930992425856471168898506456236528724423068566086335933758696058246587959767469744123095687663892545389671088180355359766462572971696245706447660783451763016002449986569035017564720653764651016978187893077327966028488707838974893543668799106456638707273115871959000462985958302860223835953674304129489833244298366883966915911936394553075140104608922467681405726148293382719476595324527174560786935012206612613853563855357879284731962863658044364173666838427751952521009001387345426589269058731714511176484338947403297029371301239540429335548010430238780158927432090932123361306650276752209344455978526563974328705793706422526117674050198774883236267011883402375433028165216310606312793242090878685189024578699549148536188308202128415950393935471498654085705622281719224402348135244564313734772674951312187148217529353427963452640868146563087683850969796460884412194768447578661504742394644960098631401397934694874873426091661720309245391571504395589889887533459647259891226912992531012131410499975875783260229777708376778236392381922300411150100196723252112763064725103258595188236670354754021249774158133539694336203949554851475169715542778194950035700579401195342277102319352590284232074657130808080745916942462743324808307823250079342012809211238595901108424388560226212256374072569854926553179038656963290521615224615259397574409980357891748936721862941288650636687946440582503340634424535745717921499310435542264265595679994285454776668635441438177390052425893878986201782063565597512726281033521415745762250581040667090637556266651149702077471638716182448644980465708383980233369429176937460805522613344224636257630746688198554273516924109456552995821943825330253585925179319972964309947565425165898117013315772086794055983588114133463760008696872931277821970167241876110329715423934748127465980367602415666904186300786454038858834042438133615290910022618595169768464290495808492776893509194263406422342227327462258866126579250685154525194553823230352608429578956398707070324282798966866187258185487057862162086594426837423690362529406234201338502272809128096160490848317335428377638962509086110999753331089487564239771951811031552735969509621811762580888886419776935250662666483959079443944019708087227772528953204434344463523556008500142911600043698411841807773455862566851224914382903392542610423233523298508681587335099480709171688090693701958818055989811578382723580487618808906725701509793065560541653276565440311144168364900794726715135809251954719217758264422896199906632041490077218053594965169853829015805826101816171977667373949970656438211834049646546528675293729800137467076390335099445770765159004720685122016853635608431184095501216244464889328371512383926728495838036180554957018527020259517542031840601856830391985242587470285059715938565431207644166806902566900113694253468093089721808030118332679623589479012905252463689833681050546322402401565274333699234490110656208590757583314567202830590476856751377916969066797384110155514342798108078128052888003856297274545084125405503990500279796610213738559160237583350989965287619530633804511732612449972342570231713672132029789396820815817986587462851003748389671031904614609985618540562588209390987592766399618144248105038717173114284032990529270050124503266917618346218726029402108543094878351286129129600257764220611519335805072999192414955009874593725201067704597648854958833420337386279504602947901412274364657610077879810033867862526793979967089919621285699532180688127483775076575523360039193056726797909017568418346137636038396452478389679344393418966329688096795606743816597474137981643738069862968782795716507478676213142506696456471401728755500328179324905109431111711241167508804311317990461387721462424122924675089488347192701803028617072096673380862679843537524772479309041561794569547057626993207330067784926056602484572220546155921930680299721070377886345214114028122178839421901822286214207346833036525824408508659380242074833451438514024150895791931336274715426737129131976017068157160427415924231921466858520240950517280085752259452768923643496560193490412611575496175358616673588904421944217772477616036984611940275346190263660697919186465785570060509055951481169518289768317611977842291686589723424731480081105224798951046611258579065167049655399883284211894580572834829363403008572472416258217190628813856415288066974016127669848123354508406524353829750647299685474557687537788512859357427231462864473162595834368801632605563568741432691527078143704738257705905943392624436045990260300562594525225187204327346776667779420920120279257285794144312287299565475960541939820482312379958148690034091385179873559687151136111250825351923249999695146332543576141671807897833709060945523083899990616131032268191895670548391199665421773601260312552600922141858447204949973522607634362542339756373498018406533727117601897398710775490552386080600762889672544682438850312603190049465623665131718934129000816947027300800623275888193267832916604956385074492500481194081231158562899359023282160398187786556257203952918745618465797450199902031912727305946269168556675841099555832243436582326852887968206196261034582739968253367171509451004814047394184601474575631953249706341837340265015734450801272108875269286363202330364121453367285484317106129228172836497821270567412401036557425127397027546053703311534289420372164106628050225213786741982364696238939028475479538362910207399161866300604944750120240258748272890054738766123148681439401793815386884810694486994870694499911397618254723701234261550398462539248593076502422422951232982350675213217597991711167875487291907435378672376942590051212638417172745857591695365930485409361168575553055745793675769992111297923533443248470613072595759393003938423753416188611544116103862063090823184992538343161770842913121793296769729256855106295792125416303602837938155891050168007065752645022356766638324502201538155479181020147956633365004495264960907526910734591120844076167674419151070042323709180143727697378710111247333084050118722676192395071825942451056792502128860007637227513078082882240649955641060707944924764185168369675756179245170476231492256843509163244290107038838833951717304387686303049753171233413965049665860203816236123368222484109793064253060512813715139966306850981749882129224704476618684086730249316330390286374463516147298908529506216975593941126458185632933251702457373911325522340660566100739401891220478810035958503052539498757706823027267473846919764817167462668418386137284972233974160081845001723254885555105149282919780262093477407599142051448801455914059194915753467611968189653831515335095663070168886457177632174310736347790590458337470035030011555016725506910634958523883110694202524224515284459151472249004932975834750408012264284196833198208429786503605134222406800811246711668765446083267779182406597617430051729456852128377528980267295235734985254428414996584281024163185740428190354136812249603749923355557010062891883641732090069283664777143096065887614670183513346475949236905923647684960722127839111931462721509627998242498632791717670176752585703201974348379770286940787411922881509421150623113464369683299823772943173229405380351043053379945948063573632163321732736610159676491281329016198698330461429156293204985332351118799993035855966997922900578802374342223084677332239863126781625950795603181475188005706802938083539873547061145811477550282970046979032548315548871475600132274757743399590323120971577980657425531247047577283608606498996726780474744080878633476532278904914364912872908377304854376419031625046995419806461430604914312641393859704034370618843163898496478251941858801933346665002820493813926725443988893432972487148098548314228538234238033338622386139907046191245905379766889833597460411377849752751919892752803467570725822245169537021586068112515610005632296978328192481976612204205504215726280893380819848701892276168579916063780674038346283465270242675014898970394519339159267753229138390908425899197261601928399123199415390555137345322051104330543308238734369729704890962499989284615042834490939837583824586636094069728218335254989221075649540077324099580233956029446738569420451112234658201175630191614552155703200250878837126928279079166127508500087126526251446673883732016915168090140673111692188182534343547462451634111959070833563255324792626041159780797618906936593151284254681067564065431825010807202647306062972189249372597599771543161192137280940661931079465486294949570915049670046441035985852402443007737686121557906245166341557624732954104885427972340103913045088363187088280285695337470021934232674022056448721103751523195111478024972944377009495135636447593150718519518413441231026072674591103684133496864087867936038636612583817931219117729099533653941011771437239139920540680104503730453342774017612828280356482804325495585034440723141359901598543909453177901701418551598182648581884726583097821406776915729727488927768286526228848875406833364904360907512115564116617405144586531588688505351572348833641727980544709908643703877911359897341245426986693190721078709721909334551330589533465677289832086740318123820803987864819309099610330522534422124225625258646130626098788657868329628427643350813454772812370896505647356176084827366066763406069344937426206232379476955337281206727986903710977679114469139555210190720851154335951202484048198285686664630097632325968568037678476198883085136521896768959942944606065563569261723788484072081077008544609204332708442818841362307615236016338348230903115571679848294544343597006117022225085225401901062626939138980425634983468303670799088262157204399770796854010789072061957654977302660053432272030719486663083072359952734141814002908137881143020466906163672279703780760503230397395967403610470077822326646933997075826443857022539140080886799723237019546668548401037568500722858377484692837926870583050967655748415222039996333590463514974180244280437238977808534818062766926535848468945492674789432094453096819256105456042583289550732496411652360199791990279100128802792421356869487642881979269668068376288050779404244780985002338065695332072045959694666805206763657661820324960655175362736588787675642877473010523424978295634070420050009364190348653317363940110287172376165477089087769008973472982969336836282301271795324611815532284136729661682668966597588322061294095668167364074862907885512867388749572830146526305081584795509558484946842262797936286015915260843364097758488047415071297892559310580892571655334008285788699631368723938099415108413925255546517734434848530134449430274410429947497079890472846557688687376258499121354758157151557362514609700731519303247873624723391355548422705792935468026985008810531311483632626995124117345946604698337217486681911458419476025051152815515531754871657247250785367038010455879433135869564213763771361067884676681860872510790494001829817602490846053701530297848722410416464038602909353602041934335371823357063247632664579317645923126838418551988460271136956025602366184981819000926359958819460526122591514473262816285087359651375031406426714961701281925066840723297456568137481537369538705557154079993510942705562772732779963597175367177036398386095265230916252291893909623074390701719812941014570253684053924665190252584826456680334635929936738011748865240202940051026430759744343929096309087612193998805881771690819355286219127009861419324179754528159074151268794109176084017108930940182602783479569480992244330261957906928603495477303811912380494216667757135978708503519393376376865917978097181630946920842386197585946693733744066110163073179342831536866651935862532644129189690035669429258199997327748078047464930462913091362580546037452559519927811984763954542967626937085351892746195813880399465524492909504816080323780502913461436253292482953137448814162547192681157613887760304958973130994654432297387889928252857117202146285214705937594811842215729863013109271156126357523776238753564547334302995747073729741161671934503815430673768134193069987876821208585165904720605437308759622956555181204700418772792210846812064466507402068396371617511120438931233862930176267311878121017432276349283729680691050780896279737104598634458700984717444829305319649729383037967946364905572254346973751957334387116939351329231850372509463212395850801357382540072482785070988116271070144620016102501101604754728893712619752895997524441168144643118746917646964530541658826893238412870007092812070966358785124245375185177565429195389735398238447386944506315522769610208358499691455851216601578611369811465594394683851991059888918396690611844056057676543385758581680014139275856008222993947128114507426128143708368779486407691860523678486620548742037281422199478957017726886259103631874918512948152888461177624025019483333812072820970861344969287067909736715274816725130220544783717747637392149289012751852849033602132728394045248685976982483189008686859788999958917062814127768164943569550361330859740909382857777786873103047647280571161475872300285934914026873243013020922283319600540537747400725335941273775186211622696478787181873945445831093178371482081783198408360255850451706672230316328226775836691940863409949585117645034719731761644517247759981955346187090216624274103758991681116907727587090674929025624926251160998288263551143951041409519144463913979241019243426361463268669068317479683644398449241547928154965250744880700687603829825320826105370078715825919006364240784067983923178801627934911797591546716603536121238062023419067418220716709570387019046640561856632645708212837229964154135428794983960021408670499519578726290975217336250370711817645961723002726935145362025163075139015107641245714945351560564811012014593419033579123304581809389351531736128016344195197829514014436612207643893684986798210707049143005798665530969210296231396928259741518621253758975679536113440131878196233946824623630960127867490754882543233033859958500139309042373080465673997470644885779887496089721818725573392840098499261173050670718115904178612485078601408996210230867715647303609089738511822196422637763068973217516077452749932597178619660030550283294052261506161860427363434458201037999679570894309552094020483224413463095038975810244586494241947551341846311893072516102951263017190863265665130187162700707961753854405151731365618451376102873447227260949022877638176815177901444738406061804230566215727405800470263196927337483964871135375059898262731301425559595313444897405418753037093046873980829860968748465533571244091752937908881279982579255009814753274977689474220544025882559004244449162563062821755534357545689542824843272034438149346313854237208894432439290463197501730917068952475063464713282746867728022675718500012601651774211762454362793594418222394798490882464462489660363477715742754867241384141426234801318233383921322915164425997541379308555805575151870710127861991553743783990154887760097285652222354811368317368269644293891088899817980943114411022788878798034322969249032690455906015140962121538432633355009316684256056723997100305910516756851640993284974912750930745704025946179675513623400327736512596476682688201646658130328965370693707662541878240251698228560372578212768335786746407030272610531114060079514546219913285720414248226848337498656597360687939164658074036356295495430332799435769259478965862001896071080897374065956908336912620717866085720548623391826972224457539700746587327244747925802807313548687210098418557747005959495544099209075741415874853933156338713986885930046301159903266972720298050324321874462869966624675518855046729809806867020438881052269220385483592923500907065140206914886376759291601978938369602897775573078162682183838421389071261170615993269166134752125462255141522494598868219060728228897015385485112208239884521272269755401774347597101915656129632457933875315399540078705933589349005413485136396301504066120903776071024956690771207216680674611743230259447235439917804397112654801634223353618978140222854715055904075218025736001331143443579756235451768440800678560824380966483961303454843053134117092584247860786540724673686791295032702066728954683619062592115398004907484024263248293546354667877476929996151389469122574337326805938753156304102056336788386591497049906802187269367304085975980416091788363732245213166923638416140604900280104228430381366103500386150479540155489625472570731009316141893120765168812530051604693936003575634828746960342845318651028945197210910497399626373049479430181356111116978013926268423745534200808405644332197333141067185832282945439138565465213134489567169950317406844809285496474194696210378653457540603564411955075652964401096557568365285670170488112693385509766498482453709566583101887648228196757999224685264371746579882182644183843123155379755734431648675561047138263617215290045271526189250958257887810622078078405803286929268494111297050179888106506503781546016077199190547860826278046822417562753379353916258922843601488111129211832081313595234500975361878240783995084381547425706992462083615750742952447044372561287470551592094518567726678341423025022847262294730861999103079532255597096538873367206309770684236592393202540480908739066083711022663785249120855873035769851457036919331069406620875222559573874703716882597572112434918742914189748078750914761892049191020913344646531701854887863885218253410200677776129065155567047810429459878215518460117661331413271889757378920275774948962669123203694748176753546832387258739514216710837209767888972243044231448992597014204495469172007071861791359395701129980405488308871455035424911179050763645774680948625305194585262007659591918667960434315554265485831096394399235369067337507748442438403129247276666544776027107707930733252915524259576285095960855348446348343074269321942851913592875709376983676507882505244626775596636474982531873451642563753940257448604507541912226686399366911871722572499708409789769047582043760105671320659277768588360903911804809639936545060753034803689139613066959057359703682173180816762481375565353739320486791470222039213908902673129915131726059916580669826827012730810775833609455359354583495321723855902076013814601312326517850386292189020097558269455685006089962827749176238859014854725640912683067394246173964229235597413347111122099333921565437409009714939080332568782682743741777305174721158892475664014887367047595806800817970752804065217557520830465176957135357021997863698990994332362633110811043716697737325545358403629782631036608649486629657096079843317423279871431577410321749487243838798035072320939071831959634361598679721267509697333525650881457610872507013373342070500589669303647900296385785752771961101837775017643556638741777935462533536747977139818139343184128559453089049240666304292212525943481011637650664828927052539283735239298034458324074933897395781647043317575124966092677291249213755680745330978661539706858307362667689949487948975192787920049428260202430758536050139587990425953775483312006540282939819427347083856119673426768876203996745116431974334396515295779777260862919150563624438519006862920445611979099800937441677230056079319284672181528904557183102978051019038628287198116641704746941972933989764802271966178223585086943091720155165096072266339229475482757476829299552104788724088198504721051592086966935292713844265209618989099155250450195995014564903689700046430574677745573598424789953719459339613206718393439332049001101484096814496499956655373033978961510601287400501342940397595126670865042127973034781837228593977931870056941242382522856677191395614489359938362796968805678643143301268879867652469007174114006602020976165239442122962644070970704881050702580838139176458501178212631380906944128185840652127795082263896456497152323734529726249281461179873454607414215871009527844227990441419967664485094642227124373977876772626211937030675874947553358027444036479335980317347056663573395137407495462127230542421440060722870749040607442963978542047554387331568797411163859899089949218368390046405814127829579793151966374725890669554750541492158848742830490848470932959730541056914157476798772450563230108655131999754835900297434981622874240764249662863651114798149711810217063596790122162709737111580641889858171148283470294463528373890799500080666741123827007855411445966549355701155500839252105730123176801194658328657119470941035104835263693268954461391070691004859107807927237084484604708097492295910834460001224622647844978953616136106845603324454140906504103968106096657819750261162433290427046166104964389980185456707997798467897762665174207765656852646545639856326688029202198600201125763269209288387163550253326043484133703632152757625983314733131968754356170193277075883971632364874028066812330810204015159127759828911629088273345534562026168319221681562429992094654228488327219596881140569085423479687352854761390579247804129675803116865471714003538675009993480172403001552232010896927725629990995166155240798991690681841547725547150076167508885271209750308638854882391697081840921148925766264976460945962697251413015423925239202949647105517161674733038846665620196340004323052623417264229127144501239036122658531495988924936501502917235473154410491852085659810353364472759739458675337000344848223036914054877470634755501331312749313288832655342752862168610555235391002194368477515904417734384606060215923377959583381257844440625929565756654585864691210130258171656344194349658506238496769645935541430573960412127844532272134415224058259641612972141503072293810819152924729193898872806266593973634616859627825025332073772878865823267553237810674962252188129978041872328668067483461426849842157430869897860841359871813439115337965441121099755589319080642385632880490184714657012719754822498275579164625175472420843762259153514387185078308030905432517914685659910258425066226755688630746558200202519254354669754084276240385559452604454237311542594404318015682611654748972751635273891455560634214149042210868745674741940267747905722149733315470318248533682581483519697932923614009102412700285035677684718091879068901228571855684065665463468457495157010885396263171389187924781948242356686975602286309487319627697903679953803244867597631997688090857138418418013122581110109537419948491942264187623444525969281967056007687613551513111603080329843471765287521759920262863788175024578889662740739862686407513608899170651379729154791436812513199486436814385074797069252106759746869733001731567914625814020073185535736590912969583742687246479191515620784077036068801334557860382636736679035736312888747675300407138662159943928433545847500143722600466071383008846263383958768341634056686060869929056782508200015490970878218602714719510008330023809476556455917597562932329674044806686551697031613835120200384556386580246130034400460257994969420600807142763398023027456286304161454588775266352975106828242706377741931426509016091813373128788599337896776192627971994006504985079613247429564926853890320800882868389118765830690882889480365440942019618278077592939256518312911105634002590526735406002976461956367967036905712199134316731478111516643365874664922991482537995389261703997717958474373074591848800864826006671282394934170146847026570378868521599932214544811059595204955065287041035195643013457275261932447888611407782023263897308872246911361092583957580091863158729584442681236834569024063687462065718124880926470500394432877021634128244105163387971963370624954391696018173199138523328162128225259634240294431823379795391494890028907130679550182359815545672188460976728555440791023988773034957381174036824682708071634227540642359134209162607671574486883383103946278930427010737478177889008998173577902332794551114827462203356529844036632505336004544098928249225588375470285876217620445755980230801376575306566214377403868978814790390929051121327936155124331094797050584534417833602714272203560883857501197503341981697198687329043026127340077330471140443765087717637448481628215236706258957260373727185019652679556127177550657191815488124941919412784943383655480623712814248316901776622160155082782099168416220162343794908894751971001231690704113399055324413337153363492749807269622086362446685056238900361826636020062676073773637758967322306064874537712973782118568897046197521731027747351802398155880729821360075468389542102942829338448365427982209800141439857420577598542265560097929568841913357016096743815924489528744260675835083703456612041098532777953718684019447937238101647583261005359604361376182568274095180767881413704354900526411962558844339597423842434401645035552029287403094422532372583775716552903335590326919180812239949923853129559954422875582638924531050782111823820294289207501798832692625344111824853876726877448762424817189626426902956489770111703919824332824248029412279484305568651452358690619908846706336427675480954292037816945428100476816205023955228357114382139994424662205928935848277578320810578745896370197029342343083565081400439368028404290257518611750307640570979752144716485971169815513286353969954813987358228138565427298319234801087900774531639058410323941603870577520090638719938769366978043992139378698774956422942850090286168480893688377369808953364990183825442525324753843237019415090535071990754289614207609047821600167673681051468902906752634811232001865948028820161901935935987624703919247751010363262334138005361978903391246974612935874675330285382764037644093170311479781619431887346341453176931013689568399619990295738715539624501691675531379181308341040114529377021103716540978451966154709521633956478375222685447293451427520488053156912951609918446935320027324604386479078800850069221678462459180323756099909164502631269086421260873592974853828405665873679713625967958488940630433489067840556461926552539789764704367364325006292182610587400084166089287067192819877673434524017683925297166718270189573505552010784030553647921323216185747822001993759268277966183655052381975996862092637510549838002346392272065089091668826193090640446672878518979207111560091918568071173065843894392771960019467853319135172900486178483257166381353829796632471563711268742792650767256720329740983347491199544181344752864284903212315571363257786676108072695814629135244510405387810558732623758954290166360624953418743418588333136353692930613419887231145115689124687713910799815537680259505738537873521348739675665184861747481962494076813068400052845468501377769776673103258901081746545511994363905781721452994192948403790440399233034078654374984020291227221927961742833995990372375263132092953133280444758160751511541239729636802407940302648100273499490793393227358826705777583953026001483729367656765189407668981773792134525785821877341439443426541776576794880974351806222024307898642920088773212449099955815633957848363812129653432981527626250175524623159567755949032722605550853798177718588921688989273614043602606904473256831033894675667218744528220156913193408260010548688989666910691277261933403189325259599553546515770116010221472874267122902132771074489224145629681520415007638720664078602107597499753761647741409263096271594863959920702538190886045391189237554328356319778701283353397217475607319061489001354816107965883555500161756897278839058876356698144402906757647058030569474803281818034552313220381098550265543681372206181658695952209409134223108090956683525621666526139561384986423363323694388276942587894058547293456339684578087475930990806664914348197504892918217350098660916167111704286346776345976093074128479380583839210399787115769163972705711468504166365707594221499577483746886193651383364927873035551011437381571205351280476139098963115368653910313569436966180379306159321836575910488614993885002756469843921688600139343892250735471775690008707510060466671527917731952913496900009913125291001255815611785128153361788781760345619381188834781731892568417890732913609477558802906043426796330624423023306815481863863973478076417456227617028683925118654276977191420512992207331401167627948690064485536695216524660716682149286874476319551353387280920996263998951656832781017785982781091816132592974890209278210868675348287382401522860831986705277816341290713106243335183376011296836198640157023337679835237684045974150203059971493521821140083348347762391807327860053226334406942173145113702673735454087759614085060390441129535578926555073186679961415593054469004201446414607483055257801558365648519675732878548031783074792759513650613929860545034936448572951492165115134629833723318453569643033536418108724127259064098272630137326728897589411867798873688129354346801652325817884085476649012649673911352417453606058171110611963147141805100439832297388601613202454143013501183907457492156853431058758181691096130977817955227692331072391304621267130584005425297836964109408075091161749378497948923069411335775261251923485315161809837128608074817499636980458831272851266903189082114823032907241794251640381081576497579992267006408841539747954202537702597627776742972770295697969071142219858030040112214527004675920254772467168094461089864988165415159008984199010046167614550558242623575255043199584189470956502089686627064325694041190849536347455464171089225346536762601430711178905282679277982852874029324943101007363052081714879736942036319354132293939310481456681237750934200981378804600954437101272443884649890410853122231817119089406325377298486570133042439574511975947015745512469104411186272993311420252853020398737190186533298726911457031665451264729148539836835743472157150241294435006659601514254703276859890245306439984072339905674330245353009553516543590785394862168064422925642585645280545985853164548284991108975017158545396430150431188674244633571049001568593548294444972301995838976275170830066735070432962638114477128296705733500326840538506410301574153008381061726408432414483475370158273593509077166390066411191847473439887251254342965996058937064052633768980632905255718334580610443177106421385416897442820537762157394417894270843266365915439769441940060993364760745264769364231509443120294680137462374302673871626605661321022057302765782030421994745174699023433675491480645210462696966186673792263031182841149552865980983425847911088703196100400680918162129023535758693064333391232550910535216240407766334569398367381646249760877845927190188154490548667940769487832061170530981852589120367107675407575887081621465690013392319002219848408826800288834306545676671543741661577185115702349500843536418204809454668783514657222324130656063604757518380955104975940030529022631657341024064062910978288704824114584491550722330099484568478284230585513453809934091558478510003513102605164340196533034754021777924021398498324804702625900047153807257485053995326059173986902253368172421983030375708551980276522332411649660326437378065612717282555146970227306487620102524254895454951050107845954854480856708783304318243710917855940319314185361292772536960654689283762253617515600797194968677047212993974181622871068963536823362280418444761456331965253145653113399165153093415086756471433353454875482401569766726131899267890582711941713806104293204187408930649065732659792105831459357284042944948189830656587886354862925743767878025042938869471223156497542668393032671780379852645921689255610210938196117322998602090390728555250988327438034415121439198322437611173341864925303977581602635450138171030631630316027517314478927181134590584637325411949112495132189498270831598931387150069363548967580085996196392625922436945926734023273010267135626565623846818577974221012381695141017238222324644216451401534822421354692786524316117681777092444019815358575779889721938383977235959675301297701163071662103079854289694444124952025970824422412683310080023574750754191876652986487954016658757987636472148228451855730419313054849949742704948304701819247327640502185667189286271658507095603867205675192191500338097626322611446026584809748417591761859071833227419711885267655266436566974876784116764167670419160900354205828398711738477342517509470354785662621031132662681729868530970923017118319486952005766534096635132636055645294780789195996532852228238223014487261307641425116445411747691530333880530393343223336162255030539505940500304930614215935537450147708192410020497262100059085388502444543449543613069717905077176427310702052196632889113844435847499338052383890117623431232140727006968603264951493674268941781971964610273788939242801112248771467274671179362104641615533284652580215634774686181476773595886370334486453832452491573213766724728568058140472274487677728881454518027869842514533224338821409894204285376665646766197307756129735315889641110010274670242338837212135489166556712491308282194680544560368252668518700353042694329217488719014654309922222578518398981732625412685108972117077773245303857594545307010112475441561587401050606699343709603287142423739248965498321622049636981020073187337747586561095249534169820672960026544321312235886468926273435738037139385630717953683757221684702277725594211777801761448689311763178845425564008499526459465597279978082296128501124950489483015638573461448532159911507885244070888614226276113107967108399483788384806561011935465704836991592667318762808355098956318935976381099884760761448206565570328753735921488818587121332923274671706780083650129835338790390607201613245118222014014229754138067328587147363713479476740228367251854875731648906901440672827037543152706551896666728018782600589028782116593156121876053681845079525413231947470791161007848543529618786858595011093596304561372388649984686555251036686660141342062473136919682638040174750346070192159239972530162825531423758875309919829337240548480105666670508565643670298737555402371906864739913047254370889649604231898953684484268653632054547495903869136536634725871172318267786200877303664874421407535264272657011211535247995247707319098481595455738228806647368196529531463970038459445089313189265329898814769989528213203482982639346754498896193142675803096478745524722241675335885129360110799224585753092319700067487483411419566909152491758117000408507004658230228159067847386664594226425269673434477103723621416854940529929916548151433009224738093345956249402730413291111405532797671372104453951709908703186395232865805864675467478886440147809663057239321468136820792596229329983431856499181523001509501814356264772566569983566980529961289590210455469808006176090574655362450011854401893424928001977672274994608375613021215440516107313338841363755716470676464106484344531873361470762869624389576910949759452950764666869442566224733801679999137085315161424777552284310178062226540539071904532186112681561238710463958082642399844308285039068188432741166174685918467392967661866794022005357699823828547184949668808923376085331709964514577541369220928127584186664144927833905916685854412432417494724786755231952992496188541762347633924538535394185054036811203731247282130334833986401500548462275656597655517144010693783756252560494674821676105016946071382844227627560271284956234757013055417892264013554553194920250547169459578865439377371545852541588361673685486992387466062820558078011943498190362317413444112567977912061194308279377508216123840560948453565918347612179151680948858637088761789437716300470146847800820630832526204654488088839049250059249475997712028877486460719881642406890626805960978344703299950929073319150303805007363410448127126120133675647468545411113159265557690794688107442187997139224632140284191158371665385047430500006492157319377114755695830536399934340338574686066161106322083940596253694993713038132920392189900094423061551095991029230377967785812118315222862250865086845446195299505921389454168297332399809344382258517478433147154332317959042721611970476000171896855032941948744897695391146313673949490790850750406389126284437229179941544498497122773249266244083347422078874696703218001132492075792157938453989601639148962259574714325415948286063614810512939415021453810757512326769492882188221781183092697874429735947568252903840050250176031915155684387069092066388967669108186787061261989350469102867981603010352445747132242111512699666180732931792337221260054711729254170839028043620117779355848197270961601015507255752459890791142517773836606485057523234988380967322642119474247619850090243757298577855233618856695849132755800941300906358092183024985055336091517976888676612067843374136574951070395630703683491921989308226784623218776149212678723231387897603564368766951229132231283356819704510443137788461966643985658605616536719116301458990934871239816148189550571953141306980390356121258673387021600645082572184274098111048436497602049238560324630204581660660804931570462635183299669576828225490156926682640591646867450016595785826842111643371273747670980998251130073713227396159608622948912967219762821311175485259178429547639114722927277118725505404007610213734416792948357496558400022008540357096487413726971507536871773810755593119642102306406240377094208659798825741884612210756904490221935801366416645946731504186674478906975114570100324425444836054933315273809660650762350687465347376170987818184084877460878063891459587928409808179079681280770073212775506723738625593497133727049521010365734366787190496800187953941710112216477692660821938075844342174958217279235821438928453279851782725637904369815431445002216264632305600275463930860826384295093224741418951659941427495281527191906665572463396561789176132410278320742305228364910348074359042425615716565524437905515328437601848660759470407889248719979996556873144207998182927242622563156806577328491654989785070145062471830447973058917127439521168325654090344759554491656736361269658813415189033192254974810047062016860473273056831449643220785389249904794412807043824247520209883031361278164111209987991625421932039706583952621871844924505563855750173536733283851366761183149305681621362378303170031726173402360203414612278030537628978307191373929157678835056368396133332409886090869282117727341142942525815395825232946947347840610412093764181720203215100604886032229593341421729778042706489258014224429041485417776338375831762328182404406323211968465972415643252895614452170989787369092182676373998053535069228009671906587343734112958521513940816896898534581355852213836897814649341431890039662826886137703889582030504682379897796386446436564690856358253904948526662394711691066675759789901937347295737611104445242879038127243525880131500922443071421914759551025390470517568057119144629728665390935217700620843136276308973269407312232240509871825777795620280285974902130522158167866983676265332599967601416616317620595187198515181254426613946160896772063693345798811495695453243943088506735064120444564230433535620028055824109738535912812714735797882117783989700203285007310576329200645457522289902563443032645016128682390312827069084042729181000059060249127778218236485913368637519919359256800066168427959373019632028149652592005046081080914921216687736030404334950142063917326958619683498560589032289580637756700556542515153459223454133054607355175802109315664344312569577696434884714780318534633483318563858307479983751450031685632027451536233317633043037282029239704019031910824258493879631923527907236922367877462493467660876282038150131238127199168364642913533579351082439268704639599978378521692526453168885619786406063241118070756415334731894260005872279011564904546172497964554602680743743293486014102891268973070425860795355116514967721566721815347343087852699219316974945511777054208022832947574916303792820303219107178486995046736041727110366073959363269611844526318839081865151060953305381476206749055730361247143554798522677036203737288239323230483873881076975237034721285566827036617938332669860086230703703609942669987741933843611476859732755642204618541759043785569133604186885294439706342956754628994847732935681824392632758490220198529912944922099008979693651405922609592891517040898553340892841599167990196867653302248253573309921283114147603185345434606198201541695466597935454874497532208944682574314810170481987684710588861782476979610570671206911736359839836211830693929690515073399467859736828979337699459901395056476939649832002234452192755209340904629413477494336793686136266700745542131823131587505809935882411278119713204730516983600831901823385652487732474692736824653066324322548480982386086679908338228128249749956801132053474851341157357673890237668832751594438463317141626223424243846035458336494978243875646928203854796610687509294370293771730899964450514106860298080476795142801853627861972431191925509476207327939312449892125825105007769098625304050588921352496209981548320672239559936199604809755849323688286151592875838766536044798136873887663455208137919441789068375235315448835314299728559229082601366007004650505783083598926191180928131539597366618193015420822841641872982671781509060203278778521211471768490426037102282995121338921641840949727948335063520259289619903931362875914492733054764660778198052188790116528076502589942465324607008340480249446557232468405387580452772938672380972354717113630692534345413521055170172138632730468123564861419684660072124517123318587506176901433656294418999386043013295042844371986194168634245866863219029911475062136170932929430928184518598928703502549288381115275072797473412715757480969536498253718453579242548087813998766718593872664129792221822305674728314228778141601473224531749600634372213094820395373816586251092478216819993760155442565218203765975882683832347596282708268684551651472429722672384778034674751056827032255952930833376247018577230982777861290884377270330330892663790894918598253376202632857515337758722966999795237738424224998987787490451336947785039354637348995568221568563574457412635815505247073815893273469551535712464655082490683560146157734313373979292711601824371130301742214263366407932696720290801671299126427742002361465472256256556988346632697802648866095153644032795641992453958616799431627598544421478126252755740679162622021788783515930379345532927722689377979987447134109891612804390246615878666590676084511395863205512853158500472965503790238350357175658061978846669139135594871118069850398436277480777455157533577760456574332329699067804436902956110359976075384551987207346064198359299804325707033435055002068145284849982855444964129651664585695284587060573595823537311443404418434353432345954178702926263531327453846909308464411349318798697918409807577918915752492233423754997294779046737898402131967540667680834095485334905980813786902035022287009231910731906412146622905110155485573407992524008525575417744627309570663668146688059663252598753424772525505969847502367711603777736357675660468477349886139768320091607843389132351879118442965296737732451171944753412955024811751570512483210453679529624638056430797085773691878863366288029155180693034954186296291663138504059083890693008807432152738107214746276706482103285024462241714490282042219104025992267344273653723845959481453955709106398694739103679249900452562370927609505792659060939161931572266530465856426251059096593442217258331962625532864848833002438062950574567528025183131414348157867236336502265257122939468450454380845336533132802540080858757582165382071225241225613606852821343619770328788149749883315916284574667083143572464298970222066473493670528024191941621115541259185059301708620147690442856042192551151346836966855861729361735488892420189503453894295767349851882986091299417207081846148030744471506485720530656198324566112379021844358731411918094720022510374100341000346289993266532798354425737383649716831254534999698609934881689141856968828047543258230917872152446199897638755449908212673032724654998981869830786319142613381340928092483337654767242415461738027915281652150093066280165064542140548821608902954415111659652877871449519325324061583252894766222925265168879906654397428137429608331302004736855367102774875901830766289643079060559496812532960328776579730853675209820008173672122899304787381799195947672224391978427943280862387712919375655188285913893627013178484773868193819203866564120881517418891056151327745996765640625401716098283766175195689222430980133911190712293803516773138013170136862323711152824561408398459788305195944711031664324043732124377142407262906885535673530980481625883248265045491091737857611307836303023994623744627622015548284748813317756948026218202441276624382770847615077437074110920246679219850609261089734567296152260344169569326398000372918999995299290579995526373629501782665670650430787179318112144019377902885163598481458558241963573031183593466706342957737960231637770233280575443099434456755049279912498428540472319337265294092272335127640050788199510021257151988378722152987269422290765515960350527439866720030833602215656330744932297291301776347989786199384845236637336950480925551689650896676981354290334708464461969380341163159803276139147813977229582025179446051601671433706117584043141113037571087764656512133786516688512397824016324636327324648668068828590718197425637826647606163876862485911984431377868545850522435980568572452084157929614952818913729520689442544090479966073309968088512026448189757541197906368856193534516353339387843492962693183432653216419079531547330804244202568684020871328278713357880255487289245223369901389689938271501760402906460268399984480379592143125625164441667911053494825728898907334785222391180953104331345504791986244002075416499669522008783050543216726721345243705817298739066364886069898749798859810774302582727811695561991448558199299403527842855993904540573532177534391276392915267461077661392161987312760529512100347120564640873534584007287026340961538727197917119745924360692560973630582249529554324110435421950848894325137535995915289048427219941661252808197509227641229659092240062209865900722131733135999292709503217858450626080125242580602883319690668543228032207841245907465918072522683425868939774999952972651441767573552075062029676648214019900150811465604764207089943621952277902665678963133504712601957009132481912554903291659311694644258130447016702790109642761656912128896102151517467020043215667104113925771289147329656161028605737184838012962187841513096415448664079613216742465304383959757257289133819725002016576286446404102239869156493620502923715143529052172028776734265578829672122622486882153119386701378824768124694655384934308435747239583412461610491558632171112608493099809035428857842946448100374693410155201201228259010620710515613118878825512974779297083383270927697551405997733371860865951081369194272192548691274768071309354918553276460034566165367445946153553647970366557739530551386186890897476159588547505324352311143625519773350328635060436920007024004278287923477835102932450474084048872226490008047560899059542895356825935494369601792863420938861504570754146349265123401515468851552306101491344570355341969200173975723554789548278716875912127140121135105511909558505801326474775758856411046301505552327563436174813936925375643228805718053882495850154797287161756522185353154368815340553580453998466227270819774813579308289177332099307369816296125965464328643421182176694442337284686832050908798870693913575502248079130629750092671082157365711354221969659512941828729730129107766468937759331690481456982231364505188367076075803877045346145772182915692475175402838467117207542059347917935762688494486921944427498346977988483253024564170834506613805661241010127549699498477518006648482090812495052235465460429648550995687148798052193089472290036805598281508035268346619562279623091046290540859001440524965749798893378070088506085706717594541253428736679658518769619578803231618138581263895773028618348686832868688747774800051487864810384081908723095704166240354630674255835200745549057185050987080275074669693929968087879683888578274708291956616186289110370177084205293928779304141465892432519449578113873000003512672065057943072706751218519771915382251749858409564222821670435646304537787148841261411019936559163038774384325922566647527772772003142350515659952033631245454183540893539818881390791736053348349455545375754167659254243841018244770708501204127580580476568784541845694318899031312388990934307539716132601847160774573121956927919271942869991498951888858815413467248637418681430416528838398938893556007163514766980455245767808819018785906798032919878562780133901055425701371406191481962314169256056109685789896212867514718759103438896932693655777588143361942728723073182996233499383314061249373035475270363005201511248084243620406514062989796958885902728316237017021798992976529471259637326555955159796467714221244602005118115419846887956613681317841149176676856422674451960037070661779973102541389351947947499844792659992689253205280519317210908963075931628276302160313724183493657623522363678597504509129382030563309684590420564895450422611843512407127296064852459207391149178751662899873207932571445201520200867812235666092413820306060254277160791623365616849368557907306301231176437767465983465499779545581755083062172893428445680737340321776082264046281498108120577051140891224405582553998718607836494149931282121298880692331758227610513945771192792154433690022128859360849314217408163067420768214769738806103929977767998250245510114709281368520020355299845624501584401805489774159623574175576753675943860725830132027109553103317830078316537546249149976597317904661626828992382770135703902210304250698849687362379792395465386587353816487574315711308597158893239073144972440524434093880752881532655972033418590351070574808409970672592589657517889072121767797433950534779378917743845972630131160396026662215900101123045251596042809955696051203090031792552952060946815765205920544607902831180065588310640852322377812268650286081557685762260056065982311716604704225199745389440527937964964548972143247892466636941718943126566038824124094214286549925791441611510427543578317567823139975671057010341615688426836490246449151450748374554515860104643640087160638937989829358405265123118005725756261282747878375879071089932454702732551966767781709147682743073585183791259148982601807665529149517587071416751046954461093646965223355233328610484693022646447875182793665005263559456829241004004567121074605864378443189083796869910245195091831355178381714118136145576873328721335076510323545651846167528374768824386570579591838007277239872975776491078567879132483605140648217952942211251716050290676225775791864029819533748121078478983575977975639096116331599350005819311870352095555014888514666145550686368801435151893636176586317390072633210323616151115519981580747052061922899869180449130874403660279656210141947936711260365259512479518134459548797171586106857836358963097512808610505690333770061285482447746748640503594007094241890042707119270823557041500560214447977698231158200185454737048024165193618686766178065087660288831563099219754596905079673266207579025468502631053885085511791460594060339918079402697273571708159648857796092112817714067849769519429286953339670113076105561131726088236081117313407554082459792060908591955459160881265378072592574339620614527383692554249749258466245803631363771425175408666361130441920890951075090830938492764381721138692885254866568895143537928275240372679116776766616963780227620585942883301091916740507884845141914384048789934673589762541005547163959726733193343946042645363634586239552300924368733986879047134608273780250402876197863540080352981700579370925113403857061527237152546192257221725403518594430699187279696704434072281970227579026864850410271086031336631544150878450164280961097470052061047549951828896661589831496125861923348940990402895103047325334019422979919889866906650728338572066298011390780868534971543160793229246023614826076482660284125923854184642883865479627951866351733233240964080623969035101192458230950592395970086338712220563472722393098859799217417106483252331095009211541358531722387657766077054551108559996534502021106685260674225312236818939204565441279329473218171055401995565390829870685671858551155512707879594638694265120400863088593582451253872129798226251243723286716868664169972544699040271448504579117514568293633090329985582229116305493808609235492006298026329240022275424450501963220836808311342156828963108678716044099648733314224609693152376309951418505306387454485156394601109607662583443543998151138240719966149367725186357769898301742437675421681975382568151359301099522574523553432615800318083887039329443941352424858472891205135884030144575375166958512420881993218986608204507529208133939366299656812289697436222122412049752571248342729174218375816230605995852761054651242019623443153327710453889990317389293229240232141212007304924024133748611637145869137561920044418363573106762342112165480792379867940227565289884990959238507597888730191221507666096087638963693064887755885673951123126931071592749509422843954584992449179792046051169822530488266275605519049506263082314710024390464846704966199700169105157899320073137469601515441368443444072013564321902285654823204963030603595869016427578215039622964448368612369330431892615612040092585121223782650621217154514345863386356223333615309667125727471414862527355630621763593010375688553995575623391999309398148553617355568719113720323269597137870242819599843588527390756342634936535917981783745663702342205676993487344728841995811438372305948310222947670517533431772862858110408315363016233003158290791058055090026303420874157272110286461597390853338978573098769053056429548991151636141737209555454571731756669501860645341501426605153238739631856670601888324380130977508499515767167910920433619795933157924525166276397438210825533561278232695475804409004304550732805918923782453933757489620349020126521039503346189700937916490107429565425809810945832160648237445313339664866998141451113267333366723165351592189744574729761553508246521812915969350924078585105649257675970540389284640042803161117903675752723127881172493606837248765653698305478703692801683757375292742161069302064758186876668796672555717039454413440775996003839048186313088111612198486593424429716439761777661492765524714510451258276591824212726377832755875060401581258550713796306260739985604756266424912497362369465562166193887922175191332229370340381808890076518414804319645197341247880561153998300297384110870037837587956948695614131668348089092080607318641541959817899407447319006386457126655036921592016387990163095850640512016314543178112987592214780562143397176408252082030141913100554127967023436553738909504979472020900756128696964510287104185804055108003612824604310146564079881283935850087293122748188215875309365608083512767723453993847649715661889158958951254817183271372420940472347034987664917277521899997312655967765090244385499071515196377526272924370712518503136258708748914552402196067915278759199677673460073461767164744317856114869855004763091007036731231781871484265594850428308261540303865126035194271533013883431506595978511052978231873170781035823586874562317440308903157199619063434466068357553171578093878995300808283719291815242914108592190249792516698023601636219254748567145907886735150158192044868693211446827434983400666740388992992170401590440408448351402000016921412632318619913019703926263443204724133576823423018618893088589389423782097196339561266993351770771525962632288970833287920001562513290626696603008029029561664992400153000466988463465662963964629149960184786310003105059398487331450029723841465053380869372286041445915429211089845139769414115532181821054641027192907267869629196397408846869219403392482371911726241294125254236121730776061347145398100659860680641322719851289778531125835627910327859370741668849937579081808930976565695167812017995476556787416817899485287279501805399958917990998150755122155861600453794046630319534633566965293306371523561751956578104810765315236279556460007258002242733172314076925873127813731582389507171890179829081166533835167312410611111553688671889036776217515858797477182474446385893089951321886142155938741416871462946137522209074498831116080571488557345820569819820068619426805121796619157397078983628158467413521634601685632190394762964540833335218512199311092579062600862814532635376243318653148594724866160998673459221052693303807460708500809536577272964708415484919199464272408791777134008872351257364802645717289509192463466498324285622371318585374631410077483076641787929380884798071919143885660373797928021549127248634926640901729969003368040649095415798946492185849700737938236482079882539886850648756825971834910559865554683051105094971171854290349445015764979417461505682621285911148598912837840582959656763091649104255938749590741660004381074714529456818162713966223315148973000046651965498904238528523642585172696014800370100234826287800189567179847702338924696173446145953703615751402898040348723824652298443462124532919209464840770589426579402722904240648558702465111808847885132335180173030512399390763577367376474042593230978275524414456465003137963187224339159462001007746719075732374427131428113454326768301722631236084992855945883016525421277331433598803135843126827621345027864058985433662298153663946184934468929630602041241255368235909348277817901639321945566241665951670938592199672872164245130355991354946242805875117302383823004859787449922723176933153449335774963939542190875262670317351301467315081710894728738034684052738468873912779748691198722246147515969488708778759483322070171710287860889525653750192535356728047164039612554625846569324608336899241128894942122841434425644499520473311614186393663790495235914309615543919996708163673126283139871024811895987815155725987604413934411458059712618966314091658117631431137158236177390961528820270216688355843441418542848003768899317683425934398554612545023027929721374209626806265282875290061570012379886856465509459185027307753881191103352849670156209838409967828153475378359783376256063449974018848490009855162769483762330970456612347046560974367096195344426472833494479309729511676512697290438857482220656961072305095028608424676336782304987293383900199287444171979917194309418942288080776237322184166041793487084237371105018125527763569892325728064414459932077870449084495644908769480450503178248740843277360347219476200962560498704948090932522753470431870064353106241882515880726177148330962779018851324801952103865201987274184256954901763183483828856986494099649425944312675496472222189848616236939218914707196051420916453107425854634927191237805297393065731444327000773676489574479634836008263565952856603102598630268223196185777448957943788918882657960971022443713731771971743622744757572035299723734459688745309967953915979492481169901443041346733082205300806524966514806174442864728661691689237818228090483282714770843107842471143726488402326204925874400582271117631521256843775666284762165660434571683701497326416424287834327453820881044434441505886133855704950637930188788262615257042881200961763719059900059202264543108159003518220231075443617742731283796265652768710912415396554351486598688829329329596344621634828476978071171480253958107375071727440512979303372444988517250266463223201494595475371954260212424906434148020106656414424260901525962731034881120135726194110086037896034600895453449373366471168535373507989887847223562874066025945504869700044652432125205829987906313207535168911398166750404261141655726695189136376924724913490119097643376753752259649030366158404690171657969444014958678478068149868720196832255811208234687133775677855613502020606361737879220293520738670819491603396472824489665320170547432924165999740729233111688805696525492239056934909502946188842924330217649087486844523609729803802470327085624692652066824292849300805860146711591805370142611539486282893542464498056923696892897565628868078279620593705661718615581078901608343704560814025695221026689172452497694494968166185849631344197166622133130909065125938590961540808555209315053860880904987927974122034446478436841725421912802814100644371383323670617887937901765982105669926115504530435929304616419292504785039562594521889510637920799937632027148484924260840438539767417191602694172512324111578944131374956736093567054154557287069851496800331238173209924661812494081508049584954981054810374487121619281268499458889292969412201273675362566581572933236526618458904015387452026299079273150879275731419663590051999196308311219701309846843140675204683023221326555345707986442400065153223414036101089012055035324199931250478997730727024053920174972033025343580953334316145418085516678327721087998306716999137864926252856295767191066043364526738195421082706510514036763530406017698363525382733553787697691835231398525599396631334433708989828973419896691431979355737610939722058429873963882741269644783977315809774661130103927541008826569966320618867676680583466376036036080097661707378370116591176556699595150498039235263356216710538626530877236243192373387347460937546140825807766609639961413187160264635561834191969338789763637082201011690609211657213346421072429116533585962469892501683989316872735978782506066411310725280336606108597805548956273022148537953026431875070213103947774646094108037752028542861831708088958111385246739022591747670804155282938201306313501927393853391816787694561054673971064074699709182892616082144474795271449213513380335434753314262428557305233382004907482728748646882563918953638018527068938424855236138468529137244719192041803177956003485562294229272005637145210423898948374028476276799313995740993293344718121941881331494816728427571640652348347157377250988618672767434824566357338707476837531553530669219077022788068189076527035265058715760423194979050627089662267069200986776493624941281533239583485594611430180776714287587560855917124487631545688402401243753910402735015670086815637419761732758807296943417373551809695596605062334181229808072147345309205739250401108180497667916354217164620335660988331808136969907110954804553497215660695832784580290195669258211359365942085565808505885095561962816511935052700855262302593235860900042303423250391727133208013421006573863021118808118754030365900292856379361099110870487873733537391592997286829662586589324154495502276698895712085716755355338783994704216468499249437034004466297841478280707947842280278923981865181728468704230188907311144204703736506110450606097724753820065983755328807641811501755931528985530473531799515225498607847187391298202935603929243230803533238488391568705726141724722629421156426830892453246423969714351578069035839332720606597392114997874806389898840387611263754535714941819769150431343663430039724934395902607965882787288154094845184065250231295529651684665098618477500706957857285364537369933411518399999885723367126524878750827376120337406024581585895726429183472500493341808419069671386453909703103561250281684079121852811078561114170299872604285674429853416411735154654105017689334691918750816556348689298387049280855958929390741263929369777537761410719607649933272709355421962654183712146671832604230811669839567874852056529424244050296344392546381916023109062450483046125758052968114499640613023488378980932603612441856542089958936596671090534016789904487894872785737212958460867742723639874104384220782335811453897006522662110877605709412376579243226917623582217233101827846438734911535433547060524260281320374529865003348647661275333888530113451840876762683475752231410217399121039248032520487799806252728897149732831496577589298962200685316401221686759018593974873300737635014240770825237414373215127625590663314858148437494001710253619733346963373052575374999151934239623128058377419446009923540020893763664552640736183053766678821894227503554708081337131855834807480027302686453486115831631935128889872049936567378172611950607439697249067012608957006142374655433790204700304775885020795853580996383409510136129481277556407912963824228520490031896576745665611407336154582898137863550518889446668100654979777727763780920471692121675995910357199449183291080820182123208254053399006969058705840802226090881330169831477645088060429555565613647595044263896585452952462223824251507186030232867163053663536386987450789853140827900294828433167853539640863174452476643254503538683992854497108759045867613470306576143466914128647103392063511493409425242800361379198467909029250690948175442901690062932165005404006402685417315977390828028592803878934818949086814854051447602311414417463688842522647193970357577933006102714884638830423335087792255902151515445571787324674556744539854683659447622789680255948992802416985958452790693926728935850073888889348577176599494582192083201449824552821439569491846819273233709429636872235947596094127317469053562951741270963896257945378362510560178683210582663726198310327683336531373428117532918261620636081580495777401633664859984736574482018880528922840263287562142408524636487501937693893801613778455892994196927926961904739880001175923070779892103398219636057691790552371200814896694038466398691521593390395740979572757987871411709648047452347421813719043271790825931922343558597087100594830294413987226535337382690966441285340558057888264210419614651200621777005946827001481962603118735196554670278850461230215754853828543364802065466197556377293474977743740791711082862196308098513111791006712060191572397208271888651378997594750490236804674215194499617311631841732480385491886268692086544770540887262942879523649670103972666222429882516519590200997019368694432950571319769510681862927413313129882893731077041821850061713386058461225952813539725549465201748899330473405729470334171838910474942938776136219989753989170338892996778529422950794334037254847099834393316305440362963174143867577930293830266244095501824219462885909726414833623435985808745782104514187583193346555718825089707969628511594889050531986324391947001839981858531789687852465167695095787166067859178012187472282839555731401749186366443571990020997267245757580071468070816486174194933056376828619504432400879513603039915218202748245549830818909880861533241646249773529918143165250051914610471445397384230413450912037340408976822451582671689922907171085494478342802888292121177741097040357568172163345558499668160193716133218128837421578667016013598738156618172290436672568261115977084783135955377892913082945576738510879345423621509018747353286687909633836952551975707445355403770963255342353438134803668946535179058509397747847525786939754557900004223562399889810866801286572037216932951751535408433076247193379873301564719068432056168431276988596969540272922731951363477675928474622090147889934804375450874260934231297927793414764284294328076630592224601678356747620763044776229431526782799164435276681257240677867508217973941419194924638729458221772839838997644546125174686769435550579522419353461739013153437648103321144949466429767995524476333332324576973150865972272031023377410580839563021641173804660100392046869601176986995105453617572977507209939205592791994706597580851495159435057371644732396983295568400641784210899696624041035744095601164924205607315846937806082726064860347804484652350794665277086755061493037326562574706755091407053146291581091647446121627198472359336219731373709738827659357359842813692344290241244223243090102934686752415659609878596054095596353367255501932428234902386526444419371086379058585235942860883739956073000327535836202744562515588540339923498174234978954149705687786678283506980716705781805463266543021069480450988830476062545176928923603173637148449067667672580075871120161208578291784185578135668757931554092455908305785458646470619749474845496303925553668078424139403192000186510312077330588120335629678376145535889641148441747464664161582949955730608474587597904509865208869696869982157838118362239851488740960178499136719798519113719093789205232527606061740369028502347830104356942012197877402377479163033181730951461557388489256822351814951706823643763603142041978848300991227230733046765027269171580465014548198983043471182094623525838812244751260580866703579869563225889530314748672073925665064458520735507112427596939221913602319835031340746658251696755948104298167061904510387727885300175682800766927296212119906868091160578610446743871217139680082490614841316275262594638492161199425803425655128137444739211076223968849724074333776875531132909165139217727642054126355809315372417141705178093495561883744420332051629358753809873048284236558300674057885768648479121980096096766809862174933906080468331354306117161498363453013163799542844130672331203842191391008959270350316168293874304101837895869114746097472676497996846347252867562043984706113666735181016541597489941084727813591834914744333103292885413039055951413050522720596521069210139407273957835156584317825928344152200767912562918273516657178831184862298583902646906957837332888562626067755706952411302788527261370044526550872955869964716592493178096789078381342402807623688100153293046450838290107283921746878212487071433582310064747790746919181323280152327295651053507188461060096290721075685011451869956824875646732174905103414305356615850728074996866215432835645662319372112731557693849420172160166858219555918491630361789214339118382582231280910634121592853203408690217752395427649999800975937608652216562625905681247736797626576841693346732127628278938742958129845257568596189670985419185436804862490599773821191785428336582364278983582442858173912151007922120029945049380236753348130912816149377329466960754103766891704203433216998016773967129806510684368522582049679849114485205967788946070217757421686426109747529427586988657267106088032221559430718145547335531052384111917180174646518843596048931616707745167192427156596664272372872991329296272824783083434994119042690184482720324286726493460571508317117114673810910370648556257809726751726117325430448725818570705192161888086625257266639234302492138870630911482966694073148852835902455687117132301066577000597487306530727137942459727978160834190326648270440242783672334600424716173977231546448702018420050745769269114839354978266572426616657629453865468416806472480016722145958845454948841679230869783814585466545062880518045297277774655112567593614596567396090933554022127144008060477549824336702199371496032395433679834125676363465760195892569943882381300669808753807684470581866323681668857927955374604080010326784212955613124553916521685252365494303244623412309117831478871840630271378769941823525799287629737342439558477748187129223905153463747065870264202958449056369740420592658117954140255412796882936028463712460059377146987072229143795520753994466893966478660576778968217708130323026203932721010019073025576184369135140541991137337532858352638185937772168378664797430619557912686976933091847881076489518443100294658267318816176236205768768438348136797009548470295340121792851795779831127441138806203812492921372483174361000073102136710399649058731213148148524121274424631136169695161241445542513933526116219777856061746842439569190991586535680456358511948961805313791244638377886315934896303128031027610886474734306176275823533980760643563323409008032345077191282936627956852709905730807466324122169358996592897410380389530806638941075469585708084162074977291020839296955850431485610286379672565282806424470264292355079195178868620277351259576364019077963208271220584838298327073380640955342420299644758799754101874522494578097413164888334491652656553964804243732351411293378194234370368472110931597252969639942595576752631896675599303539834950091043735104391783130902551539934867561729488988085387454159743097572231791372936001666243904708148095590451438466733444335719364961916129625972785905683355170242688254725665663465127813717101194740673578621547886320889867929039521648470855795068365064950781466887158179429707499185245497547768821168915674571658049384308144650498771025544893150482072273854123708308944963996321779080334928310597305125758872442976297748106700370578697735182276587351941985679609143186076969065254970801640053101397241333406543238496714797523470782641014269251542694424975475871172146058558214166994524178059509085612980668653914155623335276103709924702490054346762500815781329235944493540343947391776535038796012747971234787168027605532993333176016385722861726558351968498412972247540258912489881267930128922842676843985154903760728464047583355531950724061494747192244311417746267895242740439027299371760353003907134267184753238319541502766320253847226100947722317806930818582967620621911132363152002980704512319673757356949247375664267147224667276822521252610246058207822361378902906617856691061486786927026656968463122919737794869637311144096378815820884072694013774287751661135515585948116463908791602725947391127215588284927089115272512967024666155720706162250431467598974571516606093860086133528686684715480378576597356470055293639294548561770963948195254301775405058921089741880711691650752586222123399011025893116431695144637997313717198348106181259635908917634307729830518556981847506615116810387020614187613530908925759954870597868159236398136737471008897716119674771643479637332527104984212683272476817687511115122299307008838611561216710275573097072464446034410825502748215883450656113278660285444064530711455124172806841573639301192957545524483147812931258673445819661403720996734683121145805251305729044813532184844586942390850247380007044594998894283192233492341695321579750019959140721682130466395526182002632710531497090107397090883403985698035518102509583397537524259786924911890410018608028231879320169207140073394570231693878073445730243986921671454417746294198558987118776875709992010609327950911243921269558077960048808731721322661947354424637491296338435324306082856345265691063402990908924579686893938184685374541090757772370280870966272364956294516090938336385388199691607703486488910257027749220608041161845611280602383712785906537981643470952769095948801361211602810680698505649435393220518091734924301407252891349350638875557738846099616560353130632514729908590194590915993870880807168628120067842542062007875973258810911317604495029834379138386030193050180063753446887080469198893735995266358303465627959985471770680450026461797524549832488188172098570139052211837352008988140737646758529173855194723713144383130679012850626625914983017403037265140661458611997263518719299971775379709126736977317068936818112667641566293632181407854886347495327855547801398862071703750052679265180038799467365671340892317308773627095435447921715206491935645672455219855684423911726528552659705886412483817528375485356023606681228694061384642849388510179382940564508593706656023160829589206507018963883648229416839618415548597927078357998307641785663822722086742807199826239193607555151050289913579624435017042224984581133510275739083904075075576150874115594674925161832911017033178494450132781065325008577126900507119267513992994627200237138977499367030194810019924029711468749063157128877465764650043941416710411703304185978259522208168248381365466310791908483496300257615937994797682539179678994423401822731515212106911446572628609783706177604781891499440500423971485712750892718377322034008988510541341716433248034043002180331462224684871716136022213023984760302161620977443798704508601468497249852266686077166653710373780924604736181421216546774031000968944861337186536273391312715389750658395188261151572691524628432216917113319148680369052717144125239001314671130304445903279093470511811382188273967233756411551164069935196366304298904623293932301531707774163966783614300031330908089816118178604605035318794261401677005236009406124922827994002532620271497694950126547831773281445281169007418754902808558238536475655464344196843204284648096681572456892501850851532763714796471124767579076621521526058019119945755166712970145398970828467239342370463351720380875592973133892106810978844628111712668826154460217553034776708701146969881694231529956984079198219812400584305476663777515995585499031012624230165446829607436307662501049673339205827329850255712656226608395453164231496820832799446063508659232179833078101746011175346838935715225446908638013422683152228561976411515310987666046974697162579506016502989467516241073542582590431919751119097079329615294296359464227449633280781229313182752212940694646337846217529458550659628134613732491106471136304097680055642344887840739546176860899406429737271674177242502639216676703371813024597060457436862811937931215798778970899494910670704574697075477941056926332188966065217035158314678825695863110395231050656124142334525068079799293969691946755234773219143164373785267688097518328910239213076551279186857993525149100446286250873758633831140570422627860220424071859118768196050587254152508387296531503915590246891411339336117241552653192954992870559243850722158743153025248665129839150056031904831146717598437316589840201618499085398913627892764471294111294176415410789381823792781560135250538862363498842099590923569570381899623038571717845853543061456976327126322929355495016417507645702088805966539632960833804906985348420784717611287349129724470591041658941693773997926050104638265395592366326139435703609748253556145044236989822124371513991081430424912888164399961596382190255584593299210244960442588008605835048633649529148101894614219543175634896251279714792120237207967900218751548081868910337463963006527954500539913823345298402344496329453615419643157642249141195866164951931050767986284356401834427518406836926400618516209647759495537896521229444854978995739213397200948210500696692474172672568562031690380379480791332153822669331815937566164549485517810838576037135515726212970429976354977461767555471031900480570321146819597824102901087646410686177608525708937958843910420645655745353139029469112158380170435326871514661696098420702949039742408853831781410997694433309211898775075201731652868420517671044846663947777617431582951599961776282175373489239829694557227094537963942238112870470661269192046426582765659225162844989090030744825137544005770164564030455729980665330112784604494639262565054120881393226178471234504814999141080194560344184284160249459449501729696755078411584422883551864042052341414616698378506411667640610623979460439654417414119329606909922841654660492649612439328528650932691080621034924843719357756990409907948394756707883994107211819819035409852961643744098281997586642754763809743816406601427176987458079403651099994436134352213675388450659011122552517831691748153256075958800085238623156271398976932517811257157267601465799139382047211000476013750453852399529771233517900088916744573799898010839621620687240559586963761148646330918195412973176000611566420239383062165201719269924929140361238452638802336467851222281174277442381361741095937462915109186626216579833758155778709499225144137106086216541193239915973995092526000712080853771733300195628110727838779811860222347251851053446923908451191398982559558727669024442167205408212627343917201452874670476051720462987993357231182271475584920447098389811242959104774970990346340872573865774261369511817777652117654526484546504172642101365910742465985706184575927128226750679219284718802638425878069823560670765891606926213564981109176207705958224760993708733848890553073713861758732688139529260521849650734009638924046071372639511414904842886299847302486859822420094721554817243069729625247366798824332702057173172764348741200280066000935337670330404493508822944475570235302780916537734506864585343994528470634718487680977047418509858729025337312704205048635071995450647137575336709689404019146858199345256467198689418192612867725757939424534543015765795629192267819447765363236750181907502643714437202905514357576095630508118531431541548326394320148442277305825018973154119546602417736329052234990795377508718738016152183283006162005491953501085506003345338312357863937856173463500222074318498425641472548722360931982757752520705253185058262422210479982875418461169234117227995211436787243541814595012644727368372977747649656915449359459148457508563515962142173221777223372749071276817719422136257177359396971019399051829553898859016440482347346602905812397023332493472173336800409940268020921056140331746050333338305287395202982742914973111883826345185733605117956328015729900038684176727886359307696347437436449173028970983053224529774075895052960157398671982138069767990914805194943713474044849207452805696290467152372024641317406196631693748593441145580056989453158019417206705882757582159710958667281766838568287477739522205935056755725271722891681155529067810180077065340424533183081260455886183621077191467775373821853896431612339782139225564334642554247594358509667577428796491858939067979188952113932228425176039114519237338044602249964260434594832453216770810578393857296505052548325000189578166886006078486382142064684011513796474438149801391866035389460320569120864553994845738084482370370256243637700718626458418824372924692404498107931305322081530265057401109948704138903819108890542703583628654018886350013138009769360302254116419316879566548759665166708617020094113261536992247456661636027071504670242796494550727228038800404522278477257962762685723144109387847433088893589153684723433114405765239062645359004409857299872815230444851799539348979427896010999297713502401322226216642672406687780694925240113232959044718011760545624582399745045145448487545052346822809923828735414740520920877041077043435527551582205942453982368724977035685106465514606542655141188828770144885934817100938586959005204556395487983041581692205566727436336422864670265042178185216819685776206472374612995336185802486759767188326309616036015538861264802408598374935876266085441459560719733578943719284387480788067597822926353251864808602231537060698957526315642360652614329509638176952918691866313347781959366332217230507246995643414681141538202869688890292125034080006042374907794882547058224689650720406555494674173392272813177725071154482318628415596943508589883676878096859418954820855444373903241123378406618445853662528219998800229750381420872700581908742542759235638343842507827584719954926107865338739154959122785451622454349528627428488572129866405913449214228388871586008819109152464001770752273542272407446192220224895705780194194739500323675371287140148083453822421552594935287359016729112414265639111717179278714663564599699252186807041007851619252145293752886882989024384269917514699546341292280186769629095007217309092102775034618360110724197116857909375597651009837951300385118130197298109454696971619388478501459293055284790632893134317034130169203837326782368300151819290517324937470382447599112146332473950256708393475572784782025176699366375250478817555427188552034856523825148410525421985606815630664616767379301759554552540867893463278759342387500732303809003342505192517586916902134699304620926249491190035346101530020043807177034633858809193899455572562284763982482663780832508681853539373388127489420140670296050797107048740899092002434046662300548876800841826137935572874929105564382920991332705040807600291739513410892574653605778115518542959728178893346258940642993988996932401115341000029814380954786134739670993574257561269678165700358835223643271626307597804530671011119288411664530137871613021110479779664818168146701314708281600823465164041155358338579515852991235945174855473709981280992095834592817349887618468398460573099729027502211520956630152138629820887764321846401920959197395025444447070333462225467676223227207831948215812475043217892870065038349062018315063374650055347128376536635801804386689843424449371698272567716259951561027373123528595875749778693556946028632379640603788941089350245783089313199657276326056721996241913436567395272370497492414942272669067313504658135513612086156849860729824542300441276191494885694956159737670850732798771827730257762156891455663168677053990855323902633217147697231390963491163699004547005590255032171709109911510254653416993807389854922542748954743566071259336248201235888739126989839952514305169853911661272622499983489748831242972141612128932765907044787789574459912072349073426071778515299677909912341149186623622877637469917271915289511746972580553824665310337106661936418551181307066714164314998206615750189548274493240503955168790955683089878343976757088673863598052749819152321332150439567583169602705314107473024919588395253192505016839181481447944298917416542415651661938722268464825688263500367474561847516773988052992502195513866369319684931853165107908128208892337280163136848876734891231969476268182301235652225331198859397126244171102002949401897519699038844611909591977281478303729416367713539582279038289017338268872282337353113275320835470365003089981203379028572841158796463276070652978111985364562070924611871842626978998255349426024197631906923664266298732067495508045350952592667223060178699836914175370649268150050286897048510719171229375385105795701976608325631192927569052306424431797363383616199610418915205820049774083600943530185565882061419151675612101633500351377953084895169494756952777348072487420232083873485519469958061495390674364402938413243436665091317338056276490358698675826029981754487761875215148035403828967511626895797561728881167142324930523096157086762391611396147811870059687391007884279940627874153581774341870771228159927278556452322447415834842813032295841915570123062495178124387893641533744446642872929640542269174370168006812001512174356587678281133235813489734749114064724756294958833635683253224715681340654950441387065634443717413721638135043117156976015945125607685368662034398147180006107014807772509619311130000770655677838196422316369094472919973191772016595437807355473780936190826381385009876541873736336201904699915104567268926095705081913505894024386046275965604172634687739408255340468039681506910064856345452554684400155478278552363381629778682917318806514322474925183224067090477020031200436392803534308189822552234418048492135206308981508060786317177728936735625635597822278381709009480173274578458017156283845926214822166093565074627967475009281160681184212139750901519605137087341825476141543715585296107270779099256710165921304875481832846629804090770236608835904111424585377285724672570410529501418699540894393843711073823463151137543950959809558481065061228652236499183654305827283693759281493063543509227494074731011662099845390316457473908361369274629272997779831137066091377669191658507746036219019438199712744797930831464122719930294755889520254290701617858495900909499598975298291379933004798332854872560419338838439843957778693639039948561174767646624953799828571124082903131659760502938201050534476714660830823016656474294724512035597026715502774625791025838777704504142731880889613813624216453649316489089169739581127916367686689392708835756908967210988763488144477098432490765419888736094927825816527937117902667216378522362357380692813029670145960244318130865964778256111106025325158670011625671567225774232876705417881867514264365416419584057815915408212202147237390778363289213827726483858512206292772544016711554534257530568192660101319040729499433774298214405016812631583882051773475572207151404771611358995520327469304954584511815094190435863427435786445795333776800663414870969496837185240829131161085685904270316047964527647464649754206814567612626388782306360411142620559583149286278358300490994376515235028869840853512583579465604562652465455376891399053885825495455148620618544747734866942523633665142530064276002125216088583196276397131654067609968487959316555363662788958505800103661668886281953035815471679608356728769744474573910725146233775159204815791539850522028446656062676554529011252840596205677929071485743694360691179934370937453185547218998519126605932015971235936629275968897234100583416964815114054051644209316451035124802844215730258027422559918581007920463601325403868077071544909832071451257997174195351214978052555474578624490876815916261470715133784938370504813021915905848783407155887029957646960611579968436943480977593238593133258954640510533839752849430276974679592612109324687141453192240209875593717281141909886669379486627957596306255872493998678348238942560820782773467235796975649645955645248252819478454271627085813091630854184981671406144291098824090107619091516320482533849243740036392469150296149479985206883012224430064856443836390346042525012567170322529404278943224334629762840415721499447543575989006686626254826096640046347060213308984925578367981284836344401639294851874969046304027758411156940057107068397467935219139548801308646951375741903765913479857256669071871125619827264926612420984623450861081644412469237653544174903781040904828748672031892839906278774143172607301740166952658637708268932201889615833077355252537732054745650983327593905948747373543363610913724881923170071179302411966960600257702833446556057987274163292471251194420172423368807441528824711346451267312318878697624630845293254843440054808708430519445829770332485921287783130802182898606887908220621896235333879788209410146022409923074780413168187539243402751133128686275086029946383138305064001514663295070779987660222846647062032897045548952510725020506190842729423702058688632001943926705287682820490647424735386878504836151775332443874951510282556509732844106873639078242755462741860344946267616260029993855081365983532400485588365496512665269397252897722693388422777009815698427521082508442388815158437781949040116490506699811031263770402828743555789936750045911740901957126391290485877245847163164444801057386006614460659751837416759914979422773024081116677038757073360117130982385007177232604798791723236143375135955567486243505627732569277845699133022438505017186252686244327948556694591325615713042296500086163542755849697054515745521175826242625706708558863604591826360484472073507468300666193630009135242644403912151720380882797521128260499340670769642692451645519591873238285880278159595772543299004907721159715303461666297328868751267147563696023925545167609708762992650117692467232967513489592593749955848866860610197277769074774204461462517009784551216528274603075371209726846608691976895947295985636106123680405471325871209912674237495085641507946147826214036928449495895105281074201112913007813414135463261790395991787152087620354482215381967349638837945941007665407484145155038132674375021252147134019630450553267680410075687330420582954566359756708486937279046557142833922293909108417510779886004642996267085627266213383268588885644676347565716406654469566941401150554039214083052372195044902531877273469480751741904991171299253192628371341452763001937934059984988499386649288189962783237226973246259054393018628247711383252993139268766395395687752236941527385799300139936735628262105130584342185108770220942854069930436985847979097330404615486031015255500286839791249328922509118695635812605790501634255466042169182063916172111526982713580604434422034130568085179006828480880125843974421545805501753430067025513119796709260897243703115164526497189173130382391204348864145050062146644248508694350597206658640140583423516370388943337739036528120119907366730273263028101317316288975681604126628256119257911115369921489995028219504390050861485496657189685223312813015887781925953738213634099858883749671041701806465896108632544261991818152017129515306549830231258302829242475341407344113027132661887066014541149978304823056349262816884943217469023811941566314875786754146568378006184284205534093504704538130297374456452162585210957464236862852485321894459200183964799086636406108820231382132698429760655415824675692698386312254309840512452990906930160631531633816707777747544219234103696182324206499034637831833234844898044477709211506914336625145016972756620754704808934080280414382056260621861791792365229421563655060511578685493161075816578177912395870778355365011120527186912069306376700472307104206578947881150896360554326653148761586926730684908194560698205319238886585525467601562891072350702632903777135654565603665096533443135354487676152634733464958594867132696517820136900551622298405959462432286942574783014971235752588214589421166147241299448518673829523919651335205817233261447912193919845475580130910643282834629512646580727283829727319661973553497182122590703261966003153137213929410162277339607728887560067398018854456068850471131095928562586806646893277108997354933592969809961359845381230432908737161218053841961629247962128035317916881403655311674634023687139877001111174065838202783784182060230213974113858098234875655122637806979486261736602295791281632272951950236288678094918512492861114342175430773072058192614856657437008123083543296430864172585963787339909692758065518124859541940840661653061885385255818585575307933358638093844794107990437287075118709227137429682471296333473914819737799651700755155386107898285141115467875191136016565061735525936992500380933471017602185994621585030870677077354682671624973702728332389825365028135430196624548037389872147563468339986569303220872439025240836217461051909795630895776213582068781005788429516120585062427488983086910723603107461675205457685038029262680619690849202655773862527161366437775680271895357068888053024153513224800128710088865681677223459585363022787500553029837485274879918004877052555375864273520649778995680728206201054316707116345518602973269154201833071445562579427547173027279662815472165436722204219851324576300788562942644319997836488451239467352450184887278956033974497552390613820040977351384231940031197973061249928380634228221689802197493611803117749978215345820064854157704204499005394125929221250383353612929433629006023813717509318154387273301299302084748564509204771111251044504113561411766660761677787881865547148793285215387448646592468073081646150020259397299937302030033020433215472445398314403815704575276122049467151519473924019889435150139603021343718813457110181449251235900236409023100455490419467655147638743690322004895881732984404151115014263905818979098400670910976560505479324777756659182382356257329483888201953373924369272915571863185600113785952663879245162191465033817153484754678427085623498479791731432622195940771814730060974542073255024277391342806943490725682085322222881210519539537177532578116030485978388229192030064471969457384850547828537515315804165669974784820028735780272371724536255059453295935357557951206962214138059583653425344653921878004434560754487748256411057478939412078284166282563156833874903526387051042719990370145760993627899433955183139684997403333210209629648125915140252783660962137561772288844475248452168366084444000280195399039182608264903702396784110510711222025016508521491051590725002444505555978515617312953349846307478565750053739841549621885430278744148885710470716757484609893542549565060170797033131232652656982097152230124766022206786694745905747660243157204936780982153430731502404291459350344379954566497317127938195856772241024504555062991848148692838645695150291736465387491285099648650614188589819035170782936480793390492375152671461327145546669722230343610361901676159369563781142432711438633213901519016651620436083743508301213990740433539995339137560828471158397167675554102487842501199868866130792503158244200061099469120565901602854149899362409744392227222173383484180734216928493391484884282422845754524366485835700350555866118955471341302277103615106809957429669001016421611720175429602268794217171193314974723214930087493269387483409995197129799098212425538988645996067600001979570994007940397492504838173863549891512853892816955730754579434526519489683972979821150049151801519215077687684116516936018385858408120875528622346740924382434947067681026790655710250954466982906527799242137782387792994273571619769780673371916888446769070914794852190025277851190562013794207555776701778804309466774604236172532253978103344670841908686350275061156553143632271701699683721763525572319463362050043482735078080831880952336671701124434955416495951278112267265747024786007756217178496191837002448214074446795691306505031434684137290375514698760737788023299887678882269975839502268860910398319217139866240229904665353430447874389606569481546402752561630756959592466676626021849521802723102901002858597708436934763027741779794591013447904900355113586308303265638799607346347665732528204961390535303345067406984512253743341977139998310653871206692023313356828611131978302461957595785040295878008359642262573902458023376489623668122505520775862642923581266392927218578065756157341730128771398096302670194028031195262962175560871184259115490283968625066294461071079771881279841331681031502511884400310791249056323649245875503431461484292132588656440081809121511592338561930632563004708645544815298422234652728936667717328344214575513116417622880540860525860308811550072818619632830049363002500668702557046104615568624561334710090527890741001662500312437113585698992902663670606336388466544479526930117863805518541275754816267029099370456050626575159365083575091784369638330286293962910676717369080665196079377068336566054262501050837437954817201648615612688378895726719258982788966852455239701893124626448361580015942365592952085754754152391066775509725679668731845859983498988011636613174223252309384593348507408737642595582094868741475349924527981884165381415764853139518851368697323196000873761888308707678923740532630696118258876616329269108872875557297880956714050686925942235682380656046589895962774678853871285456466099142886892987311446828495030732899698245983607558546545121701026146232356431744354721836097416568072903649350346786631021989162072304190635516910358189337143358494298128157815605941074818032223432546255365642145465377796846563672886301087971361990463745741176861788281280606353786012737077755285390530940001447280855445797155027214034622148196244481061828464627066818181819709648386170109863031896132110313455330315601788299306063053942105853038845498760291394385172303833930004204547808657061374211680032547675813639882203495275906341388276890378665704340598331846947707676864174010478726671524286797549480996346077694019314031283447850023510906953110784676216490856529723169366466565006858527979621308530925217425146605014198690055268920071173079496489278796850326211606191047756899720590220301613618910926193364913575042687767467755977778020579010203442237132492458752002039938801786396655190852621548704912448902563076456458279252725450730633499021606620461697129972776208408401220589370190019887299123555016222031291897633220327562349883265171477531385825649590731716234009853460319902571063911078903621699188576429067569362498229967796154207928846634442446230408657204580472354596922722027462835022470090365996465349406642448877932189996834280675135943525126404529819897322476303515750180762695666921132247493075900456820951477090884979427071538639258751821367786768209485223544440229308709018351106761039940099801190662461854502486130841233311024596481170351973340280354862163982945986331095222618176604119167947140889895626193533756309437931266845908416280898473547793563224967336658588165648591048349814558453431729706635038578414864335280072337220717147266048613984527812880032143783738191071222267213154573062719570114850614896088054355855905465306817393524416002835562455154325932546814893108007348291417104637682950701513245083085610892263930204078199016987934676588589538240909918610498459459979788971699088774298927998372644811963230934255420048780253741669945890551765642305750048365822728509103717031478494821339553544600137661491610768552748569333218874723157753183275442839188241576555623621553094284449957280969486095277834157908376765067619086931532855939136624048305059289937476221781134725685606496550228405995834624697837308605571136475561621382494735398748379269384517365246365448649903867164008226430850263959886407615718715392644785518425036291659751716603176112638696726070141303818140994852471643690375729682564135803040361970906485491672863160979255235453004385701719668958163318920260327058403866783989426912711879217634897170146010491116945478871055298113988609215651753818889773163764183686903287171013075685559526775719583916068216290147938021067727531606075999766173545315286151656720987855530814897778163848263058829289799288719717191606557733830087774251186759966898337201300379390799075927945631894485373576661955496438154068568974953943273550512513905147886686887376159117539801998143477839502735542323980489092935649378589307422526696994362979062713983544386308624197220723888682729028835977067479276780142561252442064660161147304021938964343904655649124369764589223077271172424240550727896041510152831528831409831845107570474262735424329937015928962104042116783515173154826043030399034664525035996508824382238950918040811754474350217430844606414235079723462910975728953638364246308045964170386899131128613232009543723896187418762029506317656271736303524118113476953615032572019115694899040296526139280990002142767632434541550307283059499981869750399012030847027012255062873814521456433830875070515595381096020882807758165703604969447769224648904917833590485158860554911263710674319517977838103920255777962897873879464874320099859109622464017326256050111724673644071124229778584527573157898665716030491362372006872981998552943538554925602325565201096008882584046990270840476554806780255031252738618789820283616305265806373767985345039507830862871811284707682641015178621087473514405247812020138305315118557982530609504833086877583449970475295862333069333486864454634495651486940686140073026224002010636071850752273873773631858180338199238774937998974172478869111686527875544967133765198627507753527041079120388722683510478135214502650125841943948143540240458826133138678188611439807257861254199938590177400453839773178556738557601396423733471906695884640427827618278228288880413565119168380660408171836105528175261153196402796351497882713692969599330968423268303285728712113684976550159764581230067745625829492217741891743394801847086153656850716588400832877182973170484079410164479020043586091916146033089275914012850616948877490057622376188875235587940699182104722516787454206222453805055677019306884871372788602457285386720200026448423311521049461231938771829352015354695170748086761510727805148265959172342759905333160645163034397655661766127253881733784638109249754377452882103764582689711886497395470325361309292902003660616946610639144026574364298868947137115092131384136781325867541461744998652194465805475054133666658864305106127085946949134151503651046026447530500264127757691662217437033724703206422544222775948157004179342264314657533425164375698260802289258336419094105345894043219404997689749180617065627248815259030881102302059768157941378468317075520149488131157672528761980712173958059355958070980368206065126277126685462443065069261753594578881348004343232467854976279075703458926216604558607895014964984880315465081972638030433964278542331414155759724204902041044831563256264058783955467847275474887003887669591280970221432904787709088863290552330078131272927441139629930134270138527953541990174334925896775042383915469434817730954087510521787846532561698722109653632095555075175040344168107849455603693872132423229164434634908615456129502203487216827417474268175827055687651896935321878683721966726593385974710016296716723104573703299010816968205298236792052797127552332958012494991582899055411573256415431921490597760678653590216474943683724687963304604567214463622061048395787965536431642153042644854875055421938539965585988261117281101578359509785756592351137551496201778856899942336001237886508594025295972528414032352661015510341527481869316199946768952787758975203313600914106930454427639918101477391068585079682764858175784602392571936421590428410412458113256275521820282272334264399850552458415161364512786551204047858465442488149325787306415047225860703726543987054149191192781541085971082257890023656203092473492810591613332634221216001895689397604063230942676965822473379894299364836676224412945676426967476647128861801492393847137425358742914809493931545175770354759332363755011717464113206659545602156018282371771158022680825803733042387819777410975079331736882951380209953328641604408705637226903607120591671679156294289353511430894734592532012888827165689995825861794517283663871591206749061487779110694818575548773486432238644640465662207234304432395607807822004241103629920679372598271762038440922835515724743560699669301060649069030501123146712171718265024616576855834580426840979650653175974184500113336175384281576972659681309527787987323939730006984852262583833627362839766805614488257036117449614973930409088468412152538072680320412853580276207001855622451160559917618732679169161068705759913481078235328534205483459393970999592798145261513099040692645849641860601208603586081646740766322928119408891553750436996938053452778021276676767392075113559860450357325794100449609368276433238858655560737981470625194729091724987688418870419342575502870072702775523951440984535255993242404645334177896808465140098414091061575332677289580787679255129380111248899387235068371658218891895769530599825785467634367331890828090597312282112512841245278330597766489845628243819183135484414081446440855893317697938094529930682783012445371640449008796725548985417562225560932355547898192288643552348621007414733764454449568203443575648695259317183037045337428976049351097985510760686112854491393876853232854414000438325152930398622648805488819057116739870468010144422695276542183616423781932325928841696025066788840148545203853581379512202103648474908934422047415173564187058395444458239315496611525037980553397330794784486800357136534311244734530592010972986598387535612459413320192078741640168177926261641234492438589896130413087498839514502515870394885829023461392150605700433825403178166696687948883128372314888032236657224907232799205012950835623632629908897807840348509066492846026574552620483983671195784533571342336322078860655901905910008234325762708340934542987292444435863060647124975101865800713175602081661953458456649205905376063180037679032683261471864888631320487300074590063621748185548122148324914481926268966198774227084080842250110960494510565548393836880711115176894430358535474018441874489017032512257563378364409625642696207457646567937014052750263763404527994867888378562522525064178419811673196756520655778828376391424761810477647980433774449611893014806769565151313017600087744115829249333137399206157463580865659269483701991492545666124729654296126942297851732769957267810909639764975549970227923097683680246756365570203610231008078174584867328184212400275662064139703272027180590932719196898673632518255594676928349330694937933155442686555798031818033862254976139395901761661274141694357699701111781526931940315763966526305364461837844849714793182694649492631697255683220666114543191213053629167018769784997755082442423225846730369044522433315984936955628471641695279052163153358118598498638769815706449135355243990997410323021317421952596667932938440195986985757978860990284835484761094938660632136909610731364906336455307103455256060694306062253060210023433789982961121243300434847701737959895485889228755692757924610877896511891439851714928441036474740914885174335776168412927148284510984008317076368750190777226503422789920531554442612690017514816538981048566418814886987023635377448928699650990038582657369173281830413778217607923856096993084062681263362652776818709977965500808685066473713651206923234137683735979892891794015200433112523115510551012172882838977133748109645577710364748318589106431855639788609781544915673431701650869236507661844992281258630622043724292041394052029741021964605904442450569814243212518174355193073093696989059003885351413226484258270250964996492745657196194149663799523453328245701684211160821252151554222158003530594958535617439724355291504415473394864828973513401320868488303162674001067584917867161543899727030532086625149719558162441730798245708664708335694371821517500852586014308587742201071025686420434664349882632770393140826957616183932354421350390110456966346747345850702618821312260748084426640872112864266602281216393975697372068556776666844385330482137457612755864849950481623869283998607749780776367608646502247563806030964273220712082926821007072198839454362346043314909572004164637553913480013988386881900899529094932938414321114027087007499095383299102369567434407790977892091141698092796077968286774243867935638668923397643111365133194998007844808472380255283673562854460469210887393989716833294586391627444650114312804602919446302261581726504358146208586209197380258009145088360954354632747378792940466877702733072811375827956525470661573194577849948710670050066418275535218626199380524104971757349213253455735079220059123871725452715340334624173715713103985958108081006115956786632745363100488092319353362695199417192098175427052204027784224066156640135721330385507757126710717238136308926518139396154707643803886574682555548637145582430589415992537434775856775966854023863820771010437216460266862576518336114957909018537873248397995174141980489745989758583769860137101120009363566932369762664972402187682434938268676883760807370100882796202497055538609235825928018312827858025808934807192042777197594499334414859169971886169704799336510101598195772771134514159487707285066689369820086256984312939367606466522211718929526775750628504090083168908647507441300982245464529572440430857570491941118779957785647538428172077000521263765340948643405682391672388196900975200568198697371357011646057966153804459482579526119324187273826527227343805374299871637541597880357719884624917419267570319318180423848514406535527773106942964039741715431020181062484811168566865022479655695860407295416490505981133561891442208791829087240365479088397903417583939134223232106398613431129951292815421544297513246739605675524547935504865754285184744560953927526308965842533567928435440332461662839449033831604199138424331068785185565979265541263927350850239102134296294514806081119351104546260828915470079856948156192154916215876291035738955118892622966048283873653246307057411846910764118256373801479117808788019636368747884948532737084373917082796286975877581433410236904156562632201283170466877909107732063748476035001048070305220641947378538252100587608429204674082277784978239325763713284830968059219980193300421423146551935610233726627432374382334120770192073949761433912909084513221242923016169563728723191195121606303110640316591866136811849959243914439315451166177875646499612098722644214496174296105931487889680522650441125027994098269808297445115956855896529293225782432655093778361047033867742122405237641087900361729512425769522964149788570258806666497993286978594742300288669337490954112549452421524154145579733755146409906787746429506556607166695891365309145435741469643058864793466400211560378253602191628308286877076193582772998213152925874473203626744021926198018011072249247614165246438379178493959029131359976337862089673409137543463764436361080213034152289461850853560303439740198923925673336757557041206688070755934971652642403965478645347746454266172769297924316065253155948025728433575787103573204900080104632818626051434431238172331155143861644943733745405129025858649962745596963724259696366029339654038119183378199478796103932132127553997063809419878314014210658418570072473984735753824774372620130995863106400223848009931547964836968208468109993453947397197016471186986666196842326518399821021318398539935769253858280363937886919495897300266911595175882464301906064427296127010381144389305934366729691061656753818971361075537409587097161146952950543578520761344045295455313844476070922546182063871898801968793862280458460388525359191195948521210170353958609535941446830866937715304709672184927695549501583210106025507143235024365636032050041030381821314829154434447884956517766883282134697590862492448911858526472212469837318071048463918777976322502270387186396803115124006508174355960222242076488476541521361405497281999566230203113850230695979599100555662198455944268474561708054860495605674611423149525619103242817601515001178962450548832025104649399250895596661604039823698555955786888830279314916033164652515806231312374294976952128734388365499219610930231278355835805976045745241086244081761850715490153370388394578206436697171369094708978903828882623072097560025786433541944521425177218608933456326406968419932983301741004020981517152077528894863789661148652894870371714767189392915523816669534634681578007577237004903721955884734924878934915517615525837398586327635169700213935018888391689549726977641152216085751190443909054772051182330798113121466978589332185078686998501754828471820777362393780715954572850941394213137246966425349643538839483451050593288730512249609776713007561662130485051729084123842432667871052911035599433976257783698968087845776229415381171925915531910096170402291116452164375137556137357876940618686092039665889959439163208211007097184013951824955062719670384014737419926724543022523764912790474700754786720658711233472955013220494959758305944021692247695337542741133896022779843090237177313206846547767521440634878743052719432760379150977254836334484454605405069725197292129083588556155047505112714189082894508883300433985631093939792065219420037202477336188187633850199998832725584338057550907099790565681370114964794986561636018730405021079639800588995565843358172051627112427155877494965755579355951017995895482792839134915943866113492302525896013763822220530861462195384958082887797955644668833075526117572274221426461723547405249565849248908610562061130097995982755681708137028425640256497676946373409036280506133996511608063261401652679458447501354452447354407419658563489770754572418981182961349849970868412645065494237670227114244106379647048120761217108778075811957939441706551449983351761121364105983719825216951629209675343795806715084083429136970555121380856135083916264237290211589095298866453092657709067007580285631247530485484892361099114439341048170088803541915641330918365122679068133321456650786196509762283490927997492935711175832467488105964682728764838982863593159943771230333513563082670624916383919184016040290927912175308992029615812377137599893138741333730295905995796158399019685833320095820754885851204932190146260396833192099480003986940084850240936850097036916238312280494093407976911294100953321939149118065520301537634584169658324011156480027547271289812467465043235664401530255776069425118618320976251185846806306429454225952033575329781691322624535196807431066278800865425654160428351741538873057907415847298131022098680583183267369770371663366002567658354982891723589597874053619581853483205963028443356981206009742223410530053709737540265183935724801863754441861820537011908061323470737415360767731170018003680810639907966864672677780021735658679318800037212493436985645900553717523735358437708270577863864419023854331364563190650830450249498679334719450319679882290936105825910820665255784853864308205295163604640708827420181031035466358168000957801727205957392627741266146381131467574302044745771375074811749545299443023423624677096203569504330989764177743895812066559717008722678598481024176925984910651115312361750498276669609781895729872093429950323857134776272963451898001565900893120733321293784046046967700777640582845892102899356992034293708819899312666275334058370663248050863888310284391473397136696013409162318671035059069421087319255585116655265485448843229056669538844518341068981596625119668486265963358747936627408623431595315911479747410093190922393784491392669166923088155950107662944836912695397545533445748727614164811345534210109213764002769836802113890302166418536360211939852749921151759078671208834499136344325543344987533565447983199007794997798893397811147463470414823793691595187115316978409770758300946810901584418223856550424665794719368472922456116213054685177686563346401918407520628677408466675189981470878224595981757079548746450077868861716191090528807169049445424422194157055781676339858449967755324860162586994321572412318506723457921502008187481961417293466287337800039483919870979075011068796486961262678226078574676167182998408102707692780726178294908339308858351288946414205619824916676341556005084414910210891246541975953629910624346474932172857175423792099637837448688368720599150881137298690032838143348633936894772783981308194746839215616546764403251223161450573544996708164876533135301808356345784029634917629520992468116839221841101092904096850564412220091917551592910528188588055345162608993008351764611096893282799165262655732163615624551641902181912519868218104826944598293144371645623631964426049628800616683342122312501712402952159818572037064117685494481970304955620776683003060099444012465256988802057947297643877863487841554513596202783859657666735351351182401255010573863431202937582784428140767996287909224098607123027518405247293916731665045672896295309169250152843445981583108592802624485015445230378905781014373969881430953741233482003728155493641356089017125864599582723737810031526563772001440719869008231609721149570618614856969180576465180919636731153080762619470520336667320540463095025262390049470712549957603074954756217191274515389702136688940337559826094912462803076614430664398332330659328265235655079301560600083360191923580536052118857126236120126299656298419645259872398229683171002788410697823670366594729337002833471368985332719859166255549186789964535176147025332587788025866937648083609162587709513321833129027463646931724049211272778908267422566426306872649703310272962833347436659562685672784204747861114500398683555090408659746853325751073843724918418612789714797621627748985534609619287695383491726877592408989766829045644164600707040709562864814732904598308557556091667298476191725186752695781096627159894387547067257539256623910485976673263867538877289818116791477660203990767914607256521540683731956791313683086442444004468070981017215603317020213640407969991940969507045393766164923644241442218244589669350387294496609533359707922485743932335826027147075290114747417907483193042996243812951498870173338352630679274243460948761513419618513909586215973248479383891510849282504295163487146981853877333047767254011442076208407880953684076021442702411930412812954723548525369264411088148590924986194872110830780867909952432917698939076387905573744906212894776493247787673727252931721541991768656721069951710676257417830369265001359399052356084595230931000786741406062364490841816501888344829954813106962374521939510035746075245257532962537536415747897752311240727994799671850482492399623864595453710524670371511591268147302067873704211223540755274473122287914260370368087201243457652572407905088888240255933044960468600488743045943608267307079609870647948557405171259795548357020743142902961290735964234810744080931136460232047915934414749773399245365330486761709327761028895120440080947421728243472140522203708656478168715705493628083808518773477231598782230024354737848695862573286508385017854086587270383412059345317235630789024200686128566804497352242305862038865165902389119620862242703968930179099912176807749137643074180224155201378762229909877706509708044763536102829486154083991382456284698619991025932695124310905332922415504970421617233918138561363751571895025415272670848687469190038564690171586119582395674558546943983323527265871781705107758400174349717481378441046045659780269837004725106857248838676024864752435263902120016072033705168333916125783829663843643874186593183518115894267252178433049181775658328345869311524023519530957124626602157121536934572969784062218819418983709080710463660844789804133611177173507421610372648035846964249540301892258917611499313605138926820960305114254132281956099127639229237222986791434444571012192045725275465051956428052852905489616516478247403239256584597461906429225480112796084438847776731696112867476612027739616147534155148117913315088160918291327826898548220673855685740976235592965343221050466272612610390062665045435894903792132255652349540391550857320312992250417591634724874257241348038932023917429686519086246375192855994534992955438588809277559451958608769802332143136224039996925756726117808749421063319368820014753680836830055474363128109874069123756521988184627908504142045823642017556920467692166864295903521044888811994276600723811874600819817369215453283358945000566671958197161132125077196670865024954241710072472345479116790508524238853959510765747891640450451000071458502624249052694676647248542126595865674576400898844895305260473318938018224926998217597825612075046358462431356397775367881247417723929454931553505761027772939837647500803677796549120242205940895378301324037983251340219548741233471088976831987325484418402832878278083543859032079184170094653027952173935288222714738488790629629604717255121340009534462948050610668806212027013184210234928933404172825278659866009472570728326130583432410907289871919564752622880946039879967066802359831309133204000931326654676064327662832745571438999233081670028578987621605622027384185857901224681728555250657397577324181343431157065727908251964065954392991555196565630859496188615806346577790247561669051826402534327350974858186689040287964308238670621828524578614358767138549251631364056040153450734619389284512603863532747184108722165168816297624396540156368590480083983299817230653850526380927922006144527911874899249611013960250797578936935326688096411783726228678669765469711976004982162110706590913793042685711076145023384735682752370393386877479391322628630615533392615085973221251484952546763994390060275175279378545944969266936921488578729589328503107174515993988999600005949827218387428418866806686912251429009299447699551429016219986493892316871973322327711104894868819018009416158987532563495488374426127432193993680554928971058777550866724596440801270117401172234060731643964947508746527971587288739329988164612221522400901334190420850159417015611206034317932827767855794795165089909990166441237526938398144143239142360579518092630797840918989633024034866164057177464649261702341423885348449561944556760783688366849145720751093027205126519487886070763932622614139166922480121160326349772363048103409481660199126581600041574342829799971135457038238434290176200683471297790453424045531420432010267795095188292260880064563385087059341493997982044470528945918642712466280232021720874046064952054512353891754552843551351498242855372045261538112713380256910421300554815672571965397719430780843453037417505644694271706713466984963538000900885839155844414353034003287405282026045811446516782976599947225831338171623192904415665763861372365858172592205476749565046602818586213557051232120313139248606555070572899569917554527391860512459399346174414404742937237245831294975627940838852201002103962684028083932866749332599109963856384802885077370171403594113977768827212908982591256545092903050091905042314228661501486040071336893006552252399377230059171398309328138276935928340293294511039277501197200112419590253713716254972547555177980225135388438948061060656514154962071666513774544358332583824342273522513829193004650406196061065868140404887462616013373944885662811434506576180111307840260514899164512007872967607998470157410197075237846898423150497193948081567167449880493186383619198056438004271469426154314938716186783485253759991657068713330139085697033449888563670202326474186207786572082223520222794487626253472723216423346139491312232784026526571231672568398080695222754626051939772177718881311085369130505400253007628542274624771099990804465320809839771613124417490731301134934605192701367024095114600465311844916861994308801047217771239475783346757148527621482779362308086557991576089077548578457556862835302463086475737142233882601720880586554818969076280654848351150370197842623378757283552036115420582154196357300775006951535840606552738927672983013683845703613597836357037537335719719281323950150824387084951504986458234691462521155573610672567073158632388102182791169190845757609305803945986785719283794235441447465226726129015702210880700166309753532229264998083072885085784862945511603840824239927018818859787374684597832559156509184777122538717440664024193713761832142586510758150479860328576317903670399963131780456909886915359629118221262598697725712800205454072137836247519190150477121633053610464866224749198809008376510111771504769570356161268676758346552330771638975282924560897439129773547749314041786190232195931926351618523957803318795242930142127162369415014678087150733107770646196251076275128023035954889714616980437417338186046267149981829872323055877779202875933120888368655911973753606121512665952452246711208327645986106670825134334663962219736942659339615958085431552314046124957090945611605496249749203094013464987508361182511830553881100996013719367361694299213330952991915621266491641377061458795054330474713781799313117175883300058370826580858687873917204267037855315391914583931411394592415437118621168407301579247600522082201174873677267300437889273939772210050005076684598435862807341222673169444471858567290311968099156149556342750807418140265661409101011567386420754529941453225205853030768276196204588708486004478888820188076580537957620686677848713555873444439144704559215851142623016894074825722822618951039767444097527263983421067746950983644852609129351568284967154298766746409141034925782638087876365669755280733657341794994440226475439850190659584211392120420788789099844397047605838405795415688422075936831516354218443578378284668376914075797442312175065128504178968151864580066546375178597726746204423010287889751842845786351800404946523601145387522665991946557219657816431969351587194821977256333938929912038429855300276930079120655466340741717945711475636048044725562876073982814513496118052600331631822159334924400391593818737829909295660422547061784523207198876023621133679030515558818269456938351060043535436007404014743630229598526492743659820645201200700246360065397739520841618558018727017342846355586483055155686101845171657404706098341305224103334903325992978161582629950106901369113316771176339368701541837924298358579430871524122594769531352072333925032341027687163192310849529794686946152475002812726918299370127766419183886710398231154217511152085095374439179537305681100464151818129040326284775518920744704123840283443973095832708009886459159149762770130016778497384228542171503357567034174957674156571893994131940596512060867982402724335719337821456337301570453572579957121671008275663480007100447191739780267683644424728993591769865848914062124609702916668273403229809529183132423401634351594630430855602484546958660991371147657962834071672923829972076582218529267096475298519012012221911420976663765291322381928151512668454784019388393463509052283924520166359899974544600180055463926732377384108292606388610307485869422734121122806970796779832314043410626868841325877209119559801687287967601194577477204743001006666047610118187516533566414954300845547985031557727189588640657147097365043128672341954131899425836271886212174847721988658442448174529311884575038981843997331132194717799162667223550489018069292229030934147375840547468459222555040102601287529655369153137759917208342976041560170220282764287419407477476908132867697221456192940014718285377534951913934173675198347985620982678316495923652960272749825833076600808871562837493751578030064664463375922005547836059334805232818732591000276918089614859363619769503840410274957435171570546953456531010359989975424275684514848274200723822201879765908115079736609015622255549570832031056900997003056264529112425722951300649482583278000041273204398345269343724482755152348111005914175461360253425957037930335580221383349620071753975422994826987063729565677282577121407251552125918749968383012089150439585885133218221104683651257950059079486763937394800389624318852926572657397019459446309585364876790546833979309444729999543164265836565257951516506037424627094880611507472874582027019964363827191822595581066619939195619097972552426638055518161441281389842987836803491910630908336068167337335963363652035276651166157074009879265465619693344090119523306327560941595157027318535754038732784455658141473605603231616944891750778117253089233669722976750041464239431758229028473339779231150391509378400516951870709696924647235621940775548255883521587363744618074046020016021606046788144794657137803568641492539546224883887721656229446054104776525915026246663288906717980195506345478650526259554791946888158108828341217664525690301313931818357129362448997561792670941984739786061196773874450676884184351216456362469139691900669824245946099696421165195201050584561255155975941912383809765678233212541812186031850550805739449987075023573826284248681309037025258130288511708571090176251172672357012084471880840223500421827623440572033707262003393713185280346232491618877351027299337098353332223118073568394378993591854890128500136724319449490117482493929286346022970095448102512785469837065084616408693103503476031032148448895366867993356852782421671861742184651137034856274246954649934926456799319736534318374845706367121531783359474460312127412151445857973201622725901854855161524044363258521550634305506709023398756865748916883893079895264572046242204415419062374469340372729334976602405304183385603096664146385995682611666322033072187345736524748467532725913646685058039553463943923823476070847712736399527767336730993747478799270900348951830936046229977039776727411850574624798121867466399978421694550667473717797116867086055138028360984934963816701669129161058280025610574498703996858179640323906455057160544295217676285559721814240659628850154423239642855205700096860039900601657972300756307914268161605652159400489505054539893164222702246096655095806807026494440465059504109024974911593838125876990448469861725737281870631950859511095486009935051077432170689907736344621363470690559488503039871271801472006650020282565979078982578619410588410981732189913670341505110276700334850491571564367824578131919805896093631649327102435877056906641164972717361782092708041268895419898123481681591533352775830584949409934710149705639347840456093723451315533205123002355503441675471880188040041514063938116885763067588861463096158335019822608847831347776037376758568812266680710202058692004736957110610507047156441141222713551885439200680029507704707442448837176325030500180893412896748815815447710935382251686026912674472905899744490149151870542353943065334156691076844536169671803703677589816074951934708154202753465985804950749815590780786579646135223144477150737348165053665600761817904147155146774869965610028270273255080275948761520842093611143773807764671711600729449094122177538213130090771873753137087029864579182056080500341008994697114413080010257805747730844476536698740145144875373767176786265282726312967714287156613858140947282998575523263305014162114368775166446889570871909146162881235923686258443986852211494932445094294090352010947616089749958208176667109403745690896837777281501535609291959098280622152200947644012196283222678832596464196085079320693483012566372461810047463606677214698508904636175160253995401527760646618264450064264494982516281151947292027368622869756196025368644974893539720591876069139004105717270039105357470644145695174141412025219649887680222736679827839792473050671625474825201535973058716686005946349845777427339546031692065626753241341016088938359834374609713871809637076383818839338412010887348353776153719838749697738761750812641103862861349189036877319677393391339374047036818438485463304048580338326794230046415716547288588745080108144892702721163842265092803042682131026625147829632558480984405171077163283899484064123016657277524485511571095480386460737856956950562942566019499830774622036175730948822467985963351021336508506414342541406411027522601091128404351002574163299798076431391174098911849477683263004089129099175555486848685702337819281555900435910640277975462383553880474857165161627045067138460291538794595796321858845412513291445254072075715672231554841439339915765813484885378509255374446439253490451295425684920796081814670071346168147587430982892568489646853912765062867847477769076253341484302084620099236768689604459789806990007995975700070292166295630648793664989692983779899714298404316288133868813819381760392592562298330023659594949322006777500605982243753120088114515491777811576717429117654878993758602360397392871384636611440868477335190416550240291772493628852571843794656487718193547157964340052091456565593539417587695380125712840062949654382646787958196807576178832764347053639651036747274613242311116007802366084933380676357556902502712697267483257289902213524767313877251826478884472616899719358716139059149143741387000968533396021455949566938770061976344159436754356835806518356749221562533056203366803969640033268852883659991177117575793451121131182322670867422543666885909662958691194657122157738645205011059274553858075927577709952605525487456688202376393543134730568127860844054108942343386160080962846087828260117865887382779960170331365007263248152165572220068205114762004639702872717737960380766804046842841525503936113179205805766440414114781795355045299327498772942203068202757854792056958761145063254570073395496949031018835558137278076149526762220223802330840610126480383397893752325273195482439370299010699497464554807628284334410373376719700511388289838801999227759723272412184398075216196359861148052108986847010701415668127657222644863192692558961889913334806156164636625811164859596344980950607674269463936915160361671078054511864085562838154892125591434027075228541289468504413691210315543065358239709256031217906844592853268350112460754368246348531434574687639941638362408031208774181414216770041581370710746785909797597184029949846699367275699043571150573683740339516842456715575776033009486226212952200477504754169534228761821440660371047888518125068091794605808880791702540564912731323088644123866539439596182123902573992128597165771813504941548874559142616123431787907745050688317335708869169351081573353977338465699292239185248974050657465560415203025600524863136648823570228044459186607976005961240922200972166547677566013809266065634762705680326823313109453485148026650584782753112371017432929294391651502289640916706891475608770210873003386552853065567732432396379913292581678657327392847740740983220424986498086006394271769589766716996439173224423253823361198987906717001954050457418299441297926607340961729870680243959130673430837184053142067788762339189122335407699928517501279903233276085803153098001244246277074056767039233828911636319986925288633201535376649561923109058530424652256257449864876998863360235115691299826463745707289763710663844127320038606321548363498157313233416229935891618211459799469064777009912292336720346992798216892876598926512942366986901674967084127028907490230636203561992259224764923069243650238315042429100871840232269936218429963560692256601113951300737688428457581718213736740518930542725144761951273507760038807632654369851660676658353184665313104872585520089598706721411423739777502067186683356823276157990186902111387641658887972518014439275384332838640490536714722821458734944180636962259432836911245471043919698087892596601756865058943763322199154191288387753997795661510301723412836975184763596889218619967657833923260656466575094886946433063335837509764828293243968611025410196891061478463407099623257854072992205894351338579104583581015142037618349665052540930597774014826353981654509124627027872832269881204046693956398070238426937115080687935843727404117710284267307349754187552295325741920655660549871726134529993983509664542188852454030301936518871289947345276829202907537305073269968252745792790000331811202853318097663324146547435351799382039436360503905828378285578650833873920872386833583562502034851112382046731367321832933621953262329864367488491545745172373547537895771373665943570885389997936750747126906871465383673718499510866892778585566856028637050739538310982513634746918516002340858597666437309197712160642567288897811913912393920834547065581839405516133515293058555433968724803353536641378917312788819631060484245109017421084571944798642290532354045603416543935027009458767495739404121781303794813272376143076614001956148051777493508576950154333505491711879384707810273379465898815246926378543264800935938516425056318804558725616452882785775844095010547284002265248386952037592408088206499648395740671569619528100353669048864932170549570269280339468584361687709352217358641519109227063384921036454773929939762769061631884329495167876181136120061646447206749597038879947273319764854248043033962961082719126485674087255498351769533960837308020652635709199716454646290231735374324560668049070217752246928027156514941386259410557063327884727758907694791896299835366034074929351675452013786380548142610935096468528091924587502110839143694367302414108589073456888348375223233249656261375169189853128391302825171757720706549876319842084722363362579374255021933278160192802818829303268593738417131147727619225678702889016127265950252805330852750090920123560413140602805721519284648062893381530052280315483455241558044233563575834533544490156812100227786213779864648424534044408076490502337997930304420234188385330952237654222477629094049177096663751227771354070565068766116647721953480897309604456395365225621838478671596504849367129493211642558347948161147583782207771708442346848778336634964688097661576215550457887919737440145076221963567030931942525843793150872655171665182354207924906801149671824804217479529654238229110854281549051706633409898376037663091990077412774852004010526011026547740550711956638123226714905942601042306315635406521402597599348384228732532180554981480222521074431867669627728454109994307130601273712684731381200843527642534429068494328967559406177918554786842635002418288557954190479882595615726894466728351861472104739348056719993233968187623748237072486770461498716217175178374300744057278359214440616075118852814253112838723130416239015073496988917259491223920216960273945491224156133473946883071268870762436452187098121539101150710259848911961269196890451196263371725762302075760905479092130633016279918090843254776375349417125049329926209098965122407669771473717265364422246541141565764020708722106989403154991180380447942218701853298938899470463631417487067603141758385068681865258178300314035157391571006823367439861026197535126972871739453478599457199520495749368399209089897780607508587155633569133558565900056191260240897082943822165964194503589081318517011824654284109878014839631746093008075463227991363782204383493724135451760513868844657936544562952355442676666392223642694842104054577150941909771086409496187847260460230696141558660027924567753369404698413267635714954175161012906999985690254276063765263042188165949652602897723475087277563019670915158983937169756519060167175161927212124166522924217800487291086829298975025387290463798473021263366505955787454941272897140258928428819552687773652208682770549857135886521478861567994795672467666628147307265091317611810592253759951251204958802302001297516219218923010977379784183065662903375691388699049133664410929460856470044999753495391614216560221373876232683315646137311311788149147196597317157080962300275303838270879959347479015348558097443814773002138967231551792204332889831284925526371742767059358472819324343676343970538536684167942745522525676270159890249027624910823610920827786158949333460731107951790905810650861443544068191049540944686430578199669379803964183764547072198271815409395308727562065219187178958891775172785456933302032089322407846523412035111804293370902243111996670811275976026786234393769611156213402599705820727650210239405794342478446138212264971319713442724503807241226646884206963439618430509432580753825554146608951885807685836148615571531315515585991403430724925903116311722651533621303836467849624089057149419484550048918937299297597860657611359600224256995570310662194740941521728981179314738230508681780064974512551066186776225301622191645815247794733981059909008760092940420882909560028225389843176177653904363342327249964263280471283120986627223855483300245084829958627085547420066756010760075094616641130886020554983991794485599078914966644668663881835726008640186126106752345896096228213135323203727150767222002146845912808326981486941082704215781361388601166109064482248224382353123157714393495997307958284428193976782897852442765919866711882630832794314632078625749573048452168599308817191240394409720833009260733686157297850933383816481122835935055239443790168916490753343168971552732522747619806436891764185802761822740350558418178524414917134293006473011402471039599752799596973975444556496090368858467745892679296074478687663959707066437844427548667253186742008529144556196464125196034221170612965488729811087193519783231964076556656239220985254032912371351834218020415143458387989745855659865040319647606779208178669326445181404257127937618367209788959083562656078872610064015686372849082650135782828174329039985939145459561564018753123366039851061040604951406430154621698813857722580531304491929105640193897873251564752451114240682944983580999686214116439087653648939014133148684144722051010313922323502790097244999122558390410993256456741663850446014606473120391512917368725575199084898598264579098269891121901303342687903816644693443774736468663303482000216402656418806045787320452195335144447872770263404837332775364341884569710980343451398312218798453179407149970236199051151592608347675134245415723367707305613650365016013588746997471490246010823659790571428808490014759235016787637641551766688866778171148891649882229344366166947811900087826390687608372554554976254270970890773453552961290613090075151541429110110024087272709915576404685209035632068513599240300761377009131149058274964531428791321525213693161110073370437412191021465735223142282369247622478005615916066427679298431131461144309935149241171106398968425087247189471150456138303441373011488536421602235424732895521604588453539018592588099523221606253181063353796950285837318216801739112509622636063510128591134864122396887821589323052069997398224750343995328305961573812868709600896121788772335599198421034363458229343067592549661607949218618557623395382040061157827489635849219230249033497050808002448800532456293675236432711468478390805030182998860236378776753542822554932141917743384640264365567263563631095143653123116894302005476215100851082637618289488910583731836604982497735316141292465236173272189914300123225415569755469716685619909853480590643276801239515499193571209730785827298731868631515433535877806149726693010115768098411730208892222568022013784564372470033891664124572438028738218317661710935460491925409385568023962682841673485875630319687792432215214197040300802168576639958955205381928606651753509547287386622907542656201023695553030017975582302216177129693718503115305180918581749129197531869846056482757776283374845196571850875737996307606864417966085986839910592132184787403339577565272001746251410775805469345651867976198197095567404986355431015041064879428730407094250862328330471077264109637602639622125871762048951014976349917894912832490785279315998636160158190215406693537086259463565849626857510933329790668059717988359952925984099489226939492347774489716719329650151555844798771471563543723031375392664235940270387630726551596584167870973422870189123801603314300023501088610511593605822217187057737633441484498580573880319966864456802718808445615299582166171142834259986548805191552617296777352078242925217789026078264024807471026466186455765264509051259443830017870055360536879895318335020752605718703147799256649351798392885215031190779100674406906735222082195874350799876005392953534222313000024447324957397204009436364292650220294174525745898634363716876951862363255028835620878339653513434049720892592770065449488453349926273166689609326726873153052232326719279266335860533843659708153298599088002187337997718072601921435023941561411504735293399786158295221276241178539461830734841534716907166775174333013072584416620993688628611017117750381773544333772951470234254278979894608481354647576999432855965907664523571859411863813256242379601038946141744077989642727313225790457789781250169822614704984080571000820396980929775706335651463460722657400567890419878526630368265779998093808667871944517506465857395314008928945321063144726175517250914725466881353427060230436049759557016922911756212834146157557004456817915911883719363319398625637402161762242586451340371190436350739154584706481018721241525096288773164374168396053456939542256448556620812032877139719966719077054602727024505029899362584185622538036064243431135404079835589337715962436537780280365915364146238925859736369363928633499112150656423596045284520201787248840407758678793684090068492848922862696631719012157733202573371417131060906368833161132835400780413837240626295389407198624485373768752036547429267960738880180182047811826683294505423900909115452174461058081505085766656674413175725712656711817231592552890640232606724218284964309870582317209096367595491712264565278255763851837231190114413228657478978508021131705744447165810212475878386965369503760528507228888785519308398350746703385649700565677171288639267845163453076407178919200129280225345823122450814968706001396203484437208006947524078840088575295454030292885151712654807119051692165479483187089563788299950836397651427438202582440907353891127379315719286672195730434275132182842884742444669531426145096947187557463700032843556432923536359633198266134323597233169978578988416710201766951660177860797963236432580313217765449222256954661217983072579353871050902727554710038375180828398134235055246497292362980665014010405762637191797897712584788065710828359679469592224251530614140693196180682723796965080699774933528119787079841985870469530707509958230076418250136019575708181229282610206816468549363511396985086593958345941785898734239432285724455322155588289088342304831380201285399592776942889304655694757635153178599022323643706267618872124284061824191746307760527464330636028216228944330095607382519187611753147450751588726766414900439950875562299243057662089801120054329878636310735749584515979918617086728074343611115344266716012720787453349099915135840011111363914216863857548979731448097682809904005892595048034556979264245853401754643312108544057240763895419620254417433502851386088227468353558471746542911110600720087302390020393996960614249081997992525611184341411727539003757347601712189317017119233765551464857280277085911710543666510840616268874187175824010923554381274676878928822941975304440298112837911281861100498506910241549395979545624747504566595695798008989722322026546791777338960779866916907050366205571714899155081569854163886718449001194656003109732224585374134372829392743575189601095611317805494395770651219105718680743651262200107186903595639969532132913896719877623654856120703669522581840656740859948202503293999754647742089713326383660858922565275445056765885800986302884030961141852294258265611200475779777014418639827819981300772206588712316848625934162377183405873747271495290512267202487177969772078325885203226119106743189840003264786840408605443923499712605035462551585161433005880025348795203113668438529699049951319763298642423511470114738861896896448613356192337421203444273504579848973830063026925223997264235244924673507148055937552908664726277496869236181060467683445182331121112327066001241911106980393587050934351225667313787204681391541144547093520217326734678595326646975965954910815380275830574826286559615139830114371753655008327571554909898863578599664428544105695807948727237484061851184286818283262143401060078813269947104565392256954616944276259534850962640324265247658779704610565133730241001020815076597318328855747382105003712966816058687568557451428472013727174519058257987272343595719041453448209475877668479053896297373673070497315581457852483851532415822412777998289859958533852391422968907455469143437584444721392471855372756060823156570190667687541806458087614817352719096085575120533905033712231683622585393171612292656239818218903289524226587955160607275684307241627175646006875651653377637769482420777124785309362008128157481188606672535432041298719683000267018905441950215738795555603338704405006454516190150405656716338450393720746723759566605336556798605697911202734800895283506794220461787021901425983955444117081053142528761775016497767757751596724516498015052327521331754341018166343669776141855199898007979349568544194865090592269323319283942906234047606030870277059480838943854686092980243432538638980577722496761282343253663550910580892719493351315266777197886673002617393833473636874890979081688433629063014290204559606032219218674670208710025236287628118879861595084880419124136728815409458557860820382128204891791534816189570971921318127484816898716230121496030192423186692466548202772009653103182941790876890930236077512327728224210826721243153258959100576685461343465130379180971147169227941068948604310654467508444057955885482132550753821166376456957974294951594651695987576669547074905955408799283015445977331503114760296581266062379515186280152874017604525454208408380019082530945135554589743809856861578386693933472232004702017647073128567034970243249706170481550273757976958414431299041415942262955772318090885956735085691450974375423430538586272085750758780723754742054641312557440405749605521090325971570182721838081516789054218425951445133909424762748928213230333991750862613423803155310081437033631074903808050040054799237757866305485716486055235477664809312451969876254611337149803819394326596385966779501858248481517289797809444186160845981743582842337671711509198749843553767429286043665078087998745391881860705066049681974172582905776256479945172119075186569031013057909491983580114574884898059937914824362057676370038267966658135351994322602581899999331948246565655888732275976584714091476613370964974173424249247217680061016290811969412771548101960382835296062040064990623402331634686760606630630584245499978946144238243257987381419653462450961810175196274753124565166576732698030668813158770952387539062259196559328106236263067659523366102263046942344275820937405973054771511668859903801150217966107450473433726658942591713909854286751982175786569958359312178930615187315791356645814601277970554590992145167879385117145659906797780740367582647932578168437305720535150231691971934187601511998159005336063430099335734846600204853553377477017364374331127337536728295697879527098815480900823100998916872052812616341665849957375273400180594337412271400252179289084570372502936928942335926015675249838605361895212507987621576852821446332193171230006400112586841851690423040640778788644766680796206369966712147914661230134389435247048894573870316160704885295684236323098489803414972103677695407540064233178675886742464482549800896286794306110811156476059853535531285834328345116551059171277010300541657171477517316292297244192042831192370072782185529251477987546890948535079440613231349607209103219100912042300448775072307616205229244692062828368018468186184847552967761715653257034357008159956856504827952801957873707742841058468064898702134740190271327909660183048619366445743930808740536078700440952927105763687699919777024847424561266371670358876133258057926554129075249606436186095271030253689913352768570825194546702767020735647137178072951560903615273007523802511271852457914013798184682594012365851672710958826412040797388213868306353843375202823310006418613224508584985902567731034422658422778763830314826984512876954214052740993187792769578750396280362911826246975661019781513230560212634459260526404607766836778881021676417890637991543388506737507240449353091684835220442481978227506862158310273353856236640155343854587064729063620220208065894936280905346070286470588972063951328958538552831410510693816136328884760574807524406427717120281049393309356909083348736419122268107866251327388123797719310090569670850501565510141047912647773723401638573693753298807216816960161937307104319460165833118889557450126357347261106050925091879513986248938381261658767587599114915293013142176525990836156012298860506281600338016509452613132888826278063360334087332654143895597306894206202779261737571196846923064557610506727011590600033527965504308653324380115598699003907205995078839373068758717981502441011792645686330267961452859020635695160190394721007327436950859653907652334779171381760693119955483318435376854722945554025018443843145123161368146699778443412961706908461573006099603809873348020355498939976226608497225780057196048258218188409935522536535216714176945645452767941362550450991296399463886202889764825437683361526705006948941875567235722811123062381042206274417370694942147908430644114276833065656978250404176637344318981459840853975843121501894457622875508075909528645023970508448039416446160221552977907914535601070199022113811704767084447390455808172361029074501844052619436890087868262646695200329929495329410193610555593417256649367788093774604709390817444493922825807865575457549464414291510054323333457412259561417794154417240618740885364005468095510348101017301377558938337886762053868539277490063355201833287501501410823206718865497603929530983000192559086461534779848085015724477202319191793652496646429075188851690806733658839619424788776402252180317464682306699828046418255719294618675319024128197729069712665993652539985282304016918076692806452134775128185850967101436651530321897598183310929251681934172639373427103069378516519183522604863712758607401894071134625127181105994048030471099280107385285386387399501983079487992473887389826981716635021616603436412763316768728066585353721125858238066938387983769082170147827821529979802163008478081471356110612370162649488751113018328483825508403379862206793957227205967830423345482378107116379766762329290424856390681972836647064545284950478485141389941364453127232972190321469231936257657097520910524876898741283474037534212869885350566612499222247969771836988507529128657837978097042915147123502017296459327557224553201871415323024165043507716748909146403849052464623075744854622058527703572186948752003199672030860590533073599497347552955669988301885650105077354102912515885604620227043356512943842512947243712699387946964196344994977192123343656607956981148974327724823647748121194234318973992663508189736456669478850507732684583217320373335910744240301117240682918061259335379526135418425536258627333469766713465364682476402346609974674057346858915235494410648782085161228710455735490785728659732959288446938019559363038151163798307444296243119900729875819538098452999174328872403295570938684778018582387089241370018013733050657622536694662433321640535553803875574929702651473860400533268128182456953125982952031361938383662878500159685907521025061480657264341379526552599156386791845079097812506477941506359265784562392782786407849731388055010907124663283423737531678784644499227623255608342652591689797205754949997929735556609229083172121136676135233036160193844212767986454956528475092307286478750083347721415099296497584024383618818421390246754651996086933814411262563155293411648738689048542798861763600890361433525146542296630090020186327174230726214813611259888656302756490399512699894765332777105189296867799828583875643018426235648248210949116186092742710522161077139728232106311791095002311154995173492214661254129923818020112246016363316570505175628329147511059475381220857316509725023708601388953238065889532659389347877127134097116751777735090222370482351587709534039526225884182071576840414304762580849668169143708011826697163489045236997581613089142181033910326989324060987795333747043032980596669451274265368053335153732487805315094030805392989495308706744882530739196023721724243117274015569197202430333227831990305891793091241762638981368965843363118441117118414322922652949444073372494574398370814302660147130233220755605099290781633546452966016607178494320272285074729973254999162676840488305577398728427113684099523479684888571046166431954460329726166204618218170127847876460354841436497531341644870655243087961887043625139116673409561715555859461144556619094101541638799863016778031525125127015309979138390684776047785178123940327169102793352817715738754701412820001775028260190108223927319244434302142922743044016807006592961713470133851793644448230468628539600155168852919466955014344294789798950951497292109749731579319415787286232881328330954624071651297773602405425817539362527640519803594539329694511529901391839001703873627164149451175404839586968013528713295943841720008507104807115458058651745033396370256400021442853144704823074057329379913007852119321246620008354111334224831981345329503155676455554948204981114870263811176578761995241876128908605391478318316880714723357551421367862053423851913329738837021016310317569591825640738306894134599096944111612801124294578440574254584445757441971532785536300289117441196713671532032107654066681719394838237804222663453960170732126536016123466735930057394676289875349082354221281990965869427253784971730854482470080447540947303177782713594413228557285787233563092302318392996705950581711655057938695203927378591589794595094472332787690216993349815546563767419383432966529970375213816112764404650645389371427867397186004265679824103396521950134316351329828009054776223926468363254086248110511450855828236537958974801461155883969127476793662103525376661586920872013421918446909743517689051445748482961847071289757539911215134235319774653215324177467277987242629287726931659052365383441517806262334788943517908669327500381411834771229850381379981448374302074324072551064475080196478831549306126705185957029372979214604242574620820286566196401628295036538704069665999359089866207673344519111211678958861992996820656253037699295785352651015427453046485749537107264177623358266650835802776425187589293437987857964633608246905026189630364033998357265006432485472909024757883726832254308706152199807981825718044314480147435751834956321476058189026677923218271399764800446926441307994626955509413629275007503625409733468093754074136566651556079437599739806928832088406463339194839435455340511180732466880565061552364738922613662585539099175371912555451475494276774621076619773359568323595039469169818538258845995807677235708867384057129425155856667661243863923294504968795656058567566774630824214733971828938162358882583276216892712732337276783888031077282526432883325443963295180847021780793943503605129077450682540292634478839416841504414551984654330746619925066146974838648661717351322396095562320043906674999439347517316519766076107609266344446470999137772464681401862097457509844682585671041325617754269945694479184082084141456529679297740493230828730651807375266135174784831699266652584637531740223911546140687335145915140723682193732250988276989829302647630401634509293749203928995659430282928536462136740878283422498179422538496528611251949396961538847212069136143850509111426261311896637798619797368891938775860178643539167915723477165062984127188091772675285778180392234100962574323996400328269836994415854867097280918980141758667526655877158528477899267684542112214541413402848614962397402869216432954270493005666837666833304831127057376850262271094629241391724898546013869068135541960208781280246040595813080248195630455502040522681895916424290688446343442726294466130087094273718873507565943295098631239990415240338040302625715785642015063777824230795981121875232793576866785191862795253263719624913780448262760699420173940736934854279858370475669292037357475870986326546187481174026780792424283636023442732764006570825712712612651772288729600294908710599611827171052159870819947848952053644314145832741974562088053659768373199997713155034898930261863652457221469680573236310574886589686491948639914580036838211674955436409496896601726141034668505830286835794649429806773339262857614648503540615380598934051509089833693151721953211542211324014703144067268382903610483257613772492806693774804724994584938979089155931032910587991887964579177656479819784284972394723815919057169971184950213711808556407820710669565422707864060972587237369116499235299241763160097406144720693013701843361778668621239391746404251288429696606491024370371793881906192434631287049581326988362311885247306148711928463169320112519856857478558416080853072863797152121995519419868470872018716736824218972770464344108675665315175501621300566806341343188290200361839701952679565442600219585907214314647632661458149401561818079839425668598663684297305455701612255549701529890033253581156054411233098425500039392735178344133996354718730281694322312682447413504537694014711609574849343193229915405717495863447945753327458731979824831097685717299125373879743463231646644795763341149247885642537726833489843463689112540088676564543603064588739425752849325553322524590771645754908037616129488300521976204201715323921153253628144663342259272734691718398220262506697523957586642635642529735093087324827698799480960029159303048664534522588532513908252647018425590146271689547246419141671531297913074499075773543611641151531752808758674171491183127782156654072871903015187267810646774201034586672581604288990568880192821024181373946917580110538734633253819624410351605471569310956512399701243139987996213940568535815680336517990326328416641906874832260073246952893362629257697497521730167145578473667666044863655930713391883481256863851478971758262576826892315119076491630437678568941794705752496486149631386097726219093663173682866073286137891318134868257157802463347373517934506310788178182455455965024078330118287891722421775286050740678855412396865973607616765936752755640201729341877748203617816856074135132324297029713814685528807205560194405910172094976645693580376091038159148868321684415400817981438677214089846875055006816674971093829741995269190114624039482489111858441863367843868879373917946106632002140749659750493425232952922957812639372549620752460269783657814083581773717843240245063072297297483693876182713700489281566046785166419247937140271697513944529523940212956435159759945881444558818151822174934715717352972996983124183705641434663559013778079915211968079651227968656969271117687316694603174695617377737071888671176486334504581463012991782862486623482254205635646617286051306869234777765155969528058520453223330803344626485778440435770456721654126147048692460166057256826967910630398311488685884165899657019315522550606167074453104819882532742890524457118153369659241583580082462730075434421575611060486576367025692405718223806922393275573287469921846748226663576262949284132652762901817694883584066064915129175386315580609977879071315768196420318305587517530189574747468654141466541999815875768023965206147138008448273016407292987035048369108337169532374935326487353499180459018807582335580389045246134369649194358441239324938457215147261061123100886025949021009201323997541746668076269013210537867497211800822038281928102646301706267467757505074867053778425484994395683278355734860077338826497459078507312343355542235187786115550300393912788506190227789005500759450403957642378793201366789854984374886482794328752156493941507823919526252468959666003974200143227651153668267227800186214430096346321581202058183691991359968384759144176971015055712083500657003872342272842028454919486742838685282995131191899151743921149782671497281083652307063627515438763654520235596181963008090269970424280473370985809537122846602668384759514444463895239369339437829841307229686963239821314661484498209488263104282471799793629320218911781704185891523827947001093959421336738218755331797683003841833202689925904493509718261802190814913789108993141198559203152251175930761390737583064555060409887204805149627691299889580079624202087678232211457372727955294182532154450729963993786006117916264183626334804360730957975262471575422635987636087353870123072665693274353960574927730429351177146861648433928041208498743818681282653108202063234828500470655339848596719765179481289241477832172705796141135684769010691829151715347813027297835163376397631264156188955306273448383025147409469109949312601052863900315969643427476351998241764420551477776634108405763832907622769799869014844655427866141370652548122100257019334121830072449586737585025103181172222697430948958403576084713224790224977491814250713209374073645234550955498824273599860772446285817984509370845734924140580416684101346989105747594386001459750583584349568778384173423443718964003920309347543505254276164457561676461306463577281162961223052815493047538624445317081296701068624732116542168583153549996016118645145632427218431280916347743351114826526195037551330514502127945589604172740801172575665355407790873161230837080382438920152444259195239772096465672830948823787216875465031061505748300695016988136501837905967380635732059887125147902453644894100617117138511385001002338340312405124125696772716442455731387504313506326127321595712072133001449874608251059474154459145392008252682521902105049398991415023860876761670200546409242790659322095808959158915774679847522044207975091159301238723827614775409677513496750638173033411995482070720710005128598189880924197082318869058155822806209163367926061911300739177132962925350705190236576185514749103817846775106841017069362354914620202372870223331308575645966673737265343236298544599004614555377386170392154854525907545936393606698404069178706451744678316262261105883799996077487001204634011345340505713162973328080276456921262708435620259880263532103471843754851247663201613034566393582219279414685896373478755605666804782084413861289038833126856471519794557941062703717127198491503828015117443952307003653085555290730225020588922337259474278143096926958375850550620148554301784312821948707399146062151435392231205934159312345992407789065658956398406795220799503039533429075460707584772765636788047091192974058903316414941224053503199933928976746656135512766320500744761121172470617292559684785698609416354706413854468289765588132910946053508245542445727553482416925917450805850983607726147416020189165286229553914768125540172960199630388347405141373290059172604219613730404627707811472806047771345543324591699366349457322722949246743757599687941942537400443816333977794322548708040898567590621152325836940274569611920082608328598655725317776823620964041349823603011753361004443498548812008865796938581676443534975975685898878008728121892777137979138137123952688104286764349112975032451406371010509921319470764739675206297719796649269390537826807564124795277292645954406739519333209721608560584688007383144426043308314269588992774016266778885433412604273959442489922825905155897388914713617477474807394298477733277602015033762609155922404862285277283994734098137240486499082859680273764020805542002336854935760291655512709168757278659780848576749898022224969921268520197254377113731288154289832668048086483691624710184789018740611605778804684416483112763870265843114525719818179292290782120283555809676012581028978730262069453965042337539910371931835537789473699239634179657809164080690349327223312541262205953415203834727721795462234478087137364474987163508954825039785613159574005659584431946102744522511559363500567007216635821455679129579333864140414001284367565051217126542397058214045057071187064055733809090740469860759416522067068215458629262360861521014025048238801166637055066052729682441568812394605304483733340876967792369382982391740287312021309466010544753486577230074397002946469929339829433204559921973966602656743733102994853350956240015552531294694622970434055457688668641007381721501677991137254918312102755094287828261008846988189841987261871896199104958614031371296776156653453938357190635356984127061882796074284248589597996350114050564430199177070855440245228542861301012814267331965231669070099875584724502252148436247929973216443235200354470916420205881652597631793975337308669377574633948606087635032168745111973999230450526668420280196047965900976441602389123205268832324425046941069120490808443623619894545402595885671815032866433221683292568243519076061267733068601082862268252810103784411609514554379203352111103665071462182021198353226179529783589948197603835947345557734517680062644283140240631062100876260200124309062051551106348447375138438756332822075896883159323268589749641038883848793398822956453129125691890496757606784715288889822556738324079102148942302621553489642768129471878027783307573182154643387579733177837768113684740312213698487813437483279711120984560121802826691848652948369993686091715361322780935562324142179920801061740625263227335494799457023388750384956648998969217711142010997451856074790923120674546074521933946421421682568939120834973020936089892912330462207847359627124193763715791495125510699240607969664941545407234623943026730782919703364553582797580875538585475494347770552363187103926566276878522314002301648816075684978527405660861082926777373007983965389734549659495757841018472178670954528126124835066946958854738899671791315401142763261724864492903375980986882158019013942302485321665030453157332802499316150051074510593114848705580676482069771374954900674986254519084368033229603173140999552476690952915654980184741870222948223773811257258693044795801903331703204062809973433399228626681842612936825974702327652031580141209668656365442572974562133547176804013373375959790521093821891018602757348059370872982964715678051924675667138794350741401172202712963360187665151381871918635375748441750556354043233750706619444449341361427538498588256631795091875231959123127183669079526808489415418294703053611948509167851136121077510221378533862073781348693936535326058027929080474060629400375946634513493327158268642942128259169839315060108782585508899846928434747059671561572465302809565271142080921780260893491664351098050860352545722577684714659184476831501286335958471580784378247607726548774931043264025747822111381680780148861119836929699756146666793224322277126689915364290716673667793487016845493316378039645969078774926882958662428007520592948846470492284520641426470862125104241538880171263766226420304303414861607464727725559317978423130520234786024483672751938306410386627185067184090575145203314716090089775324097160450665476053896195377480479968205928567701068587486824380814191721800422208537142628333463723815244971265458178322715657078493224385033431906161620216302668814969865930427272168493591330248317402863044598962154518713668620241883967324971020191439026098014446955674828502052295790479131938098523676260670744189142542764810307594507528508946979745455295853231118535798112265749404395294476726268435071901282629484774305137333465318804424069304622485781528596439626965618614539523953616196814168710891004621996611370062774099456326203461153568171619283328732443492450794981330780749307701345087678539147271266748360379585941961046072481592919068845672880734018489151189702277195485616674621107335412674474066273105020375577082100647827808346568489186077640097916017899623974259311956560299380121917998598771548046131838354835873020045494727329609260862375833366183254228582249117317208469957013264238443950579032573078806617538009203005949063362021112564253011624071508375128557922147651744224628584181568732651830262442406766998556775004495189135996785928841869057897770040120005349788276492811214955312386094561283888281489308299992048757298922725686171383764813601261552239160780979612159351282449358923186059926054055251041665974832554259640819003329826017856532650094706726295997687533137830941145353152923554510887580876269733118161037568890463948418358996568051220899883948966159519168602283416288309870387757455776472246789733801217056268701365580778166720673873118272891980973999072893882811467651220654289301753330105630833562503175624196289218492669645249868191326076294436937750334150720722947555930067184537657338827549080885188402571545602466318863060629406422879217684916542208301693578366275246475261096204215654624246157518152060604489634986015621024723117206536135094375457357990335624376388294526319604729796389791783624177534538354554388836261084667375839015252794699346102339629374664432505072016158545764907835970495213440453775143382235540157292734042984250683192547157220418057728027954276103348038615272883904324629680482364749950464372855016220916903447775194920209671822268086225640888647567513975762155690094289863786096979766965764839728817715962998571916819074027465760606472125669848280544945559645441113464922850727375038517543553527536114788442518000506828557348614642209164288884004617001857044688274355202652168343419331965067627694329484095836655772365483199774339070095445509951067142966439019071078891553287530264638206774115885410252655314776809682346752570924028815400014155505082215309762129602492094540112953134174444852336389784015026389900272306913598869040965747500159249751551532922969936763800966337711249470535784377160015355592212156229562306849109123286071911942370402377818508322085733736157743782815433765344625225022877536221956575968210899501800559924942061197245484748789841413411102581843810871754285975876871922267388618490350067799447022761260750432989602637135830441240770570249878778968673928962195697000381823201340079301251864784335701076946433498180304488739278320392341611877449739791354173868093170168221436381336667027605902770406031240498000060466586654839100754249723406668524765132865361967278107340934957184393586961757225727793070524981380549148778933632635247599070791406935062698222400905157363949902002451054442952282958504440444185557553002046066949466990459026243694488145680707737109009569172922470038074872395820706661720255247407208451973400996102475245692909953094974750492147325695017219224001678660994243407536609874156565919427790073177911797003104835777890739092030172911549170287842243368125715955724056792831388950973783062929179730666954396726642765816414679320276639977304797378265543310899908738644300632708526726903007219885595765366039802089576579996687403301484547372145184870323637017127355395877664143253736217916045730213177316758800685956550730491528484832943138132128836208195708557153295637245854686793861901263564186381345736652673620053638335580694029548709126741396405305456526612124441692198655622605786255504997723869084026846572944699717721741802624058766739543945936153659687659481403357746476308759337817360768450471359415864733501415888562221392121522063402284692513185177989076050241265660870380578921986902914878954441588729000418594050035251255906996999849053822388279888894236227699142199407371904946011864438753542511765597282105696610387169786939125710193734793409973596192909532348781761315695854596131947877439343917841003025416278046601347009069850280897780899952873083118530835330163971645273342024972402490827156619658581622809555554509600415958241543345925805962184503133057757847482960599189063703137384078303165255626981054894643334319499849487100155581673366406363898567141796252174057170233658936932150149226564185060580941623876678561594872028569229914761915578142021031665415349757435586154398014379509054827873103050766098961434990625475192196603581601269662233034892848942342174638188179803598013025792449986707683073233398470800247261587467311225615460520434777661237045945064079757152187621142362327270232106211341703096816332154853608632359740209806463267377589218384181446693727639289750640809663099758068025178533136007210153127295903622136307148229322514624233114306084879283328565970076685938752847625580963046626712114815214089800265867454919721037711712340828356914411666699648725541625033476479225027578672928639867765013494250592426286132546364332657277164202179296782872387000544624121794117537488840652817456206167196824633519716949817146135571319008015859274547906165221231238075796876148806400319806904080737144005379195523038415958825010473196371685810140396855073775597406585043021275781149335464080703100353773042328114327758357857472593505469308761907488112172249327053985660498102242196714011455842870314563963456569737692473823127242672343909089678603122895021198921663505574974430361832435338133630638516726467435306267656384541356702257739315346734611728587755158382551525108329253764035565774613540820185731615757020663156329816821378762476060020454709919270089918172568413495360876286601280851832922827641553809468862025296907838821250662470776199838140997185356946990166465257723179192092077987408220056503947073293616808005929581634968382486681281773711771668803477026828713101657117920898213580192937939584088001130493326429317347704031594764484538355368429775238051499799816423298432881457185574252286098912672805640953203316631100349762352251437800632126326507544052663038585189068646386417611113431543350694854228100137981328837582280957226983535546641229820046141044851251602657165861980305105622307884074566760347575497598620736121104591293987251876404349907785819456672963802651881207226730329595198151428911386221811138179459985990905536574362021187219121562580043243150951201424284467770528618126351839374739236991029594366170969018332275916072603271560877107012680324716758495337847854718258669784312100229682326477039666070999829967422547124833980928426008437436775764743177199443848400012812998271353116223012673186167016938144256493375321911046804594286319436654629627327897139452632879123750683452381303581651525639467682428114131803542749195958167509025666178303357402912347094556711103859334979175061655464574264432458230547807821891341192643931334590145542992913678873737231257457971125444901694130823192441093503878461945192115069837102962878288296694941596342828824850218568048700373217800110587137124401571772552753150107505581872952917154522950721917248677113193878283952359369120190032345913637985502252241631008031612243654233373444641894270639461117274755936784787823973039294597905858731732680236638469825790671765408749327522723826489138761365051957710819144054785935541221395389777390318895004346141809331563831488891958509844383855166659829252168362225080202078566877104796882775086568279949655544828894829169127095595910846639062866676038310978294488157050386821995711360882205794546023947255499447864299971607273337966955580608601986216113456717227357490951510801639406876313219240255217013854649930696405252840055149240346789391719584555915794758257309703834707641683332418009665329714159115814907669142787111420908433995794955684218817826948221675855633047435165511020478585419709509311661209973649530657931428218648817315965907120213654491122528939285022505824955469989366765073321568145096170412446706703586964705330443900022623313631077783367295462961897200052943087831625134327772383784772341776794203824133116562091150035321735339008634668370320483773795491350653688463488483771837721710345851432996770020292427525215202786579004496379013725568385703168664828774475049355093486011958154700897886676608684872908162561669438721825884219403265036222663531163371870294684839717395675606149581768324780233238492137603300437605379468219893835247918567295899305420380348374122184205330569107781118805836195216177899634783053962500754121958753820199714020240023024980821617565200328482531963452606975807275249897547363991370694598498480320058168787424435062327418058730917183323790562334885274417416813294617322155994468834468142380053187053996790769423100250559870688813277188159276843465426201882368164420948500528094406573076382055617791566388863322172483877624387687202980881587984908680550273471865258441012478336772487003629517748471793688788033722694467307992388977162948916941597352752459586493133810509727361472735192813428556066393773381544778071299024653795822694860013462095686357222124307747293438522173641848505559054395249713116527893883936248553175849194881942987194257839888430420223260094960895884263732100888381321801787185648805651557479157405823292470131658407774719237952761987435996380906544788669842461594667806179860300371873246935224724910360051719668999821731365562718831437883416378197245207124831907530332730580426859385548954921774172724476420999412957900335455456660435154573349926336887637534979376038679469845330915459477628141390210856669627573895138696404768240802580888636156266018525089869617489583507299589292230155860307301732112920736293794097090609005499729265579304995447111253540669774593891787153091263909693516059493749583551809375427015054613232484448661636853071472091283319701846461110178657168394661852645790370420267719019160476058182073947784703125726360201905016777544561432361078362105587015526483141929448826048399079772004772666046677861580732078576185530147318423999203614396951971989431479159437816237018112273707959467961317057871943282195597851770137104486445063086285049012206536830550757565990125185807550595147858196884309696357012297540382568683403320184055800412132805107743485961473135206959362468697944840795240555045381132384531063238338228941887284515381690996888436690208846248708825886517116953867468728709063944637462583777082899891925664052672156773603440523645300928464828005091663008276666584526398550277118637597195048997642640968194372646938217669488398126802157626627728472087199685969927015214321742037740641002267375223303004114597771005432706372480902091229688428767400372823953436028592276818279998275810219410577465940822786053831030436790418481462345611782978333778936022980360025372554330476262819198962724919889224504167334906922293489769263208118232579333050136793689354830749478007391957923878262910624852263907220398391928725961931353309767032439219854158486890985193073061594281421348347170320495239970667692368661770808605358796785454205462267681586487750668479303582309569819321711798953449412529574719878063406026156372085483919623342216652526217805082896088650973079768649258116074578750938027382609720790106735897692916425026894881477693464201426469181339289080521335438143333751095017793941748026381381695038044258005194133546058024262011368211674014808634499298526148886236129928190942746191808948372464651046301559930182323099913190056922053207058534576368281461695081977942968966887259040891398209143811010654435203279475196013285843168448804564805946678319031183742921937696140537035662785474855705884894931667764361878087635636381706001822580973531924639843157280604091510295063593290725449624946737327373495968156434400608248193177553258019368643087209183370743501963836346021851387007315630087672974603150568905137462049001575836516442464705881708891547910655597515644779411222026241616283167986257406378108397996154519545745337862293037144251480021706427697591349361950718668223885138247613451045309443048901963324075636568285096563632195590195685322408849680928016058332825758445371454746429928021667016565349545386129259034665808975540736595944840361587935470224116737204199458876764061311552582350963595588272848213114184303324707213402480721357430568592698219880359340184938431675403395274991465510550445692065134741458201416395784357340740599564731474374314020599368018986949645018755894203231924348165841856598965904593412049345026609766577160526956583081606711485924713356570873241983544000802241883652496336866562956167210647769179936714615281811616111116623456560475146787707717774493575623414666785490722081567098844577078149162106023215349037920779767996725464824803937005700062071798898311952968314588003765086785319655745599438031495668325323780871044233319234874770992924231272419353085007919419322984662927133098184872540004029755142959024535658219324076336590314333524738520443896355260104661524183301320375877595622073322570872149150713915789262856601496162738131833232288633687078099736663640214792161351234217586056106428478466600144645435786655251825433364063868912965967490672640922928808779264507379556228791406312677745990506045621330825582869378558164797963043002303654688464667911164758315547750060744355443823618928338960653667250516320474196756797019040789814883905965575359676735369367872466430400442647793675386422821017568020111158182423257125159520850879156022907493607163815946941666032483726268004258406732372453216332718040687292932498057586796169502263612931029381611283542527881409043692659768547598205305470198647812092663221202268784884893163716192155535701120019606449500912521392486390170917208894293715180945333345520168149477541740601150116844554193090829385104178006965156687562338641945075066697524015885144613895173489389391048232066955371886816386597608651867640189624588299133219317046730831741948566957721438541236229724068343527405107467536847356084060582083159958734110245624430430104482683813089283880083247674542656255029704792928665980353781605376029729189099020630059093310961589532742765306021179062069202343532706557617139962864409203807638674831424024079691156793209086810826878321056035345888609108995217803053638362583169066277723794245085965120007232045211922306577670801338891588218423230438493859206287346917545749991452597378011660424632949071349256747795673402528246228544252509459149252542107213074575509345485357943217379835324890159808735155644601399887944538784757452328168445578814012592162421853066254191051035404776215858626763652711864506488333522958440470486789655692142865932595873945329715182415084863838699029743114345630974034744483197563964686557744344762761795174215497622934005096444487813334269618622250079639488620387641545037755060299014313564972058799232497552983037077779638378370109974369273499565632196017562200432476585957275800784997569205471708805709142380052760633781800837004732852355227826265268619791416164379567144509411674698017034463345399202425577735535315317052522992727948675449726432166616680282068799889078799901635400226070967334079818365876308902404048205775761279934240694886853757140169309581334214487581629433359114079253314183038989994091708244705980133818401168426964756844401162703844140838416743424120027334289513252921944022851144587887279204119431919610545406901702989923564073592493607138960869663715368062973642410646049378487865537579406221148351561524603637754037222862117409475874351695506681176982888408423161141449200054109658335843216283538505473917909151097849506907985759902582962833192253791643217148920736290033066895047622134339875807613755872543978790871010610140730868911966171697238439874791410054671312057968528161746175034955832869409697107533955932924874615445240153535283797063031986052827758561096611535133748945140887370539520660505192421473696943077570019545918472568223866434369854238909815219609837765709292825791470690251552433292762541072264900539682597561332749094654890128430386223822676218409757190610967281663260270566596066179623483140392948958422126733164131084579420320503919532909929047239786101078995588420992938910357731178401319415244814863247605434108924241655357034804545246560309115289347193614628971644493887678720364122482975008713314130254537389721489659097880337526608779282064107258868506058422715937023217149671451876378253492245246993747808050480055658544342946778434708696300270872553929493376960824269694107696792749974584919195431109539674771921645061632155254068201390084790221717288116864393871015866513996384079654864457479552818267276987036234160111321738224443390344647208979948089952601115155353541063181982753503022304613605696581045220820687448496270787142372682538024235455655282854349644525729393345434595714301587264866217005146019810774776581904794884032328773496992431611128840398520811790052460313664498743480812485864528522683619934549341549536001989211388455999834502352340843552865179726190504454666691627317302023770831409484159317970233325146344895748413680115621923698651939815956192848205882713296561348912749882846615960482014109559303091800467419369444359865381899846455799863698132918132654139486218726003172074558901225054412571755485204904738994007400482900778658334011110063077348172821262662823956489319886652126513390238104501869223425361864609824934280344738363749701051183273061195765384547174768638740040369732250033250538955989953268957015639669593888539368968225973365409607310398526491945570250722647537331406127873008461871517997787189392646101895588047177134419338160923810111579241286019423998953003842341128848054705154029023658156209971135167012747561544008570969593933840687128732808435810762204778475432516589561683580328059403355691908448100860929945484055249457661994473158862522348520973996565861363141820660100313843135575643270766037421196312142387227488130490245278798937345496773580530919412735863094363407751463312897164503998939564141392496163335508924501980636809777887471509412231030705379574005085432328373250557145252956423634741559676045824892663447784743787044441140766078116014450323387452593282991089246501794884551278317855884372617945944246796241642072108267009379163454232603288822188265930086329914463853904087938184421967620501587616614775034395229460986966590298405503258222542276800963166537159313383755040832706968516624821392582764768841042601329489450223516510867455647512911540641986302040654331668486047526745877008642850594162981529430060488066985497741695033802498421106407294584595811893392904331436354953135219154570601561351507888157230910349987296193061990417737921668377108062685943832540339955987167357244855352753853438007513857587337661290261164862182383221184908136722253962986231138390777920820723372349102243853659129124483124162048459110155501046931454550557432734733471702880890377263502692581680808386917103477818056090756199550244976359055527370045561010041945060218578397056201783424476930876439643866261726590715571215128811096785031852290788585776191768860402490459375828989161832349464790971130300944532104801707130998703947539358176380162231791065069258016015904052313748212451841365049578860461319008011658774220245618168828809456128277034362662413231112598199131633892830424207433447611973192137633754909499897149971217063485878094828088442788779014327774701215133091280239838234821135444150330712646391362119934042746005423607589371887509408413599838366987226053166631764757641837175817457957332199492045160235427976833795380693368584076827315918144094870451084007783196920414088555953364524533513450043880826289787809324158425694008411331523227427985032751199330295013683931610205682613729877988769955514011074328519329752378205729838851520123256921956328745060316407221371208918115786335960010852852330284505771311165022008468913822461851807198536767762491292930579261530787531376996441615676991608029181925089298674398695017641390162190428754259741693698617204882606150992637481081482187901663424802401382724966281586134214088717754401526820053804995418939353142309820865307079746183352103971436985033815373992137885483357703215187416910215678979217466641727838804808846041638280450181940572991037114876520126885256094142789000239154203577313045061246249810930021329532067125331974912981890343905271162530713476476873770806670544850228273780474457005510179033015688231094632226444072224752560516358674974459634491662140182742203350124339981182675744066874784649701659779405117957509522080695406250505187555337252425518455122991216502251548336383393951909672446700036721085817850602254489268041166954073670931769773169356288962113316761697222629677759612226930965800191376854240539304749362807797602858944193344049857807511678301366819581714648635552062532942107667304152211994824060773553683401663274573746261055205983134332680755756359096263588148714713304038073810138722304083696319621763634366133956847849119835850816466713258406961919235332754262491899068156850493179014146786890971598691251463586579243934701881605740094309963579161675100099861566215850617369208598960594142666598577631922007237120458904482625908004448023790474858882296011325794836933769731751905191150496954430833365879526634597945002151005495739885064810094612913544376010407351069306775333706971592403940947552730623475625288653095551840186353497596134761312460638049941401580195935237345037355599515178200379276694684948761940275607260887870030331469643883747618327755307996705590731098151754701178342239195805399489547888921614890938117942054376219924450072978727715527334957030048418708137771173758804040948827794179532508989884342852911138672772137147490469581633133281554731295520050998275607230213344883861103361487910177835566325024560426581243822349828548759600185286903678937568201698391228341535180424846896045084327127400275563909042024483666093735212622863985278089208425363904875414688616683830420339491042768110173868159936646479279512989428123947779545169064492282774940663205001964062416268273594420693806000852286890841489225352237513713790189641566400609165432283450233424557500581912246989037277126267904747187830165472812385193943143197469096413946089442160050713987044126083630598242239341338595944978013800920484266592173151781962308978413657004749067671771718179026588655160667883431961588704471465513660417440590239788186994749396587085395397022636929743500510910222247517145518854766180929760063905422064835875812522540424382528241072474851857607129842735015343236241498283775851462522576047061393387448649826301816216636415384867345328592885958278631554151064071651776414735261328888442396102563796216932233921007756988483172188311490566119545512809478119190825799189839600668980016495854686584541189558333973508690140770228148197069152295041307366572750228028401329427895803235890896929708240846781217744593614387675971697879696871805424533643824271015038119213214298178653979839310239387020880962826899212431984299245682850767977166153106057652199928932431755858642698047518634835402812519149186272365422776171790408664585153633940785762037886668051368478645544131234151872256724501644819699152166663470528064129433553673174584253364533078455167318115124884676503561261509027496668544983629418034167946910568862823772773547732468363581327779284042580906209358656404285664245280670197750907093031551573585935663243888164629572677655277381448612281165603137854753811570320500197976588436229046593022191395255038377218526375069754913198385550549960998074917265605630238565416001788786382530466398450745748791681208400814033567511919567285259287929542207068303874914208956210406690311433230095888859134849865155176324752628570930147493421630984885220759249252184401508251670596237728251441783311074881107546887750122551883380007144748669986126118275207480450441314431953384827720950659547514012617591504145024414037244695963684177565616035850764895501224476740406702220351216087286011738782025056466957370455676381430155900721607267658304520930095038132865384775801381059108045118493025150983948059797793756210453988063251430066367437318019856742967272413048972097989458866438664115530492074330605044913173389550660556487163958214712603318889861527687242590030214678448414865280036896787455840843572971581328159073987462935369251982291225200265057828692377027614640282798512531679292951564067108741957008238257233841161790847551261727339745402431205494723377812883898881859032922950344173131716349044104477741804624476041571976737332107716634604132400424409084653901039757513899715052352336127544578507486420045465285002957849076047157311659722583296433924894855869803459141146514107671050309528715926975037531915051943629935883172329829027208503657529536921882502795401723962795256155396844539381365455327169520470829301572919133996718741516235326386835840192102159297765406979560530357656283678135805407269613840691316069225464942527766845962607508394376625862164164723336914223139760972343059027180687134611577818376299201063090499993505125439333500732381262521751528883090846223422811644044840039076993725896635748495528467390755274525954476774797911222548608613125045725671543423702770012159772034390653426667851512830627226018384111957933388206199124733656035666917003744339371522386851648988598873305549308412763471000688627679135659029384007605333585319027959367176269898817451426408450669920004517057231723781523725016826136035431861280508913926286838146014293072442578990699841584437657558733087085807561275097967679544396767490259868746146401610413355080467633109754738346277732768132347630431243125611257870255013458584323424744772080019943484551934461947604363428234339056293173290697255389118987261701554068032996155651943801200813188666618542435415179051724639873454097762066969072465663429727424629610801137834648206530954964834966978853637162079124226930721235171837962279856214689353934978790296055111358736094598188890277394101831840821637305796480393484816286013547283021723983684547561536520513364422268519359295865751556632011184315956051293725822576343232221768766251484389324045573002563909426432581042251465202724003771123587354759770061331051410227485262956374017036081784679659058627176550010736054145901185363961508864167890371492701530603700475683544370464612056558288758007007952845997065966332421277977338794290403056910943939948087829706728749976026574221301415938014803856555086455598189782298490095094679874192744590091712665771324646730082488406642642070595162798806117359421920559032046345755122809679245400972837685326749852816012650366064840560252313119820980612890137416496860046287359726738955947152774288455839811689537048199050025712741827454809994142351578624551289220843794906086413465829112217101191167315952213209563566785964977717862071296387035677688435214978553167649414635297393201887693277451006434203644246976713622720971612558682563055172368121328495095470979008392099275530850056051534041818349315165403574653866923432273448409008169643345660122940305626977203001100124218536032077697445986062553975465561095791170858066112383018444036037034586445401682299162253461311084765973092739540196355032506390986825806783880444005598390329546014055145614085825641100420480245822583071480329885679400165046124449659871509031123794933628836443434574261597755171193851349475486902478857852450951248981937618265809156524819006457274553795142552375302119599154550289588577506139500140329049281008421185149185662130521820697368210062261920449221046641596586190804470696586669634819512245708367681448700765676920509738230918732643868876011126816382806388763900915067060888770603425721096312948046727764637278551537015539312123904530848401401353046290457846054435443986050459900471741818512706843972111144427246020291682365701990428525791673295208840100576395665067591771002351248163525619043575787459109102608696260611232653589144954274885383706384298172171825144284225781586403644286248111175778748437530398726119942327133785877473192337193711672325103363584645661828598337430340873446217034932041579650351947065060885904784577801705549902866785099928769235893382078418957019177845033699981749727086447854476132117640481429074414535489787620850069152299006839498773786884253261698560125388346435766391961234178603469991561679451426705897881209385266382339392719203599218379407067912369764345312069415576413118614441215717974820346516568970912985140180262982194784079313483607440440342967776279228991651805068485552960191582713980087907791576889731946706788200441274037147547154023966384465106975143322625187648848910506538788208959466253267420790966549511228021250144788977143166830275004384901914583340905057858610366509407921905948642099568367258164044059971021765324231511154072992682944025594186044358142237271544920164844897460164358719064783329923724513641844117141807168499892282452800339947475716246257078118289959453647861017639912039848710358159640948754198935690699850429022352216526562441736055746473751106047346045293478688402351579652122445585189743911157297695120715458441862195565823823107290384738791113839417378710929667562834075011287410005834089889431348158360348136816029428922684517165661027373674062260924679674256273637810972681662705842498617440486829774737399913477272889312546995746617104304351448374795940283368253286929589766186550503113068478961974039021960876467009478539949993518250471811848868255913674918975553151165897196102646708283391878978184493512213187837368619002873102122971824342272482107056588442245243528808324046031466270553458261004026605245552305386135954423219789015882409628148385345111088950707440229202536592714325375976092148063588834398859602244325394727373042797595112765292243386803554001437101072506744856258837769105201668764919445232612435963441593249269265008442220592675194939397016731459041713913070464666367905805623562560536320170356234616221590453935648084255451097904324510112380671627690244448922703933029423887964730478377216569663200373810980608328135798261372287191935210864706967321966599357973818157982701076323687334859353833844824415241013114788822580178278055203253979485333537745384862962501803141526846037801746597332014367703140192289555816928319409886416377321475694147308049369028955628628484663055273313057121249775578421660463167426833904942287003677258188726136867359639398979426033882073983426428352936452522484802325495860969519571237097440153227939571016338887275482296536896339251525786158972525194704768957783666196159652527290621235926880881483652546036991456635395891071378269840383584119943614388655314449489839719202404508208906813725481208858459042774756154687197481089807151820736680521079590896911643470085881640348295571499499436976174922955823916156715496629047609469967789225114683717927727342679749456623221237501382993460959684599352398503460127745279783495170373479902539505111140465161687034737031245805986812524229116834930095302477863023346326051089295157482844564067577824601699806948284947245329928650383256644041888467711392884721595937622280182227758683798370065424761557410515007963235959138764428725041133411164938166583950185803296635617554610275592542089835092509907192934173916821236654029957928007166059918678908342383449451466890966958278861101326274349758033880769934080726934240013700357318528680990189780018179024362055496374091508244468811711611141091682671053652512375030888519152857222384585604103720251541948803326571592436400360189528498547012916749371839170110026137092849600091066960653526170034727235471672695900556414603194708381163301980200881089015836344721144433276553581396183902889866537155899521244288639543451447024773314649744029979813734567420904940092455776210347883548048949637196254910813877396438078483532197231170742459889599999786773124146766853526790000587808545596709194301496566204085094518999907919601170514821102347101362031575210016400789155430341953199556975132280478890404031881419357789884956373032403048688965764177322051989778477418823311681477783025626042231627491073247470830444596281333994235342384011048294402230220535163926093613269784084840640653948957365905051281524695258017995001633349484853060322689050521750798680764967235148657508635863845449233449879024393622426407946906542167717551097442917738250084486883064580277628627943120709945539488812508113264341897320567892185779619791086475546029213657401455181215304292296499831671294430818197663516885476194896391511267548750896992852701569551508855190971895489023657162720357655176372161531372983356395698329675173260723258523689908559931672305904475896569560404040610913557111045898973089153553040368066426844820594662037466199232289852571053985895131103886282330240332040064336764334332019367825693726065306723581616260822086183615944744172679811843846072517097684297707782757776798097633768993725605811046507660781506057764555242430236527470058498306142090058628957773669174513537570048126830201774432016263881924398844158655763356625899254099596594323777641862108022964174197846229837453654266896403933178500398904581766865412325292147762479488195771775637968255845916477993566343086906270134783855261025857972806127185979679156766949866235253055758050052224518978789973592495702202682465957651863255566775800708240146438477171824727965810403527651944899498867264221051129016186585359658825345424822611071833636633304210613091691631455427464360663750368549056069721775672860269450186607982496359411576764094930180110729013465637517411198710085812475098208066930439045924362904199659022036873343225056600594537574345811496821355294813855918831455254123941926608611942062956895815190607786963351500421386326779132105557409906618334354550889305997243338508886287687453036507390920433995484806297889460983766042722131232364261227448157180168402043529027764817346877127362879636625438894476691405624662655442463496664171545975222090270135093656052674670723439310393132787795823830482041024370460629823074983049597198654122621468081315302245829519656435485488380495835733660623468862661637344195542281986910417599141229729619100537198362536006326210658073852925379096741841990018570821187301271605409733790335939573905044678325700220515300169904451527866591840012257881377590100734201640431503323478382327934131146744931780392064604279551474091529644021996307540463073985883883708957562936719517852844890537475530775323072115918333506568079316237509779472948325175309908416475602893559682753690205841560872078177360296449355164173431733502342727178875778146773202000814291081863651110438846445100476579809299050552677180333650482797642256673492217433399089902393162375879013687772257010672380777220609832333322792185736326867489079139494893342151957368581907150769973341939622613489479226065904636313297224395329427981199938045206097392680477321244519999928357668092439218405818364250153075900269731834697813492074003137918746704499558523255254166782640727126777660348703357255597438430159163563198258198400051399378624895525696155921525047326292887077916540867305985968381001362070593680129367871319842244176362433200653803132611541365143707806502145733752088784551840433388284317917133658005981039803910176546130600084452851423750141993699761988887776512936861108713412712507364514383667836289889406726599094396176194762925446395461669626296688263025645738200932469062011585501683922165519491694762875926802221954983973431458305350385358351860398112112310197051162814149788818109154895473469053898235148248287385557658619793055708452514802444606346946808548266963176899663708296761674476949209013905617699343483303851670596684010478223581844897829390003194914381730233821058905388903396602629693877792048360229651288124245599480783576112185234855642407549003067998392295129863650043871966225503266118020583650476977042369522325524068772350286836695465954813239921761135563931848840666383636711207874185311229197332089550510692903776460771716114329718463673358422271193482504736756424987558132407725631411004562820099247507914108461024802951822678226370779531898385273089004168970364561087856206117822939435222204675086596629226468072021318466521185730921757747381092476701847049002835174474774046112667693656341956910975396346892667638346924378800634552752375595074330814903898341242078745652494845539931444033134545465079153623854003210592904449146780797622886363734002930163403702179741070993496146289676553960407527429841392992853566150982225789124254104097910724497806931168211077990302804343287600426884336061679481711456905401233361976070532132930130423637362896524302426937307409902204373712725813565309634047772677634385453168950438965841278538736733731441870661421782123325240825843503226839463378197455234238072484382110121820217136591521120787607005283324716714466068008535676245291255762229236000235002459117309135309731432701308240377176805958329897952124249054529743905456933960740703162325074648441344613551559162889563965999683470050353196206760091951921096287232170043788135034303086440534847486425364199406404284176116185726804319754434258643351671181605447889847855715999767604097931676134754075547803356809066017658493119201760204234136579823565013337644704446811556360815587610680521730124281806033071724880182676240171807808883255033729062415870945327905148637829260521872116396912551092023942890140281963991192731029254130536988874646118318610097401226609913307908818321459490170774135638235518786944739598317891584552753255602551615151389083006423668618098194649956711409602210635526749951183948728094937154329629317052374497546627869616917200636694844070067786430521699618260221084819237753785681266846136948402486990323328824812972114425717640542271261908478862440336182594210897748085435647216641852830709576935293823694265434253604754440498453164163241906287236825788512068254764968077318238211879731592734603592242612277995461340034161017017573893684855014756732194897062796284772780780883173397610666506253664155379469037728487379621087459423299429449055611195059165843192512282573110684772765547262639476754877449172194713640309903833780821115644245380439332356247124895618813907748050764043149475931037127930400519219271343093333600090930329457324534737525927452009538979302203826146481663747496942965749965928073089204082654151640715805188622460518065659358985013832427819199891889448266693298807527613271396259121666503956862434936431565499946095701191244836499593270530781772811814589294974789538346241045528942007486742398612416375159684199068546420743990461621797091339009555861625089614934743282621903641228974270077645379608551745883467187353460880360374451005766403079181087572117102620716483659598814002233657208035970501779671397114521405240971497805881137155127974507052386354795055818781031948288733161640701586186425242384955323864511398996986918924903435121177094303253287935525922819782727611791322353284033649012641074244762723743766617241192381847691714646094249648219217119979709647657878576269860894065885048769489615034607970864831612085373105686741029320697747906724893844716829256579304684967949614273666008852414690540771745843986993729119336291432329197452757368765759517921394144013462019386114428483562817643883960636866700687638109439774866119350189385439500614805670730400878859031921651067161496805204455819644407225687758682017931177569999422640868387744278372016485300368314544100351007047093291658792942789428908713770964608047145328744944156225622065317946571919282827611327108871790983199719018775904324568879131330664099700005044051927680386184477660902726073675386858123010792846203556808017252378381701638617962276633107876479829067835237364590763126851626144086888522937260295294373201329592908788457183979417283163721066627470831642819328998378519105911312553818373788022757193694834524538754421540410043427577720982415620929106436083318745778815779933297707465881630861288949919447942982161825137226102781915068118809725798638672027608304996240239228164041854974944882606096816169668164267666419137145068597067823788991331852568769394083364093850155012661189697362229954819454841241414954054293013628935083354699834040215284167849153650404830646289330205179221344165112861553119657042764143145185682788585130930067326278222749658024928696214393134640850471585395083445850297928929046403861315022586048691422144566431575620288782651776429561507378603091313147897014324540647432070418627020056031967739092551628308773172437471352450773404044516581129928309032154045488105768192445677271728356314941942969469549147775188695869789289641145479146200618971744037389951232704108965580913450474453941121242139951519653155303381788984557447106403153148975477465976258258948874409668548337762845514488243346487359590000886236876030215826258956550452697588220032295366850549489409418630155670923007410785510902783922888449326139650846134311625208084984595355723819663237378506554501344026930361685648525440482169818849068778984701329350924956279406961876172910701930860920677736725687630020348259359589107420865216219556849285225922690719212792563005913648890907803174232134412098711641420074819304254183087512839293487762535641298742050070064530912139642712391553230718238693705796290816217594267861921138087308030705359901040483435378897161373524221381910467802920574100080546739833834682811306171577357092319966041376662950770402807360319456839503645963474161354162118590145801642704373909655611941838553679957167445458940407653535582281690931260174384386712138793965832598290574948315279804579588017778494874751255676237500006843686141164200309491531617275596540601574995193184613096819385259031535286300175962923753975636951154517657455731467079530414850235996537497692198026406146065467774054837600265480918304564668053921063897655301359797933004388241433863445974153915549408338953522829800905234403425714152504648376660730815876590247042995440060485113646579597394355815046604731937255195913744109100423342262612899105798047266066038244323244147011241948479755605814227551535768351274214538624516244140935964982667799601658517589440823945161205164268581792286519239237817119433594100499219824359518941732350729438238374914915614863724821388660418869620170029550480577327601001697158290829122647151697385619348525324736458486758765558261226781058281493521992108442399042080000400681138541234167995081599436588220747027671041847542724418430452320369425507823734458017276330387105345260404895298639964035750556799062355037573148268214776291974105303242856452798270035707794761278683149618495128180582115159760445138057212181957080051710317700505285818419120104147718696600667372941006658731551052777949200136644400757350669591903532272707824168337944065330387009774999568858316689836568631276690926874173341152834997010638501235139919141056323114475374826391609299008392151516130780169480089437596580011379483084212924775874974442089087793588969533731875482386190867694371895071110323842031507783408921499455816694382882383291174552691440021212702543777493266885221687930671944947376329105381256167229113530465916895660648482408427199388405406312215964631910785725288145524081553135873328165753939864102662909514557751072642873629300747676223394634970706706479686498354056525988253546289551892419860298588997155533350100062504956117447074400102297134707867623989635372280774731554270223866859644787850856746775471017068365757711151119333894839734897525170529309879024844961576886159750476535284351597189979184540126977876737917510159316802413646115817406966116029074716024895478601381821927786822373004693223789203000603283372230439478828988561762354970555147206527904676854822575707877642801123985047184965644097389636955833025190452884561601933125125667037258415247216474780219119757173497759218548757938179551500700312938046498614224417245825271242010299116981066148923612120661024227578269225852680288922295503799701408840891280349702311748359799282124451906538461698676840202111541477661859004243400389976229858573740216749399336113053280205671717777544581104835198119534213641740951664525377084301739434344642501204240425558038382320511368638377284136145091185445780664901652274049538415132037563737634326223832127429540966968408320629566514136146603056572719603894367778502074005959658794053971165623228550541856196174064649420172189295597036449743605262634934445583380031118799957951774781596366329473685832742727175986035475890133170703823572891633892670986486539909165312617740768163350827499893451524568374112874532171127617090033161906441222180226988176197516673620469306242188259694566858841814441106740504723708425291229422435578949355243594872409523085424718951025837914013174502205316509030861060417612083997435522595199626035200832069228526866098289374434371549272750131834815612477887109942447333332648048632289656900290768079531812220221625136800235238919515020001497531422469306382353858982143814157372216172835440177771904766137555864057648751905432984221262858489661380095861348696629895787507360630626589520423257175252769198032809560914749794265355990200268802401222916150214981279534713172331285775516036243261243864670515060970433179452709080604217451875922605102928594397987721422552469837195235385678405884607487360051993613633428055769664301768311130098830606345014167301610424671312947871051616735245499622043889510165890517409173265271360144257874634878946074402862820706712762386393153301341427448733285252914664023597147006777095098081286884365863289733331729762672429120039341320980129643216117905091889783641351786990959111884092319701824169416777309308534956541047263553905321338169219631646573342011489993941199799376879709136290817725212584442424732063286551893453699394889878167421667810413924205288333304481007293385071182562327671490425162990558489532673633456630995054509101909526483333488660535732894843347882192966018124356201740333262138086870086760037608174815842657094012139463414005382710489095673957313683364067754267738940692154192000245047978279399513403509103134326873411565386348071186881211844853189850976591920617205666847456236324642452989227862809849694845716565160977397860545031753765513959614379054829754538040942183187725579290371448282695285274521520324754726855119298215200804493208669245862188979698571812079704288025790250956633084048463464385448965358377686838822124702317209792589087240222423565920155380158423159697818666503477521208526828481072914754437455122907492740853037696793417893931585025284715937625893841985897606844883821523095225675414313610931822569417029087539624231443449434820728324984283652343025307442609859371154737798407931142922824458886106637733836417077822463982437435088208945096813688342531248567347768875412019511460407983942196726960638079723173947906842768472464462671166844993893013820083604683373021600535266340866650441509236599966804472754060955789967894293973665637769400621541953687987259321276267184320107848932970669630641545235849463187898423682903291157786234203190755031044946054534943926123870919746798564939292963095289190969900008374737639104186147229716036589225202138863069303536090972237298317241357508454748914295425129223002368034279653226428407011566553824585781592906795770731421526797521480837320383046017150993496543153224289680617002188123652086790249033991400165589529290244633278316398724308473658609001572286918116867932565045406039283847231515881377939234054665725389224450573376933414319686825616799263813027567939142989000231942684215608898849033852200361407066382187852364931417415267854789316937941843970760580154865604260532124668709979012773269916454050347077766486201755181586082615810072481206154081352623926148714696980708878675688157329284938977097915892696442271121332596184819187035142452802672833854918390437670469232699212188445765660410568930286008993231704999389429561105830939425709251023834266379381043505634500205041182479975907576996685696193180170553040707140932623690868355175847119703998783891423537578044311720140497748193225532131250259159715782330622326853228648315622460718890695889988935809622280423326004547424254713019454327828308632274307366541963762395895985308568252092430589142345652482344985537995945079291210441884576579063781760327920940338060101992561764160662058290522692905514627037728232765361920582378610910929269401769332671360848862152630436890192011787057740278349596932419739642528063960814608239315730519437940653641587391373112869622086802552182200671949342910853590156139037845260804968239458265536988046897431546764125545539878307415637051466292401778389381835964307093465659821712079818017449813446574992120729587100512114819745302983199532231902314123390415716790821104484904139417645542394170146840625477615581235650905692045648487771635496215501958319885097978654536906302483782192026980416512813065361568875348452681764987552376930825733438646462062053337996797579160572636136575041960484719824040079676492365103878305445367855976792105628875701428715641678355065145721166711347474945437369655174979795957138881173867090609989714839355891936943661691937493384433955491793396757594237064807154539722179947699144618348625151530039378181746886577692595164867208447122247670870480738198980733469148307452253649549203812979681113298387097584370988131908680415630547247445052425734832784946373861343624786381192720781970994446817106839908331620029131912654434703595295738643593534512192601750763787121682083486937723252950587867293782179829715785074598627189824894910204999438657354224441542107961618262801335789980188368204014026361699565669917840885885600826995688554549393232508712184225018500482799685705916083923510849084663806399087759261757611391617692387134560817863980109019029410295872554949389808981169839896318732037087680120255327562549263538016306190009115040047267700214827502753945683747725906275959964652069184589553825140492122741733665831621662793665537334583333149335805669716363712430034807064776287367888557785977839642961332352846835701383315489244130009459050332795358634650571097645652605304385036587574284439313336217780611159858741970940465430911681547400248478994200290979362356081568858661063869294128587908407205002912473437939944296061540624636523927559376098116253656484861407919069633708107932206029304760450690526205350663591965214116152182793060995613687404113696987819158051242015680691552270330947227080452886458057263438526855836313493133157578906419619901244805617324478252212706862559580217061232267404251676959783416451076772855510991716654867812310226977402547854135216920453604444088271914845092994048725053911700011190555125634143255662748544330339887105754889073204414979598320726153292575155196897247799241078947000768652938746454415659777516435724553095913850088858230117340712475766671252911962682935577187094165634046627848922058626506280497003236760264368610278945795974208107289796938374274806290330444811740460008124639230304615488012906228866155527243789033885849762198500615116958153570889291312396040962096345307991672498540705971899749299764929623816938805642227835548588144178503115965980987737129027129089880273470780870019820923283469814820589380731790026354801812311503991127804290289624428212942995256042123698687667614281214684528816041607807509683777850456156538592487735030496610163106411943900569374659095445488719048021023329634443423078864917335178207998899137188312777830342010809508025194846255847799240430232004105447845351727757615260645007974270279066033543887605063219625766059333046231909739369121310096079410734172060237508259137098805180114173597120526852703443227769514057611661900346148840577331117704437224857261741242521219291415935682937967450946354284992851644094645557445043918242799651372235186249775979053301100046806096898531552024919174304948436021884489413829960705924766808718148167978923118140582175066491860180786367776501861177752245206134211303782685561326576897097803514847783069218468434094664917399621910819359688468891673044573988584178168605043114075387548931790324477963027825763465225308163268097722540161062111420142189578903061196809469651433716193683154652875716168156520094080206371470304859348562933131710849115978222667459602839676309713617368265907580730431988572899889623593984709890780629339052791308906598773843469718993704275418589287693260956797608011993382251390025758272110517418518641443899475361031454887479052586692214654471533684419948292932272834957212576756136972458432764462960121888292359441254981985853483282936020561913225704939691073035651841011174933730129901207211381759646641674573524220379667062319853056136027717631578264579265884604194852206586556344196517331373497880054125247472834641799108129240739816535531091996488894814240383520633308922269399135603223256802938282451496765039604224326189755577280683967936233668017209320028763214362101517824761036259686804270677401400766191028109164362079173735567467486827500060948739498961899909710398599999847887755225813939965161471062200068750582375780822242059782269590398494186860633268195654144971585897640128442102231893016873031655642623775429922964968936936752783721008932263655193381870889040564087369438754086316142365402778580582539618804073398259271685398934409597898409530070186198071245199352735673905201717567332880629291406617060272681001810072479587661032345234521331253050543997954240591486755519405845909870479741054487611756747105007923766473218163681481158996084134934956981435650526222431082337552521412491039532582951165865357442547331351710756875830494107115066427355027118267849196401765848696782798281720178574933108629708106839598682795611692995233397670226838442082377235688537216540196241175537747986493756302529602641552862804211564051533336271154783962496540378093409142421702742132701875301144871933508067946405942870437125215206414346242122275206549950864755719778626799002406321089065372107980998415815864980190752061078007640384006294508158200391009273916494289969332995194419796914103936413349213909884771661787737823780872311043373880203688340238352798703594434883846089873102881366545770510559447374096305033933527734088771787385514048096701038560135106839885666703794746534146765261310797999371805393356029303978573257178999136198823532015736631085768907315249939732335725495125667522941847531896375117270077075858197316224345889503398982361504451803131051973289264323652540001365274577674592575077479688411787682890404231379519925100501113903363178703890832739127682675291267839951935328959819761919911767100027138258972831153864582294551746176492109835181491326934659588473319252882545597931199448618249478477176332624496574750779091696494226874730374480420884136390964573449420468406168919830236221807918747436430310443380102452208107912913529336396840773651065712116092962272053837165551201216131433927239671281846499964664344369053066670126253373053178442944117954362020479425997867920181939138897471056344772663684473110011595926015646372975928925556360373149460746465986623431035801507792459195841806868743846685333386866280091524664634050583766411850577186962151807904439649759967731422251203737923458269188353908894823822675223918127065752475755891064575147349503374537664293674998616782545928819767942029045623859920170675069905893243497079149938283653515795765617818684030013744069276532093266684144333821886285425763507120959392307260672691236593618026200972848695227131875458020535367096251118980102875473433233015437563870801394069618239305031445779076375373050222563472688067384506126993914300111386227433315147095071301310423100091360211107897101976268338557987609512340612139616313649510129916840203818746792986264720643955981433451879122780390679714853133903649247668733902641675090584896335112706131834467799585034242699459814942688235108808397695836248143457285622784874904172342024726160346892469341326067178027573968014763074430152227547350863615641258757199379032905230745146224567252456203076320785459233224774803692956985220066142711758273399397887588298507387984595822622181570620707675626527576232496146488993713896946465049977252243662095391788632359928489210673377658087726491103513979172640835846147024810328641908786269388414810807573960822706128179795778047876675800398556967454941520072819691693459304892686362454518824511941902218101511809775288281181102742429897746897021782578181587499918376381340785948578965369603949367618974366357007945848006389596003252589395353552413718514672480967844652668497268517832716982679165070228904839307745670663142003716198914851484823304845284675379287124200952408341724613711646926798635646293721949393365260285839947052432136304020466461691434837173890257858488795281109251160262150039209935297918698822894220593975283289472712327980541738381259518818643637229551147273663322839184736499767363013201766596549399550302477714452536436110238076105490087780751529252578555728580333420617759893225024111973632678669759849484763574779309096840234599119413543908714743300428108859225620831281981028067426132431518172960690158661747203213270755329688454259673024757405431266320213421039017250253443623209849639063362474101232111298800430555642168818440600029958551393363085873999065372868387654840142828854871593250460110682465292942877196107509433346610126545904153052685331728532583148422972787578884227111413328997625517375928313182383317150316166747006581448074691535017778726672289240263824746678005787399954946236994600763212389767550596913000645060579265342241797374603386251677875099596879230353135280748095585009398976683363638393806078393255424172575338269534600242150236530041957739207893497232064925373017115134415809458523364743175308275150244894602284516908680183634896165523044981579718152290875843065435997511049279689896634450738106192742535616445171325987162148503407537826088027015994000674301119442904925762630758830234501448242218819028248290876296465301351216699973346302905655666737024791791933052477939643668465945440641804897051511962431692851498035000864203841358384010032342523422305431166215768065366796028848434869701160483420909209893740118239784304691697633693218141022052911052667967639106964869554305823926981480678060913938188161738610550560988125482859869552220408035927817543301729665213816236921725513302888339281261130796187376507902488611797786552764385170856028114822410616839690649889413856569862361647217919273546852016742211409585898453506793523061165155175726953246684965558948509610953025242704972586477605020871636350507796879909863002924776587848724830199151478119594997852417952776950685551072017948904270309903918619941911435841334227586402449997395291433908178457372264620515364887106045945133257415894841642433717142209128782871719844096003555307888308691240193482948029537914992132829459113293205213430057021796922899164448295987732037931046554958961557423064347458432051138597029379825220830985582138072913482070126057917384076803705503110101150255862431273341729964304754037776744360104517077448292728455815186394526211935217084978897314474264071936059587370501071905621724944512395594713554948805381656872641075983629817708724652382727981053937445503216127011750468387438855999233845818713849774649295530703254270731119140136367353084860317406697414357687069738356122578973355306700968411605953505004907841026980903492046525535902787803710276938014242114599362149311356828126502600529841358288354031361056078114434618463457047864827795405794811475124321104001820363943649656979876610580572166886663303351125003128316201223501266661697949801959604108329727005142965822489528011627131356054347879478101007803270932808083413107368883416338709190284650846825385883447457024422921438954809224023674253953895297291490315192027634795737668740088547301701631780042906805347650750364844222579561225128802726772153279125394537702917926927579302583230898847283203615966849776194164339517226428697115731833283162188200471712622318371672757503732756499342964208198677091520593912613747256763166767270011720309475910455620277981338625442352666929640107213619269830970271531100133621836186258854441363093786648744077682125029403209684289632517796874569730896832438226166611184906316159803577793220848550182293001397658618469864660727023341794860457942645985994237654478855802542746690583933427180473862919103501131154571324768019212135748621204839926388475163475733559181885457433003348696769455911864126002964779603041201624528954087758989343903917795534024967302582454094496053133709508731188057321368375043251310020342650886636972215819006429940784895289586026603735464127245717725639174068605191863617425984328258066038613454282935448685022407730632308722131975971384704252397188360481218963486413847014875797352437487137379017958314359665392949147996973383894823326094822218235426043834110343414608319501063783756020382230822433265796804651674769914313891161710114756902862559038668289496150218141785065136953855789702512995134245791673708559426064717253077022642818307527250912874216555852714616181905565673779708221051277157381609943414849003916678625650389265127861007616870316120803864286671888679559079410815614162341149432277483813983560232231896178601212710933716131054028833665172142091136966251515470912582224275526746266918208440726872970051790645810417368919615814489772877936526105845285690501206779422873061284946236725523552396296335880246887829384195134185762379566414302013424851217996728653490877087377156428250044640855041115681168187640375030352462809529594129430539291636312624490185323148765669069091874537100112910854194474112795033243278368291454545747273173463552440347970795335620167774534140308539758330469813822796201690548189487318344261447134285482013663890397179910123075011964930994605742988583165091000114472772099007577879653989114359742942219555205613689340060045980931496842480300587068039033131072099901687187198542948983783035227149532685930158101969390060351196193404752438296881233791756366663469508576385166097779975578516861618893428016940837027799547035752598319669230032011777761852065759235066673948451331730970742691084066314503234135502447416896869752941704661716685460243274401639094367085686181223492316523335727729941776856633463107955889566309873412605117565333139985814847467765334090780584054164329728570833307373631018545272730348423047367326049482946155003245186820665257358726871814732361476357401904740360460858914165093742365202179743891863547759382677557295733631740093056943673856896922523566582958759754160622471825214943460662601086701286505871484513342880414318185164117798091365303032779102940335329810928990814932617903424594203238441098536665554525575949801567794336781774075525730090225025776316697074697143571284914062241060697467436254347987024613544241039344945578159443949424230353353564257236304981643439911762787443235874949431630612195795838351549003060213663766334844543835764349948003947390283694139789124770280254106727456857250054604987350830427983781681940219252525549529348999915597855117063023440595467871547977592856845416640046086821161473184433382869167585419584315927829516070752960223009725376223527592135986170960233463779575515630577563602388800804176666889898183711926560645900282509917455022038189664215969306791506304713078129906019480008190901085404186574459796995645530956808577089171003249068058196114239131862218615449287395840899436085820553696543633821772507707578013092653013011949913112271475440120015414256823081098888716873917021973600137842703998707428127368116004446841553241048621458441409300008734585283718507765443773876058123796911441146608949173042109508612870789095379483212595322936303365453813317071550913337745660073078848610675481003700719130658756430437803800117740516816521586462485602865644305443888175939523003561571173309228625761679506616365561806906282712991745643718488108246090830246110573510499211789115305896256517795047367170328696564201652657090013255833494261777542894751565304355287567382668108919780552686298505228335917108077383770746768523921308422999884795124476435988037809262287888204718467264695405389930481480018962634723758172408665163868438451905779951874858786038254048688593245114592301084202060083750443605984293808211828586330533669145155517386142863711429649635143378584560690728564776476535751738814522216566679704822123476588330351890298397128536282487884999322075251568925037007618490277488730422113057152043380094548840251605036030162016092179100741869779803705615267323768054112430659931440604241378251889620998228886350416537011827823311468973370147775139739955612152609027806469298438738336961906293356446625256899255436345782806525427195009771640371841875348637273662163047412482904567394168414051507806430060324607698237797541675054157946538889864987029106715908060890364088908226580438441492202330877102405823837671276873597360560227295291623044274722050474398923725452847430185655117359499496892810965789343572364539929244736300558466434250974134536897626327759608157558647368167587085240284077492705666192764918000498217631499114643670244185979117486629083465208860561101249443926529998594393486169795866154490517341533013620019119549947929805397040421535469933953192683106600209843233160363644307613453983746201791420323034469133536211061201156259918063960198399223094337493671454262660588424665835445482698052294457490804326109682136511243952250713536166385222926110046927791443744268046953360357643074695138775666517371222984667107412963896049153408663961039998487644838475181738716978217532957941807351601236588393196014735574294460536958866109212034236411249924711326928362058547131439852622297580122337947754996273797016329493533264206692347823453455386292601099044131161280766709410141709111146994736631170924166969556257852467298492586321279237277544458989926687063904249737759814908500588591397207406376193144164931657689682320538377641205572314442514376485400072629410009620857403162438016059465976905861062867345150531087575628967836254994049526379491578492671687353129151117281351169898089659450440242120482173594669852989141208569115271978213985165551193754171384138510827892282859985497306101731026322855039356354329083160048364324329208128573473507355001952068589826748385009747330334940178106722703812468005536408374248098694511726361750230056129357614245084695897764611264436463373461749573688200102667835840759814095633857711169740064670035130852418915147189499041473375071103949520572701130782293425178049259849287543865533207312209071059265340262302942711026248077795532721148669592220343664322433384221782350260793525726726478889982939448500146822867033910693846606234834621670779527682064068166946812179580539164110592252662097873012882564801726343200326975074326382745856250699457257647267199653570969595310206133215777177704070462378502987770936977858956290931582121827715470522310323406937724296592625551590823792842653020584960223597920796890117800250976072230416440779654850105452789134256999232761237232700965869485920770891573203968216301846970000933489551573780799747862047646337753342082859543716510796034334181331098119331294120497916920787526329726057708007592770223357160956020734622310413983046862794869303374996336918136442380118221729060843906591699026033119888012179285369784198521144568573570168604490678294554313935789828793435401488447758835281734341939474645349043694487750346417930653179655189969401117630264562159364881982990000884913935627518719823045981096989853776489551524901967002525706996477991320777836536919459146235424776207140275787882787972658873061019979600714899471131932265898883922871868873498158879932905479225227685138339628901359644177224711108650105980257352979299379029730067649506518554040737627011541311986757654376128723132226269813254127197081215303143935056478926947603245044456417823281836876299288915316180169315279556366759900251092926913213579804295525516896315473063266597219561925564064799042824198002419999930988753298849961232390530683401393098512202549441668436724368262681957633266869834127259189610254870248127300870929556158861372071205243576674735860106291888448024041185296377634815646938746451529375157272531181377170609007337547667481071211498509904248458767194761878229501483931900600051853596183623457695712141764187097337812627913551449379942667504797742225296006399888099297552048937998776757919360545575242480630505096027149770800689628873765157884018214000530907307702245710031584448326749803336045129823565037475587121099140370853553419810902885882366860225908294816494648837661306282100616989824950578510654388264267546011072870087583859181182379665548588736931225160686977215441252877332961235039937962113117589629495543041379512057534315008423019517632128051530579713746340219611339047807357545206672400352715079842358557427301555751683918150002016917407027194387253187734220518912309774069248063701449648410070766496484097319599722388024170328820959648609026395818964745815723058733111819525310583892164093463905101835930636293711434529940847234853401256331862451702410126035169483982212547959467230638201179800865609931104362461364875296726496748272061945892649065782636778414772389168438429981849487774016359257581756516007105322020000402446292451364399648444927098597195419858421418824670568985041168242123562565340701179783776836655144073110822959105530015329599179013001717975429124320631780875565499894957069219336557470803630756689925699278546525355270943213368383840595630452735179220149008977598255754468503537741941440881194354839049574659866184499230816320432471439806281719139075241565695775214653429423921964727397166732029313588531440494717471651206366313211886977527368571119001915067040654525569731194544774430622540187916565974045882803395500337495114246670477050982815945252639698415460365005278940723532085391074510941843015525251566195496695195087964564067857376748656344802065552272288922071366307871271284051081128664458763338934142183057944719394033282815825175682555510021444829625805282259771203847427085123685563814799974567476883702095200910419645533666111193253481219759182334833499481314352525042294547713815462566678932421747618257260620278000186798953024885129871776678302704219648247619734314685682708143111974281588313971164621936625935831757272426016679657188272504873460521020020510035478733148310516568185274092953686834549234241414809858337381572519232284908576444713553838691743395217398929683929909819275860097210575641474367501375687851073838396464918123820733322583184563629151588305042883659655998910579370946838836734612497317646054894940505602056982530840732182680833502110491128166878775028703547635704333484277426155735273340266490105756883450970829630587892551027840228737088882036958767235121814791525064837231401845732840398661421176456959394125656107985710102623803631830463196798542979122595964152608619326977351854472156843227509159184892694813856369812879376073451777161815124116642485137311109607466946710881150573153456212188355575193079905626174027030361973584962031417206448038209214294542457664287584748114085839563759747828823818649621812860352677256211778099046786302620415172333625034035996442418159755084708660119592085806795571270846075870275170321424834518870700542837882007544816557925655478504330062855143778465088571754226661268932824673669254914213584341273003778346764242145909528937937598648297573945496536579426915072400976742545133724550628454614041138092305756230757156525234409352965203751865949393988858645814156929494892005515780604829137640465003727534370428203694363725481870655409961795508429303363437712426108000418969115506274339394575597302825436276563064204929513173804284936149821346206652470883236186100801439912480458607011990029004472110241959529809193055172519036957943570269435773862044418513209790582467422967577875482717276772175634708134833241137885887062715039981658610827393090208060394725225759721565331093096730412434474220561386803691951052222592999681706130614150496547255834914632108953011195112401729586046930900990207941189212135732369199074156361370820825010273144504981626481209189230317252765185773542105403498199863733324610567975597315831357771140926728852319102000780065325537711542555815337344532751627293539507563273647981223124435207506453224906824038246106135763917759107556973070193180623101480340512271908382304660182913687995678591517347553014432297973714452289235654015179949846393365067426613333793804917521264598695717000300042419584586899202067858235055445169715106221765550120949457402152965006626649083986702165702664246626705131011313719825057869259218903833770559982869286253160160357102782919602979103733274151563981027559257083572966833815555737742587990468484197646928496343850078883868893283567937109475599947569170931538242707558549533222089880561242003820457893756493591288270726706211735231427209191319305923417878085822431458392947231876354598213367874155379013055673005838596968395758138970969007559701440460995034924745489251559449743595450152283342765331220312710889267561740008024337738529936159350311635227676121751679782301009477587164911021443966733162208464433525474662762174892834013025491279560695167838138952091932697638145006783056464030302993575453150342247156932572649661132168217478183856565883113260472829605914911223743451799681024917805962490592516712287092773680801118818619214737005660836923441070825621179510278763404039781754712522322972663894601997481194378020850647343569611057796418457197174567539677390235275669597028507927597096665072277239679059483508007677603925882560017825236607606196722591616730414208699360967349101930179829537221577661113733697744948658489450395856771718207370693055408499307115354269640954168629353138653057216357584382318842251460245574712037745927360366835750940553189516862222842569745811539650539114844278709788702309581805804430801186555201122258438154441433362517675806618164286569579227772908114944551692448303571559349435661902127857188877050765798389579857454029275130232886076616084912091043041809785381040508144338596597216572834127833122283751171197589350457542308730636681662537814977103208665164971439926671869661716517080388512983289647293703172329707933741618248571923129880833105343977613673000105999136546898265297936832065603634677277875785719915674199770799376429949911620781360559897040290833272165773068950650666429370935236305234006290835398772362167367608209312108364585218636115589875544660125570778855726950158333447360200271472627624359885412468441201448489936857300470981251033661766617473090041486175019597334056553079070648779633491131293432580526368634465550948785941112730821587337701138258878542721903259741511081853560109210664416865105139433205774135683122523643730653451866010437467117199807022263445001799082456208852684573734756868150794321679172789946897935550445785159346462116956962862455594481393790043812601937999007175663976502546433265707805694368929446888877611901359145544930934373206391490363943786214175576356003958668207271199375223547607747679490114177934541217045370215935678918543271296972465604159880620107723115116410089859124023930491904929561106932827656981607747984924761701281478106124532813864661798698134259983927318082841945017795228219946610481521027237523254883953055361230356363881424379592423988922978209731179323573644994467415917680816241938220032871640882001176542055011234416565679582360317014001669683415159971000296700575055456015268578504347373824900508635033771154620425338279839015314510353894332250818887296335008971193866662306877821503020372726405467982185521057015003475329180412171703191741528600133778562216278175749198670500528402424176685241849086031022284251464413694674315419811636160303404723485772999450275777461760863007086368420063741854072011452640984215424472374201950353021322976252496248121923533183747206152947113214902693355375949001224710857209386361808233585665348042089135982782153719921790803223556717819740588965143604743530429570533446175973641799467451515411633561659485372714607158381755343466283799725763820976466843037569364688168784982724675441920211316391860891042833405826893160305188358339517751445377163463233399875732124526816992918737937482048322242571444645171560059760432307014475919582646922553124485038608201436996783669382796053108921699961351285711492078919239179701177424800518620490409888706299941990519257545834423249058244594160718100502810058412375484367211343252261355781517206274892646592109417874127793331351598216563234900560908273326468156846127669693213084637315883770409745569664816234240712338046008819284364281214857923742542993549559599086974297347134040852884603347690925945093749081187842540690712066376827444693865107066848747613319252503687723247358318922192312291118152414896653014856087793504802812942477663640287196935379658550541735031515605343270813348910787134071269092165594908022390756581837569475862494568170234903770506967451512596508039156460511952807028886909834718708022926324695078297475945923204219135102151182393282825003928302545111873474351551975679015375158895732217347212935280989707568147675765962192881525568646512098400747475070431939561674364198783573971870422192395097500209006304013376359482043203659486063783886905792373599747905686402187724804563901725226054234937739165636274656160463554064662175980811880853935370013667298846902211490857965656670326592468186491550483284893423930369646175564450607193099394557398388350451811491072627669491462927910730217969697569172036643689826791009559388141514019170472436170287427726312390287615991390574511690434643246355818200727899957304786271982988875722924687414057827361803018880528543423938690295067152408805062568836286389815355668361688816870290213585705445575344839473819944587351420641719633867403724357416512833627781737228796312670774867532370815343198319021057411383467391192512235181767692829837304948713494757169413148643255816116602631834506805115804718397358433168783395710408326249263531690376965989539682039418945916905152988129731359627472891221995420405454901988069926366090119623553345476923423614294691156691095469856156188546770504990126917385410520885747019290294863994236673899173303727451011112807461401304290612533565082681812342433019153856412530187219743193240100848900767752849395770828942083665736397079035895386945018607053396609964576882115104643972748045452338307313435611432098204999450839051981856922313975058072429321887116806537499176513152261044451865206596322145721197052688629265378488711504722258891820866265978088522398113654757273072087741347638262214114434821674659217718192077868926275977776919782521419535196862568306558326985372053900769421106592583696002137902886062113134871947174891968636163757999301293978056314354725185290685762481032790509784975487320793850282279468010042745297824300182600513658796634992971367994059293600917067137082104136991402818938905339472448789737281105855339137803752901044248044012081044486983473023116229571509480579519500150320974166054351295830144104603433230989170312586363808958177867470689628900143820400841518948080299534183229611446317660389194673135217201505904003399842974120760642034350957573402802029146084766708407713041532262128350211958052018322422783824521635976444989723611801538342882423305386597962986462348166589468690476254732359431011892804876605973929239486132588744879071427863609594154215331491788023598032251408025147575822897053852844377439957031473137538105612940832970926810266627791233131049540865697949731063166230299409903611397113221462357018940149274429906335349552877207900759270024870431353265227905784897707907062837395424788914684978215124581505983800750349487006122234386247420835125693753317177854783249781621783564195415017541040396962152594654615410484017521318584520252830854502046635375541031915270707751199922712016188866252278064882983674466445282030884251011483466339543973345754321261137570845707753545334262696876636247393192526563571665410839297053322737361435382236669782621594608964272868203693248305599210722614876426314488073198778930447240428856417606094963200218540512149357793619235727553487023754269171348791391391952017881152331001114378623684657848824086018846898549839569033113312903718645815973520687321729726745746179176768961189303861056143135041835474239819639876498976995167256874324912268783715448249426737074709704249435090200170211820020181452642743885039846594842247986401203482976441841825611047707682649443009280341748264497005252336415620383224896616827885096195378407644842511593045251641264852897024167317880268320491686606966385127612300641255096557323429029821144759079109687194010463373547154788662437197134708152635422460450072565482531680014619907514777295099047540415545016147784726168416418329493689657010501054396739840056960457562514250325997662525810455872090234750274467996396461296008829909737448189340074955841475689886742634382551882275819391751193200411817239444197422052041197285200210729437425465594618826348895569104119127542846526223506106983552457971549192380348410973450385947324770772737988722066887790222012371298323362612629005851333223011368789667926200582274234109533285046134375560871004390945559242321883411513886012820725132491568708617863304809046833620732775762163577777743289872832170554754770699012741573879439948976959977734912448356717667243241830536651520995345022347537890501533058640644383788356668499026274300005856291955119477369087532419586455567337122786391197571251659800732769079115202934957795914312253679229322746476575642687016892735246311533671777698664835485818123207594655272295956500692036255757718529127313325380054170454155300926054448007054052740189734539422086760792361332903048036357229505978336725285355420463804041666845936748547104663434525864294811736584227348684467938541229598791378887742665180269170497668217836675431538353643143034703233235601130092279954517081643063376254826328955781680138834867255534276457552497725427712668315604315891118241818598646970230891843457131966916786648105677178047663482831495641547164848569684912286982501887142680830040618540635139121756644587967607670419275157244216050731364367233938828428633082968525747960088867857627522606279187019639389866537481381629892200216413414484321891652344350714793672449679269774125386511461471139585356946199401567262693304687491646853894641077822332254264446493879006861938096042029103114406520919375527121453726233620501666900252592135528206481581963276350516081795177637623416797054745505915809263304974072867875645025742123149674713320822150188231379112792885303926046946056998520106435583039058809119088586937602680468015680601403096866899736221212688766069219524867079767604818300623738434951192766931903682261467380838359511597944828709262952137732946665846090588714300857980405582163333014221404022788885513189028545282590615322741530700585050169592202074841054862015792361309080265117622456878597183139846575969547374276989060837804542528677662684482229975427128311559721179626008038775078863027191239727905848257788710400861219690176125691132619267427138729911215069059299004481192186292511512986131966746548879598058324123157722074093151558446098161630313938489687322055810122262838158594961051707276398411432459197288934933040362259481793476151582100508602687027892450502251332341358630644056563149316801529695726686441156714793817513633964971923964315095776153995888900438290411668098151052214168472658882424271477991768751076251291930152383535260305897468749944474298272620426438848812716369285652945756253367125986188894859285701903489561613338941885394516890538280372555212046453322806033309879109570278137556424905345658713893652953280485116768183783718017258404294025298998449858029139199006736101469139853410069730626691663537313281541020837917418629566425225570671220715443918390252299137001232816591969983737951358441768213085721980108245221398114237397339045875449007681382858352854983426428740077754664663129643660592377573711179657714760019758734015008088252332757380307661129778625574514721141138872960248185586248270946316403402304058849998187407932279644587196667094568655272364301262513794315809645671551151518231239034522552424448966355326431747323965023030550638509902425790486412536327516171630900392177705774556885613304432898058810657709447920291026731951357019275883184417739898607456699105872857138971479294723605446031235854201798826532484534425777720036688800231348061212566572994887955411447609270197802913849650169905927606852060103758474327620417714037942083906649378106097813068588416460232775914493192158921129595368860298867732485576512307432961585650847837981581030645172120277750480108245141265985322322109982689120554841077969019658680532798160886111183535570838972435304563498398449858703383666411649743608420752779945236596998572780772416569920682622833461797939521013329010507862813232474378112234666479436535252999255239442285492386086392562599190124876098786022013411518435071423838086092351050590151353134905807614475911507182223088993204239832220236202860487665921529952040070155193938453922183713445803925331758498096236564713675436605925435911356721802788051950760075217845829120459334999592493459471347769249673772985965953629560901770905737587711660368729940274669939936157011644333476042595149881187792005392442583045634201764796770823954468625743046133252596927265577837328719989856945657520823207872741621014625707748721124596531212183691137035978147730326788387988797800432935925513832468514796567819575532547867237172319933733237892096577350621600389948813645877518219194271770306838985616201419779075439377967679821046714792037965568165733656788757924058234924086006808632182184204393724818435314755971529917064300482248196273866088505600191979200010426018262392569913097783603350424760741092652606209711501505260230993554815187362059487897366678542144571088043586898606862120653463067973044574073108090696237742268595299166978339584226647602996574101345327619421444230057633093041379130359334932008625122856289449246008509261267170310628905584147439052599859036188087801643759845854489109536045340693301432972247749933416139000522661541488479222295380444787486514725667432099963295662882385349534357689261226361071580516251337226218628245288186496250334722855144242929806297428271016718495625837515013373095635158443604540119488956459738876028404520707033350562963673134037461503121554576468516395815151708245864724829589195740009537272795668021550752911941999547653360200933020781828607441989783904607874841700685596278626703352457503013941075736823286082284974991819118713887204322629560441131919262461267775251325584846255481889114392477860335064104590001322473592274056395081529598365469319167883007725686242970195682532071569590967540514299467260239826281271225079733516008815988371261599801239341589384169270336722433650735189117083330685652624561562531563950027756962733083186973451571076705170137130171442801909319593959033259232456017628594586335300123984650423315616698561605043585049188661698570039883798526217445368398391849211031566954721057571527001053672129125266100382178928053657461735104769315631093077972717555892960982756065754549369114316757674788168086651313989560011968388804904091790360133878367801756177410713343852805220787661304581889044713810132039559271604621220780802838540807785639984379753264108428987652642041252058390372663253843508621358073968389304534130750652910085077620330526955779519434682748410267841829872186660970577410628219342247870057607051289782226802028066785437138894740053745562472062723641884507555916800627937013012274083755641618296179288142912341038099729139363194700423946550800390587780678766141920868724520458417633219329416721914692949455258789298022659360150741104662935721778189582806701961245016734949587610721363795373265538789837473734158811233645863055248077786536455818411542766766408170672846560560492551718860334728433611408760478100977449256490987085338130842056850301715232900139652890788213698511116779665519730339874085745453792358561308811812604016093417009969709419502537011014348902054202252161636338522697583897419506508403727324486166560174999622885846514065134904396124037838930681650348456097809316413478969890413554078884823822721159312950689536181796727122668748621049881140206133514866990327810895226955531643206620641028598151059891328864740725965499988596614966300107481748602986630693392358709469169258607452634662715461065750100852328179348153386044627766645913736812457791467629061954822447515972212040625056883753713764892518386071232562467954535819586002883650930277218474694440017424725167391623865015194113789576440491438701134661771424143251337294425169667180597284074349297804688535787275575833992084580906252685375516198862068865142515605759283225200113393254234682969190566638289481799630555467256108992215881757551908613134833815382963195955021951912585739941479375049405699340113425852691737820887544978769761192776056486564876473865565524510182824889766869889738771417843875938924420952157694827468530088758359780115573230370517616952554269282871530661305655796916860271566094563743384751935907998542954867730719726344172844714128429484627138215630995829221219474826870903255309613955003524819887702078685287420567404091139309576712932868517636250920206199650669281370085863949137888314541855220390240198799817702085150215570282445101832944604124117855811741606843512344502725563324473717343903811826808766782454934862235828668813418296060078692552352786673728859930225379451969000518257298497156280110628560106475567969384837236266511838337926216563977722010825060136956621366439971286147067571758325487105462008621799408199772841130622022538959084973369602655803103590014055977216963470768030024001961187367425153157480095161401952875311298363309549737298891844111627185280124172264905497990197124931499442145516723811193282515276154640202399177047845100122793695626158282268678958117771936485187978031257817178397193394396297413415087738216145926593608056321084691631371192709006751965176650286985516626658541493767806816850300656852213370353411228308203176276127220363536432224434538073927345719747467420611120816512249712914352580382834144193333919342907555812412941839549522913418186253076763567275654414878148886988002575412289222368066088786558587357353499484681718564776794126893253276847978620640843277694468189674613763906815313651015474854460920263258161521761708475277431003807994267459321021577179532442925858699105539532748224232052529156493785775431756377922585372646869706179087092888390937138233975223120262512424219184063328413193738969430112056805020900438860767149737243760856323917693199003505712160525783531777836834678162522653404171355088873783401929495392043392812404079099098532000182360658052387433302248569096231359281910030463966201714232299028710110406904700745728989317664543225486328783169339528081826678596613764842083708996854948958205865356240284469192768365539136929434051717604763215278505079377884853159160534965048569311753889724551941586037467401579271005891516345319285470307439887135378713673667750031256593268186907596323047385159640327679587899123311334720644042826310035354708591115784965437974026732898987685911677796269599163617905997054305426990181187847200105556013957804820617693214012669010675393263946584695624449236988707772012706488494022928440438900234980706580818721469354097119726300054801852558061817783578176996742599207124791211457124601367359854116783323125010994375309039353384605122835886609011108093924650164762373289279832475956668251098431342852617467970582252943332140851144203319525621469306192051937600359864589206343825467571121042208303678798125454556868986035899003959714250632354220234083785559425011693322110237019206232415782591062576428771640345009540207545247454555718436252886081843888294841549849146042784890088473575599180441055955086078669457483093697496264147720718747418260663812320794505095077063063860388448613679195436087094902308756793383196952189491808373442072347807242143777854753735455545199986087627329547969021800214670365832201513178438862161073466647212917564251015673064836348260045924896453630416109317106297586522759462186898414998988867762927368072638391808108191241014522250352649181442479454970137131326739015466818824157870611896291197164045208938073466356974239694108710155501446714302387997800465495705206863346886542060365725732209835427125831785724726551410714545993595463428172458550851463312105137140931095229193110207617060066157028679248516114584899519590181269144222794885161014080761688396892590259765401905825082106332617015689956141282428965765559734156852494293550382992172813143922887764779453880270915030241561754619194767217220141346293281567383870951335199924700149879016648191331217674258512956204911482139045109811250306273460802671758618296767177071194044846810304176334464194947941029565331891150239656206320162227888380871823408456446835741609155570558785947481854165555074200275381492314007518326021973894063261362949824151282203734581269630123684078828075119652032669106916275760952867052971921370290365371265952023163255240797666396379316917962316941443766411184799402086834538486835327404666852779215585879798471690126880628573329582133189707409561611425297375361076546060334754543628830770378591882960777460628359037280884831913546945398192115371832273256254753704873271201701713109216698897726189924164536407705835771891919673175486440387349872273302531052819652701419845433035328105253610770908719615821363331834368852499421605287826332626333672074465514694430049664949142266570854533522168762561159162994914226439243059436706009594446966978309699162419622772781345802417691875397821582457969242730727341743121281529135848362225946771113880046808339610909580997905922573751124282581243343703818976398676329739600560134941015401401492025793435139694890360805894026925334484199304105921138036894239072805233061096814128334049730595943284035535482835390361037452018663937746175908557792258534118025175020861238383506736991435419487805894397496456678434453321139021727130326433710198603181769950061468785204180326392163459841736735353473049777379457711779572401665380006130601699769609444783629644392586854385591395354676784805174167632063444330779813027454111447577880331406367739444928263005715249085741892153080665318601779813850010773430424336244643967398336448567499161096041926432283396306517948986342606076310249162705316727045748727125002319187082943778522433027927552274356887199758454381001430200439471667029850581241684209444870202013701484054559699344130882082428332541535734350492306508572590736123074573414064999642889772613813546558284343772846228972552383679762603348833233418535454066932804968974018342422070791056200305000461183762682609976741687444824529866161985824936770241664734574553923952947313733480144116022848329941706988301896629623376456517512797522740670961893099917444316887506489529098795986057110131030275909447609300321188288654847224382234795899603016487422896548498850415300814608791578296980967490971011954868864900230367548964170220651114801961751219774653374634268957676097218112018509489092072544726658529876304538015309758781240202151021726386988958588568498531674339566593168430816774225296295229128005561133492222763083532361444645441745446948063192802500902810547914412553702704250365717489432979022245204960127376373263074916513629744733706346802166896082447191716952872083071544641047860278826443283834212939452661414848268093781666010006295405190319228763651274967534891072536355571839443132110353182846478429448750432853819061767200011016268903142718898503634234173900027411556528517672258966347531822617180197118480504141732005955410114540374459869690537913463007370449038584494178270572017483922228309721076421917422628224655447147907828939477378743556039735009264787145041939134776650689610744661526698674681312043106600713301997773122835906662784997316018048977806334856690357180292131983879886789164135943441144634423854711863268966205875489345233834637977595182129642907974027332421314877502261634477506598118945648018036259362700853042636462395462911605272808462235771459740313152120052035929420108993084992117698886118522555223786894889812907262127088698238021923594165410852191828560947678512335539140896290611271715076780741226842568706173775595953268255409214471627071317209553456282213415896616666306749187732794663897542094587342519990249702696323542118932424762079949137392353585326583958734222549177142091882186734590191270135820694350501717978944478861998973842292207211350577619852031395843194082081067624191511650081956957042200544313774481845882502833207057085246730462467427950215383197159943077421589598383825148159123804485531859546567133400756023866737862318804891316615348293322156430016627950342337374079428721368886368954041424324760653108431657664971094389563790349032749554981977684275950353829699513535699040896376537046951022138877003553106036907047199610223814118980148005138873431861761151591418487762287144572321570982470207675180367562081964197147535920613741181025935796087913601425362623465990047367794665241389943248582650311060854961172695429680691198150792601653532554403338468856882796977925388313447111053957859119539017278603356711371075537836007366604047233142855394649752981712716124498306779338517596000702552860264169119448349074662674474669969527423339615848801378574067369429305115976912850101094106042618465102498481718941214527978203311102284694449360644901058287973515066488183459479007028373152788913464799819208893506083178091900560561717623581660030116513466903850541841886762663036936712126919849596685334750509096339134912034965038102537833016225873551014543688454258888255585742661075259758050323429027979785607129741741984281411937047108042868605971963674139435533905400758993377348963986565401919766302924278157245394844546458576301088312944841610142077810692598443306759478186208106971777863487073573604189752475326400746646745523407501890411781834238123076559867613441739418627278226109080646428490201830161005345758855082104072288620458707341606063306403128695668209456671053574603207863890275141989228430396398801802723212336012711642065606513293420597199189726424695710506386813355820600056677438094732121684268764250445269936033872768092240150450675480648146023949528956805834483366418623299029126101591233579536248018565501580581449211121905752744727793208640847085415006694561310252571010967890879605760141278329789428263390008179168648268434168622293281376032628972900689732371537429292316508991212799518083546511500030502102541473932565570150094025853394187235871638003577887830161510370002280873419763277648995827889765263560726129543039254956602352739980978068705838704206817743253440911637099620612671956896954439106186421376952525329877058880533322027064315631309657118261976998939026824345060533741960810634369973295526063844571945545750323391252328730830407260494665834871667980576407975981955322304574069740292455094287811487758514450663675027564173555313565694767740989588501143311434494141908073823003740212132458728416867775558552035008535531081325561969822319509145289933582412021204526769148160530098702067713738115310768514413049328550960416893784707478731288350703150448996947879318850218727483378834786390152500268547206725325914127478796786033328725025478943541451666515618926565902143139159377779163477554697799701602826429563201370799879054249125741315872973137566463840241447528031653576759718523521871442181005296716779579233383056195683492532413105862064075945053496227664690164450549378886052804793813290649676600522219714699194025955523182986328160358276823524346312328167498695035056417724869308800771933106568280437949600635905156531251109973889119446364724289988308866887558711839511457241343876544756120295408043212499476734678111823616996563759624132355896853337734606070265019092737665834397749163659016673289500263984345388080191473697007815811005531060983609464916792263668970968176719241344005289548529327559062266442917190994312054465095800775782060634989409500293176503308518542806777358988614502229940666035006926604841818485747857251176301735920213610387487188353926124152498386796469936354636619084719288894401584177392223986262302529840031470788254127119828090523422254572183808252498697377769295751915535818170686363307479622790380456425414098517013330331183775573383055580465141261404275773114052222729505322387317786324275983626751032131143108547947701818107159475882678783194871390604115699274840576732314174771462171988287823364891798744435566636890556455117091107991698492782520540593710332956649400640441980998394693537741776458136091121024902479023333141538181275207343096019572777904599079873769324299411275826530920253652224201487171884333532735344720331655718436203746307958044444101933113099924747806265985794832572738984419624940318866459117102811168350482404428120626525159304491966230389119083977404520448707950516965229304814147170564520377529595897317799173920632178270455832909979959925754564897204762759383182409270489350720789492457924294712292781690427691196092033893509899278157680429507727018885162835497389997386028058243096298169749931829629785417854324630070510433884658465641115186536199574460260273677259940939623595597404694972390071202765908465604185141614811229450457439527168091637704903617047725897105023226435593674170336352628319364224686546855716912452465147312221459042250231954193798292757067944557330793481650378621742281669771908092926091418870810888473800345221527626398673530471868936710854139817732414330212848205651567629613099975094780448795248998426790901519602228655996245966208544756200774378681461302584167281230506985208276586548500340670504498069284287791855294549627258401549434385338060305699684486720771411151542043356970871958843784640735603393403590879590753226534332593154445008072230182340889388434773946255577667732246485209261759055660177157865522220683695399800981433393071236504627803400719769878142961921263317993459745438435092793212627323761989265811838869369094409028839886694668985522473174937881789277693913869921783298602313925158097799681588274186122014304400191313989620633298243699173663932039842368933414666697955091224668352635627710301591493796106078898304135237013481649846264668235425645801321071011832245622538620474315031048577112267059632402639491836334842853043171351537873313459502207508687253355361419382563974676575994390582156850456175369186529110463475438803719845334458028254479484878063720707506992337714613296697202525504231792442691788752998505562175645141020758399861156962047245053456778311352910211121680165087811375304548277563653632004567595279257053272824281597799359788328102413495751784667145046658923497381311774036226161171299223818139562918730042813659942406611135728732860506219820001519690476686634560760333965699168536457037387639245475720916017476989890929220773754105445508126357135199345237037382928519388931765976370533727669682547140273155694944818373055313043667116903237044725008453515592948718525664084882024839000983052793289394411043869775364047711475370674595196878936855018731461990990348726860478417556495079413270795928741581635572473186945951316167325734957851210475221304070151701539311963979917180895587740522249090146137622587735618003141095972410433437985717135309714126594101703526629102678288378448823135285380223524276824676701108334280646603733213793814255085018635770935800436439664130554214810663784967937526602086124009803955252672030554192906430499225659474143894845248521784428369343943871529165158452605491921231625577668986716488401832234164493796955893645246024389415385864398144788053182927330678094470634745411378441675744372377078230997743457937323149146870997375032031901598501296581580631637528516471692122972630186489168143356616157361226949305281175890808754773479010371332713088316017001886311644114379507502812994289643686137796011170858223131436271487009004718829440622035854535274808415241678620666981310861702051627678350427950149623700285237236242114668896441550678199877928178440897191442469475254369903565778295886914341845310446531411716704493130859024870390162022669467948982081287451738032372617987476475105762780980823562922885642815320288714073375056838276712672884562984439777994154043413769015407433422140438090201454657151767912746673867310765099988085456951102347381692452270284665270951846799277870791706877984072391270925518221397878705058402964073408003861668949890012020984949295825050074393698925466616315918033297621659490319947474085938429746747583956559445589532257556726501424549818932254535760623082748395989773738163780944953345017991903612257301523248183436039110272988803226654792856141903639617503169519101607540535778645682773274261481977986101022561614991728738801371147187889816216320430266371420618724429662547534206349678527967759606268330441946612828951648128522375904015078069135046177110822842321565909934345076537190685115911819642860652238008507216177354000093927613607352604946374033373060758799288411911054339950355138136443211731776313429157309426407202890143070944230475216244651529492187251341622651144047523929786688304789934525731998024232939404220264420700463172824476846582491112682008650751923059142921272838709106105792026487424500924629962682561108313962954529950846755072818813825179146380103297590749184443062667088915372236687451445676771525246044351401102492095179955942789163295013838547216383040466724888128461506884345020726033412321784803172974006598788530073158176471621437576911110828957702622055467447946446128474543897322711105542116004872312385197871128800766518819904136470205094106635350283276261701998226800234599534766338880070562041677929142062807960057388849621599196790708631602397355855931703702553428583037999253993000437562184425434332976989449107060027927776505917023034338529360080345338672424672529294184247063015789410711014886819853954864152768935469056278184130423475792815891113598064617779011434362423379901751269508614480192621587630419869748197069629459484078317990114740798563076795779333911700942240313760524225555019011950970186199668066133065871977363625803409718556941495337769653135252755049725126390920176892759081354851736112763156934870346291859912561101104434634736707873894664444377681028589259917047061369654552048607008349351978350976337159005472504426092569985832727348652873464180630154564320852033733935411079832834323197355067808651476964529457114253667017480835830200484448353189491181926585375000146692723074763410466089009482837945099926046615053759847914498884246458130484838690653004959335072669685466368667301559290257029863677461429451540672676791314395292274844432824364207797181104790578215930156888147251540544719566335588369113120717122523098143982006501594055967845267022395620960810437959695629555545072753888312027379743071795917621073272182038070232385016171995768057550358061235898208334821423476333482390623017658283314323870180332771324642298629872841865108926313806790331475928046062025015301450685767945586937889664441084639762048106089452499410115252143528790382214128186361772396226343296288071198786332403783248311869934647879610173349228796007883850632544786066012812743414900444051468367031153702737905147356276008563417756234238654614238598477331882926887900812728941129829273533831180453980784077848159674881712016984481545289706392168173615756100598074546716802903143914317743685803386201540873343933072555421624575243023177303831225549335628912629757650801222152420246783236469316029065600535040084286110473777787661491235895728659081672435724310266468354318856041030638958262335481421034887019919421614707436912786787406684712896652254014490270541730304301357233876835060799791321268785045785587907170884684048033388479762509749633194213674392920568660546542284766526057627876776011572499552897684290626026219503251753922220304193268290808709441660867448164718571358261491125834958956564325866142355161978292827403433485936348394461792377636319812358394682287707215540073678012215516514092920709594733669090744374185049927856903131410046978020826232620222100648697211918088331463993579674553862167357202633200953627565538970305398890834476423344851339380116210946497446472442262698229639119120682873474852529489808407449148916155786688732064732374882997384621153127851330693204908839419914642784923488483848374331399997207893109859112102968652432609901288922117081358441033994816579697187312471223580979524207795491415833576956641336459646254064516416580191095176976865375401892227739221718427389259934603800243777575665987930054195329022188322931425113530883556718359691140980929785383702911813277293453570990143686043044865059248421977913479547042806098681610901648751794696890195021868507005868985860745266299669574750228047840825905770836942927813564965671670688593496086320575051278546236480221231225384803025078658258313365131278922166620920496654701583763000440121474662543481640451622377050916918813633746451215656442148128538948026491631864941484283510574864487586996654506341123474882047043549792137782545816765893292339838493867372362679807686662744155434575082167661933919442228766241179303426624689282695682369776994583177183104213644471886397011158755654987226533556766628658002116810623960004941491489163182509615748094063110162835681448371739787845496619701919569625549785145725668120173790363166158981923855288850138268114595767850480611423498909308869018862702280227165952448500321340317920626950831819735917593851166048606296394424348194342550084863870058526299694554535059878323868508002699016684207023494682343438538513562142639598032275364258498405822761446118882248125270263543888770535607723273488200151043796434499463857277637995527073128172242989724793266975047846132379628401997252333169085521763910081685292365402351924116628425071770265675178824359722983868939927906667421175399224370264022586148588465238263707089737095796516166980396651327759508946365658826291685599484552262419767721521724667366816178695516056980617039410459342731281558313434888066303259302297389415086510716577732059856783358837321215896032350780288033254229973179478128224558913492161707947897002367030178320039435081101461060701413753280831894095064182003083688339941295265667166852729338065653933303740257391087248510279255712872990389830774085734811669515928980554874713336335970747759607816479297257194340106006227856959118505589127944787725040374760484945859482514529402689021448734313642137664250209273529744557723509722035144705080019633813110357392123390462947929793651638397766349489870034833805264172196950854867030398786740260636135461819372595731694209127618041525396263589093851531095813059614607422538341822075918465627960265373501277285861182519636331627115652455478489231056726797597643031790598123566358324911535498200972635444179556622350646363472316455289619786470256682687591135142195360899535761290842429744288295520228226736243114567548252681693600568316117415587240022165655166478521358058197552343698553343347608343445419884157804097603319866757068918846696310283875579936002086517202831583219851843700724011480316079810484496682256680225344844923971974284049849768732407433141927904343201779643246640882699218904732832474704213680368007515545897453139328982896411196630378211050490002169220945917628914301782871805958553768075465698559424421319434854952680775913472940309659304159148387821735145264538805095699026949189635054060672133317418949492576698985825523888384339861274791639769589786420828328528429002357807806740526998944247265925286416862876499605312594649798027250235356195487761364616525111280136166997233572016061812324217033429623546772911569178857491801443282339150327570569930133970892745046528270213946583339645298864053256043201218585090469587735128446634890817008953977105923221286957062447898332916971172810784697558629262987440042689315067172333036827035446578158692779427047103160201087507453982680882158847992739645125835538293277119479814969295840094098444572742356721135041535949606549793865924139817028327853016925331053820239028029322633604978403793539740120264922361845693801501961145101918220192195352821639737985237910649010000798231879604668649131248038134959758338404994440549964227893957562660796068326187814528430370057695663618660080810412564884945107941439436121480967858479887248472565820807012776372290672826225573267781521469643701113880483765051469526213931079840655447834638392217855126811789549689431868813000291050877226945503803007326063681429279350706339797785460588507394544230216490395070304345757303338387645915116508463286128120390198043308965909046172444626092443340033206790359514473915062940000952882017542692447796921767572285619842324046760047920042580385307275081252402222193599265452535968315264807461762860102588353566423039965926613098400347088661214284785000756933211623839296240057245972651974653241165067455902326198736513131430078099029045173779816656732667142540166134363829387462244568042782721935995110337345464713760789236821046335675688633688192130643122552580643556283014806294376748612962567219853770752988704763323945823971501037566820237332056254846225442692312006780757075940931384517936028770530841854071117245658239034494847419429247601814162151503401559799198536445279548598962106759866762936945496964084284928778623076553469336521059958133192098712881287460278323191134873767688527333934500190300768210424421552682641230020966542106945167651535851102758574325728497453679574613938513017104398128910386529820978386256404040023188564522313542042948103795562223882647244475018996381127710375725748655501541369578614001891108959170652837464669210430753035033240778873409084633530863833252352929435964817248459049762382206724689019458911505852753378721487741205971244522869996471800767956706605603296891961119625051474856247986352520552820907214162649774976713093100978909467819158661375703980963373640786393468306180077417210950973219507556614826737081449072894799388971230276128016296109312666964309539680269221197803329105143687506277590468765736751253938583729502596566447881270594850451794186410306042558872532464401341413760181751176969174762529455999667573291416531367816303316541117446956682353456710160062614425417680550939579604671568020988152537212962798649158179891502306185210643220668100529973384257478882584416181952304076518073854774549740169650994897443283352284830136734141866365350845036833845556965245274127366717566233594769706361191037756989175121824077341793097172423850489923789768627363034045212671523979823173630537118615150843361573730445069295260615241943977369788729691103391958692750950672890566346103756387072079746502423262961492614879847402865474214121222528600272948372780671421654352329420902705208205625010281781761039339260230329343798731109514655046723111435288654169218586464668005341768437984672108849957555658723176947558333220340053672744401069141383117266639637721306174151133703678015675736368122915048537182844544865773771659643802440195598360590440795106219742572904586074609802876342710220954994812611841959050220034197216787587457155545209103364844479356232960584829168052839128409561500431120627926552406515379336938671244540561832083735631955398123638763525058364175354758980533759114521336867947523940603196671729223005420697682531049823622171047786770606851553523272511461658277276951566907687503364978425594308175054707248723011223622400023460257319320918790414091969574952802348422135376461529627904708391394356394722419504312702736345475645227447815784548389491948456463019699092471577241637566194564860875579818894931249213101636529404939631252288243430564398478707614753378499930892245780356816265073455096158194150281594268278565842252210065251246681082037915927582100991486300466277776507226652625713995402466908857933550865995437858578132830598614598362361001492441449409613693260869686010879380333665642848798599180922009949690827505914589706191767273616468572817135722765824488838984037127053345390813852678070103160176249405028565730604816306335771952668458105325565706609973233197853447396990033614722223838936387095736950800017670558111065965963613645962165651938335009859569187729825315606097692148831634431912628480239081663994748220888049009256554569444543547978220451977391844012891817307821535364588503541900834439371958125299385290656556749260974430084945370456919876598076880650351960391095550109969878972096943877983769018169453892606435961158820889795293304454045617123378338371640368551462299857036359502077049406257632216832341652238458976186162997687422300112904443629318802299475841676243125768649913177923623328584710512763455163251071762063212722195644431207234220191911875335770765962478979056065460738964673714417609603024464689254379283229735660815109441145121475414876231058913885854887453842849108820347647881660384225864339621009500522232211126085607195615094381076020100235510361857807335172009541613156233835077410326782766105045921773407300114321581088227986410545261521855965199564021998978287903275944010723480349742750212477090567418341119296299238948037940676952509364087525882399697303254712241169101380239667729354493654382866429570298663311063453260871750856736895237785077651401163971823594491574971436977709620088190414849275909574848739486072992336488997350032069296153281196654558718736094896272391469665992485956646432779397992554019134080177142872013458487524417498131269827395921489769257820330342167182110379632490237555413193685269264366288457178739288145177901617386847623850558320783750394962299028062402919666459850775953420076501094393402116711877496687657587309839801210394694705163073235709764416708843056017642511595071583717428778858512088919686897913820450892794342569225946252198899789606046733341642716045385713748985948201324764132925566954656339038657158785964176953349516979307602805935371804357993041434722495367708568170440580236302736336929719808014463502224166750600809481992318310889982412811557433941679723948585179192336511056966615214514893185073759975999065713533220932358084865035319525275972638822617320984947646867214974981849964011740998604522992561594187095537019150560355398807362043136865408227240779521368818306914740279028217443731200882070787697433414531650182921542466452719499116460150161249193191693195514325360512423017670768222367630194620021845897801413156937859857977153104434030137654722210430311229703846981435930050949076034620594361521421983149948361571671649941969821037188219405417125109665784584061323568668053718959375908893098399959090177856572989304831227932612351106550530311940574532721768227721418851500055872393034678334160435192870377092502135687306779785384494231672394915334644640314151326234339387908869927065768807786304886657295625563690660640572171707654934460611072988369996721691272511937233299100158011948770080703884725976419881447713672503284452105873602648715470368645249929671033671760612661347427209854305203847572633988739701544937857302082829435139219784878546048744350974839123401705546468195240423646918350712058280554163662169357108425938021877763313484188589937790000584121663650516513393283338690001730754307899458601527076751919107921846646083988555119813903049448308980046349401899677127095145022334825707067859356258546059890429365616590701288346886921506114308804942660068256240202607248623649819695092413175172679100946877450542054713951517831589983802124107110818592378580395916478459541359097895523894188267257746618054371917189122310202090518865688632009790719567086312123495362918191587742179850534932484208974662117895078552593937576796860692059517323851235365415515306038248501295133179257722295814963551331452625916067739323154646994338283392494835110166225543570760884985488813764767091541181783780260122272004266701053883185751744385667353207651866300123340141485960052747988318181170223114364357351159195558020642812887257146517722521231288222570333849598334053448686149790840519239007643247785915469190423137317812751944891572485073836823581715649193236181610254775139001722669296040431491845592804173583672721029123707150712634013492514170197403191722761564505631072912149286331826804736874081013901358645268212057399745854949133051955739422360109476385474122933956091587270873678572827293648315001667751599199749763798483556978060399264132243020908588028452206721492405840182714005765598067197061776076332396257344907285629918548471402973106444913442727821817532931178084954606943200713453264833033558206815140920557432219246890701646569570785776242922899702535089404809922627326597808811643619785140363361858717546670811344560658306126834278585899287762507172413056682004671436517026119633276022698258563456067404129014459292213559850320059537103673370713858666149828452201556137549791178828953582345211701182501234050153940010316171527848962775907307251169421000176652399002380106202009929048127728517781091210016668573955561258455772750491207804671957415937688483820082868442475467312754109887312597658346255348099179190146269644719866547264339792147237673880979922743157494402527764611393559994065884713734573975160630272760196169710250590860273344642554675596245939260850413212939256891421734215864518842135726803281518592417558685487278152454619742716672321182858216419034794849612144432541893454822806367972229752130905658960675063573800399895269959072347479957587235051443566320676140285682913177758170687700129193834743020885610086737520135365046257663815794367383035833695994898221958601142085930631928103997002315116759892354886307851035752262015686304990699824588639969894145477314158874558512836979835194137558269564972578525034919796007302843190408442474930281233546241123087395164016112895208085584213875172789922170626069340906380258754158013352244430486884814156496080199379379153089614658480232910432912769630172375709807560904212980828012696730896485380576770334982170981455885728034422714371094499146972050089746548128498177054176265329770956106703547178888479041976017534243009032067363657512473311406383952933355540456939720669438133048263946876122058336129205557812502345342208431645271203045889808210918817400546845292897701412265029581247072510027956001807427672199893953654841902261080858912889639449329170852358596985336397592272096671327739545622382299846579098925926582978748556449419882857326928820979005831021361816559506754386615116877291279883361831068879122146889644240283664509418885719319208085409780116524736895963523311703582218778512211756056624204245364415549664524494582084362412456352700096674939319494707935370898305850549175825546224874668155688190308610941542107440087623557536346205564116543530289449016129364283673038971658253494949093889172167861357471284517063720045084980937811965124860662790160155866561457942936972716283297306401164278866142972484031204069561365070095368842138766834056068301474664532432517833678314218792512430221191830356272072945949921541028542367537183632810281099064372748503754641325293970892230933358359959079952696092209972855779577126400034730323125197917225724403612999213315368943182703717863055574141643250072459578261782317183499747339133513272936529010469498478514015441885165129159363783519468637269198831039658588468169920202339204931841755168611623629292148551396071578963910500744909672157588201923473758294835424359802240788366326953954448069511872142819378072677205692443156650682129858163639951103419003281467045344700765693017434488196737722896209274828454292800552727802128328079804749040049850738514761450284467942217741667442105378479645333692179116752410945573059769355431855916012701647611270622250168350373902592617798997790262597329619202396205403502985149605765710815040793709362999778808097539108220709760347095504887060523253377997717449352778603708817904303281540673415715636792573021932912831881300537597705689723221804450874744065615851306265347406480208222272245159554717157740783805531198431645255239397406552358818233863559499917923520582100801879419859970022909560037259153232152706405471032277370038359631701986938367834068164851524048021365692182952849585371506008991181728711883242760191349715392639441466263505609101660970979899605448083342383232029724770425637789934307766462658018371878584333187579996940349565723678235581944482144562354679371827644485466327696914281941579010881502284944039781489095200180075372324501091149463106968828582468124245813230556002607514955878894532316027190133074831847376154496723585025270722274992324350972694718993487051600965197224653700985095514938068543702346088287705636061026102479896820316676457092927718268758435976803002925993607775249332720369419521688475470233132578338258185056876518642850629226274509397738222597365989468655094172933272935556034327733911582735956002489545900780065221502849809071699962658289499645771829208545562609435802264044338796930614391241280514907686732813663557373176582182760942832675740173287274233366586596903938508231844815558019355541956573954097541500774802814679171831704318935992960527247398695484376899584801926168707483542110860770443434638869459014908722910477992655993948389065736333977654285631387756897448784166187215073165157017455584532266213157228022915405412700810753477426604329478290580397083895958312797109343010352206376732287412244168066911008697691288186841808716995202817241001273732765267855838554672107623129816007085662895371454853498863879758465774227149155709750220196776679716081463326547071476838427506840670922064173841710722043843097902091700899462756400219775955097413525436564307361724317364605435661442885231760595512748701310596233675529014692549232598561123468847740178465180788956705113422502439439373210172232175327221039732067199290029569645424093194108598929919069103971026222472324898895568185269631784649437774222674491285127647431107143873056167317956030705754685778902768569168454631812386194909376898708058532622290279801132574694251042728996898877443308187688814518631858020939255830459627683942313553690507432282285305700674878837414821738917682945635818067608512280447104768157236581357889187139981837631520428138354844492075219514183411505273194892358535915827540752433078761603306776523986332094532781493163344599519989009957031925189745609602778127657000803713885980310107834395414162318015278220653134327799336339007957217637998302869183846104886234982183201684652590806220190015030500836275564110315484399538203997027486514173118987061939163709000504924971606842384871541574234005689668450242749376874491095358304952053200306243352998339227601670156599193422035085139540429247444989585793907529078044274542269065756512632779234311706279395351255626514977351658397737161520734029451260552570342674047733012514210215026756303860929062986777614948931259252264742035184900957512758472371325861689867032669857169510200880809837532713296677228214535969081041970259000706603037343354501058391597146276847912487190735532927975696028761035073426546612371483290485780866090042092574414897504339784237046718000527590856288228199561922235490017597215990790133743094721991280369998554915347690776763671635024587230634542101340214135280049822690628548320186677210986927997606336246939146832255037706465462565584919452526137346861773585147510661306508620669725391048514365355819161806963919337603142278351194516935047335211369350081130965247029073075706855123153950064734062062188986770444641968148622655311629484338327995969575818457913806178881994639556225729501202832373995249040020542104851633506521023956731984732359101658601312960443768058530803936767733811938384629213107615723840447975360111469424345654879480530169955135213478099951469184119559823102001959654302433838012573352328822818968142124865858678377680677031110722522522445517258473954913184425109925278857548141642387181458453237854167421882916372356464809073640361964077161810273841081985258653659860213883935706707450010187959854666968439658720534883213311394828384673866971213578745894059853736608339575238094763443105832940280041434896196533880639633245304769092719629707661859528420389256497602735248425729683631397430686163074624722320393459815564889751262128173969794796299960541307308672493136458626522975697074083445627343511053693590224497483663975234564985683596900575098940286816888035183069952320518984027741801329623531109864638972174744524743077736073327253338021892521924611442126912766989825289317208474327580845239304008112160474862371792035142992767651463025663030131484732857127496312313677980129005622388674614445023357470715598808716151837859774979088431616688101788443213743894172348242791335542247081254585243535146416158092253454384304876755794175246077993021872530539883479976924614196472124415421824318011075045722367569611725262969393506008372039688973214825215869109295042225986003890602173211706366865274563765000053873820881438816224062813203792084314199442865117983908720426983399647092235412232584512681936557873840301416896573319401882864429371713381853006564794632458344153751485652045835736648504816986293354750850804504110336937391778884649145249955034626733257884916041925426891507188357841630466425345645310312398970917159404689285752725552265410342762738346290059231608117374744444986476739400657109387673608000294756646357372704568625753530569713351277382230338798663661913829299162424038509168213162624302654050752539094127792041603413297088464381815427302089853089924329295314497077224947893201057495763111595725401312104554976450787975237553552246173064354959890189503510394356337256603230197566783370810606020113993369189447608186370949322891326136146188339655293026382539325962267612542166508732172996180712132959935319760908584271884837115439817615718684727152009880176872785760979874678610108669104863531160257359588483104989684741371212327780439849561808085446633264916221929617136722719002381112909667401879923940162423574354021324606987755138623749192661165407753597351045607712864657445950560355185778968280295188820523718825172169845698661264669742757916377460838625808168512499305045418196832877724946936177648481844192910470797857287487469646804319246806067409565678292611336703952137864875258056685678319900200038914064320596178065246188584564952053679683763424154254991725442031349070135433286269647626867125917898907123046902362132275109753617751001669496120661375535050405567186385851393091061597310810256161042525174473662868797516937634165784061198272154341592738644969145166209263926336838437842688235245544955671433265226851822919090609179103266755029788764324583008980591436010339159093672543293410613164971712711464300190710522859710069870253312658685698256173498202396254643193105390420551773854732252333270366630090613813778896522113183297565448522952741197729735211273800024035810192144549557603920827221521109188754028340122537783764779119601264218891915221397175410376592464231026034227143032839616473220041172046208980195381403743640293744713278188320912148087286507476390071452366023686875352289180440454330376140825803976823904289166715497309475510135109695625463860676924544506359956832087371916263415588881888345947246780687123603946095901037031170356484225591444525022381661352818059176476371741817858927645427668066546469062349699620536306169678171955178337391512604916070265778202181764053926204092474122305622414129522687666901882701481166613656096831670867805191512354925146914078443339286343437952954740988791156310297382828720576184596689827651731171043020415188084597721009246283287688012956167353539568778098054893343494761866541640867728879233323094313298689128069488857096095489245344790724946488753710579730891681543629846939635592625358737191676896233144441421174630935975879515502165420425501903378012092765120728544780631799089965596815491697866585917880396011449479832852192284870149055946070563536265983102305712400696219928575284763985231222738695822717709208043619414057509547722349293842889749228664207885826459231965451882252507604336861593786827722404688527522398313950514380843568272815093661414055624934836822962759104885085727765858445148682272231660369661809350396109226308110714117523307936532653789821526600862124668233054871814099028801511033631722172093155006535391320355211294104309937702861056290455420531285547665062731884452676627314324508166462614967564229327192827119898074641169301171040312607611678925855885967288119609278872560365394015944730438136059950554634454590156117891776170046568089905920629827924089437643176722005736307417292332022254160751937875677335599031355609100307748264327510691475509071349959274161196541291720498810196155326934235675434442461258782473725761196057623616049383972489992257562629252380235957851903523970573974636717770116009499205732371520377623203638801610709940922611134464239224898575269537698116540758658716646875427390965908870837337559176043448531823752036881108025884006747101973873635821640602814310673967510713126718192363282359143656818056774639550198371304082019005910322127813890713634715087327161727178242226819260504146036198556864878160155410863636255890868072145686788069783505818468144628074526301368078789249846748174139080495151198918431978123024418428847571000671470064948738413189740267921281906503402539403187514869806505652713586914470691671296470156911958271208305852649514068010341228432755133541226201271747547643394387835754247329106623000140328790475167047532643221582471835276262563312219459873501720273752905339541634657106157507641287329754616776274646044608707150253513698596593801438417085533716301512585683547103116733093400318662529767945314066629931703106235155913362267948390603848327557913925589652221675528766447486159681333922923825172827934140435455103946648168411615414699174609658278460412603258052727881923295030861392370202228101744010233621282756108466211035034961037609195804068694201287933621395675613831356667722662224334405575351220605560653937131080539281239701957675835822044971129008770423392267542121025458344887575236736387988802162061871752725415656141915741230653483279067746726696853937874007813847144897297538049745812522670223187302027963480605446945757731083068228813776784692042201371780621860724282906617221901636973791545043185277661931268100345162710756465598085704973942915864939118382922875099741602485386671562221094831734872880200703796988785936070111915745150964372488966447021543214070660029253090784691181536792881907085535690036370772709396371007419209184169085152171131955839589954987534169577447743121350709079183264915054260898162713613867094004622120511596288844174667765455850620659554043590383887106003503241068474669376057770942165678753959851457911151271045592007825964717019204435099884129467921542609567077517137141822058258932847618094699142734372785860007267574287047282179137660438667105681509240053495486861913620279548771804916586031289613062494569610374172416025205692917885973507515341102288952277829853469411153131206222405187324738914350634670143957049431348570947692771002833921215872912509956947733534835066745106850171001160481750661562461457065374659577318635625988492357518372878720418013555498042860458929857347389140238444918289309620848585736782758917047770223345066733385061739317692141191948411531544608058696057549488197480489116128887753113297993028960032191436943679083529708181697893603323460394211507842621519397736236516623486676862583256477779121044342035325798556455363630843641992100344514615716882135870506483133392859447955445199908960495056558420135422467824767283653530105678321211051040473844592726054788908805358812957063118412440116869007839242903798319819353112577487166508197905544127633429811802242735529280337280404214193478416884977112592533366016412684018586225082050021624065202604840494639607933188216464293115259258313188387474386473945089174908221828484129100464573094075683611675780865390735758892876724636227703561546123239058249993326134912033568943360552759969426805509034922171125707504339078364580127116023098991563911287960406523980028557281120317841442708201791896992619618894800438774275956798359976404608263491946853082203263550425885539779122822547594120595204846094736016849388376736787957419495054139345159496907901187243966194211065875884709435006210380592811933085848131560341805724705326007090789202611323880156098058296854953226072358047029378292497955671474433256508872538505254621041443132848054219816406857497090339156270107944124032171485037176736040825986281306752232864703642676096437658312864228950510305846852559932258574298289218152528168288253690750003338702411029909919436082509357823571082557083490036145722440259857052217024109611786708836802657588073632738499898512343944902598640994984028159957937804421698405254954684407966793151055805758163314780386095317915498593537902396124920839937156373541243648466831531996287971014343541912251465108427181200146682066180294035054046885706261108409125462224122896442169347435007941295252914360520906756430604245583736375870541253725534126990633773543442225446116996639970726344179574100063821811300562903148902775371736333050345902461798678034166082054350694208069085480389370540351926118372448466429219992259661111771665635817692494554986697558052795837171986260680502059481113058419656122614625695046387423888019011127513156163691974577919005120428547029424385445195638937954367631775781533645657993332192185264357167948979054051290826336742378692402696269183715464900530796933225645877678030266437277390490435012728715509240169412141638849893890077218423240838583387340078921909423891378635742611507731874045496834434827952250310091121346114098676151872237595713827767775182554118756896767160704477322830819668502539338875785840251708996739100784779237512747592441613515546401143244558903805057875283228060424435465899467490186968241315600415796030214952209043635308373570294283771391448149678659792628007970857286439972837912883757589870929590163432936723614781900997430550693156980460047124014208961938328662001379922451202912826629233384895489572409928281311543199195926065944245661288180152213246028366953297362664455892754741101416345036049956040375685553224249334248973272713009335522061631779828791806181930047831641479986923606285258435784005776179546817559568310440656250172921716878304648517444048884983690316840829287995617557070758908958996419701469493610145418285518779578033807674469805879694789282331516672213233151152740258434728043563381186684023547059953324942622009885179416391715050273364581019257186361165273593189806652970664126734710915090468833228161735652830470684334977389590276655399883050460643000874053890673619395458568940406041530427331990809273529115237673395523009359346148481781202092517958035834428658416190548803573718831937370133956277834823915784082245140824154827181393330578364592640244532688629673909144120780892287872453485293905984155334466658338020023157255776294150457348962843527796826293690990423119294379658397350559633564901779824896997319112810314787550902266698744541529675170431108200575202543240574581226323754625033455920489730725018975576488560199558370039035298135384080876097597307806849374366291712825830062941658663886027363480931240843658576887882131126409088710666754909995419298993516018567050515110983752154848601746428827787685574391941284398850443493459383823262301252258608374049225191940519127286016016175181315657799889805344252569647714021083843524277617912918424507457418429691428052148463647193944587902242745166307507393249093700775982008397230812277114786398285666951060236086325913724705858372592702502678909092951966757264875726316090632923774294723172756008965440296460899328671230981626223673321698966851514616917983961577983272305276573328617493415707451849945376720716530698593475904456466868459576061322992109579844492130876225036489454243615512774218789275447530046879369388768302658276233805621530206829257862971227770425245283725810929331515637281357139871378869003061144479997191950324581263994464732890388244587439577056071327659135484275590582937682629952578770542874222352529192009539227763535665179492709013683996811074075377396245163687378122589050894400808662457519039463603289868184103030746496773259385968740577508808302974649047648993505341139514486042198005621959740021499400579992454884785203128592175735616324979530166400059635700692724269084604092999673959084603067834262984987540163798866192129563204939815160002031698612628961421298936801286361418910614183483621550628821524340881755560835785922076878682051897382905452847238041743640305224511810563628926248770244482461779705873982526169288493057022451710135997878528416368820177377916912224537474354138524253217747157853612334408354125623279566423558524940302615045480235129871234909690450368159607568492535328617805532250011098688711729590317054138766762923296871940955351667197183040343486832648609406390439335674033167633245344348344044831255918987143664799395535061106122936785700846051820037465644697474172894964073249428967653456992586169197672232122773560271906300473888900348433357358369676540803563061448800287968332934288365592113745514727386961562529115985101686847569416984056335275862044472322411228474305319782114835306035030618678152245974733294315952296642362675994204655242496392140117192990627178630160485312511889675503281662407926830518347103253001157771304292945453085000103291706706311185603154939721902839789906504833471386193538444950534316894200438113791567981281456104328803766922074905930852414145322847836670461744818148652313275420430830541782957106146521674066905756616222974736763600386773530502967057361955231689123994980617513143406590572503640305142562532737931803896407011002607649524027396873253611243474749852375290033582675504679220746100841869923721667935093139693780361325765017455940702700716223527958692049344678323377311531820922493921026973065504490709730715316809992050069688402362284756529481350448688105251052130728563815176331665234714170147111498347966418189643124475756204916865429608498699025369513326404322700107315581190100670288482621518599443818498389610014007343042509879997352056150710075293405127054115343487254260331107377803183223857526725787720406353490455449528594293154971073408053371050505648940824282083297632710582609287877120551952045054859977477870594517711749263948549444832579850738076504846529032927313026905250460664442694352073469262523873582134213481815980549110503543805441929257262222620369023215760973145887428616768953302167184044018642041679537707067539648103407089926502439050781504457175140517324889943447389072694444155321205384237513430483900756973613954351173663894666265740491117538659138496960098706287905009506293833994725624956572457131564953297764614875121723559608960957669085148741260278046048030167036449671783156987714278814685602570870937225687179736740925364121548211148793464922034011106450449916146648738827575992597632151445438082308268766041140150291710747969859286725640563334887308388046647936028549237898705161514767615662541765445717092930178387032799910082126603124043773858604477136094164539627395544178875475178005951814127067880140020282675163038659345383823827519563219231894545082463446022994715215148039473113914321921404513862158311177896969808252977006976997944483547701559542034207270109577194565532886747042521835505631396611666565156311830641813282726492415895711760303907520891177621571515596680425379278963953410684709088161819598737515333310830541736197906034925601662279644885336641822560990167846953786404958445241121422162459547188494953405042497853049733278728076273821983701549730786131442658044215481131749814112893592980856868390924988575274654957814879915249712624752222914578515685177615502300582752739064682652036924229908762914828844418361670685431429712171362533944572173537434552491480925742335891620151875688485109359022871965786261463714117562149736857981730711130103198132703008518984830875993752011539079324923043169300065282158617579357295095600809237449046136672046534408418354217564669070515109256452025853195762883199228057219831002097892284161974536058854175233395393414461701901358269562560446794365607600429564627887842054537967613086399424681819808803851345770444718690592679486357634393984647604256620501809418749310641468220553806483802231120881267412644040815660115524726068392190225676464606558604412792046965489396126898431424164583781936156358443690242890477919518798573219699897583340327073456178977728172141292535565785481355882071689870247022863704646779290270129405772332159715340028232197947411845957481691768707643046671284739088469751245377530799161451435015006778173943002008675937615350703253102355886485346313432374308678035116776894261369671971994123056046095109949770103990864407957154483240539149114006722174966165959683448012811121781779789712219884518506089573320776335618750967079179344317192352771756497369591979921025527115106789318597198769497040490760082357234515784556228022851157118934809827009214320036115103809946828820817410296972042766005769628325420440149620885971314402581063257082931624643187122772341825710392566327903591466118781901491241662453454087581687745917922568402007568708012487262570979924848761337750068794960234777432989708893871291426003409864802740885486134250620892694420784855769825751128183797205974260304805157434786602890361542720840829021908492151478943831920807366624554926140115526856798579724510718741890938794660426857505857064282044469599948559323811408249437621659631449959966760644977309705955775100961986145853988126660601036851815787560273320996767377606074966004288316313402917721274213807902133718371550148354835096627909819307204436290300283183170139412034834233440127409938434252583471181482693071655002627975027929554927302499729549330161212621988864167739018618278449332085616013477700916809988480273236064982498326195757710540029521425837130373020873818119871981970701136065411649770367298266399179332623680255253953728048402497572073740963139851250105947735519336860996121814491980206103750053643764110131866153391731642355116095374195474689782978019877495362851291829097516206030319340702435842462967526052012785391590158255958533664102151573324701663491533972100842372349317313848258740715168147482380122149215192592098125375378162321058132867376628676320657855791744643562183755943719080964145662608247036870243833353819249032170959647266460772691719282842087123042774644809005295425441089726976498972227919124076042203431685126964532579816656028558302468596894856022740382151553255804128664082517974071546411724243711528810783245778871883730494693362183940364066029050442877888759071024574349599480115536027215263230815731881818515459680634916171345423851905350898359664569665738966239229442924416236490642501292762353848110628120020009016381337356806922534514196422186177444504503404268880053441400515254014712322172027970997904559021819939755030111829270606441491163035573383725609509947220839568736402391683368153262533831175036802441927148429428073057676376283947765326091361994594016267237341847608092678394511518266806309948286557648037978714545669553520082905132634132778883844961189353135040330782792511909664163066531922217478948833971442247809109350942716883115255423075729341610469360962166409389238662815483484092218273603620118276102822846776556342816471145998372325223555224944283212848138781111877885595883020775298191024773379470448462694098076649064448673164900576035839579453923512318140234150639572891618427494277264968847394135529672900979038024412871050946787858500546674205478466122357742925826887250026410538279112011910744456502856418466689014073141947197019152516241046705501234896879709330390177389591012275110544177091028104941269697455286669411940786500648184839462864667190795595086769519765112386644430269799099030930775348605378936611866201606435846399914318984462223511516978646645923847276704772760982124854888236933675335690761930002496583776270493060716660465155970637530559967478912065587674712148046474518372012052943026288780305343908355949680548357056877610738045905225626207470739877378214462709078247081449282163829833865400154158006071071709279567520410265578977807892853520225762353830958749062428337004542473996097761185831447837574502356228367213929016453677626681617849789051237067516047298514470615789322917927649668299695296195329581404187145195408144993693976312324334703349067116375882423457028980196961828630230244560345174187369049244494664675380436600602726427992679505282842235445975233410753803627205873216384853634587990785533024719273715552074105105246829910207890551059096990518153598008606274579135976851385234296239905598509576706398896034700057478670956550302853622564042995295877734297864361559272988940986983643322773990952745218114782374604382937493190826836855069718177030008480823333960518496764558473927390890672291135997734176156512609299744295838028741368317968323222477451385360627576336120879832513074643883487228127145118360541501716291374204488014892116568430781039257646551089589813245590036620425067343437023995198152273125070032310397264304475827737148256704348708966289294505858707649107234880763883627033235935837630237391470304274560637611251333959408761682261535529287006837745061914436108121022191116035123466002449835522932614093838782707296722705255906382407238612604685135120441119212806872792592762908637923951015267214403920205842370733817422211511189833187203752951557622139088547053454499002681251081458878959074869576417501060649762033309525913631348666658352415655139816956413364392729942753312170646660546801177999020968382531089123140580892108489089053108084000396842517433268432020096853751427807701357493804449528580416137340151114888289500365684320195153068110058210847630648842176948966561118216745670549956818018661841725531504654688449079899209810477599561222768679416155029667927648379662575110138354088677483853242655312871304186242051884667233000123697111965390713367909373962544200415043429110884288542895957976622455251797170310036638037258350401885878398094351040024162662537517545947072817433754903773521320382566024023910096637602348746546845920798797149584685471175305167816893760866176308478188306761617751656210335693581011552769715032946031135830237787992946339020744850374727361210501427613336242996592139551337961352163765174712458671152409808278198482899744200311243321622382474830158166823932709928771917531752660166790529846932628160968235853613325842915128135172802369181783047360319321617719089147557177729091429995722230065360772551293412501937048085740517847823160753643421654954973530056875452613672246375095257489602846355707403206604029536664321781948476610096722697927054510758516962966916079185998515973627812202885506257836630080564758857849161316861996919026996103527660245754589865313832369874229292230315544151188171302601602040485769118181887920580878356298367485766054632050588920664980273678768849054634528556300630835502113340778636490050386334930367234138130302370414044561489637715615544094842997220231234650005906442657663663413286344521712923956664074056509180486818264917972303814918368965638132515970351270522085575474778876595253068685499160832766901015464027418100006596484875681020740056436253506077075478294152919369771597782342511815494250767541273447120386639357431454909495036047338501875027858949050000751319482242700604228032244615517266518115960198647978476664859005756424535915893701835000708713805415970345129641197365026215268554880612396073895269723888795686144059820659199376523644805162562726026720704849097112798351166326274534491391188281037766335926238145303771699325999826384831396160855135223781562054127445673505570699464353409626566331214782527921747640703010949988896028801325852420890644775523410371316497317565188437353023099679000668472074215433757839500797998320111481802304832042999085035815934784204324917791027298827660447908904882872643035879727217808731878901608822084439347215406608822437226865001979048522447833555844424125021920773661104774256938285351422117123888555925151721062827344062232042596830448296950937553929753070247165157991403894712951987704835042223822616111277439984430937222684559646595892121172106064812769328202645565799430069961619475884677280253578149959643495043878477576507434691258930130378524362961662760296542766259302908722923873799481540619451098806030253167870316201817839852526213020997097209823693920711607929158651199904080010131757889535740223015395170693236485497810520533080891587472039611669797532574171846398214374506285858663684040602576662102450362203313539870137459723236882427043394468707908871724808246199630754285056015735607120146180867577016367859532654118051072358913466144632013123992876970509375126608037251258349320089651763702252706220630723015289559123355301788209528063168981846644137350101779058593465101241178147003460122759179504232398514415594956459412951453816048438362657231927651278163215937557201777400892708152675125637115456896669646120584620587613209898422818546653111709692309422595074121385751839640619746597623771025636869632909900517927129787017177232857230897369455511940781320943083169056965908951854758123032182869424789338589607374482402685276806935332942863551480271213619768158538745831493058869671386748123567746146827021826528362820552183033414436246012795057851049918718649639662285280369385178361959659656289982235726905973059402450613863694935480132391981864181621005055754612853705146110308634945398237952678619704758066437774556809519570006829724578541159675412027187073152272057958582552911482406808300543397296266332883715141538513444214449316423375541384233221692812180349161023699687369542706258727523787610210143544115378894885282058311613872342541322276315236657365859068665879846799191169410737171270802578413763562210255039855128928275335882569576101466448782876335217454997991207873466017446224277390833576495719056780141558847001433158076251484861380688407756880371244855791891329165870952556938661420854033222372410126889432869673685074125732947041451851740463263650292174931874648103984074875558411707312077838166027622135942383451595710968286067493228626122280822114338706500627887640512378053767592439267620266966389668393350668788181832665713031993936025365781235980728123291539244227573769441774316183140220625647431439185066674555678502091750539359715023373701826113109320259724948888047665174323374959742727869913750301730981189558348052905067456763348311809086644192877340782669696893576470282601381376711425447780727589763904922980922453658102946833589999866942234517011291014674035497892284288606496650034521157183253325734851781326288899328404832558577662730302878889270411698300385441626477581516122596411419293932448512636409824646116555700415160969863319516657421748285330885795913704957811863498777825944769334932546185626232819458703485168486624389938623474684102258750817817528946703761879488539493034833809951184440860213906207384604569381399112701090184511100809111056634173633012112493196806412114517009616822615684866270553707088159123894800333496540217993802664749572473208126258697325489053344261524722283861962292343700396991132708680711907464687830841561267993859896121233419743375940403131886066697366161799096878286620970937395317344091714880291720119353824696122187051857602527331676289684763282604888123323610680893239404530082049658135009296780342849112985506597027311992507495727460785422855627709914009160065527206626096531810553901001128070056755090568316478032173664311162577400631442498968205650589453322757996477828433203412485961725694210212616906087284437462916246025086296601883496933289314827848480352038154810192430648297364238414127329745986950645014124614010956862350707679316992225780461351848704868810072403542867421729290216700328377961077016728233381854564717922479843600763270410232173667640351041770498381494568854706177433628021339414438581715499058002675301214070554418012080810634103940865985508090338182045724890375197678665208060575561813159875870288726430989386591137681343014497906770406774882655760307999440833771678422711578177553520661852380107242953092894603055500044340486507377198657845501094946776835952580642915332221295294866503315660195805735910318961027709972440349754365812011510850901627044147452207968130470670839754112977280150649846988660556565173213519926737720452925742814996615596810743715954727552999980791604013029941148173540928903408213965616261983284002402686465391074456752606026943458293007801473642542251887967196700004498207595115358292639314387684982092342085472141193386372469961506992352526456072052752900736146516258469238083506862358002925808065926078550894830167156855205718934913369184503691301869742812151287961024247850702314870614187369319978018372227609594221610065044978899577756650065242087919425313626349256096665261668503946603766618024662165832248977461890634824644043230277684519437771666795017431025503634627009396428291747339984708424992774670073895988136408729110431550179776474849906335129754007750449937061046896191094911444315623863113427795100988712934921027773271253350237151346771375619195977901200777783652692822708636848701153641666576813468432885783036286289563867588085888011856581552883067891061394560422475746083481785575721424191227199476681345368397246447094785886341065020190993776575360979803884477997855252914584971564794029948679571918147104253048929350765742292735744594992808683974303075058028531183266935855239498592819004399085755358311216186567748185326628845170549344004372142766292435049872702459796297315318844182735653322602575541677358468664487695121215058138418518684401045146567647404937151523760633623778073529502327906738360207529344983642474961025946376389590988048235057970576414380794003864669793272779694143406774997804395129632853656209134163492970774260862362796412058514719673253026041479664052648633618427300972999231076167011063848102729747469163432004374058887740292890528449445003435480931592662090564203428929042515896659781185489515909879574010942410655022637785263676984364850358539774881066512824206593954828453026385859246244256543866661175487304697961447921605396112730679616220003264700848962497533843013538655787661351277117157357700917638461369499742882537981382833842467048512656934814604071725512522118674119591474913122034367237073308537394137535335210401744154200161107593399931505734131293821426946321736625943724583377178490625888491691958837717475521747051434072525654697517970465448019426312192863815057212780310748220914883571558203674418733950312941069685306779105440315519363995089962281476139031603984991842722913940460256002342642809781874941546120039448941617474118546882179509736361606914495261514895030514677824267367041471192136294024475881682156902252063494223818869345235830387351791789449445620444204971962159634411399833694741454107843763390128040476301650614724604268112213086902825404428633545527041728493866852359389261102106567518969757231425528231391647025955479160615713805732121255683021730055082781877527315292065229585311727743909728146936178591589873349409677569110317846269402977935729571439552605811050164032178372336458968171877851971962861698915319457389897056241344760449179862532353374868694057121427365096825346836279899601525872657282090631558759880585383136777899862871280574655709370442608757023284753460488297439082380289297139445544272682727926266721329582061275021189857176608925971162409180914601557209791804358555948898856290624889359613377234169667814346035182709325282901058264860858540151658124457932923309158471650510271511403384079326449620863090088217798887948028595580665890253244458448502637663217754877244757421056376154324856297608574673909424973463330732676060612963174288070516918892373369109001620758484925192230197347530799691899339571235480937386779262566412714873054612168395086806046845232943052988134627372387036012354070021954219622142562161316862404786082023415128129039610194441704636801636206846605622646019594317488835420964879980115451310327753904587041721469451823031887716217677374310008524088765624101752950035019652298290335073244647688859598474263424562993603834438219939287802601695337415072616797362393091176276469101800241267982835904345638752999201444912624070729859537239626595213907203115215095069261098054174979632491954062396138416248695182171877967261810370076480067616148637987481538088746372494339930262809021152100441318432390289649987523095045182364896854633270660890173598396043753961155658515643429291021305252375792554656277981724651067676682228640667946822103817943873614208280178917740355569031166896926713362657775193330719974045779360968906840049265476788645680952923575316018754059837503864637923004166340240458185029721906076701758258811418472625232501514645700895535784836986162938027571869309958148466671585938669371632136625779509031952955259659854155034607889833689344909895547209471643381797746728875232930201466058858712291713613094309984299722154916967235491813497660783258170659204244255461494972054725704587764622326196622207730688787347064618472913193685835624854410007605831110056694438881767605562455720851545367119585647058055310512973908387807272930771825389199081906389433280763671951422360084139160813401327155234006666617455974467429602684177677874304926092573595459387729081926079036217718581955009824802817987757701878226184369584840907057291664712656911114481230955981455985106159289535916404781427129920406526669585795926711668738151028973880218175665346712199381841911276424080105974824687996345625926251479171325477596339374699368232347133898896871569066079987006639397740347093166514308068811495064836832791693979626147671893146717435762644165281156690123097535392540602172416445436093507977854916414681684469066484984948418080282401954088163955356815895025605243740050860614239290756158006766296394112778752172514661436706934949356270522823826693948971531571671354636297216827559105873364160281351501075200030487334268801443622663761707183838300009030969444641673687606666565395314334196747611426071221734988704347510522438973252383825392369493489735526183560174013933286471660749325108653610524812482926253853260406702622643934735266111746503425361766709913260261659214367742644501114324532509003671565960345523675708209190455790411394632687484103954347798924421380245027963315509630915355892256074446965732388512253649019743054554870710370536524915242070536654957502549204446002374380790058907506225874472293945632558889297665102708017521983042812276349727158753433643073979532946637841123125393421571748811062066833524524065101363940518440898139418633982314120950306967411824987777818627070764367440955444874136144698140557064354292666082996836234353746032787836991278280513945024412410866426137856267225431211178827014324820242937119971858386176606640533717854782789636333534230170407557691075194525863668116694612156369488048075922524212323250718403343663083126523321112744019860539933845451590480587123838946384023216346408757887667201449010569391162063367158097924560798708576173565662692147658469916933287743487286308692074856606272948307889441323106597993096472501646847683159144776650981447275652473760965709192719419034715822838181460711922926843799761582965722398404595672675804827926910815062991103896605239595152288160581621409174172862792007668534839651336247267575471127958925578501801275972752584286430371891322644219926073815071036593163432270504124209005032377793807886736955560357426810314103188142709476385647877596181059718129043374398177100551558530371051367040047207646388507106497640998054239424339956936302250209060534034678773498400851579531142317398206915906362248391337158750455871774835203531362059661076688543587310688811890677341872878602082585069572837714979484337367831166185295664191196913623616142892439053105598212038522418904243097944743298103162392634261231664290132729381886138744547495456783591886093979163847704386659771467199554615373840923566393372152440829949315401098941902407564379824747470373294229493324587607642858214589864054105864265897604190910633322736349456635162777278997950094513028445699658704499031089758913320335318021244866523001687283860862133689577737362284066683313969653305925902181350348621268046085706060136064379103008304794770002780535403599199079523049635307828106684319099477533266294859961567416368590124733057431408701681170598938148632176300798582646573001479959713258234888522797231572339899597148519723368898339355433028221082281833152996292533680079270054497820665342940316189901653426663389991109729413964944172116762858256705920624985047551424886999164105673957392288666742931683437735587022400077774991691194129128138288701373410059915657978069672756947834702000937176571079394655868845380806477871218975379338343632050956788375139896949244608469975552597205490163471787480647608370789215993525535823989056929529914974937652917246929808903270592924508298146271008543108402009530037271039104867316233390011992950424154362692717884467580929017556455876326306459788271763377562696938244419280252052933344575360617093130596018674649881389045136960931995460127866696538605520411402170606047272768556620200417651285366066198984472010041413264676906285649486180503033006398332248108941080795175840532431094979828079444687224085331998487220958342194933401020788402555140024633533295817033826139266317656949884569237884439324332302000405034064815777074922279289430068085095826873044496318268766431405231621161818760063386460059622739137876926451483669903248446440492479966305404476073636009888570241946912272382660781683124032551168188647793237609589728839852562430321268395916520619764191683916530572200509593987957126991658298206113081085924664534010833312325106117913383857746985875410450258625861467906160844680280556494963280276746084193893251277390811323462162145132691860383367254339118057602331041870306567749492183018831727734348753593819894210844388929047968613916688545045795367596560421824647454784851243301021937668589397943072465210492410284267454519453847393816349023295299518843536200827561673016380196846797651070804625378132665201769673646494480327594836890027716930712425900711618631796285967039937641592436798602458592003679194520131541624515736475320705004861112656591794534193450687689339146807251940825970888372699810324591046765797789438393696613950609069148747215308571143504247446610646641075693775326700288999238716192462975831755069487042309131163023833470730475698233203597096461226103719475838305299930423750571016468218934497206746556917633149626282935227446839222828935382532563545648987678895017677518274232475706293964770849716473141681044931465200512834779909496711306395759330145672386269850856795733903868174215407001481153019328615170394285112917685187782083244672301488222986098423039246549445751308857144936455520243962363669433461343483872501763019286311135264524663747728248372942846660048485587635083514587102083453660500616968384988758946625126040799877277042266058627628265684086555194730946642440740879095344683115045436441438264788084594957350565876921458466558778606704609347805562055905218703131433388670475996569572719199359532630804607193465464062714701153873695506544005592432858703940465624292398455584516469192236589240144480120085323423155615479932460240884816180274954741703772674630935037915086132640038067568501681195703603074201009047697229422960439628808280446797470028410818934029136311625476346763765850900327749149825353525325698441595520675879714852500126885488701790301868990238532927174006235443079643692301243744924233795104633198539785584477640544828698662194562567434668257822623659027601154479352802669415172277628999760142119757068074663458715954659837940796138157078443548996151434558599264245375301644800559069638136277433653026978557311761360944032372138573858964863334426424776125791096762647815672946950490504559989549851201624571814531316347117059857371675188359956279344891162070577109494636816234217744534249997741364155517264301539455877883098362580899676309454661731522405731095329035766816777554422553692699362488923382856049599526443149150237341157812835343510703028288288496130603603245314110719925014824222838056055704837381339234046423821012696837486244308633523199908308752385496210663713225296504909224126315681298837425602501502569355531850590785453923810404738015085560936197145742837003192992712917477315130665333400680288240419182363175958832871474263662304724674191948905408453238566904920654281667549360189077348678677141368730746885105992521219729705241879095510017229012231420436463291453775538339269660618257000782642526905778491731324381353531719673464561590652374029175139051395592040052941077014430342740956613491117573093726359365333584270858164156858078809195668881964976535567268502056047867906266245664004073756064256314947828343889038943911661264687670898272539313707415423738564593755760498669568469008300616877513403209705872334858508536941666987097753079983450587813065457979524050619183894518923927170395908694090024399665412411633330905224681515206432786752960725457750000898849984380219622520752681284536473636062549790360689902068278501830023261919919671626877578081992867576888354884109615130200704528690082983645242442590358532530605549187435763235434543870631236328349879916682034232369149675271100223051144675168655166993883925117947965130240300543270551325670734867537716901140586443268211581623295187594621152993849108119075670286676905062098139714323272551853164378212432528746426751371764080936495365677055882633168638261054983780632685962011833503455145820408478166403607814729309512454942697169785581208396023859352500580601833334368123586481249244829201148502062849544239829617437688066751238239888327228410793586564205933656933663484247571855360764261304784772680932033998936825575551106297804250346920256445931935456859048973781831561483212846928710628659283101060567083990966119709216105621027219725152014428231037700757969801982398501618753312403622638528058209496020572274622289697455046769940400257715818777022511906459771854898064787332023099040515740713003785935834180079401672332026169722138698684359809016922448321962729358078922263958560036847762551286468245659178835103434033073051018992433604838431372379767892054385462920412360989205671054214400491881518834752953798189889305702142938657912571836651918756318671451161026327066218360770133199181546763393746873442840382324623035571384320439080737508767673050286946171319114477232661452687097647111508313425144063480951650193168365789644040869732754878720200509105000363942045217165641340537930751783877459857515272155665780127464379865015196775940984599972204620499770847848019355206866241309022086340767403401802789843701378829427342652752123671724995664425416335276204551051266267818981319426739756393746606449833758346621968877292529996284720477766838562921164338890717573363791417774787010241767503735696487130900846080400925367572072768821539408785681150336291344330218759542808304213964055637612165605690190010060749470455215409742804129395082227100799658887863105169902415253680497051577177412167426345871049858410031987500827964030558009522440780411181346177689175874487523199792586373318787645931860216912363574960885076500662639725176284720507979097313072773649396092478407687051425257023314823986907773429396790832581734563176821660027872229244620230283608645735858024416301420383301064037892735209898994661468716479955439074652397028771434720420381647557924688438845240926320549181293152401790466211378785300028936163531037039673885539748240511570880195160176489848137074936319135893676285230321145633754301997540808662080594749058505132576048619582654279453264420791949883644221081109430179656238358684360797745781758097851789399741101526485468437729170345913275475831020674602764078724744105725736809086834628289296404025343244943509088540501539345833579806507844068588646786493350997251974008873864706186023201198136527055004618321191356000612895295785803187255741600777179847324402390963546380631750619367917345763557498639010404439760303825623130714555276838513836556985543390740593794674695725187202664858289975357208368407444537413370160675886181803790426250607670179630448206171941402514304694242477042777457474932696550253278573756538313612433236661716550413518111759195362729970649064581578532946918385074700235227833821773867887878735917491899711579995097674476494118824777251290531843511584948757335790091920338676848484798679335719706656870258923562609961995326048990665408681073137416813527697710684074195789584197539202621386214997904027204542759829497053888212173335855137293539205287103047396703917123055667869065523063693605955167708079748623905952598210011276212328036162801809136096005423732165415565075209076160439108415208821296817878015184785986269251555123322602648391785515211492707247939358426582369035584063557420715809401582547089074345485152575177733105783728472195684590629314491791734133689894720056540407299003776574282975775674255747440417178307555173991643240367675708706816431217914215482245707247026445416558633436578755178252258472497557489861838036452683401661303085706377647571457526704760831509377686682118149443966514622799697654639871811676662759575179683855572843729002670457899826340619644294180389953293355846886800894144088933753367028147544103967135823430058300547282069629260722187254490971204470062913614125759596742252248916040437889598495106580054071188928595796114289051909774300599903888903293226312905322239424660272553148487379273835032164107052735066991179013865547918670578514019602916674631765466513033346039924753671414000778789127445156670461320480615190089464563465849131033816843965905289531340829927922394238906467306224400159444410577914362114902142015960550672825579105798105422161046139420448884641445966794050138790564077431600894307099305586678167465649791073752950943488429505274080334057651083255887982357945328892463476357226676189587794885728148309202343636714169567029871128213678184449549799740645483118211059242812716029761471905986052720787597206973563114025823006931447220841381899812929544452692156048317423658260612457263502817889416333319564665988563285462767635807148647112009277215100015505027075101171828912123958433504141924749793166638419053323800841585896690100224741699242703769450185545150427026031766949415437233273849482602309604515930624481743883864475255187702370613363439474321342308969215623627838768565523894974199821381003591663266634967544756817630554989013168050110034799589617820046804304080000538153316687624241490484727709526614434988291608860655344381501112146254622877341589397406625003262442580054523405040709059971439930620625354312841848308175244469591806942896086870951719946846294576982818435750847295389944535523648698734906168270793528628051889575499210127413530285872299242016415739432982931810951092675907907387955331825708994198234709309245476698701209578219636698590743670530848269471137570884791546808126663833335722416898628327285170290051742217555526817513471143866956418161991667694711007121805856715435371655858924517181941503234103923784880241988379073714491290989759747688298606623027440344524984085925954427037605452525057959137827148843214312820173648157005343917333914009954820768628423488067863401820217006028621192746301032644995811120800461691835831160907779159249272289240123845855322755671969717665391375193197449848751367211917584817860204846688390920792301821076831312294982232717784077255222996868269877310116548867270049066950427892062634977906467456614936434513609066056737515406467273341303401450063171708212954588731244679490777370993098888280216569079948427382582252027011061283639839349971055169786223422276786407605998809215134156742764742656482203031009436733768324599909282360463877114241258197639780533527460137918999076254610514710096917492142802256228283336990342793247443136422356003644958846120655757880804571995075232362744336803929513037037129334424934209636589077005546127982809247277379546132553702911300603390359248669318594224009102081499891126483610988427984542643860514337429385738153498570132881253039895370999185369969281116467142089876112745266102523719953063102081728650281664622749824485963447589073214663503259962319709718619551395894336585313640952762545110060801569217407604661401882524416528423529832122155930332927183342600410740636373043931322268502302156805518151934301648743956849740801589777282363174827188313428484576436337527649093354916922049917015731706837447035157008997007087833631513702893194070745084903800857892177990856669463020127882310598208671877943001205949916906723314647054097550938103185278141867519488824819176484346361461119755991565494946318074112400428331358541094104616225652722451928227690242756292042074675757081961226181991715075364458371350029373286427126758517317362190667323981828452283336671223372954326856849119240790793835637944276018005261768522199770139278318524244653233184164679391874562977075046344101212174226481595397676119866301839695598151261342094534598649802440169209418738768891571761403272163470912105568820582453909374196854602268159573731056976159217475357324157133261274701856114299761572654214044361797527853779982041717775974029426041802915858602926796011852137960455967571102374105459702257031335184466780176670137396815752059949382631883763899266453122753209604793173587979613595295151130725443063416930839528567774088213389106909472641511703333138471603569158284205071323214296548884207861789044375003850654991007361722131458505782634742403072316940037816290715443156993525728386416511059926989282864888800665957029051174805764429054583479864253128297802595345378811253001258980676042827658974151797218300391144266318684825627150633843771342117994045632080599859779210022716575761537686413100803178766174541829339540742218501397159970007142425544249036548624590956730819414631316036673064930809465459603781980536958598555891888284605276147480216777825671541819430957196957990876792958451695946474042393242459113208483537230744342047267658031054525569816310939116517692161414056426459191809980363553202986523564158996192551145540660867973168989327473845844565712227311752525344672474049442301554608840334929156672570611464110460530344689607244464435189675882891974599391843521678211447230905328367948871906547034796524767719654615356416298270359146241803677916995919471990460661021538504217580393734596756998716840870047925686743394132967154101890675553451750027689239987602191180982832363612414505807411709217937127034962798561188167211173430847416108716126667188291181753749624361231832347920580526262635299650722821105063266810287759018653469485505892603151884590107278926227843557717831882879280776808144791994703128646324501175076333930447791556433733691402481120491174955561202060776274200972780197079401535407750692708463098735123870795083387035124736856271805950749577132618633159310648461370837985690669442151892166979254820389598357007731394356875897038097176670070560611470088792011998920727282712826176110748694970455634505507046534524240794225978190025980866246003939594063628040109765266420035763143160256568242386715077253913722585692909677511871190220445816624908827104716377497971954885249800853726474049664395494492267320421428915400082397958087477818325445994827146717725737729068387092893765083327572415877691887948246572001858322186449503048921471688327016587730489436925544069806488903850153754856788634387463292238439502869307413597935582499305947657380661363660904535007788253524597200795866555984034694395132109271761821696610026276410954196482896245015327047771947446493270446671097599844694979927065983893800772316129447524388023103024933276479220828338679796645078714713228504557578280161166815773537822072050430735816443490341857338219718238975492265997852628028365151023447380103327143362491623131594561204468609503054325707924649149073401113203166442381443806190887407078310422345499848001124160415173547637691522555014052085001368402578588593977421663910230513533415910652189417320539803239315375183294062299478830079625581458430061726894215147057063155254911531184980832033170692962426543128968716550522807442621655182390534031665226617686300685116263242814907424360097367903244737909565517141218682850139105865850501347907728348052682397599501788305551948680997549107259352790311663817449245315912132204069651304905694158770195802326400091321962969217181937624614799503707037923053504940324738431311920076367229663805269588302387661655003864281205879935089891122839408762577035535961453815456906019742978828093248395829894225179140588379533873432101329502426162497233518557202534503480240988288338869463703685386483860308607195796383836671766182558927509551674640242381067909038087214898466590403249154168130197753954165150317849995896618030531655045665066717584140713417464929764238784295470733315076037430015889393375253986303449625440006661396345436201011549224819514633478098811761120476046583938826715752988367347435506444366273452934828962378091890219618602962843701674513739118391381029871277822813771460587548783495700359214363065072811632956925064586900821879997754867299741570156686200913098970637675333753026142243868906467505080859521827677193351187296968666509421579608971683522377913011108239315898564115612093315960213212667660782857632925110401058086029058702772806075524097191254764889052470781073943852228797398076087772943079234645469450035824629493344317140189047368283999055803628253273866427673415437908400570188757038717517796923740048216478129629569389527343427645883331833088052491528767537186814292184081690613993681970855403026886158952721400336258277491777960001723020819092412090996740596568038252554260458140482981149473798355675153399904521753725759940329576046085105792156842734571811162952685003801509632018695404905663219810088631218888543617687038821981646543263644444573638312853613443912175668542296377536430810830963954677716100109858917773795903708844151069125340942383913158066308906002286391270930864386689365955796086882361291500505156264527840048954431474096553396497995534843935838126774290809971582339137745505387410118616312433009724379176648244524409341823898261054680173704577644310013300504750713671401549396986277343100666651510911290136053980323513254864484942918764688655069187860529404822163770868005809153350469924862796271729184656694747097768015910512006078793472069838570630222610245770656902313416435368332265985964097559487701006686670687481434942528652785587320251567243739450623428565623542041474755441510252559170965072113380109421429980906324360973644669467374185275293428245979041972393697526422905359918563760630150241786356575452418885973890759824249406871147899192396783825371205987973190159784108995949085339033764828997459326816000134931124412318568015081482061994329586647480950842494943964949904958874284158881812088848226235775797748304364330256736012200541970795310877216289183869973875227764440307981057292178342008227764636579474150363400663927053632305023773486341934061004141197286423710969840291221920412142196118621146203383969353488777670395223222593293058708251588989378617524695605579654272178374865279898806213202044330917361626806383674755796625643821351370553297222381225442344049995181874197048149984268703786962718359869023366985600293734725044369876360704700262596640436329348308315999179982422090197243084947788834152257869461173069518475600845925110774188583742105266414543467142962265547282466522930147362110943226687846231387470914966520164853659121529297171807839157890067233011844514022167558736670133289103896135680239689740230676541769892350602345340758126437606780792071563631420910680124756525519178395973563527994768445627691897547741495526666949519581602877445212497880625685208863573026209627620594421909941592503448722080039659889626040672792362235521065119031470143074991506454539748931401153477264335669618790825776927097088166995180774091270532246551796609425537025739096442918890714641995265249074420195350955574243015010762800632690847681608599637271442417690002366132810586897698045862932692569134579376246054460414559514720127603822721063512837199538781729852717808984629951563906551793255353159022108200568909419219488119138607096916599859195305691646742871001055991524152902433572865251125879728053307047798561779404747764550352285617478164439328481495108917020219614312781261354182255695435124216887166969663171031340410876069812648939161146872273197269207044744356634160121331046202944971198059293971103466864110430025900086147058886690737475505936690699278598752296379371266731537969053741894328399388768241634700417006365961359586982409838079349778113410920184158029018655685977821691751944404092949765964332949204850538931367137260376852180836328448090094563721356420602288557991999814570965627044611762105536801524632631219414562648491488484685510241970764201440698066186606297967503008241338389008343561359713924212331240770386236229084009783458992650437932455496721773448136497055177984514247653773860364598956108200542444147358182315341688157994591603544949167598581285050926719269436230110697782161167361086066624596615303901972045065652078302710550847591338557582155081466591058873680865381666249079700999526353315680073278620537089086247154867576201701854408271630947006280900026962197831529503202298403668040573721935472093329217051916464325417222925876874638719242774368033877238028905096463501501933906373802337019209559206407415880342336700473143230373850130801145390449736274457195224150550883109356843383274323812353856976744915963283000231711396338810789497786530599176148454382456017892595037057607577841787555041267971312207345502241475934050697980030461875609457055538446454621313331635614727680711398761130098693463374382955837136308839308809943582846386741955605026697634581357714174067226379508421313194274348751956069037554095364786709323482218786863583261005909165875619366383930830148376892177139263851025331945233527408486138363111839156174577056415922345176508660394607658834057414246763757707309984705384888048262510906452510906018865866898412941455855617913517692345397857420757425634819231113895590627275138134586581793291156413984083872332936783921593504044274101248348673480181404540177281338410158081218222155054406515014413165968486713229954406794468286483470970931695740478599466466821273110980917546798078123186479956801070568642576657995792172482566326165188126767900561163976736032381872272014234169328592441469498132788317970716066588609569291910109426672553185701814898491037806024182757009817369807694982648545542494673973633987580433993555925123116447656597110464839518130900587906707585565021882889076283679365970710285538460367834815976153559863025808493687342518745448834302384728220299997786122011336634145666927802616776754421911625272936081094947276109591205725770239717899744264491392224801061013978899174806064774930455125425442548504864047108357191135932260462588324546277282367828159406154920371218772658654552443082042971859619871768515020575952650085657788802544095267856693844413323964227228060034527349837036726039313844233515844937512950886858166553322980352662913811724379208200617166554102732058486334607807346597387084688675661786961162451340594015953515028784281493552518467195079572168846790281047152760095453439199741115503801210417426646170019823221190975350521223711605350960721837637525953302121549374639049720876788902218245949485308787117300904214809792105653654079641637490351238103169711343737993173846323789406949237679657880848020180817557679784533361130257064857646206143142751326611985078759742238906532086512854229067888673942636256467581842340315657422935089512375410717187537650967398171926092077516447923132314873149183415015192211677363595022999526844114627814476122836053493005484059069734290284035452554037477606419628822003900320683984396172477365651213591765247768540851144454585867613201502684274909563319306424288728740242758292334390368795002423797238656758747810557442159437696988773571674805177979285080993635715370319968936642626588343136166041217802191867257221746526151051345970670857967368022226915547233358046556664184486434312180761938456732514531836341022338471734658047568384041903700402623731977412640815152280475093288501392833521115045510381192722630770204548847806720882429454304667682141286975996820371603634871774791947445833780877965294565106897818261635294957471684959175583096602626659445105961208400259057689198449820967301024606624023594681073539815289606579848394361497366092884183433938771899650262151004440892636865895760251225614498691471395779522129057471961992501316819102523305968532952181961021778479117160116632336115742281802685797963145241273768248918924382979606243064638352082970520199194535453592953219144574289250523301527057889049904104972550819753175658825168236956805038682072729613194769778776543104414175957449167825446021331844930787837477784841096718096862626473680731924878670209101187602598249996908504029965495915542177243588513008582010727815684220090665874827370743514259693729853916962937015277643031157895215965657657038284212621305546663534538992618965176081916255858700041821058082516944447083528284150193800403448161623122085118883008614064467818983630996312015067735408569221876480398530465475009003008465460628545564798766174885600981972877450898339966826822721695140600828036325830733639517074824637029579175444400687920426787109048989865832524057733574379897206989413234966885340226969279752741589649863964171138718596859561242650921885690722514968151015777304218913057006024296153498829396465686911445184851019378133224730143922263612155356592805649280425431375808478284552595057263674465735561142540661269897597450815570337595132075297959069194130185660350928539826355805925063650095378396204812062454455951926114983039451044432355979587261842844854505747401010694934117876765359834548171116223637338855412470989638236138173608476933267630976622561626819034566191105541782652220678204012379185199067433275674641762051672572341467054221083507213852295459643233061022603489985411414312328212297843310417542583354194702155811474518320977287111106137786291496971309811952739164160846554036862420429122528920722537918806494602874428352629254400526521094342203331942217671212170680036381970426886271263124683366561105645678662422436175793625114807295110827192464462400978987805500087834781549318794400496459501091102128630173165104752542121130452725138487500778725847893979135519432535901336900448154866760303908081510638975646250679703319804729791267846317473256769768563361210320864209096508931714581593713618999480967528183569151587478413853389615161002068726909716963374502149368704244002325401136112407064884017071489634376599134339727124378510543124502627682305512304925860221987196353152833933378276778671208281605011352658752962879999822849582044922228468432745611956997852376698122561306151967771490291234413085196862927261856503760514912074720150514596908029925274149419176454170780671362802514351036696301890238212954751071662752756101078133503113330963976180275876606009199104332177133411954385789315849524038087512663995911330868890973366959760606282310480470602686473865239819212043347627792293216462371183656528454764386487893304284062579632508585104184232814011335215854863723627606257427557428973812386575100499092873462343902123135872087140547562131098968018879688432517272672731491967737316782046612386992677708308661537800399608004826934807324881758172380436203868870210932193143251150013270763940604447388412991190223484718272866608742935412576714990628416885296418088038940425988812874581978375122936978148834414252437241064724360557945313459597525666430518280061660561175689784957205773651072002653669966386704236721354729321029635380585551607082201231080476430702598230625484509647930233605817868821557922027993084553200810270374027954075080422872332304382601685824130801041165045456771631240762586943919166616412487241330473869156153524865286058478411578736030485516566339186987524078975882586719082243550359322855104939704216565457984254297648336062050514218582235931400423013434090879276459239917168920000069877828170639219173104747943153151964784987525563004389458318829258803786346034524537202331215243205341169055973715272308432986081320564798797984909259107443135551177269746564527075590242709381435497815795283512670683714185797972007613082267758930256422239237897755330962858358541585553226373413929457886960611710597375727151385325992847676395292991524304871834877016730745938822726676984832140312604463869933560437860464799458783565153934096758258386163108505057755197050921677487559090097387862453854970982956449609817879534222032554985345561926686464797818091958106337768966287669361707542640483286062700286027457461227987011014600525556957635939821343995978992575911898703436373583654459749976824610416920114651010160804675545027564044429765517845939516230294836933826074056815831413136635257821799101469285851208211545532448456509961275798732924577877392202901007276534105379881691186932725118229727945254429252151972274464871337273902752550674367346879033204990475929096197217236917793457044833537118744104214203912010752472141164343944400418691951572125064606121529549695287521555589252447003164903366306638977737516388183093186024801718719747913645829109203500050594035795789445700253642912370652631765140211893046673266066123643293918801043647369258535227429673569148942848332122263105809639214644132611880854514361926758367060080969895483249367175315653090549159717861763105598377062083766115319279206480945601346048317629636496315914214970428433268648389286156820330951111665806435131322904702913513052048306826075893589848712082790062796182648531341272012565161461325566972186388865604516761943592697035679461047008517011979660435289016664590292926616536981031436262057985483194060867257480708355261196025168960048502415000878314549572878146479859641175559139207278183980141227863304338233353439659027615275925566912099209915738592955161807712243024523730428800588448371119342514542787770225621614925662840259955145820738254306966533169292464086243747392135760274369789911160251457595616449054461686408611315251430259283371015097310722794805447891231947846308420697137369797824170963884674203589041320499658947637736926478206268068414976178884843270718298420867280638652932489719459425700843785572437091880225889674178473203036217704130343912023705813668711075626484386675756033029305843832591660194134905223575992188604846900678312191310277374956181839890852789695136875207921791103621463281427572001807500115611487954705138555365381390472693139100675158363216611781574409553165167864469717530798790786322930187455693356314753734471484955732184986628670335119914601034872287350953644011204746965913009351905642451664420048416205616720463339070507364375616527213171643202555558326056016649847679959595003365720344199873889437345904754460040072194334579152556139809975817443222326906280667966773018070541478264260377145389114790950939090961312695402310415508043864292281186868504658621009798633663534896367405169627209815863991626661510089786611307122542616398539811015537391310902917533656425839433817707739110214104838744960088677138262314281202908278683487095646662142854769099794387981233502651704006168131799080357817865800975739257737317820449763626906038721758466843376286535109942619579759969872357457093998135776584209411545899975462888227435805290060865586246062088071032656808350619852241822683435904127926340621547217786110672790618020870885950580218637974426798316339930471638606257566314587942858570051939178191618479902156211252239980482973964990766180472299658743383486881019135054918865646226866666752838178142303086859953910814139075097968328344056632032766091523943269741860937376933867120988727993382679553150673994271840740599836699532454327083120587197182605364864497683268917968103055826844263466889016612255109261656737629769787883694690032554791941896944261534915292762869256630342898412389421807010680023477198561430064263092937387449594958218617828751670293392205700611000609077641148615148552392775912485432011274883881827081208896652164400970142880568934915339407915460248307752524429546510736477829271242953744080416305765549509724179486631045133839556126489514215271602738197138329657469187615105107098904969273242721807817014692841875142721265831555732894766749499390238956818660338347058964741965423223244656259266131718521465784761590123434793717991229690596425648192320437293412205027558874016760620627391621327658651600281659113736490075807068237221147218554983857445744548486275529859928218180552724189284845897326708544692268786024039337850066261152116675535866682414167039574991833759197429671138179139947991111323163425988287291360818670408634012806708876680935056060948256947943894540671962235225779742310021239185829312041080045371615553488251868641947482627015884553263593634915918556415720954302670319703695276526569295581586485966725743771292641301165608103026433788789111811235312503333829680779231681198297183669966862130659299168644766558231991534793483954659181107346908203300915494954738743515750443838604288553694367009017695522619774105747213199742719251536270619918888439197997670088873648782074193064248976133504979456555893511718932780096364894575621194579326055006371592946843439949165463327073784279686571238304301363023010175042878212149088232056979206934858375968703094514089558873274711648623656975320277980107327611360566277556967117987452912303300507630760129256999358433228188833951252316172392475944006377164469908040554958317848240922502384178819862426561154203420021388347808531164723797343442705288806463045899020162142233320985668282672348511803508151642892123756510859975181001264324993675845557847205565705749453028818886386025212550661901203130839592684758414864971229618255661066033092760561786655878068965226677502584287677201081805046615145722852003227531255539215505205911064590852214745059308647377500491807119543316829599051134026303311743327974162877925777740304184851573686509057193401922617849384356165661198268997286254844343220540944665014616712200914048426626523080037366423606688629643469904188054623560607939244669875340652519426331036097419418371205981327075410867963834661248274148322838896337065204269029116648819133340232903514649616883788705166248941682576209848486498859524072774415469903900645056601868236597385482783076917880657435261844306035759015727935955168245250404652288906214641121278525508633535435842228539049825928573628024386537053150253790677756966549644253338877739014585514926882595289249447663456555863458015298822884646480625915607989797261277161953699151746425726575267528820631517346269811766602297229829383534007850706773948637191301421767763476149496005139619960327465150257017912013984505577113838571954872467987768684453978224878631173807919156142446580620473872850024971294018883795837306362778164370475028167033136604476723185145406840006931630538715711466116749235627419264846588499963750361645298154374650402885282407998710128457076198555861127157085364048029493064064517834903161409383341809549690708128141026927053716969429304458753115512064839134598048854502712129235680482683993794036566122311395894618926687802122987288881829405576923807571046859215203853083161535269361038200931993866265161734065227620880435825931029655468970629590988865490467675452497227800022803367211390814009022457987159952841977620928334028513690434294835780855276978120456058101124447404595297636387441580969653090739571993227525044962084336743861714648278770007367617763516073253419381041903170295507435556615619143544446582958346950311752634472574136614371194615960312366813469517863974906122108661573332882948350232657718287089731900600113230868039566481976818739399295113829176828919856312823286246056258066538417149716319963066892595157282540026618369163674168103486169269612133554974577762818481638209406917518285250080400312836418425457814248841783438169233758260153966655284650056096682127955644027634729338925998476794367466006499574813006836571151266011414892075556817752429099464991394180357165092614916915068121115159453605800342400591940488037764003040573267491512203993320267212060728896475791696649068927860848033787098606994887526185806434988004255201462082842040355883733407817930662475676573468719265086228449498813988768700961371435245221015721301790563561466455886458914891318831440186795846188149116483441434577712800476297318836461238232750473938622859174569501157645088015993866764164017025859428948714376992679177858201641629153078427068422953371721856016597469069744540787046788569505852735653833190870725110491077302228032725139860198260982947847142946639647245216104715876455960429458201835146940773352050936597364783359598140508015721872270784278624208724500509926635834824480264371302190638738005497128855252647992081685770286634915515632911224444794848966340832156511787680116074130386930802290921816185099501204276678459109020051252444653500551333998865206075068899096725822167924329780564497814039131558732303857282461843015599344351536406479039515697537144569810893067267551158351000304151081876403754155482337716416377932247144852521554165334147995096472163508414401201755097732266451384127800375749316175101366099215088566889598342931058364027397422483453988384670369154955674723387629749701261828411301431842048253767704909841367036798194384408665834174502516104458284641112280495969976218980396039555375928819702364612450811184340413031223409863495926137215758739058640850893511669494134514671965933712977299560073096703031076505941063443962649002859395030748332986136165347565519093322907027365557930453785513155124266209272004765921162999269704604542624600499422855087391452160143780045611662606206229528341978579541822062988844910161045431737915990678585971215771017294160274278954318493282275664064623316984457450702035200678884650993398974738034965547215323199428135600345663435993351662526082961302595260215373487864081344018791190295982715440627746201070558984472320377774865157618999256863958230536678400596487302671257815446576559601964698712542564013039648030007207267897730415746306957948072494238293370662146250626763882778880570755692516734728096948096747172553303720397606376646960780282403016140692078532974367913778279036856775022145084595831888326902644451958154692800425719602985389935445060981828231314328783349896257881591610043861942257448367871505549463427325285828113866176203655166155370087798375143282274438248725336290265705706740238260904179273069628655101950869770459715933760116485287127299630595058215420914670223473329855164680955776960876227950689689124054236302986838527943634584076679348478403946321459365724726847280434216167356142279707888996193961019136394648746753848246164647032856218961356565862853258727717507776848204258405872578885008866857229738861705746100845753469813273865852112261336777056960685383434482998190452563731504309196113232806208065983994071947064893041199039149884711124021708582318535136060304736702549659993003656529948730019042100868334953708868501540182858605335271285350868729471244022137060866166745541311253957288161586734260145214013710511940590716428189750014507448875288605564705621208934811266839916281041896951252481201838162828059866415671203603670091469033379748388563596546597860826840862800788988438580473873496070177984997720910675118177063626274647471256238023548226678103649459683110293611638432976900329479845356362740273493156067348271680679725467889257549284168897297301229722583535847974997898740108157980609617113328383228492260370436762591807753954723281963819149846118284227559516989997895610725795773474684459861528471650952031462396776138754540381780659596150085145315156686885606973226515409171562675972095294608613150651288848784166054829495797398755567877387629858886852955874421029894570405981706019487812507855402705370816042735600851118109094471112299871397189331634353800807400889986118086601269148010306453148976928655041102714041408093280335277811436739421190878696149171895654385849460849362626274041342762126737548688470433811703779046344231891689953272188474857374127040530445997014987164515319459296637156466999615023135770768930668831713779727185354490577589036992490551661651982030539463495298349723886216737203476112512713735877661979127628934462794406891770298200168499984907505984893507413573338033113910166419254707800646197071743490811597769789022152457583644253194696153365882917030142332605622217345254573573848952505882913073118926881344804474600920909911791370679216113494290656662799334134367491741262324303245889916912496088344193212301366623652823387055782920405763024064365477828904048498369303324490149908406328160485089223371481566395253239706770529461607604385076916345229072102083385697529212881538080716152001032109307051255730091704811133710762344112026299066321047076428550920294602883332004932948152579381500337761887494401562630106235059519273203126129790943560067747743875967964606916324414942046380678412452463570832241929466170843856901176507198739763568821131780426204536049763754857297240942880385769604753248048724455755205855116342726587939396263522559655178667076797738655114831620856685357078838143136489158727538947934219941496354048448444710310058275888310192947408952934488506036543642294815899269105546372128473309114757282598282593660389419232404948178658143719590652839797499710262072178232810871265590919046479762766681811163288612118170008539807031796064159029410925637586488856870257472663879910504591988421978852108548957107037947266754234937003786485389878380919889626692920786436083570631643389846859407331193448787483973590850666163938092717039840528600094996951049138539595760982095321885370628538897145168952168480223805717682539988363353632950809738822753881721638294397760319561409878943548505245864087082673202237115183117219540910548542110489018290215131637853560890564163246953846900607933248038562216425303565250358585821693211292176987159361950557211069258626487010995943543969877102933816223101761376111643009020517973913258563119554626848722084455569181288591793781720678085183139070934516353188481215207544124380897731822924140365184784275052265374159493088914667379519915674398989084580149252339036896388210912809097492316729491179097760214199079619132245837630095111726548091572733154425760660962399428232947500410260402530492913570690750054895360972438053190603787044991700580666326793280481420218547146404847516310253629685332834150285615685642356960175581992305187924263016641018446985931242775955266614974269088196782499547243430366127611892958758884552446046198305726716942920721905156466818032815115115312198591529713328510276475740674388895178523027053987655575781943074323740722407820685343881460141437375999865178125295358004953639904907046663307429819582229253568349445330275684964510781784421492214412654530081577569735738809599985068814373929276811605287069004937357166549121164489609916468022462615382941257244886809316116462270905441879327471113266338633848514635896164963746411089222573810982537244575112115073592164331308861649400094861250992712650445274116744059238539270572289372362471894474392000932553248742633424458194392683747608338821753587485566389814612279974663845310244727056134030021470668809712198264395546829446303653394910102620277568582105016172255812368179490595020937160872680803788249544479640475648944793730808161642836092291212230943239095726956353203563364821956486236113560966421885975587484269608885902800375309559251922192486478898211461139956050186686248384200447942602667124292925300310801098450038303323809711961236232580614375385620674071299162256167231882515203506143812521057140576632961181307947300003933737854174556113169345771182190670467140132876063346141212816482809310435392222996914301301344181516438336851422544120112821108762953816318137854721685159252026903020669639848927365951165900311368714920241631144274523622692107515880939230199199526132219391848803031874965502144388358973557543743532951943273657511326082748650254178436173370621251163349498151594031675782033564598139050824036462615029318716058879816470083572102582234692121601509914733915247556124290148423587458040944129227146695322716372153363707614390867679014275179085261788587017214830113243984179421984848357400830877591033253880913199859130497251978107543684052124166079863512326863403282782463349724554005381728778094560561067361227569314221343390733553399391389411786382149145157623607804878466081257879564672518288004364855800234899603683997453404657803353381472303510952299306776229776322009874219717611451685064744178508711172975653379913539370038503087224521545566577218448833059526786516975613860619513965697457083789157033670940561171160518409969835547226335167536834695558933397587097918611015353340298858505199541308413324601749883023215106234247107751231392553539580998807563750353724700914804381362318687747653469223450340609861253318475515860125861224907125578467870731432669725643092905830028117729416878764077941766074181296535522638644961037040365991517262286569295453491354773562939823666939856505421176608823676743979386532366057251865373107521595690892354432706368593910238509260410308525393052679189909414219035341409420611493350852962530949200381511797060688046788408296837392844194995242408813539257669561493668343724582735697818354735039559640890604327411220659847219244873188155348755611229855071433818593858392701869188470122095985062643549754409722159919718136907429978488734590304550297673375191893787010772322486479405609257297136668759072825260111865966968081729526324488928220480596807371256074821807163896377322125845532887279409631017542808255276374689297899287215348468703832554087944718149696794294438389402312397626627956598921925160242364245336542768298389965632941732190370315149242992635906983079571758180824263792495237766633386936931344050700656250833025408592496605326847437920751782492490505415875844561706836198457584093598285604565510318782217787472628348064803985072970170498920551067914985567134382529143705303268115416618444199159505705407750868991719850352845486702970385079052064422872688533397404367465723726884417150409497029394628210347171656703066644566984087613879414426846020620976164467704351996232085756950890912181746315517343032582067100462668426115854154623781262002489112138797384715992534778855676320464057412132054201756141506976452820188968797565327896629342340358373384783041697352606191696175835272308608382423506539847416472293349453368067928317972252692195600840999371932507878320625812596015124919046810149015654506100009722796267490991167962701083175835834547829425104599569535072495449948897562112541512519406295503220394859652963402530207029368404126511012545580744697672447953705712205498634921661161646746443744256381539206478432373244507089527024147177461446434296367758540581770771589518140291722013551778174905872732990635921436734033745261806935054580724337097636534752985292831745821081674511037927288879646031741805333636172438599059576829689702647264179719358483910751615683409757963681145308872705757542868098440803005527565515108387379682318697306250040946328816907410085805946692957771175873695551262791506110029887311564094727912022953244217509136823254601543545640170462384200744419421459680432647761826083617365933904251559498786039717494514585634383744831700543511567671063400592490130957947812427940482975818418907467046977403511828880819944813282480538776237674498408744205555416163903184145491308469903999660347627378366962230379255823258120897527034191053118915357564155654889079889690602682900166577420612229547222642569740100604878969657068818653362438487925715897084688846253297208178324110574219837928560076599570443815797165886135072262452155622273080771791735550760850598812429070171470517098916435842902853845135797817919435411122854421005928619198410465065220830606742640162442097676890360620154911410736512134337735166604609309134297015323901262712874539496924214386027713528241120621295939021650399575844893932567347053489577476634642839151384052441856753232566393776004530930031417482723740760016482435835367171641380127992397892078922793558364527755426592286671174439797330918935188953987371504410149234519626193229583848132277380684048051389422400550607481416195164090309068674410258596381978564882831884604358399661637431871586536269465048001282601568557240051144261024698459337082886844989980172844698060131067430151872502797377840480823020227041314047795460266103816548672122217163361501540747242748966247171331317317475455210613651138286953504070102614995788814358040373996905121957423072772298357886194813352079244883500547317848049388568021648647103838465428005293462598644676304628743606766608846489311836830173696522792554321997452318560436523978405017034058297856789794424565901985738242897800947545690673202693125079365262038033625636773174678507403966181047173937329244978160425054199415188908873699403595178272392480788820091254847430139386130089586462549041167303058091190565607273783533416077479820492909214784273413494496400376545448202394093986570706079194777594616806588894292703342587567065188106033096729108832274858721867769519399163458242466612565535037895999084017776514946634155317046311172077569033027857523000299089343409311793796428563839802714680525687853432434174588869586493519850356402846249509721305007265039760155548832925930144114322030517284243640687243330792450014236883097421479690661639820014202140058880277937006226277104754872265213592974154112265881456513768030906477470798163047012542640304427146638433617490478568276414945515116663317167303804869861868798293542020900244952076871050685835621632588259886154523084218776998996599112240384101421802404905098061021720362797763358873483159487197073937410983450451845174044454503334580049605817917607843772475508853523049399528928261392743512240483180678394203316517701123233869239514810538016607364523157205941412744310074470890873729995663477916853421926959752309813992321248462958775941941308269029431327487034639459155854716509620678659361003831224377975944703256562284453989286622849546065943261221436512225834775499330218723215521651660406501059425422895363590431815686930157654671681446569165265000121386140880800188284873699769369735583306461524835770096943644271846920458426830831615593124587647268394332711046616324796312815555660167233648860228569147217866130881808043986725171668867359070109986769960201214020529266280945693677628769815777045181726614101639056573270550973583644453054284917299456692292718710114477466913264532752282271374297867721408090037856758018457634811709754492003154241698843709308453203615614866492759454555401258873638427147384549764455339710133522697559201931258124505975308198286099051085716107490511354061895345727229537883674366582447175258235892546876557819034775771613622801536802145053410055270905727487754901793050655195189358377628448767364743781251780146986036341355550400552946494710211951320767820414550827338052486417340286291460356482707459225942558408047584083216606088404700050074919973630029631021006718886398215943708668234714015731754961458974644081324237212242065526957825389751002471796128407633615219223469019360171965831489197203779045661543312644757460967734689036416397858089034950563389714987532094809844445627334928374980349478345480554257315756188186556453610748694529527062172866930428464328791338763314627050329867924844500340913175649890668676504345314255641803211414222232685310256293091730040459319427752194207089454720458513010765211657645185540074995686483622945182631719984262720623946489577453043598116039973008603086442589203113900496290564881916216774576181716499438900831919857762513838930612749055691369261989736084990324622318832669578645352290703213964237101343163045242621293419283141054288719500844003582093233129245235937208041987642162545996004251190870233469081712138299150441293798487258886186847473456131318859987319382627206541507232071034880599997563961189122346388199659043869912916594796061230625585185581014758641988619199806112528332014260866039427488347249802678176949625769453591333162122284362110622581067190775150515380128908041724000869407512939899079941517262482576175060936339232087638236778883225981210633291754651980066940542442084074958034020243106523572875802130350817727960553220097645552215946287732735459982315540474025800012144912807909273951673185552231902788759430623869016248302474419859187848527324757927307204556236052369485059937482035728000737074294782542490515067617066412811898013929652641017327878562337757697210409899546878050811539623981941772659425286850616414104270222052565813895788213215523873959195728982760029802703143199454215277053862848138318332892340679526993856088728539832245867027463993956551481519024011317482614364090114250106724993098525781109847115346662713615627196149918743679313795576944227832155553059516952984197087855725782203624567677128044313457922737367741443131228680282779731910825423016694845231755657495906532604498297230933129212310514405990905805069027304977809806958777210784251433139511457728544828578139810486778020075123664481970675346582716649466520332485270637093819799614821700105320763566872956074570174223474766596007945044018421790816783921696612658665982279292507590902369561113024895479219059722061112933639622597038519777156935105482947323303517609351487671007730543979086326322631244783837252613002378314800831106643521178428948739187434103086732561913244839730862976358225199227924060536977115668600351266191152613544867490536024271074394824465697006137536902710969441052079724820544780425517216701021172806262286812163289315166180265527698786305609486829686541993548858612311780905034803876253205317927531821620979545447034699202948339532309407884308714899793529679738421624284155515183803688646406862914868827696797623293779357544801054851094221065526841047689929902077300695028534563663936752234788694348910860290744256079970509963302288304358815378681993153024790790842491768827443124466158971014651321202493651683097801967226144538382101259253070400835361326301900513086480855342713527648310601361709519215564861931943709103235855636657677917118935814384976916802912494661151980196273578586601885070320351461915818394293702335996854694346619237446000687760210515599527875379605284275266909559467262581836485255332386151726893541222746558751580589065235769871408809176061921808181229702447066432622781558239777673845190859798581326422942499021414451820802859480988172484083241148942533854462636748007870562731579570641988796850024607755632707586305395592231405920536795992474967555917476854038503572315664371207105696953990875102197424709254253381801512610187550600041593254584128140619724530980249324092046634859198507727981923806813274383047388956634702786482333449216367280784766452993630956538508665936073503400647134169646445826079337262656440945868692081247682860227399782309973494662578921353707223430229774228504446040031158711884127621321558848239830989277705520189558384006791196319516414921208453469480714050040572416624664495908101906248638347788030440351495838103277436869493771849696779166855523329336857944358854176145396248127386316903682444037967140662322766604299958837243724420739056853576446697809656341959880287759688969905239434230234034773376556258033856356281715371009693957136129031877248174177189886728569549591242374136393502099479170890280570341493784624813573607330281813292714512830643280268146113384235394795175808507720418715786407875174969008422125475827021657568081767691645990855627080208298022554512254325636271813545310053137605671629428400046216080535543976419611587471849751231170185176987088530343803087156807356704225454108943328630079996691625070175086689758860588351146897339959275287805137811424498696295332323916305344604657508317079695253430276734342091167777947933539244414867431174873754115961698231574450583249151515760288606107779132567121092141829599729563802050669411903399637040325545859399019018954641725354981226875887334703772601503102146147895620133240449168962865812874909033049343912660507357598981461667887891940729296028000625875083026169009031394498154691699980724307061824089087850196705569688220816170773005530980131414366564053699853367943853732793769025729078420033005383225330670687221823413665834876059043116514949992011449141666918464167201023108436335765870971182069138350728882607951213897282968864206421165065787375243600376163533441233269452315534408017354398225539504861090133166543531851938364756664271004651602861284694136650268648663795931948365595622941156459883654393239105062999081874374610908381819964069277413730348288541711820836932284940040469239571948717515152424165613750087866736324059732028222868465850614291132370575920404904410094332618473135582988757784770528325754507633986613277968605927088137149598213684298237811840455741746978483325876635617187253781120176208499650824824625310021997594389667879524489977728119013187204016740722855733108599764275019978056938736873663676218612834190815515698997798776673474464853936478661273738611753762943282872707344226798077581183400979253978037145504964329142323398076232023359460738815053644260642276968278118472941356994556014606413608646923126593877053260102215889888656578900409394518754022872748781431512333453978880423676270776508322962609625578608296631927438404266322252407530992525061751955485698636407740285843262953637826905721382814929823626483895927428040239993511259080575744824193608008152231926491490800156413348189756213879130624024251191128283894270080919069156435114169076660077106102106797829939619113873774254816549852825995497053498444600978746136321574290603306034561612307858442565927662949606843748267826779353550670216700002391427046779034808581780294073549108334865052023935118079688686014575051807094304085130174835342276029511649669323824203706335689745231424334270916855197342788361736715726535637585486764153017131434148206225321525278766990324130668300856919072052510426338056977362841922112970713550314106095346481931373382523315388949437841161046302549871769368656479031800742653076389990829679468137771267212744056325404629363628665841144529158662251507348614362182571049602002125291706631540659171396963134057822729513286232028868024510638840441983916098622175180822634554809026956166102292605496016271829686979491355617877303385835921814916991927913538684470968029502997260828062608204121428180147014876207602514142532511003984683868723339037723967030029063302676868065860438332157101040607252062215856752096165107565389599606959349425348252010066917041670122166736246228201938207998600424767213171777476989331149310412613299064001098243707916389399336796881606453062447614348980336640440029066411870016875651359029732370496860191280467601323758901382400412238697338961256581629034213384493800488123690650277360309172265429519096921787250820517632944493116108771917255858548808474469110775491293715936384539473538546999790730523488230765162637582618524001286872525968164264141792304795576533620034306660860636610251178823443874967990413102662777283477813569560661254112015994742760626289594003959803359756338314696701282377715644875154706639734600539723137287629406940720504692141167460590533446557769989494563312780739093532254037282756124543018668218584232902771336220030189957702800046969091463367710724553003552241000986380925175293071944842068703914108492054902245993730675398952196138974234160702201211243302459024981228590826464487961729161272459481181444099579258794839803127335173536083995377442984082418362552404635011515303718133911160122413416442778494644467938501394356825251976200257257150650701997347122602499420038782509978526543404996827785257282484363093470481718139711238083083564810636784782880507684596801547801610928311218899284851070651892749938118064846343916105090683109597959294858743189427138011370982936120925802691399444916577892547757017244678718951985406726269623498455615609529245535446746578881670566547445338428175457692966360228330756053410222327217752116864238500839533933477842149830917715221780643609474710189835132544173521601940271865758272138866797096543303415679737867309992430604686536716323072273546222346227677338658073025336205204220744065284255805305741284413400834955970556661783446729874686878282624533123867213993134284581477166843472151538614183940264745757726385678453679677662436510539435753845847976019471285250850381380595674127708521605778870626765320381963950739120076570381352526632209680236287628096233462286119824420821443889621660941522093726530204696469752267232820499953435642713389547317856906604121129243583182970263185422229095227785614090585591702578538418758201553615278048530542763673388430938914655979815671388300477657424490200778180065523186818201637461692143998917347573941275551259546706573937133367103729187728293821852099154330129965668904169141460155183918202655580781533583844861892037062445486286511214764730957678659130929868511693057172255000618618042578058137404020307499412025777486639926155767347189118585514729317140903417920311809152010875959498066227628938259307693172297262434881519063656287229795132722095837449823556390408777160151884513416906243496684972747150344759340977846316678669086383669609668132515704537350313013446336031489478470118571611541394905445462882573767806998404743260783611338929927541034724382359779311842834599179761041495098351807453866407248526812556184352889463460468855684990974146234807068477843016805425728714256603244797037651415872927619563948962482225514254169940088628157928970341944557185986767511389864299610671564830186685732676853462437778185471657709983032391969368032250751493888089755185964748324568883746454130811859536823775888792353707358227669826311726882859085440986868268026083618811298876197953473280745359413836968881924698558081401622324812409217725691168086008801523319285276725096457579742950563440036048193619745831894889307774725390505084416406437387798127696341587904328404616705792663050382855493640177343302050114748486210506719682801793942268645323061723762530147267221502108755909241186244561492561580462011843497275687578868137071207270967490404087682659216476267443928530293203341704061172133712884251619918017199725281409440469827322675323643168676974850526261837869323400683048348895762238143986980302694153755287058151693506470088005510111908836663181220751289796048959383597555799905591386716529179681247343606697964802832662641973366200021142359987783701333362822089315855657729376368693339141296216803907199367863084515145641791437940712643737511795217777352243180779319539023111460408055323804486095069035681279730132434836258185696656110173798475547618887515305837508438094637387782545072048148165255476810717732645244163436448578259631090783432005023164243655771878195330454353914692919094644848202039873703777154025300926822683729867692339022006540430895824440594089811697267125450995678065158991516176976093279167202751289137855735449043678473859000916004525023059960682023976967404182451578682260649184561027743764044459228307326763932310146820504098275574031843312452313626621755813354105141628244784233174683416197184195424406134874045175949983501254143724507759710978268994336700659364087624184422606033373526903071778393029090535706244237082370234654638279228086098542383939549592020499978006559792327979646538820434652026916201736911979329903818720494077819960038568514567440230088320604742962820333117567150002580617396325863681908882493537678541974987749513693014543721798811997529272413326313884354874653283812486066528360840990153413749992330427768669656818271441081138672850316378083553650633239858891531800814413981309880156438715933949378253109650506323222733149800449173146152692476867749577900476806084641652459027460391174006896969879667459488897117213508201681846123729610152975057737751309763714512065326510915648233879790372558200036009959281157282269637450864448704292042838704722675615058806800143103406984646970353451688964427038744352234557558884445313786529003841493915608507421593345511442014194654893627107410468697796701225287247373465109814123682951818940556858620249512010958402316984967824537931233966748870979363279674433252344919959033349321882080635407484169044485907325161739067846192764535546787888029258845249239075040385298259301018318783157127276488378112402588925102325460992288011489882790695006454995087189495382560667500605893185395041385263715914654388469833645075421578700374715012597403263109423147359702741069129266070822508257720802161663088889400313427604542383347590265110299896913839388392837821800120337416038644268392692525839421557435167412626314818353772664881561717453325185594684561973454315358286955398814191487348927094662105761676988007465197146136793254979419331484035601377168075081928926975977962821007047589982327556062629569261142196207231471550062485072055143612296233946993820701645091722076023144486550683141426684245437822845911685601647882101760080757580420903875861852464068047164329968589253697108153174737365985176859258037239600768318554555893887274149862304016051236037759519480080465716094181628406270634131048115854385799009374754592933761576813185423952644977531567673597260718891955880353224061868585635041284399624628567765038154661443467797191356553314106760392096598924258564251194755919596260378444264219001857088547562019438145766692118722155245396523420148633281267263833474127227320695095539009294138728000062106285356566892109356564670376629919852415816458946313853748902845057353661632191398516685958734795736444558202269014792226897513301879559442154693541841250703875423171588029289998847645598037110459751245582666736321135721017462091067059224338887665051720558356346146520143801855894863507590842697129361195753847654768226545963975199813930227748955397258356324278550924454027367576197299786976812535068503295141466313795988807723665458498828747075262494532138260644906981579791868809383492887362763289750114393027717166423201737791492165547447734797968229449018902741654322757541071174736369350010154557829530155260720190756899316848040109055846849494234840346517910355942164053825032708961781274378883853404625334890988710250643283204064010759814591843085769252615298315594736469273485965679802192629269353124883888642460509023732608278777786751287142376273657267296565102663890139175811562498265055619211664852853356195450493161817326206275239041159998250527893594170330783916771711538664395617663455288290460717571364260293360730572481525562823685358591138979243151291297126921865430051425089726322670560323124140567555198766999634211017660728276894723761899610898220973051967656653345566139342985008763965709663867357158388273765440408516376117300480799227385414258168830822655624308687959337378808035915894221435130469421899490429115558862676893106925146641628659237220641150237592277627693505968450756530000957364621659384857776712713881416493554103300326780959484578198682575625328356006773814254153089284996491607048478107766167939326459802319147070246000613488082138457512420239387645313131322928014760450339888764663364560654752827478232226750503930653810477051949392690958175000424205622255135915368083828968552081308777825343282938288588214265170575750469427301027811282983689563961363404791397000647918996216707859968627480971201882258362999371954885181716586516998656087192054916427888918672235976724255725482140935198940959436862825931422426815089726343065160502948543547627413972011782234943108547678786694080400403949760382050733274027550544872286927594427060926515333557710588551930219765841764574228787103529497055037965006173277240300722659030551648628050845185183452992893203045645089144082556431864556857195324385016613620738425814169257740254090355724001878172308367587494389485026404045109964953309930084126545668357655339303799631724650728081296762750594979528967794912682004246529936572147748276356286549932299421412335887051839100738464879753370378925864629583079615931918714408135262977850189803676802064919886535704985460788865378966545868416252355394122941887711779392531938452322378330659876899994297890317434235813730276790457502060580559124874937539093131640247089836923506604769501329017308793634767630657011648212894939304704551156642617577711911974763663575188260843294193624319948423027958977256815439802720226572171187650538061141785407881809170392271475839463137482852847889186474297095312510520071633344263898656136582625450508702154490987043419704574586641250293344494758700873571449970840147073777929178259570069561595280540304990737177946664203604546636935901906781216264729149084836234232951853607987457962374256821895975325224452628730653130599776256171535564515436656015312890061579188998937766614551717248308100253003178892157270846955463727282075313584573622798697936657323874324662452851935244937744191374828597739713878959209306749165932244944338565907771676765045647236946881343103254578441120040824798611126625905484879617470490266487627551964723513495875833300890346803483979469170780741378874991213536034603385997681280155694913882937804176189407087721397050660976985216950151222103719543919924332046177877358277423656076720059136715099339028102053432732671928250788298089863635746436227171752811765738488314112886987157542548129349512487390164898401726225356529145618801083884227407072908238030952337374788450884835828893978909612987118397515455434631628486454533430107022297089725296287005778859716801292320256768229528378108679282720107507890739810512778161228132270831297184957865769236129203119461872723709700374544221013335192845643797802611799490326440542313565660740730010612318106248133158534739197872779541242969017041444797642527984084657326065364773609234040831312611419603548234873643420550773854109219089852866665146014741397764168600089745366173364567014088825378961281074876670695981620318656968655262393984007824571099316337538699224487353845639180078627480503933164762486596713867013771864483130977779530636021907416574217610193516113474989683569753607938128089505704173766974265786476549110038741043480188929409574007981040752541754255858673655218821484291200087924763727187666398665878510739602769669191468437027910787188011903715887044537617314916867598855043506750078410607616761004665342964558951710850877397530113450734358595596419976888897909591662379354827248649447060454835933336265995639564522934765516088068588798134301493625714833042994659007276397809767943013649295105538715549636054797892141932587645013497880823217595778996622505314652772610618463467234889353636943655261446407026289477768481745039973882322114675180477770786330152528536141239002287891221370823481694152520689025014893384649042872909413067016942697981366067816757230279740252796028018392795227374649822378874093723641592241797183982042480065834759754898124459747435457974066013428463719727329866334284460771109173195231659439041472044672439059377936687098661727973759507140229041905123862956404252934397861947520845877193831463997261689833200340834664847350351307508191790458671974236658936851837699454016648223212157271184646464065780748600948217318955916222698021483269185064507471544028126666949145146702209700138158945498037893083729881745649039936287543315914298685826959470691556483559597563037771051764118294933143329377108118761471139755703644748852322461765905451944684441707148645968126077295812225095022142286004252521492273509950983505454433298347757801100939441072484370791670669767862394529836380008172970988865037061034573404847733847897646527531460361253587867256636074517335592604525715730829823552643779126085874479797455205193816656704837167362932904161184424250597460754108787260293827935931438088326872027157540778876854690005889917799902459863876572249587370028978301353097147051393524930983728543615441510565216012718209803015168502850180493702009755608303759318187064034046617749489269275454472684858477381490329403973764475011073342464030177064446759249512667685964774218402994632755952696321986059647862283130160884219723642169303434801753741334111465213930566176687645761956135461665406110359196005702675467098604215782715996020608847894805150907471249099483103529494538046763491458758567604423603864229683963294476642357137248418351824397423767324329707070915893650980035095688607973046048100325724912696488054941240866326545140067787798566840977111438103454873115593533781848729014675748291853039312492379165572497335058131651390995653143408026477524490691726516982155020610404204004460097342855001865979550909328468434047355064910800817026983684166064432580935209976541072104746175080741126122077514988329858995032206109109660284363964416775212012257672595669236126951563558094869947594424819565229459214669828897459743505590605514000543449779661239764634253049766549300943582696822148136435680447458018708196117673837469525765292029465895563988932078803890756974275595114950595425362002789705350615321913115733346950409240151056267734806981107822318541663342751761387541742052360060552930096497883083252274069217005647649810728746499366004468930322419092889838597274880456229924841934132128819118196319317436116620207889765532253114939734411080151701028926236950632492604431425115310664769046818156360680098348731210123679322218981068032830262247480985320078289724403625829476795427324218913803746973620793740161649111867554079905287299188740507168789692809351554766828080777108845339351875419192212398455216247403278864499671274750952897023353179026777674222664726941233510997429635253379728670581894693231605236271901877798562259326292634142884312136641385963549627434215410654590509164698228375386800691891797787011624019655381274500950163285031264684130571372642586283419895420217639615591324571261031336954978029887464504792937222225665329862851202798505527256339552479208508236722722893816411965322367899286854638862431080728038972331424902175132301084221238039901347806315011895515762032329506221192828070405431357646637115365108568709803081311379561924663350497074193975096171833180725712182636642517468890453672173253381599943112065042504322385150826772280102798811887184016511514454994182106139655701760119909636802532655874885221067419889476028645868595681248217094584628471472688808516115890074455376861390978945697300624305270534440599559139862068152655160719163510724101783679925243821480274824258441615002135956940248445757522068086528887324793423141639719933552014670445705716557244880083043186156606347381010513586497799463755539417703481589866164989841742964504907930280160947243200189498889017256690170741941350094230163361641126774385092848152261806251868716929294514111333672493138497290674493317420177983048050035576142872999495128089274411561843034183084872647439605924619376271604094902795055934305506409320487824664605583157872551545949017407735456132258153632883701658272637691006098262289501362509855602939304835631821927582727600946248204147816484324225426933684173858229666092350549412916375886053063441063614331469807202616974124435486445687764280782846180809488163369309173269099219291599928591954084373883788112763992479027270050015830095807887181795028072182298144700193588427098473038178735141213232877718770491980609443649179901766877267745267619623525413958204420569505070720796724353160100228259979168112667258633820357289319138850070847633785823930718750686787013825638243530158763652571954548931620851206646631021276181279808248857166752011319069023101756638161018107347313803175095848466412084490402109086633973700911897648875778502313840782765030013688059679043615891568859234205322592697042956454956226200944420190927333283046343623367265731323717474194482050257022575877017180585061870728982434245891769207077128022261143978864224331542991405408737476561847932727823515032851632079001603697412454991318597327896712595050770857758082143206706460455314785634346329005522414967594426192561576667239488405580703535356601188279848599044581738267661536458020182011944423292591750808769043193625155033931200247885369628179259818115081718418833306973216775062339199300439134266989704864122493953911370292455562336894567006087981781464444941526637266913987561764892804181721519210415695906036571697526396348051651811400450462372643247871329627030542095099949649401930307923791784935507539966279491798130395548503527462993028506504314081781815690504086675401089744166047174466740629619079271672188030034975140158724199207192979918689876874480034511866296496414673683189518550258008678133029558358649458397754118697766940361871600573139026423223005886595519119789654967082716578994298630365625595548144802452000011599689377182842142317823193934232702848084373696567719569196320346245363112385823702025056143538113990181076868617776796288810396232472597012055922899900034994468730259066734270740538697759042222959956874149032484813542970047676103861610748338021233392445999582112874827472312874163269363652347791956905863321302305928324132116707388899772271951882372141628021044391558769593977837230116805159311842501106505261118593024334890774021894298429450400848734156224128449664241172843102690651485811311071087947501548119124989183964956976187042242866121350118100314265132160540276528694272908889473109502565027738964736298451638197748877661960850318358046631137736666820494584068259124380071599459851229699217012502929398096698140323872631824542087311952819409877578627642857538431324832634183885449393181139887404559131926701616236938497977764724490211048094695895982851574398279360770402014656469160657797630933944718109651323128056797269757395978538097142474819546461387627329582311795512452446302364270867578207233778609714677796505974959521178816993642456180430009716669881820720730339332655964801617359052378812864125475174330814394230786646544212839161283925773111237097114334172052279087337368170845256309413934809377952787494131103431797527038271249983083050908110999272138663640555812973136669539384624719786709505536433106983723743326534982358625576488467374420035065996321711879234261213112444251079772672104652877119043094368272451183141110588055414591852383698199696314809686094779216164740693539086313039976577943103803442911673620122795678586610101474745643414354974550579588996572209102205522133507890069772058888196937759878924130194992406124586670220062704952574558498281016389845533068291678668036674130468730531082019978158479478633333595931760259083604064751586895069169715261405906619671291350711336516425550021174420297138537365239433185761003965577202246925898179228065674107840307797215446353243995089065251987217069608000519141662461757175784937856560306422811406828711573421011171727049180165021433727245018352072168711000976569909766969371401093879505469264510890070016344098564617855525153328370645453612563590025130998659029901262647652266608605665313951534463186335553416580962569331475838666625949153005995220540534924515048260484543143668505365638466247920572984195797964227377917432894435391278064995832281001102928092622246230367653386483387463880738032273365583747009892562774786318668442687215032513879557167920403054407910430448333410489463475887576191969554140250356850017326416995834639779760958685167138009938458492674629850468218315817712784490626730621661521125139608080402925619241834958954290569948106710279132893007532367725875326025527812925410524738321178496754886748617849907430115696471711093065638113408926038967389262645756773324670220176133496138975498933553097803530256216575043885044346179645136128011036953540670076296491491823351195094227071347630413895065316030584153178444106718238724950774292482773550636499485586530565827940692634599043759611502295452884847110386009711424604589213864476232188460364720873017170807047648628757096226175833790889728350083913878960923570945707225646251392212397088848362777809568583973525839448428023658164851856076492296903589720449376156804609420302301778921090093266641398563958174683243903079760242247525938314601999153290026013004755867835455837537130597752096079320238760929564071031208404249258778636924094775314832825215156292750594607873303720017247209408296505222055133448168047909708508795236768798128602660887525900589275518613504322903219602305344627779656351120593555154914554834828978104941866365615633067177629035227247417402349153928832402396238782725131733925743849694319965871897694536637780524799930030011087235497981984881831547010750398792685274462587265190079151924048654046528366242705125718692345352089332830896100155506023107945364750569397823891037349594058593735145490256609711227193254864106553306377094534654758785132534290542235697259000864248585335883419773231516222234510638592090191214101436860241140325511204918823082415245003914499669094319190767066736661073137024788331587239711523646976503084922823538171339111059443905732412204567749810090436531395960875452263794946859328408102807803223362380127622281737403850314454029957564725722964011250778323782892673967787537463510533862038833225170026428470880039902457074741273936851956550175521541972772205900244188392626080298365543825485715027237393524187472347815007008200212593871485464476200742723952978347733952078062216910101052330166655296573141729167167017403165758562972216080976780678103853338675462033968726702024605896974309617531096527938689734265509031070074508555962332216360115516942212092242705840064658865044789736214304081688380187830135015420364951356253447870488469232311512718672106000604391655483313845963718426123553072671653446678548228411825276210427710463782379311760065379188601189893172982321055784510411582542141775525347656599594385960716630004198918528367693915520065307307030254893126650688355225747256593376935880834847515142291516463182022223567077618410441275084937949393830914581019256385152891762800015746314402990695076331493420711592586624320896174171738851936115537937409865464972642009644578034651196391256989003217128959112782208369969824285243698939094159378601056260347032397503977439938969121221079282855135669145992858173054752102674183405150215379236760479133818623965719897682229555741667843692695738291877765942421531933653665911181427720378932602562180779830340300481785257170567508091918288413812745331433454501267418110800502093124859921900608512738838907809422386817453416637978642623533958451635227744164557175650518196935596868646888647947560801788452063516082677505239441405037542298117325744500888227001317670707447078957996849700158612119299209560266604483809358092687208753931267087873550595270135894184264495522363474345025603356062254990679651101346385437140380772930774003746510158275049888375461133115922987688165558796760727261849505799582981229967316518524179899677558725424359141556094821358023423725505601432724535483942730169120957727298880156201980697341431034240247804599777038150211189319060905077341048886111143653987940871281802103699948215685587205651330935873680395621250524412690506358807969683741091481041364127201283104134375671361035534192325694158985185151910970492484618421543419645285363835337614206294266076216098621698112478248826294647062945433925456704164682804279485413228934032180522141334049695131829943302352768180988748255697445636897527204222827016758966890601832511897093150429032937654230134328743113657308652473118944158884916859242355335598938487843407838223051784216041420370533335807013707355690312679813738622639678970174866017352287301815872786085021896653501221531147595736886581800254429617999145891853693757495079758102875554025913278480091714200927050657715690551904905775964342480222554420644532830992875222628234374507586063449745064499536015798865185492816173976557681284717202685632988890333297989402958760886934904870415163523010317388180620058940647302596619019948536395615415561741063360631255762069763243523557234632239211667630160018082963941911927954130564584765945240808655294109173635644450311173887927989868722458596451390552293159592191622645821621778800829381670723976294798542262135157809331375103974221489011785407884612027519865573049246383025800925280206303310748460110371804211710128879352218749133927593830814221121616764292143276249721040766514990694901903504823286340756151977767037283779206101631518610781464040244515118457816788207113011664199598005539254974920742247971174779364365221267488035042934882387053100867329303839086786015568425255767152420646913608613578996832364411676456785738323926617569919054904920579264505753397958365210525771371407654713836151586332167045093671380386110249566898454190789072126801134305724455459086083742334055724610152142123131470712120547859098848959490638447285731003620591189725339356385868859465821652565493045375828113736203601210625626814291922271671426868262585904587453358034371099710905362738627570272032309785688379524857565013856304319590790932488900227984565128784340087209037061876820373744456200571688354526463956915015342785979581263794371852532355057049744675611716832921577272741220041575811530467552288281000870707827066198431364070943452291659977031088906977515540438443493457436693836476174164670051513859954031714079588184097586961304665400873293455755077266809746173330569355546281237976882231700610793248606773120078716387287210082237754999371754518904970203118140074729279181019778009608444241114885814914223990602758801203700137708614331484614020103508587150428333592772372920380510510946532828302109952443294398948483548494250438749050803317774137217912287796550824814522989589617788754442191824743945387978627372300883809503248525239643509441035023723522757254591389306284584768581531283660243187712143895793279958530719236818591010759736730173392900574443582865344698442123661323590248092071822776757688760683684239414375297752814903557468821544202174225731920745467242747861579194433586177446064719878885615274682319174319184370382293073615176141658295290066503440419483084569858099139871493818850231279097199902873412740690011632702215277106648435013272479598187733234546300981419511703102193240755314343430282978484716199516847365624230762447478439921708402029649214680351548244876510934122668294825837364385801944455328865831143437814211503287977265876736067880502395658514138087860019443719754419516481116151571440969108531732793933205918655983224410267276607052692702875879569353438136977577344349567176224481230694941833219036782626191372301340024838424320497438807817059885978375788009444024410803265173300019334186712265447289049288050396686933078247457697212777647620533718468051992735452637555870013227915597190548672215033884994935721178518359776406174551589723883017332181013699599577674548412008370765734496711706078204956653829952126108177103089777162144256471744507207417398381002006178435405483803579376967851592395092334949219679600228234574695007589016892834452843999859739748820090791198383885419385429625897474488909563618426332636320723623116339652179046770800992787473342352770913729406539048257316491639071639059845493968550918292765663905101820625193279238872536903951815665299001595338684831292877059048018342057487747786372476147019110311969369166423205592934918054859670045375090618574789502844381646519061261272185433114519783914004976801767586032547928506958638323202675787865515091479344732451796319577730775514260023059088786589835228379740043005478293431791663135685084341976614874718132853352419192019675195614064383128732473777308074619344036395903712747403849663246734751134097437898019133269065043193306518282922479418010561114726035785381935336043471973089624807259589868371574135946921016516048302773054865845807431464951648435642646974079597059840076259326942797755998160802598800952844171132484461206462013016489853781404456385401514520700984189264248355075058873696056225395902164060732118846335351049869609580261380797440697162959167179238577468719401827900840469491514025383635232730370661458809538336459866593947622505683821840266705651972683968293682896199221484615390844669689979419243600812256048690286730069221696083570891025280249685612619699625338509512405846895455526146089864057769922712404397399911442697761950251185565126208898964924204174276930128943955498283562620234025166711598077931510089931285960896791927471602680058972040460543009570402604621959814632468851529779645179801514652618469654684065585600574186745218306188713612305749285800079318045781475670170550154495120862716517210072504922754744838540469023880094403632189381492170369077816933113698625290274183481971840719283484355876093203656529113274852584310113833395137274129622827558246401509954830541452780209412272464838556798726462117663557488699996563033795462731438052298241018664759574932592182673286394827075717124251041999004843254555786101593791982071062341127507558687920887283001017376580587786177110568860138795506872840256559084328047512875593565841014985427031440469737408999939397300294234388941527070810480997332787320704289300526723914357145126129535792267437057789851521497406031620247051960833544176016253678942141489052693442378840802656368712976983925532316467838056839609184348141717772955715091018496778011968674093429592442474942142116120876735682820508458425215227934653077739881038161611503626981338687395479518940425515361602276541804177110015214443709657411033635756720932878335090219795296381722097968423199302532982035509285422655717628687858133773536761005487293398455585138594821559609343933595937623212643655201014349124854679685353660975862824902746041068926583836319994883066668657093693825459213984347031955855384457825325383914757355803275531349492093651599318558103253711055244276912400351041564868635531304847705864339649319131829439019932848742381582524735506370746284368684458727998039545321732121556746315531158308608267790681383107435013966749298121961654362820832750148956928080026581487419856513668992986165155748270874361000364950174965608956377614140221151742068625379858630185059078264851844127264735171826119549677192329140251291200000962267894122338294740584415973704694582717872649214213513317344056183105492183388742018358155915244838630130288254478069246209010983882149040757018902969692846317655826644918798920619122719441660820352908189907927462604114781161925963148544988540304873931338275918274500584713755690925664762666995544188322847801171752107526811737692675301872517582537549468527954448498040348515243356383980688556172444561693382735747107842526198335782968906736444414795481341153828339437001379665899602644915969633167092675957554273427252460525314271893696681420699716412627651850020312520108077152984531770947315518797752569302802645799607780894981258198702321033366713991415892423557027517805977752882942368301075921154708398923037174718310866121750264733871377878058096667225609972093786791661991086659450851615718527749131777790261121674434361663751562742946760473173486858429861702542171273434149650416145759740350989881820865611633298751235478003876424682915881709212314175155634499426151487130961420448288217872119676926550436221795322322483096158047848328636974550735663618112333793981151809066804327645897339103520077139440763808244354521637472914261422585440453460700089108072075069216359924761151469809160381081386004284115040554959905721851272100889195445354490241137963552364745708561053688556801412913419046486808076775604552203934629578148850204137303932611807838360662545523979113947695070063723890585250017348137110744673197345301016721514347070370481119253300344922919634775285862021306229399990783156676121333054471966364055559242669282963369799988127188209118067249949422501422745673935892664113337860426425723619827472759554632088561718536147949786508053928248179780159677912900341231236132270842906146271111473700941572422652919004517327859708952455105648228639519605828543694780007286988031220332149868637767360893478038682989289243931469511877437863245520642975155689949458567525376239297726521567904906530796168126956952791226244807803503500760069217380054001323059486717591327988037681063157413297400500485516617022259597178441271617308405920806173013445685895937495995990527910293195960386067666716353640584910591429069418494360917707483388134853458439261181904492785814010993875005140712087263313574258116757720844918375947979037250154416486146204719178477462690353496413968877470839299681242964407333261190044081211352442027002568829293492487524418700896003269635810882325212381528401553987793042305790862414665226701401567725132913525467198633207751658608802469577426576591532451732551181481386435386964528104811891171973679794662754285239787478570769248740655603220316172524631449028589979120682904242441482742636082140671726801309565962845729840371237724106589374784611306773883210539876663602473721418731943122351828761318261473211508755524370798690055088056067542456496222426129414976037017274926586049488389092680614603482522337127062797279082562553438382815518973613585785219762155245269488068552477559898226513744182543829161586276841493251294657829262768068083828094097637054943529507213923088616018434545907722863680549464513146598890269913353188773964969189013556147617255749657120039134703792865281011205957936043642145760199055398221062948627948123896667689311107639538735394268154337732130615527178256521749639064881735329131225992358187542050334778108677256852533698031781964036092581741127034201062147983289965894709556193314776524822341129907362394482520750048980304272729125174764693364293875189297812192466299728833819093052276240253716260571840292636987086662403384485987467123017490205101437525464131806249020697440877541206541345101598691683217562433840040675020104693597956694430065759656760744045727761716776959718694938706615434680976818496631919573857514726051633342452233408718657901656187910910335028894066412423367043257820696488565780028039170526043486824025853309978841698832023669239121345681507648788289483342812256176142212493717274093831446421653301981175855245989821868159547093394176380184792271430102374995023716629364436369408925783640797079032955966229483309102783953540569172283626121573017280875992641805265862876788049081898589521411850657674502669508458731272066185494334237083966453470219648553620085464216619905239839275826100807694015135913654259950035165074993431844123368360752931943754122966874005330889822633258684594009676389358481028428574059780044496555944735460143602897124736831375972131974064945140386146721449899107874461877453244027045871992524976046354945523700800481801492581199145201148620099563195490739557714993921281470466978962391346242359839448071080834492110068237233094343488519584787210047923980377361035774072411499575847828747859059564739391498455560349063507189425403482855875345376322983877559745605035083610119572903404963032359950844664846141511958765213889864242834548721943931887274415376004397450550417552046071239052562285531004378882576036859932391862526796066164943028578107791653281286015611010746877163522884039197014049747464954726523587699097283031450964518594012490382790213928133096721260215864246385307130529145429341785291011297813133645512021368340736745609940686545864272733730834930390899764654843533233708833912639825911909908546029280485316844091860194168082778408169728781244996493785008350883303833523967912993087432115929409003924476597982942930058496256541384933033619570378263844526136941176724776838486219842876602331133720617027713763173279793256854045695607991246327885038311313766964716063364894293240677414148604982434907468213160929791559756818672659116451638614875759416849567304005823928583549347039559864946262953767952819572114283334708860081135163593890221252888857530914136103824958635171028809340254158383335880710416455301695086022841262878352901086083373317568198102065285046218716946918750028739439384615001380803586692154616901408467057711449581728116427575704002071855512143111821969083838153588153778370378218182565663261218835993636839515888487983886882173270901164624874063615230832958758931384868597535302535644791275936344975502188209960976207222784890879833207115632166906105527639119150700865845644946489879457739908010972035595188526197527844511672450330345188429007325787871998624913722953511004516315281726641702420661709164088017160180132640859684230382812668114684953084769238137092170344476980581839367030114114439450246772155684014615468676826832135452913501651604143949951188256207659701603480880698353118922751727125406093563404753077187309935474426869935058747737711312214016470532090192989990099082229354767563481455116507907547241982154622885158859134080105501749934610740626206821074574121048983536373972927624180894844795699140067192779996733297502038073444373689560366137248550515466063025712993283185238214505510564398492961455298972829424988214647535325353604800983885773181779043713669379925663788558372681559124135589052186324430699582390705971740415726780425397926980792286739736882832693561434432705040920801348835599032473975015908447022773350184824178180332668372395017352468181347398644450252373143216042514600337930189596913351714102421869023930864962162274752173358526235960722050551710788793095103184860805889701699403979128792695221671150929440459437076670209800398667510357836038906058326722601805358742270020255334737703318387851386888864375775238419835875874969051566111751251173214246439741708780949030012178566478751840969870782659235782175052414874616943562420534722933827896646035455248035337213491671640971737392434429469684259482430999304231750803357825805206107087018308397322406829917030167478138631002682722263127377811307011356741179847198905695309354570189884834249176667434540606273091543698345834287937943351653667748954750226024369120310482823372988324207041206611960178196700684514663109925644048880601995505424400605257852623529098846826736830367061574518900805287255524231598516505116818493140854385101742705601798692659630400275678565045048603765204841457114215079017496947379236118729537068638286107899337086396667677078171017631053910379320736541657120926883755890100727404212718488030868042989992259837709807063446647098295142693869781059750279792846978394030779938955378427422162253456689564185120859559654019717085267415360225685938855231009203970119595198826189844265059438831347554200620114562279093030700381993816480650291695832871928937721897765197682495472506162238702274626092044791396618166148678405203255348956130099593715981175693127671637175708090030985085686862133401411204177849604502557750766697672297485414153627316134672102182714331459091855100959268098724171439880407786855224973604954230804016249438902358482341773200240489242817554801810922465972725267089689409806253216541245714538759391783013649153794410601641049520952378364076771125914051058371722353186389916239400886343766789641349022031279110911025410604559057854435061684566019631072363051047578205026012017482808417723417190582149589698773519571782104434161445755314027968182912318237082945526494585026414087488061325007631290985013904370163746216741015268508932118339198617308512357954404802670671832429710115367642751589340062734271143832220760222210170289973699947149948580120720667122616552886360653177808332730579095374381925256060345856300173634394935344167109547583044500858545586748837800955418550319608756501848602624536626880126400248720627426003965815204212542103898138700754546031119507557112513958115066466727274662733870198380087683799821210018218157818651710411358640484251921927449868339345856161914566952624536480841551723229541756756916401740461325104164555838696758492844138158336971597441431928453285398203732739796170807227404047461299627005841224757998723374324977780395101297879054729401918259615734228325819657336505709178011547137076186477584401681611725431904677760811175900492790322362286963611559932635262658233507330134279003602624839739857263206690875600125407472886180212664820363494747320446060877076490441988684011818603846319563305233278022156956156439507987477555334337022003805089205674692524785386540222736249044194847589800705412891925125553824357872063060952712031541332151234391518706951164968612721090427991506571759774705949861105270077315682250161747684613983710327290594254064824501508002155510320523591425815315024322149754626053554951998263188185590238997887053389928575763380917124444928824826930559944242780226368528038901638079855075958655267930455399957886790799334780000540593412093830083547810918875092957970649728858597750756612341397145407076164256617129115445716656958513069673164540301208289983126457467798019926503405817674884322224341775583025738462075546577064498731724818114501031509965923363891229379819291146313591506057008203359663151193446619232751286026073688006918147053364511181454563806279745460750715233655475793870801936331487220819805947278104021412479643843624544710240560362954167830394927994563206259239589382722724286255008337041152447172462812813933303581117427426977528325319348074754097478606891383870438105963601326894957172368976882603562737107035066778768886920230771063337573583976221538341948333961310101940791248232720953969046189266149551672203928865489619500429957715702631963968063483164466088241272354513519795945390640792895233403014958792314720962415712616916959385863005095319665414924557053807982769543988586187606830780252783233148690792666890267636885538821657412915592674198248690813214966081551130597460453161907447760139811415337802211328453845705643443806389338760479965527642935888330572122191734264585571917680562499468916438700561266701442460996199655847941768117348585522756824559330358431174507433707148581364638930792789366835861007162454328520821331603379665692002810739411483881639106647610727979506057221950032445671650042071679653708465303191488190896404249022512775277571299906393115449918410637675988320430616308777253955377753600734737203499354895576093081553595712645560867039996314849664512992677044958727113498293308458356333587098889191497209559757151604149922129631536583077638261634852811502444282570888191041108539310798058389094603197560759732227846815086309361979632412332712384982986011984392882976303755503442266723239526127026402504111738664856184710580526395588519873274069138610742491750683057744222621764407007706287741921043336001148721605821141184785383304633756784084742465749122709848271265541898986259088363550600324802041734385550379065984701523148432013267006939471924180165237422033583735175605451163484008238199343606377547269204270015098899688652019009023281016244086601280999308352578897193211891815622163004702638200634626868857752382059579075939171772295958791713176072075986153163695411558395019732371594682820769837312510433038187432132286884520007477697593330185646956855720090066408949950896420194617804589612925463216216225111386538707431583192399672083448644339099131726784046975606938524287154880081838495227373193763491697584629900604164351776627385275574767758759842607265436544990759842735237557422878333975807915076828477189969991540022900751176977260493328200459744837277848208879676933192105836228501528641868760515572323184761119255791207243624117578858485692470843165009911393293218351920974301056728614281661024784591353081611738516592891226643824216707770253692228903667852913313531329750036738744191495022061824961408701793409502121066618987869242088556300971915325231887287542831161414467714706980746222373230171339897051403079545925009318321612154688205337976661194107685448848514753390273834929728735914108284591194280538393622224087230664001163781144789737950161718175132252496618680130667283525824063681941752956545121008456423296446626451019863737717760252362553696732727515114013592517037986094932482710714431868928209634560979582462509127365813273208704647832024626630323026868121778562823013608016694742822564040743945033504963604331368570501419590178933951483173086172732034534832811040898224103017725255316300770013074630408494383092364962766102246766935756896811142056878528899462824775016879446146728536536709340634573353918367558024348760348871068230312041076507193538532514288054859141688446846735123969503430107053208653148860511676344167289208932805644535782893328196973126772271179743091371197936545054539846911165550716662321431098567191593091555593684907687724716515993901130983690093836220901450782893392117874329234121064576337634500654066734838494730012357945250716622988378292149188259016522203526126001277017929713007609805244936379409430100284669900772400330862273939190076818500977158476342606706577378041676093312409102712620552509426630335240026886886897343457957813328236099622855789533683385469633859183329297132043794402219729444593722787266467359212073172268154543449562656747345725384512213460011679038762254296630990227234919232079672558314582692222640696834269917939858464182000159953084471188527229472779500754441019144632390860872672517690687361208123929557562961806993086536631741597887240738973245856085688798084643794555358328740424549034699603635410073304895701274875149327344871411693127438177135436081052953743251965567005820916093611057131616612172039604627814053616918504531350679889457539515378686397384654894112727097673685906624828419022682537939005321269285338460176480738006278066740097177907163461528677406906442216504138567582216925492690851826221640418505699589599118368183899530466572613801154457850908731818525161145357492203877717573946952322122905243593653023882202414323120562888997815626773282569866344393586365425886149366563869772771043933659592628510916849536818546041172232180770419804006429771130626919062712773453591954307743260494103593690322748689584796941470215291275178809502341150200902956348402573958039744651972870940078155612338638216818721261788167990104327686176584821244926119211110604824000389442081574412214959215147787297343381896496019230877885949735305679982702156098448621471130092962123332028604724422721595028497517991549216169087843950114083788551399340789095582013799639685228436793757803612607934848897149129655726372418551856916984232108097191670296048913751922729317166203596209171037095263139834609790138623019488481590422927507186321508889530268121184937027160425567506156744669973304946368772783715445021523907104762041101572065182702364817210594328447161334175448414063538244042512146346191925609872969078436912772370074489076892546749979176983667469897209165809401180456221712792263023301940945346439140045699709560403207034501778249736784527288894778617571116270332961022111442795097570281841528188071495313827709695609517313072358301227841062159526566959409473022324847657002502864800174271022736032368451266101201558482812687737050586771439266328129990212640777837182709639419986637538186248996962362146191124658390905147610083430640878866443476379784664283074041293669464212496892119911767130909361807778329169215684047513195248372890489320235868911629774550392426296692988100820628665903298533770780870638540879059642178126806153012013705501449115805455618532924628856364520959567568591255382193719154830818596395369460238348499217348377198019769568669582824141582670448164574526683612223217184420921265446647465986530077141040681520316019139837885327024901886131201176787542433660307748931252858905597226887748907043473071632275948456066688354769870514506871262551561257656955891759584656648854550618504429332956421266396709922892405958844410547471146092817085972878065653664331975205298692471143780565355914666773394049241957306497958398022999323130091148373172337611126443545449660890917667003576280673340199802379613114091216975055310248580782773766955919547988468713934953225275935296906624667569881598867796944227692161436425463995669219654051635252052635401754403288760905285336657581318441902995366041998750395716123099752322727572259240144724467358873702281441400171791385825933477852714783453195617905225755667195082416310662778695102375467685393498578899771809359182045762124628341011978365253972322283249511021559242297596614219902379670091811429992352296270192408671483631501347599420448228171013464820581579520084558002369277740514090681795723994269602394408081786666892424406256056276504829178966647426204124814348833602081730897635523368907943459886933824717112901957584701094124255161845712282241883625247687233214579871570494343848199161739440015342057253959935604487557824312776607148754482727809906191651947582199379860568981834433256983442315558258974421714080889875843084250192985060983284838214142267802819868223478269925432962865642618579674396921180448454718536451431090432570471664309085225933305758594207554775440224010313158668026895525217596738460377220525950630040316138193676156815721641054445307905692814451886922457107995176135434082196933573196351759810257458147604598284521231957008766400726801371911593639486709627145918944926147546001238804798128323272052325083609466175430116915351276210640745601509943117893196759194410879764284524126394993892541592173369983518618286869991798006017798756540650161850074507087568463287814480524945598710489415395080442356332814054830694311321581109155894243455662320371629578073727201831813066113946775789170308577461021776906047224813561534069278912386936798190128443150646312261757416048240623773095068713613162354899036818986387007743156244622328426475595829749994352405450347508727196753684215130879684760625648032274341696539916880015820336197795504999784029132253888156697196112380458503009084009832036006153762030392442376452243325488717147326462815341901323260878274440594969283780729558296490853994667798475315405712610358005553539285654531064852490137289645330672852705727698941853765928743817368604267072219815439957446748097409636629340497348223099102564253104783845758744620503253093888708575427005411298013140277394475310766809217279463172839146805304454536473216416048307394447758963729277295099030226684756420134928510009499951598890652860539684598757884698052656164044027771395407051943570493780276533704553758422099409109946637028169222848575802332508752269793352343517272912629981738109930606904003619813804221391802819880817049013578769370252225964440663232069244451665858395135633006767083656452544570750188702290138944978940023134605629934192913711919354691868373556283118626292089833328153057089792213431653131734360499338626912855013168379845885127480641287214359696978006054842084879544469417014167082658431330933315305966905467183814189823336635333788815989355681242633155175210023329110816986270747234830770181777035509408321865502820848829032079716217613024923318949115598907653258459842731692612576821880201265426942601028836812872279607600035406362080667496562774610091403664899068525669642632738508856978931979327959406863633263139888730912438728906539219193845713353599641436096933116766422635254677243448398544536660213234119129934206607868234935762543607544463699844188868561060722726617513290225124298709529393577433120115309178473140145523029006699346834258229335348843653696218091269545900893461470824853031063131825296750865278173315932824880494732964952948686764704676848395640413527685431146056197401965319477111694716248261587445191429281018602687894636626248029733885934356612796796188515698779185053549212196678653512603549105935975441934140669915627757538021020279410426393511634782109247009489127833479600213348221549646342851115614090935977938303837475466271694268521782038929708879160356272423263320112137448036070196750340299924009827259404378873935712614553985902684964982955407342708370861283786546427853374445126591592542739025101270597746897353903866875743118400692362015081747086550704302955331260323013667223222710244946884471750405003229461449259999380523231677042019189575353819262877556403740220540402831131415888274686122235467047567368246941848490775332008712076121023151151977983514961778494030489045293427106328544803155766801842407759967169699534690348911877190177533535359199933696381065816961462639980218150768957443099255098505868337407831215096365462231492831689496803417886428491835444497305935079137956764537252236805990508746226232363424086246678930812113203218483196555615399937637211432166439719103122480405022049887944573060071741061225869710037825221344478428827773369214248385617421995608960195089709890498613880821774969718101747489015080814753521235929902675756409916731394611307184370365603329056738815329280321906440199262453123962337211385677260426819204703493354774562339209610001993851789372422113872910248202442997039382658807734090094275800010135744804753859228375860611171303614825064536390101905526014644300698773334356132427411962330878986019994265209886145593245206073271063148627739900532837441175100743949595262140148808299141326986542223310338766357304709153825444610403044712269525129850188931836454588990788298598562730258658996383941828119526361832698205239616304679816071016058940652498580479933689565420513333964389533521152980599502340838092916708021180123307798006967085297463331330428804784289112671482700406620251062565726634643117147384390579509501284361070014287961927428056786291591860963219710423261995393928285919604416983110118856670697868926486650331863228999082669898270610219486731075203836446692881315404782508248111127515431602674185740028496824509842578550261473698225753415396748266995243971081999492141769938373846694737067223155307697788066006207242421379975918991872565865163275857212572424794607206805095095624513043069274173184299121525456692200355343187683884013204487531699239986545461519390451141853565503861276674418723433124587447464141473377252659918509278109682998389633102200355498419082671694700739348008685311042108399809697322217142922395843439953344198904648469376560243488028556002379728999890358447722741278657762611680743808772266524944001640285936636284773582841058222641547798996597657781870686429958954874704575579725219582928290554050998046330076174265388927225059489326952085764381803618538232280079956400853007578767181904952500642316543703817626606431935618459256681158255103402718615592002083974131296874677332779817487906232550803736893102953138764346133079153216673648725000428042292986017604760632914546174001322674270197700812289889898903982090635389041251950496246040156196805557617561079227689580516238533817185066435078859170202881183111398506317975633802931877933865455299666817133852657155792310445290669268310011149246696580899183009130999188255056113811069369589962830135187393505278830651446726146382309396101631013502523889934214288940577187127137150535927020505045729853548177078521337382392442441410547434647038983838361599853321904290403224850897221818163583958956879096270086087040723260221698743507211716128829571056294043233691730273729355993603161486213654486971279828237167116053749599451092194620508512525258265256204009017313133512089183100173628927392378477653656195903958588620801128092303875165333528562407249851520079752034792686961201547124409269025934976986218797940474311299874330626102862366156747327441192159567965710739294605038368624185822475250271780350178845328971030024543215193273554271779855077398056279445979145039405765538437315446794596450242846656679320644104697710928910134111109600657706063188250235686312668891333189657371489497471954258645350208459287554337580250826870537084911790752536555584201956608383954011100189183117957582081962101607616647168948289690742958266809728591001118351096838245004586217586389505940908833371123784653120913037915893357765468036058504030397120451198424783519591281691319895556402727843167469197205608359293704019342778827793966592868890707546447057446671019280302005143757395284688039527039491735699230286763018766296579695788915116987100800527037425546923688838006156701713957235702809448480045596858775223485677372196506827671278277792614998639245879077288528895634006289422624945831936829800203082330883504215372428213209371587720897436135998908537269916583392920946317804184605178255455262360708022482380700638470246109570016841974280989936158657224992136105118701744120766037985442170994235951062852667712035216877484642026098013052016680675239563284675963370388573520322153062614941331499584471367894697677469092178876495592121722230478369467227008228323406585788730867502432752278825766853693715256271403687152961852738496496261941474314756300224532602887297988537954564875243739126636430154663214539675093634192035096633080452767088215264403367121053502809688547717424907869273748580647438391835097308353054969415663956080055588260695230751773008249707411910401885156565204466710158485391198598187941792156742256889451990735972188263362117625746031786203432891612596572968650116409344561258813369577249051175539600305626563004498211669893732387888420609561068062334333523114798998198144943665317665378487571819083547722972440182946562672253144027411212103798674786206881125066218995917032114670060067885113085276449010808130289235924175708920764314968854499241450394875140720991585108132824249463665800378958617418871702289012759606399636339387233776219743801579111378691474140646164539652574526453128526392072743508876952917804329822688352783402352276262362948617658535956571215308947820855930418948282660045900016690488581794332557516758854496092644920072594957219378557340479460787612280124832338474041580019063072555570256201359188895359611625962052454750111062475034799561123532260280858765092571034828135124432083723988862617184165371158273935899334131117471978744116721212044849195244116352134283180887651134613801070681001678964378600275903103535113189828628748399289429389885778850351076197978741043778299256659724506221247190377322812132693703093544615135475012448870310058938269058021435564682360908282841447318766909816391138966385198325943461137804356635454979930760594738571036549973425028243941382062488446840887417111043790509564511374787202195860980995074312552392199834768042677824234461561338510598032188298179773660908212512334873854337562913304161574689927909865704018018049464298124397415698897506954233846011814510369375848576281137062319234613108049906033310219964265945792924551649428555938594948287783650812380702519625020409809161099354678865799945762316183384637018228236078059771762209665156815127502571563771994454286158458188208204179462639049558735452542828677782679051923517153338199413733258575184369425690407277554879151185004566260870784680878640389770637309581601286460712555241938490734008036158288081939946835280803367358260313779363025546038653358247095019043534920631091534695694147123583144490192755026691479555195050089057514920692592257635298960705529725941711928940393917415592642467944111475539922016843751466655362612461362662282661048780488424723708557335062462623399413894594087703974237835225723672008391637592102857972424822704694933818736479930536781508433425459105119117590419098562176843631463008368797740291536406535236461289707543219066825943348689201487139273871612495835303086135673749305836110077965237928769494948439903011088708065501191014060089850840609946090239341170805822232055471319190750902825821345209518408169242143704917353412390515738022602691062196549412784357136370282938182140546267747512715350773762727776935877834913552169547487145609921068382931120927650681527493739327390918665630305227222797798945249307735329087723995351156239428683025805230590688908558059752397779142234265257882449584286421102622799594131299955961109753973029910199175390611174912470626316635611470679859670653220323265662429981345846282400790326562408386328448536869710406478682361624249370614087746217011707861313882338156690540850307677441637858863991120836279201710008053644233071542808091024906719157281926728366882424600015261810567818883613757132830352792609203201696315174666408376663478699316072153668249862611956901647025744685143224356227838353958076186491193777050121771463658383027262159681534537005524805962052570776708715592194641620058137022838002157129937325152228475008615854141605248028374129355163953516969375566945998508062585881939866886110694117759505752327203961201413926243485412715124731667981397349535980735520116929765799907390836938297017951917229674555921396592660063741493877342811015525243606843268292947037108005818095090596911979475375769374396337890120121854343986903114016725168476579442018800508452291393311078880631582092587792676678468571578427375107540164538637889901218068971029468911939414287880780773782573806604675082505581953964834195738678800773872303271210614605508534103497846384006346984081092731055490421437559272941319926258283208179247220971907975589400894550288446443767244490067877027500123571373262004674512939900442085225207694728511048465926017794007087508724026398913469465509484563711705973623318832467427578746732163445372175020897434421880894849586422026645589804205705157283740966050855138114224027482569299849132646984371800995978933321399621065174146175079951177507536028239539179999372706090078291039287093925601455067505849920698237866791063371032608162786750697377684258230394937631961930828119030951353598156762110445319618292151636394734142466036303074941627395022471415335476653222185388431305863871660905116573015367774012202412083003243376097624371300692624809417115381014055839210996817490096796014803461363643624434892187324094945871558755647326607854539923128357112106277131484914272004499663432676754318416007617697396040215430503093177364680147256284947858188679437268928218225694108134294989001691523949206026815139991115820391655367133976844925745927188143379979416911390560123023075441687755410115057983058382179744869047508513121010620957601701403029024680445452145500102649710668817469023014626457303233786929860610379123348034713776481740292663856133652545294508455207056021269493019766045558047282503333432748468399261261334756779895589238115567908464228467717821122135935149809145516207108583500603190843282468444848056245379054751873175409340293451587004853072556186997939886212954788116403290986230415965592592857611896068381729850317157980695572816122743397454882793814221052041626738749595381360104762519308758080060295859242015361172198602102038237333389330508273032503632285814143716616554996420897428937490576029295754525863354241694480272600838881370284938759477267013757844251456274264981446486378763896521373626234040616780888559528137888423032495246706986377057365996240202297627554792115789946856519777871024723200446784139948233877023256323991947251912452270628036060091092860664019276826896445536045463487859564580142152155886389549580704519458667040812725688564817566548993857264833417308943758340962459664903671629166986012997599391520463710624239736387958596466604609319367889849281423720143476844450619950072203953972909713455321507203751786753252408813800476575635418497244606625236614843688483265477002746961325626180275117655329807452682843393073038661756316334812209307448174857338056551408146012667625742343627094402168217944962272212862248135171683212515908503744265664048517913673631618608090702742672780782413066870591433730475847883983190122561702492117999345894967709155638790981395615475213565490927592064367785205404318713783530794689536962026393060546559356118302334697698650567891853041261439264177730542158028194110975031214091066941211787646902467758285459383586477489676208195341541922771575868647936161366370771570652986707651352972427467609143721854048473707860481464653069777403586170242361015376573374265119148775280341029599980340162254946694811000246393221590300276580798207449229738661383297186357941683139383071548751808904272797607329666544592006590130220710460009104584154814199588219919418324927419643994002174442206323006830907274797372103053160332033344476018891872758216819828255891952433091121246482246646677275821681948113744327392517148586162251303689403636381617070344303663073142905434757833720064265295129600391510970874060371061415813999226078947108874908979542579267249173464836617248253868018185195990779017868900698908275295406777344553182760570406168606839265446119391342695946166116386416515004349143697364253218125368494960690648969109638514532498948981213705336862470436590269296115930493948047309069543707659787218130060965981099264562964155601618753300089994461107314945799300818161113010141841630854134982242915276726018832520547480140559500500954309911984948027684516974539115689445258441768365692440978067146276255124890510742675849566259308492666538092755081236058545986422315589172196666342337045800133070404416528460222672495817354557087516221299987404555759653670599599121498336866862606231500405305658573891378216087794065954603814719399075639760174934225866172489648446603650843880321354818197048350976471358948136258313380911780697543900840709489591470536380089773502489551344941174820378992998645518726756782652475184973549296819088594288566651191208774910080279287295227753355040784944446559817172938702390460502851164080649782311413571659595287383863468658662486488084677433467103624476889775938758711661495459069721611043433375343464631214368729013767171593614138167315577571454049734320102917703075236307177427868572644461206455083730924558056728588708923861473560729687929376599661828519707386003273934072623052326023352750530062380515733760840545803925827697534093200056776208312057222954613235164153382059370718119792292967726625853444412814508682218994270061262511865049574045016709606030902199590057257940780099221846523044564545961397256982502057982546853292004182807299843318384093875318149751764605170788387494993873672614662168110033849305395270869141791791932287631460962500573906471856488220431876454861404028602815202709219153622318837795722710795008948846387689874885747603229389206323288885554379904014030661363450553346627768500969410860884818802972855170156662021742162238397944981439597570911648644526427121854688211361645938091073396745943603503772732367222153050665005163778274440960936960427774316252850794944966297045773336757065000510273567721926423093657852113744949783258168346963555234134470570624464115824844466580465604969742455760744974208820257202713158245112467500924365488496961854600463231120843484965649826976065205064710709892982810606252352593688641848175426984551428698727907365847983833564106993811904700988129131505179776423538788277611636166502648008076997169925562843287656962790559108502109633434939458970871421287209745406513924313932007283034571112984969730005679065869996991370528663257953622967563944689866292685931747300749424739757633856168712411757835582234271311241300674875995082590054868456903584167986471188320837779204976017734764051472784661684173903782074998864853145749516529016051625893057332637327830636147886317027076047208007437778343702484090352455688481615452180809933205038651652298100704485799160146058944326245517536424879083022483344697235420913224101256489356185533029447788480923550068927687193545660435408713903197872682517647286975340533343550953553775747376422699014358105395664344166795540026950654349567743511753112298126091595841580362307460544551244591904244777970135825449886586931653516975933308378352590794915405945111804800644392817176215756492874054687006789830706073453597136368447727415812247621372865003625665231470487099398950985250597408422124890690460842806140121378830336403521072036107227293537029174176511339320884555117686033622790423072456670079596749592973553530692749637929028922690359969755293930819397137334213101790625143887145666349608204313497256079238685099971375410623912065676586041237299606478137417560542096112926230046741201648830925213817720781725164998760985958223959168754393360141815826226441725875615832421693719232764356177014315943506143018304150563776769162408940890503436580587103147270223640944022483310187560424474818755558366324482947865331043450157706804523733762259478005283761097369764049771049370041339054484587560489178152163947403664489391625798246762061030212456319640606849349247486103678489783244531214704793409847017136015267577791307083449733227361209654938981809963967322496427529312105839324152070869672254412931605336544432658490407082709367677428320932660785650646429553109708054463161235917213549243980229934516656839543177157039213124064252206595174294622516649911714012771987932263797725346222611328603663950113553553982412598216609438884462613811827641690335772279320950102523424591454264838116147194795062841388652423770601815261197506667071788915131356668648539399671683594981860581722153910726311838215754119234893382231522417893501789807922508437815902733544965342381537772613742796034464600764067246445029173049020867888791304765036230669053777872107699003454616593107780523216320826379163740195584427593162929365173356621745434838922290573860111616292332364277874367257981674120261727169697104250636763561795622796451347917932484094805064030837840797385058942495305616053770734269497114187729641022897458573868603379582034893869525454193183950672493555474632283538624732192940255131071278723083122078461636028052360783220686036238680576611540531127273254212435330639362731514866398452810670762295071568394536061275860372472908384232665064426927589738998149372962908316048948938270773565286408303179726853005053886771014889853194782026288608342883518863455545247362833567571074560519740181691700559513408611115621600386068513250974974210233329151007916893535953212087165742106471135445707676239219013329829633629561710954399019250785750962789562524764746039667501236565140386581219139486480993463342606365991453237805698905135000665634575980643909667151819230473154674105548887061923538636661892492000027709123992021523358594314796924600483661380191529281046109275219350821489864328141531232436667801496076745996724709532950774221717519951849156247862289226468708674656461440739042830924388468402276681243261114508299429324621618735544582036128173624517739141060228352852910648957090468408626065678069581756982433445986487188234303285716916480148878105460838037147990460539933393109318616338130349282308832237443130247600965571034538458941641710123937803921510112568132842478988825299117481532608325525709983945790457377850851943382419182772565855752446297960246991947544247965100501756765695881567429668243195221263985052138191153916521056141521500761862964280335584556438767182203235803803403541132165781822069307374240785929600991099711411444403822192809604550433067230465636948227354241400851330140489466102094814449263352884893542477700904813092754611657504358650951613940074752937244772931463478119197878999760863408515514553705277387581522258372784970849946596498217224496673837504839979903108135193824192867263606665148058058213687484538545406052575564002854142263834085601283240251323622993136694961848086045767824296936293908602350491149381789434785196280006675759331938320743588358655867006703566113600911389860115619674136230505493317686412345829435549030013884574325090590544151577591291696483495761101345920275183006595044938090218497213990312130895517752718180573040376605077829549779189114929708406518750245048730987970955711402233009413883346718717245058788288143077665448258769635566638947447358884785461968583109028783741139327246320921252475432762470858330457254519101602975428819451587311862223331007926465244006965481280516424936080934571789913566678997955964656262759434459785565927427508563062102381229031072827246760826304524276113907010343345959191836509872983307722522745297038612731538447446747631866283807602774485329603351060683014478379250714795964444941089185881218156670299708927829762772794322015349748043636719418251654819197382309738003821556405529398953791331459745236840185410873478094583359785774751650096669728922739469964666362154245645474716962340679335716390219746504257361332847386619954760114955541616041783265911507847416767754713016485365816090687429930722389284956967142697679827762560530770995432619825710853057538098851556816916802459881749373651478778434782978067918180156222112752716605088529151293765007523798308052917371060312242132191902331526347054321370028576509841557689113693056871392484950550650708613520755596212872599499718090214692882990534623656826825696381426922955933298893443304499967046643226570956022675097265762123548118961146764981718920104339227233276329441108390592502834251900742675235541347172381716503953681558834321478361341351261696906898426552083874588431607898831993873149720041758329051720640986409216244537686873914021452186713900139114789588253038431624595571252211768888823166581662525851385761402451504659536993496537700745334673702369870842193355125322210480021030094577967772224330518165180297962108056355993809327762113162845864621829626806065308286009220203104547789834504382647533960418957304672376548526971874031229442508480341478775558396621245399689569882161260842917575009144530258065507679235110501436331497857537515502743493532957628256189690380070163142494582731424700003032035591594365625342222684772734503907211621242375202250778910295682437330963788107791679524777513557327997766929081963084139140315604645998611208778931865719716690865395617467350025032795042740858571116691943426933630880341070345074815352161972384601558593647675412967695565264162754216152270890043704003182111405375540103108285993061909701133921880455843378939956586565809422686028868584389734471227178314891275125805418993087360309060016128373041028862601203088611190704563318046578884422367444387151769607077449069173583512680702499647191490223733586558140931886248479832613085432831354928900564325356700860778862608883685348656098886997753106970391748767125042258686786865951319278719822500787334948209823452530451684809287205553969682228512175255632617145127962348175023172558897643517127964888059494023369732125966892736373398435436047709075265091485685287645258982973289103705705319078263912430977300246947514637794623002484114757978782930161599949675289636668279834220217195146890327725630248341347709798440457463258174613450811015844925201741605570325488245695804580617076839989942681847192920301643979249456197867948444407160890875784126492910731030037081815895763481155153058010127101146174300044598889734546518600664020142755732818087069198113517857330647133527207880809114942119798442563483503954826796992710315244084670887177162352837968185736857504692085369567987737396760878481709624194690271721566106415048935540788457253384963571817582160635894824189639660706995752668404747460184586699203572562492865644893836137512257587082919695792922959561830079958653986845197359515398109380519460738024739222017336849459347880573545047821751164999970344016329960378046065528681521808818267224154592980077187222239653514046856401963679810658597898963167766477254964431099090789245482873448080233127467852582073087269027389286664170583836680066043421815369420029004106040609756957481169665645574211978158701989478204820683778003735540455766234814080645773808730870459120364468349387347103561114105622516996211251595381816898491034244226058845281185843745169098590165990630983179579025888165273319376979787585161393906241475769726225455112839015437136334433821551961708769228671928191627606983276463750678968207495628780125685575160325960626322309699591425845297541636929943655046437737479514731861411931597509289978027993371266609463039775268355057551169979663532631374520994270608337728820487265004360362084306366191219843570302908236148391337056939986814442208109697799189267938139018692419978686379214905667339584323044726637242670822725154981069794257683486465214385457546452045372017883785381334664966426430716435742191423364816494199470132534257236537923150383081894257300857726600226660263538492934091577960689479483193086853844661368766569299413728980909410048764666953724694110001905318933823067273076934580541591495623023234515938670920468035429279589275926305893893836176632180275908473492455052924648858837652596574659344163884149186511692589268695100946911492796284866919397907437059410424202226360534518320522092347229903858470850596886282247780207957789100106615389079107136822019347092761853495021458800980728038878593616009935078414193852930126457934809285451649450214499377587445184336253631552738563880996870137990725974843897422169297474749915400740920433477872225974251383096856533644888923854851582873284360314485317383690676577935204082631053596176053649320991902806626113360187751082447857443932180357978729314982129819283968560985609060651951337037976409260815988648018791504902280636084548192886278170076237237974165851867941735505827676942924332078837649234528183378242609675312130156435430237317380452762980831376468092035215711774082645426876411147180640188834727726770203468657094525998660140156780148290241651958615159950212907424548988596669421050778967488267149373465695034516475964788978287494009276628323694185913503255847098276186135877213408517202667638288778732946594493909951300997855663893033347484093446157925408539142673442433991564333650391532614122686682819338497524270928053519574272482622107785247192785373056998304439039066861014307894027678636106348896687548738482247187412530684835715636930492257962435500971031715168568933212450402070791932279890988863317758117459518349278705607962630163366515525126617143259894491623755114149012739824828157871176371304929859557128171341189359256811117417340066563536730790545210062945124210590503779220473973256907145193353087073763199154447968614506197631539977962443906733120022039852881448224185097862650624258161578999336178361509060658058294550014479508073463583912395480644176706683534236881381291237807907296487790284140720616686082638986831030239961152782372121001818690422623746512017595969614522824443462784169744940015360858949410888951114602454387964765523653857042586265434342254947318024287585378737672995862601833170795174325103948022062158265236727777306650438227981817136586401342739272581916733927023762199887009062640069197034725591631361479360696513138399592858952360982142549540919634177161198594979221045904033668234240394038192550396433009299798072491621558196670311612700821178498846693268589804018286347892012799384061739484794204099374884368529763114098556036354770783204628890737315374184114349232511845319818837802900175205792415127113438724203166031812565625088226420187675120909830138569102217206301423937102814254122740294157521199857352463839887125533248105319048719550031689434002596791766343353882078149126553707852323209983695736479823326898538156260263919723240809872528590846660078396627154256702145607610113573516913354826513749435158251150886082989465155703390699263406520852239430891487212411991143444964947118663830806731278090053275263016982307529357831924388492317967653504232180208818027166817008516195005757215333226875607705263121736029996969833042118089106785449415213126271533216385559418837123960711104714324891499240194244520992610865154292711454270819498973666367818576280579345746374812214431932469572713221041637080386427105019216933585555195413018406029183885377229656189743444741273684179045182331083948798099116779562464878029543890178962209890551774097991490685650511731314347731798159834943970544905283484528304568378959426880882232259042856921740981807543904053868553195584959109349352449011356022087823144290474452606779873316312678576130925775782042142857641687930591527592659754809918676494575077761877809167194942423070429681245489528958317645215304000500502476352619242215970088883701840903588260253072851334222040536498847435847783201560983254886954861075365761600824112399969713256537973622789301574450580066437107447393492938530692563488325858791805667433287882362444745930325697830594189707781276623629294269651833932200854709158295488127323621774189629492848059081507367052360049551596631141639824186661169203407384475820440343258563966367870832360003097246481793379615706233928731206480456492114729309749131204098674193550009800438977550145350878941692037748433208185074530699180266686319601180100084368594164570493240987492185713813497676585069524166124875274148294023580294151256029567592958991543251568955998124600354788441176280246462091515754709826649264753431591407707502373145279603912681519964857259265303986489475288430139370869010482518927571555355871887997635249914679482107949189854707686859116179110988943551852405238819231488171501072422855121316113135346629551512272648174693363729171053015061456410997921846068354060881877558343407861807483800808194102995210211274243626473468343046914752282003186848822611257757015089749572099085962307324578645505136484862781059848945177241401870185723883459048448312892873631737045358070454113715316084490511666302049576875269335084503709598210910977868080656972036338513581771299541336003515884659182775674827189024823490956607780170976134651977135365932355239141328591744396255699746585601276592604431436742175703988649330177971566304047336975914006923701492465195505916900932652674301329035928635691617566953823164307916342275434271281653131026240885464661857561936147036402674563673900641208231430049874488118139361144649841335969959579610993048623284954290317237244773332842167632424678151271521494147265065372342991811194623989666987395487441633568918942283918430067027346945174103228592726574818108079455856573701968323890259372884006980463254731492616842989116914831748877485949316196795400377149108962660997750102085464680043844611094762899177548595398585361622386817545641902330424384327872747321145583807873578273783009096478401115960967402299342251911293147385863682691930777929925543882005332620252082206089539327287868473792792373160211545217097593647860290536533360722474859269466604845318511440430680636190462569531900735035209510834395991541546642839847671967180974857978444139508403115659946901866007699582871723660068555078912772097907806808931617935176542930248760674157979553464455379378590352025743605082733805410009988707615153021575393384935972273364670923044223250167590120176875999533244790694743953652513069016107190791219403812747703604996999017829085479967865013395967226331031722125857624327062330349327540218996855338886286375616957694333774278372604155506672333580125316721860044780743665670950489569605623084339199891308062629919240210489763053132049493426041632291296141404704139535434546380215454292347351099690284734117398185040660914872222979774846030286612394265618838321688388193009198600482872051610181421561049271265022582139277128797282264917587109615636201677233450967347293403448481069426117452769189076945802937156960092054307327229177638289341515735786724777551843768769738061965350593132008996396256805092108393065104918599440443623430562745780567547546519129114269878148761888947805211376394001648212410086284486757433605034091148331373682719352531998833234441119095483113515863739703697097402841036853217390325917241791236266561674482470417905319896804078216466501505913800988231882650130060519257531160774268810991393513727913114715083054925194621743012737739861226796811047871490571217458236267320377374571123766547386395730221188525593895740105088990821914113297241522792004646684552310274994230476366856807023918301985710889773132921975651898737435494354883283776258194134794186987410812994382666981713057654574051784950715255340635108139572323625101386050799396638624951865425490393444300919472078497789380031457086864804948460893048250517004907134468719088479918569357728942771328856091168565808971931998372858620431636862539790086459520885376966721012227094952402090443033572157296014702192536261944239862330747543746240357225288017887203224286515437783206294540081913129408756831720882797986211079526429281237985471108268373058810191351893719154726997008750246301972592336625049261315542579478003513794912461726858883879428366140183218419585690921629556347513261587708582657920454890633010831159754297858666718933967272021163439529575402151390678488560269077288896678902080069861727054331100369189314759895756090857217341795929237589343727374266917678965592014793541733446201909552618909437706710710162924525358097119267072927315270113115555862689712570916939905739822656523194881590798247623179472422597067047880674111972664853303450367114343241515202580677791495289518265255726478384036740552650779763570965603113344346544735054633879362182562710686707513941970054034974869115409962496572017151258983573829782185384819799905547570530247550140064907211240412274743209924618222917598701490972049793801668110717769279622455179569788290450611550151921633224009674834438556763537116787887994378448710882189574066784944106298090466195411414701763056149606444552160421425260835617626784812071434473638343745868267763638644126887631015450799462072104008563797979521126352924439518259623325859972924192947768122873326884515300912800954216997272259927175386018192950070584516806014139160897794631915502711666740819295886135042508473041352007535576193789931880375589192211401157195195108852304396416486522680585022090795469855015698090767870603641513848863556133569135103860677451521736793029859228594522653933458411241947023602373394624757808998844783994459988308975633471901249883252286729436624592303990961090853290557720607443312952695090742285167535960348898762873175564172702909814489273321841125517303153458417179050947931117293020937724015535915080541243375526856570530552977719104238410969511614394222917734339791605978680845365276513032978622497122298116289757541338026517887746879452692682554796657334829341663954697192903585473906097010116167241706804811930438421828352980446416778030806002967891596082296803079891593944322012549348892006458624123394641005730829449473115016390355617047986593321946447283520598582796351054770085929132489202267934620298459461076378917841071555488688198860459785553990224915101734698419483448854812965191858769889470018385606873990736827174496750049507922150055537636166855172433127137154226494918793607449387953418271192303450064536056139212795510874957363837253061854330788257933536502788238771458905388537690327684356648227495194108018505468510136655623541877942429798252228428136725820556316324371995891943961914759251786679871645168452330666067604673327330625176627870251949260210625809296495857989512284444098161401323102677575155808144770734497270208746528889681831654350949452799056748056288288675143631233730586311310022768871624729992933704384987744642595918889015105836420504466345611079549975282644112129983166574427363118390175829284766565743940891716016198010624481646143548290206541859810554953324634643640496874487569846699544976818151982893873601703792966649362441107856931156635784955927804734243068681288210595540257146940003443856858390350667791559367074890435798504918004951381514714984053660296095441016471688115311510750340080621197781327146334433771718061538404904115532540661945105899458126890059701337030012560279769996292517497054990639821528834983689612489184302738611687287272764510058341648478586160763203795232505595921202806003777951796068458175737381919477463084221814224668195986175114321063864031976659291059340403840507191163160399382234905845534390035171591065723381069243815567094617999186836569075054385595189503457119419541750679122850867887059537974155179918023687170022631700740289109022059299651397763312318223530391589005465199169293706971015924798900808166133819426784242702107621378668373694491212840648128591705930924645994411031691318103218174277400771823274688622755280343598750276682918420147700226143562560513731946038534472795352544420751391901160507178251320245478709243146640755721524655205089826479990332123255771076829398538487771643774526446237814100403485777199542803338881995674837117667508138968951757851664193475357203886359244083038246364501656977094292109096124071760240192893712816956488954362231301111638592322218274469599379637337739926345311510360168172444380021155684085008711759928436066861094068273834606047631451815067315543720939235311306262794443058221057353588305928048262388394820160658984038758387692206389870210054479484110271894899317892287275242797215901209254272479409179854351654916004017795827478878012725407765773199713700147183652798519857046446795361065185347875407852346467886683842771131679468710271840435658840606049446771457677601235316594876754397030236481130004045875836640691604013722478853530435815790937622656488480247141737928985298894409949732368492341403936443130112681100845391424178033985686420188162235635517956936678617154990705896668653874513206746614972389301690108265254470688120404998801659211205503356648858699958141193926396810677923316298164345776470173666252311629371449464942831932585849272136301997019115761473086885957260553009301325686891180895558044787599090191645104807908305229158511344941112010405016348711253975241192483491600422590006478992171603056151114222719265493429361987902514408662049514625582323521282385356767681530663190576270573092401010435957971561816569778218039544917201646427950661500300827314095345006748291299561176927376481923930231528796102920395152562367213313850012550798704500154414002484510266609728076921260291752038147412224637437340156376022873613037578480018551451092509122715410945195236405487425702031494252415635052240441708036424163416161366628449206037369747380035146409401439520022560194379584851326823038029884795030429710708948673233462599191942359533653842847070299274763804280472859482652456531872893206868174331215711337670747816463665664920513893977340631748846406042233167116660956333401038658610933300821930588650468444828924370032598435705165830360277771140786795650373828865711906230667552572287029225044618660087146450381166424908924291519559596555669610506493050645897558629368115373060526425222731481595386286844818585638367746798593569878068753172295174887737542936625600262086275586382029556375862260923011951467205210442750014288454739862288444897298172352782568841385961636816733515137578163973752814951813802331403022954449542505524005931903662413372475164983608143582091391051680561928651227341214107510597676931299592306039997903551361482576059760968526716319988072209072450089752567324269969317468838773868574483010771744730813695322639877508624307418881182887659326426511709320440605513879562629518993170964579232766948010986102528700659975310082597599837280764461552618560754841923357195873534479930608898504978485494734926155489259539647549109915955431273874762284443149940440102706702527367417141873522812140136881155481243340378249273641448728805911935509795632925207665871822959427366949271992271086837706525693957787632655159785479370795321757370148800942631726893355456492905643134680007055686238871985370984268674359738619469364242323637453867600120324274412497376410944351680357633931645629856837153288786405821588072628598940290886485329386527991142799372345905930909268545962485278582705393825309157607836734698732684051474047598690564594914918202029126231519478230084075870698691814845942306994843393160596648578102053432502051585384021238588946540680307803810820086547091130066988045416015860957170284306760362424012893916814983986985306378444944468779403733514145273244044938940673846667547197964166926737426087134156860182945417170192688987014043068743518510793118993811351629935971012991784148547391126434461257950012158696693162433200089638221739850848593770028810723504381756535605017072086274262244241744651204413867569613869482071621211210656988918559665296881636921239149975400012047652109027275204323562231705103523733364394209271211229970695703368743772793878526275412152787156751344169880281524909642857796844021439642813913017783886614953369287011727995794423814566452887283742941238933700223492498677886503101850330306144948227830425260038873722077185705531720225536186869970916059826294790532995481231362181877148275723263800531176575519421292835979404899400094338292507572963215105025789584577483635616453808450218320963966415583280148807396874433765303783557162240528439871336537689071877100433045328764283424451544136853558005534476205044527804976818788289925410747946637560827472467508879598838369135468528783214518576126403211163646472074905321475660261873709253933005598999375645437535142637289959331275070380542730846005677662656964061318335059866265009555420913757520888143323767544381784153141470453382739361103293002987546137494705413431801065051496319157748295098503303110993756888519772839320282291176638395815372083806064363479054840164532245497541266642862345363405001739320123591430554959243001784576806741052114003558085047051879017622581803001260709830364388920344371250365993935964433462268370645298373433813956492095313430710187581449818110064256578503774540709671495209841552852299991725706429494624246990522933512794435727138286992882118370631805356192614028435930954539040669599658614043844303105351046843114981374569369782052435152782788996499665324620301400083617577587135360977575309453331901566990191104363920061479318742586381921731265420759462956051615475003766525029654896209246411705710797804354047280089781808987263331503760489989395775384839455750928124353359066465848965035557124877118547542503789142606242731136796034217557830115239771346089200728095629804423744473243397109610965633026565952290122973469984958786432760055221334490487689047163613138455535805181673212166808261232300053594475623618256553982349382071989640225313894136658655770744097789648260053638871812453232862156783416742331756281035602072560295581661759554840909031531863353561975029359195525521702309291234348688108817073938839220371091177378399232578465877649470645376559249573194680671326591500118580993942089912996235179706868487092433166320886344716570527323448053111913021857785783516904010243710087948945922179972229510679551329705625021604973438928528958879327706614946503316379115014168097125314226479077076050398096734323543635779650856505402621633463221527678842894179307541679952432548637169922480295445543446692226105122352391282622324816261602164249867342658133470818653944615383902422078981557688466935150505252965056930866159430645727388086060073809010323841432396438256010640168662870824354289204773077546244298979059712238791832980133307595434431594068524761711131207676389977284700868100015320170711962082800880834235270764222311603794011765486084461012178269460592837600067527103265949232982090436078733094072978877683832156162844414781551898857904169566421560621473850194266946259651976564780524847529326796659971013450840056340102719209044596367726167716546935292823221198239275016207561826681010594617787373464217561603619625569220610078533738042871371695056690257051032254623369187985628098143136283975581759532143509453454348991321788027373411106594802638584829645740260399015989279588115206677494606189533202616090468839531677949386284732864864501992279206434635099619058958406895726228451864343608682034636644724401749443124803580441629719499007622348529211526580884154653698005807978743964936445735180149158524392878453823167771043321296975085942881795851428227011992769497759213517644726227680626517171452485512851324670321008355513667138811381651889447105567749559242796549624982636208528087212757992387193798458700045627113720995605706087493043211616765539330296821892804038624159179527721252283344083718504337375960477068094830696557139743065794006315442974849930062913082418237225096521809882136470703758940078581421778836871103061633099832900154927550480576652037660402322339368903566694664497608029139509001637832859994332205562963810167765618292139941429063190283769456573261760700458102467858069511267180711451418413333659734928000335932750938314531902384294594057135444201102118129732234549029415954965175752544758517151685025451563113092649259986443036025053330110885520029986397541161972937637052055760687974267567709145996272455361990815510163147028050183621526112534166727147188464852951131252530226937907344267289522506924224366748583165897741936175152384045083715617994111398774888165395157339417449173650294814749240677406502979152225158286682415518610270441065152042262139326352782775079690185184654012914199579408594534573832873788171583867749073568551525467263307106052117243004373932858431364680917382870944316154047169302153279418110999255434412293539918730109891677068703469250934910539714400570727221254991000780605917146115089345119359702718474459989271567986652498019846792645131917349869379203696665329260414878151698871280616533313146043308104910685783887311661222696646276857852529718921013205851404521206324140927767538637581621744968946887079058296812709217593485494747411002106347604966239766943130911956593604970085451827972368485680503719925928014583203641348943576166082118458292847473311584615773553308094920172260126353075026764679012750329360723051478923950259002732702466474972958356939198654494622500876205579427617321606478390654871018125491221643021658976141305646273616973401805829594965613467350076104634379638419349564007647665982444782475776871030739658645006142940719140899773248691852217796635610688597902166531260997416120784371277246069642004754924208916938352232742506378129280374337370670115165005062609575749925362809532207596203133735430688132124363547436033168985998001801893724229740006955373672888329353701453296217949763206363527374823364653784048367923910687715158278874946368443020584945462928534146136517125434488642411209137613088830552464034367373197262557322175516100675585478959401900009295119335069630612709604584020133073921282920894919695770427292179892705402021380115426354721607094169380903790141322184358541384411967468752940826485916868966762271812817180566255307623837957100859214102589771343820880557105052910050738148939774871483025036490242122749673796204862475279806960897634039766299622451736422036284008025280998246162662072094367328002143275953255002485478858651038515972889691415652035400036898736041966711048922621126680117555534974178497877661191806474209855447290680954990446636776988204541037893253491645780299060739065770610774472291890929946304860819612690575621249900657555882539439444951356037162574528568201156711107489284687229359456654183676381107680178026327008801988676706666563399000879270829150531247876663355420552018470805974633513615657071943405227824493194029027190267596749223926181608606312102860510761657450524687438432503041412158628371918766611507765404641760201694625301148463272492299444497180295766574014047427904963874848809202375902977575418041741757948922989097382811716648492178358537340559654264003007799714941096223623630836714484288214184028582483389564547379829535789775137663429922200742868908355022429304493807877737666584537655916945521037432371820390517637388500239132911782178240530890943136334285503983816879267268637860151355366680225420790125082164028571173118140739310700354321470906220707742039027650917023808844780593293909779068131882229222013699513331156946698550082196967486010878697971961388137214543496983891031527220268405170754901163370050415560579182108815572516290131332935808037295973137031660075730089204071357908623233784267665673476847697842763789613207086420983181797727043738849913043767314275128301623467848699896541125300684295028600019038557064347278670448742582891910513633366174240883598695503868449146813104801017850332671081812084371483640738404324761329415631057636427468561995134582847679642041935685140897530896488263523033839680222247185981542817093825573897303796025789027468737737859953788015834586588349572741035065028631817332724984062913292176853144134918386751860757591030035560858161622497305149410155208089648426139106642030176457871863698194495380840059815295704163932115831390827843406793351680138587108114029827650506223768441427693050040489985601927595835031390970213838373821207502459458396245947125291904516567995217142773732072226975488138514446821327188476173031581824314960374526379594529409768251977606132991139323050102560596778258553325767143505934924221214094141105927492579683975076123655549985926399806446518592903113374637390156497296954241616120827267242370915180715236081619746779488589257769538571849866216331033556502025159303926830060034193920859189825818740688956983500425070913233246911746063906241384250253812304440730148574892644472322680411729808836465285785687898860717086499900040074092694776065594933323394966544781216315292114745708167980097345397344076495671596762239501957977259335666432199982324897707933469655494152186809386756726730260366570627568700305533263022151240389751819048186087487800912754435905154811665681981235068816448474941276130080258781987438989676751975967297475093037500815800062329069338586058332487676000136230029086914242724764288452679493644031843468554120741420046484024765297475594887813716538308528994623533356756359376094468752179387349680049139738049302743929084800179405041411957528241085332710920531930749205234821180450726130544762886546611652025524282677072493119973944417428370143726372164578839957834187335173663289869354387060673812585705639155491280776831944346954126462371055072050711640340585544759176776891325894001901926868344332253824989121651940912060293146683658260977925963889446573158341786362485025247555461557806033125353137938475549732091665675086998749098310902181268787141952159850618358954202699159151832921660055912470705981808343780574865018096448924948998837732817562646265316838031823179670197732631734397050583224227678564718216397990573060880340761656184994285441540001705941423634874546399483972213807888364069480722670857886053660015518319822673432510500773137180050937531580537829956594512273243419174605407310719970505543121494935015063292950498193967415920609170413745106080369065866398055699417324016874216642764734481108037826159970467315726840149563199313140418725370851051136638974801902972815972534420234649761108947214766185553879229127641803548724846117930979422348208351606233003114768217443952460346881524029803725382952214861574758190764465621645606829927988226802472070091132120722003220508367281237396866463126058087306996573459962581996880868674784477889098283468482774488414360559538805864933617955886112425212227335999013306918087971957109411426678688053060877865730829658209000492058643302631002335937039519198791533157162655028290051337982357894901454680493269246470972306133844502107114276471437032644624777234342030989568178800696380863143003908171741993306763616260389334910022440561044933329483020271571008376605134115179038539525975209995476968705619585102440402614182513685153184248854048307164722010896496294514596573310143381781342130133643749169063136543225776728960416896290391656866675593141253008992456135420298201786280665666788999685218014007830318615931672893334595372915070596836132035466873696894061303380387159385666640218790574671482490147615597318485503989989228495587644917601878052626446794001261604607950735175580571330940828707200721212038317971323424685435101862323246085678725637234099632328808446494535087006750139225012397359325655084635705017293913773518579872146056922657417671012829104495355738126411269871585281234059147710811427304621334275242000483050353100894789350761805025004433502338974044075130773078266832860898682452024448800008660386296249471362822980153572496685829507670956942092097155277797209948856796404515315481944595195231238586536940633426348287570924092917217154490106165478279050983422377666555660549078229968926498027885245622511431637585421372943530516066103282859728367809074968832890550602895654744250321625460839078266634127238214180333589103448315565202096778313927574956643796593892861496645482920769055734448105616640086521012949788537988749295000914053219760647367902491227093560432357240989325324960041376392682602464346392585011764991093574381453038387786977643737471355235128530303349746155123932271975820991169460659188245351702017642149467456197836618797784062978997950475961856095143102050567096554913371775204813960452852436505017499609895709537125052894892331629454508232422174436221355859830587898345727293924784591319224983682367728623980668224484375498950647328737302834407879589461549464173059916216684518455792487083217127615697150792000714043367981828160131986110362427787095577763525098500982383089984239785602588969193911344711449139750493183741845150584915410658176183475993569000116895023283072299943092924338816765321325862673291451759713797180817009396300082454638967844994943570797323493941456311552045970372992231455235069371895883758557744102493071066130697092896424081867714355295169011510149438142634016276654901675813697419828098962172827894929179261906179676067566812558384098178150124169250273975981973356167493190632483327148054091269984770415833972605994417498801670966859409944734562420300627295457263872281806814667226669026025700887502762271033367529835512582878920513053949888204307394470780837441941172413280543322942999206984585770870121050178012221375874442563975167547632870272246935281469224852673033262698534718228543160058932737878195199233363181378274419963191364869928251565707491825176555717768869886121703842328546961474269476392386502596653829828283688625242466346402540845795784673845506852400002379435430686532912620914014454804888546777762400216865268758720434378128561999185254789996996587010957922712676563373139768309292145173591241479359400726081844687389750183761427818824667021653222875283568811084018883488241482925485087828516532565122577221602115557096969046386045211639094522266362724857623769358556714128079275921918550824215718196207486602826713057755481517169000309293791256540512345212308106869086224479930381785001812176289932992264236402206727313844513713118782077052364627192405960863938907037332674716779348876180458295418849225092001264891619027868592549834262734988576285015547531011473912310181086589234874254777603222188649593965964610906189424834210627011344839658738517814916496318687398744467954893484028421661895651091130429533879792507080356255463095587504321653982581896171088285531134916111734040409038217558335746174136049126676118476417118922738797845009971034109565841968902384642529495011811013009594674074063154936238187656789342084882351848719512544685063462903783482201883190023503834697824494901476842154184647096691293307978329746281501901573890643338506661772729906635483485328975920917486810395697750691266598507030384789577974504377190485969740924160337924826316411046569973705337900070378279965929302135031566378214981299725033664464573204697885399127346844145370326451862136899541410617532003035117267785066037997544745099267842138173007684331469858467122152592911148670166381170104369426891534325875224127097955049413684524670487201906414659515285741335550138227826867644720981859897191440617984571500843094544613349836196988401238058065547703965160651497322943984729860514476578910277494765763009930702695345655759304951883160233455633723724657204821534554738163114815885529482465126394851974767762886417940954172861162053163771273255030452770345545412617670912859358042039076998737694942485025206673636778040336245542544485774915085986538710397134251465252299524287529492859105028496109477506125815909469950475464395285169861787374881111956908511909001456583173908574808907847229685252600722842365792575749703076035266204762341428284189710515915278300693809083944226015891588998591711794985453678816782575393374944363578699554871120526788927066607089803976993979884512383484412007558740421819780224941947746457680627256387200668482239694167954907243805320151586522713163939609119989582149414746307757003133077733673267934197147726130941701850105069304389470661583559739637699085153159494382500506018995726351581151789059474708196757530458413549251095586274355405315047842089596737017027533605624105592791568761455323605803014436880127377632423431157965053216775278848314029763219805406292249742566784305475461965329395751905848981685714211029532309263694109395606181424925775576438981849813553242625279024559318746184556974404555087441845426545570598761957067453149553866308977674424357301756478605955317092001624464250890270558185320829990932676285434716228944725169789290055972565280894835820932294085777321216538692384296491921985020697360089039523771027057439212725498963913306237082703132478155074988785441530560777425086771618512543761664577314823373592155910262686676675639850995004274642830361377623463093985918602058588995173197561246949555433572557230846035333718975959252838790285752387615076013325651130998280957809780293956952443150174284291706821816582755475768078078549413494021958268820764012746827150653590440247350311013754442880690470908960975548689767859295206090990109322551522761463168574945267725595862771322547353245477426112585249961418343035605282990931960601207607010693979297780785372337474899699360771976691208530268235970690487827766060205770354612908828718822983140411823536242650212052486530812116435851510839323334186407466781570224025524115790743772760194770299942265693913248456190258512683435965399203983221682949369874650252582994076580078913722812910752158671482617310502080545782433637562924858137118065385074749587472182554321754296785240444856020927667487237586683904813421028929052789048398483030454410862421542153833394106006989895323591263290505435439855928885489419466658542465646000327731711014100057725333505349141098315533248757628375727865660242484165393361473688316040229863086945506564717439878027352320099368596954384458516507875018860042848588509483099873171002429600447672368421454304434015156450152628293284320932349682758620479142949728001648787630991599637340225676402844306994077752013802008279001797245024638455426016461524887442480514496132707082377801422736357490447810654078855931163363966474585153325873414988832613582294337458399340615228595355002590279178317858891448266430334623293851354380837424619330090657137136269805900951236196576618586802214170475120047187620078284298383919187346954242761499870563703778155769082213376147884438205826149319004451825665543500923072753193319615063233567592975992166206478910360864532669114403841450858954528633911170439978173218430193656158704468733208760304333817235590635267121251814321095963880614461214515169644449535432916465381992393516912993213474315140886885298982517381909951834266277452215485809169828027869772792197582902176677721932684281099378899316606553484035670139619707606441814679535689571309786097777858765534685663684146069054368179207698321421211559121063408959760975348702857665458224599251213538757766190635326923966421905522245889464930969296905622333359980673965650201355862080911775761611641878496509558189756322251684148651387480466031230389745517115896488077458268028338532559744755391301354142383992412866314859073908735108138792601379651216454086150613618132836114153983867051624187415964239464984344850210760761206540119970334083211743007369609948174803184985957350414208914971644561702163795244588080030561073977443531229254772371028533221978141611558599692321063853317043226200283568701760257723087637653696717937629284685150596340138088215072806257486712877724264767275305096410810351373744342648986533033621825862961287361650591517638658437635811750454675641336489889369531573446265973762675127393548127464931951724180645271340165449751587902934436065548660111695374897860188142020940461213214037297359124083626610908497087779663416675657327966576514836463739084641923208767939139501218529151987070175923501897117505588793218479319733221897843651610687286271273856250843949228640529441062037258355294179473504658821824871340499976796005290265729312038448383030668633507298916894385540554608574452618784594578713056592316164114793678413975825179315969591995468470505805100999573252745312700238489130874868468174628273141361129900520201602201961551867188906545099415615186315377385250456694624651532426979435001165545946451610406443855382219741601528300450307868238447179787418186611317029120290238619308719008123788849859949146801888820965788914649705612137703506398598596332259689039385414454183676108091135741399571863023551222548194821156482441724887004722351431470673670364087324254111610973804028090659049178426930462829251520779313265432610316135767582884145784475591925939855092621810808981905187195720299894040247063394636048000020711316881915854699339053466953472915741383071102553349641827375955700799461501054810957101223391969704910563686695423860277014820070652608851009582394104189280521919171427081988763934106293087577096312646100687146137370441297343481061915064939114154005892596005578747285299081933378645675925044276203982055493126245839575024629220769481288329851602675845429765957716234632959312140540252738655422256844677534398920379578186705492492371738857280462804096240399026234014363248845543725418602325267809259956867084190066229559652239048931762263800236255793876861235549917555244448729517077471472896258335168834194900351942583797263436916701591641185569338586524604450965097353807791882141334902546759029205546288215366243068241310420559601473384298684322098028363537666398919944880678114213847289856019930687038784982417167703384028423707826182863558030704010871973150639952710959702128692864040962328341610040316594663693851996840470248912339976131441048878164283496233249419258868918093656277024423385413248785507081921333852436355964255070372478975406461284622786253381557052316362481537299957702599545542052591214867701617052480425273098668966569371921546698467788762401840750973332215491698669115552488209330770197459715999904594922721416024222070193822717454000954258355323783929618545652177915204508377314071061048215294413147439877615295669830961989905417540214619645157046329101690138863671578912112319538480580002896557718650104331449917452567902114791726261378212475167389597821768643695930597714657160107032204933033248679083021054462392448558121498500856875097418831412972599433881839755697809438594174360750566539724167747620081403052316437521282333773678732303108727967282051878100524675979549485613286387879948423719926005383582305213937575502069614317626143954397581629025862758923036667123131121815085608355507611104337200255394725635440266292786847381094288392296061678618880630027903189421890719441948821284699454211115206324362641899156436067086119433791227417348526455094740502678709351582663927780622082389391226847248504419428885872892978304665954892365639970806111512490735751842567777910986928783033449784227898163227801185325522667431440107575975420974016560066310860370896793123430633443760416719889458326561221328041916351738405061021312073734432508117931756654120867069056111572526388031363243129461137270834021123081733156750183629698956000356106115034890138364532502217988697330634061978230767215533696592763366975353258558745459519197571851469629485595260282507030583399478337816367281364847106635130883102314081303308553690113532823845997815063566236094184284243210832009514456655919377644650669673165231005815494601493036165403180820712613812639267822187498206607334891649520923424656132859922550251838838129133203318911606885366470546775895160075976443608611882715317927039228982250627932098338427961612020218010718932599896821878681354351549464931496813029321480878458073015582366373533659812824384008817591290371000990886152898002654455481160960419450289023364096367233468032902356291234981376646883802198314802850488774037385967384458997960624702438710777674487160784087306983228014634693464753277336199048918965412253033724328741014373564055130420712725172530451651926269716640652371136013002565199504669210143458685207198998958863882412630683312934570000853156818054081392594948022489791588476988045816777639365746053096466473470654443239106184115916129868976550626515532571366591908276394405643481713752738870102530831396403740736907970883887823087031624659588350937104898616493641197154471593068133916926649036067320318699706659728045516945457573421985463860569988606302188130214570136776606238535766020807406539322929692636485658242789083470284537686368746549219524829482533711822101546175111692953618652740540464176705754395452593337928048281840772230288349981121582686711702792509707458603874986909320590821183630222164606611614425174812239605576900814300813750988504100324710142235236787584101254516065179378449359636733307035788322690103689991651235954718254825763005957028832257401370039140097459228397309690086715359751466870703402053329186497630208733601610872034755114483411146494233943252787678306525902041812595757601567452802271415507779781222269265842639170343308883761810603517789404034355990464227496437712689636067590621036550698270063295982432347300739277282731492075719658008787550905828106823134700902870123877469898814589625414662088455550626806224562515060180765317993454279074438223783795379255667166314526848304294501243434419311870818261559962531022014588016963883344928967930145847619722665897456928745639609471526379901070356967832831559383259205544703523973953064973115919182784870596521990074231801532493591987216585150028841666020525401831745321627050681756871424718935765387414975932219920618149836225353913531217724760795549449456112558489707680230346071750777688418736095339600755142454969835589822564013068907972200458845513696072912728699092732799458154893571730623634250020963478714574955351643473076221685256910222195680169058828786416585923856382793498473283903139344223694812760399082694773962037189461740004368730709380395808452016586350782493743963295262688582574347862344870619787232456082709778088271438338103830177150729650692149950309459631036032993712708695225502183563652539381727970224080183524040650249767266812496387702018693842442424376254546875016902693596443259023171119139310703034715158947057883898894235306051063656678652387255255710348929168765177609807649562769419723115328111720585995496325126188301751092056500978155329408433221866008752192184742927648856497171757273727722113781708514646838170924621200435808258727004121661161129661829147725326554938023280069346710926689165793459206823473468933157267293444791047147537680698501086360788516758643069804028863859995830367699001259144697885414969048799809764015577846686589443526053811453307367378787636021462036288232564533781130196234590392882470664127158042997553552236976013540113586995186477377021267345576397644025913135090729520813911965636648888046218289503261325207781275019027397647136578191687822045469776255890128202776111214414395072399595282339827352271078573719568021813770153938787217824195929308581587052148840107649433593159104643021454630537256510452625319236186110723230402401595801451391745252805816200848458168636471108588001867838883796051918932378348975800444145540389643012906956850694313997930315580570701539211016845747178768867542963146024850203425914098855534561322104595436855036684968568146007772200003753906253033294270105520247619533313154946322756511584207721958718925703229343471467988768799083458417420955879438374810035211668857666169794733584567394529017669320633141737304055600391061552028472519148907764287379659243553385625100434767588018635080130692628882294474523066704589656009373401687845457453221216006191968968000138661022223381213293098087875893940516615298080918385213947971926579404734621111704642761845260557471653909624438287808954193310670586393829610964172466886701497924845192271626433691645748523579820975584860281697780321190981254972332289367142840963654317302012351038569049925247872870411502832935888099310841408308145377102218985029315336590070926914999780328444903729579609047548056072594427851009660337237392537037969680089742732051996488061825440825945718830643043011102719810479453250917666085525227116838016508810349104393770688127478946311130420276513733801994823926878871732891085828907685933690126360732726596719511149735629367831282077681830719227411550802004972856184077723107071644752381813230194346265536754312397268802080983505368771681400731635211668426982180624945614537348192098357985102498502578790992136269477387454086385745533998745756561323512776748501108189817649824625620839980809353290988590882352662651080914862278055436085888771226960575059300231907884576386278088074122769020723852381774370546531707965587169442785873795738224417786740505936436097637217590297973422218939333796076311799490008370000385852836177556853706892499667396994559627344969643797804453426733604940743634885934678873531457842206303892807962015935475743935912888956807861969039591433081329172706532231272092893778817582238547431740903139178331555245540982910579765045086474194281492616323343094957084751103896973879089923299872795678693789936079654894253058766545767923689452193725982104561319197763584463477363056653976859421981644978054846790005686917112581551492317689818803356379586844401770301240802542258936866033193215316208801028502243321273681212470689505461211622315351481066515659438466076464384781625783095591560190500314259301122464766947038755795243220399592663797108513891357789175441564677176756739673936688270431376454732684041676235925104006071682082766212191064150192628029477427682669384117357230758040287089575526927974275640452042456578996234087524723585482521922302246866899564582945332701646497161005424821429192949998362562382964503951392115876168574828498544313899524666044052433323284202289841301168671092885268856307040748534287706736112116378943354996778171387927057696742569264031987411426780514384548480602347451792363200867296914622399256666400431130775186696713423505804634938969791243647320047335455884030166619775326740443876196623101623439687967158984331809156371266049823469417946342147806543245711103919575220764442186285287332457419208689221417410529651975728998367695977491391412913201550009294367970561611129920349442614171624104968026178687106176663288381369951999971168946653085857909366475322191496170856651024434640092216860973335158958037977373009012006835420714485203057600697343403199226370115352824683917765255834012658613428251649183145519079428247993664252447766223165680219749441413334663151886488599790877593843613777639984008820152029750522825943628559625816750365685564868431097491173144106813931830451641096850010363989137822141020938225952307175962915206736250128129229962882637622211443854910926041055713089630944636049559475645453901662097577002000580112239180047657458536247791589962651477683737848061369841512760483161208345518177360398939711571420773951107033547458742958686969213124054820028228263404403628994855832660347449661899724846841926744134293621489615332211715659257054524909940612820317466930906106685152537591225739688767284919935296463904766184132089101432699061154462457142409036906283604686425544148527655167220633512797215317102091911226101458568186644898261355880144683503195937251363987172293129239848288101314725817172880479388983240919359040580104094537039045503524159890174844880727296420355715317998661471062037066172516174025794044185057684630801987086859743887455205197304181275497043618227791516522367186131074386621874895195105938388110394884864110063762336393605686698188694933650518983895211671791624746871116436541521144601075753665932777438743219054054359744060254979961592415649270353258659795792947847180882648344165544107798118468684933960301765444913182323002408888980636950717323766402977892087388654724736932723980885380763369952955058928335729054622384283033788145932043996803374449746016144550969560688875908943393627349640898072278061402944419604808686176257778007533260707222025517917754197081918541492573185155861156957499190375779649554853217913819837654935270456848804717439292241017874383467628417204205197945372454364218505169819995574093714845437278270231475506728199793955195104682713511152856593058441136712612264037072310143666743160308102250121193563377944428519120612372070898790661612855000005301437100841870305630046144180644063558842279311974875262034068633384746495607934643931034586774526287359990963336808111782901019556532471045418487611965349509975196596342149087822400157615131605413871021493474448586036183205184711227329263347633839967782540619972626548219541837050614765052614196690090151934073207274603605150395201087035239236768336389760121339330296975240403380607546520558233340772565432973959255984352777988864147280687090074109761628254550448649886312122279634314248742457076668775435661745773397154123574286635648428929925524310246566735574245169019552304950536964494574550068818292880517008206783065438024060594752973310004514983270817564719974495812110815142500092172329904661972482799239138139812983329184496523728533848093401037379982231081905502571938652155221736165445586930161804436444044858086086580191021141003805519546280406858274920691070957342998952665759850383623489697267073349242014050213819949369464179344536622693911190936633871581662216672626043430461240966822190724268620603287322001475409483782020909762735226665468414169925270547744489631211052003570655895804078416814762936123857788907456788128759857583535080452012838853353335420255973527761135465076177709243019633936763599160924098559682181558835865425109911419088302902354222347438819311017476461645997032694010241936681201405612829916871362815076851968836294713262310606148191540640964731375819847140146808003448375470586917953277300045842917016825627275055135315503984765060909774975661326941666117586223532735844009407025636542847559328485658253144515606788966079171756440294997584954162844797054601617160828813430046080771831350589772324844185149173372075096454263975307594126257587833052777803603630010104396481164049082330983152245068655101469622754237312245839495402417855851380528608380830226848731848890520259549710877563758131598962459881458850233869877500069669005979041731674326674324010678911519526867298824782187608012995202395250853243518577636672636412761714407844461051136099134179447319329806118656276644416961180582243021139329660273227425160367819283312045871579214008366634296220103623919971783781136824721512263172542048583817738761617045584614714395943940941003314264311416457809563947958942445486281782766441953823886756806459638161337714501998104843671801456299887879565180704824956612716557136004375591843874330723948990310602312481408962379617839741159602876407166326145109743408254402833339163541066890256312693625890075320888148593258259167285223601974180286008685556250619695701237557875937534935378193200028024501413630279396464092412678357372026904285102039310246802456883685550909742383495529757628666851448521981721553671609625084253744178618512970802698554896418073808857094465624034339814981512245393707810661970264426414932114517549172861534994589857634979816161503846084005689969343838029002013924263858139927093847690256273980025345374977081346624213206701283337856787801726295904559824241774424968796549640113679404071556277832126005587047935742754610097377960472409554859173155594147834770872218128997424842132503644321338750559034162852802379808911694104562687727729641775827003301191494788078746952550116673595993458201568898271768915115431326237229908049320383192042548418597659764989913251472153772664535338259052140579146287459243999274762610896825382311848941168248679071734201866843389261725923077527242782921688841647515955202412954939894276092981906475595955959441795627379771621796038106104794637804216975346677661136424750939008049691518400376317122167613281925407639514382222922870402003862821828548206572468797945064983747202159768170700017311028830835776595080026149945193669643053636296033767885155822576013390644329325383362404826030974268129661624006868663802104041953126118950829814868144086206465750028862538407712761449234794996928401013217954346491383871803870869393741288851197624043295121639587701937553030226796803026821896250773728705774997538160996378318406411654190613844058301542973215774417300785939560954323692450311114887812022986263679312384197321659863999020509206493591536827708514885348901147134385475802129313549663189141377695647083201219169642892546702160403755986486512688304533766635777895245637997253592112147713921997035521072250412203706579539205946056571445632588477721226025762074253182091605236044189534050306134417177186245974957424904346429308478632357448025644278762897099523390385748712470293920175414821955734558981703197827438990757768426291426725918775929437326168973311782589243813491183229377539398474250508499247643117981033079659144845443385340662596272545896575815386247181578057573443442769138644627591476932455419735118807204305016162076460161579190784531189254272369768740620501436384589665113661435400868745155535292186676864612068519296458395198705980723248542285384894910200383656875220944907208559990827219277056201639128471877718629149270502802453817726134764149376543768714440759901848891739496417853841308895405061427901707679563094325580024558597140519558397531819225911151667930206840617794398785768222701093342080605607769506688869522867100622069351537374844820259984718399738107918213179725807009304102484168321881551381459602952802394536528818215642799592225980741793312138624268884770084619709430355344201739142312304343279186314590855006393764253029874257595492472166949870324744230002349221295286335442941208034941427554163961149165416695268114088708807857038899720059556821950548743739929252142093536543772903013462119596843852050940880887632807285416092479476004224127508315068302726385628511700016772650671206969592803065153289291015152845747851670122104447553958495346093489484348011282978702418094122138254134881087546515924046880732795057630226022365022058568136136716673495131381785580389151483190014543389078255927545005560206251051878759521864874431364762080575513707287940941832042530706260697440817183123242526719022435812924251071432527190441149335283809111859474233897124328640205691134459224489075187917438626190054017627103734256684373284672687709027627806262908236741287231518869569578184423865206144025809508107653090812153498313560892249163763179477144077761436610679109300506726442496440716429438407838074857273057785688361474860765541892209653928281118495866575601774941442507174804716387171185018954144497903416728269648211820782109051109004637368256398717308992827137464396330508192708449117282693374358132938767740470313123881595114190862428776709231010694423754439543902486594384983690964869183280516296191283365430754817473906431531826322874192781665743119713589966231562097170210616518499064175354200183694124869027674186567327984071387090577969353590906142415932201045755448564830589556496376896702777307714281301057480658458922066462759647071183190812178118005253310148551043231912441658722354929805227632024829232842073398585921743508038057894182486330582172519734074518318657736307256845079708175912449639770764286016024204004052126628868233763721806926303122303976684804897609324702626143357254251579312376548717493966709647726459189934069753668575171666730112070726521748665156292250550586188085683498856613600441475347533531507920265056412147921314260735141021897150385281888156901390902512598870137598786453482828959238482148109302334670844660270844773789397653106307751578861543562423762841242731085526742059658776977583150171757872119908539427277172655089452537652592430559114816088434351211397940566010673980729675491807302828215664275569668226226026102828786226521761987231431027614468463244540668996389870325659695054229002075625587965077359447743416394024176369291779758919914827964069672734687668666672276688673982521241761495279642221347624051037968778071047579306297825076733217612999019051114862871416066411560502202158459174638182480488327720428508407827110234250203252677804173673567315636191243669527035045445133873540250529847206900298234100028222048866217971408221669969731892534676500437719813180846326668478200968778675389342295560904059725111137001190998349801841432958866311122708525155016073654385762772749847169386658947555175026525155961655597118032905313292931117147526533068795085562973859845297459161628667012494734150186032238098418710723663566279089354984842803082433195781428023692502218345240886636694837625066659643479881251860199703869494701967115119904538119459986454696838679990824958046087278136668880584215178194147393679389082939478064066740149073804217426301551780907809683671443599882237259623215055024844210332211221699444329668064817650370504932298647777154983127612502005789549300194493997367378429523257396079692761831932897446658819803936114006683241025884177950858993934230811359155057264121051050335397744222520614045775449419097981090251086168952643669744783678748338748845756317339146442640017826187609564689529553011883163418164502878732889223610904919076408327114151551760162445173888269075851325877572917465383204941660657798719728310289362757693466534404718889916605024400323965795877375357851702066622572882193225884232382949505668448758293922786983068258498691310309013573814597161011897627128498962259494234830847061493005277134670957631068366412861586755500274939226384737678663452953497117378614728039020358222483794551532502807091421186247227501069964784377113221349693429435640728481619570790023103510119617460744789093013103084716609050190610923865949606459863187886895845669741168186651939866498294966240172079780953662443428875022792839773596443071413710327531074279255659838388375457997109289494093789530913586485963759804212178475953296438997203178261497208273021540865004624755172698340829951974132355873481931264975893866764126385049372798234624849117991304713836755410217127867080116696627182698304617670901560664553925988623581481930515771232173777580788085875477675649196644369480804012361014771938194744616047337785469528333332508090811997698829950915544861998020934982860966032063985899444962434677733063494457123534877267425057609485911871283889347858006890728769221008493839997722998119145531601426144638087074350501328839246489018808002856305750403225642746736055026348056123560190269020037963984919001626208518977214673631154366616433383640586629868203494562253679114441914115332610071433297095946051201378957325785616091140023769630933559415760105422688458942991625638184006839474895981013231867612467812081421255070313977225011072537960602787681214210990578430985755971159549288152534188168471078704669987991487985447708543018588784187322964518307252412195811128588726219071195838925387777479596361125721883970133963768010410807562288223467755795721877619616890923964900099460434061482093614709153958175872305581689722662737033566460585977230773514277973471961335087911138740282764165817133420872576071875581128919153836095391469592529418068988804986355515557221814771249869611949899598966294883905019558869719275508305835272815660371870481766505190386410299078541109093984528499149523607836412006270639488265441998044985750884674917098277352344029266939247057423058654378910955459127088372195339300489308523020233126978597606034171873258416159266136839979253640156710279730768348526609925412143002774135830095674209739543194885398449440098276031434893839968965012270372134173191064851304380142079262671535123614088112209734128748687783106311753145939433465278547180658590875637509897468868072970171610076893831373327588179573641185241358246587235939520633842400397373655059762464140296588572006802819855097796999943610055948111527763720901354449987871785082963358685864291002554467816505130319417397704994435043136680942663812730750230604237499565006179174560874097162814030418220987952359716537702894149426369101698879017430569814843435520933155157403656170894391888588817173469016109501570543236708969593566416504071474741704743826771144877483054595964483835031143245209482334818860981232587211337294746654037201850035758621675912741786204049932261016801271763116763699804641061729259873304514394706738545693807730673638590522982917154572679259198046565807689295871305300757842859659665247997154047094778893891748208946637663748103761201061722786881249922688704444980938119893947428966265832106584655624336420830515849237768002120084583584550073130054246730035660867495433966610904421861717264492492676289536185145184295665672942301276468785855859688714921661108565402102020294661356258607182576697054023163650788979185404773832993059565858773219928288522747567568690718175517146349396205448220336557471071879277276030585028005441146148426478358008849736292613672665341472156324850077966978037327983779747621358060482318941138505576745204687902189782957835512468840206368540768352736410230208963722614436938032754581272002288846000368832410520579157247824836073731290254225512663677341131190433057713235533192750937991678175602542739524593928663593079035977638062667549323855034088670046751304565876459197837133779294636963544517137661414057297174309154595649102775355636135879971539292150372365244704964889479195776074025766733049649820514929303078858672579301486050227566155635678168620421153543399316143535268939427128187532215358704356378264327867039618958604154876886517809483680703345616757063423068402537105799187159517593625364468541436270944582678069744699752209129343954482574291799567403813502240939978904274728864137351738920570337443325438519883567849599355878333383525744744942168111982401355844452704195656267298186211356888788627155615392613350167763720083292583039295552159155958902809607304009196985148967030150359363307652404013450163537599887311555232919278034164931412835387828238764176328111386908395523828725834627661668273469983999513258826451106300705155827974103611565568298934083518807722053476295832638883764526571291641068496192538467018689627482665739249647507839073218685722371412665728406593632398733323683089554310055114625306274801577707956394747326536315782997108462448556618102762405536160812646043351683155346152012525142475175395310931828589745274094292540061866378571068442689847557597406748930664917264275992618864968913736384183286952536176267505917818229974316600610391618568336022156043322160597491907251983541104029340019579503924001285756064302443142742433029914770423466108735341896425256588226707181159720508541234391095288184313634489337917648116773007374847114896919837388604098727225795164466157162536894582797396789166941134655120797529702681654522205427277643625563328171242459013267789682070648567399682018812687918479711274062783584429545671929857835960210648547234852440278523490958161802598462082839963035678900000408236492552595847167556877371306803519534386944163189618310728899778627939716476343445516386130480393322145545677063530080953616889260959655713741114248298338838791692517073393563400806657860809977379746800133702704241143279948002454357521614343978141356320076558547823541241441457217501005251327447919660878102143299357686518129845675581506765819349182751526360339286660128032377992479410932029622495913556188660182981827776193481617877150972861643918365272278184180313189886844909961729596918121286068604262064564142331999917969609894161379386384813855203554228999982258756513742422141025516585433939079162844506876269922269730446411824427846151098420190756900036476847450989718559185027996806495865992724532667605572853667213901061764667756242172596779864845992382584763882775536736277270638507841333474777115343528555378094971668908008078323021841632546817109056689603000097751352679894402475485654458850686243151208693132707467077178207254047960850378733819568350364365935913812621697137269810759328521251639072453397024745238068278232660195845502641927235639946471044871914286423305378303484462937610244532406348008511513490846474379933299309738587586400098787066555962082976092779482174158177907411928244825201397213641387146149139900385792673518551243461837825229153880776684682025496686288731589320575438338721568951699257555001585506969860233534881757871174335535290183500411643852188715086698220597009688183209729341438720711392340903362971963894029456426466218118232998022314701516685975650292514289422457371407045704852419250245845261739169057458137517909881896919718025554631870576687164588889183805034581698079316748731847793802694385340139756461638597989934481592017044429383954746700419576991853207016079660983432172680346944770478600350169052411027444859549114364814704231511159439164073613248221861736777908347220263728403728156200646905425944857047043570643304696898234263942102775829460557479635326020549743460701976642310609097789958803391224571148734208772363224425850883685705173067919768023913735840927144889920983663430527660268065181875052262354351880820165078282541050167727325403519710011041418892648973811246280943237809863986300842021172675618119794945076825567751420686079730009290138072181000302442673391538380776459777394228430036631927138430548412698915361202514749995081196642103451223372662158852115820095721845306284608072479746546327868203920394146209307841194008808021808477934832131455603852924035685183020227051044387677419731408249621055461320821706302759258692966448297082598996177576658972880205639019677146383273087939695183398992942377965413603822810936270136804711263614706948730631908101833845082719763540932720094441464161632096823421060528538766702162798681040330138194359046334332075339571833676524784008183159720639421755050225475991650833950063006314555239835703515046797851121069737474426572250363601307651709076652726239123433690704356086515712452395848297633087064089086487418436869315189183437339370795806186191630913487393910450157450125528824621258857547956265445168226762608529402269237392431173324511033674940211229610950250780766980436550101406201222863475550160039388777289564046145940838461765933110065659002354817312214538877547718300635332335376553198289009273139829178095822086144934773810465585260945826338388657507019179664090452898629942416780162090843876902207219088320032822541314307356631554381869179987562587551694118360583054743574906643950618957493388891106138159244239833900573474137039053969614562467127812628194898028173551677313772868898799873395267655990689196518289142652817895044157470982177004433873455440394706088621954357881327920902168606369512352552388705301934423901525610567444691450349224015480250556827161302497153789779758979081297687622020031850419733432365204775917831898937953402178534536026009863898429507822889212518115512351783978830747782634221293256338972115400738710131111222973358057375732809923059579115261795033867338865762866090825948395100858173378676162579769372965275754782085695978070474942464161450706179445261775819394742209716033795945067588756001242822069672465645432925475843531559782839613972975198246744698843603182239623976302747050520809725689912821495198724459480341393576785263312187820426181527550897334738207812929978133837011592585482621154158975863164328129476060358772150402726532818152942714116174966818470312837206599361714850623292087705516639316704312007689927138975890657328955757811150493512328325827125284027522987636078560677774893730472241119488482145948643179452311279489049820015434047137272504743910990033259468902978626719618474099163191128388655288809411540311448696843048462715649239680730939652058796759000736469287495821567349407078032350695675032166897965384410127675638961752979959572474782553039588062911821239982152623743484916235205623235487002949264732334376899897159736745365384206689996736985192553323824963571643932822870711980300111376096344554527413047852360173732680387754156058585914166626867303125007508723482101457430859646720280032608199041160895743833659173657924419276311831123312895958645293483778136290164802378493938662104581470487531062883927014089724442886460085034881579091988859115483480947938272476911207627033769564466904743194374719126290709685234584693396315420180014213284804552342501612163397954577786099427505559535535551610506411491943133444701583020329106155284599588618679630529092288733509482820172272598631293783690131145345842427145990751486567457949571193728187751281442906421575273566583791474105682699974274574446429542340177286400878454317190015684825597815536225892330724558116941117623404989027119843065200626118017649423462759937005121113650768071537231829337504747209922750280245469293061751159146016798482961329935989800182983677790527552528613753578102126448001201443414840691080414581554014730124263436337569247752432498489261704795940622517760936734182077401825494675539870452352434846205110053201452510282522493379757359431853611992488209748461343008083701806549095103654845327229650778066423947172411729473962324037170494782068079566212117833666540324096374081854562080210237535653741106196119878644985460367270505669261458349026399548098175327628570661492667268803041131977283818077605990893659657806283337018637987746167373081556891147626086304801604351249541225537997387118385524771582679072164138422559756481295650548708142015600083279567590022544559495899396048412835435530192272583969549166270153209011930118633892204173650516094849393312215701679038938933964090998107022655194663700809676876967250752007007252114278436966520024089527612943205957957161506548713210947004694927749464076473187443918072538912040772072288204625674289941587295260761567223264666134151012136758521412810445272873831488542002488006900023424834449626310111518227557844618795315964095079528160105101299181395501894306268248536293295010279064256485376520064232795658168425740725154183214785418108468356062818288926781156944628263497872003576925913961360252339688365256400506440361413881030892219155914562134350544220577837974371182350245414972055433574878053287478834447187890434714175635300776129042239448106476389981113655399460740884506818399195543192021011276405450546100206459219425891869956164301863908807960565430273850053164124219928419614298731459300471206533447095427621806530215891635404163135748694798516685943688872171781859734118046495227550568758857928688060320910073478872360898563614487285196160121680352008340216471067333062045144642437188435140668999933766873640088803878609933694506823280080674168103477266699711955156578365681572939168411084178544039911586661816626874935011176336632425749871627958271351251016892811494168076871051995503122398612947469950668417395791611117520097209400066394447041848615981599205978643389287775076015077052411008654167804129223226163408642476581184006129272329300449357379675795973099461331491517854554420859430743612713614156146887002946464701689070176938757000134089920741954669696269315605446994381828197185564267589546702092585011867575936633593763092854466510209601487243458777561409734687145727912373278094755793649628706648681048086232747818989056495455029364006904666036292576524039717052072002048220732581590100493737083011618696355694993389045260040685858217916908556761629375556531039396056330488190255061929889603857853895368024021451382859691362030565294631443982675678024859376681588008761636221868267251121388099423411993741195378899817208299602180151631798175006028111458443124713413870409076064103145468483704378164695142941830889121707637997255049273912210077715814043811661365555425347074578676576518781142180097299661226964565217635237560066747257528233836354116217747310212016267512776636970360879745927685608468207092261440201509284380666712466479851130010893094538798070115270305769068817453764183785966520181973576311799114965192925479491451176275379469836865525958428451729954114144329017899502305778800200880837727408450170481079303305439171191472218204760905567087435355216067049871409562515790075609525412384409889555105923462149361258462593951992974688818144449082262038371360197443502969077254951720006637767615969079599065107812186792999759205523150093135080359632924127073802989194348603759417902412819200509127076769207757145591489979732459532817074934943311567779580298403764711762157162937265266893550137897561206450151058746270948981463589243047839316953228903737594185736637755468317261321714958665667375235533798591267205513453867680076415921469360738192774317623120777265704940760639101721543134145939013276403396499465020641712972348965021808251443253103934920995136930683680272705974278550370501296375197935378883120460866444698888341783916929866371760277510769716637615914930365828571659817894439041459011700707942954803247033681815019216536653976498115755688698177071804582999164137562805375137219465077746733071072020353181716502229845874925008995858280786638967362273965165045788759676545694946198013140576917486415631764259403981611029558215941586242397358483839041287881756232520465910400039703300927045001902183654158907258710728209545477050502945478023318431209874789062788894890920538599451565532481186499614781370244324283149712003948054184073355275723102804753231494933324336293702447406930363161999277302298136360062966487623703223666121821168322201972871436517550584763410318509385950271371193801148659838674032784106069162472346759298409774323430904608717178959530168328988441442329922938995127789515631513701741846110975994540917433819061915048892151058247675325889904930193359387461089323476372996282930258292113886257596904794766000129149598809787692515976362202234539468364161618831268309201913268229710847989564308875208417650660067084111699321753753698546626260714676964447724799624332907823349188859897695554945611855284886526271644771217963397832057670750278123898635002202674790624990295724461525457521288486567894600777562016521873342468181738018579311308342135046845504800004119284795500890996291392148568975342181710283316336424378722499812601598047162371591179904089141224368248595664668208599197897694296657556945829223824660974039150785446029642138637911244732047154797982413949924216465874357997373352265802320719228943237134156436280785161966213424698912445229639579431277699439795440298483709618502801824222355473302348181458239000443216214875056603451040930733091559824718487402075938494184246004544099013130389131841606331854361728002746696488228246658288728429285464614825061331413500798368025942410469026829083633826330988018013310901754895455864837408153746557651059516009814924041250263520049092992772356860584902881514375980170034439451268006817144725356625653263909611919790558400296787120531884219110081611688011383663685998998404135139563933579540393391074786731103744611945713086807176522582985099249519469650955077900512109699040518424953288373732893816671352169545785214869793058325665954332003516057743256952066859177369588697404901896855837677748577549956542730828386411324319218767761781009130023946124268469975509876664999059463669749721715959527856189979626723405839210847127669700489152577874637960692966207974846762810017460520210463204959852088904587264294470671584188417812785590017296729744433284852270290849147311893238124136280147384530534602995426962978253016736758072764316283479560289587511500131663010387697684778939917692731998439312891851920645717461251296502926067927602038732701374076076008086455346043896992426540640190593986774176963950375372318831451161592771529713233796751392769780443463738521927755654348460956499226913717213276919599949479405305427409776224896929216838078217325351697885307197130286909545979697495838405269330751367497395435810184276603096519675359781534759430818127398698054409732205414855392336021680063511758666407972084927339574287353599004307755849852390493836341573690356620328046785375970257619141150777437385319398105348382276264162325218071656407751833644667096455990873066620625414484605237846772850741738572250851047624933860221244158965737376346803784202029312892461845643982213648638985528581997486768221408518434457931906706421617305840148483488309278307313427568554332182758304104356675203154575200402680383589203009521735366544614738434888095281374472843072827122398330750825909270922939833859526119799788200478768452595746376473349827622193586090898222964969332960100177294352175667005186544578883748263178491663989558894246057246763018613250858768473950291597689308544796775801311168216536238444269971934781661382217392104098283613452153866021060993022078332516644541754560481506355837931381096755625778773899336667201420921485263475989949596764468077602156646036911812886048587625291014972046229500186735878281412595436290656893687985895680122344889399246953514947902022181939356941142849954515662694930749039512705186909046433012891784735819452448555220752886576501850902978693556424632528333576926087851160463815890950061294765092919836394934549734149050643157742344985594532285883845602296164939058827383240740020348851154478434732702778268529906375024664709535033946675090504155880134270128586124868863394051293471004557849058862010101106416156084287343177372757660265950302673202591430211272431318013094903014445111413641004360636112061328262759058576424232308976482935124942084936116989819867583245290501406070271071235000874719866366438030478571721455105323400492816403907335578303223455348747526852344852542972504156898179036505459582454141089903963443856905887565017696848923511299120230618292900085200577831604138415392879513014464999222624252266318439434173532460860825492869566140089581174222818717618388795391981416717177517778459011876483722964161859424944421851243511797935706961765851229109770019977987506538261241149179177021997489520502611500280346452059943489531873478934983655195805477636080375549725812724875814569063482252315664256544687900875537897950144644422130536796809524979703159438856812375575798131619535597348989550798752622505370747127380873549683599692363544355694480343211381348299773266650081775251959867101878192033398437138608079467747560155630131232812583119874181620810014749869673063364638714115169787864442419368097901592482651793979737864128644524926451911930029103942630680961803538264025930297600365093917084451699886038289786168777388446462487132862822072127707378094735272129635334859743928446670865199548260801469150136036009139479178759307502168074298611777116083381073243437946007903813847698715828390564789666126473798282426834414192900529373500930729082284616582030083434659609483517035333152509959799044543516427356723363268460031759928900117118004012671126277691614415210598734961829973450881119270805335235997397538790845011181139192599043497753534754863126594064260051577438651038335382754673329515999377257867561490600150768723050738004110284672196951229250713683541107136772129365023297011863882660732790769511459911304632128356406928377282633106526266073714077424800295392734770191146557874241393176959532173286561419747283671108389961414327523244051319482054293198293485156676791929872633300881028711881924214423982793354002021254324476519082208290745570450460654480003259668676762597165862561998149489853249996729057405682806674549076015065557033865210041884250381975950785022659467863071670670190121367920514350453492157319654568127983409022970027550029614761464151154466784132697148616602934316862373213197165531156515657726889406417094639545335049777843935464552091913759805052380904126566194380497511181549813830720456487720231800598662350540436309323958960406084630183271765063504339835982386388307447785376303864282358432150968044506705877308755391057919024446534107698801935630703248635758891293605274508708455380407325205099852813961391577004800668512736044617061250849319356176026677683161416945333498214070569835861398989377113153142645167380907507952255578261941536629812903873098581942856140390706216877054478399839324257700094049996511128140097601342553317948702269127316965791533797130329716237188645857986331247201300278673628795153255369363961704421833043655555773971660527914245305695506165725984386014427019010840641437986778835007235852798928549954752849564387453233924791415753105194513786588326840056946887965507990526032344701125385420854417675087465213743880032298530432676288398494307575986012188245111562459751582538177027652573354895861562361927103416825784553969672125964528968127680489388420222695404538209011938550995386300304977303319192067823468245971651206629843077529496208117954871939469792862026540605156459587339279931621134945193357421745265899099138599310171373061545061515300111814499062662523160246906983328433541528473943989192956271542592327556640562799654979432158087448853099985394012904448312130431939453890079248382203893529256352228979511914028748253270544062687680282719261686059394294342054722479892370634362934331482725384901236040594498853313573417398478371736567057593262604266877903365765608121096107385640265429055171611623090638615646736745086617388475212500136681756558943010837463678030283683700106464487831676661375757237832235568622735660446394649767311896642132314318768372469421564032325290806243723490968140885872340080402141940233238293274888384620393979375911378606511449105708495940595451591976537136431100909238325748235454198667964715506404761230350825612830829385884755862302893587673853232940754519690109958780408894252426408787273237367636862989863102646481460922967292077671461562977877223967398312887839188905482209116502449829520722459733095670445418983572710543911227792700222595965371987820291373118155570026313301913962221077383385688411697260306734054504883805113652905343863841049218347271104743854079771568879552381354399597255923218456416106719364922627296884645748482949018562583509850724640889245162114803781528985012997727522047430726224946474769962861436673204554456815934667649968641036337171699903910377613410885502140881449164195654903681956843326329590414637280320708037694894582827310123629107440585073143192386033598870842571410719547598592401982968785240330226248034271519326813741643997589140159481450281211483782723823302711635306780331465989541156783649285641153678471474008558076615080953956913230945356939287992084942333427661663459549128380415147534856206973335463196587598404380358775363283104125139074996814653759362495686237166540606172077962259725065765948177620386379213735572388894008607110413727139426841752806822516803259331112481314554460880284521630056752167674087431200934198914309043596196861975054380217557052719989075640314987365288867529556584900110627403783983448422230261590725242393252263888092450097611364163580228365790047075393110284298120077756276434939765537723512069607720097328656251735007194284770391873760587135383175697643233013567295927403770614113913078430897906635685682866037735478428625009961870806539012435265475642927006706824618022585761610043619944696489909872532527910394974868493158307785719841003960831911111300797291954481154717538557397318987583415627949743635578931027519049266081145553130531600283051751207349085156376352808604431472061262923128750026790526325274653025357408508274546389519149102950111154827153123309673875923271658199135681430246843642024792840901670260644980145597153972648540861807338224726317717833689893776751984858964684806746877617435759213109423893695147497600874016375090998460177850552825412109166877343338980376765803357439412239999698152277836283156173052989480811178995127567451585629807146694781988271131981303392082031110157265424988361963081276877938769049107588058681988419440853202131991846812237029902570321694313895576711936280128921502171073815295800937109865787362227443819403022900691662266018350125151539250151783042865298152132362198103958685315200012460678960480808776558265768018398326419566957752132121130512291714278709302637957767007338473429431213378609029892736902153301081289064461891903351953085748596871604864478528071978667262781708405175891576788843693310932409492335336171754969767483306713606054131032024920432323005801520013689239916722053026120532892204757298622701282515098468544786508924036630289895125682702556127524845138850139932167268194564893592559905877202873513519552488625181292906814790148217866672504360218163475668677470257281051138832454365827251812013277957329067537552977744540115883183821078299636901878678420660582326333862238128590193965789945283049002334201337138925324725084421353513313664310998802144606993998154707246049851390968016443676302989169442007264889415349768279957236205284399081959570045929194879022065606186341317717835591458143444359422914748489844208587623627183887254607986883623030799661399996174600963111292676190225923807790434808372579599355365140393458828678429497694318607441350989386332711020157359226476266259219955429290971596877623590470909994248904607634927373742240882459984847113605660583598876729067546690034531871534116644803379137971602151145100628400194478591823431179664920697908161060118203421263874322626311114600023342263640528489651563694889503411976327038698854221927448595834319019556729922978083860666057538122339386442794305635358250523279454825347656572411150310233521859742920301770937216624980485998181757961516825948389918184506629215956556702445212099866056507090480760091751096087735393721160991606405647949914756841028672083570993170983033075216180982934506746092215365314442190210029645751456806055422915606253253234941141328355480006527150662874442639571678940059188781547689380871050209556645662619537459854871076577342923449164741027489712422889367379110231840260146366505507975621760082202119679631252745864744400349868654265136603011540490380566960624421746389852621328622682240359446349789686373188872734132388758605484948326092988143846205904920403401071108593333855378309714428770658581910881470884605626601482763005971752967589122976910001149310729846015339764597473435456031518877998057738307521047189064547953316307329503915515049721670095157855586787152195051961308450019007524982840544020558239287884150221524399329015580401965064904428404042063931330660493515349035363544782639612108010628199167627130970352495656305778802315074747532751087173182872753041196963924944218807773399171492013756907492398668737786441092834457147656344317612349769710323862613149556642172284480968342795276416128149327203959941041244406935259122224135018963180203008608151158225470801673085783705596419136416635068644861405042971577574401962610906520697997428753676408242875428712026593847618206474299801176291466086858694245774601777545006658963439531181811871625241554191123955657010307689409737858241304525849698274876151572661384594491346523432949241196131833480743939237908706604614413506992099200197950684363436798663654306258394401470848859848368206117769318064534596813590629794000436341478630573294837214672954882428459145952996856687477572021135280119326293193744917755070718112568008021560952881374347311305948437175579248276682670021448353707720141180675419895974042813763263213808687973167029709599048009759752545474771746826353855771678783775677289904329887938501429108161069563807810599836823152741435163793475258301590377950581358696100531967386647258451556337076624959525537554805050215485473151381531928893663859112514853753926051557375005129309170880163464323532379105814071702832340122304208329676348498954995774144606089518201805724439731750740418923558749536313821677097797204690379160248966722664810225417441193080816987053179103100351182326461612917300947363103220536262682097024344815521991725119312821647255933694528441678141961745463263480610288546965143699524900215236299033782802129643084487603302419685237597806907720365011311335530489439906304259455019779848783703933097517660967475317305721981732816701981249217183901882619240990217127095550891299761212748791283165744242857463178491282944050372965260092652005939172409467901553699333621380807066715337808720051295486146269816582292591180231028940483221925551383514434440119512133011961059996307791601096863094881203115253444821776227921649480647958098163755747675639170468271394678822506719463841721370063963212504047317712512817350096551140926642830010045961258194300516323033337697213283771554529736227760967107708061955605051898749259241164834662753111180956023804638837637326157855592273832421242742571368306256405148695382128987795203808654680547341905207499457593140402458495407333809053410288441401372336092886358551210484031022045160961883333155343528950614991780912283160168432859772702812179960802287900516174689238729804434751128805968739064452680694826854256366410834808931036877804552468405767145130844509229682465744499411386444510915727961265340791534715810542741093776358262317101038850633260517478865366075705861942925792054701903402223560026931932891018080940223349266063579714747787069311378843686331122068181874182985454618702199615375992077616988938738234500830149012976422444569201100626601747336309704340635993836690241376897187067875988490704598940732613617041139417012116441266705477247087218890506553151183310997913359543624239025109793584360204304501522795454222087804967375772517284665749362888885862148991396540148990028320094750742232459834758226542102595498853591560438141181364326042833467902179686831456262133517421170521588841627819977683347688052818721243074802965448804436521983476245810564553597973753584518186166059828632938128389169726994508388507124652352238866982847392479899041767457806928989997739058829774364712918337589443324308218439109589951400813646716773373173855797860813976035690472931005241547593466345721001508256846197119368650691017597067568360606693780521432629372495223240506795851107882748563137384925148427289498577524034869135117691314821789471484381615432083639842370581731612735364295789424702123031874762348843139859222289068619854263495633992870531471141399278501021187879588664242999232643695580865587616032400601790819827314075565546961068561189923638129859326265702465303512830176134513103111397288212780264003561063170111896846255160386318186695485633999625063053998202041574655911508499372392707771954361433941331244381640470579707598128762606132120751843487626823533034022622183246853835429443560483067635605663588651279640324487841443381497081511604530444829402699586453633680867819167344993295458275177857517269924233971421031430939900778554567557026558956922151392228348824220981703892112105781237533001916045380695190224479121444415468026165182818155945169359252844299823262740529154188623492590259104958862661149728475315311604589372635366110036163060277841009039003696107427092813879939903472637142693997638370050167192465728097744671203618695743432080671990512852692963169342876354931707612608072252987229194112925768139087946098263821739305119630236175816429312498531731077576702058319732308134939281796317534663099787085383257009195289499236645051385940191549111602955758406962082935895241723783496684822466667118011798026893154964692066024935948911348357045021505889595744005140954620622420358688021206645286531647186229201330225594832190324649836605551074488454952812922661703390272604125897661173162292630208772683915160111910154810523879699738911398017991301008666703335460365198272914437156700742644026725210578989966168796018281383977208807247542803155812603260187693033869129250269713373098156434250140671336047380283296160524617117593212402804040911977055285900613562983358471601849206845305566062847005098364147431101720941617183054600180697881912367653732903795526197212154145168395541246659411106227872984237387363617689916478043218020866730378920329108597027528681682785114261485681009186879306943839399112690787691607823452397455857759587730907441917360294482830952604948386571883137472797993559556903252325643729891264842963542988368626175444675704931153462233968962393656581507954754908041230345120538708300832818514184776796774645837305425573786613648152145616984183648831405373695349751753966846933232863895884576371906963185174760691857275626066833544966124150862243085496759329681140880059805618295308612903247369155347146687016806610819672883717176499803360767488268196959410370446700459652024357739271829993013770922420667767702209649568822640493073195507674519580861730142833265763832956423672744288694529328610884118091916482319307918448901414608734165621671955593747389362072427173130458782804274380433599907564109218111021729874625103648969110612664631069094737822061280834695748626032555736453919053500610896325050569641214359937279099109839153944905907688506437494027364067674096950687430481875062199018238059346110192579503850958123786536730853096314738147808203853779029561730414482308184110210855311440903089393320494640254182835976761393458535290227652814014933840162505140351724848323699576371443193195792004865484364669366838316864741622753799172901934537290339002590267578710017178385406839276433564886759891966552571219326480949950002712241998911457172750162580013486351951541778263349091198269136599509223399722951372413023732557662955784863814956505920834600734960175519946834293620086153728579346171818288533190760646536307282968466106797312779494561086950017677066885789496509486483569666157317231873811372756366551216997410140572709196433872979407606787064153750531097137128409957223367853553265963897915489319247692251885421236383433402094551315551344287662177638081348601832368762912105750425263452697137931587564132342909956800561919169538374636665210812283376374667423263700073924232239324953348063315214339282804992854679781805613978394157572152383318952892165142792544563007506402144944543272596591093543164043705188166397590708568616373076913298181925401199482776885083832742224454601753701668106736933861317530607371948926954848567058601311701481250908951733270312999853169900091057170559898235141684468939509606498916435294602428428617194738756922699762924535386978909196822176219605759155354637768375207752709170133671946051384578721123468534134239462535162395242789546373773093667460200021128076916967939993200995010508298934038414647713805790024852044860198846747211800820524840732819407987216127679940464559349743791825045554389220156861763568232527004233125230438136110591328489780493207441597282078782649618704828884923399636178647894795960163117891680963774156978447077786549467671843794018954388576442100067404114899202005119736128690512717111772066647018041656175514605445121735310500757370481702733962398366137348381004434449915169041909088064644198778430474782375337899286809030198458922416504937844867967298728038191173361229464579101569634279502325080741967034063996756236147563030917389595368763826870743314168953340221391967396724184729712739342531952828816925188864201901950444573398919301389544489140473516557985756280641735097232956570931154280915678000922540456676054543816196665878560812474339816600096503590124955391994554252293936850168605911748810576788622470385318880670318556575837486338432812233653138139303328788605241347509128021421507022798475249414599254300268953451235872213023601620337745159444155984617186443209568706502783272257592791392504093054550224613046271115495964913259536203404073255248667256522516337324213640647226036139732525648936586714368145271906232031065329714615659681297328679879172156813980413880004119618024103197961385888348133259278765145339200939061304082299678507315073365911971102599831552818830116180039389438471556701035255888104589806941656971709988775126722511448088659504140141862808352520402742891145833934020490227392112864583004523098742367115186691361330568580065827983427861274496711860342951265360570963736481003994153570054352683798357968498817723019617633407714854178086294988019427339741628923509600388467780115643888274969162902577353995720773270130078466606380340839145126676384387916073080533273576947550200946481027946692912451187536401533123907215589986412942560265694344125618738934286552630261672135484254207690081172276768366328629296492374430631092221218164794667588553678615873394013555514787311625382206486356181184918368248950144542713741036003370521669170400530947577993785747722385875501049249485134587534972321934873669079640104190135921620110300963395248524704609212125843712484432709758228001201774429779402620051560284305946975741529474101074705269728338302496564773728643365883721875653022421794526026048074341445703063374662122968370522146098438654468354812007625878109150563666454346762651040450212119107960883653837722877342495322483380416578561570825733737929901085874424544784647059889174052514932560726575746585922031136209223312039751564840476523182598943332071426868861237492379004824812879789408268040617861678108392570358975718745352764120881247070726996676920517823366310510735666767863127959025122687682618366868354144320183031197402050826421924663230966962780944070277583013354297208248535740065029031471829442452295648918166143254426884951714258791754254681718191895919088954692399674919736019630550406028015176485185023657760463007590279593962664073677175905134483118785890502075353127634045021221813132301151847604623311007846724761666816016003449253963646894861954610292982954720984015973413052719594584094602057777550453141757142044418987251385041392314884197768650887195180136960059578943661249623229141124758796758724221746723830428637573074411539350306379544078161528044038735520490213274455967968675258799511152452064438364433687100128770737012901881722309617094212761455870534374422420587990526314954811079615034350393921731541471878274850391734703190415505573493829302446185924019901399973302306061781667047814425385471660618943207091748051761019530852446277443361083205237022107511377112861530372528489538869745106187299656850638492370194063780257683375802370114171010970450042069314753631189571966872210482295878791750012553183789215350308668693415793306660845586294023122208584464234285974741220656500670493178140963277368786633522163492501351350278071666136522036648753042649820066718284077284069153032407386282360312508399640808661944617537816160541244861722831093997524704534245949778573214361858733564229853654964089693283939154387762570007628708278330605943889212066925889341146752425033796588839890434894306070716716913245571938650232656130039937297858530339426800326973901611959608358275043751389071561933690129757210263280455689087390859802620370632291293270417458905235106685245906604269457218538159946106003196280724718928218476605835734056699023757952504484186583695395944370376692264676164310905159844434469879361113038835254202263553941044716609101812727245402670618683513510660137538128552670382652016989770724567751005702542787758556419724565165039011781173508596645657673944525085389084205061702139748717922756205161733801556803802596724996456052583958658967813236879183766136446061401669164614669517890820130606924226732013017681491636940126462845614487688291441208467128368157396613818035210875684207561968145377487007111161833984948276782914507443535373140654015946477546742857850484709841435524019206352761044757040423954024535272348082629303782415664390999173509667274723364383570920991555463736767230792352783698216638175293195064333802755819534314467666470647191238467165500657630806720291428019614138850737509157379515012567147449648836310648497840823783757955900155020689067572872735741774190930127584776985327874787252968180656236194899882321985585662197943057243873289165906670844629668111059015319382320932733904195183472871457631326120010949211237887876611408760486554992564151206391014407376272777007413384962825593009487923128332362277687080482556275630380136385236747196861551126747827891234345589295158879100293085486118093683907749735918327021086383013472609824264454799334178075668928919930487828485234163783356604363167106561713246975541681101117060846999199997858631369701819999657616991069300774774262855470520852273322286966076472549087314060249148570141852707588454256758415199711196491007012268534740138311946096484924996540102468442357192601685617219676016315896677620328572333220220693965348825731217499586097841692230127563737954857529288294759796750299958051460574180529832874812848614702704257797638600082249129361107731951926185341431668139073559437782196311631504972174282323149939307339054634512369202223625670289505661069519738443906999809958968652275782215193016151310470342572624338609473102463122497754884158974057880530972757783804312545441646393858001795847906841609674831961571147572272218086737299082245869986889204587794065166047133397088508070967562491614532210897395638624283906584269987473349776171757963993617981155576216226958051860730662644476359587204146610104258660249344295983482788445716639673216593690418276126116282149289393294349793305018948732840825209651235388036984420371503562774572804511561449659649287649509602884384105952393723143001828789990756466998313867376782148653901804246978692153027052044007825117948814983531600357116823010556716124526452705097874250926692907022757987463583329131413566619835653995962191270743431418802299450851424418593683484019908424805997428510398869854771764299107026974725508109124691273908212836129325189219947057548558902247998559172431668686623297497420730210842076982699034002798093309337780927467104632521989245159874584601342932551497237458848365812282050185462704586271872296352155833715459945993941789098815188546224085677581448639492522206090997958241699304426473363576234971936085609026683749726625764110663053467761026014121262742217262128005495023094706429612071910015344556456222797503385706521262716584581790228637405609412527885174886107632887092674942386483798563539380517672218765613764857459610138251285999839149009753508089526647078489422417675350876319136493470487153340087015780000315348385288633280586844765905454796398600008555254583371702834429387294220984117793407203269360114898699614544946245656960935227493553557915372865590975918866577847517926502512654525026001825938671639093866363655812671404506066705318095493945159932212731614183246489021007944311258888164729372822545021497799474984439428549817084619676793985647469389628954489991909381925710087469049331133497882561633848301863310352772321958185559357953747927644799946489798594731722646579155167149957876800512951937986848944848833288137916438287586277604086716301544218059497766907773689287379674557387959812074343662537242804561793535936207146084912686187064810376375247598088627200121519564767369292711484734411466923186198956362078102956848497692411546543096279001463758961085609301868254789762269653146766531544123041942942625776840890598555621764975136910913640326881388424126085538424848394961451750425109392241763490398258348448952412319125213312022259037044675337732191151882576571327244325582118006212784309197582703524820675221795453092294361251305825842857539385131624404083466052078428037377234045660712292741632835096290397308770019628071673191083028013630605556114909775303836607494597121329582759712059503949873598459014444056124578937011545322076011357348743409967418617903168357456703426461617122819735694752845430910277437467570303680851897961644145593634116755091155638465104270102470689816957801918764699450859087246052699391345329127270456148075047139857886848419182223839312494084773714811224906536609176009743590658560377660759592292788528098951103920244870816097229549632585452965389183641498242267626545090617454612436333789464873020820932878406047520714784450524274902620207342563131964339242572686270820647526459192906391580936581468695411040067588351124825709317841960681169711466593502935914857551094980712810730550423763391645785714385559437402763335635067789487639756266220982797058443972887241931764405217074038522671324020218556668335554585898476435471953065709266057654921171532477610119796275652298345878195217515460323025951649653205947782797542359890673214024143686446813436260664520701866150921686825351999414407157774491279275500137741711659869365645542095726043866131105404366680968934375890667192723395431981528682132260062347008144285178335636606387309854365952421318956767160806641873194614471741591305924885881464976240671840370893156382238317194361146407682580831339604153931199099851827190475920006941423893297248975371235488309806313372368758523882245772447477858923113118178296762862094977405350471923259843704254969869125774300997014277804006909537888770140668187966538282893910631828150303250267287591260286117109371772369405673861497320727147353657101884987088294593905086908206793866757223554716620222897468185253777780210630349885596626573170778063982431710392613766526876041081936911175133185335929471602947750427299607568115124045946183297992727839296693507583563383781995826407753668007260586114259836073351098922818745081634350583387201401394264898547464783508388795292521941866200406556651376074701733951338052014998540879446427259810349342436352499676251136219408505129319545555456900982169668990416970334716359420952119382803387151984849420788754134041307123666203024736236191863928632723832541886048326279876886477333722081770922206478282914706001255718036438020215695651082357313415774656494590882913857864193857021922127576155464145863993539212432857529302097559003321866142064974579969764625690218121128151486148502070820527514320470773517747687448192230127706190859225922844433907416642857819702897332590512139107448054810113558105764627213381654125950392312617392977297886006933370034028751534306432273488337581139757695483022286590406709392233772437197408080457804963315574273831091932544440640285839515329209639671651469678793082707851617412582709321462756548402460385100715642606631436829393898628736395030386326002983232029185487263346717746158992867910572973375738913807672176961440024917763062694720668622859476366794625551823205118848484089010255676992284294987810448042009200801717267588277451699150501012612874675234131338560481077468082190665556586517158307115480370992699661583251475160585408924142301063085347329016377640314482909090809046625882770436677410231016824698791000067243454188603386005002704872805389786740425377626052392095722570003715552637767401655667566128391653360940984757579590927615059120646210947377523385054404395296413119738061801771010410814871012521238717526884689281133982653935330030996632010529819296760828488427544769324299769695856424345684834477106005904078694817998031901146903923421743746627530573440136024841457788497187190256152156901109014093938272554711300810326930840848092465591320338762819038005291987145234957736747842363811394789405416087016714004661665267449499802555100672168577108392959314768684410971369850644345373601349905620548653268006971563450832139863070647478050573882082159017270273530357800846774701088304880936100410031955365245512317601296727519541519095378428620367077678306631698022858572235871074485551211853928762769539739310200685996996489816663811316793645410200990992326943343485969148611092719642662660864051660121360441420704337705821185674526333499484148543263715511547590694943345702837637875870030431538668582401477767633084135704511684266954712081185605907256807406059791600808864864681988758168874143618592701165087365408503969566664335052762095787975189968518383530177352311777495847872883694048136032557761532194354601193725116223001405697135357285735808025204417365668019959283482181842045658528466022376800762310139420633521086726575773704898541094003358565430367145527192289042842516512016868408936470028848691476819108634324371098703120408335131382698151519659274404588268208592221598161146126415794811593437550187834816368845011458690129850551633741019608513612089453861430611788396632288781158342760963954121232601529110865378384162570971252139140141978145179968450001909099416955844559004010614395001886581252174324266085297059119950444420718599319433046535983460981274501042781467352630934276942920808358408160911983197799708596392859039084650156797929628693495673710845709190853923305591641827427982863099715733576954031216122890880655284746110262733607958570651084417918528282157635736779699885803416315607657572477793429057301229649602761408261252721693474760173697757087227222112870712757019899980579978428659801630743829148496995711645425434422914220774600385649306999685397472316560413071729466131231051581174618180658686506568080238903391383191239598435351314025572501369706818371596539660407739153360087531838668658151200527113986880770614897885846025696109116154797632498973353930094392634965481362593355075609046045371397443960057117969194185457607172166200636424474555154383414395784302338762317985469417106507238612577874664629956599525093722344832309941492191537474936784969369197447355485354282683707670778548848304332880263759696269970701416067850027899451427034835568734572906290167415288535808948458077389094474679970247777087580602198046626124381588681066523228290694338415861457827845098647167521605325712563339045589661044812521276911263929010113227519170590296635420469260678281133658416420730471895276250755884890970295977262675564703995701364281068112704435177451153814290133394628525495285081508125857817039023249940947610065588612251615848773162499016983286814291809483074723384359977684755067357510924600063387562090187982251792809380440159690673293701929481941490001845214970314115519478261713716992310068653669816314755662942026325821482084096374576642291885608186749339827072629454062191637223321267724376338092140026043349564658219700928815668926066485133073981294228976793443886837826049994791173126234204692816600811546649587352927762437768795076910959742099189681590763300438177654697803118789650161784978965547513530951826128203350638338092286652703072065226620366043141893756663180858751671110594333793413970101472137268118617370782509246313289931612193166084964422346050784986886303690665979056116363481058539684891408890478275446176885316249709016229565723627947270603882426941587893253876823180503173287696174533638013248515065814182756833211438715248446871270077257048509818142401058454896364590643899108640688365650669235239341013522254175200851350638280156160054245934603766367494278377866544620962443331300479834777163399838771091071788170837679373396980190808861404588307068685237149783058594952730995894495161014839775833080639062580142571408828469118293555743499458276851934915250587176704264331844609517996255930792164258375274214360657374106703993815033738072433688252398878813024345153235031241314950484376978259715214341968898339790137772130452369147603125974956061162258526336280021588990218650431126599988339987586851737862688564700811404381171073803708485535754069008700244811699319655439420745028881406944974460922056586263681230896060357961134325691380375175573165424265196258399865202816577094856094145439982893565606447504173023994488632875522179017045990801022794377291354960583418397041985619202158019109698612937825400368052139728726263223025072486540475875695295382939360119177539942576797296317212033111371057745909358868328108993995981208502072449224904181029864159736831845622937139016196346596737778196433792996005634674173963484880213975904616406526681938131270141147741286076036929025409882233722723483162166457494107487497108482025473764552757202985519208128725832610721987288510200789119199709959036869793726860592706622414033105307744531660364807901731821580650931929400090533683938910732659889008820306275342412939140627439249191172961466293229322975987091565841918891175115015947775413261067758717899281861776716994522847622383695942734806782184513514801680352765045716792333820480220473547299418395110819908919680177526309163351496436764293079817410175207118460733280807624101281284241668122272859022136324770102419631785179615287360426015854927934187717480321711284218969093417290463851134480018318294888592852054173449061669846626389193242207513151980552268283963787917100381653855101355272150198771604896846969670126467377089811109751533000006776721783987384904604992432799813048098144911445551263772702825084251744394359670724292573260682504255558139813012674156159798523209487274809039070046785026769451551056710033670636040700637941971917886631030691244924679267160211143111697998937786134675167429006534865459441566272964949675440087929652827342265368390221341058151641019610954072032182300557548333216532991825288035367038061722551593691785745409346571795802767772614232212545465574027506498367790508507025282613182766671813800873606005854965889437848995614620013265336281282326058596074588768239938642566339198880158276367799357936495869998403028171265008045843211033137146652744812033894475924912919973347338634069390507781883577440599013328623750527517406457582728581573212012946954987650509961073333572967295130014669833115856696417024378567881826056590486022752275211054669243695217544166243133702183724382841792102614889646290073934320341094163842577439832045063495348563868366408140545641505288642548663841563587453538642146323542820595230764705216636476010502596885339767927988531562901886694939283580852399108651003348617595170237808076558810132083143389162373117110786830097357460470085116463772515507611130373440979055487024825393260084860183554428193432842502044987595588314090908353266325341045739830971787569692069263949151584415434586158987585294969574328777827211400624985845919201778417080826785896665252789718264847630824330262677325565179333206803347453525233607676981524163239843175914855441699165163348169540928692231774824095800761244231574848138805584589335150936754327667942774201801498110611627646988246735371536384648945104733573733489620069445254945605748938339502420622890255702071039544269675259216048936294228255673390082779407325774479867348950040598096468597784671810637498663182532591588734400143354393957833951862808372153223073743039845866862727971812777912297718154973307370200079625825434996227698025799601731021242468611185234620092119767132037872846452549269366135615900712406804366374739856847630773685241353911426496110050033701035662131073746762095786653333800456464995844543166108916544592338819822013211168302147892908115907314632835684359156266338160641685486180226824359104658426325536192383564352144617311233262607133669600238406347577731545962038758489561639577235648690978044606006597709130455998370775535233994397317259711650520122490340084806559250806035600917439685430128188813408667189705464120988839286511986118181781714484225419472487393797703714524828468790866914826815776406805130315961638577768410886984479092597886866016484511708152825262454992160348402063898759345829540405692387036064178321458315366039805261875051092293027563926172270477467395779478333689781061591699594328274841961987223001349044078722136034372096815421119350805645784887205091765172537709160666351275814657571338021905723142788282056544439803245492147124652753554847939548058609436952126436790319262208992552524772435918848653634668922342523307656971362299353271470301303772554093966703560997492701935976853411857682862092325206370100368985017390125986475369524241100106290054464436435366671918412762232397241718165924709967153749169556057977340117571434748002846213122013048180011926728082584851980816134367349988362721912232103361680467032495544948973542574651210820492437654224937515974409369503436854209225669044907798787472124988051594063743422789771889495590485151478730195617482368362493602410302031494256766475205654822295482244261421557186448559481007694204388542981640391095919768949969521582474203472123991563764950897642909218978846391964179544708732848389734726354297957621265152482605509216874961714365997238178672535144568978013358139587495211151050472201464462574374425495990741578346702428154004186571341585371301774936471195839824408175411268879573180287473390217240457961768058805119600147077047661779787547720841681503565631971031111453518405752829250205678720710757105296908871978672162817217690639038584122988606041546812715967616132525057394000535528218662202253889459886863030472123695259118147344552261882283532779708388012705272719870088949722082010539458966158962324875227858391980753395450070245432012393859458184496821369501949250846791781005243893549427959527271026076956010237212300303473245444567358357231017870563636429972101513676964964712814010055279988830179627939356080869112417705171976811113803430005741817512198088056745416273951271529259368096757866010220737619211357264020504736609741201669760724925529244190413943428479176380708348963836099889872131880585771600832847425369056771461836139986209286778261528214146212386552487125858786447513914381568505302657972875130715902031250794115123378231799266363180106611994532068188740059765225094885475317289401249834832447290022195054068205208026279708941832926944576351156009938147918278220035062370143879798199020474120796704481797683668927991665032711145113394313378937574302127554423654164028177051122028572414872871806446174992104291235926912587061408915013306148353473217107348384933867138653784705962245600417669615708610316280802427703849281585917535602756417335559616332406498960255900948926857760182730177965969387261561813400365385247711398731053725497247736284064556870216351641304585042866082864183286883949260412264002449330783874628055063067512605907344026946845146246526689180073784507168848860786792421261209491970558853134261612715141238402204004087314334798903887596502095559414934814661013524240040238316921174453914881572345397893366358974346172722411039779276054113892453102190825908224804205536338877788812552687012887401379040593979698593466986919286743033408222890122394728857867076612796738196766367214624364703302881148070189237318028218571612317598631481384564051517548893470167757814452742133511324063401554904073016894494781044030797906089005830139885854541038020621666736597453068453685394694409397464404964308966006874648952874053170605501919403675361823621666290248882664800552387605019311410881903289280615749753660894270592241768931891595870240442827180467721721170399898969794770040425085797031361946962592729125420728638020806250619745133389839359097304257799603529329341876814143508707311419344261971877573044337743086847654774573520943607078020516465499652625454575867698214766110559599636445854574982484185592718350223681311749065472915102444490273982371939721925255098004785214788838261852493012705497669174041373922104133757162702464111719521069298051849656574193591569352616860064344806819893314885454849640796464008714463768453907035654712398752674521670114801376302967547254030150044635270541693235013586845606738073735971267313359760033767752939983577710166799495973982300932661127388324798702749625233546938901434018414544518857725234919230171852482519657256592535852446553321291263083946773711848477319103344129870465833504612381532527180256820945891490132680682757263685193568876681756703863022523508972012635723236898941820179858434209947907178030512468176504698181839207020568983306929703558805116508997781802142435171148180349041500740985280344359160639631034155000816800475339330678246244542978801447953506158081735977426178891948882851526076214535666796503059681280810935187679256717545222280444578681736636757798461537587653936482077164157970167594123580652722006745264662980586461833183972085473288649449356758988481182477320582653752292873861878879792647627554456833954659070077958320193454099869491362108242551866649494838490325775566234539311800317926147116856082952392842382833341796900731432250451311582349571988919620140578338827545993029484264868349561698908570323920550351875690560694835959533913661229686507085757985768042353608703614794738940264257368633031880367240016424653816929213876959603378591554464423460940841057582421710939396425877166600845844801774121256898461628677297696700990134910137373814696355514183649602078324402743825500517564623754734248375691079248563039527513224226187831639040571145992183827426373194403923558566481515980948495258112270376675073397873306203166655238156276087526805132290343538539219973626748552323848093610357026015437191404350774096387877822745306029657654497808376108996819115946491602927629815156157184469080906260579574071870013510683324253409800350874487844577333525080923575149930126498785831422725913401586053533091287524292578148533568928050591241619236917737092098053043763267063818421581313274086070165358302914399040940508906670418988246654336187423972096538733824381510069520287141598133545927391024780454515861968101398135509251389165486192151082929553345343703266663773694017415849542465580567841760078297477528046905309425152082399404901907364483688916046868052688122070438102880670966599197293934428332095456445975350007534446849493120292806658226525569557841370826361980815234144869160644550135782197372070962490750394282507567724902751988033542579658329763717534885797873727422530046710331430016680338474022384832503807736164447458933248228077912525059929645505746255392639618395360739973470368833413407925040621657359194525105525041953780368130851239641403667067974244442496488789388948360940448426916270480506214745368023949491215659806716296609143605398404701872663154188564022517574823720824906440557465600730384960848109194598651328475323579592388487643437872384917023721821351117471202828560767957847418961925994368775870380559760284322151343786484424850997631180167273070727156823997092015686382008362839731793778457539454731168153095650468240479629651299411327882199722315323178430085063538963573938416888353604779896164745078961931038644666545696444584454142489435461401356614339063626041635110037339833214342880725971773556036716077392905563332933575932841349203881857043800199459992746251834756126747832157722268105094145701620864791895642007587890380377711177712407414215305841721020609157166378125150158126195190365985662512443604004560311524911306120205076067592279134279442738335685085829730325861637630983949848066908408032807192892964810021704893688194036360738920953118610200103304784501615377948199196556560856775487730185489074508532901128226618015566879437780764018662535224365220174094693304483749677034776021689088611429274409149224999565963094538033728517543521494802399688281076291458193993004714526923318462919233344293448823430949150096920394598170130502499300900902255000619731196993435022389633079686174971232201304154009161741015843333396781198080094162606079550048742503664129524454066314419240721068289463752766738642537689008824715187594662964490776081221757520168277788012634178208214341944901864352650085431420572372996929843783891313525278521009317020641394375112125284281437739425206091850982615127153951047040412915703838502098134931304099946873884749948555674731815263192911210215585107141700403983695488828170690361112093137288255590384244688773659265007024942454057830657663742824489327940616957636135538510860914518865199612614203980639146002092174374303418218856629907133229325656340349704344256736957862440660046793198286519994551473614874374282881643267931706736264261621733837963139589683114082735281094219389006139512658857450567780784380518974332282315422903060672249607638120603683434946002201670749547811982362585912178994425829364746355013923499288174680301308713931168465563632452618775988641442004943112857082452607028585317833838035311741708715184705260426209522907990206037007850997123647300737307694216437450263465476612001288256171923946665679734910584088108387570753583517192155857531502094710472120316320995945580418510261123736613648616606786257230120881669878601119772924625130652104736521281387106914106991578269711861518899278426799821298748225310945319553002841064402216292190863505362759174880259725292208344248675155614035523717930341074223319973845765743466419369057767583116108357713090391424987666097821613154362815181716851363377323693515788930264091801305384788327473943080579454834282511097477187010264624765955924086934408545553697239014690175756662348884628969330311823186940313163389996462349416302488154552502163292990494276730914905671609005839783214432503863570048543805661580807940331459020428685119630071192230570239212409602213726182764240819296049803689731951868527543943509358726462869616192618031928157818185064319393665492230986154267772783232675453794909697921271352147835846902444821542578861190724817007717007859056564476593867078937444344314516389887302359748964399963132360340938998604321331719852770045215134967565368185565783822009225726893746053945237622446882361634947387101587728163314837651567856612875378071525595316738200781424997670469191513617479813319920829025434346721040161064139841745923647707103644518677835116455332202737609315693848412611024426551127159697878276209942311719117059036613899979572143872837711259386830651297950972018983140833484070095079270474570284932055073888270007145669145439125932399421365352264854515839031303580521921049523799957990977070930203738660923528068071233620859162960926266268118571868286992573549974398817931368945118509229224359961510000216411939361582313229426550035538816182216429489460172867072037614805420052380992885244408404859414871674391540950357306523702697037013995956648255264972337672550280643552536192231338241426345617836203545844532339359111507638321630693255006704223923794019822578965561454313711558503712246144599095632429377312389289563883653332302317745486905846159363575453454803995584565556541799975092793020803909196115549087177912076452567649092906291720036041229105889828698788300532177014823103739154670952316280302956366741961693388055194792522074122384432167195949494191062951136419652497495645575984898090055846682986707627510420012036471192824478314883492149524548446256666994266324781373397898555980520117743663165182179558180017056546161143908661942141761507880019102643358417551484389471215753723629721364222670191479320441743788193834351858059531232366741232322986971608952347779386155174774347422446627004141713185690429713315236103089404899861268907591019671095814481506605351187391609719835403356490525303631917029910727350332949179748154989234160332699487236509533672865887515936728743014804428038111404308007837742484355431248367219160243857215573098958829210440965907203753634710163634795335082952570868842122034079068184601198637341803455650496640644459112814897574376259067302311963199882192788126400314312524967139898123059848729046394678359827984771611094587616730843741760288764753061754927308835152844351203709376831361528686991637103743519692222701590748382975490399210883343653595944538407835059008997546643384241002876839040942790304508869134340339248068075661391317693056680888813730857338488240776933470449691595637141649280894537514818496238919897393567359003905530141931161334158888096401774088544479881276664530331276685915184563185380282893865433783638084446193758599666109791339121023032148434770013305788095505728921436572630976098284515128655977127628087276277431089752245804289363939638949878351049140657636262197628550665399176170493739044164488932288369809471417707516150081821669034461474615651837741931902716343715948179832641757683682460023063495161487049057600091967884677574223569344253688216130276964376013974103952486515150814788917152319448614492775945026904720965849984131263445720549972015290569999354452785502290207883956320837597515225256966236821046868580577495442119094404730478503154322634002259573971690786875875953185730946398010446053883591720232962440359719564016682085162807598993692320553693137666358218588388482939780271208614907462913512087401793095065674306403527701287508104583889913711757738358246996629426954320754630355155644451996516108848719295697676426109805726447862418399902295476648540160993729873855694546717943140855930405439959191363777578449677358657923860927025712206246156464941782368451575470278650738864050804009679124035074955818382048892305771118610607859747978978932101956420649143894516452089589898911841848349991931811200141035357607727794390645988621616910024343042559095493554423503301292503915599765859101673630258903132094972570363020487864538275328045743413927589034471427181740133590680812778290861090381263135043947853421601458365412981721250945682108419763153212938027576655968955638143863750851822455524588226542062349155279710983351944132842746339706185395195606137262498326563569742650022564062392143808159230713530745741977924534740621905373572367329241051842362562701627571865391605070143324874659829291655863720547811983737866971016342313953257425851764118142336608350313616835078641148266569460039166216608843033114045824044875053337376442343754501061750320910404426118481032111357281181733167051085869722471807485578154683790671502432504120083858951166269356381491653099766798834846555288400277649565363037738393207908668265940596917400973187461641065826043323738315632447156288182165735625370560530839749793753572084525061389594443431291695378573795779110872332595889144897743121696493147001913174801877894713961323435243113288798002157334341273006808927804401828941911403945863441299966869665518556164669687979250149543977665669365249905289379890183202802041924730102051183848311518752580665531451493822740836780035866170067367459232577810372642047571047103038679440216598413412142365997258636139220956133206856845289102530337771359337729492840255212114939981435245618408856088851557503145185411503064584789841595245969476227339992464270242024427084855162324966209473578540697889644417956900145676045158330693290843804084335262696463926632373132367173214079360737520699478148123277175931863478322726401515732930820519472777266931358002294495038729093834467759007475624721297580747857081805471702311184695178378588235455858484206993607385402664176631377704078917354931806015124277835854400868907121715693909402570122806710895771863774940070214746451487037891264668297205254826098476595070789361599071921532497813200353943072946047931610242765149442502083847785120078866002077255472070400914110486425323705322238092246827336267648487659815465906553220863304609515495756274628985826483545562398398474211210420274797482354652275773882333372193455376877479237970433002720847787611359604580458760273657850950105795390521973177226896397059792649819065910457984968883132224346741936477619545416959206563516415047015404314805639352429299809747950895204153537548660789141653146944280566923309192847025831524598657345168671255580287128971403913139644819864935421479612222243038479393509265949523275946266012326823588396201005279582151503630937903462974774444384351816970149911725809366243160040110626613820949857143572213524255242982795983460290520258741750660954473000866748036900282353289222572667065352283116756095725768303786368510307315255378410583654763021333133582489872049465122165114114017383216892199451647349167976732732175023861920312788185816057605247652459285476418797159688647800026932137419573665871708669531185797435411839382885918897644671462108312117195310495245234918392375701381946546781563469719328691195681268648361844191831302400550585594614206340859041608032684405183921746401663036080970837021717352160770297676760415039321633872500531035868281576622094735443955401316782627068014757820009129909198439683819693231158145553058065007730091246560561946559718291546297138449975534219591483684980947678073961296689096858957432092117120514030546129133795686951438324735209143443046531603174770588803123196538657523168346207453726205411221205066994269589950466181596560583906406757872204622868349172880550339717092230702733259572153364183377914479882985739790010310969249363156248980472984437209960983456745897882932595476261810974876093667972783734582617117178980401922630960795522100511381652825523838993191170438482981579013415418046002743517157097578068481312967398534289261121907658411471113838363680141701715484078440978563924415601812779682196436241335206594641591511393004080073438244702436636294804060702900606994237826664552380357569406327815834636172540429625160430752387641932106381733854759817460204101668245220097024794094201474069221743719235805421162775610244670600253607843450410370663158965135141734631173331702170370446062057002594515817502203803722076982609929578907973760861807734991197566413204809890029529896467452282629951663100126519292994660510739827163645773042998104203822441575218341003917140869799286098118547126199319018005274867730575511608296028502878127662053816041328478179085970318666792259532010308358845848093275190167769038848103495558788279475541415782018445601817098919428095406388045069134823353606092198929449071687544533730997707813381847280798175772726064229875423201908508447925734302278700113274049987620216320645940307401687948826063889034575154308687080864792706675506423280868898807397474326138661485694690110377807669289872702618121665572868873710640441048823752667556761886893073836793425213514995621271618712584051084870953749254092664821562378994501010659050998145252878918748179280695394803571485186275211595942122588218236890744308169901325823038302564635281714736117556637782287397097894616003771199874439528847179681195388907031780553427883410806092285871841192336751653542494566775847790408716377413255429377559997155172948563950662193097098865614112615924668457976733519342281514533837759078405522163346165341106351790100397158561118238446894184911023408866781533266293616269897598205661604423865763091239844675799551512785076850093874155210307520222699639247951442484735451534221453380892018389090265862855772416346037009956925833837454652266619860316305785546216692573189400303212162018484327391920725947070818845042160614993043778456477831672529276981087014094334965310415094895198806700770224606886825920894772106493297598206682505659438604097867877645050805079362548165385324927200930459713012215827109648744982043156144579562055380971154447468457511729026049524303391883084289729578076621557866614424920995582223184165627399081570244600781501567631714735177804710731663581504807728277241860683699398815758657602936076045080088379564482506247991079528607724276697508459680731166679428305944195768992112340119227441762806770142185752404545515424271358522118152743509880674502801970990289060955264959455447747587329390396363461469815460594710522883138867468603131714081099482124434084208680771955304743753563303182294226791650114499083541892302535507398611742639377174503175602093477613216384477568595042561206677565347543972046680608369803022304489146177235984905033047271402288718336834537667103429303934063760036533319793800685435283097835081233305612636597777723717824211689312005912878910698617217860575357532045308058338763389577615165639719571972006036304727601246888241652410358089347515997932931697882110332825477623893723790853018085551179762704093503972120007862695716259225898407470546935075824698372082599518710924942487696776032954780231953150585844480872339702539517705084688154115193942130157713184880243416878675175226182911265529511856192226365971893985880942366453346326951507536300119608465968232390187739488162220086777197020814672280985192664931226866249320927499456311715253218560309367253876373254050061114129825869121133080689617592209546083311284223143612334919408496308792664853845824472439341990467429947797923176135034260353248961799307425819902096125885916809596167558607460377414425922989913768168355728314410842826522087635319788559546670635322769475556929230443068954835712470556561110119706626724576006916335471118944530246217684271209820174809178072454166185440545720943975404698955408411654781950859739717241181098544314707171953309935898716301338221930520408394013670357269044715701034553934190847571306192374935796167013806644650776456631806401851349648144748897638678273279011828207284777810906699211970301690935702634610472777109306788571008643746647863332198275331017866504223708691834095523764462347955365626161768996016330533796930733397794119873091797583050613153854292661923869069020368602993228777976347292358838406197937907172108178453537547830219830425594627872329117429998760520503307157539475264403606327945314099473271968911498656305968156576872616947113070106628932490409816687375042525531066406740703399381782141303394063662993057560695067478086549834624719374063414220922524917834137857205791957534071830073824550161108580179732659082264389610383945078188375827689548436712224058314813203017021860277157809769232847989880222988748931333457828900369655800555505858581489662773934628816825821395028252502949759004324434236950386884135050078721256343749778882058013206851764524202043130041982828461741802142473309926135524303379630303100986493463834157618294113884054171751051025711939923328020901521526077842923537242621817918017537360705499029390663033003038357964569298088311111168494900482609000336598690355315576783583735744593772710729473751809205156184868146396901554354782246145970278462612205941833300779056601548835377011132808570922741884781002496337405049143991510588483565069649583224688592951360128741057053931873572975469060079730717077749391099014896452417273024250725676021926243181865934135464876390578283926297250347682902472952611609684396676946007543859180851711447184313479486360857284846446120569307822298464467350200113557034375409740316066325115502238682850721215636994997591657598935600672517246011072666505020486180744316598842636967427563340146680984997636687053989640862102384312924257939830103480824516489112092136673078014608387591704775444764035774786953295310776865797988595777573708710288863756417683399778773463667255040105983716527669400955344665846457417625216057607237852515698813091928434727163854065622047293225531284707550052308909355188425437461838096606284951540302757136334942293384595202113861164647347488543778874719035719864774972654504482065064080370585090072251145461706232335556074458659481672178313391745437739158253643447585107924383236428872890394510945602181355970998259833245848761402561092505882791987596402225279597677708751799258419007515912855006871341201827472134745687941038242869908173336094932217961812858460785172894693447644905412685465645012270275809280006572808524066188928018935059757031048804101206286376348975930848583707069682833509439479301764933940887050181846463784168565407670513198922551739397299304902992799354112093650202620558324601812523523590876408597694350635839596443112572121400012468359529132224117554276635748359428162604649523973705445428672197533507323438813289258528237479331532542261597163610062590554932861739011774093342917283362451295936750116342617528134749184758020969074476397758634203001829016551878208696527924727687570096220096585707073543737263595660547627783633839968588331819039063659580797147888945263427087604032203896137315639560388087889848549599417240380578954047074410932917299462946782594320635633181268053217060987410719870290595858544758955960586531602791025842108165635456730107637011379960192916122910022131804466470724038444605663782390813119704097807859081022350575817834290310871099960156261586449943868782949358811100405834987846069690256773883767779287851055489742015429545402504592044175970209971696826166102472466633565099200234075284634290776798619937024631962891881610532149077940531231094681042279091942969082410853230342430283933270895911576160078930896909436790678760921116350805481433444255052044891139362046441570447597712429890515692254107465707433535559585192726312845566477969529917200332227029482464170388026132313677245071377556960624145709456749380543976864691714782811311832164009320661527695732702855882927573334818346102458165151242852154696291733791185739085026914522706617841737125152362819036486684365261499850833814613088321497570194723614958019495644248932336480760863272612233567048230884410700187881270142673395988529440055172324570695206239241059335484147081556325571338223294905286849726976236700256860290984634099544455163305540681085692632146316017232677901679476235805043413497604872867971909797402147991698701230617539300367223333821386529434316517878111855486834255905563428968324988055058473590706780312759250465722652717342350803423958666356186103138823400695621691801704693288091938420028954699015279108964103271298637091295415090372122955566739714751552953650314338756422785515295719190731832705343439378399765632716842033928963906384473563448225942631132332595673072043950953621095949126076064149829934734306938535996682188912250003948628306694462675806484486658709659379071695441198514997388606299730173399145997434985954479726323698426378888618469734364644779489259198654324410860078236869717042195421333240856885132954974301477577246355336140477207205131144535801723825489797910944932509368135868407183108273668089661844415638384599514407785758641883779101236846757576606863350803677693020798265380142659023447022316047495642251624011027744140256240659966272954728151592177437906626837791603701008326053588439635228834081138166447893292843799185671163471685437715816973501334288486525373431448188580968568574221516925227462499671377213554480842658280422676444382055356376316556862995680517775032112582299576695436580653642313579103287438307945287432415911761511761048996646471207347478628149673461007251991546112343825841123951574790427411507842159464209737441145304843363308142291099656448755357545446547457209380436363419129271037203760726390186482706436222514397679125495488790924020410952446209148715227902742172434731436409564835866375176660911064942265200092475300020757301976315065167157444551877967488688300078549026240065419194060822948637167199252028640629279568447151726564641166718273132777005275830817651192954299889064331475400125388623641427363363806783108588862754768460799647420753439671407101146293352147569814245695034160619658689172088922682161175128765089262606852799890049092581307588011481743149698598890342030394801707866212047656234981555044204791146158963468073476030356817708767271248435416574407815273154358773286279610541767562232214214690892523939155744305531016046614273502020797122115846240977351973840753176993481540183498058036524367519796558004106750033766938316769935433638093237546799270586336489982333214349898199045636009386338824878866159556301421156839241067005808015539990051478978503723197319491519509259165548627293350009457351761211256513133590893123918653296611656089915767852443939762468436053513931176003711126018305434423876179973163016104383622039808888736655789920895935289158225467515702221253204762805894047629313691070027321711772880958005175094197628989651573712814441148388360685124928379091960633890579953080387533926829731367565965232377771396272045339243861069435941517558776024566880232215175058790982240600339165196124611010259542527178925309650076929859155113148295895940022615257631636851883104107021536705371239920883520477775892462882003592178074158946853319034502018682915150125140774412484695166669501901064376541050412944698090136213799943969911348204412594823965531941837797607145037698536047671975997869280594507956964185084685831390842716774514475597662761995057898890433301359482951506882199486428914095089133576915293584351264220838353667165068881404800677469686892380418051319980385835007578438072923067136130692267344647883001602581387173708591551213219096038690086894301491620543330749691546929250214529947031327392318495740044909539840842629185271429738439001493698462390503660635702703765157752056661619443088810204458675025826802298308563760496463848220997421938298112750361872523928810692082699690067239845584328455023451550010852018979550557748228561782867752433015789436820101246586626595320793980743333897329025875641056332404798088147520231295735462119250464567777988009013234908758539411498681880996729610963318949449702816380935947950232779367364095704709826715299724886632171639621542690884947136072572776582682546243285809868058168414286370096322509609050929684424816891442675265048912857912491766960618283445268187955122157401865540546850466970235623275186373243052072725686304056867026747586621577553709781669447957467532833501990488007759953308234014535896370926097844956201709716263269145943066845133398402292786342247475901821753998377486954870418243764983082530055125942157910279454980967837279939472608058977886587714700816828234134259875039587909615558069561411821242387530896342946126444077962487536303292096719859570520872378293536014395230288116148203964799732453804802751236122628501261526270935984514485773329239178413556943051203476510997947154042940332800500593175696228899220071088424607651365663726843073419549830285105683568676390338053267839633111059326564644875769662149702426959958987122904321051434097732166025393100992770874085238164091516338357135067486011209192564890352743102893813045921490681193053213831768453411489912451737321263945810270648796216089866842968420818323469285998567667150328574847809543768189860819944151947981855798180488818424242240687852818922538208384279276117123125376201662672224923481678962161031958570596138133942790351449564124610364202847777757185472259735614799559130764182653011499758985522457822406583566371764881616215242690757381380080950817698168405088238737629491523972949486273829071335847126841782358145924961248006622539318485526684268891863054106718471034671440468646169601077898890597857195542057069153967778428474175996936298643234665688222969922292438834142794104103873513075384281689772585049555106123995670310399440657908621282389343761819885070193290832461007239506555588534708130464045462126669684063382909645359201457088467663182761325390499412628217100454723697186488725100308527712495529801828556827518994324512993369657690678206973287579190261031762455739743522349281581371369657554918629601025520003339529875755989107792097905357947750070209840280736605007059593572179517422865771231342842213109619100083470162491938392177804567781865424854937556934765823702449039292363039852078346860276356768081496434176620868787130300664722191600283668639557864639187435594704162773597469766631015219447019800927447711977203284646281398656278369196917066780635607585364002641265961314271853149931862818087774495168776084989725621118797339542899563880397883860844223414960224736071328956717534687525688443384500049305716846329231340445890587482061655206578805059164214220894457447498499224929231712970800856924866464970570904166351917757145324248753158314091084634912050454743953919341306443407013429420775457381861407605850897198477871895837598700823840871054951513170138571467241646276300308671174944456241374373266116867393580691837449201571318018945403461494076565771782723093081078834654719258094916283064537965841796417464546237879954834085571856715717886378893282772357045640499442867226252159437981388177907674843918471619808911497278608447523377810919254579903633125376747239390416654571472409316382989266981083428004066924947816527022449605535326030315338529854909477477299368376053360119730600688699029099580595509270499195007392967516681248303819305432263567480201629347047534582734182245400664095677224986849716709116351794967302201979206804500010637298202185654644513835699660061328281173080020755005122520223151570223673735469954405837180241030872772222220525389307316103764168099119640768267495099525495336830639400976051799310839938190676451928164509023139536531205727573911649214119683360780031392858887737968871210125911150374832176330427394446163062531730074956817226842937817605335962595519438771834364991679696963977151982627074217185376835801846971652105819254879555674479125662984486397391555127968474887537951209429862573482405587671260863883648111632831578981296768338214591618681528361825184071242006819045321074628453124728599709098080077969352493244028659513170312609266940403988819501023880508633944163866209431125654570473126786206320489596137689604338799688963884350862626525081469918989662592907917918708145239089228136713820265293132571477807206776560708903611961157931957830015876142632649497148937501959071999244046620634856459004463900239245583888008892113293640864367838317472646687620137253948509489266749066187018681859580075289551763828138411267874649137705873520555036903898829623420722568864702822715734364824005574297919208002927103363760653126809314636940556956401571230906005600546650404919287889503161756108996218670199427368314587110041315480951095708812249790362609266187450843153817965611238323963186961259526769617004236015638866818562518057262250687348441312084385344500011012475557552333131349104614756698679117752149771391143889635536930867114183459592227183449001643956528729159935731340164620742787661571067876076093732694142340615355062324638881355763346246022541665857031486762373207448482782853290104903152586469450512708221940791350488342342865719824386892952838203591714360286727994264019607349185233419773286914408629710425507448739883178748370945264497976835923412103406347761815513324169533592752125143521840360151304111746519413705762754368742718310201869656544474541841572410174742787270135257347276864799230115030149667630854718893747948875437764190128311887002605333686536166551809943304398560409248714669178181154246996898982436195485636077039451172624052217710019652914834158971444948604633697426201112307929975107849293578441683963592539026832601891014617550999688516747788498012174551675552055330679165725352919689586903417869531109768392362918804618723177636282000917326625269808072760383042644624722738641020279660276513880243047119565952946672145884133895585327169959153764302953875970588791929198213882233487927693755313639853934713705655259873656201750779692100335683330408004595317967747343974413758204015200717857172981454516738172464593824807293741352206850691911116523019832235955189865120839301466731225254670697332484677206699169024407825396311785176951304588249149987918341049513058536133083653937757860448580319094588295299254375197426264737140630763636529315410673012410798589520121914516779071483266466895272269271247650524175881524222897806620344556833308093178494844143818990081897296815696631092100868825347684719219896518382418431898352673988776693355961184084278328855697919487105301677804498366329760070990884970703732662342256305825774457961872868461466845953730949995476153416654052970725798735187063504252917890048643792706239439689703519764779925156532244908851582882029660397550852664034523800797710145383089912991390285806315858257675394604590253150322425006703788449071588066434395667080712947007389750141579760202799799022990692668785321559098259858257933752658544891302331466616835144287006950972239234769405785603172442400050314838757436483007191347582618063041226928942566265845140614475013517882648275482843073920457490559555993890767714082295064157216866846288035418977680870130652282761559286498610159602319066000173216889802131170306621308162654232971810698711167323519084796329754230839359799722176477705078902367499702166992353052252610252833819058589103631466985730767203859351287277175427006232976125209107548624114443184286591146387087684850139802645293719449313834896814243810102087917897788423278089190059357712283618134111184565125333544429269099443138153733291589158480010452284939073017399850636667340239658744009111653367529972233230194127565854595969527511202253936661245009201080751832102385351822447895193550441170765311742446756425913542235256172391685986211137883994914005857261317815440856915294762194492586435801182032689204701141555520389376195532278753344187544140058023996951145365959228726794250536793946634455001812693177508493710225166392617848397131357162997465618367044470826988766486174056796831924423319496379682159400797481448549895480532529955236306690821519182037081772204950008514047088873614895557209572012871183584607973853160014034933708215577785241375612055553245141626341250853158941672767938175527683277239132536972013742350147194302423253561816881442642727827496187976253583644683117111502648436897063882089432218852472392211107954533616372898894918919331768684931511584388029866704128260425872038044763594188020982958410406427792115958615075386517273743408559089409218962492027563489245478972381446042208103527898081581163391693464419544881426521999009945242536650832579863737464225018211942971850863005192944275220769357245890028699053878809675354219702053869032931166981822757354142215263979774451041487410394597412982774834025705593376445883001483551184441529305310686178492597640929989347342797746540459239837869127728148075531410402119999376177875593746119939312598506094605269265723350683782293687319150368276702580661682624367489315895497156534726720990397173437533687175521854603888124615524553673066210012008187398609768351107914665413407956288899508312175899743751302232073853050733248216203621286174877913030064274068415142828670481156234046748701124721462451913664696853050648787961786891906355227323360965324696439445239513559851325085179983861963742573714944531542132689250891822941794005630212675303164793972655241947781269218589654881886262210135138788457232209400999534546279901448372962320431726954397890666879470320410624889032172063319292888139641227098474581395380389613507093622686990049815803853997007911201917683555996082321962189762604530283011627777022458324148315340522100633027607443230051072263030305270330128748379974337886282264310843665293479173125682191498176627734839608935135346047168292016317517067197464872826906358950130366071365815676649486843432109289308279281695999547412450757969931198485727545424202786426222066337942675762039253526736993373480907129543352581417793923989905313960817335741674146037098729167346643593307882588618272571577555650544618108233163549282398071581493513760691200515562990379672851744140548458154046147642378328619309306254900894989670533862991787960641881097960216880594933491372716104468954357178425751561766833807540246152581642398212772632737274617243217246515602077280898065573096402606112527005319329616024935343010963946044980643452641007721105615876503661774107133019355703249878077811238722474178194722968448741773053916258919910331504174332570985838502221100458207274250326551581056032094279417075339928397810503517915981737868454013823023603435391413490216470230914095151346833673214652138824888803555316146395442593122872229738659928675186649004563953304684067023339145496417538355555387445112734785088401218981717712525061575249931304248048014546147941667043220443391795000863196300775970637482439935494025177499571648194328564254402440618576010325958603875728523770875362409144550218358830614082897240273360895779093416079238304665711408968066819820398972756738673247675370520888493393211587278274011099924467536644781772025537489205514953149621250168428200882608131499254745375207302318277557563244429121033213302639584392532472962400628111173129571051029888191229317161438592145546326535702207170029868218409821849871503725385385531760050957474527154702465452695106325887392384662184418517503917947757884494031600139922584085759457767677721571373497149447111442979470084871259330211295758746428636417781137270029941124163411127649059812809647461845024715618623155739495644589445077699730376184343765033111464374307384412841642841049403932508334488898102286329067403351746798455769843368653451890400013576897181968134374916044371103271137464329250533079688023069394222672805418873134812577222435529348510184481525255757973443096519162428344971385646512450294143564369644922055166606725831158862262124185219803004677962406369107876271894672228874360872667756606531492717743152463673658270141834032280924081001083842644593586941940103606472713205250445330331669217882108715988394532627842832821571368822210802346240488609619591110677385271762366036342367705288328865000739754617568597360315868462924167054288258516182553175162802033342812565473013289549135480824958146536104596646681117373159980688431729737283277248276005229395308661089355772439162877611082602524625009700587798503883693075172116977135446433014722307562390573810713315693324201270682181675081164299325163781861471506618945053357220910656482939301845674791232215339474621791287658084600682651821539680494448653886504026629146182885918144722368768863858023203997376683200497186753314031889267789820528516954629196018855058642100926959802664538836924970436590990981962810372688493864982590222331710989194370320231150229250755047870179661870232957855788045776823762350017519370374203604507111685623763359974234123931172025626267513327783024797989540933587547532528487993764308822826235684300234054243390211159382585430421134748080906271658015964350268865309710841524093841470785804921314524339993304320063290031671290939413428356565114742588714542125228348148164922215912634237681422543911941840525772164550815421962182719251453004323111092986943249102211399374324750947401234937942509430088824762465331167278724045079188609398293634470855136599479907862372784031152575718609426415625849173657858964037312190666178234234604219663935775265729044093866510399206251603180870231457005129972907097359635328590276943966518481134200908068036988083139629509571769876622197303943968647089018978597091797618290840064572736179981461951613842296827346420712875282960761029945416687905357655818082929558894357504745175081280836429138627498193769479412276636549732334606519540199486912877707157948273349391783789627376979385128175410949544838405267647086054017412096569374878421250850443408466940918403289131160954207620736881340194913185848056326578955978573202928167914811704283916248364138994784102712213034608333638981250955990905609701886366601575425927515336915042774497961082030767736905875017078369268370691966784682704754615020372685434331461467706061893255238969994059587711050718995309447680409952931193037351860423475874565798536900650465868120486975266206413305378715523890653379377231219495793001845339198560039958713242881249382853320404417533949402980086366385472433619588998146568294492424048205083487400821548141120978359484900446353950078300889179340690234777636076052638732686107097901888666659712876722644758395469426080504870017963201230972430901040266293480055182562856148584880402581431213372657385822378297713979873893966107712919096971629507206657263628416465215840928171917453070746665190611369547704246155224984787998496336818551076398899194356962697008904751541819366846847306088062112296095228243317638602296044279863177851281345181580375085999406112476125669410753945425791042168250010625375141001566593436438976144157830510922118831349980791845246863391698944122590822805638978932182347595491542828471633263069002944319377447183904491518296682683805211918967614436109332191273049244838336534871918876330953379218399724231138606111712721447208987724980839661349953368926306959113594744463643303118935225067097203142153705503644710492568648194208532108831051642951582185256173499847654853149713361260384975075816771727697473821517681100769377726714352555788950090643673443897693830165628927722449542598626353732364294311149936959337831992471023267077728458080676690199969053853705037323977019960773113165832395631267185643358146061214233676978061431648374994212741293957782348555399462614390647482931821775076646003395565722573742236372643321571895128743965588279945373108692075763557187862963243058744928457122516490531006006312576586705616158745267197926481511001307489156479254264839517911925158330814645714210042579094278501087736289185671259580961957316941589499341563160569717947934621553918829148046546294204664385766557324741977858818489679959464972986602537713018871094970978528060011123523900541059414746715172159943073256976989485567290106539857961310313887216733252651729129366069095967416560502312110927500723373468074739678226291407728541179714512558214583378320856912622749246639426225894739983990371873826862670534413987791719348943435837497096926647534269666636769704807973589682526133565869654554173961992635151401629555322213531860865513120622038110916842433775753041635173938266969059970342463074086675671570427148004999748738526816844046444568486667950006081711395928634200534660317725062992752962140539181174302763986391791189960065123672614757170847044350848093952636496731956471731335269668316651825028950741264165556269233071423265596166552176603695799350626448367064493158790102679045516912145253090139087076566045723503751762672339715227062109284467686125213293215055475888743186588572536289999030956697956162321769753888175996114921282399763186846702595745401991670347005103210060837741195870239415795751279532466122623918745867924699661812376982911851286653110704347734164228469824448633606480162195169126569766127312539201549240868163683456560909478753463857215852246370900225980827105740279948664387414296101069119956888694378691680532262119795145690154184150223968617734115066050512872520381492624364685876046384920592152739317403873419884487948364143568400889455676153114794795165832210352538493959269212804918085134349288835967068516457890539926898253434282878463862727039251839522999821423890136195204779128236796204545373009123035694311671315606248760776871085452880929642757748166886639457476518906344870499775597884580668582698443888988378021443102175138562215085848646214571020773304818506425448521147569755973898652482560615963682825675114670174870641436467869395508677105115131895346447526032025895776318173361446647966525000456698763928258837984510760418635392069164402785031108432701754325513492182201431214156059119483724383026127742887357134421595880126533164431647929536731314287477248652231287713067293968174027364331292006770107989525205063954562145730781911073827390275428464682854233242817275646897293681836235619621728058746940778251284707531065101310691578701778885440993185879004155678170521945913757966221558214149922081825812077434756533751230476616815898672762599286299739901111440976332198920932186282052991298184416167938657538756814345516782808837327854793111310250789505096837393105373805954325034289262278016842379545539627286636143845140580901274374181080197110844658559957724830697821126039899982265900671114355128877479470975022152961030683192885665632245237193353742346998248501672720188245498797194202645858979229966305412840699725310299385968229260363281863853699371694654657958058755264677188766648073438149364535303084656428616347047374067058456148765356766728622692603707650571104352283263955269271908830013521880232178922224863241507793220718684343452794306349696993261070740701269566480428318300001533460007562452909651944393383789396587562444051235580006500207387752366950248203776219075699979981736225555848487310505206217393282938828664034983189370193983975021039137789413467438189794755895752600080414367392637399449500813622203932334194529140507662103774984948219952146166796603884005658056340195231520162835870903332344935210302637834143142107342455909379695843200679588847143228287250792146462786674352168899678739187657569854992347977731472044096082833357812545379508127463463269520204876553462721630203357040243067905570421947010910784931607875921112423211875579662498062389657672818729675190976477194327796256786572732408839134378147290994391544698417830186909612826974518057143920958182367755831611803102492404289401341025444287508161324621254569784833723573338792033447461539518451687928393549816166335684948477319742907418419183777455090469901328143052730942537184281371348388858501260147624088932731395162631443737174272854208726939248362652555048526171538509843142903878759180303515392899464114688245093447857041815776100338321553434591507028786549371328832368514588883828277040682893476871299828963756575857284929290132415071057521307483340443715264412649234766814272884219018920449407212580104688505016282581823511243596770745252515435128253010160086290950379984478213028641872990191225103517480038646263123530672798805316701122243177269259156315156173715212380442289774636994120155500889321588844653810572820266852421443168593917272671763865318761278199938757947152063632762825086110318253268462772934774346049309382510381697156241741611525906705965793000650140625200273636682791704960070453406901873543807163556854615821711772640251482466634237863380368808394101614052784869300855560445321843225290140520753202742592425754128044875708388933430466769258862548580760927384993971889903475736567810519773113635133843075407931461533442706866682360647090893082315007107872311370039071391491649914553012182492506211787392510257896118089365444022987738142002942975400004106926550514038337135385273592871532656680600602970122749193823967970492925552273130540357732062460995091097286455128186872480086885696843061603824248713283604488710008321975457921502428615277855255511834459980884105461642163777144802556683837175348596237308027307811314458819539930714563856792007112766173128445317592225087172377242090954494084212764615564954808402196809240071422983716718503054303086210766025646914496207909872028288507039094790433607238960586572231887235161267875708690659091538091719545877378065610803154773164478534703004921006218814463141449445179269708432282378928690720086605062681559634179721026243188999152676369783265569808530104596744492924527923223475685953854940688924089541681526168575021508415464587106057036912608995685953514944233487807377703542451542442001866243881618296210768464403601989499478978059308018109950568842507895825483964644976825554216305565830628030855513800847462468441127857506982536694695197051754396673569865925097789021366800028707989025862101992504377108436175778438019982966260641382881266881176359125318124823219380539804675369649785310007110811379854588800279115158700003501328806127859692468326559629633800321320743808814970284429169647294726333518230899298396400959221300458328634365286553016843438300025294921416616546334681420147986875061032450977684774903211425689622885184331212287612256052949404898817549356087029206468265479966599038574079018136608378584324408260162518338755541539407794034865713415195516854207598281869193396445035578048881136894590741485031444761875839517579741295238450709053114512503610673893285544350082768462428956638653508307363264392115096468649702790714644453552700334254017426693869013160490016625815425304427057343396034435035622732032868616935219220344906134024924369790659557014488940550279658352760801578638505165333510485259186456498092665258159517072033773515871260539248305614961841550394934776999120809479180478826171257254084942354371992137475382220570867285009451263351290332207365095480330372920823398490107547818508730960428175715163328480415479635293721920083526260431375477668049867964345703380377634136188652988312128716441480686071987697997501456124748495342307878406182144904542213698237616322796450507415045165833706063941569756073906177773327225001544105121093774647760929324177542560853600091209448316116408448627948318991957121097138011018510922192575992262636918915888926749356306118076060347650181162860078491846020231155724276677995900276579633385970033497122525951123075372195713227006014815373392732588103821752461952876367347340200783493475002390079067421308881339037803437413117802647007462007597218414449646616586867636977196393026740060729838135104825553177632459706584351926393928904501662177420278515719221923284806168476465454892051740861441424920005910436884954219274630696670381919592458912627105718107264863313557393012631119368768721743528199119880297814660956602488745577062663602738260154609757113785765750651530128359825969805408770265038820747352188443180446047410297277847257443560394683302435594826181283058188299185484653816498411305495694978515694028739008156920147326064518825174482652523731334237712422101194336316363522534745329577086612531767705180469542844832895410427603181726066681558338845961470191443276892084692942579222062241426120100933183611119736759672397937865008595411851643135750392673789307148615983427575312743076946413013834294618077271645397053293685263764121230109752452944657894608648336087310488743438760355259514042997562117125051112929468791224679459145177368232578738967548819552545495609097103602485197398268454645114365225303082854731976439230532570648311082956655350728445824467854725193791691170706890514628015393120158179348909542663584247055231467273838892989308904800795348825028225318602329030354213846881128483480551395198026340298721757938537526057421923761214453220897473355634108556563826241473840473171494784555107310100755656170707921937196066007337616184170923832217906899805239992211542519801183926109584699349560466240611667414835478523382206228628842878288858192723073882253852912191240742202471979893336613766694375221145310789628972045832726590199264921440631122859293635221910242706538743334087251641722932756843511065005972263690958885881570036754292314102710147558219568444982717243836415818137567865914634454015905460851467226895710059565644837116404089109723109979932602640600562514380311921016580228531844455708124970655481853843343284314739916143608999294891981221694711084328915005173335827942165497075058299626988789056687705001984091547728208244256222153044128731260531032881564018021609287268769760294943897699981812477604528719458560994900951576390852702774171466129445982249251489066678022605990149197918259908871920497026555398977481583928922268272491466721258554447052966342780102408405609385051515262146255525410691470994644462744046604933475592735862128795240059360640001030949939129749475899327383578763038700304481896347978791019078758916274962248466716273208717019169349756749372761407611164764292107065432794218031237600860693861658673427029898750144834926454009956227530759671667275408548942013888280990286189085667877355255987641768020000022466553613902887356343563777911178567721714356731454664428252844724327971852247450120786871511682998393964172974074962036409205401041150543559449476660057138517278406494916761007878288313754154791150976848079926503521713551607488709003530150438433384723328303866385955141019249233300989976873348981066130586356000512984291673899184878062799444105555887620833419674178123652252489810901093152230322932323570175245554650163718825275005181526086881458782470982127472885111510700388359480599434449886094253584199334101411157347229042756599508658267263585192098839269034974105614530054391247139628347752441068968176205656640175165419507439063547068945355178960129115808130396789667389614063738675589757489589347060040825775220597398126027309311332152043217415502768926719449034147872493469960043138089104369596701848552158951130770235319634000493912750167674409908937329578042700053318165922570837322358198927242975969050615067543973457733266507980664619573024263470954651142858640498455534761972974793909092925705046405373131763878242523613173854605239010750552742904950097263979140738382004591203675758964751830864649123452791366607965439475157599105559085600262584424879394210831277187469454736808794400175229766801028435939886952213507539823223790358234521757115421368210487285726759148052574898790651203815690520170386804673081151640985752707162538784477580342823001886703670887153326006915643422720549653358976258090756477523290130142449549812392028424706124990642222484049223610429839471818796726810378169166546775158546443989362690340028731253823199516019244564671869229880303011650196628809999151751116684268382680461197059883791591778142613445383785059298510169175575502193241976467217478735749259251873402568203468820864569794499946072808210195869161843449966654062357206050731238993672360881363399772355110518452788914006987582532404765586125472879399788108836814219061430376826483939644735218512222009006519558849672215811153155960518845736880919134020114267130790876343970246506289740548537061627650630930981220719868004113186172747325847735739385402918678256720444106957531758671549418904024751302678329320979606637077765042618855934801343649730817589583610739928127099491029042845710772645850086616396924862160781570990352506545708606266306761520902245948060417563711511916182847383293983036719928408993270776337531627080264580464914335290243434796346128443941080700423445449122662858926161101726652922225401461154927864098348479062059037738542666835219954795596177874712667824358801601313649556352026382242732792891215108229988785047017538021374081238951969742104737693157272131159253668568031360266120011223868601433478426015806603985799888811891422844374322929128082059029214929558503548091394086201385163981646561017412553057674511326365649093389421113290221579866908020056231000182306517962590254844537813750671109522594385755556473590606794895805806067602113115108866419920210138048942458392501638704161357372180827546599879301386077906111150970321421388198346852010584033030189310875157415054359075354483506986117700805397257664446717490136812457830890774443439997168530859782671743542981945181667311312642553173018283306174338556351764414081368097941237511489618383383828417976909281719129056111320428691662575880389184246276257625107067605579727233886067210284758441768780305659844861198238113856915936447447868988721788770404556604988242310425284155100281907036482847568829171473378469235554963945865351519313072938913228892083017142839004786862188999821862482399961696301993009944157178873206956196015069762721067847492135359090112496119528163385947069702185614512637316726467163853650229266293329539572401500048574863975147056722863144876424457964604920436775703307552113391651064913731740094884655055719003134266335345751752959255194596064170361813414846708587003806849706216405858279972650127527132348926857715444511466018901414556636763405761666765793996721060188842740877317517435586686725341205530063409713363830297262083916072282995237869762061598499560167844596762845908060140403539184589327082724371647154850552738465662812549952487658280579041518048337848480955872069300770752542808833036647266658376417176473345141932395392092642140765766552292372064612335513030483744933069768471497512525149110920125240818971247176514910114629687744510562894209871968797047206901145386763235527909175945845470382465712804438414631274072613350012936708920387579937295759884112712119321458180664000709159754435163767571187065075411171416867817259867673942649259398226189545022771484501113368524591291323295783227459467753404882047773296237652350886078895427220316539234180242211922013294143091770872567665337066741502581632722631466057300620593755888453258317688647321940723074593007578956757429565765941045041158601895872091341720467246547115458912742765003698865780219363703233257461888602926934948977316081376225295819112305213478242149316722840962444206248434273092626119160864871101978460179547757981047296148794214356006856124257909343086054158860148613280551561171894506786664372350819762106558876455297238603027577325524342436922506776866680649392894554063581941782628893355744881782880347383672514678399521427471709664492830090056199790590855512909269938606048181320576250586725735111394346626582127988537347311818175274011259089099819087937865503183875030137288707179205539237413930873487954507327074180581471284394155505134672799311042792552155874678011445243960345481326841701032408421507900337471714268048704494683468163947699099564216482412838193429138988969911130457366242331671925309383398912503504876126629581307948483411619064532966416117001159888763367344154595848576284575361374410969437176178339358419240476147609476430468005572996046062849966412247699276584067861820917012291480539345700276457924151748891073050152203293352162489740500109641959348027322124432570176080264526836458935806414217989018280770327655254069366495228389421078823235903832785785641639650958423998959231792256733422936888097695250315168799947043070052954026670069568011905866195245024527652796616426503987345457413067155129925609245934246538266658498698438695032553173288361328819728061844895103416433797492023462500259926303436108473310526559402580623970767467494151222122037369155990615068193897287128583175477189755702095795088150163973383362745349652684398612176966947351564598308781469939553407936901705127223277866220627242620874869359887225853724560688944259969596483242395329739102159788002213439089482823958379289882907746808049217051859698399542796716870021308540595527327257710815149420446076711122141228412832260670875251532033517002973310079054048985216643352002928173748671971012433438692934038858979642510362174015109855319031392792044561742120541486404814888061001474385405162440367773970756346643839967649548379298585649056486800722075938153431645581178053979581770027028354253381584829328725730669668329191790116759028765136293757833478630013390759128397774258304576984530455755443981620808497352956804386960475834560435407844201187082533633264642427316944014730579287588296341779276197187156172072859939851348089955453311794911194418535267586710730709674179030024292315308256230822663837016841021172174751387070761953006222655445972445222191120743403883139363463251715839514311591282272388902052544068860088761872651824325695161486755051125945814231902295300861218335974311691171240732096148133873036094560155861032740276177759205770500598175468144559818990242702777185056327801236540224679181381548542160704161298201319823644382163858378991335843527197837204233438117984609566800029091578192210046288698690571703209837391356245406643661904342475430092620725489828317700189189200510360708283655813552428832165764837896005288040904557473142821559504641794269577994476058722774225909177479053133206981190411745659646576388021331807159119579917656709483713947245517806167614350695190407771339141005413761861170093967931306053252122685186661250407520707120251721509514772132595400193493259332165106348095868604845846444784538488453470052641805830577575889378705778846876240197117261425644021750137254051610766948875612493825284088498648161353889529447635342557701573824730420086312433869246276143394549450788266827224406849565466780645832800582382449455279647321204185793817066300041492123219535734740469634782135122835908815310904341511908089025127567287845552086343909488793569911638298358600147586817134085670063265793664032095050327723255713250887909930371611652728395579671432864598380931620699693259521546668181898815330957731122803237445941705022071905834474311481171154911123027929273287560205252851627436659930303467611122617723646650324252902135883662363196277405352663540133034919654745413982023032269988759923693610482231169473551974477911917050797169303171926071749603620376205883631233688932114747354956140390502615010794597827676895539535839977216891212691800847568000171109330370813293680559297682773362736071801467823431573587234406062644371573467267943071269368966846732792559661821769413229422209585781032717015538204091074170403592979243486850354481046077287529013564041518213213026450179786316902962367531396681649389407411550801833196482873344879695763450709755722663058665875676856700663701350352875535630466259461176696217104211780006181880382355964605038938087789806538794766595352295333430816347726301941901037824433288418783244443925548469851791525207517661256415925116148469406715431403780055494847582010095569004813637065668224765598886271718776690907278961983115874060251990239078624920051871589734233598470675528925126501423043212075120450539570525301785367569163387872228269793209190867946912023441597608126139505294269163051683645474413242008985076748134924759606854665594068870100643887011811578557325873253027194338755954575182981253576520359026955497294845711407556110149392913049309996113999837597517639981052853517211700849414079209301738767600416656088679242007988797192762324191272189912858330917815882712030841027302338775704960489918419729540424994756276746743572403807041856078075818799407939983420920633777868312590765122628057480053789416989091012503143536648608697604310428533870511422543960193709511709881067837586689085751195574901462210065543303050770391124252887348869148118637399028484260885177728694898113208363609558575718920747496201377248861950232409088395562918154497473174479970363687448335704976718607754212529489729845648801233489602116296965900198647175356234262121485266268876825995547694181039459828577011831391889890780764925588883568043445970644636414378306580430332532208483021855805030457848806156522686072010972708085351682256901419048156738398785624288992937871021392071244630119930514901048928112135778504820778423461210625608651628434839803811626872018920201731684025704551870092699893463186514277544536676422631399416248225670077957755781564900234654033985789592920466011355615694567631000955953896090083838576106410268135743267510240790433356846004863586796387740745776961527221594774741568009781115885929089058073795018049837684613553908832734976292715140793065051444611366335845449633057488964184524148433713938022389060453095125945562145046230872089574507407960299470945788577834221922195900940208952467569056189028887079164703309789456156615348074286454843024348315067357749575041369323147615309759493096182657646253619960131817796797261547349090134911961336249370944437418939893730998973385861285952590045936633489213330120875663787046056250080434534612467131268327983878964864404652665481420604559795521371533937917927111512155931565732936558837484827297110268739816526611166973652502465699264205392543741891817827085137572423137684281458679447451719024062093102111650702002959502372334616039221954879147200272362465279733743902036639523251544228996622319811114725573480139054946882986681148723185837982322040164223257781503697337938888410343347133555384906613812629367443385672702374430866458709592296125521350733841583000519552712851976854041552100958840299150867724639981350244132624954835370683902933686214749762292306309517816248419662596098617662815630229745238963054595336930224052951302059333019428833675830639851983880262597079543013529201466534326077359162543112394213691267808535625027901250264354555011784749778758773035409210003662022536251773189503213947654085309229254270980094962098870932132813782121410312408240337487879078974350351084764342701320442515539067556526962898019675713019120945301650907258195480079980820688012949890127902688575673937253665563420049637632096223653718528351209549571548519007663572735225526882579370026702132964422279509413933549573232835003358885874063098099976752936449721388842345452952240715939186790395059848705902493159579563956927954033274614181194422210762303966965281751917529950401952243400817536218173052468102864309444288699744505732615490423156241403662960157559718085498544506007985070700250778757895013105788579970207399751808925239626176837016153261517646645184167930282257128668942951225284962331627758266661040904619691895689786849717621211969692808558405129417217834173133381582993939131197176844453919893635260208858341049382931228244093754382690352921076315898812721961649421340862303362510006950142807841993420381691961388541260995673224702291978201256322046494839894816717500245452906460687794520475901513421607115989213929574318753526494785880180593807231476181237195300634669317430069686742297763075501506430340324541017659556509635941148274991200241778089442282033346749064296371083968440683209749093421123356413275785481036481676784474602373635444286880126676751895577217747880653169153908167508011880708243394944981436666932030995394648625079895657274734794647008731111943428355610341813305747012291527324764891732087296788439484649941641661342841635526001556050311764733218530375497662725767402665908002226550560362180228889432649375484861578110632077220418708257168011887919446425535880890043423322022083437533054975972821465948961834615801072136069836764310359561559389627276025682595652359761788278952130422330173691099960583864472069995173808248355073764015082320543473044091224806489755879181332012127795941981356924003261573999254414952547450542571179571962336876201468935387528714663674806506820997920386929481937777592854773035828283375222989237813101273516169511136612165895623502007163892735999355855256349680237897370857146825588065156868959604723215320757992471435209943604178052328581156105498231194662411115036160861611938822107956817266914660356007789676030295017488034073005370089217488141677739213507799122722908568001366832443617471473474150018654871105046799010107422408208256468000882612124658384811111493811363570660089256795496782224387715201938788871041159878855939475911154298688280756955787122949178928577008454357199367318663803344106737700227796906602445634240593542744459146103991689981512653045021443593880287943692649977280080557012895965038503903009290749946581607768998727808650002788558946640118270381770009048668152210972888960740010287431376430506838540940823090716420009810227716675221000676962301155948614922047739455873535711356111907996140489814418882774281652530123616122776004981283775576297581442631206685225408206809527385820225465073091035900318144987298706872425045413015057761662659932170939857207630295825707309235280218010918246937930503166854365743361530344062423165102140680729535212063058490994880718219715637470809890768466451061484658671825213990162786083414197655908303327914066327846607953777450310847344715450073200803701063432021146303026135399664048481669264430624628844050887500858852641729525875848858786128620273476397163391763931672633356357354609777016110656391604005255271774483691230467188178564518721340662593669674608377118155360213676293901164254556138962252248480470585815863071673440788923338866054120628453295803336383942251979181003040349121299989052635688797764461757865285716789200522459197862352494407414759333925843674887635497382447979000095276991512092313205917225051176647195535356290349101913107359209353431480756824632072539064396515713678336502585891240304563021236193594971857286009037070870102155188522423934507864834822263952254012721853436674666602205012445983994674296917970026422601125298862785262417858346796016142320271073983221911415550494215205729906071131135519383927480909188954040008929796078631739675608166239709953931211936085955044910967609127214972490288481049444218362873047365166464698388479344242665539243211034467414849752800854886799900994111677927806254329799550403451054410896229165309771111659778211032098209497752886135724314214776647704930225227831587225283122242936809448592488280102397543290527860941078078817462515915054804517602281306116966296264465574762634459060098119756073877007136351902376304761488112933400339668958434887963256683364331016981926195244942339902218275420311581515112663851589408621742002195573373455590366924258430301501734287736731655710089979817650148042734803941009516634760925217275448530190424668345058712243713121048865825166631976370633169738551929436189563755531042086262317430161744526852166822663673500084376120966890192007187682243120307722962394799169086511999397006890695468197255293446645986714531948641025695512289044728094536606888871668167884668552273938051440353577639652133815966037844854838059029425100989091088520772032311772426503715853395317749327704909483972182052359411983071851343415281289177361480557103132770110963610312748040164724140350655420426710203358117690969976709918291135164470978154355748466893457090824764663612500205502081468943599158024144791764173499786010113777284898305353430512881514647530565330219117377569610347905647808001156377036059593714766063636846752605043089848281290894379735587190344158217098849164749172529935560628282838549441764532222592760344621891604083324561926194268016300149510686567458881282449902910552654085762599764801159176731722118775048689709618176693307630408695702389918717180008486918994009044677841774667047264659003936506508676574755641370513143292687189598644462480862484127890806753591296500509780082622613236916584827483981059861557245962804457855433362360832263707526239834362014023309351090167461585202704594148144854833529465912294885835162204393267764848705003783945976678236738152360655520631748218106656452990793296349525380299298357791380449515033114814676282264812821433213076582480356489394987933171404786624379782606552291767951599222200525003819379690158802979659047088190969624239777427409866561205466120256556683542146943442950030066858932781403405459214766411721494759116243342040892146532697277746486027278824912470086831872739470196403196691374793502027156653709387065169783426827242875048863036519297569823395465933515179944359577187943034118819328885136841765212404617618678188758854143251057875174761990180655412388512950240619371065006679326274966558896001137777659622384205022435274185830015016931658153150587463098168545154711653542959360625936993374696478028199332774664428957592735732653212250659674614851251238372719794772923946815614239083861904423757024240494561455681771856719121556070174611053432992679877439965235858435841485814715848377348351603057739031310085658265578857461741525441322942616772694748291201476567450201474297641240036028544988673693196274837021666244865334691500794324705978096487978460932340432280132933890323585478385650164887776455843216080477792407837178172978840271715344438523131764467020717622615634621121264976654825426656110305791393288533138122032767814884215076423173615002197833004245655805967485337264842729154972304620377892005088272714885225407746370928466189800650541505352156138965654486052674406070100032488288065954609871717035797912934742131745197661356727008071800882810210720839092598455964809451588666283418407974357714864026998880631745118077063507684411566508468294739319450009073443398224882769738745138281584596065325491919842135217736256370730483713344797677469097223082542186055593407239034372312659133198701189963483319988654605438774498561665429020425961088484779806074079351183158635482353562447555582969118963739294534383374103644947980144646640080250987141855267729353186362809243991358491501995160907540212260828362127354716413056196690148377641285279134773796021297425602110584022221922490676938103349716311067372796870496114527585313475661642068964588712132017731727742856609826586458123751963888829049437411603240620214575321528085426434843323193781791594244210301667233990263490232615756947259989635381197047640729869570457393127504502344877807286243009136105560782785038294250407512373875243085956190051125686283630301130964315374980747403564494842285804726561279278668307775603782027252376933563701121293658787448741222745885777851686047993528443847801730395576572283084463800081444996114123719452051987490699959129901409221845739758662243291569642275287454311454157771614608889858174248554431859699049221566127320659201470936710369504386898351475705854606435180909011041384022591717076871985178115531562954928822999026053699705524144426357318795249187683355968823608432129961689078633144340922196306839152992405858429356722678024281903997357398785713101599598360056951470377684526861690529491999767223380483372526930504294515914235314807891825685205827474188417311344848575100356526123590498588322288476352771683026118068063714733819047922567117018623942476751213143790087235477428996134105106441332365563535164164157983322571484008329193449797737218377462409582035191714779389328731238438744272658192412052046326659238593133658021296616612743062653668841205683727698965328996173671596975396153618458722824506256048122297116698740419857511536753569244445791822315475378830863366728490897589607490985023252451056721287212100974581932749566004433174876733749996964444084354265132800579667446494715367428069860951918742203537799360165143972358454021700612674814736089349844525457044747574130957124037722506609238243014009204801756653857778240518558010403876148834842761988206323771220396453601229127597311528040671278359968793042301218775142350208148197545500125299511118388807588233241549289263429077377395664730454908132665196255778377666056955839553924319171075023558006833045415060199115125749670018640729839795095115370874469874212726876885349686426077041857956659091596923819538742864994427011012880122724864581759166372420389944024544385644809746640973718459463870819587536749749074397074198627580099192847058336071166468283150413242574519295147053776394829787361593479723082997095923964792664829240942662580026457356535740475604839909648340848786742688353355086629069174046259814071159271524294406076301874017705487032419127243431876892356316756344264582868443740638075895415664356637285639058098579784826400370633039054997846359155175711867839875136751372837334576477900327330560680266777075096962546487053862604323390555079192599570340628910520071263643354265371718221178955571395147207013724790541893370729284305737593168758893983124527260018730429533841354407705031493504148820023060322676735162119971765021115427532303577185275046624679430126106069322334743126170092932982781218186951395106459616176825637706386083032444228037293060918959452069464563933150221522839497511300650947051197509888549754458770408488822652215472493526044008574207208076879469366583701954204033188733976160628689492601817825720987717816727509965646614479029676041716153482714806766014745690032886110705181357504766535794737973822734890502315523334136904859171147006732780600695956471765115676836780379232310550736770409273923891236450224713762551658260911510233399415227070519592505088312835092941477525616144994315724222559391345510525840378182437400591658357339809012948925418008198453203410341597808186823524914933235078222231137262666914605753483018634182021583670698419923268435329357280261808102856544398978841648780101709668841570427557040402256635564591128905496714137152389009079013442417192690463075316373273749310403064550711675815041527165744695090586140158168231544916953798772238269331021862359220316811332699693008603275163296370241734541035294903399060051450643246875415228641009195523618915464195434981040000014116250728300418379131279644643571363957394948117919259031258575719782252148102535041906023171554946675415935898564023359409332950410301476685846139914170470051427334924743726850761908737496946423369057923067929379713624520013460629096736662448137066000349104365944678737575077101961475779720688765488240894743676231684351833523519565082181712474217464502213887225142441463846078737192586546825572459744693728660796154134640660755911955946987966959051415940335215314637726414878405320656041211789838014400710832811017025939791089983763301669443282918074254180104212463347677801392245072507137432124345437270715622874980709878024325060731167233508266787426391095207274493103504800194540539505200325082063146618488718262200356662638318420970735817169471115721759998217423113749454675726237231999543163539100351917990306527590518204715246275096260942418694848847730774013506193375550167846108143972665490755569507883190837540864078775214712745042164891668021697629123156588815736157815045442800491096488058456762837707463846999215332214699138311410981836386769701666506140895925770209704220140072376382763110495513548571164443248397856493804840523916873270710514361546405550940826750203728218361620341914070452523155469699446240580478610361288238870744596518088588865431981060431573856367457036648979591695585450829463620173510435949203632563982322361755436577703712492336517977506295292490264019222616288563427751585432219880840087105482111779245450397033123205318616189650955498907922234874381204465570491420793752435119098402403725666715587863974299906642514688711630027214245834835501488956921729337837648826812805587428379303138160528626703022862019818356757813068133407688116523623423739752154864751594608612953156492405034702199583800826802554857352517152286824032380191653173787043252193143444677569286889082497395726925539190771546023539365143817962735037227140287017787248985911135195301277843714405958810682272180754398458809643837614150628373586511395255258169732275434585085197583853304701812791291098010228619385749074764988095826220501487157015042978225278711513063997309611819607977511183348029469281460955728165714819879559049194166887101090190883651345839872486809259424836051316828837589092080681857097653981129371385736426629476794713404081173071435763128003627698399701714552923567004324964736790494959228460002811604326258283622444029501364176560370857249633582380738522463295113732304633376253110443201292133413477652024139524369828726349957595531174097022402452531910033217194779380646467315288592438043007600859249294430842707766014161679974372628412339129506065303760807785285593733878163708794429001924749017577968219553501817489292761848485966369800188882191764060259227935485419409193996929987539277534890260962325464933946628694419255065583324207053463890958504976715821603089480833163168232866124285864777317799459157790704241915813453028390609785587339180502731553493973954870020949060369835763575355582153841557436721810391362185918275942743999411870632357589601071028854872548435972821474981555128856516999445618605936083146226463173062992275925298621597772010240193230288334246857656413009466401359440768876197245008028491910075092944395201102169797260012430836208414022847807276546050436540834417669915591998574942728811111174013159652041940933146190234077799653293644430132315550644000820496290800414030282950125160006051199798327347155728173978013372879958261844077772179345773785124586105530178420447665360681222069973579329339115932316076041790619090032400100930662387733158557322483636277670654679883075619802811821676813887077254737440437075453716693303978883117496411416206636510437903503032893679925977882618223600204595246953813138208002181826214313811003250940069359420161346960910377892795261843592398535374367545759688249459199954501436713443717092596302890836448960593196032582286744404924869121348999894834927806161180583622317180238181236654817854555629792471672934471714485437629019939731408257235074865678783127574681220990770980560507077932785640044112848282208297078236900861605413349635119896237623138141052951323637128817274271647072885815468471308198547382619982394211574907129449944256651608977087416859395809269385135332981763102085022351383169983176453334998957769955573502341672948159127724083857187982237437479467485706625951442860331334954593705922253255224727065666536470400702301875508448676658113689579918557593122307726514252869628100910119513760665894684957185312786034801081785355743569754473657486743084645146999828147816401274313121892350304757371235064574667181046897894026364960289814419676840836026322844560853257410062361092953045320720542730023827439462488952670718487607867070197644370577499994781679066607355404776572091327314393054558331069178933179493936775548167041297647645978897159439215316887571801418534120846555451641614979504240623141239217666855723844191803488219121162381201038741979638590470046681911081243362183433876747414362693152728264569099836397138557349361270809306739293907009723945196394928494223434478332771239292035322975351191119959668438360912021701216952625725732219902712656368031494241489162697584043477613198160161878535922132173064665553761301532977502168081007408393290510138539687330562009226237127617269755649947760218376423471118592578982680684387967838504584444992730789808235022691496444449038445823524532227939843625625632356407611247723729884627153766816095973992066163985245370945480463565292799207612602913763572716063929457077597805162507249456364934311273396047880691206299774753145039780236196179625111889519223382904161265028793844048080781504379520984611122610052297490972767998943262932717520092264842815550438360997646466578572571092771177897188899508147829927372050398654877615792738990068398354961951693092174705245918567921886817074534255654472260684890922317544556210007806933290226051172787643118723179891139974134715970485734076499724266345724222299399827811716137655521534756087821447367435661005132323446817929595939624986269388313885244615937520813043982227593008452653760887438286223356492465778008121900426671812055022543117946887875224994009120559639924278735956141443155326467051042019316928013595189213708460458352982143313578410750898621245213508652203844621534000632954978846876647538938153252560293246186404880195048461353743345557384559700440406484706747325323885423474208839173468413253856963822848124135588221049817697630063528318618706806018106295965471708696635627045834678858173638882392745870455297817915556435531098444445761605855550723040068834755442849391001813153022937977692038560344324039771210722892984023642528409855475910118070454788554439118816146110651622288539436276102475667686717677147972231445484093264362898369852025419929986590256123989302060262136465723397617694576756771319701851814646928778790868927513657954785641567620321316659256845988243825284576290151233418011761766341306049265771115643713658082981569142642554521135946338815556233648274077807720397676830571796546619864974009205964726460076503523167323076428433437145077299323881282775601660781107306053678527550229369890231089803462796946375535142024460097755394856669337848407869591806445471994686153051452051033562220707716623157007639211833713128631499859897157285116933538290571330171108396490921974676801645717640970795672976118599921894209747177071278117099692575228186534830133168175540192714759789881604636535062378470115768969087559610752929229308305307129373452639856210303658514777862904051126321934087175291124246829026459518390195450673727721191088975093909885788092017538080798727011933697762256189181736197004775905002695964058276623377021362212740679329172595330877521299707111718987495715945218833593406014567260985761083971339349173492993572148332456437882514225780536914430568327546737263917624578299907265709606602601933630681858833436002365650104511851403832652733049616744133576656278918514791283572499553660309120767488396573722808560761507599751301677945871837618948612755854298398085819035819929363569575388551536385063221555497450525287783867316692796092094459676480262252905919247566247718389728767122232056378628061772919521539617023890308108092658863793562361575256202962789536530673754385766318451077912743172650506047174534521251061226777931385950934481551708655446293598033607385021252413566995402175195518533652369410008335395068697792428739375726831204774178214576099903255493229673173396786257829125271298974877716804283352526721946447448739331481193023610689466852415381362841573432263081810763594587346922645052647465705786619657152772360968505160244464857496440631799994300781818422551136241978817894859279512810836352099615588156847747597871979457592278538760273431962082018921998855118361230863226867684069770034259112756708800041966304245696935573088770020862319673739515171964875645783808265167618721656848807744741907231651485605278423754537376282241496028962969750339033026624181968033662024236142198594035822241750010514145812157442090421494797475192353616612311026460958073820415595234744801899653850933058643507101021563508580816361624342028242159287330797531152755528489690441446375015701051836383287479935632138866544938690530163495108310518107863712921164160284985781225737514381526866005193803568869878930084099334898216139177394619325577506804023137209655079886990997447057868776030079553722996541910813060479027173663247879071678066942233562535739465067939728313178247561973695767859267539317378053829164258199271384729704747086946179208233764803710153043033558610438835533599983697439568029123059307282788610762971389424191082314803276522112216098206518680553559311000015944432434171644805551684775054655259381834271399392390712955120866267721956648469999523680880214148749296700321356189074292479078322753781954844659314188365612087495593895238086301237787427722224828222597764644171479809424011087400537296238957435198146579976318438993021308912075671657344436217644626771406822061581355820244097899993212602751331882256948886887037732234274229739820985074979899442543098378466353959672996984383055546870026851685724427930951167580192521987901195539114975824422568802293810328163268326185853804538477113542774852105483920673788698192787941940191444225230804612610348183467912423309465727068423878480833167543712924808938522750461003870026407693487019192952239991100037797333563091390521120985746728151945628483764120482335304990091207780532124062582592872087491178757885333778032625342957569231710296457889165701504590350286247496686510240374758616014814515110628768897071966232016555821975026005562390461138973363649502431529465279881129751318451348643152025930473464217960509959240558352808914173381526967376209700094281105698286889528039728344882764797870770631620061420658418124689310607301734501883015636403471539437690890818135188396102855060931529664337890628250970905429250789307731479651152219590730333247886229266184711084973995695122350308600339618091710568348315839916273431590523545498996128110836137060974287023466262385111715666483349114191341432186345417532017009045819332976605162923645369086243393843955487441627822800834201226186251170043130503853922732906126807918136665633497208477630723420798601051080837653600798575546776702084093660487912975078195279831642520279671488148948755316299590100565823536270750448477236382731807434873413287394658744327941716165416459702627020114922957955580992107142594506001600559832670205364629683201004006478479537269226493831692195147031892785902317308530661394830438187877951778350004334245408604188678744897451107094484793425000882194126038042998495998249982337161988765104349149279559616873514089924001003197210564750655612814392745933518409849248421780037684028353417029470104535507566727195452884178598724645522614496547345223681654606045418775313195188638705828957056304094735925083548647132644034243448985484737864692560150307045494244207018318729118023479356984690086693204245478884771562824000059382751881813569428285787854688738007647929190541676025026488039829518342125112205121940263385314336702740283908770829163291226102747978306637210908765325151203131530884030518582757817107647245645303428234961155929713749122022816339104109937597449442345547881760593153917480713729684924284191547194777482086479849241041004598302924377496376427232727043565046135416849557183201809627228628826281634889209215082222019039882192274651720805142714500951307888172518388873217843449997009995578187816720703896607026473175544491228983214900962544821398744071983616073111719892847829357999040926803168318751884826820500510224771757910098027412544015932698977539304929447488901395349102659337587021383630539878580338572575205708710795988539804751237958105490829650038454221823434753361692709332026593091402981529662438621628795468519092307577043323184409405267106082901001407262276776887634557905579338863693477241747630009346756970363261829421331812236655441649163921082433842851542207638853441115634616962217880373897675896544568052749535862847463505199001159555327381986157069514917631203380023256368988045066524991328669357906186837967865361159045342318629722464654198606331253675611580164934499921921122054671521383954646419653739084548971063608522424083706133055648742422276481303876710326955084543488729519557709570242004691194622403848211188055865205283004743653556779954776454475142067172870269811002131172566583877866793535136247792970409115273572425434681927110932087672035767663956449767355088907124008984380054790719661495062206498945579955149820024113121781226693504628690459416975641333001794739626912908748814964079227734719169013246646870746736024232705362897535179157086165756247274626935296115452357377379781495984321066934840198792158624046799080165220739313998547694286421690691043085691534601302226662317541695884583749105196959344630101768790532578578971981484148223085315375882298941891775263804205848627669159675618917457571028973699741785747674277230794653054102838039082504657003634055451656175393231561627161784499462090948831990749129050689736858829967636583237598298160421834096126586965033858791294788607011187746538727496221029705583757681132213415954508595690150191613739422683650599361922982656432661006999721647978503667871457124993603576768287458238751826131916315756802980442524405786266848891518661383892473431353170749267259767741431967774647865763882096846471372994825969038467509145881860796485585799648659126518619641723557721122133239288543685967858051911953770558198543824336676775199051064670865375385339213049279194830773379637388363867682975434228643310086364716629339854528412414986149519340710755840103468962588120843826104879737723412479710433291485315174479101413025182241543084596915785044134310718512334573806253604284503981428749372086722439705683572970473885838314894720437324753760057104368789645559707369362291497136582174617199674575161275286294604415292619203623105672204470018881756650755636132607606114306905283752608025799728647821533178862259091544316953870569660503327334151567009692827479297512272497753966131865441730168086952973023572991439980194020188278513782252693811528348309132968764743341750342929438119264588095594005077149814140125948130147766757069025028150523654659428286733154888812901984649055068119327866746581374472132693985695286727731991669330542057352362223085356497252187880203785997324465469841249081106502617223374931061522623173783054523409097889149865138956335251485616880916354545990136707846584381281244133977876940396166686984564774114801516473276225923364613986193356493223867009040740989829636985825295761205808884631954671104089537764438925506504726776187000584338022320376617497729682060620839128676530858156663773318929482943759147757938290587507465425138681861937561760767827518881390229636297256883976946545316349035862068397199466037777706330962328450281738157878082552041611092381520919986996099308927443855045992310888385945808575072360552679327217474815879279299198906991205869176394913338130445080352403238875108306617082399978244220815602852100775594821226620638771011231489508439824599169954578610610759032465226717416762325881345298466812104186644158546778280192372432140991333497759246605234736815975208636527506758198979629275505480538963213910820621703827322083407634105385687932406257689828483482585713941023012241698557798319980665291742105462849797835791584519068977709054145037209059739821813473727316215389383646614833204964552472750312150043281512545670710712410294405827586566895513208296803420611450484242648115854335782031598531369376094419227333964507138521012472170841564616228013501279642619272691186129272393616704500584810673274279176820133803625357306360587791663521502051878081647583020425653508265720920183543449282412390475011228571745575144301128396363384024970741611367435160102094452978761389281815125385457457995843844919244130318435637907610830839373029734956958880099022410045273404920880244462372447295153030026499245004222241256095813949799036400186054293519450185571449727955891873261034378601614363036452848919907859977826940139692283494634626603491010056280034683805674630329367235993058432002074118332196979448896355169815043863907221318592006710529992802021188693975688511689649678205379220987918513027336714265895897592087695931967018770772002800111926751106886354307879553076220743077467732547926593720329188182207664988617738342139263147231381701894187684039003390736607773070027075791431379755876019097596691492758132574045646158879348880562390988151396453559141752785403952232527107363056436534592676429116928861505433149212664008765464369173978230476838519727207831221075671428968420954190661673916678731597421775374860408937032701104467513926856344014681816409540002377589296478648535685983824840878629776111596313100969797830957368882957144589831012759990634178560340554945513674988844183687723310753674861804554761387534946207299574404468879252053828273174759539862855587319989021606818112452799730753424030893771788279615246474064031718836393054577963962363902587681775958977039385467637296140019981445274040864695340168605768220950775593697427057069774523533146858431645903332640423532245103056111855595631315954983180037636248860355184494359504307574211207267524106688869918400106311368557544647228037944296189920064758444458058700894954072360661360026943001287235877252465906370673044893857650560772569518225523763903692660891124398727034568776984014130089704147415721381567357915497094391957738782586563143797150947729286400720577630253199093624565014460413907125008182899910966319031682608775364636229024859940212106067329864074324416635835017095785089275155752815958546250676075478064739471824178774250340971338442469973797830778899751067442970627843644320863617366812090422574062314121342063303611517103852312777293355601270388336627738072026435230516734385290744982993474333010642096728379390219781596437531480687934114743386344229524388605595902076390342817673537609446269688770082348442258239822123817751306080812709716021817280326212478911987920654946942857127876517296669074885700818434480516366065764340608666309603613925128827451407534893959028756353536612199266519017896882490930502277555219480786761181334382734971515286586447349885911003915698656650442061075879684943896655651212974619450898574601007613135918472525544020794250142167495078589070057633986195073926209075021202914885291753989481577976676745472837900572426177259226844141401098924259998950409761715372415567865694311838228021039028716465704832916724906949834912511342084120303881428969373961180841634785983821535067816410382780577508628086232891829029829745268270332217593796914917534952596766755247460616530227805772453089198884144157828578715586343880393858751168999658760190239141075621117317687207991875766640922289624447126069199219152278744169586185760778752024145616134459745232213981562996592245517446782876919050747743998463921425754609036096089942529776061114563970977364336215106233178154418938219860892749660043647347365627665018934587780783582455532677243252451907485617781953499057084188045042921630091708565974197547622265750351890366599770052955629469254697486407704105447749312586051193137777104631111026788350452810225231704648089531342215856473689890919543907773581804170441715148785018330838952787817392832291297058053622293217738019003385225080824098027279686036072500931863316074414988044948986953199581211561560767227006325943086432542896595808188188169586315457087507385976785580293291945354662361926893232064833312149274637793529369869317024740705977799791769401732692422102750902708445528525256069046324725568964943444148858484006925741178952323805237031567511458391705783876127766315533463134441761009132411846733471058613626556789945403129539332551192044055973851593968897319242790714029507616390190194526062856100553966780063818592600295861830310054986251737888106627136388236868785859525925903503256505624682199431127080988927249965359572780958049965577936647149837438610193046695188068214607290296779902017121619367071394155107113430121824241126701229831737436595586029064893964661701583966417868867781415708834753799097538312671138644544235558350438860648685025752250254680225192023320292598710622538872613246290060870589194051114292959302533269267584144365797783190794431521127742962480918974739952511267772497691094024528857860019690791964653721327049377702567581813645601866991075453398951242249266981386302118649863786944989383796348747862597120163134860656188667006351630546405566409466361564252887466020849862526487087897209362206169507183744203694249163797529492985773971769820509050583100559891812344898978769570331250070479552484025091030208778569408326914090751939911820799777752176648251193431635620134621711660862619805095751279422453521664870936001322336678641227902724966986295667976891015013419934842336454598406889060881760901023291655868822620365153279408646267650321992317773561741805363133869881385226154108455529776953629608944208493905331769906855966380369862278756579860136920501394250857915090878516637461082882886255190208864786460397212393736983814294324128931859135279169051237086777207940442466265937051649587619297232848263617822444627983977512313521109290367139725127143408483289799347497727746645748939796737452983877885441040923089376267730985391997242542424120602549049383236887227588306926006680312331189923253040074563959406390366168626792328799538990170096791961402582649697486340120268661331291717468589523153265488049244608119949450774845112428787151050278915321146949711972206231071062245807713149703731375728480167288741660708004337613990789841726504975085608098130291425899585191676218244127492759367496239202997267463401652938492861858353876399927673038311716104292484773912568470670757769978487761990717380025939081475059194088314313580865244490351388192174389465701473879324111435935440671988839296467642127872965269650424809441835484830932979878763286097661870968832448481210087633251943084277071510723076624863111448778798939038513702846433176338761221487938641757626642256885349363747576965871431569797037809126396805264680756759732672199542300993666888461734398214423385244600920591730174124563102564244932091548879403277584081953023125720797589446803420513724337162837591714627202626030861522003154371437249572888389493542407786889639709560935364306978859339700724696341307580282013674764592934628274831135512193574764953042188226963335235731284877901899954115326524685261560489388829452182627605354706505793107731528216202933790590293482251101731173159904083283206609927272063766410151271068072834897066790352596646747641689661868879423142850590006283312227854492759310007585341873988596150714492838159037933484085852747815489961634571041164865032829870517547135361363760703302863455925664609695806228653533146980986544801963425721789575676032081484264363074268550979373877964896056919793965421102316249396705760514203116099626140315017075705789657760556408361303745281584036709247272245131095207664479539246283651528167788775630111026652416142132016353784783043460661811423443901161723906794037395589949606521633922539735693419672507624348021214585481148020112964837727945984263833063667535580042750821361157868492739326499431114363756821447550831318821303720095412549202206247328326136768815759425457017296333542130723498800351247791841125075954275236876284537620085615066122025739326415770031760499107952922601886921702396185668321239519556220318957004451313321526685886597518510451709044254520503214381245981299081990781596848537425221383003478174609276789836753786783345787458242294021903248366394272494281825806637449245007165231161457851872257499284057926387481318063770214952784223607747906079931804272653260629826586543108218535401658693522150804544391032618186662629816612942090124467439456798908767157360486306059468356412280576480877806521269739018251422267778233996330389045902650684305721450315698517658113378719360291407573480371858632137789836211026238418735942511559007714820099934761842764370125101337875525601757936562426343702769033221124777771175534526018388991672724035549221326700636840657604150099632712918638026706168707065483965645160582602274372181095689045685075383846438938803344149740537008793876505823417339635878077856725497854591414445972987611583669229234235970286667165445594593062558789911193331819198920244744282849952278689100976019787925328970668122863594275680651931059399528096971946570950208748484747656820288551000602395577845405968706652243710632840376915747075543278582086474442693356648349150890117672662066781800565870763946604952533649879922077923519320669735381182061192303236256708248843984817134304695063439837418159403938682244806596702744552825539133791853647436293400578300144946316464215985984113267194462320220221688753042615910130922388700640668223698301562727949542025865740190318091268674198421835734605899172413925294840672723712527307808937384397853353047590791582693008101339417591383097749318200106392182056914932468747690652604010863552149975696640546643438149755844134333704153115337630125132265022340953114043459834660258521158400306744368102653434203860239658150135742649920261246646232187583355447110355357241791892541969433101425209516025044382270651707269271107364247858684878947576513419244124567614057574776302395417949945041092109489767496550174607428121177525283402545011211280314535792880284021934721103562134354302704293752842652330913215932953071249805118605211621939475347923412975200754565914820087127588662717408551805324210791831818628107646340843506937974088519259771170361678832358218446211955800059225449466144023738087027019422112045371154228292133640177111664767051531313132838523464859690893327744277870215393545889639898993946006901331573218183127423724017927370201165768433313921674670086241558087568119173710563133070102075687172352523204037567513134517151745775128877933771449626411089576703546052158291932118091243327400023777547919707890846272607182837051929326738112608083980616853210517912552554305448930648495180288569459967063236089876742559532874898415783620027290820610527980417269326548373441961883445804404882397783491792933805855142516752778845445072718642670896451302299091512100647607092406005353908559738733208985243642934733123566912544565258051270317901365756240445919625047471422765368135122786607745664769038346959002062419485020062548557522850714573587865504964641084660994339439330292781105626679795945409217555383266112363296719356679611902556305195944026132065508712457949741538126346427937933841614896039133518972457994655284248808999360611033908506013383635333363911671390574930674002681005650263487693815611386068243621973298726745241836387985155674000134898821884333535105511706436907362651821864125939706979772649006674980454106584392346743519620694838492909153358838232782977735337464414361712996980657436453096849132943659733947494337913821651339860241622450666374219663432018695352385892116713842199080254255389012600474452227127205517745098675606951284461633822922233256880096435665645168075920944493325560378788972725783088531885694208712847828498503006824306323649960994054670049495527265470666236068955418023002893449486517205580530579600718443949234054157296181737659214323026121721222646474515536855244357394938889226577901228006917096862150830575623586249850244537047925144617928751660288479401192571433666261955342379280882394524845335517889825588238351319089608473933339081785007466984157329840659512700240725424714477886034170110857823366177124650765801178353391906569329831436632250007830049805179006080751932895871977665435810758325790378072967134535788503048537124786887172547972049442945358532355585372236133992753121652198686978341629366686678224136306368260874932387557154786997516003833108017981987286733010942131631468418379646204201453691794305659944744225068370781716880094477388136415421629868871637734646881177197264272755463403293700211276004155903822621939897313100237138768211789000217910158488036909726157032289640495283369204076162167286549910778564731158484950622698194482286232706952269969089545429138315861209145733180519601077961866765039669707513104100348544355379252014276458345668035678144860005981511259685822492201523929913521363093163123729314331675460214055326620823077375054367626938139976993666137785709573451961160729824942957846928733782423115835615866564230270445535736439791695962283986081498644490375745866846151399860297525375545117906856623408843950607060523313432620113188265400721618441814110411316097818849130961031324850670400564531574367031673040141906656359345242679264935159060052984287716800828629836759751094723859842035813295416241786627138332848941844262329430987973037167010309858395160920185806819041694813560834764288133289739200851043884282139976203316825573570802837679065173957136292978554449616754263263166053973799654068714960985510900384439271848247134028832396985906436329423152226476751842777502552926333761793852442763604471821228487612056936092146119137685527628856567281288536978453405295732842493953262684410799208224327535913652861642731298760844684512499781765842968559955699574649182254690445155923845569294390564018480932727105289353979803577854729002760406501451219454298622597371862471749850903317801253491108257420579673151743378948461213933174720755471502231774457523438714006627775461869535669132744861104068431054104070758084418595441374043534924496745463563210772891852071611381831036820020314514441529193643685339678608369974959883797612417124449540519298128932862013145587541950702591118860425816960873133055257938911237738027034021889046200441975151250103461610988157765735687287303721244508905713027122071277162718973550047490796508941937874341826692149160306247001937691550205344688270031530222642694705895759696960362955952396260519182339992411229931687356300869455183018393474376455937447237031057591772684011403619648775783794001304660317284172018706135899325939456228764092906485995287243633640368945226762115928443658584469441905524283787073443406134971507764163810613074843367987196203135837418958372821559204190314699885802453201908798075304212898350670246755796758078673943908252952235386854849039455532106358636141400810354617331455581188098804931511917432292830296644181857635419415891513122088383822391167112755695100697184179488146894311213925269712744057667798620280644570198515750413981193562949948727028047455290345751003919597415182776781377988217225097504370012062160208742044331123822071890869649162493320731677858652022699239869917092142210234421624516549714916422965594271564213922252982081246573739423799864709294140824159666593891212118958398961531813223470377363401829148998162130158414937809353841267485208775336334955432353295732708843499084491046342760633221007633857706165421992664205007612204012845869544518206643501625920538634448628910295833548637170969814994562421325557621530769708056776776494317835494044938336624766925143022468180181212855063864066618928818722608998498030791171670865009852050493153520315008932085588007325349891969937189796028701930777226301750030681835769803809520066402915518875577721253921375222918874347147635158341981943851403077674455806562201095663096956553745861142604118721830836682861472738915976588580068021766383090544004193811349529146781278811817290979899537436295956169498929073841062004483625621508136145439453264948724358300574154638290599010498691567948848175917885037420071269543470006247068379535506492189160811590288862114596548512871832156030135969212935727276273614537266973142937329770497956726459226748491564065514378702042070555969370444583766570844631089893635500168345336854845178725594206276303903148453688578944480495498693644853943290769006127021762679306519866141698733771694586352696557821772886056477293632108025992504635184858711855475443821780810444625272104170101819296513250054577846642037466738848171885068761232316323617672538936221496065760071427401085160631997619661879986007866698969433872146346671604286863851802221881313352393391768941716190902281900304155410393854650964809073439153997751936176712130810178914172956690205088875019922896629209555748981258816959626234708849144743798369654902986515713671851860944390526521608920380988352565409325569478684931336844990880030782152150704330664086310390985875448079881485522073148736815191920999849060613502313434049594935108245131250956510995711646517299118307742009163488036366769648983272424813399918745478576683253026939250266055945480916645970496204953006457577543480770334787293241715346743955541331724069569631017561102484132636201012110587729819065569810507941159509204701115764435819810509650372541716758634189272905573638836790908841824761622573364476747412193301039145802428356617578143946827220904206204803054542537438812690841089041413391306167351633815519856531869758702687174366718987891790078471126142509702575220782293745936761773521910189478728644966654253799981700141707821112850039982029800541357980536065571341457456007353262064516794363062996706773452863162535970597161744030113680084935642361174528636655764866599909701069589417765090965626312149116991301005712330341132748233175439346244227759508491271868860422031717057430615031534026507633933123258064181488614413040053036791079690418603983131837847267933314798839272045568309396131924009883140983825063582408500471231313809491319654262650797353156246960417914096293497324788390748780909283856562931039457086829470460476224687679569437539153157687862186659530652062791400012087180327642566586151138361944406772532469526590762224649789633964922504389352627246056983381299651183689814724516774875826416762626554339220823872467350743855789359533528822105737860358032957723346410353534530761959756509733236338138657367246894119764689322347818358001316074537087011949035735224986439814333515333200070013490114247957262326984540958195556462393498968124759402531725200041748084958154380307274201249913674334139815858221213609390577831684542444450884436570698360787175241598996016769187363535748568790793382562186711725665068007988996108396932461533736988767980364475106192186531356468061004973803130926653900017127590823448393339316563084182739856268130103922340072649693650263064317897267077979173398658055816422914887793626902843086896243376401662349392011717606058827906701406264447434337276841692385308020979292547835636351451864176680343790614629419626737847095266241930046565973282755591605222690250633507474825250782606456068951786307625420230908248795315232630899783690852252702569875749170637522323053187235531319255476810912074526159671975773526021046611827015785385192672334832926739209914672281878496426254527190116422389328663904575444861640740822667530301397859220382909150289425780827175419430253462809168912908595867088977906048552967017710241175018102513607943514761093315244250308914948152780356915392681017030093090403426329011355535686690188979141157726664958208359460229617081260501145942432187571873706702112797437058198912894956389778367715274099549895539271878781034024112683704808000368660986319340924937871919042714562187897657074126062750422124774278376608642621716178918289570212550259326846124847456680238192902018564336319051791070118012601806319526356849546816657538331902605144765239495117962679299321619796273700932082269916904750514076940236664946857237348941359651767393366243312521172344537747484902665528802679049522976352079592354114354859241381744376939088521811047112240323175040107288235590097934622027072458434823277494849398894982764553130283474620999464136021248645550214666296241886009536965961096170923930797164006434795823716196655194135539054306156786617467373726069527432267098923651500698461582058856911579212792305912152192266211799851775641489913321930988597784589434405648934384414172522891514378694515871804463290443648784871935544106194813829679316420217631487552589339525880668474705182514578166443081269970628523741374008869582415645178302237973498658800979187458553742219214116236663750270697397584311703913841440136552374270639997685010957708375252610259084756087275916781244222534768439987416645692853812073453775336106833708278502105336572852931367048309988628576923046792648066348674676221912462060904093011629937816956705362973611226335385191601578222727933499106038249027664181076765016899178569163799765558983432054424586490690690272500573799108100230046376065015141441210943895561716737571988089212295138159909340804798093985809317338685471967849547647098812394609990453247140446496720728564660573105165737446930485967303777014482934669585895079851550717517739367925712323739925754320728632071159645879187989986098765347786127862614701418790042490854303697499102053634409698375645327033592779432686814314188758829521093038314635261747028983479038348181491045642728853936601489211967072506914806971780040777978662723866577869525164397425237882866046700448551029896156771482710428127236813740152208054717189787176541418324881951479922310525406843062597213154140973431155642176584225083640117132173126011525535615605886479519289667660047830464199764139578938317413277318752757853171407293549467817233672646804805112254914609235478358879069205097405768257830903781131671139119150470891470482382650429103346942235349349495509065786563244538045816843685597493604074731485260599245892697581798897733668214050646595805265663337442707208880040442733508370331268339639152378984527317001900266337697401238609421167703175559005246914238841360519654689700900171643892072274384425208474839104697222568530366162807985061534172082967535490695267952276231894962115855771002654929106129569806782023523576831372049971690386200617261749085291680825869031430552882880517337048163689080072631676754903999502372130742517485254574598151747526295506748582936964210623953875526822397984844421907309789578894176414547727470428537084875803617804416768654989579969412248144339042488370301528543644555429077128420319759595071908657677474197905766268444238643673317240911530915446934510812217340055553357472467200763671836605669438616383187279993213147743109473979734561977503120004909268775346409855970482292755555625431952840315584325503112891226677882411655383970976264931551930385226860988726998233931436508082707066917003182239982732349487485984569957173511548171573059141891917777094327529104740620188504035099225379173032070493539177538448241238733962819005364256438092239104993145243401093612409740197984280845586152387335775663620441589690571336476873595140295073028092095256988193275574194804245785357518099409155410324954073564433214011292367506213993747601238554811211637914987802392611100887061551458558281684065342781755388587808241989218199499574739921620935201894975578426870917770741368597342371015500022984518429869307135285208527421893327305557248852880436272957762711726412524539793957054324753393018224539868084535453428516291057942492754566989964596745783295888844917801649631890417865521921629669822882720952395025912782726746731200814682811072385809822973498559608516546972180980062933417860856572802516028756758000324524224664550502324126325981417622368925459539030065075241600765812715172197772519101835822085849192832678850160051664343396941273305887437260289088763877131137192430691202979567830608581495620088619612109063467656193840646230746620338185721044025711245944180181651469298493891309691750978865371048233351830854340958879782751975018907827593548122932061157083890278251719749074420332205654132638293060186273310823225788625007705700175555687584058405028806126180789263727791869826754381938559539092609070125021861622708656872403569415130465548052747224899214252343018815081287142128798101604706019906778667166039426147724927634598242144316237355285323631552737272803085736302188392261529202295665227534617004787069571313322919274182811480111405765706361596258231642767419350014936929692978580270735946634289093832204726026753743060743766483669331950683347200360169391262558931344655640421430199129238807565683341318772446601483901045438116130758536887095767658804886496849819240092149176470013685486779952458737434697588411739942794153493277396422243978420243266365046504465659040560765523428940285850862334445999955577943434833670128298808086468141501665207440689929116200741981302386516853733389866887225638891696550469969717102982827791040929464080900492583956856448059637212137998400639018372242418647863394384072125468891323113518202777092817957701027504045461555239754285494966926256708924949544485357327347007472388968819495472509621822007943138347297977904976232927692680665600902399915258981563139038134308781850265311616117862326607978892795062591598022303873719294577262335862189584512388250019953707784832898377075283489356769188100577839200243406669733540762019960875890199353423717840700121892599626799624967610418712955612057136451365349628872911060445105090375073757586347012684779883070915692044546870545253331858217912918771438548702232089909002220684745754863666831668621166623297775013127256066918202954807245189422098993030406025584490360508895745909610345261161141665027450428922571468447469448639663621429384161134139308650156439152783881661751448103434188097957772670109567245098423677101425610497138123658786105380613300009754617175453327125304838419383056613715621863719793018727763334096265444274380720121793533474326764447321619528797521977430973463449457294643863644247809387819626924985833604723153335942523975662425754344241316693045091038070738890021122144984380954371821435151416347021747552598610786321692659779335426656083555946651368853456443570383454061570283346777272675591375876876166163001504081797962894004095657041333505851769992726207352882254218865070520369209844651364453366662887891204150095985508764443010178339507470677816044832263387613663602752979382912978544993132851361407390793331406757204958366130960026857681605921476863126031650173659329789438833557715476101256419860959252814889576724361958408337901971961132507781121641155913063999291264709027036321771809700554190221279791465836380654817286085762869901260934830736565412441034315932414159395038734034647196509494913315913260333396226197678732067218861990066628213827925240617003376455210064841050754250265440895368171408921227630986052362200319449250925366568811091307785349848679095030916278708469976870085763403623659894627024322546459239507460851914788169902167053053236663456143305656304186870241944659514259255444317080432971174668164642442672957230234479239925904889173563156358602524373651121660747356249241528369603575719136889596169512492419778272015031631460459069734621535963238667247380601835099825582239507795989872830018740906910236976638334815711817483961807292336837380723097883547030636729474454290147685910406631494518029439453965712735192289268134798419329895697794408664026506189488393597447752706951042642266744201651185312845700479936562420796751524430420062908700673281900245131984924362086548741312842542869867732500982863190970226089873672994657205241622900604692466285098357276721295030050061733834496877960477209134837326837669040090818757987215855010697357205181492928113689128283902094796527463145386893413555609906545244093001378520467601514062481959918364246971108472166236220011468219061153146717531302529249594765484687729467562434266267855500296768233635472592831571108769533489108555936806697585310562317115104176369653807949811422570531464371277531368249146407706640771728823844126099322199943858716600936091385549924681042353218381727488261649562000024847230634948674994364920710759715648500910207623154776389492849007939060486155542348669680005295790982189753323412308757444048976153370937568018488483075456580845859834415731697952000103990493937038565987188089747138969236964510102440479035014211021002545676714648868738668468081587847580378365382848822429705230314026683418019206062692808198247452690790450608998217868202579848219462110567926487297373618759002190073617884592895071229700436198253614651612332490964043779548111852338273178578593653560376496217333482354613038995388540722359783570985329558059294937540083157283888500679168403107602810695704867514757202761854256909091335290743358714850314670950859626609605914603716822010734278881798505080744492021450229196811917070947986916702211750877663693469861427988771480345331417325708277968880320303223698750677267800839758090719759053851152312676414851689857871123518356151714291452268922310607807195936195364539595363469128978883460626344537668758095802302093482166322071283707858761647788755764709320202588909033605682129489649472334918751173821969880989152270366457296585306934704569051675669922644789519817313450197392539517217240757387128063644063600684407216960378637778136956786447780943202103535565102433838719064408041163326166630104198583573348052151900209386236542049659197787799721724296298031695744525140293006207280394357334296169106898017416248353991578458684988017354818768146343243916776702914235216645715858255935290806978538117363073453380791822451407437687596758870499777096202937137094137474293440809191685904652832355561335409850672931835426312502660005411105454329560321698081442957409303658545037695061170711722950481470794560327680762069984753328614940500816290800650678777236766625144244907392319904607639651777515591657036503950499787369330495261415556170857524078419476740926368551912333710822413975914929280709475142650875596436907882369221345310394009086889819490146223491210196028112784173469221529600400811937741085241940823828654093730190019052988226446313601388598128155768301018165238386213400237494399103945793598973001665388642202601347428572485637798788401940636389202960934930254597824767596921692114115712066273439596752441365048772750209905394691099637499841417503828980947185217053753191448255807353212277990336629886338615584855330898451870762320965756853411860167312941682088622937941104734520962917840694725578337376480805888726033652753068839559212130450676590398178213153839784613452397812544896915535860583878418726483886030179009562286332005856228279556027592469138613739822830510012938439276343202813750227126179457991344463979778830613889890815120227213025739690870210237693122571837735886873034592087461486921442182322250093647465369749126233623080248330047427588536959430925428970133696751148794377539796182513049245948745270229315103696693220780920070282965593028725205545475963506538743847593990468840136382453297636568958440769246613468249985524660391474360075747798798185579327652594405027075219945547425798123260428066927475977604174553965932766491249532539246730659201524147825660648390843973820941455873943963639906144670498579198963521894099702957704686725458797228734507964502063323094669201889712756572873987291543389993575493661285480128874291744578917066955366384776227161154720721476620826496774442013775151839657830428485415918033584682093414612836214174214134214502218050962899883227324209420350493026849004192450107664404641766567722413147381459094306830762287911616509161062269145764733781071814454212799146525338740723183908539670899056012622588038100902861646111393661461273167247995658126782359430802859695233214082706803538925045661712766715390861608989603450340249771770749708470681338188877275213060793763586413715043109906486090166995801265901060318972996217763695967376803749641505060692554544996361461027823585590987259945624560004677758547550315547072952474951965707824957130477225741497236811471855728247130369066347977879709285042459207221974354439418871740938850641257646283056464767398795713136308537294950095933342565748910122482251251413828372826543781312227024938019095737331946833977569796097960929089491307786837863528947484236127527290218968462921088230142927311287431641934623006617811354109347898952862489951975544853654590101446652753177519027420958645582612759742920918864219833329366544328943628750622610842271453238543522089981819516059077533571163304315870634057348547044523544530532499526371067010555261936806005856945180045898137244655132360678452184175986847751908521888329000479793370371329144725098356661401567552596864040699865523586436648436265559618621355512292286465337551484147298240224684575044242882933564274448750631951349702626493946111594352927303911982574692485985794884266275928822429313328562538528383796584779226247704321205843374132659803823358981178236040780480668480473098278411234797906508560093339935004718298654475450925985324592183195727201008175697258476314911245458506287342559135504970559597439976209448305035674934856940315764442389682020365716508209343387995338075835334208873543058430873859376044705461135983817671666889959862265760229182112002030727008801041479678414900818565284262559122849066010597274511711292404166617216099035523869492927055546583034494986110452946793004999310740028526739392029300273108423181090318053118279728889421763380999599955846941917339613186091376917730537841005090201708820582493026775575101047645556576122757716408196038479238608566457545749808974920894750411589677605182232765861045978436258547750762983973722537501063960224678772156493422243702973323889387822991916275386213333792475853392526419895531024545492861210406683599410564418250415474643431572736211326807785680759517104689358234454947661881293603212423191917850760920992456594506733330340754379969720281715291121564852080527710144497210457767007471076230111180270063353343015821229379702817505250471096765743860875667559405246983855411759541976256157211029857022950031909187427587315000352329218061074695447565279218147449221606282392138901327742685752978359878738683548894794970091981177572013860823563392877468359127772681037965015831869868149069085599426483162034265253775277296593350653525392878880600855222098735912993532727178462959579818053285238086192214873227890321703653859535337018269044854190258944041395807851424286462750653488998901661755966582286273122837157742002547408817939391451727692843798644846547892851726035972711513940059240763588293549902344248844643113313980185215947517298453616403447328010468506013053471202884057238265917839913325823187282889638639924725215691628021008834124539285679034855369048438120743764444787938378622405926996242674832451311148461414983496648529061933775869939769215682276484359858711116020411274178184541541259565586759263205911566392828179149215036865172304347618794882685034460946215781654268572588774727186040414382081476351615919459253153716959732422630001751874443108626830838745460948212968432607796530451111970352178881972590831423619534925413346535482894784091574253412619818664449570569069835245300014274962219379605748346015632067686547965383778850394956925560983844381504685180066631092773067411999017264286192405646846513150067998613278188642905185160766293401454948244272034228877005012793375061027789345280675217433843435063634607980959296303497129417852871968630881266305241371609610597518649590044403816411626478025635282340731923106701217042781633167583623439286890152217716302370290099501692954884920288936286446465625970450296333607313355438889423281375382334336524373984919988025982649785103251082292761492811194405269158222038678453023248786248403671484825723832312930715148031211166842420101775213806458888351622581613828929359526791454907614933094854229703942781779109026416139186244116875061136315848987840284899815932710176544212658345239622123395459375017089153416341778631555342294468367225504066288332757150249965488747750402737405511617475881619302456488749470125159007164157932395966516421816435457878690139793522160317869794132562959081977523083846140793993590449290251553988626510220226407215659565110624836171674513697199862485923696823731674790416409155483338521343456273721598412144605481720477966103990015010804373161417168951014094382521509518542276892441674044299785303047224501853634707419217448885402184961642934915936498056317040622714501359758645306300628059303717332237826528668955725463973766081622725221449099707176479600878420261230437832074637188488611520928871176725713014156476441262111214310535750207419410196466682394583847862769104517187857787627581087355386414285358006012522945096679024116450581242850962362294744957929603354692125262400181490788641584008314927328798680219555061463793489016186345305939315069115950875339837034859437541334681167997188620457424756715051178353125268790478115218099482439821187301287972591331860214477970611307238114693653528118392292263958145345029816755741425769169989277187098669632015322855764929624733057557561557775250560435119430558178130464651771977975167171416187656178922514305691467686293056749498644310473950567730913085434890186692560087839176388465463254298067582676095808514251993874864760319548038243453049884802886495962114698634230803484577422307588835499503493129352455911956741636231485914220585462511010555086164077061006883446654129374140066336031453448275770647063300965986158812781549607584167029799763371385820064285044457132532018419675016944145661772596959077347393278724129297892762461734615474648862138272883591404263805946403595739209928244170887691053473042316647127163629015900638218034136139921818091480845194284884524693646340959786741393497919976409115513411209420673483557943714478133144288894912468776722774763813285951314688454928513682225962587170513999065695434296385764950676603177946252502628551914302744171460474950250645235788137523292301957246618290244770648384496450853416598226129186057980234304209468775531737870048635133381436278122604962491810425484597501500329860285087986452034535000403594772342566007182166517954544040860086103407487658482433030057802451180500177679743767279849809358810973698659702628104308554031669947639475839350871268239054947630615566398388266641291259390519370577398591483561738403977330648617366211505068875304069352149801237099815054872900549206868765882816905287097449744735217348106963992922449128456319739325567542591539934592466523154373266139065508763524685505531154702996525510609384648268893482507568142886683868532061917942879951441684537847498318812318397609671976031338949730380106622717237006557985254127187424260443603878946477331573160475672427898921325129252936001322808771133692599644390065488535020157485562367725837979808715961971510326179195087383771899718268620721963842687057285207242546140369252882968951745457839954796887964642655092413414848205742281555138474165201539288183851467901058539318598634591557034064092220466684378763807863599756331860539002444833722723432996870153362050376369049706191431993994737842547195628384047004240277846921314879790047614890729659024089478670552964239332898104546386812997301263603092225464086665422164894422661429374034163922583983295640572488245693801582519930378500969781449049607081561809129817238819566806840079974457866657595830789907375339414970980832270938996264966803890860975548457964676181937378501654250816638260450968790574109714879803205246330395540431466266877781779474630682293272054342456164825282793825901709041536087981806395300155793638303659854592848899428542509713701529913227359837747171993002637359211378110943909343769480897123576741872372011988677870454366527617528263839398981284271272817055281604721605840188536164125818672039849043137954145170266124680078207444170932937662285093440983198099181063738988563550062946971426874914499210277243756859236210070756691789049579897233488472992285043790179859311729159179407877589340581317381380956257873260887139510894878422653841095837813855581548002836126565086395354509292415476595793845851333685969633642962375936347011420508004288166270038264415023261638755969837085904639157291449329212649129143133412210472920714564924909960361962888832946911514731822148967625160808961763758695289460824803007830108432739119512506671730426167283871363164661824877069869580804291936193544829835287556856537228188741123780740385015252424657101697247911438098837176078704007810628557011471373210097879237851235302249421186699457261254420046743074200472057049752299814293741614280948197178446187376253598601926977393819741165734491655213833096134632450880780463778233347858329224539957825433474640486023458316485768251687103851316809195386137357402516550384791507320054979958363656778861349066987209696540137073204832574620437573174464833446458084206200502641363281340952368516222212060367970913758931277576823114022328492056842119490361286482880362059120205928473706550029623694253911196599867392373120193468245399305430892475853049265212706040956631344642581898309185464449438949460558471522641509224268336329744509712408869533045436057240002885343181961286429756250835631906896602004580301985624153764821135679876688893439604884971970298135497725485624629736483638652103461609312870049810412666342551101745980497989204066879323470325962610348933748055885989494991914387853199377151391547363102472247273269404166858068352770322631165787755422165139303279833111493238684612166715889222718951461031004847623268779460060813170810752079060823417797922363211544632087695265216629198978134479989162024080847274408297513624370700409158358634864743616424324154853519795727962885407248509958387564893928521629633769242304744466193116424448797009364691749107984941094080349286394414624768301361920862127546837016934075037895910560918770266065009602670997630724499447388027659086263438571752258275377664569661321390177700608410285567319477367755927397993608881873915525551433263331638888217284407567621076482746462169496925453154073914733601908865968705360321136087757898356760091174308628175201106305778110720419772925845263875997824864361623606237064311535171564368559561698207655091713038331389364813292831101929390725746961598970540965468870179473438918127399985665400187883229013008302123443758444008169956348008436099650044615254767956470162437139752423444723152693352174649126446570285427582167999529118019762431335845276011517678347514560505754673438035030367556825116436988474848741280312835240374498574883593226134543924475282598664787213563257344182657304023813665687940915825738456822452183770108397930888058752850316011602175625688219202694833743775587867860321397946540066269695845800414718124465785720266310154739145747341786495128894174069116773206558463837217780167705868882148452436028115993243558786695328581175764770651478999234735498933887710736220768351409702045535501106561124816649171929834215359858220618952474781311170005530848319574182351539077793209017656482384310734190654747441518942452419687029124393099661424261243083065190650053333986263111194392441972262229918799917134616898779701242123819717901275120104274452085404127198395166697372705529646342884721313670583266162938417114150747560945215436619162848863022941765608739858580969145539953075806378228643102966765844515741293626423396138852372092195350792010599407838828890170904653842428527101747842691656168278503446770705737007581548572824511906635729970474424145207061788214431020318142099491298712388212628432707047809140487946125981314840544091006941016146346128459904400359329128258496154473374323263282879449596536960664721809675578295637528709260683848591186921654795113482344609783630828879250162072684462691702342451888243613085790671648520942172184396842661519494667899851264803660705944120902687540304602773949229422896541084984631079080018616205521718645384823980580631429381914793862879992404031918445479687444912338713942648430769339931920677621643789189471435641780680732829766132619295447640379589714228035504866190317662605991434150282893295272194898431063756254695647067669622648709497223541317410575306467200208137641085063188560568728553208617872069372817112027165926067530324056877302122116119056085377967122898700123537364086256606816509072662228891937746963522814982327082175202610397858451680673512614264941955026516694083247563103571297344361959646676996473309164926232805287778074484294609015654652814358228821671798541744410049959510980484152357502599551550819228831298161365197706816923655265923431953341599074973454461523070858359967959008112199937900371202017222363136934091832604987094231957784957026236447027085108990596512532586820627511815408977827217639143066901659732356585000829574862368134385273837534860568221534470794882486658517793357962145885170528804797813634856596199521958106590609678477229152861924294684639033012093143835994186943298398171749590166236780992833289648362678201165122213944302601845116561180012967199660510419608957676348194946847568821564426132775511250842028810554678989838231919994256042219563015231094144854791654366201712797948677378642641178330480338373807858241764576388069100957690690023653109192530439077193942285028908174134247517014840588216100917129800884099881854679022329470649950104137886755576239987490181420097584468150935776244617920661498026737257604732590837250197569864199346041862907742628450874122029020218421365206241693931950827948776538177555993442961185276498703615416241567674952788558787422542559506892497178608477375190086750649604830076684651189311113580265406841129700770455833327555279678718984726916715254776839694412301205913852835004520067061403705839600414140805517160788657215262042334655294949117119805377002318871407654204098754915015354120323362206911370094883399541780067923153958553082227942959873524628730068154711015420182369358131656451742472046162543308003502305714554257569671875634002981809759684974667445486993896584900443736988191105949413412000508480846099941897311767161131116480570314013059865213084649536307307636115319620492689594298601884330942584148203132340765320977695887154021521429971188659749850116923515582348464331005195969780394141195665756053770403062461323525018205839982041129569236936623835473958783577565120011106491445913205612099041780138065625377526854926894751560679162717710848868345154934992995991297681203541570637014814731445725929495398828617380719906469406141762943458444406208144237720494171015217806857992400362534818984016340370413056706475630951932718510293875006847292504689993817531523409534133822150769037222561541714787384250799047405638107696790014393896056348335007628745679624706471526943315268469896705561388321705220600458374163409706036588174565751580583359934007006415486856616023925047765679760562533883931858488391407599115246545722875913135568924296215121291731722117985196002033039037758892090609266692937787868234693194735807201436354182265036036753989452009468149137459280992668007206106469311533494118611616778697215470956405271773100751936323982869835502655297099734926091350278902235968948358110159796428363591364656174203389606667139678555319761626961255043729320538484668332849718235586865725497519217953947177439519120804871783238858089360152720441715376127821359394808643449704473323552714017592597284679846485990999349306150730742288708386946434677546131798691345733649055917738826557416219332588616864657816892302539847233651102817365018936628443487390909884499795995261251867223885575064072535486276419296344682655575073581333404924423305103228706607311848110893539892568872008623487349451983549153892659949287326868929456239322484518584586000944136638211330746989182606538568783712758406819174795705642330979058014014997069616243730453303950758528163414328048323770752401242359733402754469272626655352231504628318862305881399837186687679060256632013899837089370729528262081222880583783469205521753233624660713970870507298082315094851592109503912781434827358823527668036202447582234820635697564466518010515683257146869812543240493373562647392149717272734938868063436681279817924614715342557289416613156148737618889446179648650508409832787108841065067432981717180299093216547762492573394048747428395045155217232612826684428845664822572112186192263142442998579562908806243881879890916984323424698462852470630594188901953058153911513685782587835114820200787854373429003023923030005712404120450237875921816004524443075647191738359272532085751874218933534362860764991257608231533955658205703809292892815771703185914559613825469703296822585396254391900207624156855654351240454602961153611255614641082931692350560692248217964316716739824075454992844662306223346041928119620412045822746414434179605864970174318863704587911893547936091972057885465464422189436802447354582509549833113999717081284199690280148685797163117688237287473479170584390148128766214753554594814770122527587113736261452844947191819944354233748905482602822578577206914020951013546400471174249487668311745292207489063626245167671824566753917173991358239006571305311154803137707945638212491213634358364444333991650652578818393918012749052216093453197217716916858091310470659670125389953395612233362067279873784906742016163439369059646875311530419699386255663656255354446901684111265188321771261740554856827847888950050641946188915009288768804056159330815966376874814841383493450390733999059477692190644796035344892369677876955199506200838352060822320362124709995431924255508464286187801947589495199127522595616562835407884509900005073410396137549479193030228244557239867845078994680329035844010256354429217084938939141198241381877402569873913021726085255098769098679001130788560476951993883498206650101641968343004128255076327607224261043769862621246130545197055667793991356716277629588493416355280064328879375529530849030046394110655803628565463963752083806079361136499114220808794066729672470207108559154757599413083868254021254341372268538432790818972496267939540264975440112108215431396901350234120159814891896383785804231060170161682712005177985989179796992209164234238644920331676552947462587564737393900855827502039482430705631823929823355874431616688255585276647830053915165780422819489887936830747743530322926140430893102162105298264827702886132484245740430255946141632375003827231706865703653372032432024598395893096417851503074639814309812913116015969566271108585195217253571462844162791749969345023767864102275901095795431612077014367982201231071613366422916987159504060270745156313511237520745821485917942731228470985303529828861624874508738414246965061389262558770106215312062533240888039174846535184261483476886314654776204749534444215915471081797361700679669169512665699629478716683622820544939460205063429814882404409138038229860619324183264849268334422238565965847799651785399990053864053638365711791128189193499085847182485051011780149299113958162719846077502109659769999975479934945896818336130279736000356381199459504594728849927063701196989126107989943896054278758831811990684427759771803358726580385522562763713286093251373740765223993099591019790280380911123414932015957845982255408398915730774140172044628792783970602958889170052919157503855608283409287110640223409530689892692873708815650567440341768480530024855698765990881273905197065390489447121308008550378277838645988639046475375624204908945313972152635415809139445441130047278832081077016290949409792898091815759638071651443770102127839452004056753623820192783845498757340896862044639993887875633621451968547951756537221025742203856837306723662329532612628901717718346258517278096131076936654036000558316273891446821513293364393562781608670408206706977233160835223285086404949570401847392750534424034799978884386505084622426052527644038388968096591227513019480470454168543545325464311387472550750866276193063184633001782922308948663051244395159079774728365871000249783253363100841698950633650143529694685247448017070063055613876681009955106887824174341034112832159983060343742916900502694677289563132302894316472972974247090306036386206009722988453875900692545222898001826374598957266670429980706318841515462889732211110777879036432175272370254358299100539775930242444222645058208111868548851869417327018175754568440963914515762823867667695743672690858393976950568115049530211170889613428116354264763015735976243149372641358524447512013306524377594652509374244428360108645040689715727519605252825094809559346747916589981337322556373431543102992181060970078463376900803402557006607229430669161035285353917343273073491157296814851233222321376707355328517343101736110848772217422553665350839138775650760190050008261894894470826563406308391654057141692505576956046272918555099134007581836311955918969705192376151263727862441258531063237757586694019891714552711155873667485033064623126415693831393993417816911359872156961505965602388070558725473945433171831963072778504343221805411988765715071462681946291184462230791885245486437233926488009408079801703382257076192988683515998705816602957825371975220693346116346313989611180264170262832136621115523287306661113877592916907865747555084816879985301619416285591273276253326704912758479722677642697900610291420799355090670220486370802745512446071383720162972316827758284174358477814541043999835014842395739546241360626658174670551644800716075916684339281359202516092791690994145368898305831847946839067074427288754865885218400126661611859374908839856915932691863969413422037617851006837780350610787442098711458259615943288354940824717495877357548821204026534823939900663897946955306266139461251703765568461484872016983770259023705744511029315656042700618860005575222970256110106794004305803937952268281521834259717961383714634393299867431912465762920987501707149482702449143015039607427722590044111896320541942814302007523322365747511457235429891661574795783437355118997492402942248721505962093430221707134675581581483141622838148371534353173035764793936213630921266089948854082646305925671148537656258125202933849549441271158837643224089068584724664644042815102048169422546841366728421169171347181955205278880562688087890308412216530813962052415457931160978298065381180694971332493741780060940172674071022358926736184548435372841577910718414905238675168267423919817289778851557474189635127001470097475983722528313043952645313198516139098889819301263820218676335481987368517437198847861454556229365868549290110525267673692771842258647799744183706371826217294346787996472496896447013343999329106680202698119290780612627512931494656336925327542728031829429161202706277838549030905858732818330360212613802588014631959590859639559429156700539658057250344932743193145657693260604929856677940064868059201117727016542234377269618453283271762881539950268910654414515272055070307830781777091020407844145815347062581718119337722283792882529392178550349333695161394206621381832073954312565207925399843357013232706032979367999234508914752428889108733456670559920559700062878114290103998324284724144282044565726170990738987481147978633651529239559068755795995352733228562933306359002623556541637418145242301057243521865124052393028793882934487086828792497843498422004346248923566295647581027448568527154446324433431885736620950016932882286680453036941783343918558982855189411167656173924829018445536061633439813111556957615746632984972617087897658572433383170305888147418250753689144574436692911891910911919798580919091790809603243469114639812746677107813307388208240352937781541875755295397986197147537983796412502228837306486034936094257164224356305010112499898913216598527101559813954788452507883352383389709833374588578702558971629139862685792673859942151851129720003095513112057992611099092776633813678130915930790843174786415936740762111275858061848319716503275889585265440752162089229834555212558017273673562857497339103447743750004059091921882578783066358589711735208103688077764555943295218877757022691826679131932995909824124964743569158098999148225942970006130226839802435683331872982540591686259500247178334054142227951264047913719997645618265216607834591978459606998268843267314770504801993483370137325869763737628231472993956750247819443277353508782034683367970447107159887589681362646070471148422040194684881562874040795871709608211839337089975765044878889465644574261400189803922877178055884255492520681104683759526350965183427207391363208362449053960557527411340179701517388285789037124451266241453287544327003756751094691708710859923804543819302046500431107192222474020007633651762087251549638106925542937024823745945689406363298543223423895401515800375891333877174878601352729781160030200631210916907310871562721779076850247781345050962078541822080878510329425725376960704196019268171530492798250873979260154167523877145997703087741085274840494829400585001236622634333045149443431403915500892061092787457520834911669836937641406902670174996008728246993766408046983162614360060143851552325427871851322279357516104015577532944450657457824725641200610517252387170976500125302639475721315500520004808603378464528301527763073917367738903468349419495152352873866283077706235506742547690937524632294211135376748510300226941523112888438226088569309323615983939696051436944773506941248438709154386993076912910953545146676838382218015979679978219382052468675388457096160030815702993873422971716161494460115250301103768435235690629338312614957088910114022535181881281587964564243583138785091305369202628154372231955007722478381699655921340996149413108170423099548520059967205166518880591989260305494839390034937419685650983765395897913873856084600203567034793547677654893607619706585647937011829153460494334117712389651482606615051887768780034130459533287994241363925851049011566257548741056183299060508700724190742195095431811706832987042913995008801372515565371398524023379755521799575623875990340452051538534927450979470761252224114712540319679231443793961293517434735508188482745022835548923289666279536219470182148647675350987475705473332712029340680183641007033828068640128052367821456153186565814434388261783001865405871067945505279166230193004048144205553163068155537611376753066982398053815232480635394526648264646487005955858227975515796266814977808937040466852617145596371149037695873745461154113004780338351169939453832121691758402646364446812797771430645689284556583728152448547920791413696686501322345963013319958804946657894416167137151472277943227914362743492126398414532735530917997684437743243327858961516012989705515183699354084670201276645069502072053350489754140386782472157908752160204827093751219847658486172334425468334728122365819900339702786667292596342522819234798126309269288824360451162146223168076474224156822083192731076364889074740432897449089417160129086668855592570830656568457390417751624055864307067328852251048543733962903129671404223428060059660524351702082472186329914941274996869983086937335044053538279720885403685853485077279955302906154195853330539417557252091292065908073926396396709319134268134927244742153517239733049151574224143525420119253110845435221699669971074363493699751680454864689040535487202119389334092889295457925287746424129072572921058037585467073827317684560473491644438139098501260963811224131186637213222465505594404548408412685920044569634416870534977550612823828584385230587058928529206457692017827823281569479542600255360236509092442927805533438680525676105622551132972706080068932203118683439688443927330417282882502002546491296703499504467642005252151093716093837534341729733219464128067456643131078599037865759557692799706881258587836940665516014742431792806137725634330463620143647996048838347631905604508840556276066244853799026919004090556909139495217421556048834346546073695697677588046766059606468517297372651012358630742321495125988112281690755396066222673321047176040003195265255894638593135011520507893982521504551282701022197056166065237651593421100462575762166459566380636801059260639598403382437339979733069289467764385655482311488309332193354917870552081144132687941204419764430214986840584643876326835656810629342018402758600795027073584743378133225648979723113220146492882479321828625722696736736737201483399470278238788591218090337396831201722067867553423057818110693763104076869459022599930210379093892477847021094842068966469930172877426493423700756865420836440500931911865066957833473840514772859147842310911066534160596476229344832391154885380166822345775187633063423473921651472404176404379471615165168637352219417618381785769728937030270955601266246435608589385961325144397644373869664758843448001748170980145175137491932511254203098988320751402700067236778541385347397542714216114812940754175937044382225606943628974574675645021089437995529399821202769313093619577759928204701784391983088484722971980085662030418675483786940430883952548754275312766266476714642384738477199061944951186706675723317907403906318105738050593296349552125571671758789077763261356495073406251242015078466175130748817098953634937635545407024098974086372715713556393383703120660188820201524153120706085912607659434427614860637162642349392107596868629443274251432545383877885462491742601969206632128173553224649000699635417764796325353445693563872936316451115077466177369257293049889716638908818849114533469643880520619151149897482761862933667366610876243938211402943473120198867530852027190039021151996626811441034375902791314055340702837086052430980006344139082396348520887742357113130257541622141245531258057588144012578147368583845851656823591443254820367699017364937100425987120469968565771814724721195282483811940701838563755868112892649870322290389435601699397309329976463130735761745781290896121470101786149519854679409264397748905792726835063724679728724129078392206969834155578110573752896776152481853251714887903449197210669126377579542866975625215966653491515645966580033022625852497278930102637290014899728902897621074597792413247067965295752999509920400727754853780038064296503324497192720503426236472417238638018437024050753070725082851248640248673905377602775671876740900441907173372439906342630974411731694439065331994084625142088752305738473396871958785290347429922719827718667039926171967462962155238127330536162999299619269703694738421559322582046281152336445685619849651069366644267349620780599054996820754555298845937169319957683074669961311657967377181568208399278237364302546059783080162233731374166371421242268161991270594344581660751573269868174181369264181629435263791974700888425959262915181281218540458073916392573731800233097713001504630669783465120504400308641086989698690513038863845825791051460534659286434096513252976492973483331655165433647105519597218036996174874291967644477344293458545530598052547587665535721856583185371351739714763599347254276285948285913372692030985005918321827924347796657547133542591970640407234228281852486922980766689538097211094005601618554357138647276341810218782599455021405595607111683983212968614677402424757496262120221446463845708092583569694693973068550938140435298805349129388117977794752304074050218795580891859209820968151395592610534914656856469995491904511036383216787414802296632986353631863235916019735279740263944893248434058429136380641233508270954664937659446218821384950557426484419894679140832230325322993214625050924312054731908215892980280433001817357629840365603907404806398642181069774802494437197704050257122590481890936572562535343003436071559940374496186023438338992309307103605766706372887608315087958000059562984950762050529650265050672898425056704900325514195944727153267742863230241679797620493011966497757522844785421868145621283958033807911271694703917760955036080745659384323727532473124204240896976389076978008841917691039166388964276744921917846728656102226502924846895047342052697621844726132722225336371542712909033019431828843063544336663750881640178661010522765786614880363661562391910655697064636180087690567506771319674322251183320251458282261929667995421076678367536450758650133661314098131554102775230845668169714048706389393412736826452267910097369950273564850576889530556651572799752900419069431998554676508065427916367968621537898138557943886623410999843361469262591762882365209397746437407935907560237839495639343362122936721149350527220402477956169511723795737056396559151279211047590143921054238525833863499384181372400313046069131620795089781727164044240339134151432170143503654284350889188505451384710530186659742453245610368859664789060379599204816851287672840780693589673510583258238566813989655504147794838431396583428094968868746550802664204730916512844889984321744652292082385972180901522474778954496512295845602296136820065416223509510409131311417410644894853739256216330872100684042509080756750507740332784133681680096061340264152485127173424267213774624033018398890830981390806381376557220957481345484740355397793458912274682199512103868277568645028845582372084411471151284941435879539531130857693295213623029333995692725369686915904025249201649216775390905188614880831689053803445573897526752216420481654281616584717283980106398499174358392233498215036038936745704949909980299609820258326193676610765427281205085486241952087080830158846031640904470703563464598761191971974410799142748969838218934108280730026069735845340367347955010431754605698524097720269162789775316626626342322886481664249832128141991060455954056288973571900019236054200494910417988964635585990070735123670965282901390296391885336842450677886826961985681560081790271660192832735506879300197312731909737361605703598317977166901557524037197648740714204420564298959923405765417890607822820756373560970305643979446799473514252469918699501970235422733561519093201867225791227532970601559269644800117968033495497042307595558932765811446221844704236613788468398928009167984823945267339989287817684398180598931017131774462639796858803253656619975071004141220495486437578922701646135650273603127706497921129127598322015884744945322709512320446824190791567802970976722680422960484303533180403288603356154018933082610137127647092737596140551085718304848619008032554176842535107947213694337600595846528498870583265093386686259747781683538733035840963965665116065632162603238530043515576802186861963029776821680716615871050648925877903441285578812870600020660615132152662475629642366426933474179402993627381902924100544329474245334788194528834934919401546774314138448309435230241730889911027075797940972906812546133169467330311932006555801382273445496470917044050876661292083877873737072856180952674841338394825448351553534262850693605095880672544618345995235176758112026269440405902309733893326463643183137650694260680514734376403044988223172904044105512641640788994041446381984410427182552384527620523399820796041255411735247387871241410792987041870283592505968055814603590639786521994197576840652014304159545543977451626885209179968040885226480974478626767832587920169982682664001546800848376220294920539528952187947456995176930600693639802913754900721341738968124125106079305377395035572579847177069223527794893489256003460834488086659565481808381907758654139498737858560287436336954436274178126208156321784554270312720868277003493250330221947815610328160087200140780345684772381183132928705402960335596457702402886203975074047641266183619515780783920324571122002678308043393855783685754832785697675174253045326238367539330065275695600249965992489498355822965068785769480600606234191571889902500970023881518685398298016668007335566507923087790450077085833990800991297705613710676512403391313021713868218864863002620850494298522844871650751046811475939024360768625991744624351630897691538929490395426867411381791136339152833371224704780205072682121070946410569617846963106833754967027357560954533286108492435377077355525304811859293418317064563490543770690538879457087925473012494374854175795716801912463688522208203322309706471986106842128761986134013188181951093690143318217537937658035714996756024801837957753877325733773939195040213961145535483612619181319694256296050269781688318567179916205659101252595652711864340377661704731958895221632796572533094192150672626726221297796710157679504228278339694830168118140656661081332783031573273257098506708182030268685812087797615098239164388214762472434108200923418635707940354298287865726816552331443791086198141468727498411235568900751519360508080628225984687938662227879313598122159519922030447437126663835422172984555703522512563913373352040720711962369700631116186063175096883780921782317687010746277897210023385578585120045442611913946753482251190767776628146587527366858623300539781301923280692999147335287304384794667962345596609513407007897694296248329119046989568762332118675758895676254930737111568179464087051665178967257442713139647316729607484911824154506511289628015325933370430710152542451694760299582264313687523564234705245277346483806821354237735111581240633648148409732446801698301304347776839100595383856147942393667061194443199388807381996145705124342584828691816794971404414234858178147294986346766204640899898675167684329573797825284724486455294113933988496996582947158947998098761119202776129919733706628986716786664507092288585716097408969248689106378032751470720914913765557630414276918097040098099332357468905974036485003031766530788522361773207542964692301354327386240319126250071143289855498689127797956204404744946336776797766100635428394949670910192825501471618778314028420419905952095431998050045964595182345930405708744268255482172426832603443446224822635533096626385634841570701402903936399816129080552127337026470351167214345146781720964917361766159897695375092263131151977333147143015299809617563705059972525546436318746455109537664686002316375548785934879757316449284727716527921848893307467382004466400135905070577413576694739795764768370120194891698941500315146579278979384594013352085221659524593517881295692600851962446446723007274025822823103913294569134754000096967130105672671749096042135252325973072973037381725541424669900434623335058473608912957434571699284195382230750565488080252783511982308331661988665898446554002915194904026190396476844530560788284334969332768787833124418896940318012498051244564883051156487491261310196951318379285519482598603267636852807537215867873372993980258376544534914922658526890897698854079999355722987638912197820588777971873739718106369124884186547519438275511609168535078838125220197188300333740779119718597323427281545131309609950612624909425957089595107288473973447434916944196741096968719888136964969946237410339269739297193396747592600019581409141922836236740984369534092179664263284628489833029822913858585496958370520793621841222566321146985659875468686289839855342281164057533022639604725119853731075480534524949914584199683460220319672978370071323931396710011182939151818102103695724981881278767307433646356139453973196139217769671937482884466936734996037574667109747195603356955024881809765857182362896093804423251101435746003521919137978753209423185772288203084251051904866793374394504424535238414058432936956553335977251770058049755138620544069734980208730021130585564191138608204064592604102174213317710339987995714593608484239436807489602323015865625421245419312132092980997508542551494826093388350574353063464437928734843573981838699023328002287720183771994368684035009017709020691885866984370100221883724990353754931627557366600809379110229769308309064181839659582973422628475494195149328920023043862826970902693354424429106945778306515421218679180582252266425770322694184015468625799163927288967133266992244224867481577061718823269961238604520513912905610142209576087871403502166136523747053018008980887497450393267080692163540948209487367949088572969924085179162998946183250392880252455779378701124381525570940858776461127491750263782615644825532714633978126086475491603561860876751206888760690061583368739843399945263413617175971808421374853017167149833494313071433273683049535835339915912730898925836174155764704787754377084594048000423384985292403673498529970316796720433357103630793180344791843905233648883667563787481838371120594062795254257561447251240850781989277248520912261451925209749226652126109609090979752492671419326827476012536953964149780770934849538956739877810539851745221875903154853497730310819944199254691026384049348148158570164321987108016699442273137254367139903023845562285051666366342755609666293742725131634249726412080330611500331800882832437291038203735987818713007390245304398078639052603633843630719188152283530898396757200340259445329044284547140981630774119136066522448188955012868668859650996668679158392444989546219392453502047465975019438367813767511078102207727333869472688494389975281132546836040680778502972927837329401658706518116036071992430095721702726584026762263247513689865309944270361698607377152136002414258787212763101575890365048118222972540546505274941318875084896154261410661019854640234487332494184042168421051527023449039082381667964050884820574001633564728850726844160812025078723538673614508824136557389622926001819486326244714349602502715159172280640864196097426958113652796722605487738502377290213697401701511186075690951543492818845434964812030974174643126258895120196511507445796601574183239707420806807603469186289556705698538627896633610616107133121364957986016528922868339537986398872953536010619728567747638260305314750087088345175009579874878247929991614194950054520945585903225322668963779935977929058602230084355539855797155075555145585551375135790236526777975404513367124584188633092725654972685315684453164311146459525569227795406765847165723288971710667153618549548874779762724088326420276759783206039559165517762673595111268725207065131077414239767394621747358638953828611920000360323108289741362880398057955306818568284180776907670697623936100368679989247559983307358980473137029166910668324378682465805157390506897752353847936265942270258172371326177545670412909833512969062585673544112213062762407080184018413222756966404730243077937441114997635949432666468751821350179609351670827499294906352171733490657428452505027016894502461193309190061587319334601600538787545671788538866628443752435929498342309732612778929688428356254441301223561096241773070878067965441557297490997219719319233418049505627465760482978250156311136733369688710667959783710590201253383970043679755473111900166018178890517473975606473971858451756489521321085465199166797144871480971745048367469610907242808745313201764389354042628412530173921875065845042272098979169800744221268407340356477491680258736210997871541932282633916435203275264888182365231628176114716241965294571083028915752154337715534521823025942277860557943715603171438993907158488536773091845109981734355267197196067962491114501989742402708086284357358276022527991683823765122287188400250592076397529851665657844648868353236625119553498063422447492292047738457483480051474556699509595930135972438291203689327950775683032190714521277504961058400822984204958521548857247826199044476744553944131115120470211131319893413122094487591393548511411850892209084324029146834192648714823427085891290274250107283708883752847737292173865346983553781116917284482541457413082205565214447207007426290698307553052061557070296415034533290818163789505283319117420566505637513075271510568547790408148732154136749873453820293143491219687710337075246615853200188318541540742522663227964396446625932011915860290149370726708751789797947307691834245626406768994923295393527318945381610033726809645175839946831779402029053974503599113492610846987153224683203674359173867631126009810414824197379555826807318841184519262601722285049211676767012214219155998539546085890719645347053159736250371980825140459375285287204232778215463370853477811206390844050497965053998725897485359297511764783022974236422348853839849264527653217378125707816903609841181595434195158356052632066946513038607465172996240449729096013263176382810940325692806976723967616148807309328129775610785726305826716806181000155346892024174100386126392357066158722300092998996360619287366720642443781765849052980582228342569929691162159280798001589558020774874121088099146791187580755259846801532913617582273993284593699685109256756155489374649605103546680304645959426937516617063799941617640851864416507206065701109780499156218921321074460184605126456826340834406109027096024775037037261604654780832558938307950543772861468636975726250286654549145601599357370837314249639591895621635710697122246240865095992053934609999036178887190634233408911435978314123347111708845217624260572950399763147947564688555847111674445625051046776426504967197124535890506370254701604715629456219069940885231398599370992172741906059923297134383622842862730234643354063549376945661837112997942688954105914965533278234654523906464755548741795928973589524864966182138797297110339890265379796216628356517240032520318869229577059245435046125490139514226767372875179457865337663112308761145450982934594557355337131395174111306813804637642597124174037336531361788984608441780042184652166236475123331583714801237949860948793347385209938614947847660654255795397298909304305527510100203059431226866462621369921169323854993317738723167160191177633831085612925001642733896000343544427755328594595874485983482935989677736550745193442062467692771373853016388735240895879518976502132005901074935884414746663657314246214243108351555252894809288548703111140543640068054842428461132828579459129820445409539182097325955135258027817086638341160257860287681218276336251802845397018075267480879629576891662884147511245707417234057763124352281287034584957044655090027269195847526387757024709511300338971941428226541586836066139377426465455319623190847851413531181193346340350955262516161714548037195987205345370467886161624810330751956127000998224281761943806371678853271655238111048277812848970637426883239596210295903572724242443430385451829324516919499908359170991610114477500467746542035805773733522506471583446434835422387431963025685014441096215754515698349459248026621495408367399045320579866443482647520644766033375135184778354720716027634954289680786354992276208521969579840761470100947184761046634826274054277883712500391646982714272976281733685461495518290490304471030382516445753695190386159822567661005909991003521677708939141255052857604700223532528916193508797140308332391276726047637909293942796713690132856005509235981507234852634183896949508606106835885839512857804831712844044870886790780090364216062589539474036298710460468882509665351530968505680265671201341105034538902642848193216281169972695735595576388678969583333365316369158362972775588001222943663711833182584255529583882024626518689597332081676444942807202756853360619292417993781691956130520946905050800908036754320876527928602784423299636766282819999590352526050712948726288984728489143944537145446675315304883471154376206779813580614435453042510480633474428876844173782759558319687122593486947186116069298279051507740352044025591201776753826181565555238924893671139038284738388053194501288824695506024646937190688363623315217214271828305472624109818606314034648375513570460720243451797949253859250746363353820908290455114679305185024550936160283658101656389455218053673419509570696222496015001395963065799662989460508240458272575601683952360645884967750347897499550890478933881153364785134169401732640886643977928263560600017267841683927021638750973140400558079217964504382483557106692024409999535282749795730263508962545731856797201987661733465720921535544905606729839866814631920428890241900077822099204272946151533741040194406449541352459140143664244546945196768517497236068898000556764946143740613432510955711892279288338953542495435814237358941053475660480875643255734707048430292443264666795931814090013096236245670468036982488469047651780517317627965565607607787796780158701161466617489895803822435429127671468837947654386280879949899269125751865889079424994535460232613780940659116288447299017595282222628709439192748805181732153957735638463637722129769235067158886616034531396861526730160160391876242933675194389153918164732977139508519236521877229192358309584379714631093029477690186541774507656954912278768295788838538023959771831936082406807372841813605218412563782548229140840166645215712930121023960987305339604504921961057148718772261824042225992620056490454474474379844057260887660106085323599034432709967335627105845378962463932765380299236425046294109749425928974031194956113323274685678429123456579634412478730329069253449304686420453571411381831924603846022790622249779020009747141818583246968272370057830609951810531057942856729910172844191333836242594106706573787899454875413726265498108293208911023217720300649176288648661934929705401837916805080357834706897999788868271259043325366098211935183833810640119586195300182171888328641341121852792028618437793035935244893297249255333924256561116021585335629379744498217445171572231849030815105921214336713264611459405779129246561684724726337572448065516784562697857135997047088903323347264488413515984323821825002374443752820456637647051946742176397508775141636872824266994205041600527815748595616526932455351630043855551723593256874650044616460821316516473223303544037163874795420965780605958306048159452224404220543967425768262108556392757565053881830691019564275736624532103588511607224524377941242926020607135792765003119569708660040972686589622845877180185070930509258557900832234533659564361248475167492585998472059430733961306387252186639533012789372855132767799345771241271579025323101289449197418425604720095404386425191304190239577311596709320662991572886561270288380387127671394949033902697294282053527123890289684163797061634405932427690899111319032305069316872052477653704761060969482549699006959069334716577019797883667435557005156766181580011893008268306270496131379386423640557868732585963275720999627532217551416089383206419347802858266424524957651966899156898711343516899428413266479374477723460079355387535505411098950618793935203722780718082164232654162651216003432736981595750402077374193296900138133389025175219697520447575488598846948880742824763232318081604308372025186369423706567316855057231955774082071328226761061097129946130089569478997758632268187712781049603365325765083405103547258342768974264887331781390217509628902791815391248601539772343869216708998295572402844086717110450576357896691391903009404060160547911692215825543338628532935304733514810022090478681941960501408480027014384429149939506090003981401425374334306963552189420905926509666013337982601584506193745309489119636703053942642224952251419102017917797301754502149670122357518999492272633465430165879708346496776978586678451629697144930374984999196066105582254137236520368493716695214030848185638684382213597807558601325408976753421325874399424057503384304505171209650895932893638789051222746090508586160339834672894878502534175456630956234030242100970206651497161556373226192291991847016721799738135350971676369363007160441068410747431599192206325185073186477586377010031086212274589311394026813858337087433143459736298418590403608085556537209724415783930541374638216809447940954211570581655071298945799803247047749494294489226889954509485185225226201271361591860855877850352243570347478830761158261988165948650997104610023906292106563973185402882903195132265114002798173800056938241386480064206340639247699445875894612711272369969928770621909398103829911359318567429995149526416406972842428599854025150984153378929575403575518981900623363465638778267219263762865802866574747268802387063725608091840018251899534993076212743140260235514512412339943182334555617888452918338598597742543352038609212964166287936461771470110510239529107818587594220466418967905675506088643063451977219330012851769817190231758144165304405618099639959794533091401518582470392678527806456568020622375344483515043033901550417870050501584342960896158250960148931056319893701352061561030614411518861316927977326856755323139311239054557628805672529895563760502720163173182942752488990899411999657055360843017331682628739032052805620668725846145084167315128193680577961254102734886012419588614672630941144217687659360504170493709187956935361835774042260497579785795922393930692088069106752973403714385330526640069446304195413222239151300746464825798515573340743048925153766432783834381340716345561911224919689372622337248689074892721080566994541960157418740328723437240994096854353083106764447336918100918163222678301966626855707223206341851955075852097330932705851234582429820873219739258238751084174230327660732387669934029424844852454128903374582862306150606620972781372919419385636027580222152121593260469655580795396653612888996783213543830379408915474760269879169218440567228706396882664033208095635280191836451473099404987870600198326017413449821945814626340911848863845835611164633376872347145325107090994703696072602660203921190114837449681628596960821063513374680117981698668901196051709075928363487811864276255786146740966516944806394202603447126375907216957035131937183966211337921878675048474769774361068037874919477093239691652978037204105422286174101636880256390467175698887795772729836819949430464604901563049043845818120750624478562966213534987781705033099249666631026594516351051311833533899452174132627404023326904509872975850125920399382918794685022330178324189519731579335613159794562806899096636853159822368392843216425403369739678940121516203393950408116437183671933836654867294002573165355784143836378832129500193320332797700213619147590995592675851794973968262159270792816921425825687296715576101129759373220007470774884834294506375691369489084893815106193329787353267964304712554332595783797674963940271240453504301335418241936122981340694218259333084676516186187260265903294608982561759176956722169551458774195113757157253236410488965778391923580660995916976687067798234314823174570358537145928488178599782055591746503511642109345340458400155825391449582054666144929279295356265006127573720413077350759050561923687359456263930244515714102800846594183220658262887228341206961936013230373444570574814220598086319931921750248597152813390669658739423779177334641231020594005545733284890370124835442773378266038146849274281226178668254029928963101548656331015972951414291583703930287503613036787345667646982958738505886360863741398126976024926949122128740878029456265753224330340048720119890090498976075468453164897070505372202940437910925307512188631785791124195872202162405643634269170893236685543188320410428160901768675959813270043006305069973229498070907559970830717927655770860284855833091617531062141771014879793756115449402941921027140911434934972838621320652867236735989463229712453693733121501848010360789164222656993455077510273773460951927735797694930432819841234369615922209698376035720981245338659255228939302792358466136771853979315877130461115324697161314848494401581183432717773773354536964854011393489744115372360923678367027776238430381207674473594554697838647432711017447530464550207515430337700342650777357875804210398662097714647486706644769488907081260950029505203095029233907968502126204244059949765556889816379256575334554659552053644496678058758024624931087821534783104129043442470227660740431466655498847864102563073637089853799668589316215532791651798929511942619381072363097477305496723997057671309506834354133574884120477059004499278247608908683456587364324672824684025010200610392896732609730873044184071604494015302222310683352862427305635289542631014953467458357918436153219003403517456703071034658571987085582161270705593022965375047745111414529020321262468401928574122486508627406832837137475641108764270085050846969174188562934691492576805324587132136705362969093102691734135707167029334196335074525817766152209178101321680699193377525530591336582914470796978227866928491993951809371571165878972729022845582258681496536005098174750168891349251387703457814909074699885862176931922346128618531972497192662426822600854689001225681431417071064460800056314736753571884680913608065838246628901059570544253192570566083920969527653382306624367708356914794473874798187996128836561679134581356816748048223354185107975829481017478467130037097343333209418897484475607089307869739311580469523298460559956888428832621705377323116307220388567005505247186841819417740996443301764854786944457571184612844008513682430943815039919917763300902576578896271983518337681846868118752427176931207504278708804319596025513052033273660851111116641352151403965351484196702255724609880220055769606723735779907308847563502104529646364728205202793139362953575930487541578976153243486418343172162593982875039085474217886297296264667302886211537199477532692769173304683723364695335278996025749410942073044379786826194783164600750737244710997492464818866821983016153384292332268170377771537839567493571475004770012108637730806280015845220651292368156437171483561761121664544335947871997740676678363083010295044621137829682631717693609363026754686735763865464739230619266828549151862232011296207338711318102505610250611849387782660010570855697861191367729562958942802770293706919671541110644776112666610611470222956485527563970417221239825841812772036240000478973066308345520402670441289600512076681803947864890602971338530140472777737177679730357516176078450966133939086185369544409893823460490254360052721571978711621567214822583253993922457172888774580479336556546125051164546995011416749412141277717414961623294087903844842469519969103417626555564828963955605022014900674947587074599986334004421951662406386913785224118942311729510479485677522649800175770723359026370211481855546462591508521856412305192449770793296629981590358012108727689251375595991309213406059039588953253739471469322036644449007619623976421862581093380536393163488090243821237409059306435037178428283692315140635473317692096904110605373364344607527232736567657141455977138102066552129773241983136515555140232854762482073261580509448072907574368472859512128631791975524438900651658397506946622316247803559843185262147672407041296501592469002845431907384114598825069017356448419437023161312214414289024337094670952910844482525581622353113806378629472765740465442191123088917447214064755018087386161149725278414565102154143846459050281548671108658967861014186349502613843766393336528732699057366817900815027875852930196857676369371373640989896975394154488454772150935696314999996482496073952830458957759177672185139472661578034293442599657292722354617355441321861951126033670768403785996973804751850543357337070991341290980266414515130672298779437250574044297447086416868917443322322791690733756622082598199668985897568743089060740152882383363359103241788808118736981707917096746972491690319093558897494545300987128505154799586912282787935770566134544780569537927779539306694401462138512444127188667060928409452994921136087816347466559069263667266056994910783479879477113927756384213066978409548969784014022333653064104350595469280853376883351603527908324978781519819671089716381575647164762068957952889541642902558215871879477688128401705851264602604279711465871023437677576779313211979330041632383616806044898947072597074763872240823781613543563618819210817262345204917180129683497043977357050432012803923875434358941351373186032649870716147370971444194817658774570509101451118047360749571306043183825644055407415289233094771988853108121610629895430405174513456166274891042472716428242394535653338746480937515193239583389911863247655919679907216826156231616563310365890690745613788637583374883905798016584866916792119150143326991757092879395128058461152410763132256147736180369995661508960102756400087826707913219564555535561592722534706504676489694696212548735337375934303281484200639734598771294842977460158379398755118571509455324734604325223501103918322883028649621870507540754807067840513815694116814322483903135691003332392728334854763065296430943300590296850283182017265128394712963456775952834185462744502969927666274165826868692366403980652571302584067122861924651879621687014279134102427549100990332075541268653872320031246519292307267734946075636428234288668632486841796030229238141461067635776143022631955551785490195750360251082187263471990188328131099141754122287086674147062581404826672427268594706030174153702639554734455707979762669107016278649322288080778181756443331770374096534605075413091076288717224180449997229799271827139237173711273512242996418018192350945040196409677297757477977892310294051757173946841790355354473126897887426342396164457887347574898975829690888852682125639367880657338585860745342820479002309802042699478062869936054660265638451736792593815523681472757369482633373681134618711260295324986337200966931733247642229692170830650897207636555169690437501190125462790107137407674041956756039904643266206132737778340176367790731964678087368056394575922235982797808433576565925202873804829938326659959100591328594780346890717092450566657074117674844081696808741216468614322687847749417733274946289342966088873576413297614214324339993597931932091520217101403263560789419390453120806687492625064737461757757248683546067166337045825449254741767860796498984221885121208791549357110498721248113560338204087925183769645452165454757137621876882620556042085818234796771208167199316612620708173195066172589760674481878831752306097653415660828188966994490185578378115127722250688796654808418797875026900278968637707553080215961498493222874934098673326463393443150404635091671607012047182908144337402805403703853289392486279165284074962763589171088639113672543063037413116087278957224053553015050469853651304070651901316277767125273678017857587439124630297112414194088488016365352788301549432198292456892338598883201235033079717481713591553504316716851902331720631571175015521793606460051692797125509198003724049388637131234859598027370640536318028523466617197670646727705585489156075533220877768084944011522122598960964849551930881410396091796172077009322009316735421541465375507777682124992769865457605679390684922200663683255360901754473261456814907810667845865375689379400042718151294653527280818370527104181577910311334250617685005846243688391775898400844110322062559366469509109932267261657550873315726884768521940170926083866432884870483386134828454849164360729662025074864428534199848926515330479572143527426481990481772798272524568669274511139788701868367861812261793239776385075777595796266134423151431432262707878374946647871615083231876382945334145621960623881956465374643093969694649197408264327328901680671098870480247845965701553914188700745985393619323176742428313955382495000732363674334173502449101284115013742569142096081130294513494540779271311871328744639348021457481307820102893004011165950892634855549424827537942112962086133928756144006698596692792395939153587563764812887954049173937668885485880093624102701415578043606529187370978794204797121074131188137222147753360775243911306612809667769696574703994101716363925840200546649358829085127943178917352724109007183223617732768279032328301623698870422681013423811803167664506750702331548331317335579255110686023708423278178178896738233496192903486584539735463754721741331981664260730416536062274284754993428863216222730098106313927110482348013474640610891181493896881137973573452943952717924975737304161483439338720503106872540945254270778272702655369730271397741855438163128264642541295019859320067697131950957106126355236500942335072504883447378113136856063893332192432390854026047702750372180948844176236283061794433482908482722672338497925479929322139652216825207202876092952400668501573268749050256942041010775852512870299496494965624817747875805318480138150952609756292773507977455071782464482195600639082226156164485176352622836541727585237395484623110144428391565179345076954561338246997199048363702330103256684411219963990114301690476222649965877798073524328536723478973312743765377317147563947502152818860466822153688954930396148044639328033413701619886783190315043729369462950491138678225320969690404447167192338964061827404593675845909520140838680836537535088283704650545797302003619687339267579284878039910342824170971292189137640856611306967564628622837854234806583220638747277293244044145923570197611117064450807205400278318160501910085181186922868737788702240148230156804995474459325533264766998927930677732839749184848944044716073167628183931093838932284478548034329743693995489240774339826927694662549820533408118018986489216206757795563614067024381541554385250869797336408605715080019764684720153260245882170289730653768120367299035873004993751864916893358703766135297274206179372377080680135415369062136723691859211053135642943226764961831583823598960414229723527950358295291997005626858189687321031861584066539164048577185337435325987165009533609127911740864847828978505890028803470891294741325794064506212670280538149483734719745252013921867941084302225714671436099671862362716053426912078262363924077960365472050036158072879130983225401588045444365034410618997297326468926479863090222915774212128324961429302519512699880656655841051277361475994578110859420823295118882120830683505983471009853317306074805474304906613419540686075770834182096192556922014907941519204870464882411809505283118409561655504973164514252780055067902772348072635514626611986482309129241824897886899398451412620190570326895536199292972764991160085107580956098009620554141630518411590473470156089979917515342388340523802171098239532884972242266745265167648321672328546979638128841557932274385346720797020757374362143071594841853076714370568405254165335976853952058950214738289918012645972194476363246728395949456385697667116895921446554737575151219143137175499241117785042972859101525618888052611188199390080031445665483752063968847552206658697916811846167676196144663935153841818458440438162678331934701680610253464919289028012349001862031667581802880670246111277147309444089348326692390220014521245807814667911772938299022757272624375994731626448350218588446119274421140137110193057762546968703477470461850068958852273488567921887126310329859362490767985101004630862074100824094611300816753068899009071830938673131955032623953979967257414836112241718339218613495922429110417984695091654031022755703662867397908947155704825875772694075463248917417236179111108693065124293193661949632980742232461323307921171320327184214693524547419275695492948208576203320972000279334450368959782383499142363171182825748950325901037300030594341876152645257207664391255053878034537269920897943067352499823379441193893567756004856855665129849218550149853079709345848742339165743535117969352632983326020904852142372414491512508918898366533496645455860071210300324534654521844527795382660319701588047042672015930731226522847312434055973147808492423756068199547202903740361422824908024915804370413532473354201410419078638359234077038778315415042492669615034172406085734360466997692409165487073108976709639064803356769493402506534549342248890023083406603895082774335822633650270437419399774210930357292208615741719174638446130437006055762472326904096087830076972736813544155414673217162092902249349030244301628907570436735483454505291502734142253941663425868682350838137124218724654816822470213776285842066806311997679193754869066028443571943606024754848626883037027040277721619762137457929133228964767369487664192160729032698467406799930400035522133241904896793940165048195570771837774845960125656639917158353591209240857792597951722199467324056774783047029077204040288612153054331883024869282045405708622944020445465416483821957201215303291416850249866077744948365070633416393908471396957195572831057188804845062257503869368662970259966825804384392940502504738846848685710531805665772769925834746304885717435040322787752666682892434301564220936443231606312951439653285306331665473241471505659274256160225104244908311576833760147331756841937683588000886887851105588389423409556322189640892435022929938462420607700892640879754701455248196078875534571352516301608011375963942773637610159229876609571331471951862408220464368159128730107080690694290153996107402368320503328406230250106076459207423145857585478996816881748431908967954763693050888534898355538399815594353435162533114638511652819481509687993315941390794202047616897421027934057478877400367143015400819508928025327947030238567242100963975144624455036447851017065485537200447600429098465567236387729257767296784149724788854595691880959274165117199611790227693916784183035101149362140569735246305974073549113592249035731343729242093457394047436508892110089522292267291566394434480103329106340518959585032930928982116691072199640468492066744251197570484386291975913979730309841638859946979605180227463773203233923922419641672245086511494581780096372518124937783144545636234148502783825389980224476111338821878547032615317954862218901159872583648835058394188736325109299433185853433397728245547020135666087671111952701746654137301686543647638948784793337151107411010479028713202436634266034293272719764708176695144880462781944444913993344505647020966585637969647124365192111121512110728650692731120594123099661434379168414939138861314589213914506360284593124137990846024673758408381540568548733761298688226876992388466420326695913443626672059224156910525925784948050690281751912711141505813025021483599183987390124685776368683232481435540453618847247068819671540890341737826371797961330236585270654959286526182400110991100745645676003376583136456295323195099461998628163757232656613557413532604631437363202238863775190107170498546918480396848092172600194368731089869058160866228058063740614578809129934319638145456513373816559054964453118468142034635417145923980263460652866202319111283137663008406147797502011904092663407146369842013571490359426799201803342667000612617173513498981367107559227984273955209920249510564468966431022602166554807444137995131683865915005644711109940384200856504936193026078650033369796770455859883183514069967699533728903279567570268554518106348987024775766751772628758593079103504475428039463016370061148597949487570829328320368223753435290039643834080389483127338069481490114540093542670395135742096960622644677918446100739688474960173394953314814138163409497333186363005985137120369547312785309029866007422484194096251316467275465525481462307485749504704475261773421313710384798214405323974329486175194096977654984226971120408845226192326719556447044999990242536877298377785301872224370688916591244243624273624339937824933628970426218151276900793586909832100002931795630495946082843337812271107496503284109875257405463416023466092015205163051173981335257635599475431623427779256086433857495778527120745521106959858832027707139938760494897340681331045841240128605351990428415538543322604118149604926364735647014070304687885585520038745654381340723635899617652288426919436399838427704653715719894384543197578632875277772582750781342487423376911667701810299408714216064471297674621382425458649246163303375563568985774306704584945705668209415720452282575448148629400327606189871298015700701119202499544898572767465964623511921759652467343658740933617393522573164714510884692219832005104964273886135952128763876416128211541845755139070461146727345036142434393619316264673427486715733398229299453431073639383330978472170145055955004674156304733737705139915889612037199307072809052204243641907521133804244281368660371346535574136393362667255806076783059612239717583599039069193560561829847134042940033511621109038296174350429129160511834751422612819708044458198791529400108667942526067393078048471139506117112038907100132237325429815440640140109544733678058891988388976026243680849435882354126252537009156489017013798479159777944748984219506680207851169303382340805329526236572831720652728656206209520295632592305082716690537180092152605713102134341516807752012638044026826714568107917021265959011331551234190264330166524733512712531119083267912165418326823931817869744832527608394841381574397142237479608194844339903726800001965529263412742732839597652480969287474483597212013013037192233327855459330968627163357769935376615345166152294315900086571967988031626872794480859664560770315642398969395497333445858092175112677759254414512456677184063006272169638028132191174535029290627824962650375316901122347830209653480457040225292674085303961025462176534439039960296531192650864246080683599342390187492884317932521498814565342652578710903061918689409428987547586824511310552380881194550553356351388949827913152749398088707597623329663941539360476397476622379743161345664089252702107347297652606334213234350801253223541006749025424544336761622907835630233461252537574380916088158549974212574000686754201650928751365701914586902885232023825108931508514830368365864593551217579336701413399143417557302494815966083671946624408410122091462438435387046068084674048926837719252365176551534974291939595186542996689117654304097522702789840933623147275346916137054298244230314495861944672518985369459124596762623784819072307518033893657210149430680093279657381361865831376212440640851309028779381582823388890476826414897139782252657328280534600803523314595574969574032578165836634842924853432102381158307790620680472391753383473205307570912855287000035932786247518717939602030537616058910389495175096263742304440428375398089144780177134117125340727394098297558534092121744726022656970458179591910020706764362685731793506091944883426345309752969971434085171858458218584517337075511770847374745967589763666585383594743093798144878384514261746509724484343001092180198650233234950615008658085435617871226580027457221647450524269600567790318646709667953364506379027394464365095163211921174603486429733415048622699025552919904059955261559798952689661219905772693649686531298374013084290544309758131827639917391651944596647110797350731692305918408254909207228574607843810583086531909102892406542142903383006830259177663621945109606178958174418981416524199044648662505501892742231339925625349047397135734138603488172815895235987140630690065432759683794381095732139793984522107164947235760530109995052868062851889490644927618431316498790914640874183867919497708514702555572991043044867904564785582780717067328711045896124639834360431826591349063380089596661062269148510675569849089095926872097852042102429424724173814416542426323756614609549640483042073538128605621814860843240132170376771001024583205411714701235219980457943794924069515384345735653669806949093330128761956552952425717260700703798571619186533303867971764796770371590961427759070729310756202254706701764366107612454193870091717698148634444104885070882782261976958319948409807283844667766578935624176597346045826502767435078235767912200364980059696342746676121114939802365475739005896443480881164942164009952704984527213392982521109079945529741779178508679020072981906192425779903115790278326457667582520658898947606435880215846094548959339867592944962069646982023092094801370961772987273877379910679322257747812971525283879797515936335591852899443866694025565804634406880484608778774106789103474683429583604929518146911554764346444098631766922986233455359756818434001231884995443322105702339639563672328100866579775599863993019286004357763700483347158736619960761888485059142962821352852667503288039276913452347955112465816951683145863730919609770796665113072632602615256157803747090051631753559152137962142226178024559617105991343801440883086110880463654962702509371670511505295570583324085218402241874607486254794024587477493349495076738162742877239564843383260411744974583588196678937509410639295019895387437746473158642568932527502149189325488897805564802973466034229504842775520105899352241785979130425836323733991980576188833804587877230728468844306950213665351740619145014375913138082238371645868214556617164293434665928022926595497364121568602896957307453057563383683413316581893638486968927251317906833395041859675381019509298883641032371485100474121710927639752869413459047243194499481370586665161102182365586694103179600138994525039352007072072735673822205075761546043243671571609502311187062061818826128571636742026616778723656850324251900256223607476972028593236658766145503903530559286368928266984957539929001426544283629295738414704064378073913311259641720703935286958238807981848866961276522886201382594464689340686126533481438923559392202023681737048777177041262063376597702445480685740814179901052274583280873500261034471190730568643214803068588625675231872703608457378922220474268337801243335682289565160110091805342776098656382718930785502848290065289764875973632111500957986518654869986473754211992424599447209228583133288537162799225229461643125732775913960890821988110037462327106618944593763389488004222129637454185908857258552142520507834223059123453099750593962575482165735436292393975470915729372741474667927905567229143990123168682363696147365022912543440213905944198889360358318681525592824010547902474060886208229539653375616207560203231723127752503333108848406531558139298495985168954276670527813420776451732298731030293182882035147545185946070265232514521288344605946594527286960096187417034736157554808241700774049390268764518694376572218853624628817911057633975332368348893499081120421767929971179573634077494115414003435493340055843183629111334959991963070884142888130549803882386789370940746726204894227743332019382341762691368523910655947052359495832583052200055182458440716535551152884533354227724042399271784656124849909005325065662619432843012398006349234005223966997639894659058888060427441380411912742004034651872245603082894102471859210287715008614226503145285131531843474426491446685994007557511469492745985805322472056450795376250997570309212061160692702330169604659140874488340033045603023028807407701349832785890879297849184956676647133698267697385164962370486925602605108959758154450437958032553110713248611634977160431356847194885410786537788938913579707267903281596855048206330272982752793853318965723036682533593953026843669885003327479793090001701360187877247627981376914464215567972725101240462213073685326219414984724896761363063390205365481562143618501250344962846087122257123079725239687127929522798795897144626643756598621757975886511208104142250326205082867570181729716133707960182361167987056044173084797909559447494180971535134837974829557813685832903573127149372979300484985347529218678429192152633902067441780732571602605825876282953377096873238222050745122377114038865462458931832547760601800901635310156909836121723310018766646838780703402299294910223237583490180829231246515357868049716787553940768925691791298854829238213258528572340476583242384476093868831768667662523281049582706367067317614704155286444729144579646101582462497482918542841991255602285688281040739410923104481829478834119898493473297714249915573384268622586297823580837928643541709650648878640425887842051888553450244980945751975502077037599376161262811660452934795686162090809798537074896676117895311663704105737418019650698499510210474315247837617077025648208367358003356703098946588743838455463313150664065619999905711825677899473642835200827648638865322619159531376617777204942025633781864146574912056350150947672856965820247162663477952558370028901160577948747559288665720249601739309545774306522032395493518454338059205346176039986967346247734036790063217619723713081844769827475115724103174205682271742158260038089950520540628666868899312554294033373288136540517948575511606677094072334131655522804384148297356878468432691187184713148720476478067208271456195307290252495282074331579994249032112995079478303403445392250726612668653259253712802325045671803732557925593669668509798515120665154897531053599267230705046941228130041344630922302762692283324786048538120608487497828710215978075188962660554145002970163927842572794362678971057139698040762189145375719895501580048923833961125177671046887603689762549780389297284946895285226793158752595162646621439004419722783052101164899537097213705281505229304547631864362932199046897819159794623526422487960998288808173827544695258759368321620419872489614442329593343474155239803117638000111316987681836286367079137213148799318082592531923435414811499435190533367878649522664262300287336341082201079731694812558816876626269497283519124031562035075961001586770409788706897907440787545463159885422669444747049693553705524513496851262119468215459860061483629056416352650630896364930296285541498628825406142909165296833086520028127200887866456363415945774000681228890353714806854699870626488783580509269280827807895628937908192412378459492911437025194326748481461487255222482007750508287014697367002015814681711227624202849077446827700343919758260582172557834868703801380286580734943246424360874729538741345514744144745032832369525908146473409896101629289534165372603203843181157703837154121666447249462112965773159163747999473636043087051612136233990922017513643449976922432681745492506686527206461313566723753836597700977841271902911870143508070314173877239652529258127885712992327801703869315330367643619967099382562087209282490317429345870938757714706272703554180780235678396055618589210411346400605404361884317292192339768387458405649920010718342981340352886811503716349287710078196614903182158052887082998551112522266039942344569828056517141966632794505623299853443218910888219299075234218821021511025031521082186705439922981772680361291990438157012981024317661455520483594338683865697440503814604749369840313433432110505696217454144551959756271975008008768604019148114981962672459727759396749787328212501619264233830377161634365114822943117885393171389107929217355985509539178428771143029507765192084580569175461450760082407593798926580298076073729986424747615588090987690286252250671178478108853187420946380511879811381841601341605725095095011829931558751961754786640846597067820576202060147895678121076161071841653131912904051801491700214953932935213489155116501579776438047041059621187857882050923879280216297606552485442439469022127243499572643592728045136288774755096532339577884912502748420022848800866679430974148085503165407016451038216878970295306266908676056625507481012884411316334584031572042318900653680486390757506237676960052464910753589345486937932421596211637925045557861877202767848489562975660406679230007451252020847081907003145705177955940955298015649061496689385244161231178364669372719900505372504914694382025916127269005077150986204114871479340815992520264215841529815296053474380653705294569324816461549171167961643965480067833987291981616690047715005052839113257469557917762483738003219091430219954826858293144529699969417430270813747621330570557413507933982275599591788577451779669524775397681133403147686112106705071930026246524515953454164834972310609027461358037986459526333717735530126383940847773694392497377293080557967662313782676518299572788118454638995449117558199210332266831181884347681418624734800484965368638974237174422063274270308058600172134388380284215052905004503318208942088183101930707255184073780056268259847212582953828097875384837141234090090380891799258749471174526653982492726612523350020416688307072131346030011226926376999975103902106410346827066282004455490058690611883240147808348616487220178823053208911323911609123865400708032489044152706199115915568900113576142673606138916179437943636088420017466876353750518185235932176074855357624756023263565744716970713125078666202192356131480960437437462872761221201657310922013831129806197268487321482079069263441852908839633612726211209420452434446861940414986866749926264844360274259727227284778960024186434877249581385334035007711335457121059169168691068471503435918194471080907807861157100666750616851681265535822806383380560021986531764845023459532543013815979103452447572972587765079925811165349350350821965084092491112253800455111953363273408747938100634920919110325517192608318259531955635694681765687302332656145077645300950908219075482137736553337392807690462106875551122581345145271651779279752200033526893980242407359520905553176044486864640361589136169557330237054097475551696068552245305868226026507789184536095745733969671645899518907253013522087156052186298373789713738975708267552230642992224700827615507664385454495786593887227661685125503187718664410474650824108794179013923624642067281215727640246013711351338574409857956773803492077404993197054324513747052277271784243828948352348758466805981191000447224875518629139526892520013015953112813877751209572830890109429167676279992582271403887682413231026507261271901300640644462992998672873094659328758340632483759625114534090568192540083601874082485924269747642966265376707689138769492143558026365370176118288465876767071765041152990486078352603427115440822766220699376529741991776188871389479365825633427683325109521302131937091216852597266420728396676552904903861336777072752484056260303745074752764916274948575066519795731513304212896265042974394468894275948136817901720940516463521185487610959798586319298614859745345118396844409935227327321190811975221343011974480272916765373748148931491013052449970086151259830385042125082401727975881700461325227628105584103789357123095636185306171182752485825420655681154414434818604380646180939840818520161764912961607453723085349911158380467131109037869531466048894685133960709559412612524096660945918130291322850366559250024234677540695851479823203690628018417752695804710884517732506229107154835223268668429207790138453786003686280048960485032133073155147202850653395817814117196488664126217962234002667494795145192619943213876194247417025721646995812049949434591886377728091510928549359344409917279771706009319168159910644721229846282380946087306930866703629233903602494404098210314524502030080817905474752296525805390482920180056192305513980063999424585086131681769756404571239780415016422356205184624993656353559100877098396817345336261785839946719035145368056738149283245043451469196165931250823418041615367728048494975741779319271898345623516772843415927422420750496127291276725694092286275641912715304068585035883116558720492540271501095391532034690967769094278433772159869060599085090852392640377648187569974222037251466575900314333326897582000091582508669800924310796364341094244012750926616622742205016802783992527161687457046330108368434766354591696604527857727834541472154649098273178290330969272142073126323883508127351536502838911882016252634192808371242986037939816976551459153550958357983401727297376020647481334801010868987046503446474514443228480917740568712201620996153863756657097627082589806768266009450274945638282297040051701929382569502497753614809199254206486639945792610637162218018306925706664583845719407960195952116866086887584552633805426765518677687615993714227065534891407893803931320490555635310798287154682048714394639222835490642758498808523567829170421163252493388425699155166570828079491400363409377382989164486819269436697626866235837622000161249801981653807642219262597307174278776312438506688600663952749810420275401183776765245419460181351815305334533192376298837657071826492059833221496712943497800750362939265233767350791851889845848728893968237171673535908350693745780469950059809963249175006340322323509008704627590383208056328189997655021192917168715033882950374878205699210891961367941353784745687657488981927195418489533840754786836061866821538699956645214132273707672557856131817967652795893132872050324054888022999978804674631060421865199288284585631329271846011978380410972932027788794846164984157156272924099523250325286036696479265660585376355189541802335749318175680912369527660563741793995859886849343367524454250990381435785977979642285088945868252837343517076529599379161337544102080661311796668828312263969527381593212050875588470428160800224562024308717672495856335066468817212495538062778595458745035293642779500617423398431341332653971529155355533816688770727448476706783605614732999228742208268723626775606286041319931263771170242603791922905350241336050824786081705887740844854026532855320935614003139626629743045668941001277514257173034347675183739631753866605780623350634651334738420190531655527588260833073535789099643175268708588663059932165461491614354273266037491007157942728021256914092733873323054857251565708371160706508694222747536493144525501836575052108623443367673321680842695846809711824670421200282284680440304822744751632639134382589547953529500800943905019868674111188889611699168156715916023321714192833616217760072934794931849053505605681537609081413631184242384632227088701626658029511247189795658813058142394543594624961880809938971113946383245670266476235930174951675830308468127556643679676615604699569323719503576309291754862742574067647253330592208812977255226970821344068032693268460150874648854462918638216316413866073774950261637475681544164210369755372747720218492827765422497187074107313412959368871639158120122287860010814731710327775419413534262586649879485283341475778109207389648018089877022820623361386118625916434342815151393079620166310294783641463818753586454406232984890027119655794697782204973098352742442797879832301849284764845483880207887636675203590821978827288364275779034837091488077568353370568285431442671056542711799503046276031707400920485318140789925588075267749430669526346044632520061461012873865590156669688899092723049549572140432191723352631781946069955385472719712310219291642308410346718019246544950555920359865329113516976386697706181048616557557792043578950341201703897956897756689767177776020970789862527579548982928012091661440856537424307900325505937998263108844802638205770251710052973303357978240205439153955672542851779944053061489080375464043598650574618450873855945223223466575320764921992842794367168877477944760645161813028459037450375807129237595615784070129136849205058957394652111312700203827142809902089133564152818121954102883356572742278266587249056435969146430768131808090963850066068048597849849614044341296877258920629322315187400928537555591671950397522147263098895180948812529603212625154148234289933404397641328585609571605308822861284919662112848866484631601600486904575351523240157133841739171103243709868322941204298520280194670141306357154555066528469022146428616873610809072660223377645722598244265289498422784540059787821178057909130359372394378183212695983807891991566697689925768029666186558942398922507787593750264223727308176933041370538770633171741676761156231610236570609852996499028088736819251958642583132315898230355881774126888640938130215928773375098122258979853336701087499119382839811739177782662559021158143564154925854800801831425890397576806660429296166824978105981494515452335399730365859848466726546967055597470521897126270735748856882171043306090072756245729960324330648318325535933225682582645348822224172975480732615155398614321538635295245154530845312214604284807502906762073614383586152764629492699796984991562125725493491244570110375058137921990006572035913930886612290888206942563749972656839814110508788824067734226392453097140451928908054596306977367411354040519335366948404500874121236736391982168863921190331871666895956756459473448771109968619996617463409984077630892416865016520265594542730431405342887479123562489878626616736079071306971348859559638268102044994001764257849058730804318066494619590213519402033517090673155826456460345969692565897734041038071763759113505766481691498841394052848801549815143723340697776095379276869343866462839753303779603057669384784045656320376440529715622220196781937329826829161619848431646171333732253140130840481933476976077867448806827097976120453536841122061120020855081164017256776525138725050867170876263340270029593735729071076428688600069602644374260747290669304651471297304979014354688685002644132364243969576991623612511614666149381805839683631042613501961263077327571356137473471424834741527883264402766950837583002729185020115573277338672658962311404016170488742665026766648156696184131029132317005685547743857220782635233688494994240299927107467588953693537760583491561536887399423174756765202406488065244237743486157251538778069053695361729026178897050616468047104731413832092750241244491280332341462015327257295849360229753378283742205738986736740439881415008318381941892168579113718212729216226172208052914190075387712427326413212316940785099914243007340522910307372638412449874650122413924994512582112854518492089963841612163294870172904002891425840220312552668290621458788305011368929318226054551228157656819354361533376744350872991439222154865704151478376725547440777651090929393902534346351408243617924759070773615093823569791969905789720615954917148603870292650588453276480944432919702978389520589139418307003559986272979158020592431497813299390958848099682112874940357647891666224069823208525591071580851171454201777490274902566288899295994578143991605327432234436815289681049554996659535556796879725925603795874086371948066312790861073508042832062093609568920745855684151729411340830629047756806234868098654970905686295441140377092963510602527409827671818984634091941002434828702733124350604847936006235910052251030095235737549601096757684048257019073409310672512781549027245256727668282830056809723669122194047543053142591762612585383602136976229337394977780291404870853109063438207538733585918376354567560128340595655943844127411923375621977030690464889908016949092394177404057450388056707643520077608610162491059194838548698034297443242217427773454877718878481846786441204605891509670858756458815215446196361878027575306719798180327091998328930392488311789728017099697450537658475585616613848972277233631149759898890692978439353026935527207580248898270459678846774418745604637253245283511342684659716268336616088926095238577644246856845162644556034407837484857198695350151105425711762432200724004394995140718324827908362596373532477090567876022127768450413903570332110674241219354488330794169526843476132731514599455283804755453330206764565757214076069589339309268286409805449221384629294717151198189123724048481174992908974307027338446635276339765607153714765530646861940674145514686968054976166391980564708607467104858781715346930713681718438450216599488688356188316884613610000286986955519443428586812428934169706664238932269919419419862548165538664794080792491577443065336967433925005665448086726906820788238562504023026815826279870511614642713057548806420478649480816814764426720918064961842639278097553185905933781664566265434696434708742345852982101555504451436255940873093694377466101178626071617893285634704658733438244470696683306901554081649918809339469767548975856206015358518342690043647933935184269069369025302293376956207521137881114064934509967556997097119308004493819242417821046661804052947494465126159502491969701792951145593855967540974011987023898298386398727784765182567457370489295335265738469329093031574169236708925246690407631055592229201097772890347979969665252737224571998909014799112616822052140323240699500563510250240265077341728774199420923152336072454278800853272160520222161391703392399562374488593327042947095246497560167975532918652897665537865491069213296053438443713710037289992744059122718544694233902873814054342835313880754799656444153447826492595972103032225459635949493043723176355610646547874422054650618403085088786641636632113120080517854504602841090037430277723934219883568445179108474773964324547642969901730811718131407414917855839222177462968774769948375210904774786229412614513455145779121741705632203818590050942020451696418995452542545010724532991596651837765102095795698396090336325346672466825130785675623920459419767407650085342284319478030358607401694613610593270432838210996661759623076588279194283200653032663153876004620957275483353752204953742993832266275404031277914563809387312932543883514125191388847276220878625955109813845138832477779554859065841177667977799269381536976746096797947781098326280063803444481343957179122114169038246761923252224171925501749738367608402989415116465562831552728048052205778176785078231594479269367591184419313597115788926084899865923517808422634678483185265776916514865447330561969710866287516613540758304135232510642344177263384335598212319492991477802451535161110668896224680591566422099590506116266660997744847110414478129089932998920242944204304516852571427844134143540697608626676772390763863905741306671030872059284500168542823211994235165869884461315248471187233524543962140739492624745596708987623972971855916298141019289655149931022092143048619879888479751568640361047005980743327848754121523510092482200560292116568503675464626755329368657819645331189334449900002341180393631225356013428623480912085177874630756865476449530559546973379371267639614747710389605681849136628330124079557352570627180919993714696680360128424913569803672127786841854926838578562838651392897185602764094178580013801024846483474341349877763013411874895794367806662088753507133395692263105363864433227774548046627989083261395462263852694994160138484942048292935818551763723610418165971272071644347204209677355381027852074030683914706555101307566575762428155625102705206436491438421586250192142770711280096526572981208848231475346935099504635013351654187486362489637190870722208276826851527799594886910906227186958277199925488872153196003762853819175305631273482823839069447790264286567731920001765051370494605877241663227150407909949437459572855867206445034262661598201204718870414997313350028960895612291128453685658320561558090985613490764618639152076435027167054766965128436446653021098115596851191010389154778637235535714710419612822167066112191231859681760619172825399519122373245323349403905672157898462998399273953920731653520522854151706716446427643601678044147886822094875544390759953463766953769493889799739202281812170622793728213539715303986225143798136700166985208786654279778704893189635975623221566714136297586664170819126784514521715838639549806577768376953014824287849072439129012835279267824460852369897251653595584652358431737688849167187247765613894107537874691852129438386087958095691018613951647392907456687800540279637787799088660824465850670033946776988588246549141624592282095007945877490794384313473035682658210601973731683692338686308674977880898617524463081795959536632714926519915609358897847012898289223603321654091444467092294612051285400837513932823454699232280367322885243156100445386381619590248221612676677514777780409921666563419315938268103097406293508705736414043804638235832633401567770026220796259121599291376935764941208165508180609193384231959101925197515492903760653780783619411732272793572558311152707837786361823892401721615543562118329562303608979882974807300406790543630122021145367798292827798078858140826438884605126621769806863214184998158680552237022207530653470441698101613502049588930781276232782106073659568655995051649752118380260777298789383816372407442808476249144898703857340388366684844382244827338457611491304469495399645930055838927693164442095446564915828990123896238779730143571224816422804726517201563408321615036280294919538434843985723198871929128537919834251454019879855326109383508253489753577216066146128927349502689161555992821797492910845101036769491399925724066794132107161820037180391136930553251270726915830402950209362553785282312786803110771425210628004590663698082459302059630914795683769985984266042618072875342457355340495118370698821353487922577610931164590001115864427177329858463484976635922087690331455028142480147731930768960690333323762317518370252855457625619838594379604697679341404463536043107107653350996202767064819032901293496665140573442608038193591355302202018294095574144914254394370349918978471858081178924520694174771912506938977078348127282338697377444414584966996659022354303163840767702480811173571859854113855697550984205400398230758302077795173379528866926986097303465410186003851827083371353296615287888975040089699731804164186230945443232505991348374703142540624319493519283294320011551836864535724110159678248949927729085264690787278387603549101696747156075490049755472749099589463767236305808716912548392385018853846756904888247264227253589602244979598343006933942888040167887568021368010061774949883914078265370883783250519218162652704655332964780635612957195184071579701534627769451688627395931704446630982405800179110133030687792509828528199340087350080737583926908999765617910540377009753702379705966126212157794818550770171501667407080851226649049821330676719884988260386029824323275046181273153053612771630591747707581993286248411617999085699798242112427618530245100679583167048591781675855718608206321427057752231790867644641656467970450916711081687229625263920917694277075404377780623640472803293410052256197211723688548969456642686748312234565184650979482280355947336725055652830267783441972397039962654128614440427072075883769694594280214348411847561885715132423667090474000079129078181373134474686269451441161445675783000217927137260793211166549101301810985607011215773884002896626723580778122668921309551929891531241222409080976222417893144896491761116801509458073683294968218312507854258776673145099475278762213657098340903805544469817392887971320164831844539099556183733775262401452242832192646770757115642784440253937102184407650540578127449061674575203599972124340661418706805687911698181524563662635889982686994603236559352498135957993402261044271131199531803412426587125472120420226271622076804267839124798950356119538099142887218837238853510318935475687870808760753920688899104637445384095721404019901623821992243702124678816474987750618433631581371670712062520925350900602293219484185702611104552417555645453839413169408724287942441513886521641620462907971486038476076293005118962179726847961485672058680188355596552516752611421211772072853000120051522447327474302666621578718700677612025463198661580297728276412468827431124857782668994836629506946994363885798917014319255468115308355555353445145542697855763144008382658675520601126492012736029957425794556008991461049824919177761289587246022064393476521086597679442088325314718853988240111770331319853111318073570172799264835583555780752791223315007132765591579123729657310771351542052057644551032227627038919871456218902833609454236760513329951499228689245412291295170832201101272465755948178202143653140827852046439922411287078856192467696637916543959600685616650902751808358394296552331463047345413718641977289229715483689102519910478484677325513441712494543136006888414955456108885637865952709023797661430940046125314394194247214820768290194482912494519556392220348387142960411793222564428296936868501317676467028157175218036027658035774338072223886639138728575373128093484305754044640026155075556116211610654752662871190665863048263859356428236964056216416113139993870536648125893788979017542974598832959976611917506710680802469891708485892531803636518205021579792367268742535678393770186817017991832225198462868173449861097342382808643984819341646203295062042016799402123997289252551237097016712163548971881307805524338390321988066422473019933148790547337793178219476803039357482056566124579582509741979960964001578489568974278117037310972193925097147664666621647205143402306799455212154095464241268916614974729879863781121187471285333916541857028822360790106259904941285892606171356519708773084808299980310513199223740876631407816239650489811361900459722837625398633231429804490928942647846913740327057842809265176164367742639224896379663512355748500451347417046000683762913239035502994581006667588422607355089459520993023002446395515293195674932908495419571494450528943321298444205468778098570553104050130804860496153944199634718582422103039538676391514524682979103554675952029835371463167904040929704027069836728221646054606177267866964564516522743696814306897872965531598808915309794907087131994582693935798968147896189006450675161757717827905984190050529847780338201598785859886433036449008382022598429142445126159009634908867961222178063677830716874095194340268939698345545978653496240508836952102719528516235584759744578749527170383432037042963377669466476146279051054147704160662525803042981785513023815780802802473940051715750295462801089856018045731374302194300590984027188721684003033511085773973595034304519237406216343656948330537522925834858154860075370930986192658482818346098468498192528127309600581189690860625977055843130547140292397113756198938542131149546371604761760755208286757952188485288947702088207441949542448652661306352900094526716156882688044857853455989025644178572325212368465702310202863527499130815156679258426911858213361523117610123515536743773608779758577105194851087749168391119695319165534170589105075498582584975638179741932781249810656366204047645665307586737839585449514649259962583756046836031402340484410103041762486850075367021092709643751905235153054799239362301123481511918096471485970748593360197673012978061253575463973196840408148097190499496914595130184555701583886680893625040067026157888850388371170940912650448878347989212986308822601867223828726309506662185059349854584265744536818861638901091985052840012592091184249355915153750819309092597639863514770912229065808330053053518372333878902452582035022030476510107994432529212856247324813178464968236888621515013710844037949631300554697970238373371653293137379647982783554905530835853015821005577037561434166172213668337747832638893925158547732265876879385070033914737165370919449985431882278493976302692647702561832453354842170254325666531699712926737293640534813003301033047908419500229861581590409856273496956976695525741596252059158158333842913608624879050612439028433028598079022110938562131821509173559261860351532560104220771234869085016143276021428247309264720305823999826652604824488925486121775955939397144574511279364158267071924585431064123978129657849040667641058795171545676005303705661742701712109524074842841837217820218080900543449080773432299024321291540976027179839687775382893077292912861595395493126645874186265008237720779845336717769415185935029630787992543231294108571517076013396814809573696704268876954250851740396926646406235345091421245055985367545611899659595121867190041229333929916027276561896850695278475147210158909286004274208843447046210069562416747426716178678260511463120382206013391655190267256763904471738086897616520017016872503996618077863315180764720854869940084127086753202087453170372269174990599567552143875998096012455250601564058920652301322471947023545889686524319850535509861531301196859890452280454976216622093419473955142132960697842290046432795001517634900491881201974738183491438357413576332566457951850086285335906549134304445033898569834472022141261681957825012279039863250407015120518335383990167010514466391500398778250340737296137272750433927910400481939267987344376654107098226704319363766949606541554181818724379625017661009131970627591755106578378161478394132195408883640059654272639502528132523842591316111279008656171478653451142225051088906154863631868990001417082819182173154696248211889276358280731113344031500238661141706059125023298521991860410773552581377426796961485258846328623880151342344102442403029478430646381930467936917621363102139109227478640120630410008345248375997719790695493624671423350615984423749822562304374795715073318707336996151010262489943217310329328913112545660071772788734947953186735883789577322911068474410258290618636093547527028802559408530075834026191523472304105241873100973688275466121836719616553362932181091825951228902980750210755401443000269755764607559952215594583668832653732369718332803349138676870553500567671893092738764326079374669107402506261955783276018406291426366958623054237441754240883010434308599130277298796020709348783156762811239314884338017046010269051613025029580438467668266963789270699644469957826507908556573024320035193562736179288315809272134319090800206830441261073919693719885685644162989592062570677043263390577492025985095327807511416189396419857019867688330989190800456826784594803255511881357944916521972920672409753623044547768973026250436329675888332440285023076984026380441149295411500907091097328995689322362292566124214717841097075798182894994751517320871934854961027784570583824769783549741424837272525153887797196013342209860561122803886092998290193158799534061365778813290758510998947755674169390323961760910147177259649347888773302782383213060558712362449307254994007917661177523076928814404541241719760195797463041425016932120028881114192109482232207665825191386258487625507925830466248368397906149983081470553163256823339044949770868372402305384766837053536209691523191378093841142037362545210901278369252747252307351764174611622650623531680905122180258631217740893116514926248745606459215743164961151489607756756278851575048254229626668995852046606265633484881984296365160667970720268747531326278662520944109964911638841196581961208533156290499130189711082749679442318371386308116153160079568447621524734305582078254926806932010528975452885384784461803038318297734571393806470093840768445789526809186830080384775095429259805121596123665215703204541822857023408683642481798199129470849823498354765967509508444887714968266183928606021785473187615152569185788287832395983291189027377735651517053733365416447960206327235810811181790137113019040584938438126152330603496822142475818495597602267320167785212148077808471097319737083365512114173401935510519614334386281557147154756652780992752178266414730497236549469302978429764832734499534667974288225542144845596035672694308239927633805311628569915975619700476333642289027595551737549543949276587244929112674956889523579089812722732621898084448460852451200779675782543106556823431545894553348362462710326824051895350294669193824058044897176273886264523171319776914103017501860542164153440457307928403005945922740056106742667343499810155883633039485952778566675802611245173194388669211170819336777805373173349030356121663285230957352558192146819786044589605413529867407668360007841337297896504555569644844133228521473156698653157770725891899110193075700696367252900728065322093935744363069990870693206187199796278375875449025543334620557735872217002028013500438342140128694735912959836801794204200324736466153053702433379134151072491227886476917971869548105066088905324235899187607104612957096493299335634669347572158215249534876446644149537070004031139826357296832016262182764780300823074330973993939136279893446984636853660934212604268740678526325446583693692744618865243803272984971974779368086943733263538711617256579095469979655339142602676341710531350151637033487978164420631174414007351460722558770085405810745568259793169233063241349551645954730575724795887461422185943123590807291288593545757800540723555718258657014922660584682273521243491228455545819822446422517293464252351864773093675048155761758255761965320741431135648382369239731157157439840360206613311158241708448525818136866085080309346736455375967649662540089618440041090391006376284730741971459387606785991958527370969156512938706876020264886029466941846279937004474663468417901119394124156897628967599581301623843738719432105496573054016259819281188733668663085913386515147491843022815529945781594582349991075649581583836364314537421461652624687896932260408520961323347739235702105169295041632702477378495248113571674554899053624447833386830928210926426888725849104612172581958227220104472017251347718296673868552165979829626883659943435969904944351119841360486938290100066660584438281038983404340534776996108921198581740868929528502307805695554696372429654092886932388018471903307614908829356025631973713423591857858721601772339973201007513125382978757019092562258069790142269767415305226816019196735981491741329316465900395094113227925789935689289853195179262855204039783126438727140231320539852356975437038018406332582771799251513354363330156759385833816695616361576448435757839127485945047225610888671618335071020747625731315578263699906101311226002762229384764104299982295806669751013608631814975910820434997478957871701824887859576346451926549697847556227122883809150779339534185034285424780519845204110570244840679055973580345338624731455555392409245873639767254544885827518995316498740979860063133427997348333280006976360952929084190282723510298496686610008807659440524913343548383948349336853707773389320450079549361131139784284716081066313676246967870679279255690524774694519165711240889137257226696133655889070923700408409824319779222815116365694917254892123062850519119152125537591180729482148443098619034786287325684325818918327748440365066128953752298357525774910467343739696804209143389393109203688834288797829569630635287742281068769667554685481477588090628837623673648124631022143588873812524091350357720107334327522467534227449898379621863947438833133180717000704965971885490071230658854184722684252039881867702830544416105499792679375760502025720256639010266642804620922987826186681562060810347104583976683760207559452307247627318710726836571473566690872326577494480846493039094392760903638034135639886562464550508219353904029133498441796776701841402561127663204875258863839532232452356953310762378994123415337207736303691135581481711431667032823595079059133823316118762337774061867253219129100713353621297027469504597919286340485442985392328543349148102882222223043015471211590121559614073940787790529703865829545568684454725013929623923165700208525090905992156984360871319772863551999988011080333646570519287742098102957852961919430943274793986935818782060312053790639274307512870221172816690753480885711242416655773491416860272497803615505185721774960147057170477334531675420566200673122330445459016130610259463604248151074267931065211015039406559543601008674131866778449215899907963679265426452389636609085914337582985512650015594260252998376548278659435866097819821967057010919180274484681881829491071684581832523022453686449396176339593241211564388631709569722891375729547126292219456372041336888906223001884744032843860762255620878426400459606824209079790677851237084827869684029762119395267440462573327876650715636790461921886594977506419380246137811855422985216369638244421092104173416621820186491140861322694978686672605606066415269324438755164194483798120152809290092533505826652300129672574243317745149047115809270949021749258498200673995840678485728436287047500691558845639682558482210479919328593075317035067314374896349720186506921432091396420867072707149118674508461566292922774600764343733250185216160486877954800947863154512523599707372259278877501628707223957138661364664953029446906337920318309523722323598836757239519815003006925624938675677748995306341276779267715742708538274352686669537699418353114297910855899152911385716328470013458228105845866531144000397396646603531538956031450068464969770660537823910902492902677263989538772356837260612539473945572108805528018730781109918271943453980097445654881483190398101941150416266370310331660074032676177568003212450487866608872684736123475094175125039926777294548576038527751669793589309681876948029863829392258652758644508903518533258263494256980662653673594035309923303810262156370561122565209452960843474374868003322291882040194704752593715763801918007771747794165526605395260800110605165343680982264607607621725506010892137205520140178265856410821052855927480183116868996691035152172411355415098053911430708441777646242258963636761172656856703077976849790488488768508839139603410168144773461430052175087220567996917922282646682753241354109312988404314646889058576670135561295907412550672796608445337938731508073421709290796639379131340415353357020112317416331470323204876111828697546048602643869678140356389287166837436974217399223710680349696517318246969467173882887077105130071222328315491409453952129875241941900761167194864540799596558977871451403886432629839225394088052206187218893132107486022508836361548542428106458549932427814528435833890400401824533627896790313611361401287367701940973348228240335317304029713199209450394954905472582522852778238856844532983174572916596281695109048215190723224994289950219637054409291144815204640755050250747645443806301581809350384047459858027601546763161265976789532936519058642401541239094925452851489188506978238624976464109171340181179881552271382139716724414746922460065903287850495500740514163643823883837185283016820432827964795354448132073862656444154693045318670462857100019881428648693823613764525778663596316267650373435433227763836485577668288557966905588125962528733745920799615065657838881806811711057455668948770290876680768599974649259804259099877360983177666346722672368332198774609361536388887420974526906023664707872773383014866674393631706338612631959929523695439677653611078735885211330707341479334294606969599791385888460571328907103958071005992056355420486203605934011988221074816654061236586370436734777887886630824380437806091076601253718936552527185768574202300119427470246492644262843680338009395190583214114716026491156569836081843459669178182567101091483597059566617306621194895941320246726240688581059410180255226244336082257672996467101231845744768716917022676405272592393639390849338117659559120538827817258847335776011836855849507736960078797221806213084078608680910436393634813872997938309998457821680352017488566855244831716193570925887536766399361674741405892922906881380962838253029419750570216648516083145873480492621006326768831437428072073673097239091726696406582725876551168845126674335351365285955471638194916477187883723619645322391394088847580413537641658002955514237374985942681216995475143287929639610049468454215787580288681868378469701686535268358388568766699532692055761175928810576710579954735809856243060954610935261911363294622985589766450611245143566312451223182862435355816742714768919222921509055972708631148444828135950113379378495778759443372164834061646751609260971546219978213943315343167645186647539209834427369373720744012364444022040544545267153028017833220752612985932857043420778502229200465913817101592491469438089425664971117301120570878936192332807927883182508188508985031662488036279300945600097268821480546699173145286537340755521854253888577400349014114810961946699945909398242452892364266446737997814072577092287368563295243221580721374335885163754378925521528984250384567148848362850727453878137905384191193984947527019931522898308759110127132923453311144883846880594833387878937985960125796728904583882300637988252426873407805999914206357939951503962404877320203095283609758999154363070926308398183331274874475061229659840676223794020459694805657176037748355862313198541586351352364445673863596004283963178829251763364957021490185075772740662873531088530670274415704943505234747989817994907269446842513507708261166082855187410532409395726220292514995649733788200837323633395133170329316190983773050805804868156406849929875354184663840822084168151787849081060181465352523492623216525565222158208393102079070089704905518752899222922130827016950184460804352415222355100073700027539035125041570664722778029357205295461426231063505631214703033852399525088071176340617535967674562095828625003284176977183155639838073109395142431269258903915167731387979369949013553614513591597007292582102322598477608987250301694788693255806600187078012622868747368628191176822372582672033905694496222681735846714662944426592481891983745809710023505331751234139870585102072702828181741970863423726450895304961279800619834355537539243770945607500383987471114311024988351754258645419346267829212989426464695760010360182166642230082045829675414797306875947439735488051984047100146375130746241569328969155236912505337004642248626404942083605129327011360778764418880958585430644043411772888458750996375506614836625438193776514398915945433503201751556404426209380107079928405225440424589773027725458528773055643822034931162369965983727441047807729802397914125897390389828104031326472072668838446293206279094606586146414320346590762722664562855603899616697875098264219425946746623016981264203260469694030566304189706459281976206279599023819632790169299086467029624886653462543177299859270191682822967816858418219440802309357316213383319704654034759709180370282607408492629009105100101004629757270922340653441827666483977452729385388524527390394891539115909054362016897475138877387250699960581443845151372310345445920927208260482354601697627588298087238190026938506772251874446703057119873019369686842958100109013642311741466571045279162104525950013297265018815573716073378668546012439623960216063279642687271625609276774097432345786083276515585764374525390147254207406386048895771508535128459971189575878278512559678799393370350749440478926094899122841414662966465993158940971027728249822950140487839266662749006394418900920925533558905163796191961266539860902178534542731744058263768923305358296067004969285803325198334401349927864154357394123453809073173809038291833844627161141693535595872368377410394829815698533588308529959197785581830758469702585280582356036062810026956445580092844703466605655610790821430097768132335846826718818015881550243018728495427938333657016015394052881142911810566960945218512345231558692319744610966009473388594363740634663346584371300124775473825315385114041847972485575422756305351450628238550517315621157305624170398298087134595806512770519380512741217745076755801645903086792907115646032933574905340306605117636722452957378894748907752164249479282473225884895576322877646329144764948230737951300504754656123425301671964643331793500026855696354759287908590639296768035914801375825301984045112822463204169971556630824399309482694838738846008565130172037574965690410206227003807107018689525432650776738709332315758577741448497800916418354161599191906396815817840502043641710640524009448619255604969024945307375659437690318935956772961932886305546351600315632274866373374243608447075648371261061605903764658760807275004754869002743722188070079564212132392903165752773901462309498897941366581909103547495581454466784068735006893194562392097279789858332574182128147968949263999262975519329052913962907303527559007647601441485945272402872640522795148134734063705023900005756029104065161019025114569117353820733674539509364572018561247700016221433774600453160704832936220765441387868285453413974885110629434939611770277821367605392549073529309598145315768427468367618950776717349924711904669121869324346401505317507961615901614033356593950930136446374266201142879283952987423503630878329384405587714891691274596631279985195456734087230157125477815892202406591168103851024838682171139976757430168861138085553757696568865448980309163489543904367818380441311321209054323983065351170862817672311174010166706038434596894403564443402143371406201760906403038451123809510266284578987927996952820089603664265196971548040262771964668003290410188673800645339912029710094679249112746350919963604778886070854175011511832002120106235106672501352496881934997793789251519336808584441585439245551778404383006262616248156196112745014086559758662442244882731608623423810728483251526245941913525033833169225236600624052773499081711882755966230942078780966667630553217511556363907681772399604657012448931268641244227776522914776897618947512524208291062968606900063880961431954013788804280765096261000756928885258074480341246826998638601701736441496721352154884348902195739106761339677939570955699691603964518868077796208106093153785981186358350971454301470357188670002563073911585394145709576175796178943571897462868108257314494387955809932653269312299850180250246608160588266729146311248501806030325526935741227324651008894324311497783382274148158367597635888549937594760182543616971117603676242824400261554244585535157438323264622661590468972811273128790652865956727497126905163315945749038392494799824714449579991255531355505407142040207872161513859877298662111166523957272053209913585052993055052698235237393076437310922047807946479541773686005786427825686247248621985474598819459575122546433248098028948774099185120908317138308620013643123942137149203873211577739352082173529975372716813363610689944466042687514623872711395692407427260420953621810506057243961785093202179508070678348664261919079755224636431516554273889347825792561999798053049688839502614756317115450172247621446082413488845843237159017174187033416639807377733342706294585412206200212444334456228617038654783256676526423311928505776359425121527947777408919407291465360575727603689165009124008154200863012913289475319930423830335441965920035488081773004881119516496928070648387485258845856374355870118020988945552501106198007027688621916711489368131565415232378974973199864815280513048249185533885531802518402868841759667773873412720287572138534242579249205670239464308665110559049770017322069569578973736450641459200529299359976515446024386225732587375572780586794015207108839148853605649773558459869985757497400928558166189013212322170578655852567728257471284674669896623920687670070689887439759169837329016386530453393144364897550995838103101421062433784796372494931824616411740916171959206974378876486005338285276718887590892691438512941064201190416811920128512895599323073819658125173855674971893643482835557122445220612706166289427387710120796348718817282213579594845871006627778906466742000541411343619518475235204602529078019544463923731133397861330268604017009255785382649784768220385133379713074293269668669419761083211484025870225068690102125108216339230362785979406804714487178157785535710160707755598798421999670893907533308134512339931774433856195933199827496464465298415620317974004600184321211637538844824489448730170765995285890813662997164026320683403271280856341114642785756679119822530759128619398224841396760003112859432604433186347872614230775975707472470632742760848553691529754897659690468275237718459627358675968423721307182048760946762681619402543428695815794342502964329318742347240450245168007614306526222487915090044654661477762497923896713052697731505414532469391944573965635178750322881764731934870094985578036078680108764510463907208541794169116521325467992184944438389956287977733208682455399271369424546639609976930050594217137863014173662512663055792313826029903633935304982329074848859603641698177262542715099102887988358405595919351349381077715654286683855780122857070657402999112680398135559144707312623622579167059471517649449762453407412158440902635019750017175304083430318135094942651357845518267623581914095469954646041718114503854234548676805959470561202932405807057278932128314290769505003654167394417164642569373486440076661698677041967220021978385210026408715252151969706792328662710258934548557834631284923921704617660323556932981744627031800674725315416042114445500366955077867119298604292439232372976517577972335407976495512479787424079768307759880120074044486171868067523295660516777113697591487605838825919444096189098974245729984470697529388803964763349832375815928599508630347406707419258928379383156795602682175525820597862471182249046036760925821791585637000683286251940365859119719432576346513180569972867960083049292202822940854252963160574667297774800441640026948238948150224442961481282715489017174688815298787429187969575372044416238541798090298127484296839835703412010966750665875330653711947947475484598480583876725862641460381321680479714726832449711293977373549857053229262059671953067696580317221420034186952291050424110125250017889222496022853440161731858443694850584016287839527850847874958995184424480630691031287872553276898819539954939934951677572790546649781247853135754696480690031944536580695370176084339383263938269074016478065566633495339229796268342061387752462842185392049760380478630573899004255228029541524632326249155357431023254609284462943989423943710994317374489527309024036240135521546126606051588671439211496219136209484809101613500187919387992938170000934723474149977649817274661213480922869286619589086485209029760566136657508036711733205818406330829889160573939772162041900480703393014658288256391285486830204654320002935169819213546236018831206484917796123490058862508510359250855801353806673926818896117614963079485840055177604833911758670708001737775387480112020718491326927735712841417352462511708864126091292577056248031454102045143079705296061220450424699205888614689503128014172405081175106363432694864534757112695100971625042475226764239044703973880863986227533662254805330713798567094516094836349018656941341806446096065930977268637019055556920805040571337018519169724483293352452073504749724046600228236176374457554571249443082795724492757685211029865856550643358442193935709199353986506881839252396353260519487696706206276958413689554672226801806093827557165331660140052960564061652560421255415869534015411092878558797203892609750598470395961796489210154901229380157882555451516553534025419497430791771901483448567030939318581170881869805224671002056421642281965372164139973783989526104511950812461167314043022075825400239711786120877020416386100710692357530472160099982090551370080269816071025626280126145390470841874469509836607215645839239296211157148528253778712070459238227908730249931624961296020551078295594954832151114659154033138471846694272528702959998644653405830735716928684731277827153652843461892190208726165124178399383127215479507730137211804999399966508792541776750155514497936956220849178467043989918271893519095208479401669649992151307838522798386947566994823584271968042386501069771376745186327159825545469605775987190940159143185645345243170579053024320038707355494148946808303653040615839632256778959939820109525410202128200423394669378640682072323274094112713825635972243067908115471367346763969952540422571296079749368074660990643357528037844765301207125938298894170909975864443404009054187616464641094929521640022900277206385091649105273184163636726306072233079373851687930043640948665545997130812186223713040098390693857592842252229532570414977876893150189168883397691795268580768557556106396859194770062758415087608562134074824213200907983064579190320970853954565697463700900881918701085860441289643241717340850676272670349639606987798214200283222384601560443820480446472014800656404997511357130755606284940868080064854544062106136726101851916687538251963157313862124360276779596897585870244097954138060135001746517226301822175479897429328635643009903389759290589678509947515134411861243349034696016497755150496138639518518683785350062475569905189934248030906498859295142784146604165437935580820969578361977845079244102311513935505238755471557620887429414592495791573754237199987461119511404020407496246392776043930553246667394639644493070013977296795378443004215171175140005191036060861354764206643883653834117218154493516655784359360583729171395361417872255755499530386163501490272174361104272658577990851455682187650710562712095358058887110573549986901068154031572633459842381458181882643173755505978447704108851378410710658001434120698822482631383570657968200708094859188359400882521372756672059818995921589176385539868500443467125302454367667752321002647999879764560866743576373093423135021273219196731982139099097659836412569377319971425301584887420679890527122184144760588091589162764972796715439964346574671748301643014979053997633618062347600573341338036682751369432915943138793268126039774139379508438695481554446014909091954702696997320188528189419438297000702606971723872234044656462002977765992900171184496501421042387217799656756526893038534009254586727451895576049491084932655664896491054479051412613419598419359388231234827279961326636118040720400477594094214010266974016204201580301700827004452805558698399365112664131413908452623332973785715764399796985368005827228451719530507139215692094581977039077186029520109593678380061673690822699914553837485663290309938967477611813110502760754013197079414111395992332948160079881819654786111109046683960215258427944986954553105863682264131588199526949570131471648092408070922411645374371672463421223670970508039388523519664366831458813938920568498684992055100801236296773888265447276944073793180236014200889873562275908144363225575136593192691365563918386510301324112656757521882612802513920645241187437713503023363193608753426466542067092041514893938299105800076739255322138208422818453851249749808220427013458841846172757730656719556323295346803284753042904406891917577604656828333011959002123932832946232683173870984296749120999020325097326065326867818886392199546232945720960828156597507564255975702388298906293164922821026822873145412201325768772970390238490615846496334973523681508963381182854082514451813054663492729422315191372094031001932945253358434686510289221302443076484206737266303994869572556617103708250999357639978692703787224759068538894382046389379273574357161414963954798476351518322792424822688091265657343645763656710647091814987637799427175924615234988529463116456094690826580023316572701734206374645080578404892933054100723280972200663242623675085531505824636098585867804308765047926277982906362440260461098779217008492261514749385466370083841462023135654863108232902390259586132882389400974195187008429017605515388484978429795218902335452202447959933271355801181469157470904230224026065913293326643523428356116770809203850140485973076223094543241628488864851556856030696578279301133209633604139615671765369502692328321528508175921174756115654470613464920452532761629259429626689715940232001027941872969336601409612588120633992117737909451007909321478139766010069019422425887948836411343604411424778955133977453923179768115893786339586551310810239257849146474980932962466171246174522334532635377001776362000638963235058924823434723727227898557883117056257853521421623644638166794792265884448761796757140492537793378889600838141924569975482993947380513457975794417828677497572967554508423213206109114383459612463212894401985085303522993326866554837274920641959747642878280430289671674191895003468302425616861713745746421623030569227837398239016613813130682764009945450795738666143375977451604626924298475800705212523562517016226997752455842947110735684941081314909021107121203462125603244112228827997088658957391805632185524515989877848807598684422901759784978108987602598624993098882873213454214012298233188955562322881695598293130565171957269774118265113368180740780478934686731538148732612000896183121190871878093068254532304732892839673472393117268235584713097710958660564531392180746518036325464858940044998028125685224352532198620656223313243153336225558054263862863565714341703181623994149446643332372882580713782536202690089001556873099723097873970332742918108373966266618921319675958702959936415803785403979110192989612855337325168228232956175551803997011417406884775107414242209682062053067320097527546062180282795628476864054352638507684096749163316602960761893435983104790680387962648249299478752102597615070643921904096380776239582081706733867676316311074483118371730945641152489760680138362535326700193108051412841010380974920684721766720093012625341545106634871574980169233594518174748531666769962784359644173514251443958843258534709512514599718722029078922440741076233845072356921527276867959576253598884436027147299283306040630341011690877175592919826937768447409184018331589312070473977945654938821087446127302071206431059323595917152056042214252243053878117744345823437104420613143526142169040732115952506929403494489967326606396840471659220878720199066725951179221900594872500552621474709817470675429642825955468407411232525657661413359763764646870831524166446660186944520767067318582907591242340600141618017689741542202896396321225985592906024279144531367244742906774553077507746293615713417960482607648731835868361416699720021158000121896881185692972160549580518530095264466135595385062778659589873223010010561925860802322736240163258724239893675106673644270819494690509261267513617103545950260311280111123470048696477747061982613375723099692919076204262443841404317702273307596958833487523878677275405399287594811991831408510808439530117804618932547123803519650712761076762851349943687067838040162518539722491403872456947264233405444259584332917405209690033578550720408247398565694455047878361429225194663012006279654730554583218363146807714191533067191574268724529121353365711990594947352491603650660280591186329399802990194318944315782747088712340272460267658439146543619656597550147916536550952612338958051068863559177323324401753441383720091366732898496746489421585644971804125420437045517254368622856378207316171556909516314681086183544070538548351619431599409831822704397428372661107489113640895446238703076826886949451709254373406646565966822167340124038705385813688140178845691080639009219362098674706269988634811637783171419345537548245135205341427261739138805709499246809482928757862706764199720869986564266976525818897811466906702671615278456122237042558942048945000893350330647643324998169461835857663214307459524845031567650974346589108763159079624179779886098398945290504041139635479405987614170525912631953950854971147116298084411693738648243983444585981308383229906114431379274607286574348316983923437166720738081213635290392702222744632266590814836548825147275594189161400757667579872674579205193811919068312060761750550517742755707107824729696746390572126948435339402328541302638105981932829303390571573507709268990151303491022488144778352458544979128719546298041984582146316856497797631490566467814189449557341897234260246507287414807050925350529624090177774048904151021300460374190266013335264087773659385060599545843943024449672211512435937766064440977942191901834586824338769800418275005857097472562057524192232175200384803755459117728688537231578923209224811633818238980628845831661357030369887750040436741834362337692430858687266978641142427865103538362761741304010226340947240590859889001611021694892702715523184425560885916034479208986910397284872849590453604062223358721891528652266449329285937909355500498900342796720277316462567122258527710932863743806553482896295177466305422415401913328637232072240021946618342308553798758432735052127666756033649315232529163874501730289382989585734879754820561808747219618086449376338012103866856947060972790761395352737034652358681360838243255145892114457241937274651111491434209378267614731479355904822012408445219708272755684033808289854864794882316301469626364407221809888574323953116241267318566468331815409114242593291597740408851367034152024345067469735668389201053429905867748460229596884176464367496517330698082180182439219094083384664422189568750051091676583397735773668335885740600227375495950185497196724075489581596042600787804600455941262709903061431124150940334562965238771697382979829430220697682824080052197535564652885804270334404305096778071759413601028952821481620739405173228056515173835684400487579421739341047960022024602077511771695494567671657022033333412671607176180328956047941636158624807013343981455439414460503233608154970800101951519108665043861838346359841810964859203215070479767399508864621738104090791636517415609103483548728186400142066927142238060889204367369396275731162918262396643330499558536060908469929782651979089217246226590269363705380885135208389255338439855879246940532148040480134032085395104388265635202068249047048060492617081103626095177073333815860887599947609791335586368317850553927812539065652207239134365522082351198260017404093532126668770903474355211560860785008586380271920741507543282989928069026786623349428467770642538792903811098893844290521334777196647762968529992338073388133693293543689352969441264774090301175258144972896086092763550179988341232254565290525262429389743852792139278822050718309178389808377133057683920388023203326802508573022724981321838815319057152651580853019860447325764640350616996261073060820940651408891988945744170547384480898048892982916886733166619773073442510605579009934513010789382348587209032320212056803495260111638248661196861865084201619638199521683036338747877211575017758500921210136375063325689022682087184675228039856994721059026904122817911174933285604260950816951967717020481850695490952646360801362103883147659623613457471045449970237414105697650443894125310298861353543953112171982568236877224759679129705399812434847064520048320247620026785705364069877703595967308115307159374024525525718792893534227211029258387533071058017426604759152757029393250496203452117901075346065951764053231497016857623214454683350777192324512263709288850081424872476233115376311928798384128602355128439562991115421633796405302946216627757037426407366338405615825117558741543417778269857872494500506597452574517947589727299873084637505639890468925094203049832538375296913332847544033261809911632438091482468396536562614188032048691672314397696038613730364310813973442913936472843292937194823488807024183072501179345261735826168310845748563866827232968200081703705424658457553016608258987651964940258867078247904505838995735014299982293996212670609356230019437557057249914271413677179775924131245548504471179385185287729747597697905692005826513516306447594067609418747800650658675973600065642549886157867385263536837944688306743200767274812789626626941431079437667309565453367641514326449250489331363215163782530166583484074979979548373695074777144293713394178610038955012149792050608414160423923809852823677234295522716752071035085305991574753514979986836079403469339775170692857086746344199373572969708746437467288650640762658337784625724454900652388674693107769614616988342018469468188883511121950821355414817571875726201171580397434136652705440890461701185818249344633306037722318970415491853064866490267422057426202254744918317958880319446355732174523303970962569532314757520932979039180063928353814814150094622451050725832830692109405551620063639560159329310010004606493449630005776059770456110102702647154252392254038182994024786621224936512920638446201820273942093694309280844309579199890482208380160363958259931719978948187718161456552838939493922228531349468012229117144604565497994825846251555653254721799693867517781314464064837492639992830733613868024900235080303849506801284539225176850786525293618442207722576922529340255038269165046687943361393820674795231324115268828803479617446753614314563163276052057423705339947847696231644718709417250019095375402924721811412957619420634314764196004679839958375629783612137883152763078348462968544702588300176501086188536194724140478816734469988017203892414952721486823037129656557780284416141152934833656950246533373188385782431346645494701800442383904491975621654624845222217026971588537711408652858269923178975496346696680969470307528258328869320670901526234262410134384036304507871299823929559758292558936349689891501997231753776307317773832910058608449741561676329997011651736139580918237186354161496982356700527515341703899178105421762856050894410754549517403340928109359996356585132180839684238833510191513148697202484134307775087696585261097887811787619228912025854820399284945267892410406878484591815373296000901879328464208090447639389907515609996595738420147443045626648783396235314454382013683313628359115267098351006966519470110409800482363360175308704869999510618456259494518916685546837107431309121686759477467895335319820693199395617919532720935368397258480609894582790099736377782385511080058078501056625167445970769316517324225891061194341861157419695687426575518045781706188349682671460658042655434991524680784103853617835288878921607428012070261046473622007987331841333917443510669909311304761018274145590789596186923048294117959942071492593555598531779141875295270436353769781062773314573710099847818311206126591455079181674748058004314427967873281365415494484649373188164674017486303846050136797407675962041387824797758455698977571549752261708512108265800485253311042567815189108406877342165259563552562704301231831282964382104571746083501210103055420135972903753160415874865933815144213635937872418205067958453876603895653048575526229625658066322169963957871340277826178249485973698844267099352006245362121058995233088540290737912809994426517382008663480565580789067186885749108136975516013187922707716656301567382942787475332757532045415531399226159881359948479418338167218615980287772565256279778626455061312747908861834944722617022493942574595872913099107524096890003974582681390968868088192002667843816076809239987652428242169825078260963283127224476576840401341331783173656067880045553290118847970368427744138831556364125703653171748761889490882924579493322692298435740597377751755968507142723180497096594120459824855385995266662921206818991344326582266026216480470689680812510981788747231749329773305726201129258530011366152388227104036365021162842725747479037872847647748495702261456818912046601161769062421620230749405129647139523100043171667518203548646960601910063353928217171419553146254433975586305960777282529281781767770304013746626435726169924664567179913055511349300382329353812818713538425508705808368839359610331481123621121054218636231817060508800859671420896417460641762129131226621397287861288178487516236526328406603592852513407222970919183772334505291459650354980730927140362715414314913649243694647716429083658019914934588221393145380002473447551742112883855474119650463618930465579511478391729864786471614845994268579241433564876836263422676593562019962244860853962755689034104435455329090025308904559090582018955344910215067172261169028815283665199289022305245070724716153063954934457769092002824157422936705596453299657415448443471742885472219340608917409256690705367409502269627585895900420611136772929376332434516786877209135544982476206518913109540037055365246916728453426512128151174776723396257900775933676192547584950465513628033149507439843586092078316885133636479590365734864968741119178798432247044348294102121257377509433116074463592983563199285842495211736475256892052277272945024788266035750879929197265791839208073056003575216838890339322631858040984416281862881318783378035905774560969172988512859308182338197154142280676221501832426201606564296063560187116683315990862828011313919944648037104776456811562450946211671787740287047249815646263574633306364398629029835723361078180650650559120240050952732424429136475912360787780213394703366047348002219987574753257682900371868955277132127872915326722414868141639755347198255207859870608852204055170028539510961299637170479875246543804976727821739494907206741117827515724674647368068209300344767644998765513473091625461550630692806684688594469509087826958316440419464064238508365485802096437166409835861672528581425387943902019000157036641749997855433754905251687258427226142716730717067931868852873479813533088246701653366983161827127569658621614713208517684730816496525264396463790882090299261359736261839784490288053147333254479239173261116602062474547214671458120238441676292140789763323718361551697060152043396313228242782497990195124437530821918483966332819051807050239786427364119300215334925189497279572584302746789088608838859051333024557490524399731983777504947478363851432675543250072376529345672598737893788906761180737612990736487806074205417609073413990281048551939890180406286706969897297542351319551081271742622815857631400631184509301113837518683076945971812244292238397417754581413546433055626708410040442250860757742020028311616619430603338656496960295528091529551318024333381320849532255180365642675123697931958687753294416131967122813207904883361081680964101468516680599239004024991373653425520857170973763794154785968574542566717451035135377276589683002680966183860527322635721991989062595524021405116210800161062817595868135116521539455081999046121120303151622334182613721842276241530634687819835331107952004510647566389564304369939974673962269162258133896906379531631060744646276933140132429833606582830284268581318601428228129455463333714793526640505061928607758188765880213061669924047703398284725933178346652623194375968510500246050038362803238707346781960232018805757786100355143822587121740508197950539015386246211689480850547481647302662409329425968951327786136921999372237222449913049658626449165027528134033238819463707539599350936788472687690957308047645616264472634070313447956967042340625480839504443975680109375469977729843826664315153316524939414388706973100683101816078781117403129924346569374741824205064108811396801071944006943988622771585599364154809410279722819807120257686743831195927680731521755477782627766929865054616558697854018534887380523979388727355948018297313056082965836036047363865077491487583551776716904997448652197474705934796587702660653447321406609416144270646091840517287582526092516322607434041411334399952284595255067309629012741237052629544400109948125548214229860308725486728079275140528345165346364710295115894122143899545685042427011551709986238019324116686719125049823281385549273460496752125868666524337551031190241884906994482857949627362100538209207818069889079814623026830930161528965582812603227180898435676658702497734968195486738099770076440853890716976411160981971591593381247589163317444456805973422507154935706099944657508101912486250035156265288918796336521361402148341959516655236134518196207966965551972744949804095143929947689223032987890721382067436243660624437076681387959106449940366457165112350325706854025473458821250519005046061206512187228442821779854007932522100548360615952234670611850359461690511185994090471533404606262538514821935086731338539740304253831118761287585222411297667773416846974056636451480233788771996571502287606356455290853781651165278457267063092265125387801453442519728338664429843409728448882137066723684905924578223254474367080639007304918254322969720328265378369879892185787808476375364430052535135356999863734577234222241914366799348593093407365683141572953138979289670459751152757863454065738158918063258989482955515346226743617089068010344281005443028575095263789302496778782116793106940948756802416036660513196100212706484680882438940883808961353286481900319071612951145622078330016750682995547537130274987547575329047776781808088791333267819458444784133398175291306984137248183551973587750312404082092465895823307293508846794260329666597125682812461725773895411615064540452974348717101333980002571521904204061407307082496172612338658051862501692327728687519473069173059146822374555222456375145307319409103923046066018054092096231563236275947570186401177385784434751679908151275209299318687702722700922692159955281798663088063147398046905463397879256026917829743903430015562950294388582194644481108148598948285374683480097961968824469911934824002541574815953632306785534565114014660426474355818243898966804117653758741074817280742826689843300984429130814115480760343259628264091934996999209931582523583227760653779116916802802624501783769848441049698474151961485602639922674341737132502437203995841197139053471089060515959376606715637950304418749518364507054520423770330889775015902286441609779614491940520785459643813573329431361211173230288675006681525850573108270405330799503079625443465516091245427800516958658849812738607938007690520433929644082663038078682606266832138579856345502303214885202949322750429978885567179138235293440204139020377754864331785388879590988993208955761820035764630704790780840834063213715033235556966081128781653242449972468448256041835965008436111130505891364914908751660796268432069038699955885557693946987839350500433927021342400396767570646254957110162096452467125458670070584197643593259684772577850091194995264907924664614441282070037114738108123218522015126464315406205997810332365899591866686286080771739185177041834582977026863119236086679035181805466541274114484171466239420758638806076350115262491556930001984509069719572503083393109360996871447611128028120125055025551469845286150872359941414877281320817021117390423971748492267176524643362388080723393839655700517339135155452581172380573782545011671996403167232522217382041753581463882386822402659015368112011018578707067991876836427338150326494179994115141428813176703010414781979361180896035733864968989815679418084325565017368237317918167236166029631266292170314690197529154196692587718242720429704877212499056842208491108296536905701273923250309537178222210752650175509145260233742810437740801081189522567149536927772217762381581537392235707975026764494512926052327324604836161263206377363465277046184537980078254790593838499898777745483267511920177308683812379178375746287446889800293191274390117865646274628419132794970147771502893875262915783913769425860727891571814735926066281389998722898420864161990176902041747715409243530474102435231031659257705476570382991078837203230364345635526198096879620644030071641805750482918644731885783222663949298183117222279806904920844756306023595531562290348978287266078778337967134251908706030153126289375075164336106207020572791789310464109715507552127802582689406167160082711102513362014158230472910615330413889627799613736628141762699214469004288717164613294146157470144806818080438834434219675994554184449121647912643814559846359356804647422405417503965235155964923081555950053566007148340348384952876634083647037627088197892210148729754040276212107370543211086586386658745660252761734320893087141273534756381070658820296124083741441567906572555302395706147288886883488846367064061131489511067071707821982134559379773975046346654777065424911079585766120307217192233817362879689297860397705572790595044756212202473774367832437192550584290111066853256316777389039124264498718479134497566006399260900764624831859223585242554958161086166054754928755034321326507199449798933496365930332175891780614385966254157877166592035938445293059813065932255908898670337806046027568323622007077950157926333444583896324004307445990059785749610554714906311224832764829876047710968403502381299548019787603417595714917879955973369923762499159446716266445377254179893653041960062723038436110811758183233611177316579788649685534551141677035080438100972799779251626678665250331457722634156947732997405012409943766934524418187154083827749758640359197607991670649053820653566630073226024213913186299519682550260171616294493746475513280600955204457452123607182608603534448112933559956604832815101421134477827576405001105432747330814422000944062520743385056702502040637482711018861584556840136013842377943334552161437079243017311353015420658638960493996923907403055300214288990503030683340488649859866595411983049849541624279653028162061829654801673207535242292655613681180197764654039944365161813935285006064781221798009768958624024306282150486787053086552299073187001258193204284460427401993391570666405617766272534092077837190629127358458353060459666751916506940499085364921204837278630876714453212391774177590598515717110025194510779825578021648350323777188454069855391899107151386444228854675432532540170299989977397427685685499242908494073388459036052269453759220111201066724460476266899902293629395645065543653328919345620712453918902688019366458556053604830957329827545379070805049013815834231811811312357432001611201639844858181445138758222940771733622178173379946010626825168582928246363957179382845243442551915626082176377402191105616230220121712588740811538005365563786937758191972686341435384218728077538223546119130614475756161130995035998879476250018464656210467059227758673791290468074918181140682116044446017991825940164086206232722871355776202636407045442695799514750787544717984822007620702500164277695410293191976779622279675527422315629584381525927512905746098990555708861095498692456554584144096809281348422950432475657497485950425137543218675544260085995603265242036503953370048135033606611932958431977749726755474265726464657598151972359607669245368158100611220970377472183101940780099685920507168164933245381656491041684152026228083784990849243824717686136086749236032777810716551237176458282560580797147964004752545019552725178878907564264401683972957889701166681149174698156299580691845989346312689893767472886713637297185381439064291892637681501531631975461319367736266966114226689797404288734476941003317833188175577122496049394239638935512931321656813279631452411112403081647550843410971704839349944208923750350336353361752556192874957724351646663348344441596718761657374694532309884138797655355510989983472777333321012037966733957757751278408790744482990943908496760702568122618564549344877089950158689598830064345382476762000732580464722077172633342965172231418404355950057038605786484036561181566400314439760320076846253048709976827746728539614598516758402010808270101309744014120082744844425057253202544935223535363001689629644156758995608364938936711119411627052712791811497321026629624940553511648598092806721096065016937491185676697151970741664792585603404632784837933518503715713262929882828297266994666557775534188640920267748031973419482174510536727514302147362704677923342143661453618421624078583553011679300186716841539455009648952473788458274574338815051455928533703203053855262463855780081083378936650749965732133022333306191108958844867694610989978502055321585005130433737434487676395215219832618913538296229598616043584821942766425008520654840273857285684918960037779962886213640103412149433336757628835903718363777358098541074088976084343316088452369634851199352177153001799056978456563495409192210967496904495515278424995387565968952532216455397802061647670934498062808554937064465129198348888992926544462027933525845041721434248758333935025071234933519787553731111154964930509743432269958128181276976350702299826029019489535008714668215073796711362512863866314352864629626288580620129270991702940066340568698655426381296281629928790571542594605957791061716371981655515260028346330052211309213067263115672270411779292437580112977536490011494647106792917504756822198259608137504180031119474040847445444177214116835396513867419458740048043721306578242096352300066936126283367468687214503402531123803783043804701971332057679239113800351266892133216881966556208799250359147807343910112608926453050762972791768270182287039689736143773430278984152159695795019128931156105030758898307894311753725510255812633396326206824262170033989022831375854142315920841812745234312658839013079745492497302680478584538996891686578489601646592858025854629087043421039832869512349782582974149521832354119846198213988691020136527785812048465423395992652808531333836280574771698250851515452035954125910592775150960325734495465242584242504530416765804735529847767183783585695325043884966260772676627753302907837112827370031673634093632599794691951169446779408789236708414747128905821585107281823741930371560609356725406156479328008521110923496279106087768058010115736891423010534770971884261589082720363073983712338790960742622632164784728989955473906153272718780715984820120728237516939424259346877826167709519955942996951053254299771658432111940719083775083469613442620704044020077166728110923534713584045824567797076443858107322794129627226676904725407207887256950280545371482843870172456378865013108963052202034149138275654879540815318242231638579283649611250972819508034561759687974049418478377413396674595729844925023455570506423178192255136419074347594450155822934993807813369642529922445041938730154220231786832873024123065365589314771467054626153814239649762780945974058455987867745383150404873235904558095047353310168273486952428285134022715598969243163108785548924597888357119698169252072119482105000018197155274630351722101197691576235652462146261207717514956396191137821848282821048647903084815376458441938307065297563456630739697898207785398180838459402386827262169869799804597875910800794545423428537665528118238933955324172035176652169713525942509986889290743649284196967818575196255689909736555890373840710951347666682161289087390982771901479679227906519696538600083551087840037775161755493789509062387281993303860949668389667128886657685676893582588562065628136762658453624638193933040726035587455457091664083045216951366799606621292824606097976938828497294314569124648836376219238550312047230598815336711978375196299178598913004020947069122698641954997679650954495268164471023457259471952825637404266357657609690527761126679473005174126478797127121072189769557239008888237246442159886859462167745953071576483522495628199320618723637483482167788525799607196438359282088534844705303012259841649810273176355434341287527669951626825255797867395346168699575800412046660876364695199086167653964415692974142325586027346379397032362340384174512875351236659935244439296390085956629196780759270427294590928713031643272021859748416659555777722586720691606814414283244383214465666033123296944831804336856413155523676398487332426705939414651468174569966625083348070936957175627419239749978726646029823172779527544711858075119812705320169604747617452172782411169279611534157547033091967580511303086500931192430284711833478487902584196541420886461821482130026261790775289466811813420894510636590335702117309796190526287280945905719965486426138819165079796241144282371677807742376668620410841913485992747894565528781112591002114697525284271813652330811757914979230514179001903716366291198132685937692549092086623176626093365595748649144644051855611311350007228775721722155841074040840451039192158096110234697902347824824796801913515553775155231666708862488060359559358623517367653248806151698816155467968930123740857658592325892296803642027797918790143145325648669193478787798415146096761094157563280231685390251666943046713028491338828452913079526823751998222911112317387283920050393497122385754333718110006409515796558801303028056829992597766147301800562015228708506091708252010360030412659998301552717617904391831227538944160782731054091219300057538558522958340400920585459104017991079344510599781678621033472958088915237991936451596406106164415405128671996656910952302508699086436096368071372784773934487011132231822048021843845897136950079759498010547536191035055689707914992445619076456278823102449093673345338001909720620219655377352065248084632145896355122191322776365499004032522374058389944017266507070390678708653637045226974283861433177575733546205154766318653959821953882184143171557763638203584258097935026609805815573958559481529058189323658464661582672678156086157723252970550073257140880357606818749474239246215192496908900024638498052629649163266599690058767849765355778811251439925498509600041313587196442661659341270112058989769657831144370297196118900210695172259141162670413802855933297341889877372304963165496169101919216581402101647236191852172205521538738456673306153383358512421129744587544778188054703034454746421855550015291745997226615342170659008517247357568353527989571807225726245756464011734693171950394920308254694330056384083264479027019394470645896859503944784783070525114543840229459780061325333045006082901490185718249551545650765300634438402095062182320105564663599306437296207038396570328918734525190560946894772596741069769221145946321595010658155323929787151365922297533650975998264839380693124261335020537609859756378437002793415892274473376407197390374092702619327405911387555992621979652278459623359814640200227665583582607908992910509987016141056765713088157484845884453708910903654331800578414273240947240571610899416526503801255963341332521077345525663668937115516004886634510208373104980840055226890607485134584146645682856766529353821040249214142527458462418437367679739180751527061285944772577623658158010046402344542232579790604718843186222524167431422632028510081206933076949420915411214476168697556500409053245009490340796678414767688732713528349673451875922379137453256936840886848159683794781109551269068118536542959942160589393160902920122220348348170978109164912304921289291887273443842966814852498593826518296457141031603288272901429152746381397881260192841296240392741263090229612691454971114352839727093599382447198294241145795207226334621836794305193036887535293886412535054965030709266060955898870147702760311240674923041930069376469435006336885573110853544429342770280180918863943870614650294458191269752901108937226597017819312467958602233038746484091433295359526998758348203309586258390945366446130390952293625422252892449111121708112598344275631394857669241545391074441396898337154462664384285338662125169148052756131711082728004785300305815331406200032780726085414748858051090646140273179086251196205855884100891183203936871319658867112697870756367398931419740913940550939006301893153944643825048991008376171538416787347898333020915807473827997917001085512924757228768396553421938753539632054627261988158661772275900056824927071363233141155107302520212541435968435445565649955255645025283499978728647457588133442532795301878451239608495159985155724611471800491557394223491169888268664828472089915799660442876983059005452372887520609075992301509127939939155732495454898181810431124549218424219980763838654823922740261538671676530746765633622225712822531104317352039330598109807357534704873268253000207004227625431463603868383970877250382234034848931258647190944892676828773979178039104050029395401032856889989640489707634747261613597127796947457653429977143161760682652715925935677631154861062241796240607711919321146291957295426028545405577210369137336544946040268844192743994337492972822082095506380296842288767234804828992880641937617680664960006247098721086271091144758205029077187825240789134077479628057721221677800288140426561831696299645358636428608828788896742146679826941082748356226317522490956227432012729322703456429732437318493838231535208096568045413343099395706252757235734091074365634567991437984214824805265837927457472092725324366556029239771562806644090278400339921320059613981792750717052338147008522279766672809165317013746788116490829959395726908592642383185971442321854365729435848939317356050747310992786736129051250310495708589546119464622056117664060339696144884279356269528282407924534479250258198146142858640245395849167092985195088492510726506206636857723569582574222093691843545471386067312330573575088496959036954081136998849105009715792100224432821824923986925329159292351579215402188243578540864184226305126601322501504433252905398085027547987289706438560199034575936963237329132481178299054048162045383600074188672944706426951541654480296708837165115979280508901066566469721414366352420821577899112323301029492833322988395029748182034021281348691252061029204793464270473763066113122017263616176699929296507636178850188976699353267837899252858764281531570916591916204546757282202875287464600040003750048225589176870546777690727593620341219968854767517758068023939222955776947137285245893868038082104634617134621448808511766217184345455199271023159068770350862285327155986076613594589147742176056442120987018683025960423612343690420787364672969303130396565224102160942866635720214776605118198040334411166508781705231935066729981756727634976703891823537532559110032061133897746164974041928095359568779937265890932265971769185512712137550200177506681334455160600255629122609543238951466367424660759354885307098118796095400368751296584101870015042316108320383674213680209255509194358465845080015044462901600350258213527178418897638089419193362633961392750498489313689473555980368916221999440628971696470558101542336262734228607389203168569275093935600926571904080655004982204191524699533289822953224473540423246560553214077249551747156662674693807554683245956086175766015023935600899603582344708876922805297923039159634320546473156175824188459344548837650001021351150319345808740151344150893055837850723231748351627960402486519965588950370939817426478271245135579817365101065581645132014462981299791772858884971317223687154977833063169714817916387435575538570667158957689252557569850168147389119088902607738583055302315169350366925823016059572892802013807901941644181362691030305497433384094912923868751761851322245684029533918094785610856191480274088468543707712287057757621673211647366925238908750766687120947489415535832157093377914535024976812810290583082028745830232204275792851120570478839977557745000005796434740390414178101353343285012169870678659012678502286982140821833554014969996991687370672703190182750779774393384981090621675072862895275107694023795209793108546331959549916778316846444915612867036099385887921042461323993874832949481135077619884354689911380631736093764114496875141861836239052900974007258705924425197884665477334375399023322627815007868302572724020749757742564435652320706697007772238582020801933083258803307234181106571297669126465247935799516721396239998332892830511416526330482209256340147574024594559122588390299761606137536089518448391234217221346826460093901753426292161693788683261393772364785684797792725070474974916302897796004322321150929513128546230587426439629693120757953209606166788311950198910536987681480015789386843663739003267582792312240959948159105937380018201467006963189544630963343355585889483491280718201767199159574657556652188832853979464303581471449786542523106437776931242605208801218182744177981893808708261871457473623934937179990231163414570246925171943945162259274581914096767359390829422238592620659918617113426119477004492441539873662751467800715696762844102940277327004862041412862539889439474880484012308692576108600031931628013472033712986487190530771990319522851552149534552840636758588572822549242656862821439541447394419940368382447908161239423337837516407162685313617976499533327824965114863863877114203663564885035496141281674523704660331275750706075717387996802305709928384007580465662813847895223284187287573067924589625535019351723653302342137252771028981015445587924396783199008092736811519955350177522970589351185283828945237692331587946716390348693283696791883529405439472908684236307988546826134196364470462979288116526546010202953366596599892796503817349490515640483375859507935776176615236933551016093366423270205996239089791993911893856826956906371786963149033035959803805924973646280856002938637765174094997997254695950077473930368874406753998762527357858840930050892592916068268273591264108920598274971054647591797337762713465236665877695031731175702715494684528407856726028361883851703488971523644674436867973142114883819945909400578147083545843985080540159283997039068972709471279730135910549892449018455973846863917221703964694575513957482549462979255280142179154586878140679339826013362295162567136317102876936474937216966263727357886807050258909984234124938885469103875604948994587968071036411266632379131206186809664957603192565814067440446974144944041130317258430797123450028711389430705099103311524582566121519196002263427004523158871454677198126340350933643122787053532919153549086886397691011350530910539722616539564193364363492528519174079431776942304105462363373296242937189120932446776621433422577807141893083575382589796528143322447264122351010353761837218716636459925968363706007801452189280378451280624376849965810139049387362751845305103703782426674829073419222301101164697844774156652832489128698226748789359977761531131909059811557552654385788002523375497715134566165031005020652250357645430780089638241852434439965240560256590999721454419980591280683314959576008812521608686287326921941207600370623614458946239113632306113317018455943737209480094571142445528715566900216033829941067412818270836434748189696661810731381009127413951791928581535798606980492097800764512988641013506822261404321368409940305524757403390031412498885211527079652674877110490346162662668357516898630015015517261047425091781484717617603022720566099644632275906823205151897659217871029569372309807491456564287291331930746941707167255478903960712349998306723159859997784852237981560132681992460708642614700159610132044778510857492941464483616978345508742021675421096918116397319777371729529006738353278252720467063538390861510889800635807510006061837793008282049202209900295170994138938617175953891314932906561016485824204208822973044181176076979737507838782954621255298441900200258403824430294034890359028764015446793356746708086994653800495742265757316013454696542311485877999035161549209088844902036715722949713410543126134512754240215967508400979558824232110721707976866465953397701960602868555708798944769334277123975845025705557673283413365789884921855426510135109938089810322594828460677748550334114848891583885871944328065603374001140665738208287166389605864630592661378348792341051452142007536101919977427577353286481045360778151566209585290848725440324078507225028339335617844029517433193375972870337057186609240789586859585280527149900677707151895149429981032157279544349407174592278373053216838429388937498346271785588944156292840046852716851267139748283795938429717548519402694029660066206248070615244785153129638343787684593626954026359907596975980293521865158923971408834986433611758333245862888158436566224365562358060175304371507497653178716292762548879563697740957612947596406611980943938107255446712951555860851906654767030932848672545219964841779289005202958532820213771289511564076928527719118393115795726516498816788704423082976312278950048967390986909003579411181417834056855467022393875423717991016571443994574311487146630616718630282988689783698305949567046484264527439546691235981729374132877429661030699638669427389025142281114732234667809145212364682545638334948929812867818321901738521792554471005396645041526614310757848021902973119912823274296001273128281082855342123583285070843976189442013640092395961955035602733605376650844156703153906433511231641000537381278141360450656951226201806123609488070647454450156621825902792032069657933970432195298900189050128248483281531323642158085483473385317560752448259274073121619551784867711308850140781692657324879559833675988414104857630591734637722216355443686825971649980211211649759608273284737765416110381558901852943089369660130726627328728495888439740519146493397150296825629542931514202105863586904659573319916520070584294609327581924904446819146432735280826034209032502868929590150036469936329274679101397690847428566005198888696046550860853219269677992137175253662566422782312227720298049482027431248161519585224353446184706381367947568792806650081248684121518652487194415156892278039853096736071307765317763113508588822048570142924072027708028032733763072061462665299633932600000157467669930430613946609665296232719288905651434356151565574490465935186553631899790073951167029021790394388250630439581673307842952498036548696787124304373004928808500914639207021387640874685297831834070154880879550502379241548331277610409418450742518786402130839798821027714810668073834395364175296775920532204302827371186383836167032044385071112256320336506087734825047929331290110112542197769861794330597469809755232764307725044497569919421090286427681785975969335799951789048508788329762818374744023980305189999470007830635512866803688006341055216294329873266688690273296728316800127381361812416923609216981096379782473706445583527129454345435049177664649709857857433487649708916808496492350494992775676631986325084853460984024727360298386321088222283444201851052992943975915397619604959135617625061380436393049059720598908874205648933633134917179790391016371748258684428743909550449540247867014529319497641251235789104863068663867168650927173762391975330508904900740814400933080367271872518348329407844092346607016957052417505836709037807100312213399411118868832022177433632321028762267543875369032687962743857339766809582715983574083100405945363469665439117918583072944691458074371580960808288893074415215632011561871787415642046510181917015038753635619781376482890480010810517430043461452087116482340779741125879445862577750909655722688469757812284843993155812480828309371116888556854405051558644437389550928327036053366579919068433846476348287134180125794111331543381520221304674200621276299081567514131824307551468974451900640018371953103051998901106409921293491613357121405979109808802335556304047466305354681464043315694881687055858524120795529966251126408664676383292742774742518200395021416776556320054830286484536331775750753424255501023884561546426606124893118840472450904999215906497693299376318181529524269266676998873846611337094309803570226766508117351227518731999786025483175021816116386292303273219681934582503132318524352963776268628165693277966125424998304926320194265228357627235826761380785239504959115338549227118288475291408627197348331367094792161815641779226809149970325665099391349534026445606252265959047803008073980123138574239516172375926911796300228438574081854075426280397131794397590365118746921105033392701233784051329337657036334946745229208192109418221300492203169783052717896833417266564710025121480087059937777161259447941638667082685205976190008658136600621635782446888338326503614838600765865419927208307738734737319167330969700945275898944572514938092166769395556409044425508539118149094072915036564604491564051983388934435723573692996472598042424436391541246303057575614149580212183586868688447800588243716128373482639448311841114578981408176811643803162512793478937639815943090381993971435845310841773533294149515092020800658252027404324837944232641705525999423191365486090030597905519163131382712115582871923153306697882714318450834391477899025307484768018163250167971437952062147553764735487028259070462186752764546213758339100071195680994969520169824559026274927017126046643583825236746716393225341896617137957484916910427162549637451692875834204838644512826821553508518458816005769932480577256611467406028373313047598919002611086893954321449517635465108953400929742789245619559772675786118059108730685172801101995430657575247018069008601867762347920324187079842946226567642215240616972808783307396382327234165582653336535893709736572245851275173288827376310086173998152346234647235641208901937199749481736870177493659790811171323131881169026395580353561082905797074867158786357076189329304478737553793762286721413556272015810138886120011380701921777480901995838352415759959780918445392165304830728106166774931964637097794119477624665110800242897994414238060549908015173072026705804331030835351488795283240375540404032845248699155210044860470773693814437622040261146457453640572622104516888654256248426695042365583076052480334013826314375901780639469408714036540022505435160250305535643609326734566677706031811197077334950797643924756306041485374926648946306865516966285517040587919585552512667451687374017345375776809076639166501950072448330050708271329455439796896031429011128027121583127684090718494049047906424395688593391563318247028369435200486711316564541286947684014030336708901219852420501195671488209622919991977514263641667722771959899142478876140216034821558871516594372692166742957531202043784184896449860096467977657963043072232711353637983802119095454462926353111775097900599639978005448115115735724463267023548703854775753012488359868571170570927748961350284148898032343898464793744841657611271888570103444562172305204994580594181393626615118270329943961164782864944444587783815555948573159521123418307304838163870469470535010806954344731917202188362811328218144467929465173945183617690370880306803643423645108301659185897162090818147738646434539947919202167463054764527475115358480742471253391616704755793438933185781988989094348653753119152510535994834148151557704374158076160766164946268488244432133960164616048889244487202403343367875929339606204420005927418110103045353863459924435902409054375707040048995163375591720801577409143075605330783198075037183658164296325797134195279035358580784577528464983327234853139574939583540152945934516107887737186291428502363661106119127819257581141135291502819456575964811699125498929621729711145260970392867053375774410269260924809785463886724377971326818131763241575864883883384200710641587814126674736306295999467921998966710980619782215341900898043567512387308081044265146899307836807891447529082063373919212256370642867038032811258193445895547953667801346143394892374223504572075413263399931455712983067291271554185434594991529471453137240416431725106926762477542198368024417172795414249083685573350641028725379938187394018620095860316900168469845198209413856073805500193737198986864408400091431900395924742919550658573473055402264716781818706597985674713317318171938178234215369315615096028645649108929837496165916014488775498665580030180660932990936192402889414409134297570681376904517621154800035834769021333498352623962927541144390796267587028597344654813659650821263201108303239134869869253161242652945288922976860674258373729365356815259952251553890700312219926954392562944684805257126439225830370130770578420381034937460202101374174009071229633658728479565526948445541768824679097390299749938828038853646022695470349385348864605659295486182629733238792722967946257643646678058967525057068349970392984077562735200493749633615931516848344912106152074125868134894426983961014902080297633703110072265579743173613546587711997111053002650514977910753656176711049842754905077368075287864109934370656962840289071837196839291065170018785005455795354481047390503061500296693726171355817177644664623086539577761549801239774421878745202941086350775492575993613640404344145946324730851918119781804958510103345682531402618803189981559139344277882215792633639566796564342331772499615333827482713887432481907471303564894401583089611754168771543174164656134810500432339988552814710594339316918457650172942868955294041694842174043861304988867930733293998471714329217152889254774647841590509330124104664329345792168525053919728241361861912628954024550105620285865107761566433852721252751448174909212203003433825582343970895674374754807032264557382528893908183468169802462518325015959611641438668542041411526544725367926562083826822643797583517142868867013131583560408379939698316650513321231653656534510192817676746610520488170052385637269268416736244616130359012107309128632590122342517570132072123039407109855405814497576776840656599293095306841147385849473100355720047702540196377780866467300670569569395366644747460954982602046443106730241772603694751982335426519664655313913643851758193756029466621139159593540613380309216715281756868457604927752095394032760748710370404117757791557856850693353579152488814333572721627742664692255433865639932601666988526630239175497676404665415176804964664050589011228571402584680471572286503209090742457876542171689340601827494048897423231333493967989772446593262226804879677219919935611977393299582880872351829920307679806247093868676937269161089425832261903175933922245974010021690329148787402559032822420306988601005118537388185355862380715800503245290906235324136765192950714054855462585697586536894198481883780874333050067109456540634377738916317596767716652368513484330362600636109493623708595889978304419597734419559447382885624516274185771184544389063618533385288397354762246837440924087346444255812822341419324064833597731331181713060122722240859509767745777509264083849232750152353922277615229414638532743768518945968956053343946062804472301556065379565396672207086931851435700500189571492268829182757142365614384475369826178931346738303664897256153679362603170759941454000532261396170847097611422388546977379821601720407655221834112234905010956963092407895664005587649311811631374484210995474733080264423695382970477723711396658761151516724367652129044559190321976402274774220783856468582419609169413908428017097601226694718157387766632513786268869019951113764562455713870760502205699980039203333146955830085016849660048222506093162747768455748489757290707734985690779230418065091776630611457691626652507829844047097919942413357015678152211799812282245305132391072277068502491278739703127673972457312793127722667594895582333266307571022528636061170735064500084200243287340691753036521427646732838749468163993229808199361864322806075823601898068569768621417569432419013629408499598815499932745327449004262931480969486488913042310533108114090742138527413864825917592906972940720820413085759453507264500196873640052148692378555366275853114987925856842281988487230602319451719776911803569679211014180123697762425607351642197890186877007521556755017874964700753064762086967079297369764935691046556799034986905006477619986653381607088954309434117212978977718313870558375867635086998722675015121708991593494407444332076889469445012273302880200377885427285400008802730312043289258172774178698233931517600363440446907868158650754625339150638759994571871492501668855131477690908534722786951344145197250813300288478428504190265859882689762756555756866555190206004767409061309925859636865384107095698541895023324423536091259969075721592474512200353715231836994767369563569623405250940098813102845732615087502441622760151036129361784182178651490161177341479032384814814159829500624919882318044499666375318651458233197629964960241356845681848881309664546244171223421753376846070178281397638180500327240888502077989252420506486673406770790279470255570346925664222928919726079360306244852417816461629238419234756759692608978617960681408629292338429499065462055829343060065048422449419671899716401648719923963210423116423912085493684674293398144713621376078579623939384609123178773705423088971159577831546376459652748879168080578045562528778913770420140952164717385336319022713331680067205059956330855651206505437961663058983411728325974476257799785531753858186245462486277343530356912938507698230881616299494246105362228168642211949659903280057049004667232595701210999586628946843450440878048163952985855413732054794083724209645064722352646899992215772021999760232796890058625542933852806575899465944501821040186483979207474130152324517964352863958593247305070506602227521065312090255355955859304280201722772820616037131977585400975237904885023170316684398228657444289493670683852988520423042645876964941146871235242124119822330954479308582834134055794399338133017173864115119559387049260330458886045816615396125879389303490032473542364358790164709835358477153714083748299219903887833581119306966825607959319772899278461837309351256633787165779118620044883182057145874573656178999643231038074444929997382703138289177769759510933437173382260590970365780458034803433004955016656767457299677704299673358537072242588564555132615261749683873422028254964499765823174282572632739575787297789425006223504673270899259544092085054410712592325771101742742003754047273314867099176294944230662846812539188080871414639931952626572734499758740893259482747665771242833075662754090392103362796967868937877072187348342955163485859284225003076755798943565104675640242996481154288889624046605266881806637124472674392253719888506243916924120436800188852538449160913357825255820444889181028393040324454563145793185551757682757548286239889288199246208569949240292842357067859320228121433809531050686327576256812499513373917961196158603883816214001703428985527414686373157936870648923609928276566083017186909383082968777743501955586233550573713891242940865302675047349243938204870951718565678709699153477461089715167317262843699547147529890049667760094286991784838291172986803930242600242678407564957673660633196844808487624727680232561676946469578618715873939534663555561741444000161929199292821506054974754134905815592916799396707207746472313355234908701384940268112032674797653318352115611903447708538317576334443759460978801615318914321908164560018788258068121034138322504442520391568800002031798337944793431889945701209236480349604392379273881478599754907941010572834393868881061332478631260369317947440359463464336363833741317510957111023490892702069445328679249342409637491439746357096517239162808866727714799771608670056940177636984520759418854024020151822546950138103566342498697653388491077002720540741647453324045273708790581754288899310621126346041707121950663111920260916632941541611033065935701866450242313246419948042461713623523392253717006593111022914178039053460356878963577756250550922957366314711100365922827441769229638494990619814943289368556818676616053336636372675593728254695535471011342836032262041809883716214491893954238084703717114703874491515983208201986827447875687780986180628490130173876695459899840788971636114743178718964255930320899022456878300583250324993710547451238859388255638240967217285879196260178307599164462586690288505258542659644749170658427915622100014565816552809436958274359626417221550561654101834518751523663150569523083034710295222295004892804999957194779259546754465656380369127246382008371242407673273564301497168724932639524333394354156456797859734345934086567651866154474931690534171744576694969482808673028282242460013687100499643668641181618585999341684226692431144730494574547982117699953208395246685409072134943410918295234636980900644102428828493212355740756017182861121902084236004051048250559326673357776741159021177913776134722553655573077806762924312050033818308883267226636138759582046688616588995293820511510991393927399434301309994145718307303092557704049470706141342830790419546455148755101271255490594275625410807146275423450654667892685454965183900406820528843263014666381813557798775037405288232520940956828455066246016862509525490273125499431517582891041622690564357063897811696509679725901848231049975140142669155357635166179668239095082689300738405604096246943185720261769045577829794890959427599156223182309523253414150513356216105748605111467967661979890800554998807333357384590036663573821002965427451947867452271832582562216591174785744698711083301911522072256251786266823182882523985136512450532186115166194453117050647463857114263864584333103418824083506067943678610275819777880700312024069033469012312141000624912617698786233637617542681718146997402903768212957073522346056571519614406693465851014984717147773851812801617938601419710279081209209957582683943489504961236963611869898977210467936276477880870302239941054195207833587036111123160678104428578071727671847664882661620053772931452647178134953940631198765981417726665399915958699934311508354087703143087411827747591161175323908027917829528892172631394903762644288673765290041223819549855525522450377245345870351193709259760507322135009855618624768774834557117889972609608675521184223858975206521802864697235699211711727015321174490969255557940464956532080273991510414373131252203759933145770939870625973841948951070993275784084517159387800686209255287362548704281452321656022097500635924903451237920764181647724128537548482101918764303600938894745512504919706713902681613476027109560760957873049392111567505812408903160946892640187870822571006651650499783674479122023015334218163190773204865356653597775597071115067431847742969337931108946640598960686572054956604466061495897962030046010355267349376509963271337445680735368245120965796602485645582885727416985153207995258835754472265326872089807125494170345740463815213536904067492979081026450513372221594477718447820981689356749628002098684771603991665555841596746856521592965280938227939101067802575977605069802853446954603605272065972071541052866380637919284041589610463140419125881461404765068734699233274500670568570097011722535555868476031427250554611354078914162567122675407529656347258246743967479530344575184098733071090462157430319595984240005162837606158702998041044308462216769451963329853688032147415629017900941060411494586699098529461265767472713015195323410731704078404800954913212707263965533470160774361381403374459631392598498289992850113676343321349414018818119551176716830083767955910968418071686155828717148027332724150538351601214527327247919440356201295818882194052384122480163985558194731428942373338280550305178082647064170038628685712519433106321879813243940940726187089862610663264549008613955323145343193999263026648280586197721679662081445612249684553735217595386559815696413568921245360311225898785388548252773527941908275471735205810315626685602748576804896351152079814850320154587787517347615317725446509557546560776418667865257264980167235398781317195434277114404346410005733856091010808545956829162245656862765365969860775584240602302948869643593890520498185701002608071068507819784143273476908351544816243631524039090018732007883066587533743883895033367418647474794043988898147355955587206131297164970179463916691225939334342095284804652376546314486502457353523003376113966144388927666014128749098397115498844347081407420451571467855266829801439942462900594231818663221072248855637438404884213749041319627973009697772697356330321699151405065563009341407342252100050514662841975924327786120520628716956314353600772131279475688576955256442924433602839599918612313862829362429852318106900828135501695728850070979512771562381915551958536250103701733014234741370853524588640495911297103643907945006566304625371267465753619035542580023694334235238973358555221071531413632479282194329623060140345124472586575314888983005861073574385977262299899733147875739195452322614770563740808879756266028800392574804040961238804017946760280288666642654870707472378825120317441206418134084488810501613856346606965293421061988449929201915593370580443203982537687407052456323255493010235152906650431916102584424676110507971133572876677116858528405501152826826165675949590627029006997388309047114302824725257810621472945414538893252667152456815073356994329058462126260572552731085400665086580822306803054557380403480620599278561089408866931346321115404838260553142357914290395285518591668001646944121132503749001109388483084020418714404267175948094487989625648955737620297867040036121650890193008982728780101410846341643903339399469315377428694550148307613368722356480015304768977882480787036233115952510876393706023558016726989221219356534873107259414452179461262292690878328004390327533262570292280636753291540400671884513076535057962674071480274533711201304727399693545814204076871184832652134210952827447047814315145799318180560572014463807467491873242676384971281118727528440269409008128947702037322296997409117871011605680035706553705578990821210877991924529105687175298951549421500264992200525632467262316434621804178801543554477331816288886391570986374978521625687963209566482389911795805630393608879453945561960232647143565092127392793949668574576237422500758392772237094531469757101161351381762893067987610835653390474804324805984695525540502273576039075536037874463232706554672074587166924929797969489641323803286589424512130062026250033418053118874221576596843634954327153968741653604209515903065703873274639903203646303973606370365784658922625449883652438494957546667413395128956419092993605698019080738807716497459106283162264394720112168101006149353696877931677137551988694297584063332568203913030321143200777620891065037440201536196943477348294418019318147936888907138710971497024652453546662080892632612032358556659684534647086663537277553736470533743533383486129694392251108847344525063353226618654772499805899560489155565250638243135509755111111543701187907865745359287232439678750608460335933411889044563229883023521539862975393610160269950881698915581712612041080981099074486218542634500867038916118658778089664216322414965583679765573994195824383812678285668410586198479898270364179120929961767198843347228992497550984946497742779273406280959013399572617385860003748933598276594153350974881993309584574165298235517205058255054390499962717035645988586543085085551344000151832825296836992635278797969543426983979618582853385507309556575480484396175431693981596353589950313864664889415017543442895062625860740452727760381979860703860675009847016730024469354485673124146358831221601134524160738685960257561565509114891317226873903315885524507783843510986110815615869210347278084709089873471248357628032034326198605213631257301500599512543686267807730902129191942883215599270791529655618896847714060561231124647126628778810928675800020201455659721322734540337372858973156098584759444162035599275333469105482369928592221173700525979393333881170328052021935119985568493352704906208574357024979628208518522884336240153902010827468963636159882898476143469156463525267362928508697669707232649464900306237029695364422427585981971384095358582178002327464602921585634350669921582995779631552442687680649904032337965937219676251240367261589496157760459803653268264508903342705155577848018905469903842677405608860485075938603873066226127651776889199281836091630649976636055371403848880464013620660783651838307819103327504105204070067879812918516025218551292723035332867117421245515894707327707316605109008948730539213386347288511416092028346562582283521850794418081539360569429272931594729969716589080650688133606658003125239808647466258696886203355655327184373584298567667317954050940614250718484815816004243320883121895879904212986116036790463139524735214804811605049050946768552297647522003951467193958016202599597352625697574596139765239885605117178900595895981139037035923605426068424111027334095285616038077319331515777279577778605347852175047470701076701896937199863869359788480741309567736501948857160572727167766988043708437546316035203580339529023984928671236319486635830437873114606292662926267013896273972499584587792532966526474416664179180370550733130231163211329932033517552439381885513262350948646785782115309624328551199533920034823226712603434314498582066291186465687939278769390424314991224336941843416922595544010559580851572220388105086141186245633902345764044571590738655229329864173375315006983838456274224055878861852675804038089022234742493260116242408562920021142104490823703112252156802255442776657457689313060505212431050638724715268540454097344732172912109812416187660911209158241534997365331094301312174175580541634304929416496627420698397460765572690013563691996567845624936888021101737729631629110488082893694360945820580280675689401946922249383584768423833085460305396393385618631151967670015399356841744498589678086295031494992389306093041944156818407051949252743507915186092715792649198062295602975694765960849431054755474449272785196212349563566720219836217014530242330266761864789947281949913637695502705171321175900327709514712905970122484305541675524179783828478747378269249118699375695499486785419914933567049319335111979113764152178422329564383553626272247136360838510923912257467807743440888326575171837684760953650313247645212109146042175726901774028440975511855044665291999936903688473883496480644967512685589204356140262356391669099409114773608917433802893732820626380650232065198169790942910249599650729443004652858498634279372490429719710629029261036009506660474682429770106306847067108057968305883073626558594391986131407406649408602634374290763805950790422117996066203633172685520302379995531746917485108157063801703317599054929654767845082117312283690214757502856078738083216376841461618165158162267547518848263009621843971444052828911908212371559937578960624901026961059088223085030811865750290957230413113357128595581436808936099143479463890067543076725899782308742004269051396157340347467971643244246200948797452942699355397634894546601550219425741006962890469254571895855907099250421792057430464965727514809743078382338568826589750457473561789474511580016436344765678243528777230662142759074835618051763151482940911674944014629140024393412616373357466365857740393655814001980960591529367929516503358942270675044482235157076575345303790694837913221384460433322626131433811751571163044304557266038775151017330393273386919143490103233285698411270758611400874852459268469463359561854798980284993683178692877773035505507296878825162947965705054567509017360517813031036219565455115652287888984908751031978666719001678172938207949157868665623858936483518966638941597048559212166009487121053265644951117059050451846279262585301993792443577908628412452409333206211039358575145925893508230041188950414209287038118316673209711325964969681629115125248173467645841433334190158996705076849699412514042380072910277343930186340410399021091516269143861230635928010072265452154150362632291427459851858897727351205019747072085545132724547578841031030271171648633948140805683621075340983661593960081724576123075737582611665711781272533477589146360367345510787477760369456897300214625621781515404103235865814267061686118925863711272304832352175668066435236956820211812280843314916458498752010013081134691759806091712666461388761853024186234518595655216349370227970096013505931819969084927393770654654931885399000483277122572013372554844431427718878316955419426929061847693995790987185029544880160696845206701712006359399798995494625454247703509622510561695155522610290628818305906427758711492560142349495579449439422614052123202594196564873356041089043181603040587619531491475270972245442932486103401437431422354158270461065135105282640747720467672957300858553635776164884908657691863825768332460843099245296748210333637268734203356128544679229299355504695466959316916523268451178906657568387122384145049798609935625756735364839812567990121209236227814297555568336919569844873820464331569535660054136892305211759702813600369317222634188800026327859079379745308163319533580798339236921144610959731135613549276543523540475393093771581173470224725462918904020217086023179855943879476843253359341692391289741070899597931072475080084637106495709513282915875545172175987940430083322199266734985271253422642260620466068888199061882133829586564323051931308251916130770550633759810769132430339328601221786030653216731320944159708890154776161075905838371059301899048888175946321331568577013188431853346636015603541158551844634316771447267664897626047549585668201258038854088518239433875528536446554624878040079781377538256587920191195064508706540266803097492157047893804462472397425210245410691727728268289127228978037402725417688379751026282155760453725419250175822546462945078890315755351554289690130080530591086609510978505206941259880972803599495042505612643915764558420789402321846548845525701793064921711367384034537718559178415515066084410060006702732220990101096598244982604348696280078649969354295115517096768723112088783814986588569620788997503039204833368516816907068490319099556476289556905886294245728924757904530138138660865445690453915538151025453120929361555425631468882035685271363075516533016476770343310438353732716924806517888275265896380265338910841826394975700996995647809250277862671653660460735237158327520745208683296720864397325422879156935515329002796430932213761146652700837945579011736892541027982004078701025754719119278364715534672131930824346754787276075188698211281329066499901678937404519961929356352109795491969851093082933845894475006402964076406584889822299041938618013885069086799042038537383841352240445863629643957405740633695545046559338087003868530124567051386924928731666404286389469402599931563201500065595992443385870177327715652319407663095023588332088913556722059761656717636229085046489097571723947944880563842875420998454539527194991135231367460757653986936334100093175460165062953819988142115897548869501520507052477995397211868926769553355365746902726590120047716000284283705938546116100507022187013368926871720306284129623960725947777803741548130126673537411815325272557925317860342549707009780289654487035678724467194678758572140918076965943553995667040845418811943456704309817861332747993997552654640351638859478681315927684327002695579803481597424543461616486401110688762015050727958888537051420876460160748072013775917988334971033675491503824949341760628372220431746981446622943564747394262491873085427974888259411525305289501527104506780229748557224256526592817542834407628869373514748564670982192761832107639259244294635510871109966241384072694726095247081069847795173212932780464899277947464501101316447236539019277918881182403169623985586382641225885255646421452116313997155056607674958978744674582947576510008185079762408681391222278675350747092572566364968845410489940793097696421379032340884024013106887950607488617086928257095001322574478114755095274276529347389877824124987565040972739124219786269787717439315250751788628327186328202966300757357545571490911578017776820459505273787984275333193097270074751705096422614716596209781175808173117379407907579117050510360843663190050251205110875712406708841962076186067843704353963451377315604709530993043753316842484595948972792774394326822330978267152014054309984798490638427554643627345430010092293783105757621993433208148525895281700960662467787664619496930769365403045179002731789684080998938591051417854281922945819203494079997372107621190072100967430458724902457336766334370351581933979648854889731860630576671841397947386624404637491131604274802826542149551100121719302951816505945019718678258588640495467588807638452708433164822152676978046444205582257405635516447816943525485926193980290866201966550497592440739980692855221471794393873098921497267377036871280870016414243447012070734239452423406802287034529582551909382391800022389034763415485090246594809762941198837168932378541926118723140972395235658964922764020835806459897527728358072822234508207568075290256708591257470745921097971341061057746069166312756372455372765882012322329162869180280232497016871049112515103669922326142611907438676047995560390816256413091686224702228471839380677322090471321369484296214121862524239694506476749451728945587857498394635945518424909656010609669824340681087954471936179965754398781240740884959351122307777304579000898432617931913916936272552307584195180111266776258206764224530389731991594391819814430101485626763328884354546530397083638145613304987794886471555632260805013931960147517039852999368997742033754110076119105659660371177681352986822484114994725087846070444375464003010492800226519326435984718766153560631413056140511398946971738668730030464099628043838116106725589498816910201317974937469909167235797435957193023423379205968265578774312771163083137905483700946589531733488514505106609471623340837931711041123894412471556075494602421360364134907505191731016325460115179062902583943853951371437094378104989077581001496366336610532350888745112870969065405026116321895140975036644104458751921170385906674828616408414699194123603597658433211200583564503041726086887860314891807723094151798301273731853412800342244650069728335899512205891898200280877285008801129562052843073778753512341583190041611431048825796883203674994852001066728771139191657972882826470948415547438530534142583161988969257305339755439412556148822405519103796383006877096754831026323012162297782662336264472848286864706223738347040593729153882108796075980080411281172491195742424033674708915420781190487222294735915534865684504875174312172747660113300318661651920995311284543928358641863580052676531883240043801006234829017610836665467839754749852732910836268356657887633769892409783394264224756516343875926080471559937635896942863622146352573071388380451841896884557902916811403203400144496508675275203284577169129444869963036698927885074169139628823526543155351894753649241791965256931348969306121975684316000930920015556281647663229505230324828172468367766815988327637497099767789204995072409273471547234737543082851031840429489720187679543264554304742911027714297897906201854823795859057634848792609640617216735320515830295417947717712374429723102963360191400747160599354461897774063201701673185402114349970747527843050348566030335977543257178840262837101880528522900543719320339015502261558454820839655770705432245224179656628186506695854678712664482713050097522066118537137884755173951680666752967507494838081767315154524081085432096158318744343626574396864609553980180760899394764803623157963914757206315578909366753234690885782876377405899917218328205445730883693310685908329100741724814277842877507343624028589240817605216896104551205876306239320004801134714627948260876478166107343959224794954371589664686249860010755354772798786628042694143636541764919132332178222148201692451461790853820158959355056607275301350245835294957506562546128021612724167194646212083265189542495724648538904748808891279791502076709417876715728810724465471459529242557923937932041057575897461569219497873012819758820863866284298333415235996789751671987234372600675425158193273055458012419048580252855988878022114723897280238136038060019339965199857533064351711614040051821471283726607441684787118403370278613112298465646402880575039768670151399274196651257728891964602628451589936081412320286646143403361777378049892330749258752716672134583534535018111001666412588407769833531219246670559834575254090465864431542421784135121964370702564302190743442825152176958468751281927985922760754877618577003812898081032378758578236373389907093691016070262918874571292250820526665706460691978535124229925917003892953405145563459522233426753505312270601167839170937080565496139576350421973199728256422902765406371443094627368516406169128899958517166066249321839956620357520995224862879291347509935503413753599325019947798686801287951703443442967049376623382026412027030275486987417366827859282152852725061409619509635470875904468877718225400108991777432570003105442421183589990750841225455394546628054085301841839468958836405942575124469371157338397288946440961239373676180283735667292766379370692663227749608524347284831089357598240785702551366906996271170325562300451594963478337586887523927876187647089032792202473759566019960629986445676582185867914208102877588040471645182780506311455582427810636349199486461483801923513690370866296584702502542374899329351239153205495810336644534099391829946966453585201056371028584781489432280407996761607827364040879904850806331902265507707001617639370107247681928121123618834911755910960435493688860388686764959212533734094796681286879512397167646291253531865251129511915635265744314858669216279961966973038881695091868149277257805692801692936826910390427618177203061400833817678317554409133567060088704308840886169698502135899891615977964256257087530589990603164088510148834230797276728201513205054492117690711914022793984797864017307698709137848871096328948095871729750492247686926341846034689944655217188604994433490118833113652663301313192512632223326532511222977659918731283704602682860463288929688215016435962619672742058672593087511169106848706062315083422143723973403414987966032054798180027981593544486361611393573605485086770767687619680182845002236897137798008280896653380662345312860754670709649885938109430506754320412828378027239578728968492454532807588476491552880650203504080201399435151135311298128529234847382784056914788718788866171891815832608775895922918780845456300524917781287304309843281980132051859261467889025747156680633174211129601312166107524219704496556264662992722581604983016837217035272819818147444807414336042883069354648075254512030847870429954237569317319534220810448839065632880816855578931334596124342491829233241886940551780896637272037616295998467355199772778876695387461072150515579840987420583820969398558906612652247484475181008134297952505178536641379579231512153894594216767123880571682100497737960007128166654190840397777123044817424862736695239542299219566310474578622565861480328999988274585726104421872516088571153451167836670958956388315578847916442628855092959154819030096629879074344259584792858046329853168408925979361992562200308445850320488047621340432142691743645720855999402360090719055656874112479151304967160801564175967480472868076306574985596585361119468751022996567792435121534850515962976198144950976964270234293076022100934895166368370117838499419113649331249655817785396512647442390489684484443239367932684170189425236745497387596121230832390136721729006544609200203734386203467931269479124923041801702433584838647511475076599190209540801701344849881963321004904489223470500774062225535448168779738703211370398358909818377724092513371065677478794302174817184932680133054552428495425393521582703365042735591640992105716956109011197660877136508399104103418581476954462017584315383922847011677387882940800973468905027507023335078266805735054957619357649829359367157097597641176625393305312606096745705024470191235593295809249490703045064039859811059983560515310650502285942737070924918592363175899070404153662897393451276327562468597305100655632122466182343816394738885507751107550939225811380122459525381402709593321096059605799217548714744569297174046110384438698298408414431167260121201829780471508823242870149349550856671045019144955874431750676929430400007419216328794903433399565332677110822677783630494730305713557133404528226838453973700092527349651009218889661832417171503544632682190689525338554880514340713385899591042198477988274042491954611196577662906363489192363258938064823182259654884566406519041794858190213654932984531680858967350361414702454889716668244693770180313890652003574929978184158203702744867660478201084460163776111743260590431847504619220825567976151584387890299800816477695661130162984502588059355524713282458535810880528528601791943471009931330060862983128380078732743438171647398301524216024637039229859125307582303395996635765590814585315255593236737105387996190285413816994423584410626961685775610692577758021401889033558911073841183616448654821160207372096548907082262654308498359538412066871146151744923765390835073599044304335186714005894628689396079346129815718115046520456590440679928187660350488373938076984322753977946903109894505045219071538461001664749053984432485561907740188172809864977356355016262075864125809580567120132679890554820642078557868470535801102167540066413958167227965554358900572143916144482316168144037571528827536972217961823266852760851485467689707843879367988367995249752708517183962594904879224971706665659553516004392075909398726672863084025692030839607003121777879624163564921784950575174277506852570459257484611927254474544847264542513855624970933466673784121121270087994647606513775029515064745078127880713052188659041451427179486144203569084381326417455660464582194932224754269686463346059897651484915690006183082418067629270360676013994631412786351536496851688322369194656451853351531320637275580876813222944587214911727374610747680557553151347381904086987606744870008934647113878170983780646771775980615699840234880711654605589081594730875741131876072656640674618768271309985384309621796324935108276128643640673292286464320693491510612304985046562328730059366823881124064781232555916124766484371367083074793212674099439545009771301545953865913072416888636612099320119808158791426726793833420845665752093084053688515415130357824329316201376044492431720878804385164241061874009012994360016963094968583793659860750033546843905868951893093932221496358819431629492662464839289271755702651928858522883859575607443877534235233434744165231272928844083812248430717225638302267372083675392845880767089468995134291783307350940233439966753404450436176309561636079579686401612293988327176500838940644022037729627300421108321506235329952245417056945771333929616132035387308444622953123911557980578846556046212087467544294658877561874007487938936828451483805588046408535672328233435860648215019975213752977746418937945031373822948939638762540736669386204784154629096353350413955123285782957145131475936806088331210755440284640646129737493758559343194661845463951231740477031349049451434912827542077113201031921780094897614811083785891082768950392470055499899231074707049134580373028199643751416334423302078342526975850247426675056166635551260140777063980475963890877149888518802616793045801094803906104943898728960877842794527317997541103989142854123409190040592420544343530553015558257461971642882122173562925691960274627755180110304452479377578768995650117082153608678809743301189227721252020205583819676020746197067812971916184789999698092161895854785914290181121390437847842228718338030543229857219813226935062313281509690650632743876355609313417098838702887606344104274086581523120909199717599314611061685857981499886631006490034746638623395898864904760682390875333756447673074401489830329633684291563481233020933868269443583413805208117744805749375895689080220929041155707651244990762522790266692968895639516157903122649608173877407066846203231841690138711491205055483488454232862070542947642525397963000179727648501655220560252692560847291327709653083845677498555389962519555129609197119935765365402906109723059124684481141985399374120997341232139991695853588429423115774069728072901839988239934513599205166666858691953432505702521689826675305828846323407520611219816829702748655724989993229611936024036821236298069977553163995608233238670388943149485460218852987574945498564374617156317615289807318771704366658661427768498187021847029181675288311396125396744721411454776422796604660278710805294453369954570436003954171329917709626094545449020766224620117470890475610837563589667534428861440440214994222732490243374936832875252187312883719520671450761287509442402760067185191975345218353325335286160637221431539082990391943885636158556332055765413436008183044917810103538320678095767179125669684835949591651108650206985313197280838115323955919425096338153692848342939734770651665705129787986598843057212813019096134946338702366310471427093856664899684248284668873685810271597723917444356187137432851208520418098382445147799264879650993581368415904000532780732035840177857549927411282050946314498700827351205970777606491594867168703167863791300873521185895326799419939079885366023031745388526202984918946565641954664145649428972271707144178697824827795581427054830277347539456162363589812982197119244511350940390591123769699126972123805391007074534874200450454956192546166895145124994941427616282059749382534373821507799144853026087170432527759605424059488204956184940864572267386989366490001432552490570294311468608692330259446647674632571974483997472767058949517475689241639342494289035646235769589456056804245506731061806503196508863969592797601508460696663464787456001629835228532101714149790019292610539705625937249609063981528225087162252420039807306461998203870399713784383458979131666353146279839800634513481684258644236125815080621492762848974526310831937670390345568037119426692785200340550158204292109373859584883496110800089171532206087077294425489908139566881992463747170721843728253781036108823257553026646513387835212969267852301188544868793770073188457592465751048084857822420650835359912453958287504090719801845903163305527218266842638595187245727192449664652525108527342111614820364200920315523960060776901684188595520039100407843275713856554132268900478364582718703028769352835457205365236357292261812924084696727247273862808544392688314975356128126019247402585578152196679373329604568279349521902210283561332467787439443396264824369448025490553175386043515226672140698119707344058920967911344908098230564258942315168131317875673304606458598325664612304510986816518497548843760884559678294016776153183890300382517056424204389954842397268529171375455226199723027280785073710747918532601639565384909538244674887992592227535107297400416938492983926457376808166853680932303702202693124441705776434582965914903867891749892005231463155121648114336428428803361384908376326898891034312523508744913074411719811356533614189555923821388326222525609550401754058419851829034224293508265686657564444530726432906577840364971137401975473454290994973816644670943245527016270134199167277332419539095326708624176291747729557174165995880240178382644511625378021071186901855736018964110040725908080323993206011193991396045010884223489072745949143264016216062185994980012758739043555458729280020062577790088500023091255653669825643033409706647350311448083789628798206115978070752570951718705932795809161962355238999655963674325994351994746459645455300556843634826181993331941861536211323285527527278727123311745222337926540337932248004538020169079841646826307350158894633977814146235432923771786485067004429672965340996465228471844768932104986009981951653386641762627057226176548320743140235389709948442199195734905520043452409747264837903718340014708307499744423948651793818978183518787264889261340985308096115274578090835417382395229145098690350243893206604567264843084449837869527664283429581430381429514758876821086264098155918823687743853388474142087829366870356783902433789842496042206968649220040220547957416471469493900477207670377029392798730200610789255988000261587019553053007664695677268119665226007466962610185696379774736095278749788826205973094518511916729230756881984190964076815019359729420711083907916787012122558720663976168604607295434301636978562896597571906903623563907016607863378281102778844560865982126867974943320909050330149208612725424784251934414823302922202607485643245667429385908100458441348690626761000765725276908299274872624842162038624573086203399569868015612361193889685691330217064074582172187107186230749778279897500568655732578156476851510746062678857071682085136696246961572715883509654105063257219564058771537394747878915296269952956686835750278647776837080226561836316989140844947312511061948444329082590195386250814999297448415008061382540946249861456975117764449429279299629833713986753529591868847093255601737915728397698933246779658464540916292258989461230342391559044754869040750595159424108243285731647586642898505444122069248429574067928693819953450799097750715471597840110506018284068327160218142173748260238769068427719151566706621811560541643157787541910950263323168474279357535568485807774954132012471932104563733789660203108954818864810160824419572415133379050539490471013004127214474975542166560120567565738051789809739743513926343607271823617360738245100309101944216223097619888072596913751537054935118846046113074781160982230946697597300006342636488764453497985787956682266545592329972616404158228584300073631881191630441041344963729639946554680655050569328304818114214359976362457357125804698188184127475047402815472916275877880394561037192662155983414155918012987877322792298849843792814489784648590767604903482872225591600362189065489844180524473232633644988458501210868390950099478766401130395653297745184949513979234332066698779197203732011209172921934977925897696989380855524436990442385642896591126223840274304633310086311524030859870519476341487149203911577241702688453486855201887831047881429214087428633888648460322505718706407524598779128399387887467056344554797185737165704564737795750980473978492393848129241835039372149917358390227733156467164135580310657212950355479028935569291106564595840428165799293058419810967246435806835573440582303339506303072209053086402340915704154242823342975986399852850028885488701712712181437867875785320281940397374050005892982709614543318234558182069999481838340489931347219529715828928442867062653474453264744309845589775496987253229385882247110829191324303719622331930453265305372247638983786201093628245592832784763878798494919823260374995730255890036531478906420551763549309103288290299958299405431401786655275282031787560536274281982068862800880386745749107637392114632030885022034055018408386252766381050575010013385633701249165779477625136517913934531946553097450263400181903250460762295390154052931170937898570567708865905427161756373830126178965849869308891374133141851873358356670767310533628870297925834845140579704913126651559468021984203364040915185264930928421839974997988425951159673785996263101398330097951794691165877282043669183759816013130506871083924040647029718379802458081400416565797222537684812436434091670649612873125355203389209856640034513222871556342201519605223942686637598051010172087795046757166532734459410234789843774729327471656953069086316554902959942138675269895588659914669304137866199514683192801121886947866008883517537765555106422231682469007247562476991606609696472551964470523725194680174924991710336281476599953008067930923699093403763359636674338993237041214218702422715422198368481586159121222459288635145139524092773678007856039961027818691450950935366396973846384842695924121818446952254338774800091419320462236165343354832036071393524043671230525254307143475630034926997117057275228902313278638912050973655386323364225122994859726386167774852849925555659757487836711257693737302035191129178339021081186359339676639191576482044854440539311951777681557454075014384168047561651889676458621418961581888656547182879574194423492346130882234320757739726894928044377266740860635789929931422238510352967489733332676675457900380510164368277826438072001650383873720322952373295898441283561844804217602115539049199023238945444753850138225050489729358725905332828407651969652250860204232553609376811566333290322537726538091966005680702863634988160240569270663938182789620990682026616063462959446718481025380327211889528407981644401034107768592498698108951531264234950355465206527893019287656580431078437492765437472925903934733220915967778800592537056862601548045667575057910496732694723297894461997015369169146251335321376149241882056578559094768010211857902436887289194793545239953104672210372315374274623759957408692481927729127700979945821436345902927640399654941733180164088120191151498128695770118785663118474396470283507250981647108827866126627533545107476573003005906394880332701252491514573876089805139099932135497114661943291863865490619271526334022431367056569717879558234299848791900505875875407225181042993136116332457149581505443209232167550990177958127774988241311278319132459142834199044400661020533135725778670045410850086250848968038317904944765203031149112704294766968853595789800559874756057615585174514754653074856061199872768407762439111720048400213080458699209153635126169601300547718386175022999072875328166414481530486867620621585480963359642230410689453266656699534477690476564589118769883947397439288152758343835340480024210746345922360300688982656928192274490530910109028514121850988974348171803415120028252555858710823185098177021095329612099903860402559903793940091112240273499369126738641472207314743979715287498609875515752044577936624719411911858926410136031163750217819545160230231570344028620639636801259203277439713238108996503051965875525891718252771866955917221495822790995978362333504367341971206572768601222463760974784736475778452340512893112655870023706061714016598181343837544295971573594748582238256148932370419888491228281173938011304542921369288005982962221136556306719274754847225975872323824043335540331765916027224076776525399385736652977343993806907711889437777025532674091008491571843260189397066995856455677660541017418353324162827038580172526005761447163952003997718548581659703072959660620199804311764312969876957889200959924742199677154521922034343651972313933113487272243192008555492766830968122800442776991137954540913032713565742291206150227039913233479622583216795459770366833977502518401491155220427690103280539279622083022218933320017714945098894985068883982833790618701766832486931350484287021939244570448276889775727045259489574843544955920322293595509463744041780740665110357171438749009443080252082358996182893689479737503815911619319342769292903047489099719996881114212553418414292371842485406779945397868977241504207286123758962297476716824240614251060496530608286495506077446357622233655795047079318279709952410840181636980342290522186345877294511005033260445086005494848836493487319751201722290519688529217327200457834437688803261257488897095178110859099480611038339872404316330563224268915674865423504302187134236661602476063009194503603452694752097534370555941884323645739970683534395511499813545142597786906763381098444737964770008554182383817681245224131637205738875331596500725496289499384409407968350272447061063832913034274582889926005104520721557272823697718078879173219034277673984435055787026858841493395933586372613377840906171152012434672120743040614165577357355818299952794267994631492264882388873646319149068920091575208360976738821241045669635239583202219692463783342977972923174766069703408193790102785629703959226000841941270329881523531937003275119451124338683326912219946844202906515134737160364229642755727459751651994142791445969072082231585951086080887139986389115180982416011374736198438327055907025487746245489461480243465579213198481244627663292280558202964644064934398309518019885490629941202726890407673489438488305088597987400445669470709836440481396513023157241870271493230130192997392733495553057713645528650883539471225111130237491111101923140374438017071183162178496469662424546927106993722062590465379669062164740183878101423290898849435282816299948993081240596327094905588838327251661750502571874332431378386933043182447267063928109066705712180112689728061972767580282299672820718809696082509185766177159837343430429637747506360904181444887063985596525056263568766912767046236853079884241429100438085185348298580133771744263457985902836954129270951820962653363284029037039125805927167501648526762155465634171165482384506562144112703931801251032176349364775320554346845743442265337179212928061131851656778102625317816004189974173457014562331085411428007221335257849737825955156125016299611281738937721960738130067166039533520193875535587566316734369253389788280624583344066399815514972037084151336682217499701733003388400650215414005053661170287913878763304809738045827769169243419082274511017771672039717723867119900184457030147496258510200464323694398211109768642726077497151892986513719630810703435899742057142248528016710702276267884122502554019339678683394432475827843250347255437597591144798619638002376414950757319924798286113945429493124621827211948530450778284035064216683920883284402561533323410884461526075379912445655387281510106433775940710392246812898617508462469071269142771790962127313421343878298598399957497992652589819837541005992181848864066273702035243566976574616327827253004949734461516981278028667074719721740798558582139511854128620184871036035280410821592883844571496595519683693529593617885370615338112318415231940609221377526417985902067081994583794855378028435233971309861594393761652700804397745475926536282011587893188382758733031914064341583603978120792648286236447037223418907777169496977944035271450216478855443864443971406667545464993208110058348168866326420312680888775798123953367892547889551801276767034264480532463619135323109495342202902798204686576652940960430385794897902833921607523099467567815846734411400353167574383577367235452474693016659967883002709511718979025121337516846027184800780780148763988855386646087262105904276157917956836600226466635734157862529146401852009028970841039712530573435287947536464450858201344231344235855869060932451119984865866069032638458786041622442187086042827093920341261928249100121912314861326054607970362420912511720686373830904517980772782108529492734223705191463461543352924603237320855628629380480439371625077753449298493625219510219574288530760386684953080131955496915724347311363381955039822518921416946204920354270389702646448620067431646224830423090709645437124991617754396972709860258139596579760785119724111048710031776030700310991475132132885102590030644554938831795508329634702558928275780672858040777161175240656187046870335446044546983175306492200931325167430097998544065925535373681774175203509494682576793411605609919968682779909931395820189035201399091499690392940182159172833709962161656278394785624695001319503037618853192862489092842399542067247336634183980402151600755718183802027543775507477335302948345567566999850260467904550399579763963004234710840523397821212272761963100523997130221290616476890454920861936448607143318615559171582631752066117429250440062131482930217495308722682551284104998560300108963828103245371752397577059315722224546393646859027080730660326319771549592689766848751994025032209081733427587009326768727267308254834592070447490371799985174730560515849059060607487843674586979528492156359380488916825502452948894210921900180832972429482358243395823209393694721417872613017482752919811150167051105649477673568137961317949361772075940552606593286210103691381164877413183305009074699855709042988417437667150431533599927699465557936207293025997341390783940856525070717064320595997091791143735891787701242604963466803565032729277687685708996234751300681809859503976226753167359172715311531181062359884153199972603969287874564081055533170529042380829374687789682703759609402419520362215764005668020848111078252424441880812672414024277764266860776273456694403527574671580188905030784093581623456401375208671568028559328069887409614551181433651800726039980509463182981697904572625622957536664541027826590263283134441979165321054975284995554881780857974781819207682601863442253364627494671826819235286880077673199853415655300994780544446134150423157780904646453878491423158358299289433186013653426645516020778959437943001689678787665952759358462427248707865639314071319178731553381089866073472093213751963416824819304164939356432994670015673524248081136742263875934373724411627522084796836402207926959743811727981081177657969586486728672647279975089967021905005001085899898698821324653246280744652332687312654102683582624808421206717072003593447701692185338788559080227927507426659706405186910004454050775553271421418039865057143614130184025790943688690194944523678038904302101460603338429677580075273302021366399624127603769962235194046849162144518228497765996611869915590406436263591062343200919540719874632642757155127999723506640941768510564846234113953840411515144684514765505252342651810319328689221910279905430859488106409625743500941393189609686861357961734915418008509334440819796053114860628829402128660614653761243547415138248359354855092186917718878635161050416939397350163647958215061421232324219571442751601265121072053454615608996483757925126236241565051089803897279820105703100626656937557964993840992333062625826577932978372827295037011932820415648847557235693429677014125473155024227590621054166521922895686725973918842154635689280007538796006565011071954011482146955275054987272578809277086600047084310100378971842808176031973937866955846492182937256163210906266781697438837179286994950493355715213034087819745990824732931441358983631019936449871027430470273148137182886871656491765547587581803723753745865427439780086319934746669038416890028499346225809343399380818430663369827330906284917679207326004127210706508431069901120983864158750129422202664690555023493700158553361358271058026319718648253875233033926353170370900564453404892194268876552616511680161741289865630825914656985554893884690923992630518151794077426911766230212985441200799500235094497120035704785760671857391062025108415967169077204256657370194242477747702646120099469396984258758610252894007280784358945198753501209075566571505628833584962712272500913719965477892517729232885046367021378767962495713037715221121053507620033550623417578834777247484940042667499440425230896982399414414811416439464550960275403332916485578692021656768936034273937931867601669341547861869809907502765408654859306284404629432476578199461075822627714517616866085508712581826599003851350719027408586333392260255479434059113543281928920990387767723390378435852538780494441532693140491180498479265846971509236382582141932337426745428080675284115811261329252210073678491151262111588433835218042943078863695527448781948681252919803969385108468552706356784749258747573321563182075467230618902489215641568077400955391926498191343241692765357607628857776825826714676894114924998042517830709334455993595954921713765938695885724129493843864073499119793994769924728294623804907600408037851878345295762070179809921504158140596851379427721722973715903464755479287865170346757608801992148361338518563494192031535588808774948661990130506566360127858802843951886335099266389445250509215241078696222528287747231465921145846545250930447121804805754406297898149909465656774021604762646674497408681657927436043346262569746076189655086156671205315803475376859630853328481229561883742307347434425274718511892332795742929780375883395349323185676876280317036314434963675879911864924771592854090768213838297417610480083291972172670334115430805072338230982563691656516059781695400852987504483687899952415668324370119869074686373058785894427192894014192432055373679804835558791513444693178402875007867715412220992161753883722657595217061859872753034460473895376250636347880782943873590196538719205613059483048057275263782785132384994675293208277661481382363062033119583644571182267271710658271558930692896167556211804326364568631518255501542039735972669737693811614848171638357069108864461792995722474181646689408809081125023384928212778692796302540929677588183102309909576093973756160211159152595891239750889655395194822055556582707918116930078808972717409592631718312173782626971996925708839159585067594249495510166298087873736340174742840365796428947392815767230820562108995426702377203527530839504998389753547475635192644006000178809722687838234342076575693260888565273835981129753323872736231824279840700955371098593778346751360451889628473669798344295123069563258133733029742841259249243876768883155761355489554480952606504896270451050311613091328062962616084289162447919273094407198356106802453925631228078049838358082069384668171847837235790511268266860652322621099404771966046090156561034336174204952013641096215172797444074430519275701098192510834424465853689384960198998915864700637714950406102393323230949739977228668825051002617428065095611517252938160305463659339064753716445714946512495990407960574988157805748649552581617786385568039844653749693160794779396022541201554236596809116461007369600599780498991429261244662302709189294044155185022738918901284910856802028188164744982296157258403723960328578717598231799339597066928362906829046146175434611244696988235240783802507989098128391600251560396630422608373644228727414019501313531253094622469269224069830363943495511925236485385502496133242057790703129251971522138872483328470024778338719514464492105899225120106486281922037729875195018443921507676786203935124341085331034385015977255288438657432053520703474788809740875356674902433977237619814758800790912454962343138686819337280974009682652496721108055512561053988005800753845415747994432414162052587711658268051282789371943759701589019593133355587437858386999504022391272252457990776204183987143357126043910033378535999692626232157921837864961342660795480767981353705889362771958899277135596023039969713994835668309622502490645672957269558614482619171896526821711488665605659910126236208411708753174351902246896237989052493596050718833812411182306859300742989206816476332534916766194630152465529746209221684864487027977701647432648576146901351286796613408292248999595043816303434963792944823771985647092986956559024086759136844470323220195717796042286122732881793800620640805115456547896427967454438982275978806691812500795921282191776275869119732853835968472398150490027114636349985424294025335974710730659706710785530012897067611040161022126503941807033817228669298509716378894225790153449844860328304127482333514440880679090706818422536243575743120319836584252110891008659025216051999922198325319433637616367970365549597652793310121971265554520867975103834927230663296300106735791109755348202898304235227387374901525253293090866085197497792648953157658601427848826579361922211967028045435435433465843121169436637352121815552456190621419695516924243426675113190175691851076506529525930106924710493067301856563007905051882009333341127312369957351087365006458088260376189680882806437909022713642274695335304404446229134635386407524336801656584113921954708568750644958725122528931169191788477001962857142478979527677840338049727280312099315650666625727879607868424970724104120105114304974481243457920860860761730693148809994617402824923700451470980355184166469170644206966480503955768432416243739399032093143925888056197107213560123115658554682566725768405332072068475324741589034198299458700195384866376389330698070752827418364468711869414680388322689378015173830998973173866830802304524146924894803457809586528132735406388545565118052778116399734536336038137036319213447994393979828264028934060869074752198757870080073112653142416301013250599321679896174086427483223670935731544062101446925315410160944615875407791812258334281462625457256723398875338708382155379247590168916224833349382245094269916318363591441459468672471351980923245949035841847184582591486693350676272691573909308918749378968272303825130389130266957649589786918051379055140968318883956990490941404116791982081535656326247213177828311116366684656287564305052086638722209943402576998004636061862719555452435148513032624007191970985509481760357241765142634737921613125277172326835174881401124131847676802532597672158044302648002798636892685215290737753051125653162622554202423611832251778620540557286230871995346496429335642750494094624713158532144591624214361360832655631248608028891205078252573406376542305152495302104660962293168132948614203845611615406319497278144433815092196837401882880482984012995086642836067199349841161703972184376651408672668382917108044603072410294350813072640887570001808637722736366917370670146194807798282742308991395319379788559842663442541432144563804583502084790668784302611858345246182194098450079820040101211839517575829885837305087312497948226026703728424990691504686546666256025335060957547100063312106369863042670322265456502970036193573044907215487042713181796398686772400564202569420759975929905467569952243629832590897461758035022854977565269424046945290614290457459273059488881204163389931615935987299167336787685432133254679654505880656959364858344496305805751342466640438995800726276047964205396942174058002529601480667533175045172254245450084781467107024487688425994160698814454370392822592544768149804327675537536360849556223609333287796177505456303340795739855947606216482558948067992188133116518478716347194717120688726389360130331432511146349366847328697605771718178793044654380944820684262201051059872897833064189298158532634757166141659972076001136626184894537983415393628751944510926548077241037284535359554056875135680493281383623318241262702180186759572172026979678266560261423538651158612198598711242293772434697733010693008383001838246358438576302491324381126270515102404996895200140709945107428238419511062811499608356393287234354311332602251103151125994857943323726392764952877958874549256678774550014873383913909755735984660547581326173023816401885505015780198451606319108606823363757014378334059368235477852056354145961895398818504992691457934003314242195834744195064742027440944711510381022390699667111026540647798650582673448118123117100367206094864045138746566837005141733329034556167064926180848463011265647791520353648055440046703663545221197353843396427216029158405136444476905404905616646425823808780730394995968752557859051885794390392631342441219413444575402829368340828792845615206125622022121055560624616704848826742301454146405920808949613970144997551948921501245082042101816096695363040599550983222406200931985063792064582897610742500156649825839315697300292045009272038588444793775102875842567717839359030323022791953656995625990585156721640554849529082249100191940392940114265708441390724006534969483265730832532620443500472894265460672080742027197610671174781654781036321295987494583903161436641015067080518622019937311711240713504286283371494950221508324391390794971020832606098447625838493250390985621752664388514131515390783321687855016813711908727466604588481386771371938674506879317447456549826515663200991720952318254282464673693755343667796278963049147455263922932655518043981627521548779286047248079486480472392821685587351760307909864994295414814782614435844504300939104092349929290614706297415256590951232092672612189303425385160691556584308939500259497871625152415797105774979491202479982007091011340201043703479799276354352962009824839507205363675884653047683887084011526662212669488812575378921551694846142106349349793941302712855338427392741251089482537248900816231299686943611744358137142402884647646410311609904586151714904658303067877914322847560488224402493565454994990201948046672838849254959692740744665978669635609440030356385879470774047202961087387689097406193958892711218292460497390997571590337302216498970585305954783275026056801523899439813013837800723057003641254647318942318165289618588104668835831455996944902016723768226230873437932270723967375406277690519194927419099160118422372986122445032238571704487314940622481170649928862137123667254309756076145485817553225379248618316592702797043143615699142581412617116049891772752656788606624210420533942681269770588579090412487519858519467044668672960307841237843564444958464490035019023815871551930894262423450606557658026239985275317443980499021207337797747720138828373105286329673754988686719510537815444280208292022905654459345760101899698609243373883600212222345634818496083059357275150310988434829494944298223269025362577662694125487468999321746215493598639826939166764334949377826928883385621757222119199746266594349126313836591439146184873992104684843097968172093606725822439022952673817858912375190482922521062025332650769185401349726012928502461041559143239167392881528290388242973768429771337811404750710026811098278111754249651313224504806131082344298502037665130907988203872989504636462217537103661013621518295853065092860632056769234743517251141780651675393183207887835953452562091134340333408951862706398216602051989945522860071158601259913035458140179559156302384891121745631621789484199702925038989568679380070725648732834406131090076303728988503896755910486632646848649901050340630351348790153256405510525695616265462627889341744633319873348958098273668151584397461647222698488962048961151962925061063756923942460930623824576348969263038358113992409909271021165557292905617826687612062885844011407239632016100671107116277796342067006184911869737498601670458445988643369167578918613916656579659323304014521483525146494658046486912176004875163935649511865045467416112712837114921671162166976623748923758916513386617769237513597456711796084885523802794738307080219905880366691476361376645359585109932047611777669574200744310745348771564623869998605472669880314931039152712500494040381061321361630499440425292558067181904771015659888269023462060402852044394255086046479268042606156961882862775511855885280436724205919228562430858727772162370474931538383621703656168683285451558495902864625901456316195143854966126191171121902137506888959882999470874455786951051843305610693942013059705154909603473668281950529930759389150652164259564295604632331232413412613683994797214734006218200600871439740661363533226026351810954689365919505772605292787432480816916764709975289489001316464794933198860412454431460226960409117164679639219736699536550566666490351670378026167006138025220704026602390135891663067795979571071215883100917967362831835332423935725041930525833650059395403340411141395867362014147633887723931923517485729651100641044294134883929089524948618385794490845769901795767281878686546528529478348838443583053183358610867858323638624398616072647292266463850757836801077781705970879535601407485245667232814165134657036618364372466342638714119900911515668074965475070743607022577667092219650240104695852083989897790717018580011508710060345191558810332598352088306054860867602620499657331932945162085568676697857360320394641811507888673280667536534842022112421110966374398615224076266698280042787989512704725639529763894064493368464406682481871827068293697880287995057796879029687916807618781057715727679798371438409653107892565502600785242956167060667769865008186940470093796571992650075222965821276559946879398585948557136597460277081191258035355949508314142885601089971080612247443871223655414000139494846808461437195587515488705995518433591525477178265680573472703783304547098598935326596420566156831262344837651978621538739037447186604927334183216480991780329426349122490297887990339014475009072831928515378960594153109178295190737055209440674558329345580422447109659057227460586291087846958727013088966750270638277761484792536686584068690314184800996926667872274500273427306921455657958944663542416345811841974655101987673138754669246803056932724217649034464940567519531598067107570941193250139722454296378986867216217110254456076228765420499679439812373781844940981553645441787957613392792674408760797072929642105971445926063586778264190187997930719731016667249511445519937497723830496049781115898319591759831062595632878967565066433265925714838828558670654603133526176379081433558533644307206441549362412027323181487324336134170766148594287707892333413569167295653305727752045868350580864929284566385716320619723079684629653974714725709392801354831104634164785945970805392789669547436377062703819458138057810702683482754252763452647562012864048124815521071765876442200545474055742877304972331401160160448850268538892974819613349373304544123600614604551342713253383087470773548053662872589842428767098476949126472830540667032869755459322369215526291350206228650610065961968894676616646504614337265279967584598192084603908542384439865715575075360196594690411313469731559736350170449528692643442393961938331543777451758958979949508858003325649840245861543085462015706416932455647138113760003841608491207060308178165216202457717789104716492855447443804087984922778561650064296279638723042231691406606447041809531432370359541522110896963902880571578040027051623354363336256812893987523632064167006556047196820622481487070699396857162191276971374802676550773233065679108337919191988213812679463673763165651371873742106213522323420991706178096166282974590569148900979892183299733392756525033797636356639617672378873721388799464151304817155257745971249264236299791200924180380286251797213482822457134869925967782726062021232175265119782883710570841066320903663948200810683596683773404830311163574657881595588712167695927337225496567209911575833514181047629845012497456706195008960985127115438172362935775526451051901233897681943185634748021760014612522821889189758205795744246629768363535579722041497628211544021526556947815054593003254139524873403841311801549707799703258701538369323128098198198805523246019405391404867399649523327438412083514515770758089682273383646515414323430859043470902495066519331242047432529042019280939625784123497160373519575932066927252840138133008872021341173398772597586105733266907527403945587952907642572098360462168786325263616278806871641321221079294802633083160385957191978201208003379772241499717338373154637887066199029239979072412069425893827422870400394055281599253592371709755831003750841476778087584086984590187583460591490779323453731376142594693471501339651794409028917156088721956743120998074229318447112605284021369418943230833961323704454961505916092756027426610894866379609472643890161896127748563586778605947992633065404090590853257560393524491433521082143321353874724070231924228688257052199359417542855875792161696178656360123853408656711405704616856567501998751712223792530040446795738210564674486680156788931414343109536742558464829219437398898653773458089105012190649559846147623325396794951800577868995780158058426510673847326307605999143527259075407120198204149866885044032023795529156491219314325151449374036316515090018929510798049640195295673735247040500734466149282960185962076095452942991382519062887718405057738865986040612533966685901012105717484596405311568750954726042807971352433611909596005792368077114735951176603466079863627799988325448460698693586636063980250563359604593821429861205996634249861102063668475406462943940452174826281581356073259514340577999464268453344222259654514672137557053576064288434384300454726265002012859053342235258061014213061186977830757220730836483933161277891469071955661618852926466945157044723967978123787827629255399414363352533781478149390904093688016264702179642217783459864609309525616367689004316256679221393265381079749239137302444340218699754647777907701809839514227398243796024416571020846633684050438591796879578150499610211830972503225339208351164683849150517478711229629400621313412773345120756266552980179378486440410573808496175895088256650078279745523613093913129756921011701281476062500384983757037111149900792039078049101042172514812482971989009399108047936184718709345085659855013430660426469437446840494574529878119807702577900420368524162518412257367471329139917307742831179311483480726204678698245020711495419175034194119093916998782099057635631546561356631251574660318476137377593943450101623081997943310277332940955088451407034683444315045717999266903698150621895192304941174287826464442857508264358994607671971011042795337761611452656624724096904731096296942160515615792322534980850047955810899557287080443034577966924545636186810757647904826674534731523646578815457488352386810312539257391605200065089357050296555662041236539569457094326839170740298866113353409820675338193169491148442099505320701642386056222280367033993991078100153573486062354604332681447994280731401721387461480600826247273145231407217918970847734254385799650589214633657372498684592606836870379884738505074772878935765283714983349799221070707664249351159827038276140321860817610045832901840712456348565597417792872968376579048110165440113655359052253540671174529259174599202534991236547770411549845758035178531754959929279912066296042287505263896619442931185251647696534415222183450435037542585985733115762435769185233483000883691451630516928772130596201272308473033443504916140692413286151985024517763741357279021956091891727080652945906994207665588686123987498751605668534417418452225440503243751040545486310284021282564937461321836798703272814650806720155504279489625612351556805431762062720934427780782325717170897314754819291468780833361549398564646588958339695309295333770594220310634401894760943262827859342413066452151087703276622023139513695516734300755842125702316319920334492327301340544174329625833450123668947832610557395992693974013735409179622239377647925623754061658079039852790950447148128741465824171320478036621593937766649106940379010708562001323728770961869154424730129337897219830822684554375898896447516747032586480465546009292239086695983620636219304263772949985967858462237714164288059345076732652909843504292954293702582557956445248310133744452917346833028759235173322990533431952924140635546720682122444160332785187604668244828182708176856392266066430342302774808089017436870512026536717128979677150858209993499854013558766708969241612722864055998048564990097197638676064027408979133742977196172137336713063095236721746940518851586976699486063923418206239235666130410134949525670207416337300065689650414474847511264310753130148284138359289865945183256344215482067968531993383824894077592073845376954462689031423282425536635199192590202708945758135288459552321695692704577148903359236072886971280598527679039306903578176908503627824817098180007350104609590744351552505520117246122863376440499201239671439841333474931072529004416054296398524525698821607194723331994742796397139531924226439400751026680527387986601735324781864489486460951883057226967842443085996392601439808178286165024068731383311428491156278879757754700448594054541569306898834620657350345520086786040888605779546551611099115403047076165889154739021142778989560893311228550417614360364303080525825610085394830927639538325885572456625737986534086448324460927893666861119407283041263019981793957335266460618613528490235238194796246217367380575300330061965660262136353721782264071767896536571390000277010926111518734525232276863018365097877753537385898637977480442386234829918022415639520423279106826497869888190594291536046981766406731630728963228023341460940716819932094774445220633469042028124824940774018263555914138121064840412869208596835138987961356741110248362941766251684610390058254529126754219299192943317579503549816348208762916440349628866859294671739568035238290698993867554967398831432719504180444252154075434597327954624503910130847406712510798944662320222639101170691761077413868490104740163567924693059991180636950539140009052398029683710407155874443169190153603396838738366899755354034570254171571407112223269755515274443568068578438271795117108908854415050362872352568711234520470018262093261222888687004803397473190291952585883347230862117697670489139598736368576664567370017740522076569711988858591270457354039524130636861066868640016380540854386410412973457291091067766277345654733057123969716857826151697891965993482355396235478786874644824653694479488261228984238836522897568320280012896535771811926176773277896777765147711035322725753332630145670862265345307466803397520997993449196137924749785356658219852294341109578031819710938537132684304404694160129887608683389533978623485834870809175295309038739995879729246463163656242670383309748619143107815331765358610115010423620566655499708856774282499588289541672401678484777084326567823477064192023069126127429115706788730840632908091751775435206086130808321896387260035561134762980166855692584873489504131690689388545669202472736904395723551695544626886805758100482393072358064433916010084317365896541003916395889027608095020221636206588843891996042629926041601591469087802219169272728043064828167472160882774919692599388408196422324237063223633151575980525381057595047353881617832091409302426239609248822048143861822109124677954580682401495169213151791702117192526169312787512970289997163039683078114163767541141675709905712923920918116538426003029712198565757306650151721226899545809185214117428289642912478921290122794942515425983439802841069138739013023317445032539449715766915106752888677388572654232524678004172196401764606724273219141651504691054463550865007936935075840745710349275100982572005592749377067222782403102076155028531394919299605685726074228781457249087685518845825891843548984854172427388790054390408013716740281994944397748929995849235273416576920107855081545458246270545395771385996826495144366797617813844061240403938225966875520018207112820203344599336594426018532073131932830768041222833426514482502328975562009985659937566611253574782935530846485665122961086279524627980927692211805912954406022511088039187089255996571277847901917406391684517347483702933218448175781292123535949783051918417097078616833611917379526496503975907760587836334827563117469064761862781188660070010944799896212692971852237386400750437657254095594280244779740878167648487575411296015215720224811689370248916879404556355875379594805482204102671101123519722206355743149063176576134783512432154473337812643532247402998830922266462959825424558640659488883381208929431509387965430989767521237238158778117217574518607231364398800645279054302419297438701647332788906599261177212150718390852853278940584041655551881433305965540860601520609065427003968510289593032627917010494602815928114982246231573665158330527816890987656333938283824099172084074863356760860504832364580773050079674965852098830582202029572362524796933525086408323051560190534726659745433116788083582229830881918983802050325697419139212905703754251541162348988471750701608743952688664011331579521243804070087728228371591412867531733645211357067646649840838632962737388769416407977714574372371571982593180159699994576301365927412639498356816811859023530971871301987067726491191746852896570482850748047744018383477004764502673017837554647443561470533147818666084756940404919631243592734478658629761887477765472422318985628115244792379205850286178706121964656270103217061770030936211414538803697506611370139949025868866584917881559281731316326715149204410765954411268509323122961871567101054348898278034288899514841782148394382219999416203634670824195524155955865409056207714555490288432089229261639695215309922749028605121795506947832168070279777344156089239126393700353545548449432515543794247376427082095935486336086183524636668424233965895518836008067159747419802286309965709941023662949618660218577546465153691172600670213528575569620978729250561918763246236280485724777029536504045784973051412403880818884349682131604186368450586493930278852062004287021986174835066534410277077515136420128964331645440168535863358253552782619896256620222371454887409900680878788514837251156609338324369470611622888283370440460763116814012072037125690884860855902163395890815742872968640941550412917555308141965957857695444593301686293790906888022520423108628283480300410733832989998007328325745022266267377624328004706569496250492496110170451660964504481546047197930142909761031846607422336392483979913109459492008730020434040649766463508183534052317967241998122755464840397541775764532897633240546474959220628538766194148280665380778441389244792800255696018777566878655211596187011304380088312336802344190560883006946517940800951570833872424278512209188342184955267160895790019250405481303344197764033972106925586648956322164066086988072678522509606480126347804455700685314222522288294493264604825298422190795038209226713182041847676648184955841182296571819737794567583479345724638556426875143002689570333813632039288433799745108562996240694555798413809715229116830069119418331649706080020752118468007468857421465781776513127124377416816628798515232992958580928246955030150693610908138353282721332429463326093031670381156735316089775770174495795676668295704915728950953005930295827902113533155482615912706368745430984496989709999114961066977559550796974387985099654910675276678475619568540671282947646968586251095801522432958608551906716853600886364295731966780022911448128546067204376574035622454184472663401631968764346817326019518288672692482862113025672113352869694065042230395334378272785864594005558542646645221010831234711120198928176982879606481740585580511677867819939768238772756274004866286098920373411703429656124398157666208088467363526259692642375427801234751125560670169776223835800960209486933365231033406022104880078472527641558089178515800793918769068197816162345514246664945034046528148431479551775812226394831912936696248770244335065971621509570247712771059246566375673052532537314625048154140905369126574048994438676071620466924291885406549567497108860055672574925058474741037263089951033397178471527089313795628970780786257008627456028429111426993147726356863447170172869243646363079001151240547953586213875011613116946139780704953006551185351311775774532707301668351449338781644413617605851640592305895536298403879805629599791386444431307217792227979475377791437886582102729521135124362457989360798333323482242770879518833360542548672645340142818760407137027639318730612005746632601488225598639424422002757006119310276062718827216350149461153466463119279792740896264227210574710406847714640893084296505985317154223560978623032213469560955475800508584992009077555269346025084126148122247472422918194500004079760337184542836114493603713790579997609075714677834628041414131625421869624073505446541128514322638554775765178249413166163202092978244044174800427426483110582146637597184022098347890301877306734344110238682237103396903576869500808151084008749436219230756305772520137815071227104072753826574346807681750287982563863742927606584847304394067961984127513408149998286047842785274020427832669595313151713556554526717760312690064708238930344429855624758381069870490193473374552798302999164206278664718596600974772940516773607934599890968037629609298595284028472222098019682755917266029135844898977477989058274675607041502348701787170832362999164212781622498354626564638110893418210114020792593882173087765147174512004617090517227112735722597756428660643990773379537052735491411456219484676090984404366114878176361797381910039555892718101498463734253493330279305670842924521625960348510550534222434436467141918700402841527556290968825449814340660502122072523459491781159477052650022251016324094940528671196860341038233389351386904303724498075227041574836100018253636597777154442815943322034328524847686675424121155170182227472408367932565160901489007593531052120788438648911232316912265292601679458772195488754819044372688482296471814906824485799638760515249881394573844343984624639498070879780715371990890875947409674488209409134227533695480797712139777984170511507056723145946772751147391444547301498720436009004625701890768308060561703719784173347704129265965989226768969155267083920215542217041154002288371241409862463947077267717336467363707585359694848611686020795527078402475480395530470607018409261307920512472133840362806165887836135191542929818026014945909671850636050811387060755780923304085173636595732530758639656602832185258631488482912485740944759191390798772418077639112844280021845015322118418809094811779537978436636357049514866215587487233221331209602176905637801971952471505975040697713547486474021332348400053620511888081623169656955504337526688377828177258885367042512211180149883287489937442982595108871064365348917654647578992101541477691776138936521829325601596551249459346822136466993352898347217790794103660087505055475738170577547564330400482268357643752469040102243065433842588449304789011848540238638634495748091174926555407064491582641059215071943628380536975757746019273657190448240810598915391891199973547684319079767526931399406659985009401993004512209847881810779619538418319945690078219223595903868760976374835997042764983258259953654366926832385148320905817265612697039097738045699765188041818301238999631245668082913124985542180432312711141161222504785607849929352640382629585035322106930601849039840047857940592451249305395758501694606933543869249061760794664687432849014741526434047825005831738826967239830211658593537064950690429600855547030838392881917036078727938480471602731039313084883532035438951379398926264434820872167400300407771445013928143475550067266872307937769804078179957980572183567508450334177769088828680566890449831923621372203211335484027954053067396039041085321658740699943198401354136930961318719410093907331497348248899818670350409311974988890147488974945136165820182504960875007896931455862013992353216813076692956842876160575192269416033401377590110821709563402510197842774941562326131155773615214362802930366072901263772916682379860948765157229247972387511296169956971566283850793460344185680392937470284790630817672211393724718393151134953670357329344826767069673913422665339809039800658859417923446825813621572320266840075471688422212028487859251252523638910242121402358483588744830611045166141521180016809367532734010942549285521261439358888521272477204631422705014114647655569374650068034137135800578210395015650593951628777378356978305159839204664534241672768653953378643715212282501790277426912047858960525791795890069183201600297233291744927201899627673414713018703348103625826154379855846991415703344062699905564396443079541081281101137825481066221697585997036960653257404973723685796694058949696177290897604217314708059883168615986710464332626824753194459912652196454150335919220484241641264811936765500228946720433468241328045936196648219841397992498389845685053222141262523997676614559214237255751380289374467416139554585125548472912757015396231452228634454152956698527040569333907124511685290272000527952180750504989213392291037028811198247433210410516104624855477496469036018079779557085569970348961983807893777214699636904905254650934455219743182011484794948085309711929142214095680066283943752305008174413593363108235170752568479782719667820482389713747974282771348951348790902731893321090358062239115946099383595284840459439412269552598489451523451845276719777442874195198030398616183610841400488289199006770844585882959095883585372343554939245401043877921032032471266914148248436607992281182296999609856834625794650669695205031703772334656869291969416360153351990500259360968539310881303931802526242836420430990667045194520828099291630735500858694235990165195046101240338932675376104573807594805591294080873442202213299047579182495061618475610005258583225330517570895157053839685234106666475889667392405935819906105806795995456612177262820909077270003397269819179008003643714393249968751468911880439793705161904421462809932560964775931256029494302410339248027381212035925545737598869914527298176522999741044557884553861367996966988211761902061130532238482701551133434880105057504719271926471258920421052644618805400888680477436723260466455861834028804462848622175985272656297209985173838865240371588803328469801419958810249542008873835887123800177929775492010627325478954772826437898103963080300663039364806640963017512964334973062480258151473370764400347263567299443257449084372221830680544195306579587984164933786524076280200093487941811558461590926839664910557847464055546096778392662178374358629425826480693067743812088743597932949515137926269284689659976518692829450260237834191961373579290641198044460704724912532615463392912293164385528836331081759315371767838295796207623279692165839548549067104661026280370048327869333521882162336897479604992754409448437442152942755816647083047035807566155395545621468456871285283394421988476243168082154918612969255754466684772792687652003885102445682056865074855503664391814624233154948462158831104988492557124628932984974004904116414780751034783197327011412453765009290878970709517858366964116435290417504533633809268549874841403615574846776414111094545694340295281012982284390454520799554736193629809286618857902852808232671741521468594365233973908715376244338338382449579093966989862321964159624729291339161119797064022431696226716221373613823421165573902765053260163938384146096988921140455111467496344681669221490548386971667993046558948016543062698826121401686251246090822866424109368430166464917816810550495039271763171617125492835735948037627574837252846815824046442099780610203227408764713376170632883628696116177123444556155379336083586489026177470543295697654855378469800443102089655858304599192458681168963250679942864612195816963369421190539616711085926582673694111767280208950886728493962975425395475562052770795874465027421281483347414235317461541509441839699646396877821400796976967721263735768649090723991987860016421979990938855687341428205232973706804392826956580474885971767878422594515554925173354680471637716163509684107158229415019966234229181868564905861267817228386991713356894536750186466447408571779514145049515417071797363010700922113284174994069966569422085767368816267781605421320070101425177283787488932050978289392127930984439013975399420997447126974344680574331591846535815278862741371339191843474740277607510164442455639031136489324995701979077513390929470368384890390297628101799185727620255986675484365207943437516524090576723929853292736858228066291921565759699604451700313391633771286128915751829884874378440711133765086146873944695069348725964983352930911240254463444454259339835396112769256891221143311839519113350841252402509528132116837894672985361951310053188407835699623738788986139356686982552810688430834379235142463975679571337617675378776139682366341233019821112015723427074988536661024267181458859934953334672587286490528305182172741350330910742246018034354869260782463210732727530891645789791352252530625709500243675870399598040230568938781126697628606258430731193673105210553638118869888410894579545246534225273160043351926236518691313892639732226404938079883419460435724614779799749675393188594028105611925626595846949825845737766397058017770115784955552851127163775051824861166047803467950259092664117730236437054338117437007130596388775106980420317266518971411799911922489447919161547452925718421438894989641544841915561054929002438727279286515719571217785560040081750948682085552588790512992149574581370604245509029628033524135797092570951996372332605688524092950850451281574410802591003583274228390674484313029188950108634671181236176497035539255797194305778628426058891091412751414197188567085311372283487542462662158778724844584235377622857985034358855930844017787022349983823110183052562313542852620538638330727340981503239547188418982848580637897118574161317187587290099659248799685599169240152184288812373213252603709545217757416160615590806652615703591197479578434235857546536464418394060837418795358591564662417778919504184450886875944387970946578862322257125385312150165745383049759132016037538830389726477881882116537241537719931811794698986215082370178028482767006397461736795805868998330285856170034220434721816018378941585018415488614639439963451157255218141386762619399227941225502983464323315400936138376487892029089257172738758382825517381952214784396032058124520275429546059038384724757442723877676709521482336108122241373683886496663469792922589035314032123259779126975331119793276810474854623401276509002519533688781458400352363154117715375920027376612688622342260332026869065863722015716422912264233639861157716034208385394757429534629064699919819088040170491902423206869935156154979975796553415088141278861774723826054333859488830987362032166505555679037503514669952086494229235698599151840049181844945427001652476343251142174117154565466883699770685282709603369260366927921197681986688186965888392034425943483425756857210577678419150293680370898195925452549783977825167608983779899106057263200142790439144896250012248201220475349980718868289028065960781900535950925075515752482969656225907932609151880752262478382738424900600025573150935092771807706534701550834343479989545638560502148505453063774743053854886762776565004365552040706292821955805774574861994489596897802176095206797490198316809287829301196392273420272808232983979931925893967708579170187551233497901814873157106867190104887289061036904505505846827709176573968068490998466894106878591180081907054218183840331195048321210557380764489483080725316204513128358818199102037310939937701376530492779448844945058391920297052335663100361308392705175033981441767598186092532672811470806087629601957048458305569281493611703388711404629088151999586205744618065794607063762512841203642338796912123018157536971293588911319589692896721831015017847427900048009111394376502991556434409333747088904551400376575186116630394914721343053188620027849089309280762650893062275354282185890901577877154505289689330671108350610083551860871375138712410579064518032285380206563717655966495560537595712905761943472105168904338922230453020472405839791494112489706934986725504485745758952406732279689466005637945630118305201357529962614835285639605179085368869117566676356684003554827968594323477182487724405393085814658184368812209585058648633276349027027385159579854995367053398509061140941448728178699874585198207635229948709974301811096689672600873039899397767120950926100914499408031578400741846332712013581089473301958181545272833322441486821240333974000679650461765998645862902189546917282754909959718443431144608061331030440329273786560998323447290692036090011354128491340281219372863069470881796179764405124060448580129527892112993261983360508974834089542356072869468014875856349038762198949007519971158642027401469861544002132083340806000623731883843099462864968576987566161486249865374659474803328920034520473485366950849923787819608989076098344436500866000479111789904786687154209719538326128366121216837772449604891005703034255717558649734307169347005741142183346925941992052798811196861215669329566454737905059563145629351223518329040054550224443531777917813477577912813174467346007038257626657753646955814899178482523518491352601921734863791555862430913355414494694074485103618121356645780381109677495142368953274364814895932200740105773917265312478065625892604349246368232434441397538110199219319437067045906845828710677719609732892777109880661335616925966575282978302344367575236044697187674488672507296687530097296290444655107304131507163022056882391909243708879770190855112073935633354808909963485824281835459490705415314330359206424880878091982569540820594625790047738972050387679611938262500789485906070952879902021667906922541248029699118100381062047838385779474307992593025911665874238897303621750020580261765572628410515332988959168719388345261812866556057169267951936119348178252373414601260798303968655158712866266403918263515021024168694555801198449681357300547827080378886399972118454738004480163111486991152477974536627967480077481580450687680922317513580482194383248531283711141106404895149784426063848016818690500954335544080760286622246634981491288876244377173342974735630573872296442259977072847877823918417774224187877577703565033573147318442546896295869698401408049860780313108020113231227086572756681179433457963045711629734949541237918939781934951839740478094186811008162102234632437834293263747206045155884635551904875189223419996134682834104834324621751786126915982909312031635716549136341319406011697487968745266126281325637718367301711305447357367274620697278862237665951989599203255933623647558047560229477005480941025442048839341721504443391159128650951422976600430406623365473805841699843843592298023008591342198910872040054826940975339869062994684001339891894419625371584703885263141818081948879278804886071510739817580915956930369896391970664982740003463872483600412649822678243589768517065012228622601061958866402865633774770984172406991047984349094321334480419979634949783323183083753574440276096523553609366451104240911762221187554686937835521973127307937064794946246176257016010714402305943894644549012190583330164145056974636637094343279448350203813899877138520158342838988003367829885424774882933320072147444108895653325028243227410370018499151582349049384176637016613363019686595138422202548257819277106303551191201129047673359500099812600427592032366570272330188404350762615243041181551517444510242007152166986764136694187897162206070713415279513648304481115671181903280413537830956384665619779156702759917229015766556294563352757133283476520900815623068772015672434049069579951411789285611607211952824719737086826920593620097030070818065906419377485863668346738000658593694155449582258485666805151177061741586221144652708525867775664153571305825888604645416536754767643672581613782098048018113846239077921634377747689497192754721481498708948240007164355711839983031808526787912773091911108101227090558700544164934307793678448768229570050576165642830729209403067901306991022231121935117456225447109012691219466417124850207840571891915419269799333877071830147869203023151162633152460311358913249223486338552217009520969694641582679567634273668290097619358813323794387104104011984174232337839088339572625274216401276218675554712639792080226983027592036967490068086676186334360373594730943096505910703803532209882357398229624983157575731607470004878214614408651858295453846176105726309820147818352045697265812380432002433646924608230905991118251363582642416964814497914122547041724608857775739187525725633895631281992411109374476169248090224690746475708275182364763345197512754875313872045981343081734879286471617070455001014646244455418891743873785274850083143719854505272381419279742735433031253535614533574216634956139160965254649113906621996465121228955546038799563038448117113444323754190985528960538435032204631435247230204750691284020950346915654924521633307989984243669484998429018792447003418244453037999001143683076711813416005827888868068178233520712204584220428519567485381037644683729270394156500724448212970458762098004684609495453826115115028501486996222130490490075635647455256052341598041988484582318846511160570244876697824197887578203050898577098881949208542550785473420251805583777379599895428580189327096825575747220646539369258991711909039061334051648071870497698124963615784295156974674988759951673574727865760482460835079184554621755360382898157965743579637540793049739422949888580576643000239322835271350739501073716765759715393544767177163694777927506887260674209064512093896396439170257882325909424638693297887820508500973661894581093015450919290702510002847757315213539258293185763603698029190445737520166354982872522300695815288773760505193614562911251410280726972441731232690382157913683654304817157177445719256916160391620017108459825960201969493439368767203204086219258160509272488472127862961670288379810970618322284480523615779112924134814995969711443688565824893928583966869702626090440947274751875558529979904301383198356455984548823713441144855665517060325553391579534264243046861436772750750674880558959737660442447967324391910438483904931133413471461117661206511681794143341807337035038393018817017680914628728955757383383613863956665291187822505545757305455306632033336287525868713254969342764787858548530810963903813680918291854495155536879190607867368074866042888865988705874857504794695955426901840657291566801713588706545605796845507082736512457658116431036390991564404271063915294285289951160170820821890104897377607441648991902700452198760723154439375677844838793342915102498552766778122074937178643449107099343599141168086460989822433659825312021876422875518324594292002486659255816865261282096533741828968748838906605447460533991987608513416945194860563748691560941996760233658934912756054427875562623480100686508654165031502481434123552550546579912041191993513691672206571193313692970608976856409509129287247265630531459768804525479179030999381090972147237716433752168993819326874328902750367881452368969663004392263755208674361161895264905280682367839839075530698295124593100748665501918340896682613173516935797491774949861079176018537451149075707066021662610957436119315541348046570225091412095624903254435371629303481286331575404324372052599570325171103935420286491833335073943817541595117151733750563223323502999610857832495025953878116619511490386490461161844555732076025933840547205031348927410834688385128391116853871026017980291979375805521147780482795359212899064864822140947350849924313601826781099424213839234904422583316137440940352243671265212098389157193109429829287877172742045957374256709711132318353847414914494880881854808696624540898794059970907488220497955068914549705557987542552261044651039646311089556559449701382649939816651466101264969058861365144361859504221228843244670671923636815456164035886448525872808045797213185034988616101655865009281333325798546499810103074452559049261243336441397789973537813936913525679918558950718964412472148752259371827176798183686591082235479055741547494608082678109708388746529994240811990677370861287750026327517198877012904103107787293166232553730408915137966696240291640519943790549185761017255941780600159273344373605944170428721870759891875364973028671855647502945437398151164817058919633781190698780883272586494901562050462647681564004757686844814468357453278358977826315870311501589936964882124366112240296767835141890349647483676549647529153808159695893124922784334974773975735912200322075602420932099115660107416420307658654056757070048850656985708442732844339725804955633540974805743587893209676281650681515301612908483421567027957214689143565878606884245733773809654311290732253220375041862742738360664216398027161963846820874641108760883248693861625564193444176049746185857709995553838396276992958939097827622688084303405661353410402618820002617065462325232462204086563374512824370521388766336358307776560840103363759616229267071115168126214871809344487532664196901499910765169691920171445623597295021300060348576945586790221115114550721482421059190885273185312384880189761659207916949578436364424396316331404461864333828480101093607446633231908644962313102186124839795128520529851317060806019806543541789340382036953462057212631184959702333042059021529307030217047927936952844193516394311674242127092232960660977672285329458000430311764409659552133068219540253411300473470103750466213433997606266463211329865613759927409811605787035405573299846963179232350801849857470791856352952759409349996884596503702434178852537614469439269509693773191420779993521081376086697049765266092367060751927522339149556480045901851160285912657200307313162377956112132715611287885654491531342661318183936325244261455416132921905527156759163347909444834664777079820339068281658808602181958596482568846698032743072527521570175253595893565568863138120475295242405473131494237269804264474666321212621426444201976793584145820882858909795871887992609033399668351602179762979403273437460543544568957935432091498721346905663654821793009965176651451062036092700203696393278456231343603236229941640471486986471402675060059542690679926488772202912740227071964903087961314260634807701709343477430521590318410126936328932468058205188600762007603703499380306332206664920290225898880970952501622499528387916079604934761910669663534840533225433892370644871925940747993414863630406879863580823068950516732139395577301603106446687100163807992731781568405891241184324436537799162642586400425366751149588237915427769219023715962944671992198467477240290743025697199649538247712753132772592841858415681862955725780963573763040554861997125794581828997243485535369806809932100531157956787084919806990609592808155562532220739372182932341255670686191504338338582993336881384303884801235809044203830747676662695765220642018929178729701957933389239336888064157098126223081281806259876088735063341992678101871749358926847265412257236394757067702826832281285856449247814303907182685564690173460190706666178801821929879572963750514822295811275120317189983143308765284446882878990081319338575382701827455215257897067282904972624374661273698644457286214896719165662244950894084890798740106495378620510863745035122041960991218433413498871305829474410157623939677463187816412381365934407416698436457655592908940743422529623501578661404239666946176653401136711470695376604588979655871745722285553720859450649827147915688126974288451434744596866295325666455423741769033834613220715492697931649154528997581738148592771162332431609418628665575191232556331988229109368510093569139669535786670818213645369160118137216469386840961614016096487096107583244789077398302978091149230727819416519595512676939860720589071846667773197283241293550806583025700824507019670767392325327487358983362082114185772893231976713904869079933276920608464992053984856034930032232646878030475519245118679103273194777362343092930578371553074440924737905985728566636805317645456853082919636052449039460635910111380820052194431048998189089396977588300384791012826199137163132861263129068673810785205764803924938035714493832586234325099763412804958791653555964889113164164528911264782811286050234936238126035198985487642306136269577934781459565206537404013076237492865036755917957421757711053262291198596192752662805072251400437368172067779884611623011593663560164816206597900655872672259445063034687132494566083186303952479439648919461306744132063888781741714509678045451726914451980296955996866014130039066241464657826852531836788918933699194446744521273619967790850046562509704449423417674073805335041864383213971318359759527052926345552571493038350795786591782001457008141762214937742947149725718751400657405631738473599113885536780847855597888395041753998004692883339020494792024589179331970320816230469882201153300615262740211720489634572809845371085928838361782504832857667798601804771770264289579052846132431463771757130799585878264187670999884554016297757209064036209231674590004677508947197815208742054232422003175970165157833689839877333495759230029487608564896174999114479387282570193514385993837999516083626322908547434810637173385101954730583032094192285489963878363542944867798258464605526472621648313589095694920255907506003714666402273015659574368933138932048645178888880444064612045262034478498348517854662841594184784649355948620379361870365891896589016685442574560667619844501989926435858835789434140256609656217895236751231370213040135476931424807593238710841862240018965093072948172002164512804675738301040875936987957373127674779192820238705756128253530037169513066378343293325695439172897706278621877768216896966627894775324354583083141220671488795490624502407554548409123469007454993047554296747948092971044073944156460716908812283679377197085946293218548964111724211739769288215701848971008703683556899976428003347636962712299416361687867307163881946751615382376550697384446189737770394668402676971533686724837806312681704319918685361261043845940845277616109508711956852856567929639564611984496364107835544208549051178720195231852150091378181677271238544158143593877383142340541319957554265183187572210542886547798117097817562500031728131313753671024496401307426821261218972578903886066344729762311604193405655714933472706657236128217002745237518923089481583384245462784320427126097797992352554623397764937373420544352176781157714095349846350315067257911948451162061869626079719672304803322258034811662799777680407663122910555156575059307033076036399668560338409698361387117123668788585440481123775219518161235199143289406653520880291832107309683912242372197707010434972980699036828374859156372575494266015202555809881780182532560251879118744947391730004326483656481126024094370753908051284203253690243950569227440148250702581888280576760388184221989475362443032516128547688542345248507573757198667492485093630506129781504313194172955199698512498234714120548513296469399977144166655558544534854600659836320384357134967812620575578872431975008758330083760558344200158003076559246375180979239256251584193974258363867428259553848194799295566064223387387733853543718107865897286038156261147408040928086840202394740310138310585097609699161997559786898622648213320987822721804355169897046218327063295012642235365721773709091104790879370276543545115856215647597041443738215957785023144263028296180092035898462857268387205676641435479382382379474292265375846001470876051777381737430933596999090010535157036371402629856920853187902779366596369461410265910711213184263858846291189060408160549430714269793844776621967059193720436635083649156330620330475472338228019386281950414639513756970722162185115137827807046693885514128120363228637264536397758694067684687524376274572503186796846879233178049762586790406433488028712500373381358270930940517399612116168987245878261134018165426754960322770743697483757288301684561715828941782590259302829291814528609573251200126634401715260492797168264922215957915719534055902929063833449705710682305066447783481960596589283737869223693843616938630050514592222914251236092790472019095734397256435425947601218030718891508241539217767820204393300230805448152081482779838083455480748939642241328984028995562845665896788253780607415576434929562108865579264640020854575621508932222731976691330726658971551630150341749625025601959046319957542128405773173422993101333494667472772947722797515552230537417199087418332885680007188756111452941637709561163620621916506307289498533630922763130361875781795233105959967797809143090857555636197556175068620694696871304789521690363493271144709660769495467448903067464857118875767496818919672123059759773401715593839269749564842115330611010174247427648191842893268842868184113398391849512365709161672979288308252445211202207142169966257829508138120862846977015129281503381702003548200956344853776273147395445396501614318786205760388535297790339567508312540395636409332212856020930605331644907203990679669705022261438515354054807541411392206605412775793856292840655723070316515476962503926071892755147155741525061876943208992033978188333706055900173146539921845653720810745661874531905331640327264591376295058308588072482592970952739329262947416418381233349945525904136789553402028663238218712086831138513636976427532144784178494643466274226320613706473289710296592578006422727377131041593710465297507359147599135384704912439281240640834060697680592276547899418053151035759909842296715189522686950715976365022824246606835976726912446492060057763733160209264714086764941207779177680622889362242366988123514027216071816268003578281715026368818652421159418761365364118215890295513504233711436212629660593883566491693613649505354789816368771588326487455225735188364193869351487163417407744497264476492039529428843917816187079344793483732723096290066539897450060322150898865855617863837645360427658699415916620831966678803457814502170883209359999996423765234851606871328100712160875495542446624060256948165248559991828928916173004287794035188849061719743088692996006402091153660404050684834358886912274552685278212138294013601913610008488450678338945831151079975869371438629859034048497833729233395755282829166735010758671505943714275067832039421986831409717080115677354478494647776490033332826253513114755400629850449244771159476942732902873244450978920530611107864555075553567294836133509059812802891651892879401030596120081343028213793412065213465848951975592812333358834648769953927165947542932228494903093462521871668632434650980384220332000224209920396752274638960371746242262221012492339701140289845314205738065658737922171531266096867422429577047488105943636068312283603864888354500800711741795534335138879480219123639742395385791789952722579845449327348813556663942493390217662829888839847816627963804584269474279375799677324136788826425913033586674133562505766809134397435191631095836534839411333762502903557157720026362248511579947872911558087626723330823617724271616227066056302355918100603790937719494545821837859066473042216596485983434055844860193367859899001533174648698371248762464590940952404720027672927717807849749568875063407280064722763270234507633410298703357465635418832560304189241358514425493890118851259487318994280896554122222702709331233486605494552550145800888854947484702428782958676244766521823377263997678224361170300271840647719049166990897912676964744986200855772199422494754142080206085366068867817194113288945890391382197378291262097050182129079673477569791632542402827647260336114861318375616093092902084091511796281551764746819883324201650211768417701324243088851813721496375519130674094114709986708091068087489545027340373575483213852591855497801381731361093148909893050520307200061737020856178780623906553509420750513375404386277229854916067836702844061990632055953328124975394776852665489872878363009953846024695519661095867189206065403716333274593365547037882246356099339741071786574340302888461242921539496273004381293981345749043536514193573426213683142536942772232591893367072399882142732966991305180272385955411291044921946832139249394976323419367367049658704318016404210288830611393614096549867311859088268514381268195664594538709065878674688380231608852421742504720007720873304389135522230058086976513861150622743363706537746036508039688340668270407202720813597590530718681785215522065675699412716503077876541049408065451600057539261147123355683646688849111745617399200748015090644245103224041109314918441966119929836127732560199930880323341499196867339301061700027021546091868457650343157894040941458426065484282666020190504986430115564494361723964694152101609299091307479601217642522657648574184499037221200932590543322101025179177302373133072749625463085058049917238006795503218077842982687127208115812222004384855399088757029411070894887673466877002422579105422678516283183849739480398272845764953138158864121538393099108672227235525802652161929327942343127933272875958481913344159783584676344900468117586985520680019293835819638027671052408738379385077481739753034797104557461717490058412481133844838784465006705953433388236730624134980002035382109232206633714430262954170547148724530448765876447387367831525191521081049303286868498096772064056982359353023870398889702880161777096247098135960604635329324632361080702887175917589038616455988182629611648784633985898416130956424637883227754990429399706130497491504820152938492637625345242390417182647193298461736182740734223285130288919040695333246501231995958513877546132039053557952436998929451680903629731324243771532703079870923910274773028281928875236411105010129874378484535691352515373168595569100692361793847503208579033508409750220743863563184974668898994724142541669390705584099231592778653643156371231517429599496072246705041594669323482868747715903172325456233185410667338475319940010985069359686941075631045885263585543136563216626674178582693787551362744123984687259023416493431652206649485404398779546118807092578975957497112211324154674424502182002085826698691372068188305053293922386879165092582747553765939053236247988619811658626954630318207904280801843300773643697524679515415580386814901219611432863999679021156724900197867047111823272359766187132957189728311809438773788245630282750346285440886027283977259426230717885328415810303500170033126721200465933441585866953502801158537884878949966065081914641932958784409114185888507346059230380964620630267087006484118619809749351362106576657508285652325260480936017604954010149111740250323546609480682356555128624122758197058433330535468861879935573605682205402374175433317289341598495987522423898414233570715025078155089658618995150084695688770337860623803114195935600378971992726718796966686935965318662474343956605647220288245085585197758303201944386124123850196463055466427735590403636827437640191128455767187581632446644509624069886455043126416617807755645667922533818908115680944103151020577874137461897694216788976584935648975942309038803414262066329851988804085693388224425345982943379536043180721076167089537538181393059023951661017229086991296493463993145141497551508893155147761766377869005953284678942935549495565599435333514830148350540242752432701949571878347253290058148404798527789522623389035751752722910275835284375196919540918965864606135977368012630102954090787580161453356309691703335171252646356005389620853706949535908029379607464561621479150048866453541918936301857947666770053618354406011973967916611956539688421233196994061460535205425530447850927180498193093029049690010272516173018663892650963956452036560800067994075127494681206353644440495396330443161680939382884483306334577009796071944033977075972821697731577128362312226171888399873108164409354620091212924392876118677632108660505741319228447315771568999153062573280372838865827940800182185377033457236016389849600197861540860713557368754655902172303064358968668190319535062721587442141411091960945164170939882758368467586530962371832280149549130236999491515991824478399536130204781582484095450061534088954359735380270464062174767123722329393054399038746798413444717137375753459815729439025670104760073365353797259285522153291501958135688331729874460930599244510248122444475907094978184078117124423329324378772951635049500714471614771127933309084050323099391410909379468069285996996568002757117996257241246534201024048557855042991456597525193274380916978681454132354243598182527606154393290975598902255299526315705517288372007663372151768286843309462138175840119323208731957582646138022417538208558399498549694378889309540886950023348721176185728912113913599369644313183175663374876819118360580953648394031404867416822997729134391381064402269823427115114006778246459043266874031387674392207690159515845668633162630974075702299139153216993989896759439859341818066508393632854238535634962958529018872518234122359105183802600833944346509040757964641664048889742286318954039214894721014708569652292598023898760608532844411797962797654583758877921422731472143181333623561159933748595726270285876790337396108887083900955062991797002832364265848818830089392520943520922946204746759725980136604605360954090032427445770637437292531238517231257354487795059481548170069756123584087912003735890636877704104795799147421502424634389130299619604005984127749138325147915744070215837767476671586321802761970301421963404602480081453958463231092100247117546073765731553998847568579847446206216452496189444057455212442367025606751794878635414319384374369527299630937998880751270229886835242530285177419788207664928279854159646293203727517185202586876595872951333633435056463758862513782768892877123806859560961800579803848579311517804401002336589908167938179795211932362059087469838148099963035723462714030074100929259606388787250243302599963019386093758738682621423832629512819036700770659884894096395145365937488591828644388902573630098321254275840468237857492852923976507182329874410720673948972150500663117303371607119755407294617555970240556006069723686416807081548805842698386947195085001119464266749388500231124823245628905878039068933671050151340325007633916512753391663178007787159144290890381333907324665424132395129507442465916650894020358397175887714490360230153127400702769347379492391727622255703901533567182026309004803091356953851151980721567015023639077770170268392420004330034960368200029942533293578279846135941819994579020562446738886545410271491715665466642483133521651350645876336651433289604999082400336066345996295703516372062895025566272752549742355599213209696847677551883481405814084701488663774432723946967831481652830082360340783021480764439459985243454233724363628262755675708388475091980231567354158217586668447594487555687210252447091900215241244881433299931423132714052533136253480503684998981597386147145079952517789121298208406483540748730758295131457284030640761980388583647581772668926485300260857286995944793229515776806865086200300865504963577665943774342939479830944165577094027984078579153961822277435424196758514780202986736106112722799661027527809055523305446227265395046216838324949238967842478800193600597757763221597138162478399685458982193600069153268264839808457270187174490292044613925655008000061956695088450352282101689284503810232611336405492228849100352514141851186629526961866273155600804414779839220441145512585074453827951744078554960839851174267047131547063598524633508553059772247779546829529552718219179189164088915599792116211926764977942779593115308110731566584929311420288708475590675872664439233722096093138761021742426971720158244310415140609210727117263767531421847380672013284075820563030909362345597504521990950782636627281409386508879057539530304577048875239006472202424062758179763409749247416257077520155996217142050474239897069868496636542492084737784498861186556302249720079498203443506559964954851542121017621716884591697428758307575655467339122852052060481728901123716240434367632856860167665119661697585132335006475052302785792477389247808698301068483333339927698283705522526751515188035726802560811170900254942464739160464475155430002159479778699658982012324388546051050452391997920377126475517942129100356371140066547822722005782939471086549330513307007954052386463022912877152624550884852036321690080538330424045174797870069075722020276099301771605433814974598946786041328791425098269728732980764628125834967920480111979896074592780449761999322749104283820071747630778383341564477774671677337736434607887360165289362859582962440674992497400571567685465639547722274168584539872254249171994681702894584064884480044813025482400426842023916234546977682392050163349537293113358475143764566430072798600679331158178270651426435584149321230287752539882805116228914328462395847479472297545777928347965677601667329905920998292540683164023371468229031098024481304625235885524179280611075489094535423738424653436002886560113557545147107992018191981996346442811725792395432013178160029284173346492107678452862963395238097195005243619529053875497010031891882162892195213322513173247008870519031299762621087349652551821528092715998098690797427371660094174078939144653107415621176950243983253333523960449514059377425328701935238289442624302660851744040936015092264797761398529965332078403521459588647166668280722724352624997820570009725713975824254944346722302588851270316761733042373995592201299623388804272764347534742758302636777760404771781410291770667742396212222886726095044996306201442994124749788406671562516501903016559070328207686220668018110556578739871826620645842145583751086102068670062323933647833347201012677644656048740273454068979480165158694785677908471493070548572314982652200190064664136925234121275175069292192589411566905551841266498799349872748248941703491778741879464303484250013175119882855727102800136480670835070918680644400865327602378801508905270448891040954688463713434669021407684640007395275338290958723827869553517267895336783539112349955308590618494759195049862664606121501836531107326820408605812394287148202368753956015103823845262860232580345868874469741002074102623401934238866761101579789243968233230095030626626870710171478103228406583901379489243231272909012209050753171408414173877024278759534752548459636319268623951900298699347275983716197739380956655936809522800708500271206017836866098612531348303985166351043335004746383224183189046668944970668524465083082383405646534717705805494556855381580642629086684443106651659272751436658126766716935334851342322522600082073737940964668269754926050984698342157204226289083522061475232921039826579132262389412973504475759646309837515782215514053164235989697289758955414494680018553720973293781978700415132626631823846111769709936691232346670700199763054173282689810573032025722894932170488097085267875659963947565593456761999131773051189274938306043171103261426387439556385335494950499905020834792580563908261219621609394664771316440510536214246528577028364967715978421481408604578617268201886037197604742184734975373757266840293403851671176601476660921274412491029078007778556166806397212034731866452019198262975629004926871540383261486720649505126355671455855074733337762507828987572151235311494447846497138678894805145979976474122284041580013639199838291144967806521281325759666173616929700501000397907481133137841496688074020576527868239239748148936600219984879838375037842250220025013056836641554618012674721191955327750848713244419665857950481889292150829458015599890172793160097028904712230280269261794550458722247160062504407026812266023935492902397218824443333789591130526060569636528614153677278207526793599162852318637677561695978224669347992294649455473196372495329181949715292916873399367376954650889365201076575245293095746869952066435446428343551439007605492691831755573453522894991355927074250979679843633362364687366941100452798752195784451280935377586751372409887776100338240515222123938338721606740320649968424651830722009845513576699196957342389801043457159929462411628865016627294604913187583775856157901058432241661276255253241416204751470521612227665226791920227618300904837186461683343501207857215750138108048761049340542481286910897134638342180860044679192801084360812346016974844059297443905852700334560367744889489091147694698543775266946807282031276853771169220368156620217488452554508092694451563542837242366539349507709604043402458777743715613637835150098106428502976208320794727112692943508508110863159542429150889497617129400862797195365839742265340342500780726060920508323872999691345423921633146483543615532125356158434502454094778357438447669390803369816389156375938820420153033212997924501997717042920182058673266982157224725185825545311127480105620166865401801981432440690216980647525102081249733358762789959276396172306627842074593149497848395439450745454810970500368912755824967458003414920895074685195271331913193201653921685413762216063887057368050954883250302871319381042786888034814810044806101499147148759733695774742484085507463362147177144820574031349656045589309989515471326053351907838839426241037125366133718299904748995949324170892882533960371846056294793358091120263794935877219513777699228357424296878592156371304401210858389018024978827067377247496786706279682430402163806088226342881185670772312017286773714741399858263266495279241961662919537516238252586306915703237340128599027658522535704265827698961401995281297236444932349010008998255421491082389127887013917191780038062422444684826504103721512704386764017943423818925589848738042458257021465703626592630444609218476575119189848175966771612072177904956522159566016313346068214202825815319341068012163285306752171663758222984901774440559437839898289135983184018090865835128257874381853600814462760864674638141502153858799539904721122793093654814248057452895544531351036048866664021890050586934474082742229752519665625484439638098146218257975332655984896004738120473768156711767609155828860552448943353064821325568329653656895212713158905877346353086404142759347276780761126099890331117204120777080167076606770353849746773813860563179321295072607099687140672958134242826027664402605088788410239619171532579410716297175661198872454342780441605401133972583019580835660788145474261388192523626233318700993281374592688367095848557220706201252628810304310354610275692480767723318431669609763385665679268445082974952403934652493859799053231752742689677830164064118129093953814356908622946239269361905151293403882291140435628562713946565736890774361839093354155514147698367111403472610243667249756016048963475786944919059029639760566095330842517205260450099463155285567430411908551025041480168529982507790488480718773925885648007891629974372814462776572325097931247666006512415040606288232458671260417641282416352760203433136438392126158741323104821990269187033548447059545925047341058757595131524194938394037130116832666331570405388763518712939997846291195062073296605754488897824415199741067580531953322313276625962426229138954359904289539597095452702836866824485853892643397370704131015895218708678584897961117350905881895780709409809803422386211802015547417578639804911275489608558301784527657002510484108896362916372705490687986067457464040778919656724231012880367863977176185384784125404163751485299968185167193293316984916928064840568653782006814980458593046101465539226265769485379168154722433795813646503385703984462957940959731439118944798417264424772607704612415589280257408049477389701990556264223201163933620381346975886954024560857843786780328833921883427738814459977356410735865172215457871673667558271087029463997179759153559779363051741388084347915687270086773951894306364295709878733765863617735053697987695837674636697553681602758258083221738907380018126648268513416918140211899987047658756600762977497468861658968264196867761718934835813531644056045860700582745623040667380418569003342058128776719398850479546506957449206334338388634048984184037530290738252305781044623818127097624070357347440512449088353500391587906174895665356256043758366019896805049514368446237713834632737935383592739233204592513699366475911159201555564671843767242148652134613921251187354028455001108752896336370776228233447537302801059107264814431249298090607914645959804782878342875779042818526832051631764055070086675556695579452567752357465348140101768296929907436633742472990809812916387726038205909754929534911442808572128217288887438765011743139145695298539135710488350175413893766588462006705078956398504886950332759130896253900515138829026825892761160633118933449282822746427258705267219892793943418250696021744721120369621391630939328651847466062825015993006647525995909474052490431067743247804135652642543134121372297836053515049638801011085204762784218988269653094599640711344732421740357600615091913389222196905123552027682606067745647450638370041755136968932547123832127113496000317288515165662408193719332745677370460335140309963649467191500430225496746896138573248126290171533014485861717549723808932469187738440447947197961548284931545507551765883782749146304018528488344857198199392718228876491265896826842373074060078668779297516636997836937772915618588037259623923151884265948833810079081308576395187319650256699473598009957755915286163925830096124515623469431029487870215548674123001013845139226817173458669626391249577490917521001271303598044806028853226092869790070830836927154672404845912477719654572097312166494970325729969812816296890277602532903474119697134697980644219128541800025118241173091516162561234116649253398708709997280563983262614551080178558742154291943859636701219224937886743733751930530030704502261830874895617073182946980062955311522971129663846447518068721206990021425961978869478866157130967790060062426069714182274730181121309596183936420559186931764481698625451354549677453298472255992106902969210701273307874283567971738968182291815893960298765969714120848857263698761317266520396486969186795407709961626357039142677938236543705861227163618504709358748558628552834365726803412180346745770312929495746423584204960583642887557633965519198496643575664314254895267275264699924825430789341350617437858699854970629460501630564520866112698661530844682101470987056583022240927858034502070366986863472116042447430236335335845496763325062977072529253723081033770356196442324346152285969649774301983061850657974512824448889696972833953558185440967191209224421303477452858793009975276676841156827432144146296103833549742817012874842745777411208025511635063485713305350279927901770525952197784420495479033820115831682087049137717349539502705972206842309838453660452121477940584071190282633018053284818226011933619017772573057343819202682837416328241107436124429350744503611858362029047557931176914513700481976234452822517759198186324971289649238432523687903805698213373651317841093939639183908076173948836203091110844791129921239011906373809255138417372933194466976738055891724971128058602276176642525435300632341364033942946737553376935312395400800879157536802382336088119784792644325462280474262380187471725451051857510796487047814564876432804013502216392522790533243539515234726679824151460367100408058901209394452719207926366747517045157060048699191401350387737468508883497652057024246105723335509371580771892284348105862024806549912636427759507768230487534088018391393958624512600857837092573108059085433732469582889167158040319847878862495189551403365759480628750204265827508043824362383471570335396480243186432274131552095825496270927601235040752597869678781642463832400266432158391836204063905877627805908582677659010242193430025829574328248217092520048815177493261882915931736448982294591564325073520275374336010684195046340094120843741762866830519689491130956504679444503245776560321895985337448878947496805098081879163690932968154922889634052983097229376436326538194040325775406386981492011286954725177314170582256466904082260588033602498916942054016708956266943268397325074005754933882144638642754195896053520974013837018300220071508520749354284913884425974722968117258682673458205420726681802439144984533486403011969481725600534496966252159276317589084626484205933678299079886762101229886688614062251436390116841264332370882730436713181440691829654452297714141811541102202098916351045053646704461703766501804861311115069975870330105253909748755428993382537497830337359604198355117339118948953180473037521604931458941661522726898602410688293370575151414412629179297656142506199884802615606962750707554423040846049438395312149370186632946264970351544260786796759083879492926383017910238894147965181050224076810502535461660201695692998114402116128417912456245946545217729938693837917073373483798722507889565590843047269424400456646766991406209940678014605140126088399692560822670418029159406122649677570384559757468672041840810720239436026709884815901538528099813731400874643281445404088398993782939712146528840113539326271539311196772344477104213337576907293577701982958297085161547375888874130027908070612721137583029166562889547329191070151410545378344682140674589446055752525187402254085424617075643748381885418922586948343165772943932679901796742710839977583824055448697557715062796937482330722353443840860712301661210743669278281556892710124365844955279997572966421508972470268798927033452539435372145929611085577828501560183888510082835306916518412662485145370666860360666604031540460046270229990482670618792666126549267566653173744200915536013974964722483564518354615895078408071084003181174529568275778183702823097343084074045649415414101981236426232485597149524544193922615142292639223822818796764442475234154913290508417433413539238183187658904485164263682121256532617850541264644869151831895951230971091390040724504261646199739523810439185472747429506666651684458284918471388457897154737315723902051216370716770664712432946944933799528735289608312863842228888406590073347830097546436120952267453509866831867542098890556345145051451197697168192372480375583201280396946707953777477983756923473961515319989496835243296081695229723894679707021560979223794946780260610060204305495576731724026810963001256635250117777726140815478805305951606969452548244513668392180562332539663151377222417446212642111304641117273552766474713541004245285645878358369991596096560905085864417465302862485022937980324157192503308803629998943976635854862745479656956652664264843569151741875134108296040595569598272217380673754049992044230667247634557588940331646508094258278905194680359324467662242528471555299778884617100474864414180512469271380674909735158092399941427693953446774899201994720653611427101774269342786500728714635097915265274137421376605531960244441303108804170536368377171898917173065520019524213686494697949005965678539219399934097262671050743340788597616023092985583049232735535669723142448552909584673335900632881841665310068728631050747916501958800464430288500879480117155533303456770136478288806499607885397727830689648216623309581147779485738167891473090329718580698227820921947162789923911027095688494635711790009193397026493572665677993176034553753394247575488128667785833271473251338142833489563393478102589492266357329535604038514851419489604852654471638593792269556107476755174493397234861096487796200822480651507059179560565925750240312788747821224645625766312880912484080267831557429928651806830508127786928653093254833971150814934070846795827745178378713981911634997769063987098663694118903870760005891510163842498906490327351863030866412356771667579951687884423561976206633832635879082652352881036236314701108390389496701402503907744214105650190106116706789395014661327438280730291526758355597041778823459589531037420500664546794534755073969938905811031788014418780136154516201291840260027317283129692389811068001293735850731580570837065879989816313686638055360045957618196141146055196193988929311398912979818740750646594498110723331715250366066291906746398020418053700977336810567299887936511155867307304665608380348948817203125198743973321840736430712175166675104291836855669698158482468980569325775725831130002993641974677099342676889974217472942818273432388960573240366666389324737018933924219009888482790379951499384792506731678543067687940653699776580259811598988205319284594286025525544034278655168715333193222695428885622465283068721780213999252898620046180512185411339441867826692727217942555145168954310365262144327785189215056168659077691239157171661273315361157221623649961015500048513779186948598779689620161839147093652205825923629323304820535872583632411736406508417941720639540319372101882162786995348353886058729618962978405555489921885669102993187107463404007218323842271177147980526362747763604792411576182950883202017990638484185775557291215574098582175041018275819249012327180236075808565537815671249380196451182046298167114290710344583713290451219538478217760006378167528324775305469484018724513372356006463587581371399367501294303039554242503258186330140943458752185979181713214780124274718785136230620237368038874851002822965073307285645120649419436259055391278724248984633540959667694176113504898506873998358430001312809132556602508234461166136965328773667640657033571880098344688600384385010668676976708029657597692248182319506150240179977290582674189296531328126753837724902726226600089691428881662745752497659009479876436131574685087854998992551602369900977577214967727943227890907135599032994409216660589690296845065355129450392319974068885858231267601693346582858289496243335848839018353585884429785196661041298321578874895194045420882123763594447202614381400706021940786374735336051207742913439242652791682045697623687043245726992405471186198035826268202243911044354030250717756933089650717290068485589872396500520439898978737836498734579134699184592752105350160663744155665150612698252981954723303459770013996969558945702780770582660047396519639151475270674830339645449595922584198262054861370228713473076977004202296956424932650675898563856229530003022253347523889700578208227209919415828598278081497307290810556307729795808962153578279023218595989992661872734052297878425980821869311317608560492801150483590494499621333386983073685879380968451543395598772197136638177879968458231685884731328762163901993533011115719399803692426705447950957247471738818940723500592904863301712297613007193139519870200046151205184843459070795507917142936347251431744300788944211132355624471220900179559419589261696031554618572918167540500978516675772911454324808857740012885578402076702735820069233526802167986741761531534523733162743815356856060324649821115428455975085754224886668993648027130932108141693253628056581134153358262283519194596775377532559208825418909277466942858391458289513815180700577462533031701199239652572582410016525641063632454059352695663367705132564053492766951478309528312965432312565757886268531127402138788707378252314692121556595932056088661590466493635779904515079881025578620213550769424019014641041527718829806936343102598243529448556264413956150448577304509537809609575717254340253789860579234181207676749750478865961186997285458571254598952896908924253767134463359447561301765084288613675754133321337529602380942416183634344062804771797790765488838783395528329950924298856328135955417516020776457000367284317096957162510333462613976900473443659816763062877659739201778717287267367982212465229745073060128787678634815859821360505240259844297113295024201410769341785543198670932034482710518431930162437529608232708094521674740916913440279839703840865087113991326381175586611840523259032781387347707623034787159007367873347189112719824379561740050133807458608404930395469172800756265183450135566891350315156212299765809092509189222077484293120274829023633441382949102669850304592064354647411068261317644356557681525981461234264155602490572593048264461732639648397980295366809305012344652618909250364734015914342991256648642625720560184373501139644221066795123208544457163780527922272871314975796905393303925416093972255070474820421766800836528127630172417383847233837377381321794098099007244253928759030150297781595761560491277963960380918553780072559325405327583083222551100069014517509842728937995839439439369903478335724873649243785223171517345334175206817123648676629605738415911490622251304127337431026202356107223314953538891918294952892043735060671481430711075828535462262425569646090343725944914896636488233950039618335486343961128405774838895850282954247491373554116592215329327897968169264635070092642643496898565254785474416708567575972336221899088159623011633885624127933310457744234473621787658134620863363702262278201469879255793192184955497312154526184716720315959159819348966259505444331074719186070183879390110842326715895164477012395248085064216525775453932629372399983665304964713959978750818111364939467297496126425583380571288076713184995780129459582956030638508397158679199362973433393693555376165034510961056261382273999441931383155239829009270436283003476041656824094199310775724362349903762199555866105139942908618423296389742178367671570907920554652225408834205860281391220093841069776440921555303953188779882922541402023553783514574682984758235981335149370494157043309735974493457510208340300802458106696203340255977970894404607193365420750647794308179817983991358723621510690975105606180596107597089082642185107063865216996111693539924760676993226035335263224401231287534632098182757363258518158849338017135577627491978370508296222192357813268710935655971313831907910555515623152381152133808021989144841329251649613694586741015640736304480409851365418046130190441278651128421146397233957031065278917116598358501566006142425299110886554001651722698752814734809092591054724125764468192950146989735949422671184684205973767376579285732374610782005741553103739335521940768113250241347068289533342111209894953374418753310059487493319837556704248000055211604840059831334923092622815582259435111941720359791093947478053643962909855227134753345326605322528688291628269666323796135974192448686098079253652625512439897305433879438806671521681615859345338808003817572108832282560075032185586392169580871706135784901445483809547783325697234121716783736546422835896525633773066908573530504931523178558983988403185243901291825586251330685916200124494483368932693742640493812080246835737493061535901289094856172466777706192620688989217969483833107800976965476440230363939486465636782470696383327631377571439027219041649990584399007056263543739489503427527083127075646657519860844640004676611052083024960047928865562166966142791475921624207683760131900359375441196711389388164280513708020698177783745470349238699993524011167562122035458839901738366212603071613035448339832376610026018625112025026156867318281041225326578611060262813609766109291107045992254654705828764425288216520689705478737950536614311115933815293957663806162534474744340675855101538506566003657096636368004391358714856636367554981107503822810051504647426786666550562602641359998788374404181868548338389714555805905402603697966747753804816285544157655270615419577063500767213528729580630609723557492505828854583145160258817435423739658024382273683056203355880747976700986549618832924891395239691521703673768414811998798630534861722378444730056334353453655484232027285676378578053035569645479598259391618682007284854285791459295126733916291595970338148118820819308473932649383133334201319838589245987571089399084587032415814478718619094944792186587711549089827964265312016815296797653441054556995420050824169486491785547640139949136850245388001447318918251583609869213534447418347120769014909044544874248657729967083585381822296283739912995562956724675985136130293598503825088639730632097291850158909329354831307446482004859129424234824751066862285476826458480681997028826365661416225809538496831543442213374887667971916082539626302966638123239159616075310527705573172698797425121971183847310400323856250358800206620728828133502130115713437116041619632394989170484919117770011193016539159544584955691324033125914254682812092827245678560545458250736739718673179891656054019846956801831905814127431773364042946204020309770449542231571073160388817652823953444954446083909248954994587966111580295265479801180117048799454156280303093189929870212297225508486319453676427730022222840165250465202953978835863815340726465566521466214556652093777239828363985140087491386054534482809649223471891407663458658995623252373123282213877652656176846957685247807956775969329681618608282609913374318104827187798645373563523430998665718662545407973744600828016378845399740348195199674547673714937141067611073505123287519712403936949606714508582407315382689537792762844424807878178400375057971674646592015848987324820507461254066029428946712097693941010348148760633363972795887042529597643450122939695140551219586403979474282258084035203870288520271376634462705882338001652268499591481555872934189604721962047213835918581828408380536218578397645476578228991865844217331149416531420639265281187911470666827862690677951622583938749540949701897960226299410573691568150766858730245156261492585069333889309684534731119534724196751448056102439524312815452749119933267689473153859276343032044356281278284522777054777069510516728425331705661392522367266722397119993904952697639102126293549115325997627337521332152870542921795824798870942400260283315515198387501033931365895580167752112048156807684932185651329295219342984749943755024088143451664113588671379945632060080390088470871101685356791143296076909525455275556926144214878952528787648649369653418329084921196402902922179128345969475565845396542777354526778932398450822605538193319557406076725385354802211941877023211804570605793243818141239223795687966216294286066015237996032252600235017816506887131512910261964536074506438233585387084156365085530687400064420423589950029490062989633183549215288767786509375561748247729859136209281605484693637659983918529555262553871720584927345415058208706638767601771891170506256071850939897659362376636809060023495064956366750822530543118693128895935777202881449148596948026648600456475856886667286453778562916531278422004891260804635757482975384433173549353637694007709578568359698076054022816242722952167082051188093443185040890278791345026651097612588457165370490321102471987895690164435103864507150825163571356733366203355912845997662741147594881243742409607869655658426247479552922190236214588255669055425103973805707174603384759983047876169976925814180479133724312912651529759800383075989336664738135735220094348520007615165749878987625914450573914992720832756571209018194987232317488414049653508825028180248547788831189412842840210899267379562740658153607413264867578512107312117917451594950411565983890960554986605432361327929767373131834460990948293222094004686732098352205746800023029914052189307860890838992165249192855472891793723065730765530192012841639968162155707677829953595538367998369660812012652564490891848321173219242796317592435544017360451595842575839428711581518754892096761553601039174330086984255619883507157932994240431812220599530149265083716205318189249398364290837737928258653635506671557438287347789087169197816935032165411095047307065290993594626308479994853646162144603791632110628291653058167806132434932243941218136628551244929364109891327407683029898416405634072714003293318890332539685845602517035707129186907733882696313024877100571515094173321059016720079797918171604712638604158869866069605877178904105826896490806368909970091933885764980466823103648696642800480063113712137452208908600709737564451708294525836697541280343273197658838263136398372126839145796621174045167054952503179508616390018418234440029228349467819289910467475558850463681744685593349615287616993409602192022739566786913632179896216755917170646784403348223009499059979568723406315934619737139610579033133863416393024872079093625226099455818351456586523752828439081570696894782366734538323544350672168232768603533502462727778480710195395662824475606003359266962476085487179208915643117626891254874671892002732203755382736167607900586363431080250457770025256539533309733409717393678219392610989841442302564439236455848971614503820272348186452818288245431789211936928977341497218859483406544891717293556659294539271112483340218854581925671411152098738416639071558818025513723146194805408719066063979308514145842617495557387642796406739688368772541723690871421520807616512274388853074663636354202905757377106596741989731456403432731638949051831116090682032905658616033408003038143411255771601801128381072422795343882808152304779376830371611585455107326753976043181878960524542468039881886802296696132264124748850135820943695109040247945394293206701565533783631003139344222020667917772817927219254664459849638841055895925993946829316138043662677848823041875163966032186584657512499379729009338911960556786041464702689407279280791216917293473561335560111076269209093200327205308230588675318294527507118105216367066208943674607940236769851551984530932437132388528124655443997227346164314233098470480869133998627415485142559750994173086668984914319806404324629463789912720444152259372945341959826232138119348661972835732617345244374439309924201860079465639825464307866480487520471373713817686416740684361819744712459595882429251886436831112852389471940309054028004653794412872455059047691301292372208391010234704043758280120298474974652532489129084504314719092936851747421247446137844536526765217746836501273700235175401960290499120191926729251486364208224860179609912428235857884934267478394289018516577278336416166511483979572842522489594755547500122457310350305940243759437951827320892811096770748719045775919782846976066162236449544643608418428140321363488786728833815202412031176201001587390736370816834269655437597215442248339927995137890592917266997157671752488682580268448053046545109685708157234322062977325774829630935263006453185671107850483627939687204624565927369170594511859889363117885693839784233560378581793351034723476275676931429977827519761620401193538971193741535822432249507549150189407750198060326179089287841872156622537299850089232197547104085123600482405247684933837914034166502107961548182622502132508169737661926354338526725913408835914712093593488545733851110822284048182998399623147734623846453295359455077467791516747193418227989913562620818188105307741966765831749271750422468579305052758205592165123795036166302345173544063956251011147747895542274659089350926902957972610512432414032134374628758076097615509816765266308416370715755452255283173735384811985595402923300964900331445187228340612667271830359877960567159504621159647472904990412158935792138325075062876715287167938068377467981540554824386274267915965868166543807686661921702023429620923807570970541123434759062200238716900640164844440356701515694864407601864828519084020599519013559796259950287144885588799029691001445457733961790566609876840559939609291746067577436267638882372932021329961049681637952596961998778232979390794288281471630272369496757393303328761692303847125992387881491836028370793210162472949964721960193587194964895993450223653689829269799914212868278697415966034572599205661694950184519896460102639715144532903082520529494203258992856801669814860925921164233514523781214792970806135106945372287748821872944815252510597837739030160457195692363465286670420023398954386557301219336249073298923190783379072377670103354715310963386081817012197927996266441491711650423239987322463245847694316240631285866945561240959112464719305303158237561889173936209920963142903034923970005255406257601840906839849959167066565694170322285381742487123573819378703083750793225258338411141627425719591340399867502649083719184394442794975898783433844991115896504289922214254737674753407838221334273872373886289836566921214017800239696797247775848516976927073952720616654450061461619516686289377815911176207540417626833057315133176318757285783882927307362314760969895099767059020467296981043316647026347174099014236086719179576965766243719213766786896139548256066423140234522232323521642798325324729386738300688672334908576846019757960414722737533344624605362113403989188517365434047750152180264989596436460239915199097823568729758011607138490316823754271740089436516324730395560267972835864985845996894628846383694734363291630865372287657020665330724328933104826334140342527666337317194432239008786551562112719584214072204060976426278126325300729570780723854662487632107524908379817439081410465748688875914721522687505649199665794222861984271878724310962356674454930160329425960671222537195106885497978143134158878269354481387788435747956195371460289086231637538337992922475403109230768365657016558417124905573142329921015750357311061901705414482305652943815923647970291951180301491008827739553885884578600924220250262311751807703815248775547229083906360419904907790991876877129146038740983339305910751160149357349874214503638234989280614304769336198862295298571400642940090855238634055342768336137234244040636674882933215048439379977881097971332031877634133929711460723872775785306203143390893994303106751701417596215886807256198849359528319716649616246639878656971954504688267286275430538602533467720445748605522376882204278348591734772260990635891208957100748483130863428948658269589643099016507731141805607460410126791023711001331551899062647466856701135027491721314714077148403619116652781794754494536810665274210912119383079795076032028914112456767247882919552349811652966038532038172419056704389247713275745623095457344929288558421600904300288280650701098288899170131413709230736768648596368377719725542410449148947784022044242187590044601775887324188041398207435058269826846785311815865177336314792499421259078551041596064918902391262144932575075411917088436928164488144848567712079326781567975352291614903202384940955388026919552687968901529043944832397728541049836988027640238109379683806214115404881836643487707536592115491713823497055242963473370134303940588123334812965499730465067164717027494523721925654829747451835259073438448090338218293119570364747860997446667599114711701445681575036945638444284715269107382964381231566694707846099964498843593268676681242708696258145709435764106003793634516553057567624942363864710901403110007607882136951540671296982887130110594363255745698235348019798248699977312667800536661149298114595149154359096937651149561351422333436448319355516759849533375427096721327775481532521851656368181915782377387300940606662245631068818540494554610597816062012916447067541436708714031730739154871042367556932145597324525798638838013415566756494452556016202859065027342261373505418119461247769660949077983731884014956765263251115617055716701683088564466685662770837861829576930594212101053640470301561957264479146521962897863628120974759750172379858669624179002729817373061390721952628779248432302602535209969280943043967483233840685938048933186098616650776253343659941718571745455571541737597468613601087851163741667589561612096043050163528367343244564597580561258688562117869522354886718358503536688707038471870319909385584187047343648794919059455887444301425643680598112451872805742674409894408045617567774820198020574848078423774187842474946694704575090501962010119266141053496281734495065478763059664390313905994658336393594609846243228616361731262599244938659858605885513993164071708284060256881653691741689961069295597077239111080836475190165339965637295552639975719704869129817434412701252843659256620506190947867668060399508017040103295312229136541664115892918799656830367039817901851314605613363847240127572927223492356443268509296511585841259212625585207835856187825448017490039760857211150388017284826532728426029498564687373167933830530028936927859284968490813893504176464047620157567725488783390203978546784251771547115082995240154512145243761396126539467119248947234000828229467372298717063283583768309040154923361975090029709785413256120239808057178261693106682683441850778458542620779444697439734838066986437425141769460506194358059600662665575400821869119350187255388153599045164451790637838884155808822156710627340400899519791809651266709567270778169033337428452453149696799408426168617179480587548749458634883397613540447388149220960744456554899761979576312250573166890759254676390510956341564870426013337213104067089910382423880332309546928722885394104013814088113257244454512337315059932388952549221450431493709691471781862968916932347885136682872941399670696112155102555699793239498920852256354272605396969834097935303056725583436872901633442371653558522603101188040303400890114509454637395835660118541228788335524115533375865052621543730961103654163737910392889853577099802263065622776371155653888003318411611203474066005650893148744032252861624166177924685142460363927771095935098408073996038440068780486534900693396603499098212494926261141516570175347545132528035627810308371321649503326973491429939218142852422002394141107965228217984887365961498860159510977212816072432762696018549473159246871970797566120601165462251331811791466607701965186350622431620195151006124305927986742606870985882789549338559729891443004921377430435592963639312957241262103396446557209441505479964618694146098023290688331247219652177479559614372592569492122147877720432735312259428332420757371528624873754245618069751822598777945876869668336358606858725487456106596110368455184604494970700033238313335108071567838385866505176914882254214394316901186573047844741294028549777997067970755757547482559025064474047480845583911697862776044194084263057631381309627514336470603330359379309526768216644351500008333031701233644463682906832335950604012793097520216473828893669480156658984366652861462176041705291993051917614083849977991532396037141397497519209254751974663475871448142281277180529804801429821649858245998165735620012276727152725970628988731408179627031229403710199320961020280693063831759192738810379824341964005054271575434934915284818922063019373285964875325139737296595519172759849062463855880958127704610754528018610749313652565800656756381086666571406323295421826866183192887387560077092237964453023813643447430630869202569943352934282449140896238779850654658299926037515007604281225100467228253826256980520397277159947056956733541459771327772843939604544641337803900067942540685074878081081143038099022512489133166583001912018121520002209083790535540332823319964976944972636040838456244537194903443851883451636403341069101840520494162505389562526742117694183312172373416674772714732272759844184011265374788372584202486230160184196026822201848540480746949186004815612117980207170782742568801271287645401735011364363228042177883220001818899234927859621419878620196618867818378634073974968936534929760126500327473658265201022110192562631372450924473948165032696484121994655818543296469622923244791779681470865832060232402109546495779483184590519149104390813608456674127286824864095842141188301840835707642862027935551504278549430352765583991062166918796965096185271889941117910103267491087036378864170101975930611623249461887150357778639790893317754083181038526456016910782692670820720925281245355229697780715660354230609619513606270156285595735997615103543012742973304038103958681779576553577068344894726019408985574614955597164596200922659249300121320823157318435070416433501768666782268436860389929449348757886531626696993288854529301792682471247913164974515345637979393098479693282081360596525807277537912077365673054136689652932548168536165927966660595465029547015063487712750213910617083403048719971610628697514894479328746254511872667389807919765092348112283300816038440051330445712818567155989125178372614936779861256844342576061680894792285681613605824340218456753723834758533365246396102953114652646090959158783134969029440723665476836648876633690660247573666975754989427074856873621165950873397268874701981665166700128123530353770612149407422421765631993335256148702942223791953854125747776822195681009059958253046413880543580089352236613122759476031161944588233616874389786385704008265334355736941729117171658719640370776484238495729032740325907899639213280250184540318723907314249457701906686144398483219306357448392544121853876217224012572972684454226565382882858346723674636578521266129737148329132099513658142497107475026578524626125279500511342586870777343888658983841848406641029771465369488228988971470508915942919019927108459210202828918588736513353400317056457348373501823395826821408175899067604186819774215407175076016670670395889730957481144105572445326409732374020977191425920576080025338417983063961273595169744976775064003578134289130152183489406484819034232712790307133346419519940251819503874269191392128132067360905066457964099472106504153507280152915352620921273021665210753083160421484888620859960236498575288384396127367955385208740772300660901226428149110903919143204748372084058192457140100824661711557345286584904216681978308004031330809402904114680333594194620345864850810938387792045515247846167068800219588960794221786511907041006025675374349125608012497854410258167216026312773918444065125306878555485895841114615668106872833857477386796665682124103763739917860834781385708730503716862483810760641168999376129235078345721480336417482459778833312189188353924184555569245337926913565497490716829676168273792281682948750621436531797577108912324961201614923009587223483798294344052790716713140600852889364374039685889942294709335162131521237549092254033308595887266673055470851946496424533890830377881531036620921755973458918599574828084890691354812396446291058767057937206267588105175750268166535868245479783685104541513435109776749162690364221487568864442651894617289203655793401370771053001155862913654103114312403017612013002700365737487419475132202155202898089318761238529987649003408807908726786518430802340244770216875952998855203248240944507131837548403792978747520024023686075907074681350722634792856327159751664531153643020329422837291563285663545379638199094723897295946331163527623555257112100916579569687999313661966663319616978752718015581269157094330907533165264140731745488843514244518029211046160305055174554668734993456487598474204202007902223958829887825183940113805716757798154413482345425333929127788524415539097329226406240918219323702049214904011612427914357329297545779937398543016720872362994255574439529140699904834006519348192299347202089180003681842419269496995206778671880610688209873200231029539698611296789070675034937974811247134739062520213522811101526343617901545092396248466430949616783194991899210331092470400469755700116785668214172167161277824174742779311779680789156817730420595840319534646039763534927004513193520261248452319956509563842619798204796086539371850668955048684657165221892703016498987248560721217864523814414025242013904381140831227569768731700238695045201371421588633994553679572428886042645457382288660831801509653682609984488463543730571139457135863423894439906611546777102701334791977681568776553956618001416256057827286846372590721671786204975799410382002325451328314612148059387158132961859033122528805481940929231559119416677324720494972370176784765399375096028949725335546065998862653933285730220091584400140293106521551406364825382180496531662675222152592837282620850511720706104994374740741903964173798165684004823843174970937396281968443524668885127650153513921249101835806653568344975183329880995004034469823095274567994360316466257017081878273437696723432155907387037643738408503446291837386163717060707480758447936801110986602172444822140915970817751508079997293828382679800311912543795755920606596299133201809697010813881106010604755849012518024221106254443423236069718383981234419285215433685267115274273639343798113547358076152802404899347366679107930947867801919926269936911755831095999491410009019015724395755930877726023927550696683978302708597352123757014248750854846022625259381838587657862028910250673734779045701098267531999498082245000968961061159754301986684380264035712320407870634059348827591472271663932247753372238401321513461235344524785424987999140920009122046024277476514260043517543718448493516888028762538418755739178920803890657566708167044070201347527770170513179303981044844794859862826427574809127742232394745163164554343032944282482480534038924731140604172131564740962869280480797082106125172616883271193696336305894091650036381025104404185020137961524312870408439717570553424221127036726468375470727250688530533204520902529516328457627813129171834501151417738327458373960561504953688225457284895126435195618613195888594975650109310541178529269290732644613376684109491465152582404374889606149133635385781028589389097831020087850227906452618682002455192347856566302252461615890453457370625132950772105547766104303120421949044031270049167994719526011265662555482467970509437745508288971772571770910593417643936047207123045540464383583290553198944970113721497176576752572735919322125920801944901868977987995805557033205655893507222387841619522109312548590761656241072762444267324553383572765266843715621185240183521622630574920844549437652801855528741734512100505696026475461177436384936403795904390124929440771001239621602546553702361112117900213007547325343104359596584334578830462494619725600923842677079791949102353514901749283373111529875516646542774373688307648535419784034258817824096923632292145526594303382124209242450569368278558974603986540182183382451653007627325618670181253799406262645180204700502241992707176832825961243027147463401127812585012464165295853593077244330967024653994036843067178763676345020952924806678372675156447360785305899825528008558220833565891438143185460681292090063039954928294380407110902616935316226826407483776190158814454328721057889029807138448666371039515797827310945801050522049038236865414794551854112493175128561818639696370082727152500949715349539040946390662910584494329502633714947196246446640948617580463062514054839885111858656978328470407773178064392633503277306111601032601171995460429260296482558936688989554345713049968016694269192924298012779834991636874990311158686719148206068029811330506815576732280938535786235082275349826640140464671821299483013925894880225455578100719226756013872958357985779863813195320448454870204684259408332043544082069395761324106261114443870603462148399323760568764940828811023194191251634074568202767719772387384362554492429034451036515925716744182938501394856255607030777914821215060029052311130552279594171018494383125824772367334346302390638969886561763457468871948691483550171660622968702420169252300511029910600771814196841716828548102874403561159643040074596847607072957329712846122602228906015472539374553661574566441647360052342178978573979367354217956788558241300398778677260975525485347619809777236720798133545551248944879948650630669688509254516414218739055709488212291739287539057736070940451541475378002530753623831304151790499110237945888102314470644409116372152710676958399105893956561307119155225276716807040485772406275861387255468412052733325689867049845266795418794763326882391300521179719979223377358135504431126827629871988660362228328501803801508517490000691338437470589707381452407668691093012968444724614780557613921668921926899615476480635147187357699329579727368594889995438373582998138996759123893322752927405218146038686860868905711862344767068246911057092648921907572998388589210462830574170596896442671487887850975699345724911202873190727656230128320595728760544830835864242408963201619753215381144692939090468043366546517154136969478096802280045481599238799052093428688691761572582263953136381328090972970720039721548013218626437482007870037832521445174576019197573622049924757170627035650827743041994146431537371142285286188741724303237520619625563195365498699100556863917489798598172554801119170246413756704537089038950130647967882461148779377994763196239238031036489008835325277958421021101345309109772189453080858532490296349968103444597591373218193206708960370473238986375078594229776922535220083620886385801318503664712786697187072549432436618709428509770876419233914202957828090454963189944119140283530449639320837010760069904459558876299521420173206146798893818469223497043852303642150137943109148768945725833146104066891261369778506022889486796081969162742524209554207526886655084520301599693673501009572595576721728338332547169066987648511883225964542214290303341289970558607512851837149529475745555578486576590136963330586833357483612421165226126616169013810158618049812667617087104029340205245123514397305420342571682820301839618277266812586730760830623237468146016340312313813382997183934687544576722905574079885963107600393877073714842914360900258841328255409943738996091538570722076912076262722670513201912698839772038733955957630356698563947507371132121003147403497912927633980972644970440276321629511354250105551044864586305096697034624820036978763736989122036159041080436320643444736616984340464444697209538819141219892354522446424226850249426630349707378420466553993938894528111559647514764800745507021652473761026912933359142601147302040566091397248252925550767416823319877134436645434588344586450171035113535027572271121052857799725086577425391434998020444962722498024461098729955754944648771337279230951856191875202496830910634487299143979678035250635128350788289405703033516892485122853509779870525719207687528034541154033330452694565526161943380873897951101756132728844258328702893301666069055886140968275802570709713931555718570561644121772731106877797159191747411224255438237285307768536650255290756027862303849156662552943129008555693869777379593307440590135803039498670831587557335964005531606783750623912499434010330294927050211714197817625763920739894158202342123553923340488593426805006380224870414066675673826624289594954691283586531589293501716322047201532127174046677317179876473801397433043023199016244523887451036918518309901167107218786611461020910713626204591406953412377587054322085544639450419313759083521505364779766638292601206389354705477285446698870982019728564377557224231957925760758345876569554265818301551783719136348193023876556414590672611027783816439330587720537473929219055037181850854704202328418146836648580789990028914856930682170552393041704118480460866767902704000687597291046111204400019294062846159511843431878240321851580102727722124909610584691458869943396129036223132585290698085233476596921520376615009281477201719308644338986170095833575581793890981492560356442453705844103379643159124856008982228711848802703487329653114813801774875361893242747749066610203083496948879210812452659726489190809170066367095944383844800494923325655588025879157732376190515645612894998135287903324511914859600306364169610682273033504593996006632959789393396478589387652401916086328044289847052293299037900494844913018537027149746229370599833765275610980843942821124089809128727291232269033383736258200749971294526803355967334067846871445374340089749427834454898087850846756895945198741892546437365522562264961645672945932342145095305548940534851198855303667432580596967366777260413043383741144961633870163447985105463404943038521292865263954910020536211947845496261315614884004610969530648464289586136560989394712726717851813830940866333789574324978629217683199138313085473830099298375189332819187096927698676450358922762210754028946996555121467797637181343519803629573675369843085298982147884519477442376869119139564208722936849947007425863343956065805110702228013859387595915240584190437053152338803598216097694129287180812306025321272035290730603502964118232191034563740800707241322072583411519051703513505163271973516310415690908520473863061903873539424171196977322803379458889225732720708848806138703131932721987127598432290125483655929880457432203917146734885250486385446988979914291843380250323585679976999030483584435630536550621523250123674722375118283026438661193352620093595859582539791977862556564650707191186489353531405742970701702312150355319344810211640415619306780284925281851158005910912477083162523738967741769835950513867018707612887856779346022439673435148484962072697272532764834556276707981570439727901139520533285646524829822735128722645484700004618858263175108678380857403625822074231631260980005707628517303419036209333283037884269205192366695992740993295296630978031433462303996352082101248312444538531313810451739531773940537688938549166538242457784897803492035479772040950978931937931277800164581986442582648893648346781516972482232459064279635460499186092309224321105608218854038110557728439966012104874828069201670301155894976472252975690298875857416268775505963318087491118612780068415455263920216733808689010592597078332800433917912882434381514779289309782485553582438023840286240268629170504404474031340313150506735927533837089455218475814996680594435982705033330825789405177829549324038500688775019094169391100495131093361811059237131168462227359316996458825961744513775627363539443477465912882013090637956231065265897410991905086829295992309636590338915808379460016535567675031997177953955470369939170170012143449241197856818779917175940756935104595277305711739888298240034868692010788333414588052616797560015685026809676364419819408785907360549029934194674014076534867445222513211270195140978354492284077600022437541442044034802966728921197164639491312267057541413096986981467864274688818864071170133747980052383856191521783047472864496533179351097901875304338426889668583021291197049022345985454915848033318506668389885518285877516235404374787709917199456205213847313324348862069953472493137955578994787369414473818151750126769483813387881009631416024702066049652049764001606254571869986041144949112845336737367652579765113515466614789493518686010707790482820699917307114320015881769225542247884925816455873319807368246262971083548815236696028973709723835088555016643005289291908534300953336654499400294120773489374915577420018745792459573887516864212280927314589107969179177453398904870040426130961008627330574891564469475381360231458487584928153073889675184035469253078768339936780304985425447996845226802106289452115322384806145200632311272446776664336128669057182761756528663909815288778191459635194082597126167794731472448554638953861116449159266954015018366641576896254587090874722097657933727660532413050038048359503218821047301142224655829050370242007598263119517141138082802371811626220799211789987722277343130681959302002818045758021041902015015535363933519836828200010148505290045458593745070610687431385566824732767830293554058259601312099549101751466500993554178708144362975469695392636308706549867862455690954256023518898603847373615031574214657500045086856438485006908551828840975978783934167550494387701701343917329064828175548040151046654339665970673697294006935528230746610863147509241059408210771246803980504971326697130836444954338084459560161765736482004541059637078714202640095728869341764290413881173480549006270215234725490959712143930728563774022667323937155272196046871995782866171917376389978752491300723541419467366731734959542571537193362021008579340220892799759861372620144212575666221269229439002659386269038595900369405318909736030663085218296355604375812739522115692046389071905437240685716678781966487972659477640782634822550281880013436618663633330578349113473018427575834841552545447205396267957763169257594434609427614390420752693325387827508174417949891736756322373582455943572478055769120511770702058803359193575529422071189456427881127043760035338471612456641511896630714076920273063757564747209762190214962314652499876050234497977403750269553864699837646237389391110461635708520858363963137253326016685025000579583557907370396771432963266205212568933172349346365162740446842805627219467373473063378406707099157172849070691978468521599439109897767421316669773969704151578808974367489669785766720876018948318253376461960182984850923604042922771463073177875156549645584614846301796213664651168327311509876432242522532989713184921320151165229087356204183551584819638542199729406547314536294797340221639010725261363152339602069412705907543536884754662037536992176153361837105113269680150520857827584234437173278316739359287500176511880365413738122776994256280375044479350251531949332047745207162081920731074126135727870603438621243949974484255349581708775629648572249381468901951341978863332811317928495487948633365680020322310360958194913661196156750852346112890998658138121668749187063637515200769775427907343702197212644326619449288047828404016387940719246000487126272467665618733340127247432880818844965579624711149883408852254163279854635927433367708391380752554311226559435140163994179347008898292678789878711630229690373043361353615569834764326239650299180231694362736403917655339419302679592610446352598498737616767683144187964254107387196578030217364760761647133173172263955869473819911383237148023403101870972760986258967541099860222051529708476445029483368303360115386612850934376793521924077968530310970385147279804528150770424813886242775644764133933979370533981231301014294470311168546874845291747596049728846041512316905449734647450191612580728234519401410815233742954659026061816770616130181883979955144226462273857336346613227280060214533140259658391039681579316580497336986554598267451247655907372179397682701871687607564863104147755167580678233790854132708975637159184617756759872279958093095999942446650667475514166938493226438764195717107655909282294450303719110763031809055889536926082497989121317658792529691808917629111965649827067801201405234800636523652912930291760969421579790182128445202741683922288490158403693099539572217064355878410782601610104811551088566158848166636535443610047047642888810254151802293327568976301947946131588551355903751003795948676493570241987143842637344484453537443316808778121304856586525354305965812585559422993957923058791181008678079673920755096359922727468877167824287741696315571979798345026700687016791460188837529179638229238129374072107454682822132946743841282469041958759159548701985528018523043922948437033006990962757983918760871658639533367237109427849474801611495162952227999537248770778239297253780711026428326408175070827162911644581174379165607744699683953136341841550161287698014464991525363000438412424514186605263182359810947211876931407652180398354424515820562002519111631400167784843858334190741411431890921612329415248056767003597651277526663325867293668457693246471999628301926661632729706534033992111723912255130389564824241044569526180755277816961863576517670435194843745747987134580067320314650967624908689583761893017589287200865777286622769519279835667771419924560137019708493669327667455531356076885412487609168912158351167155863476716219312325969066773107738768260262317297853137087354684243114103163032444758323423194224656170170519153742557137860871543437343453295690266793096926868803717399125724219759756862004490803204326166157873873572000789553748042167858210689907818762236573817085884729669476787537162670557230374731466185681193558071335918571887726934318860804747935729208987393322429049309199863767640468208466511308119387018744236097703967433980888937414307629824159494143922235943391097723773095805829995323073367410831349574071043723884290006742476784104155117386433346531192190259188675146701001900944705149933703027646916940713229925108028457083683273851779248912165370823592853114920304741754159148375052619758073090771238352361418589233603336248403924103823290457081268978724923800504344732925130796053330723502847828441333134447412077447570519580011079506059720434656566872485551580488387010122674770008491346531714233309447645519966446453512784295370948476722281727904599183430054770427802721790211177565407700202933014700179127347292462397240805522095291504965160842079489333859570596524542350552168610757219052777801605800789827174368714167903555513657790530487925527377269947958912870066868724887171404908476522961548089244451469637053429850022533967509443143369757938123652174528817080013385445685003574466316362510943790790640659503349776957005359587067965950466605396709169133481638833402774521791422104310015013094536270924394271631948991755328059895564463521150776400265479446778836038904333599616398045960156628082306918743660197496841257377693119609074584341095763643097931309392640367610158959318277851852152648281398965585242015063877832070166345947383508391961207962700950575248122801835071338622294521526748923966154568665375595449547437657444523319998463096857048811182754384051137434730527778287600672542535818310985628437955379127281624913401243031839495540758198644214370451916543960308165354784822813344122696316665815312817956033288623236697727003211146309063127618263747053338030408137157211188125624360533355433725571614812909596478134388067075928076463865830284555037924243312636174112073763495688108249324941460854081907260558906609647507228012811459332085731945424018841053006542528750441652981512503717078411364641162590117622610316172330294629200620378405996579361452844630256125359474901154915449839701483586005294644821290526363866270428104650960271210005917764409494960888430798844910422907188051568100227515232653918396623844620768769966052897295247629504959562741914345624073864250780200585440437281830808739881398984081831163589969563749045217055579334981904611640579702054288988661598377872706246635431761577149721030828144926470457783515412192593242616245899319219311313721910243799688386059389433598721423503545635501510084455753371576243382464526700750951504352320626669604961625183970880368864782596093066419261167074028720526024571165913188964037148678465586803363856937480604453906360513586522443612961344970396545822047814669161394369657934028085048499048173364800448570734249814201098425708793654609428323907042193507642293942110586747611035707134807901819364257681249732234686984147287572482620822376552417525747051886463530057802126114517164651638628690874047133604316327690553488935348336838169928643614445051998564092882678973930523411558420349336022587470468753470994604626381833395254841760997656053363345438452569398799665775601312296763932349379790966067388666523219850791137477273028680997947234476380275854974554985859995563532350845618856475067367050374848975451109958900971450194796998592016479444345398554680862832722525228366808440188905593364517771526863797573600375090402931153767092575333356631623369372350205968146172145775094658944455945789680171544779521786347562919393383689675761108657132532121984102648096875783647969107057954095453272155039532064236642136972304964937538655147877674563050440210292127491772764462842302469802035346866026550116454540580392373214665523467880992645752242582637635645212991259670027706279184805105156933466663680231153406328325569221628616930378460523446033298243340729767173997849614454616927669737952337530018699048798365070081989022101830172745026070537703684181371995693276308877918237441132521858900802559794486532784267887123038676560793348415053488789525624803766523820527598816648205854780292053454971598282036475211208061117199796871297843089933222717354729811295945248688275767099343554012083187872638645209021802015680187549426039506197733709924426182090700858348093423657449183561047052419654239212413403309797022640672516653140825840435594256001154250876415906654293612784410685528332205455723900470145751555878165691153582694791025285224944355818226181033899328306820929950099222929567967901153465103748410463346984114081735162980175508130933840251306653684633287743430187518663672168642585130690464441241075133049395440724088988716759511663237917970836136733845739949012295978201969576150248230631233015085628803656858001170449877182045428696364688900485417744048275183179844287248128536766334154645888749407176712346081972900672336734834260406890529343026430004920935276598366886101072679058615224908969263749147220006519547276822613747146920863342196979650531944743420783166426830691806711747247011384008669942781134180603186348220455510242666621066898597474374104385690506062842002311181936645826377450996876845063259150480333971758171133591797993222761333485159374501171813035953648221041146011062884421302847065517757756422716611029389680653190378037211991810183326678147956733082460666978222234596154780220159383234795661040896620118052768044346058176537784262187631746124694578274069109708891551948802080240429796180136545313803076745415087470692958968139380330197793608599732361877150904223465985724322307837731131946226224288200025814017454693035337646040818121203469814621164375358942252657389900694365555967496894263655490637939501559213809732099729158230421854445484589413557077809864482936304391273943931074732630462431011889798195478641669292674579414280754207956295133108845577311328896378239586412490408293567832098653061952806185450603214014798235407913451345482707905778180565251428476318530741481153848270346835712607627445372255001172367518703559153850114408743654555748240649246613048167564782417922158124800217369623155749621868459811001341262980337610032423627357078629700807041580125785027077948975867134086151957830357130205346815725277665261372189004052103891777720132655777177388622334783556757728457579828725779270737602408156083783884009863413210761098574094760956015079442930535882477368770033393795350332388321540557354737457318582096380713843936025816868830522851419472235340534773240371226318898511101563534894761375010407885197157590598191017769767114506611571319747323635159259141679490248082976104959625860621601992821160004379569290975322547697332478922652622141176384288821422634854534990380228353961714786500821460601898105782352674273158258854678054708151486073043945555672215844799936519571118420791353657693157302963780814049399331064140245529081069054874265360464025101597019615006593575165710115985794605359817906857047642909745895416404477197611153360915692765605285709686337617960479720914499276726193774379608755888693981064954397483848585651989018265269300300594062175781268600613221024266054658647442370619663286567750150360102715609263039872612915209190675453125389675725179787848961326662940473612720415717771162569043906180035421196024013046907154825132962822482527329073226987201599566970697415743304230166167104880158401276895678535261603375712179594022624041195360045443859442769180136857538903973228170557509524739325094859815212101270894304707784008340571888206133718664403395521386426794883594322614839505751338086980569122296531233428449751347795819758031468878429232025044528423669072988935137632282228639158322330240978039430741770253494156912340980034258801539562673733570895456271856487254922811466317242493806916429587197458908935716345781759920697121173824893032618596228781150656820008262209708844999731488239242503270534215536378128315945168042998533008421767565097038160336602063812080992805855602786161848727706277506576445195251014331227135236084918697889050676045701814934089920290231684041988386551511416767039553165673770126887352735377476597056785694946530091039492706827185606638918270557797194479907253095139086349734546898149463099404205683641865966016261626545880417156659789748586518583690832355589673959973951923877161561195954790163952323271520568189372593717749879863729750313456085417946760607266359484298889863964128051418203655956034271420390108926795537840740561197718804990203064950747521719938118010972218843665802941119862724399872712383074980137135368870094150468477169621755701933751331419922693018647262350792899318007089624759408543400448936688125330376861209747318931619487612682319475735347224328025741308659620445125460934367605277441545585711862159040497504220781029108274491953013766673193817037916438456204510813309454076439748781480930867049804350399356616130613579317764578175781114548178074274530104009058965836585763718969790369917036979470726663031247419067178667755917191944404623652648546051677097151196099856451046144132410273647055080135173269866710876196509047322069318758806993714542366877006018603485111542754601964648199355891673933747210714176731732539399473416545082801278346475583590105572635756498603042772845911673520745319265322994527986239542980926944633577753284744563008316323432462701281526803947629437238332434476415874965947566472170759439412036774164292187494866905732479810178698340852451281577180837514127690510036125057719977672970286941744294648835469703210454808525894794449027035671890895683522941911563509736651665409191023513065915509980541105084057525499743107792057443442463881291839452229930717331323750866296069610582172881636571265592538334042227203198118560809207833382291955189967693677869313560992262402018231599793331193731022023508103370522066346788669695471527149226422297007381909163596344865676094972320066787071489712304989157572029021409230602730879546225281483414303527103360629298306616165967208867144932004853541367642923248105619771980089340416913670998617904052950204052453998358668478160408387570069214446115506562952973693486565793725546576371340635962165783305662016633362899860137344752319628790646785660858929743844733819357250392524232470432952916643758333643144681815031069349772823015156358531995533603271227627946675800298684179248237933957228842497225392303724412057720466307108687161252202026909856229973093555119298000511497891591595668966088729874377970893379635456196358710320589531367902040297487779656699849298599356129845268412006686236667214813504564103957252404048339553666193263525224223115403375247099049323021705495572101622434188465060047583788369668743204589986282805135908543477349237381749689838430806668883839153300062677327100837859187309583134459797266440137096010075611522860951841342988482149213104811811209701303863755928387124455715156381102368083982002362617619562944644487658424416730056759618046789607697501376364111187827876499943760465162427914750246454053219011351947866927962501152334763176290517519671507216557356203869276870526224330435978044901710891213337823368422884085156971042358524122400453621270029732674017201493505996649204796660254795766001034599027196547774262736975473972965511233636490815355501984210809306284254434073539637792543419318789495661645397089507636927322761879803724850333337675168215390022916567653912722849845295686986429001193534244394593660013705791974002415182567057045285594159462495254368999276727613011233318218259707593534583043879508664380260882849369425449538464536464476892291016224740343240565903629322343588606888181182533548749401496968192370615905850548884734616217412782371437925822165172944260526260008223478688019307758129248247619204030609014007552468427267523993583785183973416346370633231732138216734903845186203292836403418577016710771558822840135364878843717244053251394904449383531825242380934802976938140991340975820809190508503170950746218142297771260181593221078993593054743450235162773633941357662631013480272836113080710601063202740368897797361013715713294215112504919039855585629236750840120409206107361659215432859042002865586569758944883924988090138546401599553051935331769737721259397917169074945965810193501318352321108733462046587204786737695162143847506728970711197269684967446964898226285320698372368100401406391971192973016711905005714858977377353170923788324685618966480570041489166975664922047231757149091733055048266026208683321442728641916406303775516760329669009446615497221773558630508586382682531062436075774635385107263381570158550696515258194046803931173707224913975607135068915310737362454315635901907406202864497665902196356715315219502724903268224697060984602814889478858085770321774503816685066868919018286897815434036433105303370259917325786182862930126561074705867681847101993729074085706266386763205693355727924819152579251522143134884824196306250751583526640583625130884452235502234951688536133405548502503814688958775084626525998487441197904251501820764919050211520745563229655606436393413667590576113680400811861493641863410617379909545406134574994591813680639910272908658614243353748554234691329347146645775937684447856050252532317274434759040061237886801584808544984336844606003825466174332477842933132916308643267744229563086091737585406728121935785357438381307477529780373541470979029068895376422815710214190969747811896591577614392348004192931699456611088212603073702586856554070063159773508288112062109194446161143898701578271708259569365419157292659844116431986600301519198742559795729087539026279659099775189032882249678197394820466155643558887850100585624276725648047437415640137049577912319773437977373656240206394109876667591570650607555741888163545699378698688570998599647042051312594679703605525108886518054995209613185003183591347984500060997161776113801537894008930807320910241207480444385636313581468600973364161286376548898995411066656780765802189797638766097962787840565409790672562374485647905472748202273737584553499732174172865407573642643275652675354293884398991116260489637572643091286532602653808326850339163351215491164929768342680223366806286754364719543702190607191053373064127735397393652964037803597255379986181630646077501635906624764680978401824426549432772499533205305691841842117115439577645787315048064856627373779919876950749093534803160352280713827354426728621358237056527575105247156904345551915315287427349885614315717828929710185395878173307248338673447190641773698704148026332386481850442560039738780199834950995894363949073320833039877850191054446648767517767108190485301640838326502234447030773428060548919046269012303249573560915433637289014362998509130889488975644313626720832835928271698925502040918382354797407233602798811372427110582235501412034149641094674826035875860066536964165297045537925919147571507953939893996058058387195524399977512478390948670275731607166757171196863145011646502890083443928519800866844419534379622505081920684239922550455671897358606848419308447749613848154081866556731993162884563066840458964543907236018331933964486992242278580759351729924970580218623341637794808542726279434487881650564504841897090137340082027728298489281047584242127389216197079518846009269215072327840976202385819987383052097999814013390636535201189587004332767455602447366382990386635456003162813156402163538407219640503524378729783999438564600679534377509664210420804024427823818704470912808514633105840824286965307797081036909907145161451161438241377596083268389393633030044034164823106626252939425121905822687663874040676432588885250772388355790755229665362071954701554003350332903049201109924679344703551702424185823312605269070397878657577776871826400000500689136703065979461474886057320330366519895769730890283631624674370871099259953052855697433331694817723494161508574578353802229111772721217395146923161084240261598352656185352044307581928327650531192452998288469089396460873520786386323908183689118570094148980650710027806334786619918658853774961186989277717709867407808800242109711270478764073977540865353219616527924898617292519638223231837078297076540707231858633930325451981558066926431000821010909228649326559856886128783816669250703235527612213783257912210089902132657033402120885040193361318878672722482076123199271350848144539445378446905439480398627349650408176195135860357551614952929725007271104184741658365721119864039015918167854745818768945830536115204483621973553707490908770226275838769081054087401681404970461022377590958679936086585474247550741375602668222644760277248271395658970458654898487389404475931634642017899443289635862038652016894005467733393033967158312378082409992368298918412944064680142548946856955635542106220827730774044092822435436118892071224388934905932449307583179871497826633905479258460008097651372145368613679540083283774160650454561545097825166407327206716391192348017482890749474707257760060986943019907900154373257975844097130836704824799573295335430909924650351387246437516581425472273665364035977436507137271991826262032403779437832801657181533009160887888715052770293552969257119790854774193753760124239456414436774726733456873505179956582325080791928747827672220069467519713025650630856118734828559262676743893644486879431009183651265479763064800432487270704251302152646995483962422993244163545620959024043470914493415540719869559224107324972151935590940992051762586090352609049904825428609432628137469032558604959096402280973821284408512716618729039262140244734995240280191859840565459311742823724577105686898848921393560251722564537879445873981787789612604958106672479547289065564284366492754429603711756722228827989640449718446784993393519218025037646454769940867488418070704073033673537403957270731536271778764403499796296584192557156904473987423609954573548281595700091683661077052186787831118847503924443358883359421673545683649562623772021400050282374078910333415992475177657044734509683550935379358922866712411728062908675147618311269335536590288087357111373055000978565645549194648186384275001211990134603332563262400308056961760125477889913247640740632064289485594587007609984764906327128278774805645378017466265682479206899629896101022053129548174902087709414684822439729349656159016307059411534274511190822933244404951233984976948334253462534843990021191581636250745476569280332756547156865225375420975079153516231566850348866868047093724056111646213851556380280178416292579425634440912357197068829114244942941208054358845929997538790733230722764480501603079470809172192323261031021644845954057155900449617394213141653362272738410138559322406920722458152525037596183992372621593636296568828411631857906493236049027562235269913332985018819226863511894541395659037016945122759628076203518051803399200047270155110090878308213391950727711671168016490974134332799433919226017518889630681852046489838326055659927923636485122524238209273825640399657141567281317103166920212168818936852969143460278400991245507805455476482333637501039738805437744711930939191368084311201487454787109028320694905862598153224913035213470451340742851642611190913632117432559063389880256327626945148169341637329772475783729263891233715001526991692863576355887464978932872595139760067521338021164312416180145479240004105920370001976978779952512063941196562195737767479689153112844793057925523627061558929059769577816614834504263672839736990731732408942679088456041657584290375652320172357492186827434678704040553021323422135004781883372187867018362755776372244323463270884611829062586741183226400978583723120917663357511437916539024571355289164840836939359873161538704372502821563996463910969188348118442762953991887775873825390895212103780022690912340740691772749729209658921398304160750346960437922400600486819798432939411356786116408106955346183768090032706243400319832801412112627782322170778543501082026656715571945265046202583352715560852371635671019113170610236857665069683190182830802612238045707970414945066066642282044461609855801182514407573775277653503811683294783735306623537379792202664739391390259592139058798160377837886608689774379371558390079558983084025854911990896504789954876315768027475439428022459979214444147167177185996549749943769207688656096713612422668534163159488542592234091194252831764205307980110540184070421586418120597282882922282706762308315807047259824644993622936276038168278463933661461501879321406436548169450915090464515859076464577479500110266495321315625134630578828063382827767916145518330903228346302553098032500644540572497656466600252608612198873922858967960402701067688510914550987522416702636009650648960055748174414012712640615715299476623289410716702614590318046519246456996340036536951531150648089868486569629169142905802035877252074159616186590335425892978053495471070514517524020471878906280699847291718198805941873713265765673907278210447301092241649331969500088439897322634699380484497405299030673836312357380718212387634730202758694772535046299561684921786921405908018640241241514810071945931347306306900427148968925801890066311343025496097217612020223130516583142632614389821795226136418049374244213488357703177971791449701771193011393798921835882576332447525598226353962657150176019405503925413208018154065627623731429581847896273895541321099970738431025668781048661613097067833253501308222977008927761815440816864776354433265628636050619291630839605393615769233986099624189609435234198498454488405765660415042038969070999900788603682110281899279261403705488970746112266226024270250334092267233535887507882627172843666286488223274786463587472769435479227957266043029857667084260376112481581810443442361132623271018019612024259191306618481961846947915494855729186399862824751067010520439294271766298291068190747673741772291345442804124305197685350065719982549261863970005773312634970862579961568351144781045152590308095351267117739438387072007481140230684167630309778944472859214902858953810523817026480223637273291572671077807722128059848512684169718274148431669983023567991071450855221091867706398383180450817062705428987718813136037879552393970716387556256419302400818322282048612079507697183364312379592662729825901512681025307928225462695856313239770487585610467187357073543523918051509839434991145402685197322372914693833092208287059529597279205057540305131609885572168270963344062773487331284345671528616668149805110524421777353147212691380466252303516519717659558783446933116829359044064209304041582650030394992356194343220353476255373963205110455802122083489760752600050197869015546932355172138428712979066622583610826104320556223090221700861866859099405963337125782935531527170680900284172720478984693507611809767381261331887606121707360798635041808467315228414983485598818895885559268403441222143949256713914689770735171301437141897051958284242017619943603451988280965144670705175770909836622228329539674254848989641556701772338226434219590235805304140401330908575411428721640835849621916696678822176105437477404415853331646766242075792754701124334141217215234232840378491307924914128899318296862192763903547249083551566691121335891007074021884951191391785891544718078674881877097233629387835559248665754849442368715805197518525144446881807872665021041162521146885944510833218030593626679964573651334177129609862834025037644194398798184776377300515075419483300848427560649241158737762724518087336696251204831747688271764603927205723089011969608107257688613713472424918578983567226972924767159552775088759999973028529242702099289415908144646490683069146408039766955023199682601956654056837911730153999814337664983503465452263642189004605656047692360955511209851385817283390720613823156714277278579297828901427839208351836254394702088563838573983480246526836648142169539583263944536260815730915432845302846797323379732631963431192398413584099288244204386426671743466133945714293211766708148856653853432653522880155038451654830658511427457604930839729434588275756965085364845826371077545266059322971527262811101428612908773858085978855752542319355817234549436269045500081633341650963972411213370428686871292712505003448380916848599822900345991392314266774307040214218703045590572146806638930888168721622450619724487028228403616568407785848889049567512406613281500923416306787067485765845239193680160525826683855203870265581679589386154805638053750582914521857813529772431733686384832806555357401453736979597001693369557163909131666196256645017237285061755090833078611259268615421821895806534554321268225031961789449326476138190669220694986991713206214739520841365295371042403453885294454598729285007852555091709874121218291328449275649525626121678545710123661739744709867162991325194273571654600738982839065448955360481837740850207491027064601662031563864303862346141497615491724914220207323751418161472854005811752595063824697767834191385192116942773568847810709877217909088339709823385826121765602100019212746990006746404968572091050695020760231399005322032106613154637371480146721568816381850818196755038850355353125802555729348158044623362996035013942396179972881700296358128092500503044543437205471344679475762202759989616001290222907652827226350640042368807568127824103045811779489518064252203051591586559783344489738363899344733837554103541350763527982750592664905102342717949237846183302213917117480925431545256405671405892140780695995985884024581294803045631002495278898754992617270248604373677127918713901384022987023856925934120075808616961786843391347884020962806381175342475240815099949651273212206015705351745119615716770781893948232555408278724044161428498872830304181997577955339179780408080366186617272184469550100811473123625502425106451094798957092817231498836535880569767969229508558234485534667460373269697954458621322411186926232551329202389363432987433352475613691381358197818663052770074853824776742176660334135281587631474271744508588476809518687543369685532206915036045736957530373309057236077277186578434912245720510440994857003776464508149341725522973587025174494890718002933026893298311617949820836403389218845136884477042139064293961229583396647975158799274865810783196996846863439153677591976597941851739480627602337326014906789848512252918011262058105836850046733076064781672295560730189201605249937691591383219446914034449651932278133284094397610267825926804957565289321500653713193257131377295763430341739576464469743338028155499174040000613886522994362263548571937001321695732620609197484653284424755338107186508064600085846707897289747077307561272641233823041094021103071288489187156215318709855036792657980509434891374101812996783180038892012033407783542016802874730278020538633020797119444180223122744489549783928608413033899789062177434367814415521636439730839306695664500020751318727910576089452206550473019138851842920973845043514323819729617332518094359794216287898018547137848716432688976333960315832076113614389418545383117711601878497982139326534107109467692993258883495345119429018563734525177028255000822577558712369873076160442394032042161968815301927961374216169076149491624834495590453559475304402725348424268182218324324792360214002891107081753104594711391686054320900029011443678636916912898432586409207042066647263285010937608476397018270641991386694597800482625897973594025977063829688266019841993187895801499511613301892234817614656212674358478448787985672985641323790356991613336309030038160241096194480816509003446236275740548443666569973794724458300265444490879502951917826511347499029619783961094509796032707318960848941785593940875240563891013871653256147943706434752445635126543951877693680808243726020989506636917653744539495400486579989675050224242367132728946574161605870731480410034839063080648456441645916464832032049284972364554193631557220943451985745712884363674757166222436325636691129809254237719532380873939523220039014080378904390309359701508727925471276848230102630144909741452514405148681118441966015573692355046424328262652165639149080457023298012886015921270059527125757536296874446638356935474417003363316949691126967845471536572727018028859931906525860009574368053754626287043496472668804635921203504129022764208212742975979753458904244285845707972421489751213443920013983856087325725204045820624685408850953428648758570832760834878817977376017343551997163204996318297626775427712117999420190656806505249222050473063208786511384635244205404762282984966752345676628236586528101325429006566999217467805173191126696718581474583258035042201402567371563054420445732431145573654561685660608313879107593699246758979446318754917854760097245254485220554650705908956744436916279465285366928828019056414374772429865925858144269587864004562417115988908794390851173030339776931817739014969535043876555208782342193673098136497511125378154355148477508617816698604980739722801256732626733207037857400691056621410362963482865666033723803113468984912551708799198603991105526386633891223257028222157609652889788196259219621731189208051873523804960471962208616126533038241685130726616521003687403003743885350946068611405708315105368894909213460648608060616977586134936446228814453321255898562071163333406919566029159078744508236656109215831421580170894270291006374074746791037446847659273832156383530216539182456258007703900952532030684631290099907289321303689012883038785159314191932730454311908955581324132147076971824323486590697699595135861605407760907084160183872854467663322826638758942312293916284369115033090648457878777804595080638156052413712495801366784131415059630845891427381654828144752761902050699961332163626915328774436477207956519231971193732874897580165976167990664745429033974376956832330343297168105609625103154967119073394903767987458887705196019140594062997915142421329406087998506975171883865793149769351044924859876895410410034757156228754007410861916616327411229102125570291193394858053824279544961430932144407621650259740394279670636665994143491663108757677507452568203758720543143151209518029818812061862867595296097093205705952524753598281624358664057394050454199283381984849164075783475117207011264971678270861034182690882969382040880911780111263639249592784593279474519434020762939903078169556130457485241214781390771570968150480069514841830352504590028118422567646834788209822466011598073420164757571686750872681294967815111913957779504176656737261275270413083504963424457974858973406879528982583031923046763554240109992461712013520431590890099812426781369404230306614913155854868779970474478526915132749028854270908816062051501409705962488167512554960387704703271238723307828488781281057910865209720827241589100503499643679977849389930042236315100593349072591570426228168445410239151075093834288147746790001406276990853495047714679845529907408179916479878586455505571109744149714028497084309156818987193212605872950819286373364492543023396485178686485911736177164575480209814895918024198219357869461403179171370199840324922316558568504326349549729313107009781534866170397220253888387272841453817749401572403664793984874930023425421770074402930752071884577356468363240454621709906440435005532822385347942431197859606528121220502842272274311246414907636159433508661848026075115694413044587040050261810540120479647349006104354697083454077499545629244374840109039784757386431527353375655405193582463452559766628226337530426884003668250105380054503947123540753399165378800779197576915570326820766777376600962784042572108649787296933886994328698491836229086137781153096507896386181500581138478229462894556223380775079513247143681700596807175284316433422372261336890313558146000223990801486551269413247515395072888308591395873849905028126977247215019819883483485196939804376339410918751438299726077022010554805796586887192281258905129031789400590249593718373012250981540029374832690398462119795506429727834927617261772441946364834322519027360425702980170597454398796060186538047548000183767031230077471614840928068187215273285221353108830277414290951746459113694049482264148050541673601509993495368701586727944814828712851606405206374398731344218212836837380746235805921850333618989137189308126327927463904443483506109849930313380753038892899245530471238241306781822648750833705127074093064049052112023271197524674075198947297983036331059297244201613643262134664034058827176658388018072527323119670094981305312572631520992564688054052385526653012403019459185999221502765745245597947038972051305439089375272521151730877832400238797752471095301556395500504430314034145737512082426684553825741231437927592270773484171633500561601516029970617832488909076464500119343533209701622651788329021507231537455411653119860190409802316435651312722549212127234519127830365331276597063979284264168846793213228920362532715376455457277395166652004024488255722508673524054095669650049687701110485398572647382483876556517229953734825052288356764545116892821233904029475663419756065423905200541417150394228335078739458035026191493610665232064047467320100712032569972308406121091796332079750019071575878912645277822098780234061424702015997902228340856763892468064948682339751785763747502633670887108400448189949765796258798136534747244857538465417450103731127096122187145931798975486565019422942119304556351061909152993049352425193691927081428774371399326266336337768798630591946720624242879981988885010941844599116803540710367228902113800963482271174262891875660030606879456498608496783505716647751627760497154823239447381968312348188155182644118616761605649259528124154815719997801453090141498942852335994124081404094736781458416606954440812774286207968521760167747936942444721869356277886838981073347887054057454050554903163965359497049055289428001304550329833200420920746837270793786596956609895303977510942571366937966679132018184572887259373357757031518395526124508917969694981424380705857028043745519066429999064054362337210151613218862505992799955391837383756549994984942810257665807241069064891715050142924829277890622449911690771272028002103058239007730457192665737280828778612511921806077335274561762938231470693827460042595444658565255220184147421166613060383204658081569577036670461819220500345541541858756448256816321976654813197539444045787516023195523749754419813326833375107518537206210613361775407682500099901807377894860540563737765057569350393405203447569458909042040321527475537028747723385630670062216470781486351575294921017892550956812813521108146301782331933668336820499579366870617074822008233778854724478386280899419246093274808823691892368308280986196934287811729419368169727525540693388280595819590134589787512232115241630308946419405817735552316656619531083079384405252280731574155949681084458876552231039528060797442807105983277969051779170874892316238599642633039340773395740730971368861702026588249900196401925568717487353707524918436352881272758123385435496432459664016149957482251154153813924926648079544715383503990961928127909810109642719673520817886014441379016255784826952049274544467788683518799255498843210269135714986654481609619244288039340151168318753739670744773500759175376065547526140501155654407279644017631167179062969040444729485562442259778032229242826385104960526701023485912024569265880477519128123137937961441038196224735818963595662069351809754068655663806723614807431049907040385260735982644036298080361172185514042757997979121677797161931163539371579589590271671792470497059079281631766159672213242735386977543517780367866091724112141751312528018114863253572624258594666878869058841845853433823483140944078723877401714752817302576275073631366899063404381635763416219309470993445940919183300617602301340490948663052188948653508727805660789160445027589232401466641214689232575642827982762630244555845980321874652849880003527560270373691301486353571516763606980942908612616637980610412919024604965943846391966868382031338787500842877196493156989490601191064856491881024091384742487840764140943827526652638169443434492235527820106410248915031853281279105846753845270486322578532500221166097984954143908561930702981157711854837849340485791063312996947561531210079519815202163107532312003926923488427530113089163468277459637809089831768966468917779009658292937297978133865605712827621239515063323630463237286683599794488146835974585209484749522468773466946636204547180722339798254191031878693605308613122894012707893014245103853051823929779538568312608820925797955066764001695018131379111906044848629556647062631324489548465897200155026790938097946372198616219800129360759269681056936980237936221071404742856519879473062788058297654475362581692194213897836942187256350081843922258262095138810893913352267891700590737941128051623376005781598884874363619268608934294310056213892798212058687884336248016361009365393044615553599086641556599528459310758573255537116912631533613290829232365598058829187403007080506260281903747637189882524443887600703900032414186730653872328213085516527712569501287588907885726804302584884281662562451838237113478862209151982676297749396334556903063433721364163320305838548776610385632745736385011559943226611315318904617033822294402549706894151081227080102184875331190642283144923436014044068269818237382315078772374611666584089355084558106992930471558331494377754030565431924663941816978945029236480600600963218275272438209755732851898979870413442277829627691063137030483795394954472597251629661198324227501059126243467375797025320804619206773561286247784174010930318586510889770913652849011371610592496252204810966275502463092941113250973460578006924099316514989629503815757185428832921405633188724303545396324230565284828500997041580622739178492249583214350892351133763506030143069206784483365309998970128156124415001005089853500547642746831602050698720363052883073710309708651523128345446691993649904909177227607543314857104552793905763145996913393372814299800243749699988249763786134980542866897719013511953898384835656283325841826544077638473034640093188078370909711600507299575443262465428858464108163366076602895615361440522022448689870836503964762385811441454439548530687785987438508399795458363826529803700484266167094730903150742941973492618187357457995839705547329065388029577498855482538420078986089688527076695249781791204504067328377204581581886312308820957380325944008197554427515625909379223608120761016472670998297959582201666889732126258853750030086389290207846956461248453547098241111558342811030642293048099168870940597175360769273413365734427665702720921579115062475222444422995459468964948488059736931924685553406465656495273166046698595176090077498370122606616887014445092244636042687523241155352848585517026962313827659544296730004734425342533832483725072952172939999095137206375020982436954119602231211207254168221263184723104151211468204277765426278056348119087891669691639359880624243944981356279889015553920741060992968743036471252067518441559461826879206340651280615871379951325815919720891520376417005428395939200641909651555692443577070104515882876432173895434976833153740422662516556481547486233454064649282073310123402742635327274533450057291595831610933891636883302711496064441782267644905407529929542822247886782191221674373862473801205790004186447236811961770346783830525126332155807735762251370100200762008914575621064357389218052352701641548168952799761686094791676082204403382614999736538442393211408294139139415201036084508505560033375909362019401355451636388791291921192327254998065637826413683384156025334844491682784531100452232074106815498027942971788751429792584118624895476839924319611661819014706394815758261897300183374762598016362310860785225562265929825014948181363099462042597104524247105707179333555007161536597006870617188570831423387681787868187243257724877788978617519478754150424499752651567298985320580308154291778737900813274511225553028524395461239792200556472967286961752017411374964841286135732784888858226828874385370013610328229915046436293757845570952795405019410894505454496274041970044874841742775999335931144152794134109898263679154536794466322937076814090244100092948434509832231307025358641381258016412643642702347458609655087628546621178731493214162865977391450419010811782285683139345612072241320253535303544468636708567767303642349456059431808791462804151592692767589449002991254784610243285980328178257412316515207110957314669835355240328263258070455080524628824866750744353230617893031587738752493775859351999723643359599626957852268216055539364414342527814718841324840389291029660246319095875010023285948096119699919363949659792596055448863901952487634951274607583646382420606351975634516277122327128507451596699022688315417284959473143869792256805515434865679289455403999528779494291687822743956879225798672722923215224181727972336406988534823486350484256059936876092846263984706437113035721486560717412214496108631880212825326597375405333425839381827122866047822808420460232928076784932503420460009637369807575000384248099791356633675837780072088137656726915008508753283282636753586747171382800528166791821754847644337273249305931458345275898659432347306414457726370530692081501312219934021469979094115691325472336402362994980060348808259113508358463720278628287695124444980740815546207408678107136940858872474011146968222027098656932550302722792987383637716282066514700066689378732518417383443063354806181159706705011263625813076284366024599075652832104717228057270955726389190481595182834114089328418952156736280535417124399774623983797714548557927744640429614258477911018295514013397315586103818654636621776575304308125562470940884043552952963333819255960911925446668540626134158706630429685508387922499340486174007884185557765729606768315688555399400434299589880186684426246091134494244258789456779157777575677614164020561233317526287615014704059037430338329408381397322684698853745045580310250030977247339535962225455890688986505787754209683990285923456881236393702213029135327067433016852585356037130919258347286604540075930578350799453627879103349888861932513857806306452244629587150123476968867033956099710036311984345777843271800216174593352484028611642227353868279177998499221433892312140238111618449238983845753336566521182379233851249699629150438657412105510311509441786998458817615186696672564763098845876757576509106054527831185813806388242737667545951745507567341320183086558528363020150378921804391741822109140932919121438637055774219060009295219060137445852152169197535038574874648848504893224702896521924065359739837951029378486869290790548861890448274455722032992273952359139683463643199585683399204826173951519106563894381419592729406070683201502392552412052090507298652405325706509584944439702411776452797571563875689572514260576031293658763662148961416678710951438154107627480754927178979406185204069745275564963663505296236094781552335689447083620987097217207366586350823577124734788395663426308022677894105867062529138205168679261204792348726271003977332338217133587932829266804501736222993863928841465373942762604647468061715330529242537397955192789685704349199653071803588261064306285907969565280246661175044930806727392801144668191931245504827118229384578167062666064288816164078404439353523124657198506684312308135786550962712158302112394399354639882329556503306739979740278400333294198860161314794212222842362061952351020121973415989940297173664725436502594170156169842592871815740285281887535429194809245595848327646530210743600376121838350873062867538931435875560430144460958471205332120475140398265042679786713545058523742550642364589865155686111200513928359758174618901876904196183728379168740552514614575731353217342209081865728760775959929492320856840667968064566766432179836595569048758961933337383411005015415560268677507691088437536670543868687166444372008567108235022922494626662781717297824567440464537913741063342224212875246015745868522019968018987668289765050482669279918877387516500138496060740435900715142658862116669949017756993040854555703606758888204535484890762438644181544052975088363698433429273059985290146480682382654683188143306814543251077231704745211909220413015997336679249312157208981922507446896443487561741317764798590634785364645036501195376142325255735190587485720489450424923855826378604014489690936016868879147921782947575050461813308457033638470229856115199118027514984665113214875872116213030546828693051600521002105300744809960056537625431704509696995564131705208439250816208047867084155735685410963826260530675883037898410781982364955227858717607036602672673759774854947089122346460942883379155200820241832415538320737918933613791617793728723632208098135927426658046594805001948929752799470172803289830283317756672410156474811019182841856478674654230039999258041328186159459400389891047532717481417564796690725306201891899950531137377804898328736570543948694960887015944252654735563925809061896757570093139668402251821894045577543170802949650827679904082100573736850071684392991871923132436753561174062877231969223926206915978106063421809355775260261277606215081841304524083846107279192743068941923226249432305744199824444126410960573684785746335988419607598116210483322398723818875183981632319459350541254425652878694905230819243877055762112077042474268051861273104078795009109920215016234767360996663330078704355996591592475749812698070850090548236397234694138597124702978235342257760681578344672515431788591885781688165856339738802186192363967154035346437817413716936641767192872040092492823510503701026124576426191572839480969703050246882737536860955782646953032203676987394979612568973597438255206697684395991587486450106377595405932516122507171850238821915033810034493180464019750349123078408954059596972495182042441974134945434291493195831855309978148394797064647463666932081043278721680251008531597793601701483130249981282502007164635738493565980266571065642212679374187003264346791337089496209817963043180925596888134483444939894681899659618449789823246578345354705322520322257846938300914180026525705607751814959134824926193596374649807095114539175859117455518210608868458563027058251065658270399131984999534132885468537450972526115780839861439874727777648936974500359093656091124162053120955163401718643071367542354813125344802981050353460577961445453820392697645683865333514557381743911393579966587070877183974578952845792619842882543332343838632378026094658824043495785491333375781270182003400765592490781981155410297335189659208622929728792656180847671365908083624082544171036148723640943051164549820252667335963592703603028834349832027624102549983468291803856757117419953889794053277458613391015622975907703912557018953628225511859866139201162765281978895377841608646521361457778590226917210163081701612159525499097488090986971783418146823436731218061173735697124431928382269302858244365230293493346971423262029978534604489157863985422927620244949349473509610549093569444562443245427668988366926707299438918621718030927441026777909618311471670562814278460829086582180049748285917107210386730915270387777639947907464491466192117211910301436818478238475622151373766080322271396435660342245206718614328354474003353328460827773139005381649882642326325808705045446276196170067468049256126175970835087316264503410726225327252829179809657605842139785449733768780098049186328601128263450758789046001099617345480263137863286342800627296016232859280907101429138425998399431261614448539607325961042084724717478853682301942440268814592766591291075313228486891674631946990692043832941163401037411216359429892180179156098165784718808336669263734463532066242334152079764675944939114154554924354381931788283985248553856752792645248486205720888819708495516131476517872366869734217616115121990363619480554663669178282944944341326394522583603229391829199770591635777496581743652051203950387492025766044401866294554723211302983717157457690607921958146081701160950326759833814882569354935028384872368000911675481018751916983050792496274684778453684470333962840127048941431705376231759474776895588189579559230087363052356488786469491830852966154873416240019330747722220934797839835433323802449618930341850044672651132659336336255056479245886083179624529704469275427158446999055413097197213601758483191375896061578644840782879111251521537450626259226415561220693881348143230626724898292475457443126943103695520903832860277086749772099472152290688214693120389065424581883885928385556176802115859372409742708289046787499392934181254228708905521094605240546883744057288847693687578261592751308939222263114349757727039676617661081664846261491853764926152324528779946706657377589451564434918782189260910408812050681998943522267659830599086684895155158800590831158585728069637389391150235151891677359478567234042605278337733455058859936162056358211302531080064061272355790723695299190682185098695597652150840030265474692451569505374593199900528020029765281619723384997407404741797446525583613360640723330402555329649098135425307718443606057179763257715531173883464007960446902711718237269383383204675591000604827845110798420619974073265598365050099462339181365832425514170611199364835364052669478531814668860093356779936881445788122469215985184624107155187054093924288637040442997094674459850308498895945045004713397059292383656486430617462093573081719532168182075715901913125715136465775020861260131347424263678469359165353291699273057270679320912170898162001717367529554645154045766223579631884385848516780267856506708210545208350732099740191598679159227968199930572332068655655750122473877396127964027801153878841092894956185665519255715783600034938395312964938427165119483094602188441305477209974822022446838957623365482078461866116370781671413380000037413835420133554415937250430143970813002817453472417135231789102662854530050784126962872677979409960971084813880693260192158499901730131680799740522168691634506907625434199144561344301880683476314184084075808971247616050960820734659393813067422771994627537365331848432021643385290816145967993262850670891264840926377777790398716279812310111521424924189614228750651990911964355363731167719070323848657323219339668659730383560170916002458952814284510908412346365284428083124618555469473786345552569180262329472175902150632758439560659404789762919274709530800257356697250992705488200459297606554209967805703530160946092512895239119090465273693302313655486346452581887094872251843247754055129048326517627661119671429332283320655100087997797104263215494153394398018735964657179442824307826112180381604094747864598896767256312998267217714897628215647315143441220737035251280041308154919135532068229219038192634535250422400483852907054930029257860709031222283657948506822947023751135471024064973742441985777270176992126166175661488445188550475131250881317049766484556499430869865259938613727072125486207551172112232878435281916879961271193454987227926333786389662245820986250026987103483420506956085600895178965959608333338138281988029305681579743386088027625609084350207013961713779770841875648594469740426177571520160861590117108636016714870588732660347241023116366546978142990490361204563984368820364830441011357857016419037970003397352626390165228579862116927502977275280655081270971381646206702033220945127634368536150531601496454259747044829636629233016807294236107716496323517559919755123560734306561226118017441412392069308776333705572972263734734518595791278949335962898561349871768213810429324349077642313485343163139415897550207478450808929129060702038989442428746553281815848964565784379227799627247798494613430111601081095558506192540886908470121764949164489213850467240010829918709785256885635867496661579440642847605858948054881772627639653699147122544629978788313027167966161407160607132395453764373200987228059292508247162869527161058319315885517698566895464908697607884253039852402620685843683466329127393882039654721825543643284685766469829422923132037059471021198244451505369335383799873413300846951481290177295990909348365478553348823286416995403624413915639430701415819375472239157955042103634847797316361788719591076482248604745662353123206304442238944661798704946293326185494043248487085555883071559573405595213396469856462930987734742580762443491004780079486378264768339922030136187429255811908776523791027252873415257748628003504512156664922679656953113171407685948164969540038908266830253229061580719404302761519352786078203718549967059967988693627303144319812487753196865384660253898916046158730288995883124252026521269300199145339594388350621235005466803679506854998797037002651461730121802605983112823574465889452451236335512379271938835543565245019849446548578502496056439751090616287325077812705150176714423556594833406696486378314101659660311981122431174897676595102094196029193950010008783406371890082607133316623844238911719970158717373936864617147240223039309456400341453368904281492868963718443382475476434958792481782028501311816805475704340403229799023225423255953724125964719226130102984769115510000677783289557398316201648015868315829454982174248746242792934366518759692622126158577959491871594770026193973404217246649888130507044915272323632889760023664474236771788845153885314258231830737198355670427710272855641520739561455503399967190669631812432501373041131653581941312866960354230643186329704742999581491366962031072290046956908798508712234800131152671160209341990413418952853748135445834832030141392479543695710878144186387336731006220943789560075508764455077036218747767338671585283040698446720615497879796572362061850756820616455699234353901509919217621078057509573193205910443192389406986161543016724545960962322766540182138488531164947195926425097068399716299137796116745911594689312358552200375484465410104186472165714732113260532088849438409453288549995836680846635183783882018712788539095073694078250854001610862740277788339741577073847430680640024808237227934527380572635260394126297861202064081001455946129347008140837076380515359066961026608133660357606274834475762413744252952886732210332962239670887283016357912673363869607014074466457039676291331803248517663225876443271545453866002217011841201596954978942023102589947010247943250556737654986542481448992915794887355829177141616293958689414324596417671004846424967154702804602169512288906624755112171876342336698726265055819619810386798335735914411848535259502674686525158266006647943620226992609697129951258939476386989794692582616117313539780494877212804010804902042596481890666711508000041054235943006729976513259081302376021149205751801016097016750751941062363653385706730608552631467430367571292939566978837638456602478777186702046274444332684846567261987584338398045186506978263237879885552550949626373566130050560778647049358527606817777255308524224974217488365439131076445477516347721686396384233292376939232013935851432043718331339090531997421895571236909121029026724981681058064323722480811366966648644572361390605213908149576110435546976137474935057062311995599282672726697738055165857295157087171509585438420693945276152955395192397522247306112932521854403505885243314631630161826768527297430464677890985745637014356608889230330467043473203874329806778825252220188093708732054923668502437831737724239130694458105558157767994787985527925737693998100426492577957366497725930290733524540272835515585472348913310935891419240935019182785120965631765569366418018878591089949483505989722190488258316233174731030277578377761840986661116363375983314057284659393910909852954620039087457532662998605029132601439182088689187062026735146170854393620399037516911893596015425477860207075510741674929309190746085166783730420956447943527812885588169410386187242018374315862520306061753243471382511319865929710723736490999349981083870244216333942066241138283238903353885811161811439139922488224792483500406036282577385997186302643657010356584078320768222702304972862865902364405902192128243423092711350988565582709030562402729522681075299091541417799596395480383378256959511301583736791851585443045769547190610174419823952853508474239428839123297035556409080238780980975021757283690666240565701167726889404632136260102340877041182337455037403453178060907165463307719732315068209580362035196553700840511141925429922474353177006077684259764779143582037870517067699843558232830378319149627985672185326133728701988158463575201805317681636345530456389204747975316554852009433903019280078891818477742362015430762411326255566096861410858595365760509926329929894741710349473203264045942996852765738739933775272179695130601337329306174051417039420676591103707977414041854873582983611247657769034981257498756616237397951017007358329783413174334706893636013295740630439522984636248604925026268065125218478204012269834749538932929197300222764488173406650419545894248981009565693985777178995336170664015784215071146313053478621947324438254149655985691278986255761581871227636801366159313115448430983278369900211554036196019140192042179680750525740316584393661389674558299254632716334409253476356969603818211644845207944210664649843207363176966533242052781265628419846931924581192344320680456730262633819098900412059928771882226529531322620739557112842992049712635531894541876224553989258869912409232994152600311467279825564129549917973896985549161247672184606502249576742796434314617015967623978952315271291772566424352961816953264671903521453881231223915937528042159856129300825720715934787954148042771551534356259646380130068127735926534398266761035163955172634752791949102343606707202893390622226264529802255790984037848261768939119213597276663314308861304072564275747419613100584199304674965836224636923833512347166612257646721368090066803095176086347479569993917512436724538126927193977407615856165497156606678541972954477378855214315281352143273633129766802606089198885357388975972989168584430758885301810418158068696108792725698534329345295532347798562732259051110374805049818643461792793009726650645779251078837435150640797184752168078143415569879209795229878546894926228226648558533759695694587129278428797405146778347565272157272929457563264292349820158841769813314927035087687508060273329472061757180243416073275799079691293807448073186569794448367888960694821572484207207024019097639136837136956533408708385854791494476538326671797357317532888869756741334966428045239126589214202404583581555338272081633932813105060282737263596043072115644568782917382020443918387670247472532958529447171662177057862130335081527999481230726070122214011655526569420518531780784154160216783947446098370963148703008181394320700951566298747888394114542309383542416416318007373434033548711954728772887894458076815616540775091056693413886849050212870049024587747930045763680907614007819495306463985594467894911075940538927312888601751789899481076664099705938010263374639685702153171929270926018155599979396712543731246193767896226494300605446084097243031420411300974113319265175230142403178310683415896110345446516255042276948305402100627945335221970545633249553828755675365864850989995606104284802619967695251078101411172411679052597548072937534380939333761379110658098953927147523885990844430175090727394413069417132454092032655357226590066290921689062579114899902489029165743752951743074440035024667249470390987657638632076716339209068665838070401522297732936860448554393406950351569280600545365428366792349498675538258597347521706135025052161290070203401847716510914027587643946419942652733534607962810450949934258395642221823391739607765762643533132127849791055763393656460231959886800434275079755920416219541762413717466616026062551659813491828309836730511875124462350698442375135293771792386344490811913613864214612138790174458358819967942014464856917559977405467325850639763734181691898945470497243743984114099788577379418262255194902426131873033201949603761779824865057106952384669070791891586415998887776979985187119384087572251024137333832826045690412496251808762582071570303595167149996685218429137522079266766716494900474327564643890817045272383872517651293608726724248231148897042096528690786942506808456200794072323176646970065019841435419971665604526494248701872385985720186913833208829167543562028639839732041013310364607183216395669091288146886073983096875963223564163046438943154972279052848905568130740864112755179688865915945682293334334755645579436576081686174001131458893299960057055116636354077106052940270848686226928035233877449834049590157826954641040446348346470750596334723363954141795059107699237916921154155658409239612905686145377650932680631749882236865991298763413207191646987224766018115511682204820452103824076075279626349434648434455365736504974746302423591889309283405324937746415193356287146137702135055254513307459129906357414460659756996974900730658779914415529508672267010322372431363351824179453384818902790150865580086779924939923242057184105973371137781728496834123136423487359392384149884299453450120546143185533543802645957869973260085890934641258474687069022030204926405724371931650954429686522076335915368997653051917662723475125402055782169597436169640531056960642251198359289730894053749293319466399975569781380416684134604725243882058998593515843775303537297010007470392678526681180061255057584100081578446142743375302994793212697032758396201964524603603349315420472082180467294099439782191243226027760154412964936608266480234345623649544119958318398015867519340407241526451905410597681354273418658081055115450422630614495719775902241629493150110575763804782186966172322566076953115731844172985561890379855783558844557293150879803608131226892547675254243122869062374385601906127244079317080131209768131731336942032342242023922388148012901947414273214812996756452635786394338940615822592371662587366762467749538555092917219669260868543745106495754752700844384413484288349648507400381237009925754098680110674446033396138211595743096177981418209070403236492122137876728966536693382311776583107744899212351139255612158660071248559599656943593007410389311069715006547656955135986677306472516888078406737058277404434160055250627690238873684842715452336395302027056789553472957924202718782034588323668737640331533220307555800745160657966903083407952228170146197250008542237107296050800152802849035272996124252493048807575577720189100457881357315250207642889840413024611003352078254352408597985537234562282116883124060774221758073109417270904024263497101746360740598683716228029884370618190607458809944609685535728029240021072137958298459310402480374626222099461710631704601985854318080980593092785223225737517758438232835994538636601612000063004960401039738093599815127236884927996191224152187451188879843166628588762789159215596856857884866439469514458915952560186817713202383799947350001250978185041040154902168076133022053294901839501928285783354254759187494367199742395251801392407910584969819616124336844815835931249385150155429707331358302050440802046414702715917256311526992289560431824788685223260052533016131228132747138833903099418956408514239100974455735973950953148473927684748935036510096563508427655173438397306059432009839318419123582889493856062378946386619493784694323093869255837068333487291142792885863489376646742387801743800933353045036662572359755219128102359468652370551017904040477467112970212620958072152364546877074454166863131843867615963159199322161267843499580722895483957136402148823059410627233798957399968797981263077573414821750559699758539339324868424344112850796275658478770581229518441411130729061696335809204424806170579526366992182182863532997256691352792416280287730095966716080488294310432572460154228063594286005794671909425725815628855253103217304018756088764378225935355132675996533186114121338232668136036607037315956871768246378217336852541271204308745362620028515393009908861350573223060263396812578584061655582452239842791749273965736570088957875983193042522915385669495191697292130433613155384401038923534616342832683647689300833234906560678086393904870668092606615022202472081905987016848628279165302637666235185727058011403408744200904612033226798418408200705333378226797558642702175154402030671554394075252765178588417842783040893709273870230883283049974944191455858417151686847278958060003359048320549626202825586629559502347120937908982489287752195539231222799186697660308913128383082866972804059300441705137368004048115189146000779699340486448833520789701025597052214321495492601800984277757066630023276427181306987607055833043902138900475367249464552721412528612531107020409688361209343608502872749844089773786789232500903628748064184427412874158138036967332325016960645894604420919802053074024902622592584388177790489567977387721147884172171972698615679339570866750366459363768569511983156971938248407974747045210727345847248426959646444008120452974438303857641418793588209954840165820990533129297969575866799161332885034692518079182484193682833521630388559210765350265491465041376136780666701624831354297322355617713801653072053480196374953732929637610046338068605488925931221988120409509879143893803670265541533609076044658366636601046062558694868015067256732293850609939620976033249488782453978599698313254155187152628692390944407866570951749637016342061102972087703236648447629556995770572706843003650843045317565690999558740511879880564743956759983408221231450130375183504754057592789200542074128736467887344062489108421615654935329175287752400915731644566045049216450598191219960778584211021300775160278922704398372155860706101593503060940719834606344259077131371182976216071816582649055827452087048035954443724680143281324646648816945844452231996130596939464720408181552287086867078419056506387531653650066526954548753526020584048280935866898822284535807759338667179325253489918099504968345708454620677105988410628267348272620024258455660653318020479818400237513801402266776529961664038375678137890917925964197483822909123692727016820032214634616716449572139429879036630116713625309575047473862277124163192802589175335000179285890780696699928752963697046731737123125411133974321343746520458890143625202951362451441840800246884186029266532037660129876262991661117658096041541850992131420327366059804752889063372651859590860670166198344400074530044105845334374338838740370352428756482838456814946859624464806611247772377579749318927441700085089211297528117437871729910478280767430892149977901380423097539291435230769032433098385375397012958445575849619631482806449058935781579949939375212778609082161896770141536871232873154666974144123510161888465604965059923186159927532846958812983260208130401786219563328192911042672957325398368437070577965890757775680591087304563466109294486737995459969865944975250129307784137777997111976601337388193593255542349512033699490666275107762559180694848266931233151246969989195844366530051163338993396014549738925530666740236382650276674518793718833656106437684752399760989616885038778583723000110006700941669149108961722817976568357493287338408385457792080150505547789073493120748066592861006413313796064708384543455224580502532315853533893618205362537327931712765600258988907208491228226910090133799781666041224412461748281237667687151904719428758721071201699963506928936361116787830416697429388071088322724058319720741256706789401657122385470780562976518991405252139073744617564621087705911469071953951676876038079867528073682015486536207864433625207410075350117991457406616728852978327090647494759841314124965816205756498542996579264860066065136131223120131579751981871493125964941749137087493018103423227056094405317558723548451486569474188050636222085330911064028810367495649497727670869140355486295240288380821749191656148427010225229956551025931356855355019432038504683750305867423149630529392803333756361934110906237994797853715973726687738663829522867845372402392136910347111994562073778027063542581601225183223174227512485404443237731243059224076024125083901600736674618610482023850468528102932497465725402335181998780270585715152374800695366203064870810082748402149338784278674591440328269525165041712368544978234796828373650962989822938121885358238500247154601404820816421871533384528152858217646411447298636551830877255344965767563386593486450596818791692988919795096519627283686930851741283819352525547008563006001250162059817608921770680996237883255535064720558945412231444966613196542922977829007234963275230541452546533717676341391779116275306396305228754288649910251414383852744118763308630040158866508585238415761880801341927265193279230737707856833524384080397923203000031415413566385376294348076133106786643538687984362273759896015773056313615160807672999958706029119104135046853296061346023756680189149506633007462975539091190446382419821472953652439958819299288714368070771639904593147326378112712130982876546400193387330727218995618207480481226470570562980316097871358660356732247536409308477633227230200829935509559375775258090109230552376725180927223760416992477249021158798206848522156254953517720978923900234021554054865754175757926451239775076674507559444462166488095312998576909277018850331185262823574797048058626852780044572550672752467718019999273816692967649700407514931865284690745280387494012588403220533383316125983355329610404593805422147839193276488736694266153962620446708668693954681268729665654847755328527291248759515158640990060052693554222789821145358850800392448049414771638056754250568422492741369644470110106989880902584893914446572296003286583278865054709745335629816432379660526032408065126189458764219142369127776754554458864774825858014548058931280820251850145745605520349016923117457879216492420252291009246432585638914247948455993343010395425574943379186398507946155885481399549216627636608097070680699135677865009403266130471800923937897379210559820089027854202282935070663449233544707621620522053739662015889251927358421747665074029309162111613289433697452982198407245910449906427033380785982667976050522372512912924859286915588312507554761027438158965854247899401896047634556688233914025846090757959002535377713332451781923507948947871640340944254784968163018849608226831254370422102357746119094036817024575093528316140984984747937435967623629029286618578893524685958883884504494773653945816530329874351059265700797339180738144533883760830042967733126817227123342647728806896877916650994096003605938582292736352233888719863893438124685770662065237943810914043087425829070784895396921908466396452095264986329998046221534315315265063907049211254372352707136214422900293705731033454600576770087951494318215900980850625379185013810643611414735996049824602430866668945067742558827362319745045628832405697460279345948642028715382592782334944846846447642805696898383222171007008481241991121673773108086535074711989446828281519088189164839879539915866414913982802736742272629626228320853501976105397101362580908651801394048328469198433550889800631743793457635210030416185935538424901651766901107525414841114798843741568652012044410972550995074975156820468191590952695411104669919489376704263841255251255240749554549799883453508988514403141376748549235375242682248140466769365575714899697110800432188232995483649203404998029577607834350700960049400891998918451036901950094590703734518016243516765910725400374249231810469571730224521297876338089056870440740159245183647761864250186444389725243053235724650460382989681530662880052304246597834654876284013928475013326564234275104398233351623783497862713669264685493847030649271557243373364723902758209773521769269609597400657356030922202067103062416069032047195114978990179140245304579327042809257279789794620831783029662561922305486477294830377166884629252157067477315897261470617152739491737581336996656435027669534007201244904068635915087122311134942702965756289373270007042756638440864342398144700147485809873651575456570213186076395480671311969218269411760105416026973242054004072933035965158728291670241652720607179821507683636197500792206247350528251655792141219701517044872128014540686166961492043977039403274548334728697100038986759449775544185109619968963772685831578168295413262342042494232566733558334325542918969804192517236430565667936940693748866169693273453742683846312339800667964347186306319243272303112994945291228188858059832552958123868722350334298954557090974631723904534736537067882858852723979867850972029645071104908682971704061534113320276557639564088324531380361228305721967183684732030541467262093475846219300466793826486105104249917019951901822740516611850094790748412323811288742149605017057532435594512634830344358970867592477269282228952434806106554661711304316820046391558576493274952300855776392802057598643052753497042494481867769530099352243469930291161621272372209118882947544410056511219533785386362266963681931598296975811786402088708052865140052409718274915838560085608136791447393492939300564366453639296237175023312221585921489946653391678037976400893713584048790252654313033131495651499111194459830251938939229710188703268340834414390315223474507736252686354324424764389472467768438589944002322478471831827952235671842076324953995340940420304821464579531842962756363767938051030511483213954249884829737723815905577059831526934770580341458182234088098842672032140074838612335604252806680780840406786888026416702566637870254156015716813888979019131333925436610462078705348201718590483990231297639707939164964011132995225010718506708534063507614702134609620230157093436875605105038234818163388791622261281160346308156664313731182481519532906985092842905723091840974435224826822173621516888086534113694190206517689684968524305640701063536424671573081587094187303880167014847307088566295095345647704150153576596751534244311042382571106428845492691944949998800327127114072833117302610372230532634841615593034578265156098573307905142912425390176437686503673995055387216353312889449258126673842830712585084813247276147482753148448043834717051532506592716908012383713396635024027402260889526693719264157218735144841724971556498664100273245083172626999150121549490695559551742987692724248412503951353323628085765598971597835796574772004663406424807793522023624037308560172818182925278939107052071557186947382480242879001148088794635953587612884059552096471185408236905797691791996410509682256283160274723020224536884114835957750139233451780280455398320996826922814994528966305272061279766253614959027756367916436090156030890611275448474416380591114544390192924768284506684745950697022320699808934604994118978293411743097843004164608617599176273902930719651271696693735343877621219132159164355593523092024994387466289320505879437271210040224671170869102613690718003649264854586868264353498158031077535994674042814104214538886930452963616710696666825636498529220106877341781308074252749901275418752218294705026890426636788307073222920509151958592186049091194802431617407679356903730382375957757311657184787381748799581526000550940764580458003942460187311763139662972926838629001999774167262816499261588032558052561933634739484509812006457230442145291057391943998747720183996775439105653862686409035004644834453666542292524202945230548016366753956655167725824580369144387195087873311879246623247969620677822182944884351426039466721633428429435659696258649666203305049277668817113816695893686966263207203561552774299532707612500633690821550731856879771761560518163871276967281096254408273680058016883512475467954399796124054822757550704098999789925772464989222294332041339859629035886142632458149183237361154655471196026100789407255957293283610631752892146444376364037873874236092093896128255431036851908541150853575743239132974339736011256793855357904019092293996929914198446258212444003236229337025561103519803200842388012144346720861764500892774410236465698358414361116166973140580688487507673696762127551689318617353523348901136016058473526362458918629024023474397081351617901365545638785200902512102283423048614651709499799155815991709584743717824740856097194903955183889423883692397751813466779972061038139351315558575022504132378261966898775233624980934462777530413858132276964413766519119027931308575930031090601947105704415527485528439043492923707185574915719838139800206266454064177614640197972462511374326970448211195694330643880337259239336884988770789274553643626704423206851348152521933086756819446232127205579112955615444551246645872047808104236035225141322620246206342051750491936914572618680737197656909972461058311275314144938933880747421060129817336197979642938392279767015522058458072448391087415546407727178490117945365620537150695350751590106061869625632965110676034372223389122675158102683975820978914126157901603223616574903449095627434326966003418779995079900721943056999698758688942850116920616271621377772634666813227329893878748306935784034373827279835039558390203727419917700504022683289566691141233597409335462543108632929434470972702849808816247400289514422002541717026386533668823746487222187324690942213625839559121694910391777916836644214137584885802351150379124205839352849679024535606283666367091945714799960849470114574925103977932315257654198546241709770688067589275053837317099772692346147713739822031965107965644149123044778499985400926059268247275771389296055722845704893775107250574191725419669321082741267153466215292907080376298771055872780855826761383131787348843064983126271657895038142308262947948753880725555919684415384023750460897550212760354636045954857146851134186779863501712792118674212680742917108589182649207699507632753485170834059085979660965826397719900721643156578176358535644617501790399350951027952190359867787911397541397596274134513557277959240849774671085943044862622452206975374822921113080952361342761611055232132464220777435747791037925520177096496250369615894662198218416160953177073305393010443585056802188302315735494430930690541196990777058229288264626102464618517170836490774729074531902923825902704535538602833443852067016348695425154034501164069194368215202528195675030338959453677033701491266615249451895997476590730639605267111309427333850303758026040805244656841272118153356196270739410612138792780974496450136252159060941933656426573240525324500017524467840502576800672462771048602909718379517603159842294961621729048912220290409186282981632898356906645638144598666610139461036316834501138474129586402455131261236680309121661321323716140196372711665561274807313494973560058762417425068290936884472394959699840063994890175494575096688142260309384058398155425527295369154757208380121789798130632518623567774960677567633564050664194740658435749869147312395394200814071485551174228167612161602675352459505010955621022819362674184500775804181711641450372466454780040658359366318870022479783589644011208372691004718317823000737908210957413527433361458289769042975106690927778629229262498417348530103097629330311419971776286118354914503278116053252966679905853325415306545846825549154748350693372934921602538261019632013231313144247310056721074880770533945640907149898263938277782366752649848057276397999242997603648242675170115892729909309383624874092968538766194548555189798685924587076639772159797389537677773864617250919853593195205665281193182522602113754463168374985163086684511043216410481296510493280477153304722697279399803214701061905329073469588997455989245831261419706694121705988472274268450957703287748976788309897377604123137152210162336918088791819042796560537394826873854837151711508739179227100924193640109662336908341813601064623130165363499955084894024340783621617254359660920938058306866932854257527088752242701611759085504352407838053529813127575268402169169119412762771172654116854790173521749050813821859217427175563115782069773071540562125243563286453485955683344892497209927274636939741866085922660825500741943799880558026733694659098235145003300175979494309722619891957084809210283190725486592258245511731063457914316830923679008111058639596428996576586748801096997131430443658754635251312562310077103881805580727460705629987134863273569492782157249249601482952846606033062665285057157522333029342490380734422988610348889995722188623564799642895966417975822259697187045089873451268674271599176066013316037805005678488958986088731448639457849859840938965627235510960579235981043662897701928430341881287519087864343100415448161654877161093004705582520783003354344623913698555540211864617374010741945185869982517429440805572729726006203299937574027018420020084041580444710435981120475061235917375784258217469041895544870034003577836112217332269086721531313676151303805213876672697865919892859385046451072030343105448069585088343257962335329082391602198706071241251338327075821621686607815080170751616493734778454922713286627451466395934028600206791589550521581929257632512677096861571129277559919202630020144567670679691953062740124676169538034448272911514475741119209909351534761902173238560788720006527367295402815991298000524620823530490585704412063695604247794352935193069030131351423874941987836896284987297376023956091961850361570546375012272943934213190148044437840328788288387484471646257690380746576887726422058336916943740261512417756346071166586101002759360093315615092525840295629903412809863381894480675516021486383455839518157159029597099037367486370926802258969198214735240754968260287382913842507545981931534144627777902546904347079399448474911361357526489015903916257016968559840446772031810671076501484324598797328001854300216579033045642477403684442806441634968573313458980584185116474393381189741296814768134572698076501308204017158651339608714329107320648779039552498984808892471449353980728097383984665701060654314822709330772384586300631841879772899024286352741265320450913813057321407045156331544331518698061638851701978201551888624979275061735336115416133213532154461673844165507803909333416919843397889132231451150320496679448067927023699540323604048824967737934653980432307717840529975930128624295891899113465585573384590832760780668408722668450389311256749332116421180555232415672789702516096483510660425385134904754766655166237686130276501151588968634894594613298964890280053645544425446599379179261733393451554002421100771774660990703707957745490270727644484091927562769727913003240098340650124431138466264150716444177695467526960413923091248397158015673017306487752747210608434034850360342042002887174567717045890119471252963423539324167326349726889589667832221261398893472801313581347994712428979752022095275147596577450664617296009495081413324641529294573509966078432156255893884467942368533367732633629586292995159139323576662168462275454707304271745656347033454989651534280975336838272576568064074651730554722027669686706913385631668362149843539370835784254898104135202706580535898386570200725389786938514200801792698938197552225149970247983208760010169265010802158464015090346741112664502403626665936264602078626711913352364436086235377147917567858537856671345566021662946228818501732763098346242645844799344440063717182915019823719409951030892011596818815855868140257293345388490346533951204508487501819880736028448347344926143667166446938521883777037904621599096863635379216649562994989619401883781687912916755500501267209297398497744597266566736253619735690184183650702485424485534847557236957431378391735006651561868326649247633788643356457683754399624080349029046762775857145488343580507955043759888545818249974769617372556416430684888241572548940381123537074064881408809801138499094339770820562621810176081869438839642099603357213023236369869835519349461935042669801598726846476778570287551084790680855651353257003799227881675963873524340368246933919049940558250889772087947467432550156950373583136426722703497359235385839978051116413841146747351422354684113502453796388804905577843627441773528157721163739278749030485156574904886568095446458828490398517741293000834935938098569392691073945576259173219100039739288965399484565478623975228550390651128596502057709031491353676800576286132969748732578863945372941171014465085625906165248310053033609713507626971347856389230412324990822261968872665973467377662912139023437695854300269146896145694476740638579084023580471221810965289772390424153000289040903811546528301426459571445977765653233213920530652303953242112350628317846043989579990864756513260868100397827626906181785139852346404360448990593142181046335059763789534467538743330875670459699541942203928589106905888955784919856650967174532830091229750050465265025781212645304202284736922652211320819747782397175275396209530454477917020147131062167333869960863189250225748340173728441883546872986102979673358359777965782606266785617794454284606162927339691350387041386496673501433939477189541061158884613604940597950068337313502726839827373295826356797611952527932650487083475568292480951420487137152797382138631121368426683428086512829719083208262262551809543022890517514095829148456250537529346536745153958061897895226974021794590959874432485523317272640873236533427739538972197823165023319445986680623027972731497106856389322575859008443824564629053514943774784604242470247190593002972408142989668591521944295108267441383894746945438265701854541847973265455647658104030436326291170530485192798323093100773180385215541482922994863883187108980273069412320311256942071904898941719008598971866919771054287715354067684475030610638515771505844127144905979759010231164919124528539870545847268015790274277831036110853666673517543704455783571703283840188847511475064690526377218375169196305978012309998648454632462531152428673260134554482698231190813000320414569390214496414625411028216003941798345799407800999280558670240333797073205577217766968847135726434823248893206539851493358860935422425797233284876925969851502169728031071062754078243272273867279983087978903113946674987438049613500085821967419815333190645201678152322519226654718986608811217401135018492230803437928398083670132004763571362958833574954451329444613524483485469926362177273957562747544734931891596233541178547390615178960383475752232165426022020952031746242654322331253063913608580680164476450836520564811957722506369118713052167567163346716945854043800483261592315045846593233454943962199470299847759366029848513776777319762134282374093502135708592454356886872236340771503390942678031236977514504162409559270084325858913295284621901115036625234783169338073413577414683193488326736663270504163478987794936173903664439748235528777284410132029839788950048995991343342905276668844793014408912680817648840881351163453473845888214959788959126692276460073166584799410153847052741693313163726341241035609136703335476561896554475325770243678679081018651307709625059870341380279566632989368586709442706073772341733396134117341725268688714994996946261216671402088345369273808641216668753209869575186424981148624749485336500987552913747437331353508337243120029723012871110872858273415299647708078025757501745814706567711998436072092723857336661374662653282340865530366827177061993110000799507802721244108252798721818310852152001484395556323750973201340243681758322017502554053473031338847209757752986740079149661924330162823261982190495804293389547967640868572194929417003103551730546223763322473794569158364632833001341255312296354902166939982966677780688552196227145439318438451853916165185714351709906591620330714478469105633777160492817427654263597961330398324241949040280440154113577981858092230330292665856981722889685277671266688317748028287975199045896225634296013686140370920456169634569720441471425000965820943022651280465620443203300692438506944278557482064437169505948870988735857689823053803608005085830500364800705113632272891390395903926316743653331168418908113497338578266384243101043171451756848098465505720481561788702249873410773036994186026408168410259109060227402470817974364447018060945639727932216215630007667931212799438671074043493898134702204971457487071375841149272857131636942741913262634185864665485782823622422997783286284871731138670844372221306224290785127317888189700691822554386228856556859470390928761739364962879572515777402770478286688626704068127104372288373390569918779712755707647268317806857216784603055286221558869939611837056491783545359033210821443590614020693572592730363710427148234946853319974440417744981842530815946302017458880328653798001571038870287771605240877938336351246467916412114331017639340636267963152008027122443913753884916440307157681222299759478672739603267413615083681561008948786298889045271489634269534075253195635191311110082744068799234511640105551433405990057618930380687995976515696610372689000217328894875773334088813504829336109573548105888348110084022481296928851031694347734902740635948461614026225038952460907495804710880139030461547266618158006506522797870592908042832851448662748839845412096811943079286046365787302311869701892868957487066206377775373082589234541731055109939897446426579329137015627707474080639636127293785249342820692490505345870386032093476435591352931538701411283432038612420629147085880007231324421710893215637145866616838263324124775994070985328022224520905564412019523766541499259591655639688377062431222173762292139779603741625704529663895656396970406500001957970248110056068646928404907576064182679348330800860155216343939525415127621918190527954429333718893668519707833091340870504811244037156075226240444929143974030017660482764056180923684480227164220411272472071192063380742860391647818485944183370499520446958928935320064633556566512655822432925136722440941481134295215493641980908751860364676706951762621724895233920100879097244361804810895595323259095139619706243711226204276537083939884830272763736385563191020342475117866872917779879127783596770863390371527717579762676523128390853111215004713787263410361244109411628021350693683810502560771646855284129340624104907177539624235127093977526130691168104686818528166503014821171794654487435931474922952089584186681917718992579616586733270647918208093904977886872641975724499464197752567379481242606997679580145208530385755216020098237744830484382564235614078663375431481015343482098602739632620943800002147906432265284959975419470727487859041358254084845199356750595414800679829924741295974865914433120586006106912538976030510473542583135820575872502186133453535500866353976235359698921159859965836981171134049870809699272633324554070894500009199460734962628665820099234474669681947111840470625467077538538112758693926726354229503609163797273619150568862999347481519191834294901202696918425867673485574578367604987144009862793782389586638681902253728539194364839408753813100629294000435251690931535741615600226046737226454659318916292969072603596308175426056044855078940959327339458180713107049702217297990070261510715303633328238979905748435964032074008093158484936609854666713672285651484689790416194502262395385378107337523548579274960525445753862845360523797478138512738533400722819393529935820001380072226853250827520509158550129003971921864672796163129658452127951599038210610598307445873768539178900671793590281976812945709730387474165979903437071515222164337228005166604879909574330576574059598347004864959446341125605197038328316932712498283494151725218393708564888337388500734592625277253419261148308776884461072908613009450382489311372311941362520962484939186192398922617592610813799537853099032434399425018832493444686116564096536770585310866560726784033560839477601350980139824467031929463254937540693139208320459106801026174268719210248853042473450202854841585454130112773887872669113654006032722251075482505291504604797372286037372933728582001471463279514098784707003369810942223325434684266053217330919805018179723965118552062321702620816169097781154178265592277852106506489838798463004845565867639897389572116885560520768407237008842619292408677153885209522372761371891057335885557373457629793350952738046623023252760334074920174384627902029538182581193993890097581049070878881164590373092437273486928843192408802230285143052232652081935838470281823396235099759438176233054814171217576434330256656342112326115430324567098399064344277196441539920991725603026161796384525538847501241560416534692801182272689513894224994844151649131707526125484371306624130477060116631409878646807467305788981968980277566156202098384547577381512867867371609490060017001491664157002893292502298966213765943203262352742178312586051628261361692228010059372798507191838364709157748102082308585288839134360712233753473759529226448780787186233457860186596383127956190907846418354569446936549251156369248354414142241924055418741980153638148002418079209139154572576816323237740523634114653716379841599059976423966896234834161457499986296779964364716370594457213409473756922256162440721093333912089571647151065944341755863753601356621873052700596638198186842132715972243132860973119431919293404632234252814587050566663245145811444825990010323217492321087249603975139042696123886388543041386781635770442478693878253827328640543957614866274312017516568782007209887323342247682230303269845035014678708138104346641628345887485830558672485480712704609645720742171927959103391824587839218366960537289757301609906461295398843725313555544303957799323152655603945000002514743228351598247078885655966073284881995342492287676261627681376730498891808004144773280301652791798904061829426922525936625666957330093473870809775098393191990567434481318294196862051626045603753711204310032519758126776845317454383464974877786666216423521898902937672888550502391641272485689124288500062558265901077495664165404322995626016819915783742800716973177690645574303264949085053369422889119426159729416347179697200463261001328792545352475470000159063069689659789374028466713034586955900669562611977614836509131813161767699837967991983102809852463370968559024554615803265814685796080547769292879181692898159391060585644239650802026920789583185141228360905927351174811883688899849811629829007616685569613433303706360232557651391817227457725682722001406376363849196948450424453352478072024336971431250417495671714116446666253017401720285315731995987092802499743250702108105397640221008152672706034052315785847507697955951427761537532945187608154387745946648103636218979387597308656999519108933079105722592145495815686070061241788555957136453700794970542428122735238385343480629404755632308592253864899103756351033834901848142449674062962433000749550755711854587319135728010377572141235057030079112410994172851360875739657032438801187181345523084272137295173786181696352878269893021973696011087929706966346078318701616776508128797154152981256043009449705741758211121583317105893743241262675623398200980961462038744891053922230464075537909286143287967460576374606656055487297555578360123441056088206809894261928562779629567984920363876685981033275919980333460653461592884218738556988849153276924839764190031516990097083580897401671385369003962881853627971995229955002304629767120076139900699168903825039981107932032539308889808846952661313373822702115459964694699569907292506701517585887369067206646138832174121891472270254285898644888040674076162142773725185313575928029716368101340069345658431016874764893104700876438711605416225649294331725830773221607123138860601302356082632920413314580540406551933254755974815713587178168264263456503805747695068525506039496274196368206962535086519441403942856976001616211770676768736193731104991946257433800353221504320492853432294752621464121157341255441426024441429501271981233209345382799222972967614459322157802230896356631995027565066494831526142918775948693433856426563167225416494350277246930174965787730342714724226718008527729727756023411786205874375953801321906767836298401420957664047039654149299593052671242746193405362777547546668252135900051868877271449898475568732056389787065939278185785298685777980867924771136200936305796853876776383568351903543953075559814376270508729486435728728893710528714760216779480363146237131024626141308240068016251388627491924831681812937546237646984907676554171286886968417392852581968350944393528973350106754792281458443960277352696030390283635229725096930190186874301522860587319133219452402163005214804378002127081263871409368865185166622153027834725068622718753000929988608149823586645407027268518557290885007275215651142367813618201210243257648837327294745143346862562404997366171159926732706881928194309376258683449380913391918161322815818403329077032893316086162670827835524443597591497150344349268453131831406960650535420106004563918089658502377066907755512863152981987030211171855911515061417558416499715007499986122314556908577431993203304751618518921082571473377227388661826902417014636799329018017464958555329718673225689219434954911672988409558226618043992892047760801920276572638401803975632969889266169718753249972832055453976637791004108619100064012414700737645971828627562252756685792679196555865604772650363124011839770566098752557066251484548906404321691701381546497633166779117909835169097197740888234479961734475703684175015994334717727410907864125221504048849903436009903234874464269244142507794788868888456512030855117167999149083270032400569740498976114533304639485949539431306439392567313565966628785867664918243420929841492519006769042346425943620942124121209053969712654197570123814101948387458449248157072196587682327267035834465252073895538498425004325226178134918287254211617379413025703539052191542220208188642780556902119394027293079816513735663200386673724036408702701775135489906376935342770210160261072662465032375150273277088370427670101762642459888441832508952736677080382611172968148838827312568107296081214253256973775642464130193027048056979073955528705515868233519855543021721866682012826833601414829547883954229661844408384623896488767967009067644701293136729770506490173228945086425398825468426230952148230124914986444209677946879147468487045862591721679281972954149937362111110632254875562553157651796687236161069541628913316078642440638432124813181603285870762828539146089695018071129733487072481804731968581003707311267050676789026094790989955149416040592417654683145765118019065935564888127080390977820827656863585811317112668596889987764725407774948525676606654961106558935290328893397513788855910428536890876960206513059117534144285154260011075856140079199144772031364184203508246155377766367395156104140936664945681949753753607519815316453437797934920326001817912279097251677920991599596753966359839772622199093981842963627863881974464119901936095093342992684651871730175481448078983961204738096788445000708860618516713931288471075113401404700901010048186113972736594979278484469979315505455593791163870385028188540613314465725298877565074969258522326986309871032068874883527657156930907526980199842865796363033181297957677615566141447357264590622598960465942618783918200985388793618636443013857437238739198460741290505314416387152317986690929413562317435587308849072294374583276497635363762976655965228997921262035527350551847282618901719221365092451564162132137109379004011052862799977673475594005021524551706547516111806153347480857813267894657143315011089265182510420375501590665873286870697059032776474186293020265040194963268327084319475475538458665885733337370516527025238017505419141049098036243687725807839396903425603631540861441511622263659548073269182493522330451241351149123988467372250482782918582553632399214088721130083700178169205856095964332800262580805649762361625463870550331399132555503538633849550948810169354262132298044185657608306240885965972465419014480905163435666104743186967480590890295242988422285212531299492292930710188830531534727249784227301565665857947785957397951342427357708415715399717161031184171960567383132118614725240418576455446435410770354073222283309758657470804310232801474252221027630232350857582310743676543233160026974712984861326889303656100676072091789055219468150243059289488992573121496028486923955369836454600718970790102935327644532106324094261449010690015092882699261234494146190318149864649171934948784871473208368961877859763159011942820765695577411265137394680086406946558060187679175238526196788407539307832964253600608490637948978720643936215658129371588501931485836729209670302356674296015485002009413511124248939767202991938527383403468397734024794577051521823142865143852209715000144104074623975348462282852319353604085353140689018247828036440163789789100233275723035071459610252609474566187597764037716957084139898519174914565271643672480414388131447366592853371114970477842558960787068339519841319046387689380715004471516088399716793300725971780624597111163335139283288893488294282822808618626085284351793221149942889097371474553233832379166848153578277165270483605315525644224744721492708943928093458970102622113818768607355155066423749911583223200660260393886157979660074455592000680475798680114756144289818258901056191299221361535820935943821003314954171200657768130959534829771940548467288678800730685053974833995470810531854742345462470341033304521659475434263778772574920540985076851657109041200529610250637677823988281186088388142813859304659467627286787349468496119127843104137050513730602221620122666776059904436123521399337413742999092579898323627078581287254105146932773911681366837777721689299166622760402742885404178077642751056469058611944564694353072371742703674558130688011924355570419678429843146852905389083667838980464094423522501808614779903665346333285605512895899324678489582339486522573532507350114817387352210422524160263357936102791221351301216337245467855479388777288456126089582621911265279869487550296200090872945224234937520998896051352620515218340421127171367757360443988193609409231671665597421651755722282900551684895381475747829709591404691802146791003551833938606580061761555508691744192413266749278534394117996827137065405752352765657874646340886526535965651516682819576470043809400892212597475606212017312420981744460260493162125121359174390364378825648964965428986779379134498319110879232373411433658344687474348088578297184294746605706600255629638553536327010465597313268152413114837460543206664605330001236040333844806300602802257445090369089853915337812536094022201434484609572132590771338630268283738517935800974114280515161639020652115487812051264471114272637531738811428925367952415296461013779161841839195066001871390008630514446451623958011010903999653503431957620679030527250576526416205526501340576056841712630960090411075061996423533678265490501131145088339404969162082499348841001400281061395321110152992940229253451563206714394738580965164803689219065357923738371923821793286548465777586357447868403993495680194195897279360670536959473305397992510346936057548152353547644973499465629182499793971101660692948102042641592292994193225145145416708270856492782497768584499582139591622021618647843360546303297536757291170203409988858963770715970867697000238065956486555199073634867734646524408303557234445127246422957537775844449561443656587413114225173572249743678485482220719555789038563273598331261528728910894491023569535265647199926594151332492780562997475452264971300328947716876341708123167600804732697426004791135700225898998166387479187391536223900422073519794620764429680286137454551151802545870459575052562357861685877834555798502845639804498133020509403976683682610019908209520053814250622752415879969687290473627134806073208181169470001866926247673439663944788160793570939378011463670881345521041406147217161810306914780940168334327821287469266249458295507895645741759804790287149963696105252656636465396449918566071575598538547544263931514423810746451287735156521962189770293714186252035628609766876759670924698466369696937675194711420961180139077363966349509422853920485194019123503064414677874634721850694714404365642793307099316370556332933048866549798253936587915927760161927390219268684108476517731643164946319971358196182933595905844659572841578241785040105562275924442189525891969975513923499431947623180875785436689409127144137383230346442384259258038535092914200359726275266279131249635630138034766921958171941397003428085331460573685264455665936783305423234086988277425405874161017071317726328265712766975313846721105563106054025992491604433118720378543882605489483051478298656331563225960244733298026684038467780047309685403977276043074903828112921467854343466099313916829738631295276534345644299341890578958304930989907026544591300045100740476673217395126647895437555783963427483360955387923796040221910423632537198966965874609268925820326828191276156310387455627755547787400025422391896382716811442729246988926920606878369128751756812693139845957684816028720718592215792551067688574402927649561684144783003668529626124059860975047399624295434518625130435803497206826531313780449989763967898279456005830294927540739328653105139320333897033770723935088056721028864661598486537781670672735163281832220454876030593390546170589243336160375206247308186261246350153179865320229008024735547430113235304782927867820818321643889042483381151926841223671391554297800331822838286222301665108841316429350744434688620392740252493362665442888449026708632716755211797260332855341692910745777908701999082418075753278363212238575095027808518591736625394772965367541612763059905886822174444235691593845007477063197005675185986424704491732877775006546640167940594427040344017496735109492738242506983770891235770032714220257575707524455979364054009303196229535825608672663013903870688237792670646344185093276080244702508182146412102319973803178067422664492437805812093408658314363543509925274242629836622244166548057909078559983070626665204072714849599982084890647765752861515174876094114010476576682657610034645061257766007559166098590175712197373667321523906342880763041547139429868506318912009813867074533939477618803416543868752764147070060159264812604662174671823899508727292465858839578147350515537101019228681763134166744418037559586761381384998559573986366908980240548682825080365396850636714831668845056402182622298356195508900895622094270984734495766359189018349208112637546211868029892908608106798259813461830887380941655158129398360566362691034282946148193272943261303613759761436824792721522996109824564976064166070069091138780843715982008921562311578597328623313721229294056609437762159718883809469947914195378934100515057229090108440328179934859274135247899227149512541715731283190973580694886942778255212601107801068131762586986176208984216829949406849029989308402627255677736979483886736155143227569332172832133492314552488967303416699709392722429650827647572448755242862714859130613242231548015784829462444518405669837691976400651174544456072160192631995857653767956553393070502424644338667667784410703939405965398578025714969268939280296871773272495794129555112171412726542576944816151731575653928059654609709987116217925312698605473588435777412387217324189718993432448665812905616159765797508187219637707694686044244717531520577822462156469079714252772016336324236920384225644964811643567454909693706751033413048219785898538521554787527307175266764951278302895068410889860950344530648035511063905603284242838633200561587749388608085067322447801877379647189927050863635598352566092348056718878352586737125944594968766258818625160311213924791448091427493772954382784297889257624265201803674015263774322871058153200505271601739921935994772315833591928716466559359632503598989815623217763317629891029250828586745168717189535612954280272281578085251380326114128994271408725751437510035034624682863234392635368380149626253233370063613141568816255517460928395381968901350811309135357504805468371588194874116443546840547552838327055995856471304446359034458265944444152942799841954554824960532555426183075321572220231341254962286392844457901991308289842947515010823214837378420056972934930025023559499830123917112989863995998786110634984409873745220240511979139072340246930557618817941810976959596646303307923467677884742086302779802306355208870832827347517421055118800535447097120230847397369170078338486986186226251869249740639135989076060572661147006705050255904043362500031942922055604510725680990088287166412622844996311674888775005586076981286711863953514112458920914049607373149218875231350146091219827293969689621689710954618423567101792569972500452333513009632144226034915338920839008315512735589626707470484555519898814101853104142349575435993387428712507263132453341758903840235276267665934391139353561366153473572364554678798927300742769206519038076521109234791699238764921474654067583670667519454925365843037644607702187491581940274586518165384971616739135612766869422060524100110997868761242551505464119394776905299984518893799602889810033052308988281890236773677879483595701177645928515741612647798582194520881957234132531358706944093683496668449586456591872123210113472994947942016888222047749048379607237083493069513571196832844648864176590485517139353707475898530450870517468779453897134742210227659144482990199623683013804451070605422951774525799491193929495057988702454604196911425301910158236642782622205595784553892438157122223336294420916927590456370924562058664603649271763492062395207652480370697183799094781429483755833669882140352700143796420376078064906189628391538034784158312042056832589595623889884191864348628515897550671219274441677360996198602856780035880687112330626535252856324849352116370467225708966899895648478079235495753783047264150007798791386218153591398122959357180681751770163576646299226207050060703592182781311944221729235606013504735286894094062133606857047947131147698510985043314310844964611054815891801093573635395297084919596221768796678865948031784790738970437522220044954696876847232160588065912805874702181433855480664678362676880994480588224586500382807149132185852071231808458931234169202062321035089670447906351115966507377718397700881161358492852498218075013748052083766192865464598927299418323760260099769033422270248436410392837599241536014450202240196404599379716488172590308005660013967160368298291095039121890455677740270299254302940808072930153702842920458235001966663783812301224923280787567734106359410344682672796350596777674205506977966852913327985557801872571389144372457363736209282963353343981415773472010786697675145611074669105475621583594016901093914506317924478600668000528403385759950744207416625506499457095496078816003638234676562284909811170995462813714827758131857257099257860668916689417953200277149784014552938844581463338433895505650438640193710373814490082406438045147285752264489738225797428597859377794728020916161873674475469404060184258874930648715900070171799130703235294789006995430968850121754428555722490527446233510152301313439710174343940720478650242585198349531151049090202667365995736448091593551254396330515705494489779437023166346864548352376265611833069630481401796733413361259137158052584413941462254352490482787370111573831702982737020677748634881345796830007198691618562436849339999988167940935133253738807098330603184067446203303899986088383161205291491006970905980347421703211489075206206894962583488975856448529493675648324683733204407872920401476398825755216261259667931254733974454420786660639226960651802920048163684605708086660389156152612277131437011671636031995598234873351539396110062332598920874443110051849820711225305161309086696443644804737750759300274294720916405565497360782411064893388512495223579190389105328924821375394798427925088927325519030646376080208464463373237593044077990370642740955302744650181268246242027786624921015849817182887311053063637373366474218993949725910316462994188658273797006173329594845646490403799824255474561080081132239742950488183609609607776532614498980343199767831225017430150376872681210629900193392585447265737107173790513662733527581930961191536961378504910189216579214012795106989027243969117675800244224973045092756368581300893319666683109038384193316122092370542053229173378938746991490957661723570631946163319364634959567654639084685990715971010045437035731508177621980650905995994049398387653096911645318420379794984798165150459135372104050809055205932704056441806589412479838966084770406948732586734504285405184134197097626778306086406457491497494211722207090050084002139109878635058808922699020787303737013284496151225368812237192944287461517072041974046614879261209844606966066997756077009201623498270508759526803505309142333751319336995125851603613710773634008667440722008672488880563938564677967616941918318838166353595421628772553960551814508155181728694463003620771607880020725742569319389955417353278283676773258447358470886277084876521286173045356598975080971438045719964599161500236353253795734155271463003493209881853760849787000111813080089722476807805838773687788297653090105970675996004259056843895156506615421657089625650551866519756471700503334193442072230082595221301901760291503204695051849066363376514862609755378627308557430479645950482316305534397936765281544003870314058496014417764328512033306609096128800490988035131769671576228969737163128932679809663880259638084293616036995094049779471650131362712131125986680298377649594987533923469075582611494281732969770945577688260339977965144334281602540610326370376392702683993892369735620182141114443167555129600563588275203099965547798275275013526636463477486369994177403353056924048761829481220795715015021938804801020024344765791984416040687210342406535500724579274132514561359067282156276603303127884484083814546764766363765026563957694563648192685457446581961065438809327711789280667301967167457134464166096909140605410833900832137125969432932891196406441190287149321910961429645801212212082793188013638264185411953684359300457736096735656231301022637733310781706630059196634963223179990227587577310182755946619903983451760073552076406284340233042319226404546085818839516576887536501837841857425805764063605585448553848065674522641331629565206084954766168760428488194589951737037698150503294026962626682180850706240969567623562055349692326479499272729365196548914102700559922273261551075337727368333239758909858044274518763734778643585533057220941910724894195437371580798284885873689102591712502372421657965697694525859637072549517967177985440835964298001996461801556649514493059765362338090505661427367230001871765888547152573251303910717178483322319806844427225355643803360799621960772647050755728008627463641717031022097554012202008757588957499322201584499041570095154189900981173035474365524808812852387794622340003768931516319507565466128144519383538372979222467692367357313144618498647177339873848742064866952467766342074655608041865253424288873454316620330262388312100970232206967827041971399893089333309134838713246022077453912525892537575935697916432545476190148619528635444424521368023489344961045035908750055649404594021105224257146340141489634402192758849741573189367703452909661253704615761082765760944649630255169367532682347720797001784620397719820983864256387146041432630737639204057223366726947121243234934773317561395543931901372738242998718662734518239938935610410132951991002493028482466242360021936433905389401895689701903281203192233854627441749030281947189598846974125304003184552427840921905299882822189023375272692182156866695079667852193091363364896896193766221325939376549985286022970095474826803497951643615695432151900848963804000063600575273292454053729858593472043044635809134804434791325396514475675007193172023655866351612899631370384778090200314544687710295764947973378362351521321417603057073257953047907868044597261459970447727008873804433786879129314714160651915515816480565952313523897640208502248199890263336392694434076630843910619448314995310073305136669143976272175897594692052316947550301668310309627454040742358688430796267880988497169581547096699518908133323866840768885799809037818507928126306448518324611799418360743519325916701793781335924572980824513975196037476996510087732455774062750698904437642372651197815288135363871620085912634650272842879044989310059933831193472147184302467862052463608299491136353910477688972715224145339498587690062000721962797057124708859404360933880586529216907841667986217044406908013954449715049274601436716320135946942441009623220465276017313029902070062771490980154137713025878651321970782132589443795700499365186329226902694688109543649156880182639219541346533483482000777146613650749271940481930654684641332283356515587677953220374898573828998762583796316972895757143547278715243336537779521090801421927531398151725766008381182565734775650354817423765825478498945417641586683474355333898185219888821411167322767052852221058569189106229185820947523691040302610036118033646057612547465773722300366430747313561297806640987584178603531137901643125844299004022478364935778284473237713914203932390074463653325276944817956361039071149039817942786490576723949508158746333277042608762042739998982015513523597522240492158000628756259415897860960285397249879442689662397634343090364203186957124852171253022496950212317383193902790871484977974177721174690917801408977490612505845114771163931502089827194416257661809954873836559472208873861760786622914211782508932246100986974225625829441415572402602455680707588947201776883287490746390795420841176741874514791667036650903843436529046763512310558674040091113109930158133395802402220318048426934507259382632112075204069401473703962032691638929237202673522971503766748711357646923000373169174274662359535505448028669160149970648411434361249936454111576731783772260961208573876936834412355814129255048441478888590679960393121457950517262404581728531228276007135139564971090473864216164104925936756932711300385393940741277187451445626437588906813977031925025818905140662933809074939575762962733054341146665806212486931864392766003033303684002046500010564331954262363603904376973520180881483325197119838295527373893280794832819523160205361666509819122902248508484528941701376778560987203237034769168828690253441102802148825304636582494831677976569990326043377148790232944087078600624656226647842438984377356354246714857352135240777633434801961132653168235382485864496087822031062614766320612610788566268486362511348804163422692240592408587066654753561566332419432300287118343921758705931812789278377413672688932517275911352983178474797980615321541086225884986125387181528359504779599239956045241537161519126139615768293414000429557810580791569555881230591506247729811801906687951017202728909793794481563068745040149058630118377597600385699366135983766500155568470334880062226338971793323318622128242273320205956435504941698150559392495559799904890369069048662063575299575437382862080168068318722593037714193791127029933706495358154815594085150176865134255193819747498572798333709479010015543494192930981435860462134938164005294307647015571202166423243140247650639335215083015512719943299718874799997511350224671914785352609172990618327006370882954847550926301365435485970975253106524212715750366849202918843179574754260849499942067003809193683138412719624516909943476134294940751481640365172285029253922854456430161481852601819595985655404489164718904504492654247027580974023427008715239578063583156222545561836507524928714915476727403347174345144003699873739890400346805394570420725866238691242197939040876180183663865145010395277027836839048533703627818938301243419725128026137836525035446604744475987278516746201402325437097090460595951602185442658692458642541169432955594154627251989797015077666074148828086564691507489065771985922691348695119593670332104960337709116770312949799208437689163866652252305341943680952268938120503044612135264866069287230138130161048286662892631826780036440090084455198380957344950368113599415561374615987235216205710453999957307279948529090438958603218594222957834114564723176230173272706565234956397251788469342077542347887282851723878904381503214446734807402656336368075601345240350406644491566492712877910208048626282068684074319987929447667807576191908167065349644993294053882492803545290499776957022431124314821266771282698062386680975278915741884451169077324403601518180897264186482152906809692795456145895656358711077901104839596621904331929648313279964364503781217182379837663661579997024167502381234005467263338911512351079374722906563979809471702510048549828003479226398044656859648974144693830062592091834252390352151611052439525720551727539180937853419744183871998099235409473707561424735745545669087692866172114661654626530677105818990904652236586545899926263284619345081903151083081740264324794656683040328760420182267693052458425643604849888966666418142215700142765423299598931126845784154564921136910695723193121130293710236096470618618210020219742930361470609675086750635141051831179560217180882039521901185502997458951110762663898484434390898362723251999469726300672680470860251124242118297048726265066111627256445134452293719079151437149393073940250509813398426225014264615527559548141882686280051040872751417638636788173307320248164359861010748773638000776161452279244397040946958127791963562888692682353155038576502917577535740417314133665871108104258261370513455854791358838415215269032480448184044784325613381995125514065815320082166163247129340160868330468312434883691661516564038452183595526311701467168913439996214494920071753690973878399584937247526553291610150561600274097936547259972278512116033143732546851100776022628220651668299458177042949992313313820407870300901378925412343616798000353908659531426386743890495380132229040073201395433472252089460124237046527929105205525749214704916936938861238232188747534196767277063250736053976959175254250655479789248902285915208674496895132818164545708921339699476447841033211716699533457283045647348243984182437422554254099384065863739571783919897302531800215929632325699420971183250003679955401824492614131545057461812358740392691304837680523901852443124264200626256103937633595129883090512752181885284129102936918612679070728309609331293006691237153349712006004558616936397519883009205599216670721060254307181252486369652252410829785196864579158647535608798664937883175360534694143809986091025533970599010924435117786697991020065401645082864968672148136936242240239158071805121871849919383374266362091955795094889367944610142769968811173693216030114052672745159339994338219475408262683226573735727064335652279440983971387021341087632493330099195514254482520722762318059678788360659206897103869016785386637411931798978791881194426217243600413806321623561745235888693937476910879897352047496101583012568476148639663004104718833276211321326961001193390780702285200422435927405791114520315681163201548062329968309039515068587063996233813464797416003671711030579536885583094739461604613087852321344886133382242281876985738409805443054693617506097025617785568953244697453937949710571912665959602465305256144844788768150463003273554508915164538686704747814805325308899100699445200021823413875520783635881376102282380659634941548008034894618226069007857934965415605002544626514301444796809354426687809848028518356777625729365428742131732121146210935750123296575624888969076545129852997687127404930576550009063306510570602847084680414422362837180367084066971815795333611155587530808782240319809710041913263263854548506867103331970626108597840096299620170314619095617776087918489828642634595598272591194301276809003750069022872778491794823128866163781958390091237724792910319516924885353567118689084154516889261627044050249481501258483853774825018465546732068126430293953008263956104291111688684699411268464040188371015549926977758343698954043073153440121514470311187023628933799362274270057991044955454812067452113595758748729027162161477674045112677695500669598550468291542166344686569431626796618619413903619263412533266932169191637933425154425654253378451999590843810003708185361761178640339223783333682681216888822162092337686918275780902235891748140732723868260778580456916001585394794521099279718376647822657739861694536243548593887488844901676340988016037397399840812451023141189024808774225065882110858688711473951972439897663964421362318803519436856328574990876329608273516761899486866875123822170463759535809971337621920289256597460026614075711455487285066573823027688195380334877220719816248376742590464282841830794981053941493294005526781475782712059305064890381158931391621006730973179808082651663633607730915729950973288489030037071122654999201922416273952388482426104144370957857578896549975093317516381993627205406042521169029759864028287588798932009793733670396172394242198796054039841452493679867701259191416185319546724932891909234099891899712178537151512034115470394126057280608632326062273493609532524579958217652523187926562535646354032899362741331941805066711792227849437957972697657803644881372569724141924513250550820069027254233839716752040302350044602086403785097670684533070729619625984142449462417689289707997272561946515293178182870215860675793784285949031239823215946115936650023353644298858091272251356756120182317010399442853617231442226504761655042721492814292640228604792212583790551689390846651004979839512029373489498476107224037792639721296799040879096545547042780149930507249122505165640899606398276453863344206122475231618075789643369555358463235758650451260037661388066456123441100452119176493652224631470545005816531769134560355217118306515202197394805387879430613348631458145705242026317351008193681159923303941305677347657206593932346617453052149650731074764532830552373154062817419934956851439307874201198696147076042937522429207127216477127088382919137446592755731865644712523169126305781784606339935267094910247986115054407045763057249126361126139380468189435755157452261899316616684773038491036254059829279067291564128734100416522578159043719111017841740098753153025157956731626167269843206397436912593809037951033592601972820911070091089283243276333796839191357074979600706622969458594421085957183872458429011558589476357828754450000211690985762626409262997549993472468046638501541643671812130136056425318019386643557588406712597504163550818408577964847904022285550950434224729945828449631497392571074812335941811785482565022845381412608752674073568461096847999198429623477240855376901780709064917087842701307712939842859995369301894378520564062617882457088936404781430135701716319695762967970165215597683201432084613653085598160510939885520251381584666371327379119181765158687726460674353513064636987911156848793758993548150590912882489045711410622979384317530517114329143575209906249939283667382177672377346005040402185313538093535505633195271140792148747228028322116738064455020613079313959888386856986594551519772410182317163019940715401150177734370718531490488450861740992388456741347513061924571141882462292317705294703737652509159257651086894876978969559905034194915238643557120796069487434598923488335435223324147190269629444186604934813915969352849409717590035438744296888126897580240133190075149656628541641137566726173597039242707514369473782222100701879134894141047300225340347525096283417746724978168957422472264665544394196220556245791928532444827043617724844625868097014303061034100507765246842063555740462323225158377545962392487337535700756574747701924659690198965857702994154433163028522097602612607952305041306382526363076716313195168426068190124879938116618829674820576540702021394769795027261805067281296476411581502034500126415003584013395796249554940064005987387994244868125530203030487354266270511132292482640299441337101838160126250846870203340040908198497332462869678540107684750698513833046902227347037142522858777479879546001196657024736271479508354495673811287505505648172375923309878520513447618078776367744570020053914901886167815591861601503489673208713024664206952819168684900763515063571685550660915139565413676285027498158085985931007878460146737554728214845552606945254418158549266534272944421009009171038482093193001535734204887835474342108564569081923591797287438038501299663354745407425393786392899320938701027461008669801586551299501857673319959478443349318451121571910901846697976346690395416730180069119883663441306969176002792559295839145942321326990015278447902271999777725957416674223758555945179409039300369031069181307343010881822505816052848397332913761536948300056342608776763290331809587670081876601474511432920737015430476695554701490442459440156363675782424655913607566494759775080389971231374039530903026855041598619591300531973478350089610979168357003499127287892577875383835165983228755927851839252066010672252939149720242423754326018526506159231749494660004039320389353170339225941567893876810273968790992146601142966578000504618383739564826609942253081730947500494310450758333704206797259282741124692534170460595823057214190539191576159305894742931616670597252981163883615421921794516455793254377886553820054392415499831481070048684178001767205310554697357172221261706244656672009978849747866946865444633195352429030289554333098802643770439230012129891280192347356354539280409662418043356376077440723829850593445041876214615456140154646503357136368090551618998248830604221320047568313377648172746802852716607209156111632291784041459036805367292866658174350354287320805961995875843470916083053883780830071874144342944476992521647245244595646138272097820029325862582137629444785524493770371150262221467779989902215997283157079586333878798427069058779017137941209310426428452936115663770085710938710020653747645568758076550868620108019673296430297936341069869205710549608904676697633460291397084216045661056814837302395167249247290341087087719000598137102558199245453440998200503021858608875595897307848601315818872695213131048610200548176215548216292471864774121572524898108703377572522302609241328337986661652260079601704850096229501511846490064215647967077424165484642568330157123561676124301492061932702163871070095853805068430952402924039323754130115549953011908779452419138495046990840918872202640278602715654873795719998991717357727072144345309272345641182596753675900031227494786986107275211520685811538487711869126250421816648327370952740003663156202440564691402245599664557866476052660426821629211889756559652197527131176998715965269743291054567598107630632843452043865704866636970810765185027449724813523408380083086064378383334762303182485213358149512139730824523611314662311572260252850464187779775767823705646811127988887277762467834000732224586885879867186627250203286600715690877084934553454665842786191020813862491944788250843026031909814290409502533239212433431010581122664589079910634278342980801547271095392997978969345910668368368869735963110469317895601834339196246758324558276516661452119710910523028038297355622871818432719259214945668299270926219990040444358905738274294338295080240910628217836422954213269729309291176287530494875120848019909889110273752890359852906011241275826529452076608855570811908130005649202381812997232772617721641689120168001248775620707308354198538111509946822746382746661127339643207058906591966036303794634901203926091066111974298336229474050038009544549117547290763452749018817941425308616040061230471671280075275399096673382908090370117950054533806101631459994732242074720163005760423843790067586943200792862380958381665470843942622231992241284173538869516597638040166854894573696983042718986474645557792314303302819347151238596588024301868085100076884832281112914016316660662238019169993308925197298720804099737584270977685442979470454332167735072886056859886013991125364868381998315630710428687966823468753746800734762048108059799083986382190394320206675485423608380485597230470868169147376735807002800578565463306748193845823421369810433816746640884751501158419787865686979096975125293675608853783380246823574393668618687320020216031603675591174788609137969635668640594364650957327229669152813016513532304332545827909529326168554824558494415584976412823957309939227961484477395832426532090278924428383967678783588997816375581265685246641460782961369185875105024193933169982330714124179241616223285613671908661591405943195409390843254267395503962079233839357060359091200857541229639656264054323195711422782694101977099821333132578105437586226048234435876928115159228416316651251285670385407990347710968232866282944440839262640170466267535117947481124768937493770085349688619445497665514766679794877506089022585545297640940430351383030612223708099235897505443757307131837592054435855843515237418589458597647557740968460658274821189732400379992913293316336521602570671043048766810578339308839233190355315066594104974737322538360079886952279627054542997816002447227554175737704564382875400705428233149968029058306978326405766674908386193600044070895005594230546734369118748170091955708632312078547230648433207608884801322513658871203650766916911996960383927752718110948504793779502481654249352080958682398636630689164858878585455518773540145144968953122827226034332712894644670792732856291822818212916148486284856881674262830094227852065140685058235464405327456480062957100120999378634105355599394937635628683005852500366896294399671748184336646325415659924875146933444778329076509150286895402700859770680482203036919852806202207698749611258512899123098012072884812127541887427012197943861383800486648007723436414656564049630997939654805779675653040634003780670786794848906066488282480087636686553558297025387656097258387212116287998614417517551617736855990648589037705865344854286405325678960311419612806021471025251846747113461009923515100910029107574355214841695019840347328258555364577070869643954433144314795909817373344501565330397063544345770299554380674203656168940416778982686582809019342230760465058715808966171993465084165644048356959791636630638887035578481588231319108562665498398690370841325929164947470656387559309528666158761816244767121264501318480892827303086611662544002260361467903417947923676957643266734191422190074486140285476419934823583877230218223228638335356668385156629700437112962430510703369492182382077544546306502134977894658123339447255357065826611540865900930600682818909420350038498306407535007721223397027795125425338988577190438729696388996701422291140255281177929728352260461550080456815981874747216148581329038930800357262261729928794600867568900279750380093911963976897556594412146884469354557200994513519118160148725678508127070458934068119220092298081063198839789357171561121087047018229261706808059498315150571705330921439237617800852120396797276985920039820961576901635787832202176558230468654931777484368011602558447379271626420252114429782292164340719893841387034013963049355633366250736693373151143135009091481412832987163737204447813625863795488344462838780166949412608378785897230653543362672680177615458170973692365743156761176200542738480129899806208268198166502855073144355799926126624672712714028148417908725399386679358204489722443953312931414160942215766818784496057835207472926373245020056298213900438037222851110073662408130311994687326582375450610444018421001211273738718594330304824596631468211504868710413611811355152155541400198817825105713215529006379422504434017568398331676954006587697279352327971977208231317206562796163251495854416056440550353569764687280382366962043261437633630483388537924061478974365640667523419945281328095015290945985487126852772227036051423758846584157899228246132470885363281922247147229515035885154024225472929390583323431875787159321431651127316514804700401388387395673889080949769007681516422540700215032947336970521016339380865625023078653847419056454870801032484427309017258558390680272044431078966061597336818415098946610517400908400482067472902456264751167177487210477331842593571668915682433586393002298387418336289751763010390819033575919595453773599410498164524838080841661842053349778487969048919937991894795521344763864511528134517464050845235599254061629417549582075431449290264576545954573529099432595726729084628083685444196267900772052314794079541712707659324441562604214361796239130814170423195850415283577026875744161949875564307427911317092813167074567163243632363953801757026932025256074951537080940969534121105591946325210611086101899492219002419654702798565228222740317856391972143225708889125038483523330830647591159463201157658280957873676123745315534658049987449080035989357837078047513015671597211811731795327698374777892796744642917845776818323344142099693980335346529653074314724267649399394497669718180369717297142534578593654046116113438601954253814483998186987324459153974480796265300625545403888039422291684647279881046202175817953371558926730566629092413043437864602339701056504612353799974503279340403500490247321446308307951410496228128252133877179727178201406888676764064821925529322671282441746970205110432518177600375277461189555734355438944809549445142426787640205503459681163094712389709941168571766848000959100691990662884276214930094674754950015713424161567479739923081794617695152553244962884757905283946707290608159860660883307150874602333791285931495392522132045758068325983719201842910991303776626800933368639365024343087146557529499015397943459924761600928340486866063196662326821102488329670697802189223934129228652323972605107704762129700362687981627439496754643053082601736296572113329065429120486288396311788749985050804299239526636159028085156581124919404412047689363594114744987408575231909708010523091179794578452276830270298195470558309673094970225072601479369194106616946333950684595451073401467053929693055018376498993446885052128153165084192025740961126770545775348388871269453416079729365151432994053160695696396428239889316845382770825264125152456386818392572285587842551080735088606465035981971873776011013217657560460126834784854061296628019168821993060367703462635778673460574179160907291648196216911071073473818605691619608195635230581664584050164912899102477062909669156185605833976905542010739029788438514533829640468851811953108446986489620092049556451770280184837530700489711227712605020994992829938884097262410639727455661533192161447892580543211492324888234554857732288945769633046841542959197105529913550300044762073850454212146640300749036464725186332363833241930700120229152953783116713209100653818457260793489764168824044612265186415620841897420649125104789559729448685612195354767767301207777890526764253020869535256932962238130823173735109270921614721192736667120675189012908019930977343004989012218811359844600123964672407935117985861697829892516686486035437525331401101986354914111611179120290447751819388123360393045262925255950775661868804099428619307118756496269098984756173819203292866608578526015342220518252180678248242777154470766758476841445956359873807079608116938919623392822844914654800128872335647940836185193065343657089139986236338180619541834733000852267527174327802410693529050751877301248881385067333340369626085991579441104075989409176365812633759408968564409568418604000935676419093910687516944519195169291974603868316088524742550862151692327384963806194414074875901740298731023180438409764155719825327700166361850272824695554059070761526901986655987239002356430358669469553644284772773544401464196629197523666072266066534783300173388962354247273862897941386310695686200333984662039447303290303549505757534809472187832990543675909279142154629361789584882387099542523242003058431321694160010631308041072074861766451606097677285289450819641258231862231884577410456978962004973775622999990622375568500388618223258826044868500586143649820114484308680477525417179418312050686801924349773509124312019067310286040745362206123922727046737169837807338325717360931989508816430343320874528274531444008551910914044118040923745243145099634323396929598658937622205893256968039455365539730440293782838887765038344378715105611474636983287542830346536285658298160395527698841249228082976860630887232707325744365819507259642236841828045496898293985791301827952670984950453326167861163309497165446728720164739811767698053792938030105222763824624546410933525963280690973705499655563453093953901858331512763004514850518548653983627404053175204683900637634108748608970843340409429269994260676851193459172842698954252157915094054087607356483367900681894492462670342539475061820359088516529409888419183522030958225336611999774327570901544565889748976471478709930791866206090987912022821481578271337918726565985063321445537614416414453245092472673219796077342335386539929474341065901154448903808525509742992237623015671265234951525049300474799841762022557387529219396345415043054738279816057830621213399004654463398630309383505565692996903349041605449524158699238913282421317784512499439710451464980045522861447839081905232444547172321322540187310769423062898899859124495254073133052034583484855251556945838592394278959875023126786775414159545469749002073145213901913692668749078618496398148977712700916503873199896486434164716333179735071697712787948596523108396467364816678477740760272302667331841300020168562727286794343232980598711051104806079595801658594669304415461577221139395193586922342934015046916608583675189306172904887221341720774252415464730264692339287091224201739308369587537170983960791479480821776754663631478074379931713442214421277372906397727895107839822829128326630076793773618423571409926886476390887946999134878519944682692419453690302069831964863800643755528784869556390840536253079310557272945495264614204891310302610782447877230261615472979793710491942371883088180647956725448939842480688093874710383128835933683869349544825420721940344190051262793796097880880508277090524233106588425926892255562344795511889093045327279487717654027774389574466643453345938899922232456658700703929176524722602270627940911503599747804665654471434842845051203894341206049645566671681025853219508027125397053976902058716309055770440315213242641715292789432936806827727775315038242810300937642364159137503741298292332244941220005111273251385193742973024252893291387618629722960979325568193801370156607404994837335199505318574000049523251375155267332504135559106227305389722480066353812111034843795168241739421592055347349003584178009395696942719188029065947452523966631910531329292987475650778279557423946755153490070369342404328199185606637847301508723444240837554186302881811715479838038544570525988474826838572343346231567298501371610544793073424841433803417009236483948932037457855011676078265430601396270801216890034223650608127167175995811224019606102152987654328987651993149047443912390684662037083711218374222899430553200045849733845940660386595053983205708747090731648283535447604385889525513458559068368752583904162313434628292663908498487348313033956327636508151858785069824891051096825613241141340859255513509875250730612775998892775427675137381373683455065862639648879321535492623646356344676706823923161943354691518773721663981841344722586347313786830897727302270543609112803537855810312544376339771851875516260949500665427870939267207152804838119227207081159968048541518255852613069409413040181979090308328861070997883880650479753909518685563884869984981658744773319777981837181920185403334516757046534859202754103761539650773758414509477374207468501072002937130924326090712300059859038921305074438375602457817260133885342526454699079480361722254122143888134634704547809323832773596380365839897733956600263845837134862820471415167724154628888037102936035209528523874760083833625151806152873563604491585064977593064759702309095702986799599165959100494655770725537074215604616596147357393682715288214661729153051923213858043523937871141271184681725552492777335758218109341243695019003227251190327708362322491963181663752279764180397037926406532328598970986258415582401348880544375308496980164849744874246793627371774682446205374398526722408679737003063867758932768281220398066572675847226615001386341855200507899377748586894055092285213176457820613216359784865572579261936313643162726533799474910513115775321853321096560494839014000620736698621155389266754296505518306139947039794243407494016737552217351521128179897606001644455813763916677946635851959187224655667240788882449341788564125401518428755212764119219890738023341989770500638205193667326876058994781088985151704714201427570314317816588587281069965142765307219944508993995928576230394782098257136147675390238148942018339735291477066936728286844700266104444645767640845884459304421464124686264638684571188914827304810213040066940124889859538843075660155348287496225106949451926340177458226680688100364617488630902259608998716661058588066839198626143889531794521435988972716937137327331316764011396693215636863305588214319645499236097012119016240355656615895328865985819497445157973964941346940773753932063264705769293704703394972127708899882443885025033029048752710328994458328150271775963280814241974163398808292791437058674684501331032601228661480300961358562971861370918402252877181512453941539991908708711562745698989451240662812029637998956430347202474005544126624794591104952251366719753134228292873484408882505024305050300412489356781524498632378702844607236265087876078730399756981006509023773755436106967041255315324932591336522169931189831136656196022030169378270800308897409469037735603236830503254866035893051292991246151422786858598765992486977586866015664589832406318069997735745977203231382871521918192029210554109549254337528322562396634371178952045130733250178639492920459477037646099619567864188720116664432399794107406826580250424333463574566727046696678251290757585134919270876199257249658727671995030072600996268326534971417831036922803508455876201456004448905485910036579891679269663840226069722106324147950815875046362118569113719903048164999593401780201307714990097222624496253771380634808361609205572336539681070797190418992325075690621755621290695725203558128477016355619943453409063360362805355316285710871544298205118146610319288225964622411429324513329268996716666682042019335925661568844523296978671297527584439440064870500592031822675958705449715868457485555597890380591529772881270398935441855226260180323276902825312188687594048685915466331812940304317818255990419541062962455088501987035175680688046700680198122402561410883241877843580398299566529663841531690934170616621250188452707897454029190818403196338576031667340453597920971887325836788621227969994267892579591158236521144199290879395442177111081867478492002279877106267436018487474940811734101775707436162868668748086547417284175075711380103835018383076668414786967023213438159474644156564375522161001317032612933723339925604843640804497369785593048402852871254281023825545918014606221860257217537059187019343163702833396566649667358230127279580452325598729922487002483124261532652810387072293887061975017628295176431173768479364404896855418924298496377593437719015200380125567083726894437567823658593337800030558140805423692070405990554851993355588620344216742056344200553917317501186081702850129798229879282112518848538933562647086243621658038090647073106595425988055299824644591782793951461567097807738671235374396058611465201848402107444272831566341420225217080316069812188925716849788802505349414032761577168133542264619974881293959748745352521741666845692653242297491644080570449865352708475073679909478175753064378206480207299589936542515437418849740810019312093293438943027418314845314101811419462000605892652942011679324336991250846358292407535591417382011849462629629880585091334557373152002778791473207965111125691250438085877856711783039394868124025916813492193028423583022296720571335814578670602393846383085619529709007294206269828055210425408390641155330942111080250345495961249213871671424385347902954238256986957053618893887499972018374749198692501479328956496203356510300177606420568954302022687647746170427694477684668396468169289465856483586224742492443460174470988061146191670632377258907171796043855393392015265666233242718735227836191913337467486055109935271502005651827154566383380922927463999610866357480097682560983581201662384214660421259421855645409080007840760622344795874349364573288397366147737369651435725137008017006509477707614830577179032320150959078542959277540659943328685246469726130694364019896224398606058234501511223268181750792842605087520828205346124445100748712045579803943622626666582837139209879513217426605442798081462685076323251489361615234654327592541491007694577641439088605398155404258268094967407136610612368532994226451696544080832475481535307161498200289707884751247740183704921213816885370195692984653123083166068168586284135511702818840170267748018778717864086518268125337975983920056564228007678723148046466572092556737174953805434133330702795384033591640591964214428238721955136610234804584640833718518380144019789951379833910580411591258733217323761458961560312030477056646295782596187800640749748448116453234830092375713566439638493655900386866813047888700917642157939851478839445434489274697613072794598847261852300918453614453830318969347580890614866884963277226806820140801767645280495486428497232518209773270946130814554130944884420223456686600733573102996489646761284426885452317021952021275777364637111729034756176860738935692951259364010503068046270628536419613247116389412281609036614079419101573388765696338381734212446809671098222819816073338246368229246460808191766202296011939203390502140155187599648440173775880441887718948071210270299480182360221624062721542943099111749326469782571823551497394730492000071733183222199945307695479895872285458800252432814973783145442284218449169858792173628625312197106576770783755284105786800700132726922038629585339552382013641720312452126568125800498725462606533920827873490231344229010543910092578815675278041413415819598106385275482970431028110664432574791885359168650421659774897301393386212853124393681313781813240581707507281554173095234894849336549978376208237903709617902190272518700323224805869460451780527088635383881466228169112955599974471734669054749665525822500696525241807682690183582467071218604013796966456329763554479862838793340586333564309355504284730156759641174179887176553320171346065473783740497660712378297115625676500058372320523359397267850724234779571438243261173494826297883761013406782765847445554218897869410239010525958964795917377203517883210912394547127565574684141168278293302052743154046376647329049429341132230588822952331522683649729194684533189645395547012908762910785882142001483334571396117464662904683721811422404150028583506041909928365215179123750922727960582693106835765597768606915815441970374173180267350788192243212089256586251833075223641000249256076675974228355313283564041650291142184512791161170592226320992483011211083582434947390488848805334107578434811296008919625893181483645853611120410368636476287387270255203723175995060218322472293696317858211917016911109496746384449261846555424123263981894520370249227090178801113920344697416861007095145466709708624951411793652369261069401437460283504787139281908454548511865012640622383740803320444365193286141662881211048272265074392273754534784039885108749673015806417617005532136207460311896962296109344281712883826129270411742523119583964776275983457556390832486925073452518754191490023636545697462556749662165507213293566421375965261646150938446162304525547117584983741771608636272106529942303260242925061395033397565059991880793415020790197260443964859675192512917542957659939603725912772157756590423709237318719234246908978481341646635416808325572693235894672547747204680912027284608636053270138899869326545396698338475178357841469332548434992195641030748951940967746623486053111196499527186911131969274195504352309063938904717095111341832970715626074095481516701376898188368026937691308314490014629146217457173411666047893001310028588997535148721649267862570966753496651800291387078098029024058110615020967761518044308823113458348775843839429543967878664125739272679212436287256284454813231522917431609656550580803291344559973462552419616591937897460816190274199589712831367097624845660511423830477082978463168388485587552769012802592576568239460151319664776883312876181619360064944377025349558147582687223107092435675605369461040795450344038842029887503007767631858219520985996323327685623036687926613679107454851988493684573692581929502582417192307941751731310696894080405312861530745042959182233946128834888059015619291780209311344423465735593828067976289018122575635600342787802012723764861418162739797545850982385744924565052564679184617253064166991390492354704549577323909219291203945425070715143133593675201173690678874587508603867195342084869487854508216359689994759713688423529396398130339006725006188636152563361880477509792060641310236495390468263333602683580655800074285351088901391275036916684309983272177903099418784054680857026854205980843231159408020310969607354421400867549658611500271884261627944308727645595624034576284573859014687889242469167828780590250638331551732808494393826078437043398074581223191317731274127135708409029448713571836322669297189489192377111780885666048564483398872402932263638119160003401472188336214841861047791862131992270507312083142319923730225078502621068171182202759470828318345810438243152350529719642884075745419471571983109612421987521181247158723881365849806525837094661626442775343870114450818252913017033206883963783648476763264174272009463826832948811656682301546779011230254510425816236948187624708469367378197093114432022591523573234752978451330156521111198542919722662905924997339949701502122902654877527202162003971734237009499054780381394968316160443147713892360321802129433595159616103880622615982381012108706188092338294490686151332119844304819622488065918068169587196879990113131277829383519566006156776303234780848235074270601839279524012363143329733295653289219303692588042430178732810509816231060803062779340955869140941038599265138039151411801778870524756720597762140101517593463384807528240497354293811672128845811050412043546562500450028168746487575791953119816863791031109811492738370287873697998091501438725879414905382138351583446073483937882311260264293592048077563815699053929550447259826222423471694467918411426050774080045016785427467139949933469397703358807871001455384253746176418505390024137687247537504784951682126993141440576935546226443169589697264681433096720296543518503159063321836281979298852558655442961332048263584574338682109550108369922451657352335519464795156796536949878811493044198677720242664550710446170112756125972152078791613858843295420772782353745794862549432533127608566224078621599657018256234827367027663135173173910668965380675088195021608371750297797391618235422043378051286368676028734062948466425377246140553594515014849915094518764043874449129252509119996454397612536026310126738579958790396514456173568586026024932360762972052424326622217540397516542012885075083203298285139518365116789111244415351785323170596111729128277306389053700561106413223554533399940119944995485794433347288114746454665521330019789487938217010576194114027586457345346112094284040377739995873982515539399615053473971245171937261329803988712657145587577685056573002577691222177701539542396611418008788676328505774541343150595197553076243659010648918191675647701921262496914366693800575438484437410140950454686848501369332259437554731488484826126353496249116820699651954106117716594688091260754031842064125347784240848768996403191983481163646124742294308584580339488985918510056698574771497260813528454112299884060968961528414758464085185050849008034167088828161745591709310263399592230185311728363098205448272016488676894542638143396849745550981093274688257341396492842085697391864325989326699123406544375380522966460486855548692365309670272302161009377552305433670894359085467226551126618766432647235684007905686467518542510554850830940537118703511352089405615241160545495725091874973713350053893726841125101972626819792995550206597181569848223315032614773366593846568906030746607937915374288446159596627050764607281677590975319301650787263005354808800850716283783139700427964782363701782696274204950997839208113056527448479855771972328372991954355340029206098878804109578480653426410388530698359458400797637712643634488961273289912307049536613738249522840830324791597734869991637530830076116562489210171204136127295993456762328268202691389145396979872767767602386249886539639307845092135525835779281778001209708839364441204121969495661827617186194117821618625360544733779794951232085653451122124414791820648148198257946005366480175961670872277163843324972204537316257570484602183458235894143448288487458891915423994113482608531607455566911424693906335112029812841237747856722247468972454691450660527914141269105407198991162860048238765428524327650801341821819081775270000290590651528041732571601512715740025523825744419413153986674827884082851153815312177822815079312217968467135810503822715199359359142923453687639272839735614851709674358697711701998069017474975688557036318040740656470292266033336651957735515637809803496054564906386366554438602580246810929117339560901221824898515640845255155367324402607596858822767494312764803111258027044863909249572985448271013701130774957405986140129148732115220656173820468140188785003668346782163187552000531199202823034969286627479836957823611626266596023124086249585714857813252570220814490144852912774325564766218487238436649429866100980698511933373997360185722135193456548152209037512095279769651271289712556104660769906761766978696864017610570256139918840773051729960300196609714769852935965792040472053589108991882841916946843099139823748334692889837586444058133463047925923108122036279242620131835920864440733032136885191509124829373715937240415574339432236037426708834992884670518371924400432880502897200110281728028577655505342181755763773990808317258500447247970143931579031652698040770990406533190459109289351183797957039141685862613705913052883926268585630395201331657288148756018619126836196631609661577255376967572374297072700876887474233778172161778858307195163451841444392787697441850962885811228374322663769606044094385792476019513864462333103080597474467975958874924657281656277189335878340696056277076581068937404140595230952036258065730445912990371487765569438917780654291702299215848264391939796502213230052801472865259187020149748319149636175949808617785298258904878305583279345881192329750873114588581393298251455345844534916695755512923187833168503218776727768707977933299911476475045369457771120205209432240756689357349861533801069137656507095778464174890999542765211622086607252007436035791549040155327812025069470291311040544417512028019297311222602903083016420764176386391017073621050177572034385114584296516320485870592688022213773288539037572813688219758697889328073053268348500921989293243406396839885628395097012869093571876436055891972864898839624677207260374129684720922966847980401563004796268038592874286530789483665475964167913008668152203791009848078385377913961655407968966852631062082658531938384039164801028688252022400653484308054411283233498684126356106843347283703470347317429931852100536916574922810763166633149490159410483059946861523937267685218684258501163767386144570974922079446552766582100722994096069650925686874502757337151589197517220668214533073076222783269059029972866536625485279569388882303866561818207005056627197195401316881482241216837193161865290389690071171575799472944365518795976408286604810051073317829309742958543787011890635935389673880503411572482056419331250908965347470969539244979174174224557717948076655169933469342340848200538381697669733281897297792570786004414965148665957035241921179014344751498841332264818355735261251671706945810507605390217077840583475882894680161224186248877728713498021295491428716454910815722756732756093656731707145969314100140544401952929452919478833298393658068344113878431081021633042310616537021608780988050536735410551323894584351060527112601782168078347275157431349207925493242829998624095331751938964923919560882944613183982171034147074124695061996111313806381054137846880380355675856780092640445879359842042384119712804668536438530420327906137225312179065004746772803142743870016722730799439972833521822407412265872277598027439667531585769528933982181889866789733724190511766851078291894117896994771447923577701298129068849881058784414329288567788686903877797107770219626874978618607144977045633798172617344761986622800273617356867159139576206720448631526477743023459546167574535229405949666085666249537407771810733132222257053207881926416515678310434431444140009985497737948748159275096947665845728749901804156362945164472774859784610059304740213662574719196181173318301649321558021082080257653695002875249714955063695072059193397227448146905906389453151808076471605887239398415071255987189082840179872544714652908901965493861304601996717571603534934705094550411593406867409375845310233952278751292527552716710262602764900422757543159668304634590992306214930211115110742160913847052678101433646025649950188857374942747342815044083489716020340196980123507912532260567328403922672032647175056875793675678302767157376747287157597042185184711404221173113185297212213535347572499894282874161974032938727016967251575495002941889877375931434258401418305324510648363035183868282641935308241031456233290989734379465263026421121671860107053364560101408560749515805481136503460121843168968070729839189807970484144646553534896191023674837030550536290368903745706041077018444833579443929582594645986617685714621628680364457720932408531925195204283547658703320964735779069753031032488019498006792706243215294304946381088564545166522960717812207772466890269928267886989980811793825578687556361720814760620078523473379282296999292906173629310940832717818273107200208099308324155452453697701169098976513494892319951908082549486060803366039417890687492252979866916508732930912856088943663876222105888746173741046993539361785551222250430403989076034530180888001528585694312097459652787203497432001856323218998109395651773445968453462392398801108432716803800235274528049052905948347610341821623997382352500394610701811058437228631098767807870864461255059249708824208260695930596211422793014809740610122633972506568995879888420164100592918071036751000227534307884930104639899460351779545309747354304011570775549090183638209750879738457207789664433174390046856878030993435525759966346856996287800028099631364668817282629410254812449934655332129005191099287474598150080546612708793804333960727786059924908816240570316014295252188489911639553682750676547114205217803190849668413222386951785812482794323114600022991160811197228035600031487604564064477639274274105077405043275560072876723604374810893250350035125221641240849145598847270545525416101943255439604105498069733675993843855736689967321862559801323660245352598761020853118667755028943186356184751761033109015451804570264850562412710901624919420963616427665625694176474659691096416792851374059610225529319199065404754647003095974224901795075437037194120082194471307164997039954346590091163878121080877875984567035242340068063236656529532916977637518282654149662619310026715504310743642954484445089717795181107166200580327030856384101780662860891301680671072395531587475365855842001432400876275406875328545657333715265456868652012759672278449396025036272940232437003602478412999176187751280375147274753652726531830113991375301696872821499453776394572207661290406384832211293126361213088532445057703495600666165236542260808306145475927186632206246558321032967398627896286325960976150555000309170461933584870507474825075316051074296901642070839491541653386788074560428211339731361909149583679737255534003044278579352207743324110305563372362686037895832469857374087118744793338385358767550724037753464531604728945598635203725710717085410886104586984784830783765601719943874431457731823451827491400939245980910746765312207149099242802851540081245946780422092961865053207948312273046111756708809057776081434415972469996158458860455958023349836682361705759041536724349324247207729636714471882266574833603811442413968992666641099546469095131682499997932401096160093177000323080756142145368280472080160143066277662929255668922168399107316285424896270814831899222659534519595420567510512333941598529071002291491904333003400615300476368736297202828385102497372977281303601858025259629468505097525822694085345590537250676072802807222054890929238879917481786290133573242511841902098078791507353128905818637553477926003892683953386187261283960458853773490132825743516300052570344175312772988377913919407879587006726729046126421374242893161562922696800615682397893522651974351439095220086640007365734677074416446600265548564970332210302094563271262840870183493620946829687490720820806087762829993186809455360803538252935265110965938467999116496691934536653473452199273022210810478531685685852026934808385621047900972295493720588277406757551805367727883458060430677279353379173381072414948331640939540372847021668656990689101677465880421175044968716228097685797428607604766803979473233609473084312772306430793764966496276398201740418633295546949813221364596235150671939219788729081048022918371073159558683052191426685068911457623856300195013185372996253048336872598174271222784468690510079247796404040924831023766129325954581830901185869947299904739875512076932010924830521629956907851710290274908472856198541395228352851472663839914458186743071432088533313507905427276555511829280750441225410867127876659466192644916635687607097520924007781434421047390606579791688531242490588977566372633440692450836745222759652298004936223589425796968495405699973999929894742830155725813664082904722132254807826350314871587471557738393699509001061573906564417315001371259774579970202967817930856675373354416363457398802031193604991662336380586413223458310676298471274976791886424302100580162837397485883852001415359538657885344384677906957017888317026458688302937138823750849879909491757878924022188788050453641771008084270531734469354162750093157077083218608719694858657672863089744913874667845152658290208846625765763773529110397355121955163287562104244807731993326465553032075205039478392280127721253134390955050654832828888905233195729646295995639251637373999843432898517176301621913426281915344776927679784842294679856756148664803659286254035019202926861709276245225735356472336785820150838255337708982829696564537345770757248769916230829079360584437345184028479130203388390987836185578426816667404300962401152053097405075525596666379127793859816716569417216274188318302858093265570743069179054912754303911984796933938581792914947701163660211498022051580858376356227463533341504406796329977607090042452668801431431620620059278518758329335247605984367660192406508077084265538295341888626688757233870617438421401885801518548787995648731861589812514665220784828009140834102825875792029179774428566489604455612956038008356567734255991362976813800700271236040029488616385384097586373657114510891063391016980477098932587145635042468261277666968047664484265206653567856313241325939795942345461332112816526172616155257838116875994667294620224397575554393458614900472492324544681345850789468898109341738572642561040772699151537048776873319349695943639344854541515421566168978647639909217147474434390388817314450195873833106312552379609019882963397199915890735543301837832255061514389147938356914688719649618193583803665787558785404918071202847131756561437337505458631551267789549754042642563755726396253295659720866574731444193300978244263938787916663187959874798274154848893206205856120927074283722108992141273731678350299830217165662333351632531601527274187490183274172409240813503443278881437475918090067125538053462249192783291005805762749615095576298204304663930589761114529644679334746029553514879094667405553356393025052658773796153335114997401536400978563002268974204935374302419055818733322994026638865713189076438846691362786123542294797288099359507758009612070508033295638761711185911797765939386283656303092446812129261853276065244267536451727192218680436402906803095411508116980904487638947820242951663980565268502210201443739278756041216705119399952130071119195376102109685376106444688010287991541913596814246453434774982466830377743411821061617684870882898578649247466509114964117621036559877778695237241380618236845296102869085350883886484759488260145916449711751087144230283768221831151764990993566307637528530514704060318846637719552044820997630146091409534650996402608157907552983331278389529870687631750650185036560785724524968396881261786535951655635914722266630222822401045766870884658194591825009299250150580879742201639837454641854137186676451917466907171135609840237300022949628229369581743807340543690701464123276840913938927144892093450170830901372631484578185036631929928485973138257933217571850281246899911917522570464629281320942315957631144191576892537894610409104427028794603137289470601608870783743322368976019801992601088757752023642705940161697993667150047225208429380353763577036125956479194753559495001610853775319289688544615529971532856021467081115376157708066250141766357075908836173539475018515059711924727768516043371036512225390961078834169263245867143787554293585451997274275706622083844582006510991982040011405984956362059731979981536032178919627519554819982552906617537879982475818618239243180281829784919254983877552566850579687822483646693092544870008181085523496096655559176473152811138672263882848550146529443226056357358146296828273554618196832052725327859123059738651343164310079463421296615449878646279589946900047128729412947087497039643070106083224115254798511718021689172082613075934349373820019559326683233999732890487481600921507170659824955272003514279541758158201101387883078048329116092842935540089726921991834591073717720661426281272266356370840260973073041774458830515234897634312101468785496883988524311595851042205080194110891111675800242283047911486885836848199564890631491120533854223267630936524251621519754449023361645534708851957380652932635160998732541665373248832691800309553518249819649270363829354497064383859719382983864918180946466427564996219023861733277411511176960724196981070146201781873457645520552826368085394658276572234971210896160198910469242983439055076748861699225954260037210056152843083733184383225435962010255498904434229220663245689486539157443621256536632091006557704555992390532384951631343162486418609146193375856630013208838226679172291133170942542296290187817116956236262985948287337501630322877329933408173841579140819900322851662303595404137969828640503045215214040210853686021316555683998177023190740055997337577912682798413757587425795332685342523911698476867134270265159598066543490078464750152247110887748755224677752696120390825931085965977770522365445558322920346001878382670549819276130746030236913685585026251027887716441113852150387346025921549110839663549068762008135613804101316431241326167697196528570612553133190016107935336754265739411422128724374294832273525960183746881398481487465713837001018849667766850429078546896883110857373241828093517115226810844725901386038229805057958271360456799008871938007358739152596992841869200951929723667643915683895516663838604863314554199661129874211472746635497449839421126113566627499285891860610668905905424491461142496909481592264669469916745087990867102981688883261338138856773393473569306180568967034999842114025822855909104366839138566415027890779510570740220009837639721009487480674507004883166838819712857342104230811942019182267089607966905057201341302023900034361596008805503642368385321587002373763222427971522070758306111476821967260370872788919384471305562021410193545288776892463425171353019660956571954249682649160552484289814770571727488296717795417346142346324573431036841408580749326327234621329117993027726838377673374997296390391066596028629657834248283083495631443362579001332163106832727236075358444448891202201608615325137846487808720939869597623769106225526351603979447559455079063196086850335129265134906599111584386715808482000332113039276188995805939003434146961504961973680895387738205357606937970324524176698986203381542655434101355801930532398178829659681737047680524098763687895490900755123262226226635788854648638230494836754841567197677210933545050324384173413273956261949878445971558002021323152948712638565164485722761933033613405487090619142075894365124197305700824561373954234626158142512416117235973013680812394437494113793862005912322963081975286207969247849003504288256735916451840352793315926690531379102037572739881187337260977259944643402754506511422458817516902604999389572081973789489234826359029796998177704929368560098519379149335871009893977885099047940339914952216467348242686261882014222293512441409457183801414620111724324661528394180479388851384065160859569371256996275115954371195087035548364254945604797527537618713117522427984203894053417913708873140520158535901789029510517175308747423322550191815067645991096355722013659673611788297320542335840464065982896978933832081135909562680818344065658933161369507547209607931981839210016481386150504648889944814522738460258466501896497802469087069143069267956725506943297750018226288554449638031938127350493027831395233126824590507971475115674017355099730632089431729670948615117257813649960828467727923518679374395520717586043369799140341491990671491607165910767050354764117837246833174771941477833534922787296636139925853940026172111589219964216997778075866979312495230123249428657403809051875451433670725034868587595122058920290742891639433869903989989810765343523438274668769035427370817095060549619417823392506067925353757498878758576570352435523563551074621090497101405792917631599679184460916484001733803152779450018178932298437340680180943799205670849882723108378675221528091584820628047060112931107097256163014763190705432234318979673676914735307025206356382291394234945882706577476401295112108666063811789564506152130123529446000718809886865901253326395967203436120406243883835091265191909397035523451763314881364119965728757975273628528969290143162938937133001034443828386675149624254246988266949788783246711926825526526679167821542996426688573530182079198469673892700098304981951339166872260685807909917245460130318024908441941975589466383823336908598732256003119111779039281935774845007237280671439091002276750874515935320187376844231118136135706061756907768336366647516544009420341652270092639812989069558423409241593189020996036095225189352037414472205222802261720430331694506141815694817757324779282526424241284657371837178425645500531809091805805223018528699277486077994417350253310582320852704292356196483786377119452353006747617219225544800593317135464409192694297946729182747450372088127989150211413390072821531321213091178381175630140343819099497810133078727247242834036657995850664097143202003117411716469437961592886299486338687794137434373925732614653125553946357351363758705720454546927465203421395017731036928055134887381457603392394720366089856691659368186670916617909962732431259465737918354043603357014630557994384382914812508496008789596382997705931559883392755818301994359164097415546279883651182381512939315375805574438196979703565123564203778226595625895697221160169267824801560341842537124679080244376090539079971588653623435090048802223542076608305010615676915495519924918171352876147069538211334736795085667804948840720545802735785628405215195130986562735212960351170600743862542956418508389190384809966806625243095095525046004925074691208044694430505461775759177434318775730259473288624070991741006117652791884017411894965780470162147556180731491476870455149518196383252243789680715601893126533820483638241898710996897246819060367691975612500767016481367912017776347981300034980226259932037293882557108030030994513137100782198310903517875418456448640839150042816782797584329784245241643195112649079076453885368484208905281215781276063703488730493591647367151654480476944991735022739359287410120869890741780474017888518386678281361408704336099328403646926437016146118607541767173137441502032425337494275224088122805386569981959256186519886612467849527572474095247127341035811708607651957214875977446847877988184430611432294296967353914968750014765254949055654535682417000417573196558603379136761214501795819545372289919775807115072255487529674478458768480819671692465178667028232879240271654141616772207127348077653046967613460594653609773446206896484479235063404503707778171590182322635949671670885310858045341774859707244219507486435770300121642844708493638615381789889454640582421000856493347313611616291042904209141806080778101841633052937467033938150990068122280039912175688290667657066043270969154530909801533122409068699559956986767021496644290434266171126756270244336281686254799091293426434166243820005473372532631221147024014259718188169508351672728413524135411386994948535074016948460687207503043806645568279827093782509581414705678337952675840532476044847298551393622076477541766087417106564366292698744024199699564342926714798804394682578676324466256367637489006957080455613587640037527556629227765366786996674451052170747014659887227651687569167513304942722103824492404795956860053814311458830969781046527036430443442831305019351896996395094232342417620513577772941499303360570068065648517857825251963293405928518568272544443048963312176512055281675172664326738183148635894683153519420743279385653201327393845872518620480433624159293677158704551205274434017559297732221210961494908585204482745491984177330328397069168407618111533514782594510364491280046447696558643781798166279537658001118070519851662358752348464379998069257855000621806347591338469708619156238146022176817419686073505489434199521473568272663481747194821680897451475507079698791995151367365318846044581340192360027004579601690715285918616266960065452835712301430458857383361811784077121708947995903987600632889621576583172989715797726937888773266247395487468950008859724500182413277463109970473481881699512090589788758356069327948732507654898382272674868932752854785054207296455054915867254549917948462677535774878830339677933229945001108292201107006807667226569152887822585933730064103070643974950446740149565203496993925570137447688666130277126357392063971013884589592786144832102985743678636905303929626545491625820780556555408441843904739150681892011159467958786284497301771574477600709218183690086587182490592183626951345878644974799233223716624158196864132074205401661318455589809511904526944491975985782919167675048982785961390896602413737896709559064907055065932548596842305794512664915080903849713065761451439074330113285219080689044204162238389155887935885347109830019720502605121349597470868036276752776551715645607086756112027362500511739085358173161132872999789089425149071028237350389446239365510114495792730469773631675199933759128778772015952454543311816167764286070147123598164636044607827375876229399417157909956387865200284776333583201056868744172874576816298180953730774692365654292190700597254777252130579462478225498835037070384991967464705604367063154918591583548247495680972792067234627675906322037799897214867141339301567813945855965256707780440213569115593047500814019240620411414876919585357042729276761852180685779582103057019059119594360551574857229950313819397319056159731689426333820378162006229527866536607405063988387521321309115001130001576044012062807415786701528424902160677234415782601606727744932505169026389109281723690380414528539923111990901019507861892408689249558808181215788229101528286592266415369799019740770339873328648113089854516497520890383819498641961179951052208673308877491809901757857219081067934311886627495652244060530907521820554062471099012736925188748421390996516794685894961250362679283808797468276512925400156021606263862339815758928224383293142421334038993744866277235307310108926350068251675893323945795051649819622298797073164609625453132889751606154666569985490005084994020238008562087631354847299597338837146210085339478893969659524334921608401882398004700955356512242272717124901161956148626283382565311670791401814208822775626658254776454675877132580297463898216399060823277236944143570973217130607185711212549065471794968210784650019242130770238574261940084357614849746315552020451872627087973837168521406730891471206424579547608664702411185364402975222545872944973709432875190978496002546523093220753118202242717703669521392296371025706323159839834285109810612955384669020147283451013090488680585512626269166597384142090878371950958377654268431475471075474671886614636199536590978355965247617568676486832851708208721239294625575717916434076735779084832255715400714208486627588065893219426237963172295042396935166081073899632241896841479269867726363982635331034616044218501240106151614138801418874129834439141918135164078251266957321333841493155161468884433772807891056231051355700094745362536564491677985777992677011924072778856420476582030528471216971130657910402714422580559537904320938827034238943009434547476277390163869833188140983007446156840708843689543254644028450833706108987972183732014288003798272297045665803490634760083951860650141573388983723107273666457446335368045426862421277979128238120722845498161361661959578735036632455911415560106939937730312079460968635778066428030170059284583466858747833036241107050603905844594899769760867179103479296229426502275018052756637817267152833393780741998973408690650071477236420991248448830583814323053192568129039613378738199760783803771018274239405040710183014875765719487634534192016961000150690831273159199214444154784724223998462821669334983040069212489965844908061442557617490158713028309440841670185599194437392306637006274306135185824711325324987965331502103945248892624608081121358705521891868494512329613544918458931152509649589581940503698248592881449117179420174891110499972806371042364011305172979050489793676010991991103513607301721270898491198150546423095716846187515540048209897640968440183095383286878564571326373707640876696497469123132306832604033533791592118621989817990323241318091670455540210442049823330675919408121500583013923026019131428470578181351221558899453217108473727014484837509661729166540115971534123871960070511755146999499854710320028795395056705528939064125911896493959582277757937871817203238900408676471221960181260701597893894625452856923310397607426417546955905533278587397235153565014772855729103011633044629156420176650683303050626098463433681850954920621527287605670111120376689491001067778055960121035708492122322062551391717925011194868974236225762115029500485474954855508090566754046645599887503587332769249043541641472904189024758709634799541067693659594395699003614182530190031784106886330308818991585387027502613405591611958924126021079317250513233297237249035694602635709421959664469337171612314429144740331315672517908885978791419454094626532539095135474964934600309809859404627737459092015957798938355902179899747837284602284032745954092819281528314997504195804845534013555291850336860433063886523789238880607500997353815602679670256983122269550546440431000740420745117123963923023682571815564010824879642429911500055830476143793117509182629012243469671279992875888372375401030209001564585709033458334851427229281651665114326622562659536130342812507547638330066642436231113953883400493885579713161226016554304365231638442079870974425898604558530624412011105216183231969615764620878969181922209268344751846237175574373527796759994599049960630668366444761293612856290456556558797334707852393665502905284904497160675083537275423207543429082931839592920682268810910574598364617224674199614499507413965664166211292426468431369899696601727528703759286932838389968702809810255542950193436954012105958046577394362694661518535695793760530755398176157560415456878410638113982102913306328167067291744690127342580060689107307670790549491189093006232316962691972248054018178517143236847375014419043736923468067384882638248716305850204130653317089967575633750759913270134022462389396281616948537878550312461536371238550598003131743024060333759073565567015005054475861271156054697833358564267499994954756997109128916921811938272839452419613892848581683661005723921254519270358823594703199233136318056301031927227158105788177332666528009531405579105305049572973030963561936272060332738690345853794084764786612973797080070770962799889789469654312939898541587606959100291216500189355856107872091652129599753758647188495098629119842489236316684495762829805302626834735431995644253887600540456652476629077907902160862772148012617246333442055680527259386279958116639579146528320353261791353460413591798015892814840990727713612844102014158209425870189348754604935725354438426166486227812448945835482112748600774801659647806235731546705622562170029219190841073497637625744154438717317650882661225769526083266586605766834556178581632404438058936029991151441162724821844841361084021509449495197822987880758060620432343208733250382858759069803720594622916938991262028091786171828788123930902282524537741107575059425862747734887740110228162053111391734244522746110389465689706928089484494299293592983188634156208814765136820238576264245195072341665720956144622736252882765288123385709467796306794191111692714187867631791493409373587209949659740897134517652383905609912191890603900601445691557237859812124390296432889458351054128761103447111869202235145700253960383802202192326498459369501931123351531260997911176581136724400069179709620368601779420951835527384077587765837274706457069211053449618233955577264153691798408025683474986022280894024853919884723230407357550250589727921756721024540840984348616023722809798217253390808943053804349138178081064982272807058748480557718597788891527588292244484101523621037308089924564619413793586927656218123872794052911478664860029925347269084369342526590871488073969665738090233036175387374393177259484807564181891285230374815876268665413396159812269876951345609079665909907201886920947971312977523690359119885503194190364755740665459731883088410730866870907493530197529585463120722482960730472334410220147713034985165591763942773675348611823148597285041201795719055555889024709495669446418763882375621794779278959585348865006155808807754931464948125586045612380066054731131098957557818861541878117503975167123282645979430006286167105177879865094880350853768993536243030336324389356230793656366989572143507048902782905565927436616031263779056421811760710764307354011139801010045586996977205208551709439806613402068267448326871655034017106898636447721065438044202788995187419156445950624065535240366335018325349543586029002801169959407814004890628181823131800776747256476046698184961982405368539679568765178308549036231302321270151659261020014524445264729850343102941076792354282326257305957949813308884579629785760657775984089089126921391400451291841516944087454961282959751729443883985435956012768954716995635342812772960218343574632337455248551239365882477010974171867670970141208910106493716295271889463578914595022849799608203436744001036462238815790916564614891142885017871759643316700293911742644283541919112886375223678244337189280296865543363258187781980532538025920056921523896339276199347397909948206472343164995957331147586883943660453260168718585107936390212712739358763632104703758926295866701864244797431502423800904495740676558045814405418673780176659600464544690767806337654760269116628996707618112305617621735117918338744387217030231285929938184457376758759970092491238281770728978843165560764229015226652527693433429820095648302440489828453854790138373127537032403941630631025131876416730177957798455272757045756440858463464047768970377722553040087743874849764035160089459888681541122680752673256412747768689937673728048862675902494523470564186288959109353792520614200098492418003349684421555529159513103545612723599412821069036295992554208058184688910435700588488196693003734978807312431038163702543841104274756908479479374993391283489907586055758683502283620011712680264254349351363213553510430330277118119624997952270754918960039288523257436123207617708688480498650366985564572179677207880302584792503030414734951642314127903803058513746494240174289193725772842059038631838931486638339387308044094525622479551105180365486728690627715804343195921949690605921520341606562861769194017013851752092159909141845422621781713370879868326123859543353837193967247241230346019636348428002767758785574544709030374071764094325228077297149274227477804752717645811201640244425083453724522461870821310756233689586062373256712747171335976278204976401078456602768963765557504775306910826959481574429436006258073486107272637652733733524908328166035877835244215878896764971679911188789624504665166125481740383241158044141130904250433241220607637974250021069391688998336362507437742293823039160734439615746649653186485502165889501779708287644486099574557640403531396153920605539061290277423819805879112734202167610776336144892923968902360205414398562031696074581927174668359986341869653841461729404317588731011991558299552824511503629047245169560413378594915305043950318256260689182957933688366794550306393585922615846343542640209769458877416570756934544841583486254261396793249920532021549850220370808915176505854647145107535557628661607629587150127797072659258453817197462714820419882984499442316229056605895466294150980080542459590456366914596286832246536755449660827062886271580681570733498906567380042970268067573031087029367407119410212476272554390437792547767041126012200698282650395486797349096892450803435611468478507690852775683592986714840065020715777740752428674343849935414286155483184743002121435095912574430224702767893874147899058877403452743044525550855916413521204091969508015725381562310490584222784833375592266565354228341311327289841709080907462900994638734833811324922724239615374856664559142910348136143641569894942502020280162937510456219081851364567522980999044490526969765163019178521822249701281880188195988522065631996743788734347179143153682434261412745086835144654103173854636007646694335042311285878421726915957638439469845705336915030830213888924659605777160347939940067084380745278632176779671073711728506026988424442290937508150076093647248168379811967007918892942657198380217739133237566766371850227059808851913092502290941634837325958956350758217173938604289915093950303702598214396958027898975312548644692417039573296970656155131537333284162488505402603455261764283776127989221102063857794758859355099416782586516154629873584348425585923928896046038928122930946441626262488023409760655240003206979704375216586175207530917591555765607041216053183144422821373670020434899555934103473238790757346031365365983093550600305554188763098187940004415202738977506499968763995264006131250338235677538559968855645065389303826078326799544483550491454918531657413051956633555530458085884027779876497067379386737367126296499888897846898650656000213146938096492029408324722425150930506740229006334935743529825499968235542978812229474533673052472391277906032263506376781512575222151888104911867151550755321540863076218777263553877795037116603909811841350811714751427798287009168580823126952270508513574101508877511178669304936392490521672283905520625341408735912928550298402473450196730603659896388530562602196134558793931225780519151969631453784537658773082484200774831772872308404991630596852354316827473288929873409838502410541765150551666365679020880820744356453847864393968743661650967454656389340725145792216285318029304453540291717651226090877230964464162798112251621340183566940949933989321655319190170016443040204324178394622639450520789311669770349162196825139732778940274594141900901066174672554225365709712929735747212825230217952989218605480164210506370032000745450517505609122473460878494049932097405871107813086630052707776210444761987721516990926984146180573588299051834556268773931756298824196342567825680072566976806658658382591842458549616835162601926607735124328118481903233153752627957064232905281294665387393615503071563279715620664955993061826316870092043275024590296643888524946844509047325337591621260908324598709437775024904540530018205861167014960379648231943097236455135138313825866862886880177329933807230305862899470718178378017691387970775577331521813607106491817533166122985989953397785001479572226392139219403240182330559665167232248990456864164819412252241481550260758195480970933037747887600365486271796797332094940165923415790658453706861034677976535446119358328299845404902366468784025620366427758065923602545448172976627455546781682285759411393718959688677174894905726061445627120764614800349463226005771507771291117560021448104248231737880946373002405562956961998975048318840758824272127007804938095371898590554467826742282923611162786757565269130971201841681034383675097158045978397529205070098766282666632349434477455865629782467091768201618366504465796881465501078193778577866020228432191698940626065980591774196777542247503410713773524558138743786045266360330128388007231668281593530789612911977844203532965505460006355180572863265773970379284519749937791263157169478158366042716192477023284579532792335988592118531938911599709819179571720683207936683793025868712969451483519358730461898426049393687059116354875598643632435355054471465240462553762154270175456396529184191192915355652375308588959282140036247407983769913123142769397501389032931373299718974424121865411497916713896141999282744694170778961867100958142235909117714069467187813899576271654365114309424402354838164452961625988798428817832054484458693963046451852202373648409448178475223062763948728206309941043748521623893776288701969014895018504148339765124876572760890847495823373191515214879912190934896657975800607859073724822712305195079293866169046139617202553279742990068608743323800826430010106282934283531646296425724417016264484216750894253190493541526908236362887649339886094227384481816852261537946362618492904270449954349718038576012003848994668982355398045339526702573730494305774421853631766105134922837171878304857917987683355238346200160534420811802988949569361539620422747396177262134279787576911514500482745165832963265745784868574964692176675503644096150620410237162033696424729857305628868253971347620032302099638809146448377363805887602595868947154918145858142416882151309719734655457112657723163918076467014040758617585684785585593707852631872295928214540398295960915807701366060471016138160437957287725069935486713054334437239229841476132941870345527729076294459336088613158064840267843802885639293858789370686063676861359459149403756344891748574901666456756521090703790480704017763915395308932687325000262904477363545553203553706113837860858728974565314560256430985343804202715923870528274972833451832224803685385992984473340136054116577675295164468018373931410913437748779910660585646979213823783590066653986165503254924220473279831167639486822985902958302341155195656309908443434859143433832959725818184810850607427870892913087058620526992933233874316839515721729812377426758076223607588157826130099489745230826614453121685769916411751736339144720867872168238964234775130988527435583845075228475822894702770817942605878933500189231572577081022152154253453988934172422168858622791668844131994445806537270192675229018651648372931003666709608179388719050536085122215370904342316415450035115071589309777535030777645681558370834991549619329513766374407219709583299521710784846808059724253437865522828692623132493431210337432103819013351242684414198371028041842469229772929483000116459111530997070135555147012594993058405031365557940068412861815165840700086402069631134529268171839904982859384167822695969649033473465911210500374587620518791214981895147255948665432191713476696251874131692226213703569775923389883634796942338495763330390474249883567878652610144736193564730517744237019329624788920810603213459932602562783751915502316659112080241044421175814082745429815383420573698219809275759889632349207389872732253587055821595552669122903775400272116901283183007908552503291051509860270672123093685170951997825610619410961233678283041637471493800386100769679155041844149046478178868214843998021815366093344529454103369562224319111054022247839471601618410573529929722013790641439629529588444609049878672339739405824507192801805938796608918554602145459992239048688427542568571855018112422699621634511773723796144963513124015329442981048857593594189215507521406779421998077224856517094752250431291945245231215734235496012179881717423893029657342218156088574586607225659902015980532829173369817685772377835260322005036277204047364715656058579278138686048361653595218246652265667876479037909191564688757257950689978083583084133364045498469814747060468983362889070354027821711480719748674100060829327336745567373969876042318851629982924194590893337869576091315302032979445690818717438378682958880977626672958606206751755651188404889334711173823186344397207956766677241039812547406108954234927638935257124818696919965193053118880240382488452243484994962224568339448598181787257970611269514423838588998741903035145001826711106069590000078838514591277224398899459516026225897292135645465544334201455699412337096286553286641606949265939848806475444353295098747215727279369765185526356580288589407370044942558735576475367338029673692658847109218057261530907139699593850338563523506259488682881532935670823782919978247788489978502936826364662282553697159255702176696212414985012566516748338290083354020805322706866645645841934390608952949270446684825546771577777513029420282753158869448448691917699031463968041597941084051815332101309763788142569898852626985813093936388029178308410534274155153495740378527629943799751419295317878307179717601572416847268972964473806131898181814596033690806280653541910849882030093427243988995496093377319481131528958446247209080762602536503172905382788195024184780461570619536246535147848966018185499966899102296479609048362437248303925604334444560032196744924319891940070746219341921773318815048677099979926449277552086442086614769260846258396274904577960914965340541099887777983302285846484854384709276243454176738632334280802297211454049798082379765635019103635759782777977273629835424591706635574075555826874844573721972380359092691885680255554209844583207864350095906452456048439069062881648239317269777478215955500527876091062410659377363148460598508384535116294778481962982120018609325628365725121522978964265552243588038536495561204991583062004253937883295432384777697562029989450874758229857042169167865240172150730706112079536461857716410751371207362605474892066439905783926434416414177762831385204319734255816265281680730872308984358509119874066799563289120256630730137082440190523662878077024043659678471921190475607045569091140989591016874401178795383101981822493394164469520779404551088534289988927460168834463837866090457686617102362556528583521595702926845789241425751216432151978950585189467889407053785191713894697240930049120338245848395259609690498085865358738752655542385482496180423258628444663085112957500774750248544018321570406382968585828436381654157169270974869176493333713677654885008311634388048681251551226380715273588078899088907659076669240784861610655232117150045597152219148183021617767127145352521006571557359433398541067931112305170273071789664119724307386489835785405420181841355688528198794712416639901759795826188953254926400710047161521596198782589246721039043792658782322320938941048949373745059205075192741166237795785517346774486500737529732520948856896116343326267279181540293217253707579050112857596125731663326200088012968823269374727752848656242618387646119512843388601470913986344501458478610981190343088452974008612032443300796376726205388076803625848268127475380627170364690715617528223459837657036526037117423926128944797800125667091189646585558172993936249781089840373094328708178961488561946328926391190277063443298318884327706226458095078232118242885461767605571002693756469128281819204292983092638290282731737176958467930425008364911027773087561311758597705167953251299410924910689935860695460266236439690842195326756584473285894825055429787711228047531857230914418454093703789020561570015837366318441700441971212390112693951431478118514853132129933102497499124876908762336261491935912392764561988338911492263491565333636020110887653373620354665170017376039190838566901807929568992759167915503831632140546686791326222340886976517722929906645826969696763023009828469160828573885807193557955474038539644886926421279549893303684150273933006893267352886302853302922536107532952338855253146504265820922389333202942390358657138201336631144211489608140968837067987060580570694673535482132035946540158837509748413193121603233191674706196395097861934713687862375800368549628411663470963825991028232575903448702852904178310134156569626562421854827125290082683297265255678049312360564764646840827729707394999563720745101426407140443026362344259046295086699741483742670995255695166931092221414615066809367666641020971931662285531058674443501676573009064146797894694227534409435153874587161856889005204541793476997166096519848973403356005218664662760511474961909549534144419983468912632489885993245814209675461367904603832424664209972499740045919288976954503914448793377893374478868394083638584980329351030108818050447451123357127956092209745882124744353586109762756285917656992901889403636140814077108312086269788687937837341280918410630418656315873025340673590866160431987102600652175985028539872061500026629644975102141091665593557781967006497939821199310080484480358926422095541066753157951696990878415986084094926939470313343624343075769184243445245877480605024030172156162284777799366781701575887808368294708034989863931960354694753770164649871389260612136475594556795915103559338330416576201873036114607029570079676199606946550989881777081506545830925397524055415918777642463005298952553285706485903797179273105858218959961794521598003767919686626498127879992142048508541605099889526014374454868895054565028977736998573071875868120238635575681898493318616381641420310679095449827912797932017331370530257685616841384691168115887659683150728437344461545478854692482586828183676915492746591467484602470837106393740614925716608645289956315618939440339984311532540800462144026112928797132193989147157189924811673633878324430272649611617811289179321924677625689341549404962205129136878783156025639564646037723160831607173058924284902772134395546921433819095024854150892564250562737320804333847240624652830815762021343068199261903386258375010501990941738377932582212484834400703076283025424616536498057259296104646464835680376931422557135651879206181463404834458578830613639299784600675484949315056145940193231614621814185925944797443282401622848113360074502000991513066368534877458211302634492634246979116405416746117212293927218143611864788592618913452807185740736122773569167408158456811778893579051537377817508702265322176526922770551271640133656484380523508157949873618673065390707454223471338862317702873702663868745587862779901219819142735349419744062391870639844616283649910172270893674071811371475491911958435557350900190913019804265552135741133244031136100657833445014164786382903580050361924506381625861491679772302348509985956680744576871413922956849854791329617148974195465998374021606814742755749354536224938123010874063164760058900271473740165128953273791490309711283945344452877916436261013561146712428107862066838434568244458664578571401170717032439872925350263264329917477632082563283319295382549685719208435784497180120158192262572856873774136361680265783306374597086902444501990028798807091716487203715634651388789975323430245164392063065684005513460979221748624010190318189743258452304321345186890249379817514438776724916147018855549110814815819283179792424410084586501690246239078535941499037492551497709237582518743153128423157737620929595222008980388155160106784436096435766904757418122928122294084462798750363869306556750177335521048808086579992748458178575738477260178312743298280628804285132499222005549144305970149180242278029920448968430690780772469598389406661925381194332862882798659934155792742794296435810629738270590178472473345681374590843549150259577194079573123202581732769031534571015784954412960730345402462137440521264661567994415577482490411106426068475412317022652341021843530471180760681027629106512810960505799194233673250578919025449834563532091507528639498242669227213231214228226456730103230567167252534066468592107563691193580332405932073590316516790170905308072005675436892444695234748364288427304516011250670806948101985610688633609873595930710353078114133481512012329388996785987828726008355741676543636105249568151462209621070904138699927248347086255009338241254573786975635481043074804749256938196728190353481882872598611879366509067024897335370768852191146927356777842293478237847804314422982972244859084653529846944004274565321378166461204322775146143288823716520962791826658514960447698788267594910322222200380421217902540177376334734562796864580289176117006396570085189994307990746680473173747408039372459441129398936448402706002718028176639319233167449786224035280546009544056875067642538296622312553654878250089930795746278565286641111391699572237604732343119172983264024225090773787891958708759116347351417044341626572239304065921205868913817176960821415525984263533002879623377162433913489211363331146670238255697384975715542754474672861412263580448314759172179557444512698667465513761617219861042463402626445668885045837201144370094523157178797799916287437140653221682192418357833079935145461011314329126896425328170292424721630546598052253312286414696005205508670814578492609084697523877969683954623497933323073695381451670040161286260408966134274402863834002338445750128557153644356811301842750546044495749451256111005532609214802796976480073355692236953891905376245658362407893940217354302947521187393122805421271000482417321322732827701507594595911678263914032466799864450061035807293868456456742367077383051582585284398482941157088762701867993502497662075439216509888416337178986424682988822042171281242295643807116663360116796256298655072863911797250730717390875825354956224600975845702248649348728267609559156377297891660535488952213644304652102008625272452849185344390045146390903304968557714797334606604054259554133983370139172939032806661157470452114207036113161107056292542233254103905684670449392854904744634554781876986164098384602112977739371788436091919640887658371997504313423701700360587862681250333545006678612140034559021420804190188983173045792707202514996386993132373778484656202887486876954950541840592384423591103406743465727747988343246483407197554275659300729407972287921842285487324124790645742246464558069439596931965779838724563397682667821080020732436267253600966376915072630355711091199357378284210391161593168630268135984339460582043416485547879789875476380663226255603395211841115883309489100626599240829168753396985388816891143391226035946727205805125648521706101431723721863141472164120520142723126388708563054705011309332872685267826057824968938004029118089224829518291867259581808330783334915330304819367419866128683599765200612123741366693081733552990161106170296937952127685120665493356776332752780515327599971183126367862543796084562272929395670466538888556267631493577010883069621736627107256975819213099198241284619187057131165481686216152327288449631639401581074780236208905818926483383160274382471648348319903940816418818580039605584656016766383700864020341802034739478864613316893050780618510928510474323119830175270132270286784199161005184555079629017654073415603669356016373511394955222744068033156846295097651350946750059479857757204497868380479437754466428729173724559604545168541465681210058523681808217037746845035627204362259224831772002049540902344525416595564531731066521545887542210837780901737794049059247346354374221076661864865366348745592843142457055585063641972434898555567730322996605013026053960354668909070909521169518423659839043151686334865717971674101468751083587232175834384323425969323892216939590061026062543197200000617030806402410421163423784676724748894098812173366266400055039740808311730105002026773175963061553034379630246251644202049030518263684384806775150703044054486955515560598536820476070438947501570227560139140546047157131314315242667607845998325283529704074328841576423340197143017403107271175869300764380606227301932025558979265836980703004802432513927182913760927643705546444347443700193288360298220155563369267264353504619520739599770696211882619940245337212531875936828661614215563213663511599323472924046172718653017606066385948871008473090986398214088451333524390157286440820574892738496105059986844852464552927546842565722951088613761404613206847014667292195332136892711349435057083505128016814895732274354208881288907763036188904796240794625851709249372631413253678517705080119687734853575206006865353199766908090733223051536651613378319659427805492232329024168069977919159023341095281960885609076133007457070445563575179533798578058757570269567960876127008568168178410937836282583247650456187997743236503449423721994541822340916669463655537088569078369906986035521620002754408401679154603400137792145854642862411486358487051215777578427121159064528591268187858213448144495885507935913845449848499275619587166219292210805579073563574915515114470967009641119344310749874279460285364537293366804644086811490482973827440833202825245445399313869968026630620043221422090520580099594763590171640446673219869915079306535230408095468288197279627924088222239096381217753496546746287344152982233172982646168423817025035234024217433706543545900702269873858394500543551873317757682513153845454743754983262700865445713432627675634164530872502620109613264766442028114827287123129885632273415154042944555872591665466984216211716074609861933531253851565365447884865667115014257825690067599790779145505657375409648322317795573654387227459589939989544750524989560491747300369080017761491207748055777923160830574570795399338372598437001758937223484066768173860141873435765869977598586226163490080501994461702862541475525170790363779612846200830333197457592727017878313575073410774419751593260594926531439219688389190292636361405547484026935712598778620980905131037507225375472719570659687799751588160189246880834359997966138173570862920107138962744808065525368630914601103765086829076286248004502302958865441191561034429577980564288672940977698672768960749107587832737229794719068171654302461232455662470620585577139605049606893610585587048029889846754619695773170891708188893405549579818888381879692584616508193154883898525643229621775344559280071336448130869604391053134626812588273127214609123284341778672331790255309318618750584167225179882153660143779058154623389797669227995446125469012801539055709201827619429064434354957669138521504872993279475646298073320692081141997292282401086402399516557955001069459816709996689687973959555694813917677923679477274423187792841577725779570729841362168892726279163945939711633945924379626264663674543049963928192961552257977965763222087918998735536752864902136070000284807642733982638315587918557829897660932861545173458814890613200407466233155669322296995970562500213377727300652794951348599562155615513631431263574699968601693694731632101818636042153522601604759163499038028970195193777333718768944745201916591059111298750370491139970162957678649532490485402743528042289394844567080200299505208673528179004928368990154266456728225842638556219211798850338375767995314911302966053163838505177568467680393966455465830351115425717278366224148800717441208931967429625246125687493610974202627940299720435891167233206556949527328901139786688269672109492654579207826154914034705635207682645090968610058020033292521665630069487162182790093805119308595566754006775717307828722520803515785841567957367195613642865374866163574742378377029646474007219890840505023949238190107008986686844037033830799244816845830801342193811329091216934986806557381345062643579979450285565448288070478086901256906557932662749639905420261516041119380975758123112865220110253962040882435911140845039021910199796731299450134722465739683109300262042926181397032090909265574067159629395280580123756889684119940683304693325782030903809682884745223792288665318516472254832921551321831730060519096090750884446313278413201151846576876952193267523830052785381849645284054849083379166071549882268714481851618159830902032953118556234600577456054439217927768118471039584344795461414562536709135621209929723524633727494934332263480185322812197057394000164238549785314464010774595310092359787096507107293524978856750898385385621224297547045582159618191158018304126284001867717081966229511149013478282272871625101339887635749171048803942153623109167994397389875320255238654050417723934579232441559726994850065836188458400923699008427585086499270515312580073175455112193911416098304124136032041016092932423198218016943773435066507106971971836755786627982553541460208628470620185896513770730934631222857649899676956765844113972793488763183728133074680746461303336845949924042693597421029328088651537373366150418651090892867128530030227921501893528838902622096052684657525977423964039874801532908855246639427210400153098327605301732709958885796790489120997509272161874842267195946331260594092351182472901977450182392122140239690475433696173216722252278194287717489189454151377337474863689978745409378476342113144595799981365582532506237444690643767339671118354040997723880135595778081242729436364300754967791532520509163947702908924960734414486306237890363959409138198195512352660160122258555829070761196817005849838156306898400281607343849209338221533672824576318411084718463086042743495027704298977149241389543958545912476049172213436998573738611339507898332806988440867829098746056567411226544200036808205248940961441671042418265538218252741528522014191117021629611505495687176424589098218583825998910198338028411463460509223168207212040773794470044386996975967138225114719326894581528582272006501475736453752282793465523881246346517186581204460355043976526292689958147475668493574499242404535487322750014930132855584825001019766154772307614760606656622493353434264530709656200442343609331234505368879092313021564042594751299769468946181126433829664515559911968530996972905133638492262489171344212030785093846826333410938455326071166519482473673126126574025302875153273064665480886154745312401000253334652392200985379230389541623743964382796701477480574274189315651305040557236580075235975970978697100657478793880600319435532626859194192951756498894607818157116560117617546132013142073749967348749369268533967231730174953024378022417214831548084366897325234302706633487658043184770047269178393594275943532537067087762554697303824583244509895859692386738072751286651022024628746199064488562734634872292345679293912375147242046418865337902756949900260065456443663446158853284113255717287113015985952636029520201836719791877796812162292146226527211631704401580794817120279434494120540205432392480032859673441008191119802295334767153602161894957181631159618028179120232792252211665307788572409645562776197328288812708206793650911078294431727229815305137297258893345540617697548499125273427173757744036516183290042210714014637152722874314232939507910491455864479600928422812147532279812153324412018941844358863409296310754726632047975777716303459824028899808863927814674097392700719523629395005878445285330118862732908478593293919145164317684487190661907758285333597911474858676473151150117357381443577504774930288288961018828688650243371573998333452758505994579319051841348335244538638329138733341737237628170344177214860335676695366036815490566596076989539552658955925543720989173507160009019947213492238338323515493581835411374962637072496444767282261894186661916247318182871996249713980903248898865786706338163777995465552527548397467746211333640258703089076630359139794539346619621879190687984032894250130484138885304515246023359952724354265579148231983204925476988373177872044963218033659325707338816394058942267705984026082873125556785142215406775443165033543886685431866715981731110898534708997557491138611420863923791104024079739378937804566353888438816264365952623642887656142485305990739639196401731435788256088159572604537895325443820278602308665979825728588836122639989439393642993660126407563433793560469139350498220912364480463310536418287979930215005478900939098837604324931695287557421854728551269654147177132731654285222817060433894684006428127235297593618459228150443571235683497615374851127143771202979222750150005539439877401295342910277595197432620627303706155014520717562461582681279202352974851784974278689273342728016418251068918069613483955645039103888987549140543705372999434308175465653289548289268505793770669787215349076852971896792788114583802618051395808335980727999934707826651758337648868453374077874575441649367954884009404501787138289071196064698940211255093720313873659572768593472937990429363461408730695997194966521284338303664647417659264384286015982002548349816474653521981470193429770481064001473786347035197461792783276748261778646908096446821828735751868637160093643391849712479943392660715360684507037510477036515185794859130721438425595716161144120916902919685500471982320610975193132912564666275365936953769519748811750739050172538033375020302924699458964638132443707183119388777287784066391152618035605218325727529683302898707748964420095281671133260791367869401251316084621188668028098836864306225804793373483073123771715683598151747426378863868620621004349940074706198663752155076903800212540923880626838575787022799441285456150035991883390702757999311031940707254083352789695585944889343555606993703418640436164572941807207310801673042629179711844712191623289216432308080169895089088661676936368291301381373141874719993973443699436866565831779640722842460044166273683346874965023192863129505339472435224469292595418075998325375574064001317541672872385505478516404379150649402255229449881030337239649632557305839788813202392923175925186843989559394136903496271534501852233141706133311349063678457959401572645653732093172109959095036163756086241273383102535058988725372550633768502339086624445226847322134572434305623138995223010894157547355995360965664882980541748287883373474281352813252153387638441923915755433331199595716223673640856533539760475954865270978126486897327239376354627198534207843125154385153097418423121898249950777099745165441755531567729892574199119585699822119843711223170467003520477635012841273351184845886160432491561893834219622499586361450686024388651567232632291728234065125036294486103271629915935240142181910312974133973600925398470994596260800875583674526104132365749704174990281024771983865066785023696338161025741825204406972493840578625767277867783353888796338745334073797337295228039106432848801009678060588115907262922536192773524579618601975015217546263230738673588216333754632891632648775628463395543546188086821172346400366754867199915096575872588003193344776918312746484902103272963260757466063100732622780168647298286952914412354435530894724395641583745649520448620176486785948258935398769871125528940439074146420471320564797141314605913081284668552283643658346246889812018351088888911695593891895682072978117102045857535373552020469137135721687627001691826681426009523095007423034754390878027750540659350767972366298697608292759001471483819380402666484253897240094189021294660629620764708798890299479912901178997877613475322443669060478711778044198607529785427539536646362277025984923710479735157695979501357444801343856481201567764862993708389262593182860848969299078799471278326744097347220297909489625512053211963543039738726432977645907940436353829758769564259362876918037763861968801027802284907321456400248553895377461397793454837288259054186545013064491614038663675806923477160740424137600547133407194782789164211060540571973701554507734868402765020237256616937370734396591915448988886982100424639006792168471249380277385249391300540564324432532967769192789918712811330425354299492744674166784706479495713635614182577424161071433430101813055302018487738427634903053505796625790056745410704566067678881356399673842103834216299414590760675848321711309497643787283763467071328180661249855340813402722163281232511499249544910418577083707676978366861614045939777317045800145180421597639730528650870359223567563388824995604374995314796220263442114596097978686002390767756045062501796894921261738754840115195473559214804315405961188014327554632661481648866526749151956663941579185997819007469510062436748724560593011961908760427071754457451888035169362151314100045224348609707212646078099954510492054531110958368668128502233925138609110971517488291733256867576930909214889827497806525137336320944361235196159668599097269334989365682951324983866933672034850679841488263313164930858766441704142213702284057431197514697174434957213090440943608619040259213393087054019866368325447503762090800316572161476632529568794197258670366861515241106305895398172064927508397619863136477920695840277784478889240151303127462535302225650580443458275982302388328523504241037741715396247034516847479704028771689288161732991581621972902203325818457590499494755273590129784083568881370951832289840075868686469839172263023782301214076849567058586446550125846436741066010731454703021610108756188581238956809943051925887305540782042709973946643008786906564950017086568785094748896816838384247633939368609766401662866461779530613859800535212030766390082454440329078529192939484934814785239915204683720774674547759682672799732957888809713324818630091571449562490468128714141129583661855082938434020536531875872694571031225332008275813975262958571205798059575148253428248299424418198499585108251073331333437190341237661048065206060419364856957884392877765071730653982688571330903904423663367703917941269394475391611058625024379215201692943021201910980924659947457445695631226716870741481510768137367976312097318979694250073683405652249990505624495862291208865581805267257196756384528790485186226663010994390629140258056833927607400881287511778475049844637675313597908246393176921079302846128706197629534227665991473947795514027068850262005422822686459129986674241886542798608724506045048175971872761657799218216326058163603924121534042879864421209397814097984083731927909053253600126412438750560869570035123583057140500381838623467883147478161941961813813216506947024310968687891000384251634430776876814608782020404821011672456172388687090569350752219013418107786733875605536409195363733830663266383448568695832248719382209146410900280671523869323139671639849734600130222104354430583762049026734237711997869480721543682698452765818220286871812070829256007399677626765167946807293477493097701143308456727901606310006706861142269679157202295633370012763317811252695610605171884016110642258839733335917500592514801431842793250659664874479934056848677701032284080844379517414550689512333532183419775522873641093409162959599847774022821366891799164965122779320947037976531711192278417067870624428221485522715736027741781778185350207335870791988592212097198030901927672629220455849745943940389497891538151515424642255251932111081014346845987878035511680049928683310436021170001153656267280962394397899603312332720006495090304888600649094621035922711436773496507864289698803852142919153273836313305176614136149679004811110838626865272635937630822816377935770832811039321849637293989274283749493097179895089718974914194583236364977287121037737671341499636986713077323337254986125601505534938466554554655838330917717457307683543026212822282189949586414064005353728923220669404039608429669343936454258570387799434425895250090561124022664148420929476192092251815516884972010797014493680474844653873261223984009721187482707236635587925618595375227960158416539324450825047015490141437896503191952726064760740780724168997714375306212674232645771989917689117838271666635504994920023698391730254080869054978440610739505463151144547718816763555481487895002196497562069720068861640726999820292374400771400098873251796563037387997604871032262020562422045065455715113009588257369466389598458628962303967556373461540846745060685461460369055047872993441889283117636261248855606107671593055775939937535367805800328533949953139430507872807500817113920534687396629334559246086289924169227340178803812726076753462522583327656097444974835913905251653467567841875253766683287330975792054983478811440841650262146961552690938670453615474442483169308345754508212547259382823172659836605764630309470441956851792148602252773845054911675776278315932480102074612171600362671769254383116675192720083122954477243870124180692445721289453160099750876514566061601545172574248995201341731947746812277813414030936541111559960045984745445364489711027418824613442903248011829520502216114981911473857719478711933970840924427146424841822516155235613134511741986232444580434920376171086298278864343003865053905049066941382283352408087905682143905595859031866872175248739781014367360337380221491409063292162142599986270267564018600253008410455306278805771699281469705889072181643614996288074195641185004333580530144184784713608431731105555906646367195986991403861406057823995705558722606731679233685097386006678221863419634850948517668183723201411638196509273308973517538480324839446660063476141439827734786836757577470476819353854966264940214188408832637330522937336153686456704303798285207870458979839592028880172994094848883508699990504578025223836531821038780496732415245414778885578730502989212545034981618468471359621531840372877739680359200193734621327982475473640092393365566700934531549911146285038208744299682940966220644276391908369611769213990735714871542063040510069690667943252920999642708524642426262652716421304731740108724015538100702408926435806826184066743779582351150203168826784390167919301544531912977881655388381253001684914121727977423180637504374471688174177565133674238714591800730341511346396704403462663834194394229931210185678908930389794420719669715765629228898091207707082407494841322295545270276905131580354356532058401179336765236589801939199598239102780729489826715820918339008867893364854945765775360416755662187472959686078193704654344710756451676254346873221124501801646336615206624372825815184766366376762112642998986432661459888830842372033853540329447386032356542702458879711742372776560517514533767249232533293025267516693333822761193021380993539162075939114763255442260713169560737622627840929215281658892538976687479637720961060810176098214307608070785237668286601183425362154969202119830648337689319757827147055467657523560400852328543975325957890542373826790203700873886684443840650462978148168614520275311689133466407981953019344451767778292047544733452058067934376455700172307209578077638981712800861250206949741249152747105479479368173661845013076301708430886311709992290145991808511315146998611035377451218607826750803135304194785750941770393696651224052984469793459289682433663529781695072323901801275089053346069516746553931150657286550420815335318979802859235814367308082666535041844606676205109610252011097316306334993307580297100929575324143264206502457329644307160507715537985786946761198366472727629876586268269381603227665277366665761813126151228836986604559185357705488531175975194706601166932328229863354358458167405334401260068653263127507274011843794378753131947477901665648488553588463561398256484679480136058019655206751775102637398240250108327886133472738060621533786964667401570151046475425737653861340799272585563140000678072021411375776537954908888718539958473875084111032159380658161626466647156543511412604076318930802971356807733671181310476241098096343725453522745270504690942214755448005789804602325072060398691851087177396495799048943782322090526248326341881600709943138031044479603697558174194264979546241082538056610483996647237004833866173649658588542075937160575497183539098887145673893694627607532905324795621742549750778082750955990713804707480180591822166135748265714968152676985376801808046851171261821349217810166968240764166473440069321628882964640104627529832108841116454159684250482581941812955654141330900790099838190410807781179843181888861266150148831114231408966614361321724365724463893623862417584384370723069351249129895485096713523921789112190852162265572878578135232713863543319964610810846327874743941942217923538114086685278133990623159189310094296217898492953857701362261640106277726426717904412160519171709562763046085451519638084904946963745531694668943017305212514887968590119284427245613039494344464035222009603842549668176382368558191596983882358498716588682035408949799485226829441738744079019028920409849867907140272707426216741522081092398977727239607032922642020019839168843889890604234401765873897407676873422845432480596850176497132157718943552614823656580029898116626785391123960737206900739733055850551246220001031906911067360854523486077838381696423631169009047488224379181372718438803072548811501015984842816332089858487154472642033729984389282576275754146200225029953828822111089450653234937876156189991021953159917963695566754914292080825210656203848449670146549265444132596773529454740988569882562391351033562801942649190628262450697474267524438832972748840702082436522514923318086346530132013991079516315155786840951090500369112026257674108846906400838873582531777004025979117695803488364663116622703539465570407793795087901884805599681848375117946130824655011874984837565977086963807594932341455277366528558822484558268810880720544884348492539454407415371735366604726983044527524473309354588868771352984675716980512809613952665104261463103104283662011677551057676251725943189643429795034698665676355291318799798315545171256247036144724492038805638058154154124515835311821832603294781827807482618140683758849949176502877297700927890658027510427861451177059104309445973544126449819888811156213664076461637905347133553438999012914755776822847254743219248225672208299105147507570314764011912866083842355753942704718799514680564130931260245927689784429629745952410220070736747629192161078692727180781025333859493260022649818501293648078586227794801160771762088849950676539900162372822919213323355210429279473071594237200293595559774476123654347108277236254975147210923273928390113257034815010204875281948552961482614274567803051479057431299676775008443481989481501864162940671472231542930319419617486184360772378050513581497607795903754434320615097738107456594918611306326030700696477207510610200431937632048059038549959900801867920250337809829769452624850915703723158891715497411393746303042917610156890367064510297258853568940166987586045386078091973140044211831181253582092654568110680722561587290164692820915536039841336045343507187452814336056856504697256600044808813042241932252636129910703842863452349805693126896929794094083631383162156662589206048082515324461689113208228698509718637692531557719054660420730661954282082114030330321739530127142569554815183733763069404510238415759706391010034478557847476218731483645948346164026382515241578571620323678804511632136951910413222791367165794245914674079149963870864533795416835771959779553314123366161834502767041441901564720166962573667270557670803988827331767446643516724908221873330472462885195038328106957222115917145967274957284523421679253947513580738382105332657782923204639225842898720433360217372441844974898380875758638034548488753541773795624167785220285414674354921400781347787784629268386779894340637373850871884079295933117034285689360045681806177291378804844772980247095795569265967682474867098388908677437658198073746629514370163982255036197190008152180250107814072134586400892555371044052799668552863781082215229044347360437831993256529586377593674284170533135393759551579194793636551106389721970028148978802651295296412606940068967857410167642047548293729917888030024087940529748188253466435867144375031037721430843521156302572000011207507354017835210089347327350255428110992185381646335723809054440630477259829197299894648673259483931369498658105419971338278108262500672119377068513600724168157352945609883016306979010401423673079420703593833912041278736163732363144242908341583343616685877918295565446985577003690213844523576087204211171125854525697063837302253107047770884147690874251723976549637064857248118335823870288154397304785715332450513279362330037769578797690076813055306129890417550265358713959381364731993031422848380504842371696014287068243771767148930963491451038510085891332828443916267770149897316827127585896723109593382757646619887419068462797819469655930399252493849421053180629244045026734208715965993536207380062416412276801378943205113831699616851801947240643597509922031189484094486220695695829745713085642895858024227395495396606928444752519905507677224177545004335831580555150496645201709286649586885633938609576479915504693652144540967851574519577961360511706305443784013090600316670160536122137241395776097172207241556371192822492752421296743470934640393850759831462376305546666575764966822670515058116357363708083701121710442690723742225925423950379806775702476810613465557884367959611414735930598144106813817642032222042279893075926982684331206933042351126818671708268743581396422411096076181319725425077409206579374163837763724468218377467809566105971654956532463829288204642622727629771730791481915610017482418495690634693967286305762744573231111554159202967039800461744138281858153324598427311548423221748476770557745860538074117620780097438856989677014630608200348418077770165657107224642507431728317138010591274166994598812524329891078820981877136353199635783704768741266434962649081336215076094125351408648655032995956705061602169318030887006409261662693071963902549535337309465883527065386183505651257544212481814358220606433313979684304215444605936052766638224815583567215774729065366517083502483902163046888349759545503950588806512794776604193366881967567603824979396707457185197358047879148292665801636622032881204024055697932598315748741747015348725438753408480267691443383894532832748932462743533950816515227068658306451179648418871983656400473741250110015462186599803521127945411304841377372625211885717115564046403379861321559910466427391815625468791236752035874133270855885495066724977748974769524648752125965287128397772874618535672693713772041203878981703248205504020454998186529416485716587489977438926538570534781550555889135683565851983284730446930873260962637147419957398054282520870378797786439671922704361375229748996579082813639063230202618547448521307994622131618881086866819494908376524240760196329815452969957751494565075210545304535739720179010690597206320986058629957551586668935226831267158208414573708024028932677400650905915309891145933837425943327566225799916797262234110954258955753061448913668518341842195627458992410623800905286694677731873369574874963662447981151616840504549967946575759327611692215846857263974765592734036638453479978265594141685686938399861560398516517542982522250857632739647250447975980953164905312337710418632435138947145697409928112888517888350426535046322081402718859308425718735832372797751725923732032304799982632993779237898199175620185811341522186835005912307815932735682211167462610922296280029665279363132630227584623596580918928239707788141455113383340890529496979955350892614833603593785993696497686818827575871492399964105781904983915348443055236250390185262035599596059655508319929580089108901514912763580105108787278017974526498497156551244182688089333950239328201611303681034014250783446748654222707257356003207294602525525713201974993202709761333095152907531772428225846463065276105918638734945843201177393083936987910676101868500365358390917092751620935996244644787750451633889294211352278013743543052117100476258355870962044459470998840697099947100538706779941733073656403765863372950364402412962222762221531721460110484611674757954770309611189904460481833011448689517411862321585838052802974043954431824578225352243932153336323799330283347645672161372488760909787104958417434940499904396021348242282998816834234622325717591935322989774081508354540002261244487584238819802975418953040198599412488028079397453892930245880939767224071637593740542594926239347813426103242905448442194064742252080244773796477835248432071705189634469544296865821404522354249996946005670007375184650016159564672956420607234230735051702202773351237059085252135113586189963648685103487358767826595240985977350375279095197185728633988685292883279257549919016376059558732176864116430410105167213058148952988740408513066011453928268131500175702665175853468911692614592108679703741125242669533358258870839912875867540287102258014881592861217490025532651585790817937120712323777217924487353585996749425327775479268946258074217808972345374882424332493139170249359092598549034593411558295491933549996586765454674470082317341512765830992482295350726227865929264403050712952341799486009531172996664888664437745905641553063600358129615145097868206285022746113330900541213949606442566966168278634194799896443659422474706636609264231963774291505606030516918580672377707728809045859376390709424417208696265198936526233304393276036642714023929792972612561423817719941895679195340714522946604509751644297672630174829764186685399287688955070960219036451694740044257449363668728615832472739921489984139988357993295671503201933131327596574339693016389614366242639262305831102592933266647890024578583107858506884654868657482271916039691902106486037053750145834487994237868426812467550735985790478306975236194705155921743627192482021688921665268524963060961665222073863971848183780806405687313549018963099000148338549614440494631387902702010369281350569112049242223939860130395734329495806205879345700339837703291778499737738767402658704984766341268109083531876877240238002952808580828124236513362139787089602739812963821166726512737069689848067506775461525449629894600547619813313697900762651724929242254142646356679241199724702647396062675930327278780129201496286303215333013069205264184605380185193100272611901246165923029124376790095899587205229148586468302144016337096651047940291316765252352765265093660746513822155514892784413904456100937320560204607996676462359933666107744480439031681863115204371738930809492687750744136345784079998951266954806193388300736008268366317654211828457195362550266121458414493617958800205694646535646150189293762926706203346322791874906004180001517181745833245488375167139618046506350744378795306192120419362386144655696202985098819102394131592496926172974484708472972458681727365542062291105739207890929473094707962623733608340136164626240236769367396643455110681020759121727558270702701426360512928093509915870201603619175091090201842461648594096809576209686831467130121634737970703086083140488510956648320887171669025346600008809990785228595060978613509498623885831220619549645146578195899209554369085318217931439436624538713333055447754373647495183636610305884518019918815581594207139287824250601829760371024992779069656886642266455334040274784580591688429506636346302650572932222797184688645561324786932701249473729899028855402158412261034873024342629566290177733213806865672199155991147879914416201575590411700565266068534313927064750903890483326576582115151004644469266256124921239923477166733285996960495617937780927011182597662523774198335092680818590776692345525856400850371573522981073071993567745544007494544466421651378465760971195119677303021467277889780028540676877792721723636552988921276329063628096170668696384585755881527904158467484019445909454629020458477950594456126771909854085137740049139786768067101238640559739771066563661309881130526493900509093527872514904606569338040967183266334160687033323776402445865397211665509723382581809507604410336551414317529789143754293612185475150019980409539700052279229278321378748156046692108618656640735298488055547149138840237921285862489443021071949725326544131447028886760765617469397261288284147076224752338539258872291853366010413694033940541373524856933056821128417205332374218943306194069661442396034433276920554433563442507914314486127775337440903301307049856522972168835696627837529714059287122795570665879786175820175467884079804760230595373195719658011738713169013927602690542859643551742274079826479002265786719396460120229497180981437800169008069203211192004631502048990025695313509629247766330301990172218477367088932992684643277006945129849576620138140652429322430471777195367610284407770166241650209755863039337239336830674667028592138219744215012307853385856698429062110040298129725869513771320479387588610215217865787036791306697247315108211804651489429415133174034268076182946862802215259564733178943100984814904935960749574916060283032863957235805170450762081372062214804853680704391685275198402158033883259392778394838837313839526209774293828210074932938509742750007214487253143883395591744656922038071563806131898515323616161620560643278931833510723866804292654426836834244158841002344810140814903388644080102655627434452250020403010688985005522950486849791896340159665569622803786279278207329151384421595645971138698636019619344346189424640646950239861006969922483906534468159956177688330346174154901164236838173876787453636462484054896758815573154885354395405825449555721717598548827681441064398766645177238793745636532697622373333276854003422533581944513737389458912401818869563584199254207080836283977690799358650597503791856751247137362856461747122234105012529106614632063463474589684225165919675185902453946371952702219287315684427385096631501736853780237820158414882946044260410875975739653697928323374950086213368641911784448095258313582900272858781752149260588845722999259163816173817042104777225157648390458404320279796389355243615729503363637432332566408810205790800424517624696211947054546419808775053694667194533989003301655064232979737761202002340826867382354681267421844705233416650365811199952099479860394527016931080181239747327759920607344635992912346180179178274887795904276247905926335932010621863504025941324316694757836419869637439962906688014982292054614166634449396981015522900289937434357026154455438377451433099416569792634521809015926302679879360570806519244164877417160083988584179358555901778197889130628131831584758962238565705866221196136354384352028022061021690574221227400249650417987264056560155357413437062819036273513479198349135247875473738412462832018473268436704708921648915516254353265550888437913787493612105269286369163261223518668616521214088545911941717894248888714355000736016766613575653416223776231186406075886630007873454601992361782625054673079735773392485950254638845095926198790258349891371487790723899078772166674672878879751685733135992431186036815721153410232255668174703388410813427544483954682393611406663278165486241739091260670363699454150253613030250359555410837625847791723824119451083070506663664149655064974644694950469965465323361187287217483423882475789811493863746980681051439729966084837675651101143614333486221192154557824934444483806485484861339437619770611473723465334006019397888285929656022950216600750617245349352927222715918438243730706540847909770873769414450530279107337784934949522151929011360835640636627438712973856848135234929412715980767126994635709923896191218776396141142678731347065697378751219063174138982792846428491165466023128847310329143191400046043171427391189573547692130645771780217100578010285525341766212467451926734440381630852762065032853640061715321834021553814522331411541751455902406078435182444077334472446137794540873407972959690806037179736387507231833236857453941804739382213230069275926728643926567221876685988319685148994052571937070119886832785154057085583927058497673240281983650436351571093320455471983486950758058271070473627443844037801411716780370354717294224242824915955397662528577673279107290266516438042746889445596343625651385049817051501723691839388365420360675825949380973817694613950871191506263229736137040148602915111012731445347085373058016112996018086509701613196596810273415063490537842694173056559107690618052896427077365650382497929517053254987525987458098545348165043985291941109062371904662422863524965703205526949813123329500901596948559946098331784745115777207998172244460038271885442482181197985081985552491690771919685994958369194221349424219569119154783837810639892853876395869320565456586191648246095512734803968496383618732438387287784572548606787875139090553155183057479268213536187533002519934716946187648011503712162789778068228558452211249851567187005603380921793778452146851348519780024781519937267078069224949926760674708252168597430197611351063621028980057619364014807205722232983730372151412185700646765532757701175312528789028516624739725911562128304876045109573701849158724619078644823591084274408653826077165804857956286879953210577485076349511008622128649225692867494477590120121306183752940733649079063866753801744318365479668167992963534752861001012748891896169301732634052295453005988527077058024536436046993410709571610486268009332385923991717625392829483343226386755401041574021817820218995834063125470830582836334914508555406801776499132229411804809550305009114217379648496940857222148879267031429293129513831342272477455625106716366502388414216330982457908227263913655470076203533622683559455002589600961603956372446552504590700960692416773514084387142694810998544027609299857904412780841665572114452533382280868654863949999397582291409892184892023369309459439602628757011862988718146546976807001075943014265552699181890605744776266240781876624038961530518805789449206350204308785026383040119380944238538922099077809879884929276506681227887412398427424308275296163948171801764214780681581758855240065002502407797285439986530040715894461386597038530475258864938178642628384587302510312767413139771919073238770299259518522823930856048737504720871659821898083408632211362822598812385025576836377321923768881445137904061122663619754691751847449183923748224893376322337913502190731262327169055574287689019087468182385035284622329565626626028790312796831437553011686801869613409427502639743351728872930632073112789540557105954680127366021770875624435413476541136242663919184845081672970066478336895728028146388155573803961855387079214901924852469133287053399009331778109648444258389753751727990437580720501295320162963343390892712146419091907688324409981834927423893585565362663588355942315414464056208369621992999724733989549443323397598706564938185676034398389135999173743073854038376430965777289307367023267921368168854786147999263227434756067227508454597834636663893857827554064470875272938602871932267126761765837788102051425399039663165943347842336086285164234218778063530540749849681142568436398018053799487651027062669122419061392816580702886377360972046680282244553985211776852011874965901659330615987745099316725695958006032967735608656113497950455717942114409219964440551516596256422181625149778571774039336489673512174295646297095967071387941033085562676158036821930959310907311112784354276474447183826180276789858923115876110547000505500398320348298591061965776280967013825651204164567585712174056172297850434825535746874206185548520114509697274801431444800719119833361037454294801285388794407812457538157261096322053326993869110522692926081683337418105513680337652833786386081537384189411844510905287362907273844714904065864238238547407242564184384068652415215833265363583300963348622343603004366933783956235697054392521281244116356482542369834619687052864302713380200410390924896527344925891177023362984948164633194607100384952266734336374786389353907922976772082347547608045134944371374757928607540319345051295828388053699469603069322572074216526371883913760398308529315526112285811580123485758788253647658757201126344156605888047649029136877391125492252029640738625374600045792715726232847296560862431013455015715235754876602756776325832961697856539344638618532365139950643921692476953604131380268443212253460537194064942289339917493510376874115936852227486889213702253335102488719180569685548503235320355855717595745093064657934808574753841086695037537935046895210860144944648087437585403619816990389039452563344974505736131546001792548098683481988316270727054312341188367406602484143315340369452802675541732486252484769454036657109132040527846608887553512462810525778695160562331816341929402209246899624777699052339724039493375238023676676501718501853354679848484621795046802121415126237007839049891401417962585121621226579206813478946154653363493918706570754430868897673862057766682847007805654734233096893889411404121580928798677805173852494671564392049085346332056987603804403245239633440678122123331284262797912212569802283588762564841543838203665335524739203556518461523911667901780985222896374185801845078266251291097946598716130058612206772966308717811628772493753341744915668375068065574182942066650549763941629174090154634667918935195588243600168122293262447758593529266504217193845536244563905586811062464671981548799198355632111355717491480649959730601641011452004139590639434466411416540913919465749863143717244874573761123466856524520474439381640655601466962429745776861908100425121544319739854593136952287421100859588270587474161024832406913431217968130521982721392612362882107616287705383951142573136869011116851801750025230477863864519728675233736062355463621025951215120217054192433712381821932985716055505151825896770943797040792727079556185148285913458700408019308291367410883575631652686085809932892797899035293119781578100676294713115656162396919071225748989906599911721648388302843689324544109462472642827821669653971778875886141698338717434436473198059397752714094206810231393406028293804468962235581954503810627486851897894794459195435830216474240176906075446248874532973494786192629635800685839304965377598382331656412554489889128814011623488286702213304275406721256549978272194676884423866758266511404676212512140150491203083684705349051275548599597764113474988354495602537270207486114798549827637608107036511319949022043134859254851175453865111526920285134127768999993398940177962778084599515802627346946224996217023150074018713463722537566615323131534372608107383249057309418402244285008988302846793076435333735155003101172245817693485262508334044375473779612847641241364222524641681983614192477026727411656647035414131779611813353690271253146304097058494764915989506900559504234111549153405298892574457774940986839142320173634294405510004922811368817524672633685941563369310940704054902335778441676554150505056559851785396048773072276727808091368313774635561902456449504421477307971486943199341962007697331944306635208891780291327436453009346337114646691781456681311474734849208436965618747902065868771201908109877089283831366185564255464364836199891328204088936013293308712863374233583240675499502880562048289678788265765620686836507348894688217556592359006731507858592063738658837825121186744767367890535164198034441003283139695109588906366630647025901448493877874283435497970606987477621831748981480337402135407624035552767332532259482607002858273531877796107958954107846824378100621804585621045978927032741391822582969592462173248632849202144954685885913199633528086497042713804782152060602696153975240701849383455320995376632132469998786290697495773532829478763104062305014664665155428328556320930571990158788738321006877406321241877002291196513684253683485948921179121279250334819453155242955378427305294583735721128804009626321890296431977455050354526196395380308633684743912647791664628029900624897354851562855005813766253278864049070949585988125730255796005908977477171305923883260281228613492394585162989041850059683925663610244536093776700296624109520238876486710035581847521761942768302009169555893041733021312293490992632991819222636156932724083883396381474851375390481161205800788672157993298437895846890018756823983273920122672868437882680692283415604890048234161292133150847369525646673005342687114803978618731206639857399470816955097136110639754426557546483335286111582948785433855571614144220686476530726387832022483478102344753496301674527260783055378173404576024199720709410037496514476305494167319222376813068338897073861179229396717884305622053008711457735061084971287567331580359675815566142769028117290272739128725761776338986193381839561071830863807004963997727402928795914768894954827345310351099911289003088565771574604014200479071973762302416350074993579946564175587049489238617075312506975237016171022305737525487886362624952727971208096747883202736565209976393654968294430821853370902684465565990771690507826045686761836546017720536886190609712064490109233040629284366002740643466160960378889857392037947265539188986292292766498112313906144787477677520102031785276658423320229630443884257215378324806878632699765431902591724898576453127182815021047694198935633639095748208471204949529433641050558006717587882020002275720567213338370864382499021537831739491243895552293968157256677976322952952285331596026258695716731267074700884331971444387148694992070419008256368638808961320261227038316888993681389414549354221670283956882241267259391412817096936467901860644829693559006560272696497406040882897147637286046450796764839535510125668027339499732929028794535942474640332859857002874220517011854338757334706881941263640394440104092724828685075467983901031989184623652992112565683381306533132166572312560476751828612651867836689741439467669955992356703435060843474697524054828847407638829138982648998010291299144007275013095758868318184789129735550166968965516386336537388091510209930076909808456163430573385658686427588839337615861915592687926213103163935335848390720199347624877443595397164394375989166686491029469498127804511884565928256679178547228819644146808691570453135997294658345537879850681658157484788576729228917904618352463623353574156489648186316878537593455851962041710966908101343411514243621563824040561954393547105419990912009529814160272028903834890855026750675745837441250133553689543674334032279097645671852977575254560308960877197207994712321401703705896914437798033132866410898023903787935591281465497217114719625622222088015103535981086404596538612778128840346677905100224887687064628340626229094713051329372810108363037478238998091760382338097164718765122951612941655314399851402560798111572715309101688738801914982148849367394983367533463873546974957862551945558113677169584103921744543215424745142592746567059780096123589103157033079916509279807870072799933968438515187876896754448118166155394812222028736920289918003943709915055729205908995050807772218764567098095877984976646848889002465227959082120067624374915505261527187531386581342010308767748296950793389228238505157402526384141429912542845939302548943127270468607144520538361569429886012958515963243832078612442408279069084613334735212124110011249854158408319543086449855798805329283021384059267082483177810979117313626509763027663503124059417340108759060420006619879465950810891787155571765506543721967203662773504716816494382265776927181382496108555321284125731538918175483172282400624468028005739898397487152559231919763350882944911059574880061335851762687210983823567125440123242484270172313647331252326134456033551549319748844712595456650473995909733445432022591893570424552154161690313453737617760692186876724897626782889688627271626554014542233515483637791045929097790885554379697738477039438992131135713937969014785379908820028284357865686929967466823133672101518729258191624793660244433999733004184377398074848071991256426593188356207716745991523240717042035120555888794544190442307459276898765474039788197490024813551790592575161808329573204483651824555398010666672851887042310171234261052414462847376629473717446537486747478164762812796550408884674641520150139074478318972679888389442833044697310118638167975512647966185679590907881506056001077065685920687310467948546615288430136559979890785652091241712648677193847596875867659570745697612012779496146413979935756960676226664501236548772399871224986181616959186674040395889112681798492223284938741250035472662017181701292049187026576882344665058261523530618153869880370051609287735324845920423230684114285297827291692447940383162449290691629632601112026385884534987301641975727860608062355115089770847852415002727550466183061365874154170248711060519457199451513348676491564070123293251902596156723782082421771370219840333308057794661430408456567471135712430751237711862117528682524104365102419535737000739707590523675094940276795683344499880244161701141737280667049593305337699896006228135249629126586336001493484965854091160759298552303494711217692706251260940906026066078346017912055464746777184144864987236786960670941150972476320580525837572408180420490721271735640767378997714690795454434765425472751867384446034680652619234167192225436218211826618153164605493040056809331732960700353473172162688610716348408604579600742790576829727825221493230534130418856749092524966411082657348358723625226297186990470200505060062614763317530645619692167952990755158963631763279318590434132418009628432956588267002927689684486734218084889083235538922267217804891145115913529875163130278029384675925103161736347631059448038975073952807731500559308621459118213298481574294455700156933411582768396707066909053436227430722397655455971375527074658424893671520005617212648343153640622682247276672470548085739378855071845175721442404586314976520216517374078593199143775029807030142360532204352084248543754031156836190343446955492510181071453813973858856436176012146933956535701427062192864151676788683588309398564240612457988129288155650814996166549448470185045035019882442363549680908016044266724413717575249143295641141552164169457738718608748245806372056709690684659865074824837392718253158505057083675050725154675957557484618920604486449465107075833288564509456263038096574562491830840923016015152739152725642908802904033410286464747698886688563743618483023767774468251432495325296839925854838760800468028583842796577852102004208385091564051411612194740720121120274628210056477158789237616200250131451986025534418125790404632953089400475009952283528982290596502484006689159328126645850723829866430524283898399891675532742213222624827722296217910583834493756325276686383064635411018926342945688280858146230999374003781942718981204028953474247105800773359027683347083879561967090741505923527483489141133951414792613858856432462243690658311901708622121479059442168681049257825754166873177444389333601278671013402989893750280486580584548789217909168652815079946026547481828438534292472868404172883468898256890211349145430716446771114891278095695283202898981824779654376586848127572194649148819339892388530185249180886910869982979738527885109597729253268001345711402658970448852055712115203807908857854591522863934580810917933001519828488876732371776633874190177319786959114131893499771825516845618233686720418087107924546556288729235425497120108900496343781460939928056216078790879298733426323426248583279109136112226435609551024457016959485989951945942243318548607017291893070492376003152668187185847882696844661527618010390713695936138143079300272762405756857480270465095743121547891337863903556491383519141060237427242431444730877200248926440190407918285381691202443114960763730204439442826658613322475354970622088050225368054211766125506251366015247707213654870223738541789355343069116705991551837264991579510886739854485463140808958803565176493254848889671476945277121162726273593060130814694556146870190365112222683147343861625394010326983484275347671898826716840820902767918531016351889396589693816431716023985765565120682367771953113097454358488118206929398188206183391448698129112549627771062173130959584430431617075517502567366459878321132607834879708562328246872720027534899107835482153391435261684956862980116103746089958777419062721061133470296705777436055843636696875329147500113124478584794681661999280895615224313003213008943581476055714960863363904182388612576099726481845366869035561285202443471868701900810700100927111329478666899293544691199579440028218583435862989093098623115847183373567680504737938947783798477739251544005740665821344517878258908903416800475097546751671540804880977829428835537146375132412109720496331472933824523204716994852304289704384606415891566288402192815121660627261227299256577840785420668208688285067381899252762780390248823862768336822408600185904307122901914411233218509332731773650019289566788797617774229074160170653387727075514734719612727868369861724561974703844688046355121856496788994041280252005282002148968201718283759836400267352735382121182354272206897553188390548837061370248992486325394303007097182158293850769331262871228002879622877862850965927768466980842926724050387386959124619780695831664147333249088903491703414698516650055229779209581451398873484929137393913306834399855215787971081850334819070160594500719921243425949691284993331295419354497276998223741217302186180215934250038070693273478553427794577909352874387315566357018615800477304466315221517262090071862065232125826263945876581613997421724715120444188149200113623102786396465840141360881214983874935404476542723796416468692096712469714533231427148173398805679911474026931106671703628797599174782842360237206559895875527308072468686250742297533161361119815538593250861238396076146653269778979046235400278106066020464578001123871172771618694469313130911479581817823078573730202194784934029489268264212430095267441646642488425767579189329567093844038949117787681024103324667163735092261594944778738039351155519578083257843951073074117645279163361688272183197232958475875647413135886266820907229472302803026390775117589439145931325117522602830503921965115846420753709427414444207525548150825126802516153620523592256294281268679688225719570576388378878590297999743212036086185396800093839320080203757987502064522990495320117580262664683006036197727097453689324208472637933846405063931303627701189466827343239909064385536569788554569897329269929023412760063630848451040804788911078381283769836982977176694342457727216592540183856026605154654815682819135338985128417874210444648165903711765405104261075313459828247885158706309401991156514021217837754942838645634092333338784894480472363522910291089550077361303004505735719162596917344605641100048800161573593352936542723861083600720856346587747317651829124125102014041215679467044521095757972819388198457126097926032251708001316947367579434986356257686420961078406306453832724754865829930843719595581085447268478010708365695332103065426453632332754989729547834406797955592228672368062541386476515653449998890416755710987418995536673354961392715813329060867316744618319414157261275639214275577665963384167643300629268500359384419480957499665214588666299143052561188568615366621608333857895336852870204441280346185735897709732320472029076085318289489688291178140822356448220723673326976292814851411551839465273448071040687505979741026494798442035234033105154813295815906135310903288530449861312550787939863036364966943417751299541704833881113972005568374134289294846390586133808987349335392937980713543995561161416410093816945939941661704223005058021487255941247369691771272190422377472728700748262243931968094734950101503719929286642277987821550964226074000142309439745060864276587299124137524473828894598259447903974183709411701430039591106648179250527469488542598701909497223906386260058021466868211858257238576366711894157511316269545258575180218404800135695368471746698656522137611912245933894152610744012516230552834068954041868364148670513005764689578693136589389210009627565140738633182367489032922763840819563801386208170995365375499205165170212989823925209431710916817408690071095900779913265214309804409980695916610584776787357668606264954489826616006882643846581492124924911164541860588919892009641822339667935223267135043708698194876484051265179614346965805889588243641487163776869796282595843285974974978413799129484680207048211079211432715278523510061651593843265607933031618139433850182066361148125197249009108736855673169260699519258280159153995320712577500331602750492272290607187953864036435220694130873504605350912193426072052512777801952115987299606771632017982658823562960458852131830353331385695086557232042385810198630713515423615606150050892338862458325153343859628495931404275620287643652476048236881430104996806681290167311474855598523582264738164756888240935978853806478329369457727244675914671755337830464700111505195149448586752896682149388092633504250507125124284352151134940832721616169941301359204597069298236276815846772801140309357881362354996485710692020225621169825042219604674585414642139343418507964969498346383094097836489410598493939074609426863697479319224361438303196782192031130522577157261358858380542055838503551571496366219412633204782834264229157820296908682846455825941065619006090665381003534411530591549063945101697618895130618923481160648684068801659132639898930269989006985308631697564110772856701672874372979721008872050763658828165150234289074776477629818996916244155982351341973669745654415781693191942889460698670221719933658801988869795668869521575087262495169087339200337315442075181076228731500810526195099979486780165630103749616837203782259443639868088994631993907388188972076742358362778718190837962386750087719782412169638019440111276317760568938027508742642468571844543562241592488818348153486416206179365783353069909869863083420117888305559965535395029354900028943744672219938336469243743392281344080425556773452112753360066689535865926379678850232602093580502453955222884402275037187135539222754919604637846797729189128471087695725485910973406259267258175789475014765770430906349197981920314938992014984620817596067691768637662083093281180471068338197158991355640438826439037683568631532558294414521661203386220742930849960203501598073848505287462948859341492435066211801479875594434658322259765677451627678847982806329808302133133882664075285728234788847359502124383779556321045569072798885957690981411614547864746872949993382270045373360133672780676277636072315890533147125531565124488480871830727114359194738469853219811845478882590561927521321980309124597221802431749581743966654414486078825860830853451789237105524257743792409786015157560197578328691816006326413057399678286673711794968729576325257188708357195183692773929160284158562180969151672843160278087553020424853615584471587709835087838869825572026685411715681004898517089012370869424613754367328983307222969940360300399472600757892616980799255889867258579953163083403105576985380500650911400396272013946102014755124785057009720746005577588926345502003677647588372743413808806431076611203439888743986831779151644703531566949589817046481224560243886951835689398727734996462617326105593519000739606309911579987472435767868968173570128237453162162855490788000754983147987914441648348706414586416544495251198883307942924947778433276051635032493494234326816390409608258798375379751959413631575295508113050378547302917845335501744585186916632189665204534600177647809934893815580061627005477063688230389121507619678139989755143558259017226530307334323966783683957414582495849105464667756630059851842357470294983860879981961321926842301024546194973738007847959073296348448832196067983481674843421023344368799875376197641548724367159448745703588078914097308805370146220772196755720448096372028064049954775681541969066491226687423581508762496187657569759344172917299377986311372745758911551304237966163604254083692878396848284587995848074361695271736094523222625586600469572216148451600362039343962443801630934781293582007576660304025685720549188875823629171526322365482035135804080825407745163820579549017199461170890456183082178265757149928812019117027119097885177753187872786569279672196474668889816980105349902578539310714032527257128698348534347585557685668252631282574554251515247259215195354036693853014189152063474010239636675193210436160134518105865138390835400818728259776110170583266354287434434826417059201056729370493323823369532469123537801483514891392347638790316423020439579129702529930744388352029176245587223609535761007795760796503567771729276588539143551251710443313948355698855062089629134638078992899227950945928173497146994977925366633921474072456545582701143950265921377288741957563859031585477701069618567182189776685827768964924832778436569210514423111912890611661570078107785162659959526538682722093750304112430091755110230293501151782166693944090802062538481245820967343869552283367963173426700906118931047134604828625310479991752899509292896950537870054579106528491019171503363807363529871366071525800126981086303039845300179984341197883369891730829080262809874404442396594546149919968181586828012752062694147800935997823875426021209722765529103808947090462362440703139780996195309469034217944493053972453606264443196717555532664672896712797968789769635524171227890888932948542239347184847081285409002061636626393628201789889920067477683027945008311178000893595241494064601621364880758894625210666666270542081660122372506470580169550220052381172965550384376282025347570819994789866059784102718413539799471402879603994777143752607330837947100967951152029299153720877675874928291834783943531115790079544106724751836725748891059109241530838363794226411374263811032384659980604119756310328620125212749570984586481203512164146785299171412040368002358152538540930995997032166381033222187869445811415413185260214670754940726468174512144332097348854370512608067326354897123817574324334911217580469312475347444458856716791448414582561625324895340536102199608872833073292788106504034522109745698243380095670333930811699373559376606735873453283192990086916836260458526074324744242738063348385374465192217917522777913608428297022923985562732741952519137253172192060520798833274457574944914633763859267560361698274129627148757642747050652916217671738177896874687749189071282392675728119106952336325076994489845202863725046064582474362113273987023999287420629967009549086359409155007707179264766351916418583773120490106371888742402015339151667136757872271435661350640583343008050873306164503656063533069211745007830862295365831044145492780046723161461627780283209821668086263931545872538364409685049258913980311586254261009714345192544661921817702622594507129975566362225783864189685722700549948194783917422286302732918196011168548325315776773434652036535345142513993073925633596636186159385984033567282331903296811230019515226203226531379523692436685210873923978427862478648460020421213023569763561044233055870528965095036196093375179967740535991502286804638805989138134125990220394460342996321261530812012651681724176708934891772841491882311060041447569971013932164209235659572403949200376547849194324545443517667238165445820520039846860987188973095980812950170278351005496709788603582538719605230702584845089185298544151982287227526229445379119773250320165335537907047253621882527721576121449322460310291957054379010818067838551882692397327535464142812953058434313161661775696477058966793534141263244051957395232601913732991178045198061330444776639129692785821098517528153777232762433966674309734975918439279787324670955527934361449808935252586749700974766094075869483178911415458529963457450980620266220230320450796705893629448379722603525597519292335090182234269938243475897086656590852789312691204412600024896674892511337018948474801826112148641776953562445078218756642595253171703599276524050483250030320705897610796739370507063818512424931732609593888620265283106638878667653607904460699725972978891369715493646582134499165295144442491081151733123667843424322106128898241303072752589987077448678081836183824087156705770587241945046821816378252932107639294260035772441591994501101896854412771308332784382736433054491324451978963274685459285174315898114803031118964726583460318006111786663530323347052351103680657188703466282290039326577110487018297407135938587402088054778485849500523288794016666120004221580215219272722943570596353087332712806688490181546931136835048734927756461581336961661023607681848119834947504508708413623253721531290782017129359559224665047054204872233301283176967508041096848173200151432126809346531154444763236651951506394766145023797665446291967158178508914382408409395486871644276001923899379090399791848883017090219575758485708199398006259696324385559294731918935001592426811732558593593226510894619315046509825279203883973475362337801399965306347999241560370611667680204986540111143413005806793853117375807104546229207327774602156396742596522233849841906715214853222295545148578022369940258877498659619887160419800457814202082926255593055566247844390842073944270874050365667782000922719982526914743920060995673759563375725393512547209028854667569758882550528484416410746036887220928439954255403657558822684085306094729873018111146596959003858269558250222357669388886948644451641420440765818792595639535373110449021068549999853621163612262978228303014499973179011142785937123776670916603988348351783695787345866058171388034240240046101365507475668102768668558838385389496643884686376134281396262500466935932070302006878348694250448588164199313909907505112543644521109257810811948720345650124422507850934622639301399198313107653590067248343725316543615410992798174104844994138024254124441105710109533123756176886469438706119532048279153281206533333742816650797012914620137121405054084978353307711325369251362541051581230393955711659790069570273813317360223793913373457770225360161234266607221288779986091403342696295180081901808169014078821887967866847301314692543167314571050739308801663717882401546687947697787793498711032787160662146730641553636368830093663367984758697486732881804109117768261416535707626461172022834179541429402927712099468424593044346222916003607948435855068566996919773344030998693334575550114986274795912954049450589607232069089269607107159929223933806744382559573958449418379769304234378168792581198360001967981069239656532306801642470111328022565522895025801760849060840880475079152664264827822524524967519188466530599738320527349612209357828411359367486039325633533301564864649036229637737106536815435839441173922885838060193251500873394029667037252342801026739658305653295500430020837584299777912503195274871988754517596358032827133915081005898027605443980315280166624078305727806430613099813318981061573248952693207136336846919997559597601743439090367061508395211344556863492409590988427478174433095073613416013069349423797332938618132269506091423414482131377578707883280996264073196626824885472917032360087715339744782143471270294985519746576620166521668121725081812437842339082870935366637521464815622627372349382802839318585708554797722505020358468301895078216137191090795367121290103980884995412149492852272305670749837923296703621471429032827534175427420746425104678641359118188714660357444977093153408871914909009055418843863523748938439069395154935644579048458386038170090546768104087285928365102917784962034950263581997357371351440720744748705276131864659149286674048263406746655558864334781486046899872430719042361740626726935250115740593893482806253559003693464057088103008675628741527111597333395540623617333926906147912365671032241385156692803026243733800546107257990442186904454371735654059197366273009900906905323591459516134665323975767104017656357403082279043425211294153613485005695669664164576055177567354255642182056679766369139835612023907314632600229468433380217489380527763887120088161529425215567300784470056607141655049781275956651037126026647910730294851854177551664625161813555614432900492555628881461810271082927044589301217795188503442094378640821706618962436434727501822094158960272372782165799172754316957821590626960868207945095491974912404521130921639376203271477685824922356806299447534608218089330821979390248954338243767761428863159959705181046481562167671089631423274002558229639174824970283239479055513643615510798281745606229574600788190006476014029209279278657011712880218653689534840105563962812168538840839853203670904341258588165447309302178273728586604770477974810872394870412327392155303850110683332496052503648041116654262857762452974808458316729904696381455393594343996062768953184996096084686070386321489567369135164904445826358758311790164047544246510857422875851190249432650601912330949660090978015370425873244609794676771740564245570468586195858814437794858488282321970184081526018480866086821226021417157703325904289478219869547130843958254155685090816402529800789055945695815311914501323131900316838376669737928636925133521304409120120337265073039667095166353508593737298077899110381914173675828201313862482553263979534666714700083264083190312768809378635293113371309151322267904338638486325598740005751552650775886643700771581767270077208529834314308045014984342325897459007902029938705055559040146453890233517636419351546934869246777597242467152210351402060433974796259231178656399695297570010506349037339711829323053227638977286065843442460681247667536361710530871495706233587691129375632398581752972631970763593777937451869307050447526898122361839486904746954087689313078356417802265687301077566898791844866463463801865784558359894989616799335374777584749492531263095550595506662541166868972444863125454308988093046041359749325275000178952870856557675534450363375968499006817735095144645516581762280893442236954491126384397523829020109007133777099161566016560459467890329022696414660330449922965934388400610717783913605074694031752743695144258047534909975349738400981886785633240642854494313817697258404060172386789229950962173868348541696047128931464758307535014560778213995825498762803532673202518648279227876771521785967435666451942744109417459704547753696678031755632246677032317996796446833858985968269752836178674994585561624207616549100593250728925854806109558798499895567993727765842011242715560117751718599974889536282354329338970629836902022077562969218804983662127943270185478391102134553876815743131376723353155515269327406434497451318318248615748052662625814406146972954747629213586575075075028992763022596832571616933157748145193505925881314634302158542292961543512245631036528097023393157370905311923990377188567255812234845702989630839114519357962677111659712790163559512488570833009051419151540843387856426911684256046003680584517491582163529845723129890896208119891734243059324873973604370767826584845987318002217469518527262370901138813084381854829409587987693678974003086405465678821331155631622015404685696420606978034225452290845057201969956301860673101738460391214230560069706636392938214211293375437329964247449938736731308931536496988999238543320707508447026622203937839780465810148251714981514757680288320780175946372635692891978304004049821867128113116980896363378350147243286836553112279006376243240208755263861325428298475743806135388665469973024484851834908142768223360000071947444527761326274806255370057890401479519348199199146419878107249310637456639426546229110877966636185585088292551949901493189278076830028727642184130635863598725428892502737858973680020984261393238331324170163913037804632373343031897318552789980829217246424214335438584293765869050551047518888518102794988905220508469994662239119722162851789202609535006078216197825579973383794627034976819733161393203017626347464944952499284832836313331689625807871633925559078732721880563153045274081985414347873392784277169179310961790669256351235365465543083809504243107661776497252053123282395072773714199356612402150446535167889833500713374546287698348206554907685098509432072638723520935931604313667696661685420847643097547468810038018181530656886579632245912411967343354266901512212181904192503273096326549809137309649170684370808689458056745699599259339733445302683921453336876988315486588449166819929068917703266122592991205177510288880530647403784120816238971820420770571747633174505085240558441073336372593602159864604778429998231159454242056906987448281116151708119743491963604748981101107039958665934097537538191889043928560407023300569114503826386415726613246048219386390625240456605847590008737682874931201280942800601983810932638666693265776891537396167450078254915076968796300540713490001862710685398642116688780210389959267770623967478606128053682249318895531645073014201269741992805387894886864176514043565181819422287606639027976306493644304200556968789156970918702680039631283415539608067336061716632707367287316257685773038716809830069346940239571854114464068036061554452389736394732840333075389317519080887852455143028193801622947623392563478377690421551907671018022838099238378333295222698855283374429196081508625148349968716324304378891995826022460763783082168567819889134534028811343411671235729546603593970466040192030073942118939695176579508784616296136282826939193043627642831352856385222753705433383588031324742981389495797925178540261760087289303949542637960345600125957698063457587838719971966662434635037469804267229374596659742392439505168350158505859917954520858189806867845430370300474232283974429366349954187683951741241749584049610300958146178708233916627233290232733748893456835529541166388170831758391568546240231395614295367990353322654808985583034794540581298800852178933161347012554925468776748026539660117881377395453525666941798140457608941360162618455360350246890953599819982140389014996544618651761406055512100566312142338584792564709725485431211472588092962425461915461516230998301850805613716359397345441164471925751024664212673324574920167648606804209474178313525215168616906826981049029859702026852859558590612989858104140770378346798683428822406249144439209834218792488475469302613773733954722520742397319170386592078332528611831259555302377859938391766663373178959697425966980001470902590677723966046276904981051925323965928526593721402106187892549028461153448884990399534039392187176613772281058451438998112797264132607497390569219754277750020438481594960355506548427838508605295896849639699903564848037784160084253631419003685638828383317431501088416527303392755626285173334926681168161818050222004189433795526554132215361069963047344845321534803508666943670535304120789195781211990170841345564615349047438746153493890075452142015889112531067552580162230361731897974604972901317625740001665093843381929451812460078251447174438684112062800045247692050601218285563199527359215938935716155867755184888792134978704346940580904562624306315939277746902595752467119398474306021680490365779223490416422657640546236061511026948761293842902967827586699393377235835727501430615196613377812161017459365650214732016559020120886594145648658506439242362277024921134008719333124885101370662909791209153804144957176077568941226936239524370784659562920303580612354376391185295835245604538111086325416279743403651708896979546218673351697595187597015087858377664715271933803673207453472004210077367214467965281384725391102313788460028165458406036405998205959884389369447043669351731283224817273236047402567830480890500566635200604778251428972193230854222327822762440750451979573666784553075025462709864294655345651366580391934908016709545281508557290186396627237479659527684932824739607017784871536784071747265197676277700161106854884725565885862941308919360792713303941265714239782630988271116717789671533869425969031841222176951525390872246425948679415014478511520366753429340422719088846472073435309574188625085271611836904018550410149823175297617948221800134857257527653092492711064200940636996875014620893324729912473987812745629801624377855191184317767352055743368573232970572449348679497229875629055519285952988565474958186250184402487853705270345137452078776484970213404684922756401061837289946470072224353721330218774985082927810852479114268265517483747675658138189810776220951887275224358081890910309065263717356413212053987962175827240828991044847746249527685049411178629548261440825771900308891110143034743001886005221225878353086136380806825567151289416988602169675609989806295154739388410131140318045295473414294841602095748165322174238626149972880450388982875227524057055025739197799000523148594929954914345352790384827428401192360248399150932975181671356070553647700987329463667037999780246670718287541290943451880402666248133541270318825954195159995682281153608736554025181894366837757329648349769209497192426944681864685280082619867197670112114225906891251185187012898986024862255629120123495827501428614443925189805735217041261901413173608074891925023197418440634174769321197164683910842443057803694924309655068715341592601286815993635833674269294960624310336225310688277329612365735373476032283003103690745665915186055099210724003664243110039524023387609587647810957999806125700943921284873190294086902459262695722066139065342063125326048716932194869213646917476294130339838470455210256527281847449536725942802073511188596725187118452213252303835348834491391795382628976188656661098889144275477149608386715352277504273354644197185233324293841324158082996412537338949564792446816905812532890147415230384495727144957203377313325197618031104819363219386082327776194416715539414458436799748410690882137755650268801917295491200955629080321966718701135940405256092666497215655937666411080992891654534369759760239316103610967829391497098251318537189929486602198142253189918728664409526881443425732366887124707930270056431897096701656269270440534017736554207690071778532869908178800017782882866230159721252387279626864291244838871932439110080939385673078291541549211610186907238176434866213978854187891035008999573810231003370340893846646741980436362722001532346164631055541982729406417897188876561614379988794570826531697603704169604902545025465765627135522167634995456838623126707368568551195287387273634957086837824941180459341134845011235856808627503033013295314632236892677029658679243181191198426485575128374921136097067828103171231364891319394141293952800499120429610605776863342200068720987453185831218296478064160980256992225737014035700344325895105831358611481643173348899361266216467364112482532174578791822307834979165922363140561775755821944612903735612245914386013161087794291184557859911593327254151804330573475309388991185319350393364008765925851983328499954370685242432338008850690046203310918630272419179045300167504241699029983611438868884216013497725236181374314165309430479966723304005925492020642810473074281536199495494199350021196141384561908330655429102482672386488604274357819861637071582304005955524750047689283066728984554636862997812261896470908684953098456184532624999095916677895648154740451582983742748389446863565478895390526021945078544918741239576518049491697506159478290929129998903978950575362406253132580093770493511435203727506616712886640278296709769125755235496249882973797865326225464498105170249450831405224058756982702239908377984075726840889467483556941284747301264013524929436757586872401224536673986759229348631670441134379320623770439100826510069225345344637067585000883460874189848056507319937755795308720330531689242671615331296107389560662429540504135900938792511450761756204294529702945608081962998936082491290422112621083690603468766477341121365796543359783900446004371815094462409215111868545559243908372417959503362386497838235188931162808747935310262860741053046794461719550463244878289908513955411905818069584914184663074018360346795957111918026839548605986829021484033742642951491826566598787544456757969681148704071042065206152652795698628962785612318446993538278989849993004723267733301346001908661430306939485355347256634866026414785157311678620287947186014535799347637344611711395703242543319462821864181183447209692398648394767948696889319515533783370633433334245936579341935951162176160114036058168382622571553782051591506388069126933709658852714255413000363992818843772309729320868285574871177995503726902411158804207807375198669146843759032500702894800503424194363781857755165150690085123535676683967703510519344534484764093504650885679334148857402360714412380656181409608447555947173339919303714447743620484884201377435623638086397310126118265871258294584571870272845812043134589315447591974495168832775339887199654911992530718920617909230859770068320832215430735906562492044081094639971274157018749974184771395067458377580366861768103731659191602867933733717902519020351903965431360202120843993524089861842045584618141696172424760730057217541256351437104340218689983951132300752994728886349807397423194220194961802977294403978514124946915710771329062069203024251491964514049946642780703797433037767818543668027572925852198095521650162386657951435382356056953473030598943405705849622238767519919528229108351273976625351242452271173477842796735978958915068622869474753550746252193077714630083050497217098701028846464530599661877494880770791501902079264715857489492466190266288461156934318875570170480459176367335397366949334240363924684625416496344970917991279617716543285882350957828913004270051333721331043125233107975279998613299828527795422432376583252485608109447751553490310998258108500385879732149785692691024111773361494622814358704292703887935502958924979719007270734378030178334225596410879902264733664815392172002483832794544388233259778218627383396761056339573204197718174179148910081836171705478660419646510865998096589592952810543439068468341107235848214854144694584190967613830478350550804503400772084127284565947314280769733986810655339865550124827409552918905506589923465841426331050952215856994851882674653416277810433289634573834971125673007439340680170948123721126442474310869818376381696469030283236870417172489850880423224801136117489782017519418398778797589654834896356241534603546681334637899786310785651017434546995430736289312955789651271692647568371404929180066576253643371356859192465886532595118951919614584541701400846927816634874123236572685357300747578586427146037292544245112397820152244692121218073921568760886002314968429893996200922514983727272440689292747171959101570192437732422695623858564242114949525698997644836006707170565439496839169097537344501518753731778099605632080602277097241842422922500287453339669387194065571525206537117929665855299067911358387213632544917094813498677758006717315680620937502671244798979047226324356910725307713788688022819891949604382618087170581449578613709957454957805014787599822125523749965596952645309506927256181634578939606953138669867364872279905098770763655592542265143734718105966342850990846276619565629701501695543529020908722940803646199156324920824986060836849414251103174454071712513068411499251391497775082167265478146058323345741940275995568359540963763765991694645338974941739390234222901886311376893713464078614754348034039117752715302048342588217700238891791049580404371309025106649318574836617403427662094324160191476967188204700762509674943472092062785157313532588544924036007581530493662411596039123042836405530950026335288438865153977668033194196351389761372701685038253994064541762487256759439842087407193141350970713102566053294384269566777326404338975381853846445704979585252976482003826887228902546689520513911550620356741197103239609909734034220462039185095457323838713201119796825651472516634445552362798457965985842566007002420166372877298126897460426800126698731109157539179737593414323685027733259748003920468619242795997156648348536634382767764317038456319480214057273999909586741251311283563425893460206124029201316829017648490822267651870085851352825099431551305762442452146143478403406704855903664159239101551210887100896392834134801005670051446717238461772830901091491664520457162097957360086953039842490444213978380006331123623963147446326018927992629736772097226422324684487421181988845886149806831103948267678084831693464780403582242419934917349912527332612128576022912417011298864360460015644475871668977350546749968500805675734134584146669490505818888057077160287180879029382528875698818081337835061659921256766884477548887780406160290803340444776057889541136491609287958437008531600003214323908877813772934780172132579957500883974113492353757575216063004486764233053039776044695959270550875033048846125869936240274661550829274733582533857980509474851355703726516145324636727014558204678417040697597442037445882244402150190428191688043164381167715161962549802336397441849009389310507321506375575058825534972876402873129631980671085686449182567988969903126510648025355861877631412052520108673867652995494665284239698219813761473139736879322188681549397131513457378590926484645502990256454964180828874140960320746782090944908078222807327866529278638235323797503838525536456353387514747647871295543119847656349141672477770595666738074545779664281032398945461988342517853239543929853659710126887157102923911255799458203802882923098268819746011431826823367851800228401705352859556373326286320222889671101072032498860924265551096789702985415402381768912357547285914181969385445622359317787982762164406542036117003416980469205314341588476849021528468404531930639405017933830519611215613200391227378572866190401181541405584808098754573173288119850385466722801267778487589947900431022732485151407133735991822879531735708924563221162419439712971531113526587768283553621043215912075766731974566052601760811486876731007573388695177129503766344220055295860537715491927530367438544040143001657610692371944335521633993883926256504338129913472302235308784779138237004882555698650520916424066608449300016998282538524188187969272818190659095375070416690881244630471077856637285323865110610085919372159690481769409523008739351219285291924899132871235739658559162494410117821227715524488995722974109027603930333751733429262824726730879131039736598995593556965772332885626317956148195834171951327181521080508665921700642859715470520985754872197334366497725463990001541485009480497420696761925959332864003375493448219777943454648988084900493448592516981193478770079357300653742532398389937637673538395439833927148361633130200092658469482546115690911999502345783388886170251090425105824217276910546882340633957372040310308298120151296118172171045117211995037387618469460975240687622907557216283242192037260562084230207965033463151263183832755610740076311181159964629849221912113304061440870825587096265683495164180826109071808135969274291331828101338313169978258761852945925574823923131884607236850106749773710207900286754038006925378128756173840764467078888242602389440996146116017037962486581666153509575455584847851438496323776410423227432128380816097006109571903697317883911047996496459402026513104528054090507617606572671864420238877567498943141599151812290421666397217119518833650652144258470237169747442681302284459438449949896230282951680265092961395762611502439417013606069048821315511439216317196843185101917709597826922313777113249299213049922520616064463660902527479466901514948145493574568073611933336605172733207212013773594948627876495987592217285796852407213738527995774653908790224582755186480863629380423948036444591837821743662576542995932489961450067697530252498360162998400985553645847905274080653648134499675007404545195400052317824085449982011571971038593210231029722538049911580695880463158239103804565344433557045546596502898684396521869619158017772860986934695808143931343872857605140193181034749640751418852447311245935648733329534258177927573551027732712138558309610570559375489593006803069816148820941901389536094778540748709668006837028276934987110764157595560460381440592382120721535007566078163304553749590000902953373053367076488860777210599761589092521118263001574400453797141318998501049008273493250767994216445261604815256794268687033961581208438015266175734227649263103114051621885303101597374765050384270953232240370785806749570848384733150163262624353347235372625362307779959799553715529467191497882765444831688889364419492962994459296636738623752543022438426640239941445285380733014584149832235467725563316553416520675018328621637367664852646072128265385160745061301566544751946201326162612578039907404657154015913026769966252749677880352851609868223146805485836404513031505346072619361981213307753927275564694889450572041460584892849771861658329627527611414022125448091907385554518776877044775640742158990488777202897503219354780018550015221979986859920132800372641588182592685455094406590919568336379019106022565766182679314345495358275612688230707817185312581496549250273405977372146453530198426739534460982525223194380735524669573093405638608180164999733627154237129710031140538859219806093786067230396493679245250645442309047893957335043660098786466523676719580972007215714814454736319796289393974071727978136611438763571276044363657813024421894236332860991523189823253162019418942391051069597359821100072105143623383820434136875521763257890447600812838905709256178451266606355095408946551771152118378029728425780835920912188435340024783750381974263115522990916134264666915568904902401122637075878316894786480631726304975650970717736261320226858435593872642029878022260834845495820216688550164805082925217742075966209119094311801237680079786132539492121039904426287861254959498573976260903060820636797031809269534371821851860590047210332477971579219340758649275179721863053912453007186810517647378517376715305248994698409168410367745963073910301965440180441569449421564187979779207869435485580038484352226331674575796659313785664115146918455733139689165052674220858388272936871557303405431174868520673898748012946595959158300623883217910104631182309420027396842474846166048430540763769177150967590362129239276831540770233803607822159788100279758425311492789277623173839490546735638569832367597723566536068157430192578301794224166691389189924302136106455781202583054062713431189033996532155410774661072511261558203064425050656727349668540396903279647894576577957930949786328900213767508765574222187759623200207524861747423636750398802177780442689244058965444451904517724638750684412148240046318415871738619866390037504386589470833043817135896751245897389645486254160658823541480912362462771803612076320681225745934085054205533847136208380111372041316746797938216394418682871575738944156080101528684543906523987423519105283872453803191882635975953677679026098848567427396494012950638381679677212590078955161967573155234344597493070122237323966097611322341289408784951928274683265714130554481609656539979698829902640472006536674849146926744089286354910328602509541638252595294791491275069679956739810223762046003613398870284811853379411743796235377810582397349181013029755149213043137526154420674511861088135161658171001222672031045528114633799422918922002132520577812006342671102467483931400081999846238578129681974846859497358044759150163608565173498145251165174714037483721828477786142026283749306268589611372888173972543232080371883734129126564785484416325462547946318414712669995010981963084427982422510309154105459457909138545198728940154915507813284251910247866496565614825739917380295404507456993214252105498871400548178353624217027868788848652228987566639285954184910347109788391563524980434468520441502478400443549233126419491158158904321018779980866632087566568818345780829089553901745662726595676444077476617285438575837485137182706157729736503853221227357738633775674506483548924760522209095470154894310240723136426074529354141006862120423472309631759127862727217648638313205298746905926181087274361378928177545023753225900901278646265970073740681541416217440577444128107440199470913017899894351515411550926106458299100396758529367692787755584081821979468292590859744985974146296399032391529543174453336387230355740371197283815266954482885800322888402852825627337002197272623974306281231032407192816246448684180727503793517062158275655817731140506401892368095355035061828317139072783445491701434301465027572967893677076411768426598015321246523870465297866571390608843951670497942880474695592132581998386844056196258549379716237035128671430191173436546768183640123662873883711962077264036566821177057356400002520260984231238334229771006192451822651985167761020338040173331514622470555777868696187127437561898987157951230865499734197836805979580210327964961205317446866730673623611101481902481596519960269684110064262006214689434281693734672857546146482278441001780836613385200256464346819517990815184548097435244703909879864322783610946042247946987656495556013638445264197128852012458877302695525215982765461893659325910182735583579055173691233647445521626323705428606987940937029933417568593745343853327294660056337980669005404910803253369231261690907300032902789456848034971349589221750749604170565302315957903187521896702516946485971955118118369789278958326935749421034296672444671003716947138565186420148229215972044497995077832222327637165058221699013397400187777308768376634271442263843021164034781383270159428179833293356846065268279132485296910382840236106417150327574676392027673054295757013651141734853351633953546665836878289020458900064268183705877013266077704750063817693886693599348332774215222050425682608134808108218774456350251844363667853278255805764789666204170361458248026375223145238714225694793194541585986773607341904370153311489087695595346559382723046615206259776709302201736744934019366646205778284490884735069922852021780787060858899567053725926552373845880023561195732752582318327874301734704340084187079827601208118440587232190092569167038714167091619027839796503641543863195673526142920474089341482116137056584016924851268177643447471176624844237658020823670466431738661591474378049312330897094777555461363654849808693609857837004612382231368205627451759434196556457367944125365169016669225997316861457106574426433544647670980282511989952933115654487885753867790835998204465283827467632381047053691642045753989904752476701468343775323968097400437940059596140001382050973792676701272986000792914815958597280096455286790669761710571251898245754307351893806253800997759364730042083712511081723417197861488666073123029087494973170130037495142927473383265134287944168245224444326741144846932990327695358026572859143110354352856804369897872917561182808441481863516989759979491915774684273455094042024118307435663858871177411141270872552671300337400285885973424876597703018783668360308103112736703531267973261350029918293104709919986820541460042596871831685946602385177939637808784239574588373849804187293734697538914539985493694787785663942687754934321247203712846313644899930547949208506272264200524439913757670596823923997969609674802397694954993718974927651813493599427308775524851369576793552933793995717077102864313423104449077027092592241914635887962752061230280213888107464655287151560228421557255417026675694960445410605063271045212643689540959731751472069028679453337732639398039875961349188941885507410220303205856878779245333405548205768276728531756349499968988554275889076399324445955444805676609378199562090679557741329213013768663947346876329225761510459784036646167189490017436078851333007479715062875953065702018422974199006023353294679541592457078968486286378488383236855142600814045314302023114154787126548011953912118608609044498471941994515694982252384883654629483924007486864654392496813170848869383762808165520037619860900954197766207108060502427505616794216626812372877246679500357959960972695107147466850126088177039949034669748892919262675292810790830167472424923519141772037238075190586243281099517254701346484115310994276781002749781833353328882624342729563581664823491610658302026827282481817582613434076059288126174730605125446073036947561840651155841831976781275522479764627224053926822819585136383067774671206321627207511991940951294356737152058097497495925387900108976512111959495877301546539275053122697105714497619782092832189294289698469954670256683930520105107122561522103593834078271104083571175287768515568167229894020298767003811047360344325245438018231341628391995833647822489136466339874842883480741144791614095390154010606630456294964452878149523067982111682027425404841558511137888262380770398046113212108044702226958668802387795995623986648151023330044576484306791193993669434012037343529441295558290372074798758722194562113186036206145331117988679080035987114117758586531465540540966862768254354290730694453739848709146318836483678363781947033525200374285498441513868619216396876304859244104276538554866012221443487286033132787933507838832604200159510054144345721266882497353203265628997357724201883294883074953657203002102470051125293171257692675330975401566930917100084965586974302129600033155037025529551944207894879983981405584102843602156336823194773722119849899863330620855713215303064012561868653420691827032040082863753935175679292379178140571206595974617960138023904704114724157366786527969310889432107608918732625087646864289025716696227015472447352787955519842273396225669041892596519817650428055774136953183943553991414786553281092395929971892438564162999337580961012428096516501786834671786537232708812761576120682628012675778062534611099065916785648502336297788270988700249468893359335751509542882519886764205823057580747369868153954509166295765841246205758821111404042429144603820999885775185692268275007013925060332225130687869984675482685606072547105619044498547958516857994013376102813091569394234317786603607458987526508610753221233857209029448886890864232500352069195366159902925863106882211227492060817855662467284764564145037865414823779797723092602496530818827048929840398727027635750009314513614769498334339882107391057310375904817827151426830925205274144727759042359366469681470458021846309266320509498391196413633616034695010998468355598201805117389461514681364678777493692343931976991855126606332373982226232627781368053173712990568458798710446069260138288406647161037626604755575079764003229433499503643123256916618570137195435636617110705314755001884100381216933400687854998260933758226061768992517261139093831443328258873262644908559470848888318302506382194595468563265502505940694739391059834722425232020060757047470383690488883427503675288465085488790400800905368716295967534430477761876491916436936554149429853855984548939978955799761290674515232346664272928940024753828234069198955075161142510984494777074052248604723038603513733695978993849958197356271318938766133214892198186312916726387100727285402369538658134530543733093181773866341363797056709469367644539454328423187364600998604601580186703635881163615058264348794835716262920251972933916612258796944114484776231043686105077852387224508852839299071844960575032298673724057555771509339633696931980845963104437436183051799051706457211650885600268476694627268292368868762226740983499024657177357101232121126793014420693425371612264435482696010035306578477845971418121559507459973181613961042162196976373780773605257195196360637146441259929116215423714823982183776417251796784699547577454174862260804549924509599141497545822891782945147075562991749852229791192756018183882227563532485411291724993459233795981151257258127253984091552279091759759900771767196795954974059715932684470737658339641037068527410203564276434741814773334329441264207652720906948339866713923829720674837545227395186337165285439759014528654401198739063811242426848555405695255090857308316474764582150563601354395502380894944002185185981291615479503033233500195982913321515290611957428820533290550220209708227088985940306109262957227173622137767115162820891598526989070623013656476720462132125549298016685309932632855368495703684507789106886878256689190810038194776493309447129762068076663395888143254334567039041689646678581815214690546173493214238041914591911348879422960713001092033982664084305325561748689656402527790807655014864458375067174352706332697336203170695775470538923570716146394581685175859951844742673088552900769472502032132287719413898642488078091834859264093112710021692236884339587609299659550092983179417148880460120664601100096154758521736539543483570149856847146143717525769431381164349031461165013465923271457243559682289887715218764806109644314163363573932790525334035781954939620835617235147021424105904744318251500446571374739815185089254491596601674549741085709652219733388876192572143756496946397877230356390011189460665775810709275389412034687036209072835392278873511898594226022848741877377550992240766023478440737727378452898615931515166913245425965972572595850867926904622568536793998845413178982710440835502486949268321572059576716082384972293444283068041271289604496962875051122392157589321038479129040418257127642679307989736377180890928741779355379782142295395662116275979325307787131836565770190312498454091925510533165609826069160729579718340161785271528676017506216284642680825207250868747599864684098001674748785671022531320391524808405262377928140306832037944911834930447443850909535339350126728239264302717709131544428067898433322614122745653770135021444120547473338701602832285806690774084063765632482271595161242894893204732146242338329653605624588186316782408148414999317436448434816206149793822809476463072639628035303988902066118888263091857741904736478038507835811804010911453197023165633806920472947093692444536108878961415020447076592431761209960299995755882468743625953058680014822022283170923551503061498064067365315197299690990456449802564478011991436702784246319305740093337655557769522884203882891438842420815464806068772250841317109460313621731764764509650660997760971222137884736083164244944053630848257940921553794122416093851786205799498918235065573000495422726594994560273443628938865798525970055458182508942169882157455610779926277597129356452946435857953670070052553076677426288434983165966518381250979459964732034428665309893124896402099808148008274979189138146388891164046591328362329301646246145964755757276053387797175893881696903927880575445370165942543243005913393229489358772703539073925910588853913351397006393747093675016576750563132209304880014936341853319855354574182946519380082658309054240773928309706911105083903738102105663609250614353391586530943991361435319172954910044482269101765544872056980313028026332662099975417868223171195173729995921930624714524522027461021805821011957929936551272575229727552908361113095168186495990928083072320466732759109004300241736251596738449524761204860211206504679224911496667117374545858846609243491009009001521556788541806085075331205335716055440047656006130147618794073525163596166837983778149496442947439469232606134841954762304147143390666567493308812312534798348151135015809745030545610473817408525915987530576370646449829444238336133136379842536154251640982229308815303521248346669232191976145483691020176417944316695698370480845171805035101369167939562418839754745660420241470335141092849038206255499172231495792022865394624582447047321578518698910341185733434634948284500929228290420859240039470321405418862444804290097646166079984821430052382557849784627343532611574808661030253886196008793422532125529220098464289271227334049960254856953862923610313418799486769311359342533680360811480435082760779471804430449879947968808516594550906429242948435189005466104961510250281056614247033087514336558380613669536148746115577158781703891038041077536211134775823227120137102858971620928765946710763802161488421735478470819862631669757503629447349472225290566276144870153508518386920407937007742766282464492262398443379337739498472802151989711083010402499751174239619468824060742090272243157074897859391512114589978813116854227178785605583821686770861898771686749999539132521516890390898244733808661654670258236918091571238899649928801477892731095918982096514792954924675075725528987880164069319310763577612439922226262288612197741447896851571322314226999107632354355052418867781677390273881698585535635743902448225729773220271386793370596074069546674735192899222225692989733056900201637327828855490817995670968824514233424435655014997339282716624981940301908064065010708892116611829334148364946237738296152170655465743470286635806761345767740278180195093102346268402808765523797304021309804515225579496069870723279121462861983329539154243928174932767786237329884160785071701532487742809265822882137330816618866308573566218663434454373852518284312330352479190867334437576207940066432724811690453838107728127778508116935426296974788395254677380907898581342709048562714319902641647054876743259407153745905549536291359568078843080604246997796566554629531407149178877324665406697066668484669650517610658691460049734784998434131747478036906639349097580023558454505758879669224242702335784035047200915351668457078432746039634013895295422642934519140277623103567531901291052126269244792346461322258897432183449220325430841506631371482210999639275270671852393808118064706122385067790604787975328214557899756560201422388905739834223985585690223238476561277526982684147817301571200017367923941080612948443262590754917601922594023666130228936537213649014436227108932837010768657780430123973931365001108681203555441779493767360451338152372563921512996556588600045670234676237934435396691723703665660793651635136440022614378765220167438963177968022434756572170861869788210365736821555172354140834416299210427675109243570561644852181247280351679726324358237239829250749893151618043903941824605319568755577355016344731804256771047358334563059851974456470777204041908047914951796944687085728236381346838033594910100740341998294378496752130994377568147825746040350826718194012066353713679010395500457049872416989460687417229520139803148811488215190158126532119410025596309864604927869602889184037007731545240377421058296283944998404810164532928015944148900054733065647282823782722428056855335857582818779256805494173597211077776546093005963820643364920212396257109038753689350140359174269374809830505310294368610165380499203965436923488572223226867345737482149644117715867160845753366442819145404822690014683964261772114064356187328822358351108834277188761321619706673300018499404906207285630242431538237809286589818774380393367688614252388865220521161862720358574386313390422041749618198021669853305849030996808429827074228337308507314835505381026317690855342738608678643806648701726966038007813273275338148972640141777485879719105810030965018769788959105698742679817031775962665863155428843408220326238155761033853714579821062120672127954550587092950475159244279430878009330188339990466463373433952273755733293815570637148495107273476444157046966274081677512878522006626398577697421567808911293898192764265036291872825232171053880954142118529418755125458847225818669731452576207353896155206616421070187917157524509787974591846252359296355622512275556960453171014304429822211147276762226844042806250776018915280200027123896444735422728386196191656828400895630789352563485636765451932626295703101307721679395643747345428520376973732681389727141377303900313494672661914884713494098357560328085872321474392144901961943996881163710226189619670518601478138911292335617503614552955473439611700754901373598510527207509070383180874526693872019675201522883729880157043914732181128592500891431855263318804825274843730273506406492407714157870291174207877241585382286796898987132744555279247796577557924616653284822678601720938627795774592234570765766295228203997170070953536255159238200851010775691275527673476241422340171427059825637633986387700980081508619389482843648973603948078899762380583663934691493152872379108863632012396180009900331556555844283457227706203880150535550436998981573207690691417197012843101391077357525796600874737776503978588588484658141456943302908438894653934254158129123608628252905922922488087070750561049249223913073809849464342887320612724755850147044404736740527270402148410812145706337069823358586988465505264568941243331350705378250812740635338324997277129495388716325793350575213856594558391124449870888204292762243819154464989060191871922460065912834875362904954664165030426783345778132270404189282416677514082509633565580685010879446984835374728392346729589340391051265314976712176186312421956729862735988854713114812484850406641739171198582685320061882389506759560852809162838838448479724922834075833675695939154041817864239407749281712836813231321550900348669968360333604492837724101728573464461566330663639577687063152744375051903424388948572798751201197732508842796685972142221608091406906814443391137257671208423783767981919282432445260641650526276568617815745454291080282467148762649826230738256058650685268616557614186631488838212032832355583994463733228120368885213128018261228266960573356650968599080623946040159048940059766260874594913218240682115159378141362546392708205872384614458047239765156402117036061769245142609831680568141841157377881085816348881130367861761872672878695326373256015347960799741747670286288085688285654028290761894065336070690166503111225744863044548265477673222232422237777499735698589944114582738517745689542189376373722477877549509052615684852231684339327724428886437962835697725835942855904375398294526824629791927291896186665420824269831262159421717278015499735944678613559282961225228356149165618035535497912108358840568380588696234605475263822000324602791857231242097616785789661837887130782859560627954804379262409489020360642178607580119756839256729814371867661902922324623516480678551962240271644621970455651094270195110657783244753838711474625351012409004772978244828353982843792502985762443563361036242478851799125310163084520053886319206398165284541063946787769448135406681484521440658445830198790729730290495625031521718231543164988550835963023528337451549674976142977356404147888407145422936849955215268433511285613097921975535052861233087577658398152246768831375853914117219217307122705330946867706108257980174031144689311363211172147047930069910719910590981865827918585394607646614911705072541131371089722329511468216896470369061282843914241988826679324385568112175500826711022203349261342220011911971996079792521459541765997539476826138441813110291047178492016780413052737806245649704939992473910889095946928314307760193330424328200817857481620774469084916946433769076438023575119717693190895651771991686194529030261292525578359872049339736944924562146746236847076365348769956784223673505911878948425117521778251584116642674700100051614981163310202880944866350314670220283700928094885644087617050085020905452607322463408152471754533088024444039860366321833207959517632899359193277203869122261509786066295333265337622042499266606312703215809622998578983781491743799873086618276356486657239195561632190419083781946993632608387614775696534649277301120147730756651777780527855206637897140288448139175555440483938731144105148702668854002927274926287079221117393861031244818105067154212193152092666641125986554466805891414596429765677663320633725389201962037863455521600408054421552145810931743063336822749123884075658726108651581549605708013539504755573380212537516012454831441778911519506133591449759155560230240094071817352746359408400957737128378148177138384775604161331018234513138410887902784900372155134651745979631165032870096937136372572607079311865699210092933162455923759606430325566767702959471189782031946087827277057107281136128374600948661623134007316409570299590662490211745971080546165086290834895072935503628923235893522834508087221410432803645007793132116707361995913487289656942765867897656575339893303332296781192604979841149863182127651775732801558371690465690310113272822119373085047557978283239583211316355157775715636535668188819847710061745846890281714348038234232764842439929156231015102617804366234800978251503066775418321805287486413445731737455488163643877131356252087769751735663360250697368264282356054136166090348126686354048282342570144407728793330144484234534504763066303014481750474951164152640502663367728952571392403925242038235526362012486363090156161666597460491192271330401322965563872735210194709845069630607664625271872139291773267595426561277191783022301301878541751591036816183648167240808335204002447550371110410664749749467959631443772964611682693982583167378947137728403589079078268826618254234080598560880847894366903349042703789896016377536761961046089692538099523832055343570283325681097334065001369648176247740550682227280780500322047657200560219693465796208899908428691640369809223460196334226160442177951879253641052539247346480170694703738890011400141769465418493114249677332758795797707412122991263963285105920925894425961932664690619727496872926589298075125980157510305113425489502186574435419653448616221105530538667546492300831182938636967889563074338998696696074942759703071752955101672442614208553718720130469025625147917871348658676196227499425985531574682565381909244635129535250800508853601432829496920223991929245245643520250535918230320034644409866167976821277116586649399939668437175430671578514832726499893498727950081303053038620725551470398317278151493119192801883933816408996917532897195248624599582181177432771002407350794479071492466705879058751506245413462354297521190028933745786631575369880047240941629935743053304357760733057045945781706903435723880199124579078463409907986495864354977179877432379051909943002846606962597732199389103629818427522382368467491354498426355454909655493768296685602378124870707792670275977578191735711005198117112710646178603949493811106266425956633821838008254940681118939236583261383894303951334835590698571757028583690644832542638490327551623781143429710620218656657087576775077672076069133204096151012279773299097416565441138556011966576847349262348920692650473678558210518945230147189206729065539919033316082974076705597348193144853595257957381574433300961982770777834309647080062147418794861273257445173162581303494086010646653425265411143990360772043770375481357542528747217108016624380069036203910370615299695949392910452919245689525916648150860954106010393154461581096895065733101382327396779867003833583001434545005606104839199093758707989744715666313296675423613086463542984799571699430838429526565125588704527619919891687474996279826000183694793121222698811017834177701947644212536083757900905349498530033365822261918778838908068714204009745062984969586364184147285092929540669211205599849705695235041353102210266366449477440992090186265138627078157632885381281537190434339736905222039968365492994842607907155346891989395039624689466733458112936206527463834840496896626911299279375544605206205968569470911230107684182381675039130904728733822535155188194155571435504472110434130125159394697876390846417459102902600372110332949993429971423424665312829258523524864912501154892083558214357342549469799431620239715176994958434532362406974759695405040453296662671754937881770790413457211627189558562675311339015953598370035598171236013583154320452359868625488716397996944271199187774263093880851028583085595815557091650726487761334052574235575465063046444572343434021210740092833011915186426714893062952015891938601870862927223519302378569481558262755375353483842919295475826789814940572378922634765756777973913287110332409155799147882597232166202521928192150952001569492660793755339029431627539224951805042505716022921779995859554851379905426009725594262891166775126876341672017388865921741592651298485728646213661449673548249755059860873426705545521522970455582659843616746301284546176689801256841316795723920089830328320372336989066979360543598302817001347613957052328150732065698283180670497883303883578065979212329765440305980513601437723384609375188063313621809188059079905411056272103881359732668652477485562921249966936689502938764937427916998717384587711805604683415287343406643025106430623892546011239375569463263260063426019625588582195499632925105184607891268454614178077644871018591325482055392423031887279854313417750846454073326418990610816141047293402720078825686957642349941881016978541713152804816898511302809693818230807406962118419021958340876837857212234528249193248677916992964904996039668515357664776466730408694910264479929029641524838855983568792144265994715345020211361734313237226494947701632713505313146426675426393320794837512143455816331839417357949147117158531386740954839668006169333036642332056797199935374982890525541630863944818302393009872902149119491889060780543072800960841732214007271026830106048323574642532763528080546141891614483692026156558599341847503625685352386276947786820102959475877112750063871406667195605005635412764439558379264425315608632305327572449226314058759289456005983490520536695308959004828655008960996114933797432817010299132110240157802073805078619481084072315126244865550217381562484723945784954314661356718551287715969914202142991520115286277158436922361160913812298410837218474198668284031530620638587765241429914568625764987769706203117397174303114506656715101172721036383689287564784704357149241472345755146422750296265485999402928539942555839796960279115637999124998588818136577463682511792040403174864988216761225216205238799190719342631546507636171669087781738718022253806333156137185521616320736957140293309015192836084105126387402224037175339625849087527904335919856262097871447763789194261967841951641526244021072282348500019090898668818390116124870889895934702660931313981362920542982240795945964595821015897040151860770394213691671633724956864859362068856755506189630766064386286079940901442386013227147681476148044237121403453056473628156629530892526674387648260600253631283880783598441425086629090748873246984329904327101340620570961217276638475566029786079591530436905400138433172618257929053641540009600366500723515805755341311520824704948035276208073848055932533499575019298896954046907745346981393931899327209989314310629298693561538253041844102016457443380718628661510368594275054490481633664961172828887631184412278636880077380521226939270329950672726977755562735945070263463971184973984558678514147820105713798244196868004665876574079291520798685194944234074158328298411061234727408294662622355379162383751539518688615395030879014894251046893394287346815194578572123597706883947641696161579264058078676605661973352039890380720887058932246379735248011403684046202299846176374270490946199424175583806365118871562710341313119661673044093925217924713423002504698176577375786101128815135524172257031883732571745979137161421535153167163787562553294257464152570846537736294916537462548075978603479398294974480702380946676716614426998669544039894589093147630163966031275842565190407589038335662712954803114356906026714815224502496100440870924532285123930941121216616445992781970908809921690422312462546371786461244059230333178098919182232735280676742973961630960884060671635107791106485029811214337153985259032227910858164137437608869470450919660589306415991972107060392307189193209383451231533388165875301036595177745011482886135008302091170742025560924276205210528861348667244451800258609260572051292777667401250943256085495864912541503090155031946389717336959523355787494044055942210264512799853679844735281943009316441794874160726130802280314547162183721816323237589807126219807717268509246354053659433973453134906387547796305545833239363321413486572295156313528009591309968709995140362853299083303133663568448501674393275090692312115070451207790322962718963588076121371360615709354549829845041449175071515611868529661533146258071329351736179805527113914089982455415750088910148962716913978698972471114125620516490760550272219873965014424033933297039516245188572462490582324037261241264251951732747724180485595311115400061267306631274600314352900674938449101390043772546751469436278862058744883863032385797378563650277086442760867406382001853627348850818411841015557121293745085324132232823664930083787851589450803032299051810378301957529868312455739063023086501575325996285378212020904817230329985585068506454054344075971207280728665263286442227295023321520368874159098862460982210918574199946905525438690062608849356184949184975854033391431155558950113895014643585299742592939054903958515981598769789142448500875425847847679181129002731432572732770464489402845658794946461943139236111292338274079379993100734163198803697103637571466218217392087626458864127429629507977856012807658688721227142138900139717384288824395697996741605417560694278036862567597735400253019429633321718481878691972820033177079899880522499638274825302895568910825749689940845422013192250466886511961405358778311010832754819549943194301255810677805722927814057851245895134090828423877991494973152980674928225058194206490154312401013466429520129852431440918802606518461572795649631014565896280630923027003861312827214319605467510362440421506686925620101512046475091658291855417374769597074840598917235507438236554991169125031628022428288262087597169130476970983447582785989169383187961007041911185751925776885512501726814267378351890436180165697039634608578845277399473308965789579723312846162436334125954487505429912013081763569401734251275071242676769556446793253205801480625535186785175024975626119578045244868682430953581212226459938027896150329685437018538434010577308505503694163793208724710000726882778520077839799874357785315573094979075586711964624445230720779153072428212094932860074323746315698086508323504777348498795095150104017373294631998717362071855956386569892598218975703989999287624554855762070499645680272319779751652265066249481319279539376635122895385092430870641271827565282341855159160889915996625403397571855365168025756120604704432340182594798625845676007163852274633021798607916811045239192928305173957101048183167575949512767920070499921992750292781573328625545831069810821984426160892335515489868095774837495497752123935158477821407829912936297072404300839018463132119281815468561742285773763305394854499385448828698263908191152541244368716183806595433314742951400028789361526313015851092856153075052944615060429571410369965198605911778868163203473047893526394374645950655741500858832164833954642941356964226321909433743156435045984725072225637357200132947231578247511353357741237811680844282064737890317755523373903459923993966461268369662196621122527327610322372072597079461593109789845503347777085486421176165614127941901299862686321071231160786997238218340964409206601434322014836090246667407145014390088886659365843728225724590557104406636967538002344711290289469687626167677008843683628232910099694954295821583200590815019320082844366914563896726238939194534250681401605514101895938348885252673155583629896498022220101333258140997787307998278333524718802905796507937646736403450261230699250195423269568548231375357195828892727384924292899756418356753557430205196213445781164879234707330207285536342843609802173974247839747249317351249424747560484240082557613192837839005589424904053062858664423537470180704157303132762000578633884524068628361895802383160643416570212344555984758018734392073830049552817747266340150287155211278492957750177854932403980270681169933446228501422666173947457230443967851833431254628617195451700567142013546500439470195606687584134172943773830502776380627893442912104069630338913099126414128343248845702979962559730547483934801010895164049546776708470766286774191348039679697848183316472069523569081699990380957214308057551097144297672335940786699444782016786756416358229467405155185738398261746050668792826801227265947340975243816532746670091744399824432194394663100860382363301233799001358507174431891473688756389162013246901138811447488041773260410104339233606831182329175306276336935807195166608332566671089588216055953832617108620242705016431772499176840452700918467039185395952249842111799726099381008159842246563035934353123686097606160502062102820689286979156760455273220797513999605025954116568270057441982945556209147447746044772022559649924471646647794161166471209237368956132718317165830666791361210332707212103114062822546942185197736723678128784471894170930670277211911508987144813066040424672909295376462490105614437293482265804566045944523884607769335432808678778097689109208809061385781205483702383063783510198231456776546413209472950870396587021486233515070583084719823522991141598737714284574146603351861246056232235689084633395802223561669695266115152391346420693614610701026388825791089285981506672832858956025578890290838800994871933066039442250683438740087085297987247396775060710579224133206179584110668582380492062091278193148353430162784661736348794708255414259819028862669661706514037973392808057532868223189570291356713545461371952268918782358854594061119702111177166881841863438776066326774503589625322844957405809823982394884663023293867094157607363400005098886231666401237171827693840323758148083556962140930514797152895027873578964794998211673168052905993410646057331829910936505142965702923673076197821387277060316647633496660967748392838321357837828990767698050576687366408933554147662013710929342633111383829377105213409643985848995731485452416145656658161733134318563002917230240359592026890134240303348135934598471187611953457247537732385605249130076052769512783395484496141248849948593203798342778535238446947243019965580725324443454139446717260738232672461670107191530945263133314319677430324416374352843369160233445967080143996226660190557405503444454482946099914130140801674921651446323808392460002728090605393156863948828750515175420830972254943202672767439921580733109529603215122624604104928699676947519978390941015223977169735763040436001599044179882357324634730633782748790579446753323175927205915297427717090414757147206421208921124157688550668704354026978996169781476464217227610468352918905150041285878037322392966843342700133665518004338437249149298102769441013409503934015755196814431235324312729987728309078638909659548772072108208697754983000038953672136807771861148618258721064733841983880788881478800822146530300771570553496367122342111802594288060413517944817204318892354740711560869484622317761016870085971895693622758937706973148135123808359092973673496803171496939689551775727561414935549396432617036764208138299379921223794541781964324828955164941668058038149571090720167756527142563630325836454253936164952124761185475805377940570967130931519048170818691261030523006841869613879734034901892733370376686955259459880537328345194211946557413353512626136042050524730914193137703222004752111988481291033478195167029909444330882170435745140185521767885431890347901746479121146266314987724745851466785572764709494270881548830471996231980365799583988454529810546614239094938457741878219859509857850700943322416250739575317022387593379791054542551966499547302380987165221831227442815141217509115704545355850225093410095146070360238460188575937420649735965874208188911028304925459278542689434407313596122235344142968948870260257085172312703755956246032853972061108693371775425503300461579842969311876970570702505388165694152381752375366434194604834425396321331780911551004436561572597045607926454694570522999167458350686044560833813308839664298697457227990630666119464341519281848171796753428697842588496199480141208912962021114198777785755800808486150986096868213664270113113102730321878069356848501828445871965170081683611465182588829393581793049209167197149092125532466103584205607063316060730143807383367366344398719901977336240637657152908740647265274177916211363926444358788560469487799674347534477143773234836421769453096964162292554181935239106075410938806839145806067336704998849226282085878854278125084732016407633116830637242529908189816448135726567260502205526115536413977280306448621387438733803564371933057053684551551876553829286903941726124189498237274683436247770974811017473048169336222698057474223430631229677469035293553533616045915309338396561359210209190600821145253695683482130823730348171028768209528510739820631198670944016869825449820737093968870222049052953071920500899179458989362169888352316302104377067499693477635038957512971909121574069488175479152005430671609762200464355054845524837997968934321381176117972925842258597917148298350498437890283172663040300113694634893435819624662918380286481402644674667957459822592568579952399814289170713128743978784908966294224674317402010180713102959782431666730674667604589729129748438146867268172968770068280433260074325412321546044204623132343055117081407133651766223857220411685861383875719018858080486847451171970831572484404973104755696954805939573875658132144944716824761251737441421125939031550653631022886238960432272045933081518663860355024024858561725449156408009383482315462836750589039485273754831490626708851570357991439826343949735893571603025813162559148622639971617731241860597011753263744440452750543762898393467675240365353896276251203644698766794819299952394433123630173433735839715787767416236373383460591023350897294938782697282863216891035627309584910033917434500592124999884153532061428144910374961438531702677688595892213843723566833534057679149473630619315864892456683595382473234355085063588189586922911278680843062300271521367015843354362315970509048258744714960327973427008767718582413576725022361599221727872953479292911460124360493099964013687536737256420658574241108338377417323154395302827236944315694047980210824682183366862321689304527080913067649001299046916124960539722510297421202716747017382476346816188382442337024970002695339504553418242888062973709304638981751848715306807677650196576023368092362818252873801780701666329482607120787445274889653526900559739638778009503710729004009183384121630275289574273266053905581582126763517969234794948729002815082789472975102958129863511606459443316392264619566824684928142331677588841994564661668320558707591635463219498254377823142014268459581985630473883054973769557349714002931873888110644561420070924214853047600274687652824133997706585926633147669901582112809264597102889762946636325135743132993111775612158694433441164025724865874943674856279082023237022330221087442185673227301488415677854245458712550030299972956984329158569893533266491399789929770238274404527332813387924071106192618481764052271061339998706646948830824257472641669488168805101542356164677114530804314167844463312598519729458804640508281913718038876948342230325838631572579784859420958460385523940978965429765695728164783661681633022559198239651411985564129943846144330358431142718084897909403161488242803425844635336577854723695166786492061208542076709488950681088261471436897075919447684029745702722851776625080134894355089335360477181565240648809031770791051315098418263092039125282727768627991797374350698515934116122748982728055064775669193199186286718219465011465975902296181723100354679813932855902721982714960274511059784294679287140229665403687849769412623872176580723062888199809264329562402825005796827459127887642247848464768861435970430126635799959507025822515154487655516675013951262272973659426481562916456657883015010722535598607697608799117727547078797347592515158407186218046108388306447476927019219195671649469899361166047036639110585142682456973747783219848054006971013347169521650458386360171765135033645602243347737860792384191592687729019240336246295415611732480340847117262800185393758315239382906158525605878570085629719534740331997705770418818187713552352899563785731914133970375270530548497450177164545698977591592987395344823940490902755036635859702588646567580582826858845663059346411045236767392796475836050774085194103737229028599883599242764460478455907254943003055426475748523028407539501206588621013619520959085727663365441970291814241236710008536402871420563001939446110704616215794265511601073585188142677477562514536309227675088235004855498896343167370677906662923427797992463787326427801755548169068329229388053417610882321124423120026118373135025330730049162102790633354621482799415961668846805633115832153288556599738402296689428770634562286861533265873968892259439877902884994988163269906843720006003575102401032051334434110649775883322040919222195663901649503680853680347558756340225534216055934319065415817803770319272393097463872093178859450979204012077874498241602377349821593205482638179253341889468221987047925751058360305733678020062163898550268544551751773164848317544007024909013653652769260773024370016019451730255375852359939466501921929005518272388614191589026716571506501047713472547028599365742296570323192027811349957961073080463324001629288358271514966265793213679618005310085206015873155101495999135291802377418375367394158810579677873572886491384834614283633524532232213816831928293975444308720731310215638080603079874442874575997969270876236987416427711329448374778781434728621394544299537237269342342880919418580017898244565063061804873470064100504318336638677579821716049288091176260965234053607264615299043514240387483414806783910403028897783376671918353690558083403845088702479004210337638071761315211122925398990063886557751627214455138634981841622273259808818106912980667866421751224970311107404604137668751517837045102465397227888612009923262334453866779606242553930903427236212676976323021950397312234367728244637055594032108960270927290267621797223740105838081611897906611813780271400822189519866903056236704772699924400393442602335307819483383550619670963087908201337943125716786014551203770929245822732589794171773732091333770521903710359016565630532823375348569037125750264394723938779644942935754149224568641425158506614800834976382138155758890221639678902727497741308995989292624469780484749994312871861492000960554180310764987980987911137302267254481408148886048303070409123484590709793242919864929938226721470512282933909858465582197815999867735973878836328460414069062601224774162987403623375672796886656131954328376414659505853592703031804401084564030357578481969142150216504007732001249996542095697862487548563212438593727795834240607867392700954456380420412378444640014228648851047456802684773034886280539962705081239179083271083410133661167576765036453690729600639754007607818815654583441438208199181137919972724187034868717982084167185518252787597213920262006882470212572634862946670978289902965443657261017048244639313035332640293974769215715958602365547786559344285035885392034360657570212769530981110452801002444167608646022460676004340443412278624803066742355352934690142694044913799526740129247171223655332743144707460251395314718277891485519126281844877330550967913987406404315060293801750471330886560200993393919779272890383266956577558968899872310581957428547310569760120052477824452755853996305912562335337346938397871762736067225319329105122176490244778828060103441620511324454191792689010071449656831701410821598151815429418986255179607205015046100456978140403692607970206842265110016168989948771530910622818874003932413993516370174034778352118598147604368453626570590957251309002013089268089387615619216579608690929270619132809212209557366439685985962335529755202415888517714648062613816927061479972699559033305193047540772417083943583342187766108759464634355949100829652209867602568214271814066641578299329227169116970620803871613742525841591040397006608686497441622760328821475660776456824783656243935367231946819916261015310362897979636982177396998398524724415806874272816084011205874924722641039745459966578342315074024251567320198744405401254706625304153631868039951071490419373607233325088332784694094857175562731401860503399786125523878436595037063042450316256380474626655714302622546903201568799690177302745131913930884979724701685682910484419652629754588709273651007837661043584215730594860384513518597404083464661085752570312805831459549803706765537714717379745200461974368977926899015558995416307006423872783023243073783092598019792539166933038575989949697793063767117383969521330797019194812011388299469454669263827221999145083246786385073236567004540596114791555836716366824936830119330698626455912531237182387042363358301587587055409707550209090286704374923955230596074035875661861974779013111156879752606665461381502395756132221257575437165515677463187827741523666406635893247492219950326351876360724908615829905919593242857756353703376335645159337523774889530253340862823790052259697269244953987819110925986745546134484164616710254224209569113515371312356015337039354740405995271995574063815994780813971380390557172242913178276952290010839095324663669289724268334101806292475327419993939562988903531539067050178781827906604385852408515239324868658549388014154714774406834080143553403843025145382491974766974821886627038786718497885357811722290987759514341647619464952373825879216824199279722803976271733904988384536854891549199952396862728278624542070625236792555862473401791471175299664552370830135704730514907997914370646393490900121339985487758242357689905724136299681436515858551736089394214520799481718531398353787515010458773874628421377089844326032835299500746363376844624769416794616867557991483709125546956074912287597776252643153667568692306940020858352244135670535230011120064286165524786286609737071995788744705823035414237142923095007866162499854931205304912006090147289291772032691236866975498193241348287985675245122002121162252966718452375996318083087984920541255719549156960022883409006997283112216116976080065536710073950331432883809654182387700251911667412513944712381455243989460055589862229024105322308091489243982246945062971389043802550813800037127082009051279386010093815619387504177426776304286879532626991357532786089148393137481482370359433270799464325884211824262307853964175011805778151317634489192368844923664528818228728668974113048756911343659627061442322112798634305069920475955960770503694777637434977988273573663559375045996726980213936412809336174265571463219640487288638294716951646497426445594539665775357096373267103917194691675100613411809921299022306657795892574254748338320926080582133834839194506428500789157997818225273196028865682095729968509110495081948796705361116417200560553496172821872626926002532862722552379441887922246619342737863852480461350049183741083710840322036041452968763157195370123077925948393480699500220790582295965334486610537701775273657252280169657029946772152550250495033137805650844872442136392890345147889197950277080185142742567702413929588460591394111284741556885445453341524782375575401729322684163666049884110393223282055659938252328162951355550781522361388323370692937203475555855178783225202718763826250353555943055894449658812323199338927811523369454736910507338819333900998046815135208030819949239023233612506012822945330017987220048982294252851208175192372785394296001217638944674140974553232859198322049405193362685171646156109028538412730077853271943347912261460666881864613010698875186515166010077907160791792272282400221966260654221834169609664470386819649373508924131068424643143493757390650678448669606624110126004579789442208196294308390885665032431607240645690959761853544614618293186729255439324424931121272617094924396964474135121876211782647703161817610925568358436135234943924174716910829267581221758651292145159313251003223293278304059472795511534992352711107820370940250089292495429592674754575534562782184167119510210101011310694623341506685911743847238966464954525455721999355578834935256225464486138977240586464487895134514003659002200834149212001625589682319438868019616497573486735413462403680185696603030549635326782820000301266224923060403999651760651100974543114932293658525265135896696417876776602364601339260683453081567157737873573911382265773900728448093447391857861604873056973490610404584279403037061122455304221594639224440571083358434970501479744680760188522387945907430071254579992724013121359658282146900726585616779936540541583524145765981171851419012431914774721264537827784644121902393832501303024275665966531322676509970479958871919445200646630399801071041551442619209048815135523242014228905224905641847066158629044408017492284308828669104773987290927619096925270864617189048552643343699808728295337969802548899263436750309830388662415927620835336373217454160917342045378210486759764969150097799940487645984799918199337182975321145367035798450236798169616347299085660073807059263759569530170321138018617242749292014932468621455869767911048205454571104755834244698778595675893583905744836878672261506694491327678698840406667273339358218832076283110332671197397759583131892867073066767765539195576605840095888476787856277434204490889432069250861102991971132916095121386959229873174848924184307721452951992678026441741189843387816519304992227976296013528002852873841088212379857703412741469082711124644266207269593481637530040082817570303130010145731900060744494737762886171722674108885425474658176924990577197594092831307696260495635542092497248925420808090689691243818496198476705201257522575876794332424552397081889622104813037083174999738907396205957037040028899575499167036331565741983810462814015509346216170168903741211691372912638744003788348524993260267362889782916071241997031649192588830680186083513145412239812209212049112050066072442722324260344469866890534856350833233411778141115057313400016815928149444066508351730105368940897515953369993411041069392822073507037901027630401881026928103958106158245785334824291502880483941352085461467341789784932157168086722071436441854141658448488514027897318732950476724885346685998913878652672725109040020634946562825864960586715806339049878598896357521135236465421098602752128764532299099877634467995078663003186656257523245138662857844855288406916266164558851058253388695692321935376829366872046464979936488553111488980526361035105860323508478943925066548295092479900546699763470822298611561332295399878437339496043224367835549166543950387656387135826042300556869895204028514993217424632315136253377840672160487888473153903261751912529330438638988808350313101778681751226068002309790577761446531881724744557814337014742079833068081198073696202368765025814705221190094510402544169500349701073049875587100828350559462873472055630739827325552683312417952522359016374900443660954103989917294926764998424590207277287948841698310935640216720595757510754042700505693135049810692018891836769332114187023850510957824928287692166061625970204081789123970745491196768175480926082465064425220186404547741911223513644095166099874655906995085254265608613155233215300077089066845611662370239274820541398282286084506724705053210001635992940145489559501850669140196496106692153532497293222778361855972445217816249264463176363960535377153641858625249852397784619011827564977609537820467704598532867074562863781673376723600066212311466990270703156195427087378874631170489203993926913922885840326940271589370220841188678978412222002508300559475333674529815981613512733147304811868172531356453088926253559112663656272825990046171079477657465271226940365593023333009825529112511352389725752775651235211182986814693662556255665629336205269795303667671320481132992098000487283090799824256762495824394174209713140666553072223691958773234736642853604870578923238103142565190062813272163279586267094308348442008010547359856704424365246958306556342715291101183890360199781587524311466465038532943979515091786649548148059343588654392789087117076505049427034782817124646668003497349046390106657427937419139963453935173810406819773975397580055137648431487398275346896610322920624373302411073361653709967454481702281722956352593122945534766622467026372647721961770096912852822248635238474731293852419248786834459978029857429788221027835185655524068426274837731046066112427608363167892915947348306613305745356969993821957799954972731643338850463170817077809855477386691406226427985457599067906496710157291696967722268245572007320928594747817320542257439008604055092196954767371791756087381098777090802158658433533472050590963947855902649575489370340512119356534990750162884216814448998523433367017057364918817838321864378756692952281156959644147577363843302277639917546670338032928600865827163065666562355131295009200583022418290397332957307102677322251477509788936238278158078727442046521199594495666972893813619093246338908454300417365569930669050402811811521465717097201076135815998846807765201709375656176281759690242743086860578745007750519104293397690178874153517441769146127464786104864565851495484862533044961441379214459471326093780916193430351774059364421562410136589741126911876286069047898811327546601790165441185699918709088267433633715041170264056119590375754177800197219413118977711632492475534490481474953173836229130117586028275979569594948575319589203802872835161471736246083818684481769871444286070162445699773303859183224061756773388434291935838919135144170824988825713112379154937130296904617401554580511277134940659752934363825790915854430358290708380470853716928737154942909106314729546551423254703546341873747353591104518402521233028762859940381653629357411686770693222203571078054075666711671987122781796451957941042906614189044483003908905435863333447003186271508806052145952039825640938946600190927647109275950452330545354153522920473595224562396117789198785081074067158820913305855058334641284371972447873107811612237460075551063728799413761324693843051506936982542011749919396463709886147896977554390890451728414475253465332003160644515914987687628933997491200303725800277145619369874149612431310571287900860623374689598370487356872304012466950902563934385669176242770650371430928733859411742164234684438563863554839629298871909269156499206717904410685904267925606407597890616511358435710829415678122398239947319599953286487728425726597982142454605651674372562299004796612046313737560471745865830575543204049532664844477814343410197440583440693696037522275177898982143769410839404279085064664836671844458224709988727904441025180500014104362258682505555411117027518203949380492887590409217370790419082437201007099351384727242525953965735217515369736866477254113687557125153029202925456054241968729603717408343788316267604067778539267904209486135897281162080611235133962628400452086938062408743811875145166014971914533452491253776060806966666577135694712034309497483975022430204500505202124635912572164092488691539272391505787544474025526894608149299644463852620233912621956505525320514033989268507549517025112771903364318076882497470173790939674366807612663288387170790876978533832512639197754034805115351976154889541403421772866263509664164029888859554703067325274070536575617925685004081212810316150846147698228391372387657515717650137854176605302393042564205452603547427816332813791817752340527399040086100237434445931318230698270718505175986986220148368464214538970016337487713568649672712216658227581673003691886132410494956625593131895614983158270780953286328379527014114433930325509311627695199565278692224727814327629350099064486614933009371436184941747799463374750715321670422406329009517125265537346233350651147681693689524558210754566566145504360272859083637301427259387278226570819033312298444689085248061184920293662302198677607133328971948870858568153646779371420350946684856722100401990219247156675327809726681564312499735127776730149296265446796076149744715904166055697607796858809977764949873224168588990826503755954464750805496357091793869708197852149949319569290560449433534698092014966660531768111307773015057392545065655531762602145053679980012155004565951088798019971271172966535778378320681085859287900863085591223473938981170326021516161747146335244609143133474615957251514744969422525700077647563377307237194997231786933600634811148383371912620718481934192859775650505408902583693309197206940085534293150582038953039455054202380225759801536500118440275578197153706188488501807731754949443980500295367451834172895211592968437539081392975881293753388383958004034951686158291960351730585642317253586420434529260583664372804441350214685951763530268577578086217767486817756330177792114046392419212951020627188359136412351856959634206412295890754836284076799930442419306945769697198489969660599410591387952084950030152952104385510075180282739078744908602133286227663546236293905681332602170586281156111635271241133135839781441849115387031373329965908058122773038138193981945311490838401705815881914193163737613819386218223088606058510600084356492828215536589488099502145842201527879885215703899595534415394092608913707291294422014729072021255174262869598496966713448338428422933111606950368175604968418705117318723242080147458036319782423801726532516181705339599978492826282428700776223923654438701791867486073983720901855728403259825325797382975355651548395409832074324300251893926381908491425346644129924577608654348504799099549508594419990594404734998439977784004775027451912942665814427479321814882504761356554345857593649399917269158690559886790193860945818248596329607331631462565065297718474038163966640469196911469507364476609148214079422854973833414883406842515710242067926642094207878760019405121737313189949619165045423905269452868194158417802560401145461878173083691289654795403662599145388260513753415633117300487573500731793169942476719703980327644730946425393072293528909617528047411202760595516902915608183798429280472013666607208912657768967420277012825896767656595070165980696410842296614867912627763843231370324713480654049192418910194222114388626365301452441594903432436173846852940811324900968060539352904349526812483871416588375223166029972418128681181911599462515585896673249167419242438520192467501362321971807732552393184055579769116335747302505006807609683149439719820801953783817570609451966369326046259222191140776929987736341596134792555233225097064289738906273668572971756969360916893169655557709004964063097833092594769471109310059021965924434905514815586999469066494507831301989570146335251037325773546788144758896558807197951183029319444139090572194739573216030569810574354899654012655375294425964386074760941395223588447610715546351421934018530730132359183654600421655185214235571799113045229743612931194693940345175690105395078246670885669669945439787070652242667287347491591798524644253654178783541007032317458769457938112941799622054513983589201164963544547961472904198663005390481729633012618721198869816228934517495774588375314784630207117977524495894834827962069968979754768290363458384865429390361267206582529741797187257558699723287760158505790468375608954118761194276009574554375102002981756485010183521811157918156615229237087377066375487742982615819714199646792232726330704506246357759849764392091557230265321202608005717746429175724434439992579148731046470675460197330149920692877832077828439116057926565972180238309371597828481299669036345673826825316023244051995084694378667501932234965246735042680534022370309704395164657393168319106300988007575368352702267388707325831679846298030265963461879480287164482830423830738382896250621799874780191304950590322884072628013630854069576871242653668894922115361229132074160734611589547307651001258675968189135931788962229037858247679449850694139164402469616669945698752678122307472508054621621136440636574777943117096935716252053433113723767994906171839404744342475118844702602553113562189864701469152569803541571723472075884156908551440166767727252102187871461726827422016503363593970821742585134983082226466158624737663278229909505577588178012265560911924041999664499327335290485955171189230398682144751463346002002664745969432077760840468217173454428409158370936321302642889033296573365652322484532549240447282393986366136548769515204265591400477767759716688452837320496570320264141213978021888720175120010721193748627157516231885326557700261101956018985086281200579600050070691467644999656333566483442407490502039173975215988693122973804569872982791208855334254171697638473956843836380320984176071992791783752315785383395424517204161606461900964372691188960297098295397804517886331811510833317683083427741551959305103037410072711537434300109699044297813475791538068392975102298436461291766041052127017558897586320996032061299319641406822828552315992594816178729589491863302466256541056210587097080956795723674074135905934539913860996477446369970484089524708108934266017996856059969894484659492295044764545471250503352554002579710306123879758604954743782471882516671997276659033339053010314553452381957981715725081149744073929061085699822072349048786709342496856225670141737199150283319453142745968998316273949827260305814157793080067328220831378173943081273942070936615205342689480351644460294594375346594245026972640639910468959145442310157810738835973779063251827353110439717546728608278408450542167420083163685313838887900403616136985464798719965934245005665868097076654362921029394280369075012598042095510243107403908449839565849723497496003501293066945329706470350594700069759358932959563440408195727863349219422327935134004679083645356779227604599147283501356639486460845941211702756222731847390806288860413415784433473678167611470495103042089853069532170324665222276566216254248741343807972065105857019838154574829846025926923934009808682427736960082174927556412701898659782868155148178457537951976689732828745914218122855232926416864969121527045339986207858776343586280294009291019514407863686422196991023487817518692017327128526696790643350774559774547181371305787287966209091374701032497874169272856296846190605665621243227574132703748526330438047959191249323173324070233276149209546473175766842951470460258153766826769109155446739708174851221580978430177043440925516389243237025305454757966518717728371865401191605805611255992704974486554462984900418617997359401590471968040906680404028983292602816689823074904039149866054435783254568429556038106414770333524259185187657446299997728183535805474931036083655418897247828232515708125510502375630065985891114962438587241965650809725937201273702651852535682703997303731251028930115992905703994267669310430482083999709191443000707000116301438617227972494455998744088804249073672025907217876423473964569026223395403244522805361394271098043582367135940143715723597072164419255414116324276943439894553571441517638282171777618841285965516398720409153261856340702339031213784439889589890629547185931153250816630133919871491059460730522170175175622708488556408831769208927873772373385498075899108471605319777991259439297426242735086414627771939883756794708887240780852129456921549643931855556226054275305362708246472610338313237155656235284646209872893728278245534980196978678586095901451441519336789771387228270605784089510670743824327274181988706573615745065206805833990871664736530653117812605700534053993852548033080729993944904760780566429379320763482786330341439916938639781713140415612520978663633641052082737576465295064468103468778634374817700187371800043269318684328011472146461288328119276642143747270484008843890018744094350896930183428348531687707706020814037304399445136589417700203430004797127891523670521015455864492646067346013916647856645683388313339008827571068019135147542547500228876485205108817713547532608418761841429024857283566967654451456478547823258799479178855175149722536741773183523563711563304684700019660609005870338668558665178700404823734457795011028003975813888812311566983915386878388655378129356796335807671984707960330093472918619910025298426716415050623915115315203809031545872338122574606873751293840128666152890383509592522576213809818195376977031158663657021573260277592827624279484458423233246153849187997892263315917263332205827899722122022023225213284526821036389111390177837303365973078975283886621968492376483470394518066845272008146794167543751281903373917176348815646417970032062754779994846163061055572584607989186659662666002264724666866054945640084597188430863867206291947774914763284488168938424966408722867428126733262655934092260465432393743255468112459622662910819307779448552792391295161202173079433544587163313698343178800835840813768355467501472925066727641506083560292256275836377455242639101384695576059683965227554546032349137613880822202583020420596232274887359271406315340979367698537727519343909669083650526708613462480122747201473581409756421942542537432018548693340333345991916260608712722826745057611987507398955150308627695616398641207745887624032699240040064911355353565229046937581795211808674161196807238666120299114435722273887223156854897703479830961877749492800802887124269392103572656007963528263383639727101707588827476603077103624799619631321498051125387385157849943786508341767809095355859576384309966365470029901852042845114449785226755995537927678868517075375958659289490491914223402586147778409998941511147615656435108298622422952987135380318824715567536051875546823391645355631119954962437131823775317767822312111519052736846312770079186433046134857949395471596128849535352225279180494493716722663835563278540033216782131999943282655338696487287296771705546348520908129562556541269381565797462434081756148491120836086182177158887031915655560814789121203304853117998762620928355442628356565694013392122923379146965469751187218060353799546341574957894163008248922522641532372601992110976150786082133918204390525571591585160580864244578684309659486997471288781700328462835869853376539372205634062383992643987426280859863572524220658815898542175774115873239575083761041910994113761273903108647436703694489682497033382729569453080613400140129682654110078181801762104959610171933610140556946382835136006141970606616796172844505433094344363481633709726566880923657002945574002271844735147359066593073746051682511431254049505683143987320604899982071357067766693308044273395947346404248777485555612078750893759732980518679126894892215241933275855311189549781006288077188368745034090016087306483076399740803324712508200797843054461817385246829211334481104898388614658587269478239280328838617044646899638152302070366551570398206630335172797589169559926175550918140447296489243703429548475071901926815792764831012008560342417149143266055467676769724630973312610682618657824269023242564963880400412397247543989692183292695604340548876732891240243210958692614272910514287336430135980286711783542474400799236476622705083351627274864535144870913756139053845434710074217644598225470091074664032358798907008174536166553465242617130109972613545827480351198620763219858086827518574256395802521363620925296737759110647867375908693467712198758183601913946530399511485310667704757717313474462430018740896418026998664863747599028734927392149852649613974829545641942041584877816240126260801322231599308641762806638565831885052411414742028848896492809600340495460998916416260564102626802337847324487403728067462161283032439724957147006806509754906015809194683260419354478075260511398189402387283476418708197334647313079764790743612404401080678927016287346528875420279743020017690279206430490709849949258396205042110467895007466117218357198730607582538746351580278437157748998878057159115044929740406841613055919991361115454252172374510190455468247909138528987089231335709510023031144734135170221473772212275203389225615330623546996259924396606525065593600334221547801991523713505882054758708433922960862280889154969263382204918447252361928612226381184062409728942972672136676500256173479947100582311893165779529471273390018878714984083889439804194122969528560538375210361493489636999473390018894749181991901779666980234391589756712123136254551566560168138868930025218844887608529693226369696394966001850312660656188643671934857202497801263033616447152253020703617711701103884314568674153564499559193751638777841391966161999768618450362798860474729211723323578457824213344431292512121013717298937851865144341156502113205483219662295838598426630449637500541608102738416921468335195917503270242741157578818306976432130349349457680088112520670239816440109335761759757029374894430923456623020155640824848007730333380517560745065571152428329485726275846996709528899687809222371159755997169854608681065344662996651894774829883174032702087394430672224823892748680393849056870380938515385846679864932509403652451549387728397981586998868563155160325328593674309041220257550460784600378415647492904523418462717070560141672699806758502692055597146434007460687341934726420944162670626761485547522178151492488148569846887017310706846119591448765719363072068923844613014131972870551922379388202473363419501003560134262533565695988647892447923500285481249584573819411230133795070647360908063809714014789184176158803395251565315134594312374012534468487212241806964388914500144675348929516631467493485656098381651687694759356366164759542492319313627703837075970754960140155715948888997319084738190793689876860902629731692430639269830223267815334699758361595968987107061261035618612659231812675073292556396224100206180323470848278533970587215674048345209085653537965181644348433254123981719358547425768252371417063544309106766937782268092159680864657392925764668189478512350634821987669600136312884144565519668989153326174953701610704424110362689820597429187070908824986844208484827956864007602012765385193351066267266357174469231360565837891828331072552809690144739524917678710031017841645560824578467590373864992607498560780854287913996264349506917261906346068385481786431786209900248046117135218165952801662964869758768667528421264460961806331709080488574890360689699883180400728315813611699099485808859423031525036611274900565621083930629803007786908274577418656461301178661390073168249164006290142681911949693751747647899930310116276734559203947958691713090835625568119693880473270435671300202719455968094702925292229350737259953559632734971775596950942751686519633640574132988238917008663397932303788307003002126401280373021007600705015324923391411551760353292014201207897630247020207321584166944928364119027529998660048838249199291576883908827493796283701469142439581547161776828610399004666949295141385056323447363768299013126894430196071664094827232277953360309857572049431867525884066405590184490381383230573168168859086971901057966616083149768047616207975587225639324851324664457643867413775755284202307883772594005958895359362009477797227289334995453839122004840585796778178785688643726445754371720780459566925311758729705900206718854793917547348088152190617097846650294493770562950632242527573424006421954942380592592417961199037601179589841653260694209660979885528356371304034059537504154469328406268522745148507219841263439458238134720760322221465070749446772481938229305935455381496882613409830842400622853149062467131268610653767022846937426444737630753254331064536323698867503005098676399068807369732870885252727424690007515362721505993690289353468751408119443276865573634770873361882826879538276381397248437630924902305381459216745871742962763090802476600264574087798813610380147879923632232254088571321368488865039611513145663772944545056382304770846515939225471011147779560590459513729530880153794589031693129142260166580527270141526778731625305829631302123571814742852298644016734305552875681117584734709058998747477896207302208138574645872900483858283366785234433170257788069048909415276971970142985364229129608816256495537396451140762729106592918132909134236163036244924552298321016847973994799887923295254053594586753479186382788338360907999024413564612221867102581584434756720735277052476416176801857298234202980546201259962711725327588444750317896588735652176567131342893005866848657663684893496953353278097783540252409336860740341944693142226149690992041756459726564532102720020537182386935945939369628255607032606168030643585435727724933242225036721251011328944767411793427744490136128560669547902892060600730474663799112204555889635975847068481860910461204293664827089393671291961363754010865075981704164447133970926706199960470492087393742133582217277110797735736730025718239128636210377053005330345386201306093762611339965053633586080494369278092168948228010992257750420421116874228205858350896193828354240438762597897270988043471298152839446443959246995550701585203658750657933891552640456780723426613646760519859640329258473560906356357411544243958970417125237179560284126651503023582816628845683906656108931833367052022076972853333583491259109182852275204087629198838992032189595919546571510279622764618143954285028561878413095420661667006197275443887812852655542152327068387616953375610952724113058244976921651400521460085926448589098228156736173652262885664366502082643106991841953008993793564091121502223996998328105647455641111721841501018421461568753099773825873761169462557774538908638085928241437523404501231176463975654335751098592137747040193694023825480373854036112113645415556592624088088497515519183066423309317498481172613601663145176603961437063832614922474551659672475585865650035585481220114486645850460848625406290838633715346480070009334774195652453088237749297207250850509876288027063293570340786221360582241551776712786884810433115203259789886617144413893475540783354211253506128658328937051175294459114653539800627278505202818597431332948454261645607166140456046394249542310815720482656765167983165639714368448617798142552332789081760613347894923760808019074933045569974310112212516086072683210397207783920613185282468884497740643110094300456210603108307893322198639605815420853774047265300031884950348366692439540472705052541461614141693337754972691254861684042036929308450069355396469657845243335618672996439083464836910078555882669592024134107714109278697555310580895574211858861669030716035809393942844330740655136215719349481656297363877245631286332190123567863266188259082825448920584714204991970795130605637002458188664256775708782502454142745939754556448751118511839837338942214589431345246808037182733661903564709894088577856505001872411925231161954066321688223006523948880124484629054680213945803311512476470636694495222962087320307024111729253219304349978237693829507759290626211580561571005892379795379649472227095058515015241013830351948277460449417209108224870178147073813920932531464994709828241367428763875087171397915613799205009206069331198589878562597403613051179326460185200040873443685567985266876051631544209611130387115945567121755202202304155400230996047068470774821595712572070450117494295531961237410445314550909734719870066621717918308036798378853807515593386417691072835520057853842333750068297415335139708052336403171491441102601258132121530589833520295586934642936979329206886093481338238530739907035653990684127956188282049173660623978922488144599119358806771536249767468609578374544866636859433131451054577890142653945998613433756044710775445558786992620882021042380373200549740346902361384153932393611424125602675684197867340830865573574535996831670757593732185551856199519494932770146727953193270402790926191164373954623185550169136646785856671038478864469503121717651202830870907206320889929048191395904609636425502503107534976883178739301622270282985020554576085836778549949902235476880558530540680157010798609809888254508302088926970087807561896071277571107099190043233586295319716347164245712268409462693068513017266573340084925721754973902745075321093664767914353440575683860948178033017481675408260984333013229060662901518043396687426438961049872635964455340354358603605122924760350348496219435645359457624575283565380369664805307712427765151690110915937597509644365045063536613628105443732893834998875349062431109020198268572793042018048107061141792439501591140038863232014847937963092013161120756266936054009180869018581806367470105963469653723440400272352435165025884820986218074860685023598167374273826096929565720675762103388461003886219358726799302319280812938529920097846094880304403505352304659725325048761706791991867435155913507044510262940312302057628039610451026170557901723661254975862409150042574148284760262186385372870420572584786964308792976427346352719285171930632758442699062287692057355472450172069007868356336311199541062934667073312386445833021915164622422691219126821385682755097730496371627697240569402762559989831386581911963186743824982853998880434386859208134916202246611437451723193266887259422200332136282949747746967680126746154034587399221753333141204778304008199249960308229705708162333469740003272820367393807425927567456260950498506172855791518583108106194405697213570124229987782656970135452963396153037165096855395991233530067064719010141221505234674986062906274614893414200436754763554762420957132293008027006235808011086882218445452073604275291810417445630459365951931577995202741006600513536560661685601964382139920984365364919654320433759726109326005681882870653356894666031951697153086542946082632659126516768930862057459800361455542428458025223446828170709661276082002306073820781093125906094259211573400450555028487339083037628523074533485356972388168570225904195971076508320306493766813667232050404226793491537806141742799763243891866676698962355744431705818207503224923786322458002681784368004499578286218435761978103927400556914019779565063828801978255119060801808388398862243049060411944124742790654256373229495797511520834773516142842801413310205707944861947144961886237633689843823711551395371885843752302093298466821479843032180287220231272105021640464213138323693858264391549222269434327843773293714616280993206469132061455086799673914679383809589580159523008801686270254917903932680951554551841640944263392858830437862137124681719268924225493063411324044432708904909115169298949698036866839974778927352470870031770947919735289535690630333358110911624205531004214432908771247334355658896155789983311530823879753325346726762086710675687654428339441931569014040900823936857111047285238127395668997181731728368508982110220188764366013202092092783352440934013605286659658672943589362072025755151322475906187719106641131443464083583888351987528012209907758967392887445498066170758085681998282817652875377662108582867828617009229768572434685061041715973045709580260259732629334192271155907710216558724836922087955215774599338252319473964775874174516854305329507262353965977906986180873100687559279540261128080804846961850278289516032514485263315335793458585113521251590675243588605485694892319357980026001173196826348210624566153276841442281972588431155586528807905425962364353079942749876479888447269161794016134900549734154857495674544990712682445340510075955815960758536543545432092830536653540448455020447798539577650447487932008842186533766639605924319503287056147836354755108067942788119038940778229819719189903081907595613956680038643773689326957401790559977833821397960502034487350781080791758689257547730430923539127593776967600585833547257764050147239039872935990784601245276320778625089654623306852145282055203795598942293567124621739218747811483352076877428504398515116784802219530722726143957564966031171299219999743448605818757787390185532205705759417492888449370738786710816979856159983380439139088109886650149553698439596215361334426186670650182649259520335937064457618220390502716962104795424102518263353801127306742195496856271449421612258448092644963315470746015423891664708398353863685061512522992665374843969315286475050565498467530010918633504808738158828755680125229010958721749156107359789092953213919475484826039463715039285900140864716677082133623682236239497473620559299070627372737895258686029934270794913238948970461768813113012710238952736154978503101569247946484208803160271497567762054574834672776330824979785884209715404155688932046418946238438177936427451089579810582337735481336126958798349219588185054803949101748995344801443495090873649840731596992804906072544304394435850434472180905340734784259201290433621631220092372297560575445501642785533594988775470960580540881677443190209283505857320348378579315779887508496853248151616528678096956221306488674836013685844666900024791734562261062273747481386549632951342508439325086502304713875085471044845641250342348601970892099754239799939960559297240676429013000117070005775061578965334784354140250902401474495598410494862899743321417075884324948211371052550469023539657081020402460710511008565936022740272147466202228540415124684712845750742316820229483500437710317422963790034079155515713879466447024163736917643407629436588541410884165949456933590585109518878564394006636291270962034656175033337091766632402486929562106825000615397719137393837769681154662929891609243709373983913194200009910741660929385888511770677814990538241649745762634011228017287147806990949290038030490255982789590185727847146794760982698518464653303786874399079495281078933101402118573125806915108684390045604979066640757221286249806142543337912202340173361893386783900691313180981389553110695089830735670446521351720790682227169904154742688819200691845083312647671345703511395844393066470735389920168496462641530205264299946227729969422684201363225558353990894729498404805550926826669134651488242772146299455413370168971712748156927509333102273791098385049291582121750556945604080377111764298308848550395437426216400064978425086700503109708734648966764998702572443349076667694773717343405433932369282580590761959625657532079665202385493938011863239932039412306563989090483616109671186612213463586325221656306097858415179046906505731873573448596120059460168243305285507568897643353888154437593269651593147520704444050486505273101591942381034722144886897749429395388978078633021754714387153285330692410723305537819843557840846506078768160895732220703308837457103549904130482143116617804430101952929266574514426362537001366333807318695974088051168976134905554246194791419742563877270407059655631798753678240385500752258377902228355893676879678877685948357619688717085565444518147721342684265338475011438041507126437134422123809937650277890029760694185136603969206540978257377497834208819103624087972614480441738834866359230371762628600969327920736128160756160585253002621970183982022449700669338995409103925160177481667848835585532738157626357296996593550288399241952377980703222314789128553320230038312984121254016303485630210869400473661348592864025575534198394962319338950999883185836411752913608787579535654386757983223675795105195400329841062359114989690356341512583935703435261581046368634515039974909767659738312732362848237250413557389643356937978837347035984085583886686153811167035440072472640476308317740586272025175331808502058637699751817028120940580789677824849956625241837326911669969486881142989350481633933086677252989679013024092278567047573262738498114913800382434413395063996060933762923214080887135284080090777153515515612885578283554404713234249428067117529486879472545594212042939184736584748931790342643693889496366496069601112680119798046300302997544136999132415252501374067427810351145396331283809052220662911938020890130254587329058889964419016663194206341867790237588579335292482407882463109787487212949531510361005707849352426380137728101954088319946043175382420371020229598874976387062520086227715472016268779992268457224333457106307021475821739672007102303789024496414620926391167846426820898752268490942003933722465705133450500923055424745795935603408461291557542669748591662662059951905427492516907010955533058620942154134343405611177440030434219239798119821618071054510653963192684686640555505522930461384138228194084705517933052800569446810015317745105527666614688091656636951492276812407665645478263129506561868321536787924518307436145356024106206405951313739806447084774480437215762930904840401847866941550117742639393365919104699084704478726981038812148387134424847328985248988745030087043131711089881829815296458123947563100512286045990307119767827330237457593785292045076560660166074947585831483217930673690178027969086847325761963589409897218011653266193705925105923099753813762819641751133475040385401690344632060888807716441684007147880439603990975622364437830451001819031531148602437776485723191317819961814370589167545621585889453242768796537015674326306068847860342150825399873107464756987969873373145586074133693282037831493264404855438065422178823447220749808989332878808755768257248414496711670914755949745241966174902495133843280309392692230757647051042155351436195625894699084850447623310143515515615968749681549852160597423560396810706043886745563216590859310304658289560874993502368618454461847232111321494728650876636383363562541000103029545039797786665696387266078254184922293818349652710996260630655665821532794084372891915532864592778871071650499464961485424041620782402830838923844828897600101171546667962598638553535931932889726394770852425807121449121711866063813496572351988521251294886731338806125760982308512327683735330640254029925706615894770545609664686420527748319740592753764887022779866186965527473524489552719561810222199184133434824280436955605285884045752853434783496087926863886217164945504534538729352001183162973029762524766004242874722597036789498809707490689948811907766879965071040479162867614546063308014641072213287969042563707898980634092780285504085630376127328331430481523235128524156594075624949675532988410455836010525781025684077985669290613621887014771264346939708021806971173474324332406498649448450129509733851481966786156842839624821021747420471481101034201386832240974903824956587550508931175626700164951566576167693821883679855438889694615122751413913764615889697035109743366901756066032095189365325580197137896303603644767830320208970137103733007344081779884488291500334770506070839574831324357980083466416143359616402385581921050710622905400443731966786186532757710791116512142383771738568463237871524118479287366136400344138264453452540741608306824636352300468012142982269292304236423794996092928846424076879071823548563997668414845403210323467264058047269790497995129063484087245540376509596967924888534024586006025832330594903262851754567547976111434518547592485381087475330168716090035081738515556091802897666895166781601091422905853873115857889404903241126734755562688236578152129920736182053991485378483428058174418681739752520907452001796859713327355612007721476612316521032406629329534428708763716005528250815609834538957968592202026156917917297937720623419126676422153703054364339922642202310057723885709916039645926949842739893975680226402528302307061043137696763480089190803829682454811171450522636214437640460216610174520048220794212117721780328094572715099251485211174985724389530884378359980937896331089641563692577324188801401369220113543550187624750687192058908521070052387606350233230916023505183369772092214600892565765760254675562506532276777767114532171523998668478302471761842951960909690539012675289548600114223384066906064917692152473883155405539296661093762482167903774457531306348189073614814489898206233078145782135921820357914055966233834671092020975199357914991196519826106586274344058888985811342929777820228224360824564057677828847089651521925417955764894484324082300091172121088864468925781743358113228818203677988142889928636671860469448551089084195540866154245145307197333046796952162050683503443603694907644087543859804383616847351587542710214041229332069033818024796221269670260289734373560588197424038129980030746877771914052127396977289683874467393827685100126063741038492790062996783478117889298487551452298789121514881598830095647837464994669714537538047107383847808373954819516358182519728888507360716566327009438264248213820960530989855061789573707571464854909441471232815313386369777818473931991966034395520488520703606855400861371248897811127289716343946259007034969205764030312281412461405619793769004226075489876495516647294839747681787904280314646101230308239446800813957091352091136785005694455013583651695918181108453389921982836349006185690675675718055130438261935940209310238736303050407315162472476556212487431156255792017306666179515533702664027615260504339513932669802497859572029090433713352256174987696002441298964609362744486511211738538191552388591919745466711104407956453282486001173474298303420242251242626478117598351303082687667936491412061743311571422007499104687875884597733683777012351074289851141489004075195180218072437799110420738084935467606557174454894785162308101361980204952003100476978833311247757160366445615401251992987936743661511538711557680858125166055623564946735338290466710462876711512676007915890049726021945235379703157200650241280455396040188362345222053470417570819331238768199051094534566477290730421667617144666952483794722708991896365315040321183193198665298911096204169830921378526304021595531051077195793941323154198388401068779469770532434217150243218503865735722586959613574635986571009893169884344214025220212250938951099408626869356794145349784788779350315421676880369307463943125361761815989599958600010046943906985911016423749378504842481884675855118519363607264078547997254620390489404007097513695882807413870150165851499239398720116764928148393286836541007895023733571050148208184936014617329825044670211126059145374050034685399431696858723524609154716649264835988950493433387941415332136062415949666793391973053960266636944989461779416851845915367179289455130261800955891729305720117114777247798058190050756501043466988069928346119123894270230679360376043593939531303994161133900067901113209364066428642923751847052588352199550225149711471921252314246462180772619947785277293740057785884967601729068536741189893834402017101460773436769165255143018520397750876835017568637124785073497276197084255328570154704511824220242960570612635137925990481554197399984861899546174575325127599611909547579590320540612870637662377666383838587543127286079762522806106439374886897031597222806663115553912551954827645852993633873741171869817003138182641179017642266098923226667234079565161354010907358526902856466182758196840766112262624003512681497127584825891632870202872366086557086906059905761216086848324742178711795468208258797958385961020592250994698672306689764625234783228724871346016650807788277338426669475382073044626101716200354850083771508317396395952979374484774027848097757366985966847710990814866521241559661953348758718850970171542608059386832752718540161440550003894412448338022571207891557550113972781398084467738414386081273711899227014956050607076312957139633832870352781129749642714019599434326028739323056190012336981163901362936000125724231741889689641001171874338347641070751450285280373787485252308691080856020823540223219407580002114572227138655193032888144158655567757520602492825158316591594085661480868598515283350612320085705394407532716152929968678716227032797789779035560793747059057324835138274707866606501438623633713153942322130443555077540507317195605769284864659713873631020921117834062366976060495175545587347892685627899243601007952059150573776949832519410731519181904110546308534304317992011021906325126256350697363177549908128181995574981014017548646516015266423112499178377283078821851777980751026533921083548914742769572767872456513285200206153376698460413955409302627121172673023899429938642851863571503852621685822716702081674152679349010626772962363231040240988934287526145148542219207478858524687937025149274967870501137011518248626946301339833768992183871494962630995963062205384376786006191309732288610097478794386405740363938544895684460451187478732268983221850610649831310201947181753991076398438999099713995107389594663954257043064263319558561525102060848934872661113795899661379970133514974122343074060869207646124888677208632007177482126455631699723134116329146217059458229170893822437264723448993135342443227319427272644778045810849221370644686511939108069147760191659122574461907991117549740137697782474612868420725346795578209567789233046090984357408014584218926511221390538275482826687291579410468840923906960542404728522415807361520607597489886314235453863450214110130612552569856210056957239339286514959519815708880071056599691670038728607302589827644172814112589397929446100469252447614407204924100064995150708838064831158823896452553862736397129812330433859350948569263445700715221445115801721658705281880950971553690612744439837940784978675963419721632233333079587954918658645560873216109902636472744168107264862628945649780067100442773454348139371494170204939919508155981702750767034524159689484680893583868960446798679580720931372007944559498931336755760751041879694745409409229097312850642758194339709368421246460660897038179075328402227725382994383555952206868794108337898594375417967457041592328066862594817629837423493258676656993496460152093380294299661759658496847597345249700785957462710688350586662491934418075184754762935046933493833493109938528218745388813069912981161243306142716992482229459740405948568786368501976354323582848043248643167499781250754096736513870719451913546663633895435517672279117536210004372784042976355359939963016957954657292962129556876598944131824371536275125670010258762217324040674791576987803060551192571484619473298809497689942349432124935411310769069050976285676498506967260034616506015983562993535613206504952515345853419284530013698819963375358578682360517871262848903240643150871573339568501630657477162514329206715261510041807837104078231386783910071598643809783166418005778385017618509951216810038424034849323917957092112640273813115842979011970294085843484574204674446978221943469319147193553545792348221450981958400690297470693847239866152103843108642788353446765505221651741483582202258072634900113149952069907999931242915170776775051066220678556016644838619384617043188071016093876890038969553961822156922538367571100416131523811103169880655161993226625682847410377712932708822345016347449133302395445993583114224258566199961266786975363503893704982886557318629970427158595805827507069132176727084449210120508961556883808587949696105985680933866925781648303057171668907651424334037161903726332454520652983163045353836586837800632724803091560090360819097855182646409589031511447594256014230732512292827623056245529746796640061068859403552357355929039289505719505130762433405130118509087325425838474506236274247031587179669901284628423058037718484910332570221815068465006690092883733722211144931605055795789279805802689052807851102762675806859841410495928601426474505952253264392609207004262753874992725688654287305712864862463595567337863870832620201462218472901958485174241100009939725234174183353073649026116405603314537113738599954468331148943408801097967170848303216353315429445321772329673580416229617676088406521138692262026587899422869318233997688563147816380664438230973287817540717007358842786000083094995975582605228987360322864719591934952894965193790982168983161478766952808940813987423401016403793158660379908888308031513009953453743140884035458905331898192598569206455954631558807167384917844276941464579562602367893484349493638070460889548548855184301519885288477226602120896384841061540312805796653047977729362665348588414764552194695696057038325449871485077861577881683582262812964422992597979580112854904533870369509604280037150888462885812612397472216985381876072871127882562283720787009259664909842284253274611927840560938278251033564374120934548219984762016759750341042961289082364775760133966803583951720553713419730497963946435241751378708209160784104593795609323363583268717017240736442856554105145853432007364603762397640075668645587254257493628824904177489975842938522226083271534712615176706868626188956111001956872095877320053578639043108569973835191372568306211470999163799886310892844483055155988031377598998692456723206214212568193232772061058362185405085115403687798988654312854815958220776031935897599711079775872806844509857854159869944708739716123023500169119026774510031259832181895633888014713901507166020007045792975954638429057610012791581779102609386789531524972003444104704435517238967442713231895584926620332883595597506826375215270530918651220103421501644999207140507718838902770004105600556321137486808908663183132444995480873849546260983928749962369134094364611641992310135090272173308315321459770859510726943318956587654256788385081026130586992250608885412689637510396307218805935780035788622413918778028401441851608900216822257500795457098445397754197324333242178064863172520577920115929710867293694632195638958035030019187697634401119486606094185698456919845753828360568359821762376675569391920758073511307604080675168389307843309407806860833810356493658277262244950049877819703489510989352963213779615198451114310660131317892947348782362797371289947488826471051398885047329810171045186338979715210339235779969126422362431093759323987559680578822285693284895645183615481788308760801080800168696067126446393449471464590708392460872921244776913262757552486941741072892067722177770031952162593846781323074664114476600057352354563949865800583384259448310027780268520283693603128242465705989183256586692019041786702482019670084958866391104232861796975772542391083234992875563610538553112864066122359200368322278148192315826734028697487013639990326028801039550462101324039366207204272013185974237269225528559250568488701888731799428796934000421673590562856999917099364264672985443976295121102218994422793373807868100196040610925507612027772989797371847765722179738660743059324254782565727980565579154726039661559585927245916323573242078379245724010976449112906119944437248625709067274030827741688125280666509797177078263168916526045572225911023471239097205883047970502488500172943351939143777107915249937506691688359451280662098518280831669309589806119150863715408468956998388756009058213090526002344656483700248682761094824975703555331309209187651696784803204873874723167728558330635831826992182604772237960366149217100988814355576823637281709575688994805884392863978855534755109874912789789854277479864959616690757872294880628902970119876482016322508842824296965304212951584380759334256706326354850626456826134772026183787630939410998788847474967254675170436056291492701893702980675561515414055666253630136706875806432547501250695756789003286342736044088973161361598870412008653546087944583072099976470454071275256379341379440384830833280815351536258845343877398654784324310372321489784659719879415773909516797558687670572425415179458793680267059948984068482722934371387933389651568470872027469094430735162470048441756618491108761122506007090963433737196709395758620167451747096620067004970347935021635860601941560516665095880063721465512211591935261777844164956856271033280720979276585008254533089885086141929790267363125398699345001777000861460164012470471786448730597085258687109001076312630072741781625386818199491586949528683158830851445275850727898709900411589303920476756699435524591589615558403566336440606896704876101444645434195525389097206138446398184440698293931451901367547972278893253420648183515529822731887444360973197602892842270630612403354020675433188895126238856419530164927683103843402315083567206902186049951804742715166625726880122919275110629872830507230528798674725527516525350684283539865166237629422036331010750408941585155993586386675293744819225152465562825417092832374039308608800706370207158556208474307501917860675316131914556533077513647254590093300307347549276930395538929973124547456176402141730577485541115112054959574221871517215542355043002670597810182992010921059815096342522193277927441643203901301334579278952152577904952967372912640163528535864126634603834612762301073889793868361547718789246810918452663113434792450320192903295580190232352730357575569786718120555849379827197268254079601803747978663408388561055977341830474408117618889082222972789761664009358551448576512495770689303087870498434521862909347309613209207359505370560375839895749953640736324690365709208082368580002728130595092967173232150407392834458025319014315976752020427276041023394283424051297453103859917396997781387866416682993884592024960928139313063933197986584306287575941025850012818040620389446377438198716721401232938198305037557679486722950834506731798114043384439020486669858591409047735663785656473220282399504316101184533226965613868915343295618656762934337135932294763775915339399654421115406137015034962986630488078233802221172638613517357466992269060188678283002921971613406475584269350130594347304365857777521532340878154625356845382193362291090942185497370806776065304282921114570105676025467467424358988684624115789721367216524140891003125624636009331381369907692422859805752137332034097534657012490327106568938080055455459893755052316715462755726620516188858309287582971863116865278103371014833892236027329460929090230209302405871628564374686206569648649720457222854555398377203556624089145989759876255368227282066668639337047212985733178547061407549422297448051858074972287783848457627797911948631979280897317489685167876244149075188433316321740798205162462994703243916450937497381902043485911978857842811945830645559764692756967870503468211944711895499462676257586342593654103388427058982334376970032458923944172327997397097032793045797283450617860282304917772616373556501964943726886945243678446307214037266254169955854508431929254460738921446007980137986688886442543529056856269829734151135436999189994256103455671239390435202862124894106428334761488816725997096888997687154816893962048578820303201530759446187360088846536490324207720763672980490667136633221629149119914041577452978137828215945829873821453506475856168559990329331087457674409627496371097259025421587907863022358716492497894675112475097753452130650841724173855801113794283358589688845875918067967046238835651622309073179672223033160645122972878158031376301339943390407426043388760162148093988489771443164721343918655025947324165376223710545491481305220768447776096702729828042193421207171526993642187834476745033382540627091294999614439628810166905590897048282845986976308850665089906590283563384636315398702296366121378548964563742387207565847772912409744511313322235078690614724150212491313607085080718294602170412976988935731460823004206000910453816823149202566060649657507555755529712825795923365932933991873109195873133451175708187611277786206931002375704812793620757116174614930382946897086543499602490709977370818313458728910041924894240555822480480461216055301784090995313424140041286021401137433885611555269353143869447360636247151868934208890083453879916055621286226205362508860768253902476575962503090966697632893003271828375672678141786954938238358763388464987136829091319524617878985372306444370640793367059041563207755595819388534639576156951618999318090271747822724431462404754999878997483548477987516947646652320702685364390842742470994786327048315843048448639722262095998029078830286993647604060498330360939010360245227437173122172069044457828087969762433382221147831972588772857626112475563470461029168587277175286609147924198107576394926256194637028503057581073326939083311133044189934501093041779757242546933750669109955766704180526765381153360679923412947821280165279801709841808982224657011188977172313195638490941804444704564811428932429418083190012622878648047807459316813511699810631234013460701312994079923104848333258759596541343202949520854990303742957536901861146916110511367037255124661467904051848730186416625316104883170143971449630836942895758856925636705652858988344703819271218353682213655847269034186630445924843648111132095038626371931658155904705884294237465227546659064055403866786160440902205315617556989888158287342088487866636479078641904770280992840899891862615824411177201529352759858699098455398653519853830071190096257142055388355997923008666544998782685214689284932581887793827191978370371571980026021328388264204536951232458911386220969433340950235199870739147006990602732896230526319204672809459378948267178805137318424523522334112857811449638754875689582732554503777853882078539185773716345682970631471171193609829748446131221884420500655748114256393323877879631182439360692872582551420420488674264423458174865120277930999808470015163871657741523485853565165528932617475209475591186677305383197899151741251041042951309336284537754217694482154369658973301188757035154530179324664417759213632294388608630014913599276968895209246074293050944804654107274810780024543649513230299925564344239077115552230439128623073082932718127675376381701569878170765349633493423531075324816310576925019350123855782400632709851688109852961056484436575943274108414373668817872692522942200506265522878009276897550666021570616545819194422280153243238092513520320076277930774693977973169985857313933226734455326948430716897889033106066580940795721275936370469951624450028888194095295078243382068246718595193641484671585161894661485749162800072133811424053227592553160468695107574659207167255335837215962095645840323737791521766939434033795461058043704594722025215813905122062841944870664135541338472073217628715802367126710251528193065344558194118998750525813526377696037146590662066213646565522330580680501270918634976919464128935274708524747055479724298673898622494553140107770259813726131729879997570777631699410399318173842565674355535200167458088722652981729793243943934853948387276034258795652157375905715269809596482446781952473218485781863285611223337558757998593410885838867841622574260257711941280761237249902637363846467054042630264471763733006282616004751466304879839124936333103039590868784086142968528446141359216561036340010680420034890176067558877893305301686727151668738931328106361946997249957542366581544458671460624954494517769774103750870011955855691523420799996020404695772292076946620429119287304267222461667628034333220520575703529681572257174382872455454395232739378565648198019652989773899964618162360974038658966477448694800149736891937494537457029955854010144989000603963223191689418158847338219032947705841933149559011460640656725018979573465071295477436897616581100081346137948784810093952599682565761953675219249315073616527730649522067614801100631215553773659901486658863966157779042377918851717267975218392668830627525014755475474574490028438454129306585004416567323685006423519200111581802079478044524409240396872070240877853053452782238581285628340130635079176881073936491341687748846336842978982490631740402923108175050165569323923389951913016805739760215791228701680343615677967449570939074362362384199500256789976673043431724027582441312218808385095518256427594783501473488482693693208472542474353344808893307045983177822434538485943896105594901701116290726800031969263818880070654580169333583453614936782658107532087508056082692846147345520481302012077304418041517477750891889941695447250582828522093920891711380793583481470893338492190684127355600552614174184216458589401824737725610434856888263387635740987250792792906567009113698279084567833712965985041010931589204696260103310539258884961940934833058091300907385099586867633511691055761146264424929949342238562003969058009797338134345889745321268005987167967944157054418023466951908800558881103409114353964739405748421457865728942032314269609907583535684499604987418188778154623228541364223072986960534710127854688191608572713912210749631428753226839466162150858089225036523514046793501808900625290416579200395580586445073438372282480119089750133464363004610174432198921449638687958514108432784109695609335738711863791612900264603600777082857258896275899004035401460597228196265582170110104391140294273343447531231156369868011599969410309223882561118195813005495552542712938409128682529140522764493217341704521382095911465895061576944734211424513613521420696642417107747090022898331580443570390847423047747929842462611187706033457909304275523027065044057697549594414313722807488759167259530054038491922992937116295252557469542209646415336776814154987741799019218664105213818831896016398547337338928038685384417905223141198081055648139946979993253448283355262838671899817394192932622229163951469524395659012069062204992668842234266457709862412229875555731774911889885849700926039517381745612982448043150264419836807570353302010266381594192519224583570419890418899030017725026553407767481298612278438150731927306627475400170711454853822204582368335942025218049565152260061965978868602474166190343847883303776304796702181533689606037163791973155267034983700483897456935430444532326565863885251353309284442290421215888971229357597685919821138127395824785364245306751617253477136742190487100270996273488130806589455494338115763111015155080250832359647280220316473750067879785939991356282419712143353653873576405339488647985182465039880119940090975142200288504837529599211340459688700344512020437221475693285987765505351301679220412075277880673790711953362488538789542411346154009921789009090080924589386045727645810641621241490471617101450505417994009996540278615490636068825885890934628585186996155166235620045921500034209902735113419064848230496138500360170275608184257583226267979192560793684169925492548126086467044384787791378770680296713575326992766661558947229787007247555507315889580738018391140206447649705225082734714441051907747419393857132759728456090296129409616801845160546694303358589842416901439236654468780015790629373053261746118040634946789276308970237994287776261185713619129052358407290742363612855626566683991993178537144106173594775120355766607128702726510309203473743144964481508348226962218233564183182319191077577688160583328539703707096048363814422143975444889660139318527744274670403732071000209001540362687260654239952662471952824578752664738546300272709485967793282293009834014818372088644214458932329953091188536363921737394831589593638194614679995096848123558555538145600632852405645789158061252368352263732141245210679608351859904292387506997809999367337677727743284953722448416204950152020689798771870990432314936521688079828533958586228937644164164066088570925997592941498324003687353058614883618863199711972823927806173046553846592609182727693688565751846580180597285558335701633218284467916896082000893127875533487487057491882793334810554609793283041440172313301076072171416241686438990362138006094476680105897175976448699063606378207957895697450870045485488369711579559608727697916811835721752761351600271568935416144229090129076915700307562498816774197801743953653019969207603362145046581108524331380838672344676788727468850926560481432373092515716198279952406913595631703649158973090408213657782554913714497084200243672129152791221521414970843948665167409796525570523007178059835976163406317961419904581376633211714104324872416786619537463215857557521738563837578554346910650128575575251013848788363508102985465367342372060412720836922796677095697913785239520667906349800582046563855398498723245130289063940783631911066371183627395573350627179504182794144665586342260040243530338402894013850380145860381478290091694353167950341761704264078365476882672413691894622344233891928615047200177557438834762945538511671397653241023509509467165105626942389434073827402563056122143949271556600708006021110580966999135395426995148090732943260713074341138799882439194712592029034630934652354256588874816035796530751326414149495267682423636344461023241082547932338094906989005671086867254558410167505744402791980536816136897621773500051468792426916262845457740508099833927054126198922982560397929282588509144779800009116031799507596527742554055202409009198201908171869649178934239304915955195673311486296309695924259534082055957715752593618491877967146024386608001952715894440120669254569656726959367117056198596429744251306790685169680190296246542348486426186590707543399997203520348499824403134960868442653834947205317375416567063351039120212262648788216354732000948733666713594637770672988865078513063520128385027263076573336394023435726014693507662263935941921384608675657795642537819281995566880334798298268527783575547316575394368576411878728593111741921854915969482254404153488394442425354333255848251114108191799601953758203094120149201989874519181725804615599268398628942901887161453931660749242453404426774247619242175756601153517302375065606074141783333891212311155213528381435166325128887047122715190480939573548251555820005279340839181213021448828561974645145474055044843629241050096663699058673079165444019035088789887925729996555936099153417990625635489827684214538745001120196581684591889641904144699663283342332811752597270852379610447313818302950922410194437934466773647920509131574970906124153345910153204532419353816555465885799569777151248136943060382611080678751428264721311999376249455073553380567840949294207840908898208115975659823375940469086327753228705120433573009531101039747762006004704664613098067918248464651235413461102896251630993377484525067326667178447557196329601444876738538561747742238879003070314062180671710347381597169872333961341415774354139004040578669006710710326752622132050352288589069280584646368928489199898033950664900201609345454302687363877283868396384410427107081545175406055147261606002759624520251242376476127520413778619496063427557561486475438002399541073030664324282144133176789350380794163272755817498988162513074805895026454164515842161335193197236789818610384219529912381170285552213702799913139767851769257641643888166385577625783421700833550157076734578481556788208242428745130849848135819373713140119855179540024992295870555754265983280912413164097904127030810520877425904672297182131736545004964032164335743574796374470018506608116293632740441544608880545029063501674649151881039375443751048145633909226766716145158769294266670005620522263482872522914788326863858834320939963622148905184818500025130603881155377348605758815721856304847089267254454816348550187096371948332569355733553703787280243403030698890497691800930160300385472861246784016644579741828946741451209360664839844059596759935143107469249202801736042286016933934442376189548662301025809270694127990728073591317483571634570586584090484554968871386393875109882796779372370791874140106631644456619319799153952198562379444939774015371906818735329700939674171518068652729977563209749928045820793758969896527208561155641931175211748866462690195789267911706783872914666702093508275535356092856856826898702798916449506074172190958872813347284294582171989284419793331598732746884163700575879404102161079928308185512788182742139013027444298304764473404567065880017318989437226556012114858713063260438062621969080585963910236725135522299309848954927082462988597705389892281959097776657109809876481580291327070703243475062641762296186095110264246902795383087017875342579050779900456921530751118881517600307187053237398567262287382680974826404200073420413929136453815920324064354284449476954995440897904705828077114406862623378806139533592032786479044070435654616027525837478840167626837665440796089626807261451492807354261068754160509812987994651363856225038216118036525398399880697211348393024155000015283043820254275019354793111203624955336280827354142174911037194582615215684131591064763354410286302119246131119592543383008215078963481359529052402473420016147251361156926984999458313456522079623502243876143158348904070405301033747931762784912842276559369883201521968419489187373783039766789770592898050665362294868649273209220965895307036429416996149200129482265536645255374327537675364759211901287525474067736494489125037578020784453859587002674752533102630756596598554393727048684458229979190345318154259479655360829173128219044479785625744267094382197695367969646082060101036885122738043860927114832306585554473550348637802167709064786301761102340876533670177344654581130603017517965792708601392016498330205357955709145257223476123832929222159691552182797403386344597668610346733874336229076233738050805816925863944072044244119297114287201862826447389616100705535953189083872934881572212693672946334599111315847084270820284912289515086672577770669465357311173206221550463581745659846102332244643119861950271927440533606186940789594259835273552355529892022623677777778921313373679265283564146332542026900586686094473953506781288312812910313198030445497265766055832433001554835184494226482436187013671567799017246226616420973218825681336541167253226500211881113260993934383507194694978439563020563206037963996212289190142111497638032417771665525519651765880276688184726296253562149210185534692698613167353294047304381604438294909495352090150823007138078316621551953639186621779934431500474294715247934270781845744349497996831849251213514732950993868057616198580953844680451370731242272268970897427440812057807341769435297497468766095297809256928262299763538108489229694783438507383360575234864763575995297322641142184467597931920018312418305634167460558538421479879189904706868942079377139357595821005016554366327440257168734738170455922512655304658407099841123691252591795721353964827933843696438292501933496657294628207842369703398209668498205790106732358361494372563796751514577914635144472315864098845340686097092313330430199083469302678803344760103165262877380986207761586583067746115211389700230213562644954600456235733924560566780040668898125225884752338241051341465163988066934110441119425426016050139946749166974232565751369248237535105133261990635725371334473806065991142900331431504194079297870564430350776776815054763313268661456149141473133467432819366865570083145549046342463608737978121281972669844569487902846483938375013265483366592099963293287770929651361061392253852505558334944403498852402590310172471214748380680308339636703417966221295753224634120291823335641104380463337477752613519535574073920587807010016305792853421149405232978779318679736650204237732355595506032576178065362225704055257183676634343715374402219953802177646396558142763795272772473862452537217627749291600880711488121356340271565074062697621386063109274510557078455229416178272016409877962804232023429173265901679298055991708104123792944628209927238907301354142145560559047011675730850106853086901008694736587683528289791798774227875702903027070848855569953106012040229685440488442956821515215166534454040775275693250353957863411565595527391957149646521579211936598424314227534969642315450347411064173033321991388686140299485650861811892885277163290432974676149038177628817269524932241888874965748194356094993038223513302579183732744186533770831706609715238702921264492569335342174974006580655300953214117756557854925465624211885572468539334635545513018763980531018832898477789337235468174079984867941279402449814852995172463808543428771372630440920083338835768819675978602927433994636745664094784859307047598974472244391368512561321900010393419250889616442578164399581535175467735766249471517752331493333913876437151073028195137072708744751573701809915012784796488200782750553472445197867798799689299993977032301532001859130483965106353858179791335903562856081780484735318657482112551587871410223373501710979967382121187678536569285833758208175698224178446999574738891734074146406930801482202233636324154178169386698530956981383634625068547362632325959631484587663576911827340386804505298699945221175629217472418303325663239338370119348968727106510997328933271041288361758304707706896606308179504227900174361295094336635973638892993584577816234320688420046949286767944412727597520250924357228999801320523055827640785881649850810291324345345398134970964395716062351298581699064648623544873209694157787504481393534041440317842995570012319097636192532449951208395205222595714670105494648982907993788302450204635228900278655847565552101448179792886102679377463131478375055693992635364714412111420974945296824925111194906044264403333806295689136691069605787317797401025249399776566553182690124017479656471129436519079195716619146678577972733002297451794041241550206067735015856232960463501175963713800786198955425357662377060719903936221727431699071918141839235781608332188983158248958269798947150914785474689721216279983791599681458672318028111552697344878368525737057217604988295219907022933486939033563414676948905763828925473100718525466573039240715348367141925370292024341866058771447209357762430929015594165121187214947322584858970412075880970817241979869369069474433189246517899426123751481959364754220069786162436057790232449996464965185366762762979385581174487614654419129923724586400831639818361156686915197104953044283397396916129996429264957898399202761813774123587432404371721593489430348413710703874487015757892357400785683789195485491574181896510009041285342471224823139990072542878679511529829097210105270654928724726932641495413191344996633523071449546099841049725765058409022002439253574760753652750458906364270147470992339695135443264408802616980895647842342908826765434909945339570136322260195700046838527805357091793327316829661363999846196124469598916712451124668410105366453681461261187180731383416891176109957883630862315226126977962985551254590290394725691888232962350675255871646936830428490830326163177098713616338293290888056461266860347625212275041176255372253126663510014535300111552496049925971745943741641259675049129851863580695821531362477604994606866278904509825823407006528753079823857828634868684453122526716116664343889599682480913698976557042060593800264275366290155728103917442737737684396094583431635991487754345392203393077876028350134062875442326122286175267396996298038009993446279178518903463281079561465667346099357754725766501030107923775841833639998465102508639412893048747711955475188627037100333214667736059786234109404521685110512848472414181219931814238658729091086575826921281135528467667781818524514091529748743393295995859121401511471187805002022059181942225233264763253834445063083758190859335850216402019880794467060312441029524155935946438444018893074587455750651355233361587976961513055377364440985793034311162774554116521529855705651171809563293944659787375284092766856992563133662139610757724406885035015480021892518895265587360071941266853982782639976011189868713916166665880122366553251520657800204658436294364741927733497349917636815420857291644583946468835561968820548400668489029960037297306881130733074410825968112784130668715388088605770269253755574821452278388348145104264818825163323277079176572260230635950190135888596158934490161558221279111110433102228197006807478463953046602415422439659305349066172084761720213370857080685352648408156028579972889141296511810121448034472887090610080840773335995868945274407784508566596262583902450160168051643478868574116811961074860019891208476865361196166598022927777529293699022041632050178237448403864417169447015309882528859616145229726822230450469415411343026987877923502822242174906909462565088760648448945897357790636580975605150487074370660606836347999395570008768084080303922251274383936459449124763439459891494016157309148834773904172866828000729311183766813382896103549821975576812632538931243880676526296552509968704837270069946963448032757945356035195016000549631505770558429251648233938657167670788541072218500927793707213733774841836629037815018911674750377410664430173357994835162067486624597723618344085055333624245371723814792009815518083331460020839480931875245577198350887103129986669312874705342988840170781189925739221298297126822755096256324621258394594457784847195968577109129697180920187985312764188013900866089567457366259074572233145708485307697242006697501095750881542169326141934319649062926595315754435453819211333115450447357700862742637730084611708988620334206453665718769021817989925666263508202216922742057775219454567281783883343178251572834127167972316529502176564022550449072150383817439444387938313237163585293572211193545458865605268453916966509272121167661061846010376849016090064250120905070066320593191188624284433467249330769418923835818684451581448231946602742107176697702843984542027072859225918729925451489221976480778503872415760398552129697288985121770347838764664515747337925754112429195075680320934092473914612937329706593533953928327596063934577494369327285545526612982553822147012496351261737868113385294866692963645320106190643000199124444191760165437961443065467671973220302658065866189666391243926112514148772594552091811533367377920490284318761171701716188090135326853464426539012640025068480780790055145397940924707991393608649227916402728369534623366442698855318607750109891596786648041002770684040588237121832436621882179749997146657503704607947530320549935833515416773357264722330309738793209889305958521428990590116560610819226116704021508605217052264748233628261743507600120427574874038999714930654526659164638360123503851152492500753806024966030563747495448768253112120490296828917179447240275477156589346710630854204817726591234772329692867796276300274287805945686894659661966982460815849120921753462942038106433169264406406185766780766836311547647167579113992619709512463319139359671287578269357189601770662184045047270947034162395792361381605853550066483621615774136439962224588789023406605823351793331516353973338832887881253657532194209255102493515159461901009731929004906030652257122574061610302578074949367787250063151145937404138277349487803891679634024288171063335120172567517755367517107783914844734213102324159052593100302141859929122098476824481256110858632811808123620579200138270593386797935788232808089116100190315567988212808591100495273030707639170958869299267008770231383675439235305805841940782406835792167555137307510543253560142838540622267381158826127640477512367993143516135894308138272869688746970014851347042342093027039488663734245905567155626429948054486641656781473635861662072605431686753421224245534562627103976547264451092628102823536655962355120735666736573413696227626569349556804831665571498016181700195691121169950595973915029899668675733621168119941729298810324668004465072585384337435309979916046986037657159792267684819194758085314562909298201730672031101432574202664559839794646746552234676595962366914808479243020690617629096052116867225776307989487863233497094624773904086290493682978550471033844623702876487330034103761809080735175240129599064336135180239999980229334577906523423342726748609134740454615505986511242587046689478697332714401654794378645854508601979290869511464641002198063239320514056497385395219774523934752962294775003494505738745094935119532951084534536175397039196897202197167973996991980249029620613109470084172755756050675577458254305070238333972575926837448847123413730555218147853447350752652817487586654394912313362921888613213025438998720699504889193725828429311048201214889520626692711350689329890405195689867387699908827839011131102051984506606393039576025365104553300499691817890995668887933982557330656324667560388918684758764605431313047446338461691833139711983379950051699244808035329015458159645145701891318914078320679380325505677750278517825593408991128824569256639478610474852969007447913491808238279088362721597802812482800135991971915352230523025367769358762179308553917197838592373362588695409096675698273139242635145425090939926292834042188214700758782960393607005427318343293279454576086295814412116353426000588003863503989216755735913540263724362666415665814589605282337290190208073532016734815935009882443374093344299086082062425880515851792953698604650190095656913402259881662275580427500038000250886891746889878580478888123141029938995040263692769074103080580290854830311485561765413389231139399359998014995754714782084014754009797435910923895639209039958766118427546605245788349369062617402142535867370631559236216354915398941939764098159349009387059650183239503434373936554971796197651307903279397026787436134820439029958026167335029166959465092416055198961849283148525917513796158329491210409747202634247615495776472946946078141294772327825239017525583017329597923464082926970204000599416730548258651465947992436110381756681121710710622138840702409884463612169328265419153814272222451357671281445787107054470339844264715446035786968605975357409258820269298417901239030431893298401483779857634136335906959928262961478438351852379862773310691559331856106193776435156312480745746795537217377679346548188351040501295441870644897156725120928254606242407155624349653150367041545276576156525701303321314378336772338140708364360169516638920825321525165257425318241956432864781937951100925745384198448386825680022956908487374233530211425064127613752109710355630922378738480085013446742874435818115014697090242499359568526471506196537552441165022703832295219450184464407477497591806154605652923752479003449710755242029982931101240066474414846099005517198304705884259512108705567064741810170302137138229366510643097194254143466900896075749853254370283715724665332427857289437067353889415487116380990992412436815996695344818180740153259219827296635123667315293259676326372961549017481584553269647000894668069958492206280848168878394614088755948153355942981877875293182461490848341948565483040640481929496562145420789872140553425316357688156954680116882374122447133519691779287001701312256102626625032821712960535482654622671101322366991060339645999845373488279289701414089174731358382693515876892549677846949233632110342035148837773476590658009960551724242225835573862563576766544959191826772489751595801116499792338359884809308743161439024580590266778983235117703943898346025742238395706175005272953345922862651024214438223884881434499750341184071018318190167585066873799968203502361543940408061589125225875167242393541015113593083052430410078851964775826660037241165627042446306935058105552245104940798430064004634386574199406887348787631500914558759895096294543056715410334192082848739314321432224560296826322392356661513305053333562270470720695553454956592175499124869260137241219188380216688571256853323681289602553079257446372583130868328508258956134436672565035985772094339090010053696104769635906637407307268311909235129550521794333709141885316101156409467280600949881751516167218404906281598667778815643933019110598815156562235495920811434496016915597439447577890450576358771988047295610789255366212749366280606118134611445777349010269238332489644321102563335012073807621149458971698172134173638563794042595564989976798229073080496588708799508280727294775333572718129961428358107712072457855182385444805019678654897003489153525938772016379558380396766297780049878032422514430660342735145374153038797255523567411764494907606966520834867341226907871626773871407583854612590321841319324086342766897677867625624785164047973211716669496875138109925821168287104220587267516995038809322248811949273755299484006558471999236259197587995411344501106313689463640619544933514633374572055791286967165060522014163233676426157804044336849833049636983033557595040190308003056845549470205216108706503703129862234518272437002388870638063835465104962478702789035593088785942088535709360951823029335839367903362035369338488338456771636342606791569587556095898009019426079062617463773083999278954200597940049807150522325682834478190880454415466108397609292813707851844661570121894479013345483477013310168412423156565359262213152842221169360663367781392223144235678964516541296834646069491887936295374043834033200616374327307512824568788717577908319664207808574967409675480636346349563036591182960191261308390313557402308780617577808559330558380326368173640923340104214675920758392266051502138591942844135821561817602765639535015675779714006526844502263430593827843794286361147832420390265636374868757270660101119754721932652306282696678117872880531638933569085271029860857770414968322195486166441418956394056989712004894857910277907206568330560018884081884665182752656889169807222537389996523787687853789708120407098343013252579847222445510461943184816043429756790269562914935268363381427283998640603969380735655070643576857401058201252851100420890023659543690281269939025839185786602472716361007249567162878355052424876316841531269105394712208305087202980893766002261551277178031445975222949710430538065784625495659730923361461161020181015846043856065083520235718519649103872005309904347650041482865565202951406668372574393751021935784623371253754994798756923741709222032456918548582944784112461638302064642136747326549502291348741893101440170373485722375050532924789563893651014213891474736032624546946730951241274555290335990204903988300673390697537469985795667283788898047643809342980091487533811880005496404592281270971593257796490650513434989850539966583987886118029901129352192287972431799772530672914839486513313215681001790023806099499509242416074403014739717699385362672601502299683204908757131628606877783018793541034359449771459232865880595911441216245070951820678998367831070114707685216894279968305436506043999870139458964506464967125582332976931180095177777568087445259215770501908280675379934015340641259165659423859884453550202945833072193535170767781299906213485124962048204116471806203913224350250271965274143761546062043942441841081472255186541971192120384481301748273503689734693783840984304493157552919107351545386357282450555967180813012796762034872832428764277116880744903548959668777063374421810371152187421186697899568772486246068928877987200009740151902885968115188952512516173351842314239406866426206537133555445322439205087288542405618263360762789097505200079678754841406085449002211050923062889679306046578349232710993452778281583397578063339359260162678285312826186101662897211636002817659353416929506207106333951299119081489126106430118460139746232777212573413048141505230836915909366579089080572972687443148619192220102987190603953268008144531717612027191147039238253432126876916910291206213728307385986612494102799962130891408229342665396178520105164961128810396523845451347076614524962528431584877831910115638681714476149973147149821258302361729846946185356229950439068404474842765362339132069792139983955074784035124340056351741331829661740593407482480717810859434727588685738369766530978015280786419050591128433405907059235099333502029592597934134043799143113350910507361345947304352761789177324907838382185449582860692933771573809010322613218360579033032079324999007121415927476095924203402350680364765108624307413959038680751136484231160879565290766443041592440050067790004423472731214272187635170091943766446248172818461874159851838475024170661671542888387915158288538362297116411841103488069772770955193726042199020276263148425221661611844101345934195127326810406287882217043505185133820374509032879184128169745458930135096710635868773276080210337598479292773765918241569956646930565325086030881388626735194332727805920557924047634103559734930181857660106008724225141531933983208101868235619474580054830646473403325458846379929755733799104548349285629226329195336834104920919595230565753773754614789134430345135041838811809664645846111655406989589383983098177340665656906637250220390110524851785445271775376557257991719060767894032404149757453787072688684890574196345367137288944233071641396074744918059433335516531542702059630972232696585030282869089647362379744028034436870047633968521439046241842053349623059223977585761858001014574661693832927302490915918083952142279499225833191240532724488500735184899970844353304731759907867243719995840761057765280257866456267538309973980027042016034122431235313686799301768518709498505817681318205478019096774801586442817398747949717903914815422384065341124610808698214831898850313002791621010041843806766099086357111187352659533821562337629349269918213568528449333350205745234635500834335382731237607034518606878400395790294695675720838828104361855003435303434448873780576832434755495788183964059432867304059448476291655975735077712743189069795482121944471074182877660485327633301164102640884916848570157107405678636800968483421425387224973140496287974669646806159354407031447710217833073342670777764927303852415311524004671532735087507221228021916605568001480756569140361893145061150389453788291279093542092026603139656411839782618771696779043861447753994463761793417319978154290229978746359228502788806123706401797171274158638929707115909129712026275280513693674455555893512012535558052886700880869919778435991903827111841477182264178872041559088823012703003844308048366181556353923416818307026434295890634109852505079329588748729633475201774267852834307632087039558726820127412784946021241312012759734529724116629616543734768147067987999203373721718743804848259544625956414111664046370597001984612191839872494344001745482399633573245040052821421662886721882453120718942357399029571822672115159696433970195012023365974542887410504152655423421526991267842317286183320924777917307673619623318544033372633983885318019835128276381545031634577081283768369265715659681412619013993931571222432477041433944969086382334665273609595002764764102908082414897691129017672637549379714545741468624309276842475028918662094851683523648095851970017426344117741081431184815433892745366001585625506946221110826961683145118524960693005292816651469865356550348035854103263728429604058912311478494484284775390048888227487693517967621969809138857117058417546650603965920437002884191980704319669007343360147954214018174347428034704503994205438338675927832423110467999777842376710273359199795392998329585909869856672735303360255280526898777370416784703536203570898833749445696553760592954523948293419601598955869205271517389801719086679781736918522272508714385252118344646859672099269161661331183263110001181139451364676832905709231180700686347554890716053492016160769463145969152102431141269970255041486343655915666918445561441086233163338987918122969338085706053967592568064709337095443347603876724366033071650036181850848394505938643273635819970902684858877195140507656929140092048850535827954495237145270444199598599589724868799640806515159445621025956612357436819804901372838260303845563174381246243282072137848550970707507772239152095738639773138185829843965827507110696283097546978437064668087477124310705019936447512471452057508405407586384961937090972415417381258741064092012380673796427759986112955339722848322872023463183534191309890944997668984607659781388246523110154446243446178218499143504966101508091218147001700887630113664597252120593012251483450532246898339107498771799116011164454502869094048566335486263032038093169404986914603050234610856204537834282655721261195554567473148361544508126496283795941152806153711949595612176548751133631408100981663632678392166029911094908968247327338066908970446576254038298758911429270431491349127631782953826259381299531882637174529995880445154513663780168496754179339141962546210674921182930949107415344981140859604500761362625023722746834376805309625062546354835387336525799750738536602808479530868707955680826304213818055663518015737154590925231053093988273292222335472991527967666352621411865729632084799950727291479588398502085750507882502702720376870317853576179335992763409523091994697040519294089164521283870603917403021848319766351617649244747218684725947870428555181669065457894811741683923729793723604050959069567121309645478778089993115965819048980063891084211837101122948840987756051112602303654229821621324406577873837167459861466112076978981253065628650322894667202100323801784626163842923308383206661048860329945337719111403764324013038077262256714645266297956622291171793665868257397059836044571026403188030323034740144966209744797131914647907439237376463063961996517360879006403731492708040539786667346229213216333325456533125290489730380641768542484070676688125426141097810634385268560673235978927526314993799522644770214824310521890236785626293058106503831410531324669683820618564744461448656717663041622641993546252206234115364438978180504815438337277974911364749609131266998025196481927672502506762665936602623403820271972922355751932840290224455692079259911894313979812258901064083349774887288654328855409785374722447444930950712193442214900357066667462518326548078606790678196604340540328661887298240466371756338443944898796902710364642965440812275285704712041055314342567107824780806653394341867779574112372214369989260900291088923589380287846393365067106978973132119436905895991771946849410782827177709360414482811880897005091747637910174008435016815042380100813283717863127149478934396703010696729168512483421013068733991240779528964633661027104462708442075710862864032437931073088271934467426409395109177751282751697521008164687530207450416378813435954514360774948021237759524055576969927448764956190680926570738367692116981628469616400255673099760572771098371239767728927074796859629936075030504266744296181398885627345402998326459700141521435968390804021937683648001047518508861617746751440458560553320850409411755230087429456568730127636083429325648093682994299748129377799791232274850774607415777272610983472804217377361593517042221100067729182670834412925747217782001867931295714432472719275965625574348067490068238857345399223560139358138999543595318908726124604718749263416852520942856674798698792545442459868125830386267808021478984608883201073363013711050840849299118530037726519291863862788693614749087269890953039839585815347195204768241584479684332618320085057895188623344126308292339291494902472781838463088699557274863730327247772561753450844211585960446867321035217144853252368456644635848409863510072037763928247696020439337035282590220521532240818655916854852528632775739996663160801447346368360299879551765532062479914520584361551659301228987748692319748002151519563654699274014712067098082110567353106722901401081578927742259226771682436455440277291532670819798139780986509969656278822047316262177882552934276259695932207055240828495328196765053921774558729121958644466167547852616211414267131861000456801392049089305025479475382724015904911327803501377397247243188357305275366732754899730343765161691213000809668204761220749561433961247517721483055992484805922619502390501112928166888079883431002830435335212708750376712461654328741324377455473159500083389402144006740352251044941455490905989804163577689597910542333161067207763495119109031854861642301413921749902340186038734982708689050506638298655054562418883671429359236318821980823010153615392785192460583562041897647119441012054089303468107729868215018266232501717926490319165312314257294125016585653900912249860283932457093404194595716107465003576789272201293086442475364023673060675794049666060735559725017734278269288722474592893465452195429666526126450491042926811017043155069536585316196129292435903700459906177509180717468040584157483536499084912163355151781176762784957674336284541225172831069941574212985115884457818806533096197769029168886005636976822841773831443908116691531557115728798126914897108074419582597571701973908878766540090430632334298190272880736921310969880971881352429507359266287599056594405684238370449350510516213355868550183641935411244029224296666654840015787865322151568876673083651113896590129019566373285593234820341219270771446072945038754371665557621107675922092712466780499324071529897406009906187370256570010517150698406843791756985893205790636525372881143028624217290886876398361050099751004255962839827631603028925008821098103486541324750263382293311016916128263778504208989196937157315175301415656649664285024332054957445550115474085058866158248746724269570302799013169679429647730550749693872729973340111819361654716301009593330995993730803048382430147256832209734916994360852808579460590395663433403234713343294966373269649982630194979614560454079109627308256103339448630677671490436142473377057467058342079848047710259064370888784240674411060017830097662727404785294466240828780301600842025965774202067811388727979713721508938879092965379627383170817159039403879073952078403199704253572804625452372006372504056125388786470631592858353688628227478096643717622087737310983675201415592850063206768259644598507954410649353254000757761394408074350419303075476859534861926760999115379552589129329177456486164643913529134467150303841479837559246254315656353544752089913253979532779175075785683629176182848787410137675383092088943295106974275955238770966401268799120650259955571145125553134447092824114990641373593376063818184534878753705535184158493168983031219436500259237195072887350533385960593460077085447675462892612174024661557920727013624594685205560577203459467447142427451609010700502425949996313097761821917947264750956326130116841028119650525661906241018665312619975469824013265409640512249008542602986138976071058307806626434119002098632544531786106955112630886785460255930682562433871566169324496316119162355778941224455459710484477743289178614811142471726972236135885422484477076217624437224857050182529181153407542762285906851654844098137813580193354859812995826663750167336874878115077246643086181805377244044141002166911773715480693172541319842570982125181963719884640358436747137071353400687760310267881488859185035248617658259666255270592894467766679432644137302287936908074697794690096141817154659497253041002190312333478601913492333608164595291305432095971081369476303248596701056135638582241465114114704651740773322011283438457503912039304672298280677088995592516330657370054415802083195707699475141096057311364895721863684901792026911836066757740094013521399019314487324215036987333076624885775731335446609560662663729087374937793930361017362962588673609266792632527560970449300214027970344414967063801089830189418219768398479121406194066180247537931533862189678482550893574903324601958619528595669394921911113566587186261702181229145057253815311381637778277392395601667998866480497106250418158641009696436143778269668860830617664708101539583409322279110403528087247274340999389742859703030725023434721791039362617887726870562572748601024590993629887890309595217909603484701285239427815420677105092702379907339254940977687674934861619594888396637219422744448563541346830804917717534213067702353074109220979641354377077212451339671244056295516370289288597107327503031591838194968693023399190782021349928996481561405485385917903042778048244061200534644811806396345516547234352384204768777643622598733348576841929872200615131089284224510104605312758716296472728010526522427732606848523012141600801725188017641496073019465864433527463314656592499941132578564963914352301788754398145639825538989244395082194585441812061613775936485821429497986673269294767131400739943828450602803568904891924011792068796391440775510655269740307092130611810689106061368383055599920293502647930624026479261332104667560736605370180249251614360196281827473756437370231804353090540169423919209505722897953380528583281558351562050845682568020220280432946521421642235956230479271972895858323906883160245195507668094335828007562453776825718709577133504835560714633431240768698810328061060337927161613050188782304014698728538091824226954434722940100209482617212320817852827042311435076576320735848078045660670266375937731957131422100570733572857204209006347062437561699997334306543539913900389408824872175328908689442119385887563317852237195967364455404268397312525937854513938948228817214226262272598556909103423632800927827955307417131496001582195356581174931301627451285913239454016754980818627736906119427615780678090235520956421204097904812125488919303934654909204905947397163438129522685516804985099477660966717042099751271434318604894102588788682585048232446340824401912950839445503380841195607117337399342232233267576814190363843299515068241396088111281366776179985429379528095241923026603980528269657751199817470390783911081019460594777027056532234486778642074861021176404346541078282543525949069666984104665833999152362248529818040171808531379540333851792765011821762505650386593471492994072149472618938042582244472992244819042003285591934830533440882127217563282634026887600692681783030594079786601350391946538520926843946032906647550002641566112590994360819223934330126546134085780591304309090387718536114175046627875809995407361072096168976934315771176266743187604139454182044331667446050165161570868759138011640827271993697498127114702979975214143748865963137988927805117648962696494343088507520223360097872452716366248917254263525660974409208073917828881701196291180280270896493382772163803770640988720328329972383087148122086109282069931661653620487464261834560649313080931647992455324160550733199629092237071982204503229222602667713380291241333857313841364706128628919900706353057508692596890656357078572363313015225184872182405122462753496705748076333054266768944311647558328657784014934241524834205201748007593417921534076658498937460121373303513670339384236878051648736386661447643780022422423497319237691597334019417920521845329093676897360173939342429099241410791147001965246661087003756764594581510250936438540071001397194898868794587516221867845810119393134962903381764487129275363140630195148076354083141192370299743328251939428872891990677094078766864219477943987125985580807324127204777101194813803297598991389492753419902371117233245949982872799686391128587638772164153516275750542390568509976856538869497288351928276027667018698719498780527704998692853409869591454500602316451820047417714324474460753946465522957867803838694880680915120754644797857982285971318519413100832775787460316210093956918621341866303206170945497026263985387533215939021457202865148346391989322519779683212794457617601203762849264449055070582376499069837324239360361044970777066843910930568636422658107693407974186518405238568804415893157787505137876982526944325281898840425042817480710019208703941636763704189566737355016337696891952287252403410949966246303178282830379672388688862013122063960544665803865857054147118602039636190585192772301171654077443521125837957938782928847665879004734687276108828886180098168280150514074919874659169829084609859695358017706728896493890829322633027093270387830346561346117319441741865621175142291216067878602352731799761696494143162109930057499214896378054828752827063420901925203080354376699480376527437540599564153783948324849578238833697843988019912896388951005586050338004778335222717489979014139071804892467862354859246342895711796025956164826512794532368994675458268986238347907965563235362372988103644034242016243652453268418588609991148030453912889277585544729596216537931957060277213752114004674552917775906341002780493177718760614769912988793834876228578632406451726193879894606719559682514171910789389273215184259133065473859634838582191894662544308757033524772022960263795092657253297810958587485260694127585927456124505329680283528713233325324879786677273267711341974381158421973616112160152588952710851368271814487746205775792901625056850433676481445796720453196383773100521648862015798058957097739680895541377102650051548772973277379709777994901279839573924569168622280564058012751376263839631613980525512275992227415225352733600442714860736312045619788954782522392495655100576730777900225693904308545754034382163094892274783262990308055112336538411809890479033167707770713684750051733203499275359330619236447033091877004996457883871328078036622760700279324089450288121150169405074737441488042708832457348391994663030158921156080845669135379455511019905956984637777057383717098424607330614687488970545826153121098635343188529137417048864204680727431194676785862250302352279677669112308972805233253757907981449057601344015717689348519383965645772896227458281153860743185701975255854091608222494261966943797483465935414359314481600092716097446253385271401780087959579922411762167022638911505955220856086687548657803873797813301476628229058928354071706882610465575556015294657342987095088080395544391995619401490569547677425587914019757240937058725271373311132874750229439355485027382727535668659828934567737191528980543473650836440127307460950822358170532751490524348068254465358633233871903276761893483611752296932037524802161975709720563641104729452131672650736389893166112876833190886297532487057037518145235946347371321616444800411390402213410766435542907989163170311500202704568699411568254335699921217412392877151483065996346512727099814201276998889182305635200346619346181912371271450140578523323042512540689637759552128729156798707606865129269207546773586422173393076407111874279437658090752800558326939316656736303397477912353878241377158806347266022755348449774960064118272760052916085435180196776791914202342006872383883356731072478802857075885951768196071477420380511251458977325309743411124473765300583203308502610543510309126940853335005347449713306337090131524267964349986497921027503350189321000958321545447777638731371024365324182313933242269497600541919874465520813625867483728627301945904373110139772888256978633075205903932103895049552930884936133750188418553426356656929236382160848685906136265636476699463469266809003817586038442641670921880320305461255752374624686846520536213997016135429956563568449408465420465525254594095247608230278888525643793128553346491297972873058242416374909570676454840974707317200172050483831675488705798551681497974044733921996418123484553266333141818179693055859546585460100284841783458400454321535727606788267671255297546678681564167002177086348614122333726501972955523462634045450183609553285084878855787654095477888587594517584312840368159766894218034892393720027711718568550485820810929543791831668474311610184105037382040897694221765978817098672179769125443535010779267887624297696002926557461281392663752875178569936624792689638944513431233550993732602573497167654639647477995663908103145011977612138270934155618153041696613045372042677309613752869355576257248351034509572538543127312970014959651802546415187828595728629087417479273152448624948996889392427407328886203367008231747499715376357869482877759845005434117278219403287860087838108334740393172924917659912667031452880613312090176718404375777091644455188653326956569846340334474027804070906103718912283040205993228739119561217085375694508511477681913106097858429688964495548026085234947299017516276186278130581785754699191063137228841222991690582853715129233314846224972084598973516599596321081522484376520611624537671035151429587950163365745727405535633316749083481529901021708373223125403798269425403361342464990331846532071168378794292178251594473994794582155712279218337075304817345079413039240761490407123727489508065765663322436083056666773485107156809715620915280587167641823079276848352475615353582185524785462806923604334095159046703657239893253962705263421331473103047797643830548077036888006090313341436918333674911080679155631164859038735798733713948661401573596695079181178098589087575345472721906197399573288715540223662962284005748226374463911851138169887485402325804030843952239117364278333177522584373274221434953252383134837962823341465392975885130344373493792710808744740107582552303149343529586221790846894505452578589227401257356819000018113814086130676949549662040240005264029184391740631102783786187697176280947145431048261507704991620860655796161344646243195349290048802910715327273859985583296653925747130565894363188963459674595879165409012710804002520827742876336108971354668002721695914579607499773931267285877895837452655076245605268357328994128978571909253804067635755472697587306127492476771088001411122748643553246223498794670673027011719706130511444092241366318096914994976195500952335786621665032240893964246992507252602217640832889755738497398634876606533723247822958050923338699564805596786079032529078795748778056609767224433099366236640480464432608535444314200423890529397649544863358136308699538252914288295442693242901641107398786966613928865566860673115875520056592049178661982857038497038013437775262729465341502651748554535367206496971888947611272275679121298851823503173280745516692535003542566319499073264752544390326554388397549558079102334930621189599863247974728892855237692977584065025159845150022039029613570218425211528633358164559303253930263484185174219414775530936331464654566763508805614098758229757119724329431814228259128373231774063132922443079372370043543474889711333173843063035090002667776935034593131794632340874582910248313140293409663595868444466114603595704926997074938539587068896525137564336990692912410539842398325809877622585926467823471146642203128914480819023832834323682213625971228403747428415336422243809229291433040711235667777948788116346868514561038013053644334482275400954236486688324596435092300488943629666515160159425313523972805042099983421925519224182672480778473547091989415484969546256664918323347551752874980352315041056065723702036049810299408937369543935923235077233382989469760858478739597489218391803833019444872089498279680918446187037771698372176802571566918783788811251858519822739057754927374674682770925782001628847435591287705189397895405973693318768072976497818633340676145658902420770939524838914726064576039425470713241686319093848619460323769500468655507368610096687232766326977080676078406563240161867368617235287787755949521546110620761158377058775544876388922915087396513739894279851144899101366461236498913773371893419574838225024129410709490838374841991671650135665795307174851806849325033034780762577121136423955449782135718662856630528489482434922536063367710898006247968524162546056324118838475103430746248389467505706421391248389696289572055375870194332989956048733639386168015323466479010130066224988607425513424138047496998472746064060235847408275505093137810762017183072553740586248079125045540656837281851242624047782936091233589377117961397316222090924077354469484292098794888027785218951036432273831564897732140703565013767351030722747135653483044201378993045434559566750619238426630170626062196218910509594064808525405484134652564240005393323372027474624887120671022429031442072894145241875315316601940594141144250180877759084131753914503223818750429342269522912569842977918226729203686703638769180176678550197599044654265798373743545153841933657928652711076049445412770449941392851218555292392357958403501439096357082118998311893648113595823036891465408255755594824377619663547376818805474262008119950119104076506151429740781799186119930232941711705635145878710317398482660001369527103124145006129212688899256936503280390628574706042920368338233063018343711491559152334204981890145468364438396745524411129369152453384939947497660873992332675534991058329935305192067201747638827736044236152240067882363811754308115328256737386905448281197573849100259306323158723475128195107157563728902612554395666607646498769078906777637639536483061474169735215177094273985098946163167533493938048773158752784920167317429999717097332196462832267656269906889493237959716427821881662967014457270172117278386715143659716832427123782825788519892727291825270864143046773390725980780240216026290696120542907900259051606713712597523328621418011368979791463632434194433488213306296651590028359613046848939415279696973991538652898703415523875511810132880952161814029696905811378022292414662158334550178863744360636729244476402415778395866549713814186935000369254563874792330519661314762008518634007865953654353626930930160342402900043030746395085372023494773340569918431912578567971727548520009664529565542651732258875303827344292851388023223037301210755429037689420921021258549563625288572595130392435080588768788913609037648817202609919911534370946023671383577986143498639386865933243765162668854396665644983508806279440849472200921417122447056297503959213208558922119223494255504447310488323849064568397216452041538218478096086429901375936763054037968448993480602827131002210519271600396833163821531459467000099509750645816147505582735835581110291800891613545451550611072864129356577299998631380207227233647741755716073472300439539953267716516020007954701240368282357159527417795576214245733131907439725388076701316330884771373739748340223837888968031370972007480672795112271129747494525911590160642028713769860180037189501462910128552786216039821043749047300909611898725817556059405910412282701687119194936499985793179083253513340384550705305871863880476729320709359937127889563079864226884756220449879651007993250144095386585724839780595179163563107325138431933552621643352252571080234937385850007892605391028706945847540090948571407372861410731302300551071904352173170746373537869358506203080369176366590302116921282463763383410276889806920309087968369985281171215203491550507165395439089059692350699499169350396006178263306699850641160856770010658034450625928056515219417690885687559875869351577365772520483444178422660682601317051032906834601986380202119906740603681721931519140741926113622894753458676119128597233442162470338905378107411711419188640232669182757398640098001805695857979078117456122220348607010386215499100197824438640515740178233413565986723870703706853925868128794047808854402726026419231178841004176475200074400553851776610794572920321221013746876724596312168002436934518770522813250709204287734635451604080573288485119732333596185136175340367360789892065711274474136735277619951728834472590813756608269609658846889353722660971726586530052095994077061637480200300251741426983636057839763413060615315306300460584200428118539925730616889924694450173151205565927276760979468700905919286190874550860850937360238241870388533141239556932382121237950816214757614286544270577319912899773034918794329204767821854751079300673186379731920868357389758896256355334474136807935127569738710059944654144183354869615677265155880526855114610801068090498925280719787607223314196520052046232714998774669850266882822018200593065432603916080821624523438370125325441164451565708515379841804533109247551124561430772307500675351969001639303850196426857588755699218664547799869705917039172370540686430505047853091762299600436590550396002698814762690673981406096775930369662210484096847465873854193304585084470654125085262090275556097064777403633004111584694616618113112672162679451385193731119804175410105600188079917013677471393516705670601336240266354889868290034140743560841207714935870611392242442167029418060554967421526561499637832357708450813826690926524145767142176998538745161264315129961183034922312390978572758419320316286320559375197403434338682402496633002845896738777152266053135946663585691050564147284202527403242765040254920568252590682846668766764260005572931386116597769569757323105112409629122130520139647855301573938648198091350548647723130422847706686922974694372414228438541247359104626980666228548787187585160126283009627896134044165644826677366005799665008387638319633563465963481311484721615025390138393053152847121920733372353515717000725819903672048680617239006374005390985037935781500007846330538346786716060466256164752317714125235129387999938957048001786791224133357511833253270001123701890789811607031654789015049956278307171286480302023796894504617626953828948151456324413604253318262166245230334826051873874269013793552425938324911422322238470870208827040071262588949930072239855892972939140750956242168780474183890604890666158348682179744120069392558764568685367282674594903582786792602208636778077480572541888835845535128271802787252153131744400220754644476318364592930071372134807454235930096398457121998248247064697622328620515589268341943536740577737136349913860975405000193325946970406441044426751180321675307166106146203051390436973684520640873428279261283186730392985548213416939776670741977271994238898401357851796835552496957446271133204624652104068325000594904358797044257971759258552400036681466566759805368451877455732441116423904295109425487088982809520516890607919548574692169587447992004008178241434264698076533807819956478071038747099952230789826606101355510367049934045862643959868525607968168317528794823152720730964229902600174899358354623818164863436009693342163369465560502054157320808022369693568673852878943573909915584136446565582974163560952622220867485511377099610561008854355399155513116734486573608451142622076473809187984329845024145311117533457755047163491231565429921345666301423835373552383628886320310124651935436554705510680366185316640154342243695158227740505471191048264571735581903559891704745466117313336205293785319491581293863956530141922933903097153565211362320525696204313957759515305141901207425486779116113711374528792689989421687838765549879875094793107863443933563979260021405187885100510796121426793195038649060345123547003312237957352687176957679175507782178222717258996535125981537363286661202925298168101167605447993910594802947888917252766758737549004974258446371902475152697417871235187323878175961023033272474026595207870406877706236561717743044710944729825126422506721633473041595673526304288300869793267806842227847616321111445246398129181690499148516934803051127470792478792735709974439114093058494025358271409759161887039900024584753680119473268931470723121877974000031465324191633962371862876555134832511991855812337616846956991148349344515443329495330664341898201268592856538508742466928788005140620859306950849901745965538468921979565942134401775471155445284581654755155372435193235044676792940680537323425822441559716732091884310666968852754029658598803279848229818011723842220676988830550401336876768695907191431064798222285891380935687545611206928576868029391841256201516449673742174244586624839545526488966853930747073568282137946986299614086637552022732994237632595171952070145727845098957626376578194609947216739263297420136986782898394829001069313808943910754132622439380343162019749417302134479205320156885135253089275632500566604308867520354349401940174395889246778563712538306618552039771931744690153079358273339549291811048061070478627113277604623023253520759436233269663532002719964681039562559962363278718610570749226032670449273812766461155348856425521657904057792345662871832966132663670166906189642108380159207634724427046893723640891221733139335391803820819378691073901101865256426319643745848489802929672676360336559191719872031247795798792008996874425877806529030758123131877728081309976526727374833267193404034816542148303269007530684853954444812690793005877086303698160116364418721004006247537913040605061764187183554191614293250679310500768173341229180882027438783324751682945561019298635545907390287564717349315420799546247775380080846427407052947159312549000825674132948882852167419948808051598697732816954641176204190099567310332654255446349908694439762135613276821754438212331184261890669572748403179739493049595136761535451027079251801024492609306135474016816385415217747937018928318406902960413539545305042110219853154815326109265681833194041807296102298645880290731594809100432857752201680256965312984254324967672542712561618778213887422786151285968162844653887074651924066189688136131479871294393069983486852333396099013437262158240954177936644939290561493831819122347256354169756251631938878128588967980562859801983912378500628637271919664957491529309243486407216634037809112424695521230788812874294481634931129043074698753794121715528724074815427346661899270188561920230717554085120465767941559668490642584412091707718594578463786936756966811061007968789177086156024286490457653900277430469657924571903567299661993280862036711606336550045637349498305266513565334495924429923176418421889753300266863374876108168191605340435392587390641011370219592554112403560975625746491174245342305924731817712484810502310930492209756199276105050234584444961999373056865120040067849396476556634959084973121440630645476189053079614820537995098033662718821812265908647629170679559265819476022204277146414708620024128484495483802651470856821225367425006661592384731483084920386005430075038369994624478102367186849516423108142470557502078355263496884013770854600181538925108465354939591628217572218381494560786966709430524030989169774520034562638836586624908938206568286927321222074097536476475658212859519534963862002789071436897948295471814912703968005053206001984937190300191889695881832233346355766166962353030963291958945715967552593147208335386334335656968373676300132238018874893048515786318575647975176570234884809501232401805692003193060432176470620256845132033382246145637508913638196866181803961591562915872631178846666864111415266873624949937360651525621293136055088155248274947660125339370398773600146706791471542894442214399231850130706847154832349801410363620156377827518451559681944417379553723009463848306317888868036144526920481491346186155650721816386829525201912641385419210212685967769488649397126054402338663727229595218986416089974173080913033156171732396096050360393259261933988858838387749917075409452180531074539441141160580653914640455216264302719170963373538681051931993023124294955359334605433534830790141190418950615716392745210347453697591481575718110892487804384967081005262757392138779522749575756668931473342427568432194483137002759054879146659448340252710359907244228461182580172160576761245619322114858302251363043888404205162767410518755674606041767661126185857924591471087896696999505308560293417280502897329851852486688504667938615271048974812466428434715693378981173627204613879469860214071246749096202821880587880186213216101586416748163223948198447879494669514209499036156398697354397118643785299683345879566173352157073045064542153685141871112501888736506159083971010287787400762186591340375782609915074994150162596518625431816560171877247313078800425998608867056700885893558926189901047008506758652580280132924960173849694332468154832792365717438005347706333083364431337001163469975952281305263975062999064729922045281380351468187620662504047234794902527689300021267158656975261224008995942449924629945334852349460207704071613704281978493914253564900781976024998586825634078704010429198211962017597065102085692614268483942135546832211520525149893454579842375754760040603823656481989000247550688509000866693931145713240291082830870286774039636999546158055325392350605106200813724886980350055348037226525248067837082130821965436312539070208979315396224157959475016049245310779694207619529340937932866237850617127828314627784333268011383784334923010557084613627808712332294784319236316671947624795596464023223341496852066477196985321427467529304500929147750395850176276410151967701224414652024604621920261444970399219096657647016930640447162282253494465512263106344013123574258262977600398868083159715762547975569783243232516708068114051764206563773577412628666405165708285635093064824315452389491992361628554601888344266381978489226384589466629594956073414924931711629419899357952549428930948576320120325041110424826339415956482322309236129787312248225435720531256039424206890190200693247672610076178509148262524584272178463325228695491902887672212461699036864313518035033223376419944909747740891211136871572104087645596281116114770668687021244478725593805485991423090627038633319713832465653856417081275455466209243197062692750674390707599649285954444531993277766020915358523495164987781535137429633587894652747874077710411796169907499676348680018710890361672649467090859518870097889250145269955174774972251913387037423618176058509464534710421727951436429980344390851010523609148998550529052051716041940960715542776123313259409911978230792820625111644536473485703875496219185121926571550517545639408997664635623464705190516324966408382967627471884358037535810426588204589519063697234573404468552102235584966270575530304147518638215813574274377399862528438186301258930319779634506335112327426816228398329505227224093698711220751070196055082058315491540664466522119219364070746653356744786156853396564131990941809540198162914783418530317536567556541943570810631774115012586026894869915940362704930404142170622912298307083768955771794820743469928232373424336199383665572174928610449203539356263815566478836763049159167635581873473689258705550352800412860242084391200210054690548390630708552126136788653251857642364666885197333044272566945278624750278405604073640483819682014115031606848160566382048569621810080297674936227169360106088303355281547631403630196068848633405574612323061247680075377514200116840239943707127688183731057883465723658009954009432131796552230289878460056781550490713658144476870398885772565185468319061592294278910185117584065552306792533525550154066286963486036368059571310022175340256045729161499161692413223852317618914166290072570696234987675851675725237059830040052203501817629065126886196078209341527236993204565037866270255547660962762787957624987807575786770576956492657947760222458709569430101546432273527645880469226936217641769432987196653468069915049836799724925635074861861800485933876632251452769640360132647387234960905660462119650937144547460803869033943982133553936391230700681804324087857978946630005353230453824686888862320765024059785984408259673114552004322953860804836898087343550302512835825377189919214915722357311949537448441340152144085699828314726594302143110612457822518053400097340643309236534070099416314979725912201182420391826326572907750137116328590509491153627110841425801511464374291168295125048018774581881580342240518366541129205916357066402968842276500483820145175497567939244076930470797059728906078171106048851097609125810223973492814359346981100657467851982070814260960381352910072631365710684497850187865534453821774371128035368122240160318796833195109330117657598590060938904837415301080967878256577967523083562217835213797553827583990636141109920799963139993033760137464103734015748817099001973719570571811707592946546498923021527297475329836130942121549393706593518941058367044473117436375971474406661649156590117489703207555689454715664810702035334429307575945947060983281437680246356344264554467297339140983715297598291450049817650207391366086483716557816300733656576300999619046075161584612655419837171728340113667425973614551869259704224617893636466101537325557869861922454791312635557742375941510928454570268551368562006080150310483635924199871094248537349206178221851612908612960521098768959127591703226737472905559363129637494851521145577586425915206026311330460454994718811382039240258004471547996673986414715252774050412280848517638989329862263618355875576986327009944474965894361281974534157695016492760769810781638156980096075528648035512956684639421792530569712228736005487625512871408864946695848014915567922245162400677142007147665321400007396944573254526819723144416971026089212062642938376362074186458801126361013600819969176820038118994337559127135548863074063157499845430596379792827311024724311042645132906008742797311869753402817593753669915900987159366026867385901996623247642129395525491363954594422888500245921457695133586149939300859477992738430802306790472606665824294233616752173526072061423899515355513580548385254657113577580678256641960025369551297696174019533378641868830666591352458326157914816831074584599465902144834761439152974153566417962683440662965353735928707495733742813941666206206045904654331089394342866986308665698676094613404708483488567341706436635002244616941481136249806800315097448107012114202374617565404222062791532966194198693473453521312996226709694523204769798895176781457953215097392469686213761897170489251509978367535826819294406339793947914156419496948244534470389794385685666947933559777168285151043382042933562708094249467964453713042328734915885560293064346212900345998734028609900926153120444746220661453670288923271987715294663072428291831283452687466869132945541523109085256165601325759999808052264431667862825637617419223894417457834670557696472715673276261392806850446284928594295118323456715943451650653365231933680373494505169167116509607338762258233813989726324706082936344235199699705047694018355850751442577392849440176309793699371645524844900212651101626900861598466711303932407952558125215456069534014163524356113147057538261686207827490190042874568819356390128419133606674426173250166077052841442126478072542634429355069387606623062160981034876032372373326188726259641472280396933514156457114030278962572591636989541219347685785570027665528044026066021280280320295455699150548262534488422797599742057147789832135817380770844207444786855353119636686937892092149017029915684145419223157220157031477031071558096907476710906838493002618537838681347599778559785011786841986109925697196257666944793359236059874200510254775106606373026584501069169929925126365293668975532623389487043482348480628307882986329387048187952722275079062393261562530313857350501202937553403456304722420860312861059655315388159534699701626331824202340473045666009601151785585150789103341470124124490546622449055823417716204896941781012728366608475542037277237467305768409854902207441760083126946483921595729826396353230904107820222206158667236599046765000861034183105822027768739309650033159044728314012684846400412806482097487749968736159272829132224608192160697025441463263595168959991265168756204540143751124489381761021759151875109839012290497119737649408191726231979109854634410706049228962793237906140212656056698610644696019767873792107548784856508406706812962981743448793789869271713048107600853910402894717838651719053104516487854580844788855792260957133439652388339325496082384449598997375004211774029676098156096398202960363364681299143088091300538339753979323932841080602869193035839727306080734214388320328087249377297331875505213417080388388147942721957172846019189623395892082072776270421307153335451918256556238656204952629127557368721831471508309064195633715332785787639535842186629330736367339456503569105128921030374732883898873812235365221885417702817416802779753099326372683326015675015724296465411259950868006569597627224271496331353941414735760191799908074921234067351825699306440881666671727955683237189817383061663190547843536842422156527361282600825204885542137382482619192611789520205622668450518817256761146739889863001522074514414059341165250053404684596931365639545899629974698238830527308078440165616820501918299854068233842651928266949169035704888047549653618702477481676984256201234541815994395014275800082698282981447063247795586900428024652839819669787953815211451092422806417510956388463399521223312985053583069014319088527732302870639560431719180532020216224033929358543723846515591957868550579044162142101158650005192046259211935258691955900061923376130801737850339187040054413743157980274948821883190527077635062528794794001444855093122300637196342346268273798694839059052848979281730879093834781735408420399593137078921927256116699180796221054575018330116588255761644504053523667048990839016256532912723797804477016570723957093720661363871662877006604465427902080861182012778506126534833414396410637166000844889663852164255110181210445345090251655000644879743859186197622560372911214461859081490192758222592445680318721252672613391864332397260897046063645669639674926114725999874898654134739423287544463658249505677456551981596531443575498090083796312878713714441306687531622347175941316047479271530317953280304668063121432600054130333337854201141067066708706696515618383026500145145314862050905939966662996627671330884526130662833831733545551916390495631925631391321835788142550175290849241065583932806705529759031182004192803835049483183268530190468645963535124869877471696070703003998385750448931898584423065168212849220034502471780302170764597411088188738554261006874600958499732807429322596462408136320532792534098407338573370022083999377390984285234578730112310781084263855230202808476540312386770148131267337029180232391395465540183248757060329266412851036403551526287701296429719769636893865412332043469201855757553037105996430173204624510066730526889684635508633997674314368686957603078274177043157638506857028903625149024676125819971167656774800651864145582294890734848635293538744391416205121098509083505486540179474933417992493993589015780614308163574004850889065671528651222066758718411682965763890112483367572279645929914855937317319526883886522342367759391165440293220030789780318293050602375685990560919330938948009546356070633997632108380133108438829430847517609682684040034451457465773051000822920840789495214627477454666862457612248155049354055653547202547250473181654745472597665798147232722561463601091170187361489053161480694709354574575995254394909075332650508226850197902976529144345180319376852453916604360668894566764535627266657666369591763563726559536644693726555507212289390309413065667072399166469430836715441319757284130833879198199529919222292542879153724726905215649005943442261923879810075103273549180603501470038972474358971283962383944735695890466223928274447127777424744158854943711597683304067864078538714309965809521709885406116813430495055768574989261440584877066754886699622056154745924317199806218160976240201744635516212802193865017632573827835918286311029491686827183131447945943614071572673697607169983495692280795993073577606282927733616013464698094919540645224214015821888654711924857983625227912860181864222463032312338833834891596943013995515562139487267612724074772547358370639786252186418989058960847599697574030276551750274885749222223671365246712976602556611864219707964381371152685897037006816404343267319087557873823577539688795002992953895539424477693598119076945842988486594883545318450642194992794209201736727491094945527831085347887784225056981285409989733348361663918293625230708456028899228275114744893853779994314580496993961641304865487339919388346473374804181738499463962518418146061669438716362286079969132988780235867730205740803042602455686212458768557961413095333659672312277119549866331665848985810180691073483776748013562336868086116692376619213554706003251687729564638738576174869710238838587458979649747799434520602898207472490002636938122729334107497149863994782079010900681526023064244103210966247553075554484987342883646582586664920614027492945381550213340254726091134707969875032495388919166529888239544653902919671939553384856925897336655069349429824416292571432316191285324137119213205163325819217938295637521519542797553845812973969316476497342002946186355857700295819947670180660000593708723511583231558987540818640187715346477214437972171539352491269062304689747628132719061468262662348021763637816264909701759142687574261914374759557248285454109023148601044989831236512589773579510568263712662903857765162205698868167173078858962544652295754753365530145386406570468289607051548478389195537629031707126604263641705622063819922799792194022845406880254160033491775255287479147900329552691901588860804656578105317491291100977769939473903511159232182325964520946846008205490061886121783583174406411344203952861709369741709766698698192270743566117009247384133958923788099195780671492627387639415782406616560830159172716009846313447494018797448451058822896121364888367666865772099934085845691600481726233502323509718366827261600314255963459231796018608229144060183733273420891982470953946147264094679756489703110055308545765847433234319075530826656206300501273858991872881869736559799293124510778343879856190639128421071225830437906677964965168472852053229340469873671284693322091067615954854146993952415394920049251447105562553970655685475254556752585921565576367516559831295223066927191273966003847628450627577188168079688379905281301473006821301861856048453116197888321080236629195592292275528066756592015637797168059665837310856915185016868517324882986399065551345061505962336749556549938395137505801027440642687127986616929124954022995037856978089573966292707443792264945352715464007205772643631538250991549809722883055023180589094933726006507816507200469930762533982342216158129060461693304604953882585202140780604907856195063512859254833542544051230235038970365709131355336988490216768249648326448898728071728324961428933868384367465815508105413597068161631568590479329562911435183495438532778648809884584698929623109063478928036283471538299265290335444902962930736489810176650491844638966452553835923047326566241753152766202298330586782466931639839263385273772298830999038724056423614621976476385662760783363608971261059824522207913431180834279120628236418550541840482562471050196835963348401918890449356786494616229702904088300994575720335131227636499194145803415725787762252069583422542858134093259501570065570495185256552564448741295825634808367718290178533024593663424016781699373408916853216788689596205561671025475017769702822852719520400956923126668239887797560065543222265735053626832208948023512681358259428776439300783858839277182645368272837653732749774912851383925363340397906191412802685398082541200025864663099062701838723115095709884579181222851202721678987887425570601613378573546634507290285319715779567718687567179249630078974788418279679070120164148119267220136760507218556368870899225104881152876203837046081349843449967365326098855157636346515991328158819328064053690750769782252731321098566555494520083449988298544175336021489021549645567686150326691699135090346596549683023821134493850022264836717430818093145800930144184056658492955479465017971311068311297842935764548275126813611883729947455908879288126797203159035665621589707563054432549721390393729613347751790456535626323769118979473485455092457745518128245696104755918547498212511533221818886474589848802289193828431164243290911320727173742843940676939502689670411655582883746892087052988228601658166266723968730038295766588279867010235367987416221191422276110142630634575996781371867069926971715854798587782839639638875665179382809037966065133973085073730897496905653740970320759416211579197227666707381755016013319063528574253031160556537105827340935115790122222980049334794949926058992809195735082213794664141632340008894573947929421322935047397066513088418033395799308391215550476342423394483138814871503984203090716708547223282459504045751452200402233100365962439603553697766132831432928710656640618358041366768322801954457711141925224945660458272670061534392719215073163252972454070002200908140076191802147951455795353061293833700792183832120521162093600577969336785129188314817296453945837756941781779553544579773621437172893758490422776046620327829070003243329715581142277104846740696752280288101453180865923887560971141725708846245977304773372915675289258074787540927221886957625038084430326033068117226854852626135680174971140621889909611274388089621960425648878524401617485588989535498981049961859795808400083721825742028129222579844518440298299779352587721938191452699508340179114338343147638132696548468382780847095601996211057373344144493232672057344206599094686412972172563627720757396604296385045288925962201016465103536636568437902779920530666851869027323353188215944592261732791526216008722783075431186589403140716017140332675264339360008259250334598115334924473031642835163080379554120404878070261200454130741312182576092336356783061931217081244272007521857071111346817430480027570324268245941726453735822014754577782952060317975762579328273915379455457450599433330097027516530081394717362025169142750271255047566957416705674161989847897240120878459526622335678875540091736121061270414769789301432521366993048570185320313613227329309542392372284283919900641108790636423160583560910058750392944443546827039793669132500496445109678263970348272355015032254472097709969041562851978568278471815922864636412226633985230503597033612581378624618364396395736562642529775205864078782437940386947694855929994448857744583953849742127767925447456781744366523331104697190261079833894597319774391361841930498028989679694766795891199302034687728604623832087779411422431989500150230991559125934739099026827079304261599856379184163072709279702432086853569855905946755984585745840812021825674792621399050576931222818142847963784155190029342761126544464110125537570502330062789449660799313670200067000484601523316947746327562678411293890688726270286028395957952186334347840461294376520183744802868770780961898960882297568159368778629886997305607633896255292396446597027911417360697129735157494150028643195174853423555658661593545900521949922794313167238266020878804385565852226498680689705047967184201937435827063888732320553868682700400092724530869435136665550880516328906048181389098192841353095858018404899686779727977555717136079577980027160578770994294318430266308135413333846176666526970127639474612668045477342771700648771820179486293377856590045399427332110372384514278014498749095189027251807710637214932223173399478932875092145320846202412042386744021383385164806577723213203026522063247661899052559278173338328211217767949998281743694381422465291852442138293084257934695581169681474002983583060933675837725120954659929836418017934057392460304727743042622262674297271260081157863656417609148556437316383171589194557902684450087937144441185145161691325498069009240106487575672928782740684398041338326685956083148126054403884360150842889880178137304314224917808692498588142111470029597606412286456310760759011590918312245223806956363972290519340458472043669409891156385436281791913990512710458345755062481433764248051820917619480883369561709507532511676867754933520466659093691436215518250471418036547559046515644830083430669959377519763474130709050565987782819170564681031327857791317886456375169811458607459741329260390417871132996457935397119216227809892002093349272430473925675482391630372872801258902461150199442165181085945716574119435589018210087886359480968531010577517674466012715154851452882792772363744873891353977357798979571940345405368188826433643259472067500807835332529230877003376749894420340514864296238407871276010942898749798454140582451229878668621186906450699568023962365743087130911834105398530613206736497325614403859976002338705171120900484598228110237277739591224906594220165595982865393221856218180687647550085800981161477198443461203465892614682126927183171096709930500644954371389269235669444881098104700018562113382734503166245549705817762592156077762366514418912436070737425753386973999452596593044168057448650390710228300657544717849008418384238887700944615980193647526213010638599838543087933767544968371619551217497651090771738407007212826194881836939092324809104524540643481213717414154968780408291342491596021556667421494350287437014188066015029710099618997251148739731330659509572786570797124033073673886055730216177952197234840378465812542006943712701426302361137274450454052195855427128045281456639431024762503918490819501954278710797355664289741921085716320209458701779110685100321353800853723378247962714334405711789062903316099953074849701800865591794481763724526245586320910785824436334304171756557492806208935041975589854997975473805967110680371428742333220736162745403106499979457621574568162272061532419274864455175220835227938071836347592146375914336708087854750649624621939294652151904977568309963382362262993983749298008353406142926107631347365784973370475927733679659567246397258923316332005235379332140435362363455111368289704287161534161984632091703069458847353645835179625430052401863616198276301333969904854019704440850078042673705096114510209816520931335352637572248513781275741104961632128762951260729397137547167791259631204134525000011791667239921649818310527234584805097628676762435179821570782861267411400409135607364054232252763192273360150538522989261172859434638791965353091132947118270551009354897141263974835337048901243618238419198085375047629097945610923091796457509565066339401539634506085005739752839597659454670248775648330605202836099681101273130203503955307976602940889429104901257815744560318704616308584139028034109870553639203991220925154236082332740488562464890377042194091427733138036596832593439820533571927111360508587561787291065496782964219087172563665090879888655157803998918930263619138887967143171939483497782957388097494207946596383027128510127245825587983844076730687002404515640017819489939387630315023004900980986502783431905241995419786185675175515571019905333983615955130171945574559889918980447675745857897650103383484115301371288213983453818269032132721561064754052494377382977071228068829754431387426076299065137408339333373278571244281373747976691566876952658929636711070182439932175962457859922001842565713288802273424032323146992264219930473668687438166438425033278264044623867387383124072364926017261376953316562922182041822428062351097033813156700469811793313152851233596042098049777365283933774831574871470867221214061403885969793491056743122864966523339720644840485654961075253820727595265248564809491362116765397747951433163656381903698549663774555716262645652293057086790532472700867682986440382952810362368536229718721470829828301240362213283020081154518547295786432090646746693047598892736895660177903988985708181951044947010437351423676634624786894773005758874551012506403088966296564595149377220804202087615039501136354414701716455407218044418273231534730435751639104674399314970063246023787491710150881347629390330996137268663132465464962300870149093612980492817847369034145882566049748428735708559908644672723377869981187178616577443206874014966638358121642469017025653170721635017204979347608426255242308373144381180680325592904106406935430802232660521897019643027944210260111893344243627449623433747622448419192453510015926413165904787068357666287119338736829498950720150796457725389448697364914732985452827796465604838301223926983066481360495768399428483083369074995468679063956995587145264022693463931234615815975420737811489694386977225975646896235202962735144658638664091845597140572248000137574342720906968199597104264839063350745298543553807846020580883386265264496844847439208650675955937891425207099458805796280425464255863608292564276854873730284534464056955805531557263143297590882758448780808238342563175854598474075343232742079134139687260126952205620689010983525574728211744035033302675884747963002020898284737305991465227231974180224422765551378119625792425372104020730100054016704320017859938127663481052196486666369709249185823986195744556241424944472312106836190592365704790474820712431398423099873198179165573968100219425568551933567472660204748985836884913382421358479159685982030597251181705150455038444713217888904252981320538381130551141085750639432191045613099063235549588743835281778110956126769427107211410389103211076191847950188933028023355935729178901679198702141557313780356161066514641643452523974931144011748661268124689357850009611838662899920999377756419097461373282325760084353213657936008773838278697376090491719656482885337808389230339348678053648025030193010444774118025405741841828104341108643248837154580000296569594348092671211885503372308168579183627969423199822553521892728096334386489760281410394714256490697012890973453655996319172638531376903533875906902867751254099393002355574044145945696217612410788885781794009261031545944972599520014328799313002085347509670799919162856749266896986847950691116506630309784568216697124529901251675621538382176852088204952072426607475860724598488797604634106395908193353793427927877436224545929717720354951240747152579605856083258712135270660070853199402753243186939797531254088360540071123162824868652239040945392809410661784515346259647608202649261363983060189089566149141333494004341139261555934074744095270201206763778973517112223082963912221248821965186124899095571086828279724767766371706454568982161211961793425593170753604772940747420547708857211518511011611241951629992456156227756429471057606263933875176378107738013513670875811488456795239325918457626385763222557297778127395017294838257118629126215266358235391996632228686179254018050209864008245371410809974991607799651824689228821937781023614510554015136686840663804208939812822915715109387361367195180892905331413766295079202595341685318435909110524305204453084896768016336325938353841630777965238874082454514448692392711955944742231155175932722581225263342134074220259974224229370146352427917323753873912100539776403126533264704903264072285638867317125399297119689491581939900845579133085539590206010236521700262609218515076384337072219061406955893824523270488478935853223934364392256577378431839892597160705771782987899190090176497820863580649123615089565190392310264715898835469083299082397750402268005721560159637679214848233725110263830016060159533008600612009936077944215420245354887907042799293193253726745757358802411496991786712006440013888744509377262457018407627990604838855873349444038459818865433700792084781173710248858769052451688212385280915039012878298802041802000912472903302598589564395525273342819973161733004168157995068555796242655617176670963822102062260668116161977121779768499201141120241865954035780177239488535007604434711618699312824498689641891621268276897899497716552126000417423177057724899288323912875031431107336887938828988848493087022756312968407743462274629518958279809715677441767644933026188015580688091087443826674055267436973944396597508914252113264760890372194704338132764482582350555357715461427573013754208015558967834094187755376363868325524281861013310804111616652516576526277418550274171169034675332454623158508791824971556354495869121830820527057099198131393201086777017500874947851095719165994727820947992036320057385965704281746492343685847730458142472358191717191776985731891538467863769373220654658283756829651874725915012268875373940551540956991140340864975087481294764456589648281308641224578321890257768280161016049753096906660764771497606199692005494636437022521157414194870371522187043209593779176012683863448151616016338964574395012244077356798677672602569084082351897031814243438437193291735328946888763485196194170399927024241085365830629975612734422329565609101832862499669819940178205937166502227271875795110620857930483898707289220577756938718440749505269327998742350687754469066000627393510678463327350669083232597145732743991397952529878992670668078196147138121865375451898602732345448152062334156430026719457652110830880496555437798245097320526477232109320386289768014064176997783596665265471494528601772786984893735970569977023079446459449213588320410093590923125017741361058630634356401461451867898631531096371689828997778927766926884642093293224144795648778125131995431870329365509941399629692890838440414972766782284377195337513955807777617509146909937609104429026328384039176340101607088291488590102431307090418837028696552432257033086957071286883893818312231347903679610210182143587741774439773617821010150491166812102156477309323634597103485947154289197096677693024546540083520209730491327515196142811723603819823177957802478746714865844447100200561091723961848448358682867753088804239553972753523508981701508611662002410034241206101810142108979491209687280906826418315326066506389614251400130874396241535012762945602234029692233220054577488067722092233108666889912446034844359305321536494955321058943024388279412820433094792278524891511964411306020886509850594566735890538061528130639877717697072394837397899847775774285670850127159734839691105154346887300009020280190146215489270060306954422976373587303946710259128317471523333438483267566978089192890097704204531378375665385454886916505297252596269604480953610458808706445719716789114092486362482705132299085912576525591347177818192638414589412162125157899109821822692710057054109671944465032836268955380094581108980306077316697058887791549705750029511401507158331453141897576415925390332857636692772968435830082844682034605567273069208766642675603970663334941155989401643360230062216014701526475316072480443574544728007444688815394852191958360823206043874632650249167825211514813288288741425778400617234216037231258008983174409625946027562046745020728488221015883617353435665481160698164043969630154054870498095375671048926343874213976982302831110843856327383679183084950153372589459472996545610989310940874091225412912408541674337270049877390741458093747792048867441094722405425104646270619691779420382065525829239461234846960635900846601732987679355850271016581986802237474244634486767521218349146797564141653059416540516338536147037435100381525326886973354789484997058307704431831728485579859917332970787773239165680844813267201348686777237955745624177269496787124661148655524343612502169452532431497326618885008155367171338627282910030625610503915190239163312008366390154121521354513029707730320003301696502793949967630022637808091916101157796138154990028450695570477938075177666613728695127968411184105254388523508368065578770515612993862116972165264413012195530590848998277068312113018669158809089351502327904865144080885631213311509298135449177847818103102945148192186525260718827250450718098437612921884094473808750813409822604791594170340603757788592619396145282852173414627580669936653817536624029764539507794590356157986937231078505970134820354914780510014792007991969771469697906968433568241022169004214162918262833488793878668634202160649878430267989438589132821719491214857049101340615775938412486306170775741757015919352180810708252764472486946826220327113442025927250456146394028325976014870657547908506310178803490757085219974755351984362870058683725293619736362657713228801765300896350544156928327452414873565744038039746434453751206858498470960198865664955514823524117495227380782859676762793731736701653597828984503365582411523304760352278322102184472548450248969957427075172245458050411849089049977897451459320839312025378057113854428167850860135833136268463742173341501601213127896774305573138199849463718657528910630176130690816097441178121043175070420159206900725224646856462136115313259284844965692645094939026569990628564128150340342174754781565265717488362446758425221828989726016041961493357529593149412408346588293905680483872977409475006683984636209354942311830653427880262899361566414060711004228961688027401852560151984197097899933551235823336985460941634621386001946074905091169258328583482646450379944029982853707599635220342469009345231117962649176605205696500158056915713188536226996328112196538268354848798561901669503479896485587504595537351715413815313188730435978582269331922768720298531784508027817468832583092449867490122965373528052582685486699745475072244311239118495672816509767907942616354100920399093656140825232929858233536572957270451201942365401283616182822744260132283332185581476248293688335851447975167894241327241368269373998814265355676067669281366296184093950588173517412961713232614049296999051192728395020688254072316370511650754963305977212999251190353677301874225486345826490781125443051327829319920050894376887043510921893297580194276121436921071307814886561086053903852331172162986369492422853716860108071379777142785644869557458180061072749076726389323808652474180793236359510568515668562247283420226098253047140850682683411651390395993139070243805375948790028989182351189727910322694502161728266724081576984143087119226765574494753904872205870056718769831502152945524514434663931134172162576730872903902421565799527434802459111429949065992439762017310464116460704279868676696869548177610156999789530817772611855759598434130804561042445983435541931738790257865627630067628851022052898502484590412549071370280557897302116772118555519682607975801422937263605954209107705126865345338017546968897860272274595855912278198360976993396722891331453940056659904079327683847998585305761143527527681789404778071068912417722065943433405807525908070630479836442858140880134997432353564669861269889901690931316195800287670089914835906196298314852037219463159393755170447684208237111305212611864627023933812721525702607654635701327984494157998173501738340738428733418525629076938525353778583532675769963248863997033011906489220336462812447353367355883895115229606245272699924094797602637228801248200886599307592333058685807769350548625246219728257187424090376483797747064177975250001735807858515222369492207055032006350013400212725653464505567200133752967747947686062350022307303999003014461538451488244234741847227637785654696613175212339942454271237958626408583100331036684385356957900634811826498075113051806085230305592636635473257820465800591945441045969924051125219432105159561083644549048495545530377252980964948983022305703478318390887950422521080424539919043319498804581700439971946155106489847493148349653522220976229020786968492364376762796334738368426304822102007119414165676629103217513727859168357947561647832996468750222204869437912706011274843048011455694047022457285686879003254950041696033733581050819625488190411153099693372331353577526873957682322271541178914973315895053906456372844624451140264791560440648264836254715546445134170654104958784689816230247437453647534118560545716704093685463009404713531819653566734171999640107799460703669063475913180577296849249348680723706194764741811654844767189411856670710719524443412055053632283780172327002745449750233803623876156834135835416952073604915369702702285499411679678693297483383928192302126433084862831067619207582697211730049522312891199423706136724294415282647167553842201047990009227191205450856651805834236777410800148316001980663925782559077004724734717204697564296643550101514706123463317107547771385438756010987583600040495401133791893815681285976378204605551328312044237300714899130682372906818164919436412351669793253272316062985150040446096482633653479196135843940051195268963965497554401423159468629375827936384736150995506875721778899718881115124835773892993010657529899936751995768860904749896103588253145146337417501346658033872266571367175420472276722637982221487799984766927203490145526080642030719966166113632719228072111397731900084971077262344289668989137795730447959608787043517976504430818397237707566107169501679924634660196852682906895230867042909602776190559350053127230230819792399758749483468816929902597668093707292865569865650696942390526675891843878010525711778430111071302238155562991352875878140572729594446181204692315563683922533243215993044177099199220733052128500600300957763505200907585787271154660574984514403438726377495801277681218016190924093794330993769566200395141113862183984165828649183052596813010411652631783416045292028541950333564294798410466335427651834516143703094497486526566616098743242900812678239213583056180024241517903814729133064688264465996605618602090776253985541076178088205080606880173908949070921478754169507820393755610215912487178872091468434159278165474722752676464078362465988612863730077417117424405472382340993472117927844137075620191047063590954349726637403891750288508332014765105142626299525840083328599378716069602451164735496840830944681436965671919537576290154644977840783966422854326274661510792441421190615741715469100254326293755027741911737252190481331192570319666600841485057849303594676637606958116469054917896934342196722116067320439004871451592593367476791645312788968113503314777366251436724968414528025694733306322245028507153546144316734181030764212318424232959126287613877528487794697213431801991640505640005710416446297646437093592124641876282164371721319837368384392649434235171630357903086327342727699868882952802719872953320359512931766808862874040960768319178551658112025998279931732680025875831571356534960673574218587057409802501154883070215731606306378969046719859868735408709350971792519235312194702441224554209463736766893726589868959010060737059285689890089098756314439745921546972323707137586384948815143820208582619243945126867184648637826818263875213969999984180687541786136487604381699470784283587862638508756570174306483078302042665572914395295430776360734387704754682418120487980039616859752403273970828285472074647728332203004896542906476191840755632703470055630630160250915234607328283044824064436924563272024416061667876391031470956138682777822960582204384573587408527103885763035918494541145469050162478574864982891253989317031773889720586213616375537073335293768134877008641713087472806541405381070240750590590045036576029306668621959909711826900659162822469611669210737128221236508864705404098331923181439371494858086127967076885439341417161842795739487339756830114685939253043584561272159242572856367270843418923398927629795247755215771930384158727480147929667789880563412560103754759268064475058358809201444254067447729431193914923541274463006860750876637726240956113567071681420167215618276686871685564492851394546995298031999586148014522179879997895042730188881585555495875450765307550322234187236189095163810730656983593683232254018901630153842891758879858947428671569990377254548672341997269801090419585245659840549834807743075008266245924145572265073980669053952573621168108138679751924479053503345548664066576545847082402886698715226268724412295809300820676582589614786375083947876019857394706648012463131725167119761058518026238172960703860456749435012235167837035285728753802306894302538123482081695909277279452610180166528306058205390661621157275707383363387073686356390917916103166179133947557159522853977104706415167209428561786131767369430690976223089394885349211714234841930891121217316730538616268319159791157731088146992654350134865803121066383781683205547781515793218054983308416518489890968974907626930843934027055367603662090731976562054813781532873767442201608576595999680445901154155504669009683608527855662822798242393917734659502499915818844907382346108604297038068240730746948776960209650947431041691446955143964519695079025982710326047231312824410049922594904740819432433909994946403549387851172718927589886823589537044914032177904791193836734571993596551156263391235157072019429901557663871760985206492497794389364621322776606637101355542759106316469941626484033767777826742145712133073709541757502823373380167935186584216311930877338791616129044105195851552971026481800279568539008960087605907781948912581763338464423686463837660679421525319785695431011923488092552632777865556161694884491500205973518888743988709207266509432324188315608884326244204334928579348396032539087916226616567007025203724314245841209206000298624498927894992262640645812348922385163871948936830298808169468837077366341173295157954350181256658966326762317236110281966040556463630275458163920821088086349719553864759303420788093856598522572543834277797238314214577365788477024272546777144106524272510290146135043978796895762839305888262978947262738772587716196162281517244769315439302867678238540432221219895164183236135123247176377000838249745497107990861883752208542322611608798932923349863162500549365148186930190430905548642073099904837274030288239168267129529446014038270703394901578555266784990344941247105795669850986442854946729163698174939584830835606715196977464987043901039244974337605116701750860498311615650965324523676471738392252059984295492846681730674664047105014067814262697347455777663046845302763415426263242722963990484078598964324426782780208417758335174775741583819832549109720051199403888422232500205518823584597576685725617191128694273926096636315553011993461351377761643624510048590157933276538086993418241366740371332486399654157128664201310650955514458986128145559889749219687186177749581102815545648632020308254229608982063339557574004990343270384371312255325636128431442463422263991737521682944109984537208472062795067202930041764826997461430792807637461359305279103784523317994743866754328030062743928620341270040622479980754799204463454855055470145623081849789752681593312705048514190810028551595995273135849474578333479917956392389060688061821346802406770544815866089042241844169947679232014296909624575427039912034153962723796945635219231296042205073001580111217273998276317404006840030517401540177277304390218727340346983226361851491114616702499948997355970548726107154558920756377408857733671152533830016483613589291868923098141054124878459927871595496381582154830368763527533824531417752972515991999946461908857457320734007093410214728503666676457193173855226710638635821825615718024457638216323669399809603194967590690808102038490657385976262298625761318316770806921524630094211043937259557328402585472015283499533936318816293229810556817231744802115771228661628666543462253323371002187127816376798170024186025971266134100373854323863400779222915285922839995939162761479393476330629037194154270555427574490183394158916790028714393970271352509637262022477420299288595583086898913487835254108237506306800308269163497710676310876829401298921864240356360002060489034871519422773368210150527556178345477180796069436701786136963470758155373616169511172393779990158791642886378864207482558561173419235023385825879435887457160017449260963621664950129276043456953114574963824764058396923154822746763130460610425288309283043228343471327410058434208917044896588223992820022136692026174968298802002116688033535044748772641087955739687882323211195234439554808034750633838174198602975515820717765858850010392734694887941248996639055796161346204310662829957435351576376318995306713915988853173738907986020601939180743535180278935119551941700886142726877983790529612588858492242439755286556359303217480035288961561939648307605240339895791230645550284187028511523126176697527741754535385286090847391313453219091774375930712624163968880596976891980553208467585298642183027870814068197959558287873191475720855019701651676202661946497924057488753700810304500785553148505560098738984091184847507730035715378496436987178267581108017627174978200339126746965731923638477076121524342685436267989655905171445581513432402168737414997286815748572847062126128747847338695527188371880231398263066955182875667090637643493586407526910532196011519045960519742945528066704888820213519990420959522081379792540123215079916833892725828798062233767186275240600216494627247523553252611621216775669046548286347277388050143266103692440201025367706978049378405321578772568893396628181697715303150720114818735224595358349391993509296533153018251033120272987285486673919919874114211010576132317937404232224781414328720656396459835307062664803004071706436917266370149781581292685806749561158490954859667371514993582632018257952493324261157866893969069394513769369507744055276834053369657577104454114836857513657123188701577519563072560369243635210703137523400292015210808279009496988268806532625083534366803079748787419294628160324158154592002139415040289942856451602773333048174687726313144885256658480351098144813197554781199344380486441957392791007981501702848356679198873545130121469155830227442289437234599171885715370180789542444895348439262088644330908858629856579307749927096669598951541085404130883481774829090773362043507877879167005243254597067628786209729128025342593355151067604366953481677691101256337463131241142676358222565707643356222836752577926881829066844454819782559302803508501607142501970868919664781698275062114564300743103975078428726180521533626112036230169419240639482168091672767546463042879670106646470856157130346998152523754304768222784940632292133652399937462669354544400696950611381907588738488182746264064313169205443463243608800913878931898070458870556371948826353377024533273917139403653089792954760949352820668835503127889309939637475804081940701304682963143408046326954207454065605281730838579821931810489818520898561967822812930812506950345479833145740195798690527246757638559416329044912337336610245248196901708607287827375317103459351108964194918757586587625110111453044820127114451515166510274374645606641942287562703285918761481203977008425518196675666202422485316991092083098975446550569481532265650407310665638637106223459767019212219322137396800394824038779118326664905087465915269870389901579858494231163031448514829304203898798128170830156586377909120941985387614901617951998086835337328589846135828215945112615781968208164032042872196467967883404993846280132436120347279106701723493321082684962897383274694204094705174763571010818885265331954476586576429955482951899022864385541597454489552758591140197138768715775068548873447222787798720426872733149984732642796557300664439588988143568224501632988335313611504964385509153869253425229114024804454305097294615426675300409990194055956672740906656549774365724810054481498495094922320166348149362951842698556396977308857848828454851045019093941715188972262704568790727355332888406530455788340319711760557502493874069083994237382538575761311702758589300966778212200635309948396574915426818698189104376633989734718681635115981159794985126451656999122227987504036180956017887769506646840838577798184573582231296048043851655043339478445121292487388635019491564242201211713346790389698719198339644229893263325023160851043877141637223906700295929661807485654550646509984125773176453278757224423281541739485688236011201759048434519087046956938360009829465362726082567474101410749116685940501065013884026302115087009144120161229774529905649671460222071958613554204275147552641779143657505147644697936727816489973130916586192110256396725074715733229146364534300375914398865066772433494735189438615860619200030747785038468683300269040871795563458047356637624289032089256385030786898918757763797696553107267180477878190445991136187950783222893770750896763943972147994143647855091219801020523387484563535546838116895802767744346081230779068273401736392459047183394259112113464700017525713816853125313483891134977519630758690915304258587256957413488960756811585971335993755402800468497504071205483525964194066445940665664385223043464144627486018376824064574987439311305535140571120424821386450765431096891546271161175190773638736937232786983090330525035831944294433438328951194888020785738325945684254420643691750466797909162717845485585964428924642541007942039438519497539328185836607904422678756087072698063848630620918169613038878821525325091788712116537682038491860491280993392108654367600553627383060401026913895250737537011405813380164949051011208342506442637204623439185769196571718731817920571048305696519907851963701670595368559952819161563278779879797609793519320536279205366231297153719918857578935600776017097837158251736166709034663159181688378653541364336610123307663847145015412339987469668808375442031123441525434612270229574526043980698990675064327391358855978046768661516604469907038584458678254889533616745679466013806897562148140368137835873206246269752029717271425263213678400957650853608502746121901038993716847190282997782078713612843786929571678560731936322501243037875330517183800036496335393061467040447949469659950562796010178711255429609654354388835263499577124526071895052704080905744876528774045622694252166644343123301275260599785741771546405849894448114169272241894273472403852145279743144796707978772263078063622872728557092787413493993834155796203169069519644025856778067527456605456919817141442013452539300502445909254057834676514610675536767103769238689718148215329470938289982925274014312357339501406431720362545602950124002398085576285721799809660477745008257021004104216564028735561992277316265403298446355878332837772621297790094985119894909718105263853870268278011155627486142631294487404705222103275388158197459644348297786742051328478343337155675955452624104846370927145035008098524318602551525005407309430138630598080195517326449384547134483994641088302794533543024083404541008142162436056717497911967743475111277283904747477420098035672372011783136628781861732769155735029644865863838007964372840473866092919998881316431409652712352093542539567829187736524657854768465157190155301602341877328138646273413932100205369086911827583940435666452232368622511327283056903065695860023586768980902721830565299277830499793217698410472036915821572351467454797852565820082499618646708719327122510921533038300734834802287771256131618255738410205948807572465392182191333829693250610610280967179568164104996537984774693293404907046616689876695790655044455577887985329758706444234409140349912345214789855526749777189003312555068668134885589866704949656349839790935648240660085965932191895259557838359622359045857996126282637758733732853302411553209407810119449260205548256838821844903034622475226069390567205706412108742906247358849487475372156191801465954084203703336754493536831348226299422662093527976995590695063211552213555108697523100978797640959598275444623800924096547033363393612173777036592941647742401860543585587268897721095988618855784833322919663128816181673112472910431845533781402097799666454286543684281466062992298803601819625321552058934327611386417677129794955619592638984615589187727319269072766320750715379305705931599003339588768533121758346422993011047123367396704508216553237947500444454768484560175217326293740629506865816877420012739828119611828327541580421190745040083753511027777501967926493263049851271757685973698923789220587916196440703701214089502263776682273973404886619970118251159730073115297057983755704993590718388504385021744328210695886046600135779673812279355342246973840238687709422883407950090326296316846962775605982908403471778445929523689342792485844709485460897162426537619267962615635437037573932287915978603874663085904788836090597962441867931635533611604279794307075578752432765141911755734088116912356794961013364650592034685353904071663284769019342384211941385564370875952396659656321994917992885556138820065507873897750958275289473880668377674495116148993249299934774961441331065428445995510587261821184854804163605663991234377748380670995159286909069796542313304193512905747681076891549010465203434609727993380904522796406004364988785774977416063162112324008662193071500902516409104642979287561364586145578964843519370171804391433267364112449081606044148497081845169080127335410174079150326110458146154084228970242369079298457738944483079669628490696133582206239164656192437379129122637991559220976927042528513948234543825376640604548517031174502758300883233759223731023873230335228943733934357408809287419376619142216759227497697306301812044376931132579935505536770336482667563854601850447598089109841949204516951771439357327995148738134289243132703625758361306676323773836525035512995947214854851712608557601177109832437802818059446115630116317208796383748621912649198570463038379026084118071472441580691249238578368201223190943030835529703214604156591852128191579424725361078163435261189809539970045266319208112287518275685455495484203528218484920783826334685754110690930089948462363307404365296848991297418357933390074643325693655699881183857892093923440760355546789292534644013700107764652566762644067871925834642048940863067792257502143942701654794650664611736816705529999031801275943883173777678829408643945277978883032868482337024302514790608509947336800369362383464033230545584844934484537458630953229706930255716264687994935633842104923104651861817493003246974663826051674742569363091667311713782791066305308248008835705589256153452773309290811535923148956006352914745388483679493429605180858066159303229677696353128503681389646757017151384763133164799298613532926189623262873990498126669299386855490457243890923522058677254955694211056706611648044341068077942288493626186905442249483288123189966483011432745576830097930596206452598233845671534254303674724464908855196470430194663794767285770765832210118182367071015173875875486303040521486861697827767985573744765117889563355020950763626176811803517502710070902275794612230970211463472205537001900960894174129416595063394381998905175408970525464934898963379777604222481754804900487580297322012509854122137990921488160153711319796059181308242665387522085117088158208743867532853477347168732327436346258391461627625087965086812189580460514269310795277489909451073875095510763154368591448762538134362246720186154060603469092776391686402588160347354332204746001448683340262585322985905987511750192418412239592400271980258976955651745247284580359470768001599521351765063621406484161610250003860815730916848773536957572348321094543250759267538715674546428870699572005340275099547349215779301493572537345210978959943466583992626476044633318760654996381809424062420320609957514498770666105816508296117062539934523328542368625828893172258491945113660708367946737185114919352481746236368555841555914674018138176260436829804768348838862129615288628450012538293917966675961414320359894899958616333527848803034503118302659874776206510036168412993173424048352640510046241212112843752383230435722503870486565265122061872167802001001150205252059164306017893476732242713111185048079286026676006542201413397524494169723965468107283112336906695877949185940183892493875064523190269943953783536300310710844268736463804397819840298970626467974099400609202094717996181087038180978699178243522323017188027054259138382174500013268327613407467191578192759400220823759539832383708206059214348579893308005889694819365785026538481983440961153902847432436084771580254801879638990101666968222833048731270980100444879103347018760752997605852581632683244571689027997453509913552589503448140782145963894085892736190461946832801386812035580056448206655860224604897070985707120515178516385654187686213236350147646327866675391557745678061464539488684569303559688189925272843342892606218378577912964594124531312400144027227010092055282918041369387324554941211687146286393681462811191376293821809042770877316298153917888717790049273186256180539575065279119999213744971280943535990055302383492836816322801375732924886009179120547214579997035860493291245593996846604158845614100821086536474433522171078510606252064182864953605309705781576270972732633405448665391137375095575604994441913000840047967765733243240658166540864719702633231849392810314064613371681531264959982074205116224617131743627434703095299802950798746188317276170304920581957810779375319855324274865487932168181035900485528627808575361106187930106037665369012465216591206486993425929507212083896481608600585166950226419206089092124521725095832318987248563159609794483060109653764685304187769395219364624455776361685921893391494282595867916712964650048241479080909407244203377321724131124937220454045631502850798962425652886157505431445524921001146940371037022747375385371174925550083494664248361530141367004924416992460359884269825073734165128276785605597479520299127827603349799564895145845269664647591596377764212701198634039304798170868359342713199604148403398855650783796034969638735163359907805167835511204727894972267559989947787610265487623660647385332201416505818760482213184697409651770469056168253332594141119681286532241384766704961386985051991111870286174860424461368763985052697325928364650388436001234783277230883255815275082135542631931119641964262336329211335493331675279035523087984343848834269635018801496149236187536155707068356950230996227889939273342813542036241592367639300329318511095684447365717945866601780892547119591604391296666281530966421812510374495745466935834707816521998708083772981404070885043766490300711211141307558904772716958661893219320346338569674352532522687712952627040312366849909736361360205112232232965315307642836189040167039368068936475786595993211406390868788944356145627521960833389589355778861344752405173829135166723458633278574015647020684172245771777866771184130069841263002864500654797792300863856701268271616747673647388206807903111479116170702733079889709808058903558613200775963513538098250787730176284100775356087406512890133649979145981384919008808104847291396950185927939343611857451351594315945322643990185622016531092430666559861712795149892383416165072871254210131007735504688114565477315652999750951342519986421617525315828708486413763706003949749009136500737069851526687720371881590971087127871030551958959975864832600326934358526340431652336404909396000107634991643072608188920083240335173248169226206081520007725610183414022312624107154885003912519101108617333504251853279237299689745981954757675965234060446402205498639041112796612692454819836129397595873050412495267296046817995806730110381840560548543022225477622822587447205990248658360481607537850978868470030948129880538933187931107971939313212710745453420785023373998829184044754206806035202554296456290012314552560028786462344931934063949916496445740867074578850309614157964253283594515509738167247824192348580057426273020748877884072613687213265712771289844038880932739786966965137438127707501818358041878063321482478776753610436429092605262214595566178305475387300642114116432322377792674203145646520215835975351891811264176443033710653768311756459715814449776039372491428716969042223015066544563814078531620925260540759332156476869262131398708786146894078372855578524132073812088281699628090211696277075598559230495788872869462105772013554902350283509413755903250831059579829378945986276728509242403758546780934162661606052173800052148395278110942509445899050752537335430818722065805911511831943722711956269318534140270742077389493251535514550451057219594206053171515295396437394001352875629460144697660818297918243649057877148490904398626496275994429763432705951492820169177305002878474387480088761780075565679908506005269869736087890549463462048968852308000649857601859291879818764585619468669304464338932029870386554358137835115842749076734504039817727340497271695976998029082804100700804956697169021629117586891582640013045456725954905631324446226661711289488906019399504044481743903073120503227101165632358058121046419473461131272014497483265569555398257968303546467690168447665810455305897314831039070544238831987150793455984932676643134941181905896848624443187509077930397318765177698629439591619551313799202549656087794822652825256898221113186343919185142339297870255747459265970711785948151174939781524199782730114267341949013555324871703561403909769994650104477662161352947371770658352989780021869882104715982897973727004331749782114161567927887526040379365484960828312471407129630092047985302112714971119309476904288255071424379561533514252114371784477588648017083073825189394274194261918137831872892036869704634995404119176709291692474265346268446877672979374922546439434030151725904729744536467746391311370657577586050165628800825774564752383917333762482060986446302989490672962705959510917539306108554002757394022631305137104360913087769313212788666567107994284088097910016570714476738041967312444965595071097429118377492867650843295754102265138361139554728700856862451128971127501495609701559870324108044051763442295247825965193850759507400096845829518423518954984274570809788779070849200300589969077387200772568393732088786190029732467912770182379432454003034125595419963441760572303754551995830215236262347491809440747747371207892543485910867137528385623791952901656255580975935442306350060458475526531933055738091226913837300321739891879599762792027777388524159093408609096618651037343761324771935852693020515731154566789200673243101556517634773593900284358958730708902291148613877141669044656397325837006183096071379818619606746166635676932294243083352818865672392732970755522656342537871443231912956934624469267789017270609047759558165583338885813096057865287790100725629946977694532018794053456640590696947842952606501337601459886230969940299073460416464514464015255980742084588845024939717042317690366777999502422622423100427301621860837138101785236223362065981973994261072063430798952545923938756008712679643708341986199174412167012630265666208613349854144997375873950124978314830328270348165352278011768468560994179002974836554575029112661219099587128677250452049233132903906167168049159764662980477790081309980593737214864542967824917686014530387506440412045294362059074217983106732739099854469466298803740415593285803528236122506796572894038105339679044728630656378393724114787356225154326947758406767906881019833684626984962833265034144350334803641315114073270536163530967734140975364251524432755037928503862883355949694057517488467070931395462834014673279052124314704490861416440572490906156207094645645153387658258662335664316268875088051785039594437801398210914582722524878158448560040832468812015796131086555606242864356247670512666167422093750302681547410147561368037965266269825239770748652249692156672414806620685494605147977896178481803612641004433422878167584661940111755325409388450180569554503333471396074923239937983721111665443872829108945483403100131863110375947310142177242594495724285874013765407404343732668043909968114929129292116451717972199444631638384185155876496516301172626694886649936395349002238875114562231150951291658456295000435585105698606023631479308614293733140626841689804292387524358279263056637500751277563260757630166235863631066904388926716471400529043957785766508491249979710812702498542118544466125208623948523526019362994601082484726686844884378443894247233363784863161718201352123776202805823027960911605298245751899817149638304384296936091692589663143388479386524491276463877206625404207435984983705933574725842654991609228975314929332893132006592665780322698444597887631048614522591800586491271585575604215832284174212910406269913491042939684773013477915790466990482323968373622447680433973961202832760800054120365631737772859529804613676856608247409134385727972549706343032544612121801051529038267137660362351396619338551296890095060472048534651530248047358403184571619936809454675048487669785366351578262001762900849827753534029374961219555893200080891547329888306842140889957376736218112237960516595676523188026385757243692685562928363896920640511148804766212398055823551266565725685516324268779646749551108980673118965422374631589414357483358422512670061054180121499917844471858796263527743118684989912167594763747599594286996366394282090418096171264639239440899086386309850784082574895359618836915704536515139840316362658028567399524698921778638034168899273328454233597821466968478134481609548428730244414731847392724999923608686212624463744054747961960547706936365771840233040553131208299123821012788081515564991275764074835559937146419685564026952030149768448212396672503762285323635280613507613482186292177053641981959609334427430046065452686951582489484868111536210261728339889417078560054364573681899928066771216257012691812261683611106302474084507361471409278751333927340750417681759124550327439266357958318974122134276968119605305926283525590550936507746796477464997389714463944688595565268157572096648417093311640381186313242938193904508425837160021267440819071939326109388509086289519117817757893603654655247088240584371154724054647285084440080105961538898141546914501997695071622540337204734942674489780496110160783119933319034651973721533206140068538808414371677234394492944712773162082138147895021781101879049762788001440384074570644675481696908184263518088507570829551079471600845115619930910109792855734110832798507445080502209642793710351388335648718650233131819802047650032044232349333826019762561353902554153023672836401469728260170404615352922969689409968580317525345139934892243101582663960307037021080738257618077319224516858796638830667147510925862453719337130787038009482667256573766889472936713602947886466604832059327604569325007179193555554189572676925449289316331332399899846868544197400322794853403669535138667089158579780864467449232441729578950587554427496748394876068838479664924694303972958704936317001991564252623598129033484232474229005514506998841595817785191207958953428370947612055863140819528638882374012999496630828776059853110549977807174387408489656089179555391898739635834283191708724170683397089113740464937323675585735859823802568478399648547988506414303154354389945095195750971666690339477969091524033295712684057590196450516223386712221520796806437082210374943842337317428416300015858862257880109658142072084218817270827081591068546351540751461411407143726203432378094922969483524822796570935139840702013253897067069744546501397055261827909235080989617414993039640272491575014713283417596630163655811919404452554244059495896594985912777929509080561907186923391161430670863576522615791763775031261638680831014773285702223648333872205165528164088966825631832423051092614324093749694556887369020115824521540413928497254896796929132643978226886223318738690667128208398768558151941248103548664952119113634796449313162565841979628105919274479229899779864837693950808316376633414830754961993098894874561732393027847448403040618185205982786461575345867211665852590946485685189062147990502783492860383249628955246033003722331763409031278841717015317220428950163470201725169824087138377500338973103872988476454140078378267255115953180513231688912557507550089721621388657111250523947606402260362058228181249549557281614397564414601960903292533698770960103034979421461858623261608768542400489927370446679835759910201478616947209988809284327723834911802795332514595522045462959644876258070517685369572334443450254254747990904742108928141335329325817517565003372487750488417349789265663814072893485432696822862812608577541600801074608486670253348059055308972759566130973169885872839468432974991120120435434023462799493279473884697845700621097927100937997508136415003458124765250289944144405684134658390585175585454863103833260615152274378797004701148062537919194539719867950797084455013542468081331235124237172602883440352717442862738913743116275440858200535860893446629716444820288850432957162564511995314578962323316472285697925908675372187243804079421813289302056799150486818174643176633319230723750355110866538179004124811410314945507237305260161003567378891484697403700729381455108272343363055858950024867261510682309692887407197561021652230856437181245850792624915593706182223663421769803340927401699341288681145377645398021068455806241940106064800655160434239016332455117109795195223231898012979896682751634180266329009971270823691174957182761789931785479631287298134557069953326666965502604426551514399099990737324880753199472774613642715541346140064622925799034511822672637845404541601722504539833636900441089115088436344605651721525359495677299901428054319561248743155857296713426549903214667453158814464683789018068776615971598618322405886080586172552109704581137667949798830920871880509639284880059101720274253759191388910864846547145359789252020391400985511741170043945813570105038504731816534856958070194549265162582898244045594104599423829671084012713227491034900133709695911476079285831405306835449089194009783076034135748204324903220228799340864908889520401802146971049265589744213510704980086434984660099634608700546581608413676205296758890568704139655775752705262554403559297625440453509104037124541987104023731551273146572065756822577094408225478004600027021012990243677201140942342850234183479864024575951540634430332452180290402682755743705833959231452020818472449391445735691233966401497830925760407138248011552753657989346873299436861659056315111721728551192447659205252173061821436010696954153378480320768272972839528012590540381774989825543355980987317533560845832284565803719347934678476865585189646893059263620027580819427922114833634181315701158015672104848327362596702866440446039084666833348543060263374473770163010632387830224800410526278955037183966046023054708154667737446481667787659268197505239760975380577487380994433999855322759271102292969667511952166017771743183402299493530531429160427878191406874867063391635733392082737368465681041529361187721403072771696973250981804118691972607613790559268176619082891726822857188126774881314242381780245136457971735828489237984094139903134173108435093368946453185399136745575135583408969114849120738572684177306189030527030562801283266633715112501197170351585350712199750013034195803406251797002725306855695356470314582065561681730630289740348415693335809535275204261093529927510767071463208028713008746022205515765979586370295415159331768124155825004738031304011738659446479995228425284949467693260799721170816137564032093147505056073229591926440288192658275791327252580268719731251635609250691039057288898704171768875301492848565938504475497333412570129272106784837603356812647585149929874524277175288537990871117174581486613633109797936391123539845820970375744228198082228641104622880325134821241600238568813911453278246716401539245629459950380457168111112245973150397635809451838681665963796670687662915194322531639901812660414895904652601702897833931729581470328785051540368898270971341979587583937062864248217484909378135706219122608983277528334996250368138810134218213770897061708944186417518331226233745703308778688044015710055271262772139908436027608847380814794915827579122706948030395708150831695578663244983781866510579055744977600328673498519192443890555072293552032467461817578947441420252175034485673093233847496217334024079134857777150384847996475388013559013608004441223047346204130493496306024342061291780695180429904924809242971277045095636344038856924402673811036241875603113115981105472937510805986693503345033416592294215832970227019562246847540978679635209326733115804017689279894486089772254922879971250952022816677813858675399745450066007486451687240027508472257736936428243089141554331068088820450885073435435796515711262877284514916781209596173271254841860739985806091621125299229599215247195981871925691151780332034273129216296414017215145390353555774584439692375335878639529645781191154714465286082329063187873840263482610472978766235389630148862403606045861796791903531247156828855416512651917390352025749247265485392770701027207286397183813098239555282713859927483394907906656092056638940626504176190903036122811656630421877614194702641475059498752581940909707691744492281458159284285213933492489424294384169884713101322528948796028630037310373054710845632829740507473738463915414744045926115506722740058167929840375878738390931889345714759838314474207019276228837917991145323831307127540318787259405552375716693883501673655569072708358268111353723781206509821020723978197599924357689882808409098179079604134115500857992006741012285850277214621878627894290197232685900279349824766107686278974529462337557940217362590707217650044307363589544786717310393153666239665937084323239968475142209662005866951280331369273744670458830273526035169945921842799030165487447636121752218070282674978419877590655244853103448530481016397602468657428474067633898943196597685882322495620155810429563526721182191006727250075602824664866766484401368237542267094576187036419781182894519069050850449862458324331849060729222981719558188068761089610253467913771799451655919228476400587355685179228196097355727716649471003258656319797429314647585134660009147007240155726837792027035381936813444656502193298532663248222551875113175273083978923727453840725473210772702904077558439201974993142354826245605251084631725114610532229167370034747523454682327777764025604903879296188854949711769893931957220190126341735582107877665901544820502978329006503245959986778328269923527881067586077555147476855971998966441419809403777814636719855973978468845505490897873818279612473879963906916257872374284919450175256713205448841738218766674248951511387095613658998238118967194749937922117122642864184394045306735335548118140194029317980634259854426787082861175840375926660732347519845200334135901705660178907723566363287914097137103381680777194834262587479000119179664141729780660093767056702710626149419385459937657758377299288415669864552590612261974490025540892237684457542913326704045815353642609947403699174776305450399078718044632252529004983973001429584412926109689060387732631962144978397040432205344243058648785902276454056728704672421190609027380400235915086494687264336106770823035383606156807313388796471670849287600819415274608632858728212190042200295158157067964197874424457258119041602059016065913349618368305594180119541463589028814468668361620976457085079758610849936311484938343432889126810975463037052524433800303761671159270807464835845573184289716012537934473101297620021873869106255279262289484229399050291013580643904828088608197111668631681481460299280564628222200571225484208780204771689202409469854664573853324633946001000323925148545318471181970186802309268531245607589289776805111160985881379703484558070441560975395184976629339838104496492255994784509810383216389687842163029632964762468603782306420466343860300807920976708576404674307427619017372938442025805880865390565053167130033978223708105233809202332366965723462996312832772498064761277621458503199537067127591278599300509824276858692727921935535278086006781893864584610434316241509710361650465898783128103669943875341662355687076938334252529945098883015624728291664034169193865892852791857593145437946458180069862207980318250167814579084759606516451566433985303726813633852172023322196510217444861166814280201138944479560486434095149567922788206273482184793218004697598392012524389028046836921184247033334408501914859222791895776635296135696223329407689814373198629426447787248773275419664499604543244141445180759850277231397734263552783853474214661422988531646180564131868697879210630224298989782009630525137928371853413794732571806404322169241990435894278437995357465950586204435646591224507360107259586298820818035475227023215048588223625246886206123407752946063280012399044571685624413057822138478639469307873765448460318371306075092384635793658876103853347315443113124838671037400592344288628535569436584979894686560073151066225546029920725613235863849993613421002213693728986526145649913970774568905155795032889888685145352487190218885834831730706350205237350431315442645134842971139605004823019191425289891596008282152395302630368205298366581500400717833943996630257575596048953082885232693841866758078855518980774597798688838038151929326748820642480492524932938653946111587954942880239943655118881420598122900451363425927505437344549368413564570198297674228340912654091016552784913377446770873225520680273802688227919678511154060589945183245725099311885252091278707000059785832593770996809028398320641034569941337158953202952985148124221961045671154391683592568283737736272468614074964769793927696523517156334091780614976774440064888106190156434602379960880793136402988761779707377137835220501171260578569967575617482762165248693889674343365496660106188263464999685859074259560163373448157483290403367427519136915979790801075047878690482491646395182024115298978541761423507777161553361882477759823600701355249194133923401119918682944006600724498780697927784732546377258763276208065793320445338335925457775790323210447165762760359847397360826876027438759781430169205738643360574979436303081539357927401435448038057115692422737877740667160123774919435561686358896452335716903439063322278144050078785463543156139572781730392499730296972972034425709044086680612943943941885132061760962420581830230981584222767521730254639436826340604833658590805697399634750170089421597354285653659562855505014704009958824975163227410017200607588002289568664051456610447607125983631502346086615049101672206197468895701246369354188204892338183028599538106738236167310137904976108417840572854352158606371811308978927171329477370731066817377102852328922316944701688012048426624112468254606796775295983861985777533620236444916034184323762620389222832588109441494935454936630684187091413813678807715669365189990141355676479789226630229918015736915665096414689549906745389412654333749230433802874975612230666609546634353864515101498885658290118553440899046329103911131140393084863196357923023468411691150894378538629861515289887252363471355018910203543528222675396338754681462378066123750123755144623301346361900360820389768351468155514677027169667829036413878917780941951045676021125168319044685670621259069500026821241832873657217149619702797308782319382383134223095797841838876276300107951616920729214951537259714484083605660998929610686702572589951502733854464839842913849441550968362148241426331869252290718361854377013386588537725879638950220914934628435080990652136465606254565582164752159966224323719797324739944439686055107487006741321776388428185484051063768989328261677455466467876287637786414383425888414637697889167199027143268172269279291341377255721392531422537412988825765499221296768875589936998125381378869891512990795245142509811328745653990037659322459624219221982129460904627503292371774073265254408984233470673821199029441485717772045320708187749765264510710308748784436580022694157216657821893374839591721626950204488322782215719432586670873767630997200833816529390514453969838249545351758508230551952643578285454082443340174422469286534242906627395388554401200503831018264373421720061822743555143663665194323066758709432311550906761571504941351746402659960803219999349684203503000303653461026655447926351759797996348172585903698860161153443939260048098170027366299037492600942461916740500523076624684780052061550229085637812866451519419701099869341403844989987375723371421065167745795383385748725778620003373026261596869687336251648143518582026446648633931063275373907940646701143266166501797372760941659271296437131029572103032934641210607323714443898453202371628693070596657812591459497914106728978225408999374907719441024697309219574076639210134373583677250101750694493688438935024720493840880450201025512560314240690845939439870631842723271641989709909473824994401545903363304322352625023036779107746212337704244459851197093252563514648127451687755417137046847927307972974414761480860990777865050149492184634017031085402012569430813235591578101620936547525957312978318381339396744943652016270175471387753927673791095528479434414178328833661401435515237001090204093657948479286134996422286251848884551062013901224289808328625286386064162573752789093308701561434967817873598616369079211157813279082490161570691519599099669016218572296858019909075252429242079259990611369028470620319037945520958796969763684675709591125893434869649530381210315725924528966060370455677089677478725104401872513488710792746846635789597606170667431993544449482959313826590093253537596625355035874159982703818238155303123683766854199957378913291961230761173890570474800868307966927051689923704917393056311566422989904621489430551690983779601248905191094644687340723891481455067095697748077248331812685564998167557027943974417501554895292632504155452505425764493131966356291674823849137915549238327315216540587001442201269534798679707200969366507582551752013833280582917913510765741028031392568344635322619901332249745801606297136106206328790680413538825602943365786871046337810956520727288109907259411938882027564849052322781193784379441019162650327086629284376836177680642626297488463957228221063909464595743481303723003159121026152629808598014059363986205037884991464059420880899941294869456061902906695338847030341381308887081988434565327420798462270639000776921446531762436748058788173849004530138041339521379340639463291429195278568705481208761439586549646564680335835102052976621366813338080591302907212598382335093186798091279679093873547541688855813671677052896547843818664970067496260809881686013501616514617573348858082708799538211241552715882230641043403515570012317699511123363657353714498001543212235881161021750938787037060529167882781854848204524341984931646246150813934121106222593234690566759576857838350367081545395428081863859901259681086128286906376235467880441654406247228464522521346421618577119402416710584832150524616668050713664040551467707160093957661239082136731867758895713588565174375466812170229998101994234697885239405594396862641486623835326881647064205712522724526125037605893682792130146930535585494710949202838301131785112970078085480711964670307222863740502488577473069833247523185968861028434752297626780757316261132915092826788862062594085045343615238465355104006535081945282796437578709554881042440882229211217831373013496704954087152113475392816685513539049471910918951401550077259835777191608329842248508849319692347725623116318397481785162857338573902428183811625669980563313841424688053305625700035601505463266615691384267221125365498863678028383569706683746235834653301330166313090488309080293809328094515732606038838046089607694039126254732793010031745128214220839962929415307088345259006034323321037317944730033050875370550058506930716641809528274669416025266715558979985964391657364830776539889325196109088172748577860126190901340558469564008713371000798140765598793874498147474459575378815648392010537633245722263414018525446710289119442781219690521684448803809256599067191986925535753243295605050219215605374528080443923994233472394885475513549866071003789517467042595362303782980802974310277487046394011367718028686698895531272232625706451080152918385650097133303881694609661469242667066680827151528358441054953061828981104202330483116878516080495918091746865976111922430105237292823407231727609940331783716780723270116669878290537195112806051145709493533688884822217325278322868534881957438786663861763527834569861364390528282293712957028368032044334975815643924323385727896598579366723697190892964337792757844416580018485489625858864557410691921892456865934842458852487188364040016630176810993647206673097762923946466504865780654082577101497778120515185216928422257015651617433709654599758762380512270386212057341211171505953612504076394626071892683455135432628330871846915779099083639509323837418446120855427697302919483140996744176761384432903147277795001334395770296226850025103832441090855918661559813647276767052203131647903184776834817297790477179666423126471202546538474975552455898175444033423290201004605345620885351662086799651105679842493672088798705238369768956173714734706521839317616125171447847825014435546727219617122757112067093575614881794794939150699934101502084924652081918411700013454451140732761825547792615106485568393413466230240531944020760280136454934527712356193376604378730290425351389784714088294010546522488255221910992463567773554892449085284202553505690759932574803408070016230759180699370254390622648484714852198117107783845653045695070894221189047579556989804289771417333769082903097975148867023021885602250074637420182009482065968119377719582026979477666906071805914562779824202126011166020750695589214426534064570305188578644998427949330824336962635232261812509789326289083325644036709848853985525309238741786996004760605369941251597145393542585733063782826792924903035146888821214910951801127984640338942696560205661447860965863957324543149780388113060775148982891708492952069267322892773854135757439205899362483892247299893203135216923856736065676257503906699353106592496804255430819318004835385963008987292511243758607151350954105453721596200162756885872451144458031051949057966201206178151766064993164971609712210766233112256156596861882892365662684249037926301399128925561388022412535649946279687082643078831687862664816379220219644702477917376551348828786457471894159477125173419879729259100290202645483887710173718150923560941255412733289537364131694723896281240299161958751991643628503570221731394101942283368725069784327198635205827033084095950310477912756753602193417589008825580423616268515991973786916174413631041640432448819076738525375681899038447613290306970111221824135775753072203248302903042168743790782916728158621317457224900072149723689789256778646108746176331657852313990203792769358156868990747155475050171913315618239277731384161766390216751531017992188841293510529153642185373513691842407598910627643835477903139319221234959118332131920251790546008048848850441989119673421084592193721989681911027141562864953489081186654790759610424379344148717269134343855272275123072397533787821116302019201832154118921160250174849889318949749045885653741435691755819857264491206195302789581305049139298931553241041090517863995556869430597384395787826409919892618798775522326097298604517126390819808748857971526739519895976984906611059385934034468026614320604647256509781382990519467860851855228867288180093932658448355076630340996510440082765415284004924631899741018036885956276158656605107768705664629931682729761633689956251244553315264589108169133562338018206450847529957522037892725368968174113234681857182090378263993256755148284346375122553045845893349938938180424818409594660281116337644640151100025251268395187873107163626817812863446856219748461651483549928186162616679230051345429117657175810061443462422857071389282348470982253208166288735096409951022311200126515741719000631855498143913675060219562879914613722520623235629869554776966966818721899271046780905191616505371398699689565014635853936249685655319654384966919245959739535558310596459264674644893793879260978749077303820142982761653545162668647029364821974567300587418597436780921062043861155952309719997052743381205829457403623271815540299857343399653098794608576238393354370351364592742212725337389084915521650605542562678521778439196172269871366718379251394888979654488511957926880015270340127842821293596247585857215888491944131678804824612149941821583064657190118826789268889203156023249741164524734685966244204726595319681738219645700496249703363240716026056016301455143800386619916716230989617969115505130897059823625852620155773802667272610638589269960494896043291016909362961895899989082247029083719691376726811553024569679821738919889823816423540249219448960836133752352643162621419544316528141619586500014570681512812209085643026156717940845898682808736643790704095013294403055015417845603606802863040423685981244170867429803269542192504106951645054594880536716767432953893246545407039200522913702594451265168323844533849908628509001100061833653939102413548906988919217908702358069071647720171638002862500824583133556155402837218209781844482069861978343903611800472079159896068348840532231817519877498659207473043664320171747336852544089212397901088787241077011275709239802281413838109673652327271225938006980508819132701254551351255177716786573190211201514507267257081212585617819950911243483180881460554009662925323373684254965677185971194644178501655698596678699714065514512278617324704261859152696729306040805851987762495076810871223726238578325631630614790536892732079619972238981669152789199593272232499039945628956269272067653766654628771660288185407820218556413769649801122937771546262722878905267536041065635214467163239606749885381868325130345072062922173881939013705823941874727500020284605090544266489150316959270358536704880055589922782072557555103296398800377341747638762949697411543021989600398394519576219297149490992450604750213853827796359633466870117806006833618865063810511453130615462505354649999717262811056192334377425435638988926708664706478873330883286266114413679392652388881625726231172706632565022487330544440464447196029058412142697527979871045605673721359207470028222372535399178971235166365091289013976574593259908351294661797500884136894507402814447382984229212134501453615092033418643290267987965379632508585922995627688275120348671941688229350400828325927172406845147554172755287262948378819680000042598488679668411534570298699318790939837844567140655711577983328202529715888245244111243953609424352585714500136318617133052883846277516428557236323861264848857086397435551895584570186316093699891817712258691243586343127190162888977524168927615258974835027730844838717956898853279333147681478905125827351945014549278048620709898357612373828171437935488431110351188318042850008658029114203408088643756398772526289128921593786716598415005341191489157169702757350610792902152007074674981798012562420106157480132389629045858333068309070279760309777649430818437899972990885319921620429715088084318762032499684998281420094808632506242030103629235724763413589030133014341987525221455504890879580152997148425971640111209599990695199048547709502521462681295785757347496422678992316803211002845461107789917015067961175773893350691399305852597655973812219173313889162080371740334643974526328053727782874242901453960985208427727550591081723971198235214946972752790608189304976442480993883271529308713947721520687158759313876315615358746851225207222393434477858541586841400501652487121902681622961620573442219160574610256415060458659817076528311475289572116176472912898837864934986124317059929951227661925960364802401023424006168459092771005492635585736371804761036405752643077516203703681366234087987851122833581695436170017982816010403389869360308875935855757405229524120331903276533890445911366741961371605546499204503311653544817617104218322776024755970060147635254953326587703915687817887122946288664542844496160442690689907645180754013311526879420426846191354505589534165790788815463715505996482837036332494486950146509059034510594382734246675403083840947627496387200638710586809102482505839737888368641804064023699337734765717530039691096422004821974131392650346303882592454561441258713847977572406042338691484616052003581063074019730071288700734477527328139228781208996604754343170800931232784391946687484473328681215172842697333778717070341095365464392190068867068571541529948135615967322775420795130049131083488865131710620895371658486203436051664531848350484387050515839842953959767027001979772721824560074292036637266786800608100200879189707352815325899774636762728443745473963295917202314234928181485943231890977992364104222092948010081087123976624285231271506012989081726317198773900289421733898461147695059550559521248525697261550558686468230141590270359935144293976671501428250199146224357006543806027495324205685712578320749701776308901684170303588787293588167980182521154708383380693026127505985817144688652671499234629806171663317055332075175833547202279200559755714030445070265257306768796451799578573591792856355206337626323693196166946133406079142634877867289914465633387626902411307794348724453268670337270978623916010488760295392230071498514501421082647117378485573763044521943147673865947769516583826237801359977141510872807401289625710435221103113682545817812017988102884167422287037175363952191903939351680907321892890823508927666265018568256176690660817730057293025594849571363634160196173499839244619726359616250824856858324852362144484143829439733182061085919945306183470023563390728340776084585412534620158090172422893263436135345368457986957233343901482209708243207538135233881285723595485273545905999404672574528930477694031728978511982575723000573569245331078239244331171190695602970184508082942631734064344603516415693590076236839055411343599610692949683133297956615685863817946624621827457175990790531728255548363621816690614933123825059793689728797975918452894770642146710335765817403021388925647787367216239951438746155471898709342227600334886456487803522453998540725094832403910658579091280787752427926225481080974515762778262456095925577556289018836549264655936972603515497812990741216229933204761402431272171292415891400024022730045185706187775145221756657688640018420843964612342126409485502346090893511036602596222290085800070791731725534809407145267703852440514752062484809849607601002299141697752606734329410526192953674347908571357888638606061150714815775000342630392404256595941935709810349463887811444172649379845643294855501979956338788377011218287762299884529080476061168160293601080375321014571489209932982348582767113834259140471988610317049685820742413836152860609138633584781782846429916731823033924885296330891802839839980469958552556647112407365203691866316653751809011668545233369905468855093089285541826724183522842743644140642873020834918030716061691578858505631378832167133703309662319945692224896941951588785623962084808936819464532082316452125434238562105776358611519246637773440330381780900203068547490613572088904443023448240362093203352059408019770467026581530197815790457512687630785651718350438147025064812441360097433105263232212191051194157834633519022379060667210446371122266349695952026443181191817427708667941348624907781037723245071900764871177506624675507781693772244614590578558669363361312189030297388262398089949449747014749243792485159458614657119521228451370167303002920629834299793672298483207802797738230512069291416635029168451944102869950798043526577210022779088277919182879146955190818308126704538309073603504734245210188070594129822024878762298930085836114328972483724385876108507288425503742886013651575450005310217657455253953248444205855632785255166757892492576823057446812243559388918444588732065904608711213026229850601564831086482054178181895758205059886089528364879646907457863394862971965239024294484805925694647759697253583270837309375846738728597627696544819819344931483707435541164990163259898819865215503318627635427162439173673857445279946731619776000775078272062089756708662967784554262582387105614035038366630559419806883504819158939371206520429304611079904000151093526074441685676054612203353636334558766860651187766583782199766905386710920489732168999477443515812583091308090003067719614393594348119939428074275960733041925542614448594365365382356105700256927861725132611597158616344053384462859055179746293700351282621424537663532251454100999432725416499188290331911335826825100225666134816514334605285281104244344746053194629632045294391414233104558861240549619065224060212282487208110783783463307443848481103526723994002545303382434073028119731802743325101786721628343949043098996496552739349771996711129492988107809566764334163429802389579404910006761631751663816513174871449894436081398595045212074370393033673645472749407655791482805872450399465513029993389254417092192468935822433825925948618512376564144904921590379184656587202384510954074123004403896920400120038172185609751895888765161806542942153749082794269448525718316195188343337578682762976504055942241500405988386201762238231148587634368272571935237587014957692732267300172625904173427451545634080094393578162209860881261942187092958520991716922060678142478171051671053657150112739069339125927310273727388104607048774236805892959977431926100988782787397006053929055740118824935313049586510891365409470905109736783490711746744977889010623467943673457542584794954045035241362873698988564574713637683253093642967053412437174854744317173328311406941776291822675931974198026017807903798223302639575150304631983509455871104014936956593510379235682395407193059756175025919242554472842703967122031266907566155401315022913278441183868311644711690395711203660529021601468184790622533061075665190037635823425414534429963282719528458413146950543002907801351801676733114054717273158875286387777374989821660467890687501475533467756697476282073630403132318676367263073035423370401479394201869845686708772897053817915229113466056820129662602158349069291853511085391035651397234602011701083893080458905219623767925278713013915807638955274980873841242886974399861203455925356431110133547959557380903346575157785539046335024007592344403366235961298343373839208498215240460098552244320896242755631705332524000565915598590561930845556941741107812767572047081165730314998477696613999140918730967969887520218967291853060538578110293292727244670189606950864565869282381886852029617589549738033044838119120792416292816874085161616741337803599762839408856004188702874366754720904382869166726916512262800687664976631026549632361270068791135469084150739722270727099268621441057186452336582754079328882307608970497489896562550448491871511932081886983328914358004108269742771867112236643575435212625412229234787655436695478930881291510682904556052486430155518969638839430411277584471656450750055414514783957207480388439244222275556091655913913308473316598701282673822255724473325622881436178202131612225653748831032099687651024270480284584684246136941188999908685892580708501643213484952280898189592129601221303331127826498750296886018965294450885287669261247985047830366024491579769508524018238461061058325493393688953703751191462600486119801149741718277082980868802606866797954911342596928192185950000738900553001399839486394856902434689198220757944374046076592234538038757397259204720930897358968399169619658346540949340066922213447882075505042140049594949312301732619505575070207762240490050340979757446367250684691441841188769667701631095426024769134479256789491085067768484669943924539269747003355208583355270197706097508702376049610823093038626304740420706149153686312582768934630637738849268663814311690571718603083853248393268447603469209173576570485499445293233773362386108287248178517122122358840010315837738949709803978190679661332643859618535454012380301168154503440232864675582639321083750419042781148828089117444046212057947418136856455619194991037135909959178228221076825078992869609721343120918908100953209975137952053581809319098275148575200857705855573910940142444395847778239860459325260241643391539861259480953252152666721674895633399244619630371237680627291605951589370771037496849245413665500559933621744308619017743635802773886436612693519883296106447380867108131956782980254822194827344116507786426165415917734873555809663269317680125054918516617917870563374957444022985743309127748679644729926026324948893362528378439406864476946706684949411687418056078944429729426575553543141473688037594541404654527426768548747484940414239689657221123113448444646200010425501288659832626738047236135024329151210572706899179666361732212444450529726563232867937234271941938072050245468830881569934992058592323604401559995630117747710135229268881776215234381826179958361005129288023530378365382181532912431623480862174208735250763521409911083644203148709918037639235867003418975388253081651241420388887503758845557926257476474037359480412339915473883374031117220996927276203868520599950992853046832132907925876227806689137656757483212267867159293636697803784337662008554518400406390375692600219341247873451152691934691035095565541040669360665737298215956438709468402259105872075464644033170568523480678491384056076341692677109315486274567024611425468803897558351278584694673125048247911363989910814822334580509538283842015662739617008628684738037708274965763256195221194656413713875419472442437757324211838825005473617177395046775232812944960920025695221239201843586747419006862211836648101705715915506100529341831410763288783082106245530693757209882222902318105466130018318897198246251233076154400912205564106119225398811340765007983951474568857539944909605752680109669719727284459263690942067069253061434175848600083231177454271379747086656486744545402123242802933121960312886390382841041541830072848330119532198599191761753793102905134200223860752180509959062650275231614736857784581806211411375492775739805644075378757322960178345277869417323272724072559949036617026872632221597924946768009929955184409400942247881867515369461198842030001833474435322284224972412507553133365647040287156956620889523304416951869203449257200269356100601324121203896262640788526119853398662608410007645210887654303874321651396040190263355234916939544311819367796956231337289840574973588876843519311360793600946775150350973627117977402612593625638809335586029649081846565756244286261249390476839338708555496247177132465761260939538590377781817394900353148151441105360733830706461400696821146460436931791217717985172953478552513257178789650121252010311691067098374558380721581297828484628951117176766196951936297767654438408279163528576491104996718464030956877030620984076636530288384065339738260482701703605153542302060881163530091630352942512812414732884818870310463720366309143690697851182593848024092017280944286677271874928486793722965495936311662556172286217460859218842144698328245464686838021714990900548460372477513646449803737364690273482286773865393897968113302510557214056747114158416956928082199585004803115760331392286185061620203330897615918890631355346518656266805490654277409995740447587492795080813484054847710718488136678671318119455780055989458947097496108943991263377207915340086803641733738677250384639912216275741648149864098337492433849170267563808898139118224122420735645400195414935721657512597008878521827409476910155584680398072510862631937128340235672545660328683603076328962654761164782920798898178194734114011661014128104482760995637226508671582141164811523621300036933723573785550714209218186395593999222725009286842392570429717362624369108703134158861272532581684996384169257687442425847542975568059457423646620794613564478824599643336520320537773928843256584453691091542654635417586023476336904849320717333523361132216945885178611391268625308013468084880918901917995121171274756557920232037387459278304562778882207593781491434367240237629103217078387553040205900889505316329510318961338607386752106972705776584275749739494694646795451158096705986895556547821445513907775091844022179236753863188182531446358560092039423138427180797674097747700936677656925335706268486959984203523690966943322267382574233787087605471989518706175046379336201879319006477645101723345746186486923343400696082971525455609398392668208494786347958675562829367764023405726120976593917182332312887472986379854279079469029160587030143832254325065119436296720832978859878286624109852506059778132457164169038350355512177610251209508018840826792665634873421767318843274241378255479685740228086755795158698154922024217084214030721423073402445868192829367348768907267591454103288477915772713924728970575897144788800403448182133937971291521406994759621355819428982853139082390237145162498939857171302864609951048420906288663421860261722785325781079621628058842153065655124606111488101481791613459320149308484237870983337472069600721714528854854559414528141727661860708681562087986481376683663784892955147956479108106690666834417797543289986528434454065302583466454741380775355996507995280471082299056642317472214504221838480200324888313883105145504058668825378616886491106018604239879083763430638102930603794898186997347597926183046857848892816884225396007935906148238177697912565104865675761071289217040793029901878031044109650626991032188756941536959069749248497148085768042362585272090686535879364190022421265361763179119710437467875636446415705894585796985022084802684624430773981590238845801226572943561555542271973161652969757273494702075771299543252392570980905188014756614216288833389209797445457077641926553744223538924459583172810707001133367504674863764861175943230195035848546805151875337743158532180994878228767252855204819693223021514328396703396357814243798956853763027501374015370882178288435665452165894219048273612548695336083227208793657008009888324808447850366191398747823525223681702291626521258946406455568293837792606645859647338254125693753960083746268431488753837378930492286800491598881643555892408145986484482416533061744611786257629062181717614584128271722036760388574013947649734678634159526960303660893036414164776037024620903386894404007951282558516011493757844882245718035235843522174232819414939621672437505359826617845967124117642436255485415761200868957431592537221080164761838124439508317267670425956208408651230433332193744570073482046109703989208698727348736463809988274119893825219719591404400882902277738518010029008642960379830286106435549094330995738107076426954931885930800401227039035698579200481811840749248547834407385212752935387755946456404037318898234461546533512173793133793125012134025190512497834961252550839182605980542822334956193528155887832699877373761222815869012595143194966632091092508061829604058177054266147798863539223965451868708192352470094851165024240873468933051958552125214170839995410406402059121555054316767814235064582654538001204907995024499252312642964060565814028024847117277265857887970271991941899022800879367652299118035661741355373234497002701737539601603170076442844559747946685730893411354639999991656291683659716910341654763625140045062219620002574728546676152154531842151737860853736007236213480084987003443955794300840499126768853594958754167445897497774726996642641742897693274069688124913346578056265956803485617559995292532017587959090110597325270303976421415135193747397346114768102432578693688573221591883190152472122235231691236390893442119206417799541966439188298160252560700820664995006632772799599546611438318527443092431113316613923622188528188003381679078456383665493255202120084820772530654428907119808059154510504153210427138680654745124243564341758644524614365918765392550736725530278527932816533644640234214639493535594942629618841777579143848652337924902892872517133658846334460517486859539667939819938378996818218655780347161429787709050378440333324383720584774772259747050207354810426498143259361252358561260418387435113272145711518406692383908735099453118211881625114917249919480722205032339023998669741660558017296353727456577630086087136931204870600965991482679972838145758992852041757845987109984960209799625615996233528167069487369807436884497648468217644242024815111005398826545688795188966608094134871684247621461578568712797655679747269671894751685962431319455711074388257433720514821210732088532061789768702567379167343692461908843370961095305929505024033552561275204581245737732205595061032185373169695645677035198670822098257362704592828494553295473746310276901640957703574408316581319382384783202868761848755607431722926538480396796940273780333369058850649711944035595049105407349947054019044553611382422104814445305312091690546407709224084472971298845931369061293311441142296047985373548244397754662118300065408698693879394485010238927885009266073933919013020882933315085655131550756093794436364707907850656826758821393187244667337994074987727208556063925872692646702262177363703776359906238763515571068499160016073604094097578692887156948417617387872286118024139973881949403766555237065718775857590743249780411006718866167302301898787877084913746701452523318088901701480368404423074155829751015781833526534226530905829633846837616873900211936945716046657887135378562237285334217776582199614221248299696630001159643397293622663574270668746225397083475953747308357868347131392149804840180862318369435142583594542087388590253823048965861307578617530722534117715118427380565869446209750070895880464911204040986006487022086793366423433194677950658823063037624469196117535021443506937081498839099727471666627453496213770133482769423868794069330349565078796933776949871824621984059477413807287073808157608121097900136080770360875707182739448376020260341176560407055120713166943315687390750268851309954846496203076266235402506893264246451920236043528558332420011792075719606135820642582568012141327683834643697409518714012324523411892115524868835089791442353992412638679015256826628029941869189836217147857127110092726057962845115980520261568662789881553179499599423822093146039790707844870558857745359024655611419516375631355721912219835157535344985779035706274776135542615971477962210569096381479096337908833169109302673345430821943227691006781613061578325234747990177454031250797985100807923786982544515399954650179099693388939255916975259200398550154665303827813292635244376642857470026050368622323197253229455202341837830448393653225568804876434135613595838378507375764517367037529891272485169461331620341360172259618306754803977067791502935660601735817889809498615917938944849476895446885756652414258302296979240683870924034602886268730073775678747593356663376482786418744642857947620316481314412988510084310319787872201222081628167795546605173557686435340804399962543354782118644428798058729033796138843376410436463251654905933258787635645677072784929683881079524564116637420431177424309683415614849122884762862139915224805978950631155990543891176454890237847432824143083896083026330418836860551406003485513770107061787663127833815023603481237386826241024257425789813499816597892091574717154033523885704729631633915167941762808667023655522556758652319878844993018354880074105376497035112908535535800688554894320386803370167001318506269614937915960907934346386345712678980028373905631672143765695413436613693671587590702887232415102951167936344437130124312310136456322466994234663276350243312150021761364413438867124845647661350586408341720778887009714824663983698047867942712094181386118935065026292324835588552987256125024535642641087906526564079399690286534136614507241687988035084654056841780336130415254809373643654734994784271490880623490369025506283384485509379202385094261231253567312208051641685076523547606762115170359170633155244183620231882578082088666517926389604425356397353803793552806854236472686411677014678900815043428716750356135780809886431970943820047476452188863684647133114932008046400033741165775013732146151493085704679483430522918636781144911223768077293915122667681283755048236185497415417304506459577148070616372875529497874794099579604408783554704188249673317277405548493762090018168063200591390882335839844601807882266932132893791447278002260668439727243426740510510628804093452196342080409059766142767782733116601059023721948167102453686138424579153245374547114473549642956153188385992381948529219411575416131207518890451753429837175816083341956716936501629359117128424720040814200291885798599593880058428529230692835172731451957734057948743801223107599837049652025516373222696267196004867086300027630256391467169190287840012728694835152368951920888469266759086130983665418178571834626970635804198222958414902713165143428223386316281122504723323207499305610673310277497971556767899968177666708714398531113731577480999915979754166007824315982083331799777979907413032266415887019898913911105641429865399665575401427107404746247785637394597032841260497711680720138958972663364235160682788753629165054732268985038332576626410711700790116929545030276753964625956876091620384310060807466103229297606006427002151017920213695023171417047482945705905744698241054645966210209753147062238068639003846509833998514369624269578266741896677795569789788365326270975729560344200450459534535587525957366205319898435019666073315264181388451779202105075846495003602154580771215924483734279031160164006011945268532392067102220800431390754658161007253427631124714358915861504189482586489210325446873906635824054511410286097564378958575843093197090865617754281962821061984825312207260518842489846213977791272841246595139664311688568363981242311141693532799049230192635468065829878175212328054446186276347308923715673934902032183164755383446179525509537238524016493010011106911974004979293847529852772668227493173454810683238734992062890877675006635608656555726508904243180153875007976326423649623283896248377204390252791472555127752225985815747895514337213564449691137015641233548861955945147843486394899702424333998947506733660185326068460795894878684876711404214130332594120715045834762435931095876859864868076285520839118960199283971836731611495365665001072562192783940146003741269074077833169787184839294473772204150081960016731443258873998132781723993735185090017231307630269827701498358074149850971606507335799815617848484373188653145647858359318308616296324192614886618356009266069693034755076182050328831446242565217242556327763000730804515364988734261978676516138229850760896443719290068871828090462822739103693905901037055902749927402748363836250548947966286868953088860655038828971468688886157798656137803858109839774624060006034680829490272824399518128823532488964873838470008300717622804139864885834784958531970756562661024149085786883355682622956886101809343663107961063317297768650195042452762444959127270551251278040976882454571114413769381641378434376239710939255712683140138184537421980153707054616345018546557581211962253568396931945747815828914037295438223766080545935992205315845881157861813489470447488297056588089769017529911803167945312498169633639654128624005976908033205242665826465595296842010206324712375295078660255824645011462895969615033385892508470768111584137949989670981646359908671156902891429084659377364488434167181262363235189199331957133197738737398889694157531156067266147720832428946744482662553321930084547835406087479705194199117645731565432060697246928967747875483168743130375972245971148783419723229119748778974027781878215377543322346655476503086253365452763118707099370883573129592262783543332066100122466315455157931145058473334148254717224952329215703562652058431567288765192934562087070032758662940398758126886124110668633978973535675689687937536986439894893013217849740003185746913193361427732188181708493801334434488779703972720524540965409492304302780965682493155453929432713256054655629881051013624412541652590385248205595490921644037829520559300817107007496393943824537316340797283606877836673239834711466094368267506698117400382396189290337363796617558867734160031555233302024770506207414699150214153226206427843011516689744254859197594952556861880487379506450764061888717904759331805108912931038962559068448023804785783129199108008570456937570215257965666300631505329838326117287029895135035159934016536457449434147820852296151829565458452511459319856691726725133338600449439552936866081657867323435795041688307914712034818458425451280677162395651809008030281654172337296491548587055338302203840512946982276220751353492595498900661223790309853878007894359001767264845521882079301461461746809484722878761959240154027169608901984000063467249531231305267220025526464468349481758449604743674766549088020866954902068634558649688482188442741266104633420724477734999872446270954137671541859609145164924288040026206419173992773844521100573468150708353776558604824021732450167649626877047296715442722744229372953533894070316120295932334780424562669875840579384458495911432739374340214025432814938363730312485245435918826265119049341963951432516229810490467737359585614084292105440344022922655155869238131741400562608591305478342020747758303065160147700125379209630119507366594273798846331892946158407431754297949907550961994429608800653131682952226906169779931245337139225834340991771903144465299519294831589747291356326973673517272370680888591862739120278782813323472312595571036690428107591021733699318210184594047735394924609359974866552492685120946792389157764412406212383042866904222219586067840584839104916552181697759407675210276932893960381408979093765441620051940258423796761758895052101466553543789257518092668456628467659260998866979461049505042522865234580242836562994718176276942451341745992082768568073432940018637176224972573144893143084737726403672325572536209267751929073789529856315651670046544282887523967339771977921892822515692487690176031827240378040231869884805044488712339150082345667148962637465368120843256720566402851496002225453507061126105380618885693712389219261365603707769877183698590169441109608348688771913994135806559190860889474144736357887518695457819338682497830175179506859186865998876494477763669982207876144285905088036094540527836524211708467667237089312677307553260401536889876938259278724619205396625460832582705726945466207601237842891681596280958216371923881172738305505213567185180356912226878059746038788167834080854423043685964463321192573971304077875843623550149717545570880368789851340614172497779587459973723449797809800942724535134031998022860964769723105858882432769570303398768163656459395693286834041018840761899168743953449781347166444146484560163120524998500208835841378434349565973026577802683724172450444488025946713719641807399627411574951258088783168436011892024471119217389203294405110414333784154198919102261221875134787551383048018230998839305658450738388535422637696522517923507277115623073695753789251162852510279640338601555212491916100038041944334809474954438438511629981976622757207089895100392076117180686605018737357856627193793342098925965715730886488066689310151948329046369978581809658778821924610534935052560125924744632123836914352734804177053989250433093522876358551397203729859264234102341694774377900336493333154251039340544078583603381054832823989580659305668866530669117676270562528887889598244344300333337292996527649087903281153372258595203060772015146008088484312180560207672217034822830115025700811177783580683782829242988685566225273907596052503190310042001638907119877383102654134452178460452085374495561258361246714082336946739363424547838295643234838746769523154810533815010823089184033132007115237203289492916017816115275909613034598693015269979026635945393549951432684765392764993189795774896031594350122571480065359790499114847341469515783970833178975116337152479545084945134509510049874423800379703200545430154802189547168495299499604281331895224032126400756984603708800678836965882830770846213755204924245668201712760659122327376187302903610166986176229671160350717325037848724394174817689624687361704284937427008088739774505760165488642401927604274364299375910266720609291653190314420961620687882598697346110578711307932022752855586559593234658936999346127864969232358641277450088049375924939291320254830457819489982449925151353583113512545968687767959875190046179139015390372993847920070537483125459766639569412965178413634038405884214892346178742782955861217835525759380664704195300133152576175267012108110033782142779097472125365767664553750853529935404382593572979266457668776409777596671626793280707051252584609732322734236778089163276522806982617564945886481897686122219321303495628845066419661390268679583719141517041213375309046499207336582758667754646701287426108291500551324876065355800427099268243069755174170630463537306545434447764881881571534040976951356951264680538239734294790368050015452967568209647602654911936368187965519394427738204165594976666557915759201237164924163948165193135782989127571961664826094091482241713745845588835543368674209509728583005340599822516989633069749781654977950779466161730224728218272578237502792317398516202896307065222777116477587790016822362436391677988151510330154785115520252999757839780483719702131283817757681630035226619237792825057346757619599349273570290210662630548881702459195810050487039592621952931706927179548292188201478747453337601089719462076040665989234970385766611492705275461898333047201343835201570467046521734225448546617714704876758917130084448786980579428453605598662143074135894476823853580097814465904236546447719316255713468982857345257284152503872513681311140961392808716709960984501299620974934059124893990861387380688889871897513976464725213489743092714102367035943674720752052638709623727629627815984646459638064097709739166215102223682262144156051381862432578168675036044553024044276335303229533310086542060284210669243962216003953699055920816718858782800775735299883994534592789819491565167230045232548992425582863360427620451177418843271684369769411254654741748927147828607807929011642033243403686446403996965491751865939818768023613492216029414553364179251445599749640009311601454742573735234767112675770669367770893718143575196279619494847589727803489553067894142380779190598594662344174845342075264890800149739671120480798436929509896432937570898571893697344666928018339214491548858163795006003739520912594693993720992075577213175249323911753830087492310542608942839453593892766149303923074906530649414885760256306710144252753017368211316789962325012032112033603535250261891111656799849921134455685957503612862660470607805011285518270690261260999257026702143235935684467669763534914116095084441836620711683549205584785311702563506956523573645307345248028677837008581472706671162302772328487987626695451559952318008594199938449452159468669026812989156910645821528412395097409529146751192439143013611370391038274766588553247882585395774136287385052837516896833681210928682819623672350529533511424333060780994973963360143313122207726505982340713824516725284230088033084129341075641078365413118588501833243956846146097164566884696790179837645216572947801793687647537989928154722944474360883659744928895083027362677050014524425599954381121527886894431023422393446178268171063760255659303722937124574588844934342183679216656600642511032529629432235656293222098634978824986199815342877631841867718379471153201425147904959989528283120712486168962860046653936722719834170380135263053390155854450852613015261767149271716083917447159038221766597554895188100903689510201850524737310681042250584146222728635361947834449077591313969829335407531853527392076027162509239472327950092875133044902893604668918076400162237818006302804112644238993677888970043114294328974801931843418436570581309654751090869985471763910090155313381222040385554279509297113574299768949180200570028085694782938619534281051995342015467946908977767740561760969686413041899461076979443905752526608694714357853451127817403541593392258089112893844599980656394645062253392511744875753677780828506526715049876322925583875661548896563062481374472343234150271060971598756873735817144749230828760769893957041629791491354371101572281427981275997167224703557167787539537663340374272198189802987583510955451793948211189491918986574233832341775754333433571897239811791028066376717666761375432781834411774672237054518391253717401454274974028510396982636485432393236983574362811363375162624647764988713160686287226271843012295068816514401704316204802623271658535001042972298046788836872069698904745962749293971478640077247950813106804421546204073226173723812798940869099823322113269955898880603857157919897088650567756882000681964865198398105433332498947624699640475770116234135075345358754120266282610681416315479648349834620359413408662155955263419748749091106386925725377146184459842590389923927970633562583511663485858802206129610102356635361430671317407837178685722305981254279241162920904512864632729132516387246768432154828244179986276303021370001667980086723691188524372853082018084961300180852606118238544529735186610556766316702124614613332507189989394209022882372829723743189200961286466944020130941470279623117509068135307471497409108962513195922598840128203208631878923018789275484136211015997805695702862082149030775708685854492757160136731789426808076337913821192792388965984344815602649373467147013550603811645181257153360077806016874604813222446363809887058175617325096037746564018107971561283005514982104574186723413330860510224606257147398106961739329413579814024063430497089177724702015126173475839063788370713387976246513535843296197139790791059988829314869910543550004822425881793146153728688708771725205392852042869857600405827088078320870152733516339666816282799926149648072090299171864114093652461978070035408213977327358919812789162498433176172677346862317713559760659565085066987864425607092865636573234990308744557103227278373210673237866966678305249518088621234480881562990109228978063516057822741517999595672559640907218206273139805983998400460742363849012470847668241921743443586685909295765474262014908476077631825052035728962393845582025760159460477955164053773140671188222856347234263093679865930328082354423412632175893126662781175227353755833247159865440727390109613322383283158847461968178032302231572832005593899123421773921938349891267265867669825448170378158749408485406139496968953372310516610287891090871315266853415254080308734203150390048963808002270563831090548950239343343299852579934605462156192350808170086726971937760415641976326804734853881119004728569325412314107491193755565476577838969194783600151583716596673714752793925313357363832658516779676355727088716108004257769662083732603237190095465635629987773023100828545275559614621208038780415717508989390471519837847674051957922634153527369673849007871909089808875749592557672745358108015611428181678715211349580891426751822076860305224085935705678401164924958888328651005261844428473994590256672213751004026479053281343864370110470392464980310513090922910580688302924361778674934605929908012611624457810409478840820054391553119175901620691168891666690252680855209412959348883882500631669978127935454275207164620644047109857956603552482258424693897593181043120958085985007305061409245794356743418892835806664297091746179926128582229235294366129529575130369705521870982012235107930204747767391617874981239337850837618506897457990191130732253303105105969891594987360596848831076666349394634544037559731528185400262661728607814915917753178568822465759504907208637170352794537910377409989736408401750467568467803756734783613920681866076524995064605205050517529231680643916495869604276699143868771481272648584255273912507502587031096627011515751207070622105555925377951734587884722188004055250260561564090219901873008464520202062367952851334585271236458290748423472002304695171680936802095216701937620425997488441110048700023369704562577789200569664606480297496205029184532349481227692827184740361664700169694160202511448556088382551455826665881268002815304605968722633937750837954118560162476991772199327816414846967406289564100425490823078005719972703009497193801371511106015934820636256445756274570596356814142432646247956202322255014137173418201247898637926601954441167032428703260311911825505770026002921603714495901229216024163071068918042853915910506944118814617660291293126277955729785169077111453064902090654897849421886371835341479081547723228128745854081317356445706390639542228866643643222329836685894348996806886906773886310279082029653716115529939143935104739516252882118673803473391573819641795360292005593213659149311339090225469701608829252702779304014014291611701642047406253995287335332027291315065763163678563365584577430022498604867648431449843698400230312590836484791967959134712309484165880481687937301255753392881542556120392265256468432322787781881178050705013495890726879018311789419804052591631501743067717018651370314800044967462404750815925601574990296147933646407695363249635892410281198156941096251655828286954429719612845745478168053865916511796225060746481782828612453587960177234316457596862579257151328493265166408720770630878436770103097564126575422828720054907323187805446124168808009612615056933434394340355741359522587875924229359734015912821945480322795876996859749014709498542833299571968584847737007991759983588638233312692219840590513848379737497941816508162495958635961650891226094546880352978644829410383830155311261668213035407608299157917055205473407158127985012143315230377886836090393444097861871579795539026180921260533397830703682733181267190325667075835335611145331676892551445192483464991862654250268039977011930164151984690748770051210906056237496253677542938159599393912503971838140360843633145694420309176077664210560796277709051296404516681294991775935556472531000463588822578655564094115903485469014266487385702585362147215378101325232112834199438005309635618817086487701465135836696238957730113740944935821875900395674591998211258948002379152313299667305586187898864406279893603574101152308387566179412078520858534082840324989287279563728945489735357895743378288124435573848623819816526109887452031544347466201847094549224510959248149914121150444685530412986245390762019880762404024657166561227107313715322586243386093227010505923387232601990443824891291341972174613127782262774102802206679086318609680882549600453712994672923788452496222652509616911131161325172105887148980481590567991744338851344095214726972195227981196731602091155174200769493574701056584211193747531184807233042571441206025684149789225525229084896807502155126914428187447505925449445494019851150851500853123785060497990568359571523712291402970008713190718899144790759612004350471977996401367473544486007057110361286681427164986264634967113178072614796289685467438789209047222720627973743324763062644349266041089551049402269551504431309991677612488023889657682368096819195682712647587157364189074749811552558777201161988748179809185804443475741112757686779139696168287356632651224919820938006550672859844195831459797979678253526529638592703380441405638306853502430277983557316277789528312710887305586166809637661450830357037161578323569828219631922902941990063512521713109367369867929273040848566374189862081785072025811937769399852845875250400627597039867505399160147464012822964671878348265164825805309241551617930894993395373520900958571951745779886872608510023373369651628924082677925381433848541026191885521962727295592403477674120740460843673139183348105535747006269015070995436918268046886786266609896648172390942372021067880049142167525395866304261437213329593440352345797789430604334494244975777745980115879965752179962677069041219034909441042988940178202554741387625170456401821683652838042152163939019351610332989745214273293415165043595712531198045462443390361081187457739702544371161271848237372211736698972009796134179201452688399696764674789678203702285374940039218111671174386120268210758187291250290843761521355012025891604937878699146748639168467073246221385735684024140827724188087864159512652813255589611258351223444762448130668010159171023749460469714052457842264736717701361025759962502293775722498889859450727585420303949871552516274246304814358325363434225478224757127763266925414611465867592675794312126311684757117262896517561488651960290555597918206689954838805833733874297878532430414280161781577747343903736076083397873058606875203185190286560473187072139918390439964164850613489534505659479339162258419122611244158914204916511109802164448878474985045069774389988087716521673893206318231296409267160591511008847003376223515283519156744990200979339816973654917307696282639488148474040137152620478977948631346866271839109431734390609596772987375329939200948619185726122524490473204571377418852300162038557026331215302077942254495508173338618172599859063053798238195311731861147373834075861640358191991128115444014567265657165444370755858409982126783474269615387511124344111011550404126816707313701572950893572502432205899108479718506953231978934596186739837411894418691285712097445652717164918153236307049028566362053204147645095718403949276712235361885881651294664129392755594202474745399241218452561672217703512456787520876453139121380441793272073504990425275353056057676591685271702290375855984721725187628258360496969355062271809163089776453594737076412505423373223339588947728878413851422373763996717630356867593022254671208397777313139706257805775770066318514674200448843304923396943813997861861603100761005947359971225062599696291887723154660957890240639841077055725598156698647966281380734272276835765940369832109205414031475939455661262590721524973414866238877255469177898405826092263144368955207106952204404780752536118201658185140148941408192043352855089915303851351964248522011020581025096109315646551394349355490899770980755784284866180006077880200835061036485664513504171077109856580355846908301933295908543537297682578001117258405289780707053980824844918339938296948159194321485658486428792613245043510170357336613704110411991853469140659401230319323081662984654837949383998867422596883540711534348804055981446559821018917764190569898230728030177630375652900394251998791757126101213329033612590757026599793856594997566343926110692774139679415022171822509639508761540460043357229704375183930740047608799416434266248008059215525558608660399789396745353816742250463185478596366909359816144287542441595588084293383153503627205558183943314367352912246014252652696591661650584220379528425135760172253800296664683397623246599802452154249251222849269976442020174343421282651878659632385254365434873261325296011036093851007585533688110847324659911811020964583904652375693018749597332553611604053838476637837898263509460337755275332074415577369910298985633043186285545063220317520768988405649575239954654879581430045638648819747956525954657184547576250121773025275618093792120928108013903069076840087903928034062411453875876439785829548222574374371008707126061716886487902824158319753694568126125231415605079281958161314093061891399016020058320633931110068835721714156546761449171671500095526954006197258133143921948282616409992421395105033936649817580736089477170190379532055274065077168056244219121168681825424086885470304383421651812797133177364054029231558556497161667181954857714281618171434381499749637057650947926073232474976605335308488583227519557075016340822618008065051412262198486874131300397458486427866426443257472058336928764364823852303565764749448265418463047368071368420899151311375893581589774825768506179799410230065918140452549458681194207262523476017193498016406598805145863227557140373381146727682488180525998665013073662140834031793789704025040187536876232274455060179211827759987614831782043696880294506731616911650933430265143393418840125198652467032970290599672083821511167144914157273234457267251834715457528786193527806158874119730772178758925976244459518764502885254345096025565973367993457044790822845499365416641583008610013431218688899831635961123467625053189197671198102267893873258321207722278679584018940651229362360760803500458654030681529341856295836496989724414825269099807389217697541279966717562261624935844644477275194488398904631285121111298640252287894807571770292271350488405339888414615166905653345120014404391256630436268883237459584327907804652970366526322714348477938851673068972624259264901358452579013239310490732288196507791493522132416535334316381833191406550550471549686845552905708694017515909431229092524488808120825869084591124066785564494826174648572732963859734032278412549251727440302123065384476781181131528008228731718080111277533106346529466035092192603939839100276176057550683754246302902028348466115735284455693946414943686242000163514952769081190659455883919022149538393177473119859539685171971712033960433810000277544385972664966804267271862771300657507502339795169766703971568018234093999542816151690695793096485014802940206783308244978720565846087052085058530489180760973477681549173498129143447025146079958719705064509756837895696892529871212756948337566883979114093911156486016653155327799127484873499467991405477843168777785666002928375426377390545526723805180616968760492507929285535673223866949585568101497430170871766193095907767349884465949322050041990434389220407577929436971889400388297112238560176013438383288056727347087847422969548225197294409547283246301636135663368581275173307492163978872037225175256778397242420849610077328174021843128424968431298120570827091287648962396931460077371251454196885197568137662760666030520462377675398759520391088488874373958973852204714569679554467716450715281560120861763361147025132067029853129022639780589071481858320329404581213470358749761521032601224971153017726350380584041424348798245671629967308553813787463240299415594511694787077630572207035145656376322006867142646017689336864382002568569920074107821795778165041728851311674734030546134215575952554816959703496484142531340751609607370598738102736643284484729331956211381224340150697477499074309993917494536368713725972244306720230683123209616182139887248724693148769741500051095393308814883516770509932085229788812468737007399816488165905135911109476922799993222578510538496236454047649927923551899439952892046574166826971243437185184713178144931488636197874815889227034033240466742483942536202290024515560935112250575424024372902103584402505247920173101496240382634727809053272827319853072214437814183064177413623795432162566324739309111484546145279925081501725300089135058602360359698785990267521377102030394297384156961389502048541009150681691060594031429361284087176649573541151274267631810301724931001862639452246148573474376280093275355645613918280937593472183497694120587825720794373104865437600946212372382066866944192624905658079961335116464119674288284837413947219661325584937612028605554932014936196853410647399115695164465880772264691713621164037323193730065883389856439649830775765750741917345531475249106943456924046609756702562029008768047094795689565437088345158854730150340286088080402045313068035940013003978659494184764940237676553153886492604518504042759005649385079867477459965889691288924352735297661526183475900239599196908590435482771956095795873814455745491302809831832354457973598883026231074313954658233555385048233168829153327376039864986589244492850552222240251996026095005759083325788374317979606256460708381436646927996515634303825076935328523326112878088995045826309656571065313879379242224345026618062559703691519751512067526648255819223440723062197232254892739711804440233940623227660626959337742608967078056601131086119832758711266202483348174526623418846978312674325586684873905852500294133529154788627062401773793691217663134011143116905607295887650764738052545435874446629153545717602819260429076798312495842735128001781890291808216963645512639988740769515750418140114286401853558503984123496823044620471391938136458557787518619218609954230561673773465662314909657084942823258480252851334606458406728052271104289004572482485678902125330816949799930189887960930172449682110901070482162837434239585875251013984785611609150255862358818386845518292188394521958102207148004666750220680619487341906051710699843944622306789856748310695685519897659001240886355506580761556539509985494912726220278490037617057235213350624595796179994844909284331117742691155183826494171208462194866240491141240874836713861994724717779948361063931745106721575334566452591269967969030743116837725802890602218090157138799157591832185080580714517260939527340939894990504606429044444080083590202875557904422556982593487594275211678380042100652548588969949925600695390199258869733351553498293622557894747397400800206648588953153449891216580783433787670366477373853993975834834127951279235400727894887995230285639070240245144626183536862728130254955655333333640680078539035314141522010569513249582250555647601380976538290712246079884499075902362558197644785405153543818988625048574657716920638499430832327838916842785440426967870980547526004180589845576448259199624786756361616691860519351699296995493818767760478050909987821413641191086194653213064574999499797000639930795666576536801237396282327128567624494554249178479790172243151878113977694596798739972988920365680628836400095125373875045242452784601379349005890028183033901173460648955871152018861883759205110440548295035355745576179486508453363650082497204253687618185916389840812707391111339029263692693727664298561883515323338240879649533433943472904385173489210594234949850910093377570686903760272394202832100714499013444538195662231549773781597516304257679499301786298597413774706176851523349628291324121103418531725862812586421437951557198722770882474012255911681790970326352270663377811832997722509788701871006508290294626108219641527129030763317793638306775932228377314061735479065182993378028212267482141502047523864354564551020336176983450748825860873273561165407244821680530618619218376416249946494279820811725288820394213938803285538997248337719389172817663001007802409542375932370417731354917273265207864886957489945601346037806239075028657061180093745363774365530461312238370381563124101959627483314719998402931116062101342764330942769728960957301142358350521539033410559113138977918047806139339944783219128813640552033168068119303853071573697180506892074846655217760780315559289654403342364375637245889228500818361806795417907867084706107391363143516937841347053824905047083612329610188268527002674694816062221672246673187212077071828715709461106903544892152520614584558778598908261021429127435089880570288820539271816248160729760832428794672270974795539833633963016349046846561161957959297568782527292304984763090185867915804399183563920172545526426395525991241716591546794817945964177272309995042925039872959969988015636549733348048069804099160723314501113728253422243956331945889670257428819003092319638788290431566904214686774246714603620467931415296924820399857535482423375639749468749634954600441318816837736970065258045790169040827913525027734843578325598270178081666059800117895220895827938829739561870356223275486064208079771528154549931927074824715874327073454401972809196955996149968929169069385422970342061101760954133819039148200991700597296098149032057033720927164773157530125845032041215965802082633413846067087032410763325468397817145533253886390245453959215565247592154437782376591446228400298300207469443572309088964300670966254713075534407776286809898035806339216022290685846148992425831369283656929654126091999533322479430629584394755624505145258647810918555289732098981868047267596626206025941047748154245226436113909380395015784978448501003274440099529377581319371901443074081778217143986154807027021002898698571115135758027453438254475156847050620730525156405255077521180750674976750810288266492970791413416284501928321419388720841179710743177841090679472235405974280873784852820982526234064910274955421415728609529223132643529911936990303348897624570648865406965739634251894043369311025517079847004829256995800297359741194258816093407592009761601703159066948258533738173051025507328378248502684715291034610717892661016438552817137932877431384316609782746359444739556157954967101285006388426100073604912228581100599846477830777307957376378244575792513646773789835006854672969240614713387879440133154106511366706741897129684436472572787757133924539135927338529473970355073115322066135209642460334721870442118469782994466592612541413682472276651600529401182017119473432304510245839999521369004565708938951904589094435882651707075952727497020831746282634766831296529879919314827284046588154411686091941884097165214655691682013415883501040880318415150536586055597852267361689650551345911974240554654466079652949982461044114425636841946511634112449706567442246871165923500843434474172500826831831104320312533560255698660994908233771942263212475942001860895518967094585142279973965487730620182147022901533511740415285072080500893970111161513058849306949662461206490481484811700761928602586678750489199622789221750316672698782753207338989092562154206544027696004591543430186419896776060108122143481288996864701546304622098865910315762257994661447653270979909199969503030617306642379800488979437790913117192195350553268643603745880724216271958080845404453440165395396673022323432128347975468751119632050960312523487164534864285588752146621072370364358009902307098553270871006736239234653658021263699638897599721931798516167828386090342257033925965039850646813325676397799751288008130380652830884309199850024128682057769809749809311804751954017569605608991083541813368659103388650043405814187791268894617958103544698165222720673959919448067366982781454038615267196325515022806700072331099071558191150265272596473099845854203309013746622099332855366484390173628972630157668408864261218112211097724520720621590956055742762970452484079938945274175653716210122388371518952810282568377564037008677352779692998186409123595608603432070271539721539763483711705754167575785406213148560776974875527693368762693431194035991809978110627689033041808622317736668190355450007770423731270926020153864182633533345760628283586078477712288988673414099861388399922624212467502421893052071687518419606965492033173405899704055771079688253199010002429111009374827713215061087103958151624739305914142562366505757545027168361259487469731787967486151549640323225338050107402443317854676522551709071032079754477347961746539158110013866217456253546415008582927870490390076097375621725703318749639448443356725659247899112752064347700194619556673048461930004834381477960289918149188488399747278046335158576318794950060341462824831703347639954125291241103985925656732846075552051687224748723834216896535227910511103858442394210227040208059101038554264555925321762768793131283814404790634924727174857946029316815232101431234379932921818275241602801668935002859699375107437990687899728569588293628785522280343359723429863485123695659482252914363469209730049857595202857391435699569049380166823238280979738437917043452413450648454626378410772983817456599113047309982967967668357356570478940624908561215396128083301267204126987776745426179658050999108825793622190153799287971344643405564610087601680352888498138899865049588636107693412923026162231488963198128181505056929680002042994161141176427527911161914123520217673891947208081838977042609759446092341495813293915818891444886052479655369348022496259433714042762478660078219934098701292759799616690766557279103405959307044620878354435385676040591120559004014075933318557663486644559891413584918437618237008433670168932723999959592758523290678047877500189762199541919810932750863791496792496332101205370855291410926472368885212934130095334880218494400071776254197356325383412886727001882324516347243571255216367067183748568077727717344939401222401399679501175553957065670971481498530156081311517119275081754568716890033621545169010306662229469560029230547828555145449799670744005981143763184819227029773523911735608628726394174358347839332944320903919948227578485997053867612285777417836204660439693782127852707648936382999067464439685217759041219455797438562826392498441960661758438845365452953778953060758918460423189645495134605126864953988676076691247784416605029561136122042552488547388280580977116972853145343778226182007785502035953688112550068163051646107672815724277819864042581140193358268458949133903407176623788483240889732041742957271050013707074575467831671227202420165322557421531918282460034342219023386496638200833397436737614393087222692097860481503843789954016939100354808655644830553055689551250555049199807584567890122500667932753522194872995062567715020271142978469429848714360506163226750609520288456951852398757678262497600844556873032480158599153813909089081615950759476551979343589160634621723459917844964133216129214411996124987376139973858894580171803395418865133465373805739658454938370556415702233438821183762247603999417499424359250381884740520338157943867904920233684676573137328977151201180735844257156593662575255438686224452316799739445730558256667802206754654776525189492131251660739420953300520159834293837400890693996928383044031288622288914323994294398486755728432494653820771424853297030602454845579963882407244836549870498182349944152212316229677440459225916055803554692311600181199807943564124023739176217787887888426418043989964639017018126607289699361929230000167165710746326134686751213537857053540437877939418059444695643051578497397575203863849928437547614936005879258559557505795462129998152206824987686661981417045470194697432147632600496494091395820393056334735861687022902805114975073992433551841841226910324984707285133372325957081234571655017141490018119984456090063234929444560503550207481484176491171165145206746236093263980745658563773162150498755940509829526634037212132595936931974762489236123541668773406682242716235921506720432051787857367302635169952962481813217401455875432164085525111527551973231261634123077718492752472206764670279149426819054013406533482646878323475377355487208768256733337339720492872892986926040635351442292527219868482888070546135970485051691261059693679233511371913569477439567177843313416956546165817582128871476271874331993982168356474461820592730650648460646260470781807617001388510918323124055294270444960980368526387056402981593292641043469897616982511246812427090238302014217617327522687614727181328335565287877016867488276087512882403017394323438418532868477247668003603923231756451381022576885437910027559342074876367417628641152126528508019495158248042782066468189837141436736461772029248872598711125754593519596978932028478070883457869338032307343086051881955526971433182047492445685073006114875528862615808378614664059183889867212003224346743580409949723363032013097291485473495988056326822983511791991111360117909317572559247330110395960147351510779596733773725261546801862132917223223960266458808316524322586606069542283596247998590853155341856622458791839106313028532832494392138827764306790065889633805370849741660287053824274213015773184834682614225121811765010710087678463833526411722591258596910347209352075927881433687081384479997887382598890722112906858459959297359875115564429582645494044502806885328932706480495893898320699404633104437726209915659103228425659586295227371159974495202348323149905504483066131336157638738580796125005020585643066831004764471239938577682779207754551141676556284030754702207004247181477624541302516284673997536064162959533866900450564911780325381033551491902294775707216658305977720858140325733857147060267442293833555916169658580337327973048422073997712698848279591076118136688701564934349439914954174623285919136002239307517458082803360653049178048775686783901682841532912868151552930910803904848136330931843614424050546244079784446169202956971157403892992274405448371702183597720119461789213886522093375479208498268325819129221959622228062983026385905805194625838571283834716231604644011384134305364454281277199876523040723376392700425707008539478282464227625065017697268884226150013439053570629434441633236208634985338966434417793337109352076977088299046170313634392188728655910178111430223513600333839322724025913359294813246255283287952456051034831289134969385619996805976266017199815925796410297971655856739876348949158909926629130223602350277431165296877154471772457616793302533212163917137314294030379658873824338596480434441338274005023049044870028592992753804455940157388749609444127253014490613042440748124669783230836026562872945571415388653939823492029598840758221140611741457095983289016566300765294725631112208982278276929296068673304117651887940656387821578914279539931122372046582763631922208932467638104437180193562208593288259096200463263581053331651618013550639654700267664780116092640043715362487740994512287232874302523739571795008149458375406128864397109934960048737596870340544216740369413922934219249088015938503470349302574318766813982951096014107851334369542632793726074136382002674316391527981129816169945803759426284031397635503802161643481738188425557343039789693862795878465297477203895396482941099194302731856199171712193896830960969215117425348144108896477647787398220670841135856533785002186242176424205976967973856940295334233034581278602446599124073957770955936946124168777975622492770163722633783356465829404348734339640309685651464627962386617359788843327157240695714900325385213607012889311848782923075982207534590326509656551312160798492721501441078388970186942065711029251417525146754107172919038513182315637969954337602796461122770503237111273723123172553907689273831641853513050629584154756036656615072532286330911437055821243766455752957159140769682860758805148189556055916456544223469264803480713502401135037786221157837514941006650837650490291729490242388677523553300068314769513610608933839407225565934690771534713665665427863955295220823083502729436960993729803497418204515541678221996552597241464677830431725964540474305605566545149024145978321617300863533922173241520694078097314980863720923486178300629576011862620792320460121777899765710332243746499708001527328248631809954122914964412788283003461572270538464742956671715821417278409739651841749853109890994783844184711024122958599150123284888382420696171332186035665236588003562704030525054198935167420374344266184458015203740065387378241012745543855454918184597928154837144568221250114816718107829741606665161627819289936333436981555215057778565332392207121259967066009900196253808325439493427940510847346635507836269347523460042497502391935908253939848695067608014002494919742004492632056268903875012844363531860518822050786883703705246631404658635482458459705004520599149601839219954981310691310418933334817064410883904459302128262616476857030066146449400291214319839119064316670960872329632361522937856178017856929281829599391154961395021944078902064802517778134254700828624025981334569415518606368427789826819660359981715735553665266977251458248391481084110871080818274359971973102724176431504756969362551435507343849009189582722381579093589306632165913737290413486058539462194681773501001701401687331825442188621467701362308628146733217328113678494487991046561907625799705905372116014950071281681213064614392318102321149304608054740094188297527398495587599103929705400958767247627535797382587818148996663776779316533020294065724257133259107596917805227496437669079596915236425770203180131020271163260779679387202237886116247552249916203716660734688255618362808130944342526541824152469776957247446878399604145407579826954390508640636398923432638916387687494735065842999462073273764610446529409686797712647803099101230331667933666547840047854512303078423568919030173189832411973376500902096654859123957003240023387399320622902443862368771401755097610255532587824895878291808421336156752157095908334859480268256954671917729922943136131646857818698768418532764517769864101313430239610522620077677609917734101354904983327053079710512335889241110126898822318529716883262163388384310924509961991964389557803277527559853905150725356236811905937915775542525321637791970616037682463768171241396448356470882545819173686758977390197397163265567073349613657626947385698966599890450912155502080525859114037452007240986348026121931548973935170695297350909036779257658626308411788426516555125037373227584113035544980589816126282530079470361922788243176458247609223091218612779382260061387019110469812066845199950872777190805363500253285294776996334386955939883616851524958353274557126875753945604980265330132002982052085485650719464813396703681501509852204842448301206602788236734037155923229229889104022368719956925913935457786194063420391167593879247872021601650580177577412302538507275138068587826821446426434033803833320846386581605402026584632235077140387398674309390438950139739294872318109454345579499191354209800589236555053858062865186129124149086718992249531830478275329247146337524496992328306317499661377619624876065559373358675960808381838183046233640891902799951091170860898404772038345549372654249832018247511513673808253304578292267399415217136319966888592831349389984819206005559755238568518156104330102364736783790385309855801012923647380262484883495206119600729472145012286881241397126541513250028701187549014717867236231492206605132029037642651605194698674419951461588354992232573487626495819715094520361137241683596227036974554257070757715122485438040458521336461677229929214531079194772540294376797757811134439740888989217195609589432656726009628288764239994121985198588155015904847480277859387790672882730203821269614439090428783066006603204867190778645798253859053889059945231123964254705058430439810294774159887459776805677840947427835491668916735528763863483082883927936187189078110818661311338479032316271073684012249666168929950480806839831091399185711460576095014468321460719286401811792861291980302158667212959815951289350622449421882305149566139743449254600468427920163308868514445763093276491103687022304882291343120715156838958323148358887213921098044362782308028834280766688792521852161394499996091978573967908506926519753375428029623461813522270221833798384572811752780671541777653557367784298155027716527139491351366177090025012535191681523916669935168264456594468310471363184147009985476640546028041500751069416702555266262278223471341945518777733370284227914196475153111371121863015612200689783327889058123554605626236710046240178026813054990228746760832942111403343232763363105024270305237015917120872659637524470183002214020565192475249333620635009875131032345731202861104441819409750630048481267737139094417653732912468155333202725615904595328929483344786234744380729341164000111067225094758783781465179785205766913552707350044657993381484649378710491193857356691187825937575149993410902234090754357730832639446107850029753457624107632642812967765722306372525636316656117492036261872178195466594181502984277092687536926597551928453328670820426591101038071556628543006345713664224941275047084292378145349436826012188616285766985834835962711867340404209729494966657361123635268609255050021439796908610769364760720774785481133628893856472046439303863090384242621784496791551697539277632134446607727840807843335268946533771572678835528726300888478027805293436273893001194762206870675339353200669704992885744778662553402938891959089215705654959404300420934894542831976491287060322093604389134077058389387558979224292798370586640149363382391321237867992404656337806127455239277910750837789047709810663254966884773719377721184913823971308061057928883485398833474956240280177365915966732658813729070767044784906524283489560372804152522512415731483949497049973786936202821081778869527383839444448227558202238061601238837575321967809075233457004909342479354596394190458546476364816882231015033854359399172513358580733267790680644458981663132973854206110245482854191231551390822733663640453698417201853123937148338797031276022379467647082051967573704832527840758676854571555117110079436773537135708494689472902332822362419434923028552238014439747109582417081099388967558091882767494676054757937667129053456616025379602398432749696256887746972241739095059881963227021154276155216492924137847855049433630730787463992402584719254842204606669165814072239263145523852798167275243196562802315476360517048371732417518121506264719198821448862533003207506376320472652309325146752663392236408718754495861762918118962882460816544628655626022586020764483348160264567484234384830887131042204580580005077679274909322644882917040606673361991392878281187443529010722428939500191564427620968202507110196223903839659520727370126242603264843947331503916641447464934566541779139106978303457016180178469289185306637176943745583527718881330311390827222787611912456360466098309971169231734702994160220451837522271390069588582130259369956121854345016039783713598661445372777571075294420327966518126024400502671145599001829929962360752211906941730890033510745711149643789796458385572012872053087208268779862329130468881802276079897851706470610906167505071697826546319048015298071660927482120364146501860899578323277023379398620053947381964459945500925904663084899808763158015818803570839409055949846842167303735506150262285910885591115198444321686092872221252281790244046436461861071285849051524253106372785665355721037509602275061483429066756309349264218333494211680289881635069861414371863766340221746781443039837857800332998360565467835480010915296415174062614146086505861941143082143169314984933190574747138792432154373641182680761963714043941646805404109781911859407337452225285253154547327530037758108487385578286694277080760078200429851314607103863761360209154415304859197258309710093914729715238674522461793134135889540087872390921949010874595958317954497918566080370089837046949004446162404743793089612371758110928416707796452540839061415210976178529374822293970547454079493370839549858354907679031016181300265118985051373195557043356230543027930126027033052294633223161834610994363286840530507871556801350893609312285052574429907527370563317613421742187276133534454101507037888575068629103643622892927631641324956074563176444686154832876087512966544722550014602931679313350684187981428897235148536564329363598603418597220446834620954333234503426464623663418965537544636114211482897466315692917916220136664498182757256561178644392451412427342394597814042353228707109862455736620261987739752096419677575882304899679878687282485638950818563474460133086772714761380983071785017969680209742723134456455042001954835628621332857599826652830088564236844913366621524287346900227867498115265695159372309623109238513714374990553253289031376060913280298988056161791619381109426774239490152186673350150389385123394821361406668104525751801313853766663110128070616311759090960314051473317573971476167274519818248565622728613239699932996304971418065042108439092294947915174745168226961999316064975693559479605505901939550584837675591623061056525777313801336583125571293326837638429692129831622812698000329071223859684599303236951081272061839926322579173209111659723428440553006153915046182995642675939013201124208771247260434276501755874772523897262776850055679149681859072742073999459363976121375083847591843720416232944604269854038250751563683515128128943644875642275127806371002715713941304505262807669941074486130974897032929822668944047714641937185601958485501844427109952771478368926220197573634329645841416964021705996374197106495312968496213895753520637300821782168426769789421219562787641280582849313796779257663309880783866612902989539036103602620261400738392686581743587173689032270119010650003052450754188006543573790146534438919998455059387683431485656962134732964327954777033975803870413587702193199442627974027285206859106381818633901722055843892198312030222544508461470942658165077089372996817100912599254702921484029734970111731335538473980788721715237107084989169297543149729841984984250282875250622299061216861852452256171000101327949558346095591120843162101485241945827806814439492278869949379352404291511795604660109651111468146062320439842318953102590020873099473680578346309762338115785307165450698708593284678384359190226856734967778922067749854098621528779660684756732640281881211685449314016930066772452868712588554247606351179077310491696263612365893175693360446993772744873621900893923434895033208445294117798549706325995775493735150287503609251508698206237695666429291350816277672557510987740083515959824854734934320346899862505054228660381477077155981323736018778280930436039844754344818087216827888151955358613535949511336105271065095155204990785843529273900937667773899965994084547652894531864916021671157058411614642112895393239107828209079503692719271440016208972971230777074833667277833595810404689730808303641680338033758204704017702151737248816405060353436231249761473452917573558694834868423418188166270101780795616297773412843532452879479438293197877759089497484151543760923247795865057603527564426188997609440420893548339970618285129020090275319227395250628891955111141692110664405515066423021342630889789875355903805001863625891847622493110028495364578490784154839299187365222038854697707459552091312362207975153904725094332919097787249584546451590350669007257848410990406830817655202383305970427045361013347933485143621500529623753072682163688879428440451902340015021862623267393285130056150078690173739470750775051903185852805846997824314508532795039000352051807735920735928746622705347606421927561143343581639388644909683072470596598924734638539386547827236869910571643366243757390589931607592056454521451586745864412581867933168729683276097939810444895733765223420624707808055605982309576885257998281556524299255112922783642924570707932990014312635489233414189201443695519729319876423197041021396651024954876899993307392846238917353802595278736307316293726187369774930607478887345943800546610785668239474033104620825785256954266923508963939822547131528355271225809153346551288353642651817363410594900140156533513161499602431990306373293587080907858943977199526949287558544596218496811060346968097897073959269694171096405385155404492478581401145504464601236864890339699289069598632035655817831342366208663181868327527794131687338942729562135137793111840652362691582070493367822713704388845470968815076857730068152406780982749784534201042100356240737786844329156084606399048445564794142740491064700318744997573139421704568728811597814317127829837572982696906578709728222868347690648745783650509221408185070990258014457613211749188515707707104783593099760420906590221045364719286549337768496868477299459135632464868791920183561494334349418106206743711737331240263021510837658913006076939294646669391627524204129580909760201418346770986866088342606768348027120331892241055054949054360582499853625605551288780454881892148982848886271382194812883862856829656231826697809457518022176078623824092542103819903588026965026269912059409442215761060399819409069660088290126266899409462101338047502783048585420623638010759735393525677950981050226421657294036959898608895813636334252943264304054674596741271376674477076210143003492483817114810372022265746474786316019944270760633904750410215321387626327571032146917386507075717852437718536441068404550937454007533507952065421669473015191605869093278904251348433359471177737546450163135614182521717976739298169616568103107342856438782303675882702632199165115683411869828955474123260797850781636946401013715445469313412073553356665223166185074367967550462234688363263628537754921326716459847740545417127893752461896295110221078918986907052843148838782679775677351385020923715062743217332117326045286470004571547184360792673831249573026878725647272673517453709962821577116864611671484299576319950146686582109933221100226078186246079167462686046967509491713668266879316700229935324690920192950458951501491296417214010571446805858894984856058009319832596642728270350364097253080144176109070744659817017007650430234113179426412685447338651922123226508287890744331133177060833967092530334923916946372310294970313619190913129122720794167125889910456138661750458442202402117704237860351337287213745459361692318641102726561988066148591224511641907035293766945981299549799363497290890838004054118282303029167851894233420127345599463789406522988054160567080337551394168862659827097386656152649167650001276255448620701741979985066536538480240923387063849448725934967657950821184951271762309248557897624423890769127014298764687341579678891453616256877912790772422015289684820352220292250746808058167862084738619655900330091637186145922718180736842143891008915302735302911102497217528646561836568260740437534059014253391266725848824253630390887465979179144239569830583073020373967338259153423634356791661725215527926145112302939599247074451691194695639182885198814990776009664801243993816583366311938915354609171143667941190043886709035816621557039246882711205335245181866600085085896618288648519146915907726410219629128027228546937076421711414624725219679677627519593934081656738230351251640341793709884223784046767541269348485544306038125855743181321819865417444247286432538916251807498671235240245913307147164199494577983821622511214016053307308895976036222260916149730594018030856786499181327881023509719223239593488731306791090340278811265384092787812919603442917887698414300625192121529727043067338618506407531549131659528802372482651284925048692655492529187318405516816302703058849520173145402479477732472238353847233300181826435280010173633248507376453343008574556244729739321094371256447697573629846356852178485065076273510790854380842841483127156679998714531537786288536837604789275485364682141606184957812260574622479837318242877856263452749738864973833847545526794566766083688899529200615324698068045217941119247688870131524049042085079906435947203946989609342414720787996904866522980007748968754522124897010171573930822102571680994892233896644155911712587960611551090537152738849258028237892056321962005669430828308194533010154009008435995964157564304681379507024676199674233279256859567190059390887545254519425864547597525156259126085659729572351986814004378372527622835699050873125870688125992707409066897184922945539873318608344762472720275924779406222899315102222424835645158174054127127338533992404769451195250052537623164314515029694438633981019750819683662278854347438496388907105681136923271406594136721721239817608386686780799866652254073278891130963438286764667362177067311431976847337729343832638900447816524215897548313236725511608716693496076501571093509137237950851455266745379977919609958713197160573576230476710794655504009675010833861676725225654787568459978156360209282561263434300244671483714197470103889975670700150219401202986373034093849093040697057149544445315347419255027985652331325706530714963122966721758276407184884503422463260228326267039743144514219877372969365877492382551143739459143220291235635914272962256559293957554224272371799766744837206243143018079509672122136653030051278638724199590343628221516100805568536509813595231262983069605346830946102918199795795403308178623293863612642778429315523465920699514536536934913602561604818516530794970117375279389918899525471059129936086309833305216639152059101398942716987102005613904918428996350488200959549775825093104410414337335941916635744745248917583974833588070128539292932932233753759085910307423846456419412446656373739861632425024600097805620769157579769209928621941768407685053123162639702559599907283223255917277123604281316133812968494225267370735605084121324370421371529603322346572822407398215285552962740755931063753533452309065309016001462552788637790807978920192793258120197417996173498960516952153200350649347389079953808708928613416438065504684878253751302647648363376413649086436429928654686767192088959361005145080610659049533424929869443343860817685289339630713949412842839621363536819957945513103505151454053832710521192916108635778738745951327040527101208808236178383956138224821411778168706931396827660794953818738323309500311091793683564693507713943429120592443116187869855450460223981340045442670724714708031288005926346089499687606584067277090518958472390004660716634958815416642203789037250118379695773089970473242750400250031404303523075425577007169574272498981773767867626484965713810369916740169877134108474649463955065496982662345125615908976620955263055447744450292031324515304987487129702489097402372621825834174561000225745703818183199507369827408295834352120964416965545029242033580443593684764836819950611115050701187665401832430256754865184863876961546042703503692809601979515786183179844434628796148763425907089131767616180163417601411353442745506539273276937684974052551945724161040809153926024789419223861622784866527090623323896961401059038119074606109681255352872143482058325426378817517872769871574724041098489189308994662025815020893752851172400932571038907054284028158408769682551878731692897720280437627776939916959894466876019861725484408216314423102215426218477725703534136571408526187835920656721823201087517979578697682956502819802476224727531971771244877303957471808138535785896633570182890759649822438663178731976153144766530147418201416321952501855469473287319096456947485437316161149217686736845696363013540513866805859839021119074383273305302401989395661479442395735968428226441784964026774289655885865740836991024012031364432706315546746570100882810202828943916992299563887036938474522481924728580207560579961275853473631750118230571801252830282696073836051676639441255652760284819036029716778808707636689157457684041414331930265530921108678890011118285657263630004530563714606497008256261149028261392928580648242739586345721213641100085804165829789509685937408466067486256094569488671436898467903288319701564336417379581316256945459762159463146545296423024865286447461143249506052799270702399113582056037029733059182880607230567377560457850899551112955001680477583002475615307897984584327137754372951136661569218167999732513812429633902757834064366575356351202675889795100941456385315613238137057702252568182230638647871133398977700071729269159362819200987146662452300817083033861124038824377400441660269052249115271073309213983186409477081409727416853641801150690657306806591691173700113652274131233024339396207852642233937346704081190359830863955260993339318599585459200597407208654480757245826700487367524069497858310230531250394685766356189473894373603148690347234132475660534726918390995416394042985197030620006979114462317812269569704780915183107953432124218017903461243491827322377112999498337175758680350366730714973440663268051759200055102264198944091452057881065863039758000767885092717443862552187078156522720389329425494110640926647479334045090429372407296995328913104047574328593824389399077346439217464059990488373273971908689849723206637039015708561487694191476916130538749004990331139693795235472882816755143719193600024940269345547469223605077158675005979724255312890599683528012088181097244643117915906514756628922026454832878498527234853214891262989377002490471323496546414924154137192190656144449219606809774356811394315171387995160537145576599689171946506594091721544813515559817414482145353834182160462251285921991889538930658334701279734491766196408691736836122939510207280004542740374037308110414553981271530353849082121170547849076128948662334660197234961015018075287728709353285318421417041109647552016181500520182524192056473712470933261326433990781914286262432925653401017491145222976380660129561809651091750008730561336585202158510317926523755246275817451525195003329611968219923797468023357877305806498032482055839167057765245290156992529291692686804723289082831377606946390920151011620189992682704125604470631515483448703417310108655963273748550853945198262908514809002430398583695885764637029721173030822361890038051745978114822498748120718372173437177870583588774015601969642330095296787128176943067541116337025953426368524547355410781517958608841274402369020614622601336046957381334826593092731813844880168768160642093004873196921116278016557656698737780918572849384764922413696704589774173071225796375482122691299115531824695886689857026082809475392791043507450843930226779834836324543282180042987364644554444272795898261577582476799923861050580618858825856588555029207199293523557207817833180564863313651002618649702946742078888676140674311507426048314687695682512833475482691339913934726208648908192629898012951352294765505432717051252865880050211207654129771773731672689139526414338786394279873482876785638782765604589423183199769325741671761928713024700893780322486223884231099683914019635686649048893385006430424262259796971305206949797376030153076111328253791118131580216193298375630833544621467243711340671395981154568009744931289340379022270801148855290249571563107772887140452215673230222574048776907615813538943066244134931093134833499467743315458708382816890161574990023875787807847979279778750454698662444480117444586876689528029995550726909840980024680683753259293635540289652660419349685506315367109731968636835599632280671617016702843033558839322435622922433342269480783029615094483317401313518819221287565981188580754273714136450537073928486063266467223694614083284464328220573898121552167949015390373746077615835615939287693794499906863046313235171924721400290423250008603471932392774114112281788988008899018176174709299289112119884793427543438219115120219179127433146329621484752726298395005951045728393019491933782825781668885998826334386055998552064720778105362999418388655776107216728868018906035485679146230581130304514888052920145702978907137040739439217237196467957928162506484943285809313543307661925871613604639640256914776782856688993454305556909965349507366716185101686942743560561261415305707821575265105299206644840601092673620303465438306376728750383784627200151196058555547858032145490071189022532845779212702664220512046529477950002937816197114757504259521361797400058896313378997734780231327786765435717376113412592714320339102471986777062252621501483729935670175490377619392852183025679708356167432260957327741165097757630353688290473721316286940667938426943904233757625685467767792471755601919577453370559076032718209482029895619815190078889818167457219562365737426713085958423555567047844110105884049310724937011038649024113390315462858958907683887566155556034517303352657216492182784567164694759567331751078369851485442469949545367829700203894291278359866062729849294779427753039498974764505975900698852821346326991835329381250679879549147698661584659851081755968870033463180612584268483385100050135230197803242447199299292683006025728361866959108467200159023538976447649073024291720416257574247197316966783847692969660070682181145012548974457367883538390349552565337249732288181937771235221718858169716372909552333042249201419268392280385104347477534057083433989430805940826951607560055379116402416098924869323807694270925102737856583528768710628173429319658659009252445988758446092617762950312307904554443895940834731407877034525946775074500945347766060496032760976460150388315700364392767489998544361259183264448636535323837830605665177373873686767518786330242091868505445650733766907660898001973861344715866552172775582139593658924908903216729482551303411869405213492797151436101523522242435976684080541803052591069035269405051091505494936449729924988891442324314075132876640344687025711850018303975966933878154461567429714457215882951368405201692608862339403365438774395277200143860137907717037182344410157067065678896084560937427418052336535677594340501853826084557701958250371267244568877140551823649474338594357924630271507275639985938990412597163878720845357381905819014891987387122353114729180601534844190214901142800974008075322755778906148586914874393107211493999910468921230291746563286040639304303286052799612127005457345673956586418990282177370355023040553068669401072138796997906089189693516642104870472774326977649755711372071595246194459319100527071214691554721571598378998434822998301676522264038659701858945519808889210933512540088204538964937737571049077147667526550900179513690290742633651843083952133869825322711470127564978756995620556737752678262875317033586989125292178780645741646122389571291416373667401335096926545642454916523348789938585053460322658762225916004020933890460487075087329765831049295321497385704184261357593253120428780381124024266025443129426133286137278428775159706995164256618308222882869686137491066541166735827316237776159266742704218013021165503352458167050738239089379424479043590421542764656255051231240843961658003620149457208800162307531555547650676231167065194023844135676234067694140276017828539605572948420093839134985085927916905659119969493753119076631727759495554639187327448983887828390055693463871065150695968198633852784479488682411541799947221731563339276488558062325593171685558043446968983676085811749030021870419265431966762641928784786108591590954094527282511426516958491695295170400368961052060777539049585353585862542267725230998824916909239744922163668346826897968696591466275658054248101204141425462031502224489766598307641105177866949662246534555288885692979926923908536571575545990643901600974529633190917976926617782412723346986049310277224283104743553964063643759993009592626723667150036803899159738743326875360397297561397834358523580230576225411942965364943497752737017588928864594224485671514790877579232175466506755825750797441350123598622839249751263141938563919125688842414346792086697684995154484036572118565718597205750791797708065822354066261101682392114700675033782554192986519434313220290338012544628981326842009516922374709729513701291703839971428541118021112831299784619100124442620851658232825367406684162144350873962304057133104565804256237079770459657470031309717295441974408129765489707534472410617846956468673857138800326715289823913129005951088349193119022540963843404104925335112045558915973260751972103070793163790592765654961033006841558958222069867656394733890811368106414167432403794834773658147760904544154139199344375758475275399340336132362476246081376648733609883070594337887041024587963142186293123190462289911763946412017360383918591855283791825290351596802246570771990164645990142496971164140475745423314268311435608817415713394062886589350951971825006983804095029751840111230891868522483669762664539330281480944736075820701712680916390260649132273265411703123072088216284756117468767658926552645953486653420852621669605549619603358426107693426482869211068767484707197344908277490781056346754049283839029458053682877198846699045018071591822839683110520425376565210153750787088800351815601270296423507829373220766652073932364316385463769206761881267000863858598036484400010545105170906028365153370961106114613461624735021556977050341524894373045578000866859567790153387661848958242136798626929960409409702352721258601359671967508934386249685850647307592875998263709890493600265182311594423631161589822052898348020757353562306415822924373080235500098564268757858118400063592204751035762906698888787944855769842698769883943712150060996500205482731657092822710772976911649363243109358537280959528194443484609710027900288671369935586835654851623499748617682794466944205064422858098724422146340412465432824425837313131678578041670890018643263760820110015623869813999714769950155964544033694463948343207706479468041587163905452475237356407980683798423379578882382076529571607959212597466566458742383468534703349239979673684563853427947679037585442719442464340225655962620263989258638277255118210434382852455850155876014752407775391218395202749903136673036693572523369420259320690864310173428918989025384906570377692122980685079138179014496346124859946007244709045261255743775538237046515342621626376473152420573019761596795764414612589225902641775983467278156168298524284874626699162510776364535129358339180960558192928835794991965329108128306746385930363989472571578318428063518420700477039626465197080177198408884865191135107961338274330729641889509078454561925940749352031616071243400887025687090019866431400729647784612453166235028014925885271978193290133670561923642844930120522096879396809084969278066411119489175154915295799894874777599070074053109904953348267417205360772387539663518218715801747190983636362110340936425905437644506440339911353384195847536911826971938853012344245902860743956580068116877597645661384229698940980688033312083930269791839529814125882670773804455666318605796951083234329964443489194823985153437186003387622242885470238882540576641681309498987031088979746893319918397385388256819483629979004835842185545422301355660200462387979524353385881973515389945912158882220568880488782693015579835345963858600682244925328368174598861986822990274480525554756285818064993961501277800345685070393062165110736155766913023582670683804337572088638499009653830847837664788350634225915598945396403319945393679959887592064138083781739748284252470233102101347885409408859036212970305993289717624521268117657133917447921031393395095447566617925174628986124350968763820291567146805556753151861264897389712219806271391586441370697738946370314083801728196523683736989708852049166925524588800439989496341476528297069043465968516815818091802082915936545188163621537892040074757037747849441459475318243873491836249913476726100267435524752448084097032573634089293071521504052084990981703518757422859710210312179368941389463557096670151799388956824866919867399277818580881616957854810896714281339108060503792560421436883052960914159398094611330834962026763550913705773981673253904947061579623900426579459614309326146609293202491697867482218929022336844422905748487863697341912678316784824116759210647030190978131753129935356285905531899448378457454535052569551930523487784233882096666466256162902367431261778829124329290926480178084009806865897197283533544279377209798176253313040744970219875890348285516227988382756518127689754303963719671153423411941728576673512235688777717615160423362425615173193852550489730729970224648440582812992791957605259094924493445746431839065158115853153333218467340783582199986496632473085684455908130267730174826868006075393423926044562617590466396808744682871577812738201801931333283736847365449636507592512956369861223382460301238592492264894727164455084214606009963846025211581419428337707757073299330494799702057196050839805738833691758504098641456547586325828101314356201677821913822135198005528273925254617243467425960358458027208681904575294222569111761569388133647197562054866749438681914458764239530578141895374729525439288168171744508142054569191018392254787193503738933288195409600129258717086876853377289627421148135899699871241041655958033381339937048280059944207388927714570670715951021149469575817602870779813039538950949993007235491264448007978992759632250399658553115339920169075729794269997631734667463459548320444805393248054203436702210592042929752053061254845674903482961186517879165457663231330919377682453862024289038902531633394735910609958248244590183499207099608219224459471160036224175426327718580877950834412195743844116131328502444148437573113723379978739166943501040306544321471214336177400563208198353130549914536268610460200880916317317397120827364707760502122370007349660952531455947413442819140248240770820143647678693759535609786360182999580512934409147531367086079175697169211261991470723218273240227667257405445230262306886652930831139436688076366173856989397050176769363278092683632321213421994910314248900164905299963280196962638388444584151746099497395611289850845068547673207294060037808337059142083207393999571239893811999406558014900306304565926949939578478070676796957511061400116166892538304141749837014425851132131139003273428580129933498845930454871004085618440875588819035864360794257234634035960182548909806816741150379555296155743636646092909196841002343333282738068747902446168296331028289214206751961423988505383413412884109608419953455170477257127583902023699523991711652489797478035133428336918980941607780027766892288970020883947084070166310858230261287998698105579571480892126814568520395302251019228700861447809330294772924993077157058879608738447166848432541355511105152209496591056831471698660181407177026643826962914440527448254985998029491798542261538106124019234673514826542846238885165844697526706036852502685244439954957803978057229987321644025764834165633610933694293821785413433846163831827281273743066974566823645355595937298331849137475587091330722871217310876092043054656902816116380981364683188308178286637854661447519807675919814962883606111011431132884301500926967905456195938252548310643349893451622539294514819515040587882481031682587474406526263080537669232848360682728621722373321579928170358871596077144733794273711129669556709613650338488889184650754227098920287369965784004669001643894416084857296990716849555003891667330567694194918012530769637030242930245424198671821511215653118245373671960975204857358872148675832866538927436938537746478485722620301900760416242602983913966857261927212946409668693040007350687610284395769686963915305969232336146297597855497555606159927290550751687047905309680083984499404961673801906041659069181217987293154615968788295296246687995921506431139145942174862294388955073024204275989589189052314534855916527488384456627025549956837034631720226797982437956688938852837811653724659195661376286292265087631614181540842117533906951581503886752531525345907848596456497253631888170700229089221978290734991354636729420897985243389041715993342081860847469546105754292364126610400075371498610241865365085903709369290564110369730864697618901160815102217919084651584618801458351729125003414774424421794013244826017984583196018131748636728944661116491733457654725875144102506553401605084447501610870931003110436893753118739820183984433396019698707735603169488855418000086385387840015398665018840859321932483978989613635150495328746096383917062225779639037250993174513820338092763029234426786708069098599172740930044976502475589463995010952469753908587886561772488123271040360580828409010512600537026257937663206065028752590315234648478838449131646446305644905510336274954521664186889881694810055478360896385587373351957240488196083165978155635419871804444478312266699007849195626535574684370091508098612962007317449069226082326793015754114562921141669456606207427736563591773327375843822640886425463448618109034585014955400340831931431593524589644316647208706076080142118559406102277771882524686836688539532873808711146293418305201273653447295505419233398409633563317447342389617758057407727398775379691135068858492966100197337335633843749465211380337355739548127068222220684262192497250904334309907465177344011218157194612512279248292133488130114129593610942623593076211620380706671088711479636143983392504307316616697085585329746496816798577825245829066986182398708194354296879010033669839004038849076943733680646985948872303295629529959677413925967445336847652294944007424448930251550562076802038840581720829189007654272492132641369844109575623634459802158226442825648197412164257925318627272611072960923152402425252923006014687998270114478610530499327608018003635086347578172209994806659975886661657112504758201075110665323053116063829512938720471676804634598653780302269594798893583078382865505178168498470937262089687001168254144965784687461679479493992477746688130115339660055548656690007983478216913417117295778951904586753035646689585567418499323980752181202210308790734887484426717251544698635587961888323823668147932544848470253731329875421106643370373531915799356192205371508061156913953228337034060204946669576574397117186682359017501874942623653739965422634400755187484961331342757913916362856092001171960503229978939772929502633399121166696396724230967518182659529453086485576850994384524018182506364595122840321030376635123723068610555957284928764569293466163015462387492679642012110187961554096708563882202927118138997090603714957988329531408963462890636324253053799916457195484921402058437661217960992358503711547642928297222921981878777145644031744261091538992101492020159745758421059551675658368378161670162813879901090246615511202866833232975443152183313702301122183918028659318149242262919392858002404967717436275611000400553130589794032142258627640788367691047588958610108626564637787340059363056409600669827924873991950000800637952324823200260632886265641224020362488540131916511200485231038973667251270588568517412595132393349840979168451801736605723211220734928226368440866139350829302927988393665936556425225200124832697161178347118223289637551925973173652074368645310383318030540892247436132172293427065083463236473198170625331192515961275383609205142901630690925211440814775859908552831017673387719211571096082517409417354209318022664704701939172376857769315140906909875668071749167479628098221006551860500819124968217493806586208191491919195022021061880071366291228052206029173622136662437645484130011679022117814250239223992913004494165659050114292534182228574679906286290759690112502908000438996324821677937530828125508967228314786846311460222896879870788322811196336435046557484978823632315154929367279391363701213085564869132490281082442734855520679036452693308338860082506549887362891109949141605377648723621422366137276613074789571104615224234247029328555640759490325997648285464678882893982591557421611887958758340180318627652339479280748211889035473337362322751682945538287595133101959461261452686168855148088410838837619557893535171237285911359324540010705704763094953818902080154853582773620605851227579695825859272186161754834880603011420086160188377186986428396611736702991178876423686470351744932123265286061861250166351299323573190567702679484065035194067434030523905418334111400303565247586928470069341725911500189722525002845820780530060849443245431064373445871235645722391428800730240031392479315347496575734552906985119373956478319200822608830540258616638708350521676013357818746538672414493640730589363338692757043980887458404311894444775833788215120713982522764824338906397548118792476499641519657365182326980792553979542963798407252784935870494801644452815264968197492222662463868818009761631189173547546512827039043279126956148126115493687871501567193669688271317844752511388688101932641920540515493680695536275004517227119852727885566930430988759519608465123701881747781463814008876536294604864119268294018114708372481978063391352620880705581071414961150670456661460232220232409331373317277063408298324914047660234176352148270397446120900690206639644444307730346465042379242368877586634675806301042669273307831644677046836491205025000521092397001712005031553291407779901569495372579157326987453541963535305124111246442710367567394294280385652506828646797319432127255066511491158669672803208331705894142549844408645210899831067753230975522936878407897819935445233022842310783431654075557375498167679491975475490287006839776499772361530319150057996156325333220197295149873462749201981536503876553881442763578094548955126239155195188974171480192697402396731877363086241212627038973714404642890509342307112702565239455610096301426613045217495212257508409321683160514160496047233854967359476307528180057881674291944250442863507950511214152112751082257515370866487476366627396585566089205411332564045857257628338584630113342667653657217884744936584420317523629636228785962960210749863384919778204096358627410951228398101343527845382590021257149712274199641692621950206521726145468865491536358736794952150178957879501907762807663981295307993530605069589080559707885668995948841215674325109373645776556364484237309721919097660174942606950667789917039041412025675526367558164473160447119574678992789100454506089308082333581973536240286758173264367729728926424030495382181260002181351431003837712121133896090956806757736340356710865969086898494522825601278375613771785514479124320561311647150381579778236463138166555929028004516414415449765232495181982208809569211508882220829525792868543099802731868708386508372522330201742391061353679021123340266337822767187037288198405805380267831468842689781291083633846079373618942656889569663657686780866155658316049458361242514726536861358608798394474732071912891186507761456237367897796469083976804590339468918248727348251059800386669952476493313609965342177125453406599736929900753691505310644124116898638879484175626973925624042885058851546166956182826094320306269601177806570168930787833153858712679332933711922647368643796093552258270329765655113559612122989378046923093612924265624636433227781779196159412033641396433982654196203229641804191849173436642718634965744235235480558056280609151809916904987077833219557738973505983992015708625647942599372325050499136931783937358534432407629945173691580377172991891765574908990001530080701527166475372843219594037230105009821979390702010735034544180256382369490698656816204210015220521130108512962685132936999104026367887339147610386272416368260607612097136989638917005096767993903564799823505657678755451297901102297977196494018501114701265580917062169067871113817892181310403341353156220364459370261436867682817660719644352024822063952289083403308681698586966125508968558546854162764720361100409695034141023919953542716715930286359050695584746656020672895850880878890371335113715887124951094059656525625739496556087149412821198896581969696388252290279186967135791718128951358467075457314087224720374315243452357186010178631301846814605781609563330650215923051265030310362159651819101369201492134830815398114413705935746424960141402326509050542082624392437782102122418535609560274712505455228296289464759767054725826914115037220838115340622791558556173006200710705215893006371762333487109455021418915656684725315584379654090006924668540608585451034140965290939405628398090900409002744650215396116945767214398928571543470227253143273762334502875095716690217686013471108433428409150688429841019622901229459547603186642985491090764367634002176983747065493378558337381063677954916515263020059266933607411514128279954615480636136118337835035287114778935327796923270534612064654356587063344108534553549160937516582347564045304142085808597428150036014969769087162693039154220043765913330125634199465804278770415778137092589680830954580007751063015807756216016225366976523798267180621093685412305319214597690869349307684553563141457215069116593107905652990486097340376988058944583240376475204735373180006212627022315521412043373046487901668558721763755939858450583712578602631542982535027026023676228426805405646539918260440532205811358560656116607382918452081520270829999916862787233468779990242354004316745322446552410688641368818719296145999381796828763972480596560143843153150782545170912048478484573333664837198778796791427797505287008056901556391411562820190620323311894656400968666789300463112121947014619225173253381059461942948980027073924709305648644857668661450804431817824355374473342945743004108529119945713031987414266998421768543614023413848393245589934711946278274015243029143442971614284462454473238923139191863958735014281584454762075283710871878970228976509699536730272566136312392241612562648897217561320455393263707463235211023835099180717351587247600777431830356698750869135717704727369000682382572447925334157174290189611439559442306673548551435321442169191048804511156339192591321165320227837357515905134520566093086539376326244178099849305481630242972063500572373823399188385630352011067225084691756691068069872067534805220067870551676180777336286700798261310130057762020446218192490521957362138143853826534890618833137740460714415831587633806148129476776859484879852421987467855387578905529093154801817115825308510824300507557537166509499662672457972476302343105996409391359028833755315410475725643745433478035405061304477955154286711261781653429490897751364855306116516320786480398887681182402538162043702038322376770333904177701804855392762093863613827943973578909296896533621290930191892449395661762527882161662721409593901166133462579657271643974397724926552927576499091911271211274149950745799417255274227889663089972681705486294096642830995461034884338832330746286853416077953184793221432580249739387140766497516537230155680404063208930688764906047123474528875839496073496919645323296438740280134993732313518157779815064711076757517031876827887555285390375386206472265527419233504712287349454621923360105689758671367805277701385554994187345844161278009884814991038828370066594562339620319950837374932325820681710593751138059464505082803145351913592801939784629135472494363048808272854927565437305257733620044116574526217616522976581211424726059842413827193329061197343472410056222187340285232668530393286517650303190079115792034000410221711370359298409370993064924918598401615347642974809538777040250875554245802482863432959888568894096641038661608627648274878081172956019131106115245259588110970074656181070820580934702449997503598286446953840596451971998177923246324468434773830204839213447690880119926809174159323252873503443713118353976200552675431155953339046255404955988767121079015495864646337126513249765274649913999678596961282934323840688763528910162659408617838774370292394106754354376471138689046150294498792628699549506956303000423545205331453505235265140893767848796503550292536551970906342397058512600812378021519822628448579333685726131226335752956120232947225449719676435691067951144044493718567901469457786215828539030086360902874213619318032280372252061858837518176042300092883393493841419874214152716565977347403679377815715118785084139430096143291611881118639106118182421025795442164650662886697908638526818906003114674894510907321533965299919756917020701244194970994085113939856510341963989845916546469865363879599496334808231627667841858939379649019821034355234012879609133991409722910418281509197549439230753816397751352473738169203706467389420257372770111546141380970683277299323647431990361634238611645104217462571773226103307429874349429599456885180394406402396070133402690036194617032245407950052929101819387480661856812151376144914418221566096197713745886340376085950089055261391785018473181374239626865261380697674573261114307477660556966518284572451011377582200455775046754329246787065944650356858565356232059230757410811908426524183742567624984583292688280563393439275132021126034565018063889483523109477648435510193561149927350880892895005687958276438997836665167920927298690673713536927702962085406514524304415667040064057800876483830621681139066234945517008049925063359492823612614873291945750603370534996739501617161254598676249537895827903663919523894875119349978369907849055406869232540868519723174967929230692855138237385555790559992137507342771538486539536511388952415876100107156353003375459112539987609565020753038674591751051211113212659541822471918099358473112716751785877111032699008491409675054971734856131159998819460359297791431112866888245834064967831932107743260200540368899913147797266581572912244019617682198104256226942055340031744905711820302605564638101954196369762177427798953683663612753860710992474077209541895057440044936429655763691925401508066466168817044606645908406710203288856923603281579355453745798385576430855819360268706590780657562543380971896656257829150366437791566600026056905179797580803100150334578336559717183748644577471286343751087540144361929775845852990657839578650532570509478738365763844677816360332150498401100988319627390510760147089641983651947454152739076782532905885430683140133176074954242296096529688604881833822586835915570378881044954944461489245391354045825396561534298721446541646323905432924682404813724319171619022191951803863882443323344763010026183766989569384453802563617398162179375273332823903169124232700246915707037763823317799988955840112063384608979152933053173975634977447746064571297381566651226266563500234840567247705985640459326963598152005358186634301706346401427838137571725230154399473276463590045721920457410169190082009267470578505881675978843399779579981879969054883671143422021021960606362660551117664718299616174763067725278166122790850327785007053225406985660653650243773453371438027281003362474598578190941920781169109936208994438994821072643119242777135806129282647458022862499941243424743999102945273805133194014984879417386923406624907459045710799900702071525014877105670012781083694204916219881228555546188013869242237199047418077402118072580753499473677330317264951418607817121996195507802624521291442651140858692195548367716881101522445144899603828055834388115241915967808523306824529776655326903727975721869021412715659511565071211226475201256168409258006351009747745092723567546132947376658424039673749771110880432270194923920784264870271931503954298508016840101450717099120217159632402952550394929027053874289763019962156369109159217925605606948343046272316229215378750766725216591468281022849033015406203996073921256447154313501409375778588016595859481315483516944914705554548917476712811088403502324341234119050648951043737407382580023569054895870330364971971230423578859106012106011104221184705442023032562740889126776445718474797797450749086352969090690423800027619071930517173299587942961147130338849208369674893176647680897802182613112245914540904784424492285054284081165159847578229028745699814340611139595711485710520519883161916392934719311346492477248194453882830345026418024685242016470704966540760418238611500114870660518891793668435662286824640166557933546715311998703451319450568061291238686422256693158796103924195253939634329421627336363200061275290653989624267503358408902921348238468448578879494600268886795448793296810634689219704229944648285159330599631993390971019242137580167482798907669700016017420581969818537793842213680188785517278330808667017344565676697027157727973818048616623508370451883670408222743233414780627001251973723829000841454429944080064359679182967834918420367521606580540434800852743012203471032308138711910521538158714441894791099298458116659547156761694599208030061019081524526532494734825791544671860581002919107832587014411065050507471410475992008268213513955190859097587554944351576732503732903939681664123742529396892888324892066771036489874946312137968140086417217606239200842787768857207190862328439154246643739666847593781727793150890710692256940938368066798063540556209779575696716740113135540362704452989739969356279459079452094970929413903947617850719753027077552427946668115459313767754314399306545708020351673794980299484765919154905410936633697021530553164138984628165552627838105572160046712745153291645330931474640612848315974537179925640876706644171486901964728295120949577803648564742485130254847457099834447986965434194829169529490719930381688874288592635924959621119588101955919675190786205149395583998172556412758253970678404253299377611374114726530061428578819577770446158551585589139969071508882185959482313670085363013725950052479308590684838602423175588514418006758722688188380669197143275772468478404785585719027491048629041468283966294612609333661400624384837124263262630850198400052782260371409818217180287592734263818039052961809450394870040349250080782845433912462057313420871312775542416393468248321036607618560239126417332769151031095589307492164136982253280621636231659232956851052936112835852706964215140617029778323188956344226251884529700975754799524224335588781115803143306770793713970473799913854058720601263720831771063184162093654233514616924309702529268890959593164014366696121196925156994427679925098514056427381163296198308388425883054767003350315377519714151044529356856826920935418750674134330597011614771576704656862861706664685375536073253693187843853298656085185834572082533741386281136716250106126052238456690288493935799162226435184016808212045280684623015691839726682899357312323228965841060531612848258883527919407618130500964860842055069693726933580736594577346576938034523403743863994161486342876102437118157757549524580765972200678230535089896240549468286372118390736177717738427198388769861633423665557781599589899286881096247048370081105531029343862620506075940157642128593166221937545876336717253072615152610123103118380539961831185529866766160088610885580226013615222925899453177715969138686087512522021377628754300433116106491729746473089227318827530742750877743308845559182729456885705696792849044726936497993851122443099621137786344424446108527775980771446070320962511144018670790229630460368400105716183752207455014113337425079232660233551755940223944096172772500473038214625650375578842712195958277283693411751266452349232416484706228722102965988206185712575590447605360542159614070370406290020047128658769699755999162466340497665445593823861635088635167794889833179457880581623764330447205722003156541616291099757070543331552423315434096483921221034874064514807401578969415077135942959850269738729766164670308853586184370894569352170934162673508600926555095525205362589268152539647505791323770077932204069458867931158259351199110675700843907190864745048124557159354311881723337344348378658587928977045239606010486130342168121527348369184632615860098139982530811641737685102549313387811139206070109413554213977208094063306833066850725282218345630455845185682832962755393829991218142324156073568798185069803106049903987318884095626123802726043677162951316705306124325464204998511687579090504545411160772982353647936062056956867743316887917697640560607456973125914903081281289089344277885792749659831204177101653133689512479345119182950635377209121050595301229827834335072272878997812574190817630549286444282156843652453923153516608046374542948589190242381835542299782597597085437244833948346593111031622771610407851343476338529770650843867582153740133954825787998037919706236781899185802685675210730256465341010664858445384240870079946076618670897589865089661821903422190313616098315293444050057870110479054620407835387901746703775566792082910159848216513092282441934093209050243582426435397357231984335940376961766227570680184856528629423583573076628872977416468220679662823827807779838420537524605338085499589765946864609979039987348975741673246599271571135992617780590921817089434678304312778464437088400020439493010312985330967510257461819245770476415923224272148723073673249158598908349750449656128450064894480332665726576515912272855314652965982454095782774579577705375861633807053574132998197942930158668637025266102257133119226099348240921340772235048700743201180676166802658028182783041031611497762955087911599612755840557216323016113230584857081544288196816753383934796802285148484658746504895078296473403048527340478044501842749655319211632618331465068065145742788325764174702108148254667586181752995728065994912794070166496703260381379226838714156291480107427324139730096974265802174812119885045369147425551772965962021918047599918608410552549272152304435739061602841790993992397843024504769821546347203533511786805683752199427771678685381404305199556890798297147720759174701340654256543177456390147956385079627569994837320716838796020227149615576804249824993298822076010087432694242296885357058847315772614996224381608862721315250644678639104832417472504118993749503495919412080749081366697793319067456505401455757285465869703051518794857140430285291953223633808398891773964349054940981069909786105911389567567061367325078742539437349658132603274420611897650931689512838450104242046123540207352458083494213852694505755513907832343165703802807425118425178849600126831493024123755313416319999769177090749953401757725686752377385849561702955058695083415863579330151995543350468673463334789479927052139429767512799427977971962542358531428954466103013329570807073833153495812781143689178062329480857707296000133983064147726676558384762657041606395469336096497252381684749268809815439274160140841990194645968090437470983811670036913607447039466627411814377907212815453078436203092401930630207161634322876452461172877421363903085552752732785405325442658707093241470732354780197044050166013358941386644541814236255051103288834242080558294407794474399903469458142926076298498238855293767225144164017882007490875787963085886019762350200206341289692201454498762042403051243853489678880815476280329979770597114066371581459426201629548772763436468505516000018429322781891589200065390928275272667742931715363389759567927660061462069163272900065892856816411053937624218829888386966513746614399100259674175413299463492633617691783883964630427540682913363883718416934150671169179744347653895671977271280357921718910445594607553875915230689622862624811512710463520400293491852550862284292161669749357274300107146274996536628938814792452357128226474499117102899075771103574192841113039562961411675251107011403336289842964955010049954691742304574444969978843936903290849007331105016348839543263545372315685122787818583008443110776176469453358399185126326163966358780013407544975667769830559893279073307812559599943095667287177094768673477957399924157475742094243907092970088631138473648102882046591504167577093340017515952444133037292627204416321119207899692335174101486385099662178375054379619034706156913440246219797745493556013281497840696414942712511249387180754361906081260985565085676392928936708783016150428810844955929748523295238038626792984440753474179106993871419503789766683781345887532909650656264311040870809226189562795485687225769137074065752866176183756406631069150500329603939862106303933906203166995128870002198939695635265291956411460411845483242714943092303614266233647746177243696360817715639996479106746280883067813403956232589335903565781436926336488880253743883822888355153514757660485418125205730538573556659386212301045538863719170893749532926873442150427412276965536881141655403748703947324211239832850060071765951082998890211471126024303572311888579348584936887241930881704976255870419601000194600952088049520310630660514359021350597380402072881356551227849292397336348752224869233357922463805713648853673720061400061925650889674812325814538252386194335873729494211744289861690384104860293664840305237724683914707120026085584605164775047250490042679893121321439399883550810733589110069729640639159445752568686852368228911349098181195124885753474720314495424760451997819849311348260448604870873928881468348864558841632139404006755174418109554530333437139085622735568252885437896945694067586354776569018501959221290971727906089323290973972449793270864488423882905659381605018367868854924121408544275573297802688697982176492073218932742100125457274356643940999645581899506834932468113910610176779262947124643213449161601916559388174472753635936775537175187931995423959521724641379914557015864738139099744276641961146625420426359711561215550851077423380522393287158174024114819178619912333228509423112005833073854239454982524125261400769988040683551714508136516628556350569649320424703028303097041480033646831627279270663432707302144721064690867533597842485811322607131819396732120997598723946249746279710652364904698833840120718699585752168473514031444827872819198801061625342456988759017983276834216292014198989173979927019807157756621065758986238466712887242352946531631204377295839308449661204172896229502589496375462207333845486213987546821659233897195042900816518384164825602705862083345359185673299406045483119255469297792035917407262700889940389068822285039587200628346154279689135163332591713288120373817465651471372173731801375408333367435288135888698574879332234098521045523585372705746281697095139957874205094007576460361872661525298467971731519190034284730168231897993429155741653699110015075023458226839673732498409583333340764202618933309863521998501953551705442667269231963246534096913956187546345619055059545769883740667182894119466256587094465475404601107299943515563670768716909709002633237534240708719196154640939546652278998056677843611242726533208095998218171240004134819104039460780142030800704655455521753270132706301869746592028906691364107219172052649512146115859200620281301343252228429265873142026341865839572603178011869504924061174041301101275053672420074703579689115823528338593753418256854749588200254573223642666495831000162314715257417054600365682386367699049067009888572504432713134309668749699193460270765424990277598878279758828332690546237079368748739406915433936679708505811539445643183896860548943271742178272685062475862297912414215888324933466992763140779591557975304663219440861135953365602736202717115243842682410007185458583420208059207910097691262585025929937318110743939299919109154037826958635553993530642450102298067152437801804821347153331228199477634948763198738732579575768229530292060186621718941259175167864268083208550905352146928584133888964282128698743551559703317058502749864453313350287743654069661405380804861209569886441899874671877181908198837661890736733977369678355699424707515404378486223521006902332357608405629933657428277396976058101808084773057873143660742606324954974776746040297388809882945045707473734662587811268064622211814163200603349637865118464496815155888246501714751908879007907916191980644206495156223921206940359686404419555053627621600378552215243005486874675412593342460882364461766912500795181061762084850757202237112499936992127244886524657000652691028438627512280698464336708320271225324193966640456220242760550981658857568141997096230454016191330375462913437878807358396763051463192852776835910189762622529966699906564752151137221480542834996437027407499932320227327369606700609407354607845688955752658078102426008573566930719269758251259422277447959986438108349943121211769900382140394743425497449530075723799787024679920622415129923513598862939438289004947639562776515793693534327298734820427678622193539391566567517643838012165455314813468292703126105053966736437328733975950864766497580994823657760990802402156923219582928747726975916262969978572505226117260721377327583652625196462409837987357612751660822540876490182190963632426382980542465885930286992707567879274642265445113438382305095651169168654193064056993456860066906375306813640816546444207698374682016894816846490578343738096503789461099073377207763743901146238100942031919853005580990751446920347074470987373052465925679809478599149409702238625661503436275004737959220581825295947780038422956756337601658492155664224688757396902813867990650424591937326804132634595672600425686916570235242595363607100315672562879935794695254510060763090726527241054542721779843869392244303177746226049892539000812507504927201815435355030170028552483750902726924620493765821201906562836522193185924687262469891194645385406904850741091373758203914822860696479676106974388390654933805924174583852885816512707309204203529222883129304899570881129487083519484483897339111648825399711514374353264276689030830515262646042363465695744668043902080428210979487910924862746096175675330908225740075988390097865712717060458063049551386347890684583108333921732571463915474569068970971414303879578002390829177384499888986041713787887488903101810324023610731636616068430048873157310149479854581503768265861975431885392766298517935932756537058263040355552383713564585088194083140695837874596090190589050483410894407090624665178142652801267721544101301202493359826298247448129938863954255274182104053963344035697593936403896284458047962334851804266022182350122887635039502489233492524126108602363204770129361112213523182372702806377863741312431015360369574496345062696123051655678846048557356089424367924942516730676842176837007908879247620645463165251297599538582393132483502919181015586239242846372166375409240427398423814936037593021010834220417343188340865435667322847741403308139117527455952566948339739407371154767849240424093055598475346340603848646387959120897588557391369399788192737521624552350203102674589976845885620556500909520460956298256167721250616442886066538230094675901793658559217356350031002600942124090704113306319983027559942948388233566661893881839909972940113526809660646191475641875466960471507426579385412538988099720364150863012162567999339460608163865273451098356092127568500521099341726935838500090457852895037629283765895019096056067453623060422346397799251354671520229044711023299586192048406065229482027811268351768823503389298983051393257381631353906151254355095305075296064347480626270400141506370759167021417453149646356046435698686311843863853620616905847924848990333651738883731024295183377472372421984789215892335523851488821792477573103934804360566127519746458207945079002658356219913772813242957196016992149725585421962072891289868999766081505181132864972401190202440641594963654476406444450382210417212156392544404164640628195732991120707142004423577840432779986390563024578044258616535901290835971004473254298520763720063209340947812604609528164250345149777767907703158155341538804536856965240258484267376990228944864808706339960267746801260637713885648110364754156406763610848460068352709466346298307685490515174942910507682220003009167839021912151318793346589986336918994278200836062569081593968482372408989425458246716633521901383296519962779353403189356814671038684161930643916067240498880127333900313467459192125276641248390293184772935257151607802479337836750427073675131085611535307595035983108900795148012105161250053785197471613727002082143621180080395519111604502625028497419737943514029347724997655506487698589926628401335355726405131418696932319784968098654421955696022110824942555432474673191992498979361114972410749529159241441288802431409338845070115644646816142834769994117235081122114656741395170807107854982406907807450457217950999346623695144748114870452363765969026222476412285794297873723480592296886831030894548735307646103912975806965866900128124827431631004765630230691533633743202311316576244930528591723444051912967816986514595734322416804335135054028721705525687914052842863376908038282209186127379801804277267432014214896070565615405700482491391246981204547571280918592867744370326795139107615600879541528665371278629003332974458648202640371170926949064700355592852206200030511893254538380672493999878901472837873737235558967112278023945746921329882415190963748999233395798834034043238271210049345157604248872876753215205591751104927888608663800809297491435227995717965082165696095072642196233301319331158530364111550729499875876836013171547719988262017307740854716903779912535336408967769365037353780837189326908753964419170686991273098888786997389990970276263748945108974029156088543128006753477426644075054542248507725708694252704922752868621053842496487820129969272573760918373313209170817877367075426817771207135590177105409595566332631843695159376411652893398086073040340710826665502938387720891936029425440944520459787433971352183130544882760854999148508248156025895785397175939038179802765446744482600378290159584053047824372055173132985549314686750685849347251648377960969676763679984678899003318529653217970666682325022495946879129516024594724581128582765617420881816199207429069212846579349914763841497563604215254855743544085429881226381148104391778178451885500364174431317138606807623665633861738852266678828728395122864327366651764293950454210364502108955857585983985368362913628281364585089029608567043289518471201533417148803591677899382521965292065675904026442904498782759159937116176776277666851931641587664344633745649844867059920716984034004191569541359553995133247184379237550709174459252934740970074542113971714364893735907656753432896036308717185702574075020746351476273408073768951803240284338212052116844333127196941148983875536099780579313909723987386523757737656463431026951161486985307446982288174012908428258924319688725593579324935564954824899497563303700444734787937338931612075690677097788154704268856849954869865350199043891748153207941957298346612157732584717618284586018759254416874133025273660263389534929500485873824147523182559098593587486084904960142931600161335204400018741761352825826980595755354984974990183846888816477779249598106859240701367008442373788092294214951713421962938109179575957000398818272296137794420153104821933770490483930431791573361029159195147210465266517340655015900192596489813605931690599986384618977433085160461204399160995922094569626139467585574209406242723070867977284051072041898899382925830821208893983363626376560785928068448774422880598759737212505908988518722704392623115752412622873702998827614821610812402231604994923069221958311481357517966567287217292839584876052853729742192125404400627579585073228001675132444762092352177159489457754790705456029840215221510007214055912100726288342454145514084026837467925537915885539200644614144510388132119989908021572266499780180929750761704347975875366894951242317327200323319284756434487583653445758441369981006346118646451848616630144895645684233665438976509787831166120866173329248264467389916234365675547754784260194088665954018866213540241002659793841294921821988685507662761158329904744174922122979960817921162934752909470875823222162962971379590595743850180019496990739774673640741790662941953614949983481207196601897913574943599544331757221633215383320458183258774284769862820823673505797008950628957630134984692608928504897952921087045448569885734672929122824420015031590245775588496419356066958647672552859246870414078316462114581311280885058497049297764416402419728949025030699077015875105210642857764784501229946669447353406515211960472701385731449168732944802183997378425783396562695737111784284330285884897274714405677384387460044945552159541343023603007146345737917913383338336367070010744503296597659382845906780172561886214204786943252193483682039349883486150067860720720534364033839964037847429924529038698555158759368041941310744089462528935128567775365765028417664826930554704670205797961039497645533944802016163791783567196040178131744162181440327126514916161239935832509894110509233297461511811655852649625700354797516412328178344104831074124343418935827312322376335357868796555830146895284055949612205691516226902721577807352546117372805120403977777555434492045224111592340711131300130052924247087010715486996235981188192446253687678286471149509602144594488697960625865474152906985840881451627345310805965151499990172754931577037337920680641282208922311742431757000913270456865399379535760439561620027882907004809706054536836032633253481695537793809156152301053304796246016408154449529994354728902790505105300190471155236065454971136247874774909759995016825308427783173439932960094503924286908755435000094896128154286027317572024961195791146872702489906092296469079280772443472919045811037784630366275163554110014810531518791071627535442951761839213849217071456943114599108667456631833759525190830321370204826383632185628470764907741248242383285759076567305234335506784091688092937876261793825045183247748551252776362489334206051005599288977597306458146778726435817026986059832072849834367693758985924180928758257222813379496487984768755128341285365443623247249939624980519265245367082859287650588232831579827692466069550044817510779261728034660304912947893969884462493965261553872719617735252734190244275171105361690931602202087238379044870065680562696387783342225795773395008117591655616517429529846196948858876205563277160437167526604199245221738243019119752213677544939550593344885944145147632288474679741013994208736733553876047480755246532288310479842839952382849016891160006306109964337855518181319688886854527861076913047173727348418248221631287153217367542877641170379942799571191535433373184426594069727405677664065825725263442809247154551499866740386893069747810430423614490658004769804981375537159441081296577294857289953050146903330750395160920659792185686103536720759562394402667016208309930820125349106967458264196839710341424852027700631072003307477533614803340553160367360533945938641853599680553424456703916104580809071166506982381298601304976650600766407871778065118228364130727465878078778281802686531816787141191472224859685497536570807203175413715406154826467444895206243570047847787364197615024774207364125592124620486107163573248150869725681451406809095348977635932307181271380018519335628220471968446420868976376899169353483310342967656592033221544743320715322397103787488556808392096592181994959332404305014964742436423745398145755409677895912654681199098129961461505180992895494372893907129062756024728944135556569773831076691298207847431604117981900212041478070427076963429224700662254600936683725916789029063015390324999313328726863313105810495229947000707820687182766514322434729975214677179076006591047684011176802073192193297330701641937367151740047121925629354058676599770973958317866730181887305469959383177544559417398001592634014015741909414581005213776491224879044753575127252210094290370179492407994086117813429711853357974536458551506199546276417856279340080024529349772529266609043992824033034758341250353003147258894438438226521770307835992643673218702935733184145032084544870317940970808759023112262521574014482264633492661809129665559984271636068129811777910663067023113648556120746509939508649101454139182326434203121729633491528849225016618096651398490300260743755296391360903675296531082851853730830796106558376004538333671309011778584543590271106388938646610527996782298641411069243631328407463547297822642642704408585846196246962603613023920580499084116663566401261817721316260276315632727145951656192261388282467862587531846763876384246379636507443963771330062191602147936213177485223467911171820231905786052854133001701872987451218840704338513307158835827844850530146799085642092526175167552437770768870455009559142351723909015996697220253011886701991920771380039958425984480227042491199465725630780629808805240564405381245031990624210686524687947268819837924411975090722336536486912106807981000213265033901032805164333429404086652695630558991066547112568859577062897981575602881950821463408301707576759006770554630106486999428160419861201424850952770784147470245187250750860823185607481104487552072792767731007530199556187063882949994805887912842643700938827997700523453403291270981790613710496573600653882756716471230265548656693735006091496013427789840934269487546954140722241575426637643143546948213361016632585920959530402229937112703388911779204421413883654968238691285301931828276265480139846742569401761253979457000737730486420603923235139700109354868241735615320539589339823131415802668445906510808702821396241769207229028945340787722458077189486831056642432786568071464025966414102215240052122861529657754229939554579605005643994956994002278795545756921407973255389599506080180918491735282374778757079032201965550197612774707679077691080344699731364755097614806123185200865934335351834122104656522325595279744172241177388560744216293492082701210894772142205696395375090664823532300730104557276168084743926077264379448022405874445906112631472207005811189867656459759230247486986535038583692444052970338197216287362701402082625953621141453296193016084137896210424873663757003425456261858957620543528978780573487312895753227470037640988931011905161371638140512831531793077739920814933936483541766901165605064691390722666209712458081857096367031456704134576925950936313901149900581849391307104576895256703290046936830178135301155866990002844481934955016635238263444081751010672047385698222113833731588612696168993142790343459043723456737395100467655352393224722843622324219739235320931766596006595092760172635935654564295541267830849766184030798081509212595603119610903400466437893579347231973511283045757415781415392714960641839620012942098254711271624027620715444793985446351587722883459690484283874593705423842187408853824992740858315550284484474544550928113137740450345714532009701757658877481686350732583934151976796636323773121061054045429039064919381151576731293234762394672604245898009416319646590220833670155661998709536730088015469622771425192048584918471710223417270578392573790187566769494180362304514788028512000675587539592617133612173464149877669546609452120947178789285656960821911976232557884655760882563393481608285951808600992840163969051973894948432574191863149581426475752506287026744001194747499601857677806564604487068917489699085000930455203804763141897706032323245205917654109346038980481470084306980068152609488701683499442269081274018657654205928148520706487445464398212118291795131443996441775085967477050617956765866721735470439881501250474963599604172046811108865791945655181315227966214520692215097106958708276097901485505777555594412659305883504707657331521599664005591254998436010861014345758229017271227476769940678256784044419803473016157352474113028732235601791196758445479583527972335970504688583800402386696324761327664069533309891586663093274814844289488636231724255723836030688462237731553499704791985468714723640763699618337050976493724998801523563807134204081447990046239953082683604433172634691622398626399426855064346828400657646670936693762653208865341916364545806269165321227234116123866719145643294124536309888383668677231714566237145544057771105555291501108897537123603084059547278326080244802036303452447525238525552074740573852219452670945204162702440788383367275887435143508152804561871566572223100982575197454787033116631019434356644382114298462329294121191469332174787543332696781190353778984831646322764720662014728769106748270595699072555512323072336741881031854794258331304683492963367864177141515862017851651147240974200381481406717776157767052078995750699653141786382358620721808440608255752894201455959561909531992461493875570323171681111777633456720675070011850426508225399318663612652851219553719925758929572062129883413607155680824107462280270680087692385571400446594085649761397063476022070616799500972988987673352364518417078438687866268988273186623324237866311246208593919472427588107846901456932030750208650860699182401071342744812564772459612484312026633652626711229725671828721770428355243291843934611875346594394477217216563816292420665989271683646256399789807567356354377575478302442564574077726400636901715296876602299385704148909976448060522769104253511246135737032138883993994881469090066500765475812797326365493641957232013088259501004343754066098126252791980757431130431094655389484681044901557720399907444577123541935767449005916180384952307984868225490334820502466305112264656282772183056926853308720216076748755591867584660038020868058453861198129161244860521489238703113577595707331041583658008314372450285158970724622599162222260623390062989805843149983300842606712902451770965280376082257354458531274041367181370561315021912929756765507998597103331765310418727203969589209400692651842548580087216160497496833210066095965732720514874152535317000422371325966807980739135366283854883681198636895087856720885348185663602162083112979428625698837695427998913894992546669441922542238347469367578239846602299071901971432828821272296833556137225008359880391880354753160300432308325347192134798303144836057621535924688584943696863463873975373790276719336071357019456467779990054348431476497923061135973110038090271558621951969164975827012866922903274206295274137084112790968751325983786957415028508355187776920748726800616315892838982423727344977765113613475058340645293438045189872360696112965196241633908205134126319709348408171614618400783358778847007375054139241343129601655662873516405483822442180136829179668146355011575994015870614241748847851494561835500489675374491894318655773280275077900390180375069531912807767760749638250587453643938506477903142846827151805545378269051885089778235256962930955735117824203730181532612176931397335212370957488853277308308448202301211233753322007518622920360497912427904231712775014017202378518309999699556231375368842129568585988219217116041381247710848455696972975653814823127233759567105963784892763673433432022797882864706491318338862004948891931307245698916578246192160197332758722813554941951400539642314335443726567805362381594061499183826190113347214924951098529359119035510916936497812840455716549448492574205938070708715798401540245793075958166840159640222394479293063147161011762065899914440089243167227920554478009051072782267795133887165068944509943325606710476916139582435453492520225088956607434166208047042664387844464131865658229180542989320835748923474176155807720483745660194554210615857078104479169053301195100428819860823460497136829168077320799783021125855353572738348361769556403473716155577793529912094249771554034721786751705975788115556808903044900754456519412360766086457694048152020888679770881256501879426379475775399996846153334356490807577622274232149852294216550788266099558084815838227190421874991651342581722943611563242284367901371921204304258996156689706569471874178274200255751865637870244500993099479689900917097607758546246198362358244053694179262298919649478008997363422768717330311261374220111954965408459689303447515794885948194631293571467369985298850177255904133879921173905105634481405682227304878794362891940881263334702500952244470466264244512634178288371504964951473211130689485691952877886874394920915786707287488265216278724962607586529579275174040461780537330056508485318309721860867910467195991959552704169040631548278578762299900984978249754492285912014360934385028098163360485085085121278679204136863000220308396896885481204319459134022188053569253941419333367519171913582913108175647944621226039894680428776563930492441322666250468899094876178604137038433746161155870193178911348945192781940763806520836576894133098065525103321466777654794202273070906370061749701297724339851385873813559832644576586765814133390148146648867203074333323428787593437198344124521777679693522676341178115521350486423017035643009561032940544373320408442968749055385356819907605426849633309174655753577804600174497778614479694183439829374177552221486062776791769660488507111505998675637684122278952784638866981071617214375199177666855234951564915274686001805208206311525995375504583860829386963970525053040044437605709461217433902925780385175955561344081876049771529196287183874000452030645468367845523808839858144227335394746457394536049250399017287078058748568852935511334474966099331916689023703518447322825902333570945685198477326998307598105597443109757079045075762459188158915617176051964840933336563640716820523747551878589898640626482169105272326179268839048994938500318345891950306544938102221509723585293675230503481286565896642674340048646041459680290129581175742542452681085676494991765102312376097170350222990580198072342246536737064303952754727038934250183506694360881774789697901786386730654208018301785441745734219536474037649801328063728354549689243142932835110851385212890744506393851766745882233683681809520641740030672145572066429215708516331260869496404667752822835658266830970408662750487918975197718264624991622440095747330082278085847171311765062711708216313978911458014570108767070572166228700065684213471793498779651386538521309813457679242292545890272493014820779767390408162288951828333244206226915651852486129590818585202826213891232514412803715329590060034347760984211834836202925773651265559309903153326110402352039822678001096233169293054287093113572844274850845842693032547730616361143582129661890105437638467050195592822385666951619781504797755011996731214514805252062308557481120023732560167002432173054862963304262122480146231242596112576385897378967002208420373879971619165255274355101728206615222572942142746085827873233135385527191807238508144664479292995633085772542229681777359664967571677150761064301422913578405036744766610400068833082746060625324875790173742412625405049192705541306885914621433570614381569669135859503058845950386338263883441320488093806457221713578020013548775279566318487766041105904956099430234833184452595866811341962783728592279874052255638710675989472810245111315005565694090847558643965826003158347979214875002568400684215793809153890061946148810862218612664281679204781967904440487550914194862558799534464587817839633165158403660942446965774448786618317869467938360237040443796835797068548686042458533384477735088774883836988486606200929015465176767161032277760589817441388755827617359643921387352235116047711871403864361734615712666649316657345206047990426367386797753725685942054604974465753062230485442260137997883565809815172969333963296854661148608676327295688651235706684462594129203030421468602049131171393454487219833258572061449151504608204571725561676150521362335862316846882725952225486788256575446902901105575547326023531435739715359685306707894206268604781416600723083247203251144476648650104590258601126053088046266246841769807028942909327627195445810565728937675066405156527556345555915948965340857989038385883450746503320551590552036861737173309403255249435938871724394013232350401346316615954188071986877258614867156671214633174986216483963373364920962539263762462045465051091944725915875476421134107735371227614262150811621375112187573806976472616323130921533544112080323264988916251695945011726594671991746432433493434367298116017947015371664774320089639944475088622413366677774927291569326559312427498942539435236541245165708661012639613413325473946312680555894315619716489673108865410739449599369680329158553090887120141580768644673827452002652216837496262171029716318755773376609531355262994561065924809811692116756315456300849658068346926849229161078920891390333974110870663929369268909443470274566951231648372668173846530317854994478534337912321190090883145938858511958528610463514936883466528875308245231936594014245822028749479788520666034751274052520760863177858737635585672962310410017939676210831820910985892892133238189181896782481444797336453445725724095472302230992938917647327982333703316851304865667586989666218604643373932853611837823829622785180364213667999769233504514374104954791660524429023140497855993882723572708289075414314451143165728402627769330239856334374505781096841592835737968136534575092327620783849886789246911165331024885856466913633817698658807683686576362818466104498538606964481745060098213112923306649716091892695539593661321661131029383612087618003676865364071717466216031322663079266103443564542807714887105747925316918352181147563160415334808907289388066154402578232613555807233679858225601545030037948448569166050623737601576161037029942404071028161384007202862814160013485494922028800953797773216533884946257090548985429785256771744207424855905751822663908306785080918648477977739670114160967181183042269914536862608844742351059395779990072883035717753790985444062750888302436258978267008542200467302412051004891272266745235624885348914835014121832674388429398955374892622801938018500892999317966346140865524722567925102049217831189998077425996350816010453023099124073551664220105797524349863062666084348379106307374875395046568629722118558996975830241604598064088622594446104337336745868420426121566852493769835178274710559401924636549674594081894976083531473289667819301940850472380281906291057895897596341586607560335065549267362549813993761332128468285319500078531696568126063361936732318481537372384353842924499585027599933371313526886268150961258213406578391067989893525154320342372733866056764535778655883448803305151618066359065022243357202736461569648438823732580488558250923741610417993228524407773399915809229900191907826710359064591257643630855683659662079660997773956018168786194570951656675997274865033662954632975796395547981835798248951973025867139557863494514848607991027231549492965802389581257252431060135597501659344109774720411825109642030048134680812678814806982947687882141547010598092950140882242041723917180263633211202382392061630363289238437710628722405057972927534873374861560352015086041327662389750257884990116928225809398500322921725404787429322006091416736232066860439034759123252297417588388685778125224793227909306646780915991943834568980511024764859035385681543938610184874786694089405966745794617917693216601036701198418014169532827556535215665342805605035499637609550623809570704414683958986443542727674622852176227602128523773568169454791036677525234394152186362043122453704589665181759585055818380601764571496172463997184429778471540392523345273871620784832487645558354086392883821230809112005212141484418711229536741982589473370444867767017325088900904447064733496875816562487811410052213624489397853273037419871785014212346371464101355810428378105265287781923644614579133588343536259981429968931882778625154987221190954923931352949754644094046579533880343429955676209643386220858170863776526543658218857758877299534611590652600715337255854711232750512716188146049480241132306292022594886867402036268632801164936071799421161291226725258866873477165563146954437501429344892919314419303403516462152982798795935994045495504089043547051567387048524095693901541336366326476441823625729423321005145133284001623654206404965979931689433523098559361275564195520491751809481343829693893558627315267909691593641367723252687528184293351689586866834722882283263860703935866013803212769495482444858714735750160122425146185197619100027769645516142102509627381653771872347944947536096976691581804301531961437802821551304894450153983905191828215850065759613597615280323414422473433863764647725456919501940123970679132571121309226009891760371489704206411276261206075870874634102620711897778088360287012365826309088690196740400098453393224323323878255713372915104384000852991432722924456535004005115787059349569783706308260015745394659454060456733547286815642298984929888018599156884675705995684860827042906277217964105448451844964677685457820743069524285400018878711368195067635917409352386088147557657263654323577818512257026491920534273324798939375008704091160412283685285575334343312193602188991881285197030817109835891372274614592522751146491904394623711723042427939178623855355451671191879398938586164307478211210874932953243533547903203051277806660473666419449374450292170721600759465545229049940084736899690309045912371775047154891337709464209057961893211904698190221595825598759350922720636642148609473426028180430607177011718415228885912624994361545926855553435903043823792119343961095480055709357548871983751060019698822807239604268181696648686721795872792141004991332028421885095730352485338289948161180171064130036565933831338900128586923485699729594420896027509974087722109110606730097758729158521934986415138625594785735923290111433881469926991760509014096759668289371540537893774703617258823844646754590068102072597166854322564294661403566500046298843972357822124800764863220403196327488636308292175453681236567805794670676101924473320547644754724736990949036439989366199613647103550811538546205037889076320580792629291085198957769416166763659425395769184621756204222924969370530140670765764897700172828648017579879246289707179091801946772624973893365727241912443533871008183984828666706305708789893352674451104289757771670922373073103208463387593311820699605684349040666589273274404958090962035511516959967761870123493505872934724800359866763598988141541280361896294135296416956855979735794936553507408328489380831410124980812864329143328747192523949357934932537029914254648676275274526629950783464978701232493531043184328076533312768211870150461590454313821885895712157322755459698550259697256661160899254526860832421965483051726847145632461702949923109761181006383446301804657406260410443162317155479609208469332809243161218103319609958513770594193168801155472647387968384662861439809710345225940619294988541294141100721724130879259351912998584051456515096439524654788808343341790777199950493103726394192137842849408105476228192283586463719688228225112795941062330612913647088829042600859587302455639313849350116716271702513788528977631400523413367660559156184839330919960429829712558854441110992677780492125454088272254445611796584836857601665349559081523204489802355455804937552028014971229085721711904622042823873490249375924568285900926354269239530856395821493661325786454646201493692366987709567325607230463618075376856781537065101530543955350465395052527741275882919614843649768468363589489467548961498613933637423785998558632815134614031938007523827272025719901531040615406163097736013246531368586171630609621483695466755542258728116036716175346820735698977125193130424599185636422699197239692238038741102039734643061073411705370883883455346331547881832917368892621155355832079998909435036637838481463238556788566099497380197164796750396012199089343754680991251554758355533182275735977008384041410381180071753531728328226951133126542639538774409710012041866760471676960073262183935396081510181949717359665994985635579624116779456441945172390228115985393827074309430809682128304789975672630104289950497443509244653788522423457003050124659279146660858426453223138609813233622199766875871203747825298462277690716746884755510552918323553869847379491968498298661752868503404234628067186011144783755801447373114114985791965012450477553933779245804135774874383875721657367555270387147183872991633798549668473899476995786211252956618693510704923640297428959399292698309056636207969195456780814985777110533677991028723587529921425525101806849216688240119154130755819598696069813182498582608169758457880999998738409194698225137448749884339634731923474311344595463431221269285507442627370089429996961589570682682417763017834257474113051421932306644855868702503608346729481703974442070178660930055098135733201811413714032040079942814432254689284041611958848516885811087843865837427630704423396504459836386694819683269696327588340901269733621405311973821229467907449405942826130096841256168638460344632400504127104778635112009374943503057845437775906693618384947155519205704055599468912927733048444460068098913068197720934162415868783416376794832928028061661437039128101106774465347797992328544607146257599479144323216519285403782221728161553275378665251137007194072085817566155750187152916050756288089071195372887413204772907550675506024480313948623347212218352221988746135808957451475226851921121492505954992507817943585217570448643588445136041416595147601186345215358774468120657494104789729840123649826800166070771635212225099474288745124739145662011090156309960358856993007755164715591397948103535443467013078287373594830348552918585762726596491594748171376626689115255743131959748649900041146130440268037342005051847843399699215366031828055961471930797634209680715716112474024984848470528274977467506536026759674954475467962932404257037401474375514905933234998567441079027844642579518732272355444870785856676739547274818681354881923347952229497204236236965040432771846661159507182282761381369779992739226062094212186324276128171813332127016393786120137104862165679568828387870820832853618824468214957423871649724969796329870213670360198077972752450441281708578270973712602380636942185370181198651425714808742872978958888139977478246741696941171104262057826114290150743295181387423683089741455197296296800731000987605012750284864081874598944945030954161804359611166050579457060786003385003596121870854233893348616341253879074750953161863535116802039881321043330103824396327284925384862194127802788977073994320864278842842870954762516452042824365636475305318612344634194443124656599298240967815168960859695899144367385169382140365595717201629367351273433947711027791323745308239463455652651867824013197110009451227416743198436184921848747952056746654813223587990415922767522608807078015439260602632127516128733733942233169346937362029078591714989337460573363210502383411667497358400409051154851445914619134516888537347369170117275636067481770846237201152270883438751498286508813623851984400566273402941340267095977199187894064321632490855387927892606108531716064540301850601224945453816777376635949057009441532217239881676191581421071954979146599764004959834597347513229476523334351054309534924579233258851796821322139972225744829028216700400354837506292341510850665878561926777713576258049110229530588290263535396512428656077444652863697323630438536754607486449373797257521012822544697964772019817713286331193222420524497894181401718781864536144896071279222563282598558782995282245772051645265851818083911398810526447550787877105977922446660841474818302587241651125137985194221607400724168877324672233739724869047558818556969050945783701191464049102597489432097812102473036343382029689234675882077977083741409337443208248133187009039574341799422688346584576394489599021289061635167988593838701853122791996742288427456048540709308120069183687007045696505117696812668528374798875744376144779300952954773375466489619564263385438683496951355868282179723315375163454604537373383516981599765875301937610789413294438420536577254798778833062942079831415497948444994551652992507946573538084164842594478091481755871056338511887926781644331977800258042598921494177039522961213458839960612626258852798156150011483956845918535620194319490869540672049970570962129098963887578543367608824744874667200600699108353862711841035063283910241909334792544233251711502062572655338299154765891616296134277560550477607012089904845452515315710829013695052420588137680724684117405739214723447848078531045654061936686490903604601373612023464734522076267302474404258279086016761783891416203082216243795756824489218658116410305483372813792233345650789081145884489862620062190150632530904258434609173480647643712626403540843963152997386463541364588755851817058735807176192219715958932530603760503200968079402708113551604244870989885634348685816888365171304720723179088861846847245483160590801740310072199425491775959133908517824107989612183714251348949078483006420186730316610071370888991362666871353236553275210206006960030186608689533499464001063355486218334847928408483927457154052527847861004705924768767578297942180094684222033289332720335493767454304906854515923872458200575942621545177175064799410316250324774960999608443886927644587962171469462287257245208338769681514750064779195393712751434300838649769853991883098354885582430250422823909405988625598110245967063915126899437842492024867309056880476170876215042486769818661945054941637501696699713077148721315360165314463313135785723530611148614508533881077277932354384030998616055360779662819127482523174845388030295707220827946926634503289231049256388748944746813529607472570341485439009553178747120325903439786406635722460948230229075930696270398820006041289567896391292391909235500335797862941419417481092663211680941696656553908998872776119555883293211104891768909617406725079017187405034126031685672962358480583071242123470447219649440724702953809644818727271176861767921811118959857201910489263649523569013977982284880793410140136828460239237967227625431199736465366350990361508369067626915863065330661844654503724457666524365839209379771870004283945656244790520772212811488883944002246792230817518068353672232507032988261176443678165840535538731285918367257085510996443710296833865142166814500811834675844984097048620646453137392735531468414652412342129712290353598131034515756995362780478482442220474424714856121445416598905350056326691221327792586198138975949138511679912617404913361903745225551665309748308863521476214611247377506669256857568171945959150157504359223589138747961992684555883653829732565032740944909647969709728747705003644287383032045303682629235836718893428627263485702834785436895163797997151595282769551725043949951371528854020353011047085709065987952782164060508074529897429662372055261871273948385994601481135833307348969633742591797603950117891902594565939081062399830116539725391774120007895946732467756293840070355857127748878492482419310115306380101525660448784966356665832431464741671072761742269557677167363739325854983179312051879989586503280388640766537292096195944741668996534125160970698286132654042512534883050223134734921404697669244962849653432985597102764301309960989716777928015618156103918177611128708070037787657678199591287792616491644816730909283551566553169019954061749624386484974594082481636659477991720412370507471485942672595332858121628837397175457775365258590078742947960819514640534241464284478354067319277110815446908959124390464659081363662606074544514912396146046282697918420713349967542263824937668521877740187937258145405832748105448375940586593262275348915336977821871441433949879392112607708949048400057179060088421126236580952878495100430867758488312864686007628700155216014684739428659968730235815966088709374916141828568378376749518424840838569273831316361865058134348116248981748975838061272252433050152378313922016754420404166657653129756529561777703934905661203852924035582330129123706014058894488405518012369151487568450194184473438823057848359359821986860401555698255579532197760855885183768964147827597465074571431053104383807624573519935522470223594742962918610636779219160768047656692115098369520774257929342818546177746088004963960062497777680307885577236738090267118999577919622544226975262543352217103781697396052388902480253022548943380023804350803912065425670400574467641201523048774143816689715603100055280258981226488121567490366488743801989490058324547891969769358107701895358238098146121132198412806247488456374226473465260668464242685902097248688398632047505312499146599311562279943272363271732925987148539459536456565538170842950122413748134609837262658110297289038418517333566369626163313456269806117972990859086017115307105987146026374166809196279243637251581254566016977454741969548356596393415339259814935447182792805536044171223649109335287772263574539182827590514850291311615023399859136314047684334032032167528837931065164872662236829559554116700679978447959248231958491312848811026166372566683756039414350604370633711729621168463835060505202841638173226533624265135835897238224260668611244709486433464984610165113961617323082883164234005939457606612012673893612357291003837250427738848806825187501615218387407791774245541276846542293325865904566098338199763975714847266932791848739948174061993875774114995594552440938651020844138671183686477794856946215849594716237385662599012995386751497438209268816900098472537340149903808621927363570939416303818117525614711617828301026910949253261968894939002802013854067086659929669014085165960619245790112360320075969345019064078934689925153693699591817228203806046995878941142914879237853648576792256577264473237236241586385258090824886253506345404217308926160961548619138497602794127860300599987852720288646571165847045037436362835886704088398191655993005017779593537959092265457038324849892199169791750448772245755992591112087032432675444358938103027749794279141877594459035306418417894008146305035240721646709565531940858550826285007538858567373931598127107702685190778807128434747616629784396992151721583683924794326500859009388156847571097406819725930255989892893052978853382591344598258547139095912076597594892523152792546039023206601772968091175593045504873935620449509685353714625565454396541306943844758742998786961623751052519935588011728266428579480900438642163642235333086681126516861893971111459179806884597188847794636992176344106264916529183543872990953421905179698148647057250036381597351704901060992854004576178144687255446349026867209761980987628604861010308899179277886563241871125571556481837477949285429362800046970303064370125663118331580050955668244868194362650246989754434246697721535674091673407923739579574992129536475135685072031601271544529274158054644556704000724628261543603463284673273484098230501519429883179021386426331873757832542211946224222634108794085250046079016668704807802268325008041743566939125053600486791398663064148301707835328325448421406960538278992899550752056045146151025113824605274906945094112487888701615140112103180129367325280234607308155325521897223838861250459565977094341781550209408586426645497793381125038334617132082635865521983125656769065511681494219416153848598391956025480289584580846618873371656504226061412916782097680361609948286714805705189671348939909110764817558051630852575759547695330996161523303973922099768478349035796154540270417322979381618605927540522263203878065213022400971731951921240045131628081694806562661500692095652571738587545108881198669398457547851111919283869876305803389371080424765151114146634068999142616282899162131495194502047673306650874200264830409963687639590930658415509612484025854018625741314133932512207250010449749901352277754571908798948726240616870509226332732262319054312343763029701633068558788308081510225545454518499643784730360414846709139366249873614923191998000321616714590348516186444385835444762213611511107027238524540580712794594204917582385164059964506107671997065294565920574202851954337536880207546683857612723958100938829021571620545773659708245630822901441250487674199498901345261653286858429807436640536277477071866636347235596443594820528069778308841876673848507946396346083424264038501445030740538924892988264256295834881993475465371384354510020041521971801679156242576880007877727368261449602584830362921900642007175417518314036577008032735116959803474953087472788882031987806799732325607671602900664474867146181548545260453438335870343006154527033005884947639620158080453068482577168805410617150382371022154925863904157695464983698075047531682058208904397817078320707236654056419694920375736967201838893066761892622106924622988721824461682760684427204164672731642190473300017920959824357920744602628797032069834143074615483641131356027793894281285603190973875433362545118344673425388116055499596303662160212609533080037230401715496635069504134659303480683672370110304627495470851658153499893098933346700599864751904977032491220021529678507002853048872390681661789387110719354048396997195672017800369171894801762313714595509474447664932530924557765545449444670112452964192045718603075826369618253119710083800209075280432770245417508167515506536123857285430710605319601079191304525941266648619993304163609464161589816507248556302858217415374024662590773518684423510588617520247483356275647856950578741781606233608839776054635862790609786346664109687337645705095293250970916191649431466775667539479619311623426401563139215582906123100955946108838075278982831841618733395339997056768569771890690320867435009365194867347248305959653825620972201754237580856189141536436518300747830619980247779034839778899541797265169226649044190368035600863302691997026553152854601361676418553339309961081199991267658239389668322427251169862301841728060769025077396022544678529648780515650551571552822906842484694849275562007049500248429894461483242565816586936129417075557574177358592445575348165706351915425076668005354681501995810323092320668157712243241536605025528362208626823269751582082461670790141242274220406614493861686121868507160384503736800526014510755574733515538465593318408728164950743068448759747003420835749163682089604887408146455915732764412975324204722497869393422033338352679494570504568325902337933522430462653803210476805513486451721024445353829768217397563950089501335852183346650564054798389065356575773689500836574424343120104275210709399959268630836195199325262914104468640442739387857190076881798010024564525528624886400679746597018786462098068063189445823734253239121418968307407863504651235527962435565392879375770693885179120994398932743723154611148990142295009951967218978566892295038508317159662144327648814413942232114193750176786328188829507249553008547940873050820871457473604915438806214413940436784258273712660620823869244136855683974327402642050101574833868387678629627988688740877024885841145503348252800612263089650095318486438940625281789166387870525099060802556861825455264427397063783165039166919533692892079262534720800410399148017243709425418344565465318186774033271261209641284109340675097214916115734821844500616482206092353653317344930233055508806629084294258740895506895953856648539166623427464520272456503466253475825106564642254277265863458429721798150790005767233974804162197637324251487298701068829886340212006760529491156226225654840052812336929066019583150067909012686293614198603985047655400795662267771011159614423392594442071234358750456502764293798992828569406998909329798507067208673960444369652471155727787029580590547896425408142255250215333401829299186987084725443020043031634983980474330330733508888339326617422325605287783802135240746013098439668873080438581848225197558695941247233339882757810635861104068993881236745885174481634742525232964773817044580328578067914410099611082741834612511848498212023636489120464385534497130093915950108791648177674317742509303922388438876390444767272629463802840983543295851992373404030012151941179079273544578086675585725219062899878281582422851718799145662694291747453634236074656316531967270590851953834429531405238099275809191672917009712749833692136182755815899037773470257231028813561217747310460225786692119607415956984829973234061613081231790768107250543277414306767984008527367604606679526914900609600755518078277673931695975342538749307887629816087592495810094615607531801058464986507693804442083822461997002467026071826382650715061821513592165346081551325011866443101725469950344209772622796229488762996369495023477510585284212597972186585031352307298943566175226453989630370735404179304074491104184270701546952385221714998624241623500516647962329617742302262538310197467775514082376540166619517432587822159445185881332054346555489601131683519988614685511321832659946559909909766719447047842680332783699669712420631423538911078829844376674203490648544782659955976790144787363501117710471972312832307035689624919090450959031891941699639153354726604360270597222667968964442792314041613867549261762312909425160552347864387292840868356560000560789563775132642641710477915763206105133731572161451987321894047999956387792329837064880829943234913797605021874572727825044760474393839284903685607884100168119119216646921488636438641072769418065184701802290355722704596660975058557753158660149366215460636414157471876926175132116238031537117935897171384367420296953257446280006216365727410263665044715812450706813603619790031335309698240423617332291581595125608237494511153043837991464439409168173761450112586624782313915505287003697561053776242482928458389870296714400160090244987088415425073518190534947801671987211472468891346144636541380428029126923856943996397748037316163885798116566571934403167253781013684657356180837036761372215234345775362885690804150595407496317262260005689290253689034352944118660426697241590514005349359895001281919632577129377318821973973670139481725891208389243646402338117525243808624642581931893834364733467670962943490263411711134101066217132519644133008829105045614327663094794290184899526860279546116175128973098791782412967480758243153099598694760043641343197179170077533785527838774291950742563084032663074117899399703686904148153712073131616617783531306557609457683116936529648856413175768430211937101705964621315413630730845910636548413883156243036337978624054024163534879152290325854103854287791803763448834526178159815666948336097629068944270077076825671823036262554136001946335969966656603898033948765784984601578283259956306220177777367726563091053014126276894214127551186030271677233067238570257772420602596568907132688585718527447597129115940388422770610549958877132542824770240459279885016822098834079624541570851757330908645475353948715886679683595819812585919854506773919325391033561671808065553245217111463837283281790767141515698565519305857995566891631916515362731819110453110555449449764452572537458894591680878785117147259755700353757772347624757850465766231857469263250451458968604987608781161133797583397168057562587382682635133785405819027350541673472871408732167703477707821337464164881355913184872077339921301907984786180290463747063463621976747036298103435124068438134615617640942219799803277330551689546221343612101317308012240128211371534385682389341238582707302196720160593052155981054866384391598156831289468972450188262730215362618662224320977103664605911701035331102737778054795323056139943564578679347591855464649848122847604294252226892030717734554661665311066204134910933768792289243174170035797214008371467249201908250966834579273832520517288601435355337705233726891040937814467950908015159243291102645206248457450707218593199164295608865387287027902868973110294430856481853187445987870598849453182931625113982154643752767890351120201151006774098614135639591629019704707114926246366133449335377414521754012126965736393566449985541679702848045338093569834176799786754769576806120146919209705165967918878666128455501273764840709136831913044481733269423652616483098198362026647201221729675911773817228921140594083782485885261175167643179211812030835072031944938368051932108462700214507823735946414159253264449736365501610403630503407555062166585178516782990372084881302900324231975643183437725023944196198837851090945855542743568285606144261365345844847975507495940310915941628584641625438776920209015133900602803323685723180567223890083259318512116276793007172163275485672021929025732024846065902980881712992344371876323622419421898512643076364317682944892658507024693589140023413126366525330065020028043767926666038746302140509291707482364326290647318830886236614549684210778359122014123539522975191503815224270378836454522597817629251983531104243910262781949744362708715145633609958421132604916441122152160506798433829319788534677791016041164433366569803873981068138635720580001123930616698439558954933252237603854144475822187898965475669696468923997778075355366530729827164497427710209917539901616402722912655362424662599647709357227706664446393326609438914351632437777461146335392118601237323110374359844785078106503455446234992183547786750089778863028155765006395476839362970579704190590390345916642969390772192186553883355925652977888036628607753103301303241331676503306705392644527416169552427450703201636929169967961835377755599180358633288444904312890983957300151409459471977013067604777410764537752653633126049218678232278634864010434242815904446288196051262563468772806070688492271863221255294232216605464132650699809612278896169180630240397196318289951318351460226925041445121873707870882471104728645993318350140404585907981635986543449816439255676503207705305368335274864732888532589859906335632830566174311195223663671110907436579731558303600403140182637411493090855344495108087677061599326109274267955744961328342377704412306755320963636749770518347396910855253953556260385422895345083366568964915311900743923002587296111584781877239088700891686567148924255780293155731328703827838789004177985460013918679153244887041519258578052852208104363159677057770094953921320696985315881790258555546362738091891719589303737440307639459136872164162675514135766512936108451601998294974687320108065326196941986443956438039490940992172055147497539141451547991716540658401787484968188217595686630964356319897782461206838463717064627470907551692361907618740770000958651800062368264649494370341614862858422161821248751174023161528381837062140457934876889178003985502939414648439020888833314686933153744070267269808916555071242746566922835663639366676555929659962424232533688088012740910040136512276814420743282624011611585250933144322022771306723455950565362200713316854205043098910790804682483926831248715218434398490432465896030155556969571102615664488233255033068146222239496343451529851078507011649186545141612980596616298922354354680758053921074175463060762383330478827111345681281348926311440302645584380187212410710133288657043715710235293919577590749328045125128237152456986364453351287239045567567809996898632673961731840695706873492717807762620805625117524488414090582892714334327987717189154362197893697534176788819786710221905340544348689207865210054201794629190380988779364797188831618061765682433485387411748954371131610422464420892004905677931524188788084193818651585861603745482076662377652635550885667969032983842930773717741058110935906880158061003352596059415145995791298955488505257676832775952767089887441115336957434283470950413835676465061114172919478031196647642640098586927552648843854589026887736710883668967442701460643728552327806498076661984908081570774722048417602696121614542262269666545949843802611928745425538806245071581881245112201158768385705235370200843828042845724342249927930711612452667552480836895531319276628566941427487657942328802536313047382076256550142621223171019604872699524447376235176739400797022932729074649921323986953470811803126260229783624750584862551847781735337112939865060896448439286647460327827023259492415701238913566204258086622515580214398721300623572678434198870229141374374175477489853141620589611039906883298566326342572751037795929553180496483685787173455545929941354038832446636125273881513638801709478609776592007507333051851253344171725720105904690276119735529587168978530864455557194362049993067322496634691153598747771222163056471871761539231132694514267501184524306469836501442788601836817753972129433852620508015620964042363220884330466976270629311801566914390322655426674325724041978750483655786979678270849796158728058883217295351154018043293308736551279857808674541816411794556032451855958724241771745944844316063879474305602686565961455854431107385193467494210757304617325577626694337336080408848512521936701464764290816365868591681458973738825471941460083689956810926871969922101481659908335352622838801485838834536773822258020411829038790149259538846087665556356982796373695856348713088508566203430382721193677550328025254502651544681687414898067911612319967556309365039879262478227683837560116213667361225250351668272983091321168886110558015173743492041480700713028983168261071495098902854223821187451540097817949755896606172171721472945850535069009217344830769387106126080339114479891752942012408653282444770819228310296750872822132235190807972160589866533931592554230121267114577326119732093757768619982960867226610037468681418724971156956843118493754803179730392852915087097342983162033113284935933606821148488438544287860375782848258917749191071613679992231444634981973478330636745314442695258438471160116840356795810417763814728852248327185037808499328880556360871942754983259404272755111764245720727471060482477523636761785992523404580019209114247543364915520381312869543280365074319539409957469760685972676596598295030330160354091236759498600327194777283644902818306326444533028037307252264896984510761279654657171554631482220138604222810463014621051513731663405406657084979386667501091339715657796054431027862128038627720159713492499461433668427746776696781204165204081078737858971607238894401218250859406275210620455456340244056213413110189384724339875085081209764470195307605864421977185755950240651609879316354896429765340831931222209118392895522493417804125586738442705247146817692534290683900839360438367305665911759833477077013127302358504509261026883741923645195072533691227146186665308547258377085468171667939433234310580502338224206796014463283195648351044603603576147704031386317746880930576137972655696426841760937109585150103462167066955334612802306645660925307481828782944797959557409718400368399204583514289089812935341348185790749848624426390976233443603848265412617948400357858429397517038394801592546664027469259475285816276460900064279923395102480611663920372075760824882079009602789314533521193877572783179177609317007365419163839833924194407220867999845662877113624768352135122763020700394529348715267305691626644494637595924161490705591291218173882316450125090633890628098834382924275753046944273763272914728336753724962478147477688528307767899243934323378414481477079475272184631689374330334830800353151214536023093969092114076121538388033455030629026140486028245046000399891987402249870446353743095035488365569584785484955996207009813503027191124973211422961751760819747639324132977763694646323952488446497287481116364663331637800098050511330217918759462479986098605177601191753755337596191207526093390030187699967069856283184295627692070800621993416451003173661287023008175939765016343838268597345849992039013451754648369352475462139503601475673803021358261582115666187843664402585405232679104252207029187208079740044104964979973652906348883666580230040769692732378180235169034099987385577522464744317112578890776720548384352614321072435610070048886842817570701945267454790385041405639938395357422767005919792937928064579781195318395001855243776631672775825331820297351074894591160216224106259849585825467409742478921582105738603583090951262970478251503546386300056891398183625644540742601843732616888951414059234153311149911770844377192389689101311690169615236276759880015580059759744303176622747449824992096125822003663367412047630386064746826093277026639880254292787008556678753976522005065245394136977260255575808737545370372224092031632502104499173602819144031855612744046047146132663745551804160038707182278488569177490552061200830587996055774610602328698045927594864518269845313392711623881344773314327772949089661324604522926445142961192026210813072764292564113153662144710119477513258786043479315682269328089790203469850006316108417732517723901587375644037861431241833804793427317189865474690633582939852483725981639288954172572243982872502539979253872292487291797731107171436861754559047003571205117796527027497109030547194498660477115860489975495212458344411748180635335419928799726720116150149817787758516546234092600188777460261764911080750505084639603919168442528281834550846392458452392412051386278753316975980843320101857793512681212782834070263641737522797282148850364752305403217631960167238074670692564660937041572347811390431175616414374991182165398882058565757191429466007422768728287911150799270629185491667903781152167217834797379366029586115549929730401848765458123324975782907323058641863092310516083945084887277365096180661230466776442369797613077297834751829246605030398513781048791393813989002855252454370731015576446215543987098529072270272964554828411265588796042177930132248303919920455533081006579315464095848965781777893843965919300057002468052800316314132842953718386610707778428469962689657817720860306861111728452921849379433047592943857510087830672923639230162681230997706663825678962182158432053230444647944912371686642510840753826072990545880565613627265024637659799938273880612502864036512167261934462304371780577699291357294092550115334286432666583205540940839086016110677741476724987153818611783401362862109943078626631315707851303941439739167573923706505987661686824026222157192590812831142238282294234692112821325277136472860213143748199893147254284937763538079048730460913526051310891901783317406726004501850157314406568797728133482596264862290667632356002137634677661979912154534618624304384033174406729632069108379761674899852046907202248553095614958277416241809253376899455520849481317617123418085530355407554491171839781967880881444410046862413544763307359316639687932477871283990918720676003333270316093290438707576783288502937362060050458550167328328159630173394287502113279377171497043693958432096979477485247250940710813772786091424003358321636623804654202647769225925454533853708408838297757990180436108660282679517172002121584112213099717688240492727735019898338617447737884318343091879357870967654388060172468932945321527590737238409469894086661325400174202926545347742481065797213254394445350790171968769509214013587532925774267448609784480192967241480110233406418959807067122916550671594733587619987373747001731192059950542957352789824099101457866997440733895501218739755827539678053593984078401312918230859299265231662180567785107935127888874424571836221597398227285381721212060979037080534374384159133977842876375108593469584762149466292776652278951970739797455680059234695028547848375378309085084181914594079477335630045280209331706368312784740222980262761370361217554593465425802026729355770399165051906612287910810731887772568524540961449143018174507433613310093023409475158929899325219678433673440042953971075604991658852225410319621214631970033631728690698181575491542014043375249289867504756198149228330219103168564266423286467104315177752823252570084829010950180198291193075018465319511648195427416441350838320703323452729320979718720822351762466479605942389884169965875666582441909689947175555500154702099563822305463724834729777740312581526264749953292064288101969460216419015019836302525696061619074736789745950973933862911241819943252251478289534963265037221017682850170704185068007375408857433246816984494116038414284546720596819232229074462669818909723754317953790729429812936709017023501581276198033691601770044908650067232948130987705288429435053402809930312582636963220007727311486341317062749378267168158792180891207724922874337285239358478497964967390166207567854139316900000047302607204657039327461496686887508272213671587099980049023878988638902082714404928435546306674600945953123968452859400900308499751009637394517902340706864112837657027739033980097909635415652684685672691970741263485301221920620881318770416675471695363101630503893613708234560079747194327902602803030274613923254397877545743154596677855915066649705886812086448998728128729615836350425506306065783070960917476581433967153054767252452554742450555524289585362833537642451546107760995007206485456043894474835300696979016402479816483481832098691186681415926984414157028496058582091128110025457284340790502887919065817017346180896991125919386621427570250566422328137760472217908842061990752972770718971846584114240445889512644241776885266681950772046893235288463820018925483417755766719862974764499590562158014453436075388504771097758985203813289151557197873649392275478729636209449687352489135232497305494722934792058512255190922554683155828210530556273116517389269199020182661135742955670286837693146024189295080147174891304315396120947943971289818105659863492007235317185377524271158892724532598918345366005594745744697416068916879840238289743600674754813760644391925487679942381733899237783217444682548806993482586259074038287646371630804242234919042474055484857980259415319141619547860839313086298575533861174675893006147646140998323465996256823667664588531630693873082099646686714543593775396412979550817546733183152565138532097481055225357029169590102932312497493942859697684542312675541055578000954921522427368243420619918466504547336892228738221933559166771349842304735275424717937783242983654476874365751181718264915202407248624485596419022907734614898655548507028701374171738551912990884905648725855365424891717711228868567281809422236100523505381518789772801903913179820997849717088528654267079108988443072223600788870825721697993897959981054839339290975827464313551599018937554642179859193549240625305354954264541984956241933871138237424672343766444889332683961829874084948309958442731948764811419904641693114267892543773796309282347223385612977467085670732961438487965906571148232831725747511037867503150007392714873184400931139399574718113600161843405766949313404319147688662340568061157253080983177641550996420417633448646645953236869078992866076911895092944018966127268644583200453524508071601019100233548899514656843744693790264593035915315944388685991111871913017208174016473541641267047938589148981883180778377894071325369210320342664287872881513661676492679021255639978416667545167263728977332386811944004464443767186916309952698820004615240681467443391534327888460098608136080089662453566820649830454804339910086460823724452765426483589220647076239133452557890745548688729014494351348758272879377640392800677894949098041670776308383746306317570987859371715367897865950888531003834450073275083805873448153257314942534536101938097465528942089651976699413453353982434779452256801614109974925584898888824725887509697715445643060162528603025994289179247055787324306061927485585925171923871114796501122415644244640908511120832872764428591344139410775809893368234918323105183422231136532834232220187264834959265574756393107613197385530834644444673633951923893312629541564820764522028463737315976567109734589556034225083933469761272441346179310411000713798507438004807711859182169233708007590270711561034357842475462183336696896774803378192449596830875696160203160013393112463956142548912672468846826243437100586954414044339587460670405787400777507854173014004990440610956288071149805488286660523403654617379494029338884822601320114386835604229946998566008312057229209607203695160328924797072844771524067330598730691012248280917657423303182040776754129521464211205913007878926101838565547316918350985476247755492092370428544443325379094954297248828286461300048809510932066310555071967436393589330518337458442265421808315720675605919930311892756546542831839203785876208690684710335036283505347237489010365143956677112573116835141685457268423832424257262200256954751263730679229197778717698632170814469288568896316060399536566286280253280464209461945630200882969976751196047539181117667742042827202734918713127293020654370741018187751923187483683213588637813543523943786459676896620360957346678446264762369975238781215786289140846123443041498744129424619546799634735050256941926401635665408604457368841257313007049281131836148679329380930417805903029018855280874820999883765191533159844650416967251157934110108881485538247952307595452240776847194176187348796282805456160255855532197069497850273547382578237403591052460753149810285046768784487073808138456497273876137525000471489226347050257032372769787707982256591577844646730688430353193373244310437474142884345981285706441141829998226776394899465977064262738833809373170548086031385155485644278302801815743897596102011137342343869241594300484697235888350949048651370347446156608978779318805446408889060270927985818995708536368352301882290345578450068928191580928869602575642251019694976826280129781616682573338504462124604893965486988984904247545086535213779430783321255432842630383535446783653941992738157149980290765448352401335126747550541034770611543850699269832578349243736727122808303420104018917253599196936903113699433511935961728019817470047859891552478219589278475257273274718807477709148360363059257326016736238030774648946917945566761104820978209550770427410345807528530812747823703649963321210001400515466869792916567674872654180042094658569344375934998212147058369451069397706047598391312168337947333405030042227264364103653610960536743809117725756859510922687013802554812229284589569360141714064157263897728329413549292159104544389399993424370052602691960702447675477914916322473955763081414605353908755717078639267734067161968141619934115504743153588103405960646372008495617897200162347504369679105487318652469190822604519897065263908850811581041078880840273943134821504420666121354872771173117446358968686437923821715887016127143559921447220756046432108311369423399433055186827934528413196567320949487311355759636606551552087541148104915631739730275303757077871989855037079655297123919056505331687149592688458066363795881883782870539041733027464306108605114021485095002266002154049399075274781179889195691529312189974050977930513461380924063263507047518518396260352439696213599373455456743147277187216577662066181832024291941950660154126908706968671085117301357368586837449150966612261370021606008071317900711848473078613608689116992872540925010303690565273933061370755451528758152923117981224080942408845570662394929466958844174222783913035015392621577543704361633760812244126422828949103359944015621198456086055321892258926003237671512561113911177651642415578553852841600039793066725259399127086649617705439677289546785627960705594481111400048396979457214954313585950257282305731665484283051864188187520655982185728207700714954691373620327028076626117264231169289969255329962331782000642003299949823969954637420846308978938632264366480598061764416141156495083784437502172662797164878010568186051402579562119720871591335459333159355156927529436044390193184539449468233789866377775473311921090886478601911595962693305424993828719596713356209481910062878026636811595147041355495687333499699050170857157225953813349520177405419245757623254561702962501440976865654592188203360714315663792883039884642574715905103903620448062127723723071888780368221244119684781132647193729790527393273021335998923662880251840410141308639239292469846432429869414865264031624603677744720826783017551177352268695951810080331199731099891454676608394401701746573156473310729188135578903693231663902614279775132227920432799073551629843041550478503380695940121524778653668766734928650770346489645055115560802293440509321781893634619348801067490696701991120461992433386717404446242471865000170227745146284670560395133801030731766648748479712793485110320470601026778658915177306488061701335223307149206391448475713291300374666403655560053800914471065388046828537832466728566398992514012955096744505347988625936178524173068420894881735833829793347089465734142639400788012000836691095856917615418861428684837976818297520446503708790035929623561198033071314345390542373549234169837444594195529183568669951014777349294065505729691057694681629931458134948705943865675804527568686674346955523321891419563446883277293122717212147770674879246575639212129827523687043442427487165100752241301726130028449723615586809663935809902791116807020782746235042179021018618688349233844742578227216623022317614551141866223249228488211737119821285336191615731459097348686760712839096001133254737811664397981467730897480370518647220408217962607953918636897140629587701773211823369878959968651930528934507279935096674779098263114676323086073555675044331425009562296254074732798057349460940487647021247302929423058476553577884771190118316580483129155763577184728468617526726582461347751665086986912087288020809729199125483338212506902064505931274770818542761802977165904575691904755369859511430954426601185792787030074754762532435556747532146998629386901920239819907654773241351162934686172301180583666825960458925364547534966623184901185841848696835456589789009140401170980057546056998445594714805300657509137422657593242652623863181318828117523905213452898107876353220047804032732374316634792570642777339566907242968616207479047121748767818924590743954949944452058206203724976374994533618575934515475369666657924099444784980638754200962725991816498905088351482036187055487212968032283589451390907689775685525311738104370427008440246039209804572571126692316770797708345300990926874180283831647799809113085737061881232537885271971041660073930234124691100089282536794864900398808386680686372130111157438148861426947870271903764800633695015694602103770491537233796994013928478356461303145279989904055407950076384425857150517685207120093140854796411399375922163166722631558678762719488589126149550570321519490757560677907897658047692918252796956641120890860480992161550708861495146316860738198514758371063799768751397429104189338003331446826258632646158031777461094317585453578175986553699366296194280277738231661788604250677512345601335827783620203291941980496401187989483781300855482827043588420223608020311861965980725491870829504789998641517955546277242618679111109072180748968216114859275656712944258107138936373150091435114042684485145270813399955027865925904015441197750163695715206710413015179244432502799838641815592824457434155086387936732425828757916856938785286798606845046866954762689291831550063211137411670375536196985638173754972915735811790427029164514737831683173833148429591039015162721784112668759657901209669897915564689049775192711702872872357756668744848789134418015682038214423508656415900618053770806023040577951203927868705760396801422742635215952934698336303689966328786802643523629159936071156960791051500773156282500073741707321978929456037150684804542149154428844827449376000575677347341683008958948297239013992336396472718580708082885962807451533200617998599966508891248001939792576924413702021548627520703519105075817311290841795419851401180470369407841080611235526768391437371995014537462806311245375637560484732414352970061967725219951744295531063030041846234205463939868451875320197937201923803743817094754658691300045567626267523796937296795359966998237969714407685105194275373655312239563669274569156915727899376839954437946090865814978284395294826489696782311044076786794254317245573702048569714076493254912658123196095096272644186386459197978730904291817007636983315618947530566087513303624935125665813401064099036457138673765162577900261132465040800639692376194003222059177435540610046300614350436394666514229807033670345162036707428499698944130827429758819503827922181964166247594583941353312611491394612228131479611255020541719568759472919376866901926586067952609085138354374758853487076415813428918167835098944131626010054956173875366150144815976586681529221328343315293461609851219627180065535802755277403042852768134239933707095032537733232966874590488881903134417795073115533432884751238066416719334625346039531702376498428195616789911281216362452724184906654897954190709343416490325519640220647613104122614488771334342945984223557716422027458479098750705728683066220391032806033631665958691862356179827677119133644169486195078697732837761075907571418866035034640298481638203742834499637341512072532686675445830525756215179300694340323183494938678555192165852863034634108470988805246297854809386132319493425175345041580255671373171943227803955090487102206379153313060851273395776712819327255409022386786744132134324609484316808158861812882288921690536055625230970302399051432419505292661756248414391907093864686032406151356517522060253514891552752515652539183943682840696905226838669207143208011112828405169763238102100789264800215075273215833484903288626594597791534147176851804034522501543120687863796190617609979129633412461478333534508900314323215682701286344975527368725619058816543324830422832599195375203626448963697924529317480607131338708938550518137287020809405822192156084729690673110597178605104043064936046230429450559440321720250164220048438367984234001280264444751845229471938116143109365621251063667264902261040698664399644640217320123830347987957405738711269227031453543183667704332503552255638218294535374408919759305532239676011219463291124067659037118495611947369020275494333439167737810680768164909112224536861407553750262702963828556802341175028060364182040621826421193571460695667304039309562579684357745657707718502552740690617433990023902445195711215847715159062999473268394325522500718215973355647550715200163974135383582995769669128264371507228880988974671869839402768996736293112953135552943718547809676241422087056851679884086900882799614621374293302831987132804843921502286040937691843716067569555603963078454138500992134915145663802616343914379487659402056102263684357917495231204946267305698620623520583309753755241050096028401456229471350710307103680714822972154783512690152485643105512480831243857609347773782603657808650880643093815175359985387824185388233225366199134787770910627315364680771133615319953095275463152004374925800485586620154019305813033201452889153912934292050181255283044774066351980588029168733345167885348651304630498189544853545604004508097620425858963367233393985956327070642899792331563538808788770102810036594051192666022853742480717723528752529196803462967380177864329037126159517073233252870436570920224456874742977416301165980174478488921772058633100767343037058170595511553171297879745045068681859792191504455108026096170763906437036100920228520103337157758051744302756202545114026483576316247499654933290148513491995698838342594295365824949498909738201690983618581662609266592501973877777229360200665209836994175779145404445102387166756067287686481350947017464089829384626354280834070902352788493780387530887750170992287745666125694391106616313909730420306922261386831137009732162655178056739564821464863322462853100250945343704446925682127215065716355437415734797811481793997324096985167950393933631191713280678456569357859884172146476725104209605445461729743906113384120962390899561477128219769399782836679055714469000156665443388417078037918263956517286458123965693230428872252846901296398526290932963628902988775392291686326176446160525573017540391803319797352803139852703795937274809861224564475182265787453378328275761084121850903637689163238460816193760231850942405646008676042860584834224093462868192774368487013392584178584932940838456155084542101119653495503762231911720518633140114709047100671187670550877343836608258316049968526172107331236498510485993368245884938029205364380033076239673411080126246481658260449769443140677736896299075920256085134949645403365451480751171261932633035916242993994535894594676044383048946245147875951569218118380658846224390889413275532260812797821524399101466954979916775869419530991572945761150178373311832994791263592062215342716700460844683640224598760181147065961178183927177748499350069313518590236932161505755195885799377737902486308269449461499572171345818192148411143729347252725945474051658093261670605213254149513668759613366386624750073952586542844756639786006338128776331537434378151827880558305466670434371732768137390381058611044972050251453758600090530479997115042732829222646670100858619404652749243271464454195306330296208401090070564384203947358269505580517701961754648132993227000119215251324627192103211117220875526325560702924762560717928861808613223958872831885341474931594183948142403736378673900989486360917399101123157764721988776721696383008437592316614797870823302328607844638647909486767812690448047618396405990704667904742021164360881900509709661273771445890172793867706230386579720786211193786207930828026488217471405777929960373443335400293335247138398222575396579201904815529176148065030114496875759266406674443096464580743378241973160493105829939261314868596652085282141907882198266677319992123836584718408902121827950788287450835310376389359581213341654530286546043183092000417417070945517537844414868788684837432223297849975979285032856262745903741252959265962825781046268961737036771218925432670170534848832781294087109585689468904636332707246857163525474248557450147297472676911571206911305090473267952598818933372273557966846816196531686961098795965471352241497967647551165804830536608412514456691989471716752297577427521711099375169345335979106027855348162262849005551868280648188506603941183590763151650643697101276309762085180954344331033728842059732041173569844725020710457051368898067038295940215912222913514660850244866481802591763228649132840846668316184876462132946802696215084719211860605294780253022345595836661264336156973800670709879348601571662032569826469656610645064534211471766391948438491992552376230623723597227360804665066213277727244286785828614705892160778621230278305744361744628324306056657789086132022610930758756206028861758587046197213055649172317623127719201081061200183156706388957397322299408190172290378424949143726220232783215891035886726628544625526706139370987083305700101411090258600919353931084094876557226931465706403107352135435598677205959744430845098795950535983241570408332707261024295613102457843276625091022259205299222269139033207087520507996234283704986980227011521041720256192098424902555671203090918784617137589683859932258593090779954120799159419441244154687466337609876369860822517312312925541088836685848419681763798566411684408795365054386130858948781216023650118084473759972774155118724961825844542730177651375072610037180384172805130225660406388993934082906772776879441897012555609318938480568895687894702321890157031589881429082717664824143462532089610026735024026610579992633718865883250719015514433062318049775799766074905564402456597890045685175320565900617022206734719127620272040751271267693439259858638145272680626346259136905461391916046018865385064143433091425257974994193929290787635984887930235127230799402278223490848036383822626774404669654427245187289028180683110583447879806366725604557832199058749348145403719239307634093657173788880948872282387636368436244378383161326825139052764844572275459568095626392323577645335400937067949882716970894119102572899158598781031545051006310716697171488860187823834391151188607522694589385891679994692336752854680905308250236619437290257816142329985687019068016060763822604045468484419731175320168129139556104321907459870475852850623521300181743885849708126087613515535680411110009611606315030025772784729609487264515137355918900135470521945466575134422332307849352192629114336902817024141736427150328928242129443694413058800667161597641541099851017177079771618622622107258028884363190842416437363952026541246770861580110939220573780157812390344713019214601436441083073730928542415986988170398949021621708377830509175882183270382758423609076684824053050406011007795588257247466616357653702923744556965103017334742051077787619164986882379756024233684509049446531717858209836855378739716528173071727938379551009728013294739275634315211680646767724648768460323268290486468051779669771938055671332340358032536003295512956143651334921458965575327217187706752738150128050943195133487837789033885326933127068937345963684240959084330346575842637688738077344870734175944418751909397587567949346341500859828540631452709088700367145978537393156630938934473449005770021168229652433786369974543551357871448998222389830714537033424110695505441452158500814329447252057953109387110396717855320655989759876658053390715084256282129073826944592519313059745542299000351259307312559576939185683108613086471886969560992813393627860320436134361966950680765719769551272898031192421516716630033603052357130304555723563262416181858954933734423933553308320780570122475373047638794357085838096361440405071921004125810029843705481998101823386533277439955082115626953412487982063834684660980756318602817263325541992573268592997678799441336543015095666748819979421954710572115593484203639281449128879914874982984546413394094616427063322251866989257437917120974422823762623740898592939596347505413028120789648596180241171887919166321407569664795860484802289501100494554328284479810949378120725714724157634290940674590138347952094714478081784129678996594942978639979931128987003015141444624078617956138225061175274575539083522673192356017282097103237081990351907850691432140615930108701797703860831398270838350376614265161569001108671599108713561759388304169930288212383904234827147751446797249466119311107976348998951449836011084519375586700687911412725359367887506217039120891196613100444150783508536149461328558961256595888990669721459288524073148482962319367315619927235496699539842150219434856533436089849304335496256832508731835077467384012948513961844999574949130150233346258036378418336928480510414229762320059001268502873752192987212667795801805292993737507333970450872030143188392277849588359892465868592032006156364911928543420676847149599078523318590907397787068513962683143047136093977084295195479033930584120485070159724262115776901148330222626376448976001679850200731770339635716576898682319249995230806316057215674959711238403002071180830345772684359530607574743182994791666898384372742081924418205229729422924987998501906220285440112254278577757183550024781922222491291225255165336924278076352050601082211404512063835119628241697183408539534887367713281534167516927262040208561778826505676295942070462163345808776644895300807054980656202849382430737677721086926119795711822657570055492021493084194131365371348628114579939872881979214995086024588861632312232929002548147683318027017708224060867260508633678405056281376659142426974328171563718075182685035649969330770264658549978219647170923844136365500593738087427831300210401575217761919986128879868875084644184752991232098783533347416209853249873140132339255549231416332682916579807997031622396295386511571620200825082197504304247485530439736908135776395530008416921302848232412602679276828546525788820631720203035121110151118091092828851441493696085822942358029059694244881500250525731745024370956286532201519846487503478157817008955115450079080884072402835279738442296573081254517322462194244516576860987045350769801911705030091035694585972576915615738390752400434841951606319237088034193674426248310475654844080616188289737320688902815185674700550826706452294726059591962127107278800492032059070586874010790448904775740272587849750062281969904229360137527937800577599966746170207546418092082584924711326413594132258655653004664139671651451381943186082902646179898944572789505143217650820845063174595052274442099617047781330534697919407486426059598596816484382101094192850808671067881062186219400614035356361715730719501796838015548012904852228577476193747566117220238135483442751597198527633378811847907180913069228619310221172724041921941054472239770342924952831412268111388410669077846174974926774700776294048357730721358984464722521049082952649558327850570317273570679734964380582159997372026312668996835543337734369014185864532130798780256608051085400750263196814308957170413921655187245689064895067713106259796027123073212187920996388245882583301514710722053942258277585014019418762237518660649791406182561904092906086118073061012582695046796131828529703605951260283036502055845662195507702950765244157423077712028498515557400061455088626314431440225111057973952359560843261436483829020418301870163616828365059885461785252002695338996140301043996029345902330098266282046512632991807552333794502266288016245105369621060313558719437086601262435109247500874011996841498396191346815437808689773736372362231349211139410709454381854876195696079014169760234122543445307223511075816725605434420948631099203741816164865233657289352983750056489743753715794789551957574398512608260233338485345693913461214020859900407229492108571489598693052836583015958564191354979794565758495416714710245564824990720223303526317578024493115787112874946033810717169328953245038976085992723142668811264408040868933255150412045183973860301584709098067284829218325316930984988198668156162456497729103330370895163870782477992346901991861899891331467374611714830268485560487214453037654038140325475812790332572566038705414008094846748919633599581807067785984732452435424204348709117742132843943269211362671129634269469330090105219723868743009555586687765866018016634224574132868241588854229733880428949377875584583556344954849306615001955872980132307842274312265246839512938562014667550409419175017392960563236905809545671402279888975277714388356095418068456300610319810023641001583110878488494879370802500993821752408488554079578183872279739817371700110038482596942370031486955294516550888007456773909682544328795596558226125341799941227766873592407440569272269510220656748032539172420058986302746057569911503784806611038993783174330456514407770813578555574914798134958074131834871378308091211866654907874759487339206003829401747342069578828791828725498474582932207491998013791111418785248179979659157613709980306030044467078603130451489725973601115361584578761090467109575960509895289094115578263055056660627866456991744123377814155144682382671540514988770806925866355030846196210472725819808265855035536498883926552818631563712855231594832180321180133469967454628174119020227774071943214087059528280856556981038165910590161253396538377102470268680931452018361751082554841519550383266023656100839702573515008688768151319708385275743557768260168115139542395935520816981701460038488861651137589646966169799038484992341140255604440715882355500141059778891627296964594390266167402024894101491338604446047549040530386409655767729048561969230688966763481520070671485599765310314584173794784307010655857510645501920123014441093040147783859484950950179897818273802015031033464629584130061878453109633001045541406397896416051002051609571151817376551042914907859790601335006342505724270459534513539718243699652890688638544116759531124508353599134438810363526167070795808547184048811700812314404709170510202201083609512316470123911530512784080410098383302167626824141943480777255922475581181532199714340898487430180023479778764193005131614272694782424587950542352606394402366879692904975168219558097056411665469403037874296078484687178375989828435615450561951634419825876141197501209935474549513384735435653305425763151741937414211358161710057711759756417317457338001836443743402128804413397676177481818597371461209276238327868813773006698648485912429014334519264399306671509602346027163073929927903998743691023927686568313962648370139628810711713735424889972909969415488996260407571432089150937687022535913292143697268461183884257471860433121543293816595039386644356787342367589887195308723340462071407226694621311858510222812997372308414660146249238558593588015117409544955685723378768489413304328009103441968390608998532423387420186568309882429819419956027259062249751201950896411800834854729236630965350220038255080406425936878495113938329291812577674013990387853756704009954541855343175323059618526425126241222849228684100380188883474462509690572496701929903052535410153283507899594686857815881608831739691181881986675047231900533127427888815301470692166136621813612403459090570588028028878517104701103635302903556998101433259227592145223080142734205778786886764247960678898457677413169070426480343534608490596393787085846625921913588605482833126587128387168488244969463071149355723511523863681382201306445672002565799026249389831930605657848794665971590695173730039132329502306188974057568711884516395246512290187446823058805200225544951602765654764746949822508828493536621172762159055341889048181801564925578674081323138610085157332127698318962472596904680746617303977660302411632400424622085437203847623016664913640890961081149186934338560870084764208364795115193220226544806350052707675951205482582548225930331825189529307318993132671978720787223554350623556601772880754685179202221248244006196471021046384281678847912561082842566506763193808738165865472838494231981353336509635820384561550509575496347493941226454995775079850746740337092446984243420188240399138137059205921236585515562237300723634011513947496502095892373343365518561517124551480919924189865508347704425954484874859180643228993131371245907244802381484017075641129807180946431078261189382039452453905158145473933941736486639321932142240243935594955332228761974989109508232647700984687609628722824031240892535136635285988586925708887836356059856101638408694158583515828566554244921969504014395144768883899655454663691807294837195606373092961198279993307590373536780529175787790762125578090649266876037526365262431737825030120340393693539879382460026748059007953140496494492814132812965384092212375163258346578983519075530509238912076244058229684510078392995910974368792282376721169029055349513466371920342732667140271106988433904437210297079990821105836385021250373776457919942813333088883387427057229428678774659117252313204787525546193927193635469833975661061562079439011287774603305782026722839938554179229579902362598287413860873985687716503309557670749120365725833706973815539266170942618259250184432790725839015843802770064954723752210382885059680337191625928334155991296098521352012847159101367576908562543504616318218968196703261839969644393542358169810285911488754411241491328730327979982297670813813364306924563127886756278519688236928763621177498166689362621938979838875992465431221382553494190724453363475359576109772331985650399674262529282457171555268809764477687001335270574142257454295685310395922994250354142722216804126560742005455007868794545609280198003506269032658578584531195743996696468959323444127424220013349946369625785212862378288703331837292522999278084854679789264935962195662631119279594641396559546272331382107731440972704151778327777811344971713420243999158407906125030493706604158655611212046778748057121447209416995571966596150805832220628234643930318970748623101356907012757588399393355488559493509328395297525766719134354181635407375914961237783086602485021966115185567043395803364658901820000484078546684640530621573046860646112471675723983456076769221159012335908517837009126727911351064886478064370016266748168484050140159500097288615836769422250128598606555075458683936637713592315774656660362087295433296677300303382063240490543131148750698554445253987847022714393771654843686589804651565581298215747980710193440534820095538515499898598457119149047590558660078740141944829652192014632852240067676740904254184083180483124538073639236900675492132805882930862842686233361775965964394529193099263974920191870868409269685398708525560060867900327522527475290339460220337984929410015093545407163807987288242446486238714408734786925959253680959657974101530185153360120220415629562681391847704113184788812227917003416513068064359823778509384754853977410944844176089647005737392575858681932142721577749016487076337687259419914664865482884609292766431517721985280314763383974910550828151093011754878893481625145390001002690752759297063485231345590944385340811010666524336568723873344142902737432467605734291158283239783471941350555849090379461087537908948475687829933738999128716414822176967187614487517289190583406222448823094868632266390866306511127337368928264421428568905911370019341358612195388061388274635147102205488836507635806931161382404206468606358485833524231042980513081493631296292737190199881103005588935101807759176704271044267048472663733722174541281919397361646960104715657842585872480675822696352210338272975418293110475715933434265502099513268079338238145976080504542679120819596963770912433527221461536207708331235309709688571739085202994249225722726664343726745466437311088492557754833149534884572921886858615520981190350480605110211623232392760134831996396255444219105264234620787200603963843524918204479857321554556008447135705761618810954790050524481934575180619119160824255220597047211106228706498102302453293519636097971345094900063403096320370521207124966042775212985213740607402352210446586132576203223658465025005846032186724045611059756336669285903534829544431578135294750125596661636357931286530215361150561792016821490586532357061729686403852639206634829296966121407061440637374612604570164665426415628597356320427128209355960398536407133855034978869045883952754380797017671571791225633800847644500697578813715375500785829829315514359016520377501577232755353672183720794301484305668723142648206336758074619716296699131923119160998329626426256387516140691069367996473944495792566487563748191738290394901142187679702251677296708153718987295263337681403314600424075097790499296546530486829183308814197812673446738337562091017626931253532014155349280944967608513242828502523277257507138402856695619622279329546763156457704730887767869796346369183786054857544826377854710917701554177677622227932010531131400311649303941300591336650120738671693872860707075058956377290650139771085208774058925457740570653047314060875720906580491238174669768298467160999012396459558838379338655446581276339147040218582898831946417804199897949941119646730790288130761636974487001198258964026517112317438487477521501115248263360559321202046927730027214026800148593943983465317100870351927850426621297136435204028191917246691855325527441896677957065244825640764897263780747520386643780809654722511780407932593145002965990209323819911584235476331525857551564087674494864673312870950337911192380299772148806249085235670040747747360877893742700537874643931843382716938954144725912914763860402905740372916518221121379422359831409175877516673352116762440210444338057113570679180258546927242932467320067816043889658575323614202434562017054388708221081783934096802368107352604808216927784657190351504625217026612340723603756561159761724868733470074887498421060515574750837926053319515975552841578119016543283769398488350242659732222895310920749815950596720867335654676444872940657867201213248519150780123369923273536512340395249149888316354618616878684913935535353813904023516868885245247878276741748195983367362070564044554693607864347576595707289569011920673055128967930593494157310921106037804434096135599344512630269970968937161066386368308925204487339222474801414099510296031128698510974063911742507135418197943356687492276856300794483319371998823707229169828442666468405597750402491913685499237831180905705972186385438975542016015482805070836117559115271977276107505622023528538644717877460469171795573556101141458739120935232631619070139764950396251333904122871960255758976744970352648666962089731889602010802085704393335830720066770028193952888218231822669912971116155766568556800087252839517326782702565531157858327947948267849563139939853551194894103049504328468600710745367754587044460320810090763720648623727240990478050570660634800860291461454138355008503303954736296920752870650857524944995039491487280086960977219805785888722229655147068796091375290903468531000301672659635248561381791464637393538512200321695176836550603737625795098558324663617126483216210624319077312650253198290270102068602363145277922610892224208757512737303731871853739569389776022389754766603404739319834797065470297032352898125881461581666329921177525376211112512375820754241234102322796887557006887167209276329812775579852651673772589185970772765011438677081274487901471040675563171280336167330064140071390795639272491888575906693167462213199571322364666286980039668491932671079200383137664080552544660144244814195834435719292401444251431975719028848391303569477669087371073619540294059738192571726670516597779515965188569890329221644964680174994200242413007355555363395129912793628421336067129338003752384035546933744206124314176126408778980561749329619086631320991597014427170186573321435769295768719973044342210600745942163576034219185339343489723266261677976435769562371329244412383068349533921575846706605400166887729172672725542081278489616532849796181396687146288399048707732777456030953785930521071773239827403835889756071119992068964908758891906379149510045266351461194928487439762409423904493466511200477006477107594840962062331708801524585409899722041325777151301173361949461268191213307055591714268083587930470057435760154943397143143721303792742764562505569532990391747128669708549775020934685937695132425024650479544364944049768200962486487154946412991987278350815975443469812210872337956401955378727004206588801103660872537522758967210620282110562631709346709198616862346563934693850271853760290606566873748219217307632937919082806985298865777707058112978280562957211219439243585732571480995426920229928776598863323934543230403191765665737845025337976902355173650760989077693026211329284785402790226015547914692292239101713363627401581442015595147215985376950815110700104523204639072296994308865094939088878413388177931380295339884842047872433446392972429213584455438361686296492137131397348753497337072167444045572721410709106837396858975808510963860966272503282709021304167648069367832395763522711480122892213944483030668330351106249801745386801949786175398133646503726980818713360440021018592029061840795876000660530116741910081580003347567332088342100464322180618845990492689004999182476419923929907724420245458417921355510809149406012056695861705871563875077690178300506546881822347820803864040094717559922600785908406206290608754140704558179761855539462981109947249559250125819113836789189320904144964331917338278202505396759049966572443978275341754534337031920766692530769839410177070638780833024964277203887605808769511577325747194835967945692189001327777944180369009398309921208699513340630256964673948223098050532996527388818745364359066890656655107298692393261554037990832465159191051713677110789327289092105622203165331533812200650382653374547350542051913311827797906762392004829824632454329354805765182661839826380814601452367116621133378135418270441249484113179001673807870590205150340727769113776940192000778565696943836500212410689317231000445045560245791488396253466655230403913907437501710501014458347130489142508387620079904610318322352871736147531931608939602293043641759847284790581716248715354059114462679485484899332210268650696434831183963631557849211189379059062037159073668766614296328985491291603108497663502374650245839826012945800094426862698044282581232374351787478753203451224274299646961707510722267402921890338141269360920471701395552635383341672626832457117783638888345867103089331833850532232269578922815179441289564836039000810722395884369017318533135057429603063410196471644672729089901692947570260863651635009367429563287096336806482182605622008899753887348038954563452988684771801143498569134718095868541922568040873877821976526950988118254412217788104194888093047298345135940132466956065302043225455453660698178004463913190500805146557622336456378320732874611176049760456927559313607744982875132887885202351420303399369114474371434918625487747558489126462189700604403592033765556228403730742712332787165424026841223059068388934685954485940909328583723568855965015087773069654905800497699008205969122219008172813807721514688215758751378213394439237183309706350101616825554565270081736813071791713262058849203680734198665128785302644507669639830087950790481365119442666244076071530472204752546562698078941788709559013454733802474857549409519526719981367043925273205937366363315475352499142414200068672246697564811719376818010221307384571494962399529058968761076272781988883172820905067253798594723696673677823244468875835531347530274832733401160754799569222876382216287178129358564952118400782842893518150524818646912919048170372096566079933156901327525282331550741114149929066479799837613377423879432881958649151415575765333979478576361697565872414274333213464683380344735004167463260589601019044604309585979671943842181106039593352668469961913887176495919987518418177428812311745247465226972022672843797777566879700785044882968563574274542867509365540009861747701878219650552876899372334108528865460985344110813208070722505883544659706547277624001029098884213070631925333887047220987547835189777540135831794637588327239237467450660958141746648421217879530134227101214915815010983234110648793800379615551764964689163994898787680847487579056471437354230716466266619959157629908309900503212708708744736647911626115622386950924098658799699913141057764487080884257934712685930863084877651547704240118185375846332930892594908150199627662905824285867486514733403689759880467970360642332052455618331233495051072087341072205955437166381604297134766622153517393427580846256565452487618580381786611950744439646620245666336381336068082069791704038279699175445852564011894313224480794519589038475039053675410869867775209527976029488207565716257232049300890040852428241736059351715904430869453735862363996149999590209676659572139700474016773924047365768992353629525175993667982820194127408779337971996227443041150321500683286678141658004473997836073546110681785999377296251151323414801296636336298679212701780099735731512566926067292086579004675038815831285446681883468632346285421225337818701038018158392907056288066506128406915309217409734449677208109720686104968112304268894471585729034367029240208501439492062275518946664130976295764269101742300876178568836946046885144325207636079457428189572317626930716905357207500155566583226282561254604290124066823166880016073281497375035370376962241031570183975507594607866191721261541152075173411511449443837452027880202606265990606040666639701208618402179751068352960058182390400914793892433909410355674359058608668617285119927486606894428117019136697471791220352005557832045383566541656582623514488331679854266075558459743557167703009925779642941431004327751289292548659838484490718959496601793190413982384325917685502460707382019951268195108405258161346771299537830525535471083990695395320723714399096998988020810242075296088309807729689715915725522959856605085388676305146228694113327561071460747223860997003128312072734461334893139870874115479369415973091591310019247625485670902617358655807456237418716042424871487524616440461913110776030297888202601372991832797309832043668834915701805082150751946871690870834510336329318678830076288450708420087128637837945482301572757884033157019898614431266121035993228749096233754852330672253211020928530564972524324226225914161789581105889677942826205718975153042100946707304887883925678413457744845052096614793447088731540170155560286672657351874081485172223023604085893551359536394510873266072473557980959555630504450064148126692181819924149469593130133395762942826918131272284696973589232438658360511990537805843466185513744304504256518026314559805442666168872604800183661068381460420000140212503801040513252807834118999039800646318435926624558298214050944015132305848818973367791971952665999018189461859389459093993136586223324456805715968001608194926737906174423249629511959775233952511081913632898334054314653259639349243915032510443302758336619517224653343496322040583597019867097414494470776591570622345930131879988867280362689121917959509302198492729234486359151979159504372712692743565186088655686829665803355846317372474988747705996185303722939770350927523910019367108163278039266503870722482482684660301818480372420105118821510469144866626233140463977119720589812699655480299713205575965047642911240288770396963321305300816894303918484293437005452725258154936785784457801795953871934413764168777623726437504329334767136403192572067048906718746226574763853232371112191386151474743651155200209487282071988662850055429981793305698606749471745810395199596128224673706007289338055078401387232922867592966479728731632286937428826259626567028180160778514146409267373626938724193569913899984712944104681101973587181364951135166754599443577288986779623090270736844587378394166219077526092335180596924483389049251313768261102995162333144568589333659171094587416518075372405587349615955265806789076095131896534665250873561088396739166098102324325542211008999314126946036684039859350453393230999876894042230156788599837775252440880545814575874437419462054635337846180037719417541839168243978959954455568051261099660454584518760194019741927402513167293301187138754660601455212509202319938838478570255420539129715020505769528912293443528161993207272523934555951016818530129795044388472445681562635339717493473911421691435855333907162095480911073946522357628233729847820155733406681406865031867047120208085659778506779654978344286212059714030906546945809861217180749818911403516868370005561463546369553241582741797325174179052663322299030333798438665595820349453914212621558238085995962588922731024008930110546025262761531917853779894523686638286542415144390692205045606102850534793497471071660014560279992520526208501548242008189550471905925477247598399716733024781869286230122294967872741521608982559836775090748534882823788009470212721634750265090763489924065451154965536757608717785282306681206676987686132156755724578321051245933275276117919514781542504031760290048989675279958415577728110622281630649689408591449609182552596844581681711710732285125385228867972833545345101150284631366426592176493699645355880127979654579774857237803615408130256727426858109636796472008411009841865124604286157926799827431885699807207635747223400025831635906206248342479463545614941956851148685100410727934063688470843781969383722740804215514646182917802974369512278009556905000852336837188715888190213739401725878941455183792971651595116691402540449314037851913525233207649256826680106784870981442336221467894375541475912390025085658491144821960485918073948189768086333110702704051316370211706841592714268432566714646272618258748492212582264360772554869775492345600250059977659077166921643929464304531292368097509143703187796823635840636082595376902985448040305500317903934613351761577367401542578366502793151887667891832803916649649740937831849856691544340273856875539440604592410599259991510460782127134680428059602390889344180433122018660829074494281287289262293277948919211079925783606639386322154812815628713388582704137166996474215552202975817745588152152510450324448183918758435441604805086674442615349526043167116800410400670807130778016149314083264971560077157566389979230030729627277769090399321927673505040591855527174894124941361322801000556555431514060676929540927825584504674422719136416772531812253196624413979916434866911100118929799195506986018798998895024676330847035063912768390999266335690016523950449371265818876932267767625553924055214530332510648584383024323969145138490756339151555646668820143156599846055161661055711172947738785791263777569043240607984177490936445294303333189170755288751431645049171377642267241025505890250464350066432492902774524365175721598695723108107569258946985813082371475846409234257336453336889013232846206388981663087936812371107755413903802365532855000100790351857181549269335045115886699122410782998628249347165657908542826418812780198525787861917969146377566411502446624834819213890281808999113655999854072209926191411751874313794458611791709045949321177569331458964041670027932561024489107478626790089689974818150788157320049710625600707529687316923678370388405804746967679739509923949424822748914773863936057127446906175378345101428422946765855631860113009520015912019923037223658725904866112472159979319120728148212398407621717539875672821895539223720087228308931450450966173785309804708220094139254447756878036819557459972679666701107692548189376766711927247838685285445820861593419005935670393867797004921425737613877904422300990464125824397301025659318891553202060602079727375090817742098605528797736827193915461513204407163440236579593060153591301546234754486068942846021793249713715746679543081216554785873208779532108216180862399443121548986795300546547248443818739207655616947865806814847558140473281248144253808658495113753834272070359807089358379234100676869244046328773202284678152591550614767235272795051184906261101688067017024209009513724059570457067192240287515248838002496655047966589811832878897827100424347943330575695597911796051841662981862903970410882033687345192173859087805915817294350298423825013741680779972891087622437935450897456154634772792082186908857442964411957597073434372573183821122006846378826008469106477911021688718107877961179938916059620085913844861820681959229747839754049820704226649391072222761782753104813266630431189383628980127447839797450978057671313745629692937084793490378763945595003917097880636718793555389974604661703931139097875555313406300635658409679265904439470131773295136068722001208940775600296367231941614428269157265308057459934665069564632803451535096280366165269284882200893715755937118660115313944123760361359937746087991768969955198113272173578032617342172927465419126209612708263619174912260436242432273760213529136735330528535101471699647244107875452614089580941098247574362641323498727045425063914259257293090480255334722682672451459029315230604374797205106125501079461436201853389889488786080047501064975855590853975027279273143269010656913104602482734979519368839131668575052873791186389727558231325866210633946931461315279042066306570024659268062876516788979800072677177024740457011370590108513489265391711101720159565065830981756773028488499500116863074898648046039856881332955290884446777021048934998282406125357354040834105946304285953905645844752115311026105101143295528021616299993389487729237640556480066062212264959963100177653954675689689348173438098812897763510372307304050222101965284840894866383660135182760887594541777928530147111648167035751821041524557429428781205889581485864591624065007587662025511400963202592238630960866142248868351768758810487095801101293848134139355561032206548361012343596664611339462302251149394270481720275396360019141094479943990112928380803401835504284370504109555692115713976950983006869761619474373110209724353617217954458953858500482239494136065198769066593940777895637505518482935075614136827379332031802703610605042621538110797063086407041223832995287611665297797582098544639441385348175366613660535973702013157940889272234625289479464018802805602036179653763053040338986924079568033795389322037666853944290148020880626362983332411761558499507936225326970256800462843496770914936797755925549911472966323505236960995530227323490377483394832997541806329974572890586723552057884393045211376491913660851126932288288187611224647151728175406316104345419560885478658108916970416389883841475458646551080438532821018149386482868276908975242545686489731965680289038770346137980688894848271841367990127901457063769715201655353822145253020712403752289243830216796072656837071787626368366197763728158228066130519538585702080428394577280484197344797461666323163243858342437515754954049215853527321547860179292432371303625861029267635233507544146816350512268828154914660953829993762829082359641404511152685014524954314040827635496623093519598765236565594140939304615882023332014307579705679432228580869895027826340320590179927131741917195945542856801409905448984829624793105478610981644315227880965797854574676694351261870222935810921203071149759069045184817555958505994309718808948510550847535238483717721896513979373809429176438066652770705545882465013908493169020727575487550183778781151799065533683931806856684823901883458692217597962423379250513024780605920903695016969917463121334750981567552438929554846881405312519102260993169234636224002697961752667309600985148823554240358280382549979828452469725512045306102251155758255356895648444824268080557951030537903663769862255935571655739697077153217496729270170011216403334631773415009792185044715121697999174653894574707677020368902853446745855871066724274076396952461132705823504458098354740646211398273007501592699866513364383239793494541004047344541076033247646295263091811569298347589970618541309079740061984621566769071105354672500667426662043925993990225652363592968255650311481664723766581749208506484044691565971233891227475451015748763936107789544975607874952244402525575433781408601672971498816004802407720247971221560856389654118524821365238269959888723627205460787499075967536980886824012593927401903430652470009815448777407603287634868030426364003924544195093607795080089034943496789053766124642453503733723177513586922627002340452807857137252980144105243881745331131057697457785300339490497585791835075948690776145616358509393862809824844367926358657881586506652950898045554983557072195627014605215685335667208732063864927657789285255554712780064638978538004833637124431994185950612435522001373753111469195334733011245926544513784438697563830511787976991719925756185202964020080472900351236101015640905241532974500568655519704900661772227217321535522681057490822722066126968565358278776396117497678271477831712712033065616196032949299342144339215107818952293574185836772235388181039292594383281106842949839629431482766153440599061661248195463058941473543557134409905914001554557076508151864600845213109310275290340071610184416370743585464144947292316112631314645951054098412273172118403446801090995504675680725310505591347450859288062522726527517470971263003769765667514152517327505474518513353698490624803874330418309932202839512222457243343309541961136264628417076651785838706876023979711393308506247174111828264473926356490039656639534662002540912845048973965073619995912645876491283022924138713279391014575723742280660772768620864128134107552727350991846564380919096561208432003471188205759137135199842371355551296276826168953925528311693808352506714982968424803406031627894492304416943025130229107251861050819079810739177717664159389506005393458742770805009458869012248308894081821981658283267578497718690536250561399757567284132358849383105800051576544532325291738903326253468074404619302032676153113076606512071620737974915092839858208702376371039173121831090905418508085243032235221521819183374365795045979114002059433304745270382132656780856473328590203174572938255011583128158842095792625284177284241352178679769958539981762279424774300464433262683320240475828804158829478978632600335326437939989461273707624560666312296655268856225582345356816132930753661645789731673129130500418015183139241016328256439572110816502524031733974947371484624023670004583320397646122324338731608817399149284599790838999221018137961016902152409628179989766675553247922062068992634606131609318886943859156473123696446641264525974715318339335589486932609488616379916490493748591354314938500786362238652968200831367911731067243370229345570220017368543660263166317546961624596911630598848008052779793724091823093004063118390438864897725699016951486706478950426762905078761135358668191618961739082863455988645858841879814037555400058370254754848298452972031289713313791721293306862762708721966183363901620853386207129263082868298510424050769487321864155775255480581140147240836786981114054203336546515222042882193876964508329013710534695849235510736258159112745547968997811981229906627236475923329779495376066358231931927945012121850606316023314651903702207285149543421740431977944437201303738009567218230242900170705512752646590894990630562025640742059300846863848297175074873268631792278886790041524251235472326090530041887611586975768227717234069416641557275953763565550277439604213728108839717084345287189604133024494321209500576888990423343879814076754410270444914517516696395567390581751815525073113496580356280184668372325121584348820466921564269497288460525942090087875262635116198619464646462228645828096371214866222341919859767238572817402704722007104797807164486879448263378880175829928092550820754813707529438480590964029425422505786062704181766429165093142981498714662876597446857283920049524387658648229225120387591889994783756065114230675946101643773638815697407492899531533812170813057166370227496371668840903771251608151757645493658326225003160328529461529838674219574921917337114367433002115143017603942903124570976652625802188743922938831321727227038270691322230460410529612679761147090458102770874645367890817142165701320570491288668364586189434772755633829490671496829974979958214337686889703148472251373984744272976231279494191731311523366087488102861557557597115086247924529184109181978805855283501340886386290937663140444366285225165412897026213669953335237535898678886815451569195933371384211823979441582591687430961696164951764443687073627856208723086405252308843642566760768219284727414142801884269817220092427990368230017676798864255362114082176817090135329596761968696118606437694103056930611566014668412512387429459782133217882225077014947689329332988854960232500727706536425099275736717541780284222141435081728646936676843842059822194076083873775313694582949923696103443934132891646927831060238105031370029962006322838654466422099705691894802655207365473674474720404247665214738003157656745511517343438510298077367916610586841415191385146359460209518501204914722792742389120766525210534926770284061614456547219077206534304466712412502504373601304519185788040833782746209849623103726744039609444021916355563537920338515101316931399431561167058499108891354739365310557609408165275811586742782428229720097743806673824977938472638743751748915949486897093974785411829879760388958472247250444320228196062740785115929001183094141384618435784036663570997109080229221063992689318153780663082574265667137998039317692921366120545236063079028248480084296062254444933929397447129019217322124920375962029346131394214169057419170243430346449194464400570944077807070357306925617552547194920669699125960634729216440205426861346232801940401511213453381892574699181381876508001409119341071610014784679942796556005860277097176694880378379897362213289419867846937082203944311446985806146258666417312555083674540687203032315444047951304323145194983441097024361304454999219750028409425639165954458104279111042428621892010318037561871351966105220264914403471892208160439194900842483250013525996811520169953816684216077048983573468889035388846700679374603810748447573547750872894776505344249533296277130059097141749213701534637809521954269776015343551527876655488468265122096390629421319004562484619668369059677135867645087174774172406679661675686075197367286502968910146115940946911260463724716536402366804701144855088148158864236303321893923208434349749175089557936540374306439161995077710419725712328550758577609186335620626913773613398915546441405327193927504729740644510566194428470459804677221941036959917204673463426457751278522580260543498761729418466529382875834743997644010317841515794455279779659351058095847684377047944919220907796930941711480867473263876497339315708018504223461731779224611406728585669350135883445718591563077980901770774587577810758691341087417204918437139935949419002879503281331589908640835900323728581105213463947813362440115700217109512294182589402510213674946615781354137277620324818110192458058683485839402287417087977337537146304002189682484745561366184568861784497813128348133836446396096208510815928414322409057099313229934592246343675933912970643184559338117543692964962858316085421433685556401744596563525598720919927510506013714301433665168858753564278880899274869856816574429490174097389086180871007845724726559228497264124288379602838819606243435088865052783471798031740944450582923214638095983228598201830215612608989331597584441405275248840213705231321304664597524676481866225591798538697361080987571092283426256789504559517742536314166322431814354658575213279833326340301751846499909152227578306496393420040469008160485845690148611667636553728565819619336811539162468594777467968440401250616161193602333194835386979582760081113075593182603914623606393058491957712516094152794637603319701960169001347877330414208882216429040203822875897039405040988209061982230427744297817512749547982663094970442695305733274246779772096912582735494228838527063327286916172162474427076668556350429658890809519054517663688172016125447524866378751787991458978131272042168551180581356693609845556709502947956307864953588905146139335982119387798481765070824394493608141812690170466771399863480493550400287341325119131395351259238211770142307290619299632841412827362751706696643884457734970701629634069175381875597039817272744230240388945339783155004319477396737732044048282640767062245036927999394021250865018471345380144834458252520195810494538456407084715839749889580409120570050898389636707214871439861750565705416658318047904292222402744348108190214482498472319024154480334549602523167003060395809697655794504141761578153688638410969873166056610033128283651824120295477106809289599282950629048638373238344624746039396296340340512157555347330943230240556810306005955785807331709001078553072992937992031767845525985214341257902208099754251946712037816794643907881602456054704062263379993183553263451381259061112410885163044448838197290182608502901246097816765618655244921446077230336412970364531881471077046974175047969387773052852444168645455237670812317988075787903961677779565817490407146816832765001855867644616673515441424898486078749760032695479081782154169960788709883317364347433244751585324718722829019855364976347417102427742183468491833393287981349585003408248435248786803281406522117263137838413371557710833311859789533010456884926623152513649403811682800134152811653642281897975798885958342549980682182041501945264201454241909125356464245435499258278570244946413366753274094487528562813633726510118509852686292354069952869862243846322261478850834292597206648958936524061919972947836688705958138115861217730045266532308691023142749162980085863067625084207929571675485255947877439827801559803934212031088436763402268278652580042396057311888295048995759730336355806687832816029812393322835727318112204154596440254541319188912875372544875337008053579864384808249608137416226498142165219787145066862482601732801791035256310788007219531177981589558468041611076355689714765790955811067076329307532615093499805021784302556748971036405586625897356329195364768550946064827504533839810551072045600903172188838233234391312079301750704781236348959357238303448708289878791196750979368516720368540268445055672232080037922041286548515997495325117333338494698047692132803068174098134028921572910728953188561301861755174795687690080432661782017224108688873383561493478478252705183564314435205797521072755175159379570017563091777806117110400344470286407394950936135429889896342370299245835428768399001675676007328264309197463937431833391789804127329623462002703891757360039869038256197695055245016130454399668362198697269425405713148050776591961700694600252174907472297840281172240477418732068688020460984898273239109990825549753024010198502689291042520251672676494279450260644270516976069575718039215043581774874549060015886355476320057340927196417052501873680920835087596151209437188866089476936764116038476264424399902386417828342803725981025775826190844317882553037224287246731396288635190502977368831294619171611428514320394175584921845917040859254716982877029322009595816156472381732183632839795047163644776494033156961964406871071075427342253918145831022899970139281356744058305684977642115682052690022713316561188408629224927070701742006324397251867840386274628159732169168381292247313849819343753823538004914834204796361887770451637493635763007639430502960873021332073629956035077185270756788602455295732040441676472033385886751567760506425021932959784389488269635201635964520507195926288869219279765951336557100391504775128254229722665370828744051317541903474888008163239691100915686970945349181845866091852355810245098190257140173096419376747458971404463760749254746244475928912036015457445308332402370154510478448576273893486836978660461376607493168674267984953839881709994657985231554942401361718256666887571797173815880263770574052927411944220017544535196658490458530710808383815108975139273219882510887577864877136466802361074669973255018029903332617274029848505757035319561568590426631666151340091602453985600279111215359368746186650072415481232655191140784498685515271451917658661429733988724364645999993804742627981443333793723875529647459891969749911135763674324044107809728129020495824597626501940372037557435280636511153344711691649920592474343196154520987771320157653968734183754021313507273098651453585381443129526441916147962157522850966523361449718191967948365331014192273473566607225507723553718534050974484714136522294214579072055534595084197398932731596652221716480887044777771173915624165281641237494280629038966692218711840284330528586861274317277507071216374229084698394755708346261851561874581428638113109441434429548729960077759942506123851009855241234695719559178981223136633540481556476288614637034994459959525849984239581421311796259752908878838417022538220489339633096442375991762119728468432076947561619165652810022688775644561418617699264349429850022754408409888892636012008676555909569568968202266394371942818290650572679372702180378888343669551581910714797412870462986760143010407285912248334831270523908499461374965565824884021879560204389667646838095557185371235382170071989941745875825091654508016825414249530512772440227044874365217938085976663872149339076952941402970975503382060233561239378865099554120427831333329960823645539904500647234334180287347316283955934191289143269956295490902460763205095798714398114298947108418245314715479234487791914853770653165784486864514880336323398027747940779871908106441747622891962244851637797224701988796978578607233732228447766600994023114595538588395260090164399339718367561710851857983521118747030305587607108440538246997512995082788583805860711740010427188967666737557833039704647514570058077902847653162264379228875008904096723570434996905422381638700382216740066811079891887861230613018520359147495409649128203619203491427387249619550384139721958445418043760895668452459708063822516544163202546430252895828571719461394710747310135655758520170367475129498465606080201203661189915516154389756727631618575394363593511280135076952522732759080137225185724177784163788461996621321716169658581783517875849252173812250565072831162800474021334649185545149212628648758008470229361919696878491501857632239016130148122222186285679164436496933398283085584986662827451525407082439029919429210643644305198459022179454561039339170664026152746083942596397798734117161000115662600476142025465376169563255580490287139093196880200133242110841411557167819969053768850464115839814003034440507994800230222223927783985546189051350342823933468079807891810055136042320062246719131762314905412281372569462369945339326724777945507475860419743890259829682037132754354873696375433891995886215116383094598609190850266278598230792412656019973640402539224286881308379729066365994013406395202848953944062981004341597909333174253795449070083450621674352098918363405548351206855525146217604236946096703492091313841599499155291791752438052237211132689609641071241887551367171541537311976094975856622332330757340293412687380116207660124104836655871342728036173821722586388270725374021410603365572972872591028703622742222133213417632052884298380500525648270019304524959404476427354528635745511292967967162730068558537417574548803989065974514877664488342755050075684484448700888246377284368111148343985835068097190396317647820024898144974126735803771918436404024289411995651835258618877792406907989594650108584588323448234659621175629851375493958868545206299753217980748515710528386688504366451672856932336067556151402986470451301220460538566458940125779896210677159171489816848020468522270759949330877164635399101206482341337117380498176810473713341300037994741565913170023133557976076935091109616392929260119841676751157942240237993631650873374646851061994186855037669277176137416213683443904614247178518252273062482563954423154761338151425327034919299843058042702224286397330333717553283350455383007556757219473918422890759953999362040885248732157993029994224170963773128330520708943203958745658484475717241917850482245468534316555827817957659190641822803563929527001333691756815053790050644580930737583871750862969719069140149203180166728397348501629252605004596212239329584705578609902523414522019268710067131955505608814776516994404392881819976218651203174799778914634257516203552673390981466348132408066704579882618245759274407724103457851267702950038229873563674345737338181979282140747611609924297465920343625863895416801743683932076569151499500165520841332740912857976730912212297637876863354660890998219590269563571136618916182507020908256285761435928440108272625965582052243419397980919733310528998513206996009847318533978897877879124520671761921272196377682877410753518505790903459247744779355588222654536943924050928120542283698550075762205158808135203090485771017580475639467064151033602529412996138751243672465138390629427033706143191554101584946496801462009776093116495201870813537827788026082001668910110552291090198777389199681453532012456436087927981001266301957628739423078312141479130960878701252437422747649474849735451967471662711839442294254385167102773467387582880791020419946032016877754201080186094179975841928557208521395912238864400388100547564797225334631966647212521392393622904219274208113798085786519821366546618586849764026523015363873192959800172016149935073000742918331514939644529326955596590345064324481513335014156950387583967155102067125039672032368481713059143344442483562365586274569294280379729670389372406039149055193641151126898912766008686266935167969034140124419453032577617378994903898535646052432498555080953722988391087448099504389979477494089318210738106433999529285899655825891556239786036522728245138020849805927571352064287000712804529914250705649905551751032172999120321925287616282805439189163183191180234342265325143900802332975552838661629626098939358774789148732805585228240518153734326517336250743495677204315445775312064057936274812659761862635138165165729197892606395455269792171241117503569849466849375325542143433457893156837514085083901161756094891236991907977818765820298161002928053722849073868832709811239539771549131540943788160631520101586317447400308036574416773051761318599491567211475532025264934322889231099416179042205619104987802464836541770405565327499755433648771501827144674397690734043406946096403550785416535570601699485550780758920254566410088102300450401328990493978990948257426362437432253002978505942196413600145566837142848380635642412658857607010909598690003101359647559752363739201607809049780236231774035742652725936837743048846464569964731463123243481945774128700630619254633326801903011626212485574467425851802809748150220335504470669413484255309875976298038989427764085480800745176465126393629944020296919197953391451120183475835826287461187497625212636295848066909675020816597653503326376207629502534141372566287430062895098778970525959022243736821875715018076612162262210172811103384822363856513925741401059547132010372449628918416670366096815921338260518521543308587296210417421709420203354120944185378636376427964501822782761753570488017907904014727614969520023069225916400306335150423722932641837982637144158294742124394542274517249635390505908793930361066943137127389685468694437326128002766613502794365571409557416761401534788446541455438220998074966665621875538636420317826086453257149232837805106479344458157999395416850211659868997268653447676301403445177913854394920693419224541083815679864261436404750537570980719768747711781866639141516836108073673428729085403689106346371955379466202348078495086656546805908222529879862764209705590589062772770016326935886411858750005479438334562710835743350683326021742465735554546491169486917307216766279324162621388107021316460147451627972693601333792897203935225928185410062782173413080766308191950899061416914860287087231861846064257468489491645998286822567576334844389867091481506444350369893695802166498938506579969307053687125079177396841836114369415084674106415672720126211402396647544294437211326817272020395739091221699202403114101148689040178582581990884519016762528963447782228022711149731963810742198473532079245364629642034227920985906234531789837337443119619032270289659642198909378521272164038142067164535835487010953998989544536087573020114562072749525819865456719231924631761569315281628530216079067710400570262023671361074711649104523907213476140302451972877206132024028295866428150083341179522053707190876533235416781028479523741857394024328625592771133084404699728028187337290496245070996216368530292995157527599623019365465479657988478607919112385558031651073449167274748890512135620764037768234998249141346874605398822667834890535760081044585401328341516839537663802739910553081502651809147086282787912374650325652747068013313051525816356318573755808561447691891210814937237481052273172392867760430148760317903928714454980342844549088922413586070830969617068437489429545581981564288215038835643481856467679407731748355936827706689673630303059410978798770454338913022645274874416917074701733304516074634228262461172473815211586174937928873177620814930996137750193872260399019645624941855161470376662543911953775421667233031179547045138395137072235277599370694885408956436713742197726044947985879260047682141638279769205284361880192655546959652678985202084282716189137548668313000351060956653321175846930861181130413173344764919020286848211404462872347638869697588993334055101045438223007020347986239656602896853104642951957663292148422786670901458293649411585057221028961507361648857749383342077952796037137177401254966369782598412192374825108684530049776336555665990329856185787762867157387918803403285319187244057001421310458257547587311462599173548261322000599006840156564517918593382979258680235516349646814795789006463098070085301361488039579577079356287975395609296954377699668378345615971916078287059508260599997946820793943039653523792283852640687206797863135298055568770980745415214655917373136301840530393339904243879525130187266080838817080497759280558786966876926058063201459331294226708221905490834500991116242439674113459452795911454111514183164252109576973024459530795519103836706371419521771060501607702461597940616137692661774528629570390884012290494635415841656496725294590203430643879491360633237426798675574268395528570918131768934678789000481143469194716391193925837497042664974710449831795821561562320915393009551092933853379153888208941526605844666022089243765057690325217491072500947843158570343202712203368069173389081493153171064169007954055413130550923455852244218206057621082502206540972459743503003439588579690918072731260015364756127549012886835625912989050847812292346450236789862501892137044741235668360811823384065609056116886119386480931604795747193084289173483246765669584616665503101645122662368273984040306419407568453459354905198457237997320889536266928604555190565088711923034960013835959382733690900180504322972279153321289021342569890393043763931882199872383801715730526665909877906205301938926511162887719665036373609961585763424445141807004985320478930464972257365336311433914835032109557135893899162624892126177838162616535321081894890514969665560099771735838792685999952180116756743768336629755298689420510702980605940938044744013156063357324460583896872125204085614182751886740343587083736909402612776846780819430004691481764070946723085751138679322500736285083601691115909590556179749961090390352196513821816905690944962705722280522682837004360571595322007585313522641381205096585333289126809506811996438766014175807033473050342869761324230135549790551800301218239814588647367561192695451087344625941740140404937239468860833396749651274815948463365547181337050653524173915984708115086223728944409227568395543958819183926115903682144199489499758728400457030715531098237225046471804830012056508090696065289358470448046135874780740294093924606091443867304748221319257293359329823012569440465890170489509819322073022733939159594734144570861738250406830539100761114214628607207536178496440117750840915083931364957307365774167203464745083663739297044411002930548021133458792202743775516879233068615562682887788103393235015652757589207622817940310017525784662658144341895169019840935790767037268091761271925739152965567814353673342064260009183641051544127479970739895142868643670423878346107259422937029539263661878608376860013005877063075525279673379585170129027959262152589359633587357505744992190414061687563301371127923246817931045564787142239423582590869536213106968214983717410655364595043075459244837782984724205141873916358436331790555031887358830363675209366727817787085868336672004827446102017958791890124450269060220225118497241474217066129259613343363345608054052509790537066542544872805971289556450315331492710702044194353499873247935890161663291371853309598534341571914950464198969766840836474796354530960790441565043292913671567606930308680852835769258160836741607272052413137271013592951609511616461756328590621737529505633468976750146489292047654713894402389630498710376483026490641142397180892412183476544794151429630772115711689154208141237067139088527020909264054221040656499097867143919114575772639014454523896881914296315964750304904454286882341183782248250202704179770234798945987417107712536302075201059067421443923349735504751877518801248880731178050588669911142060955128481429364053186849445034014677116116950020448972507560661660672840344876066280084710772274688669112580799139396783607927932949245985425494868268016102130141426726711943413716074557794708842592520921889190270337428833733099672361667356328837685933734787982756451227703045999965596358320425889060710784273918503212257173072056489411143713364358208011146314018017227264209447115049027509555016822723840833064607887800564961699129573660282645877772657689227688310542562459308002667072926303618426384887142017105092369807005462980127041796893754610413101184357858050668832323496857566399666483326280297991725265575276991678109538572449855396217763687374567143227185805944656656360100096093571117689975179132844281141666507732783584841775785029825669163747982724517464822243827858913195376563668614198039602795699426843480280581137663952037842693605646840924544838355240068278878138354787295906989128737801730309369980836399713055671655469435184684562766457177928008314257329465734006628353897113865887889156071418286143947897984115768512241615120260336334716846239037004281974774642465913726274898973195010179845057244255779297367474144251450319063628265544386549182700827730085438826335871234015105074198391764831464928422090508043184371041236943792244466050618825692408479962060046137860862458123011964696720981130222137850564184530420597702046355374292283677128532565873915232907853871434029832650125583950356433973168320896540804802153418104010695376686584045519866180907739292248703066740667943540431674223117566684420855529520368276066594456046213454796384859050764660221552752668029593096985945284060562346547181653947987605339746062943562853155389519174033329589056833673799596646833966231123566878511634169441329248440945834302713862980326315637574660995040711427880513339949884180527705282080446386151830845963118977237837115213972150643724838137142100653938617755527720410226521350886697921439718975914880339671715639815003843974337887105180029835538539977702414183223877527317629711937723714891705905483116326408010937943272114203397912994284039497937210179737033366797973141287712237456166389624586764343916723602101990661907410527904626642780732121788062658501949608559240983142939957292302782233654933621473011806346475601882508550513033760307993362142203074321780864225823900993621376213673585574572420540387279085021462914341490532486717511054387020480508290493963634099657326128115417030925011555041751563355289439933625267725869498025627225245776229997990269746171726429759021644277068460435766428541532278403450018543185935404848849995157122742513521474643341824482895034930354618261369223773612258213554125257398060883013833466921209240229015208619560548191902557913367006664589397186905490507289145751679095547069624806368009093116007272862428137359701551481651002369523984712402903033040826592699201739700965127119738787402969793435445926298494158355087994174843616176797463369380993997090017452331722964538227184781662528399773403316007186024092659851206175012009403729851801349266703365060434359738316777743043015778653733847123241209203180077932951721027680718388551246875425848758865584470659111470606925826587918002917864403132475854727085433796803713625097708604120949874277073095211247278584858832703302638442791914745146020878582696542691687069333439712362253089323371775739487809491116512083198649932618173276910443974135622878954630242029903741883699766967324993081559661740109965065459872051197388092886262705173465609426580547516936653147801278735145090779466516137504199647685071826158776451906187560483421477327662686433296658440030622273722345793331244478954513819796993355809602698832102531527353309246501234035704910544608103767304599010759750994912054143961477965411791456829851062588838106462498686198749307279253049032846689570897743291795047124619121781456139437925334092250119997726153289540738599998018604149828276759658507778907139446394888443819218605020154735297698220934836994215422061686916200349973578546229555590612149630131738690587769286075690790646391521710889448702284951230553690815585249351107160331295892842132314279953203425504037594327587179305810916015774856511292204129050906165827678299181129093310190289945713551758355156104200550274496720210735848409215740456857616242471184908187487574571704804140722227132036113403915936655667586666242179661510891921802310161222189533804421384636702857815343685797791469895402745628739814492719735483451462887143832073025411686672893942498515488644808632642027170770708973757800018817761538275139576394537418347594740950757650075196788268364285035553413193631248280163515908597046053769301707742336273719122170607209719399927472072875585010006124443681490548620030744126978687462903790683117459799496526744065871571754552010396396311557633872412056614713644435388833710533707245198450324826120942502156637408783424711852582209038882506708759815279675081341564626842220720147987256125295285011818087266097978515107378903588528677395427853830236588072442268635228410888638765486155154935111480677054257796405125912474161092946836883282447568324873118190879224041339233805213222581354232028937777782076988572404819693563357705675309008034309835219419448659717912575297871086555845825799201967115833291322904237981145973562568977794573685250689455045455217283476030642245116339876180210080604665165841487265013348738846481738080561112220053329266381797243864191598520803289874323703586593900673725295362988534981539631771133955716596604167763638652615787672621342514429856808842208487150293905845781723866620674701540494917668407092212041564097119231996469287342739480085006125893696506052883108612417015218435363725522872359151927308035983762277043907507853947832053670667988353323921498035943987886909008070616102851364590441093208052382167676770503624973175537200287830580562451382599797136052823693486662477039229463994603732877063611246380204684466864408207550093034513559318180396521505192097424232799796814748224965050081800390272553005996631606401741915761636964805474882076764398731516346641382397253468442933415067405715231210902415218156270938329834074629754855452488859603453002873881203811237288166523641383906263214578299827203266968709464906834050036797298236519719080779492993290591144748959860170252583357632260087531130804742449962824040949045545016202199344185322276680785860453856419385961795471794370143951970001779324496042070813874438600283764800158289734816296968668234715295495942959820015026704460114864440154882644948903794961527626572509790492595693999125289647309412933222506466140397702129886905594016048703457223065722796014949823379434256393217154267689872892814642649249464993115269385293631855756660170573256837687940671086247144826381099362794161472045117393834510884010874303076326442464194132459102341019731597281183983984779164494870965870271025866208872017443917751698812169819174158015567535638338640398823280036726606805262688327780752804905711865986749369144667811194182823793285202728047831212934039414377713619903874569287139140181217630189946974400430914861447530640402536030078194970328483998105831577594923373108874287253910522757141607170213192492465046075562542176610953043861941526338760025639929220011487659271904656861118407482622946557714917214667316161270326034673335625892108166853784238381626917258627772840445255405048695691105364023301044405125325362514476212321286129344893214642848665559106425257566166060664825605910210893458987142465276781434482176140856723012747387573676456934408450477915548115870516597233002583694606650046803234312476792511039504884680176955009682979485491730318868580649700303340608462594566382844586695829490169597725897419271047049915592369562080400273256645293934977589116598246390171878722694195812605783058392596801775640635430874589533197600339489332003366183968457774684138417943317166580789493755814617382530522256064991101159522130810088772390247486290674160358315581325716729969267919114628058626267737212547292149110671447016497732431640923812718128723858522680329695555255773204773351227203809297525373172093374179851650496059141639084872735368871078117660395019042635428845800311257494082848730044883569439870030895091788315648535786101712349509856039275393186261581052850442880464517402089907789239320965832151167694092319388369763530086703267534962443969849367872956748903758341047920122388524760293747000532598674825016439879537185242645738302212079019092517102776544949051008785498870000665267466746859857896530265130842445574398497058153635533413164867088188382745755613664857551354893111526252852564511028609499599463041023019491853717164637968594479056605614445637423259609466629840826848311212082920870057949959943512109402694727747815273003239780149988072339031567032644396771344567921526216991755807785083563589592088441622707319265786523078630720362955161938354245195687030349620045939988126472894896150720888212694081981460492590260642471211535402340502177982753293612719120867648606280221464935774606990436956752651766184467107511822661166785600996195370185342263110219818888266871322308122577122666901630932894360132577308133631309040540754860559554222771704016121062855390197120126330536804453191620563944319477634115007785857219836457661729702389831100739877004222153298075291087503164439738573350229590541321461970865368635041256484837570077107456974120057034946278208990791317851651555476909116252248101705020473021563185276189799132019387056967692646938911360827818732982526363135088868928918917825866888635334030427926578690829418396796057900349802203408567605659840999695844746582918339646482516043975799980004652445019925950041717790820077322522044915507137481546882676123952779113733256007019094612318839633897589962818988028416610508036421500506568891492146617975196139694665812200472161109431591235688388442128065768651061976967142380853699802170845681950974774240296556836883155759591291767669672153005270434639610532823125674022318760684086000708930021958137035481097405495559230646399816584417122198173147260862236940964540808405506672459013495606728933749422632377970591498478207473570884548541191696947909566113844990229705590232863153833215031114408627287134397001078443931073330057222589509945744788341228459306399142317448788037701698562347374605297568746042095098796722727954033054633335011680955134951469132939393130134497937444275434513248278041647767866478637779262857546136139607089008381368444595277928891834155977073264282247080591384841753414830707471838584909452483723725336612791645882684873155888945650747391424962736899568983806308732746225752636703342540014685155279407198601648904740975091719297413096602397463587894237167432773024491808509876222058029047082056599292899420084111279292321978654158182390775967880745620024379855473549025214810899416263905778225078223718667142781800855923440829020395751975616755482804549725349833153552900439774317498072991369730104256159140337838094741029023394250553518345349632010455360569703637217336130020252511650978122159287872432156106888273886001776572791538823707009832926720985034215818509904923748753666131577950075841431530210381552096125573584304631932358171793430043419966744362161716985939949729543931123539477499093504529480936709635261206643654752001821618736623231020807605673868193540506954609743510866989158957314376483351888543402461918976284757545357847120836362232311267935248966564594900796798201708366367476466470516983796367677582774311635030621154342905860386770148880859354249498156847919172514166916381695230545938762825438133987199129343522467834340595822139451691525178375495600294809034113880756831421416613033301403320127651919162529180069027943136111729117703799754025621060525872906487426262403234249219098430635238732046782843271730037067644866826669703585926623858400853343104651159960025048236946461299676926801153127260321520373057807465422467532560452527689542001180100792710995124875108283514959614234558139676959361009824979476379412876691924608870052838023900845226202083300469603794232106039822418682496594428277935326546315235745305657235614488633950334403488504653678545628214263733796568500394619786051941129147753766878312346817405416270076513381393628780334456798931966771811942506790053560389442934157210764849041526719329731261440713774133957901758801262501499106605516793596756647690279036384976080333316408705430117566008211501892808387176097705963744196965876838126837799467614804276433402517501967641020764957474403450201401946490348748235553374175562632506388732507261433931177120513029559886989253102047183671681237683636287847757209811117510272746011105041588222589291401327483113441823809212710623426631292675225442170905175863444769736065416108084801682821656371170031340159347424810554280611861854889301420163508803862632556220311834698959981642839718285400320111588084440223265180206968899357002786002898650929937758701037200872780397633325279761147449997492436054866234799253919476147412734668976944394547407339415603566656527081851382191240752139652153204534836430448525806441708202024363422487346468798638990368144935947307097018634697766282151757287410192495302518534378737243133564605283623350483449469751510813269574713192502069432564516268246289660517827148221512092970307052771756269297762456176809583190987632750510518950437452479533048396508732913846933439045577816805714195600258269553384498745727616412930816707141671575312985095930801014962079817723804422593389693643749182023080256640709902833489953434184397636533091575014311138002165274345411816518445170636700483547379703290474758483799573240930459836675698669322996073513713349023075589839944674250378285440591369403641461111864852108668647784445419250290917061027425520765635559588848556864835710207851335521684065119003091005906004901482014400709642860044494066862361040823984760372001320428693356643118692021068473936632879068881758859996584600798280426610018306619805376448861738084893431134369058691871428695868161660518238376755066044388549968697611400411293689051020275602254333250431029976750434599012355934311485756644015689544859649865363056319411256546747637087498268589047157907485589853721350539425967343952522978264417783369921584367031950255499342432414568839616203894872552353660217219479041764014302744877339255995717784162525025019532949295886498035458557648224992090055537411341028218782243326196205365974752897648019671410943694450455137389798467249070225689312529416299089443230489170373881334335842348758450343888986451176951097189879010613778450594671473174518432125661395370994693494349754903841545318428501290592745288882938334487250085141806963484382034317504778881466875714180348076051352332561883993826782359398130048513392564256564975167558154795351815947058796805729165268494407724597373267264406866628335236893041758675518330975038084165800559765481381772470639697656496192482254224199559338812303803754260224339319424162468260060322189822370971048574745157774292191533848491831190497434839883339180605323816866101130371689378584710627877802788367145781919987052439754201468277031188603558680966774529986590816472745577109392317057392718732458086618509620294385410795468326238444964910862094691383368846450286526444713573689415171769089003778927507530151523593817240831961978799275450538767392171361869563850213864936142800258433704266647665099696222861829553029144594051635263484044418711612475394134918173459702423657869877320666844800345707414525400178939948424253754711678703174578478251165465088919519460408781846836297706565703663085399484703816957737005882546347791150011310181618680680362651145721015959594187275716900000601164164841308936071952851015385759734283811763094173778234479918827048507561640027341956114216069754695102333934383723305189912044056693314278918158448450112591035721484970312728133759675007768259895432921137150356881228541621215784028474461775419101284495564707890762607777177967187259277096568825336447578851235447723690337505615364011560859491147589905985900945808661372958422638266883206820638084598468871253496071369761316190117258799640200147610941934042661427055440856429389830605809208615127568127803459884701394587759052605231890926425317332102464804835309786744499349231830818156818565473256609282556754070169170306419828260793927464251850944824688735107175869830395294358583574013600525573158481401734108346915656245212741081677173250759631119879555275310680003078547013338421153729260083846088873551983948608215445926645718170567424585602833759055616024264934710745560127114009855225302515682244040145452707903136896014942844615275586449124333458978302276349726994047065283112457223081965838822778504282105593052512066156533636754733543175696946195248018751266177472040832060386837074223098093739687298916124965897192897235400621811929513251289595630621423739364670108264601779379251535582973647499359580023885088695221668523430044195605522285673820615760483411879192817303345067881575199847903802188507482575242044290556550679029169682171814629279091082373234811311713208629082449878311891679628453286952729620895777168715783212451034659068279276280995321357520735164965882124830658143736859446351139570027605577126446696125714525399595156695062217450384450159439179568598739690060331258811250684938244292033612717359105547314043898392035035680523215434046798560667770514527179593165539365715458530557704420552527694877200315077604482456789769532454448044709273376366499758681993712773472431642269846806177313513053371252710661791156670041273854328711840400289529954031859069759647282871821255300078828459846284188584940782262772061154903711045796649138413672892553087201468791761856365787023701907419659129123588091632152112877309931030562848923409660233174080786494061009486243331196564484062396488224978884647308442780446661696446039564994108855760166174667773865070718694940533751022680325920151551670271527585634375292031544381381613937856133078572928912966165871048571217607105897693187001105258427266746626897415411805674963225575274088227757079554506998329337574342215049880993483470362630067200578062278813850447361774605339597729546162952470326531039729268795366380756456561411916861428025077958695808767722483306166011866298683066602035194250159905437716536968443399527383139136047910355435626713411032874297418034577017354710634320396814307507768045235776853835669771137340709958540594932793590448073667247917748119306388411879487355764045632030422001246188353822327826224103521573780783625876881095245774869917023917635570873518384297245987163409337103091535680696553469616354730221723253448078295998131713284239243128208076123860600581700786496249887648179463900760071289582290208373465911509873379281286867266057241609194011399302552549216416486345617252062585511221587324003639555432304236184418745116939258329965288717194513805587498128398517752543565841653598199379522512715372796167891457669364596830999713226499017874139973067241910177922903135392097196796616300459201326094865125218282005860227441194148308628225646378225641680688889084954438329178309689758983474540741088956821781265533397011081247172198403103748014255359438659967111097862636181584326387892763474425350407694090847190049193049073037467933027823957235277276537196528339355058896790205583093262428713093217914876149580882465598129500191680197712326551162129572276183654886162774057118578640557844830795247381600184917043758342178549542181977241916262295380590167454050924568618066158423023204043857560903446688501789559280607748157762434354461838824598784361673059719296098319726028745976941781555978267049331436355616325554971315203250218775854118636276103119610321211228263556850038046165614127745644149414168962708474871752389718357061445313818130839415449666940291122936821204326083877616798734646596093222771644523040260928420891514612910676357609129095254462858258102890776641912373447848120816240234121998917940345546946311968935412417694678970237652946669378431582427048516087002607510466919186561600331800675299766241108593487910553231566502198132973798509147764806030617571551757960437985572234841290166212168475570948855971154340541142786835435297439850592754996874044290765712786328480058374766476291278547938646785283378330864249716885789329724763110389879787228890807536837478101994802625982713764534069707162933744333616146399408808233706848163328054655809038509890113588760370989240026782300255393533447246654752264637501343774475842155545513631685384962636309049584065357754857914899092398388581673079017110430453665847599601701974316372755977906824427448673449674524032251181387810067544641491218880975279532638855939953148452040419779742370199051764593558150007296387401598288207157900016946136335245997811151719214967321894392000175931925951756124652983407039787577465981029660895937550877631986702254222054048570048205985502619213013042837425987130045920479686598348431062875193768561320077202945751907395013244226470226815834633039148015249480656568838679941208204613666254809509233160074643146579629762183417985673026864775587005970292649471239199904240259563056946705978539504211988020865035569382850655299197283563681210705562922749606477642486130068157674707561833836954734514656405820455524241897166932910160019924238903839676179297911523090217098519655136810192028382550040916826140336686406993216710053924228570276242661834910936584711593538310807297552882192277151552666821397488431969393435403403448018471944197134535474387531640532139106694442711353745373015095316472209411583306904990360146903561705344707542695815548326176348912110537734343969956806654528622295542253122833962659665475753714201789813597021973654202358792446884147726541110536031526342140507985404511765506800922786302241851090550038698775888600252142455654112604245702884289946044557583232880112618389471301101842579494746933565958092454139359581219368661592567804417284628490860634457442973998590704378701053922895485162492732067191949911376498274700154788969160579808746243908621111283938987581818255435246752830207069110150798216446749047572700444737456132009849898919345701105529813916440252569009786248204814159753512070254121158310615608867487416974386437971211515891135859460949090739716009939096730151623873212573616614915808478357484150533211946882901249263893751614844565952531780234208821311729151044304251578354427436109919511775142945543534089585421785338163028194018328191398744404624673019309501911878491212254845069183695494449712309882461498162906995082148112163421971234736387201489181683600848133293100569943851289401654883492084886683163340699619062058439976156164946944019586597980043604817262722643794331694273497324393923170511649307454848173151882512677124062057187304419550728633949626214175554260904471263748960360828836914620488121869544245996497566918122971561996418487192100384141120224925200841775082946836032302047475843694044978608966979253372786288079391907794292717161408156233204506670499920028994359354434188509968579540592656924308337944611340070606218329730731104440847267860254607926587624329621333745169900225232691822218307193989289714421705701411394190725208368238507999609671441433018886125475848418129547607156893888355393269065035654560938913897634049689612291898001068047495718321275152819869021310980204503994114941861956381930083029335387650355286386949535507595877151309327961763712400699187630060888104131064710773916897727632037357917253618358661331258493821902574293141792065641567178931382418124693830838459739158417433634846831254560839940908016905891481082877817940584018527881046884806818083764509941389603817223633487600623052890781814270696223315632099080765915508510577573262906107953665541597129418769024810738276757927459681645017632938824396170490679811997904804854448113775997400858962522000787334941405888450055195287809159393989676627869735770230207171389045995265548756982595734855533151708549426498610224997490893797326711891014731126818129304173456832448276336128670154090233091625916860267250656886706361870630015890956118508230794113927815017388668109647602107725042772705512551129388105169741476592086627887226618357211225213583841694974426551471389477978538453584463663965912411733584334773936593333399712808021289276087372831879382688610056692295223789137698518608753009431847688272157243438052994588077235867236994277346282570272752584849879806741344646728600056836297196968878429475725589027882307099495730031217695068624286434022381548589597618502895159910644606668713805188097770732875267406811695867893377135464211726599334989958153285198546329119629589735508980166484142154629543917750818571332574037174073273501286111442142431278259335720559011462262856011152660846178508875927042544008480284203538490965952027028046462091594082878496993903628857060252625205239854869552281187898516905788899957525693382835460998233933518546263428674292617426215038421653547163428577635694714522112777572024066138164131302566747407209491549675688137476306796573026050138166249261599968061253955878380071094048691635758057500851473349198668796658600451293685835405658555169424189647787060847821305448235792910333615716331277515687777282837718693673551702106530016522904932101283430567307337629818195990844125950528013455986743556446365664042076098509917057621693235662736496911121012438807114185685816874496280097580484904517233055964813589208894999704674503184927070656904197564935052619972832683335179170736349655730133943717017719459271359362428253746727978369905611979397013261849451513428549900072185673208523093889309298671317671770820225588668389850821527230620060495520037462192752802409191922171455426281798490848934526794839129539482997190575107873240179014223897540938334217892413814759664431682078638220527660434789180060703236580833132762732956459209730051921115096178900356433026606781663530577302479960241204930681467697285723961281503394395637328036773233952272545325438024783799396919058450967382344090996177534756530767762781234673908313187839882154474529902438527357971726201222669528543656548411692039285782135548636397174888031894575238569210636715390817595273639541398551630917392749105584307548858730794203458225343805225614123397525193922319269987053046681863979821759193461868393257953651339832457036651266561374590093767003698019212053802916972656247852851318984139467176492277486352801113644470000132541697810990826194907785191001048452045085582762970474234824039103762566758707213142895224560629225868851690036347250340696692801251424849784963271015950597979880036930254260246040297129485698098158336196039040005059858161237520780148141100210123898844046121048737263005189942361427312056436723841892180479424513986133353626266953722708903404613226649729657494128101122407511732702565388477592033635103669084402755563864743040747711412498099806471184214113596729033125272390809183149994493378190801322160739650633519017110910192337648895170680353380906130664716239287461473401460347341878395449369795670122973115414848019184588811575070016453586018703897828083665517760237264601808621864706457428174657432124661989773220135136666983412658557407483749817710613226376898012275598104980595105177464969218501461116501958472317477904388294270634754737775711421020256763412629112019509941076372986785330870319223154376767344337196878793777149898071605259567904395414223710857456623888333866264232498075795626073547842920744787891045272730760897815019144419661489243636743549791921153471906885344973448557784837622586679674335754165690951872866639749326256251002794423994444950517077707596841335177109946898845692777416342363087287636193254271671752086065981479715324215881852897320964468239086005240826390791432577998138002710843958401725838267173238329069137784983764071729751718610741993266544775145461575422937579324110452654798865390348806299366955079085706874971414604800266621156712567258610830544987500344254714517545547112372045796006824532728034607504054279148058151824517190785310202357078857682161244500798086847698560051235713943301603866090957389404955823093354025588733567261821888999494115057123598981202243264115249204486420857051527625131868847354814478672078004931895556104382781244918033989102709318046587455468367951607728819983525408892768133358831290492657207887388712301900903519513409762460021082307451440220577923494700612726896873629465330382772998220145680473517805185790817324880675502041324377979541956146528487125496783362908629843980264002132469865876645083617878257795806977009569195304793002000121831144365664712888514352358433659330284432703143026214827290470988706989401542768525477214225617718089363179840322358567475806522976775338476374199327236930892998411345185502018876346986550309163913292703189461203601414595369878651279501651742559425225108492385589958528153610415010948999902445404147999981144081964479101194794545626274564838937089743303326458311070591176944843768693690527821172922213013006412866854203602920385957767121482555986013425159502029308146605517910945729737029029934334210033157618527110923740712116181095924002274912982839057924120909815342049188978047600275566937352902797332875672002339711280109150597881835689755996681827985939614321354467731658681754556818866072544902206002840711976648299331399343969084271495721626107613034485620601998007963116696553342142415718072642320149720549370027460366612005449327293720016016437669069527963717926992982918147240117023305272867274283063496141694298540064253199140521335944811874310308762556275281314239895880754802406249278150678651315057614653796817235342329918080049737799971706395988342415062678614312379241923122158842842298633336676771287407173817958253384167430434709712651699684519753100237590965858283335560951726698197647280570334035271502449326683260409700989613056910691926949181689328991196595314661537556195082360025594525330577159220259286926585299373042985065201991800981747833358907951209406813808324149045851194591435008077334743288607159472429222400071489410259138700748692592855827784541338724957332856854654993805274562119967203604254705342079779462640431192111569184232019935335335098166829590770527169464252370835393595389759128208119976224631042825168503571646609942784524789318163729410305581094150103863843415700091852291496311431273547298860451241054273058325282333484997366433982534951023451913879395830196147187616021910582484053260586869751767230602108361996476024439603905328893524933373067762035861912024824763422897797043940991100434420430392547866026140154874511695063655259246078388065153503151213809936778289937071815894375634846970726487584476516519688395787664142261213715972192916953613752539306042322849306816473833531474964646839119409701607834128497890336181588716328942169468980349175488603398581420546300940001385008381475348960896626508726325282612784662398645054442234943296710204459498971852814522858245136744689576310264585599702701598187739880372328169077936248297778319211936767620741499744351270765607262171624327447434756535101008879891401646448066569748443407362788291266414774096822722800680566701032259214358116077855371682520486157081450183387066538896106577994591098410028252389829997341265651241239777589492253251120606894103017270432528277160743952674179744900851029886624682905355832325533849047952093262913286754690360640736677098218444592525372803380821262341844391362031553741403372878783876124827280824831252387320383941081894163732053567295643579357580510662836013145134984408166274941808543884036602938093274627517905888844703497735560282444457237435545004171497802122452721449106057045506228792208212788144401441957399158454240078171938699757089683414273142185617460912851214674491358535991259481149347810471035864138690234481434026637214934387752362811208001421372385952556954073361229051179168457066865483642020979505377887762911374135925972953264753981493645597754777293892714448819489517177902409744230032893166790990930299975593163162660471536268639248749293264449142386699350462776108950830659955899192323174840372619295619287061857617520223268487003196871158820945166441169344536392301269741650014559497944670198201524318567373020100729654496198370244310016867931537286959836483282533742421977677668902841647618422421866988968804893542741970953991282194468777062685213542814326850950434789029224957159851155668577886334476452365748664566515851861334687629903297611029969000243139312810712041783466522718068708110060440658729621839553923658826107619354421386460096687295310180745969964282597574584398767991679204492348784652490742464731070204708794055536207170760830791285293222495709702612999591814073289981170130824262183708002239070725012394666362052164392145657925519859416323060025662739987665935987026979632012375165847135107823044254863270611702085258084759864375266416994586423106422989623464730465150221046416775377684616352650204603532541163767124696305694181386028026177329319997069631738933119247818835412987198905527650996720657526655537680388733983415114109080528537605298567512430500383229774031639512924418701087288686805830115047135705906256031741603299194096259889463290152111226087504928657531679220319354493172549157186574922548239176491413094766010044984947931888596274654035796878168335612326420042547610044063535721756093827826930886129414645924596364827397760828899607690204176843490465380220753348884245215248692490828746392925603301906019352334756641747024666702616202110057181450126806034039495184584280116230266889420028041952040401217850286282631584266293475937858713306500052716444695237582863469242864140976955946564005784951360627837742511443754909393596052825643951772383293786725459306369522451153989840643688461312414874353261574241649952075209664991162607768357518641502639058229350076966896476929312567321798920307478213713461038282380556652138031110175865074665703410700882805306461805231450774900737476548013473787029532275649259523555405224385332334061656702004664253148511370902779236795643381326240775462816423630862034085005429390976412031735475998125023255207111027479769848412052386621906808994991891521003302134928205267676448745299196023321078279342561031457453439879154003704054323806733977393692880302324689684736129820256653932220956533155892233728615146410944872820947170664001925997314300732793548897866775024483245924390207332523749728014250870353225866437575353450825724624473929563996324843614847823557662464868098459955680673878663830160224500964682904798875368758308530170320488569155721523986105376705815894388213829186007024977920209457033960170535751299827223415604410266598853668276793162958585065659232302900837768206361775382313972414560696477688439091382917773704407598566620808941703365494536434842073114602456248085548133314645842188310585928527496845045044453843755013468759506166019502599124638554993213805644836093934672997076134935513858736308233462886451785739495864329798676977866964170903403813649063896942287848628362047036002349918089623039369816591300293064655635006202914800544663549943293189350087505417558458835097867530493978266534746276649923998701755184365690471158057931394470581089384357406681963528847953890900300296923285276283602535101660663410147816648123904913801481521026718741607478542074334543022018299379113460572837031565294461232615628660292479481666291893652587537614099210230419414503122098895883902813615809087569885730703500550895901913416192896404958638369910781607213022582827691073742949129826002703595717230049962731477884907214533830404988149452935815573713185874762100385709301820539431069613831114914172126521111329171540123824983136138643077720010996010407698255076878666937283954898348609847030940982201397716907772497421841405930458309549453209535647721597460867968377616420946917347228476859763026523963221468607502345322480219246597876476736931600739065984991389043886198318335986298718547306635218283470118489309470028936945761772504942818638950422604709756124960459335438554525607775139794705352946814577734070264438694903246453928128853269049327731718860154501755892410429732395535796731118565344892262681144970958415484029652069001731241484035875797666912098770911745183658612315173745689877505226695195445059433512828279194603168608466429998866268539454469938989480750456849820970677749658718847927937741140043771831794280793367101701075116304353738377158909880572866192798643859834426695372966799264508252021986245350251705984834069155798941422961830314381109089729624403135446747089918352504785302065834363919910809555736726389184235033950558318880673224100555392154199375161035179464766556400140637436757733856701539649506788541006790730948442990851702797103971859984973710337552851477267283504004590847927595572740181802654455215366635159799683528019095060625434425312472409119497235264700695595521601042605057275041713809358787993583959332215597106601924285405824320191840392297782595399673417659881833910377279539364045056305517900504868829219661142822919899213954052905187477105013613042151675553529019000516001565957755095894025885540806265213996892197014302136828863977918309868520172673220339154427885204614416897012908474830555380207770332345749864855475968332312714482815844778292581455342934826774943089186867880423906507265905445739077549995156742254683376011542674197379236956860568589418035144931159393482593909777129677184546005662569558751297612781521895184251412654012997903206526708319871970656196634065542714849098253077708298944996922558898576311434830231260249040658482663832820458832914418885555087010463827330444438844906988966990605574554055800008470953177393817294911737467911900420115364154986437484355529544683294971833779695732792267931869650530256540689203711071140311212677439879139078228305320336230481874691085797201505266335991841386945125295436564370030158387487765279202673516752211609607918463661192300422796130188681633144696296436518335983125757042987474236474539066562831135582507032995203426684061557323368248495414815139423602660699057699232199497997640509561603956237397980145225182607776197233600392833712239731258696143743413263062878898005809422956536468336785485724556679471768368364609861896841986314812168737537028521911487647134098052415524369230570958949703653238871183462370431590326261009601826434671138491915162447702043403738617985202030810382409401473038663664646749692284168595119820759821566850494833724023609897451892387297931164322315046196719461567898165706375807772438110726713607841666114820172217427315951812440637579958961190928554149377911412351112830129037967939593153721194150457200128016177528529310560680596366090361604593964008850198899700583606972223995050783458792840931615468022969003710738023260327614056793008153940978631945516601553499092188478800032675996862814315709083259440799237699029757055595794928036231189241279620964405942977024036362533356964959212732877956910026566426292520143687109949699586289714547338883376037140433125035984116353455777571150300348873892070923032670492150683712782183144400724260730468143298202393216742382952933896558623512603546745168702472477883620780700113077688627191185819327880698470139139932575065866984792685391055286979461661263079703171460256736261639289166295341630898309594582881083808903638376922864899315017690491060110625026688718321688446034489192855472019763132354913580215902417866049190958047124903445449611412159161542512126888573423170955683422870899726528977800845803722166574253980030153648442104315204704838930947614363668423421310427083999774156780350960224029605902628575719844923157382539018340627492924411665721342899994039527077110906517452909684108377458449942626671419784444727781328935921728642757981069137141392985837728455908477378222841521684356260488566264111570976151866061528646711201246996636511959327807455603242851622538072430098538910197008221767900236910385579867640544897193541415960799623986259126725888284823390164805115535862099021611634022907444145916547075195407817126270772775261886008858634665263190606591592803223022255276167806481277288714232429065036380762385462006620912211490389582664393545593983842278610156816215904215107883893456721061179618364967219791737729702501699407784601760509416184732921148748336822467101657147710352781748471606472554329889819351687975450263059212339033588853204433110476480299377526860545505830688447129540356862838269188420680182624293865173276214498931142191184792462027638463206750009813029930047990358096551027032616357144760386183281492573532906101088540740679280084586149457840378055582770775564159084160621178647399547850413981391464933104808363673886957126519733603254055619835881168277379190719470008433771894217648603271873120523186173002930333370063253022636858509462092041701669670058956205432089651798136171355628986397628862498406808566405834220848156996179748899187964046646180258061504404493251631000208546185171255687424756296783669883357032097824062529047916970941541113778917251852898781783514557476150648941858145561171779990261639815603091968424324822755400974838016387503483159787895914976147746750001210472744567940998060281976128272844383861731331257445505966117380283540609966842784166260695868006788239633505786847188179286364200477413233244028961074063531157300368680451229751741975472127609645990506951780761371488368429076194954936351954746001099122793411459769275618597507890261869275987082420193795080458675024505800539743022368609292672946878302429877339524900672610177363792810226635110806707428338266829894944275069181896749559709034522215010968321015077140696355088889775056561866783559955362785647496188505040029629451002909762856296372451108815847950291138446464839698205351914257475851488570233774263563330424917826947103152166339350031127319736236799916775523188998938583389982549592307453124620244040871459216584721014360495178229444734605533024183536723688654929589174334268039455591329171750996569626141167345169090399000013669323086394964099317950049409010917198853729786771719672588550752965515764492268691667073574845300504157618854109362887377528274932220819933313886412883821601508731840329812711344484972692468899441483807641001707949428228525254455317752180768518821005560193100371988236063503707551910522850458197697191610788603095519107569606061118470645865350195806434111376816241508190096791835837707422841408313707696510435647925651609262910496191724147970064817013274073304560121451575722137783392755272837356650206883569923544987995446664177079955433932634043556296453638814757611593967590428855885611238013577787849757371647926352590925541717986780616904220344951976217109449299258258154164544070226493229103036902494752972563479416753548388021403549567622588726331725572759284116388972054209286358348383648500054504553868585746221904740287865850286310528095631558364565421198656558218514852699671710765469935994861588711036747250549794737646848303516217499011161060618748921501058255525297611901133423325775010475565109462679549020925113532050281829088349277266157705128796695207064870573842235685921889431638351714257059310745589067484350579775378927489523314736307718253016683220292293563536643511390456952888306871772726621940152621367036024774418812837821281518787942167631172507210821479380790103637956429730741782898606018901414089809375218575417363347841913369633965141233499464117749134970540596134782440034830915567767749878512131813255490508249634364392619947909206720722100361774635747662199753614290467733084310533010551706736884937944455576658342304277026047653684352290154328135480757184266329969905938407420541698589695612507290368745528856353713715372386608651879788235515264969305535704560652761168282792307926761733624667471906819464808663691784899402853592237805316165129542474543076732196296151991667278494109776841778611865640872302504418012375501249944483297759658250776886767315620936435192166672012780181534050332981743088506189529199699927065064917236978014510652658746574093016416369037012246883756537425932885806476114186652662204018114190290680175888095763070729838197349219042853190644306076708618389122589482008988525017350250517801614446222202765900528350357693130189284854206985977876840595491749711523790029150801323919756016857615800386988468509906690259329418142736760423833830775093181065182153561356924525824172669291717749140492594429579654986617220830405692576744533162611669013768139346574322855125144599820281467795432939227353992393790098490787258361613810809185951035058660402659598626635642198152938707360389318718045073380091786491639231614400361219940800960709194678807913752152931250220731693685921991942642818701431211277340286819012403870704701886449591665494110490028647806851435617711169922466407426532206683552909360558333768677784735326377108443545498778788120053229563279857011203317779681415882782720135526819050256545757730860530915400635932961724203691822478077734983272751671980768092813342710510835833495881525844224203072589674405060278625788231748868874610420327606054666374000544804289004924708863479916302847439174036495171025544301503076161459668362139440550703905317454195654859147928043415069339288230941971612111480173322448345286877819527456428462479561217055684315950218190184390168534403598022561160342480466806790923583642971434237204299614131591139015538009261065258071306726844574031999129282894022907532475211245701729177965476327864070603497442768920851645526690779837154401457463248718261208825113932358638707894520624366201651030084299579960320579916593054361355310351538003618030776394412607592303234285358796917968399302399215226613617286706311577212331291766858427434429475549106052748456260131138709307516618466883394226254987087302137914048908530300418260347848729798820856580181616457007773332820765237901779578140611170712131125907199909878112388222686653862160842279221898698204169904080431964141631135141000970492912617035808347088139479151514103992918277816366838697776399265107632592603810166395529921433326744849702370791981563937244645468053123068892453672977178917907244919514650665756609326281141341278930039439127840974535290352379785797396776829145919972086792312625946475853233458638484086937286017296089177231193269127434274956180256813217832570343485891521719262509703314139648587966488440338774067507357627087767037274266315559171026012633181365842302279338652217579157927399234333148720117497776218779224593204734267278081407260398828206743826121681990284338661280785978599155104654873789510472648926874969895662833248484621589731495770930966932043188054573757974897393311599454521318338382774435330142862984607179454772260789140864429033784400216066605407093974069775381903976981774166497592821559314606508143223782101618742994455122051155613896220377018331339787881451820576722782558051984108453455787598227403998911142366939807041556530605993812097866481155644645436315329816964408541696621470915015028079930083246573782134267439193084916477564603214419853777018674595745923460934030546176802073007463607137735629314317064408687859507867925800755458165391481471241682364481497101137747891664241584897041989499447015093012946077453256496540551248653329500574353498925826654255112400488401212856774270505384840155930698784572832811201676801983048652859728860516397596832677515340229640048222439508437246327854783344027433638307946050954753401102004869304374226908598580305993049561918124762428781548979403860001274298192464905685939996847477944572352622446309384370924727259033951503176513906007641305429120578319561808230197016267122299827980136991026730526456210246819540756605202579396456723762663752605981890239334928748314687800625738505138827784004775196427533086390137858701423667888711372900342329504449870945046235799248959977756854371034187717937129651335047026739513862015537455806185272002928894944828303074346261911249617556651776232415287190279180302146313163702808844591197422231673528174910844329751596373808595552544918083490321789416186889122197810927432680902366781815204938802404707341819270446929912998222066375615877962727515890255087439740024182422386956499721723433885551931779429172035480847250489228905472659208310986607692873544416620445625105991318373663450031420229846622764975916690740971221247846451543856647901055746756205035307487176706809433876592361269806811174439430358775271893464316931295753747830911333988209816082160014469645076443345760228139749984583845310237638507110418320315730272002440664271140931068897025044293866572731788810169857894791755051201103140901711342641552818962964584192166659427313213606946652521643111659096720001966926444741565023324511673204891487107851660757881085498487284508093281905032610867335891620321072520201432532402153225848998763536875230526621238804240171714991109834662867461463191400734451683497725647063894980835828992493400354840184351267596660603371682848445737785203758401908313568336403193092395437892540128864372144099130818740298289698361358440971171530522785869763641744634392445064685212723083667280883576251568670263461908120287938543065415387171307359683146262650661762993081626079341371706696107510056649553363003644744999526629130654175400207171542056790171395349223455321663628681389584387636396581129096017607465676763614538980076184781559092200133052806562746185602192872033363222602184518622648993645411541678391806772903362873312425516958164556856460948761466237758190439582458544421369993226492789899304012121396664353795979307215477555581104285060132588823162171765997401919032089691450204033053561293586248749937042265248992787375222796857137390427738282299767135001107329865807865684026109755409942342325393353337691335622543282840547726209281410258818111142130310902394631643502483188680027659835127855369066279242528150980989664779512297933980275775008296636044926923642651672386192438951866096994713093128560053107038096017657059510115739584476946509606084037015286345970374214921680207725474475833163448094022115626076329050417245550293265498892813543872518942765220782586857998685338014345447215463748119307491142707974548130382946546752338485803300235052267968150495000221565065005709857912761346451587658803015372836073115303249831812444858132246580059699376361259474135419805557536302956254687277718671248777272350601800462403703113317493432620323329862324325373859268704797114792550781041418216791334333935364851976240125148278345877395963555881466282743634741736829497949434366192742873643533521558449476185660452507144319431437550301570255499374004287457798808853614508294422440238129825064729056033207632117679845706114264454271146198043803884619108460924435830346852187298702999246641218794814638361271730829312528665568668011745930820045278435143551087117986450283241406149524760710532999854385290203867579004283341503892888267064346876026482840616583871371978253920809101894948420373284604032801950593577912220191045536067850953586187835647465380766791150697048126528816672504162707549672506579617686510964127762848100924628192523980969628380091921057137797247904160142647830675955583319220185999868649543877182032424210567716419131058318192957618196696124166908383937648900531592769601355801572352135919946038722661643836548453208494493746181512657725080706214936822188244903402726998752107196114849699388098081709761914452373365707011549457226299715123286834442414643867048943796208453653727761351315868135670474229052777930046805638056870292996904966493096024287035567454639424274176835848077418514234124310665924705625151434098558167036869147998093282885733622660181261658909799380249746643195674903016120746227820824038776670329830491010900267197723344630738480704480467282953428901210440315270608809380985159368269748854557985679180569623093308548963810965508570626982161975248640713846627437979885155167205319480980210970244140319596624761496071975225452157702766633425438759196598090242224690629897081003181052822075273745587439460053282895621217516769617345232027803827390826476417044714277666638713698499688473715382007086033942970296525226307544117177905291322227646967707418099711864203429987220959438828993753904484195488589697107023803322704427786458644933703221859844571931293029974884025809563391740526447488555030686556819693726247707821900134119631882900972913897178145787166286138392054987711767720673201923162224267317427820788346711568134691993321164677333725028830483027505246883705830775411425588417505322360687002681110105613337294620695229312430773643696143562350046970379110299288459452642204313730082342968405699535150721412941650106223460909901387478391722244700384405968202017665731421785689317323362220553800490106023912789663120900437667202119206935045036223871707252887828264158367284437650042882140953359567953398403732962905436039698381278976373783663716203577837642026496835034163608022642197705690510216854011165957995847560225943503036394726708675988889668598087938195796686366882129161047052753946620641496448452343661263336498086915890237088218985712249135538940198792766955029855185105553742623621311920503483881323598969157754116043328235059016378529731829497054344427427140339508862654245575744471927335787373132203609591021417945908416195342789070450033671807740234950211601351403551939026549151339318459121728809105721613465083333960790413001084448687771751554829843436173029680720670552809802341487414166884866671125752383695743024990519774084315109438172340033357103514506551183124074368629435461859741995979254111849978670077884279631472181686034331156095759469047114057739641032917815098028175394535983739234037067264400344144417592397347798337996316904010557659630917767046039236046080469911675049925179235789314748298792315539913641479721431683464706926683804922481557550010280569751663816360668928621431442051296991613830284490564986943823160701499148455866823270283846728761267019980268745167498249928243230337083646166154905067139614627958604187394447726198202944624996648193956108386128172589748481448588930843215145147501072274708703995743849803607075140709799716887861206418775811483228520713017701331119808184613346066736809227402155845592400290279174332637697607047634147350040521369414513162884881440761035709996986385010621750774724846842049977637924346368080389960677003052849659421636035162671310063938241087633859102332773891588665998641496929341903469025841930365812339033799611770764842056875885954603117280463010977303661942082758146041870458089341844957141733978615654982309306874343224969684787891945529215254245507645547346852535141298495361028515929778750906139612144319225241045545493426667586535183816787833131160493057605483235716294498109632862770519358877133091662171751097083508454161899464457600587319530669321912063692485605656364765052124309249623660754517735111476793939873442127834676734785354258566688995756545679611133277128637026390171111205252273051221910709243867221184641362531351793978178524861638949725240878700728080632502994215393569004562737832973053402264409581200335676950261667147957500755166416924598461674366925577942172224296773595544112956396197485744657392439998198541336076392019658468877834507419227036322279911523710295502363942041983636298972068672731609001505210307338187698045399968362630464731166316943773291857959782135881530846351874129663012769821423372616517631494582666778473785928422511414685963199668216765066665517255533113238025379380237158416755288807605271621905400074482276071665971047085133678840554664361575786347586061999256182499251112553835690925885766535224126874953216517949979129353001244350437868831008924755302727879830328305308139661490076007573802800421436615062834391391228662620667738654927024910065042207967699516702408363748684003999062897373874956324492185720673405324719919236029122516642711752784919505145210374726273698715850478151658684529091865232602928920542980524664017619151840321701919153498909236045070008476207257599764221538272635906342233311392064437254912284360528740350617766154391338226175303951374022578714348367381294369626534931666068409847583833507555284685380480334675389990109876619613529183639085378420467415543095064651931897117146841254396111876908001399201829383009858009005208781570534577060631321238526328242869390078888901342626298700023467689193186740527177081724720700111645451897398358264145000140336476197167971330352936108559293894179899589123810609776337293398094690434303273746122102126000433283964075455022980958114440021179729960147814752317279666715758130874154812458918565474879530725162993185669197970904557806898602736928769608180042864631601481222428846030006637070788172835762440676605205940914309600416687701783436389381551438637016043234303422502415914963612998479308306193707461891117025472465454318093338888300754016555182991227218400536929381164310307056980997178502051367160206380761594466026854292088698283313824401027849340633822458043145307484143076700664251695171255209878292313389367683745595724705955654037414836651904251188208795128496808039487740279500076255176313984445089189804959696340898351527638685812562993073499236834590941868774816206057428681718322955184523189517229933174681574329400040100972087379293026223050709437643496385121317861851809456863260788733054853116891730463354170035241688663714315532003196511595837474365704610319055344103862580466488645355423553724533842295623513837272095648102884845707444622019026160816514644390362224203586791920415357967709116296864027525870456270768932159764059038891965271873676343225719052798955501399671996679026888758715534547490916709947736485134403390960893122322717137396941978573829228907736481838817056455963364168204146404207476536333697464635749334140391027332585648137097974963273992839614452340596572191576306981661547438531216977023103827797574252703679404572484088844315040145971788555634724806527663280299294059657693314146362499995801417605042245888795045789396152915585764544027409546289153512040365648006825350340039385012401556149336382013363503290404804068785859053985662444533214268171184991329737510699029839521134680171097089660303199963891755623567382292067091733625208292283402682469689482513539312766312181110953121478127703895158115719122899860382316907247604363920626757294409579906375103208033648381350790247155243839538650357340969909667837878991901355551457835651993135891777130276323954743224189492736656267721842747427978949815080424619052604852159715452186573486110567561136687789596769241087927541586000968689805975351775317068937168813036141430822306116138124268788259834738422105477892737646693134359915420530670900430430075251938585796775247461206062235779691308594586725530118092843789030727666339492153367649794379058504331368480945504356001617944382513286804322814183573406608726563318796447276439988382466343738000260244960165385868096109451297875027440650128945590859164434534828616850977750385554644387743910623962954890551271870192785188688606333399361116999834314806615736739428700741558024774108464400928589740817456679006102821575812792960064937327435128438805501948260581099521139284585924959583704538885181961092621516378260702594160414730744161982229228317207245943836927863946288249117762184514918580055816375954764043295674574393598235206488973622488923931827849093186093392626822134943855763601281816241949016689138427200387953595600335468527779075273370192903456194788994383926419648160808061828677186168036724560011961935377765092765637234720745951347206454580666370092059341829386649876780414877661133152391261833603873016207930496342017504263608333693306383857929590826788097815805232962285908819313601885012824576000621549319660033839793766090817481288281708983404267738676154355980120700001703439738213688662892694901157593217781506180169691123834698936592916095183552876039539704861394274159306220626255349010495836928817447982553927405446189832952945135297047236514287774394867087354522366463218478536003465104110728903298888630430426684701021172478016758290371732584571119323010785591055293823147791497415821151171367708662372430547897363383151469877707158024442743305953881048620217874763498716360991678721424524604314818646785833747044267656320722758581626164338148182675187392940331036538508115687047299173664135463316147123985421353190302701924660569763946962667836676235815431263725922649966312025052341914683930133799126623079971967082741295770708831348566554326506249373563436110209498786568044405791171537342902519484947120628972892708071620504838390104133252977766003755057615076914764824231114193383909588385012838100720381606446135595339423142707666772842370544891167354893997175196267128534428159542144880099690605605065930803251437175635044810624271409477200075250541417003995529509361744969747748913170626615379598927740982105547402645095139475092211662244601261019663487528014761965387431841160144481716844787973118745617061080667636919390656791615784320826201681966427516146804656615863562741856013891506176849761304898695702973406018419866288414435871747110950017532387769699072281955001921999667157144527252536165872672657910568227099777321891492280165821743384816515627442803272880376217422708289468155703299146602277065549739390167626050494242762969246603074448335678972414505668304951597569398830560554622386485656047436621886906312583774537471010722378741919617242137827039228341617769318995759177856838533162719580492259783630107952902934117159602834456747066953659292357237569595860378728226732379432542552516497821904247963985411996624502060951459629320354942192944106981676530061353053107184288260466476496971253516270240271799621848642501286837518260389984857095944826257244785355332497749073306355365769285318602369121686033234970241506795193955714171294195030834189664607653257614933958688619699504793193436408431685865263522809361961942445364827478254004120791981931732044465607595307970229961144643792573050252957196245305152419594148457043938325562761267642218865404278813971125694538677796902488324350000500246953300781519732678139720066946890662423041270646046709838945317988473717282009775110662374803802037958025747947068087490901613170066621942117199386214133136759749875723058151215179630334387369804362501498636758447164990759049685162877735841482001884768647551625433663341519997883391490446353313326024233846992452940456790343143822579158362124611826695477996712343125897498462592163156892900839714506714634845559945154587089547821365140020680276382755494026259346446787956928908046075929320649976184524052850349338545370066692850248819688382388445922188563887038339988601208598763517733456847680389685718820805601939794438052894129064782086158212929777530972123685483424016685947626072548683934009593034323342001395643573252588554608852073903876374123834546126547114663777017128751220006651540937507270289744216567313355335415369401519527954964314357879559550782527099109009209106458647559486284114739069907199199184663876104214177969295968545949712850073870242729498869840605702725684229671493556293912313954673295618699196409359783224419516494490162923578900250753034917690465641408589552707949969874484075425208661035882496487477734950085165488452866101221737180358700869441315137167281096336136406645450834136384092139613956606507393843629243010830137342426029800827297190624107611303698894329276496005931022924940950374920385550121157430350362405473802210309068925866173348113907039423145241869766732001417032599858220468798596160266596209556003170370553414419084455953584467290783462620690591471907350929288525254202906605250380790683133764301770459268239185951186268568975920388206549118758459267482334695961558430577284339028244715739535676462739814543407537714622701858217780811789317278616746671431660904351123272924592174012121781303271015280189949579871500787044720290559611014251126900835029586410704358294494893851638235294555339054523999905227416192039012643740630376366905213108905675341717607485510331240175158878483951931944699826434592371917369015845363658939145978716626238014762929584431787017177500267176721439883288234397699030978718435248496479430137932264164960613686039712017810810506261203863855769457125969389229727149104910981708416966886047464342251635660231651306803743681835771084276225896211405184657875738904961797894879556118804617296040255416106410451468225374643550985451628296148429676238348907927805466082244834481060883679597716804247711383636840702143416430211171611841709252747169069480591754363913501896105506036922288757426048741773339706878499239299573259280510783840589171743453866056235485157782200386980916474496547968974961614229073069788214514111462379394668477262675793105865841083659808297299465882132352671197531667363813692956506433115065152595194200037415952997079870077895122241903083404868275238833325713341801117128642468557649941478527262260437844744560945876240986764376258666159070890701464074901034852678631854335472995906768848942286432358092335675142855743476105013848216636551763563237724159568296223808772454114423242416931311818781619617651603463695362040805235174322430058311060176354771494761861280373054427008474485483082838267814340324288370482609742902320664190306495984375670446735219342354056616269313662379208125901876601797025359418702342514829284043638445140670704664019892759147616528191164333242775999277696840526233902798926457953713879870308371384543790158298218664556684070129421484900581359423968651603754188894388022285467776717799437010029863579755119627998582453772833698434502862868910932460469730622086913829806268872010501113711525948645094199079880677300314332414077808424868108852912198098779521720793409254013269670570640623600451054180125201565004340318722399017582317653758382381778897819944656920169974328359854058177640572256787909419117813501700147193123344140758156658930501726283042881295733173570503690444515613972189987158676779182452233239481893079229917634372414175360177171546276897708008487519433430008295617759956225251653188298652286976406546413514576689225372851744151951797415975567095130435438406526174925723077433394909255991170048758942566240598598911908340104561087058866785540753326880925115544221317082152100054763757622222931517490585482847713077009950407020733201420216005069248004615309621829452941410536778119526807116766834886033859401744687788968223784096331643440597709783990781476030837157930556994730632701414280639880629059777692886756964054628152940617678464610269538925023918644811845938405493424547720710450559789169565435037122080062515693158687997928247790129329408735086766035835085921732421053933107907068340864735338908458166894474592747835915490397535912570105126499810721877427995064121740804969060122535461945133302921258868780199630308416275584612707711841699008639379868461989992796903921665918955531551206984898197579095425592184941672642173920154841601564451260252856905870858496306403778363044374109062055068864702735134508848125733940624088923777804980097470703297157539245100828559925416253504944936680675747385446033512246631636630852989681281624722990812869482038001429959218372485536226315237909385054758692440440420240307359721643331516648021169660779029536011040228560821992883365016548066905539749918396324862238033532362872145100772710223659870985253316591926164807755731791908463693283007364504664431106378650286768573290333807576239961573011161880314586518087030149610774955451226007395918925691962374910441420270317559955483774073307875719426856239429485191626800167563360068477748542814810553377096337651785338345549608750315979069502146232942143338620457794081878538565392391284611598688800164779809391299839182922143311149790458482864210868452426214140463283914299194274138511365121113647166635536857702693730446597779863030633766274746754238408876660737318506587284717720866439508116141238121868253515959661798343390901144352055257623831090536518184321090520741736551183438011216475705082245573199309169250848427060962267695202389037904303266544266921276380746133472773576085536643554092970494414638328351090840017655405088139147522937273177814945406635008870936135658894118344813428701939106665734287206759046224532781999873783933234990280861442874065058164560919804869074491718329041656563032357453778090594827957200633771466327523755121107746034848327214994290053820732448311322601228147126008539832109148850550321507579435278529817736056818240873153905164854273261648754035146880196589037461297821953022898410168202096308256554953638484803093992735060157760642676777269838469653340593016075433122255542083730854808336269189763673856648042841129137029195542771443275025393600103655410393092282114831992068436015959748743693667767866661333280763828210128088680137943073396878044332379259319192282802160255745144203414484998627295267150616459951057717123172650926920986609322706515070705945321947068562296838290676530748993475706321247249073787870420009130583572502000458346040289848483394869194787382853980140264017822725173907207176059678798688319844523807711850310003159644316919050173762981436515443882919773268226811758621350948801987094754147805599681846968769146824572204958807188024408667422642608782450605368103925588520393933285667170675065285618321153627235457027921079917172560285587446516882469730665462467638885497490930791083021750889310956505656456120560458275606285378421851798142767215195083711637017372416590937291214192557429669720122674476463320331438741847808159863677469078942261751959807505873657215047760704360374444348773055949163809938947550818345890926688817388554312379613645857958616349365436266212825455804709343960494100440515190593275012568628233960495591525619362408257598644419087498908143228806287427901486272481100329802842025631049146367324731199763846102012826637144571441066079652614963483778548028116537429441888940777092326444047228662639251245617531445254590294210079162807098707065968193369123299924804163017311305715671928321005318344369075213542864709726020251397315576831298033429553368802095659946943319622747792100475923504268533297916115588050281885586866131072911460199067628715222129741213106862632610959696846434372883322273072450042264478718866298024014542607875227601538582445786198351920688907968199881855445591994018347937018475596298945225086130023520555480803955570053832195485810802529882210277039609534116443915776309215595364405446426758447550972090963783463176279261662174909237280489778521432490036429656000732988135954483586072088480472167352534212647324317212750375942580318806639627877722374051137111684178247664174632839785701176648343876197624222474207959484897677379491980269143140743643525483472415986618638213000392920192092253575606889201641883902387392394668329266369973312029009994086806491493386987459633511111548112761886934138209171123485642128829222251516953233085382325921746950062798413914102433829468004464728164559706554217718524387450059886715381536497586657388522948395244664768984781206499468539870627214917924470792004161667959904891719639309254830228583624752197997006932271387993287680508551173323156323788207464804546314856459255647675640901730490045134614908991893733201736308448928959180707000741789441326481009975153448752641254821022798741863393255347010403503670816679505196001025830934895353726920225367509319690172439533519740725340068940558562550320223584807071131665656052162381978903413244547038025692968625663785518319294626632702715608181589354155274231022252484460428077698711874163907397744547012044602636541840541437222548762136496567152801087078465280839934053181423291860747177496437992844064961863910136587182252235066673297271423029298152739154608870593631992802443178829166028943155502439830667912152724050481345179225776192056293465789464711885159696410213902389229904979242784788430581274430598098079971071025397829025028661140486156635289075353121505895809534607485628313011607862406048413717803057169622172675682928432494603811646330810506191607876716681416129131560983715806445440162453718443415197453136378118323185619408705760177504006509644079483662922461703997970471962906415296518766212372109219282401210839232196035962507150366384401920320408390911321311709583126504834630326541046753167593371577655513711322205157764126228237338310220391650225231214632594449078950301064366201284368910906366855965749003583678468143685113575551520246862513092805078001109602472343257835594284500848785016274935274112926961279018736487354774446411383250257185107154676499214355457613667466523904814094368001576732956194414674340192162541378828270974039248951518195274213654116229118676503504643739579739223085718390371921488843920917766053779280354912680049910815274552354665545407386896203134800492312403029293740491222799968125824719905119889758961709193376420203800846557998920447352817157756683442384668392428367068252324134928082034072090756876136959479785852340539335223719603636253556324201832473330444548208226689719064720654989410497542850895619289086205251322804878437265664986944787509226617339423851977556009974922077995557075188688812721232877797572470404242830374391984117379554280390998298249563577598235581066691062013792182082097134664142187511601685303986374527867544194242278723293388581984830232180013210597163134237161354398359982288891210927834528433794611889745834544104726599909144725806762808680105882942378005617023963315976031387176721319342613619110991431651587340968154101530043154311285279831741002355683096891786108526554584660370615054697979832556462730991384641472109402992770241746936800830292437871588125648056448302992261009316330612040665312850844491662996352161553587343206569298231324532991993373558969135008351158926727707358226112957157354893944084500229038854834413244705255270445760902479422629627389423278558209704323952419562933612289960193699736317826530934010921957164317582997893579936970469169900919461609174382882455614820115803890869406878214739966207437346765455041794223333329676455673268646838967796314945707270288152382343964953493625981640583989710873898509401604271575385075877194700829281267968950180551749039426375046524823831015020375558539103160518727666543340914675970056062107472359535380608592174835574494466092184338501910629537328945983898118356226412303081706665880980686901378661603850268973947969010259741447104965099042460560268617258386440451031719798929718065618414213920578101363621367314890417156495547905765076758793724660031215135534426369858101504038729960536660936599015733969012529091136424045245987100572027604874678062883072961151989082810273293646751285996964966035351509933722143458316072575193450326432758539851869719493259169661025332940748009613063449458994635852746371348286805781903813861444800402699149895321731911626753462492199115349590639035189595220594037658914393894275990453513056321732006243488791977837559156627348399703182040786627631655510410502797728424952002886028987428619438640742774886600426570512219839869283176746510421828309994849457877872613875600397785547250704008172292645657459565111017659386598805662203622004173686788173053734077915201160578335991425693170179301070325993586876788780787275300554989932738617509834583844665906467087234693630658796102392711880663213918743483126371958000694051987377730920930910456169622435183045490609194732536995379159550788221297558325444895792754013892357004185539319015323836195831456039186821354465660533900753161172596410622513606278607938985327432225650971845163445104493500717617674697329719656187683139712303818791313588857227277621830418321255727914342914962372002841280776809063081958760195173983277868020413526440407642366333377026215730364021614371471622391172250493187928718548365397877589090289282643495219783921500172445773196022386604693296952926163991965650428815609199623726733161136823843777916525033953040165246188800481855195908406612241261641921604868630798864045100979023328923222970188124910361437873746467742989283243768014795997488345457549000405322704922651253101570174566375230562188332700462248439040067568779087814557128768510055747469907467068848673186668084996415654505829814033127420901054853086272314802597042207361604429986113440449823653523874408820155952201099810208357768555743093176720288070018196337498568128390152199296270962420152302381692015815701934142424215085180351799966691158503717079460087371232242996393214498456483324276354166176445375751995930307164877572692492876118320206669843932878556897282432476560650153367422940143091036225580163614802865158277270811216949375931800545384605204319050692609269235255931018494324902536485268389164425342176565542954989000238125713670707503731383151330614399814462053596502640774612391344415177722957175482159185392635953312283594838363095910442222248013964486098979186208922990336663443933071085916034677901790738308093855273565377174815436873023985597149030049930584254819040619544187020396898343510240777916855850467164217197756304240659296181438272016605315965854111889034085204412975020664213437744135156873253800560205916341789850883701722003641742705883778086426444557254682749483192004908855018534601933658314670044913789272430320682174328633637924051598041538676436622235752799836311459220154016539176263959673639178761708864570253491896852181262901125762086235490114714378730014421474225854452479431475369988416959778315751880657154196592994970030659048485875324997525441978542303268878482424809438621609745772427912803040886527233630256575444004010796969637885598488300005425603494236991452084900314956350178429090303372258234401064176029415317601762419397878490714640911039814304411639016497594150419877772498082511754672559677793108718779331809095413576236422613757197244626582487288110433434494666965283227696436616742788825062306615166955387683740038993667731089749094830783542530915831174832217875183179283019402783614485760278606237114171099543392999010626158904413990911065106143750016311918409461953927572726868131702820291203897121711608722805882723389607717429260769221289743178580614106295208467847338890585442573212934064096108404113249464783840002798623411245828438347437231778447874607027038043258181542835782568208875365918057656245185230952120106990636876635353603221784133429810159883538204179314694575164627523764309144198054892859483003440389473806013713216070512102751916682900277263176327083320877194790282029719453136270421823870791884898710548470393368931698420154913984683084560639828226206214625566866446631267083314291216872154703606171075645002121579518310978873222535129103720988502494519270392529267720402204277123473244178807791936393290058629544587508436265568988986487397484266639475692583112774376791197617351555205057148410346942457859294636163978305268805551664914281847438258515657036199760784457805614462041836533491451385352593697483753569489616420261596056351839897734771200692989102489648600665163952145468149540000652448964073827605188128373937881180662803299858987277517837395422522339934406358248970687902174900383162324287411891264670142703017982841649510518545089554598061755628147121715636752766934380207131158400913511031617010844931288826328344775843386317280229281487250017845504060704280218076557506204145493474411787801192991224182128945825778050246588995493351798770051677263462954528576472892504795093002636330359075976046896949715165609845110470660326530985381739933465825122815161954555617307317381263692361892979287844962283315869959013435623277975186854148987150610089980216795178752725787850104676235764282857895816863045400562909183508259500491191814010648499310850777006035150884091745821857191188393429950966407383603113637910673895636539054997827026216513141288279425185598932785513070508454227773818794710190764555704003587150051019646006722336074657329400878119199327771984960716314433189082504922459315272764936330877691919105323403382808489213541335300577731090455596174625373497020153105779945837620626415656225262585391461569608452552970562212860177878878479165153723671428974935796453346758195212911608712515193841789611357512457585296457432656328872311937042700130729040943103653154227640354129734013272403386842223732283992845594377302523447363567780445029907372808233214015024710905902081426564794900999225913113960701804827824528088969456372414360679084979017311023189119619968585794520615070787104450127160768876241468577206684172849037173841124896896276710778338317657539349126141579651280161488012828074531059617392983254925138030321508381330068310670152829417991824609077868232139062565291300495095543841377542904875321971536860375327901252962527763517795616290143852998799706382574524177279813944564818052739829521508010959357285796553256637763124002768912533787250672887151154104724493533554047612486626704901619008922726939615187360994483691150902027347131860711411023342101241146564598298403147818947209425461621749391753352903049914961536176251242376496301377163916846953106677981180916302716262119208787319052128036122239139105468207928222108840761154002765618757160676336478878585924683428653938679842853267861065463690307192801415063419577384560431854616646652727568884888997732888025821636091547162454671446145823679937424710997543083554141186408874868998814027972719900192399688104722902100124744730317569412654812024506609765302234104487507034477056240976790695117280871493609968640639992192320496771477836992270379312135965469835140430722901508076304395561003653298700048439765873022102136010518329815305481773586456904096793432774773622407491599324512171850731385593358706774499694836453547370516500688789345415214285253858653844613454549475602382733118493899277765269239870496268221596906809370476279700296876771974847480786576334476358451787018950557113800855839663122507162365543990752415873037815634309839104044980608504173856003507250987878462513547155928728878759109850799824988024721542456422114011754242338611044143444585723617551232767253314678706140619189496020534080778947109222364915526093074388458923863652904706395645239516959234737099768235883124293782264749288671425184185576545914059460787521521402871310962875078395176876761424724595883787260829839970267546171345895443558135908511185267450302943015268765750161240360912166128466119850798906697719158804669514210286505577260471801495844731145726593359775800041743362440642780803079227404878609019590959522631426701842762801795341775137046640697559396589756946146718944099538124861011899049567623061407109576354587478056127216477094807459554064203648127974799848138831433090804077024518521417963531554297584568495844026916835579574928626855784042276045451926969547367715470788698056152626913908396839195884998522027049511549257887331302058312873279145199367001163981993936640368066251739343793723868098156441224981718187537347613547061649541924199858694575972705183450727175802328693372140017310541370469652444826336081201704521549406353229730283795229888206075404127485369481441330323875523822660922982391924947928764554779068313285473166540881169780219390366348320401771692279440469759385033045059702900444079534839899416705514048707187331238588721215386403829868615643515750103488774979297069827889326127610502706329855418261534394939683035570794154040190756676318719095142187002754809179919180867324107932621279359122326656325589863668621554090018299775372099717985448015586911812778755031794598958160622241703141813022783241486247309506100017368006384206206999198282206270005110896810514275960209540746037918299756737177122868020657913761111010943007240358300127024402412992333619100038498213282357990842620683724980617298951879506680881268098672830270661324421366369287397588286645613053692123687256812911112549555462100488197531383572898850150486479892044119668155087957655502438327357632201415218064369916272206169521876139670525693285382251524912994682053831612237179595502604168215042452201974200276213978672216978137508257677634926006282420012619643885582058447150389811877979559886541095642144831849203226761271846725545002558570528767769523077241653318495878302983799931331417901179735851248132455103081181868996899202323377096439424049170418544177206057185425459990609264244947987145549118726514908567818476508766356936074291920385758650719993108368101637042295265069365483224768301366103825039740629626114598355722641444368380601995227182887353304224113918818200960235100447126756609547402275185907492907028721408826849183089052792022741975112604958882993485055768714840632217396957690070755332255121817798792846853408367226650211817752217234413975965333561055081577360841733289343786852836374630227521897848006245784878305801471290589167255536524178017340218075611739516942003542237309446983688510188894498956199746764961536662860759947011855471467813748917128057945086976849622411341943630774377986455507546776142475831544497774779191478111441191855093757295010617679324597485085769975508525825395106852648792917452419802974175550446113668253347326244797664186866107319114794407353881429922876276402199222947761026942809492492061981508751587811559992914620281029633401533904840699734504747855523197127410938423519807761938532274528756106467029663528632766726930226744997627543477131460530629426005078657651222548950964172759535221406573976084258827796096303560628221549093265346861362210333592888962069140584398855777169360925771010159602455522863051826115261884939077999124736010999273966476147272412832897040120789927836651153527135207135781061256158973812086882984590083820858865333180821316586045716734986945369002876855456842246379945028273732917318447165504886769071842963676209840177103442960927711986940553122893087914909799665610993203971096066445311079456874231075619197061126794071290594625504255936728974299347178959918909923463246772569404189323156661930645793147725161982622753142252563446358265269436024027074883296396278857036432547818597730330471547471951813033848421416601213009762688312932980496436848666667464772443156699942959966856340772095249589911363424379629595077947744276229309426711476636791748434294198989316118287058187448822694735207257481563844128778834768550068815297550785525913424914993944834661177638746362933405950317155325772068072014980088408898714045045890107235839363382502796247652227395224686110268432479813616585216153680735473008853847183518751653707324807162978750672458168393518098972145494016000464706644067814818101625224521195567147210894266803329252691318707285426321353270087236294591653105731999985853211391053802491577507301397747928095787115617974757543528390889728961505020472497047501779125437264309008960436137157097192668443620440380718237548875869903282729629710338603456469260608057437576707611587837912668853445754517887951556218981706878746785270046637544506637421190343777915184974237112146933668892143395551035083322332341607266772660838974310129789104166350826726880397402929747280398117579719414725488790557039251540086285878288622673478712070170319845017891355574257682600232750732129526381709547438644799015619221576558070799699097720793764926853340367894056177646056340176184303348647157315842680734641422143888227757431979201458198415948456089103303397183849164082458650612956218101782325181294464331512094031793689476552490451941478802769275010362663577296128883537899140070194719068333485755595459275668633373018339616481973533550776165413735822598046264609019868233779771727954111163710486464882013754920883426928628074165339653291295902183803895701340416409274098169418367464272175618336701994104862312392623899107830169314790291720107885282462901742901459832547752477588429500813550403960128298940168667276906830928849927123657986274109673634582261935745684547983608301989957494187886555245340203691124991607570213074265215886345572970605344640624964117062066608055402057353415378078284924722113383059884915536228851448277415141703063818621487373612561566510619776501542504878440578535112814996789483735476833583821001990177444551305821753557373092398774944458391598211561871778307500686851491265260215492314593355610176467036671154789376589949601275625675615683374294253089665433291820714470163218000174124951217963061259596660063029330521531993315824343771592030852677879672712127537064461562152296686300894479183696282982335617728466312793096914597899008557362223475737734634482075798142092497572263172884878974727921963102695469585670835538292477000554892536652694249964832699607099992435097869926072117087025718003574053859628443463088337098553599164981078727796933851395919914281672249297180246248885207516159712941736014480394971195185131144732987921482082091302099200644115077138399207642233019559935052476991712275961785293692075161494165422431138518342972205110931537913058193351600872918625481265783300634946834238498805655107054786797148487753471480092468590176270766042839431535578961634632630167154664814565593620660818767589476032538963598888947777853853010493162200426386742980815897963757598864796281813447456863657185724245148487146201264671754278101867165069591228176669982271925267220184983927261313734983459116187852293985335865363531026657852911368445850874250034016441967362561348398163929331688824093237775483094492615703097739568222737398200791804758168744174630830748995617116724366668853562966907700153403679546444960406828308506473814059081710784524332320596657176907186841699052311027732628438478698126633382090772256423253113935619318946115336138057870401812660723286936496815143505110024383927057652922634959308900226518261801311985091843776581704337226375833689374034022428302100147785732414559913938392739787460055709522552618676066586704840175310153624808613159626363564930509703404150913065813124103876738350575592398482081223855294230557776825454723162356475183981376601371489547853325469289640530202631579564307392688788407767361424059064113405269301202065717640717279823468690466856530621113213689117405616138589071276199950082437327194686258780352090515245946591840217445089774604411553625839631033097863466618742682857381449036923806520372976316246414483121176313014966757847711836602711706925831630948924161801744866698854562295659232192814145047989225335351716670098175030150581256729724770901177992729376476673429260156633173041513236056901244559493400687544142441051970102203469419804305654343348852919373552713578321894944367599402348167352373342548924615913409085201520498250983986604637228554317109374115593081394937925931220551329771556605884775654625510132956311847022253125330951268899637495571902924251689028469803806850887080849634486458624165485091062354763359876144211238935097528419857128271829216506641813940357867633257912720581747350656321787399480640784013452200002107869982261431047015897941118929649005807380418124940210872078087919801455883727152217921506077235101290172758987231385147361869495017092387587181300157202092444166861467014393107985361617902529936160372736279690232971386947314147633556307983429192054554598438563389247079064583319894782164280006481506868610451024106496274917568530668845225308389059377159545929821482918207881916280605164647886872235521787293890787959018064470748245534464014645169809156088770799251179745590715114931470514748082086782307835424263476423994380012678214563759028866999748347724684496929853299734891805132903116349905610067987509515113828143774221057795976930018072963105614151474231204198374145982544986046975128295767223600448662012674122620592670372410326818180852529607268816505468251200845604063838915196499995580718576867136212413624873923167712482166968004492984467304915564406427496598853101961358921978467420262772708075902561232275323098336827692532436609516416215587716564857205091803439968343070942192929292580051184228225096231133150640289442411710317020141974056526800750188956090315441134678866443326658118366553107655150643165773805489616880920864295812572532719441889748903595941459302464990023671673931817041477123381353491852780957815427581067169128364090337473969286816804549903458686437727421256316616792693517867369126013484087648812120156769711821301635331515693993427354970097905789566905596495275326408153374986890427438223008566133830903968071342112342485671409718449453862601298257913043868703477547430390293619008121858019084610097521071672332970352256843244320617522676537815029206216788802328698242322085751280828120151284936671549977899514397848279418645616759945138370354848301408921993694791339421883736265332333124275175509755842793859930554192485277423006759445790640666231442287647752846020387672480919107055199493879485808732217687724467175857087783686970956879618919391402022210010527421619805474254073310529620834118743174667405434206614759442057932855950632971253735208648058331689216204651003809210181114555280562427266151743471013412531513416773081265160882389691024516524739201630089719799409492284791723122905042617550761168547927259641335919756688195798597547397937020869148100399687259685310977690003548039773188653783756772519843974653146187565142506728122952814424178299311483517879451777220749603361139624278102108532366420496623097465059899662928523786669520465106899138123902523476400260330259925261752985323388212171080092413531286314912667832987666557587769369958845338277419039127426193362338312961336094995669015161264359877947292400807571740968443812479354425615864739394075800550567307302118039958398293399222080202432948963819358917788179428282965794299893525271768327202168660020938984352415349389638348846283253682201557543773208927948732984664199574676639844608505240403215728949319423192968963051117064808547504317020354948596920838977463348151952557098676703884052765549613321888418399467033994693760545245821529156200976854593126563081694129271675166475332789188744141502355369738620039948745987448358021895036926891454219293158216465378679165456314555041052576087078767503492171421306034330350112142833254497746577493305124665417878819237050666992718805897915683672300045980464052895250472160253486955386211991827333427256464679391584351585166661761830700794481405533318864794779869701482811927524817471357006035519945118450446247086333825074394596268766855346278312034068271901778186827473727875895533698934600565235970367860891392665071031752507045063505292871964826008861205567703208046934093352036556558812704012996897184160031811101190543879547857108306209204978897354997378941222056720030627128889554331478652314224885696294542209689386800303683237753717992832512094954651234425309643768637898543986945461004247654691521692156119316878890760275902477747671745908837847020562133920982040644078934100014979263155859969814556192534094106939673884513615270563447111164815864682595402716572812669545415222445743060642379347366937872761138379363471357070488418382094337665889095814457662866257571610777428834782103593917133746907776508198566276883868697997314655965492158809872878319320484331291001519356262871132449855217290984255336503172262408842507525632568407182806718217137305398599278794018342262788515119025943810392021401714466371157336355852549571783961262992745893719145981291968816173481244417930694594408102007717146116704173534542806509774265987483193743591209657332720554611123281095066864787818579567679203983761006021865517983134827536027725580050065058725560177412568409986151604267071622107037631171782068935708161957739447701717045280851136383920187979758661821425369528732210242846138400084953829029530233521298530127199494410552397393178717263591402531273129102920463562908561566173367256983128016186498194850402785979605330351225120878093235002477968071914510647233383716089739758624371359263392362557618490228939768860727471096465504117854694651114668859935159675308718287915001645113728600766396201807134130842961273867619340663400154046386195988112594764983683639260519892534458900633195398233373443522761939202872382993031998090170792935290241288532467014407791892546465720409483432763214920321349285007771000802181871348076453733980464119777142008406435324092704930231715472645093443098753655739782141733165894386645364115110686283294823807869532641382784241831249312430864322692090778200992175356810380459365951894005518760447223267011517343992514474569183070016191371644563811935819982288008586644762550577323186588132120960103163085528356753483773285379705152620997779054887981371702922900451218892192312984279393360843635345359568372775080941094727077687413544474121218169866582543582878734562356583147311869774424491583160737683689500021277438025242349600951032535944102123191559649244233790951250394194235508405913354532278997161326617338052190379596048039095126573490217035567903974010391286717885924925973285819966738346697681749843003190867573779947332545465647178858698990962722922371042672929361640177001300695809633239309937706664783711936309608396878334073419388171754085117664397282925874280905182129804296407515008075035230703834464534059900825194992136870345335320537749225241010234748065618419825475484539535989754043692408482050597941899802333647937621163930599685002493043698084907933334170371299264416607630049413937538491094733416823445498412830693573913853064422286124591401631223585540552348659557367446157259331378059321660827466376036248181448617887551167823981542344057858382070872299545710922966257399158009830692892559100239759040710610094403763683561105787941537825061365230532353273915403266363891182929166702726771392990894432776796503947660821992323666753967658803716253606929907564885366764400813825630959597750552037052162781008934243847294752093272395457218105237519886456612831779129947986464884995444675157768658885281641588476622345905423812616945597477982895253026263891856745130590192325635744732373665877861427355891644517251015601892335939846910670645070317073091940189776127471721786083562003267864006746836453964754744426449631123712807167780501988257603904930828125629132385807418154429082740626969106087116782772722853337298939986060853285610547122542708213302911827244270019895162875658000795213561173000114051169842488740831771624297102564505451790596527671400125469442072388494278330193200390385025603138929237255506841872771565891192209352420298289280437349892455783626636611494820593624754626839295613731654478102925838674509053883957072029749714201579672594334597611879746951179393104623252738795881789229191419604555079295814061384605530272166986148520746794695201609904431363814336560739240458080612744703896014318001004701992396383167315068879692093817777604661945290668490399509509811573699255930368130884019403874292461226114336132260769147177591136412825137162541694744558481116544613799788033364157281149196277234560221646564687950555587028253209984505893634255460081111992866629738767711913186056729379033290991048805789905844152605627981851061707677929457096449172875067330048206008377051205514768589353816830368439412233742025528534189682214898646301619654155731401088149635649519389248430557986927460928231522067915523055769590091022102698089393237208324499669157728741094502007065912109934410402384623952098131531931760113180615287614467148561146744087309071549922081159757623642691536446197020043787700200652728626307432738347004689978081166411384293290222675001758117764070880288677989868953255831821333062897334637703431968589047714583379235178615579027997310716589746111295002999841974641630137541631916589727139580134944022780505258684246493746918728549148437079266154323704132717873666235870804558648841114268858286190927147268269697143917967293571858153103690227842874271891735124010690963746216144256916968152639461378396067011541609480882641608264684069605382583081708757427002088685928582525893678411334299957322702316147080580801044900250560640504818538214080797541062924373531104035414410960540148112699640033221606120332886528049342090039371557359959857977762617281145129600396092686604375670081667626010995811508588527113543190711275508390232672480867418212549901479342737039651658297627267971162666005610808031267347996757327559145084086820242728630781431274670598126618234806969486228873455294132959608433106852387825506001229394636975774824521552289165433224889372414743056312593093781880934220953640531664016769474910417941157217200240371089776112906614837130686000615011929614883837156947133498023882500357139477607666868314517134855231011695717434757257762598950270224673310078368622538641431110216516956983462920628211809192247398684631061995512943344539061750299319349291402533012793236067697697374328254951041885212877807611627952119290576880672138645375899985086058919499306283683521541713943464018652257828602010920094296188676252439869245735880300167615837390492246165697830159959985833148728386246957713102322774513598815653125646643233307937519027713241237751763883196264608562747618843806498104679729693764780657201041258890378354511266842223339813333277885247054417024757934588892383067276566812779119061697884789908536282984467544294275534996110548233751997725512673550743962564875746449512119608976731694092068303385085682185746131126483191957611524028040727716897853909623349876370321539157180370136058269152416189244245470260651373997333002168831044309258702678876584811289393830161735030447170554819331254723844080938410455435367037706493045908244611025255746729192707465028203367636313912113899313914493026476267415266355378203399978289003622308728790301592248789369277594365439838747157036840634960867954786915280712282755258779571983887814615990595449689539269913942821823006305534088691228755346478967723927692720115259182028061517746434680548820494167420385871127315326673963946184219923561164352885636782797370638242126443911503112087563995646343191105524658729886342508973451392276753167457514867116436168495599185828306016929057439810584230982238665010911120414055574961470635191850324937128355776131744601223987188501671271586326059843243545203710163043188926926482259091290431285094982662254242171754734060426649546925902742264778462724712382339920649352061370355836429004685804910739239199677580858038428784484722020192699441840017530537651228587663856734679826198130555514210867092263287317701219986083540705173169619332320515562315302521138167105790946975092347980923899598348090063254739106392112086887286716000611166990052884252280741351682875992899796620489977232829860761099601117535141411237038421858692131493398608368218112537808264030171174349858563442999477256409675019674334390172940454383834532743235921005792039910538834357572772732177187060653412104931738206737030670996853208050855393120543402763387147397392797403914559566492788286024022083082327675775175205683642962889623324336384071039921744277481713055257926806020416292007430868527284357413800255184924174708252932108549214913586760305428467431033800022425745314616315117067549898861879236975813921576261596211309782128458319515033237168092939025681930118736155682132225000130126190219576812932259937205356694956877329497355906285910536891328207465201582722245570549365375501749457135082911779409519617677953011169022490478044605124334924534048109926236027863630615231801294681364166400358939423171595272089154419251633106272248511697809952769742521114696743044803364875314796060599111337487043724642960496596952858311435983379553735806538099640970315159727282220605907285729195039191703859046650547848871158258398819045895386051458829880319542536098478953529659751507399234556137893809344368050528342234977646473421703524192420927197464022401448339286585038571740159429764629708416871206992050924012563318504598702537764741063964306206467861889831559597096320691603697369251016877873551600466145065859720456096784595064126384130824647608807611805462645745318856220627342400900672516077789167273009240569797830961240735249528689935274316511408558001780609716872263092227989622298575886201300978726900139478072588826484584506899994022204403092417567253742397100319718087675783436900649923940407050115452115195069887935853290269085536551890049140572744763493335853119495345819950478885765920663123258682426803328712712269401839644111916235324487339894552416054605995581112193577476789915957384315954493482819238660954844832730092076926196050468054417418227992784601274830529571394170160187310479554225326089141811403907309286663010287479997611974111647797438095599144170549908501475115528427444455972469561379996957231075573941194585955505871794423147021758307952650445325599054568441559062562922488360659161790312826395690919913611609523728629037441006102218416645649372487136035725780347107638915537580820264841242069835291585702100857541663766382652094803013579164451581055775220727380642314107656046747727470705532793669777748483637625368713934930553064209709624793824919765173210631782918529586848658311724244488269863872109991395657776944376266004289649218088271944478900224188671045676479269565257608789812313769701791118307782008189664804162610816583465526472087821198284031099423820447462021861084566496577594684572408523921132022137637270090577894873739582597474328908393339194984540941579995745800297370217914662645682809059329051431594453061701388000389631975317885355940620099492019777485169177526305057827137961473795307601287125201162772345435695013959796906551537751136288087003185438265434671146747618388177215833283643930631594393478923822281039110254009913773130702668723489270321938673834976801845481105680640352669932919812231586594034550719012026398212057966684197550017507461565412384511165622925052747275892045746792139228177873006263514048756346775716480045881249810116846033820788627146600452983516435290941557928146680686826526262853628782205099764280755720906586764906886784458876051334035403582693915894401278812993842516698973982224819039262582412643833506130185480362585973043038814521577769776549702884620357006551566174033679188725897748395414123621423500178685867733709330126912868141655518189071362285904495550646968188757582082053452594408216317446623835166955546886869911627861452980231691741651696295657940597343345029060944654503323828042895570621203065035289534386670509831331188721780696775605339662414934018940046952217845442398440581097872793196237537737734483495244284093454598512504629895545252233102483514337900341773602767731224061575395414014309026117755369049031159848210163917589815687432924238713853548486248496013391490781887137381877023632486828081794138229983371383706995804003200557268651364209221640535809147229762349243476333849027132917192114011378935042981923612334394038224687169392910943968837617981935186914591021149564464701896092629428553733713378864344574581525422444754521184786203909399479204480641356122433791390686810885549784679662902610419151184216905024157043736546095471811387752973371637666614918168643806908017106418758886803803574133513852922916825878550298032944996234072326234546019716144108690548926795764556444474510580003958015948368716444873425196040855429364514553871727693634622305297762574577416204070128668441995316074563056998378115852754345794355753210672433163936630544003026917564310477020058038625677314799435264715912027171119379329275268003825139816628317311199435690432660933347942381682102569587562286405810632342089820755793054282288900814171282766843865790355654820279413063694782654231088938957675745088805406718602355375884258355881225004056256061463936923050115044705775022300937660132200256038776617462436435504606461395759601524960760830709495895676453034832964029216550882348616154122721174502186095001706540402915431551313720485613716584132732934920258207155073266369854917495123569659985899859547401714298997353299589421822962716974803245246344443867877354830743160802328368746637562314102924778804141095724881902135322502591000449055171585682163133292906217572069472377863619027837155379036679964379369237526476365774456552060571615568765309088250816317026457008699453364362753307456287370179397231594781353327561747051849896353658831780938347431495437696785675260326155257681971224920562597203769870738573158985919840437958282844605252880592633865115447349707539110776298500281575352541883801044270377956664056410770322932489188062344010106518107392642418895978600281322684651460585181226869859978483577028417605497332058468289080128776187497993081747952814964179350978486012490410639146973522648253571015094466743788256233105962033824071928654421040789997912909111301188277054177888382232360023510750339189481379330606398740668361921536436387063279452651700283266650328111124716583767185878536157216152317206457102032722872948382598472342331779268776881971034952187599224881685969403227177079031949289482892398523234560180929927158148778552165129734878619256320149099371972102750061510519356763398641973062474127610433986567448772324386654274575802498663189448839430587566608767270530836391933358705815848205298296738589137469633033105317769438659311437406321103975131412665790224292414766860018658797990544342405060228577569566160640914453783051254092451084262205181282656160370969874059802463947117522770544515921634313594668208945966258770525487565779755291112024212676557800356621938531343164432702416785776304446133116724505769538037003808661160352606748376057931880969599057888550954996550206797160895547852852560356776788216596383920223466598312485036516313686415725990539024354829300120336401640690063037897349509410720664117583291805736258581200494205482450047075233260491732816237459238800209001276150601572293736316307605597907141969304869411794358505059221323897845049637962232375283831510667281891972514955242222601475604686070171361025134786436518500839211091081853519717918594540636522939216063550738557954241118932631561703979670779664831951456168690621324559903757448146369864232617576430290614506944931444765614263751303491656605290465758165854569427585476648096166129818336721180822899514706426294436594870296988665695996885194031666577439651610614956986937068981769676470199826179603548406567766809520217300563479113586416821550645919652667837795717698737231337540362778965955484048795044791295984228043695130934597641410850296652796429803737382268197029769920946492784587626498811050986364591035855814520840887871832618644899261209629312595865798663342191219200948926283115742608091860319211874489590683777248948162167567863080125062790804505599951214601313510577536625044774745820115488202828693715414740003213012093199565721054647624087048751722585949189786107798033365160679975400901871480054369467468995250124918961004571844225662034195082679258942017494645385239376129203384027359972080038603280107907576084026805636542657971924255592419580795110199372706723898093945019219096059727965292249922653732023234358824695815011847314407618984478023869164480840475049237692403374177343643447083502815482534535488584895517790922375911609752271542094846950897473050203544691001291833928875209678561290654712012305837869839639946660983184178234196136322606001873078033609484810860155302825279552917841347543322466329526586577482206850542292377900750346873918102783283516015868136835886563185493741804965382673295183575790423350152398229484289441493484440075907956407921505513439177538899216799679050678812756808473415690090021681758993093050454867078556355339507817202211552993543146798491180063854516528326261945294656015138483074835085446472228916285150904962166940098168306633161735495883894832260265452162186383532534213409454749740101702648208502618675786210214891170596887238906192276760368477001984334409887711920464466890894568546396861927787642219578377743495733517400723958712584449782779433889260679375061892751657176338015307967748494532145571147360178835922431346129132170938907948162845286437267314983749737814126735638249883198014654695556770119008277320838678540195381357512256331544479144592361148495987530618595435893088920808145897899531440313584139297127190555468361468129720905745527615371006434218413296400230050779788274557056387593512819871188975432648370325348829592043384416811669581190993545085418232087109287494894034733630622332085472111925435151858630668777833843236617103632695531802128618826946789347582988925456157318793327239602022724091771429620001551399986265984519562535821007134655529812579584928419189330840696358374261214419495003426745001784722951983576997290455378093996396102857173810173901836884937910223979489325080398979211364203186449910554271408512602810160336348416163147631196676133232586470217930227876359301337503775701337841686412028124041889903661351297995804924984878287010405059867779321620619684363997524807949315885784459860071128196085015476571709703678609282578483059177123559776168207221663043691077727218499571537569493112089560627426832357032487743112144044257783998410318320373498472561633699264869878146083369119763674151553607714072623259775928051347339936875089228345229238299212065167164200125304701557754868426142611609563443791791575839107950671076514076764447770791232632625870282366254932455976850169943596068983479288718420376734694837491877800975178526494517985272596043571033880208641758235092750581053449959974930139229336177478584664632097381854495099474222032227183716996729145912122119267495822430776669928744024493219049101228326113939500903213117829324501177406721116045840940957140996330044655846060981298287791370095558180658733634259461202618532561455788352857310332835367424121543971299944495773301315453047074160286832340824515261328229660322572524522726445452662510329152047990882273548018576907653654212202488164913990379150994182052267725774892438984925471108407490736776141613079690892234633494947136707621681242580433151642149368760112395413635613412056103617534685316988125948624392511184030880284593345997685583852932123912315557386257960175349087754982554902350914747604262083392741272117744988773209354563965948118693551160847387763944032910679005029203050220195988135203138923870427271389335676054311921400430220774520147778773545649174745967429302313957057672007170126523667526876437374628200965749123956719956972868528745325068219237199540837403111855892716570423900253911947281054960494931418677134354359606619196206555866800070210990395274511893527525164670843513419767365300332760552474769339500124775149867072497075060500070354045046258971145673289204218052657247368875928388758866920819716808144516875260214918009102213516792898318944456490030170154905147432656522413966571020432649294686224237127416905846726956165614069771495448341518164995900744256360116795866025667882809388324966513946577939473844732906303968182297939984217061227710942734918163904228374999220195142756925777122794562276614555000124898007844496863004540222144378991240265109246295035798081642792005192592530482840281712963372995146979178153716028305461865950941150435769017429833920604821468138112739549278486716239731243903904703812070458808319438953530363765059673164918394459433885701240289297739341954150851863768582056933255504177931719858334958172602786835585859394233197242065014274299890093242628730038039226221855065518525808730026424169382928587095247127914365309227061222296146986784130998129508615584679249326828163474525379185264932483405988132657726046329713346955192113855331707627236187797031270117458382412668478522843769609369813305363344036223750321644480845344842422359586146686890348690262497918233961071402436038966428858910053299780118647700087287498700691956748456415485951841424726986226264658359496206495761152816021853313468946684811191790199798211816913436258423148229068350399305506181860608457267099678617566156166227079620932484513828734938154220944998251647467307076703500265540505283726086305320942117172306210740339845673135787634064850553855507108952750444758821427261873054788918696232077073861425414520928260863081102268530577933502651229320378180573753862048015720503928772340347069901934886761274740306113911093880950635022230212468240000250606058633159461552543042174627404484396836460776640129931564959647265571723875810824941664816116526349812565972973991887146775122117650501260418150908307522569086405915498838181580803120592425700994521763605217360759308332318554589359570284683868448232171218990033276036751669426106294143657788318404617524582036548964884928574725613075950884220807794393449225833337216184281298062317985768350311906274630568843868022849849487915525194085329770441004689773827831040068605967794547836621380539097653773011165360763357995698099324895408586620252349347799506036837326669531821454240474572548925729481235971582509315635853775532047050964255595278523729600334240435808466183758199435990806851891444747762154763159268667855000693582606789700202128057156641502618920690816231310060430299505839513346346349166564716844764423764729444800714806537843967566059815785682859432132151694834216224278378365593888232254252375386983751683653652992666784306299523570055063661083143001933497344970637421441659054903803752453055067279641878548545172725717529876254563573903617998821428948829518073534647183704793849785554949661739572074777562014073922850113508027636926509952048447666390229333879096430439955278796714834470259416766223730008928565482002168199412032774791551425002520305980000388593717223661078719541865758402031077670601144155367986098243785489329146624711679832166846345551424450898681203086358163710807032898376508371507620234352672232749548470428559764527965688927478597089718560524929611717558184817006645680970591783360930813624587176916864430156513926820448667849956311857332088453885997855961779763167060580379960119964178344243091021548462502320827669519921505890252661746876726997359345675214664920434047734194314671780721236087857389163092214179911590573469070042207732721992393251122774435301601958967840226320020374420270640497805992680915520062758515362957940791229028029672139128416194738753860261200295307416434374053752284100019625093101141967925120247631460864994297523810607421517877240574946174974665043906641416037797086804786445281191464372219174968078961320970333716785885438174596380913128594769848768765339690917163577021339425722985683451145816208338098145027575444849664788797930423676418745458438159148545512686168580062514813071832752624907320360551536491117836045068402822589735962668390816223690859987210739557791013243317044459421596102358536518695208116274572325198855898671131937159397615398034593918687090085990723349504053546287287638628651488070314242766052845726905639116046717421900407780972244600958459932033665401407915690261476076478547557753832260873455953149679094387030675347119582802574069449485164429962173605194540371527215809624030993513759301325356047776438491331866175954624029825678951323132128536001040498337135179708985214796829367278721284737971202887962648521964716519970252576096410603696542786431174403323589253423331637928510407918482241463582265776470507166601413177706584270079836313302023387683509759957835985775259761286378858057370725046375312711755811664298629588258592400554200096356939651047173119086073397437468738641629810416695098531364652051306448551233592986271144776663662059459326042243520502665144907077976520111224727315243383770223805771044553238229061760339055174043766170674311582832161246302044620856568676639556599268055312016249445659119387559085391489834503988698145410925522539305304572115379474049793901047398896696227218036029407648147670557503718880495212025438894474872372344407181245746745910790444532922092913812664741953810658690945364033487231973487943885082288860684043791947545850730756299544706337571532425364875464004401134795004563704950017986531292850886526814964683588386106046251337187150124009727072713514827438257565072331240382976247253500196968009861109372790086425535799655195931507722752896047482362629577937184277527203463715962376799919375172654349915705969743593465406063998021429353810844729421035293071633728010962658523610487461578068083997766365749125214475703339396860573439056393730684928101547147323325298586844245268285600094134458116410529439049237253509780315620011998326157986713313403101574024629819590666103211856209697667637740331907736245299101232052950052602538381316870260472339498821319378360214179357874753524704534404716062947330112912367671447120917914322766133708352130949715993857655538261353688389264928209359113030673614546485547891466777198267269320769449362766178024878882018266082182467473241046673149173439848829956792405636774099214310632700242424658308820686867501341596110108605125380599957445214947916849320102484250629184482550734780331907097780537920281187025972084521062295152231434798514649676494085413669008776967202791212817133202038413243755860924459349605456604191697093404114601207097406463359641466337234743595358279242401161215260989744461083373846023290677292943983412406336884512982256016014094846758567503650149130719769666834696158911721524852129196020652499404624444028773813353908314761699484244438694812314496263124863749819149728971442185779108074526176921654448251345597872572359547424336891145905807582784904424558482382723772668558144833888974980952399258219850909805502895405037403800675223442411706972684361078238477159328194823130119621010858614300616804093490881071497579743899112880131358149201308163904720086216178687824861760350526126542900876581313350580606395988355677303309906750634296864225861500509847904605352119737801419357214298511110674639972507365229018305353410484102559993660733632489700172497084957234137813131557059431922733733377528274253669682747007508156366530304212199210198537723900805281596092870014856952575343327171574634996365750443888110362491966151237708069743772614890938955553631783587568067953096211474864694142677588814857682107688087029953282913388650119157677455403735701233113280329005409755348957034669870291641350021192104395306768412413127885690106144725180720756476169215337832428155565252657944700240136152901716419391635508145589348427332941335915590659027957318651208511786893018665501810810353586224230167560993845665546840137250628202169141553172656375817988538899778542177925136235518894829923911795870620492705265400947925406775186843909387695374759608566719269735311049123210689752190680896261595673037263094997441194530979489798860706834096726858622215338621385727096435723182599796135889669590736247992707428759070493751678083951305210447568882399543375604717920805294719893050508378807165951995484053959412019473347408292762476004060643385763561879041609652967901265902473751849625418143949899930522193951291220722560398063253770292024421221339704404343571037186529879798618033509126300390236715388821300352810395992277037671156282043608258072113607711519257116702016030835956526691904834723633709919843176604228247242940227130169037220633847654905732091999582561197792619224635665202900936925050562620854468886772748493308590815134651324214439404201266664278275575620709508898574344744418661081418659946634289171598776766001312740873062686072925398160889007613701358086671357073016561539216570321577399457796237831314470107600087597466390254571911087678093846031903245375077232036842594875173322471444611543316479912658748561479018444110230888341831413060961109345990416278506100969444386078523113871586825433782374724069002940808868682623213913256761052520487079015780768537691495973437972217544488205062874226406414635338075327478936842292193480542227606945455137348775706199079460862621676509958219847479559320431694247054605359710614437604845271222160045300132028109888931091493065432139786464049560566369966203473915210302694844067508244282830598576893988550770789271931480807737643813886407541018690510978580504898541000986744094893016577393798417656873817609911505083038795026485650093342561118320579379672450559950243044296990488581769255780207977138422448751266181153671186864563778910068597779384101342461852163858038640084570827824389191798598164360466271224368059082061267732686712555632407886855769224603215321686859739332530094683984665436649727223403837258300363634953740275457124344628621687614646059882481728189982794933522095960590423091086519501794325599636319172092522804995095046108388257751897469191294369078313954563875164308574694890675657579664244881137861192840857419835173698394541194714453527668235422777639461772957357209903021149107785518348137903093608364421727559391422999138214829183983436941015202063759562040392782844383547955702733818707949152284834089733405311072100016932411863422765736925618755324598469755307992358654454036314667907013367731695309771341483335158735267106114922228124205214836660176920155928320366373377825136962402726782669332640541475602091150254384406522569055409371999228687791448920281188082859364742485588333517351029762132507080149460145089782717643643882235583312892648506632500601027126508234257316684995943036658023449916623571870128499348122531409055796883174821571790310089381602006734501617304712205063741163215863552502287127944083186010215527120572910882773189859122251190912544658568131598168276694277510545841480473581360914425169361728947160613383816610043555694070246277399174740294497908198187363561867664546678576345977035142790664386458603572526752883677890511324610596098875649184873077026633900726094466261560949870211417905587290552658944003221152900598043847156903176233682733170855822690071065776725357253794609113231816288203057831182897546559954685205737470953751421616601825669500199434989747521686388303267843812919142341293539617266599837292772629110776117052099099550766738127691504282957755505074816651956177228375781470735767816343365676850957474543911417207065684660076611107565955586677682593973024937432505128136547206872346477952271132464795715744470287886452265660806275789474816136618177405108878934541038020243235808188095945210081860307475665006631213159445434237576867832207168642273607896943685228951969300689665447355284467681195555121977123867872701849813296309879759085469075662264267408571824272243254192189152018720230633264466205908557831662963214367779367784028978376205222675891454077930197081305585348923049812110808758565867892748997313891453354939035389802988456739533410205959070522626159925972868887174039006361642351088545811891916254110864529723917908188887592867853423528289732939013228965390101241846767311369362004843779497514349704658880972272234733746493105828335029933115566967218259131564354519552316307701631020387476444980044405931354171098768883368927388842162863826401415892981253298170539780000152305599793301942217373445932838563157846007377670158832314162726882931857862199879262590761296974698392813612817213890064019561347081007699768535323050719478445170758333004203568713437022476995379439694052646947343023262726404454401628393375005030372298864785431131602829666207498597624231836638346609208488805282619793932871498900356756673282709182863173851781435353921914886625924087483423917578094044749006318178450065993092420873908457431649015609611802636935918934535074123416837191003260496991903919222600225695202755044457180789540212943760173571442872746210342753244850229353554144074224465319833989424410609740354965440631633046200950899833226781903241925722775547774791978442357992663991754536831495928256797446664055784385636026046842596594057436830924604795816613880792603150795047307573802973985357214744048719423811790247903449884806446144340062181876639114741970073240337406890319025439276388288208543036834728578498355040106716202698501859772018251838539612101667111773588056190491018457345546601254694886956962629793380199305122998579411755979112768580476919534108560732252869783097168238536807042650050068216860042180381839112731528857990062291884544257079825635036301937906745202846472016529081231930627996059071640159291144712235531501990945170232598123440852746654421291965431421536855761164418508624971721990671088582427047260821410999228259554222885291849420050839571363579228991465295894823004885444670100624259869462713820456745380504952854641146944748986545305208909903731697711387443749467609296759505935313998559468146174367275811982262673917503809420721347527221766339532105354009865998105979400188075642668851380466960234659472551183038607593518711117531403844562686415430852838419488683888086419783089479766864164039556982946617966605975231411398016785354601379289690820253848298619699638279364133809100658564712913748706575051458635725195760294996920575276144802914595571363841795051203735330812012071443554898549330046313973989192772697623464785717442605637729108206440386456133875971438955170043190524316335020866067762250012770577903751373032912838087495206860440020604571117109371466017833809143064573056958613474390617608737248172107174123250808632216355975135289840477025830937354374439572229537983285154840057430935260287810938230384266516958719958173824600080858961452570082674200009119633384456752954518735264718803470383935436872404645301020804492555634860709206412557987877034214974375942042130430399795484308198361449245412116251512546286454329260781832711092003826059902617564138858056614425438322823410301318853518768414886874247621166216042042421384193004581152946872219052146465829603447082311718079802340769355526018028108800628577599384340074901402521152801730678498952225849224153262395709859955051927810848327744983575111473943758755933462610791696096572789502684619991747594539174855352732263529025541567913853147747663635381273578266945137177120173878343788106454443552593793612339451987997806521072115124075237560553866892425022023734279482345459368123514894371181188839649847603968574604518236374229377498342513725101503381045460050796977662217499888964029878041336007133118099936382262899122441189175910097058696824684548840659402311156681624977087554366560940143280331595422113212175640758165003620525632171733323391548021433231857428372465986524082118272303892788501200832360394353038860174095808917280963184395727160498911767188697192322013912101032535347632852549027977297562799907580551538606338858223876355290102544253032101280040199965764129025844856135368184244482665674377555659325734079749261781908242497970992848572123527395881509866028593097001416735131700071419372944224506220482944964466738531055966318108444046329918351950741127285204582509364457114766650494613628073774839885843760788974420376700675814229146644274019897921168811954088648729626438034552060032124628862584526362605666668757476455361160653866935158442281397153373494710354071633677826961288417755664167072036077578640295424366630960645897195387802985405052907641040000764911607972720369866344195462382442843911765534270298601721821885106313743056200607000885391967052874931377676376006922992966450433369607467074874362278252524331347694803728883299004014216221966483064116358555118641465438827350794596868265517524486044116495837723488480288961707122006766486284069219407265904905349372639204279142420731784603284002111779181752282236008343158403025131740331380707111729699451704034890656889265881609783872361446504483837309232409288889649022194445320279039097341935997320084102241810467375602492808905770871062246877357458032133689114647027976364606411612166431866107692797447478555751522930468165110121060429886415352952282672932112307029082291146989214143115759987243992601397577023567600203865007986670525654549300893251219837443575555836657646238754190748082905720967190494073669343518509805516750862254781934559745298794472143111995250984751030091854577749057262676106754185173462812620492308318406283433037578273236163333554403879987312615837642306500676593452048579081862709958653051332721907817319979761687967974880158530745314966756316038085041590046434175512163652081801251072917488401308992990238692253106118895977378044489491775958356218816853740968755406802536151584875961176425903624723380645404528817456567058340880418105367391065683240288227853043309014565140672183545805074116920410860305277182730141494130175502789759537297305104469918193673127552988715892490691161905912286582274442377865530150326018060988334912768687253753202031452035790921077473312480472556814067690964255501469921332099509654926126533865567398451802830806886167809996901699769586467379757953923955145603493312697948951235021378460882682198061913127753828569725629991976885066503052389538348613645421967929877229448613358231885547155829777051405384631503833682272022239427305025013528859175264947991664222158268761483764292704854183645349254896017973138484132604952343347198292500284777863311221571188012137868105074639607163849535044168448021499768483774682107114279027671867672501554139964154003863591458858901293711114207125269801664593841348436879197670378246242159743060593798357152399641928265592983119931769441669942111618185521028569140658182068528835611571347540822092570745284487919439749596782079036045679810119394231989825556338754751453672307925691049814932991588512487899447709043999866660041283959794555760377641780275211406551826422988592529860384148866393022503725467310091893521072377620815264840802484440025050343823385618626819112150427727513292425425555060584870807420556588753147695645718637006189232700472783163204353933539866563090255881370152854081210774839760191647019493704656165465938177429187184301520743673883815469292405419774508895324747250057579818844178436164218464773569812849412481230779834505416701461326550716890903960098884889878313225853184906607024165699826781145736835978944697728307362881223743702874903012903884819610523130095783860732335850425903000134025904832528839810061706419972848314154257051698312883946497834766111513479841957152612149761823614971842919339211399088594673089191606073051581573332052505932138852297980281438482945431696563874134624643924236818598262084950486145438099717401181188394164656607064269085885519471970952791390599076122912066311419729370443649796366183163218842355207201358873546662204766000966365339000978132910871852494545206606440336075717331303872306900944235194571824186091847612293488379575765942028124493409902961184839479815178723395821132402647072598587544494269269764269536645920912655678790181688825619747008157112714014692244986252110839734546005846208717462087288769063362844110786372932596037822175661259182433807402754536102931836360617757365801302060783814072968491717011259701606739257280223517879851399119970952023358040608897864919663782122906657273416595365495736841396807206520421881470684408744281989559090249069278940539910418831153268630406212402410404729453322130748516247696612513477592271832004665376745128644847726885953920521941392083509057393147577005343781352025275274883719465336495127264587856684112478537797301223670824282911997188778203823872585523937056645646218033195630376658042386422981469325414944888307912315671033419520989044469648792188140386616890698019494014107447827383995051354417017008261509466384718554427670989920021170166669906139594285594793931217052453630801481249313175171495834110353934556516942407113275210578353563183767207288539169408439226948330216117720685647834311616829409022883987290627877738484508712306710333921841142602299696530608080974507315345915319594189097117379585783188881072324786861394241174780642237329458116574743937285251106783262491983552617567896622403748211229188154906642519653613052242848194201161409906740966823888699754812808774411942076007905959629300063095837445945336858668720782560649648884784050311706387357546292691768343811639642960264183398749134993354081242144454121534859895276414572420700851965953730455681856579668467168213274664745095857230438883382912569670545915169351467294838263976733098239832769962271991943791088080515636334940279056099420328031694270578070098009246515159396625410738954934900686806240975982937075255427076802564049654937508758139617739138202305667641077482955785575536948845439342286358944266671142898525997669391519552899923091044785966053819628234088283899732390876124812716525285271060341264222201228110381445656955527433679839262122540657728664167446779330375394076599059277872571392861240902934828257049141256716330515584881641100419507874154631405570652851947014125923877127046940397808415611590408697056186063795511067149404297105232863882208504622024986843275293793258884150139649396213081163214310680895677926336651927031162464648615224508710953026836342238987156682192404784663781597261681737048581362295336394026271726528989997412595195907939258748185624384132922875187473189069383642937805613818102844517590271829336773732063914350144754301068584544791185680202596542047391874179087561284897445938752610988739176343862510855239281989989343296366986439054834441546996357752780059247993848173287546150288135552774160976766312491336592140457283190686357644117025021496376329263341018453051727960887128996770428093009451226998003309441138904466556860824509635000472183263338025720681871107495877257253245736065300338708177307249319348279399181446159650726947331881104170039582458966540191432751140769572588004606323245324622019520961136063173726860539815177358718859784358301870645031799245969550472628557904955403904116784293526772780045838933256791592560387133398203671889570491986313675794814505782531066756436853293207539470599026305806328585212386479189650718469857752565482934562403990806434721791923023054557005569397785764735699959288542764664530719946315290335539985350523866473936780054992545074046051774974661181164721158292813228682527415756386252155250756431890992106538037829091123855789407803124148305769804687398535896174389317034518176002788193796153201552194646521766613694668679057561317619485872088255540035762713636567776450515416370697733603853695346200388152503866567827871869847382985429392275523597385975321125177099641926746186807651822024560979198654856232460099720454306260012517014001555626537644938669893863941076776644809766767155615320463084887919489152227577993366802533576653740240592633879665806018898971441660370133223718706919307275402173196022248343854994949977109562839444610052623590985160604748812784727034516915460738699714583312502996215771753367481089123791391514438541310314813983529734631412140917426807782456783302893583356376189673622818186687248325836259592420684081566079569064651679299348503669434545490715777569956191082433383694370411223067751685012850618627889499364156517621922866825196565007728981381372402906706753903092797410627369360745321216741257996374384838389789173594239577776784559781738574413322411989227394049312646031331805694235968391772037266474963091978999398784272317350185687922456882483124740179853922090064857107126621572742046774750337755351782934692237091719976453527307919179781908967900600314525389539988854616232704644831166919686109705654573785964053208874212885093167691456241300744337254457716594196245959523686337951107117081049011396892210759816042567428983056565072004228625234178627987406332400608659091339051008669315214966792249994807946987930646896691206413494695816153462473379646195621379214575146827256297803989622941656981294374968175417772953387034944109991921899472798377556907194436626994396471374221727186336427756572980433933966697178152366811446861391242933893542316911015662609150065803826596476010549782194644606460380154996233564990847280024863154587018033515775444820534068949167257612027302342219656280723467417988131727540779246533253885322469485646742727059324697376021486736144282387494078074847592685423092348241732462632597415288229962919068877654466696746137016629641759710303938151105158429686287127578784231271275453661584250562014041569115393544673029055538000286883462003261230422866040395107908550464391457178039420833312378613415732085218161171704732011139679189190688228796944410676018918494432583334893789925225159725742132932181575559640424886362804343460484643662000555844707429306733652479458847618432226582612693847988336815355435412486652352868853827919973837637524371314762769698649750136217017400692295169233402678346400872238747313343411686958994094355091755877351138150029705058599993548738803381297226297268193722945061800422238844419090886028839840094631463510761715968155527100704624439628965490203050867429552193629304682654901765589335527303877744606478720181752061490076597486710146240090688271992952915756789973053214978362827491904123492256996130871725252134762820636045374724156911279320907915031785918015649975866459767796199969375696621747796005415764344618795944354573886193856318379101109464430444699957518355050819769520939726716651623646350277583704194274541291672701587420330699883589400611212861794304934587850335680375851100901227998513964915422862832573943173512762712850069212929710461744581797685447034937114007070193368666584889763537622825820219501596650482910590515895565383998503215767092065323070714708343854549727367964112250731618910101833078869200214515193865036041774954862489428736461212789591442089654473033252997309321829886738644825815206343627441826265724793366186393621054868733582034624264503857902011233605256047353980194750184338700992046321133003881896190756026836963805627565202407843754419802808619812059411187461074997631172617664071879225435038974512585927454339636465841117396696378992944433131872233033356312637927736350702463901961916316720244083546406188085479482363450225437584064154943339813711005404440007942251159884212830949674342199439639959308192788133831606096581607534067928059884700571958276820843187240797701536892934534431828833353592190786122752446206030330079114920435615245585854804517606444708195767167992241545994563012119539262520305049867352343034460371636694693103251318677522996140801224962781973940227691884793717611569271950136778528872476948155677642959885042898208047717422539345669010172935600611008572763934491074651998167465256234325247207418571148822049923828131568463933365447989438142190539647492504564266673693796833839942190329870063274564343539793853944069185440004072968734526287905240930408596338202858832923421602920171518339409988712283747786972494463796696891559991436820821094949587840456613277989345315714705604512860414080285619137235842155806803750283721074837914124157442216064030445192862785247724425450038183567954949047386669565980508185832461424390558970524607146295263515461619839351285610983933695741447888815838998921638347944837418141222147983495776538862007579856473320284463261849349194768865853265748749216273989259283126149929388205076667252760427957485621119915508697947110986139113340344603769519489496322354184639254637323252692864008558661043163376888750853355767899289392201883210278754456313774892565618336708048226000550118517166358864107886545320318604627446267366450428227667489702784305544053317629464643392451095815254316184285209788442407085182035492636112142736038410515431719145876538120665077550863330783755778697445738472295014240633275119711404471195577894491046848722257880068366771036554180932924274894267071290962517416574811122586151875922558757334586386622419085978108863354506341532270818132600522930977200715694990251818171947154841640109212380942731944913821294219840607140587763038638257650452224012483527096647583718845478035476533718750435213886924167047560860122500541667921160528633916278960687774498733123897303864199803760339069054793643734440184052027052161969919624722875107010437511116883218281608977597931432156744829279008926786085368651307000373664053023864291451603590933377985489740115986616492505772729108278558031856720573781395287296162206358619523590658106857460881430576484508956193288077107539041766039788638001192886837931586163547811853535050121625366140428483800113700573041096715820775098992885663133573460389930922799053467574036663941480279231163186159080400739508749780746948821590559015556990468624546399442790314804134008371766429505227266176358019752483061274075793954247018757733754531546487336217218612493958525894514792391877428284605744362540768859753142288205980013185061820373762395090839468605234455447180423315442647361123546646569061026104551384059538423245274273464956828837668141536890452108209173297365608795140969818767892478709290682466845808642876190572727952525552404416348374954735583316753455634264343147826661168113254254247809765501045910886056459283173129375420103637361516899652227473301829160002907894867814261243941169044686086441556611720148445649028323679873771371084085630713258827261728359305803770967794409338769064427077053338321351184096263466447854549149737595320995737455134323626894812359602879464963750546893770321832796155188426193033750258590484085729489467469452001326640916632107668293163213467415761729552121953785144896216762310133412951621382708293845448347430212520108203087823246416068760527349220616892795322315998254416586578478267084972847459493720771185593653127142571796990017247234141008830875336818333879772017712647512416395557653924424753044852842007349961806053845063839294504552670664113818627179165645865094475224229414967169924368506931481850675911349058055002360527133946539462419464683798670026047938150020235383153035043858192864115996937049258533368223630805030222912043265696750117289784616664542117055895928979724416172040638011969168108237681451499273104153303219578538696437081891295577637362957115755108032556507893279954830008886776484242902813689517369005715979727479817682848653290558610611554720121631864461329915041971996352078185528859089821173422208273790771067748576454115268008277267537246987130178211208172157191762795565786632218367086144938907428266521728734945849234032403151591988092702970519495196321393119858459500437065859194678174036406992204566075481195970339387666412223503284073960558758410314008602480174170831275705895942737822825465294202392880456393126185615701189119169680090956795800051266786249918165875298289773113747278366266732006142759243287100960919797493995748439464201235689647485169859937069463456905553386300042942999544698011199734284634422631848633380914748575323905711799349724255612833037754327979843370392351001398313699757310079511672420051809155839263772049665789382423890683780422530094164685350764780040186806861487001415462938933373068925369673865647074727647532166975123773708731046554025325453979904991439855298415451612327428416012670928915300347529659171765934446911846908793116627071281414667204148978320282273861236450459411436303127798171536902006808416454721061126377461452406632982883594344935766952850258463499461871634362633296628229214439617263002472916101304077761319267419252446631623531480298286024858278372989313080011321575622409436010120071202554492172242674582199341512004647094806420020284605369492738937184521966664029680807016958987287537810449511180910897717783047673421569109971132882550727039876288246581777692128696573165951102851197772277057627556709136017455000040569898457586341343045720103168014859761359300906235289746320000166006346586867513297396978963172202343840195272216202265529018434892686268125018941483775610917914203374313776888591357193635308126680917739510240233092659121438878881316231325040633610356173667653704610756039860651627781102665669132980426976316929902567293850458546205420272097579980551765721995039019593185542958072681740276263475268165508016290001125202893816935276756819608731488775458296051576876143980602560821766362174377261333441602148781862558213410496388436801944384378320750304031385135042947200334324288083070491682495091400610925789310329790226004804282118511803607663444915056191789109096625815696290895210969511832533550888964772904002992875773533675978861340681448353247760300411548728573935028725271018141477835135081329831768235373477605202149188951192125222065069997366558686767351532485502340230218541183052652106546130841009017628409204111360289544193367787784459133190721766589215945543015586110534636267026779081518561002819521447171745407974610127727020372482732054720255369595195778716886378088415228135628978725516475294375835463610553454560824314016751956490372839103613401767912834113092568279989081127220246521845734074448077907960604260688127571953547883616222860214102499573051970297457310180395090675476995373204672454140562538235731259821766935867534536766999514257376026715022433613806750036189910108189788730942960622765231757063285429704132681883431991693780966567664725790694233118870058479042101504812235675853713006782270085994501433076545455810393519861180659471805117200104269665369073653827408628047531316405938884633631547189213252145758869199934032824009540308802641261593150327603248262916950599800867963731246059054842383276764063071940974845965691493528257130022492832487499594476239143530069457587946636622368402877245542852596336473417738530294239621051786894807460767912943422626129745340381091063682021991541353309907614433471257855951357857036613706556295507870616006757271723044024431463259613648871758403039517283255815295932603818245735856235491022069456127558559159184656461828562917678070614019228169614073180079377913501966285407110705267458647100699560689665255773714893774185739815553365622790140377205104546045821615024893663232379477957438702897285910443779391091367006070490808828099112792534022228946586448900406628119460910503598825976498786624289460888273333751230518570795368908879494052678595037753852342106227992499130816145550664352705016830647862609768862901940850163206556897293073158168176211144278648522424809081332005821631824999056845115257725837012602958448050780268023021364013161678044132294889491277598822446413045356142857356566201172681457494329210230684407341403102982606333716768771998219920490725538755382877902783599970877793418035346108529005665115823737451064357881165559251617534819620601137106086525532578582013776571339111536478982625512428338624218076354183054546237389573906151893067856603759850304834033173354820732901424100682155870577082966364179961668676655492570005765290219417616544704835141432504502591669083644358063500596061034341714917927515147459847425111133696242329705642145940930315058842541806523569854185273666116563346138123769724648432289745967902351511793281096621079691592877599974644559112920099956629717937652005730894255617417955691947911001920852245906568023006386260409373935261244174124675020825403246850991930167787129568864031921384974813540934777667309358695314695737609378052160419711121536111666642374080848189818522568391500728695813429243589004299948829841963845382590961023402704560581774451881935491760404083151379835269637416180443707049456791931941435291409481205508322669137308692514105734875741280764187751022151293332717393724260286707123639065960745633464468162854276498822223282809909084698900047245938263002449776692625849829525219974542090997516497658331437342212853934829626784254803872319529426601135989172362855641913993559658631927895428421992446067266334388245450698677787011132988887565735740503120657424524541457399187573566184613152744841548178368062691471935620576057867960981689982641278796782724149430935683484720982802465712752582749426114607348775782172659583187756132480856909260595478648790732609105624401731451631309184244625625933985734385422455391396388283711034864298761015342830490880788776151697119637330363789776477428903688447683042939213892395354634132389206264448730162074265534916118440275186689494343335667823363706558833165306713616330303216524080874722606208011846315785406837120367539103377699041434550967382804948036050246219516395878133913768972710705875483106662615875840575819205855703717263561714076179046859799190532402976826344151420146947851128573961623754744746858872340314991265735986442483665143367642295346369624091353396782508953618110295830895807620799243590084482537897383708667011846800011702256000617969588683096705364473870010379459221233202016287715659608739888999359126053186061644484162880595644408728200499703834457191226430183127608317494548839450351195776614602239657440753564300428101185905278795825583738869610742129467997782123498747015698766497521967523250167638206933493587250796307082044030019137111231984815719361200862331285709878534715327887648383161360450024315633562468758782340299084204773095324778639155123398591192814398304656735155001873994183596439692288702628629125376950805998201645552859131721115860576293433667248323928883942822381472659343071231423048722991529155504199139850232562185804471955593986486684603188938864772087379923327360198875438088178750858196347518752617426208418991442130550887613013548708335468630551042763084911867994069585581760065769202180380573049164638885126361500295090300819049386287244043938030941529058018314837179854771219179342469602437429964327626705022192801611429670027198865681658944049240538236738827086055659411548748658094268339750570748214159107178805684610918642017707688926404460060044851713973436611070868178936915935751793640498329723929208283008722425697484334580584293608079447478369939315345908281611340991970676893142814095487759995671514640149631237723461956334370700284337355836333596960037073520086227778547295264226575461667959301841192275141057349282838128628153611198338612733687988821036208689277729502126185658771695070494242197585500079472437566509613116312889506400468646418787887920568224849104842580072242954624531625265237342498814270226350756994524750746554473461300701219188404066554010782469813531091255102586501582613036805778131368478850105219943041701190004003858733343307058620288895993361977954587527964977634782237203062857137949447190190229102390182759606102546258972365319562712701731136223794343987947227426727231468895270584821952812177354768863633522337434958137912789136475768513032980818995195941992885826105746776429439193416275377399195774526249052934839190356717697070647498304694823649279432257248347181181150913927303278946846513591753825724880792705806829776136120258713646712990469496209196084990045007083595615194361587042681675868762647996268056665718539103216209723024365376164699853377238794912675900507399098597958631723683477931797358017829217558464752208223420110946007796754700051603742506471654567455711089216203098531059839822297340167705196576258240503247255460093955276198950397890368256832020594871513831273714185128749377962334461058043197682350738024074442026413398699270206674574407181301358258404691093541272229724134136868485786353690009055859505358429369312946685965755286335125222341840799684513178941917569366388448108168728624518611331089068302166427531750369334493213349571401086263047428234568632927223023734891599211334469075780608433238277105347482094048653438075212819887277325864572712596960678235486748077130723983991132363761497730274411877261534420361301019226752124773472984483245293786527812858291611772950496489135062192666704274846572420989974602125024942153477589491942280942651267838132763927719758084569088279948570948660673372209159248727751125602761563555191767272405950217277914275039082288551947903351753690654324496751678735143053329774934918545890111148273063102378115275541052078133839450442078371957851689497073237699881989758428497387134958783260807182281119153445815097930438797176843370778450625457853410025889185082947813166971346354126287540864403650443516970009598817319804388187019139218219485143369718102336314623907942452775595395354330647484703159248706900045483295161067489467974047296834715740610775603608343761797114778429973917649838812094109963520040115643536747624314912888494189192391732574802009499299914402478238621085638093353480451380205983241271358020406396028646448846899976494726068636126405710844022639099027542203781154090833541402913432221132696576607542693123357955710033107019667909352100626428684253495180149791538963736502482460101839962073761245771735578776644843087245794511639978214103214836706349215247711804356377060564005411779777796925961705587369074030339112849360703945696087492355883926521148197038967628277598269725743418640376508455520979869341971501653097682835503160487443611872331074010367426138370842472404337903835597256708510423988529856223692351308853362073258181740771916433735081771767518365905380330656421835372642125999365680124900889090131881833876012819162469062540439772014231297900198222866141360605798738990790700211272371333116646970257280650091522353191121923679458937278109454926583478642681948819661560042902822001425258497457133990629282677143324360230283484556757158628862271143742195028745671198875834952356482549362096438490736228417451045060757829227289129088742117472563432482863578338456532339543367270669434818205389942388152669031210986655236547498019126008769426871328744658367080210795537036397838038113098939441600810563467336266087757144412636581757219823200566916448998939873330032578898097284913212664029349544152421437011526693714815251703603704609582598567954748979151713475117384546801772599462701070965041140254996555620213005778877228649408717410375807420373803297085327937564474259486868264922265984844202164739677226946611348729130177756644290627456407560741845423418094484223556528837040313417820020967698360368782583756113745332336730389116468543478272186512639081076953537100657395113022950506979684570179474804731112477568986046141847359093386788541095471970513058601973885734111718093200098392101834147471352932616911123043348448068153704506041818025416620770917252812863537714502549251409352537945280091504089534072368575853070029755956431286750563959848630282195560625291506860687168660434218930725009987325409196564522389984485366098907060889131794680358045714858621641693166152230448072900422122609711726919060250362651760624398433695061205443958667112655983203960455790806015853152558929983761001279029872967770598420756046165361866566931911069011733671779124816647725537077671836935190143700620122223767704399261385747910986910039742569808900444558161948645031479024493881720102273433846686547693467832312784623851704494442360474177740483910611634730840789119637428030734722945998234295322759220393446848665831621151790519697319818884960696239041218628720526519854224394359730304184356387029308799624798964441663636308067331574916975451993396852526464494221351588040586289700812427368415082410796515941361563031472285751567263702893963624001672781396572013578328804141790068535513370344735755321676790362004635980712829348350003889265223000582953036258267356212432998547820597717176244535009941636354794055384895045476415036580280889743080502729412378382845376889324570159213883384146832570964151948896375001308841034066768156582791653377987253945264217134227631105101358313208617969249290155029902748505241877667369314632610750098668014297547434730990343536262228999351041345143652630180193484015815938156759389408661889976604531148227335419377012522344250430319907866216965577610743211122532800784664809227010680976066788339191413854371817059062480214179727055818108636110476976544863053821667063597643189804594435413825693925502519650946718817950008464686123976724001331836487817701288209334572186486534747070242537830077064809602276910060429937609319888075857116492812781542618064663676234582601004480676985712142684927439093704103704775751935427900353234535135105205828530210065490520625946642456320020898349965705486122696763543868160115554827359314799539367105621828391096112162568016902243570860662366863622878083525417161421450288035159985649710605426684704709115752478722517869122648722252071856765896158475203843027717675971145557010865863533299741772473699589508721410202789926954379774732810614448676384760689446242707142586334742434768732886790483921633632929173384654243399534331513066109988040409205302039514086730545317128842045268769050227767571753798256073319021799945358369973567824940124793283665547956371270685019669451688185269212652001499162641787880205080941383427726831665041554865874711305673126998873131054292654245149525337756033563081681784783993061032515329116562239820389665346588088101927793384856254833395360900243848527181899042575207894239202861613871553037697672047247424175465137993980214131532760148211251845708467893730567086572120362214977651932243010578381576925572279570118376091267322084724118137678243207403176121827812728807704608254437205302021586192840266339427438664424364471627503367624046685785846777314650072494417831400959194362791420780298794214033600943134136833911721193989720350406725431865280349450883879502271537977528449555724014957529312899287897689130348579565774496116990099480725248417104128644516479020069823090114440374618537674010070433186587996283797264356142040288584530900166482140449062855130387875703033740191077602851440054077634355357358148340574471585823820940953940858545676579418080710094151104275981774184831633695718461987171981013232264430099744054592274709756592735137726078042831921847273832007299923121630899236682982222440051097014341664408668156614178516310779456850216694748163493887177177973357877102098380825383904320407330488272910300668284873787307216178057308591338308033848712345867139529742420583891387705068401004654858146748133511072848561135101291219008545070266446604302854884637701497793700070784235511053034132580205951875624210444787265947153983025921038892715877140207299251242846033323035717813721431446193780088496281893614190602378443647781257141294250968983406028215555491861935278688831500897658855344273981954714883441857254311650667268248294103498249752476167891908670230670667472153552137388328072395219533096067601043820257778459957185546694632374120016381334221510467072280153811365667238661655771129734252633148561560021314724174002493070280507809524179861556918971542251438226283183226442452755934320735182994492734986387533970889201467123590997918189633030474800235020180608605803136772072987648888619569382093504221111592341546171729306172799879292692323829506080547177137559411903835304203682157125607599562248152799698899685803888078245768194961296631719739289378403804705822945147158929181724148822706497171516426636150841852024936217282233745361524016855598806496455386038992070653774199963622884487472992490334522684515647703456685778016898211686426388763751083958366830578665828157048922132970920806507681042264002281458626258635446791575990491148911356548227677701416619540761467882907539676813593225287612969834546014897790270790474056948775902268495741409301415402633983653625583505686370425319494640749826358835331468066010509247490186383249404552973379739548449258248304547871353262432828505814046440299790645204208062175315486103133878746663794084797982534067891059049926282962313891191801291467302612037137483032594097116847829632606644789809533126722767995073266483205813059634714536490928803786638445782492325857405513785503395225580083712414568700945058174257338569633176337259283894803707970247727779822817520713140927009786114416796960766129651796945163175384758966901558179089189658396316426293365185402335299278481112306996352301607196288722041011001063873756207769785746467269820579974323061697727353662154703889810503100639528355581948920568063074708181266029284114432083713856188405334858129953294767647378851700562565227278996975605999225243375250947470976456527419865940343010573189126264221178434645393507465377049215068016263646242581646749293655929242180425426653722119902710031446611691400805516698491496165520423980010787746894783541980326225572111286406269959415392538681923417333974096929187278437314754075387088732549806865609281291063002762773982805101516290571648674013780447848241366780352238158742115990162522596092655123220824382102272222081566676775279352889355294117564779047630586741901062564626449378812994523402448727132548392835812310781719212029690749213368180819719208224137020067338555347089023163032778456684935455861046740004792144331246128560441860302664852186164455546997487667210828158326460709203894437038330206308779516849151873662824360770409696099672268258501806509992951857846933415512659417990119600759048866187959686916969855766181096312965641347830367837452415562899434208663026272364447782453760960217762864621029235545535124427153319407145216525908134821746174151429196942170233708139877474724614404152162768385661967288645072423489094594215387533897935747740659693068465879537013219800692983026237697405248108479805538378315415680388597754543862016063714911895298965729000926576534536419104754246217314727441659713110434741871638771887828028751422166911245793817660987319439806427484863306732149374552031717037865365131587625162316522470846031530238686010133996027633961018464686750748598668473977103139572444212901301008474009423779895994371675816920873932627456090603171222124828711432092232026417303681528408586920038335814087888000791712282537016887355672112828950375980061993279701547270782891844746956548957269054433295334568611500301224865572414581317280961258667201742841373996758585232930009919281508575180326429494578834591387750066143084395824405932378375896313364816051568616721802601551869039712585395111507189505410430368175567978104238905758819081743062628068274534930914195380051960736961751336308303524949842094909931474832427240677042358179044644740601358533533220774720406034655788289177514677852155518569021918429947469456229674835803404954977633433999560363184488336789020180432544517773336389529152880915670655160073489015283509287532615613389026109370544800555875955503508421611522876420837494016321027134570812136193731983269567922633480948586227732642902396676931013676925314395512037731495989981588221178469268586248394341334294773205476251534817137187231961378197036955443548528818886322014966184134533813898041501176194706292549103033399337371151630605887625966730012964526702042993033159656379921899632269727563926586282655296616582709429903277700028392524780280004626567245234734996221558700920688629686827358375878458811871971214934863821396971447461294267072216229219849628166310742767613838882893247044332204930626508004971786058166529414622483472227398156437810303292675953932912383378315227639841725837637945557784455405703818833252009596425100846837050398101042146580564356069749299005066965194121966525693239825132398944044983535419994251913193952151501359152279477925131547455466041467068522561841544542046348432502387508728921521882363048563581861297412293594698893445070327666611209070523016324310869747553672350308254402811311587285717946414080641675263973582011433360171016529433169101335128199571380284877380472491589365306175064528237596541304657635740386277810398871709062370711904684412208474008987472116535997232707728781589138335461730468591059322074450563674582677072401444696992997329520547441393873114298961061048397900746071120359562571586534910609389560181853234286760199879333107343997181462550710216791430748537901461483905200402529556752170019410771420969765181153640220112073818613442594499989653095164703911656073575742959412099669783771870257355937279998636323523015637286834503105657145922656379518260284111694875790191877204382159186836190278238345983699179804472581943225345894632863795728280436665381095156330250605822811334717594539430307306113582954472658972472956736684828634296670180354651745675261266030817995837547201024265324723219960034890303507130682834057030884458330099909728116368364451685154870927117745524692728466227600489897681975923532861938405729020773002329469687358590080313723181002814729322641575419117235200875386100854747834388440349857070870266122798721516394392085569518431600826826434069089192903506664164834020082353465795556448727022664203660722233341830262142112749790561462326402992182442755185995572979583562703290746374998506632821051097216021497294507891126312875541812054352518470846117141548852649104018223493624967744048935194848897674363109029029058281753501220240209446113070846536423513104536408538142688725826325534683523577180822643818352616752182923308368410348427854845050947655086403869598136942041750519305777055376241368924739419880149456305531238137990346811551460841162884486209083301320893903402380695300619714013557032445912164911048253030178754100547048046441724938977629019264057633753490110560344232276718639347406188793163858950566615472212326195884233149780626868489205506840597349007377076858653351521414086245617468591701398998063295724055751974638259305135031777054403338285096262181997267518171353524298288646959022108100278705092991136118674372806794443232332050749243576789976626788521290659747866420480812140024662992142483854604991772922247896565153794922151056620449300979315461850904152350237621539523579096684967418733067817654606893149594778409918000490138979710926835750792329864209892425717820460969759566255100294696863566395044746309063269164969412435730619564238352992078772591420705747545618509989806758125935287698079981382592331122587580435156933816647561004905584546735088502606842001204911290181146559564999346264764581739866664069204466731122500397851408169897234891454442946888283510162336566127799339042070197533702085769123058323667074165203443481507087826586688850060900596543234163275919555472499602324150786325931563011867824802648398893493646936890474016574461009433440179140546148457956503031631101445054273518554057684454224389320825647945685685877783267718307413651831631951038234234089936754203662368571840681826281459875122136772463842439596262940052435637923632893513156390383325222988422366643530863309131140786700946690439874111763017750004954832615633530795124744015565658009680419147712856841306134457708319844017488166441765343498214416403998139718163342748836718873331406918952988792005533660630989685295490493626550282727014977842017026175413607913459869333925029683099248994400740191438812651196591117907039133622268603065105307993067872080313518704184593629696764975763226605010297786334207037706736709950593763311166106546535500664019501702604798648356741016987340963380530126702290042921586820218747437293880964111561700320828140423329390154498770415851621110730456365800822125398705002672709251732665311422210230052091581023337467040187595106010899748498191674207682114958425324252370621793216812237778888621727809364044684303794324680973852814381142191022080038020427011825168326264476772836810355690100616673404007958605543898995092438944117504117945847744626242166757906048544718172506214471775995309644428420878672928300240921104791450248352080319544307379628646248912950584772877572583629609934902249064834673793195091487937899943625374384769374363484218620085623408401704223897104649464441004305444648172959181471154392948173738634662361109672631485978227281123221962526029545220861093954925841971331825253617813334933314025400762458375205448905250192148136677634473637404057179879318583967007144908639063274000918491739376340261285299174258398615571956648406095750983174796888185993841545836900730182849995846785528532742462018785238166479769111541047087933170034050208703761377265053782051604535582948372900523369221272286048771122486154637474600262498882362533783922174939189047684938557045860769935426444864647305438555669898197387169380439589303783139982576002076882843984460251269546635121460738476881862094179689655660469389143902454489546315697069302125440547936077840438476806316879555508974029621489297830827040796466618054203510529644755281742116306297809693281000836574209618358317067250090486062053145558458256239570402514856241271232034724589550569829373448784217517418753360056739185479617262212538973266714087001508644121641888530669183478634762607904401186965640221816266255107896150020896201550655826185866341962618744296783256738803791536097517184103050955453882702312867209005297511799216173387338941200119239200829564100802366672540599771108035411309261926645996965485459962366849161731156686747903446635409354932438177695455594774518844947185031335726457497934447877472043817133573412678058579314670040158284413431471319260200809151140257515345772012197501228623307464842380373799629911721682697869361686024029808758701024818525157245678504827186507843383108316578317253950721362253578185825592626324019952569081930797639106796507363556258009993291077169545149047267295529634818194288811511947910216123646660241747320315634153566798748932513030030042508979990525125321378349804190979598105355531827322699478481077316051752912079971329441828843562666820825787718799347872455101069309515303485423623524669220827741325995267784759960788480662244244079150870677250618340327969108460312001975373317592620750124991266580253311984317815044052688634885906585206966336497292689283185050571684160853928699278442931258810674643377069970264658226462874971069148246281151831225328838565762713621258537282089679694719075795103152051727452414082986598214587285445066884130176506122167131371579929104892555604287475076053481551214078413668372624110878327675761591465993728338393260684986416762972943628678682598707168869461473955938825419622936011216050360083518177102911026719155643558982453467049335916618679216504301989853859809935214633471180698199687237181802708633499141081543919506114213444010003819985010277178227157442970427926348088106411604291801335478426815872245518483352595323753355915065035907978854122099478609457932997205258094904229015063443458350712376329255483489522545842577949138910679041684319087222693146288454352026538331209663443469694434756360253719903244653200917331867236483689805739046786507192599959486487622105505943132570482897221139792643283447526550561353199611502515532926081777432728089158102700768220366170505413491279286203266491761323699796075778001086757382903969493741730082871766839481620307644911315989575841815641434776190973470164025617137250702972525642986021096773671918445898732952267307669211233804995317981294016117533466435542573058567614801927069587594435538795117196192574284170746656782855879892521759022999784156061083517361167033068738823726835564086787834064954238877830755493849560382065908578487335840727692325780401888404339398700891093053406116694671038654833686517602416763948540616913636311366693336321261798360472616577490143900382385580095193140781362308553658964511439393031255531286640568716967450441272982358511928971536754549381563972940460930019537129511117875279776714537140967744069016025483175928085763866612059484150876550419761168876953217788036732530063227544076400067673546914281579355215164037256110591870450388444514276706370042137203069986370840538984673483847539435022990497350155404423722942966835058187194421003292129453643130308709535257425148568942513337895220633044975774849869194861082323877315443935296349984850749412206107939162434708755850245585341331171312485278074705998751531114858054266585143648245791002927499712174136341750529736247733314692878393241426815568785066645020093928231659399443938030365757332711836938086075388707428929905505063835270458646255684247480010134251906021812725028965738827097501071666462375291497116711859337386462866812785278497299663713668199024146491286746795946476257765631639275077292282855117467274490753146753684287688465921588662646662708603662663300048594816310063148870076657558784957715380661475163347414070967975654871784782721809758018841702921927549256605691616384773024651280927156794833835929423818312752742927791790029953398162604196373943968439107917983632367581122923692868781027295314628669898214048289909091314071612987046569532755123675075556912670344567035856354888313503296756995171066460231533105185518771863088435608924817904213946251903559909149983813059246190263707086020191207804763202579000593306484064328926138943965410218254418049461128541329757126210375335658710148318525771105907059774956110499384019043304797099465430847175443351125967990956416255528511091070817967472355544289768645066493330178393420370841582804530884178361599916504131390326807383264296903226825185623567334238372570816937383075278898052226618779463201348586750474400883454468566733001856124760517297222900688434003868307657914277752445938757323937817350622994346755248312252947967220085071036224975689383735731552410532555928312859633953649774419175291196742864069160157619072999210242765387323314650616161983675783214230361389770221243588088984406082386962010661272914076125267343270685789505688841243613546856226859694656542944189718706130731449825481352183824176010691130367723764815546285894354483694988043849448088137667672331315852048641235130368047447433282718842701178055776942205003246084514474440927724007615345699444889026402833866221253966024145221135426873068336641829212859413877615102002150340565123328688520858020467317322724390616424096470853359703218800190309210697848534460826228490737666584526530032277155482261451924637605080789296340797315816210224110172490270572226121928317560782818912307683404242547331997651820902429512743595070178204080428081216782276496357007186066045870650600062048008599178039969886245406613091956418001704753148827221586214010728258626473129271271962154142861002342179317148697356434119514812252862008422269621228993166107537179834647216036168606883325721464489662188423382288545483055839959735158569082003436763747193610954720564469950364748696970992181972539521391006606160148709885743533904634653984001316138821172273304527345175413644528712367859363728491034597768281427266306351684232492532067651821627789319791695562718179345904630854909273627868773863355580714970779911029475937444659182205193416158152102527631508331989936458255137146831137476451586684775884470465582568467941248294656295614281752917815304221271478127417763686122580236878330186161855077378553011920638069526010824965493236021974154962784042941848162779660406712674705853602261127021868222417830825593618219823014871098571479052526616728256895449341079988160014858968379454870259756821426091985709597107962854021236120459734235712431427345702286832299427441160635194421864245444139342685450364915905132002817350969402640443777796197124746017056304940398727162514625806351069986501063331357497272359989489821614594646299502439189154112745238648891312893609941959709197535632585876089118527010552721425941656110445192722537777790524543757752742239853929942988049830753289077752633485088533452203591002132147090749628917793402425399341100589628946512425796284532216320785409327074051386263853671087285961110457333312108017360323728216782894217220592159550155427342966983650044310701800330129628621613134355616881930119439315849435256673272377841556698158564285768502816076260348739867645167325561498877121777446337117115577717588685261065552118395635848212665861249700696409067720982578086441487927627234272745211022492093573595822754377477279284563558142254094199053431431184326752947878557455309129638259418123772046746861804027325128203974654761953548360615153390238412230093213242660092181634917799275970037698036947031407490893676011687394682964336558621659991981865134975177438111631003679696081644040188225045773058776144809015852940441807596972543281164933910293749373367231658282259135746202971079473343054250774173961678017827505711677313743247324375483407066535678156330324622497628973657159056485186004772473442084948576823213021994997560073639149803194196702903451537504885596155131377318810909711193823181108792947481916232983929522440187845626975753647742841734096477375874995575712199141570750030351743054542412074994796241131970779579515564689704299378517329305258266262757440297006364300828603050482197096087197363077027734630084608377105700264013411208085831244860466460397103878532160895238010479264915742338662716619616970818060957412613124859434325548776197038493091822489471372405698661710312903690440559055876662859808597371221771023795781981704016222469623457764435454029657651911506477725859223234005258980916822487536662006330155365220272505769556672915590378364119759825606528799902199298575974224715900729227831825420062039464507364205345584073941040838113585032143211390995280457438733967849191254446511226432934968221510126502082127097496827864811544659888405298913521734610460703043557706836030270777135708719201533732448565020741872977155855970204311408098275750447604931548708682282061559375765277352875206853376816058595317474048842111491806937262500122871049172345608722776547474697468958892040213050557505409835011460839379402627573587970232429302118460294012703558276488984772626940027264270361947578105369634812416338164207096403306940024605502060154978117976146982555502807563679719614920413994885550158503391200709371020945890613427224331947230046440061950473477708820074435115778148565586189157890296145849895199899785460776949571367847717551221655181381531894750359848818209176081743333005465869053107066944488909862550989221777983226550790713900402825976474122723088207140974807484981565951425724239631174636145464379112697010074408168959643162523037480537037834514992914771386873191319027045347168942160196594997892054198505348507546999781013519270050410656770417389315895276733571621591981550378518516776378724466593415152875692317147441285822081870066226837155258659366640724882786453746761342854682735853369517879167419957474284908778408360408124290363441031775700057317230799656109212783752668385405630287752161106982115362154008936919349888453489256289784063592178076369824247967229286976673162659001380545301874766258937560083223353318744813411518783399291043159755476061428046694540929021573793769407307199482557805804349188683664823609039645840974755822120114095378047534401384575726038144091253625779075898646965761843021872114600461437398955130838640078214174218947585454833082875847081831644117785875635106778840647869654805816156513479548928949881412976488273024479566589536378742719928901871976065264622639223931393227746095398315130489363917131735680018834804649881853218369776555044024085407802387736208021879719259471361822552137751567234671971913050745464826101310839274791087986324945856254315556916637389242699021082664009093413942589692873103188229023856148263037990664776250140282987010499540850090824212955986367538696063596722408458453959542164901675713529399333900968650935768987024480066313748697794423405962457282632465992103739571756355654570686764783278536801501512142179406883389582555529641794159798874083417243942800761887447103878188457211299831622769573833566580378303496699506742402032115649978657820764478045289775630369724144724688349363487575934706691078496636357019377450787503626978300402621224274240993558811589053321234157471748335560459033856670341573961737614905756589837152146337104561159778317412115888733028550885076976285005874986039328352436447960549921992835777010584734526099884204174867168498782159663367628300218787722092876490262128822421738094846739130293171156979339905396983464120775534129937624216184941560293716747544447642763673493115552616420957146158091483539631803153586587880965813733448891725393487194611681874845684129592754645146795134982769739175678889596492279478799151873952581819571208245124154986777513219665001376772824304061898547486348942841835186691358129890712627315768529475332667788557248703470786598051264818555392202237484909049864829850968332262750959546878641062470817209065608464195239454671828103289069559217830427948021744270137556737616058601486907457787832956212359292213998224814218648630559075656859342526831820971976980902843483487156008817786211966522437493412269957096383486697804557783934145358837667178597764010071819685220519932076334103173981111832921541675388302097363645529091846139312891418679098912662672260774901290671721876154431989618572547249971399859482642678900065248149390916743861777168494226406440465972115710982954421051066500349115703017289354639003205464356239625492233743691809718411773075577250117662234208373367603523689412663252522882591152700420168354975226927051612812015387920738346005056785432224829036735702995437321922562071241341114582978666620679954022689353691585351540326687290724067887558711554541373531537015911708693103226248023676225172452652691966177246966206028845240374667954458160408756108593424722020242388293364911404085334355254518035181231642213629061492871117592456706294654110129035594483715920496170127188395921497008045974971258786821226223144195878181345422551236443469302987574061030137340580474060347860439519947941192902072117214986436409942170474926470805157716558608925410496504229992738356096535383845134996481797168335146346984548315115908759686214702442685324852659236399718651434769220952454431731007674983761265501885733925846537725503916710617897977154139966103580245453564863890429629039562770897557654594830856268032582812087779599877627954156407666483388180548592322439900590869861704118996815858407238418808005844083995851625325446583785192503560950830841742089314968778597952304670339238293672840973552000603289856119010025687690461784936210922286501814860736618724458539436531067922714290976475300108911000409400539250651903603047866422868122326905267687456775907748993557722313818767691744008617571277267269840602570441282682148755076494983442799436934218227568943572066630919037369853853502502170319248043476841294058126895266504404223718444497404575855818799196977995563827781755084005128131931083325031320857898284220910200649191265113978768422756168764420921125638825277898688287966401229952807001890674159911833726630987859662830785165276408503192325834911106042739159340644614850887160605833095284774710620651259253591516591993437562753157355971081911386708672913660605730157098056548745850143083898133343971303187019254635555616101137697072092583139986005066219317258894342417710594494573800588299242349217994736673991065233020682234964501822807104559775891329617393810728738495947595075342388043687638194429713098689282968668348454117018605153470360668857367015510286703639540445295551245030493823878622879149527619936716479814701653063163510390313078688541286319344264223776548536168319745953434319905102686623715004374465634982348561876583362322471100147439253805551636872138695411436076546147675216169362247277905103037914246315405160808110752111348153100777491216568577175095863094241089844046238487747631524076921753815488482116549191245280469149532191698810747734248338485153220604933579344671164122767239976359018567385736239084378353542165627492557558684312736662330987710374157611534805463494566011855405041467820834083897775570605090429060247559517442548118868409161877207058714086392106635553687097308946448399475870792127196026070401649686103899903062096820222265741127984212173953707477551366844837853187839872299142103319168901784466006494726649514748633698903529551724379237125792034084697432915959105679436172035931896414923691917285874796481790767987636651860475607508213899222019990206109806591873497973230134809227092134989201944107914009551657598367233199102728206505435339096449796533106637872715023715075264403626892634115535208464652499610345982633144119592329631941727846884043177112525626428447246982166740691665905819212905553192048010577445101515376291424703305992877346231099519334784921666629245268070820101534705546690783907072403097180006009893992633924301295426582842812408645798451703344443657405365913980021881731166727690854309708418749825151955312750400905418560235013872096979599783217159583874113328698422086382123007492985759647660124051921771594563481525585944710511822075500666767968511048134344408986291837874420393019222817136049714033414432168430381634942663061891301633132425411965683364270788094367920083384226656451577330240705717080128927245276027111239903568243612614598360586279642820106602674636867052078383845470668226353913639292870857526444905755544837219466069370875912204256059648169400329508804791635423309608321607821064348713036769935548533140643871733824215033208595778698255413402585811402893571955347899707050410845618061052092037736448050237378721386473342184920920995146014335773421575145938276903046226241044346732767314746964050502077552844346019306009560171758609051703654361972528084978005408497415437399834474570735105622789915952593112758845648899590093218780571690640706499426260925847750422333182799155227849096120121901533818864465443289893377281813304921817963015059114595057315756430790020590803302489701647974257339675461958439782430754794201330016774824031470093426834094386945665017986358037528520567377514951992124783207293708605382395631693310347083322963148971279785212639279332435505172697591452751097245851896324699372373659313772314934698362916517090545236844751095901734084424159804964501668395925931656321370152566161827066265042801077054030436350731095671602706481705653413316762730234001858330510140289056895264872991972562382120299248052743500861294032467056369288073661603757737864129192635416674451213303700599926388455898482381311762485065062188638034141953738102204510062749554072791365391707583285409594127129924458968222426474490865307404909482736612193416745134002671202235479598069951247386021489891853812326866246695154026357170909267161800076425395695129424076487864161044398147272184621968035581912985600785577792127986660343680031162082853167917018674460938923798908278422377242282630319529368422903755997793244346427048745995441266047298532800411839192161543115612682064898966369341432076725430808444119143129278996466998352373044381343848147804656173156525105410660760781036745156124396943358783874678983975486648942667946822239571428209387839340599405137859832007323279881474863985591592718627480137160981203327103742212616808876940686941773239974243170504786375035801552837481032834010590334069553244788067528427007087345273165538492290282635462758218246546507732819556757677390261201698737229397528899313730407785147712204186125668081221998842739949215655854791776145653525035096761054662035444223031310026643141883084901837986645447265438711800170174187972056383996641506690557728192362401652762538539753895681605139975512515445460109944416916505794468938433878208993445768884887691363757318092553161876052679278840617274081238903937111856430913270779679732146308195962397615809053368797122385808502035488441625259352264179986219868512896097560578536032464321239602469312037947111355397912341325634018593665556745416479194529651387031086298750559280327053271484233244463419628950658671880837991777580348067735488301746419846703193891505276127446636475957811925696250780823515788573736795082105661334521287620913487429592907051668078288942336638062963352523180308729015150703841444655109181793882780839766550264218420812331159909937736381708036156033396959438466248693598846806842857435510506669396138831520854841645554704120629726058176663397361618349421021610420414358786956121716500958602097716296288033287334298064243979414689026294866256055290316284865987945998319245846694997245335946375839743565446365725128612603906628097975083787081327334615069159569023029121370921505299188556009590674650030555042559570141664288281704401831537687878653895699072333680793656777072287103258926531995048742849409226670656817087229161696115342563320590666395395532885817863240281713806656018954869230733076638410138271808305277824120392498169383724187605290148301280510572419001143544498703223289227801156537326901061130166389883634512386167543195323188044394418951860126419653987488432856591165592235643976556114546335136936568636550855534630964435090412054659236989037120601610867147325090870334349188414106061286384991928375427447126327734622775731057792454165401001071414518088440616193017491515201661464651907367127617948817441175837518429631737465405438325662740840055420047261186057392921427956469039794338647735761556970422748909674089049606721853109771095592865390457657448953522294264686673682181919365078271763239225124431605024005443674122849435662555963897111131586135780750258762589557796302435686856154532056254505334846375508609412673655430837580787609219345541853859407382027739179547321587731133382656128204949934806663151534618537372675105835241707225302109774867938066269351596317968526879026573905373277682335475912973858551352629576154275106935850531611066867056889202134124778447373996662425080766219930379075846151191661198741509624355086598128421195627885263541081340356843323185886465891374699892269797377943791834336647285935222355833142451743833983792542232224644083182138224660774292246114885865974242227376360303827139448308601820269157684069416026103238338660811194609284441177200275695028006985117222664538360634473618000082390448822276469922620197213925651336136125589192306317342549535938190621218923705698482578386437553986571569992529259871234876503417310414362087458384474377944345645986603238493265536325962565695407063134485523551806532969682724746582201406298843810667914906690100068834709063393280498545519557306160338675884371939153253795112190663332501644779059531903102604307574524203203115278439033484879492085268864041077182907095605092630753489573258981105020800439566253662760025683541974725234803981124327138976324260922819151131940693114252502799793124456624970712214206714162815585318769400474526744808509561531512910031807520731874802240995348358123068731656369836440064021465337484911343478927157120847366871903753006866039554926659458092667448989230489754688585875127123433856123141690562281269262847596869706362571322141250967151759294232789862233528510011428278557522152293454260827989435159921469548171403405972130882000966214489464821636485721197236152146721344534555907157485307095319232589909775889355020218130344699094197799934654200097355481912203228839607714525610220630118906696428594684623209942398837169744000268498425584218518683106754331765184252428517743848642097402085957334585196810537424996804085490324363680160540297470255020232582616636140875932567018334153688616366025349677884051832235648512474895557576003213129208878658715452303850303376751617207779934962713843362896220912056825161919270159921502538522133677888993672125859086871977503911042519131057365306077305498767419214434601029785800333498743374496930364922561376696912672301283684061775524666221815702472761744358327171558755628791925343151370717195215162102248189216815115056813740190614162956386467213123985504844848910603174368924046638473799818046683255684594226463384979222236571483632400561376365085669265508820684485514970993774244303010318767259040456251000787043795685345863513672233269782654262516698175098800045607410843708749251918406230714628057523122822056302838887073427396317225852152455676546436508924466990942941733836698672005254798285286444210414493300502587236320896684701028906961656458211717924907149673497222083442102823884556528751019456461291869177880889632126702461589736893865438044480875150043879426627501494540731414650537144730117704489474703908621054010299344172088877076769556932218128850054744347086263594648599308406327791509872328776617591437979068591889332267456815787330554050811900392830861972565337879395543599544951346139981161694828486392026679096600879036374883674311709446907001141954165824871469929650392444347063865501323229037807681472486758717171574276234614362238646451862233744466962876950544373621891893563349098282514885887134005196757948532194605512133319309665408493585491991351419258087016539442806253750485338229218830852106939844996506708271617784071417364100600934516887716132565603560798909559594664006981747549439624883485556396666406873072063051831908623996624270105864456346438011495811500188433014590515323414618454966692701873500653818884532103365633999758492351800957693316814003096363653304091874760260775119995675334394021372268641809525829550687897035191399895484453101339904182680498561240435434231878153761526095382771707322155311361123307237647456852890930267326563695268684667087807101671975915986508281675629062620131637539749865205648700636047115653870533912612602883238921817315624586409100147934994796197139964581667506581673946886266484028851961543969159787574444304120754538929139818197662847891078567721961514419971764890113250569083558790271795288244879381644036085810677831257814793242347872078333602409652898884448247513200208054537126164141819342798368379770632897209762769908952764144164466785092147574990104231363432160912840536189991197761901172132821690769280860359543310007106059325072048733396971474731266716017179940439633674223345440227719555947585859837750978247925669923904878707700451217439849197367770726323653350757639473371495666423886176505282473781246812022093450551725793746307812541630947456969920069252898523506487853394405359950072111432090277793067328611548192157621197125835222675568928957083313073556436093360178445535702851884499105018005652680625475163952518110067341801074422188603623284645263643064790154928227461548094760644218708928461591250937177522871501420974214779868864878821935066977985255812546785065638060627400630667860707312732144742180980382459663298947168607989878182620343909244903295533454705351811146870714260865450133495886896109790183433267869627244949730791578347323208757868133342797337327774901734443800850809303943036123450638132062188711575965735747444604774641334264119615568756407588570736942913259662827696230981322706839316939351566547019302170964598748183382431781716643962741151402288719337900135287834967118224514092913359393879653343453921234315798717823218098473736059247666677425629617055739482056861737791710211842548074246297269458152789556888274220069770818543283559370153871262526372703360689939198310939540705385498286225983777570630528399909437166045180089563910194810047586357229990090687275016636925188383458694214779300150098901546837326631226804067878743173285750979180006084948294652995160978938411035303200640859608250724513399945192069536782358282566155865291138345288590846706426867832666520782192631707689861461922597474090616677469535301325439410313853140094240171164516885412992100826676326808421922387173323044108677630242361143413087980652845646305166360042737647960178189115868295892958810436490920023679167959479929077809873265796813480357544902900256906709811847894222218104497149818905041663269495434498503660924106957189926866390517364008994464603082935678507754976921826339815662592146650074588308308078262183625158115640794402779336781760379510072833317305263056609688318584242242602440076698853850963674366948447697184768165849427470976837958048947331146366019230656318381383123371812622654479190102387082832702424158833683208078834326589756807591852588986686110159969727484364699982895282887992878887520456823881337025297680608893083649641144419677460719982950155249393830678194810150777846063111958837957531832598948185581890544772457750976527442566304321604404224535427090928796397602606910181801677837658960811799788908459288417286407205730182630786425873604576826022702759926253654095841621745179458533247226515109430912621881177831329739202863534040386916822789576031210525888118908677985432860786434248731408393511266785526296237853149889245430085132706276435618857427700603606958515790365341803825398656867723391313917829639215335504486288412628230295570668251904507597471817200319441226278730323261653493885446944256675177457053105874826594003517180849400874393106804200336865770524142603306768980878775333184139208705980845415734528840397885798256875746220772782360374183643320359341388776208505807787346274616866533683634551931620936664046133299529967159367670970059914675355839032936980473405818088599520571152931084319103716565344036662545576812813536382981131247589359832842854382283807580664472326996433594592860863232561985735643472767492321376637047683170822306039852765218564597145839133414482485170911534295703999593115491844863366451440200712143415810748142227278126781375298117360338322569467303081767052282990734225238319627413118747494441716557735395548832874245603224461567954868172950108014269652444454302239898501842500963032055366162162616608125108557160710769565796468885249721614752232303074591869169469705122361111078353254879012831574738410531235575244018579340443181906809963498534654023108199986590940388616112902284232871255868666133792479007234490221580046156280306306065314860065629315176293226239966104379775930328624374233148581553954908410942338159010510328425610519416052807695644456682367648235303558268927251838691357628175097352553872394323904584537884523187211540812933690328193383071914543291756233534272481672574228984358590202864199306935818737739005628858836753220239558756953892220249441375142012114172095308202619032079685095463890064103927206368653502812523169382044064537962303070718750065004740725957426312971658475106113899098184818338756054010004089377476803507881319334768379308024240323175234094242259232673390695971091308218961549000076321254758566195261359852262201356767769233006546637670591559243508302983623612975888283085298415756460933831281170865856892362882462861359254444142958223659767090623351639118800370389971372028832033197796088045781630211963211979391756806192728298170917763029900405420113554859118983969971208948141820375441721029310174163008961248160386374979994553448536047850801993870567046492627166008737862887042875631586027590436848394022624957905938839551792646878760649120942779408167428360355644251826519035952732334466799871770455142678454016706215617753493166816548291419800095366957507281435646800130569052785815703640249179031993536458617034797893315362515079818428563761942463068352121600691102808899604574696279802263642137492495996348124541073981248683523605287402442707683440266565937606445267171301288247938807094571758431048008538800421417034818787872359624447073194490370895204945864898643768275340560862472668016706122988041713252515532621667946608694931606789575043702996243016638775431030385700782599703655719616999492846078902322173275461513361768292234981774883230718932033240995897802579044107637548903716080377616210792035970972561937331821940932514700851276904775112455453245688553758296064210458698688363311417239857417926262714038015512446030416170561880874256069395379958141806756383620820352029794069468758690096744580964572682647262270749509290722832930216896603606237834469464386088848193628092986498596647297585150903406204053641969837137218001657917308364185780807434058382060613582381065689985647290124492040896877260670443726971224453961471609119660796146529868385101040486276032050697241933611325497314356542934739465092537501856165719135550540719405805847724737342404943995456582480551099992398026404681276039853870914403892259045671037813622478870664829968294083753396425500831822218820570252921104121264866371191121889386184202180149929721146390692673140814674946868056241287405778927001043453044008616370897440500173190386249581897127932769221383299966480106893955072279730014002162261649977522331376505533257071614219282046893783835002172596341004544688608856464531205100954410632463227192333520344617943336093879222969413883709590065171778311287350207989032373778882752455479699860315128030497520036707833001609858645416729658953755566887849080139176158834291051094719730396974663483690238369418841938459212981522529738180548576137704870516258860378821771030766506944979001155455257369254057605339713648741603455002488840806071546416660699897808475460889709874893493940046236423197818648252888371526167336484251090761375449677043771463967360949103153117617130531475200887378361287769608916529719503216107005189723857572596619152811668040972511750756885485978193115989293050325837763049612078916153432089352888727787922166941932242740276974562538289021986023916249607119673538666681723181346646609643793415679515511544729331476016030048722547089829397710899871603715429433304613023591348909162814950530322941288590559728917092067606794988136051686784708627795098715662890060424507719599627924373543280329637171969823119943282921356293136506739732101256359967870614514445107280755737747549002313068163716220660779271873548658240156582324925844572885045209818006897795725304604456569371563089256885836341062162303362197406016131229966892700878132844700344358110039839927698160520695431732216638269078735447359101553574203962781430189662358544111232926809060381115951485664224565305033184977191439997710492778346734805570718440072871951640009257925797952986686554639077374257581996813040617923766366493786513850810153213125340085743665586932535201450318149294034812639919361597968862232828258289641017937628426046318831252685241719354055746543086396518552357099623173364117676585063073056314154507408212602239923750590801507822852990597268213858694247857511737672643218521985036611058216844488786377174524880542176387978939482129721783735512395175009965345514279694285965183734905559134735884060075604610033251255555527018301862601337722802119256162568757611203861542002018065298018217121301447332066377324832915236929255558045243629087748219985004563229665662979836759141304952116214940408916137168743330648617407563485504880689479995234672713518625573184788848127150927055016541427122460107141391066911592002055234194628682383617384238998117452900198697793466987680765220738048526287704850960932801251138377233582132857345787176667091088561499041749089801579866967302971392704869273854122998224621049056421291419040373515291500144102983350248868678143265915644534015224765549661302167221445716442682225710658562382143199998483046645087278158093022139108983517049758607451250124363331047344502183467318930424734408154195367338578618266427232277121775117765280148982783612176956440976893896404339604442750759102462742568941361304018904244648414229642657986954908964156381724512533920759694468965369463184702357303188553290096434011171562135890547579335140484488573239985273296800720716719605337720088356280338584498443700910585098243642031235891614000475183154790563379105923206733018886679159428441318811017522773059574144686847729481035824621411769831187484342971947522189803956803790851290953341451954502080706247158749181244108767033524005773435785318494390198287033450891511765466242447002310186121203146927555328245588337245423125746843328556590410228233933757794623444503483077192892494965769687344602410831978286047158612749594429988429935342503111392612568021228682139650235643241314139422595854080163934602382467527669845834526591551327178403421245761328302349518341283961366902971927954696698680752404791315480981446851002664115855831889170662432031960953301165394630912577680502384577679383144959927496676848369056358484903114327365028822903351475841335362345982240582551574973480939011264334576316969741909116117386462662999632281829915884821526739944890079982325187087726435246919048045692791943936753086544161749762944615457803308048659469282871363111516067352576607080669646242901783892059874889104348252220100424986550025710280182557439236859335790883924356859522175327680442702860582933067494658809206876548739544044759615558651053523221123452823606876527477343376839130288630209665797127318994247464925209979088626061824220360435969790468878186395586220804758404094133747687571014283399220717006364518016984474400732458614368944927773977846776312423753535464961040274678171603365186685564138416004795099879393542102520593606810765653084364641143539618775264214044538967753907942288800484431039000555400203018619864910450216275056802845486086150340129563940628206986631440477771894184028989308191869538618379464486211189668382426616092745255609963687331333625207371325282609231453371011547178151054011507202304047030623772201856729671240007103536554207702565500473246430558252753334855203994697539987785319566761118207008026914354349141707824287101978679080112414332710385870621864413414189637685542119474425042704176061861586149463053068692774774832493258228836935641522860317839919303604066788556705403055945429422463726080367371210288443256310052423800013754752845956437610254310413763042219374726325869210157438419449532233845956121160044925457460515546062328065083838630913566947895252863937267037074720252895694388014268419440319819748096845250520190228196977474819652062209831405633748155220323421748962765040665540405188719544672170902300295176391836740358534698667855401588002067925412082128690863651440314106825820661457702769871446524752189438951921810880089969550832820661962921878011300760515297259799035552651276916610968636795335572495011715002210907281209353672011580705340489453155467259760218622725120001236260842183190299681965458441717710140745423090089291419596148090471092887953039674279428279969596184467854155101158258572800548466603123342726605237217081437757465202078468482130886629403644611911867766584855452032320539761005115739901935456043947960147951127870467638148220201892863331551292023155495946627247099772079360545407060460179407926746740615635267442402944714955714129646363549625915796766552808248598836568831720382841264000637318201300948724057403821750612847448769036936917272632868750867421962001195907241104684888375372513050347200171369847472695646192017514945373588274268971729033561721523943582572685128888153988854548412591140395330785937285734348334553261359600719599045065955254172593066841124243031980450279704304596613203867057239623593941413298379203210611881741108407332586948290601166263466009103113985858767334471276262936172003461627401353410468431400516431654264830472638529627632444046526052071951484320239482877847332744558958597423589578947727285676473561023242514583839738790054092523348910298222304837754499665627833112092580065357321533678421625082241197024824985826933132571026918017731749178587833789910129860724847335427719840363050311698391214452130743402253730294424589260924267495706111250413856444070402582690516088626252295890415747787062955261280831723550470322667489310559390038957262285510743905113775363401154326401518510113694797091123292824622791730069378088731120779998434637065944902577843539883221005307155610856064125030431073674330529043607562436614051468531246616813043303070216443026980732980827379784465155110653218926000966014433200688263627863559458396723293895256908628772483781335962947256432774246179313747313232601804238703736458770928713276681165001046674135618339008363476064973002413135762321243950962271997160023263369910216285388112621272809734186025279126536091918632339413357667110287053882712810726074508733651015532737428949706567193384105181250474165406886370560005153860520475475991982175814111994564058762079460008553063486771330202693096960234607370249057912782251176997688317181943266585377166497092242425556472147303273913383368013789948374101880919813273938805436585389114823799294685242694012921846523988803250804586202914381901607170135938027833403353341282301016008618893117230946934218131901676723182047703929388695448992103082228888405128894542418007921889788530618356861119776368221508653190459944366861097890720708328217085278051274976320661921373424015345584142910790198698280719103642689051649557028282908434622744230219408487625310066986687118173073262414305622731003755682811643941180614675049341286258223213756177156559101236742949937628081874657067909356039885195858680927288404282418480249351897542161810709504572480050794602293842384966441066757511072591438426248322289693447866388267486065042579106390963124912453005900685265794840083945703019927094854263761921619967295296562536528007976206133738904374472869475976086905026944706580694712483962235992352897767814246214174077081577130456372885407001889758662220829373101276213358281400715036216079183931871223449329331714205955822381879854682115423548251655346566120961666494982154374539915786277381604272446755997544146645250311223804814413706284191441308831088048241644061082171486033698609898713351283581442639580807083331593147730795769818890203784847466937575089376258021731294189877142277725918789231245309789395712535231403591423612769540034324252143190406790761728259050760791338325140432708685524077143555875362857275323177410702016854747439257943318442805973865570306340287389121091213809169386145220767267043112845662532262758859363572268087886562832273728926263843582500625316444700438399330301839333676805405200660986769170934065191086268129366175861582313224888786384276622777660181014191302912030609356592642405871437928063209584142605337071512991490411890513165780244650240132759716258043391371527106539462263665747423365932913923881022200309979011492081793126642437820858208953145619375499876484895741140417541508720005230363148743805549648114935594269334392795986007361343254813765263724116090713734322397432356975735517820085747905261545928881129917418634223496774354743679190978311872758384292979536886270650092879546551581900285392400442222143729705243987094040818731698394907305870595733153326665458759459383893666418753897458804688570283641664900028445762216275435475790145373133397954534974639819459514474387803364119480759510930430189931033437884375073333282526716479301142509544876958132405381027942623817693952744520705409922980830048543986319380003678302323576738768705391417150977588944928175836086653011528639158870674515575476339519158124249998863796243367417235253042454034557310753453803563393758369225080437558640297400869765682177982681212430577726635253456258256043143150968849018778319361559594094488301335712774773444423353096862138202717785736495937973168329567983130391439674688218267460552309069187439027659041889351862298417343541862818923043273353829102035045891928753053133811400487992653900943681579902941816646300242064284781333455337941365348042876034442891729781465053430651963254488484477388823442503098632994542707026920858925671823183713479777974313953059133518751930917643592054839494623134889879186680674326288453981968529010602307816832502744726752568188012319038230599353621471580950032650584535570739007630791639166879615834000464591475778738367818052448175508360650341539658899463533943717594731070376595425416394514602696748134025373567179734478223880483142677016910211224679397927420150114175439351193394169084202950158909783809049222960873494259137706431031953526084307527551055751129323490312256590378601002416972136426316554791675090866912113856935327629842692377654051584156171975175556978172733237691317784629622007840416415560503019808719758050358620187699282099194957293565000519210169031841389602350681316994714958890851360680536461153955921694483079221714100138370585812607894138547691065340074424985851752961493753883343815579234438351023048654303443909166493360383985243795521697484447753935946591208691509615498141449728084232304328442389659194136296387502034050320133416146008671425770013690994429654777160342930603168893043203364746308606617285994774709741827413067149043580641268344814249433632430057454964973729270555088604707785018288761457926230069146945510450301161636945853737396820485116815340824741290713426377896236831967917113212174798698083943115966343994020332199364980735241212377283639620778098785379637436765320995334784337590887827141917575011269147659044746393972371992039356445053762120613048155304959219445052049128820029912655462900547447495579832739845785577735305319803590130303680430485166365924431903432465170728186322560799320397875761583123048979816896173076322974745951440625747188030237591349089248216322507035328951003679791387490174282027997341984590680799953448205457351084814299228897032595093268236058096423320683631505709561867921378022987475902724130598723628573205560121093974602467885860144468345923530107639109544347705678133897420629604402754999439732511832267906584427319408175263431422184785452253600858411400783504985455123343964826379700096763224041816916545438704502111113558558213265971720769801602578641410195770664372793661440977990072861891498409235989981941789951859215121200986621822535473160475622442484984436987330554933291952998542922287411181454478178007863581734162933666866523792100547551026267239828840968824524052526229098607720155208787124293707041895651568112411957426216084890371348438336634836580770907922369265855496711383263791159852769618879368369437476258419133251620748127639790299429823394516647939515043998061572250390943598475995872581497335333730887422900587034017548097541372775797755448477212206470729637480837242066595486365960013326149463430392000129139153687008910283966930602955200092009997138178508805465686947767254042346680261937969129857972406114154923944808048756041519623237216049730892771159770380348308707974995780813967810321401551982415284069686929199474823837005580346126872389268153421276340447579053373004901360114292231195733311988946936484353691032305095801398983209960128769280326019716854015494047558848192542943615475352933150610001225584628250680095855255611687238758173844818938531261837717818736384772099560213521112434956139282575990360448363475588615051645895318912126558826550818180172936184292507134063561986470766228093800694068327120284572012290731970219044656191803670710637575132497544597356354173527405405711097606813836934358711117116710235483649471336626543007254990442603892092066762207023661035821645101623704069420735038317704987863709625043781808956685592877911335129744887154863241730564375320734971394326194415635781632388891291753118366629142218588490949606137356688808599280735903522552482996225874426103423654749680973336821694581387895862314085609379203627482125698959627499443717695475994056394077046020197784460804375822437073470726102324769395102119498030894114694918418992195864076556980512710937427902220133976907227073233282996736654054716627162006763120871673589514321231159561314391889773256822771899872657298454581563824909682532129898680956971788119743518893473477483633022063378516251093699946279560604831632649437320297584746033984040001261159847060824164244160396531170495049759078614230992153172340831237555688326336371309569533237126381785118851578656195056059200545947409896741290293127703426435584686325958491614005791785337942427455135087303215787917016816545838965093412196841100575339378620392656589128990607388125310114926922218358749616060052251190037756381631220623846842917230326800513240114003591722641064718636306065995914133631974685129536830711945686916547995674472867542853606790287100279741731751433185259804449011252729999813167932043791081986561002896015177178687925362925275113488286485106795447354210655396474243539599987861591579320135875916629419087368437476810628058560886091550892510832773848954631291755945973483283497368727450591842321248625905299682759633820892912262395497699135792043972843659587203983610772395772666591859041522588974818095959570004597932875766969815110326083885619452667794743108033754222621171694480117238491291545587886716910293544549402367554923832018696234091897293065842662041224738336242164448964433183379872204289264011573069644149749828787067250222729611853741329712107560102946253265690979188658172509613684806186068475885989677829266251406532034799460155980085192437490233446601317912253686522311555436745525731558711165304386186455736309224968267918858294900739069399637537826335894951439238258185910998526008913794833579854302645489833886982950374576206776262170160397737625175486804537894770518733406909031854079681333162620391480266184892064209728603045015163094855457712883537090306034568970012937997644356665438992112406923694116293350398539744627650812711073342792229189725215804384818963022897543363084098160366395099155875845950466778920999699759629554519539812937715227437670651371803835351677162785219332825452896091392961337695902538624425621752939744860646875543529045299199744954212416745140360968339837767758688181334017413014507775352910435006324287797874893316747372317093803850997333022773642337535992704330142928763071114540398736094818204903948159888423803321251820620326155865379217325340811243019140993749899478857275791453167421169395904808311475285937893285485140793141776664920260134471186906074102395448116523013166209482935718945853050864392231110539533767232829159530200044236039616549719120877161349548696965461983532712129447102473570708676332913017733190687842287097229040138535573830102241096317580719308292650332419848280384929472518780312435406533130916587814909204583413767947322355193604440152543842721875160333500330554695131975758920983066897069571998785239605048029289450747567062063955159525700455392458378149358404177257219163406818231589896932803665893866973001732036183530762736065828450898975657634253917651980213847064437748078289478129517249921018266984273316107034955438718108988519793056447097258116640435175954001669608053860780287647087894235631523240311240566900737151078351608761164653444934032615805703355183377675541574613116330030538215011285032665060267615848364443075036910944485643672272621557464968076871248797381598771096565805212143614088232830445426010402005539204470171844975883210965200007337787324911080744487949871697075432356062397727148562804207567258398055856870895948412518452514960231164641951559743023088861097781229356648992898046285806757444219010070483451725354059671336238243553100550133279127419377075963271061077003553330692637234849809420155437046547795882325577436837758206145548964191751719242549225727190632877946353754099911810164185496143940803926892741114397145229398469716241648249828979977634544943431332040503052513071122889547071024203258655395651410604337297671870685580262846574952517972761429063553119247376214370736709497969361265557477610027464970962925628812040588661591946525112937686762678265844233270450387544540556061958713875132423939164485422816217192859832187724365242733109860503068109793447735491793153983079110250263182538667156867192273009120900528727494574055531167669968277303919660079623490003045954452647396034106886388219441653947528210398149657494126575524371215719703314720103018385165478633319008192401558568815741334319790391414113152408666343877279311197276428329972057918461872633544852705847126127333931438035778121925118877713437257828641951012163230217699496041009076930626613574421693377606121548619915660800287297582542631035772655268926195832310666543689227533228603102759919600221313139269207957551019655325425746684602440363715322147475591344150007971517669472017563790504105288703807569816403849767177531762578483812589744866882408433264862410258939446909056585597038501358170125676538886916314451743335965536726589837540961817656737478974977938111461793238729560480169880960550084641150750821002563856475607817179074167760435459638245259445171980420671842890460416453457632475530432108400200437538937393753062961669822995669937469491701354515681385295191908761861810302697765348962941970433992402083603709662519640762108709334640187923879103980416720731358179641095349462887310114775902935120061450435283722531499423382974662501598526101845528105792922169487027285557879025715270395938079839152824421533188920182875447997752292493771782324204908411096079566237490323120220887467217488034353049779334278368547216617211880367234059810210453394425261718689914422387347964012270925747197337718168286564609106593118046245099875905324764130774647656651176226684406096430887896238018805957022235347812543977290230604269227545924699901123899556729279820926955003194845180670199924988667977288844836074963223002108020872467233072106445835522296450803401916685601460289092759431939020640226333506757290282253531740286933771750290919923918273002020577371996759240441892316873973824361120287645262451695271167830842691014663540341768867149224037123080718130984521270496606430618696629004882990011729373419421122276588103017111985384101899759399011484309352180363523011526499345072351069261217982781533314977100619132737521573366110099472331315790813219718147997513032189251457588440989557063757481014196171924199092629968933873080512344388509374610852121548495101352533723051376420164869756353004339054587265346279671268754600788240733534525801546395214604349282387016715646073309768407839881514318916469106409707904748341796841078124557931679702500836347075293965823302127808012740648475560952673824647878570012348370257661093522034976290250539912849858469438922349398697900831063710315885500148308737830535593166018837135706139096571037075218571549278052790794315688245869399585707580983936435919523614647669742967424387019941094889854401063638170806656361821309073644329831495008394319924127399259352832284371959436213964586939042816496318886063244041827529314870276212346337299996266153732186368171807764550742571687554656138384154455123552869736807185707704208384037768434002377926182120529031510711823508185117154330155131610270944813131253610577795088698398845251303663155627889842141699228154524762479622078255221180343188265707139562382431498891101011860764453182318652765473847017480346856387524702006650912208587837433106655192162036177971077835380137796547282610931031964940345006295300906348264306501933407370869558609352317109349802116706248689289826852484994981593595297707993504121266513295662694753910796122128406167284891481167031159703631330719894931849182333410353173583626047659506783933847034881618594330112279675092126249883016769709739573292199900964645566801957509754114978518613146913015027791577193537108449669315027437417635093450399356996254151726824480744591802865046403269010474120590782316640244257337567990070550810025368303230188845071024934639643214644112207240266850435696796934304817659884680708300605481858667723265779848462927605159348822987650467177325509040084382080122731245134693221692282196632110736718225288960188937367580218897353869199341324106722594039113964989326965240937558961145312066373365617188010717257680342286434309406780245109865468607138954212964075193529222245822569716399320865180303903867255148852298417787705782077131780011725682271658567100501304977914751872388817038873568802794289196759675143475509426324328501871105453008623307804583623802465670162606107507323791079831711870099175723323760365156831236426196569466788472186671855126351257401835248361901084058194531476948140381418271781908068076761879985385478527289272866567576502243237738981115245649413606649009058259526639196887931493077182323684826192805468745387175606992236815254674628424986783751989739664420041645505477530544795466603309506900610519876852942128273386975691506701917482699856302999018188342258285193883857756047791788352444707081959195900897378591997930572048933050234887352193423304093127625741326561406629962218841369710718442567192657311292149039772092513429191453539055662321675484333487513042421211001738304723282121091764616368026293967472224057340374674037526609433609627402126871598499273510800693263596887141819087615146156190110805570234358673792262531192082483466000470328558312764411588828023479170799338822157421278060897781181718465402511815979147514212491037221215014029421356506794189299333050945762134786888576457633628095151507302644686405880659919939915171669180173951254488818739827324959976411291728476083643220415715832312441690892092020840075122448474377830602915351911878666270190523723519833363632037735846263932405622891777665475425769867626187516430663927645255092714074403190121881136309426983567960709577008194256241847938625843118588879325422784192890941468954048253533141868370930211479772242006635898683596301480766663959099209576896553261367515574116092564827035948142123774364227465851109885871584274437235260016723367556520617874580404355830692299368310437195267232688537937480014043157935651566014792709255828257280764045757762011376819165624263055530515494928684398528832304804804582663793230028534106601759434165940166178229605550365013625190634019846094050744042497475876529096227299342281556178068290759583731492278979240038588896388976111586912340444581410516900699791491083883570590436567998512456810909670174640338285802156098377493052905683655040074780960560923537672519064242804916179457639182196222425090777846757224418381268319315912844294417655335803156867535595403426627870422773830326574367008498584160957980797281241779831558834070915889576831523445537162913892913863773733097607536595074214516412502379326894076474803514746888003440257738512753217310113580023063642043596842940680902413414555535601307877380578304602348652813859645158854755580472508498555750979634628833477231447449031306729462077592186324580490218013206948139317553224607115035182249201953695439386809214070122188936425557526410190085298149352564881569171174006489406317347726020856920492525088189624187546906954617887839217829638072126415026184065205463588291045143969151991568819694832474846247990593455891132977725289109672377875339091616261913652851736876222061977891933919992136759621269844685457114891714418385539772135598474559797104669266552207192813931099905578209963133612666863610551258892930786730619557263678521939366035734521004642018509151368981214681793121662185330536166586060259043636769088883710397686646910469607750183599049259240561588243571823510899795973003325691978642379582777014138528968367053390749456601357054629876824707857670610409574141159467052687972470348023191649827754785225289707764540664465361369086075884221788614071670768493532603776920277581406791696031813734286557603113796524064921268730376497363246189715186523628901579235866959705189185002281727839191151752326500958567691543569383571863012585999629270529118493096164652331748819509211097025209645569779612861830864529554247454847702448631707178523511164660775930386852102961012845904220954364448698678434346827296693555368499780517332047695189143993017801131596420372997225313070308770353220500851241423799012231975323391053454202281499050303415149000354212946168420871960032334296613596459066891054147332039005521490632588704585769126031549553913212173742206317093862978440075213555549324877218111915690573085244790970893797947610920675781359347555517488643227439467558523935747927554825476966436713001495873860769071670739123066164353584585850120668488055053370771985889818705747844480135361695519396747759730916654805372410361281375372253512285780255442542661130847988313358356416283035757656951153850202350835755467966582415406564281100624929600632650191440469412380535729231912741766113118828128487082335816072728883859333393847961976459207402595528396692605869133563350900255917749029228073963229276770771054450044730714954173495424673706013074675474106520410833159585142997464476322678255277754149691543291278025608362394510200275740576149781745461531120010201470047192399180524744133314127650736479859995742590686500477070002284711416285387921784452843702921638145787168279581377376178066233931891939744907184591336266408495748861271016755846949626616143225145011758885593243988321043559403407960800429546662571525184858799991818251531442196597366222954322744006154738680434109437887735879563701974885461367824849038644740499235673334049754495776529371886874971267776413898506540836044832977666841299613761576351121510135865448912444773911056679890729257840304169616586804729691116558104508065723755605246647325781589174840068006751536316681991343708842057744557058786243904444669843401578411685012270087915741083466938755988729917710660827030745024753482369836869847377781348345922725377112724953829028516048569390593522721670247591747589800971291667859999190811164800040390006592936905965124379269502227086265580850825928125718109889684516941355024338616337886118916909171846976493338096500435414236813872659630922706244255044773329139769075395473801781749085093289226662695275332134062250147326057143338664120646222431972190880238204841040274237520606290981029604100819824189406153234340184450674623932258001784612061292523068338407471924963772242517770410412123246343767427056691026275357917249911045232289575282214651439615890952013273916536598659551514290161584219131031937176138919717211059757781794012875611282599214468883826616002318217596795577127965048149758656062811540436129259337667000351130629174724007435953859139791853941026824893427213178219395718819956598315137404427927803227187963104640950046216771080818278379728021085435380629123465755647910489818860623421767778262097690062556540860361513352868600179143191943641810270820733122260656740074872867806167386283677862423044833279517518979007616109218704750770017452947505342260889379250055853711292764881191809735675397296070467359648881935668532955476966770610684297295371179664668209287170004316919622392527000013431485280347612773558971548601811259912746259216965070328502943948754697346643234199906471654003758297648312522322281988601440281010845891974505671897575426382513198864569721242459041335375256651642681293656815476884344175617267342978468536152909400114319804558936562187685108194687983341460767803917555508965909835623195823072052364332964560725607242846562464884322746872892559375596064527197450988615784010318387005105638624679092235483596345004474528574289475218178916109415532867449374577949092095219974946929237810042169015524611569296452948722532100916166355737023570972783222844607186594066342681826554452684715279081307263070304318503748580757972514851337928029338907636145133668710639962198233639313601415712855654058529869521161297582199380550972707311707412014605898941250591524752670720497638450710073636653416242508550642997414810850951633548537897449803520424930505445064899691699983213991749929836047528726883058647788308978761553461096287539205538218413751799805887760146913053330301530800161636136784291228385810475238184190423861053883842927314773737884806831118638317978162538717804276634138426308959312745367177558677816890471708138147372955664219682567410291031732378294812791750247480208579565075347133038952904569230669604894212442249420253774268336507018098111639685933238368576326963763828687498975284239566647223332781067900553513069922619328003904547534519572301725796655506390367573884001654070928833246542261312863508520841485535862756553098327296925669974192392093850080810611199253878501231087681340145391389701769768402039969250912788002536087847377883194917886204783074358398606497405892634984758720406335418378546183056704918862953538549069674995763299645928020326084584103752011538111264922162334497607145618661644965530306491802885999548119818003447122190333148027143613224105099635771093280790835102740705115546521413488529559346187540300139371038017278264525782788868733236867278134599597633732250795165554234630296243710897113696935483198486038407504220973756633276689405165934275319696333340137330562476971703435462347068702830038893928459968986000756302232181795895297449423825346822376754152891667368814765449448378384823855206282300578594271622017832217000865101301609549867019036396215871650743621098346645005081782581842869486001567457241405264891861117888680996600998936851747842750825792030448284226218568113774811020889782111997078293872399744238123528450070830406554961555909788205946450818426274343166311893269501474203838808958931121904798056312142412656309402633503512308087507984011712918646063011281412986465900312751473472333540917354015975456143988505904916685128294824198283102254547046333837439949187109097718831748843504725456886884942027121857358721503162465521463101712925682822303072760334395431235748827182822363261642904819475460572330507549449755206946428424575880964983352965898616810238276708090887264397572957512003533737472015662805526150992952019724517375361324279837343879245880537511883102748816637792438809502961594874754716793709574710294227719303195179395127905687668265453010663210871736920783564828156699009454678695004521204828268124490935201157738522921664037008853918856363879126528567679011990140755483718877718740910823486061958974446552610509172718116256478906695556663062176386696162756863187950937892842549513679109636557136894119775301870402092268604710315881996701317546108303933988340491762656778320161480461821590421024360903663419114954878893063445055483004901788122898245752343380978726287592217938073726478523019039487800183746897555269550419200039833073676187483589125943702818122812831513085252736143044111945489733763076676535171605840774688578574270008341691797265153987667085269740598979461303504978338925116153961445310545915623945631835397285204381861543688287486154293102073152985708746498434756107483477158204735025930619741624596833334742900730556122811837992119816527728144443351188942982090480313566376686236643917372863544680049508000812130009602794883597844960877189360574691979417992423156831777387225514705294020894202917522917292065446596092297444938139805537742281113998734364609405288445478243987896002144221954834910398864318547947903792616187577316985423477190984538839896810762394869361202174421277930785021097108537854337049955596962957714900867131301409164529713400441139453836966684143062773114332445367267014111554717800967513576604608999278292244605952815730696406424837302848982700427901414634792647849111398580713998210036046119179140092775333147901262196573375351884267619698917691220981999138090029340087437359636122178344080896334652780692518194122348305197090689152422767617342638781087433656337759218781471878675904056814366582032847383394378737784793556569716793490964394680961672252905050420101137931298168413146611584274501905782306957325215888406616920578983901148235607595169048114024397104997521414482318041138408842338839683976295482055846219864556606885633632732417015365254111951796288762882776331040206104821471268889713545145731648601308771192914733487016705057785637782234974956454314467975607396649359382764316284688629922368525581076239933249619461551782795797895729110132386412042745861461510802952624480701802012654127123388041726254089555563441579544174629649791001610264228252322111892036720409862447826750144790278686622507433803478133464730916041776343213373109991433713661866956697255611201366479123571716083700204433560420645399717552288502981469304186162664715236808497605144124129662931645570754139930126575187483262172629266185668247593859328961975472767599747499983758718474604995224966074330769738962670878620092341563860548393938976391747434764370742525361045281157429791223687415840791008757311150875588527980633335459113378393303784402812835115575024273148441908678210166078311098909394819273908389761763934425190758056928237615522732248422623438833697401994658179130527464892037150500236067145388837043468844169777056606054735675262727378015041419439079950016934739532068907328416455960446786085900372012803403252150471600314479314768581763348210603592538464370857366431460047893757333292115067795931654137892331217724809715773305249324522102719045426180245048561730133708868783762337698803666475492111297284938190147639772964473569035864197565389483582228275977253586742291767638617912855996132690002842683937638690714582033746521198846551963933791866680307780133136046057257378718924419629957287585849375279004163368666712275752813064666567867415638328959514807787336814684081515030099268223082910125255448855781959436304511211552914278872858619982288518057840014086352504386340694848203349085376390275790102501128798659070715721273220661171402419758073937033549141228052840860865212139276449565861960286011680943200734423059930184811330634776681122208413477511320243063324824348034269635738373958895116867211473759327360705088898987375975717560094752553977948609438551307938526214527197308137114134652873559589734298313742282192523848062565695936485218170960898313548269620952112552078020457563572626584311001364899886487020489132535899165712094753556106281469609993842061944329498390552621129395638873129614110478961664702054059830266658081725327982065593247978681350970602555314358042031442252707384675356553993259351388765344218441015094162765773244222508674047454239641944680168621043703043531532508811654022173454278605453968695377897141130888848804819276433125412241428505675709525528760120010903678664303518981039833851509768700479108349799508261218134572953611997786063212782005438761076669010715885303429685372516804347557899146545262891177963856675667778927296476844109554166034431586035007300330563373217649894089931628426809653200262041084094911269041537860599936831083815079869403345286922785981866765073904056497049028311851071524535696069983261919944587975007788246394515928617548513076624746052107874421498690470243477515300191227436482914453202497882558371719980452988286261582018685193945596983929464276004895445444453217169251748863041888345776992321804704379899759039106148498132538139512065209111789914532714989793222223681767585853667238229423892905593504522852920668318132750992383318612653128586360191347502679283769900383134735176668280396182522066228972783388215856570586327867302835643584015966797898187371926649944486013164263645321451890236993961471003440164184393284681699635784377131327459235201144421725454202968805378908118275672409804160403785047585185332902694624980151323867923019272489715513271289458345453531776823401478449981378681647846799544214302033087567167406685949263840093502668644547716595158734407431996032038179632025272647695050924292045006312518055169236758663303270038257197561109833639959512518147210709538956115646843704407268847116324580779144613321370152039077965247862908814766360724328674420270219128079160838229367622090000373336882018112176310686531762687327009329232084360531311837774838985981800978794821358585782234144215184797113341499229302128851227605275812821740504637042561064630552956191946710183036162613724682145750477622337831476372160157926526966496605754735185737329393826484858741638668716401680839242762326592001831472034576389429613752916757326772808390992613741555073013937990760016946299996315691921446226362123146073048120548933158504379662326545561402684649693950691514372519254820719501380868452963277536787054064423803880519444342759690814133492754283534267055327510201094097251047089055940396341623899945956940024342981946776329593324874246311109344315747912592706333546135602988799113116909202063582235404001718655436403026613637809992161956124695421290531663674490019342558073354887765511223547319600144373042766399819125119229788517415566418715663967924872243333551795418914657961791883476885792617398257445802802355126121005091662735404261721011843249091896602771144114427820866451802473231540806302690625410242360467040902700130788374658315370859555403424973982702036891421086140552603036667247979981758086568402603089805313760990859263014855107142603723213692137914108449008880810526615768035764476864821232853702167063469340699231556859292332195529643801201123392796347816125927670819407694215921558025053342092277174908894404281152132712672671767492557102216088394387464242460854783542211426714792095458851114243504273029899965920937574152069102229121324788290522036753945087896414868240918280995734138104974163014603850493166576033418419849210253096247653709685308431618878400637668356657896048153325741358620889208214127311298694060211487532807448765689606285230941697829908046320562794370508835172167896532522098483125153933956539065990449271025645522164728245663882062240688207265073619510744329243162065048851416885033897015086615409866825022782151550323797742090760318784555011460184876603941208021855065544824033027729504880029881695360106224655899404726252281139660134580938064642245994875716401177257395161100828565947938675895147560407371866890490685988255555073065048334462986830878680454073354688773730789990711027043749092321107173509252815215942244537688612086885159988072508891281855687009504011252429598088864678327975185188488381520179848645051373280518535593365936567396417824392453633873515986438322623371188270490208916352696494319850202718698940754143926734599832459134964759776641462454834473905029912608305365136385132428193244031319123257154697741764393040049767736190933012607577302768526024469697452023151038465510370866611650387254875200212702855754841113851140000234247822244220557407745852446497146988421041917376239232468507475006265931703990901805264949619497055461058088813483492358702289721046239291520887797986061188649638765540675806042631378578178780686776171238347299246430360732239650177511786578447785905543643181570759348596475816118160133132684917858709870424986946825175991257870962830098471447728404199726198146734930823476855806786112807066051512302201783381800149100831579504569321487940191903337313874943465059943983520777433094447917917043811226144732992629806849107105819592903690095707530768891615338008014164595184341088452306231783781097675735676172501340829607874052232668243888806116058678909929572531911244621090740181076222047270176988534275381870569887816772491344594466196417202083223055161618313815084372532733243420786336391289727324337967633747161650035652943044372943730914272275419292285115570437633509917264048620048707933035114590451892118976125171442057681434090209782850724378951412369485885284814370772746668675562302675876084666037599739314148001245749602986294800323813190382976970949892922822410690615258301299205461079250163099268656963676811137271407752169734738067222006799576698842395551912926217132346952489609441632844039533856573453206680736699953408091511187874473285997783781760259765943555373313593262749594211574105540265249546743760826193611593558865885930351694391675898846617367266037896062420020553535791704323946434698634573307524926068954271412780816564728726548592691163544853333316795136325832148336889744103809889943666297211475572889651041862758338147464891976982533001227187861863163141456188541229669994167867270491866723767704694634501846527758543680005668287950249540578940801750778034108253065727783320449793504353850857349758670981799982291844081639263487244013341078907906361647916798254442760638012326486794805201949543501540556934557374443213588739324472862137322966256116086988771020424209536999349777228706039454255049307120585420715174995789503805139095397590032438358055235557650903670556261282107034553535037440156643888466680351298205415470234549854019043493570160825995713870664930204170089387442816872063780445139311813508351943000860905569621181127733865889580448184972698469445090828762050907828634740240083030958709376347698728931153655515890773575608070596834763334372111714869209408129605601688783280618063038587344886381933940279642577295923931161197362908871055526228229763984726070886866740308027292968775250957183428078480789575154056176369046183559646523205251839471356509742572075999317911684160705654771275335245892594112982273236780408640950242661240747591291617591333525244088241408150727876719814968872258750322969125489014379269122828455137524944401707379210271523131378879388381736234629285653254847435532178513798395245594821626392523661882059034351931624965775543836464826031768820141782419713028355251574595719684052784020198870659679870278107126836919130017636593862442617757322231038586591655918416304324074147395445311235074489819757353554984452552675621516435986007224580124751462186990108800020837001067607958181861484600582649953012297611971265029527689834116303357298951385611438359549665158068586253977333441456982470859945718721359234009572273758620214869903235815624857561735803702740068559564806504906422978705865935312103742275617948477754734161256187032678309667735935605589360532855899097840652108810421626887005055953730291189498355118439060447281695936449573906853679998066407257917038904107883325850220282683490307693800801411306979729041221259866437742871019174782559218475137109536928892064564754440459899209565858156573052689176467981069807391324808552738613232015450721574597740178148293397243313327478395688500439508958279472158724182668605370344606990980337799689630706214376488532935681302466923494194539164575598196004828346984965779672638404200895671973572589884878002308520365378020768041079417268640466118824989576499314521391520314786477862130451515955683313824566002324474976433242772959587462021847750380217089273867906920896862170185867412601560475741133410997046064675727605690504364961548491664654119189646447772967574492614041889004643941875552586077055535361602426564099620360054552494570303983990638753677569586205966880500246386429039227939161178542776582346609811274530956531978250588256882922219817970330512645175675351421186531178940117641092832783522309323327006865513284632933342638209178243132098498078565261832675520278012251329736691333431033424310094721987537907717129202031283372143198522413103289313725559114960350667451223517451381022334861553560697062404791945727070996967452271475332389564107730441168051488701202299629788767531767609041584275902937291167413972168370496415305234943250448216693381475998690468635094213401705522581873395744774794126014612268639373885081171792066898601336041038183231693158165342202919027039726558579283134788643560018336886174065709916181584539907224745916156721939740947287155056961562411150238254377379879025967374359155464857804637020952767476532601611811748443058109458509109025273740827456806469888757206401546326240591697749602923429985618513315712126641365244152377056410406357645849596496942015606761770332881414694020827260279993506563112896904059956885529387784650294799619658643069783346477398076640055789820480245033326231463733516111824741981144966848272470100601285880627444656171895306187057831837276047151590315604312140346784939947706387479886837496054700290084131805512834250546862633240351282300300495622260595941142082838513429298012878838615778258352660555642719669179263270127933417320464313455503367204192491227490079681747644769967571631522953092255627199855202416044601146466694061232125098995562389341760655182599074395295560805955106555413357326357498006808934968468619451271557500906782587225944260251703976442185699714286329517891157527593274531359722908508990408406980566925899859209304941591682001994397360849389871026462332771229477427476926278250465783773813070411814936716661726207746788159239649070651294252995702276787113825195483282311903043407699800244707533935227155464225031943997753605289516515694628461170921562713010168907398210311712528190062078070381433407546486262780689985869360119706710349397594203915961968341476329120858419042070614181287998965048164882838665197097706515628557372746828603956332291445456517200029410182112972558869467343885730125258872650974958194722124808939248197355649508528018211511638854751691908097853673411104962324414419447004989644043506605832361245808444457467480226848595992907754927943960388004587776711107245996473639925635898042555257830538849415157166078023870054839035942668009151689576009247510941275118443737915166261369314645769369470335186930785245212468478347639129503385428591994411136300150954527003015626115987111931901091483517787720049343384133097231982896118984867202974561771344669650814550903536836167522688870990349455459381993033106305813492688346340529458148074690106203992687134298500366026032248222996735755726522015302812547980823909470805471311523958077794196081229716004051440240021038072123067416537522206118607192280953793479497922811303854253637096228161046778201222609930162600225987163129092292685714110368294057587125458219730116463646143460383711776822401692046717498628434221614382671890969077415585359766771272281826069200689123329901492235061775431514561927886483695381916169804389514530349054251632419081888884205469760605883038338871885463274392604989877393146907726494928084085200283809850520446072060301269383456950409503334447988530218453869349006826925650933862191710794301794800820850092308612982286545196358347144297523073735284741165577686556465885760516154036870726998540665894606259091364758702318991894415661163917923796872910992367143530490782372894826500350082614238552064869833960609757389320858616414417801788023853130693161283520662566083437347409886415496026680790922163538394669692878696251701719076634307476481775773457296087092182127603224967796423022438584131236815163505690141003037867699742846992010473268333745884040374125139776584053073786128448502297683242059781891263805184073716261572253809072577154124177891781797704709236417555991764679142391491145465547693956662564599322311362337093269613437525553381052625833833443284583621641496278062015881160893951496322030448043693396579125742305145446644549931145580662273687071244389438100276496577147827789251091708757901180453224514521818370884406761791505597086756893613663171955283892476646568592477220079459709810824726042114449883207355894607438523422883228975808330788517021111644218327148185577752323876825622378213225734102652887192603437708872803961644458555201250583107923934467592631839884577921719538587853387468943196722924092071100874707008133324267549626058969547495479062511265678970456849241218606980651281050740476413582413363819630884480207559476875630398629135014014337311788724257073014213481488166530606529870453478569156863024978039837946426377992734109766115458535017391936250892851905198707887545410506704447780356686827943834309554265421146817800113530657145636038556724526492726735293563098978578544699380834325265892941123281643339693624138258669569669188406705537590076042417375981355122048131193017066791740290146346376408239210466890918388997959758292839355029985607662286694938501695351473105382070679644043060962110684934719830085871063120936080585449321161831113685335227195379808947339671488082461752738312650120335795446382639793197437892553525756701264209016086639606941475304653904090828312791527059571647810120593854028786543552845894840760350548277944471365920767883926832088862120750951233993700265343029273411667659323087914680575755546128438698638283303040323755283560922121106415729355805575750876912464073618232560328415074558961963788656993260307582442182386094427269187153631123070868162421340459640548882481555348752213157429774167749264261421538468727830915618635078430103663686877548829802298474063107520434016931587278086355583514538192162535511479273109725025650080822929779118209535924131505649299567684567690881037853610781786809304510310175101636559783873896023044230001127213856070966007638564327175900881364694887040802231276062080015931980814987223679190618200011331950219380590407494379396083098798611102545243169893445681144791312871614938255576457050267108431501493179216883006165170474343927935599457829012679429094143122130416588979120381090801262920027024130249184551203449831516629707153790651391665702974283696910073038841984685541186626754039069563804686201968898915606496167373379205577652799382208070386197960646063759437874558008044509511329699242476000775935737308310743197107444087648686724597573366563697805734832224401219149457641547009200130112765661169638390936085741687837517362383566856345277391475926932289378656351037219347887743120923631350306630261536355276124155696751149764840203218336770704613839001816994089808593975798578971752591334473732110028415836687555621940284150268682281836660018992716645433093533692278126625793772714206006874349861069066700958102018301575684593280523627440877196476932568036935604796310233512678094330800374629005438584941189823927147874769732140551082873700183775505358505040382340933068373534245873737353684389193212070333864271155383205629505160380450807898193940600705942583009762625416531939312556627569644911325129554722914425776778292929848769820920014202117240103129969236269135132579145261066469627362512748307065090261347699989487326409199740264597137237528736816858442018475011311212800357206284092935686429106015360333893249581142131817794783205509726315018996104315779321060715993545701001404341267721268420984713359116191263382059671575631208164168014175941434345687006351854461453443011451923522512891547791479180489669023621529388287338797296578889940680855637255584146531376057943380911730332497827316471255018123001265498476954611179308991315826679275729467349214587934926374912148823651283276071228644267921068905403331618260051806752929512973341861078243801776141044125111287961145892192185619700461466398181570469968500424588263246154179842275212673505576043404558962492544302399317218000062076423557662611235655783958523704421382654732405680675456102814102655046528133218267630630765725501973208963909733992128535829131631605780397273718666469285305620241261028613425867122005453626781201882090320664010497240049147922028795676188736492283098765305307288733660080213341814826669684621789773888309203883868444419306372436737774548274356228148923438316666851906888456094185343373611139235742646762719606868415146550882437833305283343458257546496643502037543839166337742627968253651585489094227812255394226078773448304214967477652997936683866771893095400723553147347924912706184136611485186223136521629712303480972346151177287052192014254813292054249814431052157202036048027662781386880699370216309574604903784528887019773439892385330259855071067988209857008103798156622083083416572019055962395100283910382821629309682794663451307645071557049270759537636986242932396578506282786211102991128608625028234100398907171431426988481489568818482991774731248941576550439061118781201819957406748359211095228512231794765471111373538591899711879946560386958372234917377417969686394059413294786975368006070384709768880567045657985114032524249695866390400472881056322430395133699850003392989898963422934990512109251185645121549849083308779212191907499963048417408714718233379526704429522337446293164155083366522756880998567901005454631941664712810625334226869398029701025426438316232781989423829545718449161209243534385249544774979661324886310402117087176271140839502650050888976666580379255389758948409723795052841953280186479452622373481372328194836024668731012614022054081004840445700453733806993266940214118873655892333243044369822760928082931014001387991061445629792499897095338446300521337624322464187792625396310678027609602684715201440794809256838998092433085640588726836394489662251305996338479613722731829225099746929541567922801189345785182578102113951981265675541200243389603456229477688843359439212112120356205927672939537480304037427001611338306383844971286721137587653186337002404741328725635581457725440246930637972227297528770655301657448811366245314556578993067044665400534649946977687928975165160943992882898160473695817671184807278679325215595976667459499846051692464266753510293668788624136127161766174641941893296448355690091722456473056415155754573387725724942978910713519601550650903849660882126964894014987766236282698684651857541590910794138458050354596662399650254759560174129873157266618986501589966552148454089232166913451726803391366026045860822755699308075155918436432759288694099898289396971409990784908861457889919485948620808545643636212460038715987414422292008143680280287355693169674091178809197673811046843948686521073116802552586004018541354175936787408604193343281338339461725569291952116727354191304031051796446406638062490666184796274182938409217841358880098616718030570405948870839827855440822039868117967597872674100151712195836074578917904211420560655238985821625620912784098534883008403643198777005674790068812884467169945821483533945118803819851794876708966675948649200874465223578536515397610234800157455727267445700560631307356942535368867802558342450667186017514707105706825956236761118736226345976154523094737661205059652159115246278648506508701396786656900832286111331877962405352409474165158710332200794000149497635386566140984751494091798917641489751486298458808787487081692555103177321427339177538366007807198953916924077189146728347365715925985254883682603529229556763013776339183584361734682158420086547587877987153807832699715178531554211278538928915105878674695485357857964037254945158173439411216804315435495752360854035453085271537376900843183986234544351571887911391461104946325998050693798436326955204836163781277729690751332891181380322144973992312332055086160582560954472267945665330598657189117309344074486505603521147906761429086425484560299151170829571981398494000461348424762769836961109381228851378379134758318452094388874527959309511372028409024073865227619222530444166476076346923010740883114358102437442923778455625358163830806397826136381592465806564932915481848624816196963385115150950329995365619611645870111107135448896694420014856822781148461096538950711452504992718568591293800859964697207120854444879013918368560986457660251106703948455743117033631926909401550926207733925662718933498505116466099167938362084159366527159113252497052904129757218224461031798441929735535820811602176575559428933539183611466141231900807851019397426323388416032982394341046801600030620223099277332798245324027736134507729477569564700531258460741622806622180459732957542779918676139179797443226859211498162134087523694058528759358237832327017016972197409846847401742043812875276144423441077214472312996345103923253051506780751293617503312476894644615636950847938357858464835497952873345430820366111808456921999159194721511295892339379729176575528572988949420742106107831276665530707265386947527735561861881103679726693804352210792566271005902613689798181113552636968614291328945107111105106984600350944239301620322720498420667679785757733870304429415310141940245523101264801613485533889590266357144574297959955410552996912524572845863899644892304765095673389217513121333785713344817643544927837327063166298273482375184647754652892199001009843490212307486154134995458954902871244826160829540815758566070987896592646317468761028807987870735897126663526675078895481446180205801287857771063407728422875293040543122528024481378074100995160876834778505257133069244447339430179027541496490705688962166198368715406122564783008357539152303006011232958182846153990664724439858283667174948232199763920963166322677347645183646085976924665296765789595361216432417186691019252500130836204382929925272417859078728336449777428832044403036440438819810257842177630754751861182183485209229106668051936528512920437523416614704501861513530137028806757396426132241054806216603590033520658040183133242579282460544066842924079412480115678318692825139220119759676860780638510651422794045540597331718841423768452030944579580109346303438909110232741883551509986088141883274496709680100911869054445715282870115136286209953133546043143186152115031501848901555061615917602475828160266751514867927562368742073913485066917937842840339207177973895344370173510776896795291809666566310580233913464122939798506419572831862903618275231050512696708142617117328055692215248160956747603274867007265128350709881291492017354121699722211492099346770722919185588681433718235438201559261382776210691246635682019614448040411954760678524279844704947078248447360496779374162125379144972894892003681788778693803625797233216630056871718167603223727551548314071181847335466671978043952774440954516293721457561798761203733927209781614683728316331738705854375815310496139529521734122420132848005003308152909221896847741519640871209134868243896684514230174323574046659050296720165404279746265411881398360149879626467159372326744434764083050141925273064470146670865702121648170923994782349778913289585863565956903695405342883489130889843070227430078027550222286020821499620231394280500088359071406096566115254295751492955540041080879063819423418260486770347783419415163505656575535228021980973739772138964493722823999728255662070922444747323872145768112238775504765927483451611099412203904041335310735571394819644393962318078944916358288547358857899388947453939423351127159506421345603021659351296416163499713437073753548642490252627259246888900081620132373817906894539532843442489332990872418265003344234667810541334354783444393053059988080509643840609367720722666723789465890942909267477354562670038643326716491714415857400821970643800819048110901864358966628463736021764281982773298781545899519465297056198657494343307715089340505535705579061481284785745363706110658514972295967115234944729238924234078736068914936944722813638553715297738067319275620526467601141251772330099231023249681417347185614619918298710394224381726597334512367097808462200279188617873799214468627552668959989459609335587804535456270628595354290376803605987626591130621714349610951571300145177923227603830868492809301384033364465159795010849280371593659079232100523586734381801756619509127022367968685795002771118839578615154000317939056270542272140807425660416584612891426082859172590433269640309447095305113525409648882472244935139148070405674898971417589479056998879213711258338530180139401903082487394709217533772611075107902499312117726829330543768525528845401047988989278625745416998891414048989608584479190063128183417464564918815016041802203277683539329003794877193961403309921375413914343460335675211165062907289171276705335109139738536726189671937845541390150909279886830222771115249842996602011531524486184331198508573069172623657555699358165080475025569478176054630228326437319058902022101614062586793299900534470811793083584969946953133325661970060306715245040967609818782983226368795914598353361800625137569415668823096415649001576601104891930099965387437106323101970284370174587554287037656103807025414811358703577844741476315189742204403436955713844482448379800607874767428558804571110371580739962950262090547272798334858184919733113021781799694696085501410174833996206017714779585389393834936301022436542573258568050652928916122629362662084495989804336659493612266503580310621437231584845308801627807867062932291603844281841187612214807051218785010108464439579137690480503182755260909392863546017679560195553876052921733619144091058118363846017000871723072484891392122542662531518990813527341486442617291927727684651488403655261726686794888606687972945472809512815371308838994591693022005328313963839801618710020620778998249226915787333960410759518006181859638148073004114746363014284159466907924389426581552662090515784259435157473498750403036141649278543364247211969142075024870370977801663250129425027983978889509267399366646774312804465803922994700566417698798581684435093746467250384496097147973598862676797878406056368501817027724687606194386921188923839090712960864438185973085431779302794625267996835812090178483880611292159877679275368269520532647866337645280171454929471016329967273891163315208758906747470261872489741231889281188461377906504195736121244745854189284248141842737562645088021707483069649131163829493173823161149610570665280861279532018155569402665449300207770258263983031942920966753937788510782113150452462861404074072380778787152657962037830985709016648471012329974292429406199259960788923396330326601916989663201083905264916663257977857955351752302847815119694123196025420723857336482994289274340006732503642454864533590153360783349700397613902371847962840327664512041245102630280328810606541179875810634580795419370982783876857607289933089643123963552714654118532304194906462477530236031440278505316931497481067533268851158790060361900003569523689135764548439601202832100001327154030500990026878148700005427563690415237580540657729375241520413230968055138914054153990740524748758022158111479242882715841535952199792662468964645552036564274664915552673923581740679309843118542436653910857295945499830709067590308631863929043692023425487115521618413643763082365428003003611794363560008516097429597549009024018331577222092056034396774324920594317545567079243028805116761632010542006226794237580845729286486536545621297690416499164120437302056688814010232852251617369096998895744932087986042208594505090403281545853870441590205352152062048034770357283212013966615444313496378057243704351232191733417466848766174602849856663777828073103094738949571982764651977028713014611712533222051236871062350907634447896567345920979943146574518562750701430428787215067398309192895118934444114820075555314788915624464908693895855906341962137972476633631479200744652277641642496920415721481987991008108447349630813326532687778773903360529378090988084733017909113167063822715540342529201892665066860622190766301662724614198211737033951635971436912508644349450198354180154514113859227354732425475409834302005738952487259595430538083446914249514617889948638294104936198147365739794154563496996784922882663219037681907834709262776775960583604612683148656738093779150010814375622401562276366840903802414837192437884747380725894526328545729245463648457941762642185430263230280278016470737263495218042506826732457063145307836018191281363337602247338863959310457666398649824570985516049274617658029223181809266340437375110246778763917525278900369077704493361880140032712113216291584351031094672211113430857467531865460950515036573694212495938044149538297585261691345481993443315724282426345273104588189936108234016336334668126136737151447884056330758341041860645818468931276184590342891336806661709366044360429491726871997067487300819480090954808803526075293140984222022168368134212646252554334193121681938311666351341371053135357646139317681014565148688751926458780477137403377552285425051705467594681593953511089772653067974047444120573935015276428832913846703090260749638037711875295130720508862033081156086662547056959781975309441427414077433040165940850880078966553009374165481874561112009884700049784280860198512131619719527177309195269985090007106911395333930348604995746464064613826844408461940701295182898719909333525528080589126686044020341817523791700842883958571590847724915792166032803013806779535748379005389276318915132735209251356013418901735727514085558156009416764805275878414911776632828488411477779036990125019370325093024219282697692862601189249907874419721182701390093589895716916859702955409242310350970702128774518299959752035919590129218736109163817096403437879475252096899088977218965167154776022407249634189531569866742210553308954892858431751969907948314120284893555604372175672755905557891083760441188207515622036032116254257008675806702395869057498582247212021850385484643074371059036941508467630543095066777269813063616851360240045929310537434206979597856683723336828105504404575864215102729192730120911570397015256871126382167430306728342342972165908033295569382532689449996196482481969467817749958724106685980714050048299555197852470525526704409448155100098828134051329886946745386797684304764228018396404486046105700069610348034832433719130089701558179815384652061437251394701022158293411744940142970903386225405051060542282494764179600731049190764620813062168236010653491066146063571876305271828838070520685473232234624753245933229737261981477814722705723161399772683448474327513713871521127149399418354682688581849224478158858386676223697303425725374311117335764825127066880112934971803680842546622034850761383102596774758987589496702506603038413444856172278097746391316277652098305811751394549535533928373253252875908263043694296217051632186243299042841905971376878344328420667744294524142071562687221994505091539083695039680058692966990695795564333553600875868043738054047241093948426545560915933202515971048762030681180794187754597864548860987549127370383131192036392108183289557409501761744805402264047526727734016653679761107346031028876251359667265891447304449972495271789976265537915169787784905198216856293375233204561027028006218387225837099282346948725344254720908165027484031891754298023599870987496117709964152378681323656834873593544692288970204952779071321790064772020745678824693190616961207727246264171133964529087027684726824117941711022814726617799235429487111742296969796728905605857252876521217452786729997119630699236622940660650934437278085833184384603708094131158604455802584242673430934428560297702268987825137715210180129629418998778252775369991353212516257023350138643589553470382282590848874186096061485890263038633476597146624777822287115971791464786715735603277445766630624185486500905027773361930943919967196288936839502664340291972974498583976903338882791444437988551982950208749951464098482744566182179729480269797941544544319588519678977642094057034309236430199731602865465582186605670609734482721613373087211555075845827365826667963815930242147394603275333764936906011319763428529993528484475494864622706157299126528806536027987993932821132778543775103229260674982946543713493247653749368457857418031972559058096258661197610611128480223440559800136419661229527634597610399548014751745286743843042334631359227511064684255140158423334815946472856738368876642437260987146533870943804705142565626416214991484918009636973159903955972616715583348398974275658953958313828959955614817875098941244241759403947874651991198776806652386065208768303205961979054798220045310972881255142804437215254951315255242779714530066236736995865069497093055090407188270432787855866120806766423456394478745580163793286988574974336597150652963167956021690983849821391582575792524536843439144689816535362368385927021854394101355243683852442529777741334940122041527988662960496806523994309714578142060981600049787736221745297970391035988214242804184909314555114979568706577142313562428604620631013250288057143763232840161239997058364947844882658771661684547680628365278621667661363451000253218024863292468414973581201249997011545892203193946403669112292636889757432010141778661865107329797826192726316350342614327895836920158875941572091938456458623535956836170424951704489727572069118760708067469880807509298081869364942647342272138770438143348751470036298425391453560127071251063340725660038047177272232803984246037139975163068051264410883063148187191513151314643636948606651277299334940422194286255086523000861787936057733968448009161541643154107331350930174580793158933185142559906042019698602919427619470168037683000082380038351085814729899088090758652955778218068901655498771180974060451867060356680243727848910815627780378989556715001482505181968709314602663174055647184484644695074787607999819811831963379624327795433265427531571014716336652909551074305816056943060394801445204607261153687792587360984315189575161509195948107794418049241355834169569825035149860096211683119854913111740416262123506506144001266829275206997984102570212353841605167582158517808514428004172317587587599748778137265454314764188127024887651880160908127458648727438010198548033195664302265154822108128686252689151740650193806670688429823268662082935525702130299092463776261994402403351419221210281951638482126213586629367992998130356278326079858447620347714998072468395740178427323351398645258622897479560747570789680650885746556345798417005901716422345852742320053183643934061551627469929641222263613021660127244303739625365032659362942633151291238169404175132585558347738441822899932569260781854362399092628301644167316163795935039221259566823136599514846482101823258848364365389227338815275741338616115755935063409334255716004622341722216529265367500213379232744682357631553001527908475968638222578060766230853388085189048010160621736120176723896149726498887548792556931546567709904011547547122496203742287910690619686602681154331509828234663910084676226727690874876068582827849173019139615349897237821999666887561361234160562810368225368271569163320311614698310474253860671673030341880221637283870015878347260135177762705832340177191200410167015069942506521135066357819856773876346297789229865192906031244511248573503687029640061249037850461796444911102860975493170585873357538479959179621523768894285988479284536262385028350674703976535681846062418566999768439829895694107638863884891498364621957622341797154271035501909975819800284748819981002387540993277390512211230216794248157473778723019103775645734677536693413339431619074361018623844404418601044881978487486176875543388451643029721924596795222390644568438264199764760348915923401514276929594466836934269762069315284475631970722446903004199812281995725588231953604601496654558780270281632224095797337517070211625018448948944428090054295761212973737512445865011103697922760541189048823062992971585194702429723492475597573739522441231825832543528346167974077272939957155569635989809269099888510599324743737411752185669107882170432562126020879734610730203960330877836434283247875538828845175488181965526264280968470020335993484526507053413799551886897304807635753626270282063652088943576617127412907500886932239240801530804187538416772030290788592844246368013228004661492647621956982865958963491038340008563297443928251123594711909238672257968344339510680383782772342396755529098299632186499176278288180300435918746058549037205778212595638714159465516511375944095335466708190375228876479714907137417009067702614428602182898463351758170492063978475691348995128854300057086951928636839030646162472686123004170233238512190798823792665968591368396695871476220167014714049903029887818361673668162675916670139141310815364065602094457762805235440115043539038319497606433208470141225832772465917196002525063881984587564928809093983999195949861610684220025120508876038146097646199987261072154455781636405749362869535892368105613622030972470829623687750533330981477235221299473996362611278841081196652945848652811284777606115316248019853707729385387264657701086387208487179089102401246934473033990232009864326762288274805436603299802686639304036757476668977535493875526928647289435632539439532360282210271280184500715846470319342414824718159294876366830645602788661755799599197914999041770396627243081160963013820446190401919752529695601992358063543981118401299020631039967815464343433561095302574029787515175300633855919632910003562220211380972486011350910175802916727996161795647985144861208718252900309950428825599855201916989443150210017069455455228863343127050212683108664696776755457683756582350705193497586160287127085534828739945280057754474313083272553472929929813364906717533712868986299522357995098392120225572842532248567315846662170324920660122954858739631747872705846379794024515928179754111586160457982419487330839165867257479636852008665001152756696976345896273964846486468869364174754969222050151558351417330576329076281669675222835029981000073820796635933558670571326236750923801322583454094942264595002166163110824055974789525272708182990405574326439887600025717266070396269606662126490764722065469699972056668999673977318625287047164821136967255303458370594743586614478590512449299055019485104277827793538291709892079796192233980848470448240430989274800232892182089275370547412464103743506035565067383320794921274639311098787498509651191061581757358528255458336565753566476131632355972232524659865611209018613436794132347775819745797239278854411100909116170313910410889690520328297748491041257422469327117106085749124637552355372126543389596848228597382696287671218741155253932173599279516453534585490177066885665051776877312017040036078879739845990800141325865138452324328521084121494296347370868285714260582689744006177661174963501997301402453197059374786613470795288226337170895451385109002567481575896196706677901699615079156552734891169125994480992870139790551841208216010251744011507987377217413461142724908681002036665696630955871702568240003328237158368019538265298555799348103890268251302621826349164471119338260975982789336010881222194463869293320335497720941366768790142445026801395045462917464420489133616374218748174494247798967100067429553416768883142413767931869597847280421221273896301890289709680933570194370138782199861705386121584835450505483270186149905447794876068836065886219515926648646707424206047193083351329968477125710231097131391818671546377282625536189364803568094714311460093785351814633810590310794714199032515021626964565775727201683972957160446830511226812029679269993861867244850724497449668021510850883403938572033764283601375341016902298225439069590138503559173990856164425744573168656482232406897352478457274548598253319352043487507131251986105444075730357407455612448861639913342995808557065820649315769866618892191339837240640240249820612104513468746663101155541535927299118984022710620199831210808635554259306820447198273850062379878332503942130425106790542807758404337665515925607293104603533619661527051602830144163231588797526710059526531677979053756959852665895879215147103697465328157119391980367337406232896071579899835418904299575918711479246145656728284191115500916590816243895984773125505651843981681402249896545394884194654687195444254910573104496250472761764913965032218214674572125844950507702848184814676257569138787401641941650360107416368241599064134687281387631967886712879956894354458158937023775673523087182763849182368065222581995441616720901377067499446288484392304136681140571722564078527764672104887455256518163308315062094047654084404715438721775381073591166506558001994145190830152026956260622576681011635540822856909967790941139621026113729325754667044840118570677858441230589993722674911373816599939511233130775784050415008551706456662243573095677087907104949418408275932975358853717569598129909669803196701994591964787018883786151051438475406450090876144607363145871928514091079869192055714718142041934977873041651603727945942338802735692875354355221106255556600988103685724531890465083843171819708844899070337072122264370071905682856424991279460274098257943934473047580332996702627165677162421088217417830233836078112382382370385253562559889448701513907411652660979835449781641577656357763264432434577828803176839546731320593707222698436142720786751149005943025324207769018931773835006489536320649720596603773297008911260542236975021074674185129998232203158720026433374037020011638306939910678512487269414473410219254523164757664377406317790189917599750101873352623346931431758773889095784196745069885056762839098038248509381886022914360113290924975068093610237434582179071768447987263967325400522440954139240251771909204696502748504244823298191065460337422407650371247459045976059532047918707488513842696509908274433619323675529718892600085537576825000933757298614161757788445051645640920243097037434358286113260180399502079345180237993776917047388350557081996402001209840839948791987446344263644823615031439328095874935248161193747717467481146617203541695820506483095449757719260217332906351212133077789586455910219296956957223264305826647496887068237078277267465730845659420723853294727158169477256686977782299280143661109504955534377381986838674341290794615782249557650159633646290902818467338749835630420539406065090253744339789086576276974573756439329753755715813358038239326794988024365125741672208706038756436213540436295649266928541529875666203973679810840251843901674351453579565190207228728379221563332793530247838953470870990599325677231544944043871511441967730635805474560470300551836289614916395216535368122414731521506424726775098834102817190764852512091999324997914155316616550042431101339122088727449486667401330539989058598435565072863033977004602496458226170706300503887185076026931339413736544042540074027443010386133479766392052786406507021176943335645492978127150338196471686548751868506605038510185885835343807541083660879020569047237107069975688373577300396516808823653492849388310719859778628737399926776387882343637537671234475998600187838618112446408613000071448319608797179085597249468281169478711992109870469371396135630925834474088664937946299436859459898878890054581384931760360839918476607889013499453756271427027157003304739387166912841198317207341812123407397110335493970625535338401802070363093961922648880923568414186463535096152550156747909766048984981188120952308566750858987458726969383508998242920678820405830900187485917678632448500579282479487058500002128757615467005620145063525031113058461268830044512786373213578266372922784886026389173625836568377694198455051536872243978655509521491316121301444987495394260125977718713627367035101506354936026559914445995967654564963719179412103502759270422052951708199026437695611727458538393049871162186422381895096256208427102468265217208740856554455506691438731951572957554470205971937188923097815426588188309217873385132633573863749044036428348967174180951554741042718241653804894201547700008689732176976633100332199901796336646720181952589154501738004725571160484550187804964708194547456849019273978809098983564195459667768110156535414009065400089531825705067628225125962155356846459430511829244852743066736714767866105731939145552132339987712864112406728138829875804710688376888673728640558553333356426258058862219907482076033975067634817004826916234706246336626013371328952130873948722310300569367761003292770636693967238943141190718895837338325035144730512235549997140253624286153027326825695667030943528238722317711868001722679359791578656118986296602017651766862861464572962301901972611864498552762342032555813584189409069576911787327011665016943123577680675134165985140570698474209582362136180252715971025052679447004333405227068345535398181514525503686488397386317445404544910803298308729802253653606366134230796076658974847371574481457002253994279235437268206381795581650846218048468612359661460457632644531048652549092875633227643767879932282917475750476927025179481545178795916296842795801892244900387406670858204034207121081948890917560353730029279134169510975667069265050689949878003100184458953643974292177274746997372448884550100058891618825175482070276889328807117999612160089923714062949348015428469032317709135892703721535282112865711817110816939992074427032671357551968873694983970064690396786205376391382080648324052151971151089644439818102006739961870821352112008522242345785429478173971304753220263258539472082485090021845078775895066872811695228679708947932384347224977538465941753089534223628215575084571988767026174658455646192277865362927537373183911779969848912860858615521662423346853690642000909242440026582332888238988288549154816441274641290072760522187630147783097808162596604175731614283429577365169251836728129865738554198441143037324992861376552836762003057591014238790013328863250095385540751658142680023068437375998094973744241331978307705758562925940876333749155182918052838597671933225453852706494996876260337917843288509385945240107657350179205974815193431907063002954610799783148097203561745598324493354179194164060394108895526348886302172076905759317342018497706210069613600906816294650018823332227535964515525019615379644442234168691965657957724237419846905787064827847047946376808961457677014231808916241236843787731531642213400702519941915554666171321986839277518152055874313049026633115224843079433140635950047595575412183050842196367933160267396588864309517200216646674348786427764154323318888969673301127940032153869047517254592606298956706990911754256187450390387982253737679501285453654525748958972599581557439815350548854192637714771212495768786101840685588343171336902570512446840870275743479667865308505496544952429419309783166090903394592315657775405308021461714584693318003681161241850087224678890591806341803756896617757195324427149095989374602573236262364148743148272791397134241963318617749839497395555643067305296270931099037238360442157924121201241308879145210830961328718132271036357651507003917347074138262480831718691727272055619773027041545234527495785316168900623799487530226848691483011733032744186057816078953360042897246096496779359273224200809703375317121217544158977589158652378625891368214219315303228132379375612712409712144560917558991684963493556186851483766146533704557023719760615406365852031755750952669240970526751266579954104556618797294318955090040539772337543988189846070618293456606925539209029059973783499654771088437257778359316645837120360078233382620835187725617304402366200526501394219186617739047904020741643681851125453694483111059465959748014594958561464804014128230550549883489404656839955731024608992818831774459668221016635675359736552069898412342360209187322395168283338137853982805758504729875801724758119648449894833175077401720206616912151977895514915618698069159467834784370932863415164645493464927750018981616935475910896301738449337174360347426969192775245472393125762299871149796921892493498826947173720580087456425601648894160174097579809113451658087881415353428939349715396021060406315475124772567585553989899607217759127570661635319827635312802327289277209365326831021874285483315605119448562347893769349858359085691527624928285977828119618812745616020350687176064556441724236880197674070665347129614380358865566532416154219339376954091688054439703922276982742921953083314151628449762744720958073310355389097581654882996290358323705920584382627629423564191353516031734576037646254899117974220941294815324486454306983856872525970804461364094735579713000715934565112713983310989626867988770328237420766219690645141972789348128104438055214585379376709571008373718048660436350875975255747553414741097721803122034332835575785627313502622742811587754156505505999501761536240867004015307063055783366080788440437565434947273670008625821696960497193710182389172947429292255121275364690037711475116207443784225244097980937887321676592080275650252624666001762025567450984834727937410157439157131253509815432411113261674785114136227067911738738443259138457314142475822043326149427087529269935312678182726460396330129907619408848266104459229013396922779007961859479508215535404218976383295884510894191357899427144418777232766630338717216254579772391038949418082543620168757752280242581857178696899456301107575470124411803698203243759921328599582724376018178868207987493853643099677099085138855265905485858153723097321187920606636031055016497059050429295800255308313125983193799277976130319085388757610419409653665346544231984263577426362966000964352658488151177657018488144042319700111905478660159768880964655293147396579772907575255129699893417515633879954116148679950206627834895329526643346821878355183575692134783759696539079892508077885789774950005523450442647360395694382712424212684602661357423816627074766693485325676578373531152349845564593055233914061712145634541229490473131342461398011256733890562383217476260743389768780000598309455956872441852316612792593120294628919434933519358761102361389250363550370211748071359983796971383521020909813828868809618090868477003829219595779829957540091048997212063851624890441135666124477591157506020832393422002922623878391639808045740713845703505433090569020621244774627555039384646905888995903517779136820354493663163126961595057631440021225251509732329229457823775488907042182790344741229240995953002423439277962598881183974535898713388320497030506632384513261630823761281227960703442168883400926628038852562988690766027264497104690157904199503857550250617652201398980319559275354047448293620552294955359565861241684035148852996531874060138462893938158244628346704183549247890071166539614034068884493543233660324757301598133121353923317875341837516671594570582764798581403258559976363073765707301378750357686362792384260353335159659521502058628558425337897309644163730173251053063952353620191867592355540207834053757354764091299804483172032081844693634625516499530029281332028475115472637788421389684673453915100577962663858006648532535604167712781721068132102212984723093152966754124145278247637529025941556386376188663990426301176788469215337532891007280088603025594957425097361145124447069794589492823716010489948276154922505324773513040819222796024537809239235012561386361296048924598860438379792102188342938006013242191521079545638347808165270924036891192257234534853164675211094311493673877462329425043194020084214633407718867383747274438105801076802127553927077283903252498152618834132093600807415318886864020222426450841974306049100873931392508977431830855811649938923181967028671486853832334720500190420200407457875004675377899286973194013349962760159169190556259893132138524381600219874277208845150233366452957124140919735906728315427560685951391940977758840818081103951185414426854694808545386662466128401986331330922074562673927684026155957399608256837470781158372037232764929996231155300475380258846219241413632297446540842806044891355517195927427362180980251040599880676079432444237368645583542292841063291473290635742544897885097348780694604914031250306920351858369470872990883370034223414006063860220191230897251658438224169782968773659143303044624518374918182305605422004924964889086888181172129155382866821813463547010167436145990336412826608954973649147992893079887790428493037219816638186492462698068355554295274536202376929592050505500213345285732099546534883265205983069269059540574789315825593368328952000980877570889763087671168310222549695326811144047698856477486260840307749625097779043746921773018020721337024868677851899364573153712380365479443104398708614649625466814970113109717427769767107324299821259656406077210820924494263089911162543130703988094151368117567957359953835294511850683051980400532512969968010558034529927374338184082458886415165492748330850158705267559784371876584368543267369268386313965894186214925636006025972131103862092388405677622209403711799029658308034577336144545730212701466633870650756607467373915468543200600247608061093926626342668977325528385787885533237713812503399965738314621087627047306200607419973882475349732309562849785059839502818385310037029530046236868722100138520720024307915913941751832838936922678409408630349395894039077880442125258086021396494334014953296994351286379931750394809565192866330715698355869322286984891430594941363398648325312441387707859954280126712893440053980946844497687022157980058451494857515773726917843949080643248919876429902491953690028730104972078950305296584237217636184284108301815121225681458464851344136692887317874744637664668640874996045165385339020831612956434718315285204036092593581761442336919201606042756259014819241263995168527589539092906359821124394461129740713977688284033409240076677433921676020110922633609643107249594032512054775137163000161878065608376655995882126144663253422485196528972038064338102178598456555337511615751145831389574480709975121553015835767356559171429132570567545549480196066765223420900608862047797720054175083456947819248543974750788792414241046883786356058710288255262077168504775074935405289453018393892495451688197097376982853230126570988368280549052854895643840749153794917183053404497609114518492093924388022294618336477339071053138568382430262890920931235796305512255054167082045749142548266090285482570680397111077846034885690092124913374406719521263300012412201422967328853194640029257353458013333021672154670508828227843593755625563602068806986615864802011232588939060829359577723537920319904267233507777378690567316290536967870523761999589956653364191377219355848635747340915455581655213614517055283150323316420103645818586472376797223127402923791600610972757978967864460210677195103370042228550083081352034779004237959290930435316840301061548364880622803909654273075069767795728596003425843672989470112846287255958336887576628139428220855807176770959989927149847722891846520220950553604632578805286593396908823728462660098305320348556334880830249530246898123215742584823453030967891019451781347159792282206049633488611513890330068866380369136155219845740447162698475733235461190385530971315389040327728661112088433976103442807420363556486766608103883855846238830978403381170591067399535833932784787180294291345994556583189497665183462047592489179307291681336773310143536838229995368452716486516481201977700189828567281528451035274508507938121981461341357311826347726450547728598041591837093058236158423720841497815487629805601056408571764841708976826419719179236214116921460186586088495776467485813349941487241512597758619110016108316561021518792675763495771790811518706915464712928950356830227471768158281529696039914773127140746963165918500412566603981523652368375195185620765687264608572102536784841588059381514961863632576899549691260831420508040875840198065943672778930190571476292901338378519083710050493683037486617038556036869770187704306480499512529652973609042755545892521885450733997450498385384659794085861090736872539525029778908703049128990144335652501822984996251077531934367747317579149317292859551097866063337879145697418013664277104983944712344029190298609686920829004203830398168942238027314712300831644174722454883380241001142499989599376997072761926056081716110609502974844310628464528320226713071692228705093589329736675333297785993528986854971582168301644848185764894852486289735118430671908763637953206429101653773640113191931250112402370189312029818582854841878952534247091718643661591507538738416539665544636071978474767137935388787897437983138152365006325128708207704879292973503544797843096226702238272405316768750061206812705359288411906528218622758858406307475996213009345174815684056532070481166507881633774029139304637624847708275726317491657591331130390445854100606827901504676156855625165728809386100810189726853615348537812207477567496719002837461207298381891300657757289135926975752254069815701009418150564453521599755530983426386279689936249379761773447512744682794857518631577430410506043203174884596836834555550333310820062827280831765561903992573034729095494484070441319475759445760004186679637241147457993763250905418616599796153165380797658502393090063007557835889647772147633979988434429502781183991805529551870847672532683752828305396288520450747394814697962613674793426382518199885444280478794608838310110724279865256463702695738255077024045709550901543446705016001514344926433327576639639355766928228460368892136642546421068318795855396969062499935335703469549595822531828736856772076640105699954794598695206266290666932809028391082041352652699596789268474957696682176277121612446381795055547186306878352314177325099121212289812783255644012405325197922658624756314373351954460329312970000657584711717872377952149504870571197106881201103614247485266313755608207982755259381868708909963003046070164359500194674777575245610140176328095638954109148911853037171288297353866379131932782641930545963944993452069348191225712877862682694873309261085595284927829844630706943484517779281325603160090781888431562771371643219761175584152200979143037032121190591133886329390459687125725685056954928880510462549094157006116081583056144917984225795080178528995045531852402427349937064640728420498695024086259871562429805472944305111246793594274161052054257422586718075731449211530811621903016054321537934894192580794750768905184400798817846978109575286722361798951093658635134198365098811967523297583464851495607833743241703665930221390852170369139320192187478378225886739777337229514063596645895120930228744036017664114244614796273978816498848777806058113294404367969329253145933989577288035757111832742774177199766490428600562783949710295782103849948085124525078325188333860472840387690445281849005986711956538258202236408984660374510365297193940928683917743215982361517599568473668558799361769943996450650430585384026879461917947748961720176088475159358714731416902275417001335643655327605303910411987499903053028091956855406007217001459050342449141420692403407783036495162736025110767707654670606912977264631972912678559252797080065207815548843386894257324701951944234245312132733208267699441691608029162223822373043681649022202553794457909643336581181760594247761869787180763328754845026202007912287062922235941701674818759719686853165468283116504266917712516991253708244515598815032999384904030130484457610716467577209723090151930218870245964629669070724191889665037883500635881137744184009746477347525402291104234731145237085802755942879716567704044156050384266971511066720047860806518396574989107749023900288213351815368876184386722154168565833365522187678012725097252646657474318920206966929845961503824507534465965472749226512680194249716759499672483220968734183688788021711226217173684415152919127245632876714370903043548381741339149287465685999311345733165096230282235761190467291799861144269480246147851095577811438357898700005616498345760385132591985130362693445811629806520943375197494678846463505498078248269096431988535319266832441907002854321361073035176283286548919632820385289775558586883109861234779791674491335955614373497992863296990040059836317397953619739533888749173990244545132831279698692871303021526460699515596554372333810311490241491244014118134419988384735093114297824768144550395291860906583441687717873188774950825397361137931712926409912548380988960884097929599055385378214458604703787512645178514639118343969310807231323269903456470592389235941728787968502505692955707721542179167392500664701360878571790931970487134267060058626963657477106988018612519052823218468382626197222109594061793958911850655243729339488163332472353158434994546872668511416398682343801871954610960185077869320070308027132658581288431758062715491171340253094097224243820472232399608660461699327148036224969670681265874618947334117753397397044458610215153899389260856113628646017759817056647605031906228704017810519371738912696310988695434879376108673690385406204892368833091755780242076691322317618900876297195491181975446406833382969099718070955192247400825516438275725788831380287136277642443547660819015735618540144808286686674453055406885790523869735148135795512086492215254492191499001576556316214163098262285182228544843947101124873026199112812568814757473910731483829731124508299048631578102511105094915623909783254892401536932240587870994077460721354290090144726646621984255253130609139286367746690565877892685678123408856688440668988137927162558398960452062156300048968608239799547588825404803518523428080275523219725161701113381418949772757128115779179202433346598051861466969520800495903962558285448826634669858694708676797958056470490471865309133208319513536575247997026087057633559781120191556244216262854277376031548499704174374020518977167906940985039149542032873180983442006758250321198898954833717981699562896885234664157933245765728193764466910445579333849679619693736926903487954722963368556831498912364635327909485548265147286541517267316182946840063563698572200600698830508589742569557854518675793488990272979912054822095193804877743271215063343719231383359945748851503736092837079294649358025734704246621064759508980484147564388161716086410097824976650833103755941197497200734901495917742278496169649838023562415853836778043052632694499093571720294571879024330952653775312287224650939455405159504829795514882716293976471096243679404035729235727412980303237981262286385361928567138097404164527319358781043945425016910440140303814043438961029716999067504162786032938609885146156861777045597830623448001479393710053159866951557926176024409858062023419805355018917712742895604585050821475801157314382386029839512550375978347182684399375188227322923073938481041534085142778274819407502728233736482917370880852692897058143918586975028601744750517266120980553210666630855341345825258090503767879663007294012659076711718681406602153148133673034876215220869057258253034238066910448794057429978407057905420047222973444786760843102169992129941510668432236681454042618035516275287215371808373948882167450486452897185377206793998414696279671983970748516105301361484496988084949874822132218527597282898226221767624868392256604283158847438972187844913572550998341913187017215654213520654946183192088648954217976424738218571168213893509235708848766604401665199123313380820984178586764314927751926851989930197275196712722436182914085800835358848659881371825725892992472604755660396773122356455679156738069316074952437991602671709525356264188407428001169089674685929802292144054054346550014029241438027178575386977703363599910799893208698747821005617778898111834184299395286669195618379061592177427341030667482593283630328665265129353265016706853228033755434272264255652511834937248126624260381102824279823717958658728206216356314715602037213649841176962928647697482271712740714476273862364781906817340420949556806449747783383952369597436052686323491372991959763465627310863762579048870205503046205302456420698046384065332480153197230488025520495440234308136565067537973922706437044633511094454542465390719809003479564259108065000139766367366474572614149365134037755139141552146951984591005469325508355087154916884460178078076822358391064952364588354341501182790920469001624825464770953935980463435657623115785580195072457735023534965618267457062425048924965704284734370105627532792152885822511271776131303511637557452036728969964400167300983781738403423408761212435777798242311271991703192835939229984886592740428838096769050981758357626034725199998810786854886873563949994143250054368822302799301619025816827528033017308278580613698164895515516284764319595658845234995471768519867923121331130138085391537976421075980880942379268685409579930025309283287005009320428769587968885180358768756142290927442232052200601000619907837635179650956387202880231882713060282765839295542894559422329932108896685504622288863275153221553880066444009788763382851046625094113750649927905075878089775710051400975383573481900834553519928587331557115999921526202319024867300795693291094820820410218482925703233059893670860770309097623318550539343383360022047198773196433594415915337474939202405162967160658819216749397531985708862121052223550452956665667099606585725476667680412417046516232706469805582539605555380981904316819720170634765540893886398319633120502005897264943647328027949254441174149879542815059139105788298699312992930902521811945437961528865735282170246208026067816192994666884539160706766885478149127476377715000492352236420340747481423367613692756552846908621695421943202117839914850799427576440168843277680640112753251382198391489874584677635832089613694185716933849423902597748484779209237608797347636131805585898782757103765824132695076473372664360914365057005831722630290510192535759774210974069640594483743744090381370558828217659018532365679201512995126520812831306241103894798407907528445580778831471644569347784781503187408888976418722791101785724249311221237236071103553121513739209812859728829273760845531053722993385726039750507823879963201190678133370935822863156177183925148839153436357166770749873707751179785294863881526761721060264321518731228442938208599090462441304052513003808959599705386076179089693254517878432338021184184772952153104065118264853075853021933830374674868695160002843271232247032439812040474240837225677735321202574206247032710799538842586302301793470519027969057071767452532611923780222923208022612420969841617933458635658435629248808855696459731122236780178591860601413557631382270584779417301696534890898839178191103286224202159509910416368011294003648156636757416328769724234442853224187495653726168719672529897499511461393685525127825946172237033604326690235925797382357260234257174960343354305209112236551623127099066929395859645776265323920751042595832948817330782918154162397610514505077855764030249212107928849876644668292911328731931807352629247631826041744733109665413881155468118274759296705113080565321878053757255547341199348906776487021745777127482067472872352094040098580139952391831763351267781689570315408305421632966592857695888477132645252235397985446135602116920739059112360377224485090425618430659933897868744700015751871290867792473415327828800306552747163578572929205801478739232994536741905153665142168641745308960960722474325072448558499649109388803517424151851435198625561419092549969534246867231079822055618079904624389971468465650357080412054619439610207712516010120854527036670222329803518535507251321216118186680717220250357367529910377455041810612942758954740467821998190763503200023259102003901481913890760636874937613692769446987051489441742622696094117127899588237332753703986371266831377811538345815388375389279121957403515888281293771742746433657127484359686895981620439780660535897654640129135268262587063575684872099792505313678397664112352582380674255186683383601303710986308752270551352269445900606226936450780110789686442289663110064185437743946527809507654787282978103667894295838126730430100624847599144110538163132646841263263868646045422755473295693956993977570151798736555773488926080454547906689194129384888647533699163372439908429686373936338275868788215696962778753180572193313351702143381691335126301950559270859789424093912646048858679587419162154311584331560008440056034959711385338996066659060166807738447061364510932511623292207651687910431336428644659599702065961966199675097881910173843119957762160382310571846997658964409552562965718363366075889796350502459617630556947896681079549949825041360443923047341872683756831250952940671737216875714835949635159030576742200623654336344488093177119912594891154135142581096033116098586287912222750980833764790630391722119878991880533539028990879788756709559254944518629982677493221931121246618004803940652089470060141709561552428328796665093148815605865497374319093514129700830842332908524901396507064891472111443167800744648490292548946634374164509003785386481073737397270920617839449883014865009084917390556273750264408392918963543152007735120247600027045985015003867267409152847774787516920680676763035708319668960598646866942268838404315939540221276429356234118734308230002989658437670132889417668287963584907980995790129601750190296556975400499063724562807836035512675327637664379913323503890018438346864921876142526534137077073610406559213271169885242449152940828120177410761581458062527274523132098057529043822265315801803908211337692877656495923716117848880533773188203273038937948474079613330904621286879979595540229241285592506096590532899499581946037811991266498319723929567762220969741948424906880486963241210036240605460903725294182984730466622555675623290175042762873316330003002775424148969954442439164972101134939896655011325930566527801600885617753191221618301604583909778155783439482299290659043874881543210930485030843566671496285000059816860691662304596716469345806296180387059400776265603632616267270048914436597863354403450574173522239763539892527874343929935301950985331911445675639684396655793544753396574902893726048963204670150015866748427603368900929104072344802837334162893013696693630697398729157345406801488548572198212552604883201104602971141738536392207206351249577415206512623406570748460698647402599727537065670394423019225245303500748356759909600223504717470241559129814220987830574880231768313324569256851702459113972192911729137284017225590636340850753446401197263904470346809941622411825088806136260729994946167701937846249662453390665976229391463207809575467137836240684557290840765199101783926777001588457042256707081744531542576487545096948159668412498829507612374203264522547439382277968221743895496618884943098138775437741636640405937852780778303830380534024922433878102659858960834737074812480290224762321490641145773869238792153759154105860326291743457780975069289014002747183424032797786326936837615149904871915774608300907883045202987171821747731373427704797745008968219203600092887099169366770562500052840539819761237373322133632320447932156434750876067673177249256523042924644835163416198642205689431175114917617219354722265137862985621266060550101833819214062938671898020300577996947406836050247992425571572057091206111356545345453075289019318635499958846651928116940003079595744088676583077538918360998953218678921603766783892321208073771319991056939518710739909566171681143960004737210816575725435123977595362386327246703290259544916185023912546760004470457613822953451066147009866844160009407403704375783702661568871172202847491821454863776546833677646506762271387331055702533539079701113476553125610495668603131579962258495396423157914350631868818218305326963594502171625313225128902773524800629387277640287422258890402312174278116936060076957418469030966442562919294087530521646085652542758426574756554742662192789048345396316673072935634586393253085552774156882768152440994002908289256953549947976609624629451893197648625998634650727745272492009632764375585934247326104374244811066005945170253761399623138589841042788113324640206765020940158762259312573024871598709492025690271227702882315875527028096366668048275401340289216889775344981101491370293694375631415842452281072001104304955780183298736387508127866563288317393309470097750390759043167420328927579156406810617992813298275149253673296554447071974394751080351377421198945203371845001215276857583980995305833723819324087097597999733733241123564925274205973989164492811431434628379896055711808315118984651048075497247004849226353054849859912865655817021720022902583004855842330042902366579763986286331454767090365726973200258358242124578464892571732472364067385791144298542436915062396200557877771859015332197903779295805430423203009559339020134737725722549503322850450142096229354289493860444962076312831057984932271464376038458597982069312740707629325218788643881196705856979861031196399676609608327639781672657305841913588390825253901781196859098644737882654738206265386812888156888676624497143484934897957528772648615260860015877169247785537243958625957603663492523956536005462118922825120797272100099676821383366099743130169981264381579490649964270092219238847406162196789617361892818093513595325673836353212561672566462383420054842363256593093483918834440405380201008124484117424890498877039340530300525239210177982134332472340894393598016862793157301259581265563007411290670644757777201964196447715774284257780814991210823863577605967223348201429592287013491237893017536814029169742621224723628439379509553161917906714685463110213545927336406268509387223386922717637489066729604016733443038946172758879137380871137919419301972437368290585588116862649299174432399583751338216107081958930086729912260211596554798276918449840233745716905486069544566309865267682610587610458380666052232527995478580239091103097565906297146880207535219015246337649612504925458378119018475430792872394455803139686170244878157161646500223862712939458414373609085527112180215628040714701517494802574739654370080758524478777732559009892293108234289434756207798792415303466878845114789431631683099461122705174453457207127105171317121300192040561840689261050580265323374881424904530062223689756235591195870492982295472074451203426391588825877037814431465546092028880594136395317857308775164661419271706122703274670162270960160940915301335685978765261258646309887819885652968042181930417215362781934811593052611903856223725843024810583240941859238640054868148860987599366332776549746771419446351984449601817057673585526148545640965754257990399586913808525012502285302700685066470256512769992797826196911060340343863316667928713056202087624493638227637567573784646638857825908476081455110483334724172157542073233353782971378945792411307781538506564996122970902369430286775624894828799460527749882778369018436301860561804903650849225965146467759466169296006297630620866273778991265129840883946015827735680509954861890764042109099120054601939621129964460602704301716481152980893846936866544432528899978462755604656328869455767502613720429653795859165494010984790233837472875013143328126639193048230071140612853432905895764902567572006309594004040845482838711738785573329743598068949487039931692102699774647229352694269087519170315618951072456225285462100219100512481932548874866568828775424293478880736246509733809169433820291273258068909940562322101872490721714794268201776241535582694814669957978539535594405742381906748849991532648926128062775969808371154492162644649372848047626916866892416993629673293026594348718115475384712637870639665697080589225545217270517839771152452525244925314151776547727470440496287168378260213912736051864786599100564314603079165733320015628593876832618684210235565628594192361153468337667429522284281179638869594500412578163298571322181027223314974894485081864784260318851156792297693543694472910873051127364696174418287637476900144753629468878927387086075852148944969704970447743687835944612133469599897441960656249017620747543259079139093519433050001535158571247748325437577822674186626800671855632249740936376273655343419636018822383729915938896196012820778232109499013848714707830653967811046985586679517522560933623458368386898340629723407066091472550368335455706312882018855961982617544482289466446250671768615372141984222461561555379682038883547516384931793723719400612239149688996474574491352204644755777131010633971890192593002646748272844530275395483451394461388783247249791679602944990185706876906718022896012405701560689512478583908251262974401299019253127360345252598238961410991072203850109684658235910669105420354803755592168535069333487500850552335121907779584565928704104221346914682871417203549358453814633001997295173358835269125513926279029056835208047453090412074750386409362504688758693489782298203034886762115217959644373429441178936941386656594882623103027169227713464276212523853880204061487502653378392797538880157676710863657631377001775739758319357862419012231304723648510216059402724205372927600865129106988522818961629433450128398811396967758031857711575643301550949703681379389556892975535291103243774602521950999993464686042586130949807564404752181926098267938107412515135750046776146157523732564893606263711555272415793029959867019981283769212178434165226532129880988643165980252172556839383774081887932756250124522747181418829439753186738974383324485264748995848146579459116839177347637030116986902906776841540667947658396922626546505944748282958313944898993159731019957993190717839500056600400864456143422194080657272091742289865373803565289831020899286786775666867805186292686775495678208138591423827728587280513909855673364592093980121465550988505549989705550413471552156450558412485347268545295151831138769228126886214749996586733890245790747124320579159270800901767625333904152286599918100022669758898065403720938550930992469072304498862556266386367540400602332815232833878358854946422608026968793075842245201313577507602079735666432883627543198380969493018193078526317259850151951957439101961054670249156852980466451399293011568614601606554627636695279671712145552786298355242971815044521457431049488489815791984197531516241515938508952627328726638735891029111885551108546538896208868880632445693991619210917236360673963336830975611495000959273652267281869681951879549803071542223254103732498530910707288306835656558083279088003085576471695507580842250108337616793470972449797647650061829203398005623202265458582083924326333867747788262250354730314481228777060147484560129472993357189736831158935972871750809859444382949327313950276785056322862139159888534693967821740591803234397565410983770113411321574189861676652844203503555589161758458015908649120113530029816942685759463463021893755214451589545023868923518584575067884421807232981564883362517753194048309920049409971613015873214103695374904155138363982889316567155911473870231648842560784830667977341378611390053643944288170206499611178827428688367208016156566493226737218702650713478820285651234819850390716406233962149922083957157740876564386793441166437649493274893471910636749908183346502084462544395049575115149380054698728444460189533452253387497892105876519609754933541160180988960393491783060040689968298003031041165657771366993859483316992279598590080364214712571875837552522942963152107217923310679692812576697431967392107158270594064528770140158344177865951753904823488938037524683638134513285752003154765573770030115757058216403757519346516626649356197509204383455753903289985881804733852026859154365945458902586829643480188552188199380293891587758255783008337914084701479413962763618644864731601901931851401468491002274115785277468253017251092055501688718785064772112001591237591614654831390018703690518065858079160479210035813239567507285047516156542424432319518525835029523668447685350741178849189081122436895654531694708176117570697787659888468696332609803722893675878031017515178556142480884651926152851404381254051407022416760020098871298274169963492316148143775031173783334140824563929928399870323860262155546372227849653332616238036721065838920902467972492907421845019627202886262344763404317270782600136298206113083216988395767432816529172815292301940536223684845528516078391456716242678391961741159203728629684132241228317918127009772198483345384195945264982835286726444264759308267535698207956569226674809247888657089688296627135255257792745289897444578206887050613857436347471342749012060169357002163115761498974217636726735181199051813679896898545144597018653854727436757815836692287727139700280353045221788417217128066036750042559489378382748280528699937794283246737577695051817461614330867537491762063623481764768804705936745083430968894241571907516143455428594482021380965010194905672727722917010577858495916869531398790344650585069167035882944027339547838488650928546998748340142027812640061251838390202220805168095622976160642442097508760389141704233287426008120147344389629261274870313220438812149308690391204401427183217937496875503631638744160510405433249675227610350624482197511616019397166879293287421106397291706395334486798892259302233843290860199134897376373998715334656947898251003260515979886222947628567109483038778944590044679999547894940082675287023115727440651095756449798818006496549545506809014176650163912369979595875230797918663084271623952581997045803638159569533288979257595919750775559685827560720854095843288640866779462288739215451705768075088532027393935063449898669441829173660861566898104984791511271958542706070815409961583402379609163121574235363088607640089510064571505143866339367592020089967651040295840896880200460020420414779553704686757890447858751245787119971946274406277192396291712230604664216369075495572658005962007314073107904013874842969925074696353359256117577471091487385308690786799737969705684189807072139881141324702270018930563846588180081702078544280268369003340590163973158534763820417099401278965515218508864281932533888876078844406909278670358495886065819862423325688019361644259959679900192814561681006634533220063705269916683176609993366134133487164222534498687759202424531403711868533617020697006517517816200078749481088279427507119528083254287754494639043302102763360286191780235563918337751722077035557137138308625665201133044260165552936395712866545617721233990288196869610775667314318212480860543244225526733196429730432932540050858564884171420587518188642286418330801937514141250605170460353391631372484230094115116489800530688364385812874116110900604362157069228298397575738579800357941218892866326181225619268026496698416415395397424553264557357848768462112467154079368408249633820734058850629918051126621772369719915479187584096765429601582246334035861932432501304191629603984245853467588523893757120376897192869093620327727720221757495269519625602085762049943777932819399498744736975447093392526267342311490234211530976478620203952074657691729470313136267327150773114417829405315650576587366459989276765289854556502745520061807406709447597343866872002597363214701118576617861806960301244548857539937972915104222318057403398488662486149175220731136022451563710279646441911172483001931126387391933261399477418698432892485440298445421348974265335992031201732731717711423736528167557254595592841905737062527170890001731678631834207515597198705220381359641245912879492773298550056868465903796859350962655776230725695356969360861900834118729989784212290469086990966480466406592486064877496931649313303595027883719223497756980662562310831010866138708335473466598068465968507093473495820742927994448067687062038301811572831992871321808039456025513774358126756247440577579714754202409756836957286659935978662258495849325447947757433904418687419042338873972006518562300861322167055874620691497432934637910904434976554993166814225615762393604364675813701162599593580064077040601607722806752415782868460140922366678123961526372081612345134003821430068144455241550560678759276698378679948989851272927544030075532896305433200842338272062765042376562453819786055400873667274315838645180010170425878346403331159076848084418949355958730572436519009952569016275932164993367158594740657713469744417467395581177106757543029156947899968894361072666408862729733300995249079767671648675729872554906562217723693358262094075911172291090049047478563830189430555341282023242086777244383749407608121593882510827198309032337484376061205031675998659619626206177939841844387794267044409379465778771791296020107373083659804370157262335964997137999960746249716241165150738975179156934123522735194054133250351251728547499111127515430498849176465062176827472470834373026894846646628756815305470463889196798905526473539203307427225953875164869183666233699807367018794046982517383232433791447306350305748182441141090097752515442503277574964135309467440078154451931674585876167446438824492479587686684618787942376945446369857730847243625490690980754739613150251003456853663869336394924164447915224567693649273701842486541017714986940128100132027884697818360176253515326024888796712226651998277755102894759239749076411168775213397391801565468431365856794969366602943434552285027420421761778755820165830824026093016085593141006888204651771740494587282986863940518000596768135221860819016832061362305735039623791608886206874646339488301430461886366416506734087427554148837276536931497427513232279739830117738331446298598781873357610272342807793710400580580705579572502612387856016356509384724008156829115561090499349827471947928920494714982440698354058065289281987763878509614176969380488536760512548656842061629747501101348680039182535041544447545922859822332379759209169982184596852942003357605448307034813142499246670305263415973931792855520477244475704941527652687713108002501586165211067962988450758501789667801998399359762942478982217855641566857718209665125142365440580606045992388842587791046794952901050413128545484430485587191074952715763574652476597188474453912498501855786819878077439693223448199545888342481017212752049054225085715673853166507573771762338240269741074050912923027846056913808806632215722400795360730291932423694097110357138788716259357851979272832234301448096688269201763244853740627945973966025059615066001142979571129680402543484231682298397527927008968195380896023530414729362781249942957256500739805631720086794572375246079617772301504129998049350255868005050198199700789587617108778425987674021358326181624913523681184404079077281912184378543395158511227317035979080398895391325954893376587677741823731866326952221399053626315695952882442609672765222838655618514933871391085902793170753645658345961860151870164920484080401638646914127944834782394474188824145073021680112371553585353684474013249439151399321470277216633857762250077063142933615361821437194650185137936805745843145583296178648131454845485444963065875382196919855846602245575581449754123725513933645989519492609546370078075067348773974218981425013110167880666932945175008421692615395362453724327961246046757543234948864806100791375570476230915095047329738006693167084198855526539798869104786645916710620730220846292240497113146207593457496566929534883133667824664545387102890161281781401545048368938514111064953551873673899919504226882540535056911461741452251737036168779940994971450149780151636961690635042984876089484017053133611963395828378695878952932110190688865436350906324700008424045632388502407223903991443559120174469581853354740094612011127143602446042709355808866900980783045158516755268165336465405370641706411450137350714753724704915214735103895230401930177805172558817033609296192544723682865734368855995719317770418714595990978679207579222536726476702852315328740450854251641297509113620053079811202948811891223565143623089829634078603355835947166056291617506914164779503202803985276580495587007433718140182681726619095996554553261684371456937868631807162994672384963835721448259606918501782712051564911294916767024911384026920510727410698514818405643481810940815948791245667731250550586644536245191321514377642686954139577528002577873295717556908207395983761923623505401387602822351303791877964663743373217809839664097299684651951776351936456453699418089490041384472751807684514195129108004305880298042544743946675987582339123411931737703495220619296286577547019646304855665175901402285272993391741118134059899682234811376356925737437683031003307035585590638810807917296977958433949587705038286902209146254169439002024771975049478560005400151261437486906325793878514688958782929942056412265695383884452931916597525745867188015390067031311731861406999181394752423623135911702237757394711706591860590248281995281747237334214462331676455138959739671582513920517423228094484555404594077563309656741275866425456161842323372837882629532982131390590659818685702740303108404008652521575888492811224740624317010292371088266780566504965134034884961542715216801778291138619147366506831990497401121512791116916253874347479265270940318199966348192520109831201332112510379495896687640031873079722489077718810330115603604612113376341771506460155223869441437788693891877071468727670434651126239338841933816828163075834031197941805727740278667190916502330655119918655921179702597428647441186676246379052721999562648493264743851664125025385057836819509665194192680877131671904773406486784454595117932886433117164219881336877384748074243306267173393241738859317431781511835207509003827642143092202908914093592963245165639630093103136403769207281851868279311523609121092686256748829152261963122071636694447485212932109219189519963538318473202364456054645543940550644014770242945910376808472315677245697073573774530499970109133433854889498516205913439109956243142787230942076598346938088496713997058236946516462073676817564361078720082774960606038882548601297522746653352677860257012515502047635272179246806171378685307971341745808410286103298376215904196314645101561624478253611860854998498812257838997489982145792527053619443572623580539504014022950060852739838726073135346014044198971032225173168004753000625653240925888600843138895205573209319667336634547428935494345409402552783461945795275088639219704153494986351126295945533252499617153775794517302344814496540311164041190099268128046191262338753855293667930585198835209344390273871588642022616691009333290568926812762171158563607855379699034863933030555925086012275862175038024334001276935599651822483931334061416324162069682181030656078376654258975291209427022450021142261165112319707765310930269718749138381986731639368208392409306820482839416190935619036351385877720476769811767010700290534946637771491210664557208320285061963573420845436251950197711682542864197180806459901977752894100871757949249558301439349359926120988053452052905738458606329089945636912520835452744625182238152652491270398858664515041055137110599199721434532715482527476317511685881664188316988781109095086268155391867354194024419760919031611259399161086461741589703670428335426002813909206932291860802623094739662759214279573249559646519116157168179863239094549819930512076367771350461499669548500266379952614568486736115523293454094141459057980455957876939833422090457642887810100827178119972319259857556127792090220298623653591571799936871707777988858343863015193489498834576145785237542836243932166047788754267324270521359443569241980130482467755067675210937482167384598917761490058992247624470156009569825948283212480103954496220703082204757436653788660651392394524102558854295444291031163065260643371082192024324071045731342341029751585731199284679192905353310146385905080610487310376925582797242212460366378339975738548878829044530213625920419149544771451797948670440538053799131969352122388662823728244307257328135350890217281818507019818185714491776335264924257931520198535443840163253667831928355938211447047703765732398664746614411522950837722255356407741421661696820191738176310306303368500275826047993182981916916120807592142530875553613974680768768909477682104385593503067527013512312534007706852306241959228033993868793302243968735136778309657085032190249000698438222373598906865607273952352897523816053845456315128811435401465491381753347373042774971572584922699298366828630411588683243622891876487107343216686929072041458239962864203547440133446549958753549006657010642351868004066780933222023057323822556307117163730260782574549674039236292361501536428262766114175912805338724198498954460835257108510040767334255759454393770938977818769876517994006705994337225534146188492892610313814085054320201464639034004841664471281403390017600381147443319966478214244705983461510370327673997014801096672859853559441163977139225437951533836208638597948740590756180384531351701688260590239710548556057970828092434695236357449937495744926345143309950291695955205468985453035914279283753738468786658484375130384279981548591881752250042091264172389375685562540785962118528388207122957977456339852731481984562720079589701482604045282285766870991658462336514053757105961695940772279588392347947880783605778622743004645364929575927362040277460738972036901431759756012031529754522496319233579408437013959516055723739027742262512226944797063804244614705849418664364099454642348937583490083626959514054329386647718410894391461408210254794703001964851424448929227373374882793636134669667923896917590814217502281908058636611747639817141769035321161633962271558470422926702434102441063124511327091370590598159790311586953426144226040560016383375375941589300656660960575883537946739096032209449731734849281656060635363114536805875749616953024160939492063818950031695392129901130822648265216105517316250047951505204239364182494725190642295268802761148665891734529079607795347307688889936574194173330371226600480376334070213295343592241252101808640534704944551082022599890534527262612439766084459966241769517037014174559337819073259574581166351315613890788317631199565311437694338679101531869359321306890141830506904344200800433542070883731333206130220589632134419252755153470427805836883930644151077707279861393903441979050980176202862316658855786391842778528397562106525661105652477448943503102344310804084609058588648015629645233236807357178456917094155942557067415362600103375662455409058456603694638032848530754150052214383646486526499840888787263622479767213887215060080713886681516270157532441058455289766141486522544674183179134535107867610328164445422620067145979205129441991352124878079411519577257792109592031346854181788214586294228066726917443015722373679242427225201901255469447208734198791703232654502361851312932324677957083660137183659810755012631282050016925693681818374772957573253433055768997590184419200431944605048386675509392836288882072832974356701924579382739368172472156363093198504191232452585557741064932106570231985089459049433894011475117850723790529299048476364363096744570539449022817113251139426475319318228839604594314598981402552512116258801663481490985364840305287315604267351288538274902533527266811384131591081187442120264809481621383789945577157491711778877304939262407837746357166438924125820169506049801507257030221907349392783465045947971674816708741654787955375704009837318076030132326151106629132204169012414854926133918749002802627146721435871943397908665114520687321551239217144736595874345456853783195783125608992501438628880995829733396848204947734466917201280441923535880036972924154636112837059372980675369461283773144097627211609304052367192484134480716996728634701179323753390222188959372769483883925717796531865778324978029850763849646767213792600762444671428957925413021888645626306850267363345138614790509134830830758243953681583962444724248105322385086005325908863095593391952749452259659666962509188688510827534941731172379359151030627660309259208786996141149542554771914214748984392303031244208702683538170948586899057190236633281335759788593947865779182479255916292338398766291502165269763482966990371198631111564046078595061356360897079470985244054439470668995550618284674673900315384427800320245655557649443442805148954519483930643233021828741702724955806668171355549084411478992871948624828793194103994843971773933930812737989352530876147730604206030985495726558686469381636984310325146109792234176155870120185852244657908095358287471353213910709693263786949240310205265818066381965915545767474212651920182448962987312421891463528356359719131325278002970086796517871399519613822941383568082338062573958417396574550048100098293979067413228935776771093666931028883274741522534836061316937211879332078107877374837671637412018563952477624292346531123963866238872597233129065964831257476096863592727380965254021921439922612746783442337423830621516386352358217299326997996713584395664569972067295532382104768111270004233808908689477286356048600365357908785423487132628525813394479518412689708687223544971921995397954625162747904742003691154274056917283835222369856705605529295538972219960065923257067918713015908010682337288005609620321312936209685704223737163390233327176035752057351372870068180878381032937120167414525867492829254763804756461458698338157428560139116445714332252982513001422982383643786525160281065672922771403765776115192342707079679925630858180459336900235278101732879945322061820294270030666664070695623360547476845577135130848382221467346955826115720584177312708332260387960465223371921208817350564071636387116008028075956242319657881085579869525746982212812986297881941340333729952209244173829096038258717581234464761153078486673865200691081343680115190636561130526361588347774050457057552641945633103139959729053886932567181052852098342179577827811999516517299282089166654211653058541608640674223701800422949867990772553844243660230692669777557994588486214808393051974317555760541470246200311954312558713675278149538986653642938032281489107768627129166515626301455908916148303897709550908960465063964439909103589510090260405999755357176192734745485132088242174128830234543382255023060574754715398130477740117577318446900537002199446750107252885350826159717437396199092979686010727298140173108301453974739730416888688968615282777197187873617292149736676416850554266212666354403623392920560288992507037504383612074682220619647855814600831227521695479342666399927510844070063705564290478202620898908688549022024271363450567013578087768830596618462432995076357034006051607054511522122739920464933748289803403023093598622343264038828675204321393977220325694841731028376153774397385842332792076673181013575266854997670238681412530892736476285400175943728927960878045968487019303824498199860171060712216208016504947065800405474572034320820928974691863985818808329239107223847635253856948664246628245667886506171239587300261698163022268544580888388320098905430935401124365122551021524630683217057812605274441332150976422918027998350570128713306695916631512348509789787304087292688536297737352345089735020647535479665580401790762254474563090602432805676738764126112805799224642161264199079054012485294431333566210699828858391246969201501954289695034267662811020251883676079623771739037470209950309045936111237900714696618670153995890659419568846828931822380844830776959809320176613969586882906886199792003673959320348464029461884474974388831377422706602305452434337748351538563772754074911322778904356635535175216230434851401616711096412616609594169961002018228002959030985393642792118394767662147236385333718792556434558409034497177050764641561415909823676089376243844376919004000374186015790741886046311030312664056228472379693049688630938680397474022679655566669226714414309133133388940949952380257453171958220486381950120491098104347581896625191551288811378666657789837032349010827171976120908333372814299121329141281969306153989584729180779191975393720825086304421352154174233589587868709235938772020947302477588170303905408899947618053717820614284711772748524757662943403042974761623447775562547484273725212661105460987022928176144330397687581082867022992891781242263082709874927687295663475978416938839529663818644510147629438255258795486314314078636733561683871330554345601723571114021098653539668745905604132252421787420399551360942953456789984191628909050573773660513296561662408684724067141234372685708327477282013166681537956955102733753462224254628322728522931549482306605869025281010792099542509063156453548499973212925446161448102701063529943552636290925296336599480702951203659258723305264470201378743078468246967866857786528067508855326047253075874794673497454519049408463551444781153896787529893391770373139351952253941632650886661020617490783463693501104376379664078095567643215856647349279961415571631763731825748152370450861335243984669577317186210236433550094002422861891806978080027202278275414824972719957086856436045507406597501226365770217107035527179033525751439129348685784330611583374612503940183787114894261593411463257371207787732372648340846398629738462407974973731171738851190534399711968856429523280665618121861526155397465814785508503853670226923518297607992820647012258353898301463513351050840834507792428715594512252982900074983155421241298087145886905260351926322755961068180464924651116493421626527913119102478667325451435705648954922286056260390563131111756693294174548321221956599689535518281945963088428707120276193176822190137840650231060319674317137074789428354037838942903701554369446098307246075988268430634140034861562811904652778019987429428850894593866348733183630208326918916103017694157379197479804477810090102601948585864302375008150493018346589003853031436603046141007261707579346144309075804443623298552882356349827174645645142898134083228529229037284893522073866969697406613022993953881261984431373980514944779144340083538634740995866623888008022350148130752756305636051032985420952411442846795025479859126058837673163166607836778850764846712731680704175804469998704423824691820158637051367113623474225585802030825722425555935877130601332039080942241481828323637552148682459426372245220340381544744549123191256049787242557296518712941790323435990198688605036750786845591240553358080853773820653304644586380807492648723099757093613123670452307761492757503820632543272687780999087308646519477645676368685806087709399112645754085089724465715420502822845827929889573736783878646506065121247752362854769299946277296558985817678732662518183497551580295473193659329836096457938784080316291877279824210665942070722182407135306982204148475490298369165029306001268821532525838988517043381351466825532124411738894329587523227519907971556634724697632609060167970932961026363718541237763170617090136590312718342968724498146224883474735743048219473108723609674990865328424425277961154476465292828736818532792696322007966366395403606234938139369626166314384066973049018333142774232418484619743921126611499773094865091221954247905578225811278270943030240884997712162660661880821545985932738615062548852162506170658862159429947933021858496335776497048078365450417614273717953053067627680882470818418568334789947772774527332127206577803435326867490165153707493215811130832492948017132922904187683374275789749111946572055736110646742797969552923706414386733842240890617443934530067956199763330530785458727263377268227267924402826611839760323103055308507917048929276351670775053803177892037939056303511145117633687800565442978671749998232396203862415082785518416571029145526123882347437546046920941887965515974991225258709112450526777294957590288464930705830725152218570700547096000658885083817901060296209436647014609800744047315130670373197232715786960203164696588047254819837622246686745919153772324014324241603468683402714806667569171635514432418993802985863021522415248652626502142865664769427286365996632077729872198148074780552161401062861072636167963673288146048968774828280579548104613419382143405951612570278130710783380537262820168041327782507246005071235086769821770901820675530110540530414499182685067326151755561653573947761465808342281979739541633103476225233053010593172489917453447503765655693307552469282945658557402002301323246497749534552163272247095559940391581386968427680999864583758271112085180019765508206522347127885865642553985569333519368880676583073456845685489701277555919871807903164216290268801765202823543608759942281316680035855530605997570379707409354578661495050796608652017598230332476212783326071206261013210112538473022252828603017950938279711839543221623765968786100665545991060148566891100846000520794947754105740265360915580901971655826676240037365741593087329293168811627990249444890413244102752957749994566975124792864236049965007611441348307439607171738393810812353048880754160958414878940208553270147964894450279168100514146708390919118639724301046755438214665986461301527445538010811107836304777396312123919426560331513962696680220922046857733075864218460311552090043736940455456533894762801462644395772752963059844657838120590221831663954013605314929300811480531885458202964267518844834346263602004802162284331862749086892892666695580337218517639349944973327560809296183549257017103713396031928728051867562148519306575549287109281848495305912619059119022905703643045709321018717757087500124182479840158514588633428445247811622096944094359562392853225545089562116232596694587744794623424010189199505871755646578933610981478798722623278640124681034879967097376106725993375341195632608146990636939362094522110059767297461965337997787522453812464466753971357755938767064494496611689145553203625436240939405094738132416802096690096237923384983042662863962689298318290437956681367073841492436158903191345740594856533308946856609410046976626923222445378913846462733839747043054122458686099871346588285346814547281783677791080546371261086891992521115319024935309474171581607000816597112671782093296119056900381049163623821407841893042482942775748346554492050747916779915531821317515968006382012394605531170530191578757113766560583652246689526433362062244247705629565048774556837034777850492674706344342678101780598322697224788695451640308789895377098010122837216464438555238587895879222141292204205300375004729802694220809471644293154259052072462690987946548653908350286381000557744526126537709964657813156162895773718355421510730819335702326311194663034675806617475747262735066483488967460838153218886641479433461317402967400229538772011922419065596193204100975241693689822024839637093885693558847104548537247924160537248368165830966148045389650803495246537667822394586646210973000021494098793768967160237100558635489357294226961982808699967868264762595177275087436167153524077164107751263190487761500311752082731922645873365336674085430893286808881209963091672027164126243006300057286743905758270186575041289622807617657504560143615396022058412605797269488660322263807948781005847757075246844320187934190468438868694751143382249448202142776450164908377771091625244040584544557358271285797724740619001547059495000809598790143073705536789289386395898519529547470904767578947116928651470663871726186402533439836547009346022014142426337885193508432176376957688396985326867654549702238012349881229768955452987728687801282698490784381971572891850666293238099424815086846657798868163299416147123438949822983744989593448477981835972393936838993374032662490453512951907132609814532605724575026396629977896353893501246281948682566173915922133225742220421047022197784568527797534161437259688397189910472578355050281774493354663987157649573239284856862789883554778094896229587116558141973544377158463406808119495265169187624633719074469880778674693921536033782843496277785540553240959447095889608090742057453071497209956104564820622519433095842938398671651037193734894391397994677361864441694576205894302971123110373383078946208560309889098474030381595826198039506653592998654313432067322624762861920441195848215891907485572880696497205661107262502299167557918584422677411820224534154014791191779885727550056174338117432880542723184257479556393574793998343021514263619883627986431736101248687368841187938320062226775526834231601918238417807084121681323509023035496396870068827842476349071645055957235040854169123878204688051687660107097858296705651467563812977255954017178866327844064080984889803836459676171740617405347137824554761421529436261585993789293844724008152428269572792204722414434832384856976900303684805181350079387075704208994460499720081796925062293756138157143224912772242781624026337788783917286337272480131007041224245985223203547605738555328184903936415963759670802182105961301708451578623937215346645719754089152578668362224948235415400357437609887487005597996420200344276818777719156204187837397020802658407439481775198379503956327303395787837445384097391249335315434543237295827113788813408164745343677300212467297696105763042929915533296505907430235146653876498261749954075415317110111840332796102724152797210975372444673015351244708661697467106690895121331260923594915740887522566797130209907097666668293106265541355977198587930561683624502027414620484767110905417228416244016664181990534136243798091095306014661240853663282831297374217411568648051932067249791922446901324570559464703089472763154149901056585381488534577451497625553653976453813335084773131785560764964997564409364873491198627172363656183000911515120010691704006479322115118909599060393787452813584885867166212301019571910548179696815239184558949285361797572534256233929409248058151095129428849891068515517415543554459850083536956751413581423533107365985449827343566485764828517334687475649160477416414895291681061018784087596911876139391731046345663726421171607004198073312268257193393111950698381090475841555536406670820659365764999923119601209927544319173936846701776430269888484428818206950660787770384848868531924410189365649116675429141434131551700847446718745925544857639714060196724208525972737564964479130377626672626679710802803595128129715683037048004137905483593260083994320640402505458519072768293596696502575265536530516250770616975402499240576141141654551518787792140495654134729206611320638000886657053325800385496340131758212560522579068261292203360076355249619810627847894968439994872349722254680938409035527061748139550849203330766573592584063892775870800806009612338079377141090753201950469797740282468106579095861953388131766620201981541349772331927787132378141066742930088906405565917124864115991616588647910401436719723694015264743419602748608553546351205491534636080987598729327061711160305320000290823818960548229198212970744331696798901775178684961682850377405378510338549426664809125206094971744235794568319785902737889004605326683686764011569687129081271067740486833129118570365610592385729405211324995972556114777038878018352376371760898826614973680689817257691205359037402349431355027767877679051354504631109187073390513755919521106957781709094120046349453721617458924345282025027019328077205109080710528294279790468100993584863003613846256259706082453361474218408323510626669044502617421413588647645362452554974199960462857913447310533748258102936300257980639346823707062971941868071423975232706330248553780057120548214784670260898885509283477093350031785772229110371748665540483254109476221769596270102249247314641557138155745351336440481581707749947025508822454357267697150796960656629994249432513156454600031296195291923426300919761900439601224411510540408716091978779029437061549014039516725298632510466643779934248205256938471683587709827450119032611079736797921136261899270962414373730065363992237372805119919616852389055073556880641273709480027806898958610498878808074476226964047017882639365350247184218393084475003138564970854248363176146966879362576969104854510439844761876384859880649387695866460299395818871701337691304360302449574609974908820748258672527719256325735494535216454274516383819005500919693639949936226122481561299667210592548960674625734979595885965995897447879794580167587200391020832334046988263835559823809413809206570549654901226919445988466470166977606193625611784786132522950173486842725981504357844243091889743213290296675401708177600522283629231818061058900963565632930364160583569253456580121504968272064113999892679602550428138245886725424353694011990363058667036075332055285643214584403326335565273068685397576411166078053588173272751204628514214422629683530163722346277688114101915647650230985213340021938192916016007339896966693998813527555172248878779981288704243947581413416447824347469906759921329016416679578828686310935009406002169636057409332058499874489212675279133327899811071587394582008453852559145942419908423065965902088849582455801329301879052128549486543794281696277336076791996296610663679917595249406663984702985826468197701121212455758712519884592691238046043396875459297235196103617961762257556357533711981315472206045201406713102987860193647708793149233933790595850842783913272996783040690914207946675753711701988180163703666286646133577525932611493620929662679542371884685965827739431156301024612171288347763289740676396333656048566826270207466872655686914547238354615746776052847610419283862952979078561845756132348850875112455199750014695504136332690300916613424823047931526922354632004390454921202260066594193448732179110482908261912309125880211355221688253194612019924724960802056131787016487424871730055568318268969914731104024034247804822572112467447112643146997007235660060594935927486113929895701620890801440893789448959805341803636885763510397140972293286222188650727666992468100727787840768695676621760000607083783644354006055363559432556514177307380223397897899896881803284132888959393551841268536745266566110547345669462778269099357358969914097271533253745363117907784998357761868248452995894666400402648009184226352477943531459862084519089217822573477747964301626255382529025387000383354492655905481904918746768241530483053889578438261169345949364987314589138362844040296802494419315025925929932400411915189353469775622515998683245091457566126738426265521621106107116726511467605791770358813642716364996990096746600302947790479395671845001845070907139412579734559599361916094497533500711351335820157740985374209235432020688787571690073590167837557150742348797889295077007170769935137079101751772091947062635572594541060948210107224279876353609505669091414083459518217192024341380985295219384374370491315379052626657204754680311014404927708362036795453757973462287853328657339625234918034058307645434918374093912906865490625132223217529223895048148496841606779881965313787041093842501097667133585800171758032652144769887192690865216294049023563984499380081505797934953498467528136884460462862895668632596588938446288694701326783383573170168940190561156930146816709717612874736559783749819920030223967484723038220118369967940652822177418281079516858140099590678010407362007278828684857771801438497186622301806768723384159146900559135707430499739286820852951634445545903768387475243081347745091295087821051982317340991688469201333179048106855680863777917244966538996107758221239133424752978765012786074081647997268974057693415903304543630388671710451151225840251350671420894725707305425207758095841698708457539290867642567208445328158074298919755003439281101120212405654220741404867196642600448880128742613548175973198341416996800738238703187715397045014392803090663380936441948786583258383207066480933404132802496167778018177976873530477940295092427145200697029028900830277058893091621432741518104040763098983765433346389900436972995693454541855333892522733378399893006885500000076574601272539252953765696512529264748162964009818562546863183585811892027233263378181814427636066314503003929464105732160392713506120756480679230576035673134630825356519428083341561806206799788231651177713231543706821328155028007009869905120634948825626668503852335418936210803508842198314117626021766101216883318181741899265981293116547178421767587680475393733655902454558036356859511779020030470291888956578462243438580996103627762640180819814094815718107922698014478938326063522421792484706500376602576534697787329026507961569161234786978178440235889519713857148909092985488357924497953607095469598080274675673952127475311743046551557401574900814104934446474614746351671693167146374831725541271147154664495842019099078436632672516776979351000443447571768044988615603467468130129806665751755711825207738800614225416794073768604123590472194618026015355963910017311758783025171026887723936397170749106981625025237480106232597528396346169125479691083673830313639035039200049695701596996862321900106600629759108239063508827023649798733819743024530576342472009933844700019235860736443941769897734310674360168832806694327761212357933116945983611869973632178016041251938201390094811099649691255395701226931265491498133797608131964843364634713182619396815543304489855241645564578281058357217247120887102430844597592954122555129020878088898787701232929355104535523517178804454212913549043923500061483251996788434402917459151659656002048700180924807594824315329896692565723899884395434347542165881943903906801418613265924393380486117969202053474970289866177883890631127188498327936423257810819048627032192498108661280379353478526992538624811157302584833622958220040323909925045588392615450478823402915689058092923707287213171347101530362240995985662292112446586892006715302488360172562102550333206790291050369686803682760606045873580097458035276612329809612576597424973711768726104938487693455110497130844389651660686531052150102977620062618971318320201176136915749520470502003706097269208972607710668427070685631075005746909883783736654658606798367013212621503038792600316331116816013826119165114902513833965691842195003722860107007032693185778989314615462102025226142516654578720250256447290876494780048957351622777342849528553837157867967461017040821728569109614796566592621743222398009707314587599319193929729069163945188505530098026773298924209165136464445367479356840224820018462569679104286131897805411978007744272926308293080331769501731256652141879306831226097265152863768621131512407622491539136575881012262269566664394857428484598552025502400779361287066896335466719492421013447734349209331878836185265020751521449190650649435531023792295275278878721224045641191783245870960635541846644129044046290479020297138227785233309766221673159570806499225267929569582769540967183634372285158223401547965686138718266480872931065627929765665671118483342494418503638297722687133238740428742685008084072717717776754550035513978967912553452865605900764254853541010073217588536616022003869432060472312300339719459397560016461432281878968296267019479096448990193836723446011224776364999225127466272045676434517856408952605572942064611781311317951464855285339372203755265285024867579707187911705201102482970174667394157081746244129302279269194690402716959318770219514638457984165060477111546972778426764145927854525107955582716730504498710136029449725532095922029037360059951756624929488943308341725252276248718558261755822243084369330004183236091175228886293633258383981793206064727272880240573814792407012595799716221926120925788046156509174442870767092106104143097374968239687989003178305467687869635178567972331718388225932522918420217076335763214963170902156185490082864500813030585550190430560556502340521767594533617338808862880578030601083875807662689283990117157877895422531516432639524086109416758479849862879217091751494242311493777405251162484068188687436826971144506404359930803538282872303496100238076230714280508263156336661071886745632665744181023088801504609606190450779855893237833083472197986961831170308308746150822934488562980249389196468272112488703956999958450631662507001412405694794732863623237447830962063980859452688707126729212981141975012407515818324860151789220654442403272439711242595010130498681830595595899856965930018166935811358905070953367371110163003753373345818846997154867748443056589865663721162704517603548036315297555128615081662912650932568583803958647268471943939731100779570716707295621012242883161925289226195238649306158708699211957162229622226155000207201049878932973527749196169627875119314591954307092705487453796171855244145141095526371272662215470850824443570868164465560447242909138701752495377690500910818053573433654982651138912505998098350212777044927520906670667979872607024901472123056827322298593655176691948529005333069393631080772313316663471447584680625121899947481975878540965263009771488250786519993420435673454436952476238763104511785210453134597464731641517192830875961687873021358983343048397960332901631308007875316483946145977132566604978690073036564396874026433479088202877657034648012345606882737445408149114298947341463485209329760512094282890653123425551742333249707310947341668626727776237431019954515509494090699926850270149089342992149759261550792919751762335521787209727466804631492988323709779177428376897677595203434586004110442688865516571728681985143952064980104150478288642454490693280107294650923934376228832564100422346371404209567852154771530166851567072547806177357871963116544861499025067311856693510693693332082118572226248586522092901632707330037912402067116745808580119755110359121255885867066161542696379653859690282741162734868862204051414882514731110438428679407706308062559871115408418332863479189855823075202980920881798697081025853026823310344085362665535235537923638593739605508068321209054643754584563551759116460265781239643406106682355433262299863278597349243818086831320237470930966602718627551189224858859628257842745562401401140522792678804341569661281199898580904565396699062791320819404465246950805722912066686479908282800220128541329143737693018163884212987387427852899561281751099364256017964837698713997116463978491440316439106347115111287993607356958553210327334419907978343198384434092900386670091300520701766808765743731317377173468274056791349616364417317177746523087462181589042104939772688918670269048999608842543449600468542623620477106535824835188753237281682266321704316934166628463157508017456585845898673112013085659905412486457994252991778703021189704452973262987009548215002883840188722700382251589413178552321680046299811429014750787060472043633860422157986589871905868651294822829238566410532175780477902380124692982542665533107696471033469269387002190652546323169244480908612315969246759569268321414670077977645940868628494653774777313261847834141216090528181297955791885222719922410927202774864607856449085677695174352251897787686870994180541892833630070462764617674744124624692324253303095524210574483761217290923441430809541239589143518584314328189056491239958466986749579902966976566243321612399100501488145628480731747330297482988606935976880281881300498378922874206721997935544810014767175122126325900808053203041473599481430307553557642944232827606250603204912512363447560062315120715513156450899719494567203133877910558999038576850581443412774986194219694650014636281352669749014063543210339488953161039809143967365397443323409946451143981320191221687095083022662005589454639107561859040467354401786913621147779704666742031634036568899119524277097368840209831809369701743391605944512885432879168923138152398476322439525318461387689180660703719652552372205816043549488185083660743667179515579366011504187104960827993349668851164926698195218196311498693772607859528505986125266725900667071379231344208832065189972661564712273781204244704666836396883661865664153626187871525346943015564096374466545596540731765116683206894389869786910019988658619026694716411112387591535982401285078578052496761574774822090103822958575491019358113261218233664201213034074185417210320411525475761803361790657854363598071395855752507345052024229838451971955469941268764966171548832484796853291707817094715058974811393884218114592715378378849738484706823655303081129950816700362508832443548623452414711699890743231024643864540594809969795852301377549335755017986706797865558686249830391471744188082289094421680089386302155677798906075559289645675166942362348308421440411102542822528065336861807816324851374693160924142946006210482213431569066952322811210057162817014089845500805649864971069954735214625763070118260862085470042174360547044211452882164910373012095679540041313076758646587521434953989065808356242752810966380512165255474238264582756572924718464082337999689193804917942080690198960744385098969747604315802825800716414827575598023142903993330908984068032704388356047537870459131033087773560126464330750764410321292451799841889878634974510465360055496869722219870307843771292421413289974248661312255188058463575995270402723954987778059254040649398432874526447716703029058788084877735149789304592272788915014190584791475176393305398079931898824712464501458582632112941376667903211121753589413385025663846197069528092249399961675898917430855502605917942158540056486224040017688713608592527990214464609012201070949031068486717517844120762231927286542461758630895288857521405660092876956180993223934020613374838394446197849750848013441340785470428428329139306129543784794807014437502560164055858420304314902180066969826983240026613460867776983891650125079441444039982249088064967891340650332266465540847027621537796538514820965674753565575459194570814700841918780552412684657009131230393577209514186215103570063521926236763168152277856820630644543878590059403454933197040372174834621260830899203038096540362308750625483480457600633703887643081933774625757438238236980444655785623485839366884117721922383090333960217912367162913887937813770391942141629233542397272202293063522203216885368938130858370871487587712705396627750040720179953468507404472846487906159375500542286221202639083537027074427102962184052042341540761352829948023012941183910245754649693084228161508921020885922699460611016448575854868046110710697347192911710704714969757526630397229390717079730221197534700693720894411910098533438675880528878301103565737040599818366480344831621147442891274117275913349629043597913856082891140088396818301084229571984092858883233713643161511615516717642591515707858146127504963555573729301766289604941801816571515840929573212475856782457965344424888529419532562027426209918378700500602520616047352990048292837601763995688264247898418066806596553790689514719388634329528064924879625206446887502149692414894413861449315976355759665272373457118837841528918120823697478347367902951578971799409386268556319339996199771896312230997796469380670583590943695292198325371897979432596562633480789320071312440465871614987334283132508111245892345948807180594291728295084110737229654895571889811432576135207641809805921410318077554683451402246756021148636633051501564837913403636529660370123177353632313023398569668093859205503764761583558701792368173592699258922873525277700283435275574443461315191344367019211562185472398144541913212541943395150939476686103138058580782225590769987512775692236393014822170982540331661881276684670087259310306760260923758435293100427484175062156223258993607404620385396680564675322693248245016894805448747192000401119280249269049020167234037168030015561663529759094042931357925603408131253987013094361265806062498358009362220770464174704887610279185563753773747640657229090642894051984181260434544928846807756358601519588742829892712498217299938286173135909611665930230575667044515838249941578833715302972445359566868548467098898492952174808996647911479827497273172199135354313614152503733673447832471338215278788777508154595059820465048003459750244706605208649899751790813363607630236202292314295895513059447957174460745881462327694154184757978455119406406583131185453857570006735059985916883497589447175366002287489337627790828659180799357822033196799920129671823028190015215300842656163426331621390319204423835972234766399793791695075537238215609433317157953491662423783052608985108394430928258017286717379228023276433153295787100265128813876007878712053557412964476247055030627436838981413423193514014875352811958583333060739989311372490717913175408313580550923588551055495287451468194610772064824421411793914986337717367959948514487375580373635183262206514934433931270906062228940061036926329247640454928656302245459659994984032825169951437014583533497769049612875998419422731728170595245003096606474627138552923869147641034337781150892344230316455632372951947237410365941861990014565071716297968471889215415875639154213687096036301912994825825471309820361722953516815029691067355986149980983943482920191199468386856732494917118388998543583096938028725961657491845699870487016922076020356137760756853231819185723942656887912983903056557627638893262647104125400332125414631353426477708240872257121108622622069689694982809118435894320964642401329152527922525621739710884849283447384791994136692431451249467261986169603590023425374448135722777004760216274120259691109091461165256985113560973517098379966254763729336354997588394542563052806463597432834821608963462494752035830815484408019146784872989783633381910311910065701964986705478168719049296712985241154186058679263355783635215258172301336287595877452841465724290565990341396716123323309134816284448275801573030147062789007160365742694117299481100138011748270525027573401710949513580606587477782529743041283144306744191083515222137500147324642240460754936821787208884545895553841542912321576694505095238070433241376031001507791006281973908045257640808308331924328211547343959469845323776793878636035580355783621864730159658223049411939591997113079448102526712215968511728381449290231855973996390006909484332545657357144068651766710133448437800380618895947724839874093069166832527064786130478384028152944433716435541806042382250360304223084944224112429010973502373093986018854956907205112463950810601573079306996486417674571626555248723670302167911892230275996751489615539260739427331583538110258462404918905879156413961206239654840622427096415114270709202813754738492835626798748393726485653228053469166807684368598538634367177549926959454911730519958149241117156270858582312546607851260574625569847112898789957250299701971253820536817357480366555888329056325676770389484691909637041962280602117502761605573826777211548453381218824159933673885170442559195750116222562526904394461616990369004972190053060082578809901402332532209493095395201390313562137317014134113347787395809918625686930648345225497689590110436168613817134847658820595007702920970046717106468564430695551626882122072819013421076800664550224240625104169068491381372765244650438002975996036246596340039907432360761525854273936183548011340389723801985752010206240806241526178788448059581593765227794168261566666657439365160002052901323947083227567284236288283827994261460835675425329437964955531702912496326339793495007367318601825972296074388612930661642069167800631884911062204114018651192427912002585284335082175327697079214687687420516592904960224481531015137123944922933939006714348595568096034790916918075376233743301157372331130020355316470177077290553034330879913967690138139324018516228731990283058308202812757482127692591402465878969716042596499348824397311035634152038995442613076538066379997899382878106336048447588618212175706193969570010265055765393402929847889280621413364015750185872996278702185086298138054715951502357198916864995055622873856366096493067433090419204947884368091073133536134271855058170289066137861806247933763286178430134761144851516389642946367546192823984030995590548651685512980410950031467377705344418828169292658112679518465634957103160317970569888265295075616366070813691157801726817507894254197682688107831699250328831194427370705692186211703303592661492669151067456944967921285117523385710862301620938578515249045437034489288661357948704351806662928880583253795823331515411600897606021298329731430985950878034751925925029462991611752602161711643149271702957559091312716418001329797286214193709554300731944115298967412520766464874172329780186383466553111995271402468562628617370554376728246719089119965401278468886996354622714600377676825195974705602277639517728473218184763973530479530749447925087398365866339546004828101478039836438906257498538818447610444119000011883281675516988493330661969075789861078936269619884781296306941464301879780767975759195907311430330328656592992779601614210782671449464579784740827946508823088205378591426546542776778883057523266440148362236095757611295446974901272829337276791253401559541652667965521200073102920887119727598429490364432186238268929580076323629500609960771177480894596639481911026785103381332011090660952014758547575486172783699961522329972736862848810830892859534631907275019872929123438892536531950218405897749324122711194607682569534946246722916630820149941628316239776336558843175246422411821118733535569346494358448552457539767271474512749340146649079381804970379491280875202623313697651529381159709825812535380305379587061493892763580705597461849837150642440245207963165194430974792187291627414512423517543045760852776042480903462372976310177920153259972228540406520202586465773648647246180422820185355332074890911301566783112495425639669071342240391449852691168928356619359742852293422028358516426446228500705396660859839037617382667202205583345042282729829497334444087943921859575186130736239392507210929322963527428072154776991982487492045572297450566378248377739563969042087503888477438325239585934307514815398836775527324506144320688882016587820853204960513327590372929996928051577565240430814395586307729270925028853254341631742754463979017931720203846787980620859262221101102279504984523442065867744272183751017682751849703894974598436116757633392130446221258537213325989632703207301462121478553201454752936710303563037379361373579414911302126873632400472727227242752815309875063798948974639868360708172958191508378847103701303301499444316283191092170119726282800785191662130271706919842613692891209190642935229628915270090038854279217121660906949580634240110804950684015793093583589899924109571981514750368112144658145130928472939828537352691883623679043901573619591289824170421371527575830942328284371723616560756283311898050885839952538774532304280142859635738338474502930815214973167495037905290052235929342502531221166456873664466750118003492207134716345415859843690810970064460043511694569789666186394970832779056013483094876316329127305589111638682445053495633684261257794191378890718442221598924208254875899356309774693350014058297999545113785156691125698001251029040354380524072204821755078925814718172117148712523723272296162467862360406176966432543168781807692444851897437200988323747327035634583011148650033643557879358681494563965313643794592377512931701545240426322678499426309631268747601632552836743004273874610153764720052950301122730906472700177299302595669844647334804922707593220931588974517955840310831813417538829476544021010910481848896228031162546619098706462144401850353486935433589436042560247023018216147372923872239011410832523138629138501110364288898203636785077042224096041819821183670171296988637561449945717823903661126139824014173176423484798410443963748294208366874533223732549130324116795472281303559978763617888344647246399214730173419638035991375227453520837152461022175630850607927778142125194885571684496042746408449975360205750019365879644071527649873990238795475621638573978468137593754976417637931295269130510581740812226102777798863374512846473763428680030171709318676503278360118276059211866521178583194974975018191364888048705997105951697112205069360497795926373873565137269738775202356822223904226872262921218564900398305927356218726757288216233193024592201198152238819624103487932599756981059887396089545693667771570007092546626524030955903435627391142056360784012118093057698370413075414146600797979180068010608200930964165120359975448883622880755634173993752446083391101866419150949341490333599622039591247907220492359168870613412563310816965951531875007217795143845482596322579369823849901011268623031589983713525747144275663723604529460421014849236261620305370572555996979486897336329464336776106166026838611385519039528221947946012079493169323689426393861538646400911427466875806257009606312612549139275056829954998185734321887709716451116676923935949459813339478014966270517821767192682683056317807579443195884140903020671490798782211124593773807309168948232993924032184087630045551054325884379542425716017037407716511583207145693655715324454649381352760524697120382997386853950723560212677847777926177067710849229261194077005201733900608795730050991214245812626403518355581902824448309613333313743006276242829032147761339454185576179892677593571636986878886049982433994560525866064244524829051311098766867531683297784331797193899993948968141509403495893236795420960047471379223728071690386055312525936697994308188651012394529527373516597959748763554956827687667788635898831210142392102515951518700767824932229062006088896778147998675901474189236842877265498012205076320171312778806814874334797167806649067553243416599924526394070777586006343432412180960478680837283318747545325945066551051522971008981889922701149338271495922794889094725717843034138904534476221090572972827811283627171620007569864191335197305807815349165954083568919390281604173711569446629099778777047808209210987756167423716473754188591633718577864701265915193374744705480600793407289908017708912093978746750358584741957344146719390882964159114924072184443976642532256316972829671064186972755273975780949995021896908702714955908996986199722678847151664010979475891244273280758732804892593027985321848270209031247219383209841291870852812960254937307084592875225863087626370923921127497848593505434347255948034385285220835290247048704322127837396100418020359376444295751268039082313435320617306383726738796911613566477114249890767435211692469214999147854673423607073173776068517023092124588197666424535678084033231132043463070375049403899260133651910734278100973913170370685927012666159968875827112410660921533422177775886203235580340691735579303227823568842791768191613671008962752634802741501834654431611445947773320349243102691080975065210573302977533151384254884216304058295686425097740848459431781750966445303621926068342686455993791338768554800535633913204965863880316969135358872503021861743733780579263873810724528436400640787591248704718874797939116286915008712546123816307920558553682217048650230363416212748482594695061138432275432512887934699738121356389831793189235629255884317156545381628698353844157226720203366384742839676077693717081849853209283311466446003219061514098640650765311179606322506826194148950169860750947789378387802988719565434495752695995473190167425119861738326468965890491986414765958659258610083881516073958874112382102544287890806573117555341985643920379340908424886897658372133355927325323032410544136247041697563086272558853898188778331252494178085775987787013117962006984100740882954144600920056321493935908644810626565043533926229914781744161194281498079371476972650145479608834191975011127536508827735579353977774639281465883418818727575987489694045741755019146769972045921446534351287340413593835208257815195983797116306532788208741987823632396572435213275681683666711272580679892673629209664345925111620249229858921571328425823451877954054290699591142671561119755867975118710348870228888190358258275993006228998245347260651232400345409661001532144296550539366953770593723345447717796561446964417556749651177103846476016233884106351337480182714903528942496563113283245004450103772015077714261155376717782630187628607553348780614072875729800031404020378486883846001432789586131218826926790590917640086499837452592688788132915999698483431692023819664991947390683849570338226365420623738858162268494981772115034975749238903603986044045614559651935340892005136707037814360592558822445533814828050045254516531627168064586609249063685230273347706038240596573329436828756674367696488786854740213785388676216586065632792851768369656452006256546266150849374928896020910194345977563698423108683950362601938458520127097888630807496542611043394558094715133066884183451056369051724540372861402657074266339155643546906109273155484566419366552030705026574758340497794900244124506850547818381652017801687491818470554129607730095824473887153314763126167764113272428094913373827990434834507265292671555892264318534180817203451618173933475053092931634194711956098133331409138962406827750160076776892672589741798341564553179025052217428706165242736846151642215139845998948381644346139379335572385045288330220645522605710562059234080550919890189639445415513518992463364884955142841541339015837015765725618292800513596674143160654353102232397982439860512278562638878485150663389432971248674115025046834220633240726346623918587163214255926319645001140697658803344665956246089497135100843867672043864023217941550915292412103134258195309929540850833265257210028348302134438727774691267861653479668110518261075360166851545834191820501013806704067920710093735696672891504429327079042133824626064213852713531874604489820984921190810877093463902980741423017425267970586277110505116115263503358049101205375087894707096185681978174929924037937232405825769905781428782904526373377584040674612244452285195308029196238022353644748484991129365034283080047265024710404527849082290059076148008133489614215350220893752750615764565493575006149117308268777082271850905748778463532221033016051887101219942087273528510349853841692913351107297419203816415196941580396610444615468024363033732583285017278269296674791602158901367589927687813072258030706267736784556910641595775228658614099713787381366712144053170439327444705136748228023719550356415360254838218429278323429611439395031278604208607332566236379746064375827420321124606596773061175918606880017455645824944368553757524507537019861310784119794753740668350029706704317250784221621326509409947627403786021196970729638467315894243318581690274975661250422276410802958184158988701413541717875309274787822730651133198262997491890451896656390330952459829425622554482500175472979049826247422827200487572623307028164582196827692579362693192408954602677502344228929569717244371946787088643642394492827270169196260134278350169557976742183706360244328904472061537441927726357254611997154800319727816732680770843115353048540479709219167484128243061880776905003934127601622387376658492809248002636941721820006135155702965971374735922010887936239946645758027371576965115868559685187861917462081216460016217995387940143960614610618055569933972736719901217224959111411742261277754490636465266663699776296829238324114152569138823837611030341709226583591486889775498666256350447413189488066283487440953268555807945815483965514525906200304352879304880642269007193944652511105342654799361612499360714146003832472106139684789952974447563873781534998784611624911233065601429942913105948750122327834163223011522013783308531774012434645167128707642315348158325049897931631524449798397328867445736623701915180358474220791494735207386656540198295990290173169871497082649695321004005376226929385174992129094838310617626595875681507754769705662743572125099178291261201565351031528697995733622633062560951952503980847931585263034490581826125456468253081202959324715772710079519634625775653345162301044053370228808903267706242905127510979043854179877634071116925460894714142384302751276787559031027063774731495839930623364911298523691153318062885839612278736556045796603203290681870562355685706629282636645197445899398913885036163127958695334139053713360621490010869445713046511720975422195371125384014836575222529156788851404390245266468183978167753493650403706234305441926355052506492546560005103667419300482188432607867652562965859274389243536951198330073845466584727127083585633976697856295614122174640013421049392238209488115991346069327021893205937873964232620413695139576735695549491197181413988395622117162759928679769700589785677011684853738259580053319604134862090179935966220176723168913208580431759984441875710345324347677524773751898467737313098728642792957779827973397054862814921739275187981617578628257065161167290619485863803437889052660058289393839958972285982486292263506083483813271510693363671696754870919995101884476988743329060845457452190355370719377052453612672517242845617099183624293196522711344856963191780281468227634089829876548679540252202000474550662134090049024356277730639783743913660922606630438766567026692692106292991793558161247191957842546530225234649893690184213503960973677046766764483950539888166529205482756138733488838729170515562712526475459170388846962892225946578210155231423582574130546000448989711267928290107400882881429036239351040671845323328724417018094878975561341556643532604984596395304815287938636842354024214675363646754254643606627467104020157782952074783347379205207186187198238441152448581210498661031301742134746798390073738514836325303867755201342357541537620046495240218862133966886307819629793394385917859976315281788832564935805081633563460611998657876631421564574091214353138869457097014351619863338951354984322108595298670338387542861754834604804373220099127342768872928617166864576713112465772532478923479718734887077950577195686796751215068339549272402541759014616719685757089816414629366163872906814120269996700196166441686033979203807581933424561768378513537585921897189764567810075844807249299546708341818692977949174430639782499806575188739135363541930502504189440604925118802055996016339505856301439749478893532462797983265133871807518781413339073806519751486692458194089835351056476339269093721779675617171669322769482969450296946607597869605348649534217577283338450324755171194604096022491893645474944581034694124151878488610984267754542542660723522150981442741969110355879966776895528244104808071771265930785949949606123610339611104149629171789781405874853390015181552173367597582418565232155183697322422802679653161343038288107134775662795593332031115529821518906322386782856818332290664016468243298677550717604833663946425976851096158061846179018688562570143009954914671224148321763664557573567105443430904413831885285247082374324555904342621911803370882123705353307241231004426226830900578254655033631531018209770799970712642307028482428934752375434809957682508931140352669806664282210219991692077271501541535575619744350437456935815817549851024026714477970315326174333373565674655698253286625383307020094694657117604062686431304696745532273934803416604546471422024639190602955009082578647516379931748378386607059830166979279638461809055242798453836963581882401247614956258929822888187643645767078157049329703497578133603651141828208789142753342292396147026694603215124561831566344147834798256396114465718407476347536988289905957518566999997550972560610365329467404712257319019798772750113209817738437159561783788353628244356706473441650945316499115240436734857516626246131122115280933059570104971632910755318382889227814475101963183691973248642830212442146350755554273948877124204923478872159556062543556822448630681501576241527452924681780261375693770735669621980236993233070763268918974884001187923319567758777948178519374623047510970440715166342558894029007287156792512144866012726095189059021222595280408341408009734353433473757372618069951797083857101591587901784871580764872379903333868683846970412808155265740290449651433890754114139178224823421086684885614357334659851974067952736377242176676384100256789868871872281900559178220497993060450028933697886839194595202799478724162066004304111177650164621791703977096272547704425846298439932726167762654768713509083278839632843522489078262621044432612381579068797970726762736554060582609475038940632353731229808480156257103703623716489344015855258740106750162716778973842055713087536187159187789697177930961274472177504558331130561396325996958845180333310303950351511003935518942287849003557723337049381316039986004692108301921622204324596055731783042899048127205370967247682949037791768226601223980812084356210418277561529709559709278013461536656550311899426998726192127472697411159602300101864122737484189338387157872916482992606307327820807635543920085595754329201122395803223131323679607964245785894750956766266600309906519026307697479044652916089098814933623360554842533782800350708781398881974500677871808466384564257016243399688328041080100975208385419549273123856746923999506009480890717183293402432238858005088256176027650799896855124718228517530685818633942840042169232414898407693799776050391190021294504247893540255854880644287057233645567793972831095528933794762005927732159788256579691013489941921712464833989705608449986827786652487757761558996893885539158463905112333493131537910939186075891058163982658815637219875431230343463546902413552667845661198146741020442953363838340175566782260222697270319683442051571876581023655764162056924272515072433606760603243556098531571581243168701123433764805423332122895213905109413848132896602720792111819535678341280782455903387599581044726319651756232181772046721643430202557588645442320414615793149330289410328128678474485881927127418807649386265014500833282736106789827419567397730971021030819884493108722423999322623166176711400933022712088512810826516998097265140004592622276893362739726749909511113031886034441660744543653784152109202116562005674303974655214290574136230583543914693563892165073519603260791403161013923276712901131035613483747287329372497994335200378793823234611146967762151121158104270408977330407954659127623317428204217896013432505441217141945575623405510913282877457526717101350220177875730796002581775483508163266257347411939871960004821783294103020025773123459234006299333073390207943059159365370263455782267566184322853439434031956376037484260208146518033797653240689855337102321956126295741233084039893126511317955865769775831863743679592201053311729369175383869670748064839039070114126817963647681558945568976222929052634859690812868802346376535971949589881874961568697251897395702084281311804517214564168794899482942806775471160845171258822152742563443241824452223989040114911832214633387914191991186290199820527304508972306613160343769328441696518214720684094116944158424481670614922573856837433011840872711107253527514534226833991277777703382875766218428994520109724654907702882696659836505263236599792443566625243612799153854549140713303186774949211200877085284878164619218618850887163131403408030964210836018717278973459442556701105531169126542331345722760132172656883762536027436474856354783209429937193542150041080358084848381486173236020747155491704012165704018080708474441436848916018551849446673993442992291168854083779678790257635110376828852464914805703643110173150875007240431648743100196054637375187398642304063535591722790999271920694971038108816182439354804473795100763766031967856131193090735130674134088358513796078529392539528019528734237258721090268685125021277815165937035950343840039922443793342997217718974775339118794957900354971284664551200527610523101808782189038449547094801164167023317900480079769785991615890640409764146099540145832645756823220892990257867958642750789041568655699044072402001278935969292681012249142781247915862826948225303234506031023330871051145492933376368859599238382259469821002562689188106820159167595838290822907380066308955502854244146940977206626100547220042402841547571281914910620130585204355949266110749005314563396349258535903431323192763451311004067550504556222522763171514497678424934355151793751100376130438810265312647869293824431195110785694720254520687221570105712757870867692514113758824480335519042204565508674760989548431196713956857465022802856138039699118849764751912604430249137100455975353020929056126069273568043769501185064083581351890183280947308832565591427041501700683272884625352854682170204145071725026665117660317442474109494181462638066941543997324804180825609500872791409339152195881599566688737378860282595185425346123597563144179305669094385929842589333821461223892048845282765736059565595838683417433671851505308492371413874965171288650937878525648788053093096458630835562758169863674627139383796264542232621161610927110839103549389115992252622249501777110475101489810705217553423558353642149253243910808342319505462599774183854333533854216310025105304317886807907676093221349834126048698879385949914731307233571056065980462277045113527821714974706046771492945510926201178635057624749896159702611322480491745295821770318169439017841189118864854978202104562409519934709159987148219042320987179366186748060980719038783634976334833068589083545062715117725010033392824492005618413529458778127181101475742255119583374254362223219273130101361012915952683332023674897279642599849332342394564940619132232758642950332790472752442134810893506419042193174147664445522331991243554388237742494053809201649607122258123748695401302823676802139965536068982856200706912764769904650893223924413033277747206044791189209831892860233555285016193977357135994979677357336803439612193236966289162007734233785724431537360789221484586463807422217333233510046656070064980070886270804126726176002518891105521275982593495301434184754036889720388867753170613447030321157363637756131985876614078624132433802589404509316909350840448879317724181482163058186411946676554070578905308243966764679609225006411987359890540335458130927778801303208615681790799142887114735283412697183118064639674141414459353853538312630563242659568012346618068069463966341961005693391129641730604480659241187144818527473852443130963515440704065427574896474309467564904721568594370226836505426088546172464416998418549436140670587553001726087963037776941683849642792116685922032081171918162539350557414488989615243461809036287132230756640930428216530661507370781245551163563315990360219590410835444523926896236867574645302739073903649197380614813162910706495159393513682442041493306366620420358700620646474558021230172567388437478280982955445207942807446766605680613784096313705157749895252084568873869740381042692146341377758991947218142392631370253317761902022092184269714704514049397445647383138914223908737805889839520554487441084294822537421133588990286890054546853576532673517494797255905500097648438424671018652969858363158456612269890848206284737688056313864294137672320059734630184237283671800220364460172519399402331713341815302691733031937503621703991223725777510126792766456469776906992794087087748893863747509523258616897605016021304284120421022202117079316928157363748804454884467545775447612481973690561778120820884504642430751325421851310687113151010876350360402654092147943981966244388625139391713501207646820160354676385631673022776230177515141044305887509623406477610911314131992654407117908576474427307227712250056990755271795018495860394882687023981543379763753451269948350125093093434609169052783122402021984844748637382094709876025541520066205043518984263544101854396035517620354834208716737712857368286173919792532076175919365046689716362651677682141465227957874800286611086670411378560689550702002667325383304113836563960696683086131244904094163574250430373894326171542932493664746416818518520154800373567972510450925489640143938458922566204274758193946451332119369605362776515563583776045456552599511702779297702787881070880711519651009479601734931210187809486453192154762472942511309917702873999113677616392520042056801011816475483173869641506883024711923232483142274264405314180062700440984603699815534540528843867895844964893791329309144929078493628223485794340905253268484999040007729743617415137270351059436269282779645756518176339778539746553361253039751696077756431974255918826583723687402266355046032530134782487563792704470147933351074162540877582722314642181817405062608692242204718462764338128971237495792316044782241299631492756481769818257379392977982532548453010608527375392089691052916346491360637107985643980167842805871732824928047773117747723293768093490432939877989046373483970499069821375400368117928764838749131641099198016333970567224032164926038486891751178528219768099459961070856704674073250162529012651106396446219028474104372763670923059104221582616256379243410321281455294129307089943380373809953636763167993855100462347700643729794710376720828295723853534264928023414183025091026651284642907006677434101264013560670196555062278133278204876918495805136680220802058002884501551904268860856147080337718899451815020822050590764941017017818692475717122793400558736732931687867058499189582481926213514467941031830746833060425343405935602627899936614063796480938124840896666863168474484340854833815774611199776917134196603530168242126088961431551281154396607188819341546225411124308729583820677948067604387124044084887363743884478781941868240649084315605139751759527352283871714784806500984061063966181583345887590419584607837551531655059508523303277859613300855110755803906198618616137556361139998663166101071276728091959077790076295681584796107652853225359939486147335167360332009072048964307684432525123318654690667859135998559383919534707001049334898340012325497422194196840462522284409800479603324105122077769140160331674973768694667461543979751960288123768401303181892437322739609379570914559452396924717105995754725686259899028935619497770374907415012563728347289841628612795031320466752964638666067557109588039634502322593951179551032019885064425019055453715302240959365223292313064309960530211736371164522504179151444109532984196948631456524617796847479516565093078275935425850736748505482232496469767994092927400257107592205791019416004246235049405373189435566255253592843006696902757393567365429205039404837656902269397748361741755863679539778397374724021646796434340660236047304606380259338255900423398344333268390492570769653225118743388252634600554266415335561039993808151988920574859543014851159439605457091789578022136939416916188674417730663236393586785080881024846859073528732255419407684033085834256442306274284247711356652995580606658004498733696395888182694462668267659243784518467151657928070075772423210731748774936834328853478252871024835527074645345686934178347888014962315031827189410554856015690196143660116127233934424518358237572207809840257435179318322058288221501851131948696924645797393982632958028564466857348305375080725857168693366255343759299072862446357434347951985801740531497183016931995734696485006909743846239396345391032613679458338417475940565145749079489241728811782469275045604706520149208010627968731058662489910899756233496502969733360864250116114502329432353143688761769802272070859998892721144600463564347679104120681504041617836844743819587636106026168078752687150884078046380614165784707752156683458359247462571512128611249038872506942586426932436191968816522159185547825588689412724136522448494714207367587968934049509906437928175832436807353267382422354748947793072448581626867851852801775249883208439805224204561750818554868718622098347385876451958492625887414062874093591438765717342137093178161870857909334220196572980743673849317152826214136469004441931092262506388915563791890803825964056407817199737713883177999208679033326732814467868165204998778706396100968717016400635048316173653987815263293865114231000570562131127801047057636388047444184221746490565054295266415700078665896166862752494514826176999380061590336146295404341421041676891149126837412840254183142082390359641959635406935505611336652260438180655317368650593176146047559181015822201584693501003051015686394155152466879581442465188769208077120358152576021966095238524353765980853699340858462053975938826874180094632019094604933774002716606527711870472026993925860985651210145033193008405507695438466047340426239643981459057807188961002367372466041647557862608200908401269469914659401834889800716940105787218833577087800574790040516726368474584014029170400016184697365263067442799991589428443461110539797834270818840847043153703846424154788759722401462006606453430326234407769048752310113151710655390119599738319454668185101450681200136161715113489222014136642110092569628840846075278336463819455591247544928113199190688779435256204053897856969493015142884873462612608257944432218799962287630250352068312962815599994665827586210088574712959860129123399573242086614140231503885009031711142473608134972550850236847188594547679947814182149599465623279047869730106571916624709597011670802440300780507471152708991234711369647635310711529193463398204733607828651278968083982509340602437758795848764535866483384387257450510245988200850314507800875127699648900589487857847023939242393731425701954756798080943246113661877116239294026174974044894413820835244824723880280684415197206508353575279624385884884868883876729821468455874568431558077065469010193603368179668690051213052445231009421049266055158210233636961670379060061021749712672439837708419009835193100810859449698343075898519111068112979406569866250301287029577907748741115897738656758159525788197517599017807568266880163540747204734659213951216674782888405145813370660808449044364420610899118739211689885056778020973908608949377434841946854131967831805973091938087455237705247895374722713404034532134015308220520996331541193314922234777775852244929803293668693614588088948434492486013424051036136508975506447754128100741566339718302719366074539874682862192755111235532322268578301742882591505857307393596922688938610347837859295868537485171276210997523498104537663337047252315698315277387120354676843534096607037270108976216401943811703186022274452896653085543267908995463441691551326205904478457374706554290477443732000508729130947780138325337222370268442638944477358361993990797745822370897574015864536294261502323243311138020159210509220955813308203752304980889462544532631676370647293778087615873833971926696674056780272696458626998097507181920918915175530092656091725273834292224163074995664782323888860708941360557079083087891354354057414290171924755657058269817379629593457674479879418130136943515305003600662046919761646836704891516139140059106656035542771550075507610226648061248747246570602895959501796025173384102244523688429553700133324276395366783393152679756290813446790691290261352024165460862792617812916946128177600802606652585781848111875579833325952723177957983394008472863082209814140808501414412989686449443763241534759985779307603364018800919790108819641923485917227129149691189118069262375365452354063878243787146141116827856615113118516179110705023894375937442547522528241701842419096153107359441887214973404322060571204689137449244346402195198022427296268202156663326043916087841152761763112680165454577392444018001227503366351251765495097167453822424547070048989657673536850785654810984849105474529959567659573461408303554829167153274591067036053002019613606964091599277304701037294608873486879054868306058283013821147364237371694614331643052693523442353642027984134747240637031752350246643150109664221129292180680681012571827375193577338787329297904187444698089601271026193730362610416033372829838198372698040867614342101832364242358677392558092772542242400370050431971710575903755798187141444542085389728811716554085695731180691908562043487602671966585081051427097079427053357745945692177068871567824963072931340663575917501737469729106131895650538720577097446135156387169571188338872501202930222601679496842679111620137555909878637552971563641334510912452161339909602684467372717021685590118334269547899136974726272530980056678812810326273427999461696756459593754921733337371186596514649834909197162810583125175660724330364578810650032952434459612445814293315322500842447319589463851224041753004543390908020631479303687459952734043951351550127343080045103060868286351130605864629837682763634624131746045318080183439670169927377488451578081009913133840664117839676004130774384529861031830166272026703078129817791180444160761198535651181969111849789604691843790882600809193721141276134454328282019953365684006613895291086928652556307017757311320734265628197198918879009521443467421322085358895473377860585161636650354104596978294317214344267743138333859844531186995161087512848324758211829921059438227515876185416345945610638658704019059433394375616904344727264816435342229603978404889558219897760477541911286364202938796134150670314619980359827148531236510396075681212261944334248915782897396900779468349448822871979593213234607424936388478131377164136111424075357902943701314088714041190272254708971556751426352582890303072689293233057248034295085475965067147319124463138313144156800210088698140944505889014694624409629389111104473404751302368706542841771113593802043955604359433176001677429991501996211762143262049788769943776259078342933046931706267478394497961915199977241305603432515070985163650584763059880674514757274652548704262959520808526730699705179037510424465258367297501012143285275561026559182004655843242045342485787971973276734481540252443247027916485750118999589380919313266910672892022844988292283681253074611970399093610618642932380235014516535200729237294939806404361013817952214449967802948382288303474932215285000579865780967722156631784628075383796583169000458254897141412125907627707327092596808806416201284096671817749543771210512745504468937962241471449425556518450811825902851741950467396233172347382041610346295053200470101624073988668284598592902336012929306060091627035688691622690326719489893681054173042768183792617158222732481421586927929323079667879465718322974807754923267906917198527832465620038226000297041986244826987918436316962710151673384089889646734231965642719788479378305574783885118529024000267731565767619873431589586872709583788273528698006289780185855372954532931373495543724623911109442606115773437098834897182855127402127572168196568664471425110578981657112549938921194995891616886516370411990448930622237708310715337658068701839040816418723465098078415307772804929379827388516807554360348510706335005145534427397424845142236288307053042535407707176387025307087622990701837794220737863523650946209047216145174698205914612957625104660728880228228554355214703977958557286792008229005291143482949670596947486917300413962084573784485145568519458840196590138835222261984522920466096015446588934963342561985479561913164247501553138484306543331560172687837969120734093021244706731280995086910105064361260316227680715272244539283843876043432031981108600430915353535044609070657480714324390861533515289102842499819000892673744187956311080774602268105382418689206687628690810009073691161203099668648030882541400751882788886200077474169971840845682822627318172969307592837373139492356303806450464506246110798721689945555200695479766084101682295094930770436289718305476726434223456151466533461947923709663217301707025883270387005465507248299353755978671948044969730047962195022512506210889074705896958297939707804045154027645539921964171543606086735821916944346979582426607832127962877594283292601013270880221070375420594296881909816773480018937297755595760002125439354305414055805140426083490000558071860379178191411138212519860347083133074840486552148323319901842889225791031341377206700689590699418578809306498779693183051152217715763240063602177013438165119694597074901589719227291289557624781729097428663435824487784520970608066631588996446582217323734784650782165654236345742920293424985267201856086904170306339100439396096749551237849406922313552157062908000166001312461269537288967587806504244614793750824451473194353058284282071512560388648292060779480037874648725705335527371878777700577984256763341102293366516735824612969076208305239798917685608419128280056482378031223199073120226966037870829634924354086102526149265067930752257558411371657689064632110633501110115383530955482638249221500612385130515843014517772936781800481638544754668686971939581044952803416828725341732366099620723028070723257380939140193768943664221581812269440608428253611005009168409579788124035410981947756760527868336829485983954234359801971103756373290757334523112037107590319040015561795406817463652321700110703900256492186041807488893372178928647121444275594536224825041408559668535917618043365979765889388608764375001116177868993783280469685880495667592333546311209592346273829437913095231996856139395572980347796473009864232530138941185646640219853666254192624104277102084244794551658816359391549801184999734714329854336751824952360754253662707092314014565801129915113038067596109518666176268860069320821425974063518257463961023966535226328313564472064168424602727301806402488514858712130939924361341498747414818502510283749186379517038178036749736069432075636374769215926778985719282717746678064714829137477672768453433604912757650436163379133211252599311449203405341840134795756099995550020081587498031265844368508127746475538973246463894712871599515389819006981078388816618597443887978822992235124159248809539971662990974004713308422833396323178902884014931804630918490303468024931369525087326204304452780231733124938123386468901437928631181273236055737342668538709144306928232598366119021585909955772246708640234062230919982950060289332661333988053558644909752457216385980002493748773447818113159274027517895783389014381072417912319088081658702855785518443481276224012274507049992338238200429008971982835919104138639449471074696537321332298729142600012238487626373097522282315218841048571298057708613324636383677765859563953870770385578145197516674249596413777140603863433014185401587928737279771752243479731211059802002725015281515100587504045291287413475280615346908604037784896775657680173068734780946973455803761581730756850574137119578527411637105272286411827430848493922594936597710648519557817194747594012637677090875842351453047280283006912780567576804795213680402622265661069717100760092466685875775669264392053004611562246508999334525912234679243124552718730916762099794762397053006805694681939024277809408311864002797774872488267118100374739819900193751521083693578331435885590587633573883826183330751409547309890479786480576958838382196514001202240515987091740636979730155700901714922448713380850594463946518990544732313024928759868735500183858968164507217729894019305592251549973896715397137351228647449583455046767484012433204666012276824170952115540583804934504058370087944257422024277089133779810687233354352032836906750278484960665901901049797322176817474224541202004266868385006999319612685287111369295674879731701891294039292873574816685776552600606575302484224340344143300702386673186738280326825768031916367843878239974643891735847236845824324949118449149678647714374777741295887497085393250276014479003377025258703534991108965700678470499921373893996277434433963223904625265422902358217907609897990718525049503553429323260642057715279745424246238731018350352635569788182952416830656770385077690378207504939019763489938142642366975096920088934751088118579684615953741407632370011175795441566636033080938833114079302838629180392199486267650830288081358124966115154670112430723966535671527220644562537662051947257526853161121916341446215199310527350653724670715311259557900470486865340567194747018243064753364135031987693923634182321113769650105527599496760551275310612528568960640549461164322393855730749237784722047960931078329313128167468307046816021492153277347438189448753713152574785186474146851283996608849227331955908190115875418340209212447110845791832041794684568437941986092531104375087291727149250756365315995995531353539446812089864565139864824496113120696829769015838800168842020843534392476505996776119536159761329059066048085729694787685403620583848032259901403054346897278263112988441187314541584410159478794468399122943519823717707175454080056158802287750388711746514276136562912981399743436012724430627162726558696562780764802120517448502714152676455517694049791649991176369337772527487658350395827674661360213695940065383764326526944176426752159595841787541053170402846515913946179152380719992246130196945589302898000977245948890665093413628164627729694214291056460087485780305363349848295720192461513536206477721665930728867300485400929330876250443450705218736173681786058870402818232147381071131154836639420834637367347057947440943913170385338147793479614171311619270020597469222682589268521197444234987176220155387501806328459488766171985975064324205391278800178697844375878586771345981559177160354071002779192072734943152141839898459671996318413216301022333851848644777248434738363856697855822266842713003110641045573310993672809490042398944414951263718446259138014842482974415617703818356662098331770470521573626114343985069061364421014874508172914697040079753297898400653525707968001246498530216082319263697687873554986109208629032087548182026721779770333054468024980850121122343216406097976388207052027917913052085569825085683204688989283431480478599082844888646236032097168173222058644412075595272826998360571096602893773544559748161161235331819066151077622267246014556894233808886792976740892350524729561285555434725006194151319178675545030134399739510872244327641294145321628349608899513225543516706278555382163655729095973098730918396079268537120303686978216411880024822391478797579398596338128864945832795948884088012738826353371782316682732140034653106946103932019888941755225923560842966320067246650329443018943837875864702756592591388637645292105486768599978617001332229608506809125359551021654103841290433540445271190665701057627755715234268560993894879338464496307544674280847199937190608748066632496933007265004155454564365628773122555058694632311233728057083834849232440600112384407956315880729580480522413870234472260725963602197539981781237577651455041602435839404418748857921799067538941122744853285276619546418444848806439126103759282674784751924857782964910327571008343655999533065799366182259104019745774762221117568843770572607371803864456607290730388733942089569293282815972374436232571263464430479036832226369742697801285588349405379668025337047109603000372804221229968396238410266866568667137513493738057903717653200337503543550536517703512728228087466062199167692449719967146365917853107107847124531921677818453447083575524561042280549171254970942336323153597339647786842487512143735066910761320942049685147247673725480875672284218556480401688411915758405416158786638126395205654194508874386280230044379162607319015830409389993167322251819914194520808125093531079529660999589863238012727431973170633986751402274703034220476653532794230850060654901119777467207844379577440700488215785287760920274452792748255408785744093557002753981048638750275494006415950432727596742403639402104665688649211215251945307109168289106024311287041639355268542574630812703726630618382505850168693670738705518480142917295353636087467306070236103704083858664639093124996126466080392394718165768077326114640751924520897388058497174169517632345953883453216622154560206089302883533681346418107316435307256432866448286051980501250653632036384572541652043231432132246548521012904870434155984449385983060216940603846894983370225627741724157290372540409237929569503517355015930644849384008209681704803394970272377141354671905414890129380438711723121669396682220352454846531955048093265993286538787672908450304174419457151506713556913970822901261375898208335099795230872603516498530293810825976843644706380979849885322942850916698276347859372751231868296741660025989126593240590828784171244691028208004375999941928174139817353036128237822580089351229128134691024265826015005857615738770122462202661651433501438998449807015963939576852077070484995385055260879084580976566724698030651004509943655784955661017567594803941343360599110686164091810679431742907847539134739977817826802193688771996138170788792540015630084802824521643200679815937469548682963891866164784162125365903792208569490184351553848551677971993162633516776209664603224591375750463334041653904042072357686748033617642808240160924405714641654981174113182590451914160328102745796428462886119484603877705532252289587931347984116619043568472292936761090012485636116635324604557280710692203305059671157590504514748740852896383275195761422877080991116179203818862156271916177101521193938774957514079126657562206885212104676819368782111321780058386846264223414344335339694122890321876364838827622817033965934036987749735264407866376368481781769977004250461919986651439528718061526913333671969175427358197360991442335593458309979634103478369394003189120711704887529248169126569653821230799205373961112929396272588227222296171696420266157587778767754729906743875860968810660759129135496283805130638575540742356513795224821695826086437460528545674117598240505501657788848051644938510148101788414339882558779335472801774872113924332040861036206532140751383327458614041012273812354646061291807145428646484231585355184459444175820951929621776131440454644866628400554098052979928909189921600185708552447003156987809701638599294691668876662954017436535146167521341902126835583016712860933043720326610305984421684580102467757355068415675232624519960771379294935998905534925572538991989534233540776049443578981486744969456714873994708677753639200460140578713637017977312073360481308071604109590149513108110345265737286705166854821078191008625164781037618759163867239242935174194836783694540501917947491790464033537544866781581735311993262366162411565580836667833399459401674539714455767469674090605189963391594514677241996954749199348789579190355060508510935737642507785122132616240182431896852598110884744904495639165513525296281357255348683299657952125505224535512776296662796333452301792518130683313099260953945173668368645184788938114070450801001712425266871242343922490827684530727275107952953195247411093026670233151277082146865065102553836696800127190066110585332386340266645700416138229483503973521308449705390783093597727974259050961987307501367701615803938114636053711671964828256416303407818835063241263254317452061948853498001125410068191000082071660675225761502118702713889488454150422523523713803755740175321265742595647468230351001793436401451702761815488344568772207835724021379983251258229104424562795843728669427586879770714523143614054251456971956045349049002301496091127318449368146427823309574644752252641948986256532105606621760173562463829913474427789248600518401425481926874585303553822660273011338742636258057590608361558603444882116767164323887837143048287144389148447441967545018481564066111734869052871054779225797915140123312995759023501498260971535383423133735532419054933761633964573589130980157267035923226130024338084502559425902397080560583188704826176190383672621580222242550406668659981808133304312266518861584141884039821436556093013110496805180895952376773786566803627446959795737410338951218418575637966611160423856058202394405745548477202054921864684885142633558056962578426380949021578918574386951568139909315372657160136275599027884332908805844123875243885130772110394963164991802600646686805529224570204510526092656129121158132047923941963546236384362443808779871837769950765786262043442655135754363770252783414226699162364200061965613204959492835611076638307010033276624148135534744496641766430621163552221825347481348461475546559004847104878171709537276396248185366016321024243798094570807088414931492991671553721443363252245854031278912516902157376250985029532330703253624862185735072831743643712291693908605437790879408635480235060726195115646401446738690488929322434277848612666821451935478090937125287981426481143820456150690415841603867104008765594152136434737519717719997079041179537376218761614174708298969656176011638813560600499876339497084590736739236246905461126863772728794226266069928220044139455752836239672411035288194125575681320087916583918175106914046085100480434860122268533804292042152925859419763545828563132164308799108874194073394774224609850358013209155055639779645458728906599632055883295797440800308025432072602757577688464496439834814226413163437062026046045037431438139347252684340456106017726427629441205180841965060869048591604149286734162811045648661753852530216220163023154537225753913295292977366624633467943962937593775083765247456111259257336169127499920525303936959314811742990049827533222187173594187039698423392304026801291386437376880088377661804922798798173461711028009387024806150175437851786295417722953265677005862563346188673283942335918485045183179122057618561283556317063278044094391121439835588913225511420746583961909858955522420270360776749981321683717753847029014514416578904461960633228535885683311253777320732806322682072208636538547114831731560675001093418263063222463212840726681385064176762592392025593339417884918044214851294092003863407906803276930583362606372686280222510120409087017060141413792174753602408637894009899246498685151785892952278653337980926324643158613214568613362570541399052326753971084443229708172407463130410313094118758765965162789962376897306014998500727102542307398549813006948028540614771150022487663106416337216184819382364823966957571389619743367761617627549707164673973806908896021892609203323575368307317563100386266155433237273256273510820834487438132211208242303421257239484796624238303094688346795389761833243645740929052056648962312117566510332077709961729051693210290789098487206831344351968038866130083451305657016318741195569894266129806349756772018831656700562335760133560904654412123734567038667545911694263269649724376776748835042316262742939614978654376048162316159293158303372454891504752514453897978948245671723143488861845751643648380604408860489657719399060874003669404425845890501284583025810399055580237861521779766401321650016594732677403148041961368659516557692260888592559463226066464200967486361874745654567214053344506139722886907132285632143186694342839123771972251889414287814242075888909326232795276002199077618378097091677628604072183430598928685058165980028154364146037971175602334549180516758364553820950530543018363181954485413132148075219304193996131567668520494440390569818172720702956906430069298243533678274160147775328536297587118802344886219388225699151383670649195153560507030809242353626396319640045312661329695278890890354819590723519126644607382001738549445230363680505475603746216097575646180635846016726659964014479055642266099801884269770060844761515806284772451494733847063675716646249461754536511132248197632537661798317858218212722322085692048832866392457270511206556207742095769395128126646210165248303986033569262397508072601360582950388368337436549640729187845081183529566727298558329613298865416082619889929744008342363212550944210784059270135759248758494423303652594402798354721327774705142255519123179795642108544040036122023795716878476218618527513198263311041633302257123032872707043170931783555237427995436749870878585699822832546802105264835424606927526969244391165469410802312023225425644688276010933890931642737968434793632360815035188864463182972494308956597268218621933727027920656686073594985507835590273774253420520967212864422662885776388658936535998616755084760595214045103027400159446784590962278572093274079301192304032544124307064375693686441239954859393860252524322053981296162480261125939112617967660778534542849937080700138463814089035409299050151918287559952940489749646735255115465369446546381313936821600210893636079455100352126236743239539657274438427768677769860478195664834002697012907035189656813797463327380254629351618873102758008981204869561853832245901484041850968791481913033137134561868609550516432312676745105374495894101246360137295934601437894517366136714584183522067562309711169925787270971180411067668326536833787246612139333861269005212213137508663900659594907638758341098285903167066228724324613476798772080833597423790765503290409828354167869777207773025867691768737725164057934460183941090254095897461032437818157384086541484380309602281857576694311597178998607114554387784486617449688362079084069558228842030379566824994853259306248765861651740275871322239338287099028481920879246206565179709981712182851275114865050448180715753558528048653281934341962838253784818812923755334674931363226381541298614345912070507425148829973531345592861880957495144308441850225475887542358141937957824637951432903805326306134671505602809284698716591546732424277969307191158906050008195797595686910933393813392924056393155966599433917201849289176437849249023940029198924261251740964166502497973331082426475273781304626247009031666125304046470976628319380194025942326385159588504855147492211464592786270853929027208924618536690925604661898837619588028075208008989808831488357541647465384384539356063690490076153731657304819882575412619255977434034027587867950908633216752736121046128950815978076847314238207687697439296601797761598782454951057803941980833279559617153870696118228553072536780998661117083089738218297983455849943678563055021873839287729570747727977853057770005898656764209510544668767966951418332817578556032317772084114359968605719278653147954776508873699352172469700989433051867149774351239068767165385302742819609504177071464144991611395256847094472867150749815477717782865409121191789865869319355789665493596114866351244516852587918706853695552984733177729137258697407659728991767099241791123752615094522147386246614364486709936786421687570881068274885553775538782057403725925352497462719177639160129342040707453495946901387933541282559996420337780884540740619120311801543737570639401602535621381381757645715272220038481041128219834573342386250474016350728124193363519395180614593994405608752924991612541752412051119506928510224180918138212387442570070205183828562267410076328695487514461945242071085940793237607261373978640581211623596046102755193867375196336486273198621350268174875773245681939956399653885298982923235125063788106323486970067111527897602440659072651549874203329970878115547803141602542989037823975958142135487099168306362358173704970268297066652660958292763921313126312429395354855230066678142699634455004141849407272827033886732788124544247178788913741294266709533734009854525144265737491883005989697372423798374507933687083882360078084772124099737029174083897715091538559285375582760600310777560954106552574239731824165695491896708615589820461079363561426751554459845325901023912969033516652972434926331823788346433057277209186009222276824351856616260160811989440096519258177753050703778080054795546471254422751451965967914940746096582549446817145848235696013825284549644483743648663562423590239574210239744293823034764287773397330920235740806955728834273266077173459285630760438714846472748675897704023062033725871657563915295977638810729727502873340965706069066528351477291074742896799895763987084686953176346113482594717859109146633421895593715633787408782547745107922686711365837174792885197425346838717739737041667962831559635090619744909916042691860545342702178027071217641655162886782503666870272783889264136056039570877018750979166303953251556133752598989736157668168446217399586724014925442271224158795369844170241925942375250056628602782454339008102813157039658623280991501107071701067470023523344845137155047077598104227278909695077810926903909320411491781115072570210027405231279086822553915503911808596913523796673598197693066611761785321066266635096425518099125092797305716535815209079411499748784897680304327459547622935874965339143067876631049518222998303582795881870640993689799768157096659879297248416199881516498254113717250961332735111555952891860468356465978939640066545459326933833653508759762244300571960257705986702203639795368688154100554908630957996938162970337502518289420577783662724928678308156851844878544374859538646225171315685621656268547159937377138269534089942019539583016467084515491895375808798884717348666040343756870248581590003912247434846852733730063776773274896251814701351826599894350833440295052177294525053371758300448697292233566934870487635790838518930075535802934010982347452799259738610442007960872478584132948440302570963209346459739016419698233922286296526021146944936880944574735267646855674633642429088240859000661038074392863410061542027589453187013776447724699216499309534446702006198037990294875718795558012004798073438901504604814777166015816839492035996398753771889293352483920994794077888639110049417140180434147848721996461660725855361472308352308470673139472264408540807094969353783843896288853196269255391337259018501179044255256227488814966182216731106619148821931219124450206211774427593239577779676238476221128398791897537126267553796351334148623541930115572230156038132345648084313617949742385551601411212242527827380185257027559407877694463120847383867965425841899751091330608941790275348343701769227066911305955342123016305059687620524425610298404340960228419064408400217614324599391191912989737205195829690959643795618478051746308909720830870424328976975926763561884142691726280411170089496030210578133367470700771394224755866243655878162386943154923765226765109457555634264996433770226637751223428314732180969249401991791191796837941270503101766431242344933225578793382966483916761489290718573121090176921541854842532163504116699796011711246867804826067039485312698713142346193326711844367721551855215602159190068618775415574707084603387321086551358145807063710004321476790594407756750830504142085014908774941910818812061727281508126239377004195850573001830036886353120435400820742591715635213126514315220774933153114212669000126042093026235285858511029365460981264614776984566046385248678031432123211984021089231311645943908403440954264268032678347688743738571205758722939909952673712658859757453818391553378235611226298672301592596321849473019264460318311241617249498256329634186582083009697882241593289408074100565769289540221480302091699231939322908647603248691790247399114138198083768502174354957494424804783248386196393488415336056363852805371838681630800856072530853332527554643587750254808047273231481170614568789095613668309360094483793260898985080741663897061912990055641635683403067325330972240992151914792760911449144666580449554414676398361629232033152886096732263190641587485839177305078208818486709334456886038728184475743437803114182946495402990501107307298133606788371324638992289932098259360254641217064337662953042273324978922007448967143552995118649865311005830329790590022336018162093229402015136955112478564985141791571880346948729215663739109670531085050469523629070844466982938158679093515174692355939986166953507906524844143626884329670662985487503651488805608323594917428964799840225694058433598278629200399636765140634810503938208173787746830615674278298434026385568965143137369196168997284232968480807161622349283329421099741273724798291114317502734105010765031531871031773081592229301086739843924303135513367689031442280346716929243754123725030757130577055131825296214894101074016559183897207502959847681720618303389872059282705681202397586576467088421459676988795928640335055586773848632934471925327610508531481479991747514582417693110365188054596957169228266949642489290169622948933278874674863069403513320399735844693429312057685472443189908286236179084318254183139565448281020633389071006537644710885565045275525813185765520379352668195942856296863058158998610387418743338347636883134607871958730005968354531119599124153564740927142435343295448273271688805083701118357720827233002446640238035836955087479396405734205884472829722318636978398032236137974262772385875988324343047757807080367761774343856410628576788369972891018838630141521760684099840038081456183167190100170120169903152966152076142664002484181956355912919199947673698427733157523133829783701356827609473075981739823963969264042228231337421599078902455419107167940733484280122059586629667955706285007913280233756891448391602619119347378985451281640223073409032022700769490738511821164044711053665078131706203182718424535379726168537492467996786485061242852030759678167344353692854094888081315458112167332554785205850117942867519199427437519163687598363039215840992741942748849511537760523012361972561389850699266947795777792980420005556560816936680493069540529135468942493823531631004914586340292760337850089923197461653788036434890771331737372189174193269693908916868704052390072337323865485559466654901185221118917351627539129227376810584578960898796911953545921016064497893491745876178494890110074122926290907623502009519598018901274273278191841829116204707836336905557181626405455875335659738599148151151641006123110690797257100047820242498436396380452203785219791685213842093659882404173689945933131568972126212531890336066118052141498113027793798597590138431226079041998221554200539302757052217478823302128081289809988935589870826340180633003577208125049462765776673853514463584729848696080377639995275954270191826172989201802332997014695249834080186806362513462434513585479939546311846899079389718148843298619151918837356756925347738235367286500111122613722574186522643959139494370991220977620259521242365242100970326842871777145881711153790592702666927794093385181721025451437066429165897016317055494433361288458176866810381266600537428914078270581095266982189703488809380236507122824800185818148980930713633593936779546708593277122894281374241602517800656009537289826577813160118990542532799977347593358641031178131064146347720770837363879346955130466072898616678737045238833451358316769542933295190920544607098996471925542575808503364677178195709851049863232215104636179892515258641387869359552703690708145436470433622064715467752686417004875381711999141171574999319338638582427543551703722883483171241492728880618823101254357412508566544855082267005451219092046184847019598999067995601186519730190251721813329182658331503149682324411484424379817843687125697940378112662091816639643236739916304231245825136890633779418726662229120606236363903875029301322863976877963631585530706661829008658171659017981008152400479557030854048358775138457573661222388053452462944225976997157844283712414771705335147810798078034909346534263599344705584873858345869834025842919108078920243219061443925228038970830497329848877031887219203642140816085371469493748925325472058606614503306983224402854229066252830615455934872331501199307188724381557334347074661088030257307529334266580165794584757059951520546426553836430124715868471517915933258495282359708858908103437368202095658204235656822889066861344192842511171256082282314402213485784029079885149009848851767471482392509248504476862423252058626344713084123843979977101842241673605664231389241472996044134936522976245053564059655210247732968941320085776383131899636633711351734481158313060644468198077700833453997596549414013685707384511352608999184441594335181680578004388349660472420048108732710221117892777816806944691096062002465672345712406382351964878920564492013244377933944853131218018477032398337990481918803049603367276857740404389829381617288082143481411307365620675638488064138179947421132700663166397144812246731163875542050095925670361277283293939853427857634030121857852206903438784173510102678505772108362044704567608367094358585786913570492372280439635284486213242212213645645841546818587332325546228623455884526116554511812700999086383755805282821704156892470194130398023404507968370608779998114640780745456300358129805531985748868561776534038921518031971280228239470977892111248515499417513037592134776014927419311360251865251206002602373571419355680462507640503349679317614766428019902766581218343542617956152184078555540691533419411431479589505499519264293923050723920505168494896118710672527466644121577219477072390084373216494510547562633863622154958262256115189511062388865548642693694230418295573094725406679993250383603763478510183285489205728565091976047734134924998025278051665625204445871995377822004504544320839567926920437559868741153385212636748748762949668799762518333711283748022349831627205062239306423046251974398171724087060096850823758562429704909886208435326553043958090645224167623905404119509509265303254467044945022927132262586567443935561529529933067845741610078626863832229718153646521813767079501069688832752644744818488495338330949614760503913395025191908233824985516258057805189235741560725193764398585727237411292607005524711715011891326605324272583712565654968520109775811677812593580363370053509532690053683382173065006445610690472669260089039102670648463785752445362202984787067139351133204929945171088575713878660536846095030100883229916232661756201838664953600534749357563633968924978713503855635562086504015736965510099120582492659176491283074843242954270485663126079967693478163430254754246674976162102342824978065997511734491510322285623670742834321824375166779814581458526532491356492297121399959449549983917871985034491353109950772265796634773049356610129874006701531759793129043010214081485251890946181954846834978426219878105533612766447378879209039377497830292212005988016293078756199403677179158901981238441151868387276381723196336260173183145595897327402755250611515783304189400585754364045784049918040436120807314006586365275481937395158426804796708500272623119910197651363858170393710437672891768998686059102499848360742123449566622720579922061439054059737578709489961096853702113134369214756274167023415504235143475750271666746082019638127302611950483684307765552514370091607345720305680481748941549878741693117849945658979602317012886445213767567575217106423643164405489987701625403139995573872034330617188518293325876535610640879047416645679837086574582334954586252629985804630476284219359739277549216815060626841674945020274055502454636626567805069631337764792294589959237090265064902521101466433860938704191690714072615977560897318643949554894325050194479094286921404924558336914365465247832681351467304293251063373935000914678043754217740748944380423948757892125686609526777424456851035909234249686990719323148641795760198357409837138905948959999867037711747142280542841259925699501428310560363760666706285567936054279319694943180003984611996926373735585515823486647858029775737429958129235852106861784846733675106601066202639058805290982162461624652178674358679761408807096576455369072607015787167467781288897958592040336648943529794038504259762654544121212137440480881291460039982383984968542606091430140452419252306426835517681539678909134750060259337160423631818604464471166202877186316520268592607615591651794824912106339715995053836838206049142576084039788415625331294398433739432060223210938333319421792230060137168491338462999702836863046980365408117911263649131382617779369851879339167052731900613389725579026088480331956392937808530381710052528345293325494076327626878932601525157779525077769714799833487164700133458473791847325988760897076990384528605768568418796185361959688872255716249653326144087442856875746071825285591068596629865849902915051076340935410224671895559793833312398574152715470566189562684430046010715081519412098849020412484609401074243396508689004355835431943091738477244621834133271102607571284540097188641935094406625659249296910357658035960628683927934302248271873890077284883831713467420047728197805256346737506699757639880282987979955719370495268520474182616461974742103818601407843254744295453275814789795369743785196903637172586227662609320576597217154681364728575569406414123288175865271479310370864834922797594462405983638203361269918804777037008201641987156784530905433470238603914627713151711094544711389322745013361955691701401027389649608646091669018851844906323481901488980221917136030007737514863242739429547273587065250006635905719689567848548336474731345839030733487986130709231172805729588812257554046029832539152416606098629436604069302075783465654119777076969618605195191406507241154299937602856538032176767466195042924471901724009088441251782179495932295837326134575609749166004282409934295668083713676005675353882840635726375324432609827479035391467477635239320744975862061247239946186645691517712537383911639003279420905495492261049305500869633758672253960513471737951476393509597237059541146019533744856931834072011224821009441203390008409817634214192490902559876710500338962790336904320162547264461742610691093193404974005777538959257250505580036202278905905508852972449107528695928194926265770936512509809509000470583651812564005573924581724470341905128967176844769680897127526214037801324370138677149529104183560460694582981276519136243867184257422144296552301268524048245290098792213178911916436779512852588076819892094555700356054233659990129738095431897464905094206484902872731513349903266833418166870903564008220789979326189610640092834245840312468528570074001514549776996267294471663688520345251950722896489278447949335725453885547409081865683852140503234296794101036117184301124187419625282498125636690590401616208837463996568618590912026898557518115066124928544366907517430298101898454982738475649507177785003090750609263532573204455578982301053489296102451360623978664330826044745708060005293034647336305930650361102075679586322236681575197464650372733624172731637739553611122635012157522649139269122372253230784733418093495612912934662765441496888281974785120703498639866405712542430866765485989933486774700968783611026384454155747157572758152304903781647380008387816244938151070326743365425930173925286236605228301925248453499718963041610885760373105981442181605354511736615391762634549343803955246152988695428388969257457229027349401519213070815844256369897901038273642180146237936771763025584920272594118784789390417907720650132110875459454503473031916311682412227779790028124807682377918974742121535600922690433974680189244213969992461836736157109284771674445145557902439128298477357746504769401098754592784187683547508726830398813160915406647072014300159334175468684435976905353331345329060824913562078737346999378138676208988611292209940870923257270474846559636663807697732908913174984675863176525231563517432933031883930332457658829056077926644691907514700663466973837536035093456703854866729852102615119139673146210537591119994946421788560414381602568797235159068431967389189688231599069893278255499136074293735768320088447436240476746276379208457915703861170433512212215907221655883518361462340769269641102012449312206082232988401337516298082971056493978754239340442432748238791120093098381508100325219453599599951560098021438834346010864671107568707668940487395547622744730011569056771636367495807884837030043167928390808649085392453036678644218728285982164387735486161512977529617243748382762366067020443942293361922616383250244011781082823868938775008694968406986175728031111989733044206183599479104541153505324243905756030160091499568930386586001545132002732728312543485357504166876617031365327860103763059542860756386893572742611845414704269224114884299027785518558680932746437250289571066057897324515972052924430877403298618536835681111390447793142915624298789867306390886560546341864406311517079821110662247115360368970251451568405255126820017415341230248219868665273316039698243396653760907281538603965039871891576853483290064540545937116689172852340294436517322892478529992946482248488998619413555675736685064585765345160167315582105640754409048079341066469081795441588564936995566425416013331544544683652533053952212220240565459526289314861342475418093151461548350317158766134686261756590839181302810225144712927440606034992751440146057480159763260189850334540291943600613548849972847121404773027952150211900086500369961449848878275784029792504511129465318671815537511921683807221815978961603377509364616119192780261159959401294868481030054367739227678195828182631917848520177452815519058794369952481488922289650840845914041548534615753096350621215820399654263084679847492179358344416574907437112746967369612903174463299869275156480602211785308984651622375570628659756944603307059768359898298069355553236649159946805815647125438011749422258928083344480590764089879496983185694836268419088657873678365617343057611060247380531702720228715784926495784770580544569197544647322227769247855696908599616676554144400622094779605730261135433654308159170212883655875665856476181485429692745538882475663092797919894040779260721646042328339440945921521041586129642887093857883957232001632176349129685709745600748636105776408978521448281733889479640653674897216148115027472059606881062458255196829402461515005785474199128322510105640471186734219890462254692480087353686595192814201788823690458242097649482753552320524017784272968312574798550347659176433964680487088693000005420098269005818492791509614507142974692339713264594534507041786330761317746901192078416508314279460623254780040047669267996501869607818859486772624228960665671067539550442564171162264380488406844152226297730293488678005167121374636408533595747497259404354937502381490856213960906192421488913277039035687578871447607797037812812290930065247949482430701498725015395087347073584314825128541714705220203966815561877701759347360125583056939057668605311155945577953768944434992364583883863154585560512265682099202606290437263335759159042888075295447386844603738748025186778968051414235269456104000132160334046303054083285293373520289146902762999592191753352916994139339476227706219254552667124450004707617293161302849235650308922248188320370850794748222776723993019259079994594898969246866803834300282222643186984774804189266436492864290814699969919080790310842441650859612448166270892750196549183860532998875590743310270588096181476834931082636385046334170252383258725898568454609261780156843228718258840863137356571484932435117009659019408233474341332855447325442801440545013007265912386593043216937878149652605352047726246613454138019617871741773427680470697632598809245784048092004256131163763083145563657849336429473451543004449207556966804931612808347195589524823424395438672238882859261695382853469529555093697082769865142988107213862040780512932379832305194306772429184280308411523501934443729631643266039761987382038002257663022472572918168300613865279937702264177025098291025086615257598768800860553941683535770128563546666303828418423155233523622526362681545851225208380044952979782071604408718039172655322330339318696683859862327914540376932223670372735279585813145205879817726361310560771038082256175529394786518608519715306241770200121492830987825429969624821011005414949331615895410471363496072655425179093931533005565508029239939346094682534622460063777104713731735140322243514274600994101505376100864855848227285501768893276853118173006518947150206233657632093213976424225226029423806695811637438417164164837438730207984649163751658623335761911708063659080728416606830978166256774495670112691168145450381176030721537574286224826537017426094761287250704680609483319233287481757820474350798202531210365780368143913471685202488333030587689152950660775220353659877032914278347373054558266511059962468155506365831362044530787505206459481761559217335162867780222447576448742814222253095776129377292610491068460609256890432133315377436825192436018827793156300745386317505439072053278143073467011346288673212913616997033985672921115166668274271253575449631351558984346231231723761863646157483605331515725547882868932652467062855738345646866332873970828659550935191645402234749398710470118791759353928215526598782342380900014561814730843670142366883660550373068267308430087472471612005076507733324331830062337130376026375778598979059246297231152719479414157656978436049721350172655507688520274873110452271291965271627430607374955559593336805479139162784592888273065886074895107716578305034784147649427649618400374864028822537288007676735897758897371242203832046478520098572654961860164965938368838911160786533611739750951365516541749312651656421680481573818803084879557739045777529087952854861167519156384881906169939369857214579033567997779187406576248829819826356426035524363577026956091683912555635078142733453833761881332152001940171763558278906847322516012169242593247471755990087307167423191190512697425158243208339456809233319016825802710500711073267397224314703621464690535836339011794287858888283490807073977688475503667212614248050895440663975555463895270773876043446945187245173028674834220455466279228237242192065715995502467270943162010687947753295834070375782210612298363777030052321744360283242805060987863861964652042637484405823118110040667010075905171710993523743238899025190491654427399913089105988649402348184549138359158420850292303793533309866325287940248086183337047508852157263457740049345639680740622302636521350171787202857404687482001401076277212891358686528933073526844111022023037409742643297638923346678178053849574931028341066965356737729943389996954867743488919530584630160884178029973152504595169164383618842429446508874264011159768064151873550354957067124185243720382674835332742613634771487237830641498525492871192099138569922387105150576316567142389127483564671515065869095060322786766668174676053856865099998496787106150863502022442622010244552608013688240741022379492397276383243863270051887520208472061124772420470965086263192050756954839089641224757255533630067347857487238680353441366088812139078362401592845450224745452417830242637789886566794652705810537824377105728902626790664719493423921187790873254500817837006781934059776592578123126211432490579792942635141408572902869219063855600506487019144435274138371207505048418465578374302178898974480508969729920766787086173247113192811326237718562724155451477709637250369686679074173926249031764711543354832807721125525398037861613551366008131179781975616025312975259646480829500857814469855591529556891061468683993896439477734707070170542673081512003993469579108002491106702112066875153801810539868076105951140012484410489314388384603452057805424562216595803671876396706100920387659674488095517119340829397587586536059944938040655571935738062835210592648399871171968718643201506076775853436864214298750331584076064478919734008511754245387046180016354725455939076092168966021876184918737149182470769168195796114158240897602706841750424306190687159756684276835030871335019079903322807119871109280240271913285964402131271257092158200066893740520133043971489543640403129136555930833952794454304740319652590400432174175418581657345740199489983426348365240819806995184863191914365553697696492370075274692821701118949937568046055436089186548332995459976638648923844374794963546284939465939916230545469910295461814861485294091261370567888625245414676921751201177285768878468677633396249812557371099878724034757830032060294274175549767823563442469683293869866901143768512586091744889775771589214104252677574795322050771504364305925476541038528585398052579423445087662880141494605293545356861876947707049138939348803722875435722418770445356456262841018082654365183928411472411883547254695669235432772378639088207539608582379686808974273995902373331802421827995446308640251744168772225840216065046239372480663409066535350019962981391320543503314423602958026038933290760931348193281741934475548553312603915057876547442834122798714819487414684157456528178674625999385955042788918616011185527567318377076228475533708124880483648720831025250539486602724885300721924222985706504662823508342258097377948664093486822261686714397945409405993433089800328747646323481462150156791684216586500537648720108584288499707109787104817128176962968641976451560098149014671925797094560482159283221335033411311823941390562145028219267512966692428662360110389988794770233885257975746882216347997122239710901819079546610787496614768787549495098592918192163992838068118695421549381253486115045345275283989943394771563994928535741430425147957757998755241755358254934056829400437925511593990766076667101473691535961619593058353403934961204013332970561227371690079097502979386264308918674246801803143108333125728916611753755541898265906395727710977511717429961660220569515216559622432456899995035471071165461898896680811384580922253625983112746321309532764177483296139516707465147473004221203318511443912525866704225633585580441269566686512907500865044459487712837695564675740772452990510501358062286162299708874372931252726706862646859115737584245496351764892935071980772927179377193364361254948939142995508123732669783871057269234457530320027558181970520285808254291742070203959048270135192150764658003131615590644021133498843676921524397534782434545082880518874243740495329537617926156404973105699203034672515350223724162099387749729310463503596948488906012883513126664156083356827571461127956615817954700186752460740947941313324989038530452635669530902551253877935638752755846827292703690992154496965029566863815065374055622445152883815896288939425763779557932413844552541805499673402373119063258861177947103794726102912135456369680451723677015326862509109880953912494906641520674609653849575456409662999813103553569374086850904181084647344088040716624048757532637734448635484312679452454297006328199720269466303327215609964397772482615980432616993758341053277602826627149158644882403700232517790142069572767629684660964884708366924485861769627919448402645430523311547562684292920619532026149200848447123832801341904073122719259566153547090141354893240116441389454685822628117913269904505584463855173861382791756710379690172958039058685748576340299651732327816883978223404503307397198707872071199987475766347619980647575688928056603261525363172308237938579267767473888709802005533840769928153022460457220960878711724429794679759465547068476781587616751716329837177636865848936723248385253007816896218190841856560071444829756195609203621266778259289104993615024393984457188992503648138972382981659054908038064182954147912149673164841742714337774897509905047165205668605783584087049278947992016299401354406438163511318214392060632936174108684354616286297431148061840127560440546675335291936861329748106273054207326661438888461095299548772905539688327040608853378651268340380956272464596062015384775762033336749598778709494235842538501080519929165789642703507140132527738137238638690611770244641037292174570660588586848686953726950258670359920188891426908497463619824144801742520512874493631824081139931320165920968085216048587241097954015809157259991763280263653879996614387193208434249662620673584631511504983863906344675970957260075893439883457058874196696061643975094676848497659503319981937795659266756546955870704634525805686216351020823704599619148140967700376868928784469926017187071842686611538531866996755352488756978158109466136299102538887767486598476581636362395900732635348047500905848552864552231746723408619018268982604641226050257330705899252517293786468134584218793332091917721521972191032442574528884623306331423649753230177271056722365595521551343058549207016623597079112022480347587517618726918169014036720219429362711911429370478411299559491130767276756526080584873843908648896677119670106397934324369559686299129167937907536515967826870697386320168517876299653949374173528744124616050900522873974051752515990378555266308000373782825066455258128960160260543878401873257162536359259684770494874216370260063144644147801311341833647224120800515440558495958981888906327855553994096484815950709242060164997782612110618195837688309931614335549132962669949419727108562561745810969446320754203086387624881791977153172542780445488662889829308545971364132047465358199844811203934474277351837932529376184489763331676716910373251522342295817124111462746283359924225050232754454662511167533073538966275842860553725204449639624799706700346669167391399556322550790333706454878103907222174698197600590674491576911512682532225260383367727867617786097967055804292058255066782790916867521521126835372991322561371379165135451737036827392405708155518234837374971740856900489298304597181297685985522082669718311483015617241230010909739299383891161812317661889895731777448531259104618762302566302846115338989884594744234612919440135683617808279870740077328939687013502989873464850758640015788520077243044475792645385641764937807556487312229307400420761558773607407248073631206637386832531167026956805954756055048275754217319889955341964440845647043772277880547118414489793182066074245637345703741924113980372920877977338658922485897419913781413078065550913667869129441437355560248440825661280865329655065832295876478231434484920901447588797800484122057961235854035337236042314875848227523454878502779605658253914867673225188929179686406241848018341220288915891527010482487623933252461672758100055622771146907980167725169733244508625586601858787262127245780164727479009055092789083699362601971785340692031901958381892742625288243847610128827525634655114822214425004169725462202065280970359080511105850114455453075918138619169296644549365249619862864839555806815424773006371096520482592503742277891155419223613734018154250706957277064281236334479974116267366156654550333172796293763576182314906274266783338773673708579732771825146188356727526784527038206830216085117539282523803185181089689689070874692045221120658622697041971746640627228014984199568760665848510723148334343134547636490823187117036955036689713633732218416364125053651571636089947736748573659318300990904426523321509118249978282742955551541895672140644548539121662786781801072370277350364807026392597771656273283848121710329839909081264398066082857678462005709072216794565717980986255716039088343304574780278071494977314007362495276034562723355160799546506709201981088704406996117631982668416236256016172168049119255157913098261428286478306781046125036660363340348712138530950028540425770163652759742692984824108070015303762647933441794081181188287518958216525872711981108810255046638461683199977955328598991524141229614916977643849046274799254118266627509013759292370707720262193341528810334652568314306866508244164315302090193339790186402472994581134099875456216917786905315831259155735204628168242421927239600328916984434598430599696995463802512354605573779120671265680907207158638165722786485093105252235605277759497859472178671316106910394426206642845256896049971226359432777749098145549073946264911076281452504361539718133957060083788554992914609600684521105455035229028490470787459311266806874703373880063698320772770760964598740006002227631332901983398416880293981374834475440614941447983641161902363601933672522967290485951438658482644772446132354230037174730410480590926467846505384518784131025405251081866828507583031823892904271040749088097287940672824577159291270434423380949221098546678656896004373132863102094376119497640359467132405476103911156662739618151044661565513012139249561595952181278931700445809241095362637625999087088210262683968860223759542488118770060722820902302025443017952023870711940188231063503450296591374149994489270651973747950767739539045197788355011478072066582580401701134155350461542089005024191727186115980738058116249979900813450975249399574336254539387482234423367676932527907298826031402410664674829007161776369303924775065340046833751485280117592702209173054442274986607464226622200706775886835106474336337513185286809345650171317653297253316014020292401354669286073044721253073629015590527497111060616881359022123430314614151677213363892934126447218953376218288233258498420614018853876877577880257655905477116818352554245268385109129926303201155568817200996871491917446553556023358267553579431199770934833448735592939176775928898867424847246110451487006611357197153717147800890415763307006212115506315944903111853223768222321847512310785616331880734937105499797124251579868982643419709759316435385350973057911437213336086397033337048370316269270262675725909923235902682090486602705232446476487924011930166775065964677720886857492318731241345816905148408836404671505915370868604725472039122213242671939957627830080552639281156059004775467262713822973255413614064576592338014905707647829077262995697561868139214624456361489118526269184859929924060884350478234723831936735429310689329775277256263514810334177961039068017210168739569559261140482296627656608297234500810843631820722816908868701564431482500781714138360573047947170931867007104243795754360704725994076128774974430869873702039347946677321585490408138489081621663417061013677879236713359061900146492795621854120155170044221602226269625441540385486111410236551628016428531270351900328933506760013371653561246271984024235094383686811994818195926892438590847647530213574802681391091524186913681266495963212507544636954738616121641886554320452216572862810539178834516457577027921412446451926676078121094534690175756908114443146401054713142622316364405278057152585144977000453065118970932628638888620788619291502750264737658671149790584752940697551699624713699345085123905846531700377485454204980324069515839001722581899847405536561834984849137379844110454851915144308580383809673047523847314192826853510847068703368777136831411432472203050714686654390934007809200739585849790970352166015375298769780433940913901347958127547583604067716641582776494121746520171072130842986325077443597819082868082178657275582697832615592546100621671148687225120119178727733963481835975473095159235334973119532084069860862293288329691028133692839761857143701905802570897878739972034519187738389511643970395757773172452612894166250341977465709946861366144304568508275706351666145745580756014825902255765822082091869197208526641151873667802484828298660228099308232331998439187137396142597371213352019943088618948030345246481416344870341742494199484800004956878580559733947233910484379217588047487314339932316935093799149344599610589830678961464771877254753255009666466157582730416970338770707064106431944115012694367792230700853364491642119507950103186086781388769269793484788341216356311398113724774228317245907622549976355266478508053108467167034508189339737707703308086781277660295436697540528734698037746943175483237989460938954498858108641943288715584088746412067565465096766390756086756719134863679127336185522921015552459807265596192449762952423618445791693947268819365879004902211490541466585693365267492065086366967151560596469771758918847742836681343123852296348113782286706110138483977745755350088300874433432966147513095248924406108173911743380404515926370936113821900123393569584529280356519254574693486996423112767381869586549179428713391693335443839073664934559940850748885139115410391144910677219234507658965357233555536859128387750226004636173927447031434457975064788175166367674566987547826702526989428229678344181467704979412374715758800845780320278112085535162545711082680171596716859102620262994529497598545999098959536671284637937108858244742893385041300981758931469037416553862925301829531887768069862584079190750603370420529657405089874889738802065383546275927067219214410679318338644584754973539095865611902398553725449018755747004882398398113499458675285910121679069367015177215085015582569712752791336326393741813461011512671840583981297561679741519513704279702241376679846420078116337164270296529510640565957325720201648768584119968838745133702505415536217034923264179164673563581024747802095853427731675245479059153693653337261549428601391113111754679308508050154694574165721810323972790881264580348319897900566573431453960510754213760092700821494106016347470378788377517205202711227589051407671874517853508891064436192964928306291262709535238340574331399304461968387897581433170043477774119899197303800841512036055299503402071470304938698117424768270760560112657552205806270741962942093595916426935911255944383106811876562344182450345338496790244973495652235880325036267220896089699092476939441396768861332557501868086795485205015256395955828102705467769508121963778569203197190934155275992051627900222693079109583414756456989719689938061538484186256767277545288061752078147107223748589501696851095271990808715092143921091801504886585570012179254100005392410616608523189351507060032807887450936909803774263321451076657616466207982792324163878376027682790472439740312070781918968599302099881110247062766387234570016657279254089972274551496826554700786381146798917845938387802200581514505805704427067153599442806914751103999882259729355745930960078528749633972833100486318711565828272714473189007621471254452606705316912572234582290427963993489822345325387394807483007637017981728995610301445321624728321060802030568141007716277997877692615290534420999910448186545989692759184208467051879002094252715882575313174607619146984746445998720111592094688935876900363389532644682642901348701500216135455957374410000332740147802056998128343441592162659827232153305802491194019532318422808864380968463942679117765468820016786155508606674527897715667665875470438414094870927019976699531974594602585492228372685619920929166602440319391121809798475328266968640718575141752314527967128153813505164021665229036762881359226945106306887805728693269757229627158129629050249419171936276933461266840397653302902302106998613465710333837399309410974550974983866475376061335727802573321215859152360032127895506892545132931499666398713239341277866444516629722114739692925106499598003830016668036665333101552102182456494711679572447452452042314288780159040189254367903420659556775889479708682451477932396991288691707015082130730788332340418713137832577688918446238067902210015167572420941044365478602351067181626212331637433395386638399334385399463088816683307674199544335179944045039246485785088371518202063545872769151930959455582287882784351236843045057924480068905596732105593418497285125660089071721734836753521698800471434299703947495287035974234155287426821377450038212418539241650616175784681807539715160762580914419164432487134131312003341879631262965277544223951269920607243358632377416934872446368842100352896832192776636020320172611143603375525070714805991123159338324290433857278329752154622764717100792024341208328008945752454911504265635722646338606789236731970696708132841298926747408500479799889419552187220147641469809869113584971413197256427619630515154788047884294967205286725777191402011600979695002563914280429615009904731006390265038366987265010810093217423346840916263903149866233059862194522244016946428515295185050499918758690004564960167377683133178343721843809746522415476702767441001549359215671732732132959664965431931519420738692532516089502018290138278422340027790387066314134666110988299856475871594996979262115434986835766166621916727602752212116039153024262150899647665095473648045510836768309137139494372868353639398931611010738575342589933968729019561600574285081189417791431200670268115268302956684577600057636897886818387115799490889964568688025208541026111338386144140583501933505103256481244447394442091944356517469439761178962852018249187393656283532381283836522476274205994838277794920901090128929879131418387637536072978309309578843961795102857583127774613628355421163379953235938411239013181390137422740980841212924631009412704342878035804549034866199384854064511365878047787598434937232204536494521532642899026103664329968212445818390765607161221612512095515324068186391359061553381146759266160167084958275978096322863848078736833544176862748927255977935501067854338781652370569469217132772512683476015313026819835339536395422444001272641797213281426081382465345511334805238728744360415781782175273788610515410168758529453961910782567532813437944305853310932461223769298953691775125322838779832444874371125562348348007282934640811654505019922887307406286285839837199903244969282303716280195597239315775686982724052092027333244343095597158946949475164537731663786226383542619709253289195867156406026819840573215275030974500078392007863007021141249011226238260317549340752673438140010621357230011703724523469195518065237518310700694464142722443049111123652574370189351596152487889693121240609344862072339955058463986292861171265649072435678772051779811108136378486132015128591081904034173207913916374799573859904171637377935408762143560583719661481960956075499412609265789711111916141544922508496269340971372556292689348128949628657973196811918248515257608681996647940163579669087443304186969062324944493967390578131984313699743817492005758911914110224764380705266171879039538959830971803897358753046110684581414959323836462395039392224990279256636409527006950486706094984166830539358186087627097602274326699102414904467195790414666932149500164925943363727227909066723403656017468866006985702224252888070175538405029445552474017599983405641477059374363349332073711762365783824462254486460547531891130722899190460042073906708129474468420510494561625063722811293800019771795725596499133546764597108968981273087037283043748319140337473064974177439907086510545638598566778538412760638335784971788572813739631163793338901480459587961656885931025020329436602487302506758917953013507271944215858692595081446920202282614857805163880513003845008093946840318523943019961926702477437797134037572336517742858801889105308143307110331108013284270336737026255096559550845028335660096870631676471038343568253925761659926492733660437524247665215721247078248384703685024039494209329780179729054906295429633271987374687072557211725083216870456126599302622087453924546914535341743802972026248325486876474639242484361575455205393561675822981051973500272366122218893000379421275966831807367795554436035889528346906328364927653464521116536098736034027306158223414636364511043815164233547646639380511413434879860992811845164097666726854416658534137885329513414664586260667407913233896206381777543248039239027606781134656112511570634236693149348531695683229469914358276985557993008618234848599276224721098031428782849639150079658480637383801105505277225389777443214750668350548082136135563934201086551252788140979502975319419455752537284310711504640618170662869864675680041604677146828632027449737144447739790647407469186386052322717763291310675721958967705062651268036485499102069859544232604822915606867670809151975755626807072701536143138319836827596462876657133119015350186426844022080345307972435183156167723320322887774888138899182715903751108303185533202509000035263122304257532620911570839027855838503287490065337866727443898049986353318927238364964296704415283667588663072982438852790984916224590451972376936214892161107340890574151358280408431064962087329842239523803922811838825083444210530465874442240389312068403145379719848404080159732627227768088512475700623669353551029449247306165984005881996340107900773628137633056213678806641744030104469257712248643180572801044699003391343347423150886149333922729656590887886330089800138399137790282036307523617907814825098097919458345111371207244755522606956262866628370233400136699339872583961595042934601363378018067904539867974119231523031519093901835802966354150026996901489774012894926038322955453498809393436508523916363175216498675401796681940410172837376327662503525630256389370980207721709743411809008338299714662417130427888405834918670409393516059001892974587576328996985563314245543516109651735482659174737821794701743037333103125291997446858576797675908299506086938060654024638286734363403699044506827682380685731342243173773965253300360597623833971104192007846911580772106540043612128756055907435958330687768492496049256674118191276065749254341751062051136453394298697631183733023555162935666414129935851444050532329798313146555238052015650419293125028163407301503166495069128394731526492603100166395493257844284476183188720930407144224509644786519882949341174186958770078187890732673485446039651955519796936584436128706449208328915373747561108059944391296675068394465678330118520827703944142921108563909168877379200452789970970507689339220049161762614196784608038747855294794109599408286890334768853888388942659721986981483996734487680591517267289882321750301443899315335545942848185418306147293952575612591349508662182916814202280490707497981039604836112429269712901441355589929321491163973835275445102172151221482343296866018392271617645494790080917897369232210561666994984068482330714632412463270173042683445990991898408911136500292966992968960193040349057179964443028389379060431685771691687891501750094441231065301982663747753202381731361009212770091943443495049315101682446883553179677809698624283973522220133866777976876203021660646276911372693352709931954583819905756714643947266327208245145791116769064367458849336218572698748616092404310064744615562630929784619071412062737879866208022280239218822179707680208327290252170833151741476062205828574937396457563611786859117509281271901706426006217847699866186430537976253080352595930304244126331000099366062093641668516342837982907394227710313923097357532418197141724879155218985913880631709612883822650913046214675805304233893095107265447136629553550505443181073140966959814486037991179295400216328376691514793460046772425285835490983995493412789423858768064974855381359913475732142358488462553984722035044570505450283345133867053431471674775754655177134505953697748102375326597185780940733923926922414203460685661797726456967045514662374124216467565284583016177226797911786326734315059185949510589437892233098240150454263465478704028348110484597587126172006161491229489053278713218768744442251320223138965050998230763259035782974197754517167833495116632964080958560486990158445348962460048195743977666959295620877045579424131160876016998913384062690880081235434998330570928184575170939283424657855634476544728051996295618859188313275272393188341381872989080243818078231262361912514449468250766898358011632820439940952309577107847663035077109067745811353515779580558648159573420519584832316068886401559734379138895342171251622149229468449402995602708881977471926443447477206601240828331472602956933286863299345916136965990918682083842440932546281764483894778599283998952805600957594022961100305630709791726771096440495426538260104582693483236467626562778905008633577617920998643594935875728148615892470516737080784909230782154025495000289992561342063034992436885054239810050820305002338746762772855154288768538157671727300032068220228045540632381700678862400267431553320778096543951468708778835352070952498849454916387096164304716156104628218367539529427339613021618295711896153561039426451571107814072100003644304793321892379274980143354337530160858423088183839326803982651146390752520976263768032869142716819269736428074077662903945723924350716046438261021433019224063276877721371857610953012715127940157208381358907999031311637599762120752234220401108681730812860420060119781304513309021744430667912497203048274296659633931122340345549277893627464432924157875058100978145905856189118309705772630184968232763116928042919678602331840425955120822338407565112658903556543502312086091436037353549575849107195982097582721330058342057460712118489650200569545842615840529857856309987997219293112551545315446820771928106555513703916174414438641436928011021019871368136251265755445659491682373520407243137156953303962606266290600775306804418182030883234991274364127700266177418318036650749434552658185132088194763171884190736625563963619150355339027848778504050259415786369546440367186405326451811550366579431288786932915975075479437692471207993880615771758633948435440602666118839003659875159287745713482196900428190610521265121393983787638274287755620440839237668895283901884013964460474334035041223277010267150295443295199037559497723219346699469413663879433409966257334782165611605487217852022749964679926043499394265858293893627840766727872226559387314418342988402711078515557503279225670319714019472405267437223145461219317775770403533311996682661863923391992447005816198402526689169379830261120071690171461603771765798359055054191351848388181790898832520814525338184300627870367256103239875978003407065718989295689624635376442673219386480137463340466690884819508597893854999301218299360359172640574449690350158941591360180773969260961322974414670106816467228120225962416608807491010235699598732074970755982252808489957929685618991479336038973433385872887662657157272130914567659537532592330580389698322779228512617742704751529680683677990891128123099745666296043533500680750166955168818034002582551318296699995463703953286872571540383796743948242830035349233292668403352052487865553952227015048527874813540385412559386734110329318590603658433524813578716992297267477991391122542512321494471318439398700546486990360272446848193638321929614734232241582461946495365756889320589685282479327745316249162820708528674493935700470482929339319168461747568508600091190780697164823447134916340592926242410209637612205597862555484994707201465079579774407607432756203379704962348257500727056306362000900761134071890158246436143806468341896652962303397852901999803491635551217814397095639369011907792866062369006116855715513857495549116084655333000117479304321983361726281176079017671066090388882653019123460643144191935674324008736890078667640643652742974727701579411253329466687665357233409378308228958951886775982888738257277714625410348453710025911781289365953167050991553448828892156057987695547731213094618496260548928913141076772130082684503279975807799834883885187378995425178774904200629756386000800516675039612268850036530047269016761934114263310171147940009582686699939282914172194331332285364324644163353965519835640389320886981902983740178993459072498234270729558945558394195131772001659796325413698677859904358180530970321155812591731994761949733636331774609840680904899391273181894571193319789027699020669469837062407438469207612713310613879355767793874308954376929884464177809053242553475569016159964498688160377426887324855044999745872323545308966088863484231347206964210766154165686647700673984406696914163546187416097499797622650606514964817719781656065490199743510901008542694206064301288489859106970493180360808389600938816300919772278317599635379898002929773095357147399167814000333711905719190234523877879409117066854660834868356320043102073409372233144571424157005758630782460964418392717665257464631495770264447020584795370810953325898963620052382510045040504156139636848353681458017652069159437178422559033186826633748325068005782270178010302618568880794423140509715449806265757735887688434022030466277787668885739776411089181587287583150878689571575003673688640410407059520449469695969081221405975153654916077351819275542946492720712372714907905106377875800435756964434015230544092239365843311189301900793703730270224621189620853201052232574328867167074827729877971995066669361822613729840959335683968320097439879348431759599944055740930500817769609054015846857881604120943370884048112060457386872602949861103381480401739365326662168310448397998433882298364346574118503320321402568232893655279254681500948989732407751726271806616592060035536596598058715821632965137653669984391709734911893726891451453151807057912544922993511574718484669518223783848019174251604973792802558134061135034262673333488193508114873925548644072438091191383661797868526282583246300892678005141717695229210132135738588934519529941026588678598348853343843003998612511142696748757179905997468236576109181710853928132143092733684103734702165412623294787864402993463420156003922093663973034258283437505086639621891003071375327180745568139433885163139376677512376087749867740353915748460011046737889613148312074855502355238421580400390452890992785054298046595207971260241195859615223412509906214726374471412136350727259966151101336241815342455131656999422046789928250333379878757666611059047891609500758247665497449236316863654977031966527787760801470837801658290434898580291000778900361424161612365696974769401381780357856020849332762983262711792448850841220539410458527816987717133721949616764897933837091028383388067739325690805778753929913553307087087977518474237136896156344390002984881618007826508879420208944873589071630959790368186531633439435559171664998019137242374115013298584124902072242059815116071254879350581963553469658218167675685070123687266434677604450412217562754116335417223130978228568223318035997019987621814852386154368196675755746037516545782443926580099631902211998374599415995764983732388756180211537561270825482732470061882454263889140262569009041947561227147998840249774707295442273114625877848774872271265982327628388656808356632836600991299220518753449710561417186648626936640074993157507646024586787629846564429483086601052310144924738423588747707099177722648772532885259146173963040809988851457617170311833810088097900866823900176122582503617869677511679017744363868869833307571839884122988427620295970958355241220766461291872356059928892921807146068461440390121508654396951898675830393930860378339605516050619550460847967420152353194865730812144314391500325956249545311049571647022655408625572515945121614555985176970550797333144908803865468221151070972774030092430335888743010715681973374535754104449664214319878168317389660265901056658777828158774500805226402250289523622946149047001610067126384304348942447372137877860478581791595554256357077715884230618102694897573170623372429936831032526511327864453752345604942760790471965770431116610412594601722771096528144387305201371880675036916767256836797938393423375323882239562999534908512726777038944730985164919621421680842416377657405468065792983700327616156825416637897393664074071229953456348321901532027076458829033262518553001264060183403470809260571518347637181781973421302834307589138505347882539236424764638731052117916591489983492516955337491399885295188099789890291152113384796580406646745950867603854577153546019695273285941056135563418534183810709363886992077390452673294748549678000966798634252696069374674281937005985742589928337976129644516163505808786603385294026300421697989461995830810752351878259656087769962843394933710019977352653037546406185177662572061226603546280911816265318334368092942420172706621887428812589885085908096830210385177671816077754902293808683784903456855897947799942550169918158449298764655991709237256509939229796075226780974868347263355699971993108771504959651191368435265493812442443361934683030325281010465364218305447926136676601803633494050738756842463885182952630474072014575153769290280582743902142740603118234436973074058513237451931645567852883704184677677432874726121004027307539288490940049286448179299554589536904703634095473936053817597764475564053030239650673935012671121267092604734326487719666888210020435428139861752312686040514726283805562295567650513869527995867520592577385395804065662423629546777382588659511019028930097076825564726791181561491737562418273951169868204734927434929372968178599442063678726500039366014785019641725529888788049573966550459238174557111307233272566199688034575671663478250875147733662985404621375379877708706576317194182525664257176648818448815620469420154121578884917639078519654065990294068905394893131052822221976525254479037744738378868380135126920575956922808447688593251944235640973146803421357472526656504505727367271726377179481940994523980453339319305914611292712798562718095554706329235502013944451106970288899634730651526720223560776401089124992366309545265991619855579574012324458172802036309359457577452537559497942139518451373158386466702029866213204513045884339155254371337053878170673926695599938840825401830386156079880131003759967248398233837045696075698607656031359659000963937754727423309578728736792633541156725485211537449555951294390785474209096538800484310028872951448405587041349748212501761231824089863180964836031184028979933975192201843163090433777157774994555255681615822886161925139406221197697837738544254703225182284549119068372717313325902532941420779138414479006702865938828475359925290096755115599849820116160455301458180512059533363031676770227197266390463624227060943612198800323813457657858143286133692240072718829740604181772154884243321329461720005937274160812645915514628957029373159728758648816061355789336463718317480187880670499751348057590500701560476352032208545053438458242664413916953557887610733367239852287429476330259436802448720185829321025522335653851612177845538186134544207008245038881621199153771119796325866731890345612042234851531802521905862856877713013584444601758052115006760566330796947450670633194637213777777648414680212489251253682776864379128299344923992599323943412598046009366389034929893519925720861627307624262892909305349254018998215168655017497989908406099419610273129071526567064198976953139270990181598840718290435695515245849614378228434954875532649831449447204564040625108270504680330296789386553240750242290941636622239942745347147696941186654517367668077974921663595788496748949071918825875640356871632470284766462564572500693095834842135675228827835747299773804045995742421869253702815575863027548524290810283764958342854899913767552281485598611889416629906212628521423414383157760895085030018950887572546726113716138530064440835376180010095302269365997097780818336573829726559494261526866059301404577478857239997159162091248072072661721239774406998233648811577549513268583616103757459811347528076622183279862241380410440317257234131591303050243374781703526936565975645056435481742219693298568815565773822091087157833632981439610268866444183328540839580208533128186609386285807184595037628848924319840010851158976792669226939712430014932728644754362835829290684716534768135229959342190619803348177123439080203114678738190228645221733401001953875603157968856495900869677529175212612119713674124091397057959790617845450032805753097543684752357163436202704605616555189170290019310090243257186975969973729458272120081220925596865204194745844519459154840222875690122375238921918081734085068876180923891345311544828690824238718090443097430959993974479975016345445006413171069039172470774885395333368101809177028334499196818668656394166817363095228949275068284748284115718438083006613731888045241163408104085739637129269458721171969474582506989391969491027459081293822101455437181551410200737576259777234228842225507245089354030431344192892851100226953580032915086643895610899333765629148113442458916401400018589395964989083960246564228378495278467676718976517927232685386188835017757351613380834481801815408312699554984861342356093002582111001685506610720969464304824408482378754910540561065988810205029221268490049220305742702421116502682814794528082951864246869734800054160563540046234664118230992884442753030365043698067202975979408719793206370907773788368845648473619425944595440755758038390681002621814521117395488094969440422335367324184193638896785919228890793697158100977811712922649036077733511686182528679784326520342631500422508106834313501903524220890488850771928943060966945863355329574224137893831318668950218938391688239543218094431168084659550177745913282850769140142789938004530111267217108993066132808195432500688966124109614261582659414929576956475098719453878055533249329485754804421073953518820526998883537522404415044695946183861733110262966516648131417953803025891438959125148765779566396983878117718922713362929916245758033067289212258341812884638289656838703705954723534614524321273337781168127038282223539031680161069602774404850736638255283207467084870823139635184116087642075307709292555457100387372321695454709801974096794454412412830027802261123123991154615416097405098152187912659525466860411796400970535864903656253153737374014296170406264354003474311761717671211228237114072097736626391167573446858378699381954472507468888944463964352116941310247162766146977780653105728181778549240815704472071845760142229797402602406231536381985091787302314488041611112373455530664213882547128030903239578051835729985104735646478074516273552781195227670757799815689603138602115531382026452425335025570521260290502076555731301201717266898426538863570112868610702894102861590994454113605511488177374318348984826208807919148439006492913108469603997163719315405290132305698522494389024859409754910646736545329009736930537571046666429040595858421377073297870664706514432174280200882390648061356186632817008479815892525888518844370905498384427374124238648110810097417399195392860942419113752703142993208398126544807351457930943205079661705441611693999986496149104245941807105144961041421260056536261271296146712230931488396042359327274073387925868241445700772238628030027428987571674676173448831843229662186204600166586338742131832359791138549932798294763069408240424413355424338432916882935894537323321492056391749345260143383516932706875354987843168102348381203500859837647369054916388957655876239048102128234964083241807180408349730508299674292450306962684270295158902232831918088131204186208315445406708583433290678166983515570319346996684229992463034128023601906293430109955559383181163096303959279334869627825686358896824850108493502793774680431855763593881601058679427527598020423901094217609911340694044690310003440716678996704086309015490673924936022209357885188922624772168565589783541645678429369909763181247908920529141078310152405759152858580738401888235984062328575303061267221194488535333683837715805625048331854679326205640217218066410576976071665323250345748627649847112467380893994962375901152982693236277319188971556398377651011403303310037974072653292850446987314998502478926231874107034706228161172456388909675485467422740446242773876674471065598903445558351430643740268620847569388690036930019447403148097583553642587348787028431234339746661394013545761591741742927386916006682546837214214809810453478199160674541460608138525714425244994496836282098117831322526135767382696598346533407784527241522529953762446608687119656683630651076325100288946232474350648856978408034509170090147999617168463420612881321344977765042988747641970852002380888430442652131658489669497037846444093069423170502392837747148456374734684143033197196340710200676700776911745533503218067736401506706352365564213706388378253046072702461582982842652293120437051586838721746477612714875596772544497021193222071525934301813004635605169958097085408466085597982122137303272814999719068602954397872001947995569148641696101512977362101603707360436690394899949790358283770103284832341795208610394819133005208975571505158752298582850766724236113425086159441190265725403302015420812418729783192475563642210006428387358781088865249542502666095619143297794488182339058388417611897025371678830471022451110999812119272850865735394643623845971576599217770235717294392247972393369419104734814745776545838324433128795837268008785838410799188670765909809934218219215115887848604844001533494703683269090137560231199785597480478826224489735728120636191309425380918426139504082466301871471635930929828274280669758931177999360380575963685498598241371190841841977689724630381265612502404901600177705405956117443464270132899201855062613472940042879060533276994109098594622997263224044912848480122881217518859070288489958214621266921193747309058184319361545914214864991065116829143489028361728222039496061801862087351896389524706988553543419144453398156455542475577057971557993555391052362891124403600645782324036367714110793964087491547031508547829159100786083139450796285900759525019367614652765315604880341818375579699259696762530810155637842032756234994972228769259479816705256682073417194629260595533053388560068975756889408529819519951380523657602739885190697038940669989749992626638423331478111257987247604531907826197316482524641305935362719446083758782907045807402601124828209654112709331158491445450475147167243061595180634061539926618044714970214807657054395385958206018534073572395502705351743276948723764710466196843539034039764527780683185871151905635524145248217753630270121090073883172323071118475723589475876606477289499297192755244039578114298412804284455053030129218791611807914346234387117707358480977062273553784943662563714118422584635106163030810377122418942394824135486206247429953805629889599980934781863746904526465827401309512202737509724458725116781954189141004125055865036555260782040141203492856159610929101843209127392341321741300007756479203481751495085040143448880119630257757293115039781973040041606042894362896976553355508957730064105067229159514383922765067724364821094656666290107274999568939400438272240641472230183225779282267455074387298543887431354083481066318082200649959592041495572776908756310304452993141771203775587775219168341637791546111640250194172343736548911347270214974016641598134903136774953463208755825909296896115758831112138368001476385142106190849878067581351042859251181367629516008314013240696428179528974107099883870957150497536082118759438944175686885743716407475450082454609713483630118546254455230028355377080587624980881337265989385910310791987408083870289195060402704819607011973395042307842858470715677908820348190273123507444297856956344612886310939724707696332810626224324781269989263410241415467471913313866886130768998235178275862883523804360647276440789295127817800185420797131864519354873020031832681115535839470842524507503732403974576332461784165091254472627949859205611180054198053991864525266285235659445795925514203071315672766525028774687859093808675578977847697055716346014607946549924355517405068204543581078788988208238218242778998629929109662830074576451259781107897753086767040543417935611942300524028199834596631986473164806392378808174531338945116248451763107050770584742319757146374689068421125596985940517489460935941925956870387303140746156925978069556577391775485850484409856033723594193205703947232169948885123653217043865639650164874767218073171243851646345874625499208039196576568243388333576968576131161859209827031187701628625910296284150879743566874326633864114530903074185526693426704552751031273322802785376508885088155887559566890006258020607240452197312915288143965844886462376237034872952933598660282290297168830486722555625950200983132906204612669073919190103356497024943579902103277162902482072294653465893615285687872680161648927000790734549529635226022488371616197695939096362893828563460348297423491049688527868580190264590235326046149486067545806225795941695439370916149961709365579468532499608493816309102027757918458294341209993882549920970559273033205315881668585133317466705027525015390388763912482613167084802438936174323509054139052944972498919266686854693633512734630740765578509383238161030311190120491653518226148470799285113312323443580905459087937469925035032532217816119651586920168418012152019799834752284645141908688705845778842629140732738359681800287163095678187095539887942536427601263024808215087919851720238629955248622174495688710754890267981218766338714884065691863369082663591436793716481655467892091652803855125616810363413045262027361576796239994391666376247326523796275162428254923547950313503678483015510879217689442301531150419088360249696264201141952945006676561209565520284700423002470994828968422893965486791091124396688688866625403928239648753498187816638040413263719332074071603485011398327261957217416237105911599893551822581661639436111625307559285471142241360833379733132072695892520104256934596007331712333328706068510555221575999230212162227312062275944189956587399345817221554137798742454506021199936189985694377879211852159202603376686337756200320923223594598924194470047729997143393005199991369304168783197131020852304886743292353989713170241145228954577105898818560990059581457063749633680666101549965109707809890109315712792747053302672724310960321454896846776269810443821835521402350418488904490402124801958800581167325773060078098117108147985026517250938605776078630418144764004663864870059827500726136753334696457852197838720826018693513690422890583627609533563977753509465125479098077009762274041521145968145258111187066325462061158121219877205287156714255420486734376559168745779655679363639101334150938203131261890469415832314464920458500394180891729178073920028861910510462311483425749095779422492622810801526446309021991168892470363867219156653123936579039285253964920739987049856002950623803421757281533790653878388614906661572652527698040607625286274046991443816163368739534651583910008226880867880076201695610560363665112603314339797253755742318537789492461885340437215831301695720223260631738203869052267593478167727189179485828456152836954692255109449405034704447825159109549669469930039585299120707870465525860114195834124299281303986047326627381650515613908744210513787496430009209103765098001084757026923804287878272838584989602481060962059301337676420398231981488911042115648250941725473887245671083520477299027648053473449289432088069522690684920406546103365934956958910287432686812651884918641080281063560122051435893605207948156303453733645429564098783551984256457019599382204302598672779091219875818011400399337731104931083745880122491306581415413178562342731459704636011105890857898513577962942334349914171103760713517951389136602991436920232111423308673576034264049583236203062389805448306844696995652969468899940385151599064721106470030055051561744203813466960412022868211090071110409583798919559166034815051768863705740148091901180988590271067687941159182561949690875175554272665549215330244101213821135454345618984371830316180032911504268271900205262594949517302505547746258371630296889490002120986429396733760098027193212110296279681321971428557291309679582613017849593072778489236557912461207333440936062060773880449616054263716300611536988221997885438132602799718181744012950982486502645485650364963275699061605548597774006755580125148327366182861172584139181639791609924525110643582362792583311924628537867652332493215771911364863302121734655195982218016649699011205326747325736169885433422863745612930684036849879226861883719790099674678311517905257334205650506494003674743848077252362996981591663868217726791122436792840920416472252564945625611605839165944878384560553309084267854282753430612495918279317888900341925889706185695598483694287883548100182688417557515577269884753571678684988066030774311104356786857483040627467582626284643438490485195789294901539527554535755416974660321002571006500777029175416022150385192673397156375083254143612823877027137091143568853891783122023296094709666346606655600430432056194360368045823133356483454134854067527032578164274320731344740215570417163672578377843588839499016616808236275021880305487446784486422263031831147385051109190899808323178131945475707914568998369726260255624988460671733467058084749122691879262297214328421505937801727724436927410709190287046114593020302503203293848892531161519745422023174413450987648342643991653228334695889168151506882500391348564297473244388066558795684236141330058252156677428345537015500516860137993060178216446529573970827944390886090422030767111278184243649308569249535117100849931989943234758793392830141235056973492460003259659820661218509047783669335367779632077435071010978581828450258312691438469328221243504597583954202042459976135472322846292938059510789548075705852883640662119736327612632452895923268557152691556888031982739029761209498106267576284529426884385039905685725885277848352247109562086289638864009055244981099394235101227980635616642878129184298829014293087869927630339715332655342978690099083980821338824790842290860210561521229109024720434166847657214871548901746263208315129101061342691080978777943016694450203197331293682198122041571403469516523318126703789705022051070253242607645361071285466631216024189135119202590928607393614972779618980727136246075507591547025163320443704264908914376014667022964668713571886998901652956246872032086666992560446616279053613701504811510283362459152717129528164048966166187758537402733785165601857127547200993357610805976709447648934707590263113823171952338130718303559628751163216349404225968917576028196863116290234955067689004312333102663316762368467503059577611964209446344327534973205998565813334498659615202055161637011458168701283712595533076433228930416715784899066401345907356708138465366842947115929571418657246351975260686231483836298270458173969407426569482905147973835323692591229060345846268995847524114619244107453301481138375181985683300682178343992248343894600556675317820534699813723616582018865540523138388277248579318684109033929652074517650552091371779016730804578249889825662553090349025679683441102790859769932039818088067968886796539711027231405438887433454765104987210239278635205926045796409572871479303531112629319966262664341056872507429570227236001077982467731895039672721836128922023574410231512067470736261285072569042983092351203199929871673166813563316553762170461274334157316738141025618025428909796703009401846961627112975497775872613323148474880579943726577174495559491633727256595243134563823034428767564285627140924744687369262877735429926094163939786194372658812398597659950460462130603900755290426640916632322904775719848611024993803071519755881575245963721623084684672290685813164491277219555268263787423175061638389568434602397240623019831701917226056546646911709238918472795470357562245195293967978232335788649824053898025500340359072999272796305799667106050739185379175593765712509622530643401419289118625863768068813331776227394270585188031926152198295834652332084874459377311138694083396356644199888378255354250736627674591450463479315007600242365936397674382870676362413603470894339275107811833062942196154081414757575054467527138074530265979425984105220547689044338672896719127071645633637570943670833059465173066023792067153168298547180327549475548991347451780280758226198365902545772727217192896434746362783864187694459546986371582750485993225959784648565011281744738325217000982620210997467809235987401807476096382183713383633673113764401066103091777693968468780286061502596823759222644041867651358657372249597474664870505533359794713506606456741599335117836348827642320714189836584838222055471611380538382905347867870610922021340223571183846376446735134471471969842503228478563522458141509157686130516362581991529907990070244364224377648989960325418602639409710846968232259669052023280182004317269425878795973035498610637247017420898768907331100212773553472920868857585233648543658479698011021349838549600407864836407206821354513905184866501279317375189723305792709932894251452778221229138636751819697749410479551351683711075223495568805883451865705763373244782095373687722585716848289738792890061448651149414155295212262338058752849972972083380809073930317182383112361884921873866896336392993125699947936662273600772009514731074753903686828732935475506523446295078369446204055857022363283149042838792819139666576190578219256067435791650012427081816464457629549035901386552933757901672499353279523963052423984309965989247879398171559926803250957920402127532136486825971088051283132317564651545388294683796042077692563415401585199563185710762282140502806385945645011874529585386992933818359327799500219614583869829503209644191858599914481271041123906537214036966772029224888083231015176979703410644282931728089180371442536078620118252460238547152027463418940317903216295388748834318844951192220921206886373917493013119364552968243515597045469818669125301581551819109738143153250870557593503680906136366655971355193057691555918084174686502859287536491475454416693776318035885903670761593993715581216022472961623948180364252467208898519372595770515616577730565189116724286720373849108932022905655363449831049548298214933627884069462861046389575101894227081995242060748035650299753636515174613601424488414142306501438703537255596645615802238540606810313755033625387682977118319827262293773850656009261302322213907152610791168035951616126639171969775706663083758207428387125884638030065269488766707226080697590543882241740549820857827164063355210121568845475197629739276230892044324193523919139089161782534672127588059000604806840289950325155762880911173641497643426080413128788436143966362125711879060439139651022881289319328354104095930555622993798568175677433338670829547725796430389597147512667609634954450489370050372879084878832814258212501255295511705659779829917638943266614649801017015420786253847674456082261103938615722658669294261270584096466477402379943735287605001769957313259933997756999943617806304980232903652432679748584132879096603190878954592296005973497410718502330587446231502337869181070731011887711564165147500024700130351648125069123814540342568782616172877466439975214575299568783736387502388616157921620510176721971033235346540775730653320536897774565378650352124470328595997852194504441153153989299682570486053181884223976669227537441983334249747891963307416342938588550547465128243635398310836184213022940234572209694377867799706060492348347705979938690158264778929455568070616111578335946476193861233490459587185785443173255144310508410812451637020392412050105684807107889394706858601751936623181349632734329696369116772459256156911820516784993042376926883545589708367754037492512206828035300299815969438755947647464160773979628261639533942516969774011848860699705358134874785728513210578078111384693666128798736853290930622965564279761642486534386353359660965853229262904099849687312323820071870742553598337321582043731830877310802857437854070263948186994210262955185929675674699106276852077412096316712559327848437925299505706569651981315238466050246915370251683254428615596064033941679974658163666407718069636056187559551717704497131354705492102048198739993216932528779403086839284455913010823029228900238207304752157805533274415033952459521564204055187054509436375592148761517853216812017616703042679857865740237024182145749443430811262961813685033332180877004331385256248660155742792886300294169422321810241969990928348185225426348840692586883714446828642127420041664638403010423196149648882734044328894851860391556473053731457402367845112952376285346417919692473407306130324084192983684360563975367364469299362791116622597595119095922072661562408479884743630840773806986796197323897134124323542957251959149567392892397971395425349105770320966739798679181753957767087042583894831344894756796887316399723671185520195505744583422822792394110049649686594992080336423608176939103241918054517446754609982778427091367241664797968452984206636761904968125595916019982781323002247539030310603897193640727730020772322712593031246890109235157772675483314157497727296365723280657264832624208597461225219937820670086829126588831579255315950049122244108847750236799947745284251306618322866769816285372924564185879090565803672602946348990142816743379767118232086982742722862673587211055923503294992379114382915627697396553881578336810986905446884452397631763606536829177985433640762922360123858150577030708529136193958983835298684810067345730423164796819260623219947432932610575628638895515981804161690487639350942934958983678538722115279713926945322806820688974033069101185670737705497771428999601291659740384312453980274940666478252635825009428417630805972202394660371644957192698889176095833621467080673059270017775074543641234033712331190773298260013624803001683113012486871434007102185820001080578173869363814135217366411271976812457854330181950462994857644045865758242570381991702421970767750877824191684665451997678389837221488934605331530398541151084347128375549353059225057458714884184209941913421783504279580346966152366775982250012328127956974341240373063152481991789086335482286766614921267413584373617383504461279365892221784735065154444589108837552869649057507986543293164838172095987183623290048579685993279178391320888744868499471353177013795580610270508060987077741344225434616109318067139771454111263216392407753935503793057119245793551698544502925683114776894380155468394235468575831728390757096903060309940360329537574688208718533196785294168248165262691195461277316095361525251730255435033897601215220821610075669108279911076733065287406591562088769836663933763287481123107190419076240046352270561136939170549950602023372966016790341040329088853372551017734712420394973999706419371238443505709520338615504938303694445836474607233266999335647224107971874889414895531349785577179098114392554125430555031996344631678560164157531330767211392442943380130349639172184059359293165657261569532576748406854702022649045013839555851557629929756940287711479291225448106106935782593705506005140034811112014943504142257278179499493038279798341081445309864950019207318470514684007606725694732579206698755131577405521050487847024756031365107226738850359891042892378856876295002692877821732105713727414442922781238961076279279772857141131939481899853722939426730217583869471343105875344404075021974861161329167063068780291184797116987983285684004803376750239600667768549040387934063121073215112519095256192112714840427476392718635816036503411307586029374620120787728010523137226099460598249025740440035751201777201218056861878087992933721525793463618160071682273397903403181039553412571529723785214480241413826812114223316866601005254371613680837607582148308376693342754824093797098908026553922011487529847246828962615652326535663878350565326415836643497881173340109009231089972688638383470730724544135188900252388593934759367763610494994393560210338337429249224145789029718783146479485367962381000479101452986990361717982479499016710637123558786902525763095273274356109714979945791700687177542366871553738773383878337873620790821486444668157403522084792223290615247722257331225651024046632237925511011712077116188328466137555109634239690648784506688602929975804258382961998610204835560548537825374316256831276505182989650005890350517693017367834566083821454684856567914085787878448513805004291932373681508929892310491659237043793858163595358127534390060083919555154464210487562325240040734005041690787327463652036669133092620471796374781361060344523573953060556864502112161513724149097009874045581121737495524405278052426079708263571066532741220044717871053387197176091497023419487576447848385173963707927538801628609631937414841106979704643309278325873593123805055957264501717123490654057802347886957056664275549606799840193535023114106255226411513464868223832902534865127928135248119860952460017856175909170188427087543263311590142926565776327340826679044795801989053725638738030639852408299046226502331117997698514624150021048379637848209984377706769454919190737078100616717799901983399140358349123531547272723821714771940267547491087743660180336242767114729991759018568842360524695662390859954304972681938780629870402742902884084251899771998271873851005107502769732803404522968548304236557190941521625272412007394623486591796723219034071416995908378136070228312462042257396093932774650484258491583414133067951762058587385764765311567988394742991367714365092003997470080298366249387472008297536835655098382895564142738178248429070685755455872143074309349503211249062207614307451404571448442091532096429214508057504793233310537720453247246580210157861765227074098409371005821333408228304322928371841724582580109167891633286039646473177772624263448808055026179324362876889119808624361293867845853560189465163538150403510100558147699234069318303000832675700022584442521043248703159531145584994824606423245731448974839663069753973572825072809731032410457670126777216232622135152788887518302080234530408632275846489727336664421854249499004950836856324452084634747009694710316883010014450801857453021741081821692665708056389894387002644877992891045038544606471609041991623821439556977346067005805787493938198542479680794858490316728822719461850829077463246727498933066869106141665579095050908894087840132124190480027636182085302673384518620764488979341679608700796681829840970800132802410158762014590677669358318281872771332566552726079715188066495477769059051806771518761024130614463469466894194818351258124697665153989029873889351883541620936432387323964536060535665366771425400543395224249509698428125254362760396121550522527927918096803481678667577931338903555282355727657532148898727846217008343390213168925086981702957891297252977304465911447205777010951639909606332062653141149354395766082746361531112580944445994377360585165413130105925141790373375522608920307893114571839424289425000014870825436688380070634973928912068091673092636760513851416397129735900088628496076139060509193089273724917041539672852768256173315020504855368887685928868056621850816497205412453028409562446643133441066767176337927139925410673067010335981361231478198335941686678958269506626026983779764177325351150970195396495359928654589488736192426012418578310919894342988210133404125213780562354282278096461280078654696615257331690910622142773229355048343579405620753670871750196660890134093197375560284099522594068882158561317012115426220959061746230075882640027603146601554814003740691380694332154945370481117089910813732267184314992721048600366945378825216787033931419281441115648452357011327572296799823958177806975891594193515866689998784726650771398584734244788302308985807505957447671826217727839157708580746675967403954853044075536400174103726811176337338802699140653043583695902867135239237118064150513959089093172731998382819380248619149186548782775943842459909715667933204401932852664461614768521747478124136373202248145808238903637602263611883180030079778345243581570069203832563846332659470238304559274910710583243427619496779037586874261553267762002495023663456211484615050754647742136550892738551700093427724087913769614497320669401623012965833134487250225187758018716246405165548394328415478843487948969375924201734684923574642037077107616274971601178518965361949567788032934825915193609066755579426611448293661182056306285960331355812929608809381073389443690935823882620912612603676249388614967276544931831388705760878904966968239267489134434428234944982887323322950962241260954194564979020739189541656492863865325192837363815868785944846925387700734561646072283420408731081561297557578263165551773561409004886716134298539802256394568012394225326619975992903766300140339975301605199822362385360360852799001942038611615979741543637039471703452988589539063897840342551223689694300200472299003921190196475567078243882766677659698907670236205283542416218553031628448167147805509827017288031714975622483098739924797663460849101735163416905286291456527227876017711241184418869977658219237647534961881709609858893958507518599482309610038809734290843501912454592937625275204811021471175782306284981177656599416943181224023347374148977150233114651220933113595779455743970262609666329374417417957858750217803894836178110385619005287991979111442375690798836858157582660404015445414836967082621256831220633414087267857424770662828928856759027043807111367128146022876966792662119159528007192049760599559816334669065148088733566141582256189326774409592452124657329927397999313774851252686649929465731987569213193113361610374626091134231574004833061996922164612946506231865297056585297293437425497418327705195253189526361177477240348738777308146070766901484983343561770208794995954821047011049687460741690320942841181675363651559449351134620272788714001817915114275764886100941968195721011226964188982673884598083304258180811895485879238934184428765891315212173548800302342894908446588276054985598199502353389334051654570074994709140786673994580186071201303966140594158472322785037094198514961530469295135344183152655509343972454255454215966356490859072155136095097988689352810385830063564411175528276350753077158637575135196855527607890235914080016241950498047762724759236364577937702716082399902123584988317580321932329569741108711441186443320774361142543576431047542516304280065875860840506215945511386035067489701679673304200355147960574056621038843476114843048545677302390406930161429074750477375301417069826008701069036403871845235900057591007596956981661498106880803984858989611840404648993005155010241678503743679319516417186110118797428612837313164053109238292676875275634521829399856228080852260736620269897940901944557765441629866304594292468709124405574391141413221353201176867690943815412543391239065674387735376827114562214920706258995276895449614061566745950491819804826654065284906659584113298469644922685749563534155078339775585256956110332798660841412950685287182023535719683692173930858429917814158213171198881153873668123528030819147972086473987382643584759526452596350404655284251882373131580425759961859356835461213666311558429599372781761692460569618886364516441248929684645233115682793401084464064697791777949026483631549439549024012086941744447517899352534079126930577648475835163282766773912742678700813195429285815730009968601646536072301205755462136389617227694020212879210054164301019000295243673700313101145354499843706173752515274380392807947167112675540814228703745857391779600007496975121618279476999239339378576780740185303240600170668361666655976744852606229582907058133904850382401074435136568339133200088513805788130296714736206460230145965082275306918869183110251723660690956253456550417338627920099386302974750485321797803895429263148943808459177194200848594413885813428157859723492631012566953180120629959064267473515100493304158439458477439569627505689290098154631098057382391604871865374965134353419663721805847334510384367622055908396015516205045369514780396857794663526394448828280341007823620541842606177751802600056354431024985644077759819674636559985840144685807104984033247262025618205479043495252049094759401394808108898631576512840478977204563243696909127932863076222641184507753494668795915368008710946557408992856678537291721364690510437186780189753950901049223597166753946034482104878041292160229275668706670854331251428740503656013731161098233899578639537519392815346205658792361928818647320926182396602648448970730922161696097639554169781708498388576497812556864676716563868482645356202700360925679209690069189503139408952077535818031025030308471714725486678366863407242836428113124692640909720967724317805355533557319779358040127893544103683216657360871047238054006232950104240964622330792864672185757979434393815947476998209068041834661660854145201195359336217740860484433219932050554601014247527802028786100228684625072376643786570105898009946666235119523435239025299739896165102998936466914846829088591369245809027640455904971249369808786934265828166248109939229892388481534479585731768231349249392928013697864153368280381816866286342859965150408964476733355326923191437251786519236595242993460726020402797221748633148305589667773617725609175151030257932983704866784119373284720068148889367185461049022720302454584526117902311141212174600723240453487618356828277089736631242777867934909023309567343106911491810762490559386189293958304505323165411912123822669293027475725124439794057894056653553596287325648256124428567819272473032353650652434066867319390006356512695890590576470064049787099837240552283007584038410486776687990170810445730963747329596371233384862639217216501621268938158273884849267246129189580428881888135001328305589780981271738326608535037674597273605005780096648844701863726336222490127204781327466263236985011980320916789922902297650732425143881983659300142100702311679567493945645137852368137119674848083292175087831867195573254986993308095334864850684704803714375124477237514151865967826332899466811723106610396292870189288520927954777373451544744724402164752194417623737245900943259537975908895475481609535474447925666954613145270986570287387118036276265983964979047388876452079524912449707139538037772942525001856706464203746443661076955392032923842181329852408600366092179984575903920088163031393190197463693642093040948939023701593127242185896026898541614726887603366653054655371406166847838234247751780600160439966456672822424178831840084026501548131585895713507547356601354882847026326326375328092430270542274863517958822044803892024476087973102198333966181997772351171004600402287234980594205649561552394146812436171763277143426797296153031476865620121971984942730809968006858432138059297751201209878393388809804373007509694834111260626526137308902561489920684834838370004348818890707163072909118304498364168425588354289188188469945887481844980875947726115614307952836822688711440010948435828570979527383186636895976224850253068839361869340085111424801791098590949498891542619095192746490999878096464663315079945918582836152408673291601405901198128830487345930652169729513891892319920123198060235260428864161225802102632841896075918967349255972269692023796070806559118520737291851618806990822256708200796965076436133617806522592080832288389641413817219056022738480829246425400054295103262000280735507271557924810106429817495037940150977759217709895814183370297694098234063841956970437013958282410869877422591409074961887177364955954112626934650050079211143305389797108279081339801457682022048497337252358026702580316379339589073956122570934817994972614546303509055654483635144109454729036445176694196264208343774559536151076637424347234757387202749315467896098636862476451937455144227894536340218323490430619023920995817223313530397909127963311363631775703741860898533242253712360021830058327342966222228391464065791713536512896753992115664905621263118902400550803844368477160306042918917559971439599677974887142550093572704272856802119987419522676309447190291768456635185933750567127325930095896104017378337789290809530609616977733950432550632410989962456821597658862811839229891851260983692192934627970283417988070539544711025554264087642140658614881557902489548193210541417455478419409300368590808059300652237097199782076597212889652243700577274101873580955343524416394308594887218846935645239422309925639831013934906799434289184678978239334446022068414059097289696737302604474230836447475156821265972311887005357368502815744970856348719949988345874500135721031264522878865178585551503522656308385766413163086825763215040545769166012505846021453754745687774580112896909314964307259928786798719512103743894959792439854194033614777184159446495196254121101804581784676006492781123487600245122148237957830830537204212075045699079985560581892700966444996092920115862924249949477555151399401659760983594605760632573874737787615238023427002575360610971159688220134941512994020967556160127377093609081502660800668859888119678905326695006910894413256570868583892023213036992277800162973850007524278756461919269504883718397912926905222262934342849698704493301024171497837305186391304397375211498498027016933731582502043162939344538657167690458010726145481552968147121692144311147242342540871728345581480454845871220789763425119788213380928208121776330710956707443363161723182644317482772057806332443978053971517669895664512284382618334605337683729449131561878305621173192179286126284166667789160477202781405692902927161044936927086253910165872168282282935790463863906270353024624624607956801309971193724351996018546589762529526455425413964223402099944429349996552774847665973269444295625430547120949097064893890403929663815054935033415971950512829353235189184835794026207682543076561859901047193805893714049543411727647057739303630827822631914969906181338931680827874900417437477396361992385042655575701162571841754485559270274055235519601004762495079841161202807523546587513299116625690811874812758255872011489480582672250458710699020419903329994338284253926925698109782000222394717149565851891297686789571733808089686657413479869384386743911681076539955091473903086584273613242129229183511852571255791904688265453304252504108047069634249488415872457614453620604099754042814847756784173555939721580007187077731251794477090865069983276395362424230209023360885435899329492300309010249398672501408792639343393525741025886259867059765040145909168691243581514418068038160925785497734597052262230933516308819973987287711076934375022451750941229649565255244190059154890219667552762458877258653334915109651156015277923727796874402394244388881359292941853095797646673187456158747381737309064906115093078968661113603739453475629409784088966343256978362128874393802761330386961577435643953997972645501049847943083624028751660027994712113672349732142668839520023653736375017625007716239185482982593753267001928310807921092668906331924915088975805934784658349959641932530841023002534601896470174841579451992245668427721956770064059658511417321908875568184851041720622413848488079083112782276768299138529491283123985199954309466102447652331890671481832300066949068486598891178594776311546418662657939956952162052246345436499183867045441985350849115054546345806692577992556895772920358229536834749529309577783690043622316378220760568084869712984140026016061553419070438644973829505524218529329715312755822413016357639398558595468976840611996953495356919479518548723379315595454602858848457611687678955635055119101891617409060795708928944483070831977712085135259302333843505149942602159450451649579843799253410517224064828931647591957540296094181373896973262200914621343636734084433876443843772334629763243610196730291335729979038325537522542235991437152525981637899461969615423897537425238474785328993585899630778434395974119991303150044116344324301784334365127654399641219860298607701704969297032954809781049259700391736479550463421533128987702125776918193916409081677024268978894481597042633702601733432873078460154379734415588069555487784210905725526236827908679193169645241626407313798559361142510205423285118103039699596441911684537535311609382577762463904746116062686431852790307234947644248183000631034751600502535517266255723942339022129792725453411840549049523831100277421792301955088728890008195068542750908225372517090639783960431967165373743209534917988563561704813965537023090370002406057771232223362597227382631577477085035032389954331543336160080303086045655804665227897605824787268475896444567717232374681942490148336339914234277006427549750636339713986297372474061228462961879798761686363904866363628096261581254726325292138996151241472075308469642784298440345478874021799912924612795881658049962217486471415604213920761578256498705746053682213185126030477414951344348958458376345833464299899825431174793920628490898027979882492837497807087919110783508185176265741057507610810341121761936109056799712397286389147531421088846697801488198214444362194494927190624789625789937860072930634168015762067253031558815839656649783863298200920096357498001853408799915647531442164127064471963553515299756184228549786398704011435118017611341556493479612689658658531386837095187282931229835755776429436665892922347492890489288966495704764652947603364895992495714169544694209864860313124222733560165091701010305073925249859835632208005126766383577008279575267826877327692170072807981094693657416560954586453129942299031367555916887713954358083334741805618141429393724797279382054908437355548029761049733813037036340174370467176986969362294858820384791497682337325233635433329136525417952630591366122567586408621401981725778988558029838247969614934573600143796840570369825674717860572380300250062925805032482395436485399421652467365798982755513152674586164669429978384973634723194107993319552911577517575864687354719316593323091275273422574777418663570148212224534561418843938565458646200363122181877107521389081710089925865186467977247837158806521450973947255185238173720453187037924623328216358679143189664455138329887307425238902833794355642265063151671377683813616606233429629010745448536108290835735504502137373849803221654682845250776473531109501259986107779837891938557529636630901315941959577743341750706060317237453058253277485163124278637673656279926298170630059732860425556623944467602196128118041918807830507812480440033741727755817214773669981847567487727154828146286703765608892559510193832959866415714432152810314206147499367989690095343145928917776566638327373487554134172554537505576443629321648259169498875050533948629920365474835038047887027947865653227644750414846699597244495481716385272162189570033644989289607732731277783048047442453797091618995301846053557455485555119583238918429156595889267046436796547258196610982525886983639981440908259508158758699646547951158482770619025578723167126186002289864383100297928288227945545028333249320067758610762411007259492394462161111315811492197355983588696621182042327345765796287086229530127873846905418680217798920451383205000001008261484178192646127084126131991448791152216053280826433694606032842347888973317415755577427956413156921242063165427947544083241316856420172682166448027704503560914087425656416435447250447037527300561157738876243080645691600745654783598511550014017073371977437544265376971372888461690447130137629538365122456644621470519606252359990081401767724446989917361789825002079384571697040358879772234265323651218836149692869855630472557276555745807614097191429386167751918346351208997436156631962413110149962713973359913929998972566670993727829846963944928715810940457730598565177469832266488328066207923877913688665547003031783507863725758493150298771751731780762934308198629391634592090971452066478084990840638329981063251354034859560250537816179389469676402053533938215158105505553784968535617203688054433328456063487057424878762072297902769002124091115830684887515436803953302982443974902644756950581804204825160417896788515947921201047770264674406564779207746111067409065243521315899328402082355071290795484894392774644226811115334191892012712294321750957650518786717172384813116452824224336180336277500867243824328381307402352288105026877174663506853175680617413142169384544124717203310552592625563889522684098893686610278190424779659460884097063248112904414006446072345976425890385817884796148798597726074974405632032569818139193890777091360971808589455281474528067745059253977332815455511786471370840634100864409490066314264214228039370062987967016588085213805686990565567645560391147382235821691146621721734701611064783889181700877247846556897228693519176816228043890327833482534974110195464331359395084117841623207442023552982633542286774652941506524894120589776903473758286448394995940968181898446428031741144651405048218171292047342001802230076781530690292293575403794315422231329325016596702711859505817715505211118984873942773511817487878577529811367520438994617360478577665505719894396462600141008465933974458325324117541535944809313922392039412995606448137625672720227012246969333851185063860932028065522321264262162887022872205794686156613908436097710252401104213610284810818523945973865434927870276078440369597247421579892386770117505988315618020690173187322448481284021881233281296877311547596948744393771842945330156868509690104844663909687298807333376932236957056466489443589924805182195145377628237188653165157173470974848777420279369896477143323587737535071102212502113375129768655764747999338486097786650917895578707344035235172529724565613465779350545187734600761384112632171778773720823096637263810403367331098795725234964629984639213660209664582549277363961919068542901099267098190200283130938031409472924948661087420600375114210396354429404773471772285578900985196758681771571855044831636654926046704284816092065084640099856593139754945425865762184875995977445911830393117000311420148493180389221047616323376501812503370456056390789840257896827679371161524318151994246408163629982669116334207980553112400600412900968645378793143439767405432163364742103119082862686446233030094852538940350441125101036601897182694537556811551538185852331790701087649823232058376566053336399346458599553272135369637295313537104791953997355011976363861783945769349626673402697564977793604097592572262869909263730111686927459748674667399014357785767093788640000415921488714142058546958911498986999725023619621027306176717874054115419338675971427516345225127342617830724724530658734812314409718378535155777413107288851948601335543297351116321039033795536533844534497171384284764007504276060176700108909815948107438245241918832796752414530381984264381788641518132522295127888843890201843863993871204297443957548411163381816894102019132466827297864774047134366440542208329139129842664104646678089240301141875342573480932062618152077281161625033439120760611441986101915802193421343482709972867879975327691120407066676425106657227412201934015048567151531651205189571375000734111587388994865485860338344437412971085075151622499797583746664462487056176364118738549283393751356598018718824331102415627798480593375561418900764633938155435677651238681906191351621487414783213439669411663882358647864903710588059631783284902945517291152384500452628016729706450827160917291302378703384511556672467345691107350144446467816373519311220521842727253221155471928037900997414967637786308159271777723197261930681594403172588245316072745637534257361565921408492217128071939233843967218887831141988178477614692690509274156133821974680893377433231926898498014317273897245726369976592121791657904082356868785987338152553166091311120252039438311687584186374987069634368823562259661307145524683736145727185626660266073155315009559378137873834720805410835554201876855536452530108131724976012739575345668159911887505603885045094019077520167465775589676581537253033492848923686303037274561800661204967591505951048137900002911408946846272344094312010668785989047574048072581934683691358837683743244573828191926613938080595057484242914061559761946508382385280761806527333288206049010847125715519833126032541666467662573003616598398423474308709387593534523242917565530046420917091110472160602458013101530359200728944783567228893425723900202868206307317181723256068874260288008782612286839559270466453219274136271297466062773323571064170049517150672363540133673526486428719001602938068938212314829886091545117488003690942223493478232560154963362569756472736533909911286772985626326958279698215379058765835339061180430429634707491935339221604712575227977039320703054714747014366234053494106408582482979146164682302770863427715175127310748351594102373097298123739830760324024791896407436020830293429015097044449066551866214680602297125852025350479237070090829152850767064134631489527370642598837053662653212921799888978245660383919629220170455981681087525368355159670666925880658441619687222517102562900503907002901630680661772731027345882008887482219667522580634653605545396657617210417641343087805249908360977786925667464941208854732160077685647595408662651684074698352687737570175879383445455968058820122692311990691293796364189422632017334244670801554883736306662521741376238338688581414296779844272087701993640067275611392270778771617213768459726636960273878060494444362171946607854513718083314276813294588032909981728642952347881964785796307958921343207458179950274918769673254251910356973815831628055265220561800369449060429204732755764422830133026415390271450774098421619457636865365413953572595496093959503752891208705493831191041023047141988473235579692460659491412543379722820622305287379356509927794208626062654183228303491578993096067944449234267580006456984454948572261631305861462307825274153684692864136673104939948207637559757295306420053609337852381825017008315045069333304265377602398135851306808835079320742010571199104717432441670602980979141758438222280268480966681896437741579927423615093743191734363346345730274930668478692037525377119608778632932896961139585518812721836976122009828152602057967220626281718396156940131502348146756361340452933680671025766983666764932526393457229190392275377474652479478622058053805422923491267075543405329906468239301055173846437616511832992546580969792836760016503720097049662706764594983521156603653655300363818322596484495841082373691419224943600292636076706033590248659929753710024608689243707959873863974343427996061653967552596939875990028999457177756901673479794503363849986801471064449946892221094300511674852424369452377475664242814559143938090289294573909974398981030376710181240297052597807347654298633667887774815118084846964418546483517300634362115503417186390181584278938430384259504780223669158495906182674512024309853246204315742260596641558210394613124049893593670577361700097293468013675043199528954567203396136107062282260839880383878994250993377832711487545747878909167658310526880034907513635172481040330642230201300810963091429185921686150945837935880614369464148195417731103329180418486267104532752302548363273045902885006482413130898679917587985966626564563887174960013338101253621420406967291294788462833420373127485057974711374240911195628506704497750301865396291002369739014291594200396058417461809596925360515245931321361168308521839780832993522039150042207821723666696446852119805069714444979922156934857453066347958588858963579831963593587249891201675538680736610307211792572782982846336198412454359061090686221014507381702844437025924889133159645969247174278113205474567664218950555579870953510485975769052641712820861037012565790432852452618231604438335576110162939855693907927424993105395280073555726049039666986424449232749336542287763393181499688595014053942752546883272958149629872831973903037455912847339995768566422274991775455737731213299287277548001232181928406190275672085438611686328495013895120376782418406717741878029974354902544910178672888975452722328018073584575535177928021645137748097022764537653252492628771021859366591589556461350319736118619488133973695469216990344759743632220113355122621651685386348684378301864481178205360717620132177970294479190770096026166814045130219588894178523667352603361009939672827297924960874569832253369580660149315696690388387808139869003559379351054138099193980278955695425288252869228796905645510114568431480139098465858082231679249093127943194326741143941822342940897236441240112307334138870134685389545350091098581792613739260033551916691335464353110350527307218225507459377765436625170731840744467364833555820487865105150542599518970935150294747200541566819319151006530002409533626712062143007079667782865747756392890423672204576817958854414711711469039868324402915449042489552858197126685730760618914847427417585637785312431241794622562486999673696877528947431775272414865693633381637993794569861465665418549188203081388712613610594361177470216278534657829553967166090646294112157182824134593870690948916550308907042512519870357171565935978065248473234228982258691678201012299022133220149537423444508386125508771860444036938490381063781168590180020442792215870419506223340313110649464583136489166942717050745627632458735057213968788936237468851162035552012879321463296208316977272433029795978201281579445946603349725455470648128493523117777920643556165522191931303597325384259597915515738314618568788171188313760977852815387238195019575263334913323975587745420768381782792068013534992685326170441591623465172219306660526428122377829618985910860562465945456364446502786561414657661833093210974114763999361456616513673856825324949387137024448095417961705188595666290983155826267009721328283344176935270633716001940910709837165711380140129656020756173954251814219762948505110258038514367334271008451844309224675276882655230854348172405365027465874604627473237657955094089599323609340221499090553551510069843583769993919685086762159764422339621146103607891594312412946127097151158151506575788004500589487012195863947591362511861908924497368790231941674718854067192515368340604390031543248810839712944990086871223526451714374470719409177132481125533262299248453911347199003795533358867016588306644494314043328481275325485191280163201683048421449678770092416730073605980998832119530874457077694424599829381859142208985600643263124852090281587232391256474589774012273903443880588134417944498158435297780195278826084087359006936880566711100881480069089677602353738653222708634899499907319317871912393684937354773391416792705296083668550367177217096298512617197344707854639992994653602434204412908680253772602398285771517276836462040930164981207237370675468258628276133423686351328676763873862852012723011785235444752731835487215948229004890567323050914103834426478064607407622301949375634176866742668497408784126324424272122680323977659029017919607728172952664999078178888647330640638436254480214404478554348176158270386776237228784129617269329457712623827099457512397004712434235963777736335109051258743455491341690573110876090801579914136236800508608105374085930825679940274485784572557010663427776995696574967083308487554326465247930793117021374109880510882775565668152947752816331180400573256936571201412844655537175366670395521476949195445763117068645750351728019852926806637712860213883480529950024329860881027858568181362399382393779648256961484870515740677637189074795884544211919656594953372792485443621324684811690309827498365735113060464887731573469433384882117896437610068988158413064047490873734595823698389743069615686813404541573599458244398279951543950300240864085027960247504387512484457913927346971241107164546301197704565220498347822366930545143203395408481387662225608728176688199973334921521388759215671728835100679538901138612634722758088782932382608145343937615690287535050907946274262250795725881419016644618450718091050382452452739190508895593951415834858285129158928853686739814050968132824740040577734428005429168685068049257580046661720855671337539457908412612138832693758056859911200896518259892285724625652807437758602308418292647262664616388325813651966542879553454385090777243843731634615096667941986376430200433311417295525901863915629792895848037836693164958507025479382048662781932637803715654729158974239646776816199651178032711370746629587126926208784351733076516154714893961877532298334552394997847691989256778515347437479084304206870774898823430821235983790799034366098275887539220031901773019620766241746760231055698768742758681377584201598268885174182609992960273591256282683458650987521842250552084624418049002284940337312774276240253525714781429549829795659442642970201671747856825623145296997347525245423078630921693561875483913866158489090085419550130024660164674541216905357465266762388510180720110280220937907483067423260252868253966138171803166715776181022794603785559507597815942200867292787509893794332698809496235489632986276972620709056022535926113245059925694767242299293049866837839939965036836426152192749762652963892014632251969277752150680838966095404026993877322935470689430076734259777299579022481087619135778389538274189118283753227350133781516443461165468682404774474825242030547466574312530227709099725104099211875345370337191930210143360363105898747512419654799451969700853728004577570950006205819076823747299414442222368778696012995457404396626399999596471876504210611665900385346461899189044533772584521667696774871107825516102613757003270305568007260423294928715288599372382136128321499046160082983354735367890617221108482306544900572379121957282305502567003177940002641391859346600967331669887372777229194887375635704209419895901534528419293128485031524636259187644201065502080159418717044965695826959309032539537331283727726546446941994504715911998346088487919044429668186142442807503991967591961186878036204812585647489415387463764043489816359408420100090998262135542464985575954129874087651870237787286013335871191467413521637085777584694652574516536061182743660375172687185943547963487732598973327248682694731136432536289744422832072985604724128582402257025870425382996402644096255549499406826089391438876216253752921957345131987203083355258335490177530364143335715188269188439445688402123726725879483177861080987141939137241446919642727494997165931973713409805446388684624572588960586445730517884683347470234732300933300103715849223107973258666633995804265316133618495047596345924092911293279673103128046648836930924678011503837480316257694070788473899003750550455883383226211176274410749370499564348859801262065821885755923998447718177581999960101096471383658813279132645475424046855822150906268254116035287087617077177282421529538570215286014059092869906435744198896453456524987400223664367687458550223490086275044021792007994405272780414936498768219259160385581603151564240370828167869344542363372127540939151034651617430783278330509000180125170614429659453427943192829042585923780521781430044282178058957969874962361105566817925322649471057734643381195886844878160653390365020298951852013383408679534636989482139862014300235551438056508664704753691649600339220069142630866656700019633526678252196861287925691269622244944049045017263552694703673616358435877930859685024069919513048367783569992346730564562075579662502091054163354495502280366083483779181913532975263606164241238423344933149701565258886460610274913593723563070512889164003141149010770971042364628311854506144908349021428610346285484726648044259182103686712250285857629192538501982779291622136881077276849133087654390545346041278181612170552148790222864103392544184206970865181364318904439241376902569667146082677688401036361747977158738252759315457039138960533165497780324718099541703508579979277521018487317600997256686981185199466059766622307999789023110705056021857708821699367237143578743151029788030656173150233417024978123829923930018589384650472544045301071234716050899142416091176457865567628850956248155077131710123565835096240427407243546932191089891836955859853043184958541060914145279416874881852200996670578380088209434292764058944538447763108373635952256539745834817379461205643205351960654656460775362340502191793420880775765907711547122719772770407086660088357313055050818622119942170067915293145613601684509870547918219463265305915483715564218078931788255069792313950227339491866498293514888780686226212999522623162277847336622162555218373129455927211275212158778684547560985425753668584951711125741066605217414446957407780864085884020251510858659548390831728202750545783139937431157408747795461283694861106217420767143011926083642283627704716604466224183645055449095889824962926983562910637148540736902897191713439279552456026353670940964342446926741501333960361829418127134449224527447155126451151225506116073126732906806378208345401033256166040644329654617753127109560669934787188339423756188188827861007270395909948766806636728623355505112070103357673501299330516592282413202420569238807074890147317897771709211010064182841478821807617536118597379492183130853064881765121713479679874944929894303589164575704452070582695031719068815142966993235305360937371572034994248928153045012632816801837743036117796199335951285948234225085774669414309968320096443064401639931782969178009886389699119402810630028227300477314055268502351785188405272406482706944229570970225236601384082090420599309934996611643008241821025555159140022857755326250129674425108111578054089450201648079965367958308775174451320350638732194378492229518786412460307306887206837698001039477316499959302850242053498129936905457278915997438292623213837368771810002438301212609454563841339182974282607448010044059954008728517382160100136374974747275154921117108426379994983282235543062145589833200157721075978405781477251311549092668375542859448163313818331673598730330430445064643345227319722458137161801863930064808985060027751692662172607346997353362094450441877583950144115647167199078691360755034489602203368473129077861916019381032664504016493536659514310795084039382560869612748678897868160533425640036059092738821709645470308193215545958149265941590787457937568499619378698243902538202453363103289959533258739906390516008708491395230533666381868955071760059222652626404444039816444142094685384889349481980920403150155010323487864865757265850232879271090593079294987119165152003850017291768114936642757254997194846438781162153417430747165378182728908150910024134620266096969254027280279214861510441433804836842429744222147850619840415198130635520445854206365548189194219245285869479048596519555209309285228226939328230704907035950528964477966586890308415460026363518667279011303268221253536154499941439010341718336669311615589353455872903189678740512901656541043845253645102558642773455581468274424186063957049717633189087374752754285322690475504211468808048595769348332051533751756162686099802761935328422456085223073186646453428665453631212714560264214812673404713133219956136024960950909583552520525348406184578763699153464053829125460899691650007949611615964682880300698475707562942127679098645022193315819518913614836561749447854332402549146058707095952860556021133428969121694414875596846533130206740371870872453992677740746924170592919462128032170263646036613900786871354925370075374970998070214403803819992897414184963799224413742167086428004514144843844331229041322656558223243044911297561422061660317038073714439869310424193491214012636654167636475393677989223773817563540210361864773485727602705511641760000192055784166451305156452809036010829186268101550803327311915853609314183022510415449640560059614061655422169459684966375349470242689943403892443537461586432288033075199320539825262812567927674035181784968474415118039387651725598816483389751084712692159649403270838808786922134307367923889782036855803430154916799385687714375504387518268307915160663077193748476233054713572224600080662215058319235590161087050391360303439863258364424708437475104179156497518295053265339303734221025857983889064389758672533369014219441667411600151432599062207826619674661026439289998787541964857897198241952186897653330836286024816242803285623655815481740326294188856862895633453811104594915134695686873939812356310834278009637825771948144330197797868353993193236920004765672000034642251156313280040372431623141808874362592130237833547484241697576030890760544152529109624701992151820257055717044029988438089206323457537946827379553808020809477016568507550388060094107429046448329508004003305667094772913788055455958171734214869116889981283453273344378034857745883483199933679270674196587395497172704426076890579242861929573555398777097147496678626793846375244176230122130631012225047267971006462543305949046464234643208780000779705293729292462139126528783078418934964040672498721372770727499807189545634984798174502656256359465233421040329899440943780701037858948255325243543052146753665316145219730818396349476988152826609033250976752618769370083037194113999053735932360659923850380260211652825678836929941805952559147263350506461622972146138596253832910637486379320136565015848520941204276587747717699950559578127986341886775410572938660888450355536751367627295313121955620338394426483900758140935238123745684245275302738747441679293173635253995966695064159420507637618448742187643771959160908539362718461426033790226864893670027239992881399355745224614290923387308736912165542221462542219404829918171417045442325489477949573480443081669040056858529651123403242325939894347912097114505848235367988570000805626648565956344839558281379859353711715774535480589039660473432802389464086374871005244352234123245884980938396259322016914184981197747292683364574827804293742911543727233194231581279097607059399689141090162341029255337293796402355105109430884977961058072785992220729974187893865092871866879925130044539079609753144053378169194162601415329070781209512577927215004853261453287914915238109486069140584122740983115438117304998271259641870739085786544542174582682709193269273260943995467332115532719389281377004427558480566745415847362604639782144263016542255540397178323744974852858397418271911237092198643576581877598402010586057028913930480787498704700708057023377356960282053303093624923212499925154346394161104597608378945992085343633994467717743128464025316900532615343004286907162815086385564572369889067860927822690078482046303953009449697138587854684360284591862754463904371940644466767523456757864661840793386307865378765703654008753305189899786443045921099412094302427430966663276175556224028899594804521980418216709655717048974020885019908834678220637158428533052414751971714199455604109775981186985554162128261210029973906421079372526964925403127294209528845035313399878038251568010464231487837802063599417632999398521821184642173098330130794098583210713712282740146269932777572871393679466189933689297079999235718828895680225895113853453258719818617131790919246963051303397536888682681605667233546231764138593063883660192733763463325768862561873855799381335372491285153916863928471619281736288564644929614510243817350889075411101479139140084362113256595002971832348724943542364087164058068043826441233925429871287444824119799219925017195342779951751609256239021291395156566408942308239758243383316694891279399210197815700746419190814390950281943219533123291440185670496394649199431353421364345624751642563666983740954237499630509279838058885534649181567007223559754145670863261675334617564414739203965980442543887470006676043272964900521716064778428888947657435242591306499480342512381779514429058197581397900100346916958031508598810213875441259284543182631610153345404210023996306452026234616121215646820525440657533018588360047548796587501604308471041722280406382073870826452136575714185509804102440594549024477796901806674177256855043639598975608120984171864140464770357089027868016920764213039726548585459221922381736370401587300402806054721553242105295379688880223548082295781593248174115301595954593424536354371864085750914956699343344005017766883044545969926002783785465868035195804167762652910167003468638775071759890042820300975800330928500706183322962524017875517020902917580556150891033674296148629055139632326830054427459157646670136605453577893330323405235270158586439797642352920234686279726268194424595409525305484091564221294557091164637315148849097357057126457214539681706922958327174434357872018862696042525320843168061301500327206484762906399849032401023544357857086819998828765100067937573632362284358594986921929420435088609329340300753747554755256121212175833462277545205499835610584339551032352342179893005669952745476824193497571665084857859543487886246994944842777733859379009086186216955984915373241363030235506238122923908811659217873254397095255655453075315320125799168531426868485299883222231588787493474197063085806828673087085757718173977065584756020801757916314425911617098077517593622293689736167582713517973384438637146504417270424814567228934230917342925074636241633623365622321837653964025305791826668376625721883355473239901129384416219919577546782774867669763876275757497223354612196262843466001299629098959811342205020433307483990409529211697350441888388692190542082582954046979009905084577474889161648961064822228955791249241532133201805609187010898601608769075626110060999647064861118375762481268529720644005602309306954310938510307141958739151987650578314395017437488977021423423773106574654735400462360048273397508750340779397688029987929914774712940679444006677764504408608188639018270242386212569322470635366538340443143211480742871484236980214205506588523920940676946703895440911084032806638870354195695987459516495103578368145226679948351359075855831471380904225055197823410264597219923762112029279150049507982769770287010009552741302105615243743200380442353343870434054420605533662692352594086566111634793920120452610816459567067305638197042459814957199853091947798752147591722918322544371689604613060631275738078389230082187566059555144822460851133940160150952229700913367567935825130439156544450288839317616941726833317548745327020543352433848698406518554233960013484087499834354508025252417752019615530263925326701138880067446036684394266401675833136803395960921613647743953783913546170680920529618186651086234226102703636512252473679221073110721931676352132916965830715923412227986509006710140479531619592476134708731676863055415987010704714368535729582279192476209918792998600181337774884082699330012775106469500814173112651363804185360746393288113788181141334294329119151779249243247545345852150140022291351712418240445739698790250672107018776988941275217056255523009952253691690504177194850815497497072164235212014071033680410533689120777347692689032969812042674177335295528074189122498084199416911529613048832795825692898976909587184403420940093372319625312346327403049161679119481640023780852955014714320138849044737832617278976318657677063800694853648275103320520512826380830030066780682772385364279190755735649262393089009289786698644433318629922435776016818394852892999753770158272428302352243318541321284286572377971003552643199135928151199686397514398587509863475525811068972729412385873957965833153110899350647727173668520841663504654411380915162159219803898155608362119754102074230197120632947240177960404164356578723695291925216236825331432955320953738765580889527342912103573006718412222549305311243824130127502907724509019978431549033800896061108441075138027041834641525774282584828766197071231500716541533293649459348743525719929035596832421034579705553622140921564435476915784332007675511523165526024342111571106472613491099594887073557255991630913617991169160702415190739401616830068949518520646610316613026721049212266070033574143029803819132494853290105910519875456361887256643727282458062022437426408387490839525429376234171257514898305137662901239499379329170695579062886359736013070338685730544883076962220215670865062917556334101764754281175522238132208080017514175965669111822736341772380431444632658559332122229498770913725790960443030976342780244085968100859491236304076077697151148141789713040617637052116278494095689269713639091334018637022321526496880207081533585578398264714087018695141850731116479110045799663372516033455168255291200967908293856505164235947290627883559500611787840023912587307362862541612143484245211158626953312103416717214978501828721746769238285475109387459413607564300262880246465022561699981532583134502010853109905312155081027440200782294637084138474867329587126487714945109900551782249662320430504239303070433443425765602747797673874183069369352628674995904065484274204546280264952878382466894339864132596814908044581144572546817686803746080167099720534106796690571540579924563896128410543325888868247833689992140106712716671340747949718559241933980729995288960699396508852812727190010712256638237264072080768310503030885704457282248010366634865324910523699905557704898164646785113608733052091428029753876258192085289750255560862785970029805488772782190681573522331759469358617243666238752043404018892052909643804938958771814553705213842885812357008738403905920990008531474472877073853090779869492481695789098182221674881560527250282647940111109035670628779173111478095966758945493600179569932371204491337678641044267674952282971971269522279925133899832080689415905446818476067555323417751595673453210208538347370040685388664183823856698133888076398414776808731992451297164876056504169133476515568686513904137383648001304350155087116890587626893772655778899518547471442509890726346021895058729765146536282128487708262209432652740815699058799913749125740869157654572529413476324419296083180048637930755813709830930637309452110852760605812664733851761577977259142824344485068046845832711801890210065373918601664384005633400667767147068297324257972061234397636854409655387108423579973242115744183158779615867451801782596801357401700229703675589825225831742413975864526690977100351541267040729001228916339608057242908839953225377066753378895060640191263198300536886254766847645604645956896985985687404526141143683048039925120693035316007273139318105470930949987331991775076725665041932140664210171045329122624267174336820073434741613792746273975465201449124323772596939119026738143528855958522685027903431987858637942603363693931608140146307563845856780661115306932292824553647992137717910783019835813808764833755667580857196500824387995040097328321323090109087096479768535463114639461275695799339782717710999046232196383786817572785341062534270003356819091580803920096099951060434281891073016331259216049937589668524550291758354353899877958938921434355285109474028515755237007676455590685758193531616037074984985056917334012734205064772857270033419586258561121554784547687880931428722934404650282102316473969079265292508330413739575766380083637343236648189151704948833137707910468202997358403802827331953554424103269818845805466138105075991647515382895543622970700358346007912506569726238860136548343786445835907743227838926886810872830710918347182677971248967324320716893747570529359864754815673059729487048796379428927478475046087332971751773418315368492995430858974629953836307968859544362830659787512337043692518960781309363602816401596606689451676480334395033971598614238783266927264450037969061670574778208790639307834748831354417955709040045934832231036084112831093182920427035976621932419720132900492427510103883952268749074779635911609886856585952888940592928314476484544865323419459473337199565557413862348955058988204567672242304950350630954302956950771568953951390949998235732195165010690412025449269263528883354150778150932682387749115699715520508399040472107082332274816607436348185688271263638475400735965511345819010579376485320847218891160770910793677961377755436102721959097095526856257028095824231216931334605116271027515519681357802473858567768272784101597896403744774824263471807063072910875642975345396908853822843034495516992774411831781033962410712818109491299040377170786159198070644745228583918804030766129736062392671571566980536869010047756503353097716774130114896069256434456808990166409582113788746883423719541566051795713932811840546691810895310956325454057220346395237303101364703497178739345531248785167920068292663797549046654620655151728084180776135615668744970468912289317986000246440078486937579390821341671850447840170318798587780539129321140837707564451683972634323655954481560508004302024716038579230075554057185678350128562277161843423612136371779419587025890102021468157059853276088079463671909372487699833194636632687382521594312265378326243177922748756679721661560636730004142320417232815101138610864500103761430610490544259610279920213242885112246938508358071206935746539971551968058639157721594439495145475085710816381535241505319351314083585720119321368616189192718580245590211611215109166508749793669716682443550110229404590647050155015872833949282585397530487880022772862197025837027412244555377339685589035153947291314709122471387436467626524857699649014682255953366845434357699520800430035017078768381034939912415744953701446609571006330506747151318365793790780491031009148632033358871420429664371321790617508689607361215456921049166358638935427069440404327232258503050255644259475682298914749091889178450774804249057608770985828538360639847383112667056315291263647477975172916075745771189204516277192487966569265161427345755519267690798757682101123032730599442113858295328331847864507954127008945885833974876458379136046240040005164843196344871416572618377651147267574306251475372077035532816945346272080156296485173872578955857823928458828699576427011353877123899883737158146532210356609785679787666456042157154934435235053607668782865703848096361882978444214015695642984292633991900057761829929001460544703941163404567554604095894065090085397036334595840162752863979223462695796956187647848572523052450309545725437930603259838955677708091067816772667089020539196454462792517681904920302871565926999128946309047974578501326150258588671156669999743063272328641172289789835531512797744165357296080358483466364053117663828991085692362476863534975616986174986074732150748297258349468412896427200453855989425407220097103459540579845384186517718676538299764917627863432940693541419128703521408129298772964832054069281186028948614033238903090374777908125918029926333836739203079618685199229158387471820773842377769281565558536151739253305156067904647345927410952326314968142880684744702984036962915416630498172123213077549575665078413769187529043577221148504049259817583344896839547514944620302766380198152182089976527186726917485461783158255121190240691112310489275988797986554692970547739261093540692047218941431628868410065712013690037776054230564042966357552853604857456011488516190773229503510297302985504234171807956733704762075322479419288286994803984651560516525437377549032695563111318441154530907878703610741115488952173401605410609738694693542064835128405879226915490892839162117839281288629600794455808814808284212719469568737568164564432448427649546863691883280919630036459542946962022139910801382531631993554831917728874289437183199531227967481450858217649721437652716626472348045751435957885880996037016089131004089746030270843313489170390952437004338589424688568224070090122527281032744459227523537273653485079562101839912520897073120788825218630370418213699549808315165016389597585418718613936285524704732231345012727505023535823721953701208607707705842359954620713888642981792896440204298021609651997510034867310227445701037240983144706191103942811500473867770271376028604320492037971171222598455119142638157038831034373521683816451202710402495211646578683343784078757352992101155926115486630374318758088376626602958713406842347601995383036553510985824070981255149058041124866717578454935875086473336070791590724981249517451424129543984491874211216331530534355495365766996005365542262984313310722064214282961310904163485320951464467740547072013252657484721505255637620034546164139671983383795113955753147247308149550298363568300460386666482517280408782319343032451913373872820497618522107928004060320797075918396524120125237061589120466428135747987222845944654754244226969734527771439293401665187595763044864981644845551438719501767368601843521087150934951062190415387090861413782846829650326581912712022066497182823897229919186261131500978266773492088653063924871971135163438669607145124264705052607547158908711388390115720923008610006021898050556018093771693079164847296433416858035717939097266822300127697190779193886055993409981607455851098846042452390636543645638340515104739976771037565962144891173538725519201677162436587831828297394446842862877745036204381695892848400495691354568007221311439112993074772832733310098247294172469305977087045756408496182696293989947385852241980373728214828957758711645653532551949049271394012510203272499864367360938834961104952000021290480799063409899929188816826608543917041606885920331635052608797430069757453081811982298684832013471283934088545957242447680616093975591707070975585726115069188691928013314279161644290195856587442090601778319015937054277774652933856306082620436242358359730645805078647906360338759455109144706507032826642507439894766010111861666138242662034645717942986513085064765565301601599171013926799633992197213000795250534667591442146031562734047831998773688280949380220321595817757521236335168435532727944950967588332091012541286845060864217580993678203023166439039641784556252134667945380410120664675577226339021338676871748393824569737016056751590499995551481502731317119086952897231129726273693470464723140472920736906647893829797110711216075456268606176896638313731932389308869549989775269066052186455997162607408516468741285386541464604547032467118074402158726670316341262444075572745608100165845611489047215829295511696398378523609603897881057183542536685945835618177807787450204487307914081078105843811204743340944307397393535848387455736195299287415179412759197642806126160500033083496251796351853873565920509507144340159456871318663081810117182455841502765834682597488015366842887607357458011635174256215834511462029943599632605458387452241182219066823968658266696320820125409792583327250238353889209522502357103156462471768427005211064376910351236075204086307386252555024869643215967501931228466669124914865861311822532654865480738709555076520205421044461814323375181229990518153766782322727219511572626302093561054921605934407011007654539456601016704770732803450699644700558207555442359312657157850760144431977539834218738604161195092569334913784375150767646653306714798327884133019393348940144070714703624664904445914654678554179812891623859212389938697639544570296471093042413748399143654863842278818886163269171462989404885379645674070198762979152154740004107068114981524192593123543674811893465468134605949057505138578709141788887160943734618511935940560949076631830515855661745460724447037056919631489706273142055967949288694123306615125109598271056557660944842403497461416504154723693798918157812669439246015302451951079308212774811807182357989452831127615487904529859568187421713068660170887945956801626075410769776798599636904049391978913862702695073585451041932032510405302718254610346470522652364381442565944572832465838035177112832365859573764847133279884646249824703418041473531276461061642497564349540741817823754627020580855532045572419052045248118427630206047337907201499824626428309631055290056209879516162843617795040824399879639410332031597585898751870361481378647348875872256835316904904890128014015181832592903901901499091841067590585891689542042754483099401393371697216971946529157095399924187825589986887149640499953441188450387565176115862626330379671686603594555400700061456707051526597591686669305670609265872178674746005905786239207872112857289492237114469729829544442238113721013680723713068466195117012622783984296998406233538138349423992917771793454253650067446482869460235713818983402705085142178083661653085190214833268457108812124390729336967678529915212437983057526741924589616694493170008051595758074235681774492811464012607526032834061947849350248930877168025267857956583655291554381847647533013625472798496466455003146526574129725546697537260188325147050305074493321970499220915728154617254968349896637149627702514089345238374468542124187719340951243762320888287688121900835035701451416186333430704101177623775505806976110858175659420467503176050433037612351979390645551495041876209918062418165814182855238134436984924995010528588175052046862210544178282090938896921861455748136752216397721169801993116645491558976286691005028938587135187874067108400758187334082869830819813712018129984605048866826564865088428327008410091829799057777927343023357387805087675767686445245055219104929573203532408432704518790183353249693860996143174591791013975157772908982738987762208294964427492885982812760482923972936021172685269661125047490600727914163646897558557676560497607776309087287588686261283732632876333084883988480706131837568551326055836044807453868527977267153715839233152213653194956229646955299759069765231647082670266400763348280296659880662611070489978112647475545284823793809296479999584642487867710639407752061522146588557286378158385214764664918350935705793601035851777433960366777966180242348104866969641721481434564314885932279673027633149839927334034688285720369662128037614170881427826677021610901478736159880055825776146206865408461089891003677842262571627994424181684101393397775324254020830226654734780473911121749231129611108203132817635388204126202964561077627942661006599861835342831021375859301943211259827448893188929294655461004836889680102120484798777194932226934541350285096789218262284381178852768186016704295243320043546545107190865426376313519828618884459010278181628781806131529172848551514876684889602299490505895697540640633139239571033521446188092074496366207081815475094766175707199171414113443303257226790834054861994291140771274283328990972358680630593089738834066936231556437550267631757635354929848056255672699067123384743540058958335907649742558164072104033074881517237893047807025505777697878883368520197527121318557736907924364835419476876132623031791816175710700443983003458036849050524278790323992665074652973096916878099456412753980478168683867448120910148399165629198485244878682341281453623915285246322118532857867414643605057442012347761980729009826730541893593159262256824435479680341003866215186586064821312962186044021864733388206767166205786659234730547802997150704791034224577873404644280563795704356076574682647071949975646819560186801727428462121048053018576313571911575004199237239930899982824125965834387235771393325869127591818562411815394515604342679236921498866101546500841886585439747387442510768071838378763499987426786962853614596381248164373245000009989745946922285940268900441006955809709694938782016838381729738469321348534642004023227190071666960081730755502170112372318923377254676745059567959777543754643742445503246551563573405186827231713709094729569397392367690592414929257769633760618712982918843231860989161189991306336195323683593503813451741940575967066893258813898214020198853521237844878602942384132459781861828424351241330850399013636393571722017461862405511366851064972354660131360761616472693543490623998655876045347393502270307079558771225912820712536755645803112194707945060637063115963083450997722800162962466097852286567398042552257395382567729485417315766074460836862031668083106439323741567286723122440549337246742873634546349764762390104281115366383735658092726166357299873391346882426136021374682576598666700415661422038369660125869976614255038077406293917520761234281184185165410691489543415657949111731090131407753651533657965111289021431980303520956671836918041347880577443261007087587514993115881656179050553853414069515040277976766671889308955661271893160580990389044578269448047769846624025774965522664027377635847672977352015467679393098300113014215086564260142452873679307156311757151791498243807732908219153215547959787678915906583964533831506655123841659245326397036759149687064203182504632555625180709075050840542248043452270723971081285691993398447941889822423910534444317489739748642833581023813038978534041022103155403102771636166467366100457131270552910261484370917733131545952952544270467892738360564133095915161759562327875697144919836595871423117190879413154425355638197556540015713240794231419524127938305543464341186927204187255725716138092099355139976609852367924563684028022119701562826875987963453078187172979039409071518008895743067905442855105318213314815415295439292276111254704950417579692599187966270766486911421476177678196814329794520376921220047395977384123195383284913512540577147638271881404768162088458415638990118137469382246907352753588521526641683444190715620005766895271434756791790570846358676139658445269553717445366216149106367657134569367131203080907501105936010368072483556331666861849986060157800616542536879504428466130775314698963525681774911339452927368741424560122682648280138747475066329429592299604854841990686629054593960689051763225506998571910883528109987847399766519855673787722662666460666455922468282308799502890048871582482958115791076348594851406195369589598301878852149724087885867827118173688925467255535095142465282649622253061357904735660592296419699513243397859855839534936720661231099252883739491941084818863356917306884517668873640592311908437494194136624920815126714864669029177345605065950257804923130344753382499885594665477308054064778190608417977955749277237510859134377126136665769383815424941493774117666835324741674894924981286216546946211294208885704706694178237442632802100410647273667610193495248238429578237608127274874959975820164586898445096888292277518072734900615800428821973864643678336159283491145012399814892124580407647142728470541297334967745457348769712476104857573893814253798042220397327257803537359325859930993584719697119296658401193308310052917527169405674409801774957515337341057174582880979921641650040170288718470189494299948319482242733852056569615163876015784198094373189541239171514194207263706584118629307360722266497145903061198078338070737728175487644081140429447728915260983856068525168540424482839852607351209247121315132914020486389867621429121466036321647141432367719030706818034106892197535118145043852320934964795313059885217247572060609536739321541109505861883295038129420385294228721000746181648478720248167716032558378904376411757576869689005627351551134856542016822386986914570551399038397144337185362495411841145298450624271528668162127611970692889895686733856152799886763740321812978161994015874342183482119148390223540141673665251863715787303228712653244434974788889203538241875362908244639398210538139675991475759446824018438219870079093924873324032594067261621341547892369684669614192306918922665397094065214434423580327349582418726850197256684587171683742150907333129561242627407784329444555955137589765497358915387070014755020081774632959791598678092023712397196533083832429152279316045687066410953701465701747227354707310003786580046532430253514825747023322536860165117589075426260195518299621387712707034235060405236616212894309071567757400134058072091648829803826638122997616410788978198839293940390653978805332501903419696317165444091220942961644954787002062125524084620607869337198460200986902230974923936122356755642990371249222968346250340409465694675946051223689187020720899867594858527907597963131864209046206210322743756515380496961889281942824743941915223804803444228070069564305534469234151591925311879043320859378932813250150539809057726529566068780826849566244381946153208324731973444315877889554371784180345273392955371824096036227046294584870569579318903645618808262012060509224058577403733167044656686005159826718355599717483210026786930715670352228698172720032429550707314336251167271194633718997773946173268133693335050223406944472058238307861113865138146907267561308398363389193309602971567918385077928322780570140318959473207666597669270760354415990067180134537363733473297780791954273533711379877703081660091691494848399368114988032885557783856082210474240140525966247741010702345395291555300641552531211473219202827486854209938531010179159109653880349724004421086854866279658061154338699791581462276291919466291919233438313604678321951700101417872614750190167080461468634212386591210578858085087792015611066671477822700039695545358924749957389097949465920283387642971178738939933556113481169305311430401864906309928562522288504954860049954083559236029608637620235597790173727130040498351274393968934212946298811278978327614615381704390783964837017392417249963545786040069522738565514778189343560497379453495539645396704675674239862814417649940031309516556402793330316788742785421805649716230034145080144554156794403012803387885349671375910205322677686770882273707709382201320933967053567684323391482884917210605924990864388983303805451169930878069881702645227514590128785111414756882421977240922037497578573341490839188228763201697909695387981742618114992421434471937728630901288797258100808045958694842007448617710312970543185684496876152825212340410552166485058498035719364922968945776155347768705926379769755546933730772897429132691671073296987637938136316074573072669259857300613043073774475386225964222052255113290050464247596492623419294485368737823453663320573639530953803385932417929385394959718425471445330670483044068817326622457535771149129294043153450548759608792317392728209338879573395388769166292509841497118187449380601022180603642765817829081208606797218296881451329647273961550064225577702853850386659536824423628708144619865438628578840121318024187162773871542705010369523502743871210294952202564104444859724455939971216116326465832840044616376782742941865791951579830193607588596724341982582912908387698994202982881447748429340146186126542667834947084903569197058799935423424874395338487652458512012867880671391456162782741024395537825862263828860374812871710234823796893799736125280002138280022413681826916608137191986996645665062221001250604691012322299984757524773295667940631505651413097578299435629028131134725253911093064088327462138219659930252998211712872143606084638191619142312509210546387217122441081166522040765595150432420287793813960401525911631924775684282547378900636450044664074859643951205837060252578139319845976371667560270060576390179643046204233234025876380105062025803517599715108082612258504029134537563274009642731701867451657876008022078543373699040992910907199414486383878578299513478676346788554880262806235916673610862343474158885920014985091189734471971691301832448245849972865391839883122790330593676893800182965864416914425669989490948965542490785051067943505642898046269655611749175638879850125888839796798602628846838682953466469231396168385636897613986105131784882742160973822563760343388166379568247933004314016216021818043371445487679735264677966924062267516557367796791354902621295946319708457950220749922960807097566358065847360541096861885974729589249236105117829620546583401109306983250274382487242941256110396735943876199160312081180138591963623444954099443993488678411557212099809548509491987164414829666029057424955873436257183004091899105966427286939545302550093380383002505348900265929619639352138623846009391718843252924910628563238731956899557762397007674668647479924718868924226705558259656113044040120144522892146999411443726698580679759134668987737723756768534219032267768498502248401105932952191608293438874892427328697744839531038555363389421424437464733828410774779943292311204542305717953181501016485103237895813519642516462750364289898015764953008867998079795942877543126951473077343323390259687581578823310372032857074733081373067655190771630173969687192722699072919666003120469150080453139436473100111588116809086169898746788161329401003899752458174256644541971574410756720310107998021271396398254043199476313873971098549865288389255415721648436704823560543115422107515730750979487926769757036203995517769788893545064293259933904470184298813431770360696675422131362673790160100077321580049238962586694191900196799504610767951364056731121728782586097716232374519504921389715709799950272473659805556311798028175575905865937268077142954996928839607453679486136968165435502990320336573665008545221797268800066827609255016874461555856030604110779995334879581041593893982983557623622598091461536762468600308394622658537110562131762193540117454149773998852424634043075439208408308177404552346046193425242348225112457173134135000666447893731031753605783536644279271549100157969939503793437035848666776144543219679336058398665833281509822083253223736853282628064954043145508730967138794486366627780271022078137247773953377138478185450473354113398379261778288545818151351243872607091252172870623566530312213355460253075635709159490967330225308485857445565665982185833472270458298493851570702574745532910284968929257285955414755208980862964307263877020786183057328451067320458585157548046808461120378937024692268812381985407278852452635645620865950805554653721637783574790448721025676426470280229184099360614656181937014793115235233005627444999554940136322373598676669031570692599815881213856978623345644988009562264416035162161530168895211351756204930579141442157894464228031810894702953245174087597979801803508882562897941911871995959671161660607409116028239561816325968755519942881980570483204899344320198910234727057064902652092699645286710490202084032936160451539620079833124761898448138106192624188701545775616214867779256814929109628230395529852587628102478980571729702486908222496630110352536973768212303576142610776654993625848440442683828137806885075433984540526345310261654836445796106071679327724601618172467805519944765842051624338285720035646867479607520327987268080996978043927935113760940508196357228863309516443675979154575552996615801923728898537760191196487295994013989552158611219261551452573878644985193545931730187539170003417721529564249217892559556103983631307311981309645362705839097043422572461865972025022731170048926123095602029332906119641305211004233640327796728829899849650672132069652114920368865056534308322682982569906499850759366197765149899998791392151708273616397350970371105577043765845149564835406439214337165312936117693128125453338813653818130245499281482980705675968392405994798743675839240048746767104482705109051607685141207760997956617219881182559611513641599792125810525356547596581583545719596956168407602056236254784637000756014054609345660357101825800618611618924657610985929255856716502249025033802924876519987037517221310142623243741785171714462042936265573905164960132237624852669102708649563187187910868160929087335711141221107715223114787795503328430836713517972766286259579201287044089260130189998363309612989673603258880860257932238180698455981069307522579306987062832146259328326503804315422205266251762797321763685059003718140872808445226781332400711606461896596856779566820924712726586932888953352183121454052657868008226367585460200271789282170330488662954782065014649915242507590549390622486381976403875269422273474082726312268962073687512746088810474287318836475911291155412704709839890961076473609344731194729597494951234122659992262392404852284222678375116924924580723702900888637647154412190697638887189085636183631992902669673074332223434215124176877734790209695676965622180054522205572912393475806377617498923386902686205484818159161717760087657286024649408942852193330627682621627467625120346838417524425130464004924951287625272198190406516077729606235205743046426987943893713464319987119653248587227145219563492391420927960421650203457290150651867350826117640053938509543584740748345371679391327607629144507452817160819527675968421260677156503433524760584178790234925876511247678274015350609798229590086591116301718763084566643622229436963141268431286262714220772664701976604342976923600857518279393493209161760493913908579118875064947678234082217075274466343406666198442113469063946451051322255913872129620826155347821315224097306572374837795452415909460513862263800964346900277579282976756814184223341824323839530035671809059588243386943163614383843518012720013785643487383135899362853916552612050686163777148102268946504318597264452680909277663431776468228409039995541250688886961289543911365575746571663632703377299193338693443222494767506568517426851695406913585712722587047886980894023431912169574105065440683347925340101904706111390174506238753798306418341258260204384734611819345379897161511039547251541932136790596022645613058072018431571892270219649543874829938537585343069262826623929452282475727161138244718241283573884835318581929621469972397666601553154799116694100713727384751315033632121469073824703804826598156763473105777987897753217714714710604660062495910108712518840222514117233277948085771290896782019414848691663622391109605769380925205275981238766379639772076434709384664185081629389081488593817406023780220251044751814695317917248761331832417244289958062109744388359350567454570579291114722247303396617605590117243907402072515840916079105823293845906979239413407557507980336652711419029981313293878005418887631581458959174943027643086818930510159152597606069397458320424792746777776817158505748088864955529129270703596673715917376620753734903361470083825751978627998355167399230085388445783731842537557426455040356031479905278989081948390787456640537575001619362467696895352778126221142249316989348660690287459681707887588146868146049452145343802880681060704096615598680910701218404834531650607084965437425304923980293229530115860774339588699294903071125493329193435891134826250623830278521059999530044024386625865448017283586348847016368249467389719142039820646969725970979238404514041561586993973248984855652111549328415186398637162807668036425401110087210342597706434895589415284522170339154138300670872234589213951171141615914535866350884183301480893102678347831501425738778592548500762125776916883129777810890300569926168612652760063321310661438222037677105698929109076347130201434544658577562318838195151335584427423892897777230605805550313260066044667479199437740427897964653166012622713519957055101905974119606904302156212241836965451636076860349490369804634496094819087028483438670888111381176323295716367763534432501599628219643099574187384211308713663036596954277464467815171641785349399038700482722233360755132127229281770932719189807835567532305255647261356504987333158526586302455846010235973518236654179173245548977955769023508981289190428716092558939692703165243202390713552551025870736730274196942844388473229546623417977491019293871885808900151206165774148010929348984977093871817765666007535945062169331472417541389340436035390169897562545767757273201045219389989535584920765380353278552583033474895655309470920841502207937537287077395749190956194337681750067398146531063810724038246489174972319296826472642309886128046046295873466518937621959940772424907301684843190338648006796089125226539204302704209723414888729477306918718685944365252556293161728347536821011165013431268176095496374492254967823081182529258834194741957136132297988705294289542623391912727427275206582459395248155629442747416459591804977093731081676474272217225856246711375678609177121483465617913344850893294074170089815215940442358275154908601580650373510459580468133414270928947918627138754569995873551307588827671216829820861032526667123501668750313092203225968136525433549841466591280386043485102832886808857709502107938137084931219186934716340387838844496948148268408829770513816396558150923086224794793595549596678873126181602838734857051801466757950623088120028114177593116392675709542338718769529910335733932789004827942236418024749369331633836169326893195132986242962287759064609328696572780183057329772149369670476845366190457701024027581368683207209739568252623642387848862151632338650444260748091896251389856251482475045508270999438497897033946170746740641833712969316850572553062761396566747944009177930108747574480055178773932445884809887620856080112905759674660973189555371266646947571904026500040916641857483243333228952929965294853927210083425875600117516058593097176068340166808467762408246587165054788733673840339682584000505317467242357271308611283483741095915808075082545843193607098860118148991441190613916038346444637846281332895334233392828516101987245619601309288331102448592587269560605888059700175986078563168656787680707962956414387673029482571719195426500414735983284890151147144100178321639272157602641976720409483841176405868653513932904527299225659746319914467949069271324970909515710964564004950498255051973261739165568748274916131337005112172182342258835647948035598780773608166395854417044015910349176388346934053454507394644729140633054014812183184069667939578535052780978265717600404929035142953103096917948914381746101517016039481964937159279218864115525284349077371728351685030572366651382857739341784077835412073931793935726110396521584733493364234550092479341815302373405093075704532617053930691633211730993248197857613270975457830856877847585114148404928604199904392747550194904820426491913160706390489085172530259819217153634071888349539731102985194621010430460669070387606247894407439750409397647034990249631958812912296301016482688796622867998269431219168097985288307374060821409977394937447464483456583184282879111023663098888062561003382515062335984496310117517823075737101214443890300352757284560815716268662304416714313013450437564446346761698968991130389113246206301555899408561112971279810247051539290817447001413976971863652355046588033842189274331711696420481950099350234350911955911047230321649129958665158406205171618821287556912148219841893260220470966215584352537593548178794747285947260824110252208659732125665492157189968545545045566809399596015521047569717972774622177210598500613346223857716956036712897062473496597836660534484241722838440764473498458040222896965146307569505137285639375851909777222227440374616483863689258911042424035015240505050943930801546670487969463506736727681600347723153178345704615429903260150179870144768965529953955577346694320294435661963575117897993650473449908874820571232602713802856509799198383037639240969844861388927783960714821113394234947872838229637367031551303835890424873639086100221956604624590535526488466022998662818227099942222038953593474550315853007908418659009276424467517259130554470771523231058947236343065667645520323993157596487180755923944907403751325214110144086501230115332333538370757265006003695215761485022165213224112371497803224203961418411691478863457545145761320022173415968501366799306763159881407215199930284426095261887696575004328162584862386766962497478703939188093014353506471588291039266514457726686400868054750028145671483322832570777245903267587752450684736332331870985266986320156869037594496833628955613754497055700765628581748364711296747448919623783765058230291116301748118214097373495319223810339204070214079435648671014250014981667823400334647673881807111756658169293322541615936375400172468323830449158014903038454072290603073655032163136242254406807834494141763796332893390246042959893014584560956604315095947136838687681028614341916651112642425365740894869591770132002205631864544404347173688710079994601716722316490319006271938240544043130302757133163690189967456454647288260623326177415779856966813243245080969640776511090958790349805041533954538371526174452575007592999025234864896970083824746777598522894473746744264793009267213620736476451257879388714418935322811548536523638005441724901597174766656570841304703134284000713112191533606435113667428164029245877510448917369391765419386363781265561978337535513301949716673993490221833852070769563338038902415467376829372482565793680940629291513114769990617892852612490556242167136053129450378919155894710481017753541625266256762170575682395706450247299922683284136344718412413950686320759177323674503284223760685103975867807182268588746714674866423228933753251904620811523913144203863023100510049213655928986651471454052652024348192049238392289047990208948379072358112064717615824268371459452232025890178711486355571078526648058343837568302425206386170190710786690244060028236364270030129427163857131861692028763754692103491671174740922983943863260386800165201545718772073465337780074956879613498415677246557422281167279112633040468425439865658080610186163952148599268651966015978682927786436626551707670824586199002661366112336559954856472093449881026380948884711641144365790162222513853469418649163564264442031288049279650173782550931996441117834474071409995561379135571886683691092581774801717166075459526284323784870178384743466376018886466380522080618951784440783270362477315390568000043982972273175239344380151319288351187832276317944162999627838754510545435896938981103129809046087673929915587620451984826400053459540753435798767628550895286305294784575256359950829184787136292110964115894231060264879037043282065266449903634621690049658667499546728617799146298973906120643657333185647141342278766036443860277378960131874078544680033946947956730131166889986012906328606473461729745177575547623697660815714207375162631944354356111895215614287855132860510029432956119205889376371631194283854806825108811185315903979960259747662077448977147551662282318236488073480130682590323044755549288945927353836681781715390903907132749259688140198564048044349458776771680026956550396488286774002904636544516699282955088777022746169656798035573564829820408359756512405911436903421902086998582315857956070117762206707333266047692431121912549628291564567255036681583916001703132710145855150161313162521969991239633692343864022790045508396467201086447505513329148856048437923888041392563833842954448774244434215089911601604547492867437903914855186519292944550701463983022732108955659654478268665840536284929784550689860520574440780094048817430467824181047856588098348277634880310261099569507087848768366737375055886512335366273665702371263714919171074859602865166307367142672273034068885851697750725510607618672377549631195284287862196717681277580187952226263338721254420279025808456834294940511864529729416548048349669828284694615189139619122486502967636550407845238331012951482432450737702296912729314145110760399920517479368072532659015049989942298746342931662171833774880784688365755692001520965690516569899093993040662308427111099021085815725204440879412253473351149501741848141014076643134775506929171567911252524723303384792422490884570537707616510809814217574559905477682090450790612993156501117889966409623844442163101339341455969089261453655461742611318412715140217131225762101209677943371846071059748388318000241201773230664497874757649535543340892321073592978520264690529428197940276568431944798135489659506957552408278241741239136026673330699889023610762602761398952887757743491577595255149586554493755863099011769189364616716532920185737953193612306935726827849242692811133004485051784447429638527271883285817989913490369990169500384947241051764368004844908035446535051724314066986391207242650166430949957098495901574956160340779952245224730007746317314141313343490396616029036919602696985912559441777305381554291622179136643541079615560808461668560541667752309975358567669760260484299178695792352554018231243332645949291587414921154339715650367395444783242947677504634060453666269902337491510393808095152517085707545925127413880516964484857510997293900664245673961500004695540718611938631382951328846321774046798187990027645477120531704082282339421210495654693110364663770808789094393807352112280462216365859563496006749701246147307625031179471513565956212130535437032096338792748750211157355337726846421743763446224419388710972785387274157956640531355343146289557097012323808185271215436784766649837300061785069564335597037636841928486195864129029695746154374435197257645161384932334086423171828842669963383654502444334203162975452066348756789463766094031348550909637315436444979339283267658561959731825089786467621137527589621580294852487027371945641254478815917297943001586514751841952805786478772797532977761018071030759560161445275273659806171969064381025724449852557391084260058560112922888194510123176618084057103369996165514692967962685826811466105086287578055999427987133859605103954740345303173611406039492484061619680929913392765713441590886710156639806475254950914589446517837260729107816870903944075492956191294223721489817616670434975463796102181445957248838035168670091307997542629785872472023802511928041321985384741894156458726437219162634899766805818774676405870036090789560622353402888824213961394139254242404117818440601476184300611682432387352942311977381341034497922668516344165113271639392037704639425565415335202361383187660089607269297171642086817216378084922589019731521436196503959218971989272263431851250253389128092876961464189777182700341016160859329399921951120679833649339197116300044366140773750732532509273147988514242683394506801723085560319726194126142584981156023805351568734376909965420923409543033073492632048170639240846162721946252348491602751540783666049059235557608982863849426995555714686293638400019646722261360976105647727990391879020960895240718745387966271192339322158014683140612715087086478368242037258167753879299688159975629152227871510920507265319135333942463922750314459315827299291484554974698563454715504857346870595025941992988734975801844119512446335552540294520022102157074359780312779891017437417718346938102786643027649410786214015446110533582331948855488218375981015681717085062013918850579288417666942353123721837735020139071338739330704999314714581505598788297555233351749097563318656516205778789415998819382845851684929335957828345048931924495172073851381148631740625284136569091770857448311691521030768549897170362220504705147662142943649761186261399958089125919258527848756646473807921568982387801855551186177442210857656107092156436323384042942291341059740370907926611567655780476782747422899568171352850071287459440438548604594053890945230053674143289113059819034209997291370534349003865786807997271359587217619580801330898673627689388640758719135532800396747819669954857471073237426345579316067384645966748280171441778013976471310605125653524064467959760591778962010444139650830663395080194857104111841791816487853744418209952151804467182738814355945760100167164140286827443576652920442062238033804391471852784217202380580253480179220117227984779549605545154158431011180800610178425599925265243016221748913773491310480155137358199248515312798329339621495725691594745098601244281603138417354717337913546639404453894386685569503672595136764696494309338686416859378484251029885415455385834032456618150250734522323313242072351192782930318832474728998392989642299827414880581916519256467014229929022208729663670780440287920851434351184145422049713928072000379739087341394204110862710657508175022919646520858872625855330326357879908446045965723608810696483611722228695722790954082132282830632747351016577281120764653677883878644888311310492061928289480797158186373369688878094000204282827920275364388390057351593995527599088560845342769610639991718672793508151794333079380357340042554641408212321510618812025902702987063080303446034059936843210067382297458352745186325609649607184273192390732109245787436160390978906868816593093202928955148327219157149485551089273573805064085915419760486496817987893538155157038651223723491198506936246778387577917350413004457815296243884951667767825696759661495041196179494889405360933566382593353678685610709430590358373586891386425320896060623595654515014760158694598089002660038297550224195984171031913780454366230467652830087654246252691954142009880908709723147654925070828601454990115146275331082174563651848049419400175288966842264971470380156039290555766007281093349637653976081538999544262057019431730471082795571693055651140771719087346839366169700770561478197568540517623012716383824707529839766614954047981048977972331334513617687493361254031684212923649789554368582534655290194606555270589836891877239829195224285029636843676765433683623388389310556217169172266814770109560162073420814981384600480740597005791883386897649956291284381387742251046600059566406500616205549260728735981631243271201856358276822348252017820934260654947517697157748814814184190164611673638891390764240871145261347688135182833508444625666074203588089762581317631274333431160129255450233118448178026304912160216240732844020000968481538570239570152333148791869190085362740452109764074955886884245256908468764683612782886368379948053610750326939185138858740126988593148726564676147528980823616709566688886983334412580376292215429133844073782076503749052897039491816050836832806435800532093123644588404255765887247950440415140144356026854582616773393971207324511155763053542669737028600426239828665157873525310909217647048760769934908966856754190472246845810088281365584896143896092343895148700496674653847960920681892164866221953124354939767108655238624574856855450670078564931152978481779357796223908595700398461993498977354314189517430705231631644731117112466328555906966714802811655622842597601997134162446841030578115024211856391162695088040547894501597598589538443599880426543682112259268002166794064432595175700230022259844523588507980732538053720236617121941443014738467166045106362436818985813956477705075030257508922242495281567388528653278664701991005664417232835887443508951495565214724606166490380600026604482486185229542422078619978610389623898061951011873379799606888825411700519880391965968284438221318056961428758190286311445399897920735899323705372730845331896248760626801697973018356980148728300358663696644075048613166313254492017644321704541426955768904828865738866448660811632708501735017460660213245234867490092073290061516202973098590347924724609808168279301115285825837768702827559023087014882837987607250548570350469273813854986094694325182571175887955576627728375758436464786123047664946953561684245707613240134195298660193605014778516741315392568460416844443017640240908208471204179991124428938647013697123403841293898362211826498739723100240086857859291565337396702915677292094102643317447382514215900698524332396205220793147977558434614857253719531342713583082830146763316571114490462627031979445365687380448719245482914596532834144203902603505816519304598958317360562181461593753152224146407474103727439314361075070219319174102811438462402448465281153843331056216217313165559730662126712134478487133477588808895862877816385900500742477749996511867127935171664915496297985135016041050394701044887476263398970417540416155168789175077874780190817377442687527092663557177176580025616105994077636658737924622941608839821173416276437056993703430313568836749203788304071278892320398317849946330461939355681208176741719716103785886532083335467182436133252932342242691853781042210829558231272048851798140242719356034488725974356177332143286948700650756405326998934616367784906698995261402715241658635120688468588702236604535062858934080331809609394088709710596310018030242354307649562696405468351872623702415940886374563929430841151861621854059651903749590876804807989061682124481722767427234083266074440828200112013349719050571324086162567896671185016352616295731539763619920262257560328436501172632152291607603013791377400760557636058387794600252314324022910544109261854922768208529306132940408326711243346968352217793539535644242639106425897496610037085484884630670723375720696954648160957504357630343761119067356705782678148996833024647928543482718620634302923718023450681294511314480615861115997657137358489557112079685879861210023774645730392398821415618877772359358971718400301186155818749619168148465751430341347113352085314293513372575254227998720687712020900957702916451780308655535941607424938779689309782389494366153685213299566052023688779212158875432108514372402682845560013916960807738076297859911423491430695667370858101799356007468507393209984415510752278645521293583305210668832298950890570273556335821053082948589218952839396977232669390325173142366108303543431588849343994002876098556217202849821810672917854860205578078168845693650362957515048975772945682823074857134687271261180984987476328146468735866508339352866085227869634967042575352031075498508974142681020084102973537357178696794741488155975538739107219090892567211270665345786250137480961514684821055183259394359915771900567221306930957247405277587022110834705472004872405808874014212525960564063590191118700531671217209510507079468734010589225471297945034145967635872686501980820511452463752419083096038795124270202358363711111222814902234205703125762392849116107271436885282550811722020378981148552279084652091651217269723205827620602708718401938462802722257504709216506931847025787684149177548392153273278370762771583632053566885788271874399119857815460220610813743496945700817707816690534729716128356986264647705313459524649166931551037530622127336947164590840113195586988112377558425141923550969464080775695629256130620867387266861685189247393682536602139141803974343335366523836522259335201778963835243803821374753774807502925339046492895867957330585666563172187828424867111281229507704287192668431005059234726610215149133397878938379938973247766182842077619917862038131624130023147603966842820028142724330016184085684957434711036567400124562495368521057733384360852368512816113606343509748399785177269354280895237525062853886045065421725501482262660762895774274515656681345184026328341627383860401552251381372469976560313673510073474762940966801640420785786623865970667788186093384598092606639892525425123975662562426093328583173943973241210244845702857727269195044422218509000940945114329638746258688246862765661764342810033746848730583482562719404746296994693678597939369156159332527351993437761205631787373163923322467308082833807935959894308223195213919442486653471902602002732732089656117952687870990763823775540259402258875521056856442612348539444904425907589148105825952387886895534876602110691297787396402251216991087564487241300202501409123385660808919927774147424303218733984680470189613708131141612783489028978385811454529408862635237343074011588956213394472482479296422358043919907201342335007627222798846671187175877134302913093085657731699590454579377537394528600246388272529198557610580519475132262957676742113113408068620784640055557854703311676498101641757300394293300044632583209118557285687377722437581881025603130630082820955549229038259127802287614169753693435841492632992044962935311942204069042769371499372332070227521502328004600191075273767578586753289562806471344127067061374891630025621020444037460591086540641399589479268588841542035671107303061210641198665180473788751651163698938836019069380051895196896883437069034698806437102556854511275721855940332819931941247952790641958516227499945735538792920886254650077231714085697059498631885016505709803599218736179209857602765560611245394008810669677184641640568706568570311979078734003476001763843127576353215662682963107631280035005256361812179233212055442166066707533549480306983208915011466273055175123673381943176653527052095889876513990530455256247703813128235647099573107615512142475015605157510202430448616706184677670865549803731048293146596703989032776128897943906979068431473826109294653012401287896646183991843456082313300266032775407860618420596989397478803326427367478413931875627742955500249560531860019924982240472243352866426401556859495026536765120999829043629675227797271934206478119387917184380660972259457721702996761060718058471609416736982000037174359927018871934869127744073185205866781402870519577473566817545477381370246384620784979258773223428851201853733492957981168983164563063730902978264896301742648710149281174271986662348746299798514468197455713883877663681018841954964487059292767042641747021897811467247357010639752929401550390787261959877103697494020992874986456645658256464343432828319036653994320993075790329367042204020981140047347297804060931519864122051959562895531131347908292487052187242836615682495711522386707971906458037193617487056129111084613160799732325038288405503619487126279007134948749660187502169385003794163000574146542378336945229868106877279406012421033856038939222706316682545385894170390811745647794942874445697179432481409601800225810325504235578475580164492103286214891323312690874569452109609915349362877232707414554897572685694341756372657472424195889826484197829739099333311070978409068457227274994591081725559136153606191770029981464649014892946060724126270580503440036317791335203389763257133965550426884292630688957531986098048898585682430791908207051487589974546257599235937411469341770613528841136220536655384129008852483443450624529680061415783555922537243566831832210855143840275355403818785290803134122954073258445549338778733990505013157561948228553144947713058137887825304401619489997846868835241803439021212376784784231108153169477423562023033812903728274517139559979069866253233443539211901226814718963993560109958601770041194313029541461907468143634815336126843373369264642661674365912595566717510330133947208203674849571173288475078447439832706835498660411714472553602092598517461715380311736182132288336587790172101586298121197721253827971277017318578210749973764431909095096325244166324211483387540235591714418652360398121068894835122322309418763998493909440194744144407136953948060582507805995857935779360917722610790649730019190960246092706039141533897467024816586517417827379226735798370324838152610494359440214701574220474632800052975734635310660358331309300634133333518072675199349584874050794148692660305071908310891020030524696174661213826449442993863574495920651060682641241701931844290971270528135533457413508545447796901615656258261018749451514911452402067833345476668672057837654007935231348678448855396101438422163405757880881888701297645643758454888258483970342108451341900599629405137031515580958454319595840516678658741111377418716049507114671994560930915899804331560462066928309306164283327087004142073124165943805803550060614279928898728613174551738809203548268833396789559335448827109027976424476254507965152375193862406538116522774988603473252783072510449351837882892980924208624264858436623932215799586595062920288386840008591997638737571803563531846190577325902926110775894910186580067103991449396733237694415951192356006357457708646905766584130856657394481321933305324314973944930924260669209561403204497956731199935854950190513891779102049825273578598958936151511012999070848256409808384617449622762421666803936886084692711770019751648137939214192832497134979623129522372993363117883280048109471821115069216270981365742339413121724929503006334898461929417760299918594325931487012962753620812618617897690081698985370494395619299911527492942014420268319776392214163538283798969765001819640010348876504006172169961927802004586801444870277604505852418042363546242879972335705590382612886298689458712944745953221723681677310233144070757729129219758829027334222902998264187009841684623746622429975176847735987116033209728233141944632033873122280514876514350424325400323422580576131499804841709305896143940346494488457277132630872543306810234260469362804662639743939819934165733094162039728210768877048794983550887910781750048574805425216775967082591315366422999330715552119562268624907491428516933976470515823521680323841331592569509526039269176300097548196274881670177902595387372257019323321338552230752831117099173460241769488975052071834653003884434090766670637814132573158474749912751672482038024971821672277757270877180589737549047887584036813155471364048958037202445436586096665251008261263994036141235799459098695462626438306671847651023814588512244255743650788407381591829136582078664547818349138611739101722398632011151462489111944312869997815663444203925836542940039072769220744600828737554783812131903489550037865065514660384390602782734646893034121827144715713774561337830558043889355127664663809317916754508983717386613766968797826627958072150004576120445830467064842413917533652488358045243491837631734316884661341512288549419400728792921440049173747859786520254971747489081918797130402205771339468847836821221768146520582576418206165019058546639749837615050228900965493155533346498292393433341538312255902383390746056223667485417398115562179824176315097924695954814361258515559579759071365967520350654196445099775227998549282705565308537593931154378069039574633651875982858645376658249464914034804232899658936058647900031364708156330366635191796188944816490353340180935305784443529126388656560686355843527437795223727023564551827665244239532340649558351249151535592931317355096984676768578772747131145469047030354651298719791662792923557717037415750501854000640679984513450843531754837284314759864815628945364940767054056235367133309544218088713152115036486282178036645969141601372331389743794479749185061539683544194993857456334066989413280310282726163996170814284800582603377977905931481532827947996124340544319473901565816943125146915689507400619558195125368700583157295336940682613682381539545912406152124509890230035274684015472661172476854848543924816656492080465208562764299681356223725823523444582163682316581389884746735481359541440944035715818040527247021199450564185972564950816298897658094608263749297675861916734296446509021793589772713403519700332735381437430580466908704229192305344039887217638749815969354974578315142070967392658944772195034972889723443088071282266611447760482092505012168264601033298785962398787971715951377643464491527347389881808862914694035459060645924319295646474174345639992025007781916025430168483609358930627295000451048691209519628853970561051216479447751939646327731465389346004324492106029671465335429993932783631898359044897902993934891333068556912350706576290704968127684369591857254426702726575617971775292113965519670657565900728264045506647794934815679670049905519882587021722802944910082727935295341836976963466556672677724535527251134312956275091380260225002582578049825832548700273583464678095023437795325249124519561782976097791231775022237607623239717918295700705882686369994944414090447807635797268599465731453612252528895802550186744794142613634621273541172838815798210091402676269389362454526850136625301616864969363938570761822099542990051017843294171749189603017908722654320646382413449940691455069985106986650457656503431961150481479800441995241125324171227882250303066995436526554124607581619179915458526743634353503194772010854799144204091190246778240931516747523697570507384072053833670044272850535542576747041064034036063881121834989569818688693076606999717740070952809828396922817185873678712096279482382795904191788488516651915042377386947408177848743327472731042298701017155797548623121556641449195256949251578803226023732389031079212950429250847106402237655856020185331952875667503928498208132858754696713567417623961966637622909902380223827466181288474725710078820858409566737091643907874235675772361994795532028357328244939561130045037255719622292618112596465563025232894706293304191199980643725308137168575083659546158711139606522251430028007656083255238482776746638195428350700783721683361105402280433690704827229928276793647291338497966716482151466414262153686150505767321231183986165040153671091049761141446286183900404301226363442711105447030420596235491905046121744492722234468228857991470818161968926216143227840113535791679841627308699183101468120798524802767080480525433684170222495473195994292157067313667621991559475634861814185062320197810305378648133422296130518393709169167853004979795865988460399865536222713892158560819612970193307779285472552719034724922035364062276938278660010097887457797683334930619614949889988178604657884224115590656629797007538370949515479317395427070715284550041842979173068182259477389666960629003100031207251932500185034991140082272521795824564783921288117240637123568695636165882756140626907376255735343461872227324527409039438135958032557884062600422101768643420780637403981113312045962745836950750519292004257596019809010092226333986048853460498944170397969462194515296963095892363255362518259892242367539203552167782912016547744001111128043508660642168969434401491182505583394067224589872012938602072197931433984492320863004020820468014319988679597453486514641668644570111935512606151027016998460778023175370845996564203592973770933463013091388268993762994815389310604117668071489591970761303287018359585834220239965068987602994251840211609847955750169847065183669043106330231918423883601330505631684564083698975314929801598575479394675451493508438212072546427673687336036353092305365684428812026847056615248363579852398944184115532042632322785876390182632563871039758680770123345526026698690516807599601515264262691493526581334363315425359912508889559836104550696533787788375615147206231238226926557144328535306190694589600387275207763341735315232507815471820751616836552550666887131408763092711643283889105773960530878344947144992232750100569718494420673319028584051779029925965605428080987461576687246381406339869142411098222595458253358939024087563258561860029702504764317037960106235732886976005434145862856904902233591263790614473575627083937291721852780130488901776122338789663673263247509420057461807634054331587267208536794645687608476320879698641747202999961302042323248287563553599291850994624094785670646344685736493494175602561604597626822347926837645425564345630840025840632714902177164324132301194587853655501646798924671962446000769573061755201484324472524458011414769563536761265954791174849114072732181592453722244623893209147462551364830888597016501457554643201481050138670187380998508514874622947536602354097972059648887032241086127338675150751501207216092972054950987997109713514518177293039717860997027776776439237514063899241757652785571244525364615531321351089841234145056049109547062520071234955743378637188325781140553457155932184981306046808112836401816850591990065445782236035419442830655318820580922382437362226150391775223191332025314499782768193352619827314194789295367978830953192767536017228824369131152709027227542985001259785464024876013156885391292023298242643174263087241191568381175344249126778644665387919779364629457485575759064557585088440859439232063081522417797106362428164493462514745837735717413121006387094121625007627018799729550127607859728443747664410272647602258192720511126139598322538226711965860837275355987864421270442683283753195632839931092637344105748384547874266377199012458812655919486341338807536381869291572462401714802159151088158401881034470036216468530545495789730191463581675956758110076807850180080755292319504671042445129543702336371030127961289551798226208693143788326595798941108970098458504052821972010000546384018058692552044859523187314059392632527874197651605758074795638193872582526961973166234785395210449901280836557398413996426757669352780786027565155044358821642861038561798369622694637013471760650146630946873862786242172374468894518602914539745541623486970229961317358346425372011727833246711922574387705339005411899878156822789035357193285801736796034537857770334869195621016954046483779346644458651024614852968924392507864530234133898437342131925284330327039271231047464994256161890052100305262850834321135640780024458574189834720183868776752174429029036955687149079550382284582981095425544333210797239833912620596913946563264328323130978307609633304856838151277543272325067950794746853532170724666019935310286799405278827921379434688082365522148695274515343659825967081869800167141675067884699080311571602838293146239288261845096665355446077189408734169507247901516266006180252370240971135181060586542663395811382585323893726282329818476201389415250593618463430484507222166677968840137312644438861253585526929564146239608246702497767687567542786394713645038506211358143855526049058152655693750010164020876398153101500303551667180322524727929352077323552144580376790251246828149006166727015684722520411355897232074736799924958518565354820065767226055577314882264723233850337748182120737891478928915549717788309500001527696397167688769498076732148165424961714568477626015781952988822799554038942378953000040473409020167199431193397792778578382767295282008792740777470525434094948725347715132158103454723232595588378161081434215852491997823524840368038431534115425138776335593434071328558258950780608665238889182535948662741734063847442802796293686697791905097096662649618229277819436375949888506658019299583805031120365606879831225265102806246258480054349789072668764038389948590970957411790953771532687354578651315569037080824136239056803832632677362665429178483835066910975897388823112900385008047003618080009486533186364399953830375912349560252290732011028598654624764000078223055914990123955432957200169292940689159985334013901833963761519541266017839510848132218790549482096561785822403743624000279529633946815723152615218375964210276135202015380645312076076672474435824875880610295149919521387589645594715099321663383288993641906240747320511665960617687132342128530259824005913940570759925989134971176332582714561851440506651241390466309702624730327725003289250195437796603393118608113578932885919931256559292385078753173366039816423463066275322829545880668077713841605897490905882632629439991099574131298016616731323639285208019814421264262304353005626349940371316142134229768795813529631302467163398171760942481584077785122745370266990827102473177825300037865421977819773785848653624873684483239369206966348541232168251217802329393902311065437511202557789526531733589890991382288269005018232708582950611611391238508898136558567011319997627475429138797879455525868001250978351161078616443253159697152798504979273536152423453471853347211462529007593341278982515003585511047872805309096376838747959600940360251043962053546741673158962484813605343559832731758905604379801582522640903030102243516837492642078829314502019548027829730632013206577055492975026038471679904624890253766202049012795984373328050644930808095028185320761691185101612675873664680093271513337527977843054584325007127378037025282781569656745970488797507434220902937461047817765576463952024244997081665512830858593130037874433631532121164959341621822511622278855869467039849332101946475798493098468758329036889990043228393753455559847915721406622498446010778377030426253859634502579007288326163114991931260083285915010541777471934246134026366051169396912754139214421179856681154666353815499500451309942203049412345539285632000160286320633750885684496479487113307006778189505553384003424967189288032155529256656633611865379651634988015244904539220958527295260476959747151073289341856078616023010368444962531347681976218718466054298170058670946254249811483060634136007658732205090227930768424956202325124117789917528333768500733254589584083605824641204018171199810467530802759489404533003534437213789674797641442035601413107278926175542492298210577820318600670822559448066634946073665169036332094535704478723006492641479949628876135493516961696178519523926392851877803659201512827990468852001173550892925993583646497225796009862544972049154050132095540353246918295436211026327846084398459260604343187561474268806043157529572314929976796105798761375246740372078963577200793736037494950135643041575885453891790486469733339662036989326859065627087331430008754009947000390687874440790271932579680303559420156442123767757739789532512382926209051403031323383500135940689120556522548249318486924134256092421501296419499977295720203167333499698318991302010592888748800353108430520813429958164644581518266793292450289835086962149054283687892802316646259615758363279766113899943881075234830281362268622224659543305866430152975009970946124071539661489477528309874163157645343301841482248744683124856284779398238767644027038517732498424452591692679966559124827344253120871840314138554136368435803307327346802681754573368774128311897129333935710743956781682143916583308097348800490243949765762049819185818463326065517504511807990100961904255718670368492708822449733097723768343132091407467824679866158732922096844989369659225572799531164530281734518181195810284327365722158980058613109225239244188856931744429150058677304843020571809197162878008360235881810932600854636516122856118366271631726505841235109762119490410164053196197171248457666797472451984157964768991709781095642882292872678948835007758083188174731354810201271102994484183114230915597023157501830927746469041168183369218760615433979089910700347811767145619104398449059220144322504063929668082102734544981306662941606227155485464691173558074905793059530945097876731551739760565328166964751981412503078632412874232875601202658317953993351056050491918975869487158062463065644261668948979243011421754834823407273636760166430270873870740091207928779160059707837330761028497750841357627319511379288141072218176286210469470138942924144575821389052267401206525809845797143893211952764230920056193611018751874522515685199007520880488071322154403170893369674970132403567542215704825634759581194623202127520277289375575499042848310266994685492748499310686208161743562099498610833606505821077184226120811574363498858013666483317101196946470724018285603497225844202609834681797280244019013240060434289722044983746799713683058771529357801751290091718084822688356644115763943459030606049761265743403805337397917285150318619495356877463104298950614948454228985562007367577293555427154807386266181504071421063781165968721835148682254888056875487326609083844739853699479977054193573303629196877295028479707854220279398866755075445393533323831119956653910233174947853252456980358031883847042136181111784323576181866242010110776883745325850614161546862256245694526580104070637341928919319598188490628782177204069639967678343765763377195150400364565555293815780444547365700801727585909799325065301722182640534065199420419919748085049729683177437352342700689934928013764757713278802065256116301636762675210540083119789984439152539017318524907466867550641045191409184124063534782745716459391214277261440809954674175134012935138694765068991725905568006858545818985796199656018508746608663534173452010351439958123297574541217217477616761049489392166781864296821067850499704877071501536356965834276303002179062040318357619542333706848359756764302813473012540950365253960425889829666623138293629296296334993416670484075258313462264891501808276988664541630318373258575061411201120939011801402827691167748687082600326191469673054361616950264042317014980677324495910389815568205097115721340943553949690069254745872039369908866306737494442652073532753831857462491172553648776095730681437864783568878138483946551187753449165828571820668632010319408852354881518892640926351468340066122568569838886195062103590546440431828108407837644210356395551588293757164334496149784726119858491538742095646526793771558403957917750785427572173322794382036897264303832160766919020998228104212113802637609404378563208852291004383976395077726169446456377512413343715514043901019131457853314144555342160858236462243238390492668094658909683913726040435530984691395979836594614840780783669238687615281659645333267306164854254430144546764387530348551514176715727461927198977839895579397827910718215508526189485431347150030986754830556174118948644018221607835909885972808700609710439901495622618252102786344980328371485950368600336533385116571840057003467084389648205500858925898963772679973157649775336370245342899992018598269354178090397103490787928623279025841095823912282973443916533194001548805535834191748716661452133020883244419740335594524991969045846358194317025503762494535695659467942494576738273072320454361011448787520308536840856134762958159923402807978369246700974791375473958825325538370208054529592603249998459291134708204829819980029210318558537450818080203938434817809869566053991294714314892511479636033569283622212308964694856763594224845979216288134117006866917207983272209623479499670737604226211360111229379125187596785712076220298679704076343475935229961426017705538674941228762401420229895866024301675824854812488443074453647859692254028197222325300271774488934379285733583306837583718611815643953275193093106797975871285277764942748894294180957874463373262822650626861482287130482388838321655627013058021028457822626953434033979424636652327745727743321960953564943497283961007490175415218004183744839700409557131359810371393807778801359683711321700994882668313090872067640190031269550967467925076212465713201025396657705634898658979954581061446695558779530997432271750704179353737882717129964590124104889697257301015348982915115286234742595743580875446103309758794818582594998013382888836855835960039301782328873622635458464606160388000494208104323815175228245241331346367754257262875443599898066014144205391065853588078539033590505533931935983287424194446443731955395128586728552674057270629820399207365443184511679871477072228519279634123830866793443103254526661412729415641525557233546953753750212295808556285214865727966859086340365104249910622042552145521434784815542746736205068307692565791309745518736378994822590374574796563527335799786940994242697679388107807928707951776077591378807946409341904789586751119624584003895872868070419717553133469918378931667240662736854060917449485122052018559037622372441381969175736711950273466216566300627791146041475815141929657589467754857435566361899213548649065015954896517906360017375518491668337356674644788943324022589834663163329471198369885970332507630556022634569067814810458802444951289474558070143711245580538491454590219529024844240690528606406687233503782664649017826997484468931617822901815924955927448094905801606676323172084503563157703004561980580104209588942691697795253919281027815205406901224137534855837792466630389245760263831081985480105858630453673077204349425868608797515381142009214016754994363302359789297063944609002842031554038364647801865598317597917899572664118508547225401071001815767583780479388265302750563406822511227216714232116124462114496816274556234399471902532760109437006282642516022660304863937002087655326898023475891314198924906696605416968185930283412414321322630982303128321432630092007763424379745316974633512897554693575447538542743587553897116600339298510726798255005165917299959461237540005283265854481317020975231172403088157281232422617237962783622022302072155563703309729181454572222155370935522942463321622830681597573044715255590178183033092515178074993541025134232063678459770065550322363835293070414216613020347059011668739427665433633543079446152307504750561143370183344545636166228070420970902958066353962791715196751243897694065912720845675572725000919271952648522893667467285445531565483892294573714667089795890168928889280829724941319250934461440640279047628578320124343619997080584234384281278072627932839467012937522366373624236912878615692351234869824437291898557512301890351123132791933397915101972116434693597898441079390870759868620477834045841308607048012501138972680205439164372644457574235950245747029415189507351458865713397342461672711146658122886634724201733233992683372010087756625374744536259349907929943528615963673765254777565759241016877385690694030605579747531261443799945479820584655846664359723082996384190081137511669593897528001016849552173108965841430912029943001234570442069056217619148453274065814022460538406603638994687729337626009493704375524977859773347510867012874906513227148168573369545760180396070092010922394057870390065934207873688001771937404544762870335417646875395271975943082585381723471911102179111342955617605031920847798505612374491459992725747931881767933158670702765903981868751649804231017788427711425743227853324568013355360926926700706401461724135834310092797787530347442898066358555697899921338538233866643542254715240374895554874056947133633575983210394070844004412575694018065141197284499717430372403926334479118999734562572505954107306181859719835648588020464931226838615204646376613884722094678144146372144957331952797442390124287525267656235163077806960140812655792182420048666910586036616678872830287216578699303043440696270101026805571477635247542580955855028324703499645610723713599903942765436518952570905295773138421525382356013460852504489065866515314312954286436562828629840136684271518649639184930894828705537512044224390232425081756604885845690693976621203280501872605631788054466154903227280280077694830874461303683428493085602944093171764559017950512262941730178530719660174191314769843442113738177908385226046919741901392058623884824313039938458732474162102867766143542841334905329190708586435347387031291391241204625272677794978609534288418289340448884951479374145031124015619016055600179900834366998242997790946929214462676957275333751041416040053631474360502849917562099242263674933197665204874061689881984515388400678745905277745653643765045679829220246596214484274954471530553589332508071925834492528561037946465339492773654738716356031680130864540853722830486558919302315942287801526258637100764079082512063127293803509388674136645798258327545699952735300679095112777793170758465239972311818561096742767100370207442586197110474317436229311884841347515093266102090877588540839316312156739959826388302895147784823478959801441074309268575045387557662113982817769780363398521740439595812186293688162655083079060956120230737600849759654769609074108582883702614138444637925349948042269770552105224258761781641554740376555358121151863087481599779059206436724672725672472400509481447440424181008681292550614464687545798189063231849781545897641492583117002373589874287173456281101747837149765701558973836189465926057564425632450235585921541096717812313683871116382609413317538284543762477177402105533492126278531769340404947487051400806287714449579028096356717202125508088225380071096998711309202277919961603575354050310682704374953156310321307712960341840125385255331445428203683934422306310443496778953187875019111329575033548007712262020029247926063350535814903939052644023491815981874822786529078210289640144424831136351955723886013937418557082938220636752357116852338914684339743556057039831771092439261792789374913651979627241925219573586857869514968704932277879604277398722268862549303226367245328197889797789700055367603718115993345550154765895153873862824319896809890417950405442839948469371684607976200806496225139279993220882261006153762883870842009221987938726541960785854154568444547996007544093542012485620764907136210027145505057687084460418812249270059733481159719804664025151988260263957333326598207927004384872417440066686112443323109742451154159187845857716933034031659386203548528176340752004521511566742202511726357361508761055711806994558277559885427804866029788114904968496749915876854073821609147292791874837046873010682306487599787654195535225936516802024991969604679692941791707476525256764076745409932738747954229605403959100333372177001676226587959218203695631114333097516891330875230217179372030963304296701296848115601870688355766652471749865036488841461026618725714908884934563491636633527807080663486249884795529483398702135132405238505621318558360505747601857284587207016558784313722909454863784830961555286654839354037491465111995147935512673896240667988273242455834990974910326584827142408298391875102033492912738838074891380505608503220798606717068942312950623444209012663103178683199131436614296661350849150327176714364526601919472643785896729881565729363993319442280078226384754555233854669631272905097476111762672731616073540096834869633874023166848119363198216657522133660126336223977911521564499848054843271963811945284423927792349492832805852252998435089921722261384779861059295724200032625280197635717663998964525386016496372268381906374147742612324674294839805441365110969959615207113336339668307713067585583446047833115810311563047243141727770842331590062505432211251192620157703170118014362355030209275486848907124606697468422749803589669434524252475972582179794719734092147584699116712152396508955057491089460412112090934839343276602617416888283544523763412267364786726468384930502089059903617816251160971709889320638922703040982271269721269489901880753976577463880858174888628343150174549353468072991347189334336503312467005659408525106411278429951617314350006048189161659143502118592131187274767392905828396293208652121885508451381620911586614623473269591770211739884120524485934187427746424193079076281808364526725589006704008596122864644237922180215260735196679378637348895640224036616801002913810895038359395378081163198041527944176305965058284054520414497949939807451862860382096099601537233169985192455153451365091774465657491214080311454254477264490702392900835301928886649261085358589694197919836176438062353099277150361917925957756739394150066047828748250292114098121806947851151759298312347644077840966125936379687353008516497829094911203309994017569099474947834292102383458155326675079848545549328800012168825431977827487046375879722924230214840104988144687885742707942772311268663392023626269067243363133849628418980183427988101673709409050039931153351401280494479962616959841413722147242834901444200304683390226852331513091432094548486409723412842230584538239971273818505934152646482975217110001465075306953658691039298884541922890857641108391416810049730890749340726282064352455519657436076425066595330714924524278625166984728863973447166214723742135706322719341737625149090101217592290190281257676036899682030582908292405289017716016901655808575060307462254669828978006659053326690487313523425374338571834783329768745097324472187135917343111269414525149754860651253256901956516952780598569287487749858984281757407641876150720897652688788326515672653724068699047906362617828809137072750717491607923725907091520572842335154593385812928888891386148401779515153038697971539935372437751220422160868313288563048383126337128506723502607342508413493218911433214075643023007034797252770424890498540844785470898278923732243319940199393562070534987667807696875363904435362336078891760018433055356302805412091721077407239721260392366915069481253983808884610063133145340013839650379262386764508690090032089878910536079937705838660129866121303408039674649822293853093470622021778240685761353206215096160936574250436721102983567396876206745075372422475662127290810880753768288241465879500331336637163172770109163432587968495775647639419413189390682742872714712393491554139441671394940436807360479331050825882627905717333769240228474324812988334360867999509111103354181310723289090056805176678116684002859899640737821404744020905054740612804183237631013638777782228050777427573890224028841313388948174697675017672098191965580412692675537218635374413482424033296187118798672162345065669497805121043064607911912289510972666167484254403377088558972590265836471601863412839582777510446589239965425860506054069565549406556877393903007463746171944358453051942763488209401051602110250107156217447390202967575232570233429971576515475255424721073403196981631193675456219068206091926630896453022250653396178379980462399213102835363795279755375358641881965613697806462311793196326855072301908109645239059390064261738131863838145215911121431420893279862324277785483723575852813172355706246049180226085709309555954080226291849202724762799425409966006948196891957208485604617187396028518272677381190734669050342810003984719322812891047512644076496850613285305240115380696566491481784881483806141659959763758362705758463328797943051528782319405045269441817134307863204204202439640763265469920891449044822626474419461441050256095044960396183129479056652217337326755392983341280850097215764068111855976986803898147277572651220061845458308076426942694365482774307612923828370373126276183032830896055129683622347882427041194114022684549687488114227325357539581656700840355025821794719114713601003408232553856791726893698089075563076238775459296815948959986291199535002119376446800080162581602879224752882552171094628841797076425295284879305127729916254655483156992118666754919365912611167694972481975627018951319839871185108951420718170499897485976767366188255984252235984756615648914227022239791154622156342234443198627527721286063027655114850106534538462842618205410664439960742486825097988045290108825304977255194364562941090762836731772001662952772503592984491430055771884122717138194789569388057241898372974439838475057879265205125842045725711132920244010348231240366240600041879565655692502677592821842918422485939909682342078270026197874284572159474521955165445121938333945347471288366514921925521478735303894220795959404722125878106151746586870457349151668253358922512575295990638251995396361041557834286069040267624285423578299789849391983875203685018857529784837705058962010636469130888793299060240900071942743823151531573724546892923549835589978302952857672359138419108487278847598698175301794795544755141775980896908583550298406826413902192504446865367808531897543097567137016189175381500294208438834151232718797070811296775681813713743012956054540447548687397519204298294294533730666942785183268658783843267205442048845004829346875420540592018157486383400815765705772981416288386893314148991421719458405072353766139767951256297407379484313390846768780102663184192917141218246009875040414499847929624142245036224396400722621647466967104512159591127610371873430994095097753361081149285990135878427280362507880409891552014138451911655736022863718702391535260255410540511540223740748544409616464030781333838192952081498471038257232043681940958413195274220224870142911690578075931610056428056144412719679233724339053211313968765970999352995431542828884599964428909216311674879436532501446248546509811241515397488730991728609423874450432817599415680528151342453464801158787523558737640513970198745692582870603707151359649046856272685772122516622835392133623094027071994999197616549590463624360375753992060341677271708668177572673458453268414075126939191023518336005818604776721050676430597098344375103562491099075376805892979143395085922443370578238350492101014918648512119474956878606766047707323151021414504318746727509215253762585851459359427778284332375112205293009289356335565479822424719954726307448534434048862904682812229885058032990660216827088832406570035443731396786608689431074272488971003441626505228001941777268930013762105765016337240523003787113128850293042670962950022773595618151555387260041157390833634894332457601124957975186612849874055028650653776161937325714286249986637802235938202054120956731172079544192049898704667379147687061575522710043446514407744648803982258107805692174522461294518163500641396366053186888423748968979901437934464474167056576465579681564126350355733182203680182587490382133068299940853003342282716856328456655065916905813421243479469764031303962823262863469462092730924016434247607808715880284824195414347669391182266699031877661155077775827915457243425063465883786645247451730559632846883246266004922341448207210351637604358259304615865868693890180840966647246670337826486918305601890301187630608023540217331865887544379754198597193187912717638960126787732490840248559059192901818220935860339679050473364014100635238979099689665210081019022387608198782080448708818267929536697922776107836963223203056743528058289428232134917909828380366523335598208962563607664055533194421143053493567948231500550103523539652814997138679015749377562113642084203740058696303260834894886894260040525163129186764588056085380081471574145301390706543620420386837886729812743113908350728546519950482272612049882645802268880918140890492517227388689659021164625542181367810860632716989861396344871653772650919115397991291863441366623860064580252648618359343885538208741875704666298429800597388242916603158709993357254562772160417431109623946690415962281112456769899151023289927008131955875222065860055169879562707542322524338760101609225500727647899648945448669692124467252515823148419852572874148478198699138947938221054992018279299703519942962167151367678446213295261260677846849092008856557535749142704265033847098372108291213967454000873243572096406510753943900873107063600289631362324574235875862893101392160077096896499391025701816166401998403680205079705268156884402276201722965199828098141970906906901367857205458624680577662834731065612120939085644397068581451078866551696893057647252645613340995805452199687665006121599406081301444275132071245406405945522455478485184204323207578722435003416193488225564841092550989694084382955041883435160794279186174260140380745573235700513110757751669607673441027598709307389015585398607299635537452386490094573302487821317833087311930583054856590987150156165475844484057700376282337948635038217986172394244021575749173197556769047786686645373943990964792278466910501317292671382582684066842538091867688283701050264390720465367523186541223865733465439076114694866401057702695307097714591134152970208619417828861291904528800012137309978719966179880778533429937989093726390471455884369255751731712738508875341828239472663679601835625288820136737536005433527454784117137971052291756242191673974756237516214503114264949774794707258584660870083648410686820502058724829407819882731149248228362069753966965376635948038023298220949971465891337775530139907851134721811115133135234689915342322021624931626180647793695424127982119103600241232729189115814272410569748715340289818134715477752522126002230697425436124588368266051562070790803422548199482628913035515546092971651877265978511634293042656522223314321998862782822443039144557666503527677762600691411412450389578374165231127912577721973375767082072294629364146189046771703621447003681871503279802736839663537420364585991380216626121470921639678485843510146880658476093256247980192869089096938232701401061303997377904712493041537358772415957877674867656707626890747313811856981301982662079895051804100155268446576047733394898341800803751880401150656867202777765857845192682287089981156340128196397618916480982210826904040999946626096761773127115794840327594227671903665050289596485236787593644723854494491111064833461023637571347478366006775282015086886913176866317511549664308707616333988646684343754712979035091700369758374791234923559973743504355984628714435894387822117398335621330338961505114334848318094315766047777121657473355390843145103608863456242937945012019277550105481722880087474440742173629576567049628640619935853267507149431917619699479104506575833197188215976681621314542824941274959874737872876763625453681310003349092664190628935991480871397008459736553492474409965904631341629989629947902879102752165846931271522275486086279504326407346336426085257580690670902940887994439632160377686189368928915332385784229113541353986396892513584983090817163422793327174163685490859684869929818672587185531492946647938006026923777496956244735898343451186169569623503131825245106385811306938572217418788598646883111321727887933764649452810114729611985207942532904334032014172456850018204073584008413763626847595925548023793068997641953974935245787971360115553539463543434850160105504809773118142384592662412964918632993936368720506709740889636608621495548994936420666005169278040796947534224236185051639160786233162425548790836433662788472659926834204174441883215104636178174176346051127451643756869504395988077679990481597781767631450527223031741644373320455669735677861277874746574981734315047196128049512563545238810355525238445290840181296804455113078020081644409170942384671180527502279044743548266667126024408480002535138401161186761878631591967800547552073153857277970301060618230660818199597546475085381634635139881977020204925071968579618981187302080788507407214561130978181537963467175581133206291965261650720333360234107518840886080586240331585916556592021374032380299747092907502167773644876240165740948696339984122122816238653329271504905401418672363283496949345565911884775197671463120704253605820340996179252410257187090034099647788584585746904046868823109416069040652413869709994895824554389963291373217515735693159870509158819367488248618982265616446207354099781791783069421857399111356040989239292027580636497209264432929889012322620503966149800511705319078512975694486790145489808539664084041620175839346949545202800462500838319081593281932768321360605758910261195919710879978775939230456118159932317904997477933811581904341664309868731144349159279388403537839090895304749612737672217873157677610256849004891527427604835476737786150524948273621724038750176823054162151521301840164948136563508652970409082510764010456285636378468075968490469100489844355916617420429815621965622719453076987873518312791065423613926650386842076030299194545465147947812941730684729127655860289796175394333035472292629591228712585598791012133885378594965136206631440271999306867932627542388587245858963529358053693696612613783460931319564439467353703625402743387899803517133075764896117233461267018462006837530563481271470657033684626529352189382328497770275077618088794095044546675147511365577517886990913788434304259429977004493784384076255503350272635896314726262401613681023416811270184082213854721020790988261360023746132393206259340433055324121874714985511508679138502442788226696801050427075284076438478891968255408889565039264208174689613678176801499848347589100230437053418417588706008070062544422436120110068780267984424516703448004987499764379233473352402424125041800629053468271728006259239512632445305759552390915116983728609583995402696587699740936046786470003880719292705820779495694197363044281034983325333685646776845838842283320489377051636352455499415757510792984184670075136361905023534509342902450036877880473217643928014919070616519757849762488525552491031749300138410760925893618245094636068946390132218605254439014560563384619583751885985958034051239194867629999299392918324834936805184509092712638043022680820478912901371781160501820528493710953411710489760060901918822227202714709111627315452067519080841928638898139271299343684488678461638119023742060853007578563891456253568237398175006772640056090703071273697172621426507058843459057973561318582580873214191403881469501372171579913785039161451585342884505548044569968247079207294972496601876470424277943395066320200367023913378127371685975978436650336225202160610437701079352988832604579530061574834711512405490568249993774777301408661552717218191820383173222191439828897814822227287609003166626656875865396865936768779108394863097264835493473811885428232421993445532597291629746109685902304684916494273331435136615967499720246666771033330547419885477697995292567681667817175288468850169945970267159244546333783802289711099116744463511294897514514570487300680400427347458729180990284636055493332796762263417866836326340397780523199376162875158039977159881984649793691204280602915595814561546267080817083583217892933957780168659249654238223081378970463171415030645435684660624106733487901465762047807134090613661253130149047186343624366712420134883486347897042651175357028759453772160724616909217427116628098731525542970846426035065937260089420540629634670659023343955023405210202022846128537756657992432687187004518407123739382965018587972245584997588937481159325500918207779323183017984068701299425273618810193318970238064065222459504625346493336224185493587479445734279090337643576561298087828670574147963957736599586096243529242924518453988206209822119381702108455344327706527433785820430502436157892832922583777815304639469934660723432903028626329724821780852532324297242607917491357537545642107845634885913872455753693126749456731890660009695434278642602598030718130661074792566243832181006136233062840345573744075668717134066948650941786968829762303241884906813594160764092090844635340521188577021341781617211058204577981372037785281865352445677189997594576953532295790424680795481978985625289978429865161462138243216946452495942300115547140900401495818109355960021612353846906210533714931851767771462277249832085837354767386021436779208355483799490385732103175268418413345915237477608830062869484399242706540023917297525348420206409323889387162113634753300511813758173222026059898322774860951186137388673909881206326428554089294755384496551057841094231214140353947354999303120540593799672050849061479896180899465328398035260994145361493803987312678519950238913521979241710796461957883236567302735729843639901562565809655157062116923845276675745351964912735384831624759796183257237648101324876452436597445740834970172058384330437480247273087322213496297628780102408240224314866382199752870500508548038160998970322815746814223042760175820515739274957791748053055680260175034374586957576832073131167013247149085816006362746724731383547670694368456928972517387754652974266275218974305476645429938207514858468252714483576566910964129728095061067928128286484646390894897264224876428669399788379662468473143409701082460885086770582815019665409655472533952660101358903246552795667684133368616197676757089737299184857175886107048008255658116403451338743496367681583709320482426190156131510782598186659396956073700399060313633082985152628983037156662063247589382711280061113549990870151000695833437295811847701120532156931543298011370320463912680023526749705943394019255084785610841268633586254327875293256524672176099581716444868958267615623936756692569398001255874771193977524196887490645273844707620966730465412647847062345994749822449027217773736641461236384982431880534090037390041334320726861242208618064038682726767351380208089988465866712068913786858433968053389548029102755525911917524730016135273226976676313968143368045318116084671900238580894464642717405607590227626338842810225501725433511544369857578004216751989832829348483731048551081721286893694037501263454001015287305169609508550254034353306909739313781140320499134212997915022281241736565094299051380239119684946475544867398221372528855313387761269958342447564247006913644419296306655673623919503402169531299529097450330897199041463070759624744868695149727627323051434292631611403856931172492461397581519600228811578460142644038406540163476940261351569926474869131042409028690104781095688901251687481297384594362559678860913393700759377630116127606308296883919012764075887019485758067396704429219522092839202784300502190032521563994762355711367647852989849322416928928154160547782775347261299091052846812267223164197711058003697954256965820687570555979099586278915213982287200019688686246200371156089012565142643753483504826867020188575556508471278617687534078881351199922447533909522954281337108014348089438964592735765848569631483612605792493738486396987230605870143429071041036646407631963483791949344897990394660834054321813110506770156115136699697976571065886831413226424845888103192525304935225164478725602219941580455792675087753732491424250147408684716688847123168341445662255123599552084606152230634833104853527037146936126903297656448480897956068509227836863511270657101896729050658487172607966573127713905914269068310778377729475588203944729859483500149624162386938235904279267790623604876623430727451445194752324560234172940444959049325170668051124140204657743581728700704102171418599991318395837014573358204450322335157234841757775338207169126058713058140419679144675930345571678458547914766034065331236148727899288122172731882651026505563897360555042580211369945889851121233692347537937082780948261467113114923866867962219171477280841683130012570615168029386173827082857028390717573744991218329128816919054589999782439289743388888181953201560208991847944672922210224823614607822888390056413303162119436079372017771151145952027558594010107048046370965995368266573828111169004971455570885839669726532863592109828309034974341380437378517202499459235116538503868120289694475612558859075612003705657182924771102185774661283892116431364870858136123109047219157746221705279044126496354436568064348429400620910479945624371390855146546609373214292494185185873524884820524740119562363065683434054288400750684852053089637929470328308528369878418172954837645051154700304897832337444440243844112345623176579636942195911818614566547120616008428470532834899562461524415959645340844685337428032622042114317825564217861004116756811569593933670091136596203886213874888404372356569054081919574862266728906060074571263945728741987689864681762374459892022793924490058315834960723578077499491598328096178520576062140216455565400766151001231211607806622431221013395813818407284767035833353971768109487626259582157201331777997695850550887935667985993039963842820249688029865839203339524402348904975310326768378474827053711725550997068410200024674550566167953029265599054857440911458692956640038675786621228635497703943669372939903266153833515720426592571322235936734686815749355281541329339831463081719976231387254872326268311803577552125648138995973190912409600337497703765073998357512808763550701897287783769113033164960052903998849027346960143103351562321583667642919170794801545775244573063251269656555450388740060569871511699729929985738667188068221525769657787377599886801558901180730824695885159734425850636326983664201720651699906402983402802972722037069880166731173604097837978088978573938873057056110992026198170214817352474053064342533504132222084754953114030571579760255503296488777408158826392330371768108645557103350319691012018772872655889474522429642290418357569236614004115019975739878469349674827451258365002233686383168637636017235769567893174464587836056109233234432441263280232803857326726335836227451274764505695254399651139637266120141193984672847442359059201436351539761584677770740100497758535390003876733825648497490452007468871683543389260004467249243228040138961562761312343276513174415274890573801106619369724819193551942345957770501075858117649547422999873851288615230894211872869544997460942931895573890921412171781596129311501202814382201193068025308509345167219859132362473216316535117090828597197910482193475770293291463015842205293278643898631197134892143591222797673837481079448651245742052598610976285226272294965347436062096299396905759750946939188952832218163774176979249243839194424547154304144921339222556698278946826781003338032292197192918128488403428458413087178743965498175036933385392556679900515853166716227484917741150759482523086579997402778218365284581254711708228272624253657048594604551414581601317546004805626207936273337790093852384985252574262706839914375675893724728956031943070351606545446892950634672641219838094201306287009135849816893020756812175933996532291499861718585239006203084302882866649121481048713605314572703629250142120329031746360702704910911713956274236091388256626657876533628041946526497203478842061573215334215615825396333492898780608219632107786486477502981817126462346922878781026490660371560465666929968299248464803138835959349015409195088360449062289097929915010880812810645847747831692306607006873226396008087637595679958187843371806425211634831899806939084830404712508327512571850463203364451585648051762093414929688834865024199058318437716545662503178332856055932945830117123943024525186277653522328701995019778241053679588144787278282924749975662856467168252293672137281952556532195916582911593990822627781873876248763251178200522295826515412813159714352048361902745044300247219313928537728987076845550331126225146763229744007763714305287692220355770153235671151293874188751263657849832551857809208076317416285424146941762010538025374467394073498429422731582475441012395091297119663195277634650932469770036213256560397658399035402749771770438709133158214517124973064294837420468009126034439002519948564168298915045944193008761816562463336909964845695078239112404040183439875029858628919249619287186510597227933470463371456697397384521256297381634095305365139936621776262841644238723503631703879671429212262533907450287315553189369851328370233444863567223809497793164485096148230409125314112622044162309174734689593783243957729208251640542716861433876566625213074233615555600886622567052573887369365989264375515445526750329563955036968023071424037832262961759088450367054040388123579178752848288252831255966505783263489780357970050790914396769884433357445553048041851521058822603224875939781344056457407518427900176416448716328697542816434690328468177484453841002964082491191500424131349889603279841543646761797941785550950496430760684121313933820970382419517176815705860933222025070549116598541540666531143376316518192137207076811425067501922506830420042319833709937482720929574192628315570047614083425726150836084763334944546825457029188807383836432860308512409198470531066116733523774876020829833662364755107838747736398707987589084301224786203844715038995969127620901154354523225710862027771449537645688874498835566510962864912389526658863056467076821103809335422045443486049512327985116161983450557464327851321896362623842667737137020538111424040825548522043351619060629364180539683748490657572378194270338538118169351289486727688789469427548610115712881808477134917462863506928869389836132243872398573948149760285546821827842965795119359875050418497183982881058199005914557002668721894919270361396147919083053733820791714732657577025373055141090107245551471575576599999064288238528112509017798812469128759253663931688815551620988592357998009304793929325783704001526752144082775483799764651971368688947472767369076477945904753890092611902123826091464680626287243873640939463817081422254093305971923621000852198072868621656943288101161078266897738575659335353442170734515444647379767026198986652748125491118947871508001021961863944881221918245193427857231988880966847533858958686185788081534439710047930245762465700630510340682547516170965404851228907677316474424893403089853906850409752229413781332536424420912881258710273664643293742753902115307440014325287214715340055909536889291919626676898635534329245472433977412107194789064696780671436465530494032826443600238475839846221575503329246222549767715674712164130861683027953138782215220557258783200636534934094529409778820714473874480508503800681141831643020812222061027650859525514889183303250224437177576283932546634525073741329391649113870225432984323970241740103916839248762657688719019373091450286403288843694337285696600323642735686779412709700018242789757374585173981801003608862843081169801446755483078556558616856945308352335288432066100822989566510016581885270186942588155616604096850652436581919126611309530164354767607266811091972262887332196714114960285274287575217912331918844024720141814420928830685149388749055730657090720526095616208940335678903883465234077539980660741014714258864460474464292378766125790407978469254008307482835947756095998545450975130142869351685408172795362530772103373383795678332484526618028425206543668262154231302741712651220902264388208863436549208083545956186994294471484415676929181076662199915944004832328172158294134021685887556932068205828168771230140863243441043418957752540098171420460371319963914625163687286085097889445554114591816041790455373426075857829583520241489610046557928814635005911035441004032905891547393249705760778379754304435663894486809703126505397035972557752961887160248270203140856030385129344232059819502749389919011879630953553515155731714246935054457783268306516519976462072682797048671113831372098089370676045982537813923650138063378642953299408385550497315167223507399458636132996419427582424087124493984117134794854430380202361610097213939460900419434818196088217962724736297210322609708100537247912751217480188451918067934089728551190950615594673174846536336327555641619585638507063449748717354725311377750253228022743228474264741077681888834016609485245240573356212423134527025989452187017617275015084484778330754416337938419718390929427292952895848270281513485820554261790212382012739635860938773921379689915279900472243090399873832686456870160798293985382135220560591838309228118378392807750530051958468291368984711422735865806506493446364308835257809457765142560741371906618558592490947100599956301171846525113793684940072638954234837455724122274511611734144362626824014105697548854792661347693378223234027024277807361170173120106185395338869596812082265428037079781290440091587631943326156570888081149383059918461811280448575238322037432837844136718138612135390009439932275817452890693924455731888955259094953155502337929799718699881673962544381827975400252267516184583927458724284076268367663696413113569939073880216242940574315209522737912553643875928747630220905824733692195819914176099576329228207197530161714841776209812234972297043297241280353811524578764543207639858412422245331837060764588887304328386998853895559647769865042132188732222910052545215887155415108645806557021479140528304732843514571011432821537247968688765222837293403971229807188762077361234306043475069884244578081580218866916706726511835884945003694272166714126937694399120805097361733950740637203593615124117849423882357853452787029364077374449629306885303520776371115345056654087808895968376214619869225545694746448404621167937948891972347661412049104453010749098503965960921761374161345833930712104106382389791683955727332664518624555738075400470327264066938218038314349794621997877333244110573927854298903279525624839685431480218222193712902847693369158961780418033067495952863364851555339853469914286126651909794077963799251654904338321117340641025779804160412018517877632986746013431743385898879247849509466246740582230159876502984331605224546023813083180404910480912749582022333039047874746285078375524121556935153586825518487467787677541426569627721666702858449462025876796879580432731526924479754652965941752357538462382249525061146705429838195449469451562165904707749949199577559936236776976482793978740108618662047278861533276432397522584447164044065290600800969113256963475782005990486437994018316646732884801785777685431378256279201261179141713861649641648547777330748252009226823100630170558417995711445986273188557209266275596732407011161596152053279533968296954373303965057856235507585988216830031990675404750024004104951975460880865459505189775411216418874604821699156588028132679360888591208538342904392159088998815605806183899678833667853912041709323432019841652477016345270848251480012345409291530915283759818955801526106095140402689960194098755120215705196481903941687752484034573986401707062804622848418109896646792468288096958960051465514394869195934657110434172857681460261894768341807060751639258429382000184150881016156287560842830360121260838208488160196282760931822147842653248431720140678088412366695989104511619707132824954177416760629550447511290260896439662116497007537641199432080537381466845155320682302602052038525676286798976600586815000141666904816295400012988304555533138840701891543241027406740246175884628406253383700640992223728947799457195248950643021880895532718275948060869452726888360187247748967918216375435668513024156638136133575497032982859591635323269007974393713147399356272372344876719946367065829669446054930110678843605601918089868940197190697412323725467741875830347942635416213891972803546893065097249499983301053194088769769520182075143883497501050795655926120813926285316296148977681474001558282457919799951815931193210985218710521948027604609904222926638439148988837932469374521926091670591999680275698312855696305063834135794563096508136401490336057144460111064386498794928347448923792518157479275265075188881822511890150886828736426301113819596382500697113840381601674801002099214639235877548923326922435393467601270080047498855837133519836752000310697077267663400145456956207754224653735361657176697241371862926710484143586335218703955587009704046652000187486575799223913959026182313872973882907482789411120191269757321177767533348942796094739692337444441238315461191437277687929071243938681173365444051908993998049247239202798249132195327277549423825944018909063378244487478441080329615349783995659565998986270264264037023940871510368379538623268595041583170319384876724106526270130207771926716245495018609138419354516442188816038127559967633384603864464192109009630956491659633104130247936942849067126896518357664649791802264536427422119643106913324907540512860365451575201131865842781930875182312820390651387328813751696513022010809865005281414775356854489487873576481680014478190397606729287490159834838381991598922075998080192975532242234584566413468998379250579536522128180170148728277832011422071054497255713594131771093922619183727576089892318781028199601545014232209697750361536281884918947068566796949418340234448495688664347944613408073768143729726283050366170714545810968856771249895094930084216882406172197516387049761680211545431926357650969654893791535925128773481952930875784129123941763662350111237231611881843993565436718199565124867264965668758676552362431318695547419324974976666316214351245874810270610972821472700055515670928298582207002327543016016427357548118535998465039146422139845889833869062555914460050400560531670232343378565495314270776985986713834503371295206005200982589164669988126939439133086708937154095121033187053972492844165195438305921069545129101174671282181227010287387799261414312409174445717595996247805960144057945426464644229238995350738483387783600684020416374054434063597587453761312474475090965905389670675338399826425929281136108060470203808664347630193531275223164093751461192121635527063165561560915164942698463826255179673610423005352462512193853287623899517858674359142512189294313068033635709526461162086592798877131780190880593291740121107734887580920330865979655628434138791566444887412910180267824797757331481955185809853568531796441590018459396143375354129741570583316478878869635658501605969063061355180077679969710879392816557695618921858187041758985924904146144569889665702398165994846196150983863651117651387138772148908141045607324042798424538129377267721875459018746585920997629686087377287899734752529973838200971552430763467524346136389846149627291877605980171088673734581706180619439601666087869408083309509214677356305441602551114871308268013108925586608682311734234497494002371150703362610658657953057870372348872730940603682018007846418776029561581983958013984525576879275029432934851300505383169642605466881504739713993603458005152877788137648403449632939835985811399010999312381765986201935805880722654612073196576307077899291642287162792652650154618119326381315725638641883078549261524991494521798171938148579108577305455010645625454346067125513866557093752194177280564971938223355679383628555290709708284749188676142525018200560448744163224397323906998932293643396048255957551970162186912454164512591574389605246497942481000744008115464653838218526736241753233111566361963262083532147314196574040017836884698623204704337053380120468281282559745222953337918193584919417208691878595974265724720261463726002253443833311184859260416327185639762581968411023896637879612639284754113914977279137973707656172073167568181212759060472425955012424778274040014079441682747035858086214610990046246395414155876314640926626539640763656346266191406805801210948842549963842945494688597692092258927815777700528184582185731129092945859330587131476738123396656136559878301879784817360559344603842302530639983990453960604067449686320929246270981878602466298613801978080796053477457160414223894555423415947162823595709379229501972712165758889690368606255164872856806609206155151591861331892539580850933547442950898597190883208397944314807065683711595393359947521991914609390694057199836481992198996006774023499269426879286295133930341041098292229936705899442320293683164932848327770242094750109062105575204114237243436937229871984931284941159895678230762462585732457853894151659434820424264132479296147091570138184683873725680976955626844541803015119684372959895886533898436100385110989379750726998554304379391248372412905467723667919702228951895647485737554242344487020544876461177461740550075798495865291650490935732001897191950033745489176663092381071275072199890999829971432265025574175145970389044678487521305770258568641666172627899208676002526863448287021378209240624293083541880545601277705308148085647234159814365984089876045874684613913333624972708455468318191415632479505743336657198533622091146401714242750607423150921670314566572911233274540203843544368395666466643451815577981628655415118488939033017157297991257341024187772343294316473931489511121470259944747554314046695986857347070235986602483979168820688575719293153546329680010743067243536166652932699076776279277562477079141961518581810123209695487089168831171469772681929383950997075556653740192263413609343780877891204501105264845605692142634787461397156667612263638501213485696138780569507199461253219200555957377139423637417188910251903482161702638668263762137864586852351107254392227841150162695220993902476377862427812663180341646071001204300209851143433246620084505661993763821685611986752834379443894367218103859513586154359979180568714402484383709337372009115632579292503958846780388942823541759070006769810921730308694941225318178302783058298774352916748343270655667547823280962206073810971742684060609513042863936271236339546752174027860641114241242041085425928731359377664291038671536561596457829741115172798531911164646718281107564888921804018754709730385108455727534563481092484670670490104252824474420012373652046251632195405409325001349263467835949727360323476604001406666626096133120384477547781432658671475507656663089980989631052283214306265583003587778872636826259270490912007704280564673500391242421046347484831910594804188412170212370385526109327023204527100782728812796638868991327097733350450705451575522403014406276258257224669848082407024730297832562264715789944908585565257346124598858731015502338634263378845626364600172579684950603433868654122767496473438161162980008123799826951778344551311655333971281937868691730220710850702320212914819089462050986409356589491054749185047502415358237023770148023977532462548135738287490547025933287835295868653789434371407522375373580627811241998302396691104032185210345790931787886097099349964993059343714902465949894236452800354115970105641007415899228586911855524964289871345584355289596565846272730836741938395014917630811327361405752327308441482689595138042529311229081376006068689890809132953358486528265434206289701788690253165389773894831416739633472253781870570054306381371861337679172403690134618708435904189965130260830282306324418313011360869184638577966429974992727941461234965330780329502373122855637156482708560137275867716238086347273098421717176954210433267213984004201025120594459393526718328202490426441462442073134042383554063756482135233392164822547248558745241632840214112690808919486421268286704335362035833541428901729151975895585613727696672203312899087238977730477368409775922911054932658451728250434186167248302969969092768801148660261693326001424878357722509993322443196582143966010988529250972427414031393331871859547946367334687789312929597370713515565814549521039711138183404526660570211358342331165443907703080161212980194435149229775846285602400086276004588926067794137045224613718505069491353378939116478832784826179044690021997791140485721813464578459678499691824898430577636118126989968635526674113918646067588035257931798841530276280595619670800512717957736072120543247461772450282508587027177059688971332568786212671833076036400228832492482660069913458507065961318383780199882048278588255424615849953881659048994883675957115019494451972252916475776535830107131753236379829395144779495224111382154829809232704939821007057481118685835092410901045490435408679046096194851468481841387676891292940688652209671959744551876283625889901261049194279668480771155047397089858204516869515688929068108086681573360327399819844416913885319979674238204142688698020818360110558181527000761686516096538600444291023965341356695220732812626878343567622626624516777544116105874486957419623024684422549720894239902152256072421042373578238554796130850822350192139353815491757144963607165430475149155226918350863759929706502325653118744171960294139187051213057443079141560805270253454036783363853025129986728507485065750536894667340116488623375398687224816108548495601942101107490389596493457649786056479594123815025593867471317625808896399357075063379009433241072335216964798694949641878414904662935242820646897467795482710174577425504589020874660957371771698721821097261034254837305908369949761860960443848968941176777673792466031880939969757707538887916662726818964099270763847115595315663691443041665183619696744733553663543084478743734569307363102575432070342426929997343985079512839740166102528671328283606222903798174393970678692071330516943836992927132905520739128915664107108183631735968048911604106837681523799544611416305477503297400812738135755275893488309177492044725416327102061248701820953548694941088818283183283645105705303121260639138978556665947284634001300160508232921075601437959955415584520001448986779406449891738299864618147937540131176133007168591579026280192990167626708702760463626634871908124730888364805689204033820545608489098336874286896522253014437440038972561879729391104836282897534390886389632712160972846370793882866605731858307243488398916191038889465299268081315912524518344617390664543870547369697988706591095383607814962550969665162537373279031699523904681618298982607772755168357986848694352476548842719241565380593090239293879309538950991511257816277824976771074189159488407724988702068963725974253487570691889216975060639827060368750180347000409690722234794304284201449545222334487821203843409999432306836747810178088482753848929234768245671919663686510206746244536170106603550352489731017122136213563249124560521228915410196596827090824428612866415744800177956647726161592448844302430950713415506783420404382971689365606803901238295461494641640973671432894232009290057007434319098319602653114984548804497934797021099182704137300615151050141554185187056479010349124713938687046716661889011738145243766652341631474271766971356626762183926644838516454776903841391484962311829421809204768247127240352937516370126868053164108545081023662287678770373171021791633020658911605987020649460147107485900160820856377884793457623498100938710330045693469293147106994681818867140246519449913284373033436502642004249567725534360900087988585026536053571281519127535206828267192901266823207281678093517336091712580160115293493934238036437236908013362996100146757827189134561117923617326017748648996500739336413549056175393112103847948103557806572481220655533806741122487694740164101770105151785273125502825552601332200301481368649165636248758118690626267451802862318574219601226559684738043378084773600075820024840741801835219822598532567912880635809872607431550981686884400694663880523070623077995745523883583889180656838048576160255834508430013924486846248492619816411798099705700925273851732689149168165642849217096391548194576477516521986011113277912370002325758837824016194882389986954430796659915430650906143603343876828365303196878615282288431773196384037180893876503254379080486028662242451525017388280153357403168070700737199862971979426177612243843827023875206673045860794526037183426999767488750578846193899463879010538694511674009411011300445454609309766218558370496399339283543962402007392364965400199609948273239008854723854032537840146729159606364537479610140035330671781278267953380555805223267432542538504872693569230532285401178858936991941651819566360636192972451056408844518279404410243119090564418800942147997222837604092626004519404057473999336061263724361809012232525405963497273705924423665260378376715612922499706683816459165683348299699567161254028991835313604818982454714503487347445832852751195395348059010485393794957782043801306713640250993631138616842517016000756570015724877348407675851306935724863939859767892368863507215467385697981240116633886365798204559558253812682797826704046553582173585973676220494050532902293923965490735160745864751162578180091076347492606305697632443473044879433488099886361837661292623640599911289070721956450641814617600980086553031558254267772461071205198516485581136561805876995256187884012114619772122709806317882559475645481691848661820508160804317620504724963354675110255776107024455782861635521276784281102850224983400503732548341466436108728063107413622976092729531574797639455265807897287782120305491553573185288086299726212070697191312388977905673182280968515988287225628564740922279264517076172624969994055706875306978254803584121648981863370906808058202238144408464275659571364566293739276661732981612110062329123389345813792644628464106736114902956574808920639522544009604809398126074164237304752245080607149590997768694774702866571578992458003083622412864365338672455711359647605589870819283422788561125690918534078976671101669446937711574500662198289864178193737147302991992763311841215934476270416793419041710405340998595212194290819898414520918402993657240495463452701767860217495078452008252105381048026647453951154389340962173992503181326717971990882207582815457530823724527949723733250700537852767816290405845962743387692194556926644153279398302353151056722613039343059437410981324031741414483501704009130746193472343454141272677219483741562977839767371728476228643268220540338885591295843713337672344968875146523050677996256997283895789382248318401000782465040089472362120066005340253362062617538406525517600988935193564354484573963099777855122970251083794041113516008094316281199855259996295909712484511075026444975943383362362926869734555440791986005401421763228776799790133239969039804562435226625286905609206651867333213285454543884057026760413848898241163603977728849585258695960769523893153217126952810724422037189194255438923483395713248021369785727068565812450427189053505817844717752106856752276988992081702507567736957151550444573701864670254874806497892935797464697764322240042424255349965275548169687074126733210828926117334106801100146754056882723937442030843504339835435572946772881971550560969134969460101362263764487164276048139269751971916443799010662115738521246051805437140761785379471943707990804301090509902064138421501979334658039286117316633389760809369528655889586149873244849899348004020224078827893886093604968831088150134105333515887591254874911352587430712942795336583252299037602077724312751899357540456500647705281830007123622480648283394210448101067986239918266197216270954545747213505957065470767470872434873271765617783962423359587503519098463821828786759712070559688067286677676995651321913598571752314699755936300216300189631944005218699835683112021855692174856349231378125319248915146552083230325259331822995285913541026382566928543404852032308206407494858215503998976599735167072911679637843408038853245056085838011996003923381355750284943925589142819383001502278848405375780139876885244217279144151609292297762547981672737692360761913541300516607653910088277126152008933732186649703699091047558636302607278451169100692355443705667111667246736779878740456594101758547805977175037946920262900595732333195906783875775277717368625839947678374008249828273657187428406486501064166876852234067587527504019051660551734423730729737508097113003830545141429984297499493495928541044624434752934145247365425771389318307751555223283717077553190668727596514894921952138303251277111893684071525680829082695151171163175831125800382844375902473404417374598919196726407959083388404970944679142430999333887139937606998316830745810251884010622164897063714645860110835871684115086791599580863738266587911430087652694403089320517324435456375409811906314473982187424500103162292365723139482494278993082247392546724189597009370676965820551691775124442166564897788604977515926164896539211242342876800492334958901831956561692192999302659520171499056190255845263125182898844011154767015618371619444024631666375903416835958194620827511500733263461233051894911183585323981300917632098086244126176689673331368941891932880410063472822604565685442273236553096380849297653055690826415664769545617550234963323369495920456890793408899061139126328943665351925067620097347837847130714168469993788526077527659044630292534243979835940988316901439299528956721003245197990267491673793320290603455645456044997966506778710290512554369689735753993159876319422107629306263027385708312436405065972386759373301521546025032154041999855820818816296095893373719622157059249394270720059201843606716334185102306337696196220788040598256707168390886373778038491966928297352107494725670948538606144775174593556299051383652466257555623009277876864345472539402815625579740379432859867172413348489313501322502860661515175026245423262081577825569970566550805163022053113824876465460856247820041528596774500365086600953519035730419827148054467425776856994382259176339559920966698246107413728318952959846984614308120108925161633183110697307438221264649904833694911762110342652766530832178550094389102466808789577977218309364296433042508649283109545678599611562401828041028639042121166830298649433462066143289992229117822735040855511180059902209645427929547136586011215128282631490758263299375138096720027678186682869962440639707409083660608197591790070907184882962187185497059110133686821632581368300293175064386342012876919381410061620378086998451315192034119388198743225197996600232263598437198137313546018200071110356609866835164816659236439589624333975913104947083989104536525637403682851312935174257582057012742141344564563787859435353316958977616829638254800252414232554616308284069140096567567345096121700159191408146289903512427852996963022850173482149152545448539012410602968544166832190115508887870947435597313965642790468469265444221645408460831801375687347814743948002011522510913885100030555604040389834250365027334413224940338421044769043889107443973778608322116107086109948246977297356186888662561474486473304411762421624748127988001170609118172370484949535936182528720345937224817522737482571448463402480701423753420588947048956082343489919531827543463792586090014140059778305400301947215532785171194482446804431887487837214789319489046783345358261206792319715234872594097422201666029783359561108750328960757679886278365646746429458269475841394524762062130553880355322795514364572558833878720934834072173251058014826989071913992947646398429984115094632207583525107581063461556609789214709910612218455825371542333010595757885107019550579990899089857355530133975816485863784331989038438283922704540034770573354897932750700713157536345580593219015497825454632844190453479174196914224742412150629246519531639683417974261789978833493895622431827770070264021359358378583615411732610098473906342036847942774246751275053874493967657239588082392953885473978267475570061501046575025028761851854327160838275943895973135077320725541104107746669958467533650829519139617520098471772490028808575709698779794523720138701473157266790970742009548989990634439179658617429024698135357476709259040244072267686639058581950506537527269341353852676827988317356053267484763110455944735501386771654262357709285233125685737530705959295120245436435986976273604597901335018004333615300007191398392602907807188463189920510620518379076801203956570808537366264584282107462181159231250013449381895130310234079415942896532924381243607150419181678798333915158045968727066169552841846609519165386840912284497899973974455395352828249601525866593997002409283939537923775962751680530728306187416950945617406621424327645856608425114015077686449593398046799465271624113423931289036068891315963998075331269011958607761175224272643058673665553491405791574366989649365665200922305922124056723933664500800272322711403948029773249458661774963564118757381014293327056106629156086168952878968675412140127914477789757857394130350148417920939927075385031412424412717267704236105986120919264039795539137438469699667025943681706201181846264570866487618869252884905000727954825372154834150335332844023558720049849219429312044126879597391671790821730200579658135421883888824991282410672513118903775741848391277654909553912458246367589671910386374086476883646751342638036644541040691459160705145689026555920901137151911746117730381336024782231644330719000280940161501808533645018902148557237858025320558026460228213975142331604041781810195227210120515915687329448863328036543390860300371998779507486907043086305970849325625633212159339657401299664378663844301884445943866166296929197207149800223883749009857999391502768066177948797672255880803931199252402635539819995239941118415561859426769677668575921931904243325238304462044433149848920954568178671578133394351274275547377456004490532297372217559035013915318745661896044520532957630113218841887902026473387345740323556449301940015948946126259226668045096134376787726944596604545938702378185649301876957537084202238631078440969382159421802870142079457482505990821977042705294172384790780752136863616294972751199542219459221463543931388164588237980156493494550346530620405959201544456764614609101381125883747655235830478696739216973796039129699982529428764333569011293899568225674020941478165237481528164288588232249351662874671981842204318369687427373460070606239110825604112828970123769443643304727341524913994741661323271783529826298681013543028210534373830327672167777938366116522053234472770787839083695970788055015222688576955135662204725826380727147547711480757715247703135158371910317481500985054829630340046771247800774383772440606946593969789940455615573879208900482362175135279245448478635567006894996213268123953918759426773026198523350550858256125251329738950180144699043296901761902794464339505702659788915846881276628349172758620557091369384896724610073937728952039190644630948992278125463808591508620832972793754282529323375128631625835430464624738598702518436425295289338184422298346473493503472332961411445360342744963743576249658050890779122433827681022662883975996410411241591720928633275921847196913714687661497259203361440578052181282959084267699855941892562063720125573510624988227265517289379802323789560845936790170387727572810334139746715912073986852106749137608356086490792371060266919130606347431960751173139172972111080019811729860272082566686144109000046785935508683405699465210770909278112466032459749056026465103836403510394053326107858842329945753958946120009062624540476760739060282757385432064818369025800936731117286682305723940397860377623472384638179255728313608146267165204045538385130999118677996438722916175433651880649193495053720367665893497135767167168183391429109797236868555104322334065222901807274530320754812545206390594032726758347788372542609384938395205922355090837571642819838643375733114917057557812004007892123738462196041524732739826872412335256163933871240584693199938960439579162787206136271339817319758589162949995838989089889876804383636505168929885630513232986750139551044443099794612119231014061229727975303183577535763230750151040984130895039650374065239011464830673805891087082831335505242712351351898839526708052794282315398272809639138095769740634188499151829297227021126651328391450714513553680894585982867798266607173857164442071832407041824823994619471350717112273888073414860198046794308965579162345298333817579560597690269463435386204954118970343363172343764343268246715809211637241027760689088263161289750583166657603658907708614624620354371898975614962198667196960584938477401064145281011383615109992305980102328325270301931750715614322461865173658076472849719608531242162206415135546973227705419446271134628674990768005524740356471313869723534195583657198395684784478873553034315234881521883341790865075052304810072690875796487922818236368374286490621921756295107944202210072630488546812876990728780737171952587468775616019278269087601770983870793348260025395059466183682199478139089003478740455744294888829094379246209267381708975598235629916000201169649754086308080269975439629582182234705322365591351018097339412905671810631682949759651618709001732999977915461328771955351395845508092364960306520514274599199040660182107545779529666523550027459850464162521712817001902947848212367845832093672804070144181365159234683915030311206833984288189520298605155760110728768731531295002666705790949425281306913116027236510408685303652440289369217987168939745311279644891475446846644959898256339025534567575688815852341851956859104150183785086395041152411360982076246417330274225397661704231544736483854010172592634145962570154225246210622321648327788713698579203622869839101090982738478241824416207789905143734244709866674553604179889897616997552821988974081262736364912674948732555387132611879014379766516497535831906139414236349832756384742951014510149817161843494627987474599087363442288052224134596137826976652647134845402722334971979453461763759377868647388748582409343509186517519461568456227547423290089513034304376818751750284112114915103444714609957690066522741148976614255361638225591834418340635650587232070136373667734256483788272025261995247353023424042776417288658973768688210466898658653099993795442488623285921693347837429198806307285028539469287129736630622033281352568684638871083787930616742601139743858298328279666091381794350984478268384762362821693416594027141950530834945273209539510442124859215670301881534691307856432873279481322973237485056471253650864689610387719996364520615997308754763785317144878639248848714298913286685554639778957170098772707554991548865636447066468218436385213990223488367692566148927750480073462848646197823810374724456180359097313444879706470004883941496784156234573799889436796457153524542112757884208856488012571869340223508436590468011428587560697271103452045660130326105084525024452082569649473614230042660607755310385424205469816699655660463358276132281961648749225854257117636161083000900550126438506838685852453387017823660151454255028899808443836764182336988674609573220774607955155675213320996274463973185367307163701696809106344479686638953353746140452543563642734051628675333951294470447351882894287114766386653167392232060779104321888929860203510336530879375598678126004290899879012822397224163841022009892936052777858875369973067080344964517055953843618094232325578973543911177304388879427664538471248597043729633471860651640953158486048130498368361431562465612361815178264494046456650049065908300929521368271573463490738636525378059117904648868255032215647352322602439304589448662332364053205406771336286720261043652968944145548246295664303147628823435119118588415939855067481218204513020682042778560542170946723556165107544598432390114495997760209943828390326273455392725487044772072669759668951156531923436281476113248675005878457180985200745158957494236163704339347430524528872616842989228811470951714646108402268358836001960325194381439428193049775001572167834676571080026889923067382785488694689021413965908731611353719423017496411910925940506522577901724771965579965247983396947361868936926518821471933605989087109224628820383076225994960966508761912031647220181370857174818389826403030130531154492793865104001689347073723734361732088522269890603219025990737635280573920681109668348684079155610749619015392654555144100121298629651391933077979950902152214209542489537288850084955093135585070267334203795936328722481087347933304265694323357515894621633712312835132785697383476253177896953877198152946990322578148097041234911666974224803092961450945367581752119691625029671394299294840801635285532422308770436505202789231501991621279464679356716855859409431147783129647582406436153910752735162965718572857978729926289908129468387028810851998546085681855491948089715246763073048485382116756112265420932221439247011269888119054111472523217614601281427223387970318234897687740485318367149438050097542024018586972993198391973352501720118996879932659528621523929417411578780751373674472479635292406056652423362122077456900015377953230041177328463359151300726295340014898273339044949349890753460116866236109562897524273873918961793670456769390342000056567952722719186290619447344956878154612953676264411589961852532244005301290237883998514240933228926644689499780144996041217174780391512933310263910978404727254814620081179914454447289567219064118258443537793724457140692953876700013564101376637007271297292558476159345231092318100490316877081822408085847873548156288879875376863331323235593153344923842689871645800842728608675140886842208145592970109223467485110709395137770037273354891870357599062008762789529662238309088981003413376670156136361179753217446602641845498838454652465222121563078300337313441168664807745443770030093574228601714376039555079740133279380637699040024255610584544750633234618053335385741075638334250729233595348332233820441318668313090331281123053156436115601660562817322420617452304010744601173292262885059176485015068376868230223908746349512691247791785372878905229607055300752027643087426239635332917839393619619404421766602616547603087089916599184573270130181502594434332764044088901144199128600179976036218074107163791098943792022868916653351647264483012036087437971727086169538762164541987143940490996261139280543224876249219761658555346456869581992757879793615801321942456478543594245292677788510553977471015337566569723337975830940766227871083963050878297000959167021395156922639385185899013957762884214081887587052591970832478690196785294015591290773326656251866479685186637731201560478314661717144866163447098295362108835755242425376398511682340727270355594064959769519059344672116363719756734874094036683922424080595600806151148023848200937530050828271314776939285696860913889234601304029973965588707994999623179056037541590144262225542346650521151782291813893298367501651657751715410468572910321323490274253091528510968128752576073149747209772774078484792178377611455400747993178013827896210604081508340062869276958698055208085909109104144036143571199135236898543597073449573896715317043975029611408303214242711932720646287012086812047257831513973542803393500265952137568271117756780048362080975404766948715480363500228251653366125400392714779216868575739187884245913940400048505433319511006438805103545221096059030498151135714633040490294544343718205696987787568872497789408799045791727162163241447328298502235614582937653578836048943027164193177608002274109089006370255363521694983856679683908212868490657935613897432014374627473132688077396040371366782231688007363917420252042708532504172853743272674269793681444614176475698477165000414808420642752349015054745911169165324319087619021041444552411294402217958174924060629921302467126047070087403722232024663239788929016667037568955878004605185613191915406646978159452608009507315577887068721415037579496361045364550237386050156907153701992258510027010946870532513859514461776714140216975737160477107511243607314879064365403888339908898386838735404932187052904500029289461492769268092630087874133515205974707081029319351679011272826367496132552862663723635364286078054995099951332375283735181096679519777975458231039260965864791154379481436659227716710713532667866257935009137244933271554689499566011160910403552557689211541082733476900494032985955449955032460396729831489731654214683878583790230049902829703146161080192840721089358611698434237525814527945694304111367611364278153975078854893493453321840872838410028553705355027826206547960165256494432291467910920211286121417273464354217508046156786491122826198038251680920924704189949850856453752638867616997174242489569184514617887716654371930119294254503874605531411159218529610351474408638520907828858722445634933203417210275001608902654382125362480378120136586340686639702047327885143340006772807323134334034835056179633930588374685177897070025132240089327882379899573600776195715571213033328171688263744044226929841297348601633611879081408938114146660698192914424648244451361084040445983539504458726907919208050601550137013893998295094770597513994948073290841197578681977349598098518816755318126832307177083160332587291479235700882461178561590244279199931598386900344919498586279171741215764852963299794688255317299919002775195341619901329253698609998449001834415006120674714789163388088502466915431306077894024270183549384222381648675553562290240934647453996664844831452919655065403185448126409427816370867329115104290934900799868901284402799372921773740211115770093070324007502478351404103702305746356884949168730761467073433722734660363875643445138576498011894217952634241054884379408035117114605028646145829268077924798144125222823210404143237563146152738819450423805736771760249650310147506495714145869951555694009138408189418842464479289942163066171783171469454543238580522986230753910608464971654854031567260295856052926774100149204071425475555084303313471368006795763094584506009230579706159557458254137102835249318194132526488607668272638713909663235695459706121801330478030542183045512488542691933551836868088841242314116862416278462435361185170407654097691973879992669474161592263797509589424583039636924360071445129481980850475483516107217330186420966767274749388413662283399493120108763643718040559107199050977295691100511889030902590740027367680424616137149960946791250034847001306534898022538910894725379466126967147468154246916265743885649603287511221040485379137089674102102928296693351938581637956864452583742758724409047254673491740101745508424490402335821207246708518448071075028787568289230422175718713067232351999371079125062026944504440336466055333787889858267227530315771057435230806402716038702505982191352623574632311884205050036754010488618697040252593104588114375752851608332795948398137388556975879460217169008200840899949424322710671033424054346419506887812540733324517725942718367904480857319127751177913349505193153108074703763255123051893399753086164486319064946835478661837498555716909681184260729480137759017001042931128362538615303979476581690616421558515479275304857255247722529106225415318400868856471874691929716563690936229598801426295264780452267672831298465615867008298571040272915150518165766613541219596245780481942262252315180977370402615534924706268341324406806179047948341611283945544786485315660219868556889436686433191292419631412327960246325865572660571284989837664446806621620983932660469792871070204890781087317797452187123344035838722408540494355954785847024015175560247014561318555541547965164472537112411970510961782803197113825133530806388580871444577266410631017909997120019132445058370829237408413140819992948255769196658899703195926273586308217375437297010143217193876941639174684524650126128621657639905468417140548082997300782581085224382009097867843642124015576105093227965487758903423015372282369025392753812736511780839492485986435442092149063576516663420459349045210658616591608697481317240304308851972440508769357794781262534211653327911492080256637998141338254564100466519002159059420482706332089245019065289532198307451357295255186069114051081154890325004512988582590848682196590865551566877460872015971440517095851106885403840711601776905825904909301822552986783551043093368564814193305693159694246349779044494512517961621634475652530178794739052084324283894672235692492188848632006226742719589414849241848824332351864596526741983251067341580377624328680614828383621079840158882514797265839175736559595014522610583724704969443587973111949789396524537098275478853574189788027046337921557624905319248280844464811590755848197928898282296747561637696855143311174377904981344403810392013942392990815883005250597296653666302399274514199764837453723232143549341280405090736518417938607239762318584136768821305260299588658081293867202903406115842287429931433857914570617770831578842956633018273917315687724849714286003366850549513860323258600669763153103612025635105154740911808029560368344823677174244107352948825848877796630367430660197667120703276049903690897506310456356853017639661472400676738763841422751164213469571676523146791632520531393674994081723907190812448311283257369725448503071719111907844649302823108130613794919513155970683638669116219504832447777052776697347484119254084302285371409846928975103349171982303114499325640971501354312464274906498843844803072858435314172209151436458751844517174587539198418269837469671279683704055908831144759248711594451066917988975997643266303682306024340138803446376684392170189182344065740993655528630060672700395755717084469753004402320339172497524143858104735151273111321485479973749199278694715109097594157796836646204676657851687474555835508451664402855660927049929099247099948886891671161364003829931731729688291773482541565892012141762708678167561563867010169757681092391311772581298137347760542032260288608892973049363654749593785215423743337070544398944777910497102282069875784769549980536180623072624637259789006592625598789849381689609769887666039746656215007285408685923015215245786399008390867388846310397260712124962101436492648265618002882177758449903809593546725321603002848654574065183140640937014552626330861267300699838161876218139776874573005141352418715719564646693755724686263889855048491142919177134070199573595380773863538439410633889914294150514344076578338636705100727910459714657424289579206102593615129023858439871878398116065341221142476801811517522124634780470472699729117848880420665893907478070300720939864969053610730105920091651926183862131536269664980848343031658028259564607800387089646217535756698326707524198602542269132558773392299775627309872201098887404736151399511228078636715076003462120803159276673871401576473928081266778085399633783625959047657075529033240551587844764972895243883288030943666613829252136746687283028347019720440809222913795637794494369589760839142776897765413540623278179192932207829617785256424090348538374157280117980412252942445038155220913216799408969776881155695957609041636954328322063089639452839980001389297729687944908580279815350342102617571126178602781734488577519274572187829840448941431286605701635611327380279131449072600573661742661392999381360558133202791686790248375650898436797393780091696660746817057578459776768190444925283191493748326391439937644696886895514931541625989336259718016951925463930817259903463385096860671999420931011094950277575496794843483962064121848993863464611887742979360718139205946659861775584840108994931262704434544160385924237583993702140908665812512349663353052599069784828152627394711956672232926447499250548484725330658617614480256526439205026956567070337040788893380408351205938456844083398582106876774651519466651792391472682929471557422452980108357527526165903330452752833615247735280469583956204188201286253321568984575407951194014577748757434901445315524163455277615598341676783909714777130495377617241505355141505658084011227267249831695242412744890360290590764772762405223998213494559837413525778091429463027438452262264042754580402797983193406755922989729352054256031851349136114584097609628905414886312666101322994968070800952565028269737266150334470542757491947073831699942074578015582533294065080179484513307886063032458775203286446130673684303350369582385556980566715026627241614975488831376204228916951523052974563650771560109656171568205361500730019345510168629490024659686625795414360650906469967140971157640389534711074829243391184380325012651442151826241739824230542718288399595661724484386671344756872247288571361969389398057722393181493150965163033219132593453871674835400522462290709997625073153029208116764412214210693625013321298900209067222513753435545947076618611472200169468688911720876987075213001723155842797461136492697543394680112570985707090567712319653472769867665686545324253183854008989256849657051217100029675468481167908876781203356331451557121677197410621315533503029146810753684417179049778925956644389980150620327853197075304982997475605842720545287207291936482216464223187363517009212275053817127461767684156426080050207816339169570792398923493483193979391668792015904711702884839888508687485906625545026269729161111069622496630319425092523951356657422240027371062882570897013758381246141147549827501355688449475463241402893097911281092317233445267268344745683948646296163938773295523660599588578522148836089617022360808667732470629625324256324518480852020855138011720567071844732776240227241684922548741210467464429173155041562654093344013433781611151798962374092685685633531177655145463596848028995658741026377663407066797688355455426243020221834493226718199382697186482692235489108807578274184632513071283676311812980675737560554695946184116543334290031649435126508869684891463112832513886460482626793495726028004237717493027928921913259366647948302118015739095581796276007066295656483614791143487596450903014398806302830558812825805063681492442149572286539211628212857273720374420829013680096678617929050645900125377808676909351924691464283911273174431828943661509239957065983781685112313444388354095318693491451189484630474130648488654135086780175014500004731845484224507547924370306724176655571151348916681178709877634481921072655022917013469641838309235814530387253790406508079187513991834429353591590892111969986133289080406752399268785807560787739831712155419338371142484023084473416932018644427095747284881997558629960881090409167802526901365764994129188747491862693440516442999291218022000306782215559274795539713164746127203659556380416473220005408650834281500653964225861411892524724397677582737893624989222400118278540656637189279786936817125051325860796036525683396653043646270662277733977182912249734077173262341604230305178388858134664969893292855410604612666417047384879794028685491152631128215644007007226117598286916011032633801024960067446964162440982496704190411172957612977693055361721886784561698818700103740046886901731586981096974174641177170863967962069742470603627995865326820614721512471146535655607231951980626331683449235586828370412997250218209305000250191659981313007263555481700035661192567701627952388155718661407090120826828886605730449889861140787634973022886615082401617282335921073606600831510393479020735571337366599475281302464814673670016126968671271743480523165654001761910086761428643778345398748827101057752941236295498036746334226442147536388596334880579688915795085864147992314185003539690341092155697657647165656953039803854325939063356335759877377625555841098657771775368200695067534429863433657036104864998842238066432956474307219003094577581118052927521801386775721940434740875801560511094608126140111514734372513211200153496002912290654222377092840248959650822078866628279442033218641161034296950892854438957112059671403187266699746639640818097442541683159959780736625708680531406780221842398906242043115040787532936319970329876090687178383671234909922430099630764526872870967352141612152808011362042272727957821434021330964342306782224009910329707633449784888270600691825126738189342633670593141672646333661467742555863791974939134415662548181413295760954322321413059369667010911480779068148170016147396672670568341581058014333656065127980109370872149044324992870830598349391558979985917434586496586602664219659106405554740099768120318957883247240417531145616773556891153806926573665639402309680149491724452744098917628759172512477651497413390063394352967463531535798238782665595579714163446362314239034265500084659635830525567652033004557080253410767471746757196013101961212322633056268068985614205331304360884286703883601511013609314207333676675198590488748287406516966399932464962506081527183188381234443729782713316665435161791078519964840847458669967608053976434276002826903357346045326859140431626490899283399995013138057292200777348130550786170055263623362008400353605664421416312877287520770760721473299387587213261906643410135768495294102062483814459766809707117186878288829157534618698170627496822057903762065829547096558367398563523176354640157453044818784988515077889140843437292301218305337946731732777377047439995857053704066392040445065734389230349105558550632666934941187072979270890886727500970205583844072595167781373642130208253231180681979663098285228265220404545242468563805253025778337225221996459069423779599723113589648684779305500834038226686582121844423267036207176974219719771896712278102900270570692469270506821669822883458294363760060163475760422699354450315906807693515939236841181679454277765209502831345193061109004880771292774408187321008012904919423921227738848427551430510912325590044403507792156942616178042810313887312508258056097951131043534138979131871858290424183226305432986134548706163866598155075097446128479373550139002446136142416601636949164303455450845588333928275714634978314788467878754829557091243942345768818651222254514199645159976935110149749589074404152085312855053609819719831536863422908874204869123807405657896336892170147747947520565947086116502821848737419988234515170708298626699644049637043479085796248183482957529014473788687994517568167313330055854672933786497187094406263632164388451903125899680814062648819690995722081944035732606403346662517155934399421503127603424244427271388774942991903051922172809159844806831625662497204609681519657310043082417458900824426120075861551185987031485569037797044415329393642414663128572849736658501995781951652996400142943966763386747313947058586718693905026419374534725043505210303775327298178403606974534913228520603268735171415784314120644128534298258195019744614122140996563101624827983383021033536701162319748130165915836578810948423626373515558504312118062936506644426737994717506263526343813560826037217921406596921268770755209186285498256828352783794847368899397484084171401313554788311776447897108718828226973464789174981712741693943243517594173119971742798123092826927009601983163631987677910067075718650935370617077035357625511201646358354580018129878741309982617728320356459869750851057876773442137002457055472601645645224975546588464820700196587608062151320153201873176842318695072241729957097700989253342919020915579807797143339161926245503433294616740987737651704346850681914688278708766271966180776509652489321708129728791021359070480192319663100898427244756494890328580202318844064977774762907733492338866465381913599080478157470299964319884176613449754271287445735474975031127152303371049334809211036214594519139215772846756716738207077987195580973802908464421322124888093865950227116766135159684937727148333959505501454823515789321069521380722423429906886466906949717208640407011841686464701539788969017008554822161949160553746181349860378104600676808613135530189529319416598713185308446724312449389054469581898875045131821454354623561167672815500644202733513301970737091626014549363490412506949458583154912430219220597153609461350096952492501588680483105502736635765289442329150195751244697127116168473158241680832331909897135265602805683416588331098782104640595951034421030623706632917918420886644203616616544891542034123681872553412053347091566095975416862203451352817828626271623977366655476833386740741973102238770642873673587650491211073095191272146919569344097991309707610598042953893574316309352358958256594181284748923689581793367556692292392071808049148016462614502565940399408415556796066246015093343784397601078932841490528428411737654502287354322581962187894938536131466554090556968311097317292800091462934787605802523945710187373719126967387763476520099396626308977490789572621662536427650565153934134478152093404173875684375276692118680435428861126749859039304763488241295390736822101212604111451057190292392655294859460571211805993239585794098514467733845668662207952824150383849592665811046444830479720882895587401686910149046244264761692112735418978865264223124336678477838758845959493781789560805601582726847309710514602734353467603263234585909964336920347273894664747515065232350103318065992184175905499764789393394083205817790668777147984913096623286006578018012174319685378936571689879181989141521857091060746063218996976343916688717578507923412707268757149603513560070465855107950061783919784372124983835308716478174593798342026978265705879130256348621050342144136310116850965042854705378411670304602347055489567200283706020793052837027292966747185478436752927087852190812335503422326079091037842399308890343240612103545207920446544693087581311944434664055466307424353207737639546345497458822196918931546921498972972836454302826830391104043228150517359558174703055460298529733215468352751934175864091370798643175464617636810890920699901059242231454803786677651797729422734080154836112513832518652156425187765337091980608572299502960219908739606252705887990517716577775047786773473698464702398072757726706824366418988167192848069603662470904692889980334278841721989835278819204998659609897549081299780208053671048795778851037469232411932875246548602769543125118902937943587692082795439464895868684796072239151750977345514569968049802058882184820658466821170494522498726388950747995722721073434748569342932140818471364215566135351604569980207630288230049362538147949251932493168038345571091644499884358068678621223129202506920309641612466655457285627599283126503526442647281081375315309294846221801659338031175971953608795083585683289964665581341156750828575253779052108138701493520696962428142272166896217619211955384635555699431711306581188824015602998424745240233288349194766995399283470514261322342856535587111059016343644671584183946627657425780034491096521943741540069932246710709985562632749298337599300564467324385040159646866361723707107423915405589234265417353207206843483910144268955585505494544769885607403071210121632870520670535437750100809587105069720087613882992372365090335042188347010328957763491080950374541722081167141190527103597062753047939528374692463753618425460284764484406628966250432634633008456355780600285804891946312178778675452398304250920265392425665915117674497855871886568516618535586180738094709164630082099957703915228484323566982871926450342261635873794866795595554986751561124731736437663985298761938524502060921546108446338692529847966511543727826165854992193027850435686645057618105062218146555913820684542569106777024533287563562083901805153101105327299557758741934627899395716793373964170644328994184099923160209936182765889552092459629082689067135891855458875652698534408686622608983708775401476958961426808929102822071908602266745145083926508804017301180383822745077733085590707064887453679740532443096263430016002781097335611443937113197452833603554541780903686399816323816828114152656219965287546144348428817040949694149852899122157639587630625957831437327450247998446860100623008755076334897355276856207708900207991139756103735332987846176394556522016968784656187835753463217349806836326829336792891833416880890094058714548761383446626872355590160778049135308966831781230550160464749961037917373849086746473769623637893898811060198977821216608118471685797905285857149023126083226746322679361897374038779225198293520187426907592365410972290955938825804119168478628074408155940061486349491510793597524651970102550280967171387639655107205968259057809796218393111707015277562981762919112814112578630618462740223331409071280912382265279912774236706038532411409814098052038716979580245031643302090150093719747731206446639231753173476732909559674969834757712111000281718724229937423719849286094758664645262082722336854824476797371878991720669934545170215670324899388447826002715357315912816613346329043135244603162589858244564758989381915661906595632676440914575074948431482155175184701555512258183321855095191067253932429228911834351284487643787248414070707785976463028967833030878354807661187719834089049176972659338132312719803553169157393665364378652535067656639023689581205344385318785961712584381830226515743917355518287608522165002999953056326159722374845338333611760944646375091121028344484419185937092556158213464582926456592925673623558155037166304594938363467767051800444327085957699851277132721152676795358712566567527744720924304631715666889495937949141493534736823412379221699421099875260454659095870738927534183935917572276115644207289891797979364460959720125257716932103027200134265606243630474808697872571699241005470656496641403121891267982723574346852275628280590956852308101461713120602744277396391192287887712071733126494334978537002700788992396571520500895377531461209486091703540111633431691819761665792658186521139288166403338078493042359326607817329703857238540258919464738353856948302314989612513415100070708200511540261580994303087363347605986031782076438835427794759829129662859899493092792280778742136061839216406376134774657944021041680735820082938572454201801105247022877763058148321547647248935484330307538232628184598202097918148021619315998424422611827454216478729317129376657998683375108305277105286461246879759937029591147023754243007117547710563668837803961499205420604601460407877454041181141368939261225494732093274637136387060237474203570415960494982015523149824133095079181271560320391400682347586464384387125762313965240019439352706552539198440266803463386112054872083232859877161029650290688026109710198437636891055037845134995685216603568600379066883250785608191871512072575645283731168583474151525924545008727858750699043373305006124269538762222852289643529911246748078361562273864792640444682167932009370573249191901614918535251922690765461839855259363517909411485524651603972810806168513430356179814328538637651519114572096372956803956429016522577574879266348108883838301280413147300457431595670736512052420382465351289841404462074612766632703397752813966316554124617401555374855566483997945423389997230046689530405227057751440726591740161779186403773069647340524070022255037120841998060862010640988054118014656456072980446083854694698982643189784953145014290715980562796856946418033710519380046332030677873817163531682951597926633120401720739468807598261897185859231331952478682996682461422359784853989470919525057160901597471494324870487340975498202294043231690334265870627598019986183577330710018767637995036726638242979910841492570285347295936329627588498635665299667966389836695449800056501392155579061885387124985951056320067282477343730929270811468470984064903890337676666451639422789131476207642224384615339753649482517679206921618902639609296732600672101605193951331093364152168237116387976068723224695047564864852434466566257827778894335254255177279817121041817352207067571271404838371349042194823014028342564897284419267748101612964284756749948788723084490561750808150583260502494226777646219321838929827902826387663609488424758447406996425102966073777969005972705106245460032319084675621223812880142669073352378967308244465089244808518907178939872590958583500227919414099131333384627288007883478163254009898609750884297913002867091021674447134685088312055842411024966663231310233211741866868011219432989051900822611926717607061682757708426355554662831660991153484213522225351308492096977303997896533301429102934762134181357849697825357755894450375060420281285011810481425891930893993207022372823405878221877302487855985590180743100210070813643894669784135112849562331514093441899511646300025341360608159857471765046078091161643515313552381878835051450583150786969104831666643459942518149833484523526211447874789345537021259198785452391390732726785540810357650851033943077281236647990308157866879271328993209253030792110393975051606034452257404849300063411985415579917616254768290584811566204149377095012588032384463489153359175193310136279423306569869553254186048233605044734515331094978142761222833556446435008300486381832593033323148178936857603242860943879885665404826747189043202172456228987612464858184975203120065158117202305242231213333035317824016881570297248095431260708382497004686306233698665581646116093086085901841372201540568937128728973403736510184593389620829956704236696028090804150286477906719955809617232914658584334944140628693911042055997733465844158452530334573306776663277467930023736913746239613159259489257192280985507288725429548196531791492259957050446145708755340422197321232663475528329344725875085140004491979445821257611638412907044801348205513368667679095846159775756232210916895325659848951379306000604565688743043299194089898489306399237282676909277633696052107042240154058867978481062130505585459876614645526753887224755986138637626463393169037592856100382564960734838544674136657384418586334282344801551264982921103660993095445492918160697893856409007817819640640333858587044398417647101641053491453529304587118014863074897267028257607925116533308413020757993555679343782068273630243240397826305487522969869099689629359770827649903554899785853771618995190907557464700042013064034026374648597980344060062833676292644992324185181162785041925020419583724671311635780743063962087560048120325915891794368354642335478104722327191145324749144948535788877754663244562931456135538992877222794116610351667605480839831547588216747935555407385236280450386674037916772032062421793662310529288761703413981559550504375603657645950034383149908215215030379518548344358856313315548770715869880062729779412789095134842446444689026125030987928546005494890861875762017606668479353894486260941923982854996421107083982664579630475631491748476980269895477857912431408083709737888946737097545605987192770856717017256669295525367674030136206030504128681781471827285924205410809392328493954299653147322103339321114428032716996383735419404497285093613634092603030661949408050409886543068141791926813819683277830620224065457000409045866422447973329937340957748649208598471305948832698358721118319856615941601149721400289588443731404923978570867069570480002205688822848807952466802927976115725801120946515611565028812333165614219377121829259505291267427965021050846056943220027300984647746237681895683762588942688908251752930770250866102330562446941461999412589629131915059240685446089851359175674914198333645364103605592914010344454477198769693677874285006596745173408606464965029164677333099788567146364413283406731272857307911494949203959931690547060345402391306833947945151050935509381284639942210095048554727978144395336013495011103821362366681412357135996334429312531852948228994942930994213624684676956885956394887615593451530851116940800841811741236857562224017345885860050044145301205710025417875839082750041628397747182684340867336206372780585516186155519057527046706515837794218448271550445750193616025594855333073888121725614760332500175896048973547459045527508953781978149631998495158975863810500862193164708054058419055924601744990704939410545766946626411999304596835443634037769383908631542005568965988867877898971903887792563293436447216259388727997284819431797646284416960449441576932480121865866133653876220381347696574358232652912707367657762882957835864246908759362606297121647757389350633900991238791953269473067846071992215575566934526790239709065062493632064849933356578798950432449078133239007060652410363516528113486265469290271825548532106531459368783489429269659497888908238629776103030403458704592030859875687339092030374195489265156464342833012905437845313035549754587664994728839372839866273448568186441285010986642677229500062304718152257382088444504985410973709388565916641397272835315851680305511629773436485545732647381610144838784933239813771101598771548988372334046983224747170503663932014690953794131640474702268311593537775554151597908322149299782544071139471062678500042241891573049214467539495301551688729506248663529679429450607644496819591240952797960602513754240622507894391132725044163651927595383471318280742609275029545959357387884885677466531263358711685266961383626571617511925169877141117004893504462714659387853956423538366554042823154942792761618536587557118123300762090926489541024401419747225920093238090772776046665233616620563359870998194954435536447220074826117999139829957589786060635033909184159342415734488465874206463055414175801159241948037556321244567513075250495994234055075792482826943194742706802316203720994965059492670246365211114246047125815577091577583165887092182440569698981688600850072418550224973565312921135147921495136151562833012779187184262100823394099009768973347546457913543808888613382118814368777137365712231056103459443900129814123185903250394355509365785082795374114611338900497504346758988484079166053957668844282270583576900472352311334011550946957861334862331610896043337776720787622662269905894554944097284930560926808547354496363757151363288008274839369143736729629697523603611531925644513260993530324997368920123623410889097778075303129220437423094606816184208631333333916096179428988976307161901089235554932702328577666565653759891321255297067543155325868221859490892258825552991415806268224720044179246406435780991573432244799980459317115105801393539278595623687056753613482353480776887099900350017159957266651926126350303626432479190816220809985536947571817802725884956379619161094434138156243467343018705252393852850316450876307722339614322222325809473383206368780098857558865701169950849241341901921758077317649668339422391512376486415685359017674228993573788436401849406089053006911900705939820161157292095236355615101863807746446078473524332337262837999476765517960689113534015833919810882358398162017409473752597766287891563460497070744829452800617409261651548249728178733690303636007236128616434296263176665018530575406744003271845784167636590995150699862025678184298972179577317130243577344765220410329703007414719223972895250898465669313181064704173655985250519761857597743919240188265852274862724143542840791127499979380951501909999988149838974531212835897782893659315141268031331965002332926271900349756737321095106273837450051133765354367156317629214125082632176252554189706750227139185579752718532490361035977536073378067513218046447109395296138185438248287811699368585644323481039147873959577349098784267694547863193657929759831766811888896920602755105954228261749915847675263334021162147017263366849543171346848929991227550967941167154706281569617581659809921313702874666577864224793530355520167776441007184350086363541267749542590228085985023825300403357269151818191589600361565779537409649107760422530050416581982839419678725104101902411292671426529089516128346541143499090136143151684885574768859559224344004145921806418975686289982847291203768041665246713518203097274226656512707492730929987654863403775648539254870526464245726973589695433392167394542827642635806959813864080308894995141225953754067654962531596868485044930623013252403668850473811311471204059687927015727173601073444014586414283912453079672457300169880405023249423235910140778113324846227643220948138765669169728130468750350428375273288048273707025152497195620584620960319485075360674508845732928025374022433979532629615510184355072024551447681253281774136021759506423283458090699971499366203050134417920172853907876106793117530261676713654333312365178398762777332821924740278426701775569743212461419346637627700927694865313086949794329942941654975196579958101993032509855458199511293818166216607151872926987845539297351539628621324478772639934644582782975283679148974442372532139884152387400452788296634727860126125403306010091518913856606130745986787628830171597360038807969754281870795916829935367989150209575830525751986610625517174981106883846247336492440676165589478648003100508996504598469948406901091341197021176646294680515409074936244335422401803969680147242301960229150223936709975855138583033334410515988344576454675926840237695312429428833424153668739438096439838740020584307470279237621465127605694443798591274430803777007300626816919583229638841775216449678923187468491576833860252498750688781321099329537644335277338496981336768989009345104170340600446570167077894523436419074042093920002079230774952273455317089129498381456970811494630496126713387075730492867976542737909326348849909412231793203210676380815772965445127150751906780132056855403223090001567313552205648163408762341556982713375049309555846742257142444926452285580850669200291738983039042825379270086152352112381477388075758687271164512600191436179802252297458380072461639210515279006855079614616366006620437240743419676704561596208799173393090032288214369848637779240846730242297150362949375624624720129575352179975283343576105106512467855475500990992877995536036640872831336787631731374062504554624330594812723064663435325963484490378230052473325467491337530565253297593080801752983729459555076178538347938104580934491745324491968448252195358293471831504402024909853812579802436590883118022351267584747815154871326336654763682538379599728795326018694944810053279649670250095615468299793847158571058328102956347293776424029645191624122013330341656449589853232151428041741817823941085167207814168177103904730209740762416223539319158534734156013238918875851665122291342312949363880158430772515124981357260422317405142177382616580461886009162394277263089026054051589288512539365128815792565047367280920550973768605132151105544377183097885920117409508171664435546820693804933467989768379051847446046084263638924757535250826069305302561059398901526760999625188531900572664223973962533302693908396435272926752107767522304082232920930138858191634773550202932754425509672125397665241912939626724676446575915604255387720155537758268609608671467983628200824575846018193729258802069667742172856568019013972513948715815257741154809761743292486292084925263756128831593513025472465777256597015878507872156485083043689383758234645498578388175428096495079408912203109198258997753043567467070259969242561378163273927642739021913203384039774787685244213458493818418071824246395527736450070164122502407735176832632804236030204746546584713034274276512715888378606173277052538118029816089270869636392938237832537924512228089739778370471740678938451696083937332839101371766603443066836200027048877539893143335888982110226676908162250627199108130811117542107906965118563039015011699576307191300618481817422144140162437198940629691805879582169378774016483531987818950210408147351563753319616991199801374472160286111379210134629045485004581595871625804572862938144524126919131240322091793411410807052966784264060018900612236015305280403564900655437625155302066104860095965845754189794662847706988567187573507890043158149125828571233410435238301861373313586628742105912809788888203684270405230412819196762020404613343967277111421710272059275401711352506022057185668633238232161230013597224932370868825002826456116053765176138809056387680044243193032288929498970312457769006110429881621212770258181509888747231241257432353207449625604082458482015021784137936217389077267550671817541146025291439151666817171564226402422599148226442388491142626198741732887764775498141319506494492677117946041790658436950641094121663111156351660146028248693049718096227217436898014949161721259417067365633393834208580919885529895145753022587780590602462374122415581223457482478587013464922882808040629612081011092798314209526530312610534011857094117826462308662126438103491563790546856113842750888922375911277410881442308079857820527006951089217656807260831733014327033902392258897133888412411914810155858179622687642045890348638542742809752043036735739495525439304504364120442018194311264384079848089305615357780385988983293856669118675602127344725677554100069472166427453956638238206579203205958120336322630325573831891133970350202236482293569188045220611739042769916456569972381650983980877683224814067018627353816845687732168329131159167510828227957479263682810696859830246643503914146149737655494092553805280387525977523118070146510154601566225606467809507251163127419410307412921787456461320391505502094318614290527556895453533392700797117722704379988453404922746955700019765327308929853388373695435291091999967913735544136242934403770625796722883026788641094292294198091849282996095378795319515438278100632067624248872775410268222516682025880826863230375992671281766081277388947552176537166556271548755691254702892831921743434773791231684467746371777206439558851966185765688731099330489688336671565666439270215001645528666016233030245895393884277127225569038433485631042207756863096742849000010098368560431881221531245546426407393321289577235468233248717230149233896758193063716634738238136074615863245784184125087909585029818833301218833419789581076248320411666330165405596578788931781632911583384282995289205163520301698215072265612820932617624818526815463187223602599881215356280757749216939899642332005862313254966354251602168458329861441428375670392762903171604847518618907865498095246829434489264998889727336817723156520683243287110011422147462974343065275567484223524510181973159252175353755434173097129009687923573007272343661695925078303661901460899780744877685715007847381557611649993279634156681538593582168190016707650103256076082076873902126108169893851737867499903477807673232179134630862436183269374895383538532794745161456010130179862177689811546265162412319521830513972224885739628175660946102986706245923575407211929711290562415222796416691978083330339268178957563282998772470021157252026348405942133784846804981321422734028988124117994966211903699054072578073993940419863988700820238557231359717039615062121541145321465232466757149417812110187228991419195781741638597131017763858975951625474715690349064857468744364995616741366655861403635639268876486498327938570954677836667610761057617450180126460925877641992034773355055041495046225321324586216160626802033543548958759744834088616072407881654313095220165902476600081136170608729444286256866917602634967875816370379068556598067877668692300831357699050968423873698744137347506063115399055197015053058565138027684488805220205955359531971406259379935172776681316785589891401270924742709559498077197906591719591243135583548742077673612127842215361027891169449879796229449855635255519560355642491290358746468082457658877219665393756379051018500201187531954534520872055868261232167061163758601474120974325592079802221494776419467994788335462087957175109282381800171893373222343382127105628528103559336190827121250281475813335003879153144726383882212511721771377919645452932327980794111222488902530172429892010212002140968845411758598532881638990146964232619977311789757281486807210175401034185903839152606585300327529460961085900101848401759978289855271981373500822082245436440162323631017151517507144114885557960703438009541135633553303516959716414639064412068422595658528884521723463562502567005379213210458432044440039483472072665813850572241760567067260730031821814207492487472466862560630151439368288987429221752265791619941298203440556197824433581880997415032701981013966258569974757923468485358697534983018289741117243141483352713379129040042683867891255719384265253122870266546970580720847415390627964034854527466276977169249443544367758304084465601545482894716100651491904222128123292080064830217547079653870327175840920043665764037605939925320306212108371067770771117572949470754670188114924382567190951129133750394349914597036638116496134545434498459514217594769857158981134255583839502248967567218577983937060983082710459089436313816650353505856390077103670776816751171592921293137719332696614962864795434042200495062769820904167264504630547244104428952017176276728674629410183552787505937687220400056771175045827032710604773067468054151988965217247084012812174766785683679474578249742712119998344608912245012154808421390244866623290587270696376151159233351778755870565892580125018219503713962940371034525042368298308988161047584554982290616485778775975268311110540147493327816843239224006202600405050370230757617292881399581411325392959445193542446581741040351084681020167754527064411398806354089928661248754243009982361707952759499230971106867145365098330592055243712579511581058421528748076960079713898640120728162237881086189558744363399846362015546495176341243833982819105904879461429106077640037438741280708365994614220036148431067639954214305012371914502039293012726807391179287613426928731330157875769575727378132205793061140840836884554310239775132312658834235302011016987280155440643408281588212457780828041918929794831306853863817091588368833425440607559165344610414988454775852514609701781648549350227354076598566105916927252606709527337801716057071596843201605877350712396778740391973236365192375976525738775573899023022404145768491063278234132880030903835389347780555037233768799508583871872612617680934364231156860086417659463031318314476741727668403123870764455635919458272585269629629926136512973731264911702483652080814874789075603391143802871445466541184483059745260289554765181399410902880715959330027474047321521641809780682096001336299009958732142512249642609822474608249583619735591418615865521532079730501785399451527572007090718090698760856327634105624613975736571176246599735195959079996679287281960321474675069666419944515403260714042736467904713529398906736605319938143197214333646741226029170327536961152263066715399939545353048387399548327640602589608929236905504455612197814416556030465888143103628802987028286529813054402869149693589353349930656910113663716113044325143584995783645112613498802033218545595100367182292105330719133280459792595564742354254883518602792057136081634707060039213150590752755987161508220603890605617883237026195785478932772438367125884725118050931870935038265985933475156259265448587574285799222843154785873677391797428952423339560118883164243103550757594299094944527054446945042116372520694099651032961876862814023585396916584409837962836974478719770091102602853142301858201253079792525565438692476816073176889139386667943077969786540849877012447207054771530011505472760406450049466021127874301751567552808534462131284109656001596830200082138978153797601289248206115852471237923547691516508608272797076048140461040468374111821802499675195168679080954066152575628372039749979073054799114625908802889514764142309201311283635386128327264600696830883844945694672390950420522927798749509305040213098235506051646230374049940063609024950951304030400842614310685764277221224747299373491533877492973146200662026801931101327772453168230912646699527496429660461399647290399410151536691215889850444905824519561478231851769487852913436393045254072312255865341411766178174068188606680157813635540818008027252045764437717562733823843241032148285172878173988594366611070334846368321096522933054060817963342717179663334109489055171656718850746810397954492301357103643285058985967205229415411120464292550603597526857430097201212137915595328060763879613871124770857398475060483109671483089869184265685397752413400580305016521211153753124508455450945798745873595290570421049947371338858771920622285701176127240944906761910731862188218465158632113334646027308975083754677761589203731317200488035233314551664994358064344043644827922012345049936560571697228767212955472400691993171534882665320284181138010922269251477753643981992710281270792260072220418711281463347677059536600858998453085063708976574270907787688340326168886308168401649425148222534477720886391067788826255335624987015466184422846458111936925729897105726637919003220264953754100045677029818658071505210631743432500593392800725611537174532816028700289770240862675779757007674641071440787393028040997953448984707989231908516781120593012817641081786429454972210912192087477660884957656696898110380501709891117306394452200769413025150283414811721869403926986061001709912518820080202100700775264633923130698482499846412918267655666618886888025917126561791818981384519375685074186070436625608355470256112163248830262983489980679151330972049092998627916598983197408455699340817254281094293838726695827798524133117609893073107943788552249389655915082383757353546512358335048898008829356476696905308751290393037854785563674429402529024876575133665743022206477863188996392671035751296680598752997471987361925951043767133392078767827361213809269008118001148249030741149198713128990060182928993288708129699722903143417694055927168483592336713208990928789187034728956781193765543473634228402852573205389574216104166798157867812002283529008849242685601687599560756553462258625541358246498227930228966391845182922810100856678112247203490466646263727537112822067534325123350107740451428552572331016699808697666371854537581870103449657246441092356569349332947665727594657853057796666621087138297479434562259708310917730917216757986445232951900713766659315094287037511531898812248309841536076793933568785519200936980983016506109704321292587225082439367762603502056708746756886052968440593497915953199825715410900900817472642070185815792591680782475115050213960864597959158465319234489266068703857747481518485692023348614548048854500461932174115072298834995908530687992158538072239493132871935253366040278384098108586352643918269987552347784497794937838846752944248645565027949275884444387508114948706397132100731253757861052630088135869743437194598030494065555192428919670711689489923170483130428198837599567404962343117350491081401449844232240077622724987462559823056295259154981865838401689498202135845370651708797527933992831143750478715530826944977703112850160583791993237957424888261656490511868937626604530807912179672451312364848412089228496492780242715920672412434913977575743022143758485719600841082264254962779820519199573427439554040961813246977015548766684560756809137120142676472045407331855063637832824885500646392226478478611788189774602816015535976074414265012772121436127672594823905690129962269667853485271287563434304725622534632591989798098351530529913479101690518046403943386552643226561029187907167749050322791822973912813497919649394064894730887004489852987015961913387229353061506941314155735642689396886283834744100163381491358755418643430730485034942466548227701359406582486907144152293807003879544017502978939892874993835771224247673351086124328378596464723964380750733661314492788502051383287158573844041649720458211170029985362554553904710517164963405282150793876977941112635090869516440689568780645784934597536802155050280654875385760508975283359943931613722935744165904921849695479999637999563559760876608744728100811155365857946094332250456361996487331251705315639864901656990344106806659049847006906127842983549090350026508739960152711163563287619436106225912577311999012678277941470353303058699664553937768447371820475574575027004527675676869064177216476832611530907111817608456891706106009954816376183020896301349605978224062178182052039587415934538768493672211495852957533170122179284412520337915125382169003822947282680815888257756462460590819970454688848474640723791191490450956340946335211999479605181839819188501828312502825996778501082806163655631059618528300041348747594728769574690378869000943230690564545355853211237690302238693309824865296023348447421552942710251233044793793902672924438217125025653836086823006647716950184546970076094169169534366839329539659889177530099862821079593007060430603800200040019635191130692458496607266396841598122267553478860667594715979900421698263857837654205676437528526474554512911166128062314438445398212943327567032856811709046757550824104641647037811205099875832918873723395582920364342978656521824601232872711150649277898831014845448427724817583821742778068418831593853249530494840775236461684211316573389886027589460803610151418511557384456940898672924457552427115554245326424470119181867889705838643635668273648502390904511433270385982911607992388695031588637457433717030864695439486089453440550096190583356014499000588580871151447774348685870505744104684312728941492389674546494619784566713676977329604216563904130659296743906309431647215849438490466504240283420449095699126340809213890894502570499142486329303792061754729383893025442154985746840965702629375075286056514299016412479528450326844742632566350274978518806022202423927114931956004481657749475669876254018459541312655091738918671624962500458235140795866804046045483886083331360095593619331137959399749365140666398086030778327466399745900028906745883507054868760937311519002933090975685146276251091870103907232423240452986913479053057745456648295713484322410173575192779572217250450447388316584922573586165176236712234317165734512899228941277563022789474254035291992096520929351645251267788292032215235863461525432710167850875586504947297089816193636776751265017243446788237921380199779836999162041074416620797983231308434274608161328077866358838857391587654117188404427400759504299830105680624724903222019487043791745725475507572336034340832690325272184284581247676331133947027025533277580651135220816546590120730677335147652853317711548813465438648453001107865336050988682157963689978643697579626680659119438761808495800700360192905654328050386591601832068884754431050435271077676023183873539670801155947391051553580525789613299808157136270422848494738411665116767195578570937117718655558107658841288807472205824475331620231275232774197233342165920397394972159926064862068344769980891498480766874373539763989433239889149449183833020707694825467059314649473210740200629808172449695201309690324786468296186556777204033101306188850322780779990114860564221844637511815405682514320707170075973802423990438735064695094216890998976010557541141663592776824801910480731594540151961058088789518453621985623011824114368663923202864068728413832363550378695314088867289347422918645239777253522342095152026959883143056049586965230467911351364059415467732077306843255875387220175474219026404535148443772678237020793842595471525588838632786807261763760611392561298551776621813011666131234916139079802474461431158588972237656768738208007094837385991721574580837614665997653467413918204497229988823924094130034700748160996970288939292004109216508670290331218640253602925786282498694139428006949096014872561673797930823899353395024990945398140145652359732132792528496224646056832695844558968278388081751311662090981634840512738218135110725066013314257342813486671430465483051844156283570777295181431716654156237051344198707599132314494436915544321533514708328489497996352647704987046448452404011418573569926044003345468316037726653254514637730789409809154409335194402370667731903753556139319213387503121890087456976366708880057256308482853058748659588296329444170730581512312870602566816295559579508726361709578731166466549159726130296919199315158301164097762544785063512043004296575134541564803747686848142770397191849508014331498987610839335842153368796622693678412942112428232070460791134568765844983970143613710279782463909801528587447800926549636028555461361664114716209616366698524486079366611767450045950571226919946890684272248466560514361090744081702677370827227910247129605402860264498316234796789292854099477911653950910841709482842624691254097785879643928985255847476289505727124234338480523646884885090001314564009025491350044369956559803664616006563371843864826549070465303394668374881197526086493598371647559052844041944746424840804718995923685913088756610382918151020618025309413066803303767964483268604333707363918612301661535247859528538563878527393944434913865150108428020114224027819956804984642185879238989985738987145199326221678103395376837558707620796338772143365370098188739711924024394064323899221571338826416820028172409462733836513949981971234186959300097312383576640027577038728392716815369445668401199115390328806501143929176708265224865451935361117288742647281835865964623682616701356082819794314068713125051180031998074492351257440974618904209595463177268415243421062138076771659981893624379452008485489478226326382627387424922231134517406309267840261659359537976601504709492423819376993763824636650954704252297516356915010440081971903149541666965499882663029875822705776532096454788251162786068273230815578028559300246849315923845600611773512028906225199775860103911830388932288491292401757341061019977887095252438322358704253542596220711833909233151120841201621636371226993673812834061159941085048397219134603048646979668614871805644132301284609068906758950229692181751320853083343220857259878860446852748595661449206334430793682058859396821895006127691344663524071701865203550716019718163011359506509069647564562986334285448200189389372145241394915546356038130873156206070685802476616572345162283376138370527098338457182179625896353529264614016731608712319506583646153526050296275782665274535967332114578393884153358492569470600733187373281384086387451734366343654001890433274333115680309944389103464229735517800999135807774749704153906219889333505345834581633208632944392220301523442425450803167961130488410786471197097720356587825009973225959116393230306944790169112857168303121064093173125408677244977922318605206233737300929785307692923270101660750475365987458999215416651958585343460197106008123760612935403620349641214558441802357059898989952272478392734261783030487424191536191493654627906274434334165557191319609404677706965751503310961246709700322552915358304959987867283392728726450804286065106341322398553436530030884199594239901821403093500352897776256020851951930791561599864269224998602922766614715547440749700305751707930268289065418927415989829442565912116161254148304012420514897074855897707825969450385725909201293680218400714660856552887782975146729361188898035989645151129528407709930320241788440471770318716997726708147593995786383943212850163260656548380386132354994565870011276874768528789264126762084286924827443101222890738052375327422466887399310016430270384666489101641548329897163810310622957744631150076619795529636171733064343185347906482656263525171635646192716305468257763945374621607157724551891726624973741787828387614657762624429552986457254291218020642925437139980970368161346572126359882546365476952708550808507034752879843019942146955098955989659760376724121491833883137117173754282963585339248864446300847915918212681468655124453903961828372065341550533338614551020471510467638960350215764129791430060369852101596166790805055457413601744909162333226087647643365432983905222238177100246325432519987660906248106269987750628554537656764768189218394363666140200367463445962897004989822128024303122256703174924293420266388947240825951511190206151481534664442391456588610409961923640172171095735180175192289661136867203506329841493371698951895691502682968591124722089999367315099880249379003828330351485211390684821721319628320144424038110534612768275967267989133296338831414027296507546674279985264069863754399043990154612079651251943487016806070961920934628308541411840987514590038501128321335494833418359630056660140603888132398698022308448149106958884325190653335792702665914953280927271406846095245164904499343082075782389452541818290697664967195032504801559455691023292516818157498609149864307892925327863838728246825928732234451786220415993064148753720781776773493868629865668065639560864940692594403645089238864780268349609524546120101031044709481116394768515690156055520800356923759563341688996830555528545042118703226266814363953299989573754811154734451760166430185447958413628409943434847120377506171697682087863557908284122954329100556185178374528183876920669584912031009221219359307693453765278548336468723847153557769071794960888221416193302535618996201730884369875348994957429664534961967700652542918670978657381727681787695254919011702370059736165228940437407270847903027889208710078185890105038601601776952710664843100216405960127205121689398623920769592899470819410217987562329723565942931743943413771485131185664558893256892811963368884350093015607497856308530647581871113580127664327495311741771185660831961668401857220952210733136854107702849485424051840708037581473644760812353727416616482388958450239996113028337200728051718431165465924513640626344785674092902460070655662161614411908582990594115998780114477526386073048625597885410972112602735187823827080882198166917176551147375097565801369838367898841935220656415458790107074067347960571411060669531348106080423961938351576372809384807169766039430800176013515738959070591386374929151357506889326526125468296600105892393416279683426901014139210470953136064166728444783811565615579214861951219774807077561684575040797343912220425000094365305877066861750601312521796043176098275857532507402318771134267527533888615692754209786693883962025253457254960821640685049867001775683821160376507488067682897075831598357223003016942275334880432766167632874918245669058796023587477296483929348750889028380099600968833685635831421609866522594789883490797853874971655728329466478572822898760560013278606546969254540511790049295087974931465069764501763976880931452059205358781263649979373537876878378228871242376314792496410915298534777565467534158548897716520847106156444758793260148701977097902191308597992208092249520416812439956701665801002445012176780471375674863903651456529810799569452839851568873541264553250412618436520601880957519240642986558195606060822261845013063901034843385682496041329569461662679065358213362814252851518970060243572153093508097007506166838405378493947286843191620486033162363017660752166095767616413303356680194619675982351945319600798095068227993640168799522530204345047909021446134896684984018192776503915071795136731967231739441852328084732725806326338339664919084147417623565924899133983708040189536733684146063464666954680082857531656636601057033380378478574402149405037129682778802367199277573426189763882703620762133729774765374504600607884988909514763819539899723806484784626384992781057852499128891915729964958351512233432843222605823570114072057686796598417259747575162382282664348479041617703927372663734961872751958785686569516306124265422492104928489798581122797785981907339938815763459135855453768751559478614019682067234502447959261639023869569567911403064752531858628763061230614433390225991140658174161888783582614493070072997069835462848954740703438915970028565094886984022371213900583958702160806056674732619413745410619570224009955661127847920150654951887969914812798236392130490112103834801540622747986383654381349750510604621150092926590948340718112376799920010698955249077069292912451263627551569450976742653478863586726009928059518167959736027367899038840332349542321925579338940080059687196291365954193965613666419959114237801988188951633719702387802006601848425190172992852605886155935517708926259133856077585945034202358507724620812921976703498358493673314274285245997332215737984996821733380564586669451188187661406760070356128593579723150882903954522041171253705392530116442182581231346468064052274809151458181768868071467069352500282481765374026467096315338531316916120654200449498755024251491398613460950673090522385121871693728607744225310822615662412360818411805776336686311561213729776212851821822426871984141771052413585367909802087406521177042337053454387542967656993679501602849085792294036708415817943073669899613080063689138562456996867193157073890283771563864767903436687327952722163638320333429222227937264760112797148893271153883856454847350336782585354063737088289434732794607842140026896174067632323218741212807394071780253529180399819928691770559484928281266846139805918463855574103307044710918418313743943680505819399350716707927529154968310825028412144274310398426283846287837312856565082688583607528660849294473675868483795971809004400147739554173057903668028323587245237705891252334246258475369881971240919452743194767244840297593175284827394192676453948331492605776474585201767203708272513851668018482056219511408785305340629857914958099579170366340447485592645624070738062889623467194054764149565700227542315037237957996257205513755910810025752892179431340427382420961316286077714408823314040702906304118496689385322560129863262955911945575404046251823909185815960248002354163755414485676380685589330794894676592609647066718004897496970569850370064053903747237389314584586910605854546843462691013977689036586199152295912300004415972542722049464942775190420035959641014153837238725741885200026637055641455393173870547199111243669591566156634419328547847938566848747802712489603016133494176533863321415701235755957351578869770132621918179020723187407380561524356194888593466897499261401593279377453209772452698983252768136042949230651987496280031782829104448460304830270874384147505823254018959916663521333800458245277861675618114028418847333526677726527885750101804932714818687582570666313160386558987360766605672602368062611349249208862975548196421609108843289036172585069111862231504049552629665973683715935504095412822125134388521374763820676477168343892162323943223183424164796220667002088304075527242015492290764782880818899241614409340941394942885630283230799872082883415251206967812404568734655243267124230821425123642482650765499302986415918078921938459758394974998141739063005606588775610534358900400121999752914970614359826147026900445904047438202299862654279509288732604966884148820017767495999560007045418603063676067017200660772730393217942942128885705744819337549748565665347746279887487878411293573272864737230338690125490120405617725520091133836033024588401479754531676230670140045801623853227844702891597440263227154300846558900451283926741147411234247157001122449644874165234596712574072596797885948060639331253908535052347802094351603237917968825610218262740252965814924233493984515186093319411186581673583947211035817473256110801339841857068764499431213460859907964237920087399460081892758581389509025692680658868221320628278782646982708366397431451254381811461924273468755640812887074337219087403229633903973026509423382488966054593973679082245453980123759705283538464140290439192052768038532225746722704128539602587899894717525755317597399284246304762990077637006736457204604442542718397329416179373196409372376563641601340025189450298849036177455101321407234962229173183007094052771625643787556336157643792837181373580295081287726165951346674796358691761297128409965129142390214080927511433074424273618797182122127982000993224161013926631521890460844171782393352595137746349103463459261172283035823628731268074485908729813205760468953739270043706722407510990592294441126510373961750942873220960854644556468691569373564623606416662557750211101154845585488121843483480030960984614833727577431176061168320317465460129888346211149249080896020002968630569756724566440837392521327144562633846948226502985748995831727892475798365211117407990249270471766539588202038897342440761241978365797462743628605930068579822331180021564160645120750779608139138437117830218070108834766561748218856046274321603480607898344273826111700593943719691824914892175075495095428599650607880587978625939235396221747116196347861821154644058487852249985902416763733075553664931729289578461897183373811529778480689016258437058752401606925745075968350149914605146489476690398943021304190119109026914990110663810005856854546755103409616832141668923143846144084455098407220204674646996914156736525259977996246108358062686904281115583527989658226017767685005008452134666033011619436344164690153453675573012829827196595109844026249631654518045380785734384733438194951700417263974013944937334761561656993566253532450429885142528126107301608848642163172263220504875520024902648232660690186044297715248877547536845918973670527069605419561037151288340161761746589328733022174501762071471880525224493683666449299963834490959307646356017497103286006367398211314550412364752790955423519399950636703251992959241162496150691554721122998670430047116491311072546263819363459220109110693632059519291874414795834774249571620965013676854184068332868888671015098917655202740185349876573133844511530498742832240246944009711158995624166279754556275117221545545202163010986164761877003508483024825655523403570129028399264854549717914428691062879467493552168557544793385151776057715300698067696848747194765063763361502379171091796037855323927402404038658925353651969269367143526853769342514651779017567481310439842454563769475378815489595440313870499814257036082887859725639088151259954973743209527227156694840286014643102305015667575524564781503323552438218573862573578560115342635003981945080510654211041261727886475687480025266536378724525333579247688345348813068618881234775544890673706957363177813233427487417947619252688148784622941179018355382568046973786373735568500045787686978457996774166098075250864170007987120343306021450693062204567658279553144208933410697860315896937742117714834045547891965815349474085847039612098451137513082586739789430113892851880019875130483673632787311405115433990533168478192879299593643104491707737405813299404457425461463604135634890948881528621584863012773198810665266457697648199225813871256022993021730142349982262901190202120050247692418599467684170313373683079724322310978772423436176689696500925886404472628495812480613078636400422813867491515687260620236666906522352328213090111640570192453006822405027390291701934676145949844676181457092681723462017824217146443355406968771585179819294587419286318436785340883456806376044405472487329336642677483478590102286105148481454705258580097758283162703599436682158517445577623730992419280046312689176514751295228116422079259319651956970801060732632924687586732402865888044887925763244730148414931005684405837282861965368113137916680769681909629531762126097184067462942032593211259168512745938469675843469029966254882656221518128415727948894561553467370682644318062135105317928541606261601779319102569350968751309041604211856999138980210428842651663916814229222847554453874689761416099994214466498654769921274252450607236006139719590323280061094646701063745694134664293511403283009455112599422314361504094009037276830551205268544209136101370678485272038443023382525606967219350368147611013658620355064565347141711399150473288636084930253206436647777885405144334088402091416551362706279755237585580167285001659565911456357394681684520882189426939961656922950996596424646261632978733902059199368291669631133091378996137081855433585584145846860311104421997301214456694268260710706046234854140777971009068325146369611889835156596999693149078578389521494885034417727266249586942445162874637757643771535519209142194855564284289644598563496273199302285468178686813574517394531330096285390696185246416053056916019911435976454782267716229988369102428706054002923103558497427184182060505612227338959792735463854010538696821935101686775654957298645830636936595931395958121011960575623085553066228212663832413351134406872229004037383687585861462246263651275328528609369441484742690260759801965386504887531638300707090142642756171549591261800448120753605274558720660968849662099896097059419484395748566971444346060452787256676384826827769703240740044738869094619563711553090813273625285775453975075889368454023689005286327331756581008055337010599599964317233104162583944062931815965540673488748711892771286092560045830204667261173419208049298628820783924919202588631530638370967568684310707341148853236356319259989052728212274129690529515896593995900225719730226308150093336982499134338024534369921321458823046419187568061004997528173868313988206884983988875486219184923807753060756636193868011709091387006518905814083706528988750954843535803845018301825470927144607697281124592287307368543171039841892888287573119658152766905365030733237469456367806254486966327061518503573094979555385444130318467115202393926739428011314428625077960583673200595155810403285612188420647398977961456032859470566865687677588795169156096964645213429174272265412760716562492178120959699434636208655343258919436779017855876591439672671546238918541134990845015682369066614846774299299371134505817890710543335611679218264253243358975925214169883660908531691748137180000042004611872968897192480924052754735907477862559729887909041112689081426813211437430184852200094799277002975472668117649275499141875133566752631497557404945789511059439808973155635366555319432474298316299378009498860169310977351392292828147565226644115695079251501784243678125530373986476790256603114275929212171139800256999174411596807145679522667321502184967010610742404501985799005983894903373362983631049344267205712659096004952491940063069224210306983754164693354106723937753280801750721571999003077098882667847551822938067072557052387988049939019177242556695069343991738465448502662981877816839246581390661216095173871276598808973676132853047275458308233277653167535359441859408340306654303958581362704657893727692908293519300295652980971683548876199893963092308048588446504397864790237881940467521396483460950825117193813995188634516488434495678815915289457188330449619160475243674566405305361700669371431763640849660753093158320944114197977412874009010086595988430701266371562812940707210951013939237782034564500822058157585595788634341303283459919194555681686348380872178142083940576604975427739383456002163466724304567702081288894877899544093770255335015955695567065255294139208475640083398416473855139410063685260659921982299009553105782205012966770898633246476617763785916729283138265898766027633625905204329528025987375871469880411215199815351665521368926802032066846947351608172868060734671951641523660875114902772021070737523671122428018107696581325947449825823767759384309698167908113324952600286224393266049669064855137559917183306272934888192501372536224298315422828537732914922406687231818913662399572832154779412375203009511691501968174975988369316311443738717291942510106593265209955900229802912579606380617759785021479114741296825219379403484963969882556485327025772038241907274361232641411106012015907619634931182400677367990152823292264145014173028246094337674829754972780991746857945072921911950542979340144251472178951227592378644394912153758192509367780173847596482766490083623904484851117331158697741809912827771062943806174562655344317198791905976000868425364731962396581786848611370975346391839049615894026317074043121080906792582264683261014593146125773669470671750881990726399694968268228914092005977084083576212658080821623767801527462186157160912903587562748333269701729547792033088488162692918114374774839818054086802439919048430243132379744281306488584987329229892392055435773686408605696619128162481574896464951757868393103426010119320099043151143163151716465093572128690905882218320780993549349693715169616127586070773726438975523360974284443825138339585202200192170868016883817361826300886104265734658779086247924657527578675031674575079945793015378191805790670555723817608471303592012173160649016501199021878256014167622779555032019914433849857994896978416644335328999272215506253901842400844650349221616602629081582847634145823518118169042359146354528957653959132138126653199236929950218228953168529059963196179453350622577117154023600833337548795058675549627867577658735745986423350441411902530609173389904636592786739604590229965304747713129582921837435588777496141262163715821859144136902690000361306515948050466004944726547169959004162095030504928942026997196936938167765211604767591694410674059360652763484187634680924156650994810299814816388369323183426719784391518417737290996711812122335545527529485383821451529606980280408088801717376948100930927111059100076910354185382000526638604569207307972790956515786535542654312963430955906532433120062349658640807233415578843067582013479872184031192384166434701348598435161909281719965034622533075100561187562290550290663947171856435519738231853461530133397850360474149517969848775519828688957647605127164008107078707206790266852679487976514870782559954151954662364197513437515930915003419936073079077767746320189789336105245215792268964460478381037855071678258978288074667711850300963924210757263547879389602212636528642798460224683078042761287790998109162272000832146026018094004832677683583994725979246417285915185354841408335012913760289582853336318190187073603421793615441062262849959366969091544132416023112444845904368469367062751859753909389715706560188030682432597958829874604246919527693771585949070277435910395403090278344223823574753866068868680881099452955656393610922442821317917376940566093854336875380215553479786032424882961915908175407972887393573495296053559977508301967217623352282615852413590419584046994078808324183370878233325845767355600474663868103364570567088650161209377735442163414190636135936956893949209049796880668796058574473461457914993194009275920883839929263536769225200295519195838442193363510549133369669596902062740429671310824667401449628882500987011648834760832239654807363568610368570861171811982041959943998668704494533619359523762417955416580889715576917477316720147812891203275715980175789213085932258877684942979366182872005587864941289044287194120114863981137882937585219530619091276067671751164732710642697370245652906147261899107365315417827004938644811363596991578550066809526373983044024166809697763249834108216281431325761692485532373012619806738924260031005024576862561871059192474013062240650506760035399542607583629483338109721021025372598878141694361809131655353886673100951097909516374905657346700669149363028265391342429878182243239220877807022704221990783385663567692685544727584816576118204201470912533863423970350330667034353229356596573606280197196960948498380799027388855441711975972640615635527582539309407042695967403956427990606369967076428006432731692852301010874401865673670978424402573628939538195110574592023044359110228417517736305023385898121635627633756111710534346892308979048998077244906909870001405904170252081442852095845156917562381784780787809188740285931474334102473821354431680073218729093379393053208735551394920452568449875814143435076799425893043289151418209283310117886934779811683106953588415294798394879802858992744324774354569269112476941843402101088774136857281696801148032067822455201104029219912326272345258015130654553579258611590720758671102595074149370364276502513714766916465636523870705277208912559952001628846195352896120128679974914019516042640247742448297291562994958490924418277140142445779402602923235725126551147637132123529465553225932538233677680658085647167147169381240131894737520102201362367275306961710971126683905377601823041819828266427150788384401175304405745455439032784738263479378576581470532123137082699894395396594522874004175534773599309222173873263277227662014560684779897446994794901403914408516953948881056698164683877352775946355359126089349083174795200025566063753912930537467027022120113587109927704543414898037586121898703420727507869260471806928172432803632140576122054113350225871368814384878024064201696055068897762211129788547006147191820768344729329193138536877778636599893404071659470492581100514517150187467905568563433732801716400876466403792659829940960372334130779673654848996054888191723891662045679939842316377519912175450069088758842843074267804909111328253127461919947955240820835859896276628688244772851402692559567635896962953019145265552941328162491637307591892707166979524518973529312336637845316788240733132358058163780906093800538714796987080376057902920354718944392189124510208145814061419794504935992939479958227949815475477367983457777221469840046032063666155571693598084724615883724865475699507016209371323429483306247241243610146712130858370607312998706569837660163767357006084907746954765705038201287996774266574856142580406239580217702737570689316146477065171643188149341102550414084207350327624755469565254714252161602580440052745235242929254916888375947593672703503177953378823375270378222467692812624668190194773502931372121417808635095833853410570574061365042240810552177056461531176095301698399613223474326454205268669635772282510708358778686806796726124256787027583033717093171425502903784657835749532162243640676987692588056103135479727946954534251409457135967356231058655581736448954713985067903744461935042738938633728249706807335958824242400859991407495981402344662716260729752046822096357510485863719733747333845919372210591527883650653607739347293068679699627397357797507503988309028117026155380788808186641119772591505139427696457919091099486986821704526098304261783368578834519610188972352969139389684796101661869321487142412787065948268905570508515890557733006158200820395158714383105048297498363500321252787183175861560515423932658716458573750136418194156021499612638804105794679066938043643057015762348329267735471418132349745824361209652968663836193614338368957636499599021518804230352996109076663684016956418736682036895103868984050725294435709240026181541663468556822290003129391214427569094943544509646492048703048696959915908327731356597166922563045547715527075052554799836564547507803664550386841583915557204571867423552132720153181773229111359625980735662841702082118978648679651763949417905807041532956128473995257947221130553529538128102703860259867407247292841123711775849867150053920938823169718997149255350625491606505153559283557248116808752207065455198998835445608058841062250474004738610370448028405281460756247130440480666029015490110045356612277057585984533687149367166858627405548051354417681358707635360163978007098177810796119675687815419574380663077416926782957128338633949544738906592550677621118622069606286746202254457731902990718539400045635583541367463369821646601422800965872792937389683987330253346758720316455297333832716372596003972266449765155242626645077928813479694079853775873476910162674138134625220968748992922269672169381145660540504819121157557921774717460333271565334277688330571157414628829649492346013900225973372094734783050498180319794106774005036612653049199332762489183825275649966400481592725969002051257126402348393116120434292246916330903503381939984438418192828800833860430121099188707217586246952024722338407583767768842529342865148846376336965343857316220827357822635926570012818148944711705299503196008057403918082692070837164484044885945104452355901711103523426849604302034368712443457940038294944507945081396846689617593074346824077651993282177251671353399300412046472352414460316865290932155048515951161443913101132538302622579400495903222387362378334283267403164865591875883765041667641953929874051068216311321834021803524053796114052009728893930501716511579773139465170887065567198581547143543020363829462030310392371125458338935067552457271604795624517591234513834781187086689282541347060822624338045905321104541127663412054771280361775575073363638839997638652080430556299447325033673986358656843944403631100640586609966980495624942364270403609071937811967874416007577205620258496005334831310947505899063485730060164790202699097096459219885861035764020831002252273462290081344928159420528849561153888769120148567929766393651291568791590482600811928561900948143009222992903726506030389135224131913172241055943580934484260854134663856586768598052528382552425254679978780155281473281051323759740873939715006461022411145438281062263387889641392375580749560534623485033203923228164529613504164053959734733153980457115299249532411006186857826215891197234103176573830602746197702833646897756261218394524517987803586379818510866185367472113651173445358348580227195884736921405897612056389768619449080901219616846674150661065817156720492096227420461681264090849071010981968336863185523517530942854816388554264187725253154174155526609302505590280007933665252123625491813314595436039290147196959220645266627111429432072042987693338965106760006715152329429782163726439864925111974386148849042611099455392214284925052196613186370136520302457534477951045370687727353631771444959670877198266842090208217370411929108696193509429975883306803386927137328921119214688316587715955407312655016956760124016915077322094523923373643955762516575865664236810431138394539493695948842555638982019746852571436861103322611807163038529552536355870486404142241508268341260244949367219357154373421920090271830473210155332348076557572345676746688400673795967806783782824106669910337028864196172381178107700724663999288726943490434259533910341578040616171648278636285897775047721944354950344470148537646844975946779052755438638037531067117878250648673897770086343301001851686160814503070789089535127625454206410252535018797647076206065064713856084658546646562471750494552188205358254505128641452859370383855079257287598205784158691026668521045697024583487084041146496447397401641724316885924814113735320891976800769801049683773650682011906316727026229762106475177783732080165846511462162956562560151469779370227867912872627946966947271963280903768955269833479151301281331028651299002772775051657070198949617208960741220195696279023638673252103704010368193608343212653123364108151625442356905180265748785870629694920146656613065394159314590482271826016338133656533168434012389472743023444355841710210426427217010919947432305918452031431277642077342685255182253537752851904780130793260451762727029610086473552727688736703818256505351749396144875147501361709349253735465746829682803227795489699175230372969824710902609490797324140145046598047512360857954802930729049912649788538467431279558530341180180098059734185956431697867413027066228349582629495973112911877076772082874911146881143036175385724270068831001860632521996478143896645740977715452949665195199428711287543235806731402535360863676447066120343279483797640159277406704759798252656912774133990855915827639572909306863207720368031542501670280248147859124811535876863050108886038489305345167962602825967480636528562576451992777797383214679937292302207400813683833098668812149005644340009262349669701427779056516931410925686280315174838709845612377641987548956045535837666778266016488311940579009514081147309598388951468263564251044055056875591759692980399613442291433194567690218869546382913844316683508492686711856630796340106410182044898761848045977500022806711769855626850847583368591886559977597624449570421025802926002959928096269510680380021332475176691357020966776943205285595603153790741457795580526776849839197632920239928721696772522590330080205467610172860561152228786362884765041886901566537261096915274117588188827007894148368562103078906294793004531343049289047556143659089980334372503073411032163669809239841754985396624571446645857019346926519692765902571584053540785959175236969027539692592061534278331525683438851446133211855420040825011355299729087679345020028626504330630218760628461332014405318800618014665362146150371430259564847776125269027582541685488827952857622742741684920518012083416546919042560922700006109813992452903459187430307251567339726162515683452308570194018502429150315940800753850536442340117808471485458468212291421528256862059989044951111044043167108884052606798460811464924794418472096837084329661357246470460152183527353611426340488121701598690808178943711113057698822673542048914272186258626034308762470169324835182138028453160425778847612639142959697332638799547140794525180132827540962490436759167047892164502779498856654266850744214420985344226730726740088877278306339374341807845554999284206234718087568939723892002839642758568661697881093378980339718232258175128132291155627246891265477851804165213520761014864869455179065876770300423806742879550170696622482635889009396777417648667090649469281662210742851264358344939231652051572425958914191445312327260192092988770537687491318441362064587128197113328498188955242139631225569345591624540188904431395473288066639489260055289249948489864614878233899882745987080329244309386065800888399838494524566725513478113089528266590335665469712255211458878009727721698531355772635056571112339019583707263205299170551761135695682698332053815228697795878651169421139058744302030350945990842663522707290435360766541570056174037265303260382684087773656427635340535153552635209165836460202959845369842205201189760253270008381728772761910699537981131516309136251932017473913188935793349285391199757156791746596059006101732041093694600222584911684971497477648975976046133087717498881512325310068578082236253595559155449583849123856894105269347698495561546876204765466316918308441083019794378542922855576838829293112680806978227696225848606683962850462728081293151860997963252876075396374392399501832537772275189543238723617956219522356848068231795543641697894457706383400355128128352634012940859939936416634024007583407487377912061967827606367743897335066997128683010958333765365495790693293501650466643410095107190232307500533307071246902641449831688761588159654027487505256340357568864782670613686585547950692080668978938954329835841618549085221384806453190875117697522483566901679617526617131128961389869449569594467319360049728756626533980790564398383630773794764469225900235829810162275564520089569662893582967226253015210452158389222363741425610588980393431672828530712888304416551440869296427642326404328572641171817729795134888257577905610284470219898174634052767267175678130560611856091475465195796453072970380867353073199403624921111294285683089538251654666636498549435631630979223614545799015929245160377520968529007634153413799834163986293197549897481418605056710694519384675488770730941408486637066466614131731845533404773126738142689074028560962684514947582743750744913377131958259352018700117893198884266303386015979135831999223491955159887442330951760628987987993797113611673636192268654698491932696225735043320459452157667611594956790167801538503099423406830389811140252825437776778716622722620387224560459000493954071256080359788029080384941301876985014300445356562999180252627876830548250024215079682984687704130513705017330451800590010410396585933939134653281274445120596262931675199617650763011244041966370540867487356376387487592994398447900163151288761810736004510458643310895579624711875096916935140921151611357038341173477803610509644506684338612979825807042028934820507511874039763854941438765828448837407139972414543169064445582519626801258767763632277796107248353910374721571708661416924988629083972133681009242051529643249178522594037064567662966112005448361171604329111327110211717887926446752898615015151515640657013422773650996823791398584882006202922194951032068208411165950955167573992200823385168062478425614631889496425574305538452756751234927051258840443684335019081621544595326299521414038830171642113503067049714600507521908086806675997079763543247929017820004760598199320383182647804722043902357696141088961611036221266472186357919420413528216030929133225790424938515088085004428102589585449764812991859372244367955392729877378490078528235525415509542333496455096279754119883862831408624493347722943168450360116584590098476967697081863233757492040871861831121225765280979606500540091949436178628140324243146404641240678303875806318728341252197609702043787130716012866738345035327330545015314137377491573838945829230184296957344554956801348593704131899926350193547034892546642743913442046316604645819692214216836423737621045536098501195584707033939546129807950935546968178584897117915526376148666532170782284144689085849049682690586263611658477456087250165198917451104895125724557413381191437930186885445814756357807493218903003594438825397644768596284412296923783604560741113588685495536075142088037625761615533153286527395408821891299464715808022429663300255371359362239837330253236877832551824694499105471496882957329610310476101468392838975550416131683639643074919899287915722522270022544339445677803585072566443848760745213396252921197617419094729290226121451942524185134724870314202783600936041959231483251888325891242330387003979732254208570571301060259412494414075819681073008771851744568480469149800942235600310684657866641633997908014661455496542128170689493298014949283648371799701819119933002896609893556684840630254785034760245386786147877618923798451625422610663763783132012380043222594843336634712631081394830986048045244488420944550529889995276699198094735303398503999084966688313227760548856488482580500157468631081357065643197452682256036061369771129584343708174448674157173109367416103004970588977060517168343026756617074827737456644254850521229548571172860423334980388836091878208206415998875865057935009211192321609341802609515331148714425393100628014146116760177673206942412300638791849478310156560369699346415012664891105139336255220697520773083456800133028968182694652189419687190202269743650905944499548094655825894378132649651542236580378444694097203094168893105899728612458582922490902657324514223409193342359030976663199896292764041005787804049532465531085244757342199895263186109828891500337751516452084979024862219755757581386593259242723475335569608263342849966789388170597437078020750946261570771834863241005005520683396480547993107533559928907523967115878393097217669538431282304043208299180534525321450013818189595334029176020987015214422783365613991318174123373006388598099623275337152854545920972809200572193135692791425316160967265348390095274366776399340236405092793679551458550865168501664601063202100837741096371029900277763465736510425277509029261639083878398384467890013224327765758709438445599340110448302697038222092150335976037600674618782520134337013673232402247429966729743523819402843851913547050283473645320435156578096778218098331658683038446556656573137493254015496382451916794295731631412162484581708512747098857079926262745763351868484277205976396693937356485602108412085116479951240317474947871646040200540081561594741320337096624918485683160763366789331739411570137414742780512048986220622529763844760860443553974689765750538508100895054294939034519413382589519504307729960895148628665607673862989070143169254375302046513484316703765063041360243657833717180097214487748718392045811985837601604322838216263692219908602813726894185042889373227281154606469131294675946876729169439492448625985235744985565670571468435789844722977981130700252493019893012952593213759956682167760641495878663205971992269897106193087649396782921285902831392212616974031491021297120441249750532713138381592263882582158830393598219334833052982222001674407567438585981353905772846573190469844761734830911870023747034536409354665666390301411617726571407959253387588128805771968138425903141064213198718626945212720858872600749608671665410956265082965788702060036711618898800384808049555429821695478634277058407169859730277848204196090040242194851876716124105166940216794148714103387353546607634278389752550714038842407735588993823001465340923264442380606645427276429780604121886420715096478313130815539116943373695439217768165884710837544806178976999779361896252388945980050709811146351068489035942465260704609783803013776323779860941522668342472996154710497594458043126160548241418549678375765324526529650826609726400548639079470971877025105656724624166252894685345891941927416736054505064003394934849030797948121622653982590960999889069584129118429476300528205725473841916126296325248556920928557097679168359696913065851782411417627160022233590739828982956225139869898242050336473746241559140665032699732248209558142489975844274940552791767240930302186820944156244973618809683846098493472258378828628584341227924214221456631329042136727151509146541622231316005209770919785703367677931347882191450922276842634273646157221752361748012293412727647898540764209441556121735427658984643074344320382942929643185393393134556987000728448214218054218942394676332632320594761577770950510246218565691370860022715693325583167942195334263937301005060508800821738050377829687725374175683693873371326180020305471803843389410337094890291633954348369958877452069157878790682858270040172052512407580533776622167721017656098592671234043800437911123299177807898866625287990435885300768914015143834765269097246325586260697076530693393995232341157364553722379311559385612410639805133353919297600126515867683068612419643397236549547736580895100257346299860533555434708507200941613728822515507710920637244116358905323825636495540009669661208092105093584487231299250506599226913869948015894460836313850449659755636446873623966615179741613892246838655755091967598565124489274465520378718903044783648636170302600576435094475026175685026348593581163680449447634330977183152978816286838210549206506012591770129433138001635217594125572201430449916424893500345105523128606166184768510967990874731662476176276141541020496454889752367085014774045314979610789283916347390933316247050659929223384677179823958029955371065587374930882009778729843734150121782132174856157176153118248951691518807970713332652126914547694079001470826358818239198950363877127655398371532536467659417543714288150001734632399690528808154339950823560655860660724219763684865754151186644851996848950221417835137230920147328060051159617994857721836520791026089642917974830867482677178391809344459329823167451294479769439628183189250489215920675774925325593659228817487460726310611353459740705028218383041795855451187496166533398782361180656752687856780364679608530465687674497874862401673463934592104822312667484457620538276465361024220867935396006309643968798296155614865510245151212233146255014890602740206959301075023865643900202307278446671126581844603769413487488423170282965417777288859728228218567920918033544552611658481655251831917175525888887404170621404454149324718500520421708009737839102518470231431709252701984977079231435640182956581748776195563807283707673797749409685390977578301809211264139037261876338557308008375139717833094839177780699131455087659807866653249937252258470209047918172527201109806019023956800474164494590310349069711489671034476490380166937307749682216967113882814407425324857506244951678394940402676373309268640868503783873441407019917415639653253125175209732615547578045432080680076292595411989865747563933337668951923861609543776654035592326053516968642410118368078417467345965117848750393167893241465661079853854644870141655201672534762208612332856611595449292699208373155339790711049647361229540956135714877614248474650896265235235493309828766382705970860392506090540421353361092361727445617520895200028498424122134709834163206060137610425254815734948832937402634468634188125175660367167089746140613627379604806940323876065709911287307635413268531248051489638791439811655237853985014897236025803070719029446042304728230224777274029981312147440671153536569037523240559622995133703245122789131194093911563314904588028001358919627655863512636503501913090950048014977874123512942496411599125887431752667008996481385173377767039773593412532908225181444125837017098534233907072290019456623573610580211922142143109644127592051351327248069327301350471166728004980993655084281276945891918070367969708408186543006414665475893839366539599604775640025341677191577783290529537944160181904927683813277544006995681101358337941202882584779922354857041919857155644573960103937520612909866225355636482323353052598130845033637666310969815537349692988175777412071422472477430794822504972845533133444473944153661912313460192829686013452933203596209597966381939574137683873531445704958129843119765017629475702294002696298970309544659401317179443673127938539474439577398262824495810125466507311060031838211303559109661216568583148359738704664947638481675981710697050419254005722144004537501517015604606904894726154357804728940452343496572148923111684928959441022257808343609347221122295416241222391154787654392409209359228153700133642898925964464131921985979901006773023991713956067491100879586692125581124059867751179861395712908176934781392656829372821260311055997255518084077282468829526409886208828455901240413494999030216595495344093479028803704728588802794174990106673352477866153737258539340633424349100764520971706401343024357655894424195128552308789995351687130437242423865324583570345500142485686249860642978276169974711215718921492115249197972719757725301955774443177927213139440477815041269785674883544263848480460770516057354187828221024496073225464632371767760056148317453167081455703283623295691295868821132760083033815757500614121010030795570618787309200792220318253152185415036514458676606626972595589408470002044074568004516438353644546194461292608202880216301921532846345506176253697322277453410639979700789840884299171824448118799818782077153905155307858606033803069367166014628707247266143149284811840213437492939965850772061663191482032430350248479156811524462027041998395312904365393421919249682421178303102384044854413639850026408023653250035558575365617914460946145088658263673445178231466989763928226861500334940991111477748553108912674240157956011414305667014387204148301106443833530032024917968904754836112696961956096689397903660341503233143100116280758894096812331094623032310225920408458272711321555829308519509782061172490927517636653525928705218347745403803316722350727576208633875877076441097825351116406508491149092286623008030748308142644047655072373587186957494545682084605026243784936636182147010265782362878056706255688733741865183539153699235324133051059740854561284694722599184072595833740567784166650595931440758218154528606789241594637568236945852230019467480812042003404682498862202445416367848094956805084655708837198823010996495417114691637232319120754747441025389487715641814913963839669817246146746216806100257159762056694770340598662737086658790671788183212606772952918184876465504751850361649790030613200223770271707850796184020328936635355413863091146905537245721853969321569022675842863338887156572344951661595928081846081118041632085131706288243842970652573767213319273990208322319257465891763561509706506042044665881573960280321520936813074848167601849241647880585032444866832411942005518317592736411545916312716288475922803232699056978650297754930948162865094045573697719546590335151105811346255014520673945482630228438798088870876105247133999526985780704512928740876306627374787891333840020156559701548066566988853919128489208053813061437915457077395265456411469537454887441969875303319396985025969533699832599358509806529281991475690929428911314622453898247716549062159641976419171206230194036404782123835329557446498858851005322711550952088993184256789435776932880895108477059701298300556376690096945951812810066554142535578695796335736945466501483729027902559094576973081918627969777522007274864790219003027341954890667733282350423602034162728232503815382820475059893305434609667006004278146692200633003659394345259470152304179274906229761464395184018873927375540243445082462060768256261332162427472074675335641793482803868029305728333246831306164756368333330606532821352758501359574858979590356006126426558379486954608076750971268751987963400781018925833589110175844171660696691121373000659355102265600987856904908349730229590157874030596797539259907082210987943886885144625070930928821483459903322183245919954994780893875839362327411006580246324619463239498438476737168707966383244426168292776217960377086213107617200362691866576904537133288460926354398972054787523098959154196082359429539987557079405873129531882361057406038282154041276383696200066318198205901298551652586599714061592565253766726856522492196576266674819193151565155889009733457759918751550978407784450097998826834526825736248052757249146041677533260121259032448851453240689853804089684327673522413888966013940423615881305853707784669962763421753996820249302246512106860806072912986089110826936483681540396687235940296510842745248532698888343205102166864762684838712276600899604505664688470242572481675738956661443998617924920607191550787788342403172372052585319539106448637442674797002072318700875452940773456538633248452318577631284415304031527601469599655831608155378262001217850525968396209578835334692466961834147696538814587430638910528096473744268597100024722104671066836584373270177980330956216431486524780209296780698056436577497984962547482325469224662844639340296596745321571645684267429628437024383421030513399895747619874565509892963892537391728422281206481008238155423723319684372905908901135436562583721298020095807720884902280300966540397799405886601633994211046689197446441325653060939008303478680018200089398340027922080795094312631673305371613097724133679672926259297798910024211497845078207433866501896926320156894097952285563910843513870765732111840838498094543960355445376702004850037004397756354794354351313483157327386414703386889476780657064234318904595452762388899314383258987348477319804752062646412360067914169899392098721892623454273126436618631082133724800952316410047781813236334430609995885493252562397561759109620122897370083676597950481980876041706278451759438815637676479502137394287736611185575378024659019333478451470719136465199383098502644005311071186916640156103316592436768341670834594988907405233032529101663306676618570242810531154493442008293590502236675803313015265649660986402169442383207150060734916226424753537380729492877359547194835925377687449085055800911802000760973442623131005533699071331557355488063379822266190491518209787348111117049972580319425683693605578559260584985915746534206844717298114711735577775164682647028450827710383735936982434410143449025488622638774898589562132010309262479841395640394625249188223447344443336140916706302812962532735205213241995095105055256089548572923866154904020248643059190312738622489497003481707229453310867022076322228539432869930979449821062380405386563677372549792273289065271827516815787516665181362991246337230497149129856275708897619635810383486763112664898419493010865174914306571750306819156686776733430672299171762212478805106741461642561746775599316068199225857806359128845543915772156408629716755987809184602750932235481917662119650167020024108553596122593587238486633741055689626114739212805392842222709295491922887128505561452711245966766143296635978111100214531740233494608154640117015988971086840660199898643950897143415082160069636367429111604728070795864335128575330236440523344329283926187879902128232553821209455862044910401336901844390251580986875042215253292256707664652134990379082180371140294823965846751532506139428393388998676464770726432661844230845439089949377276658085400550300045025925319872943844461394410660214946639955858889510667095358164008794310105619474484189194418867764864358147963992669163201170836349806700644785291764548381011540602336840695070892027630234870942820047595988757488146468746123638461768371410143090547268209412755496926827269453220515398445323092354976991197608535813725849595605139457162315239768479298683215041025936356520515031458530155682973736035004826632808008541417091949258682736668117804632274321246904936727729606332203003548092614902496273494722284335558920002300061301015778749223153642876153333878919774890772533994686118931554035556465959739610693670578310960313946073994626045282067454445352475366707588489115552525364844792237692952426106295989014693783328648711904552263920640930346993846856794268697945064926806922568611224921527554048142818656312296760076774374957157577128742783509323612369462934257397031479400595112295844920969394841930413755722098115139028193312964444619569211012541233490036034964229484909687264730982606636795506799461754055220338287307794781117215002894075209344221981958055408358454231833134207986704567271149817948910459057281937939427016609046273139585065762550604075860309791978215148626897615778611206569227329944427745408771873812887450313130204229432661303926393831385631087077688423156573767106024600973949702350745862005206718769107879990859727132617669831035146779246184090489863060148375450729459080123916099627014711706416756980979507146280055990857786945617984786675539637429074734501491903029128929097896729537567481324577575679437659497548786832017639678996515414315824077768126553903827728535432444272849784624610858054184761329882573622697550858577557823109855206542499140173947629366476426764322343019276432781097024161475551160290618440185253271342389452546811233239002204464207647797405956990886266073409411235309932739111184618167873455045258295791796898709721806431888922844738315846758047208353983910815938945368988762541991365996178273284282746582943622377447286521411408892592942919374906267821534892727440035872770000726460604983875990888826484885066608101511460871408204219746858944085780934626420585038757902153952962963409223796733584552327026539676658813274885712867519831903527170248225127063101566716571019712876599713449014194059925402846940782393016309776758811533775579817433911151564077056982470830708293515182781553846724944623882342589191666338414230388865202036954861719603882316935406619822482027226124807110878402652359131767759798114941874611541751915946858423641354234441878353471030022739418726123335404296794178735986841928764881504315405964929444816181227278950938569352909997352735717357592718963671185542059042072049635130536909710946618910708130243785803801960022617469333288904341937259058934340692348180150010635288214644855497768450076511428829762942195889548537635037530050762942074368316633917783903787180534329400944268597992886760423349780743733411887614211423916685848280983624590729362873838070710537142124573424059792766204660153866639182023130088759619973777114316202080339834419291557900493092534482375496146863728230415459243783497136655944212656534338651457545398913202460356003161865511435318379483520732998866728546506195756011815835224206109983610013319833188187242425709292589044650228417087445534711752106075029456960377319986557141256989342522688950534803342391675292222692977678145755519235157775780352470522941049758417459007945777222816278564833282383746774520911259271954735908734899648659666686343774762026077062631948243228069685729780272817245678092388563812570033825301522299914039909792583024821099775285732878525381049990171690822259463654412703065951525793371635735567458955756198816623529061937110240327575522782935430950198935882337778861782758518022196071096160370880615269779651090657427678840153555447990520440642919113377005742333409250195229754631490320650643117570377388106548596602757551003394037613126445448092882894156192212326873090030016667432018534146447367362619956815952337854429893378374067792518317491390587699976672853913370037967374985667092265490725070659229902356965498870517306563635040948305089996010032804328376526979804849503416900565001175440225472578846013881740562087387695684187180967925930762016756549106733929555795619265841830087892448847630338373494517952893821353324520004113393919507319317737006936866654722784088421736675296491613149681384441000734168375661942413390712630866350843990200323397782370251147037011645610180969455241768414552190221556422035214186946726970692638088431514763992011720186811908709618634344311624970509654053148821023634923157449760014916543836096421800811758224007464084464467908865820663855338453829340881226309422771311803695901891869294680512784572797190965464162733043034912449763084483972225895354235467638087259681433823001125062846626046707274543645674573387759779181229034315506763302091635170642526074422256441081579687180057099740591580534316552895411171378758334439859164310133096299632116577679299692214006599574810875235352288413702746716140632535933652913368056731167949976897019192390304538531419350648825013084941855303506480136721831614973151227532091545929494622913799730362260119037153269327429064815143851025586831136210918713050513388636571066169617210657541828362634495526382751345615230867587057393067998425340161950962447829552042963465946066689870733851453650009809775911484425637973726488239258426350000452937596798144037617852500620717699685188186159563230699276887078744576563077654599237438229613991201536674717042632242605507891029264631724032792865427558308215444179599522168179667118101445957098768454280386995193828548692747219665907577207251044089055744808913535075200827348548689625798103039745765825597440224956970235625915963092824611258240236291796270918922634602727658547223557487423043764846555814680496721306920345246465018255261142367739974313771739336785558213956118984332134256350998406762997749391416250471479607920371405356023378524954693055921165944546265651163271340462734695742498006026690142508330055730003444997235185914534434050006431765447474191621860404081088447291441571184948751883099438797393498102419421781213618082788203191418679963603134088049752380745386063016115986089696917026874590721488330670051174135185693214477165755517692136667231541684741661340995251695516827523579553860730764479900225646552817498684675062914404596418272489953016120151397240542384798812214011004338065423258434146128266610352138929139816305190689660831290265360474494151378923189736374446812754233233073707784048365339449080488722060740505992126369002086301632834951903976907380220682760718349886122508360011367765730776559918199146425998995101423058841371750734671410181954155756717410014113594554245041737465903318221186114155357337221879336518602616113768076293629263915766166999222935430682961724197321944591535240232407079493154449180002570644032686364588893125828557638573542084180561695036246433956046388565346079353968088846402739433541817236564141015706729000138373351630896946962594979705794754894614082820132972519518935399853113221132410561427603264468792291794481152970929755983704151381280972615011893577020842378464603378352121513463428164515139656827982526839129723328408258653574560908187860696953310545710574027006995412333392010395878556916843691402294115554850972113135040817649117645942956479941204724473615124625955068879353074634302887176236261363033329106856848213362610347439266682862036094406717022613139655198961792387745562182478130324970834036390938495633655625751117330651355543768960719911835314599083143782021250308474809679500336074729505908589188856011917642259934612616196266967710243649375710286100065197127173945851585448979735390614505574956539244265918983135120065635731228330552721095061196038326757267878034606730835971113043246774690592354759748926092137854503790524879768396914282713542501465204923740379472567434148871814130688271555223006685956712191434270988336782307262789148800878099544942683824091608373750456610366564821030824937905090214893430964816365044041734254809252222950436884393919185018855152366803125450414248950301958973058743940493465107998426475490081284555499680608374141527596494396577018153182323529804358920140519648237118462864738694695305918064656125570320870510548562308998557478412721301115824429273209574395424876762575911217910826224198926915052864748959256967197282783238402135969505630049673474683167246572774083834687329945431690307644173390795303907195577036497847765080353357937286441935484952565450035678121838088221240696425458456248771026160504602652497875208872335889520480878787452180514605168122306706951659653691249545850716413922046028774325071398019606517053972904669058172156085238013252302823958125374122446822244250666094205494206725995616317949948480140628851484825957425559822813895649811503644519274939357675611465705384748982124041006947963336109856171768311384863225247085326662094255719276948797468733865001607917023957050356116826274894839624407971034505564997956523680140843888449045594061227617928677335898846379841416497089145718689761796967485054701923679010502381878578711115367786427868927149386489918466982424781610336799154435564229969021240920293196575769145251437282301806893874054963992415092859993618309703481409958968408162565939678537821296808779586119629098885228274882104547466931725015146183135886096699882709660539336149531260129732157770013498852267379652804303509663435939017577610191879235988973520312549737760493452377875460059618786031194527532916379569660318001462136313321527846425178233749399845581118545325797127160060419608623856877164778037146123188482389559029619458958677041836085943144350778001095159022155668718747998575152388578658964863548097400298020261171612195425141066310072866822353496313658478873855510199849178719111565769823195757341000344415212993572992012977241215787579106609890973481199945837353022484218452474834710663354132216877394830143548496305548592201995874120095919831978012022636202465342824941386838774378608031476756161917118559308056214667248839138347965588396700816152286502874379253523143363297588456177789932881672183760500643656244061318366966296513046775961536559889970612633208736461838483666738540525185747183662119356608256372797960103500468611361602520701615652695079293376843225289522083271530308334428799229674016733949533263012772640308941290251557806647701823903601695199301143287788043122309016922495702068083400650898112084017982992248830810450997730109216312059067411903380340877844096240022215090502460437853858705211537366672693581579334930458291120844613326349619935694447741374767828246968739640689867644342913043639156368165111496901006268981553085616419207639114144361632640546592765147426940603031551736058431292399070817192156324028284749346786174673053627759910804240272013577385501204682346874974804669268807519460844731034495702962045436899622661832891630685070484967179234782127179964800829330224675108583603626248743286659327293312531684810430730357304308624506111532357394492965552131124695614062440763616870298054994918671058471745079982142149392136126646861978804710653563612170184966790992991178649429981504306543453788504571749411438455909920135057508508936441927716112237437916368509670406425125201882856583834638336701322141073907244196424565145442474282200246927969523047152521010614419967002705554763275142898230961900096271385377948321577336028412689535135547963995472596061793796431174679643168842844622067780145896635599961735962805667373386776319622635417446167463853168094242776659065576284992023368041264861122336890312705207750727254451369169901863682566883953154503176764210029187435668340431515621104135992874796253264737814111822227602115035383182274194609581062405167428083111030609994810711237044749186726100790043489282757291784188868812538604276282559581193433828751567985423017780727944125381193831982775957796921073943208003986764643106922965757152561456252107938318257779093765875017435766163293733148343618865104448221156717272316606125242116993497583516609878838160635172665141727574841242275652551078174483534878163293100396037196953087452626525342965674294245186690171312323007741997630908344658670221623936170570936017660174299977664376205645069074713588221649523558525495001838425909741448790935466165725276757498404424474004534261756806730022890207292343863902777264365282061610106372537405679634886741240842008237985717969160523463118995676579343633732101202449664194511104513410345987839591152829029661994710942732608010408987731406481786372656753195479259656069002105142799893280875624050852651680198957509231554566162856373370605133647228593951736418869856058683457182995862084865660320025203318796959582808737812516016395458106851935562994224888319489046996883935034507465885298552113726432788011455095085893552787234152000535794516623221714244378307051552349194304276114888966793950987220106206601675225363366286086606509627518985801564219550672302883910459120230287080616830878545426185576315300115381131946588754767113216146318656063755806432799199596453817479688853807456788579993269224064319672812631606099143758845751456189406924651958330559704129854693839253047570381892614636745936579163836206669420373414850534291631008339145044051430184520792324513830429995555613615111963491267216006071693245213874752073654422712797530679484118085590914105435849325012792697219584786812456683726971273631392453032210493332399673921389019619626508804963233091600084261762138997516533950619132673300856457086397270465981292149627434110147275384105039789906577415380229277258333901263554094565638294714671630434238232831180946644452540400148731798304382349876964537303135387201493414112835272186335631300713481596489916774871236756398061600212792388366872325140250871713637417409401504257119283049035849145759079165873237588469660942507402686218276080859060124305326051314208588755591623806494052084031261268743509720644591047728677275173431981411492535801604825291517735771266516384446955372921869009877144215206473155291976781844626430355013056333381064117147806953938646632904286820569238469372587981926517126158637614345312642861031680503228408699774366226121951634430626347925847901791389791367848732450708903482219300278489828383379925652423533052809806936103269666477931913866982565984432296792852397825599357002686500019412313392301992085268894355184099016310426489475129460491282640890390070539866456218501188834839630811376445981794411972436239801460782787197628218873586044577587589583004100848255531767000182659851328491116114907950895522072236460979393955839015983789750749942478302660238640088290277313520395765766108692210432261767149195823343842618360075691382411013986949925777085672147872187476036003132816173698056977292583835133388573227414041953326449481205747090440936081195426435492265948252129732714391898602395712632852362095002423575260135128831931585580838553793074401929203028881777711886713091804204216007332860604958029588130615809257283407955776420654862326577897685743647867766352198810995713019259821119560517922943549635868982823720156530799733350326998942418027051734068215287965414453912113865233099729516074158512461219890684270396005445062937857290832197979672435166996752415659840057884935089357250042801802879889335798787750475154364621602204489240356917579704370571090877328842650969104645223966168814313862844341769220760325081438868875497510750393060215960550702569469642765399781600924439974969798214566293599968664081184143728152782714945280823159094145347530037692171516873543230445454104693461536157810943762554662113415075268771847296278469410325616180311669607107640093955323309971340869245427611953320792233100476785682438806131937772377961994619435693447524532596921444688777834242347458128527442878664520687304080677422039746270760377074083695150942117838276104549179565403427670464667968398084524445908242617685738795140556915828955258373781024252921693488698515684953457097220453264968032455418841504378256062726767789238381192976694410484414311283787898355331854632405841956816629831269544740237506171913062801363142834482663981192542322566800344467593193541562035184535724765375481497225959105043154904952367147452523135172683350197138374637581825613751015164073080799076979705178122779563668138947899096062501700220858699560197076737036238998349669288467378456409815631783796454528435171726715542882853882045846654946030949893946667523062406359975317659049196499618126601345545069172034583915165182760629009859991993755125722218277797206180112779624836999547275015782980523711057290304861583421935066725069937300508508025349915848089479362133440077809968548915796862911232330704865604165101430062625457992809119225127556493342824746714114475746160580481649385527937460409268790514649849203070917618028445788427520210740767306664226030245122494874503354299355615879751538732588406220804875017076466963046832174097744068427933105623970388935964203088172801965709402977713239866752243578268505866851323461214684550581329864071231186878682457998561066014159172318108949444865053771827725745591663455747213129999573408646528597027482466922591890987494469978540293096166552075576883963383405825776947661155111711783453258064407406329235964212877935344975901814324029937051417545629662638976981625354426085264510298581522477745186215632916690157710866395926441765670839464360829726018018014378974329119251664890478325014423838460240420982876226887199677984141128522586675906478837657138214077719299068310286992388194483331191479945139488548902819071880162418300881778415205133951905861604030155764818153738798709772686897626792612092433300561595145724318042864642877907656627592668975057941614076711446902492472052044214820924909003205353322688874241428842381554696091534550966722718972970666248323760371640080545257603814711757994629572222529007158392072452731900190451455410160638230180462766171462712004028005096649857336191949909589793469378691451841498115598589090777805148974437250961565315267269485980250122830777461662161618392116139651947245869776170250576285137038300263757531159539996096982253747573760575227898031369118613068537298676034845887783721655208472671924285842493723465002232895086577243804055883587591836996584853251453877597558060390993519538119895414110599535098807237775839033240827427560424230703905239883836410232923442393956323108378477430430037597227593087439675045900040214742271521086661703109058076883944195759362699164515387325509406390564243149080397008088552603776346078546787154511771506960120645324462879566652121672620752162298412447833375414040476151390563586497515234892504468644704506632028615474351624459709034745793329793786651375636221929342513304205813742117444957551729740589898705013214421341255029247855733179369576281063333258258873336936786711714305709344030841175067365036934201420555826634763988879438679115473732657938199133408418732696738961960057352656554796390622729583136910393054645640668239236101597390176360206031955960629609632269526986990482959065452616231965821481871374993936136222154067652626395407652511068962087610728893609666372410754109137512091042062859379436254882830513598817589592404326910134882518989677074525535967371701577082755915054873037557076205201265984513077620021434915443746556830564118854612175435578449568413853314886710738246341133457254034029518548467445738774766156956931130221168040613506648946444253463089879486165904058994312757063270195259656542033376096572235526922405969480697025883156838056948713223443919531411785409290703608479053916604300871565443607905397869589364188117962089238879561425204108735333501409607303496477385066928419001766083159317766142950399581976766982972485283581163201220637089496464091108322833319953796029862485363795540432634900714282166097341054002052681704824603958654266588083101179810565206622610643124643110277586571329605772631508757085767293170107232882783551421124874788016016726786508658753844715845062108327597843352349376550832935869994631381141316869252744730822865251028071199243388152458551820703367878540086615387877147778771253260402195945363989406370775200664030892460261668539984799676104324600302792514639627048488185237058006195356624322675728592220139429631063864902423724267014902697580235149393975917546377343722974496121169909594543179920789871678919342667794300198621977168600044511867073633117413027456233366707199741480717447198743191038412688691636805329256435985306264238407162211881410287963303872377282763570526072753211359270809810356896334430811745370496778797685115823559203703310178282977211283792145413765607509910011422864359375482582286013399881573493554806990959564688406610149367480367629788104764929866198050593160379178211301072188917269956201059014991933152500682670200418777397571993840280638221498436318257599670190948561926518030919669133933474249621360099702720980071443646083748069837759549259091360481484030483337421776535945936393624684353055905301262208003766716485523262863461760091264795653523755144984791376011808732734048530467224986183059147003799129758934681516037377108870077426533179168512064238568192045553478864401410576500772160341237322198300179817253892771108703183723120726047220979939899232559654354543037923858616152766598253580262878360502922881046087746554894736541620589225605026817434854190565144311103833532601312294754404682053469155020724846113523583789939186316207017076972241664011091669703173548031159058955442743588611831519597702048695263885311628467750156219907612431828514805137973897301628623237950744683573292272634185482176451684021995557648597401329620054391717608378674348231724488574850962321949030749563261106000665130234594111562671437671047445559248069529646293537807961888866018434518652793351085281163144708731464587626374708527766799376110964509812206582457393061007758462566401775643109719580944584685498334201025673174734231258422759794975150220094543505414050756497715291795678938158745099534395205196704493571502377941867967745384110122829448791892330897816104699650616090702311173313341560881178088590846783892086285332420595702293761783173880197058202008329380232024203832348222316910734814659259324453473443504313790855756214878711220628804799914573616112366251563760593553651772778674670964139840228177415629108738510945530932715091979811654491674449631338617343871734589652656838458202474231454960209004379095560320111810132606927349158289737713955746544143837192170185359342894949617109478461482449463018638124960488274359348831286249761052187319695693334631591277946866282390733974199333272918241944128155305750612170383501845436091461723612813576915307862636356928206529591990154628459228042499987205501888493831333688600018752262845579149222447905170995987813972082899177297453949613226473500514256694112640017082900589807765374622549060802508287675064350010227173267954911330202371652013469282278530180357731144939315172000954825104158075869258678336671490961944541231452443419623228500639237149363013805740515479410294311123998141793805725856655851329063249358552872010178600735798614599862423915388489284934295494314608985901207431665008889577137712654102613889927752029337506171189123277301182793574996006462856625345118967973999686031376732827630705752436394066789632875078650468064427872363639449166389921002899056661872971068765303674634134459708735603233150673561576759970623639295243802849465619413182948057613864134746864500711483943375216905799718825137626806767936100111241986240769024670555699723930449992000178717488929709931568465249176768794627309895188754653162296587175813263644860182520401956852609296529317490305456205002118441868084664897535370358230637701838758536104913448284050337341627782517203375723698662171401844391388408729334379799419425831607371532511821742862716229215822347570963617364925377908009965767767003019788649462793012704628656882461241502379542777539299427508375465267040440339764909606577281223114388769182785790215591909742463700925549319540284853210197980433967832780651685023941219034759595216272350822533969160096860424114156717609464959118685622144288550441060814470258943915659213853479885962587053852385405926099072260435928008023112907720369790335058593110514495098110063241037782885084607030486953020837703989246455806790241742422671906461888532111319530067594171732542082530513068688914795608259745743637688727040731641253754604899035962555288565716803906565108281434076436580012751714040289384861422362082635704843271603439799672649562315979294466981199519722356539904420365650213904720266740484395919083281815118278810713074280860101225357741929531175689169724771039066386188126153916661952737478483404179863072059149661535970555094084076745692302182141659908189508985283273856898547419208209772870624165513396666158713376206633226296167295651044648654933528880069698168723317122923896685813111734207754489079598851250355203887964832283652110493143972860267567649065038996510273129178735207216204606323712622133242702072906862557608065532432784445090819600799502565616020297233611768229585899021447104980078270519357157282679436073596401399485167890299856493621813592695468564787613536223113186738071892805036306246894890704399732536862987921808434652617420961962761623594494771731414656993563093988156286064334418187331525855141013140194802480019027732659418440341769542484608126970717384619894963792034567799446826181556001160554494204667477180200127954047106439085322646196911724437756136688063742953436993620060749052114653167696617809020887111726775211900728137345034538870704213409593054309427592365294117793680506294309358506648748333000947286826919101388608047744353588229965168769880750741979645692051561385764417140916349970644860385582066235498014759895389435713041261191039551992643754828154712476876289039492344343360898244449832457012271315387254086851359215880369002834189196071508852798543061330534263930229410035497354948691043825348598026239364142424780903306420634551633676530215710969180660132561338961039423656540615398032255127007547103846564698245912829173820332338749976708926703366472324024657367930076364861042806140889166124926549459105304463282469187244436796223398553065118436459069167863497825064880822003875324552963946609742597554392886428256633747022789989393158909068454273086697017332904677396643434451915279376686483176653879258722173150414377256928854081090157643003071735169959559051747236323232715849395561225297073583871395288473162935637264801260190376162320316238370939367429182972543281656709921590447090874425724062948985851261195501358890444698787581841490158157804405432809834730419726574730240319369035703278307718209728435838318644185360646771670978659525826384524209735977610495384714407823861477358546110236060678181608644668748591636855052555140673227130970378131334135011355664538201551949277193599829490915663940595896709652771216862886705876458325508754483284601927447292820139394654565739083570111987800837023605381786347566859547671701834362097274426465321585012318408837674143935683172898447544260798635570600421186226431222989861626497154488289940072350034891413263622964162762705465646894726777442313222878205738442912525123125031255065011990930056341243376029513633204167678058585233785935309129584737607690895446974771510644420563521091526128248213724410814770530790205630692173722283681240600470729552562575594807461469527050985628038163808228194910335952848106248348122031977717828720122032232262165882623089921106840999764184976873547536338382910886471698783257802245137611033548228027764450056111420398331680895491830556780063241119871128657867291308889802242457003362724432760397528193604952972255881653312102555492613251814450389919371108686881676135936026972930845860577081575802367431039254535198362741565113736776236898180209888079601888396347400373145995127919096874940577337442923241179854594342846683394480507070186979656445989986057240693121563114073563192387602431170408512083450294942160121522450429551874711998975898936765550745389963020381838755186426165992317628409128114789234273329366978387470034352148096935581506403101776246741932573621432101214834841086341387092922364571236952931581021551464150950488673644548751189198101491151449376233915316149812973502782241105406370660317262451162212070279980713517482778685091296552926032261453543607486973254511959778450257469279520059757259910928571283131159921405280507193708816960468742145477660754368507131489637149118472936362642182288564499300607883387708547834377884130723966832166729665567266505395466679018510756856158666326165719911332735191273545231428906206711254783337734117776153598606088179782433973234059651285370163296518361862064744890851927149012712672851638323844512941919499729325241765602702996327736166766998981892120412873256627722273294526695573063920798428635928232661183851589198216731951590374612764728737341041758984663622576466092699220495398403230986221923915973730888325401803703116419012580383801597593335779414202967202257799105025831626824820355206315654058414025215577721064057510918670457497301278826038796934791201435018117239605504762779115006179016013842204633030039511575039796364324207053315671721399269672353230873371696453767752582416260669062488435205244822309403033874628980441224154539783787468947829455798138163793080075231030254479439685066962159763138482805396665576133937800327836666764178519278353435359891437017283233318822153928242322625837695847702301741594497473459010406435620907013633895118601412945553723917652409533483524366026054961093359019336290858814213525025786030230161491258100611758727187196068254427367986331942292888214061233214403832336944945897933052752907081853743540283783108880837074980811690417897606570064376147740637390636995078266492790696582411019776412311297638111078130538652512167786829722192684721246978595411974303140137736060730530438855908414289579557662800184620164439490602465776521314505962247409875831045901093970734365261730570364347274516823193201562220987164384421193609236524836758708744217696572391951272832719314824531291306466384521929928003134928027202269848124066647647517400935013329378822423290378463221061157366119408340062749463020147571335945614221859459756437141045752545419107373279259351311888040728642223850904432297836894836434366296402530759520439083780206036357253880081615474550741772368317881804679856818628393873501228487254253971631033776453457632175697660111328723042190554089821399223131052102072700790778071115095323849484990620211316565592343586280208504593093312399652277265892779057403967214778188529014658251336027912968799101093607870339076408141081959045054397959557916250799248153768167453475933119705109973040909833125921850781521090764002442209911235034347980791423752173958078634060452256209278377363450838971723347414130554415428444790451374813369987780741307597370736492997571549738933064245919083413690663481235150437110699190422892430294589713298734300759775095858018263098926742308420171513062419009083010524950093379547198681179313442237489740212954647180786448269278878208254127852680639544473420721024977577576082017358037750847994247053119614820899637179349558765684327912043169499479760334299047764296781300300448435459898578595688423003536004896703994309697124157180386467542472157631538971173160810985902651345667297161409899156718338977449225016675304883163117966967198691373600745650621009541936755608600577923671738532402500042279124489156946528429768351395442573352934158259969965760076821353277589947628923632457619116163639404060988398990482927817526319510497849458319674069955861290677258626501327963506308988253326424801262434640251140901619844721949827747998410768369005956440616569650330166900037382052876681668737576409929785265471577348477288253787853153114531125164105059805219065619338103642930515811965472147139562968452069615723185053580191725602320640947408570382837503377122058801444088168287963108123169369652273794183627601074200321095495728171122236228111703204752841051226483169860403253815532000826650452554646139467265757431916609496536679093928423991595153237426950727757542349995690565302038042480645412729196004918120300523307881032899131952573417812522698390840686462716939775284733652877550431160313853846179243312760135216108546406230822549957308346146372249724790720745996922679986146416578640676124625693254079658749306624098478061922187249892744010533265477597940601893227957675174556118663444700120165738356996344586243823965837008668964613385774922998008295200152481099462336549447020852528914405008087775972243089396268762361611938206035439040834759049936714616717930271707758641286001049560359490403364439050851116362727997346601886674494528542081978502049919207022988528044744178620295932806183275421333978944315038399755327595895944045483167555140395240182883216194052814163170648262432783880197803331432065434884028711421250498820660462536638294102922523209451493921036054000829871247023286729231447707652699032787812058788070126914444993226090805601502414507826237236742075343068422203926139624801696105162550010757443378339103050579344812729106197682419113172673317790848762893024980564705834908758675484173126206093435189422426835426350487816077609661293552886188132542655555755003275912655264795506445093537015221593615623226639472854007320289022554910965681568639331614660065013862938994399812151087565524231726699401311192067556555681262601912860871402831135780114433671706325424745140258900827117917561357251566103085455531622991856043893499383536453252024735527812047810231632176801121374624831023844736673325249358953543953886764251636964070485915868659038027684206589183208941250027073538146281630573492412732867458110262365028359037287883408387141088885684496259553207803606100565751197083571346326235018434281628331547600360681660935325628492800592646705272775246143876382551053555216170305846424622550852573459172640357949265539897285727055156527915566375602332518978983429848309244989887109593938522368009191035162291922956980349552730885328096701608363548603828492075482779344889973830889154279725230205818049863957093905029549802834623580902857448079906915211579461949216759980395822912425096111629190308029165733216275893790283226914447781620629594877334586826881662795045563590742654301684260064592514903406403493866197254808011057544399233498405754221179786025353894261605449052592883542035194317859708929687917231085040008109222349338774433266288569053809073147549734173955418629154955176024502039848779431567677820889947150211962323520639525431656615758619067138342395790312527598033341412160208144587198253771513795941683829614822368221884861360594117010763350299076315442608047008275985894544901062155061585424643738672918269045853765414190236862362653455523573745383095671605648258612352150894656274475658630246335420129658386271301519007284098345787878456067580444970632945072121457516077897918459356673185766047805062219463788975218391592925627491182277918909125903941812231247852862055530414200637131125638549463352846774461967176783262279985530165325592092908093681818315299436200242571158873432591263204981715553961965693633346480750951186757888406723214761297091528039303402503607880648146563648277920277480621223686770166556659153826881167301926246981589270795325562406211459085427299026198291161491731478925581491718188373696945824527777332259018044320588097349750139339762574275212454604339689412413414918227062805559833383416781294893715173152808720170367883523276757796186173211979281197126743704785606118981014926668002734558104561221652262260878594988194328794264289094312331498809766820062069010353876393759223414718371623657307624376624628652172594836758226640983484355473914859959263951255804065515835693081994487823944584662880963345548830471246740543124932220078205574194777884739785581331399425549200986782484079000650547491894762574251952090369667926918394786118814863092156904369958746658236687663669595592228012233377054727003769088158846395434130684583175294424372811276704287603938605467985167789687208039183416565841409516336287408256262687524737195305291991889724049671734264459146083224821155443197162636467517322770179099696653357899988850102707339114598337451180022951107552128617286615975757220802846575868419014730154628691473147700627486011436816509061075738184785351307327692093520427344715822238189870115327169652085196031784002502334876295348095441832621658616007084643318031361921215126413452675459310290717053865281115249738759699293417427274178560763619514075596142355337307525864027815547378680374834023985859027615565729894248262908850421425119669980856869938504194355134067655525382758954061215263925753631958908401502781282487124633727210048497619348609561769789567918681552703832418499492705691426003566862236821466921778219717050256069233512754952808220648264466064836686367372290075349573832391930701423084998245557677369767968143876636464861855482772160589900253091224318413053249200434306039241179891488993029348980403908348693862568987977366490031430395805946009491918200858173974609171141234672636695172303399396596956160672725226576116474186434193758652457425108659845201642474394744626623156698911099146686847068187472645748621187628228999339524348456879425361086049891447956248224183859214398508687154007180653947884932723992951531321055845329849903192650553952757021526697416638195791592060035972551308826031646334636663010443724975389292929680235537493578562574277268859360273285243323376180354805691051618429573455176458491522775768768648085691595040074243427494741865435899440086216227807767057394778961746834740605261747416696553824706071906924297211235882466759286364378656166108379976821618038668429563140347286089962887326469210247745090754239690169715163819632032713076819059982712158682908790595445656506002646677834811443910969046744248168235275335563763025123060944922442855725220783685891631968709153530094805136081535445052658365126659007558653920905773263771108703445512425370007414831174888121681236844986170879733164882900619842836086378937889235353240879262546201989591172051332493436002866913766870662448261917191033534767790716330294458075930949271920299417425520144519445345147264114406136543564189698358363884359434946473967247948576692638765998803762501359844343939256454984931992552691920952361560974460274155941282225363449229292340376743509627830492342679539399368405085152252806281566167158392071442174894288297161817755911619108677698471862950012032614496196347429536152381002041985848829059970505937156488993333894234491484595142180976203995723273880736675535463407193257541465699228526069563561628593793233452951755420528585149975974152512233193622575123114115168540232877728694970913633065509507480537825617559318603996618105952199826917394931617425988866322406058723745642130092657928849506871655743133610619778533226041481166713879275084318384942611076076040783562366727085630299373083785420557014990558796121637861739888542167396806499770883052653581524472076606187903653087349585274741060934022573961763111770522271774998633234157105383937609306514198975085254942424475059410990158330755730050327394296135511136506353656980665721007243164593932497981533408197301234566282781501116646399996302996063071010562901093954707290449497678765300516590561870002464101541141525841006672162051076146891215156709405352759759064304614076802270631600088857232405006344150716780119103550895122245364496765920509339339441407752411972112070054736061164643178097015273556790072271615146187688626559182192655054487764349559767802376459895638484823416133616125298046562524793777476876283444583841179807647120695870743321876395572888332137424193813257651188900296700938695216511215194407153764326342333382813333363767105055453027870869632690828891245366367980654993702254268584767251960184977401374813454027047876700541305366768989885006866913372834616319293845073475188800151549735774585164088294478011091622946244030877095352525751013319558251977535154002659991759426595502165843948764542316517064764147531043275976197458747469199985831424796357765141974559862797388858347993743690691835440933242542818962809200918287708705270148145587033468547300680840619654061415433239475828632146440225536767997758750675123738251609751436771384648360030416306452662013647873889708539683762302665581700605934178138064879143731388806869760025738736417442574238916246679370147202007724687316788669352018722577627649368270159593301680032039012403003333555352135941822582945222253472067045324388896808881214715572145316736873013632541485353622928630141673686932424521135088358696975944730895889120763356270679941550580198471561579867132026988275321375632487271720303559249027937381273651912312852540384472183215558550111766581352402041629860862813103386701065303239797012831403590123091585595912616669176373852695896348203998654592162613707318883064906878933836562183521913772994073934240123513867109230784400350678656622009755395450279957250171948705480571350115125064073290082857607424792841894611008223052509411416417417629038115855667415117931636398478541395307874594888393559402233424856233246060129158101974515471227238942253028197006493612945316646971869125358835883570344756688817095887712625117160951023631589288778581142521227675484085098214479399881760004155128217341468626555487110826313829961087533502252763895414044503859432092333331239923242029620928586470114395564545268084860460251781550997961766145205128824297971107833869751657735722569127813043663911786862244483734591529191766338253594221630100093650851335215220616337374729512396117969560225216025937109280288769673384783680752880258776920238156891822798517673632187832809547501214927490823353282877865276453599454925366391786502023713918130089327754643514811084998440723506544147211346395804989478645392196453611293680343771949568568430967858978387628147580573252287632176894417759992778015154989444607307364750492438983455380120402767123464326674554468668240803938704300140963610002513436755584736670237231081088161324039299981142020031537180134730331003976321780694489470122898572475255064768522539758628712241523036364286807663534227754397034713376844293870093308799417441661761752173889170812923919726710446631665516927512935795249481705927487919069557713801342057806479385852495933093913243483176327549626166865348978265283375109287781374302710318969058736096292934989312673518164434115274835351410859531781077784932548424289568851390266926138307749367141090510055837211833037405536908353249090618697367232496698125747223129734611176664761290558026405156250888235900582846790285426222308439273512342612364607387128224003042517587323553025693009863733504725928661878528247179853096214534913958589156808774109559176628174346765908986175642911913305101912294821557325440571389994345981680705676185988160832230784486167310299705396666969371640051559683835918330392556437323707807014442333819615738309434866134783918463382313069042322838847057581875649356918195758448756783674995204386435337008546736784099778510997271079314252443647022630646683257337107427874149305041713884233629104383593508815896442983621764638939735911087448523727154765532806099240713576815255994158368920653495795634058265957123827294093013213561622371272837756131083910476662644809867858690391949006388661519600745087567164209894063047739998731065975639080182582733443358060042617571688495150905374542078156019062784386728539146500172001023922827236214230129808193984067114492232333083000838237851863027024307551372950412207489566436987182083699003674372247939022863245844923935767631231076777626428213967857852285009944125024667407007152849050816631890678406549961868659544363047658678382741104183054772899949599260254283647125921676012899881933432363347704390208298442843340054209824617679486374597414421448963017589930965635164591049511281309376731314724426770233270549990652111935656098711659152647689046355457205958281762221305680888911981618029656299887766059510557391256490630405873529125447697108035909459110979042655688307556772250595356583141075528776020232847887530753775788698188039736021681782626616455281129057159213151830875886890682042910723709453713322280327776103475423571144359662546802938796633747305649311465552656517749162884663683546853748913486998793583327675053193090084598219672449257831328657336979489462326279847789988504684654354536690912173549142714785630888697593698499874550718451776492655530306461881044446781947296001537509730467241251919741329635511771722514406718907503001588619203489235768983209741761253179075746950490609429637653807674968242245439169441973497867944236787974067447625903125903754745859086115638287339101678782181171809880948565844065927347276016489568510977981141563844310185852982238318470388308124244587055014588070258450750464520549681996373608803887169132697530425195694592814460285991977053257191767618446093061439906632050244746732644060831206387110760878546401410688433765666056922584921130284330654675683840396159240333697965596181142897368328734567088615153860366707692944816010965991703934765819684882738648174603738085909089455226181083821299305843157468490716409636031552991114481404323334142628608842711888364222500187613529781809848325746228751209159039344199829284498685818304196610279348463122379643260631422165189620058501814039836003684062128493263556745492762640701830690374987215056687005557966800525562474233679740626804686742644830487565175249172986466333427507098871322644661875781785753308665818315889892723797550121706160102095094833705012881847597180167405671861759751541340377393194581857140397570160580069393083987223183039382067032458641632950812256395293080860082310531153957636056139760142258027317107768768744545834394077663457589224331221205678749039123457807072355820714239099682987230700545149131349014283379644099314857872322674785268182879561627703077601460952728222969333083049798439861428788494779592821969245121610895356080899679953336021774019112547040824705470206598753254566925958978148093542625602498985040084370706262906745923784261054789877860148706017962015750007744407794415379515969074233712508596958257925886369736210020409093680448361175812435882077457317937654507535460584529468041577761405182322442862165292886656652157217491756072153106800568833733271710834103207917238350960130632318449120901366714390065219469171618677110763194604391463598391745028463430351768677783306070642819301500231465416772748698218251231756815235923175759714822047384563332198370527776111061698274997484030667202009182322362785345606504378195578072232236169486804563560832339491490852155624145461787549705290568727522997630409072976563082030091781770830183206185497734073097151215066335475296895204932840583504916269520801249855855462227241912875804252640778500882968271863205004729431750011168337110835095697902196524109008899086615749758096286750985598968843087680097584569636824812303880331728275040026216426965210722304187729483892422386201788353589542541926115920123704895926243653024676797745905387050613097937464541015895242850392226367866038583676839864327810422590897218906561973346375195430437425947942805528681097899493729619428989852961260403144270543818762382602832549106435993125180723599429406557168217571733813318870111486750646493577450408918326754249533580878069811889420665819249224610138419098000198479381771898240508071214694671674261616431469294705191593117779819471878105341506153419323364865836048447892198957604853520477893825996151282649399376188853782618227033146465071958804745229777130424702520065581415480536226495820732731039001244618499770858463113131987951455577130063961641732495350903053923721420649326429791881899887617034258624735988814380752584749189034684424519060194833688045387335345855561216364343219195281267991657832741426074086807897217442058970926022694323109440222806610929402615220652021356728015092783022674774482324804047398723147457111125869109384895377361687350088506833252617154734920484505271275507409582817684522681887798914310938979552991138069908728918343331128684033916299383596347423097996544536114395215202579522031899224686257357215456906527473134873842224620594855853332527948596877757743091029739059535076744781792310580632426652029933033014082796020687770824027531794190007004226481309862726091088555013129047194449471988886576095980120349212978245076432396005337171123847922006247940858407974120681892798319616345981109333162222687027410472112930188741965261879416612406664816216842669470077917805078869946799349501661462865130086243888714236139869859418762387516528738225785500118677529865896486092639307420054515383685617071719277982657882397674146019082108850537264486923695800178191853604151879835825207006799683562036107485609814945188553307339111302494015242095506213272083357484208506539551196992299291058873733829374555238186260355596777007176683916160413129605087643786078384214328865790731389752637047959517504354056519564020081658859064352161092534338142260036318859261548711522205693018800223098405858805702935499711571903652337788092073604020905604277861133559130858566543645014864144754322919330414886374547277712523086979256761213125681025639504518800869247702639081446220015907916756238314180072645784705142097880716735669872485345327982156689029076433062076063219092993857897743148519191604923520297018879208776010930497682728600332782483127004615680815238074387693108252337902885715390587545283944448218631714676564653547315808387361024843546425851776911729096046519158561841446592069463725528569432827982307438102983636768162392439806213954366001747589254564529400407332677874858996405325479943480203005283508224794591065303477682293541449187609093482048504687539483273595033097874232202924367815551496545443205744515646007378519970931029651763764345270741644518446567878064565594558495543492644304073194385142770815225707289569935350696704928485080577289355545689937506341381987134732733731308512437843799606539451304427873205880406204288980828909896559064141258041579608555265615034517174986375082085823941029354255602015632746471344632844989863279228190830915001930250469200985968803788378750041453698670100622877766871724567452879673094232396536441383271073279749924079702231822600967815495800061872626786963425542075555185683813195439625936397484265603277659265357009022027680836430133115058944062654248388346202971106809757605378261653471012370968384535402816313705768835716541502809562328065389252488799018863629771089249592928728565076247827160211766735187014713389782535993733156758953048808303389947709832219330840807515692167122912677462396282974461608570071137966667632941065368933664135086695911645025438064629922191607373303700140489206856708932311705952398197397485413838361999135717610298723371617973618014048614448198611237428294859039367390425948338200243934347856857895483491527853175052033027312158244008820885176134964607404787244776979936580851093987130931860554107970922998861164923149681775192998573541884089308076369755291568345548363604450472287411773469297472482469672869988781905364285259832670099365009136870801680718114115072044882528496169958498752554076046494800993792666767966518979151101972057924631085587867188952045476865192771094055726824581352603328381979756295670818944271380401415041736317970150139085807225763319947722013532262786068006234480883889766637368902837558721765776697206441424028249033733216964878476602120171495075450908275580577426392280465213504303732448984702728071577810638725141411956460805065034970530607531359565032877616381290795589684905079504237940746305441006246731539439793849207072204987881712788405100734436451902667213625035001147101121753338349932739410208899219529707331687697038720004988515100162667136685431038226604593085059937549546167170807894338287687554316345829501255587058603440114862980263976106688191474985107151309495055681097442535941603324786728233256956196434342344215139039116845627362667395691691460949023078967155308096011770745654083196849716765398149693036658271958204270052247706266509848148814788194064824799655196298915576797140249129928760664790447827073728460725483535385723191094939897057516503019722902991492464277979309743460072170398861647018783582217556394760361380978743029258054734673089080547691701695925279080095996319882147009428642789286237300144831450446244395647647814988371044547354220368216662652481561211531761809810688342955906846087788936698701209803821360428645792824639445758170106359300129169340422793631489667839410967301623345563519759620684482514016284550949349617582445745396848301099460276724506014816887907377714917646566189673103210276256391292815892435094529741048283937085142320904335443837864043692603233474178656124416779008785271920248902409379340224873708340187428832517703010576714000865046606722493720069694213180330682469308939920380135227858834375405593998389340766482737196925806187025400445232581639491545601241743948772107526310313127857560948415936593389081847913550113969703384249597270243904489249123013143994133450109016262103882099316415924212420974763549159262258532094489675311518316667740738532511439526997550032075361685316721197917797179443387490836424388667464863126586021760212382622719823039941187677547558706970709177120980411156225090472699314257068146482794725118844478199203067160715822946323240867618586628111014053953189477338576003669170514761339141107382399384051467940397002886153659715061271715642547387584235282730322409561143417752473884977286204853937891133966914575756885503161267925068204615274807402084860738962890733402627484291353139215121018168626665049153820608238827381632116536968174684020811966663136139185451800984901296066498110171365456377565861931176339220054516498383473855667658511477202230995062441928582885195976549357476875688587042820901273725506999547292342514680333036126260195415127660520342814270320881624354390769431000112629967417684656827587734633013500436373123586326479875873795192823067259172458904849720905067644185718425156064679436342582124737447314712558284617510279260049843910436669887304890722517684908170756632754706638580391046753956121212626986197564569324144841781698288389104164259611655421393379570033534471650560059128676633001700124115082110282512636456679691009290791858334560721181523940815652524479729784771529185028480028676352473345014807898777482252309586400882943615893731328998791412111484472292982291335041597807078879386086712111812344046870028495855538043941803427416688463370999039115684181345950612246464185426990952815206858217472770579091431524488369535767673457014656651407193023090280339098949650975837005502501955049984030651242051551108339620430516378865866933585104754678128284979198644516065062675517448259545173819627757364172855178477480890392076397873689673677352667933889737561533946439836660635141378402931538736316896407843140005218667136933551585785551707586652807835960955807939453714355426343444299459135957122193232339053085866116432955410771385397535941812558312758103027416408676674096038818839876697729872370800307717764572408589889579563952832559038806778960137574243376484683010411082422536653911208432329860562898382640261261729119546412908933800859049377970688154640816235515566735860400840833123089309735666186556525982606258419679664989609771121445582042700841203396867897141798768920435679569847437085169108059590233962606784888986214263115851307920100035556963099152365055524004735740745377546216044491591930832523955616695990511612404258641109744913603945999816430631890745983553990139243686176583612432787312190031379990834902724981864440703906545580677582672008063935627043897327117223486474966601517428095948570336512760341002081683107878919277149671578756928318744891841060790370578379807718200810112831131511034316769577514840519012574916493684834528180245782497494377682208148082898261000321609612921342027721849064343335521105175491362579839394439073493990411730337531314609813141798976056208932820909386494374783047137270857665760493676117365895448737549740044443971887063375544243907651768250737742074022975751983224747781044560797023793577615670640365813625412164918149515168635868539727900936738371414297776129744764215890635734563152055137658359667289938840958777626778904038547459886635389725795658392766655272967033113613003447093293800114044985039709813735660396966168229801020061665196714053897064302066711508308645937886336166344265223562117068248040371246843297151309225467005892740840409468448275547431222415867910999328225229392972792242036644554682210349366026463143424163921994776874749297654885476111648104129436906121818403974500403542117850270174263461889656588807150474367145819101911050404125026618693174483748068753198699334344287330644639339970178723680369784721491019914536689565777398340206008374674534671160396706384190672093409808822664841417429658797033005137764119642972085995549229711597697679481746719577061119229166758441312440248004209633944951034904451659565825253231154664154054135461261081272489795942642184339635239210876959030654666776545472188548954699845357748153138528074894129517769442656837146500502428825292532789844936060799189560001127990437930021627841832412837241832552041201275214078550040386817652866731760389453495940527988346589488570910672683931590557016143716272605499684721843662859845826587138443574267332299362586745350828091342081414810464128546576675951552457112061758793891158967032015715555302984674092833974770393391240356532920148399910411938379105146733479310656307881683346455770682843184965072564201838479959415513947649539201646489832624543864558716434545494495603555171072133594145897920503862400397821465382193138067562788054002653493441904574061693599728282835452787818653341878759428561886219686902809355259372746964903792553174510555608562253464375039972258130884091373463553106563757485486800186952658408170616358912034507905531176762235062286356797000464807713893393674617303656844963365050261699226368523045471925056767077871930806571242094569983344273597600636493072827900291077661785650293475169839611407746701433908956799498523990152275653875233206800774428689007815921312206217728100242123561641566913999570355655481023354225037627808247875404759443930880462781059335570009469689997560115342934666927496542466486297526775079953820733566437469479428298036389480546508304509423155189929021107514297400155799799019105492701830196586364748054639528996653130119585484210850484326438316507174084258850636010106016697905080776229843000835756148066817865226414545300553680232965944210790584200343368054932065141770639478795120853562225339478318211952705964403598008197467192744748234079725512617167899880156564744227014409823279841277825502363952742797422841009837075845900572367111305788860456960248786489330301904792063739011938709837770034208711457297273044546669722712361746307838178642948866113488284022703214734658179003232350591006589493973373811160593098280973627020224293170337651006538115577143035884401564943609509538533367083851695165243925630322362153657639286272868393301374414808965964338610205191868988870090465799108844207522743341309906456035184945756920527562109338591364857062397533443529667298427024885500646623846273940818217388997833040098095282455580563145806672837469748908033141141414909826555369919675845273071529183436211367919421060391712238254875808934369027118007700667685282860636107683517420553074748253071414805552225376676564612424284695270659172560226158297714392105518280339602371778945259366877665361993150803931874190923396443435828258680763996790146427735565288699483686796191427134513445000356312876069312587279877656258927650555885389868331062632905809915676297354367504328621888723000568085659575748399035179051661789169246766494005664275992494990107545487215461106253901147982884226539551489431567977465060607611778663743669906123021346718328597594088387058695975226701986450209739103050696370609842146695232700922426360825808901903004729783487314265008186390994354227889579727382445197041574358503636140712157413826734013896039856874051962943194427656464041897724559719302027740178233019376576168365842427175510363148168911790722772814674358957097782883606114028415590641249057116516640599459651519201452078515659576129760040155729102043610633310856120791207705461115404866025298062415304497222525038187898431262344287460717266632792397229451719656957783599329249122774602558468637513462680670172901470760516315382443614783490194774605389205528445015702324941340907707564582009473270533877997025313073316690640082967523085515301494013974413476721429230119198916864279862269020076798733487154885904972151038122929056593856363147581223020312097822500437699907652349208674462662053446360685353596143962071005025223992956262031732594836349221300501842288016512311297005819667606261230495372763616731477666301655295426270846727470218536820358366690657420209450930511938919130919104322103624170097667719824400349663237665981471680220876088364696667333800745440594394251292584366039264633576304430129818119352562891177733357510286924413176123661157984721975304499552407790737225955711601888879928774618419524025338240165584157640691994167724702588876755421955753553676870719790408300102457251422063601417832041266946921108338820601142679219506628943407326701813139914145464850264653694042608056707379199036062832680554300767673658036819455178542843022111446731461536407326584387782525512717475272737946576166935527142041662119411892710726835887166174273492016626308761770178144517264216508202557550989290986684043869371234339076305778167691896440982104191413650870352442762605561789038236963521322485499401406420738771565729225730234431831589790886809185489681167425152745538945048360548284493289240812505223579334857350903816185294103619262521562867738506707970594939299314048568795360265821553889741249879461940647467951636704885534925997712858522641759755227562302824629385041240726556958064183768879693155578792413795614134133336705926136200828714135432538735514621663133793468457888609636312037406951133840040009974487886858928594115679524011162468387248181974838555759643666584236143837513342014458780568020236981032312089859920948327029238868343813048798511807351525643409435548873347979390568420154608989316040418760228130297450366487356248520929973642728520508757805937273061416367320050465627505720758788742280172319929024512265191275008901159729177554684809193619115489517052261689597971673433730595092067253505013359627162629165304271438038147901264682099346435221419555063362926632452122697155430016249273786195420973107700772341841519634693105884278839177317018549675948650191920057776624632883017440079703761612785848668529557601255048040506404686326200198838402058965900433972443397505929508589144524549400124935779678236710893982501177695938581577674220318654265117423014079207284609109183393539553437020084966232779209045866863699648436522297002434143336910341604593826159768818249064367255740993344796943784288454047333525408103340752165216123143946914836854071345961646622681322659064658983832998476168840239175719523457399572377094218088254789220787802107940962518818843174825676359427815855990921161106881302681599385680097744183314500823496992232977021739087196529120904557688684851006400608285487006430246017356031993631307607387161488854409838909558406594781857616756379091030661270636841470597689665148928327088787227420394741621723356419400325609115177413101221349290949813337952970029802189501255609461718629898310399345322849860577971383553862087042485802184908688649936402724794106501700367415850591885016480330695011922911013421429384053484119852089601215723758638933519538973877346701386275238082867048102803443456534098918163591771762521645076196714032824598524031121140151941343256027060759859273693781496869764851191955545388106126256647354971281689727968668346334428260055283525795830084283989750559448093573195086949075290515182919355357070767074645743825713232781953254004321275540092660913191342124984871749408536807104868198714024092403449211072036167908963525926587802000341275152578834058628953428186837388832484323028309424764813137557511399396830901165189162315698044997759363311182673918834311291175869931191493663570285509828275520601706689492675947329394946887592308225640787135178684594586882937109798582310284336411003524559481165010927321176844853140084900974013884944401103133652646469883619501415093852531312291477617622898796479442750986261455597958033758617024512766566088107777691958771882581813296558944731399290053385820037150050095689422685972003184898157985682056450338215514106109333055739821600330055970825517561042440796436125032604682168558808496654133019831641673255773525526099516606516419088252528722612524789862529026806567793470699064512903197473279336398499697597607458793976281820120116261914068426678873340701829998702908112799416133968923946156431290456515206804033155915516241345073271414053937758571891333014232585449990253109638094679974031921935919445181806954806512481230228271843413024757943021961024065268529510875608702508542719054789547902282271759557337467325577857945728473246458898474116370415022983164487384099592406885729956296426294703987390924550888998372876248194896296297088232697683855237845420193669145726444214766774670403326813543989084042575081540599102463032158678384364478283726493329647101118200556810792970195479556023376421381382027086326308535739650674842069617419349486726794868501083793528400934967873635411360120807751612357001825790911198925206918276372564333282394283223717365137937240413469396489553972804358780668796262720942578854506405779659935677215159322368729498690721759388337654648077633522687062906270977662391371745088234674953979092860610675838821830567320316434032830557636020672656940293529537272598695337475470015808340229553823666045476672312674947136374425619071197279851149811559968106233552591640858143850531805442566885414256113662931524830832372075878786907289964909566906460050089105601962677770495694964518521763879468165323700525327614993706306597881933054815344413186852970592632383590358742555454010385924126216696083223020415870303938020333742395860380103225707821853597778935791531099746384222095901671566460261812002592731535771327323168012009674630787428815770739597355644554385356152261693808698119822404473098669398874618469897405872284050745880911277949329050003459851910854737587555361102588063695677228110960447543144743260167466927868291886370035846554474458725442076986774207055343621452290869926853794998591818394293779702280393182459277099821120345160549244435001656225443559112157629846240881693088129049947958121741232023410438519753264430444505510021177473069818630749572645332872556172832332756249298780554112899584818494869912737414621779807936811253959406363055459510327049307112879699812660161197801405746364878006473924738553120665742231305744322825291558565869222995175419196113493088446928192657477751619549146557650131125454665332455888183436028707868164054436755780833998438172533103081162449804431228563888754823933713218032067870174072783540805372178517260678151082492933178501834070349219515992663493213606965317591603043260076310424126426707188410030075735274156999441377339464687920356724272926969412571995187506231439203949038383275819402562875314064701352143962254167078314104013669918741812355780742309754935912320648864925490628457184538782234467419979955095707298174163531897587317265124111081675590039836745688613025710131195729460213207154074075105356855704163289699165051119610205569860014624449443679510390784223325825733932854560026388525785962718296358339636932334472450567662441225406882809912457541821933274175690465545924450429438257532681985982052295212249638170635808640965273651901024806825074216766395710170038729852876080689088997345551412299672094095341974356785460572000334077147595992507809784235993712401923150742716222731445797777118938954014236441927931060130195351984801846521192937040317657215707657555729373697760225850409231337444728237930542719390821214955255492326747213317478615568437836586866966061725453841847061805621109972868740722493518884956798094097361909803673558018026222307866883427944195183045601994699809110080974354626456518055963641940802757485402894434640246736424957566680598361827798950159053730480051500718892078476888633010296130689688322383575461830565799377694373651151862155531213758038451081347763736923360467849490034814488929474476602009110163285827970218342447939492591998485223982614006909529312722055159874028666054265939796347047732314300307616525586561925603661330808983152458725396560775855306985849607609314101075776900869925667512844617645431575268113939904367001074167345093934715576175103443454813942026270451755975786615753391067747730149620523265101211327133745282136164035793344437549683159652400118238169375965727254709835841159170426877483288003052220747814401032201437009109251854693485701280509930146840827711500201907170753607913674257588989229445066164294806539186594049894508072179103168970899084227677905043560337489011909086127321885800973633294306831622621457173851433211741225160793692795105439281559196403823175964760504017080938455366536239521958467546764330843493192609200252255809293855041353592985271401889505784068930124506804136627007990720977314337277466187202438541222983736852727410815017738616674667665456600472855139592698413311536400451796213022836301818271552712424478678611111560239274796614587448645807869116310482453079755332387238320303652524273207251948470573190398958953675333873543119766380426091104500657087955125759417516059444744454509103305238314465951329985464616525646891706849965246695932413727926415205807811822354638938185567777725802773923577097277807224959872563157261796270810479989800060345856451916590375055385215953012913388804658495573021133284133617834170418309002113640414872696404607479043526606217954289294561139813447422460286894845794732988053803451067686970512469893814926896354619327792036723340858966338628572956795428079986001041424839830199677219430200875436575024011414857608615834364346410019591156370625589819059637522614805913723490238638790417892262266929253639270869542178738628649223347409074419912548554212625733057998001069699320492944220998605638324646604349559640341609109071101872978212406652386153789270327845347798715546682791679333364567232210430176888910869349124451709701854827330414381000308838556029739488835752740299547487067057202365019361799456096020774940311840070838421628380771495198029312381965090301769518203374555605078178374742643328767582388759257133055180998649377570614514717700905633278463344558920800880224719929136740687445685353222045038086960900915256004969113455659446204637744654940871391794405293606092407067433667243955921856121370211671966257768910400446873652884271402609477591569544698109335555039739051047329497384966098960276866447128689113515474272607142589787552693111152288565715344198383859662078748645025042198123143222731951461929298838359692487913854847579559032313101304554775804581680515172896488445962476027592192613364347252508311772042650548242658991340255909151281171689423636309294497435897344910732572803583874902754530354905798288693691563007706532731255318672590925598186693467553620107180204618615721650959575426546028473754182441865374252593722165545596234634694617412219245340447478922810124285933346416384519773964690540894006067959233871153376278140734674808625438398034303757874382080745799588013064124381418764167785734179583984634092180084190752362429182688284291464791291280200887935694512716090144553629048644869703928965777222802950212021790385153674922783521569494512333737334964449264874238748002480658953258468838305264196992954670451937839624261963900134489337080678380593824752853428106820743125796777266539905810770247444560905465449219238634542307045031029739444038812071528166803675318908312769051112741555709151881520942274533907186412468183240949478307535253304167000008214310280718967937294113652307205608899756117393352530521186624388687521465342238631462760245386040479879897549130450252083650815949144722735557124210794979304096741578191715333564103067632814420625089294274809856088571311089774463624347069918583041952297164185020486793119859933757590469913822575597139004708207261006481481327161482213292748968573739718106532439681884366799024495198622599229546124110123718417584178817257308424888202742270740072171446280474254290075957901669086753118748545363939830251751764820836590810283441396956254734199370452950924287535486517818722401754277689036177175826495285397397689487198863268177135264275624189581214919933265550075153523726153838987249486287190720757449176734381492211604170989014296197859822770790587548977255717462120828216559800550377194532237951377943214964069099041375909223250881116353540120112277225104283981709765981529921968631661421504748511478242294095881414048986085782075768762188128660522726912698529585008836526771015719811010529355288566563928200260460559550351267963867142736929420607899524362775326155770804322666788148670428829382801189416440709164493411018050992751189579754760947298665533211193479087382593667757827985146241135407888200503471655296879046363560965403348455839525967438778736347214527959532981664287449134922548199501211450256981718724651070390779054703076396391534369333529014835970692342355439090106956844293645127648636914688262475869995066724078603241986549167814876886310085527920267410873937549455661562524634286852742260684592605571217017482127730300731127412255660363572697530713501105731710545909764811520760009283211236001287608781208485621655410322948917794378971814781844130159801703042904694032653395405316775678912250569419923777936187053864392594429425663090180908852132445845096061912030718533237260620539472485788841256944082985370530959065910152754342253328351080172114826444021341128611318311594507607117882178158799239660849138837421213126442070093920394242194088643406858565031812207434164647403846685438370350718053625636218780830963949435602433241681626868357189618148632863910782541385141285209045206720522550449335353337597852935650492050637462284842040617313399322533016870217402831997044983913006761511059126175370806200021892637031250825842824083883723692286572554894058465677310206752023679401272782433954372653938540518558333560613591301222599104743009346908021425411569634890945320045865243708140980966988378261034678672497380794422360200238579109910540123294032084120495636322114722170655529877679331786676768173379133221200276045264088444150361318955426844998378745732396973128006892789285940052182147326645731035431639073792663305017438678746134872785330588689046560099843595274340940326434017790099529136604620478477871713457743926449207914782096749703835890341456098829433074592793412606700990908111969154489436570165159322974638093982392757928911292203039367383148311278085359468904099733936734321212055942803427149765932875746398602503204683422463550694516288339920549668063142674970258564136669345450672533953511517784077096513787187506272551860905659871624530412173379809795166217038846565862687963014193727481588462000438395208397306974232155923182359376382994933490377949986795363584140030643684790735816739759714814275125587509287138786211900446603585043910355345882403924790945410435245034368993125258224793985746478950838557372875341035237231494350785239554148243515813069877414218889409546809013307609650533238072111502079464936916280004824445020101313706809708045398135100484068638210371702531848978684843873524430326907955318385445993145888717601280642756026968615296959208612682468136625675415189000426377262604046279321952674264436016835544375202097584728845425271758244372175284594805913740908590324515234314719698575369484205553588010816693176207258417705854622663931919156932494734844387278572644964710687486582934513210420547162843863104008989936351726129036415513544612535229679433034044751976617410344624858494125502486891456824778690037482472828308551125200968315473804783514549853024768724864203449683951999821892077973630803329006076121647590190366997586955559180008075766811890130634934036599891540024344533752892055358953653370350949248744363364742264449679200529730100484554043657966748087410022256123944210888815779235833626722940231175634091309944545796071422427868853234428465744765007489223615937205738039206494663629277944199569935483900016039175401292008586774471989933116361621515424194001336483921588211239024344602366177096883080042492829073670538896820956027754929125582406653157365303125229503013083708327832856781864893601920866459256119176155948461821806179884269764411633251047607788606144142209018209681732036198648226286527717615997241132957863202324939402376054703072503083130538089230767411245547936467159988459293940309190395549714266813750565073938833404919874586595365549577984542184419251267532798096008309686305489820330521357114356947035959727722030491674082388325714823749671500754937019788425908784201516972576981236432655296920252439666432970667602842558943330796696344966296980309497094501708483919215607215659647109891560535232770250188919426527103609277231154021606113734641448313740789883098018607966634019725942287887146723241827215451571534269213077758378421982333180610965175651105454900579618743685172491195310126301143257995848793494689680693735599075316307921784830224307484360668529753217510547508773027934932646066127755076937317865414009186941907195425415454710192714883622887270423548069644929025899311613813522210857529436313575176869690212942040643317065214252921779333130359792309218825453746983716565802483462574403081481598735759078784079337557424941437222712507665183847459121267638018913259381550656697025753024668315183964476994826625361858123252299386683288155349209481668633033296587583866512242010450070797054314566000613607040242808984045541059683211559388159847586395279209191384884820453577889606257526127965836616663369715076516867181419290090807303834908473708431177090418130521929316189658439418409840777280920820931290853608359501827679382055256133052992296419497531165664871309616615585938403012870191625682938245154729085189836801629145028171846516209340690257277825161341455320627057503461176592453346683635171184522962974613088675003978455974158300347085580808715346227925006953165081520727902730129576462050905452479857712532091876046711581169022306294954610951461699061277423815553060906993707913343696969743307985166237061616178452269365955939740435584045982857205645299594340367612245876817326475189942213621305749938874917433123830942915988898351406691473982495301612083133646895631830984735789894788104318737703705639333626734759266372002915942981664246041225398846871567926149755634634935860080468028241448267821517160086129065714433865071050469479889570761796472405039796187724302612242378352027082471029247881531027352080819516390817210904665665615202824019938073641310659316606297479412958292766335586380918106384994235050792308167856076789143393056541497529442352742654604168175945040169757109576109560795043872282028721336022776746771488348990983185612964399059493511304469544539247635601795358763402333024979854174276486235911467235501845548879934698621397618404923092861106473341511136246545978895065478619177053163589102606113097482333361032842231749730798940665915964109518385486857399563895416467214726824951515857881458799885089741448793855204328591103510660284949452937306316800890656744777450382662869448793783457827221057921367902327147919723591888609441637361494639168447410704836983174437788332447176025715953087564107465406475053058907072380953491263297948462600357509601946798497677840297229666849963140427338087214907478276049068461254628409190955147057096010353117572220412482214104744492664405293023285589594853872635342858805199283792468498419939587963184361282541888388868634362399041022322372751456903307836984200071002106247797538150470924620512324506424971680874555693598276712050621843092038485522368876070206172687520746168722487768216072112930098682381136460749554431773180184262437919074703930864891251577248828533930597171522670807193951444888955590482527952451906715339159417427489757235631329147252369160474759687148177643989129672204851348432251871998068794755906381747912102282651449244217332351326827399536482307202159278413851208457592758336968689746230194524648184356746444992117580021998211283049817004866310401447022857467460253455089586875432570614856634869150069005085903774358043952844844137409818951651163489075576587394361820613353202823292937339566271489302637276970526717037325228509194949640994296466641233854157968060949102641027513613369997101722566975199702835768953650528985983252520856869459673206997679904767271434171599608433987043839318165533416351482231585463799171303775703333748678066239310452094825908364613991091387552428427426595950177176879573478223127181875277571563381903567212588414355736143640317908322614627704109811689526048054119001856245950496884536387869670209236216022486624140576604678151066785080964221630300890052107655627811711871677305360999575558810567265090134659978306427078029096605742736809494198981922105878541159626119049872935652050947577351496265441135042796668148426955017655451148899973838009407643135639253205604579065262957420565600260437825012071908159569375734684650732453092480810795259670256759021342372771782121592479539626990916218450893818147420895669366778169219180596332802682752703379425367637746511615073110575728106239704024302454708786657666881329286277677085572408149442207326919030029177954373490583008211286117183167308277055166579316784902243715908054877429644370360624765019283792812500554035312906708658185022279667249025008564415214709984478997004367736892014981713236627141798142780034144431931088115620737026207772494878963534059011999316419887783248724914189289774684660166867282037199636056864996276017285458784076480368065630489582659067980076278206254529053489383549672636229209962261422373005890716357398927400083804582780722967060435020383626366083742798530318316253269935721873177399781014557905034452090829580919905852203865932355171393093289435754861769058027887136520655676167541102897436915255772788143796972445579734683572037953006493028010763189028299481610466765913304282535084294475247043079214912019351538627309411684391421976204214161920746045512516849486714694973495570268628998351507979401272557858719182224569802489511040169257360422662670706943317491436547424772175410713716683692906162861801795815518665820416740737785403176278208827310871762890783257740630160916169003139198542905352786793519504636541672617855879620831443853207390118312876536499399122823121577723202142538234571274294678222361370605758514933713935569850005357541861981916164197444139999432118372996389319607315968029784444135757017355955140962969831067144755264621524695576457472132124014458819561155057481441781000796095201136645886074399493588037032242050056063207428069596741058927318527057383649105290707150052642792693575999535995066352015543002069579768060677026388254652324099275250585284768502371260684146375882969401866964249745524736559964698239927566606045296920869330635379644710658826005352640309432230526075948255549849513664870793145189003432296488791544576407928641456423333511153774627086694718158993510552832805455795491976695895237336121838443857706042197497005810266071095895448816681729661543698675694453672583032027792828672673157605674790883536718441058767946922491477025193804026390403423758029739080884463949129819797505309444694677275800250650665099243332444951174249181501879126380713654982070259687554587759994777335300635136385466297897444910864675888246331912739570575492534796526251080496920692164443971705209667262553181996560997477874049154142074328582340212313063965052061818148411130632803742475203666691135587736164774385735884561844696268194007807709520286051945107298211925394580750438780314445757022946642503177198905639654081670018754480684285081037599423860025951460719103490144243081045257833965058766292392631641375141783687599590348385212659149464757938655721576136393773152249142888626205554460792253645220122628857741026117400698301881214047308581432443746661797929763660004698114813115732483387479309604067601615076440006491590124030943895227927265365730343220228160348237676210812327089971850713919864740532001586890813424387857621037662694005368221894542532158228908047218522278330917072824507296160451941633587194550432257976231823814887048799584329174867737379801006598232536941278134371564465952535737948684039985049783396775834498899399597599312800475932699639140484779757708139409737676283489973000343980979658155487217919010837794726030076442044765129762470840332980499430472967125290297031291296462833428009672411115456327592656797550024964821172474642253195171989466078936373991655035352802286138502336751678610673491283975972205352153472829693474790231721095823406753308376852083972824154230895656630711631409994800476479321508888521990124091454003542655465792585074262120021781875973356835000968883184949856780232709392170646444656582382945359816322292987169564806091600348475778620469598582140325475804782113937326853826365111684868927735835829690846907040967422290575733913058994194336400937269556216752552296509662985607545016942139752211738817550703727871494248687419816787067655867680231758509737346599833511855416678902479145933414752425509820054846046540016514402115046190221729023599946957630159689797514448441329013670506464799711866955788483658733432438637729361146817402706760954219831997999851787760839648589844894624584990729278183654738186549471293348698851220824222922059171992550610053695649941289507207603790645591164827631311211188923817494621888795912076508968697830600938458870506750299249545450745281012131039502388132781446007607095307072602014518783875686928742098175399292180885162349510273207875825970868195596950832541908836061120254837159271247162976223465350987504964129278117778678583865546391086375135359965423764336745390331807342106676557721657672655679911325391556759299073515041284286913768027677965993584137172065398020905044167246084421118624182388304863244684937207079865031512514073155940365193361519906235763140257658543198148074565498446948924342690036894390960785053390953077167279742834684217099510596076823031428433022466644042059132383908636239442722166169275832945879433239056724347102811926366254780576692650618349960094053903839043000120981451335929633892101726034239759984794612614291450734933975581190214627539635124277037514589446900451505064065935667467989045298625951240750934467537224021350145768113314685895046556890577721371142833270601240948980710385746422477213746971922531068444778340972346514257876063584393416923024350105753999061862597105641523597115880147546676807501907268351985633375912279084333859571421208835328097347825850931668460995129949209772225552279205310178058734870982833005300906925880887924057414314270309156477683158547602157275709024017200265273967629258463478603512305664511376687263075245639875926565295444043571590645379641890285920532598054446405452909850868408472596698446168209306457959257435820579228793638786335203659711353645889807268544036554057657145502718309751989985893731665996609925450796669535520682349233592795247440312958716077179322751208991107293381759235166898852821439096744761009222980913727260084752094452797776463676626664208264335614306675856761610739623238292473692732134741719305318161690756502348722532287247538595860197502466752210860391483226947285848708931589930450795873162384188574524468256674830401289768175668431174929083360378588834664002791537087013640579246635031160387329413254882243858231562782969431214824701101964759316086975695202948308831646046940128146256015332332672302938433090015812020987372184043835362625536176139305965817982205639036568609939735825480325615747561705273811182890198099784539863674565462682601368718710744550373150052693866475548423197513223149885415091217383998730920413221619546853994340774563421874125046772420472825276002117232390209073686767399084158662553783296025065503928255468531417451619420290803843847804060144797989356066880531179254696898577101829755986566053392176136080807189946883457024072550943417961897036772335251815107018152184559080116505622226912266082975366328243197698266925689741212819507774420128945835485341671080388729953967457700997951074246196300496185557519763699406517475564924121092704497253628407460586210878632472207090853253687157967743246170000833688219180760271991811384817580179639073136142676740116753061769711991850754941231761306176723015870453601799446910256763782371536048749145064816382076763768411656617771488404744597027172401518799856479914129656738516781439468968707385851961493905926274418573790837803767555608623241749239567514137801395995949326980525498906223824569995075619203831401055458461684084333993817628506241319885730401634554733113233471460841517804434547071960372454965751509179804478819228126151533828735448379441727069111425979867991459180103354248410772686550976585466833077522651818644844855321989115512449775328403536277803375098868486521907676676910024717475348397729077399271850295112735328949819926856202953318316982312011825764041410302282621779027185670298560987619802450137871062397266697421337931758484871015856173289830479229016742600433855332428782502262023888353488808715313076093083260466416700282953485480305517862431681390593983514406627527619583146496815522419132609509948093418414891588124797886062606924187548589654953505649269853382185792166176741414714692578069514822786475192512902488038755904296650823201037505944451081099258162592085128448110762590649859540991677934283796594445482318595490125385860248967986617758881394276975735201351790025452883425450002889948041637135751826972419440317349873266949721332064204882693940972223237201472422671949259421406170976574603134439031382136251547385247741310508509805823801743277163516853080815541906502353957776164168163371542595505795614404492357892522778806643136632378252097193329843184988227484374866067025949365618126895697428402128520007614139036922482167075865826181139215952041013248312454963298335020525215138362028353730318713058492486439556735893030262326506515626765729862606545839880510911647878779305888854570742615465307774043593871524453684912168986327479326346573178133782275121144823211164056740467565705407683468716619327763390237105130720773352531114765960133700915370676418901482399297315473149106372944967731617480946792061494704544445187405468718755045757149330868994321062010019671862012944021058878138076954629914768591571529948599509750044379810204525972156915993206213507086763403902940804772350627365789880098762450713561128138960279102249867986265348809756881429403837708088738395461846727541679019413037019987299560440940212660282204182890510236056143182160052479315953770678262187381529862967371090862859229542421607653043280949372124342021145077114292283743746599172366203940556700449264910320829712477670494574574069619145779160187315133569017730987843075075456459124321553875717862287361086863414247183860212057073611026113329415337245222116696925816872386123900691862160672337616678852240607533632148875183513883728587760188721909849453937332735488214751239311639589873596841312419762660632930774684629573400179177805060437220132852845183491085748722227196832773695842355131278113682268167525607529471141060157584833940779704986140564510710150674075686887477369757647777261832494621316461613952721767179308782890755636916212066002320862776340218906704807773149445337930020870714059738363478733091205365994243057799782396797025267391422013538955290986666150246404507644563919178883353838254524501121103067760326702329351655616803654341381625158896433937115221649290067582464343587088260241230752455935658128941791662139914560495127883311312515704162462509950486475114325873476292340452194367161600531749082948533483627135450933618841855351662672929259532215800216874495109018755766816117979553331749575252948257521242840376735302201501208761016946479741754150945986217834209626544820258361251918034826342984056193608592107429471560405668273235940621184644840472632828971699486814000894294273183176219854645280679003263283967375006084750072285859183740371277367386338940344078718542733733079520471935321328972490502777875907483988084937516928286329140233221998697545688363106675135567517829084689033890976912908766245225567766315427878254477196217684012955162645328015299711922977184311599069494018483195602937353604683661328177129267297884102239041690670869903997136910469942280340581237609553884580025383590737709129923679705656755742998500498400624145359433390029017318312177530676610239574020191353815364046770475404104940210538181173389515716755677324476219149244823063028570918750376792436487383976566878825641676090928189024065846783167656672138115107899244021932196327599258499927572471347297122263825550505556705635863966200371163444569954382166128818981296455004068026130563563865039338238089144064032829601778592067877225578495357593854511358315309937210552560874430445333100095057088787981211082539711375295785847854289776437462845179306523628238134945467388437083095635925406771570951958276202025069692496370722934430142867617310143677571726738158203944575948781074905889608620813138639498297140091789743497405220297639591101755178841743286199336811457152380579918166632637941997447343822650788543564967143071699305325044415517185668233124752584935171124912849791421506550940432403458002436362986520537493098063713543009451256056140425632727995223666292710817242063363078813642153466950907766913201299927634634007223347404356356407891793268576299699274599129564838378669879692636594830122986199586079213514314340264721637443063479672895460246283481484495395537808637260316290806995564438105512625246802381149419485338755641918728468229502833119771921837696459621651399225219778292390633978452482473250494278180428579968986576838247991120220007310865907026630536420590512722907919819436845889661832472630049958151592236251390845528185256532654238424863324939773314288212159439517123555730686854024597500804660316540125820112944113033039978491118897959704608276599457620482759369432632769691353244699822743328535007052249068776139907048362379547757234110374631230640494715562361346044795586622763904688046320061795632074034799435494226154243595778549499375964029626198302590571646009187368510189599077679654886945183298067918205553978846151089504237879736035722494101215082735851264456470038051878237307994117439596247591623608834922128794863760445561026513552465937212512337972783266135681613417968262521113255030732360925679436433674977749330422139869709147532799826587244547131844582668454601919653520890244966313186322858720229328962181816734291263282852327838676941019532516601181920357922492264551901806331156156623879302065118800238276902862483168677208320522875087818229255935772954815686755208969860611710802761778341506487969336604136710227146304690080093996521532020806626547284056122196837866831440845639057110360040047412650041379039075696848970230284169329373167470702860964800131576276833530619690393471119980517086589765220909161485151939702581031209321479704695316883764727626512077612705447329993565639727051460610254921441497383618452188364257495730667842704564216966799188732708889005945059500728212188926941125565209562507724604921374508775038952408281747764885920963714257960790754299074298377653286138548320548353984099460638753140347869352183959308878453048912454659123067269902489800237786554998284683004185913025004668501332236382214055039934069575199992055846900958357787018347043316884294765717438184854793655743387048285599645297486600595592032906205334186822147911209026444856705032960278214099732674545474647044256799511764393430127598805430624123380417927152964974871991955658569400769343562207257594438214841461120482616257874241156467028603488667730063248981545592873221042417351728703459913925122379859259070301412992909609556312249382173184104817311363433798890487586648021846391201391384095725759677873961213383862577317251246329861807395360258994779909884086856708629291506871906403356260919832074884634956294262784139378202677265541551458150072313837647117453739729700708523948896992178496326360790604707436328073719422237036916096851722301469305185302200477342766418569050263290416638633854432419733138292899195816596809196416864537269820053029880112752566533348257804569763282045311436646706078876730733785259256361329451221590834654330845456539388680754589527083322130539492929778682904946170239081271068371138275093750699953727050325511444380774316106856216270073777242932671342434322231832541544746209838764045793009340620374312111185985999418352990454530408470200951880279065631744472214485578962488051039938192679648656150422880099329089610230017504294869097044867110228949511064015851703582878692294324831669695924351485703419953760136780385629278688187317162745701996435256641314350570949799492739257745171386124127233886610910827823274536910095922210302298692302953533085282549151354103029087701556649795867014666829864364790172517097022322249495934534823800949871680309126252497402097653882267870060411295979833405765832857659504290081644370474783252402982861964393228975092787496537289288709531803756705708231577079646912400094057391034981398618514298193691498492330348106666020079225496674358625870925945869171271378686671224608550231403837021689679092392315530542321854999974994993872764771815484311531256177842318987647789896979272047840174909258858456673349467608841427466808071644469575980567493431854721936855597142751228793309372306391255127575526114196144832943105908021961488818851086525684288644652222879564244538480610862449786776915714970424376888562305009393068817882752716859821947117071389180470371964432175105944685559312095739372864372403798198288088163876320688773381780920424677347258127233416122968122023508242743327853831345576051761857153668741760365884166986559883225147975450281566274883669535824225825520222337528061968895022639771487822702556504188283957746508329483377772820727199292504082793370188776812847297358863070153455100348269530646665853894136666987751582146033087210461687158498591030617765960490571987271798382364747977409531542604322375786046512423662498309773427164247879495161670502404867150011420357378218061228678478432230599591887878100078912403730803874481781456712264397739903522742703633599670095897655010588309107757892948981179117269817634905323958537725459071915471592557445190482824684026939296604271813427406942495448249429808673176109124166764139372555811075861837169718356156666450935434861231497653093924436812306205831132151533639315180340028681062035061041786456848258949615354979120406405659127914056348758659555495939854845214944643068145065443886096432386517143666709101322925876848568747988570399983762644916983535121504195438672136091438298282887368534011411018155472764015835754039333784935833666085252584239966180008664298377998948513174824697598639938729288159638229933659326962866227735843481342198164758162734196297700787744838951803095287040165413087959508825638308928870063368519472971537061606483699675526287770477727613478009594797697721482295430883423009555935937692208910977407979459991781548823242226752167614124254747064735804488319865569046348510013915771674449498215191380600175764762097073157523810083829363229269792826747912667060071409790482562908605942590067222289002322373151286973052652873107051246074043646307241521970830283469243163106734896469337939290835440029176552563284088025758094095263025876610081451394864451315050705827681430520763609354467803325285381259310379422628173008296581345014292390797701636185360908987296332199189736223393460808349057872047813082568305660971271858446726702780408129903993085154841042830405132051054177716916264307100998275152109933782569668845257506799641264019461777675330681970190480632910800836037808681722429325972751069966690889687019780687348674389854816630663446808698628868555143990098184143055786485799702312889509528700008361397810068423798541473026188628072310768826188396282022871052005454721734716109867810822167241619593923138418341609371600990335467098198547933107267194350531112654102166133184253831821089708858033131093666696245059874402023972461593738726486038808341525166659244187197047375546009954487059671637986704269175110216750205461065749348369931061052695318567096928736201539666879293475165740560158399616054052536847406711316011958896676651320532115161480134093779313876720668900236232490533186781661259169366889171096276535504953272452306789576010656413980109843585325668804812415535324375284488479820731046674794788441666995362040083020027323519034018714121083119238981442954299142056911507568932083907487560331058178028876822912208157887348371511365898568222201936944856635137096420787035877019154317174303230451782973308992407879108251266108581259547952295515184225215939713575473696580979274370247404781737972470595671628066228166145795126843668161578492106339620071040969835794910061313800787702662009207348066679139451179472535335215962723505997645506639519047072261050360309021737874473168048097257401267100606664715984610057935976493748038838666541981827411828261463590704864298691224478104395599902888437487638204421814683377220701190506845094719094042778207682080578909565545575671990211167304307661464877218483578241150414317823219270988446927481378656857705350601962460004245005436766919077287457010404726485904062065393313603160522084244915328382897751809135803610741176537313726352347331654248626066963712723742652754903413206105062584581972493060763626037843001400973740366658041905062304303478550767040791137794556656367027906610173819448752193374974068244142041984035930880570046073038606497607695472405822046613422451140979955327840548153563819038697145411582354131018865573204808843630664754181507477884514057593334401762678715698293895444514001566524478616961003524330979236565116448562049968128938652448373090672092374211226084105718096904922102056091268879825317914028906559969333786201292119302668725324145056100500468738194066513151463421966015599916288384225226701214776314048187786996010184768030169036369714938983897919421267086222789595186628379687476651302927563599085077654693414182602498833267618197645721690574863670899038661280074555753180817572059373586364595077922140938827024977002701859697794736436098322106633224406163178510660894278687617354728190669793101047231412146274650895631909835098728573581547949308111620022515944383197136754901156742265551916306067749980440906380238840552871775255786008099796945082542111214438047712871694534608687001397415720316848385678015862953604550516907311774044710794834459277678963445967034261741575139361009994521117811095153255378849693016091587828796970423744863198945786297847071133192562993704103542915045061840362558811434954993585672874694429680109096509894888359748351679559146995587730718597107368856652992891121255623653091359610639693312160746023620584272983250128080131359636358065135324906020272380404963262120687956467861134741939643289442098801821337674232004317276619448499854205133267675105238813411284910959527631694975148747495190316435752051306963258267976899413003370137677244883039960866406401685174449387668214852726096701057026073175864754786340407569707266021466184333574067144406883297123044614941548869552470507171980971622199972833722694440527851015575244770390447591299246599901552140565476824480768525223750257357556240932617616165041751611383566741370526593991889887206172796411668281720696640135366658982157581526088014845271319408459713822420004650843170656758797184518004593748135714528881906373265897361706018433463853273259551298108576500413536865179502754227773270696009077314098592833812916068695935430167496762368261920169446017358126027029080227837451862492088048348855969636140678394592907647190210771625527064148488772324515305350052176667888540002018488294020349855163553923661370625406191908041073122998802995966249603390922243009342580261140369875008975832005739308851250648983901214132955223457960021277135722423317699130265034847873557638684712382704732444461640738917338189973079218222674916133211950054523908484050672686958042013383059337996990689300421888860646218320327891954399300945777905753717128170723285054505589485948710010575268083499625610492821204001043984189556406140158831028091435916851626251836565750620747329875476927011077581906108249334195470853630009590198451701709369671682588232526643236929524056138116384989180092512160461923149228402770247427931576293137509754893641736645450706910097958373297356575352735436870039782758175927530449045906384526862932805540734925375265355835300078909866612027107679788492720411625545782253706360172857224590387542619555319114465724350667722590051604797960298109860236203800705816188203941879319920872252918888642287063024139669546486160270449746848638676688123250164381858849271003112591290110563149172928151786900128207620003313105758338408214421572178138168597219650248769930542341905678894056342735710142004549541025170404833390843596125161702105524760284171178225040809105907284085707658473374993150465210963301394058026944210141545231308166709080111205411030332707116301053903256700696367966718953886243550753721519111808405322163068376922441890109814620209486625246452259707722490236892160127830348388423317395294171076699591506466059843059445070613252123610051420486120591521329827107247622972250127777225477757656420603184017470113198490309622399317486635051306368793605049049856923042515458923258422831544445388049784742213525589869250369105423043466209887084759424115830162309405195706600805756399350994283392767370145912566608504415743776944280453547911247093599179151545145318360903143222720410395589961746840208144942976566546608844474762607218375456337138496956797123836905186152078369358439886574009092088270347592290234331178374556909256518782488189524242114311588208711851415992571044819933271974615659509413787536506607344413257331923335967405498706783886635421802770207980722201050257662161548129545943609494857856418595584500060801890876143290350468485509072732998684229457884407014372794792347706405717145758709192451116773124376391867708692229257999385166055469509125373335823480749442740969314541286199511234745012068542483091380273376986478838396989381850061069943556070029380270852271975675180963224533487132279102913359668284028976194605864232017210156800388772417294534327875767388669639349035315670001164856560770602507324587003095843817443360811043492301609050237037837061886139799877716443489267063084236752860891266450938377987627544134788345746375434010299695324252430913780137599627450973172014214669254978043866256531756920352050257540152917184957671539605209765548163095902902709995867490652923310740662642349823795942375733024269187791269970375540735764786694120555640397006752795582690255947074136425895478878075023779081653128038027423850703640480632041364662328531835629482839800843342990081954937402205176116553937045992329312209516013590687781134661548434844064874428882662205617358144769065885224484986237027912270274222349359454692373441981264117201204270386004345987080098661067174230691359820146008883009761916467555050111585745544380615948468520371719095556523038036527562396852156879685125074396709222139065967767918931113486157542225046774401464489699026936057347481595086355529172063821070915230583683757211466076300123291293830150718178437508843372420970161376270984508611186545677491801531083038187786516025310682104626792098012940547589440716702595167236496262712242591674228043698102361066373365336932185697091684231596580430348617959620244705290536618528286633392160644675653409043169913943143056739194093206660632557443027463175636966225089277302434768488065535072865784406446967077997214861412620646370513612884317542919966104229971307203813178094796187592995857331912018182750263243952911719837864846421945333987802317046065701157518596766229967413221446338907127541760656397188239161615994354728153595581111679606675618764187784602309413524979507481937899183135971704626201181260732131682961694272598454617839809420420197437449714887820368297488267538637365240414435552734249718132188913002134162799737175863197127026290433254462783209550384014483214866334764900504157082440344455230919089943796106529257291263222871535090848117355599092275198038856241716549724486384444868364773764897217469989316112514859169348395222669821793343563372335236973196726043243126103797198340886982097677770748078356780213545001414561232804306265693195893051839092071870224818423313933194763140839773699599707604186634236340517738923478038454659132974311328093199074678318968164416344572073604644113783371303811390149553117645377668864759466848922617620795558673799594469613786409812922106703772433889649123238760569179441521246889559431046940193180006778132379951092081667281088547299880704086116440006173263047236601327735683410373477680923258804648632888656478606575249270614096160649415544974703591061345725846353349332908507394346042788346403068137561590544718454405080272237203885025626882172826775095195833142697929355289838919602219656158791787549607756817191941017733568849203523294424414352522703983905798880589543078275831620898862256298598160677911664305203304632302412317859604391525704566450213114656037082000196867727520439352854176595843018178482484244530254428949909038647675956179566289787107482536648425443922550207552508336657283367388382864619872392980529933947521259668680268093004435848677031977164171228549879370331277560593179093710765406450076776054340552999613471825306376210559122279548274746738058355354966359160508534663264708290016454841168811161162099691147335356727110182179564189278128556012510827015356079529065145149692771663094997981057618058251217686272923063283773696154119281214948504863295355396778200603835985103937173082815246121980405733577679507385775813471608989367164451921127517884768532989897507051991971206867461120623658752300337499411192181822378252554442880599666765472297890659523028431917985293856025738228488197343059267549444602549532494694915563210523713984018591593826149029817340145944012398458858499783376456151074417556484158208131088540036270603333196316778793154093841192579525434622121573273989922673091554185526457002329011286650078943785196112239232145670479894777708037141365882223684994269050585153007474624121951677096269727235681467805064956930716513670236312267653139457766291278856537154447800841709743381971401827285020341765010383319277816549051776052740809429914076174570710248893203152622055235234502188205951659888381330667879625962117487574781554400802742491478827000598914968413673559405952264758537359306127471596156988017898543817000567456115583303075506023973761680620683137879557171292705782725035470853411592769215612507160776696001995828527475499687952401605757121030001832437564390444317482956471847514116440110503179107137663621669813525998224305974962392055949584507079945969054980981655017669041857045612406885349129263421676906134091385544118480366104523765080496005871462100290337041405014045946352454166876598294065315438263640945729915814740508466668786510469706424898066540793954039778969037230407525532386293431360293077266454998606965415132082032078008394376760046300103345935528438390152531648459885384214831252547958930394897360623795778198056955788568088004831186305540958314576018151329749609806359947926666991746006132476747966371557380375041456601301751559126430820586243150656816950727830045113289543347388853038450125853152185755853087802641362081770000960244943092659149734761042034333746875632541812666036556374900400868733832483310774440831016790099089429276483127442776343054318153335934339918614988034294207096061559362336948597860289396778248984453073517025617976148220681487947361225623647437941669119706906751812865173274740513152079038882688687374108156717683306420746531372087280207909657678553611020677632733209464514835318241308414513331729624210404803588526404071842984449175635635978551907335098292022685758035290686028578686874053529581822682679786296553428877229928599838174374415931036601565356564144291246387073041168695434546914723874529753514183985107228958446146185430270231795245182427976224952357880933854793980121504877595432653393090036359459845930932639398736777703077902904871075539506917370652782280718895303505820931433313948565575766255744280582785062524109430965862494666075144356149690759384777776247075862615798053104971134343834152570408721973100881022129901733480688886164801689079242660530161505717595989158324812910436874574409905518762330202962517620340496967677386854981323483653717202723537543350086353590248781242957544715945292987400389801479030590742595081321303103342229198228798666750642058861824955790973830198075423389874381853210601577833161349764179869296287953412112590424059623132996160507568855656215276011260307892828803782041184073170520883760387362877449697665902917800315325639010047997305032442639082809479654919875795300354884548598232354631070337146383646983935626932617664024818845768556725746142520002050153572576934194597686222606152581491681193928104764339468293479786763773364343786501044035598715696235795861684388870492839122065356434567792334056970451353868057255483584157585163012816045682959142963354834548623672396966455645187361566203811380011241439136299501426969393308313641201979761291886039547289029719195062780575707591745781208188433660750628447283164562116971896724738989411088356814365256832109313774131211997054813080940150159690932396917755203410766887289803262173452893592339807089453107887166671291534056102579898003880471750116296656935056371090328980941987111062587849756768813471178717841449299310171186402759251281113994773667777861332022544159644428240244496919663285885116941273813690905834429261873950888916854456234064018655333624543381234881326192297281156810806620920567236402325209296868267691008229622123151263760427995061203226512313317196665133518959400794861983686447404759775240412383552556105282110039776381357175651763481897329021577052078771685505489106633517596594025566163192661730609365194170184722605685793178222104683984676636113948664949120913714544192228630934364490520410679323349597361332058231148964694406141164188429158426316757630466334310317874202900742170809443112536337216454467792650286591083945083774126487414215064105826647651509843135073423006134804902466656965946084321037951435250304145039274979241737007500333803574920107169221593897916071591229848539509157583422492357212625450988662411084383030125743340432128470778084220754257494186695647344375477933638898265506234605975036798506780474052408812193528486130138489326640344150779684511788655637546576818671639164260571300201985666534152176778948948814659994032614059628557240857372013322385461501257162575745142069317705947270864880236410460175699198940126798951508706858186195387127311969735059732801656166138867297839702537551279083480244200034295144120893005532369707909100438862810919266029897477024202094106277497091667455477405115006912713321884611214782141320002480395913291157276647819204591708989885409072807606431532916156821011554829177616492479953906895440294212987828290501853418891582354670139889393624935543928738211221209314824944633936978272342901842141357493628781148318345376337277158442173490815017893049426235687145684874747594508098590336167916078067256043874899801781955856908254768900524980415511933189859878260730556511935406462304212148799397730110663097181918669292221183821929889383146681676827198815500734073495263302015681043840086368501901184233643548145547399118612775456819084687729562138052098855009360277799626929566555507703943324888220570304827648736026739771242382498061726914964508016612862090095802677079379221798258233040050923907746574626059701728012659273447156311708169791293743064469812794005822523188378436346222168192314371976247998100998390649886240926330937051351651340569331115488857016013175960566285923708325567686840574016163351134542650737439242176963025614501052065181257276216302672246873563333410292101065487831823749065165543160339428480581201955014147038622031416176780865940088124949129898579774574008725489316729266293752771563206491345279218730228151130226822376599972523502470807666414694802907073425276787712516275977259229700690954767232468812761680327644879497192869784344012811924826390318445817443467788551678301429412381048815846561059058621456227161457745592858738190816586554987907322284583234402324843323850798619676291046663975684169897747938343551886071749128371181407775368422534312172335564051153881562896569372041797252060717364295777481588970293578499781115129137466083526988643792499149379814006860525371637000053633133421661957531508492212401608455072097614086904588336063015224095745462552917018164954323924180833362875975861612147334333511168222092441934990785537805989808843627902971765654968870672448750095495555917683917488686276650852500030921847463415729919502006351885445825288479515720022072541928600353439869037838901653165479432884266882606802918165452040898489685955187257983532335531176345283640595178418251859888856142339798001583549969345617601851949168502906541141516639979450937816049276185543593572862518591686278000714848154565538539309426143848896305267176141032081506002005978888406118464476647931410946419080186596971471581755203272995054143105232582541785763331687293136837324331520606662228482746220139782416993336786828025346693526434142888148036014435185619537796102147119229638305049743227104276562805490855461294264624672641515462925354613584567060395550520625783093126586640962764209636140569644567530395493646310352095341876310896652436155536670717039774807431349969439049218365364698110825300315204842335945484174352666246642328134607666149339010938688603803505685914574048450385162970007031086705739216687959360348570735791916951938867315103424388372074867252630311052800135412543093788096428034450496973285720642703942407325794232267920465361767719707823128199894366768816027073635977501009657106104728234538606507844205480630989996169914043233886822675730774346477252141316590186036865317749357138685859295175334371860281898906747326720886789879845788470487787292119655164855889801152474966619081177459589868863480668564624619078382216417330182493106200336694050918554418278002190745616511581438604324233032485208714821227107988915634815621264852893271044157937008141701298611757705696165803493900221143668939853457495294970178609803237821912916744074109972475670379888106291815452186916747646085724273822055629970177694951647599837012125791620998340052158701562464764066662364870664997916557141155702517393872440222406704130383833771511434865308222916650760163316758468420113784347299680414087478551056231528670258956835648561336540863047525294593350130415005118286315838579653923153379987226709113085980574034393179128300817753681613519014620245804936964162231290861538902450474463426022129755810028425899259414367984801902116443714992187964153371369766752839598105914543696293723466019254809040782225538460030416389216032699179725154339533648538438861394630000555410978764117428192897346752699869631869935328058323083070876332565458099998293079216153440127526400845147152162720718437734971403604164121394356186301893541452173197641232565894815724425048280142113829211622396269582592831289753519124159853478524886193508741996446427006351495497049884502904264681253414989443880295904092431243671882787653803652658646512771495237331104096724517229177471236196291523808979222823369082801219508630020438505791793866555771365981742928261522821294060325373707994316979401128444812483577676890445599086730764962775535843881831719389440070260505397368179024440408808000931117777884191583597811814150816768297106950786940686262733014960961695933543790913222610128552469449035282799422074509987344003010529311664095149531138927294592957403524923312022201540975271278546871541993994897786396921066326806913229277200798174646178029606641678141964658019860262791312490144665331914396950566365442549693965160393658978758604493157035227229024192979169426452194030794139950783937459018754209125569368227894218586431740622291641112898791778066721457213799449531442533516654470108369567830970182645713942476894193403616971775108742362796090567476110398884829119586541239791721014997980185609533615736195835174422831363465776011259602146101869440211448472474988147634596901476799295967389579104350780768334256120997025095674974629914039628145452263316780037210048805719410604331902063189514426589650905791579349173107064763068649503483267063599975497659183529234608790084120603011747564781626302600466318245503931818086802482756250954184768497903071061179378086850208453284306021764516582702305171634995230966075254746042541629587713872501017743460600967312648977471051412317391680030691816402719146817201840818813401083072873771776901506546174217191425326485377493694131790730225572162062205657319303357934020345920522247071005484246267324634338417817207068217041017956768442826532382426008345736269726572906712080208801986576549130727699055754054523707711316003839967827231097367904982263474690701252011655160799894406486954034114661359314321442868630240473166464256977642431018359433274914330936914650109160549462155781638911319830935036739282443615308756374460100336835385112672448920546766201434487879992661898818615136162620762330865024004640330332365024778198380682464389886637761806293946479034301868031125212786544784971227217222826269853896305620832207286480150497466810359496522320995495187168200178363812190765868832473479613445674885041939723187774273064239557995606018581217331727054331770758007995274667738548753447083879549300482038648066265986567209931667187350389932092863843916041278813972779893906802540656873010307000977431066031025431569918635375956699157629463358359715997704202581463989211676478235638420715817848214526734187293302218219198849563557796179981938541507812549926479893177921446878249002786089939998049389734425715054044743016007390133114913667700769707322231867421507412879799772356940702347813029212954472441585359125442093837896247867616441579451705585772765357013479675205962409172380005413326481486935241546307316622028017116693713641823001030783203913271307477174329396370881096569872870018312799526254749128309518890323072069730163252592635914517571618213030389625846951452382261830386700591983872604325794371958057993008351347466417989223632768508310035362214988713649518046791463567786994228385009416785637866960909070917361949014068504968655872925758014192079226029365605279241268263367566779248575260391335477189358471501712467410649272983905090388154819790024786581451962920769621917730432478962176475571762450329887969997012467516879296904868908897095432375844509256055102043219502396998725181950323412453190818608023358016268236273971202570719962345858897164384585183411650444280241703697040427578423912026495944419874355770163299810384235628874461602845210565729681679500528219025442402151524908871750972432175181098414235849420774151495200531342713500554214315127661056606521890813393035380631302498625566053161247263007943051509273236658000768033167128708338752492540952936087515148574099285587735058147876018816806934285030709965260168010270425812153486252424226679780027623808668973896794253078056005819276360462245987608689243845335419788938872357576068464617476230741390140140114526523239364132898814726505178354234173332389252413903268445362855000501312841582583175324091462848093679968134526629229111913581966625190121601520423849745969636575770668272863562930820244230376183206027831830848671640551748211373993654573699880484285573957064851510268311988523931360525685422715588813300639599960049146705922670336300312353176455441147634628652107482145097934864603122944298426909065259114612346148356140690112676991857848747745022583619904551938677051101668514911556769841721009617491215236172601156692053354367230012918735952724337608384177639303772075032417848862729124476950875959143237529987757145351061712646176008525808212592698615474608265800691455979294766767426813595343719318293280023347549344449587323137720564866631800856425505107782187691903759890376583804889708181276070683463556115305367898011370114378443885913528028501722503752738639530936420428664639909995065497915641535275346082106764358150024262290284507764876520062213382082048812345139184423661495527983928779769209880666505259121381577595622060561456740713381612862877386996725965572398034517357340665896894763336989269793122175204378932302357109302306177949985572181653899754191830174003080291347120024926268907586107095327281555040846050522393964056267354579383112555478614942329509827554283508381879974950996618889581501360800789079129135923911212350248758760055070204475811031454840894636018627069095764233929807485689878079469275876690386410708712449446201897820325387074924510325287748273118713200197484079306625101220905290313590787642044384419623045761325954222595596993106905924313524927593501692444840812950094122077464018560765192362146144347065829752295791632088404225133188523406915861538604017368975177668794182676493023319080400586112597907141682653618729260714986584121913121187663226065135322410663380206461639733020883475799003717381757129952719112814978794786754513859938070447418691084374347633828846033319084614934830930962219561091683810948798543115613180319811174102999545764302618468221328203341262903877724768145428194261047465089064235522950853237213038873531851162055365430027503825376307691611532528495027224091342994342599545895524905890653574006283225738667698400243868724706653462261824764088047962481035931052547365358156158493812320264077601887283237045356800861326538510849053848788974300271559504660615959050672790104596426850006272717385639337033327046615238282494778692197464208283397381154188657584131004241464609528086051906725141276242070292096893932148086165889115355511906977296615410347734568954310314802672018051725288005164366210192271193788318816508250302298334795239130022993917147273334025424724489649787830405735403379079630813630173755604439994935300893008716116451469852917596378583205379452616699756751255497193267124977223395110356685426308261562338153535361137971835114008415759013790625497304332039218621230548850464663855001857911407791039851673592046405326890290667999584041792225984675595590630165120127284031795244944109678130338601602813340952749253336004128512355989648095198021274399425534428751252723273851483551355470515756834053093798739684509573055543956663398227223304050553410427570868922602415685327575571702269795913813968542544984021467406549079929101760084468279004100396578042812673968005291357686155813788112832079423588652211002224849633278012210626566499666308168795216839309262765789704239375847524404347646210680776642346638704643417005933255133113085958021061182350635681687555871652492865969724040576523855880645888154312139454466868423806009786780751828682168095762510803052173273031272483761766414536815495278466834579915978111967567332746465193748844062589216169110719894818402395395062556107085900864164260608848637249094760960622195528576809605223825436000757810553714955803102432032096211939738372543816708416737213029838496169342572659046442895339013624090578391494426414071914689082385269826884959120451024373919712314856490042962505683473794981931429529557232792196552205597175273303574632828800121917975987378973527057530785937077576342915445166899184684388333322161540268047782922630363998232102516639710781155727726132438232861508841397980760568527546441948812726658617966792013602587173065694510342636359422431865529752318007295038483704513902910780595470469126565248794095518123840645031733562233393136063562287100673910269688077104917960753745565318138165636203524921681049369031035293145469765710653841558960746449516363163302327470975782686359124608383768378499821189202543560843231808473499727334409103035358992655640219413406394830947486915555172926606795017915728129232095664586737321396728857442880500687258247194934908349050223897996592004014505122180162835414439706618436765078457826891621062161771085266840660127123540819511139935829582989687031223147332880803027477543084116046654693436853450435945766040744821195059419673355255583961960972363355418732513085380225030728723480622427725639862339219346610834202199703711161712671535825721536817430618490199484316169319326157375905907369315381997702632067609139996571614609404193172303341707778866606274519452358262582769579559038664947423289083485997870927929702981374896267021219674313593590333925433779331227386592706700023147915370360741480298325452136069474451371289932741840920178113351536583808589956643773151007933833621205555670716917349496422117407659810681145710069248951790615800857393998515166496320111699558419933732983043675062558103407218747015533642453244758162023442505470901862366060064457515073079494827790320859421538336454363118253978731626180102149543908800383398150553240779198258829946033428370616343146510780689497054379988517748871389754009505023624941003827751963058623573263188966979493887282492337183090078292612280544471872827131907550072009624546598873418829304837165619183978281810741799755694564561316976467692192675593154822782290178002336146600673756977615214395851921630872782606895740385948960997587743544136997984648810790256840793323580261728597169965356736894214616506143247884104610740846002493132212896916564185329058123849218134547277012023609292215325052594038073653613307125360660785094093076171333158426977514749309553824416080935079407793104821046495786435976965207632623333022170808788956189144001719452637466050013665876788646909418067059874977492411907458636942903442318671853139120380564963130959989707133958426247840784370116777444280457060742064974293405797128379828220801917980704802017557923050163185451875679017592433898512276173912817624786325642584942411762615399205416025892575510988703029026923527657993215876845375188152903735945909869066535871674121864947997760427057591918114083865398152948097256881954830266981985923345996307062852275335887208244673762012096530037932843949265327342078379365704762092717132336645411254937554484318597935384984922494102542008988447788766951935243202995424919055916336277410979105704949963114078731441200859198509431030546754115157135883755454206356753608950557287844357699559692885959616091327942759421956152252129871434940014501477536113606527640270803055356788385260832187550937740958476996958512968175748698903071469773466858069353160622471467341787584808800690723942124704843279188932363377159828282781628008354142752533435426595194387298591066984020754789982309269423774500962484488751513096110762444431987957581258180814185886561628714638445305332762149571130712061085416963358953234082364013845100644745085835070802760617278177882796844090494102260019713129085102177747841478871630896927429954296935514944459968622711055616579908560290544912436980516865658877323670623400585744416031419562416538538845860939564610149238852099049865566219031279154488326196471239829569544795485513480383732760397867150112039073638598815078124650215001666521279563778652315548836945688382433186567892386205396137338420100061751675336539388602725807967569691453366233480162167761345387204579530626562475353511517750096562035470992434317141320443145244921910095120007495728021165380704421110516576732795803825865509827265861018236718227746126120467909970613815471008785196200150745530358935395176099918434667537294990876207432213912169434876068269941590328984968028825578068244347023901998599021893520687862422664891950707867525319500553314886780207387054396462900334744090665453396260848865613988212336899863827652509988904832295363866447030185983805044746725251609677703943117893923907378415482528563056632891530552315403418050148175359977417456929181910871018775112419093862918462920089800141560507093400669469378218566716010476436181350831366119434682603768675170583628368528666383717796557022571990167867887077139942222970681349235261504837831262580901646370946215195992450701091665061902170364287618449927852112144233884449678178369561395983559644183014430625885571031646367734762668528671022162514801866349612435106244927814365534161235115575961429816374373384805638090664431586675374977746944876551549153680490171323648737789703052240722617340446794051651426086129867211547996343187634712734150169469618479307290510432823881558187308421371266960341732023412336918693952575415535824920732340114706055151717169000654524727275419097529012163404417549485079846869490699092661289159147815803203656143410340531988592756192941162039482151869380643266518946736716540222332644694695284203642109939415118313183347302469516215283615038457446668772699047255741014114590041100529428471122715154554649728838024682010017333288768669191151475379996281720653852799437965449066871420102664606296724169954766028675997269655635883114277761521856111015677828506512621133407387586651511998824497228533682950385123207126165109107226575029255716841754195097345978175447528645783689825784338969800860008940988905198219719891528966114981727700881079447461110543263327127747434039693924389925114432958925877615573397999893412945731565593578111561836781109610044366305075901186973861370811221332210943725184070947102575429141891354113157628760752975290578385592538970518469273562586315047908593412581428149631144740260870670090678616758395092730763997378367501321020556014918243287901303683267279124624385905268907051711319944082876067029560434925756050278489231231676323781729581132842933454216226038326039544365824134087841585835247433289653768268353298033173319315184479356897255619227313093231683430513199617004665754910009825453207066657383677761020081540600361260625498706735746378695959421364808524539453555887776759353132389198928963539412576005458209974793633169307248708435647071429172567369902035171252541687128881587523336019108218893737364575660451627996701822455474964939394881046886261582351980977881075196861120910302362153993384755682105561335142478818486636128029023238743249040385021564944786133512167056771288882968528792906296057716511957739856738261789434886286420927994919003969796737438657403140748931135584116038683616450968547125318820649324585479193356473808880328409682875200714512354880549632266597824801542797285883154848540655891885600095519374162726659387982640153239389426496883737615139293474553563664446897204850536769834770226190179471846213242246416934549467031250309790064229208875751771788294863456141886898250970698919122977197081652455916206473241586791627165933227024775315589550551645792107111288747759193303440023527993370699829291954185732776683969884472522014114050955240971347019477294003687595611569873373246796574080000635354542998657717448846294246294984603624546433254753519113284682485994269728703373081835651334975771076278650445450451503685529894553940220215576988874549398191563621772189829245670062207117757238501289067984268495899514549048770953959277639592218428818429237577648420006194782505878668918154986143110274913917634192449378055197756654547986489477443817598064747853468856498003104789599818547912449564516015217823880348682208549135781262393827703022199427317332708309442745538104960777379192894971462623661475662542043966166820416701437113430941231356839064140450088151183032288780230822616087523634925910453247728867136629158661851224333958620389114831071543029154671042071203208789973593600920547721202190345148291825789014498946357757319682492100959559658680033480115057561136791781775779599467152022446148642698619508608242512945939020148403336028470072432934173971901146729020968528898038308092199127556907406771630962454412781210472124263321164687973381248871407741418924333908330191508793551112064613775603830610603916335595600108198777545818742427857410980371678676698037789325783881432523505519591208371894455612042724528342307377117377468903472520927061772055004219281642998754926254730556457088677192202702666454096457575973416287605792768398233400802370240475991962955930305911608632802599172428136363726607023370630778025457641249362012240089894489608966844565745099240716400581220557556546754661452259174318686432363259190818308548568097407700840506066097288146695539469014010276015909786031956861962422133711383363364459194295994528385426365285995423746653486435348269830267926677967632168564479381663936853888670771169184819898190630015255788898991263166401243028279343302786205748735863496140888908687290688011079744348367929361036323609604628264128884089210988201048354530135082615935469873821307026552340097389665462425653632835941973607744820568150233244100473293633024871613343767315380907792628034973153546792580290073327386611259139704570970193968401398665254837775759065014377826278749948508488071146120939878553304022378259929135392659843924895621698645589594899618584232971697285729189732966179847380928153905188080949668569138374104813114632944677362574304039068710988309869794484291398866030117990926796880096794203984577433907751683195268161913214584637271044149043793634668413462560615291958614561411175379086914795872022926578629448749289749047044922286286791262614790714281798502172281183873709942290057356343373399763361707773765015133847740927408637579026008178121279748756473693342327413734215369185729104396559933066360753079912528940242431144466150136643474253903549046891101708686729293204061397192635335906679875612082611298771414377787211631663542446860598368179755819658129264576951854095217290176279220979077795355266578053990357664887658191745530770291187594208280984208368004780019881451070674345502876226419821290142322304969815529245723087261936824843691267226986187583783783910713112671269256323575908992741972068987050965511859617347772767803042274204273601387315917086250765141056104866134527025842038187965468034096653646373666352120103490433848157600975151562317242429650964900285183940066182932685770593118376467612531934556875570528977703819132450539028355361963516808367801825821919803132728948296222391380916144320326616363397153649657399873528313192962050320990729610489051782129958036511599421641041205856531385388116634618161872259753327162856924013116827338922202128590078109044311695312550647402548007306281657062243613211141928051556828474431637091495525412868973378888960055466928095843934444724841574254951370471679416962697210901091870058511815721936076820237972867856050546495302948421328383295376304731897975723460400833812456778272665500037873872731235811463090110007426542968087376436513325977359208389174426342315809320545472845020142845817455138720102122542297557076582212943822009581754816075532805508297818017914037527067211377378383173056190672765570674211990192794193204973959509800921887474177283910220786129614421253020235285062063278294476160078790671123326493955263168227169557987112594967997854312256603347353381045692205513685445238372407244956107937701076700757284749157831103906840867936226738914409174442097205718015571609166558118933826284799285697772149746371301918626176311281396126488124972567451723496669150258848142268438234695076487267245249733839511264024933339077973251366704042127484169360516844412243660457308778939693680032685399475769680080271234309114569923501154957626956127518576765704301678890843208747353393129614124813584164022797717626770235479449581964084085067458914288586980666745407723595980415507588491524354273808139693233933888724400240123863524371465965018788411284366320623536934826660567276434944044815332594216127126530524634837222243176578541232379249024872093927106009563228624811341743033390741581189491441121493392300312652616184172172092250179649168647846774295863249777504228694881901430498209002019819490351475181993428559488033242266822728279068165561619481799095439730268313729803936120742043997643968730667957167083543637859867460359465463611655887735831717017793002627340733636555199879330683571527769177878833746713742964697195525970689465809089777928154947715990684365137926779159932953679255373807777181933123834274745294253859354109396288293495117232681850252027523675332632747724377925028097330087418826172141481927551464611153306124765556125762763695521782567011527020681986718891031338336517763008944360855269851226674684599066541008059758220880432132893342473752583878884331314195941272039681498134666683950859399292728517311492378039900417837800235740399186875795296730181255694705587646241751778447357129705707616272545122746389928547782962414323781962406115449126645841118687736151658738090771883034018586843039188811475620164654486982678026968598220486293940412546862681374055753514245020294044347043188087998875020194254681935651927760339332056806996543470726677677228720262205695935160824441202718260105196578412211849976221403881143466879613079565375545047530694229985471281871037322896252188014924975799140734539734142536571868332131149788294816392063584563328003677023190317083962768804736687907353293220940129353122077130432604009998854288597687093022686031457842462758842197967750756774709557968244649562465553907904265921730234383234559223742031585654748834998897240399453662367746741330383711196679847666502836323058761389960044500964320961301614899923780688833524973778636959454543060835860852415562054561722636505523153061624516042649541968512513023192979521670621486458454270194653753305339327901940552045618285365540234611025460116608904535893463540002791134718805477019531147079589981185083040273454055828131737165922468937627947329957356658410458788201414625625783502789561313853335640303181145615610818451133691184333444677624451614990730405611842994244739575069276552528216925748374638902030892016544536762488207606050210427748052403743530074983626786660137902740758308053343924989586797953142231228804773458208507035305827280998573668450163659289487768598008888355687610677722535649672670160703221821977523601446107686923760644173805769910657382600256966404343891652485016969081707153481445708633013821706866295956933659588292864003798911918795469799905657582056754589778148922007910500549430933320793496105647749836191018621355088701888302303151450463529156518679610027436547015028979847677036092829523797646370120958087879927350524722890406861991102489817573256414062079372752680008651769922328728318221429351861604883383878582318642316826721113335701819992030521680546214103233456704694259024605798866698523918845502187596022114821082263470633377161565575368951145246362019671713774962004827458038144229126699985436385199189858531503711842910329109265197941304919247603629804351417822368860430453026655455597050815322939623295593109454431384116686484560566493136748331151115283212127269058982582499647138918143705843491002004714290084216885234385943832479161427607058633789951711875033675366294115463145539393733008620621577004530127178132362417861398603318880785462001376889689274975100808913955523966093925206203770541306915978111044566691354906800681633399949959490712207189869492812194526085160515618286306712780238231474764099405135030439478189029241008169739579333026771335108180253497903224732706700541413495863214743001737880714531404362712847665093995487369698612527408827348229817611423655926437932878394682486508801627758335824079695201818115453241101140182906959687158240163907013948278010981116715458047280688336438871973660864346665516395104985437939612047112334605611399957553743703110030039141260225283666660819992771561140562721473409038989832131241585938873594958113602308512599406906205674742384025004372099463496726625681336449081724244654039709728173310317425043933252105919780566068496422822037581486010221724857407654648616629948440762597790746428887040634964974067803242433411600931696215873500682455679364727273317883079931861485121460772682311711069211273014348300670809657571460352903755690487377911354610617231299523032969739472676404776818706940162067587820125668905845520924508843935593378786577917630750511202137368457714783221382005449043635270914086287643482803534430559721737073586777472949286445473925945316406545374932828942688589884168848082336609792751054788790637279392244197597905200041697332725580849125262927224017480372126044897690888931959454233282871908176469359071365768441261084869891032537069611295664353691745929301094661569676524226132247767653564596286854530457520011458087927589691977832992459043958123556979942322662135705371450890715891069216417205433254896212932895918020750310138947617711072767825916477834592794043920905186064287607903909911825274794848767317684482287880439062404124784695829426922378263039173902133012262374978857655261658915994077985404258094983509206186374362976713726834996764667625081927191557006191551552507584069604958112797435219205229599530160216780169211027734481745762453428310161126155750956266188399179166489420274192171524574720360580858721498193634648269344391005728511575257153824953837172696676133549878986304423412587912191840794178857113768808563717951110160698042512962300639578224110510472145527311983240743005573137962028429564368851815065980167483642329329717575961178889872258785710924718223369358156967099309608336572166580899971821029104859813769994011067810240263420987010759990678457509431819314265114971997075145990859067108851893734155194393797536123828574208334557063099120721589093041016395061617009585972152443194012086548819762213854188453845928476528878605907037965766423634953366593828128466849487900337176296315618025501676870831102599201509519991342503987000041861323592661549467805424482997817616963158840440393435290447902438201296767849851393782245558275378209983760240518326202642444355142790764116585294927198556296419625691546402307764625793249427149633900276633181292054712876542212506601656673858051412447924957767035896442892338944039229797525285522722029175674431220134140544204768803007694928068393235616963391906465842446577754588004373608652295119966250007481039723557481581785673892699683706395718809638545455017379392372466828648135245357796522684927233718564331287539522429923757023218603802477204848467716880476533543198554270790656294910883301508019312179146105481394578935761794554306408394954437969198213755606292491430994732954424946499657450335067342746703049492933950353757821873091150793145556230692337426806535231086384258889787148992034877077127488773338987185785537109624052409325635021566371859936615717519170376121069219326387794012749821419516949637349916079708551564768429090972432096006142198612088438194083118583340778182805759219595014967098356623447502083890977677245332250371852900164232427188901432737502153467115981327442509880368206481557807562099747039434217000736804912584155084859198214696365413061998767547264863909746026483803653643897991638485042242236739574706746671858199407348775014183132635313732493823365686198043518492376387289399598723547512838725975515020005186841734064885638613398611088362942403477290674339602006796705772069234398955885214795467791294372935645664557256344069121889281008408543865395109357560732927332192595755430487099126073378014789647243243001585509868442577015364886810698498564007523475794025836799536589053747347226062312487508117083812764872483142564155862269890758827127853114014930994707197379627893886494791627194245117339481936095436896132297134463671129931467917542455584730050357885401953089920476292176423597353923135517350646443621386360728495788122602756154271466820941781773723544910257188611189009507256823421252108878636752264831265255391169130802876944869391333515815120982843511744001440255874223806620554647355079274292461146061622721071542980304674977610205674316490937253936807616067267990469997926978609421721145996866043193875343709539500480000293928713603586355839828790035455430431992708510271513450374283512280122291989714281078619358488170600742781938081093390760207691665688711498764806587882582592209643595417494317746369149305427274856977751279928339857415095923619187400723642638925495532823391026733387374728283719422290216897258944232111548577380732236640783373343146565312326460063893982496156750701778754431502086509494216579199969404127362022369163931388328316066799402581249860726717913549855089334082912032285987329822343794240126670043623254478544363346626442283508726290049732717149764374536409575233551430524174114845451936069084731495524768415282967263344791445836757591930590857892086731394054288338597376681389218312392915386915122181788657741447205767935206011528467097179242803685940793204857570336893270709866480804788621991626228160765257853799685840878832873536633612379372102794970610626535655144162900883130431566496169645983102234213743699269395621513368398874849584706015825289532452101570212269530806403625195215838675384003319348537865328440403135745899338561096078755349238129498899401321480647158327056269154966219829710322314791117114812247182993091620130314394659181925041769468206308089010473178269280688576589945179442478731634514497152683002882144765754722612224900454692616590410228360097380181849592649526659525994803731045371560705898402267978683947961382362485945109753270388161735172659910591108730053678607545019574835838329493998046752449193913678926915208626564774098707176282009968654700116026401052193489778822600631021558102701279266457564699540486648656326575948920511628556692485792375518871398340374708906593133228890802781010265784806011950030488035117437905736164662370795149579392111071168488190266356660280210139966394469079709464005680456243550529764079673714651875698965203822445727515347989142622029512921094580751342604829896495691586847814970090482636324531252952459683771210972390563481224215844026050034970830552956683032486348708763006902406330653202018017554236722087616533063502256935322197798883281952808442558816368872106549099652293360250292855052402435332145954729884438623679524167664430427279125825483865250557111640343802111475731277863727120886177060844120392269759918264526620179316929726882364016718462139752386428219256766358131020620504527678271053425982337093373843620144737796724417226402776083530957819394238671541678865632352902084316165697052613859480384823290531568747908356451398961012842946654857613095919146123454521485923752069732919189121514716068308878469494632199976051404189084560121560089609636049956939558644271166912345015348941964254327476361473208964885424188336910040841085684507656478349600206027880009007123533697818933988054546080494979336002981475284747162816961955239822152199086721408600071625126697857409234390477938603224338220823515250549292294325519379805351613008368316410056939790219889988556520810526462893763161516371594028117326893648528433659735603031469774004444485975303799245526497113241630105592462905770329129947618736880782376608963799046573623085589321319664932400251530207184841505059615504805620904294044841418684731330742398377172459053099043127097060360508927859684200831187811447180307585667732810415279544592437158022197413485895828876066798565165626585354454850783006877459201632302352924820567457999205362352625332581600677609711687203763308322166956156219864849715920488320406939471955532420999514650427081341320381411061996727768474218787976863845830846633744639671222091413209503624313820912810417222865348433236614770630941682236819010631478567998151992145979046897984050395798505600423089342742785437908276525355128494401034135324205182322228199837983608445668387289686301986382098102007026378938550092230001085078627099491957981830911295022208147301680796266299114856093743615582020995355835060306957786917593468658311717550234319966445417453472215446605272431474635180522956480399054792065952235075449594351032965578586060716442725134034169339042205003931201911895974055574288107091045741792331126000609197437606034272372551926902885222636927554003822504850505132153500446061756231929677342792500511540306892789197383208405331756917489372095637455412031259326694447958400901361728451917909072627170485876223649880915542269355303149156426439498344478784237698828112827372903282325285471046213013852991876510812698349304251243140851839312034978895580023006187437506426015205531109104555710661308522521975238828157747665223144640944615034234095653496373294113606246409671965404218903613207042604759723775556060202707540636201965298206842657090857738250214922583793955238061411267722104862365766271760778560071330709754619316232801130328337690345651551428965138872136257349868741281545051271065912525892029973974114884321258557961547626588608699991314393847539353570705198198171003940193021106455296461164185930057808836464072870021088776082775369554234926507823423401013072951913667541361660595406083896575136991858919285059473063515840137123016562879413841662013389134643800148144518406357577314570950579732099406228229507899219960435443330150107012071744015368182700846309365340002681965525615747131398241759299824425857267897812450701704962524399202807072977523589358961460586331072180418525251624028224636272133501940087007965076863942074076371146098608614998982508179416655960414093157793860236089770838115795175758304772179023865640861101229053971753946596153683967890738528208763062087331330478065510130097238140865745448934099747518384585091015605706290486558542569771763219029472128605235098667940676827008741100859787936287664838595427258532139815764773163979739155575166113166340272611135308372801479590954590785249690239259543898218811875795782998736492396140126931005604945720546317820266891785494562690031941954473559645686520020762575262513082017135917568815119985413652477770965864862869781336340936941282365761390934443323464810494214553534173357839048155570539327792411885836137843122502837146765560857570907592537253288888192308747557316023036734016575028781533664768974972434086682039104104082796749650797469731389558290149538077497744643485030876862481243917028692035505763480141767502179838458545245497760230164063527548608488443224354532636027627441088545599476365433128072573429821227450817364170587702078526100195616986714105595705719247208774229380649545624060993342545579370770476781622546727190425123228593334740871153957972043078796673806927919375679753922814309122111058470580446890713343741724826567664963048587705925198725581108459791448527504156358089346781447702084633005008565114736140954457370115063280894468650715401556450148529992835179619287173002501554744977792328699712818755383603964865167144299719398342000272343205747511563753726200284031337943464878527848974893642287341798018942279872330103970493721250478614253257166216714195081073668361034059152646306533355691464003939433953307314604559792616614227070287466851779011788100333162937892355594156051017858295684070511454547056938815767479921469099365681254297126227605697913214507415106296455625585157920782082770297050710658823882940223839304316514408688703532559455506946081089629350548909432755553648808443380673199884116481650740718346578008858735001349118173023327996213876069155137424373875523787473962531462688619829626939214815778363723703054383157696150350121056411628123204278464492966929802693551611066101599049608977460612321780736101418559178331693868836877481861438624745648040546880427365805962148393903892474483555002645340029109966425121667860358557285408509479374746440717820709300651585796483790570683370653870041100705033939601659253937522749614368899477027758234379632216026966906884773965975611122537662526751088255093875463215475867475482932628780195710374290617437654970253131447383179531603040503524601005338397176547645480373131640240434643708793818021431654108481751917146237676505511197808369641379497609691946046187303334848268260960552816022968499293679924336206599406697000643958076996286112734743476622184714443720582257183329117668864313349439048150414651974361812457129362833960737329610727740040645396192972921595172752531303243237091953790690881400590886912780976173570582867068416315650492181246332076939314006882115423582567759592310802953323641658098576077802646649599844898495335465667462082905319951403381536575411002209753966204443281683632650395192892269908091644284322321724331610042176233928032155220900160886054166499551459303545064984168442658177029272651177477271711083633231453370683490041289339950323071607020235552707026977994396373157356861056690226499778023007729113479792599612612265001425947149910560462866925076515734997270695098460405833644068831546706640047019623113034723455488638678398693595836177922946515749950698084798602620032306075098471951057081228053412332335156151300046026121365574430457049662979274030916133541223006398734988359031255678874843329905717344343440649790100375624138786913311442370873086261822533440435419083535980301631382302920839491279379445488276726425333681090685438243651909938314573570183988078518215676172263330155532661237354522541491542185465921521087799575708400201386818631507589162873712199092597080408560976201271608070503510125731069411306762116295739023040978483718327491028338280982950825892340073286814880536639470819447316931035448179258378420601626576636289966947177136422770715290822424745745222876868125830694170165976404970765436987387261308500202719449749878288991333370644840053973019169381286055273391466280200644969742562922454502427774015747203367504196555474212746400575789041117789780280534322370778842338834275933660599009268866733948633980644630190167324732019114773993739540790303441180189974993761613826778728077883424439326393299854656849048128026410199575533190000610412126883354627617288597486929402816257278558494307607785185482458247032670355672350258316694925813606453921413772058872190924101381614749891679458944109764681871702624613564373543162250135886572466213404758739572931536968574531069476217767448740198892099599414033814234436971288096956893869992034474692769232922767725591870101301595650065710909078348214836327377836152884651937305804540493319852024896923020728222873731836257645040757613260278530657880505310798181834802206923930402957210783187039982119462703895305191343667936529858082318296298188967880060377335236155760465145757901374041268770663818176014754864284883629784037309778255279161867096064723774138840656639061496170941523467325477709497982330688700568590794945185688843897372075465605137084575937964018560375904536438647971932789188185767123058153565618347073547011083854776525922141765833749173769706189535885915518587533570043568706918036632892780864580086526526600487848273877969697603992540755648008308189860224826911215833184780112220826172601052636331142445997750743276939429784107169755133672753066591577027635594700067628102598504750778670532634122171988093387643213063612493900737173662363993601780129790140038292935919873839075277741418312326443532142358014586948635519693435736117086684624691497035845619356832929300068581299702762704844455255601286788686281755378482888549181367839870974454486803673417182728501259495697101901371246515299678736327589478666121037786017804942923621218791613912621611876210038055882085128208724741426644583114601793663459224106199287275076145978149332248560573122864767095472847373207097353135813183003916191409228459639355740695654108175118469138347289754737307442161494935058858302499029661163108446586006207821971881129745356002195880294892780789500035364562917126238940677917399178910827479028005612362249005868957243770246862260415972522180627261924207024011190097089371567920649198801436750937116713514553512496000299213345546072575924204247647768309237868302393966968802483404169426692541208153096274867656973882437547996539123996056234249131822824357925702963895850914582613091878618637843052293153542616892138412583893305752152164375102995359606605575012907835405800647225776606807536237255769521898711112647579459289973926044330831161135507919014927011132546143994292743353056885563105123613770318796945597837401886619764256107366333257021318440193373299359526363209568664146497808157711086621049293231444809070599207181333511809958951747895662354285675615766505869831978705298054221906526871929117437611593102888286463286478289846777161375474211536968615981558930815867479880243799528678420675480626204646063373240676000263643250762106254741023789390468428349318851646540307432900433597721979991033149830077639397463115526543697474247400066083861197648061762147516341376876467594682097478792936488290092494095240474581870342491352949049634870119232357734977474294510589840188494281462697140475141218232915995608872156930414142461029009873879420112463284174915996697842933667416350240717089479894741613365036866830929562211783503445659723691461041841735233852330520683856499337865117133505210671164595843762920034560992809335477145677468155481377999318782474456263553927873397526285068461491734004091627354012777674484772920566888687976228087564706636862240996079672711052490638440734668904767939343838579512791328231990988806058811348620905854894453626057831111965671025642971919569073332815742775450280178631966028114778375097327444441013423683950161782167666097745438364670382938868097249469015241673649047529790218903815190191344264498832541803550530705194717071500972605500349052426201528266234071473278702295313956763445549668749036134555259704727495335790272067013291187748932963638880405021038789401177127945648764385649992330723922847388517855274017971961303846472101577590113150481320511176576329862115560334704007775072443493256551592306007175257602917421256109721684374176812091493196167108322738667622523788207002136105212208021452668675040477293725103941437449054738389796306848149657668412346396805072000968931046471258284840412524887022853112005662702509723967285164856041715421119254283614780115337603248404421576995552810739400337134503843561952262630339084503376022249074223254586988509179942086333436523432015004607140071411201046276711063171478985235787076718627536750628976223761900171876306881145138638257271739217652837410417825707332016610872554463042824254576869976816071211386329694362750521410962684670609825969911248656877796404953380277953878092754526906985359453093321561875488634310637857476877230935059655541697685244002725260559604802629337524745588524014564336112988422408825548849577175138372709279095984936275987214586639265078028911233383954684388626554757633545898050795663485604819423535627065810106242738244986992455874344573706921728026848971592080993649894066321629964325041050445920427097475468393513988389838702138664355453221937590722360855468491134541022056261542244284061990522647078918040046191230512766579477843273843521448631080826185457219750837665197553705050872383448079678160891706866344974289649787634201243761559813971978638092697954853991517615680540326920092008901139818217413498268043748655255123988359379534345191492190166769406683799945859143503073805050899239900278134961643489886185518744897414000664740249697059316309917451522032226107683002890063682886871289915962865044609797187767646800466670430771302203775438544905556313498648483302228252233824778498800813924519798561571806074063159275129409112500721132034370008869219999674862008030547731465982158220641844089761094529233647279414713422666865959850882988918303616230301104610488955395312908595277720207646597520367890117320240468867244432172808779160753198394054648692480498562520366115570904319831801473094951563069536701205270685014628237243341829920823349140910035185651976010086320334345686810387415900627244933121530056686005223614747798124163775229073697482770991126838199785450924584496348144816439272997220098638275359274565366102697002481037357892189906876154473189774498693001150115462383901950592323174232734878970341995592104266780730984139626520471912601534356881368187807530412838585360857841421397582434201655177287437587622426354438618299407372765198406776686966253621939690528071362819932940600390654221158080760928150036588867807760326032144661518175119943629746573168914147333854953343877164384083624080267105787085735892133160382293429496469658391437000122936718808672503002062528570879668189504280131072296543971312589794759422034847456015994070820445502430894042826597446970955270942234283131192046373181144765181082608694831446632418527138785609968637723741517687361006639460609602781645517201314009250985424502415609028828076536582567526473729031087487985106241405460882149855464836317600629003363598964888969460484036304239618558884162882115263249755468345421515730456992721880974945743276871983580317349797158400897364669077394687084698740203755261063132659234607383869976249016989169921607683313898489818598241398319031792272049355328462693588220317875339613310619622684444615091330545493312377099458012493936282331002665012754185326252465482853800348762984992566608579015911098292464910468297915599022399479375354449594095489637339169281996880502667847359360447580181305737765588999487612193398229518041033986675116407798470387792456000926538671667103403222636385907635271038528761649278313139308966290946218595646389815764265720177754483559554388257900017068008588470686953914335061783821738845655758534711841386598859684161209882403785019943771417258417402211067451636529908339948611500738162219218050445029830685543744762135449990116370190866306945933765198637068023361156313928198383958618512564094988281281415707351476200492595378355969900963149452221824952947798513643431393370424416816801012073165076476093120988697289300379640849812493145591564234342239873546523255147168182777489681381508058023404681133762883033033808974225644847241327763694938563231668903599087247338473273769490265794782850845181572852184191302385765297544374753174509340403535044439594512055548264165395018878803987269108137390955537190725802745753178189775128400371890554216339506618119429403466569911630169409688737071012928047125851731753690880387357239440367066902041666504017133112587204767954352343235489715759903331181608832668875277348082012169810820501002479217663525904235748707599654055141533200505814012272718556236727285044155723233748114575667889245896581882325974026588817359453863752909357810893280418275615408840958888385348980100303472799268820368769400314763145411676110678426766275117239954556907499596794114127316259576398100932314038161932202211073417949952136459094433845845307682080343905368260033534711570062202252219236383232813098695104704389887278644011549831300796168612405905774509178624547870082872023689439705963860823765285623212445177503294343906987613815054862612767103284106362063150322251610665172828013989603726452371609072808013867454226526698843290169017402129497734860149465259455643614164913933025421833135992795430698272371177261728775051204467137972716159093458839985181637088432384429868343420147774142275563432591744873021417340392920529300314594921734992050748087641029899027626970518554579244353205316699333613853281643387488743430228423071129973897208910614821392757626101676504781869706660499471654698605012952680942375128935683872371203321257220046760889583121985455143288124910877214026818268865461130164272501755176915555443858703006578776351046422838598645090436593649402030016422486335197242266686141443107061323509753347671409205005299607192949169102483538059206449587419288471805285098263222348442573001046707177780289287677020273760633204562293198439271557367676846547834885862345703102433181272156062231642463626841059744690330496417921713704448957391994666233915450842695964287159959491978972153645189512840707010129409458822844195937723186969978207706954272441805390978158306704666196795325188354182322892227699239151282970746957007804133231411475200067500727542918086950327407815178742272207909948249259671135595906309483143502387695711345471045335375302767112577182428201819131853747722270531484630696926554687933263916321344165352182042686015364118482267727266253032261628579341769674881956063675841812201354746800463441606100980402555099456788900748006872536682745727651601263928288446308570783515521725531042362969242586820617434337316647485553092473702637640698334437080806380227560789805102363739861728660220401790072719261642597620150381912602088401426674009777109732453906626864677365671884997273021296580852685495378981481670906600577292648087847669726241109354400589562690128481866723756833120913807869990402116732287990947843028426748433033260966228352200910303982328870604715005452513344832945313001321882632432126114214687631310279183530145746406481299603978520037439997714016905548392496436897434615999425643406118135702598217566273221912605933665624001728146602959768763991574765828077902570497614815116196790539863112516677999924244753747534693480079130868726496445907001743112249471778245680485033391055033123445417414284087290051671010117596912148577193939344299219227571333184190952312904486979633541308631960581490811790247961335455221679322527704857784522821669719317348097960933456474658420365463118079213496646017601465584066300197021297737580225390096372285492615611586707517065033473054150851463618179092845451070780456506099753032671603537897566078748646156509815248419659074496083398068335693995806834067150981624839807769611786396141038316375940118537743134187752152469185475170392477880758605207392531404335816322938102404665470165242661193440359397233344248362644532105459280096839769624585743410324981645653291740698136380784749663322953806723425819020654161260528790436028300901851422149134882046121354391416419455836527637287372896579495931901762119793775879800856190554508381779898096836292417096055137607598128232601924580400274581968254653677740524344842513439267617518471808999509933081053835155216313718269331155536223247543834600023283162109250635728820477489210252108088981799669695622864796330420101160902424492629606546543774247090749812772371490296928471289638354191032769895087525049214833780949114052072653525448667221808355230751154026974925442501208106051815106156330058144224237175980649592269840538627264163852547236940807174230695461657240341989957160382500293111223912373946194017500034274447463490586390940317949340410004553803874278648863580322068414007406431332603740491419288812705552550328746012218972367397580431019562136057242127963730639086073699108996025459421641220993884653849506248033892142337052178638972436850852570541285246805376169331275219783211021305023481102922850236917457823840092070618069594520068511885191728499556592316636398383658918878988443109700397105386329685579673013460732089765372991977867010877358066142725992454598766450950754091973078646577614749650111118030036763185727864720541452489312358877134154574489617267103837167124562699881798956029537579765256541801574064511403391983014967524962088788759070039423145227068318478332475194314268228899113642556410946395621443251943248614622651991393867869709880768564303190454128536855999780897525736677056849251435682117958333166101378920758740565865889857961580656483202550164529971355550409923879768870295396605866043225026833253312278008942483591839189980790823616595320187309690912797392734069122661465713943153841118324603722962079527108002151259052276158531597098264005176442107648314136581150315741312781090898165194004912761533392197371362590609775712856335272377536617746514152483415454693246936967905806348529008348396417441239916780081341405665459302809169472747615716550969052252814792615576799155648694604284297814024170148656948880533919262492045151858355862276899517919014497793294475571701364430571009383027343197718742352037647556651274105981499332815931421652720625155052992887004773019715036890228588488902456403333226104842850581296816373406333777205720424831689965188709235866745163586260791449523854208369217850274907644263371695104344955165082422238220288970508401265551600276928677882861821214668696831880796884557758451017617158619896730114585390164340474840114001796187753637661873298808190161956821719425793257371911485072226048153869051434939063137554131939941336915602397685755426616552422470098629621005429697876947349250632645172738179955161581771242399249414736061399668383058150855613012762868065861010986670902986337124097117656727486077842354916997831414304118091107519151348279145568680510783374996606575709190370692226419060442481925272205670273571396565199943417921396799519228159000427061624702233905449346896015080874826235521707395987989248747127637667443763201009380011316550569881689161948827586561632329046224297043119802597646017431607889045720739458311071000937840063926010756480552405256959352007516393953508323820426836349021047994007436614720952290963736249986026919966215339757991915795135298427631311152080940728765433412928218542999921913861588286623799916601657085439028914227545183374796869014526391537577846556652544492670563787363543616193483492500587965611625471238594944232788143684642678623631702938266226645680424551009263568847492951452145946597456017854241490098902526875928387394125181838214356903576839465755616806177897502339106756403877494395094996948263443682855788268437444131905232035256973132985501859835204152459572759008898997007997490108932258430120683682236843652908385013910482978484916611723780765952077646185091143471552415345347392919329871834627540931251220471354122680660393398815646425265239383318917588906209229189210496108161559130570761596621436452638371715185863522290060600464868539066691632595375630918699915011798173500168124005107351167757135074506199308812694068419537095968972077913662378739117129663162527349451667818555134696658087628750320375446373783975281153851466973090315926184784082493517189550719036794710739794708806578326247077637901955414587130299622798299945167483759737586111543855004877445035299684082788993448534089495393876330440571285493254788030153676493401701516954870837523258964007695024712906384415869230334370639273771828180651103044085385619218286144665984401076628518663369609538174652690814228036071120237993782219961924425048591263662180608312994712949147471426887409358688113064818571622144779670994120077229869103330452182852663692321109904564849125003296546607882802660220257203374373671338383336466884442485261414917043450714013950108861128434146542105984190964414180831046695541907910228570366117247632793691959449646498886508869649642385323661604237034117535522851238110796896358731658667479340606365260325555305875573239369686563169200077724216069465173941415080507432105466774706179807950764694709902933282521287388856426532901644296596948303755350939945561331266609249803758260756087579768158267617491671615164208572389339560721978997447681108362979186943154017757177484918310145520653999777064100164974826119760433791930037594280077669988783167476002829517470233221304203291950020211705778576521690812400996427527466570546938938551773677224631539091724311810714422563652658688786176069470404024605941056280555266166852648825835794453573902110636674901669196951555110719270866961068996337973830394074468259766907173288595383077366186591532148081561085520880609897084884850656167096778745233611980070510247578284616993827618003837937089862209031864437399510050308561008446527351581075577784785254888045562874275899598688699249691765513559669817327555853478477338881258703440210198384463858577147577305687697280192295083541356027113574356160684180953688748809403949472042063779828663234559978763754447369772985807804160104336594945994627265581057439526421619070466173811890720988297145737353411246327298939291544103159125885016763570536550715043763921130737371723109933579772408533263580450288080477242780051321726541030810351189259767211352994667562351941859044408377921282678069439636722352569749158969459997659777318989622180677537716579222116871122009693353882345216447184489361694006910794623891628840364772784284748715874812621905487669062793087933119962743729861319128968201386530314372902657885615187356997646045927516847440865484407830673254052466962963239677693644078606997974236121930024921848074207886474444610854312760726509181023830231413161889054914166818522809912529010893174300401124461998436128261042201142146181350733242391038306103718693333560160987240110781821730904021492587283936137984730787259290439155261565503263630679858211034837863640940360944401897216190544823722723249720847059854705379992336161998528036133335852462842391015991142488451444331249211274048535223813645781909012590730456891626927559108709520258697196029263323862849567508718914143552027537470710463296699478111419372173558492806538349850402002679871451417468205717220417219068328078686752679236273659093999878969789258800308880367987825976242009410692179849527570338996191250963028362157054243063810963994345334516151855975609440445114535156713442268727012984695667422019260362411125188376032753284967875975538795998693422431589288198740001943687982761735953520716909877899076337556278642866849759273980548206120134228012010974885065276162583663936339318842058438266922727269277272379416843358467059723078232090973362331564689523424970586313602888980707767210570065950698070142597430674538932292390330873772424019295487491338060001921560435653760258441583520383270343135572424098770919102659446368027108031364069411412480507381000932215182508941266057613381736949607977229675994896700732089951725837735070233075530759045010975252981743322844238046895625172247495593297471263308418375632271693287265948084367372481657996454106970753776904105596507505139436151531054494492228271821034984973280095485306001017246770550067183376511112038388683278245686081557030039268258038164754916355316326383900276772987477405092844215709466406074605140702336951141013857318179920428605627469135743734728478643296208924732142228072011592805525204405738710861903092573501724167585437071431723783478989729806486425392955526093237784880983256217835161120906887162477447268235519448742341681585190736229078970691821982959358227525365068257621464649094051003943946449374572356867373414907922789075173663283621809796302805503837344226695301826517551869017974811405235730930351559820522608755865723830155792423828614881187721089814558653752354742194062352305248259520404102998301605078133175116384474989964065555110967770239304735966486059255254272658023051447062037611309166659205966340810454379906558941253553220466851923935584856651177791740389234816707945891847279496917149691671872347954761130871761258114862901358117365373068842771506628133900206049891568384173560925207500885517308600827958037839561672128972498744723835575051001878278053865522054315777300289082081969240817123277425693153065787674114679864940008913164505728170349119818507812441966479410546960104224449766618556955413099615158093265583884168064175560769053791079469420711157283585735250922430473413196205005816249730666690921851639911795968741582919097150533634383207169935622384119757263215752534201485099914268568824193400158198269684891964448336584363965561554910143998253388934315034630090410024955032276749832065949768313823295101412412442298904408160537970575474635623827013474592161368708880331752766550546467666960102382102086291162396169653892866718800086402852746349957993065828515798979803155664292740499015957912468436256801802642646569773999445581373422042544756775630900009290367689803823960850714416292588906409176760778222669517588946210374477547945662446266304152627453273153292515347344224936633363812787809834930927219479514946305687804553192941572841030100752289008136333152192459305085212989278247725706526686293093397985802681529593248476814151924826834458756654479823794832776302373557300563547596491926596534199333761517935284213694565562510413957542872168581977437254186073082588774952558783696922761049264725518302738515565700578396206341135092296435225465928142583191025884883982470289232894229696424030333848881383674476632941498368227540695597203869390169878521577666431791464150554278322604695866654996393813714829604697293803451329579460341149735833824014679105374937775192828410276778324622266648739808965432447950132645525967042262589703872560692537582488530740855092156412495297423018670171062299713383973199833996526607944673373567059915561023949729837039803059105756992819807249247567127696626363343599760348783253037419919852933741818178245495521894544474273129605883735738029762884177870985790218498205221139113764394812052309181968617933834646633307348253069925008183461200315433350193625454123769995409926723619437950234634658187383517038613469128844822504784738024555843404071800655062745413960596118817173860725872941376509663862673184930037404656051067406147627637325211114146958350477183515820180787236656288522077203715981325371569810763351037718281939494563258735493900690148821423833870054620088976830183827871977275923888288614583883605423474185649622442549283501957723932055688754376783824507580807538045171707210456638871065680607119554720981757385931082155407858314519826216078609521262730110096441435843484670517286428302029952939883755555079508533714024981796574939135061437733474155285485321954280020570743288261718964783255409263639209350836852236839459640623107212074445758705045142778953691576659205221050135839804154143881223353798858638535400154909965954880053294466619064236988690148974894494295318206218360368624934749151402485343760768777698185953834809132446136818120707140702555082356251726758832004354820207669461058922019984650859986660700823536453484231988306999916927815032642401476867660312148327944114623522143253290232045650021915496348588349338439599561761156702748764990582574573675348553373480187584468857723555218628731953858826776811756010011041217248772664028477119653310380694041288715845880056110646079206264986590749167617657329560587331181226244644328296060992215809339824129861489482975636855905341390281047734264924547446291635066622112986941992448848906201717837741732914794958051327719303615243579811335710448179804180647176611713268476997186208597418997573154512662785346796063153593418832005918436925444092700114226739010952163486131982682233610124655698291539636054219103205139483604818819038141185357458205847491023380681130576687270319747238354334057481628065323421383117913289487599548325450362648071912199677441117477597265925964171568503041814877513553929156756651017593066557976932701067112554254074545931547200848536828883564158571638266455945116282436972187733507726449825827500036170711321955092590334037693323809636513437573443450109974491156588882214385692617905732511905403127776457995926763470389200494500387121914324766126077104161018225663874551139411376446601851528382351058588391324757614001038334886361917723054259900870162087124848078824155979132357284226090988701193830032559516129541795798627364158961381282960564898666194110519741502946948605770781764183455277834246104835931370678943531632875318063892963438953384293212740575658879316524464937105536609385943633318195788566196458036296903149419847937194893892313905443676345522973816176112321160775502813643878378934064189981451786455588662548747479013700984441201726091447938382115099383472021270331906288879776754946761934719760153991917209537923632173167309028760710382562718502551860725306883577241004554551381486424095544069912419938322824243803806928008312415019983457032988384745278765305371358698334555185159285298972607372790529063969930168266557556816899853746800290979451812844302166158071031635393460267165391844143417358981422354854926701523618993112125613508386938553366877091468648064422183345060438503142707365021912809808979405180893062608992863323232721219657977712668174025874116424916775701078924489931837591480572128951915445300616343036563070356921831229059923024094758309335088893137556758163157508437891711075060104553665384751276981197488236397724701226334622908213699360090058289001751571044376831652874013397876016909051207508417127788476885316095272012240351404498711085100152425062282269157746222695533251778932129855837768023236778683901228699885295126395914321398449029714066370886737877932247561253870661570893075112469431167551396637859132805926472287804191563957290471674445689692149738348854593954894241549839560711171728622600478981752047289208355828428617846974214542171548913506480256114733619488658277078579579272898099086797202356559903317803951095626154484521326237289266144787713132006172487099447918815258988685853545254226706330327825736048412503532498801354365945053709195837174454903201701921910410367049812986462623397128561429502291226571830119682373218910877207046791988204355241457372984534646177428874115206918528977151276252175528729157223566644117886444341759518736056657356631714052887240699372597498013060529863427911931790190227082909200050547495761628118816566984483123492976959170787784400835177706497553655285952555161268400744546629255210439626169051194853221023757797489157254883989514371349012425426059644701026351653812213389985354755535146981924790264833811464515007141926729267964027179708222772383469506371347446049117148740094654427107528277562703829800207597112040720258001054078910938497578947375482976936143413046249076060170974891877271242748083176379182962004081993165621632571498040545408371064648132662052247106281670508526355371013129885012380057660962862968028770480127719107269781464969294972406737222255561913917658316342604338909075951180285250354151303452779800223447691876276016443268562159331983847103595456976499772969346569472561737934864495539198439657481712501742181510384162826037955620452333941426250954867554259227602901414183092047050689965971998530181355041717546553600167027970714501739645107767750241085524517116971187001346066003714762785720977620487767407463583384936636361142228234758654303626024019846443217543874774134769606971022782681825207588843537797930118863915367035750855050429690612916181537197422637321389038328536498714018859053135237708443986883939164360967660963173663801058583315619148312264495306948488241977414243735935355093310666285641587706565401583823377357507264847530769883993472676163936954937092980501056659098671162815410272881249896084688576439124868924287263149030270821325891904430647414185468029356807441389927930200676202608685563818358025833650114010047787718510636566737436287537786967761767317393480059564514430642213758003351829741727942719796076629510018350859985613288889123309407431612900235928716824489442638829514411650406481519953756706872141635494165353498188423904888943834117315694591782630060902207799527142484819660356643102858616244317149512855255529257751050446795868666971786125452239590820032121678345288548901739153346764760339620179143038599829285027834840137461963723917967894668099033297328170067041594761319641133267803951057039766317857536174686741956779222672725882073770251322577107036240234452410995258850042907930301881160029925949123397538894287004327789584645694497696923518302626822125663564356270065967687830772531717837160687885005427348515507252534277177710661500183824573134214164117491098342928390323552014873626827423591268296573689152905690804273086161565778495780501232871770215125706829792190493845762720429061404019095613202476269606692224721412677825757623444191028626308729245938161766100079549228613569177372546209686082681833620146497172350320576443688725843177085857290823702176403916492676671558722777657437460927896397135905737258733400792829584420223342139937214932968287992127725518461217239306869093587347062937772921362096983545301374554703632637840187500631225224155670579406732626525830522390584463230837199529316956266826828574341061002612375192474325800462318218689732349264976392370243186889433421385651554520518660936454116907256878111550745809497273982040239767692134587437785947466472795565875958234999590477058217147085132091866387969868705554521834971375673736393004307760620619066232156831069711835060444422579424538950279312291454427594405043162015759800859143966960958885639683252004261204499907650131265471636085789490580255655289987626493321873029522514774092671870222848047540004474983472195498071478265179114777260653360147769259622038564657388086034396637194912212274306183711037894775882372456755851229188612984150798727494937136577796351595206506191169711826061122666367937541591587344552200549964191556070901843533991611334547968959539827841527850712055447102644881392038785995059300421755898673101219742481430935546880255091533002061981287395699714365822414234340133151757819523339853937472317544625696435659095311672214032578636481127827719624770985733490691015293185072179498252650868039251159625176724600727580330236295625828604593613651447124993533217700609096655732889697735180561440628536480542777855156745141483460670496530981352080049904366046351806293554149017485778167821234439241862242285960059233423002333069911910562004536044704071629366724435584745580753179337413336641916545032087746874692471407668162781472609141319565380373527139395675650127405307419514321697278325873459801766178183808270100791328646001723991526024170424828077253237792875203106774898559778359763933150598274203633966775826866275334263588210149867758757202085655393414056796233138307819517298449311521432688088130501552578476524468456636434773585679630526619909544189548546195117938148138996745390485474555455399914277007720965148077827355723678271070386246624081337417084270018510890170530574954503037728876070901477063189889246140891413200718238837683520200791241396992364426080951068398523639434836887094923624336723491701940146945013105883367095840932486027724813054037188771461799876310825338227873039958071940412071460375022004540683504338160607480323534941712613226173348175767525199559931338201623657421858774396592461545164613069278997439754291475710758254806472062486809981652186967036489382063819003328559675976273596428217287117840385368540631465649789083550434012386161480339456387906793485396318960107646312764824924564927959373168243015654618131664496871922599846708350859549966583684982979476761604484642601464448601316365595343214435653366233755059563720437258567561342199118346262780379906152664915263637350227884540519398624126889076795257866339721144442176026862824887604385368212968008248982459103743270931999003214406732062491432279515035634067795638119534650240635660126229049392985724928663782814663927553776126179414107410227758148505787662958896091803851656856019746623794568705323223722044136202816288391185297466550915715816162725671927491357868966045745829758361935053332227816288194988693697968646292288094600765444088028593303134815523964761052785826099518703840250097066906051096544355185275393853984492514014005057377232938523966978792562905476421559454759058165244982054074918478290350686868228131137724005390229088701804079233196600023541364027338357455723575144304818824778470040916497087764318384752014624028917750561251287092249064697190172882925246814067143299609113024036703987256963848962134933271614558689314983717523761227192002776744207995212101768142906965614378126437636346555143427494265439518998670517892557175072438767084227578647369159203509524798034507854584016452339291404069311638156760722798504883153972366702651253308595063711211110282708660197036983109167326273841835261870667605901536929800972029665502552767619192234896741481014083489160643698081912402379981963707508922308562971174974425060056532788477235389750568515087891374901372887364504550183478119232372800288570998619294996826044087096682664716575096020921048816425704936131050177488629877125442945238614641240938861130608204142883248456502724408918553795038189184515623573983716615624933029278312957777777036794476214454260848428617422778618805668370189415557928152467555126589773179748510982142001532058891011200916264118075267864622483415560278355480029643509886244734468483327350233771095865790424716350728458327998354445227516294442167325831642852917669795282830416584738431100812053720102191854735910981221313883112961736372212555542047165264097179857460592296507934171596560790339344745984399192641016779898638304672413623457947602411304546371684699911897823093385774248323571870580575917909117616128277581823694018144210708516501362682026313883727881046882758515997531420229606982801705801758159524188267566075878318290129292776029482656112312448606678679220417196610544180371979913929498898243704506319978970052917682610732620974549274345035931922103542660285837990579562956220349928896401452612865299837850128939989096614792506779258089553129771096600935613273301501706501644505812280529931928490660078309620307698232417710455467434444946305033719083083489870471574848072337167221921570849980536830177982999661235001983928217885009756553417502062017624956954827545997316751550789648494253016047996748870405886953401822825917073584339980879958218927419864453750264508367370042043506675898470814917068058463192096510813731044915381909145376940060465220812691144758102321216370946426526757010274384938152677903780999415391206799145147179005197935251450397023012340704068249068857147104986349207216478927089361370184972625216044147085532462756832841549122766754887213520749334882813268689462067668298603959820429496384341400748585710842964637097360286449654972664030872118492958465974043594956306186394879991335434008154129851525246256268103424327316320263919054336720762488874649447995485790924338885694147703118347758514619542882518731217167215442313829900139158068241236824682522144429783283467946404392430022034646516289606942239395171950456083707297827698639216223719263820829567863551592914450378072194251710201294174009972130723388447185143173185586136330569660024143477651556825707484420840105565912114364877027887035958917446276830453819094958455273426058790156641826760360186894159910294133486384343964180916279024813458256076496457146495594247696016407953948163316378758758371535569340182697370441426538387107722558327110085087996748768483903696160234064203104271012282741975944884142187951499517270185605123591508645022194355495476325178686505606686115899905272900801368811606114657948110654717822908726434697471456027590471830301548190106826882112820904974451313315537688545599595560733676762179659151076687945434196760460073956578348295796021203566423776643048838219710612653232719559979222622562471883519055422028722616134005201743745989025007273979139086686351904701268686607017162076315904080171308139472581369207432623252992201002449213886049939740133838448866805168448641812513968466144018604492269296548479244201260248759147796990249382640960538529931697443933793879740021149898094992641968487685426013251831761562779493042248677324755589371247456202580631311063782317815161435873095159261709760482915341689591351913659302180358538053196719309995132415366176628892054776474812512768120580984732069427889300006781202412694011070195940664246847113570026122407766834547667269300610333191635560870738241218475638565679496981254549068177923189196257077767587149672720442061916176518047135820080586512974893523106614652831054339538941406363346340438476622258034220876352937996681681614121361274362005804975837333245925975344083778438013596874201150129126480757060178693140749457339724055596602976060111812087016305934442439209988969189449450365546713795059954400201290422240988485003217882964046993119379622736361773847254218054616126752770243417772817815883187281028430543799232908376961186279261179316664120612356095837555498620380266957861927932857550341835804315175080195164733045968342944102026313639697505034441876315935431736501336805167607225202220909962950353338251983659013085043506979195591116845403836954402019200066079749514571589134239361291958243397082538752505300040803284625080536450632476269513521955264790697655060885847259917543134255138620493296336328189747619353959686148000748302408218117218067153623645432240098368604025559126805975714069479487898515094658712384704522465386262257589757274305636393912342476797837207360760457790873969220111322827759347140866169108218345569761767113182841400928786075445775859838754750262836124049526061341660549358077349871232510025955120145458216909987440373506710567121287865951817464358194319047194319155004810907255577786578918686238898500700444053018779215791767773807882464320496373227026764321689302354897204562954646845845990668033819651727256260600467999698486219400357734937496440850387300921100657854275093697911425082424400819959251850792720178984627040431398653432114467652959143338700026791440315107263896911030994879834560135829772376509536633927961515903933705082896684348532123826391020969210105731456199254104164714381750572758041117990096179081938886088715009432443676135921425767591877003683031046933291780272734891415970569296240240137161565721236047715892790579331593094541237397963626074308093437307395207710869350976053467881104986236224818317705870638679492133428563034170256295985510007147828222106558531179278023519902139604438125622106782591770850022197218431201050704569936129602695189679697156524286328099000166819261250291505416689137095571564977878377964402233310049999870322136564989255344061168951574469338052319313260480508395997554516710117300067039210223564698232981409342083703063186173240386200368818378467191457102871172602272433332285726892295476295216595638796764654672032494572615284421872749655604009032786943662264166219660492867240824674304117595389226191762029947846531273900285484202560420907126005849739060574288423811278722321808332337022728011835913855754357442732544198594031681444694389171840356758966629205335521357421077599684117442016515125183662401106827905885264152146331844377934365067566657401955408896083722068045952959910915437079197120709996588711629794063960413060344805661821616670303485541952154621598926769347558449854291269303232852160767974208034485866124943934134506132125164163082548585959566217866884810384048329472092301345930837166300809105205187384795957640670125881074815834971883502278637915829187952022447046693003534684666615715883530086221731934956132778906773729595218156681269718685860463154970865592874311563339795644993014952928990195504107593070715891591335876516915060232728173995945236950778183659830968993440693341735104128086481543757512166466072376577213872397072858741472866298871373515062798060184347531549343716249840679129869037192131081883844234593555226297241623599664652668205223503473074579429103051794367569210930041984909507114117529089935974693076207479190578827676292129661903750756965408351619932128802732396432051144031329770855350328274691996344840358744990409385540195573328908243987802999945370702023949206378900410161945269447819327194250714049464829017841207896569764826843988673097249494924599567920515336294189700197305958461599915773668618277310086433636556732334737978045644311101653202374250200723828021111336783803271592419128953506623942020720612022898517359852312407853538379590030030953773618358953508078347504930654575053606646862875389075836289247202330466636907601505436757257044144240907113755836302731685373945050918221559063548525821371963661177783008465070034154800396955276454237044995483999025567339397632999140696601512913061938570824766979933571072037554840579026386569392634932832280144204333417981963533627047143765614827363168638320791095042861023376469937658937708472343480042158091113392448073294370551216259678304861306533748191115216875952187909298256951841776647475212204756001399406133932196542672949979745585291807719504575620336383617946968656432213398551863973585441381324308322860848925757109919390748738701301003695346963231749232498852173776630234278857577385307480339436887736540710969285985323485827936765310270248578644972306112001723642115549881861519660439505737729524493617813701153780332043501618580592941862232282571640814234529645719608868787637076897217899128501021526199359640677483636479578389674668112765272560171586091780769223371566201960604987724453480275001051000904158875805438763223742733560509293437042841117487717947090732973727482192092335800327843807419615187742043134728435903635587949831278870730432367822414893530976117418326323081421086406212761436714277628816776738394752947316360640826423200951409805792945046359337531064367312509706021847219916932611736294113732733691972205249193626108970240799313814878437960949673547922849092236513838849052406824237911923124179266751524959256440327953739384079199268852404917300225613312968831491162549678211663797941008852275411195642493215452522724487745534328728589401484522635300010308789183726918877676476015406473076438567738356581786361216537624677713779077033228238187142574490179279207853585563175837332812980927443816715987285283614304132961122937819866429270166082570013833118963680263478814613841203796295018348597728586918233592869345932785645668609351402016501056823591351137582106745304304603739613330971026810038992612184274741603883759753656669343671654070123093264331271435870434675931219379184775045818936610749019025758095821906489133909675038374827482244540218953435724792238665537606718885283386113844583798530398431450616183930318599604970928314775714913045713100735745199647526027522486195044634784010492810720178128090768925050680570962394131762860430302358380537778978431636163520016361518279501268982397982168311012122253222298496879469697317204881934193153257899609293393975277865446544375227379770574219231166764710974613552867442543405441913600636332034846679794891815054942944520975813595787976899510862040947129460954835140931658489974207608791342984846102206328605662824573126360974111902063103798194489133327805635515893310647064959143084252958758475387117447005698780570350319596233622067609201321400276459806880790133839133776087466381486310014565007213376812943928497579631158712004302013250969410061454957756794433005381943434701171016613706986812870446043945521717292709310013614088968805972051728150756869435466163997478160700723133258363395262884691321321267211789116554164272007578929851010855182016874612116612774418207764422946057403678698242382994437513691519152951055023134653611182119126230035158081843234902651765382120148753922595950984654498170751023468116156704793106142312183593716593308084540617465962812796063531725586106810350169256213403011251260502239316640131084473729890851761688959288136867624993104392003687279857152392099993601459083552191450836440500848590965032177491933878090160545217225862334618142610752259866488174409929308451914004043736081427916629942535207071868801619492538644695645606502518896421829800509338535376710229377240517624034650159082898884587172738431371293923503592406671079111980012715116922730766075495414176898512503754243632922256588760197372274209913859419125575576015342653301564016268957556073774165434297165385187369723649548969145341181434612278984888223009422497840739396884087265661590288211238505219185621644392847488432195334516498488075823353108749154920959754248254046183005798009111021702828450481039758015283087755133525751530933439150286559320515125365279982918779574607063480902478736605752886592784748319535615284726661655817507803707367043361588110584319803441016746485421572424460183244898069042923947477903406864617196816422005706474383143723042227383535529010392131090441982199057326753259822352924452555417288258853142464778336552783276649674682560073785044039853528048950306984126955360513442105986482646342615684326880424426890300075437586189469928082476085726786367293198431490448553264958451344276529192995773988051169826424300496256173687402740645621598413016593113681651214560766117995864240018418043931266832172272764721884651640796739564374727265398717490446610151898062457705965319486608205618649319074045138852020825237044266365632371810681185007100623311516090033923779640643635259740153832418796444766742886724943578424255324288537257280250213457623541971263610299667846507453958076837675122224802904059472949845664443446944418027530990695308520306695969206646241946791377288668841954311734828170879614081570869852365718663055189077505225656510802346462242664275412444170247209984790314166069304330284117038468944291105505259612123800289041182794105759499031013170030451819693992107055836110149530483815001977943149943024459772572878212139352553443727928185523454062076447329903979268056371139368148900273729605944833605830349703587356990030316762604631781864911793287035466643340719682174559136902661203522945969643620063168254985960277955671728483999829430054267870954271039926809424453714778079668126101228365077116079761363161088074095164488609582448017550864274486664913464550039862433976580971370839832672310948501704495168523154959317608396058515999700328322873444965559874997469114453299737414062783994946810643287478234022368852238815235411182361766043501226885176867513964522749200537421583467365586532236885085940829142965535987042546694310157292358830416145154910056577320982846571983969886722899851336133137400651081011141283102611537775432321677863777194675660123811519405227481608563948228801128385182066426947242965125011305497501885612107011915623429666404085959961360476357914762172275200297762417767180235946367224108510720069941543495251105184758786985743136855951268097002209658064129172004882704795326221792872371701068139414772750090132353168247759676997239757473597044759636336745566478023119575336696102067793705359044877499809113605854477526689746500447432454203401709659396249133813401668167898106599910201158152689837550240069648704839824199957707575591401087359293354809381612511851618155643211519365439531835127473696021919794533770269101533032791264764036867974298026565142013318099303536061210629243164242224775453714724845099800262440658032643326889134637805524482346342102295882073614413603006500266343586737209084354096388690574023004611314355849048212910362865298071464605128886435255638866650500865739525039315338388694854638389436990262616391867935935749216150715967394691512261214962464171540711620747483080220613666050037130880881387568144690032909305562525455946586865617846325007677580101652601919341398414574158670770618452985925144144930071723545839861747257668279547513562597742997782561757831317929212180927521647130483724082013237208315316705574133618928116908980736534368962956166682594206867291457714848193837314044282931093634822472059288141237819975463990424441423173743720820644018527282828559686615382139945828627053393378794828905571509772655015395112151230456526154242575623673459407784814040532637687453767789518898705182585524680746615233580234636750058946793036408157018429564336265174180719569148940010833809704352461028041897486513304087644028692947850857682396560835242438477719960067373270667972902823571850606535195202462522295690362080050499527603182254711981237126275877960852447037780210974123481476457888999092759386282609437391914075637443811055886818488160574030953128979818950002367719885585121355263230918516121521272840689611716286947819571800356080686005998751105717028491524566870345887023447506621360095472511673252372493482195551268894577748099898938895515426880754369281968009846232073819899234971611248096389345073093716757644689551893486209150113616601731823204975035207042686287855170695677802389391432294430446243932362146838798735375027197095835411075452779326924642983409078181519459434132922346796828679423371627300488970639565002863533250246418806280164127687034559053517325518251995386344381826113082534721132600411218862984355988668279163321946884420433399440530251667117686199725077712632720081342477294588510563209237494729982927356973354247470448952773253163717406045569007001853786129622930224314086453459562268784627058210787953350216985499251977251907369776103197901764517900019733007764904071200015806531271837484814971929640156021688137012200274049942859786611865500713782298803984671583663957359627662828903947074750930102061508891776498465873891477634998329269578990639359070090091275294872817542782787955479413770976910205945276694059613647965850662462990527354718438327477065282465902076306008016302312210517676889381108143385176928604480368019207515670972735601101730141608261652253582271947995907316662945019824331510267092997149245749106292849518706723786206892382791482758834469377470584199981908544577234564472412480336870791857409545239248609967507568753695219457796250398890793359692030235312093516386753938145931688636349311683292662691298129646299343748739017924043768443626255028269859030883548235384996743057878078106170080469369608969722499907823288538376057628029280504810953879799371984495970111695959142490060513833162928790884853793374293114336509710733688907577455865588354517528689654719685755615654177529011957709419404245838469505416774393654308645468580428594840263078753812421521581962502696740098777063345804496450028129876514306040732997371655253267006962411956129030161264815685991956733286485059116728434695940655246792100443920982515844597270938233872385490345108257353188367735953780539832299533463424321005771280403679996528769634729901091309336423044667554055403921083700962525627180611269247813849703665642424856619881335235530235709417036914643255402834161177864363702039847188651212155020324393515708583902562305253462674639273824066765604219238475833636154907021565631878615016039957235846243580946636653238471273661064964729469609283228523579920955107714798953727543459783884412326212427797712231737892995196126434229836117721839691383385726781920829773311251898630462246146862328734885963702201812529577047998703590370670836551033579575772279719367453756640288051886241890653835329730379252508418411660254953831263965541532776858395785814646096789791598750792781807402456175609914736252407494213405717556409397847361717881800124184301583696661576309757258271447169503611946926293683294351220040276035940398049790224955070936942546684808414331326900917175623116437741056070167601732867352208822636024017194263143236958835463835622494926697601371689503352305163583057777680667020895133342847036096386847542603224335120871069799355883030987702778509193789386428587393948149651490560254597067694011460228001856988574366757690297495492981238100931661166416205431394979286189694673433992218767837263247618229045649866202926876457826168865750789922404628822263154363404745845945012791642124001227829722658619018109129246394576083671076231746831002376953822048393175072569085928308767404976498691707673371098814413276134259764776450824248134045348610965681609281151479324021306138079162815227334247019006912930871464174871898677633932140878598461077852948661748422385020218956727069911828279123552527378894136001883780592521529973629700204207653023897198625685714002238354827803693760115369096300570110567054761389501376711920756807751480860605361117960350432940328105575117479651116402290655192078948478250402103371456801880877552708738449511397064041224970696965988062778149002014403679223026460579576014753766716805066683154061295570235185640930493447747501478428064273211876375167504135026975547203497294581903124191110772682603150123338912059906847260859811294929754784679480860461262768147519732970762248143344081864818485193278900619794145547155595863930992703449949326792457621328055654048057905017857122015316866763202684453230603115078594294479797618768543831601568541080655031200845022537074512463041320641400965193467588861272387350594123475152720075630300294065728000383326270107270769762772364394970671788345906176547232069625089740622727790888608296113723749156395293752645681900300401558058203986942832823611926930821815720966385014409306807081222469706145820588401818687631134446737798427335488675622422399331892385552758903858127585452968649902743884449502605364085225871084782487352380549232212480720245876135555769890397530727967986173917327377078650868028585580412402995161539452941548205251177985777008119128237465560597887041678347699492296528148168746533037992452264839032092242169180962963412518546739412591747632686909392663953260200622514822778107931218996395064502738209926729952179993327315619364076561262787522297939233802007497033734023298095695974202397735500043014041681732694601411940274310846169159270618932321408363464971053074604737487209145508829940398717236608404510629692727897282513504549995396495726015314243999858435301690753172841152145258578546636909793555918418346134219625631078130974823896973911486214249380681999951727750462403200494648413358582689865808734162953290570667128095485605474348120981668340577308558695323857151804244922722603282787620651963657984131559942627101728723919173159885655529432072481484654346077604366440473930517761937915806792623969340791294619627559735399390420884740526105184015484247214281876130853680508235491660026677410267892124428141950207505410097431775499472587010748886742181413998628148518872272899553125172037536599285254178029906786030699339082433782703142198745830448948547098959530196748672012040512919445549509213036592995686250303083126415228817119884181052534787765605722186246602699820960837822822037428178146521895883638705243388489497024023377843217399981608453603675900217208928324810865421513755351436512509381651958606070740836926878935765146760631365677137286057994108661927700159611243862874800184832567930305225892963099076443885857413728235869328476542291200915249045157697275735365884693394893039050082024236669492393727760379819830683302937778592788031316854197906057529440886276594252713984644980385979396720374636261591526719903585663902665436632191169539906690294695553959575449185479590712306419938395523844029999817530871954594386590156729342014387173778842960086149100739511481841313609787081069001999043775466014525857017711534388662575299934404764773376616708053068139405470987556731435115664599936773445909538284892821061101223535009110306946666351583320082031643496984304471017263474968615521741028693262418169766152691480083438856705869483370481651078319148544490047954220108395261501353975712747845947782630619555007200090086599138476445133949629099180740308388708715693165661687579980133868104734255909850532780324108937881866502401890906687594863327985202414783658224516769271131933371226535377683043263724975024437638059931420425722232109812814041698540360732454953983844834644039121962218229865206277719416349325568195250467365082629339434830156261171595036388059802423183603155883117435944278972976647449879971812827193340809026062016907336582862093491390745843863576758565273926528980419417870233589024847910078535601449593205953427690822461116844496343133208354371237175561902757186115900277618982823262595989744607609519008317833115031572005186835699893606557690127276190940733926366802022528466080922297338420211598165667193295621163946082184683065420699907102957364092075850280056151154520502714792375269979880901882972756227283608973957363624725863667065980627029481449667609467879451706110075805274808311873401460205980358900665380463552887537873839678068866521203332952562700844800703735485649071571761651345148441308831090393590064618640267780998138481260007017776257468414738627077758522434464292708339236459745718952217507927731179255181152302639118849592824259788840181329788011406461101786754252952158710217473123941732409300680602537300788567455469530668586191777784612229839675942402175479772106149535729344363755281543781191821760229751524624756409589418791135653408861652129503213684789899410392942557383038598013764135348316065143921213447988691277306026744961272211626680430060222760297298057207999788109034967159086870628466871405211576214999105672930694718704708897001631224309917772466915438582049971949726484659690253221659131016450763388870495219379649023353995343220854319035920388149289669912362321531811299363665495143028557418452253578548835391278620009472041106891615543084017347728577511643428393533912800673348822785456377432679833315723080224492316736540528265062863621308812118706627889913502000005885413302692597065994083951497360283443885257706846582743614755337965080158766831416108629977893435964492777806266230606237872588240764049434973012973201480602012995262193639662934609255699747985938889432480826167049657683250623537022229064600556598918772718701029284781055343518852124322173035334927681871362111869777346987791238719699185837683860696777204959868560099659532695933571427741206184085164618209177215572532117198838785414647809886858682787156390616044231029199704460654569335456345513607639049211454029053116049020307778882768045744248874235594190452282489185407015134438677535597743386006370747686289291899310107380463135260173651681733084015688050478179244965648650984551053697205952674517779149483039538215433622864816206678033779852158847543203732054737754233389398183618735247400955970835434489269112064291962973035860743017894938681693663538364189057881407696747551510442048777855982840970086015888814384165147427893421000498896125488649291730792246847728296573525082541263500356663920325922792512936399961044709388888523886511153934802244263849019031889488926537988665382309218638196988454358589857186425784681686998859330159639408170693092686315767473391864787656573336540162304461764853201650993509740130553986185919995051774614440839531793311146435814243121005490953403746182773023717724873194104746529445650414423875553570707615150514704599653960716701945463538710161243172921907346335803991338692652777535068790251594137167188259457783249485082854609337115325184819130870534197951868679855948296786033514869229057326493800031670683358328189905918791368117589129937074514794573365493730384927416623318642542797436055818790641433103515754848604283632206020739879699878051394332927760634999471577406198256486715446796182627264033275458473994472652946269932503862336757814507272287726591394174129515776259584190726159641207714818297738899563263846306322821202057555020505974235972340882498784262223411581647517616111319607959322599861493196815486068500184049200134116707057153454722633776228500044368559966383587384230408437125823202572297055408951433764662546427464392306378862247449604457202208427301145162138297123829065726054534485040572590090267658678423504644405530838760179873838799496257473975679290734311005051293577214033976336642039617605389700134672268721357234690013084406088963696071666330017448148478902696878208646639813510117650981005517928970813600890166364208125943505011745597908217141253845399575301428392799434310116764012470343632697054577864925490143467522889691238633417674501139253569818215730355795206679099559012716856785629668462683114199828064636816091612982602646692843681918427483469260625478075607821149637937174743163376285852185811932839034452220901618631433603649903521232264973180268126301867257390153881613514386253763836685066850888165463909772010374380641926987270335859795345282027648431140946009912889460807616255389862338642195059342709946553169475016198223831726938537579862097475520798291666503096114500638844228705132064572636091988202667254063677554915335325207256591649051065619856478024501473426966046359908420755654831816780135470327248948289059915583923576950674801145782356391550237507264499455516157300143789231379954916430468105075390128989949217803483047104880797337708859901196775632196336251863636198796782021586698027018374513289112579649297549346566151161682136530020219428570073804309404319171337984096100996325640883747943787367490771344954789825759326110435841624637687569406319383040128163630067691275339203465178206534016304181310112146886423412598983545031317694562455366686119661561056025204698011522822093793363108086919650087019274574138284340601440983328494476417404044628916165794440585398753702067376267053382973466352115489681964285044919632098868548135116819914240844934104612038752023683582755815779313972518142659851210731083763798067099443481227327727821746406329487369253267409439849420832613420854513830333256095825756694676662117735724247102468469713507191332520899443866339167807157516745438383394084928380930802024379099269456667667903555938413298456791349865484034858282709219517500192996338639820423185516438989710330938208509793643035570399711401893699292690370350881055842214566961313471359900113029887741905163875977608001524364792947313247854973879958138156297178544798366268304336092741288769306593269335245489621635938785436002801734418846536931298430242924142027779785399974971097982230269083982197313689344061853895007892895761813335037805637998800178272079520969049637971895121156361605546273365180662032853593759873863024271845410592232181882563619655227526825054419864383187056069958358535544445611148073395713558491470002485840800530717824856166081514485088683174829417862128009644506970921897794150465559633255405543274267356710995790137685241325303227819668748294318172224549188050778535954688557551002326575545578949796192819251637487627130485096432937929799073241229041861711157995766032067480409539623261190360340600564745540990485141646378453529160727499049601189455468390085904330405429879043907297902222517009769208092307169112172727380558934258304413992767352523003793953180246956105310506509212001023325591198076254652716940450721948334454546360352952908170130371403261626630054632344656696972821665567019047795635832999312571129824985538443871475454894102898659014715176547860804214005619734750932963294477759857137002730552424855469257483148372217032035430749737508268249373809350397031128612398245972728026709898596460363793198123656372812538112124590305012928732466122680534524410006340772280238947465178693329437637750853024351304976373156843258096049683251965533961015814632334317728510589982820016590095601383292938056201319775722926769489556672522727362442751149442005106586226130196924732131745233364855671197223343020464827097782461783441671865136953786166451201762408167287231600733367251334653603751041860169620353259280836791960524549313128051083785759687463671751078379961843738358890669038890156711341776227432292334894269061664401877153390671534911370463767904468755859576671663449572416786489789557730386319285456945618593711360733289530574241761936748689976915303703032640093270269895800992540377039137463853202354282364073067004186871212286558310629088069820053894513824742079634991953041486344200928698080276897473779782820722707004150944994915068536845323113123715965448171216059584187522353983286149208894882606910250613247002105037179814900196783187212126111706054355580335708654622387798129046877602860921218694181955290016310074200047034575019308635905220998000085769976635492668379075220825970435519234439498255929878981563026369312623882987328714528518343921610122617089446258841336256982519322762852152171106039916330436082226423642269574087414360525876479815500662631243174008159592138219899454768556520334297847260970247625464932434021380176904867204204708210434738211022683622359407631545916444315049392719334165792442269136189284545622723784775965985436002085888011597494936040482236746938299280713672254543495995663172996027240960824030314866484874672886144344485940030252230083950532448388523853155926630201362708361046374116262466515249950315643752490875125949589835138791205111027892945139660133067211843377375452181569068707254770902174256986763106398057522961223539999221523975857174921220612655588308195294335339187309045267107002056691072490070931517658451945231548909232099368008351935284275394711455163351187877844471420925472616353176512064196568414338941668471304827106687843388047214115250951345827396364709883906132454762444746674140847404915464201219286075390297229108275994354089095547920536152512354447381802708415350817933736214429673643307848745219584283613746789144214416345213265239478126643038631492448111219492210930664660616789243143013777427617823602397075905554536257631305501188310823292117909203853027833598348472127386267429879763232863173526513589404032399327759998388995028866964549033298982223965452210469064681019547478993160253318213774129796126191506670215187922657816498262317885379035684440607412970206040067139361494352957482539698921503759728752476947213743079491213677702493158005799292039899491486392424975466448989566551736168811468787731762612800338319286243417790230204718052231455345284054017895807327553555701110089969895152050481275821057535704867198598130739951999992239736891193002328736761552953316533680704357756332657987077856073933395276322007403018222545025102879002193702715013909193638381567489810494424151520816036189161529340620964410698575784082100527991725060092124504870511049873391422213872109903527543675168589388064216030705568082650719668877060485141391563685854971749273608839038448872458902740169243448087059437761756298820912105481059372834489990662760457930768897920061058086680312298522457658376583504905637958684970397929436019837115120188799053342390919175320170661778127044559296279350865470790715853118421177549461905753700281226313720080025949165299928123773168607942251089759272616919369312113044349824940653515248801560059889770589074444187493299422993814478522319674563619883359692828638173929500273736926195284724988819100620295924535699645026107269398564104341564183689622925399015031409970028607739440076340930270686707109448629423394158404371474293439502498977718908097525676262789234590952157529402785191308112951277370827248800932920972731991142107761522999563719662746756732413177133214762075873192533998656585120140887261829309894771471452118763677807071853646875848177238404867082789039121693186784094376632190313163028461782182070926568729365160502192684682122938233835500008324585677517570519462813711239310050345902318632148065066095784778167336705214060784924735752188302464459042226167343576177381798932237568363747901883469742861975813356511186579787161570521548432688952649793537593043483393395601943528726036215283504581878257833782345928241110951498080894011944492931080340290642170130209414628434615217019595810479479869833362241205111836235250635532509358783964092815426911477529679770455841882070613421879819121457589064879510793393826966701821859692616176253005244977712699275420208615861144334558250521250495887084164288144891765109699069196674709720051127885715556295865614719336212605033860001855487898453496218912433078956002277711722390401369577704456049768599096235540144181581949532583920449002988676501009071901238710448569446292567562219128385460133097348386616527004143383748189173846421434391254781442734845577261361805575792532739076673322361605288372903095212066641697365519746872349162310360427561304805219087371369520720525444386536374528442405534425494176158907358954740166542358375925247705906707716520363457708049213487724104465429724743360445829478437100827626349854557128075850336450306155871467049730720778778063126995445032561227374797793471910518658788714845206088816823738733759707001445455612047200026531391472012291064457374788025564310671100269698329418863510963660522896709284061076000453619551291167630980033238694089394705979352623579885331201205479339006830493816774190775424816951346799125153064911156953743345529382122543444678981974558119156340083937869840125978886311404973001862613151562006800242497690782422600578873361125017382265677223035706056786829252605107774860707488175273019321259476792170494373376216090253593761889269699664728674799160295842508583405468818648982061746896438550807215600155054110076251376687155485526321395905971510183173963098572230717594823261887177308573774560619751424287942817137981248905097604407693681975390989163755661572553565604974858682746807647503730049458858638398198518786948541757454900849780941398004996411355073575115390025828881847095474525300414782807766817092836056008797191143835916830055190301989667917654825186205391581397744623323011573334816745676283874777413795930549920871792409140180336846966473929153828080125143179994033468009426381199176091662203642849283790239889938727248074490544916418767591416361342099444619825727485992758392994147671780884764336572654692721801073049332442789830352861727097531794983787889142494571769794798948052709832629680120202619996006942357628521315467785634950001822890677419896531785087254723315712989264597959356192103960943005668449816650751984916956325983521527827332537545947809897410410862688543050352078638520743598194408340089749537934962281453382013496526414699616060197689473945690069904158363299802039417426507722293948901405093828426583286537775863596777584449667312500896760237737987238417130531149305638437765630410552995830560684954099490202463004787248244359353700094018087661522081625054850123672008573520801606059343299317647924355995776649405453441428861848586172455534787111729654549561240485207623259935027878204778963116941537660773008333940088822426639178232013863358636011283126202565406245953042902364316164148967584521437830140928230643128675529480908206167984837054938865282926307770782716883918966582143593178320467397097264176780559121011420591095954620703549318072700804813950722063280992473039982328701895426571756664664706393110853310228618220386463681822536747310781918615890749862482512375936789152444737329380664783452300990873539672066081365000174450547451965148998146170395491565282477611991020470005091295670723754102933817145146332156221106263791036681709535925715456087028438741411644628605011651664744263924403746911327509768469294246915387190426838452115943495663337070253584805913444655645219286418238721440166436641339712870453957768647102594475766751321211906288672741326716580635625023138049945389363912484896625287371907039754746159511209741091642329529444339438590769795752159603333248479539980456803689359830580993195685283187946093015158707596553242899114607949113933640016195625975592053811869508353811323808882527772944286733509757665092103564212795846744927277725544323783085363541015769725454047052991912948830084453054662630656810411208004323758144015340647883777099025314882961756699908509622970314164400090835371447101712139982144682013789920992339902112354287920194345127716866326444087580629560697404255922425724754966080767524363337949973050377786792606189574683431072887292807126065019733502693793668323356765762530788740760210672923937148549467251848376196905567260770760746240407883416111861520046763179752069651672399969648881803945988065612298602231172643964961455117321453871373936590896975679217268508235451336855199575576738257524443347580536749513415529266209164761381925596085547835692776745014687917143644639130155796849817264460288714321503493209679684683550028642659206970888455114110051137280122635186183365484762537969627101147054508745019061546281536835974248060149478605672958649462133655102394309763385680751517439872244314291210282041667081547471093318357314509409414415457318901201846997277329376914391381914253876472647332669683909076893568292917654158046205547447413387511597950508914112696570587855342135102963654725748822594528687937713678264417134944150617779198066368205703032976241489810058047121177346576976801228629125339453968620008278015014753799882804885781312525022623538280991949890823765259739775747615037395667953026792640371780523942011091257122606472651181250957640534452817066704227553301853214888705851882548992146264986336494095530486595587120417654850531381775522553450055285832908585260522346942299805181473318923293532219035922731271890825658640194555179059294899837297335628565584082947690750370669547517883528343058782244384071903649940543773375728412960485629478007374112622041466301264694292044160321054058965892314595494573510310141072433164017418170910123485454992462679998014013135299781145855435549544219413951851421241704449432846887770512715140978838598550458512831178781450972607018901207280427662423392153125363686070217519657596373800143919705918731634972425924237198984049850149017837182289451373539630488399087518946314611663111309035579280536800957289424160582426265399820652108261330004606507191459908563753447107753258734165659955505910037504457306720561880808230583828729469834491930028672438503444397462232999147737352282142315510987366012262163614349676914081802070233342955950252925702456353297134164406834996970250050324677902844202306280272582640611378594025184211062686421755634508976552418063783818248463389424668354763733467188094633763141887760926254284099922783415107343451672805198893393508822517837400880029988242160928342081018813753049699131263598067151445579387738088055693784305057695118170129988522737304191288937166549971227992228469438684089555470396342668743565705092858784735063753902173226228835119946693468242100106158708439713223349322342431202088458411338254945264927811433056685787611794925978980315917663306930298818742841642432750294232211331543964404857778830329661502998838427577144467782144099502413265647052450110252091832142404925229710125875163856110963828894178532456245179907083271988307590901241168548868423104655834807439068677124188233509486281569536686521774618043568761496820324489684689316059094007709614009370722550142883471788395297301017783303202595201690246271430527339500565693515593324912154680630325579936566475156538215574457497606392754366701737810347067735685929350841402093318331933994700807848483864125628481244378999496817493145948264933281587798267297880908507778940071081730855062507284418551226516091256992262947357466977387332389118907412688866428949448104888056197706668655893640948601464077204558521099212604857324010978994657682288889612817215894689087480261347898170437138708912942927109262846782458666516985641865243427278611439575503624500191536340976265180258725196688394142723921386583385503244811031333318888495810794062220117094625955896581355736176862974748995324081385540862547899935430801755221470863671305041634026679016470961848499569067000557463162958669924345477986813845369046479602235111066791315321966254702996754946289786148294727280676665872036963441341724974314326922551237446836676634742605196408789530551308298893763733616076951277980448896471388690443732550794373695323137050265115875269140769693764058795298098636802215670528536164222431867967343384299171674023532457475041931840883460048071040737003147445764504147735877946081621436682126284528839497563448752245203031551842602678305571520494747552073041524578567699363773993372874075064534614535774787218772246549217096523951930785586019713048624614306817526218620265104034917776075240995072483470956441164443239752095288651040458372017687887867200485101973559046414907812626274835617280957943596948403326867995981862327678269629174640188618771727964814112353054961445248355517410864520203822634267291568852467400973844113754863823465998619691449607622536804584101152599748693921436122088245776444879449366444085577786846492725701707808860751331674469428038987166953197450880105747039843970339399939397013759883526254311848959457839585718831453570079688555365574599385368667591760865223712470966004098246402336044153540509231852838515106829873219222823828001546507539624375349108618278785846522941088724343018846831916860003762055561813406272860752471634084868616801439024147454545695441115278113892255896043567529369392894186042349508529348581946234315054698204241777174092076818892720183899717703907165132392062217937096296141756512537623914295279964285606500790043176147235920701371412430710502389730908373709810419083227581754158774497967955451763863908121260309448159154934477961492097947922345238258767768185209616830021006092308609389286230284292604753152206753032236360451238288235703247342671676302820243649020178630849539169767368156113986155917623407020238015415694323479158678530011719237814929334928006112840908362823360599133818838746533640078005966670475465606361421844604082462480425893669870529819171646701730463644136689368288965044206019429610188377333120809587738472456460330645111162174649332178096992133808626813859095070367975935252291866777776496203368748789628554796170294540880342364225355173226653842673851939873847947633662275551748820471582181358866847933041550217729297182900740389854460920237955853929058309244845339487414923136770363033597035240367664236697415578091084828431388892742790107448264644070785678615226716738948994438382005614652399582556573358545693613782618519040760851693463347033625094159399097211146928296005645106121379633263651918655309768994426259344056132191650109604167419365565293127023096711897753546279517580866319479553870948218215701965538452181073208328251811780049491123071047643364861074273871424628924671866434319522796758104488498175649912339555020254546432239470619249390740388122913240991120955560266654466460697969092152717095322896671532464757447048460059440878000325133779368664052418740585643892991562834131595362460799171482810712237305843917239225802801691354922477037611348139943940354398740285338598900697856757709522910618155136203705839002488578388938973504016490803150347603892686863275544272266927213668170019947204360470496888082726641426284360428547943336459048612925641564311699978893447397393857455071380260427524012244048343226528264694189110916081934328045168680099479387941829724859986544049998726682408977728550036740452451672138136287524353563277701845590890970692213042911342549191402030658440856263055728034708566695479552380683389200770997802312364199174524817265256964166716996723029121721339495100312358898981863847538338494872778781608487783970834002828249564312653945405803706062124459741836886536496406096814351071458720731227353783894476959997739340169724456828123933763643483429113676180539126282078414669830027778653007215843787302315923652483189189978413199596690604150401536972180462436923262564787234510973634945718444182420276806628136422635522575441156115172844886612927975999027390359286308282899707309835410886004409062146406558508125920459271751597158944873878215813043949876318324618446274574416349293834592962302450286881138832364378129746084929230199508630348244404210813257002409304554063425331007783683846614749672769540094012621752759363812772364493772295639369169953069881043843704967800023802812846028600401607555408192016428421922308018572793678126153516419187483526426257419152376165003805693991864176154267816473003033371781382432621924413216281953301374898731301130719713187230498046006955224392880152254171435126423535866401711345356235481182192979472921331013227232059964436493144934502809532038042812759662732843452084962088435335700173471619264124069955804720699753106105628928414526208005758388342137001207589553363907096501840466875196733013254118315540330289847706062154399059772679844563591584683523470854082110321595673651520783011444647082021585548377753836871117468912563935807139145456356631187527500992117312016213683039611407138706610895740725143174811654542334920850777653694109515686373870040635692454222099742343413383792910776312183850619326083913986360529678676968460687283012058639810825379981753511099932379453496358297821260379078001165581893140383828068595331361901889771205676101334412742222935087856225412602829443137110549668190270418850190023110413306285538625906620642046821831211371391761431148934687532243058320160294915487629607885467021000917549984939066712999329195794391592524620503955637806511351745215119402184502952407326626172204403811686307062001081299635442538200399689728889529923263474685653513573849205773809272760024289862186035875177644758126275480191778053341019587625164465576952927249553194092090325222974967081840829248792677125014478531135371336778922838175397673593629388960150596343593433649110545203242572372551963679227201904096558004803839506706708604484909380325553456685826138976385205684355808931254481006732777005249563267993327185163213040763328836634374509965189270654947904483958355772551607586846107515345669841830596603806454317450392600941603123434681120270647557918886640505817857360046118928150032551708461967362691180329695110541711631916154961217022627263421728399368856666732593412750025445918418982013311228101841113295981526098114486198154854767688711050349281961662020977756241665460091203925022777675195193882429940989326288998574810209176961981572860635266128323462420889906460231474586321373169854327613270240190664764034821459203262368039530113989329046136047755778580240350215241039505396380037909059216333743615849604139095730066117898299249908901763929260452106727721986986922796761669624834446244603606354707081440314156330984405502106808719958081636851435772571138383814298708162327996186183398234055356594527516722367143155526718277120845600750282502418451184212158101799021281001055175658278071807005077549031844923305943142957029624981985516678404174349447848701944490883280669135130903887905902816307093880802626648041232097273898449069238775807868177719697330344449344388147214364654591689637641414879942494486226637171673907571170098809151042405416174745123762268877066936542752930534055815858386463859078029349138847902773080395899507135896380378899045606778265164502466704846081513717421161311990244408989279051036618599646411045174629283281507064139778313395526511228299853015981515798699510782383967040974103156465142419589861064722681498755005829160752450710727250274004284574881072538519624996541937618001119419305897082567684597368058762121890824911577650231303523531431779955666385297905855332880984190968189382983079231884005150161194914917639964482498512375815521529393847907371855806327332673391348707029580768800501580742453041159946758593396031077671751779804514665844995603300820126918462163712120678072581821252957744349142131932258949312064723419079264701069956476784941384491460892476554542084492386384218896484448573882265377801734369899811633574781019185652308376822867776425441256569878160571561795094658978257601221285484131110966119568866667846851240468078617240952616785875160679032573326186096653386000132590187301447530863457239899747631988311703528982947043884987886282704150459413762595357053099733950195481916893640108216583982196029898874933819770489468545092035940107890463728523595619748147342487846847048511016730350094452988919119890961977290134912948206076855399922351521612802588630905836651059520899162204736229087315143515220517370942309522651370559668663422419331517316650185650441765203523956640227125835476773012605648396113357769381374525455088967381983767578666512431098232841107298254714802221700740969954434877479232612916931402357142594310168372212829604251139133394222191303074031556983813275372972312359808788458107296361522611654750404336115084932202201011191517645382079773569343448156348146156159102323568882064134629252928651137930583710206690411266699294341656406298678405987567512545094288224147146924125852735138114808570637781538239136713170402710139961341946807654285856352629982547190961622847733010191226444250768305443770771586401319423400491262395867108537972527378830556280114421325290341080418616080251809489318967958355047384474139638837265007748920320465188676070003279239452042085297595853888201236237854976441133644630858093131009775478536549429345156617628981897909431226175819200707448833325782424868108947160032904649520167780162608596545078219157046473933486178025761962954415738172308217712730773500079014557595705201546457592689770277958721785534365745797286905888338680518470250329434335507657652446965202933362676265722027755745354898911265264828467881416253545077351286929094962930279162949654639005846503990929955489749240790835349814565548928048106794240452489308843649868570175290193172884510557919998238314635074703659219993041455135398484399132736152578335491212068857185207227352823253328565537285942507510023233117410695206303519656107848738980798645808617221141899087948020307903594203154958305639863897642302068890737519561622017347789261501398092576176185394270938849187739114170202561135479109782212068054092964892773033894479030681852834386561362456284241282544037407559862744967390541084212023615023473450075708417932494308367145614548821642254525224705250723158283061461656071097739023723256600683813907888274893669565360211689769893683846594908841801450103836126141229811845608236636894464768623703267119124266746499961135543786762175681381609919111204750553882206085020303077652807037860203647969306237063725445057414535753922064700017317751757126556659116261342307583879973062808933985564347720851988952863027908567992880342455965102968790765892765694835375117448648591939373873838975092989914238318961477653057756090234379317796689590272205735334412582649104904085102168962935021583639738711541482853327292284789717562354849200252742304988591855976592020553358732750262767874066743040463623165648463885390582478384067503551694417208283074186729408876417716696241654945163304068856348322587976341279506565227983673494934209179145029925763438557052197803844885348203221675736109515573357401200906815016459983763548964105557085324392315091649153847839462554081196917781217599291373562375095661877407665438021199706240209334791767142424255279572713803073354645157160130887759363236235789395021465342517991259920933698433661210527829465655497323710860551664861321160113051775972144925295820106396019495791926095450932359467595855089219767435373960244649683614557131107671560730683988516815232394710299232343261482386475976857301516726520872253000567071902416359026791237817740420308083772795488142654304928443684752763939117982585174236844395350004498474347778886521887631797987723423655526133909098990329814657555847474490041473767705514091800157371861025036785566798017671354190130412614319963833243747115031250192656477183129343139666885605621724491211985241681389906734179257967854403148577219207557376187419369585040094161913533660835477522166677857680867190590598746269261469279206798455780645020218572209376533741733974316671719716703570912125626204455512414101149105531538226179481892149779701244334401278315629304023500245059647273569541087997676466571620428738152338740143639397411176117759132238726339537307899254960615297004810333862243675386591805324891693487825469151873905246395499805896952259748561880134522611927544540510026890656148742729545368557868817180846246416423932964779563234905944735680214414783045672622603829232470105462326245346334671215207164448755897462612759164711352599890638856616794571020628172552335879859183398052166772735223014710291847057323120908943886396847553455096568535051667747975411899423932809163515350258467766668964606882048290557654967862592848436132315944385446242299893936788996972476423277321182012450414596953957853757626955257715677699377933981292679699003817498138920086603275461952847759538355793990070001427293833500288336229235714461293807590766060149020070379466702147629015600055952682646024718891614167569592601661512728563153458540370807132084090616255914006342790080925018224933981725537506603865095597986836867693924415332569767549995490142696890131356581297493124342414518190520989941813690219388093493268852434872441855467816313689791421469150905295581198453331383015867551792288174546679751630872019270322856492139218707575496145326519080351429659243960326420424210715815120077224567541199636138088466184269505965869265085481875204274324084257482252902685464721529923938045852283442184988086251350428707088735102887907067869411151945637713175512914231727994686139197265287623559136324966488652124573287184494242958080700618047602637936646509175872749309123279252938244218490419875490307664439697215604025675568272584560607924808057367693828092767848542632179334434116211131855320720141715618860310528319619007268237295463752481609364948312846053596052558234241087854191277205620844737507584378950703958482988479893963313158133721847015720764177402619486304473840664919710106453337935722663634605377337162255055207408901764705932766647278270963677037703522354386469805849477595565187565840736159478025586536753241658620236366424791586171710352141829609050372775035307335423627026187744413767887082719786102739253185493189899618698824179295518289568148958323262446949327226250270096819729279436446434757011602132178215394387737642641419729562168500912172632818625460548872846826308704295193262469384773623833196538460771675672520867955753755592307794276577707226281876224574812101161006565362163208098011059918534037672651814216769558786385186655112547904771460459232914615763007631605168327425928996715188879111458913321360759833369101807776735207759651652250830089987268468462778975066391973771726798126099542398215922398267747280272369631906261039557683759024585309766547847483740855571934492528279715052618673627194871081193500011470156220290970337271788644703740176015028515302366921990378452637903209338041015129369523717463957501417411130044317967187596008706695968807854617237618535693330332266814732334166480610884926659789708996907704889825062571512426423958487498342163322379323976002162625869377954595091035820531861504576689599814641660651625653430479532768606508830278425232763146450663669842766706737554498453137143301841070359552366752186693047784110610814534470949483263918260049378232818140310844937653098122543862809480970405141671773806476411459182897188450125403095741917268156916978479652317156565861624164482837692295980426770190726984953929631915985537795174100272994087673863109572410100492275076838537881348064188466791371619852025631056674508276711090966261406554782259867837515393687518170543184108200835055325238375030778799678389571057971254855857457226494501690497791313159997098439921000561461768558018906867151173216083200035418530132996604210877338656058466737606313651498726124967619896180574849492192851369354315484196585039370230104940886019963110267862906476172664010338055946294547895152925480521445962163798812286268391700376147739408525248908384254294563496520697096964069211947595893201713337467906482011501033703263052530124019313994729890821177342217071683847842742851959731349151945336844893134221410868884272963962796305619234524805666915003997389041828348603052630358233089606337479089777515367898741792360135577203982834427127874859989224387762264214608310976784582546018701083263203590181694612845412248190814524181211512807081267396635628081504096497572505163238900351571523768169539909285505838858418185801001707437147420491233208441671423329568440219655032963410288272876416679448977833763979767485387326571626652752463353686956246437270833368945088835649317473164701488664567130877046181230655646114930662356646060265895805220073428719877561850479258288669885837300348845390827330100494212003537103727858521494609459071911913219128338006537814653313173574275071724386637966994856207966255844698521663435123370374934465261783296119341712502666250280819636248067816928488012325495049875780941536805651966652995192119003487056875550195361320978513162377100844314470766551458175374396067993928096570235853176800788154558173045745867107998759541542252460734214958059328746258820615359311198100748617529821242919179609988963456476931452029685183775197991299789205157986656543262499763584888744162514644072984227782836498992182094265477252778501464671202001170290513778273371275745263628136784651020931955809609061876319463955760512947339613720015666185933920303805715739103690834203685140106717798047193532563032212620919472301097116526556912580550769998541200392609573130905422923373081233369909567601573797746873892269838232933144172737679200742830868695717307787297163456329604852149563032327321972437371954940826437315620755488836831735803378729321471018689989845799781363249741141897861211530875563193700578750205619907420692781832201037030717337117064803333534152823787257530634835754287256612911792023445941830225643625957894910951274962797578123866815632810425781682721080064989930690625643715983144534741528463666791799902279253882339876618639092484832087392400276106073605529903422616038586274666717655687667168328437519510742603280266433165833022648541715595429741103182674423212925721044830527742562162893074227245789764307024838160680966148694551680798225463973851304712976451989941306676306647991377369896507461923634752492781395902925741147233902053551284347666411175676747542674830123459589861198325763217890064663627906632483957535424939640629814692888427343988880069436772167056149048686221261726419062070179070587399744612906081109686518576208528262982884901578416611127667733257802653496027496180755804990508720297379351766519567520551775018149272357470776544369617949452911081055559339442677955453811714669400087525445428561918124623084120368894231490360498801208100385458957617826605968072260199992985417121341752054080973736928494959687409608605248578763331290119277833743788186369941983417680508816811222942183912245880088669451686627197168462549806865856530051836934907409589113259745576262246160033581594569384073094618988634383709486030324298259136513274090882069714990066900383828371667097650343082720095162094271670321624238479568218859337586875232875389404685538996030809484427862078693252610073757831928597402119484712354164167720087594425015773837379025026639485694115004628471849610130858749748938192417827792221301118209270080477898438440033823977271553932793015453943923736593686554952502095855202204749442339864918318326456429339092631660793141435256536544171565722708082267299326387236589563595256573732691937008881198804874358597861456052002182296165973088230571788523714498849438254835202198237669062809552641523379351562090042660672795262266622458414485551717124363428907583135611871456524206128665508098824171886096011691314988798250427934496910476199648421859796015513205211580942341275697838094598527022577747800499950996904738102365735512364542777687101618627357732142186165941642997864318389350931362070843004716363937707875864415078268525920495080403784333923698645213831830916128194550752807050317604140701203569767146068241027651533664921666679597812777295385304655485324936150238118500358689639789691302713039765888992159081140717937217627571634921578690693505287309064344371380853849542500031315238687753099564286928442699618725956312310128581004062139984147775493762633383885555022661536479112614466463570476530090653376447622630079888202907362173620398498563940629785739235457508843631733509011464132427315205966647469522810559232245339205603178671119428583975987159189672063424169643860977468322215990663537847928937070620589617108094609142000362508843013675265258125203203988681031096352535372335001915065721429375530806953640358584614184951922110430327231974147409154279790579766693159933680038584647198438353416542724109225305247940938632130222446815156452974654337960291250213410736803539327907062249143340016208978776804883815144455494179518896209224356896299433062074066063992369494906601322942782123279667254816940166460309573365444057161549667479320409600442802775829507374077813641326239725590585051548975267940021605386141145904376837201467037127420523245346381998365059057559318717022265862965039442176406324966822894356739389925208288539288486195935149892832285245027081837979424445070621071970184479467189390457023910490703847351934718598836998934485497158481187738818751208262761211534856142260555463204581146983939758657680696476596646328795051941653478656909005781659704937677172732472831571920547171552094762084465392762303095008206360377130696749199640982342440807642343985607686302677436839583257638566935590818263599817196032550041842604550345960260629684442102267381072854955095545645862484036692305879656555106481208798200213969066421992679187717027107451655222878826724918355470569495566185913931271087723614680401786859707580856111660090359652582827143742599507136819083791793203918509958545510459725812358218666761748457684845222902865094759690963963973001379363173535188612179109956971021073361817775757799911559322549997404957707526907749380320281014255955228028012140249823558813309119593184475213217278439867493954430746162851884677356899155522649884736464243852903072820613973557802330579816516062255163464731935301967335107939560861837593733006644122250342356807560679840910087214999730964137559904532041294814711542298472995771011693424839416074237033519337501636274597544416915805901838089396448851325442815351398139451411181277326286739963372148457309073294318359746464920318701876778803891326025139414973778104726903629314912022379271817421328507170795281901628490192127734131935871040807343220598315641907895606429407628808554253795517790895647527763707143108190487859898938554568306991876643844716259527435902223910114916728530490000395658107483696107616842023671836812064598363733977401023852128449007252673807343422276679450307925138604385987018384490036308792518926168335000991290612378410710994784806984377759039323695513149045341321036369357179558561728057569366325890581819746009919967973364918057449254387002565846932794888649634449381529412073965563510995346832564531629447713660730548237041577129593655281921457084804339094019351827353047620970065235784377566878257019291822261537655759119801001490845421858390085843374029554946831140347762598702679880949336375614328148936129874879543728883216782527935192166704064328791398396303512074595887590105905181201163880972215128193711076114837636309153974085814439066946949655230005850090660850615314325740026570680933694536623385131751228930607392304332865668971224306945118108321927353337152164788937485157809998052127681828018057130312575794262706120275709172595453186649273316220289133327345535362085215439950510452780698494224886339322661586347439579880541035729371911829576990367630032223910855440399801537717305582922925116219925036903345614272978140632548548877261854890796276319323344186367118668786354361181677559865181143043847390203104454583987416710749092094325191743524163530476914741824128492883882007168366722184488218563267215722089302708297395582806208620079622367237969995733492949263573253952109373535151467564842998433466820446529807002055808117975280463675920345581639016752307084151665839226901557314681090084115512262780414898271028281114779709904110755045330379948955424371855975470654420601187655940536207363187948780792966997456362695043590454157608685945924236303774787251859178479191614505775065758770736923926063908890201492684575216074280867000901895742419480573788664326283084054538422930240406505740554379207643136721349494626966532892714122499438281235109238748491700187429135880784599248593634213851066269690819148965967499156271591402816544276523964021516476977421156135576864781024982769104730745186895379483545197690959980674163683558663650365237590649967338775381333553999935201072847825613184768999904235004180937151152392371945889383314201709301255196912234015115151259660252971337831416028572016675454432524860489258365382205160457358710205050477595937297679297813599655814008413831194931625975636918535865748239071997743086607213751185130509161846870510266859541229901618798596325262264555277316518347469241538846294948722880662355911517965441402359440160366988733133311906114849409522415884493691875230389713605485098278107408126402795766470114002127491502114163356448729367219416333780494702814576284595579770877519215148872089601331429007275019556777998696772169591521560626777949747672695757168609934592398630840027570090057971505844022259694330060024140951109227450458405143901395995198821082368890090887475730627076945243872390988457431507547287749885068329186986557704148360679369968578538978412473163622954144159275676553617300938736498408349028134864110784911005353506672403165041418660724494788034707574467877712758912408299641406010233337956927675497099513509371013885494202496022328769910141730685117222655980713045918929088784215968183489480401021388992799672371593869650237348564982792564526708586858084248625309500076128952941849193456500903835819530638019222674655566564746958007666481396370320161998692025363162268165189453955721534127276864059836782707257299076480537482971541084102495761255603676473974953825582605518993240580697649748457561754967090868491545028509128277152175224716984349796528071946925782034204599830929311895422893936533286150118033810513874765598221680725910533100802960913043211485585786606253032876509831582074492936891644075263310144664430049342822045023181140528063452627831488893359085189111294326117870157580902744260861140766842388095215761762602671874913680101286475319431917302252785119347150744751240251947252652620905073005053760502873794377701293512235249127119648483706772741752149210907377519010282416187024472824952404964048500936618722720266404688962923340443261777032368418263547132413175768860668329198234760744900637239600919969952451525460228975993448907400450614147827670548884698504173176373896766774723685901948400018583164668041294910105490434402378962071087858771946569432515364863666008289452746974215255512716523161673089536348427401292371552146237022719698661104819239473597237261689031658663844147402790284177527272050771080188888103792200910257407408408304692480485965207750160774023666362782056219200730923842079387578529831928750336875291385845863130630978813516797234967187104136071450959218222133484637309662834421078837636482131947090606964502132258123689335955993535769942229829826559413091461941945802880385647112252845011448082453734912659669639737925775100596938510922455241533610943927781336417595638686044686361157771749210978135833989051634705244379956385430463517849348881195687546174598057287291649845895993504660743756204833053257593632323508132869964651111764815503018192347837593047652877679767715357397748837157953783279262170479216492183848640351531304538168676376264083664499366272704545759738712783563982765992757093356743457298867827964845194975662990377054477050874413736234247713176708436760214667087924847735972630997996632809785663942056551524605879842331343037910140493043742083238156543374644916531029751495724309233633843140540793442825855371965983540267465379090997168936342544851886937223644646637384297884623056203134672722634087490213545495865227920031745428358541437349678563362419841968587467738257833511005324482617966599811442721923410612983258975387771544994411274495480316160878083982748306070997453171787704943630234973337873244041647145331865821097280790856888624485229176137055420830452810945423275833652649919765912188596478832025557638654552282455982747486437404486459372804052769031022010112322332955158761876530385580938196784104001213331669376542386775766811180289586209852951761847167110800643718521266110059028116100981379324070541135952461791559159484458082744819976464360774803122891215810398691207541246451740941317362523054354279139971836750317607825306437467041665843101857222681856999159170017431840552237466734750992462339668707315998953473597117319824456784785018951048676095009843334280347813880081338538587308469627660388098133938613702275833482898272595651376808059043838421116422224616783812204876331268040205894155933762031886988213076539587203570271296590623560623356977179099991652933088074393675517501603436957041860770284591812788278509572206110253112252894043296058351522035564091680739946491891284773714528274317733130266471156657702749754076971387168521849293946207944228050491801941385510136658124783933101810560947442687807861975200774789859383491750980763225367620501473601523388539664578489068440506591598637122835747669795156640948954708193987979223463768708063846116483378023323685606474058852818965184662398684048240778558754627765323609946242984781770750727153269516198035422485403261961205493997837721647432788013117268473979069752211647230140699463294826889991972652961005044188215045075837777038256207733481167973736151170905953697283057521715819984969315253680542758435780169568441068535289529293419639682049927561273042435180824191144403156336046992435690566446586636660156174517459216690563270296658018810649599431120305842601132807604052874103831004372847077883403871495547506142044357311310063384066961651962331923670932870871411673643076542046927989532255054527518857463995940380373235182798733523253231650482204371981974503874180031942155480189206529208834387989641037281556342723712030092089831239721270489339484713234287123158132007164350479752775504892525513589353235664459737473688043756224916345183127867046501362409299593113298372785618861627065664134307317510423207985046268273109392113079150558677695438911639821699685830083346491015218146678787896232029680652907295991760779050268407589937303670996170090230660635390261666084309906823524753571211045364216097621676162078035501144897433043929286737450418673253193437145566794506682073348210540208432021214678505311691652142164234068535085705626125255422812454281972598219284626767981901206404266848825158566945118494750645908448756999773697157713558896460368877170094684095185114328577223776010850006174577207763686972059435201421220522651480413532582251501710950687240215223347905084593028131722057207064020710796474961667803852392649243718421275792495310594868989029926388422968709667518024636984214223887443651924609019577805916109528219383395779681277140576833113497793181819490087482668876042052267839884828349948839329497219308166519337745523259924108346495042767351297599567000273131582250134183951540378477083998718986069822147797167851043040829610690916129492195821198788426140879759211961336013352218510515628799459834901680892216493991884304363194114485434571500946661897980371465952205621836348780896069676677817314023495195908922199412134972710209538210425737571081988969213304947207037737133744502872018387781899029265211159487195596786721841187489390670587164563361047259329841877942999578463189080263623474332330959621149132439573175828122211775835650923759921764849011119941799221814434934803428391491674276919154421638929401725220854645450444045198219611055863143346907102665303255110644872641996542055110166995844800857142009665708406230034994336634774574714177056378627527089171820556665940391381288731488223115468718037255005437955986949972861650669217744996906134018835814280787573412121518951429605024342746968635613004088066739470348381275192996823107139974115836512308459692412450299468095641717591541204336003500882200629158297450346520965205240952679428024271560945388476351785605180865433532619884863114241546435653286385660363935240842670322874390255987871328534450629956054544021263094239109384244192998811637177847885548350998948196220453343335936402389034045493981094108690018270081003711720056630921973519947608895084505218665861656906982183936435648685390131856636468699407758820235895575074380491587656623684939312389195564755762516784539115135363624708145926755790931346629517593892408781962539930248825364214591635367599370221824330867657621895258982141936486231670553292634457514729441981613371349240633883202364535295813614960062507254632515783641473481096000298391673071761989372246334217936139132394142530691964166523863152663906018010638553813122060228501121828404504168440265960265102394171838399367739763078885526106632618011392295304660439363406540526268155892339378679616300389295232654030616675143189395995411017258707473316046657287695029526337828593640408942150447829589670371146115194300542476401311821450628417882077766438263725379908689659744511283145984449026188038207954375951116124579353865349020882457761450215341869340817944353310491348002555161220800590300831521274517462112344771228717842716792700700363857532389771920323610625656025317484830549670989740692817929630712141419311864289527674568605748866460251453779948041039778941624496273953567065988231412379328364411875278588094590787813884003460193120893638569222035631627947773396076597532212267582592939324235112675698702914562180806087325476899815638044001842460120412100049621205457371683390553089545325959028671190335206338281300576625520835641676473203336788062192266530199613393815041432479918416869238104657956559700539798067905357549167658086131714178090152815614694584596861819873365432302418901525724949061016917831869275003033246121514626150070751013918847336919114204225989362875754470388643508181580819084444678789883217248614768829293405261405324948530006404274082944412884829827359579584358607701871295203598733397678426508325199926745591854093705990560021002535559315320500817457032570974445364243862445435363898319734966147313310534345753091522910363888956808514597330058176049338544148221725291834511912159623150961439957834648729595826594188513368070306803623777758604364690561340923765098938568233815795199576096767558139877463752211317618555104717049217626862565121553729537147034774239743223939737347767008849892693475736961447748272978871497613123615326477051160416602583162127742807711521718615471741856002287915733163733334293790503378308488862765991741342182945582535533681525451289279793431176704219910967706882227268898066043066166749281077911187892272806013691136501608828476122723952030146650969123137306630615247936986410842547712218887704047557787085126797452193963326053414428419345859539542705486493522254284650198353948212733194957784001153016642059996000244472025787006982066890267163301494580205656350623190816285750940925880383339496456074785269153538113817169365256988858055696900197585804939688822738124734251613814868157528579030274936890470932423874163276367022238772574871133598769170973774527402790674999941295454625182934529317073086969184600236266872070000224409757586744223521934631749332552797225413557869518908016322529758597952069199439354637564890112386289531404286244727875665311402859586264771160459606878330000161105346384479619955939611704863029209254152514449675400403283623747615617863253946519178994349755575481673199434753874583953253184043868570042655519377225905031294441467162480637823676275723499165892698200895747225903482453001048734486427082255528009808341718376903316141232367934948127474496487603353165522706999146685097511747616041304846860549612827775875523782965029211516826288634650123443730457658083235847125783930756696105017382526568363370476982563055026217404889974626779298352057978825540213172649526805360636330365916586051945099975765107340776418920724579351492318162079998156203616568473379606290019371201332128540926675801550043047254169133475439059018463005873261901490865854266912634943765414661022129441471071186286313261493450325866647824657632421793511860798121753052721590445161155769539130257953593066241225788682077465100998028296790377185221516510573164915615157665799302424356583322110686005384406082455907984863091434715724832731297396074307444924945102821189151529180041576409175299934775653941791229013069145928920270439148907713830322246731138871168201929362812769271008632075916455491956896942261683976762690076949986280550449147065422296089187132567646237781702779945799205158874554926177661745467666473989035595867446780976229441168197377208874831297039103877554070852503509790956108840078191714343792803983043261786508177351992796699640035077889371603313135910353309692878672300854276763471154568863612873848899443895567822974893210350685018892828743603037487515873235955222538403087642149982253239965287678957877824338924906271460846901322675242640346391541457769805286248499632233880795943501525466082977021765089503460495461398265900869370910443807127267443812107253074119302888457727000398778266630333680539805812411090959537380828905290368450453885089047704523808317335596088775571768559879876110789464723555585469315907648158159708226033722551341738501060800943966567299321650782159054129901437701289457481976868124944713281708791680940866556340871556425790245554149762075267387798010374323016503166952313667382102411158737909499104845497057362655429252295219772478410533358101397072041152097838959044126487259346930288014856585784102881407072278879008070751908752661545420977331324530675418262416373237324587959678459317819439463435677358685932909119271287872895084282596468820794887193301993858052544039351887660567874324210994654440190542655534290075859135119882497577998850166293715903052378408773323746885531628229447702096419160997024129137474432694931989394356699561727101226497063198658483606741377559952442097196739741584022261104757391966233064532103903779705395211560422526417920759177011712454274462676108749998625468926616376295635413046044781700012682813357953085988572997852238061629174023856679671470961698564279650973169414134496260988028855283288118622545501337216114948313677087663968507347690647722304422751840302738433514531534728781225319837294816635088380775375559669289190558682779893143264580558460451210307166225232870011752300281933005136036440703484416201841963643623417465347315235037464181038322595993748229785109947705811599518118605594463715738341994048489213616603456431930947490462652754206060719827231766199776267752045481563362401963294671846251223967471653565969239005265808702818750388007733593945496779549110320058118230128155408281162992006747038750491761319329979202135391208537078569150507989076042859167769778712593526134169005783708747427675287591635320260007311527415245222786460219008362676640911375293379441242384362350048304501338472697889368960352157743794238931440052840534946039128365377431697613613810844752582754303618267501295724058694941776366897718520935709373484886939126388038153453064177836785237198263800055698005969803913432188773255964408479196784359292695634494661211410993857515138404685352454497287188876931309314925190710906316758854265734394364412017716078183571721704126367205806106984623174663028577151831513201653236660108851826724009267946396130170497201456480397911213523345093906873571632162008536915128769196617982487418373535900259853903240855311632077696386517056779285373036484241955596180549741245704776445575208717445678987882975950794131216994687762232071966421094698032682584500638244766650083348511042319168475805294526370089842547555216196701583415230504882304106402259686079402114355742951619758318925831365423233094379831952845853382068298559797917319690195741105932609237154932905503212158812997310381024698433772466903009928655437951830172836509862278730210862357332254190469749264962915781678935273155096531173969349578195709333996040852506000233093630971411351221067461333433460032797409330653332346741043874636575761674791230030899811295322407625114912108044454032104122233008339243914161017401379073757777360443860164038978447507096736691807927497222566660644655174206687546733699002866083942823222979976900697861407085906085998423448440306785378732380648440420684491584060361229109025714031803145457256714517494530796602472940643296374965770587628587431414588140961267749236651948027726758712609410461905163007270381267158838975306972521800794219801482091248125359697049398331698273374163782711502394531500321267508185645959369841405213949961510536721204912052413425202945113251150196512551102945774348248777584963766441304501743913688152797348671844322965599424070954570247100236640909483514496508510559985135838529828219656671843226559435931871072039169211694610648958820974690372200247459862380651771345387737899321126143774822892197449213479323790362968620982783887075277458760849519887059367331646742126959401304527203355892545059609083060289460280596388862265082892760279530329364932045630542708489857327397687049697606135901514028797208543671455983050964505421907098765178937428537755604364572476005890609776482994938400298986320531671273802109998299137433523409272563909762417632320666622736875801020099495149389082442787973434162840784609971559150070413143982671991040330420614512771707330573424713713399919032991512146607199697630762327771009334367539158551696768810584406439546511229726930347543244154735794850824901079617302239923881458162049575004392386286164010517561163542172819299726520207672256142760990161010114543330625571642168853773531435550061332753749769215906486439371947815764025502174719617921434958149317411434804149487252533900655757678310291318332881090045256876446761993512634324490409718277873951311626237221409740141598978015357875623316979877848048272455817650977782306838585338021041523125276420275124168663275941809317726146919098051217341041898200708827950090577423284212996675338728808657471811631841036739286956890617553447149830743389060227686105673112025432661795260163324591945178435347787305361064008935587219454940728231354062563082780658944939006935981573469634961564739495691623146716708878288525078170217254555210148541253102255396763486348944204050663871931215601229864601023284858443748058555501752837026010243161569701609104369055908774789016037384597868242566848939085209644900820629934536416293883094751466662419451473187087595339209921912078067271345994883097590436524288959069023549867085864461492345296178409759686409853541874627790551065600274551357235154575803909215668585544228200544999456616646655792431063289557749188332068469522904681182100895734233458822241525233171105028822773073017643241883876289937330321500838808849017006247466489798069536903183015809995663677374145536115673740966830045183296846499381151329717995434280530987181559943304601882255316616154933928187956481065708633087523159192187616240407328724238312609892533594894517580623047685756377766529505469852435864605280842522708649503808861251044924624100278473086894727900173251273014792952143505194852627634420476807114558572254131904096165594664838903017141314353344522227482354591062160485649108834594101861112623619096977874743506853035603407929299099672021584745076440933206652503028135876377134464647431978401248906834652601152222670336875300753492643781894949540442281398399722064614405225106549220976726105317724204761015074039901469807867605679384173412561668081615752541078718932774486809281534397291773495572467146999710634127662775014380941959101208322090355877127290346068363973353017773318274215965541334239720874563919770792712007736578949969367782816481071334724587850225202409288570404313862999308693142988037232509288893137917494385534512915159864814077600060271893892363186719157251587447164853995402677584994110124335512173597269541972257270568449069817968669905550860854555716033693667507162739390745008682988373452707459189743963055737960398881737424975604093840572182865997236204725452649863503630224730527007871177443525423765165846378567334531253708075622091762023432915646994714486180277429284820218436086971891349644222532984746915815811385704028664178157320038142745705750383542628644949826811222046810415426285685196187981790908025913311329652883359906837585810685835196112571293871774190050157272766592023579085324752226685625417283319887373350180543645907489814840505426018293244488297620881639360560621744039814907512133456986312132350063694377882285060403746336390427919949688439137976595402580864534476220465650666853867789144610940718986600677382267140936160197148137837748593634053536689356940188441768540152171357471338370299947792771629994597775066502852971880033508550427437483273023799633802472147219178607398714702174464877032114154604215087949707754401676124871962006208692253838367085769596290810443294539335725636352671353049428564456403604252644519295127282802400329519742077531820454495746544356775132391205168044633317851493943075009215382398178645986499353655915742935357240570981263933105824616337796815284082397201196982150989777884180471597742904444027152237551796201384913658775357224413023615045883034785961350097151795715529400905580491200012703143115168904557740984240443018855339363975563408391596680419773338687678334864714178188696414047703565540178246321466988390998628619767552182754705006612796770443226160134067841389526877842618828290136300002642821514660700639860499436495247230529565380893605964001540092404466307214222669300896542481381294809575127312724607269279418773297302435581226232602030611262663433876988264611983904675127443069548528475137992277579373818466344211989208527713287961341060915768482708204158346126782665080522025598330403643609707932615656766864166574438198832413526295032337331324549426794454974086275127177643437269817001653559508770254780973386558103123638851282596209617575557292104724358329302329035003468488779973868004843202492168112838945650809627049369709882350840325998533560601639656956491291526742096253647892049786337577514277641315018548461126400374793233615008330624223167571966173875416116023403212959744185355257216407275526747154910556463409748851806261664791257093715921773926537062085936770538956063449963728887071766300165125697854834120466501822139247924458641744891775632564566404931346938783817883890336247622482567438887562517239533888688448996939255945814542020346491441165647459711668928948675064688943595025524522870739903526285556498476673776983384282077742997103850204011309402951518620576779576596048004029131393120301850530881202669891980869599677761160102142019274098884117913111585798085840868005503844533110012767140986754238075343937935105469518479321032397378209811971021995803685560447808785002843217993108262520566901955086371369831308653789355306865591841049601677011444111196334175163412535152571193377126033158193465893438830979660719690524738937356082918106269319535378426362617142879291477583785688310117314595309060494373781245174437738779867545881822543389125559746822869895076377060220627528511906466029446776403142756289042939904940356531823113071246876419444142841103394478029862718874449123461384586128068038395312100424043881147354802812673565290355081764642791068094062810556276372605259882753408709319835498292122524596653751287590877661414786431334699426032401889380441711468431163095078901491926503732678938908400859454846518139500424638945899172765979901656681980229002999295218478071032980521674113923588806520302873064151238294030668267682290368720861287540816623106823344218057358713721807841058290177155578932995931243893570912256887444187033825657452172568049279110203532496658979641942589397454592646960129433131731843723836743622692159453728220522848671999589024648441786306251747102555797702646020012683683211254884848241008727197994319588885086891523955279001601999120717859729396761102850690457706251402966019198689920614088809929579141688330502072456828479600836204737533184419603586715620163164755051384435704341237320394183123215285826535375326457163516784501413539775488268640288159193292759593439738119966790522441794497883984530570963769889739537299938149432347058784003651890644991916088920752556111741348105470159371308150912493272490671303000737458346702606088756998037970890445852568193042172917216529510957891978162867444907799804230580587172823213982381990229177280880211791296343233675160555087235007708784611168795054008824903962301015880408068916407619648725612260377137689653340110222435752996813478792955045236056514370766046574621219778546754563495019000443786453048909718708926981528706749675314614578038766402272313575135056126071408694055367320492746283782640438817514234227959539434685604388070707368192380636785910050700054961616489381364540670479061884664730470333827358338709671341421292451983042445360569857389735109935733086337638691520177623958909081785375239658059827386490720663697046798458032171031854988541422117707197954677661036295297146807034979835955550553396803538212996521115626477868205282664566541863205690925658162612244906351625052692541663500417647261844841654844625345882983828874530449442842197455137411984719049341190069775402995632167301274406339043133209546348470326555127771479241494305602633482994695772323347870048314916756893294199579788823420944647437861412753740488907091920470519051432038657664105931427407046153855460935433826568599438095045136624477786567151491884091914653196427603736160005393604533658271697404795545813978252778509656173089981539929677556574221262921513951648158544925159291221633433132140391880499241430733493057412203268267102039542410383629527130251979302294619204273457382140393119404532939356997364666045637015431122425517399067053902930494170540966094166929662533960602646706044949634059053769891766473184976749819001980046926320076341911667071336600352231490998155424951307372206813013787798616076132721132105319764802155161510795417382454448272688056864981870000405715542620262121462066890991650678065873208789867742847619978001956535453995126144389608256944987668601011867775324656485176164868185440606714891988963535359669217378258009138529920069201222379057731415659865308994157621780428968336191481314731802651434732164655814034851671207672034515336914710517526275951019275681064661718993310838093153802457005279588514609703269488359160180656595626439945823259766021837135954379931531293640375582814035594079033902435996943431739389173447134703530314066237248033760313248297550277261613889046516759682018039486252749105514044160903366298498403596668834777379136146905525062384515539912677584979567802050793662654490702729678358372160598976215636726732211163352056493098280633121196927321856287611477641798036501537903484388544640967884147574017278675447077574313861471612305216212003016801045358781242917236919756623775310719384952127116665544034031937776326854212297229377684407273666399024621037832583811065417030984728170701016373753359237079698989617274067121338934954084472389270791421856164083554653104024974860387275236799073997093534657373472052314478647003454474546736785872300183751493486633835657749161983007424319803011843076496192064796206788984469255106510892971850017433593937693948589338150416707497811175157764218528144004373745641439937085813911072541181737884336679812363201395449343294431908751747920169010095556100396308190801937782671521292009782643315595919737455327179489484961255294084168067521633658217959872933190970271023800070804158982399761786138795147689805729340753568843977699250165918239718239497861541632748317817462259172414771633314780483515981951683561956450602309096231584043950921197796993483073633145996346044417638123056016383895815257433714016016343502370727269987194114088780825073971970198822057813876953644508043096633418623628951602563184497288251481033314353191055005636601780760294610203801107609749230446997078366484616676636625872950702965516631341931446918714781983190360541273485994027545888606431019890466652909654325629247535327179080984240991688380414316029618936413554012990531557095653495394029259728030377981483516084053687586960564926705463647235006880923655792362210446143330588078431323484107935007323290579376656481035857352485715612206554365160314251215137529531617003838903358494102516213879344234018847090719501586706989566111871760500306880791549851883319000973804107725107730636796338255090614088562726790643192438515050694681159930465658322716735461045546858667482751423945851251317460508729286540542167012026541313350788217527407134634258954373217146784240426994355056202514043000986550314181799727701567004033813968415922235242316599858671007113484577331377663125192768847119387800331355844249754739536864213007912824247339331149265349677386315331168810259456111145553524057297209581055133127232811011156952895416173012116883600811795661908344176644055958949181655002472913596772659150794113183347961510790273342989234719609314927920155351817268140769942643499100513931501679759939162801741358787778556437085767005100155476383301400256018489139292281464752177367495108340835400172848328367724118346972356081382852567087648023514046170309198387268850450416152206964390032272727615300250912377969310408023391359593945613590757780965155262404034523726320846001588123789201676085173716961685137569621184859876942531297382981728789108865492556605245634929530050882731544433999229435668041149647603130189008338299482916324422668991762428278303938854073087321717307406111926124117307909788685524989506397573965009777059182683759713290061694761651209090832916543018145392409529414220627067823295331437784738269758729632605408067251976908687038605725603321719781034791032653897367721670729675820144987734841281941293264386988439572407339059277541220347055370574671250475926738780042850038006521364524632325652325829450224251928607570521870360835723168527787470201920137152159296176328219503867943666487743529519237901766838782682284985464033968335277385957003127975875952339670343275763283907797700748325363280476473983965013992229462992801335128993874532865333835408482505051801877110310901144703933645003201899239474820470449455181589810781284380502891273819728308712064569375372160933249075738846197466367513391895744625913844394878968715112896835561733246017488926490998590369553550830207754251055032094251030081691703523092746425312323760681220831284189346111559314090644013337648670311105949387314370822375716623136335716378745042810769695913207483202954763472775708334937588309182052658991118277244616906504439385857329859515586480068571514923782354985182924686333287125200381760447168942918670965004385463662591576078322766548054362186092733850952692047977382736952501110083476866090371404531292005514873412752200539406741787450783046981033484798221477617754457489354767967728215825926275433906459448775253455610810853910422030428112630702185038113973452937578819462590587526525873016060096950329516802401627117075941890819807701163859174619924749021736320410011200308570061319388252681813834766257584879831284763731529307538043453632866358328132435631444865837369965463374801338886721067827465767249085107620106227723991300458389439022574460269263104604420425008114310144322931606858301213217102160943863307796526075491482812673950997021573801281686225370395371157135581281560346917146480271862852916588503350760889760902423418560898409738749981880576791995637283974327890652568662408171719359719146845131405239722997117406231234536913694045976421114577161657010658052334501100462927956884669954938244018402825363202753393802349320885520345069146437083359849041340224029121058200979433089900305521469433700959776775134596365667945491999196599494993430350548193030358009690285597734067392726284469632154545916679416858787364875100781623856569154580451367126374878594436665839138275176493575771343159357026387395284068647965882636607387830264858660847436789988962562484398293227334588063312621948453596026346447753589217805562258794618077322398650252464993975923106607442199163904843783453229683519921560299827829865912456950970749606696345003860418745469074561328334431223488959998735007075338116393509267453233184815327077395172219706050922721705125311136638138759231010858022438827723127907411625341604646124414254240092339406345005199447833239864038386088754728039048194694228331933832823105617467667553987084796327970668812182062299722557230165196993679639956005775656954671174529571812049215116126742692763813900178133978915914142654880879993686996360971299834567790253155689710464965955231907771661157717213741710702864902815428676450206258178981155241294987561228245657223520639669378361961072940210273346316156629328030253885774250657615321854657079772869047982549111474039318718258974858254414635440021100897377197118258490329365422838130818352361981667011993919078082029434076604779886565004438387819036025823029585707877995217659110433021925750387819087434657789733529746779718092481005357784810431911321865418397551503314785981526768941711163371178908342408025667842145605166717600608221475246326079721153434664714712168186072335419498453113255298072250597551998483178177370982427656861980258361361120621793206621834002682983230813570200970548821540396029931626926422013497105315986727677398185073116599540071693376972718364018064501935288421520811001679447949142912763921394051013053221156644613776325610236015118721404711551564060389368042301349024555148124374417453852284970599891458098262701313155924321319907377654678007244749126556811176854449061292023672733875102283982105052394462791476113107644084641650643903594857650822676996141810903900095739236052160760380482202429969528936001785609233972351156762113496135414421585072547959036903114942478866797235236008815374255719899488232727697155377730678976061904854128491778227239106868807735227294165068544295270562148564932475821765591016777381256808236143663842067720933942974929304174407989644346831011650534432012578031615054258817297969671477541643486807637300642737531239434254683191501457857632317198425319110592124002593758008289781347158352784865836828985346504214153500736015105423515562860199946184167617541010649416774457111178597835132166364871073097620358817452474514865386738000778971279986973512637747521414429648167489856933253950537864746879505536597867295195219705278240621392135732284980071280833376015710406229189994249549111633288145200103306341585363454691535240782225238841503508979001759073269345646211149712609489585713732684872363004727036884056903059740534428387756877332462904299614566020404133247679237896445092031787262375409661869509309083160404651477082862313117130798590932685227238897717933272817251387467305376335890982700974974415169147269625226123073950753049355008514000768171974949468278042152614157882250432725184324296763853319059352284554135629937987841852036113239065977374855927263217052093604525149071155044130524552431013441194361360843892431343810100790955469529636437587192584436204368684634031738131171168780376631071016544452578703413873425537670301636765059689691111937527482832574932659231328678956957485441836076607224342529444899461265238589612071104432546786854967306633822553156917387090059606381753973064586468299850751549724747304195973242719226789312075447424382384102943665554955099582628835841151690406260157485662681474492395053416893831232347448788358249875585819851820815564841453098989128759324605632121956897440326816075249473109736255055759712767820980501313185499458449419028172199659671903675994037751426448917964749592619059011399883561383635442944233888739917443984439596743714180771838817426516435128131138476148688569592623870453031953849932844734353462243638022004117551921472075332712584889330318841382203826869179523912521737471325054768538838472679366865123703439400336917452084698158593193484391178536164603743508786383755266543715970109246575845571209036290335850279220677267709474860581948064348674715266910601610676854768176747919240237501466856793312518786259743286076241445186351134007846312055230678862890209394952944835899891954560352360635757122158199377338092962049370450564199966288692656062053640353783680469520979042878980790957439306817064620042459471732403196552050871712330633293833300855201097444951244016460305984109691243137199394600782565504717236239886148304101468254785983336843975234764803699788016595424384821010015890221405387847263829847222328645155573240595070951238800823309755531965758437973545218455848912535837873077270248107520302101822514212068984415699482455587798973207634825194515925494623799169217594583545371437446935354331222843728841492028823467114834533276010226507763680964857165408577267690542982085226255074515637430310267137550258022543489388925197669251081321686056891218066755499323304419228339151892138300265494246924213266969181825758395956812311294299111916088383543242684239835176671578192879050472649387263908006298864701232401598967603426973973008621646954217249505875352199915528422614463522948055214330043925240358731561732067935516225804799110881257986623658699969113562447510310977624641575760311717369019153507509329991343647901861980289865110489969663941147892160296379149985152389911131708889157122840238979537016166542803006402358033329965008398901861402558536938384955319083750218107406783148157911153006707877917364932261074197342777664594214191271552666880550295045147827980074341825713229274078538855809087654371502541186800020182318668357987618289797280259017868635645618346197488514801812091096670526546501816135872154670433714920493169525272021158118158324934261722562419749948915102229656661532250850069153974601466483808264049096242612308692241227247540668412412698425809863686965969697169862959243752906541695715664686520075115632424386833561237312250775721032931024486364549531645225492784558305915721856874936478448333569146808234150425937629427894266568393902425264979363606860932854315352907300584954786890544896176861955036566096508181297706271658318651495666058117384415044783153910179173246153948198015087218380028633843767270924072634614480943018796872885511693081364262463958140424078066686122259258613066201076449832044285762231751240720148291624884597241114191497327390317800289099816437035756066000560366504446883008613264327163552723917956738729659394087784812386752118024631515410914879265648428722704400424608891969592500534854611536702806356540195676196120128283305951323019815054209215813548457712153937376363159195038481611007320238431342638920508907323724488413405349089235265657843876670690051633512863758962275321119383858202629327686997867114978281585364766167664617898613835419919288308745476628192741107710666087390456258915028951856664892856676605851950944386933953680787702847527062000508655533403346005527757938991621469346813347071551267489832702045358733083718778076442972451524633686236105791417024654572237173366701042939745457071989332918331499801978618309605457563358759111819011939143096162633245007578872725273790183495547559985234110453254861288392072830175964599798241796463037634782038495518419257342102151115336563457265836982166146690115731396494072336424887624872964409288183351961621869021872414322519404698480844246750691257692305287970171246411469878141774433856136188816651050614926141487261232351462787612568288585106018897546689963201732350085578740375873904733949805887845056013844186201754989299931447093551138749480959243090137880333541331010799636379465464965453824574552501278598287125584810139800551608271550339699681209246314178134133400804683107934451964761602560855178598520679132118790974266287701985984862261995909222633957319765864421632200591501929711325551584330897613015693834874648768974377478483403268974915812201547836731228359223522775799612123702423549734036447485452170246061069273486772489043184562722692275271003188820994046950755006363927619692134484924571951237814834885541671321977412989002115336522227939989213313804224928240372940445498305122944108624380385017730646140674796574813224759625523987008867912583102941892794929981645291713894516086458904472317649578519806259861311124901406211816490578643291474223763636579723646337196210131819502699858178031232380785916296905433341721703688355443171595586986403967285782476845464324584110109130118545480430642874754431870393419168955134581713593656912205937915069879682552070117190038733230378861051549481407475669143437790950900011070258955358947157712231309283041168683502811294212180952711619936656153517685290024324918602227932861034549280807697930344882169768435349106246692269190603231494916778761598414104126473893926341698991381836473527448094530731236811687902824500674340495105820001872847743290852878481127536028218299098639896264041979273140112852672739625931589112198742108374580218091995084532933249931447818516951109708968863677188085948391526056648802651891788966260837604893319581321275614365114859177521655628773051269098178260983411730586365702231249081803475220858178129876364148114677594475697686092508504067710710371196951543050208134958137095148961210645321927221189515771498117722334865738429365556978746162313708832604523244248344415123633291208270165650567941392008970945803663281732917426032114183757655894766251631536228453452040910327613332918980583412363533045728389950851492155296768426181482916003821500963418577922618650235625580010433707089701432478814901939451212113064740011314776317402172919884946202312727323121051107734666217119019506274629874708599992468209979101368178568053928248254738062449097379231622612494590775456970497598894055698249208043133201326542770895633130415908481062463449132505823517626776091955985733533094261475141294855749775442805337338846381636977249808197563890397211272073981778640305550693624491005521122065753846080709044666721883718685487592962688637155361367737031634765930250966226445577135613997366128472641134872202937604239927194170975423082380582439651750452726952283180510623989502883238255341420927011128593634781498785553623895448704285514609845812135706729947425738439911768630585753866856630568715026759527731193182732193292790250595531158660102598227645577512925704556497469192018066969130142819951178802788275572384259644210321130551746726494932477275902513623382082056594672175316543898542865357482790210921909344114811112109521719910634349474419990612687321461081483723537730499791255242891589580016160611208685214184765800519686436325894624839320819827094375774824048496060534088288295110616067150189142149910607207722783952668814200257691364378892114794734918267578414537300155826338658706301925684647393625602770730651815292249083527557001330053534635732985181319321342169381527109071548858100823142365996865751997193570813844758155416286963368774949748200499982328754515570266724303789976398553968670810385450914717590587675986788471158264616101757292280621918992164042852772229289919651260505327548878451184795236260503027544082966274632673508120003047012300799492934530713967719481169857108506611244716914454297551725446248998374974203470418844888544337184940816234710035857400807302759770409239949424346422037973497996123610659543833252058476232599268180759032537646729377222189248225705926543884562090013404906760788247246294922306595460869958807628464754041872995052429087289874540518871135042272340258491264637036334484340519022107818880848170852627262493154287790307492805955619233009056358095186904354134435847107727485126659335380772771463317081112680630177736704407153962872574848912340863387132616074090545102138056057524624209110691592505964994724032282827006369722594881404888990058192105201697669373857263079394474634121726012351422596613300453002740499684833201799900549312976731239410257896098759484064872059054444897212520530784266331562062496555070738274416359032826402131909256765729099418508318307555422704610345767925706177604041358270900216883127293269354673129793403453782038679005130364808141321077416019937362488497872428784123481542986556456135797446879652187147405913246643471153043619206195453492235725979047762222195328405839944283919406857830937027150934143401386403231710320118654465650482183561853445407543969253054747233865001240165178207657987104326522854745150735760181190355984219160026666299159399731256993361497989812924318789928621184679706301160419632133808775681687836451496782736852124850380729762675165731519905937463816246020193316899989198864647656141822742514145504105255557880979599992361503691346272189577904637185961967402775349854818762084267962417468621192842010169673173887688657237266182075353376257235001691860924741706225052988641715377355797347668429429946709080542441416061412211163939211852863841012848722147868352455619677368106439913437095281328213864293801377267604644769574241970774679511305805781989251023382443686563550962178880515007132509231577951751687306685974933332519461008966233240915633458494763029392219421242449201679525254190973697732658786333723189320270278765043939961058351936764204340293400175530953701630647720358890050883112132309572945212032168384950841393110450089127305921669324699897363335974525752734541879696301792451584444420492423488302541612293205605484025441308145901246067496778175691442426047791613045620633501058964877584026125516028679209073519066820883786583408819203904986919730184230474720642574006767723767280465550246136177994107936634998404028907444828069996805734773163632357696397248992886689977166193403270070748636781360677783498992780425430675172713620275769327833764701219108834012587977299613024706210990362604148861562279287798114050873712766998073170761694849913543745554733954686127170492594518667889248864142173613708274440540634277223084275971562792809908715850493966059505417383928764234403982664534976672706415155737241277377504739924486105997814706751364801102763658754290300222639838936716600917328190974769300146875911716615352468658003110947265779591637588057150935784803927156716320888864827952828526013779042205990475077206665038158065073419755608132554300236328769121552425323249135479748465986665627798077426002515202460929376751118535893307067751373301759787191761304397099012278838113891520105625932639130534695539053726435712329296199630002190822962709143983799873829821427242845844471861513302771028340009444147024605726068818528172425852365653085107904149053735824109872576546244396266874360823870664063418695689081907659754288469207918325976801020616424529421093606149053432106859774550636673046135810487798072216676775947682814943482028104307973045651506122197397483744819279528924949216247741521703931345532539283841550270745743291407967562875420591595604252529008928908434174098539920319375920743401479687507291262097295412875068334256118638215675399986028403219411702975074387111131655552622564308888145748517195497188443895150043110027571133840925671797908559880140044954337122082363044039010094297614319159003784945271839815185671250264787503650007970450503686588045914767964829625416326424145827694783154820408719616358319667705921458831979221123720879714529948146060805960647825768755665764859856457614912009192120079931834395192249097639608085856057778399343283205040153100670516074739349340340418837071465892253080622531643778657381000270965645721716853668948551312137953554315249673743127638554104426438456500441760872999503489592389408857722079648551284405854443376849760545068676457227408009571181081377891028555669512064825930450319770615900139819689625050351413168883177144623715320151314429895724546339188338393833005663236061251372499496203675727744972940118209553273119900942481411187217254916041418910193649722865757639610992944052389275102147950116186576300326002474566070679462284421591179407407836373635450768015766203600823588944452085502671105658156396371607654781145337420467259386034350549889004339498707178494246950005814156103371008640405613688971453088940274656496183394582302035289737855252454324861000287527430489464704085070081972976003456916648199807308108283824444599088176625929882771714686140761973666735771502510509416607444242271142040977688013766054151121756503007381743345615671074831476833628478258420858435910456781102257348036676522841983695805607382401309927941197125535823552049330990924027984944969573967185950794749897947920403325653209681550648427457497792938353717822323221058824209601828138188654791545020369787730277390674068999596877432420807168869823780771504369291734190824011547702696283943470831136538727264542396522843472855779191579957535156390049340481463858132315898703125825973575110467947030992189865860878928555229762191538119946456962799311253316154574385603796225690275926075891659082892136060896024700690605238083365027768547100234766406674752192148639506703308616304939539491686635720502779920773172350116960000792571035381703397335331848641705603575353811440295158982541288824941267124848001478347835775720527977922473195680015744509617252153949603584534798157194124842415946036839850086392774520600414094218265992024231436753381923834533145193885952253009461597538557339809381268627340856634214545206107590307116542689753584531600082116480435008059446350805690012339683913940518098260511578797266684502374825975413352068568338612493890968954495122459585003428337524115427187732728760954004039842289077144891567112518266602482542683169628778119169230037847127084896673433822019941457530945457539829266153765295428752001041869044747763225462291630927867465846522328192080166928853550260852936982935493383195614257908658976513287469553976007118981268882160838353931983485096434553836345177923649658824074394946297777494536217645051591065432392054118003388883460736050840798676002478045144743442778603955182490078559005525372930142823965569734923922934697406401501478477605633147350208843806483483644135428309289003073335734120156195105045961709041717197614032016258503350511535559317573760546123727073409696940147786792611251622461138043986110932916142390691749088790295007223677071545823053409322639999049214030294082330487215107203395338648113859286849859866201005545525480695800207315817764353641577506117126272073130417990448168172149574138859822626666874144877973988656371285081695838562176712632812829589380754016536567124982736496355704968952283048847844344384601685507867248894113655179002235830237423769253772617595368885223573835953145579026866108536474150787891169382530130680721445514044518767327424796790607796596649033143756102047096814671161756162705005182790340006444522552195833936944295139683647836660273301224624642727671732099822135771863060554017711591527147291493029321072177476397478855040964863986007134629253692515920297891348835002337455121036316416100728549029700979194701943139368066416307400935956090738202218303356402959311747443669047824778646731972307063794943072926119702186486083224091299774489934987292396019267266998607481311582153745606803194208222075907941715139072580640814463755422522633623090894278141968618654430161269813093990694528395693454188413362722236709864924397005022200407029748958993898581226855232066148712594147298932920462526850969652434375277888648979089029761238494932185164293954011004889073177770622002868476999675372748249983596381934687745618356871989851483784639711278437366289020003424711553552269801328328584781277483982517069434293420964302870796515612088301234253274169324430671667184715582255580417511046601844914946877918549829031930828049291794805645993851580299253305417044110003346900277382666032702985237618825972712120669598904991234251912367406778687745127724825810684326679251479285534483267279731237259167749377952223288129022942930333814512673881537015015970972086898120738882922592931290991122111085940842667798385471470796182131386559520923814339792836228257323413797661833558420071850891442263397710723471387424159156264767318333357681241165512135544329350100154845321466038125569084869760277459982465928686019799760033729751793084697022635312640684538987171926647365811569457718590386881999688306048902374522159997028849665918562800119203438584389299684752209979894954118912137293186590092931659560013022677859523782165189588737152479919104331913640128154909695106622159693434235392581059584762583594694920397677329643539986789681119697948846186787064183005970485760169922318178412960912973013945942352955113754690144905346630822701300978014803891347325539308317744734667872847697262075257909397510083108463640025443379355400902177608233676420457005954314858077060251097372715507834977140931488194474517711329843628081067875608064922087306503592368364645401257798577429859685194797056048374972484104410027400240697151849602085663169418489600468432517632677456485806753271609125582765869086675137985587965083316052716394509543526740632593319147564306270276936466808362093133599516469444847702526017808258998760983522521463105935015199804787681407875417104756640689201370431159350422016388150024010063850143768929039062884600794060051120873880391540208793117080787397581263211888279223521076588033273238437253089241015294890899886290830533030937961284653767950917931547217053136784727800731323221482206243561309008340833119834733468618276959165638573865351049293322329884817694929487010021035378721159232019215073895209892850376132895364610390252188708533168304891123612992408850109123635855662462386715442641240785355176895722873896678495930823516096165751804187895257669851471028744639184800763522434246270220599239673888950660386620530728510871712064725124634489804706920187181429067198869800109968336050764630641560212927643674375835592486043104516107610913257682923213068066738819532776416842381357783951254224885455327872369058216538106577858895261397078281309522055570248244275374330102852318327487622410363081388126206530710561122257152570497830211222341471578470890965218623073822034945025967204535031392873964374208468187566817653708081267915033372028685253713705992447964263506432262254308441865317988853636879148982832351399285382724750693640080485928500244710244214792466334819443563708411167973541140268358136787845779962053753851014910152548711369900715428097001550658747016662956556816367901114492230322137037976707156020926877335505701945380029470533911241822583749787072796157176085773527090883852164210619278786614208870691308128235999938657109222516482152110615252404575556731648250673183410187226047278180311975297281239497368430217202853442302677863568734858965300379240914996131907618026795834339783409714533713921979693071368017359619503776365364508910873124116575903317663270798796881186268389267271082308097667523652357639878750180030657475704397292573482038505544130461039840803090477030326834424450745210967915044266109414080326933519856724354594221184657754315007194328200773624515577321768614000059384365674623589884732577518419479934332020049472897481741719323666033230016821580403248551127183360100640338119298106521434317290023563653078940651361373512206447071808385579471496141099228623781855609889100566584831533920925172686506181726257329251484952904679713704845820072869393341472760004486812222621094225305255629733524002824460293671816534709240047869663922477005793765530786956885081010251069890646310304801294245021929657994129771151570575575638927855909015219434807994472564782987259001961976805081366289478222802193621674754114439408734161272457459470705494966628282499884893486113401860487342032599126620389743477252130993213420827998745824878457400300720581996615412504984253398351780682450056118511752450814132153150701695432751561298114980054921844484182379704189475877537319052953594189288381437626799230448276729724814509044293527852886160672114333074124287763519366807545033662072514806924750137774694465111491828951047668437995256149750331989923775886228961442118403165681071975200176660030460211504774821521260336829746907593736829143442442758686324090813903722958103449613292133564051969789235820199129842083302554851859013405681394165424129302316251903850842760247987004291588645636905171025421186715515561630353069879676693698589228438385016957639964982008829577792496571534202029321033489743209706529526724670158697232975819494282557621516937097058219963614948013292677492235302843794608647857345119826417546546314781853422763970621830709602906353017639533158013262738085843020985090863199355407609243061332210552156157355092480490754785921129940375571004786334849566741095237883357722652444268136279376288017832323696228769792488301972339994798389824264804856585373984514321864491483836264497366723945110593772282385909536666698848531343552168650521335808092137471517029052188281284533126192358519468560905452896415915732749338822383993480197812263406219688155908824345672730526656585258953251321158736070201265504914963355998517376733137998338861286087191053427654918059712443728223948871941480341441702902679791499026751781118683572922541343010013900965718643909637554542779820955719677313796985400225238883040299190407613672555486103242187579290703123498146190074332213771461833483030506905447459992259243815660541316414660470117267577389105082543051680229064597690530443094100258343288486836974412703901922073707653502774284900146178385652365312971894031150845497863313972441761728536300991521817843481632669108230186107475241730727321427761896166399587294005159910066212495945265398791598622970926690063535952629939224109684004272986932695618352812383495718640161501380340024502433448354756115273271964185844172664146137375706518842914703731700909836865654231906175180544578548458776548651868780694959631110813511158820483867330523867763338283337263334221814020737342735712403024359580848696973435027382129546509236866003982534048956174692556968951794096280486712712796709182818819843198501118062822253718310070945263962054848659388105976588195543768526763494780316096210445882068215508825054377706697508041845949641525612547058237717932468402178356062359894590589441487770392868558947794074034350149484270496277773985174363363737206755134419920350817870121169509683362075594104958121701695960607565084182388015446955514356946356000530497963185022631374671406247817848121378453527784913033744783966201524206257065508309436356258795079420457037309849041658676308576878525617219061462474924636310491409189155301406699660007227237524075817862774268105229120708828562012391869179317252662491350827040458211650608631190476717520655248222293791023357059700732640428425043977112896912874835487329789490902181698853474437526293040974860267907070064429797128332390894594048904005499538473208971507681240741630143284403311055924149126194548730703193690020847025975192774206420597027259127158605446126150457338876167768751871298869585310601483774978930144498725893982236655302289052297236887664265558978320934049685768146220072012455764903924395348818694689131224464026617176448929786414291531922139622300478346751071794403231745934159938062025478863551441961620327029574464157682332923183299298682801321064512889730511151880434576473719203245397683573219840458807783842940298754660083713026730315538683540769414056511226794024273452191957457386054540306833541942569271888675536327345195373386981036912898275903094581673715367882866199925015826244767993963361288753340164624228821990196933877329666414459584082840558517434062857201389130120310214570282377355873618811170785558658926531326377106439905324479515761621808907824563373542847584647484699145086511507046527623852111487447046837210543311133268359618992631706542658795554474857472100360872968317564878583120067233227045721399069971470454499582012379498717087656399620948495532645179145334782051889708908354252670312579163294126355986094664736869660990738144943411982258696058548524226334060030708343296483575690244082726184826031463868459645773178572388357042094031404126801582424332510104881935761709223823311728020012781419618028564135532570151163878953328063641307960988068448243459082327300874653794920584252713701390179611775331083080187528207348743788046593903584071957924034769547338223887425242293641967265516318178474190930446013623263983292334354004023122916456499715210611262787138867520942450584275347102012655075705862038796960746017903393251297582660360109967521502724901334068638814719568327753219000871220645630854737239146687152952938885684756884642041825132037506771751184783532504270693470629263099802216107344019290882304155572598220989095432166856732413248086169762911495466458760101396960679893885350144494294687584818342463392635092981485887110506153100406473913144941375548979293221504375582803174736316689078910698224034365271315967487594892349699366129486805155581942843195099296981644874618508212926999510190208359127468037418609842278274382757147358358668769825714302642488618598812895383686737319472497636730372894316574526368790231065151206583783049452417499071786273547225094393192075821513880349483221911894306778017603550397850443592615517389407404478006465149366277746827463412181061422408738634668333048052195723873469755693100455169057177381843712353926293867924037467993154478159660497382896014578588070275057827286666380868332879043415723666642827629667389454512033969193682685594652532804631389091217667600726839658603763973797189386967140933048580546787426306592120027559831900814593822218983459378852408541563948698454502810645102223060699967044679480423690918718519234934290650488746668035599578347825895936108648501027370861843833832874526568365316755923406333671960339287891051215634869207350944908237561811262732779907258349926780706455895008211313259204005475631888703791271831616108106859017568487031411493492633869473706452950716488686314545905890471651314796013131948401404503865768227417438087917968624996523098214566819536955689742331214909922650494944861325426652054421120010966328280523163522159676311872048348432264677345440402546359588579882348452597743396356174582138904945252311425278056695494663081092241257580587990580308446950132553608033063999873355528253600521218338197520123621934877905251070450026973433010024944960841757250139575426257410340265705736554774206053928859435968304257480176479932770122832043890695429974447731172584797891100573326858189732062488445987775890975502799344958810090128341914461561740614573763791018330211499833303497664886840487345856994755123487124556712159099889308831813799158400600624294842713595264476159157673071069400336305996591201277473134451599852674681095836169907611173527783751817807509430361429964732585121308612201884310822335405504498083283030215013764374993307815675449681370027411202490009551309744169846381806937281930576438793232357419814186045254350996673691502833699283024635516114527582660213735010144819656090878935189443848297346407329945389705769935546800222145227775781851033352349137533074563378406046868905313842370431875393675038707242208363490464246144204728395704025451508860217018818912519506956778560256558857751574236099730545796549978166008477245909506746400948811901202949091858348188119545906711393778702003599752822376860548175752212576731097486160406961685746725830290656573565405315173162606391333101406350959222212948668403771263357719286223773782674079126356277451150630478058605304228467181800575833248556765657242343312756531584032777438357359011070723557762526672257587075714318853720134864533894419830412864255352517437999784039509323640863501333661076207242559400636737798055961119287983749434015389923287907656644938100970514373546396713484698738052225882429067918036438182574105291239236478693866783026098974909004683878420761261459811669515751465512390880187057837111192411151258628842247274561807537833237783369529170934213393224188932888229877826635934068667442491420653645612409078027406824173087681780708674690063967359948830468085598928523729334143357844894843139420998403035108930683295804327510587265573229356354307698242681332362476978977344747039209214159730318044027430257428227850311426701423322728524068922816676510040185818249396648676554877323096996255051469684829744967300340751076793314821353251093576675073978160054864291301784051262101171259846002258280965690702685455167937632827225034990281764246478921450471186323945193499205384180682219938934678178849849154175167948461150916625940869457272472054352714669472091050901404800417977261847649340039472972263346341852954360599185107627696429905990355451831885613246569242347737982048625390790873592690902084237062888207750918692812135100481784011119718505799559986033678564974279783620938837285889207895602993499433078962005923854315917613650369895497643137383799045217474727664968090418537572358101799786791467605995983478252723154950239291865260523783601802505724968769760417225320378913394695529249847307085986055824378646640656197091651048217660880891749123937415492385278401953340608634727311944109037188812549615990843231739703554737409823820300334120990413134180604264046694871105600712026567819412959109581449086442933358680982766244023137712433384296482317935004313437699728075255851402335466967534517494994154828333786133375686058914705731132482291723180828042605542396532512879239993359407275462483999646271161965531871465741126194941466494811970373656189375088594586694616927360786270070858197389424150406190490427965922792066235460393262637171152705386105208819194970001939513266154915637895179904653797002364629119563248861299203821340052327724106796230769161622243331290612390080015099046015556919253167673339342696651939934974281228522502444486956256724424768535449944970489947412444148894343527490231449038947813729262350585803579231197315192909868883128805324118749345810092916417049095094426934157181784078429149498952351085429461641843054211553910679798999134424565010947178655917609929222499599271657112658576975310583222829206686723761490972029310807155176684309723035874125751880137971198627114722216812718094845692451868763421885718081261188657156779692484055132656670287292239789204210209896468757601971353065783444823460233695947953472587602587059783391672688531864052103298104216379945141616221328511134743439217697659434339531611594948531025512707977688661579701939288820248551037033519832180874211443790860501347995376213537141409716510547539466253688692497099519833708402843736750001081948644302667108834105693319827543468352019313752119462546955207324839962192480851688717118436691391123202175830479581448902154278989212333074146157262531632589011838220428329208213111519100564052329814980290909393603745849507385923157271149008017481805833031540139211138396885495084720731949467071658696174929071391147977165503336684459242267578965887755103654609658495111433885804371509872985138343182613064784839521850729256778557594271951614120199586734648236068347207113363394847912341270022058856249695933820046348649540365505266796088309690371991535041425543449111851299238090872878604357681202092271164160930133705885373167268596604700178122773519974924648403755304175554664143908878274612773785601632125721033053419591544674130172300031294709178774723865489350142673753021094043785547950974524219336496432237682546269961801801359541352496673987241829140359665246199305662143229143112212051764460870801213260105253423214351946341107780786329817459248036948993764719005540624411376430126788960668977730925141023499186318814891695091062448786508409353725730497093891290535983720735062539158370415040371760985286346428077723378529181215760868242147538706808898102513075211853378794136228881876355404199143793735848858112675618357040175583816321545109730970210745254135513746189875437138758582602520035187824057594350446606478999645796752900649334039188643065004911795988566832896620693459058264529021021885372465125611098145911891555713157298861692552536558585410067744807127847750132832909732998984291731876619386122826666458561429207509285599941342834406770703244010852149620281149375880611329730803495205149341748979833753677038401458893502040340816221859156971325976531149617039294908331504096253373553024037172069106595689380662514588453912921123932739145103126331172180991000655043809360253679034726961338292359328327476885341031236555518496289573220945296653928375785180111380859535598383830536706905676978237620829348947329707388832465442857319662131463007467988252250358720546843031130307332671618801142943722715009853093636224067459397198915177040159479922765940201805262648493778458982864989190085036671778928834479230118518915479065037888020146039669465030594618361642412959521984701470538627827814966515839711239499743961113319629704167264255454610014480619007818791519639463214415854905797694992560967276932756184787661625075706791689254428331707802026974044956485285004260776605236493000141285085480026477931316860395895379544367507596386372782392067301610405114236239786041331013892817208843818417303618996839363501450715934732101079417177655308729883506493501724818874926198610463476042044955003018487590596801425495748953513507248033663702043573967605079775768777488413006876112412240573203869064068269512528152318321690103154896377732653745678638324970290624810531026873250252146262832968304050550233151409240784445924618485250378849999338231365602683507210154746565558323094125088638431746908937677190502256824853213578862967457801361923030972575889834510525566023604208050231065187484934539596870875002473684277109633069194430747413031612683271725618065653840883406571828533866494325749221339901742378660137208150706968083870255077819232777255829862121844797598543566546501595452062453550876305951736150860137959498685476933649581908477251753813763369144582124051396067276998984136804129902297593155775249352054781678479906718545860363610137487434856690340183564403188313334893702535636444760908492961683681451492745598745172560353733372575509961892359342530124334986399010561957488173674225704851788522211829179810807375683161312405726697107122763177147236393434770140274425680906396366048120406015983473652048251261479020197057850446199716063295223481800449553986256622187033662659488401671674122800840971880945432988588376824554325295119595106773084648912891840256750374104739054611815120963686403837591475435924894466201388061081996675263997111350148601858493067827018529753145417587458267878063867588092998863016395807083250281727560321621530133328368891902256056550596746828049071844551767606430750418873927481777194694053166286401310045086925314288234794050810148914435319322073373070781023542853088416065763029759583263309079022574619901119951751545655556583884399777217929167079641511266309865302702376927952867896443406141248758053806959540685428803437864575859390843481014777342197699853085423367986603971483924629699627046855078994638441407430712757101721440278214937374474266386239629059526929211259482042875872087212555757405760849173083595460755828492245060601180514421825806664608311346277074362982504069082011404344292378835917091029578681862242387518202407251708410842639178043149361246579122279452412308154773234031136675771620983080935614757604012312869807235558641318825906724843454036026975664751545471958259741201567091341776667537479975539240268567260306334284519691044181343656871585606488994487978604002283685932147995210453606356231343001399092299940756626356687652009535158714842682729304864066542262940629822575449558939054777133023546927150551474964697148432322102187851909985572740111522035283049317257057080024986854917180970495846639482992397130261518587948906957536832628500461170638184443783317251143775005107819950349495476539422831867689162824501577765035194911764531727102526269881095282618706757167903008649760978390484249414059259367705326789635893128138927139169700801471073931732897588289464837625382689534483032707272705663430502715078861413158743513884214113847085864080906724304811884195815885072691788239903140262788490828100925030714519163289662710137374732464717907814339686336519441189928916239479541485791382464811327714477320010585950891610950891755297449885683707807787492171971933515218312923438043365624638264070616083130555376966356028425556961180257863398606463552101945330209656718862403201614209262845944125833873171651944433482184984565262331439912526598666705464044124704777112785744435285004409838891900716816505518288402785645637089359608902349264494181810385976596258561530825021838361113423935793941764969597239207390758213304226082172566615661706577107563646517929013459371838100613750594809858216218631077495149511350450174902900325122339513681706601183164837281579514497294684285539086057798753456254742205827082163646335198295694609121228575527378209133576058698265051605105024622891065262607757432827957326232389985803576998442516989305009914735966603074032205458567826172870375703714585800073321900732465775324804353551379570271605014041999851167286767486695214167345561129805574865361802883699345141333737111709679037786543100759872102485979776588969260430577818685980239974517950126125483853699850855398812261852446926869031150602974774351055131440481024837181940691492919289159208449930620893964258648266698779865017001911575872647928089117854439373882077239209006932964721228123200906289422042545535158505653032165402574951190318385373429094975027175879885542300967695397544931694682185806287262268099277486617269868626066786936610455022546093457157487324340227241757713393718128472065497381452980778737975784947974708325179829514406400330546949630955475627915698630371546634358779106813233332360509579060662965279209976081703177595374680781426513267166257498328240971103057853462725091445018065412628894714842671384438269861470674413225943531750253159144633538788156135578395280945273364695738632435887871047897706428841310513563420102352569211771320223163912243508062522969451574987649070786101856757700811661517814329696464107615124857923582199521007796331880668374045112526386395956286980389463662923463825263834800556184249295224998053331132176875612253158772654799689350915780480786218773342293876820383716935019519306244468264061648255444887534910284494847455978959272071048259895907784699473083874267803903654189060086501709255528116212806977798555615727726502663662204479085592669185051502040993299996977448676713362346216566515815640402378441814013381107402610304112587538324916344941140665958568639727498276356177830445216415899252691097113045780389890713350887481417430308093350887700762036753266336405443515524131918508244587050448848330591954106548989390289688461423925190763423110896180330945985087871729242090058679517154911654977196273506318836531485361931452911502662175893585681115275062338251384439844673502881193148072356728364523983396699769787341086179529540238773461858544426179194715417860857678527401513767172176281052042374548269840822752136587874599067018831294173917018443421213810051015874057014415770942710519951804065855158613425456002625152231307949956283613518339114997792174426569695734947102030489302930969555795942930769109247467014070935725253342540524380924670796404197708124845646597979356296585509056144771186302962290562326162528423661073718775019786304870829212197679122548595156448882869888147416980626955993298862749019311210443882588235403098245126349714469448072670131527432416359969602790661239157165666371050826223998651987918623592574075026223448681215688323461513485011720034849394724036953515945863009340489712070136158939344671122699431386518377110537955396386385732370782504416735368836024871189106706500917488581320050106352723692407355614460609392041258723953186561482815649515391017295292812746896208785070363979001151787225193626000517827383691135190438254317731432486937050872805170624972886006965846473824058894900403979406848500042788061505089251167915387719293646675169571468037473233136778480898965620766795269705573450457314380258066136611833734695932445048772395144080858316170904844438315385598045556693743095805389737097396587107859942262903559019089140662615187778806996040748979108504239476339860684593158469856556036289773533534398879352841168861937292729602823116965847726446378907671986961606338479875142816342868597337844931492383662998524998898397339954075304211141179238229714113501471171437093314041754172332778173119069050763240632994054811226755646082229552640906321193923211807127722678348441952804061501290932037186505756748250797222002025602610075819671313695617656017046660257659792692414550127202197047389816323046803317705131544432535021797843110391832142312040002115325634617025993672952732872933282780320866125505028341979363206595130389314461577704959096488506141280199534194852763553791657503558598631157928797490508321897254793395378939540254013820502711229950457906716430213883469681478563772279749665186794913324994894517928706371476584902940579309785043780243275047859854905766759092158906828835617505557052855891442879797891252224803485073744046711216716928990506608406773830313109438710893211818766301060749478070654352840471658257245778243274211055781457536978042192409693955925464595311326674537738613380332304857988957031196169332867815441486564916691329710424277333639712286487076601218762041815174766892485863865193638355144847144518234649900542939398177887574645595744967347444812290190803541508218137728194651053632676334799142365071018399496657231670571945733540779383873872699284752619014495140801688808665706648064193852974568154938600466435687329822614444765652323146228460628654410895252225189923867943624238865587114341603971949913655456066173504892182264681448597369476140243077735005419633465287585180096814176097257335344672935695027204947784208567213596200825617241004822085207542916486800407593029716259638690920458150978461927117326501541274449086654735573392223355804714124492711402655102007994406656775594926897099565577909139571335451922766114179498519387434587963174392891705267448428850122621080817195109844564612888541237102259230456337256085586062707068646572953701181688607160712340868411740020783812393840644227000147090194372831013569902211842861141782526790390436523939370653453496619304468843097070128892233831398610647517020684526519993496878608483706172164550886855581738886279094331031760235693877257954562168526293458508371550589266125362060522875267771068744415409863803282900151077724602613296731230280374957130845202401019454802246855256329805823468766797165752930264969647833217154468423946166613343650855156198308000509585738082445249120798430373294429526613654153652936604399251000386650727551454322148927547512726541293169734117554997829511326711777064105734017039927048763598634211496492366103491928624300455209564671270605958424316745390540710583595217773105603333588174754774873403579385679603921953990963249789664338586362383483321382640349177946359752585527232026011377498164513759507034592881631947254419288274952025855108535889400087123036644667109536087653680137969540910155612856152405474534930913214948501445473770197256890477364639319217227529495745627467338379044739803108326116287593102235644290532381537524552804946147032562379398839327486973826687082889979264502348861519360154315682895844012973439784582452885401293971977362791502803061257294896267880779035401579198523269473097758348951457634410055219964747851290959422597116567768821121691922127800433832200206670344831863137633527178301494770492150882401535089580349845936860466232676960608548910687155565525227045350420955539565266206534525210772427694611655056180488099117618731454810726947604989523738387183767025462648257898051718090009897200273512860199748829487288415553404542065213443588306039470554860594775694599089822188861786548790866529823368160988988687162061794007751708990378798652395280989282608517461400721489590438369419352056762211670842872370008029146696577684237566204712229117854601536805944876300530224401663059582549718502461442333916905603086679312806340392161755728841903832881125487473422881060728150473121851738847308918455010743211252288062465269936771343764712350259473813797779871633468071051903078739368708924048608233686486236147335485753292487025776810595677290667657916568513137216088392334177639340304316454363322637831152118599307001757601046388722307188168312691492648646105873210713658268813174318687446666675323324746002402246846066379810191126781500768276879130877439521216813083774862089030365434870809734261924863992682692986022943100091530960375309050698324829635233071812244016943152427754161851735340659788937410759139655474623998785973104550075794880737935632892262147843391220912575793317145075355397263374661537797663555955691691977085330100809714636344718884001456317141682252741858443277332765154129615166437872140451022978070480730236953022745131678798374013140065246969136785495136474653569399891645656177864698680008155800470553212609013372432531599082776492831611252238603905385255684833557798755818546639153460613994725441600839656214545752204656689438171796148547607597070517384206758190138208337703198020448706024430775733378789656292539839291189329195576188137190242715236209892823679496654641189250294734813129877576846855165223906270426738696282291536240834361085450136041237524687338430531007047352649170237163753960538997004149463230196236036613042742856579914961539405063904070996992226652932543827560948228791277324221112405673931300780060758093688176887540910750163618046333261763274040048736800565846286356135179633769322404805847813543469964733019222564833887124546109095420492008115532170483057107250028799228380052995250353098979053526800237820526039194999589154546811192938064932591668695223599716633120032107115162983758909718679336556803175749190301510940194807164510760086628167314926794043748033745442529252108214066819982028454592191282565499038367125108076425622116495524486913534958399805338237556039006417679677593710572669183854513760002709332268256300742094251624477973838995074478074191976451299251981691697929770056666917288937966089580260964872064974029227439963875461739023318852507107508881378125175491057420477983835027094120850927595691707568717482674813410318719684959320993239942727295635730436800389982807385093488009165169039865926967271744814409308225240941957950248847748026370665618727290437752573204123078520956494307254890787889442113250281104395802796691038438069178846721777770274618038487405765970600368922538144687274787286212496722666972713202825288509043411967543451775016442446974475685356285381830823261029046406958442897615900733006710071560781425355788587966395482673905615091921254103172131358798919942909676185343909558808464306470027529018783803476883675289701634637530055019795436934543089591819151786848808768004995676849023981124718652801018387366805378095314354610179659921963010750633049353959927879293293685602029517258191907543628563861155108731120451681677282797252394748772127167509783826647492796584164836626921630952678571765270481575815439404408450581051700667961017212070769152094613047239832561521703764272410638322242497525143247721162958535808962872249127924009734548656387877519677863742215291485268956693154508821613644233408573525372930787528653166132642305449578592881475596941668950791657657899777995853437516612608948248737620743354015232108266278641961143681317765608509422719081695668442628615378942653720284628288576983994197321581450624800153333393966849738017923197632751696505256939361764655326935357745090534817467277584257337045527061846339086746216680844442702778069555200258667092245104620648846608328547759679104333205558931187710381012206186207558582670848767198423753676339908621007647927250988173480265686691647574927102047915081456754348202506328710516468906345805351027093770605210444816671147312920693300700636290278957328823588034608291170650443966230206050197526100316313322665184340207217228136051932197087507503144800849744947059981208261303749963613273165663006851836530007225436390041398444752162517682329832311552856988192897317200476809604750430042679744829816432789809518616326822059097908802894872143242118510194881238755730893349692255464039777956051146140695328704048415603980130446392155314476886615105653927865022258063773873796847957662281855532583877787294301317830589229452678665617631461836539955867034103953604776529543187810732916641572769756808998094530320069231122775930903486638844271685255130568887649973320316049812062882123463552142053642351113665160181908161622601392304829944329875253235028993287270296178957084344905306463756422189749188734604026992121321597274198736387369102289648684723784663771072185120845232708030540436607272255858590328328105369686578671720715585958908407250853882527896497519535294569404945140373188249844704103076010104858028537020430463235083493017606253734191175719740130375954265430054499836632594751397031950081381476575243371432917879909488055623555950747297267678914010890227766229928053116235505667780299670704784201014498196558462579317141794532236934744128315397918544185670430976705229260834936997605687920186188548354000756118093178747930684423366361067301624470000147451697614160056537511154604864065734623634816401747816193580748721686312505134912715516954517881096333831137506368044853033010166859598525534332784663600058038670885627052941281586552436857664224605381140291069001994848948491234006483674629426029159271776069322414079214586117553688846351385793495096788814514514785536592859718151065723447263433796827372752168576455231218520971905542564950836948920584260244525228892007752462018068127603919970604889237903256492556877820950902771323923483677314399904399177105663681684667723710458606858878713006524510987957502206099421718428888328317709072431399570368926278356776164165714373893659680815921903625082200769010297653818752337560038148604468735300145670942547040546184577046182236768069218182914364814888052480998555101305585223063569528013103232960680153147240117398626001863747350264319142474605575682847714961408858026667561009177205681664674341877800347638596806546933997849564460673760304596560730507173919078073392347697600388038993695305130489494331242349523803440729565757044945692669113797987119786091335031393936122328064485272651619923818353466462599125013598875073057940419186900547707420313478080773744222189304903090355826794247255244178032739942579808484604022678100227808771360086857517839299913283338492499736792359361253653197869505246999765685964732645563232265779744477151906275665680097256180765477888610851747642615917691158397076368979841352514175036464722243079350555503938178847197564671725698636520139214006332027253499916898762686227953944001597966671091783095801887655985787670366789334360737808202445545647370468020754489246526073852145177427270649950342687067648268006679300038526367570980847874023413226572281503760651971433371052297710717229202228075171610391859395023949968445814948764657277900173673386723842562062823235367236169276622606405401675753089427155495020608610511783893079498652784002694690730852739772470004740107889112777377293261127799795652525442194397476917484380620373556721714604011900848231447644640063138074932066460103250612844234497174057229424614046350771600443594275099383198104867029685002594605525802765630583583402585999128039458362859742185822606189926724407386970247120170849046944054440580678316071437343236468727599149282118573488338584629626391093576565003545797781705486717537769743749822712864839989453084005239971600128524526876427370974888461927308994210065072523666345957709622834960140658095240809587258855266534304780948843647383746047196548987434230110849256843125831675281456633846238988082921017597999766256856944998160239924004767963946023306067936689201062575478132967753299186209869424358589685716607876177155231016263902081016451509473779604675306033729650094745889622603916232314289375848877497629812136235073905327975723573325436900157697374302497803051273222153333756278669397409058137021771248176761524529300503852801483862368512729458389163548833990520897504931244696218601879167583607111528796860042931724431343434360268608403811589211052238321113655100393185840440433210080025022752390190849925467798258243430657936419443608040545623149450298221095673280394234849790469532084480006661177454169520163034715816076235142454302227018777985281974359748157280229816779237079096297283420130770453772765376024157710905359924460739352984736695428329349510411978970855465131303076249575079384067230359646541784716962062468679721185594421501675407955046973198122293857893139307638083923579794296477976351926073983239112135282503102883361333284005615979760095017551914971133670158071632955426101215503655236387208771085881539500695172398922448682919135560742375472058242889261008677843476669196891106794308015600583433966793365132204706884325016842378109062065655511830505607139701770727109272856146753605845034191537371914672135794592858742763611021948610153828501820104044596016789988018061735002036541765143011313550273458257962083838944979827849655001330988442324631871812960008029218527222549208107920383974974644211348130737861699419244085865465864673276132160452743331079483908577155631526900197832928710168872755548717540206733146556633505586727066572099896816533971071688712132003262372284557339123435711346417523771842942104814122624835469420551451413479658214262396998119733295192448943518685829235313221993134800166144856688761905293822082895181102587123759709920599855535338404764001971499951673248261475930301387433682816206681238567213479560460425813160910430682627908116762271626944371764916613541734478171443387211043561118359577086774120720090126559007736345132978676255847456045007268352239752370658230683201969408962746699033874108544421370294664985072212659535417409638902521931361337618623091749663170854764209092349033386880930590572602560325207196823388043466266508948722985720063484645741496232216604537408723451024676390694165884122052868316772359482862013033208851026587358147354650847451042858626778120275213440564716278963655795132601613068630531736310184839050089317212177836521664832163521703268631451189158790742863773428517981702007184590490520040148765864294672955717069252257058309898740952440914417215528329244478549567169348463069539808373676709098651280587338475064331964386901724098537925149975441817650825357029665433289377578321827517298618250036559890934274180485922821074347452097135204655980277736995559485203992021797554287445602025823353533572048391627240773419151357889457232920419349484432889243120743034355227918942446081290622109376319285891996968975557783202566339522914040371604671605300343509524089253845194494018425102061476344998558824180636824821678735473591570893391702549214303321285608240289961057775989308931438324869719606207390758475370310011440405082074789798256651574714280309264555015986303986699751800361261086353789773787767877844481336449357704372229080264828771350198273707060890549424398641794537350166129401114007685552134124328348587232933026925131812870069889894129533705689722127242068775023880627769064511879820518775209493085536479756442558116929377933989787466175573444058462670826286097592574946097961295561696156018591925236290322599128717335054806591449089100424283942034495300743344592453752991050380664042740242774677275730529500890420561126702565180960886346757101179902533914827693125106200340140248269886924258260229373120734505810108311400177361857683742058197200288392099412416974215348465317853151124829187769939772848430982264623033749967976730822880018928920866821563693469764401319259579011019888045483041140435761328928612279603816291368940582091108798888449628378351256210967688994585828806462753306470484543080426101283906511371435935611278699248291321125892192388536334800900200241626014694718100111100955636418291934554552538226314703868756225578385149698301103565006666477774890252724332214712936845903746439372549673232678372281212232556382374416041811486226553386830423740055407870751896302432282533985647604396677413323182421758168662463089020894574073176529918238824753125756936551668231219750491053404365899521753182648949004976518963276944452978812522962656583918904036812360755554549402286108170379610362227536255684284141238215614564973794112225189801548309276724563497253721586409325635772068310572656449790151884419127549245195970495257526768018349641009377431967633445614116208187288205803818560035534494356652712860606142297086617962151442491282537295142463501122727166189455679327984014868188219400255015628126715494022837094010347770007800901193390296102549986999611825559397773796010195094861280755592057452091513202465828790746920125562349037383048922928698403791166541592936198188391211001908025016078386095040758273677709596815588355547945784000380179030692468668653878077346391900616464097991076200200021205872191452520530730191209630648813731766522283454190006081525619793915277915710361549333957775322552182642207212691423592420392483400833987254960864495631273977887238794476990092386194900791525461986470441817428616974878664755586591957778252047660800676958514738529263592786283567722332268206668152707931605496061452943872384360164921796248338874021177938524494907148271772550493810234261619239172127937477304210762513342316226954278376814889011790151018504117520630059032089531014762663251642562308982622197870689157929329491528844535032368293339121770338965934480400189611558253679645655336038083497871307584976739082858038790954725703061080738042419011250459106799808813659883349891460676979640140383756824396603858514095068091210481068794160900022562932378033205618786983508720274813140451548572857845882832517245950505890091048709305616911609876583804746429437212758896597413343077402979921805655638038028753405897551439296695665774706203617735813580181069294180182677822943137448597801094639451509640991851361751000015561241557759706807810808522608920367644929369803106892366199769211881897523049333905718895239176333689582729740801376693403304334714826669364124431553040148843757942298480590838756937098900001878094832742165797346137905529394308223964161064835063858448969757356966514944258176160886072704580384242087054547922803192711596619944540719759966022305932080534739160289969978396729544021863179606688218921937184434843346864590101718795334484986164239591395324879370855070713292533879008258403240437857926421911360107871642133173229555939776865335451704840795616753989548468074329019580065623516613586195717266416604802309299481375727562230428215179127487364396128650529439441844809488273507009424623558353045438347937767353066471853862208187961511101143268074297355547668790342038294467069624463740355824900636915784569354764098525672630465819748471340695234721016087124182422632233104143164808063801654400334578632024981882981557786512197233180787746061679744104159373388997464264716921993309731192062061439446085731911685290109295651714470500160256845230549525099942216156312193647870429293602828483016911953897785249906573275367210908246010311054364729695658273047575085624124280851459411694649094761295718569054344140104502238653456716034196256729605837063926721943320591836368112818973139206243579391156774407217003827145614420293287797090155129548044977184646056004230556698049198519822334546965258330746099750737437621741748588411602244085046955959278291629172803246389597589627600647658157077500513496599018294291637700016731764969829341688680274582949681064548145566673913358431068568988001230210319979179682361657089437256946300326564577815108999984918649126495001131536794017914967693813480229547452674623345991291606857817968838266880421871265899100944423855270710139252035612292264772775702629106177159336174431753595110693253655749804870487021451004327677664027050499001428971085060752710024728183647466446685629269600698562585365729325558355063404354379342676985143647181176321886536182395255724316424101121751123042519067919397539353599473804823359709626087208909179806836243865004846018696556799341164253983003770361001685627399033044941842200290089066879631536329403101176352712765653365449749462345105906394684723328910766113240523331114243854250934489987294923882249611794104754960496372119456387587783041660031219807788720716995126519920606960181414086547385171069169576322569927783733154483339267801130517471384442105777919207657132582985837103641341727051332663005034635009072300727065033741795689755467040734520453716995270039770683411031640975749854399137349239701517637927353500378107928178692532667290229243217585330550996521753688547499518917185830052233192131751375419623198355364885916523957343692390603387807526053894029324124889367181505311261096417368333466938824434850368711473962112863548742878524456818844875714987122221718712035133459878822236402971302798009620785336222260592674585456977689609314277070858148072719176395685363787340487143832613212989567787655323818613671343355176031567796894699742328682305797132411198220963218106582335793586747278294918093978150969859401071815732135218430519287641258985356301104598995565887340945255759434545850492579038856631324333451183057591613062607399117719599090795750417666826290569412165213828389425171340555973382985513733772801121288448340946184663066425441576895621277828870638396641899168278058588147381642630298815890367863616129097550517432795772296575169848530338313893671105921479033269066002485018510358276002828750364519792883283353146820089727537631249214818664023989499292938095346386394471489911019990153252362677647129295945494624571757218220592898676959934097103836632501300530299746318774946132583759943355029132926028998507455410068320148103128886876524326645019157864784788286537719800474537683275471316287691537081694698153064200315470360906668210581147999538369406800270145297400305911466287580236545813202234101683954670898764510353138284365400507820444661504308366844466365433913719926271446908512511049280406720806673486696755640330462141714936134334811884744871555018243765624895831210668364872687525862060268866858574139019938409911056765183934159801317641987819651078326231788835532554227239225633205882030701223152457859026185772648525396014014320705741209799074688789706233872886582356005716216496515711262891491284921163333628298476061676522586258099921102303001469486410861704590928612691804934458004541308733846710975574836155562472491826792235601357732696519768938821282198531871655208541238944417507825569267707064201210018808684699853989291612075114694281475912822949516724088146883611934923519151301602368237574676909938413785345657653959450791916696854738174816850952358091256554192984079193585395091449724625217344425961634892397317757688597783551278947422606066182905050567188540195011914615594243031589773220967221607923229438139060189076439400240105359022857624379322326022422921061666968095893796420817507674803673357155075203998404196530584425077875042954458400612541851411761095342005211472974211299867651284988006123108466187903931312593589866881358262361093482512296528896254267402106405374084721271101223248171036984857509940267977403160702822846070091949734584590313115318781998657356257950918980633459561484491895170617820572715566923724382453652114037982413481796570721085193785946565479280016092605427637252857635739081679286660257476998396769693762986361333692287567770989104965173827249553901323737932221393211559967022211416765203196389450053888791616361366029981000255957955222422441025660677582919012851282305178067001785854554799583602911511963222228342435803473643811827328267456324992630765833817210800159802140002621252038445858665273959036903242342649953724394959735392178270453444790860649139992741998116544395826256401523384434932387636100136040117278302670196167841709388391833388343067823573989073756917018975804768368893392869927974769735072461915353446340794298219428237166026830664651514123694101679839916802857173012505748096400477019169259739614211848724917540208458763828076137623587738422533497772440698506080291222874124889282571030763935439194665610335215666654999767495259408701241934084413335234141954918219311253567156786362356178439267355061347494646042877542767560163077198807516360590812745134475762741386814224845491091097305307797262060788481943987076585035680060860302810669584119243229267506503119612651073438152035784372413332863389669117019059305532341776907820532656735590956262086425613628049832174991947263749946092679908759967417019460939263542261169957183300996666635889651939447271870173840957939529986944437188168294506046333886296434823732696086168121848234384672703240261600351967565353817814069845756132992125118943450034284676029129653211626269392119859474243762252885763543459632943269385037411663345873032859968400612329861923490812739433502199715319244769124792945990894535806795208403569205491388257230512307317696599668707214078212873982083629373008979269157433493393453650064236615390836155624882042689108300951520927282831733678062703525036637348447149703101411086472244469065248259831669805266596309798723583700090940710240698197389564369365871422474619624652815541462584378028452429030526464037330552904891325345638716131135717649013667939305669582129746718966212328210448491000976864125566170159274734341052927858419835049639715673043650316111262602368313676526449053329727227137981477334784299807280587958769280754669068180445950026555663877924114865121462461373571600118004226111732049980332862533426867620674901356264075893244144331656921569274230509146238508981214077630470543879206348303118618216935910880263864969243955021545094986743440235941730611084349847618123748482774328577110982030768841924336810341856080398856125340022535090741393946687187405464748779401037270679347367921053512561488105080631421650037460773396012265492809504829693060856495645023613651278235873375577777178549707252166298123230870155404668965605913140303790987101154715909011495317719607203201264668214682645677862636509721633668143358146486595173653856807023120304810545186389352794792557842502006839095585969690460718460494539416921437934924168924231636210609265070821118067383932315705455516149201911603872930229176669360925195052365679103028178507530955079828577928609568189213902048587759798818122507609237193256361182205672984998145074159665658658522570270621226489017589959461491835516164212094684631932179466559063107486750786996003036814370119618201074786510555400999896659595210271520097153757059348266522289357921437494383764618611056142123598299492737454968482437836113989475644119769336918575076617100360996033859708247312247725400337774357821111914020400956942844663666078255074050699345373213734921297248990509823243146564736128477468166859573868137643093866027775681626278539962930463930298840730455551460624629888943886045888886419079936880462471216185029069488832838854409034652715887391171895232272270532748551483239566341695255753412001648734988675416329009494358636418061815519396505130915029113666446843665758744797389457387404440243241094418426458757615323707448053552737176805974814806975160660402667041764601114564546057921943455251288953662023482591622933955937020352970602331931835676523061971827383405979024984427004217913442379971438674544564078578075161833272596484484148188303348784408070580065028376739540137811600304881947429472116834024082680120807546573296345891787305535247129487087792442990637564482052272850113087730609238448385800350666990258488537973991268182124430922603205370487138421456016136555793356172672580353040016248758642207287113065371409265208704932625970386777307749637148430213342879040002948073513438427320831879425157542939841744669079569076863671541211650517710664334275322374365039946722623203656647535107565348689346171433097377501261511854073430534223173391403756483651280438094823078183388008895480171813331657422045386302985238118686811531544368837703352624369910428639883330845783024543195332991168130889061839913220299574694081967199099378353676031059212097592200422202426682880152180424291267378445844686417641034229848463074823963443637212590387760079438293508893544329098663198335284617679272297020331847332237601038882504584490402030054104263386201632962911955796953252907913654583922454964055927689148723819916564592759844705580459910495953536781435117061945318268476109553657569228316463891406661703821057530048735424089216086661392561351024773341998138063315939031836650203725599171164424790358175747643634981769230361755678526867417549532814534538914232936305846253150364414707323075773352780098029621775347380744978811866163245338128876846288565877585673194620670736888031130583454943145102637332300338000453392992447427001728169532030426456829855740599975570872665995031289374518424328348106450911611942719557770090262499655190954446071930316089673674192529286343407012976646774378463272708574560612258518015596824432423427611974695454164086019683165492257972615862371486260010578905692761554351072433668697392860451376749578952626049427989236201464630113605021762953534910974850067839045506802035793684155368350552969588287896438671258367302998646587513661930009285497458197274195042030549852370862124992384214042664000652135422335994271499692550678385546599490804052205164913604629290665848272372980238642799848632858778889449762246286677227566480729276352157853593432900681322969826196843524971929836135235894762026346339129962401151747892249172667097418105313057286249771783516811157220994472846795119976871690399804198215272772804463817007320172816587690575053513839998779376506021749495025153277985391736167799245070837307879705292114712709736999424043101106537364103187561475940595945032565176314380247797796334051343583586883828788978673259894312637153981543298592038463663484688078990151725734532245788595651862460700952119318237014408633498130873627564070964962354534320652206709709952904912501234157918140719418944117589385400201322592715638950034749047423337934201032034208694827695856042372699616981092759835984145045837566736531559471613337445462836069086239524315288206222610586202414695009035547833055388092029255914727825809847078619767086329075363139953479932641325827893088409557192909505345330350883895074466935503623024838727256965348099854208050370523128814391072302965632324639301299425600204460832030160422804390785374465801913925975505237662208205225767753223053679723750362732328057481899634712032294002299583543923478083747463171405658887294518320103024193792502052533641901065190165317924508402813248932350009625009689853819263694773337413007276920297584564185339191438279667280877346968512860439618556075820102783136830230521558890481228446616303072621410528930752575791264849912588267297653295337342235945480177690877082581420286675818420753551808708820387515803173544345283943641209855896432463814313938523963084921772902146813324963946020274283155694068516849140375559094125547525507692453386547945054651133634816790074915644833221474577773419297306883271438881071982377026154572651745296124551111994436191852673661059842969062939914961948829773163514836146026600078842480672401524863030428789891846564806694556027446206998986380832752125590790113374355670695893823159389431106947125988131648959382977602945004255350750247040037211718338676684209776284313937887493635849185596487699403080771079759971011939762886898403286310312152408872610613364604170858112693732368327898640719203415080104644055272739832152785263045313681828145672260459827386726638131015009603207542274024614434629829053784763706791721366041164988537707488068969505407448895839949964532730143117461351953583602793251826697998726138472581943802714029864826790358575054420816125796562961443290247675703039415807740557211529724117725513075252347932908607269460305617430520849115791003039591878689845345408007461198519171150044840807075761282534249702376094300212837432295878694844181810220004765822605341269109254774336950786205803208764746170486836482122603971054810813863944989643500854941011309968387225719667401471641509821429557917736789555571260881357003057296977284373010999135214831781044499861163923894255710238578360723909777115587394435340977796203151839548416122024532753576146300551929994053206233648482739751582342711547800202260227745279056961451994196980694490266440735165848656582508667813658108439224824019796419251064294878548872418043285718086472577736654447546683845301222238141962250664895381979079674114850388844059271363590979663735483100404831758329356451972654479418612541431758898706466152297143306242110654918581029962321276425084894803924207661717090886307553156009011449096732279028737258767077059072885990034357835030140321498397044018048151787878710104643208484822146536422493573867396271669141754035405634419565328973559392526197506598939742367025800634864350660386712250597258538438551005883752513788760843660996700902992598641701872159736333245935779492985587711150901857364496751350987304643974294928134254972428505934380620203646192550545201660455780034095101829854182363011298474903366300364450012982905723515241453304145295888395536562916923164966104708187832381536622482250569732533814909678227523818335693837986615555470556087222437022821183488060501914145504096208236469875281179448970317720543051773793990625227339694933524213094660141570854172523195185570847230978491369266587525201028252867190582895650672582435655269344089157309500925936886346921556208624789839722986762244578936065517107578474267570565264129283676874194481848856814818754608996210886540179149111220677969896773330144356200128212056002444761369232304857425201265271715473901574412706358599065426839245751650926349434934602074246023413295096901863527328109930488858760756589306921634842574994458669655288493743367501841112418479901482810287740764569243592287381667176369575194364979976167118363468725647360669352688848371473855325697858304588319102760687109676293748244828628667868406602573174254836547188431039331856705312152893425474069199685098033487833079737273534336378533478711930082591491728652278550825097919587840728395461308014118986215652946691814816411487370442752380871255238337976197684117448781841860882853212646398412189475645322270761693479865994289238958107882779766505230201590203297057484354387050359277272216100490602918286650619679747087676477176134561265561019884321333607903336633010355060112825238468792278506806113433312280601747870151739529948914213363203042639617407509602671313372654122739763638262382931843055610794976517461068194236768204867324634865272269237565042655103802654451221738733457845782188115503548968433729789810296149494261088154257734406987684874097714485597637484153736359800652273902745961626801774164207984996086020961682195362119304977514801188112904396933564819723849351702131269995097050839627044326103655628565297211463890914497034195628102161271194419051148644976333596822968688267154862180806957350638471944756317383433185029567526661647995045043555870800584981296406807803358653729528774052263728774675254507018369564527414668236237243981727726449208829783365220838279497518382413998287820093334315056880344692433894776494952200822761331131656320876741968871563129935525506630764802424151044206582995095337703172233116368486810442118434549090676467901637528599144951444631753962961496843133878549839782618961281347402241269867562445363359443610587076467289342619838121302930577821943814662544948014695192348672992365359885061453162080518667005898168902835373138923622959849389204686287350594898628638547513359695069912283495595294527982066911603344021690046201350808226014753638223213137543775472582623189243771418989787681566305309639121693450102543093926475799420353298459381528637148443703363599877316202909154974733508587592907699232839385774241756835275304662488441766679392978569991556825032150584731900478340832716431433294359086548635282295348396937001968021807792484388291817528541662632340379028017575471307880685074831636844503426336661982961507759895468238057837004056520259896471245390244615272260455404683639362430260712155358002627634026311764692974869894019165081778329186157183241084626876647560029641636307443043315490735135707072498306837630498691789921068476953099533965655819616352722497095527436008335797750202714967472324389125179755544008692120913762404568452912961752706306680083413506497336351305067135067643352367298500156028682962950767335053494114388211724052175560176606682581491356717417887372213021922639081030824733625194736515231366496198023861858380285203452858513535105658385801115393377602568144136546876105348808251504931051529792665171825023445996517219234612347144774099384629659993039265311918130750610080279827198535676825540923601809736050202316251695150379191713952283693147008837638535079638878256240588563092811349533034432232570248612018184676604718568194652643314653321222182579378444429434743452888891489867235517613209965165017958129746578783512434400375690456143268410710233748308877725073003134744490826596615889284400537033543165589855675120443832184388729727491176969576139306420432023741167809072462172230695483511463443822667748409628032283291888463788944122609223269858374322834463026258232409973324814556082451042736825122838079592215851632170241342889110139276441122276993040780232272639237338486464130629058228950211149836918367281017012670221380006207828622274991523198151609381133350999272106475322932941765556191180347741998697448444725082986124027948382782862624007626525224862002919058946740346314565433561054811669463648648506810770049790862644694035798028966798074756470932964735220676115529293675310514677300099237871599575864344287976669379987610580954764337278932351501554535277192061569565076737509291855226498465994413444428610058180843248972120776216127970129842236779163707928845263561049515678224286297286883791502564630752573630138058247741940660962876499382863264112511460542378455602382755908701866161347305232256502461429716227759698252797440561695206021960469950010784518098038412479308694138982053760684778394815601529916002233549520886302092901403020718052479155314212247614009021810370846341515917884597333081584554290703406275865870471512829397997936063535973741522865811680445566089110447987867472519640619560682982147363276116835830224614070080081556699149040906288935531651410678885090272243223931628267228612354381576230833700110724409770320927873572313514348955814343479703900287075739363702833750531707163097596233807995040768464139260172193872431939071317012353895301084138246551220743868347915509910381724394082139038325705763435846189043445741459711477496579458753141336743346577660832036170112725291611035689661857124556627845093465788621242345869715773112473053423694658430089094669934172574464826290555251307580503926118833694722307311900924288409070315999921838349750162678960516697735041416692583811446572009102848518542738910686983065897126385506268116646822656201182400077202227680709932129971426662419753618301789002221942918060987316565323148950796394072561097586314467167140163858887951256253663166958939713085353723650441882185847147450539970185424003425759656430514254521849804998198469037373360675348930898404341890068884357426746568649262691344878290097741257375087874866644642218742999595544691835507117624581201456175243934385147095216929734424260112015266976229680446872232433651788406006130902822088075958234833917994597726444565847832455068837940673989010299084930258199973337921843212201967916988958933503818465102416159784770496480904207311425216655014444155218152134863062714867200301373685433105494345301143502734528183697214490007510898919167013077670323865377319405726440793589362290541679625816440514294640169461293077003456327384591767943854987346608777368512724475010661353971130541369650306538015534231347308688868378638103455078540430514683967336174081432151513937551440193385695859620257966544090938064827955396674534159743683023347940636381094164685393497160407654593552477071874240209690221871586751967530254244948335705002622755009599485488764339509863036311660003980516169049404597445997695298042646911877058788918943002315929269760510185015900082377940139586060644142932901286305744185748455279617454507686042706672932153577611281322956233223800041730688092752447050164257446946921124207910500340117021843195497689211880124765659952112815205929473246705453637125377058759528860578088679665052660994713766464261334518294344773363803873971740300242930595024951791488532123913835039384952104138477568708146000123618428681057180001696411982428930088901077955804711205218323716448647273128840899336635691449226619379252714078944552400840844352194346036376278918135896548399656995246766831535486242270703470455436647467319278276088459801636233081329907162761985659348662670725804937149810419217479575132961711135353692179954722356662372079339219501282411489673198223816936690584694287629774331166855072232588688983192285450553206594524137257864975044445223848170108340738167392148172252212353148919550109703556291490245924305213054551747562579581304397286265262435723217032534836131458647083040660531990017446466199964298609429022949477399061941399274472129524200121124172676664533294236095936986798864420169507413352547081892411421664322224768259823166017539848945049794908148891916991417828290691514663335616241645495513951099462705724902745926168051787425145609450895581942040755753800103854902368223032012937330527158149864988287646570252575210816291793337051197809665967309215743400020036669999836864498636291636404199976912430711463241609536761769632408144701835575127674969900834308706834759060202523867817362193068853117614460076871249999582875596717129607415079004162535436347730370390932937606072639675687521609799850106332957155030488321811050557813755785398529810078956048552889781557684870797973142970260904983983082521505627430541241271574903203506236282750530666142728082395395006989214720818700692499921736947351726587732311676259344688163742064859677384236391943294220803873081292403701625746333710065145030307752536475859686543251930672329938536823364093967427536859630717026295188114607679088673047218091807252604171976750683600839502311315717945276791034712185901360922010984756350917895778723495404906475820885713274310399156126477219943968706781777714003093522438088069546844760535940737352529961985904039815819143206367649730257717378362698008297295867986166268365978478020472326716411360368696633213868469718292637888651136181166050332881640242810058312455137917334642528796869130464374886101040219086847829757749953623727443539946570963845876625575164668913665345509957441749214194894316441417208543054709702615847086937025255634700895040793326442760452493240068009790316733906581091813822600736603574492625777456592331486651874422551505098554376106343030106233327527118307938840410342635120032211550021166338851830428452972647631858737211815642001265749515193721188002162454994023579703497735048819483120064464484285877984974530083012754755616700578945246210476087016545348727449642573520333864555887701535325102686755971899535285309796852598827527069980943382441468684437010309721878597689961935990337784396901244749705301496252982197307280023650652974684364779974376144746032860743335526464372074871067294621343282387299181954680487133466046195930755041319911753786465620355798552466162400457330944047714104345335051241064299307674501657520582757751707734773976984551777813100028742165520462356673514802191059105487148388369373136340040843542052808574066008781661022246585101707739439105396250447652705935851229299471044613993935844826692771231566687450263559357092636178561635877021132420415233549543120120015229737824924635955655992896645189085554335954610457684312073527065222049615945572554387400508517753687444245819635081609529499524807052835976628138999610449969043825140974427364938812301015718113621732063653116213102891429834479074407741393859611854427083398757700887144198124506924448089610335479968337628296708013986643614566995114884827256176346968861068028298343533212892439701436043846105024641349799373783880764995098620797669523033684189504537948350113575999525015955321198802152422812251159066637091404224212448609211177657155512289342193248098378420999032617881837610077912112116950971182649200911856855788076658716475716226954381455762820575068274985571831350661658931681014438459741865875583290924108004535929181809241251400146210004316639631188225869080673260342471846314368309872484393456173450315353057415324644019010113221433523745201072179074530156023128803729996923842466693002909920264521833438325662668516761048387562858887501892100390623062761166177022408620152062950434467239052152644383307104100399029694906340090033961786226064711450514342147139817293424886445091211637463839601037097237842037947057546061959943551431010476886405466127236266201057615904945635248460322097042942318460755636383338735288678470151594468445440290082970062255468901785801976243769365537339173390200782224691332470171622540378281595865640725982839316668055541682301280529889847930327084283259457889605443818324960781805142754229451861911092849621604079660364596981160999857828477550700118528070804973836887507069580435922255057094760822513197478833945876312965141801259675743159083775524994725381082386302377255994364873204529221339610920254354128637991542878578676846496049919721942831531773452422737196675158491461305214283022682750364464239835810037432297117375534913225343808858611995418321287873024653571057290052185259466174891808106283877954815878133250910474293366169454883156341072156002811475510879994390628673027601859629779189538886433457010518044202413635480237746589404933576516856576233143004356608887252988544302058169925569536105440131603514177690701929956102012515342566060502144318998441824815468480611950997258116839760643619426488983438822829353624644292007887683006081871579719708776317806495884474024505346090994798138897757588041488983994523920700910315504912086812402366872402118468304150787244054523521738823718232993214401967832732863682632982558257108921370876805510131706781880219267515451739842278014800525133787322613119145506124619201998641542755766171934154842576992817894116613495768431842440661212116199845426396527374163954047918239321097165229721250300196162265089491528166741259643757072862711178104121191669347306345699449579656416956173288324290887078462706309338083222635348887082667607798348345738118894914567578045168359750630132464821924903353755983676222326719245323582046570421569009796823527920595955188476115656562265160553723572122286964303744000615016953215405100202977595389966952420967130434188700366187214335008642169526752241252625600644282766347954670251161194861418513608950111085127636920298678281953527312564363739316114876795835640464958207493367377597579722686265005766937739028460765483046016791424906002914597549743813861692123802721041532392580736122315501655468417874817343662396324254008456920539378869622474798427974276926067633560192884004516904378032611189975845381631631218149261341255494876360444678468196612796414683132540741293742985090452917712375718814874343218450402764947068067939333979560122929637001020229669246948612433857569980502126550227968223871582700884634622305791169815941463858042099919547126968758408780089665183716314743705254178183266269443241179759899730009937349620720399180261284223517908885279447603232820632331356280630780461761159617275549090249679903949293265441214161771058216747575441277513491592849562799227520376967100858153712255889774407510287137225461367770064138212174752104735560269884364899581301379679645558289981407978793078073700226204572970172416275621234746031671534258801591639965932854702230293035204363104734606593594271494626849306280982724790132499172200684345580017863764533648928187075100892118343494583100657709736945727212147643267172886637466311051262154792565623167565421123698786659694031681654391146237811605705695509389000249459405193626488052260568757169562088508616719540982009217512279479895961193933142004816617337681173576229719552891979035906415151860336204828164414094449508256062639964629732816988506932142631086404050492193660612381180439500196628137087254828720913037375714085791150106663821085266444485305035205008708427944986757490841750500958656604521643612972725980190831044810471165448991706260464095866704113751461502145205224696755887408618154385724755367088002273828250041636782248267959011206901977641642490544493037551828958452742859034321486105432021750042103358567395632023958731793164115797960601639992549515319636835038782823609389836753243948363395493225970272524544553476267128556043933687331941722949663190648442451911423549973444431929230266250478706863926374654665505991922527600794112163955585443329830065110610468268443416574503170229839885867706149137465286028089002771814375863104897442431503473798085330815770953213834813429354228497024980352458710684258445259005952400488170928456522070895752159849595782695703202164120693582304524331213181996536856612959666692674449106702495938658714669996575582990595853744115516039873097425312133360993492575988363518698917151019401707726623573400161535312427254419100913749895199314453663382608087498897499759563551824419038534380608875198855851039421803313452451731861953984099932611270934213268553441554431785803558984985201160610114817484960957831405533702686656798549712479005663740627994049523635088132147979421601130297980739890105121200918358108789569453080691487721396597930267818398797769195822952019354154657893135577039690232385320614487737228089351185172446747200101722397221849165838258373555262599839461014880001566664780008224901902348160859400106620779140760150457566972401344170020727124557506268164224735469534805933576525462086119122630384985058241266549286389106048690616986621779086386256841050070499645928216635224875186100776551034534468931499945367392731656997046272034049375573367474521388472011193492374135317929888668261723199125151656674410085756898792608424348392391679154915860171047862616853232083588455718030949906811652638077635910534558126582426181896922258756498858188826140571643348591676044673945680462266937431666276160426302139116414557621024644222095376174726946022118117126064337972036001278749503227648849224311105870484076423436689562874010439450468486732948439807327922481277837353512555591070171608966547608948117240113225534906332013195784005998158820323263753101647392570291939057468393373946635507012022711995735278166256023831398484122719240715055323148283189829283295279036826117054227340227136470769195838676842138156315842299778655562565937606926369948755079364999577874078418648054088331370931461050877185349432517941011893445727717356875373131683998412431801109591399272056482751766466960750254240416059232518195704462369054941675131092848595588938863979850417699385123158418651014090006625963193854873333216363268016447317446279466589863807076996218224289015296667253481329013310143868059420130030695693567138195644729860194458916744649806074717612022086628981379498245917691274285257049996580980839457026248244262837886266773015076768953233547212712358964583137491719741817182610087275259169614108799319828219930838165369356324158524999753571221423139917083262188823202149253836666170593710463940953397844084023525821987645227882817068007956325386109191631386554292666806907269038243831600422816300817171954382640549360768279667545187360281804674643051441058700945833433689876125278136059804761100462193602859720299069767275656837797144989695267110945403183273419934999287606696676511055263981336321191599448946199629826538672968414988769228343655588383451118696450529628566601747237155448675575375788285679238150504369226364074274291325595559783894111126064168641815166188672373436855721797752919993374450463318242388078928664488619410383856793498950367823631730425629504286317913682851516665713909982389280485763194515921519761479291717631631811328067426310643777874887976685028313868562658672461341873698262042779630286319245379527544608140236776396813151454536080876740389681214664173038855385998625764921831975072138250173385450678952305238266889079187226697582325413417811980150610639052735546401129596351208962698206528549737768202229048520054114887714355865251475754206024913371535149597821074414805903287720547784547404453442872551415426693906386316093907297911265969757882009957573327623445919694413127563074107491660594497912374339040950311758369999722488549433650901431547223430966133993030525187032813882327725827438177189522966549385221084938899904714342621926594186985700139101366963096983580624747759057047078273264929952415254296181685327680123078893183260010485439475013142745697004196754511929513265563124108935186591000748011064930840285143551391007606523347188165528834619013158429305415963324484267895529598530950757607462968755071986933560914946134174375432389532509898679591815056570803738174683096213818187863173735159624133954870162891261593893811392454098898288150108972806190957870062009700181407540514961652446801950603935148683227619402573694743952579279630268393086570973604291573561419851726614558033352718448793272871461247831333002498114339826554470281899432090475113468118094011920032003262112946979414856371445228835685875095876557274855197709684346152443442287777074834819142544103182741263439313140211204479114621840764472335182404949877350799191189927042872439660385150289310023790504036453339740319032481883079151216509195824372861751127184155976214195262008051169626233765006204049155811962446363876022634854165639272224523806072435632809049386498880863193888982928881703448022326361273418981920244771886152305428190125116526177060296865820915517705947560639175699773518082891918871260366335031526713918136526854675744345383475242166797049519284590376311220950261424147399548925425273999359271648332635294617044284325841395131600749889727608134947829596865654807980175097938751928043916932819032954902332526144605729080130865492269758592089230188310749112705013490087831653706017130799097212748240131184936793333168222129847633926352074433955484275399458579564912359639103621059292118142846865029810111787588895579603893892157434276520617258697693930420195544163251257441715043952427677185893973641813052397067698257555748786897031964954301959464233206648678563541630679626013620954392802979002939932628501615530828795274755250763791674526306519479299547717968983674762552547892799631122042873010299017932111677065722866635232256976313430193489202998516644354829478546785002492265617597517163777101301022334357399909465300086528585483276247287962776840135540561741504230403335342121239465422059034287929429589175631727646728565959894780080970635447411554846841566905204015668120372418234506647809334998768878709197690381961296074029028915663761492973193912584926494389939203273574645992254172417508582242069762050089952591128206900706640849434408633125085086311709963058874745559060335565098912568187219951263709233808924626151304550718175852383696481631648463375615925303278989880504262454846911567657692293776915452829695453718785942118294000271190599092913103765747586327055625871123087687036340284088860011119252583941141085637536794070329494193689667300801946257597292557544055893503768654655997100228714462224103904297153649188910786170299408613610657061100778705424132723829660832001481162915110703259313519200339916725900764355881587524331558450262208281853939318390776140518285731531090411031467083437613649488424802286261567416413460176393069782131399474450122344928106342567555367153136869148558112470842148682558360663746464330097864130724710575970610647539192025363521111587632465967680550325777862733152269361649450415315211962054502323998361033578756610723084166644463734235953125614683534730134382337084187599316360833175665559775454011572872279817768668475792271463365200232262889081454383184560550695554721933738110813312511834763078188766153556656431768760835356936740179507581805218111946851055089905730218630872242221074364635815479390409220178788518959357134186452226279437621454824379258109762487223055362140705490040181753537074444347123541963429940952878262811712796141687855785637153431358116822329172327984106830116157856856522260842275728432494368159787733885578708552648276972730813223843378949587799682989694864147701674791699165528677126314068805365404287380907365196219788875132052332781151126316607895053020593302508993946210433631588928354504865986339039923852025533900702821631115631583296046877119134949756796781012150369725185263914984315617740067330144395923851821504815502657808965236987804958546202610427320356772214207979461977236775317561294874077227656198627055936769212713708357822902169020695220464766081761750884264286127880789274805770834921952487000743139812051816544541127206098204258295933031437005912792055418733796951624118424818305209223741449782264155161365842049976447084435732980197451065976886423960622113213307500425543540171726429374408189208771877082026972469997262033575359819721453075250761354279062322200063550175349292903684863656961832267050959173865478110087759399392665973275624125720676575502961377223896985601370521167462204834158457729514284735548802158455488685831582527024225744562948041924906585769686625257609194992593082221670950504277817221259627938013015455068970362693539745521946324824858363024198178967938452145591956422281589559498497435828185232694596417217909797684584741086796479522258474205804774343334419748382920290246766359119139966289575925509173886784437044674676321635815953217369875768808057791210978296208953154377136680016567585888226713969964882831982011635907829084526914681622824217864895792941959419054249151054504189598753254942861537932165770169555545530194397785474277752483655013704488053883389903664177939210235301567753047218666435439199322537019296898302500479899215632173764522810840752678593545565280922801689149416462620024514272933060962749828021888064780452984818608919315448177737901411443046018261941952749093768744601495325228342771647513981364669377087562563061457478711168058690046725551997498570839692624669996772871328932135996717654802109750355260835464643237664480026591795619832779631712248586865268854703119972034959542489309612156288302381643750345271614016049967695215157133094280269176541889316346782703457864562605109974792219479892720187093905288384647742144404920814108992562819736431579247607532280964661925409088932693858906968416748022520375759780306185114068099332695693560855285122782321410174855941622040463398483979772964376618933915973209992183063807018050989122240087441844146213464149778118833380939638848906058846371257348939593269704570885637498018341084905667727376143300681031582729092536463629443682001451290587651052751084492870891827665798127673677111876238413769523868533976351503409288477319098924455841329948134876960497931846021832450967906416613184947466743777768769865855593529548730515163374794860682392819811928621319810728164172300962491337381937827746885392574099405272899027794364458779277093174188015361980940581006055358707266205748758799871439282426287633716418263909247253290674291792825254202537946174134774171683822489871986725153899388234933895419097943546017077071492947308181007243208303794016560999025493442272652635993690612582842498903177165697360980527196630426833737528287546398603267375363391903836327612271424906059315241430025736949008792784389008576522592072093482262478597794046150610238776406394378994747215647931666683842264005784734311036491094541220592547523458451913030982798122962615158687788906786002147986877892450878704439202661972343232748657938919494302671918609125758667543131224003059225814084849833663292362304214069459339507791091817238788930346608612697216884833788522696548953868409211729300347133931599289514878855160222199535197464219025494568466221267568489873022757719262238561260788797271715093180596612345320828672011207625556441551481531115017670869886919381505341090672365509809024334569770720262594961844369642525934643062677734848843293095627898745887234054774956045380751299592161687635785381247138307726288554195318572382831541031266398097870046209779137390318604552791410456496118943921004671474538021197546851088524246819273997102765712846948324946043312508363895280421525916978254228819302854988840467623630167976023162190973354837245667871958286749262783470376429730740831812776737891487877008340542968450264337753707282017569745803063517221071439516631918348555388183630730828546871964144646944842075956373067081707718309262678474188022412708619001514100925067840290570098333141673158087613290880096895625624495444677542272981208457455950834427136351048277268118697590232945146291989691670672040556778241408938643402512030278762457291626481716091879962933289512316601508200462368356667648965752135059160434179610871621408168089657888136121252557824266980756906487686114214902352847833850500908596531444094844512704960386033847357449216313232161915678356133875093043871694528149377528504234333143154413999586046580724193907732531130047938023061219614711839012319826362545140649341235935924341947428055267001938412149742572409230922032886198900686029664317764382284501555612464986399876930213701719570051737031964180291431935149316719925371879209055194347700257755923541439018637532850383823597364984465103099562568460714796308832830286017690895700766599417083538747954853613687949238256520532604513178145975794292595261582485927897377444397792093427129446555809503912959623779529676503147525510123694433858857004785651262255211850005425715154368551267729595462173555004392605670351315125225061549856991253663036757075428109195276980149204184443768209559333161993245168775207632011478557165986385684305441019522043318338135732997778033785937415766631512552616181832058051000918250271625708135473266366402624381702620909751972454508929666290279420206236315882140393198045601938041685818452376707714451902731392351225140080070281201375160459135257892997739919742452276831459102192209938950987479220614514240397091392578323605822584512950390912821882602167509761114581198059133057777992311498206024082708680942947399612037719925568642762154686649374243267057876973671627447730370004771398215868579395998353194322032512940637015911719041829323081449486738294161565350474425391465260001657838904459879012467481749335914287681276380652538777410595383868220445398014925567155590010164587093645746445091488068237818644335545991657342281599699093688789255811978253988783417684892931272982447194312457261268304121370376272307995626833418900275341401402595709351134420985155949298507526451141224030960129705202044725202689105103308233134901685547910302978475014457162180007276539791126474797757942855593152991566955803230571357997865212668936549307917544632930471925417139661669028911073139509515144068957702638503580185184289772853972384320156303036441573300691338525686097668881492055009667716773356016844616258597524717273170451214552608803490449517234592523109119052691722168908459786541939266701499289168752518269833397601465775741071584461123322218536297479822277601056326116112417708263389230915073972169019190664443609339332722127109025415206006067799730155032041953202456763608808744090865238681437678045036619405875455358360584784031827797828323519161127727481698489587630384197651586712855544261706795619399808734048599463162589944861587716903846699803556664106340934470184791003542473993398058923384223662495323854387228065773170100724121244082554417712720685622778966446874382091416780329084150141611228143682983207079456681920257206678916506372296067647188300727772708514693680847058378143771800561460174889173300944248773009388453075819099574756871209486322939164848562272881574716399276569970149636255361573140391541643392310745674474039629296947718748191885770277976977585161298842516904808593054799713390155890634866909570856101879473788065696035318950600017833205251993928361541886731999180658774257072977715866945406808782910213062278004740251801411749991719484840409598996400821860694359379994263460028195880786801333361241096473316779285958573236339181161685029589767000249098257418330403674640897443456013109318659253817736125268224551151235863556487610691377114829281657405993163180656935682057867864453946548606480743022063246941664103448126733121980783500129082831946314739626023323318972918038433199060725730208574072504820100682455956779734212662033991958045234877839131420903431774915060921094105502303139006254846858250565096727953559430175614367442518735648272123425163465032957100582896390127882191337679936017643734949855638078571440614066907839631666527314362778383397110949248494454569051765102416423353090217597861469181079907091365712953188873691924645757274980373250076793939192727923979481309860481484295762570096376005750528335935056980544442045669180548339374896119857468848370426578361278149316364202170588972741930352460386333602487824599975942496354384952079681553360691013474666203803929963237854134500933457983357209396185637288632489141322957126802049748557955446444865968455631430955822259066814769721859972283715676778929592948250198872233838177461555015802465495557137190902694555213595389991311393166613434255509029566734781600443298530262642072561519760980331262017104919874863681042201910087812630608394078120751316627967957321963177311760217434747536310873084537486761741919334236915012160249139584508695209505735958115130808418383132644149503828872884778431556237867257917757338704417735137576821045933618886255661715073056931133297589279222007910276910329254841612892905962157365829143057313488698086929568814851999453878130904479554572356452713632930472756917139282363303044922873738766217601969136392480763980624221307676652175039363563284186537415511490451895230797599767011910804020121767922800050497972952267697450935936363459446357312236241330822625377153178854219347348181787914127627479931337251750640486773561918355031247780097595067251378379172478191106451152417230104505399781154303964516566077460137218910072032667018781410564866038629046409414610672024416632613651815924011037506049923888726885037362351075719818435837765693032578362408488840128199198387593810642617633265656850278438369744095730577510320705777172900717369988386029598855523573854854253706095801773797881267119748568715628820441085994233185123096966367991406760711219053910865410432162322884869349766917555589499984055181503610441089157581507575784228780020220270401298571006234904478100545912477871643780208398313854458472271033015361780757072891731165804899616236802414837880299792325170494822660408349137544608811525045699716470601600638952383395503787764874468941264561051516011686451787020368477146032363398943340540376030106467506399514090179698883920289530541290254428409441146902513652451163620456466247574245527523080584140670536679503773079133863294810055024983622207315350734389721084544337099245731498964619227306399105687980435363725768070005067852262085226096802882625128475010624326026732163207989129507433605875436162522306377526023149652127779226413449149589529554151204606928224300495179726522351757624147653968287728015691650626930788992144205516469768978824384855327607880379248326766548239287340804064757525710395254203097341136392103370984818974843475985851339029431944891795533111733755925995720627263649640692476644321930221376058278968478012340988330060025333829144767432000725922634286181648733013893643324041879131416239152658393974378911571721428422880189408666352522325730680852836354892074696798733925092483512949677570736955072244807739535635328640057138472067803732762110249076301020255256765217451023184391282206152719865392825237738392748756145996867270732774238452818766408625453238567402798771961980060916991385094211653949534012294132408436236198617433048614736718544513837007436458052168992817318520126785542970058599032136997651917970846723938144349153195214520396784858100932236661017454814721262277023496719338283765078120494089805704951505649817344658386919738957063960518559091435262722419973129338207427662606691636281461120507425756971389560081161709548143894074545698155817142914818931051207447126686616102994613676308277121581439240611397235389088740036149691927791629448061216338064697220907326980226689113744485937060199713180412835124507131537617269474664725226698013634736220262291644507584435360841066101377145852165548023395648671378155695790156179815560528571228578158318821769153099696703205078997109150634583281665228205678090870153935813159955790801471827400158232554240649159750223397793849039909112414433490408871069825033390693250431144119121208887094095042773653187824711430590193109800120173192369764139184462689113779368411818783037155289573306742226774875552195303632563224303898042322476686874988390732097494609160777438686125791921369349987853737075377542046049444804285588526852325371537933214395560054204756948947067697724382684113463800476622392484695154634317307510812062774344879955373112205822167353492625300762228390320839635416254000767380216705248360719215445399441850913337007985494217072959493389545924632251371841518168372153220032949855597769152503326754508787220857675813304317617606642346194601359935563105764268086700120200989388366180792856722896051566002889149483171223613249548797758257422745519779281764913008312890546782771162676749305160780759324539203493844142018415166688551165614233561855831555999727060070002267309576494983793122160314294467909403159751543896817924615243889934584354495408319614669981989746073729685657474581397265469621450485580958097315004951563534518871172659103598078318345265740146153861119995053094726798521846658286346720804429930595050431032893482295764457078682893124386552654848519711651726107224269064267825881052532413483467832787977042926640338025228535389763963881986211280547172131916932587151851828917302867773859532729833044679321784885446010209421108541860107686590642529521426504749327691475188516805206363997702144882971326510509644320371682295067288575384652535641831074909668969981380775095695284075977753973190492872944716092938577430496185846472496296472418943144268766906488186305485164406104998429316719396152094132563933263519366677188788557512845051862678194719097623559955293142544891018507768865556065278493232018704546281390250537737356356426046586133160343314356866409369312796485548077343680298836286655539869296519086185227512302088209116304055922176606196267172602823385290408599690980678696691427218447198335692586655069208981643924691065565036494590390705718984577922273000378970361779049213644140243779083344622125820287040344554874718510625528153470762790287012243781346372810720713797139200863628658945323600613081400032045633720668277361726045858374379447874733257266780959734513150638430345958044825210012201949081734039031813598783204350899530467305791091035052458411260348687984945804986617592049389753929741633052758864165401996357917160308462198504894846029835993699741856410144204487500685560723380030093627341868658747834193584144407260941849371844039551612567300362490030591067461332699342535524848125961080197873481447845571392192176723045522388459249787322097605718715528893351545908635757464940469837581976714264865047617338099543069150542613740795475748116249839126920414887777812615373415035607083420510913854029973355143967384464731585875927158470777740629124385240095738626520685656579818996546767985862261891456441681806537117761602930782620222931645532183336988205090176043554372747419632706735402596919472270978148826892419890734382494432017701389624136615416114204171857481643743941128657750831257361869705764855205900803007302790960371140015682188589936470025516969123747577069489941645056100267166364124448666865757342009550305335656040445893516925318740718136156513571445890314485388740558540450041574658398547649832834458825755992882366079302609352395146594629934190764815514428341937571458215767020885536545946296939381129109311144680722918035039894829519867091290989876784847169768978238126442813174530409166627911658552160830545242330693614178946555422793332225623015781534497449913973723903652915803099381117684807494029207768662098448819432796742118907404974069115172312040372844784744225817302309414492355203334162857743230139051359427064115520478266092158465098348226282789118736477922175875578362782736334595148929186197673613136098228119252403547162005151032256006926608892675445033217060493856216476726523724139159781570449942174049470746802197344339050966074846301213935161424639226389295818543375082250457473798610281884818607241581595062072352085647638543555814918292193111272365997869617142503083378389181870637901450109216202121498643506970072773144496958969344687700455624809210207927462507756207018144266178372237484375121983513927858538242149536233625021356119614676396893597971235334204041618593859638526966599350647145294069895873623896808338276952432799845737649067675949527394891381583179032097405548962730878670597604056905041263977572788441317511679730363707219460200106963492506622278110594418174333428186501105063185550968089672622846203339751510636204718152160678869017995728294831642951571156381295013597262924812946666139521763705766670476012821836641681678794388301052293073196836947885941731622725094051770746106761032055267314032637429170648246286924401737025237011943826458958168217961967074128202128309330030711995738685095228618922048623336015275997407453695051344155519419263572026520140716727225718185018025858776227552027812318402930744367572523203840549998022086920806673896203114024799105870693796906679161439739625399157772459435556609734230517693054684074251233587465416697947103407086861256816657634493685665306185915835336058997226301152128271063268681383872517782951931927490439116953870970586544713358186114265443291205454669169961750100722624156052821003053570435657526947000136065583369800443313453213321799660390519700602699856263778820158154673231949335471193279175672792342539059970481379942757788655317096954389858171858507003392758366779692613673011056547468617707993296135026100076266685053962196874191418170172960623103501304607533873045154980496312030993313018675994084245349919216051891385809329841328018717564974306760423057445578275289035658632763940720729099522768882038866382512075423847074451428620508040386388492122658158208085487971072951051541589587170830683390428604274878823971430028636207946669191632229848908785468762683115767426312080195229522435758718785671785360840143879815561304482021779319319131016841980079066719423819922349489150998686991469191052191734417814526695929872988958584541351093277864304629982408345132455496419513367397159128842729247853338644098653916977784661996086525130757341328060532637671952750676895430895934176378729719039432158364377343001074056542741624349360103774231764204341011031262459130660770212089752985638446908915424939914256834088228699234562335575156596414532763151913426933721707172898131161753946218391200374602392482221037781896741195099985457195895906358622159697459594596136698628776799016036658141259151960114453355327344349194165465591450752235175313131614083197009863036111780063441898207282734041501657623166157067517209216213786695710878008076373401378254289141109666587846156354180168816124936231570483056713668945240557735043359541456247434603965569090405362742003004799051575032890512320277172523207202017029572284446227094168178532621483056325177612051389855554740323401041116675448090717840762265587017932583019011828638899401272158251497119822961405359829060060719919720514880602415916424261298949899133361139141784283027991718503192409533547235914934789692727549204855679161235887274108413616666922254190502897227084233275878678882588317530179860018089119634047655602351374017116704865629463946778059001954217105990214286696692596024660709853892024511775921527959661720890341193265043389137030419718450162098858492725813285142523886591749741004244910472977706022768107240630074113967999777952572539605037689519763295774589768544911964400597482446854446284443394120663506950057444818382357871930023295137993911894371642291277096760323749224164040252287182288957785060142414314052849773395452551381910387628089710188872552234546937779875879781203571459192409726717683884010876227231595647244225778899784087803757189811693381213056557829387531505409584408551307677546794606522931644455056050955595706507158714427073349657230969542254750086710454304755401768801707311743130838871934427277253455809042968175895392861835363398989194926929847038242767918168553476645452983904852429075291201838848029182375860280679213860687746155826246046769265665782987259559336267264906372767440698406719522384850662057435654485740045420785233824366132161240709913975809150428945686876945758544743728678317353481586878852092129159376014559488691784338615360973236246618569982759380628624282220881826447251402076802503366949041432482543267058160349964102498453020093749242442379347599037460862527978521881259893886242362582195536393134080787309378863823578854172459739440327245900546045464834976012924394080774346742756454362791356380169381370725285810612406833971092352433279360165690322444919232564597725465445494647044645395678056346374177403105294137272311134139023542316749656451118130662153658954100040037861384285535292119549325794120911416313662003756798382372713135875335739984261153478587904125460804913063573275737110525427093313228460230920750721511410368059052250111527314637625065081667264855223139847114097108291370785965601845264170079359686139955476142010619525108635882070679643447005667613976773889518015138307080825478964235063077090858213192497584197516736358020377879218110968201137721157616581109933714580563744568221771333101464607373339963824109289060526677307163482019784628691607961673648170575109841874223774984717477422811526519096252681530879499521331811332437603900366494607594603614884640447859307177228815061019083306853155323995717421824414954292303544513374333305327307531270020903396890942214147639412440219846312186366808267523430548766166882808431471663192231934812341531203516647048311628311343095066494499123379775821357423777668623194136814280438683728659464456616263509840665538628749977823517136256626924801774488499648151523378927782896416976942445269447189875348263745665843543859950318649426807072027540934931529063711855199066033292306557310586908001291218353975568466412284540559103925583888492487565442059431765630065781913246740106760324560209023098694866253436602259630402621549709761669974674338638674766150161462118778331873778013368072894424486880712429362174609078046972977097377993480816273717022312870491339843378889547317975890448314055153683212932608156442773447368604600185759449955873047780158402052658860741704854112301137127816660878865006763540452296198985497024333267684655076889636749258979150696777540042944318718244548093494605243184182377750654979746349953986438142091120621653849522858436417156737640538199270118476124628348768298125553684793089405148706191212580996200351735192478481359252536454413074189982538451263109759829579432610900377652877796077496629825639078378624085978437860335971626282519752489193891568806475081195134443218019553303573866506408875460873335058606580232887861962081786073543434924211752743113643831383358846358472013728762042950352728809412002395761775464684082908001145577051099081728936808332006756615550159253573182409574583543675393489120248528078358493368245908937254579248435905010435941291737943272015754083988714833366687478633689768036869156307889460992360961672972769031613856204712208529382868588824970683763016826989552111845129175503730243352120443171447442565607239932876386220217846390697983587787769802200549242337464404795721226004093028273602627372876668990646004370345934787873870158264301982521222878033934692071990149527661313939605463297605836043964057266752406946894439575526831613445126746540019733049183451875703541722058447567795362450559038387896643479887363566328036233918303495725311660864670413031785288284259087026559503101287735352686611199497066387525951766287063528599910101270401857535506041620519215947629999308463613303729764642694638482994907424946552533532562479745703452042413634619930283432172200467027401589563397001862036170885515998514573014211156639777854572738742554134857392171224003321848351100895006090134229851859557379260592576934153616062046593300700036714726577666933714630425790420884416785380950997232192172886683049321538606473601113708367692867574267791565383581201354188932120710751683788648925035088829578660056512568298128622909161273625705462834657616938215063646178860101130096640925853095787275398740626239135758139342419941358918319412241152240416571446133556122658784861478738657038249559204379877299293633343255972376471055490903387763692359166479103454517009388274522863658526774304502084326515534745921650261790268013470877944137055768918373381456174569752841427619498551447036868194965478431963905409309596388455648517323795485199199052059941879849087052586487306931266832536845695998807447046460042662870745744655412744192337208963791760419724383115157040932630221266126717947201300131181784905477837505251552146721870033104225900683487612292148962532114398907142624807228648047644906330839393495949414498121828607203950235826339789793870660274546934822133295712207806845140174385403725796929973369611320648237480213644266328751473515639625279418216810233023272290336878360070734504759856221391029424025564394721657958790175390548334076215999725861128998758482891733959829849706388571908173110268367525542876051557951114662328840355825874741554500420556195609873733368512843774661057207251472358282814464877851880494697205115947297154048676929443115877060995128385316945779760543273359277559306824483040273539404208956299199757577967862665477846482728242051066320485064339330798151046104441106248338371835597562952307510817159436722892395894430536448504802574747963061230655521414380964883631019117485675491079951603046336866802432119373954602377437400972250051088700815396850593594773811474915151880614084388761914739436894224907984286963168675612777900161183297089286771232426013359905903574214620534716508090222228956910114741169156570601597314131284494987887558388576919500398857196525510966222538449737621152184540343344664362159964620109400840446902683205195957859491863558071104015572158917818312627812935816903031348675116156436586131930542448526617152302861919893523138306402804629813548012528009451992966569546781513769389308306136334095275290124597317716232971436471469463931414359406273876269052394404386247633722332090214966778886634919583952448399112804306003644448595939189644906310403582149629404529000093590618158932637886700850254090756646732770784405359763962661026010792393810072931030809163233573159069276118980559532903453190031449906024842605853706606079907237294287788631532312711836387789971381092739384663721160289095106621925201449666055794254988202229086835495561799762478443642329901776164946790737397421167981639415729701825354059941180997751584897155813523267333687212311917846346053396601426927396338507600173859666108778756270256226188074152273230452449900958310255054578607150216172786177347587323359040009918953142732201940516909402907579953094892286029521240057358504447597451772369226974429368445741060841833115799990576698326355980468545171678802126334382360893547651838388145590781794177781393725079004634385883646849961071524596693407459876885565357764050262336320720700975425435182275676114807479397303874609119078245479205585662593376297166350869744768688109214837606609711352525538252470247857730824580842562589895827519252407159461869720278300076510505210860162830227365481956960726628851414983054601429311197412337806784079437753753940130246065826630090860004145999093419190265882798497244109973561074793919451127700835849314187774535741742435188937298434668098918624074527692260960953070111948760658362766711283674843080289934065049630685539773891841329772876936414860912642241110917885753250783885473348858972882859977633707156849582873700872653264216890368167272249600292586374620334267572734206458927952951045651471133431661648231266353404840406129621367147433528376764939748986566000192076241158860947446191964144797923731349812350358232630612227314922181432565073599794350077838526368230086115036413912991472341414855080402406013984527540807219495000347194965211358378685837335063073727783453050110861210558526761916513558824043191555564137046105632953642101473254094710562740830069583388831526723434482964013784779737011426398647848839147339148348139918180404045353435866156544120949323043781749314786766728301465386904718149255987543117737914904021831248570642793552865805716483310525874594905568241436794837406172543580112848964689688780250949038976648223669830873810706913226412537865089476761388045069447857757014476706624440092817232918842302053875905257721533143051697520839356320081974117071885760363346878050788238038784835392876245689976827977908391784451188847640680178745811775756268029617443451542203409973312040099908287055475838970501262769693487328951485556644348423965614670271044447391729438867504368210672977808661078342616388967416840896609682978795206431287596131012122702528161464883610211994828390626282687156740723822032382555839208145974586249087354225983650713285442867769128570807785830970527816444320554490230496450869064165220158112232841259574607145387993949597899278846426469899462204356947185226968867640973481560911050260567540376119057401124443549081267286590248460784213080672758562376153709121709258978021004064741963339384163244958501698372359607307072577365250200113797984232989111988454896869915968177404078395619665143272782836048182527336609398726879545275781789720381819375400780717244026490882622450825352567615117052531620338023220453994576339714164313465991180036923558148800202925885296706972299133175714570236292664286368727879027750849917725223757019343335698235988689857601003884078310859790228944518133753158073196852689861636425422342661218794238038689100775351142296202942293239582211219917994549142450451391935906174690326316891589336923914788909345826458307352357678719611018047613534504126715099096112883026753877245912892826762971498512159187242586762063976497272926376667440975146019921781874482619712503414787606863779815749572450618301831180080411286804737348720076193941700298927226521550251882116439673748086583184059849366121934416416522226941371450699503564683283229256036609966903561004136482165411672139240400102449327309794033100218133950609104542034426101420489778585345315418503585910082396142933172415784477207341435803764325372040265964841114290397852149098263863197908087795312594307726613397772017764572700780934798349290176838263424747506131054620737455131626218226813850337000360069233285798116061346026714056169405938313859611681222629051338740138294037716278931706876472702899104169897788052893897838023353283042058720326848649184945516717981938089564976784719602811453732072217321097699081098576081581226681360416161625350711735652749434440518998837109272931250888954470349189186361549460496987665345838535516507621130069757640080812528003286237541968890317845539240660665768071552084331671809347628359132591176255765007412327174551914031326416359714128428755711846876494066014858531514936146935866322108947769355282176449410394285448454713586555793430330504097848592412289874733564108634713625123706959650359990820115493542001886814706936715958588684775120126073185612911197575882732992749557372219882287766462626755338569161496466150685715423356944108872028712589722650094213121608523874977340573419085708179644059488598158470253457514142749302941356399770199006038506458386723968134607395754413107112372995618796472520806322966993577661874754816743393362847470119145782292420776723753499458103511514422892639419084320759713169337260902265577323495174501772060952504900240868774272954585695007393797395883279516869721551698501433672936916057730134368435863761769790199527523928216003810767974214004650801581794850412473957364617162331246492176622575519233178492911003837913382763241388578758741807883098960771205370583485924496039198440729437149389737752992302434970033910606526500761735249474912525677606388879824792448419231209022738176423266090443872314933415027130586905996168893701155787620685336905585560539527007744233382992073963117463127817102159873545507079494241149316370309030518007574717615138329221923151106554748690708621169352721298906756569643719734750553268091713399087341324261259206063581155302234503571344729961389868946873798839128531742568547582690856356510015184624079843577419623263220182247706911957743976020939653272108720607934884872453081018897259045342826398270948565931187715902486056596046181569508006562644649587019425605052177752203766402455556713432010020530745101387872058614037829891438514314040685702109017638948458126759657328544474636863049661393467844728643633608642960461996030018213496073927181752032434235300908396171772046758788155845845415873361425753310429492834366726451358532660702030942406683123197263345184581642051220115266180348587512415565617825470492487463436308344918024562867244128658279599446405831056018657951015845537066565834388611948864809586631388909613902400728402013917453213264253250222806434147695136140733839477985256504890054986784136069492004929219433705049562475436042889623565948114535735629827864428796257651500803118921909877134192632346408091703980270758028928967385954657322099217263155374744249815688167827703362935925448827757292872493618620422383882921116542924689000110979807145183978259244546696419840192285511437398312878542132968995601830575803933341378110920926346087106134995523216327626453187380150968516992643019539629315519763641755362853007060672058820802610838067995158035789135058091286154062429384341632285361764520261072154570443712939652454391362632481504191372041291078348033779748770599179836410641882976661506664835350982952629685443335407060135714999611066679766907637775758139915103461022850705574309705660962313013886964633604384678749770166904038647934094337796425625768723622987770580856284540270667277273792322993583147614640744957979648390029473436986724874581389635382495062926491092516953946830784026388765556873790035113567488451190637736545839901618936014995819543634277947279097077648219406814945701762140766339479146290404517864867151455365166201300930532237497932439423509427997615422906014933486407349539139956122877812487416826978105154483589621348124323363826762356569208180507664199711054565789941397966213214038444086310420565935325596608303324098523295407487243690985103934714409023034856369752265796019557461413864321140018878061573991852470585443862110748760683407830777129705872885934835666694149182190343301985115216105212316197663709086095040741558449166648671130226503904199507685449280585111345646393996785331907865877906366336841418722049210918423208444962703383462426363234192680412631575139543196555008704652776390630882037667148411395286311021969682144871892532265798865461109778967146378270589627354040233352929928210594839502736816043401503718225959638206323454888375339133808189671129723018736964569055870587999597333030404333558882036186728261248147532987941246206531757340402597537336453464807538512615939487702052923270784602898705912360526022866133146707648715223389242158401240038722010675048524653766423892613015984005378432031899266043277612386165707660578284133814585685417422644988575155148476060858964838343294850829902448310656938386556175094684221355878255959636437876246529353227289407545287648214118228233731790826712992483235265111613244267161767120163840398618906068581597006751334226200031027393888308182710308411067119675372093463042937805921586049280464454520964805003681403208823010179360869082958070617701309441377253169047407569232934507826195011266854976618554791447701577970895491040165900578442221307540637227329443014252287677059263208274703596160860412078177110204035758832745527945181420102134970281520545382421204952578407711914804568535592879592061702795690716816050436762776431483476609479947583995631912047050397216304831979691910583469099879289816180157275584891326647462308335341278117939922189703201256509841494936558252130494999115828223532881801964362146100905087323352883480795513381397076310891781518545121431940379554227158407490235795757749265514447807986316854375579709491097779807603874717887413194537962428350641206291385074272884866771619883147103658510056817860178372130938051858109148044906026156587920367120016894861527391520166238862795512142076614833601908997255012743779767325623488801120840388537970291500564770946355578607647086247747856386513371287963936942813266114553345566106790957147500573401756408509064161635665092355490086162822050107485224129481847864280854349001364728288200880423211118366776479586280288980020073196873883415127498072374717129460757899849954782793410169466079393303337543810568238784048670396448509768550585612171701501941894901687183369986479699593523910181618669642026083322809864414253506277067830154544909604933447507451154065974650027535623663813813510135335293673459177356882972432349243534075149901934001174412933575029865003250958673216811543400165050694768867581280818505967158094675435184822105778319034338421822924756549410464916874347795302105000910181464975703947831864119987904629178406852672283894325448039675401006076445944984678130563867389918392818977359552978335919756997604768199624140905985798220083962303556759354232219894660509921547164178571849284134547309870588736778575014440221458378506264085791284591092904196849289304906341507890444429906104560571759096622177848998043349162313671789478987845146643131916086344579990779626106175934278248171573842475519640902711700754196525270174393226589486575272378982769554315639651498518848555509685955279004443429092574991108435952689617464780316445285075484413793378180160011687188178178452484249198104549028562302917730452862963534520678048297045538213385196828808004829147165321863295392199645514463244299756424320714125760926833289478991358543500928235516699805223401839795447914125876028402964487810424771579456174937746113743327143652568582825646834599489266399931546034851870288611074263799042459432159460635617791063313640342936296569774157640254846236302266892100955436896005621515862670051336091874762280355401060495197570966267729415607408251925607697597032498399902314627913455541335067413535791290223599157880221805669972569743524458867884325891371483907033658754987860016498366479060596163548743419019956636042738692124117128957129111172000077245939968642776019010964013630028274603928622389991984548397928121259151884243262313400121036907406251275657147900314338967047167770391567030469713597513455424007164846123500729070184885357025319772232115884880608105861278685851146302667274791697546326514449975554258799855149225869072153177791040836564736100663595434315441902323964293195780541499779274032754311327801233589844983643247349523045970619474578455364294477336410178534123153030478931281736561615334825734512451564511344784385145189015189551752452670896134773393829572135269648082550996624692679086637329067159346279380282310179595125689296972468756726882085050086381855600535625021508874592473249591893086071022712931718690966626941925001663500607110900250503296088310942607695005472404003346317448775983525433177212043424335184997937519500329838244664039061952401430045929241199651417553650005874689959132814518652702258133561065884660813074549621869139231231304386623570048293251288313212213752286253391072167526021790661870309811545063399445611703497532244784532322222881232529467600514559528431379272647330254880725132861942083381155641547223964377684755493276284440954175547686956139833873945689432930699620069347534388800837005969570475060647111654181212762639372450858287012350416755463514654892407405618561315566863129902141957383961255110018393114042698334370319685555315216296459104857631080110958790031270325599715361951581840278555075732828168933167118797384873393033253023240751540777506293312442782990466259926383268113729903139919755519697232857818294723780582868037312030968761851690089526825930541058782208645178730174254755062737893621139495947180672078273247615496581030050151085673493169091605642518271644470656861094902659783648292952951047575151849793130147358168792223829549889097961007985268145564950314320386234318906385485097879520679745297912407673813447255218687858866642062117134892574472903825060064582542590653407268259735911276034435108797904572025414997309030400794571955427488614867408569720429276508471685254296206744339212074398832869776543423958572728420145319325086242218335578338280969812909689414754119903507631274710118625245425794239911836337651647424672508700524645048700415026672476345640793704913607862035222570061690643329263790298942632002446308734321349610201428615774524196034915332852556803679820250515417806486184811265936728945277313220932645921159556695766206699254350989331263489573910889275546139081435770665605789213711350375595759019577687282044566187394811725384230506654560055914454729758937008466251259328852848403240208370931513909717220377931579899372423014715252530959264779075026145450860993151099769174290202027030560337411724831771593975096207028544089931270269785131972872785787766523147333140905245822550880096849993143511864393841467633560228950688673054178499738057934525945489245235477405423974978848050182331285454021897528350665378123806878266454033455793375386379529979453585458193973659359874299597311661380089914608225570175735149260105333941745299074439951661938853780092331658595885655362272129210934116424053588344640750025950856069762230647350387507110529174452195717631248881626806825151885475590203706707276079756549270950687088018916063010561373768019449359251208187600469678193207305176144793431743237174607719477389108432875613964408222863942799216174596193622809412837820055462178696840379337135254012938281149094855096953318948885562815147381480609372841273293627963583056402151737496422809061706503214948496177013521287514314662214973523197090103303320828914069410180907839049357485943978523990078018346947501153964381034532020581167690316323440012793971900079004889237097016323159448503365312826954464292611808280878621283777703994378688135047678402305598208437721573401586463331418570191667173719716600291813597204279375328292177718526342960440836781479426821398481704384100482771246239258079062687403006002034731247643602147700543307942772130141493761048507393862280599735005580669330285724988684769983828694443245655577371884861805965318040320481582721611608263770962836824206573631146718474707269972235880587193364775544521759646972977785899753046191004356109465119706913820273881840090660033106081070369386933033473917630082602472169901876095795580349492685286160757478908543899564062406147552851533860106337485011560638760603316755340391961234292565504719563385081992987193692428688407949964514379680169342057308559693984089902714983755873405206455361687182128087901285011957735356452006260165548544925793941517718914520278509842725779186140495991458658485085402105619440276504000604474708047021958958342831840064846019022498188750392884839497319712336324193385055538528731245486765803236286105785448083845510290689904636777935627476741406312817059698380533636378235853403035299528455286893192427482762172653533676345211353590563471469817229877356675599350821872945779565631373614464692696544868666276940029266257069515275319625481472888312553963841513864632085782709803192748139809416928943972940848759058464850365588352515507758448897186217469757115415332641177373105659371982583459750647956721337276732045277765174136136936410040573883918204195936114987610194359498235681365889776232101194978114957709625299519213102967904153109790076716009862787485445567213337070629490063361508130244336024499184774262669131511874650491906088274085808481891023389506977409647976401100086847017999417760085926280697777728995051210230459992732557693993840925974193438724413541449349553539060979700907211199834640943141998654831808729260923079123824002217301952551068113118581253504704695830452816409313701934575689453927632460259788708000968051221324611594436218424731071415766270577310484724620151473049250743599144502731191131045646538567290364194814588336999048661327109089001884739795241009725076184640405212943328688275561077100094092589563225074073568675666220315735865119273074884121243461727838311752701757455433597097895027079190188860272285333204360506606439713184318760409269068009820689862825201733187516836624769916622815350424330561465677105090304177245761611340099009904446317742905492271166818376691718246438660895073448984895870224102495361955514966510871835108403478933000466931305571689687391199835293353850328899661596065431579454067704964799833576139042134683717394540801854748266173787820288974423939997225588233515071796328425618811414391993417754086115006424744634651053172859985631677216241247186483415129895194240086966231860099862439891067371374432203698825437503850708553939843034416854163304298275420488749523571913276302749396676963143848498439228374672770621849668139173006585055156033715176236682277566098211817932600690412808945651514082254879210323184358531123857252402389724726130693899806834504821842505322999773840917233894830047498510245731567823665133226228159334427866898109887388312481802250741254180281868213144093931459870278205536543070107140013061483690351483869522688304550598194604014081556863433302545306223743956390337488961125218991047344744141579388185684736613410403847907405796953333550588290581285589291479951155515121943197019708801532578742392371886501133095128398326455409604288250999856596892032653123827073133241133149912058520828927506739028675007996782424743421990964512764076815400838684937350624300874376132962960540277524640587800079088329846287677919084890667050739637717724287796084206004231432102709594257163579826646544609633407410562062465850042944835661633716664970124043268342663447276212447725099557644412906334400717939454099669745897791171940251210061548620215689861652436228873675590810558817311223210756882030057243573401221240127829309267727548065620279249334727670262444383507111835546170684296376045650746548659066666059166414266862059951160728333328647227300410180323227640349881503572485896198470656230752249017737810006253578274777991735527133280895480465250818621326397613220316865997206905001624831340049284388847824159245861179917259578368650658311902436274122962061369106028295967531490692620352991119870574121418832644079225017470154892317691082030382714787119460447832014447268443002378679958955513118573372975645117804742743451290030266068179422740390502380037849782201634540948139916791910867782876319950619108421869654187864300181331406827034451944275406519187909439130064421469589381375363008502273670761564632075995718161815746057843089930769392580339680333109885515130009734684326710430593614341640314210430963111845307181603878165276212706523732132874884024318126283539180214798968023586706805794681257845753018965938778904340174852248966806913443835623541095412862121422545880762065059568072126893872007006095508506943598843305088100623224843886222749181432178711029696741753827417453028150116409007635633685855550544107949872348391754783580773546271397381595162335606153092938243645819719105082063700917075449585942266193336522005545019192282090357702333703140967546650119541800843765866589054527827452266406838908461980047090105637656091956900136759168762565162102000056502217339382650870012770625661120710145006185829579060875174610605823789821173423851653458299189917229703822791215273189537614919392136492054444937287983549218615077269589529247118274475268129292053156756533151269736564057349420087954634104571941839805405975570952243756755434044927201780680128771549880120303007282240666050961168550706292836980330977257795686646739440422464318017877236410652851984290542091872773271220698388316288214965740285249114328944547644604136261825221048404318243171428913719898208347506189230440845614994321919665606107501445223025194026975838982995948812785413295088688571274945802465736385892699589204889962203866044880457986244226662075284669639400391992156194701287037918967307790153789368596108045338866619814148722224166916689090915286690596266882439983205934036463893389869286709045251800598534861925186075433968595947561916449892600921296376080153315008552692308933252716525441520393492576955844762298335158978603426332285099400206341800604465767664905503600853798945747549824983760983230714265672164843861644608815482125811895401077074166065218264630198944793735646347482007357811358246276325100055917224414507620153436204006229968851467555486199566804026702177411539598496784103765515993795332712985312964716191379057757625963353387276006204968413166342446100273367419971015092917733389760178467943664615699466431364371071715968171012723151470679462651163933777979314537293519053708319354762182675631506060615759159359813176615000412454215633641926228398050115306059354188692966458804365510884009966005376386473374106307485235253459758435793504281231821777601768696584213818303087153168633082616285214282205215564367558748423311768152688722228100622507178771356548402609507968860458522902708569730744743882852257121628276463587455411708772101259454597220341684230552500263981963905111769718484627620663601908279534217898711122478087065631082858663466338494215782672089782556036181602435542734380233465542645519586889683524200256732615458423916649662591872118621197443806587930468385837119410015686723955051272865417547878443402685635233350036163887570732227128052113667253217679695790378353154618733439125253795506141277989367678018007819463015035779620761390469300288236317625287253116476807771493681096989038750400436497305428598867674473107578774763517522960349876039564548739774102595621786608779682626880013107553455908616211996061691708517075126013268734864552678381977891986335972524382752033948077801902758758976053561516040521242490255494399890648251957000181176096763898957164586782386776139807749549998456546823210297493715279233629941820176498660704795899351841759023526276061393532176043971137366691042415967156800320199831268547785181974141327864828060650902643168238586594753863204323183766855517006008386618637570519146161731431904862648702430968339290040844192138532397263123296840599007689088205414633846261747735749169722321111301057299243818868040565825043411962657745859745691563838985033796469241829928816109392140724444417265907167206035827496829026032608279103880492305787068776724603403910320000067010083702058348538190983603845267114620683702075039367210060108218657773312430212485703222434751630516784614577737612741154017145862104060917759201336027104166841897095105281203593812901433941842960972533933043742373625462653063328981632862924379367471331805149005483256680142048267240768572225520876657238718911226834303302486462605859501871047423450411544390654496347437743548043943409219537460504447821965529510655669690974305598803482677292344533643539777402211304028790948499995410735656191686527007662542962938921599703136999158201969797166590740264534841473748837343481544841742806608112166701418654419411330662195657334871757394564107626493582151390052024356098781857048664158983102299863532352093095531359299228390199900979640108597647102387051556220132830759202554055479687833892280222486894191947906534702075523102583854886122277589334911461544747321709516651256334721759915149538565078816508146415891984243214476778510428057454959108564278069163338755224584917118949987778842962195708452152064824462711020552730827720784190565217069824868715746885328413907119877039648770349957564582991577563688127560247641210518117330211631945367492747404815540510071080601599067099837662328065350570605293338090369292358341426915232923952406803677077303055235575541259102393236647283074890750159322095662928742177583769731316753342571318605942018487910991816106256227238331100706123505056248842327502309612939167654610830396516884691210048146660798324636369437519979808342239010485808384918069043559035442847245123663546882786401464453475598056182192642137442032165419315291456292005237554447953377875738676029243082480694124261679016117930882166562722200398820784786671458475072559048734385561387026164852264661530210993463234455452353353912139274252560372587106756524266469778673358935391165711308995904045205992325955655737543928405194284971776610283265792717661352067825186940126930258772492031928527633703665881255318569370930228615169833383122364764615629774147251491315134302988063347444121173030279427519595713641333602585867519278874423752095013731438390253657244536837942101253585864080187918868379374355174065319698528141924065451469940073677847919993771616731476824183519949541838070001005726744426858280679176755829357994427965733362988167284860885662924988710964814089307277193928708930375951416717366724104832225028731690211899684805930775539228508113618944537812181899400165833266105009096934363657809243096060741962387803728759912347144870025855992690832747994900192773917537696506316710290380361796684543559534890664050048412026966941170567182248685245304199900952051923090048854838312879437404213369245963455748763062262830416452851880869780352422606344834905899387641795743532665165396468195567749117925502973699181248507509120446460214123427203295242929934935781092455618346113041552408992747714457523618200118159519107114325871092792108919594709076817714466076485725087353158422647802033518678967073798567805071337741912230041555792905883151145406653807939020909859314025249653865120458435134879519355073185975085375376372928441428881700324385888605537804829151065899938172848124690389475980308925182339428090093679989864280752261847129399784042081045708355640687775609673084480119065452944824490879393809033340823655067289800006315272161905883965971083816099177963000283592224100368586239368460945500831679266245875377526478525526933267760907395015933999867437516791782434913089856060691105387229502212892084903121546201965493079381370918208769475532595001772600031860742420757010847582527099618033839145641962034880696112560220336450218692513477996284109331660504022814962555876434340961278585472677078405013388950902064357413050784588522664114197572309353014478712741707636420990331044004382407707210223283852811219252924585644868158689241726881394524159253265203875138794461457730841904051332628299403422483453793935859555322184417056440203045445629118631782135987002810462316832857360512177242381463393398001317848551787554211277132522196964523674908143267666836897400002185731760345561636127651723133545221726320065781846426492666683216269741987070840015559313862937119881129886308179137731701399186792716306702215010386131924276526727791165768966023517172666065120516305657681727396123697619776296160484224752938691809344036447595109819291445392841909480708377554823949598855159562355704211420017692420900080353862176478855734972775135633157437343033258376543096967375231367933112953797857474784258245620795043643016767028521719699690416607958900876904003886706894490871259573153211412968226840664505028931341095684145048226710037622181061376067444966372953644456930796007651654285434017857189995061355682527552067716207359252920407584760955838632452322309585418561330764196463687306255150059684771182362232913672465608085390557555799087827664109402356343598177544104802874235732280416259442203287221191795904155506287765698027310702581418810239736610420769050861978473709158168596689338325667163713008291833804415664330577028365057605352009870274568122527355722900103824011512286728192797522864735775447513332741622082990612881021226412327552040450828326956107515181374001574867749879852474005532319413082418789823609598529481638550643642834163601191045126210975483897055753408983001404859591760265839081844753579070528130197296203247577982096058157131909034567422608561325138512944808650308673595783025308879910092990397259340001150108440992725183011969049926961675608941403162171377006730885425864716752238119904663643420130073319503598831950753278264986165108545184289244547085798582166065242981421913404439200992760129558530567263979021896978697047430448174787918347824527762683263800179700530527093134988128131558222594261077873733350815228150537057944869994816465859729607449540167337128818619617813598221186346950215476962266680234972544614136745028179841098428498618866425780350788548858720134963167345023390431072776181876649923133173275067759487484587660283394626404612673080896799709760187949135507083567960271675317325981873704330380312405683725978869517064812358932845461499284886464205174325550423468545925291389872216169510459648413589276039931682188189116332029384729212606272201342828200363443263746337996572826759413887283806808949186211908669439726366049000572192965637178275521246278710273592873655806060626618612657437157194739450245361203069215612960760328521921137755948590937621247949232862460198653783825432674818177218354294933601809553406900239957597452166968642680872688585252893947575169697413081783275312573470054652464676921504220995484069585358134321558472469472203967114545833156235855801892673297198640456161179228209604614304843774347422564333876235779006077947519607660748309191243784310977269967346388338533084835753938484050122774589231702463349961997188835409265737260597916149683094197163473056333405697421700210390022564724787750454004818468125937323513093396080225686719394484013838575371924724412715679420520838649034808422157667198168894288447615093473884470947011910018901370276345661006500153741766265041363463870774682410754291935097573174129271003641920847224253819362658524195513695237608979610984958037315156883972459221381681480644501348938086101618649738878607581489797433665414887181766738438264771810139551997229145219341061320132798311684669501880852201333091029854093969912431966436096862630241385834836131179452756237153327653622555423182993903649273134090934705691210786175475045148656866895365374848663234522123047456654475528386296678992695300829389830581956353059620953136980824679982198586269364039175849881078983812352111059535801760598823742250373169540991857260541004750877220326206954165251896782719890899387748854562328564284930455355613952620977871420385091004917075365896515587094710824174114794795776236090066229003797049275880738522128767749440269663551147869970175920771477615203434715248754978008860939655680269775085409348149080328349224694014107933447738055546206261871374177959570346796614783196519882077265013811019747753744114747036846671549495272508189307945956654516655840946037168661111904063938631755271883052673153608641919753136441669786787978500929046725972996365815737150530357314019398648499698326642610753882779792019666452355686595092380322927070456617625266439951214783274988425292068758191699152236031353439853629057330767836327896921926256820610835180192988468134949676865544000946519522632705043313876081945685566479942522580838679939054187472200530516106160060630972493501291438932783161746971959817085265245372861958691426525355177697074013743221974498825173196666462245034714562161107993456307513017481255244646877820701421004598448288745624792314142295107444238378737904361818556140675544786320611357507732446984995703404370928880193030693361379856225909949054744998707614544786470394647528515394529459725643677060843967235002333820853310788179581709110797707593946736234016933248719948309241000157713938022460219657020715771581186415225306699798304181945956964383387085471285630713145199239627060809576091302020074503586242772985255526329315890087257614363741063436043129796639374113819938279316279366549278350348232055017066172807657190634662989950542160964512459099365228938728046300548538999410562850870856571636917741855169498642427060147566098219976460062507505879262415543336441420885827871801105345995048397658481963604108324501921171977936019539545046432031200581381321855600296527037826492394124249950534268561642553764360924507610912161090821242786607187330248794024786926940238699297006877429476817642250224784927300475647129538954217038553136758760096448325622294588973446056147571304073750244770738036858521756095938262662479156737147869217405993243140838871236859085134193693134239657239269549711467170634609476214588678729458643355417360694064949023337523683217460810882241140923412226648751373632449872878428781965087807613183520957645573023310677988913432720618630438903987489701945665672270130223005313253027212952677450105000808625555717832410090741691813882747204089270495578674607667168911324215423156218011610746930524279024461671060907980766738936567674322350529812535571985131309256785340157743081463838413129768715769514160307217977580894372796989464348259896848140845167753690642618661758723190360041891110679492550520564734034429149456292440542348948287663571296279752522581143203160278066924794725712015989359059730757433907843905545341983561029747480659289427618466294754825842728443208051101099900480916605092225925557270145118962633187035458275282327728330342224277952839020369621218319115437817768483549090065199192212566326507625147287812788516366550429549592574504416332445400194397275391930482352226876125322497136082433743808691899246578218986316595333143904622671665870710484172010127488736803800511679515939702316736078550246477992663078518213929542367254748218690004856936116422424692175232444468371751755903682089827330406721723882975818577449065556615853356226444332643443730395380853313110247053152313960197235117421255910449835470605655839177667596277522703795664638428515081983287355085608876020945587957925651836775788894637977068656714955396090616642830108694843317559698533218114880949582988394118909641927970508729952284667260522163691659316050412415026590085100779797987271215484626676274057659264780135662512507195682270612670528192168491754293847116731049325802643561224006809705703625972856130225148638440838059221622114489347912975618853283686044438069789441035553769918767448345892018854301366167479158835576429278503218225004705835154930395707789311044537000729927885663238368261985575305156107926977910476974236289863980553610064290540220338054482018794202229983915385313489999758409516555277635892127242957742121135246378371024854533597406161654987903664206480836422628923244888862765260207569946108300433895075024749922930541954844620249618788432869292215973244661022620660611948407866456006338930620983189379608151062980882151091881586644585444610289393674751555983230471076759798074923273052202320815082393300431452413928780241237196482954181334129365408559893740758611441650125955640200598284862559784923764947918074116924458977556568080683331848273226472390424308454120035721962666907026907816019495869687630861775648317509336493654864423871115153753627346947863747182393613030586577161165336209641093706103840627762614581573763623931630412494265525366379490889757980096524727419380897657069156610689033259787340314930770764094273086063308605823953068915321021822844937836261139245046364247754410359247269802243121397406151290424017289882281627885924815050443354024288573097306845308996943305626121668849423273916189512602251818578527768368446172753992588471040016925090030005726656161703345241748928274899444093067002676273803336690254475541536085507091072065685292170298126035847746682811204235984880994267890789245977386807865099638617477728545357041955584972463588945939865701473438698236997076437701340252873312472801840246356959936510367352391100130645200414365527324781044829958889010603114492901016277025044856230166323504291817397568932357937076666546820370694993179888204303087891121977891886831851878820999390971172374760131685298498021430849500731862962689895011512857926609590201955797917946579348413667973762124693564691259367313661073243473444710651676937808180885410180990530957702402356181843280920517036832208280290731715439566542842965485025058918630286448455208240902907096426384085927093007259005978956188121696622979993214265371279207670266004011192527414690365297320672355615401345698053423815839779255980428837665674773091181877934811460946948956227853244265912091525897183433852397786437311765091187233850120622988937526686408111014078730973979793325403485210302283429799768174978915158884358732024550372153944345573702637548509818174608620153019189290757591560058909637549304175304186019952216080208359521584183953366115628567169560126562250123537934417732812098412942979001737201848564696696027480287409788049804366763202160146309886965562190622747989969810670394924009767637882291448888578297762926708281752517885671839889892393505037757749816433825198008294610905894870249988461853871400654966551059827696673492434496306962189724635004663030412446334323140336922679489633850132358603641038799683836409216824657608961973018084689592959264633062929348794938141308830745994484260785564937104952763578752722304171369465960181321250831345989919802826425783790936242842037568440402326521719515180842201662467922856173088104620489809198644485793371188591516285282537757305573820969614040579235365187636168423330697053008309305514684545609429496499090430304574434487234237391400506440147339109286188914230078601459873438044689187799171304823240563902925980406447119593281575727983054389086101524911595242358524381308691942979877632092845226661819902477685341714421075010456077728804647552030131765740087262677482395372659676258920679009281692015859106772100481544665698470298764064147071411684939848474155322699823035739267873885467606082916279165943933157949398330633704446754896424682043012176793510205987438866730439334889181748859757770197919212570407937849625008084408390483620461769200510672030648824334368279741986626338554150353673656128241852100725314846159094190415045488824591043816435899497112469392881023080826483073833775827579385160921953310041697076888455253143512128456466012151041289145666603343188567600825264245543647535242588979463191560531161335682259764903518419896906965553627220959189905884029961053683269706098314966078208221337251277946461091455549430556497152010330872962378527467556134352160368597483131954744430103920375366252320051670237856950815449986332097301778215570689088375397029780812925186964009152078251597609521674423144860480794412639018731552653500936568706647628859751666428489171676965545977413496340978392986473673951423657405018029762136440918652266905025829581171636497561764020241251574824451502634991398548987970730369404581988237595554749493984021190081799468059953803158299955748544807523653738241709408767024037228540192848906917522881966094398617983585825660998049139758924290902577541690683583145373213750573985049702718457976465257157362605342643472460537746274776956006494631740483557544354517858444269354340135991579424700439581088607975234984530190387122481121327579684799668403982791793799623836055559798496667631771003550821104319103045730573099517410806425640697652074651904292017344320821745981185086657977962427888423652282133266826224010939865358449994225306058230341914804182137780473139937359582223318345197415846315955210811458935560073139308457551239229924931549811759680077664827516001688993878895650770242881445695426363036620505577561589616100239932728634916376570662002348521448449792996678289681149347520477246468672361520154484947112562707684532629421503961088616097890248778945423990810037475593311868283520135843694482778966085326634642602462063011467207262557865576285075147610185390737664594140290711282108574776740969531410217149574656475347668290748831621746036411531676746647036490614329197333732965438783245636539670677508994878144766754593831967881718912394348970955964459573344151319314918603992313459148461606083837340192703681809517235800739385190618440426781311595792378054930948486784793468229266799125136401710102625434262681708528921403244214847274543775299323237013258182986432406942767220726718460443543613766620453083404637233596792622836074359025370708300484293370480770179870494589972631420547183621774304925301052156934367833395615455513227947493777481201160300595085211875197981453030186952617483082150640584705256425096463830332741480480403756087976539740279542089662696634591025114461120225644053875656422407031048908042901383757392379173290268792168982471357905180699048250167279346573397084237586502249753047099384387883760664115881643452828733026693850077019737925589805578104035616701961139985685598689128214318774528579051296286696445145667719123069894000426102894177142935871703766404450066608667324070530347752051441938608904496838887564096872278234062437004360244135085258531570902550982148222371968416717691633210974906492833706857588110396672993781046589803145264582302013134043548427719210540038782716677320335055971904336254109831226396345120594643979340095956637490195635162864029596031572960147337652168181175372068709608381224231858674498702330068921474615380622194560162490829787442306278455816075418573120307562148641685330440813304914816792837694888237678745512657446565612275887865610479873139541995949520661549680422997181620112798862175088995501929274563987077425605343623708534983749076560167003239322797671652591437877971094336747155165070587856335874986494984830505583751359991098170314818521957781807034477551297723835401622330191270719854917183139783288473920098269169784573553666817526568368270248649251224582491502064956446786573232084516386550984749796548060905171187275131474259196976273403695765084280617322722420723998186812687142183895357833680443871947787131882413131368058672124796972279738567997548319465305099788960602813672126038617688490013012611667561408373430587723021906669707247021645278183953077472702764430381090898158216170448655814064558715296023345516309650028449625286141081128332237985543057746397668028853622110101817464737153417218872605573915082093756591747697768677218459679398144014977156561035194682869094835260983793993545135228248468952671286066475689551174565281441033461218333104983213501511905561907520846438740643041166442488603161655072903938011321092047546915645741268066361485903396723744932932987734044509376824420319370017464220272170529233317470099727557418433636002893776222479220157022566572904527687696348274305324177140537241344075691000017545619001934796932943246500382312800982871172927288753838255830407415070550161509626052581837607242405367829112168778384195053047602468410242573386943174160689701721510988261600448491004550811826378659301393960365852339777192694687261809748188135187190316090464312629433331691465976451255650373674854883364594951240795404250601208246485157128866037428490041661896991874134463890595360597857869062423851152111452592662949719131045950909120106111151225292424997342893007449217027235019517556769380291727135418972408325846599280510745462869845442194359862251879001714064455219309566675802662261714340036824049986391793407991839568614195370760790171485719602509650147839078332449975925642042312134269010969859886271039814286029966643836954925052798611715524087599625910166209077823731950408466734465440631318844689862536788452607953087440889474289898942412630503819776188577432710148782536039206159926364227785405756617024501776483888743125750277044080619859228450347286333228039439701802172326696616016416997780848902544762066730677657177009094217987062847737289524706831857649363742832834420870494752862734233957784901965561245763586381549591894999503813433063536919358829374789384320993494236118715068159354824299301818493858737672866438526620652106904237245775862184082454103598096254024127845498322472281751826946912428527311777750941245263130770847324117715231302196125522903292256958417421092955853667204529594253728795361709198258121186543963295135733636095984249840737761692434896051296827971440591491799817940765144542718240082696324860438049932544289698494837612867545890094871928225687868803223445118568976651239061037587402464985869915207075142762472944868048306888095037151432146586621102357201546931680619779036346996650439091436489998986297557764068825884262700574547436743027296259973968641444889227967688458702684644233627140679171788452879933373079120835454752130584176950733489488234733817915676414037056706147161822580903097335333793113034749999801388742859845741063259762538431699660436815437015407992171928034989644864802353127541479403831158356961040963390550373657412639125739881068583914428976498411116279922385913275629141702233977699304634357978750482164539262664085001181935130685099693147459655703911972534359370704009367782216868599230029930523350283636647322524161156905090147507982983454657837373841710272754149154645997011123501268942585741493439275168875704260237467684108374181268622868722788921802085351928782564807877809049669289687445498599072116547856416617278612346405074169910872514143032266185553787219234118707790569970230390688488159738298367420669653123075820926220134528850449140272747544366626043591191244110992187126562858905606454474122843308483456728915921470808232451413515395848678215314328314498283658135475387216071605194832519660806294147647101222438379706942804294310714113033404010450128472573035199562513636093555394174547763530519181126869780770716704538677404437397490708647100580187572070969962317226956024715589332473815512968995067340150877402091424590551517498290019582155148271258176982660778936040631261721427266147319061437628191778954928846176353473287584217690484111294905541528645825139259234252651550248354125712960453453294833968240688611320343784722974333123599037180413915902366912727967924966300222650071510761575601776028865618000570604317332093138341045149378239571719973510720864532095764141872615270664992010504778159583154568343371627895550169847538833369687060626802385643319124034887912074065568666115430421060904923855601492454074487525324625100892305793052363371325378851286251583002648706372116543574394516923416418417976835707347610775565842144423868057420906575199022319104429417346705200905876546464443616923388953194065702965531505820019939895567426528761523067315918292394158592447502493615723821500829145874446250377066542055554933746770660245926658910079953983895257661829325227907553739257315377551200485894529497901834719133893354692731129122056642040078197016907963708020792115025189234399813985669319377584294686683853864065606655305249260153663406059057360872683905045886694906357792374848294228933070090489324396767901392551833556010198654138248237622761681899253978051959088847847653794498083065821477515666575318995111248857563563872911803454136022740938041872375670278723335049037717763667959114684509860836845443272643318327926415103950522771774756709408235818456975827658003241114972984816018628249979991671205754196844862848287307639193805559019454205511332058239360718013481015051030043883901660473842433434128758592543875738206928778538143406617752462014991065084768201172136557909611421747530655577999900163607789244534944536907994271218912902249638917026935525740298105668728995947495413802464649678060629101736381060637835658524516320091727029691971733145018608538350865282723518985637948677503593146969934352704886894206949421984677792869296802668711288333767588096501020263621533524898066958093023131873345212300691340483339563941285481888097623794218732750252520930676762218148942519678189720778786652049426374320523167787349341742784917775363868580988641788093646120372664531827379226364480182100489393558410110987026451650014449686728085254459101403231797816841259927261060048701460823201226373030063103298112908816443169018978203594289310336223484534880033760724676871240379328730416889061580071490940833227925893710453158833718599326144750915219979252374406799802519854881579250200219483509267742947242275705878943184293437933222442761877328108019173324188698114971496024478941615446008958659217636914746932967943191900092113870529579513873819912950877720358691398546614278826827637880208133142923949364465371887816473763959427918687792222790034206961943088100893529836115388182000035763816401623355528099999830673506137243058163825353262294032695612619719433971957915883409831968261133189635003793195587001859232268016345135481929289889133184619137718720480438141285550117853858380127829625583408716941719828762391584361068039942195827035085032106853672793115880540975806439432370454672542244573084660867483839562780391563998762209125491652106068166303098170452020856203257927096449376033895576117042770698710427458613622599268861707167988128935598961709989232753411549459846784447602706121748731975172611444649709723992822912346505009179596024586198692793091089032006755201072572657304484232234473432510976361597335311001635281977191832316372574933827808720421400647092280622633295138914829411735179570625696174006181736577983672899553962930088162617752671930263913364448228416318368494389105179644857986907483512012732644107199997172197779019307894620414580159020902785150739284621744341797729326209065903402975341141752565918045063250786324917147505584514542461447148093285013923115293926003826466009508853726021633151506936249418982653931580764943673960457573646197749751866265546916103063798106815268983140951032571513681986878838810182251461960354315806543973398174655436075296562645369635680422537456766720533924963106583471474094169401736359865403495240067255619043206407251356078092373018234296080467153351855586387881284614997003730994570679238324972946559413348721259238334595846323995272025380958858813187418579233155237007168411638748146586881129065775354490001713510918339989694649024499616862527668903459041482090228435113784886137919368549254717603362467368943263544388135182875898845949900867238083807910771261005184989367710835423566352804993176989287823892729403675402044847807617962998029519725477550293082146514836629690283850025323689371668916912504933972255486625603626267022053114124739504834754735698778674278637044671813482245133201373502235718870812912293180173526511978990780140933797376917790520714630044957190306233369276382208636328433074556226459205360591107314605904319888555071008886075791303083519037299531858541582398509042320565121783669922229867118021522938407017101859281997467359289242538634545139923887859467967138330573713123121183066460350730949732338707935717303184646212200522969501758442450467437093552302988843042206876106598305395508179898045915353643656151866280456216470833498831316130248173582529169371028804466016858443196596307915569838386990563947906638637988906126488412970535758828183180002868966288262990897856975544879011013920983414064980825282919059591440648581457719091223072876116977509336584438675229585892626146353754162205683045696913977487336515993295242850071681172849585854068711110164464468473280272179362615237376172632894487427379616684217655809755852260008737487984509458751367882006626113146962770836836965645054870089158566396853929631112893586934828436120384779768666054904969258957868977302956840314927622272844036887556675085872270822058806181678401204287375824362457107661055555527427574087699654039608093943974796339251035593262920636592067695200917090634993044158890726189963218535035811797912609773179515211955861695326672941465314104695818316674061383819355509312066044494116301327248671569144996161331627893897151938584854905510015667582342473816799537894078109609203922830962845077166359937969016873202642806834220379753017120215373555848449030266889483901848221709850184745554481866524461228294207375300716309355453521097627728463377850278120033135290012766900301392870670294990360687921230064769282477017051195900349255659063543560243347687937567116619069351494786825393779175810645768686340383816901292732462225994516214302487244020344063311728725619306491543648614137212989272905820736030704131759678871523691964185690126864284094204819047063460783437765881000723241449207031878563846808249333100983831151604545459109428530214199067351166669802902996503101448352761823476972817263284582336165967382213417595010774181071770568802875793621394248631855450590896499146769029930414625539395502303336825354688668671033273899844321896262290594132699736041600195828292424833076703916812371797520659827937589222501250611531727382945636881346477251564662785478694043255943902944532412190838194192245264975874645163469120154183780163178669892418678974788709546596322994452659248625357201926519033188493776338124138444177754235976436177834765731511236093691706946910266296477764023769508174564733003352713741592947754485945355034928128378598270718837796342856824554388114710426145676594996189333706052937708684953624057197191292556739182238594266239598585549271052423024016834290747370952267479111149444981243237451709377463224133446052535399607977111529896527438978058188214456370548606092948889829354532144073782981382954970436201094074724778728425211715051424736169186577981624916727501997136908252811937231713248396974514517896744279793548459869749204466927518224090898324572486633930493571622359792587963423925679327047217843269940101518182301938861297515625723819326827490495540693152220545698925247073846914953201298967425617485196535396416889381190061489869988678484016786067227130910673780130273839398314093845535106739832053025617601281301059018106760239474624925455212655061009421399268734304489307904529276931604890593336791976215459225083451083905768602255008805209272909394626629526728203050964276314775671570484967430012141147976471733722431275942881397511835563299889151661117984751490756659500434298343295338599492460845203166226045308968937289722861004286615335123090428285197117482064597218383198763359357806192404104490525290349830073073371892244066660373231084044336263530209647442012722369691306840676209396865711589262836471186568661909332620217257713957640723568550829192006628047584113918014859167228352616028366710650860296477421099958656199995397704758654486752097808839740475382654091910523273404058326111516834352355002334600868441512146498295708142687058541546236850840877854911141511819497834278897778158299613115315775965099202963593345858105121510047141875507416051578968620184838845164805932347066685881557043143248814837116897655723134589342895089442302581682249623926505123179251269948387232145068123340885713853014742359546042563680546437292399131510081734831097703618618205553208973718034116645385721734095438605343531213405705713373658127263600768129128670940314947361973312271617845101625070236513107687177630767802218535865315946538631826377828832159567326788686984865711521585579664056165109116918975779524557759116834894709228261254472705032418472579289632278136353415865960776732187389371180346730417544700557513976949180456344486932447756999582261523360767151621681148276090034735295120679873354065765380286907250544882596715584457689957203828979650923517470708659595712622435941653574827641053477023987785367975836911246579821615232978460481492258160155539617913573064418886584530645812135347531676975160816632995197080669412509538848924551229554492332797784626464424364234644826747587799228936256091092691900574837320553642137487034972803995465287861041242664994399582433571635001701945765755805913158207112610788576445348972012362931936958402974541830544500334938025615435097288765468292844436524698337748509962656559169619039400362582415409613574537955675966630351041844614378867296340879404674965767378044953019416619370554945837108036612181688870329222106544228535428700862276439806069018784722750486732547951469972292717200057548354313393698468883542292978456174294378510554543827910370817429434817524309787432222969070044262815442116450516481903366133727826259237134549976765094222527704581706245040459825786770672106745731223389182199642063466293404727111694668750247810755679154514493664821552807568982401348407597085458971229790730488472093108098756027325849959218837160977940352482380654604354856517432252927794824810420285818906320036253775625431712600407779541234569698340850853639431763230790080774057556929386724908432107165990803948824061856747565275598708376567373697961392852763558951592984743805442333138721010319579352354183788746667654115954593436992823774715958122882580423946441025779028894588229256670661368638214583299354731281072479240003348659073974155761863502573939981949739686903423760801988113717652636525807794899302660778828679666063925295333549091620752188986597412351546764560438363327756904585498239575799303393925727535584310772420777996298510759906211063732803781559256400762400064047299880710012766239451708153998924861072538098337735648977625816797398198327641276876171897773471019480210890335803858756167752819901568966760220909899345281503523122813585865145116065531925126468816643334570087412658631091591089626426920505826226169724810788140461283775459992077677828532677624283305158356858816538720128947033707903724942672441180353196311570399529597327068227066037795658826598212869714488281306009210028298440295328516227035586608103675098063534800452600657500275555627596747674548359711842399132797397005815292741752195918804782705185049489169898994871455173939346650601251924903567342084655922879789103847981565177999329479290057134798927811349201849643473857272838715491825538699514091539223568544985139040875941424861968930704529879158911794543138612464847374094996189401455253416590935416993837083308401617686211646770935472552729074711301897756951673009704994798843327280080232898229207308277915774135166734288656735088786073992018575498308432526200726349976839117000432524700816287630447142022854729696175979576746311797911623460951784391557491008407715690158054320659055128666324892270772462047343426573904919650045240373612856842501854740159364793727960588688776208325403346824762058049551010949591540390717274582587805378635702196558473585479403569953518113642221282004600862883955926673429476808923287722592676049901301449327354587849393792467329958200568148977026736953258418936012258097426499995056114289243791844613540461285729298970078531515346060135502367167804537916929249496572343919363320260597198037561553142678094810233246455061806827362998028095490290334132511391305784816830559394253169847086697803268164625408341737465140832143107470755454295187451537382783847826325002027377967176426887725608423119619520821183467233468133423214429357874003907775358587459780441900639279172308768863687764634336187708855764377823017150500991377806950159996091215145247984740875428319698750091961884549053947093851011961257837899275653573314822355377090060339543797616875811119780966005747845307422941720571394700752640714940280311257909557959547292219228437338354982583853916241801268001952357625336361554110576219062945479129339597555375797394114594866378598353208925080718321969502277199821903169363718281349696462988296843662858853655836440384434367576779539228387134329881585981346240528421602724019813063718861300348614095489927126263355971050095570912894219297860100600255947396107737665396901489392055981216270807906445940717132322632468215667551752617665484629545727813609796110809285305173669450586424000109230547028766300409634670338396693533203627141255370634980752586389249189089652167776691020973628751176070704559397377666507803512859801793141758268733390000989001231987865326727045995873021732018044571404654213540420935965144605991059342076271372923113272318507721189727592179991360071681317016739526005266958625151522110579672944213291343114862013207520852222054636011568223404730981079893445536470800265073547128237242275764368558703223530859599050112270026816359655723063243131472146858710187168768893725794911347179295537043124187390081773687515126318062103717335122939153766753084414182030504262994963395443510191136964084964181580838087893919041581525128654278608700786064862426189920078042165987826641844533240631043190958337153840868476957890328182914583259515989123563761665218312269447573754103982172653376211279410682176302478487483210317852181997178546629906853639695224981929065713747442301615042615769526627733990623145071166359625430952161035001589507452711496715773723818583047134585353211558680603364377980144511904165988272673201598715941187657827268616872207644812018596951966984231038595085453626623302134729106566777325033358439435906268224487092447895279566807886707730213905860098802590314973815009504465811895700064010264554979050526841102449370250146390267820798682823906467910791198418386092638985910707408347568587766717378321436981966964867898371185737000128403851658442651818659382124088047449123069885624883870089888429303627499979833257154700533753570862331758648798050676418999582945992104990477522458941676110519050930996305399821261839339293008124176802533924703738470013498505739379926891315529408947834477983205968667975565736012729095894024824783707454565225121460385309122368315346220629824505262360206626783944755494515464856041915600193359984793947227540480037940479836127883896040517165131787284007326614270700226553248614400367036379701043616280640485314429127490266214733195239643686995212070380574980835750579234937618445950088751820520315337553936244486520531882358684589908042519657038336948214739129361631282010223289251468074602577192939176755494899903737259725878668965300599893206195889714670774359999863371733190427604677827340511499252495677172121413535779743731214955186498935275695337934648163407998320816397791251910817309979336178686803888424602046614818788385486399384304168121759424947981810880477149671207738482911775909082351858883637014779877428154737005190794084825390693925972298140492476058993526470033642880087605524421795400456324600902074966006926434236637212921017839601772681220526940229139132386717475238430522432451938211977745392963239568669887294761711409764582967647331101136331815951375925674854875128591820249946414295893118041356564049704767309559916222921788463633729817523477096757988611278115149304727290923984143231370050295664094884930889105120307398039880524252911407285350543978655901210339652199846167918389266100440910171127911509641782178137504779626841663280675190285352928634198035212123620853254264782721094592619611593302322918560657421541378034575198349991815344969428576744898354797912948924437296552537603041521878089991081375249020026911024465873554699475254509375902952496293457925348516592598624105876572291609904187203210114296145993204541408194316422488413243020639215899809586003368365221922714319735858519980917574771359686322743181073918273750456369544570905412896397146299826326932005090355845581906735237073014567317113945569133236580242485524717272516490033303239420246317036804263069365049746332558900563120942292411620368713168178608503318645908368353243628979307975723317197945241551930116425456805281870092171668206364990748804884478358423224492608194623882373113363714865777387393991915393870931385921175001391927586993705711409660023074929647582857239592676031405360691302908911677886639310172967373126977212835636464100672310457124468055163221780280741421714209933458107821874464472214518066700627792340757319335202221573972516905989226152844086271440098640369287811237308583428350635093653677567094968213635052599145323604585083279034071439376585761612453123765361592341340083527786350404617333856992099354364033585286207926626558992819117986185003042140385267934492627648759303424171630970739243075956296960903180213716635600526999232693380677457271170141729395227224207360858612871843013265649280299944484976737917671521602253400626367893146240809543917365843278037113251210523248043317000390273574040333028627218192548999718377106411920043880952146373184178671830412165842890596735892753864301147433413101838650603729963126762209913326207333869871795787794474101408745513290885739577880389507052471107370443392638696458378488122035628520084291591445368154766089150140375830858607048626898174844194327023782985578295728164451478213176618273034415730451631764757012973709604282286644738530768342830276763432717360929220043044520863057640556880177179840135591669170830722722503988219535566411073412006378527483801591976478203722497287128757948912103115290115395092814780335314140862324979209272740237513617352369873604115696376661372339350304675746907559337998005394934087617988636945454519633885952386209714492814991662545551004072034653165632235856535868832148039075726697673392693482142428997401619001420550332287055477185585315862375846693593476376390726949754134409869246101953224103005995428510422356930742422064185272295683203929785003014519697172570870181774345447838997080786362185365880619241832293532046134356959718357278194811552872440142684987790859285188073419499699960255097075233585775222907512427945837307864027299546944149596531654865753061292187883663408934646612432298975456138755836272079455657063229342757276343259563542457932514173358407400756010325786881106662524626010013152557862638427371702368104931714959741219062817558435577596195379329701212233099029950968613241774735186114357542805194240488585081394149176536455123723179813141797873216752517834943489786448299077751806274704928745898012656824605194304326954155054217584382741566050551240175612201816232718415365055462312707308974227534573150906259096183223903981377346997695100000094723002698237172591743456097598825276966324142026429558404518435518012610958725527361248918464796056613779531053362157734339831049230269756468878241734739867789411944749786564703884637528348245977593704863012903255814106844950023142251415794552586374095655016501180374164376502564763114914953950463429255346462088486327709561884499910225165168910269915736637226541884558762701886851567605426746188967145902582615966139530332293365742792037258873928273004185505343866746752295551621049604884183403278041172235253184947917856761924056626376708241164552614204392997836279575575499328464504969380638149125793112915497881905711324586535727225487347289279388180408977839220315998251148460261735295769756970267968705216578904043890502643362809170759401692414433342487821239710157073481409510666409432758963937177589637128120717918542175348275492559801075126261798359952682143026514984916024803296689732514404000709647113872210859625569964891590018091849826783032782849020490502807739247437402105644494236375680775485610952261274107869217914589107710142416501908628657324270634363278930768572691008328174562516542527887918280819959654584108830755074553065987412426773800638094861413404394690412711890047402146956766567728665424951395858968261150506526444445457986567625907193217571321493897142962093366617347946708098113383894111612080387143237725620131084954023876926023411236800019755960525218795776017103858313549835329230979222868533186347306660012129222025669850725994599961215043943440925126026850240939018085034992001177896482971470541683511347537172655788081162492669353670436981463381604332305683317810037877606262704251668608847629703032529150276966392753304409298432556947553382343508262854614052108053068863686635979782851058857883126399155047550664664089204833309774328951344243108366981438271966320203687162939262800657558029272054710565260887166869785676506452878244910262171277658835207868583767221070075399747872840065928683815993465371360437054621517863773689519208418419194928302441949926934223423813279522630983673079070641914183156249683355564892113192562317552260557669636794876095620593266569597375738811901506109878194251763352501770816203232633953401296924132732972254617870473798609868301201505734194133274503950845209243025548326770179403191000395057038716003071903249597316263312747362841798738853237977570241322143875235673333981995319941152846075439732171792968701544345605586008849661215205783228661413460445303839507451661595917653914074990606191513352796810995827237620349627208870732776114025333470486478364967871661978040153616775041075159142261804923069769136842024393133696067885141884066032484558974921419972383406361153586552992732214805632830475225063085341874650420847861335746650641143438505735489604631997579557736140504089689352474559669231927522736928526506294632821318850462181992234925813823106460591554885906078426690072204100663444344091163008924265100128990211754211564931996907335465905651565665505780418679493158790561419972790809594252134825434559335161294737083987343507325692668747248967652255963592014907166549237343877531810337822818765344628785625351640165220543178049387392261311682847235044173211723749132979374282577412826786900546483441924186785723623807615279103036683476431358701491493790310975297277679481061901081916023277472540789794445048591744202286577096426214790496794755030383275826091215834579378987529013872405206644367730259271188354543270761800803974814881180731695077902888868073735225628983384598942854986643817444738807003800158860558451446342667696710515771929524026869198837424049576519475149977847955172490370427428507524844192552943674554684451012928655802162424036616599418276765607303174071184885080866332541029248997018682966205847783729189141359291296185175684055198053071713603074514253990295184775773125891141319531629680094600372630531766269069320301912393216554434451969097791216613598313582176717456591916687330554257203605936302702540642652081863208066215168328635315503009318880223552592352252319505879226271646577374145212066694453988718484944900450190704942816015668611736092758965422567910846770472389332324103458654758916656227750967504389120677751289325849847684971906771775521196899174424125701459127704131708286254134422923489623881556306897081522452228971857205806425214383574049382068587051768605562898211142882270373602342853514380049692295034480192510661346524717249153986064209784130342042979042735327347713531980125947645179681683407737708471367633205643881480394973259984925362314705859744758404056896643269716854900057510288920685226739926936261563627567870251950368658093396647370332768820249357317571186305980363630139094440973565155494872452582036456947799113167465014285898502374443490388006245554017711308944730526615371948028888692172837153594219252454541075824316107091267155513293666366524761900114711576616360388760404288250859051402414017907573816850585311596755905673163915746205136562333759459840506534741192533361310958145127088451675853651924938582900358558548026939105300393619332599742128874336296097897208294188252098993630517840303348990626095048056954368499946580201457655300677132541951347944878862057324404717893327939982405707672447284535174704672823639568335805716681468661531975407509905415841910335402165108479121194151299032677823736682466029218184748997252363793141726961726986225138381621305814104994824230284236089503163109860671394644138837132519922059762724828704406150648411989554728485608154693352111775094674921073170171690614512124670439157669275016081564789972743508530022051062339142101745430403366790879582761132792459759474008861509338185069219721319848400961142445912610125047122062580793447069369236078514533163443989815823913612033361035823245758934570902917980805788412465737571091744725591825369029618103762747686025109329767957268796208285477060260101670942815836259857555440343182108973555064339599812679970993565067573762145583216580060244933301019512595896422819541172861153783075012603111730663446902695557958273331397229646869490663344617379618660692860085955904301037761763057949813238889959343199011218898567057166584033706406959890510058852554522181849432895660280867577802549040450620273761650983672014779441945537851514967574039468490127501659003757899008245482740319201901488516397980607575782251657068799041905441213355873420695539954984732999230461554496369660339980535674065920632983481867459806019409564032738846663271715911963784290813743557756093814602439287363853334329236751529903548781082670322030795707227980272435931933481957243720554827637419168728575790611827125047912283532470748477280517823685762444857899576244123666438489471514693954764472543021779646692060388679494977009128036207879992229054968571244800844907922890142689767835566113386821111394952776434094888883558520056665687882442833703675404788938711337193957023510398392457492499412567818053542932934228160719653080224118712700067629060115781665985558836670249086586358667835731837957609137211654598635624377615200777179001741160627943137549087681354380054066531383810882978789094578499091277623970618975448644124921986343588526682929806540408897003052268041232142586793031906396485896002826952234623159809817037295551198749738539352026443898932711379016215490476177814310670466103086652859541463764543923793706450346616463452441716745346148405279033827692877841148126116820077779015380796454513987929135620812277733738120605257677217225561389802428438696547620587043166927443038955188192523835721897613987570943332828703411379645771947079993246944746860195946565096921694153863462277731916712140835048568101019950353518713932482495611952340528580055257545529831345594222962167518062617546265925185448035698953594454618596742849700240607951036670552044373937033674576177798999945966027114770036497768254386409129117339075904403855817465601291065530626406115165460702636354459472255290790795390035648345458024929149347145826207220736360338454537358536064248263460229613309093036220562754470339201950301471679811234611881273925431955320892441587899543437686671235906946049095104285322730326731638357721373506973680379418461149521846058931166225273901228246028164782308968451156662458859627630265109844832429452076428171690174734751907029836895349990198191064619714741744911234297926287968950437828659836207862020242963291828679013534654033571488666828304584698275865650780997359711353435946580519842620996795344057933192086665035077322596625939829708886914389753617711306460840347821059351677848743111339573997517945102506688150379532886159576036722862253942873204499862590954489957042378240990546057412623143768449003753787063071739222090246483015640820685697290594312329286955914163676505277661370404890156764070995728283583093246856584977428130197373552591821694262272902761423990688099919426568230330260271444941030902505187967105567168123071710762282209537102587333868152928958269587462835900998859950732892299706738416088468523924836548700525080973067571303621583843369912533827914143029751302034793571834110038991632785559696499860312485834451088812745885444729781352088737293440339284675098496655073948905964324357126243399226805892433845862932870117082124307913106039115930094721765092365201590215199968329445157455303325636416863975694410599748618506933210315872563692121877072664259184992555542301697026230382766468773390887375668414687877900377918667121878124917341696720340062781635853511093042386340709907079677829788053977108745853308610743820898655617720688393716435287125171593652718029669786400923195755216450230947643942148162760658406388391550669302083828852554612938251138946436492969644632616219138220597031806898492571113203670474187648843173477894476870549274394329926939263500818061765332670105138944761468920650904796449886498017545936067163058232285943049202391484336798651255494750315167724876999790246259575246628363296711679044724645929879493836777325465572562001789801289512047365468287149771129048076734335841633258884715491954144486063537292227100657890736655327340369340235600261603364792474659585726077257816594589379507514836735964189456660697705696490250576888005826895328113187796408173602572656953168823726857810232392945039395734981309242288194770026347337807056761604281480025648362160696036886615680778688449078057754397615756515787785799278961465335961777614639190337653175996061744533138101256614790853480496016977823545793050523630051146647339851788893090926169660464700816137143681540720896941826479267788096195653800588372917743209606697178207468029989412226000300226007235267408972409384102192314845685208310866656460812031765281974589357575641157196763070735045528949386074630081514110468686952583270124671666059532147555673550125719217166772547802881619184514095472563284288714461565783086663817601145673337217800825140871010756592468848418602944222101261979027406782187255851879622419113648381705842562105578378620213251882597275561370411969358854057100625726862199090127447830973445133189394916288851524550648924356779173151183267468955699910407446461096058546601533066953201946768793695772130594232607566428777608359944911911477554184043640984385883862078079303011256349196533777796627876865673603066373181210824904330004106495877724621110701591666931072500182390048141777546503963294021258758581105417862127806960056269588641847213832535120260299922351665178922720134010255602945134391206363729332915393860340296153639678726321677847136494516998626124331533279251763313469751956461409915061501528660516876370842214175621035750225225098647192597873081444493276092692514753060331249752297522917573081293775479153850813050212830889605594106708610779844238524493473940359641421556479182946071331512336146581858925476410250165965173876102009214533523602601396614861967275548695841523053895243787188421609181176664537880333612863142580247112262056817269229277859889062967520068175038070862416571840272271006654220190085889009291109756149799192198287023989218870436988800870246205629192174836265586999090572778848077480543029156111037744329892161512159303944757486356367288311898286795292611618584609012152316532935075529995460432164629638249592219104987135489992439439563525875542126743820286018935647314908976281524165439848083345903967740618771198773985600389716598336793078076755732742816427424402816795735174157991209908010842624504470623996690740904262482613742228019835537507965925817579486132155899167450804780826975692931858395192424265312538244301678594120241841377110255682900827115605932813788705698991214064205855784227941433853267177382111658348058510058903350093662409221327350267029526786880391359075384121663968023120503613507686596306726933551611963827149281331890794354372931746707137672568292517815103674744998338784803815185325474370014110506561833967330751328710172496432823533045587096389924378002706498735434039530333675396698815587957713002441377962209963704313123819576892567020728657549175967896934826919558938339674545411206822262646912000330609701516298301148397963813182238722897057867741464275815647791418170250765897235161808441946492570110252081472619744915833290590996130223452698266442219722494617214691345717756564490881490712789604112790014686372981465021648921530482763972512053977522620386250548775085632442880388017130403417530667232847076964173384384117528438011790375216704055006504474343238716211637591645517032248069163581380639265797016592336518946887586663481422317390993643957017882286945996009948916976433206720152913523069465165405658224667042194434994318665860655442152799379547166545818124399386215774120347697385067028387896579559638250218862190997396419741579991530747875977348326122759899857615510020856986403151126502264679689376398056547038904463797537409635906144642712191853602539515832872527365462274457617448000558699516056846644431311925460536883034756292844907487292969785175150528727185836836457853784449248833480493888279003215775572696323208882092691119746897883966621599515732776604914226533701394588159986538777542813922472849686926706011117870263089022056583781958393175213691761527728905084208883076958769599906102331188852211247858712615811685651993554234746144550624328131252786070440492213957028437222483416078665208360440193979851845646649294058851034021200052027008893391279726456308752178582181391702740299416321013092829287033144589042456945379752049601842955156574608707820241283136325116788728677928612149508541370972856365375851518541989068952144949829699329503163226112732092481671408705357519072363921276293872007319727840366273413027183035840211536606921410300209230749020833608297953620016750603900619068288111969882690108587902713878735334038412891777353614934601368914328508872896035592545945765161248712354012904093277380996665131611075363499742807876406063843625798573307565440565411122279350951117027701223822888210038575740225002116652485756105089684371002578918362685414310781617417257657785451564751762329710881474320283461020430795765642147408437665141197251793255578501134426153394898248294165492687983691506521939154077930299896779431468749727682257560398217711485227055410546839326656559216400251676271013904311657467928677981304925198952603031065827347600729309629676003691529206855591214603626565813695963392766640486392738597322766013341960724956268740999817032204734951663668978610928833171811424405662019381271053681441927740779015620009758235792200239248919676003825471248469781526863094559136837407075489072472317698409122169874482138931956993468822577247549773756362919410372439209112294628237183611186169120198666670367833833292053517920001711900695409543196715081402166857221341884997781337256982687332182915964031841701120499732347123191390324314937755887485495776960612601849571048763595887479190080864767565801680270670733319333195434587425324536527477638934800247142904733034901172573687385422144437695507020571958972339001537372475214075577382083675418768547809608190583238798421032528789955199976682177767332774107845281368626070190575174025080879074027414961655483496012948807288895562402923162009903613631803743693697367316963890747441626543077425850968505100847516748361775848205396802731276663376250356570052222220439064212998557288098432097944526331031792122583361353188569806646552820873585541571623238600485423635135375951036128768853842576869896652522795045229421507379759158371523245547072528637759898007695894560656451782320799615613213162165133739974335305147315562744486847977812817807349183575552754291214939515170687791671014046050479325366608012314598830894441255094801705968531121017889729540735803030701651035733450441078558263595572578172232706582652921332968636610695707726868514566446735002400715368238549751579102634023760804273168226060302034414437021064104132310213442753567463047870776766517564675092235913133800175410648861288566994916129705750631436801661635054016394743340841735307546310405617631149907771086002495288504702919284133309687264170221953522402667730195951215927818832711797949744666709755847920085302589569415235680389561551366117604232919928639323677643286700250519654682361490813035082269705542410925495114180363226355969507105730019488759875356682495437095119248629814612131403465209053201265056142498286393445789609072756923865635859239322017700312572120836230342129650663914136587914296293534078322481859380945089919736328440695728593524946476967447344195580000220627059936166586020770198954999122379287449020540748967067316189431411211922343403031170170812167319194928261049341247784911413773430810127782575670624994074391019489970211064070935699094400570986857271723647288555147736760220927962834449262510804493716691821797238013950145265840941542454027633914974507560274344008798185026699820319841322228311282099565509479565977348841109646551698242859573403774190954456248824780108449705811152948659073753558688727280862495860299244335644408116801475137605555947925912143495560434532705860260628822894080250769085690171312656649930347216063380213666776092343190429014983710798934620389321634867667815999321748365875602609078329150590540530398257400041709084901567193701103512976367220607038102287041031133384959027844073566686532119571069415249206273382630070211729351996716059874120228752853466107452488811715948751946929122342587892625429161993725066826167106043323548465025603445755650311663750406691700536121477986626033570382706260824989760411999573762601032256419686035227200675905791201892194047087177981952594430330276391575734587417350953634438926708630020086417180105355873273126079375627219666722203228200783899833080806460215698402704857105103549215108284903337416450403377840010773151160857856104385735588163865537797543622730009980755702996610796019067654493633022510901029757907362461479937800714425469443915963069631981514574953011279058276427423492679176369832576634102001869852952318594644755002638853663212435934312462079991378167236979263900675798335921220886656697404861410372128961124586348635959522838185052823291140051038480700777670664166131834307693191068541679636904622604368494345725674584024054933122576396524917547261137881170297810283163847577599379504780045397907064036267720675122195750872907847516686840464597600243805611097683423012714433717644789714792596322046044057917652696470459972762689021040044252561191646598934226680574281834326175287426859338682670422523450707967181180352105180885863637970166235675457719393345496192110282235656868059731962218795912629702962656908692531979574156979959722264028572630004699652675812337556472281160176243553327066926767470046555631917709835506526264191822113099051849710393448312526883880054153777519196947278934295360865124303762817883191698319373281678113456802095448410548921851928420783495048172784222485726109748183369931772823674330786133778823467141686323297979861983020698122854924163237991727755138393267183537559489354576061683159132685602272670821588770275860152840922013555588320498434521276302187898142951906145917464842846271212241154881436213234308612240925362870772466858333686360085014990474136167242242178573171578392779972005195336218026669301653297561738300152775848740633917730314775659857490311420284592976988982930770275111888527669323991548529650881344403782491982296784228498562662276481272368098829629119822079481327944082114358464412503728914888131336854889689139725614251892404867955010854276176399451142624023455442730923599891580471430989417654366491779670585743987017988543618322334272700225156069570935963601663512072252842928650012334838951692108149653644202422338211728029894902191455957374543483505017182825591152386736677386988688336450341600132559984750667250258057542013513453137871585039969122419879391649417259809674947091730356318859269640904554945532942102501350876653621588442124372657548723779409629767675631383357361639722058792877748636119450127512525863664357542634336618579186277510466709754374429875819850079104260935041231626596953011260483363164962640833714466986635043508703031298601576462417281485588594186258569196701583323503687845491137726385204434170030634409137833139771529878363072459841234439972985350811324721688569236301821955138985126898180360201002298061764547799764211814724143739809160624311077680783279843188017751752048224058716544494133177972140657795576338216728032427589421631047070040583170879579808325502525676518743229248698594414429338594591958341074047502120090947612673471530970868711796302039110636916084016369175813666027726549188448411397699575015515852474039989707738295235128223932149428185871530070115106067740878231817451716054347502468792182292915361373633498948045359732949874413113846707821728162115866743206637831484316370860820495312161322280211718839278031636428265815730259921155598212970478597585806726578829663466208679780786098577455268493836196917045340014371315671062078654119695755968030525432481815029095695786552679218281280816254989802503844201173364412425348638879380180356968249086890924760874857588711230706687977435023197268788084660817369063619122121112303085559822749437459463736369478637135108325445133616412307840567982450172018571968691794719129462012514449051313529959759887413740145325357954066845252955812468796724859018868772489978171391426999849090132762190652385568577052567358757986554842746134421464347368890129431123183087002822099420048463555455081652640470876540228246785859243913274773967088784980946027534502698309555542065832727900446212358683417933976386554673106149640089239367828741763942639831740972577975988502922558589043346420498873049892054238779033349772372614768594890671691219906098411003433975407077086478704842551443809645257553223107912305053721643419135404985957589175214524445659414803958866042626507789180098329575663839739252590388088937511982975754186497492924404628339645088342576391186066476074356181124349567626689151248295595070916568968730850674765550568299937522930496314805788258647431466064809858473870573593776673460539417337309389601176631317946880429890024174589085910341357570272340207866571157337125862568451826880315657183696421080429785044772769687015784358303227403544859666297784578171747719542785152092016078687815564109303977004612454322551123855104062388438760784021039265403821695211436908655753014067962960427190503540660190841835867136637285212059160005695043334281454410334668376145249544100005912966610111150657878745628142735412361699447294293223933083327212949970355019987444602550439364902609675552431398605220335464134331538430391091472800463460642643570171334903890334360253868444017216097649036557408835443722127592092531472930346006246672458565900879307353418438479550206790750116824097465892119710125374838999749066945491667276337498233915400589925574768530069033509525914978902012197723942864682992918762367736614660138893009310798534070484483214677162644013561243956006877005005925275565418464700702294007101896378899469285343580171588849321256187646294798967009119583892601593579374325662362871667980837743667433681868376251888437594066521439404285270413495540081060953494353425921993559479956281673834693147838729181416423207972706254622859106956023288916945198525896939577793445595701808189118263686161342131844330954412525533143975795392059667691432296373292637580235040992666770388422551847140981459883394413290085975141687845738283203305671424063782634617073189716343046230642791986772225962402267897664463216498730854934352125755349094471170113610509880996646415714417528619098924635666349414231109270018877844318107666812470954888053938860595555064813954117984028805231697700728366362190966246971163914940486725030199802495717387348907253244378017961278106619935026438181548797477466291021860010035716381371050839188802761448193462707346300285461628766590379264005580200858253466555965642595269166849551443552364135783731147691691268521316709249786271765103099488055561553041380083139540311096340818988001850389512933220645971082531210417959467758443552549993690752879044004545044791300679251083647671621374608800122272272710954694457881050847279728863434456649524186768556150922051123575843607930640636028130479072183039092012785073309982967454171777129141231237946929895678001074322162884592595970249671246261245900194088526705278228823093444160216755068413527358613409047356396914113953723392315948527247176449318245791476181219170605247422359752368768171006854661792567501740815105969738234415438925835770508556201163787252553594390134069084972542323146912795924626964066089040863785136065911891474605068422803678362044241453462590909734337697516328633693520422208060412021246779260548880896055001049430087355275273860182337635757975252480101944390989889520540038804367934840200433558284900496225529500449475106895452968909813993643127076414969970854468814573749615878298797196854010675195936799067983098047078534181506306358686225724617993092076235448927322649719589865370013457141348578610566607680106025376529930215162393864873084202128815501672881436035892563664438639404155655566939380547706655905473223372884364585178613182771908880996752241572169650073547445593821721092831308656148240442027901410351035027808248158251793868460158999290060682442361275675794807168190910510149745118172499857880201242987528524105546285858083086545480788630874296981270789097015032747590964412240652450481120652341668182091057582021517648307869184015790505542787287090314370333540148044076260424995556608605272528506749774923946070274195827041890936895288359643772304435361182985143385737747229909506949319890631004110494216095339760675451580673392827177529091013968891475100585343694353559362482097008923876903172443300272516656200985784757043765077755430074830756964502714593595283345664147152600675804132196516061160094473551733178010068207832361709035373594094406839710700682510581794320194292215253194421364047915911640501806927955166520312596545660733257678139530904199394204987064499864414496568856901243202578763641701762650602790505751172810648360398515317314904601640678108978611873305302324588069242412953864832188615133557250672075344833969747507207922572801969025368984832567610512546583842017448176399830150790113850095567602887614848358274478268826815625297105839872483770555307628971016810027363135285018019502036098314073463692472664337934653526861325276525322351337132401345523573403891127011685421465804721285638130723727513453554318574923809392548186137614228786892862585660271911908615140147331255537214431847483959116411721748758224562881039663419047491231851814392031972813385739537632555642337832530425211216906895671906785246638520079738678569853042115322365048483883608022660624672992645824595794722752206442263301501576526774027843574231550278970955170336013455743556393559594531116875651732075739707129299690817019449480085434472068231836626404120295336407179991642019741791837151345056748407105269003509410918764711873826306199679405624463177428255043018375532156167862285179866597772999992267271621091910803088624511511472853534507965795258216511414467449599091753894605353942822574757263947872677558666156413112192981803609134495371664763517659362080662010648516109036138857857551942095398647644166301879299546295141799079399657685178179863221117359582825370482567661861908569547759184324766625438642416228352814402429213277303423480228264345363745596975459546806743527211603260414090428308542227618568725450710198733248192469697622940624601574563682103345762262552701521281037004932481291716258010549292399679142770461235596920303470458429786068799644713336314030645540132064256941428567295775221752311152393699423372800228536951268549917565887458742628133511747941030553118461593139209138065844489813591562756105329150372552680290083630458624425076056458650723137919769467672537889698553305291346736770882871464787135438762069955604955184823684616024178766109588763062730431955112339543071438045902872346984642567926134668462536100931455084243915917784595921045470378216913129881957713908317721840623176513104905419064767338386910912757655570375661140970814922395782052341768606193755296262604989775742090477317454866730922289576031848512459413303993822151481634051999437358495068064276362559646678154180881735173089388977528334996192280863145260010094562840140728680752823974040170814174571331010716337517209253327065655381507642416657218743954328643165566446925209435899266910432656407231608082379961970309225224208031371421659358653074135320290662405875272514118793628401786733468533631035359937371187500189609149651918710138767136520359685359006593802566453630674995174291889265829294880472174256925803318198158347841481773755696175370707358585004779887434215527118106235175601429357391841542726933548797161169734278420672114810923129230822644641755043869001746937775915513623023009510282413851215148939167300209156918600461061337847506904014991407163973986391724854065501827094217911900765373968452829607351461495649118363269076209406880416131026202421025277934417642427716518302837274127759888546364937727489123305736450220954600265451431012227496073555344936907948271343121055190090290887077230128407342975470966335147819969905297135027551073373441146189652208724760564221042935007486709617292807635039699626770150183965395846177212448257668610571846319001270910021484810477963229616959573885887285295169026271259823577078472305573749049944856276140851014360709627916334730523156517907947034725989098993034256933650794816687454309473753568394777673816829807375401082982468808249512578783482311224089174009639811889952870782286160807768463446746007170324651980342999497021733176564880557921601820817495720628077734853625760880247916018475178649041773368930661832958906107644731774962303796830935235019482079743107138241142134940090806099022161282744401436539235932658726221867924687982900574674160254970617397813672190752542833866392403393784795038807583004778411080906422475892649603685869120299682145679091732129617077680589031411068614363719447998698178106481212527239457395525035597153143654574739747782859468070904515294526263670560718993976292224882802431758946081428080410697844429425871995129292712817928606990346261016268639189329827535648581348277839790767357057318940087420706543456003218430409629876907856341327132118029366036560809500179534537815306373983779097570580199508614014189529674648520160142547576944817751222487410787953118044141466354481820892288989908068596356246529242912135892838437479013098609090178921694579097644445753653664094631560603131487600539761251052255600864532841979414578120069913438727919203608646053818947520383916387055381160129693478533589637652173893254002866127242554082287912134474818505137269948691145308455280609314915287374538546920294684691764322678459195614729237597200976149196169421215936482483558530781506809630291675272520759024196078353866620924010307083879456484456128778467410024693867763782640120227549924236006957978550966603052860965269511517678181427357091781291396706447463579519781398564649817266303085340554965478178976914214324997767041787580003863765075568160135921103253495634904608702817896428826007713414143193074823063523952197732308381010213095436097872635472283005349190311011871880750667738647784374642597423166066560557582102611190901269947197429765082556211248660572768210770965172458410349408866227748571196810140763732067445326750366792043611615288842240541313569900698193398433268604983975157949954224505445973304263754464036887089655743203502586442151867903771670907006869727360116120778658960153343824679472835260915616814733301291031324530721538795201160386216904038835923726482572502683891985174023130717669039730333223759138739824965554981338353010791149932640253788527075592461800189439806387301461551421915360460185003691851538384889361823477328084174328870098756883420281583818345645058751063118334707369127378068406098921562752573753736317140971680254261486507442301393751959904166490350470627907873463969192187594789733143913530569248498479033674555114205023364814768432625678012642332715466888039406708041449783236844724923424997316679025296778515847844561966432337516789061217032748135703660126602601500425205253135758203532672369622664463728995326816613670276639832333459344452544634919507651054312374988248328231404511699217744513241865171661545323351445610683684676008916882987738615630725210734259775848081336350855578311448660575308045701476602808588806316176842876205207335882306999135996851572389063995496908830909941773151437923215635164006368225759388552855992639763441337848019739872215526170295257120932662195830189714831450136468930789097296280256932935953020027150741234667614231981766805433513166780803681506136986042889213662944955572203821139812914208974148980382227597958490154249388534601097714629604965734349467916811172536669212239391492390948482963599835356119991918305290771562153110448842655167756997918206281115435039504057169431958033184459311263296707249625779847492083589555735252597224746002196294792616003865386748232349260837411757018634121446730102668822975329633762507576852679745860724657863552554374830454304576303072955024907058369372564701426362136889379123670049334718728725515202511335886517303769214067825528224661315796787475069976249924236202721030115527388425373964293334230836785523124307689710818378183675277264782137071629668643596841391617817383821515268489106799610797177556421332879618637350399038077936084492306881940308523685198107265483621270492073374132786397818445303700898351679453541552973148534768336802845629540072273102978901695316802353949842427723743170525091240586743168146151005252731794162364820203522368066622452196760711338178387175405777686007694662747989728974319561849408998497984838279861170565319025564260338581023739866873616449029103048447053110298911589886003468426161599101417324012658624434778908976958674417180770256624090742528077419157691413945777578774262720893754382823042187985089618697559695622795122038845115841736500411874269208858113772023659500911154100896765808748889306818087070602071441433883962827868279012034608564231417193879431038970423335856698004156597766131320033664036013422328087841143195789927995533303402136655789393649799227128638250446036957951969553331108215453639127179542741198141327887677349140540118368630398491199798229101755127397697298302096074161190327242332275708734909510635568994943095260560747581535236680716126604910332517737362526662340476796157180470642744382890603428347140821625372374847485654918130535194244324613968752474371364818714707598340857724135695346536786864698720938394296708120834455316710157611850753487255694496647476742350164287620909837469505584001384470972038484918296919941694117897048529687027633602902119387533477266518766621658955797983903191806022815895830993444932729732190514802542267762427579041609062539633153253525416600392281657584504784011317542680779369886151842313907151990376319089898640717130615029383457321955604624509612899498227407472313228286425414907216898408243160150540759001070558089344991780500575114424961493306252006395412377804741066400031679762794973834077355603697509489274702701560991696597839298288832535364517644854916162357677260428408319708119360484300110745195336717734290626667640868363316800765646107857279917669236709340810890246004104207071033104547029685352087845548043885141314659881657939226969060622845070348307567413612621089905207355213295000667035528961161760572682460391758820281091737802121066356925149517603129154510179872722538695847981422145001704530853886001956950057798691387647732660760236795854315370675631725617658848697333602893032664374808356487267146237160157637187016677778968676891434775795241947329184367741856642276967812541307815914618251890965709012955802881370442875434765903668251341671493843212208892566420335457773237906186957765256531097675049093542879868889187711284473564085494363100017443820048387754662180063256614753926252821356338569911317859791857050873244164877169024866142762312727564132200437426597241091237771897198960078772136566133806346065938815721656112215674056215097138148900144302877722497172435240926039090925468824099326276634738129489194127182871414967722787609900214462550332450866384157726503375338978514231593680839132290590696657661270636079514962364962411658743891864824434741713171357050884885435445316737886937677820802028109852837119823825169173779281102556816290880971432920820736438427863680327515320516002119182930697549955280289071437051123717427359515478941050071734614745458963501938998648704788991943036529682419984983033027010688965136057539518852178787186254380836781280113448840052047529957905229739570630450679959732347101333542985686465365430590279833269086714287572656000570167762575108647899534558847155630980014817258466600500605773129360162745263806228528803850499354125639805356063799160764794752799409122854786369512216071330196147161768949729651092076683348271587671407678871383233123409994743997171887465587035610139933623018401065333819100443223687155961945281437151622477862145279153492385787762566200574707553324665076561613219780034388850282821203991656463994811187586935507071239602437448299126773025812959334575432065862099101493948593000448157709854022992868799105104399789279875284718705666461189467179719830175165913924084093411997869736835569186278462040045310250855260585678313701020662222617420696714268065837956860041350147754205390590108138120965913165887325652307905644005475352347944365747247788594133392023648267091927214427841631503851326860381574091385196827007640590196927668834276161943878491077317007522517039121023701875808659176921249393967981730067451302215935007826013553916105286711014719385093976545272010117847628678988867488575675408792204463027906644814986952479946934836646440071964560192190570847034637478423916998424450854757835016600050469210399748701916357039031870567250253967308149429054649650161401136326701782681844296825900472451670885481478996598126024666316243225727100256317835796450190669818404818508247646524110824623626367959274828953253132038437392508215857559068778939142249020822514958729066633221129099362488063774443493547706586440925621732219380486545880782616648996375644702099287716143658557590371009209969718767073273484517903909827856820816825087184915720019702980675309533036842148247692187670045760132268880374193550215418233807018848867209810078812540242999493834964024773146450506847349013201498101040910322779192203550014639746900513343846303115164199820197514854178018301314157975843855333533650760107578761066820615565485772473620002211482879237815045232680203113858123226028760977582221817289125855870949360857432884988552192702742931920289792567759037412573276102688008354843194839860575836705350066191656416947438746255000142747105595579371017421794810659579245799368441590558018437808663871270624749353946263424968927622806022583908293031213794579417611543538237939181198615251982013299827626446834939011536306287228241240649972989929970146995822336914604467168654846277223182187825460319374934091915784608272841287037297295280784942259595223691652378503901928036523032754382655654695223661892690312656979666716475709380760651289999045213890575797889678171385987155145333224279976798844962967649529208306918186479110847622030585717696443607369397278512820314658558847678847680732743845550265371767808775290011118889248629480881757775269828419426345118414572348415564735208817695193394791592739150804196179215601312173657676468817470091278367107393065069174778814663848942149929897925134193651672678185514734916239817578032632991022025618085035323152587793260246425581451237932358042948036022264343762248043548514099257754801803406031711048361151923093859799933290784118633621021021685605980846581645098739080904458562161725583736053446096238130075510537938621585673381027767687767447567324438925710484215680890770723403361706818286190532242121798544608460694168265247012499467800676615112356146543202046549977956828134798713153985586567718237388699402723253599248693615215011865844858705644235062104185531879239652996036110824737059040115386060379643883122997722218114822353014019639033437873736136259820582618007401115936974295477380857947845422146054158812847931510948862652961406705773814904567070467545187835912353855549115955885394446337541159487331743880526866150300455787662020950934614578042696984503199690367240416218354102792089615855719486622884458152595114160138306341527546330964371948221609588309635980915604364211502830422691279330115645315434796962091022613425205620082646039795772461240889599765616979769668224045410316604253541714011808723203417157292313070820284377638408037603209876297159269994166631237779531637859295496396750252053297411438388953169652811573592741955316747081860399059694266313235548161615525520489539823183854214811624293891647811055903794260543593098246684048172070381556203178024857568911604440115601713621931757427416673318925427826041993176059957915269955510660642484527342477301954285759622655813177784247537507302357277513281310973847729521297268194281221539531537256930393130757068916058824946432931354704658231103261558957644674877034869278664835338415288616468508673481716739908200556010727813142867334485517679420799106395806301356775482357508759230224570729237713448797207040109884910159314788220619020432605617622812072602635668421345942528432138519797527906585255151539620562561196638560744194773103967186805228633366106822170444506477932292810036296884244481277132263910718062889285824948078562215965766215626498317954079850292772148484788199432528617164077887426910007642343536070486484750947039410407980442375375890337743291022988385480129364964362507726184256731825368976733337009257935555394506205309354165814947982140192618121672457873333948262462415637235417910115295352525223492324509902798279824366543191566290005296151643898329142241658321715788750810920190887831707420104351542880678622836113695613920726797906380956056416313468470487969761521799361634366802183522460165596619963431599607043015206909460474170694583722301809983210661858712106936045192878658358697102694476892380424307189393669981385723773625610765760008343297533555100344159384200556734965677330886106456360812253363099887366248136788207714683318429372488994489463624856183995662683812730041498070347481201930421870008469668188895554947639335641254240411895059781355614152265275894378792033158184004605666288806035741033757881900702437426461632454023090871969153347230058285111565067899323702548028931085204895390929617632107938174643650102092152836578176518763813830862913700167818168854187905436164435170362395058422646800408518905675507590786517990650851514512011539977697301344789453338064490191029327403547833922925008089149946045965556018170794642091735877982710340543905573820562681498954165886924718903230054954671734558601041171840455926726410962976229443178499612067773603295355321030465033123248402497180855338405009280315139802338535280027884866793035640190265647740695509831270706602035801794454851006548484547852427075641911474434951548364866368785433897838341985246197042269292389015994943008461522917737774408651168250154131051567155229559465217920383145427268761827050767390993780896416843316952409000602523902429987155320252632500069040059937635992592024063330091992011950706608499300160419992308093947814328392328711391438352518440987626394339914248512778311894808700957585323635862266265454214453443424517748684633523708317576415505591458541470149930609127452916805206755853387445116026980131970282594822651590715167126161326494301446599198658637055193269550520458662805669124264110922944949930473152189930660245128482240582461507517204393406489886655948169856271492144476598574908634471646178239118547085071431323195118325549320569611697584997835385596982063958021010234495819834258819161770617314768012511463394324682710645776535613418252824886857431274760260249578071901546189601085422939143219532078975719661567695223466741568398479776123510569313543814325682872540312515749188229355103296757823207264930965449251306329888125368344753401397083726169700320949438380305813220456825280053946251985340611650360241030045177776533576592693070345304607605644221712640583248594737495681895555545557527766994085402874908857146863643347168931006389469091840644963213104934241892375252754025672497918933126235179203379019635956532201538511622106118008618127051258804990000198867756482643879489897209959009129473051752163203926851722444446677580798671911578948522085134868880877824422081077094801653007561404315852111391716483105864751385221273878903195359457816479136097078268229451947207496850774983252008251818203968974260060917558601485786610057048949666142775803260690251022106267076517476952554587677026516002429481316195423112416116948679523211291122909557400005493873456618884591112974354695065619514243461553220923014490702869389764909181272646574830687552782807466878350193008920082692208203805359060879633770061865081532565789016702518491726762701265908884448359427648161431382962680884123523962976177191672766127972196815191356685495150599769109784515031848896050132617866666922332523434656471422733861830353376106616315594789990442782805583777725218284316234443181815347418243972235393050564646503570744221305459624625547578320265387983517177600657108966221552053461309967344820811269376354364144823363921028302911464961137973407771103838033571184754404754450336857695736613319688923659361063300118657762031563639261480568892224643028813531420257771019502159147968163321014447675723822850593901670142886873353217059572843120812328123457359843051467381156908328323425816984654094589974744468102475282374236794119449901196314042526338889739384457067796348972525834801538186793844988319793938898563867468915287465185171661522406929438872050673441224895407643739993831736151951285447200443866589516958807787992354212870417462894155044651863905514932749467203228508772858958150403809466925159190556591247925955335662268005997801610530964789664757922870497214515645556654026000386582376425939594585613985533933232007481952774566690158866535380605432633372849274940392109736238481373915054710340748640301333087955677603991955602952358218346396262950497756082709287373810807634374725200243544857305628976572772469739155846157459694645222138604651474848495104781047406120630278794816218255771595926418016571166036632536783023400413329648522243984305234005312250752968481200749708210956127392901508306008190031188473772678157559168959446484991065814349800861906177358539321796068257574957326784261331214089932865437640062356218181855968725565754209456161130930013755456714865751656242691251330289279677213414010767944293394157966578997179519982040829871724086875547373421578125106435772424393907059530135733891891180445696972087806475858743084533088013524502756972775858996984828906437247981635232846444231403751559425611821700288664197329706670635751678446768718730905217850076017559820199678551961178920831668208216056030330334206351301621113655904134957031169208616708258410110933763133706850697931682469573736570253709726823729496139547508222051250022867545116177016947094180698385123316436174144663597802546769033190763386728455492934293116560117397942259967030683751218465007602454874317425666774894324186552452688714935465940400737108246266292689876752995615765011919412240750481929276253325530359616398138680613261677915292466339846342547827017663460735787050305165260531601872075121675698288636746125694788885141952013992105519440934297555404930815589275335984058486256087145122188087280164274181508006596090868502206995230157086848599114888549296700227269933084829121502052500884878145715013745466311918789701391705247915438185022339423246574826258493848387871369774351209722243836802378856589512131490420764998427739424122559323371594378415943646612164099470139233090600169740573842399760404498395637952557546465844325358974753516730103331612979520915065916015903347010686605435079809791239280791274083911777097753402213747751319635347296452014785913702801771416873265949217384886151939543914738449845826554009575246471822210608819241818935840526176918606458062246196758160431050151108502012125804140017838166823600319682533368455381902956630520328332624691413809154139404398132468858209118782780514321952798636961355488264108099214256970065774172382587787109836868751079668375934426114981122105558333728979829541860454403419800857831131015043550891061620215080806515205584323902713623227457299246401629866949629341431593007960968304579383981334803175468950236511957372047879836533896866187204799126402882689266341047938495450887627059247905423038869544701606019740692860864031098033560235606966372706825138534908064825045947633715327134727543731956269362482298598132653756704867830027869623589462517238181004002321697835121590554538352818342307693789186340439717748077330002144534723968547736983543776858066542436791245384032452202467757807248387879661803679987991554091631203185055299049303239975175740649091109596087879839601212026157689644499684694886241668007675228332400448684684116782689830962534902761773906334339064309326915386021100186951072801954273188604571083326627109543725898144894441513133588329402168225811424319877448293506142242475688448210286418628822515860723474102708419980565265388300995332008021445843109834990629951012288621210057332048179064216527455156705754490355586011169242844643605664729086836624492191371447835721663127122221496828582771865479617956748871345989878404794822670621744221877195328611958290787239025303204784253774963062692674842241685415087038783440916231407538256175734432579789315774400108858267281587084532534325125078332756477815514156108260390157371147484143051107762471157991825075381248043633950929700592345471199406204821099765703767980609136875201203333699353103172870989276225273728583921517878618202505650563731108108932669207131611472919504438821638354360725204804668052178576025507758048746679990098437876184276442693918256173501845923120194771497226224693550888972835162277902065156503316010201120567123864575276948225490792663537400239119040615943846066139812590531919018109662214537822368610242077514326108226008478855680067018319116475852156764668284743592619150503677498773856530568756535352987738387972201861833561729128782986190591169065683409519617706212058776955894705511594504316796772260386784724597145227727830224278440514163846264385181585570756448015738889658431053632029301599672283390894040250978587921982045590210980947923916922549390099413779657279135459897542195273017344199235101100329305018012059732392915848275748044112143647447197747216341886175407037291654519146956211312243715370296032678253754536303248076203395155325826096481842459594841934543193136995285972990694910475627278087829834860277710704372031789724589555985913179017591796969586137603855875389230575124362362258782497553334754034758102185615540526529436513708103645837238558839117869214928827488284403256219498071702514190060790934419296350533189178283785304580396756228004278684881287759758714430550966175279275763025030212091662083467960688667133309364265814621037043073150564026441442664252583011953653734516470248120782622048683740046282791236848072138397435492919476716325013725928886612865594941601260869073031663421618424888577505107244816739289316384245987253838154112933585146007625870752160473508856204594656989807643272452230244771783357822044028347267000548261322393264070429903461320576762660484542537277290038638490382771961338689913098261002672859140559563228949375080266833788385808685106266332533909476653229752825845260936007225412249688962442179958892432176081440970990239512626702914342204304228422120891418453183264714245491765061284908099271479171637306564670209115702850921799693346351984743507188812090316122352909516993016812029931136927457506597632175217920022328322178617008749905657154796509718295018202010663933548511395583788249951431269628320760743381463373213124230703947418186444413555807982698455547082017095768662047626263984268648703008301443502184612179716586183614072175510414530433092759572004342469200761505884267256341811183491298276831631595740710985727398923617154988864620682602604705793225269292139397447751997974098057942847517904795406803992809272395568563499076439920774734359603852920588872660837667796312115321103043718102021058798136621999812289549138180540432429346739519988869316489055734024203563340265143201149414084946440141264207671395809595514159101774588120630036148863927511033868629491233266395972036505295858937250711145986847901511762364900409947081942723087446964609226436104702544524233313904424434287827598515656691388076492857901276616926066726939969426191268417617542018537182600658065798459491910861246114280092469832113218895088577219269297666550772531642153050204224464420447956013455990933465260918089911289247139556514326160427477466711273672321058577511545348326158037554136332504875773930149561587632514075105308763940895973527025613727474655037661004666961233972000748954923339089416893774460327402436207234046464200361633044505144748339741988404303972528739573512257782334406794064165497601157607768247710898030407062254111060252713076214914435190304689128890545734233961126392175648720294543444727600966368413499811044377820089800307828468491582017239335559200880199027057022951514345061101818680251566502256703667523534639981103548635507491705156212995950830391645047856263377607809262731932511893982191114481315148526557400187606618808456682824021876056800562588280522652513187772420072841353602089343455343338906355891359567898748049716029002832652355765276777177879719641095057229242960991391797038249182382616061456181729065795776784163994973413523206134550503238170284314065489962939188550466476182524640044001336299868841747563144537546707125486694382941465500136942719302788963008035131134592221226149683643589735175211240322823503151252726550467524704602476226053533261286797456521027482312699181264571105570251193617331085549429777723601599936916149301768312439255561372230180767773969243924801364087740247806362504903005555809778393808902302940484529441072923817370370248577692229343896384026624662136490462176117138163851760432326108831829282823976868308172708607062920988395704478306832334953937757912226624676197773094529638519322669796032369731676035773722469537045423661700359681965489393001843675251595726306638147769601357420687589577509570302547701636498231786875606470500176709058841146312797759586424058230325942186696903200576982199184736761609395540521141680268781977196553498244631695550311978059869053155854137921963915905632923987266851055506707368124903838123572298680747111048739118119720636380301950745660229604402658770945277339314459446712330246420422795710319324159421477079140914689370060609734418651744580369329208302660790040254550521045526871998798074718039279048850401694813873339329299824046424337932533475105545097374774334833357724139671132342742247967090481341474672577912124135225899941291382146794672456794333437150276244222204143994394808277937167945258158805035781572145357148598140833256788044139044382048717559923064367059866889934338472127519824899651554603539873942656224894080648275039346440578795685121208244810278612218047303002586626477903332290192931824376377612004592426150705117389612302242726214048030115969237041515300095662067603192133308544436775952618409313338643030325449025039433553030589393952300164437298115038152056342373631047442359638668031116048502822217492769847106781356301922007767063882445293065390805040960875955706433091617948240270882412118216184534678653095988953698898004882905516927335065707153334378121738131703107609975180509466480198836394772322725906186739510265319351851118037923292903178586828063554875226581544738600202852761402711158656048500762907263747637166328158292604825204421297243059535962067874862887000254029146222890684642387568169312169859770855897405150296284326699139530590822262900248197366565554302667531987177151368467961297452689311410788046804803383070945483890001337219294593748792445094884799577009519571810569562799353854080431970281044710180897950481531683249472572685218346462167615438798675563417209509402678700506387936560471362852354313845708408650754924684875718870976052141657078535143924623092890139174959568232115363102544799664865662407993039002385132790014789303140479985583538339934897778956296316811967139167808427716897866376468093551642847547687691965262669034378949825643283918037520197973257893943745720633047136866082025416678240322696210284215609603419193573781840091484546397421721328010580637817379330590209823071298409048167123951976785456998498338052338272347892075837829312699997635711859069780342109793656309421477229011546570631844822814398534164011347755752863873455835687484861171528534958455124876263124889659196236004678443229335020225228839214244272940473538697917281810320066274022269985747754868167099058598984618004532547998483137515977914549677418163391754082985576489832174930050667079593161835392010472451958597337680856656413445407953289672036538375594240748138189007169938866192464576589468351895951485002637566965976499546259055074322829485367610952444147067007215927324405999264196254649647309227379108167118383093008061060790273269674784107332107290914835054113938447686129861639986818551743579040481057714859307966606211590145723218512514527392026944715480069716748741102424482561857180727642567870427699598088321039832157189134132015625272153183217649079842818463586840402337139923151250929641246932972198129605541949326495359512649076015365471842145646919044789052991000388610084779788038202600430573607220543353741571625308735595925675666643667360538966418870737234186890900119434138270253706553918590698623493334507726305905133623788438877605434797926296079687965056424378041395535489957755613765844773588198270701331922783236528203504009539534547535609054194542187951463343903150785895835313318409854184010504263601583009495284157595157265152569808460160979429412148676172805838705625756872195005755382014596120602893971752192492476170997913383885779022389694209953176677396166674450902573880782232241527974552311575448139459830664391258980397990152722767586001011820795508618873915067491109263107293219459467983794329374337937355169043336929851843276900609380211551956622903215322599779908020007132737362942628191162344240261473831773007110850459313778443355377280126558815020679727049008200189792462105513567305912094137363803875193560931326247743406358161512135986832813119259929007880523813688899391513782696253218212973898482619880826247194641073454794822698366699913144522851762573363064958248469176760117183489539087357453824880421675819247850339786877921485558906802395129619732613444318048101997161930224134346657964938956055289541053593541127657419511743853952503753271427646000952427873322554463723936045611226067527565840131486341893010449611780651579331534348977328404287224738703430445835198317491505437217867376062136659397509008071414046610785865363191681581928254425882342585630076037404188971392651710097294269375915744293376706475881222614440207626273525457792954539613130455056385956168590945989944254744926087944123177736350572251063245670576618849268556445527852792185581565900498087712489818383836039985988117425152935136187650193993448232334469272701036742506862077515467780321443239543615686648158640889282048429014895287803082673918345764558503982489968784767080354273689528909330502557334649907101765500024647033824164751541030949985904872189741867489241434316400616858000108273906546893593301937277211437897690201317575581089809527446744954854326588842938736149140033470138933952963308789842959418887410323315082369728015971930488308577919201551165352211669806107046433604099600489772100598719671510955202042072256799202718537133880495795929937708975285724599569381343177163006752294796627967457158971295708498312716268507433151212322924525665809845293429209307441493514697015490631086248972580190101412740325779179460395263398407822295952098712400352499813641116351827657478310481295699907875486441222039594976305845425925585146705889686673952576522374061867269361604179600765979119381841692145533695411680165599841037190657881382418300223207458613192440309346980221819102984366040415562829206423440414704603550817920086140075385501998405198376700394625126195193273112556075198097568310243069483362057521870045874539288930342553952125301771376646542947699412287268542906644146864623012166267547463780305928523231088134569788232853105443728054355937781073636447931774679519695847200306000251214452877198271532432369123412093156389519242314177125070418994076214359941778803027059954831667856972771714264917741437514657440456833573996768323426454158501467202541834442836548619486242575500668761157819132323392210999596783463286558369999342090293528250300280637992212070408419129640281756943220844392933373599489631138202133307654777019655860677506072162221510655757000079889528496542612554344152970101453362481272237850655436399613220721045742742501465985380317273700471242825067209590772295151533513226152740434403501872172385427891255959871265099137338947055756395276644162342932418714216048221009164461357209418646376543111449403061162940920184074006404108790353120822244894825057565887157768546841781696992838402730392048341727872613440969282151477811834610384467518566603063068539245704959949786490636810801099636024581597180899986598059033436474304120238703182412917345621848596228759490842176696991908559755659684129865225773184435885384917575117883981883679515610105663437458381056714292310412979149070304388751775470818074642625049996906324805596805630057486927862048985513123311678286937627984258149576838145452453496427284249472922777399831724309474810473940300930423662254779865701040198699210628492166923895636003482797126466656687219246447311506056800827096597300779886292152598527180742867749559808580022240545188747717269371522329753817266980677689801195077950081638069804179914529385524497589772895963089602321260219367611568492178907418004607442440091715800350313510574839449781289878039500767911567204238407659497031767616086812866594619727819401708882167327294455762848153290731300311411897365974393404791890034004354449405702374409537605314626686529503256452371721696642802814181815605576575768165508052460568355672756399790068187948851343007493103768262051202494767366538108390818983188190498589291907182291015357943315349023711185528748948456572638208616033177923345284400600374048619761021841451333265224053790162907280142735099637074545194870895567126986571101786370100424169826981975921211440309418880178534308082893404186990499434571790344215815240714914691416469816424456858145046512324120115981102965392696671113191456053142935341348078099184410589648770377277890994113428073117464017408832924808839761714760517412167612432167541931181044320743477508645937665047817276422277624126485816482574618956328416202493024265770716705165595280749674223261304394360691980785287712460290946181767327819944166742626646876949409798397053077062957753562074471224935979762501180560586617194334807626117706553775128334060359866291350121695458381969242097805614113521719242030679104758675510320735635047453019020908325142678304784323863033712696028359463921579710634015603703593643776012559290710304427483038551822269891137181474849527270281450169532984050415189690783760683847561456034575768369882681449062228680011395110445546079981355933792137990648331009958169910630040002813375446065873345399475074830370512398191404666682750400467502279630574738644682220567349390130176148113487253817629198037170145757790340369190386592317464907921029428105664474425876027502532275743585714727418379345687721541342754858779370887998951605935617551864281335473851160982905939478017137454032404724275245243149088477297490409868957138117854633868881787863730788577243759066987445902757789179590646752152350370297673312125979733992493649516524278167875830969879846748299746652762379505839559785751122547180014562573502109227651774406816329753727133917796363191853359696630748097775035923563266063656809369598037060311653283577507839172920377586538397437126067516170924714060270080892214525978307971452957453458404007309151215988621830915557655936622597242434876798222846958342194232389386171713527980877943829124590646754289903105492920931277697416106565720871399366205528101982646308511250238860520668956333228069656469219798244421323248148854369279474783126717904886528254162042063522624094853663597327687453395745966022456844621245857000069916758955208634935532398397858042407750360254371160906140364352152064891203343181967463082704190067932996438591799700816637065176408110816850659018869327056259695155792167540194424216863076562422674058598357787735951798218796556840366613707946100212105195657160908585402602900665093378960087957391397619287646879147401142608746120844384056991133870886237052392131232970953224355304194162308445824800683724836615512778166724246047189695518524783547490874022561946774128366009432370031344580475357892527773837643352531186450469375107086904090333844391724848287372484204150640626110247170423051103546377407181117942240561001214789734087510040178804542239930476006758914574888021444985632914462577446385653429993687417172562253190662173962321706084863321222919887311921338455596263322931730760032525157584326329718794829700568752408145885581267738342064609908973263394711891495000135580829225423979454235352166078569403511636397140448803782257128414440028481844379745242583593168177759371482421501886208323995442297333867837203330926730832850290872556484803177880063921216963361588329651214505758152271546781128030977528939515748487260045935191941326887471549189979592202107319292539520977976323814391106152787533113036325181418418881103186010604594110619509496109908887425260004646939051207514272048673595608202810162264495954593700487049094261623534647925474030007257919170370714763698371312463860658644156470080636882859677942071402894921503138365053747042034421345450500457846495984358079402377856780106626027482177867008719951094088601678511497614301233586383369680083602868547964324403375780752634747133082557388211924609217291803422127879131588253931054751964871100729941663000175030042555396715187823599623930205437160961655905664272402249610131770720236880550013937018259225088534773035754747296529110899893212885044888300873001947874900798176734463132207348113632759937838834505623855056937178750227505214586788081279975867932761456563296934487596153043939738657783706589907605881954492399890507768515914111193318151761838363448537064975573488024583212744711976928437950856248870110176893934855965887032241451889612772307628615912211716001701679797368515911168467336453866594345711956176739990483013468871249075753005436728072482875452657365785996488501686301225718840923437597240586196733933579983822755545863618412254644806257064744372156573015224512446717487618839005828564878970929688530760766513034107416016746106721296881636961155432830002046761747062390370740305411989346499475474702650312277651733212617017817161985863303265350302290173885701465939452759888117845291924257991938082286893928802599323035527291483323593711373288990483139083947218896315489386116721399656594040926169884018292890538644705716502448008561031758081237941435643608011408210528474191933336840614708527391796291848804114636667972940070590603123759070463763007920930182639040924707480379286586996692191731221582816569446256618380544929000993209994878400590892767066452702299347016009522874345408544346929786083971248029961814643466990966124150364371464299292309398672973808892553770695901038111880177614874621188591620692873372386978007889814118202916829787916224086879266683844957557035966655866796761388092088481674618633955843714260036735371084647943274498953200331657263508113031769140251721407197311673384097332590646832088625838611682591965603688603599655268974203458459064288720468022820100516300901081873346452469431935663269053090531863127290798270682613390393016120555746710432369967281500732195013490919240924412461255381004232293078015929996789668990666466966112710659573624462590897036460996423466619533041737205424826042303093489039120295568876141311730739496451630120675415391549049271862081404441662264617986218027825552149676768604452700984234152716100870894613454179645485715690348498982587598630089516375309514873282538798314696055429369849543900168097190832481565907686993730543446515986145201944649900273406979284914861622405228188468375671380646904275967780387936582259459264805174624073852532915309521673535936281486150294052639617108025921547926755864176748376709343083244918864711060878488635463105086804773529359864694477904894873945930257490593384476321476485840494413467999973633813940426973018797599820185650897550831844844665071126469255964922562362349790861187163226055996747271062473704701574755907387144739867749644809869531964505999459689983147431268123554953367160921224339381435661764142056424313293876523314176873279007107847306121804620661921414531642489130981004185216314142639600220680857526289318109961832779284128784874768799029271984470064480318759612299920691877663182318223142427830230476792149038236813914985018119042385011630444328656279076395195324036315556123073942828264252023706284737467157059244902419027342424685496452395849758032758253661752890873062216088027658201763843918395694300574423539535792142903932074123332182233772762165320472296468230043383557936424203837656537862482900854349255732007008191206664881201968583979066228776546168792889250822241626911465041364571430140972723172772893393421199596579309999623722278372125672079438229798999672935070427028204682881049323030178784889706814334198556194685547042472296809939367637107542243009070451142341864082627612104002306231086312751367240752391719014676581804201949442378788574828701741597156519208431016474681839694102313155412886330098637056273321468773060241983516432173418445092833392891556519205717897003189035631985757688708102012209693785184742061594472982392617329487590814182615736288311836321595494167731916215778925009717203575333836261424608512135294943277340316368012416955389626803548052112647279313750680602970209648110774570751054954894039107321332415769843446976359793207992119902800113138064689827226300722923821396936485660987966695172930895371292576772636655754896552135641069367879636917059632248800364616105630758918481781676289374465105840726452625294799686649306194167045948804381429090219234123740709174432597438365464921634614692404633034227448933057959591965323043473588348217675229807354413979829006774128806986905110878483179715233793682815664108931737509932086522602382712531517897457615573076516751437881680878034762534140811292384173036731333594261335847807060754130450956767527945828191445343902413761563160505095990973436608154338236522250020255418933592242925753798288972901009050116738460431981562541778071625442394305558247996485322293565408234778653274880762975664722737483781105538475946293860324376159950544497046070115804327960778190634950737017408450028531291380243983598493020726785371126486449159284751402000099758841979874284551635820456107115195899770960345673440413379942116005734423944314863510034717668733835823066297645107819093656195570867760110634680254206913122576444031965938924779664197044159863159218856148837753651402565918179886203522890029970869687854142098099421556549133285669719375879361973871670250191204950160023932679439309293523267529472945026950564686532437156749887673805862151765557709543625428596048300084754682299616919164632239747683715167513478087052508905058759502112743082313083162444196537676245282130969752683542521503821050185047235861275102707295354913476961111722224839785735266391084537600051854753171067210629305817517614646790828186795654930687339380477270736992030904456718983222956407493010502323458773224035478141521347323562186417705987108592308431765501516846642610399924982308661975734132448753914725891703661283885324360194813798032123172381601494282364342624289711337958855745419760540368375334159090715960391830259361996697553852382588045268492096106601855751838327312913394705607781347370403051964809287821504709112358065684543310881222287114575054291585900675377604347085054795543954435723833823857912948324272552014613097087378176538566704243019992389517885304971137324089874452605512109856030271164222973902312314128775717872611336693679241448401619901439155674237344182217342091293396584890106261745631674469923250084270759585440330115714014088600795669100542099073499826460308699075881061282850286975767417510853042143636355795550768357382365344958630141329687464269020034174815310137165069647610750943807431425134588869223159777898827174817306543618966377483914548647973377357606391505781327386112474215731185555769410070293958370723328491223905175196003381315862806604857479947083883762773195364164936388302180121056733884234233194212645590696063243082033328492852783340263622262525278872561612869141555274225233627452462293485868803165432215855082010115093924687941102375739004350515787659984078327662844982109624658107497244364279796323110142003887855242923632659513696009223463281119929388384752825436449453840552875058347907398112437477609287239725099978368550012749511027033922393035082326906685332861500339927994267787219139250475506356811297242088532046408374559600059780281597947571484267902973348930765531394642781797560369789334339684008027592849252554001366976646295209610842233024817968804098426531553405835856210851653004260378986421208585540746464441280954681893454748211947613885710541096286960993340458364063007938580657970297845323641339527949541145712928403988178933270726462815512633253534029580552946242377973088011654299864487414282983932274267917687378032211917540599362886841177908118737723843587699073492125234222259915944603190231138249942855501535609057581349499258447277647102695556972999698922789059027131949926166148763682548159981921696552626910175720423909013037527009530830312870000889622135010476806249191356824803024288635060103959226512552890888460979969275856822697732991096206032337783644933821532458816993577637900173593088623748844486656964807708238486844316149811870443084891550358683684080205696211997552691259124592396087033162991356691786819991311997158325435297174491301465353219352779281750690984171443845305595909657079717326724927221497486253808952196389474759462236985715553630045181206273862115076303501946977999268101412888961995588862739779546848998690351780882295369379064026935330369949052414916027208080323715408093898613755931663563146027313335277216836535546301921761444703758612629551288115685285967085665785948561464497662510306616191478794743224001076141801348197183009391957042669114567067974317498509426051441959262677171625908647646197488165056754501340155608005717766253960024928970006678620360932791370263165943652842541793424067047360823672070538043641573142131512397207842853430958154185625051180189441821057156621825919613288918284042978412032077314539362914430017314449704316927343339221558742095283594218128640721097025352915179792715160626753196212884737355034374006532522635475413414970376457206200627026879723657089688937233531705350690481094539912450382190267368487411667161676925112249300271260216531061887344055816102685519262651483915812283893580045599027292992476518415898221313632772761430739285157662884692788428165580985304338456187553948173988434093638557401999154827808008110014365681623079054792937439806782569460124543636547380498414718185241896777214810490032870594702857485286379691896025355241605791888243679955191203422645837542252660271762604688835425569341709209375614737315872083682122974498345011559033922402699352007358996828248421640644877878865530980909415809872350934029401426732467511127463573896799954671145173568773938774872870780238331742472951221790544046248743525421936894612030295815842921901102650597120055746157284938009191661160674061034538092167083007053999969226462190548957818922601083591805495710358400113048988817414339694161621913193507947148917159002560002149177674162044780774874442532073446791543784230997056148359816003535708186290237684806608498991445319278919891471181751526637984668021262625075156330254396120470828957489706814130896577795078152650968920781186608382526055066024344645879850140771606144819676855244913738963262245480084113310142544575820756405607235589310589653384852070112423036239111179554250233671288970741307955768638092016823633547825314455854206821669854433380057425496590096913401234327851612113239778805449581959399321682420941895904290852901100364523792335029275029330234461333951383085109496202667382931194528180387054038144046112848532405871610465836544098675153608584123835587760148635783007891685800727633698522188427480334100923184929341071794198507854133421055607904597944953435772626322730708860968128928586361294796209308805377031542367324047991881038203042453238637291436601370012248134470123446060441848021587694179235817849215971582400831759378329380033937897934325810753251816513102375450791149447108576412458355203343141977016970646336512972111043848192120623456149795360338322404491032243641743350940055522691955798342356018648680692250066263718447881671647452488700617854174206218154366671345757926249290844479772096609076077027243985371351472730137985446311631837074125238537707469705738631407586478163968768111516569268313198872885708919518690996391985587424309457893414462216751908964956676576977039010107751047400099195905410505132906467247560878569499743147669384763999009945334550998612302221364425843202211910104318442001801150573924220892188565086161170530963869318553121755362220038075515256186132838728418074021105032669928962210823589087018653255120245065346285324096154434397231152203988732077708629516943887094692158233327254231829527547731394940150650927343506828270482713113056791551750804802627396949231204888387877645297395598114740548624449632085073686652846311320751717016680495972037504525715543071789298407153701408848604206867215877786886650224800641560488984128556747620348324183174826635879511658468881973846002422026665342553506373420524540189087109028610927649512782588877308215346437148502038736600339157052347724372578560569351363581933468943489441290826018350133741684504057836129786041079153763686021463180652687224109680991999776390930556673868860829506465947366802538081952644498778717070097100083271305471051372871348669646013684753861385231135185735717863681240463075059113139868767833731487202717331320534317268406724394913720164236410507205129368007930510390263447272953695617818687844490933842120826356408875372540510177456074517834795384296328969552061705668009522282036752200285446167194552969354838610566072014702450263595242288907450038684800172012413424965835769443568149414644199859135029919129793208825300832271115083158976249785530414681383780372315602152990746798465085656266562099434992209380586498844357526748349013958779539976539058547066759446641031891026317812466553016598333798201835274304755634139927112766516198651363626057384610653718182445454514304565879070579728261381733302527817131517369373325382929032433339982825339116671006939546090145514665955997590394410029193873652044313096106595208476125745857152177796124170415329850830469608102950994308241204836494536211959289727953768098739676953119803784753596025915522554659328171234224317179439223722046419380692275391361439235309684994281766348132326751052369528327025612071195330702594743166512699717949513967277862859255669370251631459993964553087028882660990777085249502500592220573461025561251159787038390911919645151916364194536442430167366139840892673689873902528326425675287908953924723529848271810708346741987375012399428753332258555750596461295577413983422066364173177058119650709714915000320390249967486987922147998307778718799018267360049784509260256751132515561426076260132892865517876118691102535378823076916888614600075303897156603363502132591323369351877808452174804768826185888029590743370024582422259201077396705045641455950410773086819207585826078630579045611827803722201260207465352639245194541856151968144917828762964526404400600595224818803541025334450975383787204864068808238159283490359165918622846267769481514930685881717233117349925686489178885223305515791782687392509287138761274712709908247854369577872459796463589850123777547427513226353183029211936268906917038776104317422313719189131743541872876444120857949399820482650757341747845266364316826059049568618790254709414639560085290823930705503886777415138523131835732121254939348298445726463018678950951777749103441984616739541136894950234369668606064381307100923771079617603260518126419530358796564110756532216386435339424794142136857876626623636545613489469827129761839425547064804626134056825928798998254424664745994257499490275341375296377958410565450814331418179219683214271319474334778612294343577387549688757749152188880152724434568218344878335383154748531528098231088025510722686744843327159099018340313859703690258776570173976226235807910141067446333761051190152732283224155558244926193398750631607722685684492006548642713646095438090956102712336286805867065160680835494204708122767105525803614250840285800262750749453142691907316144589263945355670329366974071287359653691965266009844919277896001812140233200570810195013037356295764782961877136601816131268937194909925313468494838817962218811086746100572167697003986494957477882066305947346948614202543092642196198352127813528954940894209668013643631513398318893828036800311791435705188761331063733787893150765739219106493809893297272108200040499258173797539550316246467034638256807723179111863676426174565495840753496136468515243696003801435757865667833039875571401884829798285021003200028739114401780340186819209933067383172682283781781013729367512641091113115140622499549017451674535425820781508334364207785827319446030963108377251016959465837816268430346729793368416414180481988118278111857969593258196206561008016408793890040689584605433538397965082802390583957376549069877242677943894051109902777723496924578341036596667772789211226010252643020714769970138423777979834843718596923578781874662801254923530156129354407538301926572239039803821429469405302837025930834340960178483787127743345310378527881669330946341681700959552623657396965902070395778934744443703866904112932791723723383827090733747148129152497706210470589482483020295901333286292831270349623617646199547035916290612608140997668162285080325341333136266794406609283623483648047986210691053434898198557539506411159858654764867038119920176028437220791821218744616272703988149706694945695596323679808699713604766909259794851633747050380416118454559597701377954899329749038741512040756544824007941296723098041196066023809039103194619653839341116242325602561061865792416309647218845390070715218692475407157819490422714963736403499027272068919947133036856115313216227963747046218119173016870101766618543495345039249046460415881776072667702905523159685470627080547038932077113757651804025933951232778429487846394147560056602288327044221849059540072649831546815532209305088844373521795442168489569111301049349342877903710013388513184726037489922036448952170209064456359841770632371086422436241498821690727940311318449030382611667334098501892867771481849633786054236308062982797293292187503716949130820446545836321580060276824275188090582003999887387330501874816544081264190844905802691147545565059385771654100887131712305345200642695126990729361948774961936553757814352407310036626532659659931548950727298736787517784552302241999826588808735316890489332336362849585103196798239809731452953850779477089777993671823515212501963050444284309816627788607401670703140125077474685785105454360920142473859394444687628473790778215078380600697513853150349508586707325995700368789709026386475722965779066102817635367999900188615773812148386742670981844661846248960328553584619902047729162212705911802225082795387785459823018977316816632368446891849238262868545551141038845964614129168077189871656377060894982467802625267326402618790574287323771114797997246003039938514646000404744466789438468608611389972767430042601661889954828920620224695393423233565067602908659675072965286739678243906066244996359268790659217080191078045609549028942257155106039747482203063458284565802336976461856585052088558344806803954224570553704122650483488517683072476920630236391080971061226399112881601208985293949718835866651738679925194176744315096235177862676923245622560559552394539513771509318971716249235746828053325804010485880438184223354249377977716199181851049509516507126323612072951364166873673490680085240303948588641825456687466806906702016296409227178576369833216847882359443075596286746030883252069702608681626690236628016804376917648358902595770666094383021876300316991779270739426306421738775497264289238953664481284621611476339224785432545799877474444352201903745055761739274250159074033834893386854316253109384172677893101427927842916899047937478588618337852817587747231226624936819763861926521197447504800880661733917564420407006488094437909702913550989269165167684753617180591802622858128788289270131639641346264725838315513549260912550308486388294857749609628346951390026709320103999133616682787510361421002896223245926527425929799270021975777156065861973852371704475180872234915847015712613410976939927698552443144975174351421382337327129868916704816307636855873161727054395975594512548913074252845101896456102210424883466580846645588633043615264643951730774136572749990119033028695836774740372316911385457960293659057247263692269254092776204033327758070960468599985476192394809678532683146887828547747966144220103517560944327798047291183978276773807596625087935561812440169411193936348413082155332782750125601613491764728476334878912441665795881826448941424292682329319412394248619909226024661020202509284495539653158297816786293148200374368319099341000399164941901860712277589594718636585661413485236234841212025843559548733811427859785906686035465624888121715151782117661348160690017101779120160573727396453702965967530953877003748153144289944680196192649184751100630761908460925683198072256496013339821104970547826271866829691345607509037723977934986091305157127448887160025628203071520805791404988238658302508062290123264054248692557435536792104362699249810100092770781210030230187280931328611475848859582367956184800593601199860329154823505509132990012611937205998337535222485951092035707044533652525908324193294723266998508036777440425427450004188309146178085285928560651904398799891415307381436014886760307445750579425683367172974904177054428602892643514146205919797580547810989017018849606208233668897211905659517106309980412800203481063893520657508060028648370839913337598988474199382637955482603329631026405574252876457065111999369770662477820061980391251689195942178468074638633825879224694431469012706102544089087353573506575842993572222241757321262522414916518735648026966795310064210725233429184519067115724232959976414856398902226165698284763837707672321341848270146049624865179743725376527231173093260060808618416787198486610929301364831896993909493568091882303598490996290966322244269768863060067640551917297242377413696008794587810647107608950245345300343238320685058281013663588810265262842941487667983582482620798980654112618911262027931344904953196951884608529876872094429222194284707597946994684851329939673555176684305155938733152259952634522003146152832557487236209560691892160481706028296460661046169402536616093142659939200405416394205275609503535663885821024123550442615453235355125006120623801403249749811927673152674260323091239276684834912238458223699460407792972448822858193670238976398606002937003523543276545768729370855259616402989124812298195822998247192345631555585846751698498667071936941570190441565475801652247081779840303590263897900075595481462102016398864681950481651136165597274919919465063690102283331444793789995411238376083419969120761786713506032362412625428310912156979639030845179286123355397613883742098157542169704006175253352961568001511940008625943700123976295146536703803040023687480935933833325156394181992521299111936235962809109528605954357086375828397092532227613408419015930583351437954479248008999611056459544746576460416848621283173862626497361547127374311769567068601682267514844842445940007828274990844517684011448300314851681968254101542022193968259228811380713199571805895089942095385606307946905625428528726952861377539707515498008752416539841509309033451264061494958458211540323179594803949734914084225725901237346123012768419208900476383061080921875205436755482097188970971024485735505967901052537302841712008690055194341315055295741963999996086622447376747021470850115344401388497045418869090987784274810835614171948582446507528507335694415511319772513216012145838466501280153989426435280854856112537184976000179733486610168482780781668439210022269624615897400808603952814163338973486978527633389545741547931551527850599203668213705199779349525916877780047802077153097505542281830676120497661072641176685290960132724679094328589006014369548072082244312813940707688786317465216117700675350541293274138109799882327008634671296551859720164495579453111815689725554702184724526398926672788925497635455310361852910542155800306503024497786337681245037850120925196393999792502648946899743569150309571029455541199063131835690319726268209896533740420128104335169309887671620895962056690837964128577774755888944863517042938569472097934899616984265132596003959484034286671544923872402854040859976957882423405025426245784927472053225629209376840413686498440059858467025987400096279689293184729095760909702325734063255971288606382742755197731896142463624345695040069425990370507951804926969491165210512716012176828910023378430652751749495096348287686867665319882478687259895428090975479783777485183037016105751934412667913221339610128144676215180503310091000307576543147962141994766071997948093426228268654883687572705978566383909619221384820998428940715643103637970776686042906356845629058603636194125021362168236707570449154151402610000021053389664664984468097001686172499649790128178644240992886208999733407201899455212009523248836801081822841428855592569266484774082271080500904501590799063525548220717108276357374380441434250764762442498452704081723617566563431841346973861957571937892361396301174241026746886939635298969708633888897493141839561761994606129696358694536842990024074057597023206273740833112665935639636142371662119589437137690299763663489300491795033677758583063828525856459603531135362014137892116498152618290251517718985223126949939381489028620579252292148126668909215396647246904388709159003520184355412138251309928802653303902711368344679928912545837222950840453157799899803555105511034661273816425191990790800509206012988273867295986465892711326275127654849730947839080451116263597217601369985605567590353461801039769040466219274916360924319344195220957047406670955938156098642742485103381228066062774113901436704270253464563408292630719004975711306469395261360167080213553731865880115839942188616755528934819942123154560160143011391285902065167857182633360074917333208711826052120183406119177383299463640386974926716343062695495334271991481673535934945442946341547008972083947258731586640736701864233626807719362214794142371701203029430958509211417312394595821270460790059074128006550262625516683269268921828779876163183248120028872488715996713298107849371349266000389120505880552258803972521999677651733715906332808144998679277419310971605217335973958755833659023899198018921887893017112407784766678087470869502096112624504589930776508870131976336102310472269955071964236206331345629328333020588474198532435868376112556153245319258693461232576633918146491816331300378681445018337392341554236247872289340474725675694735237435572241860853752731825149198417149481486180742421156463913342519359141922274229491317258253379413339735977359693129682333490273522510411881666952074646306430539995512978867640494249985329756837260799322462477148735632523604109810510435932994404438410027774467016726266131701821050010118678003585705506601529770265776404377777410718160867796671685119276883677860148627753823131564339567195421932994054693375323766207608360650353093460933027746424460458817970728744231355572718259710090658692009662431766558820187609084107811620438604416464454807225012707583469236208110887184546377972185838339638026431688759901956624838732956664953819978615687327961761440941426936880863625205556775009934193684821745332386545866213582217506429509125066126569698736072187200521232914461848656898595208296501774284008736306166406981086892662819426725057451424250022524421609944845024573611351533733967788907571711217707061508325605363946214641602795281782553012670512944012557495459844708115755908439486539445548883578155561662553984301027904026578010316346455127749283184438821501973519134451592409778147307332980317820589038326816559906768722238773408197203769568598831358750597051665505620700830795873265942388002942961059029148156239855726448103128322280784738332134895281608884063832716498726274510357190845114698316186008327903346153668172906303279801689250889181926820167141225176061458022106766118368335257894671058241480099796139186163438623718391170726135250780148381551319239469335016122686526958510962382020974425355495148195796111216853417549993952089176435185079698411995196526379837868746294551824222345829090649022046250139791960162213089814115034474138492341470094816981787391661292702983573096377057887537154689328400024547295775416600354445256694255225680719244583739268182765803393484795312235235991077843769431159076010769551119888557206671179691362369459467898200950879527457202448301812317131326990236311007090800560151140756342501714495342857779424031983587435116984842264684754424888619559663045208126037217848397569389940983188129172756544769914495096159948463383373906830869333554024645617696250430066181383667868385639557509314695030572993026030863480123114709246666082559964071919829242221047566621981774027126507419817033473403690184615014706478062122839782564746803965580879337974965288054592625710007668473278243320767895191679843674228545087499240190237545786513741077845403535830871382870689421606546990684912984211069239490068030552391596484649804896751331371497982826960390911864512490459533340867753333126714201008452188177048038707911539774246878193912397094600860920846682494297184231563395808604517329339658434280350891460798253647227751956571551844607108847945010122055072927144103200859458263995178770955617834167815628999921226647517647310719683582517477396098873226041063569337922152300949763745244603185429615573513687147308404715326171919432812968115999666822355431687335323548224582246800750662955946607921832715546890199671232049049213090792730744119577158130191534333471814731337057856238735372907918517603792773495780161287776948024326734897894526294930878657248766418361351695633966260468155866101860844212070425575699067524426917595984416064903509343645284970542558233978121822831898459683676882374215414685123342219681170449445951849740026805646112816349985424149898904878838137450445803054211086262537911327086837376527524470759698814386768411084589898974101578812203594751717601401613461266747495917469569817318065091326038893077917742330089182101106036713268294204170559225683027365844471209755544863217691331267946791305759429903810469343192687971496680207747671190416799735049451532422175384525716497321068088956644285495629412776840066324675745417052528303187374596528138813569313604533584743024772620694723572714148509112186253680797528885929953561083843543616699115421677316782278243872098104130637554356572674043503414415220719949008722456458482686454989063455488649818930290497519570843310579410064904494621994102459448923549650024880891165303163595399489616327405916443176214852605397105863983443660887480964242048011100374680985150860043064065038044298957059387414214391146850949626402631322034429049030707542440175394209542612303135398119515584392596615682348488539215530816465613436732752926638646154479002025442040934160353556913493516330774801050012312910811830045743834223123937704054000194583020961843510172709142472443172952846957399449162027087266022668521769426532628208642597794138351100208603369470257711649810396108135114379712738643802611623199780902408699391536934502110852972257668303928047132009979440915419994197539937990816810169561514135610450032602372187036166340359231233806761305825392877858416941811960724800300794313817078297158643760325343731515780379673183024356770410417828657324707973721644133916704975650678337829999370495206311627738023071584426746079186936819055429671021538115416007870571776783083137662276148309839927497123437804893534055584585063887511726461523269823624212414563857004586703111919768055483164394236871573987716188850791347264562707888781240655060180185521755752968046594733060652692644839682978968591483864433255251149076373546912796766285017971740403384968523827751307726742628743800892716770087018291000473064289948127476973873225924797078198928127776072983594852510370910958073843586484318285406320525521646352280944007945647453293437039318322188086025047855600345659259943352264324617209272844515566694945932407951080573683549534619869093905774929616845431378461605451937989846627346513298083417346499384223619523642872984820639656832797209996972507318396117697120568811695005389712457378480522286334130293797928991723011757847338396806076977465722082769500751452635405070060086944998594733509929568555194523097246829386702899024549534260220497214374498889482973596269609445157443175626555550800932313516254303201885476605237400980073077499341188594148082207176437396530850745853944852681220556529008160258815295310046172386605037829451721515747269278715798346167242187332836580763033198562277367677406866379860936687437676008297250154923100797205345690788605663569796891978062337002683016651350619906100722642052156532148448925044394710178369341096625493070876576221160093112038645801730018334672514668343356333303771228761517439180132011879683775339511312424732349436981814345904514305968508028509308357537142802392777531909466214814629669548983637971790831288078787319303030002481224174380130755973510370495962742689814824520067539008715234580588174003660221876552378652726661462778775078276214418556433540794194445789679283872068984956696548581415246980678552754963882460808873330003951083000316337800534815704035223375763276925975732292736844909416468492529414015227672509415492010206175365223429552727379681627579490290298659962475461090456454894209329280330195952791132171511726976810894766163243785175489703958660152049446214584275180757163840508643689376304806202476673005480222009673214807779439443970610698010825178575300487753950745834904643861765098059998685204992559584023100399874257873748596302687056213141338302996132398494368812501161885571865115431521258272188582988729308112323292352092155357998762764713785190458259102327343179992954066346400333851135684024400607986411527504207994203153107188525565729970721644599920339880899876992963101071434714432190934029934342197470298925896761558424262155341490148822495291810041527702383748253732103394467387925727209045223363068685738672312401756235082031186087123971432323699119420528836316362521055825989707066307411361830792878759106061736522731817847595399328575397314176397397646483244598656643024635700947346425210380932728069505515842119252527737770524216250070516067661340393881343682788040495845082258412573621787032932256157516585650759828060210119050607671161612192081710487399707274154410527447770317014498349614626548092242002416584369224814509829993835591373729134733697691842328068346963470523214400319582334069170967860891689673843304149326084526490948433118149713816263574815213673418610061493667509289128796475038109720105037315986809292685286061783942612941326692738228230220006136003702836628979211672300512087796923459423058607922164724833656629517929834092441229813063296529850322375355074309338536941856587744080138262024196720753393883098684556027855961448407726152919652831682642745549278168591309164738801338347450707692568846975642091975031175076784616487730932256678140236634685229154692925022009636913628509332763889504364108277670202523821957037399927075086502868579062632216163684582840072713849284735934440455757810377429754216929153450379258477851150584480105599179560831762144751228901768623963691131111025040582006848281662461926335297881148530132274911868272193045853092949972587656384403538856045983217131043972829235885748345936195297486889769396684209390045209150490124310178442337443127749488622295309968193332339838205394323645726332122236893801259295601564419099609110812734317581146910751825543871175027278002321701542010228009195698943680337293656469525000052894062816389640820642053253990460956684232948419207807154351164094710568500698072440928097877150287938855268937396923130956216891324544872615417049458050367890531455156814259020653051560958916775424913313627591606702008997473124240290444214547558429871686672368676821418582853659804804314196188809100278327071647122854732809992991748116126403841954734272231752408849346317531387276600650456498992433256837258593276122164369999545331423732720578193832512031209442794894166387728945782815907488075878886988536393780884771511424645319717817444265202587539309815550446110778819328971407155015416461481205943706619708645737343906146087722869699723079203614293644091041579568137055409310108645040601624042266076743376548563566783587113787510957122757926207948910948746206214674027089310133205155644708111610548177594165368523331409282887846731933368990896496917647416688738031656744219017317145274426659072025730384198518709250794760180799483871202928902453206652389061073991928787320319976866388805500870928944667719860723705081460451171207863900437377597182171927527003648017320120274399244825745688991815710673564584246485234358624324253079381311167045799017498004576599685259528720607646301999292384582785792843266043028515808274183560330345854516944284908395682455837579563085988505701327515278006844667146699046656607481193296896015359432431499596928535190628735511753126251134535126011659407864361616085047868879134142353180762805195248415480051235579490893360604551444535863024091653411280751031309718599230346491897279831617974396548019011805366525200803142121757415512996954464235241626521494655132862404981060474537452790397610402972336899351228351627222968653500389610416848451744704802371643605798656316681706336755822384448453513878580822668789382249111375866288426172284222965045715043092595683657920147122346395615382032936631935415578125199836183808265127292818652217083743001273956390561337888376126403215299214975132226098748618720499209302814189196964419193437419454371041659331607904083315619728195743998839085354048240166758336090251882745663347154657581367952251980465877865536356921695952838350740362825892109011152730093925586996541348301516750414486385713421981138898829314028610911157028731167581580551077318087568972515461266187668810403144481511732381621620180181738732019790821027192940109982651314080157745081303298002471444885325765701086987240353901013021320661983254936339316762025960481754152625277352689753305075330823641959272324492125163874351816844320094497581983297731595924461442512221246892396827575524701146336055330735556394559449671547738820801464965508767058548051606066785799588190422483144541852828941207381600975872942973970019775512026445522930383927820276989907520152688998837535945262500071622949891165526121449547113687353918203849712381186736193467168833107021662917432626662750567548971780574382561733613649430745805156967058736355863265824755539412584265872857568781195873601945692168334953037328352424531093022260919133331524416931653062984643848421619799759994953205779779220419319239227625086847407354463607478745050897716651156999394280519052488785435675240012419218231929497251916522049814087015476880198047893430886798056108291609432604043769161036355703184160007194464926547260302327760122375180813037134055452479567292298198539604214085826307854700549925378169369908862527511768882566657154975047232986609682686729281422345168396559992987314555154404284393834091471530479475280430807854439100028699271902641600172766904011526511091667942825070868824504804122116290932106571084294223267970964328583911931015210596904133063831343514391677175719743610119657670719068413109078325619371613982640209807734396672676777661371781202688686789506872828928416044225129393970263918367406386745416186643366378773467578318904118370345698405191180502258807707036369210825958934948551203685074420923839654515246388975905350029834944310585007822544147558030234362576506141137029739950452238113755153345846521588414903766226531769841746661547842614517011276990155678750681113700625948814885179543103047630945747308349089131699808059776903791078405251251064001965497823990760594795778073870508651193659522077192507399424921385063660653666715550393573471780118327018587942563427526717552859802075768961294739688227656424812999397601617531183751718494480450472270442195854436648322551857567611180262664716571827225925167882597585217750202239220361621424247218533512312839166344032612737953642606690905124078372410844336208897530376580968311727098425515236662139018851706428583999171890146024060464588931257823883714299820397917099027317007744373340804297198907715012872469509695538106325298181229952960607724471754466121974894905304076732171787966257636479907695480059108246891434575590198474165069037068168760691075297383155893541843431477616679963068327459748732930207201208492779818220770670392490246198147825819608078366367370939467926038909668432067013432664874770305151366028930720199333253991830289618619137612048817330876077397818724721022900792585809515385057477726498501542121569200503787391946180613474423899784785917159518835491749183594413158233529982529122227862539089528915263502426541820970889859996353145268708885060517953526854933487722975635481238532234425939643785336347072863763856304560157486732337252736377965281822391421929706682013692941911377051347421739033950810091982736183630694754059168401016557628856999980945209014252219190156004089535696813856265271959320758985916138371029213029584139335775156700839294237268674495711967696559917887928623805742969619554108124353707358202280957579837459013899217059787943338372730490304580422234059009934097168247616611525760181048955567225334759280232448898893391925974968143814227282222186508994539726529712383771084455056182530612527942034816408551922220719084259464506919892095414069840120749277106737334797591809404611300253774911872472234867600750891833470666633922081453753435724841922522433718157607896170208692511945535105022613731243662379073581388325433150703935881124264441927422545468202921541643003517950929996983998561641672714886720924156203175220183910302780599104283146137740067689003522170432878233670434865433296095422248028425439716295495162840415769493192906710122422530167041295120189811570412122932736808273210754892791042538058888740260028614734901411397376269517307149273087511502968231885008958182930187070544347432782320050398729549572589659949398761290374294160152553284335896483595978693060732611274709136764739634609604195987422330198966978567706040403714289513386678550238302643343782029454962295555781615738355162987566074070353677059913841970681464941104577727545531790057153049963236223446560675644375721352677809015756482822219375011284323615896494330399798887087017192695150590970754293452609052299707831981547331661344405154022888077877309636939446492573789585825952812335207935903898527721229756796232821719599443391078921397157451815354548238622405808617956945804297917004720450035686656681727138947679424308144426752791589957996820077921427574031479079259283863845576169771027011651922705300374530401135973780464471898647871425605948695952972752112739068127472268437026733090167638688319132097503908920429162199202873604705184578040127563451344545519286027814100130231137655671995438964945683680203953818535362809637224873902636575394302432850300338756906595383893639663716814347430222404128484519078901540674624223187375939747779232022211267694242091745853859988472505248610451242584768678128688812944513602259429082677807290370369980857608188842922812405762037717996092434141503569693126568630015631493464300156586010424837527478003328483114728773733334062751348005353217013602154494597606071183543021314143565446119990336669774601247568550203059945845800458295426250281669109690868138568856541956847967011133880206976356651205892252539633675070387577031862448274928242227653834005656501555782984942180994817608634011827013330121502035590668174016451832408118534129786956318760661220556969266982659261707667450028580196531751805007769165031912971968203761227243024527714276279373129191677849689916217820941123915709351457779452698521985637913460331103269579363347211048093944111977517248338383483522884909125170568254573778493461092805603504765717998550596771802097490214713161945828611217162479110779150696695663018080576560480185248548199897095777743426335189625861979324461000823631935547527391213612872659548094119467612295368739726112616902834085599145735219596344134510014055764554715296038398409648007118575055836577296576453516005707722587721674830162574640741648870213780331406853742005149767999947986467378180753298949589009966823240902400986102169962815950544545239498773511557533294290455140537764496566194405680347769266470240270920527213600627429860347334411231386954867703192756997054790915470836592944848976399454695657149213547321575167081130697770370977905986100420232193112313636792530088891210074055605321426415614508156940490645374339221413136489598052979839042911500764693464439028019256071938060065775393748175731136862896560059190066165146020681494360832735928672769740453349349657801395957002004082040277703505230189135432756843750988900906539245602434152270980221097472218274770687953995590211686882958315597445532218905042266248753993475867941242395799596126067796251512411976596134421304662656820882644253952193314963697062319235982804415940260166021063796712913318385755229158595766689377570366717098633427072901595564053333936925276034618465737696413681270737527914637552106556950705070710693305226028176864381198343591203813154518603375758175369425188412919320811714199368258190339150000208612004928502143980186269466685244316449211999917194694300457111098484317493693711030565843407037132614441564317070631735074093458288798818552385848381688085151215967338812544356848686291879154384779158384509625470520673943460670862552971673492093093089006924859905892563133055342770616767607492940664811187736029463763154550904364325801230364196978098146368093409081194729982462689019917744172237514569443069521392349684694672192555828453538943193839955447073553693337904766121044781120514383396238316595063367015313190441426463469262422199100828355249696690130760473527163856343086803467566172064452394668284797997294807352203051454663611057588737350232075019965723973456701370528623207584477365894828875110655017645355907965541061987162577710856145042500416600981968429584341830835699282360190032292096660567913312204358462883796210151596781455777618722632277354727309006056747441334662281205884232356508762379158194383296064985386675430413085916576094767795024037662416344303204655467987977531417594902272112277475314918063114460941807460715085342965256035428419711832451424279744745937388649475840999197855724533864613736852914846575432686106912493827319056617867580201796574617830101435783496111212556048742202708589700466287531225107687986998316724570060903055480760436972059152504861081288734161363851389199772972765619596728908294927376934786166978286309330295321337070244651201678553005928998725200758872357556513059828395047306982253946351796012156616417509074874736915678243457746805905656830472807281433370506809083828911359289206566500208289995317322317144158112179280079092582365139316559021345299788261951778007110299908909345660140955577289187388728664481455231742946262456759895560464847084986696451416782423489437862286310377729400643193976902571477013216550225491749762799792073512206510123346285159412713977676305404543700079408874266623529110526543328364509830016905560768372464697125409856679466217458938950463429662220730360036712753903900013456425443204226849794089438793000769817379363809445430303619089368245921399077456939293133756830227426328421061544373943757124752969301943474133266740638102565836974161700102260614221993693826126816372640094340064547930443417231496535542547166938162599251118286480432417919366116626083850139507731939761686047338460508631135875272295667584122559074654735098732133151149045469774033352299545153231082672594263786708226335077535666830014649115179537032488054966400297575635659412129583894935037851251279358557413057585162394967940963665807385872710760041171578339466314535444132836846857094478277941114292687676179438573855067656306409366290415272588888940279285119030998578041712184220640198018100817045934817694401448378256536523023444407469208511922669295092749636160231946810562101233263558997804481119031795908004017873012788571714351119315453922203691712425135275188175108019170309459989076399049888716970234382655798986274180763671343850512563267488467917448207721065554745298034888989208249363937348657772087691652029872621605489465522463520296554232373936855359341567641044285148709860583557164930249570494885247635066985811377088736827392026418614267117574467467820601538243979302960052016278454852951343887582840499863278633732240860039919758736549099520644821476579015947755082626745467372469190235428197220535563452287080576962763694220178000800956515368729569593562146541418859132291295367120826644718961731495697847946396142767451251784350816186946538045877420013334870574562262993054720285338041812473187799966341323646812560469375952054450341371276317792997428437435414831833948481035749415075692187989132773238035365430868525411682883569257529100161696295813372781505381267278805873389721413455608904072400859300722738006360003576034850948635957155450253099519773522825922106931354813715524504211760856606340165610450533548226936617538087568232410592807254033912741167025403985032004612476833441877773639919521283860241576445183586251795752633707974657174331064417018838589573751890660108151453749854190436946362844346561360752747191762063069285754136061026569041442587435873481379520579722407305460213114982457447091396325782778085986920000901125952981764670969650141564807023363350172369151204984790381286094136374285847761109976969616020115338646131966194096045496558426105440317819176905706798086971278393854424232749790134073218612467182238528819337350956345595967179345167309734482398067818804127225416240754672085041634548790875683723417920836974027087035452732742400297829747799366402067101038715113328076741012041340507026046282720850355358855535179486094215167545854487265968387091209860758786186100216997538117588614127192324301127106683905973033822468108830510296264286470675343433964695668767006362722238433896576040835039303862135738373269468934405592331182054989211347714571017057538469179758210592818079020287489671005810323284010991430165227610103714136852188605542035868079441544068822408467735750768438622636962845665355978725826888629576079994273904439988009466800369741231805183895901460679399895497434953445784043826092579366050688411539936449796498013959199910759258279840327553454702286512311833464699924344384386046158092690592028484555545627597113795472020943254818214317582008369388881670252564207730378876532514292151005881194407340001075470253536200680325119035813503360042372464714337252115093511485829769093360284352321664755059828969444377186635696516818815638883464054941200753291028443406488703192762963802694661413940553059230028706375207517239282009304928104104746199972174475237923363787005146948082818441888112304200204931966460517726992307278117623724746597761588562721716765053373155773868198592849549484073534548763847570703755189624642000089174204239899514559717436900880518484336359504897934634671487854415161968054353247117490393640133721889351014548978189068572143885516708682731215851199859303694672834654911717042951945572288912602601148393493477393240984296802583373223067929694850716326164924557620933122849430765330471947125296354403206019484450983545320163629959966944982679246437420767708340081923680364778124395195522291106707766907384202588193613895944101747147431996988540436090277313211594383568093274355793125816208001196229833730720154030351486673258425104617815783162965358714647674684040138023133143710336914460552108099062955046821673384023943063751563195295542330469783239475535204961885301380618093486098806287794982551922403188153066270886144822013563850054211654058054909481640376377912811415984537272480091672353541524407713449706681351006562919195157630564674929423264212320138451438304307259782668097458829260969465961442744766475209619117074084048666047292935349107048016626210284112868212855130481359417286089770320319697768812646369948162535627624387744728159516697089170534252660796385901814700673466674540336087948461617945880242717849195885792035164380854351667695026321122138544269550910859500889084863082730246511383045806705064800217247585241431462733072322241890649458442724434853430445827559578121645841561754901225520699660799985827024368886959665074842007129611962653940838765951780256567697226350887384857016169177349508571732078545489022563399623440587134310674211784803367374094986993105664333781222514809061160180238237213213704622148232642913602601625232552122739842991628843252923896787974874630800911277401833922344336124833942584618931360500949028748649411843319819610107946720179618002246707586889202971223720784585852567080432263874273896352608669914998746392526622147588956627557411842010248999896163992148165029646098137987617296505792870503310959597423436100331615325239023547766662540907073099960115083998868652340757641293166557731001363745826378719862593908252964376387592805107647553047678346017530861685736957487513673841889061736276510417327887334297093271826761669641526906155418745074642594153852516360552325670834628677885734143515069305671366896773195690034106989532547380287631356645756228427069659471801033430140247221446860414990603080537998026976676297285189753201399343932109021149915599692178318276150029157478557197210575611032414160402169612337542976299709431521552732066058164816783800575341767838525688823800219030353541519205053504349024447545044279719738323885828850574243666338390064131741279059028661529990318475032591262437125305115879930791091231094190127244864909189681977701020459270997168145769147561901055595244159633626440967484026076694830542230568122877333619141785741571690757069410613332817594809337122443835668519432738225287841198977840027640809036419079730079999258793918119010026271431401025345885214632433589648777726750836309134041354515644883840809919815256232846672272084989680342427454177572631551880612390319789134507069911447438785063659192067230188970555866310040320516659537734326320977056576739056225474701041176397213193058930385678035182188752597281668171758468537841744014910839424980626821340085153869828584575406029332464397997412357291907945940509134603366254428479660975244559596895409062551844445779552513466911385884264338399973468853044645973197484486820231543119548009838650138277321105708421606204000754620683426097313077811077627616876409688230783723507739696514429328588553786564873870302560410714452725100552129106887273118422956820058508853928158981302724980241730850046812952067421413091037293781860521996656542268982552860945103418660707978406748953444801195980075605540338274341900681092225747387101529178281478957378617760224551125805573022501879214278225847760179211505612472202035763597378042331895804458118351617677725755200429110897497331751714837260087525704069185398818331152370857113988281959626926276535592291750389733728642634006820199353862524387718519282783520243846410503310949924075322785073397721168702823861793424113182625548612936419116650034190365112912673662940330801096642745364115399723801578773174048880412407371990327103229453879775611410008298470623983694094274169551372774986847981064715701482118041458720002173435716712662465967967501716952963668175500673631498716547494905157440132337286974069846018034439257085165495518866843704964908612250066157356733596876813482893421373564315886641828845217173534199875892144996115165664451238982315975794987076344273911486349746743964043779621047898828931422012397893969715802250079595450913951679281171735575736513047989636207237820999717759938098604649874101292548733263654862663366066029444623944988329732759437176207056404505831449452897507623087077579929371219790131846926824043354111859770640228890547502839174389049584501761278062203940616992532290536923322838309663400970621950996698145217829302068672325438408157264855180554432496377587677238023240071041019636839033969965776799100710827904295848974899333888970916348900510275395955946545651891427224800158427904994154974023551908574238283931842530810825787110475530331139895421309063602530608433633356266810331594676079311955771558097599175958637565241960817052692038552859449250326565183049757827850054806528817690814855109650322178791662662624936343639475229742641165138179316954604207538772032636711715936461665138911519519304154278459193673228777977175632399569693137669980124117061950589774032590948291827010406454621596187752207351842129316118275443238980194293924575460764997813121188557678032989802986767933505107149061823072582489836919593264436773221961099236668388776626244047314332366751078384972209210739110597353496717723932357863369838704410538793206753077282445197326244979567688903178917888500777005242738277153195921739298345709641736943701134311862423064638036916060136746388457646906702569584213831189478324098797959450612983418135348241571701924517045997363267681200366861164621408131009475527114384690937942572936699069783016108993269142018559205988825967445609143209867351857746787483646269232917041834097821811604118168856964151029038399327852168294743300181659144221429655763695018662893928830789479470286246672146221585050089123301186557225966129033084043971152693043642089450028494304235106573869549735377139192790435233371282176828142005747278629588661412173953700273027901922296161244086954249261422842540510260125779241951647670905629784801908150717178874463541674180608967838667508650431412781878364047028918741830203589335149828218323497599983770388170291962235339927236609612549231505779643581623155712613471780395629049431157398687856780312688907701841043691803488912536012361118052957392345270655687652175429194034287311390626173182094175498504950935986629728710966074287341705387214602168859673458641887134007289401073356796926008264767352064865160144048045368434199875294402725094389978744950930964053292036755503997708272110800391533060844311473460087018645845144149493449005240155390490799992611692131840308970481818451897369681103135148618996958851267249400615256611103713159636511808913449573506316945916583247750265273442875166131232249228716824722518606185546420896665023735192067085027368073422651592584588424287410083583044762532512708889568229537434863110177688333569287119812184903788240550564407512355411602870113687021619045875771208669892173414641747136660777587812139045315279980297379079973067131458664676822428398578239323399685633286348419489100978089547829829948378167038073031378286299763931884857914621569966887771291429089283096945223179580935701732236606724547897068208905197985954247718249314846110065423499372226171660147067962749684133100221785635566568232150393378534842727083625470984598119779799244419612420396261936316506954921996276482208101990863722834970229767145450223482859038803662066037730920455011278349121355453659088519726698641013425365227029982594076268506991920517549054535596358315278913276997478849605886042124569855386139255339637471687068005525645323705222723894319422802924144709205828480003952529790390043814073216990964538162465676232736033118208872753371071648584413137620947393459191693317418393042107299799652597038722365190809201307619363592737492437878232939268530839646242081934344525201448901585638625252561735396943344567991513895796889768176666346856018751126238851231143640458974508868890099639187343022197166206429969872497881026950673191089571984404809774701189238169814246204140604760915308580185160358000956451517333192571234391040476571174419417000166891019946856876771928588915425173544235945585360185892742468573492043843382316902455525377393088882274553121006396741905761223201867404090561811127869933595997153794453107771689789859482860114426620709033265279136714057035545682880071187348706308331194685140009984853767957232934654778937860278549347140492614583199824863877675477537215273332210504662973720352284746118790965179968872050888161055385049509459929616585345035778224415057362591110840758282882798141673438323874492320618089278909016723490814995607727827346116704835138232216941630009284834952243486037644998227040294165976526825240770523692911053893242543313014547204197111087552660731156498822718780709885704301659790747921915267218620282211623065762807419169216459808287949389422729386739639800900212428678162894762935580177113871026556724596451508571569846704860850578288515237942333126486582488053202379587526412409907420336648162678836939478584015825463578824306654512320140959554900637969620524547632048238742071597786124541652155967904211838734343073979139218475997406432234945597988076117991926821852694036930262487839431623996831091578574432202113963897839274550067733913653111578663034318485258006002339001064658031279639973089425140133465165986772161644964821797531612371055881731972125079125798393645296357429979808707239911795580616064103898201577782222723401062489451882608775098329829836774371107249863055941137819084928200295865578688347845441735501112269907202857694358589886590327793899715582009014357228590958206001880316399277103170701853799878543473706420780460163186173011581627605719334736163187515828754343114618709235966360451178382396730992191308541298256642188185406564967071353172366669648686774850180242133600393512617101683103652173018457677394649353647443426373053564776533618840462807710151432803625049435035836895058261282538552614618464075585484494930189692530184164390839031054382719877048148838169574242133362943630104223629348266501454304512448443654839957214334334276085993948798063789037240250059646269702274249425630580475987297040783162850361249159993448730969742259434280467348881217553825480439845589353522423532735787288108515885393452387941618705325917771183302406422859150835485352630083429603385994764081810672791097968249006259083839833598241129687145847144125865818129186396803742663322301859621088782321013964684211179743729888655694336372597163341230242384956192170955547527766900138748881984769549749048052778372108817242031550937466088276849330234546804606271138875974979686412661626324677052078111437924330111768534944205427141863148621012888946179059220132469764691561890809108169621446460427566178186558501224468134452796640126064531054377309777530295918789569499570365857424069452912338503421259977994411010585060251460966319707767537444065048344421159484707616256153431929178884173768732169801963857910103601098291656521370861457785107102526403190381355483702528502254314131897128026715734570467252281901743319607807740682395204162479490946682954347374423778675200061420673891094439632268391945601200279672445549636892403796162920132663430763413394563262395674119827768689601247177371124990810841393737835674964481336009264854851288374454068436284590691416459646288135234837097305031839760624496880102205076625915238455415885361629030589676064089914198433448946496578701660840725780429221264324588702078602084792548150197934293726580332183478180067262161078159435681583784534807046879898060739750229711262627279536350614940143543452303878797554571490248818308102678102429610850371306457932718802323505275886756436146724945934146467916353600501011500342228324125853283250472686348986542780898130733660192969149483180608361130959993930368343582007694590952992409657184369297477547841634768425890254331076737246156838900813935393411671961534106690355735625266076886142061763720012457092503381022743780687199411702242784169925240424843051583920160959663086339813837927298475053012180201647045397035500933758978283940759209063662884238957640622530258254536980572438502724496916499207747673135770624761144444404391309929672099019906258083459657527902979213755302179847258960109291750975939656120837511292553322571266366068808441165390305040775976008916064777556067349466807159841205464810503519804195281810640307522035918979634162262733168565261311285986118873800574982866892912358336893225755857434883874563767500749572454601298907138546225005184622478239570359794353843687444249509702628208452413199374356660815570303139707473800033273285160738776195084307903888880464108000503909549275879223188980806135369392652077682827579819433369835403542559260376015330378797641344259703676672213492863868647448667562335912249792491584315688461356329455873744071084935385480607389042147736735596830604386208137435669751031525734411104495439561532724146875289599630289087052275923404233878024897653230338730959670075839882586720862432155769506827184078547701955065338004093730620751837941037669245956252505162513749929144190405250875118740306709880664691343433429694165782689984960077514582847815332340343637450391746447193675519943885564290398637817992599520357774763057684686546011776288427900302891212575752153143095435293076210421237164676243134141012109974913892278242372382940095916058528012016320385705637227131102076614967436220338170032786015886897958754909236626634143371277761580824333796964152729941157436872196497585830052653520521823564841218989227302977852984034957269801988212489761474227711763009266761934226188855171939587763230985966115569980317250623693535224939127207387715450975497625986693415316961911533577494584770453328546515478565706963368490186974487674895188184147783950094294580156175439003149182766910537277400025962549848950993994448250884723012650427665439502578379640718867699214969400678771808522071445711218596801883813210299553446603430127369253320070255223230918510568096148090031035130246975948640582202558408854838991039054484858766232651277058581224956987853646021625570957520576783583294941791322106689185982161770609895929798193319591083756894858980927965723186018940982097667332755504797057744067832156680262457739838224448494754299194526183320358414066379616264285718059840544561187230127223419783543045294308453027790223170780114690938194214724314095137313797057175366452072230665097941410266355135516537270559797920767278224724811672092370100556332669681620985526317962833106859265419067868764580763848798893961030042435626518336085207981406293970700570427198770635517555331989665971383314228384039379470652619312981818706365499534727587755928755638696052295389039544103554659781065292307967726557219640981449712685893748223619653763049210583241624053226508690774681414292556668086687539218572612738645672418465504211233881110667732444693798473069043529194649064001341593421313474899869465180583042080472684691376319759751452387537671797580337557872601496845644034636715089596148555657962601960853404915290639991128191083158752250054366883986488352604311160193493386908121128816636804171936477998504176712281001015557029761909365712464140536367063087739891384785596417716057562682800375545988867983196292779048715492479685551003456030828730071053323007752973218093503008109516105989236441902420212373342132531544649889081790953505024200317359631325956841583661562663660743800976122998203384543070166466625916458918871961647760914138364133007812338597506930935470033099044866384399924979878917108859049674668800779282723683186538420508403697114572843052483223079704093474810106218793318765510753267435994974292307429433507443745591893787128374895156412968165190771506308824459280414132492759842731439690267716236917643660744188509500159300757186966692255263368693055778450569084442315039395963396541487349202550554518132529287043170333707659301772893398509279571795167092550018732298130212725052289072835997141979661364777226471855064089418044456056850387702994702100219529629436167183578944208702959291678798460288351142532258727561835495312824565569878465220059703972414473129514986112251933035405616334587858162944902277290929073263531983745259148432310557409637039719653402930382618476992646840979305054708322270581573660955113633693419549603479577693997936086515683159410953232475542214171823970961168388158155811951339281275254450540387169982705032128439767561455418421058192976713776869527013600006071131017797642557807685084504792851630389585704225858654273119158349984973210626595326521347723841727887427199670618549608082459289269211360540668292687914811762806697710402130396099723146702692992998599070469946321451739760083881176790916853111134198931032914116528304286914817028342149373121282212757133249751468190423989265965949978099671240827282035543798929250397216843574741229835206788063248785665222761593456681976308970566539752118417779671543267681725344652314201335094334957239333312506888362086448963223413579795048983463113543507535080656825309356102270955747946077197733632466840478663047675851772371199837796048361477325957394904129745391598369337467438410698719063636074891450095434120731557512994590858811864102373179715350152623302396351420467558121375070833357637118610453443488491379816336543008827409324644138201753606379791323703554514986096831067589135235920955670934200704815886133562977085412938046557681429424491339336439517908856458251971529374826909593414447272380504704599895996075412342744645206086942667634788483545683384839563776440396966263038434218568204690065798146716896041457658437787308576277530857222023551288962930323928975464273284480897141266752018915657653136704175689889045053994069427694377360930187801516631961519765164365030107881336916955106356711925344311429209593530528398622177428739380567261349393637193409921913264437104983985700789465496777192632519986248112335067710142662482583060007393245257753225716264128247234535910256067471936680266890842423184184346721122298559158233927076366123686984303462542876393328660107192650734052739432668280469977005377401158313336855387108037596714872916874765677548007926813092879174272940096621546443811555959300797789126002776935556294539903518398648250620470552675779736475370700107410974138987145690028667647521619147875411898640784173423574469450985836047860688282982481161169861771416737320540987402875003460275533262506535643780670004242220367167280657461614325678694032913213890925379978624123972160256575177546908574185724663581225587371248772288975930115345328305575089706211377380424614226813346657377255196921360841618356997722484289296341551145365543415086828315537239171291414621583798468931239975718367520895981192101420675248573146566990895456777408409138517625626143455330417583644259755507337058975180117296233044760188578005068552315934582552322220562269000372874921523789318025864714656940670581971889422579191478369841875252348861720579742448704994058274662721825948691372858070074779822083319778099387667877985810717670667018538091607613256682282842051901721502677389646419936192423753253703441215955432168761063806448786064812716478749417551112448836679346843797803086470404435958857026053957335788206905762463011345757788890611298129620910325681759254405713951791857149765987624041824033420979505681725990694622511511605966692665410736236070819572914080469749977341063057270382111256381822515459728137295876193792825711964985358490063419080686672455543627168268825838150400236325041435654930105312098079937425498765516720842512584660668827065438039773287685648670262340625071487960241305601033389620287090591350465909249588718988659653608592412484101453692361803608214405750243353140288683481880064720429743235034007020790241900113071199807522935424580635013496492834551993319030448296097796219459205311683844204865511985842568848753565227970495495196347903730052491366949364589512646063063244219060542333846802009800517006114576464258832599722324834765484188957307827408998936560404399162152474562017515625006508265368574599240665435470409746450885808111542682352112527741713718281891157509384884238331162233359366436661220590228930477611636043905520355711418939034475087661966046542005699257737254907720726376828620208535647244278967472255222072961030298082794122280567132559833560551457667802704493609358977530842477113392351270546666134603578232135107193199296025194955762529494968343263225615165857325311095345515612073017596430916189459174189209152818998662999021899647092086641157665766389672319544876738520871406689480358711801191143964732450548527180915225898480987577514636155881296513230208923854387023577031751090341892051980496683884461143339186006854774153524623487535710543360013725485130524385954680920309793648728273691212203772230084691549614916502729702455826607677721979768366904126335343564609601470485657250701710228274288823087136883982610652485663770474239648153052625897495848050837113193813965553305597634187695343787112610935412382193783106115682479436567887982295971288895114481732787299603618716625209093601185017808887211442173609281656765272582198832052375480402322221893012462087378623865704900651792775249279872073164515815592638373224725273301590564639139951562310924276018865243141247726820273262306786025221543338191618941420946522452551888267516369123375512414921732813588098430433256402517915561700221478780222322349645175223355751169630839500570026479743020268356418328264024457557332753319815579674262034153386289951461509901621766037492935236747237652862277297153772265782089819855896367951344550810109232000222626317298555434242186705307334125704388625441859137812518863274958325556828638707263161722084163984163982403128196056162866960659002782935657982072696589705353813951737650999407313871912146379048713024412327074831455424004240824359609984224610274212136522563988814115835525939419660471972131051236589045668257055238049016692905188669422621855347019748820347391708460856355643223694044128135247710118912608793308431277973057022774294267980505350805017331871599289446445010169682782819943978715717651178872385776533057750475285875789297637949099304096784314230769842859572504315342359700420716772181378822897579263521677713499765691172320879522654832853799926055493340124845734592671377012823463533608602442928892745112992850770006532603351028711275718904578431260827753480960946690354974441804680111055514248387774628627837415393179900956883745599771892923717421129879641371399139179166298219594598199100244619768393496066403845247011095680049222554958640129759711412338842350688159932720485618381668019476919053747512463563033994456483210768818404048999271454978060892809933422466006195005915379629766836600016951877611278574987332753847509759223167726731584641293532576608254158806677846434950127608588061767360489893734983504566073141581427401592398328430244788985696017441157972959340949976125527234161138603900837789332979637586895089574836689710630563285464955104392751522455763901752812821034395638853336142563325566056928475010980686890199058003858025312065320638626615957452986717589282171860014562631823404373644965713757630640577764702403376302701356513966128331231811645818706072266204363158267892556250277766501088964106571920872948012375807301171626586675301544182176346456274090999716015313759301584227005972676751935051536083124146537102672724608324950190916405620001169395939039620254935563717412601267804627714581489683647805039857367814474623718421790930434138017656383633738360094008732204208340263746270556960260283306327888753648791665569423719097579288977384626048368159916146437506996190810248929555883768948455407876205245561914406717571496140768961458544691013394278895262965476407188378298327658595949176605944636713637485634777070919819031149327323215497200736479957816574747470542411305611459318841609617141082346908783978499304901531746559785767794885800073414465733910789750100132433921626026270269382496034192679963999797972503363624133064880386639806839387573650881261482379871652615608921897348907345782703844514397976900030431180384433585391719798066547787276146928886534403955574171885283055132100347815487641403213923367091317820209571781769867236360867034334850677951006447112102687329108101460879952520155543695796032995382279176154612670546704221716389536102757375471992310059966770625742886852898828573731712365245869362959604098086301811623055784237368439053827351600807028377869562592723132055033397145079241306260094860504062522330741899198911242463287278684127670719144778929172303964508654173164642577087948694370167464053898246673110059241390198296908540202423680187501508473919125205613751371378758247202582171849956001640817630001254686082097438973554682092583896908291064973291813324435903366222961906687086104300911260714740353460853760638765832575039503431834166810688580102089061103541778683429255988912689879894697568951243191612168526302729170308331061407222253462929301141671189897740960034759855475733505718163442186028431401722412529814313009329533790008436260350136013772809515288053272985964606220436164550802986756701268208885322550835949566111672444149816540070584370535606355839729666166425406071970088871836035622998653430539858240231986164770417362815133105082850350052761136807152197929410969789455838304625599913042961748589780408757589805191150105434044787785431226016342630171978193264250668540929205849595013633185564746861460728929344836374708605880471004714602781271926573752370845983760258986318465779173190891060189966739962851453597799877120485279292033083918655265430542202338690816587801705294395071126755090179771990054410005383452574823257284188515155134783209392290072268146958788165249885937287536726418249757485304477952243830550926818327978404925387735490660807824222985773875247899942069524667080933642033014714033371641169234211128777719349044966258417972892601160476499960087876199709349121062423400181005884867903488309888700065226597519842324407915543953307630874631568319585531316936069610374334202993787246019749044819282838184915665974382520765545798293903955540405405651361941744614020207290061957271025197404577975011680041348147377452445870053105026062840384928509024659901666222205270521712482651083547273587329310415966582105341387265635193100928063505320107354316828163188845219172184977360655342213233118871151269950481762992385638978297721397646058174262548733391384272925548165813597415657547192152821073752855501594963166146258594411254291089835330589811360579462908735220424233151202786471831308697209049834443703046100924903822374423484743803724252383647156060808565025726243450094685686084185151630422131956310025108983862282701974914207712838347901741712015091798661050123419162574029909783625385386681443803725431851021492385048670351307283354639813908727975633982667366773411044919776598884498658429228898215477151965532606465559690976744118711022155804697815964204073529912437778458745042468768714428722764039858679200310726183760973983194211346675688567924390415319058608616825615708076929329234518629553891844718893486162714146857155570784386460142371626324761942558201944365255034654769888127122126636223266840021929029697770633241760454953509771704045212133062086683728384130138521610555265773776343880306587446051806340129733528415447272461013542577416625496125976352701751765442394057535302922444060191649290465754673318492179086730335179024464069479238124097479906358321078637894602406579239582988510309107597808075763015264627763812201572779476246709103521104831590638822391438692834562020025489446103819271182150358779770357287570082593684730989870724332461081335417448677059167550774373319394105059220487973806012674229702992683148446192925110716656509064425295996497348083359773254668675733762921105341405255440234728591105189994166644509729299756720990869077564719234726818746172586124651892820954221571157835877585489930808729093039697868984322550228010519840414940111832147947008914420599068311541535739647826391091506925945099557950698410054072743662107448543880253549459203362717820276172458172779208083550236173370913123683006220139939280106030961701412461184997756752335949795092557158483920450288617360756014521436342976903597802842086432739457458728293542952322174243935980865822748655266761138440374022989660372035256565970722523095175693057254864888649136490007102629819680731761208446440092506263509303626168930431160157491211659586657942058896747206715947226272472748002485435319208313088682931752596962789622571588377431999749262703968153859056866999476796723987518295276504710135796826594899480429448853014113781046608850883252841945672822171309044283392407809729658674980287378142350117475003173047716547964696770780928295914666915715942650581130043883037672226147166886967466681736826757600743674606149055747213674494875278516650778539657368377820753121375871739772107724653745964249407142372283401582812537940678610177445594738020978565571609094122953104743460329266425048751811986450786541572212202482127655110406900113090541162740942342746965529889194743629235087996078887690785954795678358944854673865951516870510783729781569977213452590564032166755919985949019773180016692947421977011912685835954365698899339251022247334369392343202697731872694966027317426547976921103166270128167555429797952313518173542493374077119580173154667197219954508429870743505352943607477600641523255718430391029838147061179174221689031422957278986194497076410513317433974501079669720538052518549563495698764910420920966390812509416283218821537360097203628506231154420020943538909798305571606032376290968442210793550800419039110956350143076073642093961229392270179823726322826724166218908676452583085509827097307624740258801211076287334486387138030997573111979555748583098563682344391264955393773693073605228770756576007150216444276340488609775589625975391167499355765738980519000530832072503567843596836418296264483452115370992353604430932756253788986622162472233930820129575600629622996084441443956826849025453492395132554166561947840329046170182743449001065342303243409925622439698710087786844192399995180106591453673678131810034208361154069481972212920234203255194640465686862947270167523956979666030932382239072106348033580470597107189573696894046532333830565908808442622300374878324801629145488647084460401055567142811015829702039095722119549470639489467997260898326356909572744390771751191319029606784923464081694070640386033262716627683824013678662718283354002831080837008980778277819701074375158595780506169215083946501634125165937824658756730059005950152487532703787754271698534606695468779092360541398149824225649179298794416629257666982954811333320098748848926316965316088250018957407447277622710521408437020248156045957849456777699815268813072555713849525015987944573371025030877149474277705682979882955355366207863339595656820397373618408872645122952126698351495000076447237994970301278458383544351495266326676675936030567195583151307414660074153515489613494609745815440898242075071508537473759199365839320227721870257303236092898566078277172560511668306139486141120330132189804485264210608660387607798283127333903350866759984611233770151724920318608214632798116125519704952595292465969581628221176514328334332108449044610815204737056497869159901602125467983821732870086268862077366339919009674990527140963798498863007990097116453710543802162458768432054552875251821210980614306348651847670216491980402501062033098447023448411862603367198220093650025873587094436417620656086688309438352423099126054831082524891505851028059829059529491040147331655728022879157098079162229582853855216096038025385049575917673846334483689799658514942114829418165253605643063150478369999932576210802505379178825866490240237259151490981938930765194127582936897103714758850831013749762711110229484823055431187197317253186810912170130634487900316435671700983125610726051154070343611042653774741497317960705023960784669294303877819779340631299350284730111583689513135516094913808711089621520283426377397924815883197997651411400699733626124723404333458308230474887715550948926586659292797902171251053983511338415900176474614280308779915928965140871345954996617860691568527936443989109205827832369539676100527442609073847624922445773440887037646346450150254934692722129880687784352760061007366488502731368699896284535809619405339637674070619717585749035231558763453950092837146120290527552655842136666498286457894821938081697349471464516517830858251386397781699770979170660828190879442500724965087224159744492449816268117414318184813356343761264630787902306072013777504207349922693213224828238912545978155335332460940072940042274031306888139882717858892502435261877250900583998858197284986860237117519135479109786629768117925154427036916679102134719178001251841440022608485346517645999597524633930963102961781373180596225788476034467353921477202572467418694395902870832292124018550475106063728118138216187575784069195019811699468248069149422488184556278774468976889738428740796515067191211676439905465337031287392864358809118250887739492199130038573315673034355644659968883437189486204784608237687179272076651747004302029192234719642519990954262345057609272472139711544135147765074160600037724261226821105040958075202279998048456651621395472580695641784646333145901687727492782893825960827735563219020184527747035457072113291110139699671896622645343459365749328847941493142735928502376360180084091757450603781835083596190369102032471521890275680456639891343391405888442146451295169422391817921892025181349243727389362076904605734715199296769291761397278615103448165577190142245150238961180884072533756554183247414019939943785831718629993304683307160718889919688614846201085733179552626587835230218891201535993895829925373525534064463621088126579646592532177444938620560516047171497218009831048080044053520720499054371666887645764618613960669172571913809981690422672529438352469163016305591676671858233428021268910349334574790159043825428566240183035083068956123503212105797144258655620447983695782543870957682425948582386633109379740805962155236009459692252229609429204215536698264249096929002998515222436478783847214995920967659136606858914659281156066479544675212251860525289598659992068846845400007885432637986702636240651660763060274810065064561296828695039132973837264478293204286942227982723213841977065122135885478459880542645791142262060414326920879126659602723371380375128126695610179235115479200915192645623812122825653700768875162546699975960760909720392755809971239854254821206164239900737038623006115240971923853885262653517054629872229812592221932779076423622947988607732164447979215591362326940747664836596307102312951048867870832800029147986780309582702583716120833840190996155052103387806712061499132807948475834360654025124184068952197409488551062873490870445267453897343547267029517832653933518334790668684219523077459480946965495044058652868523146033421451777118294936375841477835818752720643835010290386059635757943908369714429339035439379485921357676515325853610490378714745818344994771137226461127908561062393847671293076682185563863266939106842977766316743863956616979464892779261533263848628180075135017667929824834031297822698072815275353657291325271169500579281940516125010387512154925405139476051664763437716301083750278942519800241318308760467278328342721764926507347191794807465559620119450901868896225633715468966334734701746692650878294995766417154607446821927149450730689199453330722279366524632110277015505218797114723334235936278101203121304249298650452379252007187367484911792192192818126998911122194340707669023226057161611223940149720089900178096642876326205513526129543914110753589949405506475865517617369220312446145056946998380726362292289110757376885991980493991331578111521700037402532308981119995713257571898623495387444037206294466630481583092173877671165938544563029676168389380028422171718910652998785902627158241545979202185045479019804078287709947534552013094948206858065157821423127112725096391679671665684616471615302731673599374832626349750092217018751694918041238149060624030893624190603105457677633096830838889481861168533724942995154838708134393470113370964352113923192138591542271389039679695447200913828474397767873212763006724796985596201038955963662082097261361321300703375495975321714160001768263620825506502706434011415610460920160213587873690050072223851358124077849057922103386397977505079844185228486318954410077970095461761002598178800866928106518795510964859767309611879822485940615384005097492520408016906880177142412139361392221339721229071879719625050936701926794996095892113175186495302367030293353750740700780127548749017640288821172703776759776784223936436388809215256220151464381584638931597007905169511725737809597267206547178776390370160583948920628624981742379653381903791595221572606706121661438703372042269788388277206506182871491517144841534653461805047000165651177697248081547836313664319707056941225720903385176135760459083591001042892949853367513649238080745785442685841157879884584551352766842211951370310755350812888366831163677430388170710376745124783312900390270706309328869900999258948280385417004779807891290297946602261490687183808420240776182082287579900270321028385546736692213624709375743814062219426411255449022079660306047403004567717739219319497073097812696140063301094978846268679132268619176429802386968434526671497936196967829794777819172242001108920388583578344407825170877354126680364123662167796445301462603623622603288016637961025940370700955612186556299637494268060128461154606296064593794454683022122072952172071206743610746413611279916897390412577122889847807137431663887034885569508252363554180719843453491898063022298437917962528944064453529311472121784580147230797665462795372282827606468094721875123468064935923172367424066170984499089459090735142934081631476951112893887109760731795646085014611121693971451385189745257397824428053452728827586338203974133234719780970446522489660824756102550123825707863373191344493485420990478189230327742795024528752311437746099249922115079632590181673301592265155379985991779754205712913371418537654675148117174172910915935497977628589957501927567383529983338970262143156147941303403291557232074879538937800793143953565750903922951644618739877793283314017902134177679464910381592451435390414386795921347465696615734015199291358535049380805106489042218224015158286031770981342828146019337361583877712216053909867537516171050457984799141675769609498895587085298226897658132504282030864750159131861728128177784718397527714273258330099445647400599908333287635544715031595549812155289819074637218627726653089952480988618115068801846599052094696687799430335940764315053996007301244309604433922387487421854507875852325397032574227549126313787503265665358119953545787041348747409813107803375223875451467168247919273052616992859662255285366493606924352611957086305085564954927409876958635988767985661307270218451771832852703076329931444211067283741875021231614775985338563391741094891046721032816835029394807397013799459817167962302116082975415311966213051128574634707527458582306491140336539764460232324659473878133641747562501791566842887227893830257836397429742847648689775244740451190840035800440969323931377985104795073801136964002856699589931506181969505950178678832480914862378858819917939135080036745383716250604636753247352442300766781787436132005779933163650378213121586516070353637474142164088009421970319725775054473462336939565470175469154232979511810512407746427888133907607281387194496203928187524277824171795575700354948573576694251156789718922201287847271718403677774488812051980043840360247189732595097928176423994588510167016787992887752198649383127417693234394060206857470970821203717068067147067108590543326222547810999792914659133186021244787894676689908890243787226747699822022674970037923031250665735142206172557387009496752388843670605803592941707474816397240051810817914417022804094208472406788922697505198837834947666432307758950344652132970720213411148610348922758418415432052052004181251262460843510894429630308122416404575992251135696592715860114234843151507287732894077568033932778965851627828880106742852420194111818025178586619800723475024428246792597707273552347509420114941193147368706149415984796925136100404846968308894603520564362137324211527368726512334291540558932965856621847993606207785557787158758636261244928324559976870604502065748207752598598788235334094244497950848394052205451506158645991740585611981443255298532681210190526673579956108389039350826294013852293805026982260925411584701077520106461123577263915566247747575475101519294826184261490822355339754789358598655103887770635747884887533547711000505807159410332419529198869400587889370675446560507211895507032435509820706994200015674169327766176811731658824687191479115134900000829829201474715590642643098229398036805735183755703847821755359070684332376868161176328383736176127459166552269667099025607773124043792170207914756598481041010900881701758602295145277556796711672670448851254462036992239054999467200075921425578920476363911266006332607031032945935395060358044329945422955693588820656623294870908470607461755663322891656642313626137248759728392614882344330193845821634440052549909991817371603459865828454537951080149543702715252374047874818786489903277962279470044950848654296326514020680623568600807527433706562712225750938459782947341328569646689895058459005874907572361488714507452723893088365144366147824238350915484963584629883311206964507405431742863367067384264267123813362756484517911098452466848747815046643326841033946139332514548326595073056254341453566320221580562696428226497226567489370797695113572034433414251510416559718772730235828117032930320095335035426095007205783421153164224667514356665470655829684905247125012834435760767208451011822272894056920988692372254235248711881542290879072393996800537530403073618993257657875462105112298314501277937369942698486884546236309496095968648147089706037492320860162750250577070594200950120076005254989762126205376288682771673792270793954647172895595346271883317191281160121477547624057058346670963590229146210285662310208937344731652467524451144675351561819601605342559845684686711856386906328941017766020165099092828254830074898789280652322704448907836540425798553448415295894716412921861320756251982763265519728447830275061380844697307198377495304296614137078578340285746214338298183697949936309738261938048329642182195734831634065883526268755787968687884139497495357126029085911023265219644923013492499373022119526526572471365082312568080573256444058149851049299970726417735131895398625462880412164585800643983521279210205446445574021413033919281723922195450609497137729170811913181220051432083580289048431565754640443655547501469872785908443240457177452891138317189452687615513943600439177638689393268600661297649674290757840397846003115987448433047023231063842516629087902461452969000308531863484726513162186655209268804624704057858303124350620657357288081265083274994648085194542927946288748066710244760886926165649632078127564514825478442597616303872404416875962435913157186881160381799698580680001340638585657075062158811133657128047323147259574766368164373512665108485305354676071549956701546138461285401548059566040399489912628588798609739035202605235365328818891544261979553784566902028061860365390887966971074378250389571858824638373900662566538179937016065187859737516434246457651049606698786005672617289058093090094876749177534944255056260169990207483685743845231205099418012085449870547592371236217113465482653351048347058408235274201184252006085521714376902577045671228509377217258243796452133598396237066717454578902564626326262566058019578540235642140563255345004201522474061243565286578165289030980912069614801629541832398953119677048021627864189349512044592428467039585969989965305008370245950081979414249945912645784279100641927805859355095209726034630963485134281691581984798596419899168519535822557143016480202469732337172554368995307411096095033264418512248972262034464719914256432542125992641028408355299008000371333710824030649308451094515990463262800942834806939889928526606049907355519844508501925319173918190069307864476213463121267200027333388432049330551639100719058060704609979449842869317007977608078364965187071260257589971220513109170261903548972326092303562284044482488205372504888068350558387011690844904889800523634073857182604862812399788704506547859210327471858333777536305491422480165205981591450669217889208992644616809557394688211581176376954802197844324279431398465251471004537973773276257761398368526933406398595694040196061605142337372412791146365539191611267618937714003516359733833638962537756026877945458029778086244821875958596039671476330415191245105683432560573561882759879109646912854023034302847060790547677995730041772994770714318538357242794762643573884047905382869915183047850619352167843117888800464311222639446825428656178821604452121656114080158528790089302469596886096899680231358782297065253114132388781510214185167925155368534897382645711586561986302690366495439240443086958201301831649960372120187549371769300946283667080779184771542541851129221536241922863475669149195114136707258500671002689740771178859602027799534650135908151670347391637840624544320123371171258678795472607485703786137532723888710754045389525803932306144403535501839927788811702199895920834752079699332983153032284530603190489788508505317922415910724135832932953694842755630013270455029416164645983255652709521826204459807118941007082752998192359367326050809627472761327988967150412181829832322163539768333136815896037754397796588185395431238880442673023552049773168731375166794867632303369730101073923878287574773223305917578173836276768301431525038275245111249468550749609432043363397026201483377383848144581269486915989788313830130489293643732782352832446792731335917020517151795449845168620437336755496311995836002260225346780184668508307235995270868765521973950473204663780933197789982779835767774036783860713202448486564913696207126317943599526718919721100952214058365850222258004415034882530784794986936505226290591125333854745095050555468881516030303426273294302038389959026212503171915707768243793294535900432773459445615377311990668440342417500780805638613867575219285957645978913107118465222643086521830783868203813372353718100504835497482479770988638620367291853310856622170045346686438343943757186750024390980390164890326689333653681598914408090617359551582514796759753778271188540675245438873569252813468245082111357874461191098316300735339311615862665391137674637622991498993438919073377212744236488620957792803556612688762624143049795663622707698100384660971478124080073475229152985213425739978828139679262694990390977216630138283274200983267289666129341097712877315054822575939185465662985445364805168634022358649972880431843697960857440021797650485038658578713511424069856319100315400410652137158009810968239929529790766398356639283109624563658920283663494178604822905125508916377127461340233957206695179657871812656928257358669934071800675271539564131171931406281865028876273813690547089568306166900082991432867800801448702664945329660169665798994244928976278598792607835106436660366403441261568962482080119839164930454990645927702716993192778535787308982484407014111390784989535984325041133442594946362226402621083528202832567793774795435320052826971242049074987734246866657237162900445853110039097489821296001539837090375849115964285100912800539552780077327106331528176529264079467566683646366555335796573506839173213609519208739736466261855076859805103467873263956590938441598112371261066126864944348863820772492335678775381269378144296460010733978721613881201174300444358570064923762892459479410448221888992373297281343404111675277331557596056646109308820308919298162917519610144845600868735303874574506149377508184420517017668602280328740689180248638956237523482715873093564744795131588269611553331742410589777067895825718214196883020509190245609415079479530178224654152089906964426114628420826176726503930855165634451200944873274079520876758375498960450855017869246538005728784238336616428323292643932495331595580971114855764394416095414540005334702386037496536246619651641970320808461222910589886793245357524595468530678130250642206610750452295552809278829144221911839799591069401380868605160692203251883857783976507694041054673983482369138209258799335856739639866146244814359886441353068579732220351232028608131725267567350129535953844124870169180927144457015457035444196742204592507846662114078537237779119287237817945937015684969643347189461128365675460741029055079824412540717503802647659257544442513729128175731731976886308743996246356776309787362928707737229093653609757041981262703645667779924132785592481933551136674333437977677160647048720768716034055884624232321831410654721868997373247572242287732404017000928707223245739008761488450155786283331784548189578892177525816964619983773277558400835841897007283783408651492923029030666439887598049609522271030107315904395532230431762125772311673902583577626143647420894191785402212263584118058236235920969327991145542479383708071880352273898035482083522014498180420202187872258365156412996916106118902788587893415508938015739507703830532539643327526490156392808297928898650483392178625646730024061774974886823455124290519574376343724435594807431417972504935211337750116575870526812097479249706235617204286860637984215570850930819574154449718960815872609652970229988746714121593063919562874299735215239205721981429816593376833657127911149655694568202916943850436606962950510457335653408271320437482416315642800616751629351044000503497321382881218528296983826728056678975523577940636048424957842581654829630062665601231256402261679149976584983861805969060840421975818587705583271891986622459969176458988596437072525836939701484690231829930669350206865976380861553426566360978629277083242127908151235589961458710438847389969728223176562741206183694658828353945334503809373320255081538187780759087873676703067127051110659879165418841451961573162687909684402599505529459322269562954058240398136801927091192509918063313571589804218127323644769136235991498243841048414671303377591042404885604185592490931455063416872377163748181018285276132893776477670690327756132083603896267423841242143132794752534450864811050591324836937703570458833944467951955140203316194352715996338358108741118211764577802570117177249556556053508256140997399838404108414182852089769724839905795471467961074258818591546794832676444910682507952439132122343775728029369440704087365717182061560728007213926753364536314910166796387655313486020088081054944469780221108566331357470518229126159975029293338582850916441173411369053480764483130325286450022568326396322832457623855295107328284386131320162114322538915942858254005847297828079771473322296897792127519340932944645960018879454178426832669486530325990871426415235362538316682370696467484173347784721242185484303380512020045579825668595208039915573066903638591695908325518090725601427579979713352880103753601663866524411681988284154235354312045345097882168750949263667005933931375386168857978964313903690904210539026922519843916760394777414389751997043024941765578516708999872721378350996146265661437992006952307061664342226385648312300761432394942186824271855476381822173798944272472724265486280769619365296063698260470249525253127524874500838652048105737175091713801343183163286618190689768941440080576648158393085416778593016496511200598624088024681876218374878883155347253024473100645273764177038415858533201498054308891316386561390236084513920331024314286110093282750720741618253172768839013912147218194178944314904259629752732110031094764232935196904907868209506321950088219736739218352011636973494680238664799292595112499398351504248379230241925881310481698170695951555967039596590596010669727397064335129633397328586527760984594051550426744128432435181286917926696342442815560584365689611806495040450704133341295230946867554047572358180888926315048676884567633702227436256007080957551089884160489052303002020726754112048947453564588312693256943233622097222735715190444568152501020928801925483781535271280810289288834695686582297001461401401769342206396339020772444728435921386362866468319015882427639732224010351881459661664176952890980206003950092878860873530339090013756713976796314822128458202118239543171249739733122560955308895860559616776111443431891691478648878324535946075148383621626362777812454286607368222010450988891816912084060918222014620612177925824367080265274074998511648697289006743991115344725328585306341422868446302521795738710063465821756575837405085867986574772219211902706594321503810811131825615368886137513177335742916103621274896745244651359039761945550850727996410477974271184958732262386848368498616749244461834525361912249255705036847134293026561037747462057960403497237790793968894090983649355281761391859436153619033537128775805760274094535929919357222269071255105663298705868640780076961511530369463501283757084353455706296738406976157593041609734412103037809300388720563674828102558640112207447321031606374889167487709932648390347869081329511407921719861091459739986600535057808560562228427216138941650225481827463693498151476841606774492811547876779646091199237277331662586730893136911904659632638273052480422484453276091003091983274375864509539596984406298682894011523676104538610631641724807895185937518436305174066258603495877550104634898987228086025981548096824828495099952930296610097767132267442079022442282354560193847605970966320563122931633031513653359775718527654475509668026650797396181910262822999159364584903506706013543689902292619544601323148281052040396406783588189117316076127576822692976555873259171379593265640832027340280811559527731316077841183114643219732109350858170832466360945260661906373881767753981774670674233497690314643900800184827999081611327460698840157288204463398244400191473251322061739788515096580322916307363633673032953524081940393152881133148294720124481081021270205294867003621264677947457630942169460009237297576222145409912777817711580821008299099479262069057671759235587205359810370179047105396440369971678047894744432450106409092707276275084932901498869857936417170419985108965824003230086351962593529456700863218717552505211308828606190522206311024809822146595101302666941086192533495086738476532514230334779478950711372813011649694125740589435209960826214763160072859337526794547463902376572405932776432072894446140612129829147119903927641505549862531523066214605609686876616171301010099539527656870837675555372100554433962981133444610133375890437922347415496118087911625703236750914564713815782693414785688590167084717720067149550661301521778953259641322981877031681798640254449620674696384556128882253395004403633489353885917571556300055997635685521023272992861584106485238196766941886275047528092508404505318582441013638243360869406733155726158638334476112042232371553476483798886823508024444765124750431105527197219763958052328001613893914776360061985162488169529387711994296600081872549917653755262062251966491609208190990435810014858204022295471485385733794527286113702883053422753467862307473153958783309208738140656296405830581098882499443976543541584880376221403970403576569968993738259027452908479726711806088704488121882704549746605258986921874868560846855676500323359136246211954473774849765407806804930101135999045637134991355648432039516281788755964380803850695894934370667593506996042908538966844297455937811056018726840086296718288725106677240787148737529537881333992843053636342144879417076592785824446965504259121420109390297305486288941515858985720655042981167564051011555659738112152391802603745103659932869077568293847369836816837103033259888095219475320350116497470433183472930872433848134934426788768838003189009063720341713354172344128377216727428354457225878650038555449067918745482107028239496377322000714800290320176501459007909515365879574431351391670173632129964191920477366830926560317982458985879068519885436053644136749126071520225537273221741638287807105610653235797079170956905615732798081104394228483081544668644223600347697854548813562143778446562413618195843344084723775510174278803803824065259146896348660462658402174657615955143657301731313182205627935812060228203766969749723234966844544916498992759723912441503058185346020022754662290113424728049950938357470338898894749059927641406706070149468619786788541373683180781451625482922721116176446494065643937906390522160009948450202150048623665724470405613627409960336440135815743683078485747497856355314752878561830582909547701782944625607888116689933174051062680569743505059344983650629764961032167219403610197677544542359114763424465510412952887718431521466658700450998334576900763940434533664431011188280290575642574110641337322757650747465012279540506414284514659153017169015030133593936480408318747874888365428843910207076110797117128248818647597206579632527610609136824444142723867737273805464239520768246582381304127963516158734250734623783852754862997834132090363074328133522082162503682339893876911771358105187877966163492674105306121743489938556019694500344548777069761461101926031601873420682505789540652328129321021033768352079055168109656928129691504497824860868436056361725030355087741002325985313053277850613059435806373396272303612671615034544823420484181481039627536673144234521968647025452185929658806124498476836402120824345202442071471285961896013112249266578757114096145118364616815245820349911938383827250746483425363975748301335309568288751337320484574363949539027199288464769015865252429183812636836719215641109851205330533386572430120249978790448558598607261009593348223080773919412470315973578991224985420420868126033783748385986651094278986183741687475606638497588798772833873065857592088548003414639996260163782216027096701526442503225576238518080260149989775025743007297260455674276072707771390931750507783812484198211779578782938864650456474200724160736302357854201605055028845318310723480474321230299380685115048657193533190910136916232494959079378962512457148188790695720485677905750502666116188576140046899896890318613256709969544505289740539221824121096050613037082787886246220660125806041785879171698745477530591765674766080604846739390316392348924946977746240521456381095053180138820308332562717688123142137990201419688444570243944467624922547550904011849277905008593151571636768650266012465049770791152813940244709119091063096852867874649926897341408273957128866283750960014949927818549964629238724187165186316006515980083561799507408473559740400611304979486201313562221948344605559921061181517218564150366380342158789289375010924419591568962653499756271344826035156498823280474395218470744238670908080301378171627889121282353421194262986993700419524787808105604165803882834699353085841340172954614785400349476969260642461165302618538226693857678716397990902366469261241027374621656850551561469481432263903371196627150385789819903182569251055670050658665617757086091958231509625819386913786911497101794353433489742103221076656125616732190004439178364286914148226933893457341074639376097348725890711094799197698507276711955058060012552065339885393733233687336885936111331748634724852342416680790780518647283553706331116042373841864157051327049141622115112765440217617702140948308101467537674212543475183311770904841609046887041518574646446312715784056235591442639488800924566015085314287321345853540624498577594606250924846629703201854445409729720422157285423802592221566075307028789542508966385983303028108690915259874296127676227528248642927906888200797675612702879766678173381262437250494040494778649700864428813741294148818946779272753541211501069878581831681767514886326390208625023150356116716731882957647011901925212587029785290638637811771411454362163374212004761112406924784059680895821068756075564320704790352145681809671433259145143929986081501878658261178458382106391339090890565704595864685530522023459596959055864559529012676211769134639056820172629771682378535615318462989936933935334430809635800426879650145305026423042492940705979760646146935192067759562088908914279246240358264758096390517693703334146934694103394238798547094453602955131498478016976625806634071713253252734131846392074729511567349453724472007023031762130682695140656910554424135193286813966123053658661424587879378518897884049012428442334975688209321213104506827374205662782508570837656094030821858006558919366136926028362028207888057496390900295808088776401724406926794011175358933190493882070689237081137396515131524474139769525264100284568610080820182582668417623079216269802265227155904598150687611348624109156140404422918457847680400605028305199830690743291440107831176636503686138385238170658028458543502685785636981270280094158475029803238305250492126980490756669422470722865271882793655248119033958186994592399826489064750162834236612826601035197544245794807011710588337072501409629002143287486191867400315204327492788885324282655444900363282465862079502203092608858711658054873844187537056445596928795562839824774099623949208077097323152508226492014091699431142337095627661912160291498704608201496157462417935613582394530506053714660989025242238298005274573320432154442596782524868713328840340167370321345541937479779665109103057128992268512617027582638634012264904205298446992855045195174285143493266406401919516580713999731379348223185091634046219624383257858844785235662041256259826241675535422595079735919793885729756399475279756128910167925048656274699912426687227826724803520976599575040606913709101083255266165283889966066342827252278318135342520188236643463364956136995476307822758379605295827095488201623991230475853158962787640280160483763697437143768397006461880708698454027827327469686806534501758830232782470556844069263862026569294461018338107815587457838583419493746347516166859546625652826825593736859707818016775933789896247027335974339597417929050928267337004524856820907013514322931441304845547650970087866203707050250193242412783769556128209421556055345293584168112723025748228083044208998730981491880281427082613670726847989167355557598917840979731881971809109761028522341237073926523738608121947186833209874956649274348827651423384390811118326583271630272544489667333739377975219938522997714822172554450565882517576866166040207400355373172242509220583801380041386581047211362483895585094025986380888470723073797301580905670217049684318481844375056399554625196455798358646493095901774576207151323562870522173072672783757070558971492889717978413801475864545175096893042830858608202228848089458118371801411950920370217583018637168136490178957331608471551525338467712746993619412697996941072755285489959666221232905679032096634184072125558843105420778566988086754273349146018410081452739286240770579084253326399943163640813142674940001560693377458780615007670375476222094488360375693789944163227713021610726931604430653352223043209345274687840113802466636071150033270414064259226038134700707829976535316217953107323380560540116496362080070228313685329423664206575058652634683781615759630068751069698570232090663907893207538083958813624189079400971249383415773253246606789340964011027815877521775858504758523810414833393238723122225942835807225273172758698222382783340972589590513130770265610731444991311217405884371617728519879174311205755965404168623840003922116834852942952565870663648012399408962050850299361000213526587026639947349431862061554941628206025502028158480399305004852204098676468134241048002888358131576511654764665068939347013276879652402730813118272660359636593588722054055559802927284529946245427384139307516346522419570544026176188502238786300453236637766442269588736886230176994003450116793360684451185651021056539284674504381476486432355152489658550796849349594097179475816037339767780330496989873675127609327325896544497961388902969893088728607451085043621776783124623153461638203243499936291983023494705723416853844191135777384478603079927433012877981135224863864345093548177858010007868353761897584274826047619700317689337144392795672221864166290942474830184236138988536490151955823286307681520842220507569232633825055684577996162847073823389709760635388987061513802524378416582193382366882578353592923652255158588264018997710258201311399241720502861409184561125610462063706048181833686808531886456790559293309944800476707305192571136943737650700931055161882119277542015835057390139030972547921729407691700441364999763296698159066400703349487050092123276458607412081515979158515912605646077931263909676260028113768101170306691871283825885134515737476176464110624379188114427743383104744914566601243369162212498582003797899187924340480997699023729797040981432929258720143642849247573260086097903418946825624781333155709188288743384281371910317401436339263102477339634079855398305950070934379945738671558591234429203444813088840257275743555557903815323487007703638553201745575417168341997988498458122013723650992246598162637527552825188756513589376283757951407231488741742331023279881544473804983236102622567409886091434879455317238850148003931302487573326778743559643665117741802254413475506394416561219674525532901318044860119059072908550765874302612023085331346279949019182254021302870885698934512968373235089811291179292574627835249800102666619290720933689507730329025220857475383786154517855970754130390652263078943850286262231524364651034744390001516994060039739727831102807973171191277584461082487639073347747650666551712603827851611473664296009837989936481265173843552832340235804221130877572035223560198830208604925731207585883775730800308815851809179477364399982673380157812257519162302780137498914440180097027088862426755291440231137813670764155064945578159999344782892290372225283590437448739455957888193581975848226955178249321968510805526682623185960230343644567917608794507035266920745787622934145239197342692675228998454831726486160431429651986368910501199128361291784260615872709431826689852994592783876889337434479355792218883422809955599524175126412294521410495352204278605452142891724498983808472674438333539853312131414364597967187667869063280751333954772328208346464135455310719548555815014004138429137251295756085397919134560708439865898804359977768079881385111371666090952432428048891668718505788087559185083802919807177036775309517529720815697169550597857188746296764105129412771582484330172638080987335714674862991662517102448719038325935861474047022571821146201050563215179061065777421878851878952528582896575828480711385381513132394795422198022621467024268144499368877130507819201660191576122699459584945272170903387556840884019772754610267887278476056110062879783504105285299132888639259235672131801464512885602785167467933895418915319728943803715755340027073303513363745156363600205384655976434396417054158338489357600906441925706817823886982290923660734223438804051635787877006047027008366001116615701243059115728611424259047211739036011612186225202840107031695931079573857746290254929329602845626991840530163238061667456094918290481135098974698288453952108648155888779154944995483668563501827611760229657706890881905312079751931824826442917216032247049851455429525914920947186615303588434753041083305310156997520515149626656297166472305014608137169655071813229390863782431095334265815286096703449497528041104729041462625284677400669113993378273249799173828067876126159723926321096492804018881697084328160116480731962338877214358908111788967822535531623844249391646952703280530860001656064365371466439268050956111263943732827695787221634028691684391307203979891192676019240715294909387764948452033873333251843935534233331911999962013512610562679271462506558548342017421625862107625617600383017317793440074286457554439681816866931365370382205245358038965460771097366697267994844912594101255424924684646924782464510256293248405841894388964121454279732688763660561612626203431548927771201518066733464970822706381900959502196388503666314514502031833357929810230884007121321260061145233145579662214638630899899165225370610401188734804510970820173756920931781963273805351187758947208874302944485258298977701195429662382154463151218786559714046245887351277028528073157915992529912001471786503144350514272122628540146805588319715985167319568649224900850349920433411656940585694073155418557162061866626893055049293899897942769710102702883746754768880975060456040664814552610275607368781327362125931697285487523319271476152009788168578278724308620891389121414126220856330987176111269197643975979357582658487383797389626170278128785752803400264031167288342059501889450163259068997719792525748528944754221918333593442047955528639620914504648155925716886209322100192026517470476322725633374110085711280656708311062351535185000458349055625124156294774545517552265049409267610502685107836628539663786667647477763513739278840435748830417651426716727530542294845100943334593012364869354331446562706783324879393975405411679101272744882110401403060776688084172465209655792285859256172040997408480283243233477411829696543782647936848315833672082314660728527054342773924985928759305869407564646644773247522324804757898114711652695597364634464580408796012249273838632417125561427549362049766035490034376849980363549298481864160972969324804339076802186795676762340290110711319353858325423630673244926403354515529724858431427308336830358898398988688669373984674601642822022903575649755951487608141949160021713860156611081009706113211905165269011381653794078238420826777096277014512061967101570241066529562243968034705713282185170984257451246711280393997708334733672831072979347800037869979513552346084839455422558642072182685893462006434504461736317790777195036714122925498170386106414894624499273714017257739891071049090799804265352462566534752918828790373536576211786719046930774820286088154760199778393198735121507874567037300092017250727104539149337261725247399799758153816908761084747017314235221171294080603878546844034959784448990778676338828823958601148808514351482035158183849117283339385054654006061299066728090139925345144422297777604315029992019592322783367147906137713365711530520001493996774650974663222726531532349277863812283786656464240457191741529460297100053966505830388261486335813507830521065585991741304739518122553754147220466630353302627395194105324488764724712367911594431745713926387658279296660654487162501314318677818599890105987611419270284074396571539732221827047693685222216980626972446812275420973375041340261047574807874280096041035496868258692675532608255380217374781955135710647163662712086672065928426620993606581532740538640747402378232312445881708368499644614905823730816148882563584162132256686734755467845990251170618481505699319381291865410547008889450156266172483261131978598695934745219744492296014215859475196525019657208130182418774146202928029670662986163874664413171179307508894662612791276689756067979933655492195891177662163393505764652046836916486625090947725737093283373221147839886065906211209486588143630709742725647273130211471044601613678474198812412714002118159268007697023146299537201474021044550667941608519894177271322554263034529201844314352839149708560302331232660966235629169675832071652641765112039593323388482381703450590452378527002738775752040903724220416420804416808176981361242939719517330563854545430048168773001804318979306653983676207323831584080042397933691352542068819000054951871085149875968677040887487676990013816573506484295990267950197710797561772080202269342237651871610801165348302776111584480150279352239177147542235180460636359582948873838491361957585856967704714854629520190190186622784632889597398232738012734420883228072104381412867525876246338414763873846908630720100315260904866653352518713302379660468054161577418677543571517581872501825855611248807064454425143715809865882891721562785368580026309911294084108365791714949468122797105417819276774814252243798121813870068117091285134667558966767394396771540319074487349015021643630673322437869093566297404220014248001007082349571845190996592527587715789147294257419459866845487571137437912521704191086172461435574782261487518180682341815495524637883616964339359755852013651380970018030424959883189552142567513132005940804865339534681163833530802765777726533077403156452627735780300085368950434823728428234039912905238740471456196469457816459524517259358602794530261180267048974839135214076764440967073553914059636240109622802338631957485586187932387305187059735680499778049907635914836007117391107736185138299985027604834015930661631120874790816444956621595464200782737868261321275071152924102513284112478636253498549557062726754916441406297703222007127101422012382975573037871906272199003047138679263886412197361748448323640932986486989774075963275031235751598286401433510984853520089553459671158101614576625107322813918726545035195912240978192765180001877613711409944410390132433582239199033641126361775008281683674652474692264715470076396882925199358897209389613641627973791435507979712942100468415782718201019060209076134666435276801141198574118562802132211193487248783310829971978908061389758321847315885876208364269050747410615288663599523227329857553892483531229579500493353902664966786637856371479023424581003701726213851983177555375402118690753835060547214025722709079894927692299593351838960676002443178671194176636166603832805389592709575948934940922833740895826563581732334531565053054413001046407584902284608953200806198407188484510169111091031318742394347011249810446758684659783883423404047079840668499823164207168045381118189812600604589337507309123530929900160388801362722859276640951136512757101226232635788727276106665304155008279204347693181488488061646001657243779820547858359528563869606472213530857061489787910986251920065746991592278604542822317999839446007384617006677167443065712731222793045189664223679440445649587866774086754015078964400676538518650880625811384550061141092101223461834423439320230671172645086968145459078976096624651594044216344257379688005429778612314521470839664919399978229069668058979196444941310744634485540361121705904790421122315149402038185974437173512271013313431280134640370057393026363424556080459263596849069279385425806707387267517877973179044953006964113335043046220591281654319340293985629293293668697414807162949200628569683071819073126307817930031910018068972095610827253331792280981055279411053371720472129432129543197224333165175601086927675099066086424883918198428678951169549027690970182618986412792760780086411518152353947524745684029186768730875477972099091495863518094314963739226792255134533779650297109806083704968081813455176171685510683287903641651280620857956079774266988506538696132445280336270470313683817513189966169847143399888654849196663829460342992980606133749977802908479980932061731002572625258560949900423109818966650905966772997514638421011807383276383946337222323219790840369887315283691323591985193660763505352726276875543208393941121466387262635503657523315534289022124102881221991820048824007490640219779174827329315353523679579964293915656192010561858056771985174596343410501840257913247337324943914668251532780570594258760081902805256165102657736184044860087474958642040005052105198165212469023177335577107367247595896332025318139866726042809093727233602799391279166921596538370541222332756320067863471245359425731767835511357388253413198689175421343072356059016214958914294457857883447426359149335484934515023781379865907716107135474656384988890292572748773605177265351991311662374278986525204211723477132118553823453215498489836588521965395259859829302218338741204882660601319668320908427258894231315515222573479353278018999796147481038711703326164609442985562398255749823449377608776674238677769919835646695184910953144518124874570339059812428350526032408660329600812250175412515354261519180735814137059233471076882460211578751950138796186225170340041398094112318132199855377709966488197240269154898164029110989718526195884034665636947705780518613790075191823429877295979337001411966111836768431228638427143665435674214974858182196779452459584201088988758889228922606986774781798033962868222217315225294803083941186396243652286618912247171842524116572656966625076121151421790270665560436591613136531257826571799036600032001064689741288622823960645419038861296450131872478107999464288855324933101042775521332883667563513624639660462655039625600987089475490336016805075347172824109332436751326221304071964482341402244093224636216460223020032012419064438492869576549109875256148706206637811305471425721807388762727966864594636287399371038425812540634633069980457108298793790801507106506939088975893524057904651233237166577554755432901438628842560589133249871258003631138344808045876255740459778948650816531288335004967926520024659613599688729774143325079114023175913818697919772412038670505962376463012662968384799660152811172867700629613151644310805048136795700193236455629045189056377828169766778336199963479486427947991508888567953651861137903425084201168328808236850362087216904445456199281490509917174815746747620265405104895321000610851243055412714774074895855240082795972043996872499399797083617488608156712337462806629142597807937695762085463944836731210176707124797457899713155723935752490993547286789014391732586597095499093993803098066443637208900945772028276284793093838786770917108435997245640154678533814254671824796369421340637678192478249560543911692249372784767363311454870071361052566573366778329167407182722256022687995188801194423884440829904924083061472966635603847836255940226467585374909860717636153221272582430039140774901747968095291711213126543705769767908329380063550351110636287289174878297054442533807075512247763698774222260877740784543944298122394595914530685742909713365032124722719858142310342197115372987987859176992502941364767760283263526147239274397338754266410345173099769991237552185376463634366043853159124763671963013604171563385170705815212171044921283374796591282392950803670783157209263013551966640620095373706098569198929236937528466755853947993318018112615344654578043385600009184638644042986291478093204381916217516608140221804225281167138552318755764463210974393521960297806492008368735580208561726032312939539298896778998991156594608115932175570623035421911632172386114877492514517120373501322845998204316189436626792534267435827334024234775276964977089950556256265623562436553543864434107389934051354276423806638006728877910539843964142492324667497490766441947341412936929096039240992293660762512124598751939838380943461896481369691325656160491615277066024241147358676203524899710183781173427497780795625116334603214046990490495956091335910042229813323893441990324249174782761434146006091133616944986221359061797810525925976910647312793104089884686951640248720553757089651771117751569673036084248176414190081020658321785831996013740097900302378499179356031856415384723959176316999449924604298037801386353563528060015747153575391222837933773911175113370923737637943699963844101028759729521965745397200312237467560240085056529695436321925471973401786175775730375356103898632764517715550397545687988939454415321280121327424725696887351748578679824814262273684151897829823759486714123009866246893480616100712460818727264568230315851283104852090516779679783974272931487446642885075751254891595943711046341170987623450130087789970752884047837484870754178228502041535402621741307516478830996951728048132588338855362314119844642944437425996006093364476201938531694511736427996413518003239794506514234133447355837072338533436731935481008503870412787529287847786552615323712698984163014670031524829650656778821416611433766679398933665481055329744600830580183407175796669182071362115842837524406314193155089577897838527572321039277454071875838021077617976180260934749619210001661428439245943577955325390580823508508987401091520849173680354860850335132314973713217266429296733929943870764724900183864095295314142930416766940358377366237253317846492417716690898493320306633773449277341010188099159639716008713940791969328640333104679417422588138130076212486895725341021303819376157009438219938234689902406595792790445718587653320081870804799489929527183383646161881903073540964051985184509058891042997193464374010606964776502435625494116542439862255575042267992726202656564898950877440451630856882506411401550058507078110507522689915994283769525370668024318421390478766968016674133957879233517809935429577908113176595380554790578572807361273938065775879021490977281381497542045351727575630945000784249735964783321326063773657663200314047133843549258592205242895703317561267506993561688568546405475340182238791662128765470105871151423232830450889328706591964986824943583017426682474051806789062621607076656361674459489626487266986140955069119654219924367173176895684902108875451142458194364519339448574489041551005442111572982421880709670263515012824007064335002441561444343933681007059705411882499115817741918671907324199253690740585443845841921202128004609670568546453533053356012937005657930252205036252668746481828897218890404627958210749756755329440662685829053357632508456934439877506152172286536001196627242849626074733301267796085471645583202392065134673710735938174705694747990979946741555604632720697034261606494239440106923983427136786455873505056995362064571115502822724066341686553105241027964729939857030924276658768956233349937071884054905576517441495042854650525713717255683693641383329082686047807100116783891808367507328072274456304193256983773359698594401770924414590365832507702735865686792884418676579492518813775855405645632497552138848011562659203267007575514603919806997407290757016382471257212256814375808783926993956280147360671240756020094883361287421335664522828769159176446474780920166385591153876852733536160969567251699853582825819523106911550853036784452578235724760621004628120776254221895641829364855875411152170383334229099028374984332628935666836826637775387327654977627289121850207452327158063889102184599993893772378523595011305579439309288149582921880519568254718727030077848600305566547894203895051490799231847724731627652604570515750545388525529013170242397688801344345477984747923233842554794551214428841116244793177810696438968999238284341122025727021475436307666315277260604380497713789544854691360276118561191156142207415490955771171088628516236159388817987883855330706622269174533809490082705070353528019911381825963737110532333915769728192263238556210423617122052327468490827203544600528948627961857579425884312038327727662073144283641193970794393340313054862391663904423635137241093189470399539838606732307447354844933454069691842321952008185992129740253078001943845186095060273492482469603404462610408884014611205748406225575996929704248077864907503275550891785890126600702500279206246066700856931182052945247135354316487463940736555546105580493770846683471807783354118692816052787960212473701833623664729357682942882190665162995055301449256897558980650457858485668851088416338357562695613908122716417447246942691731460188833204035697275281413466918404077898093399234853436223378386867639174667539169945164704521741035416888266006899162540482311850095137047767162045490507716537122663792334813470920633355839164643862440495201085215316828505512755374178766769505900603893434443551764963433711763595544113810237490673064135147197075325086554782390183592209185442670076699211451637738027816601430401949382173920906944861479510100031281473020709250972586701212551700899371796509984140597046567384320477272796524688457530343054011914538104986458462544846936151274023580473795171181814828215509163195539316629473441456297691274389311423482431334576462459776441275065418632041378134047705986417299639084920737575013437614702381561601842796011476491998177045622957376412495097317013963331755536880207666817826944959373299398827379143997388887176069095288942033448528417861481953027922983533561268635295225133632674936963274012209059047481185767001578425970236502644277738266560265373233586575763416853814930679897222266716766468342278950277232432142815549016274704294444565510633577327760083619580506719512809964586629753743234454976095519188105620741299715022729455181161056982766416181625611671469035989395557904797644945918951122737819543162012220717954889597641677162595587623778342621286974428669635796450004957517103279609189229807139127020713776792476478066215928810076271804260145608947408333409208962957660461891872804539049930892517943791423044028356171904389543771670562554346380795490261782524216237508494487762536547080466991556385090536710677740818675671918943120304571056835946971465825556319872813357759826252455525045516049192738952665218273798962811520384580923143299908914257012336607155035159344839668148583473250128451293462125131816145112504282704368628956239346992109589213682622569174539776064880505279741118206546899191485788609748779203772553232570440008619602918769512588281547747042940507700739518266705075961691589184439073871141129969534588177989863161609738043087618846939081098402730983765202504754621000382816589184959469876767362034056773065564142635811219456069418997133140660912542150739440153805604263914333294673550065233613869524856281230917259921097378479779893592826813978375856089263105474220768301026683691662251573246899324465019632511849284286218064363648830574291723656766502487161273890716765605654050757056522458564784972343638450379152003061576787300518761781714998950706655217764470391906860811048583167290622187319269572301017659336939581379429131403055061223876349484746686269446726701536217800735777017530529089514027489250358750676424906223735156109994315904688498504430101076075612792925312874635944275946631835758125969796957372907700814359023208833557657610148434246263346198364629660448734190615354686458823432809815458120456479784196418164698943465657984891924542297677095471060160536291093068857871293847059055703769057934317927520660869587978840760817270182013305274628247359270097426475366045117218633086233002401850434647257369733200725395195415331398780424875636204201287723226928504347497562281115112156008782911369169514012186536435279936162831542611203511662807811906118508177205358508396680170655570759686997561086263900433584759284234289164021989172631656560586100488039536821454616259425465606460402696132463847787504993097429590898185358420172026235442462640035265159265598776980296203021868132836649093929633151020445351555749187216478514724250901188296988889447183171207454581458259933663420165288418088672226215700135204192401560851804905595951418579739055169571209103182769776255196230041041457847768180772427545839514413150793549479134447121123817071072604459293452029791089329624649003449371456529286730211574532980186662273494818593580044667305886412193768405154721640919575300187072773187456375659816157960264762462739942198899025065298830107325288970574214642542241702839742947573442320895121041351584542437310413934754583119430956414687750581051069065764118815888996942938443732123280009394193525131116858393194702568265288461864268799191913436694511740456626212048357187698862501006413325893660657487363700545336104330157517189159432305495443539780640460339828917465969231316550176891539409197473962124480945884407968944069324735935926936419035229372422584693935033813737384900399819601148051900479778865766676258195843377083869998093233816572189015146705167614718308993290026285879703286071448621020167257578369190446815465925411940994484443264298282987684353449153726679609882117928516420878759660280283592267713197091080159838212706696227572521651797957545292583788720515011037503412132650172922803181011763676398544580332390136319796501764546371856238711719066225770052827015617732498015763920754861913340472551097205116455797148650960517401699246678068913127744485341606230944321262458941657871971911609616374202022393702514937881602511687354870253278543950016175330526619220323137670832224672912914755830229838091315825025049403190328340350269471442376724907102250379475839994338935960445069541720787963146149181253002225106898350066631799477632056811154489403195955893352217317401045932907615833304162581239745525078927445575728366474429183804194972505239311670305660432655090114333791855682173299033541393479339317653135156015121751901857143143074461265651785829001311074334275708654929912585821242043538901043938971163720202342048549071425734472501363372168230850882776995420384488094328040940752452674027477191717310576688694933317393043524540374138399916669261939213447797705835591452817004859286716487097014926425002206055631704525915773282872273387910907586535028571923862236298325536143356172378487190164807129064671079385784000485322267006456173895680813602198673242827267102520357199910555438815848190231635690126412107700983667244891526148813523293199099178461921871316824137555644242137427388418416333927345605177645934662835188966436023406853818484613608037097291730451851763573257267562508698214175989309146405749884052671751648148797735890844272836823091212044578426189252228915855819124099578658741773382990061392392543116123388974044562439554137575826514158530848316999386291256960064610591126303139920070703159196188431774336218929606904125007530194336730505977577146831723197605757144578320611693952141364711208679413834422635705226389511773897004850624177017302348987701550100378716326728481706432526335213016821220206271318770831113876832968147254503671925941001460315686286479310417632477707091001061179028248696854332637935988021826454086049157839481892799581217156403595754435609205165257718619901328864251302672856933169286572273218210769432039497917295728176381724273664308025743762497498739417831008448997391856422911493664156297040331188592604105243960514048518523339639101699553285498017802550174648140918909549783024346591289956561422767419161083507794464145333591454338134809844433995127921082069019632307295070846608782475828068088114719544509759930070813139406767028105524912598394854924389663969859095541007011886307077944154204029403166118157042380022786116931288533919901387557776263141470450503370284926175102178718780513153193483805363807149067641686763513020734883891870906493777840587290185259017271767937955804030986577382070257049296670515731454131292256225566198395584435156940427801830644946078823470091931271715005785301859486060910436381793981893781295045220990375144231692955447226082225553783362325865951096611913359817677094714927959864424844404165866167170103301689670103668439530024407515575034732021314899657425120970918596341624758007707816533561840323359740204437059526524242010750594732443866077835079046558381398559847401904034891654809430803210461298416547834382591292095862835412092835582421110159891879266402768133600033624422864794988096164506950402942915535531262121159417374470498203778484455270530377757034581655296079753641187619195084470078753677223123687610178158610810055456145441830877302483889823542862337501864974991646464642058112869571872993735252027165558180266591522580787465369361033388760596035958564952070075547947534370093472652650160853393507025220023624517352144336602979709972502121963005962300180512807187589973264429804962998042285263457288544224876149058581052015882469765960501964763256786511849870289733442099668868080040949138800607469050593602459225968141579442581860736564069150534916620699397428214024537647774528942243242088001644974157633179441025663049603261551024133311822526371276129168528395622973605705246951076559447574215257784257739665153075024501954452104312956461403934322046096065648225678883537545205557129918931344104643813647231336953747985160129760521268601517485151829897355669476232417604742875294994322014307791328620913440327038468969893741733968236313762575473106940254308175705680302234814280699693913949259544392890466917894493718286703156433482389624274963295951640193834332482097233169400390277802263589484913706113000462590381597190051208044329280800899809854902440388842305819431059270837345982770959160156002832964959035444939460692227785591390093748576516831041324166751241555659386832172942431868963714239497919178876678723190015951464004432224642242805492889264847563862445834211532437117890308495021393691282276655029773303479556340844317943106349476803983627079182119210237911772068587056605772417127480370506865184898766915494650765736418690364226126587720921785540550503294823258163332993787048631101192050935602119788819012653776801624857381839530812396557130910580700046912390760780861813877467485958130320541546403222802456786158557447292221594678993341566076827706899304709285556800911478509801252815139992081429875366236698676800439458664227339616936888359323113745759863959233449015184639476053659567803961423166900123657868554268052353647396096697669170234589822531407046622713749191333152843616709849829479979512697930293906710671078872220278479362868272543921713337114937289926998726323284938420216721934676104193733161104002740443643425950414320017825271245927732763494917370910638834181402661175175583075725861333120647026727175023193165817642718790145232411322636555787405217416299295195862531812194127020885884788447738416987316525312389052547193950230165526467309263153526743501062547319794195082561391185040945914896870682997830026924998826744194659837601409145604294393562783824270842720450081240071407900451296247517381676802036532964466932860205952555701197495003130437930336570282731128071705945995998148944990988804419705911195096769257669229453063964015208114676448124928751394365656547700556634325830951294617101943531328681579911255497874738815779473632581663288742260654287059876284962541447461760003218150793477878855725314909867638676302621902440395804215711361750080890278072251449270748880423275369632028965757546872522351871285502405813308891353071639215902616740040354153803164491292107603721025431143746541880782768074578736963717003281466261734620251727337378223967699375418942245506738580754024066413429837673642798856790727365926929042879549660953712336709395401217590883138783625012678012758767383914172177579943498296602094434706122859106003542669189914059946546658621601329630921870422397527224428731141314404865883577050920753383560009372518377529757464347614275846100435596292899011855214345940443073196666841332039152149157614147097945000034652603542373814676809609537963974293306989836137190838537489365042725556940346869993559179868081208253416205644578766492546097149237905985752554645971012931453178946718438997118507004788497533443222550065928906831146329821328449680926126983540484791037730984987074959785646361736020602596974380916073746374946527138936943972406563946851860689282215181332761121598656635212295459844964734611163044666573094892692479665975467426954519427216788605498195857767248771749023993251984079594850187307318834852842778010518691539424112966850178645680732123172772195182154439474028479690805061647716111915750394025635432753803155930381845454510746401287987990000917785886687800539108154147927753174552807963851112625431704982205241401939521079309890318539632183362645106673720536289515070596336904978186371349730078492239002523848438145299156370905491815008769546921467699390110644625345734352154423709662985415928837369655940390544399926367226011748696790681717454792341632371292006477914991589659199843906950132204155631104159809287995965882961373792887936063055372714690860580704435672346057832224793669774966235896939569841019722308010360136561231355829029427169439165613059879168288725855213357340711291450818079948764870015266760681254339018480459514695316671295243833304196486196935608744812929006747781817772597819435490643875622518162878446666791485782375875433166288696560470996192342522010502352488536347627173812117262922050889716760215431292733085577206180150637895853887915592117667638855104758510292443652227843871876659664995250988428233287543085101217104708958791478362570427735990390153213568828131746265231708751332617773738329079267041183915565589479838123433579809078989467346576000133096017425582769889648073305950290846778292276469008818312050577185086161931730314107823228030260494178376941989773701939733385567864786990824449957610176611386542679966085376191828033382821284592647751038056544575948939062030514420009968543506547899538504656367882714522414453030091159303599897483953320704937128442462816536108152481543574570617992648106411460266227942850984189846002300880692210793820692727829021034586471432698534468495268999856549871123704195553972473502070733275926505501175416297584045673931818967292748342800750846880543805965844503008381092075529561664721750165304570649453192729082540048699859385782878254977864074469034830961446317777350025628067737899890981975688696705174937319281855996140106681653570382345702575710724517120361722491952116743128715728478403090177737362131330047200323907091639711201981825248754706463341059936824641411269006718529794955836254002069746824344201101772281196530508116868623186245898482991648735104429544045328682225195206782874100264719986268191567769504951582089182391012017005102985773290585554257092755131380365735732524597168062179151973156160082990561402409942701215911678153380237620081105766079191713178253171626063719021875329967040093247691743685695451847667501872166392779021544450998949244346594607081603740398253557749607024967159447658430386485736420313099209765856540601336745558957657891950810630474050747937712843321017007649012471896527170385289262358910931418992891283078917585339841427966562660345182850488895744712826937684881684062183289102754223705418671061104139861687426356436863754366903639331565302085055127820087426801710598889723155856759094338827048674448445035638339765062499286987745352453553540198741424319050695053364197551176491706879687189715970048640700248040300000345414212026643699976382245259703718088884565689279018928771970152737506787178091138216329861224371442973745702474269935125520862610102870119208346698768946100546174743483075989616126632795349017047227639805369682836732310071932261288074425331850310133510127813363524874805457053290304124626715265127711737689406219521215640572198338156918049657607871295036298682151349393914044992572888714444394665787257361639536021972215919470858567233932907631356776958018152507890340030646206551195325582793688700759297304497757939927005278330347674982737976779002195142798147012760010945302616755502923154074002764548861244991406316315754889427545966065207780825776322832065926699065527200606405231814940363677835199567143414363537419614050766080989290047669901900415556079653979032118563801039916372354743133060452041618736237418757856681406314529429771938061175566091179229794187687220439862650446839478931354049815548615401502722375466337619422552465478855878948563801700740189060559886267253040915424771102286015351234050557340602732315499037141481458079830177902944585209369280417972817585077148808031291207685125216849977588958329572536077417741861100701790464829920937354838408054096843099915695602786098315948215850594529582530206160047964918642906184646765161984669842582508192571333952203617134445859490278274474978141491898890240112536625547016386790150424269040609793676613229315355249257872006919987097586395208846845577340056106624083052163753487884964839420689312730668265143840110104075494522122571428504107822842079060569314474760373229946311616777219579287007314887314577166893860667141714261234172876243562684258210804582229172186914865357369736113363052918012631052894073507622089318442349677416540432344775031497495169149809740579937912523049711395165052721330268695688076651732978607915057081388791514007138567496153094277317043626440351739996563863155695932409426227361164648911253580903418379506798429951750061814699901499519458516996076534855413409746043148189849977183302952180827000069418010900103189772569675394458976163629989725393566089247959044710141507592693517164454718262201673846950199270363890849440205939635231556985491098861268491026686337556063079031262496777957395621580246204979844910770244259583793538526350127478261175694975538598658443369509850860653563140592463217050973656222229563553720180531917458858593162184418757201121913243793250057601573936672595245289214005388899324547135075293787907577373658137248619600733406860365730109055199372697666235943529322327686342960604523082904221245442318468543961828450846197131439617096374717818812941040086693197961826199773857220859048340909409773787567776088019487208382648985333577204589725220752952224015023744467096304788832023598785395019351437391306112298669442945378131895391463745395487017700535904045361772975505156393539620342429022919329850205648887814974482554229061427023301309855665856190115556340555325513336128282887707348357230656035761794394340141168848064303037212943051342980522859141709683496219255435049035721580323327341775720197535215199804304724950368704362003282079655361840871424852466502215183109477548979757310269376067216001717834087685746441481343795791111267277672445855138618699930273286179088783377728354754529494555052221343195803203809129118968419945636503502970796834214832593774188944868831313840823067367151510669136623268259548782124833522004694941070730525656852048978318157511643857339613480560147661361970084174298761554251502635162514276296815283299943654196798451831159069711395646550412015584735035369225596233860095673759368364625041856121456116997134623842008220001366524381924944992720341097835944920596913580475498811852286319523924719125554302383686931177034531471166748666181229997398959231398863854351207771041892121765327231047005410303943606736230794484333282074977852421419806647749020464244309821818133817624438728658497045443663566154491826113281672396740742439601182415217038295749005319643387934781486404354731922845052827514474251243549922882123890469348782575711679832739536873541110896278591719627465034798349756642548699312211563291590949447440759677609085629039574988293394030369730178133493806178055489899614589166430258625679559732065590677097946969644380378831338156269337657687839681096091264376638182809386551481340041056728913404904764470531622777670200631989094800531829404100138971107415151932690745504239247261046715078545368808719239795468463237927066097440308962302782678263537001082312678671986027609915886135715420462249772014220617774585845652079062038564412175215886495913187214109369100389154166969002007201524928394052672593423678803666892403314474967380784533004834768313596706959196172653232326966699221058425774956810435872194207426801867161718474465468870136080556603597795712679973321078072957641704005785029944380634625805119646462620103642807220826640461722035666059127755292073548152555024000583674885201332829485218972683904367492364912986601556395686841837917146662962305574987077002192653161541432493033799369929774059241340501169298588098065459213945859750364870452076682072105070392003534379584026484185267156921488645473727072882479326365931657037052030359774195341506198965157497482498974288632798535719380652896653643366609589421946289671229951098997143806273879999250165435995579692347013301800813718867338456047449649814395100830682903577992449835616750441983117023209656204423026642189710318326137880886067812246264221928306377312981155930683587206675755529195642183328864373540980614626096465698908618926458035998075386018015289932367241769725553094231002700049059710031557562637262277581491701471310648906265446746652122602249510072962496878262552835072563086454165240458837699237868228058061317517444434095386292792137417720338472338760647689919139793093476570191079729322532329993898510830380055683740453983731165389321016326007345367078038722047241836535492358598404909616193071607662004007690345501908710059339847861059251654162880913496473145946546880582867030381894168433752560496013798561113952219184275747659398517012602043053390890667559934675521447393562480290560975613617910558277173700113800499995432379144002348373902745559890144437647710714924243351228499085431737717262139547191798996843582852040382153590431230853143078445774494592023024412631399709040952148146327012980315671336782941580231783251194698569173149108978258178590478395362790101024468907783699211050875466234135348867471736743983023534803945798957467922121419069321475496139758596243413375348355915082832971129364720966267301028352982103354976412608882903417443096107398393781164191113832291359869852157109683612494733101647081904229365932660326708527627860636302912289914927798266178786709060265863452339043459455926115115272911724929873825976270444918298715488635687051213103269098966262174902327672209179115698350056090022204488303049553349172667211487032089258405896437703199173377177705493678846822196075742661550381861973716931625535960291934942023031913800621687055439567457758786776293626172669309595142137437910420551834118547711307296281120489119083677617010474282771643171101127002820864598717036250254766255872302224287524749660337061008963125956600484701961290894235009887081289638445972957567695313105652788545456763980399857298387216981934135421176731922173949633565042952114020394000005470645527466279328747820494478203320889184650403834092822508158214380079408942227118296986823821354695383210638187112292643234448502694841916063079433102150373736949946237364045684742618621604078206374241406983945801444438525627883546304778085153632503383310428191831917935859431788215369930393469807236623906530362220389838687115244241081279893845275411416626553745916752433799959810490665380531826255956693611694635393937477006703202745434972977549953042927958282043251215956515722263128859210434019314966190634564079080015281413849101028686616712661559484554715719797600487265753277993353010796069591232413579829771249601214766386669056170213561958259512644192527007998953309912858584904917593849532329144896077100806634215471855279784314886632061543976540610051446068034445557943626023588796845070013159750699474878961086437963757896634338600738878290350930201740971528209697223652270323622899069083054856230189346745299960116076352122508710810315117923503213264432112982702835383132626054607830762964323908102014132977654833288688116050086696915761123479192963968327069002780801460625394992763645537817257817432379837037255915479393138466457455310961676334343050997387679451197504715449955122185752254377529957666589174301048052135853217251288531414558833619292093302058741686000699956778077539397135668502467434826385529396508194740411565794885651074101058914181808479852861304337649021215760600857814757007612705312942456149350371982714001454763030861193607376130890027163219446136157067395106241950693575901135222338517468327221121204027412342166695925865076951566728994858260123372693495669329047069325712991857469674417210767703221775748385259779582611283141282022513143794738433737461067452497506236810866135296309891462113477908555159784825528966400372494547657197938441956748030542643348264848388804813394040081323856587923665656195403102955735147161783308201092976882085083076554883888744447112421113472739981584144392246987049986057435720234231891583448930416067859990619560841429840702905854072360329536890979397527221734141329745589377006009466118594140353124474612773402579857903085431194612317166054754904847145171517411365421092400987629279597699167172007748988134623698374717087910569171176414836228931012620878109144731141001409880993471831217709097624069278387049295479701452878803977663674077036950973030426593291507273582064041916923985966327168230039451052712099256175255951606155256789521263058627597704994170441017092339623639975911371990966110112317397273081894238574242204667312773461208240777595204763645755610093256918371183390116080593991613471967131852616017701717439953939823155239951711865519439237200262030363588483793461270180819899596884022741128435651732087496903355620666268748432056089917304671367143922057075434637609648774504829190558992799320742990633308811884689370149036627393988870605113637382873303738086538766313776211474108105447522622818063291554881598481553163250991737635435403555770650310329135098401601747852865534029676235542031180560333476773154544084266389272088210651150964449622022866791454784789431533419670511333098562191339614806528166898599693733965353331723582255252075748395211027587302147707446612406119193217999593068254341852672066215807060380401242329807890081007565292142834578276985595845615538159728846284446766462720418205314535102671751675262046153189001278564731827965713591338605588300590013950110664548946098913357653219689817542299109684782366668514028568124920536360460953123896568699888859853721124606256545787340734141514311692727193537676909038455265264207669566732867903950609048890792090710308990013344893163131694661864867742782948616540675666369250582361741467729220360237860359241079327456902867546422440137328694257564002097527460382772977907926261318502901269886239833529160711461347986471861423354311284576263607430659678259457633885733944057025419560934449507718093700648120341101157434539133429204817408747596839496186677618256581754967356316860384423310739757404990596540192268793638402953329782925135179567050904678691896667225131558823948840830919610680150110715768849358738953384483746944163471410832962092640298086256032566838153741210409680932541363839603765872875416122501004781422804913925563114487066013817112112860300697246854383103152484707012818546013335410076715897564875974553911631265919206883497316935009989825937940024676206940416893104993017208582890688516372479130899239699968130397171189345786644247441685203171292106326611161782164580662379640491190255206786029319405676480362760551248685195100903091248731214712825558539509233151439468068521100392497152761581992998143855645093372806619921969862866129260988971477223431149821690388076318520192780984218550903660406011386078630771218610068375563594187771139003115318366937969833880534823876618675852132623931747868668711566731444875543520489161336118665467021030605795487949319024843459688782175180193268646383677768416719899543527112116858380494336854781547409859621179516403616672923954299528182909974138281334872357733192553468598768599932237403856699777988761448627550837941543379559706184170886272792738775983552528649085757043242951326351186861995913977886819982049583655240933462038063829354227231811043740318586364714657627179916717327560823526772181523644773150303309212626760794882009597044355087710164192010688413743652933701848830609346806206063367636747068697226074378133344303959506450382808393970632419338448700563126761802479825572991280185165986546603418504802104649701852485394879965787428847191290278408686185360460472210583239344681237400099104169302385980944796487552995328616043585707490544906428092297904371381138426991838431214666231138897935066590348912292236998992164895580837578062709269713220669231242994537355981447276694638600564338734584785875837407876898624348521842932088327168425231867788501177820240079650789998754887914212292054900781115243905685790782966225706323596079193532809226661275713883338906597014780790238320607900393484409016758382412546814342474679932981197528840736759600051730037709934120908315682872243484391201394561085101544001581787165030806951204377919220485966970121320699925021331009654735871546287766319656965332108393683660417681405844234897702120787813646452636399639140821988052435290444612091652258695215350438208557602944509909035476355152563388503011917568472709957674876882366171628511034930612263698738944764536339062548644471091564785612517151615880922879965135064433814743694908886708180008382626901254448559217896538073631411283228726237942072780755540283152703678204924295724338689685317839848581562948283114163937421290219025039265032889460355217368461486819240225516151034065735242385865387631978613515842069210898779781556849482334873264500493557214617912271661224570445768890416450912694459275854473769346520483037094482148789811236058579428156973496186701094205116601780594790890706949558301995226427049241302673500711643057691203448415000704649888899009995599317070803810215764678103838483317505353928828613716798078041603423468202254067367088470497547869374341189207578388303490350873154200953412890140045110054309045007050775758657090619581233931714233275603060022276441726555122629750685344501228550329015818851831130328932268339138116168855437019197853932130395274918840011331226362359916152214871267895331904614336991568461923623168133535965258373360903680598185018474566343741210568778862609560215179369016905812181610262547525444553711342157261861449050867003711987709333931201339966216117005922908199582817335194330447154557028734724471624788195830666042540031682808567273356204591801862068645262410299790705787788471208840136084561121992112480985221893297278529342058236217191385876156350107795276935418110750047649356833554505925243979737689657710768369299167669592286274925814590404214909900374152759095737861437854953361960516278749490523909224644900677247863600807608700392092442456031092011318797118647741371779242577049615196689377289772004790448865892195555053371020255097533020190580904538788085761438734495215564644715732428863737003307627297777238181086693871268357923920383021715337332235620378846716114238400724172003587789545579481131538423789714904537378861824699103661007637965842352774941261189328467860334691776362301603913940421696419491374979123881013822771589941548169049570128081449578854796692864210038465719206596668730762716788476174215938898995773994546085637683420697034254009927401044365536749782640507097678369688455734701254045615439708608020038973666011949672740180639740047497385879918132679613819487064978714045974531360038343102360314458933502454669802992463169060277855316968134214648930423255434283385290347800590737996617655884911912859246552121004158771825156147191333017585756675250786554886477586394465410344063296226872701665184973086917380103572597590894132169181257650167916074966113879302236606017746346962301168472348797702594232980932357373991876074405054215821042886198103665064506179925557533481663759035789349032631275798311092547091185373145497361510601759982156866679588873033135962211944878934899913073499876663718613735194572617200494429949796672785989353292461191456024414237272496567731357941899253959321189627244549432562902965325816917194367284104313067879677391860385189589037922034836884615983877390222655414186870044675990612756990698593043080386736397981805410936318689526053229612642037345332466429066155263395404846314401357968290217631049050834171796935212902892866133570235414384087168773863751988759534092504125957179762952612431857755444016338536129163159158136816429401272890526889555200176668345471869303590131623417826082124162024965954276727169835800018489436441900513073822955921976654255933672225398316043844450513633560742096049685827806856635907879794376156126358945780283054962446679782751811703549993939238194189663758743350394243601897072039641070918300284973424893506340082756224740699253755007961723965703630678567496230466789281072749258857056033432133608318773753411086396710255257439066349109592873357906962265780542426188163603564723659396833347345767688264145221813674412894052963419841034662401177614893789300066665755854023805026512212852085259359656239999704576605723389526086059404552160436196301687939007720427932846165869695168834744517659454828081243287128372574746580044401696681729772295601254059361036649549441642132415582536723801761450727006430858404878257761540284350803391548251177771313554906579445557282379407052817422100008951551582264844766067532541315969920812038254683061507221800143430302352926581131925446422234230929475804810657180063497539463694368207414210275098358672629587501340417640898004204742168619487525634959738016937346014355082685006773565416408631357445745194416882513985499783927898036853427178409905237927316763868819537236976853142280578298064730938378786417267301021691853183581092049152419165309132498277209357762289043963391888292901597038163741332507878895868866119604346097790903504379480963663002488373844273240361540141829130417797794182535645959433888138391912308432146430845184180066278667747283991884891646092023383848933731894266155361927168608112452221699015838741430043733504763124611081535962131933278250806455681867854372293526339728127889996588989694833252589575758808117816019237956509913924829217977553612088580035953386555202503607852596638012066512738543763521040326664196154469482828964776597534487480192212594823361332960095118599488793277718236245155021469225979617650427578371881469368766162866101039089465011047460541941460769769311439663664784890896161098992838244701375497353938783870387038369489299191104158924307854184541091802645605481611671520059828299153019483138788280779580372903397494855454792303281603625761022524048468829333649163248261588755448201111101495827310927852567390281017497271981505408516308875839795353381630628019187373008319921452779283198712699679186400579881706872049499733977166230118898408010565086570075952796669223317703728078571917457057535866803616911203534401523951386118266174401989107894507939149429744289111192618517301206578603794831412116742811192077886126881097655399692720345373079078407126711337439205805275998751763885898435098098454927918598950982883944988066737166755466383505940112702129350163667961506897156458296676408101941675056250638781013745292661105625214943159538190181354915524659396094047979654990324641757669813238253640686729543541638799514309490731267742762499258010521754316130543742766211279158523078982343284333224092947733487860528034580415133118177068211442268326368176775690168963499856343117260820325423945263200856060509289279868301760324076043296720268246363483208116341909762688224577371511065723171069835002644253251948925642837243457155970458745143803400692397846206272873743554684799498165954415847757451735521439643383904268993642178342045815374582348775044004635884314196205005505118244704639993751089457007021589978782503774557232319325065432567831991125929832016591570523250099267729910496345883700086684087627209862252725263081507183061382681034623152292666614580995203610082253604444115955340183270192742425258203915236103154565257849221754596644093150992821843906852896744044072375450781010202602831157457023077803673766115019134384014221168659252635271432530752522799148394026597068205094325223327935220896037537600464845684305235761334247963746047884913773557908847005846098277545158213038628056356128424755211567225735359686802400080068608902457401538652190025981516944793363384310530445834466873828725009055383453957810626392464604819071938768516367100839879568742697942795683864608944741903857689124702989174368506623415463742186499376303334926146888945750132772037226116187922955300855939211302021456063570357841404069523247472896976612378489513554870693649230562576661980626570739092747383285422561650368271177161134942745499307431661459747105336262072770434425666537127836999345166588005155020537557259444163559032283715949269274381776359890067437154653610855806393692105494396457742725766143107899706553474958594617531865668176940239169467076160856993011144880304207513792893009980132508612803239508220029733350408316155688817251553876837853040205610832694029285469394501402751440579074657262710124850374382124468318435007341385760415529482582580737349874233810008738641980987347209167808777407822901076411788466158421363872314665672492965142540261754090384113335391087316353823509710594804626847891554730400042393212436034033845035754148518259775532815853049174727681000044740354671852575286538141526701336618552026251904135729378112506387623391763755192932370455427935345559723209522317238471503614059542344886941887675980179544955551064543170125107667398416878285749924062542098703798805826999864913591748854871878027078620391488834422353690668704203705390452202901652641192705303229297612567980581586500726693857337460598060049756926625076608719454124898313907307642615260764266234666425763204098566803666835151345188762255207768889573019063853821585180130951277238844814262919761203302542769808101932858663781122026190336395849458179385426583988798123084587405881874329633099020808391476079303710957451672098149870565782055000496925427182742103354695423741836682833516749328368515337908360356762667055582254422943015904879457751391598667679161234926704742138787380364201847589384671148102807729216324710293278631596233003956580936941062679408335211118941764156565147603140337936953394568541795978894044781495940499213237061864163249311137753542293300827372740084978548955892928611776485256447811612811713356136718249585713020846236814576637955382771666695089966877658572852943390277716674127906601292581766790258260428245096078293848391187407012732081998305751498136220848780391563778390502226487493736678670713320785044978450827555623491472240999062460453312336882468300370338530178689897768357346332496746934692135226765064552772166482004144816087732455859188912307519969846823508189033431511383108688594560667259849902841339250440911139077966371322754693458752646996432506529257972526004559585172303493512967351867651338929810453291610266954917112117157045648660569010981916466675623416011836921185265332569160854268102406135119950341795091000048055814519618314462500430023097904060814316562862301252588508913284383950860031373746959868757010894665215079776089365470927319858406720928730720393238231905877939183417946822134435915172967096255376623935224064628995503944960809014712885004893774159396829297567576548989464066554501838868440579885194715067725386801900636786299339676092231102320459315769044106536941277992766818166538947291297378285552702740366280207508363617911984873414667932230870632690914784829888541914716633487900131290952969782859635827070186082378679164045001918865153067505994811343490550735623403637584959108260332265883706284270167833605127068654907207433436240361550089171990411790250974700381433081790697944657321461370318376113516672601161405241781962602550376680067381325072978605579133311612921404138262276335830422627606364754783246922319308804362373179698946891167963894907191298746390666811257018590299267027000582379978630263445582232878812346802573024685400727794144678713257095672405690279786339734458421666931631861726745874514788319231155839536314443649116240207650473103349688603796561474891438174654489024676005112157369981052155815791386134741718441555426465875527746567090525349114580723703470682689420961232307918375421814685506466214850621634118153730531375183946819533405489282224043872234011128721234216741340734618615576848488547002568617116843185711899303757396219192838367135052441490190573013277497604224574476389812961036348942377909261894472141896646672731955496410444915768828000930005453200832888367473667471625786462455397989065114855373878673790576553894354715400963326303573583844710284322519179033816854155137428033501484714655778753041868387829662342441987714066521509479871301348163812080490086026757883669536256580722712582572260730475793089619663578523649731672845143970650410340566830353387922948862250788874831715995698629547987751129942992817402090996998810602158106583617588069176824463760009137336805204107496849493372970537949621304083241271210627233847730618513129232560174353567008745958931741438044397122044058074345643755719214535154489805660441261162581149401011997611203527359991031153725693802258239903538419576089887708969394760428822952885450289982411930763670383278545634812044928427751957287077896842967803788182738554923871454174013153438105268958861473893558435512684854364426068020337598735842572365424413730144143996742395469995721114133614902101636226234397253958928410297098970246018488166326184616208924594491926106715802748168209650477919787657386233142984171214228384736771690897134447496259449335068689181967638115412853489334550939065951283478805793747540544483208016238631449794428602032797991794365398791034606441141025182146159708298084637289460809179069303845309854672620368824809078537607959752447414503680739120052108135391740050180721087958275385732175761572096857909895633410382990378250405263846569209301560699455908243473915526392611876614009606586278310461270127007092378620036697877660086304060132213346800653734783168917992486968493804912716935431747250692268092781241388668836089987388855077730489231516791426534859047015181998950423115132343117347421302590005690261962083409689371413050989943054463024163290327132529237404283860132174629045854183225712840578809447117641607764807505597805545180908681569964601211389537969278325459290990967061527302094509926941779300162839286294779035872004269163476000240554449103288365839731376375585950269721719901168062175193964594984535964911828610802281692856071905461058924783089537300636878457310982353007550861917316966610786057589435640458722401416850872770570299827467102130976059793750670856156120812690737505066950718742013165291443824738731511776423705619407454216826467502319213028973734936945710967712061157051999887986216989291776182598862998981866480044626896166027766953438513368398250640881368026940585879360802964483964859089417001169072463939417597287261397430635959984009262353883913427395964784549961044421462886470649875692395088052416720986800551989524274350288454534166610434880387050894427445428039299985964433072308313094996015993212317469781380163262889473233726959667137538135663245142896524497479073890188296949200726330400010083255407406301570444470869257626783840687667661239232397124271696763882318598092510104098461797294077004857807387770250469932552347904141770313973055654865038441551424002053909358048219836802802551920684684525121254574316299951762961188304352460467043184768639924786207825160693135178045707907556331794012072357610157542957148872490550773787712516946312392019761934807367527922149422029766515989593214903782769858830442402853197359354113444328789208347691085815370432696264490995089904604548693422597746906174126035148495219663697658339695880379060062670608599537892974292004117814338811572655331993565162082917289674929110908471996907248192859748595323262240486824681336187706297413801663213535843324829612868073752811518422758792632471379724533161606534210229850338469166979988091539676777802799637944440147111103576141592869374087589178762338912882871460280705590202895131994861101754459908438151661611177566690570532835054770449095997378100231436342336010863054215245591811761301597206356694627178360660156429634546726764331969930825550630519135287756373494204306855226355833308851100208973724998539070522482834427998529846514517646525287187188338302266115238215709247673362620712908372916619038020902211875699519513775722695963272903634988102860785343926516981403149272814738170031823274060212260740635690476544192101417374408238508227955872418557548884196646546900447153895564822048139580465852851326058471065263536744058977538142989442707163878360816073338132507308900800475202314885141723135771256763881894385358074057862237749105895967935543561122789829385663119234103423462841694286168323196128496661665964792111459037015833543053235270270913280537064031593498293119338541274389482582352459069302683239683656418834766327484142437711878944879941277126320981518179665043574974876941767557363330473720653695294486592518875820595727318834277641596769183523229845708755615045883558772876721454113911702683348343003555921201590568252894810037606279703125071486322439963082997409119120332963238858452474168175291361312371974678412584096458150853308323634402350438227988833514487821908563043160293233543284631747913740817634958382912409232720545986265794432276527807655995821461088275560060075596348990499874045487660206482529690998568804701939085849426907129304390046944013146442555570979507974734006400876170433945908564854164352520479642569092591292686078674644891682715580587908555641984407534168078568611878938246987449485521203701045813249706782767794853320013333930252204936046970011539679434094380140108605730044126372414913649780873959482362247962388222571929871963247438555741418152784975566803219690052751387255530504458085663001190659036795399420933094860699206639735121585321769417157589961532992107164494447940107424483719830538377875625299023407920136347861303072214200655018628269448730696144198448176899960783616720383513653236870970997118568997962015824969571656564050554539106271215152659844108195434011342297330431853211069817363469244793756427639728618145521329063455591836980807382930019310458476165518635975740240857668491725600056521138879734922145228425211900493927618288088303066937281587687940528489073839108601017782123499733942512085850816302691383059990916322169152211993691772051905051269846420137502643277730565460732194628053955475163403902915686065467031773500736509787455641693764009754625743003408714141034960602206251709277441134993793775818871829163324772276056299125252528246260420627192499437270248774035754355207494541682824535005758513285469001711265944553839135570866716887608877019148101126489583092541873276086462717883110596959273103476573587604961728510073492194843126104260291936361280036400407106104583763318964387957908375075956811262026727658178131533708808819162401551925856934328800715869264571796493823314987414010348223623430056938296775894160395563148343086437595648130585513035925077156903982472045004221135955898941533017247053840538676157999165718978267758469971305589010808752026797672292803628119402316754464884311077718264087588095728776663369225663947280954132869775093530463729773305083371492067573062746248549612348465247868254014551067172091767812217207872409786938531983527196023891364528169224308693037816677203537316192018566682782061530735140344530962072672098714711590475140866967412787038598545186897330077832135978169888370403977087417982032272633550435241219679763964558109802367503778967759662226453131999001315290430276603536589564538621814070746160594530039546440787864303106437307166876573276232097179339713544751387103756750766026071688419857420750142503065703090914234270297391560185253157322357481439490920957149299233933375900231892694610512487124176857074939807729888830899474747043391641362664667090122856264983289708267833596300764316781517987203012177493038964411802277723717535366757171762815247964532495052641875872406864098965980933923590269277341154838743190067212332764477168318748831500904480649033564339956908634406743736796249968013035464907583436769440272418011413488746159288068900880008574104147120468310704009069024972863725477455419806077391361594826216428525700152552890724980805709576934227710811613285415348127316516749111376310641615666228204776589132026416259405292794647710408202422929327906122199514131950565481673337519684383283831287884453331184668050141000578795465655780162302574544120487007577523905950875669247489714187993853386313200328561738304612581016560924428559023128733193433495854100540402055049599463400898175907177238784387152405657345205093616192985519995513093402764196369998048107414415036746249525331024369952299861585724188983897462864109404484684581959284819748876862418948917222725511758552275169095531445089814064361933491406317584058995267047641976112046583636148594596812362569525602993173494067779737040905614056787246103517744096035581072655537468393345851108576461432367058545025998817026448959383606448496310951543288987196132138684508097479901083425762108443662127210907436245546388758228276860514712533949019301949603784488920034124048228074759657445506333640676648453223406817067956354742021882847968297458525602694298317140928178204074165987026080318091530054999486322158866692184582378968615636549896945233650307418735390208062299193863120804903976792856678344724745160625247440616269882344746991267659204022865818381917565195172855757972736434041600665209965594255470051671552287519428363046778620841886338339272428445164515662283272098395020360891278430771388183291915424886801922733941176319285712831076249407001514456987048538095126441154938275778368430827153196174835380303488514803075385313533369818046225247931254440980181098516053115276478822955490733448118719751386123819265277124758806384857143528781556600305934617095298414878652473752452717352174260327620207785666873817937529974676953677261595574850283012178220343697032642563327917757588909076862224531217064227276663623893177285196714858017638652082219330287334190377160436552457479810048849179382684382940448911250544990926282164806058745063833257251989227146173219673450052658484186397730630239083822841083801502634789009342848168726275269771208287925320810186993117413657803313863260984990225821179426878905452362591729842346586999393523134368916552060879031480322887129120364125978323045901271989662740570472596082062028304543903336992864420742397147984158457695954085176657342216045951850060104012699292129436510013186174488729372940204847470392180292131549110188800687093845334661734495288968839262843978671126686717150552393224576304715127814435115773992736158173294652221756402533044928685702033561630389410577543477592150886569462354592303043423920191491531040685246933225462631884260865588077108613509465516259542454766743804395499544120536659077240565065547026302537128781097419212929210333026586478588373678391838752901848723450916182808870792025843317263574044461385088205837089684359635305439063229079400487312184345652556069232707862408814957829010188246981967461069865960160162867308828023644829354001433729594576641240356094945589279264121288743855527768231356825678098337402619096941384588013646200432074760220499456662031351808595790824501824971896039670776585681031363976838887372234668001514359110427258545524681899901866555726672992130418872966117020642112463721203572146421846122058429378379809158418983316066586890700683519572621563770127997207114816347386003498921251898674739187177779844635773889620650993311031965901348823652568396567641567455447338463398190978696665531334018917418502282311164318775953601479128417393977461734386294638638603510948103409268787596568194039908404746082773094003944069692145236715966112195754680351368719594720893604204616867491270328103390612089071051211570180459816963786313423848670721601966018946522712314074085488955774968841036774788888370669186199857955456767386010497876767234857964348564209044042769272255176137753424172587769855707737726183493438194516552269933347668934307836086933342555575489292955631894346199271021750452795621721120744555343337138241258358114200790864461809538522807462720225707997484678929861732503896610264668082171772669315182853225315725442403438052733197918841600324809836656437761700408341699853124305620925753726928109755752359921426061294055093537346713103170849024534486209147200090784944064315276447987843202140108076484422563097575114636218829208795741791009102038069217229586535597300451358127457588727993130755572023564401712842219093808511023548564425407912257560238593200371776877013069923006400577673503527104606806625693538384452703758839643423172687504364395808353420387250596046198873896623019828396000024569931301670097797346209006620872378266862435795713779789303014575430329657266805114998722899003980535723255645351865401054063736870894366415238715879464845906252050397916643365465653816622266931529764889056852751897570213386105026985696983468239912191478213731082980708632173415128801553797700470154886462185261954289503709073523912064317484784824252528953205930077144046127472366768594716300964973576898335556625145207641096182630972895943895143958575878479779480155854299658440673169664371822299450531420725619725791497922418044050191601501215224330523988447036534699271550106706380265624167690835629992631291547190828571475995109415496404263035245887135997826781746200876221138989192903998150907770002360971702445842085431525687469607757771599490218911356573186490981383380970545878015952943746793818725477122420944417159883438935192667936642997115948806472403051393921217629523695262756226592159329934058830213279537375112156269726771070067351083099388014514625135266461663919631383999660356056864688023067171204062615062996062270884107525272435844738961843720500799206933921215503789923507792121724317758317818936835290988021184738219301626666629693924344995491896967194971876593442692354657756960218408018293467894851163657895200866019996447829496277400719067686773182954475592068171747417120348095552890531067096793144799171348182309303228675067654872966518362202886681140537623644582255821556853217478155554893089675558039135998093592517438663586888398135652633256744637340565914917928931414142796217501853818086621441483141278724494999231994498520349262750599270071179520492668243431500110314875766704760421885953153461656192158484151993746593412859224186745863020189444207691266350969344935643356929818283562466718756209487440327951423276188827193629280594976772246252094040415611154537375096295786548257698134986786742653016560053472535751617629356947696233579879495253796378086387502024167816728904171298466755316057976565182529698925241805828662873135933096349308741340336307086331666599961150576790749823784735233060096405450686520985690076072793478340220908366363938745454274719286544161163450107682077966433134883278477095575122968164279984628759630415984585925956140380247379390837875482763233877141606598916679336014690451895755082200530641959569261351465502912528860552884240768065075471359742779802471543501458118415917644762528018244167703907729806672450673228037022861963541812031557391973060150766981580499117284911762434665805176262822968558644631905624157292193184149384333046692420855348063755408299399625196051288678350725704652983978645287534799634744225442813158040846504765514793893470345528347010652688234061460168262907229361450225267261667624983724211518121117536305224975692141352355355772316934574903513348303735666986782958715043327220482042570180804753897784405572185610968319896076217593943352298967592171216458346234581147232035626392631812954110280622953390266888977208732503459974616290142732280788330789871756396270393299637823266484227696196051369641205840116288272631008961708615025302273668947669830676838439835339188470360585292260070744942008294448988489512207958487603528287832736992537643620156736495301734840578285798539140629738588849756153703259442175061998736179176704983258921643113234119569583707855903379687744291752589206855564168162349240506359678034366795112991811264727497770300766818943772409712564731975316100030664424104131475730948191392565618150608814517704631617513466859559175791093822056469560480587415978920781197039699160179089054726853650113360711740577650763286086598169443846959604964022180702319388284679413598716952326246297951736080065772023253984955621401531430105103794664501571497721955571946642609212494570825734732937452413697811618950613968714745071809944872064709641225352985641094139845405322543686082813562435925430693724778343129970640454119456894435941006474405623792223511538581054274238751709149431627638927716291916182099208032159431161285630690371967926405804508005038798568815814459969607036133977145218786476734074369043149466159581072787749330731033618322292861703139072329828322397531401338321046548818280420221087677794680685477114522231124846782551599606337208572284713404123080434533154025635292313907857254875342020873359272381031532672195494736086394485678723460366231949749919656773035176018353511556165764641135532349308063542017022430983165358894364094821570705656522063300255740435465161974706289275939727241509591321644724522775669830375679459959114998360572121723534557233064666008671983357669137378167394404068861142083216614710812208475802824296813287392816829173722793669300661143651442188414750246281891823587535754318453260101357277864188982594664047460803607846767177995159515629552743241149548360732339870937241519545457931506570498364731286402707245351000999183432513102555934668761079875769413940119754649976061730343360021192042722460498833513675777854422397992486683123790901904191673588278208328043172190988432743407333853384266044473813809642517423077544838896356533842594525380855451060302531642948267798247482928957757999715849916069457851713247238202034184450574630152312545068084494760147537406627784385932516646817636645839729938249781056112556398917620897654536751541263409091757781458956374642238041248647981275089401433442796339487577942955599656087459620886953872824433928879992439601346950191529496745731220012123716571330107795233183008475653817549883636922945719205201888224406222655703669040131043466333059196613436150892462964827749531877785706550661842427001813917624698240857603325741791274203682305045474049130700640368051139991141666375039411063059278112439293339657906378140126516148306512768599268460914651039324043352454873571821153738722199958909125730111217234869545670656106603886707301992505911902032740476852164399562841504120207941880393311733259583159952896797783113081269581589188547946600983056675127096547257116722593517242716013974415047830883283934025521865665824766764393693315689788218001183181389564496826974751300143253062391634510888423915518397063753835527838279915145046750088794417051460504348595261339883664108853223211109380359171534688901642133614079926779869532554553874374853341072662498498825931541489453006531923396269644200042654939586048082827894661572368829950992722553706681823687781128147655758738567060111663476894624433413041890241185566238437876009516145938333137438194839128958477626536953903995165850959359348691890355511348826590279123873480860965987130349649872626043804896829937883054216521715139655972857176256616542105505943691578969092868912837346738036419724413477275825670085564763582228169808839756174708063131254685890374219130241588454483831579327890391152507253163110649878523199223577985567379270258778268664357095489956894395923005801294380683807221313310065944180980503824827371393932385582328219852963765988443206500550421559580818601506791871837556174662965279473515347442792326185603509077954298058907985331660664008403520078170741737221011751640673066362517583202527990462642437453781868714076943558465781212656910878647348187592359384616598056257422655941944271228154263932732356464773065180134838004768415716027747226523198419579489387109788597651121725373675858502547209289668969397691966834563463081199929754908111849096989054021227242437157010056695088200501961798797031309452580931685906366485699117813765137572911405111559049263843940520395297778169764133191200680265453063591609902092647951585752764838545029577558923496207854400156335508790680900785941588188173082636852892333783798724201701386353337756579215008577549333051630937815507015223092659366450475601972450945468482400899129051200252607134928008237251640013721914637401942438128168673901023967878335963038330625436763175947080992808042864778382667806801897715417837206568984364911790712255436016780219827756337656428003169391701728465870524369983533075413127913420450534217509319634644731448416326608888890809093585235320941058357197323256833110829896954410486948965927223668167481667370527908338642522898426974764955932542395599295105671083459713312205933861037923440165171013703011935026410784641569458753496696761584832402572005903270412126562509171029777211902129311264450845242352965961170028976669591125049346275007400130800372288595421798548880098977392197038890284172188058793885971492683506695893511898088897588034503531430042725357353144878095251930459141440756094100068791337168139525426467305339064934986461838336387163771899905123299826694906270770085508899678443051184085308305734512659550353713326975495615856330325291715900412902942863991111592050917453719706296790534394213803791156270650499738420294260826794584140747818628688573391663200456763834306876292900378123447194397159936216740814188976361246127416339291959637939451321562670630193350534957339101673764371659427472540033421524545524248417854793657850237120013570961706442489330065163865333637798109999885018280476412127433159918255857202785597232567282624321360398314252850936942834889135970650843591682391046778667282482481476951055311137273468790093208416395105080010848649427274734206765247248046228444719760702494970561129944544622336304932401380779258195745520395447429647219240956054162934837384757005223553880329211735949958530318967645319072842181039706505465567007845442216401666993305505753338315228980384855480189175097083950731154723227623315982904973532641655029494201046985388306211803627722713325666342204673976343544357717059595709186503804921399559433477203083184841666427006234931614058042664037573197782448506148404949227172022155544352939601989647040484618334605350418176264045687320969430220914347762281152623655060583848225989460068753648473411473162829602763817937812217381636877318854281809797063331939324896287239800310679422506613549129055436099703057232065986382529444149715052571255852771910191005567554343743066838172638076677338523552847641729680668620706718773553071726032311864272945107294744340590718313271727872413089073874466665859322604772366388469651997401098458746246561981770804785123370646169746526602358213902575387597998072519230316374334603792866769286091193081854705815421724577608270122258755235985128988292685253544460339885828574318320345571488496787071420063865019835069326478420158602561373608785738779486468177379422296042369758148177630289049015691337254339745916955273574995478395877306255411531663706407771948395637351188741142338480141073085665267060262894617649091145861316468298178128201284946666469159119911785460055005590516186094386191628310415767737758863744231580386096568498891028129926455458828923101127274533556949514978445064739494516016051006655331907759712959574180858512774705157438337241539448399641598924610133971957355946724510271410035000170562859883035332356409186090080633631625592176512624521106231197355206383102674145486601586722818566837844448461242683700326547082931038143921633582582758572408856900799920494989363617098545904664228000930816115025511108505620634450554440347138621025862143390471345897934222603076410027391037299968017209980636754627701917034480782231178722356954621811789823390930319103192215180428126392986244236910746428168422977327904593874559298297330800156755616496082500796325253272035519037858548010702761126269791096018814098810977980611841932172876919024622114735800585415807324398503611855890073173943695866956292143651890008806717670763364338806081529877472732562986693508905634104641941287857091488845890763299893175163517064011692754043123430781094084943712031207272389174864670300109210391625430234800675336802243315032830089263813989972070499468383230845778281356839272785314408733881247088165192540925090623478197665801917243412820938212274153627218678255351472167279887532834157409453609770360908303462605100493128158863599345678792893159506793640069388896802694210566433036429376393825229511848697805961176096501755179279525992103573009399242222587835028472250939562923761478907168032306942213941880283227968622079459464699765521684051575039914236385517457264331643635126222605877749726784032425595817532782123933485786652609703939126452749489318339209015698396488204908353339167259122900637660017288199381454176880139504608111684590872078465570097504310860670819336788815641383271648472035128011036493874530218629884979889863967366078135799108447492134987174249736219966990756667591986411330558336622080063443393422068187673602937461741455314756446328630559677508651708496680243482865111580978397584548392644729109619478689541800457266011604769926419817025729094840958988957253208367541393729716372643298459619142169527147918451265598573761682517334524997344018299095733537128510467109781935904030831029486223604392371295280795488834577611181437640218276386644406445506028512445280141993868983599755993395737561432082929931319001131768114560118246978085517130333699301899660219785837787576599627936988535927993118569896774541122712140402323427517809367467932651622906933165517441042071444143370524473427665588290041761766725328507849163766976077671358655764604844586885498108997736126801658570641479287431821814034778179015610014515715532437269124827663659718872853314705310269952778505990344144101018209417549118490298856311138071775655693043689070832759341689452796632755583831145395992588221384134771711268581795363504930826085193210886714638816154274385084965546644428004817678478862531353482519548651065438276592386880542147588112195162444899777091645213619807202386826043913034945067085707361049064110074950181530169631764157939562333127261988357755961960361038559646645403307575726680576502548250973478059539000814339486670004598832592987983214900505007634455975855710523058055312102035034600917379456587786864661872286487798656149935926350013802267659276864600770404288718801910055879494728378640399964476277325690731175374881072384279997885502925587552265191477496371177980612404452313187192150359144312347036043339427466089856234076430340391747337005971766253266801475882846424690985782244258763086089967496311236314366107008845063337965889602610246911861516476788548815923058406369617347102214239157183008397201663341093928749050654957239205979974911450142266533756006183207357904861578274597486438933557167203909534751172086479226652591654330268658549572493687039877385255936744071033964302845459894628345510420998157146808644126737780264485016904443591387660513129603151274362743381040203725723220217115681437877835213438339300596345237805940865025431627317721004862985832900126056355396209306030256754499339124398279785878380690361283059751905442326776969140688665703360479311457907875009916828993662963212070270287089899263071583831465361142007564602082040975525940628902750577407119879257888881977528565855106587951387018807263881840381501303209482804756483046057484057881257193593067296826922773076029496669230276598728319111647384499383243549201053561424075276763042968449707768835221290606300280259914708937056045477359633782637952223341360053902774919679591659559768674656711186190874425433869255160132166843780501311585585052015228668919349051308734150473685834873844741287453674429357678387208192507674247988899757624103464973148753980853903473668902310435452216813850660312628509097383585783208047010863645416615100097256363106007306938218969045112627498256191820084059705098920883465028241257627448196145660942370423308721931384959974370549644880122013781532954112167514639660056512582740894950545751758099276028971673994720152906646238560979289287605338457448020148749497180916896003209603682575033972072143402734725564625698023463380120289675109099773505428784728600519572595460732461871353723451381065747121957577308992705677927947723044885190684392833283413928742052286544350751101945423645757191471493702153531714993086947412283185264805463305790990719182586074830938349767259094697604516851406095275233010518614402886507122748074255941471224658081537410904038986233549256143144570929335269303891883682461906452537788066250725823665602559445948443874525139806477680152629669962111837504066203820069922217914865020631454864698636195856888659782775793473107142601281224483794859429404340258499204334596027674247211335172288390244576222318993512992872778379398836505712458398294014531565238335761216551179996856842499560277705232842449374849977282781620277764987538946810717388696873020018641440495221396738098487757127106974850243507849893928935274343829224403161793111136866965277218123531621195975172946763585998282579043204333299478535356389839368185956611298700738804806531718967294648712186474760628462807402443242095041051925756224906644217985208977776710153060306641981252281537758621789386430965114702828590569838584483312171172044668814641867039184900279762889534740197003109152050035399231522617067441482424120547709152878613541043045125126011822306279302481202530580715280157554585389953526013882286221429294183669846597975411047054083295094975019090634678166707988160967525518375100726745272761680984136060101965095984829993142099645965502161785529694194673169341957078784120097512824409705161889728522161020827094016576783796087976218700167488865926560224307590260395069240318952185812218104285429094924457320884860658431387958785932982452833730987693196820111998249935538356042552352416374746740331449089606102994188827782685669898661179782617291300953893188986114125425684943550966601224610774877865214971007401025865610125452002587692815874275216221544478591362852157598835164546730920083551516550755424641245098625312957684751888964476655444803861616175944709092795684278146308583790808575513008207163224273749401267866810422997895134637598001228878751002923325123777717583550881871184038719060387183135052121221465303936017998192690585785604888781728751213155251379905192844850606604628964931864952373486548428858446097971996505863146708281255322697526706586280929758290354372731934617832987771367004328071547938320203827304545290353632425264168535104315958800587276514318122527206077808027434320436505129566519883704218001412311428004120065764602554337885969553457847811654727734137122453551896111381123875558694329245273760392397670821305056786282198017524454080389449543358948963498795969658339766654734426345305685256452446175115852085389522087058427742945194552438027218912911727266469390267197119549320724816600086364676570449329994598376199136701507302238923841342560744369652213198001075102461761063249986548514647832418370930030668986162728504989602191896760658410400385203916357976418681086907100576937441328566116344532273142370977273188069526791257300502241013229109518866870982555819585725894401345223459132041368986024239369928940711855831326503719131817717195524179617585350942511414023479136824215124122863859200011822639528941324380270775049834543762518183160720730972538713773379002800129055123894257214704072310731325059133025332073056502254032396420849408836805898413530395637692385384980482909484223906512690314449161476588586902402028227891763631877258522263949067662061777415023176805120944248955712554427117620623802691456514111805732007233841998367954003802581536929717189903217143735711837711173184046202825984927977140059971297289586554341908886429489019872836102456286460997436296906798471223090243319943531096661784374368787914191146235447915467799751784143966824564088381007103823134123808055947149768404457123127578149416826347589999508970895380751458139108830750105120379735171011763129220458038175318193576477594380217456113030035190122446090297476606078572071696915081858181853411699173250438178678098469623946598885013960514661902787949042887162392035891437415803762616400121640533936436044117675092757740522709744210017985509031085613976907236496750133071882282780549259339931844225348265094447749250756224745320468721517186653935084533106016063246045846649661335275006216655424449833922329235178456047918335882903245125856955304251238676719989988469944249351181370822743502282542188989299584709742985251094410834067484355179315413913120047535563331585347858106389049223513723447774516891190029698656878242145591734939918868937916721101425247227752012325194380646037284676262098572256688400598790594942451088638211027891379597512935975704991451971754254070985950642549090066806223766715724698284314780283179240337405053564351984808166522023236920131257460930931971075976654616881449178830265911659138362940892764577659136054270946051406365938071930144291579019875519176304723516153602966745949281205917679326571758698944786011789901589668311537353096993806664004909940839460946596477915696924930564768303318293590054047719062570152299714395345975713062302938050626034329053517396528439488906439990613858742505607025690925305928105669426837048729494523995628432832270006190865330680097261486786178266730734784417961490987436933382351379994731941977732291475281634080881404844959656677338753996868230089352086371764026375938933351321069160676875621913905314692728289216263933350364689945023880236686009066531852984850334200342339095876003266724174780451426281928035881002656266808249157218716108052112217368274009848741197702178612224660442869062897211733379986762012364867594076350677321516593508785671593648214706972315340930053206433996679561129430171185862009606550029487577655657634577470375557144976285351267833152649954901624060191526801698404158147873106727094514476018117435968459860324909743265611462363794969648809265910286779390190992101429743868301270060737066429730603180705112742679275835585739807979289755646785097559325833455031580087580176001463189748432504090091990823064325487057199160243191070070248703819837139237226452141288510019099544768679132045760793277218196435128541109028942409318395463394901472204228895579962164939908201312937623968428272457997766369314589689128265252205036623890296254999944390382114674713827038544449293759143136235022136534463157556298629261225322410331928562958533299401418030098741148149443853479336215087431687007385844691001241946477053846386896108775423826400032377933955663389491287304076952478866000758378905099327787037555658629985536250227643696519540597289234981995129252362854429302356814380528904670095820206946424546414440893848291445680410928683103194474288847108198278114243029739337083844767926315221142458645209007560032330930256045994527125334443118612092017294698743727045211388678139407361997878323854532979962048914128405450529990113451152917700929222513248639515763305126724633387422399793792110052800012624982451798953606788055243438118155049033151522882048698122697069650741556938334343627234981128638393092775123325174193504751940735616985845845884112675737100095890036998972801723472485676650114589861485095015334640599121680202537454362984916183414891112377092955658461008312665271274904219179368718564920374073391493544024472940748155425380145584976385164454577831209932492207275369224008113649443323358130278268950787190991972761857368788310563930421295088403288377768713698019275859632331903241676594409736457718697589264380726433067549858676179322030868504649062056344643314165678699585622797593068688299321365305319462039441464365931243363295488518051937367118834227727502609274873205638149443956212228199170530420773554621369805827770511107601038411275640875005087451141212029361995187558821124393413452279900354220550913304067710830158085368413906853033624598327426530513782497650464232505337627974134022287279485958684028437699585369669601372669811315729439638776733241626255090537765785058818943245748067444246236594016024007900844873948542125424238904181895551741151793188572250247777127099188628579982411924107594154660927285470778067600496791196106696477113050603526676683836649349198266632763528049099558626768994988705612950287691324833224142610981156884743424821467993365515354260287328457536343820139011625257103568102057353581504026582195279519354081240101802365149250982484584261734109116934004414728823364338224807997128061942245662462573145967737574434666889662040031760220438785641816024288128277897162434810739929043889767730099522980928563411987711502647123789934130774170607557601275931343076100601564726496662648345769467902627794642623257498677002902703724620289957954723472178806990858728029687695855261206664066231435674527444893056877639839365236885141842723297044806965044231154999882722167638527423951218411718603231203996448692138030393672236692292314661792497830342265107831228921453368957845508733307709063876774980277589740072977087685096143669930871254703086884097296726681282738771671386299133890548594424348787691415236989514492894457818096736611504895954425528245345033121645201020830157497987232579410159917429563414432491597339686549440795514695984067830125322661510286701510391712885887623456559022172629583350931977222308017243390663069740007700598006868079542029791669509516392357876948514381021070154876798299497597675203199853452351061038352767244041487756418680198144786956985457301459484892396557353516514523667375804460067664882690246145462570696963468441947220234063046063372250040514251075105980766860750451043781275970321704213661819596311154528028689560230220776236490726808782619007881291022226159743425333384868394714740665631107963715445268847723582465038339998570764073016805961931969870854371969240881868640087328105707394224692745156766537356632434004829559829992518131033504046849260922135999060705439255435747296185435009100738697696218167748667978198816846398648677572247211373843039111634565254608415211840416447369839004750514839862943380775019802360033726864934583484709275816707026634480720264437309702460276958463930148992686842550655620679490991595193929039865355349113147575569989363645249862306561189579329965505549649784794092882411238615629421742140034768777141477250461720857247507355360173168293759774822037923840111856584134998688519864623568211081803563210017328294197268174556078757547985956577619210727769315682425880300097835828308704379982433701696693872059192810887056698994913613958867291536422953360669399482893045916589795680232193158007249672157047163520365247257628041558291496509374602462411755197825276088114941130005818221048895115063775631588456957855580560061216307457041786808116378916804053241192601478297110093259613512042032024517318054027642166391926371799734852956747139880485396774191685631668042261195280479142738482551246326171705106840681040499372700288996260128961424804863844866431352751851105481622595724602531822714433314986746710048750822157514339050025796262724954124669534133447882289993390172505348297298704949110699715153712142812476239071809434526475573010711045123553072960745432124759742521393488206730085509983477035768746195301402714135977421337507380204475723909942813954545058363248857099158734920633537415695861099843175907604307016585375220611066107086267762565816116669521583571081635932634735696455222694913426229981911614932617730794801902133247818252145314532237750073374646515516259238144030584675323080135395745239683823101608834116072752648055858647723739858666278553861170264925223125953224831430432608518830298926416117400320598824412936463565967309275762320067581975731161412716223902409914497975263298849698749102942402733958202233741370715401763274353269109274337348584855521606581781747895810263823929858623382127668124639765156536905824955911834626566759712677002259194608082521610141736782322810377762331511873105080303001927524846186668844053005070645234184367656217074231468150826311690906233655982854628685948551196388629180367738776426620042743856285158807174375069844702948310657021122269942880169418930504535497352771807736684068534036131716313021177346174978397922586674714212181027246948846459072244890127873522455900170163835425330130273010246474918890922982803925838869947202232445499263964699643787279297302378933787181203712423610077917303940651505092052796515967627957038039380528018569403104085854938123551194058254862294837377839265329884770814859828733698273556139950688790874698310234760576466302137973547061424590437975948555910511772678245856343123634217715016323151213800529245566594428527945002442686653888449521202286028242985142326377931056700032239129913521525449751902864794317906594237099306676644012568904662685075186231540147471654294194497837983787418085152426578475388012535512792860330993742558153085606934706726922825799136477022519768506184283194261943057651562241983919242124761502267872901605829920556386409792603266785364858434265708220647277000782649274435290506002156513449174335051789563059249093213145544982213623246710627064175067036691321005791650551024521432813412460240905710552623595827695696833532854119491142169908364737889273454179087199417037853094082717828963543824817400874464746789515844607688555105852411739646746492913960879740116764273680990668797668292547328027588607364993590822044456224262419618561348457397790537273107423781171841443785231441671068816774542526197287728351830338525787467500485122085883070340292269799585006766960667618018614267909840022317715566612237031230331701861463422742467968622299129885343708467997235953303348370790592841954322564170397864426580989144206976890096566088372709990997389652199684327816190061994636167007871979507156558121488410800966853275332706810141016170818858002241602212539401406684585839236967080201017151227660556329826523734102781042411572887207770040896153015411676233484603642719580070656874066358229851642386615968731302083190320354061404327547791755301841063201942325779926682694756649144197064973655618129547859769143967050895784033124821282712092760801314901032163338066506226493528194366189993125525085193981944022052736462364220767854956320590222932586508361922476953571382112343610564866462637639497211156930026446147889760806287438966820025827586935070019680203086760565375491624713521775215604193506617098532683883121246203362557939336387140493697705050832835873709029437875999251253895309244447432342474217942061014267810843781880393807696592805697530107538217375608624047145655962190758112790239774580607184159095769325603525796427547335457200851043542654676869969370193501946686269151983623879651014340896882961087833099078254194073400177729266742247393539699853701296582771345953311045234175918381162987554208270319807909521339115426267598740596310882032423294642565335522793866243409978830777057372083969739709285526156361650315973777684506420566469796455902456265946743262651841201021691707729588416845643256924142905072087551530029883087973293286838346216940407693527036899632487500706057157955516829173696048220307014650868049812999486600715375861472547482667559280464490587650812727041033671134639216916744717762445108910838210216128241769199552245125129226796149590855686169603090981365194887112632252164135148445231681994491707390923180444835898915443247052473111998176857459023994820212716571842159628931246224430156765325075548401854494903976195201237306117551080548855116753643477495549928790407542068733879767214373360119685797192309559800520038551484311285312073878717207691460928159265169796073068847605429847381131658036631541667567524574918749994176269746720181803517060832374110391992541594796665558991075062245292713050939335184618147565959314155113244031696615095516428888086456819118440441991259052810628441377022757293254259078406477485984779767760331754453848601047788910626348264704901548943174532025357573718653609077114969895863396515257583221806094019013465021355604195652076341227242261565445267275865618160975099987980952199349039187552644673538293979168443611471040855001744154971024873911455835692841373226960258691790628296326808433653071199272633618385712390196377857299900304824683649746579104502112333502386483600736730969810432684288910172687746341830313940317222756354201454620510443005145378804767702524193943546698855517577549869065521632669477975356089034749891588447460347963514140236161607832179838058523769152968444078078603434812886857406886972089795462573251782353566939355262165168196451795959549025384761596487696060880332056938907160777945980827465077828061588746615793580725611937782401406429743022560663364134013028233783056480681254426093222077736657234927554058695955662239385839231826887680173796015136700711354262436755125933626742338462956678969092636492480050250358394897463876596144985599105916231312248804235182864436959776428761865103026132347206044386789118003313179985145445224207820370205953509459000824395255501655001243483249399557567305143452502357545626813287081654382645309097653752737685614817918300345984503811844903226984911360419038901780870513403213315975768937938004919688858501967525246113359779910621504341285852768342792148125920127246547103466090711055931146310082078118909631470822861758302541348643483180716855788645980677613319498537782657542751322849344432677848873755987497358518081556365116361565635931491475072972545959008088409676710380342254698470421499520222184330463200246752406872243251823063605985051968819916623713416017554010339197916595732218314308632734374940228092381225946143689649325418476235191255038909395374211138556113935690219329274220655186586476384463583750494173595409702209935955694477332005414644668716738635128625836742910929745960940669624367920812934733859560220927842245743201935148803388569308565477050679964467978058150281011267406471058309850276616941592706362986426068916297663377416247324971129193458173673641003688416012666249618575591211921129224304188354915416496169817319616616543290241900059320648814150161250335339234433245377186064129194395778827961631327241140493130631269785239932331113373914898019172645268440704873498468011352477492246445528647965727646649290304116048391917464033334528959812622448558502275658474609024312742720088600099899013876953496114176915484942260680400570926943016944165929279994230730315507169537302203409400907687131827810626347808283441374768339834152427223518388054566452992376047985885153375415751537712194489761522090401743048133000918338305406971706853044522410143398228166891710678114909562625675619313548544347792442612944958511987231702648099481817868945408485377105796915710622043610093805630524522043012517205082902017350923164728702489806070425039742460409806029234184371522251050141083474770487607080934401986723183372193979657529456926508544366953713660552937811477702651996454526649220107066658188854821487471318027798888382724362434933899841989746663150217952907508342112231724930913772594182629249675069668783386685469201415171053129472597082979036479346686218395753173001463301528406579454489731471544033226253354372602675565057923842948434572493430789195420599705255734680331825866003582884649048132636963983756979806210900373858114708516184691139248215237624178296500867584193598505921574472765157239668393015002847937977718393495422561294701177415755388672374516087432231942931141600291694118714901623762171161355284847619680943215102512259532799406705013359597685314041530179825621137076863493334133445455381992529703859344686070670996216045452638991577970853490381540912966694086268660647573030404760089737527306051546545116804083000031313845148457816076796013576358218814058710217588638682940449520282267387834657600664588336961636510592591108544731978644519788877028084691501971300546873316737193113926434595249884121770188015888125907912986419196544856296765126590834565003076427580384590006067377455113083676352201643282045182834432371574173457917261480885159101326847338770364328454118639443943646295011659015892296456091701309148438228804135742303245559209770482924669378488332820251197031733230146289192795124133991628340441306722657206859836006123138743173589335798686520442157140772616458700917419247105274704382144124331628547256690813729514047982900364109399259616235104878010696714980859869469685827986787033425103760378422285676403140769503201443856595423702740528034362378673906771305063377081690997636300752609241195213663737372884420106761368620729797290023809091235806631587618240038237760534875379547976379919626329310749171712706824373638102374856907683586579486276213903172800642668468045736624186895076192519984948592276872552469529652491408816267845774273459124408899152105574641475583374749803726146632085847625602261899477124956751198085290529854225180267985608266205390502884921097432617564501411439425480275214355095607092668284600760188852164122644809116834088482715401349158590786937491304507013488406951366099490047650709868875582305607591051235715879417416474101446156865861552646806588301007916913042412954138641072978662318726160852898763456435595482793981236868532042936855425983603384870146308162217177258056934276372312444876296584951122833133857892959821566876025566346139306444898532647380354550762277463011114409692042220552240174057909835273235702143447814771298046951782522581639338498954823212573850873688507181316622545179966233894057051790954313643240611226028971409614755161143088454191678454745766484309870203334761654230147139673441257654936657136126403002363713709624673752966788357505305491240989608615548407174622183287207083687068309375706169162547487613488257980458139810686183088246083162807446878429262231054959438739308977121336081021016655069232876542300719621084819261803472809117789609531957893122298649554559046339688717902503285771703482276898389944809718119269915946111947615826231308181130660678746164556500622243357717459784335072665081381797164449533396202767893174450836075731511185793817875156249143571733803238023052175753395878009126092167205968818124444165855715159230276228514928663403198772619753535532210611562223718062640277442069866413440552946847776844357875745852708354242608437972871854349895773097746108228885199738895366650689865710716654586496648063803457136358791512639340777570269931882293972821640707684522774424115702271664790735384310439045501933724685010975914844457794130013655027058097103131761951033555798647033770347008412523463744529992859057746326179030179970228928445330108123773348339384557149198438825324326427165651597923102724246996947342541872136119848996714338736463927105595019118978253986168270410176740155190585207499001830220983019767399104850737790326804356237264727412005982488938377756809088317978060773556348881619760420332561745388269161351104722325225050265856280972399481501313733608315652506740879245244945624808361646065526945464085128487062060257071427804133143518725370420312474911018523246820102746428363871317401471392011928100140909861532932518116133941738131505186195866173045617883339577793914711216786901806543285054087850085727700740346750018330965599451882154374060777225457145693207969910555361887870713523295451139826052326461208304121051894071897339737459927255280883295949904489112721364565600202905121613912437224837917476277821697439439542652335786833032818554871978670370968672830897451398312312501619087431666617405461166467660925669891323274702800658567142109432402176927201257398055554746080342379012148890191652816405493603090426679265550686473089623521050609298394867873269665627180445352386507187175012653954959009270232993436714975618013624380734580916308037713314864669311270696455708459339334038366003005981511784035349282032070762644615623027715579710407863990315294197968701550598100546848528189264782195379548511658523291514769535666623338300023429624054545811645021227927823131045879472659322880084635048972099045437312759131828263346516139365371748597574427084042812747885456380796324929718297023343311027977668552668554151015066077807294303669618865660591991585752476300691003116016439906188841898803039397530210336641955252056622731607922132433800626443843456074632969151796581995155845239841291181551090780333219079049395629433986786427665974554941952432491185141725349426660408031916690283787670953854067079400852163656588094963305731101830978555301440755146453431547120051508106015944182912336912775715972070876870389498655312106784621165909610539580165662358400389847792353310662325072575535519905159686719051308109246326595205887110770388152227103969196623281161644834350450193353443382472448539705434832001616883022252664907743314117981228219430047809626235848754307544843578346523620580062912331638800801779644579345521519002690225473654812874028567925607846527681085929897566015664030247123635197631772544504947535640794827027618181444836311122152378958206220647237261729616772253414382116916089220643297965297284439005704029901818786470951895348723906372093909494995209982756203762068702202862192846043350813545090161950271232771196030895929801335570976046580109927916236144826215589260647335353565784446220292145666113169520096851234288855892966755037862595010641563280112290115153997646092227485698284380421894415225167053225358580842097335574562222636744859107398893971156913472391958849655570455710092578600122658964237492868194876873622932583068598455230030415192755065950985329001628609438199090090614492544711135902704180594039964533022209902512000408676967799211996976568096048366104475699284021979761160978049593768781551754155564233319268847785990768432805381786880266583781399100208260832104650380468062494089467511324958436737455976923512274373707602738738668910277357327558114792971135016369887536794874257794274767850866278796222459512049685451974462340026703022406812092905938518896851817220877490620041712396900116369787911858758059166939555494950918754207405007994119387583730704415129946003443259376153930721325347806798820412660321255128094131245437527076359199581876909122380808358278870302754964923961425370587534446642405790596235503642686231664206651342791114134774949034677873963418595734651328441992323294673610340057646273570545777223830020044994628781188841370623778646482698825631144425205029963380672699336281504075505193685980689745516291860588741112239460758660921487004669798909668196949672306581787781243026404181743067576537494116882401102175226592548539540040601646935102130853634663843303028391702689372542044433336254625269588664982986616712439416021111541284380533005604836491669476180017031849375234688958049682672315225780410778862193378802184023071570941222669130030031354778583526208026806045330072316041301334971725751319553067492112570456330690509383236792097550435886871975209789647979972033008242837893109862467262628467696922014799752832105548523792393270099749781844200461525759794412727762424678330539638877690345246483903286607291364626495102335197620926719210421201621715704363576237502529739795557014069307339788363389509185497961028082588907108438842896712115987286093596668666937882134352507805117134267985731889430425572777377736253884682157084516301065395382984481367688192095271529163750016174830427115960547118854077123371562471894405277302213165584662284529129644236616825814338299794361079237125052896272673066773221724840109908173447555386456349386051388064372818702082141299056334026002168079491297911768074803653010662403272402744155012351451810521664210920892362929084270285970143101757805892379447359373100990825358032570738780582209769645160314790503774335952765773791293299645230286690496271288458357595215161303323829613890429794703835321169584259813121038949979857168051140293820178217742320695863674392066555824225712653405208498536438973492645460955817491468924823673375108276618137560200183682354022202190101876944799968743923727937791104410447054351307598861757847359652396962637919555589227667142337383243205154061530180026069393706150093830644318881367455720758474726742740160753830090027729914374763683559133048109994786439204028081523979025474599819874807524430116458657687152713109372417671268856155404466835242679618958363578800628076516984264805195503213387741055968357785240562013418942395309752973173847877197128158213528006159050609566258029700296668156242928739473003565909721758147784679048256787551293586942415574239231851296405552542135828592369616569927057872625567692748633684790164414244915021775774693153555898950036079507949521460175062296272814643106960273669923493077163000038334836665551294272516262161043697427216727698532615518369795385756489450967938753545022374239848586636502287253478754092537472406297845479077040564552079156875535358466322753057183121081736507274370310804855008207633665535106946420523008453046685607418757129341452774636020086918904263364389165246836030490990294046001180194051133261142203969344976844620358981089215389969223852580365532370248426558845480097997776315403835623112371387511939337854920780092499109414298400177975140628294293546200329183844261382146618593524841854454069984955843133815995017134450787085144757162992842773960519648842966310023786163196012765525560995802982756360310060260579694631278723943570378799273334289095972963540301260612259302139256704603218106431398789138058529141407337162497698886058074936073457616123515431394061135226393003817131161567202158731838224587249261728599053749276833564074230261659699826952285183242868146245461784795526561785433577103094334892598288101058534043277248862117707070608597517113455769990170375284009414590938678412630658370880469428910236334054938331399151609971527465167950016941859893006808586048727805236360701193556386877696534498966642306573579304588729855885621112147619953728218158708668692225728568699247020612195292736083540439354850739702005979829955949233738868662920063797293238310600673011389974127748191221710286657397693103846931599439145173943479228463070662660448551869459227629233558976200598391419804036112917427627027543878227606794076988300012451494202900012807696637028821614881462233530909051574642257636286713051992988368061599805549758215977226202471125167088128604202874253399816994101280746958434432183684000680567073122447065187729964873262091848669551067490428419600588259624080874705495281139567577227264832407515797445003088367295045099294643495169132853320622002663233435522048310561661714154066532106678448134868278591719383369128630306930239592874651359860707116793473484288816047017599297729328101241905568558275144935162461476924855411442746231098933946454155374872692429277565021801666033596090877818046818843045305115208579758973627051176283066298689266853056524510186703465283976580377723393861832972234530648269015072193997948235478980639354899194916723354149574257521166075480136951702511769959644924198155576193586751259137865388999174870996341739558896589491928644282295184779428649552121038420846188359152085481082188740321888222716701332467206132445340183854736850524114247991477383566732339100529013003694569939718676762363704626009329840243211067694794823742943096993504144544427429738583605320199465261079624533508213323208947086464821732278937452864928945290564081049941306815862511887114440862364010978232338567983951009322499928298707789006341301849744372991861407121236673075751350654706228194806618465080324856470264819892683682054722311382558316676573602541868230314903613793775654851676905841115027653644234844106824588434046117419422312723709240405770017549240214055715067280448865458339443566851394192951442981045193458148349721573548387250852197860316203781148456102170728902839306883141792487734653064647879828733282431782825300627268419321361421155718462723249487914174936786633820424212314771941076267136855919578849300037785481851786983515556732633454345225647517781783480629443892014911050446915324376180658736144141466543474499450305474767570141380678984227939105257187186642182153301388285523706380843079843420201728262989205240611253712991083611524866825022431742604324462609747995658311153900269994087151088078283792750225518052718999604786400020068593457453225906660154827329090482757964173612908446992335037031718808410504624712381892768354865578394728659707699794274341118799388250853004638108714200718135696808058286418180010344887390113036200046752985829594127197691639693531805463769380919605818286221805783096582685801270060641602978237457226518079761816484839929958411825198456499224251403292753849239401503135067090594209253621275994823050950787451924740058736600647382305195106494127530618628886961272720675321183633842472173260497750142002946644240907857248889446159248216303374434871568545946670923752881959405550056976395477926205004626679648537892201906975116580968425717284278148134359081088215058986919082380801756090812052234827436836700034010339914673682620217162034549108842354391129477117847878323393848860950555424147401078134965979753253785358336636950286816588761352666692894089202171128633680502093676453168408553981408079355288397416052770162189910397669557088468836862851157132099414082909329876211803063371592284578073625876438700861371862156178431756867884456388632636795956678017141251334845215179113062009607647579741659206269988352389718283240944221443243094683686765906239779950950968733631585482828072695118393011568806902012346066912744217640809927920101199866538805266984131760591307417636356404508941017689627037688619720542469533314515694595945836106609267507635609321827042125318721320766602750308939923216306900415771152585104056224448463259689382661342969864649546690217391244780638053796123872247589749785667924100732336562055019697950243109319250937100408489726610801075502725261954507077130473892565239579693495484402458792036494172771006912299953115642989597161889198105991488404067107166676319027940908061343969176263447198759811049105692001452145010678695764940432876764193711993485588340620664086596953500687953993653231134080201646254929892061053328570440411042215169437698143037205104423779969561236554858013957588130493358481327720527007459105497825891327465589730912902302755448824820269511673041754833131982936805644780545000904053516930872314572122432808820792550124319899311971620297388760765449816696113994820190539102265748182056766603020549823047121161835127076996004926603772705464815949638626298590475912669619096341556769428186912310774272940499194621717742423373987690657425336764975343231130246360418954937451929686035537947570071573385152951414427672323183353631138971604914526226159015055629828623541862713134470800463331619215097607357414461185734993418845798965309776573094018227157254816142069326117636943813487614226952930622233520246125630852833175117193093156620507235604820072760417540408160612912269254823764422185373975715713086838955845313885618018302509903444931387427147880691442038401928507836282183030828914210865828191375262785096155177812488046641438841032943425702271299862771856455673623938540949066210985361733916664422209872648645510037264597978308238359091058933697571251550934997998438062018786928273083719984003502050525224136847133747100179136805468036751584582664692388427860974575665925070080168290101769301753027185259905715755751471888102064287423860064231634126696373122197856374636510197194728543196161661109986410175204036780245860212504423439079204430061471187262513649526338052435728594658471925665375540700897643819256912860461911281997378860102144049346576890485378783058793321096918587992782433003695187945972658608298348276632485749033143335033873912808358464715984430381536325856300361379619118107747701486358813544583520602242147364079026576628217625706259238928622913081926176782185456867421094531878374866701074185944980300360311717220676743464523763979868373118370208979048462456193373805356315835521648155363976208888800439561348744274390488175974190518077511837317629931843552945403634808596686269228331750141660538423514349559200862527162193857711769062254835160488552466030626444220188973173822507098926428925295782614205869290345682828027870144747115390366759563086821030519855077125625767433010382183133494962171326183357690120203998388802850882020948341622244407258810295146012412518833125397511988496335300759656509813438061045311173241237431860048102635354384889606217816278248465212828306106292779149526752803874006755688185325387634387315821954456521002318446037059622880044017808753566211400322996646371312580548378172255803242181008666785498932072017228093493424005100211807371295415792415917411328093671738002275642708630687433055341191646444904947043379526549460860536323224929677803112524812239019609582345873348877873828069223610003419328555418350984275443218104842298860303348003397474310338889739883753170848492592236697898204481957066747719797348033108252505997657940241533367547432303199396113017218203458705420818053309235344448923007140632560268970090614649643740699790057989884369963840209826445728422114108712731592011627094699882811804377456573829256020408657197932025417759070468631138943597443782788986974973475831865131332269275556307090736606637910954064948002797686417723760845173270618306638428435978707830239472659998740228946692922056249598517986330919723845576113986119380797295462301571028407481625476310444943333345712756090576580842226629375640154511648292509012102305142916566876203865697510863682312448686587769278848402572061537185057899482003476961448293673581666222737590076650351376340091740873178551882062469597153469357290059092438972649643578812903358980759922340750572885544301041011852925483286399528925537539313882384879619763732873208145078966200816593234803196307370046366412154922211991757188283146795444396160231045570128239207862221273938393967457406712969411364819879348792187321874195800190437008197504322050654978046469079555754013571851066809877764555483875618041360015694584902202887566197283776205048920619395072859341960915034961935079387248875196037769211876901472972911686554458558853564646481328029477451629846897493175808471895427098164013366176856731934898808277189752436901422407915699836636332325475081393206751771893476166404692735876637333830063835671192906638352927524557056165893812974482978584501387992680543764985328223685295088616140391279879783626308361616510613520951904637708118627661156760826446978126112447376394266214722145017645007404552607963326257566045354922071374358128026521596058611400237136386289126906719201815089067592496659905632404018969311393669599165496823521813658880761959540132753642678745878334381784627167200778786207935710840028649503634200327664541744701506487444616184817729951395609183221284374803583698040836815021276844865311422141604259977765369561092969807995141310575954612699919750236148231413995027712281158063067202982881604365263769028334406642232682665360823569150638656685675112051568607596223454564082497037072228600976317399727759377160779971501081248928963190573730630112515056148461720742308207133830025659427744649012797091811265227374445827118573065303215138890956521425848017779221627802241086756595295907221873185732214512073944363464179461482020090457130885329461856057062534183382665208362514104653491023903191065895613704116794206042198232675614396098221461781713430680297505721958414237673851650179616049440528527847390074291089426213331231647538753452337749607465500622593939607206459069323853121447041312735534744065505986903207139094881524421066819208154320820416399868566687898254963817190970470742476594197257443470444076115807822888184701601228740192321681603546249278303648142290885757588814459342842407055880064587563757766829533399506324503949095337542329008436707220891327474725247584219068052061164037818781630261334032410751462054812787312198541652367166225100976483725951493432116567556548533755517341227464343544220725421328886172546588192121793010777069886429157434635136443278822468391459551862326240335190094038548015480963351386655239762523471481416526568142741881425988753386894567285909798821168693579314277021820477293840055466960664785870275014272772365673223258896478318071064428115033747487504740543875072830244921134518137421356265928227458840903153446667673835728800226603757511113964543059331046244142446752898449127391759935915487511272271113083312494863530318101564919519327796377084407360974000581130299038180405739482965521580719554834443785923922886001330160517279730728366390996826032076874248331237922513009974513951303013107667758572462384877223300353795456853122190199856943377838390995354518885966244373367436890535215857480606782854403426246995595648643702272812807456750630496875234936619016043343610166881408360589892144722442219073258043629627922292071669788610956229859432886481647543269803843250700944883407835405518469179501352220287625121716171559195268810541600523091267901097141722376983026890391354939382670645216247119768204588001317727569504714647929486867172603758457300444168036971488451797338277001148871489739735642414911565194317721840271823662747173845246167926749437721496095060576553884665366655525346915912496455917121749425915948234944560927349387426379267377979395795907451644613766981557647517551802315779231190996688811192939280058231055029342951697470778810536448476835448703811598927754498328534107562065170787008344546147287080170122088744392741207159948774475744066765714945688996913543002691018282184883601561669221202383115630774390154423121869850095370492089342809662139846803280776104480762860142029709482620589000828596661551058967273674639686564940468850251295226210918837010289878001045573822599972389445553806218552235504628102917035805570294436194248458103508813073440658137476930834268190850386566448119145528535098857133073062328066859718387003420377886244978778795044737469699233043689188419466634289946446410964454610406638598984282808167711419651184675735870394033233437552091825215780548453720211879949675301942790515158295095448836335569548063912201148877372325655428230663549086773643242898362497659689314278565217653459386752011691272640131460472878609864045390095954152277523289889754135123689993790851494769651290795615234053089358415472482631285189921182695285792629206839023592749667485347044989434729009865791824469562363630705569585831533214995061136803991560821318775186715104184541396433641047032342241207136771416520797965443161713641775499214903355799336856739984915290539071533239944458874483327364558413873710206285865135290882308309517300533166262383622437889030034407570060417194432191096703322740478549403053972744551042973441343647137953204526415948694031241339432597451291276902816259303064439457181268201936846777504884854218954182656871713396839985768213190245278846754051798466902754467176221108241450375433242162438613268285460557722452117567303235904335352690602530609634815950059443706597279806816802272225297552567207182803345055195573666996690610853410992113421669176301696682348617528667102237977056352802963830608635243767638507249436347842655188981250367396540532804020018387838129916082845758603256195561963798405744633405163029282260272198152497259155478810916548787206915075460490150949616772394743816198956139708065010462639379204332881787980707933590733034759939549917805379980680354760228124813311188426745646695778328320996719461131329214500746845576406316736989880941633078031958843003750436787863646571061003638220370032973937208967729868272839846197700692689601093588653378737151283764344802103240842727626806617591497327235067938871813443909023537238589683495181215586237402925236036785128451416812994935420583281056752452519349805863918449522107949168914997258389286074945705721870263268717590459859270179708086582114738981957832907980904758284634654266184183178925079999382448964948456437713738748315646841605888146194068110754210263942480430177289098364140091393987579169346497738609676843082191702149487488552857073228468304743024918379622032528881025863327851192098809006309396366967483080199875016716232733063919741564998235021039959387418072746336667172497531966264686870133541973716394807797570038458886881194894507024887530493908284618405140095868634889229323209453749552152534093952539744515373216807086491103791839181759055537159195532372132572753762110921861845056192761527247844313160588825628342063848500527275242416933456349838847673361172576743437543026958582510166253551753040583866601848098537601429811491911310129269424178466797658442968181990594159818862182221053011691747984660876208685747358633066730140042433812038251301683679394341739177608545197416867378605530790722581976669164874134398452884089167152963236583093899194875692494238379368921739202676379480834820930170177309978054737908175186000550299204938073512711824625381516315014808804020724806061588084648717438802351001388310511961085029318417330076222581156178400151234544997632782027039080979230870732040832070148824759761007169505958782296527136625016565198051676468929436602089636810723645903690862758626404849399221462910604881919277560635917647590899721739303129377021137726705820691054584019396528643942031090810949657395636505642985347392248495945067158368526229360468082003294998205188176050079637020552794554464784268683042798456708417890197987309265656376652846141983436941790633955756453092316839013612644833592852171994663721695603836344632466863892243701508586138928644679974479333832926169245657540344438394239568675760110081227067773582760639684384503273903832166379994340808707801819177307353473608542353738531110573831463731725417246821852647591991787502878807562535223665942945150096975640459348382625050021179582203044849473920935246493281132032763420041549042140642505469924165724221897463775700676197048657829590177474164117776342510039232813341280456275284957008789577726337952388958046608753417335443086814709019444924965860010435512828360254852093156020434278851300467515520273294733077713709704875054935193969217712594923326974632560299388108397743163256938050049931975516045337441160185033605485752994964016139860986414665573229005616779069670286598130052213578616884817855957547906765651688878909961577537737623218936721414798064097296988238993361074464298258983329100135497154797926135450605231611753038890823473467547749301048118430752432262906386855958422178650774746952781070601264451061258592128004891265711671054323489629130921442717546745429619890777966388402713441480920154025891732397443980440279203715974763829696376065628275354348561012540445280710245925063875066421569686254578291700394553306238049043674060975799417790531018121641595356051166011111369406714337600242163509824254755418964199508038886460581890961744048025835455485227318425729036300542461654036401837012302651755968827421045032151068208370841399406446592872012353588794476250388867472340322153680944451910553630883616642926505725629450760167793737461306783624171570421141399674561215514077710288238915377031777511274081714599203919343153702161933713498208119432919217030815043875269618118943451207347329978232086702135012209815577112765317661393145572193875066563963157444255101932050354820577744879927519480043562505472308237886561559073137087307011665136306098234497506077253140093798688628198605796575941556062676789172674576665244229350320038875316593939735472674515038988460584199524704444789469859833755340980791041986474592819924858654361024927456354430780208847186492782631621414338888339853931679153385650404566162785316248878673451666431436737243467916145696919824898478914150127316423670279476326454673287260916070811283270623564909283027997564922058283471116579311984855176395413586040934355888474949665523126282174040163530744982001999874926289495218163356978564185732616313940883795546686830724333463549508798282819417262490144472923865519520902926589828448745156475622175310487786318838478466516890131119423553872249853258113685809924793655994423016881705822722918880738423445088704601503620914950531174419615331004271064011142100895438067035792930576817791111627130635191528637636606312035008734179218535275812241212197980925662902890920601874463417785094183272091909627192646927363206546660341589255732248638943088332052098475689848421098481058185819814397424048213972351881509587483934768322714535658463299155280655281815867812660413830720962791919363788188034136185519340605271324378514878609967976762375834049470899409970598927864700236685970130635774791813803070484278089895186164854387208152182368384754684885456348432893250836116318237059644295646704060065913377073617951959938785401265524676306991069642636310671411406280348489362993378604605502982359280262851795722422402503161077152222325404873060404421811401360666165213287020834985467479195817327920697668991225068515582522038845682152074659306684195109872574769913861241306474995137174882019325590357458184274459992452915694952784216606987284596315913660917317110363437640723938908459974086742122605055043961764544973550757413314398775845170230343435380675808567593014565133209199853616757989595620446540703053617920472944551737302602857562270062115085541029601089399750098059829374843455667830769314872711659714493618115759968763781993014515671921128818116504532067662419134985685732001993322271141451629724428718603901149308570133320877017072963704604332009720876342118622801567755282616398415342017367054938500130029463545225672064059263173508648561291599232797110155313399136039108302468465296244522157048623353671543592676912478396170584557684694521610977794193632597940984942473035784990291324944701411622851956823171307226150681615589167665939671888217817698932250151822136352032526369829907196661595743237075503340641822872322627796722738024765527048984301088135026967287534183314671035982118167465213349521787374982153418264788301785050452738434466393586292400423996366987297162541609474094955589555024659874785344544643372952182245491591155721601110515511241874999103997688442716571730023162061781824091353489348984613062650671291149908872156292576870917513622658265576996903460354729325587434973386957257740177600332265800672757719110878751230400945698746989814279518450327203640434714968669602000848011599382462418368575139023600115698486266607839955983314704057145465802815478548925603453890932954669624894761315878359972595909518532545928665316181536334088714151956189008780230180488841241733653572670579289024958209491818454693396653710975996690976080069877098352476369250415633932919048542307852431552512484219562043528179961007942091080531561237555266378991884297688997928865955498825788210831843159686982622172607499611810718017544919172107628221831406855929101143381899195501750050111800717603200209340654854139867971628961560269486303024293887458398767656992317925536275519915135590661316012526383806081081255528237527913405878662276137238830223894505989486038464684458740457046410783701238511703698369013521946786220322815566434821464197765539662657797344750502873509994926048253633604176398155577707063533730113110710614061277667911426879486861266318355050929292736172177976782750232398321834210426482321828709417784886243436563597195952830388037168109538888334196292194629381306786813271599422511587859681210000344633466772749793091936685635839007335873378517664084653983390846208230909576156314188597860939117132644371188971941325471381185004742831961294539362588328998166754538573929452603503156296833298439699313395532985905467881442707396913910569913217607179435286735982261162353878002252547980309232625928432218993748869871114530333468298934167059722625148485972408761512905096685300147099074167130452917743191084564341330236557476654384591827378546599711120290943517475097285741389883791797657508971846616336337689127893352248592865260263481711207589515376988819258237113588088138918935771925049373137433860949257872305201996068618671053213129085351300928265659942546677739753300929019126856933135370327261521230199643717996837313612305117008402191540932427794451402694300942499358600565967071201162053593893312195099689737522532170453640527486411909322987192897601439699195009472477219564163910779716626898181802883886943778348970841416771926764817982869107902467596113517681353615356315010560524064553702583902380260209739854098859056851247510421875024681492152385088616393132887981483652918966393652129492023125331203824509346257265880360159918413121332783821723378078373608025424140029686942357355907975175226703887424997081080398368276519867966477898394240832745500006707931593812302302757617634637247947756428463539285359786376338862078256887166381342378659141972781313181563260524800956438072149621974118218469236393077254154479934460503584213273096181245018035967402653447033417007728188123145951601126261428075012351269354919086179864046849827882347788803206454080864433550752471152045505098280200814671134670462347463095658034994648443728285563600165571572776121783822303448880454784686948293902207568732068212313275965702090347966047138146741095609860552371844569332542719384070308335397858547699997513768901145458311897352895887201483969192952779577504200356982115914278310569497602724356657426542097383941570113358057477730320561955316681989403432409786252181520024428204843485580849808638593399446418397654631169012838177925428821478809938950088615087519395803429509239508130321085065968397989142080022536605371558259444806458784789154701139069667243491319392977855372313269360073271607512244990714454248653607521666078961219474364629003723397877694395854427545480355534256087907585947692970891327273183421486048583388330085948911913758963047146912463328058483244155593036502691861589513698976729580423786684677096614313143177951185650695530923741001122526092937970864427539112270444865238814527847454564593037006236023405265983639322429605274291558913885028353006551055197973484324872607458815287075703295183620989039358846054810525619075159131117106699283207176217949628740933525846771035595889859523602235444740933706589403425434853903607155969170869007663349591784715350524783521500031222847499712535144784942965328504803425237320954442741852376409033848501998483138239108092039125878021395936351007679692910733560698391306229801606755594459920976418312436974609143804676536782995115333366539702288770681520742215971839192465251344681023607660109913803531602767421097014854483202879388009137149954121109585378759257211152792075090826764573720500648135880812373584144814660679521690344539440387008333937205160677385509571684096340991065185197635669330267261612428367578778988958349628471495666020169297524393524127677939719052821746391156657160577526701177691892864372846892515434663582155991891625578971331209391996970955379798005056504486392288312255204282904076745035980495644561840275210676667993182927802076198677544872243227643572430133694166047263016273259668988471514399683812434643880515327598438680628627167460852034426343142296412259364741511844520286128897636546641362193195996579565901430756155619443412890257101577704688642735626514265782103078490710409446510446535196523510128185020825821943081141237068490647617794965539178150028294396811985475871495478533644569161510355613720092935608247573227590776981035982240955867107036674791904214740249714308639737944460220022240488342799543097387620115325894315892271066000174696960651861000178673358062780460504862301398989412092245974786232542214546999089846998837220969736673536870173164454751960249448944601429580987726641020758830891996267177155480967601901856703846682901038504628091208519206999476705701566800184900901342410897124239945870417885770003325114428820249288452933729248388530423038169681500420435897081995708914890474614093430035754298389407818846869353593496979309482170743987836076600127690963753878424011618854635335655219951185105589763736845493248532573620052647985926450211741311590905718649855787970516266263708893489847431449222055110562578811099891661266884240644430478772215342023141919137886275942139883508369212659459282577844778227828173412173499242763628087116009128314471311021873247972958235222977772026375595779053450859633023131856941873112389229933684551050734370326168567346065551585069840878038400495989059061988015732366289617641335685891415149412886067146278968721284490872186488857341652158108052647233905692481263690286692375194006794669992752147165717040489629435649668533910533729159702307515897357036341884492907146324701057432795661854629035983077144586729813808271255451076597456940365077318028190445971651820179053200740170630824524556423206682785332285940985820943538970044695292742436883005643973242168598344713596628711388844420402005746372879986210002493970181655321011184393589626346639081480657567076280443117605031118115326759126427606696561715826287737963196482659377552720328057421245375175589607344891431384686068433956526212665833071608610323330953524071158965739169498950947994957725914556169375247592675340063683606274173043603943399906283464152587798715415958035953585077455690197401328155065934504839678979002469402280350907634042479230944919831517976366718884333014918611052476489127964169404220140444902392091000956104820520926948069011298832315625749425993278380945001887294094732536053155465032988117210650144311094468683915435440261214802096216995162240867203764834290889774668434840209093811367336945802660917674303036715821514878557497631147681014129514732235217633222386561048996340749586000584282442023761906849930629758761782715125587400979643885751081729164088087781844678101200203273564466603396222191935328973243493543761547704501767855040407214839543924414820947956466812687793786795390007468603653428262565097409498035720996425434546017946302121919120734504033209813075515140209097565945492502720566366509931378730329763216350348283422332568942042013455207229736246196497677153247877302011732190339902695063101060587128774483894615841297905665471524603231407231646433860872509383698627321524119271106669666387497481778800294466709720217682043038433205714366608677428638236326835341426296873425714930281203586565891751737144833356909812337763748073519340088107747915739380244882579924116368965194472297373091360621440691921857764135167376610917460876909452636230101119423215786748336590808966178538667865678483393163839563291577736191401760650516010571189684146281395915538636171957023032675482333682263658076142713438465142550452659150168891563247824868609479478191192876475062187869994363231705997825494219964000023345323379355351630659109717130188078406977769403276555975197062371713203522601407740527636013969372595671592145823267461005226687267628111278675939312932165472747086867503570028205759839887930512497831236485879649440975920610327344941444174938870068782760383197260263418171348344834071897158320205630151216541704923702284369832789455192550448623930933846582044209092986836628216477190051956008763864080105555279628220716522774658679248907247977301024804097845784235065256919478996855723375659151222160957434096161056073985070875166259311115286095503384564627755448156217911670107810985627160933272816046257320755606129383056665465835663196218068794079556670485381732237741171615210779306033186367773268372638490759495958636220354591402312652627152080325438135200951242443255771869734576918315109943166916609313205049671803159315061644040723140479638073030551284552132679993878875386070394118352309584687452026117010019497391367606209696563248637501059580433088446487669191743823477419394230616062072400856000156272496926828042401594728300669229087118585580301354698759524463499879027385849235520424592239999640979542551769201283159079552356950616927485558730451299623867704786123363669404534088894983562040985662126590616309534963947037988603542684022878262227808884387588101328171028333173354426836269225828901347263447324612897192137168813225115383306661420526574505551670272457391999889902451344454892891432071521350553391554352326301213911378228121467963921883232555479199273791983134088512022955730670798972841607481090271336012785788388124551579789976881773342604070369015795931890280549598155133871296609828077280480881221162123908092942516072582626604963764779720807869909404682005385417212400363961367810321662589589015246430616115675290685049974349579055015543709569521755356795251595285427395553400337761575045748873208112518309832328536019413046465158770113375406111460943569700151287649631566523331132443496402254062923799488424120191726683682938430184110801514411877146211408240641316113549571362874204213133312380429835333199944804460409574208742679771113340427935892422625746150855977290625890618605619241959083120292939913056990916202666229405123744246354874498544321685643637229800881330775360564513106730200925614113813624835561903655359672006877298460195983199513396498927984181235481858912223981356454599202827473446893242379211092671623358824502632165723107214478717872439096688758114431649250332063354052842719870558882410814854283474059923989199077499109621931598210203191660453728824366793789034120223908888392726479432826404651682512249635633015840146950909974392600599350703656458591934363354550928817200360203082478415490662836380682397757281379832136275330609097144711583177991437926591002359464519874709180609228110933399603524408028876044860242327409838419576645460210061259501944675795024185194998481711953046304636083327317862741360523729772667260679782774807254150358210535605208815655425081816753048735701034622834829183212077552191533166043873248541936478142674268031987865575047571020745034641550601016750306315747032758536431381953110822219869015030170941164464799112807460263232251031354930757168584887681547100000119991290633205751453232743131353801581489509646736809358180355162886111492567497605018087095082759699165569789066274350874185443090589844471676997588218599186492011760610958610476732556900153515603641291810200395931013174366850519856299650003387205142931055366854430516867414337831481061728696712956157756242240804817840132878642574396622662579360046982939894515355989491264801930673960201587543102368669478063420422121482652791546891860534664236189696334815145583550780065320278626664506067212376947524228930142876765851626124739546080456080795766580959164869619983891049129339795048685164524066488408208447972470652228479888275263061877990768715105597389918061615598828945605720107251141436834740532336353346690357361041727139513838633433165593379019004798817568895186943898771222118040804529959779741836249512713203392655136093089372724821735203876940504624995319461605527624985872426860533449546368643960836387755165660551264981540977589101187143083603535072986780572210064725833384339149986660642396275686811322070239015057715803758558406635215871711705979325639393048739514014688388322002692072917240025188401312174524492979400365336770711783958274557561829923640100354438451358490989023548477736039379780228349448228120838682763372730408678901156510137867662813973394165631576699655640244300427771446144982346596871058833780598868767208601551109416084029506118363647633231948405171321122333249690166945395814069060518335732807139569222540923545975836746162410362935518893948839653169004976567323638862667440726384155873535417669220323536189651818961113695937786506447577218399664104224684943773690909341527548834815817960029474373820940266354588031977746683199756026113142329511646057906976041515129607756055450140603893562334029946578635022036837195736054394067220090413867153149990430654672285479662916595306743053919681493906090483824791979028523188409998777991220340732107519268802427854564111465435284523200147595713627382884883000007856461869510022764295426304923158055350229667130535875519746830267158316838763197013465437994274332817491466911715084012891604656580119653641026723643885403191117192586173771583025496888363743204718853507151449797100186862288630827320214305899558087282141207562152647448276595627469246825805749074735871066088126025639395271546816386558308685645537893670784302116633689865692511302282409959387081125591068120539697555781791214667613923444458335820751638682948394749738869552784474963570880175980903319722028778978116029847616416398277197684595350492772397190462624181039172724599889404670811022316167145861480282828484007306071579387613486498543648496738912440039419722483595782828973336002881237464459987915125843405767860099690894843266084715541211214798948083599198314851149772583696167555679868207968906404845705356332346984497888498096865766639630886307711401735559450439661184081974723856479914500698606601319750113378544804006373654545986956184411034128675893315673776679718126823304046793913067441983143466169532844617326233259948208160601859828538365516515220083757890176121295999811298934235284524724706836008910178082032770497859504125258623360338488879105998130267086867941023101549312025473383949406798337139065099042521979691989268490716189018831998910642918556755477235873809760359276762499342577856956153362019008580505598010915387187929611299206988694546277720064824071731012025166627220449697773269448244010723892493952178328656977754168261717366584188970383439952838836179199835331316622640980849326071151366908488967061998447085779940786932428094830030655142118545563243177894748693058315839804226481801015587123897527602864266288846882176744352217904300568810473979802790792888160130197504358154256158852619776576959065306684276686893183717808055840961325481089699865477449419594156675842263770982598849428836570826531124388544065135242221878498925499625468628534075761677664917482805437292845106285822445603606396395982851330708798978622910023374377937146774855462371949543617277134723003953879162520860421221879190131992106682621394749759692430858852370986709405960531344779246155846718718807757287197936435309988196582451364898420105272186648263374753381973602768816634364017764505986317284247892598210091680563962553763793201254343944724009838682554719998245271910401199875983870403080789988691812244929811519284506073369967603722952525214584335581178022599658935232433980962651942525629965155165861801224088178961395748522399000399737112600941942263428041081883657672800038816628439749909816535592088060929227014397571038919563508415423588522545561975255290744315169440571143455647888536513462279304115809827605400479423207407107993901215639968261348681580102736554386983659897652885705411196857077957156135037770169917630507101978947325528419636707053786922417901079004120660202298272941624268586129384903126159874127856636133903427434260272289673805845662061428026208348121048120842170822974567523425705635645051006412303330765283144943875911202374137130634990461177474922561856624010042691968377976157437063580580561662625249542099917640961801030214013963191876295497548933061596937331888142694093384904713144620554751840598561541720680261143619747092627237083618281260244557799641821252398617896409862516986884525398525344165540438343190097897174643577030908680185425762823178171422314931053403385757555676287579024062508429783836540705815745129486236050357378650763099607668819655939237309910831959924798209650444147217561644676908244174475094876014174399994012306863791650998485584510083816819438450407799814970112806336228292311699934721832866812228547438840931755333147982050074938243412922118689747301564789770361102648840270590230022990329138668559090192593840476774082159365348599857796452894985862448490767531477852935444667178325881275998723634059573446143217633583205882972055404234078591763994855457840253130358443289628264829918681297392646505580592271491970804719526405015381079291181545661586369033125648778871194228661267558433662362398070160557078546043491917966059514926998164245851887499546369013142953472366179528535576195587346528578296001880811509351606426660188464546457751359091040493828434842862409982573547546493400329237890021533323909892294873353648439094762907777296579699561446095725091524702642451423170716475159143106928629335754953985032688535258144278281441843653303159924869720721897075303177341696560297163857136970900467216547926213205550285263370897465470945019343596475815733173259298134811343417780958277822101315932226358145017415599330980418963092705340640466196406622935104207756716018421173547336824666376090813768716431857185379697060862101058147001919832615494186065719089164995714524244629225800259217918897965274216727672426118473062436226605996888557929072533372470536943193070318020313920504026684576575316159501608522456905911609385708076867087139169093218340056307840935391790504055466598907275019336041461918919197853006542041529843257627450584811155299562246391050392198825730004604475548866152382951461800027166140738017127975049279065002005288404593709587131645933371613767677680732574078468720099119338340141582603949605613973583260904730538673806294830519177794371418156681600911265106864848237238079046341894343530455629732732458459101546725053268609486108152447626670818053971090318527404293460858885637215734935549826907694719357250022546341403791541926333887341329596482103975037006779842476783380792053064832168470279655283611836598418296690937262232962945010894831050928778425973825001867534024039967707156065311079084460274266552605259950351817511172836109967611441800936585946242266726836371954082589912596833018001446696676450327067781511420388634574166904914226423040279478388351813756107323900129176508334268631476667422694619720358564075508951172567984841695966940311342526107035472946568155236396808131928343625588415240114260024397674976696707766116824727162770195300182562905249204194534981675769092398570742854363829155055707314779407389395348123883285292688817172656486298321331546082502838412517726992582756546187645943405958300810324647450263262376040646749498675041717404084721411253849251814562334967130271971275211915323984544127400556468192967066784539021981954288968983873335415197880446175281050029631819116679213454419667679100427902843936885571688286564407025301942446819567854887990924428249671810914952383691822549026103411673239456479892802885384868676660504207521558803489671085223957998219160961970113095228999068564536854027695281732787258501798211491647384271004136307317572597073554216542123695497439201425996414261174962736535726648618110214229059744950847599370969869217334562532966119907600115193875004957812838554989411293022999853878217576132941280096677391052916892316156485604815778715329820147147220344552096780578106921548675234172085840004476975201591044921708989312610365787955510258936454432801061006319089444492935788571033907081615413557411686206791681088670157193695847279227901517808587040276727534935678516502103432093962587567414554678603594147657790529439346144052892696868046296125662654774002307335851592994951123598080029018490967114148877998945122638058703275678204275170062575114808392947506546460036672399984882148331049591080172441515618689909958593589484185585245030031330587877501923869267331069736506661302356017749081951382720874448498160095822254128518055037540835215744491750179510304697106635571831788895852085683923555535778366883713393700791209537392233718247758826696502233954814458439790013166552268399106935356840313074901994996092271291630327703058715023698515543220937834602848192422788318318167948018621488979530657980949037855444728120548247736300428192313407252099653235042401612802854061962194602177265917727629018991597602887899876931311607412198498339197697602170777813071559091523739109901821408815116329574396092101306199475948266163926785336325999672296487444888835458927045329941062710562913494251184313240842687183249529758348808471184695074262287389156795177612270544852390314536916948603323473873362799169874848388354044672072050230429267117354723787254233684803550706010587790947260544368212222321077559888363335154859568870397996623465162115696057721381548523926226384725552628838451852169901216905206623260929936523735884032608007163132546990209977947856225368419938796770653177130918601932599370016731553881454459735355645413866881503059576895165145272338598033274908300320866232778757664089178922946630401063368155392903431775464378302114863959558594605061925820754850478887625742327359002974310330226585876848842474268247314064377468499881806599881907022829380917905324139406555098313095954931763338440473663334134175042724903019680346743166092924542113666982146492852065365072192559793045806593969904617729457898883449598932047627346994425256304705335818637472013960852858791864531460657103686361238909602646024325682358751912239065926897972346124589167102736959807646567192726071357609508155920447126813215482687509267608066580154526697925442046033337852208773863037500065003185573364938834175368211511197513861444433470128611759242988729339836305699133638807788812901378910078436800964209892808419521982019588477877419219638901072833648727009894484080093875415369624136415844667738045734064431497878432266249441269829165805832478865373776100696680899230163172670628223243078920136351842478722474401287204632802975037520045855703499284203848884546858013507480979474139242058082052056323309399152940469360033841037140423197942381816788895594273615905229324981798297435337495105730121705850113622285594548607284474846362733071221508432629575536953987071677362110829004210992205383293368345924062389736895957105849560979052032183259880693360499105247516489226907833628805553809655712140177125795424066969537587638557781265542287832483060912624013647031836603290433090031151910914805968768363924023124367671862764158406341323038109883552844680802355292752956096132343598858725602979378118310117310614921842298402621677096223248486369859640235342222481359192450789421340704406728265549213558247308554454338578828091395603285937078920721991208357737601358207296882955472176691791326311449177154205093188351000819669785177760507822362941450764270208536525044775104674104708524947204546931520243966056175270402317271329877994234588273198120529055032727426071331886240076052490033340201754647687980860644571829795973195303832761645961278790717836708883447471988483335406114977424480997533800848845424072449092042166554599304550518963911897523147060057776240488335860727698635997184561953334662084098060071256920292834047127918701425825011236323655544338338314257033808711177233934686433552104338403729117791649266182388499923311941507531048747403891784918312973652445142642831756446663583649723539607135041512524345691621697573735230414136232451799582838222587751269586778339073352401958374972011059140765488433004112007584772342883164207566605792990529669941466424332953189571927659207670565703625058775583830215528478365924032814073840073218324560417282166526002719516560846238138698248032556731568595595318686430067215811583354900320139854883916988622338243573682842333764258518871937509135922481005824953245262352462535613928988578947556264760519195969339400491059135954893880661728964571272852692336195490366465494343083825569495962561065879000118015869293051918561931223448423877329797957923605959776919022575433940673922949008876822584390190611689344856191682554385739365227696803088652795829676175604607768429014546201651057504426504024395757829060560466468790295855362476494756085903317394842839166296586586462285766066053568294696474651984930193620710846341926029703745833684746265069255005194408404948122631512956445191343109253778348019353815345703859934504870600470608707628056222504164356131704840796533859549259859313891537006323809943579883224016045513787475434258645560549945907913161519396292501096011198607808326729987777131643387796323554385198143265060358514135235364779900579466568123137264472481142172884441187285077630971699740229627437380536166950408714477204797112337376866856297557188325581980693497293080512432502544136467731821667290190539072872735213225566156027460112134943740943994674965749887306141268870213253711032811690448210520140462108228567952464944504620412190944406509020378248029833634131961135594188042542259686908745820658408259267938461367918335060133502185035250793622694144394930916593954940796494663974300351706619010814940267593401936331409298375479813828719363807135849248334050437426216258642670243179500144430159484286363246031629502665706935713034397241571403432563179652018802854509639812268419211677209188896462592357153225199624039046740729234210373034986443720645526192954924173738788862352511337216994552472388759414771140396202060817272004017563889304857680202855769140343373731922165273842961482139665721087879594819429959624234778496683207448086181152428694133078295722196256363157098042746348943587211493526138584925012300198906582614176035795782700744269672171056553220351766133597666947535613314220774977491071612760870463899284838086952224934470626047975511867587840049733815746550402596229966052974857995628029221994439083329249489760261976915169426069061288042959279060123292792485564647274599274958127700103557240631183745320585120080713632387185199024760131465314003927294683970173348909021611324105485102471251465386122181612038574624014077737327074086625271131798812850457050592055848795776355612774889156221010527826210904510523467350632462523180955870364483820444102229465347107986220738922480105281984580541257752257668700391129852578592835040480740726882146178485257247109162741126302781783702764820609555616055710248589780964365121608324096722366549595457661764797588661736086553220336258458231928148682719823087067261251440296986518478977915898770060212325864144080491224638807560754866209513480429033095782807778455981525112882942384252849021411823292389513598132275396935429223173934072076776875969349513637159410695112975961368488332405957616100734062329037717716292125315143054017771387659131994055798806317527647985237987950191807448035866696921344344260925006037536953636498941999305014762162629752428991710427173602423735789466605025416877679207272598216321788025036844584585436411585121004178454560319401478531086946658553790781580915962498980774759045145725132231470774705623682364506932266343888249554116338909644229542804588148351853589381566840040927604796490225873791267804974157947272086780531332416433607467759390810475904378438440986410429208916621164807365700901936095113070046181066572355922822053351039155520267338497291243164160602272018676831644696846112171358735461976673732188565401122653566251611515660950386960156100951682175953022481348653645530910786758936709418611393919234436531725258252436920530972712175275269218683980539371191414287384429229103407941823124970298994338428923080982265036335586734611627737086699819801431784718979885037433128689831468790184411736215455214310703280617889786286294559670247711577192546228172315645154596305613454039165334187681956425889616636303291846319899860396606040441165745369623454161817631541040019005564290049015218663878589273515038108558616816754511447469263354017604350851933302765069179814337423369688462534477193390652788840235315395508620145490644193107427943835626748227568797290765196006227360834811234397302173020662965300526090748549463148649126789770707214566591884935185751638837216585451256604919905352274856472007413296998597926873056524600463501295226497593241971890706264008421211823465219127561636864414903494162722591956293215606265067773449004379306118773477323302947683483340391491863244915504478014283867183199691006409122507471792711283481381276323303376211111270968181396406279908921201635009607801733731110767261436758459986635861563205353220189861604362874921862926250159610551923019480135269514949458605428034173291172544599971621427053928426841909840417313599903206724539913439313860631166951195678291057404556563891297594720769500321046922605438170482328987132598134463567049354489109404250618294989933667422864187029617977739189076959699394395924794351865379677202721209408610098016319119593636249198588906257392655719738474595620214158444911576486328838879589097300133711595388057641370525624250286609823985610819740578612990223912450885628193847813975788081282463198380157290352822892396497508959083690470587695969446833294042221923071334541480204711508180420035710883074277316392619444089999920265659338255748893110322452733522796863264730666334676719509295696517965621140836927982767510635175223799739861171459915268340251812558255319101313054546242851859385970195429167322271938158034976621777596085266615373146345237920586929208783895256030930595404009829985635983296054390580016817082818843551048528623807508490078377633790357461496318102651251430295584371401743812255667453463589334912030872331019717239336922413217288475541694330504459252396901810721403056541326284217268207332482210278313240443481074414534507597522573075070868118832047121199518031675144973791430842551237826833449794283431777811237412729301306815152455649759924553135870212213066955043844109857586084383752678188476725325535465674560138175188741427037477874991656154420000411574314861694361816305856648281373926930782784806107558772703981804469932309101636461350261159893517414417582381997623205664936092887168428198764431152998183103872462266746266722661943415466384820856703260707449446343710866699816900576514452490646523894164367936235059282133293690163477322172408769484074666650694603850091166689092588955761795507494605609238680093702366707401001479929193926265354110060173776248230602265029208849980035754718394811008934935264770136195879987207305466530028610618890699378619125424325720279180227583757198074291345072851911734138289110905925145121739392453268507295988610984828569657999279522722988106132001369403206153351964414088068416110909771356963514810634666310112223392420075836902101192383879513349391057186406086937694630706762751649395912749904760565884445161201814180879960390770875152874467709308965424580868380785576277157344127399607290012453623536051954958115632685678370669810146779816611985381549282200912434996411880086407652328559689054211334030472106566841958488584232170055167753264375706219272727991239159113736976735862512660356203659610905375535877158012993227219141587289564642142765835698581500952569930073777564710522192409720205627009585099748667049210472003664305946641485438777358796742595409010556490779439948198605110566647016232551414267266268207657971417269224526465379085127080764632496842041853166564324154867001157812865038718209506254684071910239185364535677364230403490806507741328806516858214288578005066668823615402099007668910640466585207423317306967081429593715471606048690247582647368891988199761700005230810002360005840592927348667350339937900518787067521719085676659276456773276626585098607181938518874448013529070148673999356440276553173727145517606101830881720427069523172828347966000416291426898152108992342077595746960676525479118935205146116789515208156821077071017011899032594198644125302320051884356984279820384820617914696611929375601931991623150140270205456447343286455859046518715774928893819101528708631065073556960492518208308842130089401907518901203089728580816023091317311608469723896137541504405654843193148341962201157794013448696834479798114693189290144595563692211763241159367656510248266363942846537786910675656960885608641428899890995506115602972139015763363016377209678024815033190704505440180371508747217880869354439924195332178642184052412687310248795130275721790623417045110358370534156188587300313906645389229090059721087862696420536603163898123087090966122791408639879178015044526468011206146995258887604766350460617824079185193765008902550936781045500405456818101292941419443282733544972551818754243979121748056395425795436028019138707711962638786132956146016842172334670930312574151228603566330459748977729847466906167243988826816136376481654964504099789068893231766758722175225298386471748376906043644485960105546512108226446429119453839771569271174266593140852224545952743047348935158452515428200688010441196963045336232267432764307172093304973057336556405576121598967205843965926675660336471397789256054517627504952619788758482617639264921817746455875020508561051196246079060185336308046700989564901366695001710602526326179783744528143475535472254716377876023586518834024461502119752004435750565469468393308639537855132281162434479310762362621362150224883737322979120886766866166783587192840218207951114363744643780602862303847952984569599889241973126901480303267530190995757415179884518631001455358625362966157546794816860452368649371319611255032358582545578534258503809907194283034228519739596754097732251556026290025892501074913469376000094931218472454527824000223144757335005831614577499101077052402603414836283045654181086591446025239528278824225936370451379292688988785229488251087082243357528586691191302996686473818456547229526412267017139882242925257037247211420800280987508094237286398664867315549839113844334998010266138793785460897956460081054114770667658464869628003987253783543107298893406588568486008785881847523221081824718556876608126270541312775277204314892495407042659760854264639592131945506762909449381647849560564627227481064765153587557288402927103688125061229902333265485932914052532476517369141454908018913309189757661764087218042839801766081463370967372259942979408805082103293449158045567223309092459529679940070874293817134937857577731419344068486394801559887800731820375500432523870107633692237469058031057342962715120209256842520792512469248451085821535724085166031725541907560221434639674355262214605574441126571023761512559079447969376375467786461324036322677617292364887199780089425255710413080275523410827183938118913542978512792743814753142110959783956698408488295914349199658425122407159074789790827369460311333852948610265594739164868802242525617271469748663623524337127302480109944908986761831882073063522494831399550110880548763805202013434280661252378362393307201355795563134374063442470259788320586075316062822110427432518026566758197305298973452845950709895971472262885212926063279760591217988365377769718326918063980171558978783145978384404981911125849077297410978312192300526893173702918577917136941340720737193162488634019986372746513100250751799830835868293819046820017685467971000268125491129357963200644235391559363263015811226663794543880959858170734139226667202930774246594807717670990352590499395880220418100866843428227379366934602431557709579110364865752249531472314168896292616329900531031423534331677964663018990986721673185418966617858958464335537468950166636076042412154684649720927226426876376224089682059565781977635161868878498711208426327880467960087918049075338816460141712829439279482981015650715705385579605605198569442032344838718709035788380270917242477003663225357011265791881356533542520075520714016380250552454758420341455743814507193837432780145162393169846181162697881367708860548056029873148985624141956616834003881014940491610814829893597635146564041601374948969993348455590485405516353840156766671997179176360874062070757953695578927926853793874324161626693529153587571365702963132360474558117339888814147518249056778823617764568305103134691234350598076156689150604993503079971476542677622782597933681314054669826369942959359075184700125553344730432325739713364390923947458936849574226868851460527166775536351587476034303409863371949663638888535164512086745698021632680979312535123219254665921950949760544230545661215203984107865254687013918457996955351759046632523130092355950012205043578861728162405593496298608310113457120333834632809516390956352084000747096462950639814205437703128844302919103599029453705681521461377873854324910965745038441348238315170578893921370319230296038732218680927405929683359570963365364914968515453373917456723244192882127257268603091606470820296618214053145242038129853521573784475052043593315450480834214180561250778317281513313666597392892138021415595744593367409756963576167194214761238595538672813258895310460303666138370732937956666059200949069689155505772846083454499920297032205821237186206951947957115068746739667214937326993561951557973043233234878237325617139672833174305353788881307359048339579465047836942722048410530312920485231159897216139154967609976383758632208158154705072079844545700367388912794636371331608219265093018410158916338606745152825891783113984978112010132591527457890268882284274617769665022571771340598027056418589030214640870478538558984461822709913656221105121458632418594027174542015290084629949064514682640288625058015552116941745637976358391353634028401582663598939557906660554116525598405746999855014867833524247911847297418277386011683363631114354864589047713098882221185090644648418353678209931349764121824203211336494081168718420782251280068282262417624392568800403502094768364269282565552760539880615713855512271823236945770730666313335094031863419198939647416718352715159643477717203591744036648501228934546634512114444277492312900172307527914660568172165082662627509495842635327241036806370281731148644258660310120088929890967495334150584797280769209561556372853016431621383331517162433889919251817004279983646131525822591159731933983129923887803215232233688003813016487456143200482406846554328196920453871148037615393391173118913586322250277698614018093677218194688427860747760055363596593804801617681024716533887906743840764670040490442130814826014259721133800954472510118477238368486072104234745886539346301607491561507422043556482476334010639575182487520242836485583992141065343760051428239699806709865701917663556775065131082893174338220405697089783827398347075175611189264658327571384106807679257948266079575188796436470882043948866839733052625721835890058680539355339372688643952643556845252899418979670972349256655727315972552463043705821450333142444850534115142349392045181568340056758260415209429273165064901830614246008858060985587344788433981209362804978265510174931997074831116317024801698784259212372377668545715421970599643475092471134641974758641815636098713099168010180936468587702007795461427133655412514922067013295626751938026315671839491197911781458017128281259382130309922082112126771455174265110969121087772741162133998182721344005458318083384473822224294751760657929906046966662755634189174235953715278364603514663118289608982687919594333480391847880429214203007393890358904480300666581354583997376642591337785054079291667130818768628899252926606828294665479398715265322083067728496043652952288133359632603386081024655218545384757200028663213461575040186644261488472924127403162580243747769618994191700491258167500507096719782642465832609726629288065030663325549475004295681759890922639284606833683391237799028689672129677244943324824402190434591532280639394283376939307160984986580577996709624680795241210748530237242320921937716476000579924656453132687436643110645794889340626703263346691016336810975676757342411283240605860042709872695513292286047313047877608005069213981331014622916084639470208203172375171801534688995411187255390655407748344285283924335851537571086404792224750686828392471990039384600762682677372416589960891068462151002205497599505102466392279364350898981034930157337044231450579839117296439012967985201758102465594142689409281219702873568215318587195556623306735116371595000970437251789077090438770557047821285614469155387492812000935106699072135726375212940006655656625982769152364929055107194216161896891065982223118211242093152422818893745249434662423148152324402477615999602781587457341078245402326389504655547227215125315046046411728002997922644647175239150161135682956933506724447855537701897239738710286834507450658691244515825460376027476557826412840546308430252600269678790350683571624312109727256118973774967982283271301298622126984093561014697402223109337537505619025478257620983424721756711617074208526997487667402854203938364342364653936179991512021974395795806741147695572135647455506526792141248707347011096355516886371789594749274606512151797941482084777787620183435334408233216909037582852916279246582505466859667131986154444317114999370973563433244533733711225227501837662503328596274949966391806260500173670242147882996392865556168409673055360528509820616331709717828142045821205907946836823831076238333461239526446416439009593689968045981874983860286357868848552821504019044110056026764935564841970266500018694348432266990528028696410104884911830602558039299530371682350377728212890283894761031587907325043868477740385767954484883665136962700253934122045653200576348003756188948110630004103027159602308566886827322285922551298374198104066500323182849242380947554809283357512463307646637676153444471232577422245671654370993710094972934704044203205350915532758173006957346448581737902174678994331209763894010924607871791593918674351495361704313397478017112536894961204430258122283295438911969452946858588227243111227204231137494163108674747132486191437394654893541851578704866107115339802906424190346495610695698049153260901045583124455751527245019260823036156268307960649437288117106696189956113237326661746004812829291706156820214543485465266610153295227924885143111592031943237390634180330694752154831124179497489129808288969465565144884855648875253185544430691171899890608710799815127612887982232027895957681660085780628057620995609408155114905814691092314239947458223265513967683252666589664198588264811321258033004852412513172758372594678447658262742002966912773833680116462190624905049868041637523290274509526887731547746253571541523171497252749219490571563383150860356652047389423572516573546398468238645981056017845512799074394231427218165044442614809560624315051958572392628600074527977490649208143583096989028292569594966234664570060603989263850122241885336531139229251986825918599650795011256418624007337151764255400486154483023111796227434980459954338813954949739486342812002194523814680152537885406853834858687151621047937061707939736175075460964015874167518724960279276062953142879810070299799975982085231960136718515803023753468136386088653275824234030733463446523921567530272056246274383489198151316542902615637241325317017152123832088086420237474572887093823681898412415640397288884919077801817714566875859396210010627611105157463028523260203326604987586348740178047628429380174101161891673115379348526220961536566101661660928225650034541195752804083374659492081400508002716115746799070340441985502864202645798053312254347348013929899502973263909970798123319280172813091862293940750836411723208933551661922582309417008059771354204871820127232750860721757141882525018972353987697226944396572065337202923237104045129256176129331772396268553073729607922603847229266010422535443284623527489921263773723603348168337600584599780114990894525181119096133062239846635563374750898758242180071648959578672226005799590472102857107260975936664668045193169749959233255369099220868612211143843913017065022085149894177981491907112364597973396098233955098863842414066348526773452782532265096595338946797879284224210912299244215670929130474964722062874280476530649202001367942295070171601823048229543433514177466087042930840801852780542525788841790292706225568656512677096923111005978841855303110560656383065910723176662810569077264943984846565120369363940272676797452007924454724732747327699943080728043538142240588312383507655456162392999173843586059743387142498514342019716159142579699937036608494520757575618276204375423990253190627098226948284880341993243200136514056918468563441904350055336255813381810321070321055902679578684649708195233300551387034302191456595101621674157622356611494788099795829329208670524647107946239812514312905825808354554489240725021184400273940072216437875211423054885384418632053660007527286316111023729998191858354617777573574565553580096266150759914352669393509078985415353536239515281970967785774053000307552457545060011579208124992258781030627152800635154001379864403532353741207665840747568277384182785545317381032545224250408300020440095264012401933126210436446568481725565985284200899312149299574705820678680286383526815231080418381491979049423715228205430733426636221416638661186684274517790522532435270093118239898769345258252271434351449170670144378999664640338980805535696379309141665437911818157934764774206983868191130806091871739967812322456165346618060592502041849966119109976760052908315672537233756199092411294678618851536201963848804958923127168359307681528946215268814224950515670112474703487825560175772244212221659848928161015076433398042059185283396438607574611575497076781398807582242916931397481697335978673420125928877627581824130401658858545676104687139052896433472843973848175920481682145347924520296471416369812452795055573779921759630731976259185525991420919873841330177475399402873594236403954645420949174939310610593558546042902542009935976503418961437446175624271578566272589942285699309293842408448478235277816924628919307610613347265230374250296452092469901114748336031119765326019160972659770022885796213967898094073699314351087831105584206038979990046479956864197802740796215638491011518854443902831514800891811701431837748086802632654035396151455693054027165528054552282730720596513000755732169861393947800748148271624586802177494777682650022329353577555220429164511156836184254302511377637344708409483552820470753836120830517833644519632097689601598077524535871029355954511526683786506456663373989162921189743521882166794304933010305418424024813720801522609510363177462840881547405154399496606270892334010992220427308705318622690899848962868159064098701890025731336764126334144661726963270332659993676370333021960101574943482281068968427779363118993587482750041710715198402898218183599175656462534915801090438057723219168967489229287508629432767086520415259739925631255551775796776604931523653122999799085042583275982706380975891698056622892089141791672810250507983121603414264602268885110087885138723657160709171241919472681236478984726352732277804419892367814729605509318348448011885697065477258376415970997059279701515659792543714414747793109677305583261386712981338810779826073246667980851798373868201994254374412249670130963662908888758828064899386309032380505432291539435538245793242998017945192440091814834851095397509564667149034338963278478746558184142683844331030028445096297319566380327301662082473483191050621662699048527697722085838186072026027931712235474959983076150415513600601375498802934873150490271066774561666116476217808682542118816956813212984199265055771013950256262662364469356782937247362930701915353269833906118577895116996319037491222848436160331716367656252881142507076636076517943803908064882861539253504617785905066981066974525900274342718720793486043009418469415706673550202783241399202037072240875119869245788397595900164654272988024266484410203941742064696589174318063759406261703707204647836522298766335409406504421366367443530244379328032000006861771056496961845123144771136040585972179557634004246407458520612274896621897306884620358586603275414133332720519901837657704916649198889165300837744308016115390956573226244850033148800809138298680097456198403067153942998775678709368898707188475784843340674839883431360322032497412239468868824086978157083263558668829678411315191634466891030423438397684393137898512160381571182000608732439267235092782063788833686248339025589351802441757276737087221941226824329996322846280125488743847694618011124702444842243628362561583366440834078778715082945160185429615742467639331384254533966262060830910871492628033956567050986755738359189085849808189346411747643608261607876052091785226936095444018312631037278740038387312395993162591835950254149142845336456478906594241964401346874783251815117120950752311016270483042901956357383422049867059477138469954464838988385063545604095104412613823312680087793987228988460131930237367488179226824610039649373035871923833721660273876168579629472291263161230949165911797398725182707644949813733422787762463415452012541251937698902537944272413211105887998303038098484572149414881003935783274789232042551290256460193688373673730530761747634667118016493786581660794589208150200603303637612368345583503358565487651013673450216379012511348133305594495264173454803085591193276691507315620568589708303692685664860676836805885186518492314648784031259217968497736717339098200994174015916239213563544113858348572862949200076554563529908661852866200696374199552104276609474920402565673912205687202829238260642144012202072956957728029446265340934245031053056967469651773238491653190462247655819871129319623644400875985978719739140612673619032572473488296381038837610007633781671347986118225586413070067256445864602021271217823425320304285553118854262728412300959712041217870614427389026509921558926374725813951190038997976556254214720981294380671071128956609127203639942896398293529976316714773295558969756013668457706319808790116872990557975168792712803454574856358697062148394227050026569436712097809633339064599797408446535043011826421735099182647434231388804606742388202070968926010657763010152277248827568408728759364733712180901885985910312564662598391062795081648702192149326279553349335026654339899811706865980936726703406874989966931853579668379486412880029520893858378249882025429605003025893466461485946802664183993396547315828697096826357886213872405324847085940764103009412605878627125190936493565375315690731228156910712623038565993300410409932302160494759582138794592336154667651058938183718616541357785510912371405496990732129401276389428751830931220638418738627281758101899298544203160598808962473435746821698534741401314982901129910168255536864761676060472294406236532121122213654889858887827002729728621008285542224709443185793862090876141660627898987362944713321468947708399023464487764702698934790613777677468904455927615494946473768549037299731037753053544641605555847580105262751477145434182880958927108266605825034668191342905398862703365122121872893980511657027906583552943563160066916081462633046610104874139434037636462086811539712013176202683730410727071996040327235678723535665955359327626852533532445801127863551503127366716466136837150624877978559241670684690260440847437881455737296643327139663471459245003275125919124945703533742729317868940868730651926853528418776639528522151239404183488147764871550733991191389194188458133783632978012609700273951308190552543387880128172142783231824589336473906627171135333594599635979285150513991559510044021803494433378973482535092937582777148370361696047029741976365427572623840440865783790283850060027030927001076057313258687830027244720145954595757354734311471519753912747791010323064861430824040149850558383269764153148377703878066074468134435569813078519225643250640506515378973228166080355159472003618847789106588789016922843568130067716744122236134079481408787457445827942420954745651407988518216962724270426314743403916649137630600189279880160200630280662411310429574631300031598125060906060102814568989922322117346699173970342027401252099791117577074935458184481593828705091320871455683547323820668610658215565531736352123615336006138149879830820876307119172793985098991968284721597963405091778197947461525008037208006692750674325196914744933774658075361118503087648692930113224874636958919995890047808598654329471118888076662294443620829059033339453780632192152135987902835731811609581598801484830206350357473235229868762580299536760686513423388713571595121235747702610275686369580303424660634900558894953631587413178143301533084236957044557247316056725031382340437626203907118688496113282625372551921654557199247308437992085271432837423839654044902080001245013057473636852404655823712580370888176892713141914372444384401172473501298320420165880152354947922913976761882603011124447381011515282347831586038851874689501067986716092801945339271062188194735487032227732341864645247236744037400766730226044530471750740454124129323209480287138260046160826394730959424724530794543230805086806898865235455562013626110899098032381068633188328320247540054313346488077201836150059761667164937963141706003044874713133514756480202137696732378062599925231431116075308886380623283245820765391607298830712799508376840997914112346993794241825757155930800023813909993847783178381386106642105024828323274597070198132101868404356026081675982746926656122184013475357176798119626675166727942109127838410209004777845334955169894357173923995197823114049715401929974604707915522643413512393860256981840588545874197320845771455331269104326209554075654976015794201475795046809896777489427274888834687447298633697310321641353936267088882458061568648241319816489104348747401060182669522770448742596389498353477638335541947261403603611653009055913877178736030011794975610879058425897026392460512314593963132386485871200170596362391026334978401317443408315587732018406883043515015272412897925798397714606081489773477995010651484301632029863360586254163133175907415890593594739996965532901722269411330869049938106017803636439263171486418899468343818681323282996330127706722564669025980531090557613378295181911896839230505963170000402545255167851328455741386218413044466108873795437552677278382587935477309672937885053116182431641885481801639057765622573075360542565272313390611368978305787793796531277153140541143045516916219296959044313036793164648255446799887854738832621114726775853462962613345946947729293276298248662957079334578124282925874784853790994254392100949963872888101351586136414450990682469123529387060340893378061626225708914861592894307957965644102426109018830445766051422495692119224930097677500309701952183221875587980437960967913479191915550834904814127441129574380812485992536043500450212451227976563645450068926135658897610454561542102716537772748382132886856430678695824528695609460649607361756773975582987108746516871307380528402997404978260704246034630628189364941237106851959014472450058632642664899490440029491351311587123902351762957969479683680114825895334944486596685462631760640065694341001832034660771602736672613837660900688406400073810652902821759366848974157089492985249418885456219385361669808839994612464448128970331875219320220905568558458886001590172513933736005445269181625876518888945756863847017960035687672658722361023984034498948658870343512052981791275154967846891507263523973006737337566421994037868228168898859814004561298710653584683202204770432309274043627204169250793914361332380569388208677033872164037387379283345006730212484443670990006040782180639353309596545964347028225252340002229475007814764998835646933307036669805694135994703684546889090609168885112970488698567403530183919260775041788996391032710506833162037969353236675088870596081516148548939600322804596660446748365921969669137927252153916004810903613354874112434214077024424978426542226248512938943911311720620916727828218638002246818457056366561921368259842211454863486024610697445528413146680454040573868063735462190692473870953480168578809338652708259790141301506741147481670564613222290357619118049231663889232733563368298685151409273255770345604665460241690601330574866785628153328276863946684098264383551963610423441745144279898105483735286953224507562607702818171893393171703867888763357485597114494006832575859572538867908312803531015936983929719209218861724023081236290577347950135468255870008961353533979649786738385758241734193215114730047717318440888388044289312320743434956101160153901240106339463466544809803830499907379949872961259893334144821379436293919819702552242071158817742598199018338632479443530083182380007603637319768901048663016637580806189474101785497586505227180221223878096125926382697778118042321191182309068633715888286147823426400427760858303793313269028672852769717607758287782256998869846816335793118989744110157478895730597979853046549739632607126092117408302735687052622140761034221814497638676758280340810634158738607431987458861659721786629623480727806350618194263275981610583112322578658600004697971194716787595998889874055944637746608814380764559647804556244646039329527789903358267971430023713540240379009567125228164790205786577835607078803668507683698141208449403394438690030012524285552500624204135737663057568458504945717842685423398907988565785391200426494335543154431446793289823598129243690853059927783420212134410450877537269547375790137007205065264221074398093855864373740179017106443846577068968870290755623362427391412715146297821376837443915241817335860827361730362812688367918398977285321374633500801374852736215859255966914037453757895966435150501933945528621193413346701000127970849362273622913799885083706376716590992540799198170747526206182418372393081895491948917100238628492658827672945474720989178205784511226077928919194418465694773634849587949149619097505016473531643989495733522328478672204497489233826082571826967425185654504893192178020289809827560345435823640783806059680727056019393060035525061643550486018805996325804215724078992148686175665556425676593772350166472657962139479401410881519927976360156451282823896527690251735558855359376078579078389581722421059862154007583487963622465239352430132389294809027306939887688551871785187469855095946093199977632863356583552531909473882447500981870695685680640577810153050917788839809082667803800442004371075371765132267261522233145353931389443318273870386250428493714024494508715413910366987835488517163400148036004263445937083621299379930198478527891079658180502708294152274950700929250865950101195163671357362074319189526715484536078820251233751181592294673397807138120821420702099448813347854672658088345617270140135268333991327293118080797320352141096510088447502500689300586373873754283290949909139779171363200799787357526308643953027486671451670122509090123133041988690518729445319599343775272811384936544259766554862106293677393991193377138587310293259514569655150254516602143325620029303911003366546241288756511919820424262804981565141139770386250276804426157643034232413283750252740639128126316118672642920068632343707502546286598948885281758114889152363028093050779770948117965793271173222730957709408412973212817172288905368786948551681000367428534084081277886524602133261582536033061053163432008765130205618725358323360203020813102193799262504741422253190420319891973598596427126838193949419902691693591923433526103680099822775080483715033145081281341766400198459861775590995301685707705398605703250536791513018517557291764460240086483936620054197411946930935694981446799441986394975356233148716673418173721808109544729720405705474936591630010876182479792048265363307049185119001275192973656902448253598545820788140253929151210240263804544311024614630830424809247326127586411820904127147428172921057520748934420225620323818083205398591675167093704465275042247604501784440498196493030374085567188325092498552332171093154821916787320575124722630808663601342304291934322552166073611666971448885499219979270483370802993524188050997232888016469895592572871951418114797167049811525774975289974032416640810145303992924027393760623644098276085359865003290974256993397418225306546700855961407145889742252939151079654314840507141796521848876261950908926672538909348719272650305946333096508486639906682046222652618521438910606543718690272166474242172912276729835418083095723277256199867847666222682275893646182357055377367574299702536835021644925605827494855055843874994130783304481098865573221662137614964054512533308150726778360784506418483872281432498376414103063217511241071711769121771741560180367518053560506846217128738001020048300764523405507247933501296756694083882568313282084666193832777400236235256278957978687251698296864567820250295952519656228820225239985022283469763836199916218398394949393661431741068296523775791990105971058342822232253387683751304901220866620255603965542317256787430072118276665270781974831445635105540522798108795149137756253038098090190324899623855018834301762752594462850925815868089242719929527341095199555915789289433925378492523214446639009679714486646695025375885819577151351266964812391880607148955383319374018527044588558094957502167262582709375663755419706285448631136135657266525721533655942639262263506462525174656968745510196808731014892112043116451996187655678638439359265854474998432155976430173722670871672529785274512069601003654425825501546204353013014049964907600159649082863858739508444093422086169655368267974401935046566878495463396068321727470817225416476814301324497650431262632585799406537605347439296413718286176663019685076965569304882546322346675091253890530829817462105942471038502989906771788444636460401431539125274445117026634004241704918327715275206051152744862066470032045131413510637841396216473698607300655572825082319226255298655462588317509931729622904990957802017632719501162463399243110243471251451464784656791197657929719711212855760318656635974725746066452460543226721056057487919148098222998531189001970585139939129826410101020023526118043059200090433544256320494180353959235219825852296353050891555427277218915890068369597891212428853544830536896675914849802888049052540095546653169042566604525455240577916654715171780863058491065369260877268507923730615611438872914447821769157634855466328991433149514920227595581361152043426756216048277833351553077124998983756143961185541760624826992762080827795820032914367417928766715135035978334375531992004246357075624153386408890479215368724123922191235713495107894715392085230949395182142626798757151392733888909756710485441791220976805701458448033539011581425010404658177007295771588673289630812140405950762689808126796398274004009773106882487039600420506259512635797398170306469848863666276774602564629567614476420631161087689610434641240354129441909184072253836186949513087533182498943964357077106877121583819185490867178623611874647954179635042737500254739149485279189030567630115755126990649842119764748068716113165763610129560301039377325582108775490692130435591022372105008535692376327892946422429024559859801320455248269716284399884919532146525323388735112508247436415965180675031114476768570178334136659391470637204941196052647770457277677917123788739242152239867668723277303266324020918481163418686951644805872941461547410400929060847546806993948728376812822583659491680233045858693531437494812966568826268292149653530951088985479548679323424799794122464046844249340107282278729617535554449151201441369594676430742813317356821125440943425446067596554696033050436176470457024463585430187852154236776986731466771018365395168785322035205628358105795117417886162774742315708157546412143447078903564357068317194650608658083263238992468224282913537572060751191867978444504158558749394631247126780914750427938346365784403734109600779129857886510593716862311463883608875423031713715684600991684049297966743024748733024113685712004996330810409635050000381338819807326960111767969765942738685140686310502085852777164239626490150123936823980528648032009443704878152599605620506323217775684055777687706379377728600321442458439398266093199664992308873873659555274766860612028616264827073860174457346096055623352826397238576908587068955961616269598305324137692923955427476191532442132485413603894132228078021168805544389265281752308191068293839221246582341438894692988491172908792590485845026009686413114297122915983576353862504214676981569647802916247849405429520122321432553421623770679113151026673918325742390207420415600364159374589663576950351093834322626530617539641674851586501193805946211438464197311921320475936788680995352903936235504214941536095896981849064925552638937528995981186169391256244206423065953633908958287431418052460590845286664984298869838329163045746877577753531273519645012537624554787208277530513128082926179820322684943139223272793340674958440371489388127298235016664244581487350992171235604928206469909808588975407206105606835691355853592495713270006413618299045251544469208094919386539710861584975800895791980592149421423121647265108489154866047192176764874566753524575355744097583298513182381944940319978152111750555582733060506319551497602376339894724942931921427744714140614708448201223822246553282677387909696909967165987033021043693702334734005675888124381483468367076556918504380833176104900076266872949107512867660770891603708175202285896822854941519693562171391621571547453563621744856910830085111146792272251974085900686516429429579141954797488892603864633824522497996937630788752532819702041154229554739533738749898621933602596898768166814559913102464149836721467191605809817585271875464048363062401662897306315312306091851511679138187331915567527882722182605771859462172446770961784875119943737184298292010369095917942562397417482664473479963943484388750264410604592487656175391910287073427209862232491232937053779863409396200497568598143729198257500705402947678604615381250224966742238970405762114094177630711621052278268629543754818264461142032625673708027992566221500185532197248934602667401647565116360459579496525406917520978754166712883951616519040628327716578350618136728095518192437420597536409004322269453746736251444444259780352908286256163594840438027501963580852461808184856273563802171336197713157159653513079038442204827589008827734085709442253335434494097908633816157981899819145720950010002922749642215997950657976764328547548105047828007562245913632705853421273246876653351051907016739398580953385421842437073617959024774875258971813000164380327137256652899235801342977387593385583367921170159858993733793784901859307556323864217989943148233490165634971602915414446462990633573246050299975897498446268517443518156438355682211309511371405616091153844687384883686843024793282657154423846156593217907879103317873164738195775293277559666222566084661042121265324096795561098725959065821161412294578741996896598615650079874937056062847338427462260098784810130378266344944163522375584491921657706472955511857422558923483936388185848737911637552210594216307332758960374093863043663898560405135409031849984568574393947304968665288096350422506288032901421845120699113164749208579018732485010250550677523589887264973242194554658539265804098492519205455618311464538633414186973957775480311888103951606655708542366000088039275381713918682564085561860540014131334110623817122098666674939289995416981365545107343600886019500802565699686110389471979045878472363316700929669866065598369064044619955313559353711098133517858774392407924995275973042981033905349168636184649496931142197389335000955666104089770142721615144733189223843362158895842812654865876135840866940950312651306246500841608770281490710620893270838864163594023172492420633977387560145947986639194997999906982864526321055797131375249203357075950892696282579460261241175458865628225040283026708348950867373559236881526427939616349201652066621360171183162783122551641086223501791140640023292173464700474244898190990244891312421238640411146194004119795840803589760126453449433206155096024316814327926022794162173646413412637252511494216909458826676376493520545836803541656712516686564394000140050715826087820203921487590957309587317457164748887665772636796892036568445268272741281924367112040209731789145647566049013487815461824971157758497370082522795675981259673528313114628205601420437715661880015264549554265245260639033522159221059229180309373891591471125952128224833705027761073070203092038529683867588455488460891945960999664480302704646033071137627783170545220129464358078551178478441443209938478386543244873423740169123523892521422628272877910853359689980474557483764711159171076432072043082367563914998204286655748476256848579148646265781082773063658200978024197859796425077506163754774442874502285281284500981495022461493255284108704409173769854649712730559744412621610843099366037636378778051664476007493232225551301008444656659463524922562351768028863470705265317649375681711801008945941936131666619486646182929320480788111248688927137766389772699807396257359439235383460705829733450192922996285801467894389095244873616723644517473164141576324718464171572589573721899381457591620479907313444997775699010544136027087194541792991182004400973147225406986647715482791577873413612471902696050853213084172018196028868369511032293884250576165267883271636000372546859174452434083043332970166438170940065914726813934612034654200397458925506649277115033578898109837956289517525340232695668835783306422778636963368122743043564818822043833519901973849884564890827417136200794228120555981992513086343717214760486711290344836925114712240285914776786503346413496432695729255556363811835551250033619967906857809010863721937856099627681034340882604299202600051597944222628762029861818426942318628646149177047611386373522359027178417514050494168106442964254018630683255721208758872035879431539665007638264220216699209857681171738251826853604970725955309315669799632314932539659079166186335979854337951499123610594237703074786041636135202223438611404036387300096655980098040623946146606644155447014428647210763464914862572863259629176925845885348442579078724266619711020081809541366517828623268802139793145515248004669768877077802099598783357203799484274165573095271235998734615010326201465303591183791677445053336890403964413350658256369275950294841636309045627665259216858515102165823662931649123253510512541789987443639808129260237979044551038218749076570808641034934253629984494157507956513958015873112392662526973797086163488272699103919478672670412302485699992009166294841013290464549795334879814201605636470960474926276162530943846863259902379845386779661728845979388007391197976977088046443323503045929789339825708951242308943215234624317670951988789332908374461039764034606609423482065259104818631694515745932009872190004613280347383087617549971746484503419452664456133480165930694309759693490000538967308389749314211323798396602297185816604414535395403104117434693965650766800453441578218242601241861567486975370894475792292240051256927358379934334589294715390608493289395262138227408476107008679501210397514620410253217682076839346491813353182710423890461268051203166979194074341271128835973467082979100614205904239706675778316267897673725811555006727684016893141552544046794589421717083231977394525727323962187761763138320180741108755576826046065040964797551091429022641217555552618008445021002448706172990534921152152242598627952393487828020262410861873510179906436804478804608522911766962912347887860062712306119452049082435540290381039786050994605535710597682642508624132243737814610078258404794708606897894315464551410585878578999996101701900497095687520046410395129883044983774950349669762904649965418340675976656155245390188448285898812681478328966319073019881979062651175496674838979189414675379562177082288354694922469762637401605296323654241196463996067044397362528754358458918243848208608160586198124500048975178917479411957372447389678106769773297613214839172356267210510594717744634339241975773371524282525825417519144935925909287160566982615352409323577346274467057663395486429166296172681177083145391684779362153169663650605087685503244107410655619681256647602228289499977517121503058634541831852325115918613305305313860829087487834394488450593765579277102825353428441331536458404606851666190594192117363747165500188745633629173021651255445405955513322421909916111107404985459699653488336822249062299503771134222680657939249431533692292393589991366100423019425598807856128004308574937779101803713022970441928996176698138756622075238663076883284225563769588087289930810262477335093243613837591145309689198434352583053470186207063914140701681006906937008945648050768690885512141636691534326666060967533838584033969789131670877347779159901784430057593379801843505039015165674538274638312228189083327313289087475589284994183002335393264557702943864660584627566841318084066080571453312611415584808515809722364199381765170860010740873096745885118590292405870162191553073043700774500028182784629949591338857120007206285933267041087210590727855343886884757052412429602468278032879470074434235136185211151391980055252058715287200859553873478176074220778876985136427581024110555910545533541373784605558450719052331160624151771639359329414883990102469044417257734607066144684406222896483852774656988165886984620072297790690347338409468535955025929435289713928267036676519812583876104882320953749363839315022169946191104294182234119253986691566354238306484496656978677079202739261711936672043727385742244788883565327426973944263274570997330542888761033939619654328359749682700564579018043355764419889631788172629446151819000785282387350443361078320050328054721284510698270915220605584748952771098953582454898830188182674951134160595873685335752851045738355352131867206267040920268836914689996390365586854037304747888362233551153096491458901992154546135728409704545125070454927036478476472779280372222548686380669941207193098139954771142122096150977122768628076411068743169038916171389023208365142444131439550993055459817998156201619052680950328659588203357827728431800987874532476811429369516430532977820425435373250137424382931842336159680365824319402602500293233569742643211436194308483078448227908418525708687920622395929243817129138359377753641230432289611747605248410915128111771408145788456164094300831406353074077234607357776442489469902423284246718977564440250535055950498186302471689342534334892710022278962599339125767843921735633835073670750281177855804926111948750583231752671287987992500911370928563750988189585867679657625326271983656239140302634392023793670941294718950936059000893361766050238134966671873169886554685896643154554837323710403623463663188888519131262770253945017499017195081425719598698955205109556602407918039586566636157941113773168204828885177245643654543336438380403636245677296756105336398010133317198406597971307076548048427623422864783697248036748124624519138256087328209989764348331884522437937387489126537362531522669556417120221228282535833646317484674850310951972322400379278100448933456204407508491085544759445142640171116764895250525057610961837010311799029288058679962515485307136513996825066579236452788088083470836395372124867972414887808927985573306621114714872606997314376165206641104288858183349273146765772527978912335153284165630867499180591981113606275009705071480489812939456979634726130087795658768867905921865842826723598183727151843526982771510168624395211825256541141661498053535004445560939050435420265164238667820204297907816214492249056114543999393556777988583133978451183499925482253577636244907099965766014765183634334365620525692492219930820599829539142868368570732892487601471260172406852695455874755950445266591355938908106359733599022155036088894659187289570639673922374681484761806161705727595093726204446713587981071308740048517576931113738796146510645960277986729994390553242150410512487645385140483866736669160798208755940120511496680398480329443006166633689187698114953413197987846758929790143440100653230117513362901398656182534778967770578608261232060155934547401763871324716591311375517894697555628886447812598098082755454354053462152136977652202867544048377343352841605934417087085044465279814659259692379114909773680068170660794247984120162527295671045497309214077718076295912501252721871800727357180238332177075136913091564510879665824610960627836859415772703067616586994137682387616938520264314383699344237874589780551271162552645702681985955417231624068569936313336057344716059705611364682986124152427924905109012392628579462664348495804248263211050118654527170500387413096085589275372609430310156056587766612999115338228858963316081879348870113145788511790362927144752782583034498912856985289565838871754127643152607945379174101930032672215047040639877481131319693476155253863445382356934311595891441693103825822101764079121618495760486878891701066546267250226834220649575377908229213561642771396360644778951898796379612348509546919697458840629020132852229305912915964206065415482100349734368571456158440572248788308856839004478568509746849046246890421376274240716147863185964679812426430179183132214324987651128215283896173803847262307242214675630930166303398219683893974143715581996344678991849121076157704560714258390300712139940104585758857360431819291181150645405212523114853113101609362756811677367705074011835466924860275753840805381053818392896393085829878029623366676797040715980386537749108515653763073980324143568226045542635548872783130287325737583832129452421791183938335983869787282511120172300633202826864012685404469462486364060401723636157912316610114208312946923794525009067785643805483000630125403299390955219845197852681940159444458254441972184747614575063814021427833805147900192065438839024333521688463215539896106078012157213304147313424879834182045354775934574233298632777370851368504268651448069813157783303409401198319249084005184262134291732724849658944685788732541490725754991045436293499877703928534143976891565054703875225063353030242888527236207483404184703978872051393868413383526372788359714394560311832514133488584086269352141339665578112658475665068259732011983278955294350325476970540743608491659565327303930471125476893761612264412807632852740741100538831164247395186578820116440408261303414971792109942071953142792916299713267745047642107657635487287751545335157353789566976107762477775416266926837410111551125809455558689804145406644875917772211169956472324968927678367909307942694564442354595769158961926012723184525228316271341532217538530407224232011293438565090856868586358236585768762070841466567456908802105159658771613804703038885623625662839702083862044545656464412013395294482123080345382802302547994180946708862940393762375842878725034810686782979422351072677982958600353661343219133173515591326416897685686297955599783408568228991107134788830571494893538871807970540175754871077830195664401778007879781238719664844069875576745614493995713556411145105690281457493963864860038221021199645108670157677531054056647362246057548067567101382513851408800364942384135789751070140961495559203769306086235776651343208620034115727429847021004595951452149602147574742395985763411218668823633937829851068155486923472923987338064331177953335421418291433043307344104931030769689320559147544865656932971764641848034832415234427912429504518393178113902876769533224510251552767721511177727959730767688516252622390047659204423125259213362630952887303999075683896410175327116691235289043884010528524342801475514206214440666058101676007680281684540932039802248486453241391821039751047222914431505637868482949319734348691998586601985073051344277383011917896814839467082341815283738322224241098141967246108278802800839362532005405895979355585062514580902462328587441451884789679715793942526402710608617885110880293241735721427038476618112868287564788723650023015703480402696172453086641894996393379707585066129203790898337908368126153512296260158276435817564695557762399376653214789418250805082340091855598150582585173530536263248196322243215393785515126151386364992871057542053968235769566923694697069586360556428825087256134415171778081423000515504461036095724619090007063703079111330567377371006304700968110122021966119961561164402367107249040432183861951444214884208217063756183430816596189366222050409140401423452774952749681411363023691926813166893529963096952572455594311341251156406802256997185165534845482342379285452873006741983276875730517802754235481037859139612372200631144329250768885163375453522713911160348419649196188166691699770728260555397194601151547558036000444282101557999535997807371439703023660827524482782137887170871798890872312556598233036694948843236525283587843030605068577719927960986905837729748743421286216719955847047929079458248000549566753692438539490119009855269649107536734703761088793454525951070340506902337421400464052652652356652457124430657713533461734762259170589403029637933704205385296246746717238123193701642437215223650894242210771018388514213436268853591087945435222051535024271087947606792914685223951848615491775765101963703579488737581031448197301662975848210769669524502605427523300683047942345378546184437635856611218252334639900118422126515298088463670294911468382702196500103817417947822547616838331808582768942486865436326872998530534722564935720194598134333600282896709457621185280482307019310275560409601882953099112657902562319031773920347091783872054320025554763017232836318252836007002993825681963920692856080698627974906311594487921863149280557444301926814361466631191812881279289165193761733757292965588456150713265549934963914956602371604645809847653658248762590884215722692179125931334540450496600531527358048999032897995989950455668008240418004773983856153414722467518715821627772984720467323397860798876809224879210675026164520181457290071787218451786492253866590408645005822998803788260425641289344006731793364010313469647978756452036412505509175031971138026765026885038688411722891351849305315070285843036016380030086043107570018311154123412299062609100891346101793589217137204802113103069750307486950403805338266675674448368698850472918561456188896956055808813411399317309170216458839172089942332251556869267516997309106906121066826444739868246474654393643221786829621241599468140506668696346199264579168581983068503942138597701146959830278427864914667774095100452111894228311972832361856105129348006827180087667631992199322529407228322992887494420666236965410668467295561206767234614320725977151558762193307593049304752751538166690177950023084060676845794546810988714090516618577038112995345739081952910690102507044323174544699624438043413776780258532917786457472271435708966251286908615833906479534662366221734277562739968133080798680243858725340403162137352074004617246270067137049024966402570650473003545511177129471214045350382725231257706753245454035801882699333166463330999137767188500652045658583852479818910163496043309097315491587265654797873701845105293822594178039823322437541468046186867098200046990131688100744799313025411520565539635313210697592880109956704186249663871197275785569227519392531049342584823916590501792358159291671000236753724401835500707678670249181965071839649255655569225786200238562566387647229943840111802158327525858789501107262908852138100457588766142958157069420087482799207314006383199433236361758848148522330080104123473458760615428716881790495374565931194981742645831705422114052428668528091384096322797715975072327489767239376807897279681483009887857694911969102472096591090446493096160811574259945777190038548954609631274134995959941875792892980104440677540913055717705604652553217083722847229424840517588234878194195564872795772044931438248072988798136667869098508362350112641082203460046247138030222582145222860221797612615075728421902969657659590834324991830772718660513003856930876778569616738296367335648629325898747035459274934550115630546460440956736470439667107949281246819275023397027687460715835913371565356045606349857183029932271922790472222237511441986914173992073885760188325820416291089167341764500274051479578726351024966575549462303625208900532822914816875228241322141804165385136680819730237974248341486704307499560447522617959329115887552417560993641307580549226528578197312539822731106805018302149496728573835851573327584269187271056842842578124850071962779550494725933326839654369697036694063740435933470382435478434780372965147872577740143301445721087727571142412420321290154220059545799226701691856736570769647556285458563690951408258061860560282055336659887852860642292886472336120584427814889487029506426162836398900587731543670255731732547256636863524035107780096676693980787771211895588990106579333921949242132566407192000900372604506780273407688253750370854583162462553398084305325826782959793213322646943817588439176876571861354036102848167201862105038241229974084388524802123893550587816707868984599144891239069061418298439945166151742539546536421612764990631156766058796884620952661603971179134139955085015782832277712041340552449885130095520514961782245441090532193063084336197305757006720394313392876847814295997003185413574024997368513260409078646540720203257994818020134345066266461789141645806152048542048500007192467217075533424282042410212936382698172477765354738831058429233375764470126090865159159793353239312840520243107322780732731143210795388481770497667677494581659684118916145882039632955232747829887503928582073665430386822439958418837183883412517777035859232308197653147379903786155934780501799530865709444700498534419351756668091588708237761394673053286259769599573416419728274298872500184303776402090161862824524740697755694669293528445995964026833810065615362938965772921594372092614828356087376027167677340389739328088014553618434650350469784063074679325238562392952716493171603471471197844994751919011471918907522925087136290817331851545016590513611989905349685142291048470075160102593379473022198467427583745295164776814302463183596299267082461753439974886757790196095075840371664212311762061537202012940283215840024668599330207404832312501430286362752205454707245565366127425197910630466460087850920030134343651028534673552970447592191883664861991896473693073251156386426907741753184680656008942054937347052214762665606748247326494091440463082235122950034646552210423821207347158951941276430186527764800872031758059105610758332821935612603706403374920530840555157688770747142901117360296449480774302799984923288453800435596764398302139316573210747250229891909843301732968953877374938969777920845954842989601624542831607506916469392772201689945956780611585333162051442642815576929367762279747742033122543230788135287522823443323750176057008580720970203184410058759334068197435043302343193655186562880113211740638062657058564583427276052351350337756091339345818689661988576494137888608737334932103629420781606836689057999641203182384340738544561850209042181456569134277259123637375723487666431207112510306446815142051392754707706845194316599363386036006922924621807321388663184354045026003673324426461800544799318134078584913355411996597185234109457987089197016848179660678118965252511235211595766605249999386191617564766814001056172020744414301129398652091640560704903110980349679372544873628109155890754335400995243046218726794868414191788837730107344808134094086168705249627992811093820845274778441777748149175364954388134930117660796268717761211290074647362187283706526497821385772466823852247166878894112920537012856768171454817894312810804129777646410748747779110863289794806280172715960822181729088585624725543856469906470751064216036196638088089597781368602640033187236664231908933956100696833872226583561191444097130492075114028552676997191185789216795860461960036024013380070958470271816942962468007099348973438791019761576923163007543202313573741070766321391760461557493900743241222969958578090168655898877338484538878321173986491336187782235853478490827240118473571230615521059927870249423523181091869362152585385772442281694843002834568123987367423605155928168363902947758192531624321274256079861266371777185001327248624698576158662537981057358271438008247405692689973516124537236495239178381598800510149295855564729522971928220606795684182119060210960734655951989117669688246250340089240070641676490660954438938460540776864807734067089789970600148640024751383054366321103551919016514124315105030581912066569581520087855704932411253930815264295247992420279797611820531281215883369229209245644940505872453068389365849674519476736266160345100646545670734463563599900591015059438380150472665770550867428263897081103639484100234748698987371177981824154580591596805276249885958089018111543350298515383886053073540054149420284983298377983945801306640983670659458437035128020776242586574990900726271717082800132375169411004843607710976704667162438599461173027485943430203777655682276283446835326050494446638985576954078963600888497350835726315177890753407247831571348802704522691362918294993583163727185634732511590298944159032472106798440460343140991018450997828889322393024157962495085745547700388500697220174313753590694889150119076066157756052759026807969492622735616190500057410451587035604544066828268513682110542935107165962248213560913847863311285265638360214965853719628187986143573324043279930918935260765338120784565074245113623205819240003654513600103750870792740045256932988165864016343921544698891229134821963286977976515155852214244807523482823152829047153317740003139206897089969628110172699228521911947998234842315482316037511211914161837786095295750775047364201532292615148498292859668211782939781149783923922025342893409356098153150221235354292815050308150842676481012049135555127644207584620931584058605399988746562261213663680026793661299899625817799860724266423153199402752153494298847480735607504612020644126533636864020745649516248102563207509722735675353308258149620880987123409239675348873988096479541225069073645346108507053994959664291878680871946834333680709930348175232812417153094175371863912982783475217142372452611354241045465057689691715141934898563349042410614615966540489669468714885706407940569380600591109939205600198792114946433091652924814930431151845584636095631016850994100663197697960530422532051034086770598791690727423658747115722353186657259816895787756120403666203564567833279828332621685920616989057071768694621720829882050734013166796345390137329496332261313324961937940004717851955897386705557134702649935397725332223517474447803958644873890595869348766481335463928901708191066334297524867126212981759057224773712981969970843842450308048995456883079368248126527341363442875209351655302255293251220339068119295992883232752668775562782611750876232228313981187182466707688344222023975126994091367549042697780189998781946514315993049962634185369590916911106262648940904022744618351259677459437751112614584225091909251563661379711137516265739389111846189119704122590315455247554984936257457514281746614643925007650289051488982626086691090433275723153886316904815586660026219361082969625161807566093027693175756679979596396067185978472881467371712972746160254215063712718791857594054912547941500267939990373512533650871748554672673959076893796969555738892739860722381063111029209137203827400730867609835171782386423200912787251959597900146651191854238549673693758778804991576650896836408162340573023651861571607474196118834662145634572570130866687752425903144580691601085876186305415158457199228411341875824341975238272760697028823348058743152265722616843682757608203942150282345178199095354311967473715454802519264604552578702851754137508328255166116962515195553885754934919569203008398723424721575145146218440356363565805956889638415539362286367964060755083826576806814919479419775159100322047763337678457011582685996978842847305360758622089996118624039789434223620265883544245960193206179152936648216034163208315242002363918687789095608890469241795859203500793611826443359823530983927563090580302244159878983101782579898745593561695774198161460721123977774680083323679341934941209420076307495180699553382850586355247393763175238331005819233712002481065814333428803402906311142798112265002836266594720905232152544022475947883211720507092546094001416268261073544363738742951453408017537218918845744458564519273817324902281101239678552350585344632491971325495424274734852679252180649110740835119486866929782539291548633636884112977872641880435755102777590812664280357349270724968735525216247824916011036428699842061826775449950708294336791698383918973805498396864249443874352175291664543897220763286123095448551595377412014636043182379119831131100296922102223508087418665267144020591854033750553122818575800078665536955858599153103001470680109193539577955550724763476338332544112411613918693243744730730853378365832901917677067429630835156808964851250141152877281615032208058050198113211127302084308797770245546127577537555384890714896660855307886147073971575153798425529338137216936700341446355788132003193838138236378036499614806212193485366278591734437091929494395037156521593878432784712290122283957589137165278110193917992366219071677255034021169395204712864705730260448915229445398764103822078734585174610922706863538932326543138234224572220604841724947899254629966034790708371814121207655348055560985164323132212294002514875842958447903607832098620693197514053180898602255243196053996512008335496604189395423137023301480038933816907874249224439736858537688024834516969337850076366647640183612883593854795032019554359537908051133304621683820707025157124762029270265246705929150340252131523095185185880536793098004142821828703033624846414053606605286885342901786342263643330745903032402814705842697837226692719868871277214596817857867395507993238926365091456072509919202387091713897700003673733093309224886338406722641382931935137630121586174569388943265726383865870952700713897203172449622816041013422494928709040360132242312063076469785663739359561779774716724220571445057559832236297691874690994015367118848680102116983977788287049022363080089140504794135881146328899538051381484170084548105409393204222986753274157140166583145778999976691783048043725356895757839941164085173822887408708016757902445588220155545597263564803742484719915335996812516361679593636949796206325427201557499337030556605215000641053912642037367161228112551625268105152748622981865087224665761128777396135525877367107503484795575767696739788283134665992872928819173382898196101026807139838000279108047288851961596460579585583922441025512151282870832210454466931974223622315409160999825362476622119261452880184103559242217836404265643396734999943418510822267138266296166275601002768228812056054815774248957619005718639716805797980888881664211585611676170898667008198274090684372601337212478007336492302871774957817284744455310985426422260072059258592365430999511974005018044444549819117828565639103771476388478265430990453562142559665312726180163130196009142349426445061741143912709458405030592118606880879165208452127365421080691688716702974209833221645315375574306271656527355341150241756932324962124185552781064112711890724963628187087242281415545433617427966085536025948006346045481450285681147041483096697918278121089602700107845791094119204861401882177200265081832731397570719024577603037572433736410309207432460861560349142452720370967794007790250793101584478991708896346433686046156418195041185079442850593787380718358130300665593926016805550381761824762620126893806316426840158016552603294761618235121456847289390964367543334239896816863184151162750125041107933724522334254070651460815035302133890373180404543043887285658053331291766415602146128626363989624087703635873061071696419710524504173690913228102437834148464995102177429153819771726712323538170152912121900874042532732160077365180010811832803092100177402310494460012968614195661912511531552239438754987081564140895345254661306108669410924969532088241298390137726241777068539048762975776727862169474089091838472259236745178569962881339921522410649700092755637778893483911619975510326223681338106624471528227341810653087560399656199987642337910987885960507614908200121044407999328695087488422032942780889831074924545702093004218123781191739964490010085071931503228737976591018163129986662860075785172220428330608164117751408156692156161748741118642757018020214191733503853903424932761937420519641331786375027933330563132226437906401775448087172935819205608534438215529878255243530703818719252096245863354747275639317456552721380837378704744610243202194805580706195206671475501537046905270026732769723971978195975965717104551880306111934858244000770682921504973876443362409469768619959300929304600033363209531706188279058554543367690238988240150453018489599597989716471019251929772777156641878296732196521134558794819804319186292244841434065101532497404182583266499551498510284960663198351759496321946949855250313066237836069594091904838973666082155394399885498137633290855505300045097241448595765927676090456325361710918622369928997907334151335872063659957581720175323060400302790133167022557402390468098762500659371684567088931578538595684634032686703411214652787019081421600753984902482082976112156540151244457979073763139293691442272503844487270676131076715520275345833097519841603715990191773000780498880533977910237369970819384732932762607328688526638965164943739352298761050687462931069888790042866241050458396263649101495684660649129355922859723924975213808926596823166611841653232559551180699112453751986731745274399383880501523213275297118689878646353504696625642309422965302798355191199868406705999036361367662741760248751033579776205501266714857044307391105595180494680241559556935760887067296863446564416051723848419022667947956689897362563039820615006044271253608773569862355320702007061771399451867957789319014263366991821223493179242859845844423226896623967980604155224355324530011907853484408484775043807260022047263883619877605552616640066792600259370502470881043213091903807787593527279016670454063047434977205084183014926477510105641129027167911103126140655275464465870994852758802961748178155473571231885590504754891717650707971175543098927021636464590637553992925409637441804401377455212221015031390995071781450216037205581149748739417235511923616871146526079053894801581158909641610708872751170943542118463899880266962794426025949646358987690805541150057895004019524464335931356822391043036165771316754666614269701877443392553821411692478272659164556332804487726669495885821957673752006443696228941038215959178599856628953940587517778317278928794135927516734504760900269256464846072314827661589820380966511616139889521234712581430400005498362290705855183707023090677178375984860468716257378361698813597401290536246625897027359210764763366101297633230930835833745725673852678114965761776146794416701442398767417147953101746237310527403408021854614781182908075044520602698840720710155644442368814196885050741542578648101472071211316568303025417506062445796421198705328546293201224470446636845869858886076229738045803782302302006517310693113389736700393494354728868247769261681568915270548507438035991328424821844773936508202747684854763274491128853802807228108795111540345662848978059410217104541141584583287544996388693947081091800647207329885337979141331552548203586548327153749913702816919517132235315273326121135554459292663179879929648700188012902277446358740951199167437467050699434321274424163971207840066711314897452866380664729963968827231417722069517761886458749738148185859541030711534678525455598360969813280699789366795856895181905568691114482115313773288500473658420048468346847933819556632037593538270554102771793285847801924083947863357808888705572222573795547258926391705594258407892106795808039583959874694331784409307522392849375092468959389717179228162686993632318277084713540897991961458849034049958721825768866230390992097899716440582493612798519547152678782169043248230591077982300921312524722407253323342518403080272446321393926639707561357748264847867533057153835448421290194918135111969805383973870225337508942559360489119342522181848830071564145545177244064381595958875038399560763195329947087002676365122687908534832163511927235955387508667859461951505456632896308099272778984470316602517064960841172718693983865410551044093025089776356020494239716059417156047264557602030719771216194733929954168185439741091464785883526872032419616361939594385598816658763198372889326471152627871398115904858235254499837414152734663902401935840896167904366676003266944659250795104097542041587222539385069019528080785042222075702982579638244797370673046519430510466754845466610651317187896785035307494968674508541093390320809640825277277769834577906504444278466525349788388487232469026716596345577715145983872669521995661333113592502946094678685330032738085913007227055436519811582583727984975335476244294169439354432532236369116977900559356731030374308354713504973651269076794118264877781904128167154598850390698131867483848384703167830946505309272904556218749623348993943289259874302957015706216589713502960323185387201690983122631954436785238873642434936767227572575373865571759610109679221911902729741230882624019789987557770689629608256449668871340275439385195650716406771695704677391694650045656114157591304279967741287402648952594155481947884557058292267607898017699698458604204605750640254506012795740210208406856620235913556945962458052028690434862860062785734551820591007537504689203157689833815889467096830404822175447759205194964970023738615907767038754866506528033228216190695480867615636406819047956909113110463678773917841883978021332178821169239287936487248015383232279132134320454051525708545760812654639000891497695878629700682903480919501087581237902525906318196026690766156334526520145601097673856245964344380076948784839332204061931144631264272858259420607607457430149167290963178272548586073360193562355949011176974512849428693250144182621424821351480483602272249520420697464327271250004315351959128079128930483682440794126848677364670506998039336357063641635113505809549199438744683775498736122842947892123193406568120529646317007369690722900615275296139081280726413905177223925848679775640410132003663967846914668729333828292209197390370281369937588905871482592543835085473482565408497703996175611985373077626410261571892356607671010528434384869040021177660463110550322918256996148997261439259864404705678418946578579568200662894055972372772691446963912753846975985262383888685749450648107497449251566476932061264905681105413714511565972869550828940910375600676104374756348578158469204681759444835276268006190678731278815443761354417703869358484968117770118746264758133387460632480301716081874669734439272671223895645743875705423083107920606714048600637765516178127782576115571485091849806427929442431058710400005588854520430219697899639765588402307400849583132992171685011618566245802083467116569077703412870129537985556194291781708439247037291926048765120855300244680574994558920594289540685350766727987672079656484978935693543499102861272581163213178531525248194365577185121779161491491162719281379447463098343584657564380190714572132506057588036805198511344663935699609311856645907402206291387820749313562828083452920501857418903312990696783993789421918040415086879743653716595448963113774963364140473493617818473822626629044205585785527418436085962506496234685160517416220178553004762957169973225429675433592538515404448245145368845655121714311927828870048668849770992890161692688851523813087797362344203464267826833000346109578538169276644698884759989256902965992603119144609698127587737573091196677828095138500741345279311874270400832959671637891577788145854527202510826975721369099986148961732967256018673191983790717299378517968237262315833718590327970874373702554375618451023026148389071256931642558199708572244631462181549674907031567088136542309263581273579469813988804720265053547589217755373048577256439219397172978770227203004556487982936107799832587543070683899996611498683286058245808427525547317187720598630568643561987092114459345841153807698920250378122266288597466351388580304510218610352106188494405926520834924666138017110242790278083411654303103001007378950640634106705995490165679860517919395926975292160472444053415165386205455239333303336500411533501823575141820211897099336203772527878248366335350161616512155055295436213843979044658176604543326989039253066206554245401568646634877316580703686367907851896880542149155150206546025531942312173678800212328224566131181420165818532097887919170597054919855067989951203619284858827793853040858051842202717033601576232770250993400537601016369556065089674420815162484476398714113096908218508999971789536544055195284244300390519467208605379989372892439673397680907346103293196146854570726579333469126390071113480218206237558046935039788925868389413927851841127348498560388682917579570098678290163762205480194545931562440522290873040742003754292827277951025609525389985602579669329825289063784097840196378840090008723318568098350111310137613192131701358488735567919355012143010579247725063572751375878354735527922567942666472998355103528394895502507476542054909586287577163121988351593618187994966401210954498348720636382788006519490958953596055177672448905818618182680701546905186939314753894446056400808030211127808155588876294762656452235817085297025613652130549539365407089266835747200928423722444189435563790658146805121399200221254738545342690143834122880759585668225303987600330418852749075987586676600643337707135852355313505465888404420762836545827812888736743182064212130386626590882782858140437855433036996245872677931988710747428485008372316155043210930314488922399409897288900081543578385963277363434323344232253982661279970932710392172020040625778194355708726881645087917849588048551700880629054484087387647908601611207414884247698955212265927232926700369675846448608710811160398252982132094493140085049599640823211128556461503151202124290232052456714547939712012147597370771402866228513446686234782163596877637251463948131064793188163021105725961644091223843757802021755676550520885070545343710278147776450199642337462188907195809658322483156867661803928464561499663649447349097884753483232330372322919734120019386618111776832480823383491902333435224045573016023611555913730854948818770391019020834216311802749066907209072388589008131820434151818371355271142159319278928170504337047644066459926583711364561267496185853280040958430194089771866175835098727316199771755265981270546140449924406432412663421484572572453736082109927602263539192694990035560726881714562199293006265879198792724349578651294105816804742317765734780987185894824497397348337516742437284380472428068920543178311350745099117785913697188213010402350279428886024294027410099710583750576962812891098551474753031114111909308076376198793490171607217669311395477764753628336052581662653246401046183829083387637467382855611021400238637509944990536422175351441804906195233319774439369520620747188729649463112516410006952314664112898480232617186872417066390924420708818135703723092949771306589837903745767000580760674168709180801144455604388851523829043693059909865928369373322107095817297079897150063847722684318222100501850229569732234587225973021565173090398497508679960743989889067875245423981042028593423380664820034295192481289235025536389682304933677868563182147936973535936292073873518499849192438398337460959935892876346795686683100644419985481282904623689598013794632483456858553335089961952211156814916243751829052936170575623962375343011288108617830385695537625322439166933576562766365675142946989653567231281308226293517236662904310441019077577736737876415384376780519179106988473513628528592375807411395461081989957123369800180799807987940258625725124139896903348733668015813578950279042549262138125050783005302744948316071658480781795292688926208046481417904782384191226606302730888689446052916660122798942929070403332146994144826606217054619807194678602689213711727865905276721063481964368509207648402104359889073358259407770297818763992278144825424277787731375558172239645064408911171423665080508681846800837535672446746949740411225578976368830976154713928053513009455606732494866995473071446702607002110288103637520105358557081148264541513338360301403941638503396162506325579037713053074204889349049991032630375966599981364171799555385780578180141698204965298030379211786346624278527251934448478176222945090859211112099299647572454801240976704748159207235692834733279424601763397568942465924125837529797826238381983243929841861094357994405366085133294017427998220478088370118576784223291921539770692491280552236535484447042086352577261336172347571668198806633218147499325057374447414188111340264402797031690933549064476577348477851026109438767957365426245633751879460449519211859144461970417392648209976275039099163686852708557582362504616132609691332436316262038722807359490147774368442389180362938987838957877543938359652950611924487070212917670986259643865889248230222026775402045250511588065200950192416595662555030034815194597717703132623968183046423913976144789735569747897520457517475167747163483131160258451224298054402192087320718125765225563788514019668691641986771363015092321810243902841992156592498991493238520359048697925924484011243392340742828480080913708483769454738982705845878162962660052694827491777264944041858313905035088056750581747826373275504693035102022759576058347145294118317570607966103572450203570188032109232837276108787191127204541068754900936580735479326496944697082220747174047060317938725036683869624932050082374992405762729050358098862172321836347207246848865705807059933826803944165041635408370184278723028746313636480098869964246950563383972349770053693074541344587021627233635080889854469330059551356757619282125865099604400485778457312769279238981400771359923019388609377407460956185036498070261442668281409649738314431837152576357499421577641408065987214417673376076719500472513990159566655121855131204349619627508987359817544333239428366113728521034203292612035828736513808772788186522744359317482572978285795623015634317395748523483895416693601007737111079294831405888064597743125132272302988013281224562968068551934506104018048823737479985623674095834540357194798920115721130399308325225156748544294554973674133502338825644739763805868356297183721824024757610526915848339984468714481260921434962355418967323634454734269643912425803855136168816457090030187723222087884641368586078367522686022997667761398583114199456112269052849398406290440178863641145588152972164048617202596180722790756624550077750499325676261595330626952874770784993760843866821573350608215061111043880117870157819085246594658743678407107645478661525704649526968540440766581967682235103960424840334612422955660275323169029036891991593624429573137574710730305406630042378140971298765604356117040196323198446673325081782466315925761457177514537903920575399524943315404844320852494365417241404545599463320112789526142184065368401179355531591153736985687144966605146375658524391327874835153586299492256794269022745645091489873559928854609246152412771520343615498355129124633425711326850699405302689194280249985096431570596783380765943813712369979521514274250409577542411969841913707107632808251636402387179479917119051236668687604782632849390615714637595446002658337310462546761663454722681661774445657938458436678164622562280086958854756101911260903995087114242098174878831167131345932257308509632958930953130946919031705282520837755671062025744602605969852807114977447183126356037177994134769499176264700525965682171454554288681210884753824715838676569103541662814456191784828425217059959147312820536291989010748907481914526502020853258626195543805093707206548479400484374264848704080907223523918899356825198538314455410118299950137526578602219972641164773536044089528169725726641672717216964337022972026858552922781431198769069455050311442299290692097400655528840798227164093598802127111885011820648772605917849138645333139699314250478454504464845683968891923416297725545387370032876755642526058374814531092580135736768402471494136630809188566135632049861267373702065146779774980666500122537735172446312645456108886443958487205858245530470881566382318736498537600163630091454593512295325775169433372457337266919257396848277498654613489642138384310171322059097624765182091219813599378306306056986581291587572600697028267494842787980381160153040363839311361048955055737477667745959871609808220656371357803843154930730812512310347900715355555873386400393881403401740428842735402043105675395545894085489213759709200483885612766348875263311271683744521630092521290885347492276395207065798713431367260927420677983471981793594629246171765806161278880423091665357017744614531765608533353314171063053124525479473594845792961933317178724830017050829587942507207658177936897414764281656838463017707518460058118692144308848722484485846817499017258943976729025331096146242851032749779950647231302484594275712815229492409728189919029245533028631787817646732501262396210760520912012839118294270635347184874985275287138529839656606401331567393988781573394664736042522956008058957334330095987109073855615594663116305875461833023661059890786430841334925970221245209987816548721759726211036972708846791508302841266649051907604793295282119952068912498431901080075961172592332518843600750903728951220446328195110482256196235783663306269499726486740966332696753781743411994840514545279533250163751277816163154876900990150461551889603006889092841293103919735577626371938835691544671206504862089607852356277998939977860456981315392042496870425640296051142772592693972273639181473951399420799213143211300709501280388491751534363480126072134112747711453689605968914748083483198783136729505077006250089569987521295035687629051423162553624051528190488824183980849267674565599191842534488495960550188405796696596995092973448225358888538971515253724654185003307341602651683180017673335625944305433961465465825772178405989506189076519034397937833471772641175254746487241456517734973968325318728261094953819475687113895030956027947786023961080933701153932046444562566230755306660025162875740786820141936477934855988016217971838520427691032514027530173803514904013805123696412216298605262062817030756157534675411057865758279614263226129975292443158814346050669839242440195769559760872861431196965310888652020027429243316798991157637274366346578160567469068365170634701990003548374514583323056712538469238462866243362811201350787137558191477904361033099688350908156908617073614717585958643217071637023103048640139814838768751829973472678459650213237099136843838706389493987368608112738902057634106511985859669804248492217634181976980549606734602845967454680604520512904344587766690236169618585678022062541745030618851563341852327240345816349734290820219844731307252234087425301069286910908381903411527579004564170152870231301621888826829757521331471073078372285669453708772689067717544724835704795795521470300951586841260539655317484148662093699699852560909683740541491744120689806291892653084779269646897911301020159412366756236731620126064698918305244659607561085425035469270802441214328889969070405310597813882491697965945246836701066069595407334349543236252209723367459560705473410065503968474507716410424744367140159014251810497308014263542436507644674121752465839656350659208933284933847867825385629291314812013664285984259516300931728787029195286627866950080367672694647632118503576056519550892817430161219350934852649991536457194816849010926769178609699095189049719308655842452109055563004243928067695423534150809659055237565926939748387543731832202790151269420922334574414987505434640878500441562038200810450819610833450803245889422594416159743784955794389630061181186653055662662977488363943056546227568965542225594528015131367415021525478829169172931565080086863412079894434280148286402041481731685084094362789669604309414299509412901104440408371349572192266169958299106852139028932053110140098171394069695778069992713546491096561374826037212650655073836443609604155530791519158500903638880254476763862201631277041761058204313359932086259672378200187304445642549994983925624951420905088920666034973859890631477494738864238677035867886528212967922548202005559952688736517564977457751939971585206968324591561369619989674535022107714232372550312158713275482159857588222649801476807897909852487701204739550760597480788454382924527564381360392968711864225702889559682777221217733196801387649822701539208249687906189652192418431370713264058665534862426353109971254448194100650984442713928638898484822477924815417943790027508656864840279888956952066909630200054442768583854954797402814933540709020913773069169020530627523793849249772283340062278453772832340180322263043434948538614374211777913246108432951823132981431852215045565816437119029063610058062909081851753315353571833183219693944514834110363127104069539801433762936279576510833980907159662385814533991708782086743102422972937361295485274754808912867698813063928301415344394580336989517094777264845617948608432196117408202256500388092626743590207989002887642168245033972185533977201905062311576326272314783785208628531131679351767151997058930543167413820977461641045845401020572708248649151190796810390214014235613576921162998100886891806262019716457303439062818164027160369746599046206046369642750201352546628412568335748945668598191884054870438379613071690701549916130674454171505624236210223783899258990099250793324333185515906745784010309104050794628365698914486510610483016222711306923642531447507513008809800673767466663155212085171240888393795421073967491560932272719452818345045467965343694588024802741328035047964924269039472165109856329425651884859875469532361247679808264979920349747896727657132469946377285522975394044847925762441215451113426140424357421874761657385626522258045532427454641450520428061868481832660662852278718751872357720432527504994613431053541707623588491240448699946302360545183307180491448769993653814660207899281384531712183284914388923860054770871524059698899803120431981589417341125072657788643485997700491972000274924853702357274529178548513247494406137756773769827006806239436806841707467097258945002327123530828359015889236460488139508125944211353420214723528517171164431390479823237372931814997294936352650200803319823031968981018290535609671273641603827782623138043666219426487315015020488360555877364783402254442842867878197896456769475906872772934422706638982095480550592127233002481781950696100815641432393490873576290875892341196433841782608188869965535727518477093742047653442455096252127560609093289417017631900458549789870742802469337463277012858771680220527283923914122184565987627014537565420778322936258291519395323906761003766106764877520690036780642422536508589468350469250926658564351833017866804459067882417829210263563322918169397531379552979220074371851688497963089420812453816273829621594093728897928816578055237547625478340189715848660696129000288924182994728965811272725143953941518058731036628167308761476095207894539315162660378189539549883986048811745702779007567730922815470264874701006518323840894901641717174393134087599121208338430372053050149046663420449332815635869172898539405891137543572046655040900281161768873188279502604514911677618873142318686338222785120960809726480318904156077034914684847661292397877148789114505754897245926481928882374946683691255840594107278281423178523898126946174833181443282295595938870011132789587133775452196711534960821023014457860813285713211472625894046533239500119780435359445374206494445353562839059822685286221225380091387592347699660305233669624158535768929697131381834315118836602638338867858937526824400346375283339709896636677672365530837328592134231598892997321380256667195095272148983505989641549485595491589216157400134710581647037972812162926385692811252321787957812337265862085669295781721481992594600896553052242692114617430762018896882693061520551271920819905654955909745628788043152657517363669374377728676176131328057775539426809589038578678689035965857380284907022251965983769321195334276103190475425882039531296869810971611220761152859733436612087571982241346184278697441845019683650639531478617446046826726400197374404912259579585453582596217896282430774550738038059920030116151308083540485567303030811193099591747345593097407360679930271641335264602467465875869516390691747862332435603406504915761345567686292210713748843299332747757682989902418120042400265391130486230245918634081340534977807350256016966022110132518308450823351919775494360278165026006125762062096401028186857929022831338914056965784246961738194554491974132274045921649214965549243265265575345407206752534088854446807200653267152904111841939022903121706059254128503458852582776087464988548761785997196289670307214878088197087328684220546920487198172145127303029025796572552350547173342409467257828493032853285398449782014063724361489676198372939259836880382573232925433316210239504122040306056984368353220236532447599237772347365187331191664253440658867358509876050460791034490320059944512889050108891380050937785350315185230163144607527262163211572050285199557977608621531902780565828350437439123183945824898446333864455224457691038834231356837878204343897701515427793650648565060442754386745770161089559879657093782428651489241185445646070027103162576980902259038965610727958209517234145465125049775937890392864333065971062453040416379627694791254486561569465558143851241412519502896001399205108844438444464894471718907892377126828123895763634711583662324530799917141035872224834218001896717933852926112210446365952886739482343218068326045629769703943668425067630765418320823119478335804040208027052749227858323664456529138915977295205133048453840693221352160995809074740854916114228548602709281500927900414376441267119598147272352291556785317968260243228502185502798364756632903591265254398860424944031185574582033494191357042647300652326259628249987870983798685977495380372877323337996559948561576531140081952418580366765364734802780294769313332913716307228345652943761581765241281920988645697805697204216373497228854813963820559593014682013186317892887585910036530051052467483179340081103662164826495763211506255127500746809828496536469423193775581970547371462352193411686485290801541739287506351536383376085124344036289157441900547097723089288485582263852668753071313317426279245988195585096959300859686450821804181159041039099334095653350398575710161091608748155827534756711697128262455408337943569251304057707399500895597352282777066880233731166918670069749646617465412662876340779766690475447686867615108511033879381421288150447873509427918499531147291617946577082175658189384849417700378259382763582838455819298202046396699072669560214488529528296446183433676993571395807884343886390297622152472503045944768800578597372143699719829981198240120309362871584714124087350060782071247169791359562835968173261217287913303031993346466470361694945823273466662663043967299425764095853312054178438316436425340163835606926648219465469868600444242453465667231495202753684312163380553225546199180988087013204677407462660979337865354034147660131241844416559019189952965135764058296363412896662854454740993355417041681242572343783853543864339739769460148681152495052585613097497497393493570015036947016173860274047425183896035314783618026149553904787711200394202182673696900598761893076450544195297312475202215119889336790461891402440655553530046171559868144301628138616099062750462319079162176634717874023750454835755717796924917379510316186641105447370791001491667897313828526504996101271282341233760736249308257927855082762027456842094674763246095032582256620197233130202106263252765513030881809125269827888520316640906517324693420617507334616711433719005545609791345757157905873091689339828410706281517567671572097257050255050687495441655054464782695781814553879419483332219921900851215293159716483699043260318505195830113662717020126754035975033085195845986388664184398653459591301833094823362612600437080817315567914032096558876409646251252470200948751350897854599191765091788087081048268019528903196346276077026686067550417083305637612952366972671087880899826987419639788280715228119275513067039652284052713384007834511587128851362231970886815956691497002458581880069116912282589018178183494502890177779211763304299146026824624389695265707656625893260196602769519961463351982590735762291569733417243633867461084866939888594824547045846121252612382011883872917852704573326235438079718206065243936003263164360312961722095379285015434894781916874712889831017036842575160070811821045332610935269271355538748577236692857373514351892481312415071563815293149788543045950005858902752959665589971127329025464742375878873122713593308728699896877850014091818076885425200593086411453078243263463787042087348714117903079528072665263000629717670950808799557315509456453520838331178864463770405348259735592930548392599458271357316280336795008058635096077937034815469809412686506931076418860604346146657782769549416522417198149579358906005785326499640331893312706962670065497205552301279281434084629556266522934993833962128567684651962464905766370395529869874303634273839278127560054430216601486275635569671565190057151920182919494925681162730927424789780813180258137315994972881148668708020535833894441033654624940780641779304448911869940067884954427118326196839429332438517427683390339843761096296291172853531375739998042187701443283423701101561811399692474484896033791541831870500841500960900232912623192847552470116983047418665723699033008510937229483486259433635846960516090542545189497505324624960555353656598691476872990681795118969081128276422584604763797057909644160871261975927213026881142731052138841542948752278521302448091278552511555528228083190664246663020651499010142300207608313560287549387605343184779981594554621239932352431606224634083191750928998148139868124315416801003266660627883297026054005610994320829647445941008367839470040394623020210921444568080922191370592350937823545257571281647300429273953282383251118859318106556940008095311257621419040134263370277433023815481485044896330756769337647026599085599220734992521256203858320488331500942761771238549550789577693811297610984900424525999723240805251394009353211185636544007622899582092351262921201441427390347222968701692106285912621120455538343782462807373934973767625650508026102652317886276459296641313453524096350960593861328279280448783113226030831243571450836016735243034458532243506273324430789043756804963669190219239322402974368803573699775581532660878938429499332112669856764004545802549416959637933616595165848209737400050540659975141518009522979442362441946221832641870759034063988059161352502389334412004794893152963273780918926273874463991866040424192752793437223177712132491562397198202617853652920012595806292483993092323792987243549743924073137632847143127550563888296491189897375933231883672623681557723783083952877859264667914049475916670367902601201472332938197272262690808821699797534103917995713949721691226501878567300870493926298734817743368162239636463566086129720540810369534177893849125267707047831391660041048131135553836758717020127764695746638694081171096552528126161948249407482709692111741791129602002806724930946820291909684273570479542245719996067953586531126855011908541149037143857521747250060625580552449267982515420234761323278804515665065470674249048906727711355714086295200505942886117249451274847615177255781453779557631991517397367315959447882088854625651517061187418780459332288205496474820271857014950068680376108446819227145073618063702471830487296103012906525670370640818130982724090493773468252048516336732394473614762696670333938770470138315448926065859169345473692390354659879134890707038424571758479814685634857918626904604146672716587928683706750745559606074222679231849705742858478977178819548885859838267110649495261446790480299373927355001272546954538964880082312060481020266487302117395783266412164059478234015092271996005511342484590989787721426996922593644138907458544914078350018014733830164827855928280794101610942781938657258247099814265562701553527332472075470198021708757486163437665066939384641440292712279826571020244569400258085979206698121191278484457015980910193466261691972105762285398296055011702920992267247109215681096458241209092319718926638147597563642203725231036227601046891238172489219906124481204926974883942466517383640027466149869001334318288611211581688455875849566475161730198697571211038843087054724351775152023941513062444081945081675698376985131099692845371326671643824995329325580119104453965752526359601102645160557095380598968085571502448953933805039931109715666970898339195094251062268880220965940135810271653228703498593677956231474905070853451063385457573511563244604933918028719308089221247497845839551891995227682191223316860207493209924003360996194540908965994981993962576075727115047707602266179719318902707801875707602204286339191592892107286275671601209976440706693758261058126756515804675885054341147011727491873847433772871820574567443245772075974411183777066246381180470524706878971041013311467557674756391810949094857518925946110566428078883068802262312981502050969927679844819307980774146820737334243046291251717640847808111210063862162734466791637082475174788162045510141793884364984264422238372402020845096084231083486125471328177571892922550603524175796727921150947204378195890485332604398661202320513077592201319103987309167165908519882180052732531520264433807030128278008733771563017722513383815591473291955588589765372586795058516048234008509054279069444619876451839187013407005740244065313049040555073235981073585346506079294832095046534849380652229510714245749623218397845865910861075026843564841520886268801500796473448395363035016238557335544605676521781166726781443622510073520239797564638975541911882697135245276096310006549835612857692444901754066209888327521763928859734437792733224862341518757400705501442821497146310747481866698888597489918668097972250018918388051336588792925367676177662451943483913279235344084211601103460238339659876767077266553837752332833044595995706142924106051506258048813658664434418488465523922362013975982841862927923200626709877575423611832213234825848770765428326920967849670825338178283524064321339459117290810775842618940911859128577007301464193998521651491295799565323758657016010317611570007253196127726264177518791741252037576702332701381656009872360843009713278455814429076024293792099263929397033509943844064894678823779420928545271600396663593139379953424556504560354000789000218239091037964340381188829963429820343129878242078688114586989892998674307974646223499671100508054181004330450834481398146610134222504084708954670372004272659650146518062902287332418111925240605111916820515439867522756035211587808384943571523468608881364099300242859716862384612629066648614861223476459640757411998378089173968949542177397204753907642272732170579050972361420025894674119239373024749647571180139647359344337409534844064603034251337745249491675643639968904046697003405313274573184761453712635546495483256007264500102521767628595277653837006095641461541734185028898098315195326096578283272579996109055507607115022134236202642244885637662499926596722463817877363943922913268366058782820954564958295996719212726151367848463997705695468731829815132245733644642245070713279339844659153309607243151631331019420998148512377051693723004830365682869837341456705588697431307282915313288538286117262052289958612512279593524676321748018640118445014696422923086786662412568675964938428607355344210883912380120437664059794737903101325925157797012212243619542517926913242479008462010394027150154858559256320568943309106501430281789823738216812478851243974073398132201776847657725925357933238299602079273096039151273363131309158880022829730521778279415333730689507105810277536466539317964090305209348452912403878231141220517682748045748611739171541853949240187413339835573524997973663091514712994999655903222523840287715389805439226552772112161710808073979958533764703071698714513517166582441966977164165434076665617416325718817521718704608943095391173441109903454430130065772119029714963182087488857095588780495421469330496254035982460509061081402356026398909189371944735240647927458598141635162793172497280487322023231534050878248793122473587478435307524826741944946897703252835931472346273348038857705540351941758666147737555340901284927061792486632174124367246517517162403727425673520439717978357434785701065974621232835083952159552431701216938780703215936502616841849076704166369709961858940217352182529242362369695635292943377203721521635434216469531703950695584996538561905314934982330434012413471454423414232018010469343800136546992743007349804985824531484471825678490456617321392422582707843487323484118144328002666165489803598536440634221890723059618181328450894049613485799612420546608078189257450419594393626026704409117883480991535909871821709189504247708413819425483441119577639971474756207357294632099485468702575660346474326634257890140291458528516597663820470054941411289529966670905605167905722516322324043033090813077493798651251227140227240442892265022320563896544631282575199469467766349988302938077522345987776695520152734564523124649211397964677150664052843378593047909558411228462685031344855157997541401319008504418322079876342467852391107438371921709485059579664075818283415250009364447457876317274025905874586443452166794718632881540773418208682745314952626800848660158653569170532563158777035682180243282750408693678826546401738887206534035148297819712779239914911472416096897240070260042530797148028364696678286813345451134513912680662198578133711772031413417752191813182560505749160980423832133321602300272999054207112918947728898395113801918377133041452068456181508964311047964386867725748081017704044577903750573053069930453785377879417498591266854878643197949058153561857695003132061535345464953307996301895131759731702791750564121194933523060256891572553293578784527374295083992729962054727939900927023884541234588452654948597781698021244206638802088899502851730620327753944309267553932063112352975177362290322455047989562672229189551039305624907921995855195459826315009423218131560081978771271707699244677337458600116576608781746007590341379485729474928083708014388884192014144533232286367939400538168294315834977868982068733630146166576243759197905623471753956225261587159841035572037586881564018258375323930128586664908855023444342434355918545004454312262110520887235738358967398857900260333428382030878135976036160387956615789634513527471105684374836886141866853450887142509763415778008589219376498606277292934207300574187505228406637374717389140370804518413326118867239237172573851777447143413526678335780662361246130532411644149615547648043934140865296127497427317907032352576237012375628056249886756271523258801876919267065834602955928897314340961486158574549968312630030136914777404954631924793923766449204805664479998181746605189357011961897355138998485997588085389378596003052469256091564949933622641286496473827026090576424395557580660225248434237814661731235492659040614925040492651120192608534970982236933722151827901549923178628338223347620524852594191500094310872344801451252117020505549847748014738591181986543535206870161655523744811590225834870404176046780219491214545578213941483438786346323071944899598498372840987964523769988004005873462052637936389510775156134775839291242432576133700379065984548133284315701205394690304173559847037615612455300808869026798994170420125161318098837671124162042902295456459197834106698458864452068584323576679519818992192278324419853526855096958834468646012513962161496920020814742564152415721137844796454823915052158655630468474402907597573857857119190098997789019495756603263437548663109483119590851172557100286521358334281519874819783933515843363980606542901074523761884813294452656396433285601964208156260090357561843848949976900065973180143401820589236496649110166009426440710689526928875394811475588544305406702771273063386619234392174111636597553438801650696578554493584453539058989611074623941394693904426842334869694556654735504625348844126509438866957944470108556713803708074202245514878292722512960830603405218753654286288235235503161479984920035130720969628191971991802667170848758860087401691967563892048050268968867001832271273124590149889045705991787973839354969791757176858660727651955108714463487634041216516818826035761722178757864329248542681159204038961291260529112346429237883936904594103923744636047969757791937985385521148859695810083186560366385730953205586792610228939313778648963879696611375008113703120983755685283092733198777827673353455428862385049645435673988150442279520165303064231209213343431999573500418190973617563845091153117923031448429976713976000006386097082567204451016883070687929793028022250024774367140797362272101157284042606424674957086399069800848821910849356752407428230746765078152327009071101357653035093380112129426505346639240662134821230691318634183508697129385815394472206922425075327945713022706647307185172991958231915202765703273366652509601108594710765375244203720264542775108601851573261728371140307505736661039944175420086221961077621718549560657658652446579734433857222436812450506781713450371510183384235569660635201462683157200867345431769401190623113507123220212493176813511946730656540356205135033277975490160210203844438755721089272931297458410137088806515133127325704470292698509194980429756888798642741693554401022176532809232606810291129849108322130816748202676322593290708076445214798359033260083262489007201995394227070043148956744732192482106654701852469039226755177156913417641757850377000561641394052752660894790624563147369576426515720365275658677498015976516533365263233489332511606378790212492999683563202039728535054875979787551230786710662492342651897917069256772928093432701167413811117943185179900198258144503142846631620495026059900995761962187355958900570289091957006199585829144415927375508078496628365786871531410110933726434280822534246947573862141043981122071006125096051531331711587062601634229381953444372666822431757962748155804102512119541167504049902668987288818057432532531872774878926293666860600723482787549061089304699155906329639680865321281222942600519019936211149813601900366102506835870851997945836680864237380764973212049679568952112169632196194499557349557204528453815638988602868365272508928256654296858093545079491219374096077875779581405052125927292256920825673324227133455641986706698951140768180813144957243944815116740572022078262748438224782842070743975044143191708218485289620605499972500431202056401804705747806639235741570680133243804650945374736056063118249771125124562341894867889637547630689383098507618413783897660492504324910184069614250249482807923907548143489011432147886392092428241501141704237419367181041722214164477044738097916991343062593369491580441330779797879734215388992262272553067510808785530784598189100968312385005888583249795123219376583687248946847293477220468332122982390896431002444366271944647304883097156396069023257891235813323070322401351942977846359330123984629961807007539962754229182282682098802103820543751263353398782439511799410862415679780792660208068725356833869446510631563838542063463203814029836553053001419849330918985059557147805344552496692494198311771639708714955740275574767134748114337977835391524785913189205342370763444383835550204831516254973267236521307312655257694778219488778176305484554955439350399635375916592435572257619133399312377647040654128462946194766177292357244183811847293077002892657069722715572379319927170585371006448533146180792326008854352272756823946981902621421330887488756241902969875336297116868564938073416567669334464485557653772560278368184574915270307405894546073696581455375811034432482076064705484622609288679343295793798797819836263424017717809987345035510731792638840682631649805976626351777448859025054741393227115589820827798149065663683123763883637026087265643527204904580060360268718025618695234686500153631882169068308785741899553416028623858947113193905996887540634197322415240171531579287847079751176482004348807223013510084992410221294614735334649873671572478271781554906846537019483907113147145541027695067540010310117589631915821290587918060287423439573343898056855015657664745979054136141823650345361228028013170088747644071712601226971239351782186512578565516716828799677442549035865893042612311889634864802538286753423793873603490592715525860529515448091632146457129883055971185764869517014374575071747456799466393055387463108466041656044122234742581159162982988861985105697386064058974952978614497179088673353421263147610951047633853543397823144741365100571928834592586440226012385763834794042201517074036613043536391133961299395249250236972232451484019985401711758207935213342211825098932009014283781677265658674604518786867453594863739184630116313358837552933957270135601407251192938528477627433635827276229790039897134960783575371029872545479477942677734779562090484475843565052825892124539117158154108976926741199253306806806919397297928477856838888804904190884112404684758751374407628905525789110046202700824038284796913663183017412529018766830316705009476904329497903229165431111858275464341224705531203434908005365828455584769301148675996123693286827480362669410159909285500701254436260220334253624316440709666788124957286872413610914597759860699597452342127709129737628551605469181001191400570144011399338339396103969538613198501398999646888507022752183668803871407860148541268161588078075648796821181318907220642525052181583886274529113129698159113975112870460652555861633040355431196776976238228538569686423427995390127690449803678795427429737261535060537081405999672830864783225154343088694855417217085919227544072740837635020348199017141638074444942383071466302298225545227889485051180483982597009666436472534333376512023153631505194416811612472075414319781444143416346823713673182485588447719428059872895569807424137351752979722508544284677504483719733638819897391968033176907314691787498382201606081151993671999295615131997445706781562880917679633883920546901410695027821325829879570544871579270145879848355014801754709882353897707897561285211845527696349480739174991057812222192570197168385136792212655021941624053125576659178567664957965291586651854828329250248006677102677924018168968134204142213051045688949944620280318259514883466372545611983887209530329833214359682974999571060927671173419376697911993952753886485700166602709978908467053995072490547234753717644558408089778279413693167497490062527860846058652229131746375042007316208169675431750666668571471884977801584759683701905009377796053921788754915212505576232230725927840792312494373400137639781487870370227503564979522693350625290833269038828851337990799653032131378217902430385886528326392762825254126275447246676714891257080949923293388873474855066547900471343823387362864457865883917504786248928169834734391233609629172777385750766256742540130996614981191562172995708183000975674267077980135192611404914597696925912758296566881541251387780103743838879323916456607852929222331465382915797380842247426430659132040947765303642973668144938981377491689742256600791196037003119919075108139411468977306242338343132625226972536173027767368124248248439999929441160250715565624800528456454486792573413911281851119826840625314277392212206059166678785569292600516889753414116351392754440369590661001670348617251200735191349704720745432952780852478311036210125835852950126913529771179195442349547113729431421373155980558732904296670354297416364859893880931036886206917539359338697387976188511516551881717557977079125719425346392857586232968562376762538835442683147921388445205645907380697081578955766435194175139106976578784999073632920099670415292939494971574245315196163281053280458082673894578773550801964087685241454778093906515327712440770116653209691779548387977787460792567931555682236391386500782714917882715545911133537297246640187947842454937621427137661967311008660922245838790651992049886672199604100475981586634034897797431620742749963719450206252377901639274367568875534418429082525297753261529352165674989616017067902831487009303422768059446972089959381774305735512560168846438228491357148936189958404412809480871652462961153707616313910673492305609556759226760121420245005924868223358915823508038008048483199862572123746908484195082126777986931238517272539698486790612082091735989574098305759534324713012064800298834480760345721377311032282001314927918457907977412088800722845234836463903033261099040520948599226313268403505173604302405262523246519988722451337330834420477110118083557756297764756831002057370954401782988936019966762680029097471158163319064588154244741686777839034709203640660432592798372301420850364579880887073323918026974524115595676064847010175590259518255063096055499019478868410645769517358651385741233620058743909362122417529727687773243966286110133415432698884408243896903021211672063088456766758452301065272083729481083133655192048386609775098755394608720607678493197460959563919284697237319113456159885624146933858327343852191953736345066487052063002195550734295502129342862819768401772140853459155624152338625538008804748917247556290584593210919259845304748333060891526113307383991539842494228566982722293909075344754892524245804717485753113803798260643452858691717416337018721632711167220186853973628112129671060707124242912494768100759195231451085555096887388053430441685880025260157095945882100823146474134902997912466079521230533978962893542778244315684126367815039847954943812223409261312433601263882131148665503785753177800842948986269025525971870403011895466436488231237802267497067385396570666538366768921255769575806864201501541251329407483461507082633970949075187552703223830776093930048913749525915060615241228531114922670352878806655968850005745320534820932023812583111958166187318173960947211427339841984526770361933440742964759084531730333114665754486695775949496652601400251290800460121124008616792667148053103872323754364262167460191400890276198262033538886393389729932419254689034902531347144232803036105848299375189568804145573877579260629444015886624786434095107140497132739933449548263067317576876321035589249568792913781647500730164649396478275387544795858518243200546326982566523665247502010414357081057416799388856515651566764901966755886165977440040151789975390916672489092455109611479182872166323031017798277457975433642934558210990674696362377647769048939530466713560880056502662796119318583844686244799272867298279767216470389879514068884471932350093226539716576622934860178387224142669897997823798507020484682117333392635103843111919481818990764417006026654674678633867811816588660735827208703250938484640319958092481963315204948808309209052454441570540643406848692844964940983359769427263924612113043726149196361917641478903215709855312475939364581318934650682872768207761074514192565886930917849345621502097837295078516619195292693041228093212715594852426786111369263995103968120873383405520227999545816651084128975660546120469391317744200916276598089639598415145090380504827256846960753363879446573665872043113669201614157286710741737873684473970434433083553229235888735786817038298259975386011641172054458538496260183590107686062063870495091974471155772136428772978474891460303560149969843439785682167913835835278174822862322804273024486870600563193666852511840597383913430154772156988529331228150375248456214860442638506452886648642322886375575008009530534005607322416632125784728262180966886438184948020718253871135528198257038069169867161640384079221360472544941750489902470612167979016255944566642269353086403152360744351511323992816361040681764902775129226344605608353680105934031326364056216440836144616241213936813718365796889324362265014040926862889871652784747589926584761642020744015834012166533734847880898632153387160860719199217229911171611369541282356189723151120545110754459557388408446711156476605167011894444429699551903827943506221942469193293890435625438565097445939438586564604838907142034205616443198082982052639991428098801189800426697811392130773093672772061196495216076156478033843227322360115056502594326888173743686150366496995588560504268668051606453067872344487396232984512778676122868772158522736432227317453485165334845814743683556642570198162819204566785947581277123373445863518248895049364119936727885640813375915038701856445308532882833123261863657337629886121739329747195708931532605533946081115691153563601397545314250348341559588377668375427485868529170364278406264646930342087357468218463191078908592084471623123947106062541934453959650936823469981323726274797048299021008414476323611670397522699820923319431395985317123227693438659631761946026598392356576244511173031616832662785618353614775437966751577136000793919505969048482138912538950194891460516543766978229697742237241434598208632456901916520040977596889050773199887630982047762965057487654768072257717358904798783168369216319384509937600632193929467047549537325767240229316290681262716595657972845313612110574364537876533964436864654229858170091237438322055502809506636256912842575701566212774473191079001093347304229665625746620353818586112642615194685458450843170271508927152646665304155229770214242506549967009236173791973693149120367287752624810587681416172416504806366849680908587088277763106846815908932432728008849703086869090764018797389763814282172772664340919513724490337980319555026340022595037452255026483882732351182175671144558597149151633751878426983280095334304006356707301903968057158804222786994661704350482019821957181796805748277137881963722558002399117224317051151947764948849762879688987905884928648588006767460738945199031038308236321385152408350431903841810075639387214536304008485991441988820071767836734742740266021579624180455053621763369421334572682316742688956887601448863531431999295702978521841047930965525294771880087039567640402656311636069547687665359057541006298031052329605139528703468685534233479681396954864756077542382065169211420049023743315460381004550176557632996233315301169306542921806700684568403428895574836627563542773504306011200786983997848574466805777653956312927732653646347212560220650139579345264891458687095535485716921323886182544969567886249930942290385450594578963901272295115832258228422185865011630043729329002661508034176772738663597864759411492333464749564328271929641690898853335103093685171495289258869664588530414980382800695194112207192674357928913677819327492255033364169514444271572823986092835853131951195523551828596238086647872171546182137993932474950111797181092753120853344468456612428303142324929535407649471045396335402227086317533864467820286337551289369915236504215720546037835353031580676436147276632499851997089705717161218063381739150843989534112037353027873857642276125992668195828620032970752410628648297833687088882566456506397039554833991638952623128275688162560298196398389017640751623035725603552820788366856421032169092875122031337330150997576274157175102488301244112790039187607688523812128205196700777775670808155843262739199621158356346408739636091152162749874015280316661673213615178192766710435690302033444712386973807470397858694511760430374454688529706417141332356633443556703746367574603248701834568199377104171162177574169548180766466402086264660619504736484978196252605481908355626254952490438315619599331039783494593002575356361458720239537380363686682552264152880232072845295836813183177378596416403809678571882368151235616407223166029138130611526273939888441027733135543086356238354912977027891891191887807362683140619525629067842647948382274159674357008978270092661285454949727578125694027955512443081829749243703739801384404308233894892920424720883588254645363071259309169700325931758518484899830100183554626201071710945325045385980572709077338410025551014839948924569781147179144195963948647874311252643913883618676015184696240089526094531705952176375047342592892774506489272321514026466803572058784619326748479158318265140152351795228756411033759021033586875651949418244051828114469321581912373765141315912089141520405855408083563489748363331058120663283953475795975167647738992875908605841338307017921448166410499460120662519743414821222704341367745221479931195234883640513440572122106365127252424435820197491319755600626913657886218244116060116336624175898199992857532252194777123728000807688408697942276136366119542347512178942669171922158284730182014121099285396622782064303451607831730485714632931880708332401639856482287268506611652351653165245613422002191911003020206346583045652455980467902195468545456748791546478763078559793964187093899915252750590890158048774559460118647611832062102777033413578383354636339875388538791402105373594206695914398918496064355343762746189928362077761816856296118153026174287839020937758052171716642273686054429213408709438997043993166546174975130910141620400225617564359955917883426559652783652854090740140007931386998021719134346493867566376782698465204281650491356400473940379432047087900820767829155069416623643342256200375168789189885299215595406102049804344326273429428255466777289463334334764787292871998066537444109543071151926693345960707709425079462118003909198223501068466388446600245060040446507245143134829441210975511615150087289175792406717304886800936635065991517936502560892396256182959601263941969081874374864125919822784781715931040178481918821443751941398013505663417830460286704924286682027807741109612405198336077804936394477877539599184907855229190831024830195964565606162286541935078420770470786448426448896464241692326503000925980979994721311248957863533690506070743080794048740406152962049585599886670058334062787515519061846121072950878021857829589841334653412217069019382059305397320718620626945660940915118840440043289330811421754793293061873448328105458659357009189957230181656749333162396793672724884481880364787415198778814072420065197681382530145194819898579943381234344764456027237300964912945093251862035943855032099461409305275364146326515472590196545178155443691920404667614133052027044665621321591302785636563440958203476523837684875344682917321084034164807738031135203453028538071534362847617824634292592483614873161533232333437955533298831035984966983533648924002430500257963895565104142058351151602777233752985440637553610277510890938297566508639728368804394928483746805146766347783531701957289833964500426511561209487201317315454220775576308120807112282301763815677415069301170425329941617232147302083145100733642848777266170367982529604284461437540531036799377014525544399623782662054238188457781738352414972298106105339603443951699525479607803154718958546067205462698195748705909466681465187925074396218251884472287210955361408861938771716508818957902413162197941504032984823688771453732921036583063161392669336333261275746362356768613642800121745539197533602811978997080799619726771779402371998137123273942457338662071065800620059856940449849912697550693844826487824810377969628482373293362955501897085161394467478751210222785674415738608686015539898408301934350760142600700376845632383537147997929182730394218676196654177866420746790520381796625874853690421649273753101247615652233491201412424209782551692034464195076986559012809360368837290020495494628196820411725165424023042630724340194078279036722221927848428343115444742745170307222661317688838564073692474820108846402923608459652706897300360247131210900307861792667667438338074506888850451287459310680200133146847264439173708983459750104003490495558180059738956579105069143943371204945293374925129899788869582104700196230521754146667734296240440186377487772615809567485195157086473824752328357662111486661086477662766595345651056860190235739646723317074080577106282215823589450671025560910336863225819662421778001004764898446330452530515627635891469041586839917242549585284203346353981229482442387945745928867176169829354917156961998995786997961036892973094018059956113294421520219571725971648059913092886359746081674659985502915969404016077401129623851471480107536001030191229199576253474984139507651017791370949765548973653515470325915414024164390567494194960233029746387989500114317874730414002559177514343013557943050695675173405008456004736406272306437536288495306935569543105465669555498385135207672830998097538589843094920535915499508135020767581228702026289414567116942999187331162287342029831619557011512890784646113323163027532876596456769520968884995676858757274208120239539030729103578436557518297068450965319318766049103810654567428012063383112030227235076704615556339204084498942262632467212472016997889241960179053941514143437397045454757172419149171451211126219204557030031129804294808289558222258642472007465329347166256859606075324549785864708864848965940148466200610826131324065061180338714385767954833000829494497105052519882791933894372456117848119890586598056314274778212324436903146122361954551120182682745950195385165676698609787359608858849440868348431803922394350319679148253126904738635332287906041162532205128277267621517390424233770468755880241026791027272512619811153661697341574375094514535606141934946224283784128114899332615748533870834555012947309122684983130832404491174459606045339386654234474004151855568715651787025690711058839670678910516897267630320035645140077968526539680161598754771030552151348617233922511276454525241520832722016178072617205028431728013699263708289573324820890707741994883367743416737129154284946296573698688263179002372212300227774424217955049367004060653441695158133357543025901704724070665641661855223038089280170250821789275746179272424271448525379820191486705751291269580765322873346612850192584295469290120620529273453272412510370993845154824722026325178955828470257087128413319796190360848816150477873980959478987248530172346069308769024501746763764518319903493393886132260522870712643281533008330615751798781463289266827660432261199514677561956810842808159221635120053420806859458884018634534244643045464202534248944772882392191233556207576741347371566594164474861785930541396775940724824443635117039072968543883363443939906750824037885740984153537909037698177184622617801285912461397168922142234446033303326819406157288515722239781398085856581865090775534585802375569291702357489628265039307637180910279233221853056766255090373018249372476054478668839120034627125300587906117484505260841236342934647197629216822689969558925516791695365117513693258827475283087192993293435522692829455245369212467841093219285438045473090290265214581909025131759975738455635488618223749335151400318847748100830899962145258658052698912569025811786115747824104727673074841209190270867811355151010364134810207757674459846136929350147457631814887703389266941958067857971861644291071061697808599247806766634506156101134321039952316550583098872229100109964456592574563392168509225413672924477274330133286270958424344330665031574113957019116040194587901143754122738979348162617479084808953620358075555023137954468868727498419005835290909022419899967132245081565508729728403976831113928650347535145060439671670061327838190674604032284409519353621148798985388070993083346693969534450174321269640518049024859712191103079451184496312760561574168580021826965380063891822818954553549253719852008220717742244327500523805807011740751852604653034741020524935950021296848036683008939032836213268018948658245361247161800939513758670801579784264537353580142476645124100374409898105538021814817154427495860743769874755208781660108023371529286578491938628397219753582966271429438882106752718161602029975030854398656144059692632109853636099711956057396591566761920691800885911653771392672102131307152991632977060425220581080702632298945466830334427152123626673224391473526110438318335126401726133932805419521258203261481130703388394970798717103929588794747429889044532006029823734797638991023638383268011819770232942246514528939578620883825134325679443897093637796822050736320209186864471183290809232577305531376761509246163383217581009930633269251203924630496517097943651511820607258783082832018986381652484015238509448235936644152802212363271128964047691795012493331580638913347869449696895500976384712225534843917534929383972718532369955330563700812208008445583052987285887951145286454469544345012751056985754949996037006319477117793969322507070835229442030270211837392612623392235594060857960770133758095018725463627410634348656695165239835489177473465213081776148586205052513460163001867211964875960500148291812368602467017658331179942829022470762834554178180190669895684615937100980477791172570463669124331945594673471098036637593332807118526437238949977589588680773406317105394885315064180939292360327018954203385424206982243222818338025138260580553717163932371886160969128413694540887537016269933177225244108874655323337922354722853623092138456872713044677498530391184894997282887580485569796511160431665432944341924370043054507325585286724209861928927051708538083031113469034876543079198769242166735149159765903731134089055804198390732421230525550263528567569187839270992506158713535445906383752448374177007148154871993063209198681550683055523031425062076796659051090770445725209156924917134092708874600020705995714266299054218322775272584880845299965219351695445610280107603623063839966784501610600724266050724052414415348311715001199853806544372974348116596047034920527164481176520446077190129930005656060319677486224252230361200757757223037774343891044336880141260341668614773244811855741002819141902640932478664211197592642048782072942144052948303131603314185493133213957642411898476368064895478359991575649789626711806533536184517546341559147428169394633664619208933088948744784271123510392985988993484316810852811220985810714435117103464405491030753474239447240488559189114814009496104262737193453317191225740633897517472816228228954076377255266794091587492764452665163053904718067106725296357929803998432777223298191777757418522242237957341559689206011563686882843836952334681985928417194097546998946491275803835110752313557819236875473573150619824486360214467492271821779471649199714526578351631661648728563081525414894017961473167167387043835651854991019476208122962021842895743429119139958956334645139159735702966232281730807856303588262210280989667028610841533244725817709345168710152484349511566667565322478154425050144936583122599349432705694545751964924251705262629924424481390340900379906756781732412848635996713219651985038250406649936772769160883454716616643270389923356987779661598379453368272853784595465092480927087816629769525265997075953349965228669048703409688834614463667145830375028117374301002095506049897627061772199264585769078073419873667295582378159426818507969371509722709661433953329464131925814506659276053554424016138010411915535754573784566776138455693229620544470699258664692582555937020707614924108851241674995237710833400740037474518248132331949369026640087752554963831923884358785008163963566773953717673322911281276507847948881189576835456884444594200502964847932841709011894950849807115885819513678340750354908302706040607301589104657081934553619436423307097889572883075542757952156124872249980661853126764010501858816728602739518245555803508726208949020499588919716748846414224470385250603349340856085879827196421007523153923945432761700813623492905355328594174540545155381921345158081794285519613000297573322367846177845438307711946576556120164235127099139798041877474122053962011856947152446428179161050120105997945919264486242185310892875831229521836478076628597347639298589747081034070574307194408964587210450778054558807758739956012913836992980302868270136264842464183216334199996928880539457016321308975123025437618025444218163129414481379238147620816281488057324847482242451712167257978513012278073556593767257793382454523180302667696997300242492196330099266241677917070452359784057172075863344391448367754959547948129458091015415142787320260959975357577205091347726568825468889412087559498870398163250468498946581728989212276652128437677554468132978583360898378642842806365376425710597259606136876962437125676608562668269201369043241633161099258928125629683985553958514131967601693665759893919791181606259950057065545503847638655939944607436061435921384602769504274833048719467073340311926542593387744726720450872681999095063961324153529499218880633975766666955619335354669179395694042007641806030504404156716722237811051543663670575225196500965561411775754018131467670892908697303515730888754723894053166416550602789175869313728600249078884934323545194692505857950300848759329037904404673306183621376228680068724998252008361978977103556535583956004903797091569537323115542950689328759977346984743607578540873352048266187621973709435702137116374060751691594570568273465529938474168718382525876144634065087507583172919871974097666890694527313984098028835231700017526520870458570350787768562361248059411489625899690925118482260321770860544604630372935817403906598664443837526302109688054171064772342349335110216062920812795410837593456195758203017219011906116645986716205289940972859408707445365565690650910504619807513307816296916499659064511275039310747304235292412727549728839282060397741844482998416661772148367861489895184079528123807835084812594234380389039947146555842258295622226591028293467047002652409018198853182411267559978934890754148565986391507582758163467251858097096452487680654132536671511329844363781247908850651626768469844258163394628264775502448327463195939411213971088617032061882836001541154116366273650201204248407771988583398690246835731975609779509860527698415152979734174834805643769316373828241343495020490339652652306648649998463461255189343076528887474679276685814778693595248846976730359299700706272004513914554075488015848676419858814497839388098384370041739970685536518284612317143915480448733662744837470105135057070980260209743159045199547510146708067008315395564721542623690203953170616591102000105715865317593916539846182212555426013500862521794310204691264642986305708756463319517926352802468512973682651228596946518854781183556269746504833798571413297103178615642876981161161098243707791210113285582354091047791187158594119657199717732224233106738041911546068285238536546704394993781076088223092719472960226151915535910305507453332988358463045413574571086234948982803965550509555609986424481808587738002124914293010825220054921986678386326838544358634746625601576630201097034201059308928698399861172478267829188718267772298785474223289358280082304434482232629202518545551676813258541026998929986760652499986636529453965302306537643490132086643085822149064112607203823063757855188046710438524097792124076031119862372932865342351266620890952240172865845591615447657417229593090511926918072041717741781752457972596930782206048936789773537633446468160598622469692561288439682980812178653047860070026782524126281873790673749740171430444888223322180771596391042346241538115323088012307396368939931244003473353405319572479498051563445750475108071944932928324902811049448946298325668875520317164168844201230361525557729247481661313649518330148760997408636997840222279162826133849527454168699390773103382252851105612903726412145925076158097137412959289829380428389580656030616015876648866616722671363789152827639397750012508864077494762416533364857520372876874260482589223587909265110253306258579956515681540375681552183125320958092585295784826207605671175145247796113316967812304584908232535525760877081463071098949115912253682609132904839761873576971913493556142660486814595683263168727266971820128746600509432448681375978043893975691177954895710117587935130227820645591606335471450697552204005996792742014714147408828760618215951737396972599122396288694219506235319338251977572692334056474886881125860129832667893562717499484920575533330409730110718935521594404277963580654025982183723722154095368102868023049257349800087821542760487125922217135823292205225526323477185488904350084421289858899039645828117097052212001613011859759803494417432034157824756153731162104055856063197814668928094105689127239722861530728374391537112856866173079092514209480362018205015888558163062860383964682780579166369566317994360484647401132404906642227179722831830361047030114386105091585790062883931254676171815180366466894792649539646251100049993237435107402184605505141893445165321706850187588664315740498964892898679907142397792057841306883964883185362577391911333147035869246455627211424240349330888263301385921516794044479223604827458632528484553910998897265356065349698113611811126534602923750625720182428738436662437221750591104383342668134251559204462175135210083218427384633541557542534451438691247203992045887022438802906363768405414991391066536726621930404176471173470997381335742188053209419182748554844658642812387588548649956151549537231369944329874991785355609809860107099790161285704424636091572507357200931265481928487234757713421225659362990224679857841120740525968060174603882918773244906388219902969487398510057368446683025244970245889036760220634756041386288889829763589570424495285492219688432991422138938288246877202625373913646586858873704526124868639603118863485280841517703309811586733424454761313165177994272934380049937607941357281489204732846200923632372678980502387535397702734099761476749745895489466091650846410122697760429668211486494345369851204000324463887263552833232724831430716315576248420973261079630134362933236836696223770768878926596582448014502007586363155597624777058038618071588678445567001117721330812133309798655377253492620357679479654906172585194553596317870068472487159266715495428412948018588000053049502338139323922634627725764088412543292576873969490330099222975731301565607579850346100969311100615495812051358651795323944678863517583783786544984390369613148305880356487095222385783139211887035501713264582567958206536979733595346714435808514923173754744588261074085107833641282413338707827077673355516151342845003073367023310091203968170820066617257111974134794850558632617839821118745154717581951831991012840209752627468273630629832389192345459122171328390362400989568896584613305510139966133662201594346782822186746046128764523684557309170233251759814901947421624210612253095799875398780604974120316327799906450810907595557783956873558804554355816007952681676798615127746231496528666887299351864799351027566229524402815615984003643112891095573189589881945395566563527251220929862701659845676200243632641085696294081757328520596524767336901452977165189683609267176602771809072552952468551147336576355525378403003499963083221997266901403478440050651990924398503015171154032648357758937199120797569082237651054584942269833691474035785167144110368862855264781821082575449300584306634690841878695994890325377630008248203255314288003099132964320338867900944785588109795069663086180206107852446130089084059714367454496610164168012855789018598900310326721440731681385924145579097997563436337262563555527491783603243859436208535718779472541030479744367748853449253492927166801560637187604077820512975828149752542391744739182275594149390692476124825962942843843098933382753231151022664463556694532169774961449410141085793025400420809734609373238963661853739770996749971094071950330165211484252530463453398496596632677458404717770508145881027800330638463178237565245795933446623028791218936577976473289138946330232101360638440074869030460964944610354380294345606848497078236039314892882923480353441790728871402349629768070343372268100031480848176588688763221837735073693330637507101877346930971317565661509658691105513662806505742240876292681196373054092331787437520819226822889156666606545678982923641887079558733493043323824998870780479299032478651122620985709165987018267861266135680409723335398685361449486594600040218252837869782073289536929601699959251417029991996709486492273505786390294854619358063243828090889358134664431890980894662368790289700531333083553380579319800577659610522418887993802905643853281886098794734503337173728562255374720749019007736105800597529787098874569900737690113810398818585139822313685675943137270984703274785605357471287692450998494110036272396634343543462223754430119217200820012351817590025426266020804520294921898811987184468590145649145728681155145582526248840195579919199047697220734702145941363217429409864973909466751576291029844410141432826911406533659667316246223449594343058817341636570656803446948391166793925846650767140560226080839991963167490030123545666512170013237308204996793247968422430602512183149207553718634531509685695723712458566361041414098251908511481182525773724017053625479787802270441189868838689412343023354380944974474342282616754712048459817398499287982788334232608887586244081258482534970372628373008667866407918884736296523261597841790739234860022960770849593985411754992463940337239756498645671748632558928983840255978905568857532995924394917494608165941517178796629129815899144417879769647371271977391707583021613560970935620926991531872645398552556726066936527184485967272790997902775673474264458074215568021004019044580716636087579936616052164363394133531165936974312525972612522694464105301061615261960558358940307320229297690426735380331817185721675411520514402401204112997470069969525892938776133084055672954198563124593909558218916567528474913665409254155410894375405736312841307228670310805669596276464787849550731481078218645372054820727165235139074008545508716200871843082505782852624112564623544509491951214817823936034779192577208250829445024046608191336827957192710595908031147328320528170926155593392110125661037418617529313768129617180844353383706019839997119248684153105388607325903441462903661723648275093510911955958839669213906977512512369361482644038387714937121664093932050736050142509776530633974535794313622162524473656510780282836636435622456246839332024320144195937287184783032903735256112345061299081642909055366863395686605254890966251456114585972011214790528271259521672017171475540078246925804290230582391479057161950622688424477747963472487565230220777006371279480830409051491499456691560383732423982086170251942751153226990188665847878718393407172294230802557681623510607818672134976360122102097938291147327427000111332697881119006147837257531825831388950465978441088622138557614753309005816614142550424652788724300775211751545746493073196036539344549850159974264216264615665058572959870280102538896926178673805856699754937055041144840868617041802743880049382863153868557806637786377773636985512281253283912824304728307024906964039563400613412090291823531090814593978802887436387009808186027958990260584109406839065168674665274612271182207519224283725966703708112922371357408562528751216014924467021458441062557528031524543543013143697117365434466016008620787667190640443419680788918150600626526754445619131845894714291726305695906035092863128180967327837184636957854796260137271841212244052857271454994417413603658938916479989436740903355203321673387013990215829438265669658477004989617660177154041294766778141091376482584261163800716750875308658554313487279504466104922886674697001858308223965418194638422667936503347630264044652619727995310574920527367736775251891277697336195911088343587509584689046532938545815321690090615623926612766158495056949679516250113614849365047490723683161179642078029672837360867565009806375951533515086050295755028490467344675550888763499210786063148729246455709615304857299290711250334065254487537067156130555730737041169178556847110465513637767914701753849148790010015307956893315882047430726328958308543553406840914848415802100741231263942578355697396870826588165447691423550669891643646786479964874283605555757223800417964840674739002953573809809506806668116341715537981199007474808886890212674202219028512978120843104088039945808376214291683329461072909874821620205645823745241853005648934311203805969677144788189565611013762939683835984236636735551673763567491944104379307515440935825061569949235548159728079126290386413361458255990922852332835670369548228323721201156837546159457341066525937972005009988442488026865249149034577873487222549258997220749242741263984978824399621598994240613762788326159621539605681806327956518511361409986559511761780398803194287992511195110678653421222212136818891310435892315141655379035374626810342138708148909112386933842874338534329210958536054382788053266377102827795580178157466851794555099812046465139290724060418398794957565414311475295407231488182534498054308795332292450679810834143439056470475862469611016385359940906453700862856647483022714576014620944917491507732546087634393402445213548324077260408239281917412932737708287001535571132681435518081826883905541884082286363291437031969523882321491949237214472806187098774408184906369982098019277591565731856333355154965611518280712767680536070525415975916725226988701555138557209362273360755953089597799523993316793238174750757824735370563488213326647587228911974233125114600919060977864940283902154548965279008687390410399846023389360374224140682179327723196991819797668040382286237132384239781329794264324982136061993246022142805303163203656279803601584365689588760280344397279131445495327814544182783632665921468013606354833634376855769691858663638801839395717082631372182138837685284017219099538504543942314175937949979473472374357244430940162862706180264697727499310798215451350657297640468056413212235680082598249504417244245404179028625455343296953065668412453587210465667158215642271178652773574069771657336550046958263108241594293398625859307044744802860035348015497705323758603330741283581407191665511176757960216273348077490995029147708407781656249761455709779639055262370790042639828456153367600635122018592046956296126396710521853668312454328818981154697253095306107386770251762465199503104579045372816507292911361052835779660354191721596614007606081474836365583898562531835852670381219728900368661249915692508056695082098987475981756385692346483874228603056763675993901818042002839031698149428926976136796129803963688460117312901013040462227735683607654166695153825830412999955160602420888583198214833252965580611101683626254248167365888459775797509751539578724041297443749090178251442875271040093595694624186195108900744197162964139909587711198785797302969206365502256479053147537471235281085396608467762833348588962302133215863055921793076647000429173443937508552515007643471831161404206708650521363030574518857354782395211678463243798747976050306649807300207472202765589346225795996115964859880187315112026906024676159920395293452659424850416569033669965607287930556575785132724543336987391011052108475280674887498939125305950978369225207023719579564134294321226235685082512785046025428068512246693065586513114579854395502170651710264006835113974541309222673688662137899410212933112404638545825429901030723813197762560905210234254325095394838605717990955543017873921381848548289535221238659923891105668134896417815107394134322136259537593049040374257578470270636941025676039579678756670200497937666900840726763151180220149534587256334626663345788863353341711591826114417665274149537021642198552132564882951614421451766222597474457227091123525376654415318604620165071287404374617817072498015003412632813705333703335649579088509461569141424626831212506014834654975773062761860331891977005890103920881360634990810206914691076110487403216825547788314086185925336794956764352532636539083208509456044289421900048232798721967898034468243139817183563778767359667270009451039965943711220763316015501478154087370028895766058573205592546079056609861110847290171433148485815911252085021554587483295552377422968032535337331775510254802608911739766458023644395982406351973381532084573275309432217400581319336600380243740863350167592591807891176019399694703683708382217149579191159566995458294057388621179131589482751038993545888185848917560260903360942090725045078116608122981022811368920990260060259700499935405166703902521407336870906545065991778500437119990873747397533497031991876255263797454815972751025013381662692727505634040133433560780650289887163072038249915812837732831071729923784987135051238084741936746121151142798806939318549656123482651373891187170144818753155483444666089983003907974370203531024821905934940538874988286509936943051259496373765727179163624974918299438429485939816871862582378085433110542283995279330538045130810890502345103518392837098013446310731085356461348451906961636758402052464727735434976288260620406345912121026746602560669538205120806553566513547561815612643609651401031679587553015195563226917959417131979455835713546316025642783729527978607831658499030679343800178347890331954519517932592367195975310399805496286333734655685294906180469087859181961965058603695905548461467269428950701381476985958229673353241171378938429651927196232199858355137350360423398752231930736890084271610233480991784984974541370810634483397744508583473347759443975643017006532192289683352793138420938297122462999999399152896191324337026280334968926048751220704070242596152090848622315365270772023408019875435534948164324810679237735863407593038190654558368220658522830513004954582672430255090251146626489203657346298355210001177383469479424190117489742472285062618563722111670730415791522148938596402122113611548253447161868209106079642359753933325946635465581534586715560178153815202974522104353487246964692823123258095544801819395027606286329743946162823326879807806691717046711400691148493398400775680986359055281698222877900338157893808149569586930699684549724516112830280771811096837374648602816496172694960928730108334475137264215980663539919936744254209115766793421980681691698511431694691725225807229663370657722970503792100263279138167000262730481220256928884711719766856672747580551004149986747020679888206175265941648179698454490326921129637671387560253512697310733318830631265736020679293264343149724421625854528317170034529045595330094283928716233653302176883114526557244977728692727015845316381776896178489254876661173536656486371158463942238198744615060597186757232068680011232415586014207147838553913559184944782580580786930396593097445444647597202222065506316040290335564246509117396651675943710409673911235888228880729169364439492271976278499085627589270697174098210281123808249234096109881343011997205688824438888040893003714862598176652938587977937522303022166958634827136935298262022871673318923785047394257979914398371528230024572580729782414264524935148917996489964207384094742985035043031733133793333156999470243007000455001771236208249866371527865970177607540194905641446562069254759428328377525562854737320670470426319783025035791124278737946965699625423744201265321869136444969346700243317995404916814673547418186935251144153476276715416066264517673147997317949501040720079047296335316075544895818023384454639396789116098594744608938086918123398560884067766588795037064144433624258560197080381521865425450719175907080283866814221715629659201777676509794801983663088527221540221709604549661551675329099505883333232370623496174587624056948004557051671846280181738079403344096149907358834193886702582880584716200155697626401585143683190812623020433482823438344884628936054158021670887366208002715001452647348241900841428912196214285776425425588694759656334330054816019036267564281252667126299340177015477640372673271459632493179852106930568691542306020691141496389470904368387131790907646471387770897301618907070030454673853135916361336847354481048446596512103146688870799059799999851639774684356854530460076948342579324065718115000402481287556943735139569555983333666266542295794199985168466254813256625082409611843565435538287656851476823315633964871556299719386365416049775563026783866593454225461787811533714865789902316225498065890179025919004579087405763883392511198946403694038344421485730830508729578101801646827653684560390296445471622427185936891434701120367890566646049973169426374001784166814817000801877075387443454189114232736085561181913158818747152475267531009156970231448066214973114834392273334043414913366473815821009013744183173998744221620152567336812877258847131402166640162739069802547621832479914362908902717888949331563129959329627755631640624430196850598664301567450541051655361411078182099777257090116377068605789728093493700087304492639165507554380704861657139399671426950084794194130041650027268259182955937774574034175812795266599713258497227902417966569014728870175881584371287865453898563120949006590440710503624950365010622089190094743635977362185480209334359533571201597010179945058024643646779805877128628970277997227084939031531810803457670331349189672264556293214659331608456121969714498134466874538540923636963315162179271021700588901093919883397174736806676115946821794224026920810829072456430939863337161434370860432943891630125439159058756726163557041025773581601573384354426244827471895411995798213944871001168217587252654809834312849468858625173672779457927364608124653220920371875770706265793949372401633075843599016059159671085776761565620588448584063376288761522872737505905147940930724874056170435069470154830427664299714216702832076711177418663357914843162067255221380132165916778843808347017286582409654753181388725865682396230025837757227274981219997217736077179356072596463691918575114031610686750362033860029506692629301297821446707178035027815982913514207640686158986956259277839303727722160889497281441109883659937240220611357425290876467219156102670543705797272016990075720441877857553133282602310299106458355580765376968981619160171432538011178364807356787261531802844232584422128352351161544645961371653482952297661612929692337198201154706130875624211032909122248115506346733313548861875426851762443583176240227339998611749197631266354253427512752452019879178284615429360959560358078636484281566808124060612967126097846781666942433222335948307785065349976305829907508629316943377705010459679705525363426145195899517211633975914092329780951497911504370520491792207843006668366617539537718618022413669058262658063037569382110148870995437293096327463588047352830828920524814276806903306553270950425789315849938539836195562162081191826719548148928750461094699813462506987798016472088151259634892694317994950198956951013697192857543859706353454956273671165938361606526894538354699211361283443654622737215941833991953995192340698194997186616625848158840971016893693187312060449586473438849030760867776417738005884238014735051844557318783205344038369892233647699911561769160936958122523792169929069674685196042728373124536444114137090733405697090796014011656930275308848693574987808042678837607067355194606049137198272274230788969485195801153825061943628917745372126031375377061653584375074075157499692570787481803685809041217166502730896022447741786101793755668621905213631782458457118843707638963258339038074097831393256175070725292156587264081984767586454486637370397556971671285392789333571490434441373151011633722938327320292436582946436237659309855219300548171801358647762323214342138787820516266559345761080532088381978478127431541218974469690493729698574770962906225783750513570088349738544515310155070176173085854092674446784318583689663426417100155420586348746132133045214348522002063138253770466628020868563119454498745383432870635298176109686131775177531385776434454581112265468522217209722633025756783716621376988353218798047603523771751393598090800525566781534254925114222252810319881866856613579405842065181778547741199865159990286601356706679507741730678792910607593818520470645036169770805317976242175740446450278126040409749183411747115564155073093134451330243286901073144087989024788637705385902139456032441656589532640415530426342879458216602475897348230505559150786223929664610730870358528530632040669451236459566491993280643716578811001935529721660635580854203774422149987855340173507787431937063043685471253535879660872273298692694897321028642644392983259497351077963718395677941817222880806827294320440883994714403139066173160139326833020775020493978346211771178571083344717971192246658375460591007923647445320152229951253377847703674994622639843723452788135546195876228609004501958462645517557092918799002155893953629853055646240946634866760469603098064073791980575213348492522391398036025320986427257381810622183711088704076039639468895128827571567593066832765622786485241919458546510949460693112276719968262945674955012202394506817945689489368412552387958456354432430895717322966294544399253702024567447401412068884562560283301856985982167209278837430198081198940524781362161905385602725190028907356959758845697004888642092562884158453400594261092249997479745805105842222460748908031292485866583147931289914255543286660724061495412960628806916088080631625653590213477217464952908929512904356523964641445073150674815940464061256092060786387888288072212713701880946782466349038866965312958665027734107858729000037933573923876385607962655577785021852466342844950956610796113582173366669329875727028854113284050641030094489168884225502714867188044361716834091082323820168784734675784518749637683522791259465579680351282552376400835122490292166423574789460590773738024008360921133875832744213020777745691309067497766286602067434905070218836847126455954277869552485665364859319754174962060711115878473031679892433473758858963524455486426499437548346912233731493321357835042358361785825132745176283162330268136657759178279431427864064330454751093480814763624674418706155983706277869634472983900521098522897668957368194044967556953123354419423321351693858593228879370437571557529601158624413799809695945304743295106951217943660645618670990310586182471705324914822903426692274489877513165492404193554803165939916313207551441193627392128700436609841823510713299045294652466856487793959447031110693702341859274253680263261206570729454270283161161464594017859475510040674246473074493131664820957832409180591920523850107674443832584811869726507894618984989602415422911020495114487339296426367176252619273851116059945655633243687898944714261322095422901414951938806461370744062689057972872185528897354182037487596392550065902818650942952052501908399899708636659718738980122683037751857573234902938102718752495100457558285509229640422915962721447231799403744779108038261185827998381054986684983284333782083416649384615920506364198124315013973731353296920787955810295243026598780204400447662860859124722537405445161766733311512603484167556556897846557859131496764591349534070551923261532224125408955394548350144482728335053940230217469588509444971956899967696808903759968434696103905678797288766969542030151990434543358932740625745487874671408384695820005472339515253397863251947472120051641145106293277622356776024749638406094598873736460308641658223542990389206868803143989714019975908283563493836694005919014399981926163031518670284537068701595761117264568050644014406583406353618126392427449294269136766692389128223362510221050045970037620501950337692960260727250420440396631623567302758570757633916873064321328486258698589913345377946886846005863226269880122762596867119869317976123054270688094718739590914534918799881845770948480622391812065936366997451940630303750240139566733628536411834643729386107814503105456470898032563272580092610752028566142998898568946813659512086431841704967370688626980081222225831008313816903095691941476455046083471421162391403787981378801291437984179112314940727424952587216956788527191152378632223430231556498771004805761864008966597609796191807747832302818184607643681617203078334331053298129215083370738746454559246073659080487916458253174379910469777267623977398472145968061895799084928132741892588671979295744257274181680089131620558903567186227252360283585680635353486663206881828173038022300836429099007750668539113957480749105789007997019744783592041682040442652353423277564502602532737049832425842913111997174138531002131163120949434491571290830435572943095872585351739117734631987640549731787993898904307095083889802515022072555124876927716090687689454845658053056396779668148049070464905472078841516348304427718696238330128368433805734077091164835883050590680923199292389430253518742760432711541866967608783234418183179039639674194824673574992691579435100174652538348912281178633475179557455893542330589717187629891653738595425541195180186187217445199748612793900142993045786702548143152531061925954922426804937901935028985768649863773074131510436337187893150232975568251564234629601189162268244110914210128513940655738755616011693468003561508613890446072849550751026934513562851062416773216228388229809835777870050127927971245548815035211130932711979629585078485667746831242444349605055531980265699803236073503791380761992850778650216290271665969690735642580135287397898019546961603950410854682870343071717603304374778770492217945112341778897380689100349061837902036185405338693670486216912957945364766072784708338673275082496479041260481919417679185351888577892785742530245441015406234336986045691827378579534703809235976563120010809876038635280898792627580024261380451667154273013531168590246239604422348516368034436713366168775385706658255918071122608878789945087397958848483353248676809746216201409612500067702025481187127340115498834977369710898133564084152134959403007350387722082221157343478554138084090955179277907617089860511555353184468570865173582822439358643022638201709244205865830498976022234599298048862335243128041850091616968197294353860139546694893418132359572383294570487981732489996034581829438879938960445259093963931862993000655561763999934386870888740200003105502541117994985450954549339051670025793817751588533444874179994231824630150663050142412302034213900604135454396126261058900695722312894991551725773370805725677041661411727636153132794963766451970790491437021010741493579208602841221451018279526933593548650179816876621561089064687584732718471797277179825497233643848618231948505453152793808464552389426385405331460438940498226606757123677603038963078020075432805643763497033339873672655919979264769126423740552691956087392233339094014560518557915389919931305400452239798276685812168246559280384217678135638741999905732048111133348788084867217613185885607074873406735177676301106748977938371891703445141563555679550899672725535362699032255981902603442010525382070529379191011845676667728224734097016680339246998425243938130701589725778936144208376309232678533770628484101226093784149269157154436483795734034835187486999373856982035379770409511819912230032206130339666404583010173083554924539605447214323217977291134139367293122220319383448995206586104897681257309360268799990693843705108051934875687615984687942391840663851002304058075871644002538671502071266795327011975546841307333489515279800098293014692303098860310173279993589999054674323240067682082540766722378372635028533005102347562970296531173872252093243822837811597918217882980721060778860409444938717022392520037786220748575594468931525545422996104401117832820038386336845869077164139804386810570055810704506346937116832416099975053887053802825273744450423128489666207231830150115871989850622821449492689997309496004746758893915984621513528227562891465537186133174565952401052693236247519970959723548007726201453730743753984274654048149089409306255574916418306034444464885374718733342603546434196107935524605203364659687495699398922016045316825242347446949742674777010778058809038432833212754099245717322090507080977764251895754486050261300357372812485794758524657281935173794837840124710840408443863375582148115652614987713300452234613740267321985129016350418506317267666534384479572256311679431793415859193771157688168678490694467306988185693792630920984232146507066511924451660478209862714537948552993068657529707212573893762665621590410297575292845078379071608257283888566960648317081456995738021184608628509597145619730130196379000470069898966519919943725794792273800533352552423006501004522722387768559317180242472106534684215515955388102391264575333948783571108961414422956186541156484900072076885649151600532789533497695134382452453325727143028899855020752559624269202790788754255889971905957653793451113586844871431965401940161001138706480025941945418279535623210491656932683092750615741461710731386200389607860182451200636400187827902033735560212970490232185552675876726236880795551254130862334086094017202568929475485841068579374188184137759435636058652071421885533034004737422633673261764108856102178095452276591949128502209214967123580236755356157663512512937150612156495087931889139503050121431038747020857110730841624801871956478679859530550654566936443981384064255842838555269009363073290732429601695573920158804199610250987809724112895887943065940910878522323437871709662684202738589159213663948626430795320552257112445691268367347956483411951611369630061487317517773576696066960043649705639019200383704511336865802460839139426441194841960273919975660032368727207849136896206559785762253421598879606627380311083437345076501874011924970573776401196266965091254834275254621513676232177117543027205671970699949089833054062166961503265341925728729818524866374906892147247039572510542294044364344909461407425528281130030667092424184931069890235535608369642042895270248861839542236886086248838759714186464578919983428871897220415501307141055353264847500812190186984279745191831207395237576421903197338921504658694726928042464464969821080100908102032865902352553503646573137454524434413600234005655336378148737570018144345890142780875555617856189578481135712911988706077316027976301031802915299993293698403681577463769541864392222732918861664778938811931784512329916287308424212394382617847341317821391572421227016296156753040118492522830812009396521201545070167724379101655831112252508569922269800805876305680784609214278194955346312553115838894496524839628070236035125231605159468135057648104803757190626303427648597529663896497728117851567981707208888101660838086331609024596100536339529789377940798488628589069769016628960336667153583116939992090530343387598409809811356520515326396100799759770000733561962377626780153808754841647468046104655563329120205447706847296362856248887758134193751511919952415498403982416841581682142697619577455004903538961970686219524945265823822541582930203286899652899836608754057222008747504053453913152931573106117157915437190404355018102487946268431109163599026000441337269678207830154412582758855258499727009612207170143788099696155769813077199213415551225339386650783157625594870938284957468014225237040995443443483332952294184923302484355342911578430754692098375128388637842260919974707213965173299425432228013300324336403129894399889157018886827594780632252520707168207337168337201435846444353040862074514200896399020450466330526202204574825981429734181312584953295648827025968784926142715784403340000287955037523023770643381074382773307056640054878318203296988730644796656163176390556456311002969948975120954635288326465571438004415258232953940794477772866165996333601722853560938030139111255049601379425731242915906855148840710178344599952178496348751371041411841821539644415060080879452956757479744815508212700518908421410888899258518913638571676091969269506661786541213368753232696333744141250162262267690889391592531202426072399260175506850149971887618331206723093744073802557563507572651899254084435792170402046992980658423951682704941127960471032031855959769733154718341961742176981340418615516967761156014795610352532399076338977346476244105078850494639006949549927902498326990855287968177750641054750862218750542612794806263434214880101067375871809974416826588980408314456880408753465587356258020034376460322355671113624776403184545240963797974513711815158418523797419943941500850994512882754263676110623312044823406172966613249416700543046258763264329944547153190898101385928988509334474429578977865956113101109014786240095400011038714063408411295832087097993546655244236068640362586015110091136905984526689567359948929053595274675699374127355974839776143686158715528962321855944209460235669866764519199057254335755423477430232688180333976785588755205482649285808516847633163863280584294619148207648340648389997090290051625652613302786263589951705242764705773666339998915056844174455288330860362831523671522570357644046052675313537228989085174231738868203863987750771706354186348101908688579201507346384708531219493737927340815763341684561307945802147416954185684226694459326570623702369466083718977274860802191838587634649534670665338855260713502115940738438036169011116703675141611071779590554743740715283745319948158112571341551841728392315362938343580041666552608574787708007725663662608700572123190080580772188686790301391929627295132277556360049786774134644746755529258879672993869633408376180164880095339089025681626596705772444165159949762985256785709743794390629911648578085922373838669315595731383130548976984648906127178370386954041384083271192634691760924170813235503442410587532113880226916283787454039882867015220788829931601682266752007541841190333343226086011145999841705735833195325094189611077568580238616903924700368600739326413804418537526383869224621115673580323046364866873607980130170493733605516290430711003536526660017458030615056874529664608706142466722484974970560706904403439126593534548009516164059011664952167956572341149441424327248795544962892630448838779939385561632818413324207742002202556662328258677120218536291923589105525860163764228400149265633202441725954076723383831404656124813077009937547336493975681481407742776341138848694934113432111161136057205968365844987804943619971904907901918340422361597600255258281606215582520738392026750403372293763345260469922554520509224379194463371516253239441422506347839611704565172900216049124419450148144549070829620686902909481891520497453555744465804050691602347171288864004735932361850509226689254365609275927106181053823458984309270484322280135178745261950342785692064414510357077017940059734808033531283959507596816816020592602057390939200685548092709936026739406639733815296386765288563682508274577318714740020901517530080195200915629512117962717849538988347389399310597350040060780539233841705290869860254428259569655542674476787676091219996761860667456410688275368692137357149987658989648516805873379065518652555791512937243684204572055693717728423178739473253739057574056346618002270410053842273011934070542686806744229009657364322883556388455285015745497969484783828016896793382681670500835679740210058191532444815549521144871999430660154476183927988742093198108669159944632937184283994859923532137681006190666212192683391308702501556993056013344280580803554701872991492572492732630383504350369469767807641920547358017481118089584070042054669985238326859160662711880848818060699667412271981481996177336288945355544261046464166345497425062242386762505174888404152445848186029719566421445905030308858130743402686202983002108220749456341213483631193891355885505666620335907805468039607963623844392706801783482362209391438075436441124253623677883712930643249352809023798963213596432043178258865022996786466743081790285671294285413583534292847180528094864248553135736336833853702738686270865691028958620122282159813945677737863376674903949432945978525815770799606002411652990911955700204081188334192791172033188428182737433604338650532613900254110776372017728663783415611739898179779536897016674791779221267857855790671442419104488631383426871993605070734881228183531750384294488865389468862287783605219589461198668473586550617803144454115241872347113681898578811789475917247157011225624676133197198887106599458958397215154144138453387992853381540482162355060349596680609603276499525732007757590227677252985204233078423682918381593903808367002063074339609472460620240758142228959165702811182423988033081429245918311308413694786036441754383703438297298030396284803107852284609268277593608767650477025973669904659259571466151043410119532462461059614719751629954271969798093829256253451415488879949663753114222223171872644677035442090687712162766709301890619948774308996505858824811052845618821324147168031442694499439950956268661357925854032043892681891768445280617003228556189672299854766067995929620189372963322983561382001218329779579306757492323143049340980130002877292020032295745335467292370706221358913295362686292512811448400061298888033441082282215374177688642447270762450131531316913451111183592136146552857545050233696059503436654332080061928653773286483496245309817368482284638053959307663602726597513248074217460215740598927839674394785265234345981824431803687915434832429877258712683601147012126793714113415293337036332047773349086516586990065840459070936247476872000420706275058948869950189503338040176546836175550142242143143613920628579339452814754117233163267630673542796107282280578590447126259201812308708949613577412354314183743293431675461665873056518161862984814289881315093341301437601523877069532052883909473284888100341040490262621259204997377466023820036894890217055242205100634956094184857824821610042286675424817044110392639924680160815606179216930192734461495396278151987327082886627626309725330796898480691811872393164344133408608534007210587819607435454246287589160547474900583488499907378850945255656456261696787474896327704232563604217341187437075857711134017020586797005274651787563381775619389816583016253287671697150297329398201139627446423806932358365954705217609653927844167899052829249145714472398823993583575531319650429539013327648982830045457166938471810328686493842105936334403163289817860896744959572256000121511082370083191641133623663602981559151188532344270512092227033292987812178896368873132921704556867949425296489026492761407164557455599066642085219516809188613439793551644175785002686670712884705903617899754990453993990948123633547677282882356057972264613739704062295193973703042931693025420066314738688558345567826362476479623946276398601331450853357241572519110290785326572940191264258472712013783510772912098667272123968452084252537801966188322156967562666491794986709862351579471186403493680333624514557369668514621439089510784487879550605048872859437060360385480636655836695546066070773513880453632797931517774615739621556086878824297269361715950376651580981535621814974979642683095525840286272553317619534740456774486323114754489517333043149577974310265497274956855765668055327025873456532041728018832085658487794258901107596562031045177240932748685033237295578440766951554149728721539805540724321316213851826348127467479705959948725767143823949082687788047646063477049362256034044752885465280739803968240076248125090338829049975720777834067851465322382610475356325261950204564090185400122125777688722825845278707615834066753196018642545797479472971721640109157539076599866907334305730877939570738051302084533596206910668643324520519545528882438278105972510759282843839883402315780327298730993910111149479254127698737770355341960315966586730326308634693765516975333485616451535228472152034540573798008235549856365273421611051179078484433009070936715315388850405139960659494773749582688736283419359870682677608469205938932275711274085075256228853008914053909014413068792825597355579100681324082550549207174201340932177149218756582754045158512684187019131682860843661832132353065899192326386657535207016264989914713404349181816226640685107480898781102988213333040705659178649454308742115537817656797421385988765249275295455451486612247556228255897545650599683250385428827629581079799924734729722473717573000769286100347592423442799014579147290355966686736948521000104033994503093728932863313989221660600191133726522779533215217656227488047920802966840018521231190689119098870567509315373591506680030928457935650376216277675505551319509443630998624042424958249169383909015276323534615636162950020975327016097143639225525752684108652305740526527921593336226771414670835062893696385432593263853604345574926056612352935879701441080071910143903024776727938044644716366885737440119112062939570516646306879854642002542398983792828755084506965332537577694269293029624355077197781118430906888229679827652202683872347141767823148350021242783814805630686156662338630143041415801958394300392760458314403443624795706054736301308430879059517037579114084752781994999372081172370149210156468668900524064372836835832405022489142349807453757682302336968238254245215286995633156456048752301815107488235428212323314553322401934138709151470393235686243789490783795937821174466578299257909598080615185569199183768604295339802204671317407355849579140853800556949423532246645773959509043333154956139709119376712327301008666585594689251064851999171962587975934640825091547026299752118623842376152183397802236347960506158296192033640290394600891823325195204731925453853926694525176486706380281236064881836166357679304318449190859005451627875086561906654614953139783290458682763343150262902369249879766757238238692249143206183753185516024322907598507883091167217763631698256486204731989677883664618017712249091571136890958086462468028968974462168585181444772590845312049430056704844319356440123576122264859465508960651038307529276540363311076840138095266108479288595198424342882539754080085890698916346674546430495266964946016670480636816981530461016613288842145315008621058998808396161276634160775187575011345899034639001834847876159614421758618354489507299274866054922741994986111017529249461858842913219245436328231654871126347344363602838440185445836667425388687398310076391320061517651719099620723917232035785135754011497701923024681977093896219680758312717213787585051083044478298449776609718543340335029582124029754473914546017586303986215017643539357489831315506655288470739196784393342657101405449000895525350734867835138399321961396137192874697996153758808356493463089141449408537017520536548424104920336848658721415486031426186467931209046197064816810404290736967828585385911716083736458390601876623772428935072293524541201059848858052256390058830914374790661266773404328132189174993329718197253725521920057185717040630996647356059811505850197343243421239973354025555535233676843785829195835465385857727182136378091014791418873327710311932648546985316444303000773199355119595373619193440312698411066180451621230997650048241741197457418284676588549905885140281564930683465799110884253909337507465224543073123261471116020721652411250078955774306340874721718181575821503914504471485221341228544648828370775504976241711035579386870785953728674836868550552394602572767561037265853715713453420617050817538651560957806787814393597817720275888760480995716983324398108359589165563935254635727969023872003846762267522467128726487830990001205648433058512284390669810508839309692181710507707068845610483536103508430301583786944703165470695021455258795511441773645361901648345748793029764465963393621296654377392174533292730197680239485355277322706230567308323155518408392858605514799136399053788860288927614016514214443928999254608550496264013283151102237664264669923911489662789937483892104756525522863268223263208628354272826573417711710913517275285120385408232483493198101711730121547448653861935651513114804679217706986941473872519189098615863502435350872039616148156118423011979746875949018701629916337006112639390090373709097930699012325086479745587901001239551128085965930177015763819837455002561926565814153759534756699193896385120194443931995767682597302561087179519707338715312115098502913757213393592027635370806149669512293268887502973378348269021632665027406660168158716082371047768648705202170957916807384964488482966812291475185106203903667207468509515349005169763534137559600100716488164812632921066924656575597663618687589465587709185116062022286870841685280542200759201507675324902187939342659973869507698733427614578673550641995589096400975951720197607974939738010679395124811416610116992049621886174756961176161938526556483020129728953563721757041588521067052108532231615344590971322193802744074046409924909154744886870300798684026639589643108877954735862708480535780488929937040623252795276931871665029958285093928148919311016589016896350701681808535599581777060589249103679770056124482538703811680270232130736245599458093579823427835040032933192857939521954342779262415074967605886487189943691590869498512591964168623447010308359607278360349646729109451627600271095212362948977203239765643268893028311162552649989264198513694601321837121959337355052224527039742370576935198991532106835934197011170448639771458670900378355797623412736731241579505195811148986445950902202986415391115721790726881991305743230458988255048650588723483565048739961261246582879523519370485569105506773932382884353216931814329036860525603136220012362100892945181619698089718115189745858345610595966226100881611047052024181109792626099876742024931157335131033566351092765904675095525714354520412135088779654758674703219002707921744200125481367353095798775063520774224380901468760983699593175526868739766392355342612283857051752610025298302310484198963788099751073817144714386049346159728233364691414947197005557594180680403778897677852988393105518596691064044957594502233732045879885545454104864490764570285481541305022757403191288224378018151637403053938502118994476864677642700086287801921409800075143428957666082797139086949200828494886257914999594465358880557099501894431123625820287197030013623194301223899897608643701580853994864570895180860619728656855239079844677680362380137779852481656350464364123443130780188673964961429829640297817060709788782670824239757957928531105791604973880415633565360331347977513035111388839665342346493862294738649987796306837556215976218146940585545253527627475075847354938492046088153179411368544275090376425624138413479595892592947776512450424688361719952285219894232016191311095951194678688033916381606584447669112841603061817375474235582290006660437434333622563323622438113248992309923651684639721557768943018661325028408127056057337230066264058990403075486058686273264596306095874908396032334164613730105793128404390353902532589451944961358569772923785712926833076442164364038801353805678453093190338196621162886848371183011320782815602677260950582335772395888558383844184377129351224499400778139524508543524377780569667983787078933300596997952719858470573865308257268094826233901157992904946986713461291364705101470200664286805992285357585940772735208633763302703216421916798347711635451374496494671240640389384114725584304721208734300279817347504572367310700338076504082082333441611136468627018274450917371919901527262198613474076424742112774674602096147992176823154286527951660148579373867323369036800690486064001055434979628718520577526728138074623495688585898197533754341942117971708016095273412982077125192009969154199945985138603995426197551728573695075590410135637087327401422020829054455347862241696678857879371591782622804489187334750883238479033217927400418882521596698264416341919749282974684623937131536900885827877754186113946648232913629405415186735682817405096347577682770162642910089620883288864330908476660600243318033492326806089985749991082645935345303041044716558187056261247333079029098778744754630576542371447484245588423741679709096746469866627899581163486779174504949433321058179436407979397204532478904472919245046857650792944556911130595512737183754382429316672689461492074622307662408326637475174157697397035400004406277577739252462722085541703968526505338127030375714261138694211285041331479046324345046780002475636044773129674262923512282694184010272023018062957796062461276912172466700422128350522523524303118522713933222287635127142327420961824771336436077702419460334578494526713691431502509011160633527113909586025520224868267814077984435420456455183714759429440685954529343575024081456598085398868969506016688004616277916890405114222045579043081656928519729121673670517790274485104913517673514402853856890682423042890705708998017216177458884873625713526219673432143753607016049901720356951064843564195014597966384763541684943386465970866834425205677951240813107596275405804704080860779772226031534939471825836912471922027279771269345014012691408526375526907052382479115034908081195485674675954938198727470306573386715102274573665853721758628729424211706427089319602670649172598916672033601086204285442113624678768383135821249161051159064779096514825215383031195929804315894568299275889907231256089776503499593681341743906130142462590870495553727889674244714263899019563673521858369583975283961331804284653801509558802512130692275610768000998779561743883531911017275463000380555685470725802738250303718502709000231189583231415552746716431928775516214557695039842905509876642749770213518049958896993169257981390432699971971460661053672203871742700306998611094645658307667996591081440563818195844794202151711959631736808239296397590421679553267636112207244727050374361092789390161466607841074662356865309068319520208083970426037789686836288362612009917809879056019808705744509440552501720632364368211926390504240467875748570529411303680612460744941751380854235316897933638101863077214016055015078316417413205657618544114570650780341576102212478698614692642716188565052677219547587926782608583914557435358432208897784517831688572679135370293745941583847150090448351677462065818459620069229526559195076239836656796046973837328618926816823229655023211578342577194270293459521720355028573377548164642648126055230337190649354144285895665680088487927046713907979639994995559337511528691539466984139760986014482282191473543298810359096403645869350436542600833125748795436102201900369934606614849502376361193885316245461011913902977218222535120437400942893496772077200967678492826899362619495526041299747417578857317278845969742676867405892852590087584484012700322500358805348632118826627821477306042162510275007596423215176466902085826464179401393128958054843854119813080580404681746447637737364068780975320234224357178551272349531780440356130527999112938981962533882123958559975120052489093817569709755759566875505131910664448858865409346763867836353900741094213275636206599728782383094944850933689987694718148507315140581769342624474275780493907839517089956327240433473561793237415134868597609582956404769945421345512747214621328137208733288771334437721542940028929970528278495480439789973927619242378861495245078698843753175159577137403356839346528941025827870385423456098163172841787710003935556248189330483612871354522705048249404846819991132835384789766646340267961113416007470684099103048208668788796228006495183164400350723932128755426181449211578553399780359560163821578955107406016768076796324526628488218128965997009082050194907012261211947715012343647111682795699790879162214480640891446960848578214784271212198668105658934655835756169089430232369743880368239430822177051749732237969765681776620654764492972161909184792950304187514699512912190035824152738089449413683080136866270794552368318339636820767336526290301046788323622090122887854085161451388075807581335061985470448348208829768133959632513305254756851385721966120695176902795863527981782489765223803839381937866709667424510621239586038054672534912990035933049517708774358061514269016225189631746786715309320430349175218797574646922015133080369603839731615482576086081317061780684605772781305380259981579046800314892851858937696864354216727955694769036354073798904098659371979571692241529568575525747676859876111522999687906909810024810801896679878366410620388075506059749225567407676586931935661495886017817816321515395243233052869093067172458602146948614849444680569695276912974245872627520561018861582472792549612916397337842297784383058203671267306021047682932062546161836585704063603843500681781907369114871052856400667803133648240437447542088816063560146855779996963366840282454750817310112436725954146789823603804051262806479819268655276734258599095864057834758350724635893881442300967378800703941718519273740564969465922303276369028870232171418621760090425440464579815414828420021185576898944969989235015845025160956872073554294918555054572234434877937891444079681390847038002183416003458368661033694018005742085783462871261751595470598670367059736052551435056873538191735848831319848127874473214806280433479924723437844282044166096747631412743185651641127929660297805125628451311126594722131920120080385201209032305883129030079756415434699846771194515250635404378716214275868428596807935517884250862639918764476035342619272257690474347358695410657315561849150084752194381667045825564188878616694809267255806136625680620063205562394349758354983735573790253786222201653191100451636281477676889004604751702506783989239898797344235671048399535652867675925917911883217273217852367810541089047943838730901381567442853761681739837689183082756372565397132483599575776438686265242716922403649124297787826277803799784015076605342746784491187697368233956876285750602440057583991870400676751065557758715221012199046923731336174448867649473756258567452513906502823556104305235884910033794813615123327556641018251814306260277548669695959663508768162640137589783531383634900031799531258766549090936428387565000019177318342944689764583562192580181066842536968100357465760368315133396600406037510096184270753539056420027774823184069076556366979476796002635770768136403042479845808378081877002083348503448262416156701155284079072932649059675417078370252092136965912169536734315818690536514950870473063397517498134351686014003778992802861273301462348050536369812656258304125532685234137942653641410485868935101964451659161012207960697739883091895623110071727461961010495520428181278106067971737750900911286279543445666603900235092785025299319053579815835654496582049446196042819227373395303384935154857558777944684284637637833632141703043340398051207198911252455505209510414655305688381113335712063143228506900505687583738611531494599704336408266564096550286711617846751478550068281918882908003814430995720843421849357602499009066717835482181797356479606170154367165110987902145476770601330033323534017604389484852600354199317527124509743468612991657513728952354374157216357779194637814661960039786721945568165476548247251163147244093661806819684955209165470676956220593982136781645463686748177911255255543094206468194696644099209388900717356513388482191864040040856612191977133314244560695345891195452390775537033166148432663252812558515291504023176203600665889595111278700539832531484037240409585116689106161685128272204946572930365137895302013551886843394272192973875939671108655312241726130278093165853575108222847825181050368872283135057411187105437144447472402993614278590075163659698371881144964528255123676982418622536161485407823606285736076676176963626921725748046128478508995099933524425743362746686458047620380386013018497131044987230158150762346011408960057471637936165994045899821931930924536358166702044384543512948467152572670481733406075180572443985787608585939676982382899922168156405313791854118339479571370547830048679530992705810877739582033858032664824605101685589105994659399572490357381545310909612679119738562149542974924783708363498775780581648471166051930468849271066778784844178104291697251004145967959829528930739067539476230614037654499549839224128708931492557487171290952744522380999095167338935026933553825888008197182018940921846674660827279847676534226804968057391356548933115901776622951530808221621491032992973664427598100825324972704188628046375466090269426572557576077788091831277227460073237901617312825431799415514607597881672022309404694133515803156346452203405240730172728573550389454989052259341001974332229642315916169314194942531184362172606620602358167892707107818569829396876131126398314655643697880776485585156160467477863682721678428107994170390685385264396909814626504921470392326956634887450570260771561987555475724007074179292236381549077859491991235839079454923979405639755721589270539046849356853652012548190542384419976231208019830594690675028032143778021278145388573281558379283063067808962941773674261196366295959976084897868816085329563283485369888341784460126428523444630607104000810834052279749507899511716351411363843685125338410069623898864132822321567191998019016355938784803660123010726016368156893939533370901562281176753532200667584192554220091760254482621110210201372204918257537349842534130930197084843581444469014392568908046122466585375455217613517739211010576756916236808217550997095918981016572590162779386959186767616873201207323874604553622862456835568922569157928734985067326676930283421943003539694819056785678430858612608295759603430153276630593924392123988069615161159135834248625196930864961398993028766633284209745081919576207687137483747983147406558953810926881676950675050637387049909625438076632874947965374110977913360961025463864082445870542240138605289353874480477302803019434912543330222316729263724519224196652410066985073879185752606787377410499320029138259912835302334512583871275182103523634275596603955568957155636812258033949133438424428404579798671411360249724340323307361749110687964517612009561378993679360451872138419739279776342386826894949331598385913124360495001302798223525624725525984525136203818102099064112971088840097326295910137181204896738008715842842616503736982119751162836220293416253830575700882535745144293884169917233077388792203306297541866597646539508789003853421892129449461782576167685366984815888521540018802946069967746189984517674683994302438350657057427492222563206947892944401481879514239148270932831547852499130012148246306018664591742248760302814330564510595474028849143592653977961790792782862459333974850278189809188772336575138872662765051806284244099272262193058062723808461141911449225325332429240211857904485149604979035654506629561070760571939258724728933178979462361551727030537358605702823542610927737197329465030035048860047967770018316027343918791183245671523380936846673116107456272550328700850427468372853998036671579574193862439510340393359566481166202357320175647497404645822647636770036715297571335290018984002530836557458289805263301557531422147884272047045261192183345570023566998116283893903935195487097768405160720418984232529537472971803543829956879354977242552493392396619173088042025686818290536340513881115293620990143829639275036171985261139008499462853404044667781162073329130908850194353630026816497374000096728240360763873036704015438936421359102274183140557926400171194358940780104441194542857451836771677382441479392507034756528563680046368312782444238219236440778134341360181710192898743218686151818133763550306163285766634132546915722494522508001299565392288389198221569023904090020916999138713010669226607016791077993948861769703969929066703974717887227837015965885341717970781417001757118430196216665139548195142874273303028509517175620653957238337632529579220430952231775017624707532637781036896123892444612883327964176901001869104363018788111944367886610707282515197342098462814837198316355797433832221630810473944374244998577110340270023789059091195383241958614100075605598301685174517993805422620594377166954730993343863585304956765080312878331548359749289943420582511430181913451502302883404002605525749188451946438242261144303872288738647026548296243546630600394770390358872623157824195983402624844178933574862990180728678955526267267459351229833707505259433293327675819035656678489711874854398136610331372470575048903497645027680480232408600826468930668371949111938247572588194880930360409892058996829390437489773156233939213027979125020264167509294316754130420245781812714871489663622115868484625384790683822560950174675530872638904020096903532886164069801822341923859187159531756872366537300831995946550088410346069357940994406251183195255612389806256656085230804160641182130145091494091249626870942217838812402322857599424027548178849803571425347994466087233241540811982214176185715300693955485510517499930050743133109676890070573767749912471274597399185316255388982483916906545828427659698725126981437462904247495498793244352262431896046721941244947520057913321996213636557365876667329013330581630610463416666512363138988595146932207858365163229964338481220148030495266416757863866110222648842738273133081314212749587249788880553005415913990476360521165797119400442164844981053389601102512951926224906927212314239844329893142195980797582031174152314820158177862892041612487713306175277392530129758485603718439125377266886746324986633617531713857534189136675844046064811322739174543783305754328923659377203380487082151551453111301924611149688529870313144067417925971056966598604500850934403611306074841628757061889457089393599409286527579316622508042426831591249424015935757670516627608090343028374838852313981900468397548783496520456281814645272903221100179861244160501750404136851718061143958471495146598762845250695587729967860007775880320736093248498591147870988224553038764897227692405493312649409363810414812167784529917027006867997357834104976801357357535521199943487622580483791158908703620092588565548763087497110509006343878382976912978662650438141327723467009635045534297986917387564194526821593619332279197423076934316016106380307275608584198094814522511963105838386084439418225744088245370071656940996622183688811031667342234718595260077717120804494235200743711321719399212792626467604869603423398812177959065514143821072559027003846028217468309671790302852025362512854387234664342810699376821339408321220400755673879420940371078789994658452763096034898388144588600691852324132365952981355993144981763124976092904565070395193313168912775023741701901771555530669796704248580424362694932940816237351302676216458546711442207632510941511698479405675080839613900459209596331145393142259867388009947599523567488131321814593571015566825180156564326783748979255004502625599416903113240966123320454936425862100852698212869138538234910401707499396213325593176554428790536837654927543491285796315276795516308311475002059880966119658021317825208523834879259774351229494437763050466756463798521141572042588148369396661361144007097336053060581618109434158575656300986141819562089532439429816037866575050066565964190010056731842007864443158108263193777898034465994455058407952149048734628820175901391008522934721850161786624333252080276966441557731580998537897236875111427918506970347082692596522122822163458848927448122299712446407572057891149808766303589059682706725110987466648745205467769255863863784356402180241688988688078226095987846224653556230874945274136005269297970890966446361183203162934535221409092202814375353864223214144299947505447984068388527626524526181945152774566026378986995465192117446409585789885272622227105706452134923697980441486473232246324081901559061183182512105480451213894113357208394591359229356657711689854113089823758993749039576887667719536417326249400096731618845792536247677911185441283458901030508712397776685460112965118083105512406351246642579005837392979414866873224112702956493589944415647608663899194105677922351404682395838907546350739253179332944214188592553906893069095747399792509872148017371289864325202140498519589683557227108604231863700606274516473364670104454462802287013629490607264379932472324093611738209084480413338877837116862984895436827813140092692662626974172409384294215791099638930621248083539529036796173820664179628392470437792784373172299079585826446282932970819114605303133842988776411052287960346483891962725862729788951504794047585800478951824373999442336517378691432128745863592320321551538566233377892980945006564077456100686458836087153812754089607086138767090603047869458296257135145865434720567678132137537546077752711210965555648891892822546638634138401827528085208987113921683253286184278689517648784218304847596068817842982914668699855443101608695479444294984336380062856460109003109587872754903613198344382006127503994877091017724191689282454527559540729939992030570600119584743680781551039197700265360176202941221053193412775330213276006299550799512740138023835567685187626808977136449285317779884424694355403082052619866019928943069181871897228204633474974641314550668943777382013072437801091926793323245906144563785377653308958020635789638226699772669459747280512388736812403477765957014438649462441893973432950305126096938823142716238839114458921877214438645980621803711341699009801974195540286134173968718365195539337004910362031483484859257305619813014681990114616891257715869341154579714983169087070811495291745995197954774551228645472407879074245218480370084821632042098045006976594525066335372893391101264099457822216247286981799606855868454112855253553928038402424644206625667515934788871025992947491326915155639692346543553820036359085725137893885193211074420963406303748324863250114992132999494297394108378209995360905897065855268193952110895832225342887481574376374955582110788305439507336684379240607012016597887684941862219791092747142814112875243877242885974208208673973434275635602943602268207806612094315179513708899433508911131024357008618519553963337684672592589542499469905659836282201042338863571478331501878248416638379050871078911707636120254581759545311052533844008494293364872550631327457111177865334402120719931659202521288908532879619577031118574545488398760335236429060237756591788128770904765332499551622850180214034876751967578107826556411781873231785607551676985420194942683228123317210831620448222509638536450584335374217617215293401374677166800797352211547593484438825159171157392946748563389475845724040776559066931650533247687416370554977492498098452597096262213532984502246284786552699841008032164380659341251081157373676213581638917548616381242739366738993265175921539256400109668011095529499169542393259769397580170243334113927486505431201841080280866705810164455953549461417011815446637314784166016634026265076641926983735870800859736864430106035808019722829922408909559889272870306918537700723292786755556977579957693412050921570849248525173263536920916153389984337949973748627516541407375356391570783040366511848425040672095552595806312753884975164439517509347446851891934162186003128913910391046675952488647715533437414266648720864044658131665994452475826400412562049374099300761710661909515339215929465675626095123895832932162143369319385405669116975294963629856669023864218195522720984720017783866840232013656602579452551427601939740187168358160935615265603685978071005462058247792764804949407529073103255787869285515336873272310083921795591650331868519895780939959472653118187722656509155927415480779452652219319526459064324848519973506974880664230688850466157870198496255022186077028406512989249265017339059240562021403581041390082096323998042213276677058960336348118601176677378646722797109095841202653935875084896650992531194988699242796785721014767772123207645155160036826847534903966674763440552217908863786881190064572239658657111985675401497423927693438216452657929805412257089141627395182999949565942867739734351890066414446185582610958045901132973245848315198338598142115001202319333510484863043490670193412366252676059664536257492421027035228328223046746871412532668384847064227141894314304281084887237834557772743724095669554158711976764246000470352752827893430107734306880406289426980630642906912200208899479278293209677562020540137394331515210479812105163855846759586994356462747989264374176319809748851074732424815875316369041012253059489118885666553822225203118656761569185794289902206794582179448888741687384635617378994387297804459126257998252087267608210215569725569749509577166866835485600026097850012783703358334261200064380507873523455536110542966098442395930046720537142812024946424779254475538768289305393791777747463836831840267438246373550118376405004443168420197062523080923274574918587753197573695064123438108024580562926946819539736451155357823664093287017987684266099028555809626425061592850314752305350715960769710380205500856989515693496081871581464854077225211512233293539549850909882629072047947756766664425381160875487629760676359582326631190586802355936533666936898641500599229734803465498771238128919331863898041376184628583362289147221966959690298366821216075421185542177837331139626787831478434234314030130212064208560733595048016134009849740408353049833122785390636571967510855769844166251374893462079189478424810924304305147298224416125990162072551141598579394273315574372447680285656264377111987200570705643329638978044498148930098042886495003503794440279349796401704363803061332692565419050109122867637442269115480020406221072219023150202731222115696820707909874584460903156158198916254738166186090001418725273787972952992437280870660682807328376184346002265571145030629453541389005906284634727353548854903053297527336124513116967082751980200147223173243256352531879410986251191402630377060311857425390426820188668657152032642929781899980136744436225762419165610387545839142510251280961309508295856880610752035532715758139689116985192842407581406459233312297168384909659844009170516935157072715947379749733877063330264519117682444110830400085845102284067449869210841383999442714373834348749264239958086847677371321095800060041878783455210431125888240902636748922512487480144124811529055161900796819315160531677238052608455208443176193750432296241753052045943570433654628351790185007373572100434890173327190690235284748777373462512118162962025422799839811088523433592679457702951022037929313049508700173404312442354638629713245095953710355459589494233562796654517041772177820614253615731422936092523070957634135914822686126009159442762638891269260617997215652872184033642959694691833741961064457117319886391079747987869731898419522761443763836328511374193323527488593265281222916370276431822950575310034923968414476675235162891452591875788097441282848144202888543293096009139887871388219454880113237126800971009058620820960080832066273874108651625998054785948657182021743822600882143258010459265579256156105278703686066627923104470505711478584542439432546215520507143087023148678610172208215998976283501188945561291858273903056031803785069808409311963755317935442874076415217431039274114732316204170350129424678114485016986808029996312462930262115238779178161511627734816205467391885986189741910490044650696927066649262158398082185440071366616754921557751584933955459813047612163152524318441478182899631425559017426034098457810252571736508483802132660746193226693527623679471582329446562721456482514031557200814983586972287024818290828018645992235496789123802725581660521673036577553948259716960530204441416830373275186836393158644080338974787538280727348977738571781622843859755236883377808399528678544947784680285889888571787482288250873820907124473805623727337350313155434179792088227789825014104754669418639886670614604769182145310710186876202193898369776071274138668388990773728032468711624296806074770547057100929298939828291494630193767636078886842009783449274599524232793291534773850451755389363971220608438730746150192462149601020992313761097983587790261770149654709697011709188821934644697903623482789007109268992563007242388928252443568409451131419867213085704124889638595580170111609622940043268680207484917783254709880265362653390896388821323775574636561329459916255424546244316780741790916460984662037973943268246464471530451819698021987574308393069149421092515913753418717535634609389010749895924380598688614197675898133089697571985761382789116369212129660261971306426205557099072362269835025430918813359245881849901309632712065574574254496253767954461591847507542246747076262195689321623663232325670346288087725008168115350249089356064939510116914572954928897960916396482054266054829764283992071614482712074147993817204431202210602433329627025769288921858170540868796940385257008901192490285995019229998152560915140933337386305490852892194053554097183960398707548746189161761749044852954760247634193957891849785414808832483519156916787333406187693326780806116878190291326561433477680396043770729514119306941814230479611460288795433738091821983838222353112305546043369756542315791189059177908259141993364146668336506829023550464396593475050896958732339050409138865423662482040706660109534284212819681604053920670472247802130219664107096454680815172931287213715511610697242232129124815046113340201766095140129838212710309337497399642355838447441553803931155622515270479673342195661752779468417899529967478199512598318769021143872551096481055805023901785849600277396512486471733140976856981443073430754679386451843762228761004221371501035606661501214528428746832507692701165915782188517304047746095908281224371313501023421216303530230188679096395639302051660678633591685739817657326716228779065148031865886984997923902901351252940831714343626519549145291475677136258640660282383619885229524688548004432163004120079219538053328053412275372567503603668392689409775892396413169934806534637470042954826317443379828370872189888338319015676323135973202322471459570922006681847905949694380337493831468317998614000639372357560785290456489719030451409394238922299502200397689754739882525350244750781437704040378663495860913084519684998708622681211674549337623033075379041721966753547946464570936091437848676007768942459500087865877989865824061285646375017726505721932249464032545483933782849722985444589296634802909231725504103907006152776093433880373425853488419891629332562922504317531678386546974486800138763213819434313715960981441896819240657814103830211632354836602544726638903788364680119061438381287989653735710834003844604914849076666162076667771217459021119261829991833749657040464400395774062866189443265433069662312805410960046845896814790386692984632064708892617564154397113529742992339984082455684924889212710159515201463021431662178883992759276186670233258230344666007448545147184416154419285154933896238500053887570580285186915470970102449021659131934451339875719592070669930880009584724962810323872065833602062890214185105016797371656769515818033728545186742882563819942176748737131624602847963584245140565374906806703351321387236849597398615158893834653476470217504376835332790349279947700498859125939952556987251693900538204512223390017903731731224426511561395543378238807879710805376529555865819826946078117873148131233036725698742088944503212119168113326028615872896653525632480660325533518186075983460915917604991609360518963350946298338270007409808794788807604536875491634752218052231963005775858140192296385929378849538754850474732967732688622017326317880295794035674545160450770740219165735208608904098931732918879212625390272207242916784745602533952211161476849111940659417632409295305599241431957562881505587256271042951463270279638380650546285995178502517029143042401003789613981868760425581967357527397657243498078088844125656203949469049393350434359132198164953166711357523403838648229635492491605593945873866286405871145607180270363510512170043103946348161320972412634458902056639293592933968163372341772590109103189956387872029428050270009801422795722019539927785323463499609578501110004665538610728465751642900642364504514237015897195733968619920198943398145793745550927799834480074194221755783459599495027210208016633842532043127609610176007146786859135802046257527208386810463039157972036786253890475126099894826051657132151423742760460143699628991836514878640122188127762508772402095865020566967828527450046359277841787825720664510390715556957201426636665886014186009715776307439330098586798649161876871192135878295714360007372266972772982454793920713407755066969777035001645236452302654394318216155111150590846042188447196549466207083883236164670839372334524282209027080809485253439998839548159235382642914791766520804050398224122321834061930222530017747818397751098161498086944680803956428144218922495475659066759275729967050087315531367508887664921232156628884556120924649672104605900487649469034257228723494805321379557429493990806274639235592890979116072025729841160665461337841635236023864189063374498982631389803323536158702523638720873697407677759385585145686839047216246293450078852500677355783235229446839320867988969438890706190498203972806567925880448349936713157457577261821585679728383090415929005237161906298175991658261418123758589336315018697415587929016843635221131570883854975986878345626669450057727983178843536926752826201173148621939465688461239020157899730290020021533954107521113097968361303493345585641302241020986359038263402604972815884350365849434232308974570870313242019028795314233597104021851179487906528359389637596369236418321097031515019303418321194602251284703296664706418554943530207703513877537804805198075341851563129480278124233889646400529933222477367790373590430134884539525801964009373267707567439120281260088801453967156318771983810129665395002016453752016119113993691797933114296940258132255160265793309124160325732305979243155641145847523030548338010878727700791081833578945296939241796055687605853876130513082800001664469117428858534156529979355276315729174622572324887875864327971750376379393505663993155349423014374304961422264055531608365923114429361090342210103517263205638342058352414552390090563660490255018523663203176718749443769863478070667004054449863212995716858597707526650366032568289951935873439140063899086450157471033084579176011406694674333408159558375478608246454989390750717312902778027365197551087369315655778595657348935428681512184531547834008498036219517685220855399198607142411870206932331911967163163083506475898339707919547232234891874650439709466635703018891732366780243249404829147556783396538623613836209576930490978193285930260646431845087324329346633007807462173299291623648530872539756700867000574729342282131536975302223207152227070227098235551479554318802069201134221439784139528497909052644185562015978631108387547465626304925480919900680486879289193847120268527209755323328041230570738812431015868428966502211279323945665657952824923837813901848180343249052760330603327679063595758690897554390919484908749427761259281197441786060321081009350698331172776547692709024325487420988398728512653184997402072896802075205713633168177782677535847542859733452001082699631057302346739030235566645162788254303540234342913088046505880352402245235200231711118192199193283139169774963923604005874921306448548824225631180289336684337975981854834034715553035232327119596079158472234271969435379755351110530659658127861387138206013324106305809455750306860699482002743498598266660610933856800252989004579007395405540727211440162565510455714538163774614748758503575779581524503809486901817827566311407869037574449585955523634392728305129924769673542165866520169113710243442168870019301601692968828377944099705016175678248680095422753335409624900757747613824780322800924606842774126722766243197387658388379321395405248237027834136252267864113514470856875648781724253886119119133388664053148051831582909688065274739360286209896462241563344659073623501115620136481846934741662245268089650920474294200818797378667016272083676209750986120469140185671903454458371740062069041504773125471406839891762473226954073229172359603231784573414149505538565941122767450416985316363813577866632356911182857695425713503896639675870554521843489816921890261479268715999412401442641223608986230899711036195898672422642959443288411178088807079612909491705575376445867784738330537522380282015773536484985094938419867223339811358278847061731246248449094907515869921783221985961345794489123784454244735814827931247642407461878158147127649830641901108286542389307829185878778655750741829833463133607166826262840562609223373704528815689519362552868986832506158077528401792669194585704444315687019175793529109160463286524683093182542063340930533381496950027850157373076543867811846565912018939862707222291134475168679288605906343233534529166205065044453633469853087020491189859058211667059911068801674391674364879127533973866289898400133291015159412201041662978880782956730514634214146256300747923109476673725684062692911358461764067948740028956162437463927531272912144410908528915561816549952563405610717057059221455929131624433604541400653236253147641193962321544912459431766391670236781116815997750046016453358095698365652692963932984138208236948476329391486107756371945490805299560520924416730756284770032359588882956428860717382382537872803315691141905643370068840195843283309756239889368175698622149905605059937306870161070456357842630197081779513749536999139086994657967464957500778125086852472341324783213672017184947231381059668664568907824244020547998599267490040040191812399633591671540405637475403020741335707923884331937251601822688846347860519304592024810233761666434259136584866297039431650795389336406392400884018383995077054546260683045447136232597988734787306446257514463341677607325806317665232784321229047297099821259390622821593988516056613256562104978885662255753137687826905228339784246313903783880181196325776550199421024723886374383587969839908686148027438735432566138187950083998092229272659136283668256161906572419944960508306904079746335874646696416537238234106121365028555640788642993557369662076020705852198875660809086419800081137704762641774509784461242988200194260691090564961048361391950930659179125560069648442932631678535718460899853278867987794930915986798036757036616163961915000170599315959315820049283385979288334568084829624601818195322001619874452800527908778835539356408348087687506639457988418930688051437931426104312262574761209068521349685076876585936157721105728376621865635910856497077521900668767354317125628378079049889100372532170609404236443791715944718307414574025406586406237092268529764489908131422631764143836456959467736143683954308446286965010892750172871492818818060109596853200644366778820298572698608204754664501018370814309249032425246687370946460524462022568095566841098866781299908602815288370956555676362966326420864514436518275757025569154160578983786643603344088776861961360065441591372821107610795830290031086301224737504675368455104701356707604117685974304129073004749422496950793279431515166610488587085114130372477971358767154699949077815888683917050419024353648359742566748495499047564012289868447144972775506272210045537921014621163925328637169554237732479084167997826398444466871458568452321627930147967398167364256011316623146629017086026291743047080309752247062310577290871797614213821169242005378348575396808763991204445003172553235472789630073543360414220039819691187294794548716100280668087231465751349870405701402606112395509003218212744062634654395344046123655161425690620133264573361607758286635236477082284148853063278326206894237607521899068954908383142586569704878485983116315710603964420404937744300613469766803646590866269804891125303926522080853348318211993215060695244803463628384958676786004754506724086617017318009444235160495416639422845157969710790490779886699628636961985350162621937645731898302951727803517353646742743974204758365344947584728660584666546028638840863694624350668004501595678831076189312843149571215002144275743997676905847914987247504704583632866758921912334757828643531501594949621070775574898734333416004075617651928899458598898518413481407832176232394743509172422216137864018774861561997862855485290456724831160630416225978604001480739615113085953595979772417891063477570858155056967925441797296109023333791929785936586339641505981901095969714986395674718580128949676896282554232653313455130113702726733525923558471527254459576669414819490260577350829827460232094082389950485492552209774731254041010146223533558405630029117233541364064593051550998004467872173039646018531310313067795633424078372534719940249691882212529995635673414085231009606445353815485518173480991608594928548526203893934930531497369645224403298688819371558412564568419105583436262103707184192330269751689269379249417961760671059456465073092973674892522159129068817204027821390460941619817841369212176789151599293201466845790581618338280119917519404467792495658662831542204582396742042296575231575107527061775459124677893042540693729272109953975369965649243247174407347726417002592279642269351112712359295919695393099434649110574707724087649038798697434431433757499097344043993468109052548161713735485780663841888549684681343630999786211204113629944064790615552599681862559600821264483403412403866983831666955064402027058666357186328113472222061226031637594465985959981614641303493918022253867665817455030401408526698050165621903075173232178529666947717335968643656266482227953252244681628441819100059333059107019639206148857459241436511842186159135893136146987544678961836873327503547361625004358274773039301666128536901230933862370522932463077722809944216728079972301455710296011665542467830541526860050509368965731087022481021249506706578958258135303554544407215311330090135750304552567398480369067597780351104854645750996976503848288467157876830763753388052282977142049083582378492338829830087466093265427932681761657433366252684925727273213889533808944806111311058339257788071138252319103254463019702020602563076531073328494709036050019118630752131896601134015455171836384664136446328986785356710125157041057352151407872325355939082579955446302294150864856907822616362903969266018687790448996102128529316408714230679604964971484862097552908414568459156859528654326103263908453391685307071005874698333780462682195910513266044352660334524834605751024632450193610037842063863694135897512801343359514658432975918964161026903177095782256718231557849164940997864435809202651837123285300862940025047558732421111854557960678368132883516392751178527286706046820563840231411132665570061555395636931954819213184979392956276888514580231605542567872869032502966723074913966767388415218054108169303998055871857856025640520279757326297064020160680838901217476650205472376519921235889683769214957306171058151428915552180867240058626660720745581959336808719042291695134075928563047197048286127470479708953344206931947452559015379900020728157917054223550265643419451495268953752607021489445564929489826787087384763950471153967005652823729838317643008494465135002262979358502734128994648908468562950416465008717209558536530104940383062105924075886173293289693028425801636150216144315553419158590945318243579812019274822371492244909491910106113112431395377155908854031043795349428513267453573616813128864826687213451090844523799189347994485606329478563621126754191098817471914626540040829776553167978304939027657263129863357169563556396208194856187084023052451051778882937537406677291799094925889039677151860439740578469962227000228600726062972667673705738341936031165212368975054632543446458882191867894168774537958305827531083126838923850820069809388461621955601405490727518510690991031457171580817169201862804649912318086830234817479780497378669050522461880447461909990782591113352582828485591589794528232764057258190061597993042887812337846635967187422992381089059236137718520338386306603035688494829092256681332059854510105029820750134006323428474984618678938682330421006525895945599971662437360639745018033732346370001655162556116415708009340378803927823312373359570849402430895542312365507228039214750776004814481614197475035976403414153011125891228650082581729202640610977109870339998021446002799564124742782611896083349368852640782311367113921624400012301071597292893097264518225746326677263881401401173495498928861043519830094020180113687047998535555094309099503512075403038709522178349428483945609749708499038236711070500730745707313518655666203613499230345932415013750249772843249020360143046606234668616366861444923284216616670432977348962200376576360102421502099489517499126412160546916192230900279490937154261551058430526578338919588729385302275227869585820867431919341279531885561620513770012716484475763480782675354263525416392098229929142324852556095190871293136796737418650896850787156708124878121262409093659129942007164336396398305926876303514625080939705248129775469493265017705142298238093856773113478421958411263200822586959903100437378401862332091194075675987346940676583951738043133530425380923403010492371274009926064241203273939135193275641879644902293937112411499454303353497608296062780777814441895745204342609198928909991473793446342225854466007582351340803579186710442889065997458919792755811624837868862567574711718134288353559349710359247234476075069895981086733321873766046423808657003651230032990249994653067771280400361460435989554501635550223458686588974336815807794581972167641945943495553525913524271759772925087495042902249232367693982768418748003770311341783521816729581606092916939652053252564689394665779384830246492343828975732858642107132179581120426263984770465986796299118344824712108450119320637669869181107005877180053805677680365752643217056533289716159316556273654937935840963153529743347296259150607187188605686687398651625151905357421839669801579496213863696665539986832022958895171359982863179643549142292002564083582739067295805896470078984004064491574849662455756233053764860185805320532492933311229121258713759747442407315970781514699185615066268413337132616700874771610224121011579040374770246253352645336764739418163380656848487310629602888199842658328045153999021415052894579569236773407115859333692609507304486947960324785949862409526997225578706805730237253235552132770512758854003845042337161354430855716755886350305615149878554430232797007058530741416518056435722795955171717837390087070167820505378998189019367142143045863758908082566212128254800575315397568826364104614347048330557084327251772850616231349195732858272371876985367334749467742548501318633256778098349813542306279043549275611810070763321983798764116484664779554201780222553348484926967789196026041144272236412886707073146322657526140554893181608126031969957765494804547063013550038114117510292194674805319388229583768652128219352143644034109288013497875917344061829900963997246958250988335187034039609026220219520338181291545514530475520732596039070754326478676976079208376762347082012548684020932370477879160950443265258838050070742834102319744574784021906877179723686573144859809090472587029165414993717573519574146775825152823051122620252148370450832150284267187170613557125719813540660694824996403240297442379965146666545589983660123837367075306970505492554874400046185673088679503141549322873953093147115413884040934392516284004636110542705138806756823916058755611786552416986041560134792677543534623854615132591415444526319552537471671825900643035419754167643534399941792541555454396282654297419590170996371471461373952206913773853682510817315298637851040375279725896495236666977857618216412483112617941984491281568895321854692031714103344434229132274978204140883276790703576282632822744445610592303554854750752229743698312166452573804791933309142760404334996355038023826345587373877480806088417455420841312039925079909145459302076115608679595899877261476190133785952592213263292159231852273280876512380709356088330019243016319356542185025656741019417103793449707204069285884443510158463261516222466247398950906699661201313830304587335394053252556391835500288793809311813289665356450686312619137931236554915343220850036412232310316310906823985935878470627024974211758072118808644571774720410090048070843967284077750328560932259543474755400488681674681438224750835544944442932007282953605111723760386763065446012204133540302626064755255294585368929412553458603072721134451654588747398584143457751368884553194892443849813224383055661969412844381501680226630607763537320602023786487501980551952559534443291813929304874557645093929824496061608073752219401570417459819687302921467727280897672077830834740186727996907492150237721665671586001421878163530808562117129374138694490261068063066965291429335610826430512850031652731976850598656670563782634248894543087304186441497476570053214276042293131208256117820104783718657304155681489830044950893176292754730017947829310211497270258473435250700633888435924593418547910320718884997697583127283414977030318790411485706466787101524899369507320327790109516058752316138115010901068376645803607622839255326786686881231136605519498145550586834596569373648684165975985628245851762917780435797080618723199552840236592307783799007785481656326586883300746616100856499144158091044385394686998107122738724312009008541074710217139582577339777393270552809928648771026751878100582210858820090722669965062796371941774933484732049935380206503793980384643958090101719565566179666794023646332407763245497811829950589222200829369268461625106038978063285995414048898328196717740099830524372598670735633320786908696908056638702206825399105266400149397293743684322187172661344607025248998041469160809254441009184047719579200474757798200734657816694915199509978416379016485667383497621006305371933019092755788822202395263610854963645631305783295418453448868837764648616294564165620069923483854145859186341111291046234218820301633869925234098132919089468218457597066523952385913092175312939831395761688492350182363760885825937916755938388188729317224409769603110300975493445717645858959358162042737774331945945651815112621900116257929463215093996237120732802358969441293991980850876706485547326378569975502418318068684060623022656506162810019488054770860194781244611383769866400792302879263159454803602348002540864006247687717313718354297693692098414997492231572917502803760334236405413596284083775318644249938406926878063825028186302483910572294347720414215213885370590110033878350217897956034272952012742268696619840276191909444176517248540617542860617167617501778193727287044918626087078226128029828810393452261831931409046451325099265838966550652409615025402079866734348476504144875867101103979921111180630186539707670204735061309522846135464018066798670362554197784087736400500839740264942972816386931259300919202369205680640542274075136117192499409341625233083986453856106279740975695914790422519942029027128890793897034043576914435059533788879906283710678312155898380901662297811854224328721659012810796972280756697104268345610128890729226031502423635673447403929022954834112702708752333500288162518088772093674035977215457842368063200244297927883564272472190599414644541153311258302800423914644140318643542172057715462587775111116378625531036810829593743710470834627815637546244406459936902982179929815239851603627105760296786304191547269625364207532044695564726190921969352491989139966675414160137872485222747517804225620310138639936767107730313972317725291385704871663343263322959122357402441962790632334098869220813491024773071732792677243794674418360061999767416573464443308046192518870526357622369684534422578545283374903641062571554400885004756988010431466221484305526837366665357276050140620624884685414500984772981996918223685802920028951097438456447462763789017138501502948161557099163208809836048515832395751090548019513506447995525102313723526055111075867549435046842622290268036874935483919264848406339406436769873675120096146848859995098308203855955492855265576683551690470859435258433611215491882534718654227898384774192080414603208608364747285608232312003794173366454153451138358888142946790543047867892994866914949352324442090806055861520580838999652031207677046841809417846364159748856729321424828653371290053856858090835828849896081879759601137755624238395672717224623845719427007407951253248514676395148706129688574926417839526661135779162384848055687576457660214105341813746920457646691806957660285570561668898249120566861769793290294798986722775656547692005159869317684148812333116511026157686895405341984333824788226535394283441678022420215141171513909184358927224148710038013967810035225485951695490637696189691669533234959038474783628928024570802771784114175217910218274034104377372148486629444210139805550763267898520030867333596445993125571879791012564779298747212048911549715342201416762136313103872646476406136907023882494553188192887697186718786846589536159513282667425545927712536463068937379597992737561675707929549050635192394341871522023297432363281703812376345541415691684289541734739793309752703748720612971085834674346122976577267283239531541763685333429592945655671754158151525184516597952625553784467884040098199693199693697283338311682097185347368276700896643216897289191861475681457562451669625347995063941051016347120050111248334358643194949379478995797521024454582574029782030803151977979951352167968013395748932464630946104875546818225176585192970795724180824387464263211892679894093713825833377655844118791031355898057778273188176753087403541734662197793450213014299397800789068573319392727764790748647105501214197824259103209527888524206288619565468477963898597613998917523007127458359811805481102502418690610445171345641252220906007840673179173629233929897282343370349244383620919826216922624486147795769012762619938030733882892340240316062058280775684030008468914003120445440897381939338551264907111849493506356621521807639827696700224465752805344504914623792918385447658032301694781858162149680109061633649379016317689403150604370107813242323081855321110788251619290761345584822118855328871089908764427871792985727696642314157957923386396122847870396654079776789744487716224905464702766129332564862572307504515864740428782549119372017331571050171868434759764062658325954986704663349476943182458676388253743025582755343897967406977994947947302848805154226893468359185016384757447661651016729343979372206562228532879247160119877124736453812894395957435774671277352236379851749510421145991175226920567106997063562401027355796408026417779560720566726674947355274935977478075545211543932297621085814113262209733738948229356313744116349491998790112477188693350337050063297482706820411370345677327470839893665321106021077785245323890610326594134493885370535517953997832520125246128078023869867832875986220906373414362099415891300618516449702845101308399430308556438554621841785628637540775182693900630293577462889871347832424200371977351902094159045824875579089025407610462039260275342677489643997420632947980434061626847106301355929911889185516951660528738575608691224429618583913130542460447945870136427787762234718528253470368386783759978902163239621505746806654063053046223193061808174420290478037643160942899350688367750055142875708230493527813936189400879543030043064966990720055678781833344899245197035018051182535761310288851534208014377227297427418919165598836836556846120105374153690528944933556927079654419882502526417155457085929278195302907546361626673629248254007403497423073344153866346757996595133250074755564179598839968074380250704557430185016969153958680187980673205310581349172379398430431243018064363568214096982860669834855948263895093468835872661161630667523268991063856711036816272975645851231611121038858837557029817324322139570496838634705602100046572417591874324977125991226128564149653143727817496981124339486728599749201575523578102337957290149200669308748527235244229642123270516287325978468086798933783422978646940213535618231650139726809842375623027159533606835304081313413280965397101296272016661477785143445214809474311820215551139195649308941451127418246730507903985659896128878928180636733734577899702418857074412587507348018188007326330675595135677240059219962316945160004882887503150643636911701945322734867320623855265114607310671983839351613202903392142759496865042042954378292855402818818043802263408561283960089728038944734115372824421760184716841657473977216175046854596839950858702380696841097873096342533859213383045924564914746612659640016384878066463972404640776778657823990797121309586607627595369716880512106973673518666490745078783235865095894314650501833704326979638258854104579095348920030398468580836541723377296751065654832503812854338259775350921795401435651292892843715714774257427867396373121761949580752291819667392004138210524208783362108965358884992311312266477310912214966792972850074302198888092733673498964839887228962423341017064657760467135777025328192159168082236439689689710499187813148841042890039683562519722374937602464980809045229357354926858667675240358491626212770274951461981916509752826351527255154622510814607107366521657941878032327250082194861917149272065527056526019231580308372164072753427481808243956923675098078745685045264768288334653040139994237107061425298631769473451828190006565226930953623753899824538599000094439079304511595327755316572315841206620816160826001030582866518760205444803145879252181749095743626422674476350101057640957571484731350122176063928040213679840981032113371821021267926699981342420841983951123678660686041203554479138223523144418899111513149463369585979787364724597578735454425525242814148406764142374592628444043905555706587225097183479106056265663655416660078526004691839274241406102183660690419008956185080342838833427108299361947287175381092637306631935612413619066032914036762780813546231869358810428919018125151244598448542089972508353563470426495428709478082465513335703985905683257292600030227174799611452885017636325318822913691129038479538339487594881482100511487416748368204978495364174588095297800491284835945799238242985894925906418517579495456326404479820462589603714396678046872287503480891741158027221229229951917657011890598248395332404035724596007313281449807081516033195293033947355084130460286899479257059483458652684151316015535548910611592701249167790270564030335383576695960383285987580191415742329851400377238031000960386600879143738929914543768385261016095467848036762054543019790395484100090646694248465582876422534550753357067285188420441115005185065882390727590993882050650755014572006067368946100571933036441501543360845981555611213931908788095174649345008536081986894201520786487907843806446977031114049467053845826910826384696296183218711199106888541173510326591820517531279199257482739223317612233411637085197233524768283151072710458633463457784688352689943946708317290605787580294848364607832908113454032035995502029175898974234817573176123723885019178736600134439814758949717599554829802681898521051412730903922919593293971191848095053421575792006490303973057727637895016991303421605572613991720704268856272494993422758871696809745119844949238552817472049339393315514568914594197578323871742890169956150786378905822051424953567700960402287051484383953792791906638624447149249058359687357018534396596003236384931898446812863273336963580146372170608174690497733844220486656087612539296297544935008020762550402111740089756015712839663875343229112052436838175398004067894841585149004221601306965620622250989044628052431814022889568518705679042086328542136889090099153444070380628977144119339240831909502394733199336291042263354310288995558575393266450080757262691383215895723458015735815635896515509887201137226075640228146933492586844538973480691846139782867611009359195838148419711737673252156606685499786352351415008494283922445451420020834240806446908583377068204510113776919365109908533075310028804736405500883765980829602864513824512520302473277998217957240818261234802633139471059695229197245152790298599800656483714358940795521818800018442793677598396061752322809548951672179082171107983184920267167933682835499993430126342372603488785809074028696498009618714982944881235150720173283433559233008161499995867337562668961536896207585502149938100026090925104533642981468643062692787486592022671325723395103106529518623156129529711730315660737842493270582645643778253458214772410278842718107270416363516778192449229174588118271217686518207124539146486314905148713754049718125366183001529011793972261552692357417266321170857142495208710830892809938230799059775195010997680980387486258268087763411630321541257073021985547926914075559546960822947224396386463852025261517428659299674940907909799659052775569118224103154721829250516128131017337047184368138054222807490387209825837805864957034749483328656096184055129388942221213437762179760101574817932178801622647156461576597551784991319755098341258501087349839887854514104053168023568955667868687144712991077789256418235401499530624155998746440256641343049005231390740979044357944101083858194159505563375440018986921636279667408495038315655769618949151862086796598331019577509383934338587135181848477273937559412823820452753914636247378234403768039575341719592052563311136457498112415848945542650247608737442401984678834045429498928849669497933196839160740246782613318951615968656528408147396183356678896419932116992978418848937355644140085442534945073372425575003487366561438161121424184375078490900648768315655774565710696020655828371995990744520083552115076401323569006210186066083438396367694304681071136977703768376628316111163814279055738717207708515841544017302360573449734035606253578707455728566179878243324714665840098246081649310641035264234970505845908915313003114865770887089164044077272665891343340518800345001275255403340984787887521923373941910928871989395280576813370050019840418601620122146982996602593366746963808835886486102888939033637143542587035568237053335066448833432880060491464215351454302293933413167224352523736699727432842594632425875153083881181194100572287600039907900402207117697007167400423810591192402010242472411910202016913261330578355604843711750095876640140874137259929718271900557121573557202537367897034191045715771907426786492982837037374356766807778635399245368956897481467861634943519811121407021024097987366078817171150909438586378230514600611869249084819073154394606365033024299963597453886477755572211331890689190194152282519122609297556238943752769374242441354919858843045860080949436937272607349367845142077655020892355553177411339210011032722338227339104845930656998429577445543475017703657385136090505886570054216347360359463488255439611618160394107658848684091999985939410631984790345819957420091827997246618895628472667928255109557707982770372015164171036656583193469626064498238014648468847933105651879731560124640978054604182253298885417062324071679433178398961438492542731104628520675390638572285180221366980906056603485035980043682895167926124289624928263630273802693302667685328317534854820954670773725204852076874019532494427533816370345702142940584932677795033941995782284198001371837352082440685024241511229136483294143235763389922635024278360580871768223782484995341897681446751809220875212169591188122113008755546269297676227464930403524999365196138311278962133568074336257817437668961254296236268902737294059112209722446487371948563452563134834497962075892123422987301194911554502295831131427666613335573473571336320770992704777495943196384706289505289511435638784977362532173246953278778511729741001205026361959513944132469103251846592156920733243173432917051280420630348417731940674512614314389773719314974245613272388622676026251495120510880340013644074783293897723511481143024832312812948084748917136706441412999612167326138075688034788075488675364649958271848544732811658814145999403233901492591315837926640358188965960592196879620476983010756011514550705592725483384719207796066113044022147919782554466582840839786447826145275698097199160513583933854849847456789206317692011600785962558482182556239031334985256071699883884434008373438690474952700164606799112844403106268953180593410096812729785438509252684885091908693509031071274225984241307388467691482015455102726421696238266338519740647653452757005811531013472608040285217168844446533222649037538611132733101236906827036340429276432237559315638591458217661519655428935060753085216720607292986042722933228541934833047619809119883177870849523705082074188962673908352869757367261948604838097775987206149488418992835174004518642962224891972069511860416048891605730759744600539323563897313068159763317207159730108137524793226010540466302260881488058490155622942421354492946175129081483829216708116514653259186622042388201693714778441241976539282827573989841356645373457452111769250525002933304593164049692971371464337653182278489374590204782382283112110232456248847835926850060059553104230572010969835136371965229956286859976761719250686173418311506560143213838771503729586658542126120571303188452617073930590966574152158074698687645612716886721819087350914327344582089879993828101787088386236264535379520671534593315476463435325653465288383492743494082976545597872820365703226297755390359323312107341403719576469949312215267601349087900152924891979222121786641936802563668808292700783919882070375225398162549991549106940729213933013091930176463857175928551954259867397006014217573037489791605904078314394191742139584956449811258045033228823839377460545543122626881058029230653584848243263411602091867462322961784416326085648106731969162224300425820742152803163932584902708489157801562666936132985019677946220378579459066040593982600035281220208708555684207293897501064089762669284988291788458474406976688454462861805908123190234185652063818638569362967064809622250222007181818655529843528721384150385224541308910578875196791333658995007536770951230162495498029749382357157861322345119421368755455352321331161248741702105679098138368540622301798714481993790962865637625101319899104398814166007381348761114729323983561825930517134970253227503689023578854664277109404701396380208306813140531091806947549690187303497184124522797558649518465677107149063601949436671060231729175847039618857873905535586012496943225547203456878549888395831543506654343415160630276206861985829712977400526739844417090012131631413864197580834167164814062454862751975855401798768645699937426366427338567659514079197136034037468089952506981185989819757251402976028759821346031410174326980937966664902066689563148108201533054201024640520459960633270586958843363991737887242963998749085723000347213885876399215148730481014398148469500236986055434662186143481066940158136683621687657630842688737139179124603553702314064575749709269459337335765041115079685425223612232333131408644362294552347798068487625966579828697337776651971783618661266793862855542428425166726747846258931213056246275017964515025401223971139463496945363888172696548947835471234990821552170142519390369420211486654763812350059407585136871015358844943201229416457064079038535442854040365095531780541622561751039533782356380504269442515664332194242091180745340677112662617917627537174354547094525856329269655607472192678601328814081184719878334607411572197854809775554176248565968821844227128324990858007500007757796892575302556865342444032289549765400940371398803734647062209677215289575826057010287692149043420395183325396200869555586050618848317257005393392005027492845657273112177299126533649764191464819197600007743347610533215543920853175721948684728143036720831250811358560080770990741695958196107652378991780961877909428212486657674041348610697076903967723721733351852528415209818919480312489719569014939858511098218016742877985311708227942293654222682807886494598265399014578907174718067717542950313770526492253743919000816908774016448896993661632053003266992987177414756080022487805332406842999908786206244209167973894689635971512031084147384188770647967751648371322760058493147347130862674416774920204783425653828180376312455840512927762370605212863247757713413228182769692405632707739673985805823378201746731025276064024957800223675743931129575980073046277591260963521954881596969389738176106333599148169682441041058854040839752585531669764104731156951052243162756998518019066469669243279269230406217380009763915991510083347142675588808289144573405960806676147407129718594704800339450536642381938733018381169212762104201652928013926694222076167102414471621998247055925535361969134633096419578703936421726878624629043090552312651779480342275546186271244630072547364401384996241819625910590852491018637613112468247849284452703288726123069405976829196343153449480504065811830072854629990511640881679675801707231134135264472027757654035995682957720189293786351433257590656138346573858741140207661940409035484414880163061751233812763517492123655101135020003043500510770268557706182477976344015324197450106742033701420299002522805738000662780675079034188243017272991779487190609348485071406941555346792867738013357846158674715490086138069607127266898996732255897789728333791010571461986983133581261003395268486520781572456503445841752667907074090309629372966325962553407765861675131167233312070939317780989258965671976760550167157601255920825364186765702192864670275309270573623446742049058770109897810621344766067726730016223551354265679608962794951610698082195817586837062689610932544002067330731384915585659405356698280987238937262672985624238965986077970307037022242167245192810658161198002026619704146516761262993427665943842141017798722561983033254716361701411114418201079880936641514149106124671961927359991425154989243385335182984040889227531483116862199590746814040841821161730905574233411794299352489019689334841169897215469071957338806523820066830743632789197997589021261382195055310054909270030029690258897878283142222525051509288669589080484113713707007017662062700095915231303851577678742185178571792090167530271532837832859071765394341333060501650251759056005944923453804224570559366661975054574557212011294174080503637935315717438207639643541427025514200488307627698563474388907194612752974592428761968495979758850365581681199526726357533047773369738783342200288787331821852762334616245666736302998191724057437629755547721903348232193094233869908018008953005440573716920513294299657533639140964192094155609318246142144707289269515217237206641957600631531023616103286096423315863632752407356943880411678443105056192696634164570958470183796638279756039549600418565302916930937605801807161078430581548190842255100990674237472841006295441033424326818137736001333924224914441082241064075419253062068996661297197324423901047720644674018989870684075290698560606421567489388045130134963769588872393090973675738748328403673868573465166331866096660134007544882928027608673224506820083152514836611465783160817053608920652556732480316837828408098121835326531244871795102274146645382616539277800059903142053717362208512319574840365352780078977297881671602579368509685291402533063714890885925403437140491040285992294858720351866964951117015848956383977064462878268709368753239816357020270188166583626982883611721602760679329149648057147602654892406355583058638136547475970173741879939659532153087065021138689715360268767768441925927821698804316606450798103474226630865644994584564449758949832113757083950147677122992916654522357009461416670901721858961419923542724610603250293175348905998501348573893864092794804392270057211692114929199357703499418846387653096624922632940375545468226166655564287312053320966969839145381610345413386688630928161772988445575850023578957872036575555487320573437324981497599691341288327427586440931510074760309403985379287150058308629754876855907443556151106152486243770118369781975757337519495918404004185228881740746834093226088867824219614119868041183310467832053625247886093198667265831235430395827816597427476076219802533159879218473121396257394728818828196451367845854259593593435252756376345899115964679684449878391787956191208617260204552542041763871809728148167765687553921207762688491507414640768912688244657007972679684203431445181832847642426252185305311517620997834738974651233273307784780302940396005382760090102611957759249640713564433501853193928152915203385886889630697619731201626712496461591974154926917013779149831163449456422015956997380577743844118244355715986058321414928395197488690977847710037785960430613348920221766674163738517322859375547669502962277694764936232001934651764511986633364639618345033617230674716207667392959945556402706304077539668585005695892604769227660118903724484391695357760282027726252945928240770166457787676558213137568932483910010322533456765766066921315259798560345645735915617710838550136713383904232631345643737072962872484781133116805954877191617343071840704746695714488343918955570237529090569483971202141663044018954838053300895035569746491936233969007381168822491912935684914331673394391174985498263764716740835292190252207628204007224139483099699300745023543566888152382417390989351647408612099398945348291234870832367578928426147810128853314261936459087722087591753332444345885667472890572448219391753105663524216501518943460339704401000498756678598967568098112666376419497178082039961314490179039425518085936857592961732559459673006961742275501239984334592798244018121057468305138414854611817071532391703597152000484902632278140572817381541215257319485576069434100239434799747150497585703432476708162239198661732786430784227679904334614117369384781691072391116125232086885669150204944571942014276971853736868611581644366392293978182658266313871320142839813864788024671847024652055079499852800599955782895784148594234499543620924575225789776339429938010187207437910407836687012630805913248838689943026203462283660392373321084330880025259453102813224406999253759438393013403382395604384525757736007566835962810094554018475548319859634239972930725866319484377565325269832047894099927791884489610131283498445430375776863873710916473029503175344119890790713599790975724706371147768727447694184522708378214765970503855029428603679093352956684893422817626228238791594900467152953817075670956345768890134453896733488349035728957112581780732927891332225131406065215776461092753757646324177186091409113781434045921212501652405898661838108415065789870504024885107012327387746775629164253977614018456443811985976694252073734807824563637651787751452318268675124587152351488682922269776086493422730707836451247251189918214939121060409230325638013664971990376953159295563289077800997007806411374755948884614221633026782723027411194987024983060658881184107528110428747408797581225321985734084779320487296302584299340554480952490983274449876984854581876647584502462778731279127914152977685475075089090110351507488246188716878569771405283656710774380688480647513137614375579339324911539372490814725683442635309028701930584539840463109879816328672244033517605532894551124501609104091536604401725724629608758691077790108474209121134927180599670113531265196222041746802985374419274601143612912614425002486984031181096996867011962407466689531200421181127783287912146246442533252458363454879069333219051307467173993985783372319660466524787309160483852200638045908392077767264986418335197157368544690229278363772010658221671093119831507318879850884598478641337184209110941270803370807185361762440975866389478343241485190978468770266123171244599485594874310476221270942876081827856399048968904937077648604432294114877943780827713590460088664377236677061314284168538587626426901763227474546746699286225325214508933925183643716299475031008912611194991863981389629121573598842724456049905403422381641031271555534350047640801749204930196397399577224746073685443358033664385548183151082882395373757959376431251583654327573031650198180680717450611364485924619977741815563024192026448335017459473528728222697651707313153781220979274139091259707632511181543842326338215385213194269349212342387216526642318296687611701239004491132942847296148652332894050454828507861602449762414272685801135654444130634582908836060924857955078197376666557272986120924016932382332484735992971758560554517591306990384729017145837737468864270598514747713550422481516822910070616812338035062687585197007326251320176734403897222330302183211080266358151919082825897404427090915807175102465847664869150329116316414643349661099127120418741625050468936569449424093490166557290307745720680842738648229174186327156073008781072281005557743009899739611027449979379960781922863892169065038184229289511976652611681414939102862427124326449562336259453066986867939358315466323824099314304134601194370483324028667167438543302135721488498846363948204560443232431501318226702430753489893290986405845210436533399410061154438279583415124392101295909579063476836662085944664554106030123517936357356299944192094092858815016299228680870263283685009503819429002884266930075412153472549260831953077598379899614446037731042923023580905204605795238199650862613282008443327230754077799278710459066794755372494243563965983396763072986158218899121884470319394208023005522437435661061047092924275117261787353985133576966676895984543170854596877164129601758162893872367513619607950639219858681329895251379761101070184906347644968379256552078342048850240487436338846077102811552832568835998832998438925102420288115092521191532826632877209574325728153161340093251170252999878214950435566347428810088437785842343706745192007128163579231775521845152522428754471614259186657235801959713687474951967513390768820177047241894132119929127495806079979132595060300287606884104104733414252488471082510786604726335450162366666756272302591619318659560977501539624116698127150752331584087617589865072522819749644041549069240580035135841884009845701976618578422759979857187052927506344930419625615095050109367179615385706389317987549238454978421722330165209760711435202047347465838795870538722446859587595815982879842481221197754826514541296543906402711369268384608368892580775004356944131062033411284734534028612098342755451932479777976731296274826304468666527287441784993963279804817006567997372686932266172197655568365723742330346228152440241446905627074506971120017551853105199762663061737888958152081809554413557375259661710131595422360662159573409068650747618792236749052065470854135064810515274997327184311707288941700845044231873880695515196244162898559091560112963216081632040065619132310009339440909790502374951672715274246505742908837400904192788902934999933821947519754069939033178473228789890565614833374884124673841584520511463068311626014498699386063338394990464323799389318555714784503844478955694653905976344777097914152843379250800450207898434919298577366447531945692678415252674567891227366063452540884762911373703708441906219948722706544006750912088059744006626361484974649378205113146817447888838754724927093215126129086708633082183288192785406930070770163743541439475258954635271893017846896098001002940208487643164635123155856210396311024403345209985913128722660993380293308084404074446006689171608569557826904711871855841883995051015929773839927250587189938164467542576000708573079410240309219315481868936309023028930824418318905389542539372691111049690728162513608367412075851934953265216593669300258294454797369354441901169648506128938490956645481163073151399170453559192180566275659320000682536233318947331095224119650889333167609944373028750206067261005002165399252219567978691568751955407495389578745190716753343700560028221103096359932318405105907609123399738856795434061861662679350560476163385074472166203671326668898394624774599436469130400547664578822445732704113007332750690684003280389676642197268278765374886537271452904371492960832420891812445970323357194712125105624279933734863016630273849111406457714546212661898760149126310582589801905867021898911811089560943920040404365864649236047054909030520948693998613945087386850448173162237314982759197958500941749027045027012173745132099794357434467270742505646318772551047239262874721781108436834731480036592811166040521545105663207073886467234210114398367050614057894837207926878607919959812265891276612995428207855513579024246327962380488018401988792970130460500430426374798340892620709529745538450890677047300835818826271433507269808584071986564549880634803923502195465612818638433932647480017228573864249369159675703455612053604725703299192125191354483020410568597178054771358801300431915410926438697121911238597580612383677974007307187276520204688761267898558449022448491614543511697521933256504499234949111755208006778649029332273408839309005164655608068065260304669374149949054492421219245368587319531174878800103347829794603625210154007939144547718289525635231287154319920904813883600422010583089117206639418261291304176803141632097530810146649666627614073125511430153756272031097228821121577949153593260899498192124753263810556941639315350386744318296732676933029992793947349466114913890381106603181723297879293507603284737182925266607788808115588614332864460745888666404569890478476626346528989653888381615014489676600159966460130162677172958945068259261913025240581196792610633700093167038474115556987948325699912984758819809508796931811422117258062041644803700204827537833597045114565242611653673369515935628734308039465676109384398538434620603448068095912433993329033674626805377106360757858742997015814146818238786119353620792802500827477204212517420639101088645038435581914801862392418900313327480740070727176982826123396493124892128731966442646541289594429864431424212648063992731486300537568753394662412155900019744542008624811615060876202913100402169070259785643913351387216482117226731057611618332139230550832155321198202920497449120610154641583771905494060481781631773128605431674850458835344218113188909563917171327819141083607358523238513395917101368985438222301505428106593428856550615784877923748276965136438113632254281858977082907917349997530266849301514116478726176949636796253762294878369377016318657324279039084371088074003037814722444788318178309876641174616335496210362443921778071746314900591905685734800153521667336441249676447976886570312501874789761670748578511023106222907575954227884688267326612245405263098501458359676057557186855674330518658141943858439370408405260690196630118245647942062135873666204623427847302368434599038692876352739567273905331179982642482639777795189203939819020362568296147172790700751041716795715974095850133019034731591114855801897107438186966168680634295867345900893802456448104910337669806809005633272783451791169335840883571206651537546020944857673192883899413967502235479991687276326281225385149706083498177022615458692672596146805777088342388215633060218436849336871165137188955556605087589619334434594945586348768645595901542626061468079014009388116530519870157668248381661822438125930565279546114195957136074311263895824922986956366642868808894639765106007484754248942334011622442015315088468148452492121901217915856357115314988137848622116488987132070088648824559636246784509999109780496409463936245898890714720655211186971980789976042296866279407341682190349439116156018860259550581208853385859332197092797568142355128274866644782422726460394428531551187312600458505298285661278174917676354125812760072369403904414880314192482255126617880403994429139534892812810516797130986827969391577357945623208650332701469344489516925412099925679421001716575451686887174194539124856510474841059371093276418598221572209630727232183227938826938489410032975156444982942948515673474718069892035992839597731115693150672966469417428089808711256594815661368938031771244436364796082290528238807602647657552295304984987878687403116220352328811972281052793691809237835445108025989948510481433554029608814768112008819222225175303618137294148777217869147692658068497628229074018325035337608461260449002809910615351717767746008942382235231599553746773006915743257901451546144197053987131947495593781663900894990304355020562867263872096136327038293865123103425843531495588968104623111143511037100303377552744034516636115610267653960838013289833886634323963023198452949949834718637936954779195197411831317715934103348995010363586234495536925037979058940056694197448022345053315570012785416772451484484545677875898744087586305735447292179032768169611585918931558789082059980448989860044831331221156271575576958456486968596691160205963555313652607011311217229768443145387826749216307574536407412597371021230668712517332860027600135564705180094000875774917699880109844758484464919697740340861840001375251406826437356560801002864543531498039983059906959580969831284450023268534470733836387433059052839684511807502858485932396996218041355605856445122488436372648378812174903760906853572958221772023807731385923175329391898982441853020452568774256659364447971706876837889060114317607433084236971463654235542234364444833080638470977576964286244436307626811613743769915244324356655492344105314453078219713279287955843750469757236547904671541871444792323598410052663227479263040930516337296952132409365597886360828543471579694026734878141248990959508209229033191142370423390798166295327958878537443411442949765729834083952053431790606958812517840344832685588598289434380111626908682283068397747886630367668309393851766549350932649455510861581695147208238569703691325540115661411917158828858964747217232631389864521163816873971913360122255163619463405771559484467479680586691244100863288750440609114595233547571049522208687113253049149434726954022093218610663591037513927258721679687453994850804976566825172525126268621343051781928765960025748197455428656144048455400025418750468889727724797156015401848428603050427138527001614588786084836154863987968849326718195791335604015699478489185587736330894331812611507908622386941451994214033376026270497576429495244116096528433538703733402184439387887440332724880922248473851132068575866608613589608700479247135709158115350045184861349650855467030651474869473223999020277083467459480745416557731336607174386906565251593078793257867000826003565658403208982566717753678445971663367682917164645940324973511306388999441248095713171141337521418441824071943262591411166199264963673500414680595027851444643891024553382076240578834480023230220772690873539955620804019064258679081081862287493639059005834477413388902397852168345064425218101404859849824282276195507983273621886214632642164029416659102091573828201415037530058116254411437348893414727153589478975717293664425027626399604142021590797462219859722000423094984746317304788893519608748487113287134600155664538687779488916413961860287614319135845262365411969814395461058508608871771786973242206168480852887266991782448093957384446279725213225028873844385665321973508063527547774995053674040019414670127142952781228773686437907873268270549594148919487348055289545846486416768518869482057638406055974787775571681296654345556692459944628025695346478209963263828123120130092087162687913282982523543366504178038312065437834128198636827945805818180956792143088587020788589384053705167921330722359982866105684674521705969037900259441374089623945637547655131712838981709125249927641216055461981812747022935032128344603308811306987376612334776860274959341444943840402253242909719415135106473577928679465017999991377096464206280638255388214758673606073983205488201116526723203076095503862691374152597388134038704560808037834775909204868948840825197738843574995081037916704392583405869821117713490346223664283385109458283045167553649232713175820483304002375936055509904727157539958969822847891806505067988670063269379370650783131670634447589253296538097503073739777581006150156689830503119674296342755501317479336253877204619197096620304571349022560019858707718665163521341619896087740123970595161093039019419750227703567279008116644508184747157212237081340295642572473637990832554605227390611545903568687228869477661356274515557137669738495583184290069420591999609440787419991032327886909848232973802058114334470156299534814386831430852766620395848556992715348820832345942596812947631691704399900617326490493868078840454812872621040706783701944677432473766886856240372953107250596870514035904028323310544036600988760239105844194741599384803095555880079060767118024588794924370114200836344667917063066189091229387850792656647057326474439993559219311257692719812552402611908187470210018048719812377508606730370658622031886006239746506371301559028179291265207530110029145996390310075122143333926865953275412323795052722096320549878323565197743957200182910615643815579296099301090620733569694632521001485124243674407325832932920649244455347618663658574153582216373755277550364375641562402389844836589604413196782419611872649118853680036473900833097392156681773477135192339587895131992584547136455998406832237402739328159184883591413787807263182644968875390787810516222143483723511877338098726436790577555530462030556683689301423391188127121453707099550327494313794112468259826299622121840313478821148749558485472563427069021121068060820432107073355240186862545883205263225480176561132117901966113391339991224140548753021261117845215810016616653088070438673113467204359362893132915023169218038067372195204271522616895284006310376150761353821457928411244430389954260345646865336929133719585412888492469573258679856177017897662683681900022633776459397773809442703449662260020737011569983264034401891844913477239064004485154930544398569667413428698971790851484571762218316175548141687257460367081895188359775407348247971757345423335440055570010181872084040762903432522467155968465522893790770918116147221186772027118639205314401423588571826626668373950085626763457258852243656968777299225706951200650376713159895905424096234567567313828517542033930080345511129279026293709747880363907521323292443605399861593101835146145691003513279552482316067107136211794870121240818106825831663566269451140372544079295627915453698161596457863132997951950453850632738856516415399594757863991769984721040853837160154049663381910541931880648842944338976289701839143669085051801991969217891658143871583878177313042929689017428463160665300829594268937295342667521957542790750338566229925984630089474586807312596942010493531712346485322222875796455934400924153056196890809408446785143058862482864140178514763113285898780694011846953646974503611938511808165761368366250044763709198509209995793320204740425917514905796626569724205195641851265821957413315480127857450739969142183445072548027559619878315849641483328252644035351662416970354988808405630755517577821651135251587052506595514226145993244715503091444312165279114799224084972802066291886974328266465558864760176314896054274635473696181931237882296039853848764286738883786211068207587185818812632190956393991899650815269580610866099137649271993877755088221921945182129277132225331256486967035775064379635516845355315123364332848424140630545069641760475948136815712006875514030937705595956512735887830610852139463965584291708566666073696503188538258315836450290732505989269349049001835794695368252113586480420063608034671453623458136028310285190052588909933869081198845256905564086546459342622816058851367256806415806643898494104792161584931513968777592152744558168791497075808815021981821524673641623898523585964745455454343195982684580813280023391514782150254218899238906078450486706712106097988269257027566023421265178160587042107243969302657780333130291133059078811334463975155979606057257697732905855089645943423672131356371023923869889245867901319871411193086738825754488621841568454496283379800707261304436061217308638444652496066524864535706958678008721930280893101490788890381782850760816542075793757275783581832892149037212674802360038580855531674992099784410937565350427708323982417735195270822949543189980182657324850149495111606236791395353015766863959075151045660361159713805178122388716566368398071158515054860148511967590834254215497432412737096731351826362870058846305675832844779414060871835498645584616680508594397575993303610738970257249163744153215493170401004876342850351911327338461473288006157483528421547168364769419898754341749538360561926465865526676250396806426513456972528154565918269854580693257726395451044925845263081898054673635544433380613968877400811487748121370135863245121148435238520104244069155276955316504670333512670302243263408594942509002866697679295772894643086770431243249093046061299827121087504509683143074275478150855866867142318286412695402623257776154458554436367111278328426832936424479254544033076108255890777533853845966738366253892399572738732061029443703525565571972068051453058202031878641662870133189289105137879768563861469373309405953998065448197711302248182639636304999658653607819226760368025530377721236653583176536264169963277460339257595291834910279046427297069316602113177201907818024977650052882890878512676866905275889534490748258310086615160259372763599529589890601920040884509494280197873486381592745083637651355435825558490534380651794121431192825348201630764871373299583795359738351891641409178627225579976390313994930085966456984063412252398306885227388008389363189496205538952122516154738655822050974309818917398446355025182107499602594310357114869702096766372184403455999017867893705483425015040694955550954542845942661903650341219579467491740942542684136472533858261488118641740624058039116827726203808879465116819246729673080501424057141654530520554085478400017309603115905650994301062165033097423538030265224298129889809143608091959803444535971814219850293980321407672392155129762903895003726090126815708152409706477787783955241670516439608118832427630226120975618231949460260694006844982191912031401156688437974538718797194076311093611956910139498941587206466581866346451538016919482143776256487569663200384932274455181519934884971263742401261824183420781064026441283517260785952670772888745613843289609775100891418668187330680526397962922346295778788610052725179660219959968360625132307800561417013491136589674483552556605166002475184796362790053292712203841296422712858568634171234360055367552898695971631800610146010343272265050222545823987399533768785051259322008919773795466626614285515489326609390957355630332902907926598187700142305505590755634804002150770640640043775724726914727009808584085055694596126730261676527402965208886479526455650138157610682085447763126941702231944883520845836846230895919480061678340071530660723384682571261373239862678822774808389516504088602925185628530222934867906167108074864604368888133181183763806657084360778532693268335568131842951907053994939761446556039846861014633419808001907973468913611836590132964216777175234386551401072278913616310850575808349239996466679092783165654596147528970285590094239202185613899919695036368312236590309032988961416020190828697774903955481193470901738886589763298623251091408515742297053956200549856539853650106191122495992788288419182070385336047381957421167289818025004128937568557596569895947209175866526324899240105968750613658516038963555385829801329284054037066854485032184743229609932561770970615492295200402334675971456070398822225623559073979106744212370540632445669722505814478170293975429158254261553542678962752842252322551336002958117477829253360170705305580954488157389036688432329679637683378645528734660248028006477146209396413143791947647790376454908358284630675412238096529750895545216418267729127365536436023248146319509913931875988519633693669245814167524918026084054254620979522547777733133085988631265635054963983161208145607763506156118752871419545380055774456653021932809880903110471460034046277580116377924368265119649010918864517586830377904810038749669476818891903713811445902137042289882746485018960205364035354672331419510662691692780278436813056323381231464085968677504036647470603747205869858007117800210418772611029393638171961880905616659203226435520502342917345141527567555570558995559110494212711241385341566266152873752767473340860833442622234971358773553786962946532415427571422415436699960282955772502613330170475191201309433553079218862777131704487180189068410881608061774621593862913447839719283522431589260491642299156802489830004965305919594064311486348511041804568454533368860453092182584195776898423931260479510617125296658894509689085466107768918224409357410876575969629903456095259154356527530883430540468417986910965875650473662840999286879178875609538350848870309840873978270680832403397231643827171331830357447674656654331697485399845678794554533174656971702620630382712980821704860341595966887079575989829992301633071980480284960162036601844199331886118745606039484950041796243798697811728128186289292073253066175610617548134684139950122449650366519684987530820530880805501665258447769378447937036446143521092550364434295274932620776269559597167901463106342365595286064479880344150393394950124996667811234746667580164124214672104655075416236712520430133032929665560545472814622110467205004553829324247894076468199237035035108843774604440336885103689429837135930438813687612822248024431570035215353305047854786123815788031214821072178809247945565341673103126970103781764943789441115298467697562954923548296218591881422525703313209676416105949846494186576002713345207662276863610642562066687708970962390444893978469335207726212668534070832041514391563878890998981578664621746834450530107133511943223209854094925017709258567392310421681610699061528209481505188994846068439050502347422490517182403695761562397895602049517782657058481026550808212693984589960676024965614000496485103554414390146694962073904379629497301424700415671056941337634920266460973166843473876150795011985602403338526785462461970371297276122463601707206910674120279803322551107127640325378138796059008417953473135691009109348321644444290056253622452446233284194253366653992292379168033774392032285991239168681105814634185970645559232168887537764520354260146869964681335756594896375577898593346813000111570821231099420651998409296469743964535336444132952025878496334459958493935387108766656460521164926035330387519340019330575648920167110856047875305584851715419209477024019872212037796669938286514778033116822731671785840851401506883556167856627564150882171352353471840020304171418759718067195509128129253840031774030183752861442060677488994343275264236668107406600372980875799836383794692135845083924989489556323727681446325405734817218557194524400262871131726426300179346495619908880571746530078222721946162653617427184085045288106941354159889201173810886539346905943835403896056275089829796828949723220564591731968914683508863318684874249236047032551931076255846688332735454637364495449743575772539430784094416324739665190016723420942141288301247234287561972871836951529860147247477553624537898987052600452666043206138714488200752545829979344063634382352203464113142286635954455063984138772883306233133395767639595436189945829163732470828759314468765021246388117323574862322107979717420358698219321924117687875074589029368630425569122532694855011273670225889783122876669816885991576110654893042929006589264015286229111738076747369236622410240979213300334942040823636045124223249760093260034580059438135609446726770200289316573972309550450888292337599207830032994474978825327114691299866382713120432115003098097465998407978452297625057565423322205132091258845978402081320493146851208052453967137011211861543609032481296938536345300758624720389058698217180150536708315536463275043525756301173645299158029608025387517107556233523812606453733753094870443698600501241276050641703603241921273437115542051024627595997253801001668154621192546657534451248841471779572895207429123879958265501866372108421758778567611433584062173094338328908659386988119399043207288840412260966267150070062991815813301454505191853944762315329568334432329670146303583043859621210547800738288507344856788643898513496620552724283954021378718459795258301118836980110924414161419467443902493104532189052925468926426722448993738405238434099952883379296098007331190751211779783549229564545556755957211547423819013813604905299775370026259583772273812389317959793893343382721029802083006354043410777506304162814574686091024518345689199914465555005285451617068912955747150892215936033249709241435841756601885261727385480739314581615323938009160200573045541210982866833899451019524635226185640116416446225787762067844884809466074629653830825065567543623998750916125627657355525758143513962480375050977850424124994318473886890310736146058032964052894997449133196284589618945504512093103559037713374198267125121514312718071256834144399304414878919065701859400355217900971523359671535386022328300507262023707613140333206861124383864336178727311892092792376453597503205025699167457443277977984889567164659590195220781739860995856311509762215456943666850263904255166061889635596961418820594514685615414994550679442999346131671688662701758712145578991052441446234377864888284799966609619788880422955411830842936274113646381314776831977137525946290558846116485007801472958059959140477823703868988184312244566437869091456345831174065033454529173080603394537459119810937998922128497575087792231339340159421945898115044345438673424416776721926547650620775533520436720370224885736708299300388426757090428917235510968375769320392210895374522865472505765252798755067116628788561901006593104632602054713953863572399304548588270841249269065747097845265644985696038957479538952711112957136140227359283088333256503926066205514053734927483849188171116090576759414288236266743060901816657218242194345072453305995138883362894376847212745569119061044590538019172920213564160857216161753151893122809699797562322345548234729785499820588581120682882415726313938708002933127476947170823191421561008612439717897627387592277697939128768733877306878392123863391333663761905885435924048689523220924728747752171800780298963534945788855974244990731744928333541111101366332441278211121921287042955321429666039947588373743701636519546096047642782107947177618079788906635405109431539043267948563359568956679484647343876586547757818395806139309686426647264496285109227996926180601052493789600867962053659211141035262785566778143004709266747463909245331756805139434130633868764025841804772525257592964826855729137075621169688572998005071087514118601107220914269478345597031518807249084621362073662035588380305621240909627180641721694484903986514370153225851129960080862327763645268012565005934560831977909615751891610779374031069491386445128427031971557540312985740439638568431464633012178951803491627604855772894525210166126502043093154320641138010647324314620918567049809749878531268335112911042569679654241570248413276798510860078384489397072261187353994898203627365198267824705146919475289294504945157005553938080795142333676043819089602317877186452977844021346247640783311205449647117210072456495691974353575177313853027783530578774091894598770988791489733816728869800161863370113964974050726299594925319028676855716938933130319490676395154769986658620190928373250647804140866699127434693735367779317921379883440828198116780924912891732102866488405651423387043043314272208384236792034961057836541682680509303409038344779044020261707362234367833703348658573080945886783810253270818441909323556416909254791205603650864401729568758488214331242709742613003202956429527818511487357298229206726271321255846314173334479037171370503501435889112514678051230448587653096641988215969999460851930988591695606139319198620292807609383775379083262992572826265216421701573447043020810828425345577773178318843632982509947008625492364472971696458236783989334760811273003718876084698466346838218324835870300579644267354237051490895992691574176419905612296638620945645143189645317372315416288757462440220474041133779070837185974746801594874365347135025091604935562385156725966468462071568747693849884602943828876726767544609938982930340899755504649274028819780595046887023088961707731581106700130469227464372894210707475679548324972263089979556426989511882792431619843183885081116004590461770895521813605293213378722697406747069722480502312964707279895231833396214434731305339357526367397486726203285991649324579665493481171184441842351863853368019853280225751519687872993520546449534884988157710315129042220068352696597121518704463963349771366470498776721054002096533057207440841668659820011117492379632097562915317070564049271089204137258241254686609463926989158703845176699572934849269493289697394158460591696952240308752597320876266850971692593866937985868337637886320120612264204927755822971607310731720456477313034656129856611744644416033240008217812188922392396218897787469615698721780582117787070353925985582288231186641246505161061406798457018093551698055797357400856619006142826518699986731361602846537803591523963304514324848375311350974502979499512414045064637144698869985913752106355262050902854757739200569523510321570639034483840400185656905974625165737318985445436102791293436292120313645434081026092741907095867312356100696848897495965740603316232676034247918111741895398379304636184626339655274069396955030955996072409095320119457969408303137166882750894225709383332456410733483183772330804362323686808792846171553688880981276894240792342602874819099947341303972942062970546883685821817139391646601020600303456772959350144982313106614883902906729964086412605682321951820302875998985199869157822087339785847359965705367109446200416358278390561359662677350738885702694059924215240547483022809770067129140524161968647895309192158757606495696586647123988567758401107313419212003608005591638208572081913115814455860895517499912388128350051776104235922659496026021333456146625060761490869263173734082040852573373515326153058601011136457474049316151466932691526613449467090995624463261360319264421420698489454684849769651493167939784351871584029652412665459873540170806456953163975980463767762567337872083936215500624722234099304999147239851472886097012842046197945011744529369231409470050363880638583609231299277503086109266814689222404726643503284392429300510360962895846148330831666733048592801770316597503078121432209374859959158530280421293417610669965265087525906205153335972271307592182825121552607226128686521134957381025348524958813721569219704457867310980958461948369014846801642426115223113616857667988084768367911265749665249059055715415865974830247044106824582803128442037685032770319790120650403725571233846583967065474749383823140625394861683189843777934566713913121662809210677802031559623860685748224446248859496586263141803020844058799763376792823505364000000941037040102368328275256229591291229270628363001986622787921079279728784934281311129395559458477266817718852487423525912918070435925136450169200787439285760396360604160505605721444870719274117359111505215066810249776667265328681159396563482171768209826758450405543194700691119889771621806211342127271741764052276482120028228782398249413166783504723131064752923200174034752254742262179065893675143705914310368880784611276338930753487053710490435438439528153900307408888048367186034019575158186315898044246415840793538053273667813506311871204856715175799252014819458423133178483180632449255596174752131838426079281307320614808331497837742185908293042788572380920318708583542842676078728728085188326850018916696449309368941452084475176022458108807065742353085294519511195900999292852109850499134056281557926369528809941885172647271162642421547131544033803589911267719494958711723053118768846037095706304538063524144620532570545218529930595127870464581468378017973126045836054251625316189663789410091126298706020717541506192066105010764884842022971550343839933597932133731627410181211914937766316013548301420169546727527958413804407391302040079558592234585627000525032494525431669670511574223753351813722861140331311002557920809139919297019362023876645261918263353028158018912860117912167684348995687369175476424510944762178106163756655128265088992545169696872738370033533435691937472123511211785598006111025343383232392350601968931677705551536989385368112767655273816503920414211583208578192522735860921647896256750601611401870758225201354504373088228111771865876512493917406821846786812888770843140955243604125996506367991212208143641035416421884955168838459231397642193308326101873285450917290093971977380440161455277319224342559995857801627417115594372933863887906125721668193031106936671683427976079249057098063433890903536837185912566589101691377847947204526999285379238227526192434145706387735237119736672609573733618272361848474526644345870278315540779022600426990629872184686753372399335305253608606129406832782962972297830830193860139511105078490054812556888053982465926392166633708889636644923049666662094127029722194251261938322069460621095681614083875756400323525462794576308754434907848428198791300316191580737800979948358090844753394623863872491980894514765354044169275749360102655301390457002940457325314325780623745545910012902153606534760709659068906364221240283193438250741010033295939401421008443942971682428804751038475135813872967156776878211927046304052980295065276270910518769956840476980828929498677793910498084728091292065873050084639797014451320774255353696261277531859437263386669350375146510564737619186930700972474125294082809544409625028474253711403360361786646031532068073136292878444088974944289926391015236129693779739218001589511277250923608961201083268994219988632649585483055964050613346813741037088346391085101924829210096541715622092143223702850582640973809935782904994175994141261998368098462599041729376671277283379076383105599018840970221789699048038175306692420801521792781160441858264189867118955882109263406028516399676988654003243989654156669518022658745095415797293756248894904467505310817077064452130860012352496830681768448540519110521141674127024142329226116800301611335162679823105234999488363103950365280591263726102948986219657397853807593179165291547468673777143265228390478240160359409975497792576313674432346653734727993162392017402885672426587578786036409122401019027376194244453304982015113690710762229720078356218068359261087790747965233010202766557654984399635434994534297363145689677720723077420205354902361028442897264367272286645407011482024130597166932493178106665150586659933351782809546739019642917479842000801416180157773590704090033084153479117934121466500136721862124621914654587072233480309741928427672588534865883417559019331791921588815403139009208362290830571338873759542226932133218928576702585032846454606578170152238223153055336719924969964375693681398430267086953451527823584958428153857849809474471814040909190617528715475672045192882819636201906218334711764956263135820551464383268955156684209854272248036411150730452766973509922448363265372067531344163526914471621990252131354287492078919625161996064962477050162403003471102031657682442822549035698393229438230403618226041084332964569333760927951836273304218638740014207591706772063293623444232320955382758494654833081786956059169672059586924443042097602091942057118191111420128204364254043755219368031026987495242023461967745950380125511115018956580711912601822375401247492107953020638611554143093476502321840715244392767923022150599144668065941912509630088530926983142816899555891542200993739290884770793490670389544934736532479368731798551017266167656887837324600372696494558966207753935343745577770285574747092369234136728405541631994164557113232895152931675576440100188390117431781688785291981960715150449068300631655640216940344145037810561797215676648845412392776348442127807752710749803953825043209362527151586482982340184315720778898661621540889808733427206079165339295998215091428740024242193319201056916560643418281921314959595960992290165982854243659942177215082673833362277734228210341348613126058313357847126488972270367023234133628476498429945432041580209855817694199517364840881974915713611635074781509652311180987897635633622913322101762213126248794255822283251472079635704537680786425696691140453522248818813604436884447075175096843979351714820932608254851300842177335194809751117808161981138442423992482865524323519752778981552594460993208558344537072625948028769518186658550896465163391400721041947835161984817035980156638980546122594911135691510061863009955603000237625053961746421676002525300269070862012597631476049278792050293897228021763841054563927261305230758202434559711051540353985915042750652237362614445694831928240457948764333688903452648453655242542994230286756901548749349784922348262717074840298863965794428434019873494441930330543291709713450272800610418061107977422302739164466366571994057583398253542904678726508810306062477419924738740195665640222762669506041139079691517489866104467443048142985547867540987349656434541471586590435808567236818960471593604535418961783024935914995490601503382820639734812206514066652276079930744833501213050790518270074867843632421816068731597807266985400672096203601063304644894627386993752413160238801203306675704578806948172636826583300808802169360531208787802406959252641245114263076820677691832799049182750487626559638647046415669962581969735156724728452974668231674776600847771488401368397251376361468309538368172079712406483591846606308410107934056832752793573622152788606258682832956338552449177123710914680679977311440405141883920060685276193869839819387628047418607509400330980160453689140713240328174099500758356541665504214855236419939269920357533807871778367054755356582207002216039284091051685481009373972956186931251070240993856119052960694224864510727214366776063383773545809753170022086425573663966089688132348513878278036490553891393450919123719850312327393380848345847464634554478895598521933344176713496877269179628073713764863260578907912239172153089538701779808771523678916278790255986864105549277886853774574322127863996759329763018096818387767926125184284040410458970979927066140039552090593069341315767384408091995442034336406396772886042591775154444004146980090072000974487470875817833403199243781746235593470615050458933293168416788462329768209823721335728182653676273456018087911145254721127946465802357842156371519112317244481115003038797309398874706858493586087904928668093293755047840814863557127707691555318885154018001763188667827732488684759389484824641105826259658936322711515550828475121515825026832312362035537681860924572667958183615512418355677398815257893067192494179005194953450209393550526033121754123297051713513730150963195237700295691575392155049395180464919276758882012730100732091045242964221485977585904336286504461258944608286879176109861153295600787934057527658992664278196200090338055746096787443920876673314152222847537407368789986850476389378112244944394657954233423837219136932209289316955954817898581285223069300215383016360066573227127964124235946463395219461586838499558687931151874197039233688556392549036585987230476823789970997512218556860094643981079622717909389367066048841680547860375491982075850911695961433070445676629646398604688541409351032293017536911497341702421503971299891227349420237474894758505227317432287660643999313344775859825347749439450422528501411735681830712764258315780375390929481929906037974715666147656431517525073854007158903305561607454130864970266938462195763683444209395534713781028938781754388699434475378616267339312067084232980085368686043965282082487956364983261292833499022844845644351544144325106619578617639396712720013171431234053660662658702265421565065478062533401063153525439731855735981952321029743348023648390105455759821302332100830343061240000656704232136532416849143684027823296613380373587122200688167596867442126495540278344219145977860631410284277336235249800014415431508027569963983752821867021243790246577432140867320318998848633636556474646040234195835689767583982324169675425052873766794218070244516463394952109985248579036204602641833317673416749604616559192248105957025290938680841099483896089511880501600293324358866448098309302208607110418647381356202908777478652167031395659991533426602867527829481683310194245336451230016690958093749909242729429504377696601056038262554821445470481588458703435595087149560425612881301182643357764344035845340818211611398851696948750808955873798979649591074333849772284442089736400718005120721271430019459162305477695700896754149153763611992558576991591476585494945346740974102130306751398034422187419680938615619866665643378799453488527257610335424498812190013068887745788733881285548175291457867045484168762803302998296232573006763242084338246112568590184307827795563998545254388420946893023012056346758722243727976850969783918948936160743845582814951616821982224679599835457093155558310463729903124893483285801931339878679729262631077251002820159043588566392171103854593976186134190711795520020585217471379005204048412082300587253776512915923016680214971311743251419186771093339582364777637419384860630485896184452448159451900692773061513715905230693302165926597388405787382779846552251756056681481562576878628096651662176162055737779680060929687619448206098171962084379307533484190829064901947866414785523496425044372015736195673366615920861321995623160377201550915702125855003616464950475843162264704196422728012628497393994864809509654359404207838413627899735538515203356613047567361039352130725538546275746661007480604371660352828073256985449357418755015699834442419461668165267317002196003149680531681421168216485311552905198570144043608200286745449339281985901045456345346784540991020078543810471134514449861918295307991868039395520011847893972431110836889514243631196494597209169089092221324360881551732949557719411222170289516255225292900630820340328825307985052579116925509105722937618553224973486967099309075356062314823464717923111078113314887075234234969400834208172755116083683845504737727041166726923396726294216882178575752656240549648273657670037457861831128324223958089742270223435326074338035586390769410357945444449118673549610915262347770224046502594377031597826477198854046004002576469182707107283725967126164230238687916949963672247302592579827823375198040058555298735136335996021834692599085765021574399689681284279861716931538092560108955635457459447231780260934659705727179145993208680825307226737975932220193176174492325919172335701439086254611932774575466251116822701567484783091364083094778179579029819236569550839784202869840221638471877374311756093476517359440244957259683084953830879415849205256981135048011418472234562413481572781335091124760000898769026228254539913492006145001735764992856759159922682356460252590464987533331143464124962126053729289770558788782363522085385655719891705170853387487271015787818480610765449442448263311747726424712144939723188741492341668864088375923371482277252955216213794365045740743737322788497274450374250988099878943008372352796316634546298290476778666738825651443966756478565437210874262377787915202637941690668155114218451550559947795379179995671662607476147609161803081270089323520671920990963092812276284221026932385209542636913190474938751079704683936720255496657251080041825120105317993938207104468222436570192255876697396868294334851053703511870510276411046559279952549348599502155052030114223700418816147822167318430727200871101751309695751273334177072851494702640656423742505897018204123731702019480576918636236624389712220311115802434917704995005633774830025717450397957473882042232894665077998779556102351129066458712524388021086612975017090996146126731292096816833945369889379242558175707254154189372139958091374800284919053465711559236817545669200923132910638586731910747469212331473284070908590020486305266494036919836666163613833773145125259276067192126073651315151860632539646556382418527646354425681906830377407616085471473480721567128612230520002324028933841525369521566948360418413377864919142167796036083045894341337976915559262101262433850734051356797649377796760750976980296413211817776574232361318526008886190348977969537687399019200720857274397933529853978615989825600703338346892414714316572407480057972478388182629806256161403109384978822213780128413775454636316032435269507571458669930190031855133734747480884742340331694191849098054933302558020863213781528876774555154824480430977722796942972172428091079689646670343010521093195945359390374126502583155533207428870375617215913965982634989069765179996684986260981246281896142041801470541386697098126269828048772917795081315930484067832646249398742207733427073833483521564230987953962487192588281964534543012518965176484883155352454642399173110767189890182450194700656496653203392074371316582555531627442450922380456243122203665383322844243387222072515207068224661874938203288878357064665610626471840642974945274401432036017454118620616522678487160341769098508868029747313332164059104816329131722680812526801130388203551147870142106359822424823265259814697431946741645005716044492742806319488181632179982152727680309436680221523959152388428496268668218396005745779089058742813054296726652673610723990166008577994507299553753215285862626324720261781500230431648283943651452167676653820236482022586244316693134424317132961867511171708677826942978289745381456803799631440778057880990802818978632309920074837397816015793054335651584065099253753627801781677900623922333481859811232623404873885055272889469194804887546946097046487718250874991818609192028770464142209851482904334944420872167757851055595972844882850429077319302877927799396986368872911954894576660339138133597994387291586355426865594734012849406198969715435391503029535185953198638946950178194385804985187156358781755064341192499526638772279666307421802422138511359997147592429455418688151518082505786946592736829244822109355280233916765961537779238592878481132273214548162619388371023245570045765752727500723611211431463467112197300122358436890824110516737430800082096349680762257464359066314964431014816239618073608963776488886434112180253314990499651398444907573193289323618266869534302620025198622369963156958857939595189462310654891802296411186888228532825231767226700041029238814596635694999468275893909247373352499802605491677549712322293236486547926829591428688933257067514988510536439135366974693750925740157636240556726342053596121844325757470517201718110398494629607737707207020098646539894080040016052332247426986800462019361701781699253444857665876869495521647636526290696501272458061674288815928017648051494317583961274543883485822548772829346112554404355488331043558041200825795428946671891116985417675704615423667071321743844301568733409303395994934884214883709422847633437759892411907923880280885992267642984801115480022373802582751520826916562165746429697745616436051693597498722990258749671735569836493046476452605942748894507296189146112891135580688470063379843247882812822864776916387321246384031701781764914526770050014813797454627281472527872925960092466936862315881630631647582858934997929857770428049930062587818368734776827257745954632790549717829131001869547468521587464403350623194846377431964146181319169552240847870534021666294470724016259771608884760610120459056342552330747038678377530904850347648891911597540895151516878673848622904643740690837031805396768574121373264882524591072907338520178270692487600888668736316348029907949942798829897435192703480972767712403661050877808285826202651212402203811473703824008089468600655567954486685855827900246361785096150840427797903937058472237916315553040613331926446305002066956464925480427392732138892451109541845781395784514956883245608451601827770683795684334639590972493343426723546669499664138671419142512979859372760164427925736523625418642031388065479117570361167310901355518423010859623497104716262795008471610330615920386767695890999538186338360763763287459875008561378181624734810828913676816854305908730827520518983423466701811798190126733498122154721142020261346757629131286102414628050070589335343939234709787668657728262213356469308346653937537640937988126873239144121712227479667444553660194885228874413493876274469822171626023444835600160049508112407258489339560460467717629675447121878720716017971627784482249402923272025228408069931543606457948219310694102685102697471310629723031330057005098492173369549784608200452387161416714675984112305936687804855777166852458568733832060532709294200895623180099373427670269049677334945065926318779935462994394267006654342945785492915967387044279920418964158976826342298655042237947037533615142864342368316450007244519092475910968618012089722243464221841427016756334845228391798184342635676019246359758276834112205920332173908617414724574496886083832357873567168002483869061592153858825046488084209012700127274274707887795457978973204840911747680242933468590008927452813080578954137627728152189333106228592567400060552432207573009709303500440253573963680182476742365425015035378221231829224030097010754238028248390106149982196160844761463193293072787102690058548888081952423574296106463365198261074221374172967917002971964577999256157206246695958466753870504738958444360343083174008617090146677132557885046714782032289904682440341331879491110845487612803149908668435853368186615765584747906874355268246073252639182250480803695310280191420302406477606861941506428221988035902072068855488104079167467366400732732862017790580144429455448253704846043075333652230006771048910577576461535575621700935792850405140211242871980559480339620517998544980804233988576147009417740022492565528195439438877748162519621400014309478347132481685178158966883948834531634398328554941538104538416427868506240835888955609430057873684665722748599343846359906688921283639021970134437477447984038553116735304693261772514425287308656918504656250858005209339959399639326858187707319922624567470888473023019312985974134975654476888807499372962728422209372301123940763249164821292140925462734426254391730526337865088600192472068382170185835334483352522163373176900331311368634228780773954936002812048537658952325650892400602607362030005052834329625710368183335464486042880449322165691819859265305691740005930021725113959633384007549878515032758495497776606059382536938743309475457660864485385492858399574455881226304133304303780272567817699872937346566927361478439703857622631800841191934933093968793100927578493819504980600254301747826025743387563439038290794926922544317407956908309102013933188646942018334641199410223497677675577338210608197163929407392668376213445254138375312685261486357278423835181921126197791497577913444061894743174976927926456135724448647100862467352166550622278272283534541094088373817599520266449755958212374821124917468207321385440338206908637385517448873959977506730768272697624292444075917900003262480838682038694060207208480026484360196670497892881214332944082060454891449269442788136589053855533162016331132973092651838355883453335392301302794402069965131275856522661111872528538501060427699235521039339675058866524536771466085625203202778551353415310328677372356198910657122441617851417232753536849393207872660861792538047178621323154358971327194117214112577665367671773119509593981295148248718093867124630410501503458625990099259544945880007467805726800496584584130652293776097826076819135976101051514362770305389849860969605568741736684419202514450946170419278851710263304688284237184128700195494981859324090218228647084998831840270849968898456622031954757883320930198019974966554787078162211312479332218013889837364604315454449961883751192268081744535226413933751654037096419295861632261725353186467817626504996650991408582341811913649769236751290585919014786544135229390735006429668880815927991510678834996906430632532363554764920163123936481346987799976573475861366418501451536580954096212281451289597114425684402726958484840225349685319600454390729075416956439309746435326653843599425400640157531672501807416023009789243940756232093020059100302252486649002800337669072309372749802402610770480280676338115978300170749310618087781419538651143373927380868663918096239299926260642347125031455217720116233229942798544325629286553329174102143920840684542989149383024399060078069081500093130532004561992530111863492742602181207109484414549654814199861474806338129290726880489010312815577393460418626694046535983961988708092714914407013527860775158452117128991048377953184923633952242480879009314085610512701151596098092824468482412964975025518983715924626055136283520792740251692504048481271582601843815324637146638450795545205796639231491378704866634828302633327977508552976164623686527578040143471027417502564204465242804310436324811106173571914260093319120942187578233808979518141608397152562905307286967126516805909320337175671752165023565488414012750563330239585430086428515422309582993334276789701498924587389549746764736009912543708689173537300756294763162155910134037749237526599790898041403358260936050319087822859632610777506211263589539883422609943720731909710136379332910689984308486293572931400229546493142013156397570651353893831257539326114083666773038046927583458339501009214804582672420360732046941410809110760953331889535418242424143000937877252933671684757790749160739038112846399962836887275639466640591379696545643555899495705154651840446877399045634206940328112021125813936523226947589129479771842450335774837212252231877476249860473298610103453364828348633672340870645230666051613890640547195648755861605679511813508470032111727223527332844193548112136566964410472166703379066978506459110658032555936753271216940911897206039232484463459139789463130580365216217022047324435625358329558835169572674469828739341257170060329683286519396250920290020334606794759094815049020775981340024568884487838457480194385800250885652762184474747757998940310020272766295357813859939093503800885633902165620807869330110287947725071422911041809819768164134430667966663733885040641375060369743419767676617911786428730931314827506191181844355925465142492606328949542453313879213243514574508622963168741340326478422962872464371843628676913873278279830460595278976009209272900512143877865158780148553641213749913546935293171125134527681731894007458299718836004946743763733102151730728899783208156866970439886208550025133210271437298999301595675380850362313327623990467538725508616404326829490306560346685191401571282029986538299950750479605076473192202386833212514383383258887158303572189304169117993974436538445175160020472869134640580871208577741358505721114773967983434873976292953217898500267914359040211695140600371520790333325694548805328426538323388824288957368822273019455313581921050178539264818187030889040121293877067178950802560266791736733186194283269045262274402772513242000290853945589966361513591360067770254293870071457706091194061320838868521641797910668879577318354992538811743934665923206472939581102256618765451235081645087289673340929354861223175509037262485696895394768367171767286161353873568767623812414770508372590725028795421781038765011028101699922190732012140526512018034191326635492808853148574249413524261806684446237336284501075190317159519137184251849822721580270103814059035084156251581537873957827784826715180153541163923358597297620546534547665723965443120514268817588818842281110838666387564552516520226899120825179267372907200048562075335809335708254634626057409384301560310737748698056727105457474036181755385132828492386478373164748924303530390875347855286947975033853648274576931380046525654007325332351976653136970585697685120172328826476286432984066677817274417496118598216991524106731473017005827700439423841382519047932618633178495625837214581433359322508145594499877314392126409285793348970275720769005940356167608507793607608189139144132347424509605143442252499401663408740073343707373056602280591351253521886438252900470435112674046857248956048690848424216687313855450604693740524920521726517426309381973145205622868824121281898211106695444573311380508934502821509707101135087142954360660215067176879020338415108516454958820598702640834915052025472515544631498147131511797939817259519263092172471278791240360134994543255275814299443176434418743069199911287762829294526356884819143460161316320244845833910265655717768168084729139899121932976520029960239776830259322858534066115365010713467192661828098392440650406937340320958496060179961446850586362023593267275780270333754743659551193866607134486499567997344560706033880726445219093470358336350999960790015536256771742729652092827090537125785099194327839333505825961989568665994154768729626718585354367477924638855191372700937275038022584124948092496436079988493365747257674428789089511234464912822554315890286151368335971750022416866198240064963736100329377125870987745161149212870551184171626360291912690871287903526933364619506748040679428947536099634181546093244945338290025216542286193697717283929884634273250074922487070626722398244535700365089167154705047730423912182864240726828879965025837994816585956153833278846297536513564428047297544499741005894806140767133787819604417764179234975919563196126121629997252760824071428880208116688588790813271288030777189210486568133054542512098368861372645899564150570993657503654761901958961348449040236041213099669772768897242182300848852274138963667675851420335545343643132429534973113921883551112915972285971186548212630857848656677930719603907816236258032636553686363179238617785620102144946578078690909496799516007700613795315608588388870198162753724650542705097097943202511063686269879889556242775421343631681835436031227570814747831837125278329989954328725040598656466487380337269024448069330060247474730014882392456517236370153296579252990484071198019405087952291735230398276500036043232491975542900159546662360447893931208565137758015912347502806722229544619663542568162937777002425011476715909228062198793798692390698904130849680056524062222865132089033881627206804771943740807737541161516169018780842543729140985426398919184852566063853890784875394173462257604705789212489620065806169690425442682350218572926958132252592650161206092375811191318035201657676164859664639560142568597628746808482150347899060062427827610723874345576044704192216346348128298481810494887320243650973895059855002801584936458872697012187067580787493317329541314318798992151396498639042082391770370137168437839040825063422900707043169128316428192084400459530101060162234475172196571998957351817025187353904359858523882549052170667648585732804127253091860821238676042675060123316206655240438046826905029698585843020888621199174076547921736251314147386409349111086036970807236120181767272663495766868496376095059549907315197976863847119557848698681449995952185548699997653556722302461992562121347964065927283611471792741374681497030300618252588079140589749912337013282826785705274715871863027544256922948322158564283636338106397494380770905979672418949500867122876724597855974324241137856362715576626673070675578645210102134203302783425374444642967915871435288170328500585298627639730171816628480327531957762698013259540939014943917295491461935465453309464365329436465062562242036849798269551804898644822864270349412570223061884687878584402680295511905245181150187310797067894418389554627502081551569707879436975192501853872375299782124689150010269674805674306910093275133985505551860696135377330458794643926276989441642188836257913792924633318358366267404718621669676438146077239618209426955916898638012938067207934331491236653668881520254334087087209388750687998147196171105736543972155595044791228609865398067682652281146237706372592777609095047081835876357126960475313745550203044037113986772533857388634787668184911045445711798022502565415104703046298042918304280534936606557461163281977409569698782136709307151723429937159624109302033258747585918069331579217378019526154454899626137565100669845484648646500904352354153306791294147120987211476056288068321025153579865674303619638603627048764338492291505624039791428577946374849326453066870455813714240784100949517916943376217196804250148298147175490808395694755613011941811831076271005503705697456066661855841704374762899911424043945046155298046274622524263560037604406521314166508857904679094270343759134947071529987047298100627462178510760921102457270345146232262254977027505816221118239286521970138507419982846754934225324309069091854280505217143361554538628110809327149459242360702131613071061138701132985451814355833052058100597727873871315437455939360295786558996568724233326550225884273802011791459166939435658638475810903691428097835459382234071376093886402553335403997177401544310023425562838549411819248008685749367262539606700306847069484446571694377435627221977915512177544740145474846102338879733135388666047141278594644537026924619305988965957897780944925934003846935767866958153528299950933860385405783050276724699408782458354980366241860629719775763257936769666224699498597503797038276798557042862139325996989376840268552712834258991387165012413868253160290364311186304839777286340117470421480822149475590939566049514006235821025948090826316252704640613385855662889353658808457081781951120753930254321055009282756104769894094444066815475940380226105700488440674220232737916480515551975350945526371388308087701044917316499890574391490375924985468035607546743416086583165909529121163662264274933820166536369053046918805552776471436626586190790778138108375042080154385015482197281298157163162309439252740263608089490507729930592999562975334925762633279012371202962941987460788827255047354065273326672949786326872717216433619556263388984138431771316807051759530573725389183883456320251571057165352213887237437271148901838797787221475444217922570094227415770123899480427568545256452830455719137896300939870375824673108427387619857229657671913624871954314253070252948948337297633270091697966645337070938899360925739968672569701756551402361957713733638263868587694062586216004280857327790774510079071840677721639701012557335576397252980769067668412833915667798694072160550990173736503086955669735636565796797950622388701534885448608336500790218693542097444311988206066560111265799197923817030002973547665785421987398663772531576419597804432106627024929905425665311274649494693653074253710246025701132564238369673920041545169974724065432120155206241294106803252278534176719980597065205513988279509996817489534727604218034170087470154463389552688870970979632186693615049762125329470542471713700321174584421371592528988491531576051814074197611899136044866506272034608803673687397065249021947031792524914819184560161859208139928474456587961018874164180767259657895829664580483788710898800725548014550600869732727887935436453043859486122204741587476647062791700849663316877449711386923290720892243342265240650076163046317255799688419715096012283546957279547473960217435858196175241821736446497441851111346623975171847039232694585565510214842906532859242595075923129305404423128056414984694223211423114541984985352022223272828841919809289221779663581250097248477466869424197552296887602634336529469029154713528777414728140344138750182359037950924481784715054168472104667810296153373126472236811031772003790776589405663831512365956863060327412141880510509704786940302418856000055096039625523403265426952714240959361667946480178088040773975422296555719733782029578330197342283740892131745983668846237963492817383980753462438657525511509613055613056916486746078671566190735404047086965016875795826099911067459556018508406641288501851202895985039786092184274437642172957752565107031978878658792062819663380286388262665354726134651309281121419980278175752734405909848481274273674171703946346827903700078016678190936315446893035976648584080774297848322428301277238154978046034583546325668712655459403443467672688070645557261329838232254579335997813643411668705210525024641149941233086574411672755883552823592416367484930251808919514706748296562261994417702861585890866065116921624247058416212987949177538941178629637978524326047070365918196209246413061419584280077810710201338754407567453198519322071844155756610152983181782383282134411975537010733057427866814452897728056746120028609299450460772491363682992611343244217974972000531594044648582598393779448997482546998378532555900543965889218710545257044543699900746261231923407359243154383735204599100967912953567454231404589406898722638435523133004030010276730825624012085054399884539435221519688574446747614827386321932621927682983567292473704166160151993351492850537419367734104547436898994272795656998202582811407544920219161212701864498224563983169303136982219368524113435733437183306657523596948718032020288622859357940440745639364077595826164882265653180638799762045602396905039026172763508271147154595089489194532350399577654066853903945587320729466821180422247677076842177333096781596923285426983393396552363142440096909162084436302695436499194611553010743635848096174914532184008504344571166091962912871025254640589684804975723591796661841741211096369036951481806074318232293375985365935448993978769567280973396456492897173722175298619687552946478248451562771102278294577599148385920855735242613313817135593727750606991243737535331450545482502365997447508885033700821490900009769662017454604311791600265121931183420132852356750630276919170976267922760932629071836546958120298990543006623615277982025523104953774831751091518517695685966216243188018017315105461919882371744867529977504601546384558086202846498657582575216991834302132238543296434249382296179807224205217834913106547526166963564918091528521231427482442634604823001670097730619300213670412674129591190894884087640898775560443105812237851190592424207221437936307003962946423431683713761756436353229872996808117579989118339739350652973903854126075463820183032565238664268738854216428016296755195873828875176303807089805881691251941124284461814880836279867391962828138591270394474571474878756963751446843798672893933042742548177880438471883721796683753603179189405673943086268262746502721442479924561106248689692958464881053978065621707315326211144810085121111395100220703143999587333282350056214207026303085361022301156266731313187532555203378637288377657928492606227788900002609819370293235704640506149577999392176445567035712294521178188805958632724248194683323480744503527540878684273026293816611234125320321163678418190000989403840972093406485119174246953414407157089252613462488046957472782131271419610746190382246017539640589765987278827564384022125573824226805578657505331779159226381603282120122025271514316190290732988418730843136108113824145196625368685494910782162437638545209659606454296578757446338485345013204855756549082827613716820590888725412457309961293934000482796276460089693054642908455253085545451816152138009000627405171769146166564664835656104007062381075170092465098170177146084036191598839959128228551543267317766888617668783564123961544609546387430842508766826847442381108872176312058991425946505774347026900716582861693407388989244572632937992854254716399289577258402808862004197957029683302900684608883869640542211171967166514103035185242443937798806386129429122784114532126187201661707906187810804545888184918316000274770279254786380780322834913566530931863250252118691369903036070065185422928270105070442451602833383082670810232548868477252940277028809042443013541056589626507862203395454568056877516255903146326247360250935976067282133972804503305713704717268587786908217638457813348678323436855123261555093003092407632192966176450587682115679383841079896709682148984582807489057495740204231142048352466726062589952848974087637658997452857570285116072564459678144691809459369621878370779218581937802594954470660150658934774920257688161713998650731738993270875234192884710801162563209440884382017069656023370813532293166917613948615140201174591208346671702282797602742065492777019185921649702319795365488115353567154118123822562451978089738095015602849432212985235221442207490431396320333213918537765284534226485110540515641249428901910184619522182019765249937402889866830847961969275732184656420182580135601879784762984583762209651895768036121922661757761761114688242790041092883441767988241413787182861222552057685204119075094284483349047476562604947608341051841282874490726713527753999550304314124069866337804427319231803384930927077923278271002048584970283380199497716607643010006339240342076998789126350994811209938690217223251097890479837978446819499321811052476133726872973157208598230719807162144244838464968550540715732137403054744954228696651430376669287057104613449197260547356086430335978249096313746443151011330778123855960664015428247611507720364937137770218259181513814297122005325742220765371727658639470839423377608938876629620862279584857090897071809895692042212371202772777516580836164329700058256333358351382734308689377290902683922338941628976952072562263342382318766358016477319153522737798904659600596005915304122633497572613290219069985379191598175724856229182240870028528988473325921058772440552312489043699157057736766680821357262565054534319350927630314329855021463957821848396560134834672323827932916953182208290290438295906024033356246881859249769711115702871906181352029417121416359868895959184409769861655651126538681038374230638570758856971565910021983653156484659533717949556974530101834485777042240589886883189859870730385627503553741505971567993943586437163627437768744829461135025030886211593611925609600970048951068587939463303385250451818832586499594049529531137021645109732087710301941081903498324172569999327717395635205853182575201323682807024908271834436227842965116929205191362969522254913755339712885178590057877024557863443974973564931866058643125144341227072353209325403086028464082091970359487568262161723108670731580965915016170684678780574576863117181276227485467583987348220979707509214797610601230531393237998637934202407226751373416712266027261172952001431446290180055907664182823247524336793697162523462440142310363841714374791873324413971382030214309358323047373068209691778182567275688261577186533050983767637126883351582479720803862991578602405372513230609666123037172738234018746840846566305666603465547069296793026373168192037984766872084611468868832370557611732472035922001306773342696621869911488915746453029072510500863969331358372501017548984923788793622785468789774387603299157935630993877822182633610956379006130366035471749140813917868151424856466155214623154246340722032495166329618453328596977193354871150227603424720943113338424614316308017531492715875162958257099212480816718890066774864619718512421257885101319042166848570951349153824863581628890337824360275998416715277468862638694894783203782750547195870619237590494583732017472579192288658260908038189702816769840497439006706205284045156472372685808141734938821145560447694395823905604232505868355079532718440266609027414260111715359979882124447300519687422846168540210409811901332472942060884259456962383401921670713473218723033636012835243135584294989678873214426204445504724748220740923877629947285115636638262754536596131749323633702687007081837317834756990416516826723555224379244228260246549039291272979811195946954883322294175090869389355818899822639256937583516304580313579742668751686720417594017978236572708615605232131648001166448945141953130029449232711067004623051662713394279033165060854840545497445240586395910682712937392243506375125796128333483954242128769252115137024329681700097316140717246344318174361381305227648220031852229911822260502273289177251555107277314903500716413475848209998221611623365764739355100935452780554244080544664399845699440136029979446749776713769073188927978472717860376764001453900200613879150446087583648873015555388790498484830046940837830599082198769192031591406870713267593205391684060510712197737611371413245974066271681307006012905389599384894520926087601607483713565474372835890537527547375656982265544461255209228859869031031622371565834920125143104372315243341096737672563084347446890091280203846795384031822671007205829770579507007794445220352885231089582401136976099071092553030349473598125643148234692982047137251415721426149330027473775877338410678340330050951459939041721335974601729358408542712602968268673123120326693896306788418831369579125468366835993660673857787312899165234430743083061761358523973917959570551065656097429236314279484935763256832522205849570922600533487353324786619669929138423544056806732926177983021487188778031972190952673426397224144560878919840844614159927278757940999951034978148403393108432015210333261557382377852769599251701523473293348322170855233414318837798994003202909303440899076829401352885089774136296649510072262983736182960051440984041997816375693951225848080427854080699239881586372581607278048851410451756238681739329587124824339323377416946202020287037956679776396124295424392506765200433597014197893946479967579465121915788736930634653562452041031426553545545561331205312967184840063974882668214263961779342836556331370422905711289872865303578016940333474844774005654408708756858150415943941417410961575734460387477618215304753457936040212187196439082339083784456828119763694630832110536973693510555810821022280961637486254564653084986085169707276549456191443363522149002093828798118878590926111148956592557071045390867922965036004436383499302815649251056023260258049196552355579648138020995807574199875365324671869073799543548991873566070996637214964698278617388630231501766489245091808263284040533971392068871469317702278101148041938825896222402529054186221472118549457951230963555643754966066885502623463485129503877209337911725097093517562355328807097485962475299331383599961719289107143294652597072882156680526679858365023123865810282766920622522211444891560393359964325947413784741547531690723094221929532480444904884037185571264132453847040232910421673318584270195347705584929312380662232535800037726312868999988595752380209360994811860172267765931755342987302788199378033621732145213767953303858267179314700478833845964838664251644213795198323067336216443603605105355301318687211935754436108315820175274275978881134421779046014961418069136402977644698990198382204598499078739858185135843403918882992489813488263737883826868080640450868153043326387907787573779952262023387572017923188901400684189441543719572416420992303729617962827026201193944540951102489746608946325569789406314467617964074968055414001794026160163286651371616398759696351040995529779928190723244055064668691507080931653950374075236531257184644209867411913291759496687325625493560045173780787883172049996190144338472466034836842922578680622868040350120735125700357294462177299873413780073987565225029381697623519009643356708726298753816705988341200900425061072355765882325994055296873889432172039339844559238240546445292435008909062954929742082924069478907192552574385961142603096734981035590566087796029266785428062881572097389772286558432158106094879138863480208514014057223799553095944451864200896941675341692859565607970799180829148743845483463760385251128462538489438458406508852082159805065381675771021850366631607067775084765296171784221440245074964263656530078894123646913247254101620491103436296907022268007605146533621889700263134223151013530612075003613371866939293913739859330911344794335870184216042993958572007512148619070857519931763665438907051673000642301672456657295179720381732576339691560802849737442473362299606479064328100419310875688619058411871104253888394675108234940181440122919253731539636540530087555623652462730496256234967964530111509532807572789263710922634220937805719223757148222959389054507932784295948622415634044735453931839060265100112222359638406024137851765306154613701424718501803911345750517396207678842949246829191420741859681410983994259481126919442257550864355051960203880883026219365261025440916236682613664665176326658307058526506337776710817256712864102791119303945440763756040678957877300027137883665484768262345001427344405959771516884330663844978135131672958505463644723960168858283860705237110165959157228765316328384088943992499520057939517679523108363190553946941997027572148111012476926783336208580838388865030528747777104084618495057158793923581703680322098415287510942573220784309529872006299729239073059562663226508666597695921311167046848338618785986883430636029372598925200252522391822927830720693763032247595619459728583174437410869117728935545799917774471459973151714997561234590083598136313592806798126453876090566556315957707659902945005114966596443683404548638077041765721560388207299604011497446236110279737632201723940835614015541501318138038169854305687331748284297392757808116283032445591089607187701275283436525069210329193764141100031347690320385910751424242455249129275973706027644436064437928208288165167606359121448168833857829739032718127022230176095512249411483419881066683903254521453765179252610418260305307748652324809373632586105591172107313360456898777308439615756110040212024562298916769621796969571848030820985634936136779478813885118872762015210636629980734241965528280681662354985951825043000543744821292280096051927748392507440884599073019416651836454260016960430876310604080542438037219220730175580525344136918599475637238242286713186702916480482096470441544155040048102509690191575581581465151382758226868918711816031868129115358329063601033984398622628836441839088365905306915926908808161602748436996958048713568644424101978252369907661133115547771966903831753166724548661579819336823990233883355010999624706056197286646772064152932535533638106560191422387464329480467588234205257218647313266580309413642675290147433940047023676683296793407819065506022221435233895085172314912105104387518676491966084606432542518267173586627013104784245733656245965653690146638112824057048324598281813808495070839422732119314643583187188453416773993478819913347219840401230837862004739642733212876687995268855134063693958631620800866002141668817624264473367020583521239381776674891453588186916564062124279525935586786941252684402175863152497520725261408031415861118398083785692417533074399791273809775949206736950297972576585137804552313098505242847332892884540004039573832552472191689194502737643141899909609809400762068255931908029139275286700688716573869683718104265010126222541573152439621191543886447713468705615950300754216282674439611285188638890210588228093463898744840090493761758900434475820102729431305299415844672440326303509966506444247755261634731825674695560232332629386733605419078709217476916609352466244543083875989631857819220418974673972430480211060431692063346468402884782292334225278411535016132521378765953994781881650370534316755505069611117171816633992496408629737157427360060354669620003285358998778645845219677551898652664010116341880494603234130610625379007484206302480327460584949059980447916487859629975652573486715284110835593392360872057732382690212459397766025355082810873752203360691348279402263123354673559616344646687762931199529210051202239032580978373320921280698273683004054601055506243321923939144063532032378134800293125265105241738263252986767039577999202393561874966007364745654768057666142780922158194274372654719834051122589996443019022774917200266616652288173671492017167371235451220052698543910982165148554420388689138928438218402702707541563345460369593516175566850625566531417561247036310189003790393698437733712126219049109088608509881215592684121076642105192030070410521995940351292506547430857229279605948182948418741288586897215990743738467304392269235650282420919125916602310518077961031336835494934399647142583344117135798147855278945173823252539031240385271808444471719146844930565609149093714248737831084840165580026230283026577872540925962740021013635078626405418962396487652017379623265947514290409480894372941198878730991737803197668361884729501836803184727220509225976822853448090850531507306886918865598656808244516736542217382920872222678105590011590274666138947368916754896038205071010646053858078073257972059683524913052740282675130893136058868243083792393011178399410960592927588232143464444538664621329271371811893953117048322734166360576971051674643718908916002600165324821467173765914858202142516286338189311277943795857033429314444108121245829285187826912664852404193417851133609466181314553559339025401328921734111848925436221990962630771667308161810450318431449608575665936193907563789139904684092372659673495007726478038744101299068958213583067543628090281448682787868272950814498252361907687601044528544818311584033144520553233915399596291820637211959829744354343567815018763119226653999888903484831278412051650731262036044807693250528060385660135205335036013486599932484923183178998811278106874650363009584969822245331138218342237833881237578238399798826966657467876174906223153425298285467041457453748760599157873549972065405621619096428694316957888524226402874723240275985715892689355201919082575992160257310071595783244624854217757608150536214223995635910020133021374336732002560899376053340296017052723237215498825061744268724479557134058942989396491320526157030968353333817189616797300871659036335177295227414664171261871442644475384357437166399402852296198498725481988767596045647825535086438265345706506446892172669218323695662015574097958182522085466150344556537789807209227936001137346268659562172889659162901228178984276633409725884504848411188272744396857623387995828975793296747801692713023837995399324442964926273608673529374854182523961279182783168571443838373882021173321967919442292521392449103789008897091687559303662182392689375874674231049208257122055815702199663580075894832916462952656720085629724596240303527758179644752534573258495101567489145892721293554367759851213710436332950238575347271589184193871070113695882392802612880364760979255375525930126321499582608555995446896588509571960292276602885202349954097025063891197490669211236994567032544072287969901518375443739386977057967174254072205357942004428353992381046435030820025776953700080437117789581990992224437598313843026993041597110771369810983271053781428610987751233019772934634730899810801578695300766421408415340757738048079420592737670798371773221598960016350252486427027617941713291792092949738753793150411237572584309994387025169394090724257603811710032295266872190046475972042357399455532747393257815896816841838113751327844042152327045252535253499611722555692418583151332006139214098591127135216876583402489527463603862241760497161597007382659831375191516407152509507500127383846016337914809225620543196432162601976536023951260511861623714380888592658509283970392391967657685192135245049686273293923007973922280086128604575850871751947240836248689013229972893011467997746527648774984976658946699451513099819247571509645815418367791633884293411449016181744670583710933629411224812720031217621639185340226105496319849285537280285055202016150481145628945104610367487563032986686457672349497695121831926866270554613744005742603544397273815935687289827251678502099967279392219240250933047197223693004949824011841932777327365875395870255013318052649188621684076028755834850109008245970664599569334769973065977814015546376576412472867272781202723164465066845092750459294184648552424477855108506794436791539371276892009955162275498448955265641744226545759134823628783817432903670204641388734992462931664691290289411195624922004316210370634513982925043297700761295675849900827994822962367944272604392915446945406354367437767705331172561208929849434665078284736724991761976454284875232124870034114234255313854089314279579290828348369965212423966617465814786795105902032709942138145432874743649930927201203857920378907446957825030345843928676062854395261363895769143330934592095616807932825373924786636981688319139724564843751381637228193735859213178443596207762578904257226640302463434599014485578027183618017063932976839513975151170251670432402441688827578635335800498980008063288933891391943969929064726759041276347173636673200367314344215880141073114539257264355256877023579354927883114705297284044426345120260683364528852662523238260608558035060122894976845479215997343894360372742625839954993497780715663524640387115832896758204118531531795599994128653289486025728763881658313507465259559733136455823704272375496857710740102992853389768720074236248756972232978793754724064887012306524562316892818719802593958316404519888508247920561830024925017576034153422098930027958703964945965638292791138967672007531647310387496717710986476359728757554730179016370585972157268313626789638290655381031536289722012460356003724564914872651993161925682212940619317181173384279661752908096292806973640872561164900053442176694390418754800151416357942365203863839193511326320481178422836370433396813357426675345752831801958720076119574581289307658809957577924697103276013219083036856403240405523308799510903283295087484452408061860298335011563335652297095537492901111509988162444221156109703110062447385165283341515051932734085894987427814969292505902125447321256306924146552395639949847424609323727417685167773462574538466416764635713233588761179902528577558425663888643947514594214560029201368518125907150006474046207923375663663478799782490671380844170782653588726378821455380287606354230070577009348729223219813883705534249833183659159804156773189174454203551006624867759576042345517710392067565623153110775963021149059228695520797402690037735959507291228147931091831741396628773379957102825059303531820704540306787893798305595492869823842985273816761540478406096024588014183865633248593741042363142348934419584707354421720681259211594753116005329374852659570810624903803929078200145061813945868981660011184440394677564708473636699205671559418692327385433310347547687824380117927188853165427168680896030654471670011397101669679261195523878563231609011285680462064808755697146446285122536627998272905663692808348010284380962259228263940108063423715697946261780088570818695643872618592833129444862320749078062571991318113810871054399450944285556867365353195609455020989852145568683452454343740868002574568169480956892070598359031161258658876354261237118634543001173658325274370497131016334718867921054784244685952302061775036709689095569637139543309794615321556295372214692113796127367144629166343346083196602244617170035880373579947261912740495108958188047004716137420599259121247800691993413970701068781296970741816826629549804434324409123858593001277316077919924172853879506692676385024476366525437053010394130670206059790304788514648071648208760778382947950799769550947550365365445528988299197554926071540692785107521124374339975789498716117693104409508103817666496799350382229830583969351153298242820815817109944613899452177272524364694264530676342468702038065239323476189086226696081762184007099153050820439953284872514193593069946016303692957854234876813659101926861600735935139368906516033293502450828243922175986243470742483791088729177155962159927039022737135066281160695843900121961043337885114047065204508583335896305140808735945601170204066550117188334508561232397820620191604300607219328632918133352490050823303095986010472352747835481124074384671476967686259032264278477615263691181207172505014661808365591273509441360762433732079539808168992244393177831490544670312582456788424539775351659647778401333085988592898137801499492997030720692147602571012830537035152038070891031152437034106936066731055596252362010462138126054366634415033267894334797676620396968083499767532265983472671932872692597709161901902932525610724505497108448536922184708768771046095998473507399736358593991053000972669665489238575266262547644038381679197876805792379200721677884975789336245645829947292314888413594779594263577667650506375421640258157133718866620356458266515232623630289406918416492183118127642347608228090003610171701811829583508493167616912731689629141650498061136180887471203519143206802286976115377908530173142727529485625331401647057853873609320960935290620756124306117838800141285237671516587768589834695904882707239377110262353523542908880493954474810897519652052531586691181488346828371352353287133869282855541416884545063125469428653278360050798778006739219290480326656746077662418481136160098775322785074675871479400843292894074664763686486287675396440818162854257353871550123271043184579517084304900487542843740899525737239802756687886265818738133899144924997414322859567572914775383360267999711691833269858128816102922986835347969827555862368368232065571622737352312149976426856683988614281843861518928706816005411959339613567953322750629038672685533240079307589790825844046055997956095274340126825567752035844892484473555774287204524345361893827816447271992358815869656708633774043383726078533287321798303302102570706424625326963949735210138246109539442245829793562102496813909877224579248798623851456661538498478848300283168631805730338086196926731498075436394837833312774164222863086468365128260447379702575946070764788150321187962970494197672419703309865249408517281229758544522020361903151687844220591470407381962913274046211317985343287379501763028870923926409851477490052290057694042269769132492330514433363928522075584365119649606194075058434888532799857180910441603308927634551723182634610482741015491153006844333363243965409628802497999708958382313301218215656143820694300589107878682656320547735541049306552917586205559690131429802393719987538354266293153513668117533424623618896397146960133499433427855923026214333164900476932488181705835009979806404172222833983337234671221405758392468149992203221299727592768687692283115070045630055509647161878227124704485841145206680178364208161003056575553000324101116372703035115240421286238411893186394537029469367335572449640156954770902398371584812738135870128786046523973932621212545705021294435769735564579499913295497084320817270358371680741668547324824278867706677631164169434518390146296359453038267222340203372723047276250162442023973587585106972036408725135858197608472439107366481510189763682133064770573950412860019996237763889169849838431490899803265136862107667258188907968509402897827390852507625231520163073213735761284982289052899112521875308109448135013268625817633390781079776065982519722721936438469949716876628386233381950585172826208857697727799398029891703840862425753327096360362616169010426707822287058949164498980078611630550540243113560343387147211783345345570247417367964355011058825764117482226524158352877767077604317282619053112119959629734306353299838947737124256039244891054713601040645843489441959572783288980825945158377358857339465121323946922477982741925322483086439776725102742240529041867229275715522372445064230720501570500341817950133948531500370702042873446662241538027037785903548597358146542840784550926816295982666989086830631520327688971156871774409362037928953556258982325060893375050077636097060838233093137438825614552102806068454913722919822442080958671426007122877780316378693145064069374745622530445852174373408587803065862381807245543470116453295225422805986091632268081947320795332266617018799484550741868318263326248122777838597418537560063623419322487339344773691794013476001427983320857524735859325053723980737401173537823729195382986786188142788212160647229956332475540735172419213591783429043289403992517726599453329607496580252072615219196152396294211825399491549622055421616940173271062356839718391223024324996126302940828020073011611785261714969804804288420707185815445492178974354947006195733530343864306661286796940798800245211875923855624277775142545296623811735610262124152277036768673109518653116962437800070719449802971928132099875680370576708754799392266479637979359864360791215506971598896224194783784984940359851009309281882586125850008713780380221845046109120506010749618623253917979491025393831733695923084297070388394649831641620389050084972488593933525452166077455367460962430686103320448732557443171555850125142442817224788019481158181712381081908357663931560332479989831901192318376183802741904027362406871152638899777705879343147733696170193997074470894975904334085904437788646113466742000743297436594468988338350478836618359597498027869338828473926300615927841952572864114588804604663116803145957252519094288527672491303998275121911058968493604158982317537753950661566699933423661969832970138800825543499320517561658815312231566745442756429710628606311974939571938761034518441616187317097802218504273427887565567795995567144152387421576139810292444260892128064665658478138285742136122424051741125313545149855243617180234667174514855694829364662821210030822168661357837963298613402004617640190340735718555116179993972537770547912362832534704995034213176815473345971154415763288584680319870004646852693841978571584931587625649953563442958166749875052105114400440146204013061806253686406021754703169689480755877922119514112906449328097684560368855345451259397209640206025326423963053570012866537397901085582041989617621337952342596214386881997258431944256571716378047008484310300825494707192817442391880567965012630432899835609939867608057864173892440022188299787998825570372157990275307725582911855925254508843868991914417666580871527632532216358783201684486793116239846849556706830709304003503469877235851914582655631302641693417811965101264308359281297382051132504594260072299183073198544659578464917446010377284957019018852927549640028374544391228990113327207354344781712358127066473008987341733738885589091186887152388398432045730067012437777560956115022512671734033769114346074694947271107085591685038013273857640817424923489283751630509634747324008612130702996144004558593816424715763243100969724235392742499899851411544948720939012531737926872052182976358149137839481593000829669317362362558154162260253088026289500061069389680963166574318491009446086078593196299654894229668734616291307950137820787346185628618071190473558635653806624751751968401888749651974109945187727557177003615648148879012903350527785635860771150818465916321637386052473116900044803042806160630840758239362911134211123670159004786531767860547491416799218219134587307625638391698204155636620556770042160111895964998569260673886704628477117921049925353799980937196634282570780499610012477201289885194808942403038123629716114246624394940322627461233303116294236159750320303969922299522611744290321152841761952619629053957057274544642286562159719504046680151341831259288126884030003977039582897413750611598028125668572668766133834342656333385112244492455398911777962183724083267118974506674231657449196065602030382696110123799747434874338928857519042716308043622236787532784644155959764395401797158618331723420509484962770382810320958162255073851251514994243511681356978838961437024945777351092641814010475584478138554640083184268721631652833929688764911183707709149319973467115313441787555444764490024565384314010048921687193545672994968792504648086185292082264890537882638262290266484219669906226246584537069681812509318530336338252428739004699196031479849994966770807035082644984858763356396505696886214644539399872107402403681723051279654137721847794356482275927377296139033831009206268914298880773643811519584819818222827930782295395466556838013774189331631100350081220487165543147586157080409283251840290019894540798257222569215659211570894619261193389514894553603987757097115745423695971081153167246127138662036600457131746247119967062884042770850128306856938144657221071112604775738755434031044431785579453888798622500605402403128882476261381249142601400920919782566926533714872558969557691790876648883459400215839539158625570542403196130406179339786780217101715454814356240586115533396466418621249758373997349657961855832272550314457333005832242138421985591109318176509578936497820574509113295084266265128423764811503865054577735283718572502001748716590280732421512000006079309162222674033202539697388478248181542827211245831754888061779789543408332492946949507313160415876338878347119586715656289026600795377667735816279229063707095408953434951690551796380930351180288599720597751858177195884087180966868428123731821644042178349512364844539306368018386232159940277205399120610743338035717046777342276032119931116246149772953783276530747714062651350122384646179925724821675074623999729187751148097985897367364519999521058979881783130006731012801701729703813405645932358985751320734614256752975103982224766051910918692752641456356561553660661824624825687568638948626478709421955781602864235345353231506351882374735598633195007149449739527090998783597801140334735576318871003810573716657896973190352338558382312086836006098437758737363855225030338558195425947808509876584515512759197251330320438699139088149592197651817842170487020924795069306270409586709710261527470247457728457749838085555822665961806707641734926723221018291248141079074022413284903282495570161037707848710924168124940620765525768956606835790270218916489781023383264587599568637726674400464828174743832115060430491375203094101809132576392317548500642814870723055670788401767301693052653518223803067079778872463171599388621880143844638667612857479339576637865130205462311036107859520128580496618396420153982539762259094636870836930724240557274731813399427949953640566161961954716242414959201756628149679630905860194832467343636405367888154817575282555509944032551243560132088785770896289481474824585228797642114168742138680163141051350506288250062432045467151076064809087468829422525341641450534404308649913639021780590522649672650612942795613788577097508775009473953608215238920666045507421603531124638388221051566158117155365342316248506635188404605551054969631401839705003919380373292479850008563937874195744515319824930319592262886305306012987129225877654001797444291157958750756972087307463910414054151802801166223440627568147982368771904079643338847689383518251878043994209441486164011211812980484715344933631304475059025258573313417351557141917948666637644176314488623257295356592253422007303086478991761078593544422507869214139992579354244317801590957512697852715004733730204399363409539938097967479625985095447207727646957574500955401098636786347140682520161651957365175229580958728610107473348948125737937449963497112979932705733378681549466934318087809332243817404025250482432784954936429928029496727760723232895071520675659364691038723783774431106752345019638564925673614049595166838799638868700698797711086887599907563033534687566965799546934430622803449327977465756436107667102030358609350410952965980560959804883440741795699897550649850171739384320851219223275416604120634426492040580205633256925362819010663381173584432176381483257729180909849884100627611770785758324526076378251579146347266853332090373766100233790753159789996659689157379584243105034307705078118391870687660697398792653428756034759308014189593453344031185455490915222484321051140285393022854252206318852324327353338362478214596669668034911273273614449886107387149774475919588747476381663890787453915089769785478743413183773251077649208992973840316910370560394510467007444143157959452570056927177725200157152117817195288903089532531544788041523718610761947247828259637746029936545043571688109172453293981712325153053529962700017359607051976177739937160304813734006151030910382168969530322321611996898878300623664742456197684482847194606687308574520496637843504300245911388457169414953722473508268127134220546042780136853802344521003328727307675607730858653916239183598850715911293406068078413458533923368116237854590251798536818145217127175396502848520308444853773059693166934336222924787112813219778897540344807133031023987087631769440243334774397499546240046520050890541813862781045200838548801800488265698343059038628880465068413175596239603903325330153706203426313820763731795864481429336748104202582155405851231844695347797829682449257005150259879314843666390135297148923480239365586077404834889970575891878784754021160753991162895621882880100682047183578354133132570985584706804977163045465640517717820353506431170744395938616388437221818028003104059426824482929407034882212558173685750077322723527402747919683960866667036962479647588121678460246160530414881610114385615549567559099771814652783076132414801743843167970674965415856385666275346782940691374446974092439234006269900211217336350746153906655348365760804844735286915335644620730169198135042178067309904690385108490129891729382903356229788049788578192904203481606739625085850254431800646747577309280262374182304996261645153275845078560505121885934439844326679250088588178372996204406320223707406285103278047011200878459121195474183333482516653069468539665498751259890799743116780786184383668924643547525879790983611492436868500121170899835933975572940092088079928277888501184345054503687255155513056006414981770565012100371713501213253761927041132264128122873849470805748522354713802859932992747643065405856105081990584314526987584672720158094395843280479057112681376248417455156374937193649961781250873464801447664627145381175035867836706577351446213802352645044220971342734380041175975646415130094966657993074640510492512912414937627638601265802901853795374459872927127155647229035159209534949722477635659325177288858465400439051622621944448060824558877847040284020520984895986139718769679136656591000920014598434887903658237369095889472309701109400513089668248165401264382978891386330556616686379731015633582579355464090623658250316229709076693550806633136106808238176811782807987702669944636510722094879081076588287315174342275685907376542174900948361614503411247224400263290410607605603087009548543263658778997002787886537308818259211671415358392558432779876326242832618054874390619188295228388427634586220626269814306809954834916310934998886968543911012777249732778608562589812907164511642579459159767566836436778783383954484370389370691440465538326975355166313369782514732172924974190477054519614089805427760877614095364196592689927992500593419149705439605521240162559411206119435145263085396796760996033684913416399697078569615270609676986301692200575627367932503563482674317889101149288767885672896342302024695608058392321925769665112306519071872375163028407251986769826251065658708439612552859626178790073838050382356394387415704514241608603149668810482056676993810323899065854055963578265796464932862885115385149118683761633559781158473149390382365514619201894800824223470026784068053203615151100666887315768271726630430008760688941696888996002324156843942036995480683462987942126126198552268042810279629560434450587545395218061038760880385714500280809154371489670802209872622176005727619157339943399807983768925886911021380377086335891437848370270259547833808362288210528790782083811428566971699827812746123585442112117299155690405651248922635043311274506667325694428147863712526791752593921738605483643795105006049603975282640129333476892921615360523234410229711715310946099010888181552043640754243261318293391200093214309452810333059915757691195507003263171650438868713540278772128271557621036371360992055638637151940663874846950557852180126399265824741979604983496221389793030617778783916096577675897286432592537959777787340118150066514700448511438925042680409539925445296454234357329715806297220172078944072628976341621092602255540492638168163846009221008403996657340948077349199396075707606287288389928251863335410303111933678343612033108288909862341425564513616163097053877568341358451172313023700426012976837685139416973479582653953803663333424417982671901629604448298429538763987537224222981531544495241598363467521045763335317379719285394606102388161056060817821140876658693678860460223862810111054547520276269311980338662189866924815093837812194249006133491828743275995659157750087467328766214150458621669478712400891404631467557804535234286559472901660271884373810469042798782478961687926146432777608867667063505274478565160617602996311774339514425337733150705986931030038836478580386726335345811052117696736031582316397708556956729821036829781469288020404401320841223982149064997855708688434068029609935639969909483097742861470769790981609458814318840498595517690103681309462103282854592145883168921830039661452534826682135308355702478146767746862094209640505966179050847281304087970457197429825336261693756233757142659822259042015904997930969942647270076402191911237178697738830003994974320192916342556647482008557113103446554356375286686715831563220903933070190763562490711335062722000039905896866547097324847754084837325429256838569575699173845614298801829582144010230814936441601385459562272739210992944762125920761643074127315352840842705964692925176637106747187228508285880944492330527968755933334166597045090290218675684843689216239259658631011278811031298114370968628345316056388084728794741579240886689421709178845359409644681108025371109158615401750186135892056376254123755201093344500596152912244111909340490205948452300105715683025249853242540658820809121093236296243587617183422690085639479352731960566194372644891972905002553790613049860440451950524197585550278578681219972379938077185667617157965517393177118063642963789395411299916089904552900040358682356896339290162669804038791727740927303460394987654191147145705979595926018990525038546244465671837257666304547266028057342789005501863833434109672270454129955609898595483629687948162723220069491268112637008196096192784993622056338110269110676296519524775845481868842791408730352389278654945718325853117893243929981131687032940040107493769212329931283325944465618953743860431057457257383597420622439150124481293908738318608928120029262558846777340627753503386157247571199331930427868282455554715635058010041482887628410058301378091473499639990963219592728936868060165531130155769178581626605305763496228993903135840652583872383685309242478474250199049029167659230717765273377662908168038173826730743626876988684507523637288834581816405679272207999875242425008157190088175851990031500493876311690376633118256128131981459968539333277317945932519926357339701432555170727296544910935054922942950793423299079017834156624580170711898457421553500728780870826688096371458633998106292648620058174415749119049230412657637480617700991354510565281910029709453406842425519898173987998552930156148149979399954891577258617425103427804093897065865868093759733037066066969945809993428422336803681973484724380056786944531476843455553223363194715047189676460856828918721736684253176291779958007482587613335763778732934269034101597371258223858465291356933171650211629449291772659695514842987542648076039492608461990332301577820359649000495492606292886654016251257759230057559569004370828968436160885853452255381419204029412097611297375458676817393655540715242710747857258958143595890985880332930226348408328023253674994396048972664385520526859282001712234219296430230957481821660447784092555229959574334756435353029648591207528815012576401532594416045308519864843279668620836891027916004754060814118346962620859239855173491815391807255167558191043766938677627401282995333736795238491261315495551888328424164810379731814584534196652222171857134792877625386064107653664965304132056060944577406162806421451775247102246730615187015830966392419607732558855934006712653124167750447633576753897439659694356042736374311557992999413069452675153417345022062534050117386648150812795531021809292588821636341974410482056911805991388683482882210531661776800713226720647187245250275248769033863398405300878887496841416026050016691020112679589079054543099550571078445855979867684075666596053722554333915771521290972414594294038956503923843719763513714637479953057090498654161652833946384042806070025381626867517906982624702087944996599508789583382681767389607511408457912988561683361051482664732766825072721944913396903801805384240589985466613547320833228978179886953702625787522577457118127403821776214272522720546637499886323493806036484591864309273975420141225789088188195657315744407608298084196830062214012868230959359838548210405321791688435486905412709353800411049096827453227964404787487475834304306658197829495013369164240246347840846291703653608487820151814524455587117379796763236874987623865321264364089452975687505508048886098322758156225780458712001259305972136256925730509697173346843972673312180514285100429511301179470136364421591239647832683256086436617745908696906561660925823018392696688969803911193490557872271635515840400526557867959829301478368405615374712897983584264476474457198646186675593982541021745409352179336902784319609299271292679879934010262405967138390818011137142025101139340257888050511320136879180395453115319404847555149960849005661514589734348952666566587752260635770313500751858160985853316680147888551253775300604695387861125167725822325389162794795756764479898285772830734616163649926895920411814741807811252778434926047961348984157785942188079411051943754398413009387409183936742012605762508680726210669674476085463352412015012477419949421758244430894682053429733554623998255364534176662154191680516782068745918387651921008644774088105517586146953528489441898226407175906951145035168223565197201453078330906255452076047496960607041194906085284765313152599795591226802625425118963571934316210974485597389898897788425488305785078564152890350445010596279770921980439342896260834777784812699083283587827420317808056997830224966970493851949602010792055768327620410167502845675573044764985514204955001307922664264289895984425639306589107697628907658234579519186395094254243941280660888741854684540813444333212151577851490426346198008517557708958603113913790733360482686375924844816862425239466805871281555393960857224805178543381663037532815981878912404558866326045323457292191771051082783424134187870576779848417812601683492262806578378827728093041236440219566283020728521905457514796805083167669674280774127874867540625927539296990197620792143257006708568779927083788011606572977288766995273790082469728747173968647614041627874844538864676915361934253304506795260731668002619603058200202933024913653216941133593627646542801429459543104205768741381146116267283020568610460280262827174153577036775165277749894229488420581812921783055934961081687652696972552155395968461422854638690280025408576744414277576252710600001298715053778150535789465885778665759349329355665048238145274057933088401720018734520351044359144154571857846481950228083387855381632395774466596194856270429963787109342238333111485302322529407382084509823747221558850865166977303444970676696206025761687226518835968589923129283662574001382464524366828321305544894838077392826187994375121688483356325471077573924876154940613748928173920228227530598947126180207877556506878880896755660629925076989702664344516906582907206520532035431431662592947674305531419785958306100212302150181804583395227592206899473363928536545597675325326568713940531433226715194141905134364304866028895936429156715556563198502595354396192416518893402992610192254775241819033125659900859979477261253097559228993999212254789810031255218779189285439150707843992024425449280821604683167666876578533851362661095184412356750939460883388591021081375026639140228040263158773157211308905355598834726114751710070323987361803091931916635286846199110751372987745594519451900479866597821721503424864390110642790659949400275501994484925396942662789716416368807481573963189308075042837830742729260813577314231384807890318975954573157728016454513988593833261235161635310615713515570718955142426069539846337997893803853695997266009000058119517831489726659379746523753075669284842186527642506933919596078279351172954432877817890939187972673559887173994488921155666839277489713823751416974172866931555411331416300092502377069189638791447975471745000948805482007626839858206457157564719825936254062420961408660270866559592597229181555902717671817304981536560132575605474823603479248942127902475241350364212739786111476763110304321655968508395957473273807748396153376123900393137265357902800402722340443519671062860262758886167031825456785248784380110802387747542216303219793846927483747327555770538188625353403283218339107725357725623099474176265039022028162439132900905165806259967876395991461497216785056189249650499756691831203807007326435684618907449271240062192267454978671610783225690277402272982531551869461492206742136149057209466439889654841077344765454122335691707512956307899781833514876549719683239313616970546718946496596498766436941663744789723935902349348515117869267222874974843608210832249783732142180432583611587102064200981415444200676424111292795001067523845110594800697658324219238264975184630831259665598946861273516631606863010246447073504316185726308368899734847352216059164690467852651225179635129295098154793336371672079924518559401592675487009973216035620585236276160012695393323944277956292195940404388699629196016302956494762957917152966196502838243114216920425528341643749301488073786268573242165706027676003317452576205965031824491617742376091906756067193566012536203537399226895863825463516776330503519644079452972592030179728987566326017939784961259352123619238945967915584183820930293190504663252725553488771607586201671574696980351873734095416265581909681509130490274438076352298572495964324237995155969564594625168019754473133128755962335132027112941665429419238034822925888043669480240716499249223574425908458967183330256792201039820109222695144052677970202567623912637611789236964224821685498443433153806427111714573704184295777169281732537244008861249683046766436796231341846393920272630240982352997660339096255771662433025839689258869996618521921886555045645250302528263503320894379354508108815475996734940382052058504649196692525927022647032048462162496065176608344545852534032975051471948624929624723322824046049287430108084971291259945365150729527719609527097203610296788430566396853824435762924476137594944148904334231207703256215349454009664959327945374055328541300937432269577296735169166696231628438013007926878256843444778688099891593807778634505462973425572603419976200418918187418572963357771150948176797492656004237957961309284692108119613053997368362186555118321162997290144019291571426283901060782843296831872855210595032230421910171466726439100444382372810908594955388988383613674891238757271423125444535427601240039696812391390191382108865879157317431450396045104149530915647613230038658437464585332512676245884589020637162706214772124413964649114945310489525666237022863728396332151312730538520647758700318662633997752688899316825822920750907813416688497079598106283337040359147726266676160314835121384358267015866644207466014704100111097356042468038762748533706600157827547218298467525975207475651574640830127087639655772442327775099671117543143608978794576787901080189264121342066482056039364233583761558809346500802201539896716249459472641341803956334503583724975892887856736405271260144736492649990368117939031319281958615518610301460673962819254905419293104047899777448648494088108453942210559991869880424589131971160512144302268677258833710999947211673627789069029520949257575407704500639144852343429097311336974263127732675417102541438338626696388145220093192841204465810354378322933160200951172393625324547360847203711426726453519818654141086597180138724541913227721784352706705165032773374275352777091254063691522166519936868198603566633724793490877584169040357796969481760799244640349547280682668776625783770002872113355340719921484356563238212109660488091896893901976062483195545774615396935913422965658113753338420276605678839836156597429496009294454015871552737853885856694048235358452015918869658154595972265922434860174413056948146169734999190449487971329470295231581756839677570840075740739072943545454559171559438993111283724665466233660158603326082559468013653797822688002741254933188718184342404011191655913707113412691376422990906648632622068536016896083659247977669517096774151222849751974063450990497744945410443359695795282355223951536365965272758639219413663959830332112498295358346242185575424900203655719701524617604208874149809276328759547328105275235883048317573977346009571296997416150349974581518464452759338538917107750108097382270934328253194177314514102396154909622786540552738492394318073921807634009792435973599920813771586877729742443019200992037451815381826679059933113476468955028745458969295344945101384437079188847687714960188641402014161260736432890996292065464415611541476391824857129909152470343219178967752063088082999358339728530077015549704515463939087313888194554159057738429437411727578105146588833680154258606225952871503400620149339173290545716701704808220147680497963522776148899249299320412964798734186989975939095065815770654346428230058076585215916822512445846860075638281030281168968186004871965568233761019873179263460214112352409374794827136674055857081298177320736341095498065853449685598711180880612179278949704331279449165418538297354576840228142351779283638176147106469000362593480724822491940263738199350471336635044220004208609258614663235798415096081772061084045491416268724178628365827862528343348438065968819831942440097917375405684264998423621603771845886304616534384083542073181724478992178135685918053091708601937915868495786420320025246068083485959822747604050383447216646866489623318671846857655744243671050758919922100092321384805409852316862558141482007819930057089286930996922551978402721138312443530800611319876247148975123698882349829812051886728738156731909137130903009724607836093013176434900043265337313071124174931452579954268031608894799120358090396483699559152463580495657172110088529127812815986824894078732563700457092538950343885902456241466316009452531791891494131751710382387861044329227914304930803518788510045989386233965810779751828485815635987437759446924669166988493991221078881601070584094701280152089744375152377379071555084758552541797454053712413102490528421204978173664536851305098222686035377707111635931345143556888983545687164042816704456573304488806589612827429479027412313065622391575510701508723190720338032740635763557442619017350120441168984432890737272673120083161247444930116608770882086763271638591016587010729019562132831848019983367062237123784294854175534938117760383559504765664260161117203663635993248045734493949532787265484086631168490971023754764449266309373733066961476256032848819046196634075280113715399511076748687277741679847851007830956028709326381304323138229997912428712600311146142415132371471067403058181759026503028237201793285716099712559219071371413005490077768888229604016732923519034158419882532039371611746892712409727147965259349603490266720401442335194547283737564297951626338716816106894388568465453513373732210167123254176112897384749836393915348843686028824210386928641260155183990909282953577386536745047153842358367314378558712071495606581010007540908591698414649485718162421461972873785864079497389684717457716726303412035299234146627302035335324985805825385077979591405663975295693151022001411834440287568089725124307469939571737755019110559160568512714754072351104860819821002483232970728834075127707777408634823353020054019473482942867681951887487499040357833445264697104424712304761944912914852900665727278158767835751137572746349795266259105505918745412031331618815236047258429323312257895187057347660569249426413413899652125455797218942982196549169123249521986803328345638476790589366381218912516240255450091530247601009538479105417759023103001172066317223090044085910006091066955091172863076709322512037825129509779825464796947794531974501389596057856998725581192691595039263618088829736049526304975277781960458136858732887157396538376447472315401185639597701532613962593842920321577664490838813684380609017365948295591551708871952239130378698422520461163440145502610018823724966037760137281978842806490726420230611771929491845651496629379472025065400867442019452798581152018137541323300418138575234724714822603017805862249248612111802977293941510030060207277997408599737088566017861903174962490992506069436989843325744414865899075557555988290775363139191122651780424863627645701634659970348729443190976839473809521268356433166886503191648681662782348519585574953498726676873079348401403312208365554018602365605529235688077819115863287864668798897123649563030255720822689447568392568975247731699371695920135926294769887905396345608897090592418802128900100043455971306637073335416279604384681770102215993618193083764221508202528088845175203698792461508020249267715529597328821397408808318975124913587078470631432518264743784596650568053085977162049764175088465498887957017413012610254548523912848588945071501594846272365047286792138685474598186935129961287538144624193132792436124695315185626016502894370362253891960493223061678618069764255934376934046692181603270912850699765951096787201228558611664625124210496516387885015777504989419059309674966520923358330551621850448354875173167949745925469374277481595047323842829156566286984811171094401704852124277667334795554255236203902954197648119139057464576012586428543870017233942919351647118788881777016297459732115014377537526772126097165236865523576245295168342658109318712073440976108900866095951097347195013390199147582889813125365523067897376855667162868358462233630743473487680106026596989398620259421848545516146076218791408751541633572453001226589724890194856645027897107476817678475376465803140013815734144915817217254673298905078839128930105748270466578376198712950831401942790304197877416923549082398275053700716103670306707552001968373531324082862145203666974590393562688529218016188803660132773592123710487984906862545824670466012287785985345548909887324134666838633559896749808224665480713903459226196799978159176891363627003567096796310366933719544974142332929408196886014020536177929154503296255578789958644257920716335481317285575285405010410623901203466837900438822618343271971528051799384774119290198034939724919906932003566554470847012260904205767772897636804591621577934816418357951228284900574361089032295733668335978232132384435848941103089693737795192625701040936959009412915851725732178230639552575623901404328019208997028046818372871062199983911581392744267919636866897194099178842479033326458817643728573338226669514240939505918489876094711806847923180093545615492045998772737189789624744029493795505844232446872886743596915308923619788969812347801895428066309993615653010221047339496899765854342341849275592849112449288104392138718149909481875192106783390313313773603427409829848997277822112102254625753741264420675421011131162568083905938615523401228318540049982394657816755963062753357266439022363300197468053298309824790908731443005910358266513073567083671049985773451962995153041734316907591169790756254595765155783147013460616418994202546229733658871190379975309153814712139863910404119218567145150724511313254393704016311865891222318585743549660048206523884709426139371685377235757568359711622661590509696577834084159020825541406049195155348705078320515163243397695709160254322395909440177436715530220034963889565769968941908878415250732643170114368295135322880120680462306917183293216184200655333505491006767879770601500513873328069581038061102802135587029518631587025031329323078736890071469840421816631298384845216007698953680236756424214459470030722033777829569626225880113296645177989777229273157399195290257959519117654533957801912628237941461819769378767724437766508467074951248046484161985246338052008848906438766320653243796619844832864774697162099601867247579840433649050422598805583347225296017310338706762537032509512843548443047026419070534273324056947365462524526531075443668587273128461609263524372855916727111156557878834573793835837670374466688874341858266997010918923940600913963562128535857332761466774650275718297227309555331430897459104175577552643256051661839614848257569381310702014294998472946881941870048249799211059712033679811067734503855182171239502446797277576690779120844846919206816602781038546271980822102575721131858972520056318763410143588184862187513983438101021140895784243709219372550869782879216825229044819508882351620142725204898437293715843346460671117201000765806218361482702475659467617091701270717039111991667547723007225146769161752105199566367514981915241105558277766919608485380914126384410199580163678926403130469236502774250269129638933150546403939629320731779128411144384957224412660109284685990567501428132807662262449214049126655518564648329566853985676987997364208732995236942640066057795008328353169397922810599152497279493257825499087857580998486282025701997234012154197477866740901041738677577882583583724850544682493713732279578020652181512030594498401160185947759813012190759584013311835589663242287982419041576777243604973622974881669415573296104793008893174294207738510886422851952131646099670766208817053448505808711995099687850527377399127955181212782160152655753784886795386449172410737207692927325998454228195849794939336533300870276605676563022192052965675832728825279845716511542204218176912253526153423813942547591307170327229812578622832004565602283135452603748080599717577706291008958166092433947447538829568601331957291648838891817969819335993400154714156752749993772449984446312059105939959278482337816539371924398269121421093914420360740546261688771022441565499627677656011242333458850491334343504091592337057356583626275554449617749416097210478504597197656046230106004777803228791358564240477235254422109572641279883462137413862036945062965172465675354770651659477853714249532718979220059849775217182718632400317901255200715684317256378291775166332341505916673520849883528379287538285436764297430250637874644893638354865313669553000404106766997392229036832416762906081041388094875847835702847926487687183292166627391844158417561262640353738602110591505022491087241970163506683549345926271525206154841927955000052134922843043877734765805229750563664388004232881183947910033917509153591633044833754661506094590797610090440192499775722793635095772220579880895782574012304768502121509270270629813393869749967416635147886433133031044183969741122035558131246443446516673612245029160178048854519686444494808543201250366329891999929136374516674132050375989766976894318888626391557393879937579346567271848605673093647391502440973731285157686712067686115626462522127035411327816720708298612299599582396782584677878013111666280962720075240636389028077588119404251971279120607143423688718912888278696726937969867154807345515081486602482902284430563987770654620573755338416780418381465153219620517047920005591424268619954171813029094152020231969089387793994378545288794376747502694624297329324229693025867209257875007994816724087696850884422400050142273665340227291401777578465313875406954452482246671070346420794383407771005621068525699585123119497674760010564474528418841596717529345267051657078006373654520061692926305205075156654181972206287465418332243804962391052859472040263030557086527756089099765574460273681728164377280556743907368665509997800384391656912020962677756455717719421982699332276046523657339997671038850164701955537560510206026793638287864426948564662321686019782087293448424928566475364985817424274929079434971079017499657716098441025285543323754029588546822712820091674373496514525432019345252873126408402078746817901222798161904737941012454400716827780774253073624492367105733335422307469905522069156478594292674096258071476275869302880279705707989955051867049324196781365687539986608027021937626860930428365743104928081521372714075233831062097861413443011845419967048460121946683366565935249866309524945123492007311895100686957660872287627430971603883894629888268121346895583105914504790501850969323157048121864573732391593581731751373901736974743679550739338717561435539308231202121610530683294324683421029794582458561572416791523137916835461711692318943400131508883853701597870527021103868989015693133335706842508823818615058139523509633047386706153123991475355952738755629300553871688874031694066418683551256853891130860743658234280898088165785062034181490365105262390528697740034445253610598096405554929678848316635947464542993533851284359415364594329173400520209696659696374145596680945766863071121885109000851219836795287200051596060569535489640794826010443789454818184224595862377093553324345614205895591563470372697560393659565307690690064942932560814191304669851420480298249723856265126396955781587477390156815909295078621396039446344271235357925995537572268516515752469530546495805252190510642880344291430763037327290079959363024584071451439093173379013239412182312309197677029422288198901240341276503179449649662266376462327680956895172425916566932988599898015412556794841918503272818327398573266768859572541144044691299733456069002990642914402020805796224481590114664145952978006872764613735704809865583728504594527187018790629774580485704863757570630142750926332667231645090463582497502682844889752094351891594368117408504861068713029292759644639866426398663219290684522336320864753369261039763885324652501338330639283575824357555205196867776201437135346870284075589989164057856251206805864187759322386286775354390546947416136664607175016383136881334344369747978945699730733141599870733388693843780301817417365271604197283550572091957604552267811500177638698317069250243336228180451751122317272147899180956841056475423112740435380373596764239326233234473100156012325450896248809568208962945803284400255497950291373900867279595832122045487417918266035529954818544560303170310174189180914991648059861784524295884007493355611734066754974581588503241549698341389105628325493335623155195694364477855864765901461397019141324581173668753947949655913038778550958400686698041948127599343549151446351051876585781480014488717054818567511809136351514611101056329633191108889356471292362119181323616331424226005043403838727861610014943960246838779912431508630671465457650140544302893747170815359223152020227167567149771542916354566585354399547883598682314235360073186292540145763123020936733487150423930717035332339337652052487464363945243093381285887547506628618625318123026305665762507700591044669690140025110566630603777425273932760249946930394600343309900594780710303729467207799923716686176387929149502164651897600599330592537428583638649336582767767903944365378789909554245024377976942910470206029065773058574957329057675253664817780394264540200182476282807897284893231684116018175004927936996450958060948823023602469153807389267907234141778523259273630847437980804229744736838860723769716674231775306004976801453687568293005403318033469291372588821405160986099881459856470589694945594587142351325186109946838494612776147593037360805468044186394730230878362184948607976471390218270989191933597570228833757857264047823854386474439769279415120630942403046783948635111907206772690852187785223516453719091692229145985512346141795087813165638573614176655210259566840960092522806834859321166196573915236233751812232859825302908724179302641748649096042009445211942358223666592767806861417076264800743776573807956362378089786954860352313620714375077064091207250978667321610626991974288874720875223008563098034248067252143660339805099363562918613351124856533546485672683852634109183126388129448548281211986209019981134236617456732905521066556011298348898446048459733487129866567517480303003760215600946882355978128229122269046543268022277929818678693331698567633796299657103819322288679522409357305643828389854166455599502430978419490090850427490640693784718342137281148668911019356836633438531134940070435882037739632714816696153461224022689633601662569729425251930810642311438804427153357411668549126434543250375847308791270320013083288313644633296429719359175978241348936477199112826628717584496776828927464958559471178009807396438594764038002562591757456549461913059673445685308713583648723162382588475910435873784679514489285825330294079950012685960848055735214567477921771408096377909241375668167561873685147960175850848205292844753900848472679989347853472682998256492308304320775146235668649894495109644541891721205989739437779736196714189059669409202973218349499942665512588378281531574650586518574269600744049646076738053767451696113912844986371420536000621515426924814069521293743267978156398632817315098646001886742184595520306619972470911076954700913766570248960945912832188508307803296686264065866879860932664812314291852933650322180798193116176968213946289084056670757676074870875705674880199383668163964015910357655836609726843687046251734261106924710914784149579853962955930917580630326764418240429774306766458979187725784919496080282526495712545141654797017857981101195150715650639638013183990170068959507764366679781456684202915959374349701582460635243333489240971345648952610100023172887428834726036218258429867627789239683368480174708626266801694505762702249796040775265324311392355969185536923457724384486929651110270176962870501861895021391198597746388344191034558601799583102885133876014676312950570332325302032411519831883380868114068877641421922104355234907488077074139372337003111558902052394540747454101792475735759763586083164957574345876926721350008871694701354977064075729674821702450174418453509082721893953901514463943232074205814847682168986564141932647390123354532668357804691996848027139582217451237454307176740529505905748522653302033976018285763170785380980052015459749546436315923994657616001789071171899873070524813248344397846939282425399540122515105748093213473652733498504166925703077837290334783550082492660503332858204349223479993178419319416054538533452478085606539226907682069897652423376202540464168960007287604460514634478654441985161758118642995809682946592626505892798340771723351466012355768594313653810097846263033855458488350948616887055453416444735856735142016417424741396976349716142650627532350705395210731047085873753750691151503930885771558926358743685155097688931822569395724488491947397537689511968704366709763711531407576984235583907273220239480489062199098574773880781367553834239954282317260948012830509483658903653399736668236225970412211708069962369827935057786859560690162930968517246087888251990657134010269693851996279646587384570543554151062695953092261277900560359796465861590356202737713170088614759757986410109411907812456308574632402271693557317412985977765950245493772335163925069289264570748743099021130819126142633213131248175443875902430105832714651064799354336050409994743598829903676429969587417544431658517634516259001440804202630235711543425825967573691295980344177116772523175297452513664232696199997620477141450592445929619943017178893782861089604562096926537398406929810812684415417060751456951106794758420958627905024363517395425980100593372798666002590862542509489131011634148100748795241366321106697078890227438018218301857748253364084224159544718526170340726252251648023403228695526930553886975404855624895638274533130692716315743836524516358501175400258410739264676155708541892867266869608632303257968796925920516305475824138294886624753596448312355266528472754897752145097061445732877763462022739333315321499750743408968702032109180906610776009284705331705917230476065846370016342088686952540188711697507721052141880174378503184002271024138883797460705562852357917280509304515063661027889253440276576128343606044585573051073591833242869769905499858260244649761084417601206763191101491390764114944649287046231871046039367984690262035668735570676560037660546078007713959318313887812143208194974263359308463857661946943316558269826265163239107755200130350580415357924735331959184391900532271318518164395884844496052787543429037112132246068759440921350329171185342413309852646287816354392820311438586251573478878515620440108417498179729384407859341212342664534215562549592396977127933939061054362506123659706366691592818902855818460174758442845568176699335294914314936792158863893562106842759421540796779398496749874855193460530152948098272212679102206119951140868687091926855339459119363396386424398524196554348200624212927000798500579476677284796843643619664927942602693302524912161591760310658018896683790908830865755371078275681820276169837829829767324778462905842352117982667133419236927658515340632200567112324921380050077445188445823421651225046440738905929335132969258494972813981625353057444704821590870860261385990006051896606159213285810076391541193207646970104848647693081213497828707351458657896430890757026153856288250637070840333571539674376921083286257272324597866333170798265634636803542416663390370238113029872806048568810512980496809077418601829955649739342614657148287881453644790862076764727326274747497136255196255675338684558493315560614111276559678235469549148345767500170932239207864604951727353036607241866228650259194345264440090949659840382338521497833477317350755537714123404858469267070603906704887373509131803678333929851095381900686702013371295205375938875753520082774640368568919804348036435730147752690686638933042954616279159899856248187258303549003280550828456000804627569151341175887766602959966251876483334613012407666742432260011586872608288871727427382227538440781887204372406102913084522179845834261033921181140518351840190605145046223798772013190424226636838105074329224716797529390602227934397660614227348980670983133875125595566367426192277994370006692139698595528945641319152798346113973012739187566229969599738057283071848048998950182544148708101663237412999949239881872573576333730706660706333019878803735614369416956172160827293017479606421005068404587549877220148741479644759205630123602314751642756569352198749996902874522157318259777815918428544599597105661825883747378245005149673335625359675835000452355893545561100392854843934872547574268729165872242579185224256013979985392365586772823426114413434823500358426167727488043527309241404766226769003122556605249052064162802593517675414730223207822902127861004465940265548790593321601010230545959362556209789377980541293390171712410932489465760469478396975694776374526233924810491215881981661159021085731243038493884391640340507611634331210338862533448232174814359792424513293326042436108236430459014573650519918414307673765764781697404066547770283109040760254257922751158090480866939476878678421762521546630964151534298870857899307383915791242833246469890107051808210851040383149171187319338677159647587711434212345963272616765608959330287874866523860481246466531280470542794211942297093809864490220577865671481964610071361103183613757281285184675431778005038794766471409827847507181066713243141102064413210273813533627177839593397397304251408736900772868441219263968669026709430455520740688288028256452565059051515121842213630877763956698758266545819044428575125121597683748532912073665016056096733225810065897433315805773544315470650496391731222566463659662551946240346979862707236510351494520970320571641239760457676865959869061558514151766716113902353188975242787164930431861619236853194010624910258930812899055143135086749967652518713912607701594157580622177792338237609862700763546266928623482653116267960943776672769390407798619721210542294017128041326755403306746912078380281800698061898496567048598370261455211317520629026330341996081510580341525538562458727695186625251285917135287813760035819777662642277315497649753047823578542219706015845261093873303521874214407899166279201059451574393146587935604262243055953868155573392649513873971455839676762694603336839506859890430222528591579421712275867683697181577687534386404206597338346595249989450853986164328137673647463377321202672218303420861073846082249515424961478564303426149831291328575462560113673977017664069170873578664502544402663567278590699734975421796473063773267289750190077740622054906668340742346890093384733655687950208772225419363480602315335642684823112038418026573401557089246496036142440114379207937808996618401672527940402232418213170374789948108634415661189224411222102750701580740566377803618640792379226316704246836524901188309064236691930515666852178046738142262433930564061391338993837322757069132316150738785131509643658111129728791664181039256954233768095594961596809182040931966552804757488166962761383526209633863039088615870587167203396726338161958989551885869581009887709526123045517035036301816004863979873294981609036606070843840674461486801053626520842152363157760043994916429448448383462990829757786066933843170297637405026220315971353590307637132902350607446662889641266787139589159487619191058218106898863104260921276989995939398310603803948636819257742143541611093545723886729175504445351073992206434171587648881786375136167756780353115324773460595877870918752381497911949140102236518344981641817278535167066151970112482879584861584073248900883962641781449064584090529984784719194748108308541885771982226341056827526206771137199588099851485681466261297136533002063677377164323071331090463619387113114490388148740568957204146105692599006270093350442820357045865538608165844183852825450307005354140458998079263855463926440577601128697780065182918398545424080518273641039544122340102750327973869769023414892219595265916481845219982222163033562280422383950269864921275104407388451673940967220096887500845656760848555341545152197461253845572081572268173170659781191407986977091864793650594435939098605953482415376496284634560247066641736964272915999128946584046283882036743737109960457003380628993787265385286768243585660186747496049940640387819880591388039233994768936286969540735711879082882808431948680825213452940063225934069799647686860609409535445685415577611410858301509480973894818709779169640739764241416612508455124763908057851265987374638191272385607402120380514228149557769071552725799522069675431153061874292193836350405091944372370479882376852787160430825761775956910767904239239293882003355023803907946428697367733648085705673329632345341549014639408527095003851731071846214376992587043651460935460232675530556565992608925333186072057463730582790043753226406812543926024442490414899787092205899862927598825916838191184456533400513850377600720293157243057003207745212867684736485839357589005109692564853934073903890005282169649942657047453611810137471084792590576429554395627123989316265133688111558510516380682898993891591897327352996678879724354836517650688463297941723295133936594097405349784002101249161946089265718543194190101024003780578732188948762955021596657171440063180767633731996192056383930688251286341454675530423331048719056969776158627370414947524707907974579162244479975395923158133105681083940564565043538540732443307935613441338354391650920918484645864170165478330456815054598808146925554170607664731654204391016209186238616787225629821559338006441939533158024879110574447409532664981463623535378547504877455974120801479965435776640160201052032831693476817879351424305144387944368349036918938742411508865941850702725356196615000207350869558015328798002221403758133137283153006232988962748937703461174040146808469126841075302825132913708907401293561786758033360601882921281131103346355874286128794888610235739161081770802394208143913098517327945117490903231474265953910051649082966345055772261826610295722372046019250894550244499639460717477609102993966418307103399312254586771506762256377140184469235472401457854646800930072450353327850317846137987831660160328773222876021693218724553226268409798308401189284098071878724817552389969395415576536792676270410598674617661680683492048720479144121211349032399265663401571487448735407779974861077729556774210210856922183530782633736682192037587475629082828797996366152815984777084146907331448912267443651935923335648530411033672556844767079235332928044542533578974129412952318032406590639529801577916635748791567775582022833176588871979113866123497494511790776733605971606983108278795753963880368402803488474367305695100539943052524726789271684637232550824159174407821130123672750275432370308065382756800468323025857824359227606207318533499844293843239630063262715130419991756792778104078838489022128643466947360883632212794602927474575740048001443610916511988066930888762933824082667097885638658618309419895942774941701287725860362654551780348487759468632612259496702244159863534129145840033386787758493987912897922615424697886581218117670678053573780942815922449313638399325138059445905731697348491932105990454913128560367869361541428839406278732501950297691963308306959511359864448678013746751125481676453895062975565147418095522641340743698401025478218232586613496384322551464438658460336914396838428399051307293636431741670796683227010377816067180056114746993107393398352421260728418013170516938174225026593536724264306984148331448687736654496150172868514564609429593266557642928257675471709257741485858624581786155355505259650839403884807343076516125498913885066515124133160801895019000798650194932977111505638366751486987470209604727158185094361211400427145485897200940270253863650663725672362195133297928562224794295254827266276635516000189734528096036565515985161174810554232507276001765474541833561607310877755939511572743797200658874244230761798741672101745258497097371227789127329142856180401175799559537150791524624729853691904822826939086230619223471157191078866756436281913912116842831740694831990408248411694758759960185331083256483764029175517286637331846366982815282607186826794620517476690337057865369109403654291033305824959188794271528942922208396325632413546392960152423147561722804535497352806261534044062272448378556161227883278049551927018829538562518168821863090939322086230590577523565154233017669888541635920446409136947062770958942178283412271284808555671691961952836618588216257148339114991983399635474648890041958651597832533409504972001897508000996667646192007747112188949066237104268651278593610585459093336581931807689805913956654153991142909842364264979438904386546742679308741059589369005282671757951498422065584841159412144067768291541089521734193731414547468812343048202975721857658191411526750580371352934528769730010255657777900084144385760021878232626930140643304036596294728693654929377287511393789618326258563176720192883614322239277236436719626369430334910098964391721328932783568937685356370672599635304395720995411984153527491681332356731290551506767633823928902441742615457541742907827683396003180821301555706305905885147277132396580916491270092726597158091699972854426979525195435361315169154582223388591723104094342880175034667753188761659250477029939763121121573987643765039411450313205297776951165334732361001104537566653325191964185793180704470146790529096790378465040583053868917668287369857354045913539690470849121878138532581864784251374069876516393826814155403359531363940270793627684103978827532408839473113284591147694755036304963872210859615528370191051858534648414308588340758719498232022948695157497671820842611926174906378469893929529757564847694879911589702983342100415337765155742617303976374609316587913212970320710339058146491036329911092803920739401167865341736031429823992034613879075139364105433619868760844495623134844891497429701770808121006739518416885465458301830085777854130023305427323048331797146741218542140108861935921145224890990248763898732596173527689929153730288503054085308884499304634196762641275351885712146424974936095190026994489032970656766943784642146767231317472195928817821870182107076183474611650463929714936834077543298569521022095876554093308734870602799135423463079592717622544397198015248309444946831704901561800739025794781551214505462042226106100430609312610642261035273095524041256278422586545084466100319584367917288039035702736721332001833147140902872570087053809325486676755469740560560645227609429879217813958350279617141236829950893007709103185856839863914010544728948956171227872104588167290569510892226636872345790308597476202943494900800890029943791784018693141646199946423658757486353561775951545390596638885378333252908043998545537992502798636541540297833180347356205068478583184221279136028483816718542769816720370324724106300027300370254231486611239294010179131942437477925149601321585955724726621574028145054538271885759232666756716102679562885175747018759093990115208522795208270377167592094145149366528503582808170588893560208983863229084580454466851306812963795058098414021849069013145271736803749052707684095729177302560026493851330236302564828303204801107208705542278481033206938167846360409753382981855994203340952090661514519210156059272163841518301051751182043390114727078223536441366955339408482735224730138569605349707754269444691096322536070576176074116096366087549534506303200285165030388447934630442835671915793097634903631530320002421792365161604320100166889994125156650061628931829500691450533479509788599730471644821040681267378995330162820253505169373560620754049371021660161138498015144122155036613970501680627265437757593834739694432239445431617038804307388565135835204918142232204629290167954895626081250895170955938961947488375009412031085130097909105978440514997336788062702284022535660818611024451089547507124987594951652769004071351868736227754604381060604583138941957559113534189782449818014338112386456007045629373572290239389478352033541908455260386667304347493275382043075532742468298369902482313022337086852946313246174400038693362589735944809499406988583662608116378427456102775479705739737978325712383740925464753423977829582842002198143783252891313311701563680725613112365182724315113963007340534820338614537679056170410744044797539618444447233874531722077932504602184233175957535882669669900840691515725087644938030348670144516057943202783286978072015910600828876453680948511596495647302697401157224898305533475331294596843535457175299383237011805939103638373064124201037252134012254668513620451623373158521580411980923752324980643723614808142351337873347000658210355697810183340145489996096489403552833494616370390475445810288120459071089872995438872273587886742954793963456848872706853048868478031432046844741212844452073465321939433268425675237767390858043334157517037756286927425719119036438872132222583468285253286615476662931352609741704778803088438070082116054768404062790122533599382011175046935542633668740268121888972639836417176117628591641501671591914214550489303880255128508815836816842742786213487234182546471963513095402755517552199959928124034382691652661422839464085142133882700423678176340135734275164852677530229664950732149912798172472901794030548156138555315548790568216069544067998346244039855198389608097225706308618579272833996988942949761858865461369825075871960560071219291885597522505490949595283167956992631447715329094290095542375343236569953902534161939087606675300415898194471035446626351589273627019591769174941387961970847609662508049971989253273704991388947457953097918592083900771856751410455797755420348466231192521736436384600098047015318050378961610860598084704157584917950033014519579198290164653843817055644150151635650777662010436101987653775987082887904798207814096709727496542660241905963414451819748704996341199633018324673497020319998868102024025331515600861630360121398516227110503778310813048369636962513269108602863705231543886142802246348374967434520423281697633443792574874080167609885590073919090408470792110242564403784558853381206330951827704165881799539163797566339043844893651829236977543067275004778953934683327715601490281806968411997679030866705562017256660270722631264959930543179034831377627437490251560999651923235609308519512714082827283589818788939914489823666143870081698003337162891653236003292859437928538882942058444514415468902734488122387284914177266492615386672093066859769978268329127111299439783762239619588527832451710678860834436403572899422025772382457854818249238301895006544263551005223284736596676871970501918002459620198629034914682691743088832217992504029946317433426301085830118094841197569498078781262715699269895986678996380843207688989185217710466056346597521939150709455407197220754936094952901073853026208282817491586503140425223413682836123928688099970965499228745041938871800734163918332457559271440677835967221288934201304418210153960005072609767894861849106360024520469901875924988255377716885130928768734400960536706205550107768043007873521380918570004309318025805513120473830484422111441705006772265852230021416369344215527272995156992897209424948904681106847397722036821283507182404420050872865340232951316881548636381792758464161273128583070379505791360577715760277647481128187180025127006224900020069674273214708002713177087483848181339092128055448548438785610517087746146361443873459471940908527642966979759768604078591014104188090328406362899629372141123101815352311350981023488851093167922989377116741985711329709337407773682779383251737106323675374654379572223207806102206926081428190878377541930843687940930876089977278875329829869857591311492960790153738253017082008510306721323617021783193419290065091205274212081884746752365217059122366936537658742445014893499823498669183338055310697722532370123277108931388842505661529103491299871054120964814380088272740126475969334041122427727279824843129812640341019647785876403452662039616878943763453096832616984284685853698664331504673199877674822187511341145760388895962298219518559542863800796849097492242568889479826706452042646094434376389542651036141850978696264742365007468482688295194198511583104905498257135108893297122732590388771158613985549543759875285585873506538849041051536699227311031687619470166832731247014303645319813120082023143028552266271361168023330775187484721076940908877517291167954997782779439445959545182538801519564224734861172452183397778772864197597832720430496599560748313726572417558854307126670955186396884598806807697152593880681154159353887314970003510642128199551427328339657177648860380838304094543247724445693610272937064624390301869730405679248375913888289572443725182055436990129090978121596811204048642412853469264862726812435439539195456465816037317191609057939998309760190413058237208095396449600069687112182247316830712698238645279337914247824952791622007761219407932176299409669962765683189889246145777948251273255725629528063282126794172503401563218528023341672998857896883523974484044710382991561040303027684551357477945341366991480685194831103864031105923157516926369184199984253762219510712939300083427238478792586001969021833546697062246807660083727543292941041822060084165705149440880165453562277995951124670028765884094765169210289580098034283052208662670092481090281815267029385466164712060113160096006639902436086235173317520559988699994389940937407269185930125823549902213906643717020834259119255870418646938268411570110282459749737749474715733469171135790752566038717430036922752186622024399180201409163169280360233321206729291863384624513854595301372187527297625588030058847054592687795442876749521120167390575445737299760889717453999435212496437455188630263864794904576227726922289512036289505315539818301317578154490158803947388266182453803943799366280318754192048028324456293927150092370053377461213473675745863978103987168846732949959436943983565613030649636016818987500146433212030618598587264309997253380682400334742182388906706545138988852777670897782731848370763671360159546408145783135321861784974055416312869958416319336799425002633267934656566881863163484800963703173409045177110158868506902313149866380131577811984434038396594211367831060565068883510085702352279029906771103097874873476143256148633000875372381517855917584431575852529499732572711225467930078351065350065975500466676447621673496998516768836420211466854204698825658527595169104804245362143676917592867669632702595604508070392568719851673304753255547308703652766982500371810838036134591575113511607292546694327458598984645012115005477880150056604241275339327260102836804062562376305685717389521547261099194592637343520494041634385506105467109095188354563414370406649977130436619398624634399091845500670777686453370056773279121025952683025216365178295007759815161927492066604829954622271603966247445572614646391433353114415413565905089658859506006221148512963977226716900688558419927420742254185624022641200788484966900270564682669781296504329751258335981839703550412932879251165646197611045012020365819523222211388691861881314525406441308894212793010212506150388509458537062812284959169543386547710041060838224932312982608732859645294780741926194769716484102283457912880927399711440028888924543098667828753579906821145668776638170542669154718062993407619995510662972288076450947856662738536745799716565360372042702997683097288960017724126135307029350821720830889699065095423881610482913915038102508722644711258839041477734225709833468197570264105038450348855929383073718773107376729018993757293129125007260001020315159697691551613630722397737208289775554545832315676873761293545668194944177191747569525547621662573386681355392997792737615949760092029868777013293436911287255147578774346130800408073492566666997473277683223295840613165227081143658794054064602485813292543309885657298687651034580746971383486735079109718853766002238811545486903928849458367737000759374907237525110864571666511917572114773933856463286540492106475237924060669974304837557391046932808183467272194975296081300938771679580390102697778817251671246967033569587304003843992213147787798017219414266034613758907463403065367472541367103356219059935253579405117983806981915748044943122123043611223829884899840689385926593236453952040607048231000599340645041061828892953294778197658987834434556518744016131822771947077816979005531709460129985859825642944949079474830106748769729044524059511507901703762654391802306595071156374622838912421067023320341768959579797701944938872067893376937487661674950950696954102171740881547765380039720096420951947723045006116669296933000883923597047583767018525638711839514813017142065911549179049971298658337232649415034196835768385275001832067774008356339653466092007921707549157646211549939838530764050905772107788303841856094629747350332417312165127889807195358961146909407810447053797086039536051067707500274806905246040534412346620206425536062468811200843898226413356352186201521128468254886282807232045100947370768658373431652091433021649495135372072030609949872846288187415653408493133505801527908154461671693844027346693665342641746385883420647737187752526055906194494259457411991940735997691498992715520144003057206381889313245785762669037528480228571275827351633538037143326856670050842250011799046333696455898792170730295295028067417733676146570185070700177800217268639782343556785721507247594829348342626976633197989629526909153493372326972331035855924021538705288167098547148617412828807960872694346088527544571843608254924615486255194449586371612275569805425812869958263697821523599241193569128317571695929792556720211945886993574971207323503582368092457385264207875389142388400211408827227426059829377080576336875423495247955054062445449452447881883138422867897106423052842399891011395389185379384974399084714630248179859687345084764627177911336921629902170864053104852004464679979625819986762558408724218365815852833547862790345615263338136463360187393159491212691158205176103650608788212256140061254978187881410497949460765139774383084347985018860446898715138167189918951691039997904967878628308762907284741643718972492093589242913386322138739975549851466244652347430123339263033575935606651117791073105470200246624868081602598358498600084414876205327248162462857997047441546235618501527026308470915265662201261069701891031194145485180063032348929161430582882809025466134809544413793179909722248796575959111958129619698909148346562942523067789458737029408862566080072423987361356109909972208030705863800353944607289066841629709461571061275544028596089881847292570781100627116984368429391676092856040644389200555442154519676895176503486039836117617692372604181942453516230555040458351791641817811169660187317185176355247142880376299122219894194489790858056322097053376388747689350542854847769372864481477728662605487602568907085573955312285056689883285744726961345787954834517873788142124830956917253856010951814550024423382188673905846451279194877423025000188635503357050583828463102655797954945053999396996329148035079853511293544828207035755898664480480700244352418215713392683975576835560914567594229214725713765951434928772640236584983548753871424100971242654551257740632044382838825769613434831201100158107230318565563852442118824914606032232460463899552738042331115424435687245504484868384461068743077689395203268582172831490747882662925959490723268558305117322965112530212187730903210900267995982832377511803838544983565491780110346161549527444055729703039079219787380853069837518685810067689696213583001333707635517952187283485997710830303044620200611402147099894121470635468261415845644855915810158296856280946285101603306765477604646572170416048922707622604806352876857070922272846870921227222723893697817174741466459360039637665959057786841053563540260292732254139325412058107259515136828727085282322369515756815801045749164000424150787295904923127514931752669647015745696981188911401141008274846307826514761873282111131619405423715650240022328209761072510894658849088278632688148782752858315468589640830088484845431416927067839351006642817020823300207164747887429007914388456762010859054530381511369468366992499740533017874158461490386765733478608660202913133350151046096701302788316633114526086315685350308081444037535202101620828251510567003759061500056714927809316566641132744645660755286211274536378817985155332071359341149744662576719169011204067399140100058044922241458050836632246502728329719115446376798026806262214567055971993684851987298453948931238075428972193268151061098678161715218647794716541194622012122069006631146000921168676565456863735735975827102294109244366442355427239523645405321152811499779910605456655626911145540567486559402892912371900757110539256871788073379598435210460141098447409923772000998624681430710209174718830398540555098975368322410044034607821315184968811315355349848555324674031229737718446155336512145777970566772293333950961653128959430046189998354895665543825417506849585036209701329668166169558344777357170339898413754283838361954367171566965635797360895531251069867961943635509183698178511200337296208462830222240021593047110338671129322398494249026943396831802139657428665313835430298055616448249093177071692958474354923664780459766122063006639746407450424071699828607654084370843823794077529851988977477530941969790283485291246496428362223287230107433319805937849364863078357991141950012091320316686610162672867161145265724108550504647295453428502938556052423049031025651103923932260329572495175632347756724383777648369985241427328778974400526330848335413869328790930390577212200247041695234153861248231280263627377864259507891262122458423428658736165107201919142147263342114825828517602817231366500961800513609125277249629537275294468541133642654122602293906393876988488133477257148021493925859585463424544489189694675556543428767187743961839902398023618449958173877054506841153542762948397715161007714735195435507484736712075243135631350365086782497380431704100758212558164637885483489443921187696627695484238530413306685016964822608660834550282225338743671323453554580728258495832108393421087803047799853929120021569029753101653344047484982675809132004407775272096028516385500034436557985898436097685793776117912157645427881014229400579592423747307962711347876292229711948253507470590288017756436591050031642352890188767223428392820077815739222865397238592512018014130463992858953296690052011940923922246528040882919172225646238180791246002226524887991065521285717494797047914438047097895466891323759060648312560323393002029437977865481699614704749290214614548466928410066340300169362327608835672752544954352047863814695323529373975790301812129396004463931381095767773258365629134945678133497262494433793489275369590529371760194174255041250832220310154093652297812896704784029985528572874822938799407539793855873188798439077811270089977820655866973660289050008365347560168988192412494290511564749451965614735940331239910198225723071998940984693020029713084659671078971477272983400498738932192949042952580765444797072787187949531987281590012917638029965055134538998957320087141424539613984470148733208900576842030794755487864176985865798447560892526228520729365815985075404166919785643485905070951236733069529775631511851877479412889176306182952742735416879015339367601084319642124474128400021433820865905315661666186692728336115196145685962915319724245102559836563142380978070529307285888619110523589103918455097581504147807685783720003438752405734949796321252340495681361176560496578811175299353717809965837758957869657495269377279494223378291250693692124805390953799637433650376370406550618005853263355117778402971709106940755587481564636312174392495973711769660043855971280870680191469657467003744455577666182942858604219260703927053393288329233109578474768207191036021016211427641282408800143148905210711694989234636787491893582668450603464530131012294183205967618280072864928269955629720023764334665440539137023719171658510561224477710024809201676282801409331001296425258204218723154437511306303361260762681069301390040791535732582714574109944948954417537780969021597308296310843821777841004359117316004317986001790376514844621906376275190183242476701446908392701326432902350508721778827535769211156777354239768839458950991259562676087355386123531828096627502464681400623581765726649456647912735581834362516889982341647783740673784007331376072757129027650377947345727887351509553401078558799197294877865114115372098024932862356931262725127171067018447369270427763034915832026691761078526596692957249768515777269259903544142677755053131417818043912942899838599705087066763174107753977020303593215318925599233471487764812139815404045768951098884337687500319817472383266215414779941890622858752362733661968363694399147303319530019027851338352353238246179069495758898611963735173265840746686031322102235395305471246465272371738875782924931064286759336379845726094444959739633120606891216677427220942304548926941840693660414904045179495752692086783711735855841299832503971002303413255476622027297232833493740660660647873172071249912512383167090094188269471306239401982576526981969848410146683729995902188834532950264118576797169346583330975754576344933600618258613493954235542277895024798804544542074678012448151588790278948199354940897412854820807221011406817709228251422451369867778560112409332737745953806750145661741922064562740966858076370512206322193162283189045343802887692429318965582978982968768180295879001845952871577541561319051380414319001250281153914816612160190774618632050356201175734202687664016409935284265260920016177410005488906625555846783690860021985640896481858038110884464007253105461871919485338961827638130174016536741183605981470706542132409952604752128205375416000001404182963773958479618318720666359339615215120131192293313471085926128536129558698890557409930973421068556520590081161553544369932327796109293402111325254357677647276687845185076879707075195492028057896812038892618348771208810400287237639644797641918409766885209872977931478560562478028246366434647942328398709465184276447584125002663850015764159466262036151566989120438112129786649687395057659596325263386799656661266164742316473703865457805409466491697370029001729217254568342240041075371402751094214819855055482933621250665915089821461778241478058028303521031485979451750551802196998477304962197062649046816565718939668613749737885600599611683584425182395145336300878965242026986148390470683328043634434050356477655483188619897430262628523939342256167710838007348592301801296966907601140794447388790037619276277350272670548019964895436690628330855444518230709216333731207855540861976167157380486498200680845577406724162587666609087638986951682060894040977042135689708015149768309916711331634005606509840036781050552618544748848667757017653478205555953491189099157928254754307596721370571099012925809237428992015331422479704163629640282955735157273326218103117463435195492360818669815865292050449190472416009676804450262666571243728923212271619642891303195646974682924407634669759184982189815544217478830825173102459172251345056271315768066612607957771264463734966648804382567353966646386724906539613040416195342281472763952778213758014237710116956230722502144498144366303361000304590980663854861646742200049261180582786742558378635646555930918431898866550956427391129225711280563350371040019507557648248854340190829955866962253870106720532959875502094937975454569768425931139795266778261656267320199604900487715279090750833233222560224873426019922969646750077237174521418008111937661916400146021508946158207186059429791337746879724242475270178382520254919652709025101774246589833302584923006176178973528040321873653498325211163113162977828718279888282021020575939303898150869549244478700114440475877883199263977677098997003621347261721440894480171429847214116488353763378870042931050242239247998658069210908443321605648288235521034510559441106808849865958557566116077410258874280897882687449372061907661569170759431664512605388668415254063529284575235688354118561398130849174969719014740930133680581769505883672734734833334416043074944680619798283046194162148619087557688715538150391171537269167975224453645019427125514459803778284203516744333023270465606952407401234998863573448974001606781302246270656817819034672094516362444470885121630694506864248374276146518190194624970499053510415523477410311871449736258873088302090764122289951114100615877770147678174301042978974204007200739480751418553124711623029521706606250513310416523650845162235059990468111710201275400516294790323123934915487358268949175322635917311243913645231564449169657966905748833445791769631014348164064178733610849871641386082210183972569250679731268842276994828131540776867836049671124926121016548645294429940215818821150428887091097751648623087922065532224832422517206588721238679608227638271075768390013057859384326998551826496762960228678135480706030325686680389982210404914957943402347940884994245215948767534130340429603147475830563740717726657046330107931208349989202105258775667063178481391684296507953973522828352794078690096102256776973343229491569371087805101523278130019981102643485922430073052677613451622863206445012401994838413817439979701309320720142872592659445412417715202693947203226888473030720746291115764879131055035400852498093826636563816717896118607118018940478370764643960626352585671448602094187859390024418088723610190984222957706531422406619889440145670536301921146906701687947809208471615462468996075023013990018186198993496066214503455295516526818819810989666943004270162381234242268615468093395863183796780283691776743376908886648937596864271193216531964999226292865177008438301856022411019691583893968908460733197590933800306161193546729641588973995494475932575876363476219976898376448068754668436163043146073187628106184115282561772672842132182740699310471922335054448395634754405134739267552194709747565982326162642904806464792526336771751711024197695667816712386053512840315236042266922021895096570736504018471504236486448854886751765501657739731284471196445701078179974606040378042985994413488281794123441664841739563001696742096955126075394936561544252722299053784185503999848153483407826936910728658119982795142428128623362042185088965577688495228692957739342099057070014343454467789705832470277212633355836808964518279168887987915876982376698113729188222427761805557507226190379619459800966518607701485667848305253344546577649563888311334540445340208626827409375163221286956437394136718946635652299559024022061502444036489452966845909972781234443293142861770136694703846841357077841800731309093508608512364786771749916115412449865522919654502180641149081056406198617207595898883162150575600600317215066844023676118150299728811456179536116626414648183503011962762635543351136807427308181684800929921306855078091216567463631932785927277367725769686900584910178633833261781727061617092501020696384378609314270917886096059752638513239074192371762924280843642774388464955762222668796288262909539696129543625073966678786701831329342408010940174234591317013304421385713228397324772453770437617371680473894799869727670695342813077259225126822175222933840309418114140228176809527287610140772014405795377722470053974321560046216672176028438079675645739378287798477609069477248934575919130304975636337355305790724338938054728168661948959047659876697401943956094394468593793773750073515877297672206866891456652781815886005417233624096353709867027773885885270565891646448877140883746513917068842724823978521831630786187330907029940889719940357166950396480087439130977068372966663999264602697059734060592818419019017515297851030417407375107715620847619400953355273754429822897075690906761797243850457049512139268924259457207701928505688021429392560789896883255097119257937335537571654000365757211385344831391131071732354145257325770238307093669351392034868866004156856031594320152291468295188449104793319153514924518230267303835079224922089654626703991844374011986687499428373161986648121306380475885702208945778328399955155046631847824379866249093038944603552785833239405053999832229699306732569276874451087655928855846452004144152517128797272093313959471097202964272515965023785628022551838808805056215745227563475697336092420247894176524747865288174693799482040708962299616016848722438294216253858274342180321572613814096862107290671624583790338218414302800622324272694235407026249844503398702227604157085730321766211322953537750339731888463958205054350751386454680131660452262957893057670510677550942895646248300746264427577456752299838368695318664537355260528934062795991669469458680629039213770494091193446982524156981999810342453331326632019350006976581231018703244219795124137022536748315220405047023696175907166298979442433654133118330909090602354167864288708524427336500571568164643928431511125661664251432188293921598433867168943306824637313563471359244184454990087018560190010930455856634261370146931624999896938083911997674131549244050631884917252557823382299020357918327639520608364616076835131959010406523091418486908601057240971843535063449798602721517158693199007264737950713934438634459570832239370921741126196018463630113457367188588333504031482776008232034363352245515284798000973027253878442026455862062425231375161787889091823400678187214320535474129299179627221198696856171139568105919713556221333284866862364192391257444533401814537886943295986612536434696703944673988600083325321054620486986331605506341474608585468077620347128613058808638105506140883144089440637097083771516969761116650776592297849484642607159003818507761710814110388396653132691323076940694655779240022182155943299661831685730805799748836247916569440688018912510192603462524904595689207326233671331300771315065790322800179540726534594216836564938790465043031953057407191087740972821204956061260991913206335089433047936858339302006985971970157097807910514842939100522207255646591051544131155501770615490225474677801223703882097741219585954109838301503587522593441371183968104713673401190414193330417046070101391134838449640282993604052190668287179716843855845790512615570688684497792023440011311005190604507614262920871008045275440086109013560070614159213546179356161123902776243867027413417092178208143175010472821053528466430636477865104288689240623294307021862983882496855405672885253842043998448729963219065315316780422890697124909753815490158322470984849597071986932780989629822497236527129037828458134494701312835975092764886579525973585015501752448319693177535553787729985678693140976095555721639726637872252159654285993232737288906794719323599756857636361005436939050318830590354468865811201202453523311999765930322616209405552967984874515820107884580827258884851573514783979745799710487507178448177726371315023605683255182261438138316825743326438489349446900789328315031197762270387998735385923120594248620223608281981905951030230555595141584765928289151959990269064438506293891582327220253210359439082427222504822358495719762381567951571705412642476937211247372918020806458080763198659961406634501683327504885193906777137497659036564612377248919291863013309268085873789509041998947467825850484625095879988918923970377998695020580714568038431618198423733765209649188775326902317253600918435892000759844338105646038988246035035325124256910778017986435546308501998673939887269309358462691499662972845973829984782500463836099655570173181921705994970511496689149963608220930725346529816267243746100710672882564699233386141906552590566752712496114759372722897145447936513161117894816753534900749174387782954532121261156929789247680393320294544569930847726129084416495813215211339174418481247860532772093166504289455109221370928476809653685821737934260362193881885485390220521969920331229597470838809050606079987726487853327938250237698674522986105430693025776989927813739236742447283668135741655975863720049450646618761762578575732727562752347464126387153253869494676386652012785647446799503109987218639644055710682535320744738260945854549164142161226339624459479954193108579610675578028590393150044564673403740098087457256395071786811439148314350231704683672985989682202007388249912235351642134617858138739015286064592368931518831525740842005032325465943271674485442970421462825317876664068573058574116352946740620949494821341949635222367808110408077495513799942546010928613174900521416296709068301309115771635900242676933208867655908373594407544766324409076643187935677197818899948492005957318923799838789247135692983084083095044662318773778808145855191204472474235893758706146281387250758290512791135716209205115326107180758780691741222855543253617452057034952503886611475293945279635059143175540856876897352655727789457318357196173438371411657116091039310752474195938719881447833444385512946267208529766830575604143230302990926725651166939290445324424740999539175173370529293260626174665773968098713785787363719547226194190675567023466921679120102400563135181055127628402131735039272768955242701454886082840038194114476190288295756535367453744024481481452664744594954471238090148132869490433608573196993553140139998822381785731921375138505693985103115244038242842650227083829152394509602271420515822090932022814067376018325502526973453137165517854682117351366906611671054298321708300997004182606021581367278527273771391693449058646386573541665846943813507473739956604416798292528489932193893370644959654179260348890284897926046602382377891801981646092585228845578047973563774531157829675587604602400474904363618734000122125644292179119584244913475474128386210400591966181984101579616503405740933665617725163259038529181225873561005373065633500367038935010440682392537905997081437488815955912273177079107287455274897818313511929175457421248007434195697366311674400879861044581243231249540625777565286639536477414952995779129325718452418204748366179254676614650510919118059561192896002536381377249767468315127430054080146544779281343622922848830268789106173635135851026781240969803349067261824839595836822611647784105227378962757371501242847857841507214800015420459724975220492635666355509261867393345020391124151461638091519364954701365710478017974105450087840716314875459770943600347231320693398292679663827942431998704090768091225514700757875974529645130691582122644262416732258147228888984626252217173789029963123156507038353619180630959103685018091694350850404471718205660956048599728507853896522700652664897055376621856061523202387328929342174974685746173070845717784271097472318222134601997232386581618680920029392115621294769220150273796650753123241814149816288887281465696157100484110688193869409148261132984386330993733193304850500722715366420099736418471244459421031577724126419016037526096181092278668396084143164419306280246535788907692769701910495408569655018228398839287538884004067221186936134984954525448016344083843509343192186053876961805765877228369194644316021699547760892496668016712736839420692845079925438809977598794943019600270555625926511280916569804132486508843520850645019813181679538353139036862611229075652807207930502626380339099210838105918225332407786154796699265047717239374625661356996390043955788001725971557215597312202660985052939360188153568596866522892797377451614744710137125853604710346819740199518349968207927087704337973605197397566037488095703829535899661884494156132895581810128011443843280917373786065773479062831944639323321471803179528514866602669530624273508942748386528271636580838558375804639957069228215032441423294729775193309620366194991394992979012478199125939156422941158999383860721041270343891826161063729941219021231911198289319003928192291306225276537198396925358918120070700958680154645712722395863488720321459550257349244511647328101377507026491689992868232540271024557818799115498316050824956246057492313625868257493199939175198464462699303438115965536420641570397285795181371696506605702785363950649635014462244124936883139976508066915558896441963098082466233574069799237021459957771751997371139880331840877673883619962548003019182090266026687543939862086123706461520572058347170623724179601119068233236524931487704151244058454164999998065342614857908512291635075537981789809922462026873682133653611933772691338185627799577622259717306312182980600147463678150038066109595666390405203828159136032839344560411551395811824604079003497909972387804343582782365256916941957055339595377602413261357252452740814457568214631998324870487965669833938327842208546481257363808391810908444073902634984825973967540105568812369130447170677478402096049073827147003290759982134920913142663378678661287295127153801575974104672735117125530289055057493502705933728781500710641569469225440299136401385811283792669448764294712331274759091553757890983131543582280333352314161202549119971643479002013876528258106083224824108635980841480251069035949376764171363058408343059005786935515110426737168465958110634961879436074986495987537279055926507072584035785764895144228138833617203183203163521821189304805760538931015453752635265351531842294064258277971716750064367739905621119964994330705718403457405032483996525978513048570879082120873859584637295505858235568584342250184506031306530378282158557816989564587883830371954359413649449828857433208860692332936792742526674734897662186810524597863914151526842968859096995243652604570424370329138816615244423359865267215875270413779267007294458618909055735757782358124920385276017726734736233753884082255948729729994120638202879353867705336972936695028106803158601574905890872956601912684719449780272230002741469951669045205368953967905998708510392580848519758518583018543992671427024827982891621326371516643114579316010326168212019727036410458081687521393844476014063298430983003503153334800450950972755420773780887821967416806325495131141315680089714775267976152881721584080648995196094066857132946020530466935361893403498917185412294173831177397955958517264653914853726355170004569745229774718883192044174811578195344967846426759205199059002117320533816503041882341711670028988051004604293790780853069097491812962174853774723531605975824482791689227650955862947809362229710539270124128037616924190755471816929383431607274416866609286221450069186089905471726400708404656253461031742092657456701615915701287147205739125292189426072533945089450529543408669475494931373833531704411072567325386175868279504975372896483445312986748638625605080180267485695737142141355612008912424918523660816027581661199900678041377589187166957389939633995635169548764347985747246530882769823421322391934579004616813422486842186648291985227371227160745692108780564870977361813818709310130497546751730427685812475525761750702234545377252325732694499500398870435782602771393413266403548638245892877400139972466145557550344782915012932061130707616792752592024820572446281042777058560823027833550689710687350019420174404774866839105873802968500102787525121478671175321132543503499068843895488845153385558411965625948911292773718382743236960556616447940223585411382376281950224989032989127090311810549089778478051051093781623089301908264803928594670481330834197743751789781883556099088058811260145735270006361435178379234522014922877174131650367886751828038888156559030554396117955701107414524908519168478632640696194837290484412290825957622736881265678872395926985297792609374227749107812418996384455488320162184523380337985916815542799552861782966904148696689331676656646926153461988786436166224732355848564611232224729736405883498656876494950440062791869696386599596606257942802963559659327675490867559393016899732984185203854680797363730355352876596188447143104979989700446224752150989323859018300823396937593414871853708908177845018185321008598335581712420115527912447151187302695829515624335838495113512313888166620414215579245898728009597187543513099914541839771654707289330270590029721157391972513909420803245103177150103597706417924977125024212500407637597631998986413797668036133252917367615726199007149950706902957409565691872887957604657440052620521064111090785224148197206616020157186815455804040777312359504078942289975347732911357318553089055300492267512133295704952482869840370362381827388754587836858464078619307867408554218115124177576423692432277410168289829465102097440505089969404740751704419313732752345124508145758906234780225345675246648466749179021899444044217516632602777509213746311480685265985031190377478722947948852540882503877792748598057595462475745351892144581374753542254841959245701792420066613187121598278433687943951868434346275604090657452863998980365988076261076536794993854483619918497736352278533313220497745260995321916679155834969641859929940567558559462477900678372976755566819597224997230187330548174087582922578956623040451245210445826031030569148661343846738479945617921960398581132742346533236973572434838942126749220908822063469966884860195150256227019622589916131764532011903654986357150607060164334659418683016059127946713883988799893244556571704666633413256070981602315481504018368601311655058699475928787096954748535629776063356814403643503749223305948900734141566674247331723159881714989787445507053657746748121175572271978954046769522914995279440340016556246383350017662790970225116692024053821238233221225417639139326520431440206801701020561901604884752869222032320327491089224749345902266543025874617708967557375848630049491078939712688326985500163267880336299396732674512148247938600908167653206075115850823807655907859747227815922404455841102628371921892028539621681227454312431115794675474532847459822680323973895016369689789345668371786633280483358569904691843597125936221771386626109952048319017584613649485414200639657058750802898423997631632142852980774247991007771632637945327481824177708159204201298778447709181857136535468462061037642025887715000473597883488032761240193800709934833339108306058049024866290645490128748450976085285168724914407994409341073854057362877229219629350717416015808974708333309968440977918972398448916836620511793627117211938698520311072765439007627400256246341042994993921060955814502838082838406313932979584371590734715741812853890651476068932750677359503526679916924015359178123917567154163320378815929166054282627190407023595034492705634510305251471699323966817647186023039422990995138889041380363220996034831913917545835930858130820694556031866049457592446206955911269688241466660058840284591736411770571889456214942753198699011006739123298674303241588085331634555637735777747170136080817495301806378012782238648978799206154801402486617419452344034757006803201102046678693947867181629931101744931563646331078417091820328516416630861131976867359493920493417795135602389704608861631322213566629550286048225019937363207780962093196594769320158518219875601494349013925623150267042676085846975274173817374333031031142799785164775217011371731403318114826351884575895858731867577375873717211077367109528002550991258838848492968141707095935290819127815378964327184613759532568745778706334606826192884946798389950251269669797748811390366529555664464874451424724165320521497734831392637635937216775231582340545063737374260434431066358131185741459318948672703203303411428316547732565070821215619619171419911512203232088861855664564418553217049082469944755597635037341027718519391404868102241167548303406771182702813601784628261527176581403898232066190300707996094722608357291157470600100137886789686506975024011134933754376791765142322703621654894068154132401780106073343953995540971776623237073939162797406366277472234022190137039932892269506172849135714871881988996897255967863229480860853114526804297694647647947434383183493385299798012506913286516586423939592639227000198198307754864620796782112917040768247074918607856196273187494452535764286136470163902894439680856042543998148619864389466686738568861508305954129225219389897506226807535358792260483450994867419089652594492436624393100388900713509652423180549265464043945508884175330504796284788200538005831683685275973000360707078729684002421833183675407934056914781464173919775281391737792568619267890522995248602679594015151311409838486054870355510212294403533385839089552845952955288536685884251119997467185816532245910708961634489343074325764863039156664077670919500166876640927019910610743182681211400388269581700275323376130710377240049316444610699223809963077327205915465118177896095875547140796930791424337824488005822853902865955891525368638335044091889232930659588636785131428774102026456006234084791270592513072988631195705266870808675823338487076316832636958047827910401885030877753631444055064023677725950199581207582307770943957329301896361485528201321025390304410588444197306686688421553724390429469074296428518506628992967572809272295969702018202127440006898377936475399343552156846660059817195414205808552836164689629394929873120098542356399286281633228227561413484213814974405502871342036906299420704205082572199629587644304479670658631865210262046794572506798404768492354675375353700812978313618360355755804731939137782206942105310470972863347438784897547027671451520551996207223260142587354434741535576603411603550170139337360086925727617085849891421023803037436596686367313056931778016874399408306017524870525557353598657025480439123319638259562080454220274431236795881032390176112405563161619105764659332874720063362908411126181511227740440087680098896352523530496984465474203046353178016851934011536371188472316994707869302472049039460082128299965454598597042462793492263415884111473518682704830911844530431406788082302354897770758353378518463186630467334541079607770807264913731134746019986370134048101372033618725304914410025994532032147772063809944605267386625511607522444426671311335419188087445625604333658090559255520809256384381734338954760806129888969785728821722970465575179373968344659408769207690842835559991849219835936707866905098605994783218941501246831131712758473771525282891856932539539340677192603151129747398668300301743127221175950706192838105872312251007276950917734777320071121010989833708549794450112435512124611900674635600651299559804445468843559486160297443876846551147389277731070693601366350810852312800434606237431514700164363928650108598722007777610439035513590914253044033926847029130897521844258524164385456133765516784877417222258738113355581796144014922449030964308412235730033920636540671627811615314723006181450470187459836099974408941147976686187767264278200793493054074787966756606214206751791122046506746386964466879137746813170948086882881198977966580456377297217519875401851630899642063494415921904867089949338436093233120721367938790911147247786760172537213397195380426996134475797717291833399428918586871277127841467616373832629335276863529367054160791533640764127732734353327623250851643845681274057197043382502211244223212874245237041056203803650421458979307594521112681229180397576207117481013847959223214349514456754205128492052725220505337910486779112063853098502480077995597302458128927789337862608429403263074100736294740363870245550104626346613494049839554528405569066377626819253828315314367400982460592691759867205520026310425530957544361031597666743180707832263202815190340018994849862142540029696309072932872032557936030451560861969508826663575087633231560205373903419323188892433360738917214252119055692591984060321684785399179244273941393717168270196171420856986494164206885802468939868962358777820070039261703815965270557539201968616107174707476206586589309077123073600759999632013905688768031944460668687110605808548673885639649676313512106900758752654097803608867813810774497097306810477859581667735355039705931894692413727689215998825781514675576203057940788930549021585318907396683914292838149688945874118750625792074779961356961701945513810470550256274157639862602881702619910231108430890994360417254548237256279897402334735273834268474937960593072635529628993829634496623984691284082316972780656028478811577019998965020232588691816730503157771930832070670687412280970613392016419383963952628272016648211155818642677471551223589474498669664842246616883103659929449780040477614594830335270374409106998268097508283368567537406497081768717489211071080822924542060018944464303099907328529418726163775937716598958502042853599894471891598556702684919487915599715494865037860875079999296585335996578138725383385837438413777563009874221046303147619407752965288073580783650490107983239850769137021755673403627694851912453606934130082507050531163355039782151500817409303564852126485569249200875959992299008318471094793439706925699126462391512373551757927835421439341425455327210542989573669878815824810694369122135962357212850247068610125351370883236182617958576011726925110506138709452303908549295711015323120630752855703970403415433177720780923246864465114182202476020989548810341285952476480361385137659952263504853741711744372929717733370580092225809088365827212008320174887193211497706364579437488128873464277601220205351107507507222109104154850677004584220724734863207139619548834466030237601292305452486392815350541649455917836211339947039324822042510042492924235116438018719022496362652663020275227745971725841579226086691679608114139890803891914816483665836248902163078882051165747449124995818458591323402816141419803211239750246224639921028004360157715059032685658075291160960562852304455956421834097260369562343184012227310177745596487003935589745606793362975682915874597907988159779068176777167616135052547605908255885266935079272247489135007968979565782283572063919802721621152638904006374185632424897174487368273581422296574630861508998949194435686569551373613188488010790924819027267190522531762273517337198768869148769267347135554790515891904826674858515878600514854821729407781337216233818729271320519042682292093200851773192258823238566109235987513191743295246423733335685578724701478156004661815077379494657170679388693561264766885078568620064348999774688312873681430256512236587393205111826195328580205645526754993408273239665160911378787943208518693572916004177612849870931271143806431906798756714161455723054415408398465354230936049509183811066611619218822118923972181665478515432489431898470096002334761881224174698109595506100469937410151140609510783444149667897242551660988219115714727945231319136856824932375973856048060598999784342436545671172768662787426336374066507271744470057294419783402909898643509944483351048779656399858981167609766047166494460581086050359303204944951943153734865196058680843266467797265014946693284289465629050239072169845360900011659611372073958918004075955083382395766157589601555792685080079783840508478004545324039029444102047566083904156373862165131967860548108970587248269695952045308687247715217023114183012659331715484739698306853105217398253143941427635724469670502751679464174907579742537549592531940497183676574028610835047156350132892270573704448883114235488152696995540191876921426851272373867628229920909949096503015587443131269679374642047211387279433712766418297224633253693232674531319503888045704079542031554173493165074472081120586117158898523799055833765691889752898206357957333020587745997281908316388288235843839391946631986094388377781280106471205492085639900202465013727404868003867071040160756718254424373819539997585028225724858363013864684884277924011685002976936314971398366083617936259377441317531087047354879899619114865222376023916954816344975398703758267321887634475149772627965689123936843850103716483984916744253710231589356646445944157108382635248469063487310567495300607620852608759563332297815967692861271839618784374070669457140790920775957386940814250010629556718338892300956191234964735662632049695771929333536363201523711465210145271870171549707625717690193602597724989999538804148730070941338211566126318687987610580319421586918911719142436400060452843089761188433301083878865739147363530591284457071365443661147613013482566459804587048887910916227237587054330784762492673820485314293333830695448330176632775063123273021088713376573121323211509983063211812231271430168353485079103411258771895437062966138186193016590507893247247031348526310438425990575396653869610719639065776976967113427473482083134973923713661648920024147267334942521249476550208202850111144882395678460463194195067407143999433837513795033961200335425436323811630765231813572215317154427675494301658468329854804249018310536352704136303915386615221864203074804965985485948549665697569439282636183493675613492605443935256710214002950051263065376908816208164987314556080499611067118154189856017606460998748172554446714386797506982001599656996233853767597212052251356623051412672495129968924046781955170765143581702719894284822900732765132134339460223406187866075340453843585625947956325063047211361109158123743137870984989063938723769132672219854664237414837403812303799857888055407508705608419168075929973388325282475195529936298710005975973923487013108012492418780838782686918275823629098105978266163580218872577412296421044977254644434163568326106588764142642654786808703610025351669328286533125403705934721583243441593252474428002392383279917373952436124700268675366442237564227037010314611917990856717582249448530374089149922647427083777563426140115234581226030474424837161408026846662384264965957256057862606268284936320244258348235169389896686325462651011651470006758957467605241053274565299398443765858172594162508662333501950323263675733817978522831875521361719374310912293723062975693004333476689248773322817735960789899461418415455224312697076139604471393151101110583025294413182181961067105575612523231147182491059012043702544247293167891384420350424755708296614585137136868564536716103281569825804771318118997544514613033063870269189021108139653131480305969769600290159998688821299990405187469509261051251006961064535930751405726549093180266102626803732205352670635315328292592393722309913179043819971317151864634118067208292429757509099782547741009907770268469036073312732653524950531643857792682818258718349774156916274342577303638529005035251331092206103995241533720349648358126199089970116731436671898960154704242197327278433351215883937862086533192260687415740939522965599242754613843370973421284354186598787812345087123425778982747357598710925577296545921211242603075825887110819924380845436523137488816261294547135438559669587918450553705113723914707089582313604613944425257330375340594475854438279360708664628095223447415136602462255847827379457201509437746891576132621541938865472447366522970987113613180990376408733909647754552164618290250116373348333913450877594698050950878842985634149492777469715772422519743135899002520518741403779028358817093638659564625245972967987114344992085552523543765507746512943837469389171925798475271034318132182145154824395781837921477995084442448880095009973973832532174746910147335812718791628424642299919014530313553522736449950881518761684455157322757681304367754436597204647152708090451528257123142585056081236404852864406669584305365714020799666677082093569344312162053979918005240111388944617477930202365715842133477185462390315052407067238043528950308407443389022901571167293806257326066196402333842502887122564747362253887595662126163860875775645971979119561943724441632339690724030874603084952561024555200178194927110897212665073371060980508435138105883351494483297690317386832123775167787825661403621895889172825794447336126528566022204968796590118917732061977900695488919802957407366864753398390515598579647226627021504343382298075562800668075903080954087583506615122793723653691851248306948613417888088237353549045558444708673012134260092753150168724347837849419887213742869832321812295315595821059456038584179527933699980763043220647263359776876832750727150659611962872235082852076366405429937105461734616479743036409920601949108287233110372193012833331453984336904698377699177295400093767240979821654797388678558101337876267001113732497088742790246718717559118243188418009380270048373544100830284254881886224308006930821494755370875209043725266366867016906079486847493024638271423476870633973459812857739206063860497949442561409593724726163833535171806854564062743394423416062917493539101136858484915286204906667330014279057791083188727893261444691825215440951852942711177550384976123007866552342809723552150199155963095640022512720181144234320999196513182213257009622825184021461061265547646572246048022614759507392074736173126751436927684858345129229581251569817301416808731742046477874653524638047121300198533163697596495210469212847684777388551027282957843705406548773578831904973608457006772461498213769928614836391195741720382483054892506345603625633675347336775151055634280312743710787687031157218851324370053487749774709721432151243787657259399196438264826876009804574029307889978311116321036782931341672199530514138986908177518783341504469826083702395090464168330667269813184823890109503183310702921694792979690056049040369707611083229947928149485945549098937318867615760887518565319813980390753549950553846866015572005292453016857992695052467257052113005735182090150579186338954222732613629974620966622488670276836073791195670079273832260773054988664445645862368955296224798054892637470622559130695281492961557495548230225506757775370926807052745750552297275192911414766333522148170690015973252114308984194661618356794902115719238053692706434303024045347783950080095278982307988773426122429768360681354450519167334993122557807903727973687785925236880163093393475363126871885110708382559097714800567192990687044878476648106833793780556930683184756677366180312073803701207159809723796529912702661774237032264592701515471416170153079863661142313906315655046797503159905812598445086376219033576309569387488870910981402078233950537110039784306361122574105399402308671542117643045331074692151692132757355743136631431588291441074230738461416546507832319016287612936190369271445886406292321946411327683442183180953995040986590691365000473720090949304239034013236890355622956424970827690903291892199080688792160272814728476161549429163019622068523690260715048400968631061664091074734112313953077371786423937535933530301698553707862087422426720390748576344891280488297511887438185309711355508493129983575899872736713911512004474698555459556399880887750306943627681386946480119397472597712998764056413457428512958862788412974604882580872424158255950767363028464584237907418182634507411940876739714223799602520210923094519366404663447663131199542462871271071462672110106733367742445759322159352332676457693088104507698448896611383291524171343742291084878393322771780492059439496108331258751881824029153209704378256737626097478004738074190080056249426412755487937499011269657741075824621510504414382919706122170648761463362315377429134583855156688121859147679851967600817928784709070165934966247156879546473244876048715434794954902753985057237381058635728863450656591471761354816890020356888443239245690303464301226728418925356872494516457992447929604000917909349883749367627555110907026949387020327687905698911820794484990659582969749898211229919344256138001547048423824272236706807890654990329295926955793753815094765605870286833765369913998398612413169320102232353794237528419446496278475620745313336070587696268179729573115759205652681969363748432609804221920421769651803741526299306351890761371761266028702633081394625071476390617171282521183536137370141098140410565259205068338800684106745221923571915747139748135414555344379032778796725997538238802462472306354344861104696981865819135923220045210769951052320828579975192120650147053173557533191743823694285809577613238426617566648847449258007799528057251262877592584296078462756478876503728412253028574284744364730690031062731352584934592722846669426226032388395078882779907042123391164049868582335128069976174051945290984005924286443454502746382148087321794693206840118825250551191075443442005320380282424568764883289489752335600641567998807166017901747062731899062517163531540005856785043425618688234227182116838596807115827847141466615695482191084285428553867667367461351782099041081645551423556554984977740713897378566631451727164383456646570102445845268579929023626535606445563801408665374787770939508163418357570300239950558695401007764651348978579578380164952028287917475157240676386891477862823754917549409554444711540967770216702918308214154345114412533703296033303277258619872462083745041667130307832214496365534704944605246437461924637481175183381311699423447328770103166463132976075206761350639380253380807995071265448414793979326901295640047328377673836857205279432112571542605682721878944730973104230157028001810526605051444980448983767568131373519562164937795697016039572037661157061072456870094170692969389575032962810182349954235165241958013078749712069996475463836313831046447024736971427982491610755761340739572249083078778429960439284088335453133372516051350925708590702340220209369764742289221432225966182186060201749160512448901382395614068340632921406414239246044730224080981092880064718187397435283938610769863292852966591327537391072329205469591561803613498423323213216634765761792396772893230494886060089418282363823692202154644640387696604772482572741170077198132646224393978265234422040232689149042520284385211296726692496306082592189454144192574883043455269599775098079438679305587276548946897168090375740539776866656206277004466674656108829946873538811515952581814030008388310737707401680787896719340811187467473713020474303977549619757072407180533550476812476989840834648419872896333161141606184832320817058920474010080631992741936435814410555815837131178729381277393499262160399059390252630383698099802262993647910020000489970880698855452082295898813410153339630635349820574484414842256677176775843487508075747730025945567130470865340923598587698464897479426884290555768258010983141093379240545317636845974954616084060341750440615737761835142000092105537330867874917067901542392729185672590090469963905959217252093692615626361444858573794928820227838045610910887454529860845878091358133850378220664601079897362350087705368985509597174551930293070437287991755668551629703789663620068388660160656208281526430429706917709258823665467542017195616012804840205648272509277091024445733567680917741517684186513902754714714148776632324939537442394790956541842889684264462013287252418218793503032388121471439608946793664966988677082788328476291891885774734780448064532640881262855390588852916728941275686014584629890547686340999906399995054218977911428551816511495772341454323792200622391770970690517919158687142999289975760271651145475552179246384632566435859918773654464168013387093935751727674623674205748831613257537124241697833956364066889385837162163411105626060436805160300357121860017130051357434364339474962270031314095320566842723039798284661604140580113160071836035447162135596534140674110951959968219346357181337324398291821188231927297741055395935118277896092010754511226777986012240672645164422963892390718647577491467921950261916344715259828349126563535315041225193094712277794073676210963573981331941313920274808332150763112258804142579919565144441198732931000987654821985364885599934674063363044954165878136905106407029545096455311237516700881034241336305435054539256752575576336891474927272669023632805799241780791166054689552867652701508759284505646198576213346424761832622114205506844822406466377540913136847560255029335274853742092880648620287212123002408577440695576165132317360577765553022483861011114743036596072676391156688199688431977341766284355427386553052245412192651677017122666977162826535793876004732873612434894241670245958253386720661932841763181148222785763589116092948549812286437749213973657120288498872537360458156370978417379323459057542687802346890054863858271105286502810132575982320278902357030227465649533937015783825666631471550824719388468040127147486498133955012859958932288897001215852497583661766614323121878502751759818290268835426900932669813233577281337925446768838457749347713565829036061761660586842953075911995941339738112185046358101457221824880559514373303626596170251919565537134883311588594988729669607953900209747382498814636679641569630944605194880873289200440314920211549750333678424170943439881782753647373801429730669666108037512275343910540521548372923047357529129439902316307541520879980967222830854548655773789395638293898691735608109926812111025817097079353775479583045286053949041106651162877386778445913728048338567968163928398790469694737030069664675596850653012287086613736123872284335630349282324141015111989805529293030046472541566745917810131151796765107799339493772632045752435736714925435578525793843413904971592872636537970419259319452789217295117744940722598430525431259914608987544194038076796409802633255570392937501719696154116584099196991076848715460395944322751169131372575285572210095395957607559884835963596507732233414693272242435234119821204478721400021838673657047821340008479144359189011211880017074218442642269070474254629122691283767258796395033897093538882847945232198734694542753009147229088253950149093536542505622964525033231715690978209461866354793252305959698203256472081438008617617947641529769119744444677392492834399887869416669232622897404951287008321038320946914010461006529727432377479733032872908157305533084352865872529477395448178609794960716534990233620907775038724996562653368781038733173689154556509238514271312912645359466606068078910565821991707129180635078341639217329641220045792811094098764569114846031656085174540037327955170022106788625863475564138776526452620295992654192943808077683830447575743399552322874996215973993631734291681987742231467519085153634606620786711713281072452560027929630651239210106571998481443441511975471099492002026722156779929187080085388036103732872602371375169117406931860372680697019177270312096123123811471759213965860022349035843498567636111990523544896834543081642091654575067014828111829972673156522485070912761210509077165683200725652191514770460107453631823668429142996828744725701580888921080012607398030388441757951373509812885136975273299343642549028350608531261203637784980291351389188077855121043472463703958447477137005081647839240498964536867742718506309891647019063456469331889686268502975640985953501083281120334670338798108550978038912765165735416910611721586072971379187724645505868480662495228401460740770671752981602222297579223392613619252812116913421163652514193151958880325099419186486113602844563307308188032682860004365360491381387042107992735081979076936721629051029246303154481796850819657803047122930814537963494314003342018948174493695064836810999011138916196906618631829289523788676104942498961234060587335758006716697832974991133491887670485823161431698337156474967375512972536703108608583471775827801560666213796302236246570684679666492466323881733837722382945887732660138797902706539565359121970616052942162460889415436901861184033645547042168044864057234907631703839201033112066003523613110169528215064707385613021019699116725996881829152701805230106187282331714180045278777668234860485077032137773817621665318502266636258038246930490420182466160690445335909421000697364419119433220918526478559769502009180382274174919184934203127272960218356885569659597524120394021309439823510996810511867076770089791756663128852067043349757347402507902857264177346185627678409901935091868163025639166238749678569633253313469020521063067027888786278026067746945272632887223058453645807550261487841021248513410717936821712774088357954867683639032535689609571392787534039346023221207624795665338377095120581087680638821665250128781607987424524310784845124702890561894501618286606286370182415225517633065750742421857342820457822163636848062461348865561611343247263894285600759769655150404850680487494432960285165700086377408001588173054883847617837018841036664521822944683932157558033430278342538611937412027873068520856582870313651311915653957824847900107435694476186869848554657304456378847592108756416901037200857615339822934115364688271674754179487935966475606195381844010032714345958606119551713073176198812445354997036569350563943233371482845350185355382910458679936659339705717377457568716729049302956681055427178564399578733752076099863052243538029212654253087176180903500760244047637146317108671486007235776724768287753614057538441091673484507000211511158997116935891339670766283865661083690293177750628429126814347312254723339387717289954072576820515002565531185506171273906169806644026823970737355425961285304935454265524874375994458753413292661131064638388567840630471549186837763402812448355540021699561068400677104884192591633265268236291942088080218319098056387851387168825104253306485349107148540624013098544274672539928747417048920221873107049914247752567323184188804124379404332397729397163990264182137887325646215040964464317729326911889180743046935734230321916771682504502674135529676981649624718017721179683494646037576009375024367027592078724705007765606005628994732062870792744158120133258352537831614830153183340219851238309625630405330999898443262352120149484811326618344783750516942550717624130541512233117808303007695047629911752560128070307100921934567615646119097809987453690622006924881931337375388435058983134688378789347742414738626014982463478578803511322501437898849123224666550201329403012397346324105619743953983959140919747818010353337140234137936300399878898863017816312475615423361144929143480211280816473636734727403504458853060323086973603169267761171784486171919511291571887047199817162378249706342585886022552477499142960840582686111363418113789838247004226360622788794900812699531905600231572611770655827969734945466127586990142499613754534913002962948161237858055329888341186698904539970451395282758259767288176164032826562055300858822415089618059715455574858304633044799446011215492368925948242004394946746852874473399708123255279976723207319235109769828959889673906680154716101218610146719983959146885350523626892730595631314443858401487215678558255049521957671804231196733928312843062367957001716596273696202291403191725381817405840334149418523394478974694999747522558869693094078118791299346982408614829508564181819794764072495637762078196994445037297029606022670903565552354968363105286063834176042052402419770916226343011927323107636113168427283678834838353009849576850875355333147712883176476976090477132118146483826264139250829444427916205261097940915481198812728837823261940594800150504610447657085585771790422362788058819384528179156504076307061739852133034988782373994685440813341948541407706875867328412497620179355224162085245733962610294535119465803367866229474491278874025508204298219282213762068002317336613763723790714177681063049575462508491585065894202198322008632572519715702416269162590770462160752337513236966979701453327369678197827481785933428329408976220587139017787879038956458718844544280470970477702746210604863705037800760505003031324196796645778427519582285295633002686026442760842830097921467214165316890627885131222231273670273015689036839323092032168169027065022536418032529974161858625529714786710844503007030108704909308300267253126341324096314621291096259688981778555834694331869236697187911623364715149962953299011834986796323317251291300249656436860275743497596643750090525532578142772075835626961745492232572790887166002782562130927480979946933315853741561731042579137473483371432957105825650515633008809386743313935883792216384430039269355538561581764713971329953096793563069307330186254188638449490504253904858072695366399334359746051834801122975366519116495066641346910643412365338015293373622565655630743776126276723275017198128762545533064483963593652395199636981356931658852470840361768966005972571048146652100762260256664164223109312738520941519057028308237534395435310363127822494216688476231248971191127171992424182631130291122870812957345672303341221552433226551830541445570276427911676391721634231257615996158608115267440261722873105731910228674752576603726608957607879055333837600576677395161967670984983196129061233858717303133461512565056867893711393816710734495363736375202940190327505660655623519175147112503390112254167388459230881099650901823851139121195897083831986228020040598344158285575259500744199832754211994715014361721934805893590742866340053629411676677155915480912713959720528690088376903096743789116995255822877493766195705278531397830003797807928442788022790146503779178490073108851407826975981845881142368064165959519366441356704379690641516326937158983147167463841009670697747995444297020251596665142347118918395486116009166900044454798292652936107658917750636371353665407538932519042576988093289000132053679561715390531148204048668152191652800028460282210944577261328955315853103739733220368612824717670860131842865373733914282838714323656191861775798052033386160550674026292701032639344532775511586366549624186049472682372275696632161611571302594620767134547392398983664077788796039630858266455666682488439281116878102003598299298124556602081371317055654418293953182862981905426072898890420179635244621549195870557404509979459966995523524110537723110312869502291815640689408609952393250392606328486041791190719025356774827571842689964531130420808695942817965320444344371395697535041907112573948803699663014641348814059019315692682205711177019974131840154226833788570199217160649301015557700296959846495578514072651272574496089036085037573115419440152780605497371306267588737704664439782149738111612013151878967921332293470116019260238821664436095964125771084556050973161326647507312520557788264266467994859440289573902045748761242073639209910118378689734624924662818550665695840635387884013216054508212047921923091455431724266573619319407590553837043831622936787212016624221336937774081011505729881865219796948835616746557473467492952788827240335326698430103902552666027528727848290193905041738758044350530552444324298682196472883233625572910803217136557673770026788094721470398892008643489124895117988732542872413088572556950953021354831872506599542531980893285590434786768088919366917554312980352426884009367070483478061552179650949261559035793867270859607154282766176346094752166219409149220888623658644943541461916257943167682920428690035880445168819249487230055139237574616491705620317189917237633137747354636659018923029027686579088652032123894774599290642783603668833316276827805745075312500526078420789232023892948723712510131063286063384776994880823815574274505325694311382545958089090596798350756472751819155907753477467711421154340190869938683200243800442982315031691625001769577501611058584699989685207925799284703100669042280618361346307394677760308931338707987427588535352485234436009888464561360925919795751215469800388989946761884296761080394754516125977892405516648712721630629146525142329180128306593885966344572736740634212018494623450224982926781423813716106414205783541790728629961222339686045497718032996389603694405962909501550114563986269504341834359558828784654420687059314336530023341815375421896291588915652404501551324888199462524336386252464778322962055323617230793655341643185489190561159724521926202659427218667683181865030485682596598080617340652357935340489213057249217071728600074109032796289375073989235535181477153985335096016510930409209066962948743169156499505311851644906357871546363768200522966347393295344126356885575377405527930131758828091346370926784675028256454716225564540542338666808372171062551628991968947566750754268574912528099672066761207453668984423316113057881742114285200393703569730662864155503927688885965888038559441383893664226135443756903058854640982933570665532185663217377397568214455316551287242787745619958453618869744720967749992044040671924640725355747974481792502617035041283227035496558998126696313112798996181712004145055999178651907403586564712472116044321966536772541462852320629819541994587547104967065001323222637578732419161233925477781397453984234724578845151850786205531867284554239016621429014223354756536651541868339089544043905897561822440318291559804588941062673154971258726498844351211813297368821858932405555299604486889731633295484939522256669559361520780673627623260434418505030693030535874567094840960178152645354727009293301858530275677688459386433421857562461224087455989687206042088067085614145619725096107060565983714969733479996844451651136277633212767768277978385838595548889200026240167682822828567426135446250891383681812656212432388021580775127941123949656988894756523496512124739683591215274545251086103571513060881914278098675160302576033596210802199916323051199345476446095461118299327337582171715664782425828217299896367587442511265026075805671742684133676316601568509481008552431848870367200844412275737776462480269538582424678646714717254777627355457209083862209303831897744638098895174416703925491289414290690781921234723836674560954377709635998315244777905773082482924648571003261579853907584837919663379696204808016613512840088701373078160943104095243886313756688193270063254821736843153277952123902791076954290764065969941860507162154527086137940699558665028463035005682103098769449778600804898578600879817850282605986728600775392708002948280360966268234866062900440500471227139830256879844950424478610528931301094642870955972849025176332640642836949993276500916904613624972083894032778663987510746414690364222601470085988211517361429382231533178954537331347667578168439789567186913942194907087562590269530478659576799420372791249645795844038707855935243344689104503517760909621777566314295014574438060768133226541311332618087750972966281540723745597949404053341815406171958356973513533223913596393168856305512010514320432605431487527600960065585810560112789885142983539123299530854898795326667966355713865773190673798104801348875672972586683436971578891464585632671042443824894203698476580722271540321460047963801429012767463511438095331391398365273614337828860460935363496232599119074219629306008441515815229988871921816864776880070274841593078556021574388088140131483275501085483660136975894493400336591050182914566903560946288610282889847587283517468328190046441567571954404087069046223005316354648635669874504552391530848448609038690011976748189071571275572383077973836071427612654851191998312161014303567972542644335568598517931560930928044359391348185619022890461178311890917342275550563582693932958357956523395753084261697633047842028593693415093454421822887523997966354605383493264240278473897457008411595379312649870417718648520267044384256156298257969041967169028120108250591286751609776643595759799030740637031121416012462831749355228135951017603679899327810940932560247088102066901200671080887015272287315860088195090085788283125317579752164880200295639851306611365978351295934489756570272116290956302876320520887080764627414402855555127717419020193815029996354822639370469502839914336474799160124268795622817637424774243441498582450855542790703431099239193692982285597680361764334636598824736688055411209277259754528915856301614789638112330894098151809509897882819683019761350058318740608224040254455237638835296870322663560640379241012737101517937682621105943270937659699629688061822798403860903850875983779473186850222307829171564638086099080858829887542458793798978375541769412602340935229613904143514728952553838021200482537796864466556340201040519896666048882523695229207440000590013298538825711453487052572194851366662498102278065099163335642854641282024893079449543053554802117433586310892576570716827404280503668519518538205675901910784308861062888525600741121744113635918912106001584193645919439496349965507654749460939757990787570027106821133412410454398741629898358962501976178401278228691561261603526247082803123210332786648872420848769879147707473251436423685252351440444939363158825239713976684939852208812903930344839989964495910295499223794090739474980790086777074526617981612044721800893219877018583274116349390472793478438454913839336776205313198872851835900324300951918457271150112324124550993439089497956433595468876262353029829428036188673095162289913010423866930151499676281910592439153226823762584810417638666646964280256518967318656845158801822715486747936567904655511621984297564812862151627754806955603692108666488262294554069774067557003733537757076764767552008789833872628228895630918465548556582402037366125269687084068436030478228713963014074117611700993379874929790105710027676525226604722278263837770834131402823756211526239233626263006089200205498945780650343008756321118146701276688326628738321569199196477183564168902701051403802180004447662941588081862156332582295289700337207815623423122437072215105169790891425032703855676745252791464143174872467596253284990201522310047003921576268280419964249738608529046196235936694911185423617960794346999788781006150009778757961497220667902303064714735748140477674393515659662829922808410672160847198957862879161488876351288297694152100678656701496533421663312422709966086639613091022772985640751945688408124408129509075351401407725826380495928444724181576395089107580837281439607947161285085417592301182890697319756053623493171243436334546532794869596739996147441435374901122406138380944449692058012727056368576170023717445078437916101972786461699781070358025421366036077521068176325105031627694494544962973498011780373466535896317106504567153386453290725498612210286272901093937993913902457784168033738738477709275368207601605474955416547641807767542105246418195083003519675170097507495359823061123095914343976771686349086625973155171042572391401038070999765690983361126419376538638419673808296645229531372359293163288572618926027653608600139041233189369043873152929644089406265783372033938740726626196390182673096762011500872752132201051656415590515034021438173425682869674798303977285532951618592645839499874397131403691647527204265537177505958703180949659100836406488560742354863061581615610147505480591202477451698166733294714758127486475695351539337059033293687568516970195125296363930122697669768763851022180355988327469996830780253963923007960179849098666097109336792180682109264414162703538387458308759377701750871381158437920747652058934729853585903909407191310678453786304790500758601149799924155631608606005258985762475426856413786890579160755656359488005317916607704928003539840695255286680888881005584499790577974673192471474015085982604581805800352812915368422967680768521572759441137406102035227821852156753515898156935196493764966591208199252633905618336164670032418117510869277715921679147378954069901890833004712722660135462471359202390214221689398091577589812536942090138319719924070095059944471825826396108889608936331422373406793212697105137898048110394569037742678635244849110594485723266405134438623924022005742177402082482328256057195462260751598315557804398942391025143921927205291536004756745530810893796136676343433727091694290892768876351629876318650872907233583555978408585912148699626352776968805125763326544449546181438668123826653176192310325716812017723583963181850442893100717728376048345384511997033243371627567619344771442168949096443712445839035652992188539490333555327456939310359931351064742264810950817792594575804597486658785174420953735625408936924199646803731201880778999056386265309553491278967702413838728404133838289633704937100118325536841713004486929594355188350528215838173343219688878941629412621314185258354879848086250966748819209042419420763349282121502130010541801396459537507672551453961703942397804744295255054101152281089349473448786983337537013918397052233354766686725106074805748412088440456922719820745025330491578572418530081814614088344599485187212852450362103189879214223459873505346296959975779757563420479428897486916158103934213693703376417812003462169197037045912013491173500476891746874897783349969672017649597367843684957323676145942584115887481946108439973742468024663071024784643233639624620971054119741850589426614762566075964846074041846389520683540768969001896294354331352031748900039494894708983761803913156123366680674986958006940864930085081305704812259275153493695664795563690224902671772121547937802507743520371925519259065762589574719675216854410159264119867281056567754344282239881064230483950883786331870818406010719557766043881924621330693785700653038356522548154585710254349444639603815880282793703528671191209577275828742402374801755657191864059782071040787009300372002790439575972929510878756750805117674132158571781558169552269627717249568880087651167704565611220717519366972829606131915945017312182969326087101238181137800653757848680291935668993953303853952927082732234985621831862849423874257076972369448987693908298449386597134518975468799200103301795745025333383310292460880345569324296534754521271269435322814346638922730934435205953593412637969317634834651339363371539392528449923402207197573537888767098310792245161002733454684909835900017614691393198967733058754814499947080997167796878637778473604165355323844531787731712255973791400615196715291500977634343651309565379739798490289419049040706671175769590913500669362521312970470711938347490129660822632298315711203990638020111986789084532265468467398262517641796953822919973458092450102236917791505602777503295504424416161692743545851140076136327926643105096384691609403508639357851761874029314873587288639242841778639753192609855328133999537211033568666738482669856336914022641361363653645197340933115980328568749211591719027965759437111835576801281263874525433871958705749166027329184658541979059886652691300024843568811559900075543700389483606108306675092510200704459103473913734883840675825970763569095282923710541376126903567164647065778493679555246587228238497358198484987365700124550015913938874011659252488884055308723037791181929149739844042146073448078353097032170036443775293856543200965421653404343933190445633588178668626565387525852332915778921248024023492272220601961823205150866437200720328276148328941424064288171425837364575726419220236887696656032033145634400206033529093841942612929103823137427655468579499417130286570931735693219858726353637663374141875084773854082982170524712066972856730119206899529088837415848532202282102175291456875737552560962725854210527660773458322981218016063034883866433959607619310953373569624977941815058695491525654218570038333483336771339284403664231627077809429868469062835741865151640870554805347132468364426693122481819909818569056387204913368193174447136479287032700589827684952140464656302480337381271200769258326669778243653017004753704430040374457138623381867155210745824177562698213210356741355567263632114810402866566103885879307598534227046306409661540536269155668284518744704203247138105212879457996904951863909118011844489800780494760867434599209569931681118889028696909199028062952509725396684598223979430361159625591985390035128917252386511417633762776046395494516159969838892619286777699357355170178377810659816456309399782202344061133909863521643296602380610708776807109232412958847754121275834669926920380313795933020772233559466132452012764200668937552969973393664709491189970080401539326557700976003553650300889826944603615152720080479820830312394204599722593939651469189399951947561406374853128848424778460124097351387408490509288350862986193557893833722157763573931052667532397194830260264873935826283662481199022990855139335083019016929070644426328161099108424650143551833773459488838814101276725573755900167031872761497177575900858452184078519504180597390562340643148443679188060572139816160890916386885468498106632998972988788473721989947472657223205569357414049104014576671749285614390707115971263756738674965700904077509682350549404575698694389765617898247205488861661985347998847377705070238895596289005145841816453310115684648602424378436709454315287495243982065475808362513928494383463279232451705088752877550276811843891286896669388386682294721827942275113123672634087145104740500404094663250631454865298421956024532430863620185705596387993021572251584830440113330912770096158966618954395089407178785124493343187153959744275874061237954138088174937386674083263818399077658573958688834688046865704042709866846070310008206901082538719772186981495484458170654166955755285490334440118801779107855008997660627439730999000297405258652791299422595177171839896489429521990665881607203179233936673903045918863134077117380386072695438584259967893599261779708451803970672791608415913616361865821523988059798593825584548096466345992483401425393143735790685582948191619019495089447704192506651681028592395236961221328538321978015968427465567337159021273110001672481054956667875224872923275525311287554070724914690604857956010607193893292918160070358042140374114521767943616763556322385354061396882647220057428154766758465307341888378388243088552628640978113264115104472969720663336560739167041328758874992180764342588321359603500545261801359206110366263302194257523434401314383258030256910014933909662371588974100681199810424280563150801591966019015892294077663820432608041760325769387616141670657861598276097383952592205243115005083994342221164937141771443440608512961162034821662011180051095288431347397288518116659484244361812803488358959431876192526799425978080778540649255716807476022811908501731242317389832217763765711508722485176450423141318643794802837914017310086026075245264643568727898516017769481259456033845492811025160711316099961380001967790388945523346121996155852925283880588796089768843705700993497262712418341717042326809399931698335441134794368442671013857069926588273875007748792812920492082619177976899449668885540212118456997164053185285775591031458012629822102898041697714563239090437107512517887602455786167261703359288661887546134074034747211301972627359914367172359566278995036272269510234677474327521842251806835212503463967720161497204055562008138071370349604861241006202343907187247025917492926890032046964364037698054666818536631084122979215876172915982794154321532475887738021524603574817985107335018917441749376241413012559878726018237529231135258333988891740795497284082242205928239606248855042801617600421292084798841912663154447268035772724146043546662291417139753052069784506888428525071615678902718836896421096885773002540470723304995348450592808024852256231496399928450545242523940645219500792380546366656069081509842393245006905493268806118821671316365950986004825344119455455926628454086071360916466975302059203617375740201227754507162761326686392069857619559296900543437046113617464726574182121895967791071171135136229347064102787250405175287882014946569488915217581313425018006597721952791833891641917305107889694759672474318879273055270740584384904137317842208143382660750368345840185455856123060959707549606762046596618898073448035083032064074589969867089174451533664638019187289019835022260823344445929662868891569481193166008456547753844072555175362840208023136714986677765769898019109983395897788566449465471170074144331236746503602639161912151638497088270220334206408922177572450014538789540806599915009471184499308124970049723976792418022085492030691941764165096296615093109194740738668395806038495819256700670267035316525339241040675494979074028782366381176975446191295087499028331547544759305775321865403186731747112260515161206790568036758859624337751247738071213839207276399188611934130950696756884116707444672584778767264255905932552555611667636587472770644652750640699462721105604867983761589838673640971262181239659557695165068955891685924661895864568713483860333857778229370169469418773775030190819058391826329964253611189996621252415479455255172832696795301335894259772839526718477914676131693673820761704439010957240130673839591623340120247728435157539795264395402111130663529120355457421968957751430887296585655274315833694008786534027407208909164705603638392656628908663146858567667284187250784644340257803754661535244947539611617126939421571578895313561895352743245612703028855249238750721076200041423744397877318235406603986178019341182499661773875821496946850852469722292215610081994305776011235642473058590179223494055706499426872824986485101766983546557106753520067994438658550807968551593005585258839810223260631428817520444838099680334708921995379875872990155267389969568039375153163581417709042610879462502025816368210820782050717152147818679676938457844011073155351660368138096180463037020579973348824865243835050139885195380771244307789620525566787769822037069576977990365376996818875830397264577083820656607752378681191964774369932868515433395923008863330045271987015171374646906260234346683580019673386723824480865709224326359966300869481075259250898585039184209975745769122056482155011101032983422546654774008562445870823536390694567970721711436967982489243133234059410927723934107572726244153975423704483208734831349569288384075291019694094368838693317505494082854126506510912377791325904740235584818552375984711849377158642621027828727754021920150178920091390770288300894009757520800997725368187349371468300212520925297530711730307548981614927598087272494411085680123444537133293241276019291940971108465422996257106906361114185833513392551031860571092775029175295614501500546351838917681683791470214440016373423478817144861275469640258165123986383444846038513931074014280753731083017954407034937258320564885912859420085288332388253054748634793147856823266999505754991024639612813470044925858929229767117210535130161318053983755100561816087513943847075087816723575099339466040383605743766146766779243986357112604002452657021105473045403487766303696109765901156880818320731426934571490527854259984608192190817513678552600823801545389201492613143662028595188483810051174186425472373538809722738609356689242329771060886959484905352485903963265489080806323712041981332965290374840301153125893207424173544164436644118551874950954717327751370229947542410444711207119953818076214710319269037358540339789910926212732746015252674681670841323338744493294846556230195450055185556125377668968046147124377117149272153119345585334645925798254804274450831158249241815292314900638135202727845155389223681704052038523662181381182837327561829933011229645685828370641492348933062613253267877262766046384083156671549974261182245515436554452909798863324100762077746584129767031574099094902900191116792600854252448540849941099344905436708938113586537798825109211049924818556518191667497740060161593588687461529212332857519635353112941517521700698036062681723116939157929764271873095531543676239015085159773688441052949727946485785324449410204190815164353291843914836702487842722381792052913443099855709780156400643319950703101430068452456850962690618078449102267612591755221540138944808865795501321798365253512248058601915684747314628014003485648269664305359739406351954517361375881657375419195772965228742899781935526803122789066347239944970283044312186758859055983324190335468009505547605103938179958942826578428006377050714087514654129288946891342366787342337803613882686256204156334715463282632803358159695672478647882129562469699925727507168138254527869376823758356247083142258298153211737842091510443906049955342362195295168296008319846025567631663776259088587417282768760211915852563079856671330514104704271838257455619703979588388758380745856585339650718468913322155406643984988590706403498639452908963750522122995137887162323979696235626585574442707572755947839099067334198070702426689949477051532777100162264107078026193108730348796978265739515775083201053353153328664962792109708944140744653845981819271982357964945543933543150073471134252427258189028678958602141787291298036174656219181802932390049687137019350085538247047729001452106923565092114464100081459758126426776818156935260408331548033500919910950603700418198135595049208758938950882459448669671634995239767743373543082666797841569176111933877761223434854341527249337746925608049454368465214966080460933980217094429888941819185156460954495512239484275327069222704512782500670592758699392253169972755949152297885405234794206155438223659859162660729506226503903235241438368404927375251017837474502523184219172039188214547622517434730817967813406870131543028142863898861218927128969603985830136029293123854560025548372098018772839027856453738360694766314911804458711030302549752233283944983057760052829883554511712537616692318552233524589431514891662531620879280983595698651525582095346114988315023760019058456450444033530095783972241145215051355620978231071160126983630021241074791192857834368873378394393486276332509836619601604557832805026518225056472581714213264465980517256960596187753731271821077601695058718803747253068147795622142757002317227618227120183154448284359311954562252878224162831713695626792176943198900711898919637754623483919539620549083940260978540675082143856970260625234490919275166056221380103833997758309482152023255600857821361969157232401875511901991786853300107321509808460717816371043261631114646137004398598353111672441443950736296083566297505515270544478591915265037980796017670110749419882485865347529847197447629251286830171266184804920497035694762542629661453250021526722397999785114163671408913854327545010881040446463431342984988529618592599653408283727625063542752434833387478117880838743885870206441296231463323052044202674866539447434963110211688420980126516978625570970160694482937264348283119592906356758626840929479069932490601981694359492099700317498734528353732561879919076368694137561230209431121426362801824696172231745621058075727767466777300409926682467232912041618540569341888172373179328580315468600067370986360583726009663380437626935925662567393676557219099913521947336614926916115693427605444481655863795363010758248743514418013522129595281181757600303244938403331790192589539666178868971025970784536036120554826713430302743934085098181999741679795735270504961286815783614228292606618621048830718736627949637780616738722612914912740609839508981470797593534315109956656358310294581006729522916046557420987752509557313026319048966410666534439561459707579162287889138398232546172051974194301800628947706186676188815392496072974092602364039985785070670857196516373086372595920519764396378312489438503213754235202004641130859782465794302464317719811462576049768605900966535766254007306006243732849991753849188052374707037968059447504960624816396530951944247718538581637387539035033881379384378318841888452921451377645320598692301544650715957829096140058428146832899446803936235414895424739332825509218695459959480388282916955374649977167195453460531469942291547479875362388640186311052620779874598268216073149346485715655238697107583361071413810719266067866289194437501605231338899377491873634895782226723558192063628090061090194901675254211746594582247938009259335382828199919178924776945425655852465610093273270622649371100324201812153578497066626173929974400664876200802335341851341086667372693561575465734006904633484888977612327727964104278349138203839677922514680750094521855500950467161110740399142603182232058351790506096767912284713053194125220507526683046016816952909683931014322515369320455746664132753133588374204681160910452924840319494705522256824751300368288951782304459782037954763095738242871772505871042239388179842922478644143948145274206387552448041142135132835398073318287818025888315086739845993753006986724000622220583574867311907301975107362315668446003975415693723586636398152822266146723983879085090061903765051739492073660093927131149313542290181528049001280376700412763155948968817098932569549530883777173476646892089911845144253630533288314249040177036704631587462458629488460591685206872129516146140863625773937162588275755443162149288140327519382224902986938588643829915459913637010985796449612987088282424470145092156930514150423735734121733415670987086679592471174609500444690843676360717209920401983599567509740783887882722920989137043264548146275052775971556692930712086068633671025829368768642077343061473391146146952937637510402558766403196434740101325691749401345408854613765655378933345090679040009955596901338323374362383608621715724197820102145296191159840124242982775977118501609834624974141591535912713122695090220348200528599230401137088229976587913599766464712543119306846435478759614426769642161959308032028470010383100895135852926341248047589243942448294180403021792350021959275695736301411142124709673328306001056709879794756290279276828788137823841876447527474158470989641522421018316319346549205367196830336269733561359391347314832412904963826099322650682525462630349078026324074010561309863282008583712026509726464008821720645642682342105966125696530097425382857553714490285206350109365283831437266634452593451259805540721242641981782337676691406845907838601503954312426034869883758634801057976039891603600182309890002523895777304545482244017838205596559448332466888726958530953803690103838935822260807931162660198166047191641139370528694787611567570581537084679292729943226462574645505571760422622824744816464479478491194239579276094624325412527475690729188088679467927381793141109926213139937401292146753993224825877072832830653246061111295833257087204969022454056368722912624740622012225400961664072327540322645686493025453251995968648541428203959563818504729014916889845438986255252247666755543547520189029103350318055038273440420783616829508087139510117237196870518048697746071535200528761621876547688348632622545768635795999206096406496652137061583082985641300705823152587346900713547490980347191473848194769005930384478910574428592812227301369026863306729191895555266474079698567194921827002125746765688976154600438481268555429702286352720681984913636539296516783787769108061871095263046695741760567995866736990297137953458700442769300873187820134198741233638782747552673783566626427714244643842003512613748699628525178968747057287518409315791440033758577510369364178633091653777470979689844569136297764470230706919206045085427008948452787622103455458529064899664748245755817312997908031643798833733017606027259820774462162219930217115914824719058527445765727537043692189150125705315993692624033646002285700373229857609964370143331256804089173961037910387777589752665380039396324071390819367058433122216822511191492549966392240921031450697391405501142419027513009402646935507747524612904703115304033902839639306469099414742737985367346707315688052006612587300072814162096092748182251998448348440642051314430823635340991072230523799844343602083147445364421494828584344591333157815032861170312023246697331341908498870476344633273252135584378688682422066316012192416572687857150611614657413798325270866352826065149319357598850259005635658333987851980286935831465281479936743062979738364680694383303008408479329917556808554551377107508236735600756351503395463655349142832925451799655954391428088208466579265510910062788435774584888755624772473556544646356841350300689072303771882049057780263216524376046478896564404801382151559534113356400955475614472018491257089228096399542919226405679176369027439268302013963994257460287127968282528069184101528824884310121112846663431596911660209858748586886098311965152818402461272060166833772634625208943616455473220881532817865660184489199060158753220162896079401032348322510656481670542698806461279716132979772030282704754661701469562043922540269683939436574485046253020547669676554589744724546220633441184805596738942751078943166417255085583259325215355967925614499270076531836750333639390066799259812925766005212628177583339571680468181900904175401563970605615805576887342186381963194000143718647252800232762424370055804102899606786560500738312491097822050174971866952677509919026169761727351398066208829022154477777604524473494833694804268928217373374992533463188237096518287381520211729916893433149468408741855436891393871158915832893882801876761990375786858341303143702500440233455709999289067550311897416311901834697463993484068670195794183035166802107481323596460954228802225629037300248858440186676987007651372535835527904987005272741552027165258886671684717725452062256507524767028838588642582224380072553512762989138452689989854997190829868073191949950211934775198371359370050354278259460337097269040120320155854533504002716636898728747464787445174272090064316220532582815648814824944794181310068405552546015903640431308156073204652773147878574910188977183955249403818019942218917453237087172807739867755331156537579019278050119027424941152661103334309994835712694662285752535721802265327697381368352735189189515779489527328907342363028645282374427749751405770956458417130590274995100593903243980210192662676488311679324896419867612297742808454708042705169657530884985873746395946118869371387200577380359209734775265144503721186106100139292644504672816756428170866980986903579768405568850780466815767804579572291109422462104857432527508613366329519840826824099247182042671197123387514374459898422389984544225923342973534092913629690780236041916464910055559196817393607965667835946242035860538517986884977793376044567209596652060846704834129580511977100727859477453544089079448859292390067053988167548335086278020077838374431026933222717810668984905327130146144017989572241738631985641288942002795070197610698384296130933974787393956615515289518711435553664228644806370187329788968897914099668385058528985576814019997198712765874735418586438669705460709979053667093213111646405989088244064591792128469966443783862674299689283206983690545593912229461637206500796751995342620615991247156256007107449331280747732523895485849666809637361080712942239985824835502807146348052252397948565413460612149044444645451838355093724503254488733729271819451530921617790586048960656310442015863456311780216442474775956532968126605370772209988087196180083737346813549299303430791590189110372738969727256092042170366462007345902128962526131832217408888925922330275473893284553986082102681630073695802806315207046990029099656918891359383930925137045301244517357061661882032493271458543739141716733492631032284659355538478848179559115328733023309766004728333126914569597954943331978560092290181753106134202466697169428910895513618204647288924799743790663922486397340930990352120690093306967375751092267384373949313052802936233512328287592488256799175164037964372282952280944360434781085168080441901968083821830945981205651590785726577775946601099834478233080167746432066137634255131543472988564905411160878964072612953564353902933489137389312300159241767634897576024412764537582153333136064298719440159307837455988103648749499312522495638194377673564096686942420360846200809180107049573400808054042034405668562527439239399737452639154068124072509757529335077708677485335435550165949911727037649712207352689376645989782248437287081231888423507773937269663590516437447199531361154805144240584351853896426138998966598051311085196813874067705312233568490591799880387778411641423495512694170929328326998137021218128641589148025256749132882658295999747287331525559511134734146218344612784145626900102153290920162498576624505437068958610013291614752162508591968395243197847409516744807522352592866339094624655964224307121554206757899543521680054127433291841714118491944939722402613706706028176373871079154529127648816040603085782493926548758743171690219239957135257696259796482227929136770252510759662473573229280569844580735937866280557593354207242342498496932634446332445662546073620122616162500687404878930634524713861843659483539258464727902670135267945743494208682679929691752310832386947668582953464713669837689082275133466042284734167509665038193131136885243697102463964560949345192715648163682111979426748547501349168770955864589850741100050140092421550166462729937404660771173494242313389930572590861849901947682994138992282077174930762061217372705724241645292370099125087010528065260263133871807831402508917524438184022940126005115315959005246000799135747235631727539337958633053361412789209209545017291626404433145336115890708135699814369017911966780135860990177434035331374229490786516603309232087178819211397186649271193007756830672983926362679952206054426392113304267973404425255285651306311090974123279804989798673078407868142846406728652345103847890259573536364472746283399594007075823207192826809641110117437303129440661972045062745548788592593155660166749859444106992045020174085412337333213535982776686963829524454449686322412343468197230787215816294669479494144436267359938067000874736880262294062048571882630012375327932391150615230554852591247848281897959137613678503068694078662128804593443087448315086680513270757160973406221712803586237500161967365314948458740774896260186628133223305510093720152472396860140498054667735039977947160259143176889835965993445166911945533247168599379246537897397062644954051236141582117193164885460359689496730870243123206580786253478333264544576747427402803062878117562960741723874783397385829689084891702466773024823967366293375540906782670976184377712141373388042204042537065015606630952470891651395519165951086184902099631810608815717742756438455532077125701139933137673385104826514634567230686806933177037980201443869468481044841145937593836384676185391402214803984053059168047074234668410191994961128294560569565847427890365222847666508581596768652996361140244345375659876844457008386341473385900572835628877929402249513768292429417726234172178407666163465541112410144553029081537286460338370001824012396699316759017972458791659943278681857044359166400522213226585347454790764756684164644301388167484562082117118329641633671533062879662919045014824633571969341276953289386107372989386978754633907537403382183406908234553940156482691540176792317650723524202914783208338084463640192251018813580622411233657950198324314107484662620483249431589246886619471381090994210301499179990438534791828437659131763928485605169195380103562512384858781625439006978105547794534319908584617742438940707223433414511262101360429386164423454826455033403478182610673216743337989307922829331160477096098397263288877747406029416570771213712193822230209186867054058065874661301414122181428314295362022203332881901947961964173711643738707220664544108719600245610900739281898270899931979223749371039880751809210893155881257713278981776098381571335488619845215906185140577082143546282886037062751437680555859661681097790958525141589469118568813475142802641302396537232528872687992872197021772560472756765471557362163023764674255890077082662511312528323982425098231367879983701057672551810946520787311574719446916622124067521829939945440527225674087226566593298505898663034551924542634554213947326117556348191745472030187908561442257684377587675152442583727587837884165167943119583819358632533941803376556057601143771715594493431592136279028376201993066363806237621942884247368708336660963748367365588728467252618880024242638470308795993583187280857217484138475378946341603844446559739593700003958356482114449187938064811676158780982495612992988993704285062324322174586870185832962164727125018563130410383605183453735930734309393173432426787835665329433063070937135730516536791903995889144222991499605234471095200388576630741104778390393223717954185749020385474370775179666158259914625558209044467739945077669237424903031278786386084923712004527190245231801122697219976106818166077734193518357858107707585821316138325886243035943215664734574847986938880566340997491385534963358298546575607344427888301797033507212527110991306441883108834879114139179275264013207124119384100226613482427349195838263443785549560951133839359709424360812761948424285391831327803629181112799953122317478046248643077799536876632998051892339496348968866056919975866926455517067788598314466313509720416946489768715172518124469048536596324377084779344473368520294931755179571344179139790639308412669497834876247577972513946639680773325081704613415838303184170806295032596753401394110271863136184163381078458942636254159908987595417848551377800112410126257253109628618139046758710342268216175020059065141001593041029005482288620087558065541856801464915473124082893544276713466500880288742813974781201199878464613225516186774757839452666826541305569925007258131299740691475895993944075647502648178900145568838331601538801672293602008152603233714396716115592488686431314852336243126101168425225658407966846701777548952374485315278962653347957622593111665218634397648566265774254774854374990629044448093346231283917532618951497770001898247974486664033595297154519745084376668084567348021430965791643009494090406029749714672049030330007866627184085164543947772634851445560313124945081866621260369808893941323535483082829051148394238383740153154610877026797765389098194235640740743007800638224255047419010424232392664577799377745683582388419389664650469791258610693371314720952875368760354381262111946854115757441737514237723955931827876170964571292591389136349008716560855441715788886457617976209728885740245225964978366425272649361739268064798797503515667239967432832181809179375394297833804393598705104276170737230083830067132351805163712799802390854945817152147491888420648363734295547819592410526411063783889240489859560419891329319758559340715906438651396309854774237073755517142662868617706087309202963361473081071652666838870694586397526619329667145293513989700397599074959031965810872934569753230685558155908481851283553458901272956504894326828500568775941638405537264688232159781398695217178146712744569798726447755617927686502906763628089574745370102241254992856781198066371668459464556944471325678382915524085520534168200669825796338861439479728672590468885202891946925885221257744308272323431079808976432077774722377820890394899073706391355456916966171037928390179069020092760713134356868372731943172829823271239804659177201689075794031532585431634383872050069427419187446396710062414664283900404867002153550001702782770335669192325528784729489150139261983509839055037019983035630775584893565056470310311238053274093643992851757051198346384895552198890004036730519017793953164737667399969636145041468318445824410663951520058928155753984123425462675652315567187940256327555350841564132250482338016642922406055983946504615763645579591995089996515059834211553305956194720119940322902959254105317526943874690533545193612957310049501779668790884977848229597972519055809881572223333202078675674077712205002669029717804064407562843926904348135008418158075382022276865491470559167014358206835087360713541200080743707750077111151953557642106130761709874280205483478738441445725645298055195394542455430842498013693928765335913263664502927890995599159000663475289885152327159620767683493214302482263179519855496389234247592743038554562238057820047444864179381133961187339403576980035661385340298344542729088187250470315416636189577866800295023718492634902479636629944889778632224535990006321056004347157200548543441124278151242225119951827736842855888335594648056267136531594159663234559729480550682646796800071581594807727456708186627967285088803684741536093253982271335709896680736013301449381976420990824521256833180740418595655612305949458908449147274557858062278068308421389198110904745780670191103258811982062404266283706614003523037772199614008176174507341360120842384158701968172661657970664350160558634134824388164858177811953841654361619647033875003049595872691863006277939558111337115569609262845261019742043649270942258491940807459713152817645560472618583500728006572523403025599730922266642099138498431374217856977507075413293043948457647316829556654356729767050791814361209275270719763687307812490741253138491146751527823981596481216806515900630170467964402612216088433574378613028394525785743294181784582445629361298826288275810322343446188568533590862728389901224605937578284997279258392029945936349520859504610999808268579849843731468255931743762252769764756795071025085200653820949136070008414875987882806744331101289104763039697656418507569544212526278412788721838517198121672797874405259942938246706709235115591780820454403135385562669269632994223049390113277303144045521702504763512678184740958433451657814025584026291813931906179254641842294932153371268593007913714059360726006209499520281976295523815186862669741513295306995927757820881792875933681580647048912323927573658444775334372151425675209506525233304264290343105848875230297657462872068325967971116476932443173075143217627305981858411423856291257229994573431817782256698767793167273157829700338199716209307364464183260489749954595715813576085217258271171052964929563593297378517686269198850277595259482085105671136343838840448479399190218366205620203977515991544410562977522867828716556020409007775019164505172484481415939573714232845743862806004515858877584391758820267060423937944108009153036447525626469092526174532786070988721385208323492684807703046716064445150921953560014331056750850685177618036807243775941473381180591628309160444995249164554130607265533913366970237501990034144850123402487008840773138675846218932178496944077761202606521137459462091229284993379860112209583400496351657722020782224061913259711596004721483325765958869670244348260136054502578075436228828950421947553692618345581096761608239104752035382673599394376242511777158602682654958547774479205940673348466359644975628994108485689707678372181291991279044391203400151270980239220200996899907091975830294311090661884830036604269472113155686629625724203811754220269879041590177035010129830160257495314029924285731206759293041827699739157865961226217826961996330468337843871610722341196519739322772015582342208289410655999419796724766648766257399209646292968564579181258577868445357117894159817431114968441494860869051501555088333306795720958662730231510369800824144323782423925790138924905462230010536705613997080595834445016872287862488926099426500585172494229063710260507903515115735065180598945349481911256904462269789764822166540419113724986597036784307549481271484964066720585867114977950842147816678245769578717486557806817129092236865856859478609293078361275414409360003608445215805874936064667760713886073550888924528020763123776319591788909619158934395307205824264811080916583684146903306308299868981309708865264178436069466936293154105721817301355888835147394696059088129335747298239600293222420621776997385716851713366819178973282793527821017939132854180626078296257378676877682812335400981789865941133089285365669030163299160156854567517040364822410675521718460431103897541899369244628125840856272885905731723414430758978498288082804156316779002961812505840135768450376535691184942573140946885980428547397138085868825583736025426272944729960870188806503642249361051490849723097435840076488215986757561644285568430551979928094149289834693255114698137556264937977899919637706136029371477983007178578022062646897522232377244336828903206047895712658964367239565999133831633538774695981952638699714283046243828072359399690389740794305841078687789165814850509766103836475581206551059889119455877761042703458792311628170827227318051750724012715446981123112352257718644843721632566647549945486866313555659484971938402824823708032751400731320418110135067616304455454693704720271916513661970392312588621618103621272232440353126858336621545111811676942139362796638517428615829827494235411445581856958705798791169836703900542048960319862799007860123833901501213731588323467080134721944946150827642601713980141790921516316109636763018175624832242571339656597158299182073865065127307609790329521977893357628665845465701813072956094286831372176742333410944957993914699831234122109826380879739512126635804552541150943750941733887333920065268442264323242054643275049221626369888465826459117935393285808458006607731435287127264550564002208543994031062791422550587316396751513767932068764558354475293083757536321406814874468565413847477909960556769585029055109044562049200240756313367272475250145939610840867813540055658144847650150296612778460677221021458536528806403835736424884593182159502275970442397277383174599158515757445181427830501035447554119764169596988061537445411451033280166656431557180698127037042355053158308914655642303473793873572316243572115622494290922082496702459273507763182648506683390494546900882470193026341926265679464793248335010343398929606886779802654966009820734401308581588679349786947125113216252097597089172562375501258761710322219502427599132058792124754530499678820227766324175752378989186139478376271528728871750129131844310643412487351457170428148984220654347802813807628238842452149456473619408838260120679404274772549020961370354277681375982068815806539090153053168214139247803297938758294328666491387009007902058829945309829226737041821334294530878171125687138956122544683027423932322913809070187485967142907653010833789313863124110594504763880397645987107504297667189064624173321326007572187767965573550567893583788155514790917619518676014695312767592096025723917954836546232067266849516502653490203607992993089936579169544308670465328577353355381339283385931619812970769117566125485533900807215038784147027445277069448123790779856376929258491329998131360717544161277889988351053338275333983780157462433914301130323934650390836498433693574327662156344917641047526903551922173530660565168027564747966149719195412126879679178669778967622510778485389119355219733034024548606349788425320285899728827325101240378632875342533473179550183481345541484779428512677086743405530292230364204300697042853412533731832284641966583232733397567371776937960667479985387692443373064758112257819881058627726137524031708194902813496365642004589732447164361694108121053175732678665582459605773493450091591396832505616367465554271407491466474998281481717291948080472006023680193671362692136647881386113510991822896468893951870740327768194055825311530703840000939422111782767182540408171034688952409235606074297205937440808505171186347978854514494502020013474125452134560422946243151005695608189526733226998964053862797864995754870946319000165530828545421786295674635814371833209844236636456728438547601877770782474909884122277848277053014875915568131989355432818951395160811243550807010644527607098527938830462359705962084464487792634467892838065293906635054927069255024477596165098983943549141502003288207777668759182246151055207566287554727084123388816015579229998517580691598157939656949732515996809965589008761215301812480282498955576551581486082525983129661873962775899025169104995776853339518460154166759493758377673030601304401624409449959462274902454348273861225098049487916078106713618697748666790660535142363986960071544909083066704453664987582324952978272667627208422101449361726675382762082716689189173591120379435822828378074820851111441336401688759015167956765753002779482913307572302443617474191144154180428908817076538312625841571549606506675602684713922275939257621957317138671835868060874717455081703291378871646464584310378018811529444540886423535156754972717716946370875865671100482605834799641615634300160077615655439917743833262608498793268437009816188785867812779185230854613862956520935478810024098143675438247565053252961098156167875381923354611444943351539965532651353553604461932089055874044378160063477306726931511226665217255108906572946265242251919952709463868322991249723796941719402430674280256244953713805677593220018687938412495446291154091476260640625157286216529964408245631627870543136117256239199139929646089403669480339435601359131982559461240486026701784650604813646420584854593059313953626343550618541662563717090098700923812848722926852127096649938256979771161095759064693955680545775163871848605464025005261272034370255999173025199809111265608842846325435836369734916695652045651785974761978425911372734946401039703802450011249215016870031133130292882946236845723743455401182487654791936181510517713639803883535330919091160410471677498966670667201310938739723705858873024333258318657600933780586677255293253774219540571162866430915394914832594460383363594052876569048539548741859799146214757576625166911040589389152576234794937506653082115932061511636722417740167340825405357659178629055592302985618233421529550504022006835958025751185943015850539926199276329470489500595114964122060921438398451742583222213139989466217398751703269936943678865690383814784571061105306948692109920527954121235841942380326503394083930612543963269348553420368649029874319293000169990207409801531300621211217759433110206378446111168114230002738169625346566494000319881287140058566771436990356436977562874127304856666392148350478765136637921689568413120670941221262992194957082780372092849732215751179710273787129890409841770310304395964203784550399819197181664557551509753609105279688421502651986944693942728240598430318168714410302276580600772534856005669898429984626028294723795291985398962825345286399334944500129333983816355241995955614709049696766360816082949959708611164579039226957183848214782480434317247745501983178449872744739270120262098867505470660577712780120339301760054039243978481822182913798910898369747214608068812631572999707158136828264901337560962122848459702319060038530615311581014792476586384624188380021583011260221110463427964324291936308276219503890181928533999463366454685818260429158056506295920072335991186994026821309394225904859651215631229104741018539757733464261098392267642252125663701274681560462945650764868309391610000257010819819861739442287761744876822504060127980878029914663025364905425662932177087202203646318328428244743357700638735558566951790874642762534378773913915945829025469149032095491525535451036452240818835044280878291084974915096645683608594080844222851533957484416252515400056115415835087296008155279271014591392395577572282655143254741063827285179919051065536061710902680661638278114320884876707414901133430869419354389361000854999190954925031853948428365747909709650145403365092942644351118611764262528528127327834389949108501604808656313982101201334127304718630679005672670997713443175589941588581570706647700427371203788553285319518906999252037324144805845013381978654725646497465155336162415960722433543200458763907053779855596827481310214570924056906148668161257708130510616726372394631995769136037215588853066916240271962231316838716737138772958620716535072446397076131766695698438511238318300866087144365132948245892072358538778466372909564350212429118436183832559279408878354930798315855701648796171188479583026909841503701643334542640847814029014777517369008108696706557912109284284573291836389900119109257591384731210079471764447780466183854059799208802768423921096949458745003608016275322999081665915823470651091909038538519680012631668802215583818060967203147204454359245095360033545990035259384690812369916054016405385323256328531228761408858725299678087109017010183431144810828087402338482961660565162307554424412867614994418265563012280123913738803130766464138805799655746339507350597868248858054285288337213460825654290276866197942761395153682950591771495250742688075019452695422726590838235262703219200478493086966082358091456517356987745002139213988593481183533544984192259384190077755122005912378455836372245471968265944887959816227326569350566140939806718052434131470428104447136734850670449558538521067853996500359147895927528547779364766173676393122333901462042853417120607283166008687135352372689576191144914101462294711988561248382549240234996668452157534049266027586747062746633548642421867963027642509821506141389970008612143408199951437342471722737684786683980480068449321839917623998339425407552637253206872775247946074114485454612613943119581104739648308262851622428390487187758229081683105898436927294944871489168667227947668253552655441207392836690093777099273329961524517442787790578714814729474611238840510184695310020181874622192996206550480513997190085746211057138163567452393149417626100712279299219648611157478065402152590345502000514723063998118438117424238562938115321993002970487608032937510741478291980647109368093111615452330821157510230214997862258624178663160522383573445586619287882413630628843837561991562075260262150864293804460112717394304968841053495975761447356989524820250498536899645828110619413439408359823573373263488497581087569488477049862261160562609903182421981845473356702813293184651330002208923473827899319896044464812875033923956857849739005430567638333429808268536805490946091463851821987001466344374246226563851751762450902090718404318280435896947607976188748891321918650825687342603348128178928457239955512847439803312820327471191354329907623856676316204453923058235277490699680232696199615628914460070737948484830102260144559138668571911097069926588397327718628562872654431455271832152917943525372842491470844823889152212563822631676722938117493469334084381707285405051889333173282326618523565156286011406722632585201673582109493747708280918196183795107127448294091454499058433488706838420752021326254884520416777253493758395858959754200310779852278088118092336654524828692784086119784133470547586585482054359302150998824461786828388834752170377472128889874519615401384446751780590945390950177245005642863061578201342219169335147295931152040172897352631839862908559391551729924415962655858447407500878401630347904564236536747604268800035371284969742940517685522829484179298163995743145193612340351060557558045432730322327501355148750598813921144528144053490550868319159635924466338216223287742889379105047630174367358999336752422034870698397317396945038564023671324505531095430548119484201034128271187416285517750933205389143728489869137881080417767798463139878834142718013158080444683881947471335763956419381879663729520564435092961527950751532416371685909296031899131063391343639746055354141175087954651822911253771803782765775941272283522598636449257190033460917702718990401428957203365223118655951052890084807710604256893819984139856286324058507317862785126510422601150850851342780421515357360752381257224244399352526646985913234282579582903877943374793454130109355706996267066416273477512156284190056891451390561410797037491014234343911335124382814949437741066866935377232592070794375019729084481249734060760582958714943210969081251024864075340081029858339999472597342359740892548823738636668215206468072419126702774192535892784837172366665352160528867619133275337158232508027444933652406426192842086157942774795008858400002524332580480841809038763923558936310534952749559401656436890451193325000075086721918631738454050806764671203862368994262958837658492196010633433884975890761429398111487953120896055224797647474471940994479504783298103230587046096374157941314423196150622514976616724409702210279990570454411976000387836457968763445765895238281880647626644806555804890767871235823392198573716220597395353333053676439460636277593118466812543857974246447217085303951541093826753058634745446315749427279795612575420648730857309351633386599324345563753173794438586001789036783164894455983456799228679718109032659287518419597391824904778998699761393491974899873298582895187574577783350226855672106346926031250987818899970761854136841658064417830490842037059247774827196772522577090474593790340626562893719364112968892833731433123497493896754950338137018117324402611674022880462014876353653684437909483317357116259608323916879374046153553980210461741987186473150663399151720258674356701081823247009778382634544980499867866185095823536836588134367233986401776034020582824467876472189285149346567693870665375478152151412384924975851514135626040138753758199135051914412287749345205943876697433219010625780134279996458347925691219094407541537837108919111373152796304982529233007448284954397435520974889516703895905491006071799768032757607867086963203487965341165343465287787522533568683869776202403147627301298512427216498199523579427332836614282610719911074028750931685793105675913468175306411987676419152070183854243694247496995281906904029979111572417296011019394737507038369988789280982263849576153674370558109517466340212981105352944092087952850638407651716529803986553347891431829354626518966941642082967207844620614940536307413472879017538587649297717391282766599314998713751788004441326164905792832804279197104998126065962029025441958983296090674839679649445424842193739280468578078612019942621617896069440815959353057609928708617707687282052975299072905900035596601224001310358046077668287469702428833887161680148958073801108080968879974974982511730202855094619709410207705825439386407811156133571294298334613596450247040940852518871889924371535136966677481834407646633111190621784510963116620207370248101212462943096007483741345223705328124157098587830027008691739356922275407593835595614316032177670212742805048023495116907822641621320231400821382957904767238847534003397459795107018041134324208973100435155032869367044524464355011559842022437312394118164695758330077977107253267158658549503789840572147735221428580047713946334504565977487222283031298629911493662974066425950505733043441604364258174966066204311249041459834616613185678379036187359050388219783538985687412720376470425036042382365194406686413927892260490448060124831201710330104545109588079028793786237549686662836502357354806104488390025047917131990361226385270662193306702475213927045539850189469995453869144727939015388322989009303570793271513704503864067400224621412092364264575075235864847229185967725217807671221109379658404119809286101829693583965225834272725796372352572506735881066213332313641173342414100261222701252372024634622915640042429830364816225572145933997450887949070481139945281734071171604927658745657201366323756969466042402455323462687282647074073631970151532960116360891633116427139540698690869552477940466765048905589728966270379324139817381358773361586090199807634616956765400744410045850933716050236454832764604817528330602099163759364337790922454481429907753762838293979122515277194927495749686912132345250037837496741234401061691125813714374335574281060342566134829979524923952478931984601647159368042853260156203270457720458918703199585606443076261717513907299892324799276760194148767605459044601687216737799913831576010762675967913786892513899429885124914855130673426575745604892911415539734682948450798851124658357278043419177437177339692449801762289481629924164539944509215595824274201919042072479879428270605848956432569738775807137274881987189992261374270910512548876025497424705454627043574035712820607995800123915533456055334950558895448201136857335982628705085673586263394852407572748704246146731306042444505458262752860449881360187589092337130161862245576407086371968828193290877698448274846017488568225462986693591521404604509496282013786955880634817640650618884615039215908753572831705614100331159363652181239719815972912398473694035503534621538739756159596917670186717487310536570670238155729997690254069588283113195512234694363298814225410975195162404624190078485458952661234068119719869679303484922734986552507767469444663704323267819290314605899775509716281558801947522214537223111369793373529659582284085154824373728752954409577909030971756201317604410243708861859711556639290317243207871037376671815212595072122282037174457167799007629824554876409286233495149683671081544143578921989632948267045676106743271220255629400956818258871200816405769451711424750693472221339509414444433389724893808157005316686553379629718046140030686648343931910843810105506790440191976462906247314871606604445464092974414085399669182446252221990467146782957530528388257321368366443523185192427512694990685641360363965276072225717827276756023705714595421631639220701509084837771717307777629881091114552286753754003947594344971043586666533320510938770870690126943587114588779545185263816618952272439967148116296799372610764424344467561522074487954557071990586004665449782903384925406101444550619268212771345058492959194002466352553009177562707050182808162831511768705867887348436069689271790478221343098964991815608913507153100923586889654285018290567029636280115750697850385928726675170612565118180895309103784328309833219397809923194928711842159198632456020465258892749475997810396043650842169217345387616930932281397303915639815657106672314250340627550107744262217029175141803587034191330207114645749574616496247068355543171870553177707094084445594656564930595566478144327686931720134384456354332651456998955545201146772925357979635618237475751064605572034778476241332071620004714420182725612793794964433715000010019092440226485867204650962893701262443187705750332558065458487120405310891703920503831880144532361238077671957893299431564004625363633277391897043339140865048526598378665930459282834394916782435822192808703784336644373359129102336751907997620024346487301704937037609145249167541353626800110865375619755196534878014146648051982325545048358457842248833849496301259673371514828175566298456207826931440006401373269334921441243949792203673080131200084191318405393511279102278654535324646762606265438879434348990812768852208804869883643732332972124040024269289440387772229189201022133407055692317666780081153760124674827177734368358567088629617982703553226451787973267031347653973815785369937205657467345397233017756298966685498585318157490652547403909611447589734996415750186834428773146777290900427578969943310998979047898487964955853073030800133471546928724218325840100120956126232262771601598306415794299915226882515172681538181978943785965540760318998351942824568142606354811475194972221224730376952174285255167430705527188324654092767647886334120574138858325377602272166428937273931549744294144950336399388976851212139029460279636790162841205542634516967903419155442509588251455892631679919758067294254187070361712772470913878720634635959200371629789235699395150110510413928998013951941301144455293148534580337644148337512315641578167750072980222051876348585982628316196436632565604516896200108226307808602862072234853866579493531694247720353873939569706784587981764720133846942371636396981647586285978864578503502258049705409042985137212615036557773492135960751815107229192002179144977909241246750095255546144299093775878526924730572046466562991127864241064839582037312419668005288026782527939525076520670673775351771089444765511745139251008143721773224201657110166658038207789748710274443172755511424703247858113712839561681067615389752441556089786719798589795850426349286453635198596203760049231357023548620260183608301356924900696581482642680583621555409054787000542503512815952231308880355187309968808046360895274725209800647773521842379699739523318826069415443585165938685219077428102886961001044609230794803133299619898298589209113819614313631648850942016183941845737722096625903046980120508142966517699948102571723137996798079508869306014491760082436560943795262601458155031400842846873457286919732900675696093774040354045265062633852111645711144327352015675428067468685591964005637205576101636117308846904966724666683887844425233777990864265121530402060899829331102313621351528042076860378005115589099778733342858392382382088599154290751400918919563436433656698850553168021561856718376001919189273636295569329461339482160564025403900971935442036612272626322297134527855876297435634894007197756755724378843243543275395395721222562832968146401346436267940703072496431820258839421064806574517314811373928648342533170084835175728491735519385790992941314885238378889400922436279896561948137609719527603738878315780411332476602050434871477903117903513468226866790754958472718075328481176530218860342549125601544936199219231054029541475009757209682225421058604303667476228818016554606738360001080416514018143912663165379690015958101995874516327149507898633293565154669156702978297346929730701295299284131075107542987420566173410766266681443120871891277114406265444771112477262752297448412355015409505140666024416085175826970160912701374650392844746478902350360134131623529065451548851123176161286357007189816497907815990022668482010793500922527787328527493047052626347058303034723121701051270692878387385452005815755936791465470058965845063439637452791515329189854372235686697110344549567559835964438156048503296536898571598071020914388180728366965708935078572742614744881464558438073264148658056684663463093319663436096180650580743295009884544211278533088844832155830664288469729765324646364893480646371205462018368661906035507943988736423530880943649001056683346584199137947751177827566757068350960896450931668855144579270664716558130550281972251737994947504096705145746800767499686753618801030090339223047899975494201408117275202185911491230853398834812370520376634067280827143171522229883107305883713370198890914375431850714479654830649266391537622945417352276902011796608397273656997795112188424334835270084536693271270848709965930933827773184639144191172040323242302096169833287282116690139053150046606423113331068950503649404027496190991402310483911944474279577598848786800160272518527622681347248662803194392902914144233797700472155540598939400355987117326436371814845013325196402402810451632245270425594949019079878618979893527495923166877803000409596159374091869053645410554783952647008305287224634691863447449681453734897798478691869770495780021536592961274268205409026782448154074055066067366464848213846702831930328208486951794703505122076946459481016437280294899212477148943851400069207352248737234548570122449726032340539926186003721110180872705972372748234156514341031122359242535405545973739426873219347045026052972994756708736063144787501761520562748363140352820534352133978543470545849067738049825469811512147801773641766528538497608802022045017111162390310469578900173383418069933551927514600999270855105729274384214256759195176445808853686766215114326391348758140956377826929383219753865098893812586766537330794928239745722446253725561981680147995328875473419214750386375322796067359891273281339936322346216685444323131085565192575522655628528303495857350497005532126643019877282070965025639001096314731937911286556478494581088300004147778949824813797363676511818722038623533327641022285964313040522875621910022375230769566160988905251258662209546769007907767172190100599803308787567723308122260885638369330226562884810733771993292679692748670392367587209948930915798821004301368620360585087800959961806549123297556083960855673439240835511324519321821960951398442912799924936623919368620903556866177977584240805583510737932233655379357825891938450253426626911865875712892593573814893075302290610375083814084640114340193810125837739041130884470420840051877049255939781683072378103047599468068130355958050922142208656197437185927962303815304052114197013377505127981777622287453676241741166114702070956259861778197701780077291929815651993939845249726006626871714011577520099084288635511166120807869398813628599382765209729432701383736832494247369923091931844497446602807448624187934243900043906714852820227723269898542178415151011919330045862023789435237176744951056625862365940760621959476406793913608603370941804063954581199935527299551468343861399151262392352811389906722416351596195801625599358925888556267040313313774086767127791382366420811635917156477774148560870197816237216915580799145335366789839762554961143234934446158894090284147563640831125476565249911657897907756927410040770689224249180455411671192317044143696496964548273350058166158241837615484530994366736953482593651065890045998442894481167836084534408121618901430537490207072136034090786018711702252572664907660634569374130825117835249786605320113190460525212967825051459360969597058964222891457508373140872262362507482989044528681671361726593803813763981716079032952656506333903275047424653133334926972319341327024832762180207869733336483831546364099853118161126566368450683401457329707626697195302698473982243169742727044275692763715711395624267424295473968318581482248179912475343184145460613544483262982668948589435545580524809593725267876523222872648679208406615964027560946752436806666314529634550584301730517128996041943128274038838245437657515380088349218756474551614972115984084353150390347069342227883813104827152067132603916730128296498600075005582870843207461970524439485588814350990309384703166810383226110426670475258987614663937193933660576174006676449600495973372049299676461248890402850952600574109654042718593555518805526710574322609272738689348232076194243087678546584275406220837168885554245839620104942933258054246271069665830765182761322172785838084528277788267905907007139462124370756290597092997441085348737923082472330633628571833823597248795181313523139474555505552239501451905982830113813638100457867090630002396340532574845768420031919951706799780259986425133598025270370690366880071955209974172108166650196360519343216290901711712056603638200687461780339682229781033291211839094350497168745405330839045068450915745560422546293522044643866832871552216645946455837848352495580327671992661641929680013882173278206182114282285867821475846732785450623833655608983047598554249021915353225392861567510820363384741142248217610838012701340234634540797022295791783029176619825557973268466394950336877538347241923296152921362375159410227521810420977707555509481443755219691979933135432120854311040909030132338279118330894124865367007937416719581827927182152589192258264949101361717624789791805679793430004675450688954708954635440407404620163175504296685394236173240443858455485786677061681195865593692693947090349612610970033315178705678862647001910586272353679145006689396575580579559999614335861858392645597706704437982500140967467608382516067665212433873240066251564321630260289129507419080107750348391874817443711550941991071328937095434114100296401239485930820941908745762305715844632163889629089122975107816289478931671193284372867308520964635452585972634855181891552851399812176268137223144741788158697509461672095998262469368838140466557997412153733135145776549332177429471079258758563681916220913073412587286210555218584877670369759016565108076661049266500654904842755602370637248735098766852744438170978089596474189852668170045175133760431524330905573695155947663816367527429490476829143983866147416240849475926687898686672471799973461746660863810302297697110984881667011534366213877590899985249279626627629538506982453552706130787134953314118822454155560816194889963034462552395104319200633202686326619751223755253536399650321864190934401371234572698070129507333106357027989630242835073725236532667821976032034597514780433972072405595896212414679340516485637718931927055115031622499202088343456027526967486835901750454909826001591724568108186472211816509728277402280541199915988467203020488782116679685204703053861942659026443688956462103954156093376910577105215349514480070236231427743952010933281102169155307977546102362485487458917421350937420642845990537178900723061850333267823269852088937291947276223043484073400592083740710384403984832894458420772032299447378123278502821662181399890354750385750093569247116726692326569482610777662994448031506910272781740811806132814551926888851223096717115734774190797458017726577923215394260894247378218409720130899895120444293463944416343082574002609068133247996468530426600918212845231430318988848634138734101080358978569083893603756702837759131569951070134575268152035987893010710498742650686032145281158165878326726655842293813484561401738076207499691100091536177651380745204329489746853121708807298463026779278207004133425179840524875968361747867088025802631226871437549219163560749669905775242292287165010801815711056423200943733219100472875962100636987614904764586693476772489257186881729547935177105994638787817287108655830433539663470351572174618850387395787161204995654518882389854073071884857317153974454906624722083462920693242858505003782341250707276683475256071719789232856297093323784862910078350819939514659960661649017586305431522976072644685957910851594440710565337769544483500276936552236294843204683664216435431157482428762283705777841364862500144005834828188969392983547587525870526086743986201945843067844795202075989907367517719555627312780264047801046854417721860920085141922698866957477294997729153584260259536253413697639102610505604410832201264314985915871451657076557075810204441751592416743002950708242077915192347814029746589265036259296254636874919115655519899238701888756557557147993317656015114506068268456434325625789348275020756062370778275836337952724805734005162694607060314875868683317514846616925285243066981851883164114407257184887889887565197835486970487548503798273272325014994085899710661363960144046068416564995174814441624668995233682895655636492494524809327004587498628858741109997957620318420877567997793238440115752511532562268322087646857251316742155161435482550521618219011638215433353843999455173991802970772610334623780140398008322999275668316110095916237191768079395342169398701340535190677308404212656153840459426029748652095102881799105132175433665409639939150894761183063792202618541412947459462005354987121940935602923416755395982832158591061609931326249636504879829134098610650168464613009001838199507795339141345191183090010294015370825393730407139819934031326318162462994443850387156864184615615760343531398703911300339746331634348657906139894010727158933392670275320075877314325833449011410011802949819073840411128700801154791392152395971653742989261041843860985850439236882243173105783909487209199556428448143771975908182725923359537819891091309669746134034579608771161419050830776559527003757569380435106782009630411258443031913851594321914758761388134280195583087328380446624915783227053882378960706553828290594090689783965165314208349951875799306678680592525096728317475291573426798688971472138925670119924240873898907858796540287995971208894497064336167904511049280561730319205149964015745240008757719351053828150677888280584906323192940379475928939344513894791271983142139557073814486022891773389027261072106348412191150833609948177089021525476922929419460377151831300743850082709901830475640320517092766244196251911882951869663941847845440979778002079713648158059639458021785381214416359313396186889271562567464008451146670296799908709929053220984653720370993909920370498651890885487663231079789518313682629366927002793844368790579045912804148044864861508470639668514193150199272236254504975169531360132630191280858008595913242006347596160928544511925625178034239611948423094263714324930536385923720685292369691104044477771074742395554108632122040437595060866136625076379918768596190598946256077250675067289546159780424902905031733753831931867485238276609511493222491522062903005525264983427905477337946394107711570494319761298311762712741552935694278696902888752057141568754451761142557346103731924324727668634261338916548564322779975113889793666515231134191139960061589259794150451041239418413787877540699518001294487647164145158128287987285981486808093077233213579983512301636350129992169097240753712324154502189628644698206177137045276760193006949306870321092838026323655798797375631988222759720732404368893739421327470058729333383448847592354263643137616292634579920629551958110456395476785985637693249237059188634970388973982543541488977870633529132906743104593413390928732392596674699012941509086307144623050797115121796593243597892425769865313197657657682131273060304572449076658483362492540085371374516945067444785449961555453214376062197293751338067258892271124713131700513191374753992444667197659994770697202142491485577555203789323773039272969552455888038498178752900583944782443968208687095049241051125054673842135552791155664552725878134121538040621869875143376913123655174637879752354586803018435873181910244624820924591837222100501041268594718101621067347361596305277113055779124947937361569549167714019561527086748413579069955876246905874494748692760439432395635056015682600611640895120228172766146100492545075452209455770592626531995396995173273296123882048511196722086281455639138061605478820761224117853245492047378138109652899248684442712698929109356412735040053200675727651744844109309275667635821872770288609666662321545796058351277002777527977882143542959525443777468248148663846834477741195258511377012098482453386006150160372385483567663969265707051168269299513123247822569844026582731685285895940050600702743649360748799306214462697360461133077528126866510481033979888713114976800196864661848059111150606938837460091500360833276312701508383359239902536569684306365890048446304978060402596505137233926541549216551731827748111081042543993649581468912992963010596458327831056264479924864995480907827220743462481981927543933264257389104886625917106348289871269270038667820382064521776138912710700330475825855109581246692290871944467149143441348280291830170733030561780655580772851606089764442233389113017355540998284539520808076863107510556771337074587651767740713275795169895074961341153504857901013351936482952196365267177550574335118293692816671239693623409528322667441971372065811426564894580246411000348773919147236235677261645364533664047192877916407525094935236289906943945846690434419363890848690655509408581453000373471544926637470156421640244393016178540166053645711300346177464404314296397947043595049437947454758443906462215819564068591862486740845301296565888289439019347121524870348397817889924715537821782505119051660549296971341781440634749814596336655735253740628374874343309940478814564385437141774997724069502897126925003553131217099157569585520886621313418148295724110673002704674092080004087257397506526294047763489275981698419951485379855028980629969242617553255057026502440208486278630293239224922899776881745521727449891656192491024261854490877994147340274535421661974677337145154833238989396771302582418001723638630023357149304863414498771215212486154042526462066618550354221990663575259096751262365008910914075809379349874818005804679845787842231027491912219310561711209107032710443112798045305368093601225489955838854884765723051122866433038221407931674425200888522930058847124267714849622542819395516707583263601075106354835526269451462519097283773003193634478432075331619662751802722994573997685079026094293181613012457623373401831233035950770749979394722598935861256761255019282074332073397397822775444398272607271708257513763824789954628540018755552952340981500409574677082638531449372105651072368990329502096505870651405235690082256180281299085886747185911912435025647381990179205233790635126210365141596587395239096735392055008953149486979806759178748741202800578013089954389209941642377792245671175312022428498680816788550179900018711364410675088744161729724360401692347857914231892888999453665938525908076023682008689852603394968403649773922610867065170331328659614294173432162199276810450828993145714130297819863026235107087247826668792268646485985122221836944683529440958539064825436368214653333491304199950937630744834283362124246862422293411347474209774154515163143559964710370166074818104176757454487639959666082716958799133760335322501212121220307630806953059194315019197314854449653265126405782299318279127295394452107907479592083797785918514360547985659119629767326035533609226851833336272776549511632888355674692947611565835732829889359420320806075881931513017280586177478760290628537024609558420869893994723245982590029205253600926309167766250598048894284191361906161113006786438180902961572396257482473759656297696297179541562514478215780863448741153653463464623394116038293605817070867600362115573323332951846661166072106381588277660626358078575736410117413090966264269801810612738737398655153228443742440486124511434458327210839632671825432553286473049182990498951955827910321038982510227004628699099503472468633074802807793990405284288367479389138950540088775626994353819007974581759517400079295105525146080532754148307198423601989465866315778738504024541335343993299807724246063774667487896203715328039762815460179069706732175288633603766944337895289476609598285158262104194044480292018208138238386672410677136266232594819543080079869799432716330975511329926400479136645314531464872049392344002343133081091445894300224488023290389338020773421057870422199113077574174127842875693788593690498471845558083576243672272588810146610692828442341156014677951337269086528885099254865659745682662595717359196170955352827543717186534584608126832224311945246049779417153851707833706933984148025326357634600602456850962182578438341896361321724748103065562710983720005409239347324924281234471583748713040497107103684491248236934959554440250054737629957875125312363724152191537672676583696990977402323833083400761854341596290052473047022741953802878548813432452857912930112237206867088606851241569892937519960379182927064694643875483271208413446995866080935504011450763261318470576934532165974016819243350637294026211990339403514187623780587767538723149993250504527111899528335333659460513465100583859993312033164361232811001905787456327388801847530275511628156244628153029310224915810853562662094085289007139773337085688402295138618968738434098150278443526777323792488233480889058246699177380170229773835917339323535442917709618672288704013229036298784672963941361755492526455454825724998453553608719002954306429419875362537219627648367395278355785709772425417987497294145422534084349683606270048055490967433950829114719491791064483232775748946152870018044161330239394900766680957436542118596788448950560486951672123590186504844083871265310807752099991921077695158288932336599267425491115915343594677040874816278388877591840345353553423726960316368731321803244815788476104643718201686639870954187047385896787765188026108401684708520032732751489367482919176147925194030711760619763518158690846028848812594045575486522768447243781918848058053111636883336401292159180352760425890391980722910480517772189261495974661745240397252765773960167049557830279598426547593340383774296008154496429939063662786293284248052426083336057547161580803100478030602654706615842639781114745133608944243354002853626876760308148168192449008016310907605410033215589648887025043131182425728186072159499036377219256831228838509992495773385327314408321572213298243795381415457236114706705450814785054669193602354122364657112737502852301596150124557717749514870894998337045702912284685856703404325216882905938128579786955761786674117241044235442893243187881421608862847318096821857852711345571343759073848349572245540971447686296503486851508315113645633559952373948829558368483126288799155353303013899836820293994700355820115021671715245191697805775290253660635582114753803455292979622905045941547248625430330397247492745783613992409363126811912071536820647032878562657777162591535500456361406056373085344989315552294292623070829702917386669931437758682989173092546578633394397517714069260740302080271361050901838419204330594796331510703733832298875084065298262028236591356631538943197404411470997557151015252227864689293003152827150143433833219439089660348239898749437368383773808403902262819385957403300189611728822314603715615351579280380090081401252338483824723825493584331527565793367865024150700834955151594387169482363537292305005426730507568873140049238781884305325474829834269719965694179990998969129584198001514482920199577656122335759453534337261177252506035948730186014262258266011581769379861110987131609774311933592869420299621966805604623032457147334863415179989915367872595255629195604252198122190546210741259245595309537363910353474381615581077485186863499520593479424955151920191330803221079001173665397122246320224586618028444305435690474297497917049546958538090080897679860476692829529949949144323068318076881342063527228715434548408402676177472291841896522261680336276691785445512449074282404517287134762564295480271212279737561866661057210275088848179549802919208341883300356642352857000084413715053756298496739601949401118545602579989668044876370868299004478019508482921284408472694083233938218764567430425724270621716743011580002921319713212274968886194140787404875224877734977094815323977160802427416319812260623046441818484175197133588397235686071124435431109595214044632202720832557803636834557276253895079933249683847428286744271189134047178691993041013308226613607176553234214078228338222747016068606044975811956302338583340229912503493695100272041764887777567479923801598376391151923378554076682628367796543196754912381787545189694138804562832971429250134960659880652625956944419723865589386311250988753415194522023118669918657876273287268016161451792740228430052636447937421642138606948386161919576945527217654463167227088942032862231379799176154007853107936030310801427389124307204115871685845663949171747677009449892051371011152985120133618863791057635151049143234173072565453999756380788347737592688794559749960649364915419141532861984388697689047634600709591261957076196616477271519912325787364011988404011477249941948275466368657064251238112596120087608619795898700816196572352934963552358643456702882672170043612352184613004567513995092144718599073097022582344548379193927435076023312278925087497558366214163192606647442385400230642361968145913511018938250460506906079676546291918014201852561593056163534123777670946783420368853538824903176874500392986507399972636615405091196109424071438252654472019966045215899178707585760168730775906204704075662217105725088239454262557441281887234513374654662747669766339404281331427866288973362690112686016547000357107943270861701844120020465306321614196009066336293469896259173596667664215132901845747073670119156240600228277495449550292071393200890994271662068346187979822818508450807644235921606690501640910805334765099354531766033941447892114361611644158772003195789406497511797874920155963871694368067715437940450732981825591092532909554545016404033257691298718150891548149972071320548410508455416175497120325085124583635129195910806349136422784783364700361592145127948583212565889953316373797736795945301425582829322559346814727295939438949984230701642854051663076176581049042493269056156735247418065424646796091092018366707193710523811118317788005503321183513951615041346434410008096097752035249800057610857407092877650461250329248764717369331171095507166425483621862831138795113112241337810413523567211977745116396900512155275841307673386174891187729580172903936504647814062880472807797284597652352835082473268722410673948692924833659457091416298689923192394547701506197846392346044580029193281830606631620286555740980027029495853276526801514429279267295018658042540677875152647605634555795422817959065973268477219451591185738903829128898846707226660561653801268394690388482512876644522737140621216151945359698009833261408784572432428287563406585153429597732810466853075430776982889095219393907204102298783821254737372789113746191661403224024200535618378308997044271946217596892240003949895941474303284033362610366666990718681062691884057817097790092730496315091342789391644487854875163120931633683544857553283754984666871070385492341138428320501738935616481251469504777902211254905759381336240687023088794241955321161723127497560626186314817224831286448237992711955673723097001796424388408253878856603340533025810319461543125142189356605191101870609137491027026254962740541459555493461509995983906858012565958634293086296532088886029573116247267594472592814172571892289366203194581087081447769438264160586369532266410431997766790824248235604518963654394470393196666612225997176534549591328372360559669389607295103615997244416820610523978365333159145432016095545725908186543890756747750903152529643908784591309622499725568981380239252433605737801362922629552991839057878128978121514787279535790796892576166373142565711949049771584137026266748130681627272289239705236716505331321715333571828386662547254719860204888544001491138880710291278827463816574804688384191730511205452661804075626252734768687001533764410264279103860305495859155307939202269511582474723797609138457111160507969031696362013665323431747545824791042760261296027335367089222273735045742447386012161867034723242730317394048195718704711268704817952530437770464619403053618133480694725500549298885173046292541863896782760330436688330903228368070587599677207045074048083795074885613761188679532001864925235912399099835004387265489004858415136349976585519048624392241576477416979490116353690499180175594064114077019996536788378793969536971886814857433574117811131365296689229461904098732978738037136742545727141933105880220312558560929708466199257648601187843699903133495940633156241709567003393003997976966794706409298123687880397397788520884416543439811629170881079674262579151947026079282540667124096585629692125139811185794940743009526111077273877538149518277452110802718253776142525808881948213332857667239044189271203405718339690470294350937249547156760682254960519958679791061578347284805232300197694685372688318720986938740229472075502456452667762512639379592856862830388721931632715259805049188014806627969424889874829190196582930298923333824284955028932954555409822230506258129543330439975466494813399556121162951964644327557441505704963708761242527900287220971833276216098616006691558594463631336448848365943949736911103596680909184444945256736751272789975357451979607180448358172216021075283724484502453718503954807240844075920339333541163534581043632032100348395666427442564983350098415707366008272161496183746966404148148677660619956984841863106496341769683500878187708316537606526315007679031720736831902484796380716942260686260584045259507905253993619256589673606274752570629583916933475034026190593840773110846413068157179698308632774104349632145062108218916630816344076162617280447680119491378183521869751322152960481932662921827455300085042838618609131600593386725268211673255286782238747258111006676034492475691501804756166338072928445685984319564036877985402348956360841489771070255298015542290373752947067042169388478842725379042438228703721081199415966258002494435268781578294066277210510752810986021505710387582100841749744581192392033918678366271334038290171463733189356581304282969368181911225761832569364987004387454559469599108862972311261295272665404692309992512590038449905202874480932091463020528655123143113165520123503101328460717585056841116281737950592669431366595812450830063708994719403662568545387896337475427212343176560803310723436907098474937238649397886978156530957629307548624116223598026079045047421103619663792514237329774659142982614649768044900797200109635543899829063825828884258074695549317686682515798207824068878232902178280648866158994468574019301469129017760025697391629774439480339510021688723226809968424149136633745539165132397511499533866171829015766965250635126189852998858362081540552498192097451837391417873367197646387724955606058038879962214451689690283226065456732953728651802365203768000769151717602334940788125371311602431980551302123385403490359105207327457801161344841016586953066188933913520297264582276697198242018616005631860879249552766253622576910248902678299445363131664336176920968239266399598137352972899962309496964787057551623473922860512099164406389269088454337702640377639267912244638641757232137995199482383459757330015940863884344603766426399803467553995987605556803281722142475036654089657813872128037625599143965836883949989674139232363097899485432711367620038785170404155601467858026626842794678202173681874642026314647028861626662029512352234516227465451221936481132147492268671543632756642394850362468301568111599376249338240651389291889471240071815832177807116469374494503248207561497567667461339399711658825462363672725176709701723388135338644514462132497742605938736769655385264380755919083927256950025521098771687694318543228589439501178584323821297459206795521378765083109955611204468475393780125771471134037302032884179867662507183288409027021879537953556052157437137544324887735876647014494156238349481482895919566065363101367947418548929292991400288565149631894712293427629131954235361775514476419544550348390869510973413918851428706318510483427713645934034493496427995286644293482276254304320265887874261081339260011498149366581330282420110541501223080718807451721956881766286086674696282882465288684846501598246050722743657053368315906873884982919399877043152249737021730193344985698644081584309912944901982572688155042704427069210805566384444492711184245997314653993781252089044070852412035935373854858565866827204586165392889353017163492388953415707247509122799900817608869993337212131882158815383745538479527210657021836604731388804705190605936391713669959523190201445059670626010960517624985393434240946902018646884848980005641823503362167043711217538710110602836836686981539849606754077287504780231117097175096364727093467173735553418760261144381787216930915429354463191817496412317534596774345767196124308529853402326506196611441841465916922238996077247580441861826450442642991440612651445419155129500011581711841278373325448382255717102334943645424990710001852918643905824760757191311924427228193625038632984678116562493891687307948610279733829350965528048455245689686018508158573829276340806936996768395020970686803389658435531975037833324131834619019738606074817767350831269574126917638053838271675755707728399846732575729898540508332356428521528531264200046060492910799552802561403212025181879768166660726161895183200089388147813142390913276576967312767386154110148768872220933248219037121773916382888341922962996409065558111191106347047109387468882169395760165769152432828220154635704323705082645766110906497635571929176353299568032539763800819784129264855024510200196152534681571168350306218354926192464051614643143015166159465789460312056991625642314448268858257457197369296533489229676531335156943346687926753560977885162761684132274963225422833437246938107165526229240372000582022316211690432248727756530281604762600242624395752805188547094008883744203721976451223428869240258645235627783239478543692049658325069947465020353740041339617750275915860789714222001353549980722341425270448212146187655241698196422353675932080879519942177403079236268866483841092013644264197939953232370996544983109739391064322756021808684494215128798929043445105900448505247855781555999563101696184356960017721129860826409663594919741699486569767811678572941262919082508468697406523243325060480196384732711637527390185649258731475238534103105077695891927263234878128807238752768713960445425525530827337484482692285835721162421411776156384010920068225865529672715940748593639253064432718301594861554439179202202224229200961135371428662216429446554584066591396220471506101700453979623809851513432126626427376338296282707698331602136056227465361209931398308823593020906866019370413206589293502672738202979090302070238950441411734949334845160761343161546698751813873450027872514264703922709761471400704954291813905913578194910427868974468303940981321153047334620692193725244761760209407439862807802532623467535790086075020990656996598309807483329026102844800300138118566100878523330388826774460929520195113448962243845019954316889208402274467746525883242657403493992477090627972641712184770677280297685215725938823394969115614173235985946663329448101667532398455963291963242179999556470079604325998193519933316235154665288263336298187558246502905808426771170299073589093328134012838625034500990124572411869369893450495690739462484693113948075434753172815592251752666067458257717742317975066362941680625920796067347183037416887339513301267794919686593836917981334962439694975064191398816279320328921110768347057199762753051904651472050877685473949828331866814079082293518308230218688146180037161262393699282226122262365338957826945855231385861210722101140996964949989447354645479716349119757156639612095513501426980201262897446202454317109132640605525371695172403113919239186432371201189103823981297769791472318043604804708959913919952996254140684937440521850262047664304724647663933271003351235888589856300681271863439275904481533419745204084181485836734985488673269271771473029579982218022596756082052677607192692557252781048694564248369928471911086290905207753484307834204241761780906494390202387142314754229967451796803438473990270319570992608512139071236166550532866387688126963436145373753270011275300478433163977415648494155367637617380381241166140088329532303763594089503200976166609891450571904882643206892084038863752225344583840181499089555909187061431685166972068242244521586515277273269446114399350575996207280152461278492133617628285707769234256504950143953635655915454322576177637902864275292450950794659060170834320497168151090152614065131701403048352587434136669179577436681650876765184279057822973192620040178660108614008098190188139966163214965888032150607874556225788049242941824542600849534187993175772789804020315081693959806405891596223810737563912923554022512045843039585901422934195194451795077567584613914763339359731353612292674388681208445269410972335017024384607054238736689391764735579072906908550375425349140531943858755769523709659687515365948497758162308493890840560494211071084546132176964225824047674939985184566138790219427019026325461464589932236761753573183082453332118135351816034021641286152749904672696041639963552701567535239151730726755365620914612455457251339455917692863692815584348684193052571675781885432326036371032788888335753079790327656216571644847156291099465338148037434106632400283864723038307930075239658953173793097344087705678106740669842376993817755457172970241846974010818204267102822762358234967595701644433310698142229989362889790335948552211616942642446089332772805287425916295839823070415225738644348023126022091396936012597840022278558229040139709533069120770078080882209532788772094394899769978902149540379631319690122833868368110659425944914059980772202531063345662381232268838459142566133467973503514394749853944308649751423897552858820543769954846949048404010019264434179657268435475427015229535992867871092758449112034945733972762109640466962561798726992672137899607962729427894899773966766243107282175714101076944923413201609843317964709384490266937650384279273942143129076569267391804511675300328533017813627109857024871535463411456602934502531381805984617812558864523867735564759654498072937112780208669179476883615215217750251445244113476945200230293095309256808009698247866393566996496097271589397370470986891023570029378443448092777530416001012406295797400844082414680813174064919418373014640432612073426220587544993103710662811221220189191791763265152192938333477143948036976136049941458079217035705070075341488327804578856720793297976837767621431595581000763205871865421489033271294610124264798293527082465815191257443206416095120151402711752117212028099299614288858296360590404050657016666438547910184234313724056648176084087587779068692124738908342895141128046600457702469438497196916799828481184726723513995763435452985297396502571879862005997033447290219152474722812644365067838394610196458607137624548306005823063818665814631597697283426077818944491554880332917654574192598083456382430194580317363299900758135981713096638758792972900629594372307251366384993807792972410019235132549572649944032142320896419266399899789998977841956145203037973130737116100760862300183089163367026908108794743658118603584384800818221326856426422576711950483938833476291389183459464303355551787522713601945751853936713767604275757015139190358624151599890678355288544744023152336922212342668577379106376337353835609450992757164581444729530129793292303246905858718987949696586523314551561230197918721003423492873546552037607264216743645574278427600333980196365400232771538190266461750799433766689351843894633917644015065054252923246930929413136427191957465350300123756762852949197696817159706201864447590764280097746761864419570333429361073734933182958896968153173238505418209830736028189016152069100279733675527940540082472595278547103652814129357814096253739491200849780034241406412537614761460432558219560944431417534285991096390325100996772972053546037628876053114655925720283045195137502983371903335426557281350338464820921333540264462577314854135678576740837160695055745839359262259553803087538414402370102253508213871264937507083362805961148224411405967174700150475346700873938552105349927563307309619880829705827127478576603658870148262036610472185981827310174759899623648862605573360771179804283925164424152143208045477751026467236401589301025387550943565486643991638720300957178502032209059787459951551216171587814470561444518680828522644322874468520627874334850745408171319324990283143085411141410193403228403391684613881553351044282177274460204748278220748945103247837094928846280299615467741975359917665942219720346601135828884601898811408869133252358650491908809594271284329594651707703894484271699876866421847736684810365328419322147537807849031196330607610097326965468620413662383282182734497011750324397343691780106093475074675773296255159689101099012385478191473238302461265798676842607412466994201738909629459237220506221816255377936261011531201027967190768257397808611454594874648613422683731416296998886790445499867256029356979246752319382652897343917463205242100881384556294299652019817346556732099535540870093165107745313985379041264803636913195633705229900537942890745618241670628223051381926048010017505362549056061243586989653211793998818687330836732622092979393764129689572021410598882797947828360486744891769762353448515192703815169258494437512864338488899427739863820630670634534644674420598780683076157438912043205396707902952824683361974591237392207948158763026023351086835056762801386668894812926716696349608740881152716706319951628592634724656820217702551355069551663437284991020086828168413590253381679055200243408744573704770126346962559406026206139084961669866366875141288250442020663340306037957135085850518885250990120137519025267547534219176881470020272197740669241811481466193356807306752685451310524610759285923204588297763700593099035276683260837504996122895248244593226635461159202101351199801341065832288672492678023391529120808202184708088805488077837140758144293845375043180042952550132696042863746142415203532341983459407766787644730563339750641351651745330392695201677594165471816899380508518454704976475155660325792691254580997069219111292487075349270169161662622929879291283699476645094240844595996586098517715595666834331104564896804420914525732774892780829852583046138630222546297384212965773513527083074193971907789271625913891760882773719171789318392077583608892340893781071149189526684536373751051013201676997774149792441585886487475195300399380646012864069545113980631365758754362658623465909477292536871331454823357061112299071185596684391350880900282349195066634291096944392976295143504355216853679196907039316643630481205375538181867841225819539233850888230890938314210169184057587744248494037806505541297743329822308448692024247208210932364075227307268104791992535061665304261158544563109435739964601369099436157223257691939845215320075021021830499967517056399144736932049146899515004032011103271317732465770447569830967646324316934871802763881085911009492101908148571961828441823696320321386757958686936659128440131230013031872306962975061885531643249014907446609840380904548113036211931839281518392709885245131338482917423304271665781066851202772196562154255550928724468910443874353320935419213298847484697180859698223111216808793509248641518251496686620810908241584983001079188928242853105506726469189915436021439279573063218693198587153440775813107146546584302283730343528890829574261844817461963141374728128217212124368301111130763292075823780885612541648213150386616413191051577796776608657816292065927017057728208520561911172641308457641333615831078507161812369060221913850768529559596193073252431365006157867899855229694896165202220035653781419034967671154142771280550306604867030422005636259964806929504414378664165518078522393432024552634507725414372182047663907496255885920194162076731363792943361801554894141205970736476586734503425145845465561224028439157476690335445371654139869590849024373828110784043999352107208556188103755968851547734347200145131965991085952158911772420076369380388442315393624441070247016542141848744653223420247042930902329092288959545898044295960674118016280749423476717434482384640978395337746820030656173624482218703271229128881242656379777439892154187436079655729445298555634244606721789147581494551635430556867058065484629490405287451388724628034556740498268047433559859638255464843838825816399505921460341858422066949555090728293994419891082194241488589489636003009490370112936820058712156756507979235727126851331105868090507197022648702553934154447693330451023784578545044499038533234147144179100927862468146152137757660605894812950186881474190763323630864845926541360232862725193537684015685817426165936268754463406758759797275071931049270993995680089089060401840621971524147191817501811259356922389011400830658563506533992285541993854015511035836821272466559839155807711454620646016806116542365711531199807490440010378437167831426309187616201319740702726525163283237502882717660054120948425501711058440273672744614592322938839184797341198586435186057432916733159509186190476928750081074157777524695460057741045829032084935069610094567878795335146653379916207489302390378595100144538249679505884848999127372012987935060138540523812548205080782142185661294362751311591369730335696274080703730356479924675366384231045674643162825132723591962662098615089016950499613521215787007548026480041188962995727088292310797374559166653283741393250999205007440314838706469854393649962523326293788928678118756923363168796629583003777341378904867610409655402864825510302571619871127676594407197521533422360719682411423386246439499018235216867855860975062337978199712674681502641583345977639766789603444911030130899385074799030593241190670903214028001894200462340106333029368752460847005739113533140839319080746867287359537047473508856862487435209345529501666275433988850073669236448771243435852148835182142837712268119221472487089839751558296471187328131779826188248503446830320946222938950985381590041093995391848644589058785060841660560540368577094921986678238175782051754387305756832392413534838531466619466245700064375717091732505067443410988109211167428165365139081036387092008813346688180764449167640433400195194323027306680363567611349729736016865215924656891766554038850115266543646900783010722705436450388763565871712395400860533992174442455767128170732176906199607871303379429295030062617160413456489246878860539090393326567093751611597441019415333049419378338454673147545181724457951373327471767644299192356752128113528312248783184394959949920739277158613131520922775648121344551153114151633736644890188720354861519448840758961111918186807854839898855237206305384385082034922027481584720032162194491269814472086352727876199020764572858064849583214009105487876040967528928856893803967821900367490934249803578396834896247305680362918196711062711856933672426968644797600240588124530028175988193043658622171324744884739967405438007144596997326051641027995254584836261484697432482615919620376225205576691812729161613807443664097337361503337251197598119763567300855695205405519764750429634264142713359133018645509530262951976246186716626031791701455614819047961037252442734320157180628402077287770052997545036872208650964906882824952306075175421150774533737750260492760461045695338139868865034959869884148113684452562886429635614205188608317250294429358597152262751084662418415536115914209775101029583311597805812855507643640809477115353109393312665583438015909185030430178020711504074603166848138894680890207136462494082326833129597907366949622523254435083009541196477727164382074690536062622768907815459199131901169688492046420817210187284595775497598365458237107704055899471384137840474026077658312985739163677174376836383366218902209546360380221014742411697114435907737179753354774517115731483998851552983787241393600636224462401837859029326787373544188325556876562356734689735281116869326382264581760138216241186448334470625900298117724166038578752787170323427766685137522665990532565848768277500685316748849235781095612161916925056724228212431817947845519969822427657457765262476837741073494117793474245568717439624100974116281929914379640358074807499949478532032232931465383387612500385035571415754477518929988164441607298329593499437336069784923266037903149482269477711231838761624301137019353340693831961126148089613423176494988945800879865747904064835236847003080984254953332132704892829837027842763856616111764904075278466789880412086863592986411043119564305969666775595522883314971652899490109411534287167919459103376238981899937987510609984564068870200256507278249184280077583828672009780360115026596791906120775147839358652883914857962740873270066332995546790080192949330259944699199880866610372754686829791594994701798289428221903393690728732005738526249984382763334145916226203132098947574155080149561760332797751606066812931475064509326663642153674756906268837341068256939764316519521717132182033783365072355293646375658639245804475394073251757596228807801211527143631892712782491116748173963788846439115149476644406594858328662979705972922911493644655054946779267232832219898499779078186783732911996927072114032163290961516495869705894842221518803396790626749549405781581683967510170356155063602914394717989702018825603412828998677872284172844139529056370881071685204375771335847397088768310579049865918382683252511797983641269966305883948146736234554411669331546316684315874861873612523153379197501391303764533707809001242493482433560036819298146076440923219384802382403921900477242044311236473883496442202056859597286579850919552069254377947744965101832811158230096433846603664085981829880431946379117247730651078908985817438781933588906460997163412575702838842134038577715202079542358886188780391524307525279450866513435931207925886185517862073554885341368767416158916814256672834591436941168525997606009341983521796438931928323173837863221506368789513386613001866581108649797672191726576006315314955944079274876029668038978034306483968556865901322909352898466982058926728938340252848424011343181115316451131297784030692381454835421616116721342461629719055864249967839878558292435954500169326606018898198985715289268460924924727205657033097145392692239645217828826958674001661783902633683818065930195079327651914045932090658712887440678266024012829392838941589771052721270254704342635874420501615132244379319829983934644409892255658332301820958358477384040838376708913823532725095096742311377614550744677585900206721922101583527700520483273204127153849158224195126740289403094275970477773335419437193065754192630165997072742766312668283823886191016404835919254549258601467954989081846494024813626591859285533742088753397874585232158935548310466700870944409358034106775649520955572788223874293928723926827912204864832962087749610135833155593385504450385332815853463258536553241336329093614860363056980162208634217748751439246215687357876823875143847443720262901984709851805683665073067978724091258697451551010476522859364410956222608580247275733670851533719679856256585147965204508709466633948564157468631641930982137515612444776340696783479632215430837809292508611757470661169401810397504312662141210044462686301346563047901849354641542307437179480269977413805123183065186419180932030444367695632861074706968269273013725123500451087545570994219967882543965934584273347796565999002353637610738109423532507656787741529673740470749599541807234421367408101654330727142519384739177371447790745984694027682670626502390711021739592165961023842885872062855723845011667864461892453086360434336079228082246844534007255311940871273702994154830377164467634588433274173996925106663794139730935392876362740714173974394749638326539798973185802816795230683790492389060246677650271643377675789908957479860416199898905350391839794775765096688251736804216785926187935188430235515648285335074069360578137438539360965781712416301480375231941067287856718508600092627280149768468009329512846948738966763983283076237663074822662056420089036231099818015981676388206577175070920900759445385487551226957187901811268104272827508481024278618081657864152346337928136093260871742825642446336504560036348420941138014244215065617857050592132883709832676616831969247063055607100876422436794414737290563661925159448402586615807908752908329545767664568371657970994445173062043480258035980044810014852384653191141253470608593305382448245356939874297800385605355915377083802784599215869148012524165797596039657232220851670879983704746346949915811554902037088256415036859620764799141522509002633046414270355774178331542620300435045479452227025277752766525591148548635796846710763232381061456751228812392949804751156132205712547604640752119175718201843823176648275028054699791306524086540035661510938677466333140490578069974392257830931157355990573311981695939077651000023995559688769742302026005777554633912853725872495172110009269855227177423576976843295370850261356606759256409467472226305086710314677287528065031591185021767154709693940486900217245968557276835147570427199941359765219212519854795833454647096696776177959683657283988391677762758838766928556028827824579202841779863084426100956107743464151358170188538149615736031005215918411933133568570024749693015729223329910335958061655170856154811874208224624292431458194023845893967036414144639000768945529274297965192014007719356403071368964862961077349374833165166599034583430415918732248321585636371784315072924252452835920502529081712004104335018573048593753273575005342788228937439559045432566461804544641551874156310123943051192148133161234467067985461363734148285541672906425735711223290392736187922951036151620875721720223699739647318145519489755682316206380958506590723410008521545351295800470705797718815702273305988607016928958584356862772357938542028701297081511932690071429270272809648746909231368944739244013156274181148534602112870070154930956184057830179282368609352782249901294810478059305913823570334441584958262896381108671635333339997110757048725458190748706810470523193107150243902498062707057093427346495128609775158814226530718927164365006685037915740907636428501334829269935108783479847905511787859536858282261084478203260229565329843874514720668100710729633055121287422036871341592899134014690384652930411840877863529150098354112349577187597145232630627082792467271903908112843234969846353037979738628493666307500415263522226910870346229292036677525578103026352821923953620454543672413520044463635165578171278142824096536739521544752890302271743842285972486303682928375401403633447503218148694557339584668203841201616179009908557789849953021512572134513255408174993888914696422381061249822539071814646010897713638889574114503375041478005839697598641107347044182513611163225049534910469076264773987813218159457144721411532191307535907604608331186107198498853108711054750631414646998154189846246812708600692307383470130895368436566873791018792433799048644813193332952166021885596083022804063069120966860591893639106464219296079648194025602896911651330490427721744073213271642364424853121544285022300876317684345412266553819975653767820081700871810087716851943555517930007780189227302405227491774336769904864024324820376362498781723717150947245426209079584773920760432071322487007979901352797301106932055502299553812011664488831478115106582288892535832340336326875817307141951500060721894432517868861782705242242159328903594798157854835614757282531646976197765036864016660759046382805346804837815958345551799568590929909294367791167471992227735352016663173870476554124997557028457867946383984145392756472915310183316078287146237883636569741514576614000580711033192306199451198967699276080784219306275623490619116737882271892829645771026635673112860872533202294444339949476532883257407085064050212784214854479557439149805247595748461921987130963718594569307380511370596616607474245838783720491357522071042164300779269336459392354152036922573002334319363376452654423869218554706637807784724741312990674743282853678007083387478758062086517846276858243030277989681571417931632234363992361340332945676571356365302071471547072203653318549273018992686005658012967874105272300461452378756499832039065619297384731098859710958436648471834678071144052600681278421390924644471203858429899407888349036570264607721871881948678313302732754521662743252591475336470182588469494390592930426484809219222678387467207699888850032002172690624067778076727542957677896315126555857545794821349536493850479855979447197691927200878194965633723402642818126011887534947689744210629050860191650005745803970525646885948930418418673698262925658203774422476948944114443117232922867847953030417119694701738077652476133226374863562796805448886912997256681376398718925816433979926288776205622255978960455602518412515759883867912571386586661509515136038720467480703132823172197982794201441672075104472869332253254685243389525208882745042172333003356572508824256949780425489128140135424792052165952639118338043442593770093725743753838326353862936702086900060382816516930263826420683844078864354492558497499976226416394466918664528977574904458917071675470172790838361884344774982629377995572630615483300490851099778762942662346991485671175855436968165956095313021648328050691042441873543902239531776025935256829846655440865785549216037035299398958331139801028027255540748429738911328760755098516000302519327557108559036326785819729740054035703365020002844806105679866648139295350233250461524209811483140945190481844669239608069977645047249038801233547237866087687823531119690133156777048989203471701588416033154732572990976918013034223494526787939863402727376492650641791853588380622389976312819776126241580458989564474167550677540415816988935968620950848952859211802936076229747520303695780352684140226895068876629915299534086527131380411197817282071821765954772449841651717631907168686765346963824207508089519522183990443321572976415794204681031178137608699516710536909450469478091852637064453071290947910920200461494395686774977549409253822465556053208242387207412909543730680196949221987786883451370723639958557097846074233321448119377360771996996716426740761668297285399960090529062156657840990711019711191374556740363606738988750562463865208893765551825510854997251740223774051553164603082927793641146842268925495227171571214968889136075204426781797809333462638746207877283397846496710040339903604155419020032043983723482623178960322406611511895395592067455036217672573694047142529830057448021125683187416078727809895747884665266626363151470387405935934490535143843794968919466493126071700278858511803048085708201025230568876678790208204325335124695290568033301497894837803127831690634193828355250673227686889052091693416050211078413304789977588375941162855830050523078698402485938689354147029622911317481260572119476449051346625942455018078861350455893198432101481034739600828114092889755689908378721180592076389400635178512393319619435398846969660367632165977486209341384166335513522803161398262404975293300524702792215639851652588869110041074162085008542743190802249414240243778932182521956032428776541438913795314555473544956347965697806912553146563918757176459525125333344068210186738178348119634275876810619646793649673523365969387661389825626967058289125113556759061748783371454528140383265109287154559384956029612278747078895895850164291389293682944260242708655993845886460744374607631403363647006663748518970755300837934625629543876775113436964101594323010522890232879286054971252652159474721845520977049807408911471668135399952938678645110844827769563019967167636977235033645108881222413018595880602274232220717395525711330223221357005707129570974101171806825841204825211454697924721557051306951792088491493168160577964025370531721809544659981680700821516787928483724761694473034634476683096973363328478171209268040735016458444134081174465351783510413943318728418787611554935233373444147816811687190408046788070101878692750672921767998489304492780464673361849878366251068486584500501858118821503138185715389483825709694103918643245087286851500636612619423745325004131778247716608007998368148476279028279315057132739991681527625143734557865375622189082079582252330381230958667408477772109105631523036771859134745876582311360642538534726348776928701486772092982087341454458346376679165880442085526996682746826434133563819244257078346559959195537645879821801599822622009145392726463551409504045725711113166510068295227018232111218154324825000131004634963625169532265703695681943553277979020106296004279480381617739619741620498057294974815887829075723042530008360801749781716805019190228032245307572745681878815737058615719091644706653525544027954785170596609861921432278495326248692414002666977248543207247338522005505802875526990505400857980988960672193166832231976917647756355130893272502409524399241189408344544428964551634219231745818050601542503513653860884569972843486632931023208578986746115326370406198884085743444070185581667513335333933483139916698992321805545588069033751168346168986037613346319938768784957997539624161659357408955019377769165349304300985102292452010434215816616430019303508775854052258563394444422911579540137302340106104143778191800568590747559717961969042969962348080023516715281410805758080181273115833967947894696259915596929031716846945980025235515016334137193059885984844116166977109864897476391600116223610423090918056805686556695896829801732122117275595850542612744968275898490039704336742185507955416012432332621062596605956174338840730023587103784789792762930059747855230865963852735317602273417878543871214060103092030362146224448300626677784418068879335623071479782920386642609689945070639137273337728226591790789440875657355451004509999247674009275941786168211117181905653121570391758849243859718516060210916197991090227579291138337877818866907013465044489380102135240137704193701918734324761272488092655585650695797763887086597207533640106159176583525322034256892243059932097049284184135740634029504451958087902218201089247211996922116693863191354123949260553902284576803404304399779276577001821332648821871195606997045210995051121218499681391517581743530267094420080920998958055391649363704185269830016992928139006547842709048795992512760303942906116234905825062866683576534058599572986980568668837586418757335120167212444584776941957526922909703170909480989892503803207019079193727029291230841065196303921023053633737870313272094827827211715110577075207613462126220199786952212790724834657593821827260569667506107535581550293005180959570990277029144179207101284722575806727382580666646615706047581780636505142042106171307169264129299008463563580898251768941782900257700821724311779001005192857346569217002470376622606772428760339042094829752834325623532831669372046111357728271653599025367027155129166806749278569345163450585203345798773099930896356400090919624918139592834443093076354274707913365056147259239995922357889419658064710070173753489204289492448142894730678653006839414856557656811812993634611878737656218238986921358362588403909687372334143089199969442610186303559022110623726296703489322335445311960033077317533724770551173419791321205034863222725442146450636589370198765592412815417810602421308702296785000593724313929768516297376296321803388152060694631308844990699716640431026993916615546183811536931967456573438560747057344430562804978625843631554418907488537616939337428615905251854227679083976877278884204841417803524839859896448234851099783640597632475545099116447502229549190549649934265091921898759072409390077571062270586875945143091209994610053041562953838285955115191317324814811602092817236852482875421083693517308175662125836885741802124919839761172855442677168663105938614315367338873871781006336304993811507868778877979215140919767088834252119900945163541370898600923675873729731141681166858861855859183406222556093321989218664413668555635161277027390664503092025049424805833260030775111055370371505352557351016670482631334594837975306606836253679571710337499202505658781795130113246574422035572456891261842851882601024599877038056800940169167574378889133980911471830232254146687638480374642584441999061622465484894609774900377784645955460064201263883190328298149807968213949455226596359485271739246646226522348721266297888151840473208725543315610190393909048952883919701867812393537807128425052338188962399500806840501743772477648104071026284118834724857651752594879556214475749533481350978483177423090318264394289132984752159387628600655605111299787195575298359979275185011546489350827759090008818117529380112398831654262125352510741906326257125935214379227459754295767151765058869901840312228267452282717168789602222334239033985917651460095062595166642645212116645372007474171933420812968237060796633620667649851274120464318364208687451437823014847083590046176763338844382463479712180565808432572929474419246470461307589585419983768313340337854738179804550148804852879894352945340484932308997486834955817545145927010166855826683142356669048854425531100060392629854844679549733195562244324859601693845245982530021402173372075121061193033025941182606805858110573143511563025106350337422419223423627172216475581868138348634900284448174440132311571988156077781000950703252788766623764033293288236648263469614984063230668599301216396922002016903396586407516328344386475951975680233815736507325263774989247290533576078979627588108379740092149221004917920346611596328476256297289295427576294248553969507226618927449302640585016074467468912840409074883221357321543766244912866219304856212687586015088144562032500667161463521135886370647353407408109290335248203417282416097470365568636529067062141420011794281520716855299151117824093071271219907993971788740392423278582056408045255868028718167480612469678721022691344838707402581889164679510864651267472736595631066696832951410007869004470080154321379114424074303161546040381561936721439010552848963030542746615676113692875797168759277707648226590087088737670100632512288121784868435482360094222998965980031569994378674318591444824901487292657201047961764128199296027309211328416500955795388554573001421778040831678065512336916842769602643460319308401046541925870665454666947828928014171466461971135933629077268251597883055699196562522059809125495561890065119120080860018090917433553520552076087053884895616628528592126372951028537641426012634723108404032144932527345277605356495761553989823744621024705784011615140468852212057282405396141133300318428430951379052288672128016675198605261590510233515656337432249021742515774643044625063299918039398644415970633995710207865731444164801131789297434243493653270918038177620149044603717531398788586641301267453696951524414137538850633480602915631010580415368444354044433293258369628477619206257545107241733585714591231972957381053529869198745144627086594520951114200234521582840002761736393709652268630086167100520565997601158734354715806015396736079018334960487555775885464975137460530759115342063891083043949981518811090668134026612003082193603535297541745761037535893080556245985475690125563149093193818701202492751187855595188942288266357429437669951631213158353202736605365966943496780027126832454443670183562466245151706526540252066142907467487756929521139276164795945630791060050874967061151518837343390992204389133575682498072814079042297073866040822125770804254857120652275344223751711405156411383265195887779552664134988276715903560229988102682215035435239204387670420445125101025629125206306028201954864837675152038850390390015996750309920080802254636760535714315153360772891162888205917128020983141472823164776574925210144823990763598558503642345026701512712594461609312328310772239448175561429670359854609615856415953630758778212278249586942926271007304212612431366925884479911887760480574400829247650061120637535645396728440663844946483549884855355554806185635713556177652073660719411375926376997295135806406940277586325904670620407681820573812601585983061882314657598554154590231023744698563916828089633172148417252356701440305529836471620584598712118850841177189842720187671677548732956307771508269661626271016665716511067944433907814261039450933834556622065703978420657340763088680697365836928152123461152821907246532190403924150046923217396644031184257801901996776790815305944252079658872841519363043236549915953793219181434607034352493177750426055736109305111174145496052073966205735524113840929601659395678911618111270172291891078748012491195902422316421490660708286408539641957951844014463754880444432029213415367373893731831137801147461017375069224263416257074872418570363042714223492877866505650502477938665145209228697861763693307246382409816697950991099543579632771906973471564294842425163422309992926640254673573351973128510394257470934957886821915161361550978676145211969900119423983073355381855610686534741975005902031164187383355346463113576626911360396782077022309250862769510319311862868510224624543752506211568743292994091325382817826235347908203525515877694890254612625695277757127577244321277040826322017152328595486668832022717402826815843637684059901530730421324015023149855855220554472405655636987895381378062615739748712962242906570220355608034064951723422744852774007791184009032066020861804715031891028469035514951804686007900161380465098122374644981866924905773383230341967891797400099476712274929344123262321794212776706485597659346107541531656769598793117944736771404554834036844830969537621636586458885722749171580805022480449070843344921476555540273510764666068879289170537936513338414286008899537189762105303781384799220215890255156115351301939964688716207678124287243627096123294165811945957044700587248790606552544495895345408646253829476634227432267004851757422111561318371862406581145767645844788305722077091603584516124306908237444664736562326698045645149272758098227811964209557713178374033572135590228171570302599020942933268712020630364393311184159035185183344840128194094466330904103461733085181864510988523825464183709212708886987111599824137925015485634728889366052626059755236031633722097248356144659976926632384135540823889945585448153294828538560169502082350263184591810062213148322876644925507403506281165090347443184102317217807225956350041722336524791292793426435977928261878367850397783694749585878564204231892011801921456299923514260742259976338661064188706712003290294938659893673730054115476935000537809641510103544783611781253417336393654647401527085724183961344977981219036233967296617628478162222942672034220156670642888817129526606483683259748879284404637993204498822170408321124271797550365364577902196275519585216763848526783132390267136318332151728945303826546244631944106926084849217342619643112310190334165601708863953884478032413209392534644102409722254377010944054484599992879555074844698722287534286723467841392516077199198985060401004317972939410401519438862426724582938316093813751466183411838997211644618245394151415808321023275810031945186184908533093494135280760695347307558222965388211926759572731975957805475739482568548070712016057291342683188641966539936967329804774519697576906176724749572105586786187867106111687879552498268279991770831437005367208795428290614677138018978728336785355924038375618378783093120343791570435055064398980858515647705154824876004148775473472892486107755931229935500343376197795428682101351749075879857004197911127720192985831756935700144946513315223206019156293815603181030177482917352370828298267348272119838942163287235360519519529554336226156992376145190047833531634614349466343921273855417968428140262932080325338357925329864221994432248289056478362559115412155865182292928282332373710493879454610479937738914132196272557731357653510860655214307413615576409401665888344014604097631222932839240524925939838314437299455572957530058542081918786777512363188134604398091902152462531008818776766040460711583743849633620892972200902920708519395065348222171086455928474025371769870854902972169524291305285607812533990399379505732637322351501720649255583983338684517878597608234509439996947740141776242693354837855295408766796952702870993964058254862204026579231611280415552292864323242475899843324738419607313707269910949536295756836101149585830277592635012803925944701592459677714765149614346042060079480985284380136174646203108879232103433853290217489077364722187947893048013059752400401630956631243036866889442096428405475307562147344866516219698881073456258758219983683086191962437674001659035552761111731271683607611865988825651579204505411134214626235825349723017399487261516837462335545752980393536659346394988362386537653499129088641654169196871302489646401337338415434955854733562278796381931747813896417283786567693726346608555954202088910050131554898481646352157699440956154130866546495392222940854426482230174956607389789923774803792203280116504176939879932484801040193172692489322692164191401432710272457770704910756021760209242848984096987989781667022054510950754164501355639821670254370602564380544645961359271565863580272355820002609587694140269625911050749892747100010013511689138684132185497250902991859363364756204328350218562777319395381324485609034118801087514519401797462728113305327122814927361320577167161543339655955376688290064965730563388104502149954600213483653554195025156365138123569374114362413131139483105498984281962578356533982340034786795651647277462498423402249832072889665361450380887847372173322424933350206711484107242705122560567525230396180043147152444651359086578081982603435952900017987389110950406718624122382174463916763789407075811910122791266243018761910351732875556739350333951664260187162727958507262488204846568352282650597505897122292810016074424841943219582434258396167734943505870877462980532775046334408223955339520030691273426350436644014786030520938031506869138363925013955883959610909716749179238141959366618820171416330137790873495449804961747425182955527804830266040500392257189988665310527441320795865431831463772133837285524430807065195384887311913795758292128890058915585913423512909500321366371259148617368387685028586657848592181463853636444044669817603291302356181184325051993979542748997177278092472473615670530318467426012194290925158404991058627956991987743879798211172758760932633508630758784065350797883996195599622620017911886044064229022046274353313924748394467187720256766267560227747661221271292386695940321089210917541661560220207157365943586965965551325034098017748984995107624828755259411553474054329425785841621142801717509384985477416098714906591457718321236256522214073507498907688216517913159357519302297746313781783501753704299619704270882610025806916442356813995361810297097049918125170503122403400311940785805035970224967677058147276958591758037679096826754209784513481443644415504563793711109572662550053927853844648429850629165989953827599529060484776929565455306734037833380228883941664010127995934362722283218696065765445117501014274410897649875822781078416246179491375230047017910744039445895374304607547813936524495991833815809003124954179761846893561028592401015062146346479483393011691233774241702037689112065598258434276128377900894568149320136536399175935944915753887413160211902029078809210201449039167286050172033784078745576127452611571203156867455909296020497381034926986038582501543100713355834645140867289845445966765141199143754734525652484525987312314546399184001771961606205916440011905964909764826885271505587160927817856176048505881808939248514603896522587175943392971652995159374699765879084952142253379658216760394888255109813964229677157238542840370822958189648055743853057602646339795242469659008179899384066332198991056149071794873102053564381508669333599763290698138701622793691767491057307171504309680592488545571228821868758798231854005619856730130369358098024330361125119639027591314151051382816561305558098189454151642644066043778091889358293892352274717665838006650005532256853237226321557369174385873835153711591068002565606258945647024975647551028088272656768139324905740142627019744194283625428992489203845400099497142017402099665409786350280590901415013939938640094775069585677689419694810260023986420101186372383434143162434629290449603759598245218854451589274330284605968306353333649407663996806437125318214773349927528656955798383007998320446404629899041584329257890055287810189335968746927596798559653393566661787371149555744239813280084050591440084102255735393284048099267849715570411821160490895822912040185151444933421899338220036306616893946485122586098602671843658586441129546439510115374379434555186398864502975930497988267162900258866586900453471740505748764503268360740174194414689829122451263012097623380120858628372816334233581450797260450123819966213735751568294940050968102590014175463796654064717791001290980041401661461516366451111732238487135604412608479153793379647290878863282359746785941476409260541247757696445736604666260135052426352091580410407654532923992110550438404484173125661529163001193644306819876244964997518767036119384205454558717694936961486131793997668842376693008064080345264386550714072134739472853257681456687284681735313420972861228359474758181882566033606696899593495339871683955412552474639989870071320541755548284643696953396145426293959735954976739300420464345442473845306348613394977210239641754207906611643654533048259226741214815589253350963392403184766736983202633596948234045422175379830040202131274233048584811529845487036464002963596631380710140338708690824606600357423333080727898117094254108238292781369943413166881151878781910214169814810796943898430936727172246402757075028551846372529985913739213886879690593608204926307594790597134504106208531384372937270037909640473427341493702666448667614806216740235782268693708161786935116782755132584200670083619429998368907818749904440003340977463364889855366288576623545917163664739764912901506251341509402949915115257378168095030807460128009264348031388635148477703066548220906557637915286663361703019422089867057761673321642606857518264306937101927324909635474979589212184327274705042149178720596342082570532857608908095683157701855753032243180768367118483445202623405517344718322088704106299284230837861474367479473474662083452737310669764980328685059477112131551494735066746699929435774660170887104247283703711135100285877839416081277894208102584528277402949216487994539437456143617769871629113312893184871836156022713403591518445473073701898606643645662143628145753134125526157920557159603105777145220743826147899226426080051531051702481686238256193592859691883009215090617651316287614103160308570392884018624194261588790273844239587629544779382008321978703189090693710409167125236451184216312931711775580854078493675853591731823123607672645827307293155539999321089982707758328964591050398572528468793959686728492243995158767106782403849910632816227632105814264470532442941189248325927143978427584106347892980520548344846692159247886832725182306627770444822088959069624014192499324166568567270224952985869568229393840372840432798304262581111886850742209367769815208276577329171006681713042817168701675097504883366291637261733848758578554482202952901915040143362753833795211184705643232435901543477706105593614435834460698843974734366525248679193471539712747053549663182509431802388433708966890335349626307894709832743040630065148388894526934975352504700367488861549373154575508344869660311794496957133905012777275102633708011130238158695156731084699974494543302252759673370228694118302824071522475704204238519766824054594559366566272987974963638338978215320784959562671984544200187911155227544507009072809951656082383023537006006359961494122349182999887190794551278898897733343202568584021629454285449002013801753740313431138001158030889819583319674041687427442635080071859184680793916385001503478291317502228009411827445409068209229596924988765196415100031159156822503145946480788941001433918268889434811329988725148896175974537434525417551928960932371485047500120958801978412535779206571006495821672882241439186242299399103354529600346776062606454280429715150038994566262547405794110798524312620847728795677243575707249387392988204390562044455274429586865788060555592163499429829423594975009485137013272710589869804135287909767803601501296712159002965898579376846178941139103082419777821654198031762006238507432917564153188326193100774226389911634213460049805372275697031448741064550877105026892146926968346409161776246247562712950848538706136246607989782776100616912258712237730894676702444002805147449433962278969404462890792251283831948467546427069486107640689030764170541914923067280980934833970353610681085659739488747960974020061775896523754713435979032067249897211975383380418597965480682917662344599438154863791183632854183829133435794293288146090656177257340786915043067808503684807628888305186603611609240141822135993193554213218207600194957177189632525793076470439035150998379621809596818101417942126097897762135118750764942271189052641816129254290956369517378096394819946007482929090053808022553075449293708480124810791624337748117350696369389393430246421005941611601392303432528494257312068387753632590407234542462232837071266599213274367931943840123922334138841741975243390707413686989358747584829627164148116513488301314449485864663291315021334536909442382616877852756177857603539361343980122597858942516504718405697237224048991369943362200083027784067551294111876442229957408543227870964237159198555147902291507086075026997527714738597809389601784062085918842082315890013626165327187870240962374902786943637274012405258530302058957890549381622277667066178478819268186555042572580644284871255233436748751727280230768267661316834713135644345134064004194817257501738668340060956010580731946279773377054750035603110193076448355211822954777705681984335340653458422356113233446972211680148969643940172604958477102753162321967170685651319476320100474427062476763696848473271432299724683968709598876919336479309159533810191032427959324185349695150973289396990218165426739090276408612519951060386579320039474294745764477316711035114805936989755438718708956614815699012210386669252482273811988034674738221562991700844261863818585381675409697626024080588455812144425053739572593941086766846177538693331905326626149637068782775276700534161221829679080567090584287974232438440955280665055565818000050664739705318067779533719872111486051079430554788672296592653624737804970283115092902358478716379478086612409694801073784231524345136324154800337158223136918941205368345661844224500669980889511097320025896972806330431876304485231310270976872986971040347078964466054446958456712673888175059501050687108374478722622521412011376525098431276303423291328965435241561801887876112221841090538015862300350277108394278072870593978744688512941402743797009964282281111538611887925679281142830539154046858700693615672699929312511725234368135595449053616944725890680817082116915313219797853885987275062999327247726352190115942554173346103420451274275498818862570666010360729404131610789862981907927789848761063514492553726636102586937262472548530661957996141641003916662432889021738760611386771940123161981881860408181521948529863606047941446524839492299134262519682494879126487376883596829237079427933089549482964569654434486099139451424425463073559808900072035251102981038841994904362286071215685568046951179756571501807863400733305921310894479681110102265091394523402870879870646764852166853200563387266660347200063799608199911491728457519325156157065268581586884276231761550393407158783588701610524238122703881532486537829508724887990388989586253093530087397569304669523821032823078942929011475230803803974553357411916322836903366366079406789505775290029270288095635836021423052671280120002734098749980856419773386737876070742251738080641027393292253669630972279293737863615297358882078647173717011847709856095013432150711120274480565055989853500854428510002447344487627145585567385889297671509932768819582624087105525967644773354167040548337993071234261519938553935027938275393650322827918934384204177194726803569119716375360313737797351600542712055185924716531673172909630901111303887220113354785485770952632571265083495374198512538311376047898133888857635256119042989150138322665798957099995187653600451094099510258325349641935753422807475247784732577532448223654817944659417424412805642247527425879989261591100037144616412327807369849770434027194355702402614683929740653189794075386382036844974610014241178911617600912676783794849075678095419255135785548252508250257958151018679837685463833391486345454695330333629862659699203182982558392014185695554439089201476918639474882711009632861694549678939500262202671276582920964129578477265763573331237373974039395742938987296787027396555448454665552932301726324077451969887512856136116814287279317967924792189550247048588481477250789767090590904435817201946201640159308917748196038294204095574957903212273295221135878049998527365326586153061575857338403223539405741436544314893733599924639928241575889914725607437508047784061723814600668099376894704326174548435950010778085836645780658805528829148991079080729867456615437318946671497918834933987101837887714874346932743592097930162697757312179918528870779237784532591563053585589308257547902592995888092357353703974783926372751349628916381201082305775607092942851233508872525135429347600428358130603591162053197528436614193838556522273694733018730179213894145417220218977579423022000869215738389553945281305882761045896086650218667492329073476863991079845342934108222892336518077524907007596837538262549958739807100782360479705980364472296416168979208136708878907765584005475763443149036357535914392913177205166301103951374984076335282149847275272631226509789437274770598673453409368469620614227001899639745060858353616260063361391739080847310556738067714457210517193317303642686318763657643101575398685147609587947811989035038572749336231082216802813610754738894762672094475092827289532334963978752423298405584216111635091064774853170992247359481999470921103712135625669233183160065456870172842426911063720829104652729398934676069895955901406877225214511168261171662290453506729455648082277314043075783879876260726321868301241560678652618782725822656764147951091881883288863794307888373894306528606631571904270318896226222972502221410806190169339464895596466817638499762150300482333246113090945456584096063540048289117979028495736061929809649384841917527076224992463922821238074769139355979408887873259543423764432642053663756751889836255030575798871856451273089255862258139667846414239771382754640593496644827929942578173884464146572523370351250365605001458640229738132214158353942817866010859848480267457247239172563168464914779116528121528852475700515763919300815054821239467193510371724665730191694396568204486171558197598754489739149435648535953353195299328214588577412991134418003110633818263866347910458526253409545869989762435170368908523955531880322363356553032588071751385959191681391438812186238244157533957687467458930368213662891335065662707950286133577213473399122498667636010835775070008217954508838163392190882598275099605841474327283815250265472853223589500232593219207156663646779041709485359597284407683818118111952615477215230492579839919690573508536697628213180547904726124229862591377332849265113932500709382161004520470223431798023438096726185681308075596351041038521640971729126748312770153691245197745690796728057260062316143701477128666704614364788436198729864339077666328624164921787767684146790928963983871901440216903220161987139927171504774904526018346850309103695122016906386154732373081543965375790320355522708025709165179897434196517236288459461265227193597059720785467241475817386833231271117175018447020057062304440501814702153704878703326416054920305868074841581327296652695243869428208683213934073410434833850249316910435251178366075693827551309756069772317489067073247307664790983208701450886700498651582398088521080352525151684416549263656582294676283023802089586448970609885127698836331560123821792044030263042236321488046104372407061893976879052901059767424102862118849398325193017958266131391549125411278942428672627668317093590532054414604122720436115483440286992332107515337132964543430775970199096832877221870022431912378661918163211427349055283210669929518292166371917771474824638106060019875719718083026210759782218331826333428291088643425927096561906273922968134196384438530592734053475535021938069937445260926970109025356323042432413684508872127579496647735206554251561565237096009104769429635736870848681358105085172298539894907090887701952587938061887148582385233229317433145427772100629969249778073707710697387125442915678789869002770799267013150326332345757376024363514784790629437338989253119550906924210327463716158337536406474685563125069732527611472393246886511964262937618023139165750146231316298101745409329281692908456848130361535700476742284654302656270853798890769064275773388352775521643554847891240807704676438758323636480196766733155688867702650069100315617852259090746509798569135951131636115237707129855728529101557137376525041402021067940901882791983861763386152817761773534248011586001105015547864603001790029820031185299484483991826909060729409192251631157043022872333886561509062346843294799132614852470401993063666034721877833962069467888928999844170599862109394783263891474780187599141961102769406467645448987065311817406966447664255767323512979201898306715082832274860378602858579146444489712626178316479145287229493291604464034354093814496523773248989132946234515490149840682797285054098576980598315577854188118568930490177823959452586351219828809542267227019666828920971497719259937922618860968775201138506041326986360056356384176667883658886384354993130731590644087108906245162378744338449552486521503823869949901345620863698770483861397658646620962023368262119544335444273887340489996414116266982190703165956148158856237799337635340621416538199983112147253069490297042288360780901672814832684504904449437401531787971304255487132212313703206026315467468522973755915537907919951259853392328371215542466276878335899411480018309085649224772254559858043884420685951485285510712468573903233235982205249394066390784676530284745620664343157797087836781534274610868374546734352999241207702731735943546884615606957201480530039923918000639993064041674624998159193632252103131606880280521381874656577694706155564440856496300602140248635014494055512542477478803777200896689253811981967407089926079952115335311652096108136867845223188084990457075054270532664053393187246831690674552803439996349639419934837354600335681824614835411022221358980564552761526910932110969442328097559865541135219114617345749968635597153882069190426316488415356495663473576838383311659657526905895066348112648298664546013612551743148407757414434438651280304267335474365052590128809555758990550498228596759149849166877293508965888213285790007149046994656723428386403091124134522006497611200068436305367010134270359800215739306529155014734818977230360793753394425415910267347447097327543332290821808936546698249818113107408608290845727227140084705321540416771299348389375788651444745744846474154961752691485458675231780331115909002907899039233654408700865290788494874066556741696372836126200826235625807116475119292971234406396462452502585920174878546365784813232183011919223779526277426604111686555369621634410251744288359943016845028156137644052063303922495826840288125419340910366219961037088763153873715950706766786525060512340450708651304685888436052508435169309417296229889744687303819616846236769793680277024385849333357773571534975655425453081904815575805882804632877904151067402796899752616818721730623279188313297918016544774295351026062217484563331431905593960448091135434285420249228130841793518856545705268756938387445435061201470873788760551348962483499945234577844066005463678825138420172104329902580198818455469231254386398302837467060752490467008032153221958315611772982365389000612312391876895200609472600878877989172863852272093671875091481267960362137716159513058719506691148312013297367125843038680141443146631177405164824339622515393281769932245939633753143012002302074889219663838858131860224580609892726780877654363971903748859370010353235374570826198035170644486164743081603717869641343949250794795817109588147188055618588719579410324078907894684598972371062554714805757449689248410296162872547142028843046287247778850910039645170014832403386499271320674868408325501153736528793550286227500469594066548646271535850127396702856995622045855682485619002905174990882563701402138732368100535565602830180625570076514906163794164573432126394357504348900373222627885027302624381029141943775664391774730874077223559351463832168264095482180530519291146282862229285039697879835713401767434564657723870974574277260917870994896807227023895270957803837337916909804498306460158123867550813648069236665156772106316711657603503313719268715968120782007608366296192383565504211422156413951784384857204436351145688173346181726418127205762413574616310172915649621822051754892634861928498401426976172896563250601474083872475906335260245053888770644126553472946120980996974118586171716700310107240455702545755920644984366636108327989529413587787847685096605899595347819259709539673522531937258304849908401372673344453667031613176628046152762756716911468943019774514818525682934483996882877711227321703551097863121471431626456382565053025545920041850272270620993233204138901731480804675487822283603266901164858160967245274941151224594517600785393553105224161838384501319281649239108694382170676585880824213470170413416069254415602429859279011873049115761910865742223154571628637431614432506763793623554199531967589455725953174909580137374230307387053443887393317672445215474314060025611794533110853839335470249785667068892461012705259733896954363449252647136913470784970148541842019927046444595416325876894120273210003497545460933053563391033972509929661796500866057566947950779097575448825427009550820682175885539326339522948007756531370963579656319616516606567079517662915755902106313981137910689942032171423611392835745222149664172879036055431966003891372604356531870413345757591628576316196579745296894486430592285834244511039941510096102913641866895782698606737814451290202679094337511741087665398279338203703481913367784185048845608021763131784258146239338822763326521086136635435542055699562894298866072825243010097460567122513931735409685246558197411989436126514219268509502545065025764207761850015411240524953687080598903430154844755693510594936930752997171844040912480770893047281363620147176545058995810238693736166231951536847597277520325345791873260324441339358604206139591324783677562095154807183714609796289334371784887171231754225994253607220970785962632214430734512438704154019696425025925496474027870869716730859099414696598258815659136730194784429169617002193095271960093096263049272744047795921739112788233325843831772218272370200856242947354279463682423859563032385392679919715574882616164455150589691358092586062862870371150114519771446973035934169677238705136869960195261637539587987518251803018355838433414494384626468052655107576454914354000070169225448834916430677049400450053306267253872827158344779191005246850107308159563817529918885491454819428069392556501100637005158203373492693389891862550234258996906703021305923738015693508212334479119858311546217079073779384304386697379803366754710619214286016489537195070625337558725580944491453658055456607044615237404575109251287974190028031468122534250353787889900726999582549367903359035049458333246669544821435175605775566169571280709631499654888816969189095649613850617285965313458917893799685055796776266700818347756281654390552756729725183751257011368924615613058357543305987775962464494168334738327103222111234066391534996306335639959613902116664883377943865325572952416266979527314817608267029025341491170514776070302208108242486947454934609947654348728902352595053518896294817419874675051883446165846341805141839744251520035128224910339845357616120002458431768056261381978817540266881060157843523555535210485759134776103610848257916810042754112378205124991026609684204493963655072705443710705431443731505024407325682610404931444136011048712941242482993598777524787167437412008013916619074490152288791077986270991628080573094026489391237075647905268981891784110315952431211629285486852301439128510068799790378546366220617387897629943427397183474153134062387731011279492252539783603397589578696220194180359179319080072153973876490431056446587196410855096476885681205134587928360204646607780871353770905708255212599500510683141592931474121049524966545835014004334544043134876872646794296819412540953127343456505481184043961134417705773478000992440654318227766699620933044120506476150475195212306611527221895728782938789125803767395839402795132993924775644057925294360142809238974851572507365926912310827133924225257172406245850877315878524070483439495589986567555347113667765358914840188480421200175269121265104048918248648280283197996601669147986013984310318882907094638871797346255745522799965340338472855060924704473277028226374308946379358033813179104145334962360549580173984581761530365962489664169975345518988682380767092800968620482353505474711670501432495274910183183664140874543462532240172218143176876072680069487800251575268876374399351734725501158642357577408370638083811269652919074992588628853517877670986170913825063909135412597874231617961280835677364907908422885909451326808997177396074636628811167306947237441835227245041650985232682582615824077796673215494526266507934896690465252759505324170578691145197276595993183290039219997093648284851136290288603171284780417772777804028856288439819061107677678331002349706978010673785395809994348306968465475968365967809734622777541335367036921985112982030406109677193716747502680926543255944904698461221377797610585895737907890092131154558635106285038431555253023099791050935556203546560984462605989611986390715697786709302601529074933825374834692837912407684568615301633968131469055192036173029484372423740051334310371274134378674513600300629421877915815641410614938940440692735376301183680990425284908578089053870065521291151803716534449730834167019872544939270911164210020399591771273199161655056896878270320056112897596791927921015925923257304898141001665017523248075456470897357991561969114481798814912772764804212158682237953869646133704728982687276448117309715885166110851305285982912227790903910131624387516242784918411177831685772666406664172208572139967210041339986072570280590146685566906098643097256750780190761578143721329953807090061932571190344556322883792054071552577795830619612066092326502337619822835985119251058133238438744785913885115860773544433020503211041629169051958576242760822453030117127218268099748670105730218279364297454408962185779629672341483390630377230291180660162876498821596462299801598062832313499737348244138889393445672790941643582449537492242733236320013364506788151844765587976705846373007765219421411707139005755244403763460164357136605274201222669716056547231483561203804516205938771740748934546792171560821724836837860576189569231401423105816631082083534639726470385699678705462004807974302627316149966176274851025060623748551208752484937301925956439185400453338559039893498311014937563576200389671774310095555184714888139510094423324244687335937966057743994223106200634707879958654983251750718890704375570314014020127655967378820063685685580551992192913822886375092633228375513840886642981736196439391929084141438890038100467968761328191522112880312004827308331226086256168413082886577129471511283393564282427235897568296526980766183093502524773938505202620245385877350736444363988268500258953168454333253607595861041771064001736877425873247390495277422810728116270528780522081753626966059950613519622995445349292116669906751553368490538972404065060584349786052483814338094142785937788645616872767091440119550399769170795647780991615297076453364108907004761930660830664689373893414195052253114067506266488811075919637060017037001022671749222637249968787543688904313352039628056165691301948257691016577782561515007727032483474941754533410804362474417953780654077663975198091948102566288593534911969595284466766269601489708316465693128309590635934699538401059914169658342743501235396158231260966990065093163216084782758354355004720019877621785747080605266102197586700293352785815776161408174965186671452995687787498823790954419342881237366618327474553687866234608573155086038885608953490989883162165788324321406166083880180930861858391433238901935685088296983906739807471427429813063844817932677788935623928524993925226634028884120950884917419592061370274469717590574878327439673467908956746838344202417845764661244409467350045502749942580329519119016539474823969522431657256796031701603316053861219728986313125417163624688392931349089842648437515123254263481300900369849568740591506986805431616611046204673855805890033949975381090587671726368537722958765417056145144168741259975571623301652769994478898575352682694830992652100371698588658356999123966146018518664599348247207051442005407929036769713175046246740844256945231299880776727944910257592518162540551912677976662838972750996498236362589098438507703948312309631633350902402948789168178959713678533374936954233655372582814233700808723158328724282590925992948145882578328183770544266390727448835335447681533546041290592321058690376385888749487877051366468917605325884502837673260053590428406957589756040807021625037491721053093624359606019455965447421872638805900824026434072741055617316778507640128646099465753097902398810102501734750214114905791643109894404764782489218092502266709413394220447984645623677096347962472065225728625303260171932201425948817012620615313962005553073552761844176531869407588777545067529306270537021157277918236318742253949123779683035673716245702741802214608648166476542792121997788797182060565691875870562474312154541095044787032982959020837220086721389528635919914156324704431390159422914707576721560349554214159527503692227217620024643613518798688781402174726419566366077057289048594522387549000325923978192495860859642198529621765742258688793842431465598987346096047965445575105836352087516213977693906076786747986602296964772934618362056956003311604745788167607480234346864497353847497290349377510463050427911304551590684916144866032622486650604440959775675254498042768110815205206180802648268033384364797865170621829855013587052349832383436072655573223392922200175995742428787223025817997420938842349857001973466335481075537560213605585721234650856589257968183007291270038747914458297729944840219989386354816413970194839040742107879527092490120131090182661582344519761669574610755603892563052591211378752164766821620834779995363435213428510984447201230410825538504587498911376294593755688768985990942138852812281282561812310651636745238413186163753720691697286411352247906776470499247773474381859878340219409418582746777359478031425074347473204230462903307428796113896179870168864440856773670269093996811165806044219024420344086392875398085202362713044841998360791946645560597053317398793720795703456902212282605708401846579092113609451745117301441324215513691663152546130556209971197152422477476330820599390178739627842421692572437820338432490166219167544548706016109587287156545334630881398511717507617331344954893116190425237522656496530978148866188322735656916785582887890976151741438280803359015708660625526734482334179212929584084363611295934554135865356980417751702688383625273822715228837036080286709151077369809767390010187567602397242472707515632826091184287542616520418888031575450326678366277383531657034804439113545737355154582972047092485089067037943055959616610744277229630251461088376591914959280687882367218328443681620170715879918777957169685334430128301023296743722169049079254811790833903614111445594352194879441185355045625980798759898770540732445764437622391516286153427037238960631088822236404168764762832725760920863746717663808117502889131363080203632361600009593698565566570816165837935425392522515350082393464992617931510149330849756327644888265281602177896981789436965187029645860818297446148892038594768433945291567272278471963992803478953613880855037606040240092042666298532095727711517441816585406977827940772509123247728863817245728646410443190270898931199801350590341543801594221375101682678635738822874175265270371037287500157303291437357563630506353796466614236753206261976539378585486365096349762844164006110919487856653801934702808708327329623318264850631212932648086033840895049619807358545181126221623801576814701163622865349533079510390005419978122202772910180397296175944375327986351068924977265536593693317506088632972499235438995052737593211148072340829655512498420476492455511474191682485023524560268337488667044569504795519703254980474796026344279155272583786647595478023731637336122546482169476708513574164395664488310386227689551270580962862910324261069176388944440012270843065117034094433296134079026304426417624345753018846445126631412025042134948879790489338548905731030216085197982283047923543432676923035327210876998263126170442849690892057942421197278588542310008964726664615920093971850985709858579000543379074693633743590658359485299288699879332406122193760973591929871144113329565286917861960428776771465799850015325974126745548980648128792857297110321085280006760977516336313240862266585825579487476816884943245703975470813391321376095493001447721042569944834073533963384888639148977882562234465245238694528586684538115914133980003352818832069335344336755518682258363966517856032524877327470700167716154861010923726618541310262428295941828343442189946521127641733840412900913956900832352573090061266797333071987058335252658037875479645923365522832189348766380164322553306575741588352570687332018845884773310793921546944576934213965903746139726375787457919395395090041171486375478197893322743000646721909702900744233393970934936708460866992498233135999950546994914641149561284437415280217341952142124627868546615633226584814245223038072595989203933148085890963055560723203294471349871015038642861748842262639667431042094987165801785175002050292123961562727215394279608392327345127585270925969285625750585021446307649180653573308976741386439298750692269859707990202004618262443649964603151815894190252865892396391683303076613854148018679728886934208235710134976311282822771015278334045051763595073883135860783898141193171660103953158327158560450740630919718421480912840379257454815565730587539791069252754973784624607625623453948787548354079577178936914220254659600998741209797505162326939651194879899720918216535662999149730863283808369920564969990409975546113504459422039899361820166373948761825670077146080615248232385599314990492822608170479797933869806000873409459441959412547749133291222225110283917640159122859951951615848878714218585481001255338373085756950278816787665885882468310372115076785202533970173476993988725704370488206349628004708562440656342317649996123079965572210462766318838216311888281098357672793027853829423416929357041518779091692278792159091541093513670083999375361018454145103781106934068263504541406534997595351288947779980740806931502694746414400720663357813083793711819286506516262614557201707899735203777533927019123561354108635336845880265736756464594665924944968375790606484707965495078689054348662344132923645274647160985483653913096359132799479512678286618932057605494869192794649479622716474403240091927468448527957786723834073102963374770339272093734347827482660613993481281884150600013380604159283339229984279531427387241363911972757299248969601264228495966090524594417822658323627759897595134608848641647942459547292201618231324221766941348681681363149727168675666197763625641811741349452827709420167421756525127097775978579765634430254410033273753429544538395905311286506453832268506142651154206981959068849886044678286178580628410586847380782346322725411491932136384574575804338318086804662585971120225251121876662354143615263096856892131330012772938858280379958603873053680093967271266776489562834442618425714521960763144096244959593958435483531111596352806008581281219155580240719224374283762382503115252355953365288476496435261155914417909489509334811167812757254269546024986673769332775153929376039775470674230606551695460108132855626318189856705405134920664898960348677720984827526042527285322790517500988103725522528194950166174641284801565640140186526048113987136039333767149841929759623035595596227928522783176778900014142297359032801345444756268862009624943642820168346873330966680513924155922612821376105099286457946528449524410929991432826031681819886907852363171026896842008149108214459325547723663251233935365087210004911490228503180237423985551134938585941398346599301779611871163315340085996617941256904154122758144603701374093159403152694080381669085351601112507870932164268897098844119841259067017683661855001233382220320874285171383350813259730312626962481401161147312660415187150109220451785154849124324777421794417121013245545762794002890548476839458062706395906932641235107651442662900670218768800651233045193840345449285330837016820601812975422972194461204607610349759971149420133528489045849419952080168901929276376021064081033433263063573443270847007070009169103703179680333049401397412783160006012300874554785066296752917324743788832512093235520300933673983233971933397656778458858051056310818950614267274416234466100217851792825313459256863954210907308702956629418051984327187831618951160633467326612732351969498219092722470807018433415727148385237290806233606027659932138324902705516248509556365161348283808708342342644523320159375118033946597721516198525197485876833212640664126987813027039746832705677315583467511314944731275398222628398007529099160020605420415055011663197225814859773939319852247429429867749984303913494079293714905397929889264722225972456962753613061565717010004344819848562443838924598568144475411895810620027712430953871958647731007199124640969453124843140645991313010861098178332920716838788947830695028397464448941618403484220630270729305753880492652167561048800124694501447945336237053506858286029821545184685019829073493742910910839216637377009078389224998851280002215759320915506556075081399461052125384030487331894955027671770774250163249445428291992735034950098915333562939414627768421193563411174316449898268427235054395781102062684984149849711232616031905529660114144853666465701962229301776315414154457246461804091129677172562043689830318234670422555390941488781947319970814687682121231729543854286524823962838236906423049911056896785648437352967156837510193189517130086367276087614130138680520642280742225158167037550759694562006041946341948014559992970665807107372985677689748965352425830140471356809961056070944914678246480220956433075502660746271605939251930555732297992316812395851156437161459098852925775166067651117870790224814038176051128297317623565197481967483869436791379483094679369956553176846735965024229489477265612073187849732280957061538784599736541940789744109048695754119027028782885032099370267497548789963616079824100458477930385069045511264244663514700040890337104327342671858986401804369302744086745562467116301822750633870713019927181672901296381089744767462995874895647589691394903976402478984573084455165974377983030951868027171717170334900830049936355916348226049590574044863189841916650833008883549088040590372232246877435688293115170967128242316696912946283951731924276072106524336686888683189575139300434082556008763483715160017146997918461299353222352043480534208840683235756832368427408179049918892929917752936837853869046439346643314187676649016672150770088942933025183648011592750471287591009797460732631442664124669900191979026240836091421301133876810064164851449555108848265723486563625142281540764422926565334517545364708944631876106901508211947730584950900220493424481888722022006393633156646540196631876888046469345654012576612805959497076061582445652202369336788241854513818480151311582900576331132161683527212940199160250547633100640957337490411081460197277288869787047007367067531491165624064475266586671018890387836017863047459171979233293543174424047579615173827570176526334966225319157373234094975561533084566162885686621553581622815148793792940124180709372287758344692146233211580181863149185058012268913926858376648036626592214340166728995625896486477641978500699901119912337255717083466113235061979738117927862343393843822903427836579830498744795382029888268454150566125217917530162429764407745265147899612718326002986150688571034064105474803581474895805684822280871086627941699921311690425357570430407547928136961138245220029017662072591161478752403520361311791747133159906140242564778243584102957886873631894888483518438595880573323899694581996749274677924601738350338880120364412712202712939988365735768354371196859352821686375423191209321993345203481862437244502116600197937073908662126374429470694467716590916101039856313621998420435372771552370951879725789470665882491376963337288169359623772814277608375409808604066165898534910528710397350543169709614511738739571049751076226167743743732028717792304637313860697044755876406508409337157431976864062573670717450264175760878418517386580305563543107681223735318473212550712344358786058723958254186954404745985477352552674610187787317884070601665742577927230984388400986719632961211975928194838925028101229144353719705117306503157376138977128155366642364837793382960499405287961378177664908589283091408479061549023583392832111837272771701645044019746233266549849015343727075837196385922564329863394624242688880022663254150003698786050369806704018501947732891499045978491559775605008089413517774374808134146751089546718291039010092370195398294023032037942560688903281180157712109798700067690474697943488982108809653335416099249646009264070055521558828385356414537002235190292515637656174845099747668262824393065769824167014430851978566797084300454563187598457680246155397037455638598854658747654608602932456940157003959438140903793461932343389189751009386274532083016190470214459168408581536169289263700336727275213371958583153665892551688848424312099026179774753617677175022445088416086942153920379934867565345047192230114690442076619671188432264309283832673930072609577709709865228302971047177580874271480781751674345992257884313789776103748283138465439371506903004700247086230239750168016573228202608877052618014320635154164161610289405952091253159829820840579699322528734381338086774539290784098786729018318494775040424048298149276653581947022586399231038180613866436142003154028170962178057230905605955864204717385396019524338000693365619646875204813833306795693382748820852598515740476312532393247330953780318095161154884470884274392246680598411223947876469533805361477032824250305235053476222633581670320148400886817535523679161910376554291068090125516901236194959046902340891308283890995443951692388156972396911601921433665183621651595860947324337135023415447526335975058147249366890752693053629820910560416830907858738992946111115370999960829326774329015972063421153567445940409514649650710722577420164954283523150854406066072910503921454807614409510644889619446482530112932381354796750590987755974889669814961492499282766801882587344420979807460105674524580527647466751239655749880282489135628705868616733842887046234761093442568303006413443162374424467915334865923759977560529850947021015239757231255395800060967860662606221377521613823246211327611202116121340923204172158234480835358151315345379446652430529545873614328667676023781176070221330771970320418290933928794896965056331410400900177101125247250484944058718187477018569514802479230226013901744653662756033974670870398147883717590501507331254108283013478489725233259820895801360250924940582631065169295954757932930725298158392490178213156822361013395881455403542380417819512617638556059403089321785343193790351034785596803512908689075550400868988388192265151600799078831070910898095450700556538022622354338599570673107683111086696868741204167344016403482963787121240072113780662855601759303222236549950555656666804922931588098558963909173268323638635155085370813436554177920316196351161351621822018578627355025315042641023024586457749966397804642071785452630890834136879754608228320892518105671080547331777738256735159683012019406796332399314928351480628775106911229220658308134959751031712877088557522576386375011397386031795332606916128914941677944071011696479289283195580341472754385133649401466037303989961104796118222071465214438428219124094029149303856575186293528820416167692524341384503243489126464686215267917419656272602771997342306051415785568732804119919487127537210206836679206049815744955005088047045612379370271812806449830834931403254684554448623215113375994036956426394971383319261014542100860415044282834304290840207722334441217887965965814446923284898684071095183394372502723785151566428462505366850077177564633335223790445159719890831061939405147678734152318627799076640389419115907303581492851987311037001665596652508279307635856104092688807091812038453261429575745492955536710397415337948448194848316198051952092386462022970313497095577279327013493566515416199760502057260816289091450821488925619077976416897356277875531134560847284911139150254806076449620038030911768681275833261912497522658420240609763232222221133237266064926200098370918105529187852729250909304840769324308869489388772349073297753750619511733287176680950518816549359172318864640179980390313043256502939724402265654504436212186781678637113319222021929841064287985845037010062676138146755568079436193609157453250123119472625507802405643540060271659086293798689859567159003688374196173782700984145238359757518344099927816021109477204110643870224929852837905838030602423701948521679679872536071075772135876006470827088281247365078444896873577457984096469111262624489385152982071025949477443925103185181715296800367837171589444475126396273429980408550717268677124515798177530441348274305857765604262586999205053219359626784896812659494538496219314067133831913028014474397220553720041461236748052491411461860802137746482731917137890949294149647635094648487694855444560398542008815546356825588471320398844229097762725115708584077186930878675711720329128645809116966192078813420732854479332433158587939410400163412292455156821119486630955128986298074932273031249831707363780956677309063936274218494571318668626287906986206110717571070754827750247268684612551487683047228855291056307707176809098293495707248355214573913390678496647961738391012623481829328932297518208350717339924854579388729073411906620907820779958707538027145458755672723375658996194071257722027747039316265177367828630983242197779149399472362100504926349447053837332643155106721577309504320286274835122827341764270893464605322168140039339578249708086709858785631959797196971159406460865615789658117823417345750812074049130309963327818500910600165961136304655956151382432885623284435773994160093947981776796400598266294737291676009503566785395171350539624601637376163194653434279536688541329872358638679824701514875555421837470693821472040843549796133081399630806650098824938515206645047486823853558626932530077301882018727011085670058498139117735924412916670580834551989315933436118331142114271145758893717077544432041603027201355796258247159900736713083865122335817182300331810981960182624107607732647455332056384283257775819630494744088979304251142075491249760324838773276834559963240849798669867969363987102223799592535497276422385975491288287250936888835481323786522513966482614851196409397732533872253634499867608962148433897203017921624564172437584829879474866682503025697268246754080153910936029902533793233816270180256495001246873600581278612165817324139748417459275027526840295870023811236323455345794374004027026977870896181662710789486917946772614747702582045303571445733971265890741239291113919609509638235484830797575740478191257275572876811000153198516876649979055555226766888877826613242290967652598476022636370863312180183356614330335659691269878290225230844362435168174508561907750581538956199025241969762574977826503562229470405652680974758003324638840227818210359878171591552605415891981745069600368932483684101037775999082972792394436263651433228558504577719712477510350950405565932104363068684076926156358162956267135202697211080724360517139564393766914976187554991476639846605670193462305075931707666569448711580355980864016344953965206927317219270721151482188300864835112643639242864715261183588878766107284643526783573517190157362187837203561294314480030186846797868854176785327621641159936867476548961858671543471712476246706063329095614746438772607556610009647012172872755586459692809990110512770105601109254889254923480564291482870854818933059920296701245249528190512977700459160254378158866272199174066058989269212151188006549306837063567563337135307610828031674074356196260163057777862098015407479819210728027519317798125375900503918845977543869383689271390689243085539913012580659498917724108705215706910656114608772902420602529472104246157757100032971641434989894488855377201717725325109316166000986017759616746358229384029056811903833246896722214333933994583322725806815907410695306393987012486196484771470297855553867938438762550702771078233322520985980408098476662503937717062495838722107305230385517541419506469572878044155181051816027410983950727231961617906334722225843815403688841472497519441328075018809870769986797698445113173507971668673448814912222260310424634877062855373678579340351062748402595509112080661652258228847391750253097859916475985957655554699699353718537159554942968592478886710147968148770381749760139455339570099092751256350051770497350266807834970368136584306923123175697977946553900611245104397825852260173707031703431507926148825545833735963435858908705444086015298202255745630374527190722393385818523989448861213554780149238672261559103598143984414365820047113565230676037131702814336088056765580859582173244065871090719789170810085695441210539679504613984372774871771923115804733712245177495299087784052738959815131455536773353615835094181595254441744419084996975114226066427991583698262954092127075444511027151770858280964798410974410452777388183681373194256102377425283570985029647165418054550965635286148020465175077405776196532023611625848055438008718428080253459895834436718368052117909576436340879192379305846686751860326207770829536131453058840216375677884073561450738345818798487121552318314626073378536409823737448287019389949100585031490472622370493891402710578009406756452801929877387030204241861042198342468660539708499805089609132253904406694998388765016543968575770871548704872931247987699011252624972333787301276168669202601819998139610064277276709654655360616288241544651474051784084020116974952655471403135743999277136124424103918005900657018166556718462669292445092471487163261882866288568311345555801634677000375497569043961144858617361004484541023897519108252247980900525345239590237252359487774898508744586709925082283782945233111100265497506966729983536085273870846799279098786996770195049319473948305225223153521504734388862338591026232926481947606715520006865108672789062960276319102190435756272756603583515093253875938985340755901398826861048671952278637987754975446630105648434287595648095127336419035476769236074444205591466824137469026683299564951219242545955385973868996047691233438794044534184105390165796377858776733456876882889207939158656097601229212844492771263083640793765284777898951769024574273819602500823518134687823368150606671194597132547026298413896430889721045294617420591078050057427266765946944020814365433804520654208203217114700750047360221727438604110232504495317031272816144836269354585532779262402346347930688547960347234402440686510690295259535135455488510461535402931032393820946122199327910475032643331428834361798680097156435073542269482329559738306144293584028544088066245188885066166665133257581923916425285388112181036468314574047319800923827798066916911699222965536300439966050056526691789272823975633382812450060492334914203274262572459729274642028863814214958744982827712117213236779968751834993571728524536034035299952934297218730099055849300145255656083845145629523965659765017306072046550408912785814451928400845702976650266558842331544062315600531286395827811800964190266801031122192838365640595545720838603337298369605189751684942584564639797170186274350264655914870733323643776460207157859390919657763397349787421248789427730615098438170093999873845759781043175066727428175040769387183608572152669120901121449764303275593693734580339729852027066363437556013776840905676214155638245620804189302360767459691545620251836601768816653871175862044464017737650440394399964277479071743975472663100555612832325896640753738409591834311007900418041906245146308578429464174541021316175352326972945186852552741473928316619301413422902985545282361750201714830143633470527052810419044261220447728209367647824670908576490873936671426154996440654575681775651228757993739466012775857637995134486323042915443685485027468184219895814876826064673510007271328155518195398004125662792166789181232625993579348931250412031179273782438292101253392202602615830746102921155416003972780080906523326706680977592046858897072772365499704063040169648523923094276008352600363168540984276335091599588048343305723653160228071157837142844386356678298648302456577956962056594672244859858068566458424580250567543349676366292061766843119285224445953732238252852446593029522773936461850382233122039322181268894201418676154474314216259131647045995815487613630922605160055482111976226721171213502588764632029976408299662849098372861165566379659692619210182854457717238771842141411050789688870578392654193573684687314039878537268579607690962103322039186545351404612396828339373288483062862390285311271720891543364128455717474896874227831144776968190738153983870393248006446345537916953966538080914542503112228964186570451618314348366657871771147612617237258340456836463368388851536595600017733766561111161085754728953859621265444954850101704155363160466148508450665310841799076654980464271395646220780097079731388767683298821157658241787500999591706327469130488999891855030398982508554148529627560781772201063050526871317608819905486517316262728522773402104711014585094925892505777986723102953479930051589076992018963314351606931414384282195267775067973199308947085722039678647218306323986567393174283961397062310590265608009384272107360787957720480997772763825474776186761845706124919205549697116082594166903889203652492718649844123345565484980294696015051318353539868125301824877243081238236348213230201553116218967659623949157607890586714479656305188097271134875710146206033877994880662498102589026760640167886660238854041531907547168821813584770969266577939714408411081640458564850416839469835596767297957546312856809338815499768873136616171351806092674085689488406660542825198860202157390109883754256360137176681396803621696202242173739650846915260112722070808694776554924187060654008490863745400001197179341026040759619864067727200877911366026614303066658204368518353104534408732189574475521705695500769400992966828211184195467508336172896953184132714272063776975176100168266752515339851130014457538161795066010695951498582840845167702473591658556247310056238363337934913807533922077954638387706645439159636299313922050177326670753057309742096173139430599065069788066229134431517919673385300189346099668397541711743209826280945975650858505874999552796139966574060454617334791848449855607286456687667527859183373280147623411613837440817311862579222665016511432704934836718425652929398198327537927472876632055180497742940639624629600554619468623513401443844458178437686609589928218737951597665394506324409937011611699505559211611884084933507294571511692517140121515349127476869651440352054873144440665166383570717303536009591566677677669185228956170749386000436958436592519754574324305548096840055863482259798602120841192074979926017374094493412393422126970852790294362121258125048551792020924625271520995620313696691319145395551338850802071047704117522046155903578586628026453690061020650707092036922018830086496242964736250589028223116046878308360942593913816226772839326141707531265129461503676905784744405931619754804751940346605061075823806231737190732676152015374460867091800795280937537791243422287083338419019818672803116633105091376369697021348101925248968064240309309203960793420198383761661457747014181657943862255162887167661844646148749009827622491652912040372238203478059753914807020871706518436476067920676330222947019218846043090809807261057793254221706366451153401473382336740151787128714603705393814739965211510758553484836254834684687419116550282344411761163779903551204488049937935105870571143014239428984981168066794257492634949506075580695874411322435095211926157233951856247182710907289626075690336883801895233260166721804900380512746293032780321579954668656107084633164076306154920715286622359840928911460308815390731271775689167852975484105975573992715181192000962700500254911670166625833211416596865826231686378168294936490182308254361740381884648198888958311924297279080587073445728983969258574203921123047920752957291106093919522826824253230933199708982103537715872143171177498994458360506994754704788827251737827625921770957607858417793583314863721252724262682392689812818463010457834247141421574586316553098382281130553503471056358037387828100534063796431187154018812965586331480169687611817281149034520565439411007322400674062707497770649093465071455678648788080545755349598496762756924088787780857621001993769227494165642023016402749781360075929108600409981507174496810938391733248802397269905374290375595429003703561724490140324676480907644130404578727232288233489856683397016885999653460759271776522033456421781302037623754154605801015387583457799570952036647698090774393800600902590913787961956751070745520588783457192191887049203253977493454868028235182799312978674669256169055787194457039805229725702582563011580487640631950329283984947795232296347227725364227606636511615752311064788794701356435088931140469579790265926245156446538998964872120667985010818489503923851787525026633840149984550744676896746445291778009905698632176795088874329051751492848571633445593083211586584827359219206184032378257222094548943822036817204898135342007553128919854548089857275535801548506749088473284900001235368308950236232880795153053305198067673846698756954798375895039674073377905380883130525708103643120620535551972284718290154157548306224257191741837727320588317173675877592083525758168053918178046917617889210613782938403408471001217125017167646252413168333636410824981044943777519982154281199319330494047782202415997148257378016173700431843405528902628935323208379762701710592132635256509053697986060066306664667526350534995438524552811502375724862144414077562942896341338967551341944064831602990494758344265200433366850449070467504736367185384657450993906020467085611519581197337798476873166721104188784235236272460508004454551556159791201327696260323419393333618196921924797734929731661729948639191198529151233000790806015280949158827285857775852734341293057439315005278240544964151270915472998005147883193843000836905455323293238152431857009813191727965210054399658641954152138677973377600579071507173772945771346807616340192561166985922162865659845624541365999469236931898449638301808861037428183698681405409153027994192584136909246169898523302114970241219093185810662177313343293193591772959610195346879278051917319146635215157982055103599799503991554064057772040956117279027104553479735720532752842286894848448518070397374594169387239708348654139836676300059727784712665457554988664545738960902466826254069805754614181040718638290799991892943524779236880495478765640691744035569194575520723713001773471036146209989652955805287043718119716944099289270133393930100558239386188423737385582916244153869877716524360504720029046856973193228007660636241081468210660799680730310577099888538652421999355335469518486538946238101642554222943001319097312982160041740592719282693652476957903864278805144924855587991245506955606823697593615670021729208022403989541759683811015484245015625844615017101751168226758503624555177342286159099830144903918440846594637372100647879306449616289313595197365245144107512935804427749027355592401507372625029405582454857621159930955415742260836248923833488599594365868638268417475366248990539154735502690703769914889872994152048241456593204416109066178277473343014344917519363002191171694774797034201378696173244112862533864304762733706101454063728814304578232191321956504182697217133404442154578749039835167699500038380503358364309328557864812371423492296193760364601727724899981141598672209804605414443690400461160570879629822587543518897834306120287835465102494505581576067316221492862882048270172502634302267958902587257144221603782372793639903699881895544626123873205841276311604959321898887684113720020539427454317629095715183769739079675419884917400810015657833293412311691899559849218815523787045474854130780001601839484231516052950705435809814402826466172336164992809942215963547272703618423400342637262702428817805233348934389244308396115230643359043914747025917758748914076256343146913515792270300724449195916407263479642342158616887909500125192498511829627622000443581919100958275432804173603720162887479120310267838568609215142426616585126014823134735246848119500778400200729036766530147880763686781551946783556629747318320999079454374032321795686689338702560751745500997670410491204524991660800700199959316843795412737167623779234358138208980264716658362768462225559818577640048446548834769344930846798225204549013467563053860862523024111828890569331447371040574461737776955141486804147897205412964312520740866170906350108751903535922140506885167654354598800175960509362583755945621208765172494753000177178619296841154398932667652019689159935527521186417755679408807063562757000510040173937160426370762340766293295325127268181939521847386632906744796058454135290591449819976355384570274999972380183662730311079785770765521117648657333106043841272534557196501504734769857676092348201518722085270381393638358093304126839037853485777698213092840097311554608131177542413192101436951029245127692110172627762056856950257085497144440197143686606689518915177276435217852166629946582388729947572210554555652641113977283147962911077508145607537931956487329792190589711300705297224947395065499759475080532198435970306770163957769487005167679137952452370947263048539524307604448901780874065731244466582401857891328901604892885333646717711171050661204058936270125807072028864795614458610986857481753878238612737381776730264856747738528661897159694980899682089709870419393376740264787775286474612975939930972517242030741987066837620625052827035230050180477298682606508127936354413570043439359702233783024790838993969667969328735258714256693304982377376017793540175131900976630160242561785985966190037968980607742850346038536274477601510260840515915830852827572957707728655887421943227100859734401387838500692598704692105893299766253091622464060943776705159586020487589656870685140526311412141765439343884532871749614767131941854388313150392568618380870681702391621487540633958476767449881505187194283635919911836010177851468880075367437267460469196154970633137897077313194320125232304482761300705404002059035021378710266178970354585289439441352479533966680467600478033478606357215724925995231767615204424227584595118251984347264612107764076350392810022653241635665853108890706074215998479341976886194042132911006126368720131210336429553534204563953970858223412902062664669438891819353777920268779388552430693094253122724114393955670889883021397489763386227291805760537631229155631328388948173373251731532699037016829606412240045310179510423829694643845442541146286020230364850059077990587595666967048789722483926622592378839170586012300596918833665350451509943575347824249091921560275370049571633935313123562256131043225547341211319210432848712114257086872671968129845808097075031552246380241950159636857456430177930247510133464081441928414253078357231785171877977143540666568736711486875047952778586778839725298246451362213142618302204210005623002670407252776999578389349698473917566679444599875549532697646243455721332915404589887430745537254704181045823985779676432462736542417248191614729704255307571416028048386030146067999289630798901135198994660189226237267520087031777475857501526533816636478739045422721174360093117568971710462071378011990936687891893861124181597071805543613963212947444995735807317863408338456438243824417597837997883814896636592915774470220246282211179154915852632972735359611985390142436794149183558286633570488668578727971279717615599867649924779933176713546835083533844112141361754358182209328839810666266053125414089705494467900308592328156041698648091687935120056189041926560775329704474054520939876377060186446361041341091337396825218759795822021377437143546184230111335414172890234792698548164645736380270530429957481107118660544998835270550167543067810043846521269223696423833231142536889452819475284465657960452963487751628561065505055364628986962647948350343102902440703409191978181426147144860227068937468375879224978505258968626241762728415638725739138339157497369339768497126434348793201125897461359618374212345156091947791229548765354096295821576208274955568113440231507121600269875292030238670777988114846058775284559197802709284557739487181263208569645554748609945810978529685292960569588136750609525828701305343987223090452575063445061637852215184613211659449218424515684343697100655928444155866770847271662930743666798155073496590101930977224806645294147866911614206455587899540381438475289835122507299670189410511149255424872959797558387333189530153683753158848349373057771924638378771553379372122720887127299533524819659205082762548890431441995713444116427798063376654378254348975433475657355745514584915136912331770731885608494493297791418532055427482893000830402528395381800253906412974615219545530125496370616796678693109911825663217155104919974351634165149825476120514852596540188144746234181028547401913487742824077815311905174601791879908695046581081522267557868716798559271249037282136052097854803433392704371219975809416463210140322408532242562480025818629764649260440519828149206140159820903687804816610320429909890307396585621794788312142235789215463384857365054208441150224647860150186015893730221555121695726683971031760225253386573519036448401848952130630040147078060568795669232416802614134724149482304193927094035013633387114029048467623579231234164549817386268455794709527527546419658346520757306429642337470488959082703065556698057120606618867659984515096338031841899016810468507948786126482356172960484429970784182684515433612583315325955089029207969822728140990728672690622039367074208425091830656383483379189275507736398545797834479312756517632996175016302220877438007659732261209818360129078635222747067197444770644953907931752084003172955407960752546500709793768709350306060020672695342519477604184363795248249629702571087732011040282752210449411924216529683862154401362374074179802321161805155303074260028886062663209783232081490230926069957280112269119133954954947507426588673834919271762536517637963163322108511166746819839384344393376923422430071440081567406011280373156493096554887063989759468892017034004281216609065516217251943668892270884098616716543842034633717764514272870127903192314641472985758280779442667723620452246069279669909862072407297173024968856850368925737865569591559548763331272706814202921095681397044725817184398066785855465217825320712117137837467828030017418064747063845589777383664555424742060158785037182688793629792025734333075682989456740699397300589060753802812034876798249301412445035103524692181031895170213591566093600714756438998299863209364344217173547260287517399206053005574293985903255303785618149185589461345527465489587183863090844821550618711423540534821283981940895110448328319055937800120882501091430153605058985003707748523303260979552128138868006993275529610244174723065649149955061465372988439187689666466258710898059757324325054858794479697923795967586838985991422327021141780718281012469372629414656835553183073919806424234292848388314714811700655942251982818844088991838946451234607843291656819585192165175181095759753431704670964272640922482324281497717434740899685148929910630618304416876255638774151335195830702853339348665655489536041446915814221158782485318834298288417969392976004935535729146530025505429663817267379718604014556883597552376975807832548077199486574756490826421236873262902340128568265182485310749533979077181825043400684702212932133639414000892604224962119023706427644063868350425871813521026249817774572921801467391642864722823021563392996526561072065658263267193858398729784061480074918091452630484496224741033952656351276798033951679609418827162611926842196815088886794887341111677669213692013084691077571343936026181725653127057030428450561057146236947744651732403410543206326732577601626080442474538671849714353416998640101680433774619143220596941548441625719218551753088401778767648678563620863362675340084263633211594986188042765563466998293213622208788819162520022162282618332633569660518586410273418862032524295909592590320179948172262392504235928394738872457930610506069101727899779564316043077847123996420699705145683139871439004167282823139897363877874573675384059033232210128492270479758888706796253117698522431211712767125273803683789867404534994411219873330625215944132203652031351916986530921282339481040725785488757116887452702532644943694632184691123191720390624573275222923346261566478351815110795056102695690502199339134447923518061424267415581355974069398674607822910361515084899297049268470539537627872777289725604351582533244167434811291974752746486440744823259847234694676337295315440143334103498032773129953365674205388025869491158736151101643746018736718263652425088182712373260628200484052885207402811566269927986337176603380985134366340991897562903749951689930829860721198019350549945457684300873153289377997147025296912772478664991391271299091292852173285029700687818724393277419465723371145598527493590060882520680166021553488695716833741578794473085721786092355588647321929800348594854434396946125590782416311160983851130170174328092402587256246481606772216610798911514331501540914923835123234808277967388850645110989656394736828394190810194675989612289248805330449924985494222126678476410204520569380097907272288045185723322922899312187110789783385412869883308755274377747373923022933939444266365383483166875769830188809960063293170427159540863136469617614744969335612724345776855776439855011434852789126177166692609224670029220557087198257931525543941656426230916345347510663431575096854917830509370091846712412367240708841635538390890440012513528015881496888259269642189237836152092804609334524154976047995339512600786569969038730355587006069196514069462956901560315273214619048863918001979981443765941121546352336189812587055857530232408056945708031835085480260055981264086937898323135624499635430151289785714911668788932621993419206155792046496531170008970507591260061882460742735523978878891716687730103184007723370760434160244644682941940791775272256593852737792604369916772257157803477022497544164405160164444265004809745198425157712977133721808997690218562084060860587796630985860386545797864731140452300310769871534437068669431004637394624354395601335842931819947348374829254660282324435651422083770824689504925736038744475872539965699787735044883864144136312580303708899737995835063411223819965589761439763267158979635321785073505991904589489287446001251373474915302768101655688002913936476606066859599340722420947469478576539738309893665388071713494850941682903691113961885323926846437269234788702892899257798132306378515602404090638629584473230311378611881526598133746633063030680496849002328583675184835019988350436110497978645029790611468962745723043730690096369850629447666671306065643954214554873861672291075649653075103459826966946953151890357191266366175121581122344743982594150702411704363066394303489335608644530200634902247974659091421648047738001929368614025179181057818647376204877922838694885043674943338065784765951159981169428097023604702353294955564405896378588072639981678465844787121512685651094257099108374401838978966032210733159638475173627793224552009417611837143822489630232722407891210575719310338617831738660077745392336266911174589224915635609047522610972935023115263398006626343771894763093977701005172694594570850500823733986855374738605995052553803885208973062109243827289226231188710020140534064228596195576073555115455209425948291870079313275321366844204479130610568527895568797636952998930497079091809060431551492742880245661636158396174443168135679597100557551137862963548766655110260067469185280312404735174586612324170712775724302510857505112953022840358905852641242598288999967493347571784654189427952787645498578668026792457405870319483704317604867116593927440003915787170348611885152978376756555194777292785794733473271751072874548003547760356717311458591539026593873260848459471437754864337316553480735650775030686126369432629361627040335221387743226547646649992118145007295151860275509888654265425540065107238590208959933696039610101578550478774009561270735732790670979645191622535451327062739326355605416969774660499597396015594615838521873452774373686858225032567198263877870470773526558162069312235148670382570964826435146640249445475390984585937771361896468770602889859287074374973751214071562887917928695155487870078455144933087302794683174496486632104570417789162929682171053798855641378364474849335258750967883746696722370504781475918795241922708915497371335910748446054285436765840289667266772528915145044138676277623117019966080328261791872677946358888585111353725810279422466068160221587805245988532370942066204755935175735678867509697386592483143511662510516715764134143913356921654828428711159392868929041998763449690399043309346619368878626721075126584174655175029069268006881805839792126739615689152147137658603025849231870518103858269250870692945025170929140432341461572065144701792698286340394494283193302721143587662136923237348853429006974782228083697514464741675147623146570327643390887926715486572111658989627323977726644403956937521455743666413160811238683589459878032224952960914469618422303780631556109894630501139908101602290906500333315205333079945129805745213495255911628871792748684482447186114380350842062441358859722445725200747031516392905738996061895945098579822224690572816377395293095329619625133928424986057824949902891815744394987395366898821068712319863983799783756793782302747916860229473626428906609627105211836036272162332206149108107327190382466154333120118155661935219471601405867483819644330327966780209154309133883830643919971882134963956313537525795054258441750062124843355165910729576418609593975325898016247501973978898107231212305664254355864842370929030541698512206274086441295785199895921770331923507114300870675600042226231368015862392224188213337186631135301622222514421777390777222470945221270719736919598140846146891681381489005259966008275179733826118943019666622667761608195849223279149333404758936819514047459277502468944406568874126253696290882512189881001780174464761476553409537091357193787393725968340457976425013538938347493336109757161749417767623354527540750894379957769417483060665168341883550489363753986908023997785832328718808609584323391567963024292877110562068936494652134514071426750614652245643016001238459531653005113573988393373633581049394783247427892734592655819316681499271887976058783571286295090037254096881277843493253138154365267770721772917200344459701589785183817711509170068246481895475844246670465935059731459441559568080010738950862378857681353395702069061861092296026531277286620125761460043994347025888323817467888331163689389085612801966596515267506232960853625391753030885522603712580742312050225999515262721835152631706324073941724303857553649872168874452786638454822075859813381605649000438865420044023884522692671480483832781757956717945242992402901877188957012761717981664488764509745430439209873464486232475956443840319411573802827583484458045782757330550691783017333577022507520131962927735233661054874594630908743399688394953025900746893121158981179535860142820390971239202219483626449550705911269974799554615625183885618903676402829186063250928073814426086141440887707401458447661490194951652767316063564290505758602507883554990755117304812861165333129304968835380804801579369052441121159743986208522475300835489565498066139912346038409544927819038994801500857857057413333320630077941127823696012375837751709287742504856093288599768065104659875206206876359204949948868533367959277581896406789424170050075608854788394667884612561737608442352296712319216100028541445616712402250954350292164088197709090786234352931537805912748327063198566669510099630578081925669929711980285488555876250155127537172222385956704501192199982705413976542453872486288378571728223756517937135590634301448331815518727221925898921360443714959859468032440120010823676212133703456589917518734998439843142292053236581411296397992118758493571529422881222133246335932100892588527075685271620580375544722534114463475132865316452838851780103991726197049362900649073222421272241008837486701332418026429787012068839528260141773774709830722044482868435420189835891812081659465352205138721829649994905908380370492410328021052276425389609172000973882821799204695944222771658908031622962447587636547692927848543648934473603434331781892216938382060855111797842241811005535690600825223515785853366673376883409977547709022495680775762562073742512144830453377042064291208338359459686542846382441898036088029222830424763710723517899655175082221560049785365088022485540895863086683524564093938373496130218096850849191078382872941820006982937031989862107299783769968002942212420919195282086653383476748884263130153865337127255429967992358592126053774193452715849019497508575125379059888323064772121596821280982711014926610237404834480938621222811445286315518597247522090286357370497237821632674412725315594784385534741064873373981696234419370333096153050479053324819425832093956292897787271821043768947682303978866863038985197916591895082696258315124068022449357140313654200211083276984285219517901723771024072179996855682656015206373294824239624654327788573461610621403647789995097792685302016128671165548604391057275829691244661885883744445184060004892748271702523999997768370328429976243543432713458008382563561236745313088835121676136194646324874347687056385932636476333383250998791205181467726467002262424231590669767491706133051035675050419182290472383343295830961462740721908911060344640482901318703917952445040188366635916157622146181082182455845713148235365283405262868263152560036370562941282686555859188313436805216593382283808396851293237232087644027137883572813326888642315023962179534812864968448687382046273709204874028011955157415546743212129666141677485052130174091164395305596684858698096052441203100013192904584745530392151870885292690764149685583960126638208534989039469890916628046000331514764657133937017589770908630792536523791941584608420632820678590393738282664606150442570343094142660576953471547467526621936928845230830875603593311694684668081587739136242023627280289504606436227457440953500473056358246991795852041139049026277661465436497582794749359023202078250406115420836431586683578012655684163023319649138129893480223811054952510030945348832551042506271848680474758948232567179454927361988421753801360496773773693999817629424021193801072059752864260741688194849867815072986386067426916497672811510143151476167866600245738841072203826819961825583309687518375164345319929095615334052552393420768096326286149784817033187700868023523315095322169514204123910737696564264678544164818382394038532420642489645274996462584121219137527199981063701018376739514962811458167224329370266813264271758496262737137344764845235481047907852416874488815839233602060052329821671252254393381368307216224635522242577206261043629274289570866114892412559441964513890881187977732530636718313293622298359204177160279284991371601036558446154655748095138864160603221589877591347494964585389771353897171286021068203272228732676058082269864800818385977514218376719812224963255991665422231425790802201743611445587945118148617656872874725054448362118322243789783984712749885505900250182120003409875991840685262143099210798178177386472245860852265319882236088767245108591839937165511599067642799521946054923215513782389380094170660979568388240775237645960103086182214552233419702023660089755331842000398479019475158412588992103354232245339944286297998999950202245633266604430342010088006021241185276463642224725217825351230621634209059828247467563337652818692949951135495819300731744699209528322138832975864368890418874299341924096974784972456194979279655491688563873380526807647195446691263655935507326936131025409280432219593453913566189482287454860723212464037631416088891625226876532310627161389147937971564373070668123398299749340802608624582743127244140948707728971269463173250957273424949503813748594504170462089010109363542403162425714416054123536197746304723558184640115935759939568610401612460926140431119188456660016454836922701278298086851463684423313748198702254187127989005558637966690036381765319468540778688565000102416440436685797266326066397497630824371194835182998570183691103902933633886865295195967138048277710528386307649787240260569392154904578996851092170296636520582843552137375620414481492625979315894652282819083180783251167887259806873484782561308338504547554254562318495933215759596063404565209664080662340659745251241026898742389281098441956792245634917293352164252003607760648678080619620283187102098547611379922228111687721750323968185532800034220982430807897019058631710223259454496765577350911156514928609116479936721621970477239288011638076557257533036985690603844813564065575564724692554865022291071185432549751498476017858649764551710806298754069187356526148613050594743631767123356578435878948620800935088807186473270500305939420165758861063694620722568128667546833708223781852146326071628834579388228411932921910991070113021912603252364919685829676941713992215420370448855543606675558858238001986495036919996967635433223821915442524948554301522513972659270688637573151748876081640755160673926720117566022830738950353369461305095303856509499564375064377264513932126454057554847578914453030867618242196777290102875844744411457692466360701597946933332373547204924344570652212762680452793487377856345122481796782888794517208469031750523953021033326235641793801024437185471128623961424577416627498687986482544228311981004669150293127538229821178789825560494704991510669486833266561012412511201358376659353516954920116979330171820646166701953424979199496804977174701012268261176896135918368285206863876485164737927692063201430592882219245828338570607416367517676165470755549295203165429226056718230679321915185013875119423309094841524747495796225144558250180916537301958679298891787957424518775852458654588151805576605930549618332060915981392061431559898488321903611640685685816340437674711151704863616824431981968707485570767705649908987239912266962908512056621916782029662852932382926802317156075210264182474376232655086562327562963912097253683040707161222576268592117493217709796627860995724350322404540086412731828745564175634574002637948827278310629756196944605709349320429360630704462554834931313677961009516024732797602484450708418857541382534724561599240750655583360489453158928614044954948487389204087088262661973889122702425992050959620930179909899230288721608823952897879326726954969551499451869602005759415057720064059764386730519089862771098812735404174872184335038305977869226112001057871309813954845095638935383003831573418008770890976640185615866523558837143429165701492179039868749800989254948748968606802261593214149959681425786290260741765429495346751159129881989399335482869860661978606418112103722567769820422063001795644570449972503900673416093250587016825810051620546092979387502194603481575190596211853375000689957491419758007662687325368560240114646550123923580950300610690505463638350486650842352676101908298020909251441689040001837992017354091129412693398251667168305839249540441185939218836405464466560077232624491305701475122520859320774824433760047062681352583271489963837494618955128452664151042368061853228630554889922809808986320077102917164631234743897467980661845010762461370101570990773946968106288397144900651430049998042659900222096113581859927314941281994380478836986808102524074171366321898857938831361111557147132150203538767958716882716695415146432538630654922992657756408110999658119641897630402240368119949556754715625570570573267345835772598396095920974993611419919211141444992065225355182627768936266564744420647660994383060986025523099190912683218543863410194716694478073369659508078246423605427941984961759919590045550801219075050509759178020947385731671887475606948072455902331581040013438504241202313191338195279745948662532433047867839005077210556041770172106609869271360735819388186475811002911793627540291467432167814759832061332709273966646157840400715405601091165383213941598550158450498372792808366829887452894953707312820750583419419267912569645693477622715424673618497071100552670011208385318800118627974092675029578916330484558953645366108681088181218937359066793321059265268663394982377490168302500806952804423923715887714155043336293722371516892850388010593771228568910584492099816968821413547375763495338585304760982693924050384935237339125747513673263912865780602004349507544848543532900880870748379732947084440753634226070676388455365680331285820931722299784169364847607586258258270808218107010342263059225800700969342816611469376661775433985301603590360359196209336333362880076020166089249863375496697532782709363492956006702264854415856594375828455692108039468936305833278691777692449852450226300332540046572447981508575113860814012902703055817176718733490669189747556936231085309728422601000886748131465720424569739291104251241950283066517719161250210217098775522990283534066839833847214966294822892006634952537593944155549171630773859892100707361205887240839221287059583259823794209889419077996919613054167217972092455067706791260709856340393209149263455320722980941376336137286328910212198858985159407876813803498106761716331171552399601104236396940735407244385828676817525764032127207192481287218074214423836607021515286203447747457321354292962637883647808156533180757455421538379185845078909262738578382300022938099311719415818675254542709611869859097188583152744995601217886161135814801965764672817989669262769995985075396400531246803120440071630363859855165187414112739962671075932715542407749700651189345696555943902746669057959729370688216023888609156896028394061723134896176439766744574231228494688233474521374124979221377087361763946354855171471307841302983764739931852075224758013331051495441917714045866990382995975374886514722684409956047257287012233462196031167556589791369396460027590774017568316509930810220295289191782840277654970530690413956142465754793079992194920760612271185999420213893063000821849865727997580680882705120795416894134638931571908200017965622061797810796267659348456756451152729832373527696729168503074075966203586579140527120076482371742908045478569844046466764021071270944329789678132664345138410846746694483784091999703241535634904067885807529057151710297936981400275848236557179342602471745900619954002450234905229340908815093408874109922531689698366801396128955301155584377698460667027299037912884935609555846826483941907529966364555133828471349152347162084726702498870295554724339422522766441259152289512781128465719929111431448341609355740773215423086092650769102279054411014223066581101309536524382325731705023839290667977210804058894647472933454770018912468446407801380045558425020488552183503070724353438379391851956764767629255281517668727149195978040450570573037373213148705356220073117357056147324013959019991502715996515580532643441710951677372528306487439909753952590595678820396787173681124141198783115165075148169624758135694620181227878039034095793384166604475886927912365262854316282171039474702491209452468756085689763454426626457361059683039854467124365891525535841500304523275088376987873679305697462067784647895945234310790369622270381783266383262161255256357977110295248818864463826269361714981390760263035027317323979709130894730456291354373962344743952927763963336756990425958278659242084702939501297603064073158961098408284325403649094505331818194778948694868451096754793136461017167175270426684152686591600836521209096217563004766684326620542504733101748617845412957578298938985121306772706298212407104515084145147088991328546372558060786285447739572171737637446112111171743480379208840710332296319010878425372360326550314985393802228252911460680581023122686488823379803058360339518045397882987946617870717805084809289097986506593642674307882958092897730132588779981553703810570612086397750207747920661430372585163114300971912868512117090980525705239887762116638033162864744447796460617325904057205635639530204358467489331240752033819026963982170066747394736381496330140597353805263140263780723739115735079772447949123977884098567884967481209568638175281228217680849654815652392339513036169980840504514809448394073864821502688313711966094373457898217299994935780858936307399863472377495343617298319161813931951531234800973692882738174067462767128513256656796044523618518288645426088927826449637735214808039571554039015401805849947996631889936315040890773451118374496769249495304619002565666363332579206260683614230963238703322802276323234343506658086687978179286371536977049512964930253277279178294480509813061552466899137204675096174506863803548921394431838313599453322078945038828487969923050909184905469862819432189443848490794295088155293540050793573986685598094948853386445696627287778479326331951978449480891930987534564461491343471122432326656823993654643579629666608534809438405101096363955618076119621688965734678572920105813455476802441836981600492910248040566373436841501619158424717702570840281147282149512047491708197849878059344857152614134418129584067716938648497423852685601043093182459276871540541073651345924740142282570003004576961911818095674563689558331259141060099751520674115189729326001011217760361465241336326371141316815624874981984164494225568250250509139194920491691868174859226587404633060100302586714185451731913398753334472033361795900817986208697621322631537286195126205016260617494692810182922553080126865421783757064910910803168343923052735638120465644918163989773921510008864461920946725761511604614492293387119224122670386118476723820083521440818464307943505591466215928450293885422196914498605530712521492950322296749938781086612722945931689783578051758768630051385376591562286620918004795662816528338860129653024631546892892969473679867112802361755376273314116871322310354944563530407288994712601374743031351596804653928808717749497251411620710785383381845582353128627454332150617822080894740215806525707017990459931221873736221350008273687471685315507204124199266469536782154569868279837682841604741395582373050693141657693729485541626301769002139598180149951591071446821226433378278799845777906305818559777003573991141985645703420767966143645656339446516653064733780164439421582847951509793529719172402208020847874613727183971408030030926136631197649105924780207041915736183408296370590179455659820973897572565359679192211471101290969392009674333431053125925769571713331739021741839475492417562418560206075477073259812813674971223322126984974972887261936185791309527311293715633945201573428093106905260746044845806873921932243094097548975592172252268005061043405267390046994407881763370819482398065045575386809933838247220344969991967823962486498320556995801039709608518285231669110307921984102644190592445323505061794429993890844699329480460506268162276421784914896143653468623350862119956592315415452283411351510423452755106297273199135992980627625704995655173026904962184957532555076159034725853544799854816488628662232645393078649784289201913111932417003976692718610814128176377264950818583192624866552197459487981622951368928771460333729877648036953163635499769095926913422751549587664136676299556648351037515655172344622244737947094731957160506633190284347351071584736937812888917386961995401628578644756343031325990837594247533383242676434604874772955479287096422447830511583552929367923156252162670742255258583276966604267471069214295511263098909848710756961111967531948263472056037509897285553902387815767057891407138444948972154878121193335280563736292825242501705976039867204725013166345324313634837545707562269807978476307557198910871896329167928089467505222379247813479141179219269237671094452826561171458259339311685643967551867580720107140469870187340199021886309517971056714098677466578175132682643520125227649095272817870828565492010983719044938894919059641829727239786407207575734288674382896310133287498285693850133356167296755513620980398608955623405850500746343568239813565803202079938126305821143346480435908270457432614297248834102007089596079988482825001025679572655002746689096889646518392161969425898173407624639523083297733588943488117827565373248945827724265625923321711081659149059070703382685230621413442137952959402432833136384412940530795324976211856275605572339811573282870074653285687907211198240900377911266513828623867528903774219877012609396503485679916941188127485648786772469770567356109951875007336011684279584415737369900440267017294861117352561096319160271880131355991564096205788886710388740517841228764077795955277493519836194824445429668457794929300772424015984848013631716844292522234371841932549223173262565482805901047670247078171646566942678759537102902058358126475996402067191315228047778835575237979991986676271240669266050162559027241413979129897121064135412883586053132489291607807143158154625856943754287189231785852176882521808207298562078495222541133575901155169965683971754018802592150380401065896551097508628916204908573051058766424554781045805225392289553394679702485233333905327574187918662069740049858468716368723588040102501112952429487690242892679855900819298440725397136318156225313725887530529451804891668807118291107064799566549746276404533902785958429955104131333256602133870070784833769800195021321256354193926181052214250415553108845547933473268902785032809049603850435162405585220188952727681594122826192627086745312961459366100184448243410779027132158166014353068577002916192558270553569426136179814607627921628507778252485629752878133114210919357541082867058407030320672738741760138381979387574012079367811338741776366927601964364686315644251373477203831874626682141743893019807113972510250503787493025875344691137627182662705166245037175933875632565620198902439401003792988160491158902258410473851741277181627533737666614519485384697628910173758346929814371425554375367839248202701904875259470531882627855167851543456115249070305739235679924872428020533218887778625581610596348133969123631011097691643461841446100360304691825668733019690143825480131305119224685683163422676808159066830513709698799348896871646948738332033497183274086083261979823837719667230808813136294995384302351549903364237780557429992422263894145866152346199050144896296707494124439356251588937313224652063102431719103167796359172011680173715677416546026311745470006665854208725736383062831355841154652653771283350962132346988887586503327720078597738180002844201107925930448590553270884099580387489118901078430552126230328628157515895505031004628758998744037208731295346131794189919181050536204031363499878012522579173971777369471412494707858397642915447864051248742725730188713722141016058612826947366927935751149703513054405185849289159026377019378325376729372581265798348282196061433739734873877432302686627853093086584866779420492335739974469150135715994228256171631550644608203951993974862171820884214538782886591783951475248929166576125195288450419821642736023161330357023997904935352297274060655694852009892162962682090620691489183672723625586206395002337914798563215183957823704686450455168515522047479914155219571764480178847822793774815852235441735492691898606092407780924537033103224245898822573428182897328939118970834798729699820265434222605932939346022716810683682289435478185373206921399060863629691512432500251593843778806279894797967547770841934930088663193339251167337462650608308091263594957924491355217534865713644455664301066110933166549099566475494820247944695792512571349404262691466882329263679640914129696782983933423750483997828851139616043386874455134426334308166004394308333331088932205802247052370222423457958694671668490366409736372031148090871563806647324955588848257693429840402133773791216861779955066308536192377097719456486574991181202391972352251326873247635209818382654094666654749913067919152600139614773779102701955366915556952006562350281811549744521593789686844175776140056384690464001513853153017449908245933747049412280949143644943836439611119059399640537086926125418021720934481894784896913859537903311093068631460876236352241579421976823093928045317738619784203701065344102865508462014123154030438529557623250630014113380338976800546937708078290888885041155766505877189609517862277289332636918887929728168505959437834018547108005320765764316452989862597151181737260715015972180664818998282164336936914974948701106938835092196590168670361199588984442180311383421533599588692153079188343237581755699824823981409956360308647057778026667973430966396212279434026180029319156883804895155418070148506179228836282358792171557847012491078367955525525847190616968875432786287142050930651946891874504226927295714170690119240562571142343124238624808803986083587149803211779578942361100146223406009910284383723565711316205188845367107687067135398741129400373527591520907615060013827632874658660334325765809789088652772727031298914321060916413703833038655272921790281658810497859626941742648718739079929431643944587861612743651588892953051785346930291895553567361168555011311325458935946112757509728743463894424154974957262887175049995545158930663536473996740194425029333083331699014188674958056432289190149204707732112136106609214820577305983528935901232169746400165569988014277240772615366339303657641069992294401070559392907328919524630854037533760815222703080118601938634870523537317551489136362027508533955201530777900408576066449986470575352183497056714668597366653774943159317036229351813437545850271144671860942960376174256676726003409158277390615502747475037268474881940432972870226773850077871983609719751525499502779078504943932697756343999120908435534361576753491338241930327761784721394378189222401567898114596243168952537090140033952153368890328895936464084376542055223560783506933662112085383495144334719302425577829115782075697237189023521005266549146751017366132937136425365901968567113192154006114353782560608456882253469161006070266188390448619558282951504344583548026968072739037510901148487839447250971364772787384952920930588095308696073134326460832405752069194002508864896025214617864325120893395871839334291525103561786313198161174930116623219283263058371594638290805589939447139237527231535407059232190324181203478013366199169437678956595659002962068796382625255603145607185548040607372486479003460730860795340034688256634499225013986238251908897883351366787297096800783511773049149402136988850392631526299419666788120289656518690123624791543790762711205291687664953303582860133386222288690395326655732785637343776367547422729484296727791815217361840376495128532606191108008324914970495250311785160165148073185444131365000189911067839749705465136151392418722367161900129537774017206130416972277097745931561545038532605682188591264121583930307056945781011863492129082357298409768501793868482522902011642738253187177960113328908419926727455087713990764548234278843370650641764165422377423465535870190487910414951933851227522196767863892950410591287735087380386432055822911111346086432649910085979826792532201791532351236151131649723177112886010210141938466389916988007010516302774553686217468492357436304098644819062893368646549738361609084886851352669987108703246956606402132875548731085790753700935450384909211543371961967093750753039767464514825719563136775810104925760535049869153591324516210022653364984610517230406934275494903866651716320491221887258044471125902009901026376128806586671977720334288735996231612263946543480999321733525839120167993693669568635870855852216849554752923282719643492590713308861908954962307029547876718729618890486649725892055854826975888675238170513705091135275682445749187080828569916346100313541916036691458131514323518503352655516287756358889496047240529936743346636608565839468144476210101566254086342077597722540024427446364480956914104002604237389672753817224123264154908661649706156289729646827833399537210860339726879136754738857187334219542792602904968469775843238409344179845368992165562248696471195640718269097694652225920951502942087847393544859532931648896103565971966797278952060398649942156642377982039222250216501219225847067153816657941162876575138971048038089085635169156041770216424883189863066840202440978623633055758062935526777039281940406913093720064258893442037468994341601477893471315357202832179328762117390692018626334948193500678921417188061183507004800814988305976082942486295039215767823969538137763649324445154839499914184943771519548046269432934920123778209468384756347572654035090707779892933004245228894330885963656179646198640304421428048100192651009759183050582464956060544093911849284787978585902624929376931176960325050159515566161890857175790857049181165611621912924318653417536561299591418385403047124820188129928866540411006440150055960490265143647349160931448498967718700806548064123022796185386072508481637278895878492676355581619372144847319705358990136967084305945418869377051625429674321362907055295329819422941444882408315143523498100620041116031696601964525681662118354091982945478550736577756401339475768760014800650243105309397228312543113601887065430152497242813779869891588463312335211756658055023179031873758143386314290375705828330314790507410195535855223109115913222175728028185646011319429227543961250629461561867179568841107892288846825147174701877550116829226229469731754950251139109460864141937509984951212502755293598189795703586376070919835489689209538770299740631712762058901385156324124291457929673733396972343742307840969229306529337686927472194642456858514221386485863904089903004175644968093951442932186861502893491827187535268422335267138207371779591354098471693912139874302841232818454602668528227459229626138743722200675216339725302876403599031270114191846880077809110215659237873217391184652148744440430071071342373882234498550529780617581368778038981561759693916525632347896356167879632517195715638256540149303096724527016912345228591652479932300311628897608153381809768056348648740999492390271948585793742143146116651910115132419316504196741613767263016733634901703386612112502156526018605037525444066391175396050916594382508811751107076416270954658415988229686907356111230671043103109760931362835704300678991082176719009763807365481989553074190799548416517423555712981942389505815410877118944712126780066862401757439048402527960108496616050943869562396333493498434084751433978809540762124032587778307816961893889449396174143725454305959271456101021687221753653788498007162186306707981150417688201245956078469432969265540303565027289327384440286707156830716234622606048307484458665621216401548911596778235214062416506305501604130161256768419736458896471738400355673650732923345454732406616950727200545974166477858982389942987614072161791267319821644937446518267853127604588540347416260600082945057732829916889039824015343541525406977427285770139077505868612282981073446677460720558713883382106643852596102551249141429493689907977368494846825251004638432217908442554621627079883813866852845511180734139587946736275189557508722311334014478792604407118420879980990774687918354483364700540390382326151381458651943445614675241232608062738628573709789284833645323294253515363364940115851078818532435567438125467159429788502374090453717057040289936564498344197597598094440191775542811181263021980519329304178467450974864437790426317073123285090973821706840544548231734321845024497905323088414495134877452074258973471390522796668307435145518714128604091982871714055444499294674279432244979593001840554749747264269428884355124752546152394605959947795868719315357591915983983601432533777144441847923995151056855845500467354476161494389992897972257548257906653799613612535972871107898273920233404647849575725547489584611416829853209156447742828580527960428079850092449555253870911852651237960697731193970020310738444871925092705906121482489914544012861247525229904141092211573824371522579095902450296382402772830897515200334386168859385581531982574037078631717497961183548839427174451198532523249952748683315458356308864764007384347395254774254183314947941232467779992739345224187693943120939202519524620349713853835519004217691496205402869460850191814393020683817957401789915706433712519790302077328500001047496093181709346088820952329350565128092687780272627384553286989345465724393314629701070651200408637717084486018985794420312540651226246734692608213429225742818242131599441449395496910863976120614743488434956227958646661216327142781608671564262399148226307873037772775805728235306385961487593147919996592384566190318881268234183836385451378374153470550885224549135284628276005628838893301961676024871773229965699867879231091850289088611000534876615824398561443376776126923295657663889142032855751439138315314481508960828164354029111837420732668812890443025905525065857758001960094217560496496477682353216098388661080032648557564336671067635489528156388672208302875399873237362833348236257268417133738924874974727600363026500602151966226462025466682679035010267728390529379042722023260970105029606575194623560218511782119115610562824738488085087575887946557528876935260367032326641969619987466297054839556654291223191238317105050385874528583165360107414869929735758834402930624440682726798123971744544873674687441410238613767143431682981168577246498052237762784115515590156864868173340353999333089041047071534662960103167438747716776161716991954356715285283452648539651570690071645895431090112663641999584045392083743098000871562567825224365172033455237587608972697808974124694070554970015552318903710148666451967093240135652732573432273552463751689558369753776178976009553674420861883757844629201835467569551935440690967910231449378586018133790693923618569023295576703835425655824725533106424151445971961684607197478680381022225335054183361842056081376412528402095955364283419122842043209045266635668883664934541976938824410783577963800359255581170388764471178377269269842819970814892208574117159876918436871498904851607802391354841601070145004219016779619263872172479721089989989091246117647638490054857963249547318322791436198505002552104833025039737055415193232679373140449145804308199446595339241204848561612515644689066835551365882862834349933100694470580456422254142702520243791068587845824021163000859293672468116855125079836007816548703150101958380034672505156219362739067028207814860550252970634471593683368376376560423062721081050546137937957265378087886141413582073536702341566337764262584963001818736442265872849319562814608268845102158340469530652614784538299707846564172007081744049124758720009433094623860498255136999451927795015405879309412621573606701430567307024862020176998596418771731421917689083582602099461851610519121750586959496514562333913453307197959821070858134466876906059636791557553434686785673928460077378625738351010314286544583188913733047874657686464974520420497647625953648610232974138995660071604203698055108822375428381069417607144137269787345718690991357901252419295626597624610568657706775506932443597426898921350715198566500287900707798454050240102253324346105839485073173752640572608691390400978929084689588829315461680920265266569678904398894840301321967889583188214526065196922441801824808263203923291558930480452261904973697896914379564565937178865355477996306404071504031168137123717875296922006972405256684619453135644192952570401489242227998136824251783156413328785785726737191560580578667412050432391691981823545578728036519716433524709912356245019185526683534383036501964448905649439644219203661076524002017226995476929855408453076688869835478736679863192655619659320270795364616117809911720998375895191859501846232540003022779905389783282859949682920726545395574793391618804108995003865795362735693776881656660520745424550793565720789163940891948471909080877835596457712275689673605696320085245058949793771228170268728372444287064182721544899002192302278744314698036771149239013629482382259208899609296833785756034520317767367487631741720361104692143481992403215150223900809024898123600001150820414718666442553125464073034239515859545515261734398558588514941981167059967160643789463168207525993546689351872883216034658985601437571775879245973837698913831655912051153511309150614397735447641492264438272637785793974186862891721651270374944705695675931808997687077261781513108185069534486090004302451800175133771237911277655333121216197108493277808734971176006379684232856953299975225572999511822675408147420201912095813382011148343972982315836033309689866487299519587051211669292753160830867577055278162615763417209289001022650363633629331371352720520737136684573258267725516829507246796756226208444803013533007585545771071807423755232730245751801003407083331016662930376887346258778303882868692796634252492282019916049738245916160782510190236948522578115406095145747184174469729169836963995331920699479047711758197283991712970213127794981497621130726995133289262279477899000026000868208135399030930994544697088216879828622432955420340991734802849233682855337416771513068269204973565435108520439005218415310998218884990501372597029933901381585134462889461750119921197859127406059854237505768853362363124969574105006372726344931273073486378971785855276594920587853175895233582341494503033952329823835375591680430145378149849144361760963846389475703023025449913982286690853251315351907667424214238866461468900728904438305646857413891392159157740107980038597048718421364748327139427623155535496472301727850050222816318536282335228002118135523753724726156095675964514483180179353623692903339793559438278612790222212818579770694006203475225172209703990703076569788800216414244767545998114995178427136449666128362394114868335916831781959410252442515922113092236487524499199712672311254266246399861594224204220000743192170716228227910512240436290161636592050074690649802376479607125165935450191788802925884328930237879127581143991069530679059101607291624668066527212456232515412459886546261358041942321397840230440458470320381373455960381626764231626036029540914986322724573693449031630087910960374724572212669694217663928691350578389595716817944597036445812951892674396561112277900031427897911919085225927124408259007740704428896530890590281388373108179548914411314194729865915170602412025680648277483299297823548018964603596150405790604552919256899983794021343106130668873064147808405201957348013530824928472949184122635266167517555496179836447553479129412158624832262375567582226496997478315595400732049696321024370111780094953853999719613724677464930893178633368213204520823853678695340188823897149741092324208108369749324630674381778726779716728400699403906445665494238401330069338296539302373257700615299637336731518723116753325611702938886123411544394736256086846042599710606730216670315603232157726802015124671140189269441891318303567453323692172768012191794748709574039008654134587985086214247336449566267979553246315655523875224000566575244950850328576007758699433200243073196294243560537933037033375393912504733264899264772876406607900304553447476998262949629539738391041783827071541215081059157720610471527311205081960732952469703449438229134634489724713328837640492293103474602190371853159681298505184356778319583823751270860550194007807064325379419393861770774196008313979672845027077989726553209742345252695642591661936938292066074524035822864016558011678859134404472653305513487220470205089390514759875594445628886986426610155315006129702086957970868266701270558774713846361853413120234996147092822052921595242459381074557187818424521655486457757974022033352955519948628514036442543452223925834587999436263424159376329505570820383358930006819528339011540105734613436128483546337489805058380826939568427890465827321449616044018634687078497410175222252840176673772046663617828827954851429743976809527916796386220803410184152204696753115299109221411465511554770703690715376780477081740394259210668729634327616598728431263717330199011498892332278261079436912050406623031830917927166313036323722149013459697148730285895053474833620559748722663350843865221327036898504935806141735553968805697307440514834508058155273997572505328031948466176539669797184448989874871490744367049831786049841472454765960038840609236013391597937141058695358743883285274947782155526160264835755911831736390018052136578136233799434965828331878935411642878054926413192776478698723976013654036828091950301773392232994824011708306559021992874913637194056177948361453437741391027340395715639807463027439749997331909838667947798757057815586711036043122419919779669296961220144355392906894854419216377172016004626316722771068606905664633917445777791281961376973833350330651168216189129632118142775986002121698207244628114884729278038631704322244639482912697963515301457959634097515408897689671056811752654277049511031470035654489279962323940308148971384518073752775435181992871385874646059544698509551529067369519448669961959421063992730157763068710985425545095891198515000075171377085069307718867968810587510531012712581538589485328683366030451159866927870572235277243862178338659118585345329289261385993231413278071293985078178326099552718279656524613844479833005501883542042984003673455898507399544794855370504619016203978158835005400349814803872856134908080253136264265762875268453663396399469387956391865382462205459580631924679138087502234751555929250901624827220281854098621716758016355405689190870011421938004706397306529403497956689602900834574895481197229207936762368674346902755927759898222534359184964599364771207866466364000123344873752606556561011469643698089308098670340820730846641946526172006544688421979041018166014484541815455081703114528103466552133980331181175899992869019214520819287609847638180842250797215073579588918690737843644853431217835872864443773645631227402390193557443175403987498278110451330998114149830133508914419664526200697477893350355573701950279999564964645804688801512800830323269781243745325309931360356486731308999597374705420507620020203448099771174312601802678175830011995136418588172754767373098542594481858901348471654171692497171044931645110723450973359616179600708788674442439796161368003738724725247747000812994766567384829707436311662068297464206769388861217807334030917496298340149333227584107375149140521715806026285217082917217318840684331202143072806869496178117315628617456949657471067344252839657134935234670876206465131481013547161054858436177330127667058891220605725388826598217563358534308449545481737699012178157825957341608343283404649674487030479184050512851282560331600985698803712689517817950822233490849359688121341708607861486105689026014891840475762633075558165765672541597341800215694456466746595984227929813077431600367531699030397808710159305492801624026388439350005554531769740093791365529509741137636689344801425999507009009192753890567441033721484400865473460578707308399212283332299245832723964535362859566427293325379616005014621797956900164062804621602810101279084061116460583960307265083691278947903794034662269941940506393542587885766005574047366390256240914473870159745156118729228491490926203086299397790840098026336913648958281158345788717651748802836871588054146941348324103132453291059384540284007075061716992769091990378801025955716257518470118317732825029851013910219877750285938645806188688111914292517769378187552626064633083501029764740881558308457110023797324390023745043424088510861083235400377857529647148145612281344375484694978863749730880715402811511581427972250952127848693517114784336323440076562140917691100079366469290670014944196372645666483728553856614500059236755066075760253864415070507984125777874870736818387939186365166770034067024360852237637595499956173336324337210280566823371534765551040254207892448651672348481592549406723796830010914429252753512813734250136672621819003751947590892611580709242592421833869258851329941820061453357170768967155236240331653647715741070176924215899319538393950735150536857102245772087474287676512963644601545053639799089772718292632389146233538106515259695823235591042591078571071673792408195178801565278886877358226859796629437244474227579177604716570937363382254888199396604319826965738454734420526326981245895265175809532339695052210800326994896708256746651666503776279386198336202326705552947621252458024634020290154303794302067089278402658069158986155392855034196621404344089949643648808111759788649912164792798147991925017959826356825522401416852510387411077811952994596676983089964682299871024675786628830392284572447813484493138513220222503848607338614213276890735763968618437839131359617556078018675231463220698429464369520909714625162300661312613740817006306423234152281532080777458318178807896777114529051969825122600577243008846309289626501479329026995630358653781735547958194144375220867353976623181787045805860228250551781897969462715524925799931672169454654675975138661335786897354673807137355726774851759746928849626141200191011741375322219043554682100781429484721233472826729379439229566795862518803605522477499233326714964406547379286056208404966776095617174743025666532438712227565087578986991994981544225949264601112436373595177422046017311466319151046666035904434175362986406399712815655529424131525399810354213506006819144924502616773143359471626941839607296147438980795638144671628780239594199480514044809562109409700780632895053862606227544516095190161619270700706573538692928246449999788740390244923641453914017614720093730709105773717282184053814779776367224288154419562269527433026792932440233761783970769061249303449192179845477559350098514903057634248810817439757912598427167498278620468223836083646817411681069798833823477486986978181758657091597375984777339729808479396887923649340950449180318133446078499124067569005013503732872342862597046054425791931600955942159079686313763683634697413806902993404652703686527169077772217774440321616645678418662353836662641939098369058842952940570680943302294398214977666798178648818487316617411430616636966529410678961743222083571785473729894348206087166860834781979819642405415853572601567932065114687644886090850088584308565409658185354980107978465284061715753410168286343379581278038977121248964908962698735839492079019899157903997241893956341237805910301734984381297443969542742990798356504489556838892553398030704177688818030088266821388500298064753780455424403171897380810398000687318645342710360241553803864059810381262365958592182410114542920109636683193327246981098046011919623284834348415550322310722861289948027142376295133463038655275245099886888908760887919561030483920550573260363977288580952212415741911024758452596879914087022361226001731150332783853818600571324679255294383003880105733225146085144859336876660739101376454770114951544209964832558710055063816666975394850492050484456194004068611613094759462309330880187545186696292962377528981001751731449789633786259381461921886537917102356289103868128928818823661854857008525084074661641180034144774037664987717081623127802725470735555549619783385091749800574858107541439330983904917187373460262286408857237186923332510524110864034837318644460341542020114967331421218900188058207119521565123541226214575309003341344104614864847409050446225343344355825817296682943857273438098001153495931721545121771283933385794706163308157466857619045617881112467588355756418150219463997624781368652109179955962804948855406313170164464746370774820541393333575614408973368739421914770806022749852475992163684002850328923890998311018907585580822531202742050208425937626256687593371938129188794752773600788441156638938072174402814589888002346379320887830097437188727841832660058184904614075780386278232418447441467418012783350092368295118618902973036213682044335340487410460846721853092787334426772344675872798808833073091683687464470257909249077278498370732621269940828394844005219509622266497836894457006293743161216687955424728486389043710182107927254704468034251192098919865547047506625994142215865517264267481046726871733927288349017525750739873789887609399056236883344776903824795242186777342535863368479269456141643303436583361934818421832377886875703785255929725674445098930366119121698157090832119339950214068615967004446016690434322697293971984773161252291428367926235505916958893763452483438515373390505047315064565516677987442141491728677181643456586656667386433327287769554929248359125871122403562868439591090499795573693187349944377419324916391817688969853051688145122430565406921401868980103097239179841461117501202686811507130202228121701849395140910536007409494276940235386063682807399118187231400278002652961049337982132799430384174464356026488028467240352188693708663691089460714259849944847636812120079449798607390568817661418431207962355853815197517569692504592686638623202434736285606924574003806508756723452946561951579477832984250959759189959166465056592695369623064800080667536125480453916688159625959258208974009712812043984277160011955009885498204248963288785269948431996826603512197267364041711879586164477332969910388142807433720179890902429550245957376668651115531877704701446024296374629411601714625231923926364143228060915608166777941621568012182043593658069833279290238325841360145668455857881946340294853381215068070570921050950939769037261395868808963542737786649243966136553064333330981067800419886343057799995682756088526643206415707620473627837619732380023227032143828223156108900704298590112274800702978435311170257279716909871000153970773379041115488749441796556853101906366640535366546875573813420478428046437373982083724396608549050682024317817081355980382763933224696782231015739377077521328431450742137113553874776814348665944403307401349801051913163237291211404892228578518516324083098557000257968308731064753786902557183762046315541564008379049836765900811744912760458928887918582986124186712129347908798416072046441603591034897822547827111114632934780996919946291450389881235886687305424059277212723828390473571286555182366651792701709559669494936821500924604543599800614443931964134753812015381862624440948117701486829787372285295637903560009088426230319574492181549068873277890721456076328350205868275275906483158324935375576962180337966232872123467798208561172287210435853381474882908724987798618529554807158146603179362855787678785057825750584512213341076860148571354811162222526713013193793926922662024320932946023494351041323854219714819050449168726036419879340462786122414827442853116704956803820169418168642316050556183395545847544262490100071488437691881951654230218964674241335799386077327151813667576648194490664672379493399959296886270614545001914285611276073066253326335259042764756914145775548505911903010703892695085078139970181473401010505761376602014897876619000672942740738678243206135323308345523723746467167346400361492820164620915993111894012570411285981915157557813464835058820865445035173193079603559062858402860652280823258483812764258853200819127580742961881917066322079973119469066474626208220384700577057844078387587520433254208148147968114615755752257264059616007273241132557904898566733346511832261515077457157173855345791873851821348949434632012041550897410369251862081141601629187120013150838281427298350652491196700923510757011707175715162332106395457493614056815834731258993997162105751150856487069913946084868249825045193674807900312403844581329192849925469082271181679216332924320294153259494498870045483961548332255446392951190189761296737442826512960328233598019500599415594011900641703952578526991594270564739173886313521191718332963957141094508313457400676075268555939236586680524132205697060876623979202701597158982855264048952686997436649541900050534732653889088279366524516510192578086023848632783663717118910295761938295384919451765046832758918662862882741904271165026667074966361563654822129617752224674379827744246588322124516616912216945633478464874654597100663721828824505959960586839331831762117007326065928071184644917888982726634368879600818512864465748758862773191652501806193703183316727893786482984378937438385985093934540498748215037791180108609394939684442577447493251243682247514809542631203672811761224139544686338416938989023237362395735298751106146922862035625339159749271911556784806620277320649052758484459306969432330675337731170208174970146103963154309476282281603653008407728988815241972589056666801557555627814843941327364349033476012764608643271898552446211116568913345726372495986391836039543075396814930630069162195087872627487621994176604697797344179260216738021381794975464305572185835687353482467863696747935071933455945731130504397402452267466766909342831913202544542717885433713391963868799805583859640018733054161820277033481810185494368859173002908089719870049985586263776151859380567830664288101006152510125772405488421890916897735487931694957761254251354653529665823380716889416463147095558206692833169331525620169548696930229104661432340681621856358111364471771037287340996014326833182897768999588146574256091758313212904615150603034556791557141643551260499325041633231750511387643596517244981309851441892204599499023556187140744359814958224320829211726521161441657662764060489371311287810068497162152531421619096993894834391214284153683288172602439971203442394716976415660242246660910989399300002855246851038893578739478532396767690175068614737342935267169968918176936950164695542303885533552964654732103721518159949793314333067779191892749879672519836888769408062975935365682699512647404401202114106406028791722607801968754568111315648027004978612476542840437373011306329404381237432904696916111797331400141458410550664651499168018791174000386186729334886113683564443144750411629989230260851410649947177883626978740846847887658430944054360208355986338535749033510840046091768045983713900304890480257039601660016777501628040868639271067618577245752496973615022265911120719014012027949422537094897892454642696076355211227756022138949618266163257099628059999670187657184692698725623769607235532962557792515227540980459479201418072581716773359294806973543283787235020504505799229373118441394810324953205061495807791489231675789880343988515005220979703146328132078459509591520338414735499574741024816784263013125903219449554503352391244475055279828369297810151012640665822843293159490613948528085952739045800007952720534992060652705719251526938193925483930673256578011658085257043064481402104747483743523855393492380269756300538405195144491611944900561283390449587782698331795230126323930787599162834583784254124726485398441707665223873125635578916466705713264336887775780654539326093375953921399788167005543751095310697573013531316474777163116286629554400121268530372377342881271059405746782509239090287444963345719430037381893084563628714313372709425352160328303371677559629600340870819113518417077539664596589416794294344990719499090124195983972151659552100688376487832099108120976151866958997030442831383789282965070264757096929992164611826426436784028641653008112609688071643875509661866594204527094488995832013897194311729991557044003618998494507412547388461784882975056685561606005733829089522553270864898968651091608624689486909470920676559248164164456910461908673707118051569475692554123754188625537203386897266487055106466506512968190056117770936254278207824421935454857343177093894989729976782586697806953069128285368263003253955873155807142604024087234224615929743407459002490722436458466127545760288936771241845071718504995853908723955718889423175186933702135653989895224246626618075925224633967274766637717000491704663620001900359996379630656650659172848166712415694614208117514858661604643872801162399028141683880530243832446447991809640391174343827863635437789580263237678859950683669703278480381197670169362722351555853272030485519080487601228240799933249524104457748244853353249568245372937062365853827858042878170537148868267083797491480323093319812770897347767442620582381582045948476193312084378992248382409874412605696003378348120341388125072184164995790826079564983158252805562233122114229034162679848579746528082366843720289337986958751045235777685956093315963150716399826482154830027103803822068543359944313628539290611308970773131981473341922538883848528129037667883791296623333200968356090955796579697163632293231135067600157727414417745329815735345283564980565461298222976889476958602029120673734637551825750338877432642909304051521156727986626835494767977656208644474441956835710833504072891607929714374280990567074311055686789016237056715006009696221723637204796768596852607940201516151126940279729119037094342991462096060392740991332282287046799401971554330923514836648726608165331085819593348953136872010965093558663903424922135923773554861932865986423410918613400393743547177420955751361548359745458482104785931265134356739233756971145371690706878621197758426880406885592087357856510425173434739815094329352898800827960121276875865640961595086936246579622308158845564193101060799709918735696718402211193112100798050629165995126797158546379949909142123837473371498715430450205553704775095102641448956576795470869803081251813848934536921292971764380440299144484434887311897601931940710013399432688486925672475414435560597887789000023120798380125543215086268065246416170764617166761601563112965569060584052857835522434822789920920875443790431826773412553165599263075972319387585361812243616863175855828610287923078894182747942867871085631072903439511325053597334722827960564198393327617642625593689017532974073192410509023468552089419516434095676099624674332937949978987096868942892509383620636635569731781581202902620516942549895814748899657312538450208020297840236765635642011655569799882717683659048101001510530978670148989344280636299111759774529699232454919389265520970753529400100467846290430170890883509708758989490517975739727769574419443873305659864868489166324472778747892491020534122590985670135527558626493775868358531258090751051851353306173055029886220995049620210284142226108422710705877031375344125575777579637793688937367784650498080648388476223030444442614702430370705409645717870888873698323107134330211582133079003537524346981791300629337173296776809535599685556037565880518506436512576233791296343494795694517164909964413519613699174581015523458728204785372815899566375330341627796341248085702483639486645626323818039722832674568663192960815495827316749142827344332694840460510742707816737895638462582958257799138445713310945361304024032117664843263959995444708399579849429590639700527688524506039194330540766344021658722927359365471531208131570850996345282077272909118671165947361600987244496905245287042445773347359499671014501246507102238326256055920575087555440473148837773665062716036256557281828428115531097485400113651842419585864579740242476677501616738984495271529287325153349016912920420715004336021973062801844457043562818918390680704557172477819046784020950284891094904381879336056088239805757928850192340638147453534860999645952904008382364801484271565779141713347749687089588263522064640828865444828010744776006387835674358288238853852405042058637150471282914559629826448839205139033065016474437754772948258660970582093526483680186931890666359486752769329050952248876771171893235256598408797259812655396384144510367019725969646366711384666381015279992969164046124546493471232689896963399944988089829662695849932689392201660183532421837568247097500551308164539793468092179664231464616256910028766875066254762069272380839437807803012809094942624924161892344880613099224553343127640977725884313880135368706821624661536876955909806813761042192732708505933710504297115749910498866236074961270132147443693460964895800558018378065302011974904539697250520784797949849071867088483088015063706649848548939827226539832198231230691930416056738418622454443737873564534681556160188805649013127263271292697661987753187590855158574590449535908972107915244671306260208758307420678661458459908517519360514258225457202477858144539647314355462567054825883094404113061586692028346497257833615090781485869680410769194152829737968707214653345645872610911431816494873486878058828900838535726260399056175404869717660362480390746215893382930227197985339154771883392103386010286190913224026366403814212499065430912919189086746886807915112977426925649154182214316537150928305134812822807976952795310232941472139754667683305607631859225832047015022736416905457070681353533968882811317916020274495953127196741106283922780076550038065527962806260629756548979236290471291877861795767576200254647648195622656559557367282726954665687535989088871616552776231009742345795750969745605463053810543846518057964792823102219858727065107478591899522841325492922846331835613499437823687190338829792825261834047725437314356981387599186509186872930157455902200680228429411177013510290508196679431325711321391317404984655750416630212951701329351780464928755606421274343116252501895315791420611046072928648561792045064307983943091181310198714492032627387370656700819399897069975477304308910658977059461516178740574321566250703374181386516684806377839676121906067816642661841505849563885592523196818088765849259773497946525410872488344038908061864280360276183540297946178507260143089548609679098688547583560779850304979025443428345377583865690974645495021151193249094488890621787317639215382028223837298187480999079478448999453670492863369115254982483346866129692168454830089600948601441426589626889748595102166231897709194340054664441878471739880150888300255302594533122684775998395940396097295202668031146929323932076353207493730518376916930392168456721546371146959571464363906599632375259955766258865375628408925096577271834558513186667821235347072266066790796303711633206055273399821590670311738539859167686486005680933256376438593091713686075144936005575282853650616085438383798211023204665935946516154345204135671317881568720106724302352160398947956302680361513757010359882075195002717676834138100071862306408195709195547558672487018548386696411752074228032496128986801767158689426828450599189849864724760328277115221383785474225186368528823462212377327096898965892254315321949563826492030831881821494798568179187620656071512524217636353140436630831195907344172727292452427543184640286735524734986103421364572529542173563002951035137794198824380627509904292392670678713738348878810401635651011109594570399739086136337730426887466474526133280726938618395919326367691659720601986941145026853866984589973861453336506510207885410097124698480419154246614593491248145374465829097757348596314119930466913047155835285617590542300503604323270173743312732310175802532815894612981719282841696715927563135061803915491979485646259071821038814609781571581936760429381183901440774429746294440249560196942547222343988025807066177747718585051422823257325762625054624349172625302427613925199366473653446730767900552130977593303371838179127698666391513304991299449965894183088498387846690129373080421466553208397061605053984814950399298768204814806438697215322054887495753646411323146995800272363201491362514715640097382625647057704379980622900320731746749360142798084808391550358398418514209928660670375070976008804014868289657012793806791504069762934823089716668485204772253334080359874327846423831021489701091843733575902813215909885947557789086203568399282876790573579863568093211472111088033484935517056085861523995024548944968663393004106437722123806490266936438247670105610564692066897194681482560964351089084324332549919135814283919728847163889617585380882182657775371029526551319188612151551662419841089721745894260501410600888827290020212186612450292760298073712773360826896342508111852592198155080255961339371752280751161628150013191742985803311168248690418379004315869770774485435801915595743456349777738462399706192431640261270338141923698171997684039506202872006052722526093829050492441736396303763237770082409660341466297133991205380109034818079546535471451295268788769462599243597703362569133130085391120800427612464032876529890465817937182756989969615955012529723421863574330525112168010703533486391499691645054524007930080367755462712284860747821799109257043378594731862314701907845219496627315905294071748037069476149238271179617657504190675074654986732804513571499027042964198594120992966466198233490515563848631568030040200584443844749223683166972605889297798102764972563259081865488521060262215792034864420544869414425552693241662439275735190218632622415122231702069232154958477860815864866097376683321862073523443082647531605488809631219422615488649497624193364568758811156095789575726059937322881200051993262383766239931396141196426160010858658464002390111659656210562191762172902207148885914483459029134803730969593010736266975337702558785248062192767609263217899367134492809679157320261870476337678368382802296953613444354079755682719128667924599973440217238598530082356624010492428027815264512496261666539587321535723638996485832893671407115598101676602960812343083173516559922571073232488278551591554014985387148953421687079555789362020559362488396428067143079853307937932850285611253721688651775725689346584386756121435806789485271899940836786856172318546091775430743068764573801213315143433559836038813124633344661866459338305780911185515319499228001240751869809986050135378088694477709544388720397786009584005674719619243514895604003465681985589505107767569972300208593829521824357526172608638362439060535356330882617872326777761739905003551799660060773751405681574466616616038134570660549267741323847067526690859374160571300971051943839324461721917647157742664468966565978284813579395465350561645291533080338903848696089818101142070703171114450560180295774292803851860213791654045086572622085573782816027593380834014786576032413000976413465746225303646916470240109229900541278404512364274397813749532721341129905014044617418598518129162768492580681177097510219688828357426177407088426329738808504279232956153437745190078287927576898766638508964005140280573673514760924085984199845481370780656917157542907434060883289820473826154327799329152028837691517730331898610686960629343699420990568160359429451675836566491997607555232916605032040147226260903388880064586502168764361625473341610767409300187779341692262123798404343844498116793882791635597408561653282827997413796401257236636939682446802860512728444917044626075668848872603892004725465083324220133687283301152068571017674553099268289819345152029590385753600846478533157574096704820160248679718037252988102876448487412272956667151690788040202733557412801937422676143676373206115379002312019997841103656522739117393485231321453165057053912413096010666657487885121136463286449843184005367177902786951054635661457036372796269697997559349987510628658931912144653254054968537477985839898366826391375121055237634145410248894226410460952824777523045739296244915313714182485467163884693016047836064698162007939204185831701104068077014795437546254517313570902831099369633125678577902206000175378775239979199891834799087870473968838190054347835428957379341657411015587005257113146452046669339904766178765640730848854112355307933013545372652368706376431810972178077152401531898061553926695392415207384286586089407959549716244114651040513337414198457646811979095153033575616639115509111043547111560149149465388769317197037735057543902674965042667961517604419301520412715020471208785656684602249911953995193666894584824316112584439580497902899211152185608466701077158433137983145581679135492533605554810457657726036370628917656432746794188441138672303315773719667060603052531469951541785269326486409229625471130802435756038778880045037708943591366865152206106258858334379631697787482858405887231352936638823023495097784630995294376099347980349162145471378458190695102179066237121480710532024840260669069546279223276821324016034701130066809791615627059825499012157845851169824995243997935934556823351411241898934837750886727368674275659859661278716539755919980964976383796748843996317284764466875080540644422097803767130222308117374303773981586035423360663084930102358859659756406579572939011413012748015854068506132060115411804495023554929952802157730354285038064278967736434494800306661664458871276208492576156534154669327383588446233128144796812727590147293451554509360945737237051838218729008457028069444500026265851751958688212426513858194333791366841524737523448332340503668851842133653760774298680213436451380730517964115180916008810545804264364541923721538500002299201775003487217111175102286988304245059169137337165680582691846682600392705383934641070197446623629653413147369080160993061421609659099339990500325962122373340034536299943360661324679719674801665917399579143084331130239934598595896206480049371505462063790665609302199034391742221348739563387458035710318293702680966322857707970565443873141338357172347524022367713025245143348469255967970381084858032037125242300324322364500817172560236001517884559040481982668098575738944893872036478995324412119122342176775888951710524323480089400137806078727572897027579945780777087865780509629943979321331790245292831470799665887737074093139744426085100708316240453860460498394834832122925832890472403357674877602075376787165020892474303861371647419056174935905898732059833789962687567477958693611518921440047957612268304540778488171751348632023039580771267833434561792725816584762642805512148502797480970335411041704296030646599936196727579001352477480490748506902942687980596755437362534856930483907407775068602039796578183956470936664127232239867388135814807887273256699500371872838605778627797894739218862480260687416110466257473897264298317872881200877279110741056150610710997886968189556666949393477574846480160826026193150375819912799502284634887865006761978500320092884668832378118920464475792523527552408298310075739316750261723631014826536477378580120052097578188939710186713256182895875009662213220785514682764200244616390199075989445745163977941592310797128764796055253038148381419462714071179953375915589397426117958660380244226110298200430026884608963894942242167245506483939438230898967320088821770520609201382544768397974570328507268806663961275784028674690378630987059896569855464523146101801951365865025803170294504736353536993132905301088761280664921942111634386295287149784650307635467642371187675823604461610629235219208761286241266506134204023967219744274121751674191067884821149108723544878058368660510017948134233076348920053380248114714966629344613558741671016745907437841241476676950027924556017453437568851702879429294226047028045300184626354707366438407098084005868016824162747516410035821009758842677136427892172990498764861764080905603526337144479247218548888561011524831193453076645326176309208152856032440756958265172250981488948668473517451323547568932509657596814390480791045009098291149036833148260385583587774386225789902569746666090053815101928293217159436107738663173722069178880593436994444003674529533854844530817623932709075928670245370130118228482770815136770511967991073540562118310261941012357578987679632598830359226596140190135899527967342411100968668583904691644691261536543724295095283067413909333166760465867536368545971327419457394974000468068676037975346976080768904217990316702846762439794981516305413185967773604455850722451714502315034383539734973082796745804417665100446743232932691155770409073120144756719335459369183981938039188370495656312912653534654226318672677070254382542261580355567934516813704329003167672817694722929690980685611384525708244783096003393044348122665553132738441495007638127707371727571922653887508191266438590303940883909703729186605924699829095173702825528745973954921155564272729625236296308095741924666956661025184019483632739385878153886600716488937233266217040671651930575746714854920389745952165732543407904522228467774054876811788233548736631451053460990400083291627328774652128829147897297856311687088877717755233911021635409068487826730614893350176168390133167109065542136516263311654265926592321727163084264717026568179758201275421516710393133772085302254752215247025361397127642716404658394028964885293818406566164055433909870393803575336872303272584425216331051241535300321043085316892506552364803988412158443560029749960270395050193308566809574482500937233713959861761854282846225047163669152053034873213576029335527277873675499560112443512760634048947814215672651721429067464570567664478988536900599454327636690724912359518806150672545595237492932749641170547454548222692446213914540297302194656451098413800768422149177038769510340387789823892264694882703302908238057657851854570548223571994389571673831371713814486547684947834506669417461360770071257774241273473686106425075515570436376604459553918514302251113715459873765974655812111295107375090890705636122347162461271873213076646142310542123954975374634219584604155949418238675348132796707382559476588306203234524020213889745329337790271721582351160599729581060620773070734908141320369121766364365968032400903921289060368394029097584875272025200717486552725456428758266344566912905930999283766532687933532407971029963658660717621249340687322508451770641933100354969809114522075830122940271894848605845071384109001560934939268741983806396703227160961595370515089149554560162731643252482247454050590915308714917398549183866559050215937711693698575172459943434151590710648562540416735866243850495734262550569884421435053229281293982018862713338097721252364571480484607371073445602607013870091429792294683678255951872371538573573722741238644976909201441187478162861014358895246333324625485414952414219121736529484331789773623323344431375194145859894553402959241164820272595894135924160248168032139517947792960575658507958508330292727252805801314644653340723353507738823999069749768417455143277583008623507578689831320877091967078540458205572362188009440559847778179910539440289156273820547153172074369647996158135226688581635406135636807137169153287365184819024971017651747265551863077731882030474321948064646447698228996707377371689385122059798020635719031997104790106431826941601191759432357045034680241887149434315805010899479959615932780751132460394266172584086496171802059753350516475170858002164607984346026469236718230494192093180649958250705469994447549957025557002174097950648353837282627328564182450934749827684051497935522339480568335983843273582850607683348454921497258813062839205934553521877250279615984207741117575695095836906183530920722173534148024234414129107303361992053214415346638290883307833605186921942452458649411717066626940739874467858615724879028249630641141270311410635529447339648857935867918706670560367995421913385725199165853798538957555832666833806338135008620004796875449350267495186295615629033905823535442685262164405132843361946399536095712925251760224250248966131866312224513139276985622771636980630971529819413742641458642305709999067911435693462719670068583986466668743743634138122369987224887556220897338319361670853800729500441116068411731217334906298435432855405951337196147528724844428997006946909723888628278285189522516360947206156437200646353029267326975240538306579871342629076661972248275826067134089525957814208268693289421298709834044788525005818724479681985088064826783167136273589828152051425915042157821056690784835216304398866932118358387829575925261732463265119492504510812537978715941376856387670545060492411799647203336948005727108184657299765955830949259896045824856480717209856899882555454601851283436844969575157897611197121940518303733742784977272776362482308596707962566968423269016122758304275404394032775566127405270658327487501062291283051443906016939203717775979675940411060168056895964550319871297958567273521082044901844814303060474267720357431835082726129957956889952789467536178776710834073778618117784016035975590564834968024228297635145441350110392512090372658781246369631522447802677256362579639309741981964822009912043298287899374146915251051047223513777753041068786985783854509825554016346944016830136871405681383354196406101264236138436225011874590330889936586196011506637711865809533562415776224172410059634659358681636870579432361936422039190545076573045457108901600818033669311879247753144263954880283728454533034929192599568321859054455368301889212922810849164862588949456564563961936531939984156999964617929439139320140296431189523609703364425447144058651061164987006572943830864705942848701317825481284787654462716774605164336746443972025737380892222162357095557830813755574493929532412248473666338417937645206203177358709064638563082987172116831904555076111106335493055672414832372540466695776129569673490505354656775736783731820440498062910348174232330064399294053761712791334164761373604223970411434913633185481602233467483946257611295507482983472158159884774973368949842712234283872649478923122166139956943137678865101195395060894334737331748810124063572590526452282160135829540056368973062391323581126492470670907958854833636591550326761170872406625960380829549481509929953189815262168176099980568739046875634454221805949969716718880285112925613167045158655390812442364656233924128839215740107765125384255957912884063333549106127096360056280468968348580028389480913475720793067357773656361669900744098104335707372211795068970643179834838897642454561370982655205038076191550976310778470486288411152263112360818240527296348012734392738524088347985956725595730100908072714307041901655016146063530980692670226214415511063051013939425112432443173130130571336564765206074800184856920525448421072686375436212514072134677135673761742642866408622058281338236296873855481651501547180206246459514065975783602406666193873845046352914168688820459028921062454524613256287993010025689977847933111407688167501651873294750757533472673191679982542228346530463590414016251010509638117383537457963132529275795266680738941074519948610573566642299957294562779606085343207670329435715045222692799845452002867215470945874943027801221065608008853243032284221731020516236917875546694298771200686161892466037766147637803082858263997330979463697935146678524013934903484802571017293691196365327991699951277309667668831684452423841516169614212441217508258718742831298900305308784539764068809524771246746180696885173347584152906792610769628013528361368719888461102812399912281381291156445357141355409812043775711567340582566824088982560176925400785064359552823672867711669086495305892025899379189242182624787061707680834059330275639836232013173591089751255095427506733089982140526879426664507085942431173528185565454489380696049891183976540584929441695623416326427318952156282565616230687742268884333841354295336536148570222272421744316706911463584909888276509588059076295945777484903448787352442625139218156031864921572335447783765089148432061499080628499402237737341176476328262492955242386757478680943002064299716635803256311393790692953631429260816536568695140976429025238542459928319651235049400921758694027585318737941388812280018154471780693918633474958209480047600453416630163754651635753838350541676419172445676431553720743825102844471408335318131765727406986439307721268081421496995326642228052415735363410345242337833040830726742798395392182230058656723349830978183476777520427610249295260678789654022471756139772236805915398469960879388279364185383083544136855816287515247318434893047994755754486172209851323952304331060002874412230424748053193551508007316809616276715178011329140062613255560233600829376480980333297285010999300432519121453169037954221013943260320150269330468822925612350281972979487931396125307674237587030628772407022413655537375287585596780367432862544933720593318237410870375963126192203704092884594312382248775437219359335810372742129684429232633990339648325093171697135807391642035173703446059527373491210838332553954925079457144039404647441686857990962130364004450317812953948029043989091865888888639911813624747268878456770563943107733380921704270122772139670825655833938433358285474086161477390819458313671976974293303099071799434803521575278329480525582490375127683342524420190553722142951528008279293675432030325705625755116041846899010794988596794351045220705743851851106355542452501802883890338988069527856384081866902103382226824469534653151555683428805543347607677522265190202709990500564196564615268145852831307055923518490558968428282052037009438669391726120517831145406173128301824503180922438621574763633095959003111546011206779644887364230217736424065738299344543100810137914623894406811708659045195388991224662894404484775807380866181295089014860841339062228606041587087698306653399799014973292254842605605691615634677428080330989975629300572585398061577222511301029575343580607662466201895577017183711465864674177401858758768375490548689861280956682534745717233955747074645434621022332388942780845079796642060188829284817509899494827985466914277251324774611908945756162972066550306323562509106101494171434206378785709490906126779436418512249302518926821955847430928028962389381033311106242366481368559418756280984621006530669332570379104633671039333908618298550129356756239228900044977488855542798173920819514926779433378292760652636893973972932732808699693108807097958460136348265645914378067934128432977051201108172997959110392783217085907570346850507029836369440138472663991926011417638932517367471779145323334113033543974883104288808820319975367024358838097712269799018715782226636663075316022829701408330377388937948578256400665169420395678224661654399014895260633855600958427387568007103745801921525164323580940393099597338957664768979449238496131507395701889983855211928350009813855631828581750472829422092012363625090268997354056193863900291714368564072398349609507304293003834878547965566486957268259019764862597229865498122441079961930233526083829859170650825552291429511026338724656424736424598036754847066789499367219107972951819695719899444121364070035169325726342443167128477337390195710062172977471124643640538798105887096040211073730395748868233327244437163188345466463199675690557988549567770642055865999745561542588571625303002813604980197407463822735131560972193128489928563831311132939725613505362937351588880581602022054523143608768612658896695620519912759136412193183545054688243368248929604983639842185367516121271991202698361193883869555463528980469395690531242488962208150464446876575132651366687529621485238519911491407894364868632755296508418267912944300886796807774239906522118240788553751935280313785852700373962696705681177970587415336967537870866681649504433980327548292971706655013918682350272268765223167746879040814763841374181568067382394349151577213282845096447224223448045054686241776078495709262854066761410186163341568813370753118287714811384133346145398840652483378920319232933009679998310124597095370823944316514683664193049674768095471880488756156363729531885882441954935405782199190541920973177277902469385177421751953340978512926490468763030280333990031537232861518394242635774086935735886802405014883913196885240590379676252172577703646290247978151041451063863084771975093459225153572894913480534846124021769356781487570594808308750916092664853049508343731737454042556110541177048545254129376047193657824928563585924748437547704104740646407279857583655019804857975300181430317955585874752873524834645335869934495103201513789481073437098544834304058469432917235374455540927434262074827452696989864788894225131789148134670146322098028130492535274177077845109930636032963840097681842140491266913172639810580864452123006732917724446082569116218897096792513986144170589449439471632059704674629072906269192354369200605272409082124921401124033239767231786178969221118077786996104241357157796950124725387015404246732751247395515917933039139181500325811171763590227921967690941651775831180628961553504206565509197704070849545260932611775553915692065593147762150390400337651127257581180049153807909017477740332080777432833137140364874118037138341259447177586355201872389985526529779245429111923983964001345327594917724620433869131728538372379311831295123430152242060034917578745072973515669185215687020612429754096998879065371340739407043527825346820438668661214485144991710937858261693501199860916627679337480710277452632339782839848370172565273930397479175831621344615706119811121055788726734896136827662305657958195728799578749070021034438600573719400715847379805112776605254130344700745837014146620663998603627411274461377394275324014151327453452107365403455319659253297426673429998178515808198380780348837402098222480696248197558437880830217351569558503959198124170785180308321599376239542761840815751043954551193782046253994326376539393222871063375547108085626570166173178779389035995718571737567721939990096874096730680698475634344263919181909246934419685091354680255152713298497746937835835058436960745856318613263801778167255855819221211339192521662720774243904435771914200413829039968526142876985064226340598110989055137501838950078601906680096951413404131509545070827273695705111511947628872618282723457104134971391861567431184146851081511004673105341127897624957921983014346710700051686622399493132554009082861122993920032275799442551888163847921605080229256803735651360591576433780569268814230213949411705545169307825541327122830799963771003169161784513663406003819785281319270265747333185241959187588871628376587347993383483193960151400859068820405869830346057408960356091259545496223868353240351246838307355160058135721154669658058516390924855422766946947212552822253703751766060176419259267366131071407549815337493599874497550467394907415810678001770667092548036524010500885526897053352596964911033958010208076720557839942224642354367754746100617131678917656521261684588464830268374079766164775991259541003658667976169939573783624264147995125814360592988972379758971554678521277152426587037697230433975434929732133578918090485080196970143878155971697705411729199840897378665910200658701643157991366782671546357829106368758128523307401901769228652283893395816878085198901275527138120921670044854062481812593042554948675054912364408389773503198737858607817628047740366995345528599060103644376395719275167718639472110808962292656005789458180462558034606765278192984836949188216942268749517647954135398626891168992052346811400013966924048720779551687918078380156043907832264181290670336583446030541210018208786809585026043418347895373671020533463473689300038515716788689119383868102587797550133808757769810185600292459792917132631397975050992916582032341599864235960318120427811676640258874847057095911921146798852409498976464828428152168965442895199928611515607825338586703284967535257977603704947022577096320029661956109347090505766392497238192328870160791266178681717069236961748988677851244860796992653713683229273909838427896503420351058553342095200773366570320902219991444102503477327387781194529488197116187373454070006216059829397515372526618268667701382989995709645094860436176104519326540632389254017718944666980008941547854353351629009472150367840610425550959558184709656552533940231329549266087894724759072624823529731738965343927945738933385555854586008874319040856134233676252085206484825930679760828117372506561340982551524089223544449236652355274539826499356262695135553225237545353854303741472066289672865709446952904106158205991692545561530609993350721395501222866390637357231881492629550356527431237842801464663566820119050262561790855185927880833194976825525872763855967571323566938276175037741706946296938015259041567394046015379635891771713669283784934466325343493846762682868206292756812844995979975742672730246166545198301299293113803420354193331151829394579754219132447512562055533365895128259166104934478976833153800999297051088640483147354136423436839218526020162698658534354498038205289049000935977414763823507254172139828199449664695690268101689909175617149588782652459807469312475412920851222086383543170162697982845694745523765883560260961418035833860623799945213710739641969900277288258661130503769958993949749015988733878936505552806817101611153228975098041710082932823495984624536650089355097990444857679407929045738823745676752646340115940961528522361624280417369915874934840847098166139806044728425527031892934888524774614684953934701336065444380006385656897638303091787836412885598609611963004503015684247231205405611747110998263116779453755049644464786570300693854934841348719177067305288938200193685951514804486464770530134657218416799736209765248317974481268146569267417691081351014540986776286673198605508235142698008152433624236877504979622129125898998576781221470851072515405993889379586284947661815364316964366764771429038572686486194547415493535884827552133808806836466057894662188245796645102075695038971743098895685493479370493351825687039479133772430288274091432827164276485353929529936416001135659184732831788119938720667087256733929415682778761118336094077573230145419755913047901266320222622525284261993696064659713198815259689672479074261143894052790742105637558777486424336451721737526623176174148152700025653506882418608342861375231802931781454533298726355695988723855044056802453378021480876653584937458597730802068275613512293828081605204531177730550074449799073949101205145912097105159336681799965582301821295055286618884131933399077964242190141330541035033685351205634508164963892511900155751481817678121940681976162638542968894389742939212217633380873651478371529026126220011808840638395136156010427892693167171944338916972974960141343469734168443047416213872464613437183795136389223709781591942557766147720228904832633193811044700937112156256628733241239247836084732680928915617818406940391266998494395497108060289436897979359845666909998789877829662449656401732707272409542516366356363453764945117354546968302738332401596241456972651501800237468211757984977876832080900057445850572368359546174941308262567949238124459836002992574780051385986253124280716024006748528041235484949705815003663909788970619226882494033152154553119990612320672209664898617957253902318418360844271403304738873939275632827240639192816647705554244049850461769378338072921704854979320527998491450844744460677583955028491420544995590181521597183525228611614902617999290877820736953319341890026240248152705872593703755808791060132355535720511734230348866368902363883590997389494861114814357481531524293306446649571041227722627415876854324728982595023922343304123631919929484374228857650667962165913731335826401627222457011670104932020442430655274080359026659122445970922130662826515032098881410345808427192467925522578228590465858695311523944393288374386778457215590467248207239594912532328507203580734586611938387422621425300665655707763702079826096367746410911728644635031361089449792823531524513223903313971587352213968084407317371134008718878497129259834498894373751509618676251829406173949091693128247808730748527009568945888114709023148076466768601922402328997874422904299553303646241414231204449981093815467785597283645653262374143049155238978055303694572120045674444977700357718068167376404034878600908779674653398689414392469891350289076007105704308887475797777552938822283422788291997294262047418044772839552400433915434505405733843019953074328978092482977577786210464167913645078552948605282551132610782146116060487839031792657270829764759168928709557813575846756366473058227085617136449158952997141588549762357866305465541200918268143029384021453809213681587118488987553941328040333443083817347329144094448302427738344291105976297380057165540324590991945939599543644832834929834216046970906976762171534694192683677468402271608719177021286383333641400162854464636744866077862115187453801899465314796353522872606071342767091426605492292181240528568559408944117578436676363348375429206531713139524184372132351991416949045289270585321003772348091999965170624690373513386930034764127928399702701765058805134031503899501046880521224335270468152219325834935512100433523223538356122324672209894365663424548028092486131540037725075809087074051867603267444192085671306940623770537041560184090784684608086819368609221702629523429122140457580943170404580037514170557734149753903289639778288196181350328853340666226736832815776384959072504215515132889456994846296467312722692608270694645840499379753077402907747905094424043313066884812182407212239356571350750565471150629960442995720186655417088841113275086486761323178585444177332855338496358909530648189451462169239763014275643083366915304337706407377520646285513490884094100192808544566137292624860075398386541110301578730258512471177106652344638918612333423104962937228198481912763689309580140896092452316957896603197739799359774795637547037793180647085167538637736316790626211576629901868621532201083929243063846251338247435231575302860667236477066924538223673926859518617682328263445442651019291854857923936144031704861805134685884018275622215813664950686461604453959352243391887100910693338278254809312449619346199523785516223763464173299189358271470578100943320024615352760959768188117308648594020722801906921758609732724214702263555133753469877737152416910742611130432456752025070836332477429150807528964116759241177147100044562298533389260758271082274599053483982203932619343043801058628570586716696039199244688866349011784453199199636154669902067618337317240714150896358748718951622091847558532644612058403163223261945693696572537033387922499220336999435302505830513857238815677293132714899824262586017342517014697631597103894290420127503830669871815289607927108932458351797025636215920058068360765029656467193885218503149393308386148906051709346358805825235661352045407118499840543200189210265370189982227834672722996279701692456839740806105549998026611382085069999352034053627227305215934494471865570947611630998791966207332378261400995218425074745922322634096312216370118644353846520136082277058649532518526050180573818952571924499649385057652046184381317694842623767146148338694084995547675412873020463528454601106161160163367810663929749463073787400770534015875097567960126639783407045946631916594586848752612737449354961055372219184430719787986389331040312831235018051244645379527696076620293933029484368560366682071270693255082401522281021907241369641358293495891291657717551191399415972080448892992737325585486968163638639906981688532546663556906692310625282241689125876960543353031167813850483577592342965170002770270944905152845683328262753053567396438437486820889301148876080801796364441516152162204047286284766604748184012344873558095010601580445287231784711441494049867994538452541720962357220663797695747944135177903701006920596384687289813304133810710604747206817449302754390414918692767845549660195189760431549507715737600825140681845242888949031007680734244352195756543203666195278056234401199297349741544200888565258405820601690517841095336556562296908448517526228781906489929846397622725367990735690119405537663810578672883702766905311688302687886077712655424962854910954362967472998327977006628840129120396373699597387095608675030224324762545744967124930897305275096194563349793676506717010589280069367879593913856357756368071975895310351464821400805873504617834346884167112745684589280207529976863160631665030262692439518748467371345942490742311319087244301661316854388464722368460189798519360580042865803511873999094710338608899800517998265162702825928972181995708271858905373125372214804856271022924752162942137002997846047452025455120936430736536758407123824059895467200926865048818556286696009467478990794479277867569727369270259652195479268787611807781671456993193532373412495708515100822831461131460526689505255582441728952112588114865436167219831214055170420466038062105636561218013795340858694466224227072385795601048502647403566352937074308646335706924351741993745762608595635943662502254483446247315915461542538178225651839829906757046765438666775977434568159755356723469949847880250170508536815798347417504028328015346981459012945694290901586869814112377746077189663566780108390913908862634115988263233768149553483228996028226381434377334872019159055251549048814466459689282078325906466607164167301136375412001244119352032501365340517936240537685644534854608455345041107803173511978933306933272701830524531349095570522550641284540869466159607269156032407407830320439390608646202358664222036725303561854460318960305001867252728973163651217715383660454401741971857267159551056506096828898398725679495687684282496897984164904337689879905335933154288129066595904967240680246216106770860534917899876166593275591292177656809715614747049165225785234959003657302898912077510399203415463873284382788099948499693392952261192430393697612760580377800408543330452139366317665039243012605294969979103443599893613592237788877319525638165186303447906618813198178274621313944487458373347521273262186143656324320064734589108469555897301991166294558658083717251971428371458025049798631353733260520447382757039503276841732854925568409022769600464132823317386459823700363347791427246662703921479073944173260077629370594308462723625785130029492316348044870897397487051935211394266177124720815333639109625558914134280125252303854612252347307794607822085793223947058022926839007351216982645481487885016470155835438167207397735015139708630535686741793455114132089479500391818814630613530297706428277212149672910664967430184485077989723710723318160569049119358504244972573753108302404584326345426529123864986347152987279849126880259934606286512551826090145436526526894726431773218440168417281802387243148944953001016348662221362784753970018263764736687736479043187938692334269628746551383556194815230655490408577548696751805031205906386246461129805066795704085863131615749484469367198553669711465643470183571728514431653825560338751233524359747510701664451323964450324425092859536879526794519253056666911187981332952732401541161418760758863135821819847378891752542934654299156782676089535944477117100488652816265057420042451124465733797730758157328769496450580595298804966398452734948861963582128433151718431646776811545674275723335174709827450362855553364141650864029353502297957311696779662387229087209876088081006403746593869958662352167356022135885758524836287407752519160181755170317462156591214456022661523637898195357081586173041568444184386168532000248478468224276258304135230487859277079916506620967161923052042814578780141086337488919321811529801525075853453357266665818982898133496109745303413901253883187979581032206931435738432798489293532551369004209005945145740196550720707612621670341698288310216377910115199924713242548349482990663515485086309581927585924572760897929153864124142660010968366374614943567133022843821093136806927256675695828106848906988815529928983658434713952759673161910331279295960062882909582318191516122940743819806401750040519993788380654166661151491945553173425542773190673266152319400541314896437123923209052533676225252001990324565664763290732695472737148530079606952576617414318711199430286214021747221034150911601029252524024773800219466499657382514997220970419504853244971428715731669448786889494475114100248810444598452920642563648595706174311058854859239017663662847317920166239357610789206998644739874748733578566658766848561297579198140061003735170226565121387267691406335310080707812807464693597078072380574515894008101886011776329869499595619752887070775748100654291608115301504723071236721176719675733556570393369624789777816091762157753453646173962987698750805952678486233203916909787604154305747008247119042383223767036228635953644909878886438635101181540952691677400530334655288439893194214149747031162818678724394725023322690983572028665548628077664851162656118744430009053781108956956969404769625880681872622382601996072767261791797045883368973698966269104403378693980789997815501592809292425909630527888768446875016771923945413101228191887519219419184171455355959634442917772666658483474875555757660738984381606873639495113784490593920427743275553733146593592769577995710501478509232033988849821661745270460452841873562801535248940077332077476828670357099062508545993443022174790658863617994200666926660316770656761699170879290008084123978471198170379230753375690994810996481787642916805066981086756128324951414390528695350336294376074849242398734962908779483253010266269927595807903466046943760879381363716895910801522066905496473595332052356016901649458509641768511134502884079430359085866726169376676772593119591879209136223886565478944420692535050466677341853352664096491976605397117715518481100896782500011048965886968814895832349321659248007270747015801368872001959619864872500616865319685919087726120120726810930687935576118000189125914630863533431566065910911623399179970648500934252413771416383951136406365556624348762458977630519626673536920168871756975042516906284114719653016683571719579930768633622503524714326990284280002713660170158584814173809871583236414303082647486277455768407100673130943229606793166523919264333227905422732816581342472198827836309204753602302085983166819688059497205371316348875956710976253624368676524313387076169159768350622536762830642124389292705473348472536732441288518432861723817311600313996618056404346499253901193479749859233574748019654714049841452603844062923185110515073656961441396775116732694918397545388082897581274928707380772280248131768556291069389095476705342766726292655724508692717607635014160467085854459361532983200473525249884378772529772202628919143716696959061448695265091921322972771924804199374143932201240496273831433538053625052710104045070339163943179636067750776184117147038998090140343006473393853714710880659997702757554339177705166971493449277442298539463556565477312336507727845667137018704875374486413246657519911617929932115128510968138016077816619450313810055507298696925885534090264008036674782670224820738425114320948150475132553318549199389561453041856292788561138358474670102849286449789228282717469426295045474962642906132121891485504116262442511515166717298157200703407439328035108264968435037724442255322893683327051945044931901917076646249299322984149041729350408155936918818621698433513713477309373417436407152640760259773406555770458340973657939430471015350214477190920353804430968810360064752619255688149896235367926938995731627594662098005343034320895089383199755538407014884645533496315789526454793920433639596656843234101570417780440099241198731402995835904929550317677426937498530559976700572177132753499788202057804504050605441609803273274184767144152874589245036213261917126414801117148842220596808697631027795029743117546177055704350434641864661698284805849238788346153016175780232637023768823682699551808685837596371568326852595689638028614864185900839974904013972051627501670642017545171494063151372047009714423572155330808146661730728666052754125264565901684190731489372347327761667452554800599245267364517861552999188134705465846377584242113730148629092372643529623936249260937234871862347756951567623347389425959163156808590755859503273809350029787585227930595666337244764743314417725179974711752548491764672542858902071077040228640905747206412321770637570833019549274646832529332509673237090252257464590255960624047026710183647908875984123637630748363697756603144901528745078463334524109221560032940375920428749293135408340139914064557563362723988862356764044467914600394039259302542092063762681436472093856485287848817273002558048952240913714125025216125615809598009776335925131820143571530633977024876823753505963673705246711551938823895926931234780031027207206387482083592596646541153355888154552086658360945022657670822034600827618535464863634008190583235457613584108454148568002487666580250185284674377316915358945787461223355849177162128807755880474813834255329925725989759892974728411611180010761401340091797728103617182402877050128048178166726657020745339704138573180084006711526535827716577377647979162317020744187835862378546793391657654456445388341758360947727866171770459904544183247472727086495903063060368498163456156833474816739669686303495495783145940180917665626924111504468338592291105093995611919388534241929257713381339895253243144681585161992431148301491723020321367327242150124535551796642715073581112284609729772474627562140696185120545830038671577331966571787301612691846809764014191694923383166244638077505837398485065426174105028528601342206498308386451475516303355416439623472906710346972996215314982813134859183502169860030241209409024545030583907939127911690689796537429243944162868197764773609719454714342141851453294157300478464133269763234098389691269469018243563084823544327744505390562709414097676659711181247396923884565179864976163326094703388652932304065109319001104229308687306401512326167989215846667366640249155547066816448264395559853596956737537930944239283487487303656550370509008224887556874890737481329936063593913808200897840409644138163222026468959723090947643931776328491020213868526710413201797671867444925846547455836298073629330436053679436730183066619890808088633083131513097045676820626340411711979779006127151426459063542211856226922897564728108825163954369774452399212270668291442511831592973093827846744998893905068464110969012138834324440832152982995515678644225096645505991968174663848565803308856791670345034075250864409394814700142039487308733588005208182905383689203360711802889791855552089346776264747029767467532008379393586102361314980752771401428666299309771249006607459339828497428906248321984756538828736441022784321270748314469071959044762160282647574051947037173627060110509174310732212088172311189726071621783458161955898367988159926769752175226633086713132157316854732873702658062408591257272802237155195145646152875600636790366860492893295356940703616928292821937267731074697569942853891379052705322201112588667273247409456213739772890224351500693122407013792243489923078772169649821027286990130524674490095600428564817130247794262887585537478338324752556465554729707378498443278386247841507646480668010517083040639272824565009987444161061685584647796033817538874187335350742083366716118236425897644372593528680977726000589874575197105322565290430733064729008982615753179449130911355992727897135225110621719952275754312401156692267411235617637707112650649071217935317264077391433117387693523328302481424839576075329614548693128662469017401819025068258398740269769884975536003066606912234584011902321765053567880142044356401960944630341764324305885831808429463719784539525114542639726674865098068980652306803784327748097728305897115648277763762219204971198196785539183974542797497447597310487887949349397755274782161456945018010675517427832503485655078554033883865399231593854442168450155923315834980646597085541938797626804434871823851214370044414675191030523290645073124606048287658456713134088385198828998019328662052933707090936090980643673912200495510182498258657011215153298289299694715212760885568334504260949663663572575267081793824311061400061339157382339155520733863706969552761283185298827183880236812203131446911874363004486194168703956347308979776496980380660763625845600831633935084590337450304028308386976477359682833675780877054897241908763036227199689426858956987469023141820705348464174020552570783936223782135978197115086322648641949941519220301342770591810641562242046258043166886914227631278041934840158181017075159622762909789104234380065309556715785667134676683901372345928456339448512287882112955091726902556775012973796455397962200621360565281363070458089938176882542238024786010875664444565173978321154698920481431026410128549674469420110281617197056587099612259626513338826072756887766833086505362846906858764254325634175968705794059544180124567195940592573646017612107248245119781364937154094076530054180072280818616534761958806405514234509380194998190446069264829549439038503259318179464481777967299939058722494906077281178044180909729180856882029513657798237010824239586192787545329848447980826420320299543356969536070662296113511175502676999396703248408111028726078735067714041739903814683089060984154056400056441924105867149281148775246242859421672406750804848550779360726989861541829937336945423767307338109018421504835865708970635790709817987469388437251790339364722852189984051978415286218058881953718473842833427714562405488217190098388094919871513054156112495131153525537366052931304362811730795072560085725121926387376504119614535397178711732895642772610689418974660496846859968969996144008721624831229849753644077072583839325198608968833399035845891848326927241925953074160183582070105477882051308793839554762746179313906507176266445040757186527257646351823491919299749721289482217701295212539878853434330512843453135608174909080431317988860250660905901786619272482975120188633413667198498209387664744665253098311537521662387921719258454090676969256536107043626994198712845866966731054533268905857928537913870162545696967666479829455863344094194365662386823072191596313874218644179769862134517825634920184121610156547021155929638065919795494672587331053934910214687051851151800668514233635685053916656659716899089861715764826124763221731030221471101150916151772021520450030314573676667611590067664002709677239133990000825269998756724156983549129126170680245244595813218345050925263798926143505077404848397394224444304163126283279833335679034665160662201217582110391390713976187629161952659033208570031442548008815081722224955225213330571921462821395943790293028412312578906010092629793659581234018023915057413459745861680119009657525282279264483048479266706002069506925348320286600538709847203750490951114079773921799357864380528575175890495329399170095458160839358080011667173988630710134476936805567184039460280921184158044021295188354720930296086998366351294461126782983681850363444227341248627389675680868524182219892224581199869645443035850820572073623071424030426070253642502617690964089441115436138691030815503088034024748671063176473021965086094441591604728988291096696165527626749911153439591090607146048146321476456656168431345830730322124172697873898942587465306846288359998665339462022833883700729298196946280706666596190680976906939906648555590674482505709194217485703415470244263560239303577645010581501029614046723983241628472532154933048483170372757832125172678269279198802245747042460734193213065197511817530574987521509475428419562154373249266366834383145132539157837276273550185954194352117840737047066939263123706733833947131931211608437763527996552715695416084426012330318790245003582271842356870432428467291339262799033861249384051437903962786244101428336352379154009937662422736482743429619228551429792300486489886963499210199793855628658909781090041115346007935041927217281126841459774021807834498436371038098305003779930835550000187144201490763194384485235992717603092320104928670590617415293396818181079039780655411738494100817125223159219328833848511034638464579340277888894196355675071223695475375354053763424339274040840556528327734850461488436251880291993623300418342052286443828719005010605290140725797709513597158839136128515240272984026953813391538681905495497731745416212325447229395084233552324202065117438898396399702000601572549026044536476878120261730470970084417941322528945607502604524564742806065719135160056080771728317987707586538142930539556445726581783478076870146098781447375354776659897405775076546312152600490004370440938706246956997068223689662608868628794643823942549143333842482315890771155039116944317644075141061921743883489205867940869494744331390540125719168534276200962500188837114407595104005787172582409662022105356304700924631899017084105762366925370707283123383538773807892772781087926905215729266365530202098113752558772422714142651402615174915103184311047717941454304669739467576156443099928360628815935245647841536794007457199081030154934819123345260893317308343333550710118075890028843974519561733024495468608584841216961437560618788660468190437244678007498563913438593839508743708051362567732485382087595109501588288300081336304646372666589805824019826084529440964086294093937446739235033260636061702893009997174511245855947393911085617180124124958873043696216135638965541419757854145187113324920218632585833754995079522512948739762710774762514162721209061569544442968773744515257702225501574739883342623799552883422810416618791298010091628454135878902479434965516976131186431913784874499569277127097760257926568290801228784288115879752513520426104429903033625788628104648518697314496423286563057623674458528630705118960877937308184811834769983895972420142204555818308370037227604034355374011024198221091952505388809269412439829558685474696554054795551640228042894721755340687186544616026411884483768379455131269099275477102980797247926392179131092128662527785464618532448090911182770770016348890462715731703185617652739131658307964510300438978878326001555611559752686098498851035374220559736005107217936776301303272479498544671612724467261369618946026372898070430780718953486516916550985016807894875139577760703104998060818004930616429307146819048966664780432341902251800709286723182722440807830807730836761626278337078271421130815475248666459335399515656576724450470768187027345312670120419107858293365010026457021548367806871693501634411904270391433603477321908812302727242760025430475688892622829179487733894352854666982545818316005909524955221316072137402820920675442786938989526611864097869682549693964361573364432698521765629379137498297662656333092604389304241092705717741282778007979567683247915868688899337439692291896035805658953555625021520976306914644001178691426614356063173237812659556068996915701870282343473410944778742732710599032119934712859633785146229776745043873267560436700582071635630675891178527817972576754668923946898721752000004332230922347207881994940294836041483040837323753815085106176320222722326319952804613390340668289013947161751544522599032218428227419190734694124289663437645000794237402659613619031169228631728690381480068948241613707025846880885242226191668440907005462034203185547059943645250080056149195147030873648718623181377002694595121828268870522750108647903911786673119657023201575291868121024296247599384797250229739569390078077926654666696474182251012541611518775191030621872418078903363682018510780357064634080800638886579601486608645815746273130423964993533669629592374757378588049569826210509120087197036403033508887737648829326919781934301475266971795444244645072173299188141846008775420642872371470495849698660852047048891394220180390033589031343886068378397757696622976724507371604297467229950125600479451254516432629493165047069886000237628916153047062100129910541887128834954846535035941793599951921314444096172749883646297966134851268747996245427707634491523455514544042851754841918491812250649973193107036505225651698840357606635929345011143392528388486947413113179178757579683244994311726303758748838650829230069011052353956089549585570915036900519388886706480018566989857211434473498337354463218582395920440422513876091972736755441509010188126805225517424832449367432740233526197949758576387017921830676069862324599227147632826987550939876675092901127203962308275180201363596772744300644138308696375504521457791478514219069301090913294951063329626040403677450027119578021551095528170895566565856745164123495340981477816757152167417065403705818495282968971712995156811415131889655465594093928810269046467817081832681694046604623542079136904438474283706685280690722194224977941879026970772880192692071520072226518058431157966496342482562817252413477852220186473574544112579540546590080046884256830178331463890483879621239225001728600649989247739566053042309064763905877775750409544075581156639164903757114374263472229549724876861685792976668579604736252409845099503021615966168707603291992256335218102930628743371040169376683779675065902366997731044771996904671867041482332557549607404248707791250374596905816400741982091869302172675509042483367619336584278776313536875567068209219271997755821612965053674908049868169486766057390895250570979322291026076471606592157355971960894909037065846163922091100650299168229403061832036883401649269587888622974164959308888315994095211532279754119122832869872957094870144104684016648749644564193751282864233390718357645603651817013111096034312130036258594941815760912018724778454034691001002890579450993129239505749232025022666171882101019246870231706735595150110095834136847006859982839681777939400327111805569069276408754527864583649914143028481025157901286972514147336809468018939701489685024222824932382013601465216127343766210481483918031652769585186370018138462914944144058554410395424196613282935310222871712755429317566821698313452467259621106566379396351271931891522151918332168420258441644721506170892468625179774933078189404087547721530935629718139001525647839285513725973863597771044634169066608176429301739296433026098894143066629886862159824905026516906320405470602833663948691180276082039028843985114442922310942669901849351473892381611299733449466843067220806869266292424125705410853677351387608118875140129232966372629833108567006889080675849860008703788070233400776329727968241117924957705090018735743709376552049678161480360049970399728479121923110067652839161996652245947884781706482852369153592252534918566603931418043825604288471139622711447126472492134976034580593975088778494694784820767087677282804147484447914947232628085660163497951275098034251956294847533083714905474350892320846431133953376937108220504350098010356825001474331801876463556736681852595774189412990887642407156630456467318322612994623577411277064840554069643037199622216119815457852235677782027391160416408522766458579691759748844653539123595252817911028553582775069307234965421988664743821013554125213235822334127085428384410310194754618794212087595817581697087648083675547148854294630910820779961679349922726386415407378605629381445685552043159495320799977029026844300738126529679917127245077810424078506568741936293737224643199885449983383851671851220866474382297377403076194928853384961057896709620263983857974588469975441395531231405100016396245399574105264363414774604419020512575634985876903969956000749523115148759043760226346072712395467213433759702948353197211105070784617345125587201591074319564654909031237933837095008066802916155148072651342594922591724359297767493547766763551282888690452906226266813507753547629385298627784411420290563153749601965925682537377050032989762052247095557489308583685275599146877964043579409673408146413994625165724013386939372816409685950507614484608996524991783320488499018221008155553332881054227627870421694259328858740604262983553497544859644914086875085192596678333256485734574891527481015323152549680296952347486614094259394774599871475277910326226151646003049367342452267305662476690519220204057470494531157233002501621645627602060005997956472386844499187411784843753298071299414983605423734561465253052105923633362587173376029556056668230109367756444209828954238817971898557683378193649747745423411496817338386142818232452902948557772816320018191987033531727508809264514611523898054172737976823569097373771360886834388581850563350737265170963110696684365619230672444982099651205115909157256440621598813394993071586619594215626998786074687762233224803747762566499668510466325647041543203159066801359415505844930609191458302123864533917250543900000629906506180139976847758806255965279137213926614363860298088928600588140992194269390461504473842196810687140208756380708978833604476179967211260521478974995213972389581435847662630461876247148901174101799142121200432257839381304321805753880300627275889125225859737025009522039784776799683158114813104250341875418313343912892261326572976532034950059149268629659692291588749432967087593088089697002032855810572161765266575255972290904810433659018488425352238978737131724800370184219111936623851407580983782778320860831531198075203036110050776261884231498709924366890880436193452627306303965613334000959240861789541881022902567735232475276986757095656399764926654782360625098480259544565716946341840159235751625283643344132188754022228418763331086818855797348954929945921778938619471936717223862733128515007029436706039848590558538838466930950434191278100376969967460385554926969184881198952267851438706413147037140282356049163400789420550547600865429483806580769474281967388807173522377704045062588411773853139808598343002268902456711289330491827813482354004912123606076762760939240273582737822009725380753536069176170507419705074356493984898921086123278219060588548085048185339764954484207753282461868708062224153682328529554171571316919669443035564690563333438081679563383251722689837890351170546767658889365219070610057625342205042627114829667329726393185493050017078270555391915717090760590264648451868854780008127617327180108546213240869892799062975891743178374375125451032899042756149913958761786109189716900298951961320137519008485197327377951396154430089118044038512326160868002393858224078309759001213504229968977962644592065339077795515619610161036973086674563270742364503426221336220937302262057690266325484747862011527269067352154689793912201966887040575503738558202006987981418465608804970847089173867054618324455915508242789192032951983421674158480429195857859241017473660549339536202983718491359510396465383715227369526349518146190714472484599917624539706576047816547861857628739221808853444063613649181925403166896565108578172048565209658683232398111308875517311936532764252870066440704432882732845872717918856288537903320388249178228946082874775733962651858586254119120931446684201291482504593187816589629215774003503165263127329038818302655243289295923714563271371040315541396451505922314124878595170006517329349845483714973838187072917160216109046740653605903157746712968770293955120772019545752388159090220525578579063864056360860270666852309222553214901562315585130458155595918125952619478720619291840106389183998578313900889166744743903684759261363020609420105991663068912881918665812648005484198177456250159969672675744446016351368145700009123314427600154098276996445550026382502886552318803416145812772027287833407918466873683218138800088723153594338194059765170486126953250447600802404892388846944038370791560553343628464539815973979168842720904768335151691851800261410964234677350706830974728971021283021614351445450435322523487866103854960296251672635752569122783895665834417066523214669895179744068009847857785997269611151326834261407871197485027804838392406465015768681360703483096226249824658719649949362533664514006232934344837167731727249776968671791175472913876539939570945689715073313027969324359168783723821720058673960642092575323500857590094343872000377750770088800386885061270793952993982552861926023419685922331857006712757686172759221219434634956606713226180207219685723544369153386130133861275576522395063907074791220034340957306699830605840515432181005075111118332526345751275736580220719789057910333483803541366731363274283951707047933300368763305428791418329427856835189762405616978007700832375064958411853862208411486145517658040303210506853400843796192627131618165616198703684886894357982981689095454486336088836768173296965795566044107997213158821118895853393351091544978067465100578461728476530874824599477311283296285193582426610053110374018583759888669208883712764930374769597862537253985824330497721661056362534402840780962752285157854906479025002680276822483763518491976707916600642173299527632231706734654686034322645184399125404840599246877049307531069763133366463309514003294672710317645424562186798811958106839776869724607219725301369521863588752160513120937923927826519944778341504295672480927804727655738545275854682861836878847790645801661222781454168543183269177839543007740698575007109888735855066128101940168393561137973983214905254532580625847726752943398902857083293145360325415806872417860742846301067165576849249370497539418155868082382847563013416189714355406827315342611122370075823696391873444754103634441737897965675182125392386768262825214710499390304434845013546326327066189598141596206420821919249521072502371588805041514944464083276871808503286409858918840919385983518001907523011651986254660664982568211823527778922970972738057655867703702390299886692317212359296518419478416360196774782700437989685897325825999082590815124625805164500140453483751137962262797553515008546180431920589321834425580521854673361240136233862456215644053134730593400414468645217619463488600130999050365016653817960981228084306252603821951246595652746955620215344005472232893986696898496656745019697703715808485508287409228227403174813836910205735107340310333551907221272478269129580066363972420744858824510077834952379122739378369277221012909480894015835857102254874514852385167787960300487518900005359733755389453359338627829492822409722621299950250764454037476256667328409939461091489768846855148710771689751555947481115999031264465342490004963466460104854377560392349027741690949834614426345128675620467405154743831955126955927413482099748717820682128012725524780560254903858308209619093155097974679553170084447978146039190433158774449650226634809504766592874162032384058951102311520817063303083071523891101244353336099430375373572139891776183466203422213221136129182709306091833577341773279890884926112180907831453104644733012051676025930691984820613637645469607934323495639930562818565250130542332362981082015319707061412811505735121607997291994143906490199423634515173801022698548703305113535555401006583859244762987215924495377324706220751710536915122833867749207159344575614646915361694853688457951305199380932437694063371996261685521349172367079349190299988304232295718946032823799781352832615269543541183404253375178133894864225183570685055821333895700425918717104065557795300697741980647519215122629067374169940478851360995587364505727458063449174355250154578118510015634047887418697741848624374975532031374571529549801437776224132482144540905717236872863072368266156969534530378551124961852580213214035002347175613463732402831303232147182836650790810703560161148614853690577684668955000727317114519291526001738186234435704458989765528040367589771240647797108661705468555586122025234653239165213013557080754160245917809782075982040375287640833493845782629564716890580777093841565972921798363780784875950077654634613350051199841331979523043104802186603954988575319679358887812085865708413747110042386242456203167755613227893411968439678483005035344049811996600767299648967381311003884700803543484545974222133858406129702212651659518232322515437874212862161978161368160069622595670246669622038149730987497086140260723686632673783884220433703305834960269005048310652263264785186126535686595179389981946463914723135886988733055744473568100825636427421844454695033742940541063280961849552634088762345069391022040711211310611850195021838950253837443042909211550013982907410076212528103504797004313225666405687132221924634524127181863262125322292217544806548095712239650013797663287368876700187960094376502285227701868916558567689400795929646155064788384854547662175300818301598937566551087361642807280091686098642792697609618932719941055947138122583794734986221660485683818527638246328485414906178870971956110426788377755375780355228883779842680038752235964263278624976331104580539785838365763109952090089537453503421350220605787494437297018450618834801625382700218659459649320471583458016133863818909098998297776230424389046318725911012399097968947203227285038682520375492889928791631234339498236641267695774334576963656701216088760022537534576588362743640953271856380973278677642156646468448698764696487160608993054303722835031381619806956774450195808313955618481029800033587111390826887054780135855408744451232722685825070606174037660351387626786724631629906453491488202272511113001649058791757440602591631281276312748270930307453104231425289768525948540297768026171994820010971289163656591720478075289652748053374228200484687786549047066516841277570374017254344769549021679270708287589944311120896189728710408762475683191457129620721740118130939963204830802392312272279341730367805985939542250003445287228792293629971317784183336360856709441316693523579953068705487049996328656051075514216064996354189825672673626625642724197188813813913458378444747800457135328537761496460783042073949609532641834459435788537091253900178726986217896569618475988115266147145614146025795840454975214925075549793823078487408337912668127311624700282289458905109843420959916752151305566274119750465940322742801945538901984029372567786620680069231595480686181162130769721355190745285409450081620844027124995159183156380457388961816935322155799077694459841773868274608383256249741788763623094912412487700400295343576653604802887830722636962983861533636723162379582238469155063273242917311367782704260190071801918187814352666925144299979568497368745096561796462354931784801101542092322075241138091275576810644093389875761029429503158667822042436750654043216177694095466596648356881567429755905395215547425328092928606677201430469978569268889888114656032086098358440753732022466304931957179746626365118206061733606071373920033417603130564192167736351450755013663616033261695743300416238222987515264557515906727874799013128081571551485945027366050498744710881703748055152787750740106302488302663562225476913073591294408537235661129062922899135603797335610112109726486642847416491177515791630958212189196634881208058294129636447146090014319953867902906353556818382190905621494506883046367107991588359913799260592063581881084166323123554083710784236856384023662603318450491331548376833646917352619906558844997739684258159888285077112800089855333610675138609971611554514043565956665494256822716666278038134859692331301139005510824721366712809105647022524325099930836444929937869757765084866034855570774980957396227460187207212730542677266714868457568639531318986184949696740032507733653197129904965234421262811820543747570244812624147331148352951320557525350145533093294843305597325715559247198231353149517965105506335452826499319586581487001531723919708605201700583383625987963105486334493547874739177881758087582857968315554463247115354553621587032321677515067955499846203855858277755354424786568654555670282464739183483760478574127339515310752350146126468775451321295214112604698435712925172002467806449931195411058853944806367208711759727932016677644555630973715314030094876146981952106121859784735389712666549536675297907269846440252425192514127915127781836122297157737186564621388236805391837092817968699448161478089299621476457309251269974577166583012733591522044124937557467440882731347833187436124326503885949155337455297266893881246463773769292755042450825101033263819889600317653393374285721987900304605769022724465968156343845566916575356636722716274011422152502734175256842165169773284021267696192587243853989413861639908073356469286890786832893300943114251994414326163811193741117728405340716940948107749651406087458162674066248947792090540673251258615946061227359372136909836033574277371691443940968832030043231454793342700272758596300837989780243872801581249743343693354183899429080437631513756593599348005436440927071770377049286473204581529522790346286479534032957637642351266439102177846028776188754241520101909893054045317121239267546370107849736436223424977845673061126734528248881133273460341821521707262537451640492737234125078492061630976603586411941513386694659903331639836783236347716524495480351225746807702268335840345833434225240557357222180336588486014621513200463462130236608903457927420793228245902529286755491773166038050060257287811095071255234366806630357070352538477070043683437352785757956541515085707606890260334735681152594521479460633453211636710554537704127787378791658024708010832342714923142951316068961079728988570425087234978442069493394984960341290080839266636853118640225958581061838665899066353504659276776370499610336664302027703978535517710466735364555751162305030623034499844287485616354768910415798396253743344056846911722051195824503567217693998762649242209069340778128813047651916078889160752918099081684798216995643677134153582509827314127864681951014398556774447282881208069165849250922662653232252085529255809797764851378550153951376061177118171254759350980011747361558312703598773362157236269177379203988525986004990841120972997915621276383792904970622030200800704308921697976994669080008355265257484624012380773246228784176467048340101107844015072346419419533626716612836342198710864888921614520203913469489185980074230324565486700759374603565483040939426486276926640837512379635983511161692466157920873559300540942448161302285176082996167121719212000983471436913855864980222005267325458650019095449669950820463851652094251384917376985895497616457469376389768026596275753269554825800285402267782626872393204639696975324465658727450129153500870920754228228150491689504713376674776882983339559370816092780121789177212856216980106141398641593992705275724554341883783900471258846000454043195409614706992796804659486730014274899612787065623136449269932448832766047834829994896552821811864350054401585465041862855467451649986864458607950081140108378534087823944501752994205543005442709963874401202682397327053631925865396971091769450491436047224708246678261818813583464582310383441146976279032918226493309676419189113515740046378274158150938272335052461283550912991275265997593377131594776375884840413206172013319403258856648853694748954765052062431224446371977471910377127557551520363540373116643181321744312414474016290816320236177977453230805023487365584136436824959088351554953248638488776743310478292702001630694208017149214688972012761672784276386247868588698103079341827262492815893497970957505520719180616620708543285438090717244611121123616150890934979372219642313532638546994922259406089603786122437419267045043559954930355465495041207877880350644075335968001897066773283632399184909548343803780255795354142931587906089778545576296957151777965200972900393389881603150804765258238156234225692179672677434342129708869244687053815386918554005980506486951938459191035110272192634269794721038021869590946467576659083368251147833556589206635041419143527051223548254070609180686788744184585192893872561254343785565598530075160114128641233389236282302487705681888298259097467396778481606547855348851898968108682081029591749661516534439062127664843879487978788074263253291188969328720125788046527106180617160075554509314113833062601941285762793183027859621163779184634887737149487734543732032404035597665104503921440798129576827185941094190247975073911256658051792741626447141752264153460358146120486632148173342886769263128965757979077155936446729124269080395277256598456596539259603927308268664870370825441445405790192444118884333130596704489189914601762643814758730507462287898484708718223099854898335801215233250700682741575537460704398393187315618619317717694802127231878889431039061919907048051333287354753051187919031120515707478059426674955232121148006122734483565083282358840840370753174546946777779776749260674101413901468600824688506044946057680698988553404944118384934023109859269708056639239323794175313606694519780167342252475925691832082892663661048695727495780924931753224870445252150439011045702672122878710926732158908468401168947622208236773148514918147517832789909812266739376768206621945004881440356346748185014333739980819539061327878302145133490379211395453480075411328096768418685986093441569512995680561333822131227191031496707140040433449272821950485858444042002942776327431452527762188510298859626479918265731286665732024619757737738375041369007227540227721683656563046496686527447099371821903130647389067382964734441108899647022707777456152582498294534531160158689451628702924006362362401988083332128389374196447051234247092096314017646366406424888659779191111972566758106093402363786700646875098398335021027572830227664590099076098667833685758614689961440915655405805751471957204531826844304392213838520173116807647491543735619344621041691754348022679443591334173286984624860024184167653811734016647459456645206500221283675195821816113557235142939240141463304670256414719044459217498662477615733544350797453794018783338379319197207655371652394914651897286740127761742287182564152676222368586648879771277564094744949921576789301354604915510664175715516673992324815849223836435755355404584615988511241584140494643251085672781791429171081553206071257264964505485218147961019837718108520030675621235046306901916926567292499205523565459038851497600650511774733241174222181591503747072939022332868009636039409790562956963182305271219629393479924867152939419789667878911917149001143059075541735925247087746504344054838549735038127260295849222572788134914948480599188376541129035637254236197710899795705541941585637288492085755570116308205653927611692247263178150382453541742357564243291199349892116413380102910347261579616395139458949714944662255982099464248686606184298474485572092703652573154048042243127828715420997367182699139300421712275549537771418237317071517704368805651615245534293512103333770569253190275835399265148813719518216901303193294967180495515414653573866415444112561999030454901213042586859366451536613225104216753265710698497800259969474500171767297731961863365292381781703058137220368566617364330144333845914382079925301116346805247712839506559850486667774610873041703669328785779065294992821456897339306724599702815483678272770739477608424564351877681860185378787813223696177972973343586681479763676739925033722383996408328775327366115828411588246027240647769511474061084323782468673951382517142079324039723381563106634916341592330774770025503043446327584425330615116740428335653671876995550014094330634550529998161029127401857853854843860424879544538782550735733380761936385388409884170141644178121206561039672995675864658143708966685280214384169649417539723597647276760569910008520644863828860404368646318830801696106664842589608679929362423001146468843337946019232046796389544836413835175066998786329489137904250750684123339629558576632849648577211147582729201535895137409644270184853797606731474325182960894144729410702053879250255151641979587941544678320676740530986658254589521462054438970309315175444595662739153571920695198456421007265056280212064557719497153710120969419983291206154859967678130877102615447723864668358550838612256444831302774721159063440719351392579675907739046428603281218300275923461581218816295042779270837700368656425837097819448615447822639409215593361236499269613729258004443012152275740140088050916930999424618289672836750626368402548797609840611806458149291864024080487687541433575662114305831849382847272611234214156022461166913575937432146433174433163876468810087869288326880098328249483591790437428658796073017983594072726911346840853094848513420844299156846517872287945144609005234622804296468123106382773281672130176643095789764790445638859468101988019474969958415671180263591180376080433832777022740574010006737591171878672539635413185539276070592931552166788944853143998916166537489330102719642836343356856618901169710197430642212919925686065268653154738661095122975188637557496822418824065227827309653930123047061942316141162391242572208058278841489922619242238431641327434059599670530568669464401483649724424763031082554572809208347855702247001425222744523432128655379395074125391317843921555973502195728029787316634985546518354587432547680325517178651295500796169035087363146182037405150770708229111598796322797348454768763225210258009112737054568561715460534551840557412170760046114575937698031511107796187088868631328426041964882097806867167897611802074120613368329643098552386460255210275307946585257095453893923593071839894425996344520033463507082949073410543918077623340400101336744822641965387334239023163042561767707971028913023640068440835008362587385705645609353733409735346950155119939394730008848580772281157497405901266263014033877323633900541650399983952009298768281574339505505702037591205448972145222805410131924016374803278180059432831866707278262390097839383375586034419960603547836489104743973384447067737020903435519420094750282011888865642814792684086657463427195986069809669459306687475386365990365923000968757428753415356466993975733458004633146807780844570207390574782392239838312625852072093656090595753444429140248496745188601617545010972615097653278870710944120022252691584216083445935632175162280860243797610930934980469447825593216536629492238056735900217388998066524929749339344098118025826117455310435843694159823156290221379755101155541448933466231024088383987330299079146452062304919772915423448020885437919560381120593099920538154377484805667297300744136637896294893218644045464918803468373869957536649293636669361747560025571742470982148068439349426772934509686266113764244614990164008572459942383066045847527249994277377084789133207182943566075798735401475090022315653457444006003523198855679896093605779556619789796851168893710683061481127131176904391726194321913121714812711643476481950107488573603433148222270361182977224174147259619822507397632568254970290273883991531342896989108862537676123002796485986850566099972032818533060351382322915277618934560719642949281872116736566367724518805183915350931495611557862724916235443836564639588385362905881334354773841045770800410637672928553132888951738620733796113432265506845682012841334783613200456526520830412170644925037314107411765525077637149636024330244273815938086029334900678181584886105116158116037802355768935880388127135586429150230215783473058759629001088763161645109248375243497956507299448647933680172334553097522590555313426489966584763337960855185920511411498830862214609474405885892074547262277515041211975810563731420951723259115112086688655427878777597440454205599284268351844887529057064535421053253456959614066771584606499463013040780105294795352391962050597544137668327139492994891428421119731753893256673044439133234886583012295044431548726833899841802019540249629529352061449720101204329793074065313947287261652621842060181275784898940578054803148138475375939566276708771769849750983961406752001138893830509548125248658181745319199653059534365315640556804941262259865699580140177370471888186781666714899332973777361936091244854847608828725449324024803050639320029839424999705496081494313526359784690570311636324652480959332876544618635886347223113858169579315849033540267188908450200490766364734579612225861225906086446827160336777908300639826873535440941368577785699151817988918399420349689903144783874325076312664482620121809480329648320812130117449033838034691885030707181591015211617305448113303652029259395761654790396875620675231444586670366376940939575705877261828344452769985461816775018371979817822946319345628325954885384411300580913408096528753742850226349326813391604440517932357803459015701037148579640145057617195371722147562786947298196059807704577761637079474275353860755381049749677856330743529374221165461002801948039341338104764150591091745611401667455935524048355018077830377391203710088803273170171851447588026624891735145124688365745540220615460419637123726107471411109391700771170092816282939142410842201866100958334126941164853102819931020872976059314581543913286658934699457445466606352883664185116928593703731963679038348448502500281691826928928620300586168606093298734867210732531178334082312182446345326804357488996409713754560635266459921925545652891274098370594987139875158174155419543921785489205839716253574555844241050725426549321864420165583331701509354471756259586146436597802390095179415020455189310061925001318119337455021377791230094247633556674790016033694679628316751809041241235412919657149551656777269648418353551665697700666422328345115410618429587812875115874904150691615285321590704423685485374383146833112830850642486190066372409046394966919482244218421932425705669531482584889629558508727613317963056242527577222613874759837774550951844537890826288494549220403249712531339970808758085001272328538182477638304447922111198844366601962998293211183452087632739768891571427992923804934545172155697940321894390369524931751984027027993839381936777446080624434147407670412352826936858981150390141632616037657250786264479773193791076148066153578894841842195586249919653784247699419326743327028279441114603988524560089920855117665480792207659682850615878781072380014851748489483597610795154333558848172568886630849515728947231941108556991293307743856875759365583288977189790887086947268415692997723343135424110814716483141605947327232890236182083036486713346321348014241137688045501200131140678016577802081327252709807504581992598822751516833538114314695299323394862044253747488413959953522515001532399409478932254009384800355609072118539213580302450404025284423710439485172608288395714704202037458341466940749652982697510970053462865210535402697829534998754166696985944663743585145806426348021626568560573459572225342997293452562744364259771769355309857543719794098759675792940587090581793000007276271434981437799266764118169815252591844540456452121019226326601648222791289155288952986796672785225654992546746678158423702456381647930307909124502951132038943544356227437837150153125701091171131182767021105013341434389030487431763987783257901766670747845790355063336066463948287296590530288096132162476581594427035094591512126095933433048609968723151789560210367356093596858799907139549400016267343153227627810540209178073041191087567130472253383656404886546288002950934549754493652223394233737567711917673397162034879607684377386392740463634524906873051618131219067990821100010262070632179863162970468736759714744907954448225832017257743943257662698483865965334667261156921720751271036660010013287251831950420700860733907242204644721188453883406027172468933439499185783909228328856617247440908597179094313336270914691738564587660333197264961655907449346655085451920006491920411037873315975011138622152576177329783391823124146504651688870088663091554758080548111807571504842223417922421529249478069487468573190126240354733406950871549535463584756706814830563603513616036316126887656067743603430092618346313719932647443498532726947001393623385465382305387656596884128895958793852069208054554026155498047359737844886263688863993878923260946937026975989791643218694133156404239562062547787245474627313139845009560796746379795854758508777276299364859753838773166247070511819862153670379449132340966233870818251278839092527657858504511776657114161798905092465689810546293294967281265368275186639263321293112179427776499232313803398385895846627518308509689129112703761392479179303518000034241658615448742653628743318051190609401631949902550251058843826797378908455328477969283135303710107498925276360653457072299284635507815063532774748789574789531378932905072375738434730320599006769494788658313861816770420238898895478770233002336892469224782231327909722353534338917849534412898936334207759926591285674578803531725782753385457213035299467069103365120299576511612541090157963871277631033808614758560142990447060428562168654167566313642599911675049971672096155587149760241670560894424068256694508014587848264848165065574953684068811499491535132566679945928005817683733619180938862983756858148928552871651190967585779378177251978021677454410741777963103821722520395137559093536318761163672143183920142017968525018618847080971344078664293676129134972308509207051307620516040009914303719258097964613129978381191252161854324043427387221534785572888027316747128566066226196179927862533210012079281354115130578837395438336865999023479076447621673617165145732877037102639937123678156161442354616740223298674247914287334526567238134137066000498646289174625001900500631576890251107175443783656937948990669129730115176551019602012559118654187996585240572087935623977902224907489215923133315769635339910343772036122232894210076971106427532613803290951835299001732771254034142078533495795410775597364071943246215168727866877164588216531653999024837866918850482157885167686643784522306354938022036640608768177573876916926379746638776508452036180779252799432670632901597342975534626732187634852448950033666817836707751946233335117595832594338755113146073670714393189164919631922402470440953921511949501200760047257645241252677507216057730474703371066483300018618887224971799674916978950606483219923659434368289546716858977080498043123489658382087309672196637937283446187208818810358659496753805815504065387746341686118052152521843646342669064449046580929158434276443725769503732921241921344881737482367520354605688193676704544015446896261178213760348975068988158035145238668312073093291925513352214892893508091016616425362409252937367499623697660060771422622072898191933671635162441968120714268531531047743277450998643533097928317561484388188363097910172360382914792515507812397610584376031410139835478775828865606449628817150817914403768175032391933456349844994650673997268295848272531328717277793960977166400919701373658175508554391585648612591263026725384428738389074172940414035977422235897154624803880417347275971721542654556070051837574285684973265860301815534174730257488104448920185182369673807313688271291252132434925409549281281765369836741437322345242943178422487257818881044388275135230840504407022535859527628096304074878246545500016752233263015318710160439211984327735196082974760588120845324759083801246361669385379775306832245685357046704749854321427292640155737730142755039289686309948324885844409754560392847857597475244097436364733823981732201150354695168510885532488085508420225411049752795745436702857404884028141539117576871574319832315571836841554054870549632774482014191965502030259498229642000144150816672509848045580537727054304943323777394736237929182650073749160779947053430401991697531561762324797343837261153486387519955391888277778995146641970529530268175161568625878289070277225975696171852201455113213628537640159600776918375300185939570636555360419436766786458254337138740437975386673113897462614560609547528937516671757131860569598062268766752881387342796114001155724489110734190707354907565629375832597287844449266801814426123803822334187589288562094011299813362780589132365310312984130039676863324183548749784955893402262697406085234816714472537933946498024008940855999297679403911062950206571042240016390889467644766090336305177448993980496993540901199533155941877131061635016248019558497752687015653066254294523386665246681086570428288887083684627578753814367279150021916128985224167529504656692847474669260576348622004861929095125409571104352706248412037948730622229704200459550794723839316154769065996075815318089690935343348767073282098776533072318644874967872672066001304541513686143381423455486004344696037186476165145809785729898433939050875893849765828499681162451734448610498416684020839338867813389732095355984542886564414298684813186708088913700140218279986855221115327040912050060368390576034866364552795512476781278509487547059178920087434253697809303774825430281521440865543421734196546116945483048467274870079054824281191349233139486331796451045265923974778750309052904498563472666992234138899900213329842248572296604061212327598674223343827072949895359517897199556393670009988553056964860702065077410218158204756764993172710616401850781651243056260817684504793174660205471770732125851066722521796761188848742217471439110402875854718203020475788287081098935421706678813039025916800892017889711083735539554705075861306425728212585326806132008215560951393213356411348804706402493564660558254409232504674436314720572002413086352369911305313519987124840543277782038356474905679216065714455285800720116010525014397593796911242476594383646002981759846024913413366631229459842944638908088354154969974022562910495323919146371892823673791186998766322630456416944863670916089578419855249952833776715976981455262994003024174019914562589861035964469574749063637486922323021798691452489689456221516925896818591586169357427587751071872812653754575920169834384255686213101688015840438036970158347890024680962148912113478833264674024299654574086835988804512629417264537008010862806354615877535017042531298594214399982051847302560136614119597352785099372928968891307454648281568614743460718715306620118360571676760192478180627630120233789975086156910345028070488967127898475733718085200553641057387354886021283351859691961675904087874262532498491992331088143303755630466361820597108977037324590262704912926648771542637042129002837314458628047039515316695939847280550295860258407440299029374777844815518254927868228958153702784047356092801364540774489616942136053071648851718543240233902329803404912722922358419923933186188700385229957358337779957147050210093124007342315348630832472000053568104708360220881574439636919791623550617096656270035454242956883794742835534119342709012923765713714908000524698915618851430898937469002367597509857940987464058984232126606285401443469394822742081424243549658031278812615678497072316956999370055606257727315576124850203579673811703419499082877627923930696507823980135822576474428530127965663171985115108867010704684663343677981798653925386013975181575903595494388072167574483546074398717683921549984160541448599346316073820010229940184720484231471771555154443063634461847320554891014042848169137869710228552313886444612051160635474762448053562167002931204025039567794672244501579349558727353222601349142337599316118798942354626045897111202696130985414512493644405736901772570406888691081047130306334937987999993991953161150978552357769713921531666501729178394494117326094450877772886467073306092112616024460673098378547542611257715640918649733022892414146806500150269810881128194643945173628021469467236592662623429162781746865660049065840344425838157908464348732051041315729853217891879041759729861493394443643482735158991038392611026010929707481132204112959542205895764147324547117053447436480514106996353121575284622452792895802393700406559719285970850452807728537405632613069477952569259905767986671825158789876325550077197151300768756367799137457191595226667480796642509177405199086258788178368542906858543541124120178786277796331872774424056934421509364849880303395772619846378605464663963754969945694665417657176517300242204131316238774736484032812791285250875109409123160273853764287967400671863339651609881590846855360297198563157072285519146492617829836629382134697799506030791911366134950512411612518718532526633238422416265511581560677775388954325154565282330801485194313878655616696556292210535512921612853387153203398124577435565005067599968635383568963061287544052024059110730915773693698186643012619796167443043503694843227991882056837327960687763812254766955715425755979658797826568112848671062670370340678205847360406733069464572041672241480796614652239339440420195452110080808956397349196656478537866117421344864372865545581828677291487391153556169737066522150068922753218720056258016072078060427091316793990569792929470754162087887980839527372668207178073282418708033727832315386372917352658165206320116691685601371465298841057798830421576739826449920503112145902242148644068807852473981642820455792853863985515726122209521724819001209056739237698517332484552526490460505686113620775822501677443770321350779219755286348188956490898160955974493230635970674690636704763000233227307365274059459499662357751315904051713345161722691404371660151999460901168371687285039911258409843252330154353971382602927643626318150415549703301126672947562422106388678519593829341943410473067429622763010259660448329386049949983893736200099998958068198051178017805545917460264216530682408029488110846451122495586958536557742618653511073844608490736809796708436433189453575829373218704732209981316559919324155781588465653234582843842761281080534921451631014615617230419527712444250466259475061805525182021146488594762789442584508578706467052090862119487186804318979660132488835782939730883091172873520323465504633751131307434080648691256308129265496965731584561605283516139276435295406198542255732303183507981099837833238384172196154417756232646482299260500189560138606975014672557474685745052040267407684478318673902062994118827570762902843459711280412022788260532641509422678700309284085339337823238668998113915838488047369423013135069838171138711003473975628499170068908440511267426106584333310403331085430298540610974762925209760532839470716698605313188425672815255513301188565258617621046177461558640897408331062496963071862981609181518044455403017143594795033477583072486971466486112283324682028667614915949001500024693209582865710533577023771704481576209701233723833088154004469073278840450481191133588104931163456261343254863974456917923787471953987049885577469184713344106629220385221230145229280991710235750339863531432767203747736552963997071511561226877145487474475528072452252760809186940415806997053904319545859844724611689343788314947939878457872055450481160555713193638236442234032879475480092921097996674921968865900139478697615563740451539196683042672998260496234591063126320435484742595575533978775905482751963115409084682518025639275878540786916895208540545471623047625553136560457401766389406958531338371819791043527698807211162930068968443745189971975701334168508296370152130901138113473049846119768418742858045073972297453612165522863477481806859575497247091101232120848778083069712186949841324112787777222408501867411150731559409183692444179830689741070219928100671687516132490489841399168904976953711547705417901506589574751685002575778093652055233320590554068523664944279041365240616067215413926619761944654902853719222923460099194919292840682872314351679055034151791013416677275503588130232121115597359918155011383755049261489000479610665138208044072929282699071225252658827315818092446413462133339365287271553444250604824161415903555112623547053053430845719429097647744764996396025371304859988984034121141726171290537668007132981500369474475797785126177819863940812876654973584088603291658289417501670176842644600862398927786737713898691324514486728234593097127461240448738585512523473975196221676214558435143584492802564482010573551160035451747952500978930390639740477860082644827078524725010045303698774571651482853653123251768262472973756275095029380250814719588834969907686475154273394214461122953491800230842446960334059554312471574941498549114410976339357923441922952312576953694001985364189373304014294049312417984712204491074517835905080970281061722793445967470352140822412814665343914682830632902264121984569282841048422806621172563442554192986285970335177815478721338250028938411067266190273573609080748709001622299295880106366102007598649042411333656433969303416510108770732544143597379333607744255782289000093259209582779393951546870873155536397928460205223364166546240583064327081908862009991735336296736372654976693262073519021591757326301902129016971445416396811635095021459207739209395889504507397810848799055666986474513508908763494693874578533011508807279071989617784070081517017817385145017759443564791426690640850992327798837329873827876432654290076919376317229590124176013694428699530521249689802658247218258137719571626340674657459140346725737661612435420057857853863256212323055722658946764579380503281875359515487814844870648568500890814478792144654414909070759371913755620921437225741544790127672384692535330542749923155303439397447575466520764658359804630199341557160833758940108189470650853172653583033955742600634277541767333123952465460285066348788388890383850959612954955856422070126436500366218501428627167688923504279899229912884054225469828510075444923155677613816489781159989388601459109676978848334145756959324428511615389817433987736543717000620265563383243974248095268206189814958745255009197216922523463960039976056716247024259173017130988314048515882856935620872338422242239474512828786082887928411019720190464441388913768436331345271752724914896819726891251426340557586852874056173623747215237519337721066886771841960667592226808585764179518509915654875120528135212825869859296801792816060836008469461802198048806205848340645582307330585803507536822019460279011723159945284184539934565606474723104539846088098528187458871212430032669414864132114599422353961329680133320278834135286171548276848231501701460435734812888624519759792293992835538072173612393553339630796812133125876973625162071175317644396916708207890369310146510149073839635450472135679651511374079898410583213471182459890961970367164602898160398373672370210774448225783257859677729214740155667211622716632940979497836783681483974632882916492524611640959309660372502555572487543405800856160863293541908506846394858185914561352364115197562341185688735522827948074103862717586241075261889619713827691222452417893518713513853994387340068187150010029460745179028496910586397106199595887329644448600386610595255740887633839832706414952975688084480603018693311266419697109188389641156740989245746258631923626664414225512837785345726074122032179268956792764752638962954465357545834364083161462222120767788382075169816827335597905147141909682252645870043926987476045927509753625515783195260744057512807385584269210907149490424237677171693836570628575910910463197325523731658046595820049768411958812990653278807283961946622480512218719732708858303491997869549849359517219470011326644923685451644842405564742490152784398366251570663295978270384177834315217386847014075364339664251774247214853067007085320934894478975974214889400244966131053929949100510560008830905435675352456672922705441079787293090797167067074468425465193257694859257754775033884033189131356828870528118473483799896188852980673365373737738755239072152681450064811152403304038898644780805128218562348650019527676452334280587829189617660508230142405892900850371816568826976699478548617957335819762968882213295055355055130441026428135360740162180942074564551736501905696891969715509255312125016938622961016138741842297292456389434998225814339321533022770779026144339547139664216999730374811659159572034878859463115631587196625351846291400209587123928875513512309869097077379001065509948064247668914101088173081496603701845434762537510069331073833076827916932892604549543536375331122864996037766957947481332897902008724532095379879939357751650635705185741486399969685437025867488016625249070848437670380074616590840194380944386620027784451360523658772042387657038484597914825654515412693665742086909660944074387211148599509981400181617046138211148738575425164668152119116642513078848118142937556746287965281121461491994342266854605143744933245167439105155626450402530491031157487700176111343375748324688458688343919070871598563918043111685871781739328473738301184252873357940881154147908185492559441850595373145567337737308437748790365339144662938404315387536603231251469680511394049566821128778294249187265326296314238841965972125923619311388872090890458625039626046445045524436019987956586257079605092405381483807604101332928182816479459618769820856204128960506066732413747132476711331779294713317005624178450586546709210520182895744185744180457004876852871302409353460821947111575890546118697563000999112846880400002651955648127828986996952047922016443522994906271635882955566266768415061872182877512406776426479113036200419368619149262002470758226832141615247379368539890072446623696022301523617342234913798848613861023883589759778143642247308444576065524042947711234838165091283550572869988212180981588544664881757729962136403570920914147192692306604483707425264326705177064595251934803555079611878634721656481980143990472920706654538510072071068758901009697664338290611528896479166475085634909766419948990289688744667040145049709152550861679363722382592117477437700717281358237851528086753601545549457078394812773092939678606847536191072094676368916863997273622829703787765078828736538637060706862185141332891834789367330364760625045271276327655251890554696573304379819647425974684762998691205818011441996089084394372764672006031934157222525808571917061503433209507217577855252512988930717603081351008769582946676233323878500426127475794691400335675044897463504637040424632938766651689198321323073516939123320007543769245885084604630811840002578905180653129398972992852498630208725733629707144959831969531955262063111010311347055933014205386755949055365432582530089530012767221088948393083285355965662509628734316280518707745842282554112944829296718172085578217901313366722805893493174319414638932843300929738262505307053697177018207835714704269435417199432576339628036678245347807888195286900585535920924783708074556563930852898562367276195039633724423808186777263771401244468590394716961124042814741704323316912287883326577681288228675656905270194132747256291938481028313426581038563550577957337168299506576830235473686726184302297406677139761513521562752165642803013884198962072043650796685952337739048431853034329195471780632633693507171048686619505510987795239942147366006736696865621397545770429063183916647790092830408456534862043614165569460372854207683670409337483071252851278258726910735784596178889507572684750966245914314817221262856071612041190904161143722523135530524463486710067844282487100534559314113415501399136702940657648500176988351490388867190484110465932347839228317643147616781004885915016591689302897915835035854289002399861380490377136927340077760819690554644064032463272652780248871441159295557887220180360756837077189624625693470611357526170043079386609389512639670580652559108056739314108996302047459664551204499269834278092104437827436454175497054145770442575604850142317081195754476746243893013066612598570023577849307813402143879360622420100978447067605426925548687407944416624642570541043083047352731446359035900259329977367225018525529760615143586715014911968852500181421613269503123649327515443636277234562370693860141538946100860056534528491844449969513987664217853250571004585018865368757306745447754689213885404248743754992215553530437051349494493594900135935227511023201262262260963146421717085001685332043718587748328463806201617342518999335064669629662885607208448202419213243158143971937750044369584810331954225245320424601167401214647017571451479024522833111521864978521850697844742977173696525366632447757315728008016407347169481642012908766825850623736132658693529566348515815947422761236445759097685032880584588545700835217502516007817390985534794231492874261999663295196815018898361843399692148508315044179266329651909478396910053821629446179275929436700785180140783067228954660767738021584051408607492284599736677220587358399343207644662488398912639925914816357300923896440769205998080899791084759363180856808429817564382790635543068577799346263349806771488533506539681997619548735704546620451958033883952322758139732587333555687120112313152340789640134226899972688837119923343927461985521007520259934353581227437529703929622120234395239964129294866730265330407648339218506845730760629763633675712457015851629132934680957786988233489512877990462288128590442192983267539668102166626404432927536189045130795659801748142049282879885969758615752812040733321468130137621496458426310670556607052145791576978405272163023909977273622746982645864307809964932422407726207023754246558059816411533566045187274027098753504998523700494208504190515689415485732094482525956983429162352255151519535696455992620985022503544254149803231828203725905047720904739415452109230237482346387063068507559686386834270348553264869592878705669791375204763386343476363958887560120485336821355737362492145902998709616286037632896391350067952018095645706925559078076214113766349983730197520439216216404631594680191303134276465809588125943668559864302579013729831050668149432967567405009371656884866228076209928294457646155772646610483941386911740564904982888132940804767022958525173107470718581142457410821253926323808314211896554771041946543813333497302192513035983386437160379887241117140190819488072232510697044965756192472662544277033333839601285409996661319176452001905283594868427806256713516138845494282159304772927280416223658120305629923246254040034961310366591664675145447728148894722677052018544154502081716677707334505133713713199812457041396982450751551684106060079889579822417103937594296864403347088110252156916035931894894946867556323100744354361417247879398380242732000025024229840546356773603291607291516516346279328157255928420764750579868929991575230070582231811839281729065552402392958016723853623732679256133774283794010225764636488132257100734874332303560077395962591109612999057539183944262410602016432772315821244188652687785415010214443744591112821452479182440982993351884100060539467911559377304950045178626418394457512079275480812483055206635520466000187830714176743374165571672210328843534472032319754955365164794240638197910405448601101496959060914831704627978249069445634024823613012030427709367245714565687670753520111499394721839969009306104578756773710820027823800018184644073761504667868865499526220114349387824016155878287616753934530227637191454329093393012336932528739909339195612970766068870736293796195740174633633827997245485046703853490722643500581214636947370986415392671194101784322614766175931955835999505607466286380642003692144472245137280646120301514154111285125544429181446330000344329138074065109008907385355647817291812443615006366291704533268318676252359139917562756173196305593752388479396869000028948866622549795323860425609704379936194384253404333300539827797660579266392640033846991334742345978201729816766401380822400739840967432060759631763641201823846871561167949813315036762759028550807230534483524626068981033740957251628448167894085727194245140769417756240035297924239610180371636069772102029430817450928941633889973659936173014658260238193624343222292924754051019070274509955550123913310862667097840502717750557418376187950978954654935892687583546844784600623731903112556200833386694016363185920281412811167153401690698074957728880504557848905659697911637790358066444690284674751621419547345172672069652632772976648180031507620006992140089667109092519944262265437125708902846167551035469932034357889873719034165410421640914303713555562760055167837090225302067330967694228256159729542748510479355344823048266646582908491191654668594811690722641645902232393030139536650764747488823592258315770380647063691972345777966600643190313880005313114071955742117314868783095251672519450916866721192506131707930843326735957707311806020445743152384893195571101972833453096788492482852609611064804517456898663546930211894202226990092033081133049534404499449464190255643987173891162467044778608789764557752683152350794672881197430762321650364913421364463608425735284288508472666688313714066642323127200577543671258050720460470349683637096992084471504267201914636834651569551270568521600888303330756558328092037881767828807102240071894443440424644313024277244521171213685509022588559028578776074195693483551171584362018449890880391970190782253833922015982427186473683968117580274999442823926391813867433188664930571719545872342564851858281004289586531184115640522288738224823049921385687140499178171598088206774143756475707311135133790828962644811093375011572711825730171643584230692718383995615249422771439718435498197902627012626296640994737032128735236623103632681169118870245392828152191354216293898756901890829854327945158755909337972597069004263129594603691815032855844121837879935329849938101646561037960695019379875600522872114603362975307373653640555118541536282082184960031545166681461050836410630676304512100898098171825555004998374878784706326613816928696500993807570407458364874973687514235437063713161663499333586850796596836921602661321332964796828430041055887250529117669171222041635512202108847118352567488941938664007891858644308831240836345275842215057491200951052464597272152571953012710029855715830810292928830332505691454350011847933573098019302567849772885557834321511153276739688238026524293818016262900281821187066862137980798490351597243616232304479902687406396360882553365085959395677103010120646987110509153633934662511878868346585098100112301629951008114393533851323596987730445481560051936727445110768979205172638825765660945963738834900912575945814926989962431488778368212417442496307770318897792636563728359066441204920973428864723640497740513934749500740642912270571788851961719027705000876442176819263566074244739360371029588724699516317850976387293918218111340133842460739679234440292835616445480943287012812632317378807865184334645562649299517373211839439057769317720587680559636364882923799704013352149247622069082150446166764228708395067186991598750523828243181187393054983666855530724919439713381557178852354410024975737041146863993994035951459553656510190374474177129936239388196973832495949463483282214003969297673492222783350484026717282467580570661572559968855806152655941417461489453308314894983601929878810014527970437797485726510325014146393392528663870546997592350146143990010519600102222913839058655729866552720274771575698469938543537191178316866871217523742534995513440009595806420688617891454798199478911674997507088396484903839033994289565005273151419366436458168982848512577601760631744009006550650981722399370113799987825490215500912105926809171876972835221280154138885607570232858962676529466589023064812070322922673330041523401027492380089861396377983932877321520679659049144904980427904840216548305028036254389142026825392005962337800611585486199709023292697807243038343444253559483328033471002181853772385920549035111530949818694016297626043109777944109984516906747391871930004502015717229831945231453709750673658508564298330856070490509395732650667836434495150246305830764870221731697842606129853754973571989235596638807582983167383206499741746607136877063654850441187639656318750708362445338248673983060582000429640067758110432759618172601771075425943857466310988606140056618176848777519784229383605381431265310514280752148267661066353400781773476831105181022864893282050478772788664789212378555751476785179177675756837783863001548728266394134262921134358574316968477337537221405389291869406934786887916558784623519142507100619420909752020886740662739537382931728862748493217097415109028327684874548374568722575713987512223084131065644532857681744938440842800985649021276476838890540018587810109784708651330816401153728374660527677947946588548002449964829841799920369798366869640438913629178403112924792832631337828021790143298826409261519121866664678190416751034409451632257106064854044757588120137134087769177825496061153550156342939965015391701061790302970581354126914612783221372227418185851626848635652603817443294378731036616658940169610673659196273226997778977373377817750036836349945027214926781977767695020165672507550228733547013031184117818640177834932818980053871656009524479448160491507248907788903322772431414732495352753422541373569694884761836824987849697288431779633829989738466645331613387875597125381633313470872845214445008478707106215960251755701859387508053407640540104435305797805344292766535836400159813106829516950764934374426419740896080527313574403069433994385457837506022593636356149395341782520527026529544402340236862439437517230236289770230214208860275118294204201185903915322231463912416483701473899507872540578010124901800976269963200026585162010782355458972494415285244524742498931592213206885617167864641753025138154672304898492270313850106117462588868981021987118622038193851498237697901649234837138629215499658806424728493023103474243053243927189596257551534204213246561009621702449544519939124647565931661172662562817767170482024697761084869299431659960411981740576287271653900660512292327481632431684927357143830269949456876457566031055260934932434941447496015045496166720065059320221163898854922167860726845669091921389557209330374234882787991956383815738877758336845017522986419907746433264584333345145695714934128910792142619060401211863618492636468957032841061909540587380781056214798868836904943566454967866528483746354385367890072085917759564217695677002477619025949110641726277326023593158610929381384516546668670735557182841158737773314751166907277458198067239857538424598451433891704504445900409718860310415064520938181789075876739633335071219217324228041262080798973870657874403724038445567636089100675766301836200605809179433070436896339139951142190316829958711572802963055407431831702457193960566793475279600526974286740831092176547784172922380746051292689609724180313512114772012612874726289910817600681617498191374426912253033867131466330557348116866830194904482545228584257735291616667331870051520849650394197042354214584000761446236930315890520315159732890385842527462115287069311419961027390967693609433949142284025711856702372455999470251516185225995900031588533959234478038965315605115990943151522190068871038641877774999977929377706002999445850112884248436832346410523565584819897885121907193176700598284077237868863970096816541665039407521538604958218474252424054677948791373101253532358361294633358406254103214754655486948410766371057472643155304634235963241687790268297812653595466207254336476552933583090795847626991707609385421629086415530542711882326557474756353457742787194847248808310028946579215085517291681277445197732326336973337902177342795178314466287778270120435389190179372160077641241003269645953664098076714662767814971900945377474338175460805340388714156737092303003066000032177582958426459485532294389748400824120719449497731130249792230816804912528075532537414297257869887986879955232661922280406260055111363406214957527373259769194958514171567664068577830134951406668640666791541261658965742635117092430111913963931010392164217860455434927384366162215795608528632396065972923404276755861038351404687680765202025802875145347789066297354665305395115896108401467914622299624390490725363329466184425406951380264585697962798914296059975824332077322233653177385955645739124418279211103243149287644751783865232010974630818699740105390796475911875050895611191352797012549351167700923449954150099052790976452152187079823813027275917129559439794760199473983249209085692467364967628066705472417271732246765452916481461064451567456738179922850087399464929457602330348900058327041222526865063449049246885674617557073826786952106828548027030003609779202902828030805804285664555283132990714527852115429529827650418582409003472563207951133445931265791622546925212168421072274701498810308673291885926908290913869306032017319601407273018451685134309429119450466878251170723783137827571255987955843218859234100698805061827592096172973159102269080720637943232791495418344829701220715855095217360470704916027890864669797341392443345097192843140298665371537334436360858164493369992924330964384335803273333650728673068720066953599039533234047486991132948169450500337248262012986266373733484601077898003201560663052557840693775503034933500712295756656497126691791540114827854192862011930404991521125436263192846052536316901377706425570560308659032690630730626465341390665101393544781026787779070990720001623353282881204647312623593139647601791857139517855183977984406764495361679305177922076295708317536741520912470591836298521219169556968325202165057776076633190954643082549439539651273980255786715715951552480143938248425899147181543153071623100721349586118103901313320775544828474815292207461835753358043880016196046849210463983983863032030666948434383261237953691204090268719215634756888531063381377471978842161774060638524351699359690690758279874376885061674127409721312991845026716363058641035124600333390135045827367340566759565714792516330566539380833059727036699881915652469684290778009764768856993749509591874127224475711039686116470874346602942350502959741918039698646206926196635569686659237557147694870133387886464135749281009548510880485498108274125361653874122277411032937076578952439472319534951466904340296041145526972983497622794553038850469358154292470185611176544449869860238705667205390283618962845461646483854094053131463510126763634965345295628716367331766826931185402051333973673287789050361887399880949654694365182074007298755587735151789639906128200950497340847653383234282980696325898387010999101507372986611768300332456022401816514656025889372620350748116946862374825083214182893812981074432344872304872985541525700404187197580524872233718070823282753988362313146295160073784174477413694338824994690517253767620886428896791379765661256795089232822650385369667475146049982099636545291425972560623977882733233353450102474592733102225052742199535331860449038629148881062093030562704998984285644133156838042434272852315328985415262616927479886697713590490348848894436270012711010982643975573338023006365453186510004804378806738484202895564161150426343824088523368375332965384826162688695135016035928148800036284465061457558259992238135234164700481289115135200511961285977673402692412171814001536673958446530901790410588343904539803258190289811851158763960133503242509877977065227507834281540857775889789407019480643114514614587373726363998670568038796701022823924718385070387701652792456977596418142770960681289374482349805857746724512278931634140148745437278656546635879530952903268951993948526030961312087480309602773194629221181612124101450251342518566446980762771432433476216499582056144108178137193025885624567913962678721644842912643298727046897707172981938841156750277412076669844650806847491357137783607869448699190122450606647887110629126821068135019856756708870408640041119100650528456416364198306045239056728656298438476825418513755656177169204935682507834705423236765182564775937811516089091106717245924349766778142478400936863443209051309658666488883107500405850421958583375710156135038319133328029600366571159454353770570008072165323523411807153148021027136486098240237015390374765076496858927514636126777357480079695869697371594259194951751883576881395890915845686903341248912026318827773052176379803963944068715740721688404211003312112668637758591903420077278259626813091626585114622097609744950290386086551878397711037001047999217688305797788893241741002090691596887378785206222047243168249288796948188918515312092815145804649342450920876277261554600499311754884199783238485799595656248328636232728533507226053134145746102821136954518942283380899904561053134017494486273608612485093890375634097279163286471172682302096404688162844286777986211310476050199261760603627586092110651791011081012388827127726939561022901073222088733732613413881055037435018070887362790595623097858132715558326928200580765275943682897221175456425573339731859864987330292468091869349983228848963821249021773372981842140321815891926625307516741559014478451900283432316816117478999766424219310121953609151722577945419492977526442757763176092596137728512824028298681784338650612966777492509073716105360575786772454796433054207387037644957633342180008338496163364111595811351339500307788825782483864340622837028696964262603988845119967168527295098812440361892235859834247870543541408834255121541971085708404406204279921625618367582375240147626991867187559738036785631700988780931162426119705222623915044026551078423437412265734529234385418288508508328705728285512293328539454514305979861418535320051939095156444714123361850852480681708344036530678647987921655439250744009339985019879671839030995108875546640872500624150456321941480002872528324269334625423740464635648177475549926064509358786387951669631522439694732739667515627932422260956182471754695019698496896222315861552836690932107551543314741121916739162269673806089435491037077213770778423376624040968137061553913629826972311842315540083191200966622609020099512989132551156008038598836227642917966029379827399002069774207956829672848618727275343012212765704374547885952683030656578836343054571783887282640042754168489208157591809033318003171035999341971946162427990794713671722989087309638734461025635849891235848105611271034151693411663168775128267481831690082781857288011731910449891373305559843061659362787881942309156406901642914743783207663948218324281438315752970411425834933304944522679431186069848821358899170179663055961601731598387055246760896702642446829779641128910660975188371001289016802958168488042508696012946139869377013359521977679373219058737163284747275434142255401696195941773439865413424691438992980057432304674122793553323085237546175932307069404461981660805479377046611589385814611986852441496670381267529113266408339175465931652750943157363781583017731756185076137295220413839912172548206699176423476850907648729314510097284878150060902036972320869052669803927165442986369272396520074702294784428931877649102649369275303795208631757045547383318930388052384261659182947718063273560474350423113386586182696128582666394717948375148993040850991315532461411198091137866597711209895797520758113929839772599880019082502342527337137750383249184971806984727205601760733341139732725888530536311784864738738499133829584882020842720921659089225078445242019756040469497991484386202630319524396627899952966717397409407646519552360114840750485719183401067350928373238528392619534137264646080650941451371564018662884331163633968975365706461817429638999119485992859900526266000881516675071681924236402056015694208863457495790034662338300981764141024476746206487682526764958581770694879303824796097124813792147032029537211399225030932820275479931519008579291300182333961624190034048283155245099010405093649301966106123114030316044647460039464926200519034207020847250943021421621652254663127785007135936766669131893128308522339570740504942070133756784368733778653263591038479041045842906826950224842683203589233386685717420536169031754996911425006747036283421545187239045786914028874128023010691083404592167362094704147991963698478026845959310873222704020874986426378716566542584154408172574856939254557201266239297100843095870320809350499924859218908283823856540219294570008010732237212826031412717389256294320794903701282551392384693824268333328796647532980690645455816284454942144592185644621591239247708466287518120796780976045056385351021621969876947707387499805717368536173049884365469051460332270004443356097238968518463944885730709970540553655426878560338127494165996166361256684125695838050771509888831658074209915496386539952368910592882357777039092457634509348350819074518419602384563138860704907368984404564447314162843565801343556362487840895790436824705266930444638169311703327239765008478606204900011591588538585332435978379117151866336849262699881625760092052852331822893310379529869406482308619249555219293792289950720919100420515719511254655575009669592145616721788751534134875878351208557866244274443263306191180191895745980562986981530701443000412343141199009986192260251959924000896651018408817406396393548605491810551144784190728326414451684043870640379594925815812088080312942795018502568905815844871012033882172219957762287962190828814667086105689649486333603273847576864291041099471773644539355848537102425691997134779695697202128611634941683166806624304661955096649904734275962966385051172154818349386309954811652351358305347832116966308024812455922465576104836644255732239326610926843641550467299295839331368535541149517559880379296654890294566648359150108455147568866592875716998042805750384549478393537650219323090761472706119106163889355694195039636197097455240639337565696309816371747967331983419911043632369204010722557264058154238041773325003348764337980574031769089627151836706798214757363629457239974153521448825094808259642175812932004592578382408093332738833395126522692298070929480528938788952464291284557270924584517041029465509505791233110384387925887905383094841181097551972376754619657893038153928944031184307109455270353803556620597506880498407803529694330930784599930547610185147100181229885362256918166197655365751195605335586675529176296451031733935496474301301064868160609885253449845174591167189134514307151219322698415947178873823562104251577678798426555096025884096690589195041526277666591668150609309437053563871799417164434089432883197048594988434708225154780010210934461794569765153876707864902154804667836026319661122933029323202260239929947617224722122838036511330526034249481202247746370203940094001524008591068130743436898303841924839368241483700022050562667871604318591742570976926104617795602142319885695861744340927920285313291535884992675104503506681111834281715297647451198674665967186470359399589512213588050905500000347598618259514971034312038658427127046438141408959095302137484673131280398860370748083580314014177892401766493483496482876222529652902305462211191377474964019309195143530091142277541085822435895003165936855715422588297413510627952795467026764555993733637336792694248485835522008756037407510385336336536511689171595290171916703476266516150999705211004593169677082747792752145293771820233028026116375184414671598868703342008477937549813893090425388055220842307733784200891332919547654309178023246790832647864664395848705216857604513844317101890659268338005206265552059934553646919604209078191041022635524450965505696408929061166020391996916668580395725819840565188323248993491267071843552091349237327626216375330487081906138666385517109374868282550838191143472226591083402458559102532871808108015588678638543660637288716626397563025583509507181840688609048738251313272418497571070443449410324839339907064560654810735635301771160058101118547849964038278793746719703163580134823857419425328756815705993143423745292849769101283858958658539736961352904125696875234607542018805266140856034148874793121958212473183597071903530100972735308903115317384151386625060006943968197056399902216896187630553854750016597223029945377928582529682900000959103406032860466565698365128477119068188790064112168427035896245655968454491630294055345079198135728473151376422097379357059422830664928131719503954264805905295258476605468028384030993533269666764023465013924687024787683230539796190209914972559926360999173617575254625274036496933815931448182914412948940397268994507203153435336753464683281460778092881819893041277009618978913803697731225682892762331295778903608979142532523417059224443269552942189181390350917920889491915047245339303234255632395621397686397602989399663816877962676520914222233818420127106083941866239505282131594154725088329772850362685973910054948679861299552395729395279474699990111727274671660436913283479483044466603664319139338504282566468448791186777015684694489514632585097211650958971660535263854883774880621731100729717888854427721175831776163930228466917890795177598850952504839645476397889346821115223445648632600819788259559837190294187222040484288986014522394852290496063182407567312695342106180585379031096939589438548116559517111495553167452790123738267303949447310643325488483967721692600387644419915946825605724270619804346397632800984497432045979406475025008726130368488297250684641692129820739725101489609900742229678101728586059461044237403085432029600683488559675377700052105159842116127827926363338209158996134375028618213910191656023438474597128419791920359202682823164305914250151205209032445895015438614169516098184251369495588786669969644443530487317524754786172400403855030202447889170461979943865141294697712349670349273024310661367987577149278201186817111322410051591622757326196299626496251332715300453717908809355346570219325228337251963678354012026142455253282176594798341080030255484618528138513224015602897435567145991677196372443722783222347706423655299255082880765275657420199067407723848188623283306386266354582237909992126304228092285188955603397247646857459757211859958514030487396894055523727739869771995908629477536097024209441697404006800925505160548178539930566181763999144954420099987137899760939975455137556263641484209215846649205959820475584954460811078932031400219538056861956649826028100197428875338334129168648549130488644798699945144400859809036534755155822612323643014779728776975998966875135961182966688626343802405724273963830831858034079950321899533696983870121195172433757157592711953044135212223267697147715483693425115545712325599875540912396087037210636866626207665598226298075812455582528229516210004086784635326378041202054468783460018672487332851584347705244851343110516469667388363174150953319674981263103498541704877775806267462977256169984651528264201645046010436132942726943604196379131375832996076747778868355150142310769765659908023031573965681023851591877189582723437418372043284117171393443190883268497166833206121113933429367411471476446434168821181173181453952123126610789111802578564769432562274389975855579282451429145449770542771953068914337786990361470079428022193078672783442503893348193596303607978213457952560279610859737403541806052207976886757640653513191384999953526848694976462942157993719989092203154079679697863672916115564246786861314834482531780839356948351210693848034100712571373101102918583532571440616502791080301684830578911711061984690274372979964767982872635220548290072081983117076889318199858729613958082796900052333797533977202012895399238472794598481836598650196860439103281781274204793163951839358413971777673392544484208281840841626981597803153785789354482020799032162435817106622510303310783839932728323947289394027814482007814206981796746761806385410423797452854695500917799193385295654229690125869873336849912214316441189559888682079893367131097563206762797280937029987926902410001433514458068341095242327313596132910257788527196450344068080063587193084219301426935927562106737418138918699019639987083123193786264288978111063579728886188755332723561485610779302870875241634618532028562446438399469976163127118238347138290085680874881219769452958716917724399895376053226519660674023895240885980826096486494496262228302589629142103603422415084532854684848602715173346876831137356901536102361277360716584536328062961137483191656089747504398145498549241421187135477780599049063908469348126794837641420980050843989615998489533661140070726171055583861974750444973152338550961162311706826195261171253639063797444419499150125321865949406221663635010642029800073322819741003725236802341711524222578439723732252496177444312627486641747980664809167800641048103741119497895706599880009549401633816590280522851370673522172541267315733696436398417553800261777300961360099780579475193832859842407880140374987484113436013327627772501680008520604130621209943563698215140683018826684434072262358003663811018923996069842896853759113912883658507880632286890524442245743996568532869223372119993594648204887464542641587053475949661912458954162212531177925735950001690622320933349186071221511280459479976837861082631795658467352636518162134803793667642994733003103114323377145353309074689120479337044893671092923807539964295913491388787436608958863506875423244604338281936203084869402840527978534238909068271498573156716328688568907691410936284348134068244628427135338421208545308566065463090888630992685925477637337823331629157198400555609024829060077262510086718135005244985626863726230065244569762172180007637085912041502401704122907339176811925913948722359357109679283030588177996054522843591644208818538819931956350456047945369943989968906888942108484185162581801435951132376991822956720238192433326868510074210085730582981744858722915090867327182222672937999285973547300671414092265689641241595413653245491032706749858206273680745293579794484206726235353678820008652643755196757415769323957469322903078623659448903121753839151066537075451437183151470096283221337819857042867128371359590774139661461204478804687036117076271971906917692035623912938412807878112396881432338464054919000326237669370751360745101357667300373453123344970527861484306774590785378738054548292439324240094686513971716629664048418202433490209061126331652291991572966627117594807146824663373985183336730769949530083606406998365987020386369275088546238382909578696215578445170151088445394045469661358217331887290590317455536387892014786913815488350794589218132736722731188337420732031180250792164148996560309132536490416813424706994876701623441595895126373041010070905994104018188918848415370942167961467468567513511782811180734729071339618812240835882130104887865778295931747618980964306372892775394828397431339321394826439710871018471840613144015798417559794042202804605345626550656060244258447213351403138278499796970865149281175417563330927472106293952185108200409577101739815405073216907356221467648121396410210363946435229858326421743645960842598598805871193074895338111920285351381013457396170162577412942705540251313558177439448389496197489872399193775041243067577316996988430570249666867713435339687453020721775900720594243491413535062229306622740567970186605099374890672307224125370289205162336491249584140648855811478931688081744690591513354612311855804814790461698307412224060920932068406661698039757919517164448339721926844451322444556395709778013657348400705091513684372448320263673684753536752148701584377101725360818475428178915092788377410579954252460667501324990473892710499260256540720629374177514975913707702008490072763079209789880483593486314030762144315279077207490248053176697015677089495877431196317044285224600716422878053898983628882367255442720261940032278410527596832802391573546480637552469197309741163106080782203524797994837399498809359353634032990747156883944185640811510651891411382628878549832342191557616430475865553049003217972194844374230010467430098610729659168666612676470634205893466735088858572790988002350053647302589632807824382234393795394010941404901651780858570423334499328263536808523103743033002209315486593062680487960329558567723845108755940213494826303744171944107220476380251015271934681950767956393962195002190638656343007069833614740118839754011414161076806061952498913418888395147212909251696303065991273372781788469900577812564016096149502786482382417483631749464004881097522036503654400940302575950489470321689410222916636646216330941860484900987709096603077436911041739972585529111416370815589916256961154995323284998044297403811170597044489551974208557693707917137841366553817141436415292441576005538419676796395812482350670425935093130656988519362609994181403220332228301028850475785567438850536688392629512059081740572335716389597590065638416903194493040071045058550253182517435713349772116685728589119573491540254455974188257109581225238308630576003858887691372416638973628939325109145704413015857787692020908936595190987031962995759101435229573002012910530077702864826037557152830537249216951676046778723136852078263334581021154222024696237446046063760874635070952463587010663101174394945003877844326872668297783477963947917723458231855897084797594238931415051773468218138608877108109137751634151591072727606010818410865186658248886504271405446866020461682365488923501098811195921365878882738678011616281469947261939031390804576571849256067114662955827740012486071506452130811575895812720284862884501678475512734835361751434893432337414074747185179973765197197892214274188546904728560974678766688072819261403659720692029940132595087878135628212131395475710700031618345491021425871771963204097051523753713878673622090251292929572479087594218185509131343162157186832989971150329140722023004054378084956236174576380752530446829574011580807687650672430464213588294940117952588508942150875660149095105571160283615920976150752904176052261570181201779828661834055581726518321077032077891516698940207843054483930708206116961857851928057340164187709250373915786089236402223223724582057219234890761243705454274276141016949984204037804381810283020197795664559234064175992611268541402552967840074979970117699509543716605305553222035473166493629051104207157947859164939256138842701207807115036135193085353783945668001020866102970412661528526622953401553792333637319228912792593917259910043503066885798172128575827949116450198539538117442644161485088696422593749983309009972254837692087433509047310914226760487076061533166944893156230358045731955380215409610731989322139218718012034388436411032664682732907112282314501956259090616529364339000619160497451902241800129932117324314351566684375875530405795373610986812401102374093025330955982465340060548661655686072115453983997809613066471709108718319659491549369783019726963809876912773924591731223356357023819880514511654742972243656132668959305938637534742603403240552507449107914123444094378554087933619188562742876081019798852090710354321118548954891801077350957969097862840452284584946343820271271760789052164036026981417802857995745686283373222348289089700215640430363437827037844914666641609246090601689522285887361096168442085596749878530365488669076520485135181848805320284079668224488492525990505274847768149595177725627224431820700257935593061201168065304159310464638600170838557954829409309755869784808859691809311926251438359825008602956194405925168337258574180648566826617650889788359676178022778689242087156477007879484283985595952530213483620339537918425501003738277263776152571770152129138425398340231783953886945378717065166268832116584922763950805428913659760314326351800743585768724009443624415025321017445924727115408503492171614558128302976683334154293197773566129721179892190748540519020750590812698281685599021390144518741167483218981878941860341074047679447740723935439661024221304107454279035074256336091079274329453327796092065065254351211516245168099917995395608133528322899781481356547897179670986730546754412845522770098877100142442336679506910051596203668607098270559780338487448048402413400765262521120274193214112078730090463267538533420620064181271056482118568709967561625400262942290850930499272873709950497775305638878523233537451717806592386726204309422467600587509433193797171002565140929669103301247447856184713924384601397223717251831267523005215240047888796968073615865077309130643124855318720726701440733126969607460668314395147555193773120063515567336271974569253638986470437601866430275392205420812211824636782999574077454016464911832905155521477704447516935042793397803096536620241203606059903827063729642017449280859957888423315160043238209769914904446825593047625831744071863828219246560853149268768537793281906536408259031082834785217436394419868374610914952103234054872162975336364986358156940243226464398009297394326189884666575976007647889059911471760841517062759034149134772626714868521344329111174173730052465505350274879344892802434589229521633214413551009665265526069692781798227117828519048371650356457029348256496716659287984930830633408661896180067820627517757942240373042130429101240287233679510267198387495976480504893123346757017119453982136182668325693340867401254826871573572817194693282328604220099091315950563647801522583211413097601021539579969908820558736802649434296684812648491184790790482268829437501709176859328152589224425529715696783517664349232517833202155857901508700137177552278857732837499005340266289101550009893745465785334371194105751288981748567383987088222731741560866009669054435873257172468500141500678439848647781295993514195914802721609597760617217167565528731208295569828141898030819308563085351075814134000338904275721214747803027287272111728017892670582135907171223616664837251230223078527766338627098341051833038144481117886432513599768976455655344718764885687671450702773652230140963267348970762563502751535757462354916267865826487682803590946434035128934665181575082057938399034863073989655986826012274688431339841331089267651832541957490717848459655944038058090934679363727658570718828998369512499231331736938283227760205029675426259533874953607975738249692302666020311661771028987165042175708946013619298238897672797542148596535288428618473173492939489236061608758357714952404336266788920024026587449021019069215231762926712505808636967435328855315111324957668085582166993219093858769843325599760158005988855197381443834555073876947902611468514017272336727424970466236239346098816066365107197030501828255892321918177356706501984543291703348432229278067063249896840015259020357404269235281128536668229042451845724454195866553459194660616850361644925970636374766766948718880344880794657565329502307381694652070586902690672554689741238650125540511373613261307202035710864256965783806978880321340651542509137014785880441077844731302555101922326653185222724143513105342453263504085776361723903367588060844191826273437348776558833016305320268883969783326222398285678487782580358945037373149617843480535122767711277649776987805194457522921999264718301163893131738874456415131110748048616063547167296477678873807617378883278853465818745762349617552453123631284549071069118112863380042640849914900729960711474878212143368902820563615739309258764451059367506912097091380268709932828495315356782271372180363282654781865359778296032167407251797408592666710333616359592785115025768777419601294921365862313325895214164080093576500552791367558595978687684844064333671806869839356395917655034480080338610136473985357677013696792401563774381069053929281120931677494116372589187904736808650189063330667616927190176752026560393334217013945148959092386881956185933312850487535295335817924217072534510809097046949100784408827063921659517523872769929884031998162224666875677738819183022799830011338875477459163306310889729765346718858087316420385288196317823696394278239523777968884287503612763384184961704733805043337588026548004565507898733473900696169590341578986446715017884253013970579697273364666952038997701785557047897467433426473136080806280433572562091939177562394619741150372210653271821284844923467927807335564355662731643424722810443282494024613934798997030007933842442913469902807427096028375146880557453450422194295922649918025705851405503355349379932326705669482577527358708856130562762397074689805662561317895718656890185586015506049985510820155639681121957758113085393537275971393341015336633125069009034776225977606880558922559549235101460469807942231353195865310748381136821445510924525804347592267791506350941500425529856033195461478042220476561611213050920543333494944844109975341134306209683743875410209491890459909345309045030748724236431032449764532572046343205498782562637399682019343952146018066292747870339786606807285292256652765220195749574044555939192219137094694102452378392483838608619633102238492610083542922451494424076480868739426669736956906219688309122994960973133861389388714767417254215768770165370573763910144298999981835238833153266922982227875041385702750116368334827058784250536656960692866856295284743318434270311101244958106738389694450376375051963786782301552659449051428464913035247517377823577550491183808950396528048923007632948383096422146449284143634243277336375842159268120454227271475524440546364629294697541836449109689268436941188404401979285399092606076764882998476227080166622295743141845835852325802777532040025665322023495648086419248174400980305775154194239717272391638553029657155229024743296405824152618519668119020222229453437790675692592418092250904749750722474313086473117106131259766465635922485029398128741036869062693369508775462078226244466538028928323003217158559117737216044303108142744046817318578335195070629673999646857636359013666382513574323654886912846985598592739158640490189394026864069143410340727188498384388146677412959192350202308282671493611629399331296884715178932333570005526001482955691810897838523498315604394614614773785756459676843215754521815736039740918663787867262525980606440302442382558796601284709683313042566838127342160240347386459079005664845304314733000510900990270051962789577224623516058965152045322273946017088608209454385589792118263264708498557005943033475356871793338125414251230510944501246638510906370512193392354806881691526394616435320248209979124751941873243422247635585770717322514044083186993862445616961097764641939344035898962266788250942132973528933646935658232297356823297760310327745288919500509075085462685161973539655848832153758206714911455265195163739393362153129770200508117321277090324799088697789319111397142825410117783864879926308803658749172346504276530234814795359182863306508934975962335594570822927426411703964165810180427326524566343742070231914483610478912725867892931111703611452008078574946659087010830425554693545505015491787563671332792939802156517571210070162606274130017679148222772038114363976561269431549262509159675175501971672354857027427860449414819402414483566656334114296888465448190067895585692874890271407091998961817245971700898012100248225147457399902096892156356620967302823881237938547865044860145722995638117308253106449253672161268645436187778191679737951082008071442001413475909054875172139902763596687788479561235718556942058643236114159134019346617562948290386969625224912923517008511578706209465893436047418894235534672017411358957149505258825391162589872645232463333744821541133514158989686484021197725196909508571304094319149728974300108529059338526845765751583274806357821388864167518554625283396323634842124174343120717380780368370797632653558245914052086590724546905468367259918163630615484150155554454535311516081765913857613885787548642581390464249128696417554478564813372530186619146205575335610240318996912672950132882350644268220042159116629114648914305535493773199918373792246000125351420894054769883770538929359572879672218109421722189277459478323765819310674136766730587516050122042786662314229443917153990000490839763137024858713600593757106675601507570537110824516275058902583159453261520050699548431443230819543590574078357868222430806622455625733635725702777213998798407330668507439284449130774015022477552149781024432512404770895264159197813933597051682486220633980269956099308339055515387197313755009034274764677711555087623452821312456586791853418537835905659866201134638227541870301348232221588374672838904223693656101108507834480485306206215987864034147062362318681504551005361260084854034755794181869037072495637633574576925659383566761644591765167860634907071013535634013644623074342265839657184816821253116812373501396635104517821967236187449446908031252402331228947901017630823022836773801526843969463293665188446596795543252852243916490313503671276491901846927293860323385890347469886847439903239037446206588058190904130545150439520433161013166314796619832529345396252905271493726292105638013392296076832250084165643896709800756958497521903040818350889037196183642489431109656140561896304889555779898812335909381524567981034661597256670864937463828639985238785372764059155472649903379230540647804260568524565756809494896651263830274013211325315347084341493725488961808068030438579092403382515677452099218150729608227146817213694724109744484994616636610341304404888417696565764997313316231487222932784908388070439673491606610883179769996071504247469268985506437576446589568301143807033044433672027491640868734564258043593722473421196742250021590064071737020753494976090813296289724357281573996359881960758150076421958174558509986930352240146781314762692016176125218862607241561658981215607999915195542483256341956621379231053467039066037562905536180055479850191273142752526716313492668562412119830489502306124105314523026894432065922976423022850783172222171073549625063919600051447703214146756472750762139852735411729362285594863110142364910989629993797917785047998159558454868466391230299482939448126384590067691397781164613417579367683298948583241498029672192557170196726228968621808001259938162254941991376312122031615601107613617912660600224669869987357432546851826162484208710250010600815223858433358836077557479794341062758418662854093341239077559376269382370228641937491259716366922864516717308789768129788474674243008432596525928325934594403706239765535435849232912794815791620397278975064873684862392721655007372138058681759229872999109670206111292261004002496747207734651362902038621904525804225633165200357736677721348546237239449417984636744883448928876771031179274272360128517334017015400604599415090483225144527687482790625374415722844151830301884269951903750247438858263558708088216530781824192301675750776575399166758576875555109849330206281597815649574727068569720560039796368403424247285001253389725427212770038835839209024612418348789528437633753615099445409795940796639291199046136712503172036923093437693288919248710818039860988837882265803192943255430004405308719604255578115845991729342868732441163272149114638169210880561275859434117745962248129908381633228850957618970842554684989501944138355438496127815973338305669979641312066905043386980880923423891001055666224775726209463231002682983742015602417966426557973021553276208621804700437939997511269724553587013671588197656782152624434983603270848768616690340280085697821981480549598239407447341502026765488119638031272475841007473662135327653378877061068919455624439631112395694888820014723222559822477379348559152887472977265652996008262120720413338779259708977958565622651566765247523673036831891958556208340194481593472141528763099022674226735539896547254717935185250720086369757616465214533696315921905895770739851394718556320149708300584162699389409907633984094257622206605171952849884985327277980811070218050860352780192085920822733662094236117446642312747570768960246112349475007441077442504439641463469377849592634123867830924616908810855187860960083696925512965324122776274234067062372233514990408377365417066513677481225308089438429292744747126758247558122725433998135113496961631454106836417289705627847055448155541961567064255617798362926072501897920528026602765064063145918013878874461929567417452541799803852275825304850825424194475405768474605335006426113287503371197168107811855482620763476668616440681445653207060180974259747692868770856856662473667995374422551877742385444273908202355710478864859631761033403290070680472465379433375376173268586680013760153852771191660708724612738196570522765657842126892904362434569492619095462103837709615151589367297019366483653678465421234909483990547824979494259572767518324723670086122096202373558192337768229806529523108696976960884642835450436521110940516692538123762064119383702693241450326202980556396585169755406580373098593081001414419163098539449640983656293978175047115630110034488076373499165762735886372934415626288810292911051199242491327259436731513830705943078816401657808273820704744141244633721870781533460152988045490749793536379844401432255850679841780947948050557827301243040110475852048933820361828343735577332511687004674916471895552219982063257700229875682751437146151190780805841326480701666207003040172512905297698132866765051795736409665204353285201808772561205238856684860315352556869449278262452634597397585159008872469060107135512021346152145102033470850232217797709504408154390388354338944279184516418120026697458009290641776323582231463881344885685392462021367169843797464223490163685960029483016553508812431569872837066101789167663141552391079783610201626029676503115894871396918505030384227211724106136534495394402876502059791196037014420873373936613277363075724442884249142501406462743976392774905753294384228032219720855323304280183329726749043870713905584597247159265721497319326461009042172498836575203075928525986938927548903310373706025593766570296900391170173638054870016250157453801069213981530796138702846125667584441552110917419916461654349014831243582034554212414582265196748119031699861163152418263706488322715860090960460586279416901383974919082650348203703336338315252842931420342856051522502728025930637319902132034769375834024289450273906654107549868051108931529385467095630359583408023633599316011528902053319595331645212867321888693888342961961019633269316766037917069522650391842107287183369237164496884202145051450347127383396733792079641627449736738702835186976173291139198382139992979704863612963083259536952765186233013335125998308817397913952412004217172390125675260567871287842390653217844739357604004551744079526849631923018486015072208890774229872599645695114076897554557392803674050673546580354207499243786532298058483144518432195853060930901599051652944261073049409555931229522636280191439557258017188674072903555101807511065987072845380415646900722838630279586870977687737956139596811728514507697784522213077960443782689047736349498728891640877454784385655750410366463013844768142757065347481138263792063699773463839990318469613673197559633412354186566170250104492969620981498403198326671039332328049677268517198533740927436516896385523090876379280276970619609686473838520159373104973897922465743568132010934452986567336768002558012119594704008821428095501110301105809076702755825252529695906768892414856239382925662960446299697858142844941660989172415428758995877853522216800757644286390142791549365740656895330305923142511410131841728480720449585148905451750225771435930166579515979322074573238684199063091211397262667271688573308588208552253986578192616716313436121353868662764952768268621426894843630194584352410729309311046957996292578657466888465111620717411488135290988785368971868185062012464745935719146833456224853050819069547407992162379197861214770659689570378656125900348077867636503060367921915400291240284230096484163404597663177239925938585146338032150241374492010834312831600162730989250687075335321651570687316905558685833413187038449145370297557509478282659733546638920605712064747965892036219224630419257025162906846205742915059275049143451775327234471123394226417243155794951139873514682965078871835916729644004090754532783585927439376982951385600530180475917815802039819493778634904619632035794452888619516308003031426176687777992411373085581172454217659327340211052919877508096499882138993929298042999010035856498079946792107025832311588998043770054935869948955320779140389314731187133311983714001255769573362994408296912683998224785014615465404485210498509623444709392086316913814389658559187600456917221739894879491818119753954554477668665489449475640662665828036455494299983781619008480464796536590468920443547422825578460293155251758691356852776217287015264450829371147079478221302897875197013922654824007666517452897810401912898266905945970140292033717045019304893569556888730671615053307722740493030267987928041819437398998020171404891800177116673163928504238611161585232697408606903612913236345695867998610402701191999478805775778397484705731697232017519131021780897832551741449845048508131669814627393335897256523092394285433991160978528417384978157218457479382303580340334527117687669313727944101355008170016137702935406973206380660148649457299649712542950654110200377615867241340449056707403438427679006782956369767496379932670460794674504687593646208007674066425422475463969857166804923613217441777217866019036520313427964517298922739344139164682340262998620381647960486194693700858974687566097009374578955601277131401136252353812187275912478561762441515766806509681685044919529390940551929649761733996648789859904769999301991759166571462619693532006720834342275406364633284544102671174113681527888274743686321992908917774563595351286205730810733382895407369258795881314093219791747573812089907966745437997220337596427529747114011178957737909023859882587968797565284248518389754371233139126259847199345048692180047985918276415957739448546364946777550291174998274294430049893305834141264628294609526104049457049745849125603445379084485689509999508287525981743169489583309219804863359979344898694633124449891632970117481796303414011829334740386302461776041936248812511502363563105854375143237252873867987847279126853055942223802686332535111934524294557261260631211361499192714048217079565484020633531624421675750865288803878550213270307564338685788422866914276484301390095084393185943348249133370443194433922020783711677719495755013928847739572531862947913395373930885895071742629956060653645564916426195130287778413252215763404653461607319592928960864747538842215910074547415241912746971830423671280770410913645059849680247187963015558124500384972454018325810459458956460267335472544399099264491520925156345614167185858749332184121806244619509438739278775861246993840622135947150600898635205763894206780352525132097458004895226039023400296694897347462659593882995740547399720877211106958597987803462945299003013544858433855467832816196492874961058637345067937619399104986781769229589554320007646058619006173149815676890307184330442308467670580285439784113233594634892372264077016747885807227881233183499161403955285544835245939724675867262070157465588716269805555316585226689420990980735121889457601343182084562362446633001510807895828809239480191082787921775472242950344763085485464528353929795639770140753327272937982549599711125633796097551612810312945160771545837136780356880709280992347394160086965632948527269157285725057768310128866287511736513068971428962814469109484797785863326840434492463520480061856208543273485505453020940215583485127363583120947811350504984931538006353400802111629043349348967275898598409282972490118252470602257032092664024225581642075985605453804886007869773390088601426453667094105728569043523578266501508240695003445804730815461247079933684694567468660554936177776306776705746866127199914424090230559963919111675458207739390409585540013107612623233736701663902828707833573405551278281136920839221371194349796177377564569014296915400870133741230099476378150237111343723784536051347559728452983197905439108873279160432779350553981765326996718666395520362682432674941883874277677651614290932856287945363207784638556471463461593499214101182664251835165818160653240270261285886934737898317128886814762956207681950975708932058533870542803558782879206812947822748079161261197261615855303589188256925412702430221912108836630739087754638471713895726054105695353180638781454365528462063722474083307829388322200812861904578664875643538553077904854897711851710213594214914087295690238213935472255156425607787189490327587496447668981128085268364385799875637379583882196548805903922617023626430101249263964386845617322800840900215316436600099591498803165174630119727410383414971148936507788747757275746064179184226196770379287641745532520144408362569131541000861791614581022982033856983386545403849329216209867936844760853097479675575610475551130629368110961098083413691764034915788293029899165993866340449755022432687158442332544368061753944995616070866663343170996836457031800753012004954546354839284948354949669185172898860289614131662990198817095950649209401005831897394543172895690289836822869262803625206061454306984094242462105931701228012554043806453925288455239187686665643192974059748223702768925685242478102857997309572075725566038966897225300372953285010896785617506557999368299656211694867153514129882016644304740223680328181123032764400001391365887224517231996781974099399313865059962923869196357718371701658158701197398723247417890820776722948885811474584875315996014341062049134863714494546566533506449219796059556573720180740953348598983881073246362282851202888869072188846120708882070420315667683199619995640627838790610094203885058691592734446798095316804551035369980327110968089445643387574499169556592801987264748064438873457144899970887185216658595174976411698486940694993899696695544664617724852960812784132527694459091952363480241436278827328711765108854987979592983566098822645638840324947884541880479518009470992717817980588277772064101526951778531248967829571841266469352802573059397296854431316613338097458306418757736135141412438353532333578914536968544967532581365408247237483170275384533577466522324497094518690526989375735783470503516233968665032812963769301213143053190853714386852583123876983131066779705056744927838324424820256420402331560875048726331411679036363699319071645058490067627414244576141127809413310538724617034251438365755734066926631555591586272573669523616666742272634020928276433358622762476981637946052554092508720318554643613356185803985882777921119946609895079314577991814116989698410341929375226830700905358871152943735614428017106326085514824556691677604004049717351632047010591589448349263337874059112706800837958113707063762398322807849555251357091564847400531084314885358595693676902145623790885497230142111150969192262630888290802658006424113160409358238510617256983885568236138069690169583691090837244497386537183359532157253976922442562852732173655069929404065653975078473629478532366162618274378228754234023813302061776627774280319458149428645219648976091259425101153970670805760888420562179582514430905954004880026035007551533760835955357356852723572045301021105531721315702294934003758918942822604262459209983418435930532919298966403990782807337479481904348176178778386750441332620206667881730816729400032398811742430224676849769027665050429134261608772421892622099528823677777330574366872823051496086652854496666920689312964301571800961927734669216547321402616219080046543291990778325419876703372738632432697964354894499155061041061761083039442893888905601257386010294115008929470030354390785759841780304838403178637533671218419404681056051365771007094511102445689298736355601180724114696300077942774041600173144816796323364706204402726464549605528698206232733100004590965184726636275462673680732495667041565330042705002831494313004510167358637910174715608825792686801243775890292218975869764217246016869465395938814938818717011226958900691977937259971700017084744007528450815874004448756621795004045643539040032820521360078970981619749829294384676053926059567594703124739605729072148899113755444212056200745560278017222886381358811773904656228050247483110872852794867660689230406615375162659925082290426345239721357288582643897518548338499685085526458820205371904283185448068903254574446329895905865199611954410623735168655549690735191871957158052655121092911384422263512889513320682990283288356554867415829527290401146291567974939497510367238504348015702898928964137187042714585894703130494795308194353877587745047745516837723239404493288440150466216333761161555920899895136794698315881203621879429688182480305608041263148563608841413510741194975684163245699743660068448117041555346152901025189297591016694715740604859059083719581904538970183859504792688773567830834100015424950221076298412822732475499236446063110768314751395263088690778714525753042105425199483910932855735218565310135338836482682360297579160196659571177546882250466735669651941144050638021987882175094108976852075599412484152069266447185023680194615382838133117160475955001725095981122358586984139113886855155499956736620525423004927963716810868756568261449133613322516204664847086585397617812314078179584584963899186943573581875276535926204821073669444158267736462242400584114333021699924976717236674254693288595340106543030873276152740137298845584097056489860898181891962929678666806820039081920520466169235035363940891722778662279511797205482001665382877807878058126219996726158017272773436396889208146206967338173248411611973367370276713186029129850886796082755125443947819670261284693866115639827760400927979842071343329332318832949896900121436853442973506571704478732537482168543082694013970861952435515023658750449269879247351441303921999433257931262924391492647761714180768756493238753177658186587143570729110367829960539348097695341655268416355096314055749532438499237614452442581935747982732011268527428506161888475733486560524260125283198847605999201394209801929946507450498044177722721382002079503580008708439264913369571751996537739920185062868003528923982316373288717904559129522225437242282514276684813009366247093182226660795938765243944428709099784318089792439528130221816574858924680851288448383613451276604424631822302045247440411317709673332315816850975244823715974683729433629637834167877171398778246984476621336382066267660791035053873434086014224527917355260886815715858622580386326813839391438907077244943284361955030981700453132039333887241700132658980349219209431856677754788869294660869693983361897288382883320818634327884008823338008366087398273751116261648505950293604921301390412347576505907223987645681742122560811563522886444721484431944886832763270426086329804731955810040546462807881464684808829174286808499849587508510962775937416030737046009381121290609550835490583858934997065223795457551154304673886655165574831978347909975339936863579170860352553348500407818493901513375108208065951367077987059843207144977569641296628785411614346309784445802936860802508725517396141610747618943287103397658348077187802248425010385375068846270335085642738806013237856981806791840426168457158714477288243875402627984219314780803365678957773846956873579457786949150424228346000463521200006957954354199484662035839091140078240915948120406491660617454642456724793269270946183385569357013150879047696107742117823230754070331640170714499749954749912171421009150031086995087776280131033146735699921893699423558861403329407956921258866817273947069750196945355516232407961564524303088157888835216833498291814190183471627693710178951983368814453148765690422083137851217209798949838483875514181143934783543814688270879073441054130300214236016563008175816306278301047099860248967149666722138553480053472348469940565009766858522301229644918266503973807063464500405203324205366973866385437243537659432200265558625614465133244234352974673744772573750634334997547471745014827618305035487921217508560628477435750665857792197133241130687059565052426014865452191374074663212655447774740363830717294860903308854645419474500396267898527489157521601246019462255297708588402486436947626029188949378192812733834841213466083432709391215231696775724611270013666386467889222824920035023869705811355066739265389002096992269281944702693289958384172926429107874986016571950492755423803749076369753694611967660711485726814640785620165724781685127774932885527066122052146309337332258268214513183467488768667294587816808742252436074329821365480980979775325686677942161456779074151819063878465539592895783850603444463979658613909198724418810912702877903053153401611793637966423686803838861353196871169307335921627489377794362952853987196957590602998574750177312953127153709452588081440510480244909041920196301070207820015583670228087079486612989523615950455067165895422778090421668062446276587549343711692441350802879303023523063149561337586302478203299746619280488082199297966284688091749838489227741552279806416455278449612755318143044383613580777930440278020629270875712512821097631465971936689112896162431502599062095565375752570531633152749363482333195788551915689092170585581365429501040839454023639125037625067564609001621659351848398541920013798375205669486108762734267932879951924223653381561912875421401193059846863709845877103059897307244957021402759980899634353316202461822950295264261997191799501371781551827009294813835613929706005415976045843413747448428358556341446239997638706170223096082450891384728299569555033380558689434439186741032904075697480207257598368030952765529811213023791958602513220151304843842188027308764486385065208611539051143893987872405438484463906686297828585159843957168242086570241461487543906627662463796367834220367290589621898852088162031479799842669638264819073517713705465306201405789271829909455234669792399510585452362011424735115505830182382455780682474315273616914731971460764891212580306921260894409992525546584550773830130173157043337865094036922190292653178577164180625487709978663762957711576550589117349785271741714793516856569887150364835242290921431326618275904342668967036099932114172925706967932698947815092614348605620506907344105316801569876512073636511350993592635468765977888353902953909873279640973673200417726350538451254032402711308550040679857148503949111422022428006349087923464163430609727856664302786550070763930873317057184182893275123506169642249034270466666295039343114767819553603219800161605258855439536444646384472720610735748480194515945576153768383918426816006571303849013445934553691849016461122302120261498616445554655645084380842074821758269596432191363302962579229028754122830739671068256025024529693271990802664523794425128096029331100473453915605111367194738549042168212895342694896779597965653253434492839725896995244929422945707162250285007002207672762000438045558725941311051047554767608294237988573211961751903084331275320682802666950421220665950048617751675861087976288252299440172436889448416512167550838940381330876968470899278822751491039368850082668508920587918110777262076631533102438429235917203536549496419221374931945013665827694429165433047709049107514721658784498373036515576176697036525853935404276654305499619532673792554363690904660277816500021809679161418867338233290205870230787069280453025738662167317180068599918212801687866271090799615883883434769879796477668957519868585226288389810181849616366470171865266873651477295847383881777644099123154785302883248539458009787391900727563610447821954098041581549860222372205841126953816327976511590161246150534043191364652002589272866015968478022852494195655734114178387201051097869846090837910998328193067762126279382638550607004575606597266771270667928043869811075663930891690970225283013563020708980455510658377097642612127448037352242778006766070366762361556109051775837608375225861352559506228879114824086034876114326471959908768875398104804111928962638948683311770891460559993659915911232337575303136652095650792495792315761838888131273973832525494967661027976361233940194590992973051445567752885288924129398949147378920433572170956230222863905724797829042454837877534566721627680665646713000079063419482673348308338988723292095208587984576984904320864772123058864552695969609694800874066589300261928769597034115423249844478004131991243697809267324067603452112952980437233511964875349902992934496219839232904668506224148568733900594499424234886407653506210766205903669895849497244866396329585706371958613590230596079625995972247118128288101173962919729906341643435119161819599117575289187678362731754406889044639526975525528379909573078124278971902151522406004407640551992377223665678508380196612593966252787150535610437493947502836519646202266866077956669231081728939622370384970892517871197651782291870662216745772726408827754051040012463774875284177383807352366184185978989530371505427900788780372586369650559585601870589113617133940586037687250052688074694217578974958366113523737001968104621430604052796367281843877875743459146096672124668278922830168446959062107405021141924652912825690916668537391831353073305925350230033772250634980759812591113862397009114561014738382848626764233794907855636590028071500172245746165375029648292170130138224514732997152557080676802422763233851217988693210180549970039464387296388044086512773472691804461344561248015410933695645532911021801205853458142890962647785976393858180122443118943373760474765928542786951736385133304523124968577699443950032256543958276714678798579329393547235056494914029957312382146610806450108487243283799175634477727868190745792767411295283321150351118892404363947297422532731225496464927586313884115827763980446740697953218335986604179101781507372291976784497336949318340592825017605208931133366282403502274659484931330663545877836781741984860402386363175051984335138872594477724804083666906422834466133724000298263509995985724499401098090343233915695799920010741698005902463669444866652757756836590542812406929173338252242997604318054457259972133786961765100045772355854871745636973807377108361225725101193832868353445545223405692577994590562725991673267721995292575572878499697070993417062438282550710823897145087818651241629964227699513894787623368351263324646234070408588187796221399564193729970048991721764044653218581741747747953576825230470491028845453351301396132905189012481473460886655635522144902821086492921733617976680731632869381471699836384692248109547650215599988764017611939400558877684320386031582543332775753964607042623176935119889613902294857299257085564167372316856296342531569252579829392560766415237611989633217139609560254546968898740651216497058887352781673262515087875119552716241528767115229458208658348319147398928477656996056737555145290430984014141492783983878050496251361607401280872691249316816743207529686823723263927083617415084601941749771176865594348764163781137553147473572864626161382748056698866353615982475168053669095251192169941664819536703517507672543475459216910627257198845371755375276816141886025838609183366501695741658698922975581350731321108883088309781054095191493986112119637727001294618491768581683271384454396929494919102220049762718580957786446186530319294608296263084692487773644774060688682454219839089462241679675702189441865457585720097468595106091712346183484754664435827020882075055882169693290754757075994011236290918969404909476505106183666868448205265934719055427876604652569552066003591452123776938061253256538262937601796827874441795199569309943139108361762867347762024224917927409125766217432346927415130649026299844515617897900868668700442037011268502459409263495553202649146640114044054719776298713473905160346756670714709747225317626524155808961278248869039891463424717379820616539284277898590561563329757876812486774503807079161878386785939058494728825458870693247372294801863097946858702287968519450854665572198231711715373663343723290489686168412950074138034033029521107545917651216366657825208019251159124769972961505813704000047347402227473565480055365935828253062656719853495607159781422151545200447412225733532903262287695645275659298698315476958255562146429447787435124185350696060090766763606632379373798429030311807602246168462341488077237648547339691257009004366546332724513721517215367450969466637271700243286002473844500451197098399959074747551217331784562848913835493757975794011742822033740696317475332379018428404176314475372937538678096061937557009350289226622227944799502850265578729888808719469440885760688576597118515642171154040996566027559564945938764946908561937670244144001807831240048761823691725240240652824940383505851566692406492397333084689094833969285106784989760919808736542424065784266507771400411724816889662448465935869852664855204381154241038656160279750652972302410402915331814120034577565414406489450899697099166383780002235989881667687638495655509410137289353199971465440433381756779722422320701442369196271374888823795537367186127895738210139391034908708095668461630219066263428531478489169909905115134742278345716292403012182169875470559863368245336890979150453210120357930902227688765729695155689846522814751423850696475759762579021333966704018157409553385619504917568121809169903190394325277643610530661491099910073761458381315332724294136426604412080649580853451238593082164298521514720435401442739483601011326962062613494153215948152658139775956007482483879831136741079595540334387228030615899729037124358269093858369894643705518264777336371702336931561929354105747218128175332213218180604908682482580278842641578701876898074337844157520805555800681965643370545501612908445495238687212117617494297889368169508238335305509813568890772277508430777641060977774420183209836250000753769531220491688533049398748599720066181904870799344717081944588844016402342018975198100694238045682590753556982117652492493900401768812864122707645748988287706409306280553294097637019919492731886449308365642166036913397167755354753589293545785526651722706356644396635171405170968460696726266832421155910484859797625452516293459861151408179028531148290941835596855682034015116860199344107552690160810739308449672074552892845095591782359616068655367131518038010012345155855378453629027717542562652182141663065460185697650953087487838200729428064784382009020873912263858642951611286542240996964905096230858592679677280500944259051543351538518758695481553264420956172382983551326503409025985872643774644201758520408342111374173399860856733351690039594813874453489302154795059867233334821992613874461407791563478939989183615403031367316397756766076874688517006107183692764038284718760873993526546965956593639918257206456028224809189161615773959566908214624802987349430072729701678752321769176223157224706648554487056077401273858762043785851563191487419200955026647289532172515181770312806342293344197450267872398892168185764956891573157713241285844202466607912278795519519147663716013002959916378431649530031909898749644984181792064511577646765323950827764031163876501856321420748097905833075418153203809257598478965712128653866009643130760979709560997533238178360695192838851960234312099089739984918333281626214448830985154384493321117984997021076324191293745501768456064282891061656238882021021847783745689894591476693957512767865045026872303709041500929071320973280061519312198448683770534945905194956051456764349607043100985701246857321983775207951608163931264279674029721015858569730856761993015487597749580331688263448553361992686545880405398356620492141306165653155521111924373990345337064326318214273664664285946332899081504659925303421749775069194423379682866582502020528017911740845383098462441174946324821842314482174667002607576183930185029723703172072000070437714494230582902638609773505333748349095145914283272482158457249037696506511273904848432627718014433341443500722338617559453161520074555973398474048634648959357159767013595277844706971156453299751857731338625957047316191733312295354923410236588470797087831616844952206409309907574868525001205043122734372904089699392342280712347723410518924491439755107915367735869367592513349755509597907675710594611272811983648065956684553540115317328166678116121121450564004799132446631082611397450944527263779912461690281348212000648076160056267113155385524581298927180436161253152433312818135253567352572814099045849471620792114996073110476999458044995291090505004341353871023526905234464954026898382052785910466315767542017563912124798752238911401342355073692630209270328372566602654940174338544103840078630086606613281942153130272473465949054716957509241074309352491357789161274473179547071654463060839452053096949321096954385501812197446224645470473526550656518765352165860917414752698525895530887015114002426753872197789466707758742642512308446082448479482042092862956643910881886002469128260093845528181011637170749873243409524079801386702025407569559588271234878051979096170359435108375588604438059602734535829476424505850701764613566174968174883530915135866968617006282061136829317478368724383342610059787985091076805927051586906678865552681798022838893524135418670229094303728724643537297168473434628826961361104871557436089609077351421850749884385034968404734865753577010024443601505344707282263787776764956809233007676229145443075150759336440305526801637507272424732405385041448017366256864706796931723882093359434161681888111011448343950017588571897949064356959333371744523318843308520288709322967343452339434035233271380722324659801837224763021156244353527074605889162532722928378393119870025783586562021959687096058831870546605382389114594886632684746684816766014052783386240718513530633297498264944979012431727108013250480866512161652957381451668455577255199443156412227123279797484848804263240075081213853798527834625420039145424956599993141611262362996346672224724620294215698415485470114453964833863688810212850642916740980511161275293253405361622878473241494376909256757776581686897326218339358261895601251647548596977537436142349041771513800981612436195406029567949844844931948591693211286465687966411696681288533312341941808612677819473430511497989093198797338425552263697558878255155419657625786545068552679805646911028472648501579440264832123503249491458875672376754434843312683155147266713009262055899410743987015811222451254792880915633698455416051035948869035143162783838345070222040676417988492518375961566374751219271786299696250112214478852926297168836313495409323969444994951511497732106954277368459126017752367460262085649930959115388667562387985618590546398805689706036928870568995312862741220656630035213588175760585854579043265548225088785300069248312987464076668444656302890671688313732963623712264087131407299761908484417864275592585605044422844125075186567312999215891127281958124955268882753365610932725655336085119163306575438543903071926007184570508546054166377570889859631392342317052970835185152919824615542899006928567685510027670941806415374042748923253215356890074918274755109855571380094851755241896321662302325135890087219273693279166576853442310309633279883289095229492381694277158965223876163625607395056173556142966984759620978896945056718702727335454189924043124515731272278514724823209963682671539036647892831911055514293044686327519691488241504329149980873038236656632992547517173406045293959559883187085789306699933136512224065292998473149444222800371363928733297108135450721542741425686502804971249780858072894160304667033299359474497079393853199189216373239230041134131924243862950123714518662127897024888443274276785880237611469307023751458453944849618015816836421814231824426744534066303124254582051260173853678794037723101697348078171466654253754893112312613369682278118100013542787903244562362068508315078390176290575862219957384678525872747996119180763663173726648185873522721370742078577558300650644895311874841280936099732821032736822928213986502936576332478298798645057595090263518897331747129137712504902613454716025722165200141339635202644886284460439634554463281483258136089906176389350138590327665638569030848796845082061277363639839213294634279767901644781828650849018442411314272615864061094160774711150120586125351859064279942783579308054896543785107014116727713470850214633575627109952444852186198560710963154938326524412727634093493671368123594514385138919560337207574736982574609861180897430344486795010493657565853778718741094145291695517915830537891490496618063386592330147686158128667707774021742989086207790997369530885273481142566597059722652671112387264538783176926226170371698220450201747097420169956052463195235643654936187989220072400077177865333792094521494643684688090197686702688918813628532304080506615292348503948082676616745204517697333951629375567024126185955287127078579923911225682711518839121324925558500807168475370072173840282839052869118148003697620814764778748651245133459844968725227539036620678358844840201784892708249508515511957072830265496787336034963830512269071464505022422823579337926592371710498013561307100483364532748069752694606587371637924691824950405621546419698785667741714742889939677456409643501148457066419510377647124565197611716259144117858538229833857573536433820182847113721131642202964162336637827676192233525304613155267308084167976486113251114220487542640714021451821104803004542645470159593205083964028012892282224949784150248728806788448861567852811709832803639511374643658709251778342626722685205044544962528303049799345037179321955443201958186367832898179653984176901677353158890178370176330870552934782563164982396709710431816318161345943577628539181874882935026461849869325583213304591925547393741304700113679460694214029566869147543731136700018771356478557946919410090010582275680201456654364142384960419220904815612711024685527637151857049960378536273641927745138936059937178872839385453646445254920100118201132352716425805671053159661710953621559146381578466049495568591756768786155391780008226223458871860083542733675911959504804765668933991105847109191293171421181523959735588696488398234028191454256286714325112056824245511997521387420010088382026274889229168088230426495855901637884896805314340991315217616301986546806680904127367747569368780899733075311770489239001305529439157653571820431966136617373240302044698021794057807684198528633674737991486405342229364792571335543587390745460569526869876333609329364957797043011027424664458751250335922493102329725869864362889799704637462009089845960749766488922470934236937846309882298881297512465764454725372511115946802650417978584310502535260392418574731259659532790536410649067042956684554783092241196049371205393103438911250410236767182341442736426488103030171192530724238502796131874444639167971185613824685156485720127324966469996309988599735939717825359807256231381949760299301126009695886833366094364073631513006799196639324661443730750835284203831620983916106140592226420356935976681678704548479083044674526674898397770991631213261283810328766000668538267232116563091345255682890659641477639966110414879854393327322207975468652917050562148678787088895550767741287583805523395928047319212510435893358774942655690048717218000974765122757138345303966384172649169310405605875539764146226554500550274736588258070288338806725337549119611884156186364782050059339737420484638189744350980759596520254899979750203349075136591040694243611948264985957717482325385828740179320191974909057076616182333378201836004113630814460829402387645352263407861302636668369712104985206876430485768806244687683806369341372892092436076740598343688037209906443568214591418902649206657039494225352732711532887490709380365767610309238645363563032418274559298250438375523643363404312050173446601753513264220519730943464956822292772412924554618124508101307501572121773885333967838982860033617244046035753471942922239858047473715807778819169831728303476257005577066515366910901755590704456739399913551743053062365212451760175698478125390464456065208539078965275807201668558296610899631231701198643788093117630266550995417826775755602269216056191739853572949938146478780520633273399669437657333999526883685462136666950879836985519735243501886310854942531018797901969306179952280612180397285506571644523729228933393418796815379125133927173839648333561506073774583585940141379308330864789974549861857146656175537466467316756111031257574063810865097890287299940900962483515375307969374456342500805945020575233487576107063502492939897135509682538405066045656619993926744401154543134610917793381086333385715866451336962001306641283224273018795807910378073178679035737317681612757424020280859905511048971838617635635226535469100501817707357572365476171578313263490897499155841496864217685755260033274226984906604830157551895783600066184403428954374894276063008739560364335453471628539162365316525328184782152491447906299599724829933429652640904258914244546824694799247330368904931798163532661632594132970001909853042574259853823357266860871388491494283566966308489907976959523390096037985685177227216940774501267456294898201844628684410130788713853471890220833362943717369216700103758725009737872495189124731442858206256330266200284449555933360774878106946635987219669814042321881498246951507700164161073745848640089734222622279398844415584853503475534190850659116623790858846833116601377506043494614240781048091822804584861672104426557516511899617144391422896766149920621944000824049978408851838016468703932522487496976984985096422246623834609561299236924460286578157951988780101407523294457544569996790146513836665572133941662319171393132661709912490890950086280658915937775337983769824735907135449922331186040436095695702629043254825302664593118550900907180913011669825637118038611730976048907728368495042725025612558417100353472463438455513317273623067785273735686478546760934633473273252585648165819028959223124664239503590921528950255563511885031196028750040639523292687730282404946241712014353561514970448267742337565536521620430535378293742494908641043412114050048221189133267231169090093105159098275981706442101053957365815563757930349416733079815533301493665929893272159180282748318354648459758756457888666374988934521639837366698785076629708574356658016303881254294454379074615897849105168624315241196327627334853978868862136109587766710933091188959136615653612648163062078452892233066894377162885649972591389014540174500254075756963729072340256660933406849112513721082388142237756053826418494550417251226692353882674968164336027215356056114387305161111136780244050343570476654458654892042730660597258028322514682769518071738570724592313888611323638544378777514864442296240689855638999651148647659487966606458051265190973139320320240542686133734434605744842310828605680842889374192514825858554512969956999029608616201475852963298156721587739188219362546585844778535632103810153097016458294236552038448513964112280757600680588119034633471405217254596001715968658041995018684798059505677630825627747155283376595818795809727311292079966102340501757659410043949987648371761969849244343683659724516854758805089339234878020419378257313585328981286782791546423842373997894104196106644995306511725941669793371250461968650453968061025958244923829993991020361424956832026175781290065265997675207792407356818097179211759856083709780380443234917510409663378039072192711400295818691918391509372023759142669460642909249259446315912914109550645371929978583646868276023463516781909838866829436420947194703387512706431112809699671356670532903784661927215758308969773726432680324725437362765591039789569348823876561487075053636200084973427952791729184229918895234695421681189398133199289242155282080597309368031470045230315652321333001252696203209285361443230105511518671833531194941596969714180873249382966388630622348246949886574424079595491240609708328161264471467874923690128044835172063721874842476995926143062300938048976581971518616479067556393312501998978019740868451262070233693178038847983667332518087558456138678664266837993394542635075201202724380459688412979429046863001955076639359868242061308357002944015209571534232495397330326010500377590767513106351799243551522330805651786438878122071303925673968610732152255586338137207211798203251053957401899140792423556602371662229244653394008785857313466084000258134818493104032680794161686023497062304631506957954537147126528856438043291325228404830534314046629357785415457362652224400612908409784207486749110770280691097687615339423281534855091658849293597507929436483066004038405322697979982016014075986256537166042611273122420051637591789083003473973242774494575417315857614073779383223830355897026968990495219620778038947078952003780176648849733330221782835305549953144088578841613099975264488068263666488247427098626216133577250541895239474355568273225612733855855239429143658538257541998560037124082747268245712697582502575100184446321587826278691410554969136068003301641808627476602783455496690185180948217742925245368159684068631266931266654288452470729969763725335060524872063992437634933853724978762440221435810103317838436629034570538378478807895463375255772554691257257542447790886676909461509880948468730201590512752277353778971860567156664014704444830331860083185029804485930384010196135816949295658749852230092670173202200670457377973712870643895845327059457375612956860839111719629376648130886949018124905350433428469132521453466086373645779664607554440091587995132399866894898915533877331438745824115087721683582873268336375317595570920817910869415328283783477784092298031661284124336146868183459245721303851620464565791620643444492111354921920438878433806209948747598430417237018797656867748291432154100520659594095869382551412060715792904378606356868330785693713882899915949846721628700179452265198060614585645155363069735813490013381875653064690130022260759800633434931177376956396583066855078201618986040793345205207034547910308399971289375128926964976948946829543466566909795559170042114102529761786030160851698455756061652960920306458150699478343636809096113519954953944358352104892819698624670963977190331847397201593891919013445546079040189076637234430733068794810183257749615293349623796193450780117422356424204816259414775650070687183711942053046675642783117521046785791517043949758171839915274892591741653862818059836845392657317822178024831069749082328814365802299080322580019905446977982148027569783856999419138703922362331428681093210574118740706495708614203643486986725983757034892366303297301931800473266667437022295666641187883980470359641672040257299649862634166262920631934913510035406336536787049392138679468862458764284963752771611242408603916757980490116798761056668000969808806652870494292769854935420813158796452293345798635588957830019697107906973081565264823124903709191025780027508467219335906979541773934137268406175670479976568055394860272345141569887265659957306886567576735208393791243178679510726602203492687149020236910013486319112078534485685604887223875509829895750672183302069142811611471876886339281049223497780485062650689389960909028974858909767009794296904469188571795565667032532240632410318859009054363231071919282695592096919480914961108679166063155283049443089036201346862898572713649360822377784458207261576267106989900170550976232445235683603943278131971525806646056683141798389039518305690382156543045772446577717614976820944030103863630845724427777768565481534693511775283108565000098224558639305260862860791252034053681200709064384824199288224732494666517272682223143621744182264950978839241477197799556044274145395786756243851729891492948240358977182934932343972368055069505844149639833074056775648450115104106497603223378446330217746115840011876704264210595450145894826047289199348147685383040327559600668483676016581678250734813863340579030275417476573011358232872615602729364448546460306248171532198770093292848665912578984562545150834720443046201599469048677793497097146655410460089800494408072647647968223315163171837175267368643958273910832715465910375698728398116456142823690114314546499630931472262328563388183491492016048349338825264175557639882131910228732118763143536452365968776134088724856813112658642256596774086342559227077574538708879877217765554668133649144724195359797336785213898736692364512284243693742175607389710312048547323064421448855715655847266486309226178421365965143876945699321410012356486965764657381724441760469574627641760109581479390550039948571277166128593659618268490612515998513080853149352356824201010455591197673009867393738159844342490481653542405746487050783636509098113360434483438324298698248217906689249182934314356656951587837316415423555600460074512250367109691027038604791437032896538503685141333125080647719572391661707791855961146729482377725461670588531470430724626815180823827641608909722851404214057603361650212872197828925395511313716198348617451075070384990439011761542537953853387171419214863537329126274804878082982082757178243944179226675867883180957155259625981783509113811578126604637275193863232331288283854503747529667054046753200101929839661248289799129963633455383450301553235416252802385974916576296586884543482417554792396788785892730562200049043176814893951862371846301622556208366032471950891574286416338507397282402440478602362033259491216561019492415372037478447126839485334885458050705431555835936755143172678207451743219434532399835526958809969784363856777010778984541421638914722899637960285353129135714118092695866307386380502917893076264824715471116145173164441825709154448676185534300652324354412224659683855498074644307355764116971200128353022093175118093482294642243011834887444158511489350288014143085251702103284609936278811272012846970366420417917097943192337854667442135958106000163272149971294487109048140910120539757708446263316598679762439116332509765622339165933676761474000839848903038447737056103135399083679192913280030128345315909381934161105598723116411864404581581420756558920410891531691294919838470292640172925697055901120441786385302800040412587912793268203451156625312488158639868491560829460556011682506832566410711925282113004481692333315860678174748696313227904727995578505440134683797164927755686152032930813564392504347331549103168250125356062384955964010975206053457345355209178461830361845472259807756763161080583205767845263570583389901362213044399526269922430679148831564309435951653240671295832388169615855209173671082631407702105395616654575051896728019002963516106415014713402332581917289679052688840843635550291226458290990626422210628922212903976827344395723002932418669271540153278120506679802040066068980075971362044317707898717194417051443637109337935252497655927605220829894016487648111937550487244573135168831352551253489567602190599441576370367483802600553002955647669484375674776501259148564179989754946086019621417243402589662401319491672719530546533680389882641118060426053038178185642405871243076919184737940716644384359980550309530796796740223513143677486357529896717285932931620089480763115174137655393367616498906501707344625826981700862793239681548934679757747927596632442682259151738610533452295467676203302842813834108703006198859927977355129295195347340969765793962926301809903754597712949866500741170950549584371250587051868896959964016304411615822768881699515667271913380950549394591467936909582526605438814278219437159072354422782424440756916809217756615277354289735994376026017708284464150718319979003717956893687982371323083898978224934099176853849727077773573214355621570160303163873068556561437995264179974287963499948052253784320426278861575658706528984815352831834255785800763742718198865752258729307097783337215277554673524107005083467132834415765175649383633468019795250338544692837525965402137894948755511479258883519107754358845901517158561945524529778398724179951134938613905851800520065489935320856785537158549506659858012204131329864177901967655557836832358179072634919376026814694517064769996932270268352046317529630003819614720508249312133015054170090298580876950483044238726195686992556801477492990326331795636301618998510660606634446065769910823700523462824144741590810537344675813460011041823873801057797189788443827619180907615338046790342747086162007280085645983488589073203758327244997516271660371023694223204490675145882418489907914617166984827400242126214490217299681013690772776974818322685906342296596560943415523590973768304273291074214559799533289828993098569435609108159491066505382657914076005559897377679099538932102191532264319272309437688363034801325886915098144532582604429046259816755176680280544694577340039697944749564419620575919537541898412770166986550069838570905365967482053472033224564588179128039145640763219267192145651568770925651095716683942159277453655271312155012648888297534591077717942194516072825406423343861387072485493365551650526030253599018059258352297784024874671154691703948120545587082880975289229266185719075177639098620591201577231240262636171486445011929739408111464771824959866824294693932933043945434275974813481325413497191566368704729258951973218596234486398863033988615977504689706010817974300281161495620545970670375081400547885923325517973564872886409752240871534480340663146024785500028947076364950602199145997980355047833977424543312884547823485963344746467781390420546761722927074683980423543073444627963408831153271404908354382571260519281333710819548284801569804377112994435907144641505598694251681761311725622296312589752160194547465210685520928161691354943077577358713097745747442187316017343540537263663405680439447228872302607989525424188773817457722848906898517253341025594766838449758422504627117865717468721859431980716680899128572585907242117515703167470501464820042363298371401249557310326675364615752792699094906073489222448961605248047934594008682106063779032332342588778932114274693560016387339684338644365622645693015513984502082881875120327153730775689975959678724667322647757419972770551232851030152470688306430654096941675099661081442028787694988513535509724174674003058391487837555689226705811793797884487728384092276093050491343524279953302805693060674462765060705127653814109431298365857651034995465283205778100062023412578147579122740452894672451627313542813401809799398073587879803104633394002379905812575214925920256729405011004680434207739149118230038789174744382288077550929660480454013729257958637724379694856536222467386573105825700533543712412705609331464751320912646550595074529531711244166986201834460097097749038132654100330792420490278053697533703231774079692099115973976670533051899317761436812572573509499376441922946605406840459863618133085901560830796403649344903564285068598379293992767751908565039403821465152127363116825457575765710891398242389110874751399997004162598896687527849570470082565314913447650927600153851973905653290999695797723245542995248454937804287709047601260942796310074369768074848623537740623070513032453787762784618724018128846919161202196903927555325586885663384213369892891742238908435087122922214327167442791899427854063949015991823222049776271439212528737787218575487158623078616518230941673302484817428926677594752146538873233382810164815439168484614444576731276885866140234135217005228616437936573767349644005209909880326995785202615851675712838233904817389949937930103852405351194755230728296197051305852501943097583428222989107787566241780029327562463070201974536224628608543948042307398130813735339758685150492045344993079212814473322619025959566689336931641719738523299601189567791135673514511297124238452797795675066778319866950737219168123410840966671553330525097058183559985637388530378300366889384251075488334675365303264709580544624839078823531191456540600599220000378532503773520505670558091005180536360348159670134742788997545321059270561497880318408161379608968025125738480654041831106151226463571005757105594245665143387206562762658517998130288730991617567072701752898789379999903126008068575851991114651471210071807609610165922905937766157947712321363839018948202113100146157138417960828056028140123093407601670664605522384494518862835868544584169721057447654515831661751331075081085859934661107804553377416840024453651656463259465631559601295590590929896243117521827559935502709611356400307930832807202112739294861785426583057895907392904552816271573238580246529260862888882496246398739854800391355414372942029582671189386573997237004164735869813520524040211711978206771528593694150370026584112307183435511847736457848687786192995257467814562844426437245598733104070170088666587013991592814674531405182102756910648314924814574123160328298448795638365678253198119550071610041708856740641096968309823042649875974278255040525258105950725457628116177807601664872903915646313804012311440188963964299020240241698449063330224393372447543151192928600677388984513867804204826896128123026093727723581947321723593403381022144581830312455840615292262083356609401944812336402913485476355012282987303166466858389930185065961116424738838060372131200391985386366955973936335018719907517271948179051104557482571892088608245274939319273597929184090137919408849512104288715525861747092744884385297343789656015344147458089962598880575581784011457005333718288598981180618024427555304576509027881142372553875883398294995474178544825104741768006267711739593934436187643589957717872080087631610364350333728979589917757358198795284421856145515852078359253524281208276056434489462905097820735936239108809893372166790095150690841762924985204290108702580999623103674699581476086637263505119897394799200797968578746499846445937548929802545303971972519304436957891147820986247197322216623890186441285268598947105349729515835272818636855837399390819993614888783208205934094883880767081265419820083254255849852971768107249603548777331918555872345078491238361892657031497853040082618007427698995087286092354505525300943134210656310528959638596154327093458400563983345536329377186276807765986859035311316221279710232786108180106633257253472026516740147418820804876709671850815156509088260121385054964841563303108950594564631023844132760838914660357220591889620443716795508166570922350892482986641865548459381175802540838811130402631037808219880755534664918143300900892156333231477210907555714100174710635763096950398052788613848266105435615381977472693487427039985172846432875314052734155984308382695674023446461592622292725405222006726759189438021005382120404535306024828651223633226184302009537345717959452608573776890514615257860239920879414148227900588867736872331127308313697108799154840965889299640475229380160930063835517045964841288315950485393158416371509866592261141971796771528834388856646228044385598793765362748851026392507058418376862230188173169600252752446715632675126643507417384063634562115184546520866758365214436095536501410362293477812924968310969550712192687205081803787366116123426324935284850204665244313321468905841301025124127697294513460852861681822711738268505320670850309551356626482521609689383786589175416876498700976210152817057575865271827710019338990089720859264030905591922790091433458011100315845142308134467031272720146256050070332548277096456167694843427132539813711407682066932858683623735370374032191755559256613014991563027475663523875045912031338581138338324906336641029105115884074806972979934312047896434164001882594153683274395447985001285758220484029642692655529853346781711807122793726604873119965403452673401284685013848065959458360795410605639678626741553050974069560591653746108540379291345113837255673079888690588434047809673777503679525532671638280959942860664189636892301631576247930694779011179192771062576475282686864832133253208469636905257191005712000857098612812079910488317674457855991406886693270460426203273506885811662645635557823891747092619232112697290205673382627707996682115690892162418786611323468080272880885184351002398567159591268043166115123345532174585134749075903819511770173338706495979885443232188741849701823201457877036270032852590210857459518823462535401957733116903127599090241190394767875906721486726417740801133937596383414981827393550700255710756888557053733920922932743906730782471024910421321614881797699474892320418127896117921560426003756408886247080354809512030285800482013595096633136014531690927747548386646776209024167489147620159434930121372301435724518099295534549500927909767665607147807474237473035167519707439615918531511335496807798841671631119024181075472051131778814620175195109295360398013278098849239309287436158910227448425255807502667318357899907482062990180859475761629754687189511435651265360814949209307212422088219010240065966499747075006543117980684784445888582282199155045214597321632701425088576423823935219115662214488867694569157832616150626332176175716308309892211406169898478979500524204220782508682871463083662955750320673267957158991950590588408325416593445874929313159603814876972189252418020058045280676196799896110586261615213872842953757998548509393972472271658601749383123626510687080439259165542405468176884820896911582563858571061861185215795985519717345087013730377653196313353600229257693535600045330828966364829837016372075905737433200121347483900106075045383477521448060325020336160945357295312138534478344807698102013531175027389059357596997214369165523167085078204726411037806607754072801978039501821469593092215887967614053415168328177867346845103678820353399699256651408011229544943965327539251482153465380301187289536277364534062624739058481949294206421247788928244382592603382544123466580963661060919371576307782869318313425361211816759102040877358994451401093352122631400659054784662996202045828662126616384029635535063680780217435828390825666995871472643665450660858154836175545187564460276586277268514142705058207140597593449173981984326397278427263274935978698726195292600513083204752269433463321260140588939572484395918943367789040642219550319906295478654322460819197653308664519938667953071480190551958800068457574401199087787510131939309601355386771926045336579973522723415611650250383436068952854899804432353900675930223853044575010562787062605933233566257346154909351426664884671010051693395431861313550906830770736240396263300782095780965632484415715006625068341632742673306895114387540534361711708508921716673096498168217518048863273242599795749515440548512726352339656399341164051759098287811465354132012809219515141092247127568048854169716609038838571208230139223638871407111190039613179389046473241697212574289625250225628786304552413647690533981184002309062542644170758211191780594940058544331419071940423555723105294845772239153189290491062463079680422917634213498994418332594583236003896969730779091534913179939965364358445647897296431332354352665293329719933370255715454526535567742236911433591319882691233742937408240701539544826345980382736313957124492298293795793399554633407046328416537277981447955160621650053444648809330079100963653529066354105925608982475246463589623920665770530361148446491252719568052224788878554382960209983324935644184437872251346407581596237431958905167993908855304412508627559223862101550612774886835360977399559672754330556919024298723487189092104916341755934679917919249515744024655224366258199531741620090686554637353639917674773112169233268767374940892382197321368501009780139654612830393945780021794692328472453052976484103083824714624286909537918612750980712043390948277858553401988993361086568483128473722446119265710069198399683322323302752906070164646752764743970255290563281946673496474744381127598273307509338072313997878472088225146812745209185122384244243617916016772736880520666420203391380806824090781895282775985696626277850276520317666025704760625321482004373658862806598176061703969640337634290172896687381032100606265589878120769385690573183534346477691378034252681249700719495104359875666802599811867303867452398884949948158751702553026982991721940535686056547724920235932522365126832416360836769463471605794692194728548256717733712281484977224848063432989525461446288793878056919791876886334184048180595953371604036575523906493823051196320831623302119414358002455901816515171254223991262971048470015342007910379726978528986144441468595949776072661153141719558334317357167025219886131284077212514497400541666951343794105994318919317657706262054479278654143453561155869177451773075526833506447088612877402262356169242253902992510120772540138467451620146897223229642537116723179341036812672493106879949118802689103764077897320216402400794731748937087064988195975234862311817951545747124680670224142248878524577221377463687334362273990286983204439902195327981717902748563962484395477853927313387495000602371629310186029575071019457176768481000930658529236171959476172685431735864828513474968299998251920062273741272587621330562857267923686505233780954133121954629325300372844256842185124469116357511551137354183111072557541789791725086929019966705605021337464872807365728134308388844221754043855958182185685845774250382823761186061015431423447357063663642417686466694615713542143989266028820996940662282478862070783723966369768613884526145296871126308660750579601343012511905140665700717664282778222496509651758287088788566033975094477221094935271285156931758421783421581537161252388421379587683498838279395848625951807614012104809829166480976268792242823955311105308538144148772304829987049923016189438945576507461522805341270186327909021220705481456677721009829103202689166893502149098952290547988125751162229618893881964565719670873933186020456561519843616800749341217006553831034398179930014579439289001914855738706995605442589562222125507139939023545856006906027672529798874637031647264819663758889256521812811013725703340946414647379581263594665496342070602982867718602963945618509989209181032047923606056229789029208470781624355215394633400840528399513823894330425396262914029015762688880341250363925413873505101852093602024620045859530631036733227234872423628241799985718227942089050670926888271019779087914934594300642952318112941077188107964611911745862368899623048527523655505181281529564652116195007954784899503144045396554529037031998143353530726712310506617562324950829741063886866015328029239948409433153533141751674025739842941823420945281064287853648855183688199210428643599647176777887777552064735521673818263567331324803428245515157943190080525949552296177629095599173735149278745765517246488641694410920574555827781355104954438749933418012905962051288814216838329854722663495030495990327444309973022447992794294676960447443836349596898446126612455364079269941463786199825547150295652227388630761922162519788146765874441132114098089196111386267442670543523691774299117776133243148765503904128390082328048410767534019458309123248470456436863437438597299211311203194081154098128647725974462975126749770140202271316079309533024510546582973781070891427126675833712018529829143588181029632650717627125415503638291384800327170291573819367643458011864786444422366022690387816680839261420220290148373218041497666623776741616378236925763810004920752944249129907282296428529038734733910055074083609784943921925766245133606032448296229215468569835685857472351252718752328320923669615663287515093241419855842915635922538294962025398418423094120189220062739996904659856316403952669629191392385799329856423854504205329322812483761708798378236909442281844788681685896442870149974949751523611055638740570781079797406760273968147758070843022768325308776065973359523885535172101986445866477360075695053872077749211366825081983027979543907266367130647869724572415078751171714522014478027888557794402585212384482777623492241827389939154009907682936024596839820088166988522839743226613416402579891803052408594981774819006968362529213765955785018488292270998914451385792469494956193964550881787315347697214183564961357615112341203583288879489124720272600507906791481562231042476187920736694857271261626335805584892510974192370023609342282027394367034949752852010243310136700931947250616541901202421552625215149778322321246827339950481557761804497445947174076779720355413674095182368015192043469432043225253314099429753077004604541219626490809222656113437736321647551146410772108511695263228536035082368318222855739986908802082815401010838021017562230097881262365116212517429330969955860416965159913788450720790259928641663975547337551490959588342823231900068360310785636692935078485014308520224427977797062670050611021777736399079856999499704268028211366361275655710766357661043140344291178207519633915573047457271774229446816509529877047383479815420970185247249630888932408826386238185208305045948852647219365512906009697007999676292535104710378050796834283234295036436205217043966979322588828497484699719897121941535385614974348032524723748939229559944438283787185093859794476400450766796250675269837638906653207150096546987336905498277580366093247892516150714974898864251189761732763615625165985940220294987249679042439930769591585804847478186810304503081430584442665341897390024746571527643549286690279881111834545717513105973706246298102897531434884811866727998495435052349563235695336108937870688563762652590060697024228456092184062920590821426089840589382443455927262584151941785489713245408954278550431216026958682069898074252472148286479720478791136347201449521512012525024464550837889302776914250258788867247143550252899956999680397368731535580623006876527678966179262282834973367859589839525462841749631283580490826026647440775098767390202432840652588578328372642360985873664351684038473630040824449131730556796640730141906430345178039612210859896978476269931985905812996842804827935481374420686231394790504744371540760112686707607224413939125006015161435224297643476798343876259475907709759037015943110311317528284278729310790111936063304373376190051407673064602315325853484932762824762942418324265625449624160229129726354936672681549279204913915521138232074708045887514315613104086346171220199319907142095913386111861027848408622427010767457108901048599964758344852196791391210553687553856799288175357435333444990317215288376932964079060850446605580941399700467695858266486369875915088281388221832721675393609809018735764911347451989502611747357943568853792826767580532392842399650005141823908387579425676348719644882254162882100939212207790911978674753790418572211046921063101390801122587665886427098933497726662399653238564059768136951711473281062321781296060243178444133663290215302493136432603203299597999000709931702748142060195898755820317960967357318647155803364069666536601337492291770670071769195419493586573073319799151556139353200954808301435849783181109133190911768568971461633903325176251651198731216288799606872529543258381593020046740670452838810712277804631068325062343462153126639714038968666111466268822571521473339591090441978941817152272448977191292774741639060541451014768060754322817346478230147829162021158689855483516766442239318326200031204139687449744124220515278695611699498965860295622820850948900903429870802981155098815151254875999461428121047395881305224185415201579693175808301066530159008715508524852574458276247657690116957745379623878964684919945913694306737567429471551740621272621431269150745308670089272857423033716845891043635543411234761344586974168690119039073322986249968666519068418067111371418593832052135118228019374184084458844936677746060543707183900154648687513015086478553691733365030909955005929919308784345549203268515849273627023767793440816883473016503199033883318186752932305267266378154433476545709858975858964408474795767781200618274804605963743748097071667813136670615452174402789484429495058011489962626924180660362914970445655132088702086395528800735116682866578163150828923812872333288701250885956159336415130047279194513725457629244675593924838332909415430612129766589472242685479950100554054383495656673675152798422314811555620763427409268706049138989436723424892368009289423609397411842026421724282490722066580303041245689437571232817879282364679386016265211601695382701760994869813415758995451809299393736590313368596030685486625797079002113583367649012736477071340916065237903600606029340749924702744507597869385004054233559800813334141025671009389162134840827903349933479708086545434630832152753190351898254283420126443400329560761301197755330668721742180951014957903983491400309835930400434034925782858474877814706179586118549330098449261623684473458062466259260525552016251640102731038670733459575440197785856384735918602021181431438601936390941610981527262594304635896293927505730287401723497374752951543282547049782387295989949054894350386971063804264980367907455239016024270217914671006420844002270959962939708292848538638758414700327599302151938046176368719581863877291262644889851743814928444370079333307198777951105170024135028910806409706434253398935441587784468014528928649146862138085054194927113390908352698502656164661619800686195225899924499182710553972869221899098203044726964726527386360535225734447363592663506960009258780158919247938612621150378163897355888093825765162597305932692990843534970461182598876271561757924306221300314766335752847678758820666931592422051699783251130731103979730570716205764625804022084546222336336838222479681926397424225404738410801585912616169874981591367076517346668804629726670789614619997886258608872991270764816977301572053065279226054744324257785255867488469913711354070908519326684364670453854467926766784428264979246926857094006828724928256833217372596159176812189357727473624049421485655776080610634982292407923603765666833538626993642261422739493586047231762717585536373905913224450955559366888190908543641834090916078844945992662047167376598869389162366226186247892995403365362743987028700598019736338244061641102410047599621748653694886356805560780299820490445701684455896827743568562581443882746552760502566481425428732268822037636052788922016127500262060220676412898710375902943128770585496529575941043684757606814973780358963547993004236412512296858057856695289658273217572668463061047281091320630731147589995157611216173714508545159148319180792936757112316077227435134513731185839989682469401425691582250739299083563045884888879382117797554001435443115568528524208548690643390091468936650808000777612613086668987340865064925569544153956975597035323000031386834140184972667237483424077908908299864074131351542073064486602770022003831874166504534779159948358064594349672603990420454003852497456315785799424888708860378455578852849308424793078372949615920542166875990198696729601244642864669304935454756839101708205264370401531833418512957650802229389944546799545325077237335681637294506771032926600621803694616378349508704439747750693047105546577534273352129297162234004089741237225966607521428799724877311247851303147885625698312993504485222975636835979810062856047462395824219362361711060664522372002569737166012108740488958631563896256763318747251926050326389558867754901538199168256776747407557246065914131855840488741221195949317080630422439344102972327610627917260160124852036370096537587536176550764624341947810344527723988006564045190839509653360351469701542811249829525248625945718149837888711542498869003043785552843729810695481331325175175376111138223517413222176433507066713086464311440089516690739353596910562598702970558515183771990574753983952769276996467198175339124723399287553683148980607381187260879494075412749216559472350852448209974997233129904400210839334637653462756544907145805066359787510733837564966400578128634407424190414968093066819426042706736803598914443084259055177270286399652981792715331724324537119271307211248020248794768943783161051938767912969593647641467787023770475007531315817779064448509849903228143167879102403595934912790469402388604567692659333673176707695459158816601319207271563738045970904912482033341780426505198267835960632346567312343859641923219525706665375410685450571308770029030684994479648277082135989792064614863882701072180532060333169441773693234034254119698248560577392729560992848793650550138468174352765436815753265845008182222541276007643204211846822573400018095152935301090551712323569781666729446178520828585173526121422654759712837614548400192618690599920352819885378422853558482953079400582587933249727288130869805666675159871206193442791583301383774842001624088630469307142465299251853186464095201542215249549414699103736024550197994098671273995619017472903995966319072805009401789968249450487335733011512433186442436359558689044045662576423805049285034205667708660693801974883776383362772600651894761226046679611854649406510996453899096434562449650344269525097433622139013956103955946870069799995021129997611384804817682204175983827987509993419539068828062375229771575305029883509212618122495536615458296746878058418241671810003729569773738324914163688460721308435486404919790137027578027893010335522330988703129331680296361335673071671041361030283015294593270971537223662789827092843468719338930638366025213883774840713342675393741920763075386663926755511297986877797677543161226908694117168700398791621082437875031494383363159477944257267179361692436286933190430696772545479555044395442682555398212980383666510966131263260991443019984383464091806669181769730071314821730078764149690957651819631358914707561923391764637631308749172700216224296446219191542545965951897027090574977121553908318821769997399111851237416345980957888001336510385111100205210851276305879244684050930519788843713853850466565147848007776055684775230274305915763928337078492797909372837915713538634270164008754507420275311225842811444775688622024122183010576755655384043360705139548019947931706603876616576906577377765785971913378839248311756871484567369952787765422971457704726685892885826256275534255752957286219719416650953497113734401729621441006776284392606481918757346716602453828257950508971693148944040469895207982028153131929754968966666625039869333343066721563004218008078216430964730841076431116906912220213033614003534506077379514881894310191631520908114090637155619367288346664968876335306570550083482160183789641967028347807322592572056451256431514664945920146071652692902692376825989980147094629104925137789195511218313291432125547408528035706029567100158827015207614317384098479982753358301149818036479090066457676681580881778170584594471153522087905759148874468327328591928320167979024978579122607436980526078926999823274272313969282498743441728470115131174265568868305646061014166139009212053276349596041239551327004125020130020933028489513208104676939267178926019105558877888353209861014099543139199808127657725590177620212752575332203427909743503826074549517790852997499294564181666137963674492835681394829484362786819926972189238624972572299145356303444610263732477970997359752590652463246064846705406864271993247468546510943257217561789025312497214039070003976107032651910085330428163054051914840399156078270753050035789867112221595914837222088320366660519618255760777243385624693983014613195986016764590223573056745233288652611605736997860760039903751925475320314285742695171121416074650234617086210441572675460927943460649930250934650307424314101330178026134140409145368253690229912823341368742487953633260370774980000900680272039334159541136553950211392571935387238673629229257456191194685709704376459727100864758026601920590251564256328246106528814163232461342226391368144650639994225552228117327593874903726854184356365907627915569511768921287497739279285399547152575063265191255706986471533340356669989647406590594152009766763458140241638003925148078297596519837940401241099924760744778678679304678446453033641357280381302977082457239844416623627133145149594121533579821079649941263804078724403174877225316438929998594547632596117660645448678011520120052009891742045807751223224993821879656007363170145620276584081625197711065336403452593690425957602506595616541778335354742195424260858472118929033401703385435038250828999347844491350391046378600483160883508876834184201395216998536965387102938058345747329277009264637173247365052702186845950592952667959337267875642611640242490866184126167397859235306612308050266801907209051536555282600872265270706741440013798077063104047811609402853647011588150573412102102030385965764387015190119851591355041764337144618732065181307416758814956153973845321878246635145652660763977623782544022387652919266286340058071181761122174103747280985819582542347143283069283244992942867833547864704778683244214475825707122036699179796569326256657359817967262895047379380230827132121850383021510649686065335712070510792300221787536455849810896101560363472758943835327954575068895764033934293763216324080284668496443632973829850454295511949611430434466747912606858335271936307983389610100350488499282393127066642842160706865660593496471083552833282485790707762194645287362465407156853703971337807840099579400841856698617578275122503569534884247004404985142040880502921370955676777520385559243138607010006521616492794338250529619935499826286602904440197247243042963715397589738017585436217469232147769187399466312492347784728260103253688154948855867420193073061072506571652754155731590767815738520119806584101861934902251915158185889457885571057522444592670718248584928777623988626083039478510487812877065257363223469735027666271905533190856353196400500201378751847336938403461104142774022130234297216817287647066710656816991078044987383149424756119103798219496355636509868880190644119043221008085013329757637088496363171130848099106341231009134488984395107637660499828849505278750319599347042818011703734117946805453908583792827781589678440193229801695693717786233238081920132364063503725882330884051177919287687030530068057937183344583710737441895641405997192932540588052727402487159856897730157218835878662337503728956637929842059670208809714199186191778213122034133040352842578091147469090749635326208703856870366042215511538560396940846051344087368966970633378200094690594836816661793567285722541832633964938403018037472093864126769019136060562444722177413581194156007019591363117994837979472381221046389288357008486667549954291326123444735067437097568605130947762340846010635869190390200011140266313671963576416541068660018191166480315285644502985656608258047939265586265785038907488178747833917369763462197186253688406960456203404433133782662165886743295101981418225431634052668586335470533511250850360044091337201802155274094394015116390798481216795891377420668528159335924181862963383592035671113176789007210135884580311818346066279854754191805066983195247699751107257182042279036274234057520932061172592976716496910922723169967866840508082823438714941795395249524533189327838555648343810826198465834635612938050320635584446047790232981847272637208542915555397943222683955534430784417604172651109293029285930892249689437558261465569604333189868405323699737099585404410033851054405045576258529395382823366393341813609495864242012009530644420261344225737991786082635641210851541528396877789003291797975941585267221423374600405502087093130199783188611322705577663552535655858829459425576895868826390767285425379630290953135142938482747079271205563945409233354210592168747431243727822602473514677531382641504356218124721287058665464872976050695765250216720692998033825788311748969567778062120922745667824134259196005417753630047423313539315169552566674125391813105666059481722451691742988364204531931823701919513333771335531319635079205673605740947645787920999921109939044088156950942580746251971543325893566002678020515184473615759104403457802355758377543511942678604391690328823353784791401620685246642026435038604101166981168098604745016390614236745626512089183553058987733942598386620642071393638500046002926620335515128609511237371870146067270253373646259738872396166965941269786512912319349527584326971310843099114191599290803005246218684063371483698580637455628179191437519219641214860126079247472943973647113455048361464554384384454406024718435297452203500117516368939210223782127450371804552931652919627305192579475650816437516030223469172801337918154829463024177239193575097282722150837244561496014033113298330638885831243752040948717342277214126973211257874349917427919412847141156213570945983946374910410121422417086250294132483359007329163031130582444381803974690604147243986810993491876819670471863247738156243276806620625668500031578978672366905143552497950168008625631257578630094343033085078520815519786245162584044824310936387549571765490670080966731466207239588071686012088901658076758513096399439889005086543268898271104716081342721618490870161994297296727823294229686431546620324912930958931805238368299344497156286147349592457519599801402584611334065303716670996628596806345311442021666110748581981878042232675027912603444714276168698562817237281808388044628346290547543265207442050354144642775983496692751550971780415316084094435279837646781648895996313283806051026809817954587671052461296292303598597475298610036708570650476671522989715938583590737203766677321434957860428067558499951483808830897286968853044639938875101277858553856002093427386000676261934543324838456433131732702638883284918954546731688192335651624470833934472028261241785345753932423016722078756671742880883041714343466267208016784766560130250548470993756467002402097464048753227861699008344920120832713324091060680967048505745704826694064221649638675646760071733045974054380997528048726949218952336275644113625494043491562844717950575663095343883656428164136814736433967975685684675795275442831660117082199606907973329231206829696217154139241219621754754457117436365884071233473295901037013192003171357630609759545395034626876149333708784207074948304511974313404945309553856146350716108745326039386144641539080667416893552004070259487178338111830250658246390998958275279891369499547013756763534078513441685067487044676211287903332113823517785600955227066260132280524725994550366585392546006947948747385017678496327275878129026063333201780060579660139893300979755524007599839164670736331049415761906602379357166815896075623279326150048350704185036551511278293005244890497465687214611592161636456546916603600687681948862330528849411584993422000421307049901626923666365516691560879573984511237017401914996858918096328599462881524318964658628022806760666390479055155657329468607528882616411559508642819869552569935107102258618868492476854984783367543512183608272874045852857137148981602315749658226455780410037052626861671720886173731636443159213349078147987424604108464039625031792275493360873122242895551237313568065218965820179871363219218367672227488205063006351207923083907140592774513359007714840878522204144521331620714641853859945465067979900253408427681262966853188533372582752456953111519566465397868456964490402414741006919785062367175089507436788650445941527529083768161384318076120756125579336100365295395683300032427701214567647337441147153750906786792038792337743671410891372521497419669794182820686975904080234967844082568691872899653432041715039786314286554324882332264563005680262313383683393606744551832277128131337270157251285019535023952562274914742031617420996384222795514862177599698481344640719471351606017998258332891847325980780376141451754012339452756754293816542719347007125417536310032401151611578527133258007312102102681068411443808931731710240723381736524863685842997492904804356066136668560555199319818376844082441500923612902177214893222936184552453227454166621959840857551493538111651910789905227359803130916687599133693293805933588158331993849423178088848450870856181599788435186828679713625736213931001811140635601226658368207774378527246959433659392263816449575850257699140771508832307021811861294327979709425636492927575319278397005526474970068893548858368291129240207887012521181232830536133995565196479895377543735378416079805766144640241603468958767879119562288941740308087118173560691329393956464105338743925813280129376733163659978817978522894194471227827515298533396128611935233480873060789736907127356748565881913262354773951352703369526052630049464323308131973861752033644565885599985670988632449210285232247210420446367042689503135518481488926231967377329681709104018571208740685297395393828768185215475623091296562422024504343498356267558261295155653880153635842368016108927356345041274596373771682161936600344422348982554326845457123972831647825095274418643850884429006016034934905476152623528019803946277752620310826381408284775166263659185761230481489099219563681060798336739195270207738669971513489129307058905438116393188855555403337819266305856864611262107205144758628639306120149669479034065455080643219595149294015501818086476099275797922118593137651286785556321797746269632543262179652327238323549078388326536306036073084591992541447061312772592396102880983161572102262456400267503742310480144928649691749673669270118418145126836121475932346105646588783041763140073841596321787362191571309702470054257206472374371145459698004887427494694189616296555424561469847518759416053902355557757921670346795462054476403519985801233374215278941923173256001477610791934556782229279015696137730958380215802017555954709096732597040670184554966312239698059870859697165198516299107940069572869585518303841309821707611633198982961579090938962718050125634228510246706204073172070942784748149903841590288302806651080886259428093626275842312963747020394658063464345445924185648881883389282155069977940720754658182079548423081274565850055827620708179359342534217521483059253018117850327458696612997302809987173225846507251504227365183464433774829192223989261321135393812972957486964176031112112335383660231932872626738992037386902531932582444825353982760581430534189282924750743254839967541591941260334528009205139786243492370248483047047126778171102951169838424979732291005960903254610556429760804504398866811248989787548915978013517147931165686389244417192685398786478489159842485633667669571291665077592468772375870371290444725158665283299385515521713476245913142360313684738679446389405287419454158348638103758837532890008280462886693915829853643390322794025991545907245192136579073878991391281419218438354036418638848041257572277975690297737259482971306907594834060520567748801850245651370073730913152804749664561907384225918027887717249678001742195288673456565555868362317685227161175512079139504132577267839922766094479906019988959230353160077352948767213946183694660688717262996186712917423788890421170852436560730113791450919969894844055550137122459164004775267120195233126972731906198478388685510240299879149759283793048011540205240474766950720064237436687592361199129332602115248611278346131829206457922936595732841862073459619907454702976667931233461482686973341489514471641363765300817079691759251433200712832157543185905895317460063889043729329295793703829142025996984898066731875978516542339629973454130182481128652363854291385455897676028987604390256416783994075238704016206694806021132118924942208845022196800113560074794950944592620807473323518297190050073647595965359023366129701254465212316042280653838051626777189730704993633028821764277247439709420578262000372630527287587825124973678782903193831494524226748989571712088516621815696649499442507537653233617779413287095295266663267013916842374484890429230649190438722578113948699295246671015143742862183952940864300697261566879573615312185079835466585999156780197908788008157923894074197878799959006877510807076096720537075588197323703372283334733025259144780833495971857122748418681977444680909565264174486297556835827361554831795921041558173793102169984553389318117730042924543068935010234085922062667853388616805257645668140806010272750391398862629493274839465988099731585379769431783379175591895121315070385563657381797072429448283756231953231339641695370602207901169399228994496248244121531292375994106510761024552359880254032449442999042711193400363302941275190142545724785721040926998852167037533708696917501632333009754998657092284967509093297248172271976451726547261193300067326907691054134116154964223960136558246591609566804189840983695548838580972461825269425453360020142299592253214150775916268687816744903269039135588123709877025647635899826347655091480199791341755842795474698429607579316055929488172095700961577521567750167220842429150440016711653484273783151779842984784957413691572519311796512814370130805275367361732915637764112501935677361082485346433106796438601862123317930912715276601306937179135285133912352779009063685094759856351180228707110128939592384701599594334556906843715895216117105496236993544251089944801727010522498371317204111579939737952382143595172110665209913211356410283029801764790464904181367700231700711447062329375538540808646708294767064442779330100334127349246421284067091722197681226151281588886259939694051946473244091210776214783485793066086314216432449325639951762215068240060909107237463308417178642628444946137099703378074712831701740103550228515630360335398095450831007713258325222186647669801316637556167747506982505995592140795136623651792742540549073121690968369697226873374353271361875786815060629448584431073904079286415602932506773173964863168255159344543003350412065745234526104642871709580078458926624927444844450817166049700456302214742096777132563381341491689695553435898329916707165399490390297182119734524160196545365535487793556158313554525356520675181718680634625122328686513287789193263171724180465536084638743501102527737469912147113449893099475248563216526405579618641240377549251711240033504336218436836301964049949391214968198717457827888721253124075827573698665983045254886091690697135450270504526719032651795820688458482366896918833143744036701398859274547037825422042770265752324840253947877493840147209616800175727782412687837539176040050094127221257373972822825198407018734589332731712927930655273598547276975539200809075307468651293144176224712252552889643093977631430943285519052607796037899535794402307421011234988525555297025787091923399441705498213047999076635095268930195074863212709844540471100773116020623583392495672876127037951307235199943450544341644365128936517481255182833977353536658227934910875688688868172950663756613990115103407743906527876418362120610264277320869206185537007861353656748685535985345752479021820188231637721284241836358700756122829023898531541711907468766937093728203903940084938127438945956568567115513073089646884166666284797637611898798843908087008821384909080274759885365910974747938985444730335969062828030741513946489086355804236090477944015975013349071704277619384198213551517477038135001585332609680726423473377433536117365493901095452991960311052894276973582131389648749058952529976464380365202424899794029773232416979516997461799452879399423408937545431247864014201094152890487149548437864208144266277915839014546455658135323301093360167686593903018421469476217807858697918300688523951551062958544772765540594235073253374962147300714767787132303861122918082725696900962766003426452452728791250998160393199203864328642458493999025067094081242566648125976032185532237828500952558750838158363286114270151177064901525686999073599392406822102748114621808728449062289436757625265409185434034653142092626197919418038772074856745138370303236463581615344005008896216209475339654406444302657968143262408224960548225779306879334475427098363902377672285990895408466301052816642703326522044524070147052399366751748784343601631581528316042643077961707282380658168725953395625565452489440195406881540412829650328782141215685504343062118079624631366743702904533462891687160998997030685579290606135329853672755288956426031022472940246656642292453799236161136664702802953756149921627652380535897535780351320824758661249908519399177734900749902698546883977501695195166120598491942624466159365185679266371115786154374498830801119406825938727113581236908836048236340432838093641812497152429767803522510761554213690413082254945144883989924620549987455749752156923992309464574668297528481379960638758146062384241834201569673769777598371552935846627020344930576810087360935029837583295288074343031665826297838989735429134305931662982270517563753274230975172480484227886030764537870284494271521348382508116282756691502893287118424630682104265778626665493234047275607497165676739031207148914297456101254695920476841341102179656703522935540933098517725289757868572003321526559310840166035727731347991395539828553733787057543187905959604409728135327369723043374619399974667964815521682302200569475508458365455205146691980991635163741761791812619394637834935767461058167886027198412329526445788631048642809700371227919666651045183126304036456073523700171247318214119859642552185041532774269324296005866471312574064036361764490252588669325014486705203945803288536744835539265924455455889152477339008973810535736336129284816654831961304794146895015669936816251508601685934036436955717190435876230063922491066926745557618266752852644856162990642900996789531159571055773029068169034313663562911022244486038611309294778920724200420399285850738090391419003990327704646227337654669096087505305379843083974749232677176478714114631754627982478371206215559391728452376922144353338531836538570302552967576035517473661280745140725651506978488026970029247180428681143001060287360689039163048863007443720404774308833267379890957106241833831321978040195941215437430609113409494695614419300628399333346947030273815531411949715645269240015139229464955379691945713536989745929279191989289600146076913772367188091266471933623910338190166540703194170783665308806580065430111691970820259893932260937626878117212980389600410408895181127859729267042748143776304406674907130706473437160147425584208516898193670958284669179136802423745046521696253081448656104031645985410438514336168098666266650550096199020861191030430632217761984352527603585780717834740244931014786403220805566706356608936437274229663327944394415664670635864290410703600425609549263408066846793000286813174926616468267288225629725705263152588299277884590774721487535525672271663958979075959948073435257814652712348145527439431564670759244165241736121992087528301260072788041000147635431753077485733795070916540225823522828185888517639090111524271446711354979551878415572786577762402254053014969095100402611197080997408559578502933882615435991473574457112712538874550704839398832839950442442081988604246431508881480155331687358185383837480910130960341525718538558989486507927260407964949026597990901121959413729288639345147161022072344264710858628473850426158388555360956701265206223449398961819199173512680012148178645339989055991234312614412132001627809178259833389224516931124162187593044157010183085868943043556993361486486625545687762785982211199836823101884375439748977574221032770748099112293555017229962062881906398340848918152351352011627417271176003140161054166294108353172245950082476980960288363933651860987883939921604183602527160601938871309143165966811416045659431366503318945703259005255084571248155089437983405645340731179871118402796365636895085931188131524875065267017553865096698243266406466203441693377179055459445085299384522921548998993562881246766617458545158763098074100074122964055731400491386731898456998717199088004763152242941891215097862832882724404273043434755614269378026453586673441685602079019114782764080393339121038058855358850264688811879737593019673752163727679065064409151310492575145661546447644609349528652007259147700836841450207652986767464105726806415681210910311268899416498878508946991234825199011258573271983911196226428115181026106661886444917465809425388137322890749880188149696336074453154732772757550390972463490991851813983677459642010051004854991339603078904781674086186861114815825502690577143334386323374894121302014424682204920494130905031466968126313442645550725172404499134116915838134255762461355513853234557453840573824539097652533204548784721894531497531050995192947194663335285045643170417442563728576537584868079148772222496876502167368130018920347539816945786165333153603578832533797840320758054349398259728444673895062833375297075303521816790129641048494318344647608887636033509092633467688998911142714345835282421928945285975076363503194030546926103182136670348900189771495677152979963199582824830729044631416694738381532686393779958653624094595607845412077418851022743248909905802818235498599322789139316294482769606537926781283944408745139767983942073744489207329795938214948522558046383309001371440513572650444393424135300838027086183055864730128139506988379621567140852607695619254566381396628606793760325700536387800706064211423757745416033853278561570449010717406659788829534987398064885102080340061413243592378117211185548511534655082983468126881346600538965375307925122437561603741618115676212017765233086830846043431800702450791676921770496558410870012438779061933625150444530102708741744002627870528142558227333047989755847241322587765934358388431418050437159439662441645056544368031889026611807928066453007952338353290751035406274651630083994859964399061179833543950512874721261673345915467797816081562632987131126233650420595182211481798928798127121948258899120044105296113397241600605006928046337663548584186347023495000252311061565174547211865750493282260309779562811273365000134372048304514536910075743591092234602954065253653753037529913279929855573314184531370956008895519486171461328866814435982530389962385104791646823472567838878768376547114931693741863027481756095838319039927888488912662374617794057088270586819685846520839168845518077996184177274113801156339431612475423012837526689674176900130424723328840991801596547787085144419564127409387197127727985271869154738784162091038197803055161825488047501041825019295717244145906182735642814092316121475622059655981538279484065799751357255545014249702728812695683831319426291125058849922823951946806776973052752666554137106744407838092668048583536804170709837496498187515498969974258586391996856298432254984873028912135765908548940334650986262156263648900999601076383563881672386250709510520821873727012335267970590521843127474589346761040199531497686877179228621380736507949135688533409155792993966827387686585525943147534032829340432610659899642359906016211349673738572663206133446827875288471998180336498828827419224335388043304394238441626252351520486822329817731874062121013990762878281502205554317979218296174858005958455749575325927475172988030090803586822847724106460711144996016159278359616951744159198165669757621645905813160389162481606424094581787243567774517451828143838479228258612111274977168933069347090301901259454757898610013038776472505418280259729624670018783417965020452540776844036545523941877969998117845774414816738947275989192233648117699905873187601876922195028769363516171374906403981631697881627794951308635690836598866331880839291247311879791477016498233621006688113870640736012534231772908065146717397655010104867854737828673252714958331821552280529768813972400163244840014201224211440136728732235269774004102751571115829340669240574512198504642747368457891406846204533208354236766055064562017118329713666722016719843860577084462874384174257650611264492052193414530516869901922950908486958882408216617771334739548508184044065549632579814621965286906831034536999675170896863143890063179257450200150012534888497141081243884711922573001461448916327228918358196276653997293129581821006585169258416377983527869473601160116903175017446379280280743202636497951003161935710476946782376331773815774369187689181712175219107973203121668733675050011151015314047325930796772920064325447564905235555386785102656198995967441619377128340591572976032112332369896356789637149236876402566812441749473317435494383701814848814715804250837858938165543963677455786799166195413166028830840947783832996191993368793396815264560136059549378410469823345453140075534426918718385797233874861372321245770719775454586767271745690598770216281877427063379121472966400834379794947920984098274476390143379779160466444247636800778657281846888409153450486960042027555847697514663049506549972794501451391430094380632257897990942190753744507193626852888446633972900606127178911036575889452187715868924727714649444635352571989560626939740175804721051260249211888096890975323572455624647401687262661710057377535221577113069495978804332438290943656062674970104236855726032401735964294137637671318353441292722673284209124618964957084411675468893152890147976975920516968661124230860164883642928665431515490212137269741072141072060274141702229832145033391949587390954289674656496660606953775006541308467716515207462934160021543396789010309246667322038429653845363352790476387963777970061454309358355937067647088589136722876520442368419639612781709279788245089567461073686700174458649962047816831613878860178520973230705490675025267577777686531775683570196039901261662540077114933426557267618570244177167183947847769252781915847098676316681765468483645513860799910536869567840731289887894671346793554968884144287606473544876638191421802813460444654094911759720165563345798229831524741319459210275736262571828050163161431798498282321025439112906851003078475435456991361775734134563006173551796918384320970245128225550413446877368428847561748477882984582358565076510669449612781444598787869175906036952142672307916551384912490697374621467749522335920249554651425859613334366654018446930684064986485271314797405529774493513288183589445276263236735353619143774539894889020822210604097498144331844221220724437596529088310513370665033508325520918603652044145236890344489105603952450645969347668912818068291337028954692742742995604123141310644794419975032244962596589165354323704761471483135533743478192225572419360246569554695480746292625138429013269812762169999234912425035844413363460363951016862758212963987112778393733949772796626388526177719078870871557018120277750579301294493025478173597571860759000073367145092750093161043446416776187583699473476977899613430542668927541202831950544461232415723692001018916652300868333292617560168258967737476001871135054557224498509524004243943082802565194588360464196959202021739783121748229028215611885480027977256623477230107337636032934929539530561607979045432714284463595604014166357550100622586464797388152609464047575421302211175501122466084145336060585933289931665857392132713858971929329073343644696884463702097754110466027920610504806238112333050923094634427570789043852985186033901747697114896264986681914950388050650978495534956372106171885453083157098796927895712025532117567242098390006245662037628372084083063410911407451199203826631992425457536920845317896796495824130893712387104592081972213056130623071997197125152051665901122120674469219138008141375120919624215801087783371512548669184769358229013846522197229286519324246871828874124008697100588161416842199614065753672340138572551880996841902902351914763566692777404768383069496584146534062779287683204142219635396485774213420451373604098639132062233864686620429821629892817303320414430107680424964201415000680091350902947381875161894468334683040840132001699491131291506941954212281035926399690618605872093162115773505277323842766238480856218642862885562863932081024088787385260446624726563061025531245608468424124399272575767219025037434778356777064755221645010438438435117385240882677589704211165167622632361312385484077277362755445487010535723350743348911699563630220319462403004471383785811060041829468127872556344840938043315606146197093913115477507685764765755770248022557158693265856247650451205653532532999729221484449924182281600728147814201270260918265523337309389682206743522243765641828739411179983527356492343466714843577825769282928252292409263174359995720930981662964167197429522476204400259637317505776123031527085580788348711889079297792633065735141009707508853762278912027321926918053343805499708971485501658153305161978688899004176751896140011846693303334534462811392224059206836798985989927380708316758689463095783677957319009100324201049675655777374656723118081098172963802780515047409403287057823668093931926746449817361916425263278374969824634814654857039132276582356575151284464299033799197403479667870337612102389735286736442180105298996924621490755696510580938394620431993155671379960136127501063262885412349851367801003164221921594007786376015224040808415856029173496391335196512769347919091272691185538023449210767889439179431802000592771295236218047194187100300657346868062821473253852914624665827473782524923942053543698572045492377710898936086175093149103704734758909667526954047507061251424194992529622725764504620460356700668588226760156929532123434513037644421318133441516478904491010982658338886007734015550486184498767795475789476287001865427555927383899616358363962297517075306779660740825409431784676807417499261045802494645436063768292910316499670730478795684780486745086279150161689056882828531257433703473559496514554094765513277028041820881397101307104261572272245303954965323991799626123705756309993596980544605235516901190533201976575687686755545119605286429459295908370265724439077107285300935811966968079816325831500910278838286886284869544329878050631602076304350422702387435206907584454495830899227795311307203857134912529613698463621645644719678490857357113190074807984076755842474864349768295432641141930989428522496236279364975098233100504368843467576400453451919592476848680538644824071275744868439680879736745916758739452480395828507446098694399009009426440138407325416312906160025636237799591389367113025249698859160566204304837864868361024314799386761205930574194807957409276129207629125791480379406277198916505642004398220406137416436588687780753775819389988049790192153776692280247738073422206168450180065017916366604889768072024459516522683891185869336450449687258084387711073618012277963242894405233366558529001990103737134974892376839321583445507975362340921751149160273890273800849549955862239617610271783756702151621271001727636225240149099819394217099725283645637332812586450383798049083930387895826414248625113664928994791443897771694213134580370302874495174965597432609529398881894866217432189206418167895781724321198218729103136227520405872628704840342684973524214069907992471816128048677051301278674642369403462301504611111421380775022064124559528811664278462645292714836653569225144746349132036871512602756283073166495556755668956429649189130550900200772752186413931015998188096787951011005686491774641084012497630899980384720195680202449006583901141672073593132557699977143112822801612314524546274202010618198850490597976856164780329525028082800568948695979265011982923305293321225718269273278782532019232493714900314420889249026018340717581690473425907202886359405253434607985592346695953298159465487909197928567415207273805445932966633876886152789914666811752348004439423580536254172242653224876093412544564506315844551839291333497835338430036271009385608792482727937596911900223859229097834515616361251725668624147586862536832737825802273443894804596181864867980831716908498563897591523394135911222612211247822681304316177167867502224489681903418595952772898213248002387194840929061567665243663273346309920356143991547159667815890118158749674446929232764692685749692427654832294941223863676735426048958322901638321886375403383086214382783794242076907561353460639250749120084683278000413395881706131584143067370146170868921993634047137098485597240557997669719643170894108666693527277714289181342602158477465666657369468000379637927359416510768768411720552577936868258076289205579760943951940311564112991818386298432764064477539511900336544080833239788983450440482113241216195030645690030703186453494632139243150698650141186339890520961248877912454189671886444615978101404810997632122428713706755268005644441936883406997247191559062681268747678167953216005678611921934404567617354986307800623219730078509225725892077194386618128032096524814614735104052233102162037349766525989493909482657152357524507706750995935025291437722014547795843800560777982163231280355733095591404248936923052456793349207668605516637453887932963259739815677678238360572706532456395517982640596650954854850930188145741324713492825691741822222283666162873724903658332087085491478583742569456242066783195312363672080514311999201617846800172779312277188884449278639486804860938499371053922192318832774759740098340657338343306460722177851181361354099094976374237035973420562035588807660429473716412392429330741179546167879450607738410771864725130126484773245587337655918196823286558065275742956814444444178554549746198491866458192844362587110127547563088580829849340449512614667931816362914892964890640252430251936569216123823687308004258611506684751940749137288141342936988542718458731961341232198058424613565296408519930683803949763049147737016288357367796646402552902648312118241936704787115775781680726831129780554917875570496277695360509375966169209908457173971787491371877136255669316295213114425714872821193209148304061481735103646144408803139658733087988314018295209693029069107490175566183887241558905686469688516881730590249347555517462974845667965865642945621023936118630544807291451614469251827507413367383493595686557691974254620624855602245945279622921254058734242577309239141662494472512006727211995800044487895292774325547274127256739454532388544512480182288723866957080851835329692145012688738628780796411954525733954037392499551356286012875408092971718021060151778031706839591791418349328316893058019520839393196955779894526285774499874529134672258022694907255132531439459029806112942052948196376362155470694705667404303638003432631237140076674167801463111836100874382886824754961212945897271325762978306422857703382289283340624422320861380575684731494970453452885810057173562878129637001295828684787501598231114655583255061897985135460337388764921919692320436594633611627787469252728850716471457562303191690086183237409028691640913077010448298717372413220586188554000115905432488389158009060635368901179735846495625178374980337479342974770829359080538142157790307774039013433148438833384400103942481011263069435679908056826120607435678281686907288163519576493228098156122239723912386306895499029785723515394306555590043003985490036226624823481059340543369294098489434141038692533247661023541702581995526418582804459377718193002942361950870424323796971190694943103108159454187721670365387756729904876735745502806047709240020181034568580539656880936936280393279315216910213276767988323430530203050842459066802189898587292968051871887890302589867859848662498362425517085206697183775176293143965384759452243107503485064901664707695409826459192909395099957724798550381342500267067205492919570999298433297073336893675085223813355905330556690592378188642428345672799858377257172711468733949126425145976213243131629653631385391657306353513365070464486728462194137523688638624398431872785057975573368459679553999452664072269081551107950251648606941394775561949528351042615265641442234030183607279284569852742066290059366512277857424836140497824147768400418643473560075244584857356237100228633483248267880595088908709728231066037348688553591621104750475344213092346070663395608108451003406694212721939571086617880933457973627063102209396570758533301416815007379225228601436351071203081534422470997095247544365359794156260088027556454123827229674236821516634580921058437248370571257635014880956958331785438206639517851996190501350886837563000431534202835443676751821942577871446988042140637966213117283284909650925561020887122224370832685070408908688852305338359470552035058633802407329225900517177975728465689549282484616229695511026662111926900989601715897711225463564684639459435871023240424871614392741720595014218859940132649223038399785719144916700689394998037153197156798678188777436123094366315389929387459458216665653765211975841032603052182459524179171734092362282347428901783653431627380837558598692881456603045568420651307069031096885608456564598909250771048430020258381190474166832972006304492862706528109800816654583096878984638532032773157135109674333561277714103369519524091312638123565547371754099691573829417711006631643908993777123264371687272376636459234873691045398789172022615083047988619408668691662253297780027588643450279883092903451890137750775582822345662646729080681654516837520906082170006895180580716102562325885386309287341977115330183586208596275217903797737931208210658427023300649644770249578430781362234903446142392557649574011183817851090247578685398949115399207186468155369819474494524467975686713889808479678030651905427401681761976087894227057027918162194137252930327774378362411459047284340313190571810586829992420020711692917247701667548493501937328624789787452788551361588751655234944865350758295713576035678346070735463498235399991120909597761833413792635140184670956471442481377475132680001939533269461610425255194790792359611735476809414264320942055813933211883795261249632120132976401053627737276178111626365890106292964603784718250588602504133259347503829103598408796054606490904939368534106511619546021035065330392499034234535985367714356789855258258989111218476480397450886407688551593181243607887460100654220916935710006462728813464694051711129157272815953182132585681393199769540677940708902771249640768712808582703402482266590910587805235139463591594591221721356053104082650894155330073417432719161657057580540912978418310931848883394538755393917816205179261412266993427680092657942740321520189747912091159273084363904161848094524775918287555192789977564637999084169651496800200780600950491276085304028305965091425047064676436589472872715637489046836285848332998571116950728108449075883490804665281081004461152726649436521109720201323429016369445662532627038995901982518775648348718373416449909914221134753345780165037232445819618854286781047584805151708033497103252832361529566476698170844458070978700267457010446900960286703590622114696680605220968844191910515426948903114969092260863301770605031764180355828182266381236772159978061328112374615042876212984064318570405568601551529970231213437693412874974988858549165939331141059828903195240015972177591778751906693323719184906316392612051551078583385379049297924685546438561673240438355788024730544358597210439532427366080537738487441389974231123433622835343645435042472359634658739882463777570324921387678126846647820591968961186696615219080492850286908071711412476822307769267836557446198634091983395601715694049937131043476184730221563612508774746067743533216651943924344214381058319732158656996842026519678171990511428907271160209525319237815520587376900418130895185069969495755880586015682598731789531450948708540217206080153572882427265205678765522017800854402798269267280436765265751841906305168627808898703608123776354836249803923127475517039626729010589993748559400466820276009236760300501954015491740807386985526882823838608984052322193622482027593154816979384365673198539094823799816942244647283629879711679511403670216418681008513864030440690497714591833918264022548243212990539211724910651312490345767321865111936273780626748386387608888994784323471720033818016743690442982145290909473067156697389780635640490612115504897012895615833539692072827538291412750478106644955944187720828117258315098847578890006112749170252093117642454946563647148150386851278701043604968967305338347512299235727393529269001758701508486738195252892492081437093656463538518475688702607812277069348990473533942578896385232362001315800336886930245777051104001977905468497263675772656725469169699007032122391554758025965417677709946024137968245868253502254684494776753134488729907414206158281971327339137355176921994360286857118051970546139227585373189822109511161928269160544759876799635812025574148601344532716220244921937858718752898097998630663686845017622400623414295748785376873478005544817185403970072441220702742525301979393033067413414396644503167660321483001431777345332236637071402916340433599852528998366978179789524071725928771329969956163682417814442497869930098408705634226459954421135380173649266622196948289628493138765628881712830066445472165766199191287632275413159451323179818631455334756163393089275877241336741736929790837296657458203090676361858355305351240270316072814035321987208885773454278320706118910733031252901262425238226382983896805613504753232232012082245059658810833569701468313590638974288517502218604415779436987917274959082329555212959149207498023311804738386428512687062493300414437097891153779214834763801852186873129455319129798156774835721969565269786590079394199503810442386832369337315268545804888696957170476392439673471665156071730502974193435986638242162019796057678146831271040083613983376126687724496421035336955544704429161380716245071948056503548562889820023785141559229424231052338578063173496116376667781763528364951612197554592443371246647326645440409064157231570978590876822375801417675307626866223917977749029307641579229333909972389497109635695874525852666163017863581473260801320871324073825151861113723378084444769916960961882412278969458594412610226124967100084721844901190058394375314692633879384151774392496552035708249859476009868097527922996427089797188352684997585953445140080126204809404739355902923791203105245238233171527368215604921661895030832278004144646936886622303557598950611628681423558513476337793026696098832863059784740889851494485858464492621684821382766108467537736835479359677541567471779900816295144557764058486354589866625608291308081193773592154502674965017473470777128654163956097703113045632948170593899476008753569471561782424250771148620968134796531091314176703601961299783889090001227365856615558909849648092754204660658407186039162480383158644615758685541888447509345088468173727640630540575917606299734747259473414814202314479475828324505139313672583465357466132158166994776075067724424207572598909533808840033873760148038740856860663625895491391673675356139179571471742900007981932708282637653358784567469367941794005700441418778899733727271394435760137489155175479552829495344488695489925549343034098310770206833502727900729083700964148760298137562461910933189383280024297692248270779724685353886123552997265326049672317607301322392591438601349448499836243356598383396828879459064911583916156077500516689173886347337841356452049010926480065872889230603104938335766763199625017395762792295212118428093132409567039031579941277090315143961502411773934860155449454329187610027701771664113147646137683465217910428621780784376310342468055444319557589956300674282911089608603043734715832624663839492104960149448018348421442983572257812766731626691078243374137772364669592944479577657898571116372680554596915148532625687229775398921486428948189268484344311592328965743100162758830895761032732063541181699414798694765928491609935822866325315327031892391728862644577509576603183243578089631556140098911754531224204929106926257976200333776454339757381313474688355524255121397168333775573343991683066828397613421148321550661474058687706577349231783335958609027688617388293946050025384365310504334214264175634398132689836871728920328476669252028887689803766316156120625515086256738848291176862549900399322799988680974225514375594567505378484727139189102644449586809037339771601911776366676507280337726433070568286545677210668942486339165781507945413261297636301418630606587243639131984242423248342453442635431813491419119105834223755286352789637713883971078511564586144335903531651606774028353079745649562208676783158739787915917356206214772632211433936047638871977174518155839297964248031020762049723477798063904220254955102509569135919785444115750632726188100874128863118568700969936790001736878234315756795314179893803230275427145391875915449068000745007097557727973275942197572122018860936599172900053626297439186653140921213904901059352829001643875697211754600241446177291408816663025031336450954023302172876645313251859446920494068543980793937246074798903562704265819297789271634168680050621872567080473751398636698680519811666456256323489474291565919662459667807469297704052051401603581859419400740211735013106796371825336999588332753899555743450458996373635475161774481105410235947226529389177836247183906710318188187254564550441729963197879381394909036437012047577491267163485203938682553814161435456431565209227801004605136303019991239809928733422433627570121675702279247439645832219229741049821617727773874103615004393364310630849737094713924366795557546895243910755153906327810496837143039292109996284909760299827265189323903809752583634469110746732096745235272027937440151621033568167571620484687302937662349586801590273371788821174671193516250678180438645559588096274824639518511395917705520641621457214181052717574777814380044068573387553808776000051872514248206029560739168184892038479210815138899572134597752326858387582659702138002588366344087379974191456948988193219008936424182524144735327138983624225500913955136301798373535483110522982768836619978400557507079196767205339142056906880285169921190741436429713018690542504129446125779595459518234741066894697809163765236009447167549579698241287234463193145981767973637576560453891606121087889207934281396067709353205620554990747845528545201950584183804391734856100414818090441753473739846896312350005292963518773816071661662974457921563886789223714314306417742846129703292692988872847846212068171952771215920286601742640044247571348710992379043579921857971579919593837801925976664511478816555414898501533395105330699256241143287423913163831419665901221173820426443576907893504170233434020735479688410371936150440530197660246292109868847565038856309571377938150628958083231293565372295983897336963618891067426493405765094530118817527749691040289866478818650145852036445758013414720037108512588416790942002050190909202442205744129209217394806131620838241710532807116457539200131007902327263802468127217821580540138244407198340813995729774180440300660634098729138441710685751594971437865122332144208316201711536424125631293505661707757893658733422492947367937749346285224501724316642191288659482790138909524987725593179585721721366460005803613132434721588099023341827887485996659671777860590140529894836140998968715251386217419736816624217518769782046192340592944529002965906475367388679609116576947004228346817968043161512138304307121514013931843471514966728678263229702048666824696965142442786024121241944162792847793001136780129406286864715386506127838609779789627337762932308827470426861446813012093843103615876816306871894400551026292843714398027544643952267768455714332418693155361422596099417940167914597353907776882060650054802402169745704928319228466588901872259747946483561364070906355176147252611538683343042313577105485718053323068306741043959382388382506578092160747500718563919742311382065333973715762831823471324678561320443107176049254327296988399186923890699258181233306095794388452025703400110626962471656389198764049604234136757907694723661190532017267623516164867645943175898481883378340010036856811431043775249300131876951080001931506684139746594249474082371743286948285441410716723775273793056949461536906782504965441431070643726832075590751449373757626457465489212049573017350268116075132139905271319049001234428015991547453870148830684477546146925182993307642030798398538492181418997618575945673286869680970774044365520570673425302826341953651371826221317077870036496602310324634979368715832908335361740491824921046782855500681358562743304500355167565648437908713176261791225721926203741634536658201254200186483810624081388781322766989290551180665407157415447792043449072966349706507589754954236827537983228696144253815769011620360382216852385194656573897944736593356541443657278552309051376231103687561474530778207881595312474433659075787988551673962945508846898787582046660632293503506988796282366067165105051070695935417848481476080348286991234199945807548882177893848355221614394661833671586993860486752514333814355241032693849730279375592556880453178792466428108501984213454288845729681021286571398091080080422741942786461783512868659985351624045923967293592650938643524977365926879002515966845867174205827428810231818198439300868543783654953190080933396396637535511554945008951923022219727660210734360190674529345803832763366315041020377528958735468012201939799081049235567378154109309748691395390937657020898437162693825779875405707001571289342283388273300868644233874317477251375290946474787706435688088131409121541500176984592774194549311103902170464759709151291189402745210291788759506114852851482487592009482462390595298646443467239174855663339080908776531921709940351492804782920388252857623952318714590040092727068043339510631086811462058996053147764599694002729628397190096992537219944470355223505389038082760137729025243319593532309178873107916912826791469766985751354044185022317637641756344376159869669880945578560199112187078603738511066293772680431533573904154999426709399354889264895465889477224049779453819502885027950779047347161244811709154800715773118217263764069849152852404367823683969393226741293830611491438703102115066755782440479980628801569302857557660673996854087668944731375211245468057656989102958828451308425309464449404398889087605014633014397657451018619487654091995874094458586298564658900884096184228387259926809826774949175057852950709169564583456306011872346244365339943913856264666696480954781626699772452778267606724123408062968463478117741947430510212606337294355007822762832169961886655779705874915634518679967772006348687341324696931224074408093016012626076999167369551579075906318138575740760189635335798429981512392271091034564970199412332533213380993748239849948888892757850619833141334942554663350299975825703685041185594582525133405476342793660116225353778002692928535747679284838327099793762130848521370708846978133962659157578225863995589221960797629912864696190139011133847411372169988687514658825945034775071707422502767966351062076781130211382427493057816839484095842453672368618180753685491819635192036278207072950166601738449200897990966561213192669910719529231070505144995599540823004417366258256535327660410202521638571428036709272799253400186319965689144543007903550966918600801725579014893897398517317739033769632393928552284163506827708933510629258345715308782236562740432993272859775219315252188890526891268395323837524734122922553336155058392827539723233239340397459840113276349222676096348263702991278632438468040402738993039086273735116627038995289206404150213762318632672768345666633760467397082376625544711010034495093963694391806746039373576940000067736746265598115948938089645900330549628128387466321948369663811575779978958449473171928518921622590844682721408096838416058247338996847111693229113097608613817967991417263542801895933968604802943125990396517211023131230909185019496233144730128080850807480411351182976974340996546406756270815186262924497313665114699700728273727749150492492097207073117426580447408761703768885908690709905165820411812932410115257706029348058700437488668163548710942204944126018025477734116693460289198706550216477843963820851384044237183478821357475466754992683713408248827745998576122417227304472560489290849109611746055155233812914251727244035417060997307124421434334455444850665069781644273317757693211267407350003206928776201654897110897296857923436604180180733413195657393765392140734625162133708212922169809294323428079516467238389919493305935938361035373449340692604039800145855505089757199311621264071398031885291295305078678488811675262293080888697915730360560754836553500365710453992586057325431536636093614455714929681868900532166197886075447175461069160610568779065294729204338268589149353140830044775990351602527154249496806354021374723800949243810050382747086631715541752121287890800666707488825778647637222044178450434493155395553791446672938523588143326247032310394338061584674577667417334407759071990115636984665013038909672763764408461792137839371795933605009140005224946205680745092295688407285786444190060580771344757540251070759249033744670477428045586209139290067747722150766364725160143604382395279299203778578998946490123470160971209074623238317959706062954730090316813574989695490036703566764422610728236513669094923114247251328254242474172023993593185097436708496482202739159113676783170143578541569647968163015306494756960439571987280894236873994075883021114166398737501536648894261754279817782083519919855388098497819157680050511974477062283867114758154527695793188448967801921426758531986275743667554900509241553546012696387069206807369126255447809815829871608909988611857630237297942575688637687442992910760941261618334116680616478316468259209828038122932006958381461313350721036434093840211646063662631105950460254268116986938698319423112003869132366235795034655613646162248999048793921266791658086847362779069481302774930307215369458759599944711747853003972611156107247545014684254059291023431932125688366099661894212339951741903462295193043776907043433498883953188647069580941445808905690750947509248341122125684885346700368889701996163418328072176148506007638318640768049742133121282088348166141118474818904297149146360359367250311220804563847379098298603897668456751594949687919559272560656613446963292133540902930456039983070132422544377519946459031215319802439025212423621154381387629096523476707976002407047352581206199817418377096293243729131329907594936845680251287597858262904553988445242065602058465707143579280312138123617843272752278782458108903649502283988978471476577294448877149646184214693160571509068686989039587129151506048046925428659360653550302187533220979565011718229156172173361245669421171308879843652731198185238809841259344627732812552682890809300809853548131658985722190893309321638872440323050268578923043350110344395876429967708143605740838940172397054211419731663162901443609774630346326559503277699007950312087594775116168302352909061288898265472459789225448566646867694904643709765789088640305891965599263762042592402209391205715552887689406514150638465143761111502099890571857777861412493956607384536735932926511201761648061688689536486184290852577595969990270140383795397364403093504509027526710614470829515177423909423552671838912820198881192805923000375714774573867315627124213232101746366457027072342466261659886228615218365238582943233744896320194324001704602435642044550622321468198378856143149143220725979553174225293523206151400766092660374968031172297352961218724569914341290221331739561117122278773523682498768659517264213879953609615747735676627496415476006509023189651970289868467630266186663497238128756768980162770712868296569850080504832509435453698041093807933217136157857526592491574912600064908704982093425321036417789823463841931197888139062343230571623206164349340193409020352133367824032271693792254472061751225411115690186954355782926979589850740775154882371786746463689874534038995984357856074408369188133279184572566527413530505610752904385085350905514780222601182157865112966053712043136278622914623832853471615202074595069277220483444717885134865992371570414571163059688343243112670701966427716973823146329753609963157282160788181237160475968891556140845417370963022283551700177468757618234650647665690212978644510841385279966114945365282563235428077313983581279014029501427549791310193078729070059011482357790922819656851912386669131809952781931215240371064413327311198138677694565084264173484400121257636859649303137094503299492139858989697968543463830226042201419060421703355713766342166056404121512967051461060756667021009751137810102832562200920174845707250002312738395047888310628942521813605098905026794509632918900937597278168279222008967643557354042376595242560774412504431440820531658048411642310718470050259549319903392591815637213730367594558123489136703117764013844623199486135570978707097807047660820160920863279957788838847279516173398340426405960143106766093297645415635166819336067639953194624910748447633210147101596211766728464681058569477213297975603854608405900003709447056280656792555925234709966827525099182809874426410655598218536699356770186112852239546818691433259761126299119233434726864835517131779203789499055884370345702382825843112565827573870620438396569480988557734963619195537084232912561120946759226524423900231817325701358358817124747864567512363732613513133326402998169728396282568321936349164510025296070630143631739572635281876877143935259201899862608152779106715086501776455438140244562937006086819812573595584180351363606207380832569326537295496581048040127963835906356079766332885019770801398025995379080857869516314257129794837189026531235067237147079492237356946227921112023252421914371904497455696470920603322950573495132476965023542510175329892944447894683562203066431198744233240490486528749000569504098253844182489519028490324931776513618374612905725859949247288941322026360934699903476456001542054246120186658231222954457803519804264943148678364718562419919158756096817988400079470218722310726327034969770355645787065176275471111222168347442434223114081718343138257019047338821697627261493381140491705879661508895876222770161489422490015936631088932744927649207877202713188656735477681374811566462237862547807585595807456238830858779498869986038559742764591702830474914476974429021084654402383950365397713037510171996950795368878323554145723955349176780914354778201085678868992835074046889907289853248702976206727181704544817868069814004507420976556614384258268802362370970124851198350584757701040103948400439712768100062260724802531245464513759840643652874269287093338197664825385088397370519759867460428651728381812576520764614530289693304195385453341966195076954898304393232429809763075115232747611600441611149333760641758709087057966197756190125702962534250629636185999936669071673524218485583373962675310448602715397826873485594979267266126670468297211430095154592412493091827516519291743743637273374666599395880142444811223257252160324413909302871765626398388547071004414680165267611616639633913961710498333946916250701831581514687761528177670714268897527380208441628447327958120483470221791206027229722370465019960859037298538698255349988694824557073557094609001703871800852926894755682213612860187159649502078520544498097986138206185552252961103945602131879928751116471068952586651999035229247234311361401381227768636398340372502023608478434208584296059153061855759799942585649269687432850898511187179074010937317325479943760567516830243822322028911549092624673245293490007342778419345728965787614793258201198067792200275727849189763507350970574423587169232652936261570191744453888740055047334775506249518809348352439397900350751833745711792431458885424613114529990912932060093438250062581737667649561321947143705443649012677440799825903476961448467837932460251383471568749769015118786903449986280010759915566268797606089696897492314546237012756970542356995028845345039635952189818335202314824607657043123133418221581418409204566136944766180856881169905639816693485787175445667238437257543410460036889323703814747579708193778040127762635872357060793332929148499003359182591106269549281559276997044424667845833272388264085024781569561160857272038505705680553938459443796123703785724947902992612927732389146062105942372498723367770850521767323844609831486464364383517041588154909979183120506317179854999690786118695072088804452723780128627732920437643601322045274819845784177802777526095892817265448408348708508196103763572907561849613933001323675859297587178644218331765409943283741871255040748568437434281298593638553872530783101690521017266636194724407814232541297430446911606635930970086606821290293550720371516698851471706657853149572092591497304735666654065824850517634944332625320097467319423707348577402951597397281874972921076000363088047117244705573152636729931891930040402774189048741569757854944481876233477902914052007686936150054182434196817977683720639283281534481148479225644384833394725628495191491947689704452123234729107997998211904262061780395477195191820912919363604201136659758448419151170669852443676384170714149763685420410918596396014328221155481524388927209016767495363694574374961493302817050512855332460661807824311835188697405505372973798763646755323043191090878749858566052928623994922626505675031659001535719355312401991508540315697349821821807582716372825947655934275747707639672819534486095366278146225012479407934136574971139091103812579991199425282357438332120007676734972771992185387202362097479958755710128867929437495859439303811943536899939542611955571708742129400334834265851483050129737733069187180781974446389110430634688510528489141665863439424382954707912382750205034998801510881398948569705223845398903923241746749501280100696316710233351984937197157014585204461069025003093588504295404775131244342534051510612379280263279916195222550236904147881596157639593244849203290265677615392795147601201005883409120829147886084807798225419991224641072189114922614008278555179049034540320092599778878928127855210047002587359377048801950846784651200252890944078253562948389157470404634649468008773638892386433761181598916869382687432937874060422062861553024065565313623530463055648769583004697677009423428654067194077262584961308044035606029055873287925192670948653845406628691854076117789248299574337730014047326818326842492957267344272048149828090802930889267079760543094532314592449562658727707261504320139644618494024965207992512664784121074183612974165760342321990153049151538993755442216942790850539897753188916875526061571218926890935610202695883238080524337097749253992136772202234647217992857644822807474893915920888829738916037549093998986416803498351786162549113843309572985255600756653952735853982372974174342241064394608813008456422908947658960716591464128912649747831766902334669206971292496919321188509958069907069845597081682572065412059964773246157040284568137253733892366500747055004628697328270072745097288753414369800717262226647267972641708470301202610490778886461506003332986488112847357378216666564564181115991695663877147265290560952497820531461472307186650278309368554599420320329174424928456920674348829127817566001599242073481844056167716296486908293237939819790027960587545560637307395379769168920535655252556690030574500163368846222105519174471540473259773450427903540037153207702854285517328977849685131008043042929875999464823336910692248760483244545352639831387351435636986729611635186273136864662177264350123331970393328400157592311518816011222316809643477077688250976494767237032219024844292098032260772139628103353378581758841855126707878999508709928338443759400532921157968735365919590670868005457337149807650363164920991946431317766097171964659024953801352433554621040545212057788745077842466194327354364538571361506153536088877804709533018818972512774155834202619682732596035345855575764381387964957972961854315036994897969036218745394675897228766028359557224457135230310529915361776897420448435591650495237547819266343801094170973946487707679564040218429311123417521521383070213619324939960968018879833293305384375343316803906946122053578256465870689638064925622051987995339080356343499606805179452321837904498223255974920245994087628895896790309595462712039732740919076002254290971601727879266928286507941648324680339402312132422762917406465385708961919080457650151436301885057196480361482591691757125988672620286864519266663182213200826452229992364374019634313558962056702485316000851785050543979415323581904310853820791286071151341271386179039915934302365675131676772701693806449920403480656007349240845251290698537603053175791842579789511552496600677489978299043151354769799511126242120459885174460224886669238909817862541542077716166418999136912244790025771220799824495391931787890847583191513799434816436152222060258442236903146785523459224266541712036804862522628852622670768855752590183225279286434161042998393347465285340860795561900955773035043118399079020056381815148982326297895632822377020619319971450408405654614701169200700023418597889518745993276914028668987439415723920605354770688251609830409111318687685682412803445266718256341956285234003898162683672923405565781670659575115367493342257802611300438075438671806158973385509381950576473679475766003493250485339603992228682610075536060962933643460900335200087422599524422509666471109176439526182295610182529724481635521754023292694979585101933414242506051055300079888503088325698172506889189849251774895295484274724522065009701960560396950038862836334953219611837589104598643255989349326626842361442907740893477901194537216080833060252105672073184107001281015058382708166371556720262986377225346658332041066338291094050203444112510638850142068629400604705327222931763949743781913359380993546516527362081661994812061523249869512235053065243521850670087599885740429703287590669429847723337271072032292028598389071382799439517410719718693981435862528192594952353507055829888515080009254445614860060889288339982881484237722083696363681927295900185992433032367859473584153793753818658687220602058289818556112157483554022451244056875969123369487597498242743206167231811402756162849644567789441396283079101972269936214770466699118785009021701048086082439234889073646860399632069830020255940283618634199714464039939134698405992935936694138994140498184078690759117845190863338204898472775682095550488647445246680428115933811215585571681592717329647795039777928928544251667295262856953741869056226241019226979796709248723040648779078088783257650358569995615301942375524251766572846238346319319753746299558223044741018934192871779615196780226651558173467053526560415431462128221221160172459188768611125655677069074402541424946220392434339666558576891124901359467939005990042682334519283208653684202061369524127760431937536490153621252656328123823590279823172410377099615232678295841199810308189547839536145242678626285774272052344104056206209182172202997349707331496434098001673922025993577495840380884737339404823500501975372570725599296278690131572622312266603758594963461716705106733781289874742177757419523947865610571328922996488780575119639919665904595341043882187834539157565817346594783229199833623990137490690958257849167498666074044675293636488256634967317934749441961860871534873118280770383379893663150057713979574133526714009965399372697241533440374493288386627795304754423556033240398994469235783524900970867989829196308120324780446706645731609538080745417562524265340666640373190467016215432234651554166345094780324108618988442504976772843436840386829523765723866103105557014872100158691532108690544122216523302699958066141061503598939080571459954547000825751525325937506245868925041955950108629125381161637508777874486452215799443064312697565329714903721254485225506139714704230060578853342413218786701162787029736757992545956784116801157985270751739266169704099514907796760001573630540287005209470119943068750910231615298017778653558642829315799216795009540003522947415354397766927281684717362806575087382925278357936997489382179411351185261942157275410466487512164600910537268699760992431513979995489536152927092929580862307352502217116110835463322263317124437637250421940068965305386092601124911789294285174666809594611118431001852631154339506105402528430303640869283217168423429456617436434340478951596413123438670580001194664955695453602007110061984754670066446123213796080455798074132012602637053129450198821572685932110729666055669631421187335809892294194497230593372861643892827889403947547965234612698499898402188159536903325499473010174455438574140625677222288309303297328141861309880465773252613746763386027585421205005912788553390832899586243889163517839960650395240249678564281322470226124818083442024344881411234253568175195589295476909777545672395106429088055502598753519579855025350268271394298484466335317539566928703402421295524014058404760599982144245486028253461695582149220377718885824245811590212006301307399228937045467689480018909577622068908157847517976612823559295745666812042166844923100606531133793585711360124851080092924293678227010889396022509466440739931428414066942323230102213035883900846405623894331044721938730279394347104021931775133948880920471979770463717246862311173599935090037520130643302036891964872305806765785537528311464597164845735176014495010593387706523730891814720728984791626322928457993191512108133525117891916599022998143998985129939493010656081361092688595982521560725973764070910668799090468268251933096632348057751951921876819133950014983631484593620399124798634384847014612653421189688212302581109072735947225713020478092095276181721094874667731045863549410398503765785554098682937097436768822198973842794693980597041934116482420919336806657086930785931957621263908381599496814921691187312834665512218850221568733800673587373514001002181844868948012172758184493274181724657743332093857441556712213627302507130334353351345954458135921357655104099548386051829929037405819720880965730148036539454004940258370538417257314727875815766649321408255164888557295630840984510814925665430000665993360090529083974731561333926675367128769146855749448514052929687292559549968615550416591857581072536273467288680099954387572753154944466609451264097141276891296249412811067179073271758408819670226208531728522830773513248492546684194860324568360905342478153542492196086990850033684398222830366885013676202512315150116252863255035189644934202587466769500310125127785126207582800774219471047935706145411978697941351824820004151362792346439908416543864562420299082227054920181915249758954204127216868037959878735804351341944680744639241544019322243393963894971318835508847375814460078572658463336273032179803635909037113407985419476259205668013932456230748090018562430890068093436803470141606801332454460091037453109082449801415568768979823591371301174993413464515244275018247510345647630673310121911561727016159036060066137942236082066191324108719830262064481360622634712650862893637051222355151747170523353341795090864550745728641402270988675314859373342658992352471362710227192623776219135823399112239364612733619051894122488521160145667780470341495746206386255282144411404045174774891719219173820574523692185548236532483351090714127872958178201195085633113216610208231981419158422608148391842364573167473045499587006227690631095522089260593903100745989787059251359982818540918921164615675016640426575906645131440421463678548909664448880452848148613882113853191568095309866157932651977778476284326621905640879748845516398041432637762291982637202554025864811570635059587788587671707221095391799061795267131204409278887657570292897870343625693602171863473014361235948764233665329026175872434816827602628936480406366052653638525755472164065487917079071614351228589320689017319781893772876217855027374461553616964540886473076382504091151171181722556206952563118577087881621187975859372815366618105997256077291072270919810826121741622162000120386217197634302137438796308969107493875144628183736846412043966978667286176681875508134287721023777018482836065690053549973952601360418911660365655758944734329457855075859323343997831822101480897312827804029371678635548332566144611556104671622371109274611421096463400860836979193909000113307649634454643646822789902959160696949064621365141183228623776650149391586045900128885543528044927121301839568228987259671108329973074562915432438375309967176246174177907236224631654965535571489360487008474607822048614572405508073206070101796305334369818553052566932735463228556483690221368394839319293067828178027862975029944732482563289910012584349751668138313157170928044017499918486778722910845646224640274939030912930449171515426698416308677562986068901875617938231182759148982819619349492750405436050779804411119188571604812509507136018747799928542862712855690053159810719145026147303232861889691109078670525871309424965898054236474469317576534416281551253869973147938044994070294970135427365285731275288328965866294194362010056601962323268827483344459621825909375196116441534465015958167129211319342445858921898536571676964151534748003124808458520439236207422837029158593489492169335088421146752288137944394378030875213178378350475754713738621345025237894540129910968456033512925019958220516125026210156770778962133000197959789072973081202673169382267283870612780418954788532852956752437894392751179777338635811213810166370847186941214973942073750658574347348520131092876041904959695230939830500197668751387299119001719228877991580513725019568047774087628158049871063760619272171684534986783241986494978953085577411344839987867394716294842691188323575234445078317208174469221659726797931965962341925722689181037607491890800309523872447764296877472533465857905601374998938095298098503670046768084645989678915887945961306388370700827295409236376288352323330910282709738917277392889729372336930490372698855420855393592917216675350861583099081376198600918235630491039816507941055872558444779207536708661868399685391631245833579398001013361957616853585884880716175951649358250517434794820801312496275231117236991157048570175334482469741015053811512689785924502846111363062961865096746894387247092148690599710313491192492278325312307374277196287506538493142414120381428293795339856309794805505793437561047585225380736638361242055921926603506280911238683012235565453210942794366422792312279993801096399374590399993245622751029923903939501111373277714959471763440637255640449152937990146412624216800877593691995866784335279009804495163624305759714321501944499261126410888962353623268696927038596894793849242106236534078887682647775444312902358398948411039988386039515539540952628686353938382478837782323841891919129891620351200289573563009944923448784357407780937742102883529986877725839109722210135504679418784081463215335002727706439554728725807836575923645019754798886721100747099803805926990565891420423466316709729142871744279158658547586168712141437679865390895875956635677709969415536970489034859910653695382605963223410981057570070765316849887113731891288144347264196955220010329736852444176859503014843069113673532661830975925203931342111937671868869165297627342285467518264684597486930300817674991826660181204725567542287635545046119436422687837900052471893698645389589356091826597042767883073269818852729646675303398669869144423031217031946023867494322022908483588979401890103013508451687264134332772494007541553315706120166232171818626246038478248018464108743303453350571930774216412448737351937474655203400212490110253578701941254676481020377975092671313310611628996656112313502794102830032092759546350719291402324349423511518060164466804773387718201763490529611360032060266908543143632557619333662965951442213413842349763109014012270186021951216234993292362525792423040261044891181381094048709895384942285438374409365123524770666419068333715595859984238731426479048869359806728575837530662605938256880710500667845172154309420393283677365523944355197611687270249968104208646478314693272901235663094140004223542547356597996680013279761054582207245144790132103049423647441529727449112149542775042496623025963487310600935393014451792177714555977687459148612990842163493008706953005961333828382268128290038249531063210342336512093645158648786785157153812906792576488959905372332367347246275461986649516857062383617773252721200166513218088156549431031659969252624368295900694027984492928565126245269507179891498283675199991110531035390138286866193173012903492328774195527893822143289718409518188564332695225721033519715758005396991617205635550530496749100716314658571988805189882181764725799440956600070173762417287083862607652716841210211461756379182994836718923942865973203570308287953476995149887903405536786670875053317796853038161643012170936842174570459126290188822277423770205357149059235350806513022651723416622944312631044601073416690497048735927246142885849971203014818346299893724702739621650219666765189797311904133690589772740112050247853150174806647269118383926187405546621438863499755413935790850396642721856415271606853195391199541087357009962755302034702620483748700908594155096226074511411068189984236211686973767972518557187985814782069537618586640161463218120176527696566346856367986874094540527105909987516335740792425030114277917826234233021331942426939400107171784493242933259223903172353127934643951944505865505630965764238991516281119431265535153488677503679518015349784203735191528083111420955536683927835997603032277448514867622582845892025479348957745032191479234847872187742515600854330229668978097293518050985147244730684225959170807653707292497180764541858603758413372567218734091974710686040137229585063497081769461936642585915774287548456946572056439858947055624562615108740513873565692405903272486090986633805109591468201315977794428214735456068073723975461801079869247389784222127484404453803327860185346595577492577801948425007801567652399103583565991861820975043135540745382253339992322716189414532064098576928645835439899336213910628982619902472814746340521630470698997768195167853342713796471138224849978166074551582170378371225144518583347636740851830716116560248383366027510475319926389585761494833885262747202216354492215324718391501958353656082937620621781893099540879795192339481466930814963878314798783666014020144792610157681240100712703427925107237721023890129226814170227142389309876430451845209205823269001329086410857022242206533810230754391726342090064106991139821666935864950040089996225912403407287799934733265588059975773562747893607363368452375996369662475095710904528631691724109095036464031313504798884928143098883790149701957583062892175600447020257387322405042412999565237156165140008474393220109210381192128707133266177915175654860251846117037702993249829332321528205274850061933846855156729774083775665800849180360994248436258731929522834769312472489238266387201975138603682126670227551320732242539650052973392935660689023265216726444139319598076451239851509409433728346463039398938149848347284642929883518342725892136273400936553104761535832782916113305352998948921798818372144369254035885959975042975611883094685850178339698187601744998566317763888278887218181703924513253843218616801915303941466100543823354942783616370500485272632594268853723306029756708662763936976121483065149557509000857289811605988829756395518907753232627746087225094076208919426592157527196275803884584748801142515527885556353047139656896175212098715298964344196975472846537475973169447371774764688650604068320123724650712856538857485355859347590159013495018156274334964666135237372395814738252355364821384432264490419552343674526688630182218225460813931289158611566163128457188193229272127925095243400389023512984543583748867445972185593244573499770448590340602021341313297632119504499921454385507968492705796431666026802258420034229455917323136734757902726819099371949227568737277726749585738950538022419063682960025542854434598625769225620972532555094969563450445666390154347232183301729167765161042418340203094216740054138549920760706611291678406663216006293110522879669092724941940631964023221694037501379896918949750527278560572697891530937822364618715799410383149753150810032660705775582230498719953160134255071384803263766031841813666562719997869127701426843025986203372013648177058600755174755324278403277374167657802098702799724886899732099441655414243698804038248476752290993459052977670077054147721432708976395813103528602895101698743480315516569574932359689745025175260879087899615331720842293484079943588231361269606236523769910761957805313849766485670875181820032110695409739548842577609951807250282283508715605768738008436157638387763937398244552545083505027975099650915805611192855846144189467891791043747448644434077662700418905260147866361353271791285226359271131694223136491182924421062039425539351492684649488260600969243673440376176875192072467154019369425952649640204096431709307471123513894442693471533852182533546035888836377115953106771995848264332601539806163424140171134357823245262285887855293891240365230262672639835942024727802229493784623668345672884896528140434037857304783960564277101928627088596466055989004787570259446703135371965840499585595641835128489175724482360947895339581245671308164439959806802517121989572581607197657239155807191124187136830500680745999727751380317243954584993192420364940597099468428823401230862603866143464567863540524832609621392090018573900606955756543588824785740616204290843486641870914198283223878197869483237139923864234713291488744107572015417420727553236399322024046566113740535601077788741300647653359655499369348157613686602213293446808477036484834783807689173448653200227513171839508281135932908858238123526961929522392049040825386927579190324697157564124090572140710268749660779394034047896762061316428984580485972403435930180559702858371064112461399191472708576849698261037994752716058261957510756624738633709505705074288800817093389011754624001953709420708586007172591886523282374607100462166369639306084059124859686417242495582961870209817699661146324251203528128181804941573099093163658316190958351954920164864375908494119636574654121091518149843293041988901815172500062081535317595163538166760919459817773107797694970462537336747761057147891462689460706212902906987394865811345166803086462264420148749658952151417577938916109053057620338662954967468589255934135280305324491659704597818853719788785673088443980265741989238335326240377185212983044510046272959609233313816723633481229309923811912900822259530330817494049309490385576027634474697698867593268904840768330180094877597381608817098946899959473333477032630842257420251057393480446856953243454505204271650016924626866532460645067953454401311023890551181305604247178506643008360463683985612976223648407966441660968529488793698106551494345688098655191841582018289717819410460273098809177865834464330901067344833484718062408771655044310959056687759788051716851544070671251739852196199214833386892716503752366275404065600902737349036508477223780683947947337105142753910525678783574966052266468270694009623477724211041383438733990130891662353956419203156227215130524730348483427781928389945168121078632027033247061465926712509654982883122589576648760188281538609397811200750963402244123620949447242047255489620187328419180713737201686494196415024085941600064332339680669431772972008359007456406972323704737927038456804623165686753746157519246449023341061621005213453369073515601730649390961043830862830956623176501946113112734561804597935831388184589502426004263281590234915769857296527384739850569685299809707225033372244371989291119489535266987902600833305264529676547947713246111273231520429061321641543239419767553237796926998725481332280193529893121095020178333684126246364088662819514683915524241743279117723708509727767819533927333225083460185634240126202639211119772317731507482470440244602045978082267804936631974727108954740536228701512322031535080890278330346889613990158952403559175549261901328910235381114164789731209779773558413845199637194886397423383971095222890684925033006194897311554359372882643730180681451061814318029827111369612079198809177497837741577622269456293456477603442593940697864687503337748730265616100794997219748754244156235068038419611271188500692537889035874311460296178326559880797013382206640327390570468480145684298944472011977874255088925981665180527316152376786962056273863781194245545697752013022098575697415033681834136572797555938632029023687363316227052150986492832618510726387767335128625251114422926866962073255983372902411198564944213658436454570051125950750023758005800520306073164294600935327663604886089553018039205997129559767285193806350342401549814639611481172805995895059208317274506374599655524343526355641992358006658790293365459367356863579343250354195537820217106256712823584126108660121749810804190874531926725289207396868615570757817638269437052443253751403951153269223134643497777659210998892952473043838279004070630925728830003382520283892959522685111903601613043707530751170974086918535084326542921538371546627724127825683327244146224625235702182960764880591891414283053144033860094862910801705406083829176384307449697839559921776700888914140830159022743518190988093518394213526531412899939266001472989205798739601005504217138053367525654229677804459847319487497333888089910726769847217773106366370527132335715661628313365727149630529089001117089116171731905050693561278167600319011421460045767607444540321257138620680233726826321493289728914389563689075020599337523850714806068531447743011588451972045374906629120758091995519006396755271891870464593924339162381948195022425713458906437292861192269451225730298619462289063449100024658611316122215642222462249200442336732717277984382587651597505034316755423973752716005070934625764022725930101438651470199542413901857277406594091209383284193317425594457054431010473261158686573027198084490570444156420288195203753676785953899594559749420533170611225895820982936240527655518101510550765370623659525889554291791329410935694564258423886381299248309500680396085756685196799398587668424431442613187625601839415702737054778668846513850552163730936221568031049976120920339423035167883998161070145705528136015731793910146513167758762171785792544836678690835901648010428473402097316603159165198959333834817022130214006219274551122967584582128667332218487472760419583448297570597978083524914315387387582368917289232457385761751656698106434254369705134722261613779271261077059427508381454748585583301550961618458717754185554601004700893046037997170552033821059739809171151378201788787159216561912893252914045597775537276774449608716215330855747425333710817362760085449124718360820823955144300333633730569019533131257252251329968208642559569152610074945425880139096272477492685124300191314348501084405645319091280066171954552167636643838705833660841478910932851509859195800455404226382645860409650310993761604624987924187220964363866196846805814018365858680368750873694327617216029578141102286656457140262677837363604881791762381172159719620776272267888339682046372301062104605236822113749259222164914278968398253990468246254309139346796954671991826391162057566318791921011988453552663241017264493465689783346229773473980691524321468754270939689018893176715654122246186106261941291245806614178643262781769025601568697392809977286300609336362713189328238310857196782811744042761921684157596559363111999279345273117929907166591935212129246210117485323360547511377889591292261805272821335406823872124596838759091792783334824014781828790197883842749127021483020932321227494888915582566032334901301278099914171380361742780236170894085780890373822306111170821085607086834457560767247420601266523983731501762223600538683152069341899732672497532420910938070264069041949092327122913409348764769755980813342799349524597887632511573566706406329149679976639345391086923505820469435310863234711266802103714134587465218544222480414955785591897564049539074384911461547358567657835357997887689960867178661584751978694263906898434828016433759032233848649326560458595721295525992848288678793740564255327012784935827032872319658446891990549532453523128634741198107012852244620150248584287276017923895893333732009825787460246365079826458339998625327769300491135555495455528815081734586573330406367488933587251449114965320878047979514929019140966796354682264439192655239019364141057620993191597655234802118426882354338175883770982401589543405934208870399097811441742561174314381892010811704148881898876586121914596962397579228084432009702380465256042000900395734584868156677725824668253842615699857376732795629319965995080846837981250055276892181623641222475430465902931147477966536401169023561032510475850545870947657748045050978924498198360121444219927311418381628455970175618412642036223279056938945647518180895669038461076184181866961170222569310918712122529697972454173609862355537753484148316362096395098773980729179144705653525777686739107993242863609663649826764272636386076952559488304306003540784717091435740160478409891241953278850863969799122927410929425855723197173166111256085693403511149218096689525130196221455687551850159295995050332504020296419775860425097975230298161610913634812143527671436303552963611512094086733536375579062513548317789922020564472293262695589374077926159521795703234990263840888202782915231737914918000897906896661109111823871966305425158806938053562237286198772963243460792572740738882917720277821429743055716775399892947170511142519447049780807397735510903166305681091228708954174693216628976017143639237639087750413447629872427366222595221077420115599770250791046489344024200468509685149758645278621636999529898941952345294444249715658211183230018062712098251001486922551533799315300923486937248106937158052297382380107280360451754945382212587503862601139302252536687029812731874044303792485039954201436016840724036387133691589077641811549950777595064752952666911009551614009069725619448993516130699652120645473066423389739428215641866156056080238331800245543585646983603105108951441209952452440538780173063440067722902983225826813226309376130408388365496287756281299325418098757716239938492953338332436056825832297913183981836031993367709798530877951769567968559472747880643090580768923006686559747922355933598002722274884454111295674182112670616258875152870103421356116652456611787255620731527377172937587498330280506163431030244923102923955252522318962252702365577415273792564054696606966968453019205321056892148740600394832850806918880120199772794176837410409824284373558668713104780357369153986983944241284151710405094279139981991708544712199442046951963951083511091342470131357637628033730880013974546546233406558839710457258837152744938411530474311999148066239337830799621468520091270930108088404584705884146067956788591848271580015566812848330989861003022085383527303839155321087667932815038551607471090267111247881922468319683703823487616759602293484613942069450186889811002605385396330521593089441355899893394779321773036738957212689874785334372621282113857264707623663291434016699058009835285180797670476122505274332022728083919085863766961041067658077878436534983477725326644570396477779520413004078986393394758895469836039461636575517394168885252394843477666608277392036253127067098538170406545876233701852215924644074300865735728384517574860634174491005902001816326342318527089118364781474570452301201570523057490498304001926783043535111600194864766498187626338158860086218394678170114039803059068756024568748120440547865553004933556485307645103962568889872093661589905514213899642742596053353432436261046555957487380122751509031253340307242902766674991756716088477821452573104133953986006120578951184047871491253213149069458462415583906388556430247482823957617820944157002257963203827227302895122308794626002551734674434068367711966035082755063438184144283303409385412796095864337472458171464959955797529973964244927843628676235530146013501765586404370675774647230507899413315618041509847574566205696449329609583474040764381135452695143402269317321232300103694872085583100768881673915899219829808953889708267702925776848006985935351772085499213614815001032342785781144948394560289360282911531957469535813113082520071940686686627754571179216837640895136835972351557906989493828043744968812005864979886488905821818105786117333352240317983115459522472570755560218714211068543071897235806480030100335004473137547721912537067393998198952552629945573577112928243986441827069386601680443111714980518565419266131776138927455116944028271484136451765830057732828235162399874530848826395257822962994123114722744891791961393727873669580200499005440076632880850011474561749231288324298124031769454657677249790762442265800042329791397900054465355115199989260694821905796652185200725927982585969513816427151625824849404530580930108037291025660062957172656999126753205063539540124326678019738283796666377569659854544337766632418968702750475153882101079083728808619794521310089261297693321132005491030338605927994128075441791144876660281556577340121004497929396825601689401198991395104653550768658835062975769174917829986362278915110743250943613592092144879166547637241075822054283597358162937715141808152052790522575484470327428871624811390920966789872136182514555378165134832055975056767290936905117867273313791646544488735192491654829294848287947876428821982963241945515076003767502344065768624926123344238244913290747976077388828113364072972137496341261460990937881948420340017019908109049062426559774172011562805584625922621569289027204733141233937977793040577353337665239776096815224672088464362231271283702474975403134208405266042411266347974490253861102881829774780688043909347428165176084080403240026277897073337250656065890433034061186750045141007031798241478692605296915633135173371237694336549673296791397411269878821074060639002658306872719514183328037881109204106869523353167853437587339517466183286708638770535405116715688332406763661227736582345939885722903022203859461122295557421594125398238036540850519677612694996474606585947989292858710909210913075095352695282740607956002007101208332591938784446561649765056983811095815745473821217425009382355108555750018872529876586070902759213687423551033963988858471888979127170162179920981241859635317045627250459652441134470307563011491916907201647373379651436795194195234009304593442073819171854242378654538064464565432530042543824044826768596258951883798784155983784457938277979661202455491701747096584156988090926190903812560574084861227527923629360701683219987571073666366054306206431606747642937632624780605207769036720757355459474229179116061121216955755576118048761968343906551157151001509503455710546212255343722222235139660581449070998544958357213916050460261633394914959668907374203644993870119152118247640828636132644625977074985270838535717884930529538312396100964771706768668051969570438092604872358542666884822660109086208188254722016290041358143002233663626406176024443879602495275871331920963952192956966382717995554185070190068847590477941644225883440101227106907327928354650760422038569636125730216637377160940491170724350154953705423032619026064557368477381717864316026643392021844175079299161616592752340934552713843558550703818315672751518895196448698953818822686812624746879946146935886252071861359983947251806971870389331801111944825149339537795343528976691421309913457038164147135701185816192700108148967850293257836768244164617581229667283430287693433098740486751308851885048778221762758601209645064279990021017781198165528963554864982888620136113835877947607131861912424130812850361862901016505224055703539975643323093810861154586418480622679298788347945847485673672467042206186560824070493315928127478169338158456772957582871921969593595168701475528316495133529610663659513819311410018707091135784282988658123133484222998311356145742215691061829254535654921631562916111319278584808680174601186773554560922395187618260613453647497101398704907761051486400323997226528536910910326039409390818401887887076801570544591601552298465842077533290126846646520946034875900562992294093999987654932189446419581535141901471195939149439818119754603978867926886733715152045324552185020310643193795316063212066500383525941332625777370739564684772945337764644874871389250015983049373252713790304667367289884479169164190123753598697439735299261847596683857712968267898230863365571757316345903105239151195853671196756457447925343846880025160039159276502780824684237619153003337070916212867412697546112893051137025949590884697404781267980987254446552674739275749553023619386816065451613186251247974341918677610579638030648849284180813726545762059017516982112549684167393989095694033282691589530755998756501583497602122743244003994924232163651741231205422285207365256429515635805532210265767607720287761266148585531187199644492189129848228077416804298247831423284636832767140289902984206337518308049605039700006659118653673406495763975473283539818952553482208882546302810942273423154503275004985003994265013728483313976589608977078383263430264496788532532784362205261595940191323406635817151063768382458555066222660613975879968975161926640022899036978050325789447959551125369603128021115444534873821328073637608387214786293993119104171850349091344329740946645091688834169304668025105992961471818061293480789859126987793001224340964131714839062584375585914530760604474636646945864655054427578268058362444703857057058988548208919338400702528342408684659967447960940373049688417257691879994556705626610365462277229249745029714174045972851669427399142536037645273725826743960296463290239270618336449131372336678225019239437705317261929796587724954107129549836888179011398470284263493736303635742604932183292003720625306254624628655665805905955259923663866103913698635906886302985109031006033072310528766264550407187287578318097476394347272738565616769700981647241257887376247241993705309896004894125372366015184412020950954927258223496375666215795877162641595904753375021515988491209846884390316316845316598439193717416455079817347171072435164798485532095464537828338881546682252195376742236129650268947382782257764176792083633400283163652831414661311841772429202162893493463031742324753581778944011113405085760122915220883109045334198580312531149619493665766986430238089527007850992793478601632816166671574131532813904498519936913440774686460871614548855219710602630084929427407126216343572402495971336677982754480706477260076025902115548503244583629543680001671080385264657809385161766297178171218237159364185857383914970294481479755402907746326195921380240973931703193849683268904242711188408219338459930018738909078453876912721668696041323995277770039857066330874919784024284942788847652708472818200863091604902168145217360869943461653651681645477097706443172791632365631820932899411407734419376920515974630508409040181416902090849513071815405392334273618656953642458584142403347019527804402878917232022101896769738538405523835973404357678275173604318841613328400787478596998260348190002447013675840025085605658291162319216430962529611960181048017526683333458691461936785783255454484307756376118208936462600470463964308798737130017471532315274862899058782961719498124514346396192120800425226606755085204661805030682301385569534850667730529967934664242900747762104590918945923463778524137023195379156820620842960627583077134992595253291780439844705625529925981223232196611632666971436478170175904066746959174565442132474427117035456456297671149066642390061208234928539990977629922450667909327668307575534707362784875829360254912575357523023085881926980574266159358215565572635239413778521097303946240036803105112608040378239865590288003753982142447194110700153522089852590454549899390319409233031695128990317126238904304545507400411633830556556242504280431324290405695067426808865871349167010766178976965532712906504416031333408571665412907708388250897459867405725605756271041169213481261601209533780236451384928954861570879794991223409822348805346087922177745732946701800321372778387944095496684772842504053794620547971742767346980421778954532542973676932809089912623071990452750571531691376384504778328544259041504629307025451978920609869446655467736615461967787640464875273170407435521927704773990194563405789874852637482847545618308667282171243719499974232064454703770776394368834205930969161892594489891782081587467341620251762840263486814633669485911850916200887898248764446879804300103456506986489077911805978403465537642912761183138401841836738488354108244678432151106548149655240642971615077356558478994230595368784287742097366601583199672804927064991114768533420532932371632458792381374277565006723482222729544156600833645225951413288239703832187672634472938424686555156215068709174915371461964413151804675093804261944022534087470038971898997407951652965022150654083463005990526544275169273206541530240475145166772975644212710127506716635342220133113754106244669877077448046183418343881933358469234011281020136614266006656512901385740217498089814836911597169797654106429376294476453377064496845790897928049146842546978765172313842944492571455185532993197890917670621365440543782972952913382335273889680156891044775553994360994052365127755506739180121372569533035250400568783933346185916650983889615212464305486632590988107324720105569246153488710766001748059989437387460525803152422256102332379819297437615571815347093202211478489317317968151688147210154960408597594458415647784525572464737753588273423496897226501977626345114382215229821330672299719037959031915634132684799023769913845892389596649014468593470561988054040009246089832876947380659007890746490033725164827628902042861393969771717674543961591482275502878134955418404867827712118963467484854088718136656679084741914121434264392448311300775788886139629529071594419703143416794988985130131717820935068757731064682095281932630911517482689569641243979106989783208277023752959440931329168113845101024755090329510832436436594522139648603336748345541822393633224893078378837235073699174644940865694350066003938117460468394471856695253368384610375918674540555642315530286305796991389202800876342835568371881446775063364905962198611342175599324849187727740243994139034574802458075261350908729983433550793920912545000018099393691867464212356592592382214846436076084579067437055661239611844940065009002721003185057762662174743978119099206113690196185648937674845245141188571063249670963575116221874282114087641085555073446378140693984577785328660358096563978999348387460896947663528857263348174649857658046676575303834635216292639891083046020777735925269126453009358664926126508443028817796457818588629963864569373201048809385345293498015742334719318055203385867338773868657265341519676500749385402365743242515133018094132216902670791233295167851814797553481397568042599345756214509067640821453456374253979229859526993576462123522880684567869923762087357176649386849375732806981065744950372064871163984491950178527106569140644438029242172897307531336675485411201625067616498590971728388121873725253321794161265663080306877801249819279787764980926831880699928959264021144715236944512469604460997646636269929030435241303607904008828024339026354584774652487032035719339908497499503816344296728852444771802171386107319498245205251641231589613011500416393543871003624305410808272812760278317040882042612728446786160547351042278622906604511456197162246543139865706588771782678926300808336340646330748950672725939088077049793557340185883801689138925534380910724971735592639226381442560826607098206863739624106520039231506233256194839620682663975030650997250966179877464313903010585481846103370425149615298295792192995116311045338515490648753047902408186040108480719607613916346069156273605118127390278546710192350206580393281925897747790249217504415367785242814748450426584634317089451413517872110159866416318407381737094376721479693772315825547693614540288860795903704192746943113382060691075931125384721071151387046930562911552140385070066936800853468649823141605572732256630713450237175839981669928099238960561647108144598604326104297605967368913108386758885988042963770781272620786717972676541566354982403590924503771418022257377374575368746226401951674401613615169702047538923433334567655550230497283327473843564719212218833766189398835359411028914271308208570449066269013765156988328916498002094185495122378279720017778660834465197744170528065774275458704289500968222316528401598042066500420912804120746749541068253946294937656288342191137321032780244253461012573298401027200557184064331627641798803350682022177202029686553876169822973605645322119473465027903410951086920965903810513520940934670638552738419123276281996481302138263022646739680047446846789672650364908935392920613107929354417154730198200959789141587052627690909639479355085344289353679007882031332923830067378758754162544730403418182563486337073063580010358529308228118034825128485187501605248317048390564074603749940065696068288335474526516761386617377879922968566953505181477109851068761784826784900146303310884223376589630028736024826675806242760243054568322283517687766102372966964636496651244608915848344195726976078620446388134840625322810296338587212881897908303470006471866363288532142952260240068123192563963815202516741811207039822555689091998109943312785948318982195831324738714979662567979364652574182434685155432907515456728544192175757262013697089551978240656691419538998858340167326393701653307390681416448847006288456148086515627748961651702258787554118465723485966146312588724568129219076338089313895310306914520248603410203981735093048704735832076862678266099162717062958301041838404031086311430615227814256750116165992200147092898345859155885061659882977930972903572667909058128989025817088279653031484853657408996510211440773781147811245479482045876822037113783535772855782204858758828555851742676923294687362669023667860193924047608971341857890403038712733079139338338272767172125579736730548948453141302622216013144433116440058819246290900278235906008454058427565134123127356587826709778538278808976998195482184191870776844267014176680597391741705979135815283695483438340037555885574732447992644989854921191072749867207060476045270632026844483914945348976108632745048154508931053533103621908650251545568981912774208030957527071346773380076194973216751154919967979695944359041538778476892357850784333946988290392344036992078223922267274854764896168149688942492216775113971064497338304581698732654533057671372240501950385145987992506764102510519816296206334288332362138787838395502720117587532138447327897122209282137983961919813736735449510263015693614930451838111449156932962869768583142985150298552367382777665671428632780970344083167130678527939196914787834431284650937154549315412315535977856222159278662614410583491714881838361803618460321131257152820887175237962128274472786946651152888216985114081302248098396465196769668054947416250522461174066833482563688366840213424625602178998822496449935593333495583575920655918225658609445720032963607586363251725962347004251401282854197134640171444918165756883640337754365238516003544238160534710470732354676369698229314999255416965499820860586273034405932999926021120199454277091198945243812154049283130377292379259276682238183706939968596470246653980002894912328578733782890175815844370997888336205214471782669842480537766113998958119989221872116299402888702887317358481122376798277184796897641733077459796149732308668448447880649251964196100983393592663734497011978577457765543503227521204589593981836553726385754287665834330528139880301257551954515344738340861601723139203578228909412864494124616901817290282354841313019235367286367151467169245920409942815443300395816632279430171618559003112670865257562883922160886092015462903223338204877779632081615013607751474363694496732967553323960305301795749109850908947802029224438231075127835622889248390515330132833105023155322510051105433899498485254952532944004658861175043313404801886677711145611386114992283145828936470006535171346824341203126244708497343046886856871765773041706486151096514409932117481737074210823945472740030745366249482698797540284857851843282973871455377836686648480917555005449452242045635110997133093090514027681791165210871014139756134414117062054887779930068707479849476170479378273839660196353947018495781271029403420772008462525291375153127518364244386636777335499518713674849204623030549043163101850551965133111407569761590653476078845529553027977993176086828314829446834340303831437834278672049971676061119640428989847082785319975886800797780611580975012067040201398838859182394930873339477181013244011378819582510413063489346324186970288569940524243527171368947641633612879214243345345575834335008526833080293790386730060044158454292763251447224740721550182262328625959261191533227975095798258452937987094680086777050448694641396092240510029142004332604941392482465978018159881301365651477404709648456801949213702257610013103608711634043212518072575753316764458856114340174419390409388880929076428060259762550349613929372081486848400792990989512448988188272840686454438192419031555587803583294583692262509541369811809764291587083880993530214259369076316064301258505917828958568102609919487333415971271428233474033193251105401730101684406137266778649890591347189844597731437453126239892695067263414491532864712404875451914555455843681665275112517926379434293439250431387628781786778341027319336377316265347337076365362391092947907058265798059749155172212619344735184772343693457037713736283465759709400065346305030049819331055794090226526578118777273686320176936180229543557366260391347876639321191891847204168769696838425372344605593106073496659473253435272544673958041283345744638675995195218270580082357140385037247542763134207308206334874924742936313001669148233174408904464471857372465445054331340772282573464094472260292211548740207695168963163180956451802497753074110005379509246169853366279730463821410304000510961704883336270611659631088898666540725149977799700289059429201687352985078430539285498296548914783149471610452448735488512530001237138853567251881667233166762012811159521021098276741911660893891016814387098467614615944631105188706281730279466735108294493388282663268333543083594598068263357638261615309595064285854775886723367652782598286327819453406171315641235257592756001079696551998810748443666984076886730622730835860615970776128986062198099804911463602318630266947801930572786564241160034530444491929612333428045686298398738815040609054805777491162329651886368964308583581857006527845802866876522464764474357817914317881861958305257403144409837955157357859031466032999431366449405399590133759335406895098721332956515796274327345661409424018718420851621553811339276511820946630468088094798817836364698027654155414141249294309241897421799430733354199649030881223992722877903402849392559564849978980291472625524514194973494427410841153643577258034624382638082914701043118374266151774360161755944039551976978260983361903240978810292348906970494361418584417519000325673524243885426581235843952027365246338361870447193974628995860594735868944484573309365439634769034954048943272980571412624630036166857606130958706230009859776693351886678751650502030374013928950839814929486413436905234631135167999763750086838343059033996355433618673525138031949516951576268515555205659700354362242976649761444234726532531767686904787275436592783862298910217999059852725710015006948795995708819604807201705041209023398890394977016030287942605193543696164228198495852252832467064059800476819978124081971903254688517498751271823449957776288853837728049611579201829064278066885257751731227006598256360716920172332912235706850981321882119896919725048535117770620316217053479736980019251849700266839471019832545854511132405797076877809633233361913941007229035582192771528026779335375793616709650538001295152273828531285725290537265834769408675247436320850291547798157956546262383394031629792998055365744767192015776390797821862341440141981191331068000538000009649857545282634901093067516351681210779894187186026508674539322827589414949720791558986757730927012821400900034458167229392544841952586043352664480962287625282898601051553650694428149813438249918779007446206813683943571889345661215699082182436156701255729743338455379742725364914118719732468960144064503868693858955616928520267371092515836473893550275931311648228103287738778447716135007051726173175383047432268876328338810715266711186977004258840602662335163959365418893543315986653146755503852712967355806150894531809095754665962934469325093602776374529555852379292657495657867815827211376648725931305316982092065820933501196012537959536206988263177883832742582730848575483334220814834942502566638078756237537730807210926555213978247699863839917334071902849705247323669796386176976436579704295809575015493110844260846041428543438404434315954776833406269782213231348729766907860643887964430234594350328272845388395800009765080965212392279561259940422076957603625338857045082113754209749126627170403074209430491530772136320864396743544181766705016320435170963531710024387653722294501449883305908132786202408654207714452596905755605720207674779412587702868454630973161308492264006237730639113419603066552245635121388058525384068770189195493858551793427214292034517700461730885298706033333263479577205375281141644155241947308441665672840804997381868650640262573388851629623411100345478338098675578355371642055237747269490109224710493401611137431634036391909202307328225089081931617265992437489254043102470630467968838717642222906361966208525556080832014818293098998758116504270218860448547753231800276446834246093225006066260759626848942241352962373420215049497695827298205570965773693013491528935360324496666881820824584252291049064043324872791692576288330032308124830689464703009293079345584000097300376299573644138039479569764649481909589533730669634547929587104270194601557038352796272656014166809656047418331827759047805857983008315817447371801001458853783821758796992244907253719109673808624904037686824267461037623238289762025462900238103806773015900468478447113474661195480792292294140024522389305349326437069484007524677751648345235608687703482690288685477734004385384479699798238254047914638138443587981075372478967277906080360475099473092827624487526399457882487298580837295146407383954273127461502535758778825532480185212797858016443995485535631193490474047021891502648929227677195888065081397183237512728946520077795139941299983373901046857093810518672072429309227619086762274973722399441388944081475805268845289067848295411311687707881806262576039222005028016022735943153407867986922612483621428261971309556348781238678232439936136740972405425184233767778423863726768702192368502906748065148058417767656756302663138490829832207222878431672608934462613755027825497534387043008926328137207085525220584170502379709860132598724373583088810535267169480130079512425833737424774999440531093741035302916935536872364000773222024712967363972063689899749717009554182065584559527064100526881574324777430258955172658702849229804776166855549221001935732738856054678588530302951621697719357556445377635535680096719927981405472728599708224169203165098504600849090675280225077555922124480531327995115094005050855909006289485054896207796562245916119466638384280239901309024879049160215108848997088725944453529827919716667314919912242840685810124960289690709486509954869959311469140372300667978177896307481966338170403513377005826922150549194870301638735213516206165042895545014147275935330855362958364899062327146051176804335570747677796291270836843732232021502902407257174236018407681713011285048193229478892871428187322356990271622033625029858254959226693525917795231294949931631955422786802465364959586686466370532851916981629449745624055103293281754201733080779259093200810972604195210976621307257735850413157947321143900691779666610741231655719387836950110881230334718820895386507340339098689695973899853720846151041902085068377277597408671997556648240038856447743605829509223155532458597112987462886109357540026543118735293388840078406488182657727910131641651224755730936369879278123233380923513974072214894737999382708101881984706120993574808337877511573371361785472013274978569314813373316212055981155107442298754289509617037409905241284996189954432297720302136714211366774958115231035626360259233229732087454771234291449703152560201409975996577662915660917339300798957344487732801255965348503515581748596979797621582328456054513864058457423949001689692791594372059041458947968978927251974032836757833334029226724663573699805818819205995387559064769428199332407977836569134689991443904078449236239015108584720716486973298804306483736943778973966853748352156124106351642459608735362792062114393745730314644837445197331350398745369980670462130510927353513000080373386921410862294182863407679056148889989650580177969733230027955926535824858711391823659356208337847410451856993153757327042301283457093039682037804999957461408468030660465903353128088782516508491530358660244291831986144709762491506927389246539332205616403333281352610074904728453054412934749868027142631667747984661450956897457941506648955744629555002475812890714461071845536595251057320296364484541070907041450277088502018227821085178577658964172815100703171890304876463682868436080647584292823343041392762498460902633293164623735386663724217420438403222700274649990809056745142117982384172479417037941142839236361862415905466897107829212534900916664469783261321627535553129959300762909844751277274737000374161457036095138203140400039800088169973137595172634803975598725459547865746475700831022858039923098914126394334317287395835817216277062297057143456391465975073613729567615230688799608341091332660248961578385837240128467588062874969460574798409566484320189441817896795453577985512840234410437360429088785583689557805164947339182569456712072908175262521357566822839428913778709666543571561998410072265214579592455803413426500175165392633079355966556002456101012938252527232079958608470019812097396302215382668886335415211840898596146280347346021795364075500746770707812907786234429363940819453063305208864421558475993399776503454659738446741854303048551618546886622638800449730980710816653713193805593364384952554458689658087160006527920535090228005749961671027278738513826234207765011915733948892416316390805267039280569296609290475263393303989107831856907394681427129068610076736979948608570089874626579243480399929368008559423986933943878323194490280144712659325715808200410957225847440682110795305379512793801706648333028159132958073609470544250524745402678469576386147805631606578226707913024803340809747096765005359958992262266474725613137824567383748932002788865462694111736903371240872994020426987226360237921028932437732499414909064059588377259839812615571400326623354650635707766597465025935145339567237469077830956861311282465061785089172998933051116212095484067403999969924393986242733861224383844698022760414009233463910167940629642760083729289697585558276581459704141443958061146308150220964584546973487808980720970787225655646698827905321377996648946176970802630258344691787863404093150478634985104160985299401046581943509970329556133326082885186866206465989682933026714498760670913280829857976146102827598025614214332693753330932740048018979607243823886131651629812154124905500617154338698145142735311835317215009030230646694012676464054331602720779590194907217791970232061934659241140778405609850222993676433081283514094514811937851788645212160114549339480050320001352703503862477369955611789551197887199413201825105501571973026975413188478840766123712867257733357743711729077643558105101921519313405238154243939476502702612748490276142607886282961941814189457659152715920288795088502600789089835773172364373266738484813490194937912546545211766442981447324333861361711929850540600624284012480620337187539768354243700299514303301820874070138173209456177068478210758585196254194204108104630355830030410892342379396960976782087063034782930620551655271122598160966775489409126443832905057569042454757794002616066830941704957898287509734393952879519749761199224240873377925481042178638046708423193900775739653433673768664937675239903365688929830953943281499194877107376118535569129945666716802892030318900875186180831804305153804170449063305734262792417645846604927165705524295149212764883039448784857794660532111771354970790542299531600559503233712144118875868733147392748596033656175919615447246372162724968936763186827872223979914665439448259442083561021595776799610320860297642695377783347112070209562954755893346954925367439468352727243608647589130294891506350472277317574826123320731218153443316658945199038493320541271816767871243148346784523066744905693117910754759105565157402843201235212421386340370875875586160871953909911191300036132666501115166315153529111186620154377850742238983821113510992081148606228028011086416279083964535291207696961146295839747599391806834585008945800722618508227244110494960631101448125057560880415872892820503006125912105401377102856674281367525759170817690495234278528375067141227819256998988010760965317304201645695877604882499489147645835078839103426771855325196295092756700850911476067928406524086152652913348026608514574644554849653623276512266007488947307564759988860463880448422273933575010492478935101349569429827662905162431356790450886021177720487340725934598936857533347815324354308505809990814887788625628701294015832504253061264567821255404274276461354649998387848386072025984900699718387141443874695537597731513889329910278345192193679281762647767457606134451349297598224037146224594847848639499839006156826145746267611844474178539117969222188347359804639971991298609439607386990343417882414855170747489200917022425371023925783865852720417230461432455890381063633138715185944612651783712344976547069707739076217001646924502247194221012047406133157964348067960028904084151983269163246812948564166751442566800658720046241708791208508429258847420488541699211226158206362001385310846217788784129381628903913171943417938118553120185610212934078043478669444788598050485498523602500563229904580514076197044555760648936276613694870921456592787342020842856448839783500467571968808499949549195091788739576829436042894209134756795396445494142637432198963384568812102577833466711121936372555574933774754952886790873726623066248712778514996154821463871505673603465612497529980605243389973240852292640187127327928946313704267949040193041057785973860848830742576401834368899307609253661691695257419264995547181465839811460473261215297819937841020437906064226363780509938876189196116738796254969972466007799244201993473567703792326386372068755360833451795339583603845174647594305855362983869801041219036380139866979632254099426024632505867387148638962313815868431599842217492164050008166367011727678026595773668466603991229849080523855429447847052019597475480419463909810497661029083601396787288156224231678217211253925627411591917491126198421909499522911653369332581946632594397091732234062190846295834641436547310226740929125533295843431054688962199314011749298904169114294341932049259387214775266143012119878925198410413393230455191410100825010724791548784195056522245028155293357315705746566710105822719564238948561740002072053107323443389294562344742611929050889227943475763020540339032123183720618702930972093548313930273066587338239805377199845276520153549465268950103086109892364097907002214223208635864662561683757183873584112552270690601464521403570117115067084008739450339727893567546094806787373288914843854934540304898459754811529187317698894054620170169084974488577122208007938811958446700054508221775556509878893467175030369214347780440892595151750689850193055083052516672350743396040923923291687061252174246020145469160619146905620504454100285224646153769061168347452663965580501557923892520963982902892015102321802726469891438869746314972487306815084008655217995368468642211217809866462876430093319571453042091667004271831927671250246049096514441600377277654329147331051492507688913779355313393223188352368735753861978561875263099622421029908363133948269094899115160330852256625157338814145627465222578376798214928106409521273375587737598390996589062517347138270501676561858344143950617045463424715292147917619080559930852767704783504607528608030329685350997335110531913395676115676295767789766955146169804328741137458664470108376732363119449612444946050340013588030337574591194069375446119418881965178114610467917939200221807124958286305273802178990285747963594629922900863886909255909264732979713192083132966328959800460862029148690074882909643979698812515648056470432585483110113076345258567242857681661219524935663453385888686832068541050672585055471864476155363819789887055027700947381099723399294363218210522050988665520201400436988612378661380482674751470416240602671350300485288604285779678277412348483365780918151081674477414543175147021535660628752271150248489131397808835369059842757611361287386590600962926277566456767334170432923577074234379289937360752536200330932950591600673991830040681060561673602747855862838254924697158966289783384211726366790870995728086888161863905214650213131481337181902568331514217946488982656610334957062114727098031019007878796985842963746050535790086515318600396330622466984370111812231205709600998628027752865912020807915036863450545813513149905743932379477261900519120941542140348112817297407292101868693811452796109414010280569528356103107096822844414378919143454482830581275491244383117328483913835328667699587441333815982150145362065284895285834618069209719475365115244305514631175756937968592548626562088364796855221695360924338182974981775966226156622221233778128177950347461579718547541320932491184781977115892265694933470490168648431151021857654720917388059152831007172424055516725428303214996843938308044063933151272707705687591696299962957862478059882259430106322139373803482974876991748420352461443785903668125353025956955940069769068449095321721344033844285316114397860816117270575615283398086036808448547002833852081334786277833178476948201735407155886392187806458491217919115270603364123381075566720851351691596214612150721023525106899416282808952115260552629228484603720513017508843795276761274990367151033476590163800695714452183559437696623314614909354335085521861988220875698014463366964716808903651635421039941409057570012015220872536123989160064597946619739602801461764499682822560123957774685436240319671352489819028613813533513741213611549940804400583144105091400700582382827745311657248660758189555379292221201659984633813617790664840311350761702701925720925790778493947901641342645981845156367958312927165504635437222030411768715560738363510764257141945230257455823953854813030562152871055686095756921030972651692769668201137675529072528334504365174402931419729839830606158269511002778574240913390836023019482907489642060771393479007583719579668664384243540179918814536400429494012505846003428676446773425085198405666651651856034348271483309147108302000123804412887121339617650873183784274743072730570236861063819944324347734657420040425391742134530017882974107831602850240781879732909342348029955618279080165401715843710383008528730140240820078086233282036138085611630834063944674272748931025036959305193686857822584154117334693418468392565589469124500754282947498985597358673115525525121704150007518229716824625461471090142421617291366877191565582053379022773392755660670156487184101453195617863269754922381804330815549766386588597153106899219751541155326100051032727624030601502531911624088854698895603681058051449179603147044157454207814258717085695889706869712134353718126360952589251832633483817412789288619704978552817504456939791742333242075861926977603752517591940651570743083482262704999245234094368584263357394794476852124341767984116078951513329532637238338778130112611883139112101264925858652130469547114733491072518989956531139088729933235549794776106189472510155108363490520900729756867107788673671371886626494280123326544632831144041551815748060678916865234849151857913069687601446184196434029404049110190032840415530629199031563336353753059259298625425747862490291593946206497072817671492807517665443866299764796693370267086377157197486010369854058811259837832475658441106210102410921715593401817319105081394888420689985850609404206344625370078452992117566073413260477090604553612306899437351754334720837422574839434461679371846994489186006870993235201988692897918484224670431560971388687240195998628163084361318136334314097068647200391534184960989554787852389590693925667129939923967217594788650462250985056300435274756202565685430140160297522812592887768417450275439406080264194776371085947655758141771886985350657424896375661153910791737960702527696279788171770377664458881117898671869573305048799783512580671183875928215252017380084452731088078969936011895070266669575823364000248840020224750376749309324863565671876735122485367027365165280327393648859975632073621253296277486209631598998291431862617237714881915115698964425822891283685934223879169406330943709818612795983078735558545730104335927046627523968202595395104017800639404867554397355030011148228846584892542028005290477808262309387688026324240040441546303638266932595846926049929816915168981343121283073689320422193571902071036863127461064415137871439694999432663075333901572648186675967230217277122433291292276929034225950743041916291996519331632849771665008688228136030268852850415107575722428608965253008885482317783634137176122999265921254740548367943117333277767979018527881555710166843836687186176999561514849756119615134378020705502876824229786208381094504776647844933082039320282663449382153336739073416284131324843036722667719317798249299639580936228015273118023155647323227013229416196666114906852813260461395383822700132982845913376017743800370307119323597064696638094906186636943216376511480876515092692904102293198770955846561695552473372624327041384195493555802340184515964298211025190469539411613010223693987550949042151342146885265878354462729862918793422324529068608967274047036658200006615761609398913584186069932250502989244914900698196841125803699400694950023891997173556953770160689754782539527466533746363459413042288920019262061499369729672352714001444673932434089038741516625149619449033539193719867484929979915563724214257472767370102121929204311880637392176132924418782725392240163636307948729966077395827396097722465255861802939505516597787931819129203116455275167606707331929866407487061046664808737915868480515410853681566743118742041812907821897749763311585139618779360608940948519554552349278353613245513107500362224633428601914063946958350251161631534362640962158883120322611273473096792676464605930572239045891223987102231535694357781690710882585265712490725375991808633898847713068345151363777882128316089383789885692252529796359373989149362892015179049723470810115732312865722374020691404392912954734960663660465241440019543317110567072019449168758934330134626283866913043102749582848054483466834576325058592863013756688431767958850698560100749300375643378909310589366762710786822821707561818095729195682595876388861885894910863150999575270305494224545058181364087527952265097592849606673649616965196552793023745050192478902728210391330031091782053685038567777054072934233143964485671747015289290340935354048495836391652056203342402183463343328552197312525742713359370690094186094756594337684766420056220539806948958075235913826052334026819402358784546781797084731681301040630967162279034121909906229548191326364313465051331876334500492725824350028369464472064868735035755781122883248437551112471530865120883434539007412926238840712189170466199583972001007460322611209671010215859534850292791351604168611949572428525508055737560665205562584960942245778987133978376115579518094533452721692132222685891376691313787384591745120582659780449841885434898843217049749580296139568866121999014332797560240027295342271785003057671690043763855114574067893123947358651760283427951668451300164430932246027533304801038838823106052323229446728545212951417246146766005475943775084518570863381778550947670703951876123514901071841265882386013020021103465341304156796790558293601287048327671779663122646382397564042439059937454947166106488929136431356075664293924726081612260915603368128134662643662187254797015881567156536691849892830573941696142290854771763234880820287668246013615352877535684374580432189102237876360897415220620754335774238854369098922936927302905175844927197376355780846635659899657840536387843187153309156005405578733764786800007973947106980478071635553392332095263096499343226295544052570261225665813646869160725983006080690666184916175031104749926544505819415342671642973865259115677601002622476756113596761999252500720460057256393961668639045084990546890764181700320494093152261250044207489373303111886754757277476773660003505369298285628000593468152759436144136899709521701361513850110136262340952048966664234682341965079222698402345565558088824020210014346458855500592914661227896804548325856285344788648786840694966187707175275752667878415639751436340482602261832783944517726792651930359726494630806553741159439069024358789732540256463088564918295665093869105189884988121130937074718751026418198705489878010606957897567157515108728099302320019444338009984169341456523750944317949466133365553668903585208059221399192910217070717693271861566657706123941881357477155150240236889669560000371767317977887728290813568958216750286759963365912422102803046314622505355133493967637716077671749157477913095597253398059053989440647949315390165482046747522656641903075196031238741507145393140910219454420628941778088694595412292150382498281514671785184614423171492487450054585992924677671467680848098390921686511239610540690602941634313896818972400803409287498444563330047939713412093216987976262188014446917530245639119168885080264056214544268229698672931280930383170654650216189263584017942128026565387799187412304119595986225463077904923827411552089176938931916616335253669519593692819088892279233747207038888685182987239512746848177998280706016224405313685917538871642813421123076231879366310049726030062373130775217822034942523009125257880447021162360486711232828986173769652966440809496335784267635318929058990651905911394166145597255289139438160044963765342457051894923756030226206947669156045028585471495667436882089749534413908187906583425924508367527092634379156109446648710084409314187172978675108696758427373143343756345479083669988130058729320142122733002833108290460889933524911002745140876165076883827963480443727214709120895476188530738114186639468384544699767399884943813640928808417892335148633386208327637965156916570572636493666430615502441095507380505665926085127201690403730270044095946393215228907475290862375892820613035277447024439779035127078254406325015349247583347492194869545694292685080408289218865579327753940035262248178624880462043220283244561219452926435217683770103989648804961976830037804575379491106920116643767670690277378299886313699330832513060298250542667037944300012210530563795898363050605725778043716451757196413148250073354375902393117201650610691377764338537614728241820793770621280862910826659764694075378710741737160615242367088756715249687846969280935795463955518394928565551157494919403504285623346551670450095608692998291292417957680055036318164824516802871067237437322068237284207283099977962584318482516020245889258095760626132949321070376596985550567865202412212603845527386812020321792064097758633434820949596207563676995679051381519031739734413341233309559278630454829110075032105509390720059603335008482177111689231138884800320212524321112843623445052027879859219904415508195375852634485292733249807463610598862695841431492200128752525703819968494974860502078712858508368987690388078128908582051882422601008978550443782859239833262217760369457180376702130188431785353590109924747238256388109455013705260256387318886088546127835594259860064079870276071032543450884820529723964083224824075110574430167214508630744976898394374651206534259638278863845884869280871339698784248459971775036512186613449203724153020225840176641131328807159678811398534094150537217881360179388259160542471479450426294742086414056395153439252567451114192147543079903824047858527926836866843065989128000491475214215389908523613695763616901894691406713823867733605848983451751660671519774927572966428053835459665404935756017198771214473010407134877296407411042670810927419970773640343102587321632491195129402286968387911759994173032211078653580419645014551680023990594768167194521424984526976557533491171118149674190536296049398574628861113732354095777960665279932516351172937016756277847777856774033331318085454746605611762972172361189692718366862148632280027517033208073737836798102799623609511099203822172141740021996522925984316388557999021704815773020003601453134865299151684748571433903931705169076689879430550358640199853931201729557908527204948612110750031409587583297032223419321253614718158396241500714913474964686061723352551519349484182641239341678999540677739962520613788855714840493037287396157156195324992366668167776792776134128021683455937343349663399872770876126929382978145813946922317182588486239377497831482728697508018778916882448628689993448905084213291711317983880459953856060120410714845340646628268880823980006021450139245216514629413050325120182012654159518855428048615418079363875670674704909451443713172505357622430671518919087591018913864410772031505951569052171756979079958094761424653279429694669873500399399744284518546455944597906637167806337659138356898782414033455220386761369147015452303533338248309805940526489107472822228225090119228250007459690933105210699782484693570927329690116114786598697720545286438422410576422609651270754805235926248124167798353668625896039804769390903006879498632757900186638820604296480558087003350925739979987264545616252405938995039746874485564359989011184222983553752477317058614625509197433025227914673837624477345930308803408675253312037333030942420747685163131154770256486911212288594955228907049508783884177218686153122534588377276366378734456644517078967661501102861747349309469193845969906492392753004821618618774213571830465283604129798643760157535344170602001735864835330078077555980574971167196645952096763167440281173721695828569728067107490572356220210467760506772089346287295194999780424665509612373568610994723118789148764758056420909032282968009027990322363240554710179235256610084185438679866634139873052634576213811956809531710109168484368293257330879629834866602080284965119989313155398875150282092437334119373454214826497553023976662788204472527320261355484113390188913081446331620912555199718088162600013282717993384057617470564680810444455716902059604769848767118540146641859499033748181767094128325939598921188086983950116685882871310495093777552951929083240224664266002955502065372650613694485758216617901535496311614317924305350370408559138700692430690029317766429487493040098106582625880714872233939583619113116552148046949147789717098785805571065024710062981317265750126872537665070544078418280509255032354554198984731570212685410487987276662207850835441774129550263681651690388986582192055527755200344783099157990821899943237016492277290588906068403672621819110793312082998566097693249124820538481292634098459964369682510649792203342896584170067173833705704819954526454929204858197817635430591657825195026256687015161839221468725940807487951961036585109820926068956956954211306217931722393424113120275496988051529073327312526399130163970530395702611614342746503351463169986603971631403980517952823744210537728752331472452901289603277427307314904329074389546385317168158390855257021393385456941410177647251281553784377725468921305680337299499076209432869685805872734777228191130639031395485842580191935395747829958928510570933520239580939946717462419674368581093312261337402188439105439411831861315033263337922082983556396218789114301550903475465697535849604029675953438356307187195037603865588619521558101167302903471742763617711444523776514172262323908730445231537759228143074550550352014692137735156932784237153442259117287251847928026469922654562045134227859423533078204404383494647016690581220844048559743012198237199280208945422434559042161839088990711825601961716749404533466700716901662225843111380770340019515244032329814134672464610950818720256702297230815823548429138245211047754869241337597513400319934829535711110781521832190189267422028771758821670171815135674499367209363214144866588911314923903635546466045756187669530023645835386188107105594400909825538631781448947764682772736399780223398888242936354727818433143591754943299002460789178346301612081016157827653852864909994709980940839396835711951851960031968820882814593616363107843527186453418196752607345903804819165940346761478212972064011296277196128920569532368795594658606394931899430654114932990130046300025907630079408909191630980169823508600418455483888329168937235360556634850237343700904206920791158442669539316331838758651307941531690412283569021594732361973797479066343699400415524489439930468706324529161181502856026131701647634794780582551988171334322238862691494086281328549868867874308347730556907427972432731743319500852976310463918318061759285022563554874207227386581670171851475364932374771835333795291166536725990576272302363626972712579507304976619275479679165450104175964951793076606548200974148901232019623051701445940685199031815300718174739603703868110894390770923179372257542240918536410924817787372858793954012245978068156296340882388241541887501496424248854062185763201218602856696058469134497412400713386542389949607120337727028934659394107566802463846024569885080385811092804272675123851271799750501672297772251104943345779252724960280007576864757608728881946735080551921924834070107095599995973305333341416437819089403085942167718333082377564541966034904012319902408788503029071610008256965814241590301558746730063229384948447590219688513613860989799963502969140164404088547350023642071589937168232067911944529426424933659726501078032653596195182660660797342133154816922036397898056597656157240030197746920731038591909069301342040178052432060486807626080259306630245575138872036481470514461557435392765293479258288121343244357161756649604947766372184477124456188214811091141477141827286625751437658540489608603322097351160517617441742113301177076224248185983785566991424781155790898610386535217234396526701972383587856453382857433441822795280707212019918816421140002777369978935189978437378293961325605579395403146226075423083928955106072334346123088462194985364182449445787694885164101115943253430017154630951802786533358129863536759057886304268994263143262441485181951143117388402956574816128544531919253083178153803104606869125358046233178800856247867684725973098060130462998070030555593724799405071507528487127154340515934213514243074944942042118093551546695632347904618761830088110984304673372473696590108507483412907155397918056320701434530087843785493873151216437861461773721980536035455168652856825644414012769208005444987773925150175711585601508965788500447552463785448690438618588496727752094696085304720041261834480415720948468996657160177893850196214266315615114818671246945643609627019140401464660191038838900628725514401453688154374822076603379022015555771483821845678959676188953386163498518365824361389982099386514093730113503801494739722465529171402542280056890312416811068868656625067018050648483068721885074144313408668670804417650006003105590620856171186325936169277137102600011737176284364961941020105254773899740113207437293108988861900615002911204688395233892659394600788712036203366775183075680903056305939559115630847152148451897316316913466550255615482268599046754258618923412340316445233899269015755937137084955596962364778271621171370198142504668663780660963663753331877440373518192722522791867158546292245719972721258185849151694742091455664514902226464631749536343975533220810857242875613027135182910198392515728450184594155785710233838076287014658385428546964127670611690712703142783782091556537264227176610649739786738014253995034595066708454526590241571697428562302165010795269174951496630429048164393424134734661836073734148460534603215707221498992069158664374045264156523143573697286448551640657257624197114666856218259887502846435839358943127710580190681004257554870365182928791293345919599434111383834680639397411460124044466222977074493687931206893195395146976502875345940952418651790202984064950516424657515811970117365564859377474519833022124210441085250465816080867595283681044877903417542682131758378334716528134391135635519490265084089113756389642453346927194681572732329057371744194604880314480405487059778400604808886407768660078799168757299929272625770156012902874683077034930053314418957821564395471658381776878131189457271431477046959493408493579437982362606492277956946796222817151681033312638548913075525131378582177316358805292509393189791001326001782426769939213681871959676476290371185373683038041769468214712964238762522049704764264175918108811578347697984736856483194219815959586089231145277958801601850046387890546611983758379991412767976010622592656062301057388315097609143300427668401416619623624749270872520133248775845517897051943182268162316153941796846832954652988876095804830612485266193694656562837842988330300645230794380323504261513344873213650721819954358525231696268175974144383113048290980831926724673602953318507965238083856700486127953763110429875382907469816644295652240106900456537284651151964958906626788126940622834883494403308333070990417854654074162351131835326965197361406175601907825659374851199195735503599815395442940306258303590223140096887335650103195767805262406968711368755011902485049571912519544948113041721244177648507835760116062787742961138437006053583306568487060243785343493120145761008640709749034718052277694113721083051110426920085536450183735141592288129083190844566768881485784337436923687703091093070464468000702024292731861079914127948511141145253329043991451120065904043714654525642386481522739787942282567189502386706921907486068398741908652018745000207037073033830972910941527642242744174622975297012024942067657376662286316322329384650980906078254433054568407581141906483712221830381295513090545679733781996516645117212233423730708248795633639007412995229836515114313879374156674690205358859911487025842542041524251120265744035643421195354398081682239891472072666674240381382825058579690019578211350759618962813222929666753827015388444927501925272219651193868352296614813304093516615771125379649391311816049864032256372748490345126264663025163190709533905505001354764651652657126330807731682563816606016764718012922304085712457308148633765897106765216809993216442316892223004231444682036933832219352961697734119416702865396167222409676358183696719617040238365128656373319263158086702490388787753170151447524764473592578714907157539331257405088836172776110768486600078512861254087058022140254116919204854454024204354078304396859604155908926983347064021423031753241400001618488317052670650393772906004120877736275599565791120229335868859904731584987777895787371205376974869519845339116597461836522430193118655984607918899091095002901236090381018429092697306500522589577118472374454743560564770978384839869531410249451224537072756016948493710050930232838307725422498947610316328484731337457503248411669701877325701058448348633480437991716673411840883090892995516177146682207711076280011214326580674220131458122128584617062517520110929190882398932039177608960976771880639310370995189081644363218385364779676015591758640177527526577970303608741135188648872596653430907329223698275055899034260848545581693428914145478950451437095817763314832108461165164116653685674506313780473951419292326232782013804169534069934217660989272585293366611364772494685266309035838050842040422080488566252043350865301516098316516638286209263432852385666217494892142811706090451530444559518402200626481391788336301718626490804928492364711260813177372025645525965367811582169767217153621417107163081354718372887330510644648635262812094927902193787475247117162656024781903359919521140251251522025765393278340664509221834283960573968657603586749175355707212834423147120381163046445806847617479993115228162673033710667017066486618500866063841889153363891162769444213925136532241654870889681550768083089417115745915058603726474365892857323830159731911738754629572508640929168893238717571313844595653084926395563029171838383710609790512283516115009851282427250934369992278292280820132763092012115583439764828559665898448851263165157086123679871055099493060192830044487065137779499456570112898342992778763168298417995011083755366219926896506843944316778080765310669242084443553337543235265831178498472265015973385197941270863714254456213004546504401409028121623384564691391484485602679575870512670147093825579350984622645346596636104001356837924855222437375890171227807839236472565531434826930221572941664677743762213170557663261141616294476393005542361437149912264695788558484038356897540475327282465768071860296626361696392709197847329271057809228473854595526324102321111995885392290017693723063657674500721973034248596483767920251211173031993260624687659065867024592095599825050527174102561476588255605023237972229207210567027911653795824415824694650923256896508374340150105246657713449073949785091959952115494204641292307887642068599288227466966209548096781052551945397983838304133769935492151668919331665775883273747784025216084742267465251448586687870443744637273994557159376345190054112074602085075435595951410435888819104710609156191325323438648800599189250494220266310366089500048335733248130955227909967356722548734089174448473376783004252712745860190050954600123066184639967952039062272851112487228924011854244253212835077224393776142119557106880534584545473744828163424903664839275033678848429582922959972916953356453037791374267270579232019602447116022478520408226807696472404524246130305264441410281354568910206318944851782655224066542955919994131712587808154554159272536865860613133547104824884294071471458046583641380596660131313410296324814088585330402991314227990064740480860942917130222583756477549059543702028294858160948247240360877995072085118382797451953297349065726661415057862104917815926391115061503530279857239553933719863887440594589072088411265640029021846337840008855232464307892082048676295382531051732092220349788438737786064041265830740762438603061508885314800158398646743075025555325490177250160672392899347752945147001591030551137343611453979619696129581041043776700767528290094151168878852597110988220875314648749522382167315954616427218219558713732357102512231138588006542010769614155278145956792376767279156351490830935742132313786056464864164514133464146562506145969398470031395095928637027826322080874874452647018437304518364833539133095085394763070036322116555896132770795913177056939941512145572113385832078103650459932495531442693215085841473932812607558826315801316194034233887327771878295038872366472154929718950021471331760449653859791512861904979026095160976231361560322854895824021459861958026385377444594142388005885954824404320038506713794007521966368279766498266329665101867772910304480347921995230918736009661772414385475041206972530090775254041149914752012543521228018169831706997413154581425115624275387374303662150840823564478778474195360100814339342343699283142630552799574288319712476748501667461509700039338383076639929938605465574341368462078879392168918175831534736815731939697407479249646847319536937813913756831739561073970073871106406775588887578565763673145812253358652244158465725351263938831354393766671006545905533604372507952189019686176684846440476847692531138511510506194527170079131137509619669434268932404075212778317009737379176892234870149180048939912398958316427566154207343975576387615519441590871650642273037813663158112067292691789337806196656705091785962392112765795367254423263503770530599491460529866959054010341910337823080430587489547863671942365946025902787937683351158029073877414848089478704857225517609406380530511308149483758242211136980274352034341135169609064436435433936324496142624127581549070388269862057671079664845053694125323995504788470358320444553667263224155396545873132894745556150600071315230222257418451979682100115331187585252753245954614893004024389231790191660452245491896325115941553615023649657583237772900908713011576591416189248061614286942982241671230272182458112201648494381718422611288052165328722815520233236619042591140367854430855196393889543500792288678920164857122473574646202595485512073330813835559852268135169518217274631076416505829352290061202736860525650461156348733540531529408356999717462238075850696556066838501559681799632426760723395782462419812829926983331891645856021114718188161803680052650619620675200580623719560759604224285705800341242069290401698851125269837398281311595626015892439716860820655823882862877945274495765866951362897256291609923260780558098942678854648602175749319242951854414930557645578022294319849276381062011814408564795987169417079547952026616542671390270171551473468086182129754140340591177012187198217471435440205413257058469092611929076747639687204991853018493678659931660108021258372344862687218166969326658547503434047222679659243475609418848612782077371639406439545259948100143809433138450575621990428599688485777854854664616783564002638977580393826741021409030244715430434014357558615915671330980528118712452503790751389877812185585683844453101928524615864152936002364674072479696825041616307272360172164812157019670334777443596810119854049740921133373567254413736014434511612135283836136390320649061102812221938791617049048359202496814921750626756860820266477511392276254872286782882946180284931535665884831482470073261645000541850073912692644652007571369650243420072342248957023146613377536867409150545374663850643918699733309777519655596748548877642224583904644894636438900422761681371671303593112668885110781506346024450504074455868704593411386745397518092035674708796971897810285791942112894808756446709888608529795499958506520793826907950353907979356703620869001033613551226497691387851770342949715312655244664723395686358124535290864234122953495357733334138190970615893154453514123916947473894287992640581020850604048414196874488537173673247906609410177786923396295776347878516673597211486514905189501848631887491432618302874885911054146262924406897556948301211989240630822301581208936009984219882598284131988851806637588282144437191517015874951748601367891988535366426928375017871910947955957842399489938510270256310961042161147324956321976855112894375484495626314695654121303297478881080612809907651025283772088665667605951721075512913724534081313795913555645472707229684784533086315185908773682095532815635853598634112329515220721163708126217043935431997778457064088769757467927161241858818752028234121961835284177136613424507334500502952126534102984980824012980819219086065284457976196849231128685648595290129686450747346266343504728214994166247326478429937581763853589905697441578744120432737115352739968571775361938275432233847428060301573975951548928804230068137704427884131751144462298337208596787402346564817650335852930275120400207189380773196755529808102603335785661194030081016420606981971544115966311076410587851849604563767532823758522450385478198837738674037701475284061913215770778690553652181897872886013298125375171286783072775842528094690424868977137477719303855831947745848279778158932212921351009235936460357296706810947814787970015741067925637406693110144836235553635609868209411552329134737966292961223754213219683043805039789670155169219072138543077422087616659150356844799526917253905896746474136682960082667711525286745208750938243432779567713491515061686880542477829116335679974410893272928289078808299797397167300500365773399996823545833276224653158241262104015050589668893137932969529294987427776972591704780017529066068624983656082337995662811543281235098901691105642072175232317548885757311832836894758465063598613727037210369426560901957942600383591008965634707752078857378277679181912404685096103704840361421332825103107245330118100671681754341390228009057421179764121125209828618809707690398924919429801627576757161704048400927130409146067276813759325981605728131186892972217689331028726697802707734711377068118289515174564699065534750642505636866753498444481405470625769766162543333839929054254074420109975609886129326672636322782471933907671860892949828736131669004511469114456197599410998576936077753333552042475163487964079159155116908594022209532265621126363887565227144323340767979380559395862113549236613954391133213101262200961081209620125220848338211693900443508395870673007433054790418909758273076375070903665219327258861546005528389422860422761899175117091698686109360659073359867335372184208631915658523036243216559459721509946468787117192607447794589706646273490585379684089027406720292238497399110500069327703714293939608100057288405104417339312347420026228189245564594092276128744722772416070097207906272164237267300408557127891631142457670456250222383500620885725468119947108776101936841028888443775970024160650496508312044541471601280334163288802963916519008208682385999235649026779192960691564654350649220052152687221577552396868084296293896523342110020144909146685404550572360974791410035642938795956752239530796987970784927170838361113025106065689643688918538113912327363439652156075918056861312791429469637565267144786356781290408886491707474732398207447544470217242298204136914945938796197506694873359183410233068763316187006667669040010570807806189128468588356998678817237160066901268416132619827926370895254294383250879659333795359273067498480485870201278990592734222776493780497183730713890432613916775670883243177382200782250857086341719990832286379436485875413851705702142329519200413631275929018972956096829553361514481856223225956784434972236747160597565740866244660802785442566754316560350592902939712678263465452588703960209196584064149340654165466089584227870788128774375231360284420160739989858036315220501820263190350235969462111036526427492118899548691655406255098710357523524524457594078573252618631218537784372482677436916107344664402936454169466109664998873172446578449783556233506395117641931256092933473219760318870552860842101752272919708754986596469811088932542237886991620814460941339068278507400957341026260458522180715461714508199135493175560681792568477153127289519382173671387823766633478721652464094166326290059437243159327672025084917941846362048817173061615615884737756573698390871521784789821484025764407959780905959809926870938215944426781409244176046503481566417643759803773823167435741396019742365603847907919692632692230865036952942778931853508587054421341418223031222463904083677858061692455045504330541930876222827250499679567501999625736054912331553852233398125676358489683631931899619490767804980874063065322103711163507788503568709805327489151157303777883413311909829961380521349339089289159503978560459948750746041932024410290992437564340056525410627719123442008334496030565712710371954613555797198623359274384330923775482817089178903464241692436339924051327895401954635410336432639161915774109727900584275609234664252960231177814514608457129522136011176331687769439028320857495531397775505093003999205687234948358999892979296919531228254398039921391830807570935308103263750676771000007318550141574259402839212038222894143296837518348777519022164576652744482048896023059432513885124193989448750261030735742157323174563284364777909856439621483201077872969237374277530442501599039163535233671986630762685844699531244889935848631834960587605928031592549598755902707238455938983307985012457763595360516233743450693688655620614954903904738872564265880949786238947348472885618926488274153945172753917369516368644212088810503654605049774316721469670593823529247622004922479908791779556449065156177487402597613794894304086075770955818819555006829532271306489183972962506486695403172147543477557381132296943234024328392609305622118372795576082582541692887934214528147523891309268017000399240677722698868820989284244984170550682858262423251648319881616488167246085391145728877776680046654394630612613818811250512399076040590361196345040612632013811729731884080544507637599182330491788678503791522086591803352855558867996441989655147110569567959820595463553992407622604947628237758701387149057267279478756003113063907153672050321492310100353553132257497188135135158638665887359069930224353038644451784409904852986806078374100981628530137180479969125027650080719067173231800919406170966263082040636406501021229216394037769772333445783595386229109200148296355748015516905884260123724482761028722372254485757080315822485993989974618226450844610708687277048857900547173390224321683737164543770788864581483561569622005054116758925187022034517568838053608075744751893708543075514020038637265576662016585450115215833782754835619887447908988434140452751368742504454306818321512598041156821858696884690557306530919975014173913063729276644711903980137233035682478389789045748665506480673465318884028497018867007633894370442427755072820508259633230098654842095269418817083039445074871532785452732815411854957131661041025925074750946547982437570535937054093002940307136583911460302880192699960409070424946975538003916322385646567331324977458812394813454810618797242915151298244911510208334055061808468572894073940418437447165050090358506849439121702496280277903988559800543294362539095515259767950290361298985136298463952840257534640236271858753368734908043581382968359769628211042623510690363727155868248777465082560245363475322459834845831092114899447225400513612639792388861104433573356000372155973855827367376782377156725828453175287484125343388589659794706331040795888403351671922770397657506517160383977759838944119245782949229144698309394987809861728811207390125959988358694706928165275675158688847754904022531442587776186150971732026318851737563200034876317298367165196563692909979099032153861555081339715823892524761682271316972664825446509594212023089176122937490688549270163407738664437582327221297885881213536042954233461672123206437570970255335922333226490526840193657791650922679139177512580916675532856517156685474677161275678936104419813672592720947704639218117962401125182027733557506384268042246771031471380726829773429532316984312727160385984832050315309735821241174706876551087446988511048036142621951437381915424616504394369335621384448652700492142987296308790143617772413783276825698459447655986777520769554459856423877954332017635116725744119593405470853768568291946566140745966981884933390401363869630484918440964343822267256192127121628682370698277566640938548498795752545031113407527572998808349771487855610301025041238129086441813406472450190639875715841757528482698085208382606129672252393463610595474577241195141973514417191783690788499939916878261517797295989539202522809190044175161462977956951321226917457168424434404265372150900284698197258833459967843283164104793581162329341777668583030343659515421934411684083517059837824139575499461542870238285266091818476444071460286418867448473281785344941768360799330124038789827787827611266127467687384215348647835944636328442842008229164714829176191830648627406451708447563970373771669802605898182686014765872275270466290330109973314200607587109513384628311971027016553766676679069733465334837487790786822742603243448116215949170179406924728477185095174174334519659882224206382474646464543563815155924561422576812822048629761188583777120123550429930979712799190439755799007993589818392374351826374327024788740879466632296160908859843649272653439135218495559624282264956723630909748449840409035772343112112565841488334345829172723991501766416333269337840759394943988695981708980833361321487646037969718560011988352676980323821933062878103634230252991117329842823044398820342464831441414397284046099772820680031539004549530405392191301632649177794079692665940764988765768898797528558937356811178243532497474664949361286373981414563701856011091106343725160042443208228320455196678632578873930714546469150743458516518589026971275656690738749818876054049149811940323782440383398611832084100371312759747321055028787713343536282431351192693188661970739895609802789401617572219900003162015855603131028209483648145442524769390426346449014886798995023761679205249625808671101785254657247540121008603548261084886360182319375276253672385722051523150207121858436621582053095654495296370604352767997606175315968547013470393049633550706622009470449632918127070643128806169570656735823800810632787571945510836410262054676609276334789262541441809817347486200969602937731998863034957291117484787155829074777242454239473493016332018534947222337808383191406420523143055313615477851184116394248483973457162276868421651288521014265720153806850814620433990093256925522244326783607679256409948979463542596683964895806501373045921771115657052896091171423968057377851033529979201251557337253987082892072385497591398240263186246948454977062616770553348215252387109304791130961402744110365811313169029975734430024084086871098396444411129671355658548552784744808913254195157712552496963783665321641991497843856626779213486202401137418495241775241689874203873942231329900891432506623732225813349463745677479125928186049241148667807062319076708958220816751001301986983387128808487678948699036942826907618081406771490266614954940962880908504457108213154775572734335012420944157362166960058091881369612910947413617226805386262776822162836693312291945352680981731543075413653117628073740390628510102767415703056116911160128225207222030586563813152248381693316936500866671893203419856683743182858803168004044256615544565632359910904375375969760275235450825682941389513984625130784191200716755118916529885249498467565381001819245436724351761243094089448451349845629147014058908536406081409858308374824447931944154303772007210915806450300741878929085774122644583160756220349100047360565710880896942884679371105782842547539274240052110433262334215498577990551684520901486061534009132529992355580808457143625906090778600077803694375284846323955314518201858937508260392031892355631668420702825597810756741331571279289654725440773653221468940427200105878269407626926249437617077842584896603173474524737625436870069140317980545396440463926608645006487951184712259222945955449521916562994190527753599282492199257793849213617557072454742085814846493781287596941821000228389137081747734212416407318629634253803187651558913585197900686911941271867469580635384171392141256994715424404654593136446442603131745757269651522972453688447172339989900889298943688571305566480903651080685275051417108281989216254561142852465434260513148800250179651870875642666666792792602772047451687501264848610154357401313493921301017792538694923943016345260208050398705692849480267950276531218947661089654491860874484469232240361706376398516349395737380700361237781365633109865800967111107325115605838908895893710813242140522133390712405999765321186384781864293549952471554821855908405037323256905005027512291360230409325642233063427571714225042556509848178485359157652994256337504029714751580071827242163630499375609630356322769939626313628079959170084693092785004521349791348878875669198582874861691359832689370788263833770486574307327159039335118446216240937635238671471468290360211345319334651496215348170917155593650405922915734344865578842458564315773329143566670512094595146964881560548359771003598214749324496998127077932649258690702563711111322301037558467440031020390023987869473093414704409040766440946266105855373687538417810608701231054153785070872058016537326143821003856602340096671313208889620437580027389248575418224622795585873136389236563993621970460339680669079075397218298644789757271684547283597468507539238824019394036517160750649185421395405195275887745831899898665711363961085728800054377165271231681858691678868509843036299788877549452398125074030260909297692077222314039805129749309975224484816341700497943598123583678087050792445646411240484247023150144646477671002146445500321199317326198078238212833438410163638469746473213127931296728755516287735198578526414878784573412730196264410172578630837911804485270381132228573909434358585135535143456557730872398283561057405485161415365488688502057707134725254751526085428018419618038202999020621059675491672704187415445434579828568090652104253717100455765836239622056753740061494042578927774396169672531423611855955740905135959001451023547609679002027383800329155163388069084161499899755804474082020995473970281674407966440779103699337152016503901548847143413863461237847918416061723512989563788905012341037118322521692019598507932995951778015568302786477705847268556531106061978840532534586569862183771900355384121791648467419007151905228575789872441130948590978253005151272958070687886879539755603878170921029531036362211288750883723006476253023640247643577395082084463503869367276894230795017730702780851596554798088997083952297624394630684213861755817610474988288676892287868499735712692868524617853102812259478080651386166689775405844688810787475772990673097220920314558831936206504045717951872524278064371167811813585925969256717410439403127252946534007741303403846746430263475537504756881120831548695639226388999144276119705016070658263455957283231184571502813653488107086589266026947756701294310135086456218501491808265427216848150073832985529553348761782237823051367084425837686891204430241805073931966225973090168396678387657990835306406834448533126908259111967967693022173825667202153985909427955062438919498506274812699388481635819752036321648637313716739179745392655382235258975259518530778485584532302365162114474264813286474006161629760435923664749024897485711126793887937685460066370139420940744383284706342241344085910213079411232227129608754798122646073846285713590143513298144356622766042508105843001739280846108921554543842501947500560298947576828490941486019689310466444886593441706990961847018074416087630860661536527778010674041382996047783858253546941685205148415173571225653598301927318799057018258140755872638494606105250796998752009489590460003666192068935201284997775151838080042996060964421339289711720247335522110916213495614988756692394317926557626962788336486825979472448465542998637364915319721036968074793132355786923443420648906649176069843824107733915101905584639678632692907414862369595570668355151217665927871589425988600260954497999360812678472065349366025946122394052398861061387044592766127450209616394440326817792847049360178053947502489258461460430852397935801601348004021568866766866415144654209116516368468688470158388366819306470760921587703599878164254431092554666422475083959751396619267010337021482260568944390041276776749680414417441172186067392355320339234937677763540202092191242191241033170155480787477773984844281649230730512990567735850091902955772303300544772267444743740976502264871964697720151790204549348181483458406317601273699622342717760796055659121392093607766900982923636675725411725063926812096091301734625820534744833713910569452311515816798368762064083072526044763807231403480043101222433299589878060915713816149230972128106631955797131729374703100093681749981269279043965145888441598306499230386975958622946113580681987074657026768832591367363638286757868756294105886988688603532076753572378385449034100355721687479029908802137408952515010660034601975519428372212822191455989288931676417375112732095103597157282752635323559077426962794387960699854164034692737961977312580351131190575937570063281477242142371089893053454965864407220825113489480966263731048928430100381624143806065693061035941411038024962714775075643289988730162974493287490638025544940619489167642634475118309419436074955756024311697595990473494468273519342825029010216498172831480637423381612939756392851725567860518991852412993579709093019666697349485320604775106480220714205049234259648439062355122610872606362706288638975575936392803610386310347382056134012138802851475366321308652206019423132195031830583286888470999501696460936100001687089381407245769338249355757347298670226791204166862998070745576463387270224939156488445518219299430771326454221527456752036564934353875941716146507103062230971234923484803991894769720161005316422462093878787952192534989755313308350597711811170462895612892758949959611061060446802180610065479160150031381580252911039041689891994300919505443117038281594354039007250458645123449287391772648541759162458387828963996313324467128204056894832945421064788989742760890693559162844258855562129818264101597867143551482796054034835374095276892653963382988829450155971500551740647500964787405248248081575010356994850189102617357975071122785852228901712596734260511341703380195667710377170004103232981248646692321513431699263544021816944221863819113156496550049702055075935005371503153217824523524769029618901156802881414500532695080606145882488522998506595477830691225567509985938961341076254493648035402321551510928769775816390675818480830598041482423147897968371459566937485994091764717326853967057182684310927752383964845475049540059635394788175579145175189125580062549044368505985462369063021298696161533381758785773291669604624436797832968888142224554797731209246140643880930098056395219430429880459259641333445744488799951679964072918311903098209827521358140427624298387101275448323926170253769666353581040304101240425836644404317730552923712574627102248265334241825183111468190329473186532324084302968059334965790875271714980592686982055252280705727764270821783747110365932531021320633660841098170945730953711949753789750986903269362667766961667209831599309866754950014622761920107094067849993712131637516568346987659090468961772107071037453106510039844274515163400086124633671813482532195972044544034855116213875718464980070590829395202652844800026533054716994791750942883007059145410522055292768932844631407948027644675606931341323039296206636496788058174936345778547402064903417452581469673521162592351971936876892024869328709007342207077334988712479260776704276308306707992321757645279997538288036138440621202815036861575379295925066476422921603962706135251430611487464069698254651057413989328646303857649300660615782322761219086319817888482538431180095919024338375551691621774231488498283635260218804576912256689827188047932350583877288047471208849009850634962373174544403738099620229436480649667466666085789913169356550146907364903907569993633758630127268073783734933106719341195158017732024663864639820791272582501114118894763145047028736878306405001499558254911137663957568950205650448335760672346921239558814666422378352050587346788137086257167814087088434589414093208374935474551331163628230143440627811841495201588840405038443873852824007179370116360741637648590877611602858145065370829412586356155762672099384215701137111013220607328512857323359256647950632045717418383255753042793377328212142345046000824019722509576595371640302877077633867344992968055138437109731614642773550067916826967002630882744533659095464284478999479692613756833932612505680364653528340207752986310665120226937439675186680624509074234133716311300721049730232042574325928643320916839508115217517390396596355101828117820752465262575370966789822672032456103756861181904692973712803923969602652874028592182496671358338861168041591615655116038658225314753966076569824413421553205975792569238549262256063675230354287468865284508038328146307836922870281692353102432749834591730448092585809083314776496124342082808351538211755495270862330724120875581403683483844983216101591393637000055163027767764410451406519689273515571566622969245647453928651258932073680622902172576983171029064715681345108153178907617039800846603951742481256879522825333658578618903080579155297933816115217311109453599943688313001056353195205039428963406891427729689053219354172257278110199017086758513918709670979818486395569708489437027301968661196284239183389111644607566107946290301826856608645141502806413094886214104828126003240577904112535755194877823131144874667896862592377747748971325561729164814998829321967791173997309504146651054976838831633752867087564346820906496476803087874719320694098557342662136164741512549872390766428256623653256036076381114194047994854388647601421972702024048781734527049114886141574298041646683118834268479045842808285705598441912852186540463469554466409297548017455671656169795780761496293606151172029345806361281205108076802991937540050037748178972634430994123506384391560277839438383323969314591029642815066636664823717976716414118911741987891640366116745872664576045545734995129424938679598253257081954850228417273316586226369489436436102433155392300349139712984344774960869343473376421691518157058526235282463968628728752693362328769736562070097735514340145201073350387883692732596547263413128200533072704323513898991595104719344113645357285943522078432092768186078396205059633634162282543918580670527450725914542459216589342475767957823002461654548760246676150816442172378094295490127740313314668551765623958335739521947331184935437178987266966453870263178419671585511079466835758286754519325776171912895083405745406412120226436887539969102534441129550622111569685450503761662634071147611697737101850085448133902080447096949535492857571464218009396767314128121483153904508016324964378440284042040118498096380629004013921354634827464397675406368831788529762017397070841211741536757414136780633925140506086949787590919908592992141912367944739069924123705814029543055643824255419459103238529699803097496416115713030743820552799189157535775683203177634922453862366558757060874745566257056487677554700078691060173907510539090346177484825163247029522302129506665849831151895424506655453642070403425084490036299401723520042101928655186080458398932277774598823968852126243148116978306981951943789079047125984186633993597738300399396857995985958093619703386515431701286429362528268578813202277289608941310970551572340881219831564003838942662702721951445505072146001765907000023026849226214333554595775757294127053355830826106828756880586396693666688038992328785216969112587923378924585360340773371706357584520701309786274827749344341598737853758386941488799904843738636891927328070791355027410705234509516039775691323792991802716689666589708937836809212273002856821684654770179483487523853105468625960851086006069634867104705101005885542870862946420030782766892186490806487087124912051611301339463061221997942943188530182961688963577306422451954913635108909135639214926846059204517268404086576555024263466575610948136220760231714402907719952259081126571587011372134007666961728018819814794423439054953049484844235681882456406531418915864247289909608855744593581262282528493919011368301184203262755766866852146345938795623368624519353541085635780615482280246642650019123565234435707012641037190471414228740927399328182981412283042711894661744746074475760473069046886557744998941257422238748479840994631962621249829494463208357663443183183618987120018776908660269626377195176309099053670920606737882137333060334939263668135020224406027269169508287138751816053318558432256049345454040561430535750521934839650520255262382873426346797994909573494927008368968505275599044067423561829254068189450214283485887047260395062663939674268570449763181955389771845140415430261118094052274644785690440983478599176836549349022254839675733304335528049118167206261757373787706681666736340404875335256105482179339080077401131054592022945491727836075222086299730600582805775759847230463077163482286850943454443514070365852961849391223004342573392715225307699632154541178710191439449739506384854190713391491768046503564110932655291244106158375845224954177940568837706372696271882084858887551739780569141026062650961950770961952202669796492487492032629875767411184823180388129206633910735228284884137645664655909280103833397158825523397490783223638120958680849794308275363170828911813912101206476154260603041424582622327274601168376261770395080355191374468926623519114958207938395335317337978888156746548856946153084012078615657136088590172558983075217386144202192488137484225443301483005737531995317700400512018093217198449685754537361687929746167515104069907670857705132108038942795114950436559869670332912719623870899462430268778478708574375364198256652089176123847185059697547044960766136285747640721495659640316408006779828951198908140624868575777176593792455427930653694755813283993651145979982454988474985800120958865899394349763615781690483100758296673997934967658220850358406703316853397628356166542484449389859727056567879760553814612685623092312510399858721736077995913809100663555257311670855536402090872917257649814093743536876684930164651310886940562256055654033441164100608239941977758109238161022882723259723667742953780070227082015086488332590543183501745260640623153713643945025373009974273082164823204647166379463529591045329235720971552144676890224260327858332960951616010511044910985123943605251550687826143684803964050279540474830184730861096818703176799390246149411617486846265263953932338446980796803452994072396935457871332282742550898056884591503148274855761352325334013023108935264206704633636438846775667495964335592391259542778112590768702872960903473497075607659984963058952671764542131978444602535541887932221444186720302361799273218520169578712051046498064052040217002449252550184650696889904595086185848554824053538517745117369740954226976186768878913717592092879334647903076227373987094386678341043406271189658955658823769720780507786224041978823785534782563839913827182873516186069888681584988356868790414773769862072984651764178708763132113711971761588931956380117365980541747631183685988557341500428997596453979472233137614052646514025680814597092628903360993213945241406667688653920228906911916186232114838496386033731438168726337912734456681467345602186347565341139849768270963587233775045896491487390461052696595592126847049603746911017695798427432884179545236745925826957560024963656888075121295429740105541637090072797758743947097573514499952805150094243955021644712702599732672363059776801189257407510297807764946650459829649798302512662663080079266866866215877527016670435061163277339010184624340906472242959130280580997055349977785893128637838081581001865113200296218870087705461279175527129212666295889852005101384109680109929523121801236307560997136197421486510716007952024016351899895147632470671602634098071041678748806779194865079914671519717239780247232607824070367829969140098127069314834461032797909341570010222597916193013498467380890707532641948775720419481046802122123712583163311219811713185387497325992103260436186349212785876205891296943032107996749037383710850801529920631742770683600280807786887796930001838795408952495719049259989869346730518078484160119247975597473473132854818299032937889106741460941222916911955166511725372530133171259577196692594213456798374602972321270030442402371691708875466532204087676599416768393353647035645763221667111248235992890343091821739008750056068916712044005665565424679999138010496369491148009037947989211131913545375320561094446717112298174752854434528955180601192196676001925694641495260933786414600033771995896704781439845120842351407977670781974440852903466588356464056478561625546828277161513327722413018944533113894300802136369054006719893649339775870757658470344515936822509275662502181221235639086524551184278282626547219677782238704550836421985733933188907264319944833443571178688798203335504276309133103938350349886431447229873035267168815584670981309346596289419133905513737426864250474089391354036733286324496329454446440856648968003312592089082852873460845354772949491135908033082092819418635694237324769081713832554582687425541981391123482908503950550418296744493636658677258370761530833524478916670456519075170238204192479250536406692647618523454560451102009158454620169376175533796376276371671786488400330640047441997220283204613081646525777978214054756705600753569503183620477540005812477743524706974009199767978030079539832602016410029564670311517578575979044466650915324388399341873711070749620099625409261210615577610729849953813019948790337490272424977395409020983581443788107516172850737727877133068494852923020922761938135543194515472619749575782813064513561330369508000302998684579473238230383460892215217303204264795996753887002242910619506971103411103979439016577934812661218967546306522304572852437087369932915705973217858473953097749741846719793736627699184414742292051698461093881424694038532352001179477253025443286213926829848756295661673829809487273432816840147602894345445639898147479123924541017888583365752544102629893967917910955855453420921286876940943447419766817587417207464548080880836509657463799435792880557003718425016246362085347148180145417669928356005611340226295858703840048799958136113800885256183115702053873597009132646333227034265804384868065686047374649141643918023613830587782037386576340859752705593438916812256036918849367024950730156327783305123417508186360930708642080590838288091285280649138321144651567663112141464190020515988540213849066104096086286797298285740094747479317936235899999103889106906959731304937799692261817301701622076407402162552261841830813023220912783362343784564856729728691932294744500038518551638703866779960092801260470575710800037590251187820587924230901842384629508260666222579835796592011363232674666381563784997012591152492811704757148910282676596031811941550122082912038380133261827724415718557486417422372954991886671107201413286628486310821947716584531634248164159213516335281244559300152546556834283707382558613891096997578915644403511858095356050568858602956483870079425226854536310539199177231609504154707294455789932605662693462011007349535917278225598292068324101903452945856459014022917760794461657986540038391223948057392800310170291497045332134010551181037118568901322258680491693975857160359583734176726564241804235855757609931548192730820787982544625342832786315911977585233132490708634895187488881361394201120796755147752995674185288021482442775568604265815673998960486266623878768627270755457585712266309536628378396189685857300141375596959250004523872620883056069138253253312534852456998815051131813820427679902313454879001480577899994533993530195139185816252440739620414984387289513288594942055702513112109497908552473186676073392562803321942442346529150797644499882452650859172153163314802801187618169970551393915105436715607541805977371540212750251813072512338053038739297312701813518740806337323388483192185111993787110815015381431836455584419901623834101586345649272128738162963945706635778722199636925300841670569305573155179323443966820953620825367771709521441804121897318652632408601910568108719788502228392741385082413228041442711209622435467781462472321466575806674026252493383109393591007013673637540073244306475075022872988698400249070712119769228599770094074411455218618163635833839926547361714989313178390930860715786939786759061188142631985758278176060224881553535117444697185389340848245896192793441633611845575124047926681111246155195876873566400967125694244727233993041668269817919856267107298250025234977193581521852428596956529617384367605314696313713192304868040296166839132742235409378403942455220703363722293154571555595760930579613927688043974715817928520814547811497019547179993754511993935243440508729431431449535926115454537301253222494406242883368491099612855402924459749718049703433972554187292831549985220829665678769965038080706387191178512814574968990254503724401126922343609994214716447241738685232246694182173104133381023110256582396386883382037762298700978816426742536763435568909276896301696823438638736607700885270857371474305714237615676157470494719053260124898434515047267780315510064449781940901244491144349192041339378876798325695838847101262453895337772951886155699628620657696418300327169678328057170033153740704128602474075941140845097677674053096312121575343119466901395583623700245102140646749148482642000341831115671210075212974606707711428633225670431581829064612622276243924765552811012471999525274703129795678658391459359861437359515967926423549304398360588067812893113527195128182097270080013046269369233292231973795723699256100357396104482348911934954971853257997507126633436569114739824064017228701245415428787645063938756798396966937007333724590082860353792580487693675039886254032958005533098557565657479587001098661435075432823425938979017636524134266167142787415990492063550908320758471900939305504428678962291873586437645748802883725410227580599865066678913322503394777403206332516255302890473052339960809004780650479181825028899708187221652881217593165144350196717815071603479257555951625071666653175491022186655504507590699095711779086678004665218992078568487231305628680545455943632893701807594857183351009381534615404031667033789539932836395744523009745652045036989005955672247629693373686795661961716669072678380683902940641247965914957709235596333783029538157324608057592045658353542146630569386895773877044721737245172143948808066502884050042718444989031928978903889620255196908730583558927899470531687894931455407349538346730216669844664196209021567544683830470851639501163081836867804573681683483979458338693502391957246095535434381886069406691141010176975316781117528216038306948603454419563893817769578932695196202650908306378907848171944691426740127359148657565948001877590979356327836064990443263946410698605645389846344060110394417428336365399530212121745600527249257462726626262725035592255447751327541980141640387530044805320009288567879677340181939829129919953225595688870006086752542026064332285063236354297177254725920913246950448381978536249693467400507468762403756697284625333689763750755751469523700814815630579762212727605866099367981594764721548492218704683755018974144140570153399125452077305799885727623165399932914184043518107916108449829928550144908712081937548036399281637476115375896643572727246271016127066881057239212533722516195977586143598303770693779376776526702475628670009700196397170293068360578847475392651426358417382857126603140537984181003764199330734452293431254443216497574714349950421970105370067818386031191298359841358617187183002973639885117834469811073866110192665142456697747530667160684772238060206031735575481225161936248009327351232409190745602894192962536763144516960258175781768012487073167719067923268773527974836743487740426108816229205439423128610144047159449965305257979280530363411526077587096230587237156546376970124795430772483448665356369554628524554060468388411599175739530162037781250211370535440359769928826331926685976277884132653142381091977542777041088389499462375863880576233593747300970600379116073693588750922254878221944529648767932433517015013959389966622207586795549711456294967272026277168425029380560795787346600447893887407864839036613916270249728715456018543802702595440310623395528388023229725782800273764022912498487547379612531273654751203181953695216513061531355240170498795983976621546789515218159031807809954522733360223140066146488507808048401291206693348558585376214103987108902000679450624524060096042268482665308084583708086399151316880256437083422732848950966568634637701096140604338543279600066071953050801770885042123646737484771254115097276878386768265491172284682571854184635245323001581127338997888321426046768333856861055820873905123896594348115878989134343503867224469746567599194183506519356098811395324129151915716334873944658808911830344017043061849810852277971110217459609722235502601761006538532909434192776565377802350485039874752493961660769247283216864514897394668888330374938949613160058582080814168921824061760220873538396496908578785953029098703758845002011288614702027908323057967289964657234081949072016667865202308197499772403712376836638775356738654980294631431215843842895564288830024740972944470232614248116889075424990250344314016545389115879824887752000541086557686203760209676083591227627847076798300925640997058559665347225410741897018346426310719939395904494917553871889314582735572779788572285173902277813773712218321947483729802533573296561252633211137343383564275441238380547001685671375833158595634376700801534359578548906219928231789055427668117676353613459647933617206263043286868158982749647424884233861445612385284112076074347757955141641123925240918371340260356975859172359308558296498300809095844767674857489253235119374251957723161734614753089692114524141029683190599387651944431905833574360265745038164280263017511652280833590686142414205793073778530320832087383127347666935420642858155520004772170712089827051761928812416076917582377601282456352840692949397964097921104542809935569511674904418493887127347552640375739832462212662228776289501796788012696348053201886228187630322269986542118976197095213447018580155479428169943088761927216101490095084756528636831750258993632204947091417077492296552592890209982686626269083216539258022541463175754400562979747597607618240461761623108825148180137148385509903177509221051074878620482735525033794059660994039210935578477868451029983055283497692608370119989842771590074101807441103704492868587228843412944780123839809108761709321930601493882795657795944744107432761978595927135417296946201343460264290963116868649712674401051585298126841662157960180445659323896043070454580259319040454953476388641782358890062416578437370948053756199844759749423538557928879129117673306347582191942788853739531819872757283123130743008820768064928008557812570116126900995333512262645842702460134286739074160636742611593124849572986174681086379005392240216819741517154245490410980800003037770161926562975887157006850117448346618455292434423146214878679062420554432470820096352553520631351230096080638877563672594379924521101035457794576387584640500650586317388093875351751011640482611734654546990818762178483594651618721340310317694688187915196313904291491289540086867497296852758667901355743913085903491307962804495185501807748464354291018356385916675405837491123400307546817015079435469146661819322872110222092977858097480985150110831196148834442770631323916298530718605369769362710823445397716646058562777495030544981037193635105287993128864718922415908377762490602429558776800646704588343649644945541902848901174474602691225837068955412196956595991797028495910481183557499655279315398958607012003640810480476596595870471857859095921180038845863930534048936420415119994946484893110025041191078033140358918445833370671971154717316566892819768288404716903305280792842195091162851201909485445903364911071172924079993470866197759571969931998088021270040897327852483489778277198769975561444322013090617890396139032856169419437339794970662021029539277889321509309976256697930111296526378567072062504843230992693242870260843525603697173797686019249289019461696607808425705859283663389501532893948599343236985317775130916145807126253214460449704560069966173252286029811079353391227758160284510940101878521681204991361574648180870174935082829563456945398762002282266722598825027897698577074787712752433183843601634148754762939137755707013001187212572569225639933835115216042331316376270379885878576563709040203484544494249530895963250511092286603157613801748389229471030720252360230693475193880332222732782342879442475445787500895497037109098840857382572293672297525262215906491621126352565970566353384812028472721216833422169798273165114365024858150824336096644640038534199618289356394876609152564717211310452071333277175055653052675982079664952810562037433089732208734583616124473464116670008158340723043184138915612981903215330714743559068937726062686470699440270474111731906818443536770071431152497962215722738543950955621523029716092827664853286784075622402816965387439334057000344300882999004953051314197027635672432281851010167468678166777933745939727486518861395205973820125525919006509465522808616383905780366536839884945442161443020032522405608956410245786230040634455787298977943928010806112286569114156605723969291435914665065221554666740915874737564604112719335867474004152014464042054991792301225932819919586149941149637891048823364737542295572673162946270954167792521667140081353944139986888199099978974466732052062671521406574018218765911337080393945729991034760759436499230951700291914875202540055287920180677414147589999669124405110418486145471631774426572037423768976367082125796732519098162551851959475536837234610916492924918680797745909594857559193056569112263150681330697752566964999300860687172173987460251309036179545162427153397222734365181806837596867489173229065483612747024084015236539760779728573168489291471524484852311498931929889409830018555385485424069916445889361013299732984096098872234501291590729283489654573854750332147120259467413362809044981266922134016481186622510646457698243223978990490644893291099325071451834555837031251482232101773529323158385838820636281117469258649452843226129433779222514274390629941507016758983236965829139471770753788909679175815858564324213774749369710570704279970264305420023270053180237026493386561332268796300496893278958940981334459291258226691553217399326379523781894297251593712255960432586991402801777561369741219965004601693100244299548122293091868177334425575014541894750478974399288633503637952202686122583948078025740761791951645951317282632797423597791377173414908457569319615383743058789039525995086096888648296445954890924681686447645979268799444705265767374786273084059518726376929456032811390719768131156690695494559515108349259775264035890209508243034361743862812805130439379135139992366578826421707412552616775129028128228497329192330910992064881049751853300504195463901695578255249315673180537431957166450184088105342037530659933251614558405531129240110959358684431207052578919859645746027668414558305266224685090924423117609126750621581416469147692806317674463030325439922488392522124928562925486367636603819052879681348630407616637147575978163899478139393482656955363851058987324757613973527888355158847372260374605871855952730974317725643133710548363399725099002754533159941237679379328977572105607555621411628308666144774975111659317555978818365780309668296935643043262852797419215429603427457971775912070304347821845562438430739966420772865047655270714303712876600311406705303073117228503407441498091094181262187279274524449301618352440909438090732452086565807876968498556200219519177114254730847085653116151694445755610569384570809749467037079961288145920697994064049616381945629722010042888800897211222259691737371626773094781184253441967548013289606514000483157335445978894581281700123809035394943340829199108517883712968250095861815529536173510080922976992911626988889116440828075237450523845383749811687772989368160163071132321295212468398972222339806566265152096623102738478253809297025519693951646781196506686031987040262867380084433910934771225469339529921719585738679511884789343357111583411671426209820780635621159393475637614142216220068333915230285626249072482009640038043865237422635221856532593337888064580281185833114981169296394426711798845342776060882952700419474561331135689268320368823332446957895908139661177986002822396273883088162049650736207810412086612668215574361228568742679221015266446333843452958715985692850812785716081458078740083677161305016400475197774786579426639696318872154911186167940121163483174053508103085014808087864149583968038354913689662224488094626332367510386416872081795286955766601294568546303509766089105131815570985950443225914857165554668782760933835899680743993678579332837476062732006901316355995953744072252683100291316965617364906261683007672554503621469933385097172762372869975241918154303281220743957820256403722755334150703297804079453443295389442012782936731907918037828924452120574472777594881998378563273624205601615810706159125885528479139649183812936696466281323327033621366231991800033876896862060507330882823167515639591745354308978494280912066603081953674217604323072486580388087010426600264476057908269977684140557692960354004917176960297935754756208993304383869075266308179233869380494988503617416514760578818600312272085932463886200164124949548138991898500828675862220796805369119785071544518545608718816138446077665283686228247882079866899777252135125766090465622022221469335266376586201127979453325516978171241833786305457239929148680350338796813553750568092954266384465168047609543155246091216214196084562410796157727858525691053405290311423817346238931214539801091679560189027649311663658278683620042565881473105940947942573475699829206447856604155043595672242908003726356471731484927777851086180113592496456673901628320449505665907965713125760131423612903178777364867952651982213294741564013765457093698582858093756330929203073233900371972279719992450081596278416255523310216287577839576523352568086575268902158665967147677327103653075497391266131396004717714997556173799288922207382922401640261365617128629073490109406804689335296836787377996712399650254900664045922577759801958701288127882319492190155548213305742945865779671174360394485544208390961923999549763813430865075735420646479719544424865180396738798308754015669964931801982017194506778917813268488228244967198880556360813998322215793182815574817661001553905332197114163304270575657295847083211351052799526242565836254610655628715135572896204222810022434488119900116141182873868063351929538086605139404199365250312939359076183338445083436323505654412879177846420797284655341121018499337099361037080565124287509217327018706705018518469486093624465100101501278927500953082945028855398272491419660481185134234920727822700947240818165709077486033668984266292714744050454048464733625732120891384825371120508041937935713965785863510256343117019536249998329787582144901495475009021455544405716462109961784561998908395968069787974969898866020342680262631924845689436506265316360868089925413614973187559205193920645444717462406165137683004169648205518698527421397807067772390676091369923355093265087625245937532939235395365705634439654104338747833546203034913213024580424002609079371095625101275173550211096847894559023838932743364974539170081755493644900157758493541079317800788680419275009777719812411841094679311320133568418808906279467872668017026070704003019239788404882336927725610048100178201782001929237466378996074985590221277495691060804640922542350502428234700380056700459682464829982867674279724985412268466182050139525071540294612237815334492447859466740814566964820890314330181760287967019045636212816959484549910119953370501209791501568735699548379647953643340521664615151676917610208258762241148413756991661042398876069525590559316438943390117218126997050973211169232779809677604178150588975632044479745212720060006034013705927538882622139381566311136854358268744097944730564336603645477398723300969481952531969747125581825621109443354046242245157224356166139620422961303486975077417451436269971172812781887872960846019016273367528144328083685824793538235121899748172787446365409541846971850456580857460111032043278332012601895396466902659516073945376230563384736319248311624598116212434724248256768570461205331171385420211406768719051982369962433527669176494445396763149484386284972788284493369670936972445191759427115924927418968146032538570941071551858993183136326893505640933222778654900149850369538857714406753218443791775568825711292014020357621860718603814389418504733489829579296023032554402318748986846610391396861566940129802955359252258264596552160667607127722058906408371578070289680737747635069995844160403047062715638312702821741313537068315678722472006626421837247594414561156273287464089263058017737695317741390017259011005032891362665847133228413272026284781254023375767260113084651938437456661080731212234830315646505434145525832391972765588800769307190481655609147788112456930047610664863057233857557217588907769004771602500677045473765887611272595759989048307112190412601721379907184250575352905438711567133697981725035525910961834368729272925979013260712634159356378934418574349660897905315859475293978798086689147942735520628748139329448461416242895916733374567614435182751005121268191754675082072553038685831202338468113376050341106550230464978546047660583022301828521115993607163210521726065940718182437445695887821144346022647192912084958625767015832643215852995048908877321186789874777560792986501741814949298326057845893322540286108781705128001421358596320271982362930103328863959735921836819343903996822888929475187670488395059823159038381069420984460793889123046894369194794837821407176234065888802654758623578241396270934777545684497013857588681789825416498642099015587985323827502746842809887726293925750037939397420674854559138603398015790759056065336362640073456578395534338794506311920683298291409371920699892152014556326128820619691240394560679271397656542481901198309887861753497339648605044477906182198388380942554050172597398748642856824349906589845871702219282762483457978554265673587452524713430996099985940847204437585747806083557995645926472555752981675950149360724068698779732312235331169306305531643838897635319839102991922130101952686245224231023401195505461758328051644450524206430645636054874192476097945046171646556276411965348815565593343347022015366858943417683325630936702531978866857640852335264717854000243325784314706488762632103122666525088390405382204066534049870927561589210364632409988423069253067596477313132264540437704467888944465962063487449537227918938524527953801869532111937232131830859791919024905221617914862115344757254777088901001136184272549430509817544471220881327702773181112106458115951898965711266731883806749442113605214748999542929093844941264729648304376209578477281527408038893714286718632684664687017334142875601878323276868871796021192303600067387081574260280599228945663649607834335542432814651431770341064594084241739217287344126214702864367669375063800151544917805506263379175274758662040755039613192651113168771555928228351934966825807152351218912827439967864492727156297539091810162395932450801394901620090374517010107754193657967966080998093642387091729056701098754415905075992003212762186494272533860626445563459428487961535796009472103560391606329045236636700954501326507358366207518212907800687571034398931736725260124743177917582484568831696513485719458592757979229195173320239017415118472727581643595145847754327374008133028389258823820023926251400662918913940403248562842677381529309322799075103002342455933709229844110064992707899096216827042025046727061775954767103414109374836302334685847405678071331047354152243108374549285785431933878426982298317093138739606916456515122193575292366049896824324217057755782407164302634535395485094525674344052819715180423139624075136834636453079934217380620396276519919702064852049791700502757800573312265991689525850787568605045291909286268915078881529845032582089956339843354751760410856862387576835656289315230040008016598405727095388657168159726322174931713344672170646505548831310683893463280061693512232825064387105520313394586546150167415520191237162301433071337579410415610325994245255556123294798371784917590011605304729273055112304649438571945099260053836048296556674237345151056317439460642800944020639690292258100927844586286012347913227230709995625771803919205527731454376152852204549605142529905244923035575033846248614524923442960672032995214412998435901571301432939463339052905988746482631664493227886045604433779000212020451877483636335933483347215653348368133694506491050507968223211807871281518951112576644463990913870883222889061011870398928078427176319447992945323713803998363662737920596305843777096520023807454044973524979494112948870874724812028670792119899652089310733990006068547793758224021382698862693838987042159494940315296170786378170568729069013352343954565584725823201826398125541810374984704049852906137386927694441216751204547133446189879131833965903529107023466005600231496807088091412863588946137408252855252838117894890117574307815696518827376675948434774843760801696257147234774776980533043294668590707746907039791950986866785071065823880705429465125705146318961638881396129336226527586587645962747418608650552740568445293758771437649779117445553675714405799928131732063798685278269949881251820447467629275372297352505122078662477781628232729088885094843945212472829635028289647739413244228874412619155243892894131230067556363435317926766872302980305868055208537842545498590585429305920330457012312536150345732079227453857511102238048086306405004960262980619510471784708357760295673792758111895674761899656735119260783080703352653350653962443169660673168548602666134011780229989614917674143022486185116509619763888298930448119527001621535077320101820426346177229120438866986026163550541950198264992894795663330864873713153657656555152745241817745893357083344512224822668631288330447021017038829527857261791505743003772289513216287065634456168433618108566210769231193878850420729469396323901915333932098834685335239640054735751290253577077011854173773232160194820008876698129650179252481335376003200991059569532110869811496512620956810626114878690286789390695401647246782654214213829359085228190650851511507072573592429120957393016500137985647618423589183306659769875415116794866242332686151708670055358864831377708323876369561190766312131773900909532179639303369882411384805362333615631343409782346561012835730648409215835528626091886995180240751320233690498691500630513310576428965073358157625985879459369779785535470736418282304179051802916278376675150731803390158461839796041373628270759646614504439060026868620914351128577100233861329376011435884509854792798841483585692183713725845790637790612670621628947439426377573336336808342804880814993995409296895385137018277544122469216483702199268323330234948726578524937210910713340713599446947191198608652805683921152752748111887755548765019844313373341874057599404562662708997883166829420109460540729995907601417418894322941112897710987179661918751380573808743109659592356240628683606410482934071001145310167790411799680959589435381114856743399300498026258857090765383733687031343523259446860538404357175107838634213912047550805895465312175779473391777634128262047686704717730570688388647031898624155109693820650372139886350579469737054178670964971840270829982746521507330324341987660780044825832786968177251966616696797197113778871556880619304504970607197903176850781898850597103072876076503511674253635135657016277438485980445328560904160541569295341295281471468840101121314953943143732793098725830727217745341523127330669419837230464405687417804690062694474802188667249667019914586499637384362207005195490036685979651085178521347322479866824352899005188004733200324532262469787100967636489843112056530220292960481666498314873361085369406795536716603080767512391174595231845194999905240869059350907845152321871453107736593969549783867335897519176173325466641208014309141697698630206498766045751252711135129967324119271733931167175739531534263167469407768500756413626218625640061289931998110239401152426362915960652221007341009207331651305188927116151478461898173972315888453027839593167297790415897719513406145919133988770897741835262523410880494997305957599535751040053843169226455893953329154900855546265854313626044152594976766147104519407696831836746994821104258289679933282350226378447686801469183458198523001018795095507620667815239348379493203945310903261941366345963541930755655098897673457980134460765999190203288277828718677956155845230389051062839317473987549556676600471363482925888604537035299752375171553958429687480376973982831367670618004691143970474175898334360546296677382545371433166788248645870297106346410781795190793354748460298610187164916772887338733020120458398480914654301822117243681762314365869520654685479320893874302945052322060561813620134162297201960354507393503876197758586840435402845684931559328206725037198961274903080382851858706839868739952022236778756166095459278835728381492889876473677003944302711770705732564676804502378893434858936291243543509100721200378398192257340058468850562117563102413709775841634375381551795455037063803905318838835322614026071056287724041948459025625984067140276383665302244671433609443208463603588013765145069597788313476945460153560180634121490852676431993120780974546525019127243636699106232981856162991327561389485871157083542957379493074238063026214688541505092860854259933682627282111877487963914514770756351033679072588454318933452416771789631018685520482692739956059617485048596792112831251664874388750148705392414286547575328984034842110527346540546347111279331274709295255269054717959426065130640851735808539797289581989733505887867398947460420890971389070967887049766821831487506871523861032461387112670299021093275827255253340911486631183740189046257114460966678370674773623557390413461257658206647972179212311150002713482923927053185558743098425961643183116641939851082885824359031846177429004920133932355455131302567874452024086991194366667322546717121887777314017976767656772009332463330793625759036642885203483251116533127419184341430900076033646906190366981740313899815626612785209993472412897325110327178770010424864049816459950479120116634496056865955985277762010746575652177362803092275570293269939260419745720651203051431008038911516128928296926241792465944834799039375777227467744408973585617768031672093935668328180255936618542441698073710354333121731897981893729020614526589357255664837026819410025922984562830038744401473816714616027971042380633051833195360116787632477176376815877425441527868436686207745600163430645571947365591397666064804476660027093778474856850013083413723682313257229962144106953724264821776409133112140211054737752352103882843936942476897586601338679042255319369690585838331574593520062453548107984467160595189809849450291237114934652624933531527418310606007137335057792475492601173892908964732788437055893882468866700039338436289867026261777911256026453874016752260424491838055733872904157383971648892325679274595951169196571147203285515500688352310141164010596432077493154595622207576986355758978346818353902534546773009920382017302118445764615320902057449742997641853219131711424597988403654754786202131778190523466981159326331951242653901884449122428420970504468722060798771824021496691072229034093228091123119081571710994859998674405345686912443592722104034558088406984936096845115586995972271821666564821043620042353944359208541637612394626668145568978794592537294675122008585902071762610245217112872772883675045318444038506304544235126935292492840838861053822506220484637392198579755777824934862072430554681430636359051451992161509916662237505269579121714059060938793616153612808507917849106278591972929689488688796251812071363708419186797699022718705592629276031595434450148586253871822006045717609767036431295167132861180151060826142112031580346667258133291173005285105034394835089351939257799216560847181610631380279541450273366198009837847223596434763035913001928167054607783689308475384650039080552208095370298200559583253117739368636871166593357375884318691614855076507006387828306507154361039982480962721035935639759896514059789086892719114718971635710304178350742397413130371845277282840875254763959303549788755369335736872782874978880237655179537015124608915246721832148954879398534230002815076843979560372372188415196986462572876576076989614808865516295385088006061368523449932903576839585927596427737922221129428685559764161413937377750955641757021718456259762524118351138282737588961537611450992329789975365685973346950889005999322829335880757084137561214374257853096920540169420059610365986186907881624759126546930431404700718770719640051557472432318810365666549631349778495317814564635174167518159040567834521774949826060644670557470021489491950679397088473058080812382067513117902252027808787737687938459338240779340434827936297989822846759179308788178047321030044725553473245507244040786007322276516522494463908467049043621661765556177779656998763716086364658860492548843225052050348232954335755312321264382197025689311202623264628362486457668732598609272405682538622082794460839984703105201626434080892212151620818792330057072605051243989888183098415702185614666392032599687563945742043699697134881867152452052205967709016723533143811278211079961317354645522074275343797878964969858526264391234979205871469869140307696404485552743576721876796168522452195158898373965633126625674613782558058145623541489405922625701412578689751194073640049279814497629944008136131292284002835393633882093124777288979524008507246747311453140681781794661188156191698441426373770971250090691932347008837980013867371534583843001319259168796953739272404397329585739842456383808200232548410533079909138791395973827983949804138991025396923546885621370397788727795982516449839004444237701505304276541910549522505654168429232829548054136805435103399516106643907738506252118265510576435935306853457086614202064061505137395471812458202770991448536274372704511827386811814073014364906023861441219692364877633613167239591665370779779553682603012880585897102992706351675853709835179147859759612193503739164603753063074558430293924293310218460919669907681057205915372158055556151992879335012804048826236935133395967157644484529184915424834121285537362402856787285399142267731078664678383052351929484972151687943979491541904725266591494067625485090868182361931269262756460990896423647922919753941862293853020165141764668033195218302027193381827279041003041014524583937770178493739706379150904479706902851396454392631995285409581055821882506240901143362417147633349963473620251788533850069939799737075257815173510455161237091163510257115731853224301627991223655890330763049751285006910789442816101002529349371413178078928198725692360445736819899200708162226060803076407047894212583221419690997905061668899492623813614400111120421264039203766333303148611570129362154934567647345876473169659559889528147152644656617579619076060265414004608503335297362640885401001293752482186581969877588675079493430478922557658371894881295610928825747541333520906652519915650655540204164326189914259952683811637223470644758740077091182612229028804921665732520390412317932295643412687802107400938592216030281496651217562487417865088536003602396833444938614574255295126357785456859873239537510504032428100606783897133964993176233785088998619455267143472751212216175667017408485150793790293247962717807873771734694496275316858713669534811931149657539229183053591744555730799343390665918609367726228943785740691928528818592635784592958781663865903563913857030005528467611354996259449974349364047657245409195759929674337788338570103085090719975458587073890846999211698475467495701563249161276905766210334441332681842538790574110089640467740332019141072468525780208520963652182309174893608931765789738412962817825531936382732392757403506693740971485959822909965202178759669093170403484625047310359445119392628917242793675686491617343516790761941162270253683888206787311058947523034170613019608542091058315619589230001663510962989997227392281557921536706222150440322958899583108566091563477950787436995287128935746680806340436932784012093994934771917105072529813340997507477732775612739649304534937419236023256811753059481935244646860966853075218861833796020357586319809729998726755919675662301262748226148451762280825845047441756126772546994364849775368720778047564824198308014113559477968525000642539091760874295859515529592373681288575104161668917788863493145400170613225431370536642582090874338226041441612316364342898540049735503975054752862228071469131126948550340131945039636168078179158814858958064089235625422794785717090408555380971738947468986632061055808544147949869142150621418701456863664426263235827848213694622022316424000426685119761780975673496131177509092410050806010029778866470383163355151102924777527333169849601014658558190210399489051863195480090856505405500580940882950499630841272743691282780408282637961827460767584926641259633342162591180460361472392856977946605170119782371484829549372836081803241226850525338594744246590421854016103548128314217446299813533647718465320861028593649229239634248815085645920569040401066393708742641416842845124928406628082704989971002478511550555146551858235731595950902522386755182565079242823727898508631235620699851494195672856180378425042446080289770415105092209961457480411897633595850492961062039884553955710927725098134798616843630391732384363914410670110308092182704867943318418434858882459796584678627713159355062076238346862733046536211638793720429071063520675366175336391792812290835353174562322832674288918915005307613256007669435517436542158466933716386021412045883117522289039345034984450837379453856701110682902909958212559519927516311315815716871877080765896747617217236206316616889331021046588399178111181137339878329459904674666386870716913004687488252280655136800825594031341429530831516286099578233727471330980868448557871691882369682817921315209585341030604015171666717821254468055318606876333618002534396227689790514039410368435474847641478719278993687028351893049662886545871974754254800058873665832042261664548761362577416157360761739349324282574058030477485583797658662151886259677425703346684141833937129265749068301887367908804142237885902282814442618849207625364255618543379603687001997139267265444271157682324364747561623448550630670489512875815600115691452322381288752931741572375194226393270750666857442019021792451637319952941279755106552139793035054324792069679968558568286407818909109021530554341273648856402033875320978989183246608391109424089006406434111518589304885703725866711755689882545037357990658553525795388455905952641719304714966689085092749634063661711030604315103681639079989754460362466826756735569497309262340961691940614252431162276159766804459909860589621358271697451537815227462944526353280151326908264800159133482549188209781910600228139743953259499405871668062519201081138199087590158092180597841072031197190182041051320155152410774951610317018689389149003015446875995539631467545666031747185662440452347300315493084061884923631436554928124169453961342156804403803734751617202729146056023510277409406890442610143636031188964141914910009772277726785725332138573766725617606339120187089123684716952798266219672388898183698871541770785551162260148209978740887004135152928543413195340810231361092882261963021335774503304603013822238161797947678180840592993828543253153148559818797278097569315566134224066660811966330320875131864375436802316826292491148343487171638330718348062618459786193491099193290579702943840080308630540106098509726663736051365152061637052556626336016515722253773796688761624478496827319005060240073181187171963069131322309358258824112130971375811186273649571245261806490746586473122105364506768844595334205679332738038115799890126873166869292816631739419265302287459910955161201056170443341468760413949134461293257191856873939241708345300913468379561843003726507267728777324245130309881299093860771815538579940681463661303072147993682715943146924221148593152029516129928147757920013912989095015020331195422038690392577938228709776055114364839487914132987135869098909837468998287929416273168224935003724365328748489432694341562808837086104527990855937625982399404843178098274791825176320774068221116040104518832974427621323257357397907770716659155123154347793849681222401146075882595865286961242846342739923700992907809969491173554200847932848629363433032180932805708627435023207644617346032581123739375599629901762674187362546584142624385959569358023210489335443622535209987530579661972537390653820048105456584199931237296447678183494364329909153520236221398167079474143778377935734909589206149139313953766069177905983605485103752870508198668822248098129308862435617366019027737774586849636905728966802670520053094195785480562873066402688742501494927015478420877592141892641332908431117161837857871444964639778434744437209898896333447969542494108797474441136657223324470989610087630574671334242981542860485820203222473267284792997985453181622605074706088271591549032860304718434051459834921207642790263910480631642748570162896158800171937007870304196569124228243795636409393984768252988243153148717759611868382328116184218906616969992968218556885123327858072482123650294826056921821903666185789067537887349340577534414672916133886117645773550405981817552389107103480866904821393057743916538091730991645837802943790506232006180758508472006771074758518737449366017880149130474303784676731475008271665337107549294898412600599096100439361381218862016413001790519005241694584558560668489567193335739527239396996477100259833863721976014314174256185746914251738418098549520384426698185426637272979417568527997847575362300876013041227476002085277449041979463153196942007891827789273458195076599751046979290307668515668659521921362965487511793068749087863578365718711234721343633732871197460383431622412532060048842172447552095990766490696864187471810472780486322115583953290444545586569659589631020678330124416122305847953840668874398544684434570245078380428925291023209488969015550980463218385044516956118740286073839607565164218692796250185017760228209032772582124109283862872817710268270041966076513308139651952542707230171338583304527659376712236606385559578989930907753963514164954716102824618215611854711507567527083079651577516278430465447515278200535346376045320403831453688953480581868620156944884644801493525960373817870317324127298989912582122088278848576201206098913905685230249822441406591603113035836194827528578969183777236876596896850199513832290522071389162679484329297307122220499701619476407512415355762154023937139024591535914179588950477805182750544557155633188768085492973270351319492330829098823424935585220158564830423147603343223059123702455880059305979260931323682890913013762101769610607112799321599310812026370699136598895063480084695916975446465441616589139312524320437645027243374856996127347637989087337934631131181953333850106263126901401963317612810456352998382365622827107048240598640065295374251518985047958523936747530423695970311631107906351253649257969658949844019972232843167318405682319604301434753949061900843399493320406772114561531304335232431076434687167828325177194264614210027540506477044911144523493230363380990315085113455907652904922056573902149449280124356641594618715564473131155811177447628806561134898245061918127860623690101308333314519738067351289081169945686067642779485734354096841049341884025621935632883006247686693037338523441588537411004161218390933442332225684200223506452309069821609483253645526860557559108713512042688413807503627116783118436543060627885789753182951205888227375948535731592861532543445288753002836930005898478005943845233477008960649774279173896863994383852323415872697804538151574254922579554448455867032791519907078605368939906146987894621097365895831991629904732997374764896222508983715406082743994371602943305645152016974690376441071252828586199595970410434888075406028312319642259007306215102265237430128506482725138842580640939763143747978031760874516527721638188901692643606355960681628294905810971569385901064748556004826434857375440731352991155735137597302906329005870689180422888861531631135832730406004949480510121790729564848390199275516688391473762974001382991339890042817903536760026429954340952304971891488381687360970753892170659158591067160268674449801089254253828919187551119340398031809063018111658661478051236455781968375060383500532209453728457337339499182192963937846788465542850309624872922415520069603405194701098723093801314313351305595745485594866019464936593222413355642106881823548036279106391733392078359652989617804919897260649401355015131291153120370310753617017155485694906451155721016934791766393837729328147882481766097206805958007434924174321688179438572916194246904682706973784883379123673309287381446780367972343671283121146113937887612191431043769924951106963548864346342577174726104185148173992389915150214923375160784984820147310662264086833693869315051067373641881249654634390802868995799578613786841638401021090003131682080979163789418902663873979659070525646810695921043055777075674193476796707298834636489019536316114114712886420133800779860707974336995872480057703103040415511451061050034842657333827608673269965544236534948517431527138382046892926348649159524918780852775299889214285489725599569177574797351662907427592486998833190880335372218950515547613933711342631941728987433727194384151266415415567689030551038491541442121846602686463296060870625147280207602301631254162888535369347437610555362306140868350113664363223186151032412567178924608707448640041887706075624461241855311429038927997302861092264619352747949440472625397540599588347262654842378784956448704627134987787941666595980793278139706892383150732799336976076280524338962179678460167295898335993161709050565637312045703446902197198280555237188174866890404784991290331225022214476955275565733701759411635326381889709819556109150318794981135875991633522654311125319840994341127981803703267707522082091980255875272608299353841566775516806745557487351900932690287764290789443318521002408262164646586212193420840717279527728339562845418375467483414239333986839910076963480864074076959115611400593346238896659963666496431197820163229974075694641195187192869272985760236150155144784565541614305862108002931933514165145193406021179491633243434460689606522830926200071288718427344198125295055365040969713451692279573510157393382066225433801781698762223076104882676509614347495198123743698552039544931649197429261827208763656096400911839547776089556066500516382874436069701392466383465599761859794300404717184040985744242768765068312233588902363123582700565012690141218679273218144871396303108184045679707231918792827382694326711379573269285169996067816702865085160618972821587594967337707559168210764716337273458202652281443964765097361199863549404435883093728095753732595050247310618253147492541122529244689954633846330099469356146686144408668179464717237333408587183247239178379027340369994635460065956626646515611388471708147432489755563778360859047745635378211673927193720633698441875708829312126502484194244748731910195173093768751932194117774506597112739392580944862037162665654378406583740933559103106926216937370180818423223536706892817307705828303655496855256873523884393910826646370249204286718311913779520078222359182811051223628628971296630874338783053636054216869595999695914386067671341338282376458351401500357894387970837654909751857751681850201121253983455955586789920415000394246532864164662659061271508980469274234007277339997326007806932753802496099342241989471812120825017520586873928891259830490203200131439663963909617698930789338285339290032070391739127202212638351218085298995807800762296973394158629094905634396433424726604712009111006835803006269420137866106973138426394085695427751853775613437042183621158907793964904007955891598320595582135731346711463578475371675185097845438840239330338304275959094638409001541754724151259193005244677773125949969917393065101138585508978802742549447888291602211905179029882473283120885403622868593436099901312597577031829005838049634259504875948264149595380973344394842493639011727557578091915260673461366306075769246964175485134302924387829541991679242452512746367037136639247134381760491562334941294672908124344977714931875193537150798758875404850624155962336036236455670869277007483458077924438064684111706967626513823899369644116353905642396544461251851559068677445123913348982779606867095521652057495086912631398477888498264398508614097567891725755091533148589801204576602828529904775828447760114067752438678910081936829286990339628946689517917910037626860505338097208878574011890324370925379205628301968179683055947235249335415148350869175867767922281142136511935280094689414267203370608764823104592416336673732077458787251067033701059813474918513257755970274337455157143121524010052486120291316781545975842135409227701315460008262008823648729039788267213141249875599221153611777435536824176238022987924163474611978126629094928182758531749430865600313458048826023051207088510931019298153756746878299345479956075346713078089921460298151036181562194267359231172712516382594962587801965691785272619510857909884492827802806748155279350599297091362009982483769951313255225161931696726878014112688853565266910198042760846565571072673033206403336841547529018847603715218050450784141242164539807853667463490023101005999590092775758249384662873988175202425041098948504955874432415221297264136417210181116077828698955677034962428981290673749716854304585039191588003446912073869821271263530557466846903437484339086725617036312094459134052860874256745050582762430080679727094685699344725106051999175927993322118616656322197764994954454161508311115129859538890541044940202218945652061699778868294712892640573012720986294080070689723190180665891709155042545318535225725498257481079936647717505469368611765352051144931953700834504830276956873771767318570247886105851187912703207750577294137778675151564723084794938396903961115069707504694543108146482473731228700692293012452292991012903204879858940112102541891136269251100361946473002687959503625538207861126910500625283692605471041086413276999477070160739772383269994657024377034091662288449941454153464498202381771150979085290429636219414235161353680633965469535123457480331354067528513425389099636668608330500408159348049292734841720307144063734682741453909182184322411221572274743828050348733995348582048648102490778978843858963890835929799030750802412496341926180971418912911602054488422672478160334770335313812961975670428285811159752061587377172596756230979635432198282960073959860465195242358895092315259371904594888237691416696501754115171923785409192833920294572337478945131828260985321740753166920483217000867759998522453305013044871239228596664166435775347570365088622656710916395608180263977015637881043650510983543719935164433846363944281215461552439193724314364039840868014844125750197994317558533681342799102275922341017976512792283173532015459873790431253705477069781741518625632640026080819947366225286625151790583739724024949657905062110962265656796423108741741058043517188211542564020215277235499517978084714216417022803217667083329392322907642332673753380563030701489825916383272647753642248325233247571138983206982439734775454458349382395655129501464107536173143079558823700958520399794094089104068872534670232733214161465020993240186482647146155740274317308667296824108484677150516048410501720771690850339407744430068481698043442469098416410823428733431815979293336299095768183092318412143528322571303098735568418393386431316986825763178497052024486398300173235707556814261790343934133904830126233779957905641912875373170215737900482506674063140643744926307356353222938414809734611323006188726675184892659607038548698305165712067162877096351590203914869236816985006580810555886963156160514360474071579471385833354711770243979783483119607149408362569536481863806155444118726033961427040593750202279336476469929742389321523891103839418821434214450394623508931346114179873253911943601676763148719027162626843335224355420756837708357167412130676232132718664537466942736885544961891970692601208867501749108858772743657470479360445316295369013265478312727329334944243963518729544158015420892972682346364791972391491726222432169370154821640418556896836972151769854915396551788432583287863287690736953516635651764757665900749962921604172862126662813640872648086750169348904301776464562037084044905986604642554215182962982652508013650268850971874032062977248764736164402922814015905304765196645613442576633459365773656957177130861206887179893460712855522248400195146347318625057156007014298145892470723520176053626056672868567478617304037636475578622428193238954263094956292800925274110273649658035567552505423478856069554292897631778761649911210399140511385178280677215738442751538962288548286060376679404560654599052723487965900481529828459434394018539730529218280633639547012889222796924171453865033553608851304798573790564702310962571766630512306157454898703095950825454782187635301089385568317109789463949939902600747899412262467769552792534623368555879919921817462537175559727519215616898119764275470668886999246873247523067959049487517182676703908871524300778844331759766377683639884084647194700736448256898440562194906604189246607864683399101324705355340919696818178483930122584391395543549208166653045456416748597325017406556625147138848947235301966608573587597227499488857754925724802830570512680097219467834777847194059067089870572930387696530243507039586375815411893005360162736153528386080038723700324121136043200911428420512628917931719644341728782604802931551030369044209891920603560934759344333390211442091280826631851025668675744280931741429736506056656576676118495449831915122085156058080334859420020296413061930215013523185824094379035577750437768995168347922095036665847259057084559776139287078813877838251026768069596941637393853827649014139797623524996334684917963863897695363472286165561572592247120689841642231938502912115387154629516995405650000892753162102427718437673743826516336399551214388914835584746970236508813250784510081312043884645866435133034494985934078979414814759767338055704576543433365098252579359282244064447356601731054494235557916467261454267144367633699246248203149088909231505632917544008401816870732067473723093955982176342791482888057888322011538755080657632493410436725497445958289900306043162146261383406145641487672203359149528620642493168376032405410189884859335319289667769605929911292783489321437071615560956911956949565734619168801581548607035641910941386305128625257603084890420448826317810726447287229168498917794806660865408859275725173805817985648443572478590677019216716235888922961559529199106498876459423781433717833794750457489021429452547002286188525932500018388821412929176667323152736763853770640373482197792909270771810118442598288392779964635710742205759519480984923830756098133184897121168460928678172359027027250629642006300549058052417471072061720212521498286465812081685546707566924852229039947667945748724032225665417624309586894875757495051657104227473847163909664867840341024126533782140191480652184502361164213414015800886711029096634098632497004984083758855086064478530915170032648645269017995654460798490390863810863975764614897838341240204857777928220555731014424848385014856711373431012300613968366513072033898965313827792700098777297660040513926904905379022529452531961516873728500484813841775886150319171843856374748911469466895405283701277996430278935206338947929035904742384316940391718353761608905045837892077855530244151871422664478296572155988415863162795689092113522489826912567694370358343583408109429004297067465714286110581064207100518102540064198912509713366044817999003736800898349908194622426473296279979493730499501628908464574505826835010003103151640347596083419558621312942464075042624042997353244144603811101493968698051057350597176775413449623880083759575330767160972041917693713906982282627519653806482374637670717122009489376911376040052459017963913358058393749644429373086668543029313598318272456862554555306419923674449047884193765253909119109275935662485447364129693601853951842659492705580324879609382660148299464887745610780084680121580117690121974139933109800761006028369366388925423155473927777529103315528074419588383672449252424438011243517707297436155501121754697283337559023007343668886072280428409677036307188679693696220122171081646557941183486946943733480149235498893570395688917628360967502686382996705897152084510418963905964153316023640306874659667116021904262558837081220152998007503035785095844639107148201792861253285643465912878305045199123465678027367213048751124052608570998405575253604293467553377380852797486894847582156689576173211976325373953302710926469771109056734680704237922049842396188480208471667236716736206423487676790595980232779963089661039033651654330210456026485516968722670097135140583747606084808864938949259063492643583387189410274554294277421972151196716999467824127609026164488391057699544596209268690018101127589415176027254550322187522831375931761586246901349503540731784533248934931271663494545589333707807226663818896410027509934868968740696691305651925133043963497315235964502792150908038673630600931004084549247406780861993361506013783404701114006832942931932152263630543965676544131187196107237412613850912965526022605866054634173187605972805393545379270769754684657051411151998415974325293072695435150309114679887967353983779136126723734836404785364831998723221429866825526669228425275323464929798249893672375355650195693671293708199924857144973737633150135917767947723832582468877088923758957275060231710322296716314955769779979508742055749512859315226016731989995069048912414603392624641121217786916171142930311637869086814764952721276857575235072774054899833856044162607884934606293652413744179819524991525324953862150313605097722547060759144390879983913296009472131794886923521000573184973677995854931215004142653985492047144978374352184100794948972056975270928786522804994871607696560243221651874557720440627364640234584302124604905312618882206687641042170304819671559570552207365086069584410794573570191682376761492537918973403681256074137213931406230008771670186601545643966870157831249725093313355201342666854732792080769883714159380730122255213492174306789209611641685926968791770363934031759361853809728476331874808882044916644519559864148203598259702474384641840739945599476152783134807291625980137567613678637703321032332037990827901317995806826051999448725706944833875706410448129770358467031259796511981645066642277572568858960006916232265655557471099302912307524191528832921353285025689773653949712986596359667906527223201647022444239031371580683320929286391363171173257017778525806489855205576183222884309334905885655782473119031383674683083133739624842958061315431540018716939495981962617072298640798192545978825833680506826705385878210515629077774283232965068456099789977667053927880593281174615601810219286852115901328584643971051055083935095948175961954027063516368714853791213545710683325135187400327108694699246608724799086252035600843637335110674760157924424659989434575880371464954768262694885999420276005502112243405058889487307378467616468549983011850399756472114546793809313754645531339499490710057188148788627115878219438587810643434170427976822320671209603933226634631809784669512729202331380411079967592771659938955537510640049301258271720201220972100808043935383196139232082188836266265930965397193970424126877322377323521034177185755061797457131945060184055049857507823086979791977564303070080601166958671318396180734142335940589319724881851665430996707299998996929173100342497400534148222587312510397456999870657082460853317751016831043515781748874491045956846579564509211663674311590613794585228850938791296488259970136863779871714259710724076085477006954653728166535030901616606178449543217241303943129046997130144383168814316846794186646540148903425496871550401495839690383095668738591090334038631299477788233609937409631831325330272229538239185402998637697341557279075171965686143115201555311685057629475958115514341238973414551218195671794856214033337522363197479316878749396690783738466779770484599127549538020476843111787479082619145396284016009067622269739629733342627222602167111160987177798527571210502120135575042483018003144481074665460748753634651275291997823780357964171152202545169472807954632926313347621184170532899367511314960776713352175423725297598904793331187758816852712165871674571981489609550970962127196204131464367294862297960010479754418896837885286344930218171973725588521224678665374066336921253646709676662286040248689938861172815021145180134880048781830961113486310814985016230756036503579785061511198689236629852826715035639020996892387344010626113520434334679192137935767921239705439150043656244933708770464771993979814384932827200251709299899798577127977154621220313146623693526220908996625848850460188155433625600403447170820402074220633864811420761610673383718848109386722201881040070988293286040983280061384145297441913367503669767569730124584544555990538329874160518860702059872731903211616094015647704762370823569439657472845231974758880558005148960746573642155427693209768299336344102425589375739347321470954898524709942652414441955533732738964422560127335150661507642151024701804212920918687215958234114420641519467280723239985147040549153805092953711151333213998838781542782204966186085575802298142698975608329890810048331677153362649031655549543737568558269620211817098426811042238200440020360021295733817716648846925114344718503796572277587988547126577362874432076158646062653861104238070635592726623738449275453209756482111102798041449375861125911091681197862696388868685343223307822125663884615203917797451283278530113533827594289972602999155394506953796923190731151548458559271637023780099890017105338475323229605174465170395919318113645381134575476332844446374795972469370685022300621269932547055488007463388408765311460783885206195931509972871501227652984566511205292277485780752245532092481637115003221531682048920244191087608603112790050750330301193833055390218630074562293425901395148064988663333358128827655221667155478211568808473064843097737976885837795902389223701653799139978240400628099350844772409109311721424855097838777951266560510286249701916182678152126021413292186188066904380645371166085507831398709791111036074010316460373738355089443338705140513473197414560830171659376137139846331274557584975410080959194225431142108302289236897946787896759209303741849896225213383208931604530707835462829414199284192842890306017499485232211243641078604808409143622319026576835658914133382394825081970800309934346179546718204609792039743606314320334448099999991117278203721593057454097815316453499956199913009772381692523304769480730469524474082265458867570998729663949965867783521107616853365702193301103987387314792072666448891445844148911807479500470530787572767995082515180713122962627534087982078645051199589683950678871398628101402182971619796094089188151070250675174542600379356028629393177294301174401361840393882453773348236189059660765431107799182964675275535943662334345036012064129561398910257677450405043913749799874376999324843008899599782289829753078420413273652051693863909666561812797100722833701936190585369346425238036382678853720735236464808252344592089421683535910557204397118637247431944849977186263831629580973818624895613676233735422332651631556064517358828498022388053616676097511168946259192488658992296935509713841785077813221208914280897163199006621343167744599667867934899258162144367752539180937498244530392649638838379169846898350711458880875237525819684166415518890627154235656770608870164926080697302317904841907703400136119859506577831201288507847514997669358470667480299953698380687585193688252630681513902021202178603635389403123871675948773744364691567918404441606655090321280227326385090932616216817881700719553080660644012927406608217239044892795002131908822143978694646241546912475812045016335101708164495661884961418767074905762735119951610339464807814821104851525352569283413417388993164389017925062367967843736093339821882225049897555137421400515038264392588655430481435221360381425206641250677496076825925407279090461384094460770130005252649582911940008164777903498612241078533361925638131402247983236164179354321917529080380029387888483948237168778410161074940906994980974341612845380768764534825968628705958304466995526431096570276652587764646693165478699914828948903331392058493339336271033580690040203854250666351245906590193890254731713320100166645150315587190430146945739582316477316788928139074094978407272875059237470512376818415904400219349182311357179931833699696406418894853958647816307562943337142083092052662176938427720964171619055508140712223010742090569437686927866277116918178768453661101921833930138994397675135366803408418946879494168236564577110136227007377499625817826345142904213163360656977621677403011408563604037701656460618239934233935504297252979420539932262711077891187682277913981329182805513724447017532060796883041661879054803247531001556568451463194435396543449697285855312503430608574688398606607265480372503951560680078406624780705648811397212848845138393132183341349191958763829986871084659588147401520681355291945411154778465815325969006901780261440468838244171915063091252431198344409971340968169610332735882816111717526456310950050621324911064830702084744566815329488741715864126614537749293683734131678456872806910296403382861979358180430778288713007547166725457677224243175060845817405912538281373935171202709750752877704402903724157774096730835019382102506270957604856689528112531525260763373280176322369371670711748880162593272689134551092928507824951958762796044889009610535139981969043403827715578601003110223474356404462723733466272499267352678542861923197836606388653660712423354278774445186266350221536605027476236067083281119980314590277794667554242950235708347923211510884227745299736453745128389897143445000614142438759076059588448655540210860425534774332239372818365195839946352939735204170806341167434166294116177800966557479605431278043975965712971956639573240469505283347070143840444809963640149548678697489987370682663649630175164961419423406200105794940433828595473604870471987758528641522755275923322417649870541837575675801029792836433859794727714096829127309823317012304913809234192549459290492572631585398466309042142197497718039279914501720233302018150427204367051987278656041869704970932581079375373006714435189837430445662998656047862085188605108888500993512749055211789807667055079669669237300413997018503908448346631140667520523271643194894250188698308822579501693040816675539201006763495146718099094667526259343487511249975734104830727561387219647908638399052295153334054385792798998709923755358741959165006767210784461839135875352920960723577702745875226143161698979458501301972114327288089865803273145517009713830777658875788922454312948066844256013851865943300030287785807970690342654447868423475584559850774784901122088854115623689339438102723837007602186437899203583859964926558299284748782575837935414310380020229861141632133592647756007274520695988278604233547573143904353764814657621851259603438135888663226231125389062437592288417351249084420232215316330179484738619228138467112667627429206452748631736374123399479038734972181988385095325459038511067914988777842265937311838064033059818013608756697809804096044530367882783869264264934231820225309437241836755214274102865098586867371546660267608860325408922161517768502589227895924575056138434663587275570477705567547740519547417340758646330561185145729584117129481301754316906891562548809706143855314246570473920189318655576821363315496207382785455690458613518244323470361357720234942327976582280644066537144862195912055854982553655770842807955824041878559972889369618159208153851144914935653051886439318218750525768680468006347327783334575394212647471636676880845403777670842147276554327720659069897739500778983019439938328685738346767065901849259519124792165985133388180474830532174996998626178996683186012375692023114568389608665413856430906224720793941395054285467226134052869841184150027432419090372513471629495094351021307423173759475990952495684206728390115437182850876041447113138460921364598895173851456779137883529455973981252642776823258210934525723118111092015198056096557772141436611918424432249446345434632813816748467972131449949617960070540141223212686779354533820748767407140726126759424611475097969725661308596326663703334502703320533019946466973095314126366789838365771351201771210256221829070644365199394724747865624230456639533884071322579158959521400892715381994547194960022838674187898011811877617968233437222594573996442183147966559557212944489887797177975732125926669647382909994947436309233322750333595751551407877271620858979127444981587586821390062946199770818387004447696180072728231739846658657028196954755433688508389184082520674566933655742543147243477395782657790018437608678974531322769223863122853637953603100872228687410108230110539673031313339311665549064760010103711180223232487741097710117557198037676091857247262781462264837305977631551285655198740599660955833007171702421103241523087428815490890422146136537994590906353143170897026373226259160413308623886010276244068363186698975820717390435938317142108506498536839319602167687556091965822636095881199251375175086878832659923210299682844613728389629488944580562545374362131786378939603674486613131678905534902240169870269504193314169229956192187747034243553756252913668319383282121711435609645051908858701225154434691718485532522924866813080052980170286648083315062347240001541148191026102938716727410952497962366179550104339078186326574246305690977876078867973201491767114437865949900126670561035388982849075020492646049121923712270098169483057322778259271615017473020653133926134867031742263770407991109226805242688529449224232658574765397726512740568861586666561874002805475146013458837039685674575015867954395090091780584809916885295851571936597669362745315218170118716766109288215726167451330834747546246314410222704193700318087213337545676712892322449861233493084652152624891785491924762882283834243501036744708181251992241899293749555081808303434361504787115993075910812680946593816550691631994107724505234372327202743176070734206752806585584993270711272394623674735995706000507669564629194176302506389233349677757219165134633555263732548782835170484609420543506874946369446080566231918789829916790827484733537111782761605680514282933919934935203351834754340840694333848956184421405373643905094204858991564105640404885916948469502636281009656541701464500188817483019079006893621907703347294732696173099723713558335737202874898618162120891668118601695270354492704322157916475432493175711300763891368359179048135456913582308379037000043898523465372907642151160596217819973735000783254305870222451092860265444203081051086440711554982391065338799461373613532323271198829060594845138912991359398008199244097826976545204187883354086429556963220091760039950512820453974923502766279385026580439191431264860143284016865590752394664779968147622947553485926955705627224125757853333537115472210440475681050279211014514126205683528160028080233615657390932201026715930768140911355188467978336214309614272423726998091837886884804450401138553504759708175588781374476911455300616835952527426014221253684955184212306138750142496676539911210358664482607312413005914088790615578531436900645883805549029167348407044410431168687231245257654101730108098534630097661464757498753857763887075278162895512424314127991335484458466699093189610955936325149676834962988890302982242345074746075266502790595615493476951626584933423123691115377033618933375281324960887317859617566871052170315078384152010185330143029276269455537958980620055084931596821595262388123746266706929991669626670845039943220979409071350391314887767245825684737278518756368227233294216882544791234132086105160912825979732085171078084161669083030380735936631928223045943452207013687319087368885997690854119964627301570512740976135992721469783049807639640320970402576854246928484796005546755260849974717752459920223832958784883955173634022312277008841609328596691885345321784824262863375544876367796875997348731631957406899972143384412315851627248144510973592421418941550534686694576678789627719936113473100522185801523848726680824492814656060244790545227992253584823268067728294479562029248806696002798407432732474319703188135516787220195683172517643982137257812498005664743325141091737487699241298189312939580602327504677454425461612579438450356293671725196810171641426514621521610358401028910709863437858874280210555208960953315454590138926322424076944131673642838916375403899417307349637000106913849571926113036060563011330815074751742612708947444870234922366135812394747921209264379610497708982107357743865053033295111415111310260798711359717033005314080467560576635208632593758070664697592167658531647155226295291328138806903149098675128885555501611578242645862482736346458050245758437955829862815204509036724966619769582741350615509246923994272311427348036686313685335836449277174162370695270291527113175694704055403993761880845522936596082687943736830781943333836563630126774254201538558615971370954342344525008750224826230628190230751081125427089685155122639698003465641819767460380080327843155834566876984234760445406736570793332911201463468573168183280820893098993914535838017996120366526041607953315031219626315241607776455576565429922593650527570155358751731161472934465322338129733753995170072322283940556587609961557159868979628549145989849485872434772492980957032047534018680543275341829514848375445620674636481476838429070058763229503879665042238418208666704901648254666364211043279063035313335534635637326083393491297586362678669910124321578689275033278186111856091928859734313099934755299179794449733458220185785741217422212765896501493466148157151530248474086460123966696495369765458128984185055928634454733291854869398804415580898595827014033918453748135167369118120571635898576286274657035533826033840273702219434068782205975737289352123951231028928202852441489265682248011478514873146232779178929652405364507449072428125278848461278294319976699738020562029556030961379394962033602893944028009668480118008241291399619858853149187290486781486026830713597481594784497834554510940577531674996714925301512456507619172121961027490844827677110686825911068525527264685938624149308393418122781206518075044017983780338577644975390955624549467226874437550075870686711255253899421311302095113858808554143186827094178875283991602389787338840265840823215760942605696073402892972922780407858148513661283596183413456087714174219557585704601617920958488540062229904419361119603572998570232491122042007703398266550923589277076393669966382711210350941266698472034690288436865665145529015389859744397009637852588323280683710596321792000218990584605127296020980285878570171855674873544647454405424084135247160829467965699800945049855800016305553659984292926370402903084587558293254587299139123620841088702718821046648072289108488745695042522098809425427364702420432515768514270406868071471124123934210873043912290951682002272693137365090252375534507819296518696575352515019343547584856223487314095412890618667817465931818995504049054505380876105111507799958800379934479483587311300602690392792692878894740074833526999457781083996310556380657511096514659771540319179226066628402700669717192040978251666292265224563143341097096047861055105922491299320108159038314474288490995035159591600411818699424239658053542116687526042258588208854642694285482744831573296630984811927987745785463027358789493535035958590935501676931104928109855459572176887719398929346699710387975812628078031227478377282556120207291076506918097029168010776244676870217561052350624383065952444045593774042069054356425873738928061173028693393288969157406329682615967810959486083538362441753520738402074753951601652320267291015672495207562864594451654471400533503127431681351158646344199777814279813676554928750298353048063370290917067423577646985463575300311738749133657863630030573244134059914225252164843470148259901855965873042641277001692090470282971662560227101846870859125403168775718472329913827540090960292451637840346750849680145669665415993430144435077699936790816159260454489402682160200956270565124674374004270114810021199760699186467675966906107737322705354026995950723959126145715993633252475643432297102847550810426027552631550753516897818900540177631072686399798581933861861152372952708889857138059919392882233851782260962372277190190825663349941447329298493566810877656922358183705741475764410181525733073693980592910521430766065424583935962469769397414589362128933358941883950198653676711388842319050868685456922520057734787225308466701405623517595952648376211083426680686926506875060519781624850941079677485861933548020442799539133223415372731385925711964091560212713890004303533970181868699941334289385805261831291419937259078574050153697013341386947583978354958879042531152205525521371018861809926299055641390728218246316263766028480068373945473863058609533770296762163532919535311739890856132709068474958504663376647691916885331048403754277946334673432624554668655561800611416184820015288357984277629272732874679380082004302752601049368593291001408400277101057915171424333086762003537950028670677730483462144867267672822844923252572515714738023445247870426422318007423573428881804403151476610563492404722327398274246558679784907717303599564217453356943752051001092472689066762821031479570828671211444132467920558067441506932912079025657033319828819738910996075065758580907914371546129831421682050584604464781869641442360040423833612476900811535387663493074701636048513917629712200891180383906161707894462298642024587089652913935731854855787785932757858590232547491223854039891057480882367247354310548817072369007424677585763314728065879195179169124740083705958005618670301390802931444482835106728112674166686628659911917046378635713342306754026427520408011891832401097446986037448957323545705311209520344264319974214609628961143241315038085737126498876080623667376424878788560099758620115827714069553738344586345775605141160851069121770147983225814994974478388317238462479987078624454982091733192228976990295810856568769082473457548758446250589395890239793749976563115422088575080836919446063610115492682787620596402783317306039168879741530886181306062151345469663053029879181797991608180546445682280721302162617576325819899053492047783456671163637256605165985606132295088039061782281702538595532407059710755026091499638958529364274447249448483436444007972575263226324405491844234719913005706548468688704026543307341657554087123667649643650810786466064485329707402328929037968425916119350126509398752007939706574774523872928412226991300200265797218009473081574112721773701500012908357916972919061900163472240464729833543198652375099654308082725680602860665440132571706811477590070773740307157460534575887919874247816837407693503088216638634830328685896079812224527586220411930974217479006583589882448831731592431583783391911711246989396223454699978960986750235944070070473093864224486650128394083677523593729343448538497340764091216401242903515855513215887373278429192235113345114987425802590903777053882171748701128495054295879708273938550862766365291853960227173790852372326758846305785091055903353385690521816022164874219182060923182037327935206415748608396934047568003137550184082857185784074860500291787840458307923054550817692215517670162523747145424879322381608051476564490312997283345454689229557972634201741589698854235112555212522660238057146496746436503600274767057696340678644692184859991035682508263685960967310354302435530512821451743996744412738295153421024149581857737601002573644832470002537747585384323092676789410257783925324065401172808653144786933435288472043787488413950663055701482721033530080307043293794814305984964798412295416992773542873677520243291759541870095477568691951119747204488086800465241764916851146001635734165840227153748351696680690756110550934466264015180528378789450456299383940389536399021441919126371300631191876845906615140669324238390884548586430394093575056804394637563789057959654270929916501920823469644217361408852060766398527715611278572189718675813704305145221488347208482521118901777641549508127671973232383220560044933418647345633325098807404628042193995871914161745454210679594683127942723516678294137420543063843701379275261218016890479204024956255677273464618377970129825678361451000362825659296558549975164903068454001714516546082185846571998449213895430485912843099906152578348465064842474999775986299630850612449624417020391348380696965982231215866844214312246740531810702274143182505687625303217620814860976459657855741689317534023977764297949306845211397174027948645098304288113975479786600207065641668074872462857211227442670851425593859860548453407387487346664116319624887446557325068769465123540730930336121861768436741731007829576893816334068960446410380229632032422191633718651324122022558934495763094306069414330903133398683220516794162266609615347455989725122250412692988702755079403573792587831043218869812635507917182006883203867550808830788294928211829710269645792715683475316754600999716578132967518328911198789156842538569183522584371959470450567788214887511043076788053840091923451334741874443920343064005560228585224166033703466348250276590965598607529469031938712531773041408781742622151405168636971509915566478592069085058646776421404068725797715114442425217003146863275896216465248656631569265713404235005953128365945416811747695709551155379594176314690338541806634157706283418023310601199124108767338957876112998958121092571821867810395706337957138732435344852429131698789741070964546283487238565881656856464390058080832843043793336728130839573972565157158352921462817452443507222503725590033273735389820178021121964005918889792867355950097463586575001131889069753248703822632265688677029001098428819882950241983450839319955716823367840037246388007551865463015627524008982262905971118842791322461087230710502969481735333053857261036546077974366433976868101995980927463575070710372806061336773458634983382021137947018442930414124867692096649030496837092453194939971503217791559805666716255170372473381861921839243531809977108735104727882388409990964897797554444168358788370526953248985287060501499647245262769697903828972249094095750969553917014425999919910194216073703137785843115818080170651318309708943629058444265261911842402062186615044562629225084990555789299797092070679499371764386477991669086320033207425775137469854279393495179544823386300717870313851957075605675154682708578412474033259400584350256189282248292226691950516946685692593518775545440497944279357666239332624529452260414349747877573056537700103563987464047212050708494231236899804560632460686119056587449111800936469861943757112739197782169389959344539597703079777367833477679232987840748181359990197414067509819680106055233211629745649830959294750545777738527575877823928263547864031350991674607022411765645955426454727854618487230231804460840361074850908016428561217603286508088051548335059167047861387562829526763510799240768465214892820234304460218873220144893078636043202303757726509929402924478349266702805337159396804879854975841656471427178152676260286347730350323180558032148723890949695023226173282534159728450028293360512583046571452675116277021596600357487670802994752679862852647350434753821214324554085596492565453049780644041062868982944108573359861096226484029431272202996863307214934560517001363564021836037722352564288826771054239872464385442906291096874988698064785736660654729192897006091261837319822391404152668822407720845177314950021080318394964640804734602625190424938950367010422369449265704302383602753039255694637154814518553368035583161771356297284763064711608259184738461201151156464402230704704798428515392937613640865754904445356060248385125095993264171700571633302913538580226752796962824658601546994820502414313215302853621528067859210680542552542610367443477726710230791180488024420382417274196477132309746773147466324361695247906613262066240210337310968274670207660542396856028792827042960733891736174889248628812320913083864179832171026291173945268716314954320384386250960575362787173235369044004257801383799695526011956073932781792357077706092251248732563973667805443992504075591922039073335923799386599571998223737199117016709090210137430469253920696130706511546317403274596631947120023799762612309976945630175194014857230730401385551327995788931558667000653804593244510046602035503806015617039758233401635583656041765006358000121214201599663806212607820139927009325539571674343204645077134999552627243304625711336228052306824072127163472787284339310409993863344633142994680179003740977426328768997135828059481485755434231020779260610419910115035912334449719248286556764702076125540485464746079715851663339689381154761348285757474290408578523323922162555705288122789074123696469249618335970991097558747908928486355051373228744036557824386840636935900174087859405764565833485650478146943444650381958802723963675834270867393217379896065244921227016936212519608643305659977620748084481946301959585676554875308754321161238316801015101262748800811917714615160096248612037294615119404260062909365224149572985048371664377477744079492324455783562536687190706700203614820762483235784234421591755896233570503400055377623469095832191245220085240110573568235894035468094340716165111706797316950751925922499803275050513676777653561545271848771997530341969814461914990972635069623636161150031897136818322297329415340360218339239513815659881727114105407683074607276351597705821810685462921048400550368629301674612707922193471029547063923800660690800605807455678914045713149979847515607353493899038996529956650007312632434348422825777158879548902951597597756177416147912556017685972396359477159056637571859288197153987864397621722932810006749472640783895908849526305669337213405151675961086154164820616932812061686386115064867744148563639895587955049025074485627368098439667122153717038278692583658244897261930025942755010415027242192918568063661132006254089509484485382634084539569221014509170114000682443420310702459729118861536431829679606454378972603708109150735410109208825629585067558754420084533396259186116807677518353323948873250550523288195310602313598284265912178647049736733577537350123890850944069011736426318933725032866239299551723140698536835572992902996978763471750269766992240278855836261199868723580444704745201356777129194118970169478330700316434399524655451591303168996710755277566681062068660162613969005738707869890530478534536152717297564147988202243349882461582176143599194683671673109057968701211123459583540623585559132888339911732080628049948448033346171693809951015823379986774336005241406763594096274754053311873629018819097195399266804845792552210548074423939265797199578192696788114978327293381536219762016806467193616242058384767885042284031540839170002210020869466830247234319122280405903144588432240099576356930483371528802956202003610025010164519969685514932739899134184853643221911088106399214043212827461354927751533997295474423412736659442501232103776522721650849780393764087185963355063395660773984525695279035628164444729689335478992506081122521872205078220467748533792501142966906027199858273505399809162002413286097577372769999111697977822507965788454567657434466412394598988528263429561793011349301062150253392040726179374908526443974024687926102253200859016836499675064388454126864796053549607188452348527337681368750878216257480368295097350049305716652719856852089482208633314338714628190126878394627411103109523128027934943743084598609824882124113832883097651178821021351948704043153428676138000723841503591732732265683803986464874116745323784044304199390926792741661877906711851823798296418278324301183596411609793917283013722069626631427761779101899415129084930007442265516442372738861041962178280037046418226503383061120589340163044979762062970203492645958454111735887705955441274033769359945593521928393924865307966840057631120861406894416213446683146912340233146525260534439702669252078022804381039549683670856749638636658741884417174138267563903041192190242770165446218489403997829414716658453011252951766604836109188104798578260998497690227607271873960141813245071096342625173750245848616898312853673504356195452250084388659778712833015756580769423429520158161832392012043276789702611659806653083385919335968514022907054455461863684164441354796930048226788199444575106547065179878130924011352607640559379549065059072794425725282066577281049101058366169521759810519987416951280217901646433019331049887478183323449509288390135910618752124658271119691912735034716547113511918973624250123274843469419432015748385224993372764345359809992643233450167874389401200748220709751932393036038807704316062818509611056089804402686606610537507226865015267053342508708125117793890771409629203864730794239922105388426287674828052430933454290041458936636460432835371748219159297268459786628106283968084610865585538926292941083693829314304272353391532238650578196515925027876106953672745568194150916185054555268856675802992172055915967180195241822336683446369968035603606667625261633776394525379279231685721829096728653560678923006269960521125096539014656336540031076901780401083796196783191270108444304921025764063907010435670309427004514704526080492203798078110436654023739935178511997486160911718501589641858464291493756569982267882926748113874689757305085664639576651258643783936159259619018052440463636755969076416674708068577509342520271902493083272915658801401922220091837401312401372848512134661076916985764778210084626096867966044528116967204035427109721110425278566732634222548665473417306740904254111550264925530539148933665922780172623751582654963752638584767187507693123848043909762526064569811420431418130562566965135616357270607359422806520179028684737438310600445450882576717177375789872909872656480663360947277349944871952059381458343729392067417949032678542018469105925484955048651732337713960209975205207229485548678534491398795585046718116793129473626399143018482968684146864914169115347896342544077355946556415901076595376709813235231005085269595488857630057509598327302840685573259903484610088369983215341800027038502753247213972996494802705378297758937102321533097841737742501597098379756896215412851835175274413310422701384321607468877972852723550759479140485347490753489743769389293685373572707522560454959306510411222843298772460836975929243072659092602418435042193237372145763728760988573415405520143724141304392453105178005172902598387324995320190375087350580739048914851683834059249953025563565776266971359129358032831001445664091543039111990876695614433973504628493260429132005760393621351780835068910087753967692570026019414328509403496164705800824319649035295418904051545700037152628738926838966171598883482075966114761937494714482426540350737662902062093556598117085177332883405702251050675839952243527884619773390380997979421771199711133378467036125302300203456535701269300583376475938066375778657028495889886640918508728158640432253801135994347156903995714872060020086173072450708185796712616649465043172522661430146734083985645645426399661743745415705816274167917370174264143093138284001218670009056918561099715139048417041186698297796864001160447426828296897740380332679117366617426703261259883229401782534130526382340564207762290802113238314781102663526963895950688103070390802050532824542915125934509545369560459314170833021347464578903297596425463320852890846320858046748379934404875863845795033809185361986299850068381412291234471486218524615645369088565230930442396602269308692372469131010991924663859498190934205321923393455324770394765680671821836341105163799860543824411486037442499784829217504841447737621558360719167316664443809743886116104621826357678542225569637477149518590502734742353338284298134735808881673571695462236275192025128206232355171934888040565211907602796348835737082613801757074837416492341895250410399253741056293804982083467261482558995882123913134610168564154266094379577153058875146877818793104689836277808905716401237546149099474928734576489806738240422631474797758006602561328692834358881805174895951525228922310578356000243580669663359801408251772115887307227698630650012113054007212116883999447691029312503755141532182082513688401090234355733523987413879175284854518142300390476169211187680935035232567380446027558935569069635241169803832972753734326908910899335255229232685053800712409262289203393536510075748418926003525550911581457732221320070185048758505942211475266999478469850623352689745015846133594486070595036574586682138545499674073183710367819401639593464046724945759363431562413524355426712323498392930786309880542839759025262308135843412744477908908496626274009989509230402018644366536696284701462152082599986365083929777985796902610357333351532751718718742032715069879479614182501788780288897097844631232824192176190923976993214865121802176231951521139121945217634882588164782001781263142172748478645439979438286688477055641783535043851619163555966762456232456095089353184419218874564913191351878331664933661154738946075219077072564310157642115975820734703046504278520535577552868906528414956274960503742454269108903157308088527664365870062442369506884763660243831152724358813239107051743225021043024964919089137516992636566318343111261272055115480604919857676343823880678096232213951749504310292027808236066023827880842488348201028899779508456175214186161075263729148726315076532638182211701899804013942348876197692714700004037040280520981053839005891741339572974147752318779903968833005254574102988268603426441810056418722031916388900235697251598025293349796338393207884881957670424097058455372575006185119036329171030171486761786162600896387077251232704084655957384935574550855100948347977568043688296359373516507985444005863786348058844011070736519688316965094726603242309090402606277142399351845290694591023152270250055514944684543992547630647637908730339992430122142921401404929433204777227724492845159724911983848851187466499192859401685339087210347082019322932989396576100216706208458593239220287218839675732391368230592891842215927060346302673850737514061938205038404048468427591106020974612375186262894544594583340035945972779488459452516458532078960469553040936534388187593141715680764042390970178475078290727507454349502172088960824963696562565413110491459964210153660877092363795493030834958379973625746912958066912649591749029782317154485754735194852313675578276929178318667508480899407736889787315624506883313976595542013708194436764706278666557185484761972208168849013173415116695118893023119289053825087910191861115552462250012788857446952744384720695350086489668103263304049225097648225982702294067612102432395536016319992508828671441295269671882670630585928685026352580407710410989926186437132411516322682760146474343566365030252889306718584482866700519985852470291665380709829302328737112090745042100865869949949566075456088135566250639681559869244860508938306805381582038857716509762945310133028207140707212438217115494198828548291096192656278304628579762775247138588067422693305377653842244394126555833112160314529372093207644981657767961992818988906577578965449250876992089768730729280651460277427524763265804270363863485653900348599803196911010132472310651950818284500198995582857131738857155494985667141689544060659081187738357645351702200267226640377052068398654843975533874738959469550390256600276275224930561515876344567757901366556378998437699808200292746674780968461117082388748366924085287211787220559852332082218813220737279110758160494053008392920707577714748161792963413202779609250150540604398493373729229672029873459662573927404644185138486944588546175915790675224672118559176551194765905745982688932674930029645450928341070957174886406340797741459246783704135362699152090980502890720568387910964883668851244125344976645170146591928760631890362322066750770555268615320476390188226371594903983006805687744695699881203576323628285031300482546260761029165640015419968855553217259983866670972672097433186211971062187127765385355601400093952045300924960258266831690487919510530166447129621754614931320531259707422868925560632047913467791040289232184237716471902547282105610481050022814200604486923122100823195530955114378079103652093192208035224024573377939501283656627185355106427246248650656877719677459728034898591896267121053799115687522095584825048719391883325254178331586947419058494948426324936870182191679205069400109124172362544727099201758445834364162080189318398051604114809876889471525334903652999103334383612399420204792988072653566473523459877303249453502783765176654038169710446747688332082336818222027388908166188083016958976817045699457862753022970719712345023680264739737730552739548290128184645209545383507059650030395130817525992668185098420763879482394788430462795478539528707702525004331005106324667293361005252377832673603182622108993606131879611953062100091796003821300064596965429273547426021374030941464801515844660878513030959998439500159993812996412305332897719458885791000376813274525950662510768256049861878971435112408622741972136044348443498554455578271657752701095369150974428487031709341158958009438998806523047435382634734860826129166520234593847035738255589507014076037801679090111696925227833345567822736853677721737757888728894139778513085466095005306294043905699487410404566041248214705044745014924550193145391528916886664370765607109372854856048108017397294833502488984560539204170547440104223119281613047454268378064777712248648817737471017472892477201678735582754412539213046588247297313820203457045684272155759878824765997628465801302510262232257567781270268378655500405062294359734252484610073247881676558552804172479033215024600981173592134203460482638413626652901728771830330537818441246969746977350942619970235298317065291607677973540237057420537337151239755590364116038212418919408586360664498758285286874400505256296616998799177993246930222272043269794582313700053661737125133129746938840861511654823099778057102140301663381711676445401563453975477607994366987200965092353753613463088846649130363863237366955116141578219674137302496357627836927050071522442612315191447862959660867315133385430437783142191108067629895705612961810940223352995913845820702932754539658234754896520630369742012805362394865402799737820374382961710596860282250367312884070492398535494718338790494967617495507057892006292587656405778233252340124384618203802523476683330957035362160898167755600033634198642994006044346316114005633058543126328787030942043854304269050729479172394164958530247765090079611629887445943873245776212065422314385847646838007341152892399377172178398510970348068937855820034855730166309672414353388921005025172136777223629153375261186246985654675951697528290176575307718466652870904026240115410923772684672736826469467497083618982127144343502763204329982511755311205056901728397964136695324526129230536013819200473898535052097100607010057068023131526253800254381787653345381229407826861899810432542365933172073478085385675192895361568980094809145866213522133777994616863561492753412496312299865483178961727245366049583603568773332018987211740808608417304863249345439334976089063587936479951151037773187931867418588958385148861225744658705264474051976405237575175068986343439094213119677278930815349516841439919156650109682117028602872556157902086492678138666540822010284785311009541532328174185608620176853421325280733482325342422977676622502697555251837223657427630284454622971126569566328031351780279586523404371765345142670601935989533883041759330607067076839009962537255559855847718102940650164981284370119658261336942395177341644355142218291277899456706275091155440028639856387083297160780387260567776631613837190079860548302838702599458986517254608317465823028889878847816448823354510463300878664996550683857621070312120152107295939647131049910733253771088315550471547195536011643430749085444772521614293852750227324028100133375457392376045493775410668643157472759239405224613721752425489987746132400825370322372719758363660090723956819502888179567579877181715478950621176328269076760420284007558220869314038190392072979509525128257996365187036536571880123867036164962928941287173170117673953869187609564316600432713517278346390398625043925456727260614625443368466381055671387596412357037120528740678473022515622616929250213720534281625180259670463918029548055944349027430804764165455831463879478526279079901489382276592221868509167731282134607134263872295977503169017828931127706253282861920415735992644105797714303808143267743428013233199525446977368381326593484295672672262004511990642565268995847652456108835910845456893608544563748493534293907345573501529992321855990399774559264756798660149089276987903775500433491790698785659141107631407973772374657070490828127010061024419196344082405721151264569291682874245637580802216950296015475198215726115109257642644532873862134284401699291260983240753958794917040159053749261231675507717226732420227209545704048469902658468321606252497608049079752830456324825950118778860064382652797573016250059794084274954367004416020947287460117489102875277622525072032887786754033641156541676294080651270219465359335542691795067883271318962800740280936054709741429690195950019731353211404799608164830879480276612242597359392893648513102665240587268619303117287665175667976847027184956194703001167538049223469257343528969694985789084740990281529299044577954843149439415713723834914073614686082899187535099228051822798135292973530174733812983937575954120302483394990821527029398562784060616425146782117744619594726849462249343521697871519649005085376771073376209969145414183911659581828205165712038700041648672090666781595457621026971358230154077895974136202307684774145293626662864529650812347679954908135602217060578531589116075773032706184195539596923187925860766685929504618914451484601041054028548111449082621619787095741986561538593235901346826928913882229561916248967323595364211562366055096027011455626756289721262176278042276641934297454566824777303689207832835958220698119813743524708682945452262050489012250461608999931809488157179283191971254612393736984657939638307383643799335305347875459018826142967632899628728108050714538475578536642724776697151252023297405089201393312335407517046564142304984059677685869362338676673790990565834798682380153058735539626725532546838182430376533065768895131617650474602247121273701463369376395459120781466019536253479474996450407195236972688008112751457113174336245300971717991032869268205912265382110870594121472886866953203846211661438914109247315782095349779958473485536074951627791111305682292123646814976572900933406619867708221802479605372213366257935376165613703696893250587141182216289406981185400905883557920835576000704535945346538314561354365413095126541638153210449791387980530295547350468589524524818624698883897786428805011382956948509489814446968251322660010157170485122855791123644794254737141022182200132082530112867317740152054515669972520666630250065835704256720451988701764677115306700936372797637258024391372858384025512529860439340863600987866489897132930172926827264846045274352839707734823646381307415691363420971706667118579345638950942118579676360363852933669583630093551137588368823287814279049982569859236150086797821885925928331459323261573960582846185682048698651183614232651046990038830668602885365819455261769991640662772257008102035695858315697031545081239380851050558507818560683599954797751802840297987501214921322290276869410259010657222452626835876340035741423122450394690447513848576515474552973267290091427911540734762343062324856620515136621319087553130283008723597429831994719878678083603396307178997164456563909031928357577333245625922651463431561598182475382865193688930554985180992929845506595199844803141918625084022918482233001564432271397603381980519186082983509013407073281663238836471708096202383169156250483230597962569563103716612141664947716216603307359761568508589629198679775373262619956126434128085871519630754083629276963130628001879474777792639086990129458206749834649992806902881983791404374058172439771139377470236371465347304916322041285189804699927659324186520749444454024928439610524898725125340707364518063888069549027860742608686171010116826909658967141421155601036928156318852164917021854649582899688716641846176522509696656141294814697509604668351117522037577236796227528332710946559578186395148955135249175533511410453244854055038443329623841027791504977682724720513692861644405292548654847803091875203435449273586393782286335309635370269794870999758401303840033639760319071977327509177127913713235069599015920573089583714135613970020112258757346086946668557885131682892959297411087923841174182169533648050901308035241114783569851704640942034281039500322226592740244881577846639856528029682306664499660200952187225957287213963340272915692083081953472924597763915755573968017896276978215313050413696007932440191987846155690632639559339587065557833420276196957585977246629637483364763565804006788424065482235364336044932193656639888242570396976807671078357142785676008554755641702673376291419441951694483343327610207110583414689849607346079899063523080093833355792336995621413229041725864410638564348581385319807040131418384136519364443776791535706601653286624341890014385780038147642275603195639761905200271047756515042691756824046354656615033743519549155845537209039446740517215791159947399533775104760692243328401154104551247714673895228032511499137360625802013127631274300217519410169518744445089938573711787939924631565957280194240549467359792311987056561814533152449478087554120214195356410886337973972012347684909517798099022858590716147095002096551332503318235616921148536720638989767779969239521024887672574724269001989073643995879498832240104103575465666025331922507891977657959553116267320047987828518781618747959700151623556787178031589296297629397065561372334427770165487913896694834528264611466340458250718036670376407484623843759419396803338470799251658667352087663642538245044809022556368357277883954508289484625768787348681404569674816463414076834941761615145230549034516730526806548028475791845746163550259141880993374787140328338705190908910331403108746154101965307221637430738942240894467372055263477348202366966815372283080602561980222792969926347302593675950352711662639707581841828887258698948601526453213790402257807391107273270397332304874525597861527505221999126406590233164556635805938532371178926480557066754833511559700504528707877006292771676471398513932706358573398504338286408567088648269053222077219458859401092326907582328643985933505567580796313014734768464671142198314143506599464033407671648952220340277658747469322268706279550604416147705402568203346095739731103438053247297031074684976750435258909657110402797578278243183019663743320516687220162910635834505950019591792245531081365604253250737901099488756934627560888681816842633933581658247433729796195136648236500516224125959382301996891307737765224522596591896843954578788839521498461926429006855701112979442349627906082002990831695448601292103121622964242711236457361181275306507631902518506558321702034987701117445090481193343006603400290556435315183227614688304649336254117994261751466313710995855939219494440794839735782536262015521646597631061355883759576673704085717889323194363632680076357435670145531710182802908909335912464934166994193483027322682208178134359197196551818019660336751427403518018259676068432139577212822395160279518515659332403412581778325039737815549365092307846588035150623941674163326017495838896351832538690732540450083690740339028562232086220313111829774059249948134111377770226431202996815457541539233746551419171337693892134458474476132790122526539284827738867540896845669330505945085062773803790192651393478296310014088256324255926493681875601996366492359032118627887646822661346569032715609408390392689794024447539417378829344745190039295990597034624059101991055911341290211191803875116738974428596650237558463988181337367316529912432887050316858559240580720612817980788355587645913601103312759015462972807567740137537365001251719433630703278340496911481153726507248203670531510624708190703552377088627220113493828222202655366187561570569005272009973534653224028318554265255740325863071971484762815643426887261562420762869803195243071916866541396171172675924629754971375578976730330255904481638864689224352336425462111048514383699742100110426714305789699503619708216741319820048123768765087680234846267600606971014349830335290306978779134068904387628022613461835673845030222793019925121763371890735538129816318323511227655246250179227278891133968513929748360994476920314780196953182947145190778853486147646010963293200601885755792766820953508116500969664480496857686115735022107879880429706539707023956794341553603696670736448973162736053726404193490831341769860556081133037875332125371815485916537061463212177768298564958269369208168665874700015649858800681628379727715157545925357254886535344537626753674895586763633092141192133069627980115038374450883120759968070742226513718267373810497556838009675100280627399652621398671247285335589501408691056335831233675279093908609524718874379559194590829731875053975221683131089647405995688782739966256431031354232623326950973143639431314519927007321411687704201401809451180052339958967051289455037337769138460539246250538036695492047440333319809825583954744138001122762211915488149697933221722485786287218953571408939887541960139911229139457492947057929025375527883337732878117371571477463116702887905334344450973907625377742491832793654179964026873140426688753410412180072130287246317901299070705504112137070127199204377313322461627988395704579560811584376131388266841708103588422129741046613155605785854855175159783031621176819228497375060211115758637816954301861507590182733147724150829569323329443211676439816270496298818481804444010724804782634943290465170843409496859535683281850388914405511003606264562459624187746117598205495413436686755993405107319405422448697623638378659776626762473087793564529720168461598610456337889047842340683231491725094777544811251848803441050028907493859233812314803811053539719011571728997241087271053533328452876400156433762945122088108387664918926861614273663205150091734637719071656406621345543943359023880485432324160845725640006666846434772630099998975814288665539901707390886765208409131535469362841780775222013086796842774433753451534392313923447720209360123346391998194851189631082813974624349321414110458595823886486997074819471551404545416682390556250399110897083048904181617941629524423838675982994522237335199277895526067703617141244291847879179739979923675674989177931327353708650326627802625691869903270765981632957359416436763834791962698714539365145631831813487562244354727770190530053059314360849068251071698192625974795787867613059952767754196753015925039302354993431354738546569317675707749196784436508662558896381058433842069223564091021886270039948277083415910112749939687149457950994801672640786978562543280088589195521961758878720021640677797668810756420856217802393140798473745896470193905912155187718295329052751880421313086159230833515062199874265003027741061483566570218300502458943672568402329639847799317485205925584425090376836243214181067898881987867168796170462239019007910270402439345823078672270157757401984839439588717411612115733124373011584872882038702835865164975190179399310810250945317083585708007981419865821479717326079500325328556051545679466482879162332641473534718142148900356947224850702998162283989919182545165770858841695008496705958624964590106365483737332553521774350745706497343526976638243707802811848875012576973449649298794306787127073272720174158802503922617676549878112803892583640225723717323900447162202807718773166951975154427915992800074001944120196965077164242910171691392286171503368274793166280543064755305515892070026960685931058082710366531472992232802074717881625117644162354998945790822911720565254880426601667858558086491020063229855295690114343553578813916524471152966250205952784831424627481755503102288535176260505108453954139029713649028047798099625267113681972696091255431868889202565976606107488142713858030824210164996050122561155361730550317784082790162338973919115434248214245725434443871905469541076184213486285431495008063760390186142668364637036758344902280236926220320727999522101830555176371824525464778734528029810611675167674162548265886587029273562544148398635479125050461816584777596914194780289146961599356973125945957233057451510074067069548240834777074912340810797304683920074396505879387745239517063256156760746038604833759084822196147858758629282790575351325729125329041014738728055939414179173166608583933226660992587635362457886414630780266117723354076471380689248968818572093099272181085287827942736498672074374236652917658648082475890545251410075330071894548829266941747465037409343720737895815189380231856542887442296829566535804848606406050660398002009703149805250646641741542086436793867099044338543367583188520849282451787226552442071052961165953345945650754014444188240865983297998053380873829488953303488233745503673794323502398394481842375764567071836984449344041542627229201378166279262506184915921702494164788900392997892433804563656696149346355415462244784633364613228483724463605702588011345757409186939886700723237380949244234586443908635053222556945155696305856175417221662225185324054435140433341500398687936454499585833401094354941946757775103671634671083823449584961590460105699100337378464578196491134004069525232745983353106220142241894913323805561354880968546879385466548012541599383386128833848833966601732728793359880551984838106639614339374019774630312580998865954532915695703026053154332247936347281545412789138849322755498923354571327157678658812892937870481415058517081747378205554781187694598651838634423318507416698356294037072271592806181957498405792466017584772623375218414621517819054551044351304998283596877200668201087880109274660203787031703486096850466082206078068733364898840505522848542985859952321231070064570742174500284387799368584119839664718103450137901326782757861430041361899472416351060669087512401510931116198344921828132935954345287812609796667598661822050203985238571688609060237791541838147302748499224439291139635816490206828419161178109460886480705422129202799781276120962553253826930498756342716002433748483610746779711932990796582696931999885423429874702331117057287710205819067604526261076816324420484726569696028799105800779040140398876866116392906297451485012115604209735963610452552782525277826638370996739647022248790069920423573203796675406828661296662493660712452485968885329335858159385787162179001238757426488437069508997886917867494664951719076598091224478125866215486341356478935157978220002673529801698820303953248553642006488978928442031343162971920649351967733997430069473123439187945900233632538048983158314582331283856636069369500141829272275729754011144829100195228483780887712880273966144815180983669142960277563739173922098009266652350694771071853294227521163888711523330345050280739995497580270777884585636615720616789505584336719416502036330204289700727513628990756506129742598650368955495094997458591835178402448655555111664098968315539020800095614284436325491565487450772040415236789550078696091676212928639712784030344594177441428165825184996742220447472013416272479715968324100862049684357932086483088268801185348427108312703045498343562154827587448438599808125165636092711675553449216998339068413009017854251706935710292190322383047008330061534010608957778840409019810465063340488273706863707600752604414658142132847171923360473622973436266507512907787461642935521701278714183012525675084655750863688721142697886022073862779314919992814277493556189704268631167340117920120741159601451398340340915760829157127240856235104527489295755061825297813346240567114756359103716570181127031802906460860570033836033739386388772868508250228172549639244529923042940677469483785804057929181579641540643184241904225720579622648598912684748413447239813704378064486398747732171376669618907998068198206976858363783750492019434017558116961277387668600780625857540355223653299570364984696578259451873775762005378852381409713036449651300293506719351560981340729459788415401880851631114970874814011254847560053857735384027459022756461604943426686626460178268863953974362142088383496586364452896684177313945130327520151775853545114413115074163849183410199419552923214658622034019750227035591587567896711752141561945734880219595948003595907440543994987681516425917724536032575459330205750578947791045845785268307638149044531057639682602194743147523294006308083528577989239415028003955192196569797257538668996366092652657796440430910805611797267394559932569555337166274684189540169241613226702269090296758869432032783116773206147515948698470162675176592441208430828539722248902219801363739085819063713524668613334565194240654906484186765790460595808638854266403397662649305238772116488511117570748463368674162837626793702190236219767547199281942290790930303545598017638144661187550590014183395173559411068810445019343026722955410336366834197987267579700474839036103267465421095814125685224248592565887180220676481765012783213810266325092889486167870390635738490735101184140809083451068510444527482440580848523674663598236248391020903246644479877302180108973721536192319367699508076652835255374341281952809233154891236485456737723562843351622304532103516236099628799771143976024948497011071762677909233487793170073280312263582969385881149260101291686704671092388214025790507786318624117893231250269544380436854241549829674908319731163818376619571174753862601286965878462432423314084208182379191070080757697527578469928024281245365594685791458917939421507681548981626794805041037420435695494460755250409423762849335468790105924854528233820652474756686088368337563247006584693567728610076099151503549358780940508394476989456215907099890290834639811195140064357540343794784701397638150974738042591142149560275340388796801788541620467479034108523786296429719083521180174933019585727910096774915837779395161368294741685175809898675949373568970795703511809637240234506741257347174163738684281127616399670697707811164901178996988093408562935310610042708590726288825194743132316903798756022199579046531775705962452032926005980794325959305876852004154711095456363648732108164416559852122940174409110095876181379112742820337926394433557274674533425224980357724509142402207787768055624902172787561854398617366163289218572863436775750076951379638989460139892335498044773995920373799119945957522575505752691876699795399939771191870186998833788824281665593742477112733536315031844517815208728759064714310079079358648231333549755584381821086663132782189946858343726778046968239847729719803398465751111468550399543318246174530149919176376958657747557617152853733985921750357199148416680879214860126757330934588703021837304262550648454645699756376553637716581823918091909494293904712770894713392476879936144928211363312078336521452727349741832271617280502361640618361772572284098781830417434924013755318632115644543277020629328084289470706472180739363629196872708425591329968566931836210983286414373680268500202578444792524950447311795375627874094702204185807800961757121644292691013132639957861030756005221416667044994323557449771881125078436210978942935032605790724310502225097947829843595443358228415470991383346742007120595641459979555981732078363103729855307689802523451833841730906484163995573733079340819870055080740840599832573623816079468792605409597352012036908557396911840276572918488875446239688591564297864138901565960267341432320369092856578237837942668817713904967832041525007070657669911612015201030358437734243216571205955980384676583054667718197722831452877142746342965730668030784505629612351536097461365737648010853783799473727812519691140986794189664855073983197206448295565935459255973567728303140023743986761187871580475367913369380537513593476399736299761529030419232398754944557612353555164143835582401934237769611183575483701204660035905359085048041541805449755217025225899688989304271449964705147463624661310510361082078717218246162125012420469454028551829234038154799610630959453362916105409015543337711527930611293802646889181769338395639389340662565253223852192688200470929826255371446588305941958072870489621456139655962396256348335393979474005822256682268532091973461224372067056429552065835399767584674334547747331524196202544047413858799127563875101122468206149251557528609536662920726752988065335885548034263970083382554312012826297580088535750667208507596825076895572194834792112947455954715008497933414489148704676223832090649099280968420901010590283270168633880093311386893615819703469574764412336919687988761519041683943027137748062624190265373293572782821595893712743251357560540763374543404539358910829647419422808156342072171345296278326083714268005957291568855845653362911473274528518815783117971953707705765854749231687406310139274999669871750272698828587267326234732350755590407243346679273371968408459689642810619933196304247152506614413615084882007353615821285218686463552797519928743038901820882069962516134014012951768764281744948389815672003806356375364617447664903982140278455493192128658129582818509495142224591383964580162050150832514061458799868412859077794638291164239358718245922131978101843741086092987418816215183260266970248837175367623599504378367926013243013966658431786132623074568983958621929475799571127178186421887720669831488394920532518682166118053896467364566082538179340883863234302287968028488650809242185016252213661668390303916816002979244781095057564364203103155467943958786024255994501176931269066310748107894144831094530534418638323371740218316521181558673097778302019786435332135440461185121246867478928469525394595373441497837152623577035689359125899297987992084653322518435802820375951982916614149875175202216551391706996162614253288499016447012606860873817678069289120527896933667735689013946274375706777707641798385742301307030280058024914398895397589964531433103533835758498795534518423138093933500884247956252279309672778190074256547093379371177288617911261072317248697072056297128275208093397606773867791748417479371068186502553584778176071600997266809168695435167419747656581854057674369586735493155893296900939332530356811943512316901617124335393268079263187737451604429764444461160143065468204215534720205759474991393019245620076085331438561788030810775827709815737608701270735470479699596125740851591737806337349121655236991387157085905702538616624031462419045411755579295635790075700391943238473871308378951339780817582504920219624534599339051568494923446019645237955697304733983990845414729603852737707378313814014698379018179265713654404329910404591261480453157135850238622446913625244828572010003266294413126040488207279470309702092979558044177435408926609570026114837186750971749516408697259439501453567481090815309403004431446954939760466218271783534976738337590690294645293935313935736709534319572014747954830467319767271344105405877999096375060631688733880171016509847623610981065748565291891705149918900169920923343524214974441900891321557161265437297601967943317047044920601322517728190029653756488840516247936317693173665989601918686089525338743482686223386539229219186139517183734490686563642571473873766110114886248894649422219668164707668230993116577139496407610736623592337384991928627273054239713919652390757514420758793436613131770067330009451584177422137232605543297083188818608136842617070694400589690126008639881984337122134294014984779896498166815877099519465223402879019971184421975782816561599704741433083900563390915077592651505618753752803460335010978234935270796079250392301124632992104837817759711777391149278517524982041318848140126947913999840462075103033010141291080469591297651430241000613303808982441862650719782318454706629258125627804798328418076105923170120663236629690268275693313179307622598222441620415439087660048774038042623294674408518932133128252767793678711193071605949058247836610949437678496363891219333529033916668606173210800818806974339154127195227910682864704516080332840481549506754418830312423465068444557652873906627310802376326903446096957898735681386425194661762357652643690133495151748887240231465483179815478166642215362847688455808296500852756523336458318064755056735556227549357601323011916568240141515062675500558028573713681184168001784378117115020457449378407680317301523958446999128497674968210812664707880818262052143124335625471597185349052674402353686845226829346023728836483598745173536025917636159848391014903173016702271098293303391574628476601125176141700657204447530631438751826495229837541604811135497778833198589124712615131810143478061438063870586207974796242173268831298997473541871948563151561389518231687906776502263608216705034630576896574927343504774567951629574174982825990895765483944351364585803665102477079486040634226154210651204313239447831873839475469376307027232165725302194017310059602564500791619757188740272658736478327345982426285321780364347138205966047764492388978451578145946920419847277218213841327675270632908987578743237110583012317193042412861684227850780133750785563065242275479862943202192018495906495865131821882189268296884550489998681105696872181852369363320401003567215234507031016790071966110822620899513024123663922370736799750544212755647602010166345971562020195944263877182396870372201817754323757036496374593358517160181966852414763809314469522903021292283703940925806323579784620935666848106696081473449980780932427588828138027533526425201711849842860241153623274784926962342374693264441616971604941710015013290440112078561018409672427700160241231585690610679769402831086472323371789965228619842354672831429919522415607536750744256213551476192541531625683278457023834420549757096976861896403535492255146414638193431679255534714845035854255760170252209291598198573327282069774134515623487186759303977118750001749474641607742916690263547781137161471694301207905171053600069977640816714007165887418930979736401280996032789765583570102396408942378257213708351873886080787164530559337456249047824044188946335569199016340344715814150683497202580519774379197379013633695282436808067963091527543766076279961063609277027164900640732767468971022804780000197054497541960133077405782750425641408723714145132238692307402368720619412512597743267946943956904491252876116068280987480828655297973475915258047925868292066059582924782197908095514650458735679888103594122104557274692250758082680897397476450282885260128723755368383381489225301749952126011467112040768038935010743731474620705354775453331950909339250172193651995997512558269445062132520193542668265993637584310953979929100291935088690659349089146591319779185325978553879173290043995523923287618264748891594248141339223175207097763054781720149695013642615359976879190154144308942995669645381201525755567229733182098811319202322533750243119088924369866818542980595877593449159479296225596768491261904099907982988967306637663037950604217102979422469535559816297278211872720402554827951609488981287417707438523295595732035016656969207681080336686659981891965193112288092696147822136300502485370945096836014128663430943838379745401050288660576592396856516878364285275631383811676826154634221912329753621792500472362038743794450424384407927447450156691854673267960243467851688142917678722926536412710991550469534656497323398781276949366861467449948783405063729114794825892901773885493996940968596237660669192341360560218757863195328987120770548180138222313829799270317400275141132758633473628679502127945606779295833242282263978529377092538083353092893127883018263763881209826669062695285274216533540199265888807523259037301661348901126551083258799581317035143477933963069265480508506862419307849052479737167680397825576528225730575403105298053820319536477979974342143693876481084958163324710248790446417371273213419043324957518687326817471340537585393008204473918275015086375421383091421996330068496384455515944243080252824744773242111099956526992471333743264501514778923087491804736553833565292705017897589294849309991795751481877798680040265383396866595113097423146169848281871969273642704837299231209068519374187594515857113470619471666880731380673084386294381140218276737610394947924590111665121385626041044665982424250365002258868288102799711093278165704240898074462888400327538397367818407911360066823724922753205797099035078223604235649655162466748480079024952593422722199223929543186700926000092159876404637594853464620720432543778477384261423534639274416516366685961153687783896422269975929895514007278354091023353314757044312571902878941348834184344513765610767046355957589424439560710314978463924699541916505698465931201375322914828801407861878143188993227141517774017247092971471271001674740409690950228681105165224392336301251048159844222350328613177218095789609143216301026901462756656992531428193347609278311663382199954444238198365813415647049432894483540888821506580458805914232819073669235835485549738673728781802117950248206204883572843343260310717694598186848753913173534521524690388415579418269256409202409253549563441084284413861768271159057212771844348492883756215701816033445210974101189968322064383524551764496063316731503490776148089930452281697282142853695693177226649474776879138579151098071459237876551472472183459365990229020099423232936482505151378648410953610893083186370573570811785694605489365639958310637557171240787886367877121697683536943191216912052807519444140075375036582963985074329969062500013588195448198953692897359015773805929816161146130977320667416725295384948191804866302004625873429986020271968035482505304930732077456132461942203893906410552841555064371839440109678967138354344186196558043726336698048589606464117742399734563569169712240700465665529559058180870068992716574130614472820952815122746758862440681880162094585118076749209159236267227743095479783002186296244244643079368160743799671940631858363229823771501568831756611160403287018727632026226890291589320553774003206498128548714920122849219588118092793707788264008448071323390417297928705698390137650828410010420688019459366874277203886318693715091185392354050241492081087817004665815006187854147853396397323075322680185486478109965219036735541565799523396367692960634176096503078954725068685465870346575885031253205048061919128033048237484359567889474992787025141373834938074018928917877672695729484368842763867876914884035379570550855011317074991408369496920365465045452809920588065508142967912843474887538357029630697834900378129951830422846583612226509995698686997005032721398732743005865176870218371313920235105798021196525398623841297632829636742090488024936896438520783581723987517452344584717586180419484236404023337176848104267250296023947802371359462362646001952183949166105789567734207453144704997322138766191019301251017013807676738532354135031179649167343622583865997731166907056745159751289237677664797973015780378103899413540352899032415367948801018991076288265951918770329473118102281084598873914894580306104816625251821884353608258563721396105443475510988767458223950823670609354267562468960724567414109153341691493203881685377774187260840839964869646928608046202652305701697801749955592770984379196127764335255262010045681603653178150340963043399029126465032222680718479879667660438520357692562577144653347482108016295115183022531879673488248429508815799567648696561140665694896955773126974481330394266280837687983994891414412593639937190161633260272197253532755563122659127101557833649654703494171262591601106283638791686045973495211799709003203607848555110795451490911648932562062738000711511651354829308578651702784218086645759336638846012692692532299768285413000977806243966806452529716304015197878902238200268025324397165450562045014824210445789400555639806451645397012261477429972484512089269356160339822453917635643735002665268332368689970940534598698191238634727285372417581606997012077786540222031935415977534768549838857569615784484306752446774147839539932455485346638721271798800632902759701473991774066610413359638055885808413165076387758714872400636753310915084815194790386615592950075088366640596966108529168589113845602754343719664798553378547649742251922787295898730776311153032787418818639882812765748358109820825036822597977395374017341794306284887874693704612143021056780842397282430621976746431462909199241720128426831616228055902621441669542908078408505266839927219103434272519134536903431375691251586233334688954898656301408965288377501681465578746263996028317786542461586862265595915947956119003124714080898165104710488673459356605449460761917161462364806422416049578384607691144955045495009074316377152146407100595350341938511227029171659134273632312644370823055185264985608164153265456813006342407135500725650747488510336735847838732118597513847701967641233092629237636898811147256478624317023146340622311782493712334923284357974539038436629346072670875236415273743261605718977149448038196394586819429256254712506165177298547943597074194845490651326102638018505012685086622122815643427943017602825450448104562947827559875800102656123404028532024731477736466355264966288507285839304144650543132307291108248974372114759855240797201931505099667134889050677868674657748675288798349066586756007835470793731453111932996524569476990646564723960168721376833823778170655510056684231495188417396504261159767808765421318435460761768707373565776453356917658481438376965233577825323256640657032575778375978083118718571603109445775146026958963169641028488629239487636037315886846157827815500587452631993088011014362194502501010983002779302420712499529702726510535262960232013157278390466256757880885880181388958164566313322783431000936380646113889981371451960824248969651185772966209181322572063283764274618658830771263388138012885692043041088051537244598634197462796399587964935253716286489629418821223534941968566340391570064583477377494016533155493857628675885184685334333441979140896309723679352791286839830770178831457745735642765301212543752714241494890674056152327283316120934819809926530498307807074789088471177811601310752528691112562386248514859559441220569701972361075561990879972866109956859127352127711160021161501190375772589556980099500369366022313702919125074389351785806174729758160756974744578674896397887195130503156543318087228543783806267858014792751618911990406980673333873087116519630991277136092656140321383948866182837504527403823819369281213718019032014085659495207991327111632462912841607561634804015694570824983350051126103883738306639361760835790991233011490195002547652206545037706405221199135542269365457320773148688619575094998567578328252699845869974045721444827061841974723062615301698029291764434725857222296054576553236037339896238760690900402699844406143643556334050785431802532538831427480029986293023942766249550326101267408353503655228443947030955255510229286865404187886273456636797074407462801872682534534094871503584706854531919227466306707799869527496213219433089791779029348092728812778727069075323634948221684706858749407382537383703910407489047913095920616722996507878117823009049470874693799421345062815213849413359714072050866703357211728526652871679525863935004925045013724003171607765801738997684339579029104586968688307223809112456046181201909068651065479847049101442351659889725509813164409488736007799888796192863852119297818037687147856652858126673904799383129016172413479721226463441671699483077064687005853110860873538495045530240306638206179185820816775905193766764493176541126865794142773427190146173852861067256839937293861209714150871939452968299260473902595660426190488516703840446173012706175579892691870521513894674369509984746535498074915772551089587568723647318409082010414740824780213743532559622317668420450959671659438468711356674037668150313191756382871063075205682546232084516617299623845384089909803621488342886901449335786302228061323974208138321961045307716398149986140520910753205643813302380221304102822214223688906456447959582381538400583862272850693097139052798900629746013909011262672737680384688585890520160016419828197705059997443929275901288719005279718346271360772238934559018243073733587349793236108148681320376752893203246899539550033589132449149102748890495335921460996390006830431812516733243556247541518153827182203121800125598992687400944879618613656829931763659797961860431098252190461176993497849988035771716051154272826418567995326400287881649938008312655532803994118139280094165408613466846692979355134660845113591405858347236813292623009980328437580970058409239023943776920798184751035731777105748290788335059523124868126322469969082904791146095811787055087567311983221061949867686261289408452523066818452014871744550039395953146114534052470213976789133144048435432325073752967168860886861019052588186540036770395568408465734015594998908887383932893818290691777992313103424380543712588047404170703447968455362808574429769451227406354333297096546332496774953979580619632208821490683639677581675834406808325158683441771844362324591768495323581137581882925122457692336025213638097350820458249554140319290670058739729119038379993016024582617240699201922344645371704115978690269618802745712948313437269548136620888967900070983217591223301425914084422128579661770271847359767600309018384887922283083061177318865657412104584617693336253246099608307915437233182123041722238340567854845909108976808699021980490274829297766548598447462269922452475999608416452524792309999889524656815049555937238422542044964987053447198172658720185118335309434009368936258664291002249620201357054193350566559841035960411511749625291275152798371909935116888077825904567489484998281064956477652845081099427271511619006405389802499721888415358574051480503403094303025915107824241453996625324663606599547003946064382751934375073310932074735109722828770817903318748479871726195490598540199277644663807714940196381295712039852152120346344515865577541176412625362736614685383753793159542071348527210716459611601448605852413419401936713715256301854350864138262249272261098861306921214911209982459093705714912409800212435154951819128696986302793850912300102310523289620913504955683751376058622369712710669749092665625971102703157409637259456874438649686045563121620607344669602839583768833445806325100671536075856240178258360675923131818542756061703415275636366440349499367363450251786745042681526245277039623502786472923005277661892818571799436894503388082486566597821955009896431167840479937670966392209826040597068971447616214719941384165125783476616914949666178428438889502865705618805035256984805736162467495637105810960112539378583840881424683740496382388208273921321971708223943574598430766101348663493134474663889484505505987628416706200748651926859792700998307999728846019783242276221150488990493160210622928744392731649831864743111244521874649791336857162047605979816980130413557116288034144978604513871083916428812325860500225190498369609991027342103703089531101537410574828963728795269275690522439271541217575168051657987548385723504739130855333230367293484282274215625574935790581750667228928762282771367811168444294168472427749028511439878441544790084021306144023272514402576107374004036955768953570980901982380633894373062342051937922642658221128293813297125166815633714213971905317111437631046898646876367437772758476067946701997501027419745336022339185276840532421056353032193024296348466978626138142435008917741314224021307824407865696257075552971891946598106649597100334275739995718659994023418961282314968547863974864547956273682746720014147761459552928504142612648813903687517527904367473388418046770512206853291195764983556757227194941460528057780380218857030050394094113427046152716931708312611507634437142912918947433459189271896614027072173398297633360689459109376646351567690715052978877010287494318781194354443227122389373820831290535377755233997053778163892352111778885967778298148234251932993325986541352449857032512773211368687461250039602354090334681672889551888344561214347028960924916731882381785770509934354309298046358698598698574240149364519530082864563051235988238360078141699705756483295536973387253714034416340591446903585336157070921689800728026820061455642490020723338197379198920905118802392332132995364302546657478406015385960629915826677080980033608722247824851963308606855205117415500238904355991848753997811755705032567916505227260565521105758522489023952424594651267414183032264659974234043671948866028900078338855996756008390614229836710707572711964757812069759709296735382270757327489491606914048122549092647254338565337614319433728519870424347074930822322882000484712279025515463128023005125951752677328050210671602203189508651725237559343294536862966600659177924944029625602940870039633014982725358449641712018785406662227487223417603399923559834561270926693082694988345212947072607857280141172193806232857458451101281409581192312149789130286109865390352786038746851520110568291490888370147816913862777140019724146873622236425759512381541450936222523577956998712933085242240253994937970610780719974662836632761584106544598805885293286591392493739565462257407300065601068791995534266498324010889605573884268564864426940969870702929162166583583564646441532893492311894294164092350883923975845927262954435982401199250065655734706784820371347286111334782464904167743623400679904095812298923934579909912209659681672303910796900482699028622886190713400791285822419115349277986021490788727858229538792851015143414368876581267430105488440070982528813991652501851550185401481680543700342495963988014912483592763585774207407684906128684717969602484981064912934072765729393180808519801489552885441611946688889044538290341016790971088827689418632632122224512557898539397859288699042958224867253367730478054625278739038338651460900077732608426979505766040080438813448664919444068697908044300396736185470810000448593242107821674171163515886733193108783088368877349510508545716914983035535114504310392571041850124695505347895220137771420902590789884041470146555534069574229463713930072542528170997071962333778366862450615233753143105181367805923041899418838426189483540330495799732373605912905993970639288303917056417158030279398615358373623008310311035093684029326672225266394007952804399929524252618646548262732250280247742771638825795637827680113575053758522395607840256564211461017213218773664132932306914020036701386571123612865348683050664586570728440988205309505500115809577523926122915523113859699132461544408090760219477841452404384410501159863886506131036437640247668714786463790054010172624168179726899351166604061016098571928917422367636061539489002160379985768296492794838151185039746399332558406623038787802214586063590018745246016356106656680177796038396107067430066157933975824764132586189394585685972239314542353559140992092013555769575497137329870547614892226087967552595414656071736027502216056682376113043769948327711892086901181265113399073625163549484668832759627530505269991712189821792562038084345061811652189557573111787450110251498645372527452188081911125167775325171104598854856427360329098852642291503680969525935303506423956453519223989839184458408787578039969944459320606857445380448930023960471074272735675821224824266158477067637354975788360739019417629553957291164798180677838049509887611200563634098528002263732744805863649632247544077737813976352574854622221266237434425575997602866111779324213092725306883687018694004404725174555676376779951813533404863313968894315252458834214690451574063550069890712015020625859327940210235489294911914252057519850440549679821151641557912450278280053528542468532199753844363702106221835709232553173321220789417628799443652651043570017837733705262033349584942795505844564797129378152979780811479404461453206213573189532038556106611488861227200393323427232603541332580971313073913507895747254079744904738269820200894411362601433102663168978292784658107731474815373424260532309777072601388329329721751190469668520521428448262703938116169025934068351160593657223452506515137502165310839894255447483185735579732731248248577096253923996312946566620954178684027439263882750361422191822105893972857365171197376774700615935348186742101800394859190484283220284250957306690586633052828566122158555199923366627770875245226422064882264762371927981091438877361200587855370951672997322066898852620253438558437828439574803833040903276945392282950632633395594768450481195431078762769234118623710664983687582037046374074054144015440353181668986337688776215866946146744397058969902823110680853510188136076128090866360045030565177128244287448558091714458376024009980525169726622949443430911444902285868204225944772227542390435232095861354704002061109876871659314675187800483875542018658209079622919723563098919130084589711402293143338617558900571020530826324969248233509869091698525023187646911360826970793665145713583603739111455290308241461933984427675379564801158986990378969133920067909491791078354348672613816718243052507838705986864425118570365854814123426282648604409564651196960611851475358490953554643283164472848189102920525889469744878700847793142393250326877587720096676754656167762562829078502595342920798698733631057605375706866006709094221876477482353985215066497225788881194620073022194803059588076992111948249826483996585932740741921350051026892209442349269688833145729125304457685839889910591333316030939082717547984583172072864136657094342992926702284679825606336572741007625584076911333389346000330943490721297485976893961016835773901216238231523410036462216799972756889129467182778704850015513999711612089794529173374330190370194171830938213341259474044378971178289538945086158299292281725819622103857908523922270229217845826443308141912200964904833758145872781942992635549528319482495955712989471987534051234087470812310913956384984837987973239410734280480556745137196390024221271020109831175877007446617507925703840166686728773660566939861781981426758261650840751291690477626847590422115194553059495235002433784398681893707110608020338598084495667254978542999242166859632114391463943342159023791838071332869214479540873006093981369270406294292298407821842602853160978947302778463486280363244836745329596251702748982532931236640819534547360408582650724531648059305073167472218658512984892127927479288728585714590091224327600043296993587289092525019240204443747397186538305999770510197087346309619476991681056756720405836967882374952349436257545793463250728303383733016341725320440100056298426605306459811040583442366267498513791113665893933306162314700505168609489485849820256626166718531860564324665867125332647744551700875811534950103778475363113164246172750617955021101409465158521582264678674607785078019711148828327259718887696767671215785924144653138371493028348459031340622175575175387169929862182499489619979690771293999653876736302464097187133610195519837994061694690228409611895987917162564976556010871565667814802210521559239138310753431726670932445550303891630758267170975318924863065288236016216340304863723234731762714227013701945249817183550682719219566236743531376465229168669315198995388454163185520903768162968579108751683684612535488310539074827871910788378568230005426418854589287924808177409223560333148098462257349650655159524684893132212747445139159145777924619378494409484418969300684305581795486582733219404935255607235393807472794268179742084346746566264667812806073116917364384269099005019856129304478984346885769246096790476798436855413600465203403396801503054784158323114651204848917962681666392823887072088321012986945105721774397942018598806268484281986486289285913938894761065929703993355504641316497480161937902341876453685299036627202110773284763955524851243694613981221451037730719973576051236127853886600865441884335476456140761539008698669494952911867176428591907927905365450884781639380727860620556404470567383137311008056268405567033858339692182961827868235078501991841663954313437203007086803167772571096325897360603489959042279627156313654344107034775008912801032237085026222657198489351133235064203599039023727035392679342945510090795693359406632913517655554370615973302942578134601987895622395444619445003476173683239330369894502057585099420380940299568503043419491705537012577367760927431752161433920753920928567013165606202057049678148127494441689687965347824440649569541626792071699297928825591377622999253043389238619859046943574230498861756344940840409883077213511508594761619993098172656433173947151647917703033499862074744538461302379209250229209565709984815237287818841623234513188883976862188894829865164187985870056198421754615714371731743762032053666296440141150446447133257134897079021458193265984679725122813943521269153531709813970157305734959677001359473742272304475576061355657992576757949154357409963631000125776036324072956996742886973059827915150300131721542613041027917704565088764247337999877711363533572932841068528078537728866168620615910024919988509980237130781536673548357720438399285957861715983647812368256202741652941133581564761867716591073194845358398651817245273823836570377357438364908787339233603096698644893439162318127368381953773175391333433555283345121090664804458459771552370718417607851285320615081727871787022586175996570406976432757429527980318944673663887890320969811442805094039571259493122783683136790708052767441822061996238367861176117650679738422328477603646542510740123999210861941452244233862754153886525545095839314212563404491839499751870034827959596362531499801235982567602682684740370386422378505157368661943015490560064633340903329452130998561683308702360913219160033405758126476468769364520432049050107480250569980491973926548981365766650052984410142665666110413196292807495170123016982303265997716886223427692115298968146856170630126493502178986032866079769223035561131349243744591811955915229879753151386760665846616971497407693278593780190407120351245961989017352043938457460275974064857950223480695182414259843828588187627712335109711259071240816193941038097757163410777740845689683214560923138589441618629925507242470775765053825442806514202468753955321454505564156879078929201359516565022230744789085088604322431175844911386620424363225578352412062672060981222778157202576997521106834525914769442686144617009876558693892487780354521007649442262204173575624757006702438122012940759200428421227531983161602043491622026663233230878228289873454453607051236267633695649383390044578540801468206925351689937756188040982253271568735572160035841810530709077567261475608957598204350240662097526677773868844386739008491881729172490366851162204252485041851912443325197115350211558797614754933083245436722017351049008152375235297848488405950715431945893907563024587095794394612338981055700321349564959840822838529260376985786124769199449971865321786377111479295446446209972822923785206015191999796124079206515993764617250118257345827973482894359582677446459378043782025789543660187153865332947615807661859430082408922910178713105583442867211987584596208054624396085950919224857066703744697885303442358618413755607423839275006189418535598861786660773293132424945257914602564814150743200955285685872466510004208141983173383234082446149719890393651381801317154892068341904940900448494732712773362919106465039224987183216675422446257440627757995917590217960551917442517125267746158000374558346398354118594126164473193684074463733377917703354972237732887394855522069377780639152384972351796030003523273410904929225683039993887584973192606210315831472449911174073652509702783799310307248602561029590562380172591978195893134710231146326087397542518380586323750134520454976651500483621752473976821532008991149281984179088395642088797431625797155642325171970450470331582268022963217556563453445650738819682570802747414647887236672942711394579602326432116185739332204819849106184398084562094385578126182053158765109047547684692458668722605712091822632755385580893133600944922932449075488703955490364618405423383518709775089354218479283719252144400713853613526743496055301210302151305269136684697145241350369249074822763848027092493712189325476151391325660878201287679081280740263404463152498797660599560670494129574952829666722604099323113685803942056234109719507162435146561229298430461427234531344428964355653515685035180835566091935009408785470536856412081464602526199130451434639469181606225814307643637318043169583123948009916169129610294312497858194140385520758533400231633910549534766741300771634160900258348485090442321132924096276509714313320627191044117085437107514541450003580031689494658312609828093765799072401893059452875818520972645277548705514163213720234421483022352430498055715912511967077894539904444341941722187977239561741441301701718798811398127090407550937035490775421043129829173856612930857050571646209127243563058891372295795366152412865123335968136419513997930788564367013934361199707195017280261255813225270813936459004235667214223348602262402378155874294861526323536558776178179549089887191711264846531907113627990299685622197374136303403547057041042636486037093432566039069698318437189217943812189785102652198628369523213258227975613238686118388779977010957887702240905137321061468127209657269847429210674942395186638067276780647627618641309791841559368072959074617225619210048966092457673566969055226762236982001648491920059050592559482798620744348955345487389254079149984124011755462194202347587986251183537179257551260205630745043854660792766854697502277856577872937081219713872315419510074193893491459878574181769225201987929788678567485700297645833466450104049038907653969929352392725958936041666833432151397495926220117269777480367558796548001844990710834041790561481963490085314179845318590628919644942258660794108287073610392901842580135239850292084566798386618750093164628464807253503303058168263858655751844214236963208371341747450529119630990423456306077798614524754068440543673808700755185607723221571205384610830329770719733832232512061418073369037922826238671377080407263140990748570290723822620494381675531948064891649694200111063922030816503333964907551144232243727227659049218333719632404071537499899539992810913132834590361321085917920229895837674044799768390727807010514961936336494279844808687598252292573542606405270358515272139597275773972019169106399382866136812239733367844348638722184678331079737005948111359034452197343226643521676961458357073092520970880669819167263015260781176468950451637645384506483671902961669901672844813142306217372951870435497857005299613905021464052444759687749339056286679197997298977362887706374150634256424473522882925378633333974015128295442070355393064186303011695636233516095684990772738668282038864269151164868428711218037032422200040187125178062337256179665958829516489583598130060064052427122986357789686035851068274533573160694596854833778976285289979030388176186435971767199009142442064345011887036034114507484080586981785250776504998831880449452642006435169646544832498787061926075986744511261357721800490437549527420183035524830828109969486786032371345538428948090951124530900264578765007876709437330583286485749285516747586971100814308046656428491568234447048379250931234924259286308487568122648607484692061887489033663462955408998157937329804643582434300634548034990748426782313722124824341227302184934910084039343970248265058191232201201879238120775375805352558943147927339269189929251878134852611170404251570392457903782467826666670868393430344622767559646229477135298024177099223367585584639787676363378631753167803959178702260035410011054265197978920527168832998540845204454723247475229928429668478329279852490695544702996163360758346053674554768072529522839454993834785291142969041925347055731413028864585407350357720873948199837403623115140430684433846740350321424956945189343349704021003016116531375502714084933114469556280804597428903661524785934939287385653960220974892887609301523826153317054004950573015735493969071590597681185447640958998802891892410539685063766356319965370493664186304756154176805104171087545947277996690800248608607815407834670330528325162646456352378160214605459268659759441265290197409236603288491184156301185926444631863376011437194748481849954704795702699115802224994649018879997516441541956122356621599617914489431810001267895600298786344980746684501202230377896154979373867313959350533005544653218177918298822793901514177661154586252322005453554706257422092938461356185555778424553781838448858113146933100450183060638741112715113783762141774990602633328047748460097884971478843318936324820889771462392087569706255744394415812672719740240652379324123294807026561828924804408599873180902941265634743876226161638613546609023430472889419538104207001354237545103080206250512045236678054373337448048580003660324543302277602115421293502800707861030749936121796951937085885585742832280607077263381219165248962063824984179941218729228333606848119076310086698561897396227649160859633299539571756915423765429909797495786048010928045798890376754120118882039586344893117415312887239868402122695289905632620071683094771127748393367226165746912074908288277458179746015571622968953631320474608514744244854590602163419201241793395466860795998765146024598897390785473113500030793901284920448715552359250791600396836808936126531655767393071900476451277479385395174817727860602462629104438022091421137159118613025231535855543173820731113913524822454014904321629041900980375697316928070443784290274841542164403741237446827154800251792671644569832142370994897922970809637091106868837673173727954957101143970561296781900361694569447776362955051307973030261206045399248420758149478260285868070779843568273389498635974836157568698797048907268384458873084643579189437457529615566058713517735097831212787486443403731762103915586034488899218873627444233108434413803295080596638463929165844713806435894302521069365768998260695259978324035087135075214431223653578649439335272046282352752576962452825560571425623584690242015502616115107750784921957765159847507758307068150657480420928053575295955979556759258401250885326574605225965961406248690349366832238320840128551148286939268121266420933430133907709032060105815300430857411782303312144231006660609767563440629611440086189350966301543364614203956928455294765132055541706081070086146105051116798500345346529235947448836217733717253431571759461828791656245797685386350278377822181369525714214100307477509911069381841549451044558699532189876666243644077344379357129504974653759248071850847488077003319973946767899297997418396238434795916251513080599073796499108755437517475636435106856479201722276850237593731731764959186126312845667439203390828680709932642376259167771816532998547091087464154518938312616345034564038342264892299547839997549210168710963117613316213525380599908451266744425103775085129787102295784540462590960918160044126019267733551031199788617212079593035499101447903686307139992085409435531192900388256479148022126240161845403457028294665987092042621297070463540726688424433864839338091704675099828598319772870614386223103190438665522819405385716673282605539204105488618534941759424647426290208476357995736103430039885530726874080544727803609019812250108325659808401205623964251880146606138787115706498566383555926713464568607894217909573983312632933709638747160738043609194385485624780391362682296425017538687031583846417232134429318704914192812297424699122144468144075778120358125833817665004636094903479529658089440814784043674315658262398375940797205248150906053140525932227887205323619519057633280606980718767415735449291645145972415156472602720991214449292439240111865022592928006785749344736733272604347190909178302155145466847201281814957490872064802708651341920480076247380395030339666399126288758337739281343800509289648214580586405674763829534095053504659575144195309670690875232514219868521870303066150863289650272423311392700821263582642403617703297517847403082961285226910849702472649438156108432687978926748718017481897363318110076441545022288273529799059176405959312140716692716515799977181003291385580338278451377803962889870456821691925861402091815892657550689451100746263528923112111055191315663196119874615418735580031366573133165476033590010693022068874849251751418423870173232605020358094741475882193283883736086131258720221632078474505980809374006578191445614298362771690639134168866078976653759241039397350625003049121696116238423599491982909201275723153073065633264927655021295804938311167805499740086479270927944527168196778434875215228906957874158662900505165894150839457235527983902943883576423137924542523878527008086798913365046701185292960863507608958014356383122560515590768523172225699919274749266162851676815779315076795520588516853592947911174420917658443454481081376766797488961111684709237425498291613821294816788479919085424327747049448726249063822507615989968911395744552466474153618675909259197362770191962540062848303391221390433602543712349678700289479781337339869168245346899636859357019146604697119943211975123519156533192314783201041920207077408569720801520047913944401845220235880950651021302970516521699643285870331650215416531885286909808664835304332017794180879057812405346680519273700884513310043019872684195194128590479128629399639742074671245441937567383203220670996540478461400069815805820101606899581333279665855082461986584321630727508441510222723650252311829769673260655840401044613637927897271970046197026351007096955181839623857079815012210009683098240955591262511671911855488666896334428761551086809381437318962803803741156298284145063242033575484384413841195213265062563974620132710056611324581550932575598038619666303593379360636151019436907913064996047040279354961266411962323588643442291646201591975617002020774898198827348875397173866215799340220443796204786726442935354580538629432614326940023072558514902785343451338964445248755653974237915184737954029412199652101604355149885708955325807171857064119466015804616582928002096316884018749584778933418628397499260440948783923549565575557608954451947986902667212590343267886818599920324345955531005975538520320899608247130826512251655335136333147268480469709602355693405078952672795498999470206616718628051634564840665401016298491015446140520736597184032173703071097694210037180053469298323348633968874496327671310547620173417310277347558958296524260714347918479043672018853986476391465952140624797589399130663692123074670772300945018091007336345094884720956520707221303486394395271889105027290365662244812530230516016750609368034047599252184003855519260795606687136914444658663390485856375729308668150620327589687115641898466283785547102101578711861419609519931100755315441682689329816612058323376355978534093667469313454120078980013666805622291134709727753432599695993995640605742243023997765238351634764655491164422944227196220315447892707173350477010709290668528055541704372444660812167124393996260177299786777471160161825183482416521550862768434244904182290351529298033158871235514938434084666237715255421546419457252180969279953171134285370284852257706652515261495095291652532724082922298230884236776789321129360574224015092218075935920299226872893856860515426104240628768092201383827637908553982288468532005863177815155784860045448221241319446136233070439271091770239019735767601274269481477223877895700920293987446234144746892367209903765882355836896473485788168320532742669680550832216465817956868277614459616119037699611239638591747391710727193625327136527149545014037635524564684829435413789810248410794995836270173925405652081588369885932073677723296678385837699548015740520090219375217523706766831208670330137187536301894762568187129282334192428166568979322539336287738508476330912016978910454712591293072527443872814087865507434634028375318182785002416416167599749366145096340500770493958201227992757550505977067712887009153302026303857988124900422829475042896418104939034380632268915701244617098988265441713088009214933260338773163215348916526884170909102248033522878329264400937042697424448121608021734251960182711241463077313290719148355668330350048695918074189570050324836090211306413701048061011779201986841103125140343179145744511705539278382371816669430791990232732059975211120167674810274663891724501428881318290669824025347320475643089596064796371256213558532484277997658057649041919642119379154937824058186938653216015051276548607509506634178649439887695806119087884514659058406137420340320241064520022364016939292119100540888547458313663962415969741383220415020249064338235386292466244404647920293276953780376846353798469165759057311214678985868998142413363648385968372366175283566100485753368225974807056933743012721422586997728511672824283897862063209643919791134416975068461793667903523474902274919663005389180068618049772072325078587138659205829703838043794394979883354145845298772644478473395524318987592711610958306237477175994101949144837664142425596440069672411598853877932307602143438025723550910518853557894111760883495091508107127252820965983535520329203332507265588383969856915521035689127159016279091295659034471654031894092157153305321705298908514041828688345722211579703527418914654267358660674444301221006207943660041862332094724061177034718776110268815873413098198401916995321493083306103348597748480231237972450777577686251372038880558467451782172506657825314793817148577381190976173515006991966270043012273814331473064773663322984438150744817982062783629293628192226781742266022686341432424637003589571379340630120231908772153712775105720487665310137546636605964984441467173768786637309093111865707115288273874357896122920497747964855017121045299537445700068335215224716178159032795627530636092474203083831173567729876832664505686374955683145052419350716661857643526472067033633235501892680220844196295068548770589391302674774137278101389387212217694892656482933964185418148987951423169361879846223150152995673026329672773279405720867925430044142552947151260552145738615915992990038844029447163810680241214856484644843121939608902964546627097041426586942432650094234230993833869414711611634374867490626911516731154252502119313273381036648308471393162346789719883920989066730446281851590576907050701589212817050958252925146229601248811740364243016643103906351672806707530468864477692687455245400532979032065542861584761684361345205911452859720200484257914217980035200435843796324362340488105693517214750386834147567229478812123850858794295421515185933052762769016952316974590621850728084032779961267208708689980272176251453158794862436482151964141805375766154459352214936893570069098063830192760630001101235612740069931521179474702283112066394504892589307806575058971216143025815388891569142381561980622750906714715181818571925745344416577259796268031993764007327176520578713519161339292790795341771892600174144039127701106550774888009003328752643175410574303236935844940513380825588636513588776074003235537752566147962568583477768131991622082273803587302968415812435111052292101205314365426820047398253197711671942057394926527324548630469825469255785396587090355440290051715068909639369767876557179166007564176541605525588982322619958623334071035259253853556652551761834458186888066738085986503786453045416236372136569161759947853132790279788874679217782091236040362389258541684820251039852420389009805758408872409506366822302344325056069524745294674170715641278016126967012514803383351250668668479296323966868026088333814199920774484160775685523150151719065776326278330605634558139927100736271002047503554447505808100693140751624398983105243603624841321411431660152923473592955049257877981338644790284194401627427338318958509088074787490011822255964708488548961242841540812720451420585648702220692094510675431949809880438925955686919125878847609391099015541432548163020051233359842293985698742074733136889483026507945122585743816701261736416746226387537571887792066870301407111868299850424491232412537571221988021635909772154826320875085969906351687135411886637826197078356410088890917659621925204518725314639771516458824239735693053596479188942629799494921024941302754889634598869606788929664524080980792107481990352348339104474461977143993509331022341441321475381289834711921118169553029273284659748194459351750311335276471985753017856701541818668273449796871208800915192372452957279315529530530326053793839054417158643015502089459188879761054098205604548761600270729404045188618506501114400833525001715471001287421536094896146598154585364006775096593454004717696157582708436484922040905746799983169102047770111579286521293547263825198202441135785448927371897975979833898532554015965454165047728512853423821805574672599874968278315449867317920770983334175257302918726888526901894816229460417908487052425594063156339462318574199194828991162732852890862299801422553574595565462346388273283023371235725916645455446549648262213319201239175296143944595966710912125844433883073043610373023115944853760580403954822809641815917172394305353376628793990596584562229383199063402055994468929132525974371612341862290704818298236922924546623488864520822809555613593190683309866250187940264907446214549151199576038832711501050870499755847605552025122598478279298361472068617532561385150696278019338062146142487912202610050228805969116394012272093321513045196787512531353964161492654399654217212149443730514026423340412116882938979512056624835369243291959165087158541072933045891483223686805971888459523166187534539715039772649419442896964195088537105393217679958519701539813684736148780146224557216606867955410168171771620852168999659290439410967203193141377134984133216615847223364620493218895130666229945554918502224645048800686095800702922652137435899314048054512506233329682392492141004818020644294571508516730150408394306380922178358719808631001326947429771820919660188233429155460773418316312032195554918998778073622554445287325383633122169025878354309311899793207913606572866421005206291470797464360909739895734627251080449207153589855673265665826750336843558245358944337688044051258642324991857250307642986587810969709393486295399836857145579645723394748966873700403874686837268092440927074734550120182665196794337744390176221926330879271754804993983735902062702204464492613353034319081916913302175864649408010656677656969345228097881532255095059407401908940453391231531071022534700319905783560121971970422095260455084547064609245917614234187525081572836583613374835294745461786231912410651955045620144096534944847897273622678861506512907645960849198082884142132793688206263565900473142164102754625781040199678084399394849577778289320240459826372945576856542273194760112493740356451230945116515375961546657757237440714250209441164965771115513958560477283857832392323451058050074420255969627552951344019012045551937428791541326785234874597586996923897557421027371851261595920104373964604810998346702980397545921138994852126011416013543953843071148456920453310949064211929135503482399780958643391780496907886260981190418930627781720404115722689192456333975715265014398253364432319337622948641996649604121049797473397717272783024272769709272897479191070100266036361370230386264707648365754612687486186119259651822559959722494317348192668584249112687524620217061115585939527130983018386359847872178993075472594009853816501175028792526460047098688999818078379704981486570620105566820782919973730461054709281417226879278896325676478154800069824422478715162662057885450087704481689209394209189283954512972961928053135967529256364487289102956854747153714400231109949710416537867090214050578876208038884332137216607901571375590354719100638623094922690863524395993175031623345603397170853769549682199693411606913416746406875776471773523164105403627483325876294278243514518496180907019963251303317289862353126084616493696004290812904791029960461028472941454632869755146469088653587766505008804870231935606441322745522642373430085217918526022970654378996465665404149353454357561694952080465718944254390020173687472920015506042122953616369116141972895570703011156799778965375815661195405276098726077257764053426180266952291438793555423609490478993942242300706696499479603609002231314039540484560529613211139770935341001537682238708689878047860086801118154098799552216760607854780209850378007626602331447853959654653749966453393740859612447486035809663973250802837328886575948104215415542309236579303597138895398039314517664790560484316777770153518532966932059301327136437605716740683337305495658330570908477507694032839326787001569384137282204218410534021176938341029368866288793063750303787949023884374187207314276687797315249185915403212518846074672214481288046381051009471847555507867436747383194282173866037098610330811251389938506695248950541047417378802080107859438700367110182576088819027164825066428626671182702328468246853353691275438457301772747794291800244329226441893968717394023712357406813870703336015783861910640562072171512921931916976979163008762853577726023062470320805857568499075732337024154569378685146693032993169774724952286598561318168966833978732245465926762719043339848358967670641330217250525636685020254586218882939260976961197268534234110468123160710259740933846727363657809952664913923681332050844719476423130635367029439898399575421370771434424131231814242917390610389793899720316218800428535260864628421573759699332101865708859921032934563241090835373935660631376235759588423372032940191436758439457170597871449840360881418965635484554474520136391811937783114972305245694235106533431693866428953011029069235869018302069306382518391836336911513531284100845846416097210189819522695171266834273827329491069154734570676867853896280577415860537997888148578462221363092559646970676570657977938318156421622120685837500013159739682720861284020176822744429383147928552763685468380499096194256439956963285800949462814151723518243941389921537392689255915745049215329541027038783175110486961825169485729414804447431414951072811758212472916824932088565036103787248725649019647518648064759202074852128923181719006079936626503972227030386622854222498917495889967821870752116497308408375232792418490471747034010592587393264422648048006331373067708089350958355878561221566001361055160563465834295678060167163250130789775658690718804746889310880951484335209472716192788897921279834181569286222053095572618871805788748896223993278566664468000677694144439546889979385388576761795570895768715481720123556989276692767213656166457394940120104124493191175056888644442637527960518421479624692215119405214961195838137031339069164539574812429618167507587158470463759498600385126658895575890117693220835397148088849938362300801257972852061768901958211387109312713235872411001743106304620260178147751239553183413096783604084189179445198651530016520863823573871565469664085935224556384354108255049982258341034431326576253265394956444882191795538832621028129442773754748281957145702008505975884627062879970639712581819327750965980349664679037626938931245687113181905707914427548496735306144985043688574222182774619970705620321877148670011376268570351387448707942733115305908020620342647004179896214746987278138643106002525053673538816958597098133176569419433497928237545560580062029821612158604274958087480794558967784016593636253643893797233382255677499316639880238514895813710796625552683872900716709339168245017923988694921232970401092892630501480040809155052802874102828326622172357684741875248121271652737271438526801316523279490356377178892836006952412962932552967044878893116543328015278610875526496781548773706257323980989272018346864555762323457336627320626785245629668397266918816491705499799306988314982536096892176369083600305987206508069182828007785034667486150841804031695854005012344014448260790952689626679642859936738942225590427313091436438278479586673762353506038678353796462394328748973783946176631471512024232961247620140859869538414266516662845477789298126475700260751606845917838449355312283895485829337597675884229929874060177660729732734330650206227131308776668846909818148234194881659129335743969714132902229767354669261573130504423540613527755314522518229351803943750359270818466356472304870635733133918242937730371981255844855623085085446954470847830071271610217692206922255440319133837987979762281447870836885917999299161636807344962417940981851268700631267432982938999234340729930277121719731373473312973013088681600137644242711339864609083070729191947739040236139049614463895975818465504880266074022697436981160749839786064877261840989198407948459841631809464241750027142541865590524435084824932165567058846277904923105131223487834884182715055216372455294159186599542391317374088487004484012386616244582090384916552477500039039699075770466384266076187929232781568874968272488777960847087456789049870664869094440788700055551804770769124637903239215520880936323142511759102650552542408898136586757156584839008898409431330219510859105723015058556905955989915579852328735765082440501769671193604843182604552319931228292496072196173884330343494465826711721103511598451665852350877636979622476088562074988231337824701040927663135683823664184555643452856352005996746001763015013915374865614764361472976126235858379150441807583255601261116216789980566994106772997973255678352859606524664366764631972284670357279019351114752020417177262565959454135759684679776177254535342396554641836227977744231637872502054349251565904476499177866307610935955554382834014709094055101338462048373004186051269810329413462457359897736310297641408336341867147194669221828492298890386180655186556456536770918780015674041716635303349303578061416915913294389163106468290978041979070164587023716865493953964304254272838998620247989669678469383497649166117719912164569244651282288385043298561701527880022301402466068028508531584135547482863861372919816283481794287263629904514275464065372783503363131224658166841853509521526821538016359319845416004936725039777735049297083974541875218380367677488073613417187463682267568075756358582636352651558291276079632932148706329944624039642883195852840544282031036352150990101513940143799153740236269732699384955933648687233847016141399734835624056993313911506726442639707003342981968672519381811152067025779127900422755125819874301714548079627843733720216733820731150125197485103155634712306916015469065745588494821536073499830858837484699268737055754666942681245597628656510968073257210739162784081554529340401751279425819874368683531459580360157559725970399207384359202620444282058681403001072263717946961149641258775234703730738825685217812066079584134327031908535438882120229377333265562051461076564662765641593720759559102732122628779836004422916735793293220831913540925559199088250720662158427848283529019264237887059657506241389785876495108066564972109981571603501606991615620202920565679034009226994830901415053380980082284233180853027037803326744728833043989410210755343451574540474771402051629890085543760440835293578851210519819657742469568536925054878843802258971553016749621005399645956154199129575146880826110894170098726948709680792296731512220348037502986373334004784933810565100553911480548551497522212742725725329386593982657330003463956919302020136203352347617640613211670418676478843352763797172243008728570762862295803822330812661942145151198086568283203058049814843784621559315160048019577852636208029833498673521023630528922993413850103425635862478470456454834859466382282052140781416862446073823247586157922226783317886659582653230704933270530893381778069815596315359946985716297643234246180383991572952737692925944698980888303128152240058658909907799731511413099095812888044747124519673963872091158008899099830544759048407731765818534695920419427091005032456034667190370906245993626310803597436434676791357720017363076177961450634321167242267725524212609731662503209113675683116541599158439903044595672022837861237278293952504175231769926756574100046468205373371195839585740622608949432707669371260708964965331596697888289242313111876403858784511281923260228210947986557468589909914623429985786542322563435598400022006353062903638303501402959137965756096855848383599962054102854466483181576910599970949247971203709163220562314054585263195198785946124322364338212909807804263155300492560645386790051776813517787390765567835685027648250998925077751209525774701947255797623844000971753633476435012935692056798601596428187422225472097004939722924065361250313838932258078193345602680623457872103148796736559771548791239096515514172694870461862314961477560346898969691473695991839334528424949429221424769232325181946475740528272989061295209596417852472065370518534082553841208715327299464673770431256540667011523034341766077181063025435267890716315522893716750194701220340043950207398123602902683543449476310007729065790164940790141133411592844965128723779282083355213173598966363527211663755549498753120156543139350049806135232962973128863206002796252032553222495225864032307703942655048981744629313228511255185471213983036718824268792824876590150745345281587020141904517084198558771686231295718153518438045838654472762351911060029387762748555627087788796220215754435119460612546312272845623408430765036266685842701041101380929700283165907438171103861299342150614855096570416732336426939035001721018732782746532613237104250329379076935217041781809187876690306284133678084708327602831554227153931681149954580115633098112763756925318190758573996879128708265196552848038154664905326555552381464937273393919219206923284027625420547023571064465774523015988379764299169360977020065227646897824265319825085258511798068370918444607323253463942854962703112154777475610318501681960208436624358430494456353646826416880110681002825043539825438468140830724707542384678556889576137809382921186918589275206552994057462371623491836258101711883510114064116840008263201451652156832673504486470744971718846196468799039129315465370474919592646979132460974392872010944354744711080057950921824438562916416252731911884887755230370191372917934106109182875258645142301868654121490585075208525762550944039449598178477240703296619115648214702289267553989597241968827510252325196822845999435437106176751238560574184283089593902329189832540267920065509216399818212304100633663013441464691498324630216038919530570923162817472696817117558473701126401525735016644760481272122825159509567316487032082238187216938435603446216975483739516791542654063397108669501959134605289478067120872762443971021288392364304551193747979654741978618045491691921544660054928376343988885484189299116162771832848941111252566961062804187572656101306284858846854813404067991345409538740727611660825486072975231203964337278649017014562112213560475564616126824196406074662798895773084782449364261562616237442411371887258218448546164676083022710421145913688896368694392362448635292715167214567043378895003086119887108248973073640501200185023181863069170196110941965037650405049490873618193668313150034264319754532218493570432680211034369442041261344726277755038753936832875834645526476510018525032204020043125697127115774278348894508611661449782858047696526158038169768605133777362147745142714849124154833815206211134969887558979818925949733741446356238296585784176693583917077342886548924025257010362912313344273687547962746028891774756931724627411464419302105097317599082569502382924598387497371815905650145751890700485163059756115560029030737384598101040046524311251778501521898276510228932821072162829380814855595029519199823620158904742176364181744874156727999579530349877502490360736862174748168489813662376592423547280569576319202610309111198312205812146234975491400190672749212366939732795478587775005614128330476871551633851139145725571569652608522257238825767444831019395671226433482495328654446434019118014656718992587855273752588496938450465604887395248296487329987945476442622339619132398617887048211665876524317930769793312075594797596289372976968969829651828218264218139681469353370898490587022428402168981549089941202270620688109321412762579084866244100843990528347585911642759504029198687090705086302108008161505077903867593593574330276109231199595465594056087385358536107780171612583055855878746732458664766282863573226789802271282508699726793298506660417829664590494995636494604298924867682426608506434116742294803435865224580094043210770024794607905306979946698009267008438548595395182748746618797548053539760632862152546000159784399431036780972895809500962636571086557378372998720515801692001129888841585393058132958532189360039376186564968598183422857416900270183597997687138749760362506400224098085207916189456291718884100911364645988050314679272689700466272872246092014229828544772455717928420722278970974851986398379722444353066799709081837378702860623052932247409223895272596050585215101976424054230174519026014146103489171769029593932277122788064414666879315040341030806175012707968998826711729487687665565047426366694912524342538655632798585027675439115473383043632574001149423832830626107685578447044568999955284133980458082061473196045663822338982663046425323059545885151305250302949920948893450859534204316936809677769953675198529806063711424465833151490952203760113126662628519767419057481656246245465099267803375081874467497508486448880574031283194345796110418659514619804172233006408880039479334496248406448763648787067821004076547690997971657531831181299552047979971881108483949903338461344696404605195487140007647634132849041962140212403574896791063986105954314258402314775644452178921558592195795734219947882638511859037913308876957512055522730367862218027143859598668846566982037099732396268298377733214339936665625741184825472048230126060165051105296356815897574541152657003002062860022767797513777371747444404178980633503960479614622618061088238069406322482089645281171755539850632011936285675916851094092540762979259549245069694433587029120140211471702580244754492353790616849059322151761723299763080567337472235112995024870825289539986146784528402014804993237960260155275813264704791076504019515593175774459421898097801715639232084773038262906599122242858517025001620381800008570941519600709174811190112247408305082873551972170162281464276101498173088165322746765154127232260807229318272336144833010532633754365727294189942908831352434493624342654826227459342399255504329312822847272168109261627993923570901255713887558280929209937487977581025395308995377224344896492030738684729136570315938498255760804411431460128283383584519480447506487416393493638149561454558681754068514612936571531070518229979271105124768006687950397319151505692576354939526597881287089991537798806000610039290659165393865289862520385881227498075370643739090171675028063273943455987131789118888623613915142425722306077925302399464723838290215356236939009600710786765606310251570556283957376549957501948501085010290192112650958438568209181001959823672273391430463731282018150173664959946244815045933345314968226122221509637725782103652299678310376592155108907893013846915676745174327923964466271091104458468543952437434948833524146526769885443374563877762288626340312883161247062720179604560894054797045574714650269812762174268792978894114482526570250585295989004909713238531814019016311363832936371743702436828773829845856518453313919711412303717006302924532028885472675623918831635786165410970980682600619725061384953070211507106082707713161794857615136898819608690373924817288130868478399265026767021686930231099250584431955894787738586549320230931295404769972697932457657235287538346950331775004855976385204864915983389642616355761803337958888339773504493107120524320731294997540136492559133301267542723262742381531129738655132557988105338373651951101089932616559560284326292590114245376987651492410696081476063675145547995554273467670046233267257268107966098212494430048613603768249091044147675272499534385807629586099098559063826554638976113194057556618269924688218652075288868724850469365831002400902779544997611442701101743325079255389360888411580001304639996840188612352564132695951152160909874908035300692812905174573077408479834417657021061454743193911819908318765390392808150136301043735684576358820836891525585837585930460163117608515131615796565882650585889531573704623222827253140116993251290264473098605430072942967986317258008856613032888726376566753128154174889088399062287670534293412037564131138652883718498963911228313779193353495509644538750851245164028170044313087137821000639234943796942484316633733951398165474359159690684222149793327604083807133406243047823696461655870793027149546132737895984557169246770944839795425751366027934499741477245022541249936006296438003886073595924558743509608658859923736433685250633703129437007191169056563873934495016727079482300023169301553384818601639300277203204339712206550082175133329650107395775052308300204173670024037047852394913501900413164507247670649607571995749745029996762514902851090042824449015887935959293538543028347202958181339946522183370826837452414004636192098211004788380421771741569222536295463835604246336399459333228808923904745964346216784863832187955130337912282644171350082059168860484657949313903893937042713557664331761491788422170674839668230150362881485708684302612668774764579099271916295380326457642143996347048094598147739939183562015903383579958656574120287366411024145497007386789097446365953083787954118053767346859142049155344541156985156170326780783938545919954071400633539228405386538388210506043455900930059655320022152553780731256882172172760135957279656859592928928798753843874597745685064977961162449987866463617725827466072889953050332626550481382893281889145514720199504095952753570502471861380009471133660417461524832655285882908251207103074743942479171775313046770011582448594016592383999435164067130420585056410779773810591251376352073769320320048393434176304463960776929008223933675543871139915384682595917180660835008888601969416839359019152696103220186142563079054362391429201828518148369920087295944513471404404754446601247758495793295110805331484760825163433942897520115497156087415684135255314252794269787433309598688647269087903984535417215822924590308147716194909651384510122240666611619857259677893745132075512684572223520960133424021989191212277871035016664717794226125688116599454860669531739466163716863382665682041869869338663228239321163520599163863921967235420979194639111232880247816284455255613287636916780149391457119900015131511628014052245954550149854802247278734368536154829229110043390218645810902253152459996539040231717516185980153831486338677105800015578949117210691984432063060361057571429916853645651679432143365249753900665775037990482318486303908469201122722407545601534864298299765598121012268818261029901009931850568396612109758405708488618660668472385455361886269290008337144506187768750392701072480620932552083332953304875161841528066298484127511277351162075249907384994780363828625504741301976146041676015263774085464805316229364879358843251407657835640281500543851055925859729088511988714314300431268219865864334055801629965568664457872274540757620368500421385325143536959622497043483954428802028943106664232492241106389622739192727994861133827701105618622799837197005795815825770935817273573204416780223621733551393747330836889244360635298705845373476037065106225626068135412017353238236992267012120198067788671797807705794554076728534386153103717163624144912456277854480052610835778982211705049350172011441751356358542169756951486966135312882733308529617035973595443148828970135105656691688817806943135290834315637486305329386885491362477575639523320102585171095434365056894135527229976095907601159513027377743313144421316340622489544099835272640218830913697145083470006539321704375859504130628514626352726070803228768804829006003609658469126414717508508430326118640167637122168145774303628275955044964153730130896073061787833155453720403814610227773892576775285031197088715126596504972773316644922876761664652904992739425804593566553472049695801022227898846173668652384411303452548059125486286206345163568075138228304236759753443816292340934128055127772802862962485593992505856202826846687794851206859432625317276048469092588591860528082493753749652185950958344049619202641710305401770929337204264378159502615199984081421924128295275507136093777609289839546643174395160510847276231841653171954906884829241855500386228240900990678348345874698583495596619503973039538256195008526012722920096875931989208195187227565069740733148745358333142621814336405471700651140081154253903039973795714881793035680630360978288826541234871811776490293009779261681057124339623526705319475338716008432034937378513624793553262168941330714868858739811454640905084207362956218533315983787668714254450997907450828031875057649090963845980977413786667936543957200632651681429051321635886988830547924986346668350543988965921592152825282850323792847839291575119228413345068235020418858617256051949796202180593526306804449785087051504159259473407013655203390575943666020085422574995776742208730964893818571126811156769795735767319017681842422487997793386402609867541412157567490827182489376341167421226352808851440302212033173173137237367536987957684708156559654662776165412048293983669044310442633680783751110306593099411157049988848233944744867585131422945527181559230202429933365967966032195007751753820627374830440349621071963220239564243311346946536497534314331300829228704958168414539218734181339280599985202601070694254273712138780090878782827981721689955789275652333847444365749777639319196598373795817722459800232391948276198571550123404185908672216714978153388179883925544221039938578385190256634606958531596772210261177831966073397216554702814615829346986742576850722764067654856054390307213595341471233843900357667333731138372063590495063658209269338424443114531185195670031602818148246239502527130614200789454393725391103602060816410197555632456124013259722182060517655143594760835466279608155763068265883144494811873208526935731452344562680952069753394480513890351535826105772178184647907565219041515909205245230552021748164361921092454717562048695257813181828000494990705223919277570300023756940908800857218357320575180142285371456835782203843001235204057348737986194285218134459151988372925710618058535325888792058630384299291010885855142348360848423347212564560467197200070716852060242742598874209486633364459364362795516895469462481742774735479903441297576956281664168849992147068871091807974506770105566770001656341465046446831901874066890980731636650674648514516621542916625498336987526947673927335235526331357872861292775102963242566193354320571389176218833204212151016320753856917780703926266776274856209969147268876978014793013365254932168682849226932714645922709319273104363331145477073797282762213627307862669645461042509732214637693246794862844584942474831431392640216508739554199468234898948761840500245522468352331706685347720855145083849050261246605444584108768005233915923222513839562985582330642537792717351005567981832472995077098253676869964982952261063721438973625116048341053457696541271911779218355567934011781334657432666206444988378350024095596818895364690323883662349007188395952898328635776154232417467351735008604680572517929666808966140580136176537093464362885635337800599671074729413089741389991217756773138809327972737359497505075397010320905736431498912675858288635278183182479741449093958718881846408849028736530878838679148891428965598180858127159299879109142302806181096345234742731135128189137585022143824089855136028374878482718716143898649526486565088111263355297296796149984613506548085626577404677004830566017627654437393734167609081750135371461301881554475173217427955657595437147640614527454742736564524384419118509132420484356581067545258909674922464909855952410851491714295498816603235705084917822155748984202880739577447395929846159711555419563784410935478723647849659362535533294261793621473733187945188159263442127376875967124999492379844326052069230894764861384130488657866985098353370193916545532952693426363212749784292590554437562874097067874220591940208760511113041586000896810698883808714077364799072387768202447404358328753367428479768166698403448290104892658914777533155007822665721083419784121727238490360352736885754529802601804838827891075838298138632718773262181315831860815562679984649202331592636250967964773469552124191565835673036019255512542565687779938103279173154853779680030115999532513204134165517879422490252441840391535606289072281549326998112637160646587905871539264188105156116433366524184920131645147324672233558397590768128036110950042728637438815115646607379765140577734912075464192922875690119837035287446353102538445477905409841989094353866294025177003575775502369185438381152991759492664095846901419262867373470649740698460892663976287228157842595185357652719851917309621204922969156918174407228436444432732275620278232279176213837018745132260527552793450754401207755869335853950003085831675484336908169814834624694747718322509787457112014878191371844880625806232998569269523750484224583021055597327624513548033388382207961787810208978884761127569741424731296728927190970045908776357074400371526796923335761368731564987193761535164499248864571621230242287749232374538995930025270987463243579396326964357674115542581833955096280595912868950749109361100524207080283486343312941053538388506661616177009970931561187486380675980390678957028713842525113178152870054495662704993954462442819668728077143454498931781981253159665463190794557522803987075045333435156415375030524452345923514453390624137597581925208342002740393985506820028504311417746885781431007627072491679598151137433619880527846611219199741556062462178388070062148873439531809200380019987018807588637888133440242760212283348964040679713510880351901216397711252711516686444482048676575669023324498341686421793396629147870920964875396006920576535900211079335294355085545579079876802702562922299781809928549038169407327546490241169343716142514657882138015573170619202951871728272331209270732906760442290893560679790402583057764959699291721533548377025115176434891737465896310426246848456574691847518149564934994502431984138770353708733216109912233591781148986406051116068922715354763540000356977871392269515388800811715556163339730547330043425120153506342108347084138687043411634509726990656558047154932544262168696211494019256912539956136309355316334183525010884773216145772679994058936237991277335242433845962869593696749121296705691433145025552480645588419959156046620479840039174407426537875824113544506631500554710398985493207282406818547151392521174532194345119232639602865151779403410067127959766055911865811295956687403557251716558575731327483255023969213456970421223125669303846758698761210691511741378162665213360865209312728954574274280549113302521210400002701175573515268751999476153658962484998416005717608489230044815534527018588273379093910783706783295325327935979903031244245139133320292644063256386872101289548928041154916662418254281586572708732810497057823948029268634449346056688503675963373284296424862717280457762688783212959872380578039336838773924726164611293553721909696519876246943236220510134719146023496976173651969300187929751129571662037878767469312481298595881668086255416024890366701557127479208365508822713724994785357720786732102417908880138806876180252317824036570331258107297328064337908844596458005331646244262216021311985397856947072982113210900714637327736484089213779660420485671052547035185615376558377861930909456245504118516241885911250811908149002765846371583974672588252749653734139186488998862208320529369530439467380766248434082363734330324156240555976012762228919396083683684221246263078457982408516072158032673280753678056831409675838532830489702926724983111492805942902360102250276175091052555252115440530289953700471311826187277158542882326344327494889269524993711554845817277209164351619512389369503544615244656642595107932300051537681340892966189751627609585479941763997452135661504541822265396076888621995440896457242908649700401095177417235795539427136851224091501056121902727844403150265239590625569730923398761244526916598350930896192456267087521991360145565582097262236393888209325982701364127644027953257430451341086406006153767690025252396498477952508597256914803458423508911078056152545678003939387863117758023525197160594499319856037955516925784623362049686942045411296400558786911137150511520934841760115654416282806459998096768784325540550387060990682612710653899017414326746045315683471985473760165855248173836936188075710441023432507732344398358677458640138878019121784157279629937116929834387368575984750449373625603425929287537998619313159022797090460056173089940347456251724430672055220787815690160530077929844701806331344250676663210243614326977244497259648109066407910211352827654939054507235615668600444153267105831975542950680527379882819933365450097413281391761728180095208201780522528283032024205730424075298823831983264165964962153758991679110907823995409643372507901031597539229386727791346775308460064658901252174440835972813299032717726151070390960426681776427807026006285959943403453361459089103559469338452744132805339163518930205213544882369133828679388184388064959674367819537342467582368742984284956215218790645446859639621006366225399723639170382866264790253327471149245452754445051820870440796951437747139708958797492597788029315253082878665274571637165272032807480614876079617008973648082366812625207013381062455651446625312829181237650110641730332436424966089707675638819046807069090085602905105427424002840886891935151329413528986064964127886534888457684900427477173640048537587794454728526670975141614728757833382722646563688244623007410998731708241631476042409850673245636356988339610933907028914834783935910983756342359864132257623062907613340283218651659415488113446996678019950097098198004161138271137159417579086920781920019537089945677668287628558794337420033315321988066362442876411973474300854077321015357494371560200639036782136700938512428204653137706228248533067492609550443532631011994205668702202880267464069474658186102084344623141016827337387008269067488109923840103671850789441545161561179098148362762757228745052528390371086761903296241521588529915041735221691578635140147519552503733476424791065292698211878660304501812445549621768260183022770757260896159408781216918779416829993986916485665404878412292745117272966212960025971654837636930093338636925686117130938977546621040208801685593685857790811861046861736915636837241889469569055829374117532529607715816905715388951049348956545540261567408328568285150255572971493837487471722963570408689578393428448026765562744383577677200498052569900422579090428133461707643790334918199615885963020941451197937720189690592071154925134821397301936902460597663367112559335009542186147511646353025587728003710704651148643577491813529665077438885294917084552328644296013620200126295332982274720988898228872344159133945066647968983983648742356631938418931018892683552874430269718573407493127977672416076400958815152103315758158666556628080639439710356511958030997492293822836157554006436506571857658449416256180100256464083800187734899978009988180840443094137283427768434740786680758462146552030559153873439435448279274177473353137419164595227146483109241778385874856994143803663570539098796269684184894549736509174438008612432877145519146539627572252233113910539152615446418663489911962859885750484701674941145036903208210965643375643758613315964210295212551704722426391613766380909802553282134072033218300990025251959680053366301596084763258237261052984697509545937410164379615487886700026947016654287165396857636219140139516023029440851887171827509369138067702124034304549564014635008466614153073892025181024836927294418269354729850739777711633662547533590995381620987781742278907051496758228354857913584456228455261750799148040363154645324307743493272630396311022469897596746759414351822477142384696806141134395416709563226221702523912138160632702916492846030713443406879844916770294994458642194861907155753007258277650500468432470662954873814856090329779746399149302208238026340931679670380285267934884443430926916343591452254868643248792841449786524265785374437906681952924403161191983132228133587077544565000011400947013369419768108542451612031155089448002408327589220383340679490439621812058963302429300358394428488486862071404884488594252982454161111983955411677884939405307976717841433228477572556831057332525727534443411997274355295124397623493354338387485651222114016960037108751545366636041115859390818182589549989639728955387134601287995124943975622648940315352969818874177623012641069585104100127226158727821501975005571136785559703300405330145472059865410713518887689963251565921409816121969088148763652329538759706609296523166284879603781370115220225279985952732927765253944811543319874393487859222787452615788060907815931535961529927497782160142351714900629101506491731161863743954752685130722088550401343660815460574784393539057488496423572549814908231375815091993213440393888541853521865690217930677285476206844667706922786958560005570881756011335498763494094003780157791489873677544290056349206298404479153707318521798129893304398816412424202135572224326159189163906105211393172409795565958241360545169051258482450172485084666170489079569805055171970447596400114397834040685973579495641750869370066323679443990799113322728088671080451027695593358056861776667270205199492217355129776456180542969070958986487632595875176790099825366014339938679901433762821943650883107158174855107629115436509187929800778873346114000445113566677195479391743616373605797157948390367619355664682701182534710526572353059372628848641913044021844206963305374279996528255371239627749181586630497964689131728525737890918565612649127715916279502138703977170291557179479630115713680743361501826319370436289847847760543292032426343814159658628080778448881143294982168794439541726158859680844499144843191028705189056391134022508476009854478297649200804190583531492905529721323375893709111007500132230240720388973040533998215808031837564654562074842113955974202684842090132099821488130963488277582227031194982764446042541182463425747611155977054915445273758895244951629337422264527035312535565747272400012121535552727112752919941750525983108502384162951842344205197471145545482288533244676170601504384852760484084182262390806695463180805649849616033323685270815025262332144363128098122896221222460782022793073441191538251237802132220374618885282203287237095195972230793385781894342925680237667736510156010198282151244890355514744081848966423273490892658001047980417248300677231379496928601509606863659052357947785100423944218734209597236652322172617267062661197697693548581089457383276783255230053404508327283940471422322338343954458760981604858576108238166007911380652222819481387861004034034666884763975126279916172843598961355159473742153759920274801183909576850922650340740907295931540184337362105912289569930238125613754455997800177248786594665212415099855251440717482613107713355510009391358407669903169749404556582300219662978056230715657860644351561474498027626542126896034286336005573762240670389283928160112010734233708259697059688936980962511538008097113511098855568036966575282666822379507495755602506422310057103520347582692562972761237967427729585932605243863956983206977790836749280943436604049841465835516182276957479375981590125755025857071967146300552677278961394037072336795229572033068174885739658892602972482737722528942597447936321779510714385100695233485919020794658427523194284130370166075351391368303606453612899913947686307848263018072482378540885028016777661545959061488489367654095706936796843238294474921982397468085513652865255583172693797447712096450943250699231659045220912857774259243623251832759903579746300931513127837064808469467028920365617256490469819391576895734988711359147490470367739698019342427679850841953786709663338340353178618980815244144091314487450522621721424608138603464299359419736653828156283114227772596262733690275878594544718136303930386549581084158441489121531489624104518342845792693411899310060115123038739900892270912253567619637321881681131636139615268799938802797845937061393763281627782692070396870018033224805919677742159631630725076833801999525668044972473751931702535268995214244494253356313671038205629558648040645477681211299385966841400699462627602576353883155793504923451221619456248135015813422215775080841588449422589018951642426137139451722850006902338539378147200511267926222049261102825823281146489248282468994193039975621283533873639537903659912522210042481758645858905553355128636605208666973101576284983774175486564957949170798533593977492052113084106156607658523711606467619857494748945591582119601582380743400563523636237187009614507305657659812907920827286175639273507435996368209440657449869662556956957536888724341147975231116935736812116665338344785969136023197027134395164048040250834201051865012484274389563574471520548606789907681459133349508333877029663883528815044363299481707338891088557669958740020871964310826892983326117683195061832473937830358141240193999727768531221076301871671249102733295592344952013255506891780079554261959987064103573656633984368185079490092625392380596906871542950172675399126549266467566242630400309228275457086657280013066103865466025572460700099857972100018296054883762668182315146522142447130074670126577743986910172346536868526198740302231553468671282974568321299407617478090800397331074489991338879873114456588689946271390917483775011140365588730507836790324411442792914221773194489765138483732082850800895582294149456735610547094154998719275217739990099532927459296070331265441670565960412003551269186086675579526036107069742604761808898125854072529071865070197025022417974132679793043295470320258076456969627316756374356750920645153881864184369967950544812343127319748878858931501970878088961572712572928784228375091775325679638790367454059785652313786619696030177878631726271853836771513580395586561411258809257044498020194680517010007293092284244045429819482348703854317878264046076121774961908889086248612341241699049828036365726908908240066889694739155904104856688224148325785844925137369517898207167767954885005875656352716458590928861714761357838032119180537085684877530286481949091551720851660011245472400837673609722431537339742736003863693959835821364715037088563142828028552109401550049889875833112605697935376070467513880636656357864440281225541973768775754435048455823610680716725377630277790634944536860490568794351113467072598804746233003129353562571925060262748879750959516804692579195505120570432692463398727370930660102594548898519087655607426616382641997474648547914090551600405451421664105014402032566883775064702619993065647881914748567967555660327592114326388310580322474921489337290262295496323933276969966357167171622009117949987607832359555699010079334518932187144284771768550909546349887218380470367100421788699586380059234816558791904861041123892614293156517557802393683489217122659752701857060270814328623967248532491895919277289930353869347675396590709491966390152001785479866960153771799519300113126056491840191832846992280860853627823616265303572601379920799397501314604190589247851691338337542083510094817893965214655174088777529023597718054316754349544587540656438310261021771028810389624216883980237629382307785453094323278383459986722897003598530812810617647908967928148608519431034633575331016850779455241775826924688990547421139276518501166079331396529532631774729600887586774464654983831873937491262322423549882372864109412629860852447898762627070304319226725080962284918382530926786660201921999817585873995169686553200242803532330068289701634812728246105352422751576591351921185044478874696175654037410932878035919452502838119911952903363927558831109082289865069237339131510532784413223899683454074945265864036813463745516418713597345803530786152793451153055477980904463634378666093367500393083295422335197305398307505872672051543678494251891678561676509941493397319809940479067236314881440402659909117587437900636642248657427949334803324121787793884371529873212826293254994923236704177304735685724461753070031696352469325455546669544008449308024878824049667803116898752517042948521645418960042941896418293513802840214217481684125666055354006431673463312036790456978937811259507537911378896056435093540227119264472370378719471742898451500986449458053251562466997341980472896130764797248491259790892789263002124401953050602427505251972156903490288241942268870175269921643900524486113583200312115932860600407521743617991521354365535544058351541388826444742430557783142703911104329528129199850782038321563590354959440728041866929191236632866295578575810575182549624712841395603415669539088608546809976536452562963857034253726654325268359787364076294314992242360564200533264048410955045250939188963858791740101438416774283090883571493571256460884730626387846914836116858684394725639287278240697261775527059086523947471701819504546806412029383827719901644940417117815022408391239731925864567161716506922127403063985647301773722525042299077614117770947124240263111661750761756488474022829394739117493607916635180006652223299811277799304209302667220093252469282663706861201390421560292681229226865422939124008874589079610518984458580107203794213547372712982451112845556114041134097086698776766236831278922880877919574402255571461771727176072335713271289478885737271157616474372545232526492363992828756797958264381489775208679243114712771610742093177670604821633795484829921447203880906941124721366223066948391905256414103938185023023818491649535448400260200990789748234290052327305627349699262611099107666736151122280766976552579364532793730800158086136532013140436685363647665794453705460443070290978540607456344921294506750142893385575216302549453111923072108346816028873775928975817540882131103001437796272002424498118754902632570222043652302664485905008743267133144955154713989480642318212450135915690862381564147691349148674057480110974260564261493096829201923938556322606666553285774681887498213021584565461035033510326879936208786425583474735590645503006863655426742989222073304468286404906537146015114203114670299821735387473494718741295459767634749301050456628749994697282493139365092859114632742465675924942107015396838272849281919105649068291927694752792124447782862632642583484760588722714029945881709573526171602469512304047523809393176195049417303401082307951811004945736133125483910802794209887807690592107557128719620448740358155525345806180690868684376887219474240102648221016419632911951623162041562711579652245200993587416702818921917092482120473169482110418198940378572787716513928624564244931929435566390169386729814894840121834068424178939718884635359461693927564804879656023865881500863194809171491022175961618191803367778777461171873333536965663526570471333169272537191114995692426807674249885648708382709666938086628786136114016413725531240095891603645710634769898199365439646739922617859817029289749842102953933910140373850585370462256941825635042219555358435855649808766611428520800122630393083858793405655181174250372599285205181084941608050007395532999142175654779866632453833539205771441040907892472208293520073850501993865771702484076099664770322804962179545779072483676176699663750554431257730253437901399483576390833147305707811786847523376655356222704557613584034371779558015841341652002337160846209892504896957492853004845102294048142890918562239306273649675524799987878686130002686404940355769654388852035116669471219308109188042911761067235060771248088762544606708086699174682033948898406958850221696653013900636886257355561802057942611777537050981068480621105332686645133262297029759669240500917705139701754098793429157068792791069483281706543193129849069761791815369315669934009318419410547089466553015575250271716588956983271398954731124108543740046456379964474879864170187773203684138968795900174042453586746930608961448866878262367039577482473068064547009957657804655279863941152228304640421374777556946263954905286317706090594746760694078005045935416116092933396843379045122122962286685176974739300902896536917651427095021811546561246421094698163739632401762809497141687923564736262644474903419139087576307781118681431637736838345476820513329102380661233421916569800463532829659410615691504106274506825192135745177478846617899294923705507184936494406385288120868359888463295181254027398054818036930953556110412751458625191105251366472926063669976712179906264993195948722956567540935463975912552136652668778355457978407106333348394234243940892661834886821013343186001726252505067600728798138062703043903060104947570704697148779265394053250794004557997011220553188125651685396886228862578623696315523386663631959092463566139470558150962101823303312175910071313594691090354523031525542021917036174764751935731838014769607530248294997184765034444952621566978148733567976479345621310984784862820617937690613781071404296265535382646625174216724571998150468159120638207082540709679365382195449934125260892704692018428120765204486973451137139243732078396478260640538412895795815111849245289646340530538804600289107087044532139891377089930931764073871813575884942923951852833895926309749336901489745465622659104060750952699089904869814787399710287933303599504904991378267635809525150955227422598578217626677480544250662919676232461819201242177919693617579374071900076805436771981382774591427959268637172497973952740841838178617409651054721695715537253506744129574791473439675902654186581174533644617026693816779627221521233298734567606283692740595814633653947205110912107349417789492202835393240676390681591558727669899428597488710410384432802872666059612266315007139286115178614392535341132525385988800082393404268027022054337381674261372209167441476638950587615923396407461310836924315848375536104771876713635754797376880455463631149759261815353766869530863213958449523402913806695622367089003371645443726007035824512320547655344688670263938789612253144074960411362787762305700941352351419386203494532084399639257072823564545037629114161509051339987720241039274876775480097173044045046998062391670715654108052163562688728149052759423931055715767786838289776287461865369453468588314468028595051193721446151074240185633579851113991200282785284761446860456441292735014979435970272151126883238288122717717136870193006587971159443014480564950278619233028032087481115318401346345061389355651693033640471248213030381282866013569458248755880683921884262936167966535378982538666597411796560937075918618258145119235687074417368069497797721883353662344183890715271724293900686656627946130721045663143864878254073757153815199540010353571148819114707703564180465903252264494560911873431179001234843368292488773128461229529457485933573558486707257795090326618382361533336506558941493953214017157458020710857863771978859496831581448749379293236447287534986951013056626111653562365313210115565245807744216828363906233110476366496921587851451595713661102630663870597737318074521735777566434537194476774306780058697151998819840953659961898534695044480970100675746138507300012989113215100899746785228643816731777423975099960034107239782567298977544149394872569064846119583161924863442676323383081591210124943116146102684911280782667430222741667923374555484584597341189495584716088558168344094631921347307413128967223381470330328206875447880631411449152167502589338140592860644735649907989943607489537606652219105753755654398604233007183278186678450508560876245434103189432110009306315570744466838708401798688901734768659092176189777529439048753550578846748709874014535851378352712383953130206396155876855630502989960095268549637118289360351762964572101565177911328986579564822175620890595640106552792072510560063588453757676513540093207271529961143364547036685549401516819772750329433479573473322593875721554215758412747622187456607710422490959459448192846316408412678696041361567518859748375603011662822291857797992187785452134916923746978586965343193901582954649310128568951880227155965746596273763332038533172857637181770766841738511252247770565797361555721186672210588377488315477858166113645240460126654301505834766682055394398882276926830688279552207394350876487873018938001074341526463860398677061188243840887497495520270508279159392410724404128510205944153148038672025586567921036966258699795666478042758320728501328007426711852919620283708133392825895281171332259765299186216669617746170335486107602492405012661479576112167514698416428990759352749362611912486280464945162076965347989768742517867322453487626723195353274128385286488972999863287951508842585498537307848827028298715789091437280039371737323276092864104809192014914747821313047441531982407943316303303379207979828781350176457250095746672631978889575650000276982731903945398438847901808346738269113830227995545600442933778887359528348246559513424780251779255974785092481069121574044307097482650719571059289515648480454087901686421581297277584933883321410550179514174794299688869706436571584832445888965937253819485967202848593484444470053076777506683347328546486199427029217083073137567568243356009443107345822809474125220017770924766724001596676114225226304484090927514538236734813289960988169646903071186851844663817173462850014512602816597602344407807941486710303898576203984466134494502228942449312883085615521047206554564297769288802550039711586227019438766484771546899463587440174596235719469598085091096447886854995910253170704165345630064073376974331777280733164055667301196824913022327703134987390447211900850920095082006527327994794982294461400179134711440555916531877332623176170406091925033071846680129362652677714485937439325921667125012061025075813589308707013392661102130891371981571235479949814017165301117745745570492186925116763002979652826547699895920896215298345658586362221639611938985352265065710702582478062649048443409693744109506042160681326204029402313063900163614519791851967019600492257165564461650926370770458314506815465547574872761664975228823242751068117977574279803452275989013030838804788920890070763758823230601100051757424297522129132238135677558933254233453122336446865235504952252761893707932086441402098754339103005834903277271167804905810065798775874288949822218781339967596658348818428259394392394326668416878650478786745515272105558233587815235352662208416423270932116381819467620651570130203609702765597987116333297733529677737148392719109619787437402441087597166610496613808252526332184722129759996116645325861302539656033115381269759711712072129141120242874179753998203071761104360260233839517822393985298483377459911259659177234665370207548245413926880682784150085032142579356918882655184588954700153624061189253264023181231156966973596822343694400064332102420462896598581275309091268780630017292283876571841380514845906980364515257853770502746985539385327163996418231655354645373868883634278579088143591505282159785807714821976270761804256641982503525945494323466376887581331932232889299544003390260148077277786491873157374700961421413040722625664414748527412038129652470634556028170749160658608487743921410679009089379744784426403039971126315973252098344203142611499900985992693196403615912352269362576365581669031691266568965242886817242079162350544957630493408965102529211339281004481134151117994498194723498683718488811706882621199140528162713468216646538510773726457708036734426047648956939559712431921582831684285525243685703849014582055737718220569388853963296528276108459604076508097881898414719928254218577544518705698375099047299526644775700906133646013357694057217773694526028101412195246120219219111139365328762484254931168319603661040991131456113249532626571405525558971944164531130592916704335642111285971714321375527365367603717118052056523917330163180434906414831067217603708150819921180528696784261350088189922252667088472537775032655751112404870953424521939508982079280440725623205415237807680627268095129350485255757305195319908359614118973548088252749843825379742617501400877208006244513142541034393497815854924695751990329394083634343795720577341886481387210914665027172370871826104862849089460488788428986266847927805181309130967853748645640118476192103103882811550109732963415697789554210113454232602418856900085686738276381494675314168583941805780750710508023411610527472341451170271889298337335413132150223617436274806607542969523675872970476788178734204010351704903374418178215600541371681049125334053747645186832238076330130300364388749209974716264282984907381035990792081333946589795091861523153886220327638915323545359007892503548113293927014438773968082332801163228662984484453313990624802754903384692033238713290956846407674148087331474864591638780460225532386687475040050559134794012253587999613785562219363087979139439745668661793808925891379017426208719602383970560390155967307071365455922919016072696364022890643596111245235165331131196512037322647574072863987634249678900488019949264162747875771820111080959788297539942470295505025126096478259921516728534901748114119488091335994522395729324226676057263524760771565008043129827729517246734386369165982369704912844154711167743705461309896536569624872790269329256320424189672933710627023129323725133846555933222076481809786759515289685086765848336049075511557212753774637814121763051201497126476766694764236713219537913861228892089604465226452779267400343001401683947545179169370758181689814296932539040095078114061278061573919846107317691843667591386655898223700475347799844388935362016699845642800335013720764395935285847000996985322908166823900200831628773190739879988962088986932405025098696299362949792701379565188090149323184402556748527105281167311453529149281189786448061619303832707418002223107338003898174910256068035926882964224793893186796835269075271197369522083834020427886838913273162621970172337183314527221833194926532872194510321458231599327505783347827361577416963878374543651891324636671406003436839172675068399286438017641567444438658203052070037792577460749314031601177687529078438659610253451753319860217745416549970084094617646739675461084097826876317194626423787110161097058646272470889136670539965663238965131534809651061351434577730248205885776114008379473730824907257867186693519969340650199399900128490565538322677413506494714377623656742407557934721725978287072668003863120348166661471404101959212956456760020484662224955628735344722973559584944590803361104842993106064842550828654672778137990891928804818983605922467048840297633151118427960279153756984509694061656648463425534944230131663315917494864061115684892503996826098574003703104285624473738916688421441062856265540864713811464077786222689564708986914353395797705376849137773432122586791145005903474205874939503765645612690868564413496192882405833563253544935944285111078974849330034349337643890871154133874327003596282238959094908955293198293055418814383069146235893500108459297814289820347249393044348175000220545258348275870384754764136727265662700583913557875437645238030662871578985183213059917219538948559280962897147100071731787542006773779726880174272860021803657280281993600210374968049111317625056692518371891850059114061706918974958721103438671480596656464933830496632257258497043887373311570499954310106151296043838325580961676832498884886954465382701816283931188636256059288702847476743134646398858041912213818451674247105528486079786493203792371691451048907231497303863549189098254008102084685774192417881964866072464332696253578378109701256757541931215756326144949931822465990323165581319357079936136435547296256250294428265785237384032425476885116657425042925009509796719333184323999920969846389168159911299319896076402323555997265679513410581672448313690312293208220643456020006090103517847235941916493602328932512040229470967601123554293648565632242972103369139820041520198099124722623285275607497560355962348944908917204095396602915344413987647542049661185485199940427120090324408186613548721463094809880074703660624774957033133800260559355920492983068789847799458546990192005004663186313552257516150471407039424275062041504417402435741154048036221996243368197342308844272379887538190158913121835199183384825857673370422264293278232813569615688533158692302022351416629712321536703812606380207479308740398608745443505306262820891243247716690289897629249247981821937331091891709443578579735327189390167168355938822554071365761020645799401236616938435249371500551689403917003846072687312331986573078319804671439647492165418534198546066714826267969693088443039397296222666001373887435730790560790545089800103000208156538280044199353950648867199980022397750395614162042160048734306944219167299130406344946507993238714233164906246507793978562577135084590488791432329620221254561543697893302551601931878096505176810609493775394476862497515880709088144909618589401788507825697810165400017668646165458948624464726393403987752898937738149910305519208079139050903999674363794422004731205151866918825473940691489412517876689049152990025982967621064441357306297041212044520931106128798183328400087042481342527255267280958227350470994077728545205043071849591957311862582476884497592263455367119278370960906123437053963811475650133683684480191573731327388470937645877614686238431766270695593034409151550939031011271295684937513272076591238118283941589691219119043870730242030284224768739826137826214244591640836778377520237983468705883370690591904997740820872749084877042163615992655933301460706840893013685666635562478918001491067566396829977915402578276456004971369308105231129087501134000835674050681531672254508858508035137227462723989393723295912491272440879786932160459808093351020163836479427021761265351237731786568221934545907447110706719412598969642154842499058580252399988910255988923132698153052744681600979691634971230920585109533369677922844884109628995908015138642893064746751400496543437936725605905218473757929003859159420144221777579833140297669103011841348664397156775478399697552569678372367412986812692631821033125949500266768824964627066261125299969493160849231304191765360273185670098763796381328056365141240428593522359489234988076287582468028961551290662994588294036644593375386381547989241442641498033415207961479145650632988822861208474205912432275826665885380868354869139295898911063556301609976757589142777534605077504830857065380049440547483582467147564260553110268940694766614665000224719694508392086735095358002623170032967151207025593800391202595059180823065190996865690057011119447502742357672312407733319802249956273711960079006183960206793243259276383095396143405803612542899710564745088334845541569736467275654476986820598723337478062224491285608291306918900340360452881594094753897924640586866956906840283200975457985410874811597829543050846971493618949520779285611137638376959532928040397091025949200629066096399818079215438970720018563325658624225369037301316196109626028420858963361986961503684237127155277602791923259495955305207923114883515736646869026036373004522103647792719771833250197354945744468046812246885661063586720228378523785459362291260491655333036937594822954860751714251339312906652210242062844328164555449901765233649348667262061696189335152952099540603768727880848572226164341800833521422180926238308181879151306226012644788768659983271433275827714091899477967447739722724274116155630381749645137706449102359498835177910628427317958752525433473926632898445140533785900548708428414052926581831732061011969072090564059286997135427676602482544711523330007182773200017266534135816635238857066891941627964392914813476827509337636794350615338257587445628230478586973520388181114478646699467614772866553276243610827901192412677187163805475475076469436588101183391073562486454237472134973518728332668620874690715978443624294317739037813225428660912760065395618663948402900543555898293446392788159186438125227831164964511024651646812898451119860898983354058675669984396764751053703608279717407965478309856494622183141705327360154063894412761001173642138391247539961434363696577054873030522297639832066588295386177340154340430329801240751600935527010680732461377971844841787481760678987901749531996618938932075293389635622965973990339797132833257490653312204601188825356809078390832727383706695023696497019677762213272681192233519779865761745753136496336942622114601436214409685785755127469288551809133697768379978426397948986385727083580323187904827613428457555908871317445795452721430482316254680104824150564344362405118999236950805338159960400581430978649624246654204842720880505317562112383251696237173876212162102883473484598003846260998100521536197014796239083927232791255135028684962417837595996408217556022611085046374170323083385816838520462947379673462000037717748650082194106938422794889880546833442029043369941773322105960345797853940874951523784714346702779742195569059693501463963167409110876172079249398576721636937131271848168362696898542980761352678034222573043233201146676856337623733623448296685071814082417163304439126080203459670334725254588877134630555084826039637678476367684034920451718148780915853628489013658357315834619134821280773164789296231434131516090138022230849247243868666142257538099542924008616033846868422847537754169360720935279693133135019059839773075825521153349620831963100261337872304900360324946707387451007495467741316338765981826893931858862339467031222543970322347025953203136492498409567643222527156003810997537419365073007496536175866831344952550416507424894237957277545602064507650782206021030828019016527459719047122180899259691587670333941739780047724778530862094491093419071629197019340043620271796231991696578488104877709973504555879824390931648514458301793120429583793513955865427785224916833915264853282908995447109748966599383315836032978391542913779486346749973135101214536601642857252507691228512277919683168980524960196596020433674918432785162518874429131522197114435406916326453347094664776561092770809642006241302972776220742802674688317161307868474449272080410616837469763281665927251568823771611258897300482809296464851102782450082545096193964555813045240458397475024485261688290374467680254554769028276517513134828806360817193529970788964082592154766329415956010900271709546262664384672263133081632320121909088765691636304495038674584871046328028428725269208343452208843664399742043101338447258515364160851827174131109684363875413006663711198542552414513869667468919915913890353878009785222076077141959949393047060580610439257321809590185604216139686641528598447155092203616051133159446551674862133708938537367775358552744545688992198170543396923269688946141395324237072832777229292584423825066151327039912715826222593984956045238403032334576665703357978410904351540475238172157474820534006732198785064954375799293731934341847071443223872569640925022565923527919011276893506258501655939499192230500135714239173429527917513750662924381044089126579184979084418953945334064331047015897925601119034177841276694051663421741802384972275087843895302678548687938495872561430234203759733100520458132131173513331458169574055153618937040791072977247897735449094338476128936107369459781900421476438654528488593238543210218241534340423153479673634663957486774039421533518314787482745824918084409376761751460806038700548442679539348315748006307932201712367081854931879148216014332425579203510332519520210624529183441001816663729756639965419954091322449466555651723542609004568425617086630303599769341194214370190809247064235360505907966042034143994652450478376932714366732653611226587890680791731865579486572175841319424971329318429449436302054175001382677430836001357763888817369281235065481106699380005396550681204387746591945178904269615538851272037219013131833739809754132761517401638720505998456998947295036149506060978661048048117575120188140795041436145706519767235431241895655242864438069907682287294530872986309848919398598256874402052690303332659312651537394795141167282930687325905370597605974045279989999431989253632332701694358417100921124294685649613671726546158870926591516735968612452816729652951074554553295955810133553174824166198421972811321873949451424824424307502796776008135742856222241093544485627730170542081859171924763864763301381131087021802208356566284399930253855187850654473706647074238882175102316223482415721077372851335308248945409054222181551263280610441269413555556568539555823053631304834779827144981194371412594720682061107500053926990681986116213614859740002553648365691436859054194363929667002642130153454596347471116989047061004675642196535103635999408681763731314361495676989466129415654933337674839648382529797959231407783646989951545400761055550651857496603848069596642841054738917245263071224360648135860225584256518403952027358527779260033412027328429546561872507833721489592945145283861211928815692750610568225032489873885413238735018426942649836432356271563622565495592708604308178684182507645472709855738358650862431782618393075087553704171871683683456519138515115110692185496574695714061240321307168763036042410835391265399130991546810219118952913224793146213255106003132351014973348955047380520398128749801324589006863450932928604576047849870613182455599901136630788014884899184978338476653398126500297511663726111440713039568911981602562295639662138779153612149174019463977166127880108381631825799105170391953837836725430861886646523412034955676054429400982432891929001500519536653503332699176683529010520102637112193281691386745639464639193486958313999787331031049165051192800901968066163610087863290505522852869696200119440437203087578446651053916991462055015206726071348098529260521998407310811442838980124497989948067271415733844764800129836757622498334997005977052420031774492394148829240507324020756152757684059854288417515002260885746162563933363981060292903881741438985514203761306190007148743007191050442862108392742526304776893991603513159055018159454717155524488523313634104585413496843228654504537827211123951475322321262441178126971227218909369496837128834231313335299434219681413003143190072198470497348273616252091733599650892742982194267981228873367329710404625251502540006450544655347271067809881467920449126844740741222174935349042796438700198409260544289388475860426160766396996798353180068381221693442866065833388396363126851974516667809503566423465630207361397626978598627646544933877251177351647288606620490400798564957033021691096948050428243538425266470942150221172749395484098490302785391003115009962134301362127383188106648188326399676328625552873109517544503816655348547047451264340701330507643211642482127009937039496543955597673300332336721362399193983286731086625207070983994077375590840141516607102156138808116496288459401567102351301594104237085178904805111666014401128720309833832334391835499863698703743416713707795663764862871315161430079123622454042945342651329940484679363206672046892648121732618827946849120684615634562160398012754964985645843109759498683070219511696187641018589335443043003337573780801492408337639007295578471211451220942374903362375184504699929337958670457231823115635372025630291092992098115062612791972291839801693757904070844797802256468246509121485734404755885425899666195840794327703803108953011400354125413571336021600879243427966144288713004673132324508232991719907961606640908209197310839591779451287316073820213456756835681196107885548591830675260852373912930567397846381193441799826898827033047327401174449731033535401922102933402726381949476753786228643165173238928609795714900321655863458872687695438950919261709567124933126711453797114297345534187266124033945028092107375322459749564091763597601903386791568017805269676499408935257245320761150268784376483152750845515486898137050727759597675046639458910591742184768054342149122112903250933962120462534969899075894929657128896434008235173450724332876439411423607006167979506499665730401532136840301690883026963855224641047433197851302007210676337847834494634227587189565204607103881699851567220177454027983129778467589508836212649086713777432650503978105487340117104737517328123987220002245817818856104539399445020938482256188383234625362793754215438243358062205712131399592252145452332039554679530497166805002106900820818241236971154051548367969362611808097661336076134143921934311620487744034008878601780934963341722511866363223575830343179663793356145349653294841022103058981452974352581287338722084943597491297399044338869908027102273073508822913093026927862855788478342946467405154759050779634606964651082833472605812667113715657710353201561912282656669868246399244377451186099801312294210294561124714837355104732032715744454867540730108018242931767739381293846663648566337230771244938747489535537971718360231100775650315516817037363201611892735848245781686297327919310921244656212251036055281744866825220478641017402911817077872934113642316436290179604921452236688919035402375613783535215598631054385834853454556755333291309857276111264987306974709625722831702436606497354035145325643599727722673388973699509298848404428689831987070356651311762165712289662224546117011458046137521421717896712817098989907279595095016131345538086673398488068303461167829772119980895194653845943648212331280893536770879073609396068930555673312038826782210469936349547609784649277041851482835115808057799771731375888463452728353901601513768127290768474892151158054255522527645698592217544897528956714038839008901357570109534519105034640216120160997917704688296396926672193412187879825143758088460997575235294481325829287904832370641323475498247327049127252897870258031418764976674429048830404653619623216254511151282194739003713890385174663085462859523693298406640592773182424521227836152009856483899374905107875765566193612184483317341747873705619682066936048583084614609631142683032961462307803561996008502658405927159237223066718003171406260856270685924894641657109564721860581760357308023672776507155333952535980856177696558577776324302564291003549832894457629108813421749621853527766303080244614936672476190447190190813127970211146095442678559274335473999138222386956077201515032254063746384339989675877255191200791131929600691840056266024282205209584568528444788332018360100764995102706005052595099817284118187170811434071354110712055567762504400515428285512247625446766010521116086393875412663830458462604897177400220818404814854603797816870491227803588188952080493450988825766504999655170850536863704063377299440569421926646462599967613051110638005022416173536049319551862070070545256771103928970286287329818837279677263565099091196994684797135178875688488891529999712346440253781717255560836332102673878197211033109581193889249744879989235080138226690400029095357119653101385113699993830335466613655400253461035687576447204568282183914719679871859272237376603002679521419666691015729170872415499792493362260354988370283225453286859226099467882048314012732852276909141901290527226636021046675311905814107412812015244891312174815928060756776454596642232346674527466555733526281125456600604020524386565143412654157779647165298111566360568109901175611259339135687172824982608502675411221895786216820441739230341776694776406139068238289829165270790586970226436874091870212890448480587593705367283744320305145909183407451303236292419415706747234982667601525484809148208554550297689986624056809980216351102886064956865584157517959704494006932764127242987151844193549460006107700520591615515955308276796859450512563064467661566003151270052830220713164709661419709807674079938580163046527253295494736044649626587610619039667655191541139846882262910603785359448895158015738360207743799821342658476759772172088073556334173222700241600462278297341873010024256144718405251317485181562398700519234661888159304458702550200655089924159984489077091299045005407637784736208419020973629872161692785099157663129073075508949501797523233581221312461500444553860951778103217075529971723134976399485245124504796041429901120595872629251896664536678047332030689673397394817934484131864699145585279013328858851444921545607352804030063891485810712701830757771380704054560817507755161884605058981245600927554523476610920515171015512773837315313408705442392724371718478834588613084986169448233196180214343527787674110964702805097299194843832250702988555381852612307405669515914580145967093323041952717850910286159456120526455332251115902227775111091638021012936227166046260012498803766404399839526320266704333277899034567875886376157461403463951570923810535080657012441274292601365110404652205563978725293934608752747577962185903929166646770786970055334703699586950872284144183900633786522258704333597374594345102934766868915731469999435806358014758617910795608562727496199943652743365474424479000229171753030505543634598080088534373845740959238195054287233666837627152690581283029839148764808466083811522985044820730361063499385404386976702771487393592769961886234078350156125427759774364597491320935264067396686261691821581002401571638814074326496847604765945714514348464105947959461565823441163003167852880388340700237071428700253402167311383115848017376164941963540655670028751710850990986430484848135268773821902179709038698054622864564117909137389828759441693321434368023322010103259593141311573495827119081355515862701368631510637497987027777172724568894616573751716843829285199172943316119109167031124237466249144833554062846578882325378481866623984569739350641256322336150055460339738630555002927510432918660458171807141718078879439502958185165998257647873747549541936942113369190202365603071839193203476785420743234591043493324429205747320031352716122156928729458347587650053567107256669264553114054647285495228532635787025861622627316812280415855585732008778146969923962351999135308869183040234667563752445019968567243282716801449425469069923800077326361856091675965102156569688106777463822395146192880408307453680277963289576778214128519203157469425631671560628281478422850151096990089787524194116060175331792881612344936290520497409131629405029387585206518272967523249751876045221889486774241840843239915316902827795827320303967363445427812386499406722427632934084856878642831116465274184878187490920546302447802467640085222422999642395648226980085407247289147938401567333685755131689604882652097847866228951967022198111098025618297663634323969045627961897839103562843491711479279323693348044091965307272288872812139778637321106861370082738862113227099508530189104868932548885538035735631385350391463935456212794342728142383812317909051539440001949753626472755019864183975614257079049959124892290013206750327170562348300745386397058000473116522135306917996775114705630779340718405966304712394151195614817494393401753961504677464840313646641089899086177804026506065274080350049177648305623531429396772205508972020880345935569707229723648408448421085303466224499311840356243777096173323749647675836002981401135729823378191208244307101245602387712136012702338883564835967701929381688699550419588122208233839180163135034020527603544590064517753240494592898351860775881528729419392012943902279541987111704191399580700474905638521596167363134260019131320191236760817252687207934759920010511757897316178097458322583204744664151329307462532771285131825492545200545673738064675604238652726128137481912452992443555335014530915234874651511093728900101086793537764244123764747896995877264068340104276258022315909848109570707261022467645121404512923447010895971469903756778724699338791710793499528019529826787512310926312644354193803902971501064276052573789829948666451790075965531686232495164148176948197136963279207777273923324825686213475695492405011087758489965351792955025499412441584569445988860854951992698351708641193120275068619699917753226311005197832225032818007940650366310931591063303702926976319627259765433946875405965017513388135641508925377065962050463609474260656682185643184136077510998621162095003749494960657809363443264037466219824217391616386121052846862289031016372588927308152315629935622209054599914499069644214391474691038996912675312727422253404025377191246773502922819995817580514498465733273545707121243527230732051720725222513699670162968865939905895760338255357139009892915064389582855645830029190326469247846929962311583547387537376572874049669917307759375801441313762822238299969842466383254935508128689220664136485852942196671296031381598649759643545644295391678359610082527032257099404476774636564159438783445899639438044079235030329084380550388955860391568428220014273774448234795778622178373819828577301887283585735243907946267710140803952146527101954240538844927149436853136135733728861159273410311558031960014204792079876485833931876466032555044391931215893254894531454030141658542182443685856395698112555442696738825006151355557199994849303166389774375378600115126740729327404816588698053300432380164951077928164218453436739589145831064902016318934397504274974664874636822849443665500888443823936381296800340212396611300719689920748848031267890773763492545010067764116704512142385796181911539201996910506167346326498251860033468369546639541869815443609164946692142736736964386510524810654342957496714159959852067670535264252552154075383482252283025591918018939575244528241859844776998134126586868264024175490690358358550567832314847000322139142051693579199790534325809625537213712534402383437464609753716139865265778042816269949256095298126104375608750008135225519469319979230431731260110340646842740053355217891542528494585277716724917414605841966861453928315447803561938496731634325153151842630516194384762355129498827270100191748357276393006758918292471005997921941527234331780205304126692689899828080684573093841538421997259514299001078590453231092381268097907092911261499566472025908048600578865299828351780088975950245263613671839690185619754901262350220637411401815488959957857690338705965803747362633267474082787402738746549591324339507958659400243654903896729138225190267676207334164062639587122436415238722667090808207081249753563876616292781270891180291001575304901534383307340583217458826699166624198278933951516047656034638893101097778577570249096892533595733017531491805419724777966925686785015413456879146019983040587433901691120226810418699577748774433771250197496943160037753638912104121335875426969192150579895872874331373264051085626070864350293967221351451468724148544153283533227605511181384165576773333645564862910860807410265496166767003477413349450077020742286997693248074534906598059486857850789706873822821224261985041673009846298107231112063115926930344596160284606921439111786094066963339315443428983524466430609367212560680930131738940559080534364368582025782172651243489106681859831785789196845517189576928660944779789700470137605325880976122389496665403019268514091450246025654232886369664173961845599009103537075886609424422195801377761654910703486858729945749469125620562804341816412019340172146697220760412415599839307026639773601528570401343838456351061547285760976597513845413357906451742754241746588659326617528833551523157263652788325698639031139376473916408731157373132482775577085544700045128909098643931710652002749231872754826699557553469167143947930893467104132273892275965083865909415154352832322477807124726287815705018370092398411650652197540203534400965219000073712423466963706104172552396945041159096060034853313339464173581286986217563220515931370009864682675145835694795316991658348832378338136098328056799200449521152224447777810461375863516955847597109124058610295825196914040188975841150943668527272590063987447016779569567463028409666379756362797787660867171774631870700981651738440174552487968412618506234226299338749019662776947961867167891893532292655701288805671850192693425840235151325625723808638372394243423344230627331579987812742089908171758855344819123965150982805522717976634711337507290008125423447322186334005762558821585993201855782616566220166649649659889708984324611435099942922511679440314362029319379145728504833459130667337396994963958966980733963573950072074224089716528394448243957217520054370873334040483320845938818641459529310363171239954342932098102018061620234816277346234473850667530815139193127636063025912120256944991062304977385614154022108355694228645153916419125116251012779559627536971185122664007189194484403260507927697412508048790376664321923700349654924636508282788518259558801275949804831172367186714153190083417565431015494827276066871912615207740236888234367245575388044703773744369029044282729325495867003841550101177545856622537479515272875825317213431325787536533333899570372731675014233690726838884695794935305009122758570264384442717337815878926122143856201076444032793651620160574373674402486619597074884216432099369534784711356018444827559036322052271382440955916996327211171428057496603042765091980642925795177987960601695914740744487102806166422642369955749441401907615861742328487745096774335989064109294172116243272863273168467841727410326586715996845311560524786242658013594781130747807298122936343978783857109320074260264754918503458514886589145748981632148883712076512458328734342821984725139372514791000554691305080882812525650419548209707808335801931190269221487122142408970723966575305008774893015064105534803242318144651513677947458619059405387486625932640864868695542256217562673331245331627783605497976054337142361579416505892226785501263416414795842983104814682297922352033188090168600694118818268544995831132172894150364796089655963643021031901302567534565419832392962454456756717991327620251727842847952119218511994603327614767857045289516399698786194296729075577768169488336120398140119640666598809824252800037022498403459972508042891985291357489418644472680293362446399110781678903093554155917980069505592553085566599642689582993032167098599400242880587871258099314550097719102319944679826570033178757390420714592960579336687645661141961861342948655319341828945665303418966904447866549225202938745938186783088320715013392250602703227845333772812757914386411266994256878373358429948624643673317643184005430677091242395418095402384531187489239235142534286419317631782791660618812403184833111221474045253580136038486161944718352847066902248087163789866967580764766121527995485186364104310361130315566211908274216447225630289416640805142253099618199189876422820090611423795401284471600088840115909912772611522074315989949423276446378277116597825729988040748024592800472161033204440267107984178264734017316916696298588656185045449147551005874116122043319605147677985783799342262686206415139570562774952425971932300552063510674766066753613331571211882106863059084259175695477024515333440883560492219729431055733014618189827429802459030767606723052810068168553713211309027744413915433387568503145171810523633701557798954866204312297622394606837691025652171760212787294682106542598838300205975135910998960912951681891634662729229477860286737398452056362316890890702188818519602741460145825490357661919897275348628196551484799472586435530516342568835788146364526246717933696207556240106365892062302518106249656281832791622372341024532816144725389971007752236158283344747273181033645201076226945132722988495853700499026330663726906699380897386572496119888192842585720595025555379917127440773332533087683423557723877355280771295515198422954986774786639808113589249302804608248253961782258939308069635877815402037380703914828249579277020640499979721028545287223369487760028171431391161079008980700125365331232969884710564211891024322903770832195404394007379161809493465939995724387758624145200504248992697954404167458915957667616527444827947939417056204173108302997266385900974834868383848447051144637501238339550728042725170502664389022756988694057452465221038963494990450402811184126732714197330375008902659841996013982807227717178259937194647392238027275824034051005502830268479841118431328791235709347928801234479844911037262277073729909965965469427842195885522775874254948082897157968504216535516932421018999044978048454368358399261722903436633971008884491542992685094120552490908181613368365995193241685211699373926232668152211833532760884829900311886470957641573383394232485444784332460281690261555530890398348565601008214289740343521864177498518821118875845973906143766540552071987020599310839265691525196315492337951937453625856458158252893173281250956208074515909849543196862144300793028585684181693824939369840834636383020908238890498826337856989768892739317642229904743866853186265524775780496112882445040411537152769117357348070652171934816053896837371692070591258094480929600584024637036799382251475306702886437814338890656649924868916816412195549841455410246545140778244809568784509269472460807289683706142281593979067564232876453500921112510232843978491372620564838037227808762108736456900093338595637358912305199364069657642656573044352995615951585345085518640776447658962480857852634327399024696494096735306936344670863194834922806076259037866742950872698026425109928547573787704351403023996146445337773175473666832045775217505707371601305466988883953337473345888716699821658490734848040291303036600980764426177045540046485775145764189767819516407936097111655683984849012465843302236178126010375493502605567743676382054923050853295648366396400971925991465745373919402567402140445057231461831151385180890342662565568757372337955128176405133480660037788596618292744149528756210663551198676452057704989812907382412231897238171164016183904970526455908845411382383044439807678029356764750415422629957287910159425363758729565189905380681074449168935364650558126084833930834919762637009513245112266128829748314904711611889957699739050122145460512252645252523048281472544144736083530555818164606695223608780223760039836125439573109814307259569109240190003205219666488731663722483699216907098332381641373294039307366151658550707711817555532427904510667652361301257063196666408143500510386953174832037957178051304272060142808764069911144137048621348774929479024094644820235573507646858950494274400639020407579584239966763495874177859907530437275577075404582490108254571012099112138425748239603065889833270142871383806693419306811683222144661708786996664861296506886974825851968385875748547678359984576168725271469391854970487850395015107396275423884267592882685733640612396074922420955484533466443620832516209612158366618389192213353639403222199572843858632032261673916186180433982171780227497624563045235685784959891466194456191280889744082389659143149723684967002329871153706995568105573954458017013167725554369651870503116134375447634671038918403219243854651229505657566545088134990699137082379022000336137601341329396656975252651532024092759255096663728689318097206215391817137985953859416494434806042917368939171975451884373030830706129419958068722465367026985407588301775560343395528575235203016828085965225248198866606777699903883655331566106079833695102966439686981848065658350999527624354303701113536819541241559895554566668425838947619759875647263660420211307808430263973175483218902866555292090453278788951537334074509877335739978133524804357802117384808914741200569823923990191850512249898568565550252355280214380963612927249567821505364976840749690430209124384294725656130008313851131777139168055602445990829607278379890212335801380488390795927612328468567425785675830967574152867598648671678032131787349715101658776501580201763680505257926051473525315153821090215244310913905469705936413967022319947503144644058006481826479807625809345806500266812496200030164755620960745168944173450429782033604987410870109958323907790958866647906024774174926482933038089474165146856293387015245881808809271820622713796144308295467622214063882169478680950083803878088713088783156197868536850361487417756039010729468885402451020751593189823672728225214460271890764708073824902206895147450525051876195017198312795943808628990582722703162452524482444937215089165280093027953423288082690889483111473221567078620604331478418577866822520129363315823512794448072781247988953596436514573905490206763856931217889505268701483362600554543430156044041017834346944839256393569139538375424825553871564320712977878759390078190230126549590405490733817188618131889222082643802035869828178363090541613204143624519202596757836437299835307085116258114077267462076951560783701150115570341461123579283289204532722410306150688863293748587351819713380802434701732197709418894784267683875642922370009762293529281629166041002072378461928589137735373785788371547051459006093252992066368135934193478959245080304764266016423983615344582611284628981541487436182452081271425119749899914843099509089226696391077065077211334812217955399084108327469734020413082132332711910058542025127687445515456636895012959991956165849600110794693187497165687671807859186770870943072001576031787798045249948754984585764880998629049818565064829273445480457970524255562553831413635197461954816272786735331454827269929486704617708780566409697961517817399563781518446051361271184328975206008470173173647192561297193024630294031632951497948395643073005265504981567600516767567368283368731561698358795823516580860518561565467031903274037651663727742658853674348062108425202077770440340938557457514380421024414470336902442743987888758979908650415640714275978067377502527978074724439499025352000063492840311693036354635611411448599700518094924298774974191537801037320163090610886880561076519240694287434860545479593422332018166146153470673605858123745877160628821145723559405308566333211964520882967866379429370025992262846415015467128329585111599703790325936109008272349573018000588177505805812953997884967169935640621143137542134940110499974676717549099060139405947559989302934053383492561456750536524695377837407088744974696606338904037218810827773990550072598447460171932854988969081691903197044176811011540214689217693143968907846663144229450202289632102638272098493734739018840341017180516595423476826623766919782707489840273200196053007078401447607810438681031078944180146821412447623502228228067635654831105327388764036140783797327592445230250315125901241894805971089076622983323797411601162489017782411002400123578791335145590522290185354491495847989395863255717081954234828544056090025319732121249324696168801335598180270160241696192254721237235679939500839268597812340402754470978197704783522344358676040346209447801186822376529255911361420164598020357538079488439264822650799757560743381637817611640640277348510048982586772458957893365683007426772170517529952937645732792495039905495476300128403130849723083832273607332280520802992318035553789643892620559754330049841027036808734609502409351685575814161938115643013188918786741103328649265302783925996802942980693256684758015951220776560461806428075509717663602142581357237693297175531699349590671586947321381435565867475277660602248446260596126783093588329890106052182568581283537585272982982607736673157783376463167982485333115998788351074606929277561126200643153035597530637630166771943951968138076688496854523017337976396561043569143445384428093580739240055150296527544787151395837154230244305461068933877942297061341922722718122073553630588729904598746901981483689062486544203593659806452158262774988429067120140981677522317232670167882955782857132807289282704161638629138378510568928510500257202929826179600891177946011429140936739416848059982243653763329992338698611982986037377355299925781690281512271188564844195569716243435680470132001835080503424894906920073756321513130958252221693896818520472741164331855496430067805966321657865648498330048441473439562698705381889575276965879188838220409862594542716903528930089254737496152292381265260956250850078535349923456252091940204080922307423665242517884007754238767146070764154698364760285004718795106755904573193270460045014036310870811470259277749912369226653018648608064189246137157935857110933928670334123138296643511273518583870786426766658350667658977162629971953423673075727562936059365003973873079182235066954919938941914240272188353416236708557142155416083799153337422400329530811976017323233513211702166980672391210075757812935668046230674830950305223619645931724195134035111957196611985450653399643450512904838424565395294729612485556049151399042085718120813221412459505188090351869788369802083792882745520185331609572850560148550929259155264010256825447505167574203097510584432433146763440940948395663125830735258428844576717164100361634906615402418273920149338867445278353668571219712183696964118172582276692801336012323180154235066279885847365651100789456952897598010935333386753774192983994038768157698284343283261082717942289524696198619660459564923934602777299834785444643004117778856384926547934991674307326920098361342384800742650652978455877425627653613927875910018593494671618780777921043926065580597596010433056893228171424882083975646898882550296892915814679413139188424525418757090429135482735150695735888854028679856351773614449920466204615148089520762180307705988228636493947972343877661895595184142576949415378309258409332408012856963896726544429353858276316655685535111775662740124724402022557928684618684083372869964107570502208531387725444546584440201497834887741129576823906963216938682519464746770933079299040977053356968984362785554950896624492706006336911322839750244766487375453515901115202236205551918650181115204414614413143777884037646704163910813754962724649649105565140172893244552398411513089816013578914492132828823154811173233686435011212151623353136568473084639477153924483360838204201188735959338509660365443944374127308025268104248141403362048217858300265054004763329633533890342534043595544294771166097347763676146230938650491333773741618386863750418183459167906093874082036959173252576517057545773913741685438218774449056343133636264803468146152366727223553829937881195378578125707532071882312006140795104176848740045300255539526339099336295350020377308332192920032570595484118563338917100385680113785752259888380971020303364092454586059392069417350954523897022569338776714461969855815980918426858467860160478941824497617993477903994811509832624602474438245565172538894595255138383990168033892640922329361985144648415023057563729440476020302548175188578261851118547453185031868222657862002277114904093761178514277042512811932167210594719260374545666226147261553975496442513632198050641754323250674032310378418019977685031601366448391909572727827886984652104750517466017192385122551650826577675873125709516692257684841988174587121747040557281428678076598778445507240934803419387378022610776798434770532816705758116066276390181303809825626713217256353816436210339328156223501767012731817626903519531834041065717227014223099046382565063681092497958416746779295915088482837885949623569519581153734712822695087708893332233164888929869910715620179250880085805870830200035375388876132600728626107320682802665685456711390187246106409931502402770010320319007258459267716952007746915662494604171246181912008416361693110133824739912159696729247536796735653503024012398003516131322435705553904058757710480916594134986060075319633497851410513985711759852183823837157786641787233268814662028347111395451091918605198555268932489020310317409829244962087967880478562721098257437817375386922478458866416687619157853346348512398056242482408428466969037864933301161731604971307303875386366354036881790331954378290129243517880289433868124597222516975501803590886863885993263563117466417340928785758360991752194375751927973518641647265460970212685486591562673206948122551288514764249373694158748427355800033812890064490920186239479596739427804479744110592901871246701077176692696254775653411613709376701895279719370503321558499328323724928181672185226148860514560650791162758179069905164222844623321632613696863806298026566354345939560020773857596139306341914006949530540266060607028366350544462706646841240582418385294639916885559105583350560238777338232037934569483934471539932594527743775441573534480906499253622781806785600101629702511134078672197004651669191794423002254099555535554314991156896101973100571336831292528095787809830259505263615691007120130727249666957089807361597975236998624878482387267113453462452201139602913546787394849459811211421732316611474607939030243674136199698420298137145351599959879629899566932200866486307207750728784140348640992383283395405269106282335423004733891801078489461088886023271155140199096697593343517423573802069668287583323976896930728382453673038250733028661918897934533241751194802220334803229555787396347436214411209020565819320454228542788733457363876112883773156132125337917011351372707807578052657281569622498902161673499042386333492119301917217703041955267874993577309745263174813461653038870827024002941083059757342314807600508512990181853394772494985623496808171085235949880758130374579023893959229353137461276548284226247632266638970722298746746764161032013658632898444564531613450321557138720869092228540711602926549264654136976996169216681603263167120146130877989930057703082056633056062320666712478109986632962065289657449037265586278424044211721222558977767580815432270294594310876017083771629061793603862017798809124420609284266005903429783320399318169146682519152894537484085054032329801251033200156218795371946359400925601329212485854103910993507300947704132271241141430210471656249253077240075921469659997497349882522078691924793707235682272509249056998620218833661171795583953585846466538073313760228965666569037466109782385470243737974864316106709751521832004895809579530618692791769098189062552151660748163350315040040695704339334865652185113747195437928968356014916108034453364594633296353270697698407123610631436696842898681481475243004225154585928550749043296034138545907855186429100658962680823676811091920998739432866706383358399237429050786833500383048768912363202195547423376386690629912592410503700333310391432659444722680419421714672822376261100302521217516369412800471263141684940287645551305621168986525074564899380457434654826002461041759692128824824523695034266215744332770083278089764824720453102812627627518883297549881612272673901578311133322050598143733786590251602913202442679539370449368366658285947561977226862668363174334103053336779913159766128125662791764917252877677529611578562753815355699498020292686716914176725286420459309850361954224124075990451345813708139260359417766652952602256990228887124250382503386030012309551840167068027978529118028986177609531669694749741983422019903584551322771081420931976241189186768265386889163281700679262236185206976885589705848375484795446675985034620640592888262716828541580674020580778635828905894793971563314292410149941567670837230861557813656892903279545853855021245559037705105573527900385434881019420171076745976303325635571140937899061322351738919233464821613292099201063084961666738853661046778102647063932717488444516022759232712242263872164912574387621283258043989696587487158887145197538682146477580439648896213239404164402815130279344336230969585464567403845311523856744157999439881157460878757765679310798131895598361663433633881316693336772302218376607429938908186717775941922552015829838624937859227169830137851176465093370709076687553390339405374906903522034801801169691152787897661002417128009544861308105399468808562154924293037921115952974197726484123823308863041025336425073335823782799195501861046189804747519832386266157909003255589035272102884021657033701885205995792406272033782823815277134471295425655900122122278022867288185340086344855514703956863851255584978842337665907680420212836404848949272386734337396891905989657361015738480046391452563011800031493929192057327147925925173757139066263355521169925719261135479825008544305379329464396564555217751964700345228896402946513003444233736464382052941717530670608839581662111200037964420255950369610931143054483857334175029725783955073464282146570251532649929048855241244373223171579870216457533155490426669484355230078107357721229684184960595896333298328693255327911281733198074054449078571384951155028143525245566108821956133985102357812480678001031498784464040250409127094853543425808836664015058257225894097661228375407192137179487422119305861262886266811704749154655009595238599060820152165349258066666664812611867415453180528710661976597396352273706334873305364686239373026128666461193687902432608977613636932986810947125795333991603855184855597397935254815762070417610268263966719269414323113212841803599166840318844639887629702657594029360258719530076679372026247647788246099193548652753106897821260689193432908982617916883957791715274252936150206500366063988743670129825078472441585208026836084736774413937651416800070612924797055819415685401278344202894431675676548392901651616753245532819238202810032751802102230573694596834559976470004524466183923454787152093804734024166070426979003383323697949752288544628137583075501447511765122949177898946615368439176701749221539154835203045567950593611474029047747896212626649459857313594521766603101035987534304301166006138079956084860961805407923494472201554671581929641902508470839018464107597207324281613748939882630107594551785588809224112622931871970117441834947842589320162052783654591668604357362491498447912578797027776062408682000665573013619426454699508957959447561955689691339915138128997918633010013439883783665202248993338995607910909449902391612598498494374372245589534251659596316476969614476926339851438595286496073182892566398025176965801669669756466275840434498565640176545499402940540504198641765873822809672911604642776555062854543678776551421198490027000079383094316868656331288944557309619868073521639394832781539768826422672530735229479410757922457977182154152828377511275832673377489325418751862147284607944188607176497076609184516761576581739709378449801911410555276283817277221818075094955384972368684304740117974667804659778535979624194472863179936694320632110639753293136878691256639683263626938322266956426234238887460759928421660674399242655041236780844158681338253256171695285998000936772089997513523029136060929391345752618218474610291263682581431015084463623332114610633538885347964701951475168738845056855666486065392329505059049309813503246208177964793271121034443723586121886940678740141560861250685462047287334912005111008738547087621486341490412406975525007374844474440720968297625594871263516320081027377789412586379070604715368408269027699872785041815562964094443480096870183858782182621816742781023911313933159190523960223728395140994468997625877031269460207785800092274889421950270497394108291819816561497870108598705737505946026988132367836761414470983868173461058023386592144819221069840355930675329347966619085301465726807497742230978939795720230282165358953625872641704469573502367209108910966684944776116901029816292667343482572612650524977153076492910409499944575733978721231169664804303436634884377651602973825305821651118962308393586738884956179875673002846284470771180871572405193660245321712080993779166182652151361853493562651475986105489276497720100121193706741514088205022746038108226476525260961652816915976974927391690169607359515921473512878836394257296544286307458377462938040959209084314893863895672224538377201358279680287166787179211964395026598910210530585720026550562752388106286469088823176139216690649840163748977912969336927334702918718297901550963183983200648389175360729906058587549550471993408330238413758515675200475100878519699373010034876221101365618636056564611807567664378302938133898448235644325249140298686878494593508998826318885736196629501291565578555986479362769826160201053842832680450121024114850583205172702494613823259838241888384685034725622118471595374888919271414475708419995761971526565645785162484263642166065509052338272246842040971352342207104230741720022784921701098489574044874972671786734976226476250542567416395722560218978599311390532159826149141406657306598277229562831085643396760783031702345755767682722425217355505088500115586250530630605191941634968926163109000409689523205154545400213893637989903538220760300928245702726104320166157448378528885266767176385691217506315006158175584841436481700203290024488340324277948373196874261091510256375549556863695694163826873660132949604947560046220885396193484311485877053264580698699861482255403007260035377626666924612746615593653055532079048880275794610538911823655422566647125977764455214045055802763075391770536661080037091912864732684674986205842518347313460341165283056363635655437571926046045802061956617841831733583483231087070718288745393870589721300760144157546235022465692281600235943795740206165550195709521886884864285753795529116626723552249621167269498135936882395441496958683242736980943769990838974141790601983879196958826264600786253051908872940357237003996894579469920088281632745887523993071490329892733437530619330953514797160134841144440121696525407992704955404442280179387372969412483443144196300543439435242975026307830232684886326245804285378359740451258271855967536184418655531594614785110223111676456829530834451830328262005777985663813401128177471141714825333449733276566537544565054072261122811734806061186691968448483925105746579570130763554948838885603555646858873757515414619642185894888692932809479913856550583773582050446764531516585804645450195924137919443203807188759178871278656312954574326875770953031148633928205631035006543543668333915582522068370544339486988740586987490258043616102797613554291184097784467036578727242032401296982117141286765040160053694258616313861100225365919608286957314465183760066359481853175694003799357430855028967728465891474714598324817502949943564393391034651355038078541294324676236836729548033141936313980855934443498312773712023580729696753724591515308568303579206591012003830541362375216940180589419836353030915931624936450477268360289308427763284546712848616372427976299122876967975601310495330584301544543641690334261883608227914424168827651069858375042421875707254648979153977888251731970174521897751188343550735401043934940093425695703817030914330757082462309465061545778987247565746253059867611210253119551548464022819907810745831462875709953177821449900543502889766261822349653831867539442558530118131042214222288037384091556032760937838542250418547335512607156591642285928686808780147451182218404552763703341943761432857014403617599528245563952561957025601436276937943791437772924330644250253025235977123274960786146283562308383301724849311503576351144969937704577821804480516673016590119786246039240901468618742834768093689403033180956969091297557499920705626993484356879198830829241568605267359994847480370294343118141559334776010127712091006554210850205505596928348360673420161726897014364310958342952841169382761781220266253388970591792411756406046202140049535929098999340888782274573189371703412262879444933532503866882882210313340649602629743422200740058176039335816353372029450083968232570309173770131957378805481658858446186989950776245717885285740170012842218134027179628940700196964162333772367306557032849372846388962272518189889769682034801679652385213004697007066795485782274291000546000105854508682020625845790585465454766667330498638765752499774736172962431254473594520736853375049352706785354125730426412585941830349829640640235257728053563573961047454326615868316250406596693267844430939087843872425645701630645170213962222109216160148373566211050920949819514944341531381389970791380382296601084819428769342050481639694364056984100203938319797695100524550943679544032315952365851269346256762692372039324223259025851340253721632030502243768161782400206606218688083180232365699891459820930604383614258865679324597711809027126141932525741213350116168549672442792521928958058310717071868231654039401255299892056749791347131081218979318866965734003008314623135549586538773191394484605803022917881144220699688657480084496826610921481906873323180833511178903569449145534801792720781566683091079745067272009171493660140151548543886182714520526838966022313688417167742521685559949305859985860067894608042069530140048569792047590170024386076959731096514805315294374703457391557870394214675884251989094041360087078614568804099879328870207196006780141954321981710495728521706047414167156924322738703854340499594294150235914976603928152584642199055768717074865460927254444150179242914403822472468227691659343224168328785532607863811553152476627135311347430078263467264107249483603019294484064684457508596234763894840842893699288066373607023778542811659336978416307477316627991937143132525133148724343397951383552869476704287037026933159158124296895758600388195805636424716226862943370434052643722143352329088903876861360149959209090569990305779422716553336897703704214575759052437588506837500816735604423128387698075259363640781109824876900267626554824169989577880752024597143256060154154095262100759735443146111947379368819444887132329668149762265811034392597472156923856867175854953832141373430517923687623736384608734802364042663450244787109007393815696147022764615012223393879239658720624982132193536697196759324249584485449855223210052676877282245311455784911231969881327855558791251898638159013505842293676019262511561987835725578450991077181497130449971191106094498317085177925065888687612815687846283122404415683485518936230420548523762218921291401634966644971762004579970995361140379755398180435339388701740929400429459128442687429181935732618934510842651392947200109279449363562599660688649229145311980841424295694719156293161907104137147562666201909196198916445347830789682057852742257639544829428795860660451474066979531018177171945498059009316661460763722039289519761713620819992730454858534126336151650718500118108008181690928114376400276370163270019164433123985375570702094130695277939177541344997468253178969807278501743354687144363181890806673717105857397175996758574767469348911542467598836476875435286136151426446019576746876152514361610302766714717590795571356311253577382918297421892531985537994123389433281168459392247702217309389004983193817834147935146822475355589284150772288168106256195545996706788308933160310743718937887352140415279196288620982986073735226578021216808867251607277219491127769564225037513510399996910409867585871007534373523616841404078893357485112303322166121835273654417953569182568049826456508843655427585562319625407053754493177235348645063442861359567619156519780271916770932256159539529052780370772914934274762233819800594434494590645598993609647970556517714400453880609346822111881845481102792839830838881841629458049397377064784454791062371031951625822308733821203553615608523545003629501186938892664088490069773028047204891946493543485302459999305460735417620348023759044783999338556038388703279064303113885662339308456920541318257583283851116189371512121071107555688680788402271105703602746975058245109967693850712456455214640917800140098130478532657770603178485901745948687968155691366450798196315585285220685196510156328987054099047068917593513320554318652137527048453693229969684694596914980038777852367369011421629204666453722416999377357919497753546885916600117041762634350844631246252458856393764909242757538793498540105607659500031079805378711660885144519690187384352649950991684711990856020754421517760445959411338493230110532120423514067855685260535571339264985936106056883599593421269413356574937774052551313413887122207750503116070972040412752274990246197390928990969702981926673321361220461290481211667241815868261805989635647153874167655083604649684427453712187789668820349861448089511008412462610563271682448849132317689828148758524441535010000347008188537612739209820733309972200169739904339833763799213332787883798051009010354878539780214817290432163804247226748508576676941340603687490223482099757439859438118194660006317617815441702127096590883331982913040491147496762195449402120214505061734231436930548072603507782731896211803275243406523982194423100190390442279185652567463524797651162462906092338168325858671333730008137375222446683151360483913940715283393393195399837784755280006604555797602147413631027316863983287114912490706183503703080944801693438545092304840410939273114884637676259549835414785686732706111978505874312452714050637096610972637051065725065202605694591611948157122009630502974780956538989290073490268400120024151460257916029263873455498018005013361093849735445157036259316046495671248120218149301311074078097304752149129813622388007699412559400505277214023901152384432553545177239178983382493746006727900800371282240938685270312916103197331610236146154465795638335381315723539086521491637047155160872149834989212660578986160503652933346856853555273884136757271260044572159685766591573182037772864468182964587754262220861396848768456743250337984539249690168724218415381563614493824750508521838484366729397681323365642741604089063781757959429778991720831578500748869283791278541376188348884779362759291569023368382002126461878453792241735274756325937888537260216292176746231354160533509593346997274775155524892480383717752465556184056227136536062286415404533097864114395963888016103763818055516519098762603336339961531838020956332921149857878123447187420743513285019370444148394912672520508457991645940515830507356714824231027072904484399173150281283827652147561121159555445468697269271526938612223229238156741748886932301710524600444856664233852324038923192478134098178720610655985755790755725176342240907816283096099024128592884141679792927428412682807990770714922799862286126623526136524081494683776703040291287410602038123832129876880315083507067554004333838856449580771780034790024887437802351357961825765180786403046689703405131183912590279671089975321940278043442991131055849042782813049629054411511773459722212267242400280942907353865229690340559010731684949280969570166175014400222739287087400204313154768381345846413445634022721652073584765199456335176414592407975621138126350299524952644646369274498657359503786782398046536158752834166099916777507745540972579241023673726696352730595455076073336549847376751949148395887802475861973358973458957050966665707223918018027974336378582021552212461984403653936756647492609332676518294614538152083094727421542287609697741011868965384645857087971917254395526527999683474940684300185401144986471567645928536536581785831948918423939208003151573601402117777296076429608591292634291000030408408831436165823140887719673528478418685623104377318753668715869833539966601168916062682032797848340766842645536294842256031123578720260442326719830032356567535694885749776001110334960532884225446924756640536751054186645465334466175429379926524519696084467650543174500613886903757253823592678468759910995069040216560763549501770010060298065934778255206661655145231192657331673625223553619753258069000527287919659952212288568639729680860165865298291807765787192367379568348307535330582208243294980318210517728681703544895503508387310670537476539160028589414224995279747789180144242094875452862619893284308592102137432299168997951026869842646712163329343300970919147885279188211150843789911247139408039066067864818137957994485864946052189209196463228370296419571874642974953251262623055804606236557239521919486183884796535898849601716679902290109927991840584854658207471854505803727661506297710330168461098050665972624692240302728604938578209231320026368381207351799237586255584356704442481074002757882544999054807158331508582708090214457873873733464153893774644321380675058387498195877035341888046596904108435222785927117081579339411368419175210436499855793359232038335389010791616391304368558369913403641045757653052144973979689704620673219342315432497482873288404573765789749244288467199820392875651569785278888379402836892260769437475076981350514612353544871113424146382544224242379739829987456173745150719681658917021529599322519557960360886572020554577113780015649516452852748718358352342667864318152279986915428054846692488698649607680124790343775795480128972552949738425187982590349797321696904539043207104101007483235496410195979901141096190366900086421614280550443746430928050002188751535176282980155769758547950435657749692867569048594012885816346831808041676302231455723588119782877711532672945862928735708129345503668747673203272339733934057885722523658978515455512405995890028458438398039915856477300236984541158747540199169639261569819726872157520476749939078905853742232910610620587593532696776565240991751828154706738040864500723295625389919255709330728977545141981395711073070502708477811564415476284882893774728706437079105623314577998319503880693609812146948108993441819510696826242423009070579075590488277426922738720678889216716241983468708421070903863404239366882715956434311230328621831143705368729521925581898126800671382943814300447093456305812281588256551175195829124317650391927858396553141932897814642652723033770233322920371424443469246448564149886371733637211023605821644077049395319484304236067967542102932213615758409500278115583975037704315391575830158431505970634352126716860191134814528541842730688806762959618118032353179260701119910320573233245726546234224383161963172488053281314989867022729208962005421904230504386164975394911556443933510223188512726299034784562740964872368226675593322094155323744355644242314446128536216886299453618683306342011668401763298057431150324781577815791645116362849737952132184581654351996511101218468948947809309142822470096597225736512734594968448986901345100955937944400656369200269612890547294107188626479963034051839236285714727015805238983004019071245265830210910741082365696783072241477360460481327105373794652506456693406599996829034596174007132946694674974900923414069697824929652254520668560952777853063575198758625223394430270939416547605499313289850456977634033564004860846993659533131754453055290945108121416184243489593801499121007788290224062998945721884310779379695295272156206095905914104910006822379836319398071417858103145762869049567879369910413574154280337620722470527798431894491405979796502370445029369030927205382113111805806641225228631404951989295601315740880889246489757379590034152401618817744133579657442783496032463935010649131232180628038933313175576437250559273865829370897317973167117002346548904075350383030007902456189209694648442563964028813908146161730731053324594421877510047402868148527397028270536145657100224647079474413376107137648284809472482268518550322525645989944592962128847766690638167146248045383581784814661813867345676748661615249591681361535343144451029992393389501219770071921310723082070874182593411175753739928017899215932491192733860582276863843928873359393933062381302430244203829733390245169127754070586494070653534798994528305525801935959562039752635537724427438067318279387405978828679642454117613161951410793999769595672205552010264455199600481652698209073923671464583593945258623644058191124590501112925265337347616596217354975228348852596278214434521678421617487370118697015618715941310900561648578733772313321352401030597913232119691002501675323256583103350617118750493541094517997641003779851488337369335774681336582725924587859149053814412167931662384487722563333497196515057016677623656603398240107004328291582258649193778299688513196510275216379959965554899487183273100613316527968368956294663540168111126688473382365750576210685245271276166426295371635186561737150325028625441330593793441922117204391531315762651973780760176514887642456448971832749148228496728481659627681218254690005915072490468986540780086816418300922392714112343908251955103764361182593390660961760839385318345749209988530045447587639646742423734494177649398978711978655033135003226796771230287359954299749675002440484920174889937379542543111572808454670951134435180755674554689497427769435260958586601713072895375854963483299678249748057919669857930316114035247860567297692455128628362954779568793526065243708793565272847786980047448987660875542200452623821627602621856828000623472830681173067587615925296459933120356292825260836392293804385108574775041008966503837943180662709239129427036555519679332047461309426063755473967923606009540900453589210730748098909802611717015643196298289677091134243301912969695263698545759696459824181544981379690567206636369261540826646441966234035735328395701521695921377916188546538326783877693395035673600249099586802049366156777179070942922178985772429353832539419611233728175505041875932963493094065875829434633007576075128696599998962386565702147725168657008803826405054404550968200146470941081879962187801223020755746731877350988517624390009912376362222196462413055408567773397982492990996510479829869375687915592698500585135705960190789855780781815829309112148478914875092349502833711475772134648750937576449989491660626607933287560398806381792594617364335927130611001327213598245780247958214009404206833168901770027152272740400539232017237290131011268745847827781320647172958622953621540135996944428776089279860865897713072164701978671748984239916742171262364419730267808614844671008914166606118014548564618010635494614041556966446674299971509383820802084240868350075836936273184742788407603825707351518424252505613421653515867471848074561193790161456465187730937361437794894902494077819183478773586765808225650873352042523919770740927419284849989564409152119052637420784699322544164562697683537701395386514353815336928405477430174706357640055343778300888574629304378316563347938174219088176634400116245954111300162363015183769393901039331742259846397822329487255301769013027001862144884664583904010022992627300187061356143725750736062995164867944217542484531012393295843757957116900346573878922844437571904214578778015296104776898383557357496731503103596020963190385648623283949353521139582259682450830328074286655185309074593558768374607087320110238027160789401936053806607869352263795137274983282874468935762787480711859122041933050064235730982043372280187097067972046949374748000196515521909807501757531565250644218976359392542762138855725561008892981841951806295752726854533001056670997439614781451276255793739729782067485235433976292134920230368589901264438534972621118073091328884876192888004943670951743319815657185771269912448756199642483987685251488175943190476065604837361992344529731827178400636575723769699024166970139240535768220066887228191753849904232519011983798344393622170746294352922368379963352160470243879457114145902988878102041400562914944264223909976928617139098897609016121253987393535143776238568201908041461958880442854244432507174987898093204980483166662863668558005492440116167419589879107249509733043728435210428271377429197249461760551655650006165841035681651537636178966069845003600771640232410620817924682332412639548726687618803154853686974510317474999451038258212235730608162133442903071129127341883671087214142316544035147068280923334116498566450840990077053106035406702042448888257567509423660924947299052097888668202976697024362481807999375980253066326507023354528013545211633610537847898524948031181509848952066025482475193482888701048721512932599344762982844860621018921836882726298560365789812008896758521336104921586347151540256386247084551459647512562768498150884669200055555179368999246614351716202773552976682702135428396638522839167122567913883295530844790169965346491643577561855225096239683485737001018428692082274661231614081010898247149885940589729937955552476896851373236161519315903445237662082544497614689903883092041574463247911688360904900049547937944649303598100887489238493523669899939684193741790968518855134340481558544786296564380400767063278401965206235582339991836017417726027085177183984516846009733334756969463741403977362898537536754609626847659105235434313798443638377604298265706241090855128924176653754214056014301568265190672119662433817459343950807175908023804734756308425895325645552185766246676572002971122162026784590489699450234077163367483044474352732823131303184145809460822880420539225440862834368054216229114097186454947490397033113615978630065939768819001477360176985495834831789193828357228831620394129890742621787184981901589929789157752062767157033859999187721174182451847706324986608745557433135552969784960289890146556051813088215003125994826487836852793172061965482621101387257451048478866292295607055223442630386922604578715566728471686533691441551469389315039254870144179031417906427611480895256016515185652887870302922530578109151132603714016154298560298525121711968013845405655395729422577791503445181394672476570366830201760504722958858982537168516444278515708764366231883598204088255938072864529722485239851705071835706868894289414223313338054416516455490632617632116402375252401270523906801128188269762046989518923247447197280594557917028864006952769104651718226074048203921385685552390752503855633635807684728783626256683190505760557484109307326726841883810299267108745649908292568938943604924143935000166467719638560834889873660923984071863058419021942883981332849683549461243312234283769591787713493962991249887157388432178244996726895929166664426670966837333869961340155043783240035992093925138723480816269490935784347138465834406094116960905459942821170200419766396418225103478565586912563460491789822072949062100659619188163561312067415164682452610888069208431380720188401508104995919607843099217459000345501556244769212270009294137967508973069188998704117943191170749824269417918551297661288308603886160825730708181883121945980394487185396108770996146991644219953549838905836947987461332563207656007485013641288000447690309101273383846847343318538094027137945891073648265308854094780279916325097822092689487033907601463228800715487661959997316274037553479263889526163290776642032793061741626988956748919586385530498094148838342891063383354690887381183919508634399420208313471386638839845505375152703279804985470140551779708170764990812351905156902635611373227335525339101089322983991449834308696709733075780768491316546100201799164027228894587037286673634281795713544420005262801043201636688183474147568928806846103718979316124051516581673002729828854883726057126648386644284355500303344630983267016349269560190996463323617374373151424230172774921781338394813832520019467388671721793137707919943855123804567879741992011685018326813268191976284466652685395937301760857297398102413674708752383875428174492730568134541907944692294788780855911170923809547443147162747840477143224605059631462084014620892107899254110527023731930102921069441603054723354658220207531795378654873726020984707340518557252270955671253696238510651239016168033151878745547356332512613244296809029435934700623136278503686227360034312397396000253813148538792259302107839025263537501726603980688566751217622475107708022149176773930025890235426460698177784871341720833954521826815291530031829848984566179268752113734873802149061879947087135935901089284443720641468323455289781270911221976288191650109860188954446303426241057778419418079101558825071196674131943063694154940511608140880105557606956600098090213545467957034781597245524680213796176384932160251406578039079835922018115395037108712615715461815322836321282112535584147502027380935965046914772357431442381384802962303216730019496195610011429318956671582067962453325255084944409928023168643731955303735498160557004325663532981699219397173190742182644650816912953227767104497800276441778818515355107094171870385350002719349382301647497084720728148630601614535742074711160456049784417603111161794864364675387349753044498989177951734943089440619018058891778322352647280086063122789094020339716874596320780673094057199288201505445736317494796122078196285258310416981318839485606724936083147297012196087760544464133341274436412735838782223792365685469818091744455812318075329988218082860166377672516538295325327348191856751530195609300276755414951328320267285124066805161102790454449242216096956482198192774244442803035324563530457633030467559760192929402512504451533287819534567630899072268116979037143747824952545732665446757010303117807733691971591278038659628858298099284376079154903042647690579469039153269486435270747014011607399471435397255679757413169823724188202002910559747467252981855559195691950330016737054669548896549668283554171649320378197002961159714331133782372021271004310994521106201341232998668139090462246104691824173092135104283854651488797448859283518383625723879835465228385065677445401949150858575833983865092715973575577065718669289701015274466873877723170244892312204696822855676687155681159703151648892082007269768415179405408743280714475118119955653226467072872453269778476538914075660926166745367879341098273391957588864575683639589481458911136791101571145085113790495174044923268177304858987255841437566501099688691734269237916014771304803532446088943784027493152301344967457145013610464419311322409684853158667176358743974593446633526091588806198015410190736491383677262644044047107333483247357495767271077302013364906977882028227442895648597668238428607518505664394807851043277020425515703995235242005809655259527570152968322236430193936501026297228563379653271087355054932276329098727839330247061654644171503339653621870477659718857683402572626289168956698427937339711223739247020718831513373086120943332354842739224985988946019296783307290103979170063652353406108270504355386910884928854680259093918599166174138441440557151972232404658482664139660888634161852820471975471803073058437967616041717277947850972528698814509228665851663999938205682123203987673406938879724399065121648507264338136655147372689883274416948167977985490767105317455858830857442499157233857601204398118809157362256071439001444489312076324993760652297664929105271624189567456687219778794161131657073294319491415801815300982062757215082276816761175489599726762213574107586512748881652320371670299036225047506496513404557985792577738295374317565585692509656312611345769202962718505292335593762159819074330234584446060501021775246951740950753251724920859950657695958745742419469604915435134005641358243973940430578445620626895785980325479149096453531415996684582497701520869792185333367822286694494239160358145790892614596750072240296873305275730860534659982729731702210678518820667184183122625489021349860326533832470059139404232231830233084219222906192659489986988869215979433552155337086581019512190953554006303070339369075371417897489768514014795405666207551721518562897623923870834013076062715267625505071079963321875423426452271881392270028392516172983903586923858098579333943615166121503650974119444555066494826094816231113233336061228066326940852089713684850891243219751058909229508266513911928234069951733548378453390424612241501229280847815930545490633660712278683908900565504727413482330662341144448159249100875558366969785956437953678488248512948163437362826985820517478243298815438393684930190448271894460251858248404781430120979327563935208271288168216315608656447269772065683323403438397069325813284140534553330431840453330156833201874819846745946667526206444103658087829654093052534584793237456349740215503193023531118687949761635323921167867051880725035728887712472206025915776366049804101404669585110296997471993715983849560963678124249048970977088842644753880161386449560164778288098295220722954762590116078961731741612484851240127896510329653260803276190161199483126557728857568642485672868203953232457106213999192105019614779654092959963256909487138319031627389527915904388842896750566072948845854703796507381018025205873780230699407742631198786853395050843358127108710763686176169988006305764349152365777330782422382434481212306021494980437397795379375544903368608798193656065039527761452354149289993606545448340881582657230474678149813167406846286487377603597898395691977856068784027451025495705355390279651749587682474936186989686877986050955241515817354579978839568434948205945079547405555239523272541867493953173069387639086447821405424387617491950055316342905517476860365955213590200475228763932415636760476006885054390231140460213270577152195693609641798965273539556743171425402120006925086748918293073828449102939404631286762008540876779793711495254140812613027289246690027138681496997052513431669308810029487027373168069722790959678250697816815943308043330013824245805439518752107510602150924147059356679267868862580545177393986800020113799479201405460662845625745015311281152840032134156839511244929463070970483968980387463960163666068044690409524270725030385693380945406590214795766050666680742206072418737662671019739991482967260484027128401758218623860262556563517780477269202788314170282965774007108438031539086777789634483930087350191254672841151488758700095880447371417067079662715317336756528433666559236270805429380615456393070724416071098534278509736291203193703113166675645557792101937508815221095074136110739957686456443181816910743013712655541570708226055897488844409832307621376991939137685191621470396074814181301352326083312728931401985249182354952924393736935027024138143337178505946749392678040481821596217884025836349703763824380444480373844852830680779952088175698087975309145269700602818729401536791930828655845274664849016147870992742211602663052817280760778990648478770748270813168366431231710639397362106128324549069838495849794047566252825601480844560756890576766725870624308585829917419091537904702889166516654851395752595776626524008437989879950370150222560836565501550362950598627705002221013550223314565190550042009842516396212394929302592241057439646117750231075276235959263480002796232650021812693374444259655254576368961199814665171909678917405588648062646648647646003518216939108806917333371800435261491344552423766181101433936287437309861851645788901905135830978564988764787611524506523304623956739600487589883177985463284343631400156563064060368768722017582186230167939429614333534976542302011084478156894877964748412159665365068774094675729474953249896869739689014290887947103857437389282521800205679751502609903938456256354968204278376651548466268336541549428947836898029686920695897188644909824578533833128003289618501885958788286546954926485255070562827036211041931210204150370577156811092425335740252293280613850927011746036335245308856683102885361614324409589653156175333261823068171735197589076627153459670301954873415253605762652382142953589198457045957673150790459124631473357647335954079555784875964310688096162755926891822715560176567887139211382466855836409984202147490715752372151466123664562779382147069276921533946098119566848657007168315056196826632512945794733376992121001539598423401690222393161350796607177310885954153743291752316094777615597948466057433208836154870239627948694561898062478869175973963735468600781217208717639887819379328776134222236866996400801624958142853340300494072410230223329048046864868211890372878368532842678381778697865768818668821878170826899901683224759098668089317280051311723029215299125997665507216115571255055879816499499957939283977837470320835836213492928150781792109904529873319438407713971005460241572243373811125730432231931506975802372274907551186816842706404466495631420070729588889783945656447045172182255753374212890037212763642123627176538932578945150909964207803956116976899726959765577786139217930827682639776473102569304045501537094705386285774797342472779658032594062556111244300864214667212151439894732457539737493871705303189827417223870516688955280318319948624292629621393180555162732225079633313787583429438642185217598316737048265319914030317378178396917265272425196898612314921507584147715649748381601739430131433130240237103456635570333444652939980700162820208838462588520139876445880054927902333526708187726292454367609781696788899516922688455221612206916979740191167229701110493130012941105936088915370105842994901981229666884324892465920586841428802774062994338177009752816812488880353523571675248819133943393533165954169103682135387326349137836230503077971167137505261750399653238303437400084879892192918136093828825707938778119391724452989235357633454240370230515501428329121182201428252777657162432271643691031194848298487597228726128743274965909295307933472532188693836304379492043883249479267708637195003006849178197224414894275728321220914900200977791228063426537203323670543923643774547155678537870664331988853253846104923834610302338910726133440796916829717147438941595319518143874573029881440866825429323914218733632869706055065688287862033807145993438610040553302826328691654135731106683706960909396267070668579859915653201171139728228548812341513797362698236376922552830227311692235705684352569107998866628935147616010312151060451935210114476485271176529503048358379374488323234185729731413525395513494306902048869224151720183599870140169709433741434315037886570786139651311976942479228575837881509127592682726516165752501600008031185009235195945163283012738709315108078489166429432816853624561633663103019771234624210823332998918327997025844374172515585505167966129313146883878607731666929264946322007734272994810162479564655483121178885132931995848343848623483508420373132450306797140748889280081614072349115451577351653421671554136879228565448421653135291442809677878856906079371151140026706027217902534545169206649251138533843897579086173834577518287078294244762691555308212270156564586199948782121892149625299479141243774083577149146186481462748335098703433306890439313507829080158651901451887006843980692575407577396619918267106619436134348426064571513268028701229025158173507962935169369860176828210570339145057131918337209088699228143067436655260203713841503211406658574149303848011892317461617615629296892674815309718981345057313305068202977937539955805069863785794626638989139012899168723010609506169562955286950864673616295737197744592454360926958061548341693842610385243824537949694772488016990770875662493044979427381126047917212883709655098063265498578940107059116170467057202621803975262166279500193902637772531472715093976826069720420890651332785728952178035800884970522185753440561041768491616514085733898303613281082378046778980459175742230479330465765676327263403923149949932092958401176876561995180499765340703819510606504778236821498060938782353208939673261176004753095467801972967704081821422151606631122271240739237875733597212700377594276449621772043139871726996673068493843318641859019890324881971773467342403655401324609654929085792043432235688964873860560539522870868279001555256526117897885437842473455513712412059707641038598978369610801268078443262999625472743406045659221647497407441105230221052731696711731705838515908348420424113042056581092271527953935359364880773081489360153401594037928860688345251085802060884615393115470567459859792528529669480463157576034246685579226383325943379764374434293873184988563850102099455074223669620621637259453884221182110603840679130630696875250304826341260974032009316371627749671531669705248982612953212129657556956810009624368739914959613455144907831889494439446754813145757109009170959312071443651708811698842536995576526861174005182927549187474043111276129452867058454397186326714191026372032040246560588878348166305633682893553683011378188805398319441498382064610446339269300316424014769726033040792374181221663056605222650465604585272572901390798787348946807479805945176925110421492148412656034402181685830323761886118039806965517544150965155231814968059852259808234081728161925355512086013298527468933399920041047447368071953196853202815377539809361192985584121882083191512330886397432497460639382231273381195832729918826080634601769516652516863034382736400621494118021071034420239799928191964413270780257543664147872034810535684326911044646971551632035344270371653333854406033843738782778756259439203527148009310631065059443613573720707138276907473464055329331758019767542124228415461557875176628522179072313965773602114044472632274763868995323538324728143619519368250711801426197387937648502071517114538333647926291428476680079642495388739930902464176193134904852679771448639191611075295571167884474054220158679031296078371943365448381634520404352322682093783455496186905305045526184207560648276481272463741024014867232727982647022278653182184144732654680734782230679717539815462787193215758081106528284682454596955445906186618740718250547484968109461678882535585185002525809308221030764202786111574643856584966143792353605624458636018220488103182117936865283461029806663947764964955862775151966248783120963126707957025272634457188747078931188406500094612844489645963067168377067673356141058978205324374618682438960767773840284342232982832536772388846218560432850493395342964441533677871972487003194068674666832076190045615002960504023351992434693366814454719601429177155831984756307224386750397884250120901551502272036572591980473947065061924242370060552150448270284424173494422093091894228507682621767161722958105341317479425671355382613296333898467651321260366956644961526058303233254463450935114608281243569646264447559925830045785665536827838927834893316968539836584963071208617939418186198872773575044761192917139783797534878182900565234143284688308870080471941876077701957766051675859054291352084851736317399463756341700284510117702677034282058443936513973610459599959926585856930509557395277131856258160612172664108968282714638594859835877716924075404535333329063217442491141339019760870872550889598962213175490414233464738060866814814420995761143333033962341036517950058267955713937439644132975240512991613579117638529033117286949568475054746552252923418108162424159562255698847480856523213082442604623335520965941994852491631833942599431665956753409059825653616031677728087680887894880676112364695426122058855152491068441447079827682243790883136905342629365921731917179803342167604707480608239676820695977286770771799124731037733874093484556888373053920545739500093702579229773649772188170551926445388278488070664220045190606580795417768633598071577196280279889648508087305867699827550295870749377109210955089072984399156157439810576851079035399554319261327675279792065792226500439503202599597207539716807078291413717437877983634883210232779084942518770162054816238679455282106042759400601723305288982888010384261727382538742818298770086778097453979301130225755085754274361823855867670339083753733893465483563612245041713948519734138325858849858369568336779083760878494521955288634937821969712587617690010290965457942660849084285245058331279348490765585351082051341039393785155633738235344505175853977413947051376601326839494196463534569537582528718131288154689621843867807182925180663233659430234358037553334241210691167320524587713532898448363570558685072536941702666894381639142015020272362048756455485594853080876965855779923882557644046158423338630159556296131729456078090520341984394125672181238888949224318046146677573339194516710381147969463310428794758817941017839484473919989395788133157962190709789182925996683670550040322837281611431937991417927807725818970706542275055863232635158284122014028947277315006304489047416238580480146679527100831064808995037390849294418948868483913342517070662383516610268453793391872908109830727129512293419056252212399714491549575393240163788258491691867946637371949263672698213026260752476538957591192316620310357131636794360597017662875807207621100275075140863947741658661972663084808379627808226112324518229482619316436755457178650748168223456565098466515965422197564460863080701980942825236191134134987593988215754524727330417630415705410846326745570507754882491724822593176673654301669208896207106489042769012458763886506924628837890073988373510383631508315537783172582170214435910013794564259108555156553407581841705406047580730900356914124832722297081473060978823554972323366413969739158070445875984482681993261671028474826774389941500909783267890598652135669148749462692164756425844313829069343517233107013669612662412290337298134778409956054860862566765108557665163010481569498409719565919556079239888172673814668673279628841932638257036661463610613801506628891827259658286887576582157663726679530082670065350579991878974376256883125252021291785976875569799445255052001711065759810656768360892306455932051879294352400454502151541723459899751508827316810184846062792742365446344493416738819985358252420193557124387337971883999780788206147717362450123735921884893019519553886880726252465570251969229324638775147861558070749102005892347761746447984628870661099962181550182492255546072241397017615391564270304084728805641171123410615219616327850214981088975313301649911554129908395649948870719139985666732162417282565477872660313367525299106731718877132018414253688830712411278396424341994182717388031220266332361400968573817454170576687078557552146822440419550066912738549984826987358941934526143222154657932900974950774952575190169504230249260157131843698558083733113012184898952774392042335575153974714724853064867672776396689420529755673084791339621666328175491782843134780820253148472328893366505330273267201648289851310772970848452492014847440604583908071980153608712681678510717560413032474740643741097195960345211918972825008540359334276311384372477966898294019072020721434580426070186274264386223176830031049553365048094405207275195276348110136075635482018470551946595829874999688208422139017440996408420381167419247020570620429489729820640897411844557012479721288241575186693614315340056867007349889407295683138261159689439959007804166363036678136504747803811806017900952464351439318033601746502503600052673687365953493256894340302348782709083000293173557058412855045171763514479214924987828479506412511386272657322558423478592798776347823658363508224092932283187739071253563606534420989692207626495625101421261323656540083264517822836486776071635029965095185894954190056135825384554153245686773694564741959636860192459101740125144286440863619473148141597266564584733524760860993432049812345995291939222491051578545847159642526393231110518230081553618562320085946021710276056737238658913985442419993873035645973577142025941965808901491139401954618130432024037985963770154959872340059258990814956839748093192781307714928017417498656191589396457769527116608823663132597034754890099517325609868568878314587285044140443604954587031054289849399142869702231397413090110226922624537219523620305992892165012998801494581057903315798923548728161900105978915980391387164479018121200375246529230045515417642040666664288653278094576972421498911282637242565233956156870527643284829059893055620436200681194303796308168472043101037898032830709194384726508708281560677603978240466824000404096144078986816155470600243781991891894330288336757617884519753000915872414068276374858819738904200563434313653211228218975910634839182841213944959027564759171834260183627671861657463122150302051448063280444899940342458864218458787174447743666384631766593344243765244018866845698443434213927960122475691073145902933403719801906341221593851654295687518456142591889184828065608711969960834951239814902251894463719875996446937553156715861965637353522543781548541874644596460785721279200222004340590355360775762245757014829643539572153047660455989366762529718971554312047262289191355967842912990215750462463153932953105471127912225865939379549103916043964329257801594509620016616421010628303595953065457745377743682274061399226040931278863030199138871329629945291455735091840538875092601661762464000145039054183916084237659064849815167561044792566978496900873265415850529798110494260810435671998412326571263148509888947606760831286679550455454769533567558125652736370367573521830768993983500091004103210398459212069767104512720895962160022434550699496423890584127457789129002401496860106779422795281922506533047396092373572162257022161404838287497032919304177873166939940952173937653864678732984328841302998456500744917672032016702712310413839928228388709908226200927965766930359145619072489041292197006161831407953108782897206881462930645719870839645780722023357670660534174203876974368955135882978057296056251327483089992869253018938861916717812671452406081953496313230254242708619663394890989335631493603070934173104588693794911005800852244188820583326559213534699554059622926792400791206266419362153140698901371371823663734019127480254368332838560544766223708628091799814508846339499681940064012723295655950322872194388049556461683880096532166082685710055162018196778845451249363249219425741880970127220212700256624839188211750700281023026256487489284561697057863827469964706943013093333953658952271901536930521643583285013041321009919703450599716510308640352009216330938934337809457721317570274164078172718809567042327425804843501381929809378405719417402091273570127430794085612901711040317664339459690365472802843727480502808378031111265448944182815330978880905274768518314112452041403386765750101505308324987580841215844988735662518912130602075622261163553744168976230928050113797180877462104689212609614238245724675801897082684409760936410430290169550662767192481388277815699026952616763984985823611212079163033112258208517110918651818561287556375029968416771591913720553168639041138090938276824366722862291609475757344732848803474425656666627251260501369213679042763159683803058392661944232809887002195376466544405425299164748058834182669664925681233029622693701342040234379746052099243896425310404327392102001425819020464756733570269443283581695412628996912684140404772166444121080364196652472867689493931002610354011182759152212496008515616228293878073833824523829265496166513743251595760137498677848860939302276216513454156058044825285584004228118200359777170318800128947187109252764878472213902614592211950822559567135517831224272013159407421491299140593519816336338050590298373903327587728773539337997184785971185653477077877181634291634387894109013934627263433707572784143304754927095270042642504010523768707826814075444736527210757958160363057913371394997238215628372271238562336245459399037405299996191182257862931564721058981400292687127198382150111378555466770137895845641178786297533766572270788890377101185851897983675593145469394932816663414041174692840819199874480761653328439239031393964818560685913339635880983586832874044673497122606759162728022811938085320326838348304059477718427864015830113991698107382718508389018192262811528987478889179610092376951475770784391426292487847637419181163443775103785683590836119578158462180030337555231761489147660834728360710429400945303803872690178734814942170594094743963977227459648591287689200587525704191697682236493255974878376492399235952826081383834418350962050136698174454892006873406380333661725549863237406855977473010326418854437101821073636584799666032945027692076717934118712163054568552569445697841917212297509417631330402742119684934649517702036268001108839596464377383640109121370126816342477673695186302547034353001175129076057239751780199627822688535462952078720653793408796712625849001427488018989404670744636407007165504922049312154460392628299497749277033182773192274308139010598119369645949490330731362575788048054470183152229270363537746711595155570554856455399033853711293034625612741878752559701128149682860821571315247063996585096623512593773813654059909132163339373119514614938383895704340776922963934407599538924361420002325233473580114450015124399026718871260618521155255300079288066921781284470433981000988007217307043819389015696362693250016730763753007942507896388716045171594461747169315823710392413877370453863990339512126692242519289412534249091140223884461567480557171195658890066692754981950923759701572390743317794807378831511509341096176448299665620773263173190441740488103781855553459126380450294973605378081271703158805087192867695050380652756906549421160767806648088935958785446219376816328696983542483543180834808421414880223784558454282821067636236204597818443286328619049549980138872489435956575507678908602606816366974884210672649566527787767112511897396295785167714159734940173151824202185927159865963431626318246973014913640722715441032803735235021501122163451976992776670489596423580281369584803058192272489432786542785937724556722811755819131285783821861051573524319184502798705787110587318271240394684201622627526483342098532521375773835385650898997969197937415544673722301633231286348941105333970280618881282369845432377181188330539952248070894136587039279026182648239254825801987101268126561924646298015471324607455055266619611433430943521145050910297704660405051459046286914455668113746072906560578768265510072586811022977934373221595758862951289292054976036963910469276722562379970327500161971950508200749066442230967891742314118731575481285364585253404962585469755717416921524280897689627306585977572618855276716768022165392595735621444321279941347637410157912114323830672637827653140312121143710138493860566566457065617055298869790319412269765698255814953357538201188149466267087587465234055764226454720424978004223833579697939297655854444608446298837586969782312032684496524214320589480118339246601419078010655509893350214213465757519665251671913417380198233652010417365713074409625883907494811239260449994367612595930254626044770360606138935737943806655769458123986071611930960637505155227196130921373885826037127920445800206820516977200675519202539154783236345027185911584326938494715242975688227788431697728771164674487369686839003981682619972459242412068875767144043466044331837422026340210208291596521249187601646998756279759109800564341846727923076892493799874426351122039641535329868165636727046843196242635442582389433235885381987137435928582497348539692698905126425555134380635809085500000845072310710852579037690569198338140856051465229803699661526751141129134688023032713042750906500185035239638858920272826923605066348376681023140755050467700344244660349321860902148695977673262704309418384032452480613170334937544724043346761584128734262644665023101548225583349225402188416790724014272425488801754842224633977549168882931131489256541808906289350043296165640072413413312924631458585180923166980332466955703789722078663859416996979178580696790326633641907064434747005420198702577098904365159379654480019071592116942968854163322495730130166245709928209142337695837768590722792964096670963943184497020181626018771077982162665672705060031577342342208731735987647035559517616207753351948137818695546952469851694789415998760133825066734459900776872760034902579102421406841770100600877150793842076855888573772239719016268595950040573196500943055469815236814394535050342001812908620081536021529689838696128821876883572842885411630130791377283685169878998204640324587519590863305790576571510218117291776731440154303292267224475034379579655838046105807226655921539239034576241908523164130921040354603772931821862442982054012116650464209594222593180894013428828417255409295011146094277972123773810359228594972094655630748009267259099011812640050597495216736635938253654283412297111279560934700272429663513975305623257621244868298041021755415823639227926252702790089184505681342538796279979712782579222650241783107857362962483480043672664093582993857374202070949724009516170864451881657916086243572075104038585179242105719058777833569255645683273437950422579114196531650079521837992398962758187037597679045918554330699782515096172968401781828422587057728766500640804385668268986910580806925262553197476642171636634950808663258950864408633039725295944050235714637467397542209067591525836725596466395269197800807218571868446642705606986078575659071593262690187064188581185074182489049201881384195877136118940571687709899523971687634710797503603079194457501709236041664044229772788027219692266670788860221976219214679617942662274763508282018787561496182922979251232247846068695203456743804713759680414756528464431799778395624120691706770123349967784950590462450425919404531334220550582241074011330518184234781006689483372513237651333188599521069176478526049754248407597528989496414751009300407514184240403820756122080200882009175562888703826482306023157131813650957708200430102618545077235073122724316327293073415950398351880904025216580273966635271682793119991002522904596695435837746152002713194563237136411158091746903779589006243714028503731097174622962749758860032199067730201776631673121442904585342341773359309656015898710699200978072574649037695363006607697694269265961262811320568868994579292698423160597241869439758014547036858682237289298259306827426148654758977356624051793523421026147266448168620962857791998273203256011551160142977858405753113957764302928324109563362731405108185440552800688255638864774760766115786518724873917919803180938666040449705929358947960536628705325587153471044751047911281116651524061239268398059743319006963568265692367065766303463041710769864229973631202906716705744308156712065399510182102168780460783941727111215463334206868376427167399608923141200772585763904247571737443680530070760024126393211447866584574540300396098023847025603883643092138016188007943203783223916330139728380177583008240902532748987492644192125576020493392665091010304163878571145083499903263715962946446312931606163682664305463294630556059774884190177302403343456562947210548130232748310801746348368786980307207171669930443752717052258708188386890740076026757742490327583413840769584076671753353393981490287392182966661584712551206752198598011236681456353073154579285122742851119294175612625382261163333115013920327937581646141826813252713341209579381918164933443957263292988420952797541746450022938537733541792294125480371323284224364028839388927802783821560937542896639142027215043643373961436841277051216914661811470243181869480493698513513321112624112071964856342607219590179425984081855990012832342512082101242987734684958888384076986712988112960439385683564586995292770294829143985322808786848367697342055196765880041134623645312220194441177116198111434629136433004715712488401814666266864163561301433996606016198258273042136263670255539115866895449208846260233889470347626690059941493971672442258811566471093667921895294062663398036639940046153314218600442220067940280425967727830158459647130687995279197510803128630730212499052056703471949212414815560586034469704859585557124307643028021287261432385998172983683538475513804262560578040358766624944233789013648267755965732443117572678357023711165219322589881388803389417044616186129058076402026707274572008678135009014570774639625251454740415749002804521103901489182542594190394033761415553869632974310193433323873154722896983826134121809834714196433004751119199004462186562291655259788054114927874636010123112993531903504415557143615846897612796492651573078472338148721327634318090170347396048505427837745387897259395383965458266917666840118636810981917460828750807611633851245998048210940617146487725685453034533408792548197886402263789827562592594773974488820828969994525705791703883847425849865695690856933375154125186346786948577181340605076838094244444349562737160211853959671805816254456759322207572636940528078745960367022059810126701118127645451298298696577744612971873884452904911309244002661998109657926834657671653626602293316019921992568129687318467467495432523560749860465369451714331718717596735667740375108052283707556509953785078683219919995667050517912010675067275095353794744351026281535924432366654699094065285359161229758984775425211333631837852591132453328210724339496065868383797001216768388197047244416203957895349049781765989098292199260152256010905424677972328241322120281845064292253983038122030544364976882434750928393806403081133869711976764449256723792562355442542368844197361002617120923086751736632756984608522713986350732994982675847304261356055042676802406020148603533927290670956830613174577254309140522659096858684446982064370029678152213030228719979952102651950079896731703522942136355159733735224195233859025790210246293694641657397134612732707160682587757391161470594167061186477219073336045908657018352749327285629556341450870222528494153167648818537460417961928383140408454469796689074688110233837368744573434122805880065136595533184467544664594585741947463685084368132760846724621501650107687907883870948762648398302782495971613007052215676126451466871978884632578552047802561679466775559341843138105400751633341402621554692441956382702590338853441766371452329664026878212474227740657855011443336456156944653254572490019680459557090070403353608415120776034773282269833983988384248175438949864482042256008665934806070717522349334514434609982060325125472335432758455642011422905808789058292965145844004862910106709772425356001359133489683352306513443902244531157343347668847756009930124366135938517135896344784916578108198904958292947757936320957927830363948089614924969438874493889555586188032212499131606621797556517056507768933828211164229733622405889213358897464525361870651211507193763876350303121145449049487919406644481304323144951972804090384984447536039971824869921820225396241485382872547245803278058186919885456086957329181078010106776983091160880984142626368919571556401776846544783496146396707874381565221271141916702541917246412682980132816748762078070088244141222071483128465349249085022627420548013474156294013066516670309896296161950293647456781910027926384123668714207412052730907123139996667192172745898445849347833333091270958417170804738088910645427457766393469267227120723185485230635006225247281667753279291037655122149425741028496665342264249571860253826019288998486535129237745371955073340860855883769362407932625457075298566703103451004995427387378565051537678061435356596090878157396691300949752172503092869273047851684415325594574445231936451662350241264106715728747706388965596703277655121141801751728515877629829784163355128144797887591690438942258979239320279448088522148144737981163879413653712100996764421306313777253487780438439602337419042718059359471773140372265831533263085123529567611037738090021817427719475114181070527510331709520060953835488241948750067572074496133615163944152178694512782678184720808084326224064753045829174855799407281376045262927777837348203840824348740877271811730197762661457637349556066407911164003227605611595312409636881287593829177689323670478648065750520293639337207052031242959243197417389225387623106240986582538939724091285685176394243744994707057453183834301853119965592161492212249413890687765216606768321026552334551579108482151760410339309657462686407536883281544976808286895909915011081889627457151213527475032909357365266244183970830861562073352817288852363898355552397031849748699569865315947023043129522322845619919739276739179827169751071366125443944677685997115890339286686334839499328115591780503465796013916793037391144981442691070787440281667384014569088936288560505896068533311734881047424897050086489423178549699904027147925650717631833862208686133105419020078737878012294697470029419835817152833696742089594660467822518320665958561178222715579386092156326542957306042694238320825936053997213561691518504438971448814064755264423999669070116648497480724965155404096285412362958062465698704562021165056884923438815633003153028804015473794819355009814537999555358733886092021330013391921080436205700839909789149634434758960911624863661541819072866304932174408596370295425025334804218067384678291750608665417658872932698454422803088493456865861757622554582015519991241841064859935240394632860299947824375265524288038130688845689349607551260248329168268232205146148739116714866927821922702174247114790133513423544988708636121373116938676528036728599108353314441623988557579631339678600526027589609118882475310219495091377148331101289444954579692692169180935620456224595865620297134324880907573002532527301754999520433255856925862648184829290025415627783074326928756584052591373961185197614360070616445796801839128095722085664296668670448797911281376429062364513922158379136815202911477379667459295260509330392602669248305034169346346838950965302154391193936946610898907538661727495955649672542953275891773573900714812652041199513366180714966212820562163760571793766859469549364314725633523210869253695110481451338155785298463880117302260362390872730241396990199080718126658681069279025380283393083225116724321011396556585382523250507509422950347244068191839070611745691112412512349265539883611468488793311029918413933137788626234653386176739447425593344337945568489002241893403569007691312595709029211938834346565042599559255358151794655867531370702165838917657844492661019511953965102330102012563215035010331937144443265979296294037640939781904252610380092052604603270913987932585914920825753938227556496011378079318157295871430350383917567717142945881200488077092058398946491270520151489513149594964338259921356592998008268458841859244874136311693200203192942011751173378725951615856694734704118484058660295555099334844269089436989295684271451470603079568105062419786808893962035345626438922793280093667756331266484995637969501278578512953522845223632672525607149273773309737187935947370859690766862279676229111416404513279318791663379457762624266455304522101619399435732390498559640584243353593672601520939037799198646632479549412892199901017916108009805591516803931462686305495035380830177627807365194409210204156092662319006928094012265143085109729840577234203840937696610378814179474505928849269782759314380317471804922268467491199449101910367917999227218938527054342628510354146474358819360715114617359054699168720714242970160951077509047851104292332861778411958191888590983803986387454877300412328703838127722680906183468557262638527988114952191133063929955863509528879972204861289274685495754504441616429569116356092066479744717132370610820442845105852537363080290665536575967849368148095324802221664616180394360442274073958315869620069071600850124937167431157321214802003547612945318852202796084315112619513258053895400443936012061440305670078535106069326159359136936566771940191941388774786265939488913290657113688130996674161530932917160694275051781894703171940126286961902411613759888489679470991971113509034997687648201137471710770422749987688582989802529066465444509707553243307405236586063133448338771389125613727526778670152483202275044240636750642298003975747366611352847585908366086417545692407624119088964049612517674676222250909076585010267201026008862894143220630448594904042590600978199962861185387953794980274785794513788347374186663360762858391131054404794417780633064029607064507332954121876385023324705153101018639606963638781030618789103227679627507214574871991412026921730585049772083025836901524898295125509654922052886792077121545022005506402344737606663989206533721361187427085359384625566348461169351769877598374386147631489691573440752117203111800650442089095022477064925393906698610600744273645387374581381649222670740709723424263631133846861405917935279897996791232269091380283280606861807381554822082719810956478453339838626069183995173071208143576482082607165871056371651238442985055320051438534413084411354563157204138665981917571974729025257338144392380570062356139922213223577305545521620899506231608010420611360757739455093047651572487729506645862812725499668013724696715618588543535766023999741224597415035399151230192495109248888194987996009292357363404492889242469011544156405253807919587227056768702746074880299029265768169852789777614616422786200470771683503120327023677171232975474924807122186341203639393681177075284648514062693997338324292818416093106580670747757575303872633611583445148434024761921312921836724504120022264362192807342321615724974303632753944705673221361288922866676306824028253644258744123008491625664417406701175949781366703002198848437515747717290523852553519723311955400230379423698871910431049714410596898534943519690298252484871618272634184276997276713488156307913842051573361216183029984992409846543778049598214792773379858394276130850289823817702565757242331065606527661393646442394927000781621886810094989655541720082996327550710659527914908065744027477747600263507019398236720648118814001555296926951186786707039036323115865553764609303402327501390781527783776888596626583923426174574450293325364123667927182757210812071574494183032467273574275744610007161688470427599597980509306594540504011464303279895022814096143418707068894404333454920843826876826687626132111367844407850218862203225800583649047949815838673420148582897773574021074516585359836038118229201983857475686386578744966228099583062729987171851229075065911499253186820459854853145497472918412112700838911992252323664304877189969670134435632877806922992428932325268178167128767948347075421495198872677096260358392890288565748567100866723130558084758985529366333057796126925234035627509747958461317027644948814663160908587169083086852638030407970687398043265675078362294365730291644070722220761469834649289355363863056108952278766418866458229520154221432894430111194861578813074910308501124471422244816438532450609658629596842144803722507627558724992526023723621000709806056498796525784347006329582163813447414523617489216774259685346301876124757132938184702891583804748038338894167536895817598020052512379084422863458686141720959507425539438144915503819867402020158276865479408961814670523255625856875992570844810162174974429951179646821315757804547900288580660581433227084359393281530925976528060930884002966271534202074877950974902403917591755536293256197550903082667416922923025872714503330009929718729759391310976888547362703713464605314817395218032889773945722603412907383616470449331515846284706629959518020848287456650322025148349867416472500087126267836091655185291300822982097373025135667303891676592317017361393945449516946653810002187814218964176497788075527137006201640109910903805916895584700022904160957388044006470130330228801538543634256578060078742790731792426112002460646718802539383591894822829876726446733953518108467831633135047783949531529922403129578200141524476659301544281380055249278998662064459653357559090829288570665885735706396884172390660328283650564749095236323626619121095710260972535845447355671641962550435154834233752573911174244455655948851230031874447818322508216689132041912461231049717420077644105397890662045353279559521401367985764423376149953685089625720895022988251276713098717267947257874695973352228104283997926783480287207393059576525215633553575867090131690304250256498252076483294815738723238777420095689953874869654245631855235312622815142705713583424568489404706657382068176263770385699339131512665269672941870336527462418227934445456304913468491092810910039997651321149525490961581021077643768579721941068056801692557580447189106180071799768230362073491418605903735628718204684106145122004365121002585706192752220718850118989088559906746479180431065920437121523995085986147895739140340155184612616189222593196010659044816665276486766461004349288438725044295061702178577072711678050871329366845450944816356092490462597855636569336810126684456365811894778906303953386890107104814233389294076080706457312886931986448345959762143638144666532767931030808112130764639139557126164336376003013043841104912142588322748393015897360988189523704190838509083861452228878842396126246741907426673436430583237952821435359735420697306638627346632544437681101497064046388564859363971436909680800078473565464094361560405153050499731823138673557178404126062616511081671833688637009639966707692948263250642157889401168050051292241428685673000330398095975410545187582815945729453774438819349877842864743960463638062919009196248444374027347946467680690530054468992745269784062579413684669406598760916827027792380616812034130207467729191971267991956336294302852321494121600908759397787732802634710197477164019820450815317033820131231506051629442172772221031076680794606110033050388726796909273921397582656953696250647882968838894714813438997224544129386969478439866240291604028619251506117422423854509323547706244115521482876574812268920090208627697885574701229489245892991058444139179671135956445267738580377088449006640596782305386743520446105405604619835081758217945975105845422731614705316838892401399009751210088509481226445813230284616545373778874495161208473797562332742476711449967635709836557920765721498864484028656517758814502540883894663667133665061665239037803739038797181446289501596212541034251651088345097747535602157595185831490855032132886681984580215918756478295060456292316646836261486607182784092248606807210427024372556467182497697317388037294646735735053778174811906926458368986501367005593775535964746194485998671600366173663253667767325623671342622874046886869353973326267730121695244526407554089911470510073165888352811731647152464638999471012350680770564353719788320424020475725946457397432033319368727275817803477264413233316776285869157394803951183677665129276290507967696926345735643073636114427418547695213085920281852194120883047255275746665699802051978694319281951316228230987293348019210696311248612565975319593014899749675874522814212930029241756519315094407261418925668400691201305880173054300270978151726644750736512008368073394799966010441370564336236339668002360742502104145091559245351210701475683409908326762970168113653470096559319633956942534191606150175042360635707936578221040630320479204962258197368401435622945084808937136828983555724385724948429014452460624938206722696818855600514752109249544856628589182776311183361279402458367333046515420841258092497399431385827990144839851220064871659348578881441113843450215086249141340702527061222734834141415160806502936085539568627460861789806892100120832442994153970390289565073525445380131557819422974793097716600932801854884986055152474815061637635591981643533183742068116375523406021885309048498117378768197682273388663942327858772944420784953800062106956575103702255189711403385575875286651500587183580762264394916848654776709255581371066459312194092842050702162009845052046232736454374684182430211370014078084266488691741739652098563913535068696461393552764427016219238720988821171716613127072156468379923992744862759338444728216066799084984260433615816389937027185698864254635814002147090920525253236362963633011052197282976129306267171905536011416692636255449849529564038370664632814371210676291692837267123860446142582676302357401852730027593521903078408532191812460106787632980286159170529809555634193567404122490379773340935230353145198494358024089466819421005857371764412606193200744831157029616441791910862827800546841036191567324695124858475378174678052879520651576813332349888099428776669040983201149985338970694623538794995532531465675570996795508350273857174217051536518862432214307488534214575888632044437935322735261304068400995070044938142999613743304262203024004723533987441378582136099579462212317989600503077322120587409343895180016410562038378038904136351226356415179801241153296462067001435302902575772759951518339498380946109505258200420264857440628874488178434742288386606997427693365101415461237512477500689088169156314618027025438458985114931756801146393712148629251168306353861041099496784407014431969993168403309359932578745814162571736508197778537067110982826597598037548588614802870747172502395035709316151844354175245229436556958580162856674268242688383798029577359223229550467600777484835300415885458905768069611412192379943454280140981404786828111914229480438468120207892748287959499583477909400787907027918390781774273002400595569118627394657620705802181650759280002868290882179758216600605807466839860514316150620550036690875566171039066793276052306644247687072362938856476648850583754420336915820661123691010992286782029966608605539076927045756176032618791693414002630729336777241731469064536433144347010901537340329687340440243495170100197952766176664642924723894417313524657010447872301932865851343993117512438644101267973560736418131763437377342905360569263167868129347740133534592248050856930628237994666691312668301549312885446550950704853970286525641909325384168295742975806719430832801002027722665511344781278239209561849583063887941611638838454318349180624223084999084205690525342141918522943230075579032487015049551342279400451003299844870161228150612129022632093981157155206905786881913822849204331052059426069652577349109497169451684891190487854851829348890492763916708883144807820040828607837310340851620716500613826780420849593385128043012352511511874514666248116325305122867533815809150333812111943005266726425319687159149380480637131039377415496621638804067620206954053026607216282183776288089618499358385099967635357816743307498452323327225176862338579221536308160940268668451507072113787006479457748956984443191174446985337639362414776533413701108539033844428828557575893272436842233837346848313027515169038919289118171727920204286042052429700142737141536192829908975487578358783067795378061898839805659359202222652256379323590870172692387217015322718290737608171698926978480306386253237342478940200128667541165783082752890104904019372212845962217310950707208044088609866234607982704346768707158924544800982310811526966397427174825546759439326439513943397182116235042446804672441393525103978146241471586755247936621238094096592284344800911330299412560072626667836646902261873563032768636658395910434074070598729901277831015692065601666628985383393761072679344017007626782292521157055728581769133826928825782282111572996226440648271474013701190673870565997404123203793592358995923628811372332387875555761405259812639449097118980348820430754905928632062299163431519338414512642196105902705292390165792841761835036126052706656362424950694575690611100556310627606296249723215809858235287472718801469608853158177282829088715008026099072922531943787997905166366675481575281547442031475194992082698673267449519152890644308423389575731026817124773502158027930035527000216632149452595695138075464618330042635379102092540616722312776172992853327622080217177954749604484805764582679867485144999573063095178147330831216261987409582076204447686598602784482913658169912991107421901594321812771592217240152233511342233472722250984424453347551202983389191096608382260584003540514164545845190057582914457784991994050055508063440747803423963511094095251353580592744563378896250316414543211071363711031635814978041427097282730049615541762119720616608852043610001404719218132836350665928957038089066836943431470007276696341580767114485735654470650856511980432510406117602097523026959144129089004880600239809441985047594455695846135534251763123557508428449681023646096600014612342730587145508953140062069780458668781423417962955470243269504542155301820177348856669403207394188465316045885281648642744213900505426434696893009553877709037097288653404108915770343105116380733826961619867648249832041465715014790084360104406121815326273469043392470116272806421230883059254696560040924532386262700283410997301582694612632984243927194047842342156948304192544082435107935706262422744441124216019557336090394799491424093813712163542290962240051121164062614273967209089232155152208917481406840434938649448004017739581748805501753753229802473525021318225400930603846929590759340594256634470351535935500045381385023281952946713614415854924029091868288371193444598055751120050559602319686887710613095553909650317834659589056214526951784430853786738039695626793723787978035854465821413620757899289146342312296572114538630869558303511562130066034980843929054561480114160349843019481895807527842685753165145792855592752017362311652489505982531822516151439740138841631972790090794158223163230610160084266767672574484466121522560785301608522040702687126197991268675356282084822030050509559751569230204682908552944984885065443933814439491858607012899294022445510172074243356871731508088974212218029904448206366153801841101888933555546038787438864991029131375479409579542819677130594303963322099820826919864724475894133143439472443671289940982190879099903882699428397760699239597836603707833773505917920869200671566740560890032574728975971929642631924090634862245657222485715564650975846767783380264686471612882244065154481931000032864740535885295947795360449873821143411135518832853188573359897478789970698861154106534310254581771980323897737421464227557088668971502449350096791697347874829157265601090534286259919676751605935235719087267956318488810041002361540794744982117798050605195065571101983171051613731278862132255487963649915678099780961051828331652485382961694808361118406744402818484431759041497676046216572500423675507223204673716150728912590810383490145257903277500256249072170195903658038560742222970764197208551942383274928380585052179775984980612041769852005221786228954673360615738331058112128506715870367296295386909954313679746775794393236714292222656795875259877497621636287987126287547396127046301697662881992130746733713152844538799523005525563771685237809282667158904918758067717549185236563347017175394980076540688706647899080359305852701025589431890362598249899917647497850296586523676209902926576409609991368042610094459288295561614649988547288502452324358264265092274492270017505578988955166167256469964932848953975180511005474457199287083144652672375915862069608488958233653304927675618444389614373848978819670580455645324238856888584034207087573452739525291790650304502827993498489758979791260914198393482582394355525082420564865916099909581962911571227565468276942236233336938363737725559478158876148183516418760801282725050690447373990291292041659508400842666663240346587685185924111671790327221152525285951938785355581059413710379206390179282219106942456590550885753156223400010622429822988240283093130397874871310900100181811476421006902418257276723137699279504126035795190829990196361591338456963146423894274997844439543194973501504856453351526287552727292980808841472411326289496560664441980217561955638448051870102932345552041493875058783851724368977901109751945450110575887670051536088115230202961502188727001712284449878398407309208190161431002102172247848110607085191163282231068290207356912113297574113953376364990325894758005559878058479493647745776283442057494848104518704090043924963589583193771869116223280183297067064549168712084458326018635932584634827073560281237049133532258556244185326453346992366553906667815312790799732936305840546460567841812561594010561853970732987813886572642647975031837255233279899895519188499397140489737695116001909035299983698170986628269075641193257533235974955349362782389408145758988432799652471548809233356186900327346714349673213922528208637544380659702765542360876009000030616503720667886908924029151584219074263022636949336988731586733985790271742388761146339543741445327571521023811489317768986159122823888884140091059060193997033488005988032865537377288174890888780419807621673184221058210263572263085341458984000647112363832656245760771889975573425765983290223392722464321192875810165912049074121073488445617442276708701697216420348345489013924617998396987307825717192186280885796078673002475982629351518463121537343870976646252926608819453438604717343025202927835591297879003867989267042906524703937384464881583097548115153682789239697368629618822959691308226082083843049918438230172516641808143001005214587080501113102207666129154262409306813253212757616510720299796887401493604759144493639031123206665729438114603476739876847132640093033915984705154062400463069072907079559382599550442348859698456364800495446392466810334676863547614952656438278935297855169706849213233956578159790482932829031060116565593650380228573617258212019913384461102134055225659274106490984396099615283823514472698811986235270177827164346286788369297016864006247887371376710855869676918084527821824050609627955824424178978751471446862748702677359994689028866697914741073874009866926624792058486137054928580713821533416216534079463206685430312504456766429915418273062848088594861877877834612561525776854654264276565833320196015394984766408118596073761681063382852535441588320749334674759495197870083498331265898229100813183592512547813522236799850002324480141685776948952162454812680622235726553003805182009892712725919008202682374453128058777041022678753100222527334148405979735924337507379782648242675692640787756108289510723675382810331877878697614523980188877236938360940998907069745495399691898482659723189074962201216571335684522436561247658904662206157867362867028181651172997182583105308426535238049172334732637725291594219496989279920519640316392775211058966662532832617612293692838268968147373018191542878371710352951874374284364109971913933250055483853445188912864971791532542813708281402150087964698103225967500354120404195031669161106444120050384821241724826581107943734824915045617411190817344482088823183461493764372338515609863745626510850442519735716902446965266570281186975641807029311019291229792982800153341575517461796175430259083563247708097161372789813630233103894582932665981309573880846532352158520505300919878559905368369320585055840839170146380867686775647199569778375674659503051032224805002406598610774660211259262968664128495540076686201088239403800674997240775028292354144335940611424733978489029962856288897620730190356954863810733343540508944666579184322510881569974022030517385073763289778932527937361087336638424144228140724525659961511598314328330675432290970051757640166539119090981755585184591049983430367390327617412889057081816535796785145904940924715980310910020589670692664683872793483820048227252999021028913583865665449216187749084302178930149472296238693111506140815841311110976518274443803269778271298704706546307993287357561059109006259264492528454649464687977878825482162311499418442665419116860133167625666251689673200700749316138722153317840675647484517744682875551773003293719218151403742728500791791837659387394274349524965695178348108311998770298695733154776008444584551170350841149804951547163180791780300524608103871342127544428576635167643369400461311853525202765450717615795013556801699253131581938511941342223784481375363797700818874210487879251195438323148603586656645327193540793766288848865452095517189132094590699914537507332704708792134148198055155743890033274337655757670736413376485063819754162026942745100703131891977275902649537998052209755099671655439194544655227104771367457786202174064845732403643005644371264334798598793057411791921893234339677946298754080353843753729986495762871181911127345514743689984750752435718932094025893332688920788033437275203534003834665354282406273784679596461544426232703500607295491577433972020797656850068629168365488347295348963719774464799402807842530379842602538050419634239950158402947446514495525861036345202155747568664812761123223977080145709287962665792125073789722603978228423673750290406090870879580009840364941189016118788543989326110657336280586069008643034320500801488682065668376484516302395678673332605372270907659237799424153997163459187000618596304287284284113555189302983033120527498432401354675098605349618572758072498204529203865480041110130449409708840698238415662048887702048233426268457263511275496423175593469564817807483582706923305335147294275634214106809993721111254603013611403109818718439919633442933728223685680585200925667862001073251858337416956988151979410083764626936622973053913687776659046670857364582412011873160629634496951202467460174229927488024052539455019413636512586439885848968312853055498074379989260094242006748924251883025722710353884940041681115172167356836849761935798549340072762087685414324592132506320351847923779416966970840421436203438252447375929996925430165447256411796755006767986083040356202342089860324738680229709430988489808803820800411958751460973783232635826819381813658270856041357376292279781443346163818213061178785548425912569526602642197794337382144864646673793337935717598566562469740496718131392812543103202396157301495649176835620312625184762599207902967103362365441053687734484394304887818814125180828132553656190180775679501543323016222551798996142308771960304645001896165886523951974875047738604842873320421741410193776302168175711313683462708409939600039030632436088212877858607068859167774817812529846454860609071860453310784045097326537250770623064398649456570371588874774634260192488567514453389996384940736471828200020377550638814214095885621223698039295715337764643599884569107375087938858299191396069681292853412005514133481848051609077188780230384236670919073170027637528481241363349769495585037107781374892584249083080793514661879933568632824587746431122654212502950610746801442485064374496405540990242989654054643354862641394549459413600420365070704605346491465364123893592358742178203503146060809857444493527208532902858924443518849893530608603182873043672034981571110033362863768949098359722950856763113612198188760841108851994415182545833761346704315131120362806322474198046154469087630425627963179067712675597953711429541051044192542871283688685866058733096730582925328973026623470112731743713485136670434140965779331926076478912028578378195705651290026382704753855871536845384758599825470307633900326124732510084874528601675102568288110775322925739868629099660520014989793235340695343382476555961326386766686456025567200593592958715959080496788805028667438559867611942919674009820169247683484359541050729622696208234265711490703704941056500148603743307176745742490192155081854919173883754455783927222612092672444443135693565656828587127888260404331411205348926893539269841969356956842929906506388088369483347202631267868541322422249964295313961023759235079765037810896897478428811447331634465328780924784923156657141859395217785092261478129606779262522109565113058290936628640457218898749966774231910347453060244682011389576799671391784882179253565330376377689281898179698465319833697108830684514995071880776018800033266013856668015760236835759251317872834961520175910753965482430260881265917781531052710573224832314254415028321518563644627193427163891717906864715687580252914945550216950234621771034532160395320105620882237959283532210361189832932592645359428142843398865511078075567654106507763448752880875692460871028246035731691906959976736703707166084243613729084640428900986470145107763583277908071383062808290962340672118385337160406556496713183933193924511066529052645785449883811729689713072371755089099923991672224852753279191059069561134839407227895579126154351664186196698481737415216043804726221965581136367855687325158509203336833537324032453268900923208432829963171540989680845791588658174971093311015044059902914927047044595349308798494796485462587481887965056858726622794151757971322820581004552812522672786233148863909476371005840547440371801189398570488182983701674666895267339997914638066261286408349439729674399108340202892159028076877914065334451568798647343726604987814602316266471925695236981376659462492035797354779587329869778425338835505479858763600928855029800561730856612132999872106169869352428841402632478097951339826208199004652721104935496515585062774460812478787167441759164464146529809034955394485584714690750703823175511757765657123049679064449656190099304721307042394325336436166942645542864523801246917311377273492935348915051327980837635754434281433674936286884052603753674745440279109032770529132814085506924058021081370450483174343710171812766449467242695295531530812730701722443490549949702373338145376076833404998717518968942325255683292586129924589837711543100091438281158961453889847650077805911746713312569316373925852885561197142401943945353941195664561236622477455256538932123731810267203185663669756301436875967065981831245779630577330015367852477690290062358220286961740565033424588406589615942297317275350232755833549575615234620418930896955684634351491141854688254567943275137295652225499859701232218536345437382412372739184340373125758537714975605158728449687093644824741955329308476265020403267176861622617107148686790265401995729320866093215704784828271763007889810724394771270292134199145377703274345651760675072007965119624559767610781134578699135554027483554548486342889116801307798353208939656549725971298683395409797956064448898300252049215984467100521938561429192083010401544795587812701801096651081412417166130247798331053058292944988557890152761296012954605714431377152955509362811778185712341025799881891398984210998392713635059795429239817834712396859985182689337731686062002609782734998276695100829757303324086825475287317415170011382144717257911694524548446801234353434384217266196319772551571714718010109922726877079043835374187922851744385381921049929528294398951476502862347643555979532411908666349522697676278212755758405942848474953954395695818665526718302932169869900248511922464243213460012825945717744231930863481976739252099825044044100643615229571323052658731365202736115904980210438267898754540469847951560901231134969533703493078153006438900692773658092877059913081894799491350562504230497435398763312224241160825280860524001958913477079399342941783222088225626103756836451659694921819405407608411759106206430822883980989717453927409039539561554462044642034015054119948092825440800536820378361609448420697302646539075563546785610153021500884037481383947799058333099675571080130964435731684374020097076645234607923858489158237141122754148962647185414813566401566110564745933693701372928450642297621468218870910635616768413671307206949057885270906470021420506125759092175832306629905765937708554169009539928878471731104384106991760973217432924310083705520942981571141303214449154385662405199590075369247605349327177774901428491649960617914247866302086865985323587110019387204929623346430917530198572260210252059239865361537031106932428173985313949735178215145341996442778793184241183389296625671717189985079604937435051092513719525241034170527222193817456880242982030148510849354512729428871023609658459655449524643240017080064091167567050942434941299068646383851321038340086530480033491006788897864672356754555588019835874342135299697121031625140100755752001135142953939582795076221296320056956801888743633866233263653160591914390457052713637763513132580953692210343024326398841147629948229355027771419141943287066364303411507049286108314072932581642709533114169506421226934197266565510670825242403589764213449845319080517679246768621851728324683620542949773598714053776563649157178018218008694746142787221347432878190372236312361332744201791983845944349815117569418528179498753150115394021172300803610712259177724272091592556408738881273337312654986399678834281142588873103706987566628091927243618134881492282090070927469146801767118587477825344681905580943659677854786051796981183730819005529015716282049481733693598630373709924809185927621171025720717449039903219290231288029244966764456738537855014493604346241336045017680058020748684433658927475570466861724401645013530738904159381820979067210224994433986531328279493994404276680943739725658735762776072028893456389484218405907940447622962657362598973336071961298080765600834287721494344359016254621704713475737582551534597470816465228703484574584195928076086556765239298506155820060134885546929343930468416677561918573414100215611541468224117642764653226675535732661335015346467002842578405804635616698665802391226822992994664974863048098757666306761548976457210158918738900520182457806231753767876309933173582507305684977713426749855627613531510898634664953965758686564933053138837091430164370210264611811886184135550283262920316725611500901558613744590206997819500577659230690739298378790849081581489924267640813796568281657451290857523744972940900359149482793985227845990936221587419424387560682677400771598548376547104371593536715126754116627744799272245937386125136570791439107034921577327600974666832649136754605368693041191269250767007041179082285184417213952259344085506083936624428073965351350637977010919817183467555714240766416725851741271098073006030577579096045053361910311603779320048437820003482913679318594537722722824372022117857097157623213882801864827352891622344547778828205504387626053278377782175985804170241208564711247475475504461155449552353743794298854152389492628775275703761444841111943738647005329162582254042230959347486164476359431968571487174242685696666252465694030752872403517476416579023167720445466307494267829513617656462752999185149705787072380816488397733840998450313661610268717541508378937150441149987221382816165610958977329716041660017045767861607685936991684067931100818097435404012731683770867337045771530087419395164990338494535754151690179186875112644278588149448814516231714906604828476978769408480270908574182468438040166913034037080115129762907233857162796152215999227652070473347586277345344320804138542538675559924358397743336014159696598251515835331070695595973736162892988183825724307319030380789907868828036211760473755634506002465168945278625763786920432519038624840795484382050863973769948635390005718107374750368907246243341749485300278466788827332018501556152494408519104229273656383425208744574809036034620055109902519086443629637325988973038289485454203462111242972686805589364289064187464984494038990556258567675483914175065177080898381898277258425514319487831436945331745255079450501204333860695310685399682191358556461435908475017839840519906853935687445991837739896416676280720637678958988555938714881395693422108082858892866146879530354889615514884773452324700301186553712895771252368559630447954279214722135587664529838992839421396216085674652758506945935432767391640207151395596367825676869271073865982457037122717776927347147255338852881981813326295219227436432643775959567669137984013502909666791361997271285920179524225931813624276217770407340296813648256386031273205276840977807163868855598905717654605548322777795314003937676973558338667997932411057345821593773368420515882408129503722913671226037511628367490253965780087565785755128840724871230730085481041224894578225068200588636443380434837422363807231414863064084096896635401730091614020610183371579408599939756534252233685819733779855052593957871649311936163441864588598639072572203260801414197847079743770259883891098044994623885946016061110108783151229638442887309832120668438912237276528909038663758667837561458040781968618939876753183431006463694153476058390345110159676494817828214981218600265755764547584644976120157456308114841894524737190527049713345175589219713692294276416883853362330818705314071232499679699578553298994185986162338052579552275660429226622537143196463876954478227158409852694575903884452208274929243501480053326773620960407882025477999282674899104995330625663357369518644561589508092298053821741610949552027243392401101784899800465076442951178215676638296948008883571898853569473961220907971666686416830020999824187215551804093551188499849322069268719265287386041099235299212423164460088656245949089912859466353649006391392893146630080391732109231228674320437545773261692278237727708054578769575148397455941591315748260459705869349665425641428130747915874995161422694186331305087702359330777532516445799760997605448690431592881418800459925276561215449207209006830511279293632731627022498691368909904072890985590793948461711050566546632482680610490304655014353883526264001655586410013321693178250873957442300842123728363853748055311603237943328872870279041038017417753340071836767623157621262390613279926162652684305966458410536393014673108068894068723474208820339253404592328510198056150991642785262903538230887616250715164028722152703397572075780730976475923583919237424524292040801884240698237502040550167771551613197356852747639630162810413215171090082115997837442952048594560887296118814406615518215811469532083868731366163400105343775803807338279232189123678384359107439992474151227767854799116999157399184360056000777865101482422114380608020283417498919789385209969361403511097153463100854547326485931201670154528699989772039966456501013866599756749431037282042363831631363159736371414725113819658974099436197457049959292370617473743223267274685828967509522268877661546855928967857355102320565411042001127919361369492406979005301685887636317836164507071653692771306791604726004367686899784911547392801849640205318387552005000847890364335167799178636553416478995993900382629893140011956970207811317865313536274341873005469003956479931954583767873337176217905426592496278183375348100561419104796218557347365620620416623144218626808258064925027389673205399000416922501242872125721562509974028711915785828365855789410547295931802932702113065942166941781819796292301637308770025764399098028727619934897834733814977117150618250725198180933689188766958930408760844108063062938087025678588513807503437536819237107362408443923074038913745278588475298344727010584395061758860172852395377010670498820258252969751275757858628248024044168683566557912537128548836070790281714009613352520042363138026476971525343905045868283245110740438552635279540493599576484413837005280801993005697517798096816694416940018709157322405864651059495630683319269513498861472963039279746421350002418776615541159092196662413208550869139021804145359236428920596603260512402743792560419629181908032303792553876503976906565720835038640815425128599386802958519512699452000822322630492452284791324532906436905287185426443086659506248973209799995674104216583401671507033113472905847351357696071060665502493260688545547395791392782455231862680057214217396594975499821481478096554210254983888019598001741523162898901742892700921027949716848935244682957498426392826681515969300558646303229922596174912716155024962252853093351297502349231114086346453663933624770825916200365349845008802390237317750120981528675167228119448830378343064335156647948999008872241685746643467708954029974394262581021501788169363766765614460585661515688191245110157321736753648815689457403814832483190138292619230651731420653314246880554667809838786510690566595118169480858345106480113476940936045896139488185021015308364697970832703210109744727553495389432730716755888371438125181370431180620809628410021526435089586899215352254097857566846317341724919694418405278242485778183510817488596918799255893550950330171851138813008967344553823508972474954615463021153312107039190025404853593862363374894853618105298272517844721055484372580467808343343919987804990598931745538123693199637372826503618541921086763808606601606739256765625444621926107429257425833114860934195663734442130385952378793204475006639960997810462973382357468389123198210447093570261061586844472474165433175894398086964018484898527153522879509308545248144501474487128271130698636423424217608150418396145192588161188918278225605344838346206553238388290296750517175440085184210900274140565522075821795894180846320882187267682228710972185610945675346542662877318934703226354832408476318292127152354211143884540351723392314565085525478876953539567761951593256236403580556299636526311979452744873901818863826212341543324485960056046566507807010184227307933130902668136462379639122534325474342402111614646347958608291408674876027245533481117694362193605856230601133195814595347349423757024486622533951781714457665665062383068957390087772812111178684823193460777173866109199868623771989872556673584352369773178615367401146726177338211096686563995295028346852939260371049791509828755066991664754935867434403940265613540107458544626427361392165471756442482085959650048426365528426657488074520231639406846786730883482241297013667365008580002688576985535207791159801765193165578443992399727100745459161300600480609315036616748490479516344153567513696696033908062400693101482969198045498752688545225039638077716425168209037843972843714954763640086574434770138717950792586433593870824959065304765423589656900498649926541164470522145797967142958871787045207610949568504374203822935762258704663196487619880386154272573035240248525199315882738092321878003012185386125110228948158606150747024897703760889463343837225988143178102485243244450947952408693012514142940626464924903268002923236384965409543701912021841356085263849608128688141062159212756521901079329098384700101156976785627755707275510599450268596366961785885873274009812395253969896518748751254092850477501609770596069023424762338740048563735616390039261324247706220500139577851766457067660458761010823727831465120443371142293803198679269767150502419984431902475193927550344348333715902758359871867792825469673425389453334228833098588886497569953655105368417751282687731428579704579541961594997237005983476229297649880445301744606590005827806677726510345891777678918056084636156677171250108989930285694845102313208658136661963288234725529929645532933704314872228744095533009261698560919394034369787070828340193972242513795335831135826977735996340787819317283441432027312053906102764188021943198732425449045381848736939755755216194178546795319275707236617055482959120295497428595042701724509585993511205606135980457272878083934951453684199742736246901547895031112997213601227767220182915349549919148630735136040424724114908835700112345333165812140559228539975015742591870421176813989146645617184520758808723781821283040562162300757880506330101276871810656307835241464000893103467566645387589651830200254774248555970435890013527363333810447716501179605217073136645008302156493828286508995469019923927386840161236613210897872722961257051135967157875465717748361033156851528786931230698460013609199795141624177572735619142416308692609516315926976096619890065092765764337078772520779748533597963813534040321190877052670531899496570518105274258746123753543381955944915606537166690794114105671021815164702047502492743221771561377638398842343168288967299566961266304809198234051090123533299571973819178078955853898569686142514608661579072364455895642446760588795431622354574168553487537074403661424479781590238980486724489566655306340846511373887504802324834105075462265063239435454041977573943633827654781649474525114907006127349245987540681307482390308572217977820752301721182241369300126016708104094616844433837252369833360010006592634875049741617393831805120514324875978493396058089124038746731366276990822556630107789375953279898420638047136579853151847146793455584750740534212689511734307460175241129554263434159298890501475338464169025067816688427743724118564722761210897986386423024565560812139076537096078818854784571469649900043856506944269592337315540556817380197915564027344760906030211470613299826806818903795657521157399263946841949560524250215837702969030052545599393677530139464990820564178635733492550762184711666348433730273635967033000091438928387681324071214153493185962965181632556886436187546117108466664107107856059179034901509981415073789376106571054918598995457443638265001614541352840182538899945165725513528922484547636579272439123525122123313488929409541548219905200964944039321426137396018208720884034151025257340400498351839523206293384278718107682652137686273372582323614538599605947975663123858788517877683886742980023060260686082973963778981758452284091248159863548204978576298987824420006644548905400749063297690666403471106821442867568358371173372462006197615122746194162307824311641145885341977459047901311697969912352528875020536731614784999423802036602000295786325536622818704270952142757573321192852375783095631917109406921614191185854898685784380063748636518726143723941804846885235838346108894365361093981906357965338849889455809635106977534981372712816499365239523981250314824467410731197617673938708999324883136907055674882465987383366746154817118991800893384157393103272313601649215753046100353988916739266939669385897226570166077330375111934427092506620819553760677909456133266651870396863552351067192433295465302270575044151922828278649947103868699415873249284547290490818209597760684025125759720718214769754794092684073926169923938443668002987168822275249190023670266408050001600072708951317950819278141380464026585690822553458354089993800420051021487860989502414365752840287830304654249945701346409639563580343360389998925275941698440103344668798567407840136021039475982506451884555714293359937260339562202432720202683401182092271434944357191407827707877527834955824197491946430125477990068944866119093254911945676627710722848603694433254992931080844617451604294749770762684373287239978890276873498209761142170531916949117740274639473975457839960201236884765301647266756939923636907636395442797251835043178988296850216858974877376350471822638284415753123188415008403956721490396533921950784729971162666012776688005615667817957603985745397567459629728534423350862026499139461589269617148621462595898324441762888784567226008951352625633594566764352584491431261438674910933127688968510775591034023119000646178275358931200206229004476983357719219468106896650845240816367729997550896923078174215799888883785853353423987113343867811595430617598962292871084496159610290073532329373117810009742944112295716016684391644246989607764661381970077890980716302434828176040954456373364624136555477613881323008043698899166161175914633462919731758924597443054796088419124414981525524610773244578833436612805650045054774923620756684993476910436658940625763617685150335515105721525081290703175600480360245786574295800499046184913772522082380649485414131368335766303470506959750130649824529471577201286950122319409627686070409680592816349223981113250302775379569326935370936363048725259206426049540218361972143908088164994597271477001348211652799369327637824946131604641678198933463232060242760542701837279202506052094672762363983657243775971099668653264944637445458223724860930183991578919299351330427607318996756812909314373432864626160185788097083699185285455223885219857834548358770637239821884235834273920251497314652069891863729507223075466508401434291855676399986797380117841739111342434859085177969990622038319906751122960461785464332812060976547964681869801911481907468306958881642271301370421207607262381195651366710421420204549278946085628354569509418701450721162923288969870446096384110784035809405514539086194300934443700942383627196985952371894014188129012084831548894112123154812491545292822819618741330143931846483577952057943854545314309374153692234439244209613605646304045529169142789600050002997123844888310126559472370947786599967461842121806140893842231452808650720230100614562038718653373608590036090722748653163424694301384938046433840157032592061214086419295738454418068675759313648020884567930784992468996321804219464399922353802926557479550442368756535080600999273862941777544658364430874501616763095690908520425147183994563519492056119061555285925120239877762055701772070275075492386164262135809008344450165266941532672544711220797208734536250586571532378697148525482139890255057208163704707855295716856791830732794045786644298317198841380454444122681591821315734880492376356906640023842719350302682466264389429161310061425529582540924515131168668703393192582050267263223707029394518466772426123096743706407223990051725973364342070361307900355355290700904741668431554167525499155171005142151639073503942818312081336902065676002343296569217050586155539538775446312572150847207724665340003887561256594063724547925624062550731154333613016070908633563907104309749276075328064480797036214509372206386094583366654803032872622253988482488985239566552272206772533089755745733512562229739731345270490046091162060997624348942380947146748374234943101629160067252784744212392735250078353700077193691592908583821252221994902634782883389322695447938030421198379383286789865989102272089518946522005103837990440637068335514090793657914160071536137371535220558853635148263740285727137428266455433228957277687288088418312049412402224753211864119371252013157701194280445395190960182467429610361832672616008995105825298167032123220431873387862377492249173119352230923200613328178536561235189702528287191557881543996105995984132053011184919004928609004705571789617709442217486505505548476599696711125805958446975853668377187499697745172733923350365551253701471213470295787327466720200582016963930181053818766613660675167524703178801241681475728664182388288741119622098738523488805128292363031867955042010563169784811140464562329018648853202627452071627710581284331444033447319036923445124334776064758001367335227653603149915875308269270376947340026158265204782599617262704655852853049617456794416219136014646765343146774630274217375096580178031088360837712963904829495550640732452278798905300339715885216650070342943633428686334038108922256827592463615035871243573877373319426009994217025005707046526708542856659982893812746334484118943037595915348016720699615192710035152281754458772294709718787824508909039196433434203583629885302405578142064264094402346509802216738228368265984171856892462637840670247444458134161400751105015801971604879863359837661437352892532727517719750705742968004161676174616315414288005616543166629471495772581528513087476086804882454913509271300690115614722553794172424884873411908004998929905623491062449619739552436571689984157507260546226164366793414731118815241586873505792718702443290443995720698571911331859460956561376892512681701932979562133997647740943091532221780528515217986622845569689559801154820711262669342546876135866903032563970603918613820985451423491696270319779384505094407407275661913323485208022285593817581283591802343059531500351638201304787257360319022547693608648286247783245183449885238527740234692745629339785799581595327024805382168214353401515423150100677331544504804759258995229355186624706439127173809552568856241590445444807659002419121823002207292408903460381408554852609881591942432679025668282903077998540734121915612008038765314711843926770642650483308996856701012751504091985447260752062686924878624777601698145072720521565539230339924409000013167596741071252944943264024776011910667559430129879222714283574109441798491036482339124805220459249964370584880591713986159844784039833612668204209526643509387463462389943594773076168908256351503073817879382220063830875814886868658185893172580950124238755688752330478121391172693912113040183106101882849220503057527017231791790725523564143475065634744617193620228468623202754514097317727123339394005579925400256546787456502187810706802513380685385169945319577113582445178591596109228811488101691439039685576411857669875458226664825494604826339602149221011029054695996944207137823114930570820623935110960718727725333717675484044782958667044980197569357891366855282482298896188268505476389578250816851533423643774076496474625036416462584157615942636980084524879967998503173466463766529216808657686640059890722160625302834153253324523306278313531792601750791786834800144046366256198670361593550872820589086069912133839487302142800759062555536783579182986548555956434657053078261061258546100400770022957250821017602820714415700446600195772606002446650116769986832738957751250855800402023809904598852497186337352443017892089390761884059771609420247842702876229886067701686870967937068075130064086313591512775526757539397907967010380804491117986310535054281927514654378740262481559001980486283248533704716047878176862320953376841736545038929185133344437921353406753587777888867029193080281471896509006868993672108982600456821874030371912345312463423840176207137638091795760624005079689567695953178094899764060919705842301296096307965833143468522055403541748953312506139549530072313765168814599495300662300961143627036555699369174941881328015229692578335629322042481101241820971202485772504728674967887868617033479571713679941391983426945073310959798879077216269492410976852948424581712182144760323318673502958537488193555065092069648487141374195293456661885785088987758092801866813159050108399812818779774607450101146110847780448508349947510284779690432947742918787038115464999792678900970562730660885056508161489105208166843232511222310337105409764375016322883979538359164328569938496342810320879761674385513626804610334773465527826372125552348701558402123444544030122757957214990518680188921768043534714798237114420678086400517154504604799863646618141296002460574264261524856757814613181877310105352764297609828701673787966629486585204911600068587304739757178770058646742248907343028984160017741976016282807033373535048206803777054476005701036032606821444139772185655412940516418923398129237940595265856298676048360617819075336627644667914782913303448745519105228187412996189771153777986871574162807873330119902840797521800959138805749500375303351521816358136801224404342985342060679903041401968627421124570685762087235021698981887887953006248084866985290849686215347962600303919655669459924372517681700247404842714345666195078517097970473460657199617281602904939939547303639978909931615925898603014510461559110569321488477069010208154419564425683736868906537909826249408655905544095775138287785831201971813159887351805168089463691021131547274521226965992302021326125918851638226274231673609730517605267912072760451956487153644361701651896052041472130674509015190076099404954526650754149850349108197966882110765014209435491921677272711764971810755309734519003954119207431192502866226237335014767878200126404699004405534554682319761157933424919920190967967985934403606665712860592519369269156200385565193905709230465617544401567396772413242702433404672301367713885200348432532790345340483213813617595296935732478089149231245477321644585126097082393385202192161436301462653529044863975279239028386433909075043310574403314749836624097490876390563081284872109209259528048939472376805658206348688632895770285861633042646481830727563407244400273923843136282816601413071523552174066539116166747428790123172165187358389922877546478778091017911940443958621771370822151164143684165327848997051788890692898955355223204395054863315773798921252446074346195550204950916404497962890967359412170661587629557013552837614310942072056162266463302725198410270027790590729528117455909569859413986590494114524401559816036763095741899957304609162555674314278357027733173296611637217341453747989250162827546816448992485927968157757482472634707180194495642553192248074308737467679865307673276070077504257221975874016950867030662458996690421491054225148875887349258739323895515766067701062574612957398879365232656651560805301609285873540544471857238447980308262001554223663477562276228498289079074527781229936590490994367713527255651058524152115093014215102170414116556688697697004585307843145857014864244842155635851428134498700847322144088532494751827665839656687491087130081547506413154093518656629300910709233141002059940039998901417184446241058020590204683926426028838221883893627458602170952387897685675967235124919349900339907044525086651604405152152815010974592490838166004174405562313882072958398140893712109873927939484050419497190416711809600780287762486243100047390010620771479122393275069450238071851493201961272940149753183417951254551355811352384146235345002837143761677954534726264708731474506942579604598763905148000642800301010621480107443021181164665415812621008972708923853464774854636812011751955559049248955407017048611896777553911659591343904069952293396011747811785143952437964402024038499382696775764759410428760909248712278420414484283216191770608546507620355777711202505773808398964802462308175068795745277439093381249030959379946305087627938450029088365569753932317503198232045572294876163597736924141964123376983725264355310059544595629892983328044542814243204094846030730732880159989450912802096720208894234035888539022587676418973268453596735470357242200330328358453009294747101805387581051627188720920171324625021801182865001810341319708471809015842372735371141212924833551561839903582652699066135195295261189091802461609161369408161793077314434049286380424369286881711528488449936426031840487405358394670483911872036288081209902425029858063509848828280789482613673009840372612528304549593470123156327613068902744116078275995930687191133499696924235577886142462261271094354703641695639131214957326656123581367353091824963334106838455493427633583251779540234337310851280454637161784136757884253653766901084817748861105992472042715939936833474207345241789359939711227943417314235496278021661886155315405829771412526821556878363381805024450090060974293550460452811320555986694927636017987227823506842500372539282367610207443681344192869099031295057453181378824682285100714109966517925439657598529523544045888515523930381639649734218541411960535850465141396798147154475156303890679025366084579531709344263837312963020816377502015984903062643241743097896176772490840738168232995649332655585648616668118880561933033677880836467465492342999895269031711150319010102527735248635247080128071146580267211209520708987167020926660932803814332206246299555192854670364612319175075148584775886758471520755657248160543656026021214951408510345909234119722384495755241443641216235076952012634874431706015872035143445652955287273919188081338518217168696656072181223930546975303432381349603583948546097838317818117005462572789833310542191601659425401720253456272483987039774372466595471087089308701947052756846452461046344759693314016051633791950128652138991482715014066633570698091458520655229378458907459133237007031149002476905300826352616209685440205242780915489432297891525168523555889252452518545071299959133807628295218640510772408513304650647564326582847332974958302429736928573488551325554853314309443716426680477021367483924134812436672148674858039071684228797453489769151989736292246803169489406611004126097977887282957771330343146269287589525336714076674419895031698164573732438904099085645248292113018381459566266699626655717245694052573597419490796965658881115995273541641176745096705745094819238793265275154365552108455471878452468821498865487824986805730413679924136635048490989956233266632821476299877440594583269322663201790974907089012071411856185162103755707505791004287379521025438959049413758397206113373829804302794241490833424355714958196702764786943742243224481755924018653294802827231945761190576205967232895177332465828619190267899697944409491002743443163559834359585293857642750807883508832048172799493152813608899007884621040902325343554592606344412619364393216452702851101252292693936135166007394212115373310302865787574570224068351138103318572664449043643747589716254422208498367838355001151038162559540921954023107806841102378630725494929677858776558348681764537934809020000018525516416970443508598176745053194377904887688968706428632298983194679541872189368131927853528433438557593323840141268541851285296908323852755284702095327644955237991986060049321896484004131287099459869634249665486298267437117806193249049790747402941405703555923520757595547864064161821132702184423146041309418981973604970744558229096835420642617540838032150561557899406515807657361795395972374810041698698687726413379958715586037772249503153748424535220063074446166119611301081559785860337214003820928092366644539839922791357309821102906104956685581496266924629047243694960190927265459830794351113034478631964693655433262157119923763910815708889121689208831208256105641053183826912702600036677694277862367953622180727377399936950853747191625517478389641058608627453263533170495380004548824055908226438866170179244154290036233240739877210843660726085709805118380593330233024688939237663520201062987141524600452989063688223904321921132240139009602145278717652307497446306138522837547851641070664925213813038061246008878334659630819564848803317790551476629325651529770735339596067508633485741766959831038071648307509965505693244515636522508005760393812090974416819072190533353004896634401873787544001058581608172019970794992703293139479558682664470529749020729893643229219861302720450503030992910019711552819413470618508457769001489658970902391367053388886242635077820220484301242127218248278830142854004793390730124043249542592256924649229770734486460454859322566536894684629267046658432486692101165388783432263444071683703200706301442022626210123086103662981928940393690964190964275681453213579563878928316966989791337187012527775527667408336841731134326788470208080695231845393864030582097085468162110879211133466328708005194803599624545891699508728216344970001758570100619057044346823265816197823852421285111983559581744018919933259225268816242269937248262132994523874816102037781930300256393355018856139802106923319592225123463584195562167151430670081707534581820921148296142708231723354070936415707818344513362818635320370586096192168204646548475312468156732552972411556323929366105282531944775808119070773800020588016656910080521898236429379419660345353747339949666999096000130226507015553335558187538691576999009887277944274721147868368530855158195067894570286447573341047821011992146766342619329558216601081652618184820309134395056757765253998086632719017698891280514804584286150366737647247945911785199612006852540578277676806878503885194601811085987237063094502693317298583687601319603509960186390570100638531609210618658276912972963033163654901432556616677344548642172886507505999398488006347001066405197027138034351375177788591368472948335895032372913548045097384452911480397327484253836038537237807768158842067030688491647058169183339778950784563672622985046210186746351114158899689562543331610899275867616447742333681826507704546557349402677881340246567037960932764400517279787893690052308281169138733096688667919616808414221235482256759347390605737338582150715373598982078336860175705781441453573306110238768775950112667202275688985419986121293225949388267779414844437931714161545294967657355827114484813095747246848368057113509986819894809408352507009669751089367478113691597689692695397381735960902261700068836823409680426486644242921325917466496027663757972895855168190873995337950721736428987764928717950577175981765628832773912392387866609376471018825586442473903984218668301496617702962074456480587698450532055223785196784463857833070252265118479546911289808921836384819716458824918123775255223860440527563942925898450406279074960758693878053584293503098939787086601128111231367528637285167436557097703753133021141348158387148080321528507662166349504821288752257113008199969683974416062845813535727770722172839469618018910180126013967932169790679191776230145987338415874563598151098746668447682367508693138259735796238455257228953825190464556229155834375241845350865454717453703736414990561397611123977713697999933922306978178158591286440232793882926673412806579615566933841415844669711687022893259504684241752393098547685920627421318572009595366796624877541655646058555430039215750556537979625927020824556358095018508710391049826841967742916181663844238495259107535886320641369993679314935872799729831304557667063139705010291578197201868931436267080736184795718792333438241221460177596760117331731397950607831474565899879468745086076734811257999527917777748171615967806064541460312555871453830468813397831215252012788475772361144760834849906151483702815450389500013497599960653559302216511289264921390734353235481087656548274067946936084817957325869823820340329856472781335910573205370494729426751126970677937623035646179208393049880134853541631038289668787220986093185575582893132455305694093009501798308478378778047604155976360996607541864378207453942835895841082298938639153277340556820803263568808326136290245938140429544599079927514147857154198254967392662928934388243942596171227333931557245493941273899511139347537344471674580607917274648833445640030249682447531424500624953602547657155072658987847130015706276027682257546469813167924321908912489710750701420544889933122513509119574733657038264118437980563534658047346103921898574543725337418859530542189390725006053887570240746024513295013849059284073324878183206670537615118651340496790179303587009980273073916001117088116353894746332159608121593431342197952556846026980791375440864307911461493409166790755059006823163327333310385987691776976788681355531116180953234449216943115399637232073584538663568015468167118902399445728957891747675823744203254016083842424739041731398849395283215813596263590771752374128783703025530764499698305713667257558952275421893184679552000131604793411081249941412448433799492993807738018478376141897428136357739249180912050860681515997975159816320592266135747084459646123443661864750743953787201743166520316526467220531229723827464370652292526878275039849137438327060360486020801665859922266565602400081015268744595280211973301647145707536727055275644938431483975514559063612595127451191597143812178869363637504800566842988750372033590962698237047478468756457744365555944897525571388236972938526092850659421178048856361854476399246275772954927536887952471827348191608778055844355212682575313882892224019885056304374106572481424286217545091311621937994416565238790478639440050507435794045047092277223433580697764261397113085124138329868697159028585988672504797532135988841856471934928176071007629456077897802941374583254366026653441841309774958639073361207356779419420892553278244801080528482474914783344765129077984398409022884359639947173291601841852148096970383704103755546858248037559647545963595090665580521241942948216050019647716385988527725502989657390129868957111531459464723765151034794585939181236890709134232056379443575480078379932072632832173931995035383378791341188311697627904416456434948828743388196285877954395246897638904569154681731337219101809099630429924215352935129832909633784350695511624290542154304506703305659402187214569554608676946127272644877564367658557012139004944917124221795549108449933576138758054429281662952601359283296896924297748612667650496987054508608831483831214521327789052620187599556267268794472697735648094200423132465950320724135793884331832797365996876201354323274383846619895539570269919058566867729739474946128882187019554360618581340028018100161138743294384407600872243437821071995964180232027106899965733440957184839496730298556162087571716696130886087426304371518673226639631585099183618544119239953417944881170882999254144727016378260465048768590930569343617863187185284865269941854411869308893042821456805718603776359131197732866790459588898387379526381883178387911672012859700538888697957976642394730008316206145123606722344747639460380753028914112855270187256437630137246018280833867368419351754775421429972636721140430434099749955057279384601563053832455812039356735886299649779901194525793943247340200925704322550405256741590185111455916810778221754942533862724390892274770998192427434678722832544970887208957055597398972224497953180357103728087384680846792703658871381047132561213294878691271451586902625638539018710101651542285260945923179491188802162729739710330618076637070234507554121085946495838635315351983117602002951081916136934274585086008717162494553658704499534670386796083967294602456409940970843951786598605954547529239230614612986004551434451947888753106920166567039138077951631366834261139907877729589169692533954642998375858963210660410560212757937457209969905305520579359124571562310060522453947688457479805332100431386423402137870157728957345466843565174065056436391609155454615930963784729215623207823507338944596389055961804295985051389082115738815018233350653656578142668816451057806573390160776164875658830415691301478363509840749291193306432622425219126219103151496427526601613565397606737829356827962082682543247233447261291060429144260261150452195039337364263877331433681822821056889375934113110712319963057160420397092847724991519451037992976441533555679790755625500247669891694550110002670214076111827933003080436552020833085150900039832829049034211501028618509202267960558831865970412650768423823717373879742721157067886414236794700689862952810221956551578031194163181056545488048174393882988311933911244556524132661653548513287937231824712993793817706606015301174579414421798626060080121922081189763253626136822847598677945418376545735239641749286932741987101498676742109104965928070111200419809052765258813106127804065718308640502183343861663580661646881391284768813847784735336883061488325895535729586222852913652660514238048411147936260736172529424124161457281744157525816242999518616654666971143148213823619602420457179979527108506859326315208717279184581139190929250004616137501962175048450533226504025406888430316698131473647857680948376431110207712567080570544327965247760857539474594657515178725475965948249763956853114812063857562025973319206839164019311659873590129669961516534196667217797967978961016391008045832679863802941568574753003937271592175255800003860280837691733897366664589019233040567797948271842549756578241675338498645138199812435467612885357731646564248198728009726067497979940661102201171783898744724851777607721952733690308039278795808628065834743593816169106867030957153636255098271161497328565291614965092235631041122106506074376970736942214230860489311716907857209903861268170640644729227055395471087236736555581585478376592761022208624074046775847051875731927037668059842973282919862708994694077706589520265116722808359602151413410041591603214358872660381094899640796982516652678704140507902543531047716379375196832746670842591703314073431737877444590496615228014051898248234712096658861726028612262392680855241839224810192832873848232435035866026860923794836793350961624506888977724243221979414021590116164698201345635887130481399437075015387177943298046580931591042998846643935287251305316171316891482620273264550552875772404398794660171169830780745062299484966866911247216029821560523899663640236046036638522413782292090909858037332747122592455100748316132640004563634287109415725336545465329612685250372244155566871235288403532855912057694714946696183425651771867499391117140200608808042045173027655306957249771297677496559154858149408259633490131885024119431912423462539917330803003817597739247973183244394770591491106220688616600942774100083163240483167503340917765561771234175036519572289147453202997400341771049065351576874645451170530337057483917737923814504744176750728463050402615512390128038798336934804073964024974547991192004465704486291988129935597597174736234919408573054444884756400290479317416025044511069514133617348081125577215657230185634859627001023756541570140739086527343928899097012706491578336993573550560499934162961168462899019475635399069528917227552109495032450656524819963732099435329045771960570400565167301874853995690214401710471938001401787900058733178392901859549297410741508737499091619014922235220979331263127461042277245857765379574545166678974022441178867922024781249846725327485484316953974386019419526085911773440106904769541328023694736126843762325524488308139466169832212703571476642452782548611738468771201777127428941121106552332912983328495924651172269338148606915293255896154362544682513381142942192501914840582813020472477867565573936087374491639356209989394449073575548517829007358345855626406182865686498396849289415977940593450242227354139731604203894820924255201138550494055536285159515085092279582133790380924184319724693946055677261426523600022205451156330055332266711520465337986413229046498165123900271110637134375180050052530115221934422299163322886515422715481700691976938555642338711885181483620528215433834956947817419345997094954270415268514693061384809372423478828265085724582794447970682643173693588097419006376203171014022727498411177489756646335564756299137056516085337318486067209421679561157786786392710959041943338564064179525986236620392670605903912811161063121733837142939903622614212139304715350270335737924347854948457720481770115742175779403342658505057921451510249657026379992820020242153375915722723742955105248021861789101678464574347851528143199409360159505602930698412728714480930258196144038083899975578974799156611724616898057070709200896777684504051676946012067472048653130402191233286739222679938666327246330799771588891205445544166861043792329463598916104722477030920126809290618701648718393157227457520712844649797527433118441415154978492659561949944981634200869871883299429248034914819104514838014129251812316438448431052693266772303705899165208404254085727859056224989687938761257751140533758708168408155723679455284596324144138055143597843194265825760771775350026310728630337638878737859076843064364695870886051387689925684173948494068255552584691470071709274489079240065818783340284851512690246889868708333081819189698009872474940090529026939677688185755260743992963315501605357806392249481364688487807919811481493547574074399383584840935255778493818508719159007285315386917790377540229533063686406805371175699213655117275773542431068695566253488388172749582553775918406203084096304514860628750424507525204705707420935936632982113343706154577482788852959789803193780163387559919589767628691173694880336184285754678569252662996329038845130321329993867854114557146343702500283753039971868616659447338251958976798738758240714970906487714940616737828643980861264981465795779656596693441434803799334509528195741242315140756695005191486596343088132553675026079261206783966601308941099910614958795420795537936670052483841770360463472529796353009078715080235336976529670646379387335404711053860228474957325639207551883987750009165725879439611872658709845919436554245850049324402751875776933749818825419623339242035667246308066471539204305946210656809192340262406995766419167445932994944274756512242492255640315645059378487687504625658447277524861689971541483061685181755430141243806722965003705158358609339850698710536355776129226389206077935267364069852024637217926250721896448772549228526561896144127715198132921937482426977048247515576739272888234895349213975563523496970224363796532943456488856982411592171796536905374109555892762757748477426040494251564911480891470040755711920196678243164122551953848752414126758681772678440288656327920895062580962840148381320797499889783301016911182907822672375049570152389945076596490743506906739642377691579560136081811601884863169412212771136388955765014343672109593763094884140860207240053510873188912622560154771432840900835238564413054334568111222429956797143282990420266925892793434018681210940044108137790492438112136691145806212000070687141086581214858426113404561339247768824602454381480416584230287856262223205329555443852334543212537511613182512243178826028451539231465985746810121029786667823064407356750419994869596359745320951143364253171341521205754684024993426307903796527706750083785656273655193921070015928445211001215746618180688401909194804074310802883830200016911846898703478632189885001932736009454672628566759945828782464548537939386211218716641503751308378963105804345002815182275739085283925447546857485777624302189695430307655261683526487230099444384168169657799514146933369371951635366419708683671188568861375404248395333088073288217129121956551513583552042180239416842874251171855512883777555895385727988357465084527344510083401318118522359388045420575664605226191516893684743874482728619269771490038360549398235237633570831364511136695729720462671082521989324473604329217817899625595866857112540421586918567349522459051772459442849507533294583102642737520141726818679308713868581159256688382354886534430949417618852400711322634747105616302381929191502646426138311590662991496029105322179992932655258752288346958896689017148359419107372189724609185918100090914998031836310267284104901515738424041550294040047835663715229566780689997554604749564069304406217447168313940156123032230095797890529525892123799690487712529390872324824633498332267542042958276843387011553674510204931008674954347534620312315520590887414348989379423491749332774138298490437618525779235685893458172317823569089447831627968140993710659625866793976102807735089108714530722609670527407033358348324230598712938139324833717366068302351760259859374671132456831356359676195095091439065233122280218526666765043242478829149407848295273224395761845215911253617373644259526775193717147809730132919737216161204545599746097765107569342844556354947358854412526899852126787703702061674844194736463538227868400096188070738764013854525028385995458185365210942842646590584413250369109981246502885847405486729752095415860229557399907223213186235450984789986737824045522232333104425075001536802733806282212224969581405409412012274079876344370757416212064584268468749792526551129285220991192723065478532337865581277548625231496170685285819511000751493862062490006938820606508209416318284270474107856468194749689373467555696177291328849154588565091655826939880279478033528898368519515023004956103718407405420413069960165062196792650155771780213982410350986023073113826799718149346382741641912708717045354322620512825072757382168333513460065353316489152847226939567627636368519913321450706557032922598007117275200574193039469271632104569119851835722731824311611153833517926678290835143269773591516338965347690173205712538556962616797386706062858012040642484722490753390825661450844782640086806691590371190332574760597893574763390308091355160463171015191678489957249182967460085042044023129713645652736453441791223570065417061632402094925787479291181691585464263239106539105448176750441505760239849453875140942420648531423319879376199923578723550669278176337011977135805173893468675131725329783494072089318194797238347077186287977731086593912312702750487886189697088315909648618817869667561830658469650850596566456433427058620960914697969854740194906464891035068475476968421108136379791117604455977950068933036401681073263472816280368534884208953815401762155580814835363533802011089844557507838932665028437522785123735938786100481532316262983011192998062810808168085948071317649094280091989129264164985509825557026146563206722581565852281135384670166614352693745135687859494134532113804794793204500242266435186029029938057417494553759302062329440688961933397693913945219594522103587146776745322325728922192102778496602174891238536447070157576800278200827197508803473075577033712584987011168326206552803722142090181472089464738034984641807398127894905482462776153618150589881632842472409051659977797584663818510776898285503143990247716412071191840846772989170200104637368600706102256591697083163781296771326172290072849961080088125298500149371777781462548542201366686962700774946425194990594007618258832761255458317311657003249571181497223538920563484764596581313280370771211759601570609082728225041585973150952040831659512716720161755404886401123483815705198937128280482526543926693698830587059236375029018230959071760314193352336452226457215678040327223609345095958675000833109727069369610528691808599177904921089660828143925258382761683272588352504519638128479224506234285436809656612354486830351827480970260334743782749658006748025729027701431469026463549286463331118144064665353271928453803575705416134459165327676294513472498594936360425229433249632786931533422345195243762833365904779774732187345837830071190194734399233488415404978147745559743603044877756437654780392973324437844770178812217121664993386896598555373116346878286683183512728084648254427411791192651195228388625314584912995395058715378528437171288131241518927044480394385118308388702695805082833975341428909361848933726678688762612915790733738228099682445041012345190295040278552021212690418931106613763216830779490470842314227874451842739365362793268363381252802553093236044275674594981337514478852055388729135060460216177839112041742743158313359891523299451477357047347925448863983921517945362986371627604691661904675595263894907517350515067663152915738603867652716791715577953426510329181539317632770770712423017801382695478532290850067279702060983014765913649225229398023459716831074997348627856585048711084582247417608084579274873952915685472444432709950836784919229389434837773446807586268601942493070125461861915379153939239538730497739226760220496634956818261082840921786310334768479353766126438044870369318955221903348995775786459246514990379426473367036901023717889320324823990665472546804890199511619666643350511013925376325023441248361864750927851702750223944873218335587144257991218412241858968009486368501269783231982567461801625150078267968041549170609080197666887872039246332787868971505116108919236242297338176295756125919978232026974095825563062173364925288814955678905506018739472396720338246814167173747139878096722224505352055611923723081351799670660194625569567279384801846977214276164315609058078391728434484356270026627687279637479670269344509434360582473608948547433460809965721599814737358679559727491182093122078198171392921213184884925518304570173462805535299701235525966787126796435717071944598706687275193746439503136610074121681809260392082865756149861795417663654784711426883727743648750692156708773618092871153150461404593216967882917143563117945163198102700514117338774689217644363835049018219140687895043784381072085793121431515596869227880372788381538392871085840485163685143381059104748461066760049311841697176604573191591071077601939168211834501688580998327033938775168619989259461579385465210411045875473093236166941063782206375001557387460453581312046454731090217380981251226834365187475745246600933144123682850894818066470014048476873927642616059606196081618030061894675278737798153611066224369681091665170942226684355048555926291802147131512269828317921064898552123875385020807641363735334146211596277670407631936967947691093028408819457919404396253214315179321819591187507149353214594013204956075294636049061561937829438789475262825388796014435517390627991103424563247721540477864288034428795359643713159312628011301273583419996117922385836004567926836452412495275485680833737005678792175932575475247909767534730562300866834873065243762649045356100452712222974927299974706611585900132996041498850077310345573634181576772033433953400844459612773875402767414881049805191165228987470236820272552515199011929124989216584808725710019145011679078038305198429701797438588805542391978457996186582819599741804210316385152518848040911686333214875701751361170923987010497415957412573268311200834981793167489270236558952788816172512008196997072750677184113809080724319823833992168316821542409912018015920285483062900521356391692659920724476461896886020309796886990796823650603510567159710570436014022492218824208376534259913669891737569776974150657221586088642791481317766312064660187153536466111841057696950076237399764531686903068877156644289574173151922388566591137048201601975811607900041213532893923485148821490457212331407493136433166952966219421068637925595139398487869614188819903911142940359210543587207488270288682715670712067932739837373932525080258792405475580471396606397762976446854144216106824973616489189387039648082842103310363754318972570308302776126635821718248012642967747329574948655822964048245488251607719627850590082364484467817661912363999131582824351409832393145317804945444335221481255751358085843990019854409796147296486510363485175480618800110599211387760936029335248276776637756195424191641162500974705744018485332031316937664737081302770182639793062839194902508538433675583470950847255261349236084918349569792551974884726378460278246933846693223467448496167680701093593670367693015738139611481072234591105859437665574960166484629624130103284083537855504736284382288873825405869119772529538724178640528214170686247999119537914156377808482247154934372898314216507671694376334769970672747983602489464695765417273538139866856956737061505598805961474795996584278991679541118765618007115694168133081210742574292774120194560511389823410500807068985060956653800855580497346099451338718580418053574837716082589559660777154155243518321914105443610282488995583075894280641804110257978268640378278573206111419568664527279227691716406596565728263742651778810004643609121820675476417079596759241631652979250222707548103993654773483383950659209597167872731730570400587580995874515410350613353838084977800513255470598425720839696803605420267622522988075582766458121378089117438436400089435749901212070802924771030591182458576534203502801937743991415542645489503409205931066046624030705782072735758413133738925403744188623098142915140274281371676685931802685938735004019217776627937093357596190909580207841233149607622998258988735628434357010955263484866144823903899212727365709244291077981985556833727205075345053872905964234451527401489951795602334969218956413598021646636278216922738279835214337956508514890813941471012230242468349796921512527348805754269129176090492024694747574241357994932172797511002180595822576109186637854769080314314899112660072432437381836931452726492437344419848463534544229362285657754873908649714350606477111933742927446388061641104379131539411218229435109779471985202979675796083306610872877233537315910625432010235633109354190833035191386885211582648551350014591013134958360855118432554363133309826847977934409616535134204936818379859512944200273878474375020042856218233605375015153556628984205198876745683822426477309705685353720879334025354153744083269197183593564415440084450251043911451615603941525811117460523669684731242458456745628838973209890345677227190656352561416644175810580656501400691051852656366491842228164377930523599721136360605550983453032931472591066941018851587433295275371468378893320746720810990856788056267461828660947523288333125675598299747250031929236803503178552603017825416768467204522180761694943341381797814962238382346636220026404022334010262157579568603742086979505603002834252174669410668558095936976491056209662166290126045718234058444448168640375345854500674957136672550189182970827559973878919337651237009213926318640879195754424725369145178493130179778501161821556916707751931120789270650625895033495284014014091385881511597763137302932705206885223169503747975212205646407646088795897126815074602393018654145335027450947585640196323924307248579171633111298631576776213430496331610296396326520632128579675783878663206312210896912001939319899803848924805964770532479036694571763227735545629849988086595277701480955683090827439628710410249594589994485753399492698564363863149695688089180637962234167647615262147128105261971055883922265502413302773933765018546575281676235788639944599234413639687175924836061620066189880908435863041174420206939059921941152983432192408369257990913512987994239951096447671438672928178395623923493920705838206423228896253286479947035490242022443137020919473535412243999518525727833433701343614255381888552552898392776129607084377332727090761580706388045861755345123381557470217773009504261724067057627958755993034308815256957255165114889061905965959839962910867200478921122773492306743170940069285856026280642753192435230450594128137533428738079302508178988695144900798071412316617001867169688192847702872902871236038002860648404432923392317520595284557213323169481449819858033795371098427970121909334696972184556948816731283012775328717060963525388241337040955992208393168822116885328679569657844122027208988458107549575513331759562296045997936146390991624062076120318417406956568909123119289469807417939592936436411425449300249931081002437447557873391219477037890478662490328233662829796381155514192245950579786270275860326274993730153036669609074962000401359823399742161470829630596636723629837719007391865199178164129547328105637380300112222388462050957268711093108899643927022291401938109859285310503173049251383881423127246117278377230284416881973087800270907960601030648151060725032288987716999914133886155313896219637830046249057150465660283245137122654347356286359556807768573806804622101226122300340072741353263904851217002671504060472415614799527960323344086753419723043729794724204724672468147543944540510045430289634833690685438093625429588219055643823951536475459711176277995212367431749201968812813499405100791943964959795767862493000815279485406973817137358046968229929217182972320260234519489201852054157149755611163677018884120463445149384434146839958441914489425242472779412373173144496254977967853491622203080451896554215539027876241359877370496198839283288845820052665037339186929010838943014226147196328413463017034025777335457867576595993267220967390164421366988533563380626151830732753161767831807659469864907405676829826445788230864499621405589139804009981228451362502621881725899724849698640799364441022926702528125108305214850362539257204393333957394581727481757485281980425330444746045580160985756145897832701632859849096794504864690633369987967203420682234540392064259406621534713372706385723309785090357350086045622909955014477268702761406809645857839550177195434689487561980779286323660886652070334624468417262023216748366818785721914348724689789823776086912583816318637527107024148598884857601060496665349087828974170023424299230676047067242640770700849723870592203492490454015115943900963067906404536783758041592914788802310973702028467228400297617491368956204634328056497754314527665390211238802379898552506220896267810105550090306782640070343125997953120725957584930898270201677952375289437666023635320778723209286001716909799589752580853304217875227672194364603779810034885840748358033837374654254186462230365710043816773653791648211730535359387062587439119749095088427821242655030663386715009487484293689392664060328260779870961479296650145644203026109979619902483583913867043453185381116008736248359345157964614536955921777493522636476697530167419414426913281527417219000599983048797613572506501710785178142069186361393342889036824522197382685742088475035011841037871411341823300242748897405289018757712404460181976657846244113037318647191332294316373093068717346950848694022544824700661668392621057030554188882573156540117147473144785833332338220797190013496953985298519170985369189810261358805491741980658941714445436362811637413395789749930521161928096695748681488086055609377227373238887598725146079687845129500581226659861727004159469591274888417565343441710983181061748205187034764592804509313709820318101176687474731441801587089431609035660691402488760927606323094435010539957298186834818431062476111123920455409912129675014816789375675574866224192525021349519577264159522910811663367261879405415399847352850085572363499280151224997188445920908996844682528177421874445111423521380633062219530283282137345350355668406322404966216497524616654521758274162737538887565672259131748768416988944986059796292361521984846553768461293313286367876183491273964680271783409716264054047532495115055072413078019433685281321198389684113094253115256604392785597160432705438589553097550658022200730998700095253691486498768670029869349318536275316870981722058976260093732380544884133273644779981147648886120761242832131667203633538847321424818545988310276376662586571171756070555685866748591600971155956197655913729059038885459139000376341065133744817599564684738689242982066032590662936102156024754284817931584255654995726775368987685576880544019749577256896199449993193566980348901488720792116434218290141526403341833912158559079032842537309842201572546870951830475134539073693137880322351413073001513951716593480473911579104888774033712661802218462593675318693898738079284048813691373009981345880613999386862555678749862761898563450962287314003640275347977110265750571346565570037254266671044987129204813277429090841618186128405138734939188310712455279688007793710584741489209498237806474727318067019562385204075280536829815350715161090924569572514470765342464326763363530815788738132499035625799149898985741115774361579779555778105950016675721568520070636644613510952296685312688794911687169153808447210764319317815893156665215034654097813660553259049503283810194141460566756663562633817857068057373327427949414250116091354512955477453741308480855147518019774946491143996754509818086207329073052878695365051672128623466799784453973680196258433356705875443663118935654629365319721203515814465886789522433207550129112359096664070792911342162110505106465083589559282176554393937706400412077254611104164066692606335360467610935639102125783975619155266092240484332857401860100978030535345216012789487944764025480647685155956346382083750777514738571180057857939360216733191989581944960363672046132147144321894834840851018526405987310815696274805033132091276830949865060320676837460404220856330579202117950839301688673786747111368543158679086750125195780013401646702296523752797195184745271017408005921645230798935945488211962220534453993559282629233678824575306276919244471957144470661835602803953384120780637774368414495340225485943986739216686219866758394931575299640614077431507477945657844825910875500747257395941475569817990541309842807019413508860908896952943086816112209178504141631605247286326967110409958597743030673189363892523193151762390013388175440406525229172076734713506063723675258884388907726695838973348520828979375488260417547181394458761795911814756348506173408362026757932258183503643060181491700120426348715148186671304437214333315691018491750229375130881314233159619232037047155834429150152037025204323760219509582611635075140759121531817781300701064897639398173282569870628339898574915563013868968050866390486462082672646172477813401020439782498332228180966051764488750068284754236187772856189804822773505115557070411591537476251568045812553092126982429981602653088158711007482520255900842350144147906430017218910574590334701228047167627913510197227982263335345000423268223713579167655260569634230860450059776579886421983789378261300403127037810524477032070812672118201438673315410911001617980220261871323594537847109560520912819459127387863187219186920848112180535839278895326391488033800894099415098019313421211887432075528431857678515054713602168419482959865667764316661842349231515823625463897510250396967907257365857456624633624106981207983753901834718077741001305638488733022566179432895689908904653493089784944358583733043988438492305164076261757361939934536437467729040294167395578999268401509114156563576304549183247638295092276048238400942437273344542764742617309943005633350829665251886508270130756214042973647274314538479417671501069018929972227148683665161352528187007299835865138469510084883083464833027517491674004573841286743866885228502929837491380329151390614578910983079844866407008458780789040933365919913464863266221338422142832521176579266350905543058777768336364384963073487972510003252435224955135666503713108974297779706370882152131692909314049457724843292378903611892207133850565654452385545955037281640552011624148347637324269488523759413909817022879234898332826594401824937838947140625338667604179272479793814200759448161420271747048987873295359737574958231446237930089448717809311953608806964966878053560070611141379068479287546399688115294013997576512934659169213889789405307004382623072440850240079718455249305873268910056083010609896041818697010442802747172179644199044744059828547061389612190184701816054852484152196035178607809651137162762008969873190641039944619715517889666394129454593322796135281333762524052956550123998630045073154507803817913505863994562145186765289231767120434737871238865146121790684671010592758989562306112335042147605377394555310592763827669675945222576158090604608752182225027346368195787310433724520297893751231081169100614868168782502824599566940145347385889219975683203860723930830143210853786659004961041452452501546609184736629384631619886510600283947578628202745281107052175446428750769701890684107245721651461977188352406423704758670636265068049732825815661719031335954832186176035250794608446653513464009148742683624481661625425609670908337414278396682754326704351715883506894967376286670745087514000457960496883714621369225438303740158436952089097633576924681089985619062658659291489648082458640040276338133423240012439718986940576299245158700406141171247709861964888652807021616856497270638877571305312585188684883464483802709261201523854308911580646565457059646958269481304411505244867476276140686670586559931774760347693725435328261239519931776950125309673818914707600297776150098299407904647078533815335000611771020682057653182474447112248690378137515826495915650371660661240733148629001412824559968652690364572829341385584542997003415563582533593204729237706948421746960515816260728873991411625882770981161249974831936507667604145689007229841486279615416794047215393179833592402488529045165576337456278618859825531323853807337709700128874926834317068127780110323640045129637542497910273160234861315918885639148673497198792586213562700643400659409814721313192338058073974290776888751029609736257739360381393156025746855072621668406038523379628480729638001270877658667715244513003738431512731952615390339568443141141040290213176637707959350115759672168516438039594071532888046168686738813919935201985272032996845674711472802049169302680112901741321903851377861327963482989092083149476001484758982650428118868185499591701754299919221701761162018359460191530773909723354251608338645512822861971627056517197433429269063225980341791823266879479698750412087584324366775510157995836365901696322177790140845412503744834009866367937962881750203014952445274150271463518983081490802066794356338787827177255850723003807198499511839922800030623536215397415243310980892163550714685572574663360713424110788311291685409522977669875649954421395225951101054434969401897018549651624071709395590072321374341921888975897231041657287176908356147027211514908688612612332991956712086518568783393197480259121583444998688173274793975989809954012921570022405983224592105102484045759245601299441173120488344089401576205879456845525955001412459923389232885638368668488587858571412548486678667286269966499240018124084328805491709274441571523517840955816732952341939182819866454787102604328826468568011889940022740458173887950404685914284562335660971348508271809158472097646758221506560509344806723513059136063680413450478994111387513267408546196875152948303109023326901413143844746803136811487895528705875306169202802722582659342542773149672606959315257598034013037448491095757336317038173263355358421223649173752697150313027770308777787972592141280301530153210256053030272995886332700527757866627947501035766060827775389506748628149031284560115890428721069165728779066439789912777413863859324521735981523419091044625646099493418688168907184667543474803437054733028996162133353304991600685941582006249277292404513570479948305858576208793918421635830524094077295528481234736189062601105748993618364862166326047601897845639300704338004413720291888256449635311189828739912766332496387874680118284398000921199367452204679156300634728358939289197703498624431766619051160006207035803347129186373293682257107110587520758147597898588172116237388447513961762595392235836654989943150969211588988512411739340543950207502939638015112672728650415152753409901674557574287238414234861718588249134175728599788855845889790743020897750299201944276861170977045759849456009325612522370216031560538200104786538379690934885291507892892196385371062415814447060566360852269222546161222920064598950028952057886323829771285515580007891779292769014930523590331648649281294995563001610787795482003972030242573390642148836030329859686720118345635821029565403403418451337344017522739712989751576784117698734390029945199129509353297265106620023483551134572107381662902846542549632961793446923749911825060373331857354716853311334572609116594022860915018474423306375124344103963308095032781663143300617208532957255235392261873093128366239588367911697704356528413679349830842453361664772178264009747308775014663738825440646966955606524103504365746019782640699204741247046048998820603652508882032147559111726036277059062318883077939835497900433241012431189398236238626785025771824330231365450397178139667043596107201609898210732161856022215914943947461462072125143812460754972742436299697759964051176891858945768635333097016855300974911781212629451900216213467996755019786991201101503392322620565160715703333480346760598005164686976480490774573136679903972181486319605566486328186584907416413761661266872829340695687465348223788304846116135734862779978877955069708000261590771720407880844112814587882905950322000311745547890869550593613953564290264749987762443990570596705135699843938610854020451877850064510834077055764321234898007487593591798617812772748868069371443906884777826476947273021027638720303321528516956322316900188340197645861002734778421059057385525939976813707236236221725818552559319906101312280899843867791056214541940350774894609421677977990480083926100145970448856132282333027746146576527100844843411239722150977722763195630851968057762052622222771029469964436307434462191461826819537126216046871909049558864289858220020848420960792873738326956333522880348722991958289032548149287033353804720110784867485523412059840128559454341663184247317863909637521830298437694668969628814926291806234410496123341173691510627800219775629039402375640704145147151588011876888840692295357418607326956350704065703102330996277092604275387517226159950516923957857582833409427091739426808328001555778329159058319758176789614895164302328011871535309638691238643470099862346345751007768341840725961426852927408488649852330515860890383360950611836996022387651703617675473113076002909241021155463079234559690651382809437734662331857526994043729499832643144433277677343042001963437072818463550255687283198299836294142043829818207723135817946053690651748989924148513394464052319905020941405212974863430020623989908927336027059089446918790899616288148197222548024873091822579811657506806345975419711292961234348363242407419823308382350877760313437456506524585994726549725229374348343150729618142623853133844060277619691783573910536533742966627060899438937405688899320812721108987016989148882569952937031214302650903017809439133550479547989914879588646110331843656794665814135194779161156964274079146231783725659278417918284149094208615495912618707007578215457368166360551829613556454245782572999395872899370162636668843326938444463463229857647489550037426521845199271817748032041318567094064836929158339508058487525983928318943546867604156092199296322412648552337826181687520109401225152665255131971102038495798585276837797079828782407426275525475918896803097350588746413634332569184579487327895866720602448676178771702052352593334393292257081008414308368251381442246961916066626501276184520896685897339725803944361036970858966881800739558987441979710082311421044217584001433950705986388016945686883069953142742870796421019621715441060341093196876767962761852587196188158604719859934979597542961443127292716778851585231743851357485905448093628899192229091341805937235345816650543299226498611730875971208355514736999026834998205896589941583861840334272598632598321746967299440120551070096783359032071905839770020316273102848300552597616368868884982719035516858304900629817233787113651809218391667577277073102545980162491801431702775864588021082222296586438020452722850294031512512429794121019488886472026254171842069559750590451302369173796016342841954068386047572022001164166902788252680010188947601624496327325531881367296403250906973120507132663675106985952459382679757403004120888397958393717025908218204664391619810972000042260591920398823618715357496902898523928365367936517318986902044850111311725681932520712801009787290417143991756943836116422234504530871082933078169334742214757025868725154740776639991324249916383766996794795223101825133330852459991431022719968336385074092628480814847303227759114975434145235111002684299940440297325525813089022435841476308664868650046496797252700503523963387775417991149513719998653656884121436669856961365193357900320927684643476488363126052057729939099885526613461445164240314420181979527421079048918970981380334026000259898868861627930578271665333132804289609895320737307726731135800656057331333062821692245953288341428948026557961064839073501524836448333022974356140019104963927484174140550492963123860099615742193224087489547191627824805651349418882732019730104254850431763104042393003108905787183490053998398121494424849311319550604744823148201671999692780014392821375696905724934784757184180357589324798673047734260829511731221330248461555978450242502894191383723073560583752860017274622432884555809752350783863055866381231723666597788064893995748951200180080545622306831260706404935311340475481373340722798173469514584979291559298154755906811567584367738243032008333868459164065892054040087561542040796042157595738020618394932054937769065712909995914271598111594546601381868263439456349051853152777767365039311509736214158202596087183562270623229919691954653270784891407240944484805674375688852706966916952685524606066825560779305750438715270259977767139622259937610637945726072888139294593971403688796677654034018961540286882050699349265084784933167186388074017788497146359961720582407685881906102174999146810377515730441480575261278458254025142080195141090893364280595015222732271187186707294289106114367063299251218475986790192121073757065377106326261435673385151667930076536417864234878542032915178983320384775751595678955222320166692487160546556626439032015664181928674309221217012006377081453563415078064748321630024571752689677374900284045413711763452251082815315856884961524899829100553556707190815836650727024293569440817322867674698790927288952997130877348429389935492045754361666616450655995051474644311293438657274389976698634389249475745685320068339554523717871817094098959652853002990950822097774736912144511322090467519805667646690652036697697427879100631609104722658801334299651089003508432749553286515479655856708452150466575697815122240266013985922548294619184637691643924535726483251478978769016704084187418302387808469167668261450279894929094218283849552644065287846356517909585429425265388018512434273749611442110486315164455716586970070854120646835669673527592685681795126868319338145060582232535560695561417214329786439084623588691586075003953812312297880429759070982877721385328063993181010780052162590300554235481611710303198747289471025230522459709974563462597022993811994376491342115612781534523939128153259748302067726988262230475663219642094177334348412225503630524494270497281353019488154263682861130270330677523270699862718539636509915387636648568200611538745191113795789735881037345513072436570851982931923649689136629645182216914064919872758989036182818264899874980386377634407758950302770359116067266045735600952895154899355009346709747960287852511346975265742157530656713158802785756382599059012818118464710521907065164553114154080355259358665781459529352368103425101440388281948466117244859028404747125084053301959199498697294209715061917582932225025291766429854865403266854665375168224280779470585745318345583952002607929451608097761683969204775697162191707780686921794386826120063881722651155293685184930792558956149942232811693715748951130651189075604704765487422878200983368124019626634661825923480929118918957071144017237475651757216412530089962230602203054712106521356337742351058046375970705983998818359650008218680940877529711915639670606905546720991452101625657440850984901835947572477936172653181835484132256922144502322337164899585078594940967653189630137800731484685724226863972726743671197379993895115374984975601424768782386718108136951606042605633904851651920906168707293660825665494541084275695149227458829661356715864867553894608194215372991632795444305197826617128091705075985395840251217403505192536972499996934760898989249373690458128445397493073807685112104672032849958125368032744328122312604314493330671744019542849307989700281346637122522368268377391497387035943120427325344227915308357727434186449839361084242158697482631918082990448486727518353443504702177767801197343978952554226268802883100637049574626088877648572846078125846069072493759547972671177948169103943283644023246464799651735668703836245641519678221783182579513775946915581357369558394435399829869643216573586558731305569292229306495942576182616343042214298284220103678031639623914303304327493490635079603493046859632932677770600829467449667292681235978279855096773894559189798153672464281857256365060319805242916947841656889799508488542120763035017834091667422307168682301083826576480549854793163626229864431079267541826185156644578106738054345656954677563423760441809316107036971597640142485310245110539283799982416020939052729606939926158647911197904217147774342239462857247691204562588325150509837085955078859720862753320092049455037768273420375425035779011073631626497812480415356274600411162122145488521545469143811820954293398192296675972145748281293937043829214493107713456451989335567433329845217430455762465108706925325698406348742421500107845033073197168981294919343804670748182262368042830142430818492287018884537862072481677142199138570094643103464329195302326570609082794127106389761905790336400089005326275813940788022569036948050804956867641672290574880115350812055912570859686404852419738473153622314798537350055574202247340999791954951401705038107697066257695983986259430547694261242516598307794795712452852520860421244914713176228369102528928542474363274404254842957170437842095259749543351338352476154954451274264444941149228452625843345377961225376288332746294278781712278655221036351444514656442690324140858395124910488207080416885076772766929944357023644443835520041087665306329286940534062302108833748126900857357435167541242557204005260371799233773548250045141234311027956686964815703297286591631919059778641951898682551087169032852224712792786247275073372865791955995915595355904023487197252484777491820472437253564060763673418633748771592125778897943150813716688880050413663178383412694339119885932200655841480129912387942162987789596723418276324669585846145509099029214967486918329077776747563625230575617690149225132302089096112275269813631029094389508261948512476076701728595905128827583642474105004816596725504739408198056136935834134974165584029560692434427001237154577562822723710819655374096813791064740774740531183660995287737068254332720647560855665707667034061425289404856961738783196708322838501756747407373177583615198831822327816827600389652953463194807569486554118268107700501759775671657970847473279399198228089380536095413990662379119670800362835373740434804047684782456889763048925723904590932749638322409287674815133175419743469124789015473520580788237727726890513063691676065056577484667185028555399627179948392369978330983416790017550901181218569411936651676375059608157021809274149437445861126366318981415832236832255793004963517236001461512056909758869687120336228182005720750079197776214078450917358372616861028037674914532889547488758316053271708952310099828679655484836985628319282303628865788826040913534962958150616702072451404287238809373649272855679873490370678684158991086600227563344625277648714331230493366694317060866938606428301274664111961160756062743564261643141106453029283783887380906702322267969430943393338341225058685320381879160075610433941971349137588148780867625716978600915329702863236817001802043025226426903257312269278399996770955200615491635759675582001133491386890931215924585354520137080364399099823784423764735972586852460595287003890000729683641311214194249133917092811595788078313546396278517015227426815344978538351866308429213676822600479977478424586382449464674647317086660644910467724294421118462408686639423605354143032353971666534630156753171076814077680379685315626172440640660935632752795920685928321567293175011065464462556255838562459604339603762639164502727946618717446649143586163464062034195971085249833672289162650579834606508061590043412776596759204653923874693353574122439733217263308860645899941207899891323825748686359261051576652827145342794811484574239893333438392876574461724190439040035264499254347751279969741793514132458886992043396476882276671197395542606107146069748361593047369925192950343085238172429462727430372779975704237073916437666252668067706712820926130993991918377031666678548349805909778599093567011008045887281145165659824118967534039586278558625617423043735675557020081646890990603359392772109277504079547310229503079047179011975101623887536991244700805051331117907804585679346087297239166313475865818199981414816309784991015877058133723866430846227637007523163946823191673854398073026003621772873352746494692235900579815689624349370498859815999495935192841179823107804051184139353084472626699357353491989301051730413494780792406792373904569555218778397100797325909799995614494196760197474841257645684960910501243240187798685363489570207402726080145009695189545404652105772118266262448968535912954779291561267861322785801835314197199455045346481754341007606582097486953960238906647827675181067512633729417353680483941722657339938679654052601015582936647531987995890283291475571774138135533318975755108679706317016551623122778395000573585835921273651274703589846903173702069971330226316333451689401119376443199973777005835566412924523563252474516614246864303068115591844755988881615211543510735307975122379032422415653377166597267346098280239315157238153630453721976927369052589046445550480366079440012689417552197953778511102932323076816865535953330953777477383434428332554336251260892106409155221285902457868349945789386349680800674307449127911574605265281175732960447740610937995380500357953110997894228801043023430740223851449512558706303172871269443351521071312453131695006265555720069371873024495335317277027855487336309724372441354331964870973205309022486476852758826859786471235171471223634058469926311572336586862159784194705215853799047570598343231283639047615637043009226108150633196682261027342031770210579284989480815106334190556986206998837395428803520460120942561526551460159390406320732046443479325426140884971162512798649938227193895021465071785737723570714264019674300277181386504950005216663237912354918081927174402146254644360396139992115015896895517760102368814315666124806391150332978808543787325840222672872187728285982586302622097711673283161328136560138986218707973087382083030834485412119868454338707871477880170840621497547348702838595615691111000245897693215337644163729562679320064575550594421453913786299264831535458722839316222442392332491336115482459987869255674522198372005226254374196538363033736449555536300677746198436422498177335586037015566051187128828639388798390826598199502495058440643227812101089849848302843113559639788741653127658515325175566007630363613316866770313774704462279675402084281465702449896239218847570296363648730359721924599238357629665631320847488594230875064831065674765173219580488283039335766944808042515009849254744877187399131770055628921118036160131073456610472144698027038120406638462572044175298044051225385642472840558134983445323659421846298732728428546194624838095122027337486768756216896540795611580308018469728892633650555001982422661514638599941836523287478843897283444657120322132234755853621248405900670892612867594795994114096637571611928833925391322972573177809202617553845407961082319965192784089164027407891063014687888181614438608215271505067169465226064084079838513006021486869347101648813200199760114769999791815553349881167498215140183870002540040030545923782753538260405926589557044289688785014898249902928541920985667561006147069053043552116574583842394715531885866507271276935983865872140121257686664005757514341271401980261677925155352360849611305748219002263885071603887265087001791322875098697526459873249244207621546790940984508394569012021374491602886798095049781617322089129317166792977536182990784552685583813873966731423379960546995950445415148588941813577111592188329232890948917441414694685148843537090635284068591866142678997801980326751301907228081164510497572396799832341533901428745799034268610444920051933559823798872053683092029297796507091552785370536036651114636369731613976594801820959060742197605128391254894904274371972718419666052376343491112715010014950706477490729818878716953072577196777008331166805983168085658601315391062769081298728733537532649561236144816723959837686901118029233972069791435282159054186476111861954164933845268092181141093691204313610354639260039011480977920255825656015696144413869115364894115273101872177768952847290643176167257288413318074521171537669284968103273464657338679336133107368736480691897647432711721043733144261257099910604357269861718982427186934872761344210250507898648619022228622357454783279529065044796672701050460050955739815564743702245343576538211120775120408446180147539167502573288985137093331880399749460071759510146969496032881900547659010162680976622947400409574617077843516198211349073380705435863220463590011517018761395430863230668173093749272252938101739180912722303462526039949531669358270993104564196576171780071368475183102052716126221487521402297747321338881065409918093484106018473750787257425713488533412815379568030559026098703090307035198035740588032904447438423192351935907756321996406529495663634564409203227610266149458839170747010178230254932743177643223416147805828215722001492163516110867856870147304099128042841133766140019307625943789133018623363692702377483231096494480954531550921726278304118104375745110243308651574351651916192338927101360512677159450041574529818372538609973674926560156254356320801079297447221111120197403278821712756681462329674555595473598471667575811460423593660108112087048663176396878734905036718648253382602579346327257789934202602068857790877922328256319708253496449552386337677993679003715418415458913175259384780177856040646904319783139373676073578787909812944497418779487854990757261811054591169205093192023115648357117567864664770105517315447598253044504917575110069798007785975536251218407569184209584838370895244496194554990715583852361168678162698129732363023989390651367293789437757186934470405316576359741207822430837295026811581750121920946147091479642073680546878795113616205153589837305896584876637662187965978840396763555768348868990058393824653454222181418215204721686035334396049326296885960306224270418212086104123390501606133362038602989947146988817375033623555171151189672000114536730788723841240846799658877509174481656110758899051348411072283429177730074199522625582731456097169225311448541256225818807120945019686004253428994659830210655357161577872477589681532852306702095437844627860472573419548740955184865996257592490049619274642932948590280081396318982209993242535186386039850004849901712969707798409795476594741448566280414050767038275713532650676302235153283774350760942893715644387010030198390869704910556572075176524998091669899278469171686173754054495024877098333422149047898944217758966298478007179615446007774092421439820318758402380664810013018895252272117201176314573609101951790883105854361213341722038178872578930366582901806158989436790008262300052624223174405562473842081873514049084925265302789416108430176925505905776835811088687071726204486377063986074559155934022803532524730814927506776397482906439747613522440805179977796231949268752866139210485638037451522786825294909905275498173529193140463657593946477071100767717305940253423674816954849692481101592088642431408158183571834253434610602979045942413416266204095015098017860495354162697809823126305995397463090790873591019213603142830070624887602127883850816090449496656672899787683044111603369332366679816780019962203637685302366206419366777498942294094524685656042387505931698402786195513631730245379375725085919837255722013700280618369595615045150159406494187446754912794382226025926108129388232558682713250379979173288626374495055031696564953376086785154299945547673949037887032611649169529168792442746657113590252812328087069340969534475396327649088163347206705369732923702538604221982550654943907102626868087938695725562041754924086399782610923671888527916139581208510726399857232989320215545423647648597543367410636304334956417566808084691700792069026290983877416335113034434140448584324812437396364420261531376816469735054294122236893317289530145011695020877934243196830386584645697717762502388838523220436839514014736521802333716157071130355694174343971738228700602448719321265506264706051209047201397128321647090488315694822875435138363356869673922346430200179292644853241865272631923384235464819054002449307650459085977042850517469585147500121134219479963561878724007190139492130039179583147649120171101480089877871742299137032672009243285409031897396435176250664656944717435498937939048613173714416022488396683462913895418939810175939525786263713940272500242508616888586696461630425035062639993878480912059110627040725060404837842922853052287605157924273187799797921537677817593080034652315413612186683140143126713364772568992033596359655289453495125829680671193172334754056055221939202191624216507289123666593607444953038520139814660356094660783207638526286214332587327772860065822002002084138508066235893584805956229135098158891568696382926419388080436716258454748784830279730972799788558472435324983405421961787290055071806242181851682221154299254764143612587579543639652776584852363242963171249001190531176575121808347157752581483967344987341622283872991839222547557122505591502199464157748752678629450728021616420693441259644824791046208533160099682355658395882747913552685296768552627529488390252637884496607260384560371593974362667339850244027902022244892016103189368800728014224014377080758007071982425377338609778554204797092685715581509775271123976601083127079057786091672188631020190199974565569715045496710701643954266960008450335955165257562024998834861142963643507884312518604153755813521388374137314467999556367552354651574427633692313025740473582581124919122472701892009851312317671573970643062312901379321803871527602439858667370940182658297916318307024018112129930446347170463185398616633395323481091951256815115774947233145053598133634377387464373859126689361895660385177744886827010164383157422004817148173228486312016553212620996398307605151890649400140142060791423551733261424087417553941342974762902118403631878436639969032400406514744737620064228332177709563863466403641284643466579247488263553208546594103151025097169355756318872871402387398340800345818748182317308350904327313352146803749015060708995442978636820435812606399699858809263607400415138548546684195528845459022608564223259476756380089175414291565199541666984668689637680521525864036312139323028246092442218595776856490625664476365429381041304804743257698537507250220669405328343615448353831038944247440311714511134506303155171302759859158506540337904560300685477266298547440520510232109194077163545613080435498038862345583529624031531451411763461618518340808895247241121827216792328374053592074976291501892957361034864922805017109388434228462839658328168910108799936342986200319399731148327282990222220019907088542406096503259238272044519937097396652054242853802034417029543733640507845643987712905203219259077537435472338081771508748021628090398203120589833419427940357823900720146254272656076740595724107922575264116677953203604270550032821836434506924322847586360832160584083532439785199854841833359222282563302834626132994615011536037878135829430170662566151512620436922335909522077835362694185662921810726869733583257631249081869920248818044965553154388911446508549870711238190970564637977282703410449428554262625370046062496512461768692207424066957741286644225410217409882322896166635852206434101743168978052785178478132902282074787762234073701144806053015047144829607837893939359212710186944906447434672318940141921218378180383115083853729854154404547194556530303244686425236876784927325817747255172708309010515353766947325441264950623254097029595500470317381947448774255827364212049336648348388578226553404096234629648721207523323176734748796690811228125999102614465988789574907565896983577149399500091148186119054927907428604432530295727323465965757290347930263717003961210172340581226196046930851005559351320215023016566849819855538793155806071058642383236628100356774644673193144418567351320253476878098526148597283174541551440415421462253799340594032419052688750107870521227468127492064915509996865170553970853136055357751856640937624755200003101306713814746716987065246358723961081719100210995729101388188659848532085750727395369923130876743200373130087457850488221239170822837912455305338318650816455910451667236186178248232989465222462018486412327094967007072672152170847212660883734629176713913502275492982702193912562358508768352338919284124187577161111947073214509196458189156330058297333874885702167732021177619525851313524020780986345972863242848870875856558161624410591365491705603383121051035415509635050480599126540510336758251538771767645710603808642503437762417188782091171092925812701873921173381184348266716779151627305306407913141114192187158998433515997030847444080017037927304920828965619492659268585938914577966637380827664983653345455921768062950278451711090667783631227465419968239832651869027955564849933015563946397837054521836928257477565758285651798545862230191426733816673647232741714100192102105986551420627877418367456830712165010578756854985324474594226350243306855175391305759121574844636060827719645816684289300635775388397237572663639962623793977484184910664073952066890264215635613107269244499866188463993443098840992136672497703837907622144296369948554958200396947641689994317606427062171004649370895620332685025456700609196530992979052270599925344857493891739108143102771738321405252200857654485779461313208667687696504069806485822629832794558149756044924798266351091886777074925360438994678187319863298529611622945626551672680685997802526195773941503024439112773396014691110974890214018283955240316020281381907699583063283583403756387712489046209233108654922758925207626704011110959803548693850144169254292096670258813620438841013976525312844920503305345531398075928919122824682429919541034173940677871705724284270858364574779024405409110917591136004536924282966113875042957700120619305651469974622599695351796213831301820087046425062388081328925978856768946925118200009309142713197444168682835190110509806095614047337229774767441717777544013442474595083713178563153269122898729244504926035408059644363491532425391763857938705382859766805232605196441541725318917290637685171464202993224452508978115188266492515626777013449916179043693445286854649545587093210927429603184295074623822158441347349301301152444184929178661814478070070612294972564809320735263636623968996947745213459652832750021489775840749006386928191430938156885972007672195889196545851930997136889584804063161767995471072894113732485763468793807929770039811725066486302818548959493827439161335257964784338499709856547436787431627881598436403923726142289931714430552770574744578892178417160056101652797515795993711927064303239340705067115402038769677701898703559712096718243458094511963643815404123432570142611495149773357386894496243622492593847309079454465253323499680277071261592399808158050251173978394953811815250544307467915946935305950061273379817612438208188098058070132435978211720863233183164946797136909863421349309011301905765189861970665995839643986938087513374693175413811437147126474403974236735755439980611241061851858405861356780083095762726327853427204392417207258729994534203323754015390930752917137118684825623255492706883580035203929660835587379049495739686917085185345953785534691021178370777403881354824830884365014252545023103526264099173414547927248827144149690672448982693555085116479269914912522096470666262635584968592668200833229872760947267400074183103777924809022948700332281521720646270590155973057820845876896183241304468458449052260808372983414704845331757662090540207054798234445196017100733014894484504891454124925178514732300853680375763670786223709838003452080531756627916233315800155209037536390332346539195922701331957773185518297074116889416782173991403893646278641084352386127591544548296058394147288007088897894689231303631700445113208331584979893990275892045510586036888615068447098045499377460080600834926019547636309584114097291671114532139581824932807329953020671359018500424804874507845909118733914254331864547506910009607069199231280036497696435418548228736654896580102470990838247877156084696445518578117153131405531649306874069625442765474037993786882175555990487601034000903187358610863466060989510641401639362867849194235076047471329059843428650966790657820426925826410723157525869094895500272204349883037970240545178547272233251957899684117795558663017093657490978055376772320417072183375635152970303885320566164672199260730257996257288637755349625990791843291552892881426866743731898713314699103675333095344669502814743825013933259013898780432527616468621378211840337017087444734300676336273044472980777013066167793053994554510891270615303012141251330361439492453265680958374891084963041569621140401815009279755307544073438734002007483450466672435269542865309802586021766511465267659535607883865537664882277348686325227899860592260297675648667711295619541878312327353598480268488527080056945982294168049200370545485453986661495003021109468104185772991663542180058124124945312173498881668793762512170062639732978553165988591462744038374742283516064628816665822015030113113349324797178603225619501748668366532852034593850355629809159134563532444554117747783043475279831169817188138915210207685205712807850813876008864566819800647018124096636699296150376294149414623549510730611605560032712939365453528128204764382397934683127187092215707725121873718794781514773688848638533932722576218740432976753832923915141820893334258729616530698034672377998208832222791498468213170596685750208048311325726222266822177629552585592667602597141862417124170753875001324372785717025375930328460066938708192786878119265954636136445987314926307881275690118281554623415606975487964757177711575243935311848474465196574615695181664043640206411590943641131837020058539129959559448873857298389338385666683803948778831396656617615460619005094846713486057071589463818940858043186732953389552161970729964866585558196986970034596452937601143236946351152625790633573267082396968808114869047869158067264119431047514751096944714365408123690437242487903434199450294713857918030534712527867508813890817550934007526183769671158554306626811796764071960334866996256486179096001736007840384671783077856712638351156837374455993297847445614537117323398238714595365646117487563069478398024223643792051933459665560165587035583280247853561154326410181987813575872467565984832531283231173983832600217685662876986243689648492801336802831916382914814958590705705434572870279271037798900402655422590473802170269325658462492119505412735663139347317332060623978753372066919117204277084672243684716915306947433010196659111069616421820359463688109175413226173443679417828452723076597414728163668325874703413390320827176252782680640226056158883029957672775679056898605934211141143077560226507263021090612676083247947413961557803856049518727460204791975142116870882070446589709543326878393632428551307999142838790729063754429211640468470679529904280431619785313875157514856864555802165290450668373782825336443289008387803580708392338788820558402460412587072687956844966432034826084981798745473076737143344836553263289522627647099969152434241117505674840999629585481380853118996960988476767612122562406632524944136757080493544838365565744761303064839400418593225315137179207713349637826941921472990201429918872895169343300965126313071199930969865741670773902035178790289040812507288111186630020105491763317763921302807890622638262381078299835436327722410639167634154525854126943578604146768903826777177132086508879456709833574145685755262525419235870248924714637199179465633116875466421549713173065582605035401188951099301186673026784664451994523862061233003435364457803686002243343759413763513305757155927874337862017026525628867115360966895930227860634364870461397665896166391690659548114539864444049900557531512522912747488034121348598048971860055465559688978245149577131599775779721143112514562937545968890434132494778080958226925724998128565608823357810531529503677456410662668505725464971722754157530714381965396213495492297733404415540155884199329764095287075147175960715281121839449277369856180259017552431950985779304740698529223140689472758134215676967252766355851047478908893045747803492987622469150797836345846574844138102014650243345900114107615390674864965403439347367219785496068811339056470302631274002983275369826378168192418174374067022524653611214844889144739602840448804108995549162391026770949923097962617603871138267679095341444934793092520388382730931250105261011804733694814760764669073706117517476831350760465033389349291739704924320571117046568984783157768959288233215957664013339807308564120084189914576022251252455456599977071941298380767070058816435161353754927160516553162913403583778827861991548512417106110880968296033546772170934813070831535228547304443617403315927445701085601664705733133296771470634814311917826697518589150927529859165034451003219236247614432634672220514824335867502359329301188639548294341197127146628286701203252931441570854372649281493757248342709672015703903829083390546814207618094591782110377649390881119752211647170437996790969431150818465433959401970135871683195794735450662952189333789169854656025607852881330898574351979323569723185735990946976915851528139909486996969028482403278869812239889700621511148038995385218590608180606938173601158165552949750858414035489974685282590301565952949272807831849546899038653287895480141254529225148165361019500854622046881001125991639134790200110412101210743105038391375660255789014900127452150532647059712024577625250666286215640350026468810171932838817989538148627091274777321810293657611243751172845522679191466740850695231261626834625637232760317112243399808708085671881058900388801042826467637167027327760454000701633819591812373042329118903668809936527130893128315703174500762486619159188824955943431097329108314742849877168355365663771554584460153939625232828478638160308478213607538041360366082927188248776569010176368912813865649381039807922637627538947187158158970695692962359883083973547725406435487681235790529415960692744264844591095388359742752685303121843741825689787333218408443614093995233989903925814272574779411954249414057252297042221982346932862013992205516598514407045267477014688724708711788550309180574094324793055531370814458620710959791626095321140024531214971160184538981244698595686095429537023003763593581666963187594300212427481945268346765708609582306139786079648769420401824897342913846426547244048587549646826744940027231503933763667751169851230131537155677098998228420629826030129891261982613367353575967096571037841882119125979561836648577309112799101638621232536336435813476651694319920228210191006479756987683052856117977902816385201114588230819739273033548300099411173271976063201950551844520311793398880264658848260996281670527900613806534434659848551592044911325762083157575022237054949453351625545385652164035464282805187119580511534834251324834596389980770629135376913487067151266706372048278758390747471390309302597943291143212015678355179364501651821965680879760261527420208471979571970712399109959769903816634317058209452761525831805154396567757916778066683443688315120259513902713141497457498458562328287674408796854340621926898181755454385713910251442142862163918921346151964787168164101375814743427559871795524610712340147376824163771621731254803660005400041062173582916155827760048629831098109594286453193131085824544229031009920834287962857221699439368012457253804842967710799129168376767933505135677735283729298869334926512072952416313811147553784002670283568687335097266375658970890211883783922896700584846246965843045661954320609109867001233347471951110165577159696701500476561687454511987748516191321504703272484731587031557302197440974682572051177105019021039822944758317172389864556123736506294340289690047061815040507661707519306268845289704288376020169881429764471461665155877918251265385828225928632030137516319233165634548242992863585151062994982152292646199131569883500464939109055794890843966882423096648045051390613518107193725923503757539397179989224033772083997330600956302391890123472608612544873903895242725986756042318435257720832152100845557401212625181913683177046209244745632598663836761082440225667174877204802495222152466056841810444195366546403468394971896302199513241183564771376107208553840212193346623485129628141208006998090945339960928815860338758886494289427312093661561192768607198762041892403705005412586681510833383529046494719473122376065870938261034027019381665286621333416427677256488373760322124575475017729295548079147377524466649711704450719959066471309470185404902098534139879528708303194631345986426883350906600508739306029488680616676080714342137018789459584253750006247122584761051108335494550969381966255618289323192429892317555430674632674384293678940396979423972013245298665460329456238932554469090285627504426119781198247976075829740668392237092396000611342802568631066150077526651444657841134506768999228634765093678742277599477543351978992358638060384311462274390030868826791307384877861746263447290193719625388113818270711069494616822065422875645226299066473786841443783208688073679796103107907422692819478312097616329752761394574708999249597124212470615952882425558388554694942616519353426810513853958299710060233741402631620027444734704258950329572100542361480735254079981485448754116439737985928418960137464326981972761041228022918639236343330281506981731877231032745514383874114779734665235789830302277397308956378980764110331531360213379227857192244058906662249675785019991169122813326549708645065638127196582960128028914515181831619939483012670351698005227086790178525432247229438740743159729125622865453346011371623382397644437962188643038263582542455720328684421892826614942258847079881066327251744107589528170366926543658690315694587222864351386080582214166614163171579150361978473983159787306422576682933026432411143734303571812463346359637939332280100629742816999732950689073196243301792864634976324486389937550824435277621751188212592958964242095620519765289151525290167534341194486354733923943083885029890831688435799897100826794106050084224019079900840353243478826787496739608260366775110332640997860496654191997356338131353792311633740220559664295971103897085885861494736098534993039871066298119940686757177746968395999475661710808923959037440655109270753826324511029590335239703386660741399687262440562914181298219555158372990052442009216248414425752579008743674290967911544774601953225882339481107105539237312150867308516038849332896821171223394435368837213521335748915626920193772233979313192094448216062093031995559214757630259659884295977691895774010069099887900570205819426718929978946597289291198313130561054348377642621579936505877609785177814759435247633205964950068666273166064250986235291824432967006002862777934513310339602831941062991310629149915557121536252109717897413350490854738286962461867429310500200397087163077774953560172705094469260345318147251081015169951743089267967636727325917044958427451260461645578991431122444273550098013563194421991726115972762045957667469529333620305538382224371383794923654149224941467896274363476424698421737009107164171235936618378554362368029476826183964204574366243862926302685511867986162778600849378429162178039186789285760762510497470881388812134147272356094914001433787996116469529505526265384940540217942191477754650702702471086715704783030731259499699173798399404797187528686775382474746987673908427797980345883830477406449916189867307769393840468886282606195987197555977139738745313763960784641767795651135386664391874103013488750736764441298704710606662605310530730385018249018754111525408259524071467038751788762587007159635288192853722152588175502170829872253215643749888602116074324670778487594611007980498760104433186083876521545448133295919304001656416066648332970952325682925610956775256963884890783198724039111025943122261997096027481983661866041423429424427084297034602524874068153516817402779426739496455205908957297320343932063006658085064458409943038036219221753208088873068436922382070010030549548908628037655775296576032471311023619150950630827557859960430963259602293096667223506716347621774034422518878733935319276106955009592089184044170531802747006685561686018581045242392798839142649730458509799850845545229340784781841519702655121599858371111079132794507310621846019764528945698731590369308768880711258896430340859249977467215300466610890364897494447850250320051799027124976220937095109751055258662455199587368641727199629079035429704607884406551176671634140306085357470934881522830901096297222145177002467011528298902950702647631914068072438737305370807790984505087061227976888896702465511844018731680509742328164737251719922662823325431619619466505607442045533436136247453261788168362409727865879652391192431179187146711792976664656262188101179277826370405818965776184943382723060468455035548558835715053189138558342017692050878880277314671774721492718420893814427193698745139160279870801360388352951293842210726883536554821975768119014197732110483665161699491577999510605281397297120628026811841998773782032655146280938221846108981113542046225757150701744013515645448630319456390378747780532104001748730711629365480141035810173574881913508041347972316326409876657287221563792363798779836555307562296484503286891636979558727355117035422248333375935457515935714901165254790342621931308859816368461915578994581837862621219801459745557901315280380423102834309709798671289154382823723406586329947070153560221976125987031495352007291904347085360871554917409617367066767894092329950267141567436528312974576962210283390232057435529251122152766494743749838619446269399769323913091660460386125125295383668803554343009207969043455916996335566550831755142958078377004925311609441221710998953933244690348760469596662794132436644177751581511734962912815193193289167928493691097112773336956361691315791118274225095023944270907750121610705126660556694794924801025552120286713467842087576216091215844074383867173783542254456801767689831486413008008388889334703105318840717176419516488549940909998033374736822340023302551226163961596467401751925543570143136239024834580669579997058118752012274672494914773001522342411691425733444736922711648070758422397204350456529256497427140580732082711332426378270883441774458470093978037271025794172192626152077907610198151216312611942322115540121396003486681648048685574849287978142971761740328161134621364770529954569010051622509076045585467689318987474736662344352041228959587094337474812217664978757790186060057128652695678551725184516567944888763631045263449330811081395595537397778751574971451004026222942563285966959557456116853875245454787455625627024113098944459781297963261647640516731785074914967412037305584142675800108715329473997599592608298592380364838196557821047207205717437136710115286148063380714410789282768806416334444051768788569134013145530710625235356796044299167493694209016752000386958933457693351499873633639248001912516963226314280674807084354883574143071857762762980622676186683309767001173984243199981094920313069540326133168175521866036371712015360076066080046959416157699796781586196741949954798874194591552699540501131388979684135870555069431427224734352555109734965801660305093036604999261716390905332881441263730417792056062553162204563626085847748323404110303540396377784995653262822513958346632125016382012191792180140834310198439383618033555423682467181610993398860686921285341884894291256471631159205500814955201045098504355340959814337673307519505532596082052042216709316860158024210341189689320855551616669364411394280684128784971482298664123662548841050326876093010618141584446449582461334070686581767662125866142661044178565785728687418474167170726227638144044790647336564014054236366476807351474951332244655652021715754708335931090816594732277103481110946618737238159043749036230328416211113472066692586523774584101554262330025423084228793349842017305414114938520100033198428107857881372868526470597431456885222467790056128976163972475608926764386304499807247739369647864883853356925193608416675706909455849580130032647373164080197103970921337913806600313447766555080023077691710659562034097813442363420857947375078313167282669932748411387962692939912352867023287736013078440590221446782262679541043538401079943413613185269456778034955086166877419780010162840732990808538948961379924523597580569781570122378738373104902419707629529247102217244126821202560068086410477068769538091951247465616516732432094958000501243263262701439449569010047807838472760346940333555039756653974071773740278554985137722011846773095516691010579394439845240427312350312036780236108245102203122995133109416388674319356943541323300807446300427042373388449051769326904013685387390880592299463475740765052000326006470790861012789771546691427978318577528064413459028313547119817299809269410991854567817592030722280507055791913799762675756619591207515957068020430634590988128644328641259403986330755606935583846708514033480854465714528058248785714412438117516704503092138905053172409199316973812194806504147094897682370559128192203370532317019329422562454977731618189118363063827226364538149168478525025043098626122741575565970999304240231660546858581759231114442672203522212019160859402302319395617253065701267571122817189202966962732345948893125007928812192976349196481515111624276113118293739568637752330644952579313702953894492463111411273936791850069630305625124921688547624122069731573994937173636437043414732201645944694093187758557017576223786563359886832774730950902339723207559941202511432691309160278172720713359513097735014798316078057038134022661486113033824570056209928410731383695685481299237610137074239459514739417867474449572402623491572781851500085375038958982235922874750708515082823426114694410518389622392153756323781933185192427847507866595065334183476892524217778932262307891693404802543991925583410089661129698278659628148566522001131889147722598080516118708136578412426108424824064999264573771703173628987687418784670699537378669345766596634438925818286898776707927743430474561649930248333705619870476759467110020347112010531170030787820523948146781072753022246564758736922104781225204221337248344535630346537983435798833828283380872783749607814513845107311152038986904073073071981871677937951329525394533970536029133702192891143479178840501836320703043692782632235118228349305526265142803294083656201402355331186671456857840974665077483678425096493833755610524821655699656869988809931929835195031994451249260647707229676000846030598965871886937213821217929226745389015192157899303790502798015355814303020416229000029330242113654813099441410326233628952771608746227225655254680690652862409011145368582178373059045080226234576870187601495697617805440780880396355162335573522791774449933328848455473051606949850966683642729701790232374395321857795367588957990922432986486348939842283585011432185883758439889410587493909625553501024566705083391918301326555079226819107080852162389019245256301340413705037006531055314668197141412695897362260261355443991248745998568884883602662719082167982570593186146711273350782800484599650199330999953357043225195740514542126336156912689360127126743792392429920514181600329144222743934108422692449503145226584075950319163816038521232816487753184974979055234146298310163608122516342935673611378714211344941571378904101360280539198360470238842303927888951332393495024243428023430458522346491656418267253929443779045724419281868746965869934732122751872596093828114279016055681456670614917426178498047888420111374998971425457589301522340273320831071936397895138760629429944393390517317941295479467963055798872376140242345708228992755797737744144312549276071488435416567907689733758968335140159904978556498722765056552981353165710287798472353328993857455208294512743612815393102957926882439471829982282212791026392524656630338953462185763837876120318735917565340801247520831250984237547234684199077869225698019996581377699463956658492064341784001721615806343174497335187194256458344730140651130826999318762235489483180679327551284676079929567899044585075325746237197144293914810158935602986799610585431495430419201293967027407402589540669066873320094669170286068768211879148146374440172446671345434510227493353918935074487057724167601999485222401949279620644266265997487839417646123453940158866702963720072284386391194179893329131455633466179426501332267491096976936566010288693389415315796370744180437693773609958747451693434883955801262090111738933784925703668708858166991610141997611633271958123961588295087794570093880036034815161193024921376994217206409893416625960827030512349673729367931952435385121692056521503664643879282998844252603756072832418056434795163045837192943206939812821991177751304006525939547422829726374751149094410828829971179858656225837071198927272249537118414720703235806599407372380107449629715234026841276652975833788712739706148892802429921047837536790072229271931283516495368785737407872613897296135895447678173330139243331970907933483006533345630041646437421809108168985828241879858326862509781200298317654130129625357497864381550883677757224626525656392612312988929855874153233268783666837888114878516557814251355909862862461174380058949227955507502449910964961018269995832121328902361049977088573464983154792763016574027363252612210248531305286710679191514073914442980231743156443351445456531676133218770121596618658291396312702699748099411877736538792849925626689080735709417790474982622438296161004336747650889421265918636713353077168856846895387488357299891387466020785855295761414374234416977239608351250805994397333201525064621609193934636966464142954113281157445757468338740532982590951722148538635752306747636084731105457310187815419135749168238973802424158479240199595372353396707434775022410154891894617785570076102127197815714228142510624056526628197191690726763098773856970241035339752969220241478331111645128677764244117264153030900893418994197132878810317717414831354240938872343320533909886051141176864601903400701110571231358001697407398407920413731124510611096526527075608934596790618582241299522512695119864970107864837751941436035678656093745955380000511857700151257973962427704742947031093180082015880085491145559153663287149876707568829500721662717864072225494095470346997046035203461255642849600973093201336364814637136712061643061362590654741507874741264065282570443636057130459765762136489024098465301360060736302891710022528668664787065640538608881034021786245663714309216872809450225366559108048032105026994374525405806573490239768477771703119783621917128892323498949547667947180677847195821321278732260233313357893393084272862826169694041195312631085708212583700560268951012077894840908204772568151263027116152837872293758386753386774588981407956588782736960839509560573713013831255894101642169569033215422991074806132150811131032712741439933479506340654120832795969276506146509917308392652650263785023470196744217027286473542826707540998215088923407868857756850703606161025093509572685933347277909789726725806929758476949517300727544814130638965733244370777602762149804092012480378310015796197309047334609620796800017566306580827592685138253306816672132838058436862770278784839990278940367773311352192919948033453381419466401046199903762505817539416729394980155013780423593867262534952325013930484470304571329690420112905510459086376247202393452384731508438022258850800294346960910603622127013066327945234051139116420216636564352988519633904236753353065745208258117348314183338766649046972904559453065977562323319468676809066976286712765144035063180912372558890597247610403490652438086541722667618025279040822134729831017680986538907973362550992553783577396458431181589903986369502913746286888663229474654873711863415846433289037314853771798110574769075962878603416673634371222549146336286801693193895386513835847178245046528234983173718104464483807763057874683668681878240297414987578523599519618157700339715519443763327056849095202263435431130157939756770564367172630199206151915119986056159243247845490744092000541069277013659373659674983531637297353120097765446184262698818451273366488697037959607131053059325335287062331695777454048626639205348667102485950701152108203624491173290176607841794909104694870889349845849826305786765723058538984334076942770015259442176666294494334397231708694581457647676375555423422824536276688487096439227161589710868092813292614080674431387244743967312323335288355954507201928673755101030213237442725825962338797545018503511004266685876317443058127939079988434544497800424749397037203927260014353165955580520340466055874097066982807801759675125005418893980325914486522819137850311370264231356552254137518144986865148375486483902242256850577096490954116720889179302357063695489410785224852611019422844044599094226975451788272632458698904723238256328808349038424400397450504424773516017836444370192885056579374528387020971333539815291278133947431123134154403580063692244899845011737638869993362706642168033672815284375404145429614597099497176283545853362650565154079524818571372165862723705885185537040011344950079626360233646517172054973429398091713725718410966435002040783506558709411355948549606674170012728761923928865145949346253673804688591797520840046266686222365034370944556700880960405122646292297012678110805509333068280597204505232883302038247255276280808543667988811553233560536272017475011620169740895703663760989245589477555616863102349986955033354470177489481969452218901450335620418561410711742905670101022231732611327136843005454343870141576644947721850993152370903138138495148883243559726231259062144525224244569706216914047465239210179559816076597189625684364947428570307403186737723370496565516632756766739377002971340801620849668208496735902921121079088717464601082663262210707462559190167632930780350847667601946122405876589395693394917125286039007605779647631912984163295985860799175258917806057599793116400391319142679996978071193578251976036793267200741191373266457502931065726797799000102277180698360796509037144934591406078584807654427417277831231844389745639630538152386260599370338543778502566953723766152454953103063188291363135455671358208806995459623361903884149406346463238294600668969915638998296504996167125434066323211090386400102926730804975023831631569124746229433174404299451078111208476929201605107749985700534191384436558431957969884818640270789577018846979694652257813997917615793393430974566534822989485402198242231864796044466700158604286818197720049074681803757065776998618287339925881937857756748920104028750300795836193041961909585925118925699045460250293418060634128732659143959008313230887426304177753275092559435903955487346805348074758154736193139286722803806378992298007211352902276868438228467889405900599377834136881682404723243580292894304595099637322500161391971270443773136039424966204582592687095508481985643359592946702734507512785123108564022695930578461440259790909403539726771537609311286165767807454757120376054677752906550558250883779398513166049225349775199139567396955667802632722141492479945530345085737094341524232182772940995477755067609720719270235023190763850017109425426459713059567430226629305672547027346545618363978986139006196051546863252581638499031516009349126546433077612723131751224145844623376820317236281794016924415383287988509885261640878393231261207273166552377985531827048102314807082066511908482718327475105627706161659743570770842663076844983182733643417343452818865381360333835147784485667994331294669348337165640672760855926730091647707347365912004216039861649427605811050215497396812097167016860030779823775526670774036667839000546680839718947981542953148081929864023875397772103141477736687824998251077017043980456261741037151918767248444238404831039942992498561136323598278597310332064341744664863808905383429240256365734807593091607926501324021465888276055069423312928166557405251319554020975114476689009154706178214513737014087405570743962245463672887843808496597350165534771481636845317188335451294233498967425383242205949829382180808118418125333911186631084203625012203867784837412604710464536239052355286201050074708548414649628040531267113511051815023063324251217973384824443483540438664923895642235493926889236478661321462850985639476755428512997226070176275539636444930006862715479572400633059316267419404465925700082956655467338349854132351327970992250450245591864386072685771936838449679162657266602451512945166902055104495837769409990656255711847801062551977089679736463801288984366488514032739068595763552079377607639474541297733452410533040486599283338834877279424631842487454675969821095051140711125283695116981137885818116373318100160081401002181016102077867386093735078618045276754377095204677770890536224346684231431131584855047141304474315499320874367955759773569637164969185954819909608670976059924077693249564074788757465649793327327072782485277390004300439695701596823303748200439960990137737323256519923425708616845397731077145854972034253956697409253683667834619875922346431620159666503736465162049939806146632078165847343287694940347054641820008664171815953625989878243992293089069867540913427620853734098475514723177520323350359352640335364666686200167820661631748448656849390557414417633279105040512072303795122722435959897076648584354795969045523832917827741248195580891234984447759954295714068876298923241188168389983243855157020438144784661548652577674886727478891457426238240613298049735616854962034487777029277745206919382811965684324855173824848151223644577813068176926290457692366423234545993881194661557494653280412773313057638117152868369162511202517939693880242119789217907670336379546172595448979267528462364267943003354236230231858471593271282146067876183861688372780422374082210863736780046496327042564817519947867751330944743868674127738961721148024556844665421451526947174131144071164631071212795979569992181811052827761569164631889356290428176282746365307289766707885010834522376561701389095265918815929049368895008973099502723384738977098453550102786966980214870531200553230154891469575882472033402634445634047048585874763948788826191435761731740734179744436943450236700408849910571577433011439448887989002297964117605045420007768923076163556163673962286004732178993543671207115745035035697708250676796828701504163971461233465857284235483291084472017324475169715309168156868014579999119789485665166514880722458579468657271538840169181673488347549127862382943045228558329753065010821468250717340355994774864076196573947079518893221056708941326347771617760821290577772433519099798435058228623485924110771330072992485703345752812614061479238075992860450681111626171929414163735642084454623624429284009314776506314045641044376685314503362871488890522877778590636284109238359246559798886856799243778848217228957880404241755961226520344338254488414254374121408968168343957797573486065269447191730907555572184944261390568954375323089384134799310897891414220444727414146742966448135202721507882170216990247874762279781506724908549409890528122109497167937926375065280211871189050027598672827144775249490927283822217319505200908234116608254351505671687289694051598906856716122185943068430259043404206604464511552655154791730027110743930904745038513896718705436444831261236331022249293814203749552553388902421402887243017382324009845175150312657979884595300159220038477536012591915458701682714111231412744211518979082527194576525712014784965773031690583831457982869493436362271297841942447479790897273187504088055669495210625286731874777258939105810505217084093489751099084203027903958963210092126722635445163641001946005095881335092134200019224213019790319399808406562585947034891149615419594220887004412217121538954841193218862245056208526081425042823805886324339520996640415475646299428435374765236733221398375159209849671528481617201943649796528151373423584655517048247613872293249604849080932747660903464252121995024310912117256793774335245376077529944144559312275904525482343825764948029851884765756502803552977933897198339678607092666231400806373224649772676797727114452685047126435169334824678240690681057602330209770203608581247892202597336380066267071113564156751975341918274415448031212770260966473240355194201327920941358447573935727141109192514874608932691261600793103202984180963503304315811631385185468764659082238786013285352518525933464448069323644528227570895284232676172813459775427155905834136415886230983685905438782013420927144726655883644531009533065953968004990270714211066833898780753467999892793470187232581877258181518536850404100661314418079515101587949655140266691860147524146391728772398777438819519684433508328660389260623715704143597767817196434579417846593376255136473792411354104947342854967009586816673285727163333848713255037304924098037055750645305248076457305666427381959564377357521398831176206565574178197766594203849127874391016122153135171433728131275323356127499042582938797567398900330092844027185007850386298223858719907710920215302704982698722819595956616022990712436450162584254294156659472623637499042033797417260373088050623620415154870875612130167868420915270945465916364492246472184441057237999247142018485107306115438532691271731734551900915636183741476683383166279661877911770485731523940319265950593465391281086878777463867095671610811932309416455630604142148137734194031808983758415342796579472329894239941514067337227757223115504363763080841222637287887760027922742185080685318119560144333227575239452810973570952393836542538271328364910148185991355663605698416648252063929523037257520141157472558308854532203447255948438669723487267347941067578652992110487435373616324266054411158872018798968482520966116839623098036766041701121845379624376363602607163825618231801293917061289857939880130367146061122987017569817189070121123235528922514288793847195834803924440855650687627053374195895258197212261261642269417043458878455529990879899052449701227504183277999239979802165426970146551642058590820280933494626222028216345995394034281792582359883805407544864796818046422074185373686077963632617009678887907675473771925509121325389151200472810178023497224372365054834583208024542166261978414462390440469513355978951316393765257820243556726117176288267368614532099546582033457961960274114945215818781093190986736920798353927248325610020083678914632981159149213300371822701212323769422904220435242235976089984721283464055641446131680124340541985621969795088552831129244656653123655204308914612056007572446687362009297555565374357386273334451505804903844507026783674348305162579022220430956053971636777667056543792890006586622536749466432748171974024913671354862292172472882743337642536658189499224697155705206378881011263684867092079186640738899439749224409524590207737125264729198569259991248565084992512814785725749130787168417803338563973411364358792854493226746275433176156718366230563678652001563352717300252415309943983935838362188139162217293067451305505030851365007959074584606845768657132683359387130911255588947273473966643504532951956691047321033911006786879194375526864036276289179116447348384585020216481180934928745994356833933670121688511920796210473382838155506780980028588818046709104035939657660589195444116534840371817723630924664912123187422615219234970082881065746424892394420542267033126550072314636193935912144977334355777746334463964685935605080995311205712168728062027677429299898394264951627234936181438858529368319419031369827535378321822142328118313923928339676854674091336281223967565388643415391572029918128291196205985843009819470422546125955839404208904772844884418222623263018196352935469343466416526266733220678158304345365016460695176193495612183185644030999630510711409267608369360725996647229865225528669983690533970465227680181741564977117373409134942742560800046817355030659047182407420481826905302204074382323629945149403732919955766079540805131566407082764860902075432311722874911909347356631522165090885962495675608549832608118825582298780872518996474424475823104781486439981016561143843991433106442430952648957361138288061164681747204577416653021334698983439705618527782034827530967427514698328046575660338535826948692792209892947462040640961464314179590081498143052096868251164811662725878861854309965463712153829698289153412782541243813625727476054536733802730164689331637461518701265654925000206450914067306135962859509674896153689740753463494160920422469769394173367456448967161860252623027377452510245054121256708600705226116616603823619153732831545964661787864962987083493705715542570739135725156343766596928320630438571566899021725416419498609045552604635401471246029085223019933062627083358726580780019595519058571640399788228583742148665038302914155846179664089548350316806604088098325197268275033904808585662648865109109015101029629150844875196227980185662646399926107000984527260635544624564161277357042511662019260099467885692180972621455630317609016615475225022773158945900110063049025160054042740639906064147186274119108005604728689110632927093105223989666711957838115886487238243375765524403647804454011101097154672720352448167297543764891358383187008154303258846831507552699780132523135595132147835943966613335380230422430604636358989296136731059027215880757582397254551033447054580019061111045532441971082880678669311392505588680458209656982892148746538105071312109700521126944451272306138554981887288383139578016454822306817413980787790109855444621767985742855770887899592460625849873383975444467872056723482640722672496352304832327810624023264905589879509095705916212216671642235725813957160795827126614885166686736174797012113943498234419742028052002439152625953599680944726499991824891365984423096947891154398863346024014953762690002714506014409682132110080414708861580261726531483386619860598834400720089603388240646675480214473589362155046285252452635264627344931158141822736395306751816549256473569263680386315070546727183537004547493866358395749785165021227223654888422259245042973240702050294518271344988727438506906649067112068885210769120822597361937658774252381595978409074764410258200998103055404851373355755617010537076035423933236147398159703587535038492462188498370656816515982742881549913710674826759960858795922235077982076412864710350501196000469606705418758527347532944116139071166528503039107220299696961309314534199490555600997330992109040759550308714918970570094716576792471369910465613131023537519414859970787649029001068076579162653577395967752145877673795490615040272236679713322068366141726423982073217650821924780326916048947924169259980739327952000553171565747898039863407254921261759320984899054433578295576503702435721343150765984032616395276041627702225938165883060963585742208580220012214427261689704857097035091551345650278987698912935258165781876982044500621712664782723917779229304513950415678094666148956968879173464337432739538927744614157925141939510277840593114508668655480014520660850389545802346240303164190441779195895497596608032260201456108490881888046132574158115008889866614308306916886075489189625602068699611360119472777120616453345492411490578629884356997208883928527255493406456621073936642908634350760277371596986488988727124799427390634773260940549208563904045880428177990301856018749358412897479676475391382627711580043887759129329625116888095801420432327035372633358821748632398597223003049355547206647177972902161776560804385833183830225735441117789747121517898712723798201826452901930569770795671532369258521130268098608258601456324609037174151761363274123108675976271222951446965530378694849181647138760736276141823090089312884633730399694157334447827610929976722102010640255136949260436224084190377049027525283681954295795909609439149482082074271563674717869278501346722776650832875726001975503680105418422770298189943165677434879733231555268481699691139875496378564765152861604684073536643133897980686949856495286893532523999990378447703715442575598545708968117196502874598157505024693142409117786485701993666289080853584516654881217037297314499586904875260282299998368279706422655629656437350140083618251299039483179598795663110715655624610465842432633205039082846574582343551179666130541627956212247210287735639569204177744477668634421711250650676180568016632183434410216355416579508754927028960367528179974911120912079989788283225816843781359321537605766874873499595251956395719993872123115108552104450363794882955622975007854769880687917462636850814951871522197442121931213497327357280216640921441979442860836599818744826716544067850300963841755735962459535987989173295824307197063655969302244136819615586094366590338760473712530292140421829515320655143902704754923851796935164103582254405295841663592885016891183530570418199661829366497251331250680738449100263322361527961743368637378864379262217058588771686933981471993438205377377806826821487282973297586365804054701174970259959892547851218015138840221892710335837813070962609748328972473137965970115042561164583595129653087238968296254249134047347325343964363698217460801371561400995505472877634783869290107109593218464841549642465865335886896068214122580953663112925591394492448030819285481563161979660890570173790786824233150089203659054898633181552132276887997328197342535937457595662403456963744354506308329583488903101956710885391201607610017788360032995938661872507243007831437973732472881428717782602916628390995921541364679093133345888887563816427948311729930199808507638282640805307170731656897792737537376786575613299586610437395653903674335286047801258871150118390170490443302301936810769949245599365267111673415507323385575834905710571550103096268810636105767268500476254790202965000188209369693133014004059871367739658634288646632791832063271260046825965713998594087641059525184976379229285714972849938942166091799322690829209879731590023886407920235215886648521279265596766136313635972233007517717263604583185877035433913919775924788157596573124238418719085189773903894620194649051879341672724890429638108582281480756174634232285540000422255970445819730898336368397770988152766788188565068291542681859970936883212158214192793266137616879774189525310432664957611898187466619171737753306289190985040277399873179059745502073807302737404054391819358507876143764591672255036749705345781170923191127994426272282368984052556181551764156078583258865104419804034675655993224219148008640119869824881363690486756015360252995424462510981069746965728517550328425745022558673863315698676959275054738887179544335304098397744042062041338165582318145143083547102330262504942059057809315705241080023341905272178553323841063060387943321461177100374374766989445026469494741103801269787103899368993204300150902185810961841646173362133434727793340267615283818486736399039689178342710501679418686695343256008282422512959282853272942875512406412381712044280685746176550608644901418561079747889243111799432139560461626200826023195326163083083071528690459165985496032929699643363431934550149291427770251793364096765302986126819457877076901679941698351319849808049507943693607027228264394796693361667869867212075502070730812381501030782111092373190516982019814269507260859545884573010296205875073050161682115342425788474908007138783261743314742368395167134073149105932160352088763014610568821885945839063571423363647952751862423206972165268993684880466115148667299385908948494401171353900015734039078842662830061609355772188084596937364424932134778641851744917472271063321248595176470410259958863003405247723162231480881881484701262086318766492601137972709171951442641353829730697908788741209152054286606444380718639236729355022514675182391344963065853628975091319663624247229952995132960661872588454061796368232600057318638231458385128274277944371018263375432556432015747784497605464711344688455566309826350171610256980786616762864332940176561759581134335724395916666686087198030188575162646955041900305493876087800105377623198990339440361680441147527026503307759787480854677566875957720446209412959793925119354130274540074722887723655157889977598933550684568231233003124801766527925522067804124944776324961006958566676984559946981044452384584942365181914430378378552179433504466081748557420490388923690727266806306036284579804220612846325031287855852200642617125825348907871984373516151929359858811012573881617339711892564861727863599820242163515982809514828070307238698106642615273019196104273205099179954372565878163376110052062316265195141116119264635358470342989988058827924506517719945949422876325603767105307920076982914648587022793497116452688460354309197612893274997933576786040825155771095113203137093730097372242254264202710994099855388594320782045047806617173392012759393156397889652791949078332424062745948724249117666199281646861753229793503650966054588115642422921569593939986562475199715382482261840916550466536782879636847317286165408767178890490653742095515993858409868924537235564067058454498355119013542032022941812132778330160943009199096368170126468963282994720845132457296945630870945184950345279684866321706315703977975206089479764272462161192219515904222206731335976500785562087903570493161638536875968267966609063007835220363485718643134173799515274183819740265090199634348598603541007320749635195057748525803911111015127854506208996916391979640883559336550438745165418322381127792836253546040835266185940391386615222991962744114019191675611922867065208342537118242545641243486823565900469541349985181882178899510829220976264632018082351575350905234963883869435042129158979622062687639240143401990680544918344488463814692842336231304468538159417319392431388255832290612142538580544692132027798732064964157873593940453043191190801334451742668172700120204119316630435937531958024794316424737162461461063755920361108299358830439085820435383261725306724252932378539027434157332733200609770502253754608147352599511755141666660672074219476561439748068082492031917001171461381224667082473755221582068440032716681748952641498483565578258284214902862044745937516891708002388857284156858089468994451863791415036958511271319583365171278260651484227525703773250627358773466010741621348371776085306938814281471811372841329060254792403767422640446536552788956974629225027237652179771830543217168435960820115929919427144909299203851971699322536902164389417479306039003551770585160088038714409144600870363537137225601412646029015814970796192832319552152515472218848669438986666955115777694577223632822967329689756947285325016804298931770693963732689977981174147814960100017303660475799784574676410683644942322004469414917906286424948899183078160689425959993591216377987715625807173186701658348296417858817316304547091685149580582351917952294886989015746799487317183214173017611683408949314864862377233422676627496683846098545873110464381438493765348630301354738104145546118792368176185071432868578886137489975479950508421698698308021783638069421042288604982042888525134008989265747126222908987746754877201119267073699344149374815079404595882044381989370301305803677730997256102808017443289494347007068650120486764335598730457917612467219164570595825296387107022331666485056667801546296400916158948945685203720998639188408953286971589686683878669463331737219139589812881673018276459879925930826439514783776403915839993278825367324069655727119996358921937550687639463348628890390993588350981511853999956879730951899176558786408675390520416552870660901576679126470587893447661683006711227211160761990218705201153942669524616575148500029033114312621011599397853659796708338545159642883991777480678302468146240844917643306223721792974638352500485583989890352067177587569420377462930124216266793674728348480941705970496111050563296066206819351472394467562858679684762354850439304771084528362138131274511589587313079614483788780973635841765937582032561779781538921517879679078935038620792680960905395821838722204294431671173113955347837611841474162294617271816730312957513612753783546064354930222243718357714247751310767895053644389142321137665398338230989688786829855932132131537922751772142049071006380239389090773162255627605836597918690430818789639989879882459790032504214067509484869381160119768954105517460723301333937619982415093062236586349792664348433836500679027079007457229311236779161890970075648131385169286350399907756295691158337004683189129240361299591069513767585487082894214527469866754832256013715586952814305526706694731867906868026671591272674256384826577051204695502591297623676294286173425987687157792741870339378197657843790602484801899379561510565810207252687297790727478250594092836962561993644159112182342867970652400154082846373637770335204328122358964553194308127027829709552810315797966027810125263940811597898477082341098921962750051796721285513227609277394706116548639638895570711953533586727614381248135107760575001914853730572549077727193975471173045557999085564432444077398810889868668766342631755441411358767286411536803008074893869902663101767519456615106891565767012838237164175293436289368205213678691566701483136574997421639014522321340568007509146257830093478076131453297903291150692326854715807777621950539872206398915405131814858396919874015651813668830529132386028883730109432244825613519775661219345657148776875846492429515312310888838345375732786685484937854113611962311378825302823140042642929033485131784499879705531542353115227178475671278674511196846101982926255310290443996869483748762226470613168112534776502474184127964165973751880436623804075796898611107830089363558996461348151216958715884734443067274344470431492244536787105623223580681874392117975915982739150968752822269898235695801953019123105914411747001336595365799690119870640208497243681029462433464691912463254608090665364620320018049337232739842248370554317337587504243819833611531862585161775517428421694054212473730848785470207593197302096600972783986544273969572515899645081339123548707699354042380905255508410652200984848783553220463638338396671030975920774358341208310769747382523839063240548705554926129409441286437322818421893420310065198485436473346269344178255942800285880520142242631523847053001746300863339411874741367353648653883276914468733828782962289406721578789449560633982729246506176188108092664316901702622524152496677874537033980843195223878859589515949923034168783482559100312528358459180526166687224644166034121430687528398195623647096406810186853781897053092921445539699181611184707045125338671494291041608034136752719616726287251138001626732043028832091087223769150457146266736282696728592736114366824977965896768396568939086119095064287111872519202152694833950574893256680711079209128221473228625118412030658723529081514055543760520802799747273886725639771688200865207284488087028050701281434752371223453705392360455897601244911615950290532393743095702880298171105066673418221974507292407466974515641844891836692150015312818877058574829558751564296380381755522830193273805513252195156342850871414511720631762702474643116740195134822948584235351983055030443285664379103763658843725211615449496862316800417794318206944439710961938695012900336751815637559871389885444523063741548333142272518663156918042394522234406178279903578929862101491690061596926687448754313925418997188955522594306064445543776170767302576674739510135284921566468536140669429496676444497245868651755810476342232678696712716660949232797795692620868692164136633065511303152345079105931236062304082818771096199702800147807483138875735832221776520635270896671925273861596824726164333196772640036201941724052904562636289928232201715900971022647251255330958742846342313472605656385750737600573786021635521848437878362888766379877512801191908666205992768116319318682012636561710476808213795166987986221782351951066226367888623508449197320955156143667543949275291566696535667626217194886333161654365241406761434158700446337137022771951958679543301637131267260983507966140031054096805627108010497805305355197221419088686122218534781407609424437453811440299277206679172685145611426092758397698533806740788777094181515735671335572718833005552576425083277841659105590356938514092729410322842328830180604517369845601625005346696219712823928338482975891023742199017565642357162437409009685845768610614361918866922008021782191328964280918128693589737054560907735231349623031214812799447428192992993729335604790064653235649579741790480591047319046596554876784216263331991503337659541518329180564178718751751483343843383456112358007879390331524766019669204285629069299484342654380537786976011013074676661260042724509074258395583245266713753981920607317237702578646917286461657822979777772450019553141013801513813378815449525398564292468273924847318615263343119051945745480287893521480650354737042165363780850560880080838332876529155367838614963801198948016119629091323344994669374635498462972034884383306494011572651002966211497657805763825236627102741739542568613984067662266940458043596530380655187563084980394434019344420100763683668579424427210826266461227882050423607240109762652784849395856447729322059764383183279516974377720648555974349625583910662444827907465987774214595046141890877433777454276425286212682711665454550354166558376957223375483744133508079356477001421690217112016640119995059166312820120919290945948123016464535548537712783251216606850191830057754672351731440180540288599897723757395976185283125231337621688037027297499447025224437748318352641940351789828533421976516505294160290186676744278985226687747533793951652083858229681238571908725182779289873043722918387987337542569641116571123662450121102750949887462402477863713089945122348125862031443121067179837670726545456468439836158639040553423432778952061405705519665158924480738716545933827842732585904739880383202921498339859737301825769888418753813451879766542291868123969693360388944797008874693744354284281039303156463068427287008590041974578183391394780251625113890594955960013783996735500949671465808732907724607480619065469581176818723163284028387748635310968379040995834955729983274953613287825752270730282369538377694390590078511007232626384934962980076729433265949060037343239850955212055612166774659100557882613010694045220385752261220542592709210331396148744520151442043464933222249034647976425701680707475106744170706984315714655447332108068599552840242857742909083227180312653136697483105432234421858948378977976100052476818724740024628222443888388317659458920543665488399531123546096885770744476814556143824972694631554878482706564473486299268352937100797234045990117486570142422297538925341998212687320612859043605378977715425284598283275895179002209944506221787193745345857048447579674566875795595005525650588958970308021286738381712556324344419314139222053759286838297267883980396273541082109290160247155411403494749839795338482206511827118099456161277100934355698637991325945217898989504968778049505174306903638435138838523367656004719709709758012429026549343603877397748989103176722157367618057078127736001114364995059416984403845403889676071875206051952383693554894904009682390901491177152350227640951804243655687866925909802782841883217425068749730138803133397820725760859446600387486937721380684842526033055888262409962391071943402942168738073107288012498636548425582775363165855110011058821955894959447113426562263864368186931487567481204049736844387496225958018698892724889892068384493661649662300489893990536064314232249661694755767050767508222499732815554118360362610406801846758743000771917022276720888956145644713762259781405541381493359362822357146208498359250477294194092514892890131759503713190266105251326106206582307655755014920838369574933736435787836114626001290712040571956190811438323673952220185771573496185166989065961090742363841991882780400993131243034769793908313660624062926834300921694553547431484985261865566505765648917476276795749029243993658888912289830686943337370831377421689092595120403853770037740407311089389999875046916242247481511923220971502929446225729426066906937163132943563969303349553034417751113034570797166695611133057626211995991780869213585564548544276872539730120930499984677998786663670594289773174362520888073673565249719425695418128384711267147729287723972770816406343227443592466399654195725499910962491279492255292117170934469936201724909686021729096734995903912580374027007288290213145394507637539764185509125832862609718474400216561324843866858721497664807567963656368248838547086355745447478811714858748915465293501892444627863664565882126547796321476193091457701254074859477201161273403167925843418106546464775203706375047443269228398312761808040205198210601358141403987031148035510184930102901547457256515317230607712727038305490443477063161174845047606413601734866924665247522142060110700351133199887775527976862838792868096236736591116222194957535812628914551962570785806262315057770511481418737220733795574561308081381979048685766889845486149296394920607980061550607597194073011034903086079569867668263942827078986510161569127101912025291887147951734001583011202055587904807495463145777136223341958846578833364340755739238435453885983511115941802416760538425066860317232270033146167451932633350910493281524536432179844155386185838055747314633910567050822559248413418079272086360435372842573289869871342623389827598193373824261098334417586854785285298555084451914263038952120474525588078379699895312639418096113220157660813116617515243537835077328725145068166317207397675728752653980144871433747720576557646695345840243949970857282387545949268808469814583100917500656672289896733539963566172878204324194851964822606177388734537372129363139267578654014627876220903702271759952510457560794408644440486932215502028754346608673717654778107943472387731900116777094736319033988050224142006266807482180615967409118999272899662306534376438860296039131799284388294015691033569502535459465157786710547816381299160660093287000884558150600941988918605296006590225577307522142782341141473150148570169909823331660497101013447616119575254087986009875593999053635932062100784083381362730842534120735522084611443253992616215061520255790578515560418458628538968242804641543163848074451277233501173716607459268808079909168768969696726250919847396009968356374543585081478185939619719802407692810965395139662897023412144965423831292501232434735310493804022453948348394138949768975749777534884514809086135433990333523191659313886394999078073982052298990498138434829239388394808292248322507064606610253966835918729055885702238011876886195467881283093247661459175855222513715121636182332650022415895355089926242792424082976665870683998600511522451931389508547734123131241672505249804900516217026569650105646888565297028650232034613727846456837272984071480633368194848644552505542529260583869978598426262727472603478538016970067778045819591470783413349642436083380411990600839918345565372792370771083624623539605538008772236786609172601725337651483195494705600378616496237912217165440113792810937295273448242040787296256783721635125854364489799026582166329553313054957735954044786067760824422940919717576776267241686835145773979580827917032005705606921058441306632075161268551062025099579061164259276684024904571220109479161697039386562007851983581005351608078032200793396558336173099108315259346283776819428941406076397448245208838532670148895826540974905965561980356671649938407748942666632145102604021081608090707595227954409294939219945701120681806898438389856723760468971068879676912008998129336065602098342195936448169658380733639257846592993298831664704676967842512055553702502434646245555130389167689649768508849641318197879136303986128745365951956510194303381612695912702236185004031044084530229026430043241759673111713923501053574745875408942709702438113547392418151116895930888988934995182510818144661629243588467566091465913734766073347893261001062409567065517579061254376672789890242543839226346602128880944958501864183622602950380057185001151627220517575482928232147925740675203909479770444176147416214304424657807826292694040715528817832841234981712641427151268710211726200400711027488131358908299679325227626587028685580613604580443834740493300243331711051782973599097718468768381280309972709840931591126035598033325963396310723039893789645294343520983333313200522356819273898424866848981226894849127181637049241790998586008145143389578859570730286093746087332112687933659888458913839986649631438560303493245374913392654644104461676527397432598502729054595620865352296634225235622050460107729261793446522199695913304352099284320787035613262588813732637523177751916266464615973916013925022870241728964040325979651407585210140597286702671123811133216913532193394707140740248647740727141903985889217939640754463677001435712714680338158620851924705250558615431162670186446432665972248765162322523312727986944745401763864543599342045485548676651876520838470401242904867522701429153638789978100777340246035788084970792772818233256542007627139162416079362502823007811170798321226098953078229650858708225596244339916731413009336757570247439637750030240953187553610248767408575247988373111098693913427855636078059774739716552633654329095378703769752031399078662490978128326623458484786815577156272615487606951720518834407705718312152740077198223904129405489805173603807927481757790160170086451884907368537458375323723902117398495478821169337477258759295074953669783914743939620872574621275507160171759067457897488371577153541138713043494876596693429411697734389441981337246823538388145073955190992229797054917993321730825836964281310296387358122003788487956351398698522075429748815187473336760963548338403679953238133032804097067928984076275587313281778433734857084471706431209194735095130259581501224754597729136978330034842695220818653657346138747880575747451065054639261155005547916392339580058504301669066449066786237707080841191584418626596159945148233567252547499440642263580586740141219619445243205623435843727708688703772882881604658055279033795671670271621041549373603964361118434821672051757346643873759600662092842271239617434398093863463874579652222248118392576337112343662288487852073522589126875899630349250431600072337019126928375426304069951199343994304947123539741937121015985784235920885296636471732434506451780568512075293352489774690863847238864171714156989183192089876226297985284522373049267940896094688016750421213495156220176127384331355758127638294810200335029832741857488650933282957187572143168534954443495806822869939475041742946302256525366409797569161434837875636908778529043593118913675152972111842262979502674054884946387833099004224727007321460805873882390284898627909712982877127108625153968893137060047709514456586285503754646013223255163695066882788216983646814814561403287652766045808942182302594160118089600984281138937854318055413997954231528651502963691529879766231589810821952221678597367599567679793551103586847495995963210890941805684019071732360842491186637793967763077494529360304151204804741199349605960339573356247621931428536270307394471386367942649493275848288739582332002373589546330790284519617147296188077030125634124462301027084962517967598016763876801178043509264787032368817582888200252259550997314788574860348592703299769849762914264023054096567972221040918107654727595117511796498473675525550645459012672710867182478980254800507097814496584447763288549863972441000453895671537954030160555061681698399565871108916577311854258118967538291890628866190659846165561232596410457882542916064793629985389865005208845199538545881467199820889353255678236707842074418214139239277043014334215955952699077823445035451640656527692000604355013265115741283109898089163620190187253745713711397055602568660243056605188135657117286439557687348705999899995161329714398959029707972428387715411958508050512887749061165278657052933197938614059306861051032910940082970201832885140944953563404310419739581457638585018227187427033465045256287674872504239439581848848257860866087478045724979620253320184959918664717896240779549873232096829272802864434939791932388934383770079575483375295196998008165555565587986887454697820691685311036133966188854004540815043149748015074318967674563835106719730181576475371790334578770431264138925211242747147180961430663503613099372716339343644189232661200174314025177551820129077451738213782835711721467422791930210178198736913436309909177212091431211633903398988684648554892723609975289048855831471022740420320660619558421129058469548858816432617175823569234394269000788823219657106994835790198250567303826816962580909185659065050237516235896948289500106539676440333485374730454104465824755366150440533903402988020043820655741159825173912037636643645145012630077735496071531963642715551391210939514199965916695723165006676723570108303770259319008380112172145712895428656941984234361269894057132115604251377958710919813280397610297954207290342949998802137813163258058329478928708364085700572188328293646634627721713124775912684730920167273681477122461309483107698867931749376000005387135825668937323557691890657510079547099884507616142556177737197604277026647664422474183923029430823156172905611240167095529033075981265626477552413493221018751447208915917096921631115875779794364511963164745790732719424684027286195809049163327295807974548360486235724556007927414204016179422420068507925623636233683196644756673498971896195526460956352725447329785161331780214500080621009318638778929979583133106236315688191863889275614587116803912122898101393778176842156759963316685016614715011082259915397240142232072831089311296177208165163076893531073196097504183600329302498453820900390668038231724169303724467552821299173299359884281326851854342496639129096419778399690971946218933778743069159398386278757475569608398560582734788444723458298831823202938946959757400542347396183751543405471530567601152479193973052230668843231350549647596257003673476443398381672304472360843484281241146991985213469006236302676248174589563916955577326867235621653123659680131961597228745903664562305531993145284557995033553195171256065993406138244265736696665188120879495727290021002338917613394207299637377117142261212803886545665999235798300516915250430579345552372042957619386293059257011717224024485495930303113061446648780635492439062062785237417084350083529539634239499068867811151315942737448802605403339861871563491189871528266322828152527328864204083626586912863577753051375087717622054524108271684808491749094975757169471423421823859984154131241201233260956526472379040115885678209523826793291281917309751590026741647792456319586489260838706729778729269085619908011937903786568278909789729575636014560161666197021654893571375664090676995253720678497644188103294419181753130249620913223289028101920932887187824742554421065680104922370737514283370448380282499674721152048955832825291934331699196055494589343877347362009712857753586370514968111460035106683485806545684169435476800417648705235464261423896539287713694599256376188929122079173650571088119946284148790111127116449343016330410043983891455354531698282223072986024290096499389103208021429115962325931026596198481688503692272531132314460857918145844046783486669999309673566440510833872711745215699489916320595159198446851012035886390471034818630614280402269582694500787621029166911013901106066485303543855533392316496473396677570410086577314530742063300746177038309712989182297490690253515423243077046957562782265095845483837257619188741651363060294487268128769476711144384175357190666954789573711650221766408271089847259250263106147334485060144573498692960772278476545979792050652491399805235951972991582821638011346459437603333050708245565158602854342551714063808185432054434660641397207928745787123808381226224494934683204727055326188881769881725017214627151707106577774254617026702693347393161784420635318648456931412753852620545258330647365578599941816478915840470668142124299423132704619076670867808447771282618858920133397995405137550699407769697744041392567911501580011340782870374037694856341266366316981697561394638176945199978636856530450688441611932199047477794870291770433167321508175322780644485944001608267808906134776209889425482971692828250296630479594815666233389785593839416237097895438139667053619024265911181583441171090669930364957815365313054009242737710825463735699508016639656152934288240263199871967809344261461791331656466948534560162665987279525373054250238079001191778497422944439394474689839817691175340192757225922999903765225137640848806782640610600567571416151245760659899287254345515704007174192018188029804620424867478927014347748640066496271630065048923945894616515771048719044788629659953431971465455049219541707646228319468205951916242329517684013070610529633069152048825337461137915230125468293281112239224288420361834357673523998727907576615906304676425737893369560360289334839554900833351120783706610338231595145257353538367784542922548276034036608996800243075314546078245942382405348032110586854401825826557719689113914670595740913448196822145871395207375769169132970760969864774045658947678694798706607918979992560017214109486348254758554034867288466535339697155005417749072588977810034642396812636181881964648007186386242919387242632701150011315033779705171051040953065334497809346866197327900908195564360629723575013119750642631914250264067451463578399813827983832123969157292254481447432829954152668848497830898361109352733965495447412798621496996898885758735490264884492639426782974056161451569191767123402307018381049669106004576797207329780780034457734045143752092119234232801043782453760135640954609353992994366503338445199417870948814493565450337732220643745634642304622168757027640878326031803433885710292065094908227192128619385673414127708229601541919894175745547576293475505902790568181614326460536731807920797166305439437944513498732395866697899789995730621126856552773919602462985046426251131070205962322261433202368093347577542102649365877596189529963534650418175324031571890170930064027190397240905981256527542845331017228158647932752761320310154884304976094404430349321827518560321051246238557270952022339427693856652189087934213426422976146024200343424415360112393565941026400804193246190382085725242258753720847326495508580502483530077245743631530081289854820858630493134759816843491946944897967797333716056565626862821965498691142721772143461144832553810660907175619331088449508114563805023224629559437435809770873305793590373678978358988302183298232162415824258855709213244328216896768186187221354202798595301555394827187016696043253527030687239806907062704445928908584556525296505381539178774140004566402571468793455253192458450081854240501265889613018195506218839306901731037513024818888161304141602928558627864915078758608249015890376032342750277773202644535838754718823135781475761614374647095796848326255566566438142578625770071073094796403007632456294674639471050868178522800039830082292114428788429821419445172911690692867928251156202761477783165608273965344370261161686238940818449335679054303132335663151030194589524584559681162461606745582829478783535994675017267400483582076653426598421122545956739393582463621349615283205779681248274876102627274596315584744608673636520761814831895778983345439073775572748514960118977646522651314109505229287645961713473273929701099214520623977205029894913788127406120652016768574666194742321357265532356101648715776882559006395380437867462339717323539108387107715354161301529639385976288262949430546274176078429385649700923737038345274356190887416320844696648350901619479995267009424330799239662758998907462318493208612688492756863950007760622324398475036760115352909640492160341693905944673753625158291025944232751218881838438998043672851831638980420778101315549427601633540648862701472754906574151012202087251331391338491740181305938527295828861957660846170480318105254073842396105979283535640004752959265322473089747002076518540544460771110983500130592076510721118541186264327019769274281327585078601922497291979200069607525220733037947087798688868918229714611880784052684048793475147668109971506586879681740294741163889762999617170404980412756009356062842496690695686318218514598529039739009310789024461085912724505908984750284621353271211924100884590417599354709099763594076966456619154435887588943393325683408296995542714988695260494128239161007963367895810240453891854542763456721355684560238840002522261963625013113852752540859808564522370210749900556839897469383344280715538520941412039495704205866538703831439327083198110923409042933070554061754313967652273351283741953258508379498934111296776193515407643186301721083619400036828855421470078188458489138075516523086320960257585105179773559685522153005075769231414047169617857817223802619776746425113655461958901593383062632028486844687140868146415127386227583755948768804197706380880832319437129781998243532546916419504943696937354282822778157785931740867852836735676126795018290338928641329188048026451248231122557997538191092189238840304747054368100726977848129063725039867690623988277473111698958914774071720623645533326323793997975396904039728120016370698394227502336830209738781044632094807303898887564276892439560604305099051451658542570758719264627394614343557176284936712116269312416426369235916920946772385614112271413348387050109034025986762998764204424834673441282612660609246855224443156653010923234501971696888220207773058154504745441485265053981573517483005721759586654957971613318877164799758341731973179589903817636837314850616599666357668486604395953012533701695723771562185476928558650336772822515991548772967626527337575425573533078321880979336388015540589667316276239318474327169606436468653042737838802425831511126001110761769891547188647609101027912755102733881556142914673034915855864068671232098911511110185869512176137823562932643863352579091576146518644952325502096212357103982465114865356350418964083564988746418897341703693753081341952793512918622078221707592607913772880842567402593847815160884693020503125242259946686820780172854897047482005722049046327601909201216946459611301825395606354346921751442982318389792094150536659040671081650586440587908232689371853920126888272511339802540800389146302921790776314886742188245510513439456313657588164407535135661165199769055127133863413620621232743695989277824439659679304554925168554277064686662005741464792013712635583535604990569357436951335775780789603504777507636292456685617335002368733479199058960605525245571587141182514265784534475821822593274130587350649504704216426650518806189003639404456660425339135631979318742136997628105593151628295641400703490302093959384347339454457319897113359935921374031984944633189183662374987989465942855791861213114776114688743704702211891572367719272902546057505569151678737391704511692082775235651183927309319699226292435670476775585018574823907419028932070427199872370498194560850207512232537251771390605921312568862879958201560542026367580830187208981819366052011150001441384723669901011881516869529208116972512061973875598497719339322568438194206879271302435402766490555764725585768628400725285887651871739266995365817947385858158847095164131224568541940297814530787170161027165940580041759046119633948314023473961684859693302310909070206720825049222207262707476102274949641961862200852249978868494786081962037911885196268631582735995164064496534894312291191499908464958817929565558176913371103411085217327832189605164035912477277630299393853881377559656358402616073984789526909142518970140892374046761054425616686534228362021023616443936522112260826997969004273792415555116608549930180814732023962396120812993416391842518933798972351237134871711804551491778635844337049357469725212381598341377456731472264494992515312004059041461605948332400042598024869595949092277021694912922912211255651246523263682472091119077246218492421413997615409607635291838168569444343069455065521339645757129227382233031054149603907459716788121621189450770147604703794413312625392572979180496385576713347123842516563407366838535702975376774683304599423253399481925318365604355459344561447999750835349717043821854691585167332378752960862365695253323057298304435154698392444856828210561286806513851618385322058921613462528918380946218679960469132672719392982331253982599909984439640036465891022116756668656285731376029501832323189015873965787468223730371938932359418389945891074917207180627916807306589442506779392218983442489581911220127126851333048141217490316922300372221695498756862173925734464026957773164544228778464161645885723534009290503403471993887178680216459285006734688277984248170210361322099764616188276898560691128213470168921609171551055921993875000862826251014873429636317062145770417895146944191177980069535484842031793065561471624707412667459271892646726231575349433621605924810304620222929105321028258338109330646722401590950482685966932507964343138775689205665396927310971537507286473747778031029731207633929488505048005698716682555428597816897672699941318429395187147513223902193588670693571035030100758432951235485367852071995845260986503687885380085313802289415236500086382966144964044866427029246092037173138571086917889685284530171247487150264422640151513431982504562582694029381809023185472628530809077585156240855208212055815464925078267622600511894255999403473776245771008365372026750503677413861699090490179959544738038542907981488425929024924282002397693158534629978532118601747497076971491230268975370441810750973960712950096760421140904322078070568771452878434600373100514739532845170895955214487418483036248127169080490322992855788092562167533083182098211833671074242109742096920655201674244636924567027877316801140561047791866485790498450282242830871441618194226451176077709545478279737102186638733540870080767572394096092937559480550939927569151094323679836596249970990068397353226909519472880009435190370978170062927412311215274169885942601270359657627849726679382559099102139999365124308381694326461588145362884614313897345716924860710691739188107240440498973007372418812919486339178900363126663435884278027154044573920641795433967604562125436674262286559508249809930048852396725848962740295680422488195928856712916758859050248541536118533416974863859411223766617473734168090537213936653504526784611186397753221206471531813805136988533863598780268757719882973899844443372408537391647285740251392682050617211559809829419905515814047723396416398042178832436208572217395398495770761720106188299442831857829757712863463980062645935315043571742853136066026021675878029401754356924620612713654886241335795869907950698394935465482890170967142285744171821585399512327761659724515544912310907560912785754541234827519440847472298117589538032567163830806928844379885019632957512329100152748559500025349163260606636843898188104738716692326082919683455567909272066777945496371919856568287285657448009296304467679861753012878251834324465417085964266938588838564366066869275356522508454349194228065124143312045314461989250371667746014107714152406111433466531737116069689594721241491833605395534149290191544054980436529736651083740766709712442597350924437261901329450156468925709856842275613075196769336428027854336902728779374566604435120326855100496848772134105668333353290300873970366896899369071000552810838448313873658452027462081566578735324293402950820667164745400854917055444885667269402240346812035285111092578036667703268537158388604993188699311712177467507920437119547884926535808355822963435193062952138066578448399368517866241506015831647002630427499693538785945643806352170676284929224345533017618207819799883474684971342012308827484409425611289393277834202443953048467640701822604138088387518423774797696342702946606586393753433739278103582593401662301521229730486253776963346583169887955567142485773335668829917050537600216908310201289180372534116882048028411465949362540345906792643554925809365921199633132648407653040355920913244178212751922347884173362282193413930835813799867830309239289920088825860255627799909993365143992033968888978852283591416995645840220368267942211372220951644948065198312362541396566150845819793674037262572239548090028170325181988064408017316381544438529890399704086982977773702939664917147617794649676636260023008005034226001106194994634417184926628342359601831549876961749727686954821451706865239348195006170301882303319937781834966144490887844409655397983885440471449352472303292338462208639492007449714551562354669120234217095782624009506049036474716128106005642518170925706637372480990208611089158349172857533916950770474542672496786134193354632636508154033948533329510918759584140715382408612023410791175008425013002760223191837736445159693315539445572774662180822015722002244185507418066335371631766694151027061528268045448314590145614856204304288308976509933821703756073143305849183190941268188543190961282710591182025203304405718472346643520362392719041122700065378149809057580317391198066317282513573949762316860461327805122525804621362827363520191540189057937347194372639579820881954451506434439552440756650264565917129112467055241301471624977383775786195642315418821791777650960139388461251025512252330749636978894370326143357563709149663425651547721388045146704033221397522655675643305275004976613355098362409929080077326845813056404030195572357715872433759190258505447262939503609876894056951919680041106524084556026769430982468637148772562867072883385760073702453095241981331306568597207468216322589272784922096356502576916798974499152637669477251477792262313582494961249802981518160990305457091788468679823224080855855325272664861825605101708613675655305159922141685349013817873458551780158685570653781703387437764951819845523851307031682364319067044765488456168341439184793706614872403377457237708386095136532652875157790485066752334290411851927600581743520241937844352806104446430957421591901956132323926199994661700202282524434099022651591576015017339695222224609325477609739523836780064598059444359404907990433579382906782355147554625517092365159942425375202594614902475693729526203397248331301456193248574402059424185366470497506222821830396522378808941020590287204747915234347171160961866356490209138201473470625516801705695059421208917618319970665431145100141424996551889337269967595082516153352334911349695772617401523238232187601137418908471916577026960682334576265256629142161458426323342664229435390005855396358136587519312772404688370636716465202713853389911214403452357197950862194696030012187743076458557073638527127626914737269255066077477587736039829846028674045589341296854177658246005432257392358590047752926204142852293130714218417548327813273440716010346797005563314695440612266787932902149684497021777554713530090433138309630808833830159094202130090831906473383786653805342394191688614863182215941321600916661203713664982411176115368711058884564074727232948500201413055320755323108776544219405376557773209990612858944508270034363863717560325164929550084967476468283319579735879194016456679228952209131450251934534754171930687478430428147847611543524501232574107138693319405966307402429518811580920857576388960469179862399754620966157466903031878172207616566620255778614469539339236804084787832195385274051771148276435872659555933161456835432881408498531661173367692865462550529094059064606595640469147460540594399876134200853544271230721340366641455457031380924361572529022287110871670078623992454092479450338788120717725024200971319040951720622542926562387048676271561550100033949162645859526571410122150693572809444766092062068324799800845060954989525523274173691937492102846917962745230357148922292702830695743487024109002707723263768182814903277761614929956531375178268716120495524715997411173816151174379892109197333000848038174111141123108098775853728000491622442955653752944835301920211206944970151497711071814008287028087328173664545920482721397185801483760224310154901262176442031158779660366408131634061688797994864793819451590362410639494253354230712536759922804571538248586426624821645279938146028143802307563546864498566368912313527363489129819638221021086984945845021638128139511138097300043106162619219023060356497269531713693737342646231383574435283360982565563596148026044329151188613247029260144794462322851177054349597090325655242992052772746461136231616402408670318291738775205631064622866128504425828415285057116968224808930341409248245546933985302188064798755483182144376820095702191608955408715995946272971854083468741347247744278538426052594143685069791978501641097027309879994641577265593531255058960000722999847034642041631636555001511489482467012700643210876576067486230517682703037216857910701024756069746982079208218679440951720628994144053694624989935709813978454799568679880442404405711466636913972471798630932297907474077054002347867188580376700663351521158730526046530835199226169981520159905510999938626371504147422267240074015966701837628968173558809348451396915150051874327810259632805782546043272014513491754662980294994688726143610165207967938228895555098913903559416391343470238291942331265007149269696463071623605146100606717023447588620314760215774285975755539243711916122852207130195174421261598066428044864545108870322076279469478252771361898964028173944562463543427293849133295638076891888800277243912226249340665595476169771541587831966847119106894196771572038267616984042045235869143894385038165035245156719730092854515233135617177203953102317913437863943600144607993366002039467782943999798487928744126501708667729425150674482294356373817881903976262198152310149423186969715059608346290623794136999978094231271561427325068523214130298836962079506742055351353096520352675588552062049125129064867703596782234652065564059057562490657604984872014521574548187134523560637470147250117062140571252627967438061265223166130147494522081524859168281842086924232204020451210705456882514162391146217869884419863199549326879604843777011069655224761862563886038930797824315648788005186424092534514324446091132810283897386151120009123024343178394245970812964267922083833002490888279971860625125053171020677208581270867716315413361328962967595628532911649522430256573687572637267142725839573601958442537212976955679582170866132833893106063521585138809259585194121483544220114006097471541171839623149884702873064124816903770585270657477642402684580692108727748195578368309666470919095697048596933625909740404697658758365588305439315158131926812513699113677571626497464944815569405903886368382192790206149219982733188479743389810725018800698787856424017731756820173602278897428433402766536926284157117158813161980030354628037116287855497831106212727605196062213622149225854097077124705315680931296250109699436231409643870109293907639294229369287064757482646363679985727092177692176579835711383714222024774556275354395374542740318865312488852086705179888210529756879524652833386333192998054131575261219461336571432164985672267468052017341590444910630996142868578968799024136415441973893866396099252987971072333614880456504719475846645270503261468860376142984184178745072538673072731677081249945648900517773928596690275544397624042695538255194251274885507779351544922953992834333126892854491255674714468533403820784864273532094227777203803964787811458861683389511285369791365994168088811839314330101679668525599277870647526853204520628460129999234932052842332988238368092780487608189532275698976006119628280357671101615574801480579445163620245919289383682809232838438883326213620800464669205378572615377086353985910440323918753085808701497823466877633581358355156065460378704047029826509599466566599618760733268365586247305861608996506248102920321048008485887100962635196456485363643487118535165503608675459354455389129601030808944317577327406608123877710390197859105353934253003728072263304161737653232390202904301690420727564712773833947776155278975580123346819985563354568877414499385040226892451232356403733020217635424221840587230818617402335878778699865337030401662667489455386222083110570360581810283660108058247668866931411160034099680534273853923919423049798284374047859403183779102536965076952609928710298198602431504330146549401203929680755503400970608547008529131786403406335796670472416111027376092443140281733099368035079307950792699367049287488526291403809505732158398973898905379315996169323799455153030162147052624974455187999411428966279927346807695553379430059813355055075736942836048636201227266481406594792121213704148056666727292139160776016033607009995293505629953177152095185232929113188003029580516041849508801964702938257902288797087791233302519261411289674760299264573430743032373469249186809491609685167132188255885362497474749359438968849383595439701460055066243814390310033395546222558001526488648092623519780858917472807828092222260208565941792434673100725010591562086497533194292811317470819220198176314817594446700473237481416005875779876508230685348044968424823420590473717474244487293179220927722425008873508814020331842084239629059374882483396676187509141012575164437002977125762245820461325611592389725739958744238006204731813503291153641047462054499535478257205107626894096039325718970867315313776226482241656541524738129434602502496237985542325504251932206861790682142485841013870713796259107478014617852615330117100841074100327084208834099511277796665996169863766359103579099084613614143448723413806265662856110767207160253709747544745687985660787324755687268855617223680862566558625379751975417747217129936027751002865935112338982852711117815231445194397025079314874569392319256853024684621432513560603617834338064364227395375411300093000196186847832239042179613265788684518508992126767411442706624001054380937219683314856440520578566847020812628061339470058748417150429492069086822876578496379114437608258236817526874708074822657087662032009364145381112204681224662793006258494516326438845190830602670032119839185903549762322986250204350241363408139833977670003216608258391999378449798391373820830646997724545275704881034517049596460972686693654200347290215868575080741242248288444581167675764204455504015852179583360541500095796477810297869482649378865198642370573952438512369349479086804198454748206485974347063890237260640463456870805000114458962529593647932019099020697181075851759945618773866189965636040099502007733313777562744915234714105217187278191947132187606575108307078696244807601959555271786060472183698096826871180675204607832284342055859201142524326413511292305122737389557554401281405488809860950442613366407921438874522722157500888825198368147025888435618334326259891971821789227511047438976994938694307815163171627922956137977916014468926550735750593928314584242461675772064158845996247519556651725892311816078910466496226982722881541572960610764624798899897978897846884795541507823768035222731138934424641931516151593839500639830968413932129308309352665027508508693835980058610925796777562582117749104237587436601244682969706186977362477596641555212567294014690607897470976102221029986899104940706796360447706898576081533703527101948296763003752834294104438977176570103726429137003283489629309263906862874492100143945764691604415494751038065516155040366012168392952514574256925989539251018826122813518958493101602893572718844167266924587461153156814024066381504413044841312783252866769871305668743341133433454846864308616519222011146436029342436274542472690090653891056600042749887699138908173069657808813814751580531720586414693508296613812049700027023064570684631026617480177047325814455167793352863766301939696042718655925434495992346875839461593980614716936565011945986361184626111071152727394594337337968848567239693566922119396288582904901335858264546921362061223575204682909282145618058926818855496252432045040793754824341450105974577302938083172358324989901317340899767362943378354256098495458993788469565439626068474640887020881783016602052889347805046902834392606377542265911295132882379425801900227945464395203954314294941446892221924283297019112597338042342095258447523113613430045017817274082398108215136454824039448102083923204917754483823730443809131444169200078551566874798674750104818333337380829379922173935904693618189800962070100072856972063960445235089889853722208813227065385137278644708914984121450815698390858067152462640402144358634604116166478403681256817338798164066483258198168539125900313085589812718534254031797431849025442172252580594514218903535298236021337868469268999621365501228502502764777555958566208719749846077571881410136359810936498349356238885356336331560990891179338430807766809534999741394823103254113750675478068589681874738325133883122602489183083457707344364638793650453117216696967457547184845265973918654172436587878818497611059191337437070855296400775486866044923065438209029724142451466734853158063096060005750034829781897489059260776268312859074356213110763871418590601283222996689666849656318627564112610622297537875615341392456504872689721665073515747470497164001198547455529232216364266434507291520717046396676980664671213341135637519116990135109594577272862113892831424917623314382414090737016688511860492887250181222375218598914763049184002769737179353719777473863826551916913836936503622242973872604005061415444102642416312681480432312444107171620776000142427462289382612562138012379682633930761880123889870329984496436397209511824626264662294332647787262872380647843946873193757879878072668203049724767647055662756751702435205393471247889296374021072945115866132074235535719773984428155956535101936856437173268857136039812016157843292466623712763028616343366730077655385878395975941358571886699874771736131804062299278882148230511603614683053815175765552001226451323780252943116892247617187506015696355684459299733509352704345660089256617378801172557394322438078014340030367754919612192065274073160303298316149346892247466990410148918414145532967378924081286835291948626308748567739468586146351455634413086444303155750271861343383949813443286994957217469501102604315398483539886018258262773206507894850543308871653243177535705323050941969740288400223372028198225676014542151773990165364545275572032982231242606671940219176048186739325168951951288860963175263593685082714363861919531770254362455453618120808533915693280141574878873377497281754489510322661313365817446011955524796988391336792484287930929722748815595831787456771865025819316995784481811026457579567834363223838028497775548450471662841305317906139907372288854478793032951575454454908619375768473934361712938858231611841540851388768618663313557505114072372875135694602279382699993407231187945460041072874763935770632696107114516977379401743134957741938570237750603452470281967370640350013926862888021183647784487439228604228031471342000646239092339045346080445627754129103379122162782197836392401027160504613792103391368536838033576479046938199785638744843300897127381690796418596108047785952389882852857067778207810801932946005112235799560889374933892857417997783373873270137697661596549078458262253624224578129308059546255185717154002936911260229743677788800470430468956923915075283376894236398703313828515954095378792608175969218944585748881535303335633883030799781317229394820763079569364563028282680973956474074335540677574370362708229504460238113043686232860726191703456863822517145525444011727092661114998687003227390550931435625888907198040841479517790988330249207968095455268190562731835080236197240830038219413676667788980918371255944919117644092450988317293690924038171213941782255576464667475556770052233713160967349059873516862556641649731267231801059504415238059631492071667834604296423755869525869063551533165249501398118550595161663088632213204227049762097814169178000572776040916351021406616735695411656292221557327700600052949987976493512952936324315284457756244365230132102057944654448663263908635004514254886227719132133655517744718973896724616925506026630740207990816176644425053999876111704532505329865559286079199663866374909900183941336453399157547000054591197910549988243462017489011319297669268650818590722659035805922372017620354918185758438951646980838545692848034449868052853707641740059887916131602242481623356512144635498143689606003656700002458705866771726596466708871997499408702487958677527379785855528042073776776278101550223041183793037180812095148509206131755242318962834689674108110000541259021692817157189364531204185067253012233530943539597976177057148365303692149213921515639648884824231820757318395575759867213459030901099036373354180632204919148711509546484781102037331514159120862062342157856817678659064490628999076227253786288895321605904404112569443346998009226294528462443935079808537831776742021296788374610605854291585055776680747648022743518691243637616126976417525701460900781241965587750276860075316177298708033503842946053239848870891048300750522783713853206555270824379074950974291246464474563230640489812226749307213336340720296245625583425843675766677283477837357510972076224273657739506234496116478967941962005547719800627776271999497576058386126054267947156901141542541780133352664411418094343009380884729515670097486502176486423110639537164570702967407719197044152137264985775246225925651941810495292187775272688262320405795790501786621525436537018869692683146555066156795202909955924737088695500361714610246575689466289950263889868185002033800206355518242884158873451250324610785366122931926299743628634394645917195691436428186625225023721165749359287551265825817564193763816684176671927789029431118049624206429394391700435566031935698783318609410710579997996794519731924144929072610744904642785669741737651776954036962027150618461701004579842647316665241162744209986492559264219612992628937090099638281723183161598047832102771685335966834503460572270300570339355377880898551652046656372770975674909126035125930853512081927414289541480315871904531251283070111590323042687508608854309764232783471234582602849253810184448548953255171933821027228533096051191803892069954999361998198189425529814884275500289409765567277753520625420688381392045649275072071773147755151682565664862057184644159760001057171553978866194786290044628781866063949050561123984593185730455794402052520307821100941233435530170702808178059653031991075331610262015950444347531676470559153844571220521067651841748860800729939357058652908200284301736688317069419620930532862025521086011037539278278619845088071806516227625067808630294788266246332620233864344921643664953491434483005647806193724144777490532692737809054714270460150360893294737810046551446154183404754512596262858870798568762569166649362782770321317276235152823018723819141892694544299780708475721261681882169723578144838090668127483804278685737925205263995922874103433901398720346990517567872824681354185510754704819773302063329863866817290240027331651937358077475881249956504567390563794551349652604065808784899293284943780607125886356082458775223058572400885147341611168959302021054961535014977959421598401676452593846059840136098850997130678444780701579094071154115705554830351992320792395570821121342376164794335152352889897782928354463932637929404550013639453800000584578278558519261880549111205175828537001280541469557495422286121850577423135927113258055674458746069722981218637979881437754809504486316486542183784295403772162212992681695890286103944841639093267265001381668579961742699024140506270775600847830853814551721167433426663811360406601427690620102054377110213135348253054941907425644958429778684196281137028125807752285905796382159854191466479850134690381819927776422332204822431546826053218087345604656475362422697611491337723699716304558594065252312074687233513046055636485418217952483892346817342132150511364935469801336864326132233665159409172555021873928217591872183131743142561710090649318193278603853710206484746693734340404530606953352300250550521070070141967677342851640625456538530908832989176461813464640492270550729790069943482071138673170979381781775136039105189009948224513216220744212158051432371597686220360362153339544798722499187098870872730837517212363954663026814620013825766390304127715259023572950692254681937186228907536971183748135809527432111897474827963126884946345122152475874528582261689921701309805487532301295820994887140663601095078980435707968786279449502800790044811657542454812873490789762023061115898255677119319431147969978760739637366580468606356946973418176319858035560735860788819711380030862884229041808876151102904933448421595919897245450503537034889011507570612945641476383683436339775564930190550158978674460693374551997754108894422650163637339493488942753162989837687709518552924531040541927622706552515164548325331145821344130256865858380194371723997660721300801453514216804633345982613804312189117537263439783269559352692949856982360031068422603579799768463846959646427115921423746676849391779148945500151725733342720972081284601926119730451423863037062060749956954912624466493193181401201981171505544015953164005221691782913710489778632782687865962309753339500073341404929096214484414461459924469347191301440000940815736745997892571866468739542970653881744259144674354671855653658657157470325738805517156808433439931098188500339187152523088495092733913804479324290467147057717098425759353571697384133326159888065596271001630807053806011308020728367827587757712156976008529935329831175136207731865760340815822736467918042178668067800180386054551851805485643788413355282945824413255647517275868881614420321755566250097853860683558409274801701536783062485414917246872882973349919603812871731735121790559453357861635790587754783113441128346921242341867293769664582196450243648183396716349923036418010231691885488648914088186015477801732138715125437502067615498766430442450291414438010631353445806499009470644373447333560960562918372516236029133587185536755058510265314487976163670848122508936282961460218513596533555033634556763337905815452274109683346656650293406144501531252964487039632775506549603170280808735774623827111008013999903226976890988873344663032226795899473432150883748422280131701789220229109274089696120633430357927938100488425986696037921483776343790526592165672011713729445627287740503685268634240701371022673235975673203298043697830432393921455600552248813061759274707874183407710469007283164508693900257336860361339884999082125376249167536557070857603954160271816318746038190501466091598128879970203793358462783736807832311919398780349745749933308230501036577317311102554798516894351263598812689091614805311066128036954081395437139434903088493808057308995295954402530378003570283615390423455331492588137069777622883286319103103576881934702261739030496990528855103177111202296467467411231945316235756857278717706959817570763548485099879554950924776141912702083149940270101128884600020666024724029092398377034843983201397872949476583879724976611464956306185496350523189473499391044164081951571686894111167286288008430619442944199761253509431096350930401039951545115709148628498170211224045599440784978721470579114819180442812391367540981062883957678944345149704124521225833158252380755685657592220365629360989324096026472491825272511037752920758761202717930075909483192428965130613586842216200773696393277203197171180460448984810809964844364921111622545656916623715245778459331356071151368037180601724356908313699394257759715758114938265147960437271599388141621772400477604211392912249891889250693169270118410949228427172439578080449360635381069386485389767368203874761485399630329716348673735454685905714655202096463492342379037024019498202059973076229961726597594830553559615119885749678318762934789600705865221633995431750817447807825504952272475075459768629715340711425699282697936777368534711181841749615423474831743649517185585916286451130008350805452271185774833406701598288966264642042181632953148086574123130237942309247577014267299770429176610964495443023550187419878518143902044573394571134700846785476563069155880963355635142267140897689222825399907469298962367269596989780774874901012235614121542003144931150615426749221774577650467998586032031833019712644891148595503958878705611523774431521679880905177380348595555835515976452104784943840179614533284582431639513415524898296988982778439119608291816931432276612595110787353320030128634202076802587331560465481705566080935799211701862914541682994701473355258064738253803009667432369896046577790297205120309076936860306443485882417068529988522943759429368454081617062975117900637474996900697529862370423640673114347332405950881882799168151825375164537900556998354133565019990719280013022723324252414942533870415266287130029352890536374298242891253643673365620408935430508570778269146053298641354728495863034707864536775081875831262093065858088430537537331724299254738887311995332797074424592640327676862293866067339459736517463839905724238906320445417134680869071489543855026048412108505906044264590463258356247349926894000021158820778134814318077874253192666709834087875145979004505060192051436842539990987114626846330222057617454312555400428998849690259499338277670226885710402459147274405092679572690714615070370196912878808512718547142462014600949196700965282862849956542630428041569159523793442690335599619900457466768620545370361325671324913368550878719390346937367841159819720374141305994228162133606428927243990905991566290276572235558890631134502928485569423816783008290410813029830744000907244198042224035379563049217249717518797835068870288325127381401301052325034004470765256964950095584062462496432459297500918659085132301184115714218152780921456387651575127565433721180767808747343503730236891515125834946029387540205120377095842298282670369039689608434280560740220065928845441813791977714823401140926463191700645842572473664728269886601674602117355342749567352455979548156279002328633716566482501799426436515719040448711516250879562595408576181187022946310616001149686991326077705916538100902521849750120695311389232763742723716561799089952859664588865619275691233183886814749981431100829332963429343169154145701665439438674943335657145347982521409792331893440500755945465219150942724443806875893098735155098105752989866971578573447983191911131788080624278774921754912870596574505713577841122292022360305396986271761194733247775978235002730248549153104089740387482433891926730133863548802109496510729540670161487823712950098308228401203287560400275365974046138257039294634446794704042947696535462494826535385964408475794960819626174166032925704718637963662028528459091159873460095984916881488358136230444352124520387814983770906388098104262949723431357828161546252259648464897155701631546982162997161281365262886935947882326269859804577584956533717561181812991182242334134463369557591500498261271617540031603690094752201960147313699364250820376092412551643482549664102995939198119868021890364018667511104228474909773847800444174874957060702377526751732691041968870086252543132595968967012096650898756750587541156935276353399033856661404959873510481342214877602677570211506563868231473121795156488135990510540513096392445281070570518532425189928259466360940173763647022622319814567199290596050681754867173141147060395193923666989767531303744808615866321499117006639342012876303741721025998523318697620188496890212504802099075873660010078528346653787388883154068622935548436057038235191433567845535733974550044532029759886754424224890443233442262286915508671760788168451976602023646999577612062180465321722045914537658306918812962856543280651896847313028287723424367516482793797690741371360721255517317428427492340118741236039588534761685815999215221795273891324824833909966024929136781865188560239653464585483787066766863915282617240707508128678118770733078074078527557161919546856495151938953003308014681341934590073098813420061515565935789032396330597185263121245633270488353670112492101675794677290268107649769377139562132941566492735704163359341208034092509890775799679800657269531131778033422563371486367476777342882071490694634587297922005374927235996561077239811811274119616442877242136913552343405189298299360710866810803363863637197072381743637222476254547880530649822696617412826256909462743920126005124479713884654030644715315848411372033932293616444198243811917513169766575769207787336178153658243512687801627443776817079483818623745532009694357103392407031347860296115455557594141368009808199272789970330330446655193542457962121077105973544003442020003494704889445394004109789005373802981834696322509948567289162428141654663097151514951602899967414431356784382493001090438525403599792387179220841103301281553574475466322628580644877587452204221826182519349067465262302019022671692500892750347228162375043098855660384350971184949606850843626653003120999860124022875527626365996107994249790373305905602021619484197196674823949893421656055529862871199219966734632564175660218114252069716971945357048666344453554383020194867821545803611748680034012202271452869830387825611647504855350416415687255404410895543373309823277850937121914089309066832079212482036706928989454749319304557477450721966735413690078428920703512844571589983514869888367161814865614436080223105091870947660528351349422163752727738919223647047284735718285633720190172319756050965381527442723354932628438514502804557582066516698252189900548593618032385213698976506522573849550238978249851321108561716529054697902728800971303109228880281135022138868405257013987730370283972131204543591916868702708267531535516480464576932761417404538809573471790283926762622279081120328389023331586848905301837811308336132346789630265714015901159563255079879826525582763918007416050732262697094270317927142264253499834985270557330492471892281597996231326754715041397579668050775228003004481018979608603543146734332270080916192864641215355052939883708689581224275054318728701559106886071051160126447508940408748745308155395533526158945103946220523724126107231367914326224717512630132369531126068491040089255802865941194051809163346163433589441936619240269778577899580259837028302220303427631266984111484900120636787612343948692860690756156907879424041662558899275833059487975488150777826112942094912128493722731924720339419882194043923293005856850154150005622804673486230055607265733071112939714198268413209433336039451007324066789618082748425181664516653241841187902392527686918912024541773081592615185735492944633930613315006755437330582681867110275127265063940189379631305692133921294482164488610428720346466922607736058697341534051075768600597236584820931238753364855701443546222439104098924644289682319394872249775682042468509743429406861886465460096120875770838171723702510923771109358156749618175087077518247789736741612674572459499676917851805638419879678844699562820406661335154895119440663199113897729287305259663103996392846046941335647103641163721356933029656485626911877216453256773328296855187318509416441628909825045244188394581335365498360186673458670010047629496312886033462698951390965950991058399481601235908741491595557032817622238848119238912143034331807801803030937260892495091938389214475414476079508327148147686309320932050468570836837988918170918362993485566235374634805423072941905450978610004532461396184234159408514629279031946421080773313835683312095484673661924211647561510567818744425367850037546224760990528378817235187749393309406113946138881868931478956517109749353481475741355179442301250034415025951827145072482083728157281427313387537701287334518397981258391280405474821290292678940979224240715572542021423531360646718346635912440064873911449476753600494263754221569360205095242597817628617567335473675722903958543217933144928144044415448074777268025897566829205838409170187199813044984074337506857523585562159810094430063288811842831659181197449656752762754959502227886617632345758078033817184480682466536343724941272846378220288518876672810424467304302461316639770302491148523688222527684901108595069132889288636200622095835908012383730844465230379375983407929470249022591239153071402043371437678909600650898416465241693603450811948612548003811787216596892633913552196880277785438661008199195541375336338675077274244606638838872577388621388221069328366224893225720700529575771266762712053718735814564823842431415850916771728737264123439012038845728071955097378000239873027818139335749116968532941683087210804458819267147888079665419876440936650045880803594895984828800255821029514796213647941931552983304135472357568184341463081783766400238819787050730221189590676330047624855232781623287190675111800366605428479596918078964174715414142180331546741458041437673915574261295564546946668884630328931358434155337119558230725617954175265590866226092670099827060066023601148586680742894461723239253840029006921107961417203210464167851986973151753957695287196930191225243101660025568380913072445208182637094092558883041704660311864773798744353927434873518032378116934428482079492567243444982362642041713083629787476497572739979087527118016954496701027802545224857967232963120773076188948479866668144844807902137354043375664949928652986087034603989004767033241144560556692279524972296092142985990418651667087866442147731975531386279346174184445716411221321885032534747877013928812388976731484654722732125694212653244981439606838513186554389396665319194968615164095168486072524687565507125891141027902180768987256735377660553592002875120168718026793967232662907474403754656977485895418560400232338398245282890804189798639004002088552549920610297543965845068634167771385575634711126911896324242026851209112528678228611430543445667454024776811902120365658484498580455216508250193793247229812338572271881051646613552906840217365145407727752676325491423033677489213648433183553773999487000670005914241580234041618899841961923559898731289477294864339377509325306270165125946164052076107599014922201453021660220858255293369192117578550335864895742412630193875779857751790703848508024037313096447944393985434932131028017508084053880411676055878869590611270277823603781623852172695532700671307839545327002470532926811457656499911616788310835054806957121343984872237904779986643911402827915189718821774372601765171004778350304375279972324623060417274453197113293521855248592040962516588825543169308667927754981318125234253170724135121843462158952779852976044004164707895785771072290031325247534272697678687345197863959990928100552712434499093417305255722328625073650529634379514392740630092064246420493249393432110369165743583348520018617675058160631399757226307188823097022265319360471857470809115965204446552457012879336693923416040877736484292139609200639747464512482725061109451504882985245110132970273767259144449491662321290344379345140385110704639730508967987514690473949753572760030077207345162719153737628976108739921294397350244799048018601877639337298366246374941601666976504589527894855930353132196659190950265840642420950344712054183910943075899647685352972623772987202816747977798658655955875628775027786267655300821459533003108380984639510644453381990557681560081900781707061802200062748828791248271632430822690404172522160636583420252621247120882577735273963570673246516026483521349924536501273903602611000823840850089824830806223476456094938110892995576917628084876894940080643894863471604255715531349362602261049712467587198535847507760691394921065868652385100199824237360655035144182340683551091228647704034522710511327201775804980779093285815115109440183430196934148366126943439963849279310236464899854751346491498406713225129380528338004566164712363726268348811591298519631409961004114441078679658189904082640807340786284889819848978353369074943353969609434339076692295554530264281115468076614663347646224672077299363729007645614297801458158528712419300112533359154592365864261277853097915704945803510591989702547645551877628005377986151348904765123724104093586214390713942652136656061374980261195912371137927339353286206505468689854072082010837574814038201010338265533558818929635292698219521483344932062792191202342639342325466061780857539345078605028652903941122150215598592652572659741199099256609338963117927618217858801834848376543199186408141121112017521689826694639395590234250556532443600549953369631278171721485259727501468762387307171356938024204917439969179551728461407528167014097113736552021520826550418058602242851578991149529887185787391546952563216388372798788222166740730507564611768534251603221524655523558518483040611294274529612353672303127708092041863247326644495441153050408596255192576912370639616931812929347693362912225160933423636485171899412891635166451202735024539102306646818953546393349373635169014125946196231704276611509021012869996824769318192270963609883451988864053327614226709047473253917037214133587850164063786953398333961146663796498650935190922934013346567225525740466998141006266348137844739720441571662177348305282213985161478414989410854211755499496685482176333446947704928763755223086413072571444633044724349931850442510594623921767443904278560139836427016344130908680586698368573121759036527252322679428949496022253623220974068505616932095780120432838134090962525125832539226875546164707890633402873778401882354481066801237530285492638247430946074162310248378193950940438661718356164308845914265410251560938292762014199862591351942936075910219619077670001369792625988827352294566177985931492936313111188619420393507237382690285582484469886356446204135322477055879045127087143145265504459985272260605090637733360812855366955924416385983640983723837051794483178237414617636572090176834807707201112464416841712629826587949211694563042248682992711740060043324541146070691543452321829341147315612808333903715463872637946991476146220388166980011132770633024762726964165405077444043685613184228938022957843750971020792616811733479061637984650260893447992898132516244200186561025537907469602928824317357024718889464862206575096077498105133886035567148728080415863578421934207675756197134834776821786685551249353677301006907104070231412591130313873138669091382903313335196449832401193961154008432988344379412119363001734220126634502356048411541815822639063312730660941930367545460105744014253357809284097576644793737810046687173185019375163845579707906938061078755264050261768707122526745213821567642654938683949840179384284445929966948862724749068151160068013343032313548873385392846355616817212425435546009189181340763417156099377505969449778955409715479246465034942371540231797254302847062628068320568101065162740828941286791326922189518373958475192035580252826662068705292561827636401021532162777463859057982071017196560927583404265339935463417445864609097183236983379297452483237221137716256696273958061909662303716528398786624031981894773461005925187553973567721014326670159356502045196245269036945377221958833036551928501766328768910767159907742880986405625611840798555471068897148515968571822306643211106287553754222401815336150202183030069195208601022362310188295704514357076947673658557198621111305656007530002053896165748116504597021513691165416710796727371887491679083828708627290433858087976208275085734419845642744695097156041171996629283682656719177647440597619679335730690596469081364919835685590840190186235148677336581430247135309597558222342283785678048062332507214485540076506007342441905005200211273754357768760915401151660769370618775002282574431296420476513670459358894658759522786965006890779626913790291567254637327701078725057573141293591015860267110853039471538402764158293421459594461761942771225652981704873570401844561150377784880787409868420254261183897652602579206549298561193184668992212710111662344088683150756091269959266346875730326778508338164895057379563688772144584285763049130668842943709506134195849594529147696513556403548645077349608194477544063757080645086276125513108708864043238598928064902013659531814763733275226043297160187490120243200903312279529017238483362839440445751569322308718705331529913855233233864052280214994503401785167554944118376736755922448064526203975844126449842238297946755289957371140975752708226840788708769261578453414979690467957718750913567052596219173781869526624494654363326259713812635560459593158544833483836210359816337763888311896340349726324173274336432811914177851874074852649824279696595592448639520970785702120188926048756967401171258177014958884404477157144577976353105025444053297584387419567109476439334197871442740634041102979140436759610415482496186111570519356753797518386763717581592355044060137402825783532072729951993825498256712680310204516160160705460365349217219441696558160040715356751738551822112153142450518232408280209133964813621553904336632653017953674316126642914762426796936525668556124313683256601865242694618108326002852009464768036905154034365115503901334868998553533009685567575960932392786093206705248607014197357877390686489473532380469813047294492048778292155573394816324277192666087177760216625388268470779808751385495857514200534354694051846248929820240613978581048976437318168571486516208807184791091540085921671390210709399758088186935349055159194633012974158725111376810038044777850408840850192884051945227817180314232294231890624369502324191094728234401132753015736834417057849844311661145949838530570709647327690582710338362012081656576549848674167666460565204819814147437521483329320343028409990812276941917330369535540375088258339886675431542066770101566648702836694043592597943960766392551014364428631456855315128418991560891396040579458796815533367824733445466610093891155718256543674331225305895012109315500246200424321997158850389284764966695641546683488831631991134302624748369240842137364265105484516692304242762566485303971735290374076721644588866763828175935379697457651643443808135284710250171660167689516362150899483785260633100164655756715256975381100644558968462243723932056359746376129515359038658358168173907954909184531458814058669938955165150519790779607085525803588637374785125245599348808108215149522208230459848193625823650962088354358854167664823575579807822845739094089889883415350503742151547758287637893886347999438862236282735248494634281414351379751082602438561253533790775488334505690527334188813494311315885583012503011145696839021121279142804329506836212026204613962446875453323312195360985536652808411229923760760882290412750739703618098698021399500224129437614785189336608058003366747580105187978273196991071004237856829007516177541894466864055629017290673073495642534853287264801520273219661626044764072613530167572501360402564148414628522427220842738844295949099571842142688240977150014014701690032374175349880871605363113516053764840515589849081669222161898846465248578230021371304059969325070937202123627015294750710873816522713862984166922762544089273381526364266974477166314265081661754158087347451573131865576208499761045313407295378490241214854744428616866032373396326714852242168574923780905155812618861753720604331248288548708466828693795127395397962965718267308704290987779620995119929750235433048675731458822002255263725900412398491520466560694724320571859258329979607509065698495555117788792737746854726027737937382562115379804267401139869623187712172019598863169536959081792501896059262336271694512853353974994250320241893999353862180828917590696912276861925268582594146439339671370852547163956796730709012287140689542690641253387340654252218221030019475701971813061600446306469517685448692890726466639608366655280027966813226818265225666609545706984927485083757792047736123542478629685535015506819573517084070363361255562626931088690648976249272195729684263386307682081542383151250238529239124035189391224564843565057839389402836228085746450179776481382582925317860009246577182319766438069744156427485284405091444089716722267822699333825962605358450285888970076580222883363513564624757146218681660826144010094288579067047591362979189242048700523823209558301458933982633017962358585207066107489160417081980295716508473299853873123445769357317640657977447922871972178306574229295310351036771270265891987413532876640686744772066597382147679979409747247374871808220809338108537974683714534173647651957918556031109860279744558568385051336121614326635797378516082273283783354884869225427533964056916121038991985885243810309536431572778131316860818257233275447898584456789260435309761061668023704865794770830170059448405176057787247507183959041820655393474049561735694085607113747343664242654215247357407388378753436999054813113017495041559633642849199286849536868874455941818769055533969556485173662047218045167250170008389177764405763963108798596275179786517406179393274902286605643352321908384551802476163081065041979778498923080331015773273483003018915304659997955478569095348442085283637190369705635680239840632152585633513944170467448041002815020555380906560624775099964397153209821503446913071021194284672283384892380744988444696796185223217231623707901514533652929897692677675821733970252615847516653671511082186604091652674339858275989888420354471346188458920207032431581210803852372923553250847021476163622457547955760387565418207293001107790520303610474548636609908361471272084308458938386712550584292087120865949419561577598989782888979494638711995742624426259702187187671512574077031851804615160386733217944665743564005842274934693541450971708865601300938235352156646332057226889766781357458752188822698017856000807821309693664006222585001417325229859014905282567327429992528232854285913358330256312624812150963302826680276520220781480263167133877856054448305599921654897500872181559460518618489283054571163796215750417650547090001786995760277426087914143066233059188988546728246147308406800942987171466651177889152233303380595471577504143579301282998482624068488123025983712949428224262016299438910985452920068794442550401406232591503974974989892482100606752378735216151109354953226685459784389824855778467156093806555778352213862958540216649033868245576020984057714041629189564145252278300275614781674858358163516524640396433509898698168778068955601737706377431359942684634153525857655266421381902614276093517233021381487437985460897371571734758016438002094636935283950121228383499701528675970662404252402870395436476139116185836235699074182114850061740459145328158215396721633502798974303497093496476710253299509785933777572720710555993248989681035040386388513764572156055143356862385432157161436889354316904686382108407168543564836488635832174398497807027115638594721773026187915537479347396373662041413433410012747584943814511171361191756298514447045145015820342150416154525369651609886305283971875494247869282925676929798044755823968448498745685533139342587044022360787364637754299522659587589569142622073814022747911555891827839245574282290707575390712581339123863946853941880945708684917196766356365763150918880359474669018186730216049210691987387542778120757179436114757407633432816440248820029510035479387895678432224362157329262649174500832069217547110646757989868382246187285280357964989471875357868194793606532824241332200580622886896811247742912848189748090284924323060438728522611603296816301695278243083754721837514976227952054868141408182175755691368840797853157944721666078801149692213706129021117566269056073662966371065562651027322823249328712206737233870178553556219973008751463440243084137175292396710112019314498470650627750100799137033496963474707595373537309015571786181632839013235965679153257923641985517647515888791469709492078603539180850818956245361349578368882997182254944417109322782366701753563748551846349290741800574859912063225221329168745534114961642317663858879208805740400418070306408879398798716115595489048317614962450465297327903151090780142801740237318971592583688115603792380229903337732388810127706322695477360250845756901826361044463826323799239139414878002214570106186308889235660287855955926557823371075521042427067745362159066304300026332410097718794414387349292300888751062750178765778742868273120824870147686762696416096028127204198810056213850926967306481191164249100435903267103432398095973800723196574747936556204532215403557070249344183626927248037859210358341481393421918150069524972299305967340611921707662181338171899132700762468758167768680392443188473679210000532100851900017368578820429745692049888162325167173981806483885541705379900900303989238549526223235639843978449964095913593932281354094495507196965206800882386535286047390243390111480759466318188777204717823225608577312183438223834797633178614277395903607353607564851855243368869814819902299271031881425838728266858057553135746688323271373378598092723309632757655498723430681353567969325244488255330331374137172284151316292951355760780930386825198724774877270415967396501325188687334043428553977574727179579947682403484537214397523969649144306914494446770518359182052991710007014235003996957671453254727757016605001657013834438876630931395656810751699294101261776538385562907883729435241485119023127024950394976616724602244996498291538393077285661228627662245421155449868690634941088780220407753196035333676933193576155464733080547978823789203240711279340906373272231058298014885336469917614411874154393171949736408832841074057819624151904651015354714404539229803865695582656256821776530091777010834420472663690383125408265413148228715316685759433781700860317310934950035778327713487913194688104702989003199700055219751441832605025139436737446977289980028219184453090432668029150881369000633528521993486576062481800354186629622133847669627545468325028906840554877210788063811214384632257811061389822656304886302202970793571582292331441751450587514197597402318231697722582923112530178315289757643561810253306992394686779134555057189475189036360304545464574444787800590859692356477224179644175349508531674603675067966419307895581114407346006763692643566013553491292404637507294232868468907886930435863372721414913779470468445844690993388651304091826229813891733617747896080887783938097116625721803528354214602509840676370448971962534376719299362043384338273849570638780859485213113214395626948732529661428447302135203891167670624803643461136382871898479707813656411938350085340390089719136411894255141890797003770291257499360368804292186960176699619443557530708709979925710485412727444768320057505544194207111635451888315163447975719489954057807002076765455761624396723381018903140242971303634786646352878716494809133297659717811925960184209427587009999848614327546462582060841177343328730434477971245995121860520495740449126574288669620646171356611460634463961287680778507898770628651620170459077542485632575715199670511632166555888808300706750148252451827734248272797325943873406030246415916499205015788793712102900575323872147949683673481875023736693274326548974467489160675639994642648087007096969963197305012101947347981965310905927947910534118332278715096580666132603235329077943622412418388359014324525760139651949342388021169757668240889630358199983665042223863813031836392797009312129306358049235357496373308630447835311017622559873802060709482958210451228265628928232104678474192070095359804176604040611425202099555293171207281851177173834208239030919475483191978401250772396975221040839926394741265486459415896718662972389661644914056665793687775687623825363210540188521976962986992613440738446480358359027216579743092164880105360025695384505815184580464060241639389695159290169251073209189313529974510164784777593095933549410334901171605110940968661544319129915898017268457065041442256138066438688374615177120171248550882517238341600626288172611520475744781010007879551145457918903601473781059779184400411994099367295571153558094329636701843774160992027067070871433802486222661237256979735289188291865024770510444060836286292374853770539756243098005523278142159615147908635336177885320299134935789517415989404169695903342707175872545188554666868490783502084800930361558723595658250708587059204693989191329039216065474810121262808962884520614605727779298223339346264187893556215245517178522297309399429804398356670184485049187387752612947970368309998012573607233431606063942027486246577385817349987599886965618140750213052716510349044425812822696879952759974696659221486253781218675931707625994645583889967502549697549882782892944407020255800889876183156803754668516541391621480940179512517508979228943414335884245782471240614395573565810803900581077149287799996821458154045042910022622426255807712099100425699683308018501783841511154508208362508109319590104335688783953592679311587664676248947702606914159933092182550088884668476969810214217291256767316574582754046487029519774485033608541054567937348555072835742834293780397986400635125175383375785496801059323531231280996957469167273715433450438245007282957142435309226365122390758964077098274934551332405354626937316384561624873817624904813426965172890446631069211641694510465440853418028996577296590730221664680691540087082801624144717439883656383571176808038672339280062028167291496597440633591918233098665632050696406984887550377254705395957877004078689118693899797962487178703035946146072116659221025685847944665902704763356749632092456891583394663285413310324212957146945696439982216633209483344828061700100742597209569790570936227960008103605535332022244439267588678427009698550191324110921357530551694370203412033548165010580917650040225706525713519640157423138747124164061461126741437342296641372979354058981006856225017558075273882116725675574430553106330218934173451395892705937830011893958702686237676746576277390009054637209709453109630990116613062420630958268498643919798377718302328117500086442713040184422673348399729601388480529702983312664266757342790413141168768124921940759698803074227351922388957311408055057965975170622591116714426467787135544956258956133377260232184440765973528676659607205189682874546671097429796647374861601412903860820135414551551171090229412572121503362805166452880686620390368594368945004248854709390234226678537740716861771565322778952174107178009472342754862848028413750747387978464089603524203072356656140801531607172908664528206429092613023502310005863673113081592402521241193550852496810106470292644281654182220406498664197326788799032595298793936039134934356681943421427847540975588751777112052029286669570220985962228030261211077840746599829306624793788107269086707107165221413845248069426965785137285780059232079893732231234666194458880877068145383096144976122876226773405709256319243030011766104759200471402510255118000908935706346065261270294803787809284272483134236526210113666744910134798620143672090339132256286781773187509167414171883979666164503078309580530167224790096488185510394060420871057572399292718858911523472885617126236970232882420870196999374931953701614706303975204913512121261726447676645687601854743087743289089721151837851170791204417036060623665694267002996870191458324947456191717836907654101430491672624492003181209122320435806914733064210842067346583390260930081695518170740142977574499408266817924055280977606250702045809912761831579500071425942265057811297212596479400961843011486015858131714930360539200864163655327850737598994092386075492730700001091867728487769868814844705124479883861333452757350053308202485007022684346704816975323780961411769664235064456806672233095043024541415178506029561533374091963234647339855711425794799192191304572207912365270873792270700201212042398395358777756580124843115058331497635063461156387750667410930952816586325076128136176296245932736934398835495670695380922276491251302144985545913372961170166982722092843603864438689056635651939156678066622494102164069232917208976177174819542247865989303768881635606667692480876833404405790786858394743398595442006527421271418108597636735529413504590470685189174594434793917640425238648170609625852777675132951589679809701228084059310337754659955070606564027122590954496296391011662517104697268850647684075406775070735563219651676596054228427418252215830359902106031101884604076481378056330892285494678983573891412088243014454055814137036945938605508460573517837709726324324683335330306449731456193404463863330441352874423136670570117448996887989071404447121739141924250457416261384324062655958465974773057020270652653549665918140931631490248583637094400537149049319842485325142642117064812054239234368771714998202539746718432914518392917766618356211890675732689844634918266201948049816243750679258347838908456814719707528884233569905444995933643294584022055249841973301471160279349602990827947590864060235922371903396492791205742398382043142276284805446549719084543355959379971363987728725697273168601806374746249843229255095034097984440573270210505595280137782750482875285107849502558732929024127471969214637681181784444798584065818684990788475208436081628943681956080703798738894201574677286428274735663465530449534420479581218583651949962826413078801718560904245931462213192595511467156466907925270354609782474735869228295462524923095053690474784346694162955928371225324989851104411006245685980111655488297945308615269135337837000518375684305041708744127976579112819422589492827489831076406728362720212217012161088803435798413701321001895540551008230806945912477625490162980760846360938633460848922756768846370710608112966026240141465653331753395364157844545564478479956077612244480116561228487277966158943982475579309637229564385306686561047278386165623655726136984180375755112247601969427436117097971693508922077216599214525607188034605567643750743890620849620066251482629546184441951593555993914985847910397873237096064107737496647836233374744353501737720215334214625144965028231409053283645078767300192812419783795558595443558524422260529968683926182749319265670783173636397713142826249963095959536467133944791498767737388692906845951775134339735053600363447082444149662520861257452462051354699342917359776779147828088384947078414684505884618747135164137920935191196629202152584667334770716884736877039342267391878009196771032604183856949694186357069517969159818625325336583782927281752770349250599379565952008784231731408347489285807958531874149364874678956071506795942390045678304194154626289911190654427335570772024141970437776242960317992892805088653835476107618678134051554033116881999386655105876025934848130674735511817370858982312284212500265686057792064075050327334013910242027592242855285939073052982144157859367155627023982386045967903496268676631840597271328975743469805005436659334757873327220000632669793683036586423785368649797440436977788801147037071558331392952695696701636110665905013121184012411160291455861998094218909896392417786102682766968359764230238473843506494336586324301750982418259377770359185464051096309769408459094871475399896842768463644525026501364971907662295343917023168082659467913320394428139365556172078062426316783527604805512779607027269386354747035468117545179795070817411710173370327184689602073329526922103333902739678052834321033000762875667059790962900190313288367680864684498855601815614329157848556566002688315029231523287929386698984994202662349276476088448090345298485217969199667042009639444845189505230493851596120166994295093588846588471708394280892321445467999753604393307480430801976776013673778930694434300296501531956144906658051303125599580751946954794378040259376079107252927801073549803905233624100326269124050055154641982255426032416205544523156604271606884717915614106930069483826094434953231165745641066640940751266868392603306706975612917004814451960322145297261515677530656473208979927890893366467132408606998754034552305577498133445552654007852800196683435010613556240919162283215605268402564324981540667089242453361751900879106994594982375112443738595168274645897114561214137656590070856366949859505432134273262089055561440779570048328722897096823059154562892654066459062022387326965891298852628123626888731071478341742039003553269972314370513133899059033972448689635024374401773658346623333562295780918472295631904313283059403466765115486974331045742979098414177365808140353717007139561455097108847124755142963678648514578143387496697747726906802645886872573119606770106484599339543473897744531024689959010526756449834561462540005924803033276440042935014350424441484889815386957070734264724656652455344132806797995523048211970009891314486570370544252073229764400519077624959581153127349697481772390384080885161917185106607490250126260724961702297392488384028047523622731885354199627801620005023631904627802158521315984031050696568298951619685139074554530241778838586056839481211818254978856974279820271020917355906938130669241197987316209522552768020881365474635956547215103702242643584588647217436363040768973879287792927964385206100680713412395552571508919075778291278216324339543360402491202100658971633179182756115796173732044643265903831459475909215199974958390663940063466735950254404837259243531064490133652647374087789916508480215879052647897436659087389947384757040200493490371364709436070039451842318194179784695207037661813667239245826138767218446250828568273222388758095395539880647341226206686822192112084307546448002683348948446139666648534659930426481585201130467272580542256325555103932094468710541371987832280967542123258954427228173532428222334278823638777163280041610469323008955158188581737403721740913790075607145432255811549658251253426662426217752156400176663226302857896902179818737292199718045494172969386105540340823783496132991574478065707589975597473258469939899599692339372212334891701936700429319506669421710058363983013518511379189893473687483001228275722778589926243977928502030010228043700926191519170026067815726307158581932488601741912788665846426669055449026409074311979499274966499217442269819283344636085175196636962646950642157850524234275813407209255161702126193956337359972677546256463096237000303308493016781915737403266462274516185385275588726113084624008696355474127743559234825380492731137937193380108418744934998962454893197671567294203225216849475409217282405620539372908412493386558960386366499035489873182937229120830548500569392701593811860298053550120999786829058045281450208131277380050129736398425186363652872897051330875578530997321141201605045656824797795369067680294860581139191691170839967926192143733379397675448629850494442609628237472712155972685240764712580905023500065413909206601524050134441885733256536957142641257478737378022622411050121746469241355813346648173518284322071653263118493698686950417771569508986467029407423832986111740004737100890576398893075780369382734733341091416148253358712831315041597194631225863416387046005720079142133034655357165522700531881489029510967539628354257105885017829608673436826570584060495812665811465484741003217606233892919695273238430429316723151922518929443703961651285083309566804259502062442467973848830163646514097724558105385568426378056743729593469898072379116090766620505679541431577331119411442134803551750295226018598183234361848773708409846312205277095583367256128344972679680987949985596467584330298472441196941995339820890613294723377057317186412922593240766522416343659625066600014554816731117355902706513534503965210703543436692770954057067429815820740848728779203484834641976403057710547355510740840522668712852946416072694897638976250857075963863600971854933381531327742208531707601918956917513768426595493321216263947992255326632167985350474684395512367427272543477825742143566010986680557047820878862871169152246257817077012055569901639560884561404410050126309771208556477125861877749075282133275951601343502860132969587482932743060220569423358434285062417230737722524388351091207234481819560473089386753178010923143366510831305266960967000984600715357354466945247654679121865053990920017423077839606780080076792410968637705533816113038815030071888857604127311222442692114640469168478222338596099138895405738248469310183901707644642621047703783083788376473564627253378829201617432043839971604366274150446006087078823749341384914444259705288478282767998456153051728339724282490047771931507783623875267786099597118538158124782622481959624066642362368683152199310591347351363907519423252487058816084478815100033717762493263272327513373458974840233804433746241574241460101161730566480690301850916520337402028120124089813086428778789211925999932323120627225076147326341170478325141227697159019599284478120551051512259927290264914460263514883636061633685970352056534154534136455079197074558317322510402315602030555972447696674587436116391495298210319825470136307452324616759035855844699096994938907886807333457741298762568017373961862592904263767743599314874181972750912546801056900808057865698376355134360787843127002370444031104879632075105461572863801279011878035654856817549932255714258916478371797943639498407222662955789411254417328752545781789890624806252758723515215403357272452475511664266028116807746926219228583651191580635880788431403253021887784671648873607814553311086855598146442280145586932124336745119515292569950334357746021667609314155090678288851514540322499013281992967368343453222872873192448835168312076052422860867225180749183959767528795211422983928845017778482345677163446535707493352947296715779305099166735776208996265022108780272991520840772821408710419229907648308654754328175812626689135384155168428396539727462550787603020324178363509171792998214779715858390293149830545612995463149586690343527796553073257744500391362712228109439847445222312770812816770496343707187255050257475849376791427106852420487067730518833087364064378224003405219877963052367993662031923943317361814376769772193700126551122968394518841417465406068209989147404159886725926951117004910911977367704118753437783227967667505059131130152501463562590536728305426878366595659109006041603026544299960365276416192639209424332564779481046252515935730017141644825825775004813667163414189071785372533543866338010913451483046092510944896695952835392506314761518466561971562537607273808189056589113292146668488535588925211622330526743841887271106069933069020910881718031334323316547008996992669925261779228628321360761562856047255499395462432957743775486907487469369894924460927610179186590956992198288349059496095066280800023083892844522594151979202859508280114879354837374889857699319186089661654608511760177646804528726335933566289082937695035405869549189569132747123963026870839904348995105364339737063624372359069030044757209268207697170407965151237156828575387987262840434639612900854533100403915734902262030290118982015588679772217921719623945417774243614752213243586130707277561602228166366581650020231813406462219403113395716139100753103913930967783110213928877328347028679406372825403679539217820137216368127291516848802354089449086122222122092734822434291326589326095743923438645740293908061379276718032479313336177847999602360178649278478428015545256239399084899856550224312679770193623297151368261248405502484698203742814933872383843585118450648149700881772900042956933531768877223151715697115460613276467212333065065859957140473599366943715759994145502367597311838978253384830711451030111776415446872525432394937817691578290124810645207555015729754587178235477932752044466668412836391619925366165277497607591100756292651028948263650848662008822440468661283759320198972043232465958367691149020465653923442138601107887190672395576802865530424775063548761100658495116168371942846407054787168826873142521190983085562169160720098761592503111608061224998431959819105276597072509823493629152019388567859487761968135587076654916091773699020558755676550605919860584416993655157957114823809648028935625696860816480019079644521241059944551248293389275044706328681498626737484989999367393897210984093516648039311670773590427820113637671360878015239451292818788840177848715868877639919587255221457406369784001162122316934318390036621087541356778815161767718420199786094324098129298195676250992382585426205912596018599164776826631838355599684988556521713672309901181991310310157652412290661686098004184176001964342650012160647209592458730813516218092931387270009215853446649469813174438114717127804120541486146408967826327632717817012584324467410900228152042426656037577644860622317601860839387280731970688931209497115854252388662919868666629255915119022418301325155412142993957789313590523296533457059514500135805008041497593156354325236136739654891268321622414505298137723800208192189336647678828695492158448061826476443118504085064736618231727919630416775480161403368145694459481827593450239813456925937217751732195170011373427233074558576297051256146909065423743945975902187215249075664741505535480280314407191720798106399734395767052727261651902272717746298492580437327163986706795966974526627967418926222545991159322432459624203559643038353839130166752029658661467582210085382583555815238014598462578611705767685017251787094476405341490256610653863966831544275031708492061414418090026058889626381277262638869131905692562900388283344222141366806634518138119061754690984397771630528968940896830138507692646785436043549132954746739224654535206685292129844641456707095831502829530096960314578561627632333893900221723011874983181524503078152722501526230207695992834363777609825227939017182770106645662170778348541606628899857671919530337582414546286769417711034994509121003147196678796490706092617659606681118464411894575314888257967113329855021120881355693459498680175029004437277153806548060976555050716122347749853906384895192464880878655545464846165377509317345011509261151882522668553319683671576445571224346769741325390977532830155819997604799093199990062102847267676327970573833981982952114181894250235021546308084651249268525846294909063187798180876484915928269388199891256712521848640925044143263544083296208827642447380650309812598732231124596699503123313692947531811452486000499700945734052110809728897423557102813728878553626141314928845590445883266442578076400313240402033234944197254738116616720605500502963983445978790444847687449632407653330287376815764743371289407023281881889787565984202502887226011454796569504669304945125751574036486553107798006397007715861524542256921583297273780513922928960008813991118908444987270711668709798743973486301522931489301982172149807530560166980160175976215530726919593214374256681936752605143552080834943298454699016693466468098989923053156423711695814877493890909198447781914475932445902846023804089308911980356658944371434294531265481898615999594703032245365795558456159317203292387212492752287444176648905090765780259323204144111796437154501418382727009813027473383491572780421330716126309667654584273665091145326950994570016499214788060604806879315152346576199491612721990444268389572521455215253003148535228837297579100676668879417816383278826409524500391743117806122631919595880867882410084132301632182191030551659205235638598075229371640665584470430726469724946609019879175779557425503137558276223565364974680354283193908610309683376195369245637943448184963531469748800960660749636978242135483380639027617066141429931166266202687339491912160111718670711433188170868466173203935884256947412533853769487978404415877311296955296929697025461297918184281638419077045672377084645493751404467370694534795802333992335072521129277738194582840008110743108827564199255581343022860740843414672241643464338861465028847979443192859561164399323782512532218298839568535015625483907872939720795633011746879080393329831634298543269968179669204816691712181133359676052806203439390632991368651950111446871942858514363102072843241356052829773000387819780075605654733665574530329087632041026457027135348376642723334224565336940709601594869775569105791465502899281316407451907726480294037194241355456141753576029354983025635591674265387467205429129617377074887325566568417005812986650789197413024182659458796510225076276956353117935563992436920814645218978971908570799679643545803777516416944612511779296136041035089933372511405290829437209116724328684621866800219619452080629580708432714193913188884516784159915120405248043199536386266672019007233177485307027681443133641937406485210958218399511028653396316750377181154443576610783834339228284978019333209498453896284968537293876222684075900158099352491294068592967795170893146317426868981126664045985430349791663965551900810848508308756775258481036650710796596090707604654224613303183410268972698418894886626563824111800171463880085074975932442374574509230491252686307721690071952124635207458072418457869114602807016425036574189064310828962743139615040759113299022060372742510764190976600616262753509026956475497426634168819236400932834676906040502261857961749914042256582256833631244438252668844917394326510505854834628290760449686839459091390899854770579516234926086585166398399463541005086867930068210680942912086009877170262689945218354251792263304472497834542447724092357666840834681220982824432654467790889080128959563188533327350660714117040907453850462052427564695318924359008354595536750669308484154538980021978636650016025271384774307441668436637897784947768019480811417962180761556419481169358089284281169525350796600907369244840633934875827154816364132816388852247098327595941303657544753732814775156931935418782321557847061085048475688941195312689241043952698231171496900722681060568628285566636660055355335302460433062334246663041173522026718419931944714126432589796515337571515072834181068085329615317683570091857771366678864387050919109032286826321609041612146658691724911439677161307433090362925367692291591777120143749297320536624735114681472122831947259103777841482168925330550047706606057652318987474241408340161180038010031631673332463311221995375466279429569017718402804392857459415357430356697644701478188877027106865445677056052959432349790468123980778233475831742458452594929580479035236416633221738980856278286728384635625811999455882351465530390640693122023091476173452629818722872790301513423826775431157826727419470548174994589622690571911120189863081557506972609643276968731348301450805494464731254018054770116791506467459271177008988604720242134194608045349366921365766138462950133267894036969165139831532726993126054042534811986258928256641317365436796368070746912765447811283119098750248311701225848863779495180603330061772889011492471336714744596796156668298801268334279854282314462054984582952602249720674457610135636455204360089529625494989229396548744048254137054675687818537396483334827045101184799667575174179419134692451056718537273896896877324259148404726805179948855240288604903017874779434562646586082641230809748521057548024218196151384977588697579076576097006611056439363599473733577988612664381849490065784804390613868267991143774199900367369435363538292222133364611619546365092661129994385230556654862160215691774000949813910819442603815829114073922575519277810780240827750631029434892912047736143090628896094295557351903400423098314690190156813628805460839071602638047747742689018721973747065579694925594081549809954908082436932753895772348832017679225910009935580706411738550452766042814857144412642314657009964834289526983123612576017154495740039541677078851450286639985776454905208722880738538598398963977622473082185148679867635152105884042208388198283912618871221167758073038673753072508749776681022963594214511504039506058139689470805707090426934877751176678119412238430130821440448696095961443018102359249944506304448596861419283625422722909094902631895508325454890114121336576828813164989912477088460263735801005039889582610066746094530970358643350046723882038356291762243586932344063192409180820656886202426837910109958333266389781270848849062088887955516316020974828144155040162564403741881299353468715481324101259126520727174672891158845214430192165978917124618189574529287013986486153693265117432332546158292162630174916199409190981330550752084445219324500915024580899519125100973164747713227781868842648573212584866355721939916882258244279117750888771793250315952386121860611591659061458105422040227402096720525327155491458391543073597258057753794897950804951049149960252738048565551326216681822742813217655014147048955646493962534235265097425005771033977407102000707584734375439685738764813845505641460275605648768688184093124578881298252398946674785347849091635345622089540664070194167323216639329659367613200850290499872879272507019392675335514837410937700837186241284353924453073930687742282372647071913935753824577217742483271251617441218119618298542613306791022738781322152287616600307432801894416775267532638377467893394983315112368911163983716275528185900839606178155593121044291118237418242065608926235224373345147059828517138012727856822287031150729839495730088368543009908016329469029179893941674242657938201305069432820867405322037597836122525724113245770271243267431082819326512335193912350048770538825677234587700993412080744128331727000097053540815706042465839382355514052898534464479721134288782552226224592292109184113450458877620294206169941400541897662974348841540339035732564910586664677478935753430777163469260024899320550181046930926854915429410365757471803911559641552528732407559537098647806417204737870125056565190780840369219377833161791086125509884313763244407579062067111241101650164658576537586547544099171613551957123608700093063876332303727212555761408785633574530315023884550987040650039917005543242482766534384438355401925328827766794178066194684787821423585659968350827067342820828349586348809214583675903872524538787291023902434608661571230824159462892038715399202645220632400728610467138422549954593348732280848206187336283969887135570081426326579636522007961452833167630526761055374430225603064312734125241100344949184071312052255247368147095337603423405776831036145128823660037838309841687893667694332437715310946780049572687783789171368945935561851744791317934955024126258215646268873619044034347179634357601490559186258154529292607389497485345707637796254167877976498699723721964258375233839974241409012088022464186187238232607400588472320827217413673136912237983790109818645491385349850192210815863461115872281079714315573945000256168909266386124252176621541237560605174159066524401814695754996944697019988235021466148577286920394238556981945871968080047416764278084316330030276774704128966730107959938493545377866657481011103923563220953452269121532689816569411289608796931795667325836932842161271882013161080194149682267735400994605947494904854624504690586387977131525045866156235190016197561544266039029402069847956968524109720981626040897396162978906133779401916425641481908615257027839651986869436806397522539472386436906770343270844660663312066395174601295799613281674476242876339400692317944743399133035940384139612543624114096784405408495140387817886871551255121378162795084591177191464377364272583938137127189936431694454826178269580067587830266221517482640576616644330956946596500380134440542568724858686313821939251194896795158422215806745043073447155323261563316417072117653406320717666136113506072615445618573986129971843456961328531049216886195299029452973391065848163418709554125272295948091700008018024051749874557306869551706194585811635703799621270005286097085074551836112899469461758854348666263200916045550090489560630333302120555887267756211214196846618199725980515465779317954365516300019107644569995745400509710123938011013908922827417752703966717476913749202923512687479560289437109713989792282107638203238816722739372748166827396206302397240066850028084640042687595028405361785454277339208728265876901288815592881697824775909431063893477550794069449387892165952031701313329699465039956205236416301725338470829865612032340803728685294629614838938230687599725815401757476832850616062645894940815190660272713831218877485012135774293805290856783433614040943235222433837453688521423654040344632021152716472207918617259104815754733307084688461337687459156540989585245898619817570099640825347811968672763514061237677058431940592779131065165726058459680590056372986059995596191248969329226977833048000469545550922717270638244424203541601678645819839688940504127501352290118021851685877228978414702169789451732533903207644268294032578649236701272756064557778864106424836497465379881121746167996650533705885633861510420970378801243185582313154215999592820387052710094191013707557750428788895571436986591302420220818132439714518525839758021666702983715812199846218434578590018246489580911414457923879499915318491361478907336321711845562861938789257988760574497432226949390215733275666974190378605379032221139663894131920113784352225458126481071359088237311014201908427583159249631517701689427861788620159183306615915906652832895101629747851228259153455787461212329251215233192732797760761417492601394144925964940464192274637581012187845960893886274370463270920679614112547150756606413387232836899542327727611793921024863860385842782804159839843608264133313229909135446681738153068291796690122180056951919319416644135135888996111503064326498861547197514843324598614408198270285783948301438944301265529568708163867915598853927320424369976920281687010356097288870453283549382842734586760585257442557880505601492440333219930544035769702512034192455759767155740632367611804226360337874325393068137564417781351166684874353592340678422409701086034597943253506918596374765646386360265645021505292207731589901535878291820948734584917073133103642982459561291269373470310742075227819242757666208780175540852363087290600435572410256213556758933225533486945624064512505949690132862116247143420543982790788199706016316375369020928620379725017334099351844797018066413581339284707815601479923297653905890444894409023183403811495263621936670083394196562949280720929546934962059743461565800725631617098414171776179003271082546945764541232336872484025788867691761089633258319784324506410191611802969691407782066431928431536990355212837422898648796005054520029353287641695038951472746302043205295236124813526758416936624742534614370391453793991993241045951138983620885631331097783965477431390236628822384401217504828645233143487878456484313767636268694247942914382721441039649964170132041276493579026584468799763628804103424427664076433508367724970389508306292790912187591748052859380893887978531563313299383413871871138177023859208473505302136329851722661294508046123047891718255879991243401472481901469490751170158757756124747663651271352087696444764007131001421727527977146638521386163209187505825613624089333786207688334581162159708454832091212934608739151392143478313960901915181318776720632484419287626297314935495767939952996117174338551808706187735162525379366991994514177864567017944702014208575102636453062145641541321934094731558071046273229108182149451239025942426899078556338121276329442196956256718310184909366969692201246118998163342103560253867778262052511944811498191648275751426961293737629733514770231464162721861320137610236522116456780382133508134985039616583814734551105232252569781806873676873925132493847916840914535640585742634205180111351773730084473486677196442742050023878266671170346541022801139227983129006978642267663529540992099589743868749494452771407147580926173415268648665327768434100389261424360002053499700479830525071241018515527580939048229904790609715747754423501924283609383336478244276316350451577714577481986279441040185230019430465768105045471987825804474942653233698900223378657288138399786624177275707430329759890492058946165448206592730009113861656948369431969792408914838405170901668052548653125747271248713231276447431813007776887755126459919246779538341259925610414999750053927727239122896325227142976981753071215997070021711026779491314077246149748204485306490093757990836207477103594760754066225150823597305228741586220354780409365080944669371666071499773531064600279404434961098502735739019562516245866956365301556570166809934670827131132543549028918152994760104770431629626225937667306372638926830807696583629557434649710949350368551361206916157880153030788186375684157257297408247544888250963459082967446094598271121491791010111732874986962383894448272097470379028048850843124890545098315981079803028486811445694191058371136836336110896811047189044820384093532676567501220472985134906305528413289729119297317310409346342050472123109722465421952928924939342315143390192258367352033495763681522448402668868493895494321693940222782879799063214735473404689653898421183217071925528717713287785786924977046474015100423301780983483479485057081208323803251083701169941556634519595928884469949652616096614855076510246103842308250066110202811604631566829338558758859766874581466455473453159528349595845371329991887454294702172937256592189485410430439148106703715519348592402927226768914678545679923823685425075806847726700312539744102624244474010061399109053942644768703192109993667827407314015261838235082037581826563686424141661221678763755075199256437514744243040767004611356897781504626846264928809810878160748186718686077466793458570981477689935050325669787830995849268417098948129895326872001776335895726207185302687114078373252737365566414043145252107125717178591654098355728700369403017601788564404493581451401418557338044849663316559701444845458331344543740565907185387817461597917431846152693410245819281753450222261005260973078945298838991838101594242501979654530738499501865154852616824569256928071733050503823829996304448933781521988599716270401712190460224916922528804009079242938585966849563921799760541676030997426912264948379376941629468352387995925348552877040485398315216896939652081953087527969586247975277826116752011492315143704505502490190435466824769214818370268051542103029956616678015061280143828192958478775408620277744430172931090162233931847433312976756882583112946290972904752232301531348040882687660113887739603792162722756334241405486085156306763430530685800555921209826128345810013355794850367693292355937252667535037030775970848521123148090540388778094524024986117677682004918236596152945340649409245921223927459421629053209996817570958781226233848982230165066566752058375889317578264261131549633269050392029603341792872877524007768168034453860367377809144456626132171699123852898524187413278126930063303526391851814670819785930237310376094724920779832546627619916309161732715283715237296819835176307097039983145268863889596235700066217602095192312053482093493515726713261741413527066847046445124242465972237638792587395825425644726191052858849562197632744671708748255522772823248864671811145864533695216969072435158634618531369927382137755508073598888259641253227894045885304522417799843071340333129374413432204145337633333725583233064970845382162030635807667430868557380226267173084914440620048040611809782175242592774060117053353598915453761216914531127724333042427407919057086790763620233017800990273730027000267825616665572725024227165528439954537144831556695378598040949632067736961771696446234638085919897596315589627426373509398586118285417944996302344393715894357679163491867375348654028341119518788844639137279422633445458741801976963559753489822429160833450328515266161874361945427490668851930624808980844833464799556172858780462581375198740852878174826263520099943704016121928502080152032218141755035682864685769050408971365997444851791694264288780994844646763634336658612977545939265657883602875681157525066908090945123370264373033368642453499757070157833580732200178261288719967992237624261676876792131302342322574183944159722050140847737358829429273713652051388609718881023466995335277759082526679823742612675800484957994344077930797123932499869396449983794929849082058369135509019741731785423119181873604640693741096458346613033919535564008427161452899955532977574493464958319331001687859021076607048525381852635980717975448019587409995910580934462302263690415485114218569600593050383302715451206706865888171151101406463370827410410205997588697068956460056522703877806147311093407402239305128830532816968181085385560645617736380815235703763985430002113508335971957459600273687166414312342021943450406154438596483396692346332185338072440040244737772291764580530116135073061193956729380429426846387006726038705724233154531640822987723736589951561770421483784236825072739972168461718894493096813938970506973540087370567758178992547268124033961608919140922006987196537724737860926612088277520960032475091908392930019878481562542279945459705844372635328510871103147461474931188537503688702858336019096706162360381777792836853656656533395887506224082383474601154770447727006162808478709862081271172495391493427049333236793132675487628763306134253523947435935867885355643243946501936873534703747521567381624440535942790756459227758387993498374430725065711239051600017166531585346872066174962800851023318434548608485430379071262024617765057180291395177685280956619459548716971478583664195904440649879822730693210005662217241501476008038595451005450390408974930017429860514761671704149325280630980915018624891166394891116257903322739498852509346238935172269942525625999198012148132083938160044812595310160085870152783259256671856177858851468912627527923271515407423310471381599603080154113612534598461284433393792970677719537792244890823237749904995442402999514770124538815029311195130725515732379835642419935950003856132138589960810643748550949109972781359288017803699566485452660681982414083216563193274884344329967342179870256327835816018666433608197217199116951845011430220963462350055331469108598341637429666287839744744632675321702892800771590072776859373935515186652863355347766338212480805415646215566156242111233363040131070039067547669142984183358456103469077590995103800586544144070551835629296854041352340901857658049807655239283003083853308149180797163065208260152512591602341369714642311675139489930231311603761751879701590671906119064835351110508514418887622459383171132298566577072256346600668741575364988210377977338621281016132171439716054863751751789775984319095209940957304735522075884479780804893543944973817116389090685334907660820747484853477180665625620367547748358833108994239473703730584419364230973121246483532276496785144376206209280402768422288774143443792506336205441234976330331306546370509996979780297097298137293734740390185431110763419466898597512039597065247813213992094973634987411614991848722620664141954763745285047952354238923444323983584942192615720309011026467527406481345199733705747031315661975351371188570219095632308346620249213869786034852523076359301920342275188974014637939258230041198913188704059608371485582919219791944906251565553517653759270199642398656442773578112334955855421140800731059631936125704436621715158562348291613537266460788430257218441485470741143163249894814741921221325780696119705909371540885693989906408702213201774143628644366305357035360763412094536511487868662800874825053921495544108036222002557521823135505626740898522433313669836164963478316007476559983346720461993990574092336070623223103557023973760706210118470808665608183281872362631987144951271618999286644140829254137790344045171728821169530135692517909615553332268250627910101136108734554336200327585372863798119204709634469241993083782107875563057417382807117541798812340709144132710964658193064491851834221069530411173128938537160985406737553967590577342011471630142971722133415151466275059550355362780908754389773248100716580084046436199097302017472393903963092119941198474610133139268586709579490698610867890849347504011047681376211359772758412760201090821003116563321415910698497159482677509474981417902139613452568233943147810238304637436714812798122351267964251732949597387909785145529598292276085741244509457225060685164544268663815780125362065559993464092025044069910740607268069366608989280063009425908408252804310670423917462609574197601155201904469884825912432190923765692271674059521417133427497221538700123485024522312129475423038780394547961857816881726314445730914016175652701229677037855500111370513878699428766069435376336377296126661860614652960255357461627399427484050522829692566174956321899939436256930758456389478791507738086086449125311516919232203619809585170269270902153935026428401736624795986752766395287546189326826125411531974239588593972232127167461823235784857340203008023032623803131722627177214805526023111097468068558567364120820040324228481524648857233000492482765179006626259512791981368085076194163738589956817689084448958695592352339442122119611050296404439466720315077028575809364627369864248236518139394435628314257105038539098382426276602036497775249788157424668329030713936956393377668820069440875015502933653423241122967644477412225364038906144965826662133123973661669641840210686687492325616267161697007988248745613823180621236508956693197174667858713008244322606241223587844705827636528125595564562268169453869973504641761487631891793915929244660665406942603461623340442252789174410715313016201277109925615584075093738906818220558401882962282888113217871333929581857809005144030665581599443152037824985652825514459765098295569400772620488285243707358239586726428807272955346323613174201805175461023522274241578093934785697882927403113512161531402772623788129681042260231266893551135397200476304917052256394769720782218400260009216339592010942863520332723576763253954826121224491489923712843627698124244555269572497851534421268511348060976828212571771000515850273250559650448738177818949927568720367293914416299435524273377460647101247924119439474956700239146312894181919261397472319116851615326361777506836785292338072222699843865965166883583872003793458354477644857873885748034647089420181264482730715952835293817924594063256816064561912094706590836915636792331721587019024957982501618341621693276734233627404068491985746357921582529142028677573208996417190218246157221918354152225635698163191219440694019244527229821587957869911195694062021689983446320315871023490644476416324767811015673731619607366703834897211290553546966611194013522082038082507552126316676233556845447835608629198984616854683883449331042568439945377341569270330547451818129682407652729489678548497814075030836949388284028398493329387665513367788031716579943628872015547350809628907026110426079786925187173086259582771829366001135377838683357320088634136157938910567271696926890041681797068748856847876334903739164252236078506485413579837428945513251408055074726810768369613311908106960814687464603687334691948478901021990188653572537562616370928467659391011974345978015502677487424803087915851803840622050967075938763809973571324546871233125108272779754697446762273614661762056631183652154633970388933859127772816213639722046326269049184817215821946323096343896573125211243217669777382428429719090019716445743170965143445906596513273116743972344738176645960292115891406919776030423258246719977549083882024101681081186208137417695055385207407215058699452104502596113794807924040293673061540492691490797644803301799765187443521311329787541387925417807755923246048636822782182986004980475371984308247527498177654690520925672703485024605988433490070207768243495861843338192020464551154324746146178120314570091177225061834482920431198277234511885200778289375379834269999970045793295733892037189629756983819485438707097474692661807701327483438104746326197684641446671559030925656324483820389032543292404096993384468537179125478154797588362864698300266999066210070388838298700400758184162265941145013265326006525024444559452632548878365356911459861750187665065684600312993599152873808160655416938701168135478751421121326035988548761006503110845260280635588620148760692003955197368543898863901223821940172036598715181920329622088599450946331030185426586768629632683166535224450788225958282387443473235898206414235769656378798023976814490298911952205176836916069014440930117969806026566677796406794373348080868819017843762934261549875929721371938352563600087686749235748015774318090582683981514888061524956262792862988280913705120806448189199937825821899418837222811315293556336812123342012337312060294247820346078398800469763887437299827445408873161545257479654264380581216345219999284911684797204073246319040431506129518015370425629345590963669069549229619434482896385791634162364543625650385389117250433383419698032832025771337202161867248782098530512937132433729451270453952231625163401679857411403631943353013070331768321994412697501801170836009006511010282986615433615661621862566097052080013703371706287005569400053109559273241065394206448108739145659818329899002406420085586448062980118194091255407504672419569893065627743605227609987443767465102658149141337910175743770234823428464458903509821562646533016494250876051548461300124527856910398288298746444065430041512386634024876813373787412426339223788411941451298300287146084445566018871507435129792336171890482123811692661338758055943222013791155600160593605161441268996313896973578693016112293907613318570716598121478424379139240561948048434973126463732771883925572956841875630179501501120872262750954673012372284107054954482168195089695716551060452553379273296255522438432008478029626990215472872604701681813295822980615192085037889696510964878787628254265305675524277620128411644196950287833441164981146046728784512633327152618402453583594563384193342037106816568556834379262465350166745429019873456188365407312255684474475044164084751662478981994133613877162445983344977372650185623496035618457557610436658700082108732698523935836088602600681158595588272753199874146741640055612173761587904548121694549707987261823401748709110268702655536954352173870023093985516828036134215311054844708127053229906601622398380067899496064116173009374062099966393570082371313339683531062765829857808483380769196004438081801735672422608382372571703542625859187461982844507902556927533680847939928614689647020186677509275290505486620381489689543754840178104984963635299845203484922048197565858071351815677605745713325651964935788136084205881317531290015548449854632703189892486590310317009432642440811050016572317433722431246748751366627021788649264667427253318109703940952568292839682171424014210653038443777887202705972087025202940890379461904050860838390225085522111515833005669636281780404132132767035146251860375333448861808035902223010295418621046509631150479913992413845677789194544172152123531988625815515611676085912970076562192298555564889109404045391090198275336566524020839707103720979403111894191499136870181543478665901990164484898524957959288831885936220375787722163816043753927804656002591467701658505606328013286603813877471647468735726003833206940348410288139990197452442834626348659318389299603505011814402576200281935458312646506608485643463833179313700583133230761078445041870856553579806028431587233517566556323902247032986564727865659345918432076059196684427899767442720259422370692888254538341671696058671439748536264051046053250509212312525365990786135893219433163707179794328563077031701458187095932525383145006674138403172048726324891177774627967478927706610088140185626007454340107672133004125591529244171394317503038885392056921216035717400793221493234254455077505515719569695385873993505829159581204498779135271650417192367145720267877020632388993316409898067848808185615854268159096781409123469855031510931728912202923455445031737711606405528636345283182270037629685772572265384081052944074224208489208726343928668366017476517458857618204325752451589199434362755720450094219663705441360365585535837998851815948235439672082827913826421391814632458842913146768252634139892247573507636868911433470016931213502592929184170078718414222533996329377417624409737516335754649582860927270431802980262881767072433239679950548064184785308594194749829955582145343548386080302709464725517378504528271736116998732914673115683783747163381517516169188932783121180309505470507490092555559321365395409850822523317925863255558865963274941131025946347634884178989750785935514833089086024133465304006930815757128471368658699333208848005898071763533724176756599988183324803514168347628344767295320766969216595192776245628579605784896659989817583044372811658732188950236398202914193787226988938258567157411099207105014185401279893693306727574668528227102882295013307707075776515418535559256386757177291097545332376204108599684600100578851600856300660018244304012544719601452589926719885636232639852322882930519547030420278853528744990770249185457015083996076469896319270646119017603914727725115034419038351817616681119445379604711336541093924671081655377813809066166922864950415992487637819350965339543744666251502695917174326884824085830516711749051578668137610366154220490722161115239892637115766624568161703234666668919037959454781246391403018530844809725045805469635329906695190674492317729806857361035028299387285411227452312273704632881799237637433053816174051922089073381653414854033189443025722697363543511374269724994888814214634866214635566100646609553117981019889660283415585967748949177208480692668896872148651025944420859414887066538844182303700209489376480826629454270066896874457835146231003607024074946164156374790297740838596200674938110583456927851157745445608427018501985936083929731314593707184488052073307934210260676294116731493665658520984244405771947533025252719720924274048186479978170243635645084204869819252647406281757670662428354469891288297684081467495052864032233886636839892647423070441400485810694194230387360333650896382042684054617345159867627316162264197865243168760784783175402909765781714831314914106813146752927628598766650925650073518407902441490848476507153365806448858536221385429545204153986334393178617239204278754559429658872341005691150432213884712696796059842360254229221573059915687775746642416345246300800079945918546153497927527424105772331496665724667521769811262805372048543988014712064304244064937157340070059363270134647627739970066186869624864898129363689054728902045249761042623496264929531310519495062508832789623591618340763982834143462654169229539961008376346484430333231224830628928022552245290306116113868855747729620577102304450706263617440813277130663568238705212179666375077406423208278306387892868548027981296833067014916863159135989728393912486570826719504780702801841620285898103813651729569084471396045986215112869837503144056906398961825909148891291266524210454853990098540522707409572334565613983748601225679893797780619976596895008642007884226288508529652849396280572630377362147905759940648866032554066717474802910225036490202509989619818869437269910900238626593980262178484168124060149300529614277947675743694537281666235137926044479929868668349581656199827577695547375941324096292965271410966096893125885563660359620682447307854052729505039417845114464495939245757929488584115500576199203945628781203825081154519836215310388946062753264734134134766083405654815498928933830600931500924963804719956781006074633390138970501233573271715670826287562105644274905005994288075134799561678504980637068735564481427690577278980159729607064406043526600293109815534320553209618243542106683345843529935461871160238070608493930214832128302278174438587896938051617825813360489251488973847421483555291267411065623712259050397575437054421000216519131222304218232090504021728804806188468580339766214911118556543319440274298101102823842757011493893902653374205929644052746960848684647116484050432251694479676045738003863275416277841432476313621376192038811267304070526936404925265034103101525144292580687856830817874051686197803842624270314642024410653959832101389813706376949973519026229764081793460200829533807029068128858940296435241821526198246630289306130078006855776523647209311555140939276550645353822038941891983737999085431340523476953270625351346959802737799701197643153890904699673258457534723667263356891519171294890609028810011288840447332704024291153078664842031675807126638855145117979725818961465627517595646109174600401903177503330736044835426056487899830242271367897656239507465955468701352114847749000622923965966638506230800974318161154893271981917801277709509551510600658763259470259419946383369021474627453160925632570706775027386073717030161704505862539464329465813848667335489157245466401697600057277825836372191894992609508108533541058887404582305760627138691403471118004133109524046667878503546690520178670691403614640487461320022523562359823458786385148631512382144488894277965818028887399273443240981617123674914123012349126242010558419581786207313205560755499009979279337871037415098810503245396457812839832790166631815405955794221403362800738535945327828991512455459340992979655756604926064553022602347059506687915971515035679842762813846437195302688659594770244577764728756226164557576897660511915658428365141539051469780335757881633423143312182185365573804516231294854621943151157374997912281114111451972478284654916496259265746084917091856722190079335257763162624210016688704639586694819731762111623591016060969001454834560235595323808094563599315879745734568727858279267920197614906699119658402028135314438387713688754152019855122806059921172207129605259791042872950881936041519218872174435578896940393800552455948053771743956566091260845267909620190635351289659934391740222203431658109408503605263507092478369517326245170722985116649586712762152719036369022055117847987239794123516943559097445057820439196763271872427926245230079139870856908222401955642722320151356765282385189419892977834777120334266182947956626897386118003796878868369006927313985434331653251738757050047177224278590408706819221267022537452633284139588949053915031961284907894719259225192678652132715909960659244938270796868020076362359992205953331199675351621514717108005473429436386057725980853475647489898020881776371959622583083391141719127992724992037600338225712837893863516640664568997219348887240236812883722596290158537410986619416048014426602089738682564976986314640026537767557842156854180748725637644467705316372798949320543101716436578619523108047365391356132383622188773132562676556809860904078568225045075420666789483061256563063657454117628831124735618262550083960892013535084773761660610131351131064666860783406127922857834356566571498169237145265490607279380225451553154539351356836401963266515328428473178370045686361301121169692701911853993668582680726414653100260155138771731475115564370511819049505443308802281728891562870338248435178586283929874291122400995000956845562907146422895132380028254752119728598497916675202771587874283960294007375803526058165316848851601050480558936650254076100172190697208829015680745967966341580966333463697086972993787898757944942016276971328983289764796812068099381981778388341775243448452285204108722380383872356758244107607691053189383084994356652166650010625334703905033240279971410275360202774649060223828511025828880983271412207086898928972828586772636763679609042447215812967965007567993276340825310516478652657783023248822580103775766984178120654535110848760556937600768901065931999184433898052220591852462758444900192146307046787925246099791194997542414584625715273899988331957725035017028831301077322895701968582708326843333028029746171943854523823089471464813176989157374580751387493226129339625376862928546511280359339343548563294577534881231378586219312235670807513470050646400744104132655620792416006929387341699214520607710230743193378806643124317715846663739359520594750972781121498270108557821899604312562902668072755009616425420990293573458890624216127271668129543919878379883162978503173803945510164258592137831735415686142979774430010020533787239162163719218684513348691909592777339295676705862856425557410295845082501842933824573098238818941346843252565532675180854512631208239678493689678518695935859348874482258193085825161319380903170640014927099201729127632878522628715963294724081506103351859017612564283419925730897909200520421739384977171406745675681402171918402254466461585318117047651613485477997496626029735685399979809019779626516328062859578985265494672242353242165496281587474914983257604802607153615092601588494398160000379687370404212095622057663983931514711258207065340262322160843013095414067549687460040425346704562911082371708653638284758390002166962916625982930157337529959636223476413566175492304481030164338292727624965720054234675383599484901422374425302549955058250788989502325065578347649376901862997051660454273444562356423014258262640943334354303706247787427911507565481206356242770782594508810661276546266647617343596290432251768953371334446116964721429194837355805767850792016303769366435855818318083212308356836413056796982355150555328965161576703360935835293043728024049885882656966910097243352722273003142233394186960487294355023380482570453736069308886491575393425155352166199622844548607898993551708230132456983933978633010242772437115199672235357570915329384426214677185000690982898661358278424381989022578231263219864905038346990253831728691207556887263184616980835925494286462129778870558435373771109841387788005955818095460378878686688238298534072906006035824214597367665744880276392616585498153601251001387658283135383806487470720905470542357242941661484632402989935333362742217921757385113671877180205497585531394983803445141979519603454050780206540584084641519406054774458580850579207502361536812271530725497690971666334927150073722332016325510801958866426989457977172556524038345835346404997023204118832069760197524768982200417941684063875053304105469451117565702569363741967647884195880181898359766538766745003405105330664484597748966439106450858879927928169220933085381116483734273547144991872826808561473100878773082547647378413734081729536326668057157858226356096171421170902598522528749773794559821835390031868756927708192823499715522138579576580371624455602558055117719469060474503747319540693102654954226327655634893187462402866635571643071776926207603867233060866955411434488107604454791805702451829103985028910026414689879839683918699256880033175052486106783781326710670225768274537025807327268757153780255958734043273285591796870596816709349400320158149571872404902897004576480460410133500314922990809178637588678164321759045325972677132004389320281319912418830268288007070915662775540664204035980237719761335406871620164267096304889220900737626480845081157200626144365823689831977715900383672052727826352996126323277511595196317046582092186313026391501628552831179539693268570333403542026395663381011913749321744668138530927799129532825275410184596369834601873538449015051838587444548468467746850317156687121522805409042729474800474503343593070032404554837303871910153348385068360208803404727843003784432497262779401589675457565700421391498514393874773489449224126524420984073521241145149021102398598860478720896531473749414646477767442103704088863503404437425976562196262475987535674729852429669916789480796237369562683118353424247530977586236220980951401979439873727588038213361514171234360442057172360372335403527379641259001142305807978482226852278159467079747017861423507045711075321562766979585892963540262167944631798244429142098291477233126142081919438925714781986017202352369089281779272612278626277037664252693362793149938383254373489154542781312889348868379970068543534936280760822288513589149006740150723938815968936104256811831086531765839906986466652464555036986019640871787641862272982086367281378596273073640605136354573228104716883017564758660512388012642522458906410304234196588719703153240185855015175869566407086923158705787134351173212210212035533826008694245060749735145760573719408861530715490063701340540327735979806908455339397811477860259395396589478773229543449669873921325860237957999093410402042422420633430248177410484075920865592429759136133787632895679625836790601622940867662526134955488324599895945634697887561430442663762553210650274902774383027957828648885635742018840457828392814537736760382188692830233568550035423860898851016323484287741977379775616820545756849495023733476294234223804920587253908954784000480340842949029063345556487862074839838952578953172643215891569050711059479102701091490160538581089426725633572699618003534068820669659169411926445638379664035040883890612580167039848094543596977317901913917326286495138581773727179706615774929425872024251316445687221618865780994954378006505584870765217779832452820604008589543545453168426150363695144136024564256856109621269657324634159741304262744202197985516640381749148382598201805305799644928362212168248848654567403281914244596644128492309262191874121470812100235110149464016455439559057613013338760185919257467026351604258230093320875511238318428579243017804287385191889746026390017721438376074666019059032717891418580510154980404493012371847316664649181612693418600050171792592120400371836727828112920546756615684585950749640484278223242297925471356139603949634118111315058779274321496967477623046096159022566718326627624134576859576724678415707543028822064659652677086599752356952648023155831062948003986165778999571005817102291529302964045229462526662134195778967674046754930602573435858469370619885372827239431392253393485981858590558479347729330523207405370885224878151099394969878896750697139174656171776385710042765967217008740058160316182993513174200638933393747561390541401041889880231566818665833412669941528906377060591895113085215358405321172669801605855537368901662298452488847401336026973707352049288986666642113129752826680561400925123459435657869299638132933040999399790018495077871713950565659328259164027984815334856497382880450168251997454427482429974772429607052936407785254555592450284747820552923162466270569572319313146498678659927588148344310488221165253228319868026981426134489762065320512934673342003832558170524029579791256354030184353242616926194446820249320544058735512156615150420538422467674492110110849132243215731201418792194295554753544351363189557800655613214418078017624919525570111283751597586090410770709158842630891302184553612620783962938703299783159696241044732253735005217777516751561498113222376258224052729752528447071086374124746091244243906990449102880319205477062301763523702824819412191497868012129338729961026624626086268380790704185788774176459481769988456705403762497853329435385604361344909621595188489223408551240831240941203034740542628286919446925283568007884239032319045737781234604232429234448836914756319541932298855547426892917646292055928740669117307825451220232550700911087491550088775058436093596583789005307066076285508094403561852727582433241447338718719368539584960538219114711010444145943927995277588493319323206700050977525460868216187480194841715899416692037831678696014348508638600082445873607623865609443885542902521015024872411389978509113781966607170867185818443035125529017721558865676036190442137267221041391979854988684847023286397347925160296122519605807980823609157978402729301762078253060948964197205510925281600218075936411142247222579341103328200940518110311433851826973375066253508435448924168320865925360191967578660435861991260955241700313090395006050850753086406612045426731566959341246213270055519127745615075392336351463184896150739144815243318861277931600541319319684176203723459245784276502113220206504102681293361571012573783074410865113201846868729771881042122385860847619206754806816344493169764674802587662083143676248897146629525434078734773719708557458072697985863057425793640779998279763701595921773822716307040457212499944812890701547800425018667155720568489666423409662152675532352304980303246979787253965455222113784566231658537804225473624519922315399459808168829269782111094157209312528890687489852654738178074682897907954669111363661343712537721220980724573231067071492119222418622717589151809682452755568018540878797827391588406763244508342513238746224590983198143906512955662833869826027102531067202027427626264631216802087013299040153140068156845728645776626103249008323469458600866110432753010208672247671798091684282958019424546911327210663704315194315803527264391278289390003108813221075471530053733149458224540860989911375861379873939003329222056663471722894672526347949299425325356750215612597365133928708307971160450051066921669448747073364172340182648104350943857587367006696022437062776719078328525032671917918605737402728953523325822706078715478417944496352845753963212362765081208894365413229652628927253953164951848494684640096459375076749057865285256716095419138790650223156713385111017245504508128230621924322435063282214506296995675025220556093380644429598730487506554460334445665349386972649762771042506662922806257162826899214000018011281596451236852027173994981397717031310243739372621476877744322711257653234039422374326017308986296045002113361058348393891352408406600981478915101561584583737642518009988629824337345582938902025140136492213536207858947010925439753702078165679963353628149360906974976217446709985773486560824726673186356753848097146194019126731877312859020193028744145471559601477929727961876710906381668594893800674075379629831833565807414550656447658988203969710465533688985344112984376164856886353327288110036806515794028271603358433920251033666448957389377750054812478780538575368021858730505594317306036423532819473318767309203997782285842204633005558408799887202464168993274701517274657588361945900328440632145125894254552734073162983935769871944668736439419657025714207440578243401187618513160696416873264359270045791315527245116450475525024838999227441139428566594345469240598166736258633212103079186489131046398963483541091204811552392574635920608958304326391591919531197945603892674168030542648776359251831277338915324409588484604677218988201632751219633639222689049218270460156618334751743427110877558633702152222631628857307348483100872355756391079414298991631115630492418820465762295563863167743669164326472525525933478892625265634571329823589406904032412011136360778757279137299092072192124202472179939897640443243266428987553980533677591764785453834812473689734968961871572028343378978024047242202409362567371599571236020100238474498377412115612206566812070402312931696713257476428069635366503674880579633626935412343033366068152339957083519667377486855604921763734652058969913021264141195874460494746231729305371604133628707287909039175749529523365282903279060901644124784008645386024564485013764610721671925417128669609319734634548380352779059774347525555515481792314506700387351718656419842406569612603570821499575339895249894388037744224989367374847780526687763751045318319508072544305053868881244589472883567334151019392924908855819715103766826103606025876975127185302918097075814196175268627916455028177656149103546776288901343622657154936023144024112117757607660682379262444649547507139345626784476476372982595310584707364382629433747512576530975843509895451118870820133892992864841368331746881853265524562920104075520899871603566875927322544691620021236277644892671816211425953068249051789011394671297473133050618156198669000673345533479437276206963185341373648417272522360093785486126281525860715617026342889951904998717253370528270729837437033506812281332718842560334583262248138494604610574110395233516931548992075413557379169369243761391869521258803426554345374105095573522246030756566222721927883577930073483520165805171237214047296585155383148713454657410369710312586957103821225984965786706020999271016075276545238827135220473947844475331127080533964044596362066957249301007091043102744630572580868809402604026370653534271059543893212647968818761096872421690740126172629740372588923502224516077394975300324002101436057527966301610818449806691846278493211276843708272844753436660650821736570155691719833327973280630454402863535657201683430948924916382255597681252579217206241552749884056203993736175778103001998892052037281657339564953994844995203876650352401118151305573730455951459884374663026608874004721123235962426193193822544142677626759487324508530161279764949788489612013291597938517994610223646804151285802282112757679487427486712313559169656453932665827609354208582658059137357773768741705840792212290083075268643853660612864290348462011355133805044109146648963008099260209219747345212102318481089444515939100551365008545038428365716226808536135788886893822906930818343472879301312027622429474291585185257761702814641897016123397056624734091480676867626995531459351207452411722309936246679502189571810981137595494930976557191728853399062813177280668019937148130763690923017609987760383460634120237645529599067193793517522127360785470825230557744182924682613759389305558633004606734022575690040430346941760612253684249941881960352878907679330590296735932993785331179410477433017524552749161149252353034389366605335797903567965473957952843930873580778771543826170295382386802775787299050218299157559269260395597608692614414338329932650708890981628342495470831376825907169798981079708904919346318845382960153444185766636068676295332821378624618627223909545211589545776652847577600766025823559800787831070155819272512185255503348708849040812264608790081811556634856571137459199751135345219897322760793478314124545069938016712415437938239497830332404401426368877316917375180342963684237295266926272401822491782203658628646530953923912985125759134440107573687614159730044365330078733625745830653847245909623921874268498868717763320973564926155671230965901696139971994579297255978770004251186836997873318994695883630510466828376561385292099346519323074860023243510293323698956760161709051374326220993519550522792824290899166077183889596275989553482760367395853562163200396298825265586298241206905437809954749594320169094034837829605641046573133404708005291336815488009546400634904279655701132238195470238088847821968718475981168339007916401637399550818846554094995833265256187026628121016222963444302374397083848286503794605184523906112280210774756520404406296004784879956482211893849028945887463005298210214399456482555124405044273000585675545480720806767158089117778484640310241210159199681232848203546132827760395317276397262483686363087217247962650293878323576049835941300026887820788712670037139414111391362243872001316514001674666666471845682886478688423306829819598204674587881698871530316254394505348267697243513826135553513766753115737791542718897902191812725283633661733820180151325428460728724043271430530531993907724811766294694841317581533546378820722382151810345447908267984714198626442933040660674921983320013422880703057695743716178507668635885247466150842847360168562445550621549910464161915577954702770919859939911780495718994532983981454529171209735993488614403343793266354298787090246807941630471331976548866522082899817500688857692528667191236121965333246240626472019686168870479812689184556687041759424397753595967980825879700884189490083655816325092363010385264863549278201006535947973753839035634338977322383811140819848410724874548717348827152967743752999399309082293504285128972958673301948076156129304904051275674126579605308875198108167383366577402957742140814282417738440211986475453516058698322371199139126715125949380015089855365285538941579846527770200055418386697770051509715082777004407396010961010717450054755194165158393374190269890108471242548375196541624816568990027207804204086239161389343484545654290497159010219399332803861477728520723229473489193298165189427438612145572682504230855565464675802479190967253297460556453839556231415977838844129850027266440113570912966921201412498454433040665152027552841158322416461771331334196996966895726160627982214971981707730884096555569044075883001271754404138137231079309731490429278099806622079849756333748822261732080831646935567147803131157746417831085997414623294248212591596933399704296783143595217024129477784540576260362346718687102425843163607760153374612177497607349302450394390678288904508833812652957916779168032162479690065835451508891303565292887151740861912425937973878656268061999842744022537654654424808261622280463194386035258315111260489467261271329479718408972481349108248441917273902003857219271764379000389973335059069219464336405850058258268592474076384943675291451558621218304798116432868911820402121598170118467387078914088632456773898763654519717894577511074174015166656684550681436931171352290395347452998976443946665989728882925550494756116055828155498853060475591941387273315029892687527575954413135310476963029384477698658609108776415998157804760027841399306708033080471961685473953922620217851972284292627430346120844665409757514838740137154983103155222669310530934433593080682744012470890546220258680220544216189389211830431932689809257455532248655895300875667690308839340670188250179814739799433766769702306201289096012708233576429618840450866884606215846280663315369621563039390123535738726682716880655863096983782712813077399250697781718542457840725893236473985117189370761807615935888211964489323344587677175460759163086678406451945114302555573611515812769417569398031546142322684999088129254550755267194740495780026664880998234184511609865073335944673672354364495278724650724821247133548828970766759046273143963558087714623745280470051284284349519768540648595642372488022307990644004099234064683167888299736849156703671502117641610677832693168479811824936669751020354615952157490196128840441940474321223292456487679161304240584680117345291313616300488907117238514931194676866878850127000291489466629705023244556502033268035469395935598832197146254696859573830838693162725615540428844590538262921426633745487565597063675837985517592326078165475090452545581200118118286786289898909863259225335142239863037326276043512881094800896932308467180945124950158875446400670474493171095496374063050905948917032867153586837797839623694627064577255269724167898442362148429512429539277000626830874525945296494228895045734168331063095562884234490036928295507490837597574130621330032258108476594185686791700587321489142105862857628043276131697248167767375062790806899220228919707553950157368803766259426774243310362906707768997649527174193133372342492360743984398802054338440198167447693328327903911569478371790086043063083854791515564070484118054434653500742399288202237852107677386259634133255504413527572288033489413773173295954154174326072435272310263638963738543513889558731940576972112743037760636232790413522398808861190169825357079782453747273069822388228005173499694736182106161393007831797549957185473520688865642387756909402133878752639621818547912012691375968882328129224274760300391847700472684976490675303722060498298149392134266812201226505378603280583298622648460328416487876602334793729796972336968619950568239959523859454749754223759087153424352401393514303111513888729471749163273755815603971042334962008657576231080844668549653479440472348024723580953518552521774857206755776553332083533081136969729295235006809588542904750412909622260910821502396411727687550292699116369079143038461757416936626654953241663087188811875360054699269519433125356222644974232065254832319982790198510868470230268338250385305241710549432233769558380456062628213454142223913578540620001985299470371059004843638629117959138028059857647625339938622991421335968253180794821678208747661577632769071609899224322160609536819246110008368484854880350227394121181985765887113954971796235927984379258031518041840830172703319702126453839542336539465029376023994077334863610824559598147022706083004492855257996998598318736711803830281057730401195639526158878752453414052474478799635551682115030111528654841557095560626950502346935649151613604265794313295452758688083501603038653679873358968133909818194426207066767378408262334311484083060217662092710236350962230598080026759796394767575826679988797618890635079703395338348710593770203776495867095133406716286609385360515828483623779633554402342382031507616640684478893091356901167816080992537076528729199741135054819691733818828264324827957521222284906839346666578471850011807447198104304841940260130283036989369271500329386884829716532613141458509791815607251834990744092418947677417403968485530890770248845628213349757963503461262735874501424189412117965549644142081348943388855204263056330362241051307557004903814177902857742757720340912770022111416523693008907002071123858368777644041227497135857298834912118870243578230258093461750150367057511924673130348215012421323174682144806067601638424010992720336838755568339045786519971861624966091432016325901645858170021643971056097785580900246644586108498165865376179332292017357562803161836160049721549484745354862577612682927243296712539594241882835361805430487184275414142593653619744442526661541398209186846080030046552223342557415436669825737067450027322184554066357140346128083203589902846426549418191355312386961174360199295223099927878014014510347102616764352563393048731955931613327998152242102138114965506256023374787210295804332204337753370595718982712573719842438251539455960061579956720679763576630500342297918289096554263545884483913646151262484406420269143835608657828530192268305066015872149265345614024222238737177736118048115336630697394677261883007662217175597186053845786326543816971819913317945332843704215479301674599195006791422961548516210023726712981682405240584207460209906460659037585206085763014725822908600831151754000008649495895514602963271924183777602538535589800384086321037964306426546414184553361395983595265761021616592488720891453591014454056007749615615478811625137047209954097598372383067422793360165843040942074281505586108634474983932565721156085203682209434806351632373495060129070390070332932548509480121746954755078022119721926025304806432051776359089604381137012474526015446757948488383072871642498851722533473768459331076806848384885082057794134068693044064424820484895862256302501808479492978161983848649726130416202421940499634069926511956355477244719155456686202127732675036961363313284364374871670720888262273214453682581629217718694517524687941805961570714983961213204171412518814191417297188601444725232925716905878875719818819065375896109090786460459374364616655210864191863020221475325684340261300368216296010943486656006706288081437369965378355760490657115094884457076420634768240669452037175585968599757086451717970868878902201626884389273094753406073070858022096707248411304618564379416370831450740204093592759278680499455516606639848831530156511232471393994979006325658296092072303198766413216049842663365750870774027488514198508750658806176603463885455004032567773022484995307945222967898112741777473788576810903262273319382327169838238915671307322307204603846391284776716905474479555718045725175609755363301855848417879158619797476298602006960838942352666068447121935082928249459979361398636838262352277845236539734545021561435666669241615985639739199797482939398442359757565796926237876749685674958859958572929013998695331710498569206949236115951495349424544697981725226540907977756291861081557702616231178576073208232798518332244699280073041189657500298496861034249678815395691750481784389122970524926358036567481629544431482422359559490358162381151309214801582153041773111976245048203888674611802663446040562315227393020629373454596989719988020111641799909988949025943681134884529680249748074879188861895265962340421640534207536128432165572771526928070493095302725018203917050548211730897613343791014525578547215948906142425308023020547150459544469658920975432799681542775488380308053223210565798339005392617813824867141295615357795123283481983069877368938242360963825490238175278651304931431537562585927770325497852137362037122327938328099664025176428101579341338114309760101384252332158581976616736275565234755390472387170018870973786146349975218965528692157456488563824924707478325791070820603728375247112062110856134499525249082397458406856838454746185704339313338738205670223631305011893195531647952509994973616153873781819253993112616990961578067219388533649561102460775130452835427887819176946025254144181046168972348516509358252003345074289822368236682444466477437598927451501055934649325746860260748676667162150952778377144303450147253062025010159129780468915271985033522995538505189534730350592894113416700395074655184916808446185577861652081941454206785234533969270174648016889811115265895237853781935151947050852064047735794368850601433400394179845942889821131950310796452270097958052479340673077602382902491821707670995944065244937991444164532994851674184326226777958961511233630332334532267723413934756149787441084035954791046902232376073532908250225945211308886034221051953511583953887523159781682444346037952415332705538749973477837580680651124981838696640707193600790333834293479638746890559244185389168757409984832523765121426540750514604024527435921803615304735309182502929579489007537334763183749544103176910797255266006368841707082491456207960369935290689244830892438959670977081625774648806144999754516106814157455633149881906721844190712172362895266519872259193488966539525732002125067617864538247101201482406476790926340317094775113881545408591538912229093096675126680452495387483569788744329136140243228260315283327600970953404384168926208847975351492830611536433621817611922456965675393039333938011378896747583576494188161433063910347322439895017194836104647614016170862785858008160148191436052288555358332827910701650813767457142276278568821229547271431317946403769849472517431026928469688560250782042321052953567256341304709978717119980231004325274843970988122455646010756892065038263586083320351854525006191324714996971592530757725089609968450945817732868176753672558070381029266835933931327886895132490259471046983697318834430476482038180677928741539719646478966227096988774503854854995997264488668707308657416039329678767759337350531084437284883842694956058524160341542030568566075236971019903562968542997437307975905744268237923233494202722931403533658881885344359152037589127906583754814001652269292909703667097287831974833188272418978806442796878860847669832624723093656783524648991905277615634495317728000656176129408822643890944024952213805070114203499528294173691010826586454504369638096119044600032958788693734406464061266172016047695460161495113599994085461149816705292330584449787272240278536817154587121904027389641104788601116712045813945148896816238585572867921191830128885867517269007908884816110548884176545034851721362893498411351421952861713904900579763582743463256826442454120642257700641917449675373598188532770527234162086691052823895632846860493829911444056716757741580647137835535109925559076054051009981489888166454288607451903109651728229583828474431416060772147960351576124859169908115839870524478751392080626942887528010625333491447194115343348243395368563865403041840874885630321098890966377452880157953798987927985246859037355637312345938650946633297602678251295539950531108017753338831072362493736103129944885420884965765267871343755671302569021948785483031953218901481857686029448747568676394946354619505850730500813816229017239370449096907593095441003915085330312496041806740467939751243038352193469303358822943426496347145367965795001784523130015835303209160546179651415502200356716182695976599685332240885176463665806522711163772992871633875617779068266683443474084545862160989660346606621596006139856305760536859309938253060803965047609780745995134419233566877412443383032511925365147778618907612030253517568197039780730550482889363104685369655790546658058534092690605781239790607620631025524073989228688280701155937413581540092767918793069934797844450697104705839105593745107614386916011462060344834802737884177204414967249812254814442823331222151455209045241549462104585606819837415503921821565575459267769392776434750977599810984434861913247355391068644086426865305979499515177333322635907457898959075184643632674461799963022564858693868138001625075227348214518510787391320243245951891766236955276403479607125717813436741198890082998784840480883994963212448571848126019681075378760555308900509515966852831360518172798902810692434868763013358804517606080737256495645805090578045387578557345024537684890461958892304542696112497895759560778441473249329709595312499297479546676898488716819954006584973569169308894834371260245522270146295059409043777691264574919812495444586419101045777928399439469146186462256675881584058082663332042243988604025385219243220646849460841426551449154542435618757543864463124866106231298354705990524144680282218490874266355559214868515820965459342323595651566817293712138542317909385693641151015681901198761674921004405102616182577362865038972450960396065262201640353516252118954751188424810115586280610019187234235054474586039394661384756171722060129778574869858658304870408021153377233098247911330181891895387016134313078648911970862493621091999156723508117160033653040190226655913366183796611326729020799722493407856163710580494653804082192448528814875084572433336371543766790546931036772105618335910519612955326786801234539742980187123516399274112581276086050454517632265901348688388693616598386458467387162554701288953900168222960353101462517413591986933091345913339186492925914595706702723158910797018761864079001605905699722239424223997388023489346489736894476235496441145057683176579764208619378780058713055418397045668337374788218851847225996749402336060095048413015258533902136320934529707658948526658411818732241263572047598008451188434653401072201582936392407427253920568847956013458581464510482754657924408125591824403591487205283757473446998966732859774275289095094691269155597778773289106001686249985356682580524654105957854196678702980990330303698935255691324950786983264641114176738078309407283261345013589913303355643551915422753925876934655703000650640197980264457228624008584236243022277559474470743349184158850570138361738792718895656313480318072096574536660612165211663867735602562344074931999334182677648752299644918359998709764485651315441178586052660761894923629711903268191879314304195806024206673846961777793357514037362405255023572073012364361922137940890406794815916182322848432208545035828291846034779566853572386681882977462126114638620333985598955852798030364569238502866269335558109612791796790490274196191455293135670805026753113983532997932506722469788192421093513962749117396625080474031810823712305726781442765375288605925532002144891916507875486704245504037854662374871629567900302046573792670129306051044470203923576039352038895412968086386267739322831289206849468632321035799523571788493371726133577456304852410397659966131503179342448050459789080361641139659182229400153992092884123449051778151609276214686863987864757800851827417698218780442087442003039753020578979798195332345215290511333093940004895144891325245439730382231684027327103236481657857613776022686590536027360515866052525794786512816016114822753841429759265295580800667687505437587796927544250544576563083719619528685674282201954866240112992217029231320925820583282748996432755410273358552749719889950541802533459879900892744047377812607264137759981843776726460152330533963248645453127569523552909474204508973773590041145443895361066869807861662014888891764798849109333179735652658956817780687784452552650167331859283451269682586015888232522621382796162920835674376806480412796777060059642448177215630025610990346922346935101930563918631568286616565192720371238620701991679297363779601423529183156601923254668740152848528633125768742408339047692497025650241723569936656321440919844701752480100463282232089197421735417714937765013786278915523289309744484664322613292755293065727580676503529409350281626317836749042806005092607575240189303855643091436638585962849901267280366443974794264765988856298665855427312210845735907381981804902528321657133820428966108510098738860636335945640405614676428900429352009903485480826627132025169217851955782150291626492611667579436265131610757275395275835212757450267719065351973446642355673432397774141612652995379218862893533590948850482820540745684327521417902027413612622675542529632340934415143706382300229620681507779584516431351742637084392369671009334455601342616558302220090996918554004274854310636866845657121959440224708671623006003460225519004954522609050135326611361249157349748780624732387372362235716774252601016159250847833857921700587744989076671759522885212445749639302714125409986808231426003234228554202922557252444486460731928023484362977470441091709959740544981635379728063026556584658025219619024080263214387509835515346926000415215099959441950671955503536390440484696841174000457508161966912169757321855616432540703934285346963707885319903298634711334849826018979114101959431198293697654237377487863206214117022749587244091262033014460255082464074271466904178681624402260643853080310319627487367780302508602508401627274831302419783875042985911995173486643561982777868150560963906600012386060915693503223948901748758997867393969110884058714364868400372128749033283127063417129323570667029067837882016845802119864197572087020715662627653682235336350741245546444587735286577578139050024435873353182243160629456959034475641590515871639807096061875518899643926414095390624187945302607399443071071670103501907150746926404222574919154199163383009046295840632425231445744646087691761939101855041023693207255595286527773440390753871329725279067680578839313181819765409433798239176121860462232937608933464502505339155621164053555031631706880991041194420709770781399149903881583130587225047799209667192560720603598298535385632392534332619503071694090710461366997544825975969479152408049699090994428523443692165901416388656444675248374542112953551251111894849632573433963581005348248767130591404617589019034188657569964040789345215841384015343038754427185795989835586947661789071151418940289779907789951407281201092580075314059132094448996115355087323190150813418988632092213767679949551494928017286644960277959538871721429289285257487052731819922256822256047547610492842183847830051025482876871762891853248020274073238946121013392152535119956220917576184317874983294139880162884354360363638801205894797999046223045480764983229618287352885524923867136565965763855783702496533834285330617224387505444956270339031698653148770351087241977163423078807580740242735227830287225365837512418331530266324956388858754540296864382188811188572671847836434182550861759867993154083761539503079921659731489538297412735787459050969563102026058221676599022898725170575447691906685327074127771026402914383532117219358212263957561281257037330046502430756420802051260000323030457197307900638520166575727484849489584633458687303932866730340235265766692482565560642944941603999062249514980093044495755611340860281176254085317692341863303577079731901047788665547529110208443341018918490614303103891318825814928291182843657360732734366529559484773138896759346576749437219739841919668748435473943779898601010012925250836140144888456880840215542254863090585540500059728077738887387897703855877533652698403336006447846820232154870057205745946376360746070191285607576767730718843190035918149955475122544636469560631905973119970485734077056864044057634958396464804529767268206802801668084965890952524216904724905140942656712544514602691149614210985934866500726060199452046271638338309020019140614165979935844687832802097214974660791803970424199993188899615282151282645945082173737890756764628652254324199464857377482301727773866236678761465201120448311004235372337941323557987649466938821734316658700393734924611255360544488102483936810168907833538632310952935683137500828989937684714210388308931481827615326909726085926277101002709518522253836645589068334757406867732550700878102267719796952573970779178139827271865697847591400728623369258076141020902623348577329482223989198262018260907754129647102667054928908467172683495995928951183548363056741004087486553379257251331658297991511556911566944422563548824525473470699824422394613683282384673902749110348431956520977060074289277052683122129451344482449294467605920927354980248575622086219736692559201027833489499737531268146776245127837292122046386693546734767549944871433211637524174187011801408390393639773597082029682967379642494190607919660207199275326095575282111033755575029854741441285005896906030541538711164597965891959306070708595085557235657187216527521519806502952793686132335907522135449005172839648048608606633513655752771661302311361499133553063687737607628837264012137239295024190326389373400334280566108022767223271649236492318408334441252792520427959007623235772556767815528133539933192553356412567998034537207131433592514774898824368981581396584346149044056318646163329356155375720430282034042519661080210005511777336948458109890057890850039777679320476850515547331393381967361628065941735537779689515879289006743825175606088324035724048234002659463651433930561851675448907333735324316569293762950657481937004406336181605000686976572589077150138054398408931328829082624153308895793254529457764703677473410193501276264195690683803856012344994594376218333420172977347926669148037762869395403957655126947841146344583979006526208169819975166135297371942236395207380546694245517561789184863848865075644478484676451642770600182717628219307261052755464720957010205593336156098216247697037426039721831917254192830108179283547604966204040609586536101666343666464484793038388639478151499745830970603771868074070631322866847897669318846684861041806171398597399065718171490508525711031976471949191357664565629989848609115377391475660597553373476957798793518014266746831138517721662080777435903889522490454916623751664502639631162131328784298541143597995668775648187929770052894423446616955427256356542434756594773863189226407420048976155006349855937339208072219055874491701515573485336102686828707406068098721651599016981333386847474017854562507577512246518933373351028828197190580761121340612429194853095563439244518133831900481154205575791070059299767510563066474165324986127295171297890566654310703202232184184623188404920649519247474971370670988642949006927628276313137276089830803777335996326074268676648304820652380033521749449929537776823474968155717688445256260766848005687577223791002898612393759061853638747852023065784867865544354736352770717133404372360871432811059001606611939022044488473054392137060161403633090193929660728392030590154319051893480120871601988448960384707396896182101957226105377551610985919531015681538294524647299723520759732993971223100851354051739266495704928337981319551953417861967100275705450294645945549637940896389713384151155528330398095301123391252480079756319187513303462150749903120377839452530258992240751509153909454600433437055293071722816188038383749129848067132528465372393364022332733880371619870491779195048071466325337532639536134414267196940724013752499032158023336998755112554562883233822809750333341035886861916702915283257086937572043819470353712726913704240049444267766541820776449357201473156984946574891350159344153006766886905321682206482294474324692802119256164343201043385683557121631745930647518827121157886879917739117472602028604930359959501096378449468682664546198842686890824435451969262508452645238896548112102824809920396579207885187509281230456247647460992658409300428067348129232031258711670871326995492773751037062987450443730478452796992044445526459564566477008482390725481055501029100379594076151001041731918102480103922365892007808962850234623493638258724999176184700972411394955040828770318848823873498320498925327375817678403374923248419190344585685401839269462696631257477386901663236365870790399297106323769912469729290366218808063373274294949438550394122257467535281147028434011626461501050243963790603573850417607399081131680136397167243038300196498414186055413599696784852046995486736501840067213421936771593014596267616757485360883383107653490920937105032303341755826001559960368756836565077070702005764148559088413655892880923160252177529452820831808991914137471941801484894851889666409117650847519644835736465903696989207545959573891267440848176076532101688685513369668145859980573573336465180528441273068409177896955272572449260355190725850730137073630670561439260584328938144789378062452240379747569347724515141541299422553205500488000613112024531699830749658726892473270008708412226592771542568994106940340415627721976115375502560180964581839424743578225210269306834424133472400544866839676708189099878312236142072763479770679974582315939906934168069714021837328223498998000509522241012244971333467236633726641148854061110234076983834368891927670180725904796624277198819752148907043568678122740542087240558649717762451727043346503248577470029632199429415046739388763122806949957051305547679038652877467693203955217271005796690793071062723093706911358982369886842985126114165149640317654954708425237206009646585943753302272303836262769302095817859254647848396502865999035099364779303532959241257568420147728686263854535395098752867959526774518277078148001876365491130898272469028123135339909948600481705497015319433905035158794451948756011154919136249733566237420199232572792470382401632852654965151932031611107836258078632972350813420724916599127719496704680243296038722493717967374440574695494001659602371169523339733394011008788270456906130271213035753518671513606450190034761196368556408358788726062237104779507461677298471622304724997920359390813516234738525892288393506454688788460847595303054126037391185087703974305279629427636389387207057086079788530511953535141696102266078891332017037582900515446693997649063496707482570073350233810339509925376824659259312714233371030137915558124585256090938446748150883231737581008168393737575542679360138520048984209227879969733729834040339789834770011799437217159135857076201526068248927241079485812322980716636024026457176561823305833049382796410672437578826384267856399199958942899790503396481660638272362148771113954203114558417242783586996962820410922472163584395276343381996836146250317798600098734017444572632481938730495222468965197206199938413869805834379727504561920638349241509467168088939297289186845347634362517840101668225738372927517076846758838765850828543322828941024416122573314983322655558680140363627027486973459441081020507162502512504347905164398263842644436102100259591301655508538353238064996807023306341647553358080381241227290760642043834316966089424768104154129039226221144633583593490095497577750395163042295043734521150391854606294525986037198156735171044646883030587005329427160658057121107325960017632001780771113247222993943350070433035706868343975919972652491893185601897209236473802875226675414077877057571766243488528071346168557876535236512290691639857921464886216700116072845175584115352542288359907160797996234663514480032496741822425372317459478962649014873568961179252416441089762854417300865344270716569881938301964434407664300776668081391726802388894460348424656517983029071656261454289585087204863786450115860332183779914193977568221696822088348981394907563723197988878757337988463780320737143643128001314106579793292294496572226205570934445627299427030031009703837396616922772649788955291179549773811640041302333206418255553448630906587232042041936659177243986549019962873671423752070592039258702296363398811878220717283820537674455445114220025901347338759512740285864728982537739221900472772446918350713227169562150129478602263158636459105466979855480357338104036901283206780277605716469070823148132721220159559291934633627028812897917455933632474379588971016406285926420525436570095386557057245584570147006886575807344333993515899544282459668331146600118799774457683165470194471388309370336034858092048967418622506168903058148859135042779497821433228269794588914032730964381295030750546218313824997266927954564642272969884135449291020091127397580513671611799984675324115502682950554250935877804803285475160357435517259941466001342721318792607724287865786809069014926883386491134862468277247488165778668695780000113735871079729218089942587750706959081174069958994684316885281337774706952807895580080095107721079626490806072276420077374409674962614177349216572160508648528526770454952058020078344517177073825681058664369598638899450080325962492637539429031490643648592971417202557179717876694651383860096617999410164513185950231021250248899098260216351087886079159655861181861778586567870433891620634596421419240802568424026686915326836330226965571325468216082424904800890407566018370384858939911208595790651146835417663736238961768797903670069035629796655233908785570281693879058319781556003373175261082724850406872525586010997510318931364325919150822568223508051521823586964640669875273602679146499683169891473221756302976701984573665454073828309609194373183117457104730211226455139692037038890575292492370367105042420036512058806822635300592741484193349913192843585539455187648908294170572168233421470361283791670127761365796810013129118039691408153146516290691884476193774748228048654789888228128410087172921830556290007088088234011880621226163789554260408017329883006151941797334126533960974539131562159289644593962979297271678711867936550792908788258540465113860323515499804475460628453516184118782691684701924277004152597871396358195344688913504616055315897746850817983217656803487572922691271962072509348031037203477218969302294037536054043868111044122387197469924273778333024382622493607068349549394398788958348716487720096461354733951362273403801522009038634897049774490330913971882213059497092252385973390634911568540923572512970085943426567952704259234227969142221882571475738984238279622015987503831779446197191894500927526367825546524959483323652196980867119922898332234415468285198593178203355262586017205266447293191517637749344974685844831899750695762653149447950394693421759267649195438117703711765417857197835545559081444077871023367048313193874131015819077510003396746123412926805779676895413647557066025968454254670897248247472899537622139504573334849518505739557499476613493519697677491196205478252226304792575618841814852756903694010416509140723773077238910571985109645349961219378655604637964596253910545199066515525470752575693219579850570615529546773146915812779016175997065973795131013366567460044534282192845525392006434580456431342344228816047202712769843735758267019115613927827122091340302572445754781860559473287608964114741628986939469776001281878691966259490977772235320797768219893103739081550458354328725399053700074100823667409478161438741177800463228106158864832203834774055839925449327610579919578232689400255500270100351422197031491742016676771057082107821378398748289827668148383012908475749433487262933563454494143727224992980758455782418773653310384564374751142514518025779576087633157531239151918059675474519116355848899603660019913272793221592037659586536253667548294893888369458595285983597111379148936624771539065737985286934449811554496561306259026502315233756353488396312038009899100046685801985431542967544941704292977276849392776438311155497043988039931264662871273325440103375808273641300500793205885857642967497519444052384852826115655167126277374084740172550349242775201336257345373129193037025896423003859049668620554787195697905403495117329415308487514150730642842965518300977761598629820883365486166748268142222512091517486097125816369187456351020550461199251782165352649053645030221208476670932621606559004637027013421138065586132401822675828812829734303269624580086112394182997540032711160389008208528025868956172398929936885539723107678257774662603234097960598340097330801201569269764102703490883090757428717599780434891250294025535103945998119746275138374482327609157599253787302990676408430568058785214161591501971932340960393947808512047121974882403939770240173193603590283408329611855651092710555865042108520682117376166718454850789668955536397570271008484048899515595314778975550754495873541813750950199889051995380964187454270598173840509337370505389532674269017315481722809085791588311225259907640869413101587948390038883950493467735571614030677797812671514791695535863263459893089176077994783874506074665214360077328650384873896740612116827121702152411253976465459354647461640120547098252707742422094419559226156232536035839757232109157044114990715981567999074370575760406103289164834952606659717877041636371867393562188011892708407138033472878082466073529674287718519420896465630749494674016180508446809785474265868983200676822934533621575403336015274589882710241461565939050770994653730824862134781964955877207783986770913928628993163123414488568459044053971253211819638749096714348751239304975449739120540090978710533996931189084990109745035101641159580602368333913566025135858692023004423082191156729083093716577798019180581892937930941040631908167953960594715383331024757001556889957085785895527283604486245414319184618762867078740523518022849512303187849235246233689352321821272597225235911548889469616653831972373667191864931167708636767506860650159669672116356190848018287839249761752893635742608195486341960321331012418258432926697831605297861835409170587303022937886916479971381366921237407537328528395401788940631150031476042854273866514717386001465777098191548701930220526073428132259745256604199044238513970312450162697725555410591880095635646747917436474139399892206464805681537925181107314577211538341814729126194795827349631878151628558001171465786677748177078249641195328794584110318550250487319856181833125963407723630370561611300226322354050682921179254718924196908446647575910553750037140052886919381222895870221931774543802293532070879303173378266899515444589066865567258989907624909657197351217277782765221851926993838425515888410498570745171959011130317112340253144425366704498241766848800041808143506231768123713612912484993526235333576876425722460765132816271091757928105327176739628992829964109339988743386877399076363137832033619345882714928972831233675807335962687338582466717535172945413783841241881936293016225455110018259757226932108777440095005630853965141715492788469883489935212059015937027408707288157807078222243760054096157708727449498509483480805793331868270156510816499359452913148238698053397717352739546311009336072682774093624631602890542931178161078892552588754668371079894418449279155445374210601804482534257483162654153554497315795806118363675755942876805426239703994753869277169048825348715881963300484523187676256058146715773714282197781219710777593775201858670042296289082970201259792366662330530635719163777113731852516202817547604625102697631756997760357952863808199669550847217036403829552550722209259226923516156321787386972690275797434169187637790249541177045344926287361757595743556812495714945268525653894132075104401449552161724111754976636239131044895247695320164201149752560431260778499104202660660601086909636633443409916041497680702801852788865122686489164599956411218046155826392665519900981490364523322003829801136314672770476571078966332700140303365319563203495431743125596109422541493625799733390604680950432364507873640177154469962523958524223547417353184747450432683508476988274154840470352852001647623780099534344606575311301216694565454653172503795675570502723218505315033041912145906057025844954983581194962252999202987001541010890125602216804506310559274933048922879071319664194507260546494858070206207044294591562808389886238702236207932120739569925647419783997060277086905202228538454071784518607192501895189570981854008371797918947394614995538272484227590855249761730992942693897432319048058696221634212257977451397497387317989096124279495735204155953613066501882251635241271995687322253002127477185340939140409862621258291768991514433241759424476803449731005406887633279023211778616879771833994733408767945717665760700030281298058105699851767509853849125027484659789983926142220217211174338869741623646966735867307851163318811847173168430742737502205456374723350911362871745270794312437209263919718869819470848024127815944750742474808694316751368044491373678822064349983223338573465218000221577003051307162670260043848142505721038200054217369494487194009376654279921565247508472986447879022446856536946740851492447825887883906756257668474514658517910255146023779610369379499693224008493870135535334792895855953434366333626330549755855255193090235875053846934149813466663192923818323168354101470118233175788243478989328613506886652742998194765439063192159057103359240484526834059704269257250268504933458194276653924004696789455434088440525600948233051193053443364530330620539383055943512979791800714848319469299422136112027997601205096565644253045235699362188538703538692861331814397057997553627304029839805098238030176053662129930863038940322921143661150262513861017895010848855494043705196363881208388966286181981845627757232325589485321919884639995633748391378334058171109370888739448170128076645433541722751543276918675908297276942699958856247409093488197565658024104370871583289735675753922988611458110310587019347770140186506588692077549063543853530616366570937665371305803853045103719099005757717494346394992639829145865977390692709742985668465126368284697119457904189825450410367740002261265123058225306534502350051302363126821235704963586634630865721504080846770967154966456879932917126138622383090277448567673099978045012185095352877923538549688672880438769671897446794812019314289982214660143540264714678233580663428707812834449870897809844927933613671644850807693944951521610743921741418454741654455139609882407929691203053524301632941896019658521216150053407741432894103613096370027854288376371101322540010368831671436363939690283229878493590395075653810013045632232709414956000420336941912772770577625423642695467462891820496758320628312245054203524317674549539631427725390359371002157900929666340843020260169809898525229723143612538017997345018874053349708834429584632108522123583290792665206275452506070274777948119754039423875738744614869194581557848526038527212357668058137554061564584869984013714212100424285485976143062547747062541671377530884964974774959418040886480404115122490657748442135528296601631151397896074378721912740143502873797721482193549796553060662057448766543706879996420472828915978129554106347314936234433604233497025380620277013170457300919235789386548177821931043708770542130295032705367098806505508716936764841202869637436017017645929757832969524171471656489118080963039946416262352507378614158313519798223229325979403797980496896718826617684481495038785152017381954797899465468519459786580549551601663534079182439169997037425481465113092985188352589401675224120086930559106355738027536104956741513635445841045288753864146836631299067892524754977939642537511107682900526502387345013344349641208446020246557344654437772096060583750607763175253417898368749087411921306415517159722857531050355289920097813499104725039316669368540200865867856188999786692944837956333652007920977744617404396332081592325361991094149255600143504736769267592607500675864274029866993797776376394911777286021184546532783119409705359029101961738349385342955907371738907438558713691468851659557407207254502196068721361663472300443745641955609708498132608473521153108774700121392065652042428061450319504410488355359095971327898646326903379177780498044627735272448381162156555566516045856151348024281788531621867476029192852967064774902846084984443010201268085676900331962588875368755093198951011164902323882388290554632688142542830305588328089715353087935904279453550374994407574644381910728103153311332295776284150624179283193408782661281956061167535178559059618908948592847077234647529249724884116659349335944635814921786304334548813148580060562495383299516433723795409958676338113696683445873270797742647486549897277817930122933636622626432378553354376588022663086404332020620642828377741674124345215300869975092198865221273443480486300793092592458619493364316633496813243497343441965390336448682221802223134344162380326792368506801394818968381181529032532522641466683280256395754423402293407246347550583380451990677621842203204094522270451565367666955323052870107471751436874022033371479520906305702843761810837358676888046856795079680369195133527053587037604417086537802701978866039457279671959422340789659988384401111050417147554144160470605325479610030738969781376036135048281870016982723018065336910074750223484563807660717169586926908193184318827212958979190639360667782361777561194584410882024919176879044064796261434385907749460648736104695089671403704629609473029935694808818141538831112458971481986943631274374090986751329827658277022888911763176799711156435350604732902631998234214303435676664906523894231636556605342494480185901233655163510043495490082588141379025257907949220786372323629864427320924541677475421228961090802730929422642473969907098994433344666526899097743604543254163996411788329985891263246762443920124906007897464023617464887845490101749725158029173968794992184176086287049167590372956666199044206716540521556743664429794664256923417133064228969621334852038475706063505681139647192856709457867941238502338248247349827606752160449207981197377474617196000863696100128967313160004915378808913258110939939287870360541429521421166628097289680411283128627823573425751460108954186219707305638012329737813910812071082934183208580400090497819379393099600961700306305630157132865722217206317213591931831033342112802655745841802237432705029496573399469977373654746761265369507303583982582625061730780262770578188149731954933397823327621733484791333974205986469192846291173330198323998911635108689966108590643740927535006677045110127746608870244467653089884956112717214151613595843831900574056821071019324449748431232130167435880412080454447372018868681197859012271467291254036513038214302938810180548038386089861112579953121716831784074397921992133301498254583086809049390957613632841315486003680145681872683158248482338044539953112253213192608805415814615667503783535347336943964331983655215421804692606999062761032615203365108755176661414588385944553662290174920839809634058303635310750998288498648791603531725912094235406366505136536044286346215590203411967005150948904737453698644719423061584820208454665354150273089459773884427468541045957274813262181499716839144659792590603851594484412577393581640041751815725779156617483974314154673906021168009060594051656074587381200688921650579091348706511297180262574301612791001316613430804273136057149771916599939055973042358507177455567347300583291394035015646290762386413763559044219301634606021421774516847740520925772121645294365256829912708691559382502530882081981597357088002945182967827352924895796478799656653871800550122257040970254505529167628839937227365166524256102629243155257213977083828336760514547352617270634225286206057356410343042313834347195997326566576819546987567534382271164148939253491586287060183667041258326604489521428243253502940030834354586110270152171246428482361572943371005786599798512269022813111840500787317214605039441940747716093903382790674699332682294100647035102113197019843224661041552298424731655981811423631087311029726001335540863659678762851066726302787523844597772661783932902022531248591096204665431047795323030815021229171550482648286677792787400729558739659159706457387275989482057706713384935913289991915488154103302812504434270925785000702094084498256416096736025443897222343590353692807622963279650849494525989655635617190986008227526338431573491380966930410338625748229299748787254555389116289708417662190855497801968588967174230486886207101388220064602097459143605737081008475874113332053211707879346194930373199914705709045194952967132281827340547507805433567293237972269797883569618078352645096635561962266089393431427856560217132044356140913205070606385114273638245200137849322527055303218703831474642214132987110675280038300032540650195825547935557831881466667597456951079125363083314433676537027913002193423394262924479623938873160881597572190841940723317740522251503093792194291895548690099512681035153742703732165000519126082655330444720203440781431585313185354812408448178538667924288554914387921815902016263486693668290752009112002034815486353212886477714798998307098354219637470445052337330028970275442108873613211111642810313580298369060596100223329801739317868923091612724987666882917728868420617626826409785279532896520802554853798254233551582840387795538924203036201934989843267481672996597612505613961726407988347317976138568627772757442295388648786841889928433108203344783850464189754464165711605171014398745913764550145954056202259110927977235088803626731672818337995875073784532644116865139750784070643999907103613697166367270594291127192358933594369120468975344388452346810560443053148788770049438834309700853671818755249584481899779860822104816286390399499937813217847692436991301938051732507644380854309518256842614121267957715320522029130518467620207910976575473896460939143053060739331586544151870576023547287233567948754720613068661456891414163483968979424581952247838769019403761000413686358243562659657255487190827476895017781897825682371530291550134208273413188468046268638418971469442683512660384007230452797102323486280585651650281513817269848195380159880354517685430796799750358219480547194369357383685449071297255228221630204816310539853692259192213113234185161218525770072301531109717228722986761631038357461806704322568807063934516567139880152714312846970900476568552423722343359250741414180650357417165076903447272886182165098605510354590293991992741967904084483139939446082419090897675957898859804432648515979156968538644915915987275635430296630002116858547392561062522505683951140166108609282268747563650025923682836155347581097069398764276468535461680002205412231464126731333232842530688107702141913157068698837173499934130095705959058491657201917479877709334942131192626956680728911898074954145363497897297315750065112238216423119565651758700678939448804385716430669561350039872579730099411061187052448295585294120095433014278062071069966836187362826709642945112736383406337859626577358752648039690934742882500089049057454882155754886372128305536375293346668268398495670796568463496162077815088348205017460464792778059226003834432104831149940849405633159901442465336414811796188552447123574060251981191672778249155073694217622954939885782620144340259223786273590482273064211429456157024249551111930846900128983421183057611524437330858160389915942741017928245319373296494381229145432327699032262080603575618313021978174623196983429394135029665543050383947606596085890879763699437804342506617419218128565387636405691024794549486962548500368902988334023779098202064595137675150891726450550560900600450577102675280235142637347876330600992401940048907323877938268688440449781874029060964796418042702068150971579523337315244003608687187605203753962884766342724427241419412952831833752396332823183706344175605326883057387710423672212587477086638342471125102626678205412111316548113100033828526733862940875657472583728467243813176212785563293174569207385494360228055061685005629909341848951042391708576224045048322472880979515617436725522140755890399985566690998223368383646319426413597797798145621158377603670742840734379953343840430155968234162305675110685989383815061076896346879730309623505340385536737886654486161583777150641058130097655953132348042740735026082364512161541376269185991730966799908309730816443644003697852259236907608096027428112223789945643796723669028306684882045747871571479374540401430564401288814549087574781385646690161194665307624913499825730292793963089381646111462535274501946098744150980677430317996535417402096988322267867782927140939981865347107776528206569441218667062583221697387805249285226016441203817419350546490598733881818715323842830837400518656561822675886388462580926252642168389383105340531573722359051859769245027141792677117506897159230500942564368709439593469156117512843570726478502350118792635882162693891869363472581499761490617517649764560880284503845613076390616287321161749767595102933884128639206342971710649888694415013923559491247685856145270475975437454053118223130514810281179064078398899547694856596250248728386760500171525137952778011954228462859349702039861038141161304994344243600958051782818229445934055242265651988481556169349239688840900726600660648302030573397543503731775209243544152837076599381653210675570045468390475522357767251537784709958079709809942776380992293717003861613608551720204394431834217765682079478126631603315882248533381875249852461315654664395466489622254533809094446922647678420699946046956048147748384638797656221587107065738645224834621609502929026645082358668558976518316763700624949252250120435514815294872147247923848387012564618024951611534698685749241622183839312001850840712105980152716401544420670941343751589363584135683955830486408187168890476009809580768918745388575786220993698833190671657261628473468323826501036951087207398174091538555134445768027532325089864351565122110251429063328316540100309413206166718341382971802161458844138580510644198763753847691276687009829506578505666467926112580236865141505241146937230178247402830957752137210844344985438761656343700681747388986335951471758138848795350862673610404317045570087769238109342480418219654996556406489685224870404273044476398301115472921293127448965401099814625450633984156262919980169140726749833473096990157631183327726371505014877179718022772623852929523646634826085629894704433970428757870398596598975635337455050173482332548564920116642649003034720368721914821289430541168240496906245071563311954975082014488362134337750221661212314088908414495266232295216206249903645167790442595195421752210324998856313630783612501481276577771869804691129676725415437870247900529124049393058200882426047576387756063012662686720086162136607145932402581137569432271090798181996065129160632915971965311477535909134032890273717195581952003726305535382557454104911880008257882903611660539972857646527228116397757394827452899686057566917196532242440207901734107081374999668528057608744578671213409376361777804059959857759250585938784570863408094111421891495816843245893590342343856613172976341853372476517339015816196782150479841600238985851319979470553833671884304510474835385051360441855460570547977363269585650404110285074591065275897347016447531187503858115694919661377852431904489919249684579079790901830521680776569042833448900078365302526393403548114088132952042285643300614320733265126884639233554106189805405720529519342035869279449504395128129066995257883588330344625465423896526205949832383812573149889445360023575723550966907286300514265285173557341046298623775452002009853256467788394875336672913379809326940007896088726445743564945698542018251651753466782151739381100336203881586378142470020179021259265672203846037102378232035934451277477074343000923106308499719499509588898144373073853963947628758799351895622610037592020347833733285607803093324726062476701379549595190314956487660190349396674084726583426635813104336385732875292171759232916517913567015789300839885480627875085145771054597550398390731851194682696053676416952839140052833495396745383184871291568015524181620303217435015666504303649651397614180220244355400631395256565703110547717906464641645509055868006182187760391877314441670848345633824412754924466999102438150498605063365068055590206265418339858597868284089751057407973835396256749714586982861799830987157224289759269184475721231643857358963093413989907756349291148400561327290112747173282578933636466360840077342325526391312200219821273694751004081920622393072765796578936665023986032366587450091921979752999530030856142148754465597640505156581391147402357585278138268441556672420832354073267547090563469842268510957616696764512294172130798207952627007653261353622095242524214149735790154111925272588412606029546824574828429967533995147732030428712130455930995823121075711505794824712182984619408292590326569340334205434640956697431656903505042768257550791442148432289177905949345582127180173117143865053835502683963618187088047174651834866003726118487116261498622841050189634132204946657001448615131267878792419662611387392928475431649172201149080975010511000418464037310442690654867167777710995567401989043300282577615839885406905031610555765174960714333231500867308237752873441816828593161681925407423696868394312119543607497641244737228051571655163502286581173393886380725163843880904045780532143121169516417222053636779639873329568502295275939014174315119701396250560403687268212383033657302791440192390632602678025834841039224016116107573274524541882218272423615338455518521051829561487306318729181167153863170547269462744181659021496524944126966531239142129189468193171219045016098345627965243703999617201992702565657938019296045153091948824595816668717085278993224156461097153607783428256505172771804912618563848897875226343871205790779954239005073461373844849769731488303662711076041369228055493168930042106927175700954465416344526150407852457851354798877028363279616971907506477429944459215899746011698363278220137702667999683214948914553564672165230103900259203370777206084147788842704249962767949051552992850736117117887513292750836267750300820754369164329945957960301340069666726388549416157305420694367617668621070341071056499796527851487483414887289441371543658942905795563245619883129837012786274486022209390138617598212276009003671206728283799120782887403937858507762562603995784645524688995026934850806180804440426703337490048869608312807798776453339843210253308400592547068633791776087452213786558020085370250174040471645982206371455497816338047826563446549450826981080050229499354273005075437903377479287667815168874239097964870302958944223086607690220130290708201439982949311674495255059012006018171950212422418913542567628484796279208546857578653595263209217575033799843691329649591651030359106919198677158362952521969155368260187610851290696321959263466513852475082588856945107579026213672335820993059636421166719149313012326082939559698085333130795969004538266792751833810862569318886190684622577365463780141949404140331867803728412213826064493657842188459258686274636036242743795745870736944783780262285352513234289068288837356851212990540211104476621841188050534821213111368744558442746461140442492054709385310942631636939141184990187388089555224409643111834267293707956158044570820085992323659541731573476090960285028521790446194122367412366758198095259347175076202612170082646820054353233768730878414075540446705675115010779647293062185812725375604464343850548960949725480749654511204181074820933951330163549772539786368708737889206252523647371394772914596450967482452927000545340458755839996019142515094583996242127862095087211259278341720349526333274461379351757692825490759285491982038359037475090574499990394428907139485961320888597182054989949546603756925139322798153120815186322889414849121320199968975842365414485737759712832947749100523144224391193050434946077606404270127037150862733809913437041511386358087151550344816509344930713188680498523579823089689502954617499188680117677253160494481216106118382364042599357985345733525007367179699898477034136586847652298475271964270822758956129832360556333438076700307197823146842061022121789487853919165215362528855746201069727882202129335560169354865869184244302854075929052534574595903394410494835638415156675222808402800584018399638636915652958671324496960381879582914374696254706803078361623839881562546883212624800302181615440010146857467525980109054120592175474392675318042700812750548195832134900969288136598182035007616705455275218301679250066218320761150291518149191246041199608736705545047772373168927984009426482140052855942381802065122245718099462905416695866754733499798024694336935355956679391191330490931445595540548637000101874819867723631076483893098975762774444440610701064528430949185367870477553086160439106101897162641469486501271965671599497768292004236546456834178133324963016000239538944817078535759098820729757968724605243663698829505936340109430098920431856626714999715477364216122112828358522421681676631946088528604578108170915746972870678201416145378802127680373139853315455066414299955442507798521691733663405455323971429861981542869212630862243144078203611073524328783359461495765674325985862306128408390591250671399761561846476643096171804712832341890484616546997506312964836328296222727478458479149493226099550643416241809120605719697734720646763903033681474518344250021794525714979911730465442569445073295713799941690590938102889926055593035571149669070192415288515047740089011017794005968884762059654257126069427021015610029227633410273121576184658563815370214190923791137299198051209205339842163954911408794035033510579629901838429353108859639657854770233709973076268088639285044228134797757307543437512756892875571937973324163504720495531305811590727898082920680510314614317578925989298356485005252158934380071984039759640367539658608228981400962680372652568456064674602042426666380124328667760315286586797953391320346451922317733404739346171504926693587779255174737578939534602821584063357330456689981302794198406675487760011345282784431500662341262014920024806844120553619621385783326534989565545325726601115553333739984141025147135306086138451062966789218563410367158517734135587696897115497517852869388879120870576512884196868323319132644228536866029977447275255776858479274817531747076754859565836681630414691031349362400124834158942476277308684534818878089226396573962829584211844309422499134724827630816673186814566177967013920852072343381245510041805528990118763407471498276767336940604562959196911269943940004200126737258931091782947121841941582656519753341231702459582841307805355036942453122428318078156185485444603364962203606751547361403103866402758172466536434610820502370531291539332866708788456610710426195183334558391425816052088953206182523784695549973538728815557768087532378629308362902583401467202021743058008207444973420834477896888897480666639869062096980658498920449948767501707332128113690663903820507455696489070487128438980869064205684309342617839224429841332618824637589111619069797876998587759623037813729798011002045573925048583046059195572700187215736340719368016033626128631314614402838215871560209798167799607985631866166972596948140072053896502411866449205912933561300871919197840950531071790689678616107079428785249406666615908854961419459959578582773018546622193096606074296960201045081012954347512957279933643048376575872478100500011281679834176953216859583670976618462591908103904693095939221619464414570624802769651232999501314619388768136507979451451906691489343973606152488525826895655153290677866570393548030307790500981411218451624310289512865790997408677804602611672963123661874276632057880401341894723943041368022147853562262142534157843064179081049917765106321338795524961577094181517645100495123687186487002276704022918340822727041283734168769672808828222671102744423774446669664627796294185118631003918115378531373786012101887460372561579452594602839525406134773700940144392223363911604994762566040116000217990264527212047586930281355307594352306448424765575379676512003515302249350806836426010910003667622139946222946175078076741619837140644377072576179606994227634459761850239656475463761263161692496252506328497923226898909771134652436936826011464941477735540157616126221560779888784806048143740894316257006064732021413277339573682855562692009836460626511518125693801120314703266760378024975190505621669852579806063534628047555053914382123322324956303825758508102272421900329610261465366049893069423179588780684461413312217098953376224676089934286619487434837498150085709310101712372574420005135376368975439895378899531831900644613017205133904424186547421254835701534086580253771736066348607833385958045848280239726669249522103076552021698476175103697401664400010670122985064790164848787704794347695161911886734747694402161726461754550559207093174026646869763147790282567489484191600198507514125420768648282487988682551347225105593273562140625141186756433125023652230500344165971480073808979370090538920296577719210131167779787330386497579170627990231591313107447189232229645497585477483129305311429995541634080564573173315116018411691292868912288768177480055701982108550993167862977117053124238081589911482676109114036961091389350309443273227003770348751416103081857666416899180589637795679456642165016819458701986692212026358565646595207517029327159693189667351329096480051326597506361778543276293013859924153959657719260949625083007953161281982311728936516912292415437997796855348971754643872976167784882065010237506631382594510972932653082326100661297513299655297316294678504486003217774140646536900094602646060934942072042734123733290099387696529329401382843110760443720415128660301802478146819879730665961692038838375852317651511162997366616083178322158349417410961536216102799601175404829493693927476174300535093726359998795940022225492511788749685993698622105959869686034366012989555886833414901587450969676412945225583365644039209683986003271085513381646578065593394062929493400237867698311374278216736972393290351755492908660697929999070329074466905853061980378509302890224929891673757209846353967024375619977660303388395458245942827500478880186309048312717427762882581986300293815173060095785806949597400788900909343988265669286967928429217014130727644045677611247061443757973500716218136249613024914039363537898670096996616675390597530197843366235251563239439971228644239628216849600681279455413898091639936148734163933378385510697243010187970084478574838899243212307487670266627300842711323181604747038908888194156406549706505552273857391089533717671762150624911506591247493216766271178722581220012290677902202747519798124800252418556081522882715389761376351005798829221773417216912073805932263605532046784225756006899968520361646219557128071391235758073749834100403102704825041000811203265759160531424959963160650821228821676078961038837849760118059385172669540078241107542872486966071081557370317219207854137691206718848864872769259201915719500799274575489630165134560423620735717049791839384886213714032145245781939611149239472413040939788190935443786163414954918234673300135264396495173555815349910327478802455048694387018186810637307340108047496597298602247486296286164301778137056534349549700005232307541009872764691277451208771470981785393870460870068289920703243040495817904623570310055567662577323097840133394068107002667054568283756703313286017112359588566117848689169540321867145759940419729601464887761850918477353611116600015042536126455291111140995912579287525376410028799580441524293370734654176421926148483828970497787946626055591149814519977062762555659308889294109578931371535872242461376561704221913940955327897144140574485400572673857762238123812816311869287901002299718123812736639368295513239628807618491366631802870409701512043134218155698950886515922989337878841164843670120304727367400913568752087047841828782126390529225732916631813430578761393268031108054309920023055611914203477553189693566420358133760878238211575945113822694855811204898302823951098284044736355843571560958415266095313960823233904639334368776907915346372142823730616810113394736815060011647199252113168187099445859858216443327438123049602636120976896616186700751533670879531137177090380661678096647236134943967913913003989303560005851672043486406626729795187266665501232560916646953450849947470238344065739975142145003589961997432420017122623316154874356892719680820260271816863839218567724681543868086631883207066516098914038385042887736560621972741512825007064661871696853468104789878939276931516765484589171844354745137752817767185789413770830459560354316106839927194185334147849105413317913893688861105822612577068263503431069182649005891657513468934564329702131520640355262504768370066120090489197127404193354012571121315371100469594252002421555927823749006498614346793890751063569687042056229705038734853502743203682457426626500975222489052985598982910552212041535805522332030828507865679413715202324101541282936089504144543255531787077999200150349046823298251596406421991190184485186037219025027813441167450540601541407661981562739891492536792229669779794184540266801041550702941498456542623736299530391755557667389912582204817777969261441657108368110326054383527605514103487820807566322492773779184759369803210531363235546978766299772366249384797172348963954205572632780697050159438093164724233011214537470110872864522505218118479306605402559076503076430480601924153881165626138247961660823702218439405956737545396180194933003625559847758453038129393629784804223176391708825150093845720565604242038579966554007575339237033118195516757911390128553810012910888271653766895481684311761418710798758756778484594138694902279263899915013925592991256085573077520496602741549032554482089242011149473077342189941960686162137369058260718357691972607261706926948527184436682745332647720498444227931153053105245106089306925318560003317812094939536466236839378277386085859105911507194086078914874715828220637227891658238265554817961589102714858476775526626497818222865180658736816206834583496847676143440830268313975514100316934587763486900871015166733389379302681384411275625454896359423488597472607997120665062784178997121067865304816963432666148945611061346173620859622731426312541844410611151474064687463060965160075015693778708212380701703358474994329083852645785059035182114080109747684314486058064471747048472927396413925270414914777101076611133221439243696317250652764841701087543822070904792155130357387828498751305889208584492608334383782996153225841988015840793766852116177882374970973382205973792580053537351719477305879243086311228633914731109961207637153221146705072311807805429479908011867814188360477352803491883401787701698886291970212064341791299788427805265051547574125203084009638589972667124507646819662671489470140720262012301561081335420385040838368305245923476750687293533483278717391529672215769273746052846185995558923929094427581444394071719472393602365686738791916044657263599565653718063789433452566732717946007491359512163813083685020696709136402271918698442094420092469081644039296738073123234647681145961725183836566862008074329182076009640873514486142888235763074902499784876318947196361078523499880982721923663048427960555660477254349265264413589871957435191239424416551055825456603695044635954095590004913447890392244081839267627354663711530440756353612907448425175573355881685978119954075249638969311911758799853712926496375269287324409820519303976447825197545841418894917203931805339619398791940931528072475755193728477479905764071698344652179453140057760777939115264856873744202596955173217418327067662899872867815614595619857487212009641539652475863679503058156141655796498753325793726391801010093343137567778844614408717316705270550266253054557043723507087782856126156000529351467977080068317027347027585700184658475398810936891547695931145820039215241548347514349525120616801456981469298518296226888457395720086752678882198774823729857266598785415779705495032406839256832927334574018402585440934730167028802487656074441422437628826357802506755719673541278940790030339958309382787923038762442058634833487446491363242375220202440424540273945655145045914311960865214373509852443394745340107161949375246595290259602141089560125370057576887549668937733349764901224987805084441602855893812286446643511901092463761269913206084414119695768447172452931616592532654539350279418098704683343456637549142472684608761994599391105764979042740598046845526239354868558601965155910426069915426293749643227488831203908543920487582630961941598619988022955725327000995329108422354490812562178565117491205066641228275537844800749439817221783361331292103092582443425665142595354654995482711933166360814921095970946502279126896734743478983625370219721651569225031657973612140804298950467423060920966671565963260219287843740338604297402572811549647658555307564950474563421015335444079435904190144520000869491830100367200501947233621555268169954786660839783311495463425131535051533197481411723473712085067720567039029498426308161928610304640544264336840486829047914848078679624842250269603430184270756468476327895288896407876934788866244018899877638419988084298669885541933069708288417921416732839294953990803309819528108024382292324932803955316937896072123049986476495074532855319986375541850368478531874752438530243237470681080481713698710190960886228639608040445826609199919889589616606216653941440440130218847049192270105945105279905215211338037562105625326049585990014616296694673319720134121108245193058629372798059232204809985117894917075862762701304427719775891173903167778761174113533864983612125363814277605101750894280935423556467413802849356729816451025049062348037314485146216065000726179438850499477113704205542252858996873960331141426371835758168889297219033179557274904651565605137061655206266395020252906937425276116325499448087188782972921171105390860107654348102717958996941622710558283929265924524785144460708666769303003674944271170579291083619315843169456247338549142043475568045643886971347139589817627995867108639681292076468760823578600744991148495316537541732530275619716107378653401173263392705905068311607452859055477091112356892663839199305076953896719918714218441428156848937282247168327129854839938415243828804034482886063847029165766383745895270162660882411289559792298959154243610026191452013673649779633321665395675209104895525320444812884252689354381438882609075685012567745171118042020665948844687232197551693098282949531545133023035133651080979557233277941990956733627374203980974133972968639080200508315312647188672177122581067120498382112660180830631638271308717948537382477029692244633429620204755214677051962381174943405904146477246887758323866169335479777225732871340720246948672571977697470675867913252096396077994090290842800087511951874952755722915150901401941125175573337571333153135335008473824829230820492659787342281456044771065206016044755216617653509046291260878484963766063958032897534780905091185498335030616556570167575793286212070979502664642912540108586752120562020157956914159714204409552594097552273138021857155730070285276081096530833069496606714741381270730827497122751383411174013192950805412786732311704957435573344131861198714746037271221266216043280297345723798127227649418545662854442385344527851736449490629816293208505986208083807783291856052130609879365613980593011598093216439344066078962503922756866803963373850756876017199898651778586703722634372301341089219329908899528950998110049153184190889222636195410914476270094442476054404073473591917538678666970600394531202002279301491752072808095954830333962736035532564018740742895177177280173567833005295295278995461308863261859427216486415424511341903148505045496357457142475660995135630844983530238029396901514437237877911241934451042162782438635625902847712014435273248618373451287215666138222188077872085123135544768875920552365139557790974892641646632115834631059273775919830363189422371121603320425234501664244427973617317518477348264847720603183855583026045494566609537551416166775212123802750047690146540512722121658018277237765303268996755251861586164841354798152204057283483374307201841057231231895988800089730796899820813983895724053223187134839806721823222718161346059639671141841965564943167297843556052986652911707947655230705610954356435427685490457282103929379038578992752543198653119913727217931511812864153028528100285350516101148153157702310701197645877346492013036764098855897422485296957867103571995544255665663967784790605680084722830573032709670927533573891693628196888777325411273202212876930279227612005119547640523226970271073486936430363610891789785270666959228477610947394303964045270122513271075589930604623111727257015105930548288217709129199105737381085014788091236365301131850226252623622554573436745754400851510608543126416349556580547342319383832687515073510437555717392568425702632124992329226700793252781504090958838395456783183468616780031513596871170315082143794388027652847245273891681324594741355753279804981449229987247894786580590251356708235433385464569783964480147492667259213333649811308354324638291647649691740400961549138462337262178407655765790567373008098355452503155795330825358900590103021756939347775487306460012948590172843652274285804377434517486377592989301461601756340539536450007845950578212124780871379685374414937201850187609900502415988484279098853440017284073937606290788625065864197190673863052412337274516443553850291434179815306663987738931731074550444602354907004969651822445946315610644559847287498808394410640884116931096256365330870390578671501489888929478893341874134490704621855424638111748684690382010797833848152735308503302526046126439328059811244230668137502025752208524687696883839604013833633296987297208901408851747453613105677552289546493856997613061128876458030809599401960513096238741465645380029218287709708051690886236804789580940917817123271295136352351658934825099287974179805159444279473633154262808333206473227615255940676342642722446602603032371697116906065184928416787260807482651088190475065513894619848801951952743426517272978642769216623976535290287660746710427207007226272755923061636129467376239033753473604844475277003488645267466989884457410314535172467421491254086646540473100300923073866339064970505638793604334477955103822729896237478899313425784239695473643032855383261440456756104077618970690468894470529786154878808946770796917444563683388365609088757350716227757951296356130711412301283964717609187403275240304062833975555039706021744974511784507077494188316315530504709334260349388676900431667750727716142145659100745835545307516091871816236853500319180200155352912576691589248287292066191912218784053842003064057062723812341938383147381165532512666944558955917823045529473420854435473080000080717637376074272526457423986812245408793591673076043878148750704264051901755428194536270930645188056492754992178726518855744052766185624155895186902967521156623346985606924066032843358752433129705938331721664540252161037087830976942603287876042159644173419723848283582264076711158615031082268640230855852838952316749471363264835347660324873309982328981244854325198130285134936615860869705303626484763403961958229398106443963555721238797989591245020297509237204041227014366199568293327753869307638753372587863728797830288591078534768481675570368057585043292365067434017723618470860374599171986145866603986039258655211501098506835180467914658269635488189213520558185804019058177675112712798444891503377795335606861896407893107089769563707403971677122122499147769239459249426656087136122313607266699833792801556166949666404558867517932607411203820705278742109145227745274605935593984583350366766357277227715189438674178397635956638604644310907448564980683060114974469577681200617311017651001915185338807002447411801846331309444642877563749262644547422698120717870059554721725853139670978515331422618980518671068204641796351507126399671445854436824061861831647665154907003631726811621208711361484435096066315397488029868330653435936503208201391119372424900748590129911620810581221307806819323169752381484653937374049411722761703395604387276055912794186264206410681931107577043127849375465434852094173678299825182508666300712956002158062965139081349062498109975318723282410193130159058941367940468290828701831373545879781356804002624744239075113245286240877148110288021257471969669979146235722900806651898353502673824098035860397508274709729109113538522141524296581357941246356133508688256729433614857600165623080572185849348172280538950996361599991049751599562292544493536282298968864125049064126557146084655515923684046685064330994168861991844239839562975003680541569081892384693868814207731449596822232753551316563129778285906865647341755887049679414481297789644313324722146647883251069778661884166916250762981295902377196578099286942314111349881490594402740394712074341589241421997552812272481487628088889664428417838457367168409037287534726673051258742576064435110395948292285733065777088368595947107541113256471720769940345161334435078037007872026720832799265524950199418142373415938756814318834489690659123657267090265668873927930593153905807490624805920974620854506755663464451517460091252202499414094331211664315725977018666030455580630976381179356173836750177981856484047894381864669275369241372816538873944500194307170404650360967414994502748281466328048215453163127068718517477196701029373913877416957327858495365757050331645012767819426786810523608548012255168672914107700655097217773477755655801344667401056093307811486993812903843285601273804133710682372645847100610568295481621219808843617301560384828620090215498462405680137547356895004778154554930543808144282266481749012893781213024555806432735342011819589755863729549835420830237687889355463359113873454136669861359617066062944528797311251376482721451956060410984719863428654573093683392341495546722376798459978663140488938062871621599933247795015439373538419808937443402501990590732302913655927635167847789437694634527071344031032121658748906847339536898320362599451309789389155572347490022613467527574765100398643106754883477278739265829149287180378214169180314992089014494034644848968651197713120979643847446856412880293758924538648090718179138640446396620616451508905059821831980106236785137679464433922907784547831922899754422734858241063124501256198063236616677287879189893228754750527625718327127092540522985197130582988236097038816817922152635353837303368117182533451625660197551901355954230896967224042358844412817657260006882961641541544347121159237571444921532889501226121690451973796035008401610041013941209652398990515550462149467211291924874762904419190248141861475882500915370642477074653291655055184759754138049293144367623577601087299735877359389499506816096310114570537773593782681401127901680396392151717256564126630157784027789090811967670793626175843835915826211651706199918682008065773495816916340507710998422177936860335883893318210734332027856277917088786670005047005214686468195107258670458824619005547784530784732198874846190188761395900287490259993298569512180210995261997950928071322249242161197176164878924103969088744710321508433725890791306187103379673462072003200695616714455920174106922607281176434113459949305831416006501969092906698970558622650010373679072673194744424833823101611078174572687313905648597030914604146796191465317769295622137027055929640717414319359498141477415876413588694709234267580248136438342682593539456650505769422662455874700549224036331040516110314073483206664136152877410263843568217817344650912727383934631803512784896401191399085337761817909178223376009470145776855638201161833358297090855000578074082770964160876895643227720296319479893941854512906128461233473909564214789958249594966141667071410484110986384586549510828232288142764277118865967021418525051722809585546631811319635644572826664227349343503663381297283104052284983565586909325386563138400108637899891764225117405013178105791515242358904402810535046332291664138316949326016352896842660386081017633142139524480139153506084636221088115851197380062349023294977070033276929051668602217572533891947065367795456386638158135138525155394653303253770297637739772684722273456420354404491413360986563927060041510306972985954866670492893826128781131008953184653853546442786990182581330126401750521445860225613807715946381187854813700575635547881246593507693390560884151161761056277215593476539677104870379815403795196155061492349843835872880989565946401622025117599528771413997370800462711906891201445838350347001912168549235070810719651313324977331683405153698281779709251447774284537045095013118171847652527532652738174793059901479927730120942053198724499427072304266455063388638000797416818683846586300304286474670707313980311091496366629410590665053055836595314649170220969971775536596352998624202186840230413915679876114451183071690951055570946643899213552346712504508392485669516661500267734254887911604751464223102546425276978911437269161244411992420710956387599275983227498993036276406908569270503211581863497734441679381058865078580153812170383037576789480132273126684178592602383005854422456349178012954414926856436424747354846730336420166593741544389975630838185842541051697139485603780493035489930800264949503246382418849247916429361383544859038975900519238346551146604380131843420501272799400711493194194449658234419724359887239612929862287835795903985002769996192989281038842243921635310104741624689640816801287776285608399530259496703349636543290748483507163735986613150767861564542745754006004392964998829002933057501973864487111391727048178888737639340467096230350894823632111876408629222180119029799312498292040419041682561251647754161097473044641042818550383091433107950540331312653941791925779627697315633013930363570575658032906860500729557975509943861141118982307163791636139451651493131700912855425644193724939770070133959202041737271209469554911361150628448748059581839753152461069411478951131190401338952711604680472773472107367311209592264527458371149002694649839954444059817092210401920161367035640125618658626196055478348962620048970991164864205013281534155181565689812466163466494600257353045871725063869867087800756718554920197032560941892783604625917353237526799492033903955919947010295434190700252587180373819653135219193438022362245716581086909619744819191344078670258906662697077236937534773060280390946102283361815080851254986326583228286265042551221798133985722986094906414598020822888359795158563128960288947669738724618750836265620557455547475988171842197462135646081022118599785284779867574077667743526973164845632325495871412428647657728051282088769215399450096691422697398527192629647697986147889347049780866197093833884523443907406939202224262407262228771182588382656280137025238428861208572409481109043746661624456118249302876621712682346928269859861072298753322978164606483545133084021001026542448703973623877914590639084982803050697885712668743820347034282372541733698960624547076944715501186720531727691495917366323474106113013547730556944601144015868180469961720737600419964489112949005641607112618295396331015541459826340038399288339545675056863504874494895823275750437375901285285026010011486075576815245938880003314472414376048489853764579163943373141823504347742454810369864400098867851522082944652842632173135806729865053817544436404904030214589582226947584563462349971001974972388138348485515785170687195254127733643635643167857584563410230428426976900194759681710982524483740088098716369674980638601464667411129452778120788042223118630748135355788150311667304758811945041681481379343189154674298505125804907721642120041815639021452168456394886353365830859543267886500896654248875934501599778488812603617258876090775968439841316477268100181133173426518740046649167598577011970530856823517443850345419307996782237694956729303797126105534400302426432258538115564580682987880578506505084694068388777182174839948302526125534756275488682446448464948925232972800254333769474776896240512437016885755210997258836062223232840503579893618938202905564653349782408482593466851684796047631464238478286971471307177795698127120685988684950660084538575878798682827190117796775263597334057162332816431195085498058994528196462406486406347706308312651425945028653667984497199517283475651580029065076371352713002124937059714090894960180904721755240920419979237092765267378819718106981611611931299921378907204138005714570473658094775088310823516105580785210806500562540953304312395218791054407523721044044176503902643422531463107243287189278629287406902342263332135522212120208574223486938985474780251226942069919686151794538271195499395421341264046758520028569266172407831466983254432000587740214401065372501231613732617452075031074143793432244514035833940028532639035934738449486334519070551302176818945894508857011799704637963252841641031901370949163864208176634943019854065316219182564888509052395044539671390162312300012617404318530753162299497923835917146672026320076164611124865665749330443450175221085790986340569371236688981931783019606832701841031972381882050365940253707138456351699565436023588194183286725997626057162161528279148788641645445717915595287905960472726141094243568926991618354947811807854914730421284822475606507218897892347937440260616398475475828634263000488770649831361440580264178507629680350646336321417494767579986619793872613358996659798946109933228089325182876436587262370511012671314650446868673443106889757888155772956352377156152131393820647209882467668774115584360657046253822888101719531101513876220385281610783882078117082763858075840790304134558673574435063801930596147241690884736365206970535574362117038910802853827688615022522480359848616150446380565037756467137912962418599551984237621689493924077770791684910431846671449858403917384688765483221483742297214238414153732247084827477397411139444858438714653826469976613586295598281114965112491491737954125160354883667401449807107121493304633503164455969749432938692051034695385068922363985628714543848161500515845764955543588449483153575578150167105669818160851596881218509943081930322408411302856678309191908912311239862506861281391321350828978969410494959659155247704584420114271946766657122344942493924124464964370856992115765197245640201370287260959079786307726538643977848937357349663027517401453399416322009764884147935358661142514629844353365500159446490679741402517558751841555949261828420531239461224055921329804763761211063008546036576009555490393096602412049277834803153259546359018890887980555564494533328716110209786900851248712636098270076204576550320694652414900423270273204976904930524530159398304670577584642426848923437819938141210332820823717002836966632371249206063028792681945607908379269274078756612990409179158971230604471579845759957119050274864591053234987135970780420491993362129897354565771345918848466605695980419424224706823788920765770140513781618858704118784469298044905028511381067889490329414891797654647694837526528056659508768929955489603020071845839274331989143552870287595598475881433851575434163426146575521508463468151035416552973025986265222778324636448936682537944178943960310138586692089765355572274462388613843920070143476343576072199310234543624972069544261501563791705977748415270448790514014135381906348405438007802888311358140222383659508420294319461247544276389704740869102430965811980872806821950285043082760843039213439870181471778210587080488011253057732311387772205955456835122702327133138303016159141305289957530408173748322016656169150747536958069064383984718182445985119326117734320329145041935844926631518212966872345568244501314204788790165602992314463054386369430923063299429292624094954894112450378554748380675646718953908712513372749035872317654864618828075032425178656576799989245713754227695801681573571615058731018167882741017917268889960548512372917804708073758629382517308585035191869533945466031617872627230687304945650382522221388502190260161150847846485306628708253705742583473752956917254264254426535026703828748243094752975995669721769639770765994892751553849192024698824024237168924028485084131019124655326410541605160363376703131835232947788412712820171163517601816123265300014782682776242983379078842778775684830709118049060521463575763051656983392184039326930061159435872858945347877725258286347581368373877247066055141092496056534643849354828039776530172674909575610849389004799073757684292087183609126037262856490142201803465075863597607614537936298098132886006319917178193944739665101593600656736743116090738326034754373143622627536228869287385318505479436875588933977360618584409810632283333080615410171926021173076681677121610675578642505393849019444275233352196028539571850383509638959555586676691461402792116361834093084043105704728521426799186761707796666156635947162062113909217014220453186464953708513444516875083102197825806004326541016295639093155181199916923741879087423042951408524625645085834385471203078067666751772678114033111206790551785386433107371183701430477036081455508560444646467911335623128332134253177659685375207283209200089090211465645968799308430480246330143895884239311420053968027180849125858643896031598022215000347771656131027841459046621348689630896779920835829492023378841005886141348132962137919262617388084270976679446627409642978635856066159111459423682221183667796522889928525766717779652207854262155628391094254071234730272702617581623515354836027370319553641504080861429451996503061055664698270472220936675129834524762865489471420301766244232180357808617632768360766973303731718271579801580856192262930415297871535199804745001604142703158879409416107509928511529441470374410192329448122999090599731628782053286488553920887267886056180797995344588531338462595156341695055152387655850743950034411200245847240447595304828895242276160247977107867087908793777599688170697257646687668369116630345034859387877944343554938625925526699344389200113363231774504112081923265772169597016002957556460680702144570220272008596663721786197631394472159501402949705377511889573389427031333779808991927810615113024198303331730743679741502488903993391488972127572417699373260307788591283041394684751356047960338398516845035063865075055716109903726920359914214077895632312076533267222383579622381674081556569027353963181484778619974609140224953884545293275939591635437219028636907844879544178714650402389904160755241323202125835915464401648129705058400844031839556552954145826427502938154269132307662670415756719154639133488815500165139662293915920628500449055371179387964144217256779881321201936195203741825050049818008170318094368237671731961373972951011966154319495066729727522893525506428110406387091178690462504461186565294634850351593989214787365896659950475464997762467141791785235245996204923870770364388933528916388675263571458941735568825302192967870217297383200424309394454053081986690440908416192396922556985091908610217252602488790332501270869379928361501275956407826543726727883468929506650438847612401868133993007393469133491601041683283133260041601339668377426399125548998538224619961240915819844412559585550217868246574610814902593172717652419825830349066593153428910493798544930949988741055394442417210361736102472768755055969792457468304053672137189481394372423622707863621261558044945858771267013670824546978631746970018104849515962433064857108593903876420916968797549595399756212333810040723732071486754947185167414273449786831880696479039809679932064916867742137086883186461115298671239045647537223312485246488191724766449416633441181036820754476013401622499476578503578660527706015924736891205333144838865805228795337656093692329372473499092068235629708857355424442718797924664183995400559857179700766932419089221026532293375675664765939919952956591008393194333898328939010923296840974944998993245063885618529551403036579978148852660611312181969769234859158441252814609249572127289855228830803025608663194156923981447958300558524108911674022413604781836581130460654045566525038038819833387405717817110203119144433925165723377165585111914627777366473257777216791389600036320530758870640510964582686225422178863510730542077737013736632286653231511632030265883728357415370351948462743426953590946831202207481022225512538868032968649318847944373500140705517612430917928841552099572509150545297768318043408047480478531775223066154879039750357640253463025105429451183401426937252282858517931078096666966645808918965118840265847789470010687156204839833167400618645146974283615774683850119604343050655409640443233753719132612560394610458474399182375724270262064130470511038165376797553005118608830541269108420867681720833114437100507422998438965234065243951670366723233696506913293810101930561891438405659708913817440414553755899810865696878695580331209951981949467203558137979194617128289019492092374327397832341276054025714018693916150845729825205845027045980722858658709320504466700302006448851985704155696692392249340894332098245157468103642321392947481624590756529191294704836143215275153927105258513788325605033464033685594998511318201194458963848018661935608871313433354874777808319356730960721640260139548748694660333764349929063232664628348003510821699605004578966059930763958994566010926016910508011517056430630840818159644667258744834805000878919845588726613917172772497722150214572870573927450791872636774951561915971040533999298752725279560850535025845296361585887736553351131397686546595043288198822305575942036142118613486497160077837586029485520272999342794938717112731751238809240135249424035549653252317001915198411297569797030532679209574436828517185219565479456621761082003675261560566634448895072138166740273258021640198401788624578498514537112517640147677053787028278321856639866184707309434917533825625004425711307706444546955201197659188917359109764498139646817130282422081120586781641342481806751003348408826325887416152326765001350645319206496729664046494459089364406494084755985025385552797526278720436290527388272560583556012151203566800495077391274072931777616733161139805769896074587647124279229793797377549823598839768664726658980255765423690269484217527025945267679362986362987436312595305026117533215120015626054897315899384053601732226667331067810284716241566311290090001757769653808813370151696438190341654836558914818967666204538125103197131307929703433197397892387361839479232359351440639186652016289938207889670487707864331573213310573450133851873788453231655186828283908047011835531989418317463725959688530278411556365525923009207959259728667212568930211469333805950980458702618981907041873657633003348648849196496413165075050393618232036819606346136609249519640844702993201427035836217108357774967280242106113056416285866474296115266425172978041635987581663723122581545086866913239517724002635720838674437209021783689901416893390747285291258106687971485915729479012430328313329791020022414757371535133557690778679317438474592991157557524552945761611204289827568059624642496382163715541633637117875527035078054601483673111611591446931438276610642358342595068401718903905224297190745875962514739557502325605561081470668829944349240136033807104793046845108337892039789472760087434698082094485796593583107156971772914524823862571280028493395434960596316353925460050811316776313449021713442151986694551722018042463297505801029398976579064759786718916388962789618930302509206971644224182859855312582803691779944120680140221447645556638568990103415667847940362713827089686585514535591678518329590307006516238581407442577782854452209882799308246911802370075481998069792863095224568182235735137577316330295477606783772778483063431206756600660490966573304976018619795739534540448144201718201023895877722215826810909287256334605785363805264081231290832450090995718012021837135147456198576255461074270792404648075270168027685502151997393983682807086649820352117595935505152421824637870482250587675719140874916008447797186171136307933825469724682154275291718563884197863804824629985161337138360576838748701806495647033917686957514879222365164622278731065194152602754548396105392019455340219562780352957350917723883721381872464983447608100079987357974845208560196720242733643670499114427695223416390880225625647858192319804234935938120038252756986787411581630862903641993956606421973851193556921189379443765923945306596431595036042471901497781124084631326569256229393879737853802020622752727974573411289110559060909354679909204194160982809765150887958488140164551044517351399896709733843917526138230235953363372546775865805168577075595970926261772171292777700222341172685148451781234020216293943737200645351416945202308110609682993558304942034560945565649748911579339961243342052414574738472253973225841335657843643035375647663684179675057292897571214970371980099893214447220551453191856916495954344189969900797647080662132858576250104610063431500959551475629119343142549116342451895430839045249729254038788495597572511365410243408597751556090742092818108290607475121202553148787868403750242859025390436154573894080115788205281362703675325453546127981059588012336951733252810373077038899176714659291174944243697410281551903199491340533903762641704151488736198143158233655330302103295415860318871422234236414402196703387993547994216414368429352057297965452223510901614608651474204264854039346996819086420520093467902520057082376076069921193132289518341723341909338911311256815244273653038683158424524685567045491208688444091925759264896563280215347030590011629991321385483570514829395190191390145413625875862205610885324249463276105027242298257582439639006774006203982243886311712738104277386481522102243616348540894922549044666556800261568919218248479227276501371732322374876549622274405884082083396759821541983686256478467193241468255927353617281259309699282061241649865229324045360714530188622701920114679950605493677974733761458966354422668837934777248184926638909132776817939673909033340092888462295642565750198883940496342163137327308460611787533167937932583962687695133108215094919126370267523648005068198673062135027300030667060061070205292132769223810599743162747579276979425428902444074659420568400042045952430970264433639797594776471284361187351151049602253376632707914773896475775408534230905725337608194299819470472063468831310190137914067279874062466658414231257935529161116237823833380873751629237185336532498373336983411893726463435016864921407073523287366699017189317154561349572047018786511225365486045134432318797730904054519101038154130733406849798680796812643249533777358667381030874637386188351025938182602528163658657220538732051776194916218882152286069542179845291002258462498569737948919065059800536158110329218690976051726057936677301242627301924565470272368289989097456416254524201019177665729584570945298063008225381739637677419013364279764044881149987067157565918106611906130731037190253556824481354082122453811546435628896379131298819657004827583030738019357666666039842247349898282476701605342594700221069398769317273647141823447663668905869839369188829682185073639386648192136600817368305024467122342810135427944797889997753107000869403744922917800328470309298594729574466043674640151491558294201282317205511888027593274244432984333262707528974239255631054394232918971932503800271287153942450033450583356874608291474756166620060461794805394105676012383982201677416787292995009909066178810479962582314584543420857639969990226228775031785938609988278668206486650619101975164846736368424551384681400244358667833438881855695587947476012022254092027850159419161336504888454402384055167147899385980575360687926767270237008670000181423956114548575691543144101295068324520972048539906155872345508766332111488935687628666062209621598486323196378375944296741315923857456397539467313099551187888924256527959603538370201884457727832233332970777409004152057466104789340200012617845403979750636413891445590973396156759070088179612517368735314817116867709168643632796934450516623189221341893712975938038682495887454818653472581117206381274982997687445288423532085400818174081700218426401658041955940502584557671622661172872132939983171213206677586243688730318564832324971660083018742038109545707561880891499153716680176996817066194724828747937520835500611158268908470362621112770042805467416334370567861559919232341776565264232959168183553373995671701026738554984879549316478005875489787729410104317021692150301754155728859111777249949072366463797941088849516934244781412589595916060604880059612596330942918395646154671858254660091231134593273884361070594160723860224979311997534172327872781820003024674439829625866707488065242098283721896882339150044878524472400141395298619642124731079940623977513189660888007257183181675521443144635583538646310459885684848935260406171537612911628493010803851892854158981085894657263074272087125086475400983355963368800789965487475301652441302377099688983881920570295968512628797774794979802006621331307173631015753642591911318066371714964032585463107715362335449119096901007656442614341871040461798323188465621423137453331397446473399181292916112036406473247779499200912691247159413617848837546925108868662177083850101818439723563930476417038136156242727780479755968818680048583434473453626455512122593488253170183047729397493060121678708735212786116177618966778657141938643776057001652671126254654046606868095712888376545910707491549959512499879923258750529149105590474068046428030898282191024681958106618999329000682477695091788980321742939033535151130604351855112599383193690807951506583829178987708997378768947655837847075875275080605407623789190937892853409129135764301314878520116867109659801132530725628742199885945913311057830776454145785444161694173594481178464059303127780567563386869420993059911737447480570027038836879019841267558219002544198894206744971850881644866080977220040860814215150943398560446185886939504407741008728331345412937910975979383930932388805660585346038734801928769344871340848303331337321487139904274838177777598306276632679516727793790776253661182730540062549821954638953407392243907741999613413120205890890466569241165526081208177209879211842917689840607873661298034699298113787653965035457360053170709840053708688250719036386030201718838493155879367638168066370458800097828493073354675466831059067011395519332953661111842305201602981400895247239868803155823539363445807270190644745468084990532106899886248895664416453939041798868953230367349586674953348740925496559756752114404471016971204684729488614284736876001383314914458245587839397791539541642960579141858356523232930669690338813309292951906943869975011176107870997430313938466238322938767297384007769347353300677071534324353709077168693927528174841653850115387735687913119077110659453512687200953549090137006612402254325393116123808233410373229646002180093814080453865194686616295166545341966605769610008975487224354519639569184195382165009438728638030690807074401548993007049392979253795536798772606131431940361129034350761176198254091084711225725511668057453655137621130711351758935119197417501480701968613116274265562329401075010362922004509377009158095833612234243745649252477536699816921352892340440790260617708558327327583344211309696298924443643260108095072073946316845239616937121952716878749492661536756727434195057752365235392112315512151130726641499619031725490230079878001195666075522889746590037354328489687626892285259963080459239158461447181746847521076749215220896015004642743555218326220453392847575315564962134173137743836679367925472981822642176681270849175251870030448646088436236211966388205857139096626821794554579025709489382016061221460783822301459409505226842850061177734815951804654398369622533305700332238573346491869450074924069152064984040948719030092660477470580850231544935536669931939625407153089135993829336996204944399819485245241417625553922198801831360231610079298471315953076225516858872384425655914374902786127259998389453152062660866401858424485999529326509225771233797201751412168189935341536770208540994362510902346945531953673734525668725144178487107180793605509845277899449405015582610374546992748805133764298944782491727121890981903231428937868107333503227991714112196009044121617039461795593102011647595408510024977116723617246140673932488343562583217663038524881649781422629327114684704639342908244640666607871835965133823697287554094171033998758611344456322845272649790472651912137739986406490411889557045977292078508665891131048500962703407651266618373717081844571731710575900575363417384721379288605237044475382638803501096946584510105029283519478795614417606041860199978061189557016848982152583391287173720022326675128616664868008535959562785964158663161844259217295160610136583275821516487883019033047441642310343129026323362454724256284892353175180843329783360605843836902569994696593105364158876678477795921790351327285870929795321171282827780566135596607163972265303050792146126142774284293676358345356784536866389856932652329087779088595073112259834642622202012474758881976358267462547067914263474969387651712239811443934750475089750764004220588099656611529625892095311682685236548524631759381988333244575874903938105195191926042855362139949047319504066097719627070816907745951512758608506087325009507488863138174838037548097622573950848283337003547679386059893014071166591393530061618582483321959439465789369102084227254995260122571573993238691438767371019864510520955321877164714550982404498726164373653146886444719971156951256327864476762811484350286170161592470184329539522189724521416732441177843668323755485467274775776952805517782072648287828573252870526891909901087078477400300055871465674814041844898065504330068975201534027375450256315757046965163258471846615995911549964057248449552425709167230800425540417931053906683148047419499695539426079954646638020389516052918399260347467304142578926591608203649657559542515660865240669196254499764577215482834529101987607489339627185789140394708556262209589047960635956146940177935395473235626798449972816910040440362141603693333902893773460280238092499116236288727335191318834364461251038156121507260633393551762793673688733393392044786283274034859340225581810898342445796680698166021712288853534703620233254116793323180655934653618161463721681752974649995009126224353070985783255998747807541341723845371248741769718624636739784564990684746255831579683365288876841250028789195324154650951490942234556733358327417265223949574901424142408456593129473198785205105545678834521826450011036593799321103182415384262286394759890921650279083177697272093214081816286789216402080074318011072057139916310022763524338866960537530843940031176230649610414845838035859630531528553926674063196057400460762650159345270582358164207008998865025734970797328399239936989349678156645866559672816437758786732985395867572554596645486102702199414605186036758965832142628424165949445675941113878547645214100118066514089620759742137706975379008216706624816748650733269584763321412514111956764001151139193883884307296307184137301409824997886839608074191408200431596409676145709584107278546835667712492551961420394835480186951615158941918475808615421671756791319125049825437383873045936818687190131086351965420754799001760809365958530203311625857548112853409988148088612266169462026178936360002009177264450973631454488834814746480998683378457274492265260535893482096001782426285575705675549983284694054492679355400421040110240993650295713298083472660287308076659505779044496175942759211390537894846951822033100131741662083256949549927834391139495642888448523866765896905175990656687340651869891579489640099321073720306877431671880218261759305445920952403691908457288233111400097886737683329797969844169450015248098260792353104252314412721713638357753315722750026266150035414883727555154563700515439815986822782982960799165285227432607458587289051420378507975667401092920857622557099925556654777899575066829589687183353870715340172398552397330341693925285803787823775893405559702425233613428062227934959700065542419533042239157960318237873510304358409532417261530706630867586184434234484497230763237173954543601814503893331703806418486807836170749361076129501621642825911174195870043749434231727213326376724567501224923950916784333001549097604099943355750923930222426902092561905303450115663541278268155743132477214578623079684182713816936317978258858193238913168633935238496975670923158202512654476896233026407909977119491036699196077786741544675010579629758006850177448368100672208297527403105335118439628305829302360063952383344328993342304322709436017505637077883923527915719641087112999431456341542731508993299358930136045495655007996708662085696120694516565945930678304337723524502350733366766731696848983645920377844323764045572068033046260843578799739593804963247150017940423965022465460432327524921347205284021611533406976312792084503674510821767372821557397276750063072548507039990583670573393567331364778005529406522917010763476027476385993325436451728193279673520767479842594337862259636251579510548249820713528510319359596834080732969709025574164395085646903159940323526858590697840575007771298296191808873400513975804206818992061590194224832271498435922828218095038532661199940178143289114847388262579201486162359116742402801106179285222778124775602013303329929655820862080206702121163241288413564727510458659554606554303812343379274808832636766100010331660650132875164124066904594226219617804833279233143183034032716430785549555352423116816457576495743718723189856032118417855810437321481893337664301356551990315340988734921538889700089097195862311370654108731253603881199002810568266688467441112730413633216560213712181668908768217030216016614351384963492807986062059415545037590026220853967189943348312561967848493036877023807382080987813847247649704921064751209951181551701740403009822141746459098062396583853253636660464597026652284121467374993784695520804363821074379442763116803694397050072603092683753716720830837667240082400812205099898038537495808718120346416849344029604571003669816056534087734881099139958551361698875734470534442286592620065610740627596198323628417989383868375263595378592529087124537381366486767381168451157113725078442720260717965021417792391724621476271969581529547501360310887539271188961176441209457441511304946988714142755735401212315250525926146195048722238117110465362196626537620861798240895549469454198963877052258697639167994118168915730402030886993994331990435904856860252063490175827926855028006733952133994167026361052601129547116380553078618212691265745563425545948262599751068484050302488285606499254802669781367568238483270999059639380360229707984408701056498747394739874161377611689654412035194062226248053880160677338229889003670196461503456259900756306121191652555643151605922483427428761245588062085589953034807386914574064326692132826523461531859585156635265382170276010566733937446626526862969175703718518205292390145271024476593487032812194093814720022151391980061197708267632687189334275650697635380933079589547547396181505532488305156944696544344100212360274434599065463080179888012053845907624139886071056209339759347594477088291950983781835686950556263750937281655542007956692335375771574067257281573825343083569296877205387739180377753014460761466947785538124969601890592573062399510716333823517324823290662610115763805847466982388713768860673171669829385512339108742469478691566206712106218076964193155225222945789117037090523262781654049194524883493715355861809013130824307327089458724727243386606120409714504384450924061421700771045756990782097319140367542748359404937510294786880166769973890859592793512541018651230582432657433258751493633929898209739641368776605705536566112414416525141135717927413303257405297426956504434800291710767501928106730776773701359249868316228856061358231893786231526516674761341758209769140587838755320720292654428046273130257568438323609301708555566347874459358726705858613629914424855051405357272813158341749321188921093019452482078216079272554607960453078808486466183492392895061285780530004703205682071165134159568031845956420776960449162318183676597026136535674835503051361390435314247341936166794094224231894971691458115671705921207907187239556196554759965234674308478845938850706279739083416567784040859098556667119009625948264555666549420036679750848739307646732958824457184979395381558361934265133302465175507241509785914300939305751310723161560544407419781428899718016396575214814554942299493285267167306382458091649755654077898400542707197179614604450258200559587424741681897150939578844470633156377883726057368545321997925720099476962910891119043394472370231550839578970216528086367900758992989053026860053030481206916231726916482563953812470771368242269205863627195246860305521359600840272444956901069799814197810843668487542635718729967306603443192639098717968017033786959270184421600119183049939212017698121176241551925529639137029780226262226205925019521861847832987817183944400584904670920266573114770922897589345834816249178709751947186583113454352167866784185331639067597340734407030538420965127713786437293411975924705017467477477204418353106026283300245097857595295506705851545722199429086254854413285215471415160365528594123784799800262322803445282241557340544437870590256676780140218413158475069811410123521071354797281509246694465231662194144773893271956181041872945642708593478589738040718305120927747207822986024393899930398437034896821542069619631520304590917989492978112180534077055195626792293048376533668661310419713933068111312195658798550639142608784094863411746326774657689919765514416571554988711293841312808415988731905642008596330574669634608294344506575569080384199699949003897188907792949162599258286734285586739910184757353005214519959110790147980819908763946360255443888189348237115050836576243492028735730912497796366378112327516506177207095095298635159959409227060050915260586777205425416356143048375648755157233296440788540819977043227530481032616638494942280286005359726014399721372587487036756442649242826676230128655579357123070220680364855745897352195660241009736074112698103840253426969080652703064157857610325841953558588037657689763116947235991719829462722247071304102505965096497033020001439507311355804508777235775573705610056633181060881630812633806948252115783742997161381304254345542625314211514233520666758194249438613940152654191805379332596886996990800576871128994664167995350694553427351341876671136842403733530143141899244205908715941792772245960599070409295727528714703079773421206239903010002752771491664626398830802680106771654767487095532932223522621250659577733560730978340437854366067327292227409249224672559507222522061614833241551399447389424965986191384700807392077713663976525638259998207701991234010145301884495445243591082481021193051455120706310767060577380596349595088172037413568750779080032349976258419280237103240025496240886435456346158493880012934245392592634563318970053074594288576269918873945446139435107729315764919707161104131693210186390853234740339612233174980369915803800458638512523543557215826748177047178399607974684694048244336295041902438326566431114397404268815863754958435217148994037834957331812651842733459014077481646206220021422246891504634030029816857653480748013961233761479077189110048787244362434467744556010409476699185248098331422950046682441096591571528298440441927950852934290626841163446238050763969785351366862844657721151248620085354980810948285857138683560649959432202594274071693310099390049889719452339890675652227547844430648881911515935785052691985554965790948319415515495783090711130665223778937135694467653064771215573832493659663908775745466278062491579259035013285502710538023200642616412355105577285646952549182248078836691160491328231436904050480711893205406026448482864816818393111130257447629822158175159890644897288083493245682498372106765206222507770136307072034970897524930040990682289130852647157191976639546164509641508646250258986188246810867838890404432002595962777456828797827123191332841019948514774672233466082903758790779338457572805948926868992554334175954373640911639902939762412711746143104220115431263010857570940190753062270489508572878725257428797431870917583217011484881810719963264433872256460437572487448497368678413242687078734577022997914875181097358221101884859304279938036154247930074661172660522097115823887619945365417217631672566127747617342670721839477096497142879185831601366529453501885639927729706034779128176498886321622272116421436821716769949753826306807119278834330352097942234264197735947906699456921536508088185432568059486732354743855652497900811409493149739475229308275541563595210973834430850803739689480574202251765067685662374812851968688806647586004534935437490079497642272248329438291936418541170409245658341284687485600814128038245322421573643778148298976995309053638341419196139401871280775866564225642322248787140200223922871827867447712802720698548384673420708955061886461189884943516446821091829007145355934989243356249284308695917337739055595776895540868684607279389907593287257798982385464094850196485053208583220904657349530478565297103194563827601236426959266352843611404739941502953241568723813312106072044172207635374655030655271421698473377338188425812582863082827983032842999595936618212170203105437665891067179089973399510227593913997979061842411526154679519231464965724806795573906920185343299402470237640868204379065443833113812010116626223900843868470738688308860404724306657881254274139664890122847696245675857481006405248392915758159184384360505941447587748702446692949645442191582913796565555789160571410205600415429171729392627271791258271083694905666935596037024614468124433505753113827901417522167519761882757408347606770469398226782796323551118817386301058431407348887468832075676164423539583397823116042041902671421732332309386235284063580760304857015091476710172991836926279962482269509971733681903197258932252073345949011263391883721610341722557695165947617181583815838680191230218393000774629911963627608109485504539592563240898659707777642658612578029427166513744875587861106119171944141166828334096281330678721834143284877161480561727632463373293003438948445708063467794742748808304138283434035053366316036283613697917704903855267704629871773580930185036516686562674930663714886396161022621991862400352290920317200441805478784280921659848052202745297906288498480993069196237223792911065456155243777225926537283080938281466238579982965491003950580612606704786839657962547792080901063819070766073420215457059490090266430333647483310059427350350214723340501865029733724684015132984258948098605211875485248920065392023280653538413910013748332811154043626888680089407352620650797966529378842174007795836285294148187521255488688474540086208536397710472225620399214399960262417988015973959011934648109028405491217271277098702193470396380904479621842065025025041861137102984891106873019356236952874415833405696584498366686040210656495597943692263105454820608444953084133985442578352285347267297740597905689718049383304789419425923698257689547711058012635648448204901740988745285655033165236426115457258135375003437135181661692276350830692010060289707598965071541981238350526113341999381730926044010947780427102319342721027342392844956618681156776060858499003977274014796144483706672567519827259894760489999364985149834993343053562519034693983806928745602492931541820877211459218178250904568150800219755015354793116922628653778121252256156414489283428814799109525687917901289570050607509521935186898034556990208104130299227083881096303140076370053677149359409961715158368851321020300432671648262844737900010142600463053881302940003183638540478794806407486706598189668609611351405393400425006503480441529351427358575848193222531762542031816222052349757439356324320628467053677381618396286386118823759655248770339105593226615849301166347346813066514508739429985892441008537468999855649523570183434651521420055333800175207007279886289162965160504831657156222310111129343249046093662765149587032154842201365948800517310278127884194926597447815885283793190696654608714409654820997991918847800114013604209854065759395183950673137127525417497476918195526961560395824169630960773900529577509565774986374306462437753621424334532308508533448351364297595398072013942111283158408722275755992293373000913814317798004246005975913263079062572270966857774019650176072715461112767763154288709634460022953504131240974787252730368189103532211244129077586895312085737311104732732522833353611514608741081151120751424031239243798481973554714930689768493650591639246539869874093083005876115820909723012845289804291345373408003521841944022396829517263609192575437206711817521228095725832811931282038821898706335834184429444393313742935672379621210080693296884038834141120174319310601514641547664105694329916296037274275886077253876448967261322237166301718951895405594308295409856858349286257211989213642217712892594872259819703772800503247044634354859117045094410706817065748020918670421274103561970321262678487737684210899692561155880185501957974792999401845307255607334489220348706000308963807591662700148857596325904110717161084590297922474476190472068158368878583249263612134810850640750416079183037383245864533583018858383056860723897484491884539318323489756373226512594339303749448188676034735463479070498948237487687481879396174613154661660760244939085411588526916837577713170760313679910380422890998012713306462906635089707073060046432181702630159580037198076771468669318146548269676867998587488795073348073272417297697764736667903580466144890880584000777500736401907029029475271688807053628277430697462913781413888076760932244251848394120773473799251112439032210108505705852256877919329490840690849372924467080345144948838732071317087776741226770644969729075979780436481682211862183745604458879995752798121854622115382177000075100842592685678139775776495034434015370987374741226823382660331953462391853303031205031112431049259977360737892287398580122366567934239683143445778407041917138801330903267970944920714018832564495171901435367514422739904323684387184212604173814093872621780651913752777505918678152234579334584065260411828864242370191251156388304721787090690298263040485718112204327662879882377758632152925449185825243052880500184067638350694901232075757524044637538842250856357677974515621324793283610251308242916627335097236956177381703606858729288259692746153329650040351824947115973899629801520810381177985811491230427177762422889886630418182188947104107310151660290846869326915448641704429780664600455534169990576516922357863445995745710080758381648384469650014588769090580502679102152347907631535062950254738301481633645614651646438336970909284775110627944873060220235261517571545034628270236740002472282037170691128838265011644119230309428172488287288983301024617393369454420293539097954095566576664820080030708812590113645131876974066492867544617128138153403470881107788539509310966326109521072564224284394806321535897174476649873276160803590579154152067673396462111081503853120186276840033373315357058568027354657963325174981039913715926050583859253538095739045505505757712635456065818515593817383650836892938666557708627448947904251658397342181799839917831584479361360660998687594703874935174446636697240925369491345862757427628464563672644107727820233180233933015954592835982945611676755737216040205593607373999498233274540377866475223176385368654038513818173395845651964674357773628067915553762488231644569523130782084967013504333624763478537722885949457862244072319726717150542158592442387420946722397367425060037858305104756596802604052462307737934357110204141884446924011790738741216367239460265521360762895772536835116347893002390558566199254098622466935314126060213942900153850154670323316377486781266518058453730915485004564882312349093130355449702883545758303311571453126064617278443488008397319171179518398450565698494460287605840158730311992352225320918147670417658598091569201585205648942427799339303199837371736346021432785564626192053289425174633176681114170765166321962744835864836058085182680487162946188381375099248301955019301596595357561169160503760227379311148974103623442720860921896672164778651133034956059768183804820467654709897089093959992002531884807557433493707596551770920578010299371021151437967268349137552632352544521929404573914924305359239203935357286539285284110283473284053753615512983516870255257505029274262143875122180860763639521552226813086997152883911512766197728917182310596085241950655806391189616900939572422538449971763994618216864108766524240151616760304799166604397294090818539185486012074790270267815257291811618184881369889255298015787877131898059253423323494363908404516106911787808082991094448703627237590882733937459483813322672860831886108812163052431912424233041889394755100505991009947483374961432232174091047485017824875894358589819056713233049082851597271430325030251755523757997495473675662738755710517721258710794791716874506272715756393626964456823272564992557795971211527596294892046955963575884373846214433920438382290266188122955705778437684861950978417044227026838150984967252512576470263928704849737673293017354317002861285016583900004741163846240868196136943977297627877213261276962789799708781516208241185801257139891192000941960408827195764730857589294893691978916392792358066366621955030884167601416613112663373228998443414623523654638140161288264676512836796508239806768904582391683459048105413232893746841522775757677614240852735744970687214735205600402084766120413548316716573111623547593295995426878110143488783376227240022391516898756609014385532800636447199399093621604042905888492017076781109800375952675661636148237770846175517284849447180207328918097677175610869027462008772928403770123155866889226441940718651141134485803664766766502946955601963228991362495206062512154295984094730395874145540272153624261262749214642121651103697011960718762519061536635936556356490458538653704868762422382152242930228697776362884747407971594004037495502641872573013160581008731429931366747139952898777663369888290423745631007580989461040375033936292778002408415669175022436850018673014410024405845212619370553047712921008463725581981506551932154316107216132037823686700101181882527581428868995240317665733016896608350042675740113146398313163538708606977125315481337061219270287006604103482625188962323005472001788406067378662364158266056663919337819050523448007615382565495081629590040808032008502699877277866185689292262712529714858754394490663423821465918727316965263947553826760034555010333678506717423596886734676774938288544042174083514154418703799841546910921634059153110756591958840148179268175852060397354136513806983696146078607751904020301783159530658938633911344072857867900998882983882413777336198320895369815889360928899628287702066402520593339191365290402359311155229935561968862543254786968471395520834132285850353828406926861496591734118694244691931037436164580137986525192884756822286659308563126478293638445556160369751806299991974096201127999149676439954435352989349818760695030956452224583905695216155206925524248189722127787625417002803203935685624205210559598912878381773722936209438841355361524320875657046879145505153819562589571871416487779513173261003256231301271769748884392165455723220078661260392575324098208626139888757847910481140744260905931629888587437744816262762618824754495629392345796451834287346208180089088300270655410128950145460237978613714750050900010998413489489643947231934564321367633659218304162278472429339170657860928199524181109012527443737809410212756274942244822403297319459554367737080062648517851204406039516140433840392565172413661504329876691077304953867759148359049825434212788324804863559645316561537596908025809066341493837363575533293020132986708080739333576297290809276299931021524181234391699041832767702598599953624204971353456186104033040038583428682377719862946368300850969067180769788064166100584143214381362653257345797636350619570716577684526386446096140713536191549169858127901560438440654191526549260623369783962038283068756942147677615653726533557334480879797762653805919059835118782129485564065038592986446977356914704187121544123573280555017836322936304109597348114569963267247056283556605103071525974912610348433750743730245689969612449799642972236174275971118396072807241192891356382997901591807111297392833373483220779892949288890000573904515160492058383981582097734591298034355117558227066511898725721093534674473238604397709532327826123425558852197472072778317137095882349782545654170462116252261617995304925149581608571021967478973035313741326405712391587832006948094947934863268927332117887634613431662781235857603635121130603858170912619584317132263588546452336556609246235941505752332098283211133904367641628640506959702401568474940896105063530011238132148177704153311215853976419181329998613055050832718958549251599195639049413099730228401956654413806636280700933093504894453910779738568318330089242303941582385167832208383495814107526001839079855820731154301892618452541036304013637472156436751848790484132331285566236655650271669246864109474798273020989158921072712098664118886556778622844046276077261864002533700134541339742253826065075828729808011048610103512203123565112672531177185850524458411886604439297785265267301029850991046328440589547869528297013223483386769482293880443538670001129764561710162270715788875034526904367723193928534714227662832855256128208844793094710075800967932291508308438080146552208881748011858132861221699065737363034806229140069985822555310602870846598505488816979792189318040414699343922623045799201282560026215095129629066305750393208907119411041160917404149104815102519608025872590022494098508676835560320978461772190020385514963530905254865443267300273165658444155990949386003294279977565343165820442653137411322994815543563673020589897905913317492985253270892056852102241479457877347629210587936288523607400963247233989054869671121488064988994513168555746265459962377793953971321597377505260068825412584072818681095999777244914335276083074481710447677459218437508466001081706703801763066603356830838119812866474344755990567753885015101015732540539011417424514461305196194967646546064830483359795967861484170524200019918845805265237741087859329628657886817381629998134737960753130966692190059691531573627530163220524111809445951223390235673978274165685174493558623961610883715796132105778112136742250709120640920296180691363638713081975716032529280512889496152569633028525949932686664962908294248127077963229644635363724921193215522658626778750433283326205413220186695806911317235985272396932781537226864471713506186246511100277610325345450660294774551673988673755878992617403282814806045829211690289226062076693562548285406843990073798079496041020170077366101336407331183829062982344800014355084102656379439931149511491853728630185629727353417455417893312970306691297488920165070319544670487309379154451895548521137053969627050400397301147219453500769533524545636940375771152298122442164189237339484789699175363520787524105153802269768950646685956828848968974846625716502801771754792879616777723083820782073412918611918817254895109327883896022432695557570366777275118205368065981525757849620729732287044560326871562084412637731233016983951360869815880808429119364210984261603296307257426876624870335126543565838681599639235944376358135446519585050257851356523633301990618625264993529649320803826391114698885917101171197047234541491833283965579713099861797756618763794852079932730383771608239511813685260281125671957477179715780977799579138191919259233083536762883588680313409400755825945324078689531614755589116700933280218268389782332446047634294850545377694716817098829276439977116566948872825159484677541038887519765130530409784599640638055492199279984099068549176035922180179630268300850764642168962187613850277183003906239246106756323664959878559572746112814595476613177341287369029260764936989091973227734467594707308715736760199328988605660101630035607586928038016145784888528067021124782567890842555763728226363044238616477236287993430425297700012466024240272190363220929225611078286289598036232166832052249452608651614476938524285646883793950721187015938582865486456202261111049931831725080546974853788928813234288906127101619874256839663575425964824992361080788954406280447203231196150811792324218132201249919891102303085217438292417140065430144392228011019275498690133083588781982619225726284710025018460957997787961761963502776673670109262911675610308233507095917663818199161572504427998700323811223120561179219818204711908953744993456527450096538435662838922674850698312893759413792888951344656270596860761570034794058233006294843310111033486609420056099562234986947422938761354722383104743618516180308536582298337240109709178253764407119693879513489749166583067384352815679189847221422617030364532220437946106074288481754541001166219651799388562693167565980656177616792466775554106074337879542118620875582453563475402173706012643236596828508865451940419361525946481253443454752031012894850778019138786279299506990696196201409024980717496478991470983817714890590858022179044589814178698836610691816042964240165385906615538976540957926504605636346897549270693641979326262014760506227771029989928675181677265382864197056479137228457151151261819066121547040473851933924651639775159729680057307651267377170557861303456953554879649719215883280998237656294435990751676454452934265792059500636899265203800642937422968614009954795674766306363926526270143576368906978132838268256064319441553989023569111059030362316760745602095806650272183909130052452287572559296345664341179792976114234805948060983322796111635827913188234887504936174477787588193936857752374633618861044537588855633373351051684719393730859186653888882250434939806596878415417193915041097539285409070958455784051155685773137670518017709068869316325999842169843342462053720823771219902695773378846904331850153827057081399628662913611658801202530730750237772760798036977888093334712403235657815558015078531018502620029627076719419341852703992030869106164404265938307775053926866825427694556128841559530325662320384554912480180582587505219876454160118338679449393028859254664591769134217135179498674832966762926740683682187738235691999666887752356148371510407688977385615134844696902950052191554038759711250576233746537104122266774345775273721648773450991337256736405847852158394317401648836098696288371125646578840800152066724415386053578818201298437251502578443401874348518957953836664193417342727380881798836078010923830834384917917730259065550190620637386632008505161614125515712586274033923239548780219683114260063302618052053022697361042529884375089993400100012666641760494447646495236509810545316557721693513677550783613457501054173101876216137326715721841619362365431055559156524501496948193895359856505509869996316713074297979390514878288290544769720396584726840777180541856019666718074823172230159377871568184638898627974581776142263681408288091168456206511889181716954150434082353981245033451140367625865259507060173986914707726171853908100938516811860871999157983253246884782316150875506207052493851595565287446059996787979441138228049505651873206522989944644068350023288562621771477024379531121285854767706851039461487689433874163944335002008306917974572855347150193594375860368103849111628316659436945084990265505952015497691117185703379344392004081606100937413231186491369140487858474359317116559307026271562328673852340751546905546463275527286120534216722476318856922743596840177494646954396406035077513175814747078761015367737374678792869859090092098241746933343239956738268893349553965097174301042454515351702914448870654949463914071125181288108432708959310815787156978314871852657367497559115157470211038595678571841395242497406874056852794684014062777978090824864651001413287590509018039211561611770090966812603573245570182180679055240258808748419367239431590858971383862475693421943759807176608493295992604668971086752063969068692123708470016066350855948793577802154429971082368922399020164281387270084556774886343771609532503919696028667998287200767225333811176396344937721736725802564732335393438353164337876350921366607227071646581362892839373456804794766177804749029067377657381536899881408620547313419941067220363833596906894771311236993555445270266345977733113404631482132994739127209993450024964100160117846954727527790289106512378803777171953068912873536555205630999415875911179089200735838826201532149779693052233059976227661061950541512307141835512604771504128656175185088061585528078259746495773228171930978623553714872885523388997155347686683369093567539961560238287506520948052954950471701215496778780110425779633666406765714416676776879121764153284970623574062093410337055768993446481889079873532275868573699825183895493845828865656228848511278587700272250425096558899943981182907789407347747842417719086178983880101335847626482266832431769724415161329642627705901038117963344914338695589389717551038077866424254615747257087129701812832952388770010480582630547259585625837511154591123287327117495382545890818038150277829069097098360072238440117973122597027814291261433838795133553305150279092910803903673101715209409397512272340642321821963658731442130404274514769283753283853259822136531978715814151328807955224441286749398331127274420156898535608094864129088300351604850417464260622818660959593221015417947892564281773750878052978904986572893105514787728995481571362681585147099274684974090391750079313436644285125495744513892258666314196473419672954918609426901753939930054951650826931000620609792794040619800749999009259073328352608956689649910088763249521896572230192056333393182664538545185957573993015137464738494159108943965990926792496473580218252493144077855354888301088418622573644605004393000627370992046955911214921182613400885834931704339537836425273471985763568152443790893676262888376820637842166428732945511481727620916922790809159587731416850485939388894279871186352064237325904409072687107913269807061779186984547890361865857437642314552247689752571848371426719099890809922267662037459421766587704376852480303296924976621501555985430043681857803108942489585959531530069215557852548961930272137117200497058522457815316181055652971817536532642932881365409387045249978144164187384133964815026533148451124622632576096935097789673840613662799087183106590878540016431255282577553103049250329972667755867519610266448512352886257659491973288944512473777172911464755385795344043401050210177823329526451744160001294361747201384009502345137064757249383586844769549913364848451053800149770163965594351187044038853482589730614612941967145392064083989944258142836771888926459970466641747203911887435454395042865946994750575284706606683137999062317508954869446504723436327328251880057133307198661565573650529238656632466638383366529255177195683654130219139559987051493153058539727150757817050934591804186810616692282481490182369608830167196781308528049488923368819231355857800224849918949962407439529392942295535729362739316067024505167989804973069653667541188065358379585701546134832349087002373021222936327657539567765722538097652955309208735880218930991256242588865513919305672142397153200201446294740130038204599841938973591068209465728110775474941700159861225795197045457142001896158973615526683501071687905730278231312854868202382671314187782164337234728497233659212268931245323908534186202392239735332840211143864642826604517642503687569296177589918967932140521045472654702343663471313580564563585547405651578310145528957293316059004878886199725968792850481720996642371454232164877889377959165925555749455762973430298999109959175080646749263505605273203374056500973378411187438883354972780276483586899903796598543259409357749111063168247828820440079216737615979288397523158179593774127745583989832763509194915380807715553139211697081936190702845377278928508304517801682528596675697106949152996769883127412948018794208200059857407482857620410690349948851783709237272070307844569771327538483414327269670912354752526316620303140347066621873671131606711834103379853672176458035771027734366412057158229401184012821124575741970992823500512993667671054137202821338934014923577213646257710183038037429179447434538092774227249887423029864697250276764837260082254312442846787849673713401570518693264687342226784154886543839223331717040231266737108731925415444693503806762295020787011263514646539678619363017471075124698988340738364749529964153685529682480208104211513218156308031438884509591338417343732727900409552468714296980318260922638039695880820392155978097855131071056801098926880558419164785576473991668068806979670333953892287504443218083041247249265760541447268313991552231839335002923152898514448752812045382941638792565151642371123226456434716434741622554472042541395244138877240307786436913459410294441314500885729005670319947446139252722163010323247014328604361800967091653040682686984967730590814357138981504303538258835074779743967129936478793995387221006423782276490123721111622952811024223029850369146374257443273217605943944409286499622368919864598093079741613177667807054829736583128576107546705066351746878488987141945290910614555542515869760891937436079266164736209014432121872729897889842760320983109236467294529987210576967958579209126092849587278944889432520303138634001073252944882869430657845449183988699077779479382843585902659932061288426363354807995733223048211119424888568223539282893430639867726534416809764496653444944804362805855745218724929746371634380214681864422441822799441785169113475111957056350641409616791336619587887330883779767114330681811988577925202004412017672030034090607476449409397673346068107701307235312648876820756531317214387309260678678725997682166269450496040901484051544656412498187936446777441026975644361464777631393179943972910379238108162196478792149727816156464598857912741991855151233578821624821702006467174567035004121793320714726264333502957173842578216190352720038870671082098287580358536591724494262127363240678719604932653216053664315028694876571601574614140753863569452060439002473949124831413094927823544003329507375693165314652476217717531077166066120923686763921932893938737263708342885147911704039996755006368318437353493691115564247651641488165768593565539489472640604089230249602505602279896624650218568028319067726066972186897661545646339455251290419917678156758520436339734292979862217073642196222939701332778367028084701671518025674107270560672511793288831949187994412320438985157527196048930051749935110677927784904645625077118942546695957438762189433506074968153443522493176601508372178388757137581706218390383862075596482464203697429060017761598254056465028832797928543022920617740035508528032258378067325771564535746476794085668564017628088032886353540097034358013648224155087882134067830270186089269635970250340096440655450848365496587047147003894006712349229800499869883878121397835369888820578622407419627315180157660451370524284404653972421599777632301536329961719139734465662487895271368970637421120010445465052731645774579379819566884620085896464684390583515261641045551290676080559903217045600840945720114513752256346093384918570250236592386438670962454353479550246767264519478673964017645599862270476640470024906876322066594868703966170033344873471237105577614797147867458561753979187174616087629911430345250861585548485084838457574164978595409475282451105528806158728544296569032549696798954283501405177569976547023184963923947980825542968662982211893390516631940415697620243781840400786154166407219241324160615182291117974734014851160473865194425478051078105744980795214076930823245915392251385189239031599356979930542019069045599594642455014458441070993580857150905692193626582533430453355530294041735257686580339567560441581344174607206919699641212874987937477038321306283339877496644173376623700506241802484004805748567285576586553468107685252798482752011606608853835287563822164463781596253638876769168843067116266421617180767809951694652860329898926879622595210374661905164709497049650453058704832025574558313759545136015744062153382874530660607818336119941882685830600141963437414368782703014430733566388057567709880590831222900375906445466800772551216737492578658046054382425099338496259146496681592195947353404221721274283182161860694859295068153860864605290801527566999643704653483590519772210601981307813287268396078576326009624436657242720063456307335778118076693401928261760519172926102503718313998432548361219756985393378291595265866105603177968158558296179651527051363873429528962062004776250397620805726048790194735747392199569951083594661401659924655823331635905428993206804897929411745449060847871721311617046655872143797375221736415292337966879946083561883761128978501552249389480499932958645510729060126345904003827527024090935602689327527328535135967806043601924348158204909236681613294023475422060433279796124773178760736404534302727942205487764333464544988386646086103792597665690055021069877213361433156864952545256338659856632417927383924337769434682665321118635976151976002756407357878488083907881879426150972928832901756512430999876962701282155204115126232985878208002731517660129650182365695682671601354437220053001807734754842575938660973282666551401140956331593584453651324999555510590571593622856149313906571498814415404559763578619613655977552254933884005838682773348634139851354388836758483045098453445078685729741591521826650823317095581819975245720207218474549305542644268918339162606631073665187310534840618188685765843941018466953918105063913230624931204325067084142786754166833884065566547624160434189578019603224586632906034308086730152557931868582127921555182004323232038958104375529846204339073840327120241685588356923061270263339520354002307921563466573582622557422724863860386558783259394347955618454160142659362830769742230026492750161621970002343725684146096065805693206340457609663701805583336492127459381438703798277600667685510560416966738543518535248047798076351607014320300084132413349452406773561960715462223473282245910525374640320852129606526325129558589103404934295961751763256966075438692505980967898901402129037988824433731486961783752991082372671273502258532135682353322815504591440085082825929985797501349995941278433771591136792653622711897264777950691228331150783500890007605741049386823831173168041899494578036592721218143805526777162659669983402365906522271120485750250320452733441954521575829609452133573433667807529373513765270076511357958098543345849578545421648068069235258872094401427974307437152428272302625589772376067299731679790015310910006683602476180952215666735285004408028798442203364102238646745208466010520856174935542998126852744326223207310826284467519592010173538967636126441817292158709794700473790403705534127424581691352542233463113591510331288970679663208922985196193133989094187555776790479726319815009604005787143523994269836409943962857046970876387265279738220384528145688091077894433352270939829888666161243139406644087885964472079663069459356377629952883396469833413284482033932732240305440291610340609612471619129668199624508102794324266651603988121562927010078058648265679371858676106542969804654860927055118607561956546407166906065677272120276348453818478666536548923498496048147647757290381824589480674736482951283266955742087723932951024978180025581201432864293061277613343215620173269136205420863431914235916410366576729648367316983718793698101648479982130926341325721756272983804242018581951808900247030044072464261492699138634599179277120271893011061124905951052274904646734650805801630267575070767738643620010283517881642528888034827027518204989371451060609846371321836035328468377567589554440451442123238209797404709518505621518661606321313836028008390660977655156098928953636385317057857722011299587241557340894115078472865691840611360675063484105227847970671488789758808077504943081022390004475063371469395272954808958911771553837416478108225348523816089255277879943551959621063913863781939266033376640539202846614379476604385747153353148560494212751797928627790940114706540642453423764875126232238459059913763057759047208413374886882129067872766656956736883820229595690947155296929535010652460865660857187599587267251815494188438574148520455152953504756876508939132729242361454659757287458337230326422856297327207011468740704802157902530334034983445453799193433009011693761793878094313814785450692998181999826169365146716392651603954669844742696509383199082585510136221643470931693724534874991121070718860198601230114629213493325371631394443389756458522708457827462941700612223478002415436088221399804890106923077353368675860228987872535699166875290270008832328612307932553599033647505142541469456013813161395334965660640488465059427467098184342373997252259008248555654429923837550016713104861191600119329021170371643542810959139885457668688816083061576641919890044758636565513725949629546479051188816357176201262040495062034900204777966216058552018891705911374553222214804135689590364791316169284002724739669699009147375712905010983897453706877579333855684691174994476998285849306011529760189574532449578218919517365030807579652704222176882693612527685523447095830536077951301777118043729348760699299343502589054240124444558709429438180144930722754903332898060735396389906134210242984668235971834273366282671348793691651416279161706919958836338926933173579492018957611245221693659560341338733508912049576576977300980708552915830824522099913810938804061321811395550281469664417353382670638183220210528030338445944078058293088939035434160546267407989388774489618381984799839509770516884962023620310273998260145371700518735557126526334672597494539018893586467563404248990239376184410588559123784583574658137728700292398782119270744391449296958209975929671842327878842072977638223047959359380660980900266213837437668667553011275156028807396689205594581992169812006697576024747655747411672459773731528619782513029034086327603803138655204412494678422454026929012147581324235269798516033683651771079176243633808227036276357553248619079426453087088982538581567234363169747829653524913404281674411846740513251333176057507131487188558498840376939906659308135924507954127520731963159326743712774703342792699047291875847195253774629272231162776976001477030322138237371760323182813700572633415032524716813649887780203564400670486399006607935825857367830909437296363808494727119414970271077959425752075168322049341567672137142672870642151419057500547758393642368685253469618670152888166773930431392633453699993937043339259849666384032945930718271645913960393841948136756395372441281900994077523701054606419867290082431165142410477665593348521829694096920508041119226918951782713684284994455130593031572985831751480528535046811556744417065188374324720352910223142887874219809059801129111551282097679733196385666273230012169168213410113390776760655752757229620443632777614541602778337958250645525231433903746897036506644589097107770680012511109474453630409967422064469814405814719470240056760690239966480215419272437405152433198081549864410729854414377412134787597118988585434281068085591736087788620085881361112540906320150306298906661572785104023593299537407929952455867069954608621164663141970327110313004675020204637709129683023803914422138714359871204314826090435490259834129568276169332700283009542766201477550139690030897671805514319498083749272163018245535173443736206370895000381246483732759163850882060256469554230707913250612991180904952257074342742437985937416464813582581557896007860709423358883434985110197361199262653231669968192506963009649343757994078107068512453072797273793229141351931151240708263524204356318863201355414442239082539749276755404916407330851941142921509580065914468579385606009479634957059428003964154315163726911665787635264715121316168849016502576678702665176249565037596011328589752127364491422537841330697256057254908695698217681431115676466836095803835551277826257641518457966279012405088587240034994728643179590221038617547613990932356775081518262208623980471740512443356152156884806114946532106180671893712358192980648128985200386294198720016372972676198376136108480088593575087152560435589085052249338783387167127480994072837176075518398716645575991440735533289850528158618960140901900349217049977607007040971608441734479457955218257691404282566971935945273102859511503618075013748776985788375553793324889531375387556025101268543016678908232807351117192480429131192436106850817772391985102060044511703794734487462314591470567309097450377760943158076174381678398642926652157170490965439344190366796909207786746266782738098440994748747803095435192798026600793132047162211902728487448937737369875371351434589427855980085427317080493510805454088156440505964519241675714103087967327509912903204951619107223357045649048856312107926969892963657358420772138789833279068351296897352104807533693826390005110577427456203176201761806187121222079174302355708023139105753030263936250331273905388285668711020423634008655117095256594458720036416182527439635575839298000179816944741728742759935810357856855118757362138813992935499575276112696488984516231136490747006285595656858757179665948667803114521098994558637111278536777147821254060194044072744226449773860598386946482145927947594174139177666947097483011369313872259494187470722348415083719224293004777119333498346252793949550735409326833335565278514330611114495782034148155204309531760675972804168163526506508186776494045784684714933316056616053384294663046509900011485526649893507847589610714217429751202738964360475636589247190002489302958011366440906576195437493441774361239074276307236638799619122783082346138637359034785024624587063047895588953657796511630938547860104255898280013147045708467916791712534985256567163776638857797248087129872233058527273132795032277336494746055024179919317763062759416797685622035700016991145333118768754128177279146587947371935121467037348170256778959565136312583459697717348094722889553022005585803944154198330155601712143923591480856364168568019430667703000134433826036719806757572403508470694554264728850532049656694580977163570152173393167206796113831291269046468366031304683140376045321613221033044140330206307583047734888182496647435438643966846852135397443326048224006728443115709213239162854771059855911277282604681687748747338807482888247110004779482569490009586128776775672488272253384297979791880129872185179491977776192564389389307047402448315391774882294607337535224918326193802507846103486285611722848796412956892143941372901557239819336908144225736668506905150444522486392030064086568126306223437732274031304309702558958247592039407089120699387682031920119351184014178018844160086782284481658150114193254616704052456199878029731252847812887987618920821491485665768778010304923800273476982317491468676649398543366395366146327922600466708453513528600860237955838821492906058405978191395331813041251126291951484718811325496172542689592092605937861898092046502885137495122351609770037374667839103711988846992927012912762429693496859350533198946538991018385612368344003283658383424184799651269610253650032921284691344259808846917934614974115836438175491271149506911174227404402387231112269477506232237755879649298862495141812214979101577568575105689357416795997697312141623715818997005565833598204475267990529534779134450272847808170091227391376370505647319405992598453404346674964519576358659580770752794835038962546396129996044778186204028069967925898079339898911185302059373014496611553073787042229188308963749878362806053123321297295189029619840473359160111904006429193834489626894070683974242411548296626355283873758639448162746236410117057390048171418542260435955167799116078535077268104315638725595872381510956956053969759593485482958632441606332685634633189422912682608099518530614284049748727213436318856976490785124159466511018007837009453946371342412874184801149339700084074143637754945481029983019588258776030578564773448676956549786500162191234907837727204647357958383684117781643562482319484347546966924737012915431317477564348750887662734446869287682535616157617731791158593891021794813014072003547255648133399709057186692681166709640149058124730693598923240224294728004643419395692240833276625038561494710945668751181450813364934055986611496542947072750896012803934753171823824728349260612083392336106379695024582948907682989344408239226204919187481254618241953124247252236892151356353320291232820325206686673178220819218288350658882296564438624619348363846580795476674754322428635775374475196037533621752947660835466573291615426421457713328390199172821546441954553788822792786173354165232531019841890227595499360654029526999155373259706287197059750012264542681060246261993843103747371912278140175182309478214020911947517319129749507077000791778248383760253364523473546888428253862641781108336444375095374685551051182773885692438125613570393611706756397245716312479787076237949248971100207222193801434439325922451381567176824016973356639938488193149301655981660785008611493406997951797059161251685273484714102054587273339752073393645238559353682705501020397615534096409533965702145134500559960545059165700132510587469219366681252422399213719895212600347269209361045484577306515947983559882775870240989107556695346320138894173711412268462335885907809659914042966155157597919504338792016356603136419567133231708100892534629961129563445660116700336516839733049444892644540831061862023102439962609185047694294780494115423353216110864366325761565916608519530066201772669622168586977519175806791413268008727928345890347165043261372178750180812597938590525868520619509487174764716285140894857917503973183062772038547383106961367297140535309331225952478716439305689898410219959915311732647598000142588014384638206777931323234886338558101422660099013929259411626258063553677817276909789963325639681845115532876459363568705103273240951355100676476821975175271526137116199592433133992758033864216208207508264214665383666456742447205177106379389919850543308473277016785491947640328911887808812828917033205236943114229800002464516436543041322825002827793416432938711121870950860860546684084472996299127385949829325665762074371287299987824952819871762092113982475831884202192780430280687896793962656948189990759910517273203014379595991642868092778697416230631748906387739705167788277658077423481378568010790296168694396117444313831894941791836673907894772735045553733850787945398670066326921699815697406545357257229316239708551379206881537820146558809807708622739850030015792963708112342707420617482105900638353407257578614080272174271858590694488074053925297091287024935163393498205300748439024051564711639921722188658313760801099352006383065532441488766165225993406787856022535784815399041412114780287130251563341206530817488528724504013959577739186817103511552807952101304138582485389579537676784353511128337435275629850767935029453425374713207449549248667893722040879179116355584429229835126634279844746310659368159753800024387164310500513303398527435214693148665293516687109501538872413076122256240404484230309287776634574234187142001663855555439684662252736905380039604866430963150765361083968084051207558464100155863019817697328086857002534576065624824467711345334876391972512307814257855979501825010480266147083742803466776376919395880172671955188272881526367540803425472841645736277846022871924788093874810639812288025516136695980144957432891348112047193532170898648835882125616808632035999891503332340044802630315621786451970924159494638414676083247133175144356042906405264926763942212518819645969177744061754106530081706371793653208531758749627536995829845835984031304224526454909681105412901254300125848483617101065840136318304398357545919644250644043947369982031984036158567566956923320935787463470252707577029291728699392296024259016232787615134405253524468624997999403417236373198204994317634327012091636054346018467277430697358737830489815975217485790647967788853874264107726902486652131192488287265497473398542308063509739147144969978882442261998642028913912004996682735488549091701532299667765787718928202791813569642954513526663181041056230841696930007605081211135969539897657370380672800976326458829648652722648465378286861390502293051730434934933139712823887759219217762523434612918422586942147689583665252552538825971535049578874521365868584407625701276259782648405865452474972423135009169522528941842633888439533723855596492428662418656300850041287389058157373746109456602712126225907593744204042131517054192513274218713124282124332389519555547169259792383237260947613610091284745053414221301963506589361812564522880196997074353376117086885423984227697184216600854729359542859322317512073902808521868426876189165695231178800686696277105455243547555297079641588546551344182696475228133753467354712456200721333080167789097520862818802989623616556903153159056912654175751187171013138559568562912148965494494985201086038223797006546152449843124733344402400123226120202754209627034235646392167770253604723289744514506764109898974919769522510976112153322438135641968149562131076675625759720823335027826290123733670996399028260287537152267140437905708839610968461985119245303635191256631141243714587913477945885032694102269257819613675934081890507101253227887949465037349191721557132081635417137277401314899986450809719727254840302298492048240159625031281517637110756704211359873790679422796613689790046015082605821897750962959512243874149562211402281691179782105584117788223878295644309466908060522572635027844335692738966107955659264618675555650597236684342907251027478596976890991710159556808253305574366591933193335971681007266141610575572078684063911610534688883518495964118950542715068765077956661840000981865251414088046038907408817856569628460081890776183210445368030701790472603578079841142741107918568498805773833709062803558883992806935415819147808454396965743838190715561584848203834389573853813033879113397331882849164910818092258823342679106147777936960161917907457229606031795286587686433345046662970468656914953625426685590794716587005581779261026639786253575189300268841001037169711016825651224029455129096919592938412399264654066803078390603335071493166419503806581803952856297963312649294325446672183356165262541302122387304549023430585350609474729883643063007105381376367469414860486569336579737012459984476948346712823402873231382821993736795934403879670978225647901319411600129985630892118211703274132575094038115187083195586892726490616553604593427768404744842203724719461709325224510558757012541689459757965485608114692279220788872648206517315001815277293583118242229723701935061843128981067705915590460495396498057357750136044200355873095859167430764136454519789589578984105970140804151348990358931699815250355593476551103332704178361560248117568889250381371165428502736988734212126733201733504126223340152002752688595443249020492327964569091459751248417331288250284470659383065532315906205846922739506312124711639946122297126141449953394164585171708087755937882264112866040132394578429818859596681919948485989785220086049046697823213413205501231173639395966102078917848359223114175579516469183585414908918033689127898651674253747316943405952073705103412209431134572942488380689623416883225617016812328111711226831540316404009329999544250270243604448978781456497892970173603029029129324336945032670992563763646697708817944233587769612285553099488475945865033901240698826595004985381449288008713649292778493251210378274621128408469705042311984164497088622991038951933436600472575868416173965550669904134731167562283081088415302782471679900705320365282359027056202564779968527963183396587941473294860833719307188040818623833023825571836055510666468575481305898576591963456309830067036036502176602651652181437482271890923503790880727240870034749848303295754893207081470581343944205370502504754852857530825906845423718119866038389688009291244025508521445042216856278395400910815447358046973222620684441067949440750529035544898450318787050228531380310422291875816164519635141157530977867718907377416696018434874247497492327873960763541795995841358964126648527147840503479532915737117108578633180290286965897811346535382403950453064327542369280953802019494515380660146110695700558370285549684179086831519353320187922211482153064714473646068641592147290630038674295733376648367117033250186925216944287537114976521955836260571096050317078640355656370525567753827477829689174428438172009908525190786126302308896836145375923414021305633456101433984313105567671313174817074221103321751423349085404824167393246585518553917818528272507267258573059032737721965521484587783992034416095576217946326016108245813119566248101385660433236321653203600570998198345414364421728944566147523334718653539799866453768198282418091149457689098701408666460780013885065764559262749553433085879566536688831310856272755605567824574717215815635979128078422376023394042500157658329860234494427505897991141683101801917855217953960090020239256333689090235415576733354393047986448523092123927607746868790107715230957793599234262900384079856153484767534715472805405261861822423188813616814808219387438592315587938912368522562668941214976539930030312637919047827766480605788528379903905349983661119805159661099947382833307888044263248495869524164717695859568425179673344328830993422545121951047765630606014103990686203825333366132290425255826181923138106350585837869842262717550054095600542675441073003122889064904296762314529395391664967840025909959908222116193786160202815196409071287632211745833425539491054140642526841822638275654229594966900065322498581121221635271510698425142585639203461055696032892894394271938282951653930381953188722919245504186196273959280113579877741489953562594501861818709280859163249855946122370051355693038909663478917986121482250709378644438210110334180806182286461227169852440930999004188123798755054790912240327560117663385477712289763852379901871196120357617996243104171058742169732823954186812314866351324854157349754985470076970908580232226351255113126011097221811584306348145142342123942268118096891502252545552624545621877638582545995604551266972868564190673631622857270864500192915338154035707238612401973928968893261288805017803917122408145857061325706904897182200747912256273870479246627334117372432741498655488727106998144390689921274288048767291441932793335578988498178252627000286920885194618563810752363896309933838442229540909237075481814203766727044266920177337871218635760020069727772910442535886284279308862109637798427306866933643511893079398678771240397774538735678948429139126493682414696011092665935134152738528375684846609300855125607281140645482107473825607068364269476993474411944117538443057634723150609686777537357014650144162204505462112779949884100441058897181174818628447309224738080465867219624080521006286468925219151273634629244062570451703171637855419115955994422225189489730170872564232777839112067648234187296003484329124292133140936421046499234993163703785965788045236695555113074880020924268914808368984303817464464089418585119029881828308738809378778719058633056875178480017079690767599139042584966983343132333340855315054919599307231802534661182867866152910661040045848867868498674693263774356304764175099196102084464861698065096173545311612284774687315236173964383206001846162490571604045846096754425847901548123313917776092362823158528211275888294861343169525119522469720418151275613580362410718979013854078994537499356033174432776291237880099248253823771668357786823463313090391388041178079306744428615312664977126222454526647039882743139882224871109122578645074352766388251394567396143082816472625710551012040579592528878326712145358630375503281267844011421735983604016002800632754268264219936995347235646766643840242617441072056798571112227386953033544089814282573697952603802928756492253998413446296197420286288762771472530767912393251298114602759683483097782345192342770710307767937158176282097254993192118315430836363550381466380252539401944379761883703316136997665804044109018038976948244558937082169104502341855133305767081982929101024405784109787775811478932584127908301952867574584314290733768031656406134885466163935061391129014523850701239906256358307143626358949945449845155086156153453724166583536998199369765236136369420757859106221010352638432055584459777301444652724353565404163820638255665528107234229340259618038151459834438457247414258355356018171499315432306524010966630083313002564982807944408435891929585329755389440821160956699045886028563262253403564525761748436560609799099143502692082983621555963757987992440621619113260019398954675882341044356642606688562106116882515657298852258025962644445672004104200462362602495871228322499451219019127601669622038646963841729259052869335419056945783715181054001698710885134621468684843341983768084024711307985105741352596474051637453424354655770545375877688826624437236689954153276728465685259474849056318807263168141016307536743925732532493746570951848714186719773339614553856314005103979061315106840787856981911674260051554376835191704617675756535396865658162224477410618819031002812523056714424561062223172017035934456104005370635929737070810097059300238867825644648355247801210138943060428983948842791382003314661698120199437702077014898757987684394183057892889725138700420800330449039584093025195254703767452972048124042340664337002425827718886497711688847005978254157443541451957633725791766560571569692645229360688341791059447416392157465715090360440979345606025442821423886191268620639134042206306251991759967233028124979060879991185265819030856933828682929895898142228731893633353918163098066181353324719831737534915058487270169333381677532051420130158718444596712821286672793002991573360809801734678040660542119667666728085286094110383511571480715807122292071016445537410713849149138619119501907352290460952927195679374593559224937052830725403711018603477780823028843796075826186970776030354024171601798267176861241050446357724517025666775398503825527309737504871193168248514704606406100627832673379566970526091019372285652250979934076215920044247396135784725429451669090638526781475149392064018732140664282527456602203089316884614991990198821836654960895483409489005132356093303941296854639832962151204418894799029123242204483079542635169403765710308340848769384177139885620405139193763681153934259578710811292695792572149506750445268271970864738957781999112783089423318931750632913004366542270159066388400232962866530914888865817775349019471346322198795567570384741243596466908026093733580241084100526032540703207244550835354334411097819511627288138916562316619676562910514636407449597486086871314651214146475270596782839057419382155214517706488112073857036871730848046142178157846482153134996902111541809902129643617518333341914217274076519001339058675556688053525051042340483929746869344856400783237293863843231044853499377377250975180024263960034226078653675060076683016371850317705886284976506893547383608382196556958251037864157442788726156246342264465796831518297095543887309351768015328798038196747841838542766953368977881777423003224930387273008088111062681395723916594199650408769131544299740893399369479354140457690392180629204661415396633771577970859582424622034827789588615827347566686085983504725729812460736375334118999217054526445490329562282222288127126141790882370430821610826128256346443980545174602440893799822208378542958559683989778824953036719346580342455860853430758792367981613269677668265117396763259168504628054176365341833544193768842092753265336550066914881810440897196936511057033146976427245825356749174393605426817406984726610220241460927186839495895842099568531462333378692719088026580460297171681664758093491609541579072448598547164288299018598819429626231679427606183414924074052160404066087222306566695388371283814963862106491704737187929123484137318112131554138457955283811286890427159800885745671264841242272670620518506343237231090547051751047672401591168232390338984229381707277483316522666799587775200893505574034168852683461667768597056237655696125230927695237556505330664580462092398088511985022441001163533269148113783149251309260613353461767169123691609135091841143443164326979048803674383646948781014814556746836084499842974243346505353765809082299912266843830404837483574576234614665319676296745951646274021377597832648117566776358159080381140641536741156751514179268168668625451972516625700928751762487843612890721016482847412751428125090216789844580865486292767046913254919299935101483556663296402875718643306418050798568454252407519423721055259972710717147056917827638596850056318951128030187651802143090717534755357287208646409277423005407443584823564629204972528292964857163809773498585544206583118067943399287618333610773615562142701217308811157632084401576825512085076940729142706461658927959336792886327922233769727867297318569610626051340393028087075925134111204537813869002335751632883154874455679895908679525500979421559855891312600347458862863397636901767419247501098399184868381517871599197301135558968295415462751815710028832621455856997075061402102269580737197272378954787004436823810326311688216379001596037765492156934591199419197221857871661499794784561391984338931795609337796327346296138749435941982865916776123108522298007004605334426795478972392519415661600858548679034215204295687361269786302341796453424476416867254660785786467657884475622560013845984305599002130545543130057592336164819164368010640269004567173594554894061654636593065736546094133327097592820445496518943954366340286630140506480833256972052411819893791504038593955074554855731640084492120712866599763296876684857022697122863370007026850445690482731832994987598073420426035842290020983579293584938081761239528153248974301822485586834843459366439841406340862436855810021778256617778207293256502082310568780785884793711984290161575641879065320634874743819953481007855439414635600499759191077655382764759025300980426448242810511792067621045444417386893827614595773710006058817738679637768799789242588036559548284099134492393666617018525333667446832593271628221900862039350768709095150370582166151756051682346759228409458516219685398114321297210050361710173619203144639255134589770341168688913903352867821630514777661723171259354160622477440681224487785815539433601515489429798623370512818665998858696253530850770035306146267049212293348833227297497408568974723485245810435499250568267753642004690587987441352662327233161485868916652037486406182166577944866037113827109339158648584965157135679567280873607641613411977299593034255085605543006245119540794532537296599845893144496715777868744391521074597182438250372863869775236992679816377587828032139554342916898450365834630822844816876116475163240110803681433810897225915033872685408912180034711866714089247665390053845570765542414967931029904055074553893239190664298146955884836039117525608243128099694369101089086331571508479873675182062464325386897237890306506278176214083734787708758715957748549556942887231725875876834378214404377335866130936121492105817270106112480922693649542240075282874971214581298009414868487142384880322137040552219512938126690697616659703049893348066557842049961699101615068001738497263342156702571562708697247177405618776436412870186085282359013549575034343965628050965832832281887728714202591221447127424358281841951312456537507337836754081232342697335994372474269264140491329896818100602495236499353772038437971184856267339676677664425296274667871331473512351182564004762041264958827709259333777713177080415402853427868718589078476135271449401022320291976295252722441354523647152077096383267804059999523510698499431837130064147387283151433729492727413928677990621487030999400636200628289774946100870246522795151246734399123616555148303346154453648862120149682109151218669869320396730553856254615251921911748359062101007504273617656523786266972611704798464434277641306200536264350222888136166438693056120510879778612623725051123338629473596099508313243791128769809672560868473137486551383748090653932079900647028997478441902271451040504924168773894601182214545424620261032587903115238725090267862487538178174520531700458093785959925847476388232841575820608150302978774383460524487921381897955172998417602495048469122283487977205912531674344081314809888109462302239326344573514264886396204572540635310112837194067758676256133469511688581756150075377614862222382940158726098452502277364755836841069026059146377019984938889864783240648439177101690409778129314334903060741781068277099137790667107313101805472549961803253204637371481157534891927733632127062389601913766271900626148778566431306416500486822199580615303318039958998115070734551431344396133933807541533076924237494388396966465938701412076454940290339332696061884877826345162880703812587747080282505519479608445907091763783440175302133402311253372392916626171765997472895584302994448630825005552099091631497540467655448802742836288893898091041744474429530302460318474859229647358941307119857271991310174844246082294956967199662434208779130392228848153239226694169943051706710436762683391587204908151446239230684516162876510209332110933793939560140799152395718483223316628770470153157451546701741829686340207351646101416078580566301718400828866165566025578318610129753445065943735430498330589471454239518434632905244830861465859079687629078685591809754226690395293294906521450116198926465738431242819990674795706352436116341145744068607836001720894175608732459716450352816442418138514068172895219022547482275724688845420232629871897424993517901493534861254261482491520003672323390464348639679570096402246743071489054232873487495918948216869981453858364136030899169331637460289578652351995502943025006163925274933030402647361332076119583387361756656790115131504226606264876474005452558717700060580688782090732161347073604222756102979880261469746541822804483120651336492703359798068787202358152970139483902132700129668625905881004349993527251950237357645716938550338247237962174455278107846531195337797981626587542602531823249688333967249775822415704729697902985157517174768230456410971212026371762422305009839380394066248323736191502192381746215109379870769444193157118208113733385028952947686940814290476982461425748275906954872723038584811029302253781756601133667602382996013448193183186220531781135166642867856957517849122374978057844113082129584048754679652554404573147638585555353406330621354693836153523304167189242044091455638114550831062769662063498772281062043981028071266443717995909617022004396769028300464271441815947458236400390452648971737809973507050623404969868381858931560151263147562491010408892162438360840635528889785843723459101584656849301777396117993189207269469133334123697821802828088953071378605732756278965031463550551811350863835213628993263315918217672120690087265879062264972468333319815686311299683363842399386534650702291400609179428866273679501004010498065349849743789353964276185436094031562589667843296541771855576136738260677526728292987837796330992037616355644974810409283428222286924331487665332696710924053198526959073537380415204479036021406555100102753962516929662796652903930340756836741438733656738715469761925651641693633322855313384218251698787540856575039424838147301152309406661052370665822711543734693525544932586120399649595834783769466083289588078581828101397288180636167023310020318134550427798699036591682646432394670583158849484259757980774702623813994217390420528742530840714689734928569430445717500501054672190405886186295659757038805187857309178783854286951413655528369118843063980503552331828233982846324320377190382949600300824666928304545359083962563152261253674882677256472945323237280938778256599286692122102069246340544837824665704743746988914456877250631480760890252240929125780458470893240566066122239520672807307624209068947480869996244722820994125365423866934689829521852718287309195381115240456662495427001838689589644607131645640369235305004222588734539877032441416393113197231271093590896140013271258598803044409228983523920987382367102037331597963168317283235138463812871655275164716525698199853144898080440638923241441776675752283521279117870831277014677560112080605613447460188589968122333519922882059403086455054602865722607734480970754675872621294441569199359372503857187016506985026102800785396495696070301098443929240254375182838382980849609904305339762463766977356973110404710710166647968118700860910908526528663952237585005066645434866657264847837112173423667439930787831211092833261707163818792076020881150115887028552417635890648532197674049141399767119681774559819785456618672112437887203364083883292823962500597126335176862471411223521417468396591624189779741320641442431248421663629170374676332607966194468511675671176454059714330001462682242381837633316325996744640155894681980897633318287172667643878065003418423214425495132149525910595181690781957072720468614661556292009911603374046977270317703726950381530031766307798919661510150699564443560979779396246345328062041178339379272252347279570656289244986192074258447446393301365254916214431959772897179421991972780155217034642709271138601031945917557681400790344555099729454006784935615268615288255547856171704618891872342859536256125436268759177264930693084779524003903029447495372827362621981617936560302838213282177459856961449049194400793997610963647151040905588440840347927251233545896620279681922902464072092555783440875372807607405664922137673535433695338011277038788658212907201729644233210534457835295852260576551825316240123873601370304724478875131324356356013111915551293123191229024475695285953360487278774404110267090558425008126407683514880575335225511669795917599994913515773616278408747432774347145984451594029432681480354798956953740422495432083324102944306216647630383755571455208772588911718744454664689011834259627523030621490915712322437461612005834661426723932274576216641283044280919475471759406975454891328866510685120734862938326569456240761990094747510761702315296788917419133189649655353435322428510662396044586964029808791473462119022841223848595970669530903210984794303484925653324358964370820409485521014976095785638586345780221169350464302774307800130937304210941898153007119172665764389480107627742607668976084717441388364056883435713099705376766653761760750153192191036498621705397696476239282785554774515859907817825770891396416890770359705021227716393307573999582528205707401693792769588605843160926370875314427429433181638443150726000293625002247737275266814533387128613282762443100662189571796728892542523642988686455865296204667836537196302561252169055138385273770201375211201793176059599389297928906734682070022291517781233074715860249070073955683869979576450515700024146089911350481265881960671238914284415123513227542376796333023853905013357559780392668410830407574079616598174651138477397523626956312314902525027459036457554937301131470074331613940959925623242928774271112482061806260212974665638531663299071712905667420623734813191017797769996001316380209643091547041056518400959866576205573240272597305212055635369931060963633054008501981068416774085509983232093815532109427831523927267546326209507596621817237430788020969240834646725122410822995833718281887091201189218688520709683241084034173902260285528376822064073216141396744620914670081185232537220621780876964467336348158622424726261245867053673888167158109793425966149028766128618989998772211638993551435876678904149470413046521990139219048308821253296131059997936507074878116294645804309848996966015760941766994484858500158679796030977235377275255647187393262084668591423080168615194955195359067564906204252910066629398218300398649438896360652012065157507682389893905840064853440892596278602483875358605309958837518688522116621182990555987789165424530719991577331105574078093077899751474088815213386748285054177475723315695245683426451080356660655722756557372606830331673378563618064656888390054152490416876125322177955631869529122990266107150001171443085230461317624267210963858522168929956281295689975007240947749705127819874181063442945856864131688207277616737947927957066815382077488825661033943995443908575870572253187798018651915041631626378139893697340526549548694588031890958673552522883401826962554681223593773730871233928790573823182891112087176307138626468037315536765697980835963489932600591821960665205880856875146450557189267648650991072998671150815188072415972377799262422794110205382992991421689185926070314881762106541167359171199273230236843673775479477905116803381927724471897593603465188601055140850434463202919003487473008106720306234151128490408504080775782207134358986636830136594388403824564040228131375739232181600602929353882883797447585593363480347755947577376992829636004054993333985643553833075268650868738187963162339081479867038943794454457637667133001673607091074459200081533964875682663123971581550897183455849367387091402060162556110338095727436920038721649105755969923863253566460180660799878853424155351090624399771611955939898111051854769483896474332102262742759444793352172652128419544357753474228111757126169213464453339246083022732981676605094134953944600658519993837434410997664651925880086283073763200772569864356800705545930924217216033100497814698025345183157752176787723624107770959228218233938635865980755254555475237155070650758598083914274715524785439134491304242233786635078130144607377753909668962932013128215187043203201730872307114665696328288784223374057007570376045660191323004570554819469567907669413390023883142952114682045820497591095876605729599766950479383386248217058429876371042866503781420941866783242058567279775070367460355617785240005516984781144895693556806828659189950210599544543617227221602036421414954224915634316241795786237512577149710415310670426277893466631599260783184462974500548406159529950631769855322951393654213096862406479662535655087574313526625970055410515052904046747872126286716414164937758068931240064646824337814270797733763775904240939426866440735380517273640286060277331849771473945863669814880977780984414835817354578090616581302965662503026044707653767615828049936055722403195301647536271143172722733265290484352440837436150285174159564548195465237120293863387201521661023154974933844372337130659617565838638944237483118913384943618851051274528163418818205177556621341940426748560942652178014237599813788345051201003418842325249395803576743692786457650094612114276064147940036324221685455226730635309640685949332898913277292871079727791734012955686393560373263784218622309508807922776419889524159510734840782934362438606246186824639107127412617555735455279916563179261623671909123574556983073005421745595913302932844951475025159881553832723811632555748647764989976017925626874733566546345348126406197260311984184766922869283483128303877659387251003081724513732020185495528407767563542667261171937631103543710409489360594827114039310712113319932994712974238233691591772150797294411943200284716478837335372891944648301849963743646817981365856709752502962471463960864631587799959496776324095371504524361354935774213018884418710215172246187124195705759355343925220631180950092346455072605048921008788352064934250427340169104750262648751505211166317112188968824231751659361929978226416210576210423933937460397916183041965715247976699685862685582728583022273252681711208468785704751966148578341044987047010100545812782308600290466953474889428057110613940371432589908254615904589143958985274581852363553724646801164600221884158769906991741129045691021735538911595360992830295705683254123577614081001931842490993222744859856732318127079009738690562494714426185450755490455450862751777943644230599596574960541467405103382863839553452334510659774150557901628527529677848036939737350380854411589599164955841927987035240708531166559092714644030674675960269580657271386996256244754625163404021167727886458910177889862870054276185520270750463474167010847768645295276479742963055205070951323795455177046156369470012582803025307313882103253211149237083380530817335496902429192099543257948444584715413973522742766780630988168881555886541361380630552860815352543095469126150533847383309212314557489980360526508117948661555932726372690214311893114456774025707812738879245308119358530409395663456527525509247336916693575996970967270793688746233163511932369913911028414609463791925726775039745211318984921723849544109739432922606277456771113454765410028923140511982610979428560121446781372897054645140713745763182062945796866343349244173705306142298645491582944795773598714067009886731611477170775017449520107659341918173813306847869030159996068222029568938679742146329193682662506335961741736995068203505716520149173888813643879621732872371256052307717944595607555546527626807144299775759348992603524291998804008405613463630618591779730051632837809239471487209750178538442206724814185727329200492553487965173633170945771562678117506049370843279973134090001597356590740035085162052692981550869457201815534977060093452113842536740348827714943264310007019763230285096756829784536024251969002627737776571790257894149075408420064173999717972153994470839727220489698499837178768362304693987690884545307025230319259522579365878729842780165392961294376904370690137086384974913866543081375390682303371551323864907668888435759645254614124646495758523931732959249412329501062140360768424178395336792797461011822389096375792309629053923988212816897810689678919920448813399610008246972683976026917142939616275963514566851937866222194608640056901214548865343055020063475051218091616789683351155532687787159752009513676343246012354395621280712225256909561099529453586307517835341391035517753521865941031361339296229878517102453780980756374323739677715098100589939954369293337526142789019399860828948606144395822547539644624091696031099476170123558964970597400477181081460480752228337294838503127254327471948874775522609112688495752182180946721643537570076298475557401184931531847819581557036528050603297856286699854963102654235853235196582810117289732972167292943564555911925754462919455675717496721866801215522771737876946586276479083110923114097420813556059908829365780549694534220589356216408081778913151974857065087754104471320165213905071345531631838879165906175904759873183975487693891282413564027844540640448038105961253825599056619996492102687590044746933674612169839863831189913895096763450214733686040945213113888868882206370767809454496931208067617819697308659308475944427400014393165446167937361393691823587849884525172397015531267144155611367551024864149015311876359686677962962174500686343167616426423053841527357800333666654249697407400936555247074367619604190322557437688438807222133318284418927086281791979950490567862845540696513703031641817890706940045724387415104036396287290435864521915603241170364228146164966414858759858894893076873980212141474445929792002162040105058758336570249571593441789326135756685180435745015619238851545826484731590736130041723682381675029753576695577729589521990332573044445014067377892628673592750391478517777902022522474639184417638237930734772943055946190478109341759839595016473194303072058054837656978416324827428135966732796991565763466746208139820914340373308652353741743523494032874215666311856900251458802000289263156371699461635858057694034056207783703558983868458620959032403630345539796937913453379475406033108980041403010675830545009975914363494471232429579493544792018921124449565850401929045400546605511063183943645218558090747688607281320372525834733352223486949624586694084867687939543585709721884828315242646179969452319387910467638068637808940343989024256339350715902387535212047857785226725306503483686750003156851282491404275964965223608416713908481310309577920047237327676358936664294887491550036972550267402376219173153560333155571997047429173494859753795977326695794816973337264064223971292692509746048382949125038020918787864695242762427293772586147501945036867793836880948271905917096814086652317053906063299027239954512493148549687732446758811352318874034491990020569012964823277824253287982765667578954892204261647543702946127637969538021446051684120593154794348466331472962406973203549411215927424826189103158866097277501011370658619212582141069009488793069999559771415578887967034576071943666775498962458459257035370834183741618843293839234620608702460963376069223256325098813325209200483673907708793269142863993892588401345622872984829355943667671686768003908817536610335415075784855286880313218975744964763615118723716885231009494321616979256926557656855662794473763377393976572295961229582429796896210411680973644445036681351197065735396138958858798674268179388371864136310877442310606050703581315669936659275148975124894164391798893295313332118672681693566143466553315077755635710499000712568072045792485885143119730466965136037327546797722682281436798021081979055559621082494098480717672200237266476324972576349566799508477651855166120276312344095219649907456281889582426529535467641299325261337730450182720130094725310366002639036223045265882875149201834834204169665291865494334651918701509764097856801065550714622984988469303037745241823324014233388699489973594242367709721525065193928658704759772805771460045593774701988884950379744744734721744459351227863723465727165445043147877174925846998192498521370540000983989900080389341659604599378102802585226015611492767785386800192739679461159330318493119213333412915575169148751042086822335620301895306309835695854407116388448998646119970259278192129346455419097943935107593009769501146464020257223858902064169957538063184774449884314361547560531033572896951937539638480971958702197377561025544805440949869583472697045928427786596227875754754862420543737041109345325067111958756658906889533308771150223453796862218060374098363800643009063244196967567068024104943131203573318147927053174167619564925751675967167712051389705122490404093851697113103030693779455218744288613063629954470842188836816544142314052219758492242874424768280315596802935439025187694490828357368298849407652345280874557832795589993513739321786587839649664595815251546676655369160771082110018930773467323555363544720538975118626502723111304062337699637871798528482775650944640511502095882632561735335815328027314091720724063523038565365342691411517849843380561543830427006598065161628891776308232157881166344716514646061536174808423250741373421509604600674249162614267848047817202556401049951559825121064148222619017737752299538120572784953960855653426788491855662196879545104415241311791834631931420483524607486239615118240383581968874918097772014912022897424126660219688708365333652280540002783519499575870150587341194791506130023206485076363934189554584916401693690101369224179097679569159156881039261945995900022325665215099039627640734398685053516379881077391701072820139181220650075731397774346858696361739517208031226931784028206191995731381466664228612583587574777549391735046698180042802973269514075566275099714900117171848231483108629702482315394401717360964410688947981420484055013770258907860315436065860889747513975281951067646416924124796954470775503941864672624574350286762531784880662177683470774151931968661786956911146924007907239062302562484880180765701568144116819862496693242946331364444713298658602964783281891750761462768147924082830887906904500815669393142571951082628858805619632583848267476013634421702200033724596234847460916047483361518341766150238801221754029692816260842686605519440137555672672099609949669356588012809545111175725497641201876794947220324154416766979751303613168525485524325787220873880461558157378673934391867251375989207806246707237631268913909964070012130456957152910325059916991388656744290087701389505832822467939160971393379871164062091530173326260927843036565223284654862011784740305063078639459522503378299834056699249904161457561436137934675358038769095988976473188316271062654955076807869616662623774077824360143266310671940895748719113427243620024102382921498860351618901818756308733688281109639960884351861661175462402355514893556691030370778404576911638480752251782934314616445007357237066668448170102512664936674145160771396165165767997144882502411149554511993232945832577675894899334579278632070105957529068394215481142180605394471258578934658320540255468399651546137888784765093406971380377672286953654702975714683244875673403628755014144609854083651694314553087657691471316026178885125698501276864598796851041853391144629190344922372773144685427821383416243478443355349737023892321313567268138970125624793083016230710739163976143859381538045325170519963989823795982708191031652271382843877730875759016553924150209093456936606202166778824419014785173524614122011602543237441427095299457695365603148191984052054380783069324695098629495490576392900076478494358243704315987341205536732570064843885676284836216205420276768853854560572016858167372426129888384677514524210931863853115048958413223215642564692248755532030687751086470936929308393429851836410534542592188760304058064525787886018132829606012295127035282799367119384683553664886554056255627607749298958181288814230143375143019892047492596416513244670510083080323283015474935341416174601155663411744133646997465320181991176164452778915303025131503034625034802746371412154042699766302092064862300847873664056091077186175906468056759585361416486949303970699234149352539049480333041348639681243919501210693018995931730401576968370339710950495640391361517939797719711456867131049111929157203677816733735015791810051314363365276463831841122398761333264079750340169524058302820703043350955156052399725678441750270995062277728907923938552674337773942198022535620987097461947600174863096473521746205776631365027743842757452668220319197388079150223658813158139586490976601528036264154202391677718673575755473338813348991168158253150751933046363149096915245902267261195169808828248789038829895504910985873083749347730555926781546399508946385438279691432021201025642568463783313649672392955522030124194354605906521571879611789282076534255151444463412425525298289711499107112666776557426365927009355300950932190157626326706373353994368104824151810136880882671610976183583091024305449744040113021532610799598587218399214152018989751432246275038674286543696635211998030209313192879643971938253354644890176546283361897011957127899904183680831180712779727038615357532749924077337144971849080102811035029939505127786930762466859958728231045926373192628624702295233181003461961243300869755660660784273612536874144698801192414834820604323276117667892082289906693402416519381579563627359771345164994812592167061756372503542614571528516211300979176252232940664052326385343912643451021748523157935437532893488078842229776114352459902825800674533527323675990043431465402052790777084495506858990894497664243702382542634943350495718836801687381967717389708321394024472303803962195214109083586507239695287601736958153217254226035061953404796088592349634745457718002215127013175673765451190480904068684853434473157356254442850235732922093071489116023011490526215487448822338737985568324161180453850751619083939731470746586721973147431420515489832622349014411862305511491638815487270977089011814730088878463410989567197661044346083773203204490142189421207584126677817291323999542142655086789319517837406956378306258341033620951808853978507161411777641172176591939649865732107301155762787698974787501933927577552947577227091914708933260224496369128320956336306599426212797762920952972684596538923466396972973979880634260933529905792744100969674889936079069785758070014741800433762955600655848175369463529180521594697097851034302138350225019963426899485300100779677119702872804462999299490516384213635354363554880572809066569195677435640122478719720818329122750804567786715951308802997504211836993061525828705445770267340924988106371961031441401651684248518839535432477863979003813226809375501601441035341952306631433678517162452978938050124255744162276765985952834846501503198053392930837619279406685451318348448364394659167849540978098099107046655287540805814106249130389286296085445626992762695807913868856143476705757906503607862314641461998430332656501325540100133179753465239603205937980288195214150673853463791755596882694378942005463851639411516042490740156074880549517014854631044171475523630502959388587894216908940734938920325409412039128126291511520046129322645977700304868266823914459191859162774676466485539571410041434057511318170799807277346292370461108822548632626191058245234131013562963688515602475292542080123582070727311477411930438815826722750018490166990467587272630633701846956090225845091586413078032658623072661417383792875604983331666516197124783601812402190036366628373308917908470034795690734753545556291273293289481052040160247640073094729979026473701965768721434234595738563429093390708968901502953820569111385006848075961784241888059422240726206282329028283594288233800899856854895920112538788204277576781544024439820290613873007655313800267756152029160892120611419151509783096365165866598045736840355899806499215153033961273023847369846178523494878981573313218934466382871761772731532263364253398209820954292263023170137094523252643461524582638724308961937679508351660510804182199710541816785368826118475966241724514023883811738443179383096426015369334814148267250950495727901734857953500712234989464156945228299359783898841695540789927247071593879818138110242414995758894657406693728866726094500653331194527590099160822955743551747850968506628506850146219612047464865851651405139634221297808578103359594278257829129456413965833068826117775761876090866456213582354753692914884451463643293497618969322277357138865040713643817759460135818252918134370037751805525299582894575971571491812619675932179179825287775758699500619097427351203051467721553686553324007804370909297597836131014897933361249138090672642917374485713218694378137866743249809883418015440467695305277654059516319975322422322432703030849509195863184356747596523717353355396590040956739598925778009349284374125912944923324561388156952112478607842258877124414365118265318845158196925162348873150884076066151785974010552652227235313184198025318577411108425027386486201642170319196008086692435843466054407373717952893255827442534754801142068571887172025718816193328962231991281210919192786509199498517187039110133404837794006106176843743284446601490015478668526631673660495207039316144817660968290851523213851961244599938260280682289317766823349815713223840765625196815954814896024020565570320942623025420722679258096570587288521941234584749801429259474154179107289218589925217904360084633364213874323868485467297016168136880297024645438234413669972656942805181603934951319614587907327051474299790094236259912726565714545717388200543529475098376431297995879624297331614932130958537859529894600379983752564338996194681832867934306437536971462442972077555129503630490677674145937591138934493735904089019242057148733502698319555203094474056251080138803159515320009337896210426664792187849843260569480627804789175309952262378816900653777994254984628999195462042861184354501409918177899937322308704824304815290485622171763125375679737954327710640764466908085520922123207306293731068609802027264833188832478204815342354140340081119403343665180882393253100933093043506760424945364157824961889895147711057844566527174841908265445398032982412688597505134670120643763788990780982425431851315999551013140308525777507923684785889797997644096255422235314518163004680051355396102017579060350723732795828873812830134229748550931603418873893608177862372126937183538387478339937029164716694854084699600833841925264978327989145114747681094340364088235759764402751769980007902994452405379104063883438352460955845543542464920721927559766868615577652164945097248120393671075997277735502307885484743416635052519029541627825187832273652439316031342595757043307131840082762379776027055895318950464423964939197699104680999493098078933031391843574921455449252043008600539962972721245758513486611227523616611342899764068241692730999674141915446052326575232952495869924307350097167621748255958350642803983064378867662507071911452644227142312647404440806144922079963674492304674480111696143906799292556279824500164909233348124263233890548068571119038115820437696919601995480737110175549269287280854814163150175609004557607122672187317034192608490311272779296000162960199954007338240774605482330260407755027439761004042543879188930229363179283499379534514583454113281385494778497060791779936224422816258205787430066040293171784631541651026390989205538278984907489368152903052619508297723699115212892366568447066126115356050655367550329911937625622573850730840401588874641948773537855679281630954090821421827167254748074984911589241615702952541535307223196464330723901276467424615188915717883462991294644909079904946050270583685286973269037196798695157768412380814335248026453869221455849036106232424061540765914604742679703270752626224612490821041322065948919110977782739852362067631176690740124645477317189784283620190858203177357360567713344311512601185837197165514041285149493796443823150025253893902893214297861642729765581485503755307795082484810534773593974709715350488901889983616094767818801012739000146467718515609965332053406872359892176718826269579464788877469919478525556518877751311833576731900986196165065676398756864632690599891067261236423500010879474883740901011749811060233368166030882407278503278260641477162624913616853769597263642479832129225645657860658981159391277643686244116834198299693656490498724694732311850929716734119396010847357879699813412814477081527586673286606949254585598182247351212725786649401162816030030288263822518831448467010463584683080983977522342988322222757535362363279226902843962450495906717174808971858312408767190492140144739336914034175290947129642409983647951184636735069176901069157319841031583205549967041200719505863910882224439834162929176571935416324680558113878026913633816427884966080809131391308817630517264031237223240204009043900339203595254334079366914331703538928888485410088603228436663942405999017368779606636096317877190349899107943758322369092603509091709871058037066891598604312041308410351958786216930376732931442720982705448799597266044269606739644576450451628326822338486580256893281555106451020549712028158936397472547403680667789956559570134112414496621506376534258248406592275987713520914950906010355503098227255423325543835181466776395642287406997139370339427771755466100568869646250515409183348929710118639174732861896941088384386991960450107223660884263805421087151782257891271324801152101337550904160526602267318604002452191386668731781299772789872841782068473510668365830064099052749523142223835473458180599755662498490787296007208510222105012052763305745892914751205901322968366851775018714735792773927171468800976533122392388911556143487765331769919915689681572026552997078397539254624871004341654923667139348924369994599496217110165993654585016040636922009153633417215908605622705150771343493349162151066964969089401169230683475547437505319565866648218605696119505665816851175237507253246491977868789601765797350487171918130081864431288712982006825946096695375821958228866449658491219494043647816359467763470685132880649555856117684767079868636125655958229907863690066024442896536223409601543775882762976148979167814195491608627358276723887122690704449306343912458336804795255440840700108139161219198852177235369098390863675128722023125844041283068999643156045213962972604755124101307023030293272374208316291492396041431961790624786945664416671812494647518950681709181817452562724944943002654338339765157991448598145217031047292292217101286122176289211695549594273165846806213320789868342385915497276596842526344202111211730041591443649940920081291871088450199397427304714807875105001272626928697004673606828000475774014863430271141134616888820305199986093260728251751329880843415888667776981270913544696030450478404816528210574307499465828873927255033860721304628880910719269289613100125051411047237670224551891461756717245374084581360597495599612760803994130785984145031257787482165274545586199579283563979733784083111587033060788738629189854433586549254252799246056770477930482870054436225951880680200967597645314877262420396820213231112489016209168150293353378967493707999664027385785604173176032549321707889745978106429796132362594062987076949139105116038130035083933050504498767870392068446775225802942621215958650100264663012944822672364854651911580238637218838059151546445441902511859614944405548262836401323694269963784554484291084301508575685247792899008729253368315014677606883533032552346051072078087348110570005793173396952881853514229862272990360421402912819273626216831601171556902256053001389909880066187219452212375604444328729379519417915963213727566276548150349248955857290882335973954589215240201258446728892027968056993848564154653490514233068361548983396652098226635220253381866943688301769110233974681870281497376152494082745332430799415069038271891098058024115544721468924103271850008005329284860424520794460551272968798653330609410981856253897598863512826472609076149041852595369506759215848972989198877533338649972463731158318246507839668663035406631071250247820295626472665873577848378023309944599150222157304086237770689891496996364454027676261441848392320352770598224611321452032981300355935420201345448390905357220643611836093468448074357610016565320189473065091706776446311960266285278460071848027257023484907295488080967632672759616098294279746838009620639880130181699020496679474728758817308538043656237868522557565872405459000268300173766022202164789388402036204379639947202618766707172867139250717740399178048576613890401050687873956381682633010287253222914075807669253767155392726986735429465504019008033916209622823627616493508725641966453430004643504062008722203006311581299172359384414012604429338457162926412251341259986640450557026971217948448286425090693943946863092431076048813338078060159714098468343239664837988199873178886899903560889607262108207244282233665630370327900676710786612710444081733037343646257396887919540979139997687582500726831295811653281790390427813648520886515532993770209155702398085425789341334071177618942440085234992829387867267053216666015861576012064353141740358272938067798113363623664854843879326213974400194077718837517197888552077102736937785000919619743900130121003050400670762488444630912111844458833354486629770430120405658580531339567896886076265399670496233203700823404414632886932474579323415557782295958710364556846061877734046081314075714057438194874241087027464047449089775007293480926209418799646985302059178354198606197722992374722753819831136146173459777172585249146464817612458797865201006204694872313516797249740588774671266022832807890351951983169721068476749416764971504973327663905777364248351768455192364460231931120120407421322280909438554988829831242886257861659354752384353319623599471102183123268590241151742688677318932152362836387176336641092030591055599519306733341141316329674416475746929539883593103222465964772931897776121010180706116826314054235536934330864037480252409401462968022333118355045518349816864813866923856734081812381816558114574299435634707063330283714898562708952151469291564860602838751883412679837056082477699812418587822072243437898635159580257072691405453464610568193706263538859016131161387327884253280812994935656785883061933354963494464803447402490838077561998845139956078395173301996554843398384750201467630245187620425198110924400334010185601334390951854904124856689859709684728030010346997766256873842161165803496088431071985878024573125619155827573517261315810828674520295793498648027567797547258174498002304890852942144758234516452992229387238100660126790586780187813004139195206290097600228321044611377757140531465805187365136139242087655192050382183808716307700888739745563946579546335579978375937075339408578055153293316310022359074542025846438460713756105141983708753717908072693085911033904056467469523917401028398131991801266030025417158191355071055890176224229518117180801233986804908922309799230755309430461932998204939241854394495509553415336140814106003667553936317706502591822438686619683948664608732168214054010736311500201470779684005357243374917394541847961571677795205176268271718163870202742365627185076446217880983653446785326391416757194051389187495071656707595387148050759585649816834243030074860679720797279627200909847867446718714116238786548199348964060975446424327772634803445156997652273162125666332534061078977373710327364989382468038986716671157485569411361885362528254294866843021949086454745219077625517524960714803637233916891339139105763788933770092577120768185027850060782708156143587488550991102111919696801023899713880457887037779877735334458267907195324398087724003232818272719170006961119642892223192930124080192342138142707009917300832447275334658054127058845063411634681214540759502386203127663367506741171644344194407944459938140546644401691604911821204472499358144123400341039718113148485148943643759886179893196509994579356239584823328935377497495188722298558610387416961978436752195874664272717090387559046181600068491724399185630781504716626404346008920963513879390897153731733493519343563760943105826479962678578969531109857661530701474485664954433123369566922371112408260371466164191934428684939457572832254876982749157950951947894013622691120372519937009401587245609366894472458376714304752306694730144566147127049197820950631310384274463282203864145949956566003374935699413279997572828089658123190662364290332145671048882166888761869700146144138791953580130648576254975732145085719127979375652889202203028198574359257981044707992758458677204612106179288242714259072626353864109794582070414000317408257892935237299007055044211579898660581235222704337830390015821118054611601086332138552324863929825401299928002806229551424465222305135408211580288775426360055687222251279591013993625735846305202397087202597895046914021299785903570151160982173220129328852218237420146353331938858539555499720467616461219437548387569268581306772213845558444085533615450878045493387146344178125157700962009033730276557853232734531051981685043614510401350944632340966409614358138013792166139203142298172727519950876242228895420869622188058162242067894498236622565621652132579535904697568683995596768580034778579883646913568377618663355746550446158901807261001224104122788942851136726822335449426498793687037059584872207167755947252790442637612626393238927967793728294336941360978000699241807990426805191488345865760848772962414626725313879377772071528290574516615070334939130573080466046504291605882833989269717049963440013766573555977796507300675898782645947313782207953870293278729102432256285910898858155720585793512759115406520105784842182042182435532260425886582958866416954422415963083673674010181362888424155067599275654152877328210316126259327348474323423824949549665006577577360958704072731672190269523986246859668068992706686571150274671761624735213010157718455799256212601165558460358464167965187924635723423385708810923285964650608229189305338278481840580295749030079704048564866314938632360588466573353073689927344582024609126925063088099710052891994105968091229539539715253198102529195181732189842326960608344900572649749322596716304867599106094095443410808806864506609311135494294863038203055043588105985864138795511646441598218111527491229867423863392043182687942425425476148908739189376718671627276887057620759488357847257095306847913875491144709270028544021903179977270747514218625301245455063702745262862245860230405017676160487003550945746113603156674541316106283522049543418421429723205773458164402360081283006665731931202935034536067610622056007688728711676545963858906803576824553852140817031997443139369052205977069931419728644892148896549046818844906501128882351074996773391831193587614958797198395103385840063204732471834347501172049657117614128144759154847924356467159042655718048295865101204902617956563258933669057170099160381089279546209854620109814699947092799459238315468703723934010279729287767152028731715740936705173622107874093689818238146740064929878866767556109662035657668752224043455376966827577572535975339266011490671575915780142462682239836684342346274289831399189271390328952545512134639556470424466632549326316574687141900596513172448327494615261023392634637916901387428919317730470711419784233474373541128709739462180925452598538132077561588396856369310833119041388948120493794419056725353694183055864250675361304788663427068923638155232877759641836403654629785872792052147610951296091814642994362210390022166932544479024928116796879188902066035891692626580398968609884638706588731817635066214667869407692882894891564581832003340408963822270911824986118977916500200219181094714913559257359319870483351502433792099341862648955014561398377916334570992861569106302571381878792101552102608061637078083375919532868311607661431430546044059192547686458566845429269862132382470520264547223574811925046715632277335199363211689766804766150758860377954193936339561330956871143799766115062327054997890519705094566153435400107308872212682680235398423279982668083014568069662590338372932445940413212036785486273658900591813952870703456597680374165229733272112344115600790302904497017721454763279098382915822826759690083489921139144217911302477698591060796582361083453415394332612082575176480588522561001539550793117129994463744248529176459455244676350175613722744285886005054668632986778066802725535180642589338057025725118138309361974216583991283771144912839328089895980153555253325784614555143557264953711764525396772137629573273163878474954799000340661433961497548306873700500283948938911173623030217511366347210099789005917555812365807922241159151550403993823149084686788635683307672943253414300979027525700830075252267406063804776174301109659181100446390737103596471343121374870204011341273611377653843141361846648047983701271535060508200231508834334904417393636622135669721256057450663423356011451451285520756625971606636125884587147272140942965362406195096232698296042666342230639692890568481453923222496248324959829285004650194925970739113576878583663795663058281290213106196478055197755935754800321394082642641896366984940993396178715450078722245789390078118711314432268824155180004074953453813992343141957821848645531338259308205470343252237971939995243300575628696814574908289869939071466899860646886801286830999197234515915691376863347133838671154624434643303708540251811058665249649132125106404196125057300587820484363285775300397718182715753385738008596637706517893981131471353592873251455004787291245115280188142060700898254341996495376760234897793962387109766866243620734809289491602266142315599184682411729102607857886074992508082808103151873150357532754619562927811322027333021980568644660746221298718420940882094129229781644079418028238310426419414520861180661916344772713306211114470500115286246500975521458805511831183899922561140981193034315080009060736871273620091131528152143850821635965641911856219885026785462937479629950784886164535162389398256005853101276944848784702803162886263318533344138354846109369044988557280839728006507592638799001245905625939931662946874413814088524745088239121994830445275159855872586361099393666593811727111224072691435419172564635112993762753762391343168264060777751496538719551373738151250508756785137904284982934885152848252333721680546492121069100720508051599210104536651257913530409592718135382126947553851372803363908131801253143915488984855664575612328419052899231517355950862578677944496200653476023379713628495598209746260874975832348380563289887313003560057952846300157681852026831276819918822377983002037495257311454644941746250232451179386137236689077427339138348628340342312197758261265100748375087237350764259697238902919229589244222762968453553386497466034128538526544320106573645749874525835441685357225912383728982997225193029438951508554619170964700410404478055301026815539464165700522218951381136308352658651493049873865449446489940476971303809919893449242523994602803348875035716289418730340241468814805330984041836918627599702398883076119937560344974749284514889120741458850597708498213679361557335038809196292066183715623845010694937673710988379669763040252850544060073671010874374387387246919147433841453066333472895159437984572825897854759373243447837906514815358069079887399647592882414490534683330182265060367441113734283634801453957331244849345434245544406682370668957485327099147856693952192921908331131486924006507570797476703275628421751307040118837197583327078381049309358539433880802374616242859621623042218134423334679941828177505673224919061473566970895812233545132623246299091876946271953232248631207265175002810952540655429813469299502131834509846926889368304820893737324796329336766212980248166572531009685412607187728289325032766370982185837093697236754699908990995806683312789491461312319683306879047818107410827425429166708774445021566868828310427120926546147803860789021999015008279534622798716754152974270971397647475645144237670818666827217327612928990848468917061551245001859348636522845555299183842722116516633833713469272597027419076879415516903430889015878968171405725586734528931686089027030061537811483114232695132359348503162148756824959391982887330763484011975719399914753552493176233309412761699709049951708836734822049439926254870667128300616227846299250614979088922346469200705918787964344413635507239801614543905258218894729990797633448017222807425689145616891684229416054728445487646911278420628177235315222430999692750295036818051695302306919219103017133885244917676798609203793594263592752849785109002084047007707753813984816306716280751672752408549743029180651329697258562389026178030848488668857945987577630806735044424052818132444602165142584460008707536102742586778262117545965513258549713391823094220391526304307839770327582172204908613030516220287473661542664889709729921249660247445823093747759131155059626658686271342243426776901233207426608769262980492424732263018796330622386856248047815954143373587606161541152594223409752966440516064432134682743296231594412839877426177844701831172949504119412665552235149230943643912081884393337886809592944746118997857809220642893263840626866260774379683914149259469219784432902819747990276186809340830596185367147898622278812712413155820467162324843748317279773813415196316398194863577270915203514524554135993153961824525712306462919051221676399377308613475556317399686467494158455970139221958803920914079871296426675974775602496355166866020908458465239482460393895613196770006278898892044343411259383301929303445489012878636071547098987745589624788701731956062936908116707632752867992406630393928667055705854753999816496900133156802538723870437104297586012127959277688460286088128270075817089051436715226917701903977319241989724477909723477616886318286245456871038325263214292735057237767956948688410745125130937810536062667437057061414983643401043523055323431856711033449996705238006568494795567067892400473326056149085542530695608058984254642037643181385813993786516602150911804780029597761427990688274920489320384788071588176408115464943613872068089079635259073081385975706116357830897558429421903567597126342280632313441780944432157471479607844685385764322719463331661627634509174380822321751080824602492489820225674254716743989929506858977601527002796013900702022708936888382967529705758926638659316426738111033943357145121738669208207104532957779381900631143645744903053601060722490291552587398028999896684817069512131174132896543407477386809535074045545629824931664069864304611459962349295783836514268471184189948888612329181599233433602834265569299292406174511101371283200869245904913611173271987131031642126732748825870909362241501284771699206210654022552569889063518190801635800597796453419489759026011175563989415743130593330701393364938956973630794664630872909315575765402230691634319795979083776573993812514276652767226923838820760296160367063045158059703419561951505598764215552995096564168496033857570738096864113019402055560341438519310717030087471926814703095889288797250756912628752062748649347807327782703588096361765626389339143252938388094087657132160757432694997932414051818396283864219992101510738055785360668032348854741833580914340103739451963058592918736807144643513651057605964035732067618824827755748074539666861699162944980263614113100490885876697250230739788370993892015880814751246345322277055051243416735486697368725977176074930578873879513470965876389784763798488826450148214920487779709410143126549233992816685018501686356380023094249977104292291885852942630016488314498149414137320998475888854307497091503087384148485333062525764416267728847661756124274339488418451186759887648686455981389702268897231222951342981275045992642056449410780509143365633530209742607423234550588700753406660406700786072150107803831552805281695634822678791542799910980153290405456480267360336012140333051222042181042539375001440056353748516734968962876421420415157707405212195952186362752257623754121336327728409610868161104981643092400429969785545858056394634446908775924709894374234402237484620218639725748381864726681193912048577719500451977559966656010986446335311695165508305539788628902060869451253367681244766173876657913661267948815412553620302901524544103887995131525734909265729964695494503193973583814086757259543003722768510390504605469296423450261663147769036983501045364682328457679252976819006836636614013495254744150223842450571806461004235367334315884430025637903260153906312132691924575893991494194818666731639766360745077998776454441220596076327742024379395427932482335977284247468087837308305695805800922259688450890154308775040497330150578973917171207297473383740619477114396378977313947487055705765660016053189369240004779340186651779171117045671946752961144164935632589863105742776688880435630388956902540561469003766238396276557301969526480036546767604824972413915105064076903937710038138907089042535576055471920828099724838015368731733520205192439551552043559827146397285237013646153024086628167291107785477621890569388623852004870707496130342176819979156339021945742005817686971731761451418110219099197409073093796722142307155033081697535867039748619467557665534056385119240139117177235657496978640789434674942829735267760951497159285381109232384008449652197103426119391294436223302032722155881122665421930667312176961058512504277280251366650293250617405616569105309866298102003292491300111596637884634765626531617342001859298340843182166478481183469573453750503526216836344221829752189751077494710914470154426076043100071430892176743011099836678627387815520695623240459072802539363509931482439281269069586127990931373408167414695104221596248101440514309105997822970604840778491038617706726807311457204861677784641283060027108857639588518691458145826918886652441798330657287478999990064226705077652753404288537418452235945146356957034888933122273502340970249897365215609740929321292924010639296344917290414348967588216472546369138792283154493255562845729476525469071439219008899559928170047065837343375116954336191166113230017040495520642134511726000317460225806091757089771989637095659225436106358668967993602831669044125348116350927659181586817734604123879546428752979464067846337719492971547161494349458292288184907729845289687728920390653724984350621648557329715803604592339009269814977638117240613127512493906605323995276587430771980626406954844378376430793105382046715547039397511877110196520180965148968113659822668083934235221307630527990824753966792770586615585717171398491867984850650837042010359018363807431881602845534697815407850799489339528983465403392592813874995996075093961694318887207856951485953862207622004866304585873242501931569997061530354512995625439205154492266399577070341377474731405806303717465607069779941727026698141917633604364474383645584660245629476742309066075559345475045482457058797179030198954662110075046852141442123124646766965254161150902712742937919041647393615705952312355281771344638959119541566565362704536277948947995418407809907943068740576756044186848265635296949917835762681388148408088417503918132079289377941833066635792843104248719114335455892479309512085025573918868080069341861467944244390779355956619461447698107003630293194082237285711542300633314491942548527715311588971757418380709079987805289939667525595018975290492811949130248834312489239390036562207192223656240596897902135670292934965158423589505198785493101950214322244365050024866899310981283931390954138493319857947248901829387694356222458327165869222872711494479728520180772969656109832834616002484650265321244217473593724495463998295983312216114879022245783642983064565419075113234397544385319167679345630908755025914594083729513822953493987253860884048957711600273012184144544307097227338859481880471097199779851871639425537685199854868553743573560904141133515943087361510715592015802144729248421808613708634633905820118883746007041518537555032267162401183971219988158684782453087988309944798779987204264924692551951732817970333282046446015921538928602586596699900014358470454885639071993543352648650426625745459089851654314554936771937238303290216067035953311175417380107601020567222166230088211728705446923915453456543422188954380040576141138034511102332601748991270286971655766000275989241364667727207717658886250369898464520859619507891558040898166070977844636426540558442323312405302439457177752552403197283623507034207700154940240370597529244731977235227753103665614006211730910949037841352817753516536489856664144135432499760473932863520897865228468662633190373719158733274910689553122960313913695468314969568551493905615027187145447033380025663972783692641883496325702105872317469794146653476146437239046037479016435095092811145177671042153028877837907874899472930143217566936142386206648483737001837728434442232926157754532295435817995246197683235782442663553556526242589630606672299442808527172269581103376148807316396063586284566295467191726187757603643384839312714793020588545879599188045936565034170335440210403738725340609758332512844303980464658625426201680185240032263234484590898427165841431415163385707452738323816115669072777875589213109752095815493570077361344434845195631843823169352976156803931520606352466132931255247052911977388273889305609267067925758131764527615583949299417029442641815281280322807904317883153109251888601601868647307058739688060149683239946670382122808297823139718899638202213544067369007005651562955185865251942042265237091791031946502664697840321530472508267931560621184742176214493895095913475018912453031654586853499468842864859716627464363234053951705512386984395876172420584015796459736904461592277588123406645676520404577065650842301379786499071717991196728175916189392663279061029002543987309180330038138768621514166196113227637820187329985533318688536257468477039118123512449524684115768206667966716188305307460187003320924768672663575207665767165821511780341133490146457048668475072257898647758923837021757780399098075189576775640512133039767259911907858472752876968267603532127806347907574628889486755486945580205510053052761951958551993131859577404975016885695065314326734334196397857539363449917476193306671713845588885698542033437074857962943293889491372272110468206571652539935867294011851240687402765066557539469298543560775394996798004877995461728847091734849396825803161735880795256110399466706152434720127119478325758654766098163187780899527570523159755252290157532743390602473284759933989140010166750040433761181077475409922076191463867374870477696927016470375730925787505390081903361852097554970762486172656320538495466534091242732721743570252744981735596047623120681795986633471663574432902197340222255653377505406798451032347812807855053052587237038775732011639599452893640231574631523602010356449556918546326072426181383299710827471359934625558527771690417852779273253109191703386489689802897096329465511305602529788385464723206451735844434510175067291277791834378921942469890368106430529748752302102924321474713267586038066986565948366991892956794906686909629773970533243410126214827418181738672199389249218170960608468277295294973178660407606881856563002975969869670295688978585863464511589069195131723230429971113406231294599223131952138488157104516253002470003860789869755352259565497470472182037729677811503690036857702182545214503483282746460617493286043895759618694527354752171864332090139725400021952211350259965745585959859668936022667668451791509658870958018755195864688247271505595336709917744897167763150910167135052123220804555157867663459750841622926749427676734463903362208170801731278883387529835814694372339801991057879826396678344167864365058063326189839471106588839706653067540032651738353478786618792879443795830817755149232247187506238995938398901783080990909908569002216206994127899894269578454750305677536504952218037202156742252189995602852484304252467639660793403607904372970457549904509659124137345784820913118073654086276376397552818531367322322265560729112261221618730346590645368609224010854943882010359990034339234046439152835093874483742133375748557740802837925013503740526317999889728643817801696257400561369601795880022169523006233167791094875247845263036797654881660049497853695241038174237396215039256593832512533643845618268384058915273612661645451503362408765169127176671227240539808142635647773429076226993017357433561551552972670176840356151631115689866768124108834520082184336571862929518993493509633715773988698914712887564317840176851181214107319835973353164461695084978585140066677193146625532780861150972753346319726840439199741908118641650395758845938937159429712963549786420119177729292384543217944836487597566202089265279367956141307750659389964360868172357309139356397169545822947902699201162417349712248266175734893375687018419220598070080627496614619083741132608978537707827795102095241768990557236175595256491923599194265601333996117471371500297259161742518467549604689883706062031786385312938749749909529861218317403319705271285044583669217556329005712124430688297509422564735216885002455317846444322621365727533179369458095153524263974982526999476504694929369356946134420527308447700131365252730370678347163244180603854130682168896624200034886105429854385168105361763961737412121534641765377471414774084605880060894125061629706471254580519469654595732826024381223395630791900722939757347632955736587989401408760525430885584997623643012547680718011952506619782956488730977987235673613156471266480240090089245091345408508693593272257044607447581709460509228788287002822104253312138372972290731516629891276205865543096148870041785026899574031267327737292855876837075264686430870530897170043383530065331193522628071228158189627088973955478533877534039798839638547900078591670524161337723719481083243239576893673688370178370701334431989078749192767173727865785166517800501578970533973981272383928944416776463584400223963776213930788194758012885687293832958555089958615481009541473339990270070793266931103844852638289798009451338177123151316186051872861174114753982786826927389801974754947101339513774409155269819205094389164360974293721224697973420864163386966170012985814660142350307022054089830708139585966898109180643143092408405585316184147732691422127718098300393463733428397389925472874169899220697408188293620347673182826019021766214366268391693554450299081624485505688808864526985749061850648287689575993120538290553640769676113768701130371163160219711492074286682590915350019935374100465881374091043352284335393929925821173822973595561699646295533306721417742631434629037284500196671665706328026688619695875728211434356928418766625061883223951240549399022422010902187216094279747011229990305295117451237814416017151895778298179759323331314207587999468991521875519275737101087145484504241627592020733288960031915766273058804940657955694719403181647796847792247094539888318888826056708753406543842052900913055073328157549790903706530030974412504195282988524294879136864507040571706065109228176736861280533463366589792076903021086195479344685934481463434396140370017675556745550866498252763222228832656802401849897047926062480362781511730708853188554408983431878205971773821568289374098157852549390119905522930690472192956746459707447047184789982799158970536943219064309847069517034523734163223829331680225070336181903517008438493261269640228013826288238243585957150223568554374008236230050968069232082551128420748002021727782475634683650856505587212964341069890298327598488280516537182898884340143978871519341966484294391508795495560727764725831558050387175580968493687915672999979873058383841441334219192747501593168795108749251666241934866816494669883918017392419319026199047671338945368198140376366832761646164936497812820807450428091138370702430798277705619442901168786535425614733359020151078602461199558626605561446840579766575498555965318097230866109158415239009595682744240215662002526372849507452383122890581400222984085601424175743095192773328291815449904222095092999775853938304555042135697714937122459721072353933180965289590671811392111311208590193614706485463163923067500023056796788996394218514802419553338444859423626690709512557061688814782121635990927680592318605165684307536343206864795742128343466867366237189778525816923721474046385364031229870722256406003388392122858476295017877264426988520520310520412577224506983259347827929253727907336645748571402866334680733050182219423560249545979324615192312404537809404342467321631216312410862874106865758266183133624058421119160038247732570776285492819112879988011173731750145952453698477755384531417313552388302816069731880029367268042754423342126148103810761764539971092944095497415022402373851743548576906752296961804396634369201137056877764376768391349793802895047186685093796404821041140562231520682423082480523495691453447709661946054750934167061734533744311496281757487660534606795342354619478762458908820982257725220465793362402687160426974393200425123842973125158499396679330633127331668012349918309622262687727067183981389455544381692839036342470161815162085204656768501909095472420922466001830870973131376263327618530169307064747921675185399059349314502186203628344701654437483767540268333827186946028354516968552558233934146708890574727929465540539708508600317692040705126264250339382100734810316679524618531728245530359264521052328361185587815623995460123906894584482735938000099449761970985658912319843589365272722176733840240434048387138545342917184277352473560207475313209855146171322471097638058058951520371400602252236310218428589849340143360670608169738018435680186427925032926036224902873932838259702028213186051960995038092974194256899029806641115646912255277121573816318856410033088418546825143277305730872632477257326986648684590673910317385418237563530867602160972659723555593787175531153017526664473883259713269425213556764516343875103256384381955424541719360476792281095293980918635062371224234430863179540583468612867559541510838695657869103378207428869808873566017976105044019693885267925376141148934400765539532211586594800188470673450126881429036508515533711470371535137905562623037216410595117760362002962937481914311669194113207097633390847240727178132199643854710145618593009301386571074414780851452760254399964983738855305625580511214947282494495961980529706065615747462807383982107538666317628089347483328206038493316874797450011284283330928110638699031838017033384891205064297161969979083021929426490062203029047290434075004314381447699574070619877245013293761973556593836153034503465258330444649451360450134015085115825301330681870930982671086341110721148699968370815088130627135908394367626587766428733640553470091311639593331261218704930464050789007510538301288306204430083288520376356180611989817135940697451527667765218767607864498546737876286927564661212561710788779787934376246057851962182721599447205076614259025938642010981488130236043148713880559732787469504895195010227747636555983071902115882961912728346307213457411446429619261613563751797235190279686870872894243058777045335988320201672382527960324830613784907794393641676400656843170105463937354840742836729418083234201427887996619464773819307772846989033772501743577532471402877032927185425543757536578565360360074795059546575049500335803413554856436206059702341434309133475837615746248956957492867138186947580026610076447282429969558911579455087014045392343653246915998574685475609038946476852896853635779628506120051348560714445306377442684811445569909513599350146315841059310089096427208914968713463198185822010091507202916799197798123188136670784206975967400418671531971789173123304055633468854996315148133541049712519809413184740543657773319903917421184538660464200232569305702838413414291211809742936348825813226554947041829953201763401890356464625634649762303760732547591439739939081015420107373823598557375572867550547540202671906308852244740107400837782219874783422745517521974875057893324919223438185394114474522323121301760559456291989121153927284812369959407600517111037541675626836151314279784328065196708556316473321947511329628593279320060025687781490934969322893042211585409273737989418811714595110170365384769704913620237636623934387585551509685761505979323054077347221206551509320265075209363833531665487799097546850422956586858057241452188263899289821454997486668390506389353175733131873403632904514789356896359358658703769495788896663174806614303209558624745254384657553153850082403658907050275241240741760357295806259335680426169239305734051186545178347207476776544054583786868221124773284268007783623568746739573510777840488550232675436414861486762249915168587525157251549669904430591304429575644498983914406972129401705779842673680708344213975920613400505624863851381501770153865137027293345060500451200825427084072803355841845507324654219194004964485567987415794944942490703601123202143166478882697079909196255742956410976716839513357864355687856346873842713852102903771998580909639393032712058214273863862746476058199269048163084977674786190934815714017487577596858450490065388603729881737276993525121801335514743482668748071532072453513925291307478618688416298910556944711268263841329683169516034374456282514404999182148830650308822241647227635915255019630835433326704674627159655006657366800609960691082001512768894281295724823504560435909791982943561211646807691947027711645659675208949762818596669680802564218819095538456748584215689523163603765304534568795404752482678613300216998704227552452011815065857677743435923147032893328112158229193924420416610028933709619084216296626265727374550771943892880204636127777514311206179173043260418026971495780645964313278475417654651861859479277290366510982885163914905967663093602548440822520099618340468400420534462628714353115660769965166697590161625439308555475477993045468425441620608143197804461713620788942121903639664987579214602699678524982929037263167724344495396201831745365594247414970596733074810403305850494359440785746644292537073969214460807498022868631245587035878223684315175281817601781693915697449979132042354288816922525705072806167406704907503801516864200333061444834557307730605339036052094608634620058540501550011077636108460210906094147364667738411676922332009209954458226549678515014802526586079839477856770956490531185367601752871347457817539420862023109128356192668044512400986264180965200218198651395950271243555724783152318269582214261673061388053891607822316090467420196553581350051852890256720486551106040613086619828396423690510031760840568191930854609751092475066967949589156004080903004680589575799005406874272027445280898822755157389625655733793859354092147854667152088995840812485083474124429467002079118046665320879237987811089386116540030855776541630338586510693528888580503116694587821912118639187035557945593630241532134103888929443868147076569811714914432724675011543261716794277056573086836751580801757283594072559496587595364878634443050110464310653533846181914244056634161274659552607067196693218055886004768984933516854766121825647682091350983371080039534998847714916396443187161847864971557060994545679821429390338299778507845555736257241020638602586125068537543723191043258605967229373221499878661475770485875158540792747538340123358946305629591892617766733880497041017122717796776239908055889473061010934228855054522049995610414939779208224450025265915334186483844900848967773622025071411068849179321692065431936111506255498136174496342716428963524052165050256927684414642012203194433948495050004506854173172733289299190390982052162522183250588274178934157974055834052919060431267139871729353307482660483650967478953368826824450970371889123273087806584349709108547427847540874693273845264727038321939179595642015630753855094825924390541024319280949155021625409596301727571911124406706237267819028219775779171471580377977819791298643496365701672101495516540820245442749376107074325065137787460688688369267183553633164220679968923523156830323605895247187100773865025154137872241331729803238264492743464263309628184767866285948552065138106965278381921010324299517642644025467579474040219971647142948492727350410094414520141416487435159775183257884467797978475200682214078040055841217895395465164388429751361373052665438231435058767418065544765136138315671187624101502373764479762452113676313240993914715737282149375635074233300305063280221841336057491543064542927166239549684746873378512075200448112872716668813909950085877513910612015234773023858075136681172011098192552898542695611529868829608579661168556300792427743698233769491569115743006066746525012965455572939470829560154986504606605123019969117177166442424062240493496309819393236614030793971255711735149688286636877619716258057037471945769234984821423664056667956635800198974349055251463827094204202236342684708428500016167122286188445188396826151202613094321020401714777363165189955701915552947746240450539712305327905354031029792132912137996688516120428721451036223733807428447271098211329145369082831472241983382102391252931985154982621405018636001406694413677406181770101390011674074927873458291683912090282213518901742750129149354706934737408575587002372249157539901624385810312557390050192685470871861627080621665378465225125105380524678809412357748823474786306157730331423559710070056687920488318774857711891292312095540681871412232336891070571430664743327064189824816764661586599069526586301142117984341143296717571403183191812805242882247441533325442583415283354844539272828226668508713538036919941461208489356843012543116493017944062956085506850447424404732245157519702328657996874465164242119387165807669127861809144405842145058479142522895384452678210876809406465777745327206552003530387885623560035941202865411112130841719750782780245626459690066955954173603649897185476058072125000669837310045824563524652416362530770317386915048502413229518963628651710026266861334003831259836631616101144178211896673898848998252367842867858944490802254067464243869140954781669962841042628114787508888789508602171242388521619990203233103781872495254090012425519207809634529293051968251982207193943564440542569797332979443600594339072951240493003856331147943790312491607176354295371073523018248003456347734911250906403175605810637213311014626488877033646752415445324696933426447868589581163387660710554479820892609547917098426172131991846067126078268563596647028101176564206360704697057326625806712108975233362687940618340693478686289632447993655920716982319851503273985330952525372535682849860360565983204416309251337742391290523947603034463014578115886293063106525462149019979748957449738506255794041433473758390254228037982699770713846890223709590104831052225844642794931421050130395547250444559062269883753986725703984439342696368399782753008678784972859333238025605645811191550399263603036852799928796895679289067260189479308321302570162149238297126686377203397746591424669332688303649295208842048023580936348078045387765305267858014616434360719858756952527314365223865173548096825234906890966638328975822802931921456026811679435095218475945772959012586790522846435829077098159261172154450546402037422031494563053494146271220763201370334074991550108131249861970329614371098649096898798005404863079360293130200741902715127439098693054231071538655556470740825715666722632094953429536170540455128362560005339589721890134316137664720660077052964882498068792875101154460571037868736379801588384574999565706524241599930059290029749503186067154205704718199997248379049765038440316822929714065233003047464520328888798936028302812669127354194887987537481695600721163880752288041050769820159863508472081089755226981593283678519838095593830905792020783757731514742122678356399759591397465215155676799633771887944001425849451230282474902922426207104512945655662349889908069993246612420181114849885517639212184948773289186007013679958907501025013167483361790046490513292932432802917056595676710359954927222269900547659104327902618822171674275477381240910619356828382214286353775691592115426560494279666365596712645209439498011808031003363807423627143045984055881181424172146513253996383405397892765138630625858765345671446882925682465681583862403330045477543742879566174517286455328457286631587216113361260322331837703205282121665151699660475210965862230712794896680365571405459025481962112697470029775053142503563468342665093025033290616163446121398131971848664550214207716151005707857041400567635189937807243049733955377134121961781590844904319774257871740034847430680985826027996706413966209367259438350990490697471140121360493145126511840082449044769770862949547392851871969871123710964595143737443334433034919161309176522763910632421870597477594251705492835551746259055551557990779457324010286560163913322499696298647201744521032033835698805084705920125384231401822637696437115155088751662639612724057927990934187942860589083714247321616463613254451923642332698275085256202738169567971798137785653885742256153029732932429677890871832284226727709429358922846666959984351652474570476967895878754042126555518750017487573063646285131253917865963612664195038501243757691530652024382640055895626105632876069787783410937557998984010208585339500007202524017325525932607959751880326546308775351384644087447868087696427158700110331839188612405221355902462481428494540059055581352957513874882481528162283473735099285362815882957326628228523413187916650246579150286018665971192570210141260305296062084902376957324086828979038452187093041170184067872597063132888099905491910115938567068823615733251687302707963293069588341647626710521706977764842381907954046342572539172148257571829390391404424561630157892156775949138655576218432285365124328802631656105146685405908012088826871146806137800118629837045898411094294425106534944635178375096011660389191618134367798418742163298936934116124974081729315795016873176124777024916017232115143040353619233179734720173769353724557942531445535512074805124897809480854149508610461913993990628800093348440850140355647108030859212794177298769592717092861421055601291707590858001093011256890945649979786791948883265012390334274535161715440210091026868301506125682728565189169006029189283566735987418715514157886972076333445034971633406456906234627715184968640471155708060238773338521038453902388914995671395112739363000627396945994204217110519506830482211528780077612727394559624836508725320624157623613556246769531571088266425213769380305524460739291917730126426672600162409620140784593901905278024728636647246972436942783312307903043090359324388294010849284154151053174689859062539712452144861842743527349045855225208327407021364065799759940431347405791946399632640868643579982700457382767705405627732089373075769804890093980788729940500935428964470149861789610547966112756833442540163765169198212070065227438985140172429052207209796496734698972871754278839024736819015249223900396435628481042495659658868022083644404736220165808907404092141019653217836784376035195928598013063782285512168077885009171456655838632586923275061940407935941008096421262136505941255407994038710223078184866449420267975750400939129455379768745129005461504500054248624472224695316041860920889735252847845060919506640060990345702875826822850365909482425032452941109159376564378935114011917049547481573332893106606666486110138088769441264591185466461356773300841609602668850874212765728459574268056423516029814086265861423612966415615869136518265078491792321315673926200065206195934022529038402528840590712519621554639484490776258310991666390074648454540258623273124554692152080717929771359995383821422327633149777914960011521036753855186673415288306227647685645879505038717112702579237764316373952699446608947682934845367957210591750858565391780737980387332726127988236515405139970671539533240312972638729206685718140116954272731063704489625553425955259673006068681406278348221665181701724639246553078158298880609440976029297895562603896753050941997821784496241631576673734071194650704447898552548303447470109689133556731514990703069053749611070469950174393114669937671270620691771297913720524437053714229838567636555308866669829811722477219388462052653054549576148860310052686338855664931726756014802258289394938894848333620894565878285974395524287914676156491815374236390962323976610486091901851057375651008104655908143415119043552191614854678982123023905313661246841900470082773707638966309374598999823500316540423037800700338196391527562493136385639552023345105186242959961306979321540407132531053902198370366250056569848210500473163662307718526623696400905035593574280993371765025987408728191681052125462000227276671778578340407438257140158605252177820826716250389683400615861991584846341680432636503722404397453244365871812802857371312823663767964510999202129498728693172836034366555794479821058024446984607656669817264716064315683318841751586340702988852906447860436339604925856901234339772203040364286846424456108504621399292343443401177953173170375016919852526886307562902384604059129178725048695865578610234700412898512452866983943028370105746392930487024105632115006210525047830960993050968790465202193227565455043106403949787746970446862367038320965059823077027636930771677058978506128209982063655192033321052963110422581519883448890337756818745481408869557669370425384307055728182246047591143650378234596213159560697931488784430166028385212643751889066239180932215034416796720334939667730798120836321423549373582536155355375604230671824758951214194676261060165258556968450104823884058880362613672671415592558875396034371911109374046311466004349035495848592194597215653636289343444534797293331093890935128549233163572288612079766919031335567060539910043779183153932611286027405736612700015364238474713162952370375094988494742712512414025491946388233298879147294336380678744067130502371917872589837376380951518960433199339584687630537095394630854823190174592367252685806565095774589514483463158580684461150647440161023736266393721765404134518055630902644951576127528218219331155851770940784616351388198659273454420860332649114156963337887813787674283667695535559896411386763616157700928685433048993209585071409074046993863591366278454629448481189639750755116751741196079424465127528501626009588473634751880068262311642293752310141557056218709725610565686480686756177031857527035845519845151595473474066331391567737382676214464224323865223805182381775735745215713257370772891231948771557275784625164339610752443493488063434459621825792620695260657205651518861955415815924174021817450049436633022832629251501627244412871510714882539047981257859297295575758552126403626770312341158600963693642770357708844386051599223187369033435970932653974641743089097655097132118413302022897268247366704897811676274293704809713268572333486087109639605148371927640474812656326758453016121480222458153376168970324848249200044483599383892085951741048196228500019004557472922384189188102967018402262211167734711954528644822759033161809097698402388786210630972764090561753133777025180388796611179360256640879161902588981695638998738741986459209718588275577175677548453299467843935060713188694181798166654066928629505505164187349869514895438082737225557494541162247872272967762185828320334390966874342121251860012772783018293488830558069832006661664346073896537349716324694331416437213458894959032995149939380060211614357173358851750164719973907644524871796982807736685675736240864818216945173857979457296551473153578672884592782623330747599540552976963125059707516301677748020594409389183397047174357363923105312537231062604411309048012666495895139817322057916373558683603459439305910036154456085480220984875786923300264798258153500251885054002363819832969773635050390585145458475251581249849713131089983627136897668323850024301046783935787074229582533049513140177704651335739030050657543424651929639342597282268018033492932288881471577490587271037953709091035364045879206947624513624113856712876058703395023987608311541392488850737727181875908186733696312561521611659174328363371116340087582644643642097331975788142650739960760741450070708893721798132214677633327243993926634853878824501307601638685976388463595328092981380846576229204966228724403916917905961322893810551418733098959171335403443123008837074653953601227295060447363845739299035293731515237519753181039819413384751866037790179114560670672453968752351104147231240188871458943526671716529602698229297591824765133533827768864445247633563179426458274149816273468806502303686075095093808766712643956625488047150569957002892961422105366027812326180976318544306779712286071085588006427318225518174626110262544740629164445609126602249468462027027113255013541669234169166154101510667643375078075926555702272992156613160922877996789340717274150994361504015348942627276231208784934804068284144733237636933949804873257539538478790092801719462271300634556816792181693266367624588707245731982284614136254888103764926838088842269477806088445391146517323291699431997492249646007685938891153053763103526660318624053601836169016561913159046207441237948719238610989034701948477035343796059144446295379263794565388591297568611606534088930408684742142970854907598919028617996776230530435047146690595747236055264038098928346758251225145065145918242873512680302234480235565416819784778219475487081935782977591718407568482864338183870656306379812353377002870320793644154466370035144091232875346906403856713901935963098072642335484726744884248898893731335978270625438860265205675276270367125992897897803315751862918442503503900738997279423380996442121276505966525868052769099945371409024561330944625820764454790408444025328399837783585682662211422851351106515197137661658883113793515743371102769224622597044235128453705487646747648342904096091627871720577213612440652627511635987321137316387933594459827928878066868496190628142622621454067325447525085544680889624600950291218516486817151473495034298728335372628141660036157955464642311570804958275945563989025863476001541318342246126431209653783188385046138531285455163949940872084889964951369520725282456521712821750390155238653197930673415673483083491555937275676567125186522563698641301765059495305577245763562296210742971453060878896801114500516847543578856073257234063200740471108208305587561490396597146343725237324932040751951671207173118472445807071726419192778960038663112693853293742681552536222516596904510280752806146215483218434469070948773250664547288184282235574171733858412374815123642829469245498295502383134378556461668541791946611404732842966164768444005874853683091248745588356788871966548652800417952404371716444879689978562141824059379922908298147106399813995830447186685117946083611761155377218724987173233169899019727368661266146615679767848496398013118624256818655638425394212124897365155840523018269269912675013552148662136369584852289683459911553927655316234986280945543344491833802975512562595817390032440709257194694707566270901636881393302962634785903196664658582575720143791496421757490266186554164614514060149296026959061859542929398351863715242725065552085813810503832444596988658698326620680891036088804623458665824690975465464946031076016447075802213259649406756370049817349299467945246933290538106750046958568162547279959696944056567096007252237468588173115107374675404756777290178598574178707016393483271365508349693179278809757331536796320994535019247085499713157880688404477545570441202680336216477774470039986016934414881340037999789850402207113656703351298424780443128029823036033209751989046627276747224042272560082165448325539933434037333559676818007573835374194187432867292657719703158875488886162135314161160478305138670412567610444652013570698470145926029088701965286438473996907155268749701613572850936245836231331345769291441715262142343527440589789165898017884895757980637877609742354569167268358126534453248220135607541130456631411962347857873311199267313524967004398976685859612596637622329372703129140912906911173169244695410853156794157059339132432273477616658075052973811150878186464600656325891247051772890994601168436594720044479286038529108461872607446555132925949801698475702405592568102112289878135986639739248195078075033978554829413205964803602846306494753274260843610785969523046035590537107403665797630995528741602641761108767489215281888539434151331691381546423762661487139538384784476247213205223458884661971125975461632853060835766439137038737730256984397918901481088360499529604236394581832401106669781684514366247451932122378960706663362043484306868611448812475206281299581709734415148025237178850318516959706401884738600109500082176948664770047039372866987673239273483819643440241486063375970388814537525380637970243091233170139686070734011001476924413645735271330900015109642512543496580405736381202834075333188310256995452478803132500834804236110268064067457437687645160197418981380294453208786522880985532896816251067573810512543397790676645508203189584498863037742945094761253610075564234854597672734701740840505244614164694514123563719350607118607355084585809386949576366946131707864892256644023206556317824476842970028538347187411273351252546574428289872510766572464613284225136920974784390059486509101865434479082355896295214686513493632652332710686486375132356664026228591103906185066480429671461300875558155280112676615288427788871926949792728550819714873645439946539353860644950967478695213028420439202868224078328497973494198614198781698674939910253997011962545681139883398146762470486526443613249112521724936868512396134585098457357217877173713811977459968940658109914067645707646916659907916590857183162311025626966234215312039575893536841879986240157974986827929118452620034223991576593172989563793858552253896514521463365011794937462116522394409129035741241347389248676565387468741547418944751480422941764540898089517951197803725567900090846958678067510532707031644146586267337395005522443359892235569205865196047405578731234036833783688458810890488363198657415717816155772054687971462489958540129465185333493396576032334797898159379238339599553592161488969065738725597818894353531893517974442563221412991974915488981360781793907051073489646089985859250980413489577023351020645915741116505655071691478146966916831987141666381310095721082011823102475293618584947103268289593875684651555484929147687773371850932387309898724527080439922831953560135614789074299308413441091324315837595339357458125593770387409171229086963517095071215365585132741644467533587097971997608397629815047370658084866550174015462159766296609783174924702373651700179508153684428014856621992827906650874855876652552092613631967417920662499869297664225319592443511258516889528645007015900475441446624996255121466970460006189639196023928375445395021751022366721244421353671439630458826357919003389247528174285068596320588024825015798955810786105684056247498833005931034628231099388161402774105386419124918779162397520256906476386450085451844201641671030546342082997126906540065052119912531357965287291961057537958245089733562921586153845634599725408796130653188355492156793927672162840455634148519805824391795657413106682248227126016765565845374016138494843012562890516824439730791517542088288255005470092053643695435357761523451520015892583490919453489603336243636756452126015153685040556062970571030891870320939602543843374280164537355529779611377657835853605255065740290210655267280210595505051019097736714654024516701567905282692074774297960619694269705423720082408467192367828618293010539630799474406828456301632910307213870661662936199262930977521650922550240641293294359584945947658172952202511984487679916623316471307518751597560149220696361070878952911457732576745441139660596125441949989515513595782018708182997822740935749675844750326336772068383370382006492231432475995576865282588910372809719916585352215619674932386947065842649434521056021071336103055316603561732885954747231721595644671720952900720068812213778812478080763863452279985257939820545426326894238111831045447444588528212363114135583525157198053109357632722828168598340996742958722309031542983221935491220893766485104992716617789609838656820561567673532703472071105741305945305388889565645509756454972699839113306246676116665697514782693958635449310008854639364386451672856348937101257116334035880211832050788559092389473258824199455917213047411021861870963332830502828192673138708764883965201831751237895986416962807983227926326890967483483035660172324167246699332745769699617874392849944819158871769633828004155066107921135625180984723411365238975208250905395559641582967866894484792884711905311582480460590591020450184046918001348835213060255735209788619525701623450630049827785197343148164544589446263185760296415852297923460952705632116906922417581895019741226087824849418932020850970347047526124355638414642629346417035416335638755643748965384046556045691025900396467347513720613865080904827435504487616770092172879147316252976468735922729824743515041314170995147101532056357092542233791411484370788446915175998174444277277312309275241900808599432444145597414473104150740848999657609018425276737791066497549020576019330311097572033595038541763107178493852797649912590387617246060727556792775122210376891841833443803409117278856577206928885919808561355255089577171353450378513368338382493950720234070063543417427951061442799769295004838289168280390810612992519870157366825272010854875155346313511852186339325608982804008148013785857298181162131649825987290632065100191779239330345821386501805162540193505811391479812535373651322732313033240759883132068812831383353964793466149321750895050406353982078819068047232358767676768135033894899892849596583056680801830577466151888608849837127213014277255362694768902627852743281307415305530817880034972630732700257180256453518109528173949034980975036280027709132404277099410401619191550856047809637499701596020837010423361426506072691398462848896871970009000977853033933546304252348318069490174289456665846761555444377162588490272972266960460730526161261109743170728053550332582006885041220098264421911387648232543397341119807760306582034456500388194205943691504670832605714956775619736723931951244457635533947440047027918959062363361521438853100321800648037190498853782858564804870048678751017934374863591796763308238008020595283958990798577147289573381117936760182614201554735955142711134237547891666982703115715917301567125474731198008301974081722920372532885313815639574169085886461537746390674692396855621184720820552944662590740604889371736159029791730407156727828312078070613808711635936564297064182950691275160710086247513291342263443917078973172485250399752876673181157649099479574737997611716369634322518400761861272167867776911135785080811663457427710787024129424047766588149283769666742923744617108009194487265792948651157839738289201273579720245113873890854439007168059676942591638109862244039091011537623262880167464108484583154426738347957764038507458011762928072507483592590084859540788446406737438099496006896306260555621336338249432591336850584545478337436937470429851153846382654185489729761494261353356342664223751963486401204604056095833060126039877903516836277981163803243227542241654405028404974157149881798627562489492485297285876567530499363910311360193590840106598317123212041183839065041722401858071165682618805118308438329974433116883918618474215542749253502997446051385792791978365960960584112738414261765131838620340164059404159031707990546212488658706550798106666334937127941207030924981338721552833783341251117159428814554889141254524779682680498387408891630665749458063202218096199125069226388849928802688731395279559282826162665269662396120569886001011374107918639449788648490685651784533064391836642677270232165514157814738927911462185326225575275390916371291297234530835021966880225931323616111826808530030106334958044278491944534296543677777165247166344713524838602872990032498046815251726234830288024017936474825549498987127485085814013965864507658922054751690338869452274930237390444126848115084434982970105863187702239937816198061893527678892346772824950124052809199976325440442365686509156881256479571087592215094681313324520549352602982694325008794674572389187328336079251924801363752413196633775114447372410742487348574543897004945743415761057640662934090442615809263864001480167888188268841651544655676709466201426106728649539265588300383037216719804083587853632084469378513245502250915463304976927284100292247016001724968777601904883104982564336533423562688830312161217493946320936272567880064794688608187735599189697445779210322519503221630005503575069832644334763604824351745603726037909737554589873366103520100964613537849405740777630868569799967943004354822439447412618386974351015806079522954564793924391028767733423044173670234667917687100017914667978561583470184149557766691843543732980421122919046543932190117254123844436350871107767437471847451499946083576597137409251428997453847390541387622604749682609347062268685489688346292297393685816285574332052354533580945525622518964488027622406721238104478706481346392688347778478495937755924133516276420389301815546498194995557486946179922703669410457569926274901246010919683228989693792741790951822650486217439941565683402498449733951811002653043353199970713871319012186117534872973661656596516657372127853803220974970301668874511567391081376541873070488066932811596250920521727184480689237091077474207430256331375473281696146024638433522156227678020676181089419804597339917999157322473364080569751065534506873367547651385856298867720022467622192177261642168815164575839152958903633946673763903097044285541283959379031727846376943875206190054763461902453750048513653253648276657359206537511054984611575984723992244670502269882706144008932812180871817647779397513691160170371442199610353830084699823511238900966642610742879505344059375196038187035566134073362254759579488132002124484271033312228480833219509331953560020131958101400255966756660572506197801257709197458439050881559525218194368631764530561970050482879462350742457051766071712013229463932999019929445743646990813776920239559011731112399211582937108243025588855355922961215441278602255634211436745763475991392554479138589342062331522645812361935940281186154852849539562839793353942839075080524993668997344297252342204511626408406580733694342423279713460054036778781577819208875464163050361775216916341821810332617168024904374922914224600851993599043984967805075098313720379589622614111964542991264774694217867584941070473201139712062635499798516350680395065711797671816177273788634317857838759367246304883373414176941443012412857166562922821457302682772509187229294227567515507849030940787438776441016550161019839923263166756266517685828170094176406219655410835777414843060615613713672568216432562255899744090452396995905764809382350581411265158847935113123642236706936551774193773162476163447957071173840131027836737288155197490357080707926744007790727221850800612667464289493881585275558298822414594643616080215823613714765308809617620350132532385735732735177051007495190263242490688330643722818957169397043470605906520262953278001735662451655852762164062243776947999080402990294428709588112946636760510436011745110277711196816686689514984071807808235375518656915653854615825623916186235465515519695114590332882313208409987375298724519289448184302915123247048929954880628191313394595562570039204410927538605753370475022641511117328356767401734446727548509887019743868877929657197989511560630970440280844046211213768260188952111835808158182676471168443803535070334500861905367053195412595828286104024079053022115828618532610197572747814231211716675345669694011893481519305051817792529166678965730744128904818864903252940277877317371344664599872491167366745455114364954044154806321732827645137251914859451646489669120557102540885899957848735724630366885409554063476955878420019628066915071818001007416730622675764559397626522309230920615473507111495672498815375242769909283014881051714567215553936274656557149169629686938429311229523065641318468765984848216539313566736206820381936903838940937362478726204441220683874916610977987111594555363574935338611106944140273271478721934198750279591175083413301361557412126965417907080093741116580627050275182778506055093552008266086040231115104685487580699671310044696875187883704971829559370663878143177659453549898589716765766830066629263856784781050736953673814543341990657602785104499601700459625661193217845649796702652648487045068369017997067194070554266323905842588761900944902152612943592691116942487518835675512062005171766309919017052150453816839831316586136812509657750774940593811145355190661226766270608348290907551164020011356901120016597969991997834155689489022292727912129606859316841019674394997393633947357376238319128662093640878511858464280520882147427398008360286927398431835355450114459598728306773576042958145607051832212115570556030798434009298454273593189942028602339883737966811022951903149372001953869862426498057509354142613752035735455585205999489976609925155717230077432886241676048174887078088652530268372085949314771333473028252011443650473430125722331653786327478115533882809047125004445327841066481401984568067353216060183334783662640452225182538678162021281251557690294549367348304248406953607273932711778653441328438412854768299034217141309003614749963155748018209605715745920680071775847478364241770103489066828233737126103158308932255159023535049059192999233140749076329542488448315032260247799319046771996976911192157895118002233275277382660611281371182428553063182952480305950159963306662826379278023344555836838495073562032553801959671140112887466223270121245249647804782060823630448217907736340819923846779413158147891462098857676310816741430443240722340879698651289672475377102207600754039105124398215371219936379625307882358352026723512930712609245993261644834679120718218632815286993913218119841189634861861843613253115079054606546178231774345671947679100970828210502298011288900978179806599525521545637737627376306370988956280263083782171428636404423403564552660963904965921864507705816733038201788747442401952853844130262879970661144590991281894455165585703122282968164972381301710519039065142645435994007740608499206749604862334422273817538188262266829176206272713309004394214959434684940518034818015609579997847133659627621896519143110544450575534392554234397170115854457604478778866419640311798056280277603964357258535194077089241952072390588341850505628527379951646075224252331797646919172279311589768295561287833787635450211947790763143586537074342699574304958204453879637262603336804266125479574226997971942370907178181794790034945516510284694302603484346555836114112976117504812110503563953583032553022136610582405203710480133919440291637312692627463918974338370710560574241587436181835745556699044511426017531750207515830488947189030741374763761313012384353827940951545807090392120516031241828650193433404609505217365847297795955056568497369244013433286703596420447341527454078458586168213299382488206421669217175826339214248628295277193276626202848172774696153244805222249625673991887649597374639060619477222264037599203829164179241151324479476520762267738468811466789536500967560808078402534934735126409414773077702001259771803611237287274444372144755532927880758886160885502014485641713955245263179092598440056439235998774270321732983445623578092784598468718870460822971149474539375148585327215299988312936262257508635337833493992997312025245094113139499091447980660122667942260162616797394257687894506231485488919278340386122385972706001861186673907547795433807984405355345026065398046996721572467901979026613618850364264296522569118228818403921338524885569913869054620053847276416593539647756968985291992710728821601683246955077840285733749623517416009820554666322893708542510685579245428992290276068337894978321158044129257535726263092807061656822826071647573717075455037357186681397524457346332705724172082743571360956361113753570811811387955495621486957899731550736872287526601911888418256291758937139043507873411250955803388895526860350309905894710109126897739572606030012405800059622579753243610844014428737633725222298277074870306605933464510468947906181434444027358950163995213642107706165588554482912243189644397716140364857076846827916260486262666409324973352688391405483882115695565595320569012599883234612623664745983195216461738272069844793919741193889247769447991027952030094823892524416393520538722403594400016861512978357350239527508895641068222824843025386476352267310582465152744124068643791636101458551658253423194432606841617952419941699022877851433687730228552882867104148020560446838075991798716283060521791191984800508003898633491092675310364162913835129928267373830361971015853463829237939430439051645914337358417491869429610621265170345084176511659593443139206337148422286147419604942100930561289948454992175933397297499902235375792519956862266468095357442420214797248175578375730667363846053445303322880947490599625455044792948251094320143440258057405775137246846912488213752743491590573529722964112842178618242966429124819466365502655027340730384598816229651104075805822351497871991959037596479189901284191413503973941351331753761325070247529227128487775358618639929789639155944535558239709201845005906805883751023668165218751540732994829700775145502058289621036460250773277468295721003745124345703963549404232681779723481779319617844327609189587846923890999178705607597954400600039169743748635607276575422499045060552235760706029452981170540981481528084012078323527399707162951100820573334372560409947952179281014100377678311998607090788397757376392423168470308799939078282334214110006131533451346973587276726056292520901934898145164892936731759128573895811827333616761571995789948261407196861520814439658357562722791006513443020244989774800890378538719738275087489907568551525987514503468000395492976070482525300122311451746739530267798772661366119921132860976917745473499535579307707042654712837293635319465386747769305743784463706653632918147720036017701117494449437717152994056543147232544307638532768548356753022444093649716357015278458559614975407498105590098979177061328466808050941503899631006629246117448549986489224039049383234524373313558745373539429554835119375859326708160027951829827729021771040680122062121109394298177389614780323217079137461295167271186469740402138881083204785771915927454074078060290190450619668771988248686158476608124866298823318034356494049652983481030078577444351731949321684773088392256787549995522670584364304127779839005702489482091177852859261975635219241860406676829503702638516228241710514345395833518179498417143607725481581428045687842314870240322640306765587534018246412677038481677180443519410586966521691184629737495179944177539346805810436122946458868679150527731161956247869309374298951766092614510358577790651536788479835017016923436669037768574569177172576057297865976396341446907545370574864629248549067306888662781527111174505004324533193087913684601013965256026218881590649560071273275532905335317829300540572009538835579991362382584978588924515995233644334942941406647780881323122582560244259414779988791466997549704785761500910250414291204650784033402886742308056027045970389598042443630300206344982545588457777221743357674126497292363826201181758533470304822101931703115577755064970663857358152767560887542039084975917678380688439706644140579284954853390229149869158788576314626418457626508044481866691811581712430930674405437522000284958616933956725239890607407806642529796874853688813548217628119809547123445467793745671738174709716167329633417455522911640944708107193520100058563015907209195621752674968169258285348542861100007061558960183171436812301574541858694409939072619260659932466720513516574160085979206398286610841573221877460940946503112078235940165535617175577031893319642523117288729978437473038214351931607389840035380994210873161135068034046071155964504208737113088110740096740102996318681422423946854054957739641305423574740118693774854418504972695577366213762738669494830436686290499327755360585644243292682620253577561107699664513925673771694788550441180664477403036684825035298727873558819553411166426579121057611783952382731429943151764881607894809579568523702935055960830515164236344662902454756498324328434433626168339169524104662552844247894769800538225209003546788132885419103861914684419798256161799171885808999790998876418247198922720674630456947281484328358747458472167498739448220303755949052369581221940021021810606167452137037496868397932467435620246402490517430509589185676544559622506703258456972444767135899678142035168031676626640056665990438607194586012745524767348447885055364141664548231322184771539610574288088875556100684272579661321338960899848231095878419472726956791200632732093787577443511825984939037786131319404805912414168059161833399548811780323878754047948180081776318943777950460386956891403207052254673978315115672483386698518254597214802619618353519144493559286743558015244162903376356401867678984404744287622336234588751683114666403543691171056013710226815531548790964630848548027153922781806078646067884267517644980700667838342133824599312112686014457460661864434661879643215656344250839443131210331254854326886676103463512342101666806660878851868704864933179469379750610529409790055324846508066417961771770586433271092419722847655165190741852967603627138583465662854517783595450072879910676952335373871490292781676534530453548739545786283261818387834323494383077814388014393143686059674503584581054718213551175707559602177112250338620642017528526625747377295158197993018039758962450296524969749436151920820328358442856717915620819452391929984822169452561057565463520068042723551103342269797536050839248703421652764531271066402080609093147495170243949708763857539906192882129161783014716540060173485569679778468913269300355330157735757133126973733149654724502481211244632321350455585096526798176355309852538507047613188199474829961409091805779669159317758736065607704668782387280504153147721875402163658184079163301443580585519304239517577133134219976629532495284165519915745886993440493496926377385384973280102179805299420480102566677439151349197847874111563459259849762192849035308650664476516079486732791424897765239704442271242620198763742649259388455179330178822445170975549767658762503888569554421588301869993564832713073651966587153118752422845242523212603825117107527068107345755701244690787225337860203899642607694154061570079063395608105148607458830604878890886069790336048781022397899591090449785877148709377691269870879139191576961943876760647826454327055142021991798962946973407483142710475500860622298684405336345289157607233026887587831500260383268963326411429758036388740536223942891667931357876607075624547197582352450368101437239077251244749254128037495308298135418381890019797005177213511401787847890572452477123361300472214476104918218387895795396627066355511080419125550014182296754788462304528525409228469823082802932681356197457815765964048029839784394469466975041425691525891200872518843943218653016518837327387841932683899099275593241002666893371708545738228279063383078059070574333379234240441508178379077116041590528233409337825665524571359595665309666527194589485324315903826575547824046563508391871238333059217654212602247950515925013881014415679998871329860706533814068493989381391519541106601877107562208399186225439020233732937295848885670238012507449457632668132129384338835995852007716660434167992221090694633181823121561677689623170036255691633963536969050858410256007067993197852706446013429391577348680294287397768865647023581951470087266377372415415533957732228829326355466931705957614818212869474250342924417909190316271549053611163755574627625548940979896104273385992891998402547277444165146198337162917027639647058378367037476022250729894523378910724981156996008280410287987395505105426374882393313602440172675862588477100464922951081106388876339128945178233906047403815852223614838712462666015325700550544544114171026527222923976824781957775235336164977125297759482329153772538786729851583911971522931909290959136184181041443943003645407400584175603205875057199365168230070159430939011649181948623972358497655509611219938492638205969749517313448613484593209836201566013611802729302005963700091191857011015049395941241413180168029676330864086675186254667468524219510530763652111426646336710982897061511451961908987922733106300226733702031995909178695066531786547338061662703495702455113740912865572934393675425695166486406234588637368193092916756372347032575374658718881697126920772834700923510289896866559958484661624272631630185861450161605416652260219875771467708439486325729508661258305765945801048309523699168698343019136458106086710115989525346678806988614360155134662910505029717045062817623704813682359342022235882932017987029886029191179345503147397674245084931294012627397843161574706838197514287558011733040054522730825984620098115565084246491546358901354876045669125563094101487818965723669324601738343237107909152615415040964791723632256041398229991921925049597364750929825298934086913403630353455420279141524089358609442410572262728852415360873652422527060428358093991510570827544781687346055510682662970939898677698067260014172046925802808641431175481124548796451235709027023221375516634405602561584338958397690858334125079967422568400906180351464660908768650017971122493862615699671474578537635720562484771594912410511403307922842479838332671868346782766757539594493171670178721116304492746359873770903999929431152506342636346889799417635371255356242470019420319800124501071718059477830372556567225561662964542130370364382841138085535811445981191076181110112311410342491062319303415364261186221338756481712164308660035744209265406360081910660616294961119479846287318113890038622455414114614552452041769406452700421085605694752192929430859408777744263953082999912397933596318361103096276621352166017128524085133055568826166934983871457195004960752770085440261410513984223425786931225721133492985876063013568025427430649568718524264272227318520109156427105030082685365846710961363967519777511160032588780122662257219519393229208530903907543150329920897487274321510382045433949834580931291640420534996655953345979331665456341051680169265080921687098977214033274978165668277658263399703102944250550711452298829508053288331470829339817246177475084438278245137984929875190977148779037805337497235556144550928797038810550503983853774732628477328263712988979372531703726319991054785243089996911049680835449552114723647214487480523495348049229512024609804185708375605024587915076487341051222724429842126465045763053811203595484886876397718949081330843379864789210171095427688682712364571721619070828384296033138774394385791231604572185540053759373399068995942800300799002375327806085301908734421476069519120985803786694327688455841727200576486240146632228490563251842070320646242512710349753833024405336715469808219859978984506355001001699116495683931641753554606391295615704902130635281883573998726309156046822779440842269852513270281951418637410337272582398826874774623349545379336915258225121771334850873426104010727495993384778513029924557731131194163497232207767672236943904534321376014094082381132815527905170253362604477716861410786209236816715826314894055930677192975931204433888878741574622637685300645333985567098368256060325666334491858010033980485525196123284295827069875516031412124293566811182400689391645279048537818048889127265942055126445962701599063244385589254483821555346990617011946292633828349336018459555723777223463599192639352442277002998702255587110748427013493148722844096762735020594430235677354500603515382446788233827875118402520179822288323477763378467782291169558930827145933265631060443359338068542866323513835591067855512616059377902250277196123055652089996285053301881263767736699818946521875544126726832828042658483841609683849411014775364530728466128571829840569829324468687371582106632849949584206217562192202405971331169460473532068593196200082267455644905462948638536884440928445467279143718359219853628604604095722262569291359153055511994680281825183357393139642676226777450712310976440334451246782900602372764430106115975717629740068202607414106268289066640975065963720835906269606760813032228209268944725449653665488250545236060067195593301142952050706126130409056806531461566054766959544732189973149553984665776706141413200676568782135443146290240924917576679436802247452745533426496109121554939395423548490782466356941834597276050918232563563052845538271426991088018054779424884340374469318754661165315653928413359198798336276850776837839940165827265378698253669977341818292784141606149118924508755754875132154426499827858153583140967035303196625368916015612253616632041386626424721069345080579333157847995008028226721451756984317470775353575580306033683313696008515411622004102745870596456178902349876666833965771831393856099586320693850322762074260930831693845173267861583871849094002454973179240655810902966466863993663939081211065658739753353405651825140019664496097651149025866702198235884018838590699196198869955367966509653556237414750136335231740890809495496333582859081950694768265828242094653476451336999234227433365978958978272578897357852521588822893742557169785369307809253498575864091035346168884171942841145398018310131826671569003732463139841765466658111273929109390966540719138548805947673064162461315824973756534254046120970090113792224276356136346080202685070574783944817635314448389714863939828204159822914463845783909052497331696387367883839004055383787098668267434659937665025361935573194407913882773749832905798256349837525820774074473049121524071093629084565784868649217567649146894337587217021792773137225481494166160272826389139713786400049444954388940977734380912480372666936070601264638800594339083994439953083315836929306000613524906484294440884612521996700063003331477674440254656633853394818426049911618526946564989753906522705580883128438022229582635113467767835177680966718425974629372707029211083858338621789628379400050521414606212139195749744847011449708900557320441506368179323861830006409798738853468657945390773346097151928938483914509170912484886024306339275627650913919604427566405836465021040421268975111591978447374913064205636785897236890938852156760171415949885403429801479706584554958412595437395106745742549670375090929720149325735759756537717106255058231951714749113788031546076529350317546052956168871525030810162342583878340873080854040532645185835549664413466808076232115137339826770191141972665705765945338218105870128188453683377199416961377962420696252442989228192617016941826760301574205770552007203024717827431419924324559339764807629780698144204431770565992511379595659954733464162480506092898634997576777306911828339800613606133829579360665660967932821226629194779627395902430698562379112783721189328099350089341705285518487896807448610086107325888109815938711269429925100681364568686622432087957143606831751627292975398090711882517171838006773456705803095625861579828873372827974619738497553424922488464973819088426922389612986929693425033605982663424158067792231161219427759940796944463001356634401548620775920282262138390593206069637248346409263807721878518794946770813117860841207671426344955254185176359669002902774703943978866170984174362355083972710365543331944157615546562498927913515891919237830899490631769678656029603131270013086709865272775744220861744136446080575888149845595417515662820743158803055489364945280867481732695031578027173498109069528478828650020719521899955767343215188059884221084754753395296994135856055808580830764088242624216941416370869693072121218004573690031000393799064196878146412963891766728952259267712837340322220169145036354908862952872013188695504676257121838115032298109023870772420319820806065926802699842693431148142137988567386111969746864187520505269806338937061337380756686520815689611479919849077146649064844809864443168649038795666852002620042245283773857309081617926153578891525275527615752523999984079019032777756598084022132608877005233134311841872285760458192460741164583524528857036433861316724086622314782276141912936017973672200308686888715741501605146087875360096349809161327806199579323120378174017957896637931488811191061251489585862538646031260113797190412624711764979227736969334916464277718225716091441330919515022073119726025978604664844271256720574597394884471064143310308585170470872334794028433477372873578526282952225212567452842890120584018625542716429035190207490959884993583427736232299151164296830516539442036729192980594532055562408252948907307540642840611839279863260872963969295065287284454364255135062033436190898538990577718819492553566445821423577996878888090119245546943765706214576277105108789877250085222657483407249379036006455921803630513757221227195768060617502082074453695309300679739951893321413021916057301501212306177833135125654686699459577828561550753820772884153736267445699252342692139112108085816735574879416154644956567897530914327052457402814095105759159482100495307000570717261805511417359219394780531652862985506921039324049650255277644999164221104386388839737996798084137931742174680653848590699810755220208320673332234153049598354501497839738863617645208214339096889010673026542892118491632419568313210294005355470612373541092219772416334423097845738775965751687867757331376286890343542167781584450075730844508485075923002522199085146913869955412720493802206752862157539077810367544678151587880732317155848216153645487016429173395374646427710610388815717524235109896181390096116476781483355164450221643595836801501199511046522884687872913686666647405670191516570895302995078955040823658275705267921152735106093119087945127446789439752102846964837441313841073877459526370220519224733634569104046401254657719280797860429073254085007539150560702307500530349391558893732682735601470084302654731469069605606337821520437902716108941825780100983427260397266798464341597682716914465251427874887051504385032406078337353710501328069924774721457198375313808519414775308548671043883614180925502854036782742521996506604818869262024648451263719016759884007788329165870981761379469246204157777273088059573575417469577613179926762559941002017438688924234747088548071974153364664239904256951145050448767521315508060386483693409492352942631959695759760191112925644197378379117741415903550191353629950942194141087173177417409364138259074820469925567435203457103187942592601632839526894599597225418187482314276963771011241062304734121057267394260607143641543195254924674971639486928100429746823740906115347684661358591907761377828142994817539149443608399624763621832919030047666608822433969403254806827110880308966115196276894678036988305775894838195048786433550760573200567147368999527700056444753052140976371398170094232654062028922912709998068304729769001109142764912193002052666029487884625992598355951562291472635843412712635729104457863170737213436795713196438501469906592408955472975412710064396499831246188302618252947146036599582794668725905834195937334816692633653812158700067125877473549622881914754493397220676918085642739843027150649340994281761941139251550080389401627861630422640526248442069850714717312073662520843521970228872943334612706643576073175813024755648613797009725761557066244025825871038151853440388222061252183416644398254585586495135991979744957244616265500257691530228922838954852671139725292883120215663575126029444352554080395319767393625644966754265808195191439808152336662248693596461178934231144498945480799304885326841982879665320648096605244077540199580642781874550752602707498401144318384604000984608074667701137204943419229482427504024466076474521379306819209554118775356671457832568347950555677870334476891657062618707533524517965004885676557902918789421473867617975483823252352704084060164223297976551094087276958683859547253026684975282621998694835300356127098969624298576734310238981758679041908892620615585205884046242781040753612815551822952194847276118455726593433967180860116614079867859166343944474286684819858293674542643410069330288557653753602567462368524739718071874296711299234534491329121533093020720685248959333787755620107183334503342789960727144507129600190491430657864707460776672235235668025340399698421268570300061312614111493165704776036231449173388549607834732665046415597622392062201514739562187897501481929643591059963656951987755460715119340028914311103794938484076050170698596482081044894141708666642456494655263243244483161038229592880668283313892143600743971169646356691192501422292260251918457507994719990367062381647739390342768163304518922177508522694971627590224131750372216721034301068464724106378432811083716774265511964486048664250275329622009262774093316001194518476609700365322603253614390103358490221267449648591215013259402162484159877713721688164679444650803799691369272477368613635493793134123742565104374994702112051863534768372413247147192767152963314357823306659240910437931439879658990113626038775844136010526476764344947688929400705060528853591486800703146437489924948327762811592704426168806051777216324020763303363627947879928133896756452640795646617374985941082510364642420551301277891788618913370597863867562648185061922995408032594466588984989125072943215401011398413656624613968203513385341730086369532347174406260812227799053275088384710629436083295265167213383299524171163280894467846733726473680325154807434313869716200998962401805799751377968781105002555965773808132373558792914559003227252005019319520717855132421171557421697827040277872804140797562499824191783864119350807372220623293769938612256377503523848894019828773082665123776530841867391821760549011884038150901658028728804053764627329483482172430707584396756883020440765172306483555228000246709399658003150965677735853142477826997232448549139174698305845913154051115885252479614790725824365141532954022935582476986560992219125806721689707405118454620555551655229239638693604190965574923658978830827942297659557258931638274322738369889720884674016616989839760852263889094350601386214506731876347403050770366601756257286366444267862128725866847917995949514105076157521851989582448573427123142723240154825140329854068014544263303869118073761815272042834470476050872232335442000409311869211864612930952992123355832253867896979083128184713654247837462519216502189594525830593966883928402865940343621137804414368321426593136295988782469414017682137917876157616165521263372048023700659250400084196560797031472629946796024030685435314409876786836551326767673224622641306509417725205802602882651516742127031016640977224412503592946897320467366221185869512212160957632811983314555602773345899732345723734128773032471873380079030481239685066985457063992838757582647672780398548352958568907681021419780537801950465929943711179448143763898011236407932572067366809441317767463223611856512346803797576243564646184606804179036382906630771542828547021843269075338257778859310734077522658957399966225856941819041395462265322685250465552540841113078346835869219865956477703988906195201259070041575073856777321341657420300490436390623673612516912945205929767391069402260189856966973193910747936601041301046707828666996215873599727799354519787883102794757523395326380652582952193408857734938450816908673205205063634189340179819201223986903908180973660913992958925480778814944097654904078999439983008480422707031474834132927071797114134411275217821879140939719587936904100657515828958292517533942132529440297904638239710042877792239728184553647665781336795929241599804178046329245372283540357982951152443688038012444197701777181613332150368883109601217674496686485505217565232092230112371518259251770776391057095250626606757316046565999671798539206852390476586600780971780945495567734669938900649125024027458004226121401036680329798819037561011851316674639997165087786289730354458012287297060628048772485978632423706886653143692100298157887732327487056472241793897014598582689771835667271019596599356944235062973469894568886873415412596456259212121332586495090274281595955740978360859900546763604957800080477915679506380521820603393444419627088493508453938538683224536521708780289110608296489838600064961267144306019068242458300085702782791735100056203114113853006129371320798542131389820781359263850472878237751563802645105566076324839883097322491535803393315043107028546510461330139991391086315278519101290767236585422715722071556904202819539467436447027477364064828282254706347881951764622086511659259157218793181033501204704734256162557649679244877535532030170863288071214849199641560956845278519904609849091162472185149097797651399496551196286499344363402977678694108949761381482234100573431980461955461768623107247885727814145273127087066158096536224960672654238448237381254602006778304007669413945447013594660214020617884564012872577782677877859145357364999431213905923028566395168763311507329828572822452648688212217441692352099135877546216537639213499190666042608856565667796844791213879026408366912952766408269231198924156869523771376330788372400266944566162999924930165295097833856017264817191752812335058080032931801201693925278033639158708208324211809898008478692400954641961558240281514222665792350388663738741100786356389099780719745133952738877585138199268502250802694940088767638163665695975183660810629364554845763662364804480889243433793982566855834304535374874585341839482980212509948290212992643096830166742161687255504297607514499503120477589784222540977985635073503483966497016457427085222190380551945183463104088316081902767201344983360552875057170161356135338650739936406976719461171348654540462322534486207708894108963908839179031234015445041441608121739400447655712539681562802431774569516849858170906978292377440441450859572800288606382974598329990451849056838119553807442286674183119155367808554220787111768982594284215460155299346787324742787619328759800338464811168129505838858693972256230763643941642053831290299775865507664075301650251542000344834439319970812583289484836191615291891666669149832721137030753464289275185962738532289598008185478443578583008746597823137048700186259139218583662804377237480810304792071450347316630705188054966956139615858365756236261745310768016756077890549730772678006353543713915825330135776318631193625856382407498512552059312817465185489659312996915305701248072758827754941434964360708260520649812973426680870228988454102963289618690070189392795571382979780450122213101346250873069984743558476372067611711649218003455377939134913361184605469659039454329071547270667303099538871034134423096608945654749701729840804866082229106831874493664878320234610969550059671079735805718207674930987879892089244120117517347614030394591228855551297734464334891275117108597538441187649604290703311814239728212815085270994590393791136192658853581161995334466528092983767632971758039492159418512913128939239058784572229229826824280176151800442687831199221602877567130417991774370489786202906700960883003704976333670372915971694546337598342871587474796234469612379932492919971032401985070322984407036147030066043312753866565862252918251132777806508098424415954182005853512748729794605510908223665129224774019080876770553831073060415986634323341323482305080193083539490397668826567518215891926844256243271098995667983728180244439244377325293035731379485250152417300720169145588035646825670206251758727489030467882866560992714930727772251481771819164318920374069551584998540194349682438351073003257761968955971231588134431329452488260720300848338549333986315779709466588771066218689342541739888505337158416667138507325678810047591141069348587392535464861386033336121412886708114427586634125863712037361754089806399818230797195469349648189948655151336804105321112750148967434232156568473964938715457592050102069441005650020166142269526877352346935664198955033699704949822870426429483035893152283370781582308395323498625363561680736176195648279335333671822074671221908014647011497803064570042699068862631203376511889838527854756385534364582127369124927627444886824893317375477562211207553496250104273037445504922033714759869672149497026451025205282400955274454440088033790545628895195850515928788174488220672852653699355471231270607720532303626518434379920733961821003652795137428450314692243683685876407770982129885254162724497678256600424768638498849396683528452471820307697279938397237962170678386280905909443998916330477742157116621196531241342162221229888956840326643090319964532714426116791766463225205352643229263754517055143773504882835766307350230539940518500570286970032489309405966715084393147962468201574786356832802658325885099733798514962320151655308029701977953229153273596653970917518242966954734711945895982709088162440596573633515463064355296881898089440054509254758395477960897958403576092114981867400295918808489117777026002089163174957753760732249387331245362367918551736727753803530460956295333596199259532082336006606840724776188646190947197610698033749324127065697203767454462755868471927392338504139953573037772025812527768692167573565919179652217453155113959986297741841412320146648724430761924781539462658621120050403393947347219146385017229191356053582507100515206886536004288636985480128190911936218943546674223381193955041360686290324121732975260053016748164116139268891967942213476580876458674529635703371999744190354131919915152047437332524247934333333203072742881359956938787099840153797489661807272026104103394489306393315197640945912856693670347863466864789703689265385989447534726798007307846238521934772034496546426421671814985777001252815585178410223050237802481416172422957623664313573140597468578349136857686554242993420061862997053566478959337956804851719266562078728718889364449686684553688513557785415719902806281938897067176146622810260809110358582521598386538121691192966071953566079404159878064258382836588376309552421270045958601894672768435837398081219022316076475650010133240775778049628270856931922603863436985836186518573824444390645697964398401060124902065824378610374962911237023183115350715647973378282006184655943125415202384885116498080617426869429752328904008974758903612066193094476184430568221879305828105817615590699282275563580182345909907403345471366250923380674450375358072793333016392927223679737947130248314157967468744336366396477537040759212251125880400047065475860146048449808446505024594842612307770709019430653508723559378813716159629435150561882120486854254914261496485727721539783475924833333373741921382592041545766462957565627334092769751896618123563474369383945455718423154976956679312457045286684707038150902289617654318469669320603580700399046263938929641144369191226821797413937076614819056484864961422124982672549237813493890607829901912802235578742771405000014999240140469301290954850740193539621227005637073565927733244785804351468430768481045351674180430471759810994946234775459786003187719844439751652881087512584380850715543193085573160198844069464919391685322693383015294494972706176159271910547782612374546392179830416644820369877366973128621409490210029305152996538259569635309419127862958945545313445004426147129236375080766978434275680099817006518473176717478141588328077943881843403336936781937282094064803339175864399656082704543392859872765896548607502918396287695082423352583807729869008261700069626849982004545247602186009045955290969643728362657544124619507196366796359114779038446037872510217380773926153320312606507770168325920769638768047028714940292310455478641468188361133585782468370829919461787167964261257667150918471347983895803961068271745927817480324578447531213922127284015381587317380192331466159069475442308102206120801651376265909730154542854140301400706924122908205522990174462128331485450050832161689319566657835464592114896716103319354339113454059394245931213380610147760151678143551208562725049249157745356941415316857380036532739551952155063723445879443088338793280796991223751117456835252238439728500073881979655540993431001392356494833253220113786099650939490909040789633486871523652663085684245647702338485049014517113638403047365778807683341359058243046747112058306980691335865383923624647665651350555885056532503714102603397851869970565752807632971490957201779232850508137759440749243615026224659693332809368870157555005501283233317300885113842397146300821663893414284457079256950527736041744889900692692141313805111352150516323594271252629389470037416586919548736534568386787847393733915401274067485894115948962907666523147782902654966401213632007242245656474190455531251099864288020593821490448912193471402105240964656167043168629312787514272810513853410789562825299436618665965263511840155930654308515702594573057718012240504786066356909779496507775640272946287088315081253758635982228722597516188640507617377154623922908478716369570235808845714230595210534177863768024770807684319915690519708911909987717818193985007249448860351286750549152934126464849870458605860876245757524738704674620806496112434982096398800459066327755376693611498427988815946448105865402952139052954688112607308630153452435879746565681953946981963686952544152905669791412041937315375270534633233497646208493406558746017151957090175205422506497628884947546638462643110845702182135725435677034292232579156050789281522642329432120008924770014599309654961354750164251816175836583070932206612545988165530815196258612921220330067160101273071427278110988367254441406048629964265466413129344254877570331199150688499365144338573772253932671422573939936819116082217727981821924253788942048145564606139502359710037079702746611094186923895062480865216380377553263196906894125690614530141105399351466172430768127665629364217957225029551133834688010788648801436239288436233321986432346299039900732898591488868659664366104502700439508782160520648209351133513770698621163455151955572125577865333417531172750999442373514420915249565605149352441550320090599613160850509317723422755452475285720430320680621718778314753060458357913132726713956634808022678779136208750893990843740293866578381880750308284320556595108231796928646688521070203526014112361961310898564986290577693099295512017041831378704386602771117842765236453944208989968731841563130558366265224473921442730035859269855243053548094912750159659267691640104910861299345078150593932482348641177860184017303473806047039092836051268463042979536703261406762266550557531924044057208197867811307162765440047368452557077071845149055622603161852069105307933023576424562365144636862873708287066375647089867036091836685396748928389362395594162489679414195989395145521500666793892554804372016742272468574777021369639667652488088282307875903602921770216085670712706931704206607617381505074264361913152638650566347076143588579993730553466920461948607217330010254988603227151867969302593240031716021385655587324274632923223171188967804470491750371408788674829579154612998879356722845846098454862105783831131466978202928953691091510947279733386475367821133475651765426513998566487641392743334768358082287572097852492656719403301009314643559855938960843679895003565551982258399890896058624454765201801338044500600396731656749476503671596303723207545799318701009895230797272027585942140047470992033222829965964835339068929011071217747177506385597729462126780815950532615211630268445268909604647443461394454556780218535869999687243666835582369124008417982314475304779728201751407953531660553929833515649215410120799258276520584499625095461750697978191979083301635078976797567213416953829052744291865092114211915836533248811682377719387918284909892174121518644844299701672990643854510329874611059335538751659646625635749141357516242122804325411895600635313715160152077307736200358188869512153041886780787154633414032224697376648018442064009870473069847060015729500427489533539089810469872373486400555974561274407708307080837748402479517907649723452491463456286967629012734088401319302813775011229742082592954831580170139746128908789233514375291893002509997798752104010756819991215482846281032771976956477984553634647947125008432209890702585835454534166916770349045519648079330854834853855969942184022710826136841364677594159818314047187448615844219104817061293093882873569334821328536851912016887330899006730698069940684383643498053428150182416946636375462359940141881153605633873611136829412423684186459382705251436305488848844156606242076405072149178158545123142452166730738535384093561573538090433425764768891512921883164226703325563000020997541638013753865579133296943928942559050297620891584489404545859789540804777458035548756113240853268252946570470549451126620287484143804489728677019437427392072803076715231434886773604293763599343567966129568099783859727280212064311220667704930651044968642696776846574473171313648042189373530005963144703705451357259417927655634197381068344027396703391876604604513680816141634699240954417831684575847503895084046090685035925179965949915179964161490983822101112165606269934108451513260222751717453191095696011479262095604569004433823552781995958675726625754945874617318377348428646204787575264811769312429425941352301692296444126497851000887205159834726338425041521362735233036292910600395046609452866959293119389762431657540311084142339816123316444919563316781046328931020839985210476542008600588469884007193974046927730529544721582364194651455792206770808506470035088480863266672765221730197715228428784036425982241917137973478757722575616387544524799898829775925543148953973591357480142333542940263008928353691801124907788900303170523483545019652159667017324888039208502593590444385843857105596800529588921840079639464097795596318188879061357179838997855255588223621241695115950472470130204262762238683160982341205786090855174593510142612187673440495614131889921799900763040300328800675585156932074820602977369001605751329928306849897664227323121361389812949557559151038253588138231964755879582365599686479542734782392651198251063673716799373213417907831315706389532242731843700199546026005027428958419092759051554914640311264053554527325538458507676359432238176242765542440028146749713692517507186749130985017533954417853068204668772628311816044147933289163834234848803862917318467283374068236778520557421750992479874953230298357180926768869410505562958690224944182749084585377500581187540258145309833030015465452580338948442443495170099346169147837057319798658983851544427229395741001554681197142821690832680583117368620139869836465303137676984331646162035512942421755368012542863649224656713521047052665535291692965544173216869968958456681871129931300361881599606369701921759446398330580196364807768621053226073174934021923401278734766592453849511823341746679691798030934562247678975945893297136304249040116438059533526259180418833764417537254066159603562996849186974181567554480007321955188219662783112590874051274720265966986384924961164577793226833110415945004454754144954465212778756639763951674963955467302208447142607314112836716079900438894217785609193116301329791994976326846465292397308364879032812396479032646762313944868689146057826189163107913888089993065358901277006480558300217820556618017613786830052291123897091404305206100784589457333096859086110715714770163405641702424870159035537935831036628152015236274384183907706140911605473465954493558840016056465076853822316227962476316194539877938105058379920423840066472060195279117513947635962773905121464565977569668699832397831875486319955165070194908501474881054516506347621316632533679379014814476095774960798462551619903450844730999937056618445019688943643543736116868151740114217071565630032263390274225088926885776270873025840590775360006479118570653354647290013986513751523599491859853916372591124708750023147230903799216530337239659088344483378637071703932701689573419602103791290376401645295834914986690886401975229937987760057284358402171464974809726068134355641560586738416791980884046139330219575683153200438795002598924529875259856441083470510526958485423037033073562226397839144724710007275720289393690554617821340791166476444062982217998407891382853775324233593709227450545097389952242409605584065182795571829252232135303811799503999240412351570083263040840010173526573167224129467517049553123646050890044195748825313863699663962061396416380988223104640170548211488763850105175276164273793693152192457367797936880075987117032606596816006684639823398147331858838183821843696304283895141181840434511204032001170086442442419012060098598488351463476104386510613671764318699217735707967191382274276628740088432176966915530254491359506732369698994168481125527833435889904906003035354182744879561164617992390968951279110479176004589961340988463137337531330045212033433460972696225058987991224516325736403162130750625763377627176850398102790318374811665017614689764024458645350156140852053436113085890657228137881071756637147391594913982579351691860076036098343672051734057412035122142742171619046333309220725767494565610932778400638199645539483713860739257813417840055147671514915552671540424139970194881521997229808418832822504205267816309295938993110171894503613525320067557120346412724137230606527394948736744074423985828193131383308836464426168128442678211420024366153032431524301071305820093851388767203259318176372007904381504959671096150179162632739118086889490582561486759979351735174767996596152855273974702222642740184656388830883349674178459068529521514437105225461596165305136967438240647751953944254437239221332947152393421167591444318054305587696209243152694801220177530581157345180401576243916336986716622154594114250271647371382836492303130000284075384223325191272105375102232465461042556303805832671489146206658480389009424157336773579820877839160377569933764901890651617994964631884326659964980828770380204521106829868562066068685622223385091179363628258798328954303058387105580303091091800716699319059254598565815026226908283160194219331562937217177867855276334175311464965334986103088725543327247299258471140878619879179342101519279218914378464944532380817995557611370771623361885647158165737382162216086528744370713841936397364442831715304922019331997556395528399536096576473029080291754421836116050870542808599451136681320811304844978871185776532007335420098548583440463752093281015135720853867765366545445018846629882641083567818826223691335767707279014121608090653054370461356238248051518608320868879164082434384191155592374130369006996643410442654319776489314684133244050595800232287010852431993187047697398760242405206756407223590874933928883955643465128594886215846777929947552115621199819677437821272988631939613206071227859582775383219968702495477450449401042171924323743337460171093589125242068830707320542232348212266261124872185193581910263437737398119424951982516680261371317428850583171527327455463464606222869396731057038595578454814924652467793438585999831024429332400381141899725918671337207034119003958387012367747773621414823618665055598359521375951762481736198728908268006460241640135655948902455698647996129861973872249212825593080827872214682926875111665942470264159446824579309276254217235749583038588559919931062944448955958590176365796146846268282206384366676882444480117271215299954276609845361491118780947933584212732650213910009061325944654828683420815002740494852981561000467716256762695282883288336483518884596347688459233987994034980052120121324983282720202664599596547279052830549209293684108627421528468898426495428093766607915811554165802896899181237911194767131548276133261770734667936533156685920264243987707681195628323030640068145737540191180620567374036049467565696648509292853539136843940003654227260692023692463582621446347300877179794400418750470510047256162303842944301739657541105750783002338901656689204584444642956785014471606906502791520415679627063638646232800039318372533620610179566623171262288021961081130391922936478771280182089905110943671748174835659051555998212065355971828827518631336192270434093533903721410461726876162958115805970339130306992223994731749554538436813625711712715582707384274351834138243200692541480841527890568137772542446135213127032292742300636355273459366050493999127716262320923063726582755713565482048547927706745017215918608976749020167574623461964238672689734197723679578339848148386701514431647146057246529323683807995441562723173700148821823030433043025027565681057403252536394252395409707174636210880184360620622982271180274707491353616640657766688803744505962677773863995057042600676033772892299156962500233699139695201647652126847834401836182536162423028282915919762217710752717331770330664274130897949355488364486667374234600694409919684091019599955113859659165022102782145543146553823110164206241918314772049192027334068775929428794089449409744184880529777403263964814286888426547595526567383437656979333924493050233751821201775080160571080598633741572032490371112352006510456473682829641128166486921613421366089952451792217188743421723082209563668521106709218230857785332263035172343510247856823835388325451979211294910621938266345839402650442597128373963494001076726159140735694337458045057156127337230551947016847360092364833236266995724806540894815943928352832178697203544008045645834655367434202925344226981815822040572006232201508346134919436096107573465372768721879942747635669612169867519821980465642710805052528693696698287207601975833126559357401594228958260181128363700449333931797102122610733205763305676543780164163293213310402196650185093051012301203929308024435226547478542474444929078746370579234136074766766584713126274620485089258714261523457947928152485090470450751294604139021759476064637091677909895097439327332040837614435756377259023486197360013023310276627741083437508527184444347229190856464374250559622537221475132543765084654149427647226526093750358954309111215493329935013162471792451246358300703439015485093899792166953896474518413318513776238525305370013006898326721903218650580715774611709163241741557294253468846455689673442954604414696083428356678262879219784298872606102702902723897459467769118784057696063112859009923645935236147859006090030415728636604528769917692110155747728327058530193250863872256630176755652719564315185217724029987374827663498448948439565552822371918472695509770085089647209027274006973904891490762305037137344986581044268869276401153767442331724710343158251366478998284497210372480516606605999553702336678793848135736413538474973643667583760889084976081340091726996758590818210935071429776165722203647081695005867209005346335326602485696708594926446961909519107260330872787050474950010844224257844291159301741702662285515052613110477070916910705875941487408488622696919473727261307430821963584531823789429659818609368061034554243551967511133958808311942885293830788516156446098224192433645073945734133747800194541696234944694987949857011452501994027267557134802982182143817175889147294670298674862384936158462642964211396641148360321819325635609828171631936085322625243885691932772769434843458417275609604213762249441195434728997998024729145146596201283897510536487247635135382848397156756548636514082511066897680917645875501402081718059102833961615126375486779082302250483885255240219730751536757237815675651035890436171353758821860028726091213193431275430025315567014245922139954954800927931901816093510059353726192441568672342979713693848617475151503242221339610865169267275154234557840594918780546565577567272628158128260518879595655230507393891739380336912009017233876843993381118163545322201272695502548579269488243908527024954669521317425970975962457906971946488033039648115492917956213338241446422211937014036182107319906020897699969431238447946949927402297352130246445531506833794477074510221284361246197619753410567366384114637549028375359826719019200206265154020734974058460128631101712863715667769424363733183293533280637471260840475868391498868468276947796481656878473524279109886179876352147845469540490100227082082905824539118406004565056703818812975703270691472558034638715606507715701094340357321388436793792044715293447990000336113305860875018815841415020900255016546824327896219573074303898454660781693736849929296272794583446612171214813508049417641768056236479653714642676031193183767108385455025029128047150098688429019077619326473575772620358298778453062256696614454811133766810029944161771259119659597583347176533879572040220772415948568961713239625142536486045337374063475624492652637915991182231185840532897834452089851388917551329167584769538960158214522724343598646705167153508141121209963781136383813913128096447276983255986009570883858456811481394197787508623176504216777140981004584820977798728853893327324120417065309000868977444630689830579564533498186217664885417149607229309790364705327916594081518722111635234376687844882335756258384865499976890089291105083997160529008050839584760704881014817186894133821428946365322358740931706991781547354874683313830083117518308993155983476188563249108344113387358317735938585762163372527465048915103743855495927963575801446045124581954911076958828530198969260828954438208393579124589846628966038600086136867971843007072452691696064334137935144903675994601751797466772711142091095168351835062592773585715721254272162842527226294288210851250275128760111457164503628068440105649040555089236926991519243868454741571526665666704966708425351951111991426623724553869494069003437584505928245776449580760372577240054138788810361442664370835188203346949552999657550021293334936137950900433966313930494745320483095214985349700376611280993312760896331812471630492765200712411151572778892466874369287950381815697257994650123475689024552609358323431023406454967453682598619022081289709265446671042234341974998073973820398019316793380818613170125026160928682280467598000002430808752976037867152712590644298561140889152887806280383532013348071912855921676249490848961548802405286227753691027077173248242829714946749145688673030524407145280485773742519962802033592220370451249145447674222375165511989643924968077523917972137366866420951734191522833177791678048447933269366039687711372225434332560272945034004966270308678808718363664213548839643328985136876900832005454063926288834042197334940920110689601465369799851622159685565453477824844741819488850403165622478539500065808260411209743655193150060412586033171260297736554526021396022145477648010363845022581500885656587030571086876971784568526073937358116948316311169292058912763430924084622087667260231714650609529438610699123279469278956122473655287943351537365636080454725278573784615789489220488899901450655374098773366381873384110475437808159767597856599302064512626570499945279145576153872985938303659828383731814519406231174955713146084783691089292908377046262689385988468380751130305932809627289350526617638325186035755037116989235494130320116741113569874384863619183285248572251861683270341592504221299687487799093863091176909348405050724309708720477166051778348805750580999478123147307197416334223755099622043127326141093387037144169333243975345472317449896697562951269848476659776017695285020955037691466365920481544906042286664967229518052446031359303125717226773852272941563827931871208447273779351549419056830116064585583864708413687158376919113501511382763918974852486235421301844365024462735125862978021588355083482744278230784787851035207482818772976934446371475985552045861928958107546944022982872417512395036917792667208945370253529989827321975764695389568147606867957445970137497958391583773731722248698879749574029902108703905489440213265202805772597275563991616398750312441031573810451656660731985568362336954081861466017890447738578111930888079635243126525972685002355359749812883615591483709857157376065047193526309513882045816714723409745477790142505938305966425467164653623665677824861010024531033283514317640734108140909526519852710483827528207454152018551873955913157862721975199418649813734809218548711667047354451487225199775447616153447779433832977952097036628099049965713807384470718504385978724431112823036170099503012107127791348075664964353511290545112870046101416448787312919341102468093034982218086592197159836936759944620369780182290200355147865721206902966255489571879208101395561951683031962838437936902369076114213390811036778399300765258791561083068555652807084288306894124405242453788128572156333991590906293765829218425808129882818122105125456566964721281412004368129511721683101270525563890424896738370532215430215731889781453919900492989236288335101529346004561267455772037928730141604701166422074895688210655546676807350589497258590144502444597953046529044675845450290420603595134338785787967414057493795730659438484098825837096924728627505735605413594256195101127763742035380219586066070315238926446949771973529826580546287248730436051106279085629598621747953581649204636478318686902251069521957805331153823269345146989888467922115417326228304557914214078061780175312116671211438333616412814556283761480478816827693173843926946930692340500130439889725167731335966735333397431255004173160674117664366187971207054575362380176704073438832149862452458510061869499678507637376970146579634556863628652852459659702881482312248581338220252263811786518711219808993913280477627306889083450679180385557714059839552882294669216413684316648591240906468280940610715166236911159794758683216123572488367338964400868014849727074593692142461588782910292795291970460931873935991809280980120311992693370814369445816386700596985369229084924777977818412932844512037747972145660867999991892371013114869587134534071684849007439740068692942824174540011976408631042648880455406934340670171529904475754518628094203498409953429980225319627993486221416497198040989461914876681895603786458047077530673483020358711891025919560715651174410977768407162777425240026929537141122599656382443603807056426612848299416359700582039334406105313571346109336068440143447163601380468424114630332295020785232285996035760424767561030898970370325579737015806680044576149844092168898509666605556435041166334958759919190575766725912525091957039040901853046973261046147554869686289899518468063731094580349581996754644288936177840001419740632566982121234027711069275195320016791841550799172357276195876479693284316191576184328752389320744550758320684412088482052389276335821101401451652109197411128898964551845632562415554323606936414724743875378735229407272454979175603688820865515459379170638675058899763374978874103222416249174332819761090038778126781685183164133307865046024926280900169097748709262609796553257917335688479352787884188848235108034149895000489009462074674205837971209847713587338303668202162895286061639770484828241491401581424643372509452445819762834965876640612996482189744924045640722570794417644296611696445776013159510913592985481927616068597120972029552038632551743164776797436726129520818616097944281182385726272091643918999656684299837064451899301754888238003880716726879675844127301325146201934788599841081673418993940880666418318977292755860606094598991140557327556274034328774168349563942834361494974698647665891841172663356976834675801571531615372448774122625530254454726162223359946831937378299221723136661906640104531542301691839684234852934637101386040275810710302602706345841304898881875346249468159754622533616758806912382220726854587018918983150217032337556719863577084035643520870119853239098586788114647066983709100960579518700382712689476196913501288326766286799545052809332353728478072932772722601294215619138670066440697430341932723194839769746725841126364761879596241072518956818281077782619545564276211315754019020515684679608604164588642460549358420514798129048722593018598141964276084049002481547182667164984050412903221359711937657168355926146632292915086357382432267718821913744671153421427908221079678452612741580110808469735513425942219427348045984674603139964896612326940371803785638820233361387933664980668574478842686056529952538347216568776924807081640819636764011196143356027383690623224775335678822254515475727919076080435728787510950630175835080745001311615075424673015896134264511358103054320695554518313593000984226695393025979819442501172056647006430301884745430752296523667762983276958377034613855952720765824977850222695746825666889587945808059722492593466271914496854841202130240643933300317635506192320741485279237356367843068944163939939722495396293553574355513096778942491735769526320762062252378681962374377229212614273387492136093033704301323682662704817010329508629375301533893084194844183497764614744911948978171925047936849604999180733188805545414746422116709033787206207520362115953955734790320358829392681384912340712513356778104643378647419257929767212279731301323758584523326446410678036411124182185955324745902302363929810899717921556226491072138583618258549949596632665193156897505730359443492542070239259484369801121002395672557077780371979719068917431500502828284495373278336241319183803344767232614249106316644262311534516181608311758320958085424107219286622186658719639854167488093555337209687635438989672873869759662631094929846478957778225553901110669512193740320625177750756452779865157205394838698560473947564068214281458334310057209620267830964520062378818261014086775835031815901779158943992626486792782630434056175225881175764663167375822509571244249780049489607576456834532494620940383718550568392210902606770177515678317820524181828914407895481568456567312815578238263913796767900865751187888477338565190944663224505943792357970627785843904324796417235403234526048814682627125869754736546072878536403447668516412988206280764110360845153703801665924905128408589043989678965678431227243459956608643332991013852970577652535312487795536053129271553763117555474706165623094573322397954683862900092564459407641745687461396610767529775376396341654019873588910840955659883929083075648554175671359831955468832747970840146852161633515660578458432585058070854758105488200708440824005304382867860166008191119928342683991275144664092672481881714020287572838307855103333972806574556052882018958978856624332564228119254435308871842068591041529687635714581917799094444122788876286265949364282455498899774292784276958733177481464540095091718482261947170316414210690309356123713471512141546265926542504731058126119600687278455223298260341193479626433002000612224958057235075198039625844745999855860315749498918412426094656763772968750384773378714991275331743849266517914451417048280537672514133370633312604818102908319377022482785846911695423897669880695032910031550209877579409721827589762489791407913570587889986028493053757773034859743202099089821186956210696507110964332111369812139826451767107485540107753419142884585095009625632623966432011641990053925561818212530811135931915746764523378922626086812623069204206370654855150218980394663117974131835897839644404883278188601433783403919002778704262097591941338168516323151079339951524512542142441508342378018398539931285414167395177570004639061183966728989991042646460132892588663102895120017768465170350639788734330833120166162592385197365369112647674657772031816825668294331742906313499580854676335485875454843696389894625600038013735786333951756796826890712946847888216098883675834337127748879783832755356947857110960111147269029965096349195476822255326672500994136294996187722540557640938347278840390016783794518298251909168218111379345032993783599620209090899000320187979753468249974567387745315642595795784207847167443387326599307765670960624237356005998846956116655092359138528939656810636797565217667362248901802815143565085197425225744631996146656098176639219945044781088591267964569666608488390810385760198491990790907838976657814389350902268484218784132816221310485161195014629337264927036658375607261116268167547554242727574071945921378945132644478230581880779066123225161450385999621299583078035065235891528663613588667791711095886795454880953692274756657318462426372503324415374821500195586296342383571665361041690257098706512784859377002011549754777711772368907815601366978384304686054030785636687276162255557675755886820538304715385718403396235231622151325096397161052806610918541774422091038775130667620546486237168788866997715728478741123511100429026878365846053262857121312649201141961150526820413024883962285114548431900938636018051159729509932718068320125256351784989791244808822493213002906246488523076877172782261587197942050594020758260917254204295326473505751671785161324645611482802380351803764987418294754757363034551595269815084570411488222349163691798291612228732527688996394266508371544374147078165377109040521275646428772460141078514691004639403222944577386025484363082239196277483964348795883537359222990896285544239362925217129486636571022471538791687028897187015676752305949183180246246491169754101309406929310266316190618825373621955673477035898301859475340033012015143495263628513459814636310819480598268221510892880613037910712769030655402369100905845432365863043464213052585737547786657870240201017480465115537373494244680942305196075293874575049527713584250473410828875077373653713418806778512553295471170772528111714021653719718176936143815801638694675804525124202700345862943580385626868366354420460945439464800236127764716354142985072300976474075329447171378759198352463583310597281849853700257645212527088840165222170363834552308887471480600718326670344029894387824102660522092777821685503627694514822401273287795332816920787521846259289036337867754365989943789042545153715823565188224708597178001718200295730817652407742002059537252001351698819394802468397309175147868375724335077413131450530604636181905070855042028173147177468633585809416379720878093320791615595943286319581009034906212903329348959253860058004624771290890607936220012805628469642967945372140853346051189059581203441659401065799599016582194246492505427598189171967084703038607327498581236382017724274478124393082218737831549647864614565018214240379222731371182306667653591356996657338858580769481299104680261281212962277703543635473783731953190858979272181383367887854626349730640736656137504236634461307607786444420549392867110602767128110144553117192135476861249287448542345038021036103359491181607465303585173217208970732491754322609914316462222942101717819982060232068662704218339903106561104614965606427635091416832960317786211345130452299822945471124036793266716826081663298849747445956472204499809100242256480149710137379598597808600842620735874751091716464701872520993435352244497774521270658634462741466703623437669812044884822385102909982183677706776012897647171132187284518711739451743602113657961916497504649188749845692292374358648040082779984772135617202671689170509969690938542846471076382064079604226171411840561215736937528633034373155847870587218172208394402666619340581376966288659086742434860566648008649563384810893811612125697879663712932796208929340237961626705554839945144244039824587438380282564276980954233876366330608637891442939723169433922391817204628918858310944046384174330605213804283526918699455033677705211578907827015268334537961059637743738017650164986939522477436201386225149403791378378341335149249881915001135038649523726109232898634568101113636797358025750042533773144712089663844729527248890207392162374713953644304585384215768873460077063376324087660206998715503092572590719575656550787789536332807750068339226054742086512534856356684172695182218874174291928055757589295735526124373023989762387671928214330447174903391361075191970777432765803474620048285364976014687290914011031378187595763526459985321093171764184737493830870866324941924405410119420628082813114916646893855111978151024640234742193458724892671878109826289609078154783002935101093144281055294950201590054882628188900312457762463203633980469715143651988959494032398620468232049046374351446653582939822967350890055744696351637941933713474327189812861694176393282603743526097624152406888663157797804717766516008246553822651231588429160810975097413910612237373592741384651873028722659095359389360221205991901396032923432633878778422897102544047747855396963870911537818501009222067497721083143946312093993548903342424859376340262225725262937287598540783544333920242117265672580130898244083315323866751498811430001088299020924674436075660701093538822790644811510239350231211846577711431207703741652678925731978181299705701009789189993161688665173160493913417584617811112433009191009094822259127344497831864107927561364850037950085746018410609078917072224087889685147900790178182944870758465909312806502930554847441395125266229095602111939325767967993047784584770792529848371969735955293341378319951843808505007782792134756298331008500210905219213409959086327058898409075640407846026675472214877210066949118325782386430698490988998859270140682706078083701243089502725575386372160781316554450695911821212723933596024166698940198237411273106494878154668819731262146745219368177984580614595765020340040216374278027945988078307379426460945772941284244398456373310495725255137761037237367755573817523004546816187467727102021933624033862872199730960989598374773090885161321203831886658418009607516273097992949361261878848615591934759659295658695992326755307203170349307607718138737575676926217114764458247816435319985202767755769228808783019565784075110885721246133178164043254889981187810594699277365169428405385493108411685671693399806232620882105393744497086615052373355259128189394502932406514593027436445921894605484743226912876517003885415513690159057168762419556895425361942450551650091916956751740407579413949070791016745711529819765711856272913124263964387364845709856131868463868824791911036128133638405730624080196042540597196165408039913930649834305643091196816712666791793359372290829564943746997632128086043121028287290422795916966812614058184538241561332839751956061811369365825645923665855407361981948381186747436114963249525389627999080328944146925614397017375797372246165163981565788920246968957466601137811751834702787409189445245789764904389062750226597348251946047930530655182722601580457039315169864196965422820544871717289411016951774930426504311180451131959500250701886857721990623591614813977753660296221902672917039946908077040633012975453488643150815449376911730455535020475619790749861202666765120790306606694872078652340825121819559444445466680791546949397839204945771934478572350409589850459459702301832679285055541745163062278219108668078066837882233356398169997698369353075099350227385092732704572635259876196558457864565175198411342518875584981073611727008283098298118192073123504966838318606902200579581956871846922521149546564293183321763131262613949017665312462473244280301891105257626466820869447375497917411999708040359794360598763300001415043550806983065977270462742536540757004884103040052148699659648320442154985463229697623490791419810680405044272880335573938988126680085795420429583400009564883655108441171432920912032326886024649157130567104800615308377760057278956605766227381010021909591795197757239223093815365148740396490411804765171792827084021139966829900053482403669938673585005697179968949838966861690395480361250762999073002094884071918494173171724699807922036089512457481764877200697444333727890916790341520069240161033267868254858254675769188263828903402730335028850233060790650317009402382350256083985332349698080113968823740158470243080137503658205368122387606047217557205614001420223186717802282957319850497108766081659086305925109680655120185615881844269019581942030845652694536726027466106353298039662906240179654021068079490632989038092708255680214943077764500028417373689563119462061064421458184046161562242370774173744631865078449219510145064126199902123563202549396528021597881108698090052378291601003023225830056108156242551478954340686084899157109757804434093765629415758823516536780188420103377669933849154542200136771472368391087325933168609334751254267802401622348701912014585851914054744930667782666386608727219663713773267126383392522952474451577884386315936855445465883522281662518710265771645248029999990365703380285724475647063429044586003886075237454952696682641992271079302927631338551226814757895112280386978272332393719812978935047573974839956440086887480800910342422279893003563181811093375395249566937485132869464585205133180443947542717400380152509190012615137104873299916862048487229724655268292079137753190022564129280700185928303457719702772004542601429883777041484126666564798443609660349114729095944313332989140334850546243458370614633893671504182808012358095406788154792906850304848677888718684181241340458296255577232961789978436406893151921501816445329503107246223400172127052832471114904091851598190369797810115889029769154140198529412669035757162739524383431218868791760389511778204717106349738666566207736947842223544469115000620631121451290597409028989585205320115253958480005615794380534954277269740020159984915306702573273988111551799473293581782410257321063013684410094386975323449824688315794726127408142476431567520621042259008315263073764905730240910535576563059635249745277045335321378923711750969948590615983015478811361882408526004542757823401122613464716074460791093664563911073095772663198708512705022932022818998648276126794602857975321972250529758602588471113087657811277317917742373940590947726152230789542443362281399183757148986157904551208410544724932918304961909504686376120594189363116038595538222846360344129062576861701683813174684230302837183389582586208159649311725162036525326192203624640331620100820437649619411838975349553509778062298813856609571756416646923802862217787157584052863668405390697194053389879574763944195498981534264648473192674078853504440301637023944628426551508022851043148043562492920286919680541686422427266035774690676846549469414558810375223312411900378270618050285964259251821595633344869307763256500836337831770030285209559744594114554391686118474790160832210488355388779811595416705638208902431863533200977139801867963030334680018958915288515755296468679133844306250149322156642303637895218175905834715659763745054700633484501341486029960396268986380584506736873803320914863720773653491036389246331023205176180510774258323122231028469152882900565717850397811115244683128136303730381822233283814274449142663692962084548015794863432013972136941861015152631159788165363333515554327817925516307045025380352428809518880352137508977112099569597023577334502926338902672621778326084420867566813420400110525726431414825993340398077429667260685358928387642607939628206249659821945299039014209629378531681015117629533154627829454075185426075160460838890110989522604012443121952120078786965628750862758827571828741400325577618720836086550372666412400480989271429314086978594570343636949806812459415423766422209069306952498174442201736932902289389336970047584016888040811255028187809553374049740827667456195558761913382255007625436156120152000912524605786069743449313401950824431938503463426338247301953910579084621034924216949947507555824366880537224853511861110349153624710135006087065895011520847137561654589831986803053952092023058415015410018132772886953578121319521093940764833761583988217800430992493312401503718296525595783606301593246569633945903791083180772376883036865508661884386466588435506306504066357818416836749403619316602291583893422799787376756853512575067974316863086369383121139742628661492994840303121089058385319470979480487598866131618474728823923893485631669754832210556278780149187905640916366779716929194539161605529047073698351298750644588955267925974384554285911119064031283731801400516752803612763632998266806839284376234385721063001509314236732300040823884609940017221144838194368680444287280993267698559819668372188349653423497193113852975413059908171659347502013108629478784739252064684243066207068957236252651566668737691329426317946241889379390911450004066469794981197189683562044456819474515998463360634687722013050431420636250215178662931156435512698409992428840514796756455639837992742692957104404217026009166133732923692617534191172693008969917197003689922096592959538089236233501831512629423104475633147850188415165957829904516831724299417568157205102534989604660201562802429602841520158785974010476191172886910190234378277986773047639492862640029931892889531321004401504772041089116161034177104388339235379478742790318599799816802320581836572986356507586106163526707839127377786320402896841384363766066766992680674584531261451936316932845110473676531378729180472361612767455474378275085764224274803345322083376987798705798906585699190921711163366035626232550861169745646415496782820060181338588586053136606615178482374810489522607737384046852697643723028883106692161317956131122934563874810485402471573540488721335577159104900591052806263013325044196983870438867160690240243977120338363287226756889484538124828394765610799555698472810231456674687826625014889673061208990275088058189505440722984387536750612756345998661997805159967272507527942051713650289368037974390499977405704968671981530899969387909333690577816225054913366392605554383049020818560076786483873415021359725260954472416378971534705821711814988136340167699806542492534507185239751684255728662859023374966167555859350898008509073850706826894133192126420351517260594576972648256543347052062780670144705054273200758820428017345020044619173285302768266710324643862398513783484667721700701258869800094781644054266657320922067269803961833196647397054941688230338032309247992699135486610729708869663866230015951005997124393484938676916237491769710941976760321442994666116140582404422299071264439360753645492419051540837423360662815878695487723218783658599645157902662397427510173662797059122882497877659263952884501698040859398321756213389079194255908091060055706747658080537896969243320589254956905384186440209828310672225982575887465992766357945125713950673957584543483325901201742720733086608776364286609740055048776146018546743264200042088205003759430547341980756012111822885683471198018527162175544112367339983396866860991953402992366829712804085176697097092291333274004109651930460341423244975759634823801964515637597898687992609485337571782638859303752366108643147304186211646701815381936895097598559514965088288567229713510651096598303473695074914261391363382647447370155530201947462766835560284099935777940368030636737887695247234351222586988141147608908467050483455165509290945444671574416058601048623153297379814265513630995965995713872344782024855001077298649957880948057869116896745221957472425867352213551634879539063368167488171937648927236102037294582021954760354834391249433340806664876812205948271116870028557446395724416530033215622895136941401928979714992922283941634708507473468636723045709568061759443584197278805085074816232060098686188216630787731543231227092467524449797621848163601799495812731687551770411068550984630200028045268312607948570403436057428491813992419833023789765270669096328874613808095325915788253377122198604257735999222430472021183015505144000633037048438460588873766834983786248305851110020463919819950013620885656415915259155485043096390681362713999151382880164639956549244439207742530566975034983943849033797553352724869764551153279687271806340887688433194838544037247003796647678891974104937606570809094174253468012212915589472697741344603974638495593681152309834613937359730663699527413281122873457755777789859479010480344786475778140825667714684560240095407173074987947688547915914784257754244274916022408101299275401466881151960192116578606763009047419515472495948757703905149007482348618538986730501794044918630015573262145705570231756164247801740784603670825926856351086754288719866044941143389457558377278433230536405753802359420311166164186122926395758819153662026453951722846887759963400801188912628413754556850916816156501086799784736442721445338979335320973989675018514102228997644353310456439491203303161490095755311563047272460404795858180138518371875994649489056991758952563436561297473149594525362604095170733597517161616979888720288506863657401261239893525122878766882580115239884697727506176845922698159968965619029518752804847057230809460873092936851879791960940489774558596860483574261881030111872677548156165531112924945874672801824714673543555344378889627218366461705618510024709392754064189034885633707092416517713350213195602331566183789680346489332338344859704920792580409685716252704036109795571952235792180418659967859418859346931741976225240976431506364494414110694181028279045766546495419624702837189223890855751950487305554842683560959776850935189121803566404996745174111676512149036986033871548286907453087566397127565978214944224817626738570372572048827196422475947833409035763287513248104869120336765388115328184819679745049240765282219516296309409418674941995675063445514541321179630102006822922218624978203011718849925073887161735400920671485865649526654525619111802138236867524263459687961496989502264544551071947454291729108413169914039299429160897016761011349347007337805532438421792154596801647173509844042650676800277306816013917795957885708970656073056017915952390990466435981280652672275609260131729824245962511858419441581801449338043948566297507635846390616530790635568720057333437586164741750863350231808343739666047537060591828391322889712874562233549865376830291504437945157030941261647201433211851267447343548150410108989482507817379402328340681274215821356074344038058340120909145264660639850058939997625967226081308465800962646097481171127401135010428960063691969798678627349048758821378068811307891908672193339103589249423648720327329674445282796336927656323919359739649176989637807707534589195769280531641031445672994810550171748834717744750063536487240862135045031215693959906146142958103222210501594795156772278431651403817013243565888365125627426349953875167900389941057921330730353633146864424978835317793288157274446940647944886013219291829588340942719571990127869985061749427166476989482813590638374150908453810527798914035135977821423861551285474439510360114804311865346581798443353930468246432443686095910259683627551647784627925460732790204291171622626181267958148057730571863538004875099466012946929504097539227593281156675619690644918298504964862341698093161956174609314257070781756290106850625785281383415185189956633398167692165282527844291765461374181666768632346005991229758333093465571367455601453006452516066375605498384644102767786263949247504378597015165561730448186119053232170645120347488463569752296035124310017963428398685438511989677165907560784446532759988779775103537437900961596539085840618099628985191108870764100076896746198066859815600934175380176746555669859673354506187598132395262706167633182278201714033722519199819469757284208157417663831779182124230266013653246105336389037796258376213683596877049982984992481276715535857936224619918284293690340836802865434437162459738805881043894602863627451741788820256598524566447669943447699587142697320422329788527457386968576464607169119220165447460629187925081748826046508991633374087371825547724446257904584193616350758345179014705469035825036716163215320865188410623547883171573210562197754399518677109597046996118366077982297570041048129774721695601311233671532320257619939030476824561491358436803924012127344290320723644345545127070160496739117754943888590189350446903001187531931607598462886831878414965681878467785522172096503064546598003964425930908209059440982421490359935472175000154257958773699412477674922438754921983148286795065849217394024969254054967986804771124516932493090967854541158249973431837212884474663074309471520077864334546690001477031592300968931791524517198402701149685066049049760516937818479440229417973055553200443752771871720321490122790336362878283503356615357513095400872963128177922196145544082200552185863635003025345923295117744066895847316264342555279402703918967603466758849873329816376948796106603571658261500456591669134125405283266256213333647397250071696861306435815318830459592532821340527244476573723994545130740605460344996653052790394186678763627113089044454949048327534946348072475126092242161451621921514545453798396696461761105639493172793062006035242181213879348079023787484302567923073149925198871896772234224550682460421407399852781962567768600149738657950996135211376415655826044576993778187375842977556133605775735983179885418299131456446039971399432326101243844158478468471634017904787998838088672350194394045585110793730594546972262438948377044390545617904489079247750267236727416510302786002848275844514039498678129444714557525572739018494300314672144217755330583471998621832025246704162606413927842268479797014482266930843916036327457536732461429369733813990749569340605908079868524737489080932495121626692598580424684502677006631992515145149944349320393393248734054355402440049593816113689431759271027000956261079476465889187090392361681491916371264067139838916375412892493358418385131622813237351382318228333040386792512951607100970780827305393653477088203176360886013956740056640161413353380032919221393878980964076582596302833233806473272780351928666472037185060573361901149755317340561528157873223261748643564294756123508927130625652991407696743189668281705289410947257776053729121644042353907981918987164274789705912215091156934644238054433935930433871459228768205207775120618131473182080753142372261188201524202971256109367881755459226038328420222757626760770398194992911394074751217812630223621105868732573802289848596414336398440201113707689705784556056188984653029283064193850409545033606577073971402404616632870931608676627725257015526075286294545696553191440188703910953760932677299686804982817938587391020829007147134470237799495908994726631834257005675336712173442218455943111696366085642715517453624771046463229777507738664635954787753525914321510196539046163542598525507904715295310739928403311861112218437611552582231649424535024441833365264502505339453203210997687005321626235460310500007886344921231734842171026322442828019629987175320074464995875366042729184095125018976964951420339426153353600758850146416100811187614824077972018204804465149886609146444858347035822856396045524436875262036020734976380465334205743466444698320486498093956290098242326988160946836420364996399123226899879922199076543256538440531811021517133467684901246393615569103062983931222791868199994939882628506258753499037544452738718044835342764851072861297255367904695434872525678894336111650776501188910344009784992584787411838447955220710805447121143681666771044077154976405910831895267553835005116348566177412405152667417565145547675226331464244337794988016723196348465168259493312328151416669698953457399869899299158514255474740316538285928660301530093022835687869337744068310121097809862989361457966185030715863271940742351887600088178639595436740763141362524665120774289375587032469795026174505256331411918845572609193368955344270855340531744421017546760064705368311546788198283135135169381024557545619166752944611106736330973114469996797615705144763128185594047783937710968234160068850347737116878121333327121315874655928711892441526252825316046451891014581293434265816059405524623746603233949033729734700790053946228067498812524259126395460482811810418372951884199794982986953988199791006543703700943560909889193630178023602240286551975085238965444321826939295515580619099944223039022506060397406302055186320166175961012368128416982907431567154655556439821908247726665390927517895060908549496891766222829470429892287867649531518316543378458337907165931685681491525702126283836660514428104400723725951837483968535427614057285250133495136554608070622615428347650554634358526241782928431514302481339309908204354967854179457437315457465966669965652086487050948571254242470370483047690808551026941657333901216371890869359002986342940806745361357385851489761740921458484744517537490597330067032524005443824513667129386974472272524823054758513566765403058531504523786220971308562088504824621348600374754475656001445398228880273714004084939962961422941882241422171583802960326628165369676458857490382335362259954612965861209823592105854638509074368312259605434345673359245727868584793484608060297093505877127260203168583295890778998347058159952368222564186520489444436813013601198165887293114585029554492082741308968742720929067278582065693108396193634456932283612490198397465523533124054795189859012805674587947361053258551106745615490666927582216369495913346144050021693115160851981039018711365145548440454517092267694972604094125501889643316830207384899730612285666716483215432160795140787304876651314671787313785077030313230170610604725855220843894014185132609452659022828287293226203074490055490123791511267451101741574138513341128622843786186836370569659768828809839059545557915746735593759671853389110766317609018366999170489185720310689883525025696151939639098124295996300230777487257400005496409154460642933688353793773220223146679438886838972388528988414794928963951914330412936628571196857321993002517073135558845112092622306765848809815857281140004948788022058015852606823822980812757193029779422629515518470576720555515564177409424531355399025808525255324957257607983678078792262471296598779961053604872117818497446061216318935691400107414340457645046808381566775249121036843501311111543124571323195045081276376721430038733777472447102241544442224397741059195981336430156741103103413704477967598973885989367473195412606020488109543267361344541651181018200929267315442831947235179026610219214581002736277769763644492637289648206363976406469097449698966194894572970212209645132279670669755229198879148555396608791843406355014852021958091263028874711757107220971408728316859778938384007756255817888462762066379876566059319149170561637637401488628649954049908693660167529607056838422464482790181403457757024236708833274902840404540515960144089743351625145383595916935248274313055053896535867424208004381831021363558653237406167133115915241138363549840388043080283156290334098439141275825470380728718573026383259400639143112976339317800366995256271797841404569818305856145430531514190700363890287699332969748252973981680284274604638318090908925901291865863799156706511005550142799182821353517994231911443646622088783464871036892867100291490419998403776575965258333137142051846582795321991026991064955397695050502290923053833931641509362442012853046804567723631155652125244554688177796247228426470276176647495934111658739179030824741284708628815904611234476351028984135540502297043093432040812713418138246622086222659113011543564215200104451923636910225611480790366811542905652307549717641098134697950343266863490871577687400566840712552916449842595827409331719943969448416989990477236518558517095618596324822972310016700545576754764824225316509370871559708939826222464628654456376455899123811261408270836110529090138601360334518803809131076911178007769351769171872930540220951218453010836982870593439997957324838183508646231633994066664548784932870331723018198034171410914953563351038848891885781504837414824777142758681277860514883659112478301489225425524130710834672179110394549336423424434688426834286680480918562898164110902562667438720383072386145053782887393684876370980521146889779290597036477339110570220974562712518012611767106986672284030107361805723220711532753607972966319525186921246182414319081724917523368537867963384842763336582327551361221681554502876697092822589140998802527255365986490422042396547793566967610677866357705854130889355541972233938745843715757318295628380076520952322591072865585492616829542325940315799143766785637667305303178793040200506801942742818156356074487474386811509701852016009152958486446944630993486501123640177567685219082525002538162282367666183105523019525539603176771317374867502889717494207581779737623236492852752267322237770140710930587440132302935003656235178692097436278541587100069443690839497174722672455932278642473542524657343733030341781908031478113657056291354923675647156498111149148577932085586952593745071033713046642777610276024874532857990452453798316508258916845117651891749350469665796880360887479057319325841589901504638369323471103805629504328139023799176679123670227563784650546212916227859531695528066863918634644194950601179551657469019023013752454683896292028781224240408203120446637003082159934635520289531644924527589019137594277355691445638084599403181053035088710870184610898112823083512467659274212642859736337199401355765083107717189836217324244902002205978012432380038559796464396711039920964498693850995550593121042531265287709077071712740465464405274343822852983695514960062001907419668771469943289234686915149055312389388999702952557962894988068942042036844939651435827170788316152571678855760794823998830579454367526088532361720060622217172942775795418659402333740325745450180642062462331979840208558786202197016104561972482626463126027078819869423141361703530242325660061697189866535529394449880480347022664868153709523565929273855564647078507579484977149330161429328918983677087671804368833624912577743955796401075050094994850866798505573638119856344246107672241809335474427899070142431320356066573766278220364145135884469754477911658926509687493089249773858176636770185404466739223492086285982628077520861075449159512461393699957342216698028614302813230557167440799236340978004153152941326506439417890913814540197484983409688269134879352066402926042099638623777906755894317855628469263623258199000914638813344202073459699827398824646917091932155223234168090125368338612890080132936099285418550608569294766734699574958808258095892022350289310749981205235944957264468284933536295685030630884064827251274090127418817522870036057698941386467852456664094614674312813275913248579429518029958994282569389668951192108039351250511633933644039954846604116087291044803326875634520366180055745192960435256737696971603913160178073503410622210942980764552508139269327278261444040988978618604851808487594599066010883629805453930225394045258877361206584024509964128199184392250659234456697525621253763233685631678962628292198426426468391513683147262174368004773579035124445420727584948040610564991608597643655370066747026304969001838239266337201271019700740308736990871038068066036359007037641722418278986923826662859972461233093894999818126783206559756901115336918333842687615144812184837023293613638552120873514805615078315600516069336170033952722498418452147083581228783208307260046111656282595536483196524333308745177379315014004931532856068608744360843542530759183743255959239322119228453115478213294169411163790347538204441952233814614497818975939705079983741983947860435562670119963003402236467459714712962038325968720763978102297920592730338039234089442062010077618642044174124279438809150313642152945550653872069488276024203737275905844577217091913859484582594601947275469193608723044098004399499954685678209647173661118280071776610950311363050815071454773457068517270161310496102662069920308729054752837184365020214505749218666141405185532807989806774287774345421189316622174224268595337767083400484166942955996458902910645998194746156382536327725245593770305039998614103285460363364933748897325251380993887213927340844680477743141279765346678135063024280169374889280698653622580593226624846712202961561829267868574485239937390129674363940378040580955576424517105728110542990186519919480500706141887285634405777088885131833645346230361000763923437611830047809007091727711657392845600528236565197561351881955970013446999722564681217761962206488026363928941733317953756443634328409882261498501479218510694358679171048798023520402316424212378468948145156863962578542423683358369906595477707564418180646422760424903275970927514488153110848016845011213299135821804008913449642002943434823187812787032669331439279532123629442966813628098295908842720954585277953021119145593823246686012514354359969024707776483470150078171303314262322251279068011973751390094315233360891939066439516573237601212609835088576580587754374022041385820042687268935117449896510469548919326698111835208169289422906104712531065647775563219796252232354228496352095147209997025891219353328801080666058293592089193197549245959474555366740450010780331331864662768061313103833073089996493735195400833805167748260217461074492055341740446922544928013970220737843686907187934058294396616726484392993946664090511487083877710876523149955426874398909866130241742558336890148807199576713173605824004181311819916012417799164313757606990153833503742936058610996024080071117288544097950996324620166497210253772562953325661091173462150954323481967757177737700855833335607928587629158596364885037130439817639233252469935688655903928743513592740243333739960093778961577695464868946423301190190782111054107233079358928865554041869387538001196276259773509280789592026578534424511831911036439355993285583424819491756001436299306470160732536836338738791258414442479862062174082368834288503031903838464679966708323706199903165959887086416464873883028139854845265608146774417738900083146673802738683236533250414930019898246251313660148977259675045137033262972136631880624910221166667705775246416298395918663543186077165964390415532719790950767345464030881174013902369240284615233760800337886885331909718524183372286573820720588635116075588569783925845220678995234385894855085060627128663810688373336478620765092604258980180218643700212470551403889437378777920320829382593355808430678288602091503281805811670255301204862735127021282459144491957539736980834880275328015429464213129729570636131932398958615566862706802861087151885657837619299312357448007387813382118496008586055449821476394424900659591137400475600811883047974718054081093835487751743959860617517768316102429571617716218433556086326911897608021411907432763831654204785084661740470717652112342171964189514140207916469890022509315103558628954325452810333307171102058251584077405175193389027462064977649461733293714193017954538493274408009984033803005372692530207987571845983352788492158665931063384190586553202512783879191748032683554068316661183252390050647739314914412632702097840895619150400750228184733492051549032616017602247518147548790304568134060680724198860576947089713206413901159941563056586806355637426396221480767970223852963019853549895254974198940869869063438630532025350239467804248117114382518619245017238187144487802187059753355052040921885980865644923546274094495959703860245306909250665950769748685083182791884797126956775089957667655764535808179179664809511816113500781204317831431482093135751356220254927755246713570707773920503153866769021848320867384396991546281946461931003530311795250660968568762706815770670535451631647489070581631720763301968415229790280664302540839949260924926646380556137964470575023471666440653555851202043330442784751005797227340581407927885030276644421200926535324630087729854473713894369732639754622528574371920742613209124309759653082050843719101831082109735162002056722038808935570094248480457347535107921858582285885084149720326004389882856963936218482323421076584199177373208633126185089401860808047022109275086353226702555202857354665628038741757978407707590016355648019717624671429163894076420353612388320214967877179257648181021747638734294299291481725121536688465286832723265056946875460117105056935919965173653192185449046956590908194608896331593415576601218788014759254922307308272909473772722926070918452888667801196237347325286828760986332937638501084068412982468268827124137736594083900666822035565043418849957144310509530976642081769412886450794315875409107883226812768498351397859948746975266950488174528398418050506665209989295974018524384249356523710626213129016648824939065937725849961165522576571056233555200081346147153404855885339448089281692453626303075950800585495264276275200968656233009542881356349027104014998008308616143201397640293736205138819831528562487737832874601326878069947569617532970270155832713611688808243037785412198473660376455003068721659183708429689301142178432965136839140280770458019015960561065535412269402776876050354129722524865569188417139974224058342872342584321595792188540547508344797416236539070938489307882491868302221728049449594983570106303755315236991360317541001305112150500406768766037121018310663375028965867037508376174043048729848402200328536189772134291470952253286671653955125202245129333783553693374390423467640128592943891301003947491635200792441297886457504105370196530727484348171875489429925114102923681404493533571171745671584335618292276997031482647079713319190234909731462149825384443807539528326302869980826049254903359064401755539702457502536371192790987154154081125604948361039986152991607038492617341614009610027906439008214602147922938984398919612580163722091873602822958621244087247435101396467933194965888922981310197473767190052586471359029132092561237294383756775051666560782326163496691869307261678292143388781438908613614972332920190984581272334278079368107849581280102410926317592424635811030840946917648241219370519667189553743410251996410760551685679236070111259491190033692292417585338675356196629405243676410714157847594440708161856028509391245792014864584133219565109774690986804220442032855812682123300786858310861289690058544004422859351692347164090242032631540420873679850402458865745482478399879271795439832490149881431881829593303898629346152824732462679376056183232087238485488861116828746115856538771085369678005295675610878283436083942127788636291497607606044523523798472567928249969021656052121825485551321243247715179092007002154846446456854077114856081977940534041326342469908911629998667095084607298194677554544410755311994677423589244668061353263353203038779275699087531036494173488403843758783044068224621715328081274153605001623735437945918976789191213777123244511219104378333434901445603130314714446122043529171582200616438067466386154186381744592321231483082295008689355142521310075926121748315311532133338716566068735644440693575606390310702477786066740958947839337125974595478716239480775583983789622951015891402994175040733233678355583001637011253253210783966298029892401241134104729911369153972520816944981827281434071331492904319507089990255231094105788352095131869016220123803125273109842057804733206724552077642521409506317206658104098129762888712559952194757185988840439657831993409484086259626482829173902524950866670020467022232013185416482762379166124620281553437620780676407184762812661354754955861960047649458434696502923480414112118481777532242068700903472784076400025790809865180403770768003896898997921303042054171426634378975277435841314593797435257823763052688859446778003925497154575233320628186420919024574744773121308887766418948082029489233288074855460215577990739587610400436416407809026138219170836816670395684393219417789133195712279994601169314497604739848684467401131420783182692023866706493184202610384665729103339457805987842275786268834573175542648699402770824911355170601507338351680371303884915264375010324669998377950326666206338069646053363979716072655599139411907433774373734054778488295582674337411098221600566088120975315853994669496200283133943325822194042394035485160942251380873526242960149547219506480762179007098124544834626080897564509988371333099515546770093864665676420120909280720530833776124965982523712304731105390390019863728679172475449525440430918125459430526728546586888755520906011081523577261279010354098129413273001243067645620885744097239312235096631946421603438696542055707895031011481280768190755117116221042283732512081816839260832018468286298284787514226777524469417004238074518234680789048274414556640844658713770665356095696311782927007423023492073919182848617487980926667994825014437189892641449583763540567137639624418517512922120813015703011460071794362410232569308951620630483832272593300729055723256397987479638352595547465479459162244513017131442261934822277774993811801136803289727820274351189320020256495398813395357127297581210709232737746137556925431599614038008176460783064421030611323695028261277191351886492892591196251876768682663717667800272093906078976268647907279954880630902235433452713168579476853092665569478140187760373859192854208887292643386637445829715318022049560937234796505500480645466595650480989695763486657165480471852462338091274892270316670449480463359697834231496724986755831949126895787211161513355959383451149106370165672769912754881060685110696425910901496573644181934494301930863425429226052861416205723110310754996533744711557889688027278113120773418438567052638122026789419782503552243263265803039801859445673984239805390238983513447584211681722649149777787201557236680379539685652630707213212592092583162594586922611209786073416598565655047477757788268973296962987811775420360385382442556864900725795906985066564877749844841200426527062788072878068165627540316558789096785811668892506123011770105216836517075131492411588199198801074607160959292300598708832911413770002095219455201555394295433829707049404635348403889472331829207754872505672914656952289364437365264767446491006681799985507822598610244339210357578550065295314592979833428792922265764528446884500025070109574364136430127100303592481487619244457918520239185831801431578796346268743156891386242751249778843900160316350281434001516333947138373217926047992151955577353254130492779047896103696569868106443066119193803915048953626624161775706002607225651362065170760748798078274549122947750709091298982941694369540374798023390408494231033936707456702924385165911593763361229086140817617910490732975867737965241023190474730029082436652182369566364518794457135291329781905739955064919440643226866419152261747301024971283873813359725115013421069578389596161913231283334055226390111743849802792248076285238301758254806444338419154392001335166530668145515497750451566959378109351096963163788147846005302163962033467183827139183152203988164502501325632733297748032231251920184115539976815039239826683504329678644079196314080104997434350239111885235638657793711986913937920365022253818437950524724663083521227462727225134383019523590441213653449965787691851870660861872572218372621659583879538277148127751910078238482166278397506083132418253094158291874292069223221950658192635115289935601192695970479268394711230753549998665187422027224970220269739783423547344984452202275706803261690561831458528236797867083478492148041041719561668664171486710126215456751157933883468789278972404747238340202080779106344348391141782369942578955392160463373583959440371146337055388657810548937942908095594433942202436819770568217575977943106981435493001550781749943873609047099814401127148903233057628841338930186578017522101183902075246900321081000228384520203088168220796509301441671281918692314366420505081563413160034927779417857579495643540950172288170784537701869862816367390118639800246998083499648689900534627202510783303873441620171595969564745078907176950391217454440786194965369740133081950615946159699337633397508713767835773466611657325953162246602835991800051096032223083020934751170628769691213301673948300500358197348169944775430340030784127758912442729610455687758925378248125225994777819552350447377125181607693177712413321046733107928403392848881725915683149904861515613701576751930318122601930657719757109074222518154213296043950818982841576004496722965049823561531663033091173150152231294790521049134117841956027018168527721984734981126134508910130677260080250800330131834190484939550513704363470774484438516315379278828128261596534587449425160922525999062954893221091396078549302758636671758107872962215257466706141683203258934600374195942779437445738916907114703491772537885723375856251675912543325375585388857392291701244412703624597779641245439823085816837994134707444036590345206681346880464530003542456288094076312147065742571394245749226614569877469440101487814724189895154869927241432613660425615906767063509500234944601975231081761160121439704774208039720998328635504517548883757527960157490326537553111045315368813049622842379389193511074501952475834568561125813088181479368703553848658930878935232205923341064449397314336534862527084290827763738606194808902077199965430256807651060148608018422621454333381778976138521344751681267747800435349449125289028159796362466215560696096337686541666245992612098592550550894822884604288278283625903218211927103503177606031470891712453827400772062522110994470718846617370149350161364909629514828314925989277597870910729715397023307057994530195710165313297990281941572547077624349733339887213255241133012175008627702311390538572525074446284301882684810747545696519665039939479420107091828778561964779749061062561049921979864011356672779542527974927911836922102739935817529968990299258601768988278417108492376189340832839029969494895654381855469910933192489218695479846373146369326335984270701633280504237511966099089791128600385711327707315225073829682561081203319426493436538210734961519241575985633176575308192546722012953515585001993584237277728656818261332309184233856666449626341871991584101326708698696407614739873173519183066558609273671542960038272193054562414871976122694984497382156083065830957428845791108940635920104817386159147041317490599552632228567512238808389738074287651442867644054874244000790393252100074071659798189681724188007562612516883166117748130991808572630700383065624786190093747928920499172159280473930580466795193203436869109319700823676005076917781124803080586770860835991522271013678765622057817742552019445771592060472175676431962210405087225067238544088099342661657034619759976856248887989579523752622540018013289420592765963785672026883370486598912408029989133135609419232246371829917239531223260413855176912653408804873564836291429162554529446327545643831460384461219214436476825911352649680680470441578308174664017416819775831165257869622564974342894249756105461343586512984929381623527086423176964329612298948665384073341473637467777380091789652125523107735343004388655515797286241607780569671663697504830325269866341704066902702235933323108527412536163375131533173785524850925221166693667501028696466588970429611948681453817783578366633111485092374716600637748829770752105214908851753551551905824650533917777678292859895139725632898753935395849892545939427607931611445171135875009062653518231916280910740750850594799049637884438696793312453561119371626763651765075723245139699162953438570152554831865411052720814628847102565999946739344320167600749320961994943838599815814354790746144557148077255911179427973618797272746260524290502391499606786938748409542984056691792399518686994848472866542174591491593545794076219567647818619936985887919745692463393856736412028683303973731210703816476326068749932150223316998881955687855237716285096968458428373088703448289793813050103709221524627292044276085198068893614070912974622030174960102973973774745397857919780685475591077124021478496743012146826355837059359809880761410855962036735396205052823508927852922582491653245928019496173623523909536326035930638955449093890023943612283388902922244013234829081221622983809492856078067829201867155313958180784841093109436404723583628172864087489668964639237742272845794297809653761339464336635561925734566765100005622631058860079219378950717063563141092319619513187368924050891531700680366455812194251089214723121221441560256545491901881489981696336696604385866776683159921195355903719913176137102057095179350562994250234640907028413161200445589738468136645253206020386048001443629381203815361825260036335203314608089730744696501840453506371254741194380066007696260436568263613427934700290889324075636820335310070267418099508632202581597768650942969094370257789908991802601924788483543702949122258235832140478024635294067586861681747779466129854409948560551001980847793613867992872239124836896511421123051214355015200149813342213898479177462489219020622821242964052217958252401881151471913899332510388522387843006526596177357743852493442363370543000955263540265896917270660764698044663189574722236431270095482764686716003826508362781602189606881974388514401803696729670905623557974565721770556672920946755124880669955384829333623662884423366534750602683678897346635355730260221318848633181485774673236628253681582160359653583521642526906386244362098710542486268890456660605940463905753235611394389835462377534297766062886212103531187076728631129256089304564175745634621436297348959058350691496292948883632455812432233611085083396913403312196691130253891799965174342243471669627854959097544356614519773851864054604050609601983133503558796255530318740814940311514357588016628679167661640703604193179668930580451007424072452618721037452457540133414885367244052563818543170961660124573533792625416910772431752730407888604571694527251218445928560499911313168615370307381524218022033468880017541846918965145216381016967501977511233500907874662872915492159146414066053703813585367633368705766260550350787667302539396502855094145608814741417585878043248510474894316760823663130368547746398380786304786086158205940837979225075051372113206164695501483167630448682649370989743070364545666238336643692339855209231344683523995517496247388740213848680159433252887934517413290218596526056052972854861864970537965333081036092694067053268922351547407298297490813039464854495330859539360807487398637425129794574923561259859085659558626378649869662564276667629100654371792114895846931445582918672121709283188187723185455787165698703667756485133874163041776451566323438327597893284636193120651494583160167617657521774150452100013503943993607315981994960580291182356949262519741488920318788614374624251072782015225139450530817011890429452510430336703249968880136683969718800122724182378139161529714596936021136153500384482689811226019813126592416605621801808659637033164195148154583015248671319589839930722110246205820719118965996872631206072904083324691924826560335166032666989239604444948009222334365854730222679071413864597587112639087285497244084120604564375721516310249722032674805212004012127117323725453535172796594786841050453545249820617462524443641409584175006369523578841080798146976987325836919190848003573999165611764132469981783827136945022092471008584608137030436764971284753962756228553107514032077853072545244929733468285408996276752932102436127793439667994921568697562123491305744051876876791319576145255948381648675386911473818344160289288905003374797176745961952594283326778768227677228145892141305149034771590222743001868413001889860876818095074926985637997705512543833378061103815067913634991183701077580380722426945160440925660848650573857444572168231881593458680772678022423355500557361172657288065144217618352271500445513663080344695696203623027560528955932188061860376270403414755112197636314862413773427990015086315861265566097389522646257237260287626473445660612662420811941099563667292244553995310344055455452167037212316451125662691794734066384712396200119029207135529019638109296613440524400152703620441326518759591496587930139325135326504889070384343914662907940975192131333617428528661296711706510605602611646832787673046310983316980843820362175068746120362743784021257990682402234772038787525564473482127212252010805093775060796516816322927407130027426209756706891314396262277995565803373075105118256905252992235119065911552286567737532816830896232790820939319755449648947181790857823773647842272983990000010986722594487671804244797433769058628540847380319723915989430763109096661308730443998219251047631132442358374188358388321578890456421393489657812014804858856989985935581151589065446831908089941164465568325784807568257527827341926118387219160873069323170004855127640655755090668100025607351048971259049940716951303817573434377765528230553871135985262363620327005870784720131192929856175391155788526345055251183259627162989895077581073521625827383851010777531863431021314093432396004290009207664763512896286374895039978945608458889772731403549277782175389892834333922710433832141447542584733124212984348127123821941147273925640302640834672515317446995606530031642542977351896465277805521276755025214547250434785624092608727946192688172796470103954122771390887434908574245534295524213567836789768592636079113735947689729401320690943327933178647257328641869695227519667254327254323504225059553714960441278217900714771633414814830508326160140144793266022335776940544634449128105676628075077171118167671844346550491760183431329024401707095297961590381303117367169336088546783897743994038631989721872922189185990420725921747980132058719607497851172945346154166978765506536313121813813200788967950225486157254687039563461256149102625846523852214797080941533903725877134952186551216976470721662608221348674111538844573734828978606288469465878995364660734728900376725034819190714181501407936327538939333011742501485092962330739970893443086719252717842127844029458606416900383248571681606420766909031298830929524196505509164805600305584725191591052206932074729693391624056219789890701657392035239404320425121557809472283019586647062132700228939717799786574376782527635657135683332460173886490993264642733959829359038678651138221940900276998418296997623130202477311528826138296461796751962796444632794518443285193768453685864904248582778229979810856008922789858213082295046487763960860670072066462536707105089444418232672553363706024180012149132638200602646487232240779122621291639562144543208788206632153339701439610512278481454294291637975435094572056415359944928268235057440155872944754855489889662587144156479279093403433194643352339220916299124686743408205779477773110478656369577420333913598483218609626865629575560650628846871935562433532485638836419214329353533201408694177281409829944203568588093527324060043583353741246340378670461530213558319888185096801175592896224516344168475685645925940639494050805503982804300709083226561111623007379929312798394235243347538123706644285168090518217502839802556141812151231188679060753140867443990047804490952713016037699876298786102468059104350400644984324912703774828198317506538580710484250133420355890631236983083638897133802341338326021034658556202309937334974116907188928563534446857618621938847804472996159184164051766755135842648596328225328676260009541455264162502140134520189309778659863349089773501480043246787724425442402838867096376830379838377800425918492292698598955738681515347165069942472535958904831170593900981402192160107720675196590717876278295108762391334203861962244547644489661267722021103722302698261161957365635823103276131106683981169063867238107790870575490964842717365509513350289588862152866300960619981143553890224003185052565364645641791579770090482152930174385465470699130204337708814252326961853251701931586646284458484237818280214683760982384485769155307959221001215318918527429187187094036759886571160826561201188108175920293185239060561748464025944951571937031903916497661851638572497986186272675704068300480366079285228892577966335641480990459449351968965660300850437354667188391007195380955397074897353456844504364766737522388959326849241342693564126389191912476963573935153565684583044896305771395327948254194080551834674436461848960590479069147006459302146098470369674132881626064468015610241621139052747081693099657900990921504114095865269236170771375934354441632148720895433163238793829514071332484077855167551963139568314629926278272860806781917314030966830363221163008349915361116061131457738895580206450536967635964543260699054924762316902451726921514405114468011177192077215064184911274620098769502647970092726982048739900609566248444715108365839328357687648436455471866713171276467462577813760672131293463644453446330065321247953327385004900994213164456314904647287834604505257231671014229537807134420422975120703990596663465624872314370712874021443875635284373922057600178962253155340436766265243528630119497445794488980208247128207750334046320122227632049283385444541881858396526455524244286204969684891767255721390224433302178702163761540849045171203493358130619378241496292208146129392158121323294056108509402671518872647038186748936903599785111264773937784371809166928576024960966561275874270271714299585377396263521429056928680044084488683298777509831883746633992797393502656596863107173452882645566471173928371634821125960062869258426274476471366106051202100462547723686441386622530085040537291262820895644431511189928809795543410168098008708223933677299600925919018652993476462116612356725171673835391274527303765402338947388304761594630712846922233625555218971296375791129005400445089521253442310426468700377958193035739781477028634471396865218270890990823195992958433268895648891652723991129335372900250442007510587055593164799723926318758139453459676151235641705472034958992476861029324112595808347193471532385074807447765655677125114732349287094718322391581061144546409228981415863670625169004794701159378068711759489641231015491330670119193317407981562241649964910858990419421849819187894444677686603958912196956543384100300713152211823667174902181406251838037823160693627440430509154055682000050723051831944180580776845549889231406169720299692009894722391303677316860684730066844481316114431372159387927161005729726953051596863203663202543426013279881061024272819690520494222549150123689093593114259108061426666002386843555594590774041587262996416347052080145049081057404272424061556314256852269426397535878812772607107377293919183296398572344715732299464037559704269266543043604041720898351952907349275779240186525131624293501082886643483738413370411201033467308002577275166772264322638217090218155383769068741975644862259487012488691205340771073627419487477826335105075522796701752490794185969876122314177537025953263731391060189472609132835962382397964147376876516494141452916063475399764551588937730508905481096039584403990140274540066981931940949547719400864681497888381178185341524117692316352139456603656054193099418641948332253717081852122818515587655765293309573299417820657932310637929942332275854623117525654478092155571863625923990820218270089437466915666162047330298946487354569267259426171368065086722801025431064911988367081970752050535476822196719832741229280371949070383871638285853526189047733289592558930509525287534174346136130265546010550961462487462210174893551354091768346576864769626290623979853975841685027772224099763889180976639926493229689708714756319287870472200481104442441926305322805228467754039642445911699126873633984838926316819346647936661966398576421651563501251096207146004467511020380042185210015405712369176857939815524171370073845989709246593066457238217282747877837118064425500382830231817583107517957382187165986174364351462081899108514431768069418167568719108467365577722330369775802840172559331887718007875919421602780430385648401854263469727755506439309036281169757008927248469277475087633411264585759648084354402493566243579243727986317360796907835517676162101212603141513470987419795020997377342898374364479395994124350392844807644491669762421966091369401331002797179302812481990850417228989702943344824729188649106525079214420571414761123153976574901443692612241494072688111919290924480876462116377067767347265882267125813666734333105532792629276664111945835461338910866457751804238650347836834750435949931830959407635871498273884961692433909944465447783542064306694518486097638245015448418691693928912813746552349333620708216435466740587274774710657040590245204600295114986974755882270970687294834797604588555545739546871843784092268959577246165410648845431183847961252448314631321226034520418739918150453915704380568477956562018009670064935278981632714460421977407324793147324178735946831823138922530818875933602441845551774634758628309108668419624859181367697336934064216390681343116793740842931165841662228557700200653350577095071980756879041063802503776826902083356242989064894242250025922687088126958637699861504150614719960965150152993802082889548105948216832153003268886764283036170633391573377772289615379215992795190092115103765920205885343174860518727383291371552961137860129142189407445397526884020658258089200104134948001534208358030298932630070788783538573283834045211939031469130210995231889301043206512684709830742638101401034128214682286554813664154189637022192621387881467425728140626946844612990628773086061656851067563851017375986893337311254258130189777634223037262766119244588465964460441713486429464533195478676346691078863196292375358403741682078718186483050592774799969071684562609515724258049416709904090141986669890744610332687656170813720243060754970385813696934316411513197955304683091847338988871261808922747617068303388414852860738799766690837709233904173093708934401356274383937232204129815119631613944730967542432596743510177555397651181084542108377069105634052357116022592920471390530193875360319090259290287101485302606190501139358931743916613410644270214043527829383447310362471777181667160655113121392510164717661562591920078001232305999554810265320625850569037884022408138748435617259235264759988343641082831823789969388722119620661708067817736452064499806803108442339008618772987590100616100970199269269203994976388388255294116581170286034006064500791876722678814194335701415486800243238093024641645234390721883895667928312162309615307729714047791144337260604264122217379236823135442411309665494693025473926776242438645047921252009916542472555350498663721437655160828658343824180084792438515088033522916996140777239422625085837747642866650804851858432024986714478293372429222408002024041566896066170233722056207111650573685441883323900290781509952664324321580630413880141188856472438348852809975287131604388243026368150858239589579211894745366158880863728504940500317872540363045233446734261720678631615735851578425537820087520960590113500421981003632555287699909692491722117532045938999265293165107254239862854286349660815844132628849241773910313608552901675559552034225109117390557289265913102348923382296794825703569422933452952206193998634095304608847421499027868516973487454556729537150115202049619178507682578423595319639685167673702923220455601260885582421167227576612564659553682994342162300966356218562490965697633621444060508983982911223212643332666938929283907331431634606947266275037254855497824889206730275722252568093388668970573703256930789431479208480093574871778217198817886661191211354001885411154568012123453302136388945829335117594673621913801566816675753732852825130957080806894364525536679150329057730433252277511293522245201963064751751743191223551749437190247160632668537262615450167933584972121897348719097828952037595119285431479663429460637947544901450324847737158937310192371332409870821600577585466598929101137155906358257055043169593305804713134287886836924475063090253411909971985514900698954143939133589971238498766661771329056704972423826087815685499486231284355631482981733502535510006664973927059098905968735947524525958304994573907686550439033937982451566853480232165038489834298151559796473507148037054118141247380089499313904003668877630149534778116840707687765404507880857252007407770586351795547917943182736781209855912561049677026678502984679097709300116136966559283067779697845204217094920973065235942847820279415821810441658838275161055152072827797904918689091094736461764989389511109259879306485846056638365766714744581913567137235022990411705105967621022558320032404569404423929848667908995998466392693362852715538704851405995054709316349832386564971562788001903506959369469885034466636802931613129003361823789435652650847697932651657876047467272890026775308512295982513176271511881023563815620207765453074231311183468093466452382784479174211164675080363779126450916872054384080484284156969801969061838036095827723949251640846428967957196857256239773432309748961853523461396104045141025830207876751935215236108083173451814560184943581464123066927660254985786581354322547940809513425135115094509488669634557322016406141776141213297599528747944436184359044297172183700917023807586961420003222524956228474064093333912675975790148746549303733612476541206872545270043972964866446411745470580167054798161814101008019382068801963382106486766644956250633409266765511192268393303285213666539369424950799843691956848697306048736324816864615454407518586861161533153184633546876235088528510925362186154766548379519890407151298746806718617485983532514798358339368730183014414771405079087458200560653439337882953203276136108257126771362892813403797015586446793174237650276138399756277202551472926579060010479361860688388881027643651600367445356048621917847226852397083061429894557522099454898509345058330448390367812171409536577630318568740905132382460433406985565346834365353120077955133131033795749375566843297420381578053148868435563100940271231139740001673226355914196420291829288846983880049630805872464552068448085842043489101633809403772420514333651913630870579965736009573248788850516443643016010384284237843554725019944711607306735971326806732145192038531508724775677752586999031180628774059748708940102941885280846859223474550456530653690103318253451629269014533198825084770975163610664039370854585082912477225792598142606473870113700769128240426541931356784434790183599933525681314385246322478837868190369849593841289352163392619389324878359305622711973770333726069659178604859571437955615721529301983221260363633899622809587210581995025096286943215863574849222731272303428376308636279404006748592905415414634759111982874488427460115884569600492375125759221705962915330962893905153536583462904814093746832760451554677239670006470014772305362313106952485720521374576090822460821816122466705193516876501451188628022828207177113567405652327585136571239831932838753475640575619685406556634549103335300617139298701369868095860487995692213410674524366964006324431177354335921638267465363886188617005551200497093909271299474355132423141298818263986575799409339490975036844607773686011018995125041423222402112149197386369855234895513091289412445312444945734481397486062071295130954346628921845217246137182457375820884527927216385308225000049807954568746606395230888468751953112508263021093731530562009105669186023055783704087641997504556837535046968036452994479197286300135446552459630407472622167339028928705149140074940954479793925558957003304586416221238370262588898667746234818503237545924213740186415470359538670897275243179182686538467197380120269186994399825225462577811349097801961397118257839623456642592804941710715627373095763191060774087711031164188700301015368534543586434141900261120354058140824325895587638803489758450044074430435695634611565626079174194360367464192422962998967858743207326861715989441729189499451286043842768156531543497824010824904594764857983327759613064600127889040507491001042418812558781987745808427597782872014154851292109571676024030138901833152625835788487783118169950102437980578196235522364049044020087338144225976429062380112312221854459119107666976386778410776825778320358163969313935293032574903344072991893000337307712547339243952043046472275879145644000639133608316220421187821286751574484541640083575551882607693321989584120799884955585661491784484829191242629896710319519485290322527685172722061679388968197470954326329114743536855260126653358123669792573966901377341325296388910622644071366865128654483906758629639999257646438057614560000354859359697229661044788145858234974082119196337242510132088174609165913727868090994402161067398697015656608836518109825137720045590256513874207630396479811850279199474222389887692691755539798289401815470616984910107687159497564919634899169423170539928376408929384866201026768189217488115585871734304425374796507924047478490096354499624652602278563647096432282158040050553477047457836013797736115775139446717645365576535231444181366752352107341500879868675544477127695412885633271057427049558963491021812247086318787417367072525471785547246153444998178394277775366811358420090156307060624619050429366221035928424062112005878224626058894178364926613023758135866990904301057803777210443919702468103100607676339483708075373326756547271967077635686774797859369098263411084080613226728276663110579893398408795122136830959890652980536110397646254250908076699769699319059341361851420573514277692569488407821434992357192374312400294177743529083431740087809382665033090017761380362644778607885243719209725305474438165303217282037892758662432458313512108695705222607757551726955847353805574187047283445091760216917407954612160883404227656002889004624043322563052443746549314445003789514795944504597152830527355776915368107492635370805665587724491430092007646545063591600386138573375121594166933399236110834137210503720146279420036001753074437013577105327026625531047466344176688722448896869755052675135698685669990068625033226523141010295155999352425338533417109695176412335908838167014065311742548791504660822021951963424749825013178782901855272794878600309848161045016394634825773127662950764683184827278635312289348830910840291071811657362258634388797823668360320565736490390245598432710849335406896444178919833193808677386471310235252208301329350112294872440613583842206381326832820944654797556722499481803517124578277346932799449778469798588041601822615857539208583019951252949995617025017525900855320542914981961649234499331340305456538702977274688197441835629415330569897813764245465069419982608347476622784385209595021225162704646826663984146346432011036065227747713936017935221522528845763055850509607293184625690163711924606557773886960757195935814206014801965093905360301972845024382621351954630714765044878012277321453215748600356864834427831646633246654967233494521628080606432858949790595654238238129814280269564469691252842902834373106920741977101534200952927834526798506038213872842937161327739530560022120292258185765522225627069424200072676206327186704498728868349611399808689845307800751862828045416753556749136905885638218574640943380555189380291050879605948768808463286386720260180056939792737629081897362850395519198821589404116823688486193558796952715938994541339216760982357103306205918147273716306612751489966518702344287669708278263520025976744087825777647407895531496980370712376246218486854342777822268706095231091209515054800645353989958998238036441067596042198975070508530005374947400864733365379541705002645718577667581000987462176883064402467485317759627482241733123427572182968639661522540430456812107431494307099439291316769241808376678634531357651586697932845100692550647883554307099417564550924869939423438280216820404176622969532100480267876550500497445261243114455117908281566966865791870665489906140015899652302732037430364570126727248706377975309722781279046623434031795368826756083368169517333741138945955580088687242520431622877021984188395798638215694129295597515614484651510162113091097105148108881293078704301079535115892807327110937482231055072904163493713802434319036751485157803572989525488746146154133445878690981222205137461484054759368017584556766053451767311881786934936917856901572861177625402083132376421170391058163565673370696061128891450705359319305883486950864416730986745348776643185013495660962031413712361875472667589171166925634174737047274068269248624360725647170921708914232362170158230311906216909557254408153527598184021312766902648817349504769872062423484299134886099866049389874945956211996666133677666183732617441722716677068428501352869548113897923742517869368088174038435602078527109348384842389116322705938481007348075915011869764104535596215391561595020530512831765144730505193302038400271761513832880221300427117180074015189234021238786397206749789671633016782791507704066217330367096537243543837849063820629335568218130923100435368159435710264725935303684644811604977359714006155968702468752216078000084261421519919976337970776191636741408359557136810325363505867102350613441323660417301367590074181303042284659960409929095231188645822425387048055787280781700416852054833929531431228120109108922002677113005767709200990765007341792651745585780863716404883105089338430906123458241134766591969824785681569199407914448833695936303156536198317613845914269516971229892055673076698573761477763929653314884464591963690139411344445670919610096573958544087842244430538219749138403467403408538873537706058980997787868384281937615379926251045953593952983298284554850311787512970223438206158744003270982564981099412867101507611000839232716005793755741401966542587169531909240463123472804417306006890517331615570151756051003223654319870271157153041028335559185825373265169260846723506131223309234053126879437336215471732561760812846893412126884160818523859930661078306772374588838149944210464045523120411095851762089078887273825631940110506343339156346423681819336490655027399481646832473943163212768147884651015270057988742331961807204181553320996776076349999199800280795439820018798090014795011544668381921767055709265060688517746549462025202547873686108312177061513296899995046242146039736812680763339265019747905241114717128426950607708117352501710652194423227663611170993687196149644307160686302708966473534697563710185044436886180954028109770685386275632865703766563563729062082793697001853632735835410538531882948269262908008278130757247737589882039966319683134855340521855355407927942973403145687112402950541744376946663480826866436091637118569308623167162581568113214272587696661168706946359253824127905657891868260731321582882244788146639657166719538715495293396119674858444622543382007308885729959276245744259894992909518353880132417094981549838648586886024456618395404857077138427511924085455890452518865510319151457178104045779145564420593997021097106737299958303299254812580869968544763893699632072713224009533311030824418608758961132475651610073844910620659577586853119819013018270928134597961615233561137989013850610514438950946834806318112749944117106364574349205734393685007701055115500675581514967480236392848766832375277338681831107232613124060628016078456333778512872287875609063813963834308614742562275772232546082427975849649893313279692206948299708396860751071901697450208100700186416665636895485547441455367097183969974061475544067170025969580333053100026158019559597037991672629339203738313930385993566002940167258307102819302420279176128689038647036683099000901113316955636415845373426835814824374035085126799244497584614153390819196292561982438764823447909834871057578662089202793812332824025665633255357528820947936268685834985225643051018931870928805444334435913233087162082774612595330589742108424980851023886337551565414644430517878582709717838042488991781915398797300754329264972352594602411767504416201074415557846627728025443712700922699436026467800491291930538470359649042657364753405438454225159864620737626503454150003061602166505368645511732762479931767843365591468481051539402392741915556736664509870739494374097832208579904767801617329726987859183201643076363968324353065005399435321925529290617134655091049771729773517151351902428612005422695867630569697925640244527367425373099569780712050238588160749925883436498454073451574297677028822061568727240114558035684499271212258278013725377151930940211219801104546991010757492465090592158936418078095743399869966087722791409500936913185281298889137878636263274000447074235619061432230067937314220543821306508135261433035204561549885386978675663408722234684373831144069360069497140828936990378964190086913962142836523132215656735391884430189043226217611919879224892012671541158598206679576487708428600112966924606909517035496118184785633915948363207943564844550774071387649633005796474629677346039565154791364339059949020317304190024213115985761699964042754004061945961294589433629996455219154729221434785687362897658387842189801327758633274159425477723959741053911779463556704281577686498395269985124203422486777779781452111991489313417384152506102334395384672547602568882616414062164847195042181016385299756648085584880889695422515125849199727237132645288521285055325517319021946989548754636960127344095749209159824481771522223944487192018017224983918620923345267286870874574363843955966154867731559590527653424814207823482590555486701527759605311942175274340419811346813041314717098125915887997931987668528608593979638352457860096100952078825585680003891529914022769614909631010452895206094187728046510688285177404544665195335833330435359884631317379718034302450858048777989265648467214617666086434059872229154627628867213616837913205945522266334872536620660031313666172787380671386050769827344326053500705340812852681027393782785551263039119733329193525621478065725333266791497947340773172702995782927679660532006625522285061705432272724860843218905851819983716941562631191115458418403387897899378473957048357017215195584641890916030254760540597305981267644553974317305795192531613170304301864003357456385048193161932882460168567878563191428299833844938520801731280015840719588976485543301587952505922301859981166958181997526908671256297699969884839627007268063381888284625302599525794739627003558131206292987507982998199246332326233492577864896419081887166143411320339800306620919214842716142695767545049018342690258021460849845139507629550108045591028312236814451975662913170776340295150436062522969488678093019555032048611519590565242730139350977511832387927933972582129574588193207939322071726506517176893139195721664203710375046683283120332512658398843993464760688573046976141619437737931229020310495981070053034028282785864559092390013211064480833262941544673548590376340330891433665026462980744083070958998436881134524901299526715803603055755460899670121440537221529285512836409017181173425282573860471755634573275879924243644008145188804162736170524735207848356057965482118847162311390763276193069040877252560082232829986286524142438303188369073171794688050545561773718506165353691610120563075282109339984895460417072558670103166829271408307002401649601609199778841733830289275541866863434248662298510436089639624836691927588162672748831646573533105404993172292028367067958120182310049279256265358018582895747776764743433169165615132432940327178150295174245841542325148720000599671213501551487345470584667606985321723518284214885261960368123842076874716871930853288256118282291533825634494780935429676535019972158567869564697712341891444122925948650030550989481322737574285706522929760250868266079238158277784812142358090592723694336298675890472235876173872120156759507251738428136882674170765304951257711192326917384801301638705638271661382613788349071768510617876723022649147824423506520531398657624845043796917918019699096359154754583159544202807075113277894442736458944862320206328949200808442873415803218078085240234975221947680964221109891189303648770796977582872992681329040765600431181438594343601540532206791672648016208090703478812433661673632462197935772066636169227600422436891571180212807152071987118651156629426304791330273892727305240285421571723255795066122240471921832269627498998349716367800632860624922370926390085006177778091024119018952326296858736970057006731738774625362457544665854529214778688696460977058359117563726109667189124780139117636277790436134552794706751774085728789514897820706745321259305806257870089144521422323683166215693256381381478854680169003995913430346680304807291870961537945193550791521544256797358987995337894339294163079355611871147802406025353427067588430267982299835316058585396867248479181700013227257162075067599003353295580808389650290488494327275044609594887370790735604020210327537513861533937237735025057706056400852517061493801972420536661600332552727418980608716166945527020307214623961347986629303299982360150745535733897644726049716101328987358153577155698379153557963926738986705083472983956164733282325787610694161359445624247933857916176628425888308130749113853800137559334210285224832432296810722750270198698525494651744551516527106908913829989520454828727124150194595883464472991789307237224475471821380676738025860094556503940403048842629408525662767396659672705302866475564763769129326084327575611504164314824274995481583548993495978951197098641336647942473783982868589875373312481801918449819356069375414562597916679086296190478606373798292761526354781933718624599202335474032401420813221949850873411750325388299699827188678682759496027072061879672381051420321803443822574066010525393842664133043111696378054946545560720118399436131241597558527789579819737816713086218475177779021992298321973019646394505075007792315476308240545814590808693706318288734926875217124882680822898281058381562589375304001469689114238123634907871151561323694761391589136734545325606369615947806846119260908694915623668858577332408811788451996707571020308768425969190548548889576753316945889619423316742289037700212336040782664342858484395525646520684260722585301058224907749564504702263038819197836026612901563299150677472348392911070897804366282856656678098096901606539504382244916382994752183812497906473568860781209345767157788936459935160337717106307034847819284544682973934396814486202736348399209492882440828278736739848418038448260344515447389171124492594070104658379678364986124771138581542011657553295477942646272768995604441790212871743661465134514779669910176316944067210819457468689844936441973380440057101907895249623916881076226529805773327777316396989306081890130785147970424512681840156571554163332649947351801960619319266388674907639042010167091333830399032196384998103458728485346042039609031368059107453520641101685159904961432788368291393487655129463742674273767823827721673249236280346616829522087158648632931837379702541106699214702571112908104059468174663008371086435258810006840990937244551191437217280959286449625718007036438390665761912586540878946459203637635951860496240375648103975595992871292537572957561360428117949965853390036199293965216390951907746533923991937575579363570434971162095492936259050012618524330081455081038320820504918026198021729745420865189053515312294007449563755836429133039599559056445395197151349628601416965688285477196620445990624807952128599566094868269196331147511416672885671205919166609324806154459929172529392850890640327350149830220140745947713919601399505442690323857269131063942059452012035068439308945828579055712540311346572980477270508893871365617099169928374958072161645728823395649952450100652784396160482888960118139579681361054532402745186119287266920014464614893793356094604445984832770444165034125273463905949743139950376294829085550511316537549000323613820043617408295772937133047578799285466204140120763830091089732343214117535869448900381583637023080350330844844589190218902597994667148352550717580557076059050185599398703192380962028505707019848823082589047963161408069249031508242974957206928641882650001865776757218566934611740211242015781073862595239891671714976569327370471536452813115593833914780349723453103257315410914959536960235242847563472573735938647159266375272301119457612486449134571016252063470753660702286489519405733187597917731356140659166198855088930477145293096669202847503175094958561788461859237490511368536082834904361242035112065330700027672681829649236591827778589825380062713706122851111808036161219074960065194937598836563547333112438834325334094675837697741907711149706058357828827731527575309137986320708029951010932169364508394665049506312008066842838005001683927524566317334994056830469225349986121916902245739778002069394280031732969675057634312105196341737233863517085824764621495285183815326209773665085354274403088658625065483232126941892567845249626339585425925076093939631528213553727097201721762611406931114308826598398747498656187839609256439056947656482703586909599918680918562849449920771192668788106024181585227988552607687212975959316676546851865635270812009679544690982586254752599668448842995075249973454706883173160235977765274813790882512685704734556784287359356480481336440256234981336106383392036386251252079524563839479657788397850125894574178706309054111064880752996824359786291616428345831397045242934527659360818844533866233962741263704251294238176409895827387338311954440745988999687891605539736627296700468567275579882363903062196946256158044419955795089813265299529174389643564402568159573535051862523055215051801481393596933765253078054044552454303800813984006730194858683209039635851681419322623581325609347259276045637249272620947674084989738753124443305398810090873694481027563620991066585444885071791623837968443972738017520125778567534367996633934197459098166675097408965624047943866368084285178286676316645381392433500314231642270478759386876515898406613957126771113528081791500144109316916781807123255441702336434400847157516424384232981093813517251574317395995618063390232466119937556640714027008375571125710020561247685522519880666482069347564673680636311780006911419033936348825381074801450490052333961998390648667357107365167029900978752885080275886242961231695928607437958346429492924093036309825964254080706810806768508433248986828355262641892090665782174167924789426174396405107341635816226935747334986751456867233374476341743794586173892174395886080556606850872559626656022602420117668155844163960660766092488314383261219428822097777443086527537925163948987056201650655882139415030423006101611905862988010517785153189316982114196241241256812944224319056685374608298756375853000088606019126007516029376317948014242154548860371607083938858415291740010676576965858588517221118268215100996047704726350767637695688944791538685211004369363784873527630817685346935897373167618245993274310300801383214209101219892612000300297255534792663741619246770139405363941255344226865196965999592712296208306986974937129023943525059570533183237531202353910259551136674237483003613070696589812531863545163548197998673777131568557745971288639583354348685585429766110095355520964987828612380318551493579724770739230273405806737654295195972659663519083059692999873709929192184643501290966672422740777136944323121197775820433187161418179490416226488221867322929901953296278064801362779095403108702328854325302157253959601992509342027860836536947667127414668162893499895865230203403895065195160474942304593164075265313655074677136974508935293889407647652656663511871103569211180838113961025227981731528464225501953791982225326153763782594128332866771527077894826117583426571652427246822086505290214098120867654663864212686615449952717640901288550202015663101645234001158765926338468028280132926971306049285986421006634372081318013094003709664466721657840133663814011491987073427971957393722761966099327234282070947797403344828412020285497841481862568842034738752010322796430793947011992838573167168126845850237247126837210219531725197760655816411485481520457894222607394474109176088138512593674492003284169121656885680019304574662594841624409285432302151784754383368008155721369071735503517565662625301282237155970218224045975500414924813331147244964293664015846628819303766940494092072361746058201036800516053085422197687002579438328565501484915259387765261936616290013036496755384086530706822539794253472343725468851505877232319554203620536000336656950672822728944725186708355990753658301423648723397420989255971143185903794463650270666243327039410840339648830238979980014576382084472949303513115645329103872819093058591190074018206390537677403354469780289556167026708268900901901495256781357349630449087337063333328115900868494457962258465391429289471557815579696825064823796208695988192821840692067338450239072013250291110632227783730209663882408024088562740438857844327808025950581438085122835630686464781079070108460832535017158769188472310694168072607597122857786146413462785581907536085101600792151852383933117451763205521790508641849614916061447319991741909351985674842321760193224146135868464571613223118612750588095406037674870050187989623015770157226608571856105372883970945451022753525458369790187707032767023228164464686016730763439653341398885053069165947808778588168592940022215942545049041472793325123211664826128472900646826456084004901660100763378592534632266492158900684766607761021860558548087063575100576843339036080239917265543596796042030164446861851113252278291865163275250416278427935619679467594023154415681239251239888059204150070407808438102992247469888616451376174023959689579852950581293107937034837390873607143327739062857454886618439197898137370585947353624699039831053569300501770752867777035003634310803875298331202763132640607984485050552267588568059648059550190121710595381861431297794614462102539561681627429884453775231454621736179675295822553670684125279495032294066505319642980197348221667744844566195659104352073077414999489962485027006729863855384494953056956028323636629070493205822250671731109889081987323789792148962127155388268735640903569089562893824273445288916492117741628273329306763047244863809015843292791180047999003834424001276413331742072535959232888094202376771963451186277044940168195233093373002878829951946070191372625955545668851945871767963900536371513738389633387418763619589335094640588094350242385985831804216937302777960993918191266394748551545732116153090283799944767476948000428429740125025282583738959513575986348946002812389940848640412547128690617010382278520194066283302532271669124850917109952402295825393902116667487544432388939937603035553503873633416269315900240079842058858169809116971957315119075771199604335678743660584044943756392380098071983688558072665951954179814287659235876441094043258489071402884225677680115629769467907177231143439304990022685511204528904973232456600299939196634855026454100073843596001230767521847780814219456259523212880843742390744612543562566437549658643207666489259587443177318478895517347925469403875112062186480421426676383659202309370634427285272702763934869183385265546178916544586700663236791902223398567888993838528988247949979403783374774610304382222864720455279975037282747199984779360523108347498204392366547474696748889629599595095768986670806105836959826242194645049581013815053471741858269008716759137242894502567637186989011156384817256081514739568362760007218124749511292136400378564284414736587519016600263482815972819017644358746540819908017159634691250502858744179801599457427937446956294715202700150245729434666318232366412311984331727187870498753638144962860150683338850229508482629440911680893822029679196326790269778905376104463089957547167657490090481818633483949237181116367242826590622659274000357476083270444050817343244782618154198900729014525896279439857003358481944674058944439762073629062981632084772956475354190389229977550498383344955063764151917349757263371527251254620247085207197122499174946292441552017729359684494692555870488977105882869270318324268016080425151926533145985200151836235865590395349297935105180581978339648582836447307755194059695821685741252602717338773857060097060472829488952732187540359087934815941293714022379724808584493659728013250876713103681171955665185999225687193296100030753279152389510210183165712054255337457802613461152591567887551532841773856961545819006751140905632688935776661180405524946570811209489484247574044144804235756575371401502954126001161573288091749194545864108183145657052738659746627949696980465486433587177444542155311779038157032661326423673702369628602519575962926216884975384375557214163149708145149977823674192150378104550738998057633834437120625068543249236270335328836618939076543666225062552532484123992427508574410280261913625982171785228962896407701545996870504931088730057635512874930234307397537194409229774270794290185591854271657838206964748674738923450508919772917569724135221747823039739292730668603345476884161708735452148959060095278246715484956550073343819268895423383084979732966743051865068874662630569287117728142725584412860152423817286177359007851538807964763672796709805791119833297702366467281455189421134739022373660676454598515184934005966787568813401261501869591042893854753537178415240624215153738937784280866857938782531690608044779935870452755717561425732610185957451727362999498082435693925328593237964239650598862014335048231234491700050366535473419087097575194353463104691621693067468112054201403849653979361837458096143308726866924104449732444626248129875477370618852066989693874103864756734046929237110129924093172626875362343880735314053773336840983744466957985538230636531329058810162235911459647037924255894289835353697269448454099473570526945350852185569295753144136803724061357283313240912652973367752889373801082339820724983527356806308600555528186536041599819706017120301864230133002716085572090320837813647627800332357676850148614228501123662131530380501286263077166693098938950905536766309122166716118531533473713304850255658087525993901511462118459658388510444027373679094159394476721266876796669495707292795355235269480839804652162357115277229241513851524496465656563308676264429759592086652549734804580636528347931649565725676176972784393664162932242622848749894198574864340847628982751009395185903968958657750114989837838027209549041647929983368207224336335623132977875983568699646994343431729327995131690701417608975726510846723333647963732606796651961784638303569858275788875342752871856239193257399366369075085972155621313265295570936885336449995023352283652870336825287557467114928098431021895437010424136481546076554447121141181213637446756399220371544764023884689239834902894702685590257830487519054109306547883068679627399940869800428552684657485282247715781052144640099001834387955028552303128125662192997897645992869241476315870854856132004220136929567241771294554956003401424003999025895681007023854002395934822376324503608112436104741132100587869425477798143488575271151540645881685473642516764516695189341262767488746716176561770293995812035694226668555880679210741203289889113530615038994752609438047052511883753003222574382226389363381086703186475726593685797856925205839061656554834804117924020096296134937409969843145285652483941698758001388712794162769083714262642803027262708553199177980098659225565518058035240049312655465567143642819832550201795639362480347689150430714139970597157467172301485380989234271476516560614876587372079278391608994612773863018860473804137482937329687444682517816294941003692784050069236108887071488596669657309417198109398926183279229934390085726203465095146343619196187367835799718361041039031318428561018265952010023712272362044717686358934488877984270623765181494004753608875909493780801428750664240981096251636644887844388361205174497087792695725635817028803053072938741188667319793142441415166947066547724297595348174490264740487230290835628141327282665519762720920508923662700620078297087885558820888911752691770348422170281822061569364364012006513544034145747596109403307302327791881750643282194650986776701461559805783920388379357557086655313969975541009065293796653911768491644161153794810500810596022299370600312662859608989061923136205091859608086351556849289019014652236002086637237122539333458396393459199031268476717152709356135732337810795693594461514688497270466185541561221009060734748163504172635319317962039981631280646328273855856072752281701243632288238775123406044568636102038747269772988810955222476770910411497509595385729459393556278184361804017711687663729952655858165160244188581228406950669798861416377227119283829650116560697351791718977420967810906316590762267812539086224842520842535226385661621558697063163386920081508070339068573205798084809706228248920944760963331056529523246734621123137685741643199967365371658588263608915456805550371751482646926418646157341127795993607759604358630482808950041620342917413980225550419517560143352517256088141742778214104976284978882963820718542916788882206577291813462159149987418296185545367492365328892732506979651373895673215612440123242043963158282096613185954424369534647856477384910322164011092912335659737259149492798435642602265491556969418570123149636725478496281347952884688945413659202499235299074110799240198739846264736150472993499090405449077248684347084154791541284360634929082292364094165393619533581889271384282758898980751312606608393574427042472563748835762882203372940145942511538265854465202458279512559528118009831854865747755290453774078981657084877043608383386958344017311121263009145470277915741460077685518200424955064771497651025242879401555661874737310493451616837512494377679701916084960781976473471199715757822163710040174521522537291140077771115090930750517406569763240464570272897460971489559200554216544300551259990543077075649065478336969791846332565880017581491875253615090868207696428381810679551650618491427351921147377202246875980172158873211106247962756945314529688632359193408025735970206950692463917212110840927368269844263061965467266187315433909781136828919619470059225647129119228276255372355734806447810447529342738032601013258307554340180488047717494352284954111607140133688061439295978415363657604214064116785877033390682209118906925131018002777166152949896591956989913010504084581728725674453215426099386941239605040241110223916756916005738382127602476635033104502484006245735046796139531433043816575851229694301911816627422417688577677785589963155141870534432617460685888417979457319215334607205373029537674488166974360177896302604586347797758522290553051314339095261951398336404320213599058190766170404149738185332702921462758020047656239361330130052265778813294225954002171703809823892645339339247117169380210546143150410677962184726622207469759232946775016535359562262213572857466823051318761698470579947112422699554856925170943143524648382063501039595445277660952240308081391352426040565162482561987506240348790212050564191901814641065275971818522509982861048709084659568747774973627728901562380875443993256710983324526032930807335177718719733782614079859864713737879766186207256536086850389265563000646281381374480525902448242742456559180817998102784847521102219094811218615508302105907254664383212063463189120259561484280651218516341936542857373811306521311213206122243969975772731826862930057317530120261556624639557911152786249415050936033804362616710833305425381760218582928114381505145931305753686582234068837061605891121799268584329176845693650746451272773613789299581381629128200892070294662400220128849041189121771482985995524323460814036017172920359875641698954621943912889356056073695195740082559238086596591239694113661006651958776176151011702560984591182325556760772045011363603855955129331003553671755253847023994136809680400055935924888317142175006534063856133865018972955875848818848363608138356173059873951976986487369722216372111036852386846204095207467154468086242979426456779628224450989239740721401698832589143185663071565104316578786243619086139277971122858106488176535905759055442972701165429197652286275348633235628648863412433939735713112097927816657028344831362523501821240854824995618833542064523410349740844997494385748010049013859457517850471500543512019208399361514118659284190194799979928939289702009187742658734849013209879440712869027505624510049279041391322155898863289419697617474453038723859735379015011428133939300075904442151378160490521524613828730986466273689587894043299405779733730679344126657076725757347470952189176402374531968452365239495154167736649764960335899139520365744643681754138239177124214777217381883599818642829576750781574760416552702589359543693638741966523994109736362643319777996649778857758661714425774261645957410656947801945272855426357394773386979303964896735319426610872803606889073140760526636390708974135073027793793479669456050515825522879459024622315757214027795829325060013440977811122866115854746591790339991182341670382189636121057193258275648003796656201324632924910108224258302537378453501595125149209496149128751467175639717118060906169186135872040667155155717938445199323013433421808657630951675094172186583639081906002455217678096220244951515545106329136608778411293535263411225894870669033620794881223300601983488521805106479494721016007695913442691895589150140710394988818045136887715581249618431277515073399669998822507674628124073866545126412931928475611581326256529481908997959026302724749382370151296709667245804226803864212799105743363052927328065103667014056690882676102074271840443917620542748295618058082123145884935829856295450564859918906647573604272714036498253459080788949775146238815714067109676877891830844390240323343162451695466571627682371564247963807360499851740299645683675922385323060231300191865333860921417266049048289677600497906427751431409681861903562790902740318709927588180607758738529285343044235334924105533261627561945025751949776649328183977690015638582336815390903976458174881496158252504254102972890556664422537802497351191572334245100013539510281961787188853540955201515464414357224387172289801234620083802403293394745057717222917874709732356276070935638463255614446221029837849187904921313292965855854556991097189762036531477629164890168000977412462277349818271311492711406359372385634460590252887092081615553421156844887759875999553357442517956353805421562862983384233369351490820915558223867699855043111248927339824233219024992888402109633527921416181979512644746802416264412785196926083653632008894422759171160233231168385676420325350437605082519185739108554665922515071929481983703739622677215093878749672656705740301777668989522258294308747617571702943973964724338000216858352923013130021027484860243687678022792554607125661835685177268434257429727737181289379486045401234600367578500602924061584912137715783577290190574609103970799599098787816044918092605116235164553343964054596402557403556374452798418733659418698208097634417537904467949260820533793265304107173770868818378478241390547598822326407370488852522453141010682901730285195202697503255207470085359670373085474888635031189106728582835160941065022476695868459072658347730238602897429216265315915277178402437582671229778627893265507808245179960919019176797874665147126023985727137980027342174070414667059742165965638479844578132972979167015618269365740502406114420644857557519545623575475316665984380115854544710545352499763720254768452924607957591071873904062233129209455373238464192218357958457096351277398592398920061721681503930111058266088327646354716009785979285713747238980571848576069408236676771231410504230682806541828929712409407894099122700438191058543149833108431509111871332299215492898276945134578428871745082255984215621844870186072462137593746684237992711144908891078061990532663592022211819359390310979436244492233258337735206445017669372264839007484412368777565674766363169618701905786704340638140559653586287063658200035353208860318197322285636789891795505826275324746132251327103560227689687094367020328098608010861726792146873908890760108293936537770539517367441440469881456267718982331795496015650122073256868292290401293441235493363463515638639400281949602724487128318171318077868562019476507095052576373095163134177376148394804677406428130837014377045225085799981944299653251311191927687173937290519139503976986007721162552527642060141661877436830130614419088854967555806810873257480407221817968249474152506523607437705241449539753778537575616899393785403878897021497969346076428209059253075589669275804397645902788707121891693690759443114063414795648698497764957308670598677748375950019920650465062267325713783351105326525735359462933660373365655480481625626007118438573760990657412267785127064844916656277399635344313115825813241029523887584584411450643144512634342684111301958860834019812649482044911252469375487513252538112906227967979744533587033232802363962727515376678242846605499092068149098785129306488447328736087429064793549053082542567101774016709920634501433655241432765410059747340150931134131985011164386945279902709087504305467738146295292794541880309458817599403828618976069488851473113867685360742892245043290520129470448666996074211486561472054724626949935225036982568721967941775690574508288380890584665456688401240125291151628892130912265437502267562847272667595675915107837427986981341215214947224206551462362937259014279590403414778980657291394460735792421814265963469544696794890789436158899260912646298819599169351992857606394794290297338968587222159558547315080071088299408384293879507332217419974104870790415502507895107180405861038989200267566573972379021567835919949743594221716531075496960519457717800562389860385572336555065456393189089026378763571737708210172427081252913549400439455860420517203537900137754604401915803446469951605626124243556787924281713342581554700793497642610082928609002650204617520699877867056173684274320007863198506550700189583013053959839113023140327272112929499884719916803828466262468391449442621526283466739176325410787916758886454860303914414002109334581134635214316479566601665473709175515014391228561738252033575328847426216489283257547988917564915700839841482431904584426627268831113312071666500527652631975045598825681565252341979184578172445971005031486533256311448291404750303905059135660983677986873503864682825225585988558835725950279757390108544481121121098709025053501647118517676050186715565086984677579645994836491839139813591165730444385837524124322662272036226653583421348748441469382236499106781811962737037068148153983137004592176092028697496646481283783415041104924840730269502843095147137251471329566309602972586830851273812931029887617893725593788016326640516132334852052712197998988161754155630854771874071243615239375750524667535052156221626292215955043507157338886331809217341001135986813409146530445845499983951244572003804740807540084164216528884334919430495065172021987787369477878198213712146890160372679379711930805418887287176874986154703768193484687914539768568709985888564886912552658060944369543199433513984874802840312196018593965348751474727158675911374849799015323307296536038525455410395964851986556525493557107414740346843485321464515027802000649157941027599619189731844731988166858001414482858114620039261542831130758914002453827367892629114768827963414231832184612776113768130131930463323190357823568482149610820319510861222878038503708812515405978125217870068962830310362677823840302246560259900917571339550464888534821322518668249055937157106019136324522627601372734161526521269517346861423934399693676508929664404994259835634324174449735380783131114690164239386805867306378571440713787827391016652592712124288299827582235790487704263942097981164497119821164891463316307067810086197083861909744641083490378647919910227657143716934111001181544705381765208153394111345609398045317389764816826987227117744726528658140898219561684219007509625825257407461733734317861548631432460797476812001153510622299082343324367965205592620037682773288177383379293966016382562418998316244106980138229405991284654985587048591135956294808994968791655743880351537225911027183431368749565839695095346030659016659532982417585341325091319235236456158409111732559202112072671839802182324345987987446611799631844604743243082829019119315480473764051872609264807048179488616372818675401560989969498471764686696639629461437056288773072800391236419877248503923966020510827519011383822764601620447681975265646813648689921569889289299578800051913155761285837494781083568916934618822985333948888522144644971514702112434784225469547861040068308090512838137968472168494156331624430716560065234809183773735790024775514378410059575436067743544858552235842515640983665407902531489799763642277174175847879550602739659025558790263767076330947134207825190191029380481726981080952941673560701968926702905190157947572310035167778147040498813885352068259729490284828342338694499376703156541581764971464813297897927028663128598900064920618045704770322407039639644868684282668105703360096898870402324182899149078363859444671101498627022570477808910410759003745487870119742211894811333281459082599459742844250141571289414430831784017035894439674877645915971947221842406640572925367097271752179761594788414085349623658122997026510297374949562954960298304569019221835986170104407289912920268316091586388795128610962673357877936799344301501544580410096405821507291604367590325501090400483784176747590861971080531648599693768431633572738090064001146412692610851100536229021940847436047210276451500508234004192188942936126108496439860897268238278992267393933246677064330818111252709896604904066781172949626532863770082433022674777446161395121971252639573192922584460989405480074749784262383093560971399422254622525051699039396327302046588975863279462232388907158370636884702267856153774858556682471182566032065647938899790268950118263553811368588348495673975884722578688273231640540483875597977285398124591409806132936836323801610076114982771546916678855070604604127881635303857972593847344024265890981700247379516146105014221897786907560486951151863674326852090967113657166085985894272108830289033067408336812575030791892830195676871941203056185548525069694890205275356550855935503710606240804393068352200592485138439281100761104648930946141612637863825662702173451740213048485027094204555744638696569296120070075870192273908704683653734222203062509623730690580019503773454298788435675922627052220951332862076276204779201890988130665436236436127234463006467849314676036681085034115806461689342801475428343216919723506344469677886812200709948065001145193842955587650936360565590771274732863794755862888830633660164965385668447727563774368207227246125744658401185654219018662171418706922738421997253006749149140676679242139569985611546665987252233858948210974869993685352523462549170617602306019802428549820873014733444589465842163258712899156310480047353605966634205669461870937227985116355323442154475210483137302989101926677176128011239314211817998850847750391704644747879082019017894855062297242497790851263200857527551714702703320741765137764875947424916521514671396973047703359882468756503485160134321761379524262307646008910624083638431691720875448523003351778936772648449258610793284002430456178571423371205463137297111136271329068953405632066487614885172150678948796977396231466764556711580870002630572304159268234975062847018310763165597675887848734075246682655012266280003016139881818919772408470033690660871789492551356885290733339868775766954897605927824249373192182648051913270264813267442004941121756165007130991316501933184646854233012952366422358410572574168919408034129916603062586807638511741744558788355396876592441850535965865538144244150861492382042253365301587055444317713844226286251760866482225526159104486029009617815232953248368198822190345711081833874170046019938512323636195147237822872805477171430704825363976256074962981624328792558169366264657913221329124386154747874609957995035765862885478320164895440979386725793334341666025007594069817732814411432553244431993965362826074147369243825393794923878470127884530005251246304189568935218492309427210893175348742281814113560987513624765774876557453716766001377621890162467481443931580001289543006225316888052059747716547583815892021759362690680606429618382296583478787832633770176674671140797604488352482182623893776282471791562980515994817223574548333396625625770818673098958277627298512286823864230383887057024037810155540319458058429304580542732067641847157082211858388786195007587353657300685439247050729237522035123880267050298735397566659537940578089122595224318378215476059833441489445675925446432007031555505886861705755537156025704631965948416279684009572272176256480057114349263773532931840366146438192159942121570517318744103170559297121051140546274718293802442397502726605850601043754252503366882618589848725385108881016259982099916426374767072467110029342089483738367355897062513985137318766116743684278390964491885032160627825792566596788014975117894671312951770218813291088495398225702288398083206954797174376851980584677810272087471984087410929376837004182414889129904677829516754312332563600402440076120333423304153007752568844604694515644668586901798279958222642842544982360808669814031295481945265860787769607043404356661117516394576202837592708189073271074305641451928825837569791810804404980123608626669440784416922617970897187280654232489068800795085731096392605863445228210504469018579105053995260393404407499456523597201438486936074879694945929722031321068299500835378825157993404505166308274743689638402504517909660539747146423368283435232502196271943427915993596203983749108216505099599125106969644812789127056294772514886485006412151498734136139480209927364787376670813637251000226062144041845855373910224144541065907346806744776938053301462013495270740684868230892476682645624134495686304317282190168365306113290402067610988357283730042921823838493584177312879640879940767868519175169854833884723058144083104765694339426275141224629100168494982881491617403341568738673911286120830421871994079053164249349165893474391606034076751516909242490471146285217436101820632919505883889729458162346358805962577984485316653321980812663143741406665132832478865853668592132383329548081635785889461248641139836541297129690706293292427234385463133914565075208766044863283899296754698604721659757945233995099607206676175593179018950316527617052079044284865732237418553190221154677313159591287478532087297313815041045402008227294837865081025678789708144798712180708304874932024720447754656059563050554827464233440502860815647263813448620648273116114051648701943750018853702839697819493169028508396120840093819787592639464461102013118723100692903909994599636424906883430179697219995814453581502836770000234245594423647419274971236168012464559521982783968038521083926779213864340666921944394007728578375819082295461520437101008662380181458570419332674208113116686850141479297462152515293216652753597421340324321462251860579964403436267526837342778906546164492964679053954162422565395978488988085021306268653256455367528752504040808662988225479844385113301608686573754869715367644844650936482914427756882853663639754263389368798619862195133058379846088338458216703058992824917603177892090045800601158292395553113639744043017435848600355025192815649255358276470947866415633763446381898203353043338013924952299762487178885820192181691237536029491038313322747168906998187042357486912451008752486905096159292290614425307174822478109442858217690126188922940624442605486263663990308113828492232118706669397001001902482167448173072168960071657791147328646493768418582713730704234094854680324453098266203968663492541579069382735720089462478264962091644982631865524661747737659442208721994951723374423590783477513312130418274916421794470450203475889161533021249446356671608569929340255629243063830396553935735302397730128658150336554869314623611567709803312622435757516771347762625798971878766248622659990869178684805095022559903113833998915320501813626052397243840989237762613169422902963581437753174981860322188542246424763031261760065148979451996668810018758891456384401044397575128442560566935149266222125605579941835756571653479959287755243649891001038469739524916488138462834660328452429400758728568161030206268742912182336246483182497837866995861044372411457940202398905003496448691496480218135110249161427616869372699334913723699643737294780191463293273209130794529191066524132329370611414268472804356111322299478574551984029866675935070325950357396921245239089228204431245855407090113111909467533315766386016845747294636976608283700523475140739530791961627995569211858751729884021177901050758073119023688167582401058746322570196378477048422276192081080716573244738790608200843843368787429865233229617347078868496454830351715260289398422623083455748041777220749903554729018680962660052023913741355614938023659363776396329607967291747640599131287997415500901053034729895629113475524958603656404390577914412770119034329599813754267950038660869483368186246833820343460208022832798466377480681310218506340311944645385868116545480014183613568535119740307635356306028859706082406180978131372205021879030374307413416911697497084668566401264729155043600363750895876697879589603651212799914967105248163906374296866075587868985382685650754207088716656166511091418219165504171849818793952691762752566493946491030933648774645696977175646713300317721035473228826535692312719837254730174674166633194200812791131134095315717592484482359338866442069353675266460712988096233819573364559030595684843565119990892480715788506284138222613214530388179873588012614020372008120507612120299944511963263400313623018677859398163349703201926904579595391623725717674585444922425300206227719731535689787040368292593519467407977944694882185568559749301559433133368241387269108889636366108363614597889173360016322840817102310233564138176473328517287181262411513568252720363081989628466682847632918190231861629715940118530887673255319297218825102101831354626029449901643915857468914528847075248547706697702472342682668845655462696085626320066208075729394718738810960236258024392432756205971396438581130882552956913406823700823403532265900691401998853024661468827888735312388024971549991128822501450471337078638187377087360194872333573452693529913203742843327127511146865048544479702223016284898652379198373200924949530156367766530472139652768394410129504401144421345986659348432392265442273948538695087071378016078109140338137339126489185127332228033612777197019951942182343170840074356442367943822609144269791108199331102857345862758661594626577695584252950764800418562443967849851311871131028371097018488957010071710743995913356228858416945898251603514152936506089776123960747692613163902185182820877423217074812514473329204811512677278715657862991647361184151074867487491876363503732411210881435847661260432178005536152674316183821025469077924179560981947045047073669828318784481879716311390701939402380786579436539617617909134547958404373844916847413637209737464938341514350332716632885087686503452875095278234059736719342422963652689495265743056819567505396463979391007084542077796657635001637275162719666013069010937704811987026479446126611253799391171625393427432937550596879735093254329333977588476667909419003235823711290887440822749492235103631933134284765236292956144751938413826036031127736720942944460271702632007203721205528909887554907441163036138930092889632186601785154296660583232380800801169389993877920530005356291478690426080644362699330788252209275659990503277312894958550451646032622038061618534152178105224661581482190425335611278326781919692053181406791830634140251260334551930360598240839321663719263209122428559153579954709354603741897912929386561812706178459102569007430776261865500498820599512385218605357559194410216778859836864125495334814299180641039444572398461897392521541505338752581772993493355497860398990725896260357379974441112283747152680474783010000502009734507615046594922945893133429683606832009991324577010412959053782885853781203923251951222953612209569238459344877345768812476242539174009661013778049856157349249435722173000831316062244811647978266179781312285392586433737174312014381116612688514513938885864868036770525043289702938450380149154986678200457716200908144137478993332962546163176940389317427843408786111742144805716244563681648593298238304951956984979777373507104247670449857194524390840332657804551839626083767855276629629000959098201242746537813096575648988165592955353221558681761472872766863873597853539755748764096701390194555587798791836925138225774937510060141208083585634566753044648029144976551458985204447521602888606052857085215792973273183645343964298950061185976904015027408935460198959333185587686945905042196567253976699913204387147875454284174931905622416972545178198019975294845334555126145263523641299704711120323566840546714677214841930844133818325903804366966007523539355310131352160701680816631662652838835113382788520374074966804368897241068580095399533374421204268178050409888285710811770426777354491272540752891720464561004757146448552402428790922340335019721575980459808298880272546579614126618367893830321280817191030509414087470122299650430881796166736645149886984708296537795557231987905103814920622722690870479949396978158518292408013451132779483511080638878015209327300104208187695683765572751963053941796818474488141221774191691311628720523057529894849799269597359195532794444570909584955593919420725090398384566108268005341190978837690082057659970001714488750375637808347797445219202537696816031684628842954496384935091895054624849846998329611517984019690663438821823172191691861370181529730642314283220991038714243966437372052434363420432376074348401607256492535657242920256507826753046618641609905492333374390029189038983993709675467260476668767514220039205654787108745143275499012351463340402160064006267772757235111135658637302081077879434160533715102433866882211888472634134020129526826086388416847914851682673450728286226258627909874653056986418462131534328466225161238637542160193290883346264486587892913688093074676780570987914832193561399988562330635788567036619855776944789853644381136360552292457788383117234448087782413854477290972079526091062368694011064606289690953172527463094757009755841138902192082524750154833149424719946727944804589539128902668858803562335548520463126018885824333613374360399798724036756596769682348835303228071996522563146494167701119203829120525540039787592508229165006211900453919144485557053327181088871266927295116831534772771321615301730364819757251656793429635034625977789797529679861598094535704003181820628470011139012605846241963082207207937902613191303364087363923551019526965336165939800793553666254145291238674798741532651792715581157481714580904965845604539554072851253052832487407636781980880638873601544563724605400824277229433810779877673698438314583309775189465106144368140856022632304783187520211344742463781073788031635130189766122536223072624099174178248826140673188447817809264479520417409630752693073092424369607768156996873600290332681610223076404478412926211561243100790670048802260558448326630081495864880829587004899916688024487793533385724419088504505839226785777138124040549119317442304222982225274892013888974352260822097283657073839530239259298647171211717957497093595248183396059522022600532756282296587845824733430174378659102610859130733130872585529116936089761043372994956988674384622159026108867841492341493523500969712965144560996867852158911305665535818362516896130307165169738809664491816244436130543438128469554836106801682477709268890321641991830706471548866760067396993419794195850123682867731571207237471861819918869165647542462184678086766276583471915425509035699887218187552004205436221363684138177389148234433103106648079342139906426659266704858215722451362004235356575578634653350375835238263571579228504419258195093995005364686612545135717759878832270423644753285371872972001723898568214136187739350548508087134782411890702526946481723012990408213984732514779988120343311222733961502459013868246943473918777168035693381316041773173073013668762918104896656600735050126553578771401121606340985430275596974310745305718133844612213851489382130108604446185950619201859366759796167938995043800189731460837665707976286854921616299975699832545287484352222946664904708633938560104492637122205433060181794524479902439136853460115246362005387391033913243801019635573362032312368565724651631755325443173083490139884322258630216636749717662594002922680974177440607746487365590860299022225889333030367918963701635850496013354598302868149001391164342122398155556717471287571597811119107885462706675492985774283607557309019364974290098837575737921789300321719341346756765150266750877792457101128954063781940139128409458744125448415971009970306222295666870331533282650463871192959534730504914516878091844037598227795640364008883204777698993906683057401737778761830199267910793607082566935345457856867335442911141265111678041831283469661786941769904091349728260733701974229829813886402296423011115521493769838761933905588687486541390165344676840811614538557940675014042237504915200782137267200751553545577569743688090888054647971671447908095382203245740266670862415197771606292529239958499043087891017161150734758888359884551582180095822554144055376536097813344216711827253103854714922495199028687454816232154119170911797447290872655399669443974470208263397195036783013276545934303702660312364126281223721664382017291273788401131153266841397426936695408674667889469614129308151237488822158048081218821699115745769958140439906425685788999034662845688370780521395658182991029061427036146349046717225940836745883286138199911084096190320959706331230101514922908093184942650696992695630947578455966718628163421116372442607686617083911377293385894061176621623361239421550936234093471882645163906551969646922126555010528901606221469001281425954953927008902630784140269034045770170015596926282367255625024001844427059424012858342557497062138363860572377720852259073779080179769608957524723777223500721135840997873197164464588079146538703628482512674815817036019366027129365666362409339974919639526663143716171432208852625276882730561193014219470885967849386575635273022629767720315509610190956908809040570734532858022554647461399817702648065912709872087833866495275048050788199493494983034795387369464554419983402152420586048273008606395801650830701777193903898418757306892360433595369816325946725085608640448707425590569251665895785735728777635464668060299215590560872988447025742918763980907531893178676013843207113011168741671409775837790497076022134278416753615632162951716422548662175369279089578077441092170061109774653729597508814428946853521034931942120281463093224540984113514962984460593043927632660819428736744427534572696921234703422203970830775732507468276809492550367632987107349335153835828727148253577184896694709144227433198064608134089712045824724268863495522133768752219280803559183701977357085332462243882735957105801227582245738621807634489865074418089515627380513909100644845178600923755195524469252245901140471169324839689923079954472136958339577127137016398991722220509116836129166874667841004087642108098078578694419079893305506458245066727192385452910710160203830989099590272282318659788136851395165411105606572421671876978206217560408275688934482788173584454312110808717717916524153851764052313269799365912644073473870091359481709208754805489288119393798867191711281741107286069733852177653071435031305687642450410996223130980859457265054551209274165754588109890263012402073951973142879852213132976294689414887202162461504288078656973432443200005063084327710740344652502773334145978914556732289813825200189713371549558662941671572115103260968261257966523492628557758670154878022380169047899091270112897608666598364129793698428361444283188096608771179444398712251082753557710539173957015417758118040237400924978484075543302083743992491174349673799111240932816352616596895348652175218527294043038890252240456942483546339312086248175732267551017878473258642195284258210711849819725574733451000090118979145531024363568327232356490918088875433306026906514887208765616132955304915891349083792487272016072715663269362969729710008123452495774337064605079909360318689950029025356955613901079395032177812454458056322267314006494018452065798153949847304490601198296135069307398377782838056905997530372924124743183759416753400946123864655751926106676381397062477625156911007810185810017633253693098857494244389415371493508199162035622153645788717015172624825040044368689350591851797693903247748358238580356845886540749284326121021753796911781041896798894414639760689290427058003216725957494284517997831101644065894481941819150969991639658717766024585374447745111509176186615519765028303009649891299854613385192237271243295972179080343634160436379922432174238645891984004821806581602197982602946581606627759928214171180757916940608840797789027582991161911595754370920848613412559047150348707596499875012221714010619434132347910456942918038113545242438879736635212026845934241438229537039173811645598254045126527525455976363857474957256573065645960110452396359697527508872000850551234524657906542979733353716367518614159474799142518931420572361412007406929950623389875165804717794124278883251524436566412357726930856842335189412995011162133892078381840251349695852269893105097598338840271702350905721385111747315214967154058378365309533715080812632891229293828321364357369589004381565280841688413698204424843572397423172069133785199453081486540355874123322925166192612383369247419657115107117872708362128099312855253267359350062249786688673822379852888196597620280005992015479982683888827435159969924730033260951738489109337557178037828770870509470813849906434847827363319647747497576341425507201957490164478132313280072335260900078301150614895124570886433176880092741132675599701104210580838731387366684104663587563160440157033605551351591875163610690441495422248165602792784437660948499884003893851211224983101394525186649757448105550228146711168747884083440311808437802894094939170748752953133417172468133978063202783961231321506658345843348897621211420852135137339754738577972969368448530758431052570253464601296938332363646510190605650149640605848832465589153107164263726510602298232090688628481494475692321513158628851796956768662684682255814841170186775255798346476691682355706922322603040246870772591897262754064732313730728623099647880904550101760214620432666207540918690668322273887184588846384944053244049895265547877490686940223735922484980946939312155985530730556707493461341855601465609323544642497979395149002832220595182307978357298652160019586811074297109616828341737085264401426189182070305210721709479684200394163858640556704227910355835953029609047910216976358542154692218601401498724784353173006311383648409612590624608428910156993593550941822136340789831653057819064629728023940911904110918755985393223985398748838188402028294349869714841671844883489331579906212099011853100221521504757401115436643084185067742449030147766423035554274702662740994150765113644111192495489590425252760181780728330604325647384298069544163687222393631900042665797258177955603092120729201577972577173539493115543716557486904115005095363238989928669933283911336422266301721344714330142234204775089521108967226509654443497952001160496088736229373648353724435358241222355059023725443919052198498454961621099211439972075781240897570271573536185574137210118401674758437395924733234468180686952676835106054412162516890819188293292955822219775713134350600014294551188534730638836338633251828582619590484039441268770895637899216549623662969903289481835783270707961386140976859880247748549139448420857522225535061938808288889310694447812108741443326000777804188356150165306716075178517501487111130171549885751747419458937620217415060242821978765499460707834388183068274074830847083780482691024684387714980229771301025274260884534792017386361023759834450527268567562729772239327643595621057285561777465967613541561030500821263756172550578828068758448598750474282872928830516825138967610348340691719336394267506406339077291900444431435512747907290216123906147667344587447252505226489931887373952946076136131716492385056515151008289115926943278942563018937861673900952782341720846230087726659387394099363235563711128088079755915402174257104843127266849234452138431057536786114602441190885614741683640848810577286350574757317417984815804835971528928245619986821308217123206274095506378648352948777880313639963173452751785773847932489663335880745145143448288872713445721242529848368068170210567891440583287533032411817259621789813538870025174055591112534053681863303211676027979251947561412403871584356830143067195789424390664152993433071505475296998757362802258332784596544990263594094670127946756419491774287622395236441384083476135091238001150502255712713487289557609706482124933971543860684330519082452686930663935580018656785472068667685903783515239985329523878557036716664725925820212193502584842795345237231746472569295638161926043559513987431684948878400245046731305852979059119936304142794808638387522300159350125980935130798278444577924981847533351129207750515411620413140324973684701465780982430636626746869573059097135176329668253901255975255085580693926683487573386021777960592195831012629179896016262199673332247608670993488362946248947916848415714466420317887929680365471805030714898489456091840317208128669790426113765676382290941746057695588519032420813245967893248425368271467957413692331029316246631939530266867532768375147586565346952645242835150012583351908038063190882452588545428419915854772446680375138078896981845913625311375214111079597286805776054114485386896288570851923118183058822959744339359892066794828398455406171135833671195655942974643237187552120181869789946796490292539695079023087656438935264196745831992526617206715435891578563220426975973088356754926985969922076439676723849019985388668956819659826457474923312156884019469010785950102028808203632770188084706947563035235059530897210460841393385028410687641299344794579278890485642073818151492404667960581038146409031351887732843153136020815484573776300198964309109197074966927088384250805971909731275382064204283679935140536496835817988999216447780389273567215363209685269466408206329795869258906885270090106910634318508762544597736308623945612848963797240649113301843843113866866205014489527244702133419974889286190027742957153897991934326166664742315619399074325745081812167733397813112191317806999934543413326755538318416983780242592792097122880271428478989597693704078322171653953524157876945461085229816048582380417329033163011347078625296555997989519379270204879303513426412317203012907099039991748610055638256746019685634873603864247695646466819070658125427389176358942103820176352118326959819374633312039323006410808232654920480055655135737011960221145000196296865469524577867492330488001655598491272707799097704192895366458490913744074067211646120254102865981345649243048711539600698847355892221516481539447710151505021826068426327808678451394589771987804650369513582702451193131220889976318883744711019178716895762000301074702572651563024728323165391944243134292258614778721767285721587607822213161802164091236298214784595306410715917454462057145208690172402064076432562670621547204099598348891640466263678448922763638921929516978178037837432004237391666236548867741571745400649082267205307562234822729110193967704028401130797339895610914163356648636395689795425250021780086644568500334990560522611193319318309469983253981940948405594284327462968351637494649991573421942753289130885539112919620927839119274287604073615055659835116101895664039919365536513039468743284358465592159902909119415107703779947978563041308020622943632949354467935103852293646876432860904174315218679086976680147676491752360256250395639658347238462321320609755336522417722229699904954594927556512491354638409646077127525733958092245560065436515933442330522003006491052854430333371829864292317611475780795787540237552117975644321950989928270937816766839880907169032884048400813055062109341841490370243004842301203612426534947805705789911930313204452734377827294216871155806352972777145566566636651809154812742266586780151020901677334578737982727928567175685929598224172618911020783436920624859672492523833040412238364752236171685787720846601230869709244423819579020718946085076625733585937136806376486189772795008496997256926817240309001682257917862000946211150226877818743049189132386226196965488531058064241119597923841305436049820604423643644005686383025350597683460047815139116467300159517288401423573996505271868362873913022995086890328558140307679106132170765877028605996857781677770672288303897782025119637317729655775198350970607698726361304121662304834318180733204718736475291768753985299323514887372543180933516389969795177884968194640401652787339501626446029959438840746971046868206856635899365879141857131317232666047914383917331492912778667413251140023164312723724532053361365880952126051105078756715651649035468644737016316399111748872222365195484721123388106783774849608500502913220015863824159671148326943520490903805819591497100446150099272264402066859681347727404911408946906842035612243072562878731962846639431144100949269568442967707966654942694934519029277957611095156592964394329949188677171234170070038212258995088462149784461377550540771392833612937538377064306392998541038064836630451586222227766303860726077335587342559095728775900021710080325514989769905379613271578031360875768397891317244601001672171566094694414491963869899254999696404639861372998213359120363912011728866360534227154507574338407807756078424742533164466423421427606375770440153465934917360007021831312852778463586976760738310487753054255948230848120670521894505098336296263289407597768117520459530289986040816322988042036153613255047095075983666856571487985560189568784204388775433371119292334365395016718698676979568600043754081681439162726515708309373912488008867141484173135106690953469633390062300995710547703604158872949668326334521149004533931314889922864218699137833876770159171057506415552935731672171377528438370506249995883093108453515580182106175644831324193000635774771951575924253276584398685055170239282566593119669970253320937177168825241481052594436900200066588427156746651697370923739112158928648450338660889828180814217992843210545340813154962275198401475798818912807355455758253164199600441394504909319596730394913677836515384055822308085634585448211057339568345145561463031862903238100378085380186035048632682667490325214541145665970599024561595811098931623458584502608947338363702734552756579797008570619215576999518253021029528892270416739976891447837476950246983134551221565497268248842235634205723776901727998857483770199817566425022595884492429133100580526996150712056574197180848433234706284313865670441970409492215238551490429591457026682137867542954934380441020069300539710666340531800991663378094541882092131852249995818383477690091462118573167670346780636217392067537578029176758875967353460540390887691723641590362443403880838363626456411431843504695499848263926196602729897043466337354901134905241693841882358483047584659144773872937049862689165725369956946960980073871694175386932840647454463653844710148314382221287890445546830687421514010506676354313879988068425148922786453951099778876013437309861483425382797591742449539330518129690269692106761302108669697282210409168433459058259522479557956299661389324191607265969574929376407440960531192936462994412457448533253649683530912808980943603638649840778976240152110471743692837170545290474915258312420978834908993274029127179830504827622465374579697559534198631136400010597539476202147368872126079667653653825906517150420717218733124872922771580570418393307868836644777952482935271697380618225487003584097747866138173170056091849224001233419615797802837553751474445128284599766804906513968602188389870051224473693810007142573499044144301892718295461204614958615368952726369706576057698984447176577756981047010513746079796015905451112329554187505759620758155312740891337535851059854987778382924301793758388535238670045806310664044836942254283159286830809538678322324021959801015600426267720217287627037419698551714502387155951220061658474073231513681317477970751210420165077994804420660272373405701641644413350682882739631621170601797694151988961051049464131588231147392735551816732164215713234354797032707268976251008721102806442926678410004048685788984501016645430104278196474653146037590124342034612035653250536175631028273006669620865512383675506772479526357383819781737581848479236188276329302339058904150381595969196395914151825996918760219346052128727992625844517811438385549828158628999680496349324605726911080024857883925061788541353138723159579957821764951724546853543761382159347001194840949778912714324529952765442164222343020678841973908351427566929839763017075524847588415800928845483279092048786525002135507136822257558762362817464607750588449240321035355964203717318552950715710065177598380393172779487143422929093977274726194648152653426026572275351818334862422104513935156003757329686490783314217612011319527225156989788219823569104147614249326148377200418746874438484192570627350596039098449851095964387465950681202039769536632346445268144938241838491295275283708130525218541756164103937963185089064993420487629014046343298056715899654782122444655213899718818155562243902985794696564427544078114413144282149395436464512006939614418347181846372248565950220066224159561454847354931547963496835233438133527491377144064442323384203277425422835270875502310561304790107769907595796318291453868890400109292423853896471196420068549851243038728449899522731592449182676190841898899119190812699705088858425494727166002681640271152960053510119129496413573313450287149892287302989014933756114559768164618835916576194504121866850767134384792887484832786450219300478462413057057304199265815717853468967628061663290879177600430724799352736600424188438169354695867491059937123979573812495163865220914608666072373072473296245084348369947943667076901370880372426070498457931619312284816419101787143775296995987295875278557730510867068029124654667374807402481327365313373917850290974660834095474622807119506237765783912125893110724525260577411256353415782605250457469999831017663807052097882436138670915215872002356858784802814751150305871019027345913819102151710986567686592077481351975086758707085320809929425766901988304008586990456486219860902435988935365289843668637306462526314730706595235392955132899838399459865879732529850037259493468908152630163242325692718508836041042559743829973214454853345181668857924465097797896442635904106270348964642731075409293394226799181797608205106140122657440164935238497545977036600816953229462737652975721762031953179270355972472115061215548522077690978247080698104715713683453135243309880134737565003485898208460181792841756776080355034293051854644473968941209252140869907684692351363983858620192827883274006313262391388604106126718654781657066906102585234500929305254045322799252012769033316317293631728131434579623529919216632835248457981686627087908277337746170274213891031326483414964809861795634390242747570775778147482683989053158158528982626613390465498395907153125650585955125449352670916130668044388957812724584027629557350024374868506227707155831298856433834734956373982833158070358731078978810958851971879536359420009024839197350445889458645146196837783056321970818099623702416571501385614326817479756146308612339544451671719006192072252396032605167111445508281808980108769272329538581935665451878325582331923258982199881554632020180859028091525995640375354425518841429890643192361878040880399039531212143887369547298478578144729876517594830666779208678488772916775806042023588705157485089308863699584160417706477216875837191039725689080897605943723164545929594986401195169777552035792895240940091862504433732882970696506857006700521069820817074131569583800551744824445669114208766059339878186049587114735839308711930260860792443701286637001557960281660887044434278389357776867054373315629305911561500253441372204266237536992548440126377841003489593511503733511743242466272254069354829042861772797624821595249164796353363907443630980987214508041448690211967243413524074759722327120743665469275883412414904353065247683791910977969521988765168354702681974476620277213802304616696847504444488285652201973105570680627415727001085775053672427366101112461712365545810291944507745900750552937980694876287031986339825805635442159637582409627050011230797612052895369796381768448752192693473155588886362622197574087543773202299720894971880177572996436125847637882549230996784370964418498239922558747073923091943221063008850196868702640007366630385242406444535380150213452257927605868280768451472874562290339716962608454801051861613983675248041493775615350048759068643763774391265710494590843205620427529420337604113199934679175810413508987593952680713392220560266829783746397185201455673222821454122216284388745775596570335840033435028310121756308768419592756628038684271595192548349095562697056440269394122480694253391452600475907971119236991754973459025966420527643303148443613400871566946251657438708010087455687150633672995587501818822111052467485701255264967075473183645914107286646373334661249815624272407963886481306927046324979802493855244287265494475722430510231547779417380655439144436576738034676463955759754697712917657096627120157990915044756159199410949774968821845612075351340074009895366989078403544139004892171891598042878935245156644847879026400842101968599866582022368907671237950796634995333233275307420933345224257007861739674231265314308281924288106018871480507049618329435247514990932310781722857147360647665462400014686652066570409394649494105714505554140788327613525013277273129730858217826880515239578741329268216140206552700570972617653676295813484860586912920059451282330916593370723540908311815370137778088561637259919023612305698724951535847470096028110766013852962160343767648308228756242201558944356477645430512360211984684712999794934234440316699688918017375438660643726767378104373189248367325119567418255399199411198342764356395326647416103072929162184373089030039659144294217328794237529756358176806711652450059226239026049062023473444976610733347668190514153505764709278412933616449985265586655787858367659721969594407516402999729356624593998490436798857095364731521049502266905184026237165251438283899658223635964486427772970472331097715654312949784839980984376850753523578458646157564348470648791325873920538550703093985655215153741239785144178837801249211489740766002272445807692199095190523521667956217072992102397513716666241838363696290854367690882213302695080456573087089241599346420793254224701117095123984767381986660901480705262255373670727496503856507448285493438032419817931503648405912960409249805556873924413307163937869773931072435999165915865472066845013415520928539725335280049004715577178026938773676566149500840903228250419424281190105093514711403153241376793162180561480369289009271034042675348121182149846897782490134223234836713792861282765591811929882195867470610676774479454557979529952707030487924142214935477466795794680076533575405315523785456728421286725768650774213599397637307983407706389005463444390243239001680457695238623397765977828004362608682251688509479665805378740839870784048048462822535607547908470905773034110039240999606667930180396500114224542010960151146227733453486088009421049714244770348191215997499313137330659642681356341027926730188720263666562020109188668357867128554041628444991187297497128923369078123952410846636789254006679538738175649211480168452181093873832422452736848216765373939537771293440780106854776705042983807617253010318854320295290859032891764675581195219140603159901789466844408655892866311815507829304362934710766713604251123989396225457796220448487589164782413499945244965950900543658002323990548242986166985480677481810851242606655616917460101658374162599643494538844336164135090802304931253425532228087177857286093356609550608506868177691518087054987356682270023639289835995807144984645672901460504466346798857707366381049005226001175217113564336331363609770015343657718632810210156680097964082546336994050620847013529246432769557725845356892295587173979091880813127662792597611517678762917835205486108387398085473058935034433318838516112556083614791177338935432936306164919471099856722715209837559210384686585892943449047237481456145519499921589870897751598457908898689394634714137381363681144022460616102133484127624659050110593629031978819756283268670256246317326077101214664397545849923198026072987291029328805410692623995175414148550048177469696319871157212316744354873185169899099783921036396403424101326526396342099594211857977494497788006123129030803519942740452150027887060583416459838996928050520419879544655751531995965880308532419397962013212705081558610959103492563552539929266304063556995782712660679195709409164825900941055159107668272538509167736426024244348313515581255369879133588957390745989569984901646800526860978281812693211325510906183619161793471588196605714958808672158312255157516938753644665047795014918473293262022546406225928483211776401083355586140042975810326067744934357623740264899112768187958704035560161371886414148347159472792213964587614656522178190711554376536327867894025404432482510704928880362818681936129125495454357181737484372172462907551656957664798739028870432114902206954788226460569846102822626006725010004046530520473677031268066026669525939812849342391297015124261681404483652999609087090657228318055400747361258564312161919717879438561363461711480719285392347027697736850897679851266672372081008170299931272369087306042848835528098098227218170940583988416173124454650390499962333654120653468350312462463329965483670272164436631568569415435348157494537126102863830328803272136537106834886171689436597468633881342972869206702492418410340161337650893931417715314882918115001476627652312487273276879739889718243969969710658555508603784160206559309446015610794764113696326129807146539576942466397337595785825996612427968600312546935765872934565160575076695864821995525840632994709274320043801048524466469994300803392567215612782881556817979281391457625374376187345488051858961157637350892299825777775977569234307191038542793329809894431493181069251665940264914428657215495056263428941930660757709393260778589954191172288609255484289172820707812340155817800425474721126850757877717188947968774496409179739480721311807687025345998634603923521635446400946340940663745101887911062520006187310539914645521224543372292928513066048711681993779415204004422543718462739399717848181253422838302733980392588408222770229115259690750793849716789831923544818073419488904192104108541843826333147670719579314049969925032336681461781356244564844781240281828530895416420034143098264665482968214053497273023466090907052571266125186747502203388015405433090836134983387424381027292475489216335234104522119096286791725311571744391825190935593878998291991354233118498602095143519050632392644707052004790866360871617627751666243993095333178217967391352887382363339703836622991920646458431716461298046670409284070415106902754560883095775790440724738348114584816982867166019287754381095346832036329914492867074289781944398317118884208207436533432906972747891046085955934596143786215392298939711279925819162009209669181261038326133419971083556894392010978833474263075999597357811021551443178852106524480315768581906885926895689925581852826364448398123474834126112738911668100104897244040097555892241574231122524303283858840398835653252823031332857391487251627859926686917540975455891880665260973146052781294537976602859934125057337449669969238585881737133476275926708782479763527732857630495081564630267894763298401031108929764837907284532745227293274650456655125411154296536692580507567606262514262725812584385380339953117411949965856456005631855598216279126359921130927124048979901454557521224325998029122917903467393662548219627359374062100951100334612631306909269555329676428400139093337907452948623049308918076678867839996872185280233623492190312560844542386563959340265901871122245939694520453183098222216410475545556289452099842182864043517613093243527976703036977243099389542316507737337591606935881190343990345243136001551301628484435146961342978135684539601350857469355296149312511108953283066677608626631221335910854626537993587665795052673327060064496134188922807992010198279243618617818063216294408276693760996313610473614067599811375725998154388222868311904708160391061576268729375338438298203015052538261293596263278539532263586095681066656566674934209015798563483573403611515725378592764199987835097508639107718803441055510492735252054635743604880919016278232310950646331698352391133966617629828597999870443844017446509585030446992523350952383451192123031573560912352800907538723485610852581398823988865203385112453383075010701631572810240198550110640607867810499429862266963204558202575273220220995620566134719693251420633482210811192246769737221778996269997884773089344799515554147386162941995504456388672692043153493225026637251575054711594630639714733572980324959117556814133976326458098019633426123142916096928001523025150443144030000106342025224094152620973091563102171648242702158686410876840378254722222072623703932436940891105327141029147229457943356358519752149339593961009626671205179566826927659519322155670096579498619926148979096589402556914891814212726640632103496679052928162248905861873082238909987547932239077571535115905234987666997763926974131462009492126099987329128421120890125883774271384996659579718768637185403751399378206777641134065611638844127883471198223641733717561420642116477506652379297042996885357274929216128050901811519353987269516101810791872543328768293855357791711120421014509521897605542985009307867911469400693186533652553301209186436353474438248973758027849948863777989982500435668433567891952343515536556721832155912216384266891547813778139370774472179890583866869759201418773272944142579329504695473881468613609354134854091860464833871683131843261903438523845704577640891799555007812985523573913634605421561354137113253886521409624636520349582309228186660155389361207456237191874837501574954899432317241145688617085705949770535625445227397790429891447112004168304552326549181107916389443432339065211713857099576286127636672661490521915229397436889264184224752512378374472492332731060171764409932525659293900557822254333547095300799306182784194343678280329920246483148308095488739478950465278008325095155021051586850710131963911982563079880914452495046796916454781856796037036043013060385232720328832415369756060109824741717124067355669876237097333892312014563463365497712297823421389875608881407421254141543364170072792045428705584141922763105424752987080316743826543399109065552210495076865246856810410590812784659119233097935593143834760678078750444526274981398084568902500058727279043126469805109324757120167981676905291184501883007399989035349150011239867682569002386046108685190940645936045644799217597456321400508284774807898447427763300607494498638824065365618186576735490431246344599960388946998184482631928667827823027237763347310112672566031657980943671667729466480157821855056956821982695397300237135444376422177435973903729326589618584937318874801429935143915279755162719368065100538244086430650490484439730714995936027013224905211871353264476705763012207579194174567319094133333520522257664590450045835928654171764906770611806666851138182177709237391320462942186936845560683883020731691150007456515024479739901277704747147887933862173039531364658151973538466216143263793093220405193467764413794891937214311832450042956496153227950028548662126487731750597165642373585380059656878505262882130909030849018622396968725139586983101893431826558039282321395420184523359034216425496862835940882875722355118017679805140735907820228863789625873086707090572536719264822117528811966207860886158479537754271563737453073934461187940169722239920451437417893398895596844660001751257412889618106080110148794053730646347442544413728722557346112749145932811557417216926501740920858457971599527265714274799455988637222396585943405959596127308518043674667659834567884788332807723626923764693586924264076924016171756052339303431765691495613812853965950158379343960057570731950930513164541620182278531968561620075486742505523352945281238457526627064432088901010196083059249599719863465746666409320299902819709497095354111472947737806368501752342369907562122695764335228627951318385673451177709518767599610563698277436542788540233893677413787009875952469415324136448237075147977744979171459962352717990051979256671681878829560461583045088309925628081638207235829909733293276755295509093203534625021203470563160856517652441925050225962956164186019727970818699350083763916303974465305964679509629043734786316123588251608440432962848771462259532210511047419286772445709989829556363820179695205701874767192645967297839872003338690058543346062310818527242526348404914266697835173416488632614681766362146665730351219844762995921927750435764999325642217954309846426584224510288981897598216248137612483960457432782331024072519639541340826862910366198385689541442409312070473688416449823193708225303869732473479202229505397776345473718986699433771084666911904404743947772659153177774944679827189001851199404446383115700371932012353381218146948980007790925121458538872248939254704304773963043591445128349993346976060956873471353457754699921887599470501893260323705196662997729622174489841672867764578370434778184047866404313238283022054475387008571127447932907832560507659608076947952488944001034274388239883658001792675747023864184316506125664107031612336248742216018818898498001910811150070317525330181214049145445606669573867624281258717150669983281636183271849261135572443282371826434459321548509041562614356965369233542524002427628627018529866060853445059434838720208946368455314223358230261347986033793475419775122508049742147564219568655715742918708189339258650217141402773621246742697707371297390623858572926289843915387184302194657314968552583329616809132726787457251702554157464906589622836357942786765278374712087984159339022937430610041617664951347014711190397193872370991478662114697965809827198901039606515513442401964044383296188292514270496076665704377630122061188433667821131450790252622210161841616562809991559321241945788937030213065539981622466080619837553499876673977595931968145746326252554695509465606818665235513424143207258068512963124858741975629831696635712544723291734896470172341211773654219804472983541253530646126810115086723600446130258434417126738279898867037773148883589417946202608722140196910760306022403929130159778207573574873253400101350113357954089988021600629893724533260005305311329982670031093501939867051738346450942360159235011560111069060787441118343942766011602359155681635256837514884376149821208912843464353128914209289289881742434947834913470324382871218439463550408033826016344671743909789080546095720664506803073568704527206470713656183587839030167519706927514965118504272642791779105685750213300987149491698296723153023108570202236349712758263993745071283366947269743198561876948188593673541855544210620057441341198975696375114244062270619445302103324363334419731557142656877555302611054602630515046380610353785004007143211318312482325109334559056643653921540934910259510536546482934664780385527053231777435803494658110583288402578138300976070152714447792284806928314640105561403274149233628925396122156862624999055610057745807904513239088634812013730675829830300317405853399714559887345388005761543365634220170481088934306249934164419688640058475666021912059204449733796882294684122535507849486081575574840430194970334262831996371787696423901986095371673878593012584417805043927809661678119951676314830927252958927971141733201113301436130350471838488360567479074227690271969816678182068593016255518328131233705788624520013540870582633356787004399077291404299615062369952415020173223666607356132178708641032293550705710466717688181228452521046114179103742095927542929870632914812962532268579204832300679815666382433926662717581629207117676318739437020682441791791429994227908323453438105194775532643720061829135655575549877104518489734031709222407540361586896802409233764887885042365572798296941948201353425810043429132090694525115681175743569816530194162646165666544248942375193181173353009904382339753699556938800968544411879941812764912377429719412549398957198845208900669406665179404646050448589608748410000338400830661354987041322044510847346220609559940947891912755189839442948311189238906967419022825188638884274186974183587454694536839344344271897840305995409176659750683968050209333590919010182653713009781620656096240278524410759228521662653505887833380536630394622216870416067824778657012779424344566232450228483770523921873062403522133297388936223972656570825070023211272180343070162441422915324536680070622565096396975879307522313154070418663018590216547765840278227311019484293690307487243369024022435357803172976346034752396606048644946880312754366007813704990209145673159985222421679521244331079937094256503269629138794194845775168697807756514353709081345391342103796282236806636511398233620416110814877035720097398187593286662641494569557379568292998580593570675521743578500034170084887368588138994955429069529061345769622366045707655124431546629201985591739542735655745160528606242581869082466634007611334483503991923722900250928618077371821794605345528791663799825128505558388175679317125305206230212195617668761289851748956389330005857734803087528244166350454520129461327990077993142661433497870182531308903737917389605191738028172934823013660706238763885715257750717700395358681472670847680863231757368812193187249682350918924034722357885299655808778000242705998204232329372199193026883223926072686539459502970073876426115126179426536315795128998799684616871112208067394739671787980900596063640198091312193138004588296421459800892912777660883342379490506855237679054506277349118171720721654677210591636790719769497583165002658636169222767136804349361498007868593919029406619595550575489995161514938442145043555661741566679395586965830069823140853842627821619114873323738162112643742544962101019232068778609325095362027615666325730655667401023566352576408444759835438231899146872048383601972856629842479580536262738642514655288355939775415911834700838967883602428582527681346648342208573534591829627401316764782888651880580748049660359909377782074128178321290753758281810431621299657024828075739494179601235822492172739665993678680526045842815700666902424972218972946501679144256017158881300824932320212978139965110046849699714167561097179683987900560771241847605546126456503231881558208776252388571983478687624016551934059916215774625065361097778921077729756141281504941899415273760034195239764106359342151575797218829355691667767603512670156767109298889887893282488872683006085034023573234828286008875325788430107102168032335279150801535166995005601177547648654182445557234978434787014898124159889485590050603119850740577005870974005137282485403878750516491904809033516732676265293204663320253118583024646038112307049164273238654615540625072742975268771257805685510863868897549976291435904027270487730178684433158479106398435659008380331747668238442618757388967408080729315655000588471400597003702999558659863887147056119338925078910263030068941669746697675420273189413761261376018703196545854834899855360659882634323008352195464903953791884979867322084010915288552609703002113089816105062371955442924156735112851164426163775866842845945278967099407380589439431975356605209916732293509815497076240753102265815064555269660397919946036973850677307073269761605683889064145147585487661863174676262486657417159471350355273916868545493209801336722914016139289607407677804741963981420198224073932762877356682220351029672105408927903277962454345399008128788797849351812776472304394825099471991288458074457827509144675406105139353579179485243832925844352033126185050210845019733372568959613949237447932421951230055412162744740583927329230541212982619031854931931584722592732907481905080063423284401031243256344308354202099131821131941021410012513774506526551464448554541676216398419690355361587378415386776408744881699044777555573878341443707015290482654272932481949545358827422687785684147346052858066642040203090919512943272357082504676869736618407348209189363231417463665259956753162315425952743124369908724713669736125940009751215422000034173701510022298013071207419058052279828880895275841733101218553247223671169584519927030285305080482427595463103229195242360557695589471412575642813424070460104347670083030479016064744532888981547403434387939186225990894840632420160531171284606449343388922056113897332385285037361307631133249102574866442512304010139272304414854751735179763466768250152417344592829123573977428441572709817609218783666978861150926457580273731693574847672672622961575156905570340525984520877944726787227406940369293370063550003162697539677956174681342823783419013050121543561651846126173154882626216502058115566747090994877139486994758489622225922361330403725109043934453559096773226250736165084279384365472562607034205382446954249093744022750527415435966897019863237647638114193669379376130669818525323541108912890277996200067194358232516269170984901931120334507133209393066299224770617596913106293891200065978499009771034229628822952125600752711566232113257247786969220809829618096521610664603149909044520033868450883631646886043392890816818340875419078552028827506019073510217750373184927532707444042914623512288323733070762601473452606298702695728808990759158720660388031997131701930858585399677465931971000063971170961126501963998592387535978012915590739334156973096121584538380502545435003699871804571380836016317950080819313615524051852534036734852297931606918956818950477073153526344135188853268855987768126582267242171492066152807754790427417651446800443614516945056212287074729092216906040590784345045481350123942109225372464738399950899774403475512367779507725510783386712348142328920008104716299641257289353074557520733408932673355209546516740482053636670568430083032412671980210712371674869747721193286366574479647637451682879338478657457265165021509842830831264953450488200187923078415852314872641003172964668862456996845237731022753030399731321780962484306809578480745976459295462217284518963868180713508473915157075799999078347780273829853950492402598712574449123337591109258661429533996288723072288680399958390724818537958710963947954436155634875687404306161572161736239296344577184788116549736723851676851873342031182817729296269626364476517182980418269539938422111277816007286391181825693903425534462673955208166821784298598795685265535348444125795122825966586185014427187379271820025778735676465841004014837525169120465362882234125435651764477890367021629633050066414441515869525085749773017703500297509564808435991042388745169422580487910131453315743559622388624959608882104870766867259312510991251878741732363675897407480415279475909267114191852481889421834365207513591741409626273205193027355460954148171116782212354101762190089589703144466131694903311374375694519495165172321518649632878051090005454462354605024473363411917196974102307091747538056209409695673468301937912602134404566397619439864913470459229519940139933248993308980352292824879825097277717078292247008979298481577597641691075904364202572267807616110996045161858119655190809669042577974385725247013623806431906933531822372819684613451133618476401918404984297418075576434871218470856343482095869868979055759408755281484680790679454196359502951482932167862151353016037302517514858307731251135162633598478187377781209415731293700163164554773096523579026241777767485852415372176635368438479916858918505043036551535742556963753726418449712881496816679719071976463640156181920294771867871384154034177914688873129075295891827654114915196740451788910928632484308792114802355266737459144808430600473809202607391516313991855723759538630524462065814047329163845203813924960862206714793161516873615008299688439174226742441343082626727973404662222524435657176178438692092475819069574119430331985421765207048071388835969931719112738780473897457951582439812811734960378668087723808976576072978989492799252323937925566869148687611346051598691768538780522898369195338446177144869011031133553183608263343927524066404574882443344565574991244234818067020395404721534054539295004733455687644003563969301202165415497318358202676224547472928431090324681157133371587458273536192288237033539964021504062449469394879358824297374451148536041589795568366223612933692372337865681177145885449886158743039478349636686360156833369932916050895659367852639126356727840760147777083610957882147905353139990082112958654371902012720370827715667687190972066116787491109234802425397862079875858082646273662659386299619338825245722707336918718674499792671176397218248328387974347054900250784186285478128671499736201213286982426271467360383032856200305858125994058946266158560673934799911287994247523690792975621468531288329121684434596986336403956321719783055377045820215469148691837430797256345910619878876782442606161115901660292918421934766600541602961907510010613837397671369091631294130056966326371545792487454446904642864762931125078903264204570017391886330789821407955583063097981616477583473795801557239429835205204293488382505906700223403455271376743209642872906346289689425274617110983119611410515429016528633445845031730642447656220163058454554305824085821504711708531335101333720303319181339577432402890369475702245224048801014960482372563785212190406652143030494457658988278161402782395038183740923932155449296829651027763223983269887869929520790163669328353958825442587542981721425405398744772423249175650061817026736754673831909921537853544698124833661112653177042230079763985495257730991056691023852006622810649339909390189471680991841328226367290815699726085912938726255097862918494162859428805649245602761868463243917627380835883235765373492930384919748349706641504451934866282969054708890042256575153384434240739697090427913198116309826225661095108928412037696413820403407574079871033273243947448078999825257131604789874536781550489633685464293462219407923580371193884737116244251543502000930809669704153886316852769065020576067404453129219675811836564915451072442614908545112740183137074932183529975173557469470087577155663053373376488396839055422065291385557149881309117478745390695282468403681740797731060219893202700936565665483245050496690383797596627448261915487234310152310853335397805381877359592745868071710622307780170209850480458118324016986812676526775055047399516612573525824954659448836964396439427319350192500214693670878104680188116541608701167317542715993948982697327764739381195416277950056107446032685507321874955279613286477441851156345751476077016890576828839610148151955765572341313076766864954400303104215658448776425912918775684241895906736306982127210895457752235920636682420286105084185407281356748942184208728511771659420007516352928062276657046018043415764242883298405383519819674191689441628417070368012742864242579340360483848837709578514365746626445495345872226931562592039958153960547439959245689729982642935216753797705833271179713975839186307600406717812579435572352570494997285658837696157348431658384468897116184365490656013170681140403687913103997111366025616800918491930575439642900869231536110740609845547391084067835186822319892452345055282161233098317430062455932246483643618371627626991021091220965991387058211951731601804381154749895463600058243305430480578114093078800968343080562277474243664640577769361055234465785964629191510308730236045920057549376842345849244935050420316669350668858951530902669501681158979834684977115677840390422685083100298495942434619136484963674458186792859101077883149631090457562704538099261617502880361192837290392457293213029890216733666161046718760665942361007551119735193021993753153601041985990462613459820184351243685094028239171214731238988849562812909765275741878335840188049520530062090461866516276646292067253542696786867690713148869237222042687908809330742293251537094817463420552808024842070661300687881934443336049442970879810034283652540376000408568413790151669243273105610240022111863980711852574585022491460554877507129155932922137102491012731238074820435060461545614209740429609962870493456715965018431476750539249764420937922068018953862528254137609978592744224740829770772192451542099129621318226447728123487741788235300601275628783349260412280632065665714598915602317385380497819148402055756894521101096928020543601630031007219563092664522127855293018091727402313914054622678340793888705947228855711827642639159255709973599312614625167911749185904032595901011501038635045561467795897202242299238630248811412597368622332580328143440970856372767650389831441401881011655227593599010801801996963691154786937321717682749766669404145194578613138314625731099008553244155185515653925371423921337166400045840041706275504914106465293819116958859108435606531407470528955144590909788293362627480662125435234460420938915099429470148874952609111605558582399230798957446174469436795413428985571207400298020113249053584559507601162485859667460828534335445522202219465214403236238240404097569181701112460556685834734046137558314909388665847355717883235616278092783608095784893810539946812390399529287151597500639594433323811218550002123890028644150974106721401614507421209670395397670212987114510414527486946866465516356029566656539718845098050042236432801354852199997142543336378930243707550535368911086931882698867771622193625237847133667190630310552142927678227756059891366335161903237038285619391336043638146231735821481342263363792903091689011303527554780246701147549539663385350183251875474353478897519906681947017474833164030548459750072896894169749007067767116303898298704151530331046190866270461380793219944839162772067055984875181324117069460813219134173736584322587259011489247194888958571070502320572658213343771161872129535953575932763224580942067372766688601951488061681235647566608855332714974378087353236337502236764057794918215348144307328084541177253962202207809601138204577522900558406364473053370871774147259342163791579695716337875397741835115220806167335233147142610554266326995855625425763656599223895991419682904304930229200881083162360131403915613448023677341333293709791735302495147931084362706603651692265172434091661415063836231092122860271574541754843850771727598561007969459004886396237582218418697426513861767789366603594740275777187040070798454313137115770743415571000815441890015584040695765162293176503099664348096235284235217789377660315199609547626559678342378241876214243404635495909316709952568664731620804228753849249006684760272700802100392497391557578558012470116564159496158780270888110697081430909558694986397064410710252363431754852515716912160633241849754748473802477529055568826298564534370266254422006106501724677939985151233400848566876021922959918212949536782151588017195918026749883435180439100373155611085138089844796883218025957709243457432008612351375317797794505690712206596888216040745805030419757128912615726454838728466481725214773644795387368687015594397920265731420615913318296220752364676204236024204190725990898420833440302384845710084800386735815023744075912585880227072332815776062796536407820245111974640160922360061758329393564054647348923572125275445075191083596668519549461621370343045345517676249354589800114594068137102140459920390293859530036660443045371896477239688023942200514043327801985138214850581909966904636038862361731000297378405900184469749975542830538680052425946053101618270973789768503439628566648905267774307275582215879367852825341069329879128896138623862715241691625891574482082207747026975337219258776166743504688161646126448678780203374419545519985603984681420250994929837355550834096863549135777964689962986103339677585545555013791475167983306436797564439082935837720000614690959259961383027993083007438023884454818370314909238906866408140759600282959135804806031196880354062169550804769714915157070777115913734678716499904145149557107866300904926343800587665875565651830089687501488534204083665813502572005886951359834103920917833543548701040306227465730522392446868318920100311514858850881952722416917560687097856722194932992121576767033779031218246735529925776437799158675444520453482212747402065140110322755452037251091899612628254045284338101654976765525274968035195143036493738219164915768818987389981725228800137409492089546414063372676109856779216419935650929093214315054541474517179797976239059624023767674311566222788625453355599480185740237002151456387909330651591523895174078219679971117585738463307915703411692310809348181476837217638237698777773746456052666318790567921220159035925703811541816859403758488850162625897554803216480662505903025559931137059108010485127571662732366954972180524923523712125714508617665385357036049371890849795639410180013773113621495462242214013780755468323109894879764154651060068806796071842120132861554160639208117625650819370321857486547212601137051269937099842253460007031576029713673362202157065492018156840335882231065118438548390492816396234740762687235522731292336745074917899416655897249926510352514747163527097884849197421699396307440697236892973176095601178619891737107191039439418555355060818871947054855813416243229618800072438249008366483992251770506054862157199029965131656286238455347045399864314412001899042728407203451695550557372846265256919984890588292126572013790692534116113199212753702503435627901796372936950155147565491219735068698599586150050660330778949691635016986928083316763089749858610840129929592938589736917068971366632732029969783554853890426634435616564445770135195884054015138932373691985338323005435835840052744338218317135694396451151665112528787280581993149768906537293303696354197897693308769449482170124627566425881716425414575645111088958852540005587249893102822273489743962842427535447788383261743134032452591236856564171693850751960851807956312876093433463285754056854348206554314654108986658930034171969848694148813333249333845220354425691901354372982755282097613913353867675067206885538995967972775199461101106952687638945510199266032553814162214492079927118057427457131897396856077580990836373973674996249416547985225664245875790473259550359491736928341008985482568613766091259015156068249244188951099742706540740114598802117730473319086291802357358770293640602268980210213324085318908769814336616649330318399016028732081465179687072732773101866610985860489399933669355063387708803409744547749927739998727624892292146687938179476419101652300840138121097849705887536416547986852458716898603221637175852204065482894849925948033842530172292499117295559646711146719288705984890148879563957372263077939658241462335913112975409944283477202294931917538161106452813109713957728991074322092088565015518869230906393539520768287266927196895632281382342926273022739586373545802178845783192403762177937956021621985654331618276111485642514190330790961082457389102572939253086621779439149083793797260935997225641037527218415574614976759716928222195494371345505819167292383218897574197514611203657055094695542484108334666932071471044535233971856050129341385324507095054097361982442806005474632703727864508423530976959556685021167511594787754469752287978276858449291107180377878231217825213125925733876808117271912142129537682412770669855070422388179011372115629203718273061364438332797693382130781007835653361085540219300067877865861174725020995260416812247394966008782970530458368427702611442218998733708220209450185712198890131838941603805032802801337714617912005295238476933816033027062395514612418620067097199262516172531830386583483223849924395931879252876291026236805416354162231879601650514499862535381654082441252310466337883778992343940438094737733915163382497548663558590659016940383463302278675250713308244966396177753365529926086807546447919529825269703815833906163324295755090081382148630654719998312765756437675724761845944038030859708591032639391331444760004985578703343244137076608826641929601740139930175279763523981118298366170706447402196550090395768958706533582857182919663070213212185849868420214525699560928990367238453832050502800384973368437162818959392606884383804470089209889657817114587657824137968136683087149801542051412249610279231452373091387252901383120943885176989925783520798420515939004454065516376187939206791269663878652989571317307695423705572798352124676905115329513815073099894417358478794990732305974005309311478979534690741764957814509586391886632793555848242268070711529607131165845662023021925605945290802792193859848137796922276856211031165711042228330914996796627862753324013986801306259658238040164666807730198559872007438742413445379862317241513161002869419873162463438025352676168274079611178701037507135550515372894613895177666227778503567802928050158153029174815707941706889325754869295520789172431501024977441802146703606192866348255230323471882288155489203920268961814869689447182504981940604440844749285112798737993775352183503057371627516606055541679404270951186000444539379981850522834444300885180860250712774711841566544975652144022557931609439467588827794242352504570229101413587942470440238058298417953878027370835636410836508215059922619175340905364948306997726880137644074973836935570850060256124697889578326246358644985164297098448730526970933685627318250593844280850286943209748948969516225398161958736789711418243003079096238005071113971424065599841463564276543308452397503845432981023267923103362397437478970989478875851883690992362823109337404026914400700651116373964314541778356865476913417066613668630982439456757833951816565086922640075167794458530662581721434953436818898143966554960082881740662473250212118289408504909286668598797704410373736252960528962915031250344675008245356021442625913517259618564988170022183568854766378579286523575179923845435866545178063116052400558192346736482249467672257152684252210563579755710712149498163500427052766744188856914662792354248250609756474732007679158877911760269073571382360953244589627538287004245795881186432840024547272534199165490242743683899173844887553247864801444181576427769917163458277761475247682754504190673900279370399910079069167163979102665312883672649172508873364932208280418278338676315747389100987136247302581197392419106641002285551471339517323120880542817845432982279789789703433172596291199927182691783863317831737530162553113906725841019221614287427198505766575909404444558967538825312454590429300479217085135788103121407055658831749588068127365840916875327386022724064187538970433604019475686105596402069388762744033338191999305231015187680916013261111225271133384601995370499547858879873138114636000519116077868104601601269605802709233343753054498522819301515415925168982389946990686451233132493679857716463864044299918068040483598282623594766223937446316546267518352046444897561439387398303764643336954596877165726400350882063097323972507321176804229370786918604057393209856051092341832657967086439391396592887480423705890855152035391171308518371812228971440189004467091882665161280864613069156887686257463649329467925079738687998963143484522691179308627383013171146317114740870060102581163916789312354423453371182980621959073891308568257320034807773063290061778482574126000142453354076526272937752999260857891718384033606614554441685794683866489881488791406108055558808466607160251475032821334220068469537882582179132136471655875421518928747488892574624026866300852895669515205293562088213771549503776185751499413329684255181580777048367717929413543611457511897586616656084608812948891691475756696614360652945697516963143090814433592578645360849180927904417113210653751628620171142799618293574844278855319279576038997021445222143721223432897506521961328532678900249988377895120885684454413718527357261096888586468303107409558716765021628262072321428483460975232652223358253575817338582275351001738988840520907973873178834625798556874017166822595304585278456326359599374515985911440795275853064469510091472952842451864438010524779854110490241160260074914915478407080467129420513644286398298662859305346321100618063677988249698551343126353891220240358704985347446270331260882436596686675050369433990254060361760862117195233591794360614980198866622988946354959441494595090937168805547111849409395624204845607188771663454133802227864483857025318530900508299989087781760111937165255097629343991652387781832882449059754453382789828575273030380813068966152656708399765039580048260748941706856385605809879717982569741184556678994733881213692655049987676299885089551222607664063070732537086545298487959821726074381991596273064834650712633538130609856828996677812239920768169259743435650469552559622810762372568873291707782189852791305125092370503747891441406983143798779367799571660230143951422732324423857863256820463248093101678933760728323172836657296606879977852152658562786405959785232118547131603800009509421576651090552986676322252296160132551119508222511233730875581831300913853188468248803108463715709807734315565815729847502829083127742016602606857512851609166379643862508886945603145108882909310138953643366595799781028655299357477361629294880300417156960536751736882131735872454324781610720784991408259899628460472910386259781117984142162325910531463866346782031082363282398653436080586139987618064320871791976322954483971865535032078276307333277467045974909081112164550943113487332440150211301240073017559477162225734260234682618745668009109148352629278186509317102288856032842206521159825834232597630065709322126293716345530986660689996579341448429639347822670535065093104862404384655689655312810708762648254329443988309469251665627444108135701381489159959342707692755599226483868419507930872917662431573545601735341646837615148705531929220586811591206497483327971606386145172799908463033144171920780899050155400102255173957134309677194807510816224797575939509743214403653823219606531298020199002002172516282486955008502800273690331942605576364471810062187154486837513167794878721956154307861431129833135922140585270178138728666070442804475750892408875749296664105582976190438945239864341557007539872690345373934173862497046761114395335531933443333144290261621422633842586964213115608828682944436679012040660049586081107583549026470283155744152958917392392632812410845967918742302460134987987733638648868393162300689482004178023581715185632957982783987063854203901098800699425979841644597551756859884046441300020265022307649371020705259779132654151507188495660909345582116623517805395619961386844232490373562906348135321625764987919270587445432305897559105522219670548970598458708686219340718355284526264056619994170181512071998252019081115526860900146183761990588340259298613771591637380650650011495260647834290812283459575954984623221506863428370650929605427636031645976456678716493437447884228255988053810462866524824550704963203626295632140563203820483991631867531753103181189533789630202165265375705469053760434529109405883040887420188716511554817044073326071315449533033140043353424385126290919487519768641785625739553891110271971873012942642024846852366894745910211110822813736710744579126906961431903844103409493448877378459391854444218485712444550266313588233162150837172191250902562287623713856616643597557092195183796908461879856286859565542300672244632949886424127126529763202756357485173163054163735574539275513025002514090087260861540743206312925049338725132334581210185165026915049701179773703988401445529339108772090406377063966716939070115018168852541782872778181390099286950493444034104947227188814459863573379965596296928496248813967385846868978525498796040880120464185281741926152785732572122294412791376793525705414522132768328231401313837864329838978899083415558176916670402464312236303033820572810623571835358242346658204137753866090679043127402140262164016992141212432100707248544129548841144331787972832986131429466317259185847673123771682210371135769127374503821515696096898773875734829396649423926238914040614827413828739384101149572284323091991865345978134529507977867776023438432456869505671129711533063299049201427431862614299608181247467949266902567874089419534094061315890592511121480742215124153984788186859343324096770256692795948605981168725708504830689923983150651832157321955835037756131687064056131289828659076375002668067050109909793899832037266679944829805880361787792478419180928087712263055121165089335929203933702655031538065142596106561582443340943864266866411041261583548362611855595563555585497794804702720549661918503590446508688064033157048034275913167028901957670151024465125298890099125865912115079861111015984196462973573828116357641959320798691603454523250971805416201871834380854024794303746386718035196873287827279741149261150232941756125820524407860936265580965618531598798877864315730866114379761733812957332007591085543891312137797942104009473371893278206070534949102378233761251986142608925092278637487168989972794772522747842060536664178531723406525206049361742644879669877903092314144236414864853483752561420278220956372309845008567758318771565076184715932689768942149000789863410470596865899115214212779453324045509281545625242072580144083713883138402364037829136306401613545543184085143618563354748848395797014924668419504947238019778957713519108074958477991003485790192926892573294419891357108196962746329530504251769275146637413276092965078705942898892310081442203568960610922314753181961307357002873068289045450198128677173473827253867900085639663368937413453096343704986049985487795008521198937822063057153987785724966062740385991857705819036366799597147250365587193993006468719081124905566037761088405495086388406111630517112200767372205568760039986745047553043794775476648323304573701402834973151189994440537656501067927278969149368323698019111359724133039623722375472150104120445144273179819003157152301792229158649224711756461847425340659611160146960335586936643619103595971294659243919754347165193426439156875886059341540543440301594357040038827967213373038897065429911296229488663125541422115505351070958745571401042223087440728881340833490393629997770660490345532713622464239906835682925573161581157490795747988704515031586745255705722997684090368575212966241618533559430588960928131865511992203543400592206683453724122000700894975491285488062897166895978312356604846675291964971460997577965144788366636963162409262205350110568659424453533910094341805524038068091985646862244245124735528511253954567291863047710576412222270953256384701323979672520954926917140696097016761076247461943672240138376768118040032109572696271438315109179926651184635351226758891484735708453001267794945958514307720126044672661926219695617481145040917078734236978161324090501398505323409937162737677104997575440613731632277892374570669461259849221544336419710393851141280938996051288929743220416992960241457870713089074289584833862063758000074745682074153406274292992721905291019382382100657036301123287879944878694370281202173427808300174724952130659383618106446088100755572309195584585460948238421023854797615362092878290477866621985172421284373525571430551289548693371213689653958755317443941869515588262671380576713715275979447319592237859353872558793723195190903205859441014512775249622145298594280180032952870011508548352075877293938786243591506367160007139773122164492139794577551144779114054397497526816906579218927174273240072783043325784841406689536282128802560395027415048072090907490456741224308622170759570079680833212362293817879684843822054999615789393795531795830419788274435547159723561736404729110010635736919649788557260398623091018256475908747500369242129053693056497773912904338445109454212469403247590561292888257640567622042184456875069888571472658562636346415185425560227671302146866049369652052796348331951693738421869743826254804342426108997978922048607161513765902679362379915601287978027662997212033002453193025244730476158982606551489472099124619627808071716285092763471731239716565446260567162275733110769567992922978577396500861449777752222036224410696493521550205460021172628365055456680740702194958610905814639698313907268407473717118794995684937727513082929540072151033868925284486707203837355747583088304357043190936825823918362863608648509961613695924459166768965072256722637792754867001898479314547776019692195759999988000664730949364214216250664032823045543431956775219407541027321397950107550002725761301279015286286665708378612246021679330140391058595416311926593530686212913426480690900563662670987571953288218141151295962360345330457675785736788743344296409813751853821263476157696804568066420896627889147038432437687262458708349128403141549525716168678328704631376622098616014044270705458735159208330184021629625863432606458919979993289675561135398617346147566758416755738941032917871293388068424797335083741300169073573547426758741035236238993815068895247742930929844167950331314636382487859933019970594454524791713185780278829163532970623654531986964852682198588049963282467297126574812475812755940406826323915863423459484726272260732630971976216764268783733170514619333968940721139377540024565285546351573265674344341912453481346570291449420157461553370737743458187533345284484688255670701456758934461756611231284363261281350156620459499502701256438113266796302617126563568118860016475906414038168123391402738005368172255163693745406268774329244099501878611472886283407743763943933210143333862480649417391879739836283315759388452856202992367029562580779632902366255912542251109103602994456634153935247584447919749300801001022098947676779122298167951513477305590909973782802072882874510050893178725191068153018457672809798159109495798835754007416285684980058802310745279454865289151471755314046215764319679797752952181926328053192825063157763237998185339125442417834292305148773855253603074733070719694465039034672356231945761606781016265847639950108997653583429002308768576561938661553491220589801922984430233806219041920063026792743451921291615290219502382604464648944617406237785143974575737406859346625794268282631052273082707255424309751789129178613563346352658077379854021772122518155134387074897435919655559574422368338275620855882916152941574999262681683497327359950732469186510683627725418542665433175093550464497173343196242070244650373897426187739154367556888104049060979772692736807155196987466337956225648221050980367845887129566283544938830704971472421848894696568588683851563440390026930034468909235068219359298234685980368777067500181947447786778699072836181122010584701171775850407117117417528008180598886161919716475266722099567056099569749165125316282796123533347991309233700862514634446618306253464587569588879323144856647213055970933908771051438650945499880444170746401971980758410690080002715813230505117133007300724463257182525153241697157021083806878721872094853276916389199006873969855156764020271697630791252866011359923380210573350308501138647808600132837536633480460903803283550192576338531798754595064664134098784239301406037621477829675883319545174766457855413296375096908192500812967190485251210534984866918139550693937906564661366654048405188103429609018823026828605447277042277313044644869278161580218878381842818792327566207670863324633728041940485865693344131614495114063537180224073479257869804017247716785317524504997005072881041343308997834057634919490569156192647982693018116676790591497725577550325067871379681634685983023406380326126723522377812584210562832960932152361066954452233894521620146208860504888500192249058141353698268546389597573024957079982709868096076017035454993382017540464800123471188873688970792333524165206088979516912671755757577327682903263094772312665665867425984212434994659545869685769593732741944881148353436589256218862298449656892782539996566871269311864224934119975220754554025462092902041604024179917168081664848626994910806658945558832670568310939873209830022940566258613124895636328205698855084932940839086458275802178240449370127665494782803740378598530478206095876729111538067348157081190391377382360325139191537415069198331518159778642385311721964232582287800066886433049793222576866858742318783546110768557399864338232142916535732569099585351896293514807489514913932652861278339845418778315295117772973779207264325721771937787494212690806664945996150102676380416575202262897742704313167000219961640871926879212296421723921019617263213359502213229057069018795721559531095915283074927951718775627652026057480370344687690443066133170499370157208063098316025171585089158990768739737868573664767912774547905999419480602819967704109767197832563619788552086487018246578550030942908007982813041633985480949711865356469926603045899763414379651080533722250171005829093151214943313371389229243376042851797839893272007182373555386592193824551543806613813126178243271020858503441059678825065758961428988282035917421155341766663234322388037569042314524626475037323662453523013520784973899502489254288751155939512647708564183864241081059895065430904580828531721524971320380962628629398608938488160577220945146500062103487085832039920646369308125545095500202945593870984828705068768646798347668656404462834899003112141915172703176553342889386503024210299754304250199311824315763595737145240198701746209179939876715304576341234258237976706914239368584392819168219502289525096699716759117078220612102128727575988350176064342887577022586109451125258133012561846787638195979089077132429427581085804063197086551940464832891906728204692848544809292484122455683638369834689835639447224842835283451993499424554536467255890083516048580492698500661528732710139200062175784526685163841825197278807757568187549416949413835101279096567423755218553991295309523870321467851502168152059954962973856131916611766658987010932153039035736496805914452172483972599101417283900581040968056731044649461462503469503337569894201327385568262176576076890152310371116499293284198335228941310962768407609789373504726364324130498229150577684541538405021756032688073399689797279972809496149119169158581681762630838243936949218520323580754832666533232387443507144768611998713733374347269577931334645084384042209831785562554680742713140531792672393053667442542764789662059165690877131554269707926502964675957516413215409441191026115571986192252653619911737368860041735644752189491087509712004354991463097389054748269134918105436531778058882212180011287017846817008618464124600028816672853936784415015471822307853701100414813766571073605970829321996394958358134238154691661774021835931508066407629489858857552153717002221586630777633048371474618964732327537660111653943852963855519308247141148656345236077579551672976631267391229810150515891996630694297781082433809013020177710322519289421593846537857995027651669871262646234434287969297774166104129665289736794834033958990068894649987541180095427579246522659366405964517501777129760954555624111434354761881944911272942005298325557903651208296192382744996595848328944868962170338617631652649458898025899969854785832332479947449652000036628513182012579591836461151461640033717219310827526880104551299264057581773636039576068333443828599975206605707858177293618217690645734808902134808274999702712393214144696945437800159653200766981566102499862183183765890740977024752075159402699166015483019552201257051629479124089036601741812474389225561347016476221988434072088895386487816872437636508402669211884180735909452742233490972198524566941101198975480599769449433812977380325973280193600744039912940875093001927709749040364236543769561900508779388050333351165149630711455539349538455422576460628760755517595788773241498930466298435006600806220216111997399119043350734091470036389944152722251303988664542719122224855163770150095734721152900390473773215489702653034395649782266022391303265421651646519000173541000988412197351526646137629909664390242047204221850434124429004150283912085417452785923325185084876193161696041875553714857210359439223072870899796393469320248213713566676332567366455089861452043389573404047904240207171532195084333685017829285083166401255783340699660602519517965023581103551276674821798923528823014442097596846488156047357310849153707215954612848179779594128425806550398590873319123556689849094613255216685466280636719490920280879238754048401073874482353659485107379574257162807738426376674399807791417366086720687385938828935860921626060292431983320791265175491896346059861776248619263784905258466261848446942004484726708025604498670593479397979476078345043539049073492299597162726755627018641122707731255922758577253414463896469779195232241830784517759966076120195635041632180568796025527141924480654634136874327210009552210541777030381964765949564313232251753530738270708814706410038274349594868863002107571982301404611419010383271653984340182246599373578027628048724605274653724339112384417830626325835537239696173133359143889231906026217022940625806753097339504568414076932151163145209537072253112099404016913839715992341235450612919395944038781120864544933167751898394365116134196683708507839941882920492138400833277828932834899244386856070249494108761438177437679252831154036420149874358078031517744744273630976553397286705914577695015062629159393649002605201563707904775654265096408934386776634366187116826242055351363329736960074056253225363021653205803203088988306473239108824504400028676813623047196104963783771408887776547907810071909303289181779057184080054935461209521176681521617120614347630309917870134118460008506932195257052858017337598789254607908011758249156911591368368475677952005930221242887346231314253640564773615178925677006177903998150734343742475061149905227550076154286563960866565368091258406460002601934233859517789133747918793490425600327989420183216595277959839493062545648897656685046887191855294494133912699725574906415782593030092674535040062053800729994426350227208663423620766565772142031573843799420728424984975820105299007753814836017991694786238377774141410576014270519656835830145559061809344032811782440641901161040834897364051777461830106111589227247357530885699520424837822287267440311145972188088020033412188500223458160366665690779594068817974320998456507706763442604040704458315469993449431203445848664713962120368403102540444901317539253538269604631657608852063546386103167338100617903115988210959662179808826297841927462799990644640970504219854562791026174997073594890406160997320796654002269138761324390369968526870706466333166420972302087686511012487559709272019072510833733006024673397280299495277973726928439416827923713079673317097797709765262894220780801627217297206434510508029349320599009288424932678230161763322322421757721567835149497627831276345082288254459708379030069374024985990922779754438460711617803723236269886367047399069986435192601799727689670202990663891605500726889622014043589260176945556114448965769088073646296046722153881866299112113700953679173951244996944602219586605062263477192389172970276415121110049327485766525252811559077243527327500481244803757017294662670337989780294572896553158461155941691462018742664664205958095071622137259261312223738355119699413918669180763245740183774969182188240197169727541846685861411941018242323773969984918526328379237709775383313198637337902025705656115443455625457114466653620814461461813970484658036245960699289769500981506908617643353964956145782391054479518920015628733449951426806247309012907852800482589182322556592906144367929656665488212745444681678370578919002202735453196870203840597103500799521460127320345335395987616938083732622940499614035659592997049213825473776282643309467477182711675056500126820463119896016325572033183386041874580609221769187694563701574512972311218191610212554328248124822181030194355462129969064470660608623208058794687889636942475216478481536893582649365068742250097995980070592018238979129340257813645780856459917390107067555250509994812403406492656902569696794848201747542819341597562212295326126634651638035103303350016504387304247461110711534677593039633054707006867440785992449026120322851757716697880556051598230883261583168615663575075011336934219663576849735667797881805531158682787697759690467627779497094792039285681179659887534800582102159725831499530081381339487766133747262819540875624534576001902689826477110413789206008905522582413704521474080471585292650789720267982667960513109911249078115697931865203095288089553002405556717106524808585931371731081828730209347534285415305395248677149799847366145922123987485959810178375592151290940627618968659876346416693385389052106542255604912613939956234841632570437110794567009868453935199757411500288580623320524099569416894259909693546571108178886638664247938545502236336618913464953601267014478822348098428122663178385138660789006055932355487750956995105656590500018122239394076115525541894838535260833125132554200806749722949892112875209994375888612704515377886534505826907299863055408896819916526940136507668035653272519877830492135283845770714610586528668758069654922082678007346421143530452960545782881974432646772306514859641968158906230894259107202759620343795689762285869426799070993330339454021820166013522183077879975411370301418434921112681847719682119931875095149103587637429951934872111575191642690046838022947818526086414120209700962586579367628039067428646824625618374901501535186808513261333436082308082671666547035675797451835038816622759284393392274887465599008639803321670119974776267658409379830330345367168272396431122546840265034269254573797787060898622803118722117944637900276672005313046510988180271990798318528682808761941568463417228826205014776685336295595027797052487236160987147031674558392564559898422597594469235333374820475818884214582999356219200751516466321551759438385517360362018208044622606645023984887333243243980718427931655416163754109790914244372523074285783702433873132820516778388687511828677620727641396732621228816520731601740970772077972292622524664572612482792921120193936059720804670167812923668416465004303334202591302048817748485780449719823092637797252886145400192758494609274067551926132811299680846248244772706281150550547930887334438437881912607772852231395034693025149264757675576840745400756731459023669322200295005434284665023731470312039986278134927234461549958597330269054970956773919985324623541710514397164495858290958144337477565674033436151169146063182376410591029378563652694143937542386337634018212697338209708461418412894194129657706844794685006857932230684654728224832965924029069245985631902088186228733556551599547750945126766718499293052022184387915251375675727806707296241741866195550414190114326801403612234397568426184932156287178112924347411258115491677141187499027662663010537990953885739060751138091811028167817248279625761738364810011509645326052284647954006683083058134241307169462424798127169731008950838561289100037534993440814641195660560424723177319924240917796821254801590387910202768030428739551209055619651600070686357875312254583583626058307082528186514117369066097038162296914399596193338737617321263751339470426580125740401757611270032959057367063771341783668002368757822885501559601137003837395235973423342217077239728948160566541715031811854539588465316055695368536478548739044788635210330243609358040901187523815176333029587012100120607959098296511088127406067926755743419658628282267894120863247295659754624364960694222053149833481677898747650977853857662072761583418560385998782121884010242544503599262683272084383228316586347135368846184037998630472532531203865053937143771974353648171572898907925805402574027258427747982351782281923189191671777511244098136091634619531488202578634982465745945031234072491830000981016164631789276337785170351469979952131123817677910351301081056320171799167152812522061457692496321133891021995765768870961652345733816125710308726844950198872168063312136958525679044889483462020110125519254512281051072170076433594142384399258400001940365543826839129466218970319900328036265607404224007593179113542807163774120722682155421289773169258007886753295598832431106189669567246667895645937341611393954072765864877407440591139650821502412820482517789441062227216715885913717379020451669768133128700425243988677025566795725407371593230920401304328823284502080980202257199803276309439403776428598717761447992797589825235166735790740471755534903872222405956099233527090432180772465032584129451881526524627472392553803463379742556981904812147634196479661048901153457205537629448867869047720957028655850333478548332598013542563618338184466256500397213451768001886296376837569706430937911632069305463025141592599535570566158120434836199541711169945773337071612817642422036919679809785814185025512294936454695508212837062005208111608721657954244752222089552977079592737288629121049191726880499612072553721561790940629643704127902274403444616185902058009725485591801918548136266002459175862830392520287392436754437720454357714596240493292516055139082430701315359811598626944782414645116375469760338647832069862570528801691274696546253101655143733464455056572343856256187678512825088652210403334772894037252427346412440708596282810419195728115482179612014661747768513556321539342388450071225810612983777475042853871791563361205096292609645229916703358438416032647209392094678102889377819174835681701030514067798922505879912265431617769001370845545451825661609086728928925372711430903088011539512532932267919474526568379630564438801753382869318834956651444007808145752235867778724183876816262077605372331422061944872488708322919172166838120637350348572408127883604214176389645863648759167561549962747297908834117158139269133935828577703085760605478607462032869784808829104577221179598646743934294697671439059698151232110777308877545157225939554352481299033099270044893066998696922522593747173687247577402161943820632969179825062964386225989663186691122551490324913218488018696203947452474120171742843183443919158889969256405439044739691864304966854090972312442006158099844442580271673346615820438033480993771743447998116985480565969115503231749242870756277765800440207483398540734894116315155790907611805148516980235065534442713208025495991863582905771916950990780999133458669863591570496449077564655672967206966104856329301447685462631695079074381085981203433927005092199436564372825719524863662808558681951505040077049856345773883942204600487193055107397451237659211962591280736695206882758939698630155058543497243492178903345856556017780557692163268362900232807379436874592630511772184583206276824804875337933749037232838281939421202873029216428929031649539394275149133336739031570686305534916206957141697643179782548856936253942633402253056761905745429745500359373720029348734089161100589757868498364941673447217553793392507890067731485009845186994811111574576489717873363564320419623927966125285808945351540821750553219468926650527312208815272065249915791485196533765499075326771256882000159202181993834465907507079797490561727483456503810928000892474329036919093986524225981057894514920710494208542311312711809726604420634228272369467507256285814671551250314471905292042582465155828109196835212265497022663632686543329381583162408374105913108569967542456575519891553342771262725489504852284736939657182787218749948317330850559321104672377212553612565817354272507433841500911210643158966173349746554013397611077997863129034751967385657836194888414328015517920644275099736930529583867725796231723819308319892721205424622739095228096727723714308151202682384754860177208542579925665299418148123450639368765413901875649643407655387376921738008779046531541817537278809857893566614260645964133674012834004230432647584110806610862796087694806150099785979024433961553238760420377247550637516490752095717121802590212761400586166076217406708999343198733885606228116558737112995721197567423728696749887822366968895507709586095847367187452414704172935367899903531118225076505315644333537352325432178357547037041963199920877315234164307798379800290830744049259691387188514229985441919478838584265822257949788324537474951723686259275995939895353396875657831389282634833639103237643248803762578103820997846984980972793257820228136022111904743545073786410458188138699828747069143662434610997920049711977656669969825924511953317229535470552212593292041162397427550717360009962279363079787347489976329398421763447330384418424258517691533227876715294286432906007280075060170824942402831449191891579416134550997425215127174781476850817202774004114418907433702473298069092092073700926000588892837919543578402851851121603863935184932210454653615062233670892417287142830843111022130760636141383917693139930132165329326041577932875654632923097417458373535165659626665747926874698320551465667756047222566564395000250245157026478589540173629791943241397228814647921885470279208298729994032803160142253326010788368892339188139059203745567610241484989774181855365759926988397773971839813971752341435835452288456371632564606533408202720924683334688143720562069089306427307986745101428515968201342318489597131494551333219155353511887389064889247157078568293527408016382477218822443560154734151048435091098633098490749036217348497630386704752380298980958205926618833049208097469685741139488688875616089494087859544078081703239835861569803460056202475746776031926403996023357479256062821109840343886329792783167597071528189016507055955124629598518909608522886709720190967232087816140477393209129102777210418757069075212900229495283043421072747477559676394818286877505123022015926199823162825964504094601665796641402653414190008272170182602952968059959681544317675586242327292425209152191571861260368053646355099528596779826143044007393085793485997287999995021812846262509279007448221751563161206016804048092695272912469767364853114222989667691390274915587529325983306834899313587864619864769980483773931565013169312127462549296672006113343170948943860276281790763621875507224524476128832802379793470881484870015661405930771883564027166780637209156644953052066537097207754446963317618717388843386401407365542537412611738800330010639637231447076458970810507120861888581150712849142173940197289809001440520744835541442776710113983953484379282531186920427534628483731459195423937136169336228476497886061191643382096230486314307392809615336531684463443140444332009124089118007450924558682485454231323414878903816969375560721567942286353387257071502136788563130786785796244085875865100961945800636231544798815551086645612987170570465946751326748925864673574927778926335672155098551614130728510575085266149122065495130655463531059661269496487129055136013973939045440992013153985355351874411898874191886506237909412948748018967625050877646317376208013291228632249735554272363923959633769983635967651281463379435182697923316953431165934097907438941020606140489053497913057912735377017471249886515245496843719001505170208752604396256241617184275036289292713551691711656051930235626268522119214700224438013951378836486527938814191684923575128516746860536081799838039387583659552801255633009669777288450394184069611334943317564294900338396453310786024739424446870788230668751114430741476860902335377465989095159623661056194778739753224103331486563994544104480080222720966882835247573777117350655273046139240023005484479063826262788299411310437309250912557743265243786871791395546234869801666005356079318428670914369249463477632786083154563985894758055829050415094210831375264985893426064711804905912826894536829854967484155364073499548108387455591471896538702540963663546439422473982752048545963226662239059700315768934061633945084247815194231271261667025689204125000629817493759798637449491613386168620227110030238754759597307531662486291733845295284697441712151287682028276282712555968329288444558126847906181164209296322812854071056357250315191929192982867006285040220152895393241459862556216844671820898339173037742645690766370701983110294727010355906963643285511162659523189186042949418564259529225904186023812045706414763864862817406374089882211464614085972797590382490857505021630361580623085725292781741291187575786550326546702428146648426817737916725442895603643851406056385978910268684456630475972547228320803122901438931901166584214114510978762552941726871346714798154898847886174174186493025803842562181230106040829729114912847612413969545319150080243938002066180098299512569109579162103395152602238344693393818808246399713033350165262593500586492385614385962624946624412482844762481629833478076522174506274911016266956275994474611623338443160108242640118878243406491184151066212055990973939078842215120468793487577320917219944308288051542212095446738679939839652604989678608965766883065064754233228253953519381904201333822349222023361104533834945904415267300854952124606365093035067670702390741658492709129038883202243063444025063564244725439669304412904647693148460231176000862996768617847605772966574295896235594069758404310660939251457666171942896945529477106126683686191533330121693315329902694899120517172227649598623833457356353199763691370596323354111503912871379096738528937394116436191498073175748533075169145321187596914491576742516536975343958274987654684363328318778874540065042015753852548766690983834367166198905679630928887596010639192973755937066452767676264832017025096675331001667078914090362786911584071341882821217172152126591708148165844840393061618535720789860583155844658535755087984059064864938722314739666208602876301169827041811721902818685025293043465414514305554508775107362656622314631606317248068758416519605392862719762281094403997289834246530245866399100380863710848530645327517855461395180632761434911799783439489261339813545269596524439386699034568716561058558798223621653769454670080474625977086005948925797977554853376949267973320378305658648447038630998276832413963123734803400277202266990334803589200211553824322090875627991255646125296020977616516393822567243787302425246421275437683213364747023204699821959961898057810485715907674157582837308399424907779256017864986864894457301490632607299460973867388113863399479117271114710001950941297170138898323095213303182656593214999355599418887555256932448480007632363418826294833088297190645641836757535267051291701262773274994471132320549840393119101372432984473748409029141297781061586795034172191115947891558616651156142154783699085417181068805219216371541164577136158675811051069667757082100299726202468979578908864908773290522004617863485526615953531574217176797631507909659435772305902351242525572553192267641401775643294865654783417139603130644440480974711950833916946861217501798845598308106040659774563031380613537469190179497236690451139472556543020660633865323119003166622741175472605242861618657871422808682219113969554212669499661911093427877537669905539110926573479950070002413933418652439171186508742630073052170550948962432101240429212096449572198682426327633135052203524060049766868212055134430862201807390483635812840675442637254365772364818254413112937953621715154170411273597518088613189812089919538184882466942854680497208517523034229754664790783517007221980383448075723472920622031832835257188264593666707676154169214280251097406359561692700835052427134205592173258350545353713921320990789256820469052205428132147122290001655967029325762610773883363956161215241037273107191954986182729341790798261516006144719556792378302418936528059125727756163181623940413244033630840950314281128815764159552471745418684788668709717021098680498401165729316399565918835577248820410962112635765468837245353200858889612533016967968680374626289073518872504403505044987203449153809446488514199592567272334358346692561939117236802704830735228780293642102658300752506196336432011953759711969737764252768516776704324966147951975235268395164215759842524879511004670875142891680007081402605831167490943952507390006942782476506595462843868823312725560179789216518166367575390456436901772180023329953601553036583077573061031277745924324480883700155129925818629419630332895922864344220160575498774244657931052020743868760055323025570492216089546217276863599385660998256423977868311269434199336363394508592694466293805534839985138166585310950057565769256683025334348513021723632908667534859867079060180789826132002125358340529358934175644661045976505823012603236961451998054660587724893201424206646620589132971646895685503344933416558009578313166877739980662618789911118302617941100072719502590758487741503559129854295796098940873048681027048489780474698434146372848114900257904212503641711388714230802314509999426112401285666677602540189105905587119492754386928005422718361145543136879284730852906197238482414320022410161850655506618408150104983596012238807777540408035119344094189091276087496889921645062208545004134920887935271718179259707769937663838370882450359473878560824123533704242588141402076285688916774392929833430383147816185403100731087771450136374546557332381605561311643602738234781967302443786788641577952021793754745879553188549108261764845297090942514965858732158063565158654893522634153461256506184948923087004658537990921586429142691983309714969663232820261839607113963456681522750184417991443238390187554224866810440426870730224049022209071467817778152971366713393413725546430224446994162816678578796577149045177255229324373291345063174466493679683049917706706959957910536198370884571541361018942736856857560664253361268964821497304590767546299897041715172829923567062428169000716657489362798628493518711897614171626333267571307455447786896377379670831703796793442370676056639628746199791191931348084183418747571526447955556530341046187404953309922673871694870522361510623777102835742727532188936244273657972776712831326912331196939878420035974468607346006991645934186848561440944858585734031904178675333366490898542768309138946132782126301895787370538745173031376243685135220792310030121869376180045238651146909612015410275991226217129117841104104822650390886393547894649847962429502754466848672909221690757831086416600979578434454642343054719045521031866531580110786417694784694826691206978749639021470982234450517058075719693977739798933275643009454674088472128307886455435535201734671990950863733077097446211955122961815858413382985308292040011202764946156301394936238253928407243904395258697750744872670827070090873675296993430053408630493903777666232303372658135614869482386310760693861244778634100189808443577671497649187972504054756131847688079628386056527996949166051152312561689521953256528833789795020522498283139456422190850488310493587015700671751738668224840812303896434195222722683633478975866854168302234808467923513386712032743951143846658201431183332782014148697360404441825441185382669885509363832891584562333865681096032021867781130401974725372689418883337449920789184686800471250046931448053808129006533400322418034019829464729951036615932090891491171421378449187840260171602528421051560181571352543495777153947154480446047046000261206618883352120496666774173882024060912275091846370182976945296229568363254016033746199095027612804853878536983466685025211966057984712130244169940112844135929442558122911411120807595323633607082994183412558133974634301766182273998856201298127363405496140370749386007939511184423329398383979515859926863909902979897763397719446076671207425724230434100399943141148928461908780346525222747520582779555464118536859184474654030757015728797940139470345140117492415499385337731711705589316405018026597619866470133703783475266830849072079027735666986147187690036504974554555580974739530220694422457858509126268592048839791405763403725059066862770702489703377310170719813185462597113407426000909189780180233027658697176003249010800836417382080302812453234093633633391052952254081707189595909304890470922282165374555182298435572455422987892756538140653598749951706370942098324049849347305854147818068296605988854986562302989628919318221577727538212316595247097733731215136705440938656489663053027123924084428251733450930455294358611814864779095737688873955856708291313065247992094772592811687912206984475472518072433542740487658156515892131160298935443994154561581941556287407416967886091537279248499053373467934608091264260889522555529094297097937816063217516747665581550831204483925858930762185548256012415668521084660125019033614447449871162855548565941935166857685885000720212296726836660444419900830823341293106683226814486933375868343287263521880996386869664469273475751639344669675966969743038749327803416783432998080542400932567109360782346817845688870833260277914406144404666983097562788079266509954898182992466213105386363409923737171459134146591681179881073539061283198511347335890020835287605482165277798764220199873844884379558453842468882703686490680303946462549760921595686005281413717300159550353946391937005993845655768886312367365848869431157257397301190497701506000367940757438007287235252741811424808869617444420420158287184235748252580929255518972183281387631603455143242701361613885494931163475637598136940453428815054919596655529563425615690780258983773880835305771909975833770163167456981691899073908633591486445540210122063158225110319390053016283171487137529561760624836029367033825467519127987089587954000246904801917367586741797553998844395963141764465435458083220048596839400449119969207270000715268751256170329067398565785018183938740388330971921988816309923821436185973785253329009078559041002141121808749052347360953532284623411024297862196418767889805072063255508095475908095692113685925733535843941293506996209076908743294389073675484783263321024543182240740924841261604903761634753149276944671449457962219563436397356022658623543109999127153122794253175222308496311288231509961016487914891196076559764319191096973425482219863021333306394160720669352461348308004686163412927619251413393276881384902742251211933542339565391939607902458953501523658138164905433470698874293277207343779606104955216133190422740241796217861764216649450958810446037219482259864814592243723949868905151779222549710346211419831363129144464537200180529497491262876810465344138519855780253485173612104054178366061424045503174938250411658138596980625107410450201659786087505837202239751040113875218786231101178139856175057437678361094971294464436398354915390152990865413495428355347200821380824425215637556036380745463156906579011704103690211721859551795794735837370799567340244486276985961210404053334546677930485586651877272222634308215142451895063741997581823249003227789783899581514714255133375282566675219386782266528084875896616483486025560028518146768811954640336315365313243620115889392871921443082826729545972733465174442920217376700155711156072325760300652176138276726338692418578615554978129456108769847810215254895096658296469746474944481918050842579557165095111980832391673987872503150763540149455986897296362626220409708081774499487234056543264272250995264443909559674644953281585293454521094185989944321141415489808724728491039062823546550404982689873228568182418944192714727751055718318023103054413771939001492998744098677438252937633450358339263748880512207129191878058403934049318554040580245365631382607183412627362050497105390387417429246214402343237180207611860200139381398996165953297396845351312577756818458784202971775327205052564911835521170623868198742872134760119990321317303248596599341626399503257007785768933087896048802906505089912726955376559045765320686920713572134691458307396844389582648444833579506102837138908635213595625450807564281788424565028221830566281920234356522622673720825691245774238661957898334110650352233678924233027187367422182731742312198489644066364856314524513105844825287281901447367531171848605998431000737249958993763863263143298446705279067071789341476483330190134901690535685314000703970409406341178384197905854649378670316185558858837058361577145956295519337722820611876388758117335640144311552858660059827300736815875497035424861696009534086702170966788758495973680556783502954427328909566102351696222171270875841706220007076635811197308411369396369998351186230291289450411943813380112810991762828157458247342408419700840138031490897345343522110031813199813199905608446765472547503410334282498512209444857842364496617055301277485983652767001314191848606842362594900814584361168387563893718141292633759711150235914880069497212506923837654882416065926769210856196710320612708105258815764405077200944788690781753898544371819609964314915474887338449567769672625633131638943854614861774466595334791455343443646109990151004959105643931141771737735919404606991567059187463773290520835219441597895262199001899249228865111142651544421910002855120562508032852028531349488880107205602675388993050989723017615637241610786986180792540810498032489979316635175319046991065805595123508719856900808267237975293823316542984756247017577824150291124477064261791376232543811321969443247167625663217149404166269075893395018647248493432358817626421908597829206269375158084235516885630407820305739776448611079203491148346199058224715627341875232875899362341017704396985181748663209187851388677455040007524080129331209760744743046545554882437150395736436794319707200257734757457371347306769291802074412535035191038019043106593019509018593739770099113070163858811520694882275949659514981282725341830858547606563435342419174069906087704508509807602707914320119773486030421081475160035383603934261364509577747156893103461098812924694374189450958617574254224124354774673053387040257057570374796852272430336722692349202521657902654132315405347271507709732132403327856058773923652387558842069953217781225725252126563333600970941795407300610773449163085025685736276657910155115222186994276895949700990413993034543943235053146896437729273559267651005630887833793488285801987969848046271194830678917996422129360928157696016097490659653127335518201221433755866597386357677629060386934888515640664845469823819955446942503123668599969766578704139299215136163174317540131455815859454039660984272127461964486531530729529828935372475661187729622908373332738970502528841883112025046032218667061320799334489689882967919739952451272847155988376466906554412663305787942308991982387140278894756777691044789678421625851829889852768974120980840649202536456114594007796692101663704950690423505514836775407575469000619135403015145323664787213036225423104329565370944776236486303441386557388584588094245803787080335256020404831887014995724702567687619075255030942605539577998243665357037676740126181678506440540343280899302959392687518913231041715973095289920876730789198378941580168807194887431862361323410326228948281268579847384908948880798835056549421251342938362754664761177793963844021736084053736633033148775547243907722700870190176636011849481366009721607749569311584997643183180962618928818217655382511539955863875494968901583736481920494725388386596345735720736612583659267274547211657133749599346835542510557252451592461976874787561218114743462029756398541830117204884451245134540158410321189005361707500912329405528917553395274385865144050443437621687797222467170106308329467215967721883201943270984010975982772438422337485427603766470371667261535181314248069097007328773103533811778274018411578161164775393422502362851356794024893095123117922287208546950181919338813385569016089228293905724528588159218588874167997180161988002921487242152525220434916009199186101351674748987810824732835802089800546886933874598546280952758859178175039885989128299233705469048550983964446234983310281344697158756253700886609866740170447967674435867917495857149609532020901706493800922367316545488675413620607818815081758999700766598246237332003404001276585393287594649022719795812800917284323795888053975425106834559399722818650344612168932862012082631598874770752082173624419124081094959883322684500119564810624027159617017101466429936229686622402807194932753732253978662287790044581011704622698848482286314517349573890026820151813666054847735014813485123945239155839502481687967619796885932667626361546745031754308220886965677502271149949973653760397892692784895254496224393590984400310712721915107569621500600008023747007469960430855286307159881331138348844816063198611194607448945581525362593635937150072941847079887730760087549548447083892184671393610246403494652755349363848815501551814111710741807795745441392506819487617036208572496798845716454042257473996416108216801909391155849934362137958418813798348631256853453032747923172253463411016341173974947656813773579754230235566155877263236778891073871543166120548981876481209080109754831056975384321042954857388081462729995943398366957369821147280748749381551443274800016887362077308029182148631810496346033186248062244398997398264181876131383933022890797526323680799363781624671778303568329377408901325185520172949373165863597374423663526751373337615473712372536937101506891551698457617047599165418917497138547970778972932883437399197213977303662718330389517091360588681586207151324926652277926524752405184298185746656964463573993366811184916754103085724533175155360567806386841140015229820264657474457205945695080644442810598975234223420085700288919742707658832599812545847946735505266169305708949097889927212955490267762531326331104231114998094960333358475360870438478053121281023035319058182535330702649118323403185323841064059045775813366774921467626169700390645300497845273337155043148291228332002360390689190977928792414397991671243667638225194620689535583244909082013345895805846176986407142549179502312560634575174347282991095082641663675549190158665707635670189433795723808606840465446703228774663925523402502416490894044313933771461570570768970929119914655143145115966182693892630449206116547566670758326400574435157050093008734667405943568154177475968386985174116008353517963623757526496662556727278859584036190481851496076803031075359541227351205948021368118304563787368469642130142955854587842060013157971863205484494991287806940519549683461373557418054901925093075920342437160801405422324384456701529569706894509104252008488480179450106858932482598056314177238011204454343459863352030841973413107394769292684888720099330124121997756311558382609265645950180644058417887252527240638676260918050658828804980577748790313736015866072815577450444421035323580735468860739244311360466721464123237573874262704961880022161751613475999067953800344881435402956225299876372592122157671985914437211226959204620695805495471473080096702125462606437929431991272815253855662669138341751063714789107613541668032790029137262852286190168847077747877828778547625119683353184186241751849658037597441356180113380020978909598814958186673649551681258800203309056841810955248602674316453145619288610448416749828863655325567344684778949240958645079860476098924946093847458920562669443441825175559601770832816827967805653205132293292493841627186127810627137520177652767293995463926453153313220637771908111967928917849324380453166799948689772765828632057215509786582793381144774727583683474488004507073933678967147186234995461055449698089079338075402628818277131430893468158943248263576513987821421606601019929270555023699468350537792702525157471081629143705837221927801374934465569007802832064253551987623702024142348195027412485358915464044544399087564322215193687273865348579099245347317689031446360433619086535109031787055559222294179835308005407283601583310597023103769245523662563738884096276624601085528900065652107359175619723670185849265151306991865814964909017694020882806664564589873948125161777463341911010031472265184260999534236092902966967160065824099421463715197247341164073631095076201779405820515680686009049987418754371787826907502689031307193341529588385644558106977617465167196462161102340403966309367760280245763858423643943995664326407804241022583255530032654493055932628594607750743774941197216317556279821031351440151654761353552992405663517456516274041596858537606716620417162934900879777295417895822217857349385844124549570351663150241019668994443538422215517968949591977450268925008309174152403392802977067697992409452673142466433152760249209644241301613756224438600340350681242932487298482465919055061595971993906560560503719742580859261484170195928653388577247281267224603411921080061421013509539003280426755606267452764352680755125623404534680690270781142640320817954089381777315935955197702599338298652411829169089171446367825851207656803990275499827699043307344699612229583475971085666511750633710578573848078439450590874706703047694135401779048113204054080707250309202093508579600051395203333180701913803610358070375158638479767501659578801198150967197356664068727799278778911247714796405333340604342233432163563046879114637012000748843816097845915527852517287912108158797927091858175690647777483030477535605048714252114926536717201515674810309411603448419653886273031221181346742340317049671234979629065578535986541486005796154856693475104964948164569136777973352875333210765338483697873851620148277051303162141658171179606087064838230851253970784939384812201425710474634784456595898255175722569996840942564299132078684080605058034458451472003879195873764893901542228364985965501205994943182711330552204441414895633943876509058644778937592397558005470700387401546625349950545722506224301411045293489076966161960785456631432077253690970859391285004303835581159228676099654964534107455330670081716887155938801462053865478990454672085376184755520672541215792652900420652418582431151564227028174165892389878678026942592869389727545424124318430005052733334276438302792398731850986825759162845247759924849753118704064446099113010694818931898910648799023999875033700851226228522360031028431842811985128180751486264400530835565451095242656006653608905941300726311830747154707419281594793932926544051232114059137404799795756024600754953684726866780354373941553958076611344780163934157387495160784229390204447069480315718831963492118422106409349050570800337036426318254188865444568881605792394741003011894512533352919468562440367782438228032531564944743795223780884458170064105502413609801975459317073869523487477734838545084412185348855980492801911112590420361256866947171936746920114526503757435219207414307062128468633494407760556188299277675442647501249696198488274788967664892271835679737488623687590047936017250552809247730547834733181586040682893629909005311844286476701937575458846084347721134663390935057610545009462507541569433881579719206299651624335023409264843407828784582515053563594386584929824391565639833797674680070406022969283111193137607969890473579385723155021613912450351583144273773615344470120581096178689338824466023061213288372820930535455278518913214272731289275385771167919230336805471439829414821151060295839898474939515409658470886515614821199072462411965111392553998127591467801593270496463649853502603321869013831378516952965166877528688904052085642268064525359025327542708972347425571465566214045420507603101830950209617049572140851919609392740090037168695232471770810337918056798326343649250874555348717662886242036083340314767152365770561683417508123582420545330978787136616081686092900607191271274417762026460654235329390366459806807213971263258550952871014149636311332620624230533256133936682139522649180626164241288859077103000818071400201893584836015273872750595176589409548634960750104310188407821183610162354465653010491866630523807959744298759220827730695621399076454237175721012038320029970905347757951203612815863797631403011350046545135493477427416868526024173669557552700779795684031095353059705911843936620753237048031174353134131308799290667070466816127395023387912029834670182306407986353228453107445611459427233425482048965831071141561031088765548877873024630377819029918392226072191054854268907856302587510826478353565923330877451708180075394351950162516990933628067194071914289025458840861853892200000090147584769865564558063167566852012622480156673155828897672245251496311519393752516129067778525086446631775089165466868938585761545112111992031335330759193896743756818542955078591705436390140006111567420229176548310459023594348090398349240829043856905694233239546476112745775126528089107767406458879235070276532084127454455415280207999116970982392573626354169048694295035691630400137846876458319884835708594852002180302961867239031134806497465046874104930715570721128551537218358319551789561034711889957018535717278422657602605581927380210814020322089626364894409732101340075239105168134332097421385890405225631084714415394232125434980654864131121650468891690686016323376308268141778105947331973910800155297696824699493796291287955213745717751094867044716050654734085284013875203355554256332943575259863710376024480881064339560421363171850744992286117102937884823543115229247622792240892235070404635705280498330445606736414466943592177948073409775737463919635493757239029672757172185549566728249496647328547782795174191201761824339544266051654668410985726514389615823828617704151870885424302063174839565574743587461376835147820274892184631693312794271555254245906760838249231285936156221805266958197947250902587758578170446783835586938808462724732586485697501465360233896557001767931956470680124925230600517319781650847231847365065774753927096915942674971889768279029168959674796833583798502752287357944751843496329897050147801579056750701604077490057744751696673056048210852005928337934049177206228120201004713252014069883085518045547167908791922064872865957414601413119485063780048924475394426141086902614033957982650172926516808313429945719339746360079284312802418195368402209564040820600675990045403581653045208937629697516506443661176345781036851615888185478471309956002389094093248930258460649327215239309669753661536915162679750465636692575840053449072971825636122597550417286581443879884842653922924010726874333199945323490141484923231567385698577524832428744781512596279969037402822172046849401046563582712159152918338799298942448230334995182272566741505726687144077350256263844560789551269808249134003355438316215333540172605677280338571418187770143506969016303662269604017219178168798175514408592403521797423832018248229064003681839054342567333832127231016653660233380205294352469558796896139285986804944787948788794873012320307642067582560809130347203704459210068889410633203437783116174401417363430141463297685107383164498472599054415336184224067761595380468925703888579930557724516127039434668495099339461459855830989488282909078663954147141173157861941495790757891400902909897393817883662613461605266429027262024740119837860745394743311820190299198845795818928446740882873648167782075165794886518778385609098565416232003487889788257008532603497593643756266355563475664941253777570620208655310443512131107275812985149356290230539866169342257258814980280823834820897810311001797502074137247365477982985866038551092598291250924412145872985670875217373728136637395549709791352004682686017706583399728554505256885050831956909594350790430200595348752768837743339874361415267290517556199678932389776523973586508161567416486168138822768517062603416207917410907824621438038471061033329978690688623163432758938110748642313972676504412647587452599617192614717386690509992159580327735948383856449530174381448133539119707460430201254124999086489948801635772754000580520868320067233176249940357272583921766144585166734691844813480848378704016439822940360075668488510597772960679196493870786897909956671889547750733994661121055002485112949353800924577268294449713522405962848084772567973027055401509447244486591551382577459251250210348505007087612952192365456764405898391513433158710374905905477365183452234298649835441427257356988921766460062342366362806720602263711745585787887810359771593372359186281461924286675113701613935242482049585889155201628913771188146135160347048110992213650822028127833770326520708452674015442769213408201625795324184312893893539859050829584607716900805511222499469258784989512637270854442327936263263246443263389593160155155556443952678198233103541076012959772426067304651991740881731372557723836401681056041584058028416767947121583824967456913617798135849473745230593306310727089189176815897062031356961931798189089634903249994391427374687119061959036609809012393614314062659826807157796583626153119894028279918408713222114245101382607570268389226281123073437580740158050219651859687560726630716856011758940260967603379836177986025588140941231224671897906214251497746560649818342364605104680260816012641826235818979036977233477381952519874144915681749911593811336081708297968379807212468686463068744529325518314555469463925021099153998317867713254987295025835307715665825600482792166719460156393601257301591202429794786142970214344564956371163588276366206697420942315642884155116272790041308169543458371972812004770337522544943180556054269253348703255792993377662884351897701237723109247998619158041502710167624259373278324063766084811096932158280886979190440424733381934734529683724523772605765145453170771558551276734794416050083830389888833510530653763942013678073712926998284381402424076677122236008738995667711454912444521532778473487722870199206703607180142641942082420498910150782327041185680886540629965292774760307589464655610930596151284332358366950890072670254915381756905119083179152321290737552588475516057893209337512454587270901065974071642272901635838761997377593534202544151080642191196868406098120435858255571948885044469027140862968793302493406737309640870612661596104596141945452677812574044971531537196319588536268146613585784212012092259321740935578579153678100430527812487310766043814661360475377853499094200563219770605653014184835734697327778561468428099323911260923893585250567930962704308075129281700429748830946463322979517413058444198559863445800661855577718390201157777648157903294076495102757005375493576279006655267414886262506846619547602550046993037765858795997335009627652092901929128990189288473011425225566911971738419392627393163580776874038686201379881018848822487846615204267785846253537019470617909882307090741222279671766771911098534134148558276138803700130054380546460924025049236637661469478259624778768881750981295090029945556282998740092311995505682890272129086664178973288083163228535172506691558091799539904246405235687596243443593794278262174332257757396895340102065818706943256936550974502487475465236964081098797021280614086795503286567931539276164623276289927981550507829939212877396544578072253123670917328642366941007218870643460629525213533996203701837647456617247342758410845338750481046726560297347982007289597811055236287247531697171646599209393859368904265473382010277436868443779199066370272076776446574835378026354272127338473896948305314178466982447263984827568374292138524508801823112545331616198611225909105874909325895245862413147705135447472914711126104394933948317263023163331726768222498839637027769125598714910153932707355957211781509811289302766097386110622254963995323976302953581373042244939027397351819102813791291521513796865575721029185362049288738390493174764716916955354340146809666741218375768155621366026224414738077950511566893719067570175229171785250897718289134278125987784024351681255531636768901738555553977934285752846446340208110847153908995596412600551352166041390821287191788472086482298924256526361879276595745804084378152015037116470596957695610202273929948645621307908403914666259879212968695930006726669432782899900530533834183908591371132363288929208651650774103606725529115926097623697762546779823863977267944670120027099089172320358531944941893018089495188351274096596603747093389408942831199432593901098029750873670514410714428884710689398109362105087511483607833564880226296538080923523016623301976993922293797584564769089527545082196583070891780906821871127243855381741050171034811265281422005181776483351824165866948427894933152282625966457839656889749926780757512442804215818223027593441634043280184949123355227914785942561862493083823306491353953508488800704504712092812451099010879089552922919216381840044555973282983349295467274721798251250656363669538227380765014405127934282771097409511348039946091363838368394521745823658746052885098444419688421791481195386566611228928366450942123605300853625870289128777032541790134759086752804354985977924849739972973105076787431009952336705913072197988489349368820146007085341525210501578857816364273793137806514239093446679381584204373915328923134381780628471889397765633965865240069023361426191024649036902167861492751522100914542469747985500873724383277967602883246961554563912381946648541037675305396227708040542054089041655201090416394031717162141379087122347482999188862613138883699653942213411694340256710410093660615527637457504709254643810262052242255513929727410113164048666875376946929430845255691585226691171190248640507433104074868379477022094400890293579354347345911390534582417730301324018751824754595096267476160416610686320519102774084086665437141747655079435775445035427445430758787737885324404173875527352007627864703127662913194467514204087029225066017206479689511965507650467385319448593900721204201411583874805707059420895755217142572372439318366642290794644797186825806736652594261134953337265479988153762032113736114133591816968947196893624856142586731877591277912040944825226222497828223684511402877053277653704680712609850522674754593128187151759458375453428943639686285104688004436463683583727666824519187646399409944493970128051858363572589449196624507517753769037679693702144153806107252432849847906651039832727482947478158285490595497151402505406257046627479245596589886532844431077015161372602780116257795897767129867420665821990499984142257673682402110475419556848595750227167350159069559437029917689773736687837663523472805835867285657666740110813360374788933800535752004904272517177979007082989970197782267444743831977651716701264525646878997517696177564754832762810410764736885448097784096604555884603060065165605150895592531810355837116327402994527333636749523289868177383379397016338246841254869008112090959805683895655956919448382318915875794210166457144007062488849141756658703099594772712204041106595706982012512383069892323428319932523107109049522678477075202029696888050198502315605242123160869067320899512142106082327925272574643844054644355687266379592517037708037037113286522817239031191029364817271030373313155009696282779118112029661093508440947627296012236713495755989531116358733710551030047641792626994341443448366654457789760828219071685047652062755979935933596783735381678736051980800108656564900790470084537264882772600029859058615023027492036047511056724349667571513490103237337991574311066599486227954349087094625974788066295079263673499731590591267948421448693417081933084046121607581725049711878618044133841622816382348862906597843432659434181005107503610744922746687235139335107077652046368782320393935623174945400973735196296427129722629892669061411200809566042112615341624237184885864764901865761912041589748677731751736812894374328564943307449978271815013997822319101097524109507240502292891208332202997664806525293900474119583931363279305528676469634129191856124307861846851823578306707256519829692291557385296134430175999877888475591642674283871453916884095629441738226425047696680869548459757135937430836269764991559275457880533499990711302947732029267600378418973820222395340701214707312531125113293936022525073188584458526034927565027926476311405155049452109418238191076675392389012427865598378143074586272602545829290223818856331229982207250055888978552035156730354477976839615364711632418583741743067298509162454177077608222247486295477370292469143079660469284675913913751504656392502054385978786437251229904135485669999810657122267776794147924449787210389453756153704593219391357571708231970966674461224131305486853282593008353206365054989602301321972271905636174759209790850919612592807069991274237473057067762698750605268386373948722566393587452023400128727486691816567438267592709949816332556183571450534120447171290810123684957080010359401993758217410641017362225141379005816366364416897696398791753680440738892973236185153770331454638882907025472728190606303132838275506494269640254505304381234017067187844851892155695094504613189925984656944692221436111185174628213553382005545387930852144487965773243024985613740486626295624659003757920767771120294672863408819043568272138516462191560486739788181553566171802635433741376948642587647719995303205247141024840774348668016222735704186816888914389719842646372817244602483135740386423329884115695564880189300361727378084078881862117745315359005581433803737098434054498644460095347375043108776297599060046947057194220973953197150665879629920028072016017394487793812253655616223438516596866712833731713708672111821999406983330288352934260515394604338123623699862939712663178049190168328491723014978523773287128543568785405395558037040109227003660987489337938050401791748261795445381844099412426329640833686066115817050946952759470636253982671995018118745742139288398176300197320255866164933857992640652659871596594397683547372604452468438014602779873322823722201757119426437862466289923152916483596084896229086939648180291601074226906886884436906984240405530367715473610939732938725345524636401597672189302845218085924930668349495141124549503302914052599670341477781037783648291494750661569341315382538562775926715228967638874877032620438444230957423547031274200634526442089244121871402335186229779584908721708588752308989131296740100276967271819626421005430832603175211697766799696723834145490901149380750848890239870710153024038336569683655340859152243096513409129862863103641341728651068214910860338692815808410823187217330691318115074782169808372882394148698220522741029222705505494104530598703334706521370588698884963368336857771529991464106786474841456921279742520520407376883236936794045100803276957848345307480906651738042407781084566261898800447253740698965957063949995664116017526711416680323266147262448534161304266165721758662495427891104520411591388441853528270013339779363202799015303526836507733936357637767112497043462341224973562040200848599928175468151754833345859699237757246601029161408289126593225348684337146775896856358378447978257381611301274012068198856317875796483300909756832901260607366729178100881438196064225224905481817845898651006531977701139202673868376127385721418062097328626852345528074088115805818634142575159913302553059980978906897728150665560627261053854561361697614948777163843930053730994345556831526308093828053436202176931605713870518913164029584932051998549310827345675982640228861347818659869768120057730241145567837206902338395402957580449173788986750524992139165433060063622871875241878083593018936032256743530094381485677273201220626966132301566328312264635093139964136106876476290766956743073831183487794606302404340197226062957006603913306735763976358827925092857478030417171595304121332106125094492186747848315566060543131431813266791474333127645653887859497864468357820092607415913337568705345676810865030081801509695616582148415752290453862173580185159154432047648899379006565891542212643079775122748346757291233371015153782989385343908934286773931292286319094322643592554301641323708725407808504984866477144614255182775113068980251434173820506331765407985414718482731848888144657791051172068102055312012989685435556822834046923255975375784511920443743110738949621060551365239115029344018929002301831815173807769540400406525300235099932082616771370065177430227189745595219433726478333578425164706366891344017174919834951779075154076583301010985187271469406751973491031946417408610885022325371188529435797347565156534382321310226202012390909476010586995558241436932346698175791544579918158235890938786212933403338208191211480768001739799102504273959228885652410303585685959644033609807078518622416520665471849485844132728992008878891098370857711643167083655593766946145214237864233922067692405681263110127130351438544776048069843282952188720300397728849555817714997752678653086087665868157120161616222441947959615175108421673951660532172002542387329932434627240677158461495652731156983348400966698476121913055694565663280563608526687833726614209217406010710615075600987641401909397118442552935087673526929324778400098595934248320094563076702989038248351227918107514422975918214677993754204616520701644202823157719870223702744262453934932777208221835169958311440962909427876496750314539674975669217519662213220273816325575885100165646160771217119126307825083918941159161964036519782412157531163664939870772666877126273420076414297477171289170961042628826556530064897119101142092858921388935079147077356537585313384505941063273587447508267271716842972511703578957604955862280239757883208851376863007572950107825669615517505176953200424127152171938976706539044087008227310718887646240042734778933849636722849521488160982244531133045636844062847477044720426810792103851188369285015947802332793560566149121844058203240376779476414484677128550391894371462340222381026574475142978255789410178635040876830581646067474650627230891080648955988711199310834925585583206711090612480332903722396558423948868342938429541254620408196204629705877241509212620889197578378164995165983505891668714085739239040191526388338586664206878281485638859919535705072890334531212442483823656939838375765786222494635509562524536834555655318370631178710257400685469396286439268767695358111020369449228719744891979262793442970654939641342634705537500765950151821833029639113391029382929516508253926057629941093961010381131318123868380094477124303848531071083337242110555259547503661583213052354822048853888072697068831417913170868610871145412236436850231487481536453057620607433321354320651910286948007018796553704821839873792512766355388045786929541066755023534254210789832410107852422825463696880308827229722087346158607101350057909722190696644081386846389524299030435914783055075114059165566170038400566134972136207061467217489240976715897419222827872979515892052433695160628317409381554261084195177873298277851952516061269008474686315066445908546839126818802167844597312802866906858565584407149287531363833517032002240872419040428868005944224312401254712731645759854367782850413841720065364095747503944171454599585868860082423702688868420939260234635043885710511597902936524788501190269316667900197187976220906669894018328340564982608713613133995199407137757774408132181815575643829849644313243711406964009718990522407146151953340706179259496717612484856523436405984402848218726956432709277680012880500129683273521706676126502862112860399175123930382014381545734486444249763940475798037332745410541641829040049571943313743615468007168290413477948980076366318535022489522795770518285833145079857629038372305608344051970664559908331316448122616855911348893801619047524430925178276024703259872568496983630820128438239420783708321314605271564307861972730600885760338103607780354549773965750418328731001672389906691694961240730819314527872996612814704227405569887155979669380740533398707751491389428630915069544544256469475275875853670905220567326970292175132693317696584107809230719958532495165469330827629370992018488247674120033076970624885153462807675045186873807397538172030755754820579733506175070381487215996667226256986932079864140753741127569672615557172143557706929429141672102058180465221812756073402297456239887437130435984400910644074893571430921413694099363235545142455067249255220543898760564056573070624987486502928100176158750897635102187133686276437620005917706496979002329453001798694718786346756210849057911665678865391328720773750569610226779389768696300865927047045293422758632981470424341560462500973213928893724780008099805651362917009024106242411403749693681660174599726342157810493788844341426152738712357168509986588937276763085872535760317594248404478333582285936084745330742167614214371316882420301014598538981853671164888583849195823602311522154809617590675488405759388351636919881176741649409226363709324880842361245539199415287443945012740421318396056787964324393855224078751360591171190221474314686724210110124273777849633275149085688089968469326314505702214028066771718622684858949048577813918420312583047700931779228185567375906020566084579134762265567322620738718631855184844483199696902690490793613808976276435982018024929684954258316773061958362681216507033370731076800358332756149477534413657919012830982171647960319104897628767775412118156335197223504704417409434507759248712684549711070922954308394928260514777722792527695441281998213651786349839775585303380731612418901308442030185348459384065423287568703407287970398226511945383362521378748191030270792356457458351498905023848603542805326814433951499444932687076236030766288061391138808933899561771009751235064409672272686445862306151399161949353902466992146595118322541745773657239604657831612872959416278584850861154777631953224997188127802872965944807359979096317413620880838787764416149752795479148354083625158986557903685354409236656910787448343361471084060517490738605663711467881557232659628614544906624785252662185569008523925088604485251821428947514426058606002836393132644158342290467079297308398397513462672030670041498934496852477031472146252945324792142312830936463538846502527452429095528131836690897807235211060425711058325535683701807013249867140500287875923601914339122992963214040790489282064064404377524498210266962972995090333234717171043993142419433675655720174268987737253417019181483799475156969691565161103348467876611534283110499234651479674257529397208614528243244114414664120479793476853281242522078280900600788826170475939754870941161386102932237249131003412448040403385379569954551127305798971881490564567868490645340988705623997224836379731659339821656562913471730669150952624224462737401750641044724277255017159271553472954856498959075947793467651803410375207622623201247197384215929601701273978292053284445126956693762580481084883482693742908166779091902978583189014170726836425241221831691961286475947549589035011288173081615635048975564492649729794945549553591680939556298795962266131019699802531500674494549000070122515275046212397966235129715978660463798303698366398370241113783690679963730756429409432304037714869678115386737434484026519062607103958300628263079426708567994232858803285700309437447831524002302234562789328334342789190728367103054921644637573449039237413791332147767614396580619711737679142941713050341717669030311615999238050856769315196531014097916791096332032122536646962741777567892937468665379921347975383893157302544446064641727060530157172433303459882256501449541307887252315400057628000229084019839158211303782261247590159328425484511467846940501760255109329102225714560651619367854729942322844927431199349268503680709585216215146627791741407081084604265838931458468910550907325135931758536916533673484312964036611190625354749173910562634617146882635184262032332766196990205764610257038878615925129544347707272531038035081356636724834424142555230265197277682320056760352373271146067590568546185496373240964035965546236390466029677377495900245811822124567042338824153984420852381878940983515984348327766475262670743351528413102524501762448528716615684885173450934693922149533844588429921161698009891350440765829024097833487104552046347355921087693769582823610181533673649545874311322142753945916745603435597294507380928746916172046704979552291300850278393555702167405956635354379275102765764725753676671805045023881382166464302192977543946092964703630499986445727094676606499813556223851702330360840976447948150787112277822784181383202824020081457249944663690995973858920434845507937643940861332959557963524944500407057400441144821025012874180020586955848627969325276311564112831714068960693385649087254757215681155800621025472805381689613254223966899537632885052409282246711158651695254303369934664593840597771554824856358152193674759199470818573017343873452782098801448712663538075182290098776673882610250639138336229117513245583233141382806181890273622753131696619037871481979980933120758522917161142952854704093018913328598226345015737558602300355078741931919988945003632652037440357673823185808818782641406306118292789829643842340570031146565303821946931672218865240169032744470311400728374145173324479062073546319940713410619968508098229183162457481039360843327110052597861222234511359869383641230201874546011447389266573253492765989007898221275170905768095999406982023034492462833778560328795508647670539242933539788315184335491646662948302510520538447489418268837908965176475217981584618854244825856026113719570349751927899575214091615846977233427404807346630528467781179319670040782087557483695158482093311010568875592052463663018558580678932029055979664491724654354628533657809592449237147336015531954078655044397421155686304993502770937998735238644512717929822086991265826045166712804848731016948485827930949494840313130787519754122685571695567863094304642607032046468701562011931453317700480629178452276282368160128501629785672072569964469421814186081979300658922836172853067085290212792218043922909796013761117556604788952419877864810206954245373926627601694203239968401014488446561244595022695634150941231975460726380742099275225243311391184744945472369974636230550940051707520694667617397599766183113256131876839749009500275721145488086230116990375667425068391227824256382178518289562522651580067332357215985225563215797651103987730840969439173402842640767062187231741927008223548995617242748252656944608639916439241905405844234926505525936901831741656371216211164383471282730857041170377091423875065791329961616456680728816299486897296678944807349293251565160018966857122475055138377161381017718965805617928127433582095098315862471412768449514961537238532023091818594856684782141341018213140281074970144924292210796815665088526428569993002490349077550945939015653995999610403939513308961487287575972874672603764840327439451040506339313562612701793655800594757150032464492301136785683851613166851789700073215924058929044783211455854114882169843876556782562377565919512586496956887518616495641877213109081498481496093087412840214144123319750216103535160070352644710222126207908042641593643255964532410168977175501037051000831895747115827064195787837059987377094204120295582762727919722519489531299557865480112979793787978372635958254407954062139676042902401964702550940329849120432138623922661429907558695006516049066557778661683505576930010115571861127151692129726238470419249344049110199821783617736489342154546722765121851189834582011720768138285949551235854475088512108453749085568961783449143962772370899716029449547877058730035350481095711629052982909502160168285999224442341219448956490251594422923896760609098452940754093461304490760635057839254005997020600336507666438337906774338309001217800766513107950513791050098415511589441729228554827867821729003687669373466179158507978356721156573456782698218175001528394288633688142721831758369378208063488813502503193836692123206177401991985718244710587178757402259486319899960113164479718956962144137527242638133380603399408853484144916186913292840474914747843588125480357143028666580626314748008621586761382347155617766175750402553206865945607176383829568225561668456633332204225461098959987368553761083408362428159903834158548659628399083784173373900763770327863145010905833539888895933888577620689301968676619456697511380881530353453121102468907003863233795935111070845997435049194409885899716824322054921449180997471203615084243012979264077818844721501675909745670790924997916454537026877228067640529597929229222104679058606199078615308962926281053153513514134067709657903814635955908180930267049733047151392793309301005314771421896503981581626090877473201448142070964757411756710632904408726458620189194898792593178215945491702256591907944347515369328373191481247645570429870544933262027414866640036767967019848499291749429136538345874775589003586061930318562780756304129046731901604888479455274530603055494812235611086104306447102461684921799407793238622816751998494531813898239945313244749932665252713467530288055050952571553729943727284774305083102557863101444276744961168264131655636043089488102700570682316426787689795308707336779389564970098525615890764778561773567429692558736477576788905861373069082294900542267745778123158679997448571693668561621039001005446414740274824821634043792556817678695174665398227935567538537344775334961203325580048404999019174660364198874601491435894108339197018454825159312677427303081907138165753650908930283608022230046424437750421342002550048882346337657126323249581678124664810835489571554037091705401484730308861496227809834923606690047736556201428407396043080174390029062882298235977507399682610406438089339296985816391654310404404034551904878847995828543540864380953149346725888606486409019371402260639749745390048749597896493895669323377911824386527133540021638724910220066367628675668831456814841768569313368336660834129409142640644419706999407924945621074032947143816912097342531848029355633138496053438225537576913210276097048310840425181673196735218356990301365956706681612721992746063548511986605163784858332668662646251200858222491988083581493522645206735041644512601042198317089634411300762541896787538023885837928786327926831605071231519379485489277954600440457611543980688026545586685658170864015893455254158514620130064669937772406721323547158524078922781439105680118744837611256336732395633093797522539754836227324485641811247032556774576173090491337377187981320722781313946188587274625679224037807462508898585423998696516097040856475911237155574011641394363007954193442134025996952827425312325026562898188461027376288364097330558053595681404388566484372608309693200855190489266465427118255832914433373043194414157318963744085885119186254564644887770284631981015254194388711008401077753076455842416044564581950468827231154236672263301112882175470320207214981624040318777529473247390574628641164876870280245893795360112630644898703536528684167063118770249171488271580600509033837074896771591854542445750115198791130351366207908889554329089326175813657916294424525478181240071816834768195869025528114587371096996194266935754904222254148868495520497989801317308981486089257625997527839816905668566197805421264782422155608137731099309566370760225550669655195149749859687787064510661943658327448541566733806854311056978271026284347119543675400799002886886874309184066405006637005857030501172979690820932393689806859400767725121244872364078221371511943869303554244658690395718114415192840613788255584974083601218035131180353234030152516063977030397278971809857892741331053480861036189767070535032650285408849415917132764769972141265016839104533996589028281349778755039758499290745318170600489633297185058121943370449492058118964546961068689657089091383703088159804940901701506530837079947924800828905226986578041390485041228105809988258241659193284079717045236266952912283991068728404860400778135278235202861992874382055602089748811165153578638775771452551612718510354407894401054051175229943369119768638665741168806300603626390175344834482092198735664638656230682022436815513258623273813020585850743566721038244300719923657877256399863830987690016057670719101845110544298531080512567108270978736195143256895905452719442862457268558962641044337794814207481570307963597774328615356593056126759586882356982878912656797099635813312586758296608011659321743723045440107013640928618129310977620098057816400944815369508512444977432143913262137873264420400325997555480373366152771770517221967551730090736112596413942661744915925717527212830294405707536909947948934370214499809250233318756147990709314302332279752292906236199098916137448158303652757084514826409726282644364812295899941841595361494897513982513821668150454765183088154757374088209060829690481491348646297884962451849537982897861513153635969402752816558753789831736365076107754345398664403073416247694361667952206288475031886056114737725075814039632800190502037892198622977081621829132910686763531299631836232247130019764534682338791577713288385529204870398312246221190064588445530515804766142912819747365852109007365684601313070412207412225414341834715129559425076995138960441033021700821042996813120049412677933454041524972575960015402381097647732016820650577582399432207301183069433491650301980107620773468792966415879494051740962978458309125605340451335825243416063490849911384911963901998345534894669874591767041292379642115476842352924479113585776659005923482586260356259457237576149184077935831454093531911828904927845558190639558961365823002937748893493654621409600700416641579548326991752796872533476329394929161635086186345392764936970258172959719074217365089263506039381556826415435663860837690859486786623854341474922111288706495858310665954194968878311006135618191857194651719743999624564661758446671054678033604468609679689736279933249287128295090973399510609047155022780247735361172791108025469772750366131482393670629220131913256390627969319567402931743217866655787248856231544726381679935126532485010494452351558875338906909541015348595331421527258078389977015328452050522844632290626634106273049015696670473941542415771218588058787608167354822181491277718446023201850625533810275410180651230867618003278060678323920689682566868221385842299213515423985015784427632893135074484454244781465105377882099980924413368481561037417895430156133865804841223168289504414697122304616387466512411464081822609985738418958967169387295685885970699334164366206462415284384133112375995273953460266995712515969646996465135140406909868133767927443764749588019821563804059178301328155043322269316220101493855994828154998757723769650499598248501437453094802777810652901636786145679325685078487677640540064316838809109539398934274085773857589944431274341647962884407615066660439355158755211636064361721512780665950235827928983456383714348889209486435401930495713253563175736545346059247065753980293820088309999543859525697898089218702822277525329078329745446034960762168536299046722266995480204644248254711850096252879488167697821310305296814759313681899175019817469872313608003539996671086240342987917382608847392449768083981365534457067659980701570325768703494097999762734112372050140414853220336500634191529467370884289836746428377306793574412315722948371640389136148096251854990318703248736284278350500102234854303724564813033558815486693823831483325113301073608880620035837284632861539202889187579377446085398699383326658514363010504839637242810032580254959152807775639990887214107646943426519767122443511332554315365623344561639928423977775884649723823252773854400831930679502568669613132664648549527255664847669758539314185329728207588468085931370362270999206986011771702390445561571997024125568411871525635214477487522445901707138308947253752236024517766742855254688758056296744884180492078556077360024057788359246797183623672394106310828202612997373218916833850968893554134401525062299302947958107241412291876449950616745936953160819220785696465989432413802325724831279995228338525761035359351699099204301196104614642045918994836425227491817242991106716751023435901538505016094351574116597894226981595436729652416965219533917658129942331613481576996378490608842837504668356752123340391154505512709123440934555634843191874583263703698095575576152568754797406411562383482904206906363984594170298245259803062122117144241289012258211303305859768647100721350992516376013442765936476036105257932031700458121854406460754637461964913516970458159680493912451108533396003798366921460922142197164163734980853812490833059856264485543860700847367115820442041970805069539321792285649815436266948564711850094976705255975332440079741247064666214046628295902424436441559069894481983082455858455844648065034776860779913379554525038351010082429450301612498264704825554890287566386460823719334171644473376511654902476721372000046499918811519630948150983711841692997833129574420656825045098313870864637876847463224710756526631736876711301665646770398864371241922566449862503556070040897753996424698789299295691247136149581227352035622800389164158025490559859265338378357584160437629308315245733121803235611208824970102391277521693953033254183359465728032186300266770391212828954414159768212666554562751411375204539927669495460309258951989062934616711848176825667430132542275796392193738262113750294440920054310787795450352822750326123892201058897020659375225529265269981661889259431350179658806173813838134623942944511644767377489263890082803416390517101804125068056914205838866366921727651921771319992722017287869872554919983090883870623840115542080650227430404847345001916130058713971913657991681248932999515447508935492562605476487154918555573872664104585804944622266646686446831719848826452460964082690696384211611126640279692789444347131999320397452926468477784191667372625691275443404583014133692290067717573302779959631595717625723263094880084291378269572190225950006971936204453978253334543787092732945421149641462365161787594920058859275568907184457261415621379281735053762474140497274611494630609423059713449706459692154334067609381428510302023435443704171371809197983076612097188032320020801906929456557420489212993717645214581437797769208153487021260417913586193784630481723683114424667065990464383398520140871279376047524514482552179477226562943380676796213419136781687930461748969662469414974740006528601510432310708039605191857621379407103740693474094050382551304469169267695316182222425649891504011334201646251129777560152510224379511427461728242687764505657186686033266174326197915517043593871254480933246245669303770762858902891406941878654364273175715590481653189040880138531836381668702355128988349001481232713314150583374562813254773699758771667077409117891777519197451255906597565098373436308506279460528372075383810886499986947322147304477840855401077907643283688864230544388952314478855723930195069803676782536217989823489281911091710882567291770743951500261141327083959512043848820002996718000762297252496120533191242268557993579003205931798209262855929721701560214304460288570718673349293694732252681809466809525831486866268911555210691498465518391675517416191339596254030158713462460686086802231247087494960647781089187545046177692146407012134705244627322743885339491270774967271115330805754402076912453733090556920146983823887089831596515038155842827637444082751264096070300020364226289713702433500231978337550126268893450729836611243819556867116063752828909095604684055140691672038634277350224971007324230696704176149949341575462265995061563639179736378837108211521338870194688931014548789976948804920936017181114845749986405983831561391975598609761807909554826427931258792906612944855931886963157354156947862433442631656656210427640081695072969943063294673315891116031204249269886609977735875533259524994520781931350816540315168878805204450443125377624006741591368408339264459270619835072752182877806439217387341170683109562306233760480690311695479731341055574965479047682982800169165397147404294174470441173020101770301241579635866841998544562413976054974758607925796372470625963640334344835569211711385299295236927884650228927713806625994804243295923500167233292781397221243652962763534374172554868450623848051424931886334733569263251013622214521133780516300838593611741059722088760465593332589060933242121272025041001602735565151221381308641003438810910613276867538576935832160882582176741573935169195226698217934552611742788417152275720935357803761232608029934198393469038884513636642442982397164045687486091591614155795175289699703638599169430002651539435970746235922258962182175495820917138656834995636983329472367298340267933560454984508703279275310044339083938045684664851824334895088179846593192884957403905895855938634821221148966032081136554300148825966863886568101057464929525005776100619099382784829694342177948251417606631619915583616442718323177207608601516186581724970665631387595151561633483090298465360289114035153405383321957778459685742639233953911460819469100263471234733395781248766474435818611908903840512913617749149518744327503066037559385059864934338095136891078117545262435910608420318266567471353357918649949682743637959780192385295965448871008016702131007156368380005373480648003821492385665266978365761091079609052382342434134944251645476590419100053692996210922556331956380222681430759322893855647353290423050409009749502263000434770262426961097222025567988756232302466835733602816008238117666837029087116917852819224434386068017298639298810928674416444777993301960385442031081331969581423393049999401109687057141470254268667268475133382907427319305283471347885536104329222666195162437634700354953177640735763671458640331694586169757245764700084146799940171237318476322659744273566201542109839488243294775603383403671525921085909037325302525069653521192457449367656118147850360823949154097753691553004284425669860161390885305755026692051924193497720413659197350098591078625315359107140737725502457374182717044054863712697808717582577185733547710809617960768647558837890375427819019364462281913310003060690773136727442341010255999103833755683506689890308041281010414080017960527184243461562997609015066487601108184823982297035341777742704713951064553618879650820860458019920355828900144390053246550464089525141884117309201176419866094740236736851551989533627599505530389404381526298978182194030528028216497798106944878759846619281214704054131041939792224780356630548876534177086854059014009824726602048320735046456241394374718463872924063134519917804607660785562594180327484040981340364815271969534740556899449123864183332306529060480819832474519422622855693015804276503711719421056674881131580478304020917961539970245043338105073042190304995568425630885171845919485006213302297962761586482952571249937289413905392035108408563185939124140660643958578314836936815774045442469872859173620320454984189713023044546737664013103525417693569611915101893837747745697486632170759114463299296263085873854840377056047209301726960143525533871466796141318310183460448988044480790663540915984557089340804956000462931683069134431256885902561732451754996949551963618477720697981693242531679998740450181846380433909268378565776003157268544708141266356414462310191411140262803301547426883210809770743547855166031721079883214991371438915170854762268900391797221546781521726217780907240219955192011679295079738391165023697425485701855157637544887232496728428359562012423148954966782569953326683989735151933609331211393947936857114469271876175165638310070122169293827575348357892123496196385316215020617859351652170347072081374050365208501741634971351772901705750334196541645647734895065320897300771123010727737327766750531802857405330258971633578931157648624228991429578597178480805740055805507809282909842125248547137976885426886284033312482036082287517913108871511610497768068052780191753834301266037988266771911354892499480027503466935175437843204596942906454801265286845301562877660907970412249558026043309252349471166323462235393564320277802376532495543969194220038355436873948282811339919304912702719109437821872086838844913090116620121071706973485624606134748993030999610454154130491563613644551270038490567475344794268430374442765856398832789691340220245199969394273582318597094994981970615673390676099347320119428023561417132233779390413795269900728924204265228736717166400641837415461097459906693289415692644457408089098885121595582402504012706818612994180227740233790218502587714054476874899193235706138485004257003628527506773379789187165196605765387364733476882914596930201250267353129224848631334971326109593740466480619742437115662234713002470632654348260012290410232816342782265223731509722982778544531513907222615272419993091546852422840721263572717940943804374448704573695213003505043932597221963653200039182751972046334397746229338275698020304618558346976049100326001814342865596018373631564752880004888131894130056180514896914440425019473969620501822606222922668137088496855414082933127128253253237736158306987325580633048740451800529904551687647562868233853220114651986509484000189830786031433131866926714103440990738193129335285505996829750721810514035630458763182559703974123168332319306609130952777913430583101352524842593232384599236701705046283621932897740707114269262665882562483029716739102583085424063853193529659337768725087844431526016060987424354163672067124705422669204278080076694984630899121015478939046265274676225716944850565608091659661634130577850456977454331705120758440757762020214400408440950311886510614337011845603493086884397953161273051382635497198840034516114346360632915295198676419523293047298524148656349717240967694383470555644612676322907446350399059104627670859027746710472516014329576568179349594443098950910092621677381811230297680453220179246565007172727745372348430714456459441188395866376260766085219925288778129319315301453190257950566619256794287221817308795457624527490267975626345439804894858476616953624354406749355547379964012745552130498426783990865515814326624988131831889785648932341043849383355929669473852351857846844104721822071343577849720392431860903999861179865800705062282228396807630830418032299429505830548339516914988669040987481611432280088610012333449724152185135056657557474844417883605726335311883024128936511979886454873732290209561934739201086268603823192896266036917723471177624790244799425714428763982334513100305848275947653568907831260418394685520147578219470038804612864543260506111298737790153018555056887118865487719766467163147876592584242115921228621157250661390353722299019701079045860282581469299145344017692755740647807801636167539340927458426921839772649703452180066219546473619048599678549600345086371375958590130210420901215671879742065415290377669228379924407334999299871906766016180618527399794946577401036425151179038556888416805596299045338745696217921513399389337122820486629616144046715087931741328347277679076453122437310727559869017551591050703589941992745720578894832918794678532922839669560356562106246719779407053291760562942998590061594818788967829074758681981520005563025801860442971128163970628689966677798695200014753579775593812557086896750700048201762926682408668927315609711243162223671094305057024292582312315980397719771012136842825525331993105767620295700866669277969601103729635725538279615409931399595794229262409226889972676638916726549295352522736093436160494717525450148067699781865860644852775620415222921052925078628857178063951243704778941624574035187698809963704400237107628330297534148025944096594529908114325212543993839902365171057915100715464702348290896207450163903592431756613671112344147243423990287647252451542163655908920794822628930775605798824269131990889551052109480180976798880213961033815341956713675573770810714179150261579574979186709030347074941615895349295478541648571257141656421907644633600665827409115627759313207246218506658408265321822346281881545034180183587539380693952756807435399346585671223386723224987614139538408038822162524400494760359858217706542903363033430402809695484441899076739416349467834979931236104909224277532870420261365465423740957462232117509951906272214512239655283108091428323613057267073594642364469873618408677975591566666999726288633431479684234224674805745930390386200215161835783198174527816993819856171896199927305535835664025092630815135724136994726864660392187090659979148081170343632799953802183071943596800050927870273028842973927705239531511236456014494686925591244122246573853095908842957177398822766430075854938499555099494170279288640621995064204433378352021999090091719808140159772998410062852916997051784867025957921379166280475929654772403055528983869078812578258698843673565419472110833297965462213320188519791237092719821965403874297458216100181797038668938892463953286047259917978987283179072705573668432076039753284234693413137032724325520528116101803014061517609516254077530859396741603234329971852490824670777508687411300554422194607375199817208259429382177989107368496115823225223355198670451422002757609009814595122182397536320257677090840423530713344979630505023682066523517744021804718101139535496647506064932013228640568014544778024441193789638331759077898117451867814919496999352960427491078166931709281584826517464017371192410970730103421423922614071907913629397133190601059090528566526829913123637740499817385334787116338934574524120862314435718778764524677211610285700579270228197797398503912902041123643830880224878944637711765685583730854524124068081788379281166727769295131836415930753435058007769233422457977116071750755050306675100112879498413717701012313914409015715451172941250923048407279530393706361769717769285138238895551963624926116794760402219252582863196361906510044626754053524931362290159825863398938720421593136744760008720824643375126377979568292184164733910610468062874192518020136591765767950680459901641454378605612017582406006307228446573286168788532919662331917897002732764891695953431685689179732570076519311864036386461817841203268979772954390197588055224460419786691628795957291438781427394124278928577805082867949460786086438003630079566179691324715135216910609589058709958975073387451866907516816367743039580892441916286765772335696750957076773737043417563693721689910171382575129834518802480761148701637878070721759586029668774837453976733466359374845548141725991591632903694887322492935977040857786467634422038728944462390655794840831611119896173257295611059159683967570470388902498216496981406434912810520094189357839111548363472579806922201203714378587449907666363384910742142329242601635931566608095417456796301829738096208494507459852994676906566268671579848064884514779401462302082086496837371599207593195620020868209090499216027427343545319743656581208924896977313449899593075298762800348040170811719563910605686593864987211224295097199135379899366868648941211867959684382766540185376678282533047510401289334356426944675032766375350527317726682328761546379936325508607703521587530049312479903268349482697098946580116042454809386502989578789868081603117317954402929093925844127666870539556193771050062157731639154048146411474653595370641446057536184722466448472364318382241789252362083022027324234558358848292826874087183356629676262959004180915997328464432016694618249265611691497561990214337175296618395109085886713951688099942960165138831725978548153125352676583664895597552802053780362480756618724775652299916225812212513071964579624900206634672507558073407891704522980888518037063964448766069547593579698147256409174376030354978314947640350498245476784845907373593826074946709760781436660770180553155374438967472775949338570745930303477854363612242204711333334027307406664879732673965653681568101333702842007831684460059063878112796218855917768029959968503295485294337113611670968902044250922282705952271500831958927172359180667759098826118413041798344288776432598191647879810608406633655465096678061737127927689351274213883362874191274703750101199585220418930689686726288409585786424150040645823473395208344810719584419324197935199721477018554406348719190865521118967407512724718790148692862650325624405257835279982330949740782693555678049650755013155078388958397881316546603883132810079017952982940791274213508777867319923188043674008931379104839514203702673253496998448999893974054811034078904880438034736786845548662422104934182652230393900854416245403062825510728938094443291703070256390084442968197936851907922389152712900245614103938578108576789677462680246648570623079136895998887905593450293474428655621711699330783791989212883838942920455493847237334868745758207458480316822490336495437816343504950161404023028492140507191366739221739793156475792402509211628210963632937331357701620426576949591015102864730695455414468561272980018416111973913047231290552420313668405763653984305468849232270810359438607358091826355514308071356841081532309998820612420281756010678641120693133804543183907966071806643015001535833673448496831563683281317467491444238825276132868116205456958976506426222267565164128750496317049715282283776492821493627674404169818363822099016652197105683462025488170795614309885460813165045477248361762852010839924250065838417215981139205236083522024291223662151447398002068379156168825412641481013611979421932597636013424606494408658851584874217929154456813275019960929627218235535678212604515486862049378604988573672617679992058924020425725043000528613555087421126531008374441946062559307949823448086998249432181653370774338784026930677056872330325780130806281829120762292245595627678252260879544632507633187135177196810522116240209363162672976756692458552337686344794414458688494690843390291656657110354326062585333617031668189604287702630612371069341484165884304200101783784757706605946583725436098676338223608400193493002562506681979115221561943795708887187420211807799274991898586945493603186076759338737024217779017684561327326704822203184505123354446328068910868661726923641177832040461363321893949222787460186575208986822453410932691078048554731073951027593790903853577122361625129974268377983035926741110139543541569560268273305068960525047262732963530481429923204418448656785372993590292627783591410247089681021425761306344374468765654282111256695395582140253986385157837299195697035459817000947785201221340754316871758145773417906733998147678273963108218469741292466590076640123317100872553166503649033796080960233859676527915240289978811221248274059986304285464534223560700651348919098292000661312548354883032191556487690502824342603581214033549201350492984192926589388407015426212438905694793577111898257992527268158853501654709342799899491128433142539893893190334659064053072222580222790612319063590078059040883498024331796684001901222483015735253008976799196621486650547999385910509925169690067709346323299024280820454726580270210985418161516208639027644042928944086965919527710836317395073749443734027746265560671013693331001594971903505254218932415572279191688781940685090956450322358065667252449769150136385334334069904560691498482412716835268628617048232311739211663604383655288772601711200307164895490405392192459881943168833150677013341686843097656867498409636680447224259110887920049311880052385829550684987009847237946259895915380956548582808963424759783855999547870394512320107446143051431275030159237450852034426054221863139863430387483919675738004913799191291892713763076132544268907056700433473370424280050133205899548593111205751091853207048944091578325303402582393875086662564092157206124728602723707749551508513694852230644985512248014901789250497658500296325922837910076879794155908084325908726519288444789359771516974652129969912884276530196452812572018914662188215831833193154037755378877990824580672710863733764080805034252193572181307738462514588623955288399126979625240633083379320617313423373174449152978751705570785252756144491872789649477679229021572208650708392439809257277249205762265591503573667962676876340355856952916471986689698512622898738321214907064899092646702282135548091210581607475532682726698948545693387577374932653169487030469565462503739646452505635373228373763237552231107299937677427974588482755374163612074377080089812174630759845259352566341844748056953832542429107673272656237939602387766037665947106284513916633170053431921329022914556220521643948759950144356438721941138099772512189172141911168324967229927058909928809972440996596647400688896894266924919282689875984777138501777330723684046078969795441534250057366756575252519037010985247436104631210860191299684525780144225644041595374851802706162348905318043871687824334891514063580286037043368766121722433525890213858252258482014511400975712198261390268846837713104693009878372780008964495761853699643654981080106233736407419125734510215148309025757761428367438179366428226504962299427892147541194724999709677130393458331887030406985143314920050067103884406721872959019867135864368474312105670760661298514404119542705487121326524165165646492681221259956634184886210954008064549510721783820301934389249326574096663368537293505747828761068195464309065321332098595521302789112797306604482129675897596626552674679087534733250188431912179919934030224146122144374957288037598991541758462262717313634700777668357823091261430992270999356650132707733512706337589623441717457230253041602757458326074949902983356213984185537546171013684609760266515922566223449302093427378273798195471320061875970310938764699389942474221841568972264494043442143865852798119537723777894190218235288238964401500175733633149689318511178649537151600354500136074180518281104913202148141474455245799030134083019804642682159195690957627931440150673245513168249042770735671152583500765961055496668445040623888832680882733055986383719247128649786600259012247804582855933247394219338501106645538982665799803496797328809701968148474937972752610639775024481607771270836479009437058686394617045417833871284546670702158949783746125147033146810055251342903743624271732643511215726542952535779822887744964362990678207075940425457810046596506313193902699457319897742479473457344583612717405467998331342182620388114386707901169932264681337035129372296985698010404466960357917407574655252249989400353058879384041612963575317714175604769067477744844084650511780813959960408996344355961873639273008271136628057028012261646323191248599421242986541881812414722201879993055923146586736809811462165413068798411277382825547403777853516004513529312353766644582900579011916555571202591249263979130009392361219180324930650141154828951808078429927471749447521974252970627715664132819319110412002617447297217729512445779054246526234113095579141872103690219561168421891317961583055902518588969524723085050249821750774513209631041631132838770062447975532228718859459322925907254867844057351698130634498850308599773408156244266916976475910486525005232102493262128518030429387790389050663269647875249541241353935636883560203567587846281746492874159589155283261027391253800696851642317970616971998087985321656606320897152028519508410635341600571519474465751578797476520317787882521998559559627243174483245853208366245454111784694023946686083208199202132584947479371101898900914451549396025893710168215866050889860363900747938402580225964918983320451331296603318024037683478691071311848345163461343781236163594552030192935227364223108875442409931072879150549249485166231265733953632512836800772198894463621246877176138918601154461516552155271383410256985394639709216220261458771413869453284053559167452642829030417429881950253227319511490534618580683376200243959085659427947594397030653154642205924450822888990515674554730605401572256241610660104598980972242289595058502682057681997470020856659098537585366555876301876774547830573478639556833408261965311142411785698198161012069661254652429155007697794432280341478282186966653058924562967197774971328893943669906381218125707013903527141608596516600131367820831412154797958989283185347686970276429328680095512281911687592907032842285037228200931722645603399207042460244814038362431551738865633439473623944177150248679163176970689852536043019487419592274260731231297989401155060133522776862159750890409136099703870608580102133632102892846759944575961291984684092944783368205770509608233698959824902812078862529103204509380764509280651809838782508720745330956024388981116691470775075485025332640639803926305319189743870124333528803988285892933112062499295864475238035469848805726887933300450793894735371049671708213548345042184092908468616765420305515896386791418139169346349949174275117151967739694266418172158414116371000169294942961931065959594292775553766933064115594894867389913402519246648903716949689317275631667141429115479175727388803026790948544423033801395167830578936210964501083496141282220935732415360197290402588321932585018557887850164141034168904110641572722553488260828252126554843757862490253713167466966300890809875600874750672853900171928321058138715630980222133701847737680615499994501918258265307977252268454885283245769881572399475825812336413824942609729830348666736672244505139993707272269725815980425888965639006946536063966275546320739969407950538257944256747491638644771641082306159923735377823340653797346954465568982576156251274979625840312853509565875018812194966519762350268412252574164224961741171661020026666605408381433345083664063798157145860215721120741460694243535546752103165400080771979003054962199347079021903639390233354503262075781454464240214860698358587216276108567646218623759170628139005459566089238043699762253345149405087931904172882563750684530009755514129945345197024618562650271363143915067646194041488201971630224700859994985345770813823011868827639780792623591178341235570249841708864558707716307786934792229700481572025960392654259673961068730977419354431771830679899847586362078513576294574681735005211344840167225434781465039217412147419190939748416855617577502031316511374640306712302399040830365375398361296256481891257393911792871248305982445098440581649264442849398719174167435592399676627782803160400339538715157225571595747316603665486309314934183529077301386189751489739343191003334732745321736959042269754985134812825013407201306160995002817594268463531523217987239760157533744962863375496329224216243674319330604858936598964906687150830831636911584809892331147086120147644548090480469747990283405012257235360536452057500956900819193464250045656328044035335710987369696117615236041951601756271719407129410944632702035021773002281624762178921565394311274642377745047745721548907495007051717974298739861091198200398252902727030718655732330306095266443922493549582780501071865267589528722053609396330645556799569747471205810871834170664865192319283251332597023085361910009524783010490609858808132647074842121792912365955688674164950007990085485363352585421880521814547921644730237175105334603109245186424533952977765696733346290905585145937802172404961174853507807496066135079198095276778372888505773194466210581524851138705412406613934723805989641421443594800740514993690262051858899091083880123937065331339343858288885351385313719503266908213468278038411481201893262621214009013387134442015887992223494607264710820710460995123347308519010516791580360580201809086914836968975487269741426619121840220362956879526758414383178953323831414602116324699540342680706653328104708328554135946912997813514972631333564490244458755242719021147789063389455006453545439956660703951100602654168150286954651922451183814930630600558228015463020769417627064287346368773317610150374188145524513469842708619658291379871557534363459912309695838365449906295110679449261370228731364205312247861395661016100217648905926794147050912487236821830908619407887335671684198074681145572796823040459266066885872667015836664593208420564057299465901990916124282613703630816120616509090767052123699767044074732708214298461017787851037079043418060778495190173926516608482572775359151559780029393273681934524656578198991292119798170143230926463255925714628272726249969574325778451991679891784644629900735444573449209048319547229350492092108524308906289316521882012840573049862841617827363123066310258685284909562322672766662406210763560170293384985189211962798409208255687959293217094547374197260350890687172657448948472203789694088099124961465796255699171441635125738767285484920838170911052543481308067189275640386092493704028726760670888658273857933601251634378942511695128693094585554920443824096842340540970905427859784780594645626945141181259537665891211466819967844183516240936918737328937546691775549677725511304546590371466567682678249156634559260415341544966588960341530897452209672088816173239952775693546705464627289940199844422724969236542603921675505586059191389208759353289095529348805551118263102405944137225367858808217450363544202036720805396693718463434543683738930871262406316346867598271318300096023445736290626971959133475702959867403345702679942939559010041006004300123746580344299221799587698897001248939990194257623327431917389173937896096984565899042919607035828955543368883892966087239840456447623958238073437190176636036767601926603383996125421375892168861489824115218597893108225709163897475246592204601764109417933214251158789577476630473298169777511690574055685400094422145879655622363509309743411705623317774505722164414667164182665778472935135945876527348566681906725436812185300810982591572096228875234500024946044518668006163868868466321347723443778715068181982048720872848101014046803724281008925162636476324716235261566930413083020169151258838754305347009042909746100517194204382132646951192722400754777572758220237211908951788614585276487581690510731521889562506227997310564042817799889754197073335560012513284721765576600754069754456211865708603897240618699564098461214206833015125141522725359072106867232252340284418571327276405138499395612484670615262892811315338035781719013104933206268570939706832568439202514635292331876214954770076220441493451979164180752154959506413135992548881080970678466866639902352112545342957604983486119970086282487284133152391288052550737260158604396879600112133675866938240041110689706813624886599606880705246491532209985727990139858248036213530973458564550425467568269701886085625380032212539106003395256740850388966034498261434665422377915874186767962008970382779499101551669388594015264622007132994599789905050341184469403926738764360684698919658035902996557943942310372369202873029304405160233880602219743760536126419784065101644136803418925218479570118068102707719445362340834718510742228211539992689105242640241290582450999549139142174155394999914246895406509340676620726944145977935159839619802079375455780501649345851527701584532710070197834942879901461537621842585413972179892882857687204968818817273132927346343557882666462931544950593827382117930743997465454638232161239243516458692246859813329557385006177808761938923629528971473157126190143304331594330980451793843449513445875885022146391322502267991171943095734931403802209182080929160501384901814406792054368883531275050909885672187367059002980887041353867682318660708830322571884145406698451567480321424570932072467217396881186004163604491574503657610344932261141428918740698620004136657253307475998110496873617508903723320524680696626409475446186780799357925477791124021286694509422887367953174082287244603575439729375446950968881316617491632526736018991025486195474078030855378080016837822820441543860795943159274940695158198689460944473535448758831725991663525660956313167464053818635088850707092245473200431385284818376264725834958284750118180887578881197650685475457362367566964033522431855711757607735252981273326423665935820203926621826846967697983560275111499462692669615270001503707349156154889465219308506577151540125251100188021335153773276291405842187965417889213724619654525031582919765473390518890717457739020746169832871045976363879619705356101462313342001335997288039796072784157637274949645512132146106985507980661018895213600509551446040176718789804202142653649160819893514688875242835253394109563076970073502309784234001967251768589835435991947527912817970019171697042677793909117527080421729082964738198668171237920113675489581466198138000414177579456687573499987913654988429465738372033055069725197564740511592785688713542236484548957633471251968302953024523227849209467030228226299560747848035967296229335920552676639899598820476537768289010710492136994422012337935244503015877355131124607699482991768783793252226650457468235452033550509472201768214516429428101117287494318218799869601910758015612315612290606745546627133800969100386333135879995617218236627135267799610194051002066009385864643302908789568107967744314082667729989871620176317892347214880519101374061457397446113774138080819568951998491949026142263963266549544879722240085155482031331071776847570856961255683793278416236992933322003665512457450588457628998870082358507956020260747757920983126077397781367903388928736577267230718954624869482182346010547110113207424946157377221493636314051061226091200433494015102196209301770993025020920730111464858439922684552088356319714874382093907472485038607357934491702858048380631572411082871730097640258796911202371941728643330744271074105593447152306072108997516661476743035979761319897529366876781310480084374462012347789253298664853038785961494628827240744454092757659497446409282473512736833897754864916703239759872583517718617825493275679024609515692706984515422098422841700597201147241673593330577202384880496633831927972871412870078439345434108978341334575187313510848579853353064301665106199964981651265724921881140080667452485546284164931784322190699863894197394731117961070472862522599445051604160541442855004121128036555868548061505012229556734797932475275880809470318280636368246154934027026613064744379896145933807897771757073574567149042139352562052499878306960940419756715586750673209151472095681391831160940303641532030285971781804903488671661594567785734028715609208499894670363504320445296381502423739685673592170495610126504950264162195976759727591531520079539656621772219139323618884791676294225969259634205532562519752514360975643227208815943270767942614150381118360670775228459573445253866689960414581731642546763800274450532035879659987869039546470638862355503475852488341810475499315231051782467984151929687408551281270077173514404994934223157486417966421467325887276528414955622928328535560839291019121317256355063611129080976670902502228178519910886566705554563688353333125402398791716267697211211927430066206767309951840540598315396470984164834993933684426688087879533950473836734265859164054997095598769642085397063113477869912343705644374418175682042433758527280424521360469181598034395429436655248057622794979924048223737829255078136470704784014013999526555720239269444231178619704676214283928977333068848422429622468914933706761545744775151573779876422549371157291131498803383626586709600601915138936233126384989054422843572927682926728104793300722602634369346472906581158590416582836115555758421749637673222833886336567904914413945801694214578455970624308861145338216438795059862863977716838460327052968850819334783184285420482030553198104951719360695705754078373521452996608283138177991964562072192347926399078593333677422128851427618907337257749014479419215752044463229225094258427474777493424706392244921684113298270922385882352014170083332731291245998530113512281718919909287368834200622841635064371855843020848123221726716460586973936833334656088143317267137060168830220271876466923759252808633517181052502086396116321118953668431057601610634510335935917652392104608846745370228856552907416500908022097826217482800323256150964345802998180441194882690183005733253344438039643918723304930473547308280359060706929109050671185943178889247471868267556526893346459081566977275783856018194456036306576735177983320886995777082096120483793450027062713739393329539016283786045232037707971332915885597047058599220004531977503485254508086621414925561750186123886498741450480846007463684353993519863418044310151747186640896550482551092225510510860364011614165706613793691655751576491920297478176826540676479742598134749877825424387007353347244081983155867313647485078799678933601908189104893973463446289783190734797521963482777892770724409321285720884219371118228861652728387263601099406228034650219860088130951437575572507165810082758470963033543358394855926835525743612858146922858923282968678442661127839382461995689343885149436062669034823430422135198475081242327116321588718487029283373705515808439648252388784639087953913054003495752568827235165207107800845355597511662675461518880806008384004745127373237082458411333632163528305351374966305668757043832540145384348821275408752450714419786077280284670418996132141163153833516726493271814635674565399486868301618913838241032256584323395199525277266894117008293198944268849686850022941953115477152807948242445693737929171080956320325255207371628138203677840809775556206740961925118594355946892887376872735551671163487726583087639617454164761322768904581170872872268684893463057959655243367818054433992064296969887599874269838208712674829593463903017617508263928015032867012519965251769773716598570766815291741261507685398074318466204632785669164819452026033493929673695928189383111721255001303990859302134803203332210514231909951301378389324169732169883547335338427583075500379896896971703085595410972161228328440545389969243147778253273792326505019467829014581723338797965964161225662233109720232372527103410297037745363528935792037863877244952057873816199899054189201356095733921548746146632898607421275247299025701186339668428214735990914532581178662157988029065691481904330623025483693336118192923276341505203586259479686825249606608164793613900835583943693175153681975674082684885753318095316675144858993522004297856015238689785953755440781056524896248354765387053501438287799269936283411544275255226429245078610129844792945099052569759221660327412593323163596738349048970089078162260336551359362349302551950757482825919540234749231711070109834899724756102266118023499488864328759975199580787270337463495802469691034091031710440469444872229328125946846783287625157862563168272750720223529685891575105895541853244933532784408639664750304031484403223993350687518571026368834774169493802307989485387750679723851510254601209871671896584513346887054847730453639931034658218994635061209681932420133559931628418834632032909506143638472545996180450422663490540709395097994483745147921079901561230305227028030886562481266662213006137967397390520514346656176851672483917743713822118809076731471228832208979266511766644820787733069916262551444591621075754157624822905686815545739577587912512615882291485017930492182478291065313104208291709104532940315596719168633342842674545799591794196696171293401971564654260595137937487431685397151827963147039392354651102340515467572655746991160034959639817526171372687474636617430864466309654826010620880548468602508082376665034731528793522924144096718701256227138786579249837348241103829489542870318926073532710570929979221780547622613441135745162791883784963326151526103246977501968007300122405467549865126662928189175768011709563544005665364393084954238938454201199960050782007381528733271646024365068592514239905761955088085321222136798610622686720051611963371637246906027688969512741339078072613009505418392198152385088911642213953368594730847023975509665399663732566562224795807562834652525632563607808947497019932961941672997538689623362630410076849165130971507079566130372790309997145035750326986005543659937342799646346950175599078267252901004958406577379497407538067079399611596834724671231974843470044131594251714699669006649006384024860882779821934625336488766065325712212132845416207918538377235036855370180960820936541359924712569487582014025172081774169510987929539266913558864197546039404835195343438648545273664091011498865792365979750550769185798630010862647073960806204585316334720774124659163564760677555769511712188494031555016525344490216854814276835465429641796520402361410730496404181767212493235504784953863752098324594064945174525827804016948609745808160675967088041078536652496569176107005469216746285316211647394787603091760618429941540979407178180800948919452117935832708251773374887491738935993104247830745826145396149692412699130137260380541946846851789138197512301907509871623992943943120809746443496814019044823641266344288322246866747179468440294081022427301049922460062015923354293617268698270749546409990338902966323633137473695518722551342298247719594972609672847434124864264122562941885133481545042049210172375762879849487827161878474893799079461813144359622961040902423187931786248490194459400384112144571936729401126633329580516367592827837780695859377081087530295461328241207858381889766185677474353801102436611329259842956251397557244644149306347361943506863222382430366341810400625611306158597560819302624356585851421330664532904814286972620213807889101941486124999104804623421633749244035342749929402633519862494293345056302206559410106414597381705517131927780636047726108674546643015406840675229439911168597583948075717709647577132589595992238798571469732686408589489770835625107394524191354884486804934242969900049101902769843331662710190777410008012249088101922788507247876048529196592978262234073281956502326715790712025814846242454148479891600167797318361344046927545350969195165507628887295426783918025583712577139998104304072908665537986872619049947758452798663217863171729953999981150136597370702495148681517896058756681169980039756669956746711499883526370876082736965750221281751482746967571162262658117015978558995623202303521324500278645319768688768034959762138473799948925151095896491370079849033574308804039560246089701783342331480119785494957207028851690075583748357683778099219016423549386505467202195244026447793210474702042372715187227924074539524077914394917287415382010460959943299207885994850393486992515510322424768205144945184512847469768582807656187145086811752434960357550846530093511825029661334763427836334524662997248851492965361903677807417446748765545979618348717910264882120714033006713928954712456106594108989661607109303884410399848289438401670365799141199413474483202622507653451375734373118651054303732684589159175750479333323132071606751331991203277903454687370505246058770905180990793962469633509651611203566683226937637342518506224468656383602546442310608786141987829781915329938812186561908592559634557754909075047321684089674373109806806064259309306533112348598489728595503085352750542535171647065593760872426416917555450452760543280762605427180064699740319472434429704597174318563137580981358107717923109711995350414097233872284289659457998937747849542551651452860323041124755909268858764987150650767585087486096384087130880812229006580204398545613293019392012021221385318680481301597775955318369061441566830871762340077642168707420075565484141517079275397745119487264426860408290024391535379839159573912174337130164799797663075597719840782193925359988476299893287771384190233195677200172495781359067688862067945338955724731279931647973881500843459881003244224760161053875572743248894173903162979025022825832201994237853252899306410500447765550715831396066815164236899466411617329040099555181500043529114826134080127951149638133818227075063025192163728399191974758027975617553058977256870481742620370873059064219770447233160176521161877197349731973380764831757296147889961154345154421545217571228342467188414999041712914997486644693769066682452188411311134479919693358085671912779726662065323781066386827279158396461030697336111255810430197102726169794312911060416265479670611022064251894443140963300996009166333616643201439756168756011447883266473237782840634874998711262415283994914214990118558286611358303259149165006293587149361449678002743157718526987038494666083029604667196300834205170346951859338606622326385313170257618007389609810000089501305468005880326852766327814664511117422833846489844761078605960089605249683485061710998168635178813979303980078935582483509056644615363554738019716055192202140921651730814451556037031755290054502036875897573100299474713400964305930933451018002757182198846384307188033960657684416849226291523243484991229411380094700103663501705534041510712478861537262015519668912385549372725859994545498311123694823434995885100292324981008477836152552917347159448332239421937510856207497319477826173992576214850882844615704219080502300381302095313761840736458963604639055237447234300688931380620482272527039341092136888367882028888815920864509786345027812086497869102833481757868744427134838670269038355265052883602310092542043349460056896152237584967819968174316889182892894736274804772228349567600587472054418074140349647974789947558684050721098163521644143548412958019980597164967743254089294487092475963895830236176488718322239590894474233962628205700216439029956455199338846195679306878327319698549046337376037041039307032382267908190679298423485313269231402469984548112721923385225750732630134862692941718935802499936237956314206275945992377201540770656767861860170123873919249873082741317927311910634596810803209432947730092200651015279625421964879130224385054631510404902873928386989565141277276593561437207334175623708830060656340813932228649030976760551053272824341208194551076585739022003031611426711544381108571218742226876119666167513403419597639513347163034617882746877178072489791613466216376552640813743307169536685835832860454437666446273872934045025485128344240565565569000937672618030343275772562204282143530657855655358057338443980828419202599451762563839479499589190490691630526573450932786242440826269270705328599320949135501064668268802107927510604085708602568805983602896697922587302475428355640199098978818463584213746257702994276463808194596424903379055286056784813304553596622840232979268517265859129088011613058528697067237474618981450757716988633343408668547195180156557949885765733539170729645582281955051572939070506124454644584100805305819130562183236851481272257691870893771794120027278523967642287538249730464079246992232608121719068473832751232644236686269121331794568092444733439176186671317275653136490536056889817674795237744171409298098906394579357247632193376255800572552970042174131861773504344665665557464227725245572332160844617124660196548588369088310073272230930822419081034403730526456483364253471417606262354961834332028772390730588226388842264481974502582959416422839818248655839625327480873336915261144924581822574090593418749590482628019944313282338569684034838240331008942983624114359803254455966488208226608065202028286054571744901936793707814212436410583067889904458455330529088868831445738581412000263876899346827700481794733796998328444846277316449226544512814020528324721017054258522749047055187663475499602605449803274612830478675895177763395738267116220201950108158919757659371106193627930208142848256301744807838453573214309628317924912139699597770929580309352241792702717050963831890597722121905589581438877955638018132772753374971449973561801064747259241092584402489987074464261689898343436446878088401693688013539362684167553051591873281472223849364036304843784732216882749601186737848312447865330029786724879345259938963265676874304732277787492385578496882006645411675712867881570279619248874818369425720181629738022474562258157622293961744321661112758825700806309480017234834402580859795357062582495588682248513909599754820786444093080299284358335603086544162968883887590596610792410242932439464824213120875246294387692048319125296545895513456366641082099098964016062670098072871894393344577660791902886635804129526461705920508104427109335004465699339971939533151583554606828665265737784378597397195659626162785128740405924015984950384731186291796542429463781624940676242232466106739950855623174926773139188014936643203027340471793577056796677399356462045832638311029798261950171640752352947951015704803741883625606265431508415157983783650741679708879340725132242129796521918163988986448443563315526870057154391600283687916127210632963065155633395312296835612418000132056963940104629113924531021071362478746820744750290631659821444034177716422535410444729639165551471969603914036351814588580002693433776971445475119193202754251647402230993587645749492153471510128780364648385577202650440796585606118906762724662022332449625066302256486452036794920477514633781732877634283316906169526074339168152914911159017557352531221746701447242625693589796235422071687402471043706911478201306657095516065154832571320760560914149628621491145361699422555887593716775622008443013699538463242321558621054232239232744920185926618190632831754766870963037873301563447079952799622730941507000437078294607886623085561911847032165925879555836002943831540331298168626512078718161518767843095182052988052235632355438036196552499881816584641559757678781411696494570955099543304502547476732839816253496244584202410609826653922986541158880023581414064013205652994566930419100719503560857455198646377696960005598996725217087101325018507075526606496757581515471718313243213574201951661227443748178266033933185802700170977811766331975112978672848359240549719388073488671045276976179305096816087096462762439365292921016812330303544922882419588686507216777915458141972813301269041930919973472149574443106898369312231589616507613306797836294700074757908739338916780839810802058721123692744993476339925354586723586544489601843133208244374144817660508237639857888907555395500100119985254441404741049939024782285205490705614711063612219766548081727218164669345636130354758826096880738274796141541276817738327742964573509067646647554412261608233817123290555382317673428394298003534796448605667382516765682407559179410818799474164161856256754717363769055412718154046212975986180671078000420825233957080066494436655516631309169455831311973229051014120214403019200311444939060351595587688627481658244784973048787968949011245707787182083469753619255894241391406002052279356566741479873353013975856487592288421145764586096164713753660157451901906047187485884653570205125893359517294200018056666980586888031200583969485640431638449993704622664451321370750285954422285615027975140430342030781133921872266641420386712012977621999881109571855900429856197295275252830257069339630186131142253019436774554405411428870502866211920052774119343944590191086002110179482810927498240917714822321812475298084630703657613181057288298381033318060631018172631701995578866734179024949889411904793568413941710207825142891776354841583054142879369688279501521249265335722871691359262511925591731044594763427892464253049261382466297010244898684468187436643814279267551250224558160698995485089349197606913477798611591980154359564510638957302631947147793029733797525290267634916814782431705901580178494419665653632937075473348491945999486864790481317338311419539977464663007531292152751941763466459798738238776024315626076956696141075231868670230392909859598194130901122435954580855602133624290678918434950474492186817297900059125358118432760287390228605402943599308052752403672535596230020659117603494487429519019515195036712752762708562203313787360186433756555584847269620957789151264176825111948865225459632156436158056574958770547450893822605413409271953695941399433695742486992855382763923400133332275566718089990306254639989071261418762052509547851295820978524373976296950005069481613659965859030524122490380322994604079690515864931547293959892969030953331075413936621224469719478079985989317642733649990217025704522999486501761347237591116096982434452828558582644574224601844572466799245123915418061161284303991150456157888584995288127995949235537835392751110194049504362683235642151600497940927573670851570519763437240131050405856503068403909367834127001598136562525839564021972626276663178242842733513663233121450623860758779291143970888167085431935544115085978234298709900224038928619518418967273871724192837180272976707675830093563471368243381810384578564743443588636193597382369552218878241487749978558985760010724474757269859778006086243616491164108834553408239536452435157259251327746354012305905435319054154526411686646610961827071355927750016354614906823719966869473883386816209038670073887322694622249971643988652444917039865869975012434937813509233059502688169645408179684590714273312602008216808314234119246727882828520273931182250579013030024461850951311228444178116575755992690900565896883965326386108971306542019544738805330319998665386470664249110896226251387489050978286250067714242460210657728441611534662645500513436468171602973831385474339938677827271366631272825377132062119223830101265885396169169080095379368066156848420597856451424872764301858796321725023410039832311770044152673797140722230334329851598201298081613162140873004942887379186932615434922488744878671368373136567984991079253385964866494748951251569123081161053339549466829293114478921933256895467009115244017028868024653573273280771350117888498196653905102354570885215996256921881120013585669236954908790904501853470869448449252876661519917185294790483396231660628051537225241522323260963533223289859765953777887311193470695710861393376754479020232330054284183206796543951649681729814877314294517758551991036917094866062202894014369963299126672481799228292621394092539178455940845414002486713590038602895114275404430804013553920847229046018385258665796059473644215905456129448337833364127369522039158571270903962337496177486406944625242664252165977477363959456141160999375261661804201155277584402720376384279179126736443559518806819574810248856721788853289388428187463172051197447633434335739743852693794759522682560033136635907711708699734172505873349527596284429075615609249827353607764793923873076030582403514910681577356582648104585206899195702338659466599885551606181237368601031464905593217251804823209267431929244967078036868665489555674349263018277583386631060265654504556572243869180556284554892672728754840337290643293713942488244098251418727427150706290944855650250620258980785415799989622255405793377553647215629236958665596943860618082191971057765890318161567663200576933595725635310799732280240990525819058102126917387346201036399158199399644204933050594209839859791548897971050003257458379362204263554905393573390409827348954253321889121204292782643321744650500152101785182610642902162978779726388493321390715180704111921521769948524118571631873741935710573322710913840948251128324375992763520132838138881307166365635480052254707616531949953499726083825823515220224540629678912787993749134661724400276274192850885051892083724575225856662032389698493870373275966316689303644005450306621819846789397984389826277269366560172396994222882785384871828468462411238528613173610619509632828508882680844231873867792431799063702987925134847200327188693010405822091728158885433886150376946423768566227371823860702023667376784675673747326520238172964346948597259703862148811708989045449221527081125949574712926895922048363805032574902906691490920066690282151610399941295464788321012441035811208363714859876281059429748902941001065165753256453419217479151325264734334278654874788141168643513183515941234842972662414900830638662971667737316250396134148938852749987603899671781688016952290245982298776599575165891105246311183196762891568086237886831156335666017182797519116180709371485405621017182760311221197961986062031629601074911653454041343451592643799081093152488698567618849561700623426353532262781622815321390998412583254795452845972617251166242662454460128284483082765288716676587453354351932771173448119248907012252403684930768283447630806242318275740719732838770687751532001358513188471418449522666508666526585891683897635457949360646291140322301155333555943509571268236227047147642950496486007169420302941238182784523549505720689169389700336327179228413206206424061223511930343244112459680451103536964756758749431050644295185006413126685591635176397002170107091644326090522301467044860869217430026435089472674851537876787470726569535342434496028311204774074891411112247334236646353408136981370776313304029960474916825034380500584838614233325002361635118601974118755035857445840621386269303770900089116597333826929369424246834068510438628631756126105352778815808880566705852458739728576654143569549960131415475464230267507170516191559221659789799905830058969977139448468786758280509435660620185169539909315379743201416976461027052039746223188752387772139158979335245687167325865864635546124828894220597030087200797625740300436396253719234007296389813841039300246283499216941526392361219255506237785879046412333268887077584202416869368020227743172143089201556040039121961028419395621286190492738907367287140225593803076280414634341536825868971441889332838650493267622957721921064039500248427603225204265685654116107009468069530936623467400751888539844474454598762221796853264631755777474037613127076129246420484534158312507356472896399963693933049848739068199666044645709130314248859651832977907194535929678769030147286181219756652808192393221210028347801113265282815317056904784146325638350076828856242500061271539836670374055566046011133886878847543078672567323515538428968472289094196670423474284625201027123521218563713347411637965072847846914209903360819520312774089521974512738494097682877794590122535291705633254037790139478125076552486028952973118764915032121820359551270833483560355478994657974936288594544344071491113761417900996792486513320661361308588688374863834862203650399005115292601325781166195697792061768185274592718458548645434119790816473134704208981446265406859592638465925156256020062698296255526880478218425883047501638629979747386712121865307613831023224512928478249652388912494698213111486045266335059489020290972975747516331421472426087932783725126018513500168929929009174876479743606935136192530264489729978483190516657051531883899070030129499277856082115329409603290153837133912039592647904115714515849615765840658667034436920071564037697333037643564291188323976629676255495761040862951966638759985875627882052786244522144282099104035081446092702972220119471880866051052031793620903175587220706492482758057044889254739651386396503454926900143850855879652949092402298746239083267987611251285518413451485710187568941999922434851195864571961600685424698895346031110894069126152899296404029256109489291387510583871475398983972120116503999055193357564606898568719942961577816328399305794546879815975730536261849845627162028445641709933314241384446911084482623960981933782918005041463597346400031541734045355040239674061066058444504406497266731455636743627378948783401336048834683549786507720206586267073984845242153125472201732503999843255236639725080165235514954330767069095324948438071643202619218861847980876072365162738190547836825315311358052138942416769294675239434236090237038490414494222674762751186707785270179802054604142870749806200196755485566903161563893008959945503736753311314170665992641681820802544230999713224998058021919901545959163467703175489439182580760484379650592476014824802667360659003903115939484304303085836938804560579297156937739613956285649805706875170922559287872774336906003397593036072323300547314124837909071486380571142347072814290338932756270800115841062282722114344708254226695871270211189204385520603497959456139647084597388632510875125687562635608073655706106346695555782409156389422526050004361503410775126772261422370011333823563586834481162413222504016597808940475077731790531126932194153963167106477264288424598853399800960183719247389197731434743834294177459548169309173791634812086876718091169979271516173711947075484885133490310980857603064123573057402464963267755490493425553331740376290590727237546305982970727614420363030213468363622755760878345965853662579809420840907898678309273073895586242678397954080340410290929401761334310800776175058498571689574695180487517924095534576230378742196141781107166606596430320647432409745605303981181526043550082829976564455946543389092208113311009482645968509706410314649357404419211841511213210006849082117161170754600943636669570418103192719856226650543805517609023830004941929472719646579842111074651993026508059819666115738084498352365710609723419240776736249648410654295145094991602781013155222430084080354655017106505786503085729819343145228704972431684341289497672201006269951987052189236554009361174205056381688060835119792317259338877106324532096397905237872790829360583927498028696317235108013173205023762860718574617716238092487057975045169527540533280871160239619419319202275994148020964281907159552833016522903737370336687117850336068609395747504348774326496052921993135093699394563945593409918406551027297567388000094945646297899081996893252568385331067544496440377946046969468180910061037986419131007514784640250342624324968674372258296250175212944317727610327770268624204883756496532424254920027540786953612441364439292509736025370662564165152510053382531153774067748990790380272983914068133351046039610501370900283815546998825364937059202161923039895034466138037512233271404145751869141316291978380420302147775739273430949719539445542304569883271398496279027036271023972697701584173849769422799007942787622514047208950690233567708717301365501251593051946318325655874631480770148498655918184206527198834733309701394069201425193822181828492603320491982017042319388462244356559063740560863980478688245815534608684300215467233978990058194215070283059777852888818056070260894726077631638170009393638782034757954731765173468336130787860412871956483477179855651393504075826661333807441485233154816317761721693238531866681853594623798911592688950451778701574422387303411320035487206315241376325586249391419703854449161412119184842920523693283320252018468542032052182388442466878161774179150516347325964319634768220781891577613992620564165912771633133099633423046704382985425495293061929318023275720710734121736346291662294027741241655831705646315036195407401285836148213890024363702842249671690751880742924141054922914474142255936194166030751343944720970828834526847049498476070774059543865191572520063273602842455562507000641413671920347192994578251355082488330905487844127931962362981192333617320047061234974645911486465222343038751356893012169303972044941909196526348915001857425942942729203270957028485240383964892163962576476418355199608449833587680310045156187630314104194904495035239688416287362311645781575637881493457098996327134480896179860392666483044630595313627923084763075490214139883280304236887510411873197402658777974809050106739861626388832447832812176355951999408331882965500610821070308363156690639204180661626312304395827928445795375360142829478699111506801666001899284772253741149035869907731575860669842870338105334579274309595986619547533346047100516410244508662549416610679611584603510942146711999662675496554265133319282241165649737600793592983130638341122753536425124171498414016815677538199674073929024922066111252863444469070842292374345652330524758578639662636973759790027392784952548359381100201359049652334250114204515759871510048429944156782743339355482784461936154454238734215178154492634896036245879295555621231551603336522457345867162996936096314078800864306344144576343537549557657888631156532767382890063710634408919301386153713452825025749816177981401053412344084198410463075156862319747436658303650504746584973260184287146988395490089905969537542070391185419237421990674785631079881778629936092959064016560046689931200304509796064068296590982947525227476448074060873864463185750262290885822473211704341259298946570618411181592620437143796112799303366272592039724668126214317798239763575693043087957334559239926806746600925840308423555772478026478424510891699261635300611414359913373388083862326442905187555451789362285620642230704269746582831044829446302948223963739536563570436571752367644072642871413501798715869387613724735244683164891169050912314943218440988768590458772137233892996604521170005994430743939211235620953344382966910788457692612491052182821391306828718501133381183980865745960719100680161163771962421029046244686574841105772727918702467268358757061066522669790416367062040093507816903754575834682293709210458444729405045650066097798626574633888404751121146943800955790185425006052613044654238353067098689003910981747910506371463134984236169868595986591799018889057498343650147826880806454244608568035761031380946704665527494354895297461656338378454456020752478603872717521513983134934868068033693956713105103091111661127993232118123886444674212834031711939537171516528487186177763921493043175322179368280064940654483230491890884269616611089324159848718627126854822025003645144613402198913644270224638601396360829587530100940223312234999572009222178702161926832604970932657032667844497680915560811712045019576355773635515352958956140452905856768695091870276963020569951228610116458647413201493640579548573981795416547517480193271122282192072954509219831773636387497800467555275741403793585764212535272241065790922168973704977496637724946725553053279703579602321620292979718960602480648165120007168836977940262832285471200712536699691382932686909395724313074931604432487766676467583279125759111501218350787319740377097265546893490521984961749068924478802352289187404234155818947802665166515261830056870854439634542706365218323520099285658526858517247079839057990049608411352002964476243074006458833467681384618337754950107072935070276998403187560012078597004610239566303773970189510063034292680682987235389706580202442404097693560872587804035863843911633236161176450151502592332859089391652693681482099751902183300515651561015138395890870409827408320487775090810268699830990405615969350776600269701524679867766676786170021984402545573492384887247375664981626679228610343151328790705919952122215365462812466800500858511736306465205398299098266815631476863610555038866805359660255711966528437482506127568670913637506875288675594766308833426757433071702022937004932537205179081157087235166264870518245049110662607631262326452175456032198349301226356608913605180994046016985654221973816557597528244027752502763069659304064286932354764208085606899798870266391820296288193676590947174179232795906930635332516655759119400119893793894381473271586072409335301929409809712144626011561094070124384225342205813057474384211750674050707867285870901561349056490794789171805696401742872757135903811543160047260003170920989318427884820060748111205340201700991971270638494802011680608305633125083078080213035301964524284431101122714140665484071353181258692187553863271833215073591305697082402482501989547156143125612784463115332133956400392430326309075869953670313605411033970637684181561177833867328864141472612543642548077218318125614950681754256136146359942394048389797074948422747081039403319643054754485946748949191496819852679634845426675657263389004615258753082394146314333994661871642373174025777540251534147432708985308090003587201455893001441124253034318132597105548464010365648825000238529434707185266400452321049961835162783408224229810886660595052164152866571624139115677540227809392606468030055849476956559981334530670582783657418535134295027791864264324632866263107847851578146590046789076108321475083204478246794613493191398537421262558045741066664127443460980761957990374558774533877892952203640430046125519257559053075748344660890704321454091452670153268984886376395105796559557309955818539440879526560320767676048960760959184317744538626879030949936488168864907146305006031828803065820676618769575973525957763539170591534826601222448639309996825189345780374384617433679427403011450396051967747962991978323601695920743825774241385738166294751157210341587261474923244920559364356207984214245901177804137448292962080895152973314832113145850485504915243042562244438864741205461050192519871860171419135631983745317008261188106819915599276410968095839890600626264496731680572249807733383785140262650522587496011079085060512115056460834149908275907424347231680088056544973131959091695003007708920492592924966646756726608470810061675517884507877512775564941417866816806621263172534083395212841384044822035887002971908277506830644712739158298515953757494909770601356514884927567830679604775761202471223334042269830657500591867521644823035411233117586797592811792432750757888434212505844811658702810725868889991325762480321568454795839175063631618216849318847210106065765520547388790112159349183839949298633562726122666144175619550780210915314413262510847929896834643226301969325013032538360865688547570858646077749824567826507825542384899590445942529977881429684408580752282340321988310210468252008046143679607927538736382593643414580557403839808286775821757294377213894546581714329229493281852746311812623475070574708316407405851512525023436710834283498810123052055748466860693948434896132675750004916723906982020406140903852045795669081891481247371215773866619781637591495635820063590320663501894890742582870357981438539414596777774895175528970605782650633460665194842317367029237046595479677272318936370597220849176869147955581390042159297988763461758642494471620399656018228831276702103071597718284887045778204683105885267953147187182021335873590364366734534358659452360297423512372439720107322261440019887856094411567573498557240419835433496082934317942394430800181351565032152728539944846163847659532525801007329123024148892438791717383007404439034138107690337254432945698895175956068613178325422724428123019635079747828885488309756431531823668179582591860615054053480575607750381221541505282206713208558892321169064292806039233600429179232505733350901750636567928181064816433221274325208507434429070849893177472899989151144886552451589546504018459706547300564645901953379017847960459048001766748593070477952863442212351630887433590841258095299535418449668934995369147933998074208816803418876416169465959822410802035598611335526823778767689006493241256217711118982274700520024214800302770591356598991825019563124006679118817990782574990903628774724514702405697316905449923827771422112381727328082426456925075488157691511516947228733801043436201744668691436922800745775622245025888906056696155830915521600565912957900238022680479869341315612755775658172508762934551502008630994792387075685529306586620209359640939795766974637168749049744530337900706966480611930761285558114165872188862786069861156022616920284643568609671326621624123225261295466302888255077018389610569311965619519029246865831238154349816999174670754732798641194236812877086728444799305451906599780633824101151815085967151288753556390509964109827147730656592318733971576028323018834142465369560729727972605350121551511246862812939878311272809229705089086716460742695645569089456100901283695761975921280819054345287639267306225965593839096432383169355385562659491341532937397310876450358501490900085529324035467131644532085226045770708880702764623417494912027687646057607694918101476661715690787273452918010843007948146238416793537825379994328035896201743561504886926652599651312494568573665526406451876151170332205427293343280000717139684390066052616436690388647317421688160941444970329720207566367076241169291413264361331302441874457352928284230448709597218972801314491343152965947103151118192797196085117404411732133563570669625815843133079216608399620516162987106095091957039097990560733003097824801100981610903705481407290144278503611402660609271839256638902538456967688926659760540542764338470006784539661700776478576681528992517419903793142932597629654550396001633255684445158069912440537281665332574404029369451465994332771887479973523765696718190126564462189822071345088001437684371024428048615321180308267718894740154007179577466614924570488453520870029117159362915806428836190831130410600176155499993514985526897318071575882252571933235434833703003428441748963722933303879289832337020747379537759104438531386061989790840599191191440377810041068206233728626129663668595894967868958281520145924978588508300157335490644695300921360083584610147521215350983876452446621056622633317559686062442657187799029474074784819180145811731987989257953049817227771242875749750220302854373149036305929212841505618796971997824258321315663431917068631558626420685620996059635735156119604625921326491193824886550281645882065572363061177018404893123853236245759243859385808028215945560827978754531339736492885778276368228336916588481510329556430289119589024378560210314678072959419656119680305902691715824483678886883473067503010388088370669354128254399136176295297119177560942626171772871098180477363453000646237364723672820390387586178429006358604522589406643412537519226568713793842811912740928453667908200866924670236314359707221385604157006184713833629503337240882438016467284060382680278466076241946240093823565748384815805183722700722892482780962048247056497151650935276402924214156854279413098696337837065379744092012298715593836328437058146920319141181519709948994871145598792664256730237930714882097063107504104864938434878457488009855411802983677182209163210841043712507982325785849491999103855653628714159295222507065054102046278136638809489840996959035129628034426981872077615909556160631548259618956578883160849792629537955704802362439409671837348316920473603745058565277333985523369071358879681401080517114447981746940918391458017983171150015431767840969296083073958106037114312633688214128378273757421725181293405100881590462163275835986302714958748853998235051057665562701339669164486299926211353337674285925772350115641449279154640559461405592200629803413669038787603501358325504071062246220997512865632487509762276381493752847718099623552799290019994321740085967440861818934638713629122086837605240728019522850161564186450652691035816602159631066470159429773086703322794863249298675282232646350518963363511663630182149386508022186909628675357272136031212082752680367043136001817373226454872064012778709559209478792110922912904826825048937230208746512774122866782920587615244185131690921433596592190966926331303509036427109528413763702316288585248013377271952199458621619717724700389613866774275632061569653799384724873693575331866326443321729647813055864625076941065775154871516377742186355544628843672037105491599169763311210244383774245286220004259162046014336569545686717550016995102035982348857247992416672264709053577385340752848576341156428654019448613711751208692142121822083187136852325610745122251522168817147645870159249233992869155401595763757982090895267508808949073218808800544695726104926624789934206961906610481210955057148514172550121753706953784799997765061389648727484831752402847429853627871711777926962967747077594380935161587033261919160643430143674164257569554264640227751336943394123524722102305818993395708233223586564601855985459082206097564418368507329582486626790480073515427808059144330943755083952122204127010562995141890325156178496422415757312870624809085794686401005391895275078190157378755161320204374652740085071099919419893486971627113923776079617794005614392360607407872761982335522060244647202934715044274212565004288438601583942799027333202457108981296854531778576947601214291301073299173672745981543977692539086412941326907826968756530250796856364812135795287072675663754555936778350098481575556056336799785463947189195550289205437836319326920032168066987158288119620469339236616397288715995106570406736794477173682733578190001121295810868997045631553059223990889726135675081258869243464403781599705652439480109154140785682982413576454487406248593058564410494513002618947100767860665842478780421710900305071125991009987255314869037904505159108297452587944065596682003022536733602056172433406910976214873843925749940118802205476039625579375175997087233948306893546155307924112258889715121395321330355979098916049063117076051214078319649213829562638018780015412707584738440325262025059101875719383524937852577487911445584829557448408112653209082137500508960751957006483874797063253738005634655285263932229190459927997577858791364751832500125660169225866476390083940419309833104280578758414678925092997509661949900088097813955987501751310412836036742148804505589077653217049993931640327456266864609247144561378673111521332916772508613708380447263710980565368275517890431404765826089272760349642146469646594274674747360817366644037940628155230202617171977168155712452591615424767426388787479512684232497513744631192018487272299317414687489817582752902195584255271705947239340837242576074564682736085885866582839555928999928615117993091093535574354678511738919575992121580213857260047679785228756006217471020082696704772393324673567373779149991270137055760959870014307750258534197707187811062329095935098521989543963092908457780251898877149449068119408998583295694820964402271998226272755211366864040400900124652344491195999582136283707646078607001405743310380885173856380347509453173398963979485061711784906508023569754697203339824633806852956909535540160439919137096189003126191171985197459842239161989270424691825683294632636960270827352623832414759047216052857759004125023009242432517615827178204632697247912403442662383028509390888054794367409520083727993278148304636452089008013630529367499004932017735096963473805355907298050033434520149824276879198660714899627803774330945996934665855504463048327783261498700991781421463958397804203862299105868172218698491068846131171383706194758816883361923642956356536744272759369954723834763780701840533912374393443499867906388193163539254764560804648234598061395776843083925975204828537926671063410712350072831511792854354990309378407091556170302336944179324559838849199758081931125951370172235209800928298548537458423676706706369088000999393199877460880471323418536264267787912658537224527607383078403473712363536316715375519741785624932816649885731626551298704107555080781119825230153101721858011306611513902193694744002185704907653404965464684496130644612309048750367681972156133070515898994329080435519105464790488753699244121127145393043444764518921217187112499995637290794697949859457869661351476932567785528387607409899710033906147512898198615030692885358275188541291883670192930628468046938188194741268525435059527055275349253500214132092298468871878429188672327902976226447506559798061926086424909697533784082546540722594868372616843359957687707096179010009075443816511514903202359898752309727834785594540600035827362341268133473004187100811307951338272460894399011866112360107968828988287937086317918254502558544606854271996957480648144869174917258696340142945576454465709451090880486494736476309402456143730370189077345500394724074285326601451031240862021497545810989005616410215092018737354224768459842079894926761945735161252172837490157421892031974891383600771127723835677789792151553373569429995678419964635726021098093398838186909438725487195651099747042337346507574859527669128012319334887549317011265125129860293208235144533322300855727581072867387108009390812631779152876330200111013406960078963342008145116537278827944822889839157715368096063938361171715083744602383533764762726864965083648095998075183241712666412997363087284352728760203028492001666570040287929875556149666991887794136549681941243660516475900276750478723401436107286623357802383369314609503270091465664650540231960518595038184817922025149580635493958633060477437313740267933760287001972609952726838443121057852985903709378456276762572241516005597827648141734232131020430232779505046993304741343575585211428334021352036982971466498066046610576828980577371210610203297179829703944103354341521721475383752381511447014496199306864642059747874481660570610281343507855965034883031262168182056208280976501055586634097604776435128312134926882278751875440574770246575767276218781145427776711417040778833177199874196085148433334879167562879560861370306593023554561569873472719556553589243808082798610965988626729138306371672205015227406623141024999700585326519341450664281222771071114260453655443232332037159099406128643171019353733795094736491655280181291707090087497540424925556059415634560461263319289802134799568003470937311782131413278967768926745239688460982572482016323250685585632926101140204339704283524227220061385395821630408886265973556839561481662647941981661530640137942887031033833798959866547954090328898124179563635315085024464007892640058385088155268031218089369046786231414170363504104239431253109183284032888976019335004283661602631990256612871202024817771940527725672273089978828876759353968343720798586247483032909599466194382956853061223005640788556598981859117089797624973613396102894430145566993636445619380122671336375744337468357736938908298381077332249974123948341064225368376265777993612123841134310314993945729428901545499401976901908780812157364514682875453731448429887915867749092021503578632440783417081338632483090029633309765630110461328237131587376630136188478055630170544702459942609352252357690632292050987494213745394320374903790205743378997151159634853043401013730512894661197314378478969444029595452248240166360768100715805268234891246852391673694760309153352333130381371061828042725133732630447237886908996544828020780234164015088816631961536652129165988859259411248411816908970205036020680656576780153481331029157539997847450125820096194285754503930505933673004407670648693569708839333655811882538827485677879288910366141363576540553787631286631233362624851661065662080437639747614453967612645735213192951931461291902993898736297257972237111994378146102777926221956572962959348267495904700668394449784206924186625583712249468768229278047720074650203696691744202337342140069600845175114857275269598132482962246046914068779417695175117053500620760476169256305176431642033684548361579800969066469417882615774458636850160865708552132217520987746985235301335368043850737519390585884420426336392304634551894306283764034916495748204972932106205923354887804715965451605018543247477638702602182825612212046116500050946211528083015402602139514078155603493612818792576169592562206016191464526759962383017635848544289037113358263405011687525874099683965691276496701440678844328765006531060289858905600454834640915706982204803532351025872463409095750942719226814475663570711344971402005214721169080319444476107124171613304793718614248279275732560239735663487740335088750424848532128958370862229698390595121571188786040308200390664741210195310018973133030827571694906819656320538474341330519962743132893180687423684828715583416463480563120387934981726129470897616586511765603585299905469336566130813871831699933110040883422272624060876468007526391310780581417298561458984747095830123804278207811845345495523940756567278564105642657847936793952360465999744516496760016656243594730836973870131092259138791980456394800671196282721412384362720768283282446406507889196576209399838768611748148003138243107141515869361358483456168536277341990456973512511046575596591622774045459097189167722930449855915447449597061172142701132518806430682878754049040233138500827629958764253708678663774834190995255508738900834363501407332833172506805206030255403905867419737429816480253835820070784140752119880364891973731857408761801032990546741081211065763742318613718614236453066307912966846214219298925081998061189703243740145162867808401174617858282162607436874172678729910192800925875290551425038081595023776759174308179132476200041235794594717990683575072036920251770502918308764034362240590402254509146286967370773157180084149559648005516033832131481207690906799825994091718545739187508056722140432342580135481249069378434075401537158839444993687600075682225337604138844248156510512221924982608806922808615134703364772994977684571310427983187727859558643390705722380194964218861143026944658479018858932749514025542752289800094007569335127368230837982686575264448271283767138555148449925428278610737410771496562542266817105838625290288202018632643179218183781114922153868324338970554316332226986527499322126872787795470229829032067983057982798583516613585157822377504241764622652779273463974153597611708118350135896234072487453154593477069525076366547532435260948769294527111937773295298161724454819571810314032476333588059887917502707076248685689216879132959139019177808051195070154143843934646812554711740958817045648060403521211314630320050128917873702655926785685542623146893634376428317039697979046935252048800470167036254019682744992604555217525947816283396512577474153918008385402015044796065501334563702368455902705439723745569236980488311954463117561697508921039274001931453824880398961224783825279564421982603056741514567786224241418367886600122435627865366861300857919192785211988435614809971328379879661928802626642582902641434205566882989116582485485327324340351660304554377205048471809062983642542075100950424735169761206301311643645620502060711394389206321880043976392942758569284651377867016314678315975676103093922361698070062853602823176948745737974113203255830822222448605710496917133902111439875073253452269104552500885857372373151358496613907492584913549882853679501095224979353258174573150924755259238121247404840118811995208412693876238415210945324213925947072765105274781670544956119426624490129932765702329037536353162568777110420608038628455126764376501427510169867477312723234632326222947216210334918187275583355084130737586443049013734982125551618261541572744795565021373190297775004498057817417817350736585287496388899947531307906068739696370876823277768845290037725166563127676301196826324904202005177952695410608196069210372847336310326048023937875582363901234693818690576374429838297071772757447658193217108117822630562109739666132445698830148441485263609641564057405728779407656303084231053179339627417280837179987623396524867364399866316645879447683377765954169812793400374975691422894528619538233167110268381117658956937461187220549595966890274357788506610918495496762804432771307963790735113431115186506952488446254056431805719765271851126837130279133054828802694665697226874457135989645585813411773472928504598944101712640223131183397962474880331655028589555241660334841143488751462899461980794504879313856373075603224484152965349705601595173223988836864861261982774316705516591948696588073038552875445277528970071539737561858653777854868973594260161890671368410802705731168402351898662260459523082534774852245382644712876259023055992504637264124509857909452443871016867942711884380561331069260369969895092127651165662547552502321162844148756992961598464618327002613989482838112567367114713449525397983956753095180309535728956454784319713879388652412284755152846429601769780375286416607662470363499504680594094205100353162852693858418413649441709271180556877494934315649998049850670932206579949359687647859249524342788291278086547716787890611023912970654331833158314224544307456696640877412359628019693496752359976902158061024938767609717203481429296219620331177600876228967248496737485773850448435811069060691017681735104739284160620380435597626292898340480117109143421024216546461978388463574579978799066082422113758842098178426650713092308596247935418852934585396349986409722106800648122880463729536946587563020339023196864355482781666725995512904008639024406721458150695231903914212059867632185028873215805955762759528302543089168665518724295380051921092811377979263463876325020952396024169209645111863052266578842053346885982048675806142238789555891024841189067701467528147642202795229324140806046804073864322110097020055653500135628262443572963700682679842504064534555551994702596462670926571540331195320639374182891400165851963938426461843813143546241186260986120491287313417158767507010616072646929935374871619821477250664732153351674544211703843813328878625035184814345057684849923144733065801759391663204040741491874134044630671082111136640166560100499161414085101229686745071340493935421549167202736774597954031163886675985493174010094095702491640140303343655491408370328685044739038065819891860576160760332761757402973843218463175608134130310911153401365305798217715808336092151823311873100027977919371253667697567046906657815285645484633260288468883253279266678458377116775054296126981571069450339397367236891282270420040670957786301350693266707602255636986462741445074395967172938463326741371811428606030611942384301604061737182183441245778195421885558206307214682553734518684568022786030409561083672518842122476937909529781158781365682503362476980623146527849937593381789664055953178643450790665308670604290287343667746717194939376323091234054198834160732315402094957757934234401742774538373046829360631955498328939359373862033429655042395072472968758987588815910037937862644084944734191786626145518025868858318794064003534957864730973275094949522089490384067249886460438986521735820366130598118067391509832074014997273160383827887873074670076891345485606926211610769774203763764457126432869328828345634898609207655664966376741686783168283896393610812079562157848803955905627013801177846661631263281245468900153390267316482790237861207262372283003740482243081071838013500272735223430306372804040926642339936515412265464588245561174340514939011252069991850651344158350449342204676911563158356520303349046211635331689290088295330178620313550871979572780683292802896306851326360002466847367714699069748854185167295603049646993061788227953330850030207775269418373002850431725261970386351333597823601219914654649684775208606171159614517520974466588812422022974715393417172544558721419464727966967090455520753757555921726169002227168163763801077957884567826044365533651782868626487810147176515828643388109285516367528272293949757843255749859020591254613383146633595141002966143096588164019723932599431877113010156991973352468585208643993673886731072150679262100355393600595594969660408823347362427985540246931096331677539699760985336021647032425780481125370226667425728658923942848463215184464491698970154613312511713141857603430953891655130113789966380688874938299080673151590231424975418624190899378427222115787199245123394373894493884006797682552874546471057924471466971517053172046477786402280544836976441997083047987964022564359922200425209954713588881922390228394346405208979601577000149605071362942142658325599111048034096337981616597487719924324718177326396949821960564747754695331490534297684996710253604587218247871900742131710409325382024538136253629033333628300518906469259165148388143599661446727798115983141216998591409790195212249629054721710232161141642712451904403219447570388296679996195573596514534436776952300214319584249323119824106145196107059681477075891014395063559376320132082315056603914277058978762561575657034471446405926236671672410338110894608971552403501497783550424443801766494696797775610119554969614461485421136657794191535065794322207846682577054132141256181488542060869513488777348663962647504087828941018287886649463713789889142702227382358421591975886601322907727878583346498156720502145713293400651065679734838973746756290787159533501689860480772129981254291224651762603999459175641437515101498938770040036629048836990438632599785945786562660314781706687681079285739701697839874321422661074210619628960680235010759182744760306584642768717896360082247057616100193218175633273398688076642464237259183417627534309243304610649871202622312907780801938237958748612374781449716752463385549764780789825059112584942196298005856252983042735500209940470678719236935521559586552516684112465168091029863714454955429513448721316598848090028763825262069430955064061431796494785414345234513602619013327661729185620799127774768576752209853455433924560322592929746270852792374725209103092399438251042918859794751436905971721025550455777713689960250746664774528486458173915765595510553699627158314230797997221629222549931794261624931380802918131758522000274678181785272466241512989685906422711132566195765878952421936399258913311135389923646968448654162763482253790664963663982315227652345154081495089247713589622789904964928169213505827829608785581170614680201377490542346089501120206843932366770213397449339398827285721221718697960546133975605259845442096545483175497408990767494032848478145424365188554119542535746092389398628701095122381615585840577446352309662504440692783531507898939521436744552593615956348587158809961097274621719233977250093984730092972876227503541793454652445840832983221424998850086426758836367286354801271385088458702054463243503628569938169959218476324456804046866565068992233912745998635421849530095501952316855187889529970994330546960161941634477844136827799625689393196233975245876419289448828888112483506340725390482595771671680536087423107569730339942498285100357268213645326898998239141216121498726501597992520379806144916754541466963216890283374767672781843478625056221577958788749684946382083114228223933718894211976726570332384674698206315847263328956813373863374617012979906106975946161979035525011117510846656154095654269866469518490561578746081254529999995622029677285776639885043240441164844157645634970248951574697151118136438150008739134968366028004672115742065093366999060424919563635191670962045262350284651149913313937395738663303616876357334217600982765377553413109324750025633355086653906579247128796270169163550776843901859686895687644103958398412424064081790003777072626585368177715152215004410489576310761377632413725677464853589567169186712835733636225058733740908343865919915668480033119640239531654401639389196482526822561982649024974134034111272630857707048334220745395033410463990244438587719656068821291171395669563174223431968502750052574696166084746574078773136421009525976929202629953818742412355170042263032868566253614883559322470430860159062031366347091769911838296394200354679149667953167492856232890398677280456020633624411116005027718981621454902397936565137277419553496387908931555439582511673696641035905424745041528567079742839244699727833374201325408717589114275253448635893182356610419426717987204544148253778242062747618294746948621482371699459525223480443833640122428192046281258877191218010701640018694067079562547576313839250602816055677383922780633750427763857706820336844035599310503218313508342595159228527172727671150268422916148634602265984205308354107362630227514869972115184776723367604828923463071013706546076571454846550766390592716539628145890214809288709967511975062280762005247419333916716245610377689832959133580703184653556429145659824874872019292355071166272154850932581200830910197841490255252967193738201140297382377082651528871052162409889012772363308041237826254621199922319580793911258279938383031948705630655511819252008203330936589247005673363984237579782859519934802556525698044997908854594517609162654740251104133874290236235282235309698852080412345083846128878898382543283269259097270732862358188778645119913395871709170516583168035998415244054118226602331274931543353756877647725415268847093458503465451507588403458614314403666003320435235586248986110119766526384806015431975426178768948724745861620572802362368537487215683565356265502310941867169040398995262652101047298251228633443427905524234045934449514461209561620508904189718648221142429287949607349959426135017817511717756190623071299245631744100467231231613261344961708719856157678237053099395297643228546954094577150731067362617030125564592700142867616553063366313393661817523249730523033760622280266907980123194761371790396541183010388858894503946568425938144357678932204877897579206683261775314478278751166083471224910123090292761053181635425239778950096213428942941062599602350007501888196758269476990817772418873019039721391522274374095814997064683972145240295546235739062544421871227146133851671276725296899093628998582637544654668329791415754059030134692671021996186613786964667711459409140351843118802136354605803234361985902500518328223444608564850385603659111395468395128300693040232796732193414443529492510313758564684104566027418705986155422778318142994701926731042347381038228955510946993501676021357307809607983113397637386339806656908113746161499816790643151676786090049510076530815320161925583567972555839466274585932085302785082294719572224806657271088554081731404142872224576252767918604528777346854584321472656551139578185977858963668177803401492166954820903965291934346126030852125097893695121851492696330556287622037403422807959087637678513268038416007366556838406956323487767488581091512469392047618447967478339291925334984240291314888998362463960742892505672118763873515050514592505317346148896563283211830893090034719182156236629538619684047967980176413460668567424121627397194324515996482302623641547555280461306254749658431825143642152693592951168087160017069658867455438220504165201920146383465274831905508866333651118847082254214200276241360681315738271946371851421156362914316990908893901512189824652097603267921901200492714830999185775336282855212464600587627665057607504435478119028358643574827593444962367497391141696627616258269246192230208027277981135455242995603822392138036952902495939853402606602106321250222650288086201565169346713496533113517120012834946052151174016701144629729199375006487650105793573594298918334491546995505714264887087482789882337332778454344996574807305903591190102458414657837745212780417404636510339528999259547290877540877610140545333794881684755187756510277845501795152610874767332989133089686086795040393265459438459185493934728591345497035304874108520698382598927499786841002698772254870614963766726730704902638906818626705561162680655282321499771802083490606876903794735077040898699964691229476045240429580414588976608117595617243881509213226808065156997616644537325288802719931936302091521932116837178399845802445185105701614817542730619555290145622813893974543363311270063129293541851254071205955538047311843375893038597785218955937134559649888521505023713362514857559865409630740613588837724558871233617301997505151983850247224109222027781916593709966646807705829166907742723498904272471683488557411083863646552980143294660670369313942274132457208195335732120245090264004580108493446297918701172296076673320263919034578137143508406384966090595672843873389671835989755729702506974716224730681898775914488310465782553384236615711558733815776706022399902364093657260465160248161665480321659865069400499430828211120329082236000284153073571326078072086333855015917401887962774774187590211932507204737040904540907499374826893077096496579588005142743692705613631850717640306127998322557400495240858227869081731845504696164939331954324412675233090263200049594533377749566884317154208173525922196362326594725693319607193680945346309276736059206528136098811394755580174712106119148871172284530042811100451765639324508384957540473510491317988982801577304027727788692602713620104460284136421337550454468849143607136115661959241526517833420646151510322799285005785420905106403800730516499619690151881610698588563538694579625769459521648797034926651872628446150027169576895360891637676107454395831353993929460559509635933191921818213765249868673346067437002800606245314671792077019742991071496989144712217691299196539879325585993620873956306469550110591568489318491020918773147358142314916123122115900464280991235969259798442112666117429384408671508825529892726316770849013693417486975080964513995642690693951074325332570237943229367897388784259876281197862757378219192694437113487159302261855307960781297416207175470723860650386853020632730004673766653451069326594838605216848548293656079204112430525111433757780893122210521111447939163715858219726847771280665205743961093934451831488624688074772344820135857419999139084945036447031968644011887011636655261774926574599188716626653198170860081757861747296669512693214623864624302636152970111779743054124775266530619484486996562549039996868241168530703846093568134233310815867791715555692491532708613159548320877134494274434868661567931284963707765266776454558851256227322094485445870323851598732877741528467608731330265478962152721004360735317872121758250745343230472093659825055545474747562216772191624489887275908369101969156096418752659921996534756398306288589780628351572095734622666369099522278473922127163505637767951806977115851032546201497031012534986951958464662056126727183882621283612004208349173426726236610767264616305968317636645902214074923595522168094606966044273353701322846205057015370759666681836775420131666696306951912688238797810221642545671442163603092351234300165302333665273024424627886201951170873757340041880582183344914392214241363351934288256866993374719061049160711989776624182701579929221013951062605736091282299030823701149061823129453265379018135163338891831001172737523173073873218044647158729714374077978165427270350174145903959505690239825870924935263095868388950048989343636304408996791452361676885123427165349218780466706520100064622942799507532630767391559919681129774346613343587359026122066136363289912351797693080548443375792021248334294553782015189240660493472340852962995373109212003356611745643310740418720504392648270155445083361209592078622629052131827043731352249316781560526700053208537037322220386080944153148073177985347684590085497467010051182340909222613619601064931131284025203710228282821987730567977788721268124024207717858917912956637523468136249054507188435248861471227898827831574730461692554626306671259845253669842117940989178401763755838875968579680225028328341375850991626786861941605776948443738467496751483234410419741112060515134444218943493028289371997969325347873627145137661995562768454539664193737466252388234220382635888223541116814074984941169020523754796160355633971200728574973840529868136716413316503759455310448839911795820130822008772788722767734589919044539859229108155964341265487520509932871678586664651887408515890291677076144875389670710662423686447333356973783400174596863657838786110438449417458312234223680110149801139078381665749605592825635619822986704922052219350464457371621764639501815037636898334359946894070320971570827960486069555968776319475038602493538712542664069737526462629446138561825000397955267665041702310296913309493269108803008810254089646478654549609083120736569173332277513983323874808045743533532438689914778824442968047152137259193841200210357594237424339868271782922969518914825307954624806627126962529083909433910636617934683494261052109032984861408068091492771791928416543185386598967276680982244969999142711643191388080720180559767308170290225888437996693654431579719301689594504052760406330414967028216371987680941678490958837657238465886811687457163058395649036562855955888840808223627680344868159749193180418771166342333488536544469739068564069559936481746552652634714357978796646701921548530285506315704081619348806767719557312518920138314364969722538591212009697556721431909339750241252602264533103337906754258036387857209878957866334617395589415611381508091386507052749712501577609623166448178332778619199211164349898806433496466418788222146629433593255947788580051491097083485492859896276822621402607598995070728551846566434621529593608386839017995904725665393626795113300795283343422490495885936795325949224936329676931718003669136509481517308339662147699572807647964703960657178763973355918301512136568511223198907190543463887201494944251078469361639034676719617323254723923957720782196669397524799115625543587840954090457376982631915608458795760455252108171447509309232861668559718004050384309143641885966499470588454171518658949774211067666216389965903799795690675243755165304675811472502058081762806747876383066199241033412828867577343295469847202407806696879679102554174427851259450906908418884422534483207523256869672239854973147300070958058054521650773071560805637280137463924080776891754661309064947026884482467214618068722076529094616285626045674644796007700293652928722460433487764283104772176274557017453198933618868893558053960790749928023836288817372186926374472929458525210347297629302381789351057778700367558027439477785254729774455110659138733128935220425961650722798352961206349817963509950348896936919052521436378576692647587368511996045555963503862763500355316457165114965034666475163885729816968692959786924604677905053220463779014435957161000402534436763214972978712068039759552060175947762930248452109165990264801546102981175266141066920754937480205598404028795849269258104570114993129781272480324592644596573772315103169517136896380827679419742647686673930552042907374934855761354185394352833374236980749493242223765472552031507576044450063818096680410298381274310398326080604986592758683247316321141940928089659546121879969744140285015605196530477610108583180654227126873588875947030044775570562011437577691778338217433684336226984965257982002802878301506198627088602356206326337120514045755576596993988014560759887910680429210380120731946676361337265209053045340320853656494468529501501600970527071098292475067999896809021224655199679362949985994821035598473738951396822518395496890467379780597717463300674643094523652084651323499415298033404787656899860060481404342886417401685848055994838218919138420220078020404211581787475820999563132861571343523735988860330806946490996167787806018434089145664399715742574049580832915093695413860232041996433522857698212391662070172230846596303782971768227473100683470197816392774733749622430640514407365038098845231908721204790732648364674263559391501760058688006585908190714265333806805377460411787997204017396857364530738557009858435711763351910230861173029012843004579695193091305927454674950693041215923954970236864083380768384905848536825265421633717393982706846219560697819004617926104240706276454746574861829093067364008248057036414699230455308623288478038814709875513936708649323726463224494117426406914187818074327587836611335657256515521420591872313831990891902076181305343522983545016204137173861041377370963798006951629083536857092598236396001239999579391537516222631851563527986767601663394773907663268469368554448905803298869262861229428065320773692799044704907435347494385388299892608095719818953280581518058058510029936460588014324178755686402629558885310829137425760407512189381033730300599508194098977699152628746628570347486184639804407520578494983896699412431386071164700397041624315201851308079939461725174023781722741741891531390574081688989262380748730584921808248157985627604982195120495706170695068749523801956449845230407024236517562559114991387782746577400356174133982685746268965477795862199728028613810226529756394644397113510419356770334646193144446702046379060851959893528191452298156133589546489860589234038628301948955250280750670351455812871711413420713862305902686399163187268632447555894897404470058830823860223487800099415268709263840875784410808550285534215365095920580415841232533489196832886761627707375693246696970614652642496861304580152911207310236903616204252679106200762358299457585074546471201947308997250480006321280103390138530804190927039429490028985816585953780834307449863307770883291672784330863044470313984997084091122830217427009089364348275353979107719006799054587242812679725022036881287607702561387908496948169729534236963047097175445825262927395863252228047372837587321477465171744570900672232209232411870315026595424053414274789802046890777195093208036699996410982157032113423147504587871972520277744294127602117704771062425498390114400377203396453179821203115159659764521083110268615955416713424725708888790710621371366850579727895384187682691241747822301794197384584522744200732358027659630012048668865399181258847688369900093996688389377235156863617762441210136121185013371015079766215720666915572509430665550343157677054639936541120819720591644074151764828425736553053631084378501286660526599576168528762501725765510960944974733101261016953483694197143029925865598589036646070259217688335442818050287829761722675398614493869396358622047378867323263249778189043968822771997789742211889822147384308299449958122256107210659995012930365506853731385282635361278062366613403721792092470619321906841768685754419141200584019995624567992009748541583880139560696626924584809126670312625526473131570501875856874630662579344419294788983213640889247548545325991316394296743264310253839269279278145819518689101545430853274659658144660816871123676325107648209786325440005740568581968778922915383490304937324170123801449969149504492489510779789164667095950691113017989088455061875848148002384716770669111222435368688230873311077852500259974567039972557937195397595074807249531451550397871784310897673925416216086929116757873048402194831537081573812834063983294156606572682753809249347930308765730571482212239203727132683906819931284539260110520197598060133339149200810463252055149021787249498012997844299953447500471056454069236213539390591617648688243257643992920325360610854328626602606500169494932348551792506255987232579590511826933166132668097262132588612952317480781108393861514947599941409841906758754701871403746991189098438062870298137691427152664386981406218509434613485041555008480723620855049387027408171531933433864695622116737709480519638673063104160685626903322468246222901771710296887695823056822211958699706038638668017904072418647465536894818590088734667241216879621674050343678832477907426899807567648361485096698392581819236776900739048521114921834636241002905499080594428082813705795020252500803577557461269277705959061450758705667975761352395118386883913185650127751352702123286767490204550481395385991859816996702001862836511098058940007826717690503204523688439628999780079382857881775033788357085354224589914311279385014968947666061386780500053064912046422831247943139485646724348479669653834123802903898855833453661120476207037314563707710262776143246327755150263319502770156776272663327272003360103682344304614686690820997723047112943731788425974349532226241210363873129283374882475185115107389936996903100242568128189864366461147463502438865776687929441338888575546542270304052751815964983295387578601102724347600669794406123788002704212762759406891917614771237781819088127930840104653790271049089633951215218412001640856037558831643595174840644668964227700103322606173887628064875980434550332861101211713176016705539695713525451543561013119247114271197134112376474342109479649948186991687306316658100221985237366771319047729584367777607316904394784773271243793427262536415930056377402999275038196120425368384037242980257091256090324675032746222359089912803613331068704857137544097261765231038233258784305815912430706579081811735632330920345921392905561856537146941648829634355776051280404129367741912760499173623119608720540472177678510126270581921972862626196177156842610675839307331552144087345474318685693691459020569760992658143412884654539432927127083722468538656873553934282128023978370892060474755482809178712110820156530067874839174037125912873039606774916687676440132398856214054650993699815817548019402915054169060899957995317752928796875245062369118001225498905163462611822379102808026993021497319283393349394072410414039880692562652519999313069440340658594669218534476040156875919897600227149030818766562003688947000840713270675361824235683699240053079988635857376980715586315517213804705684104109675492286639079114118540070268872680369021581126769268500623773860881945088509936303929297831773403691700329960443263601701626454508127878911127223571982643303607447602104612655086787493747444268471202442722988963518441383725827366918907138921114929730856789366114192648011250665148875825323639665772571514597032942407508881594254162596655568475931668049524311942042301595606398714078527999262478648829131865636577719974325194145520522123811630304942242397698519243219733100699733022608525262564850731266233533264960805403405127370001850048774031705741422046394518724786898188987655543238886474797661618737585437178493088182538826882831472883434836823902840373001373740299676246170815835847457161162564801321634229212099412917968996893323799630103638142058880090323210037451707569648806639577465179075439668058282081206576819978250475131936692608877272216697234132179513840008837669493753136447013244421830312433122865657154735434826075962496881117249286732167487525143580790790431009660359607396398097619465184491611907830831556709290358393608651894544731036247505606171182722716730247411784048898123156438160656689280940117516720612104849633132549860744002468128552177019746212381282218889264840083729902068082919918606798812266414815421352472376548914825338620458022388249493681964049957475948270636250299796766737147343993348181924480936370858302930766909805855438760892024200059762560461932146046773285364673061320288281545869011617957176461226036588548025184073966217525519487275356913769283282459624478370214129639378419380284473888850050998686216719542893961796647625827695180191460663183165077024297475955372935640206365208191378213685787446123751972405414771217513539555421865841531780244889403238465231853859823951698950177983175949835932123286467621864571493032189024385885742889417705955054213937900359584270859277768189440375805786209626614544375160132749150913755934144483206026916347891704530046548065110709035601904330601364992884773570057878247477900733612778623816752525050475209033464575726744478398904185134063655995857135586768728961049599592467748284692771907383726117202933064550731730617248500051844087052665370236792113644535481716986443004551139850924144706048549445785130397885725079958876287781155360748821780766449884874350225369251894466920589145851139331538673987755014599277480105507977365242534411229287504661773743035535872132816898886886566905253232376528572835164428772803501690281891480621909089193739921503899517781428614382513408261270727960969828102299595293903028725321529676765371025558201631873922315241369837211668328816023494951435309759381877000327644226711321879070076567126873065676298671943770761063422255728441788167682758323851113797427342489594672509046134102155927849281988664683887661884229989415275364851385358043554541914920069884062869936005220584978845444938922618600861491419408904298714825530571140669458414193670418669519595055586648124327886025957634385491808799485233930361812140027691268875473578724039326581469179285461099175009757562609706027838862299236252357151033774061310418117909028580717021730019911561278341902263757723736823958635259958624797461500762716101116213279783623139188717173207607874647144158861453484561192758102821508393138378670873940092176319660328202870111082975797545165914528643073904456410577619179030296524094327534990119918005436400778921526205791747231815588427191857341457770138274320071335246112106843414125205755415066638636157264481179740601743209440603971326671561237482950126990882853086425031841715629558381748783688164981975726741840229721640366296840058401633173340504201904816669140442333770035787834918591780602181670359747297726379669981172195349442598027770490327925954564901894541313138362626662068271035143975997132945854412585031741536394331609690735104347008099527491811506319721558949970513098493967703624360508525994193188319384305881394320214696612957448280139984540571480196505712620005615870500150962324382692394414432686602216562682726218506791233620027352077757713561132572736888778433166771190456613147040047748940046130105348227293451689795956845938215281235384464566435390778013645571991385804076912199780650109031477096774723719437620360682852359156677122089589595325880147056745779601002317572611805445587805459963680543265894670297274193300645140569607160754473582380539753521524576436475710513372388330455730769531004823502471489585879723390163995885592805198615885875746733450100999670934640366525597644642602029757033758417683105480460586210846848687086273872654397636502783123555160013854916306219388109926202524765135703674760169814571901963941851533028813443473272171319185990588296011634431562892624601435482346455891394419501780960811255496503825409163015035237701158702969258237135746162357576351908267837803275850708885894481682784907577058252082481462691299999741590471274002937937130561426774772822681424129787045875333343025686378371471452962238919931358040602991942554323517632027077801781414028469787797211932699691402067338539464651418960272231172847136025682806709740952172717746951515556371947839038731354072336374720005640964294302457913629614979181642246615909554337166098796963831916505997141671595967044097652748673055886239390318923483681773292425407828594832463514661120443717047075102251597558516400451576545108193412878669079984480818083333751207798562870853820442096422762055040786903275644911259925501380931493569443974280562478580379216500876580925253473518744482839580078209048540781098443833713398647297870445916574665678059111653256467833527519672220281055012156478104191597427945178453532349828958651538645266693974833689390123644204010617022930156159955260131893653372838617137728074517644153683854839409213254106183353049957428372656373274889426919470059994677870841359470635971908607008538323959616231428223545355419323861108451447290128921690779417518505023889778093095712902043871749813707527005493684071066569079766999110637410308581741654248698288166769693903997520702691568776319042977682560333972699703775409813243784268995831466844141850380571793919763179566086152260986172507317333507422747912935990917021116152385071834136304632869474000437956658213075579907966449534313081280642968795528990820475791579094616135087595856842820288335781629300620666220670334569147352031571298775028622201217696344385051804352540648203018583471967309458599941190892854051961421114019063120056734633193303669594129471369133174552512752834730768932510660141608257593083792694973726229321158792591441912942852925397140664286263481166233853983859575761546222179204120585887777140775262644190777758805990777359147646092575388692261329403243627028882103111442632233767628512512846032941824412614376253574574265553343410869684239875231014134711962364626079594741633092791030405613639968191560393498257462759737905617474661048043193057143618822809199021483375870391693163957950888233129311523299710665308115478828308223030331403561284474423010931169288236919175054135394757791038020210712315076821176336637599856893534803379942395564387553073185983945450639846780156507450600046992569761319198024396626654964838829694053679278384899253220114264387465876301163635258392549585111082613771026742767026386949256667054349479822834534298114327619784992083491375063142888093968167070410728103637442122828175945473064989755162223933707509245744730432848937312881686935839454469495594509859873009218059799579841396791330930481711964107531233321890160560517355769517238952238461327150544683686200815361917925168919299850905333580010290425416976985509657799748174166444978346825189471802215649927430965679200774540842891058594692873266689768790261170303469620747026396204571363583718400930180408144537661257493484570488616199182583920852962112586362506875054218552790066360377635660211202380151504714212485817082606122985967793750379301833202390969606350071068998717177751449758024118633830714793539559694492716425076534322058804378362877263085953512239750190193613106533264636885922864388703493646135767427994406318059196482137701196715134988995879221228924233819795781408233990391731054042028086763866212472706680850018952470993100857964347863482694729000575264561411932049079088198798015596013957119845959410344596191191432024922507376001773883145988065552297844567029205550079524013007442823845352382609856191871761249112358179638898115565025497082989950041884608874803897033816767173069692423564752229544702566778436024773470146029836044048421570321540680604096334388048188383657760226864348674777396892251455404194913029126028317434910829363610351332857712857564115356539400242563029601862326350501073183517943512804172755824977510113269844587172276065512581790986279030302854003401653926990989504260314183095361874350566437078155411689287954038202639541791769236203093298802517004940604672080875463391283313169551887114661069241535452324082918182011155614453042020392340141953009188161084541919066391910315122733116972840752653484096023080824354066133419717517318632352129768773294444697280265528635444156829018677876458377077648821239865901000958203003112158595523672506995299837669954184806049692230951678376404831682592077594127289907577020305418324655319777531286746027035052724127884984252895485013050712642968167952641142337220508405842945833156683743934466304006344797232458939520916601758945998554225887344752705797184602664002775093807446719126668150001205503983732243604322338558026977477159141346584452119255275818724626347350943690344172224119431727500907964473910876169847877801166294093128810308842946806709657573345386301387758697160507398375999733792668873618595509937476429805788709610408813910511042002564544269289390631198093403277231353042547398222618698464277476482973721265204567078663435465621327153016382367906216524171327505295501477633330614026891007268717583834193090740826118028404591232539858656457670454556993787226445595290764936159435842724337702190192038169696762664941822322153129875950725173000760311103000592757435998459809024691800100983323715444782265120238026422128543552693165707410441953898879222465197083882988876311168825982253435514164415612864706000099950607637459062012608169271199095335590682494695645155231565485950820990695375200207798000572771101911192343120733390333284057831879341392953912718815898752442310372826727678291242086408676133512601419743320891891809202510548897580467206293049333381414004241140510416564380163651808213296012054281133448622649103886054822010075284902183079840814842863804423097543664976085677438625419948622377920651281310406952091562842605530774046625197044212788122099942265169136712883935467592900380601758461126664385891946776457095977193651832554289419272246581565020331789305291413318842392193879600854214010100904487032075952559517145844546565580005927749572210509053583069597008568030368191027898901287491717741001684315637520168464240915862849012251216778617729205992924452275613552066969881728984936603773143475040216339835973859991959702859132748791998640842441961587375775190657809604091608985146678074507049693640874308885696375721689526705113467560394127969453291512668779971495155940160211804704911286703758583277229421798476300535511014276815146570049723133633079755119401351088978077115368503869681137387360225606905588875584304607418359869927464142894320237860428938640083815961315396800952242700096904701575816522401537259312045111155766102420763900957237406555455706395438091815432737269871097902517458194252897654874035346910172065525952206007488115215728844770943474347378857618130622044424566182660324014483379492145312862263553578531883068402829107103771600336955231516926769858001717651846103904777167426866913233376874166065642722099986478978835881227410325894659202493841134906223814679029452896704935472784400925798466305078934062995694722989459118190624716100444967024498948750338620633164834498911834137001284798439731373765887425935277409807197868040107381363331956979169520993432072881124352763808551524323741624171540982672051488839764605457978446833922048655026899758883449697415278488261952316274556153796401378945940836169160332590366326969599085499553669938459720781839411772116538010014919187423616659065233250647717004385602435811248283363022311835593336815980778264454013544342066753524008909890754577063842751350933446116315140565611868051003930692612050519593574298240380117463205030751441357104820335087833857491066369748506119710780561323406546904578843314371348596050913376599646876132877433471722733589732026322368685493151086209161877913332223959334534321663246089309833632737433982519431140478755192168926380967549113201233282329007945871606805450466233733129449257334031771686114251135167713984348734440920077862810754470754188785600703857281130750237590388145642843239455670114301243979797403622012985983259965135654727962751331710130296156657455605857218279563517525462287711302256504938135616807375895849397262319708818280890767746152688582640530237438985278751666702847827277939190309558227868875196459264975208353419186881388020852477186596951772109887167916566790150015144738064045583674064388759351436530534783840008308069840125870175607421239912009356169736421618245942047210439130345469052103683261490206757311079739695871100065362114508019791510774666069400001315675759625358706730855942849499034672205757388205273089482442951415980096187469094528224317949726420255414021323634232942203395376179782825625921308230599705745158504391502717168307072042678317255572421041388693977726911450336276742172230764615278989393677902468049269755187943575305596274393644998832324426773090186605631683348044081402368623507888281134685287795335592511975284506805537623331479721291637448983979167421343580847817082916552912253980045047586823065220145336640596034941272082020493818721518707293071749354666529446666044323466376986189094122932552985893992478347267782794639984364325173855561844996948139240644149220015681317185896074617971759645402990797108542283919416681240163587593902648678436057740866457054977111678748502195161586544406820935440500727113908616569806188954628936367390050063134969414542392185442268228906527522815300009793282134622071695037573117898818766399745881789901949865615446587585609055525382751383017204338992242338689580467707337884616881285572555004663601908305967477517927390339717465291921266761282092275625605963519129620335001486804715638934977108175857219842748244593046304588502280039949050102879426514180179888413810413157273203230727827301100109665392935207252483383282725297467303111998599097341900255097616418273439535692617671032489917075158542685976772805354800656072401004108383443847199806961353149829626089964953756079460133568195558413582395814323667103355371513946824183283929111881421773653019294957591170645392346725552832039641498191151131271757109185488382658095427561673888058224440636376052966373342886188572389185240216002234033992975449957705693353064124593500379219940791556431192966214024621286194584952725252407858441209808972234159460781226430655501576531427417990756726984784067224247083879019096264949336286486127387521834955557069301327763247560595084979390135346998360365197540722496865121621207368323121977738186497662248481556818680811848532207560320626415748214613124996961477370125803987659509134676887597409913257734770256886197325583698873880589734381009765043205445648693543542757419215588796395629502988125953135347508206802103577978572352583343059467131007983118869938492448398417845913404205020988702377763092945523904614825332311023378606082807373646070775029033512026600903599938881526959416180209120736321280115989288878099762308600919344673195771171819609727285858478499689755255288903609042510388947668724492301738315682587618201887375402210216715590825097637059228708422650721489236734726418134916158210818898473015638380121753560095764013777018253202557442250628784998541583230815236266896415159529048090925480926995403112713998366286105552978802053775913021716152283790834790757449921040968283186689628836869859871588434516868744154479092990562246324543309759095472492748621191969265561774885685621272603422414598918908079062826274710781537142262337396297253037664386609986516855969965075411111307166950650170078106217733394451895025235346339565758950066263201396992703245499218155263438104257975099739572164126661179514688342074998515361824294307722914603599908533174193463762011629007090922076142476542387777190001826816269003414642917645628393040382001492648335551815068607169966348992350582382037064009115146555611328580280000200053904691128758258363015043881487348045730798458012263438075616704635515068870965283071651525018330034573664003344266919106429576758356606919894567890830828236859617401471927559860533622486194076767480506748856547728330475785747542349053933691879007470785741334016029421642831551940571989157558138497065848614291336524907495137079187934443158299655625861292409068356553170925858689528246093633052943728882390392270660936103767731052375133518727256131497200369227787730782994411921598512825082296632322816879629427507924654809418872121431309205541677775846313727363917672631256793936877037033597195140396726788232985023685464598259560483743072016220246777073808274074224811883822478417413745148029277686777295182588347363508617482330262124949163125133950635882243106040536361919916998190734603697919938936031838703799879593287798442925293187747089211766609377051585872539252137537184270109752397552077294575777349299620343682235669040665121898624660437185627288196319329121369348123423521284843919813379363824000705585631892339051374251054486241044157746277613744376473551274899466112958680629246490941420026065420700996391253520362353078196703894902546550129140935604834875036905915987948920845384817939885290188410999264846024526093993915400751871609695574310674122614363785710793166553827340238024704590835445490834941315169443342608272148768832371773495717656743263836172064248293086910123145504481711412840020355273330304792076333338568376059279825675159506252848573747391482199599885726502340500563544566384590286478528002325482180059725253201701123795063925696216868549365209713193823349662211695870254900781358129305071107646786701989622896584142172391563338298238991939230888212274059317719628922828976648393677172388879068249850616247692705858692053347066245995880037454175821193746060666595529381035100752611259265779266080207249523665383786358780974228381232148295816178833987371587064302099186478066688089310498442191747612812299043081927186384700408450666050984802595192627798045488192779537203442522341338854878304948039682752108407403489582777423104229514911974628544992572598696100241623546924709027972098292851618580820570916876991577903451781623711630283684028778263932889725848763481663598630952153685413968440065657141402480054082753849686554740838882302015755405334326666921499529065664141727769873115316658387276074955495675856145763561960964328317496547525450246840520370445479107123535069062625184680364932171515085476146174059008614540586981831697160738048317652044467384162037989485525088483230938896823314193521179559413252894718515095809094727713980958834988550212666303167194202512874338321476119008896402212740193543301012439478339896706951893538893622172553333566030297910325248091924325816766314658848031921716567268522040533980528999134620464873168770547810745171364374746132166032729616106936386181389074612182599686339151269837145522085623265510120436294041684444044700724832270071886716963085595056521659771228243880536419211808658053515397460660486367332582362854285125280648483551965118614029212392327099369395058996657382526220898905383080126014276389207313502864748721568906881838377737841378446832630189181461960242550457704820099198302107169678019452362367928792405285234157438197777263863817963901398099389865864642593937391092754311285992822776151516705865956833306405514695439741217689971729658746219486823654373521344486601474682417800211990147569029202028880284220641764495024637621828903886539253278086378552211582619415330092719803739665585795430837822755449904077694916116399158832451480403989231209044650225369134800104110585725799441757516907229032501276212821333915861015465646379392473463328095327824290018797179292393056111711236964814469164021597106368711496363125984306239170547916286748097446503501485128128211399417296882968960404074011125856016042991023751465410697969540981479287657240895167265474088917878306489084579095809332236463365568410887513184980173372892337316812906449454838426607203106426570184520663613260952050804981132825078265498543247464246117097200664609571228874355114834378472776002550077051308754794311281197458124392088182435159811832531572120958987188641267324720211889812208899186906833718900595795122327660510851383278486317162828244352576964450218692151845435311945007310781109847424471329295596067067673855672174807105684921095576645816932503385928790398153111553751628984638131934069626626520390727697784560452288668174973752972230166583592328646477749822122585729821425023580533577320758014013029854577637403363761557989676605057405407412781523276030164359374474764409112589271237496997731545560311330157650712807547685151335536120718664582306062415485261159502492416198447964613212029194145022240576028936143751775809871371683897683525821028436129724199315670903855846198525430361794010371379831872517896521159799796921986889340709210220762439797572577112054235864844688987352567788901487131264644961855201459755971383249022190690770720724604543524711361385636699096025764541552638150885839953919130202864757528354260268730480829695930869854912625163009411342552606894539346475944689085506114409525658053333780453869523365232357206301029006911115188731581999814059092190391244720766926050638986387103393580134972418347216259692451137337445610510690457263788134323184420974941127971280476818484538477372576421487923759323625859352659126397204816355793212334039073226315496019866972689513822884005068123586230286404692792871776165269778303752693858751061877186678542043868142843495494808830790612429125751853412513278350173576796927074904220269315607628740802296703139945931376927738401911714057071436655267435713145905261880101823974814538453755808096794456519153616883415530818047777152807404812806416713448780829476243291745706649913027624013040411612190830258736092706769336264454270783912616284405747117918549975535406154588514040387980518563071034127817622602927042166266888451099792505500374343113913247149892628538677579827039214688047921145307638873699403820155855075340903711113089777496674793614447618587698051777866890831275011751448829763721592020050459464639907358538304738893967942427222650459615704249624132699808652730359083970239558341130171164331806059535659645407223358990386353892649821979542051059439704120534603518557782534763338178399591534701554789550815213453079884984876863086481484760459066362653095779375189309095175589268567164101715897413778677130755666913748714639030881032631518351500183526222663623308479687730697729809991800507707622923473345045042030671765374089121915635615483482577821453366124648693955197774233636323779775680969496061551514481049984644412681103608372854365027771709884543868214648668303470445937216406504235058277207572586292878509089356033083543738398951079181726263078683408793735094489776617464233211530725262421103567971841252381201052167501215260288049790481188775939076529440834530003344056360102897136314886461778755939390818926422740284305074205361115193225022050280334930393639081251063247350866798581548174630313418852686560769579221759231014760656130340592573716623415092621440343800189179205122096591105236334783698857236157241867890820017167838354898848835648714090353702223316941065761404171697411491177113036732280055634753704182861551027493589156008722663514561545538892045314455556386311854371308448789085154706528653266429513789343520624958704054256895388073920876911128457926427910489806308531888438403903339153962758346184323218212666104703710197116564929566363371648695425940880024223764641685841695666170482030953316758500377201448667933980093575114236217574865573896142871350839525365518084827156114523346470909321710303892513665634610080462744520659950032776088292007000858985648502858366549992735819397731588693567661746403376279209614547525810715923799166727743332514078126350640700485107432437825816289332603996587038424174852263104640897548990090425101277058109166868752094531991295556839917887206500534305765733265809150569796227898776660766378729327308399624843601747973450497416264871487605249556072183512381258935564763381083477214524690789504816615044166094537321968511559182916308057163296822920539408706945396596027433865284098993626246983570220546726821893119381070924064560141412976425607181424034753464807109489917654249631567828026664526384531675227810262044315985695477897090550031542919751540972918591421421043369627202826838431552187100063843467170963212393402553715718967809383258233631300398046359691441469344155718251865562149544583636393626584593817282917071891341777250093281202820897586378683972514026515637899407726826166931842763102952751735865580596081814560181815486435984069003333807392151384439508491563064586681818005826958002419903168340491397118808245770231712462779031772372749751770308092174314722451525171633183821678747876182787817530029353537687372960590812451230871316954951799969923148876062653133364539712730792890693123593136336976434135420771742196776742287929152961212580693853235390109975247536804709436108200256006667492069390482979431470246632323266554658752653688349036574092470783715134628382983803012220480610232294609505797775821300487544906291848544911822068615326509647182550828702664629410678676906786752432464244448775735031677464257045540687735885754568627634892396013298492892937667548995963528802360839201357168301158171282399675686275775561673395864435157903882624772456804962532663208636167199767596630127236882867029248806485552820710225207352963882925517661993621064815584403200888934803460266779672521709850067127385476680068096191519477728551909637034719468211292114951568650302898650501357325657877374623251286956030002647821441474633277898391982982044813110488162921624596303496532741273060937599022028071448187748925344497378750332573546081280720757439900666219516997132318479123298889187962120147405037402170369881213528735895846673955181840607890508145604898530208991374638825175313414403124105396532256156948368902372379632728735524454010769193262291431759868492825005432777254900871151493076864403075701205632357983444791335445985516340770664135948507453467995202350217508683240852185848919731766555341547007175517471718866758333791819651839460716156353898276876698208773367708978352422931098437989275632582697113764296654312681025387731301293978742429823261263249366558053632756765727277453911016796463511606561607103272366846323636073757951096851980097767699605795063698628328492387506015228557693501696045758926695806470104875248832076613347994801755341028793314748780687953017436069571922537151636994977777896700405457170562552148866607067813015396364509655657745238803743489265339421447120638122060558287922840469877056378854237585605026250690164152424849443522662786180368286039367153843413081544779103410515310992521966935016775638846686529729085447570062344042129856668272910484760835953294039124999010848342631389743319005139221581710706626905279549019495877664519797628249400150399454668172671076916982982035054917497504842689832757338473487980466860745452468028754034742491709641206063498400073750040990347973298112832283851092466101180867832440872721431112086714886718996602746467311369321913850939493007545972918524665758847907157613439667677334421802710190733117180246167000261864559687709717958101966359051201649609267676331758843184027994367922546372916030853212959087733607308438865101510355242425708632465708691866038758495120774477084059733917799968313815786688368963466388636001073396241604880044304845870465562182120544774700709650190759191244832542856518482798420170547251051644242756634813580743140121153392088671140394196012072095865093835661733468408980956012860389242686799168526023389097413990817563061039908837947551177569536138876339236728110127457779271608344993297151658026885967029719239558247866120508227860404247618013235824098153760739205299990787199813479692859254691099242337465233522777787017628249075670858687865684167605393415384913691220860310241647418171755552687686435075202634253969975329307413091385328630001819616752934591712569294784166632697721453339470813133851427919993624588745727485673921235155372883071747254276322025185482486904052013012791779627389371034828031466382892986197019734659758498592360873389342155319686619487383636906467388984578337107560759338649844090371230890144154673971189129325154299510986535152689864716935431421070815551478029914102489415964341656626145526329499448555743417035601528150393578139026340698124619284074031809219674322846172063971120782604388999440106882331935815223298132561294427397734045444986128468415375111455936793485308011473792340537520426032963670236688441107434116194529991298930445924405936935132802115882536168650355489754672030687253462285697743468834647688359245678112233122698787673499588894938705299898889675527497598699369915795076240904332542237548359982130276827701152532738195821627670367126050793984384007088269829293432347222119085320737162841015028640967808272319968830778918588690758795713425960019293766472360574774428599143592448414241826172459948365147509879142429903391446309865252453056859710404728642283699203337096065442472655396200789939432136597752842526071833091452755783840827548569459372572567933046952987172790475684021360607577324464022104491369094687310643021237054187468158532167601761695705086848343865525976829416431073816860112695987333934902024367587089369887590540006225618111841049859558364660661790230945368851364845852112435517330243738034329883895509932823968824167815679839612550228845160052840212532322645263992283389106377963092910639988127495861555580801487918669597005039949109391047872436539491888054218212461500702905616530551924901937875461427660198813397305456796622681865036579086557408842894412654224038181058240522336271608907770240585038316330395039003053998929800792989157281906294730467067579302100613365266241149668883833229754043705968263401398793943822536963906251005478911771328334191458946266426733013965666631042205206595617241899574090282708137470235048413587046452085173045157719498731577117699735472287753861831442050286300824465654691912790351994243508085496643575843312765669538880871617680893996048139410767710659990196353727197682950156486459449019358706296997694399424360312813483284682878703438967183842236683173614907634712323763719269425655549679820198136808299440264650714222806968753587128199002154350904662010385584434803835029099120470078222229899113164747749714093426847148012670793431071883819155068868048941179268573507796452633981580272492994327789763007496858384027826305286548528045823764600300672600745467234834633543743815645216700670694829069267808321565872361020134599073230924621812351371739755855095104093885545632398116103251345917830336724760274799541364510790812250926652394360151066240766193397342978781166321548746066168968030355449111806096575681339122743964239818217302997128688707533160870935141357660071194124857991118479160902262666793760632976377514266141436606261471957783793133892312392699198390149555119468572186407221628855463187660035775412483798549292502880492492049438257315345779796893002634344798305903196427516876214572770687385153856814342495516192063579382542890836791177341188797151318308380604281133942298638498819766261269920999172371697119540486746641288167682636327374148603538803552842997468873133496213922299442079688435205873027633519737201299080077155353860243605299705627809431128604017870272600737783987236290793415495419559768436673252126263770016821121596317300844569891538366194327707485279837096000657718808627352930054448407735523749634010888070010169297362239879471668840986462836817445580588672772511964442528382165166655830915220785593236837686787022770206602604567379923209741235901111096489129277626187573853035074518052919947370601153623977090754982074301428394371870840894953913742762266951782178615661967464316599417708052185722152988525245574621736328204284585885002809081340250700524542168282008803456211250710797211101655299052344926990728422445516126020272532639886619395180529640734337854239601750589276722101845350325272066970486138995448548655235164537085989215817647881115225728789807518747981625261169916901673359277344983333905122134717574662098116555270899933255166955179943647936003808174511193690471986795561431221089125525857085996370882250716458304214904359136947771906710951611529513322084695760842308044014228760196974420794290321545908496398109000899049566438466673640905171997778991825805348973396322156437628827251116923967725016799851705717579355239401405092976902382356012581169380406895200213604980871724545895309394661616102968409109431959945718713708431085528329571451363157203191285071039994461163703050525063787320861181361599025710924299190111245894497191635920685209711992204111894206506849007987139623164141351432377696244756062320896913982107458781046576730573188718779495222010911251361888559463789603840656292897159519155497256363315214494547700795864293382905987839831406779845272706178787574806841977088907718726991842225299253992347596514461684935408087285680550525056542690046447659644823679135720027514921504155893235613779866444306548198750133469149739248105680356255965980678902668877014389158544945610841956046588607267101509509609491064261503306191293605849509440612027015852577589033799260488621671598877690538179660917880458644976346704601918948232413919542994897229926383532549885841943592817720516672013491652179200762863768254067823300610403244805007198405273033159638307739262432436012301248238289299617603377215848454610324813657619201497009010267427380646781395953570303332841113062101780879949440001879610080386210614994022254313326010394074796313857688879804556250613557670054129948832831407057966789060730688690087726404969524963067427946875248903744756125711784216987611530231146399243529439578842306901798697599471784956574269047292843281694350387545815376124487855900834711899492958425658645538573751055516901144985158901120269957431465634749746264154107220701380488104915501519557200415910454028233817240890025375536641639661226394214173132288558631322136621267333921159375628566719818839819509077668333143868999865906091310360114539013626184547918287555116247203097506075421267054172718828198634876592756307700539443429543475183586994775764723572195202251874444571333953292157940725300109688172861843452169333456611877470561904274567116177986982333562432082613442122186672689168483871391402644051372497175371691736581049451625463177565879299715921854617382856497067864832936174671468585443583213390886453871282681192504111218660144333691867585473441474381128991794166179407092151812769308848633630095806558769281532020465504036721113705897194098531225738078179349053452449247059577596831232667339666914225967219267954996109919576720307058881752529145068641346873655013629265260107941181846294789297294498127684010355250350763212826175755808146148166170522256597028134968547360550981554664150931238656601668792702771839003769173902357504848182974818693610985447287760611138187840175975505714581542449743868124249919435189455301241610882966216957831938082134069240846738762001763910445143753280750809829453788997726672259491724648317080835938543044312155136494921861910845138339052051783454051963749258924601694271080860295589488205725896364874756051186469527161418943121854441435654899165156385768545242879772918226272996291044710214297491045348013184545355936267384606376370996906935799245635598225938534017895949049302010692236079928666896838131655161629349734811143511250855044770566806412086914433341718016089989201495561503344699154102660998317069905027008502049992449006773538026319231389254319500984457620457136314813947226810861454862322311492766077735863350462967843502956487480770277248368497224397936513258531492721164311256718851920122636079720655749785003210707606964713548616501965483734005416109994620163601245844622961718356860833257411468232258035108797650858548111074331246850192219812382390204157529050628992712773683651675181526008230718464492853220596822354606179895037806124846973542884499665206302312490004438882122091224035370815528979047788387899053474800653572499950136764882675770199721984238840287390399140228820297085208371656498414413856004438233247540499855752768192410781086414029849812942610714562182678668566119474264875739967852924442716051926044483472518416506771436028086213915807296578820976881876802238968020165094817716019868434400456174185609655055525572749624162132320528776339670959332974814567124507133121297757507291922558496630641985893119390276094624590310904796305151578326955808772552361508802211404501547163830158785023305623081787779481781625081259064219461113419068274358613623505973626395970649801668861061256593187085029976221107042269798627328254717993261938181925624616409078506145946029151393513552541557134697417608535525443165945191047805406839343045665564567427456058220882991928058844389072618088827555537695265221914914167470604260990843878547992900621456007138328212009340378244155575724696931440230321275992586793845356506037961203592417556218337036969697063706185309645444745676650372841080433810353903281304446732250452895178776824759479033265601771043243697896716282777799491122569203758424455625312749024964040844775197702016899745520785558257562545510120578318856345496473626912123705779207291885537590392426654613610515018197197947801574740251352926010939219168204002595240026392049381316224155686061934379122150657513779440527930627825044187646915987570946747767563929521071686933579228476445620707126694371924870967595640924624252662886526549392328451689978396710419461207348150453320962590133369665464377654087932536016165460788218964106475024176907355203792620057235931140615959600560512254806068783931537274513574933865987134293992254556359899130578244729671314992793470149657596707661961155676173324628248212829398768212006906645493560463584599025345383031123342084550019952844238984261406178250291252330210190820734376247824794746280775240939323010279863117334081526496860577928065498352882175647332274110132311624369565357206561968321642850077614931713889443262132717427199679577921235672259811007119305896654669642320166863561741664112622776176127662222550239516733582808119530627308028445466479393517794888587833296128583505934784680594409487138338790432302471090142050617593804595189304544530080892055883274766046973207725910902486803596946356474060359650038584154586174903758772554736832401581191436898230738594951001682091674912446718251051192514584591482500096502936988107425204464433716211870108455825530396641488233518363474442410345489100496153773508846150150665561701765907302016961969765800918461884479565723228105612025901408696177279771869406146244087990319761316064564770010632985770759591673212475210682762905259616459460032804013296305481323225478072053111708164154477953536183171059882474437513730477330097929389694863008869809114223810366239092047396798331273999652557306718116142267014536902557965298064737613555755040078048147283744148358170391597999606026795851169666828946450783618494033464413486526946143250271811835488709043155942319659079921583777807805928802823677296771368726606695267968071167193906474395259635112452459297410450905193717506781777045241235310501056792605543159183516885689590056201039474527831214838894855232585274997893090855969297460595259139161697754304026210992032355704054461373892648785690659025934861519906676821268041724627811802067929016936066755577062241901843631257381908433157223338019465779875818780853586210399310472887672826917640479326035449021892207808927453782082046783212222974674181531119510398351905490000862486096980596600520734070586073053577603086121566405741893260276864897369764105022817708267493401476198718932023715695291199683736076969131779131586354700257094774163623241142148506191102038481971961964008697933960371326066635304903186591621464620164307999945952525405193612645791866441017060158809317174556777503200679759920032514286493139082604300959697485314769483325916651503912733029750194447660880608135621076335305819832289411833169567247635273687195343335780901024845335079299445980636864677703114612304891262657084707532014250214125993526994505719811811473833522149640186320929342255052470352188287747995460503101068964355559113935587885175327596312933721568787039710796373563667123751125272542692649717858460893080457278821882608895074824164976501427726220457092134013537579790071855813252208221274573628064901280314684074389713012434131291108193998059294720147303907361989102732502837806453944780631879331715555577999916326423584185671551788016343175647079206992116416914301799642567335601228815003289287287493464491006275249533099382186415693156225943692715976068259396572070287614926764886714692696935904669475338892387316058469849418014628585436713652137520183511331232620427554720577208855552994198760787997016799515994942233305003146526138177737943226117993133656870019467032004828944758512980799063781542409107750771318224430948684770416259121550188477376418526683564088566153981985720571544883971931721392989097510054010851210027757571726101452225089768310347756121923156881594954285731050715707273960227806454356869052605279834628152288889235585602853141387364559768684052433201024258007570154139329808705721313757554417398649553407253054650945968247383562068963839110959111521659194000160229546615753591053260098398312412250396581211868815074198109240234966835820045784876487923154066370496787552466441510399112223946002270306711860386378059771668520352956718584801948206414501590426931898014927741200730471629315995964410310557767095343863075704098081991735687513763276918065161410314806819471242662889181193632101450064882381746124743975473506377991176592514581368574502350035621677410025024777398485046351048532108940998185359298396323000562389554619196862536963256051532512249047613403298057903354763427868938502303618768431931902147711315567346870832391712883093182620487940439539970069953869108349498975455502523684683892944331586726035984825886004028843698716369777087631266911964099410107755050016587073317118003801603815217254094268009278991434323888104600777487306304189809615390240484019452579255019424306642388082518606478644015742996849569235707028106568143905083188983897652779333155119052732057638894917199796593399840299985218365091798063981121700487085182867449277211287571387761937137138057734993724818189927759258037495173667782795829199183846058352617699398573222772789130905962169273238622692306239718455353682711651363931347116709526349111882459893919194964219611466501037763828732213108948078434788043198868218467971914733756328943106062223850717632559917189719899188817047164016916009737128887442499129313290442272101946324138813682333449454267580184834921427859631924377900072961123964592003508084793017421298623618183863646107812901955566394811979514508712077018264815913443011401882851695501145961984154322575443345843924674883132500832730545429907299854027188826876108123188687462859795757813570847696757544519618199253516362310817725551546345083386747087400219881600970769200189627250418520451062919355683003519796543301796838530612868891914344835873420753513214788816562816126108494823999857536602961511111452161608700490255605684275732433783173750721283839752012717618956631844976115669929413894476432313065805309621675676154866476788240504701646999007294957614096231993357622725892743865874616333291859147949347935341226824653461215050831169339892607391606247762594402489597690658462721165091875066414392298788659591978733287798800139974184064310399948731519240612822021567374373360289609178576706947710001372638618038661858671532273577768051228571202122196111959735646457581032891536184800761017695694341514541531615536596328773620833730058909608957366723553320929034793719020141639798865875554521814498119716359013112209041831540461463053981349336394004153367280289551405203041287896555271238745978525507982169105439428389859114007261425180420565135780924336303235405220435086127705985100489195674644442868970104196471993809015236704344289943398445123587404697488588128391057257342159351964558592619057807592374821236353183857405869571469244760437646800405847836449936523401695701055153274971474994878038771367223469872790449264182126835904214181430312084061818530724299480350535670335774090859300712375712091793899045695022227081967281977638208221630353373514819550935296971887954275891486407380932551279467553039305855373801328456930359242384992985260616759855678816138794153724079352328049773538798032536813033675876892189644508615941822550842525448684577620982910146711678363435472242489323874173933021562971656194686371896007956877021410528709959786216682367935708924700372921174788405918462728376805005025213221324948733425189393564128050841562950618033309811819031106598636201221242027821019632453404578648105915393374468849618298760865421108772637556739379971050715797541273890983770961386273439664774949416286460123845878960004498161627885476298097773163712251929750037011001105260882587541719089540419265204274489592045918947298314528568108767871483624553233685323396421616752394793342331898626165111953415185148964478457878863335582765076319238496739895340114364866868924131223340327887101395645922612484418758885892767335115065826294152591771803454563697142416602073084168342889827734944068786956018494440274807681472044793528767433906822873912598420086142988293492200137190651218776243846595974492427621938541252324324943436616048330982952741396531832913406853346751406166848442417866275524692970799984464312372651321332192120359039924630705834697341100951013100348499403094913193172228469197871846199974365037978079753196204903884401581271158820754188291485330778393063018258617873074964249301848612321671360682625903108984513092685723113623759336710951407823260759871620226528785513535199600856861556404777015259517102186594821073847866766633177971546932091185813549708228615222043675927281794050217757545061072306635039478184057172415441355152381777590786883667237674198817354286214654662700099708658761274044226414947669510571924998953852679313451966417008774816587700780530329577218892397457223769687403791391134828927320559932269315024445519752892939650658865630259186574631183618037953301392814824021038056923870669389887985502057773838246043058285008517053691550532125059204582561433895222737738553860589917690803114932969610976539657043690194809129068009381977541887383147574842458174646611412912369182759376690631467445545327564975028556386492529347794486929839593162245388857204313997832932130923573924357316940072941426450052581632753255924845771043332182675717760152591901667537387568990466973911515630760740457425380965809890755701024056334571254380351039506322852764333246791764785368882044647627036309862969567359424613721062103591475511199542564578555274705054446707402111939535391114322386547829114983955949986285088670839049826621721670196255544704019515117622553919052828030062105129145910497670675399684493463885827360392009066790096763514312740430445911474320338464441710579442070809387864826651859530420074157421068552355006893212324815719411659924336729316661572555140358167951677033402790510087437782801204322455351820310459797351278213380817543246552451708497244781144570445137433459609990431270358498725301461781952614365877718954431798745955993999863833806367407069836372191611965681848466128355215377404416821580963556863252590109459108079768457805906559310349270295295475865174863674728236792692324232480762674390610209724217012182932815647250829873489699019566686774996359885410341924623372233709991465744058656606647914411394906128675643668687295671134375556280970065565440116383564113535270635596775716617268193312886923223123625638562399360858883329042837688294993348935306077677439227164889892366217899962676331040141663409660630142699002144909607067360206584001098441935583984082179959512772384746802365341332539622021650869994265653550332852057407572223634938462506589081789644202557340650179289227475104613075757404674964540388635526796983210562237280320118709793094334236143504443754288225095799493301703263763552999451698951056630458760232818656105155984455992433660409822853041064803204897308021127590144836736795363566292518187496431896726605741825104095083454981774532743054083093460959699697541507051947071445290989232376800354575490909777483813840114045639578939968158977561938277261037009338950030820732748655396109058812346966082188576702303668762889370342387018253824326059376924745647503068822476268071118011841259972195465390876041621826275326805658633140445858354687266192492052606566965689042922560510293030332883972325656147597562927563729625430060107651819117005546203128667591320929880678566868756675627492918168766089155073753241076455414878988070056801754780749154777583546761703613212821664786702869317446815902342659364821107370497660448170091025488176326737384448754640379978116183023924940521432473782024411487550517165105441532307502464773166361908743920750478379307114211916707119175985621910389181062995536141016605186159555130895910074183364540842122418123422943847798717756882820391322245960018908936656046301145504213519896223817182653712278907648185114799587590643789229788582593551659907812193833304119713223455492094030054515497377325861715860182910523377288575225450498162455938152638749782392985030042327621369435397898469101774927447417677115193246022724513621620465285789888056485606195897596161121478569212547625721122953965985468239382226633820354201771176996653743519080153476148986294551978426679688879114877795403371665106974066172110742903848811204329188083792211030325996193038283463630622357124946766599327856749683257416187297741151618452742587043808402847688953692956174801930295531560248208039003506523118191019381016607071410860690003774169647068533752165186451329253398912717571418368760421645688817263498418631280182283415968009337159568362840504275731290322794554371536650253446911313415464625556897838783001655143724501089008600394599059732981345128190436946286494142867933477795255019774092280327861720891103547296017557586853237773915638089515837541223025641705019289546760293151566151097844128708100502498189456465382047637361957501974492624692017029748357247700780912913966919994495812455752617781770512147963389424144502245840955508203939787967077439864614219312990425023887474025644462930831047511097491124545632250036261421724909471004814148730909633822513417391805419530569618753707675168850900990282700945577425180369949720082456608420282896033424354264143014118001425398767198441532169947681573706119769510372880063117509815877285756751346914805422203032143249059579279864075425206096818980188445276983428610791364492389402620617524809769970447107498663535510063765000239788404919126163382969245754091156840313296833246999739460684037407147848806458907528489766197262743535433724765290268066976005853727327845538152353194822726250898534629724967005071736992572858884693904042299908849763251819532753442153673299205661144129671048034613639685369953547384448548532210871777090173706925778409545494655945365472969485842754165601052825993764247777724872450232600308752619028491879298165762936144170992014531087509668584534332008761072721947762197621956726244418968976682881286901308380565132226102325289701749673691266015772361493829018025696045794347429215173030129134422957898774467266114400042016272213420613345390880445098494875835956116011900387307859094452187064029297886240237045741669366016491832156544837312503208453597202238306143848357334351600202198589080456055805719291575106539253214944783880268206575928186445145250049920793600408666408808851039927255832879054251207430515287913414512659032553825735299720724464222808259293120535172221963092050201859996579023623967244492215274705011876654447944443749160846828020038389242341849721996619620602579566330778175514970963881285191406999654943025607671712756250612787136125220678904840504376461071653747385659171879247811773766359709798146324581544218968980358888079604535646671149391160631328496288816601882310720348331979571778683880709733043380502404413847747967213325781582613439600384769604353831633409605480596964543412932289076054439012469570366784806961056466637531603639217656660700460458973165703396471620576770359963304204197895245120919370626524291596801751350151732373338471632990908188324549923174708496566003341655488101404613484163640147059008973490362492070131137960338781312716252087312072517934807359598656506571042359252955234837450480718113562108830918720927254130669521441217133947505987692045061701231211420269637466435311857296867494265488902503808699182714664962316360843607451907373953618374002911939287949554102293858487466241312496332528752800299967931141747812481605912548315283475952391120811734667691382237475322349309312643998261081128797708612405695363591882629913417745857303472233851884313906505509043896735902727960488402473081406815164851277819082470331880539588508941077604741081936646013789890358347671335849138082274934660585902957214009844703286495015095981075450870423698598010964455372083960355550954733742907165769661124699164604063783518418334639375461451759333465652198577625767520025274233757147910938431198549892363107653375777474424576168986506400898508197598555928585542073032510823128604855829752599481396236188672093951066329918637793450031795758683353319082857044384594773521936326754828170379034012705878050526198377688674828893410487609473474024612970607092455208363485891313480632167221500241584878920110069189248277395682860528132670497848725928717795677710753374372175696172766102532900525163400718154250585443214929975916281017139806815832380181472219015483346444049251394134358277034927499863201081051439646940643450265418287814670058527609947840995950731615282760989338240967204308927910573045054289214445622231151034220139998499230497999302451558954061526513797413684814176115166300166785989535776937242970056257317674241911568599138513168530569327798483180116701284224608468499275914148472566679830304614579962565669580859747166541780423300383624173703533868793301654845325517201193391757994105297810226818916469948689901861745407524730298678273558986244991966674914111072162741085517154723751952117713529119030602335598542481872142004299899631555685284573506747208158312112399028428917910462855722954899921599498073259337364769884269745437029311550782962912158061239955531120697023606925264885598305092299952079501916894434420319883607011831555617106780446795261976438688074849520674152915717663063180392272323931188409109611835827469608490411553570039320517282118452568408908986378059290970108501861055009403524221391446602860144194913321462072332439923259522606218412030075263454419592676103301466709987052659049440435131467590973923992870358581314137429451034510873615997621669081007912394455304996204056453758265237882456550071079318257963347619614930553896325382333172165727513607150445135100554491255292631101614341401597305290820319601870963895590400215310293285773312018051930397877896884707560998006025395759295963391708387604566916348156313214145667482100039630737824283022559461457764849440421866482867702419334107245553710966220456483650379491632553248741367760853501969302456955861489207322170803173616365236815691135792095104796082971874691698103952532340568846208381740916489215375242268488062781381463040429108995771942367594470109875428948759362334963094239973237134545801010502498658328930238398855802768129125780065955091854119667997268551440003942944803833972459727931056137468689220485590270053395291056989338479542380501807169227423497683920187910155322537989522939225199439098116652911601491817266111003365999593583594734655953601496364359526326718096379084615935716393557504488072454067619735133977700193188888487176625683475103704305407495557983711415438449949692895298954161017769510244340123420243705574189524956231589124436980062155060265655340233337124657898598325450850974964311321358352042378869456312066279339832420845296492731941962941405799337142405874404464372190643087228315144398474685754858649773084813488896577499493547828409787776884990806485181491303832789994775796435923862437388994742863030740884264823629607149780154927435850668523078707891384573873917330589707831729633569855922087510861407350105701251788816120692614835116084446984351487900633052229830014457596359413642815936938792045079067486615744474385175389064384571506679381588582717860321462737872986370778182870452723388926395199441762650679935818174439964291231005058846871937762149596486888291163938850627267744528495479129601302341920304355959546232152300242516975195483083586202726734972789090422533293963969592131062805787600396984413326444530313671196881410844211159271265459784606762131474773056643896158945198156641236006327179629822891109107414239075506078476283149368698289595372528781662910432054783385121895033468756601818554697297391179083126557729493156959451813657290494462033665196302163531199038773718877721625318814962986758342039327603850957654995814007922322033752432311903533216093992836487837172746524399940643745237294747826996349804566029120490398486645869657474245491804644980282639207792964190874887637118646658250719192117993200883026146556518963000730484884194983543596427361066842669403879719991701178118592109801035796378447655127542971287262318267282343031215802133548866623324693381424300742211888832604641908635693293709369489936694322971604071841937504221679773855224457122669039719550651478470800493760019579771421665245191428534003779942688583098909866350990371064486647566308068163715921042404394808700597887118423952925484887901747440126449299156289827938005176868978904106357876254047387178633343457528596776523975501905091378143204906449909508144796292723578292124687863288596476489699320943882656378775218535476253519522079340409029248879658994905062426217109113379413871245261833372161990433137839014373245981088414086365596123654911705764572000820891611708938672391678164372181741722939480540251097127509204374661075428519043611580393100577551487984787219421060606244094767087825832324140966960525367056097570519036505302773193301241680383508383684408493463120605053446359031805242674468531343809799112287444556603753498001881473582141260378765363275694930934206711248837456083097191931790254604890485743268407301649949947655872504136255401968052637813406334724123903893737197156709556372779716817182455218657196620530406617820073430159709520415867745197453322571447018870946207322646357852708483488262209416962091834874174017619697168129246031698214244472648845874393587594746457697204948357414512659802919040267007963265402893145004008328083946989416101333212885145890914630092218233059264588458092409175212185922550367562293853023955122521039064804663004411855987358305460694001185321136063103070048177747446212014561351570730657604757194112782066528860516655796588397737964542339764483233326782133025073349165478700710452812526007880465392255773149917948508719138800765057281571104336735400842379451389167099184038786295491174427812906074012769018846900845266427925053224083372561482160499515301483801227897860468269681918060149023464709649291426179761796435273835932294715398114324593269354302648575062608823294172915734961384550090261690853307489892595171792550757098665121976312440675753309021774157599737748805977398902123229180604331257363154592066428506383076974883915918958144005995138433089590428980265027996346091442347104686545847293479695064425152990960911695247835935551255669447902820104241467987304572925240589404768495595904101345305748656646783436252796787362640273825011538229994030115496812379563299574532492287523544817425043435918577637517254081030171745600726401278953637116519786290090747323237820948566405412114245280483466078176585644912314667587089669800715340701738462550631598274680101975552924004835521312903982539073744160501058664482311636545035948101958023733984323171009422964708264800715453837185463661834333310989618626844346156646058162592025799931565671081993635416190204656533651486356836788809073108549330024590292300078261167408066918753328113267456604531921390330786208949721866539555489315019908322280400158956362152461420369705632715507293027126663454693105522892914056428255554994471838523538939860908208263582738426917614849174359848609717502106751763413438365705216275805820625272284128702749259879798392511297841791979967494187315606722729717631580416025013041958930952185367399919315040721387540568008598615045805158327034920588655021892059882575350178886116576014890358958416888112944090769097102852811885012315142938499853785320914770222879911421743211526428946009585510634491294519599731589834198757438111886961271409170357486379243893084541006883552203991425510569881416422169195258260024934120095627028689578959632205256529703725613743805947640154191569482247256021843225120881882426081731557420624363088873256184715846960075477297651602315263360461785673250695552136817312686488827276769963039611748042989666736640235259656459316852588470249679548893968677033279189756713971337891431890287027348548323720333667558853647953022553176583429988079774448759769582589257959197727970983288582243524595373637503312210660271321017554314964993505334777781449287150118408543408064724486280249503215427023709581164035569291746683828547701443369397913769003840422362658705514609154551324204654979607757106256457662163491438939604392309066937290489736813184823582535506443520041263751528244721139761379574564053394262947765822231269781941020200710071374539182497785641510581678418910223232794867722435454784027113809523599140418820091432063880232369393943018575778907227453208142017071847194919211622359284687765666607152642508819385041865461723055614488046373697674277748685041566766452227004392980910339857976471044276973768381931266540852339088954370450236062983721237174112541002275061710180836231553828334281329721625623203884519389790153889834821219797295893927925561467661632040690937229698882838073320591405384223207941743645189857516215845923762337663241184306474280315667201144719093461361387226083611100543306230783224691015386170273119693683494801275053649406927687226577014794865820070701931676357089187348282190394072555463843466548849607952955141749996760526593110917990662082800161266546773417444427440322715183048084530285706331638490222038606644865458895468151963516066392326095081068286363721204174658855878356019059783978397893935266073345228157899012794632971746916270783671839333138746201909025543899216926104882371986035786542907693049741030903911815123904045588183364304658377775978983475639040348256944299757605224682870882073907993321681366876951385446207313786896508452671540385112234120506598053841052489269123276212963258702804332790464202648295150284987069975287890838224552909880882377776080867469389900969259960228340684874395279484314992216532586677758718037252221491282299378817165669715327403610866835277209509484986271378012639362339333919513570269530569632557100524519229918166047440593992542150670052375705984728970539630604554821126084283198893267046967234442100721985608086381409509994369741626645674152792030318668436634553727534357469091035249438442720099615078966339183301833547714091860155237487311395288804005706817605387961067128819379414601973939124982746134053649419641018023303578454430960024839356894226438925562933847458935234938226914075935764524833667231279982011253861011900356990189150248504688433626931801972510834101259687926114517589534819193131332309597287844522328400348271591676076395721952137863293727388384796111832198152910653465723275822762648444491092201645467703118564142429725111035101621546609343383839017156589417924873718220401594965477548472213317058461434259319956054616984151579061482532913446574283414006992802310266380944872037799801903311439672671657031036985402678274443823782321404809400472600439539792693096510888630230438269058251780484025891941061973759808736553655107613293462938642167502771831155544467346681492360497042911371837957390689598690075649012904675150515952007569706267503286225665752897398023684378614333316396272920051235426838753025185387702158848509451339049794520471440518127216609716921862380153487514945622204921539205642348526205875252255382139399911135402584847340606915279972030603535215513935167515799887139195316061722597730662605908529963448488005596945240007730381948436944359430853374100754126175709630774978152007524262110981458723834406278539054143650388754843775276269711193317166763875893217800202504410544019547255250793537548524023372296912919669324487855802055959702066907471941196278962696653178196163698278246081231637977346990177047714103582882496844902219279623113791477660442022608737885979216448080148434252820435964644597318336192523216068633734902885887423973089504392293808040342666913329636429959730617590614827941072179646083596815189756315303114549141723326256659267934704196292455530926812899907907085594050619595333929214428995021727880338950265522095302800713317760356055490265717225828934091601873405032330043982565535319575867360715142366243024407225736162788858953321734442731497214769635102273459691473803483282274746811984836153559239221307699187913961251725787592113920140698606163987766126864075315337266155379552177371107747370543562195657421720255518376002006429174989032321892411471864701594578783721149799793272399836217831335790342282149777838659717064188373119511189961189398128145105097401337054909248768105943549261143464992917935013130724968579850963512146308989019207688003092861833567606766130373294576378334914781388884396774745887182561549323329744721757481157291680229319414524732055531629720305781377097000760114991187549764536423573461599595530707166367787138274424837281790842344766273468030506155505706027728456117720912096917868564986717974487938529253590404325984429460480914477375059552656568798921231879049815186380187331297329404050981996314135373603446051380490864833295340674492404292709478777614653387132289661492991413013694927297140383594392220608443647220173941846664752383035971667522061186200597581823200138666637230141032722680742687493706090181408026086432491237699964843477568169258116457563417200593434201932697736855981145339261620325356688685462419833393018072227698618906073386716373649494607737830248917400665478260398528336546433148950005849928882130167394583489915505574958933044837685613438378182601384029897346017242198896231176565830753532328622684169727959431016895828736434891045718704731078444542631727546954836796423035995219743818158333474273838228249498310523324486952801024747853767675789643119366261607714835308284673660666028897155943986974349677255247547905106925437062256084583719317163432826612099375940126178273671400572492765859111938957720127318548477423974507848267248152352888221196375561515280121352120665134778622053070368993893162650678248819118653500507303612388975679818882907007830949896814612436406014928468005153424486158914529982752089654196750146320489071693859630215473710126441291675835320572747092536013990101690888318164952444200512034626635348888175425154471559285153772880554009391448697213782606538918751843289361782612627941205963425924044401991171500375918868946632607085369026375706140851320325080760939580996561193827562096006978124329836294052083650796161305066945810704443231497970255352493134521498907555024480941450253562304162136952363611229313328140347012860157418419140732968743296232334853449852542898408698081310530787133447300050069099834306290745502565755091487236748692212895757715523358428281858249208145343499029756767138326061550383899374030959926841770823497162056669805589015306653095823516587650060226324768584084859346899191420737523289458936963577672456917987113552006274587207548648540240577624072748349572665909220965286376590442771422009238233927702627574076474725511560221402358328767989811678515425157560421506758025901296896168890774029899750652020213646505892442742448752887011604684965806689018165941324369494227107157649598526326752890900114967579559375031946384259914953744725291121489865248380921586148503767171802295662070059365557410176479583383796790900397226480816573301115628915185305946099617659504706821776665693189952658835885511373195049674471897963402093966654890990172017278022214796282646193103266007889681429656532909430062884094926672380041245671834221282213333040189771212997832398550433111828398413176195163880898623262433473678458946622719574740197905016674748452164085114305920583435977753946484723300905907116857728747976723222088556282021312788604920738403203919511868207751449892316317091568568403367214194520851062259932019463317455484572001501573123618184892390015244815882964534653455593150706863504346073454877563335300317865054109771007141989163173444649539087180224347956203634527068110203186843878200308209958904860699137713404585556478000895927542959599206993110744147015875063059316350361346558775584970709502474882374326323794998813921866059490170577185372196033953309308318882862771435669418617571223286106088679653915726128871578421469921588177402749406001096898187379756465992746144589822609973252364349163485661316122497329736172192021033628713969153193640255967470395224511725537346853383326695505194622395486468646540181318815192685530803492412504344226453771048480435323318381894929774521610960080665265254122490711525597432873679530111963842917469430833339099453013907608021146513595691522832377165554843380898182119065442370849248390722510856256442182033461617842192375697606015701032737852199708416236197620959610741342124319954418012182304726339084400398931434290214247790775723870856680460128383425954271325298205548002839862410665515639998872496651084124103527893780299678269410297268637591856503702437556308763786154154699545973420279225537579736037216442534124441579605630314682858826616209135944019349838284284721557024547190241859446669678954096148573277381504429063707608360790000377945722069801036449528542247495039775818247549801603302788188374870398635029831854488662670898245277167696353430952848146386794513331708426526701603796875492105618167179799265891282637215045344118330866874493368370569267653235559864003288435140051372384325321280123706865521092461741160529770928902851152341521398752780849957480957507886670195980933693738688695768142063835378712131032633172772000244022876420974961509663432509715161271481548350892703692065200638708891495890431708698638677542650889978245299639298981658487845720279324440359418947899280132185774742093235888411716538439167792326792312964731989223134236535834436348258862494613120468189821271156815157539920135647637066295611091967031702396637602954397877523020621047488091314335227228093855448798692774634187196781866799187073941780396104807691456643776267366740541025707491952461975650172465187576277915513135946159840170297601347518859732408016626316510038724985585800123669243175602865610936045939348882726890917277627123768801402356524571395635481287740486631209576060631543243875909801223664982248398706493932034875331709013735104463204978252270739320582275967190909390561914200698089675483938587576860820782449039213102738877172177632129818369194333172085363552094661505015887990464876646056367303376298498173033157049989104826649699011958894386009787245690276101984064561972446853525087577989759325965090952007506455425182122191845599109722184904744171557707494355850028516863971765821388115452549823548939993852414601166371225912542253808662530593562799055609894109777854338632575847889727722282092370409521533430464415053961094594357170522103315998113370160679514300241530857723496388712553989715459055037701922683397863807568916866119918496957316202214609884078908210007922136798817591857588637067730458682699362233744079442188553570497513560001458981758929483927622477782802894400949729674425288664054246843293606103936369849582529883080345574207820076332735201368599116005468922279506005639599484217608711158886797438774655721157963748673825636108166924526739830587230244012724044749850633408110697910212979831569470454589866233482531968125799535922579321761491863995094451747604788446066208849580401914364843272725352365752359198258358879195397788809939555404188126931857954658647407750543680405721193563084457756996992899778648819256809150420679221955312532532231178900046069554247179742873131264614164579366699023042958804691701641359003145876037961628579490270861485773474326019372264182997299905065465133215443667851432850966146922914823143275180177636691552638872662666187037736170158770221202018841437440725166676817270229116787616076451886260445231522272402373994207617620589589941300835728118190231087181523710140352055868208010731634718357286822914972102755725262222828963763073085901833863133594708192697703686281081207960046575555974227925657452966396296256168257372589373455327166899768617852956802182879456724652808562609818950958548721816857964288198035203259452694921513391279345018864489004857326412355293252089940254825755615720435110491856140452928827398182653403525418762604723879063353898285451360347625367995861041612676204221903219259341829673995911564657042257749145878832813854009697655751370616785109587485427926151544023257159140878747909441105761590790657389811118070891454646808544494715547861218218741195476767223530457497396595011741912325143023581921399578870454847521260755677829028184735010247254430847164226200707845034879423199227127814368304022441518709784161318210823944452306172726299149825390096650799221908817772892658732930595465969334768068875960458235990510860626409837862496479257099320186990340289100640284554315367302064980556750616928822046302724864222498487767974536929766270925979379679215284135862550217641196888949802198293659512666430217692218607842446471515109817701662802235235822916378666172383343304628593177966462971629361602441010814886362862654728379653044253850719892462668213088131748082810281613279824281329194516696892930313196562215124256451488890014937468261125991507493266111509455171056119224011443797680160850573570783232720594638580550882264172220509028796442403902726271465895042612644146387962832185331965798446567137170062893789349593592198431758492975845546344115338023531483538015158206886518489766861241293825965492817966592431645421225159366570393730952633186254535226379460773537212891247102869363825664218536239692900173331494593314251321387680777778803218607313836686279297088090868967937465525557405095156922528720970745383787096313641650678258128939840340979054767200141077955553471999516554724631934668581514810274985104171874338509278455084755680854285936711014637633544789746948651655656339257264611989772806217131481938583505745964140194913592110327308728398631331473631384210206315223642167801279649881668651868231745025180987860865016137949623031112839977084511912712725010434713255126251762733351534198658714071738155327070334869063906298523787761889394596536661464467053148628713843149483074782794217822333707769463938383724952857899414758496895567928764119353512743512816121935311636193223220541241618799659019786273961708526870430939039726252313454727816168325983619930480612085417921375221308207200506924822792986626155973567570701423476738446076323076992229008430931450217622256618544985983419228618245158760509356122095297315623845865950259438523702513071781308016636033502855496579923189380755281362389059971981887658968063276071885955790795052966264810708481081875383295853483861088534219908816140380100235038993664784941103370292680860842992944310642375351464416252539742336007423876673996318505643310045168602555745786507074261393764931044596145907001384739351525565345072942423911231742719564866587939807673173265253334413521701448027302665948912315490340689854257184329940598480409705123521131738713122129658012657142557240265970443525391252690491560302595909510581150119223344197504978804409572108773660915806168565616799003602505591522523564173485326946416215387001979964910145195352877220442279565381420178072826567216314322773513522232435656920737398162322449596868609338823437751022500981104818819334622324906194195223535726189916402643974083038238752470778468269103637735053365371547747943614003632738128186406904415820838869953929167900412190691384500117918109716105954423288937113519908228906244218045218567327435638348564143940296250079780103956717417990148569644661008842340679431771574204000200564213044818575122143295479126761920208386679270791009322529987713279776934567017866351224273392557551690022090766351987741162317179579692225535277092069697994934530509629925356466696060714559833912557874298867637894562038014962418956926433317269724420616102235233222296339626298334831748556291196710152840681628436006333225147479787628682887046850464863077830344665476265599950725406892232601782598334229269765354238806490671274631783535731217280489025187885132117078825074327927761854128065083307743826076229881785271912723516974644360363545268434000028622335690531807739972123583362624450498170914224694884615744959497473223821259901479923015978295992847794333929753728177593632616185803979521348155994112172170077917642772084366187684230067941648286410241562423710955616182806049536567299251653353288331576681960345988219013389538585192408267271240517659424349842273377809396138534762155740256192539547441303776543009797501242075938673622966338482707365412613239890402829373169725943167994113857176373401980447904043435033457507669320624994291507466782491455851958415374908656859501167913961817306331521896724658358027307521088740075264209509664425574947780332398543778912954592381517042656905489575850838743612853567230966454149813409597564750885071060673513603983431429408863609851345032321554533836032145238891741458403634692012242247205955404133283382154934715601204947218250438882886211665825357998332404894871110312027598119271006753141771677667778591630968543135677235193561072386092274015945001744876903284107415408475333004796108610905752157857842092996995455653736022809499581897547778797333752685322496487307807435068600929791207228470175519900857402582947837438644143427968979587347858788233386243229312688359094259540303423658004035866161936584083529136630546588029158333631840670827416564466803906008073045013553974174894700994835995109394992334565360251640227532240709112373720461959131831400883563840150512028796129554524212543310159813542937286629364637234614448071852915603438760886139084573499059525115839326373864640506927208765243490000831770634071226943614057329104489668403676903581037527320101217003017189592422818946743629393788531661616301606441146248447605504613221999276637561502331011379955241377693994873083309418845792600186049525059851856909576714732963284177748839032231540647765241455126067160765163505091261150458629316124269763327997800634116072001417531594420151270751908948912314445163971303500626190262146718215227516892240124573588217736012624519095523319771733237365981762659811878327628903020545199435428553019167347980772983477462429443339963048841242971168481698587894734168917431069708812435648412872008301447405922492126518209050998827305809644699581925678886191259849835277275017951117259565209407673336714470001432985418873940269591318561980066322358890021541269684293709806609201155953174445253341092240757806670011523235137343836864261377786518829581357616728659231628422665936435379773050406332682032455946312545419498408755275881714641763271313320168052967907178281836530813182266758975583853290635465130451798485882796132451939631944008515440717547594195858496127613153270203731093662555533800015735016104554003633282908503813897049775057120304404998999174490047766169029384852095465108849414277715925198039118283213935358986347419555212758049072872070580642729969244515029608678596484171831322141211104071720607639788651963709220065467264775489566876063280191339224108918968006425686419817559760434149290003413720989536500084902715545606360791127979588434068938596185077374191597621452082546419519045494421456766969260982693978170671922289482201347016964444241549195251258628006101269071135041198763893692605319642863816901031309557351326555912637102042131515178364209048644706465820329571279847113998934307016255275495391739889852551653810366670551413049197730553307372790051805337459049867353480091337147150898782444404510467132878372476899441673767765252460562244187856270470729425138251143783313512914567286285543652453198982967424849275509667467648272650453683456560932765010714455463475053428578938522912555610159040268419658621899827590366622436522675993668413694653785446541136814755690679577484541454487046545010786217678436290695506247495233752032393323043430363527812117089719085546272248747214977690894276965286469191124995860250788497554711849045482876693247342745468018041025648707600075282891343670581258769809955815354788744814006562695877525261231308569215654320652403089339399221479196878711555567766895085997670973332411070191378139948225467845123471994074696564662133817035924664447720859416623415375647482504395617097236608792150110277589846424074064674441522487193996310586003680848889875509945168773170290828729493779318416167768196061688621334331546593845640035801595994656376365322518175378262770142943065665770190936861332745569917360300980617112781905654519448706268394425288296719949121697261324753844811017606450937398584524485703025669299553276238608769657726156718520175921437071085919176200017310855920413307786510788321318362678569797876303784089829344187564762597120761426875863756098728529841620041303447773191054653081820817028177840360498877305315787381069294220109455638712330624932104248215146177345425412844572396727181331821268506232596282451046987083942693730155866578963877986580969848968711166578732233439815678827598990649595136772070423850375286202986592786982654881386957070476252923787165967031067673928059408488815883702328503347573400229464952168229946108685477723305944300761226724086730418342216480062041103893169485219883048038548631651785282499321566549197421317122698430420539382031832287761332238841977957720688392646468492951707275078677221956721936523302216933180434718695127681247167610988778492815337834639999761721847319772114753151838412887834399052267381205759871246626610520450974666901418644486723959963441905008814770033248998760832196721395517347421807860860140606481002170972203742372291537356131484532192317621429376181159426773123482002339437949873214770773936665217519169790572683946256063100955138633285794466443914251652517343544727082677886653343627317210443028547432385375612088081361783402444008879386717956181024020986963133292614882217938570552853674572374393784347707940800569395900959269871733940728145118847175795664983922108063294973314297592342982288517419409461368173306581165472988374041080456506643462690663436074112818239794312496026912692154518750788336204399547966831424563161187057057889365610026710441186902978367744671616044504838964050752670137430686510648356686698718619782442176497376329884876405032144620042316446428453628776951779288103473816618829670667546777093003576994647652327451530885709499381431916164207505760030639496763001212373980771834833732005865261048931706842601193244252785822359813385797021977026474058976747588638585656887867152552849561851144091220413351992765346178286673881282935396409684383395833356676400425287250328202027275509639534651150682982331666186872167272769532905363611768238051113635471744102501634369970547975521319649306301210711298678669069129543779004976323826774245541596472737307950570191128117638059322305834767575460209950857233793421732178880179230247218579787656688814896614671495608704071087765366335046215221084978189790994208687372399116827729846797110050728782771318804292812464506316457061836871545520965555589438287885839989974781858660219639706321270319651201717577643808363975593447217028177114898314202334345433301760178488786141458629609979160724592766549685428503375397500565765530500394279971328036362194348151389016353738378685429556489229794036586297521489893367499336969022420604525602679748756195757590792595788686949344307897530201199317715322116885345373966102804811943108231720763910327530509679443528101478953119134962698669479557136461556577098018755222434748989050928381842703311939464879603894842639123478905265474352481902180723206061862061711988438018918133066098480450337202974226110555682050863225469465617938393357382446611951624233064210580240112795302565311878418816955494711589221604822243570843982098110394281791477106419301297641951271960475460299202677809613310316280443381691645303249626521240475938589160907959905062679747975243399707189271592151545919450538837352712188096495253616424799403219990532738917550147517186367401974076223426209343984153550054667424853430064766186018786264663745917054980546808534087589072495491583919645957528991633807100343738655529168560538200508314460086264437049032906679946099573498577472390676085019558905422115769927240752688151457518579986138663337994404926241059442135213808457369304757223700192920674032764850235814115538882125087855316613060546032565822550096745104878162386061556601578297140851847450114088494239107794412254537593730539051115621603777444152185084283559962090414173150038776721366908937177573913955392165408280372714655315290680163721205832117454535249354374858571053615825464207835507409524000597098452373909215975620970386415105153930667998157365862074486508439505638596492982575129117983050654183971243108003063214046662752966536403378624962406683476092901339849544751968266252864252701818845544373092567183034166304566859188286505558246829875421938765228431080889474462948418356910576298929405915625883228976321228459074796405604623246631882801993923916934738072169069370125468458156485319440176343804735986573646225977532999432269869335128290475822731425378678997204020169077338917930744744491497864055211359161767137264568841433193275655405634308919477568203167069210556882529861299959156599756946955758483098922367987848657030874794124179052657345887588864676276039547513551939828808449994670537132601554008737287897416791867996726821643574994315843323197078874450097044606441126542441888251605291552622019873555083315229544997215981709850374914467791693760830227078308209674596308927584833295037481247798167995738439771197321644243985595471650295424895619126684331002256272662121227680073351236896730488135106219443011050352388371386616256383935368712421600374187237567997773904011964418747453630689952711870829632675916988971641710874820608196800401397746066950681379864639716605921536071161193379338754525627913384169354990001856242119113010548154996761141742479762132854293056254002569648304829038113186546663650859849745271385478341154453755923458086320668439000268569414464962450201175823186819164784961700222333204137716531081247498850018072377222012031110829467278938786598514565541166300838375103632418113317629234138302677188523433189680182461892623924484455560184618764101983635934667141594431077386801069845399261275169496909878617501427514327357423179594104647019657981452962924373904940535382406993667648179671056111347381701000854253331123056692292637889320503693951920172590019978973592591705123939459502559370139100248002407786273406151572237706666071252121666923499549198735672210244310923648529001633961710225073321851153666995099119372407453001079431641353427814255206001566019625087911470916818616672495394759779155572086786801712955671895077556701074528948338994210106571849366873448289683109961022103712729636016363593416267719358460712931710579752234813247305736968062055669457933089289791100567606855424681291671931116494638853094247329356996026992188198670515793590798271571207561537318192843944272867371988647674694260084329982088041559416142244409812749403051688269111595857812332144791746142798742579067595409513292095182485644752036727575354752468074210380779323908485760026773577553425578986838325407398582297239579021019178264067223017942513485205247471820759871305036334678860079930356325213071980172692621018022869352051536247962593645786456963279383345443435944785356293992699491257930975244238929259397040932744941017318059008752756874876138176177857082907720478961235133020133239750950907296735948789960422292592560511800695421578467642205723585741204206591617770598182346787630463042371896296689149983963059140642230807134435737455032705188807003040286082517014272378679672903631775203635187496546626170485393995676792856341279171409866759985891110670012235851316318061576066431203561324509231895796263167862709915467619253202163586966111334528579747389199485925191145094523396170414757393489330950016508694852729771566929518951947863648285992098581507495498490407006215438750549810383245481145679652997568679052760427189712542117802744360879799519785382919343080359258298673372782618061327493392352383865071092279909931331385480029395366955909227774268834975473527604814867836561441195193881329620683461402248862946573770771334338834269973084685426922005005497345329335953929144314619978081280942237441975211395358440164971008295163570572889692768419499931868870282732311877087147326347752300759057224524397117316366950401677888209529793534146216962440722005622653877721107461279584214395334357283238767619154541047726941703539249841626546784765476948525732221745101675053506291536197635461247907776154832930490990613906934487491593448708286277300940808750302826165880454768750323927729028268843843323289472537441413629569383205741620313368784845965196706975051482304678891054159294903810639602721032378970985435309094354537214469520868727001825952745589887944933201542111961294113468491140905764497522802435615266181251315172522158765862003522090623894496131512426330674405345168652626862887661163728937568639072087274379099839199337762052349978077021083167962076144683737108287060105874839733155157797800232067527550600715238365870141969379012007115842412157901678032116141712861598351284374809401274252773805949012449577352910611334743122063842047880227822139459475716664132108255464391070047822457936841911466814137087613870723225525109627686798424421814675747066009659180276225322639568138474411454667382426847494385532865588343922979705876460834855700795754080080865950664676508798517018661506559817485755638024876146114705804239852198813370936094395876743996719127489030197874124151372062266507181819331948074908987621327476368015493049210368133980961318868180721334160278974476857915950689636404582471059003701018488915479176118482469811713553363568608028325519134560107369961920300299510158741633740240226231978003026855666592482587696443209052632384367868400416449470362932195552916609805720601786164989414715960406532767695821894193488941513935490641254154094916051778604522456626438939477504938642917239442608610661402006097300112439043438723389470721078506139587866519967223890799502897318201948058883588704868636680320010762125395625678661129884114943841442023749433538876744172317569360032455306228902773257655816005919415716096210645533160581263956543761121637116418924066649149993778023847022880202903298208356825304517094557508896510854350302267307109334563169738474743477120406248350193429275684096280905114826846979207840901348108655121968908673603608817977899651082542615669033814613427223032471474769853107328014573088391686564344551622626298735856621889373379943056194124782562246587387155965382131952525519553270107333605014826709746359369180072313998418236653704278695070267244331125022532805725364249375610778684999960146102441311411961216433310428199248142720332390378189221481366438058638616916960275770528991807061272435183774005242686721921251965344049142997635101154310807256507571104165262148908817468676979177368179589258360531914697673145449921420389923073564760166831788010999345052445206944915412602752166471661412614096745444992310378270321856460804682270344990358765564568495103731952458173207037599268560021803368312210502581367056798226179076147022389145430574089731416001320323586991882532076505705935109744356274032035251107351566585007591184172170916631933735203904285555887534238243459765786614731521731349410285352359420824552516121640191497429702390369255897472282893865291354421116448265476256925495582172450054227029178973806765107351688945559619874725073483042437163002496460713272198904287970093606857179445593514733462115839479477932739617806491227532448841930646337995782399626730949134392774772738516204050779316593185245555009663771463996136952361740720761488763312261355533763311336481285101994135828388507498522550052976428191138429756766325042171061086872754999329742548119416070268868761997584610136060519811068038609003063353760819873829954889346007051746218484378937952860862763157795755447272705442719354970746488736822885271155619932391032123044452964496868242635583161926716061736781730060956992703395866929959547322333471703136659020165575246194756415469560380791937019232144336974409365511620366158837464396805665458269598433721704595287011161467528102551214222488266873711117939561806589224557325148367532209335036860126143708158757036033960998136826247622373494749863466511670249576478613242017056077920975033837304417106720057542281676340236228475624798584435257657333432513257718354423077048061968546779511975866648240893488326565836981901294530955023002822226528025208696283232604337640204506521554740688800005314998796927346685406953489259106386267152604988644824615645714566651616838721327522937018475324352239478355773680778617615081341547832614098210913734537016036932016013114035234437024292906704201751797262106165435188803124081672508583083472770954953163571296971041140246713475839436914961111910158713848793155192468122361022050266051934955211414588128211143554125454091827381544889531436977516240123735946999353872876172198053487427375814159533240027882275988957731176804959833473839594003340379083923729906627242332962964574045981145631738635273485217024639716552732810595010393066245221349433202992633247185671682371448061201455267697590144876066740620753739061718378375840942871496241943328486181797553591782988739706088333978343222529807040734679273470192988266720846452420218678352546609649485974878528884282853367813972168833690842107629495614863516200926635890205711616183538708285827237020361944400534410351452602203718520207158880678798982098874383734200809649893706664650286103392739332997040528320340456226572176470370582494480952041381522017817525458016177314232638946235285373225926878901609367178694042694382956598401008517674635108294877191829434115666541935296214551909802802851247322216572303478751147014728008394814581992386956815738862283730300458738080102437337390873686633314136639619025050686246942760147116512333024022021651022346969113532022378328919511211275505975642118434128835127043117018437220624234060498726651333686830410451774722699588700403321550461716940929527251433342291352849557373686109826296054671462604467856612040855374236918126723504319877773286447430641673078158390313331589362795640428147740283477246259338000347856989500440278720767649699643607298888520104043123394385626508690848880210135393039821829628664680248801272478767921897892438995548013174406067424030234777858301195350562507383995911415026500340251384750982330090514167020516951082351123346424210230091257590975023845972434713769581311875758995328103068843647517306400291428680018831251369472009787247530649116498193749634347664572515065357214935344241095339278536070294205247518900112846271809436931224274112554432858833573538827726066708174728212497411559315711950087059021844053219250221895196183559523858952044362888423783953724475832612946110891843341538725075578106901124352234040170713317900405647337966477726381228999288971740334475429951564337110318869190429127116071676295963164460067150435427762213290923527880262595117064926528699956483589240774061096116694362231902476981664458621399872226308024556678210080857967819581258734327261101812399971143886590881690012797612745535750805287936630513161981665247784799101390048709929192068327164461924936063672461248018921604527130818889263089165363676555280349451969097842596497061554797363418167518496402466559812637727424635278279012389055550369590871567992249687857892184339987133472540028640304384190702633979130712708898776054491190761766697868514763807253821837928982646560291238828704142619594336082455718664052013255805661724933867568763035026907888144184858283145585514335085176030636662875565756206580002542252093145867827653024239910685684845784772229681792033819937900976369142879846206788255588765241321362547073432593956096966901489288734425712967734678853164550040265143487958592682207428769845676265767018997050954657227345968555675696709251942708196122392431972743976528511586186401527402321098006911797601480384632699092588636208792077961553657847086224984059093638758417725141881944985557864967706927388024603946865360208025778337612499702946111446002040479775618727514968638247318796268584567021587924173210607161582354857681594103408418655328434920890414255644378186869068773721849168081589488003874280523474100748715961027949098130527123846130083048334475453234750259818422512392411586456575019115771152777210948932505930004265060152645467042728477471999880992051388118318934665880615267945332013076357940262047003200827361294487133627564768574563559859923007304051852805827542841430526375944706006840558435523004421575498431317274153550175624082880639524795161320174404524706092750506078892134584260493297677828083142943837732986302866111228670896886402199766883141770800538003986608551171667327758646225412137574639281497562553802092991581149323527076509357472578099427953337303074226609810495297999052249463777294012905109917055880664050721472665653898312763307168434946380561354317696284800125757768817925787383702176750148742434995629163642873931978443632519664586906025316191324791829842956478782438945711300346766254452292894511331603936194173244537750822942447589871002394594067703359963715520531009354118840179129987352907095282181560095512945863553150462960546717062959333636142250857214104430806932422295430617121287356045590500969094811023970542475148646206888569075293905475653491495991967356161400098146842805897222024023193121801320254275415765555253980294939938845404624603820504028947220947554557347613515162928821283379767780801847817113911245746405930295909073210983295965225293282662980679610227646680113739748925230817571927194924982742727801004865859114526099594118683744111760392771283145310676319611470735725118873293497802610412555422821567978629079675782228299811240350578135221572307881784957420005462955137518827601126428352431259060360563051418073747117985134627649603899609743184097733413582458088826175433749277422964708292481021254053246984525057390979983426226699599203426031941335023067434027342241367989524785850079521190218030468056182215270661247930794927575899948190381768157201920926310935395373275675598066835508093195937422053950216997336957288819538139171581564975366350855529587589483519196383591191737076805114206736701214745384995355731693708117525264500337703189315647790610950716410081518160860738032775006989457050820809176023756899249817159788327092892323866643566920991195418226049027081538055908035870328091459120739358193641119108931544043748907956856855707037676344215622679279105315030450037761589809258089670759796305862812095628043646122639258934196014619975052347550275698584277459230821438064082654866373625633843470246980792869308245625232397131954549500635918380078750004851911602837580501422989989434492940583208943166402601202448041293910833663154376812338487925190486055156915841601690773415959684778159443492200414431115208703147451625380267674081137232607540467836244711571186914610525040568761363674745075051081796703119427368026741620661838847178668191500675460960917939681641418729828981347033408152457641158841426026526909139155184917872148513400673285473820788065497398113793538916563152713004442054744710143794838608637452116401701253886282851382851763006491216272572362785811246000075202165229094215024951869810217651340416796835029298012723436381604257701076841962192108285371746065360709440660172062425840764128900446663162494048686952619732575470906510062779225294006695934425750330220042220904962093307783671698184623383687088533110971566974689695675374564725217775812453590493422536116955586490385152723711411654541859096073802515406226757134977460154314118606434368210032679889542672889843577517021536572280403919055297404439443223412998514102193043477848811489671606905176735040630814032928443934598810830215969102469233550852866783730430643445398494199242435816371344968358343918752474429838642735355679903441208242755145427887015510435427229627044963025816805491115635629414344576932348803732719892924574982838452244337836684069554777140183884329429061524369856375539250474855794705027092096859218249006072029456465073514104403831182725229617466833806851925099210335046333124906838184306966939620187965013680316116286792518027601634873506093397179291586291305342008122590379084880615139026359300480251076692789415083424705475435563223138568205668315568756065349051344386584599919061098557376442767755309132691003448394495393556415730713391555539995770318530780491680407465108122036181200466598756813016347778072460258703739403389024455950923488015414958482290250721808519902459982396510001059456225839423351584251498078718281988265188005957706272837506225005366738361207251054910210171731967846621124738260651589015058067200341330229772570223699151698156319877792276120333178299280618988016238849670970587038263816156408004657023300076537192739902986635939597328022766494727995217561485864313431329545452454749186623719289372244416951719059446380679348944209488252604668329720041650110461795176081136154967325722888885384771550951526880482876758651700926152473730594601345727872410071297365052265569197548978289734119031599943550542533987406791925128964693203945265497626061596132393288514781753498993065562695243852447405913493147382139400638984267122654158262455918275726383402020050379204653695861892061670082123840092302903119223407813227606494149742290871092136719208678376512055550996920941315737545521353548134985999617655915075733210311318335178961909886241620074237680391349277794192571884047635406809289206991802056061433841476153672600630461976784588751407017185846728313401337443150920872143155690781983640254532138558096577404030745406623664634067054084547598831941827753456784450369377630925675439977331746754375955580258603505174461468814095657513375102156772067852536304563661366256060619192055425742152075824299077239404041504127380788491489374775992183173827175572570360490731372844645662115814975461081486590794840489087679332328940006402138821595142274886013983260527966808801952917230772824748581969038020664363559779080810237413528925925668860678426524200462346459912144679317887626704088277030565882686896717583412595987963757653258888356071830373456687757272498151128271957167323543469489408868691569350749755279829293511092762156190385583528526299366448906509150923611274797799494732461865576050858424757000487267716577931354391066136232907410427068043923357340352224532007509726459283831485681223511170760696408761180849973218222773775049444507572569782283040887114295367748715098479039947655086000291013505567311866990974781124170901204457683155808136473110395561715106552752904490393438036520421949683506358863986683076000387119718264039200684045549566361382306645596240492072944608207236350366926033692273909376295556933339220568991103154036522351298696008218212242478487228555307752679181826643715591766434774494011465727201686533856932291301442583611241319362964455447615858916758769831234954249137634619297085718645893409126082954634113405072343684269827623067194725243842398286089681120141149861884715988596970198622012177707305687489737514611369128489857094646084055881269264383512801744991771889458854016946571257512270546492586742632489237498533039226887297495528847339747065391615097084835705516997848687388995758622484983682286616920904195540961312290871628448922006985524265177966533960397185403772261808112020602408503393940069036325860842471587725709663346457025864730270031495371297225402827470057267018527318216155637571730036369018278264070743879072966742575973503483008843925400803202452400712902089329721585511433607133093301591064988994477009556048995793725263759831425861769222201036591260260252344636620168518197032352965245648432866204668348811507435730768215370599928378584434652164106582187367043052132324050629923114870800684682383797155677270207597385156096159071818809966906680621099023957488033581606568369905043688118613978762565662313993558493293164276859420310452366818415276665625643583361099981191238178159634972592664216381875147363068898021739117715189873644098384009848094262743868614268844837685406101001198505498279622225472340823553784133818327942650544330807018302449951111030915126583892357117132288095345882414017019363016558317669243849307249921953722070676739716930844895826682656528478196542190135596212592963559675662832690006742162163665814659212111085716077915809929876734730339052239993971498912768222693361451654054785611606386468253507495371095303078880308441670868628629013123495412194848508317912375492848805527105431144421074188215106395204028907712564829067489305109628229587811140884033077217724662909908344688271206431441907430205502368966942405466539422509102227320428534638255674285098116575173094112009317490545354187804422843399808389672591004532138599602719283580932288159759551038676445642472370463301981680362570364082994421403120042902814184908550961264417005356683879289633096963286238738585299816620837381496013940576285795704419061291725327260228961350909306971451184689027421024498024819810928765815345718222880310504251537763267400768286749998193257772817038247033374952326562277169904973365867548581114836313782946543414364728750977818200878262244078973055815653160074189141892720938088349798415646778625448622817447877018257139553284763652454682031554256728262991389201865727391906726492338402424840141683712328018216619479359642605232720925668212629898262550140072099384754086102790648436629459590728601485724320967937073861852686555545818568813557914284710467146771347985333809879457238308888807875387993522797113594887499392780580368110897181702029066997477322470981759225984367999669785539181771086861385759748974145506487367432618353795744905214651339655922157707796908376859434931027954356835643208727364304943406517994708079417930490593584745738864908005593683683008085099491573806097435433476682685442762801462924177852511871174775166368975039842042235632403726709838044543297804801182832924748135461996785991554406172225125189548253134941402541386818307094043399486599158979368701172289533854338787785808512617036988660210351620019248770171826373466486584706192966441257364540065269061726459738073326177711172551350259929209517434970285380145326525021099750098851731970823080908323002714252218341350495812229878399275041892819542853382572656726535314689789231638640291437124635195630178930265282022191345085012113340046666600985829259479414083896524936201450403130349727841477207298103963739726784158022883454736121238565200936521437252750600907601716453865316012387364349348203298733848578874356360179719451737157740039936295231797056288382465062710691778538378011687814333856316412106177478000233355289524087655713141066112158967800661637128277928352039191590144255915463278901454105007905590913608165839584220827821715129185510947570498222328326909613512183474520673679340194398376840305586405637817655692838218296585985935552756378839879080940869669516695429821663540373201681241074083256181854201817337716638079051157370066398189351469242559007287343886922739894269001800286602530816202047427597841358535336354349496230072491822378609395662832153746051944693242378912412134320154633608261551077480248833695532060385363928362092900065094503893778432996993429789228140586166596628863203134488387573810767975708999264044589976309052044610966492018434988175343628156367094980958809521855136636316848298035945413273656732026593677630471932247275669710891614685649623436311610828697124976718597434169271901955719112551685720972219354991760360381941871801599744730489746515200246221514959746386099253541244517851530497613632502849091242207155110173426929222075500171866411620326775073970558875448873701826401195566411373535686928891860340960467742372523569039726622502857024244009359625838813071022948180516445492001253134981294659406021276200422815068988865423276197982163964949275214892732011197116525274007447342047437164074642811018250799110013590246797852728120890962847101448639903905691179645723165001827814379184486609849314824632118385350104533674344942703364978936131761220664894363258191687113660601794510117424589902808594456658914151446623359760429847464738404006503594217182023305666515453240764802110036549837676282955914668692988679231443369528401510604808170465028569672830358093177034015822272059478674570738009112200831837431581419774940093262498055730733181381245640791430789289540207595170036276914511431883817960557178793629117179311213740832183250025230927272388386299677352215484942140342965888430753486666513681080795506734157365917189555242283590062068474144073526126124126940131896199966489858714378126498818148939886273064273695997537077856636372541160293221073433238632178082327587728932168074627267274848549248961636942361332688710912498074182119377622350352760958639681069346356945252397558581069005667603420958893108565140445251932870950800697683884915454825929089701151153570689421595931263960007661946929742657270308345363602130400292190930471853620359835926044635038950005015730449687461089369460078070375393511486179137377382569726486441608476030452019580496045323113850851025338214704390003480931567186598904888190162825193818796779219342144558596182007703205124536647001839141249270392959998385668979868370470748784455824775062607909114161590086096263107744723830774474363526692786597847034130265313022249244007765793061914728374460341601593484626574751137749407503542225257537055194520489796113277618141862700678879574031312795748777587309961013906602316586583587801145184756319850918973001399257648913382085832482918269674049063818855451630585603720822388212169062783246634565468005005987591208472001262268346046682738231661566433800795751872245141606757534175239111776962337948662862700727765926899557557217710844005468616927730464097346077713819574097488326594712351184184467208100201479183473157222932331450882783985170178372815433076969949049617663808037412958125568772666250409500193446755034520683290022346050328008816932993453628681312001504747002375178418182404488371194798970265835623655590778643059218888558998624351130005347292086661960475890426017044750834399980780156157264531725698630405909418173145266765217408642583209891311426092698130884920135628449266117297586673441232422469781028755844312984178845086630181703482556442408096200408401994349949847610729543620226442476934617379296115883739228085400429854256632742272357240100853379171603724237257385191172265688783839888898372692207987752453274896996894908595914505738013572625688209281908348150170859160690272018821600151814183782003768469574122390506963602239725974513946530047421151080990749250847154355367625285745672551511020749236227508511462282220426262863599639049958134083616138148528508247405905274956844760490575556289524586505645070194641482860070437018015344179787537816894457166470705242692999878475540793968317227042700489836825058707592819602549941308983186288816438098684800974437826149375713107700834172890673640235722925204801098770596662705948435107211705572183219710813044370184869252635501986872025385638519476211170288698906840963981907439826640502791416496371675996715691941966146935583960375485476644824761472189034493221608047474881282638313193388770745398698191857303803920935894270513551417157749944535780685672013587824633839296965311250357222505754819772234310904022020624450572185465937949141576430242629984792658084699258660387185603658045084988579654416737206000976000732531632723986679890011052804174152719055063376672334658786795363152484585679536012462199874132672905162350981895469253876761083042072677195207768774646636094340176960580215707313051278353776056804750019890657984815569976815542076392384987857392798446426980390526677146433427244099356160682041214850615264710910104613531824251466241860262374413239309668090387839227234880613157808731648217224400952456051018461364471635853202793487163735076428927650693782393726291764324685554617401419581586714339689237580009880741877001916440463737051221074451565196529513805624134921550947407837971976919388768607545744265616414204272292121298695803186490431469827977591803990222467032619978189061129816222963789501814178124973601733065203811731428218562478728151929532564768462152139394191520932528935145736967953764106074910038593934417549954344523189613446931849013285255742944310663235822320876874374186136691794273180966284064085470473102317040406763047342265552653163285442683670059870684343354703125070802358590450118791773806960282800735458706557898001397610595681495427141372377086598420746982445640712976658989795033194309832507359164529436849886101032665625313636470439152203399792951024176779243685873966779985934757051924680156482798578491546016059878421909908782165279969048467060190789951942585153542092951746152524534368665380049192419555382171321637050526168208935266713891297485071597446944466814342914523062218760124851821174551821531469330157550325655454239060676323941702715032223846012266643243614423654843311009694465072060236124636669803473282743630450833402834657714102808645865768695591430528974522625048596132438583429138393192889044368777918275083309593566973145624003920287881673619123701844567087167443119333442797303037132986693730032812110287660239316030576566291142425818726282536783127040471469629979774897350809364514579946653208653449177272206030205928884156660750642675536636715596925291030773831509604713406913390821986929567305068936361549643548499211540707258343669300717493016317338537570162789215933095758399701182785550050981322199349140862140368715667524149456825468436443339677614465191850181306904273257878447348226744291069331149803773638551790723845591689998299954653262200204789985417675647246382692536089226726415522616226797892911354836986358177644083918861024457811453482312335176851113722398439515311108664924315366770911838578433821804783396538989027452787282077484872470867115596293387472311815782684932492836226468986024904780075698125261919370635382199008751195678641341642586440455670555969820945587664403114027468472830665709531199584072971753833179520808841194398840695317851922255334886781756114792610833725797356804650546133126942657073517674090010608289459662567666541889942963219169972807389445833609902076010489380895662518404119053175512605090972012522743380508963271936890320089969543906571906612953825887371995714695893233825107645790773166629606524864815730709145320696083117687058494657743959037143848281173435347017978891396087214868077229678067383992568459778632357904230521171204015526097603871911791717902708503014454885407294912215682582413270229336242883630598723746817457851008762147123784476463569800487031591546771444149110531140153076840238071207247912775382108271413124381239787030180290747544999281196457141542765865295473732771526900896524772090930343330980199622760008102024860947623402804366930470812292260925849609505570598388836855222587386008782146040352769900119598653477837606102477406849074957238903564305297109406854413455130699254599553022177310076822490462536158588596427667400875267554388433522220696531768351289024280458389352444144488129021613787089510852794042143104020935684694645530732477462833654478535697476762075956166345145122810471250671415896962330705918377285842596992673987049384108721291592896665893938485930041216547736222618713027895092318290654736321112935514906800022802414484209635972009219465514444657390606334683880243446581406836847700966688903530202221319463489041290122380800682793946946209906719024531149316175437772409750446253696063087589594998604960296124695551157084464403954779639757299499491573849555687017353602830865842637057363381197818427888424255819620524856719666214792517552781193988071875576907021475776461062876532139231961648707386976797891935235360129722155578540305101322392648497069210502925579271110696777035251873412394558461896704711701419407075205691823845206992743668373846873104909758196390953574741117587068821843732494873023195465519407629235967797331273620937226321808267068310188891485337016672305055146668309895139233630925369778798165929257047818359926324299513104677658171919020666264668978255476749057852516601496838883964003960338166848880749411613290687609977874547668620567225533016317971635883437993366170785450626252939940987202917832629930545530203668922537898098115611430999129627091858324856079576553423808025215619033415257887399964696998659113064547368440393760849157555005022033215044549333553340593192493253699167636592169530783545277875654851088973053509484741632055764242234299420987635190217290521878529339622106459166320904564260531905004170787912087623558167202628563891530303042227605268401859807792691232942941851655159023173335580374411755992109821632287701754679000494023637062006758151868911345373755756199235246132715217970204229714275822740090299727868972985642111516564732494885699851143061308466704267510598189412294579064638076831903599213242562032072442129153842237785165942803658786788891981498525771525838178564240451804813217859943175337255739392129484094985849796122165998309880117907686122889943749051379654375769984654621038836273011972894743388232271390112509111143494305944139499531382438820406129538551013477469541861045861737773409075125828041007725466487495844378972485659408310083881533352190112832515297534153177115094323917276606240292329826061088121687712283143613241445151975929237160812436882938308788574290940571500788917337881708468278282177512280974205122582171701117901163665477840521092634536109232346872367435490713462773685588036102308088805132240623607669720935492486993170176230198177022430630394106370542504611752009667192467185081091080710151921935794592121083573780229482707677188490375638802248317861716303013030133974496497497011348114776446870781633799685446566777040422400410103123740389038057432426975501501965846301087066686531324445481992315413229127040107759631905198636719494843400326399687451588482271544382950958308101356949171294865348057027163910745234528764417786781070503910984646920335764057231265763309606186021709866408702908144827470388607064980134016971909763338796378680258273673260600299340746497646517071755282806673712806066630069249705490943951163476661049961978561783271973250669635557532453886943445204313487374544548207549364197270295640638072564990005697349956810332162100333211797178884515925439920713271791499009830222896759837172103317142040521841629721528564403281904987748160855988588143174877915022380288580326159903412588374623381787478305286270479969703465816383208627680447750356080376794457527834113815106579252365595980646715146045948144253415848647170223086315172695888184025662868366567488314274008374126504649386949445996485517370234564822036546757061674330836005649447661751530955168615731265151547875112281478123754478121878939021245156421107028734636285501960782111481696618486266721760929963057077891748178794704253375970026428191441115579714640464723687258240718146520131263403378713653852539525558304720837589118222431073111388972306450352024770332096117886299449112173115103605433634804841358154666492010517281479695026650710260197307287305833077829459863585098165654716523873316853306751338235699496666239575182594243787853141901697908450045771466466595335952774419279096767847501144626971617633095052120042426603930698442979455129852657089694486730390221150059706777137400277545636666054202635544028678706487983201777595353436421136175504609651400235876709519385735032942912123766392810996379508915293806311416839347034225740417662972630259719750520363675980134358728818540184971586005896253758488136239805188745522707706832274268756298325824389122633414517891578801597882328404225777057407592595566790324384983072362358451652096299682189878936188878236575554890981400385896804959233345925995923683986464968851111886603548792465877146877269135122220193932339498310180190863247548356850455832467895718808197163142850936611123213017067735833001240621456888890956536574220022951631486438186788225477505710765839416107546229733803151575113957022053153742543900972675956859398167646836868008325756014752392328406144387995778967336067874441739660582791242793544273631275901794508395027170549362297648220963838872408582463182317316182775073204376679967939130781737602828334133278336409405422076957855468669854456524195278802554575153224296635900911132998782653524824145266024619022355762060990041238701432586155814099339276365587821304681285663264032940490453396656673010358652380005186441322543108441887560763197720795171440636364455483791381344343658786574259659118910892194771032087951963850850577450950399022620089630673414082070914174876356686421991970796357611233148927503654169577227142933163670171309622672885940996294859344631502580070259716882792741044345940172329970041179378930545954111836911857382725197768995821801390991416878835197345396197368009071053836455722283932814076261104054264462535473787903096279227810807417962433202607263680254074372414955398048236915412424658269421642460258701444724605048404544548215103234640878550985213940857490652211281328302518935939243538569510502391049949942879242797838940721224553676683239730952943073291137481004735939426382610092646054587966277751682214934811648075720716825681456994510513799435640504664655419468448526877265924141284693650677028712267925887139566994630806187615979212884462200532648402356259793883049775262753130395639335987259965522203955581528776357706801088029884442602866215949722686807701166196755894319603972597555879640126475873694616598456882340917237634147589661667794801931562702582128041783582989552766749994449867046779690684133428998462771148880892236325872536401465558312798712462223825876460137844840851813222224343352963950212573329106240980688565741067670903980290302508600016118158686100866203717405289448437530494716782731691664410710122431299822258927954979885625548793385175710716221518219685851197831335499760777385120300332350841902514468935974573299972400695969390937795625427189011905760286995668313434114285701418524243040282246875487266820702601403199888347136243324665840173349065490605840629365805533559424885643925373652104130230668757797385794854109027470793958546381436779606283926740178386342452562560876138672065970511351595561544034273404070179081581086590367603018319033605648258073790253024949641898999855720371863021054137338376220666068649892974373883935927284172210060978959894468644413208911853060800423908484521713121483434161821859934853542242271962922699547549639183086824585654497329144570793530703858497029700726858553109076563228844549787007344318339762399459653377267009945081936881808932685588848615097925523753134617747751258726948879990213732024541675511752302413060503654180519296384798275088690667286168506131872573848459806184193825008967203666265605910185562879954635175038094158270904741094066547973473546055608604009703722938651399719370237528664283008105187395510613842463626408240163901229845032779188246415376051492165655499164795372423377935823585070772706396596295322154298675518337544454094563292746969560372127559138397286505382643138068578950798365817011537701582062490376785785327532922173229664222918608378956072737131687252133212386551993382144987879770914222410197581855944941556257302764367065111652160080422930540623355245023666611530051827599582484224270006775480503398943213021088753229375297473041650418747047359743313431048971326815350861703896683363190308070836729294435364663426382540710489337061597219613529640404033977072447233816321274908691095251164822987322499041529494789160599409743108717131065773742163730265020892876782444246001486647229147060206159580473589872241601057216477098498226280638163228690899211048038444992128212362802068066797322398560565962575658760103346329546271116348924405292504614195355646564124671091658026272854328139460723457731373926787350591266712136630004079243114048568259666487666807475435492452879266023458197217967052810728340427300308878280284555672117071800327086666811850874326858488710961963374570992739340155482926739760123084215738541890767119753337786162568362810084086108882741743431986021743633844418785571379265726024314214082515892741086445437757378760528422266618230212114535226965021077202307162503745404999383602005333606401572999488663962871179952609413873258972884511275889422687754550492631584816210188406321660426413293710026242699049115147696334658697287874831447804431109594341533588924304890625586241981887054835429540560115851880837372174426113888943342721951956625733089038762001650938029191362319326839431512563215193932963802249687361315950572800903770590847399183355082989021313951074682140335885562717799388756761825341168081408333544675614872511975528578388754181905148369460616080804787363106149330501663934708732347131567481008067728624758525529094581842800379111842202498519068042601008401879021339900913949916275979835028265924473114224503684387787184523794502415773818440791838414965614839794792266490294514430144859022288093669387567101695450438424469578162419229631697238927583093636556374330177287450714334202643221720832940896265927895625232082707028675153456442538816385990890798160146140024799569508133557319405784618862735253252382088280570898988513577824354193954685931743764202968936897064144075659536668294226099567507550411725606724947222264971802795377476572392681057760109890570978174963745928994477160008421619346093671170676129611182882057734876910839744772320647737937272612393143045964839819944133061875115154846534646148982886604603775381596695855351447791101437166693829347466754941045510591207010510126532873900213384410451410217950363712759083148781027520058187030769937068541324402717083850619338557546628286206327619005912604767735524967545602278787255523531965784140120188679495668796385561943188343827088360196798943215905738622495047692126648358027321799636878765953782237752749283714869148370022977064835259955423877644445281235167821757095605008911780206281177580561268150323467395185380213499333387921948235649570382703353242851040275697308596948042802172138704825860135535088402378052135541429475857782540802708734079834687978277667490987022913714995411804708560160759250518753528522914508020014850340275685070004399905784799467794628681548313123287946275656490439317851604789570315297479545613913466370003695985277734399817717964312206292539725328197493893567754536327964002170395622596732925311926486890302260189707481037663460846562591031680970982526535351386318637023189477053500847177929785044222432895692101400919258024683896676246818013237485477614831071551264722986811980393429460151517303598948087292413297556597408231261286208436649787933406122408195127257500540288924816452862715951220348473509197967758914126973380557210144665530889673845937846790581043298850662374730595480906708283609156456549715034398190718373442239766689488312436907904835780927388132004569115840038930258048164495048864210125810497426289034886355325875912374604802799093468691446571301983428977608657849704023401975206143679705077066981954835729694529411125790808275440161801181400227175277404741729757383480344111375327140794746058312343726037558384664941375542981442578577845989929124914843040086004864387725733318660727507417528700645815813373119972425280778599303242170789928233477307099081969405815570640325475819578726650749880735011508008581297479953695480816638457508081459152281349267499683795234510813409905941380966418411368069272658078576026144621384492812893050868550017377616180862450884767808441935697120339963685625700262035345518828796895887426285090410819428792751917455641622507872139824364528789781962382468887590486039341990543694993655951963888239406047625780919975985960714473713454237267746375786598072316503042838078274862012158583085295713889532155930335299417503674395513247811845698044262787676044993020612360199581594162374178881090168478702861528355730957269513098515312684030320824957973427201165942548989628363967555888327513110289040898970812579817422032988873364305573092291438595907164109539329297253253648823793465535667052762760044781381839849688042748108370056422753262035722805690850484549427505599090764404559146367274215432592107200004530895567711127605405055542778393098118061575452935022637279236819905711414961693060180815807090937650722367842114606330133889490596194129539736992436951225112622318199604567539839164225208339443995874018126381531952670444037466383878261069835852003178985043282642116604987520482251867172713875664930219715599459959620159203339138463078660609699456288032420461357272105023165731031027407788949185570086499669672586281580369877892555089309898612716646678917476916368148308810968765647591621955185052476367062875046351494401711268495747478093939152705884399228171697939462303787029567533775767155619212437521822853825459923202289978183253879924765178261405180063597254859587354908520792805692929704199487291497986827134566082947466188634996867639318578127141373862805094348875555715591681526619909463273043071896517464247216653168170774975687721380012451237115777795521675793962676684846832939917616668336497933993506731050378231521422754438364541693888009262893199313319952114192155143852807637857995515835316212142338558645770831722486706621082416753894150390968691344844415087758797981010949528691119872023603483946964539426310597252112580403155472079241168884778318106595112499556564200240383512957766485845364904306176492025858366714595901907188447344156561827673577371687080708149451026739231673698032207008307107475339297985703359019067185632093868173354296068388141845591097490521367934104962203874951203332168085452469126876269078095120960428581042814932489142606223904296168961832363167252195070437582208265961509296416222521195074074559056152122549145286854843801998090955112370095745585591586216439947770416479928808278142615255390746478230365869052757170778653648851245382171007905732012187003551753670323045345966429600057986610611403236496697377465927474133936300329709387366844189349175282984543916011600676815350594601396654670708872551680673566369016109800865689843729935772989264486107385018062066794498570452592081988709913428436830543674602845678012967765845334882858589985914701076185766628594962038496496431867209944315255707988970266222048174278236042655672873628969537011215125810876152394092287268250034053603159795293890152131737398692193485772957556661941229562249998790693832520254892587047667580807124143521338053971596420642321374397033277886576562717731054757056181898140411704664415874878126116839927233550567653196391596631103657923254280200774731043375621689490675678194329141817599589506216769465475488518452034192977585621181330460408137722378501575391164881680654519882303348582433812835451865962243162616466915157149298548199853963938882550606251467797697430699614372612983822041351907731266040817114696857101557890353225587447518698711987743857493096962418032092611573324367835788407666422152614748666646680827061058879812769467571794187052234777698340376654111758899035869988689315253964457961735458343349275259854941920738260522973816057513919904859798576618773273964686351368365100842847597375295137891395768602691989735325134771120625664100883879533387724490346519419378402103247096717329598884773197335253113407344707626546151410867375700691092264136263263629269338676722323276205815105254869600845966354364781750279622621514500634182458002513138734687649740799346508368513168271967764724709813214902495291101383540449517717202260698191419481124275829937127639170268588529897898909528614967004698438858589970234896178871156106870841821846276676158864166425112077888333206362652572396048530344084964443250458995648239231509290205859167346623611413766036268845861364321981319741133263011235889102551205523335664945123053682958872562780377796604018486954842146741516751479533040272590855460347664379346248114254029611530675107607049641665328557086722397384768834282155247449708461470922010933937309888125187282662534175662169279085847636473237391089957248681270405483131174202804647979639200048800025558374624122059375757775629585273171524253538622180462950725819193296445082208617812384411941710179296495008919423623443637565909658404640352153201644307812803958601411696835078428256399146093542125191491466515877203170850599803617256832404409006769128164118075929983536251950233299372360552708831109247286353578282687155019319121482916583686231182076323600563028763578810690514893326895521563491697904522007403700446352766673934284848280755408873212774287261734643892876927824045007059542420422364416147303687713044539484310997165930712803901392839433870514565499578194656660590388268503193760124861353183192509291959052547900735165256601792239035512195787130028469084391842932858149227675930461070701843902913431687229899321498586492038791131083695874902671123510911690205777253237082377163173084392227495449558181822115193635626836321589676452716854979757544156834791259588050119221995557944338418094784840461927849433603645175343064816935685541071602697935680832423331439715542003904464566026530554822924666611948196769601035317302346472651882804662800800855259691999325888719377713948802006440869529091981309832731147189981789938976895187564914864479823176861875061616165213472048077190430415713404775842705962620832718377393663590148962355793528933172434207195826545953361619677677583831262395058847778291490518172401858028138578967359218203355388079930988134358534652155527705203574426174467644656128999431248568009079080634044356751393410166795959693482805877912660179015055372328966207212307837368789228702351631748285127601155342126415777639877679611878175709449437281931477847428648557186552121992211685280165290675731546071569222284584742726288237419853036297155125027102338389853010668810639822429752485244324976800322195606106158844331993189633911412140667243068213533664775058576387843965588216999562277785133849106606846662216419905664960882655615084731659214530559953642351518043408865204447628633001631875499088122505114570715411797003608030390751250240009745383554180023385199343865382427600619864128867340159654318949145860013094770112633937207792383021409700442597970098648091610534039618469597252647889648225127691475911096068356276347893262651629912520929872359057511019595868074239284608571045351891305703017237517506268780450328674623293919540444092083618454451487318161127070995581635721789203706937686666795194540242212139841109151155758229603456784771432861000467494975618851374433580351202278474494590251147418935239011348847441195982172522869385439423251652586848496835557467405376169907805173594802698232021434761467464999427135792122063486100570122134272133908578033947132759830770234097091338472549691752268531535466347733433334838445345465155436960611438979336052819019053361842503261318924765977983148201550270150729213013987878140617827043190127329503396212419697655972451210973078090924465792351397044235323580493345572330589294975488960515622029863219080442152563665924729113446621252978028958425620395144465841353927201487324334096686139439804972529931897936282187047973927698028944249502570965889549810344227068571164329280664949478526510130936183400966348178285561738115540593792016652129708983399892223420393163515073320136586336511220960637537612829624265895365378622665925829034535153287787063604504721432558602567130188824725390533635397237782225055129462583054645660325065190268259020211246839433490920711690688265061643661470741872109735331090842739348080145895438208415737171662399561181389547446358668506282102628060035980641709062702195069532284958098347011403432783048189782609252359269775573675813799036081190126579993520642459502564442059022294256306632037586908746425049537188175750568608660812141178830748961908861577832841200334406038834119888312778150241360933929807643924305671402582676573750459385203674338860736857771416718780592225023600185289496658122125109853506675490824523189869758886698739037963468129044872432035472048298718962123193758112326673540742580482469644125347963674884918063410495948631177311939854574643706935999381128472274418713915705758915709367189792674712274656635503474160739794091180842882577617630313690868702598685781311567871520808360594210645316735085581828090454744185911264156669751571702561538344917151592695254233612150294122590973113857188909608375286753544410029496017590816895677653141011876212336243118861745463726292474706772760513055979778595139747381128220168769672675394197764077322353880827877835285102617764563395399969783945317989855069565514223173086351040683754388022128467527391626778458531898627822358402418493304791016909585579585925785641215368781150755249091024236995498294493974456544596140407090952182659983127246321163756196990257764750904876357787499924718053870272053140432985663712104692799955562311737585438637397519464915633821198661987347723242389010277296724579227026330763513990325109173087424990396414538329495158185719075893060269348754270583081900732770933626703969650564260037033612798623814738445872400856995753895129310206362825681678039531053461120210605610350635000385905314576407505730673283701725786565697835225296053107637710260112638782325997559055409989875378635692821667235220388236949829422756924725037705016293399834487638404127476466928655185599658517590119584430240559848080806993099117241073022318857147971606573454547422573704662071817258761422498957607600867609170803829189229523738848336915055268012221358262726181438527126820486502721941434057778077718710930574538909885419305232561827616703467993960388730477336598103801586754644482905493094912516600863814441046722587683927206284758363980400660329956788102214940379438697948152751976470698575716314174632209414707657980900041526686599684538997228256071077947515094765864586234309887175440742441345987316286720066479522128900966635298916253055874311802854282735935906045469480827761164799547929408716695704715521435362157798993421643994193169280031690857376498448471769879305112088811774448292533444020588994938464884154911219494933061849702638021489318984250802352375682970142700383323401091482681898094640188891614199337660418425239162736898340748079063689253490987325681338637461465803032778250426970185493511478639078844490158654182093865568014626596096856810448294371322699473565310868709145302234660832426960218787379234344761978952888310264555852418724774767580222191287060035981758853551888246931566597493013418993732377357052369540093639492822107729446936972567272061216246794212609574531562183459521912486461548585731236389624886647242292570127940821706714140458565476294245259174554393510215023562308742588635182054109415717902947150669965108230562597421427101994936181565329717792778429987739374867139176008097751162287604742159443691098273905916889128027017795488080873606248968248934643661902808330012749199683263425484933492576514430991074159362565149504722535705790830382174545531275414766366265028351174265517872858273154751766730326870049032488745398340601006008561284572731053089593442567516125337284934264953429813112922859128345451463917932436413560361425982385003426110679834460593769415044385612298183386830398540614713861686957387318130083844999239062562132596869236112615375637848501440513104701996287477139214125367632130765982594394588641951929041148989161298361904515511124625467045151421075371158424109131419945661665932954593297629359639591953862375325532979300889701320519357485594491071126843147694365914510585069416587243889324865776752508314889089125053433900173930055415258083227225392593933989715913341940873598046160339541031172089683174304585414461055389081007358197970265505341326989896172218770596763789360853644927141982101144361581553843993197584542355907746467856009942334458197465715199666421261322794451933404399939946663698013881651147862853928510961743271867738144382844738711804655734757519497198138527456162498522593783172193885969575472157186259886196062746139543276785160283580651018431225323070527745499499168790689933314149507987266829682001335831364257521085578193712655476305909237400229077010033280755447768605190295287080919497653514971069879469514353665634473185696926613096981422763642993362344188873936618236032186519064190365252649430420843882927824983191645136389230942135876070631786937298705591514708969477179193770204099086654092691953151153473188476497003826373399884787078983010812810197924307784036485089456807283350630524593245546053430941390110668725316163293694538655647464584745002060386204862067643464708402618294470386560220977508657486445538373420041577975857468339861307189932491480185654524141297683828719035304740433501357083093235250278630673564678151153886868893209352918128073298640742693516523606912974482732007123704766060419808749705413980870070192170504306024200931274016357314627676320661855154833987324825106815366606384202211853759903651475562246249150412242151885860500256352999661724352357440350064322819665952814744600287968032583533202985820868039028625480175326444914585150667275937306517288128566536971965377614186439465733496768983801669280268889741846151606604935922957749905479619132671683435662283652864624912267800004993430131638286456011902203620875895037007114545271244150412772871266167292439136347634057735185645362693625048293099408748625691313158260626689369397034996497290983299426897058047021669180250063216962660474040474327190285257743284316777858997316049244227656187334082870161683193230844037386289082101366641232072734796610844605107164740965690761361521893304556701415906796102661145357963709620445615373715553936316596790201996111991808385951125518177197539121309571327796239303560404158329092956850447325471187368155344369841398686923051602815922801094879956557579981738894582285149937412559426617726232856227236082467500743685854904620490665607411749641915404889649782055802083220726874691812560195896045294129418545998004919070054817745548588513875814293836193808947901259871299918112288645163967859139204568412127204853993426795684088445746297019093785402594257448898723082274247242800920301533155220125558889420365038065797337673584510322632534751916919397453157002963970570265309391502695598596624455228454246851839775892429243987571527744096415326891092393147893897224518487261739002824606239466408045847580399623538344962215396322504460461317445523429776940213721707438020889237100077397700096158702600063303870190330026812573153582254759374672929804915100533756368927912210584015908606428686836801954503990780811003231118745412375665265253729449128975147298355897363693736268014701609224928212444636405804905171975279245306133100815123739716432986489330405063420474052101134260783343813237994622564489707200151174975484638097952592517917938560513243878010381941262283941252444750094894423467045475220552490611833881864709231890596863436253483529444631489694591316213126380890021332689656440589028918451727175091928676081240191334094804116955253205863520028329422101244931642907664958099834722393920607251849079880644986794790150117139156842171307563432682358054123471038076572091918296298580150954833364372561004799023713645435510152608357098594328094822553538765024374517022200459070922757928929706574005487440661536417109280502314563411095933846886444621866707932847228012423589076166569312262861342118268121688314554975217970744962754145482894288969870483793776956490131138998848724173834913151810556528900096147602554052409905637248878891901092963277161719645123090095997150090626042777805429286564610232950881088329257417945488293042532335234594518697682901717101493876823728941483528971347341799358267091918666220134148394432269467525532207385189625695973592280614824453251436892479128114408246952430971501239264876437521700033503109570860695211643074979556361635386223111495580069463892461004288787583707271902300392973862075825768992448588181579766461364985164222183837891364328408636236271051111748625671348336585285699296279711125128872180779394532672791836180250527566982873824781516396694617608062685643415774519221379589500215236552891659420207460044212246406991996601534531197304881036064075310768664840253017671937336273552770544668678549203238945476973889361945339804250492796243206331810986376518609137969690761785870524741760031051321925834924303504180240404810087051012883607930629573910859195396716070869386551402099196584134990313978682353954147245585988182075637194598136097314653184401935953007606075898005504352994731451256754950906057556642434935600316997492693463455432226396560701309819424917383994149964802182112799327321006089542027611208062808091935170027892223998073038643822662171256710640283063684330043989144037075067757246796110034142274778522074133341325155973493265348254571841905392854243126507421411856459678711289728770941578858182039233617630376970061918039870387898989325304084644317681605893290039223397991819939414905259990259901359311155626018752247254190523360739021792479351823554175710555640085069182999515354618730125482518752142026790177373306966701426146784715157176305120792910158432624952250932602815655421676998224357476473072680946974086956884526162898058354955003362649806522724935156988579087803476062285912051380010659619635766120564382948467515654853060434223177888475928531627395168333570755470909298587244533376663182381614911222025004913394009565515028987322650375138048625175059049727787786606584396949398725718570079516711658845578459615138305930000350301531901816315693386016236042183791688332401646362956915297556182419066117622234796999901356509852511002952258382849244420659909252219852312853494758264326742745385082018674440729090695280340125315974899940401450022429665946944785109282434121927890789944879000998897357813502351261282534186232079425932734143167268616538916646744005066887600112502107086575286219063723607762797650644674789480355940740366185055003355589295390747519576582899802864382609068695169816591068485080689877695967329775163551001336711659662556631456024922908606074107470207137593671002274195269006236413361991999509050449645772125503102141192440314370954296031853055561460871522243371155943753184024496012982867495793389054147058286242927295461717821251182769044562480383666450616401708873066440655844178790125961347485902498019008438614095794163645035076319265144997628752537670106389298918756599953175840029608805271819313085413845803358830715450144054092167568755266207392814319159760890050495325144087914798742667582662363741714085508227776277764295002618611519084846012643832269157888457489172448940534298214799142487921832791356475245774471271202331326707911536997114380155295734685111062672300970264730324770445407083488690369984063847904330026378108442957192624281926332853789839279171109531406381764632401418857612241519059191589260661404407930963227299836483099834719914061093147919643150499661296470670757667481806966620250175269000883828783442239432957024125360122327647978972612977545047861344184489109423872361276723946447060047292333440051460621162615552008587405716514103725409857859530833270879252403582028872892998150137221913719787276814383494879993535412340094093633729167425157971045622559368354636102253384535705445339608672672200552482595852380945422764446672709235113168331211771677222670492970135951194385688123508673977925313192843224520256139645263882264372434634180359846138290893875350656245935518680607219083064632462881848994502705578039220036109119911772955340652097822046815044635079294653606951468444212152324385549677925900625584408278699608616255479537967156314404444123578842687355965381677330982634986012197897500188665685114256957970435866571412538715980457946599433903126735447573018696243533015870498990953694124524251881250213071358580797741050291621433395179657913213701633511325965565077757894065781070266401601138364833658018960631954403368373035247524388022730758013227907960209663487850717146658022854284294419168098063646439050828796534173020119659445000445670097220104445241742860942564498248839321482573359012487806235654113231230473686361080690667765394515239618235240086077311226916652727962939924449501885079313493385031210640157278210823890139582834659442806096568722906982842809034864768067270623349846375803036439965296755447699499656572903010343194897076308101915329694469516951667947313254164910436047748143696770882455431356363832860638523885664028590639085854443973225698095096123801768816564267867338139288018726645895810868967361112859646173567839964253419490889999310632129970502199252739459947251977152851308691074874089373286505043591699689754732968562715691187473010292042276527967233374721346046147636412310997942595742481501553616406255003700414784433597773454804355413027094969063379282165652693109569244439864197132595166371637386756574272684170986791536877661573381692635402396088534259401336771870370097552125608279573921359898679699121147695158725855015965592743554946499910255055239713182395066829520189577504060044573396179771564035934464576193322082019451827871399864050298614706584816210634047101692767729716555262855446115429969004795564534727045801893804457234715536108251563805039932600251811515392865022215709975703714252621249928702979765710980064655610748563726378540940846138200063471805515874892589115125749681467020112611507009432525697241485412726963842754228731684406459690889894114246734948986137748586204825885963032031892053231422892370412677885155336558252020777885426061653641716294108312137789308935568481419227733863806886570580793889472922866496042727767595220349211689677689798981421465723372215108162623258677108312771759284339970767770486301953415910112587264336059409909499694069205494611616257827272292307341985737837158880748089058737899334236547188534439393652475088461386037666346024114492115455444461996653513182051439624569382742117179077614647801512732119986497018391212261431447761236736912412116243912339962537121922718364292995211006628458383183346662124613014270895148228163818677836789368040864554738652128702269443537039575971002044709462930468633473508121398221826798433823016234111571016126219386377950878574988879464050228423494314421052316409003417663981191204221520817456470202164196130185406016311053960426188373018814773097095689043622100237335660463599110033873432475049568038659622757730923827187601548339076720117839605081988753781258945539023755537965416456093538597955866618309016192914518487172487363672152466387683938709286072974594623675636028310303608214131707087643931771378442698298993131945127149017969581894880282726588822469507001887878337266158157808311553319910705750037065786025725673860199258590920927738795166429548989228975635272535802981842644991756353273091911153964686073261302876797625432325174140098702494361059343654716874527168831386994305493833222115030481271832096206733228132143787165267421801968594955177318371511729187985029202585726293832255269110949331885399423850179515101224871840708472919100496616005217748344359006951587139269763162220171949406541663406500583201792288725131214894360805097486764547295847506370471819700373754976829621859765728345248675753721244613672014272398073470863262043124200016846616746188321051976067915051326148790092312151244663135796687774533818079333714286127996861731195450154658483245466961155215220882647462724647269363011305437695016406487262195908075878788333489955414613049229797821083608571063942171024914634214878427448104267275175770045770404702139774359915172978546220652383501463173863658241257669519924542121520683279233144849114083382433913448718066172892025544110905559433076825147593894499690458383030804727786568160454685264446306208163414089631637402200685438959857439342647964017783617650126539351610866825806720400848783421536751782581931355488338056075997390494664230754805732929700077919593409100375876968864965408020154212528989802836804452290076564318407825580834421242543393176419003813571937320438694950878098464678095392583216046579223781548766227203811024474974498585709795161322787289444915630148366210578256002198207874520039593687560969654666943763516492535956754691233845730136367445403314028558561247297343959271328317597580614247812135194650530643895444145318564683370981701871909408157191505200901040591056249582145560867640179602312785532205250336079841256282828793994416018800169257313981438236635437577999110564441254972133036482887276868052572513033331704980337103653211032039864948782731103199647023217283003839039988162565042354087794334199912986011015977717481077819847166386199401253996245480958231232435912054353249383933413936546752753685606170729299532106192200663891147506742545863902944145263523863555936656282178434796146215112467155048393585448545853819993981585473400794687706627311131907477719300296368889795748068881487381981864540528057668375711196417732087913693748039388167695228002682991366279062685123050662814420388710857289288637382495748198342642175028376772730622454177840597411255076445946384282474812782375802511627064876785601104304555893426061808432320458015104726729512242316333687901267768462285787023712248489758556285367471869549193148006015087784259459113255825363636148805439940529926654970069339662103995049186223841984275859768412721791654630520681107712373467719868717953588902134801701079418967585870549899888720118553490486728787571253866177773952142224833165429524055910368241868344585380178646817006239857229578768053647823594630153736576589158552698825821324803457603233682253783155567334569447914933226069084036049464838010854875007983993239703452029530623923444002358605818016207441460267126785899872672682952983131082745537370848834553913764624287304866441097997343097045766029840942491367599325533985898413266325885807191852458107967846021375055538535313707122397393925513422256218509670530658722738966056664170020543402731306956839997193187571249070752384482742847428951242304228155414213111440441468749043598235278525005989515072728582934048271889361477365813725882851327588974008095235256343400249081491688021306774975428378158472584310194786882669106796866202342355442073125018930448888709553394485885256051164242134006671148502924921183711946565589271869510128132080362046294003107342190185058816614889786333738442596853807031356838109975311782195052016529678170446175654684027863919622339251771495855179796021948196422330460299847083175639151154494486964069712738360900626859734742521074816483029380682169405569033225352806460188052470869221546209101117307781480667641574838731808082030065478375872314239536366832229278702083217402896054016395121177743168972268812093610823216093763672822518752180716737220831336456827984853440418286209020023440574667824235508927179836525921457826884267106438225795077077650837918024452654918844130733528977531324645430480024582617988829139331547846434668107838657736951525970970524331409946523793452659730113482407615510532305878566927072521024931445172862044197888327634317205633369349413452797539127993651575008134021355483092348768614398506271544498301917729910598533391933613733491833749027779271205910573044006730458705625023106602777714347247377082064002143487596902800932803671231653390635400399266630664504514908041543000015132066800393921176430680568532100019263907550552029581540078850572637755353555205028154526346572123905586373510105039483753626446414781273242050645851296799043630270151722642758989792806711740808438013272263342749624335356304818831798518326275174391096920819204789908998460753905284651914916675201596593705759425158123375084447627309874389385016842412340821406380921283651755190388528744607614378028513720432001471214990682027179539555327443463132119532941727878387492743061764200203447066507550094402341955096585811856039906892751305486828251510795170740453399101398504598580494923401293114506126112708057070185997823058729625415473818665511523665124747921337866087105947910299491976862060123036083611014827365039113305777945746278964789626680019867224276566020638894365611387145145410826235056397866392670221476727892791223356062358162686290323201004163143897513307994246174161897508739461506486656219327454543112334614426381696683894259756613779965665178132635489391748508878525069134625288945548425283350184759423615187527152751488557554770732627604687900942249941720645464908693115078474064521726706284109810079565910146527754271559712298882714201360301921012051091102351877486314865656499161193666695867708571004961543876909729480682421593526405731371535718074366172879729749978527255117521500016033754368260739667349543274348717438960626950055837433654839660260196086852448680976594156556829017080769398489441164542482746415585177488868511287736394578423121380973525738737536486530171353247324310254369551934944284733173144788981373648485188245651325324537671272585065453569616323326398831876518422447864609905430496993176357248249982263792841679462220278740898848538286324572934140922750603654038804914230225224128658494107546472613393841292899555840848192603981587335755583137556535163316937051372831002698134744659911635780944058589668647517799349756244778274092161185541414914848320483878958826196859568660742592382152898831142700417404445803935242887265841599460647783511895613524399546409992085938975478689866770114064407406138311843872583502143551850201459858142905104695268224982434249995560575305534203350824178079320847238428417041474867944462006371854649321879551054652676300390574099773041423479072067105768694027022899745701328492417947495409672160909048416918922777261452623259846869533899443939404397408968213235111661859728354420090993462855500822238373163256276036432563949271716421313933661371257967847392520566961738497120936315099976545369048827603984332626877958985360001623533604898189210789123135541504378545697100639041221771722218058646662830540642134346020510570406880830873835796292957868483015482281700201485167289416089958797585409029756383461857998989345920158945685403365787104729558652632364609493432792050193197815300622102717690250053949440217211908290136889378940297786975656646123322631810878862144456162028213574014418802180829511673534601319918254291809977413492354219291831359302993686885206537389502054474175076328101856764598722332977416884473389326832469767720654477790547955369481414160719897747371782198044346741312859937693400265113930483952941106459413783856300802604604454625621850015066200846415309866037826492171799449928406438653854688043830752236762830617303558717433094318320975847267080361982779705368481875470276510730616956835037664686093746648100800003819600818061402119754886321462357218083728904070855189040011238956599719453349763707646250105859923827539204628609408946361931593743590462362665058851580101380139043238081843959501130112905737767517328946536558148044168279469783099558105383380520470360678921940875247548573995335500973970354808841420700057355030837969739411014609387232754241955042059237685725537824851124950203603616368525403615505911329693378198970699071772917611692920590809764144572734852967798238138065750572941494055351709457772231156584588509025635234340424944440941381289557292417741404325532993293980899995776250824413549830536803250880644791414727836618992061660315136932513368031914503362847435369838623675379460891281760845848871345088975353089248097457967119139049865176457628153957742044267759777106951152256104126870481184173052626304209227840453625743648560609002334359468748738600741328098134695663968294780151413581129393150265361604307630114375846465152154363282138255218752185764851178776653418876448968739876218942258981924831603670488733026573757042352417634377569237146964707087597931746372051356460861004192212505904361225822210878017682390365581971448921621068549085687162213261631710072456499917656023551863615523532090113963235017187536896417304116030276195712342242550636675063605016750388026063773130788652770982269779090742187150067944281953769467664450796817103834792756980810035264988344296133454700858697057638072136423831018288561961588398270603389814870948898517039317972423688233193538522286301338924965170778562516992083155129349776750828088182836621380991334563335792280336308029749756128634691265210161247926936204252293055176300208786423011287676206750651511266195033055378791374888852945694531449105156420967147937435672841336658585748008408420890251281238807849654224624551265810913743122302212158557916942196702818037884704705170867016197630558857064368382884567566469961809060960497136279075256900317930744110725197536978178228012064170851782618968512169250438124166282038738402029107591231150896229047928966192434313888881385547089076455528435699728355222107984223629741153583268502006804098501216595956781306416347624900071145466304351897113463731533982979772333602472675965095805278752379191538742605025816857190567901128292851730581119507279745158870129989365030133208113524719364851093511571443806715507286801481496464239867229590830336442001759592394639624223793914508130433099174647967419977204845008343715876622594099507942352672755942573866416840108939354521903994720027266495374948600696224588124850293080699958715013485876190384346238118629892819560695482895546755635955765031852694594598773403921081428900209639903129705123639730950170526515063941528973277506938439895169661552343262402414891173339845231934506059053663294697828800300439600046144506614301355870738782182058776102367756815732225904321627556038184385048171088890898952836495859618809760472351670442513117194062901786530232867783103095401168534120385335076573025428418532856816428796950526924324999610756744606774655903946116122431102125057980359039488094501816258459358320868781807422911854152993476841697621076703842412655027103358370922899144934365845193806207719907536015600859530505147809316048231196097120768116790084897302385922971066732256989803125350374382018526439980305452069365671617405821751763452513119820333016660077414558604462657508309119940178263233659898786512179403231076857809961420501270086969727968981175640653821203095405154790335942191275973866469543821623153448854688821845897950327768572775847978618863678638387776320430326735871015332068117012231295899771041697000883333890370473193747730524748809639630833021208516850353505187245011561648571857183672233913271858281427209058863842642551787442204053042951795474895585514573267925101845980408083748918928022918360102308181766610204417690463201367187252910332100834031767710680145800665061966442541941255960148625561830905366542754042414156248318876246931401749351430527365962822559758851039394842789684772674983197329770359481528791936702882219306079463746761978604854365342646244933861897799999222328039591543275314642620036011727336288165170108948383541615229466617836223993179958268079634374412632778442645112636234620302150408779801482846081064958014178439990445639765039415565119898854391711511881449911357730573225508627814389934925282587402245245733179248273162005323851878500983216631242328112525925178722701857294438156959524996081068977027176107919696079237168888726159541666183698573974386674114063537282480062247102249734713494334218033451821947433811472941908802437120075603165569503689800691375857257271722046850507950822821753741400956605024581607653900198026197302940879076180670451592646485953964432906432374449274510229996925340468120141436429148529006817681346431796264485518667937919356763199899612139343789256516504593828228618394113440917914762955311025994648870385975502763612811989136183286811916318178188041852479392782162887307645012312780017055463150656561717659785530238680748955318038522844629059617964003026920635869283983555518587918722635141251341206787067178015483855854390274621683901725140457873590974335812637777053583576704837180852553536828510814459391658475722921982207443292410257529501766415887404606538611343716996444050376447808896843369082066375689333048326794072343441587123783666065600874803685041429489599049694862939864927242057964488270108965251362747283294317306400792512394177301291563227889832496109702256808520702799547020061916702841354433522568443780936246218984920400355135966150998058491796859281767229857183450831388456869671612042016738652205118624876282808824131012858608010214572840900813614571967263322741946815614008012130103893263788714947917333551306130734736237814860285632836179455241655059344029473654116893623559413343745792176823522908770501865017048482586951439427730634313755924825261939649187775453941541477691049815997242348082158342556432192391414512049278688505891747128912938513163478074831538184178195058103875405661434173825936250387709774436039203970375201209210474016236031847919685077144924423061645176230904097354260236968200415461150378664957869637709552702396519023577648290494593732525921469678604016687882448533299842988168977615376951710362203871064071697401945478334777427956803949119898334725572202119556654611001272385464730502455520325319872412426549861286685818423412078217405373754130031817621587034377275463346787674686066532445215094059120789919976595559203221827848779548607195546764885506415575988345286775927914927701464696475861539237128319444856864755610975231846406850479121687976483998299374665239288610856164925711447136880666837235275523395101416171338137710886613648508925775612395758790932656964127923865894770764860349467645122613676160049952414482270475661227164467558514514712097950627127547290481275955585953806923006718330088445295136367985971415684732066524525223728778939277802957561263869376027078714143607564520934428202935655335394628926866567381041541414414053309166510642878972376516551193521060372436487637710857080179682320231157510418484139033802919402389612696484984369290185247826107983337543070865233997837516214965202793703717908854447469260878736462234212418795182288218784455552666031352386319806768239300463515466286846389116383095349349943489709895916619526557734314846766107584344335069514516178725879581814082840395037619254491705079269913863242756072808125185091492972092090719107009253727308509446980175787546864371372900934391904674303618344457889893103758650413674001455116212978687003463480475666396949866149047922924237808574252662542637540352272922665335371812514104428791096752766159350647590770872882854107060957431664913497462086841188869334730418141344534165786355116615299870260846388715934165822124891264721568838899374670039619260205033246205339695071071124874496956494948831236887254113775722008438692338430988129840129971362134825859451730268374270423011582199709332094067580675995896461110685509725208668231710779658967543454225039933894401686037436939287492410971370672432943915454352658409019175469513220751119089533556194831713637062764532229356385044449343387697750223683297270512591262890982372891162070846947950740190855965226588690955823196307354035106047438658815497237706461078324209596337863366669412708513860329397144396766232587909118373244772697344013162295099863642433733277228741713306198559930877120811035841357597100271290799499171300814059645041269694897842211496052110234646228678302082144692326829483950825364384476399750421374571911225749573957688330202298535592976387758244156691970945040267794483805138718707198563045846191232657606995277642783451695909542582650960137377982780843702393624815926218482754272154455860405567291797467547420254096026663233284275239284752719219815226167296809554750768727395212585443922985752197446779098053396263950886363397789850055549126245359284050708243521685663524527234550263207154721278415482495346650873437142607210442781544132200721135346602259678121928819366905491887211822530181616207020615702963245211069175289951625026574376866140484826240138911803026334307960392780851592013914921000776161209075745266220175131835946277047299741910433450247991765236264645709842211562452568802008960944759263887888319769092464455274721503073295771765658604279606714326720777013806241355539695136014614520955142504654416435640982828720368136969601169655820941130703575746742073264269279600793476035104861801166394647134125982697643746980659438674128060481742907301628115851574293660525020030692824698422972474260321966670991631523021875798441827392554657896108983818584663478243035588337742114144482401291335922937303858548061721192384333153736078490497566157125286525540915338810708600551097570974055796625177367060060325349357691514886637558277361983085563869864044798373097368527736234761659599222580225750035883938111795981831736243265383342796054740495792549321950236275469415748841383680023700006928575431592620742927567534842786467500206165126474160361045268606260865543913559001457700462781855759699340738222840504986806739558340141073548556546952149791245942298874839763544373183100469264795128284638008207094954662023017279912730645200758214462853695756464883603712812238429923532583493672015901661900195445945622396062028866615884505848500084584127477584324687050911405972268050204426572794234043037939475838749305823944842811020201067000765624765452273039279827225727418101749689207698695631256887042706925654859368824887720800471979541284993537327588030161265022852379681461863623280337116651086126045458940620634488623793217226420934949085474755988078847927489716595895022997477812062475636487960483261308100209313294015102714665414104727955694733194200455864751713113684632740108778125758019929984768263598014001965202126622691887889010758986358213767066943820313950344851228879443921311731758164106623376793260885822938028791660789490579771101062294327531776764339415387574326160737701964143017539845067370547560329936710871309105546069428111824703830716889041780066113693660666923775102901023997635154335340032670718452032447772832854701386166667400259538635641419995758494661938999957906167000247584731593165502957842556766339666554025958238276471484418896140622223246763359018744524185407275030670023648217046931109831343249814377401936054498576090388644378525168453467415103347515242064262186469360888210060382193260635206976174703628790970116902956819644884416971840316021966333399347779269782819379960939040558765462913429522809095840946321341017670143291830549875174300721831334323109504163484116832382174050261515751678324639853720374244399553916085739612328350816410051142388683464545395922673538663968347719840406896051366596095764408112691995901448288378129885427590779024592198464233703397436105641356869289117065064420640091885193645184481643347071494048966098954301320575916813425584596659811847255262002203945677509542826421868858186956516840395409195006329080037875607437702672195303174043467488085728265488291607163882009438205986640518032370299051306066863423547269245200727443302157398016463731486140773241070840880423163913051508558068031783222206170764347060384442230334074521790043834194588354562270439849292199347463991387226947108384081852902017102585979738522372850655377465445325367485101296183114465951021755578574492957723464558394452155136983050606518838917016430015485463088318838672164524465012614419483503084071872091442594871191606604934611919258652512678384443057541355628523655068667052422834586588197660145728820756134772755087334084550322623986751965583890998248941975632230026179939439994957676834665499135316870528648278982178398503004505694084609333368479759760410145638518409427663770702723232525042529211704840685643523474647781396490684749377568612848525843164726258898011101017057357808573053632864866491279357523313655162825294715902962625776184703165297628903166511982657324093877324734383319846857308991830826405533796424344599194550403168837763558591539432746565527087193713561662046255824298627478741244421618362420846312386390776687144690104161837571239915888714423792388281773646530139154079560582699368726350935362260149262687074436819937766162455506361529147617679883672833172133722983661190394807489501261491889648222369189787017577013009530364396531833316911968509836300828875058811175524074580466441121156175668644045973994889104644132714495752042438039263401990106359317919705893656496887324555124315766318377515033681412197023088159928296628899928133218920061681032322598086455498761635590496734803547920628863016512405648752624628046533091696215169391082221165114565911813965778223646640203142880736132475769508075129347679383756813336186942812302201073283472489971391033103614218247744061444639124964449702971124185977562166811599419692398144799362906838157044186478903939499542257632874933758575927918722006566438556935608580909401561070694055000469949658080641905286178982491135354342744061382989337449671400291600539225588262216412660250241246312378516860972769022137006287897039770872125593596945915672885709614974069323239335304137957243848591224368826335680602454871555451527631548009658228459314637275655467721655473356166904626280502218643931125284356082759477509147105193927150063367302982992987518402210963805320501363181829910997251702359303324940289022500921488515044249770685244540250508518110393231010813288736073845002430790747249862589136994479764913324998894153949708878181813917655692219545884107524212018834820618228633589118552141892393025005806472190091731364485866820959002725277029452575797323891588974432698473312705809403289809848799310039900837799186122130710994268881999262778071527315370621236603825932529894961177897620868241435988180317376812226470655656116856612942111997120974076125654061503872631070025407629529416426406344562696296045682273480150424458516120798616847938280766234620519742550903218293423618950754412311805627005689289008996123001842281136749199004551479854699035795704887296026289534978018193161770664028548806940976199033137165896827502751443542270419032758082074483906690456216601482298785493217260832344467146236466070798364420077652930348258563921982755515702140726366537714939022371143053886930121121169288596520734192525177263386789479293889358435823075507508196551088378043904195333125856507589563055853523826624590403462025005706693790320089705017909923143495549439828403968819641764084856119073677664170074627918697414167484922969311854384536722262921300402187233418380647067586630740384819145183463992663691931610580369391428873107236112684543341248314083106553514972787893663575331439507775281703410472368341341183280951464010593518684023496996244155825674479498137612304503339624772340229631920221196693364247919740448862025400257280365462037664017827650124172295702589275890626705989672046273960886988900287080456856418582652785307078550475695304173975426017755484331281118672444316831983033037257860583956494834125934551722688064751630015667636563954426038319362907142895816491876601575165523452332757856816898617138167903184130744830854436228472316323612721218647970257263891153465162764626941619271932249462295192180360072466235150919669480517318895967906884630651717146441424738141964968811303200651345354059157241773933959669458441726303237255822245194261426642149137971183549458786726396010080163447167885806054909570393640441420911012944189444579624729040526849448752627532243537770401946743924103653680424479797754864376117889232550537694996677181625164936994422992346176265174758186040248648172280923712244086356382401640496476282895989702897887674205574969024479569601704341406443154594919237293214807798770940303507154235938729816840280637224635940745763842162910002040959418164581934538017596895905543176643943879918643900763169096703204054320728883051725489098305527353045415060319880630646814725289692877437923157334665365964941703551340754812647464989024622165976762739760281163052553595599524680635236455205548042294147739492254516956282134285476165298311797665776079741736390470876788192575987825802379066531105350934982253569801328228664721430299533300785616343045473877705621880046499244874311307510558759693120250909244877900793045753602024049240773599889691753157620351515069038455550076084917458743684310587004529314805410598132395274411156750058790175251151586920959781471576779102582442936556585173043644159936962627662483489371687829183362489468647930690458446166626953255775337069681047054275191252274334858171242331232438598932143900631625543695993834073326013728859638079460996056029888862237721711584730469593796663869384630949630185619328320263538939796784389712021125014815665964845756089166892683696105076877664481887394600698735707555490788614552620684599916881539331507315180346808202085701912998591433385237694433519042231918315609475334448480107745034862643961837108195965787502286722467174355269075364269618822655390000212723246139870465772627804674750175735236580223196484544173164968603751340935445605175325950950901570236251989364314186665023534681610803199605527046197598794491153773481895791210403479099771975923870470574229340381700942298685420176840735065727195400658396399126440474244131806512878400173216909056297966088124248955594051798813995924824527231458444722024676607284104780249854786234051917865645677885119611832104027630288752833836957914774976977544430334042077192904994785345455953547690786998023772875578368379505606039245150169358596464966633293024629766590148871283929083003832160311627252489924535339402339522279929699688986282336408329137473724510501018370991909204482060867439237506225339727491195983911049611058195495154777022836716042264118578134032407328550915814127789353416841457505008272659560219016033615905724595054630948602601051059610141809149807383814791310907072107054399806962302045461089307377255373120286460646506861835984781054849006796563242533354639724725106371769532720119629072772689109059577274383195582319511383174369907608533471495485107196413540676377009433485080564443027666372452940872351004903912128533007283905607987607266630278293424173490435999686169611337216033571765915998774345989004520201463408589645880068901174507701487994683384125523011576110811365251218387666464676668474531401159644643401673585873871103415254347216402268419266736593838922810712089147281591630969714272873048850065440756007885533719612736490561887827255707598846686089950123695652716550696211061076663156373393309682227023096591827155976419161556975676601067836498306345574626324040918799531383001854710923988534162897574197781073236438465044388954890519133147881732850366062569915337634662384443390860352395425352330244919339749342073214884624984597471041874124456525042796482742010123876284810877466083421404327559824699040993598459283152149477466451916402704203104550904512634526693284531026969700068997554837609967634802607202665502501780927157994298442377531515553540523020739895343543302890192247122791205919011806995842422599056265589057948225437059232969785639842794621986011899770311936530932897995834337330592635003021281455356762942120070887146759446970909395002641949238977518117585922850634206029608065605172186777394927353355085042466957887071283013160950844331014712451189312327829045034900600577989071079919017928772150656096286878558089552444469589221969560086790241973780297742134859722475611577912592228168451812904578518547830900274506180899262258732241445635313696574527992488045238101887407213206550465115497975153449121049546591814484296340187624838548476358970419185714337349282059177553412601840926959405234161425474838953337777327568783595274954690979901203636211912959135391521485279941754080958907532033722953510466422075049020217789989405769814562184073494162661076556245795748639433609680370441655817727691191510896002114893326789220134041733156216856610280253262413650229337612892763693370473940459736889321867667063111392218933697753632439345744503206674082335972769774327926780326737470345801806938265393199404238701373702412189421068858343007723072559504710490824432601304536041156643158841107799964372766138466911694608391510158888438809905698525600221607726129460367341972038478364450872707485169482963433321050316017185460006324780970193159713514670110941349683993009869182337943054419057618591890284351229659064874632165252093923034241820790019902512949732138491377701010782485322071984827408406209547942081110033802336682641616147400085944499920220749090389662032682722913777414138890909450090427816159061401231538953573860783586185579728400126039825366125240310974179549779946088021287363393802213849303896165810009120243364529216340198311823386086929134770994233982113136291685470476211496640413779553320058012987173344566722752316782457747956869140278068784409938260292936698716356989075619475209772214697498840482598846182325296218813143765873606097811157760036733873045510917825196987821512758258082154436174852913245627278035405224769675008113108015858902391073725636990954256330855162386415071242048448347328767226685316737315512952552558713001100486808218312477543307132397991805760343518168761619303285283281529668244161975657785817538798999654896448009596094242012201810724168500693234788407739365272459662573599907910511746320797455013397658909072249482840562290180493762693922108751570443501203301672326038251541434211765598828650845721182688280260432029965187857186614249916918976284349264032841881770653468695714469834437897700247681813513512281981457732778168178261862216251514820984838756449855925575326767667372265281638451629199794570958318005004180482338773643426620130179595636497021493259282016335136813784959431559565411230348072820704080275675841281946960383965402462766647021914032684035189215843370710760731547638989790146599010441436174331017264323623145331887967331498520000450418758373137783305299874682240090242342812030548169657252945625569803140850856791780385790355375729478954139997111383497246437901706599759176819433718920080222192237438705263358716111087129851477437018829382451349075812873023166805235850899106313528318820280970773251400937139635261144981446575851555330555190461319774498217427615405239857976690566282444614062963873153906411145448972528253204492461190158846577532481402330709463110185479132650641652846106042409175956588363967558375020757960285230356158376523792099012146571403195979849466313956746227713344828573247328237808951748177548786584227458953397129852565416815172925544888325592818782118966216966936972074974392719306450848489606854556543272040184685791972323802274420998736916891734865381308208726851930403279838333970831172525907794515160518726691107120941078369965841697830259106513372170486828001230995182222209627644883748744653464324816566556969378224068511705656503931647838964065910590334139218725712724991866640079832192356851196777069910733565428864116806074115798497093637053108703931480227257700492646745415328210281589937861196934784901764397160734765519844750745852674768255131126516656079109048706491224768061381037002071937203346197919730144147642694004456105809536325738439423102389089790240117872582464470115318883286634296672363390900782072205704811722917534028197625363109373929022245854223778756000890826236856416483633220452972922047074050770964556121849716726651184461215792889707080577755840213360429448635600101458920252466724871928079770226669631473773722938385118413415459991797126779664294568651528156695949887444113419575721220378457194126427929589646203165191165926496466702555612843062002819669009292816614095084280239946234519089619812699055297890076361824760409843094769287439883066149840498497963371580681208673610674867437819298192175807866392177575348510656155717085096695467498176169610165035825824988979543561570863520576496462901503590344006142384404327494038459693798350544558271470638460163177496944086071728177000931902877811268915144853665414126558367876113670840816089904205570171437900199022910392416082959059844157764407406189716118229065385147774852903178608769447474408863590771390117274915921127082167967641107634653524616894015001098088639502014073770963191172553875489965568229559650691243141213117424700439894825211387258869702437126918903596557033418193678405199662651891401826728436692492356628107066982149619755317752846250994268028521565606431336636270372811006876862939979901988772164610737178611765214651800524929105135668269274928402712970732617130096027510472471656518453214084324216719487909004525826018089076327967297942226718646165939365889824411452403459228193150431347360675807257999511866202014344966733250482646196360838294401672571486032887107225847725473801129845435453972891627678945295334010711798689840324845860256013066742133916741602622831621913123759404347615889580396678482978421629724880695106917910901008516910956258693038997156841405255111111710925942973252981713915698345194775739319491400603618726604103579233481484635789933010684662085124339064570610857537074298240748475152232565616573513802011017966918706430884272841443183222018084111898381782650413676133921720660805766926118949628449454075904231462644671541067876019826612999025297036895718797825620653785438100382345829117868509008072938325576780036617783015271478641493570241644054459400666043134305279771967232841997317614856772752586242496661222618738776682690226874447634882938184142380493677287335380523678379842234080077642618988634237382665458713176948171122713939671759969100488778055477143586861294712720155166141146597532691961174962562412073258128781488138726080278979812390014486040388797272620196852015927032989815589294701458693329733458109604995909332491030638358850908928650555238239251919777606070003899007166263223799369380523700280964091562448244056691833926732257393934587379164206660402370598116947030307546482959333336209355924083872864469351064820559178715794792323023095126720651355996562260758808351141251967301383565714500507356577040203609082414083483751044544067176221095668149925275888341079771837081160659666474829571842140315649988822593696037634568308362086698385233816069875297846232106012773358558003430372668467444506824150631163489696792989406647538128188460199097919310725832503283499948571041008580194556658952171354984924294507817226995788431959444753484665909086993274773163232177651062425782323482069079409097061983455639096990074710998946552732580402155697053541899616472220981666285866689614643456535151066407043435151057759280440842450864633131430613656271870392914407793751176923427242226529779838691434271035408886608551717217792000574080395543616614224563372883869552090400907278887930094078249518152378084077570528572954335470143631777848795826429491505202818879709716848480868997284470645359846552999537252575706686412543182745818229721330044379131119308622504259475408303337368295277385718784124740531150761406606325237909714336858284771520924873248270124669695497655907874364248564986899969464296239951022411738916956698879905203161980694589495054146608930549086767621567183638560685170256489760825865686470524466239234743187258250532321541636372182111050399023037261314346256572178543033938214242975397415830303859005681289550061499620269001058715129395947217459344879921776222841957422542213046883188186291587856639131616056557798479525457715379897801877800531302843025177660922911580430963654213961084190656481462956642827320675705956201474932347784563707067398817049984520800928897865957312841489824485857761319894241601050107620278420041404612355571889848002812638857947397572393651608538341375297069666872172707845954073502789893691591185328400474567572657157513950375340554077141566237495808746207918215895498604797375969346554318095183850549689505324285326847218832352521430907851018122658987600199633077694796295059628765511039555237941739712096644703304955038906757274393477283407354682455679776161045088309711450102887358074228930091911483088633297140719688786300036691665782634111329810390370831618115311038150249708805557504040466571066521122802126674087702458605963751388360749383494625056413485464800327755347699208382039300702916632667527038347335684017568969306344492508631854495832518277781563007181472754023747364084376083294351527344963831243702929526961780629573469688999635151336457461621052598618777074692127609019119451053029046405514292291002662932179426973497349288838271694807308541906172037354937054389878326524689298464276027126429748255160553907808820119685243612695056175279165111410132064588325507068605887276841785567077459098357012464104918623991346522282280545060366283020696611533215360344054096272133795222847519406609761275973682640726706005276111812934799671492973821978758537322317100889488895902999762643918656254212268143626175861397608760907249824086821405385358624240539609093695746083072040700266776642490555801427328846186660856026318531118248641641856711479300071886297532204330453946629671103811668245066839290817975271208231836262624645716658543766361263333020119604578889259950316619569912312623233133093213889963390445289246962556934907848947224064897508357644858470532321788014151682689568573607426160213768834268776610987300603387520268710714279396865091065468131276155204909275281569546863372986687278958782613215234795832763048053020915321579849138350998368108644496272185906696969341493025141483750821189615845251190159092324052719133663015242081175516548507593762684751254563871789307959458642167226401043784270783299340051190415348886787520894038771258633562924118562591386777195717508577859868716516087263654681216955481929719071703206675910599823239088886974656606168575741466890696455557223600830859582738686397366662749461005771094575878820678906547920830113399660647055316816248690291046600342017252043262819652721020919920740569594335562341780812964307327772763692367910113910283373789699099351107229025314702579747020261254882384407185014545302770978295174275597039163003172678222853111987058172866254818673728882415631395902089456472361144522484878258139909046584218296217201239356794960445561934523664973459680703495863435875984926615852784247015826719270713494903248119309371084768502634147836196696649461905030665628181633792327587036213013056909939364807152361165098641891295357160266567865846208859320550614742196756896301126568636630408816122164938700350098194298893570747980850159088221631254826665338263879751394221442208970057966392798602558005438556474384450298633138254316877511692731570963461108148534696341667114005445068122583256747209736925773507280250357843499411837495826040465867283604526381587292381490151569726160849847958272817052043490898129554591753081229570905862566655146733696822883297614371296286273905632315922865211660491052053558285797910593291042990941474849467940899788375698216377369390458813711793385509389776431575745728063033230273619214902124977674792422271105361622646528133103048254143339043735048230059253545559830743453388157867652429754662254851417737313589653212338608392233089401866533455728462845681711040610092921378305073080716420909509362218890248067964253364798899196581853607137004561295464276893318659771129204751625884919631112507450630898329237485918657434147599228673005581468427246196943446202871744398809261557381355443071264711117151996413633521762605655161789343055774619209799366637259364111003542698977575829566686290409680046964415747922295340348250811860077537830924126599972677850358533955811520893551190546635701245168349092891059341231847793923680550652728138633663961097576576941239960584302096237903770772626334957680960213661122978015247450989670667798013101344121019032622510206095549537783760223628571623182377096699248073737462599916474933111501597955279777016011502357533402310433549134729083857654387275193712446561047239269643271077856792420916108210115783067094132582011535611512328452732407864479716620016679690438865738019544934431207259356587437627074825380172715487370737845257283269212702112015799472498931720453461832962555764244099897281290713575980271079400857498180323976285554591960678506272173755696978080754182755527583730944422422915669043706777794677921283831951713431351327070447239843106338235883078479812413352953917927150870879327999349658410876366745279624629058971439079551113386883529909650298657331315099871802421560597653267314918613586561237049731810552470368869838066673547166595417941493546881169364058249693072397568484608449426745093187983172441190023858714305499646261611537662642095518889265582845877650690890616183791025016814482954641599984777348496624341316647298470070257164425735530685264866770855035805595259553021995854531520379192543658431105391733398428233225364548928624695409414437756051326553084700624522565268697672978346063790669971957635109883083916186327299858031432979177806019405342445886605873842853864550670548655974846455226278466217373555328254263102980775017125085626188736826782754511358005954160325046258266348001290360605691567431560172792085989697554512411482033093627393354220719990659762477780419183372985014662199810526442193595603721492061370337582936045679203031528381858953187246929108403575381882414412593310978831042720954681441634363080293749203971837520728457475546249973060294287881347376113016915331078271052880787508890892500204354784180755587487017833604437588531154621821923576063497674644535109627984977195438510684303803386305499729216466592055939682841121505989264595566805590750959608553880775227031990596695262286937806947280864738311999695135448996698465011168535477901997772459561810168805951132980415616795630325194714072474103947544665009946184420883920325754817116611018689721866861390537661587792540757284607511951592987398971674889616616300878132794106460083337771683417029214820888428747867354684463014088534535781057476094976624752114254235418515427595112770542396138942194485193607959932271956389734545937229301380394843943986835353256965482745621673436662779964024368354708885086471548487762043127195254581915487436846125651478873975039160894766843733190817897703973899549786021790805402258440890846620603228766828893560513217260165672828728622852706116906298692400747127857976583790469343429809559702900928215529241058198316545757981442794449472802541662135912875536466565531397420500970681271501939905308444739040263415697225285153764591051554449978217117794584261997824184326494244792922648160357739321709641653133418397265727865266454773768523925536552292842307954869725119014998308383859636759483633202072203499489311828471536925094006582165861926646421524497043424692348591541875714180035020852304136175100813393682617019644127162173658817983998578086546495312741526181021724612647552679594569707573054407525661360848895276407818669562725796840792952353910081574202675535093384543650365784003067234524877767769645823703328033816273479418292268610076236019131696116772917535054113126008417029408150811096725356162625445751924573322648004459939161008263190059586282745757176058635937143231236126287458726467444955945169864680249374002586701114886812000853952476783160444601458534502355977133725955647553250115973298342941690212165342911135766641134679919581592804683300888216139476497851861045969741943198891155758389459079357460563283175104932559261376425069488037728509257605600454806787635056409863508111508941148296970428556174336720274056238162528299687510127461796649719648696780767057932516618326360375429020805511410462448088982321902692641460963797606140485203005564952666704012790037275034750278123667472697278248899704198534275016544238028805710447327443862034150040919909812389276796992965645044275012575491044792403130926368553733507051034851833610908459010175414378500792393777042741519762518449236826463689500896319764073672713725016895021702103012252237743602260077711460668444135383260436467433017029494508170486194386764117494501812621713325290419943571203093540981753616616679892743155869581169600228212743189625647945221397554790427657672818415517974053666057900416501006766176314387868110193772266192413420082016314323522561218370640596600015047224341981741184962243345313542114023393903034989005315271739501753957699052983522066220380750508611409171715778187675718481389217239878684029441279505785310863793329352809676597663390117529164097653446829972580942233290615014863239239559696291913364487788292985442857974522406197949106423586346487979409790365486674396540565312923460443410213437620291725240165678061305520029784648441586959976617523403240968690337523626288346054920835826473768776684673008010525516120103355066964370733224965153066594703322037425104875474315278004955330037803701682793257203485447917219925159141141602442829324650520022665809999580704009191176145189719171280391583975955395373303716455944416159197727363852699977526926473591597960115549268926885154383369775769041098936343052958630389101399596443535654248821330918870393371440371714129644735262092526120741039535554965961349377623491852703839110590554621308898898631833847366892083589047832047012461552413112699451148044129483980780232312166620627668571837893359420652603601976232451979260581561849968920730279184347983416529524763026930736925561521464487075267007241006386232355336281944227304102475398667036277360353753884003305745411159111453279778567947867810414423860507301417654107356633092240652238727545068441096032232395798313646098910957906875885258939095094622327807386809942118362662350164607167601897161192767195539601521524455580287052655591320819025537236978746216740580034523884353362723271361507946129263319569353947903009332467391885890039293990436642624614570024329552918171916754139386692477352240400551838480255766307517655990850391405273984566090299981330925189817346498504622401054845226307075606247643906718377503306018065243733869325122241004123191231168201287586190024976280073102261250753722176519288076812588423233103145474968297810756677509936912713767904153154524387179997312708016851500246012903753082573849681605853101498997155708154601601929375690715781569797790817528154574612850600687843590304522302822656187841553610795395676419683754447385807240228436156080636790783140157081807446480403112086768023152915344810840767311834679018700393794680506018494586196810491277301108522141072696652578878115976697064890797649815573012012592569525896750620613473976945487404554488960485941478733580138841682574615299373868865837839572560719800199863923194299363151836056945399975579224006737063763714338163507742836836286814254204126035722572048815596627410477159163594439912233555300399569876156259409230272103037481203760676678263564128354008057662661837388944008843489667706541069792453107208322295157549881528512640226334035360485797312734081506550662656013930495802138088592321549247676165109437459766386367844712425189536514810608071171136699029288381754751075990058071332982225492911151102921139784025746739134445831793193253554083532540528088134556006315353604534086695605170400322400894853396204417354003201062770304216829665858168592057204974278563517543956697631890320650762425024106547187544291785217549048308251279235626202472082895403866235618056136477874585124950728173871318960683745919568629763877150373781352747196532538161328158804882668535913464056002015225294992602689132891749620445163488573068512595875526655306133959634004861851328882816994208592213238381408281118268607131518268830767931053076326744103078656670447353667146367197291727316184449636055697367382923780941622941989027789886400302308879637004481434346869997858209383752024859069630703753139662797911799955838105781203472529274684618435667677966761046860187675743522112073299849637646820221453308547343063998243772757820913222359167190117489167710524475123644047260490545315492983489609275730101893763061124206618261941111037113469173415519263104510782925910415520957552681357139968850032557981117781674641463763770697277132989282901116881090809580964198868113496680186029622198320685473539341991649269882575679857113669875072064471718465762417099656180254554350386051186181622265315248376360652777427562157572268723220721338723694198260185151425191557197000982108118621479987077183159636840843042698885201169311228540609267050159116209890078793667554814486501583166682534741482781752975455434251474117708818739640499784701891974812932891987977035352886898936790601625922452481749956009292025433526887193870042308849790831707797603903324129654570487849974980985565131748456710735694802591656323455854037054336304612628952434463719570193245371985298539130774236917761860496024084702880470186040395773808674398901704250348629542700377659406109776736957488284401130432259768291102895915981915489391475741828733493616364635315679494268874395957836022891569179795624168433747050172072101370684748894965464297520695817633663077450624648271190469229579617812111112045010036775348415475316308973586303516999411570568156607919830221284816013682631451452087469991047042596736237063624642858045126789591187258090534720848090198320884283661010768837865132025225846769563649311694563049939637973275964412206831620047343515887546193023476698610339366262723215605790467235799615285272887097730243212370124446315091596033632466132228894813146217300370266118631671705606767476143510616142915000447599200644887738750926606346517925864209635765084060042443114524508973741328466896844231497740716529286037109798304468056208106085909571550163724925694810091382502795156293913039359553904071418871891459351527601410244186490689370416185116877489790676093832393190303041182096350227524424961152488017899658329814627306496682829648985918787202086241783529604103726664144322698369915954368266267039118456588665289969880522359540101099241996427495288898419816753760802218519974811202779223581898603179444353330324221447871643460360080752422439140127817736974298052037034564277955030094733385937428276251293768160329317504951351114087770543284814690533464148926247889227105269775635753714428818713466764798220957024811232154491997027582453168713848910762922269816573513626720101396729273058671284454168235305561042520981684766516752161921914158175280907563206160097326349416234763830431135394741397146724882868954151351960143651696773964511980891168015241076258996833769036391422850986160853064625152322828915016491843735699534946055131593876828798431762495434691846066518463791726474308704343262768596580928607330285468313042610113557059914077633421943415242935508607947185084636189094677423068160523959287556235036641391050609816414995926011360000520281174907651249221231101721821498229921933400496658652498300594672406772317817114079010541421639130887351020182027524406997473359517270318095584893126260125687139067465288807445567971668539217073306480702860431129286405039859449164461313991620226228873243139296959528111330136161992771071372787674484937462125593932757662815175479865140822663633619018296275554649547216114419955189276635673466385764947626620871478783147956109975429858652592425503748694389960064462744035901565927039057161618092029044126769266198372253039532834338557834828435194513331833400726688789104203323423755207076286607828393423508813628391702118197088056160569082403373080110715746686561143881457398262802554976537179859475149013839656858153044269129132560099416198854205301053712455480705542595936053987332611398149265977054861301925824476958541367360745377628280219287239419121742267685531835570885189811037358171501205848846272047234286278209843698033342329949840955766908600456048162683793586592067477935471329212486699935148853990441729860905901715783902848362844889969538801738698795114720403600450678035482865781791303824419600396884866201224037354206257998355907924522508608871626099052679248317511185622782929358359543665218750955303531060520732892095405751631500211226006245019401885969562025645920347933472686441513044269761609057046820114523153052513014809312967033496318992660767916261609573218351612870820670682559654744069770740408111485634589621446633674540155898097973156134722025406834838607521478490616645717946858546970777019825499417814855974451837348189761716755337817871495832685235493998331007739066670076914198174824906572174332642892699355470301821935832664422299341082194317762784070341636755239713754274965248265892927569042466564225883718979030174045989470743123636972993158933906694083917821155505921367346056276028862046930680127095854089208681742771107924464916870388428198884712751453765552806468195224073445441698206705154204523353029794908534668247933143115657498116443100722449602296000536832412862279863692247127950154068184106805737160164415119891468707924804569473230935117416668244539484356359577139492248132872641462440830665045404143897748539034550584706523127478566733964182677111423879216765141850721550209789210312055666534635314123814392180348068324819532689756525076262783636020636079309457114808928880251921538401195810527945787586221257861139199049892681251429946778694589320794446961029043963723224062423277112991542346622396479362219285706671823727201942031125470860313291365165922899868254746122630225122874482689420675309112353221678543502754455103925227149586523483589341794278682470038760967682097579714165376285309300656648765437303726860100216771734474341410014114664635977124537010600183663208056320301877778305128820081217639523367674639244331459706785327800699108492570878033693764469257604538931891752756205424053043312387496937180680158434417690725513684551938772966020058529026353132448821302285778357543368510699821532193416376823573911665885204280994480891378870442228736482008978163165263079749103645877232892355842169047932007554512217101135048236491058264636676418864380503024327195675619946600433747386008992569705903092422620626145165389317900669433345964936671998552372721133090718767881611136015109592641483104356460208758958663151592800975167196475078806519519404906195527371646393631862560335509762126974360859461790538728327105296767717958583154974247153048997678913740038221101279791851361832793122953436261346381990205731239469908933788095533730898578829837143086928818226252810853663388749019439147545114223817623221523519802960392050445111146514065305867124162056891683965126227017264583773231440222604696723983356389930409930405898784095648569430298197017010056283569205690981711870327107527247300051299109233763953798846075839778945813133269793029179107763320228442140619428351571226808514314792254811188783561012254494754600519300626393021492730499337055979860903803446907883783910848456638052571352577050199287963669678955263485021019730043010058611761752789369794049271174654812172140065246338068900542904796338569320540624884894984658785521983243143013127657281059609868705300299005882766566275718658230905754087806675019785357084009234593970808927739431384771293665446847088505852527680014238659095858771691389144454207541751082624880865481793136985545555633540975316179622715005022022028155074116814396012362732826603952236101346646793515572940288227182184171032816921190441744522893758998853220275913984236527079530234442521406539268525971820923408363384903141421729637487893807464144136891509061380429823553312585267262378739627879524144262072279021270654916028352039140224913666764708652069686581119294241838838703092778633972989517237668206072042330133548839079862423576618974504405350967524228280241203434010540764742373873513705029422902157886806951338669216879414563019019589050750779354651781628457814720268091333679264763086198460440921378089672812700384942781781101979042319340034024456655216720490747712131218179986725263574393806793213495793834247917899335255831209656244110917993593923957538667088608683279943704503558478510839190864836143760581131207766239261963053102878265935397910594005136462973920475353384822683462382287195521413072118692899191920166392149723858207283244236704939499618338604553291372848897005843099985931462916382059497781974893033656555370461422602807182540946615606885352770728605992446659381311325920073963748487515891308822206352781337274024351972688750115007198608360969983985315685184919879037007401612863037419108257373492236449146618778167188356482750349802139788760525149817945500185660391571948115184931942190078614639115992761911960975925925831664457291661498022348932372755001286315162950920702864392856723108085679633029351764450933622259858377702605488030884010550722656211898625848241679377643571905325688107641994726837093922104538456364274762389763510833349144343302892647680735066754062231392379368190777273825449006836516807484092292925525080784571073021768946686855787475205689051066881506266160771632832488856546613419519131478952974637908491574966821038338395598640972152293142532075619999400762587427606187050700311746881846093542131614715078727918046360349340805328737231451180561837431488418234774514002455643476690083960755490311362409164478839255039285657102008766854929927349986051255317485783241202591616343678036828868345094242752275272383838430535655844669564921980075138465414780215746970087279333926397083752685581693375449139258224555804482303169113245067806840375522126589591932868977975735116466992997694364886372511691942157640050824212337186578596103599304998547445355809598124325026642051303426539102425427598028001774145032676812408572167018612689396766770494225951690349283243183396978871971554363540362446963594536269266583285896741651860415397379175034393219872718071857697423134016165288614905517119705477947642268756586534729670805405836876628555630564669195286733962215443939806222442919582822757943993265059852371013219386736294787129817257644938554779003782198698103370463419678023857633644765117778019554253868673820167983503542909442910008205663938359385793768648421802041167573293991719536938613425195958065227366577633363088726050295454011880597718507613406011338997558250332675480802955340104002879208933667243069845052117347034593464993397982378497356409930109619846201598045501656574515397518455876563407086094152196742696256930620525370812533824375471726901624642953411084653405952323419606832194217639830717854061229302151895813889372559241059652725822184547614584765084414329245694622042507045422591123945870119535409197816783022053629125890375590988640507471935757020588848853679309171801755122326792400370587109887566301648815892140380630543746008967390599139217384427749150502171278551869841978728578521303232708869199213827802735739333398487006744213263648941386111076854605646983631894843092083708799364777444539855216766431820564411707587803293370901965808367456889666183574056461397525743130627398171820201106850050288419777199985741655019170894745301785749200246153600660861455202756827131579515067988187904264406563984871342066004823507949909640267528073589290714581300025588549628663559605876869043194230828157099024808915074698563696672861772792112508338933753119812190744433079339712319720537961334037704790123841319138857383562208814847593888901208946727350120666775419802779771302600284803768091627871473762026892775147529869808735039401619885484754926685081805582297737727642357348472310448025041750627757596573106382342720471090762315654281214689022476355342878825347885786214473334874141214851771612195767029110956971084718756636872014190872089817294677103180918481369168907883267538607180679017124425089359655780713500527210443532428988626941615143508055623232681974419122633505810731899648301825837030616411934333104334351618882582376700589786372042673310957243496116002095970692614162990252171121885250621514808875132611495404956842472121484707418587296702920914590111647444396519075894802624314759532579094432982371907535761436149201186105946877826702403085898291568377408258886294152842679904988694862874214758363266390993733059747635229865447897048419952340413563244333107446035811197949046900483829954709071477948481725715988076405209366685947540382600348441122817455946472404239892980560090650866586522206613348067202646984421874520013253746046082418328359857298557999868268954084978737033618003795382174196431656844236886715206751352620165281294635564167118213428867476393393506141763165954832039262465328915468356563664660234229522523639683137507004045957745523285601787238889255180674629171215287421319207669827619048087213139890473863987916686305318904674905094184958495927960020117180746356876034929894288291334516396591652459110878215775652493383090244724745805558503930153571036227426605055661196936733155499141975193940755048129503338777290916208561692714195431543246259903390083995895129339314956475209494756843352319853542395411722979104733373342919760404332717110836824322562643352914654940724904137581577155392039732091526738486408913318236735436861268682145577083477852302571697824057986817784952458642001495300466388525800740232923186086391013003004575493705147827571342958023402975454599729357146576199601425619953849631909447878402979810547934028756214626646111168957154186942304526624774447996689332761656750740124785604858439599693244964154967551708643935198594327233932676863858315200998320848865838884398146615941501363085615162070435196910079753862906798788854006888974016563339965002175953495462575297939250950579033512972903095613234362499266174549098039392113678370610648903189384720002573280246367509125968123861921268485759185864400460172256706938824084686234911027091041392822494875053675120662960834604359756472304348443702224093174125636537842502864731435322544765581240773792495645233071031065191120626653654419437354154732551449182836294031313068545746866247666043180811399903715039197437524141712879385095712872240365311418602544115263912484570853971915341724922442986698161393251530667726798254089004336579984667969830486648662226945100924435532087204965943205686186855736015588783985834065979398585969937865497740217464808297450186315679709418331318437804096306939967976417948693418927465296925386047222474729798591026851310426758409991357621536532398931332532735194903819126738281548544873565553110474087975006848916153288452006669479615527446175505566549820593106581227690052370340824959078007680737568573885417908344446476038915712233103357847428748518319112453581657476735097653366849643707661307614023493061870413509498307359649143437007803415956275487875821306806266841126181182884927660732831370494417518954704210986763292234468523810970050774579427959003942287726425290002575612261832683427176893085176802854195239306369264870906235744868458276110502087805421483725953136594307847574465706474750222573229241217399934743375886095889079054156584520800067970905915826635891784101793826771094866179074258763018503553545518537875548759595557367996113387181900837035767579774519635207542459420681800138366148700219918177419491210431418678361492644057795369123902413787435393002135634365354793575525826687603284455341250245309427338222912050394308018523294288761639523099555779669613657180477727943026071234908168833946200818713788255852442503230279851955620460054168669682317400542878297379800835796286183952727928699470600483597503240245253128629552455839944524089894765435448205547893313517100460454377725805421914255943488457026140727938611648207713528847690292377397700816489798913781659148244329585432870333994518726472768123787440353822035424832321925439515281315279281084179583093729024298980179758585904145319697150453885406587666766211465545309262589089507986664465726259552757709420458165309658023104401467318947638339010326691415016761528491793313460644080983062291015859791067382119511488775563068830518080335749196328522054810533323594478779401881579690974468674757547950683484008964408953762336758769833397654487843550485780443476256970443427791681762569284818680832908359780072983362432505640453968494464057498524683124967818505531940379244206796446850353328010700303972820476884057331453976467652003693137819250545519180320238857899771598643066359212925069925183857656213985508339023622895961440284010046577881697687315225696131390114176343852727895768554861951615901332227676758530478151486876034096817784059455993070584847007687418304037670806115602720955975235622999349833514424471268126513477227891041141515103231196302511691905721511975625706357712609007782318265139474191437208905473483834247851615003661553552196754006592818379753389419097558202679603253953697216379659453724218172172354606273445694577826204783948494333010167696679322539546072261278447405586210790144873951970949869811405615546579069363690028203723427076571312429754133030354749103291167427763952076837605203253902980178156096103313954187124062791907438363099394292246787934249875562285697956822769170864958323385336636994973819311351526429922082408998740801257222685597018412698564115878250878363412663127235263188440699007665602635041768268095967364468082922310284293392019781194865260705680234549195708583280482246720537565473499853534620308694725094170559673590846540716676539063500054943853183418461388576445023738100071549119291697424335360513325965764789543141734500464752924056686388345571410725465201391442055319784265989212188324948285543856750326895506212349907558875649809773071661677785500265568323088201315262893904011226801727077220329556493715948943608221996003093141879433886221436838188773380718743923918313467204557864795780089506352179343047350365994915659885227811100076515739565209095177854356000721103440246921841654254326694078139493353975321372571885715323592221371762558175110540396856239267223878678418000204309113072984912674172758885641213996728806220206951223067343337241099607033772369722728214380050071850915055611095716395859108641793012477692957365238392005249593883656233788490845994326269968647913039718625048998798115385124369843838835690684800661820937762910672003537229457695579888210934194139009395310566774412933494318772482308368986087529805657896567571841859772542690557067402253870672629723324875621900163255087940273709461024663403401654581151885118495591250254070538586996198593085228570131278344171833750471037369317251390421041490486474255908878217420201345487943425541023111894332079501137673985514972581684115862409735535029967163740828591864390762497639197799922348712621455719723780480633008206101159924988341111328276009010356969872369363184666783445939356802779330117232714207676366242280998037299792252726546437962862035456809758276856808619604069265297437284208314378998515493028375685713416140954492464668781039115044921661351061968789324437666026947536656705733135041782305167287078681987603140305356017655897206236045274677080073225513015303782113608043238925348955071254336588607836204823232774726485912727030740829465150771091081509843781747231080666135204081404146804614006613172535358818898200309676676741447783464628654628942766010910998750152043262812372563962904467169997810347133479652932348129882217551904264288750953881459351902953740956740529469069731205477576971594262774319014563344086197229348967064876469377489153385572449105628513760246604932552242213475508961422910002571951870437807552582512375811111404303863283006215740685784253412210740082170319034085392994750499907568044959974583742826268938895477167000543450167381379659592346666133664207701522010987960779236428809549046517824064274250042600966113096454270446291364666563140861018257374690877446208429328628264526511048647968471665812600225233357687738951401201248308106643067044572885562014903290201194170482072374733497232691465491954014338455195903634219406525183172204023482248292385047071933754204249285591854616320479048891592618943050993055084087150191800212881697072927216146734710819426571103408618723027436001835406203335285446943019543109854198609823382971848976194023541045202862649802134955494688080066435905973164916273059892381422233541394167482892412705598547827850851030347442364919279953416203839300857927352032625834323396779288717651212843520755672132391893658316019531690081612493743892333419504988059905568831485564625126098662398642700453444409316284597226381773766061694810607150082284765022116237284861168639959877211350463110839755654458381432979985989370756085146018647106995134201547531119543908795088384347354421055954653389540773127810530336053096295419303258054503897483069223357860511101216787892700226949630377614326389974860739636807601994059152421029712931575531299738345268677208028263969194014811918333514242266176353843355126474464046945136501865458955433752041256346165255583700759759512595183193230436933015860118218245459614680638164039004465708526397546950338458880714802618513266444081955142514347367512942809591116798420104545450271954689706047303752273264936251150793193481310560820082299479020765372011311435358260098074483316695822424217809436409804798041839329233457006034252799409993331812548587896515011713503783313645898271416699167187996926237646436838557634248889488960697995696738510736312200223913797477897900640020598339982731046233029983544614896072830750457095043182750124832151186101126590011435583349245486080891668506851692760466993271136500348194300327660531935678880729036257856365819934987668855208313869695000646246895792277664216878542343559587187318747391375041355180027929243402189239806101331744616721885530427656101180748095870614621604240531361170669633823105640722838340599046893003154371089330090736685669800470830783261809371275258712312538213758311522124983533725486165250222553250910810503578576044904286874144580357340708171909714786492443341171724848419078123304780403485388252177448067711606182961784207754165403566882276369308212393913156585700051607066239951494860071723093589355849685787301357076214060574613308358435799701131164147962228638362773353444184873265826112705158221693060569843366708442846543045592840574523989991114248003518106507082520420021457358659948092135651667935005416226966808248648312961895967802939390036113023697355746652861677128598684054201212240600382144368347266551090892637530235103965161927413237157356234910175652010053735842593390190277949599958929876828578870116839789553375371344664734922156317765341516436454271831247083461394743240393058400046930355861244910085588691526196618382914280339483516486139188062525672335985442051472953865003530231534414708615673521486039664106572643165971147073270051026072573218918919775795352262855463952166805668649299480853594219216248686150427270805533836262149294602074548195449700069224940760097456775115027314592750106922862521090525296125435381322821946699815683193253829841738637044938422734909015738011718295423973642356491631199235513878337455291434521218214809029324695306410880471651978309809887351142074354906987235478202858532452965189465897691654375137523125618560338584914360768707188831309307758143096982853139769837926560485657532468114822021258495096932427211307282323660243912666628931752944347666266252094713472772689838063940770808575318652478695482379957673802523553618960831581867371550248575959849118794436181712050596609746197395884057292047786598925109199158775088893047336636078476655672991354730712446331260642546133326980496052219016459911285212702565434135417864978049554066655281378855201534819071073118877366966707885493029036596183165432854644135818735768469879183469630830819732192516965431781198458409458958584259940633240601422379732605912865049128915814081263338722849648749105927862204809200265231470319398994945939512824134182945714224557859100510349766785115748744720519740045260312357378575731089957265486661108491146773947860507810483312203759803434223596276168276205227569519975571940037090470618569198616827428180379467440686621249847744067892852817781019414628054771653332472270878617248013747635737722314100966860946067933449722831875791584298130797951982488756416050038302703577986470656467606586635015650029572748838334652583156396685137227386005098848229258149227546037843680954915630690881153379691101942309660678453314897208698835240109996322576171792796666789451569913238835364423168063013770090050592767929628061522102682672275106668063999020529734298918446422181764874071122622677338911264945244712296233476553170484115272591269920378896388701268905578527885294760821979643499577436735849717091095988200322543996308679731782744157296633381471202369413185470372093322655484342812482897202608511495559688971683747497266799054653293779648582907995859697295706441832765837740596687436512393009097626489926940630440936601824439108486961537011163452177728916518435840940507345358100867302167165613924657736537595921650682524343427042979706670089645746017218891309802274029170110808195890029043808168821566985785904782155307593832704409427158210822210242804131270693116200844890642767522158229131021962660867143837255056300134562194715799242486511909705217801526239335877413563246986618167449118192880179877049972295437898265256511496693978298278342307863367383427092157728222592164030861003964005887378190741546852624166675118898256521164736138773929636002419807177969392237378723296513482935287457009175877113585519704496719703729186602979746278009139760441018800576714618143374602344259307746430507049881328640602978062730730342633395287162340429386189869386656768659346598758182944667519962361039788085886682539110376023784060355690193516739996262201133882849943745448344836647555722768323137111117045508514764849660788759644049830172162641020680506807150918642613302886383757613252465414831524637416269625815656220309577530840822316006019881295275373232327531717198838439032075202452788408491561418664921131461364116836230108996484987707509787485032402410060194957837790440534522645466369165982569953597659038574093865112085451080611895047087012490827038411029824637351497291037284518394034079627049283324896301245518385395987249681724064729324357799238610488423399572923745765025851565763783853576470482193364945809605677834170507711930216866761722929032305010691279063753207762838956628216606720368288348538796450417959705581496539439539602819586328289389121935211885647368788005823755165718825723117567683675288613532949319235895790151406763655183835603422239747752257835015187513502256251099979318912101508186933910174135127542000851652416274368731912431366272679865611306409543913961664769151872988188482204103477809542344641259725375038639591238518131867364038676361403448904935877045143943628962439985176310530553189225457945225140008740828136238935653922430492672287517525301042783646840396204058074979402374758729846167126518966733839160847960086205196698384909829522652376862134129454568866227178749567776757991513343763370698374464271942455440591736987097003624864339519646093120361694940390568063361018151098517266667426100770371824383693571642465383014271512546407271727258274310076744512323293683858281542319185014490945215514557845217210326830296653502832098880874731577725896510096231141385321767472193894990208394283419186397035766915791222404068145285850333533816008023210026296208802223653562001658148274273004104954437333347833199660919432879550667084669470362177056038634620189159932701970879937182460760945210064522153123926619272145108063018966754812460447748970477097601656115025483390348663366836029271693451450330024630493508292967682887287938459825785514679362694078248265159167167008480228801549260103023583929627973689167083535185151879269452445129022585643383949396393844910311775961356074006303835987615164768762960280288708600236666708643378268943867202999876308406284637258742280173163829877309868370075868061810437645252455352197383120022513984793807216064656775353023373905283347994114110619774789361623268666919956244248741873949922109650378437266173820622990762197159388588841431432883117824361802076619110475099748856592534540963201188970788256222795111998482602295545428404239047023876784801788054509164358919147518655189499266833299862051415176111516397434096762018965246753249045922664879506059260314298479072305854835425641745025088156687378167183116658757522145833139515162285401175590070918053574252144774189007465594337553431170857174501461816823645078237284926780301863165131918946728952889569207832499726548712029451997364159187954271011229981647484711903431335060195196495675247189846778207412813928534866752199690490963583867418769921077879028546590407200312918148399192019939070620948565358503147585282279430552157069857803025134748486312306890080900875930135376440706770413942431150818449735011753765668391941048275295171997573912631386461991115414080249329835337263699712093842410120221236645034553653793951088991065326165859475239667788055508709339066164673969150775405712958928352608329676462902429480138318391133632894953231171837981668261837600442490783923687474602346881045600061726990182798178825623781437233953828081951702781189185618749409206526535692635739996130069674876770704774508954282737437658020547307280585684093567855341341297529525824620654082135495441558203596940929868724582679265406901586981905963075012057423193377378394559266127028440775744058485100264473121627889122397201556611839587313848315951989428673820687765184796615551244932334092759730373550699605084125587562439797815192927388081767550287752132603208054065674929403002389966028429727623204292632514004155268259737271508677933361514654607856973988372329762996220421628233646580887097188453756128226650201731464147924942625014686048745714317985504999417812568440885556629776457023290395735336546208232927409200391780795395923282233808955350548931286564939443433502899211841627491723183351336754499955190819937170571243263837137240136849653539453350958758446926363763506512124355759975897272346929379566766677809449480088068224830417691677106999703421643404066039724242839110624777080590432598047056337914473531900250376245458661763408620842642899750614147559619342938312606819648834462741728126180298810716734399586934836748586184249829107563339942781322153058924983145233752511484240315033806928280555379136639784601582869655876099933896230550486201213661725518455503879853152545884245538555084134828961084496042775591261084706134100040687956577163972419159177706765309189607708179788593757257098251886305465736427638324831034778048711113638920571746242323265246903336847565184291228139025514915581305832211467542451275347854348960358482260892986222575978939553361686400942116938722479163249626644387920066972634084520366237299645313516202269749428678719950456913916965246958169509511460571113735070983225004116418414743421059342724973151178833743195842826185740357875295205741108600347871752238948848788853889142528818082680608267382032326576097610040659938198829889004409667885539603611335226892710663509520730127652797607732106727135229201485245215984016113133056820405771195272216460185160678741006602767747041547773271899010532731477684439311237038847240677251831448703453329938392859787835259016207349734679971052005704832955901970097746803505924628605015178268481407560230522796818588708940715427123611446964493460055871005598111112566586481753719134612765296268743716413541894088223667511034416487950281689893045994222235732343754305223956687124150176966495166456166142301484116384353224863239358279632705240559101499080879883977447184583418938715354430893391855597432066612909662039722998601864459893780291151877306957877655285813401089972123350997729735003076800347405156127332468087524659354411002099502287174675842353380951895955861118847895973719099083567497258688012153345919670896686623525999680875418415600468164340257890886938951767853787752651182198044327411449726027237739354029548911719927496833553144324322888140753794566330005692374179839048677084065237533537500598736898704433504514664648695552240944672298691689361251349877713607211963912532822777459010222059268085054718527127953098109918180188071312661876902286662431393906522327381032195248687232257485214910747970482017134509203975970165081943423399165381737434010339820238076706678820430085372729903813751585801790880877998773717074037514771774043477185383865070416085570019627438574411066208584085762491998724896754642127068657530946360203491275033678033960123669490552514456814027496910792794983450371520008590142137232293440439068732835553349017639300398528508458059059511291962230065805533307885372608314142297207579106954360496723005719664733697913318546822793781267848759738672569013322280575152328102064690503150752656369118818831871632455624672527815430287727579583972427936350833235336289026170095789551362972919558728110724031215195623461640676535175270995765762450757291069261936311674454508228005725457900614962765730172059147955783157961593264277371331824728514486615956899562588032936864810742808099642806129699665430096654671410919433254717726411799467790072267880368535201158932895965472589887622464341689656298140065729510945657732549535000657656409740366819754004327577819958900893031545720092896616807606955872813599989597654559559877812655682416786968701297832096939530364864939595652775896927966853728551042425743953576237474636379745925349315469464087401758054207641723406879900816627893834949019613744740455278793650802459136907277564823781622664139802184335369683304185863431055975656384427101460176017099556294475850079661853519352880356885342547271700007604611114982349416485367288395958644030031214756253154413875212830632870289509209781925637838086223240881796452642518850116328757028061022033304053872828512563758447266690368889309563685814576104415782741901181125675628157136022432179651439903234690410703077349858894374700281452863335141763617515857775522743098088543245414488890577837607243118171376424006146243617587510300627677332612147508937584577794471523708492785589169503860235320523781463850876964386298245222553772634694982270429239087819174819807718321970326786716214156706485174268146101764876637199781690049506431211681345883093320164198938803871621448164424311575557003724794331427114952965328530752681321654314226608783991075909088935996913325667496076933328351131770678480273534673937359941132083073889990867192043137823216379975032981234040326613557544849191560825629860421852044536589990719059501220974704252524862134357573022931101704459386936315214435431169462354706416638261292154750697316773381687486957416720312656084048162757870864675169310545883549602490237327425478097508847678677487702088998782737938965990030426591727759130177434117526957286744250236734175385330418288587108021897000582183394839299282868169114539055847541646836125882797113154336944586209253751186522937067316174814592312125573875625623618705311034073756457381008520819204124413199678652355645257354457584709118007531383992080426414123983690694017783364141462374595981552034862753823534542169882294406534456817268568849786590047920666355932889618702093969222469454668627976090588928174045854584879616356781695827428731257271355900644522681272929646114029584097799506995975260208151298334342767509202551523846402384152320352414696081708769127960976051802900923640541182645460292968839549262733741180867041658326687219191179392789195872832351895818858620473598282360500331213069246931368702892746317933385701304388771308566251160485426350760732149507864247147046567951448481663560316571136350811537121243980592722482557804346667646498409830759170492831982145825891112589991920377308535644868447292651354460208549694378466568425967749080111045888185071229335404705433886980942593929268174747519572514117350392519023669766526661340987096523989924686265888445466915141293098572280909505593343467702681814356070606112893593268514784126820812809482715488028309979055343684443724653708330939486745112303691724198099940870991456160703606113454224137171755421467617517704779519899737214713784467797066886880993148198317583043988552948287557495451425854292215762185986843550150034039793520734788248015509771418410788404282918454665506253677303088640753117330216178399865069986754819505274963369468125760039276589497659669413133211715116553413836210784978981788378401431577947925570045172235244914526133002340545487591118191817777976409368925865463641329307942382567163721978421227993811642015420402639796916943121168691505627105830964529571721590741536884801896246186919139457570063101067161074647114990140367820788870907605194854987047069308217286520860492847203695452642187862508932515492390854925425929637631188419752826005420442758739162742473594821267227885087266933147717314585710300256684708691967685764552419968412536123987956530188761828136284344009937422595172928803921130068514476224020731327372924094290627789570848209991233649797134557593534063367507094444163695213358123174592783856757067392274890132390686381374522085723739051516218011244874544054357196487363456565761207322656396895028690195293127476465487615289653202879920140007848173955084888801598178144218094194483056894766771025778130099619072973876054418535600316318818266907163727147959924173562993101826933890440346752762439367177507027555505274159576936447919738810443168856933675893509968681096297554444589579298696435680673940113889514490311700377545488325470919907504733173106808036589541891058865634485270797982754435422048548031543611576432121741538296403964810868957860439760887968420537516625278380709433251005127011654626731035467798117306511725292938881006017814158552148244514120536353013499065109668233198689930185966754772964753574212458491504168231091519935575030693086636990616127722732474503108533978078854197688302808931721691038930728254228269221987028760403362039301767368766235551292063927912316042969678375500357376111703199201337884173078642693971119809191514029505821063611144123463684279091288519890597881887012704280948092231230895471825976351720787462950080856278725996543901194978776893774866696577589020507443698363303439672725706259313602503317885577321170240830980322228035613356471353533683583279999223078929298654084575499655174949217538916202369125532812743139773239282191024764688876130863898567766231084810939765230779585630137752411086878701286805360707750742488856088790947740589332596915184915263310267307755089057016454007229843238125693375418444976401356677846346828565375220843350056195960474593960984013026852497227459002775616003434075392635107541355165287998001054063272483360012204313388798580701827548961276441739689524630413522228395785716928484898934733883948865220352035247336923061240409832099597845586394645123520372849707412584931356367936133306592296502515392286800876982415430720942750742803200334694962114209428912075027510711454354564312906190450119096488251346377872468363845529623697598127841593050726990655240966533470620941140396550445348521604886547960147786522036142438592254986074142463208933737127217879831726968129934199171787509689996770908537643539486500306643638015623837542337511051577525164202757161502821203422048562120517761939733730372763916100292002385067596771278466351069913228893328876563225677053024879822763885148308850421783082803156144611038417568653842294028388232537694325885817956896153901936600403573471484582111549867948383032383841929060377593738950179162933060651414803554161133856896523481171649137676144085598704268117849621371437611339128198279328169323195091837253525089414586920836376058827935239709566203021466772427890423928448775734903072975657520507209534027552315479296550361055996334207571843116035570577118857808671019272701000543884076599209522923690864482862617623114371297201170381588787833951570760666889326993512091728523034543127164655405535859883723960788461094363331408913856140643442292353709148284602120564961678179505885901068014005287662875673598314162607183270844029785144506268555802026675469954027821179988272024765672876089077136103271773021166629973319746016920766593928964832479978437075201529220944600773138106517312969408268218287401417356256996990088442219984981351235891303290662205823448809706760867465750918864248849982833167195245876239336455462901334605276555474043846917641931834841742414554616004224549076751746646870954906581126093515117767838705475447209595961172615121052689579804006142196658169859916741885756322808437191901691596445247107512458516311630436383286350506061303746870663579009282206248609975807784701807434254634789906422839020941583994837936887568195044286018183952656855329845354509680944417124677122952461478568988151384078399521207245852604695690254694593684244154288200427713625187778152838296055263426491562261014832755252587228058087272453375964819440248424583233817556458386306700112966249218215592727491551221656980280558219426459700133355178895282451500528247635355377008677870233344941220438067258891223275187069500983597827766885401300702483149539541043760516578213747466010414173514149728892098397424430822005529261552350976021836472735521979900268296963212477296344156940713091851483803616296230687749062307281253034328769893420119603806098667331631748882328712626791787052797100958286407248483442836102120815061700161918070847925006185698625242422112073767439334546540886999779517595543887655054080947650984835255393406152993270718567697907132896003386833619448475630271221558869374361294600871806960987531604478195616081062443959173865272465226582143365571867330499219219712508161923169207200191992074649210289657835242739234380978519060449009857172624575138994893832933843033176605544512280299975763236167324807886737455276643911736033183549719532773792286366557703830929964538022889133953675013117104496633013226384148154050211952415585168026265392277326650089871407371712253167138435387587569309202398689593238182089201430367240894551471496568478074466966918900384565442447810410638197556507985020921326293598363780923722452368447175709440469249735790080395003448453221136746179372749961324692434341842312180965794637308098613067016492288932411643157355207439732798027975327025831954915344943306498680301244275580112500012907741599371525674665502159958758840852759408081952892937142502383599363215006213113575786008511354041548677996854082141810821417000390215541599354839783747098069545568950888976697326584952302667646987121175556443954053096931249910655630051208649977572264960012291095452169612158965742474064493612272161778812603630657639741351605245263646428256346460674479870747442238765587684173387928306767420830134981236743803642617346136901531020003528327984932276054387150968308364330761269575972564134856610850923391155831045976575077704952052297356443293792832600802176530189169930158787760031071746002498963358939368907742919201232781116524790677998419169604904893871609262228188951165066041199454630025004305670633851116696435516834075083393334805995013453362019013885789916573583361796731801459039642475438247677413486193083149294319923390899815672005231628080838411296947925843240542071885442351515212315306442837958592161093300510102489663709174691230380781188451693094695544132078048440335547110048694125664148009035738479574416939460179486971741651509535918253342620624888459894311727386315086727230778213063432870741849351075725285619150610551932252010917914244884317943257231282371526073551932052358156199611513905676968507506380277051524017992765421579182067819785179628394915201011539294095515524969875741784570135531576081799401175589742998808300262865211638639330079317883351103621763816572394115899170737854423052638646662483787318352112174711523539647591907423395606500926756779937378200988928594219564190622566217992688142772760225113494142227864827407302124876215410653040927682825978818180780431569131905902061851573620423511931896521255118511509964697434490063255061508324739962232505287334814728491830806063052030680531281351039896583810365595832267099490677666426002080899466513919653511694335781092843791000995785832953291790346813183874947684385730885180632159252483684609896368591996859772626418420681636134158216327008819620036779314759558415917969098882870178820449804076585556298516334876656329185427204728695467777410022415563677773674709777410951759616255903288803307963812731254747403766483738681895033589520224644575367105292759412032330679719351855943431582031511903472031086631290981009930394532651590309933468852236223014040385162972763935838841682872559831653638598418983243374514669864046712425773580736913368081696830655339193496638122692610060705602835190847116429435681121405578681892512873642936731857625257603545709253423688433766907463805371696085734794648909416593197994079082342492254964420078207565402880731355038571946481284953388591251906743600397251158739514208465937935829082802486824911062099496093224662059180310787713337659575720448022308477407066263320404453263046980170532586844271110707219521852731856045487696604064741751527176959518278955435027773352798113135041755753759889750706454294082249997468307587757009440936676295390526451994774589532681262829621944991074397059309537247648047371252702106205265264273112795654817421355925483340330506950817844685521533880056170182265955572084241280741029294281727271618989885674413991357658924956145884912516010963808261745363060149850887516530438901234593156701390871882135197262552581886817151860593567395725176334379049830315776938304293661989103750998160119445783191097243631991487862174810276443412556611584223318931616649048127926423741262725745275595426691456475204662005784534710463879816582231992939125068991686496513701302447489722163614505812225747006811243374547022450634981831625089106613057170501553119098481564648091558804866262639075273084132016149460108913985686716657680213414718554077790449644239880830584277009563816243081433931837724145361213217234842568262761601949246975656208752084967903019486974557377486962553078192161394957644690744460436078435964601262373706433481971902545008359949750446337534395904388240165215211278006464097313037397693635537548047601515680830293097313860696457467790831977443487487596138956271878448947630297835528682485998625963071544990059212887222874408872917193221316111667361842394563167259243708200941138112795071178317216730854549669992405402142256353370619541420165675730258884552704514251066314129112416368178162831328339931686770959355573658271513983466839175941274501756195676666582426866163342849818410177459243090086394780952609438773011177273164737628342530054121558636964641341520562687535059184460150434780636550021115124770829907344281963192366728039011572135401906864258510096417488513958228034070806951383958085014847444042886695877475059321259658404096594819505497139394845337840369170345047379925142248352788569569290317279004452631590905260208816962076201916321750704832251775857453004695866213597978070034126052442118865813393713569649282548909823589959126392447291400482802083362800003560559542169764149251977349584979912720654822500266165737787545231565661372731135375608383294739467176433355332967135395529295062285075538049987694131565312331643643780825977961153228192338720853839623496308056598295203700079997643337473388384740319900727064706952666503762870118994807153719418621949383035625065862184665652545726281869567103289125220499311837865778007248668983855056591816311185036613560669913069150399194212761924222170657263193501726343921508175689043779068843750309587625195268154080526656145047730964183297619468252423405553148188372400468436448810308419126544059376207918263461746668517104820688175095829322027968167829445536757971673492054501589799886351391512123069857945353458406058657528554892517018800006868106437426213787280189636450247430025406293771300422360084105772912262689432768089952707243447318924202812918900910129473389174999548850480370216538225549415862066276895521030774300865805884354644210681510846921611876903072272754751079037588726670580311134896934870926928094720964867674922777991291093404036167326384054585857347412964106990181229999540780574100602859439496219943287573923528900788282762856974929726627511261550931562998086188944914869728845878230838327886237813430508313937937264360644045220756678385189140970224353015175810464994419724108339349652848261017711200906343900289285894628585011921757271977509606617749776711820908547702673301784468162103590328779347736068853645400252377547965815539790563385251229262850212859096753847091157518703176390531927097296672542573963782909394668925902435905904568042178889692694962902376875467492982685645665696538325624849034423460262853767647427829731136468351819706305424754156938062771934455517718794083677645919915144210253773973412462813462262629973210685517258879976709428755744569961240967876652955146691251411178222017275792798303142983637372156226717169996412962709739758241855592253142882412785384891074585088176305401154758838887184681400426384226545439930662891028232578794946280531847595236838417867355675634464071661604653022172583120830896089496973367946633688405779331836366355147672787105408975296026993587837573958255724732785813025035715590357237163918406154744479507809142430844183770154995120424101434273460687945030098133657039983731390630406911957029821262620478716472256087899008744768192366775186156209378002411926032062877567889409680510309957650464831760576972718292345608711953754915486373727553709305836891577243793627324897131436787878172891322244066530421623015891582810641629583580578061834824927998507047213740326985332488647828421866954957790539603226889809107958485756510892069303898222461963083429322443341424942293294887268099912005637126952124230801783810061536665248223896383185649296006385117613208468457931927462598926627472637431699687625281807922814248659756974075797670455516920215587544262651797273230777247982045106506941625065525540537645656930209570472551238443127023273406200244905281611669395596822004398821953489041172962719893615730171772984530854412812350448762151467967067640885557245284791216563342185949358855399426554719905325835672040226193561225551601077600914809655954238522755238762819920554287479330101405188213145875993037963058127599490272076280478282251931723175273513457271126956832314488562508515310268166997727305899949996413302656866722894899860500474458791525570339362092491286875129990481334554322933344460631103959608123037341730712808676912265476857425804092677196129454800799954695422740941684564930937624047595970927915620677228969015422983135286557825208825803600975917123057850617091711659863012763474799172942947602856389961489030516789823204270711743434561951621965266756316404531477031479743972316165138795768844102524861526668033242574572570723212161485883943949204248330708538089803147294357257607355137345252924006952614853497090088356073358882383864290263553366928459127234120123434599353994237585564901022764256927414490027414625546368218870803479973833017941177812759997720346413802003728626782764409578612763846109964192696294873264681473425451017467767192100046769279788285054716583757253363055362391722578979818028169919056688537939060553085583221520590976094669655639846388022327395007476744539298294331029843593247493646730555759323106332948969318878415288186731945104998057667329269550693145013465592505857829564433005289563892111193931041653277738818093952725000094815484565966815972338451040937757322494110049458611887347350818181394451904429794211068879561398037049219145086779027639878234816996301569105545444338543936589759937354430657758539561723018725252342117583819849216436096045618171537273334427138292471933579776892862028917209142683346050089254548728802164068182834535290069053318664189468886838454987995131819236939378856385725890359959293794328242290957960251088793795482554401701003299914590996909456547752381449865986293903143591715254483794469143545425453046749085922447725119765767384310501177621275417670118363724332439663372383566519696117672429672786624149159888018539155561632698071894989902131377237768832534154556918018447104462597127958081777626464507270331752118309169399517414930908793360518884122011257998935549308048993832065373693523041159501735665097823438594461276707561623729699225306441678278143987057558165562274136448091427703558669176260763344803535534464963743363686470895019308694889700503974535619238080990048973052902812741076923043558723156394618047975443331287880990241149534471934336674203652057642364982281987405531716511435883929601978759256518310644957508499329866320093839878997401869504392762631116282488854358750187250298568106560044450224847875232940631973096174244607881249254770998280421167269746236218037635521192083112652437459557003423238065968313590982000246508346795994430617055939047893761309705210973581036622564603858727156088776019755957858305789256956687391345492668123493030908102538590291982386388656483637393906178015050949507603745377789549440688652724123242352038765027918569744981205406127428778659597786509997839085419236871832618938062756821962644373801439003466568093159904538474449538448362048734525237830992255313645878681859932352601342507264457810122213208111764078478740325208835608187682515233066212187610167676567112188607508653998514250513625474577787068189907641120100787264011474456522502498560805124693572034667930846385979752998398477520459722488341347598726235697168719571610422430081995359460251469817870370888468764746074809990271501203184272321248486512289761200057529321535111143659549412769319180447249443118630401146358141834319460859177071933343586093503111710830845296923770658479214052166905528196308157651934869602144298601365986999977165876499676609192089772591177174627517917315530314510723287285512075978922274261675467550045716942061898460549121029312488434186435019732011179116812994754563468198927917407426642835051482921803356007411393401725096559296083073227949641117293372171205885768526261152578753803560197357009857405827444520944101766407019328816834422404635526560863791791750125130938522494248945967667705817902788259687707037021588989547398448635251123409545081735505714510518192955124038032939333401531949015332498938437627530304239020102649808085539844805130223163537527082338107841909568916811651901746302625557560639559555324983198912124503716528589390015462118170468570967378944701631517582875065851167754694490870473776666002573247891954835299129582739685676096522026371516657786408015899411937607801410001621826836810466649790697103947877331648033890760632297389402245859730360896802138959380429662479067166391442120330229932083421572134700542472349303639281511305066037316408182464088854303771987964431912427976721437715064871129678947199723989471501364819168191313128784153442516664934928654695680353530038353305378686079499667565351601903106671167128233258720269472915854975843184040403628595756135998092250812944153475697925473576327801178553639393254516176189429903989408962620313913422104481716876198020601395439078910643862832231842687264264532841806596853323126448910032101577027854353150493538101625322241768923881567950217422300282600195358114053153897747049396168672398913628692093334207599647380061342614730339534097035500804985273216997580983884477962754082966107426477997468930270881592165977429598700856727106240069652810082322312369050718631445084555773409678378791719889537344777613144981794139068430658281937432862262262061617625309091379287726429847654367223429882024913741507401491349391857132704872608559532613665667169496635638597090405012670965190240802735151128062683481652449676525102184832807039724055078385106563938247635944343603316767063083086157046809136515195028498530125254998363335720791099904827117716844536787655347629846374794035653763838030000428107007859041985710220315323990522465015799394741188531360047004586630262346781004110385024391528721233506102131857594158717018537288825708224681391669657691638436748109780879574399862383917816813408727929446213732576108753389482668351788205432344638979013134850238192814124331846437477872617734413324935376130178785906523495293826615435121349825284414004269905121333430258895825617322549477419095535392468605953643698553016500458744734308182565531894680276098536740374056751517474691274232266502672543853658150414878629151624433153552133074344777498093812172943675273072146980277822000827777151542361818970225176496503461272646439731217718547705962331817707301684386154655346606215612071147924904799976723225155171392859233755536322454180631489545899465359069708534190162557003024795004148408271242071481184378648766683570978510120788584205226025544482358103232796715248199045187264005465287211743989795020390100948196676733311998441534172285929521722466850499322928842905310469506156972783480881457422060906798592926238006704836466466579751874867814764227437867995534949935404990343961139954407161754662534172733617288549536682693518797833643855280063344135039324127041119345550170538850800021052952701836146153331878901107522978201024817353357789636651402281527360869746045225260845961813112430053358749702389279401906417644518093195396253227745345536782660402547353896310815178201222025494540953859607806951435191009082176613653336144959867005886990496523971276492484483815267741505676125352294572748698120307358999419028477521037572169915866586637241894602896160704740649752581562352757452220041708190304982548729187362085286823271922779980293907593524760290440301562340892298421048015012486395091006074478776448667742594448064461074397200331078685806871288431852723011095311294531922611365928820098925921104662794622431055311983474081517959544320725998438588059881345375071347494792514680000291928858692327320086162568594174953460565955444338527200808804696519608112575556618765506190773398504425138167713160528608591197927085255596026737273254544083318526853186871113708784468728797923480429334761594947560344889387853242101033270033928708841071019863990652233670351966208079086657410195216087273576178119773076606865217713286725834338068842968514317365451970797771962450269334304036466997162212800564517351726459885561094511865196020816059368031142286133267645938638359133512300475962094554640311863958408205594159120163512350921030608862896929197388919756224713624412973042032861507367593581461392890307381273325974546496334701841463016045494402745488810990814626064294872211525052501161067612795784277128853748856136039351635952141539995049178183997394469188172680111703154360000338463243367091172454393667860077153162943222920772644348132238851386651145638235748620953370897480469086227871474648542853995810378886429656259264417961925926821727062676896794208226098542464728838559585763332195540620647019153818252474633065488297354166203585142464452851544837436527402650355259562517292951041695558630876626102893991816808603340738684790579710914755287556540908876061721354190520377764753907989922005582552578447450079963876071539984874287823591794143344117818668140813380922868208694103555411558269910280752714156414480358856276173072199793127593700815791170300742986928560716320620942848480100145384468131118445378841074402139759632655639301694202091688670256049826842659704473864458047040151970729467020081568852281595829539901871922443606293485674925376004402459850563597329112403887052125994520547479924903830058531143519534958976360229971027818168918410975250749883549270998024288470910850070146311800243759695364795401491867450469996269939837005543024197860298104222068382638757374376864004451842618655636668222968620824606682525602877696688162556302146011352316253654782927723009879680309036344318245684417737270803493413699356664827495627384190183376866450999348387238477600278109797622046918101468228163405979661573202988776191406178350047145835833912150853311743609596020665564096254429833309153393656732425340883229901652242230873108421097487176680718697591987846995243295022896020041368432300294054224661346037718882073273679866303146186842713645018764861361595219886071823644237401530142707979585722677032114484277942186387540821972859804160013309862864461868865762237272262672625937128976476500284412667867292742431344362612155886429579533742232686720357732720990870773620254528036790798021234000765933498089135293329003235990601826529440310122335490363886928853952354226975549464045034022778045091829953694979933055418594110172117744870452258067064617798925954635211009875874926494600003038296835373569681248149226757413572164778022161100769254900446572404727790763270492034873963946274325630076239695790855579795984500121397697078239473968215659307484210788668481532387226412688720812411960066932396662584988350101983613891056110440657640268118449882861717189269801281084795069183835998413579070697862904425657253164405372722183879529451031350918696732195467293210778803306167353738817571164288551019709215221852949720729263500081006271071332815253948115735473563781541188180201927580399137665391968725156502620646135900163886445092027089764835787048730410842198931770045008635417665534375519871779953027298319557235500463745696177756305230760176403028138995436256355085691742612297819122384808636839845374242172175265824888504614994315256609326770549211714353772731035555754913619061633170184954229415418973283457720347250974709790829110900333653519095800400250406264979999760565384402835458656633238683746748026267022945371288413226552492081169026817015497759956173642048962954080756234217034536189849723420947519905612146604865471751947023250163057679597639859803922360775799558938051185137631915072570443405449177929022980163943811641559627550747875543122594953342472836221616321535223295249189807330551205775768086427066772290691511788194860262592856318056387760799252381743147621955871183974024180739209452176956980914928552054225170727980075032931537898823500977399416919416815867492442102970977832364857105233894269041566788260113318891647040557103787277817187012328989624691844277778613142454705130467849314786242390419306837837147407163504556532149234735862679249174856932903990209592425621332679708027252572307056681860072445072874524134898365921407650777311609288852409124902019695767924069368729912760441658806384673250755264111523913652585680649170238797632289037982926816564921419684390467607102269068036163195939626842443319168691983018554385730890896745506505818518752142044782303427662212539579268696479492026683750567192158486251127592535241100964893104720219849541647517955038410566519470992356836913047889600520712722357939316065991776233879612385109390087268576797303812974876100092070005363121808249653471808277652934669119134882902417851091494872006081332599973648479808551984534631292622071599070217175835580518190060657256142445858864586702274517496259584402018636031524320755450797367570082042217496673423500987469217359365880237356652407650947962767832910377162163233313904753977155028324746383671347603952708574970496384555436141378467176032787236729267565067011422805682919204964311056700969136732813634920133831902956215565776840119968073428213534115404574763697223336742567411407752447724425956582143786922913972521177326045201812260541543141771829563407248768642920092394318246114755431137810641815092234769682862645134492362263555406638614422852078030821497274020527331410312709537743532501292584028547698673473695414148693877788254149983582195480078723233235723129303662961480844311001162484149288199204688567146376587480524471377308182435969881774380151285862920087905446864972981533463989090311385403614204989646195006520092074687515273772523900694054265916867627331768633558773881222876034928060714322448768805952013440871714801630829935882709821600373446413392965606578015337136170851352478624126775568751707729272847869143629347097152039819877602561617742852157527884415746436951203967987107895405840519896971807207947674419893896449880180350024230824811975965344511316931978541916136617520762247364591210625600076049599572759001241906855761281289918082474954746707505221125932404755104566062975040283141798797529359512677271635758354437834596942512590000194553412734671639544086198015773284851769372073933725544944181187897208440489927334164309610103458309390339501672950717483423536604792595035601573151784246236567626961860229164870693009829423252375905376079997265484973608611633719876110336043823187601291335766929994054199727746701070827340540487092158796543012825451425033561888438869247567437631277225725190528716408347020096299975207263341088979371239624453208392082171408882796684453164647012995437822733145139568938404294353047146553135494200327347782731111653796996521031859242385000926146407330059161309208372064592520738155196320983975777575346108468256391398927993399069272156036104938590563628941393660685951392289278203408397581542064425731422305702986544186770634531489182601991149271788215766969382757511045918876381509261077939105392110002107649353682383800781594211398195938042058153851956236080502593260759497737213171502325364609857479092461919793213485744776667329424100623500948899622855348042243866040807089881552009732447264741619515852398526346253825545009534329612657926319544342857816611249088493498176015177853020099178278297382557420078103998566859942731870129412884797614724600024456843998936159680109754911266984205096560324342929887692001287537500508483389303853112509738554527727148037847190401428370481137118818750911249506438074367121255350787151367823586750718790028949037753069149428541886040300657551353922469371684916054750983673092060633297508735858643227328160750659183255579736158763558102240643894815088819662434084247492249386529458187800633021980710731804181870953247048987388245235252865135957590753042508819054397945654908028622526107577580433389788031137654186731176244540809397097400654001849020862865907213079059218645864782657489594846311001967560888164379213580816658296622679888305343361247999430023727336881724552175923532896088987346842297296671879073128615629972463858251470742679154624494242826367699032697470030777768404173944659147521237138436711151646918696159718562789876747300768210257034115878073652523891241294699530767164768386887616869931617907682912516706783613341379884024374291110077217486021390310804093743376374873634061635051649759432253227924471973448318895967875038310407804559966681470501405842915199539492066767645651345844907506037640028859924484437355828642329449940020757851237806723919797223720691417660054497013271843869580746853955276520637970871405816306159381576477061225657497154786353039833855022548704354917654387101707767567649361990742331351807284274457759804833284678642711741820970523877882278212161438277263819356139837695132469236563476987279000636346014314925806047341137587938437564030208847944556268247892394354165448185567090151223836152664260217280990132099798429873235346566892544970887085648038495983492061834554508735422500944146326488837525145291317640160257087008777935819384064534180421213558005543948537559490752812156484385597373422415841836092092965384249593209568294117229376277823192034927277113450734687986031546548522109174718430897405216224800987566825245261283138808201468017973966992234617215820421368542291798468796070472396408293412699733892055196915084325030824386702849933810060030231904060406616118817533381436850639150514643607541706437002100763493076690048725339944930178411026112247726429648651165243399719220676030660732771832438873476676592159996977007379176138878847397345911161025795757354581086212118106858388183739524048128858948577978468175350242269381490510947497310368343972167989115074975045887353116850637687543904855880861834337363384303494160921239592925166607194089312140173006502322146465619711292849704323944342700644015132828068809785843986070935037293541862905876048512659477013994721004223303840002563310988884917206420222429394507757794800449539972680990489940347225726446607809073045854182068329643183236501059130270732967131846178233993266901249557053876521349434537919035223168191850100257933138687051653180511806003984840922943599626135872393768142609676765333814834636929555403110313401781257435627889404535738623094375407740895043539993832033040731343081110608022779837412398276998301330933111808319462238012710672827115903539772584084573892854712358573755481061894968736658035780995733540974080537234912177527375776999479393550170525173242110056029113018484868134647545395545427425141553253287595426791890875369758165563444978782979531774716402203378904231237920920091524765158684677922766094145829080526711496867484875666079378486301515815653765803493164246057103486672890076346502539985202797097146401746880610350282734924716469439049806411965199486260780278575126796307508470374726199094823123636226965847095928036943398012383623044553539510864235994338624605042031418061072880064377393244422230039394928583077432159076063990223153971349023138455560417596318395072732191211886072215513078581104319815927918208797719871938471946489807733027866963750204635692198779077602055006527046976152765719221485856547070697099525284863338414284568314484533623959080775087587188075403901389668800144965695786044660740333542352702129753099754348747948291392614828959041436498955343473827628266793919259240349237326664605523668835910209145845499443285115345376868622109335836424263791474643137047364087580264213122220082857029600845865642178056037885334610354656684225229792261473239013480549602573766848187623110319059131235166980584099043581788609433427410511768855862294127486112654614589787746892899550803935695016073805218029059810243631256227281847484270456124313179708816293668614254409980429903426405080120502387805458522036182605575576459288161121376417149436889629837704217650247718648039390016159838325534064699621202919148821803204421660245591631990299683425124328537276611713345360917815866319335980232952831934828431062735130814532745567414755183447963655554837826303619367848051837950828568534502245104907941272500123320080485608206773280804897804262463712052671928409589444339255709633976976042126020122526225900243483763738914659891177642708296284448760653159652884994776988205667475853357973636892020770142497600429739972430971221285525105361715993104593020862347818924620527759809313687777479434786181915034711109701816321018864597447246304063310317796778339783259062299530275369970674712883279202195587983856829431575947501623218874378264361605182933843007453849118434978423422170926250671344403421172544143430742809417126749971502360870261252415599787793236017609509146907145686975199714167808347919410556015749047531109643969345692755525817076565829543560338506437119884141923638594366870798310154220973408879177403813017118404205913373585526577830895366063398398126877083020786847749938156692043924676825913882541217424160787789759025039134795370691551797637361618021766117052106020608711819012128809240890881169233672127287611221375123790381164311891149948884873498484345378149601702760477398170152886703149318246607079137017061508266312912941174245306109031459085448085923291874369011634564495489084173769356160672094586650679587918368299318445821567247178556336035377563771833311409436951928516663101792656511735976401779973273786097209895007603252344534333287099709434559573880244195379778215927481373750039901593720448964787867137386280840230534686356166523398758654606923123317230657073517275582152893492839825861857964981124251597796214311291434581103933376898178387768394111581323679863199367545698033293513296532972502187220744837199979685363339613433451515004181301473350956862010370002340729549169490617510018926919445433164284717579773015003877026874922107813411070177560348202398119292505806370194831145325030477381069520479693962948259488186185719339613637555478416668797060438697676799776866276867180970608430100716012669812714541087556591260033619012171727281134650961103650138188965684737313230695762721859219988420374782121316249732044176850078387804242522621121509387322293447620148830534587662926626190438424650793482061382634908989887211917349004082219004738850884849100958808293666989826416529754707078633492678458032043493505721264425424202876209448460644337541055105585912164495856034001867593952881098110812379029161391326365807307796668245279145221749803727267356208501658247022030291148203128243492117034591941661950174160442729094566180190017018182010038361424759380039786745501234885353771076941730977694935647173946155662566353298355863052501075578942797842284289670141254317036500458602619240509328173617823212204296678751216151531050445265173615934073947107892906343839808510401125976877895037502750665161817620957272336490472388888490480571598124567304083623579922758140368399457874150312131472928220323092404675353511446163313491606860286937850996359130872561146163702566242128074268175431401887779855130184323350603911649155130567998995319721243400139138309153610011314757466926227147377591605950331691178164549083976636804319661629123201380660877215419385222417109611326039532810143668964277772686075510790059073959391911187230188437709668211203803383350963334226747541873538279926932849392035817932109607105150087677112039211327402944962936946207622517589409285709742150143825162706101433755398256338287993373764786746744731603012398812118866414191704909885546141425049525748220122440759086863950939565538795573809295331011067660246131753449990541629766409523078499661580485751244579567603560902504624928188315214612239962074733843793858070118208518697570930554841993369836106680429636234530609556357198097543578932848867061504333525220341023473703147918539395330577097453788034806564358359562545874443292731995122918752243145143984210865018139066143605669511390874544784146415767807236962115444601370377717049315653889033239522074539934121624855472686097111569471255177876574622385143389654672733641568033276035867800118834586225493838888523384120647819791915666262851464475516338191510303167257473375371497988470911364367718441505154985497510453430014003269574955562599005217308628920866422207094997306292953541455781860341541844649134422952450818908136206932231503212708977770988594148017488874088862433751449537621406639589998130172028741175666422514612120911491535936049254607970461982243275821607346507988044217819080628306678564881370013755073159392608996675876562508397609424345777444143624036860491212946843409886374201912900442211041749287599312212222037586312558720453647616178083283695394651928053200590864355627712730863481592286886917596900647179934573474419621851582125908373573350340428687529584379249458653567317430838249767390171344120366713645312582983300151714918177764903653004903875468095390494513151659546430495068597835569046064586015975916596120324536146021098686914285150156988433873243359441077191444604168259999050981068811075647102687136457869406272625016497170773658017449870838978873061081848475902911330474924004684107194201051320405557898257257185997574032085317803285220967180291749917455851188087386771246401936905853836285006787839436060319370406660291888757866460087660758130606724257490798940330911262359341394345307105627442349455325953684346683879938233057108972986002430164478041258866876991507661702571027532681175011656895418118731857569868180269777505247709232862488773643734407442406818715991870660961533161724552054246030814154008401409844483908488024244251335783967351050255314528548485588334424291761330440477773902526899550534830690651836231685291959114798172006937669831133349318355257819836900020026298075629246023642950797992165171283066391295243338163345535211020053002354494752533688495121559591647406957155363494967612017563703345456326384348836070280741829967127332842696601722754082253458233507133491072681581199892833974861100856506814035748240850982582500910316091511097629068748146309922110878925480114609756575357629499231344329751091637255769087508583730757515805542999571491605762498184226379130376699109778130529034579123909527841538339255785699002664104537528163532774320893276902447168342879182729576403802174312944076659578099376485649943473259371489742748787077430345853790438308961437078699020105319479672188521068054008646098574308320265230756655470992959576149197826688056043218384667287456151781761782665511898024337575960180077904996687282200234514341195158145748768496209361794565487297527372080384292181253894742373595606073116997767164626521813045795240551194308274438136167517924982167223777369989405335606298687726603236850191334119124764122398434085231006519561093846367081128382134178267806725687090359043995410624242182768536952566663630452413286922988854791813601231530919038812780401316101492259527644228763303860122604010407351403482950533574641984884702070255833197237664196245139902594201714742364590932655313943162215081090524776002112358225874550442922789889226577694764142464151898012971444665006723166197040710220584922728526744887046054309280469390313306306451678745405496508450455940612543848472917609461022155020598299941193094947134216294292891511431366755123252622373840526931719559388050030223857942632776687062499239543233070515756596638062897459181270376796717303441105742232759166978907697098585803308678824801120123939634530924310572307743025152853509470183839386382851218331900611650299322226406508988139291883665672986772873780986472651436039611035047813435568209487585685125791180530476314452021754398413726949755362798594801318602006242950665744773032959827650633786810418362540133863871501769913435926853481985409575668541844397330021894801480897604449781135029886493257002413372542469764436031823918624260349499020998742857132033987893798831932234815835328317687783599709389031528618475477976353955859841216092709286907692758129197912294544904019456957793537282086757861448007278947879850693631364196226145242107048754194990581628272577139289810633725040545394953946671923186970424588011841783823396102060314029201318284483141828912950012749504877340751481474859103689876028039602577015143178242710762463088840007450940438269787714321278678864034058888315683900952582869079329331704249566177241423874903040261593578045171505402781973107756445222867864233349455772535346426287505399431001237610243807014855054203114994416311681932089351816977861581176073549160181754114729567012058994299465585401713008646294753816888932015085327827427077545523316160786047674209797644294131993352508395835620492359569830790040187883316432122411660038380581264699346175195368224319221236174652609996413007830008416868375953856093516802301468971310587632376901654986721100876200338291342009391370584268197411187664852810824127796914643745025456960951700206925295162343551616144117071034554803614140937928917008936534094791943138889572606513341590726374172522676588877677312560665375398803492078821317630242643145752693168839926740029229723646334641511532258346702301551941643952206323205347230335015363620619909856758452377744800256866112000160794182573290666064761034150403958445900723816741085001170517307089427950745080560726331546584522276515245726180207680540559152529499257954827658694801734727264897100863239504987970850801377788010139112674848626891145234829717960412037895422354268409512733175796251155510886734459499493878112016671870631523358153694326238373234230551640080353263468089619941133108337077776711107381641449919727857359491367783054069909578850734343538675838917669020144313671316962976921839129166499759969649258744758805223090387835962358522532766048403833930123438849821971284431871903594085096269902619447796682624276419457894814199368742425460755409409355549001791723081353296912933977185738364665350548083806617773757861886086907547848645335700176192916147062979967022509691389722414773652456598398510743934075823290832878613675743811291866447621025017497534862086711800680159753002995492816924345878325818402866195627639066712734919575577145171984570598048835039123393623359626704276804745048705722495829204513127643846355172096375011749558974626549344581744627361898150954458007301942504128181265952555722562556146010391966662551319130986523606763827661199741256618043948100597896706819324573740196231666744181407965669571055910933036726437332338929562911347680900218920419013426834596723603109696482178422127019254908217911765518125228520928536515589474819020415030640906229594615843763674374155650087629811253842532714979184874476919843705986613244034278142671077059428595315606948665363563644914393034334512605064707449119336637658405911995141048469829342678983680699521257236872118551228728584356322112287685321557481864445691072593978984786823649089445377608038732844587604863722758535591121687176472898621203308539667578188384417245661932040652760400808009405240855062355641188680397982686849647312194244910490788385423121597894117743896913613882180169066190401625862731730160500317068013945727619931095255158122677126594631711020398248117934691742560949580900339587454528201824121825849461845514319194693678004163121051492819136383540542944639938325281176352936851513755074026456279592581054970531105385626072136068154503765036938955254802353119376939422898220755639314834866867843917154624056833231795009257698490325502084559064831416447647097328058151818847374154803247139435891935854148763958141663212813813146120763712010667623532552450597927378560429262912203494157609025637989929702636377850731309769388100915860968859284367929721643727315597442276141354074841059814401435006780802569684931540019827197526320187428869261153270635203689900909548603292414835559161805595331027380556468152391962306804454797194064682878985663975737720573065364722590182426268930976277536198049906632811143774484063063751289066481472384753840895391961404491575587110961591777734067919966290544877241518245830362741800894093463391550887541332722575044150392076592306575203685890279819236622830974300818953923757772873149881084558670334064779904000652738047109132783814086120405851801811285654266366453628595527054096460031972359097201358437796553119688961025253369381287174441056206577621339326210804309113432910010580275945795746480047588563164627395167736503414750036723783473210025079688316276524169056520068891465986848340433615314268634528991274891973223165905831362330396253172988023197797529801731087273734084100961857530942265980623988066313920757543244892520918111168106815249349873870493395295977732433001962882944379396192270618093562030457163337287437062295023681230403977170694422209665679399619788199706355540379991365304548259947350582871629691015030547334563444583076603888601358594846332933067001155396490141292307659306314304814673916072075517678264246271782673672843590193488743057415283664780236553568823083450271842459982773824668118870791803216183939364645556408690427204261158197151667062776659486045283213388769419886065516715701061062195424145252504269831821607628649191656891901126187450826074676859264111797604724136624280362672605383227088973893428428865433077039814345601957403304470612213928418919242545388934081503251850878321107771793250848372707224190970888511401885025730208301700465184746122576873093189638458087657136252488204271599461009845856093165251397969559538594855128434575604193077914124283536632151692619518557253311738177469522041644809099238176525910929180835685641944920956660694426480152057421152076551857906388433396788228662472154862257372294532966087503084466511575290634767548276505927344593053537525393514621170638354942289004609654342786226171931041836396358383502159010417244251839379778733853908234704697705523212715764377964557935346106867979438514652664475835866793007633623609677882143004203325008368545560130191268132669241872082474839625002288320612236795452229306601466052150924004966163744054281650836010346517781220255506081765378129958764740001186737306304897986634117514793926960455144751787714953627294567413598615890584777202694893756823074833641470457399796290655214819032365383810562730770365137482866669406623904632782401859614768030008342538885470564774433060221768875357914455996694690141017121111779792874322204582336345388872389281496220218693506245619926853443856709892266925572165282657885467775278104241240613674182292095419516872523096285590782278375868198404108413000800614451519374730605915969971175422383711096047983926787893063759221148086023606939084631641146688827043651801659973974377229353755209488974863165148268088228141112227798496443884464748114306561490544355330210349838409203253598953011702493072944963241555035394477743737793765455689535549487077600818014724678499027009596377497627099705012061267165454757788333912153229773569503203698680999431355384755452799145574839958108189612919580655733350196934327148264997596709577735222403351884484112078873817376814663907265552900484534651733231485463281887699683341249610309919660492209666965842095243453133125272931896156850019696371730452448348312314195510170341481724211574616713510722087707492294381478490999894706524624048466999606111373410810687028629306810566848758174322535935432837584232904274869589593311232475743378381266776204859165049251097542644256147197978311557089552549165845073483986192427132687547297400150631080263894319191619957002303627530428655849247705991650214597585522939224044304545923392172002996703214696417468045922065476788334758845912816716052794246934010233266311470721463250528544384652600251979622688836620915076947662328645487157255292919998620281085348502517072007417850520735517913000773849122990756797177801410814454628735099665604332427396335588124767344210739997523082848794267011934680799431361501583127146544779421696786116023663337789182027708481113304542096911800886036280922325655810117396164636524104524441234552068872308401806799184027702665957850735723466269129391622481061993447771855003071689449701259995074828752810286824896206404146411562105872244022381665495892011344876329865922587922766871114023088851214395730405133242980517213276391103837889257106491012534800428613238671232327749814425643814059166619763646591139997181202745634230317087851176757828105026774572896045304748552384128403691223021410470944025877030202143154807678000734935381850248504061613367334507128552752131629908055163552360739685745731545389879509980525530707295508718815540266250081407842720366179070797782811056611655269889663763677018155819472044868174049279681639595277271018622373146682845309218975244471981474650998104228585259733445935732679341080095751053497676397808398476707251740168694028526919622162001959659347589000786778588871887799564750369943042660944346463217345686519848836537199447297425012589985494365586404463794888654114910472097758057336882452146012665477414259563749169818015452326713580374892436612532716309913902745404444160003484017466048213746757685492891630363595856596850226221764918532079595473570680387580377162676466108948160197745792674171309539554732797515109071824780483899518714328351359286996860544369790522207192423107964082012129440853986916511943227530440863732107947953428705026718369466353716946492186142183521034475895508370686212919581547080249342468442931722595348082238550579383667275140290924874654960723630496117301589152914576661590718143300982864890806738672654665586922031786589008614895973365397334022247845349014833675971631666894634444021308055335257152099303378800706125614623277226132679539255932685529676517002276250321243115169615642587875374657203418751653047038475950310470743269853657526689085884348772903465606761987352770203338365064731440231134258940440177761254679202232448833078203076819777267830383588830482581151897133577763822054471747084540483870011123206087546346976939477934065466636201727263483795810857646815426975871570349604317295405044356922106983723743461358895205716765437017228993492412708494070552057455075452176763910406063985807729455996922186652843442366806106591538008887773222437506891680641523024754145645948154555269604436279572503311625633216689120218279519013718414803027286923986493607674434147928067274943448946054656599937851803246738112705792210559394789144546049921789861949174442968905344732546449304251701448923305055411230310166566034953402133814290274848694307397593530631831730568941425691789096650280863837086412140027711634449765567601601942258953254142811154504912713379398489575142165351854694525939336496063161811916367279193720136667778989675213193210169276552271703982189325026488498387918151999663711150643728062822412280565532698493987657945140715755553711908370346720608612792043919929572454555164293473043097093291997528270777115587071171809680006046253099819859778444327598921931220339270627243094514698538938804702095633956323215785827765090119833001538902527163733849426534332177547707171851215094686968940467717238228676344353395240298406907812486789139698097333596171214795349909258545950626337617851534030971122471420692680104569515378738392702327814093982707357454934494303765328107074746217952163515360770278838980917351701960533766328042092939935614255792588266937370346441204003570497125308246808091599833565818382863276393535867466411580371552785526826524643065474321407087816735481236190071497934482496753149208462033086183913265486188248144889927170412613874690994206396777830144408202221981586527074680480540186069613773600332130130754350801168276680648411222415742373572927023777915133951194894611112013980145046970248458838450132998722622378363266535822001564980086238854479578345175369230496766310554159800161401637102539218956786838059114181575475581988311787820208636066952361415781338934153932869152744303796986016044086859293832005403744099666414107928380483200050002182107224175784314256699736745292280623528281365469290476646907666171195672514907447403205033954245135146857694856491259244165722878181205030588866571407600422674251401095089283646573240909911925661167270433743686470453904982191787485411906812692810965244033076362456270951405339266139799694539936182233690331976239343451200243922378947363162061189017641056654205275897714596033603167513603304527500567049401417615963070749542043095276486541790603799691605111112743810736918113198992849964114872167279059723026358730766150453396843150148414209669035968122463262245821389563171052502523260999795270735430312592807152935448030004087790176034421591035004453789385143646850118570881880735609848034302832477632688525330463407514459323571242605121434821411223948721645628034546924725822437261564354972084354041629609537933110896422747614723524791037290938412702883705631996764821720766944231610064531149229076195202219901131832731496742342389205059479927478809439589485272723272205349539504235944432502220417839050835196689274043107926389013224857509215195439933537539052909801381681742430447685153906553015076813964205385835221688396047781319765778974294766565139719173486750316493579810442447592158475623755353799489392731245447897418897520044333194088574072703522287463855474578693172563062102035277887810405413354975233834676799173151040674485215917764493242078486433389703946274344530999289311089365424670682577668604008433465995008650931659148643082236709888949504465922826945495070138544993588282131501882242675524513926073192338306710352010114055739073520510801400988731655185942903022127199277843654422038107765273999995878424322457808306035494289532505238532391157242555544005763650576089283077953925046033152356953239145006312015984548489403797611639878492134742681985140128077582285468874923679039027317004282171605967743682611173662082369049482723496661863589862714382154645670204894255626777463927210961874559445195062314482035698569236005141089653189539738368315777638970222695243646852178785325460394978439684296856205355827918960001672367396985870599676648442013877229218948147365929898546899923975894436394913653435116070371403742891560021212578658400173273857443532857949151427423085212509606437175701129249491675319708096754027493905480121407092638138133884662323645271234471444937532844664838495709267263043375441274448900401304861675854095754466382277443681576644596323508852237716667074371011295097654307896756748026610955824871715855071135461882780378077626137602860765627607524550973444242978946992322571052351599194956898127214289951498079915455716657216988755308519718071133335076249876908763927099445654821590998718500225638331187682785961397563925331844905195669287205962425485682322190362469346533000663788930080729472485770255922721336370781055596607625914509196159754346145883770666484264685229459750103567345562517625953901048484230137988915937146624488220987432502974813601668589541407419537879971070513174710301601395654624360482549632475860115203251675663327636197017712630877135150361595391077279126523023213866139199148037467924458685033871767987799536530638995099845967059355318161583158647217901771528644326231461992328642930208373606249519375661855428080587465651887323997575203180244918388787202604415777726694842238679253744013299254410177435342692633126005881235264286484466531628405767295939816524696917383161999936461675130780602860997855174414838111420012910041261057150665888983285176909192831861425742711934940541230847207131993886556968485865484698249489697494668751667057101938092496890809894300756660407925505421122616200570282741066368045351794580320349832462004016003935607273448871103487693967855102343752754548742810714913124428924582516565502852917919897273514931041853441151446722207928315164327392816530162507127587142000966406086931533219341153979494522550016992915903473630996080547591195455797640181506978080183848688771146973030480057659583376248588170522672707932849199706608325824796767043946742720173083308025296210475866144545973380619271821839451512501782069927932076942129621876225320056447412346439747016033090634469649685493339233124639386381531824400381865048919198529307811997860611987962538199434096750855922498904807808320927164787774316595851916048761348344669005727821374157197148058751005614538931463988328988747204052054447512615774947029020767274357530982939539719425872650395063147795453592507521357601769666454793007691571402407043636300117918322483875622483208653572483753006077452636924920489858329928644337271335438622609165150552237054139736378605896026570942280926787343557482824452657789068495297917393674623456227717126185480856898735736677941677355500847585584122595154890519508786706293699242311341759933700522626433316454213004855886492920787316736623574100664398574547375344491548872859417990472913360534375279410096098458291643873248424245678139566746871063346406750162039225444519946139089035869942680873549059957871597444196116853412686864390532534397620773885706727738032612269021710355213274563005619577205949927377354927004145094721067192653802314435666224072120279327965725128938387657319799381791623501845504968200896968746432446286990645270940351881225742309013088005070184187986711812144995178188211809779793397742834542584470941850691130061852909704470619894526555900001664435129768160085041433331952071912190316538173054650116926695150989773521955057443638072567823820061323164161393856206427057888973756660957920797691233870223741200801945378728295884074833436504625755369851948837020433080376553641580087280498718682244760917808287487504111323164740834733458263151649980962899018368726652280207309503987009885704837991875275680984943113335976764119776281824215692409200855978825302118311261571699718312444763744499243011332177348382289566827672476629316062982012121202868296939946634775561851787517353108801564206003353803069395959395650095761587973424064845762278720763086338116620676743749230701000294606517992746952587578717824359482760298572975221271180104946669903222529651772403838127305935143479129202841983920077809285301706009468485045422175711800290185662803511658462230073204819130273520951225836566849998595558794807844889648714560499000496313097359801830993390600934999677565815427700741299303639137687970736683608999545582483333949701113532757656870931530686868493629353998771101489037173083246610313265810620875135625293540039887691370337404697091572413631036280817124993160199778083780543411586297883043717807054370928505709803296176878658806560837028386943406702763945915554601805059558504619651840464677443804334041964242983437018389653645848693895301689617357845143445222573086304672869023036021246714216402352563141514195355250193529295605753909612655030625397849197077136696236999273488128779821004870220642860265031826654988737097847571210116240254638594807125299742925621173504355277006313303400416223546601877417923624470174786809068647369882857118835740807377048438742345974686567235724014762653467139572475030747189580657921513162242482740224138743288742250626336210602600337829684209782029686626788930801981684924973757438820696323318471579443988152796674636850628066275795001138562228248350321662393666009002432624758962263798413761514482077150642005436839266868753131307630419372110340600833426860597689942965707531066937023569930466802508683307622892086585917368554299567934313793854668440559883003214797943781125589009188563615569971402980626822815991665562552012724362224094965808921064964164070706029106095317064951364038701750959147208167242152971189576498026457923263606190077743435809999372069242197937568529668952593074123195786039793368454956031743539960666879898985046051527194964225558136911638315713306275271962345114173127867089674377184749680462873123094908138308566538946356394299804443583800870475929093561301223578481215829752803718130156577366509972980403820435802029258945132076419716427457286699089757708083423502280578823575704641283395954610807385614862040130563920094180351641693800042781580641087994344154687695696499462663864668640424000628274797596798846115691845159159255131629103356116446484773766893191460819128683357950159949971933822767473333311757598809743837425355036349611325765529842240417446055379137358559880249423577779498217130094549999418335188962752390865205471116667219422730244915929055422193503475044332423967356527573881047299540418998719974177331191775678784384391833691885875003726867767164963187746014322370159340129875125950125208819738346734521667614793269568046212697065634689950716849049418858710645762163448601177315932779369146778566643683156107848979589489884794227553607010107533428009055102949235210772610821318186592754753523178963930330534340203169971268353461937405972877497915582043778611502435917497499193392966253422478534504477350332734247551654536803377313808024716436321304754129051996960657841198113325388139607832333597529814477539534278855481079586251278935289360796305363373212032819525526883208415459588342570107297554255874976220846161817731212780551423761561370849623815701753019467222133769296552811917628476289973320413875850528119156864148371581197514212208492360566395449209232928367711721376014672005693322245027168370925433223534039109211816244938963922056886095362120439099909613687069034667513942945708621583790822031990112898444120084616067686776693846199540626479479367422272892246461581646282740237424375543270647319058772155095981867264272813736074970283031737302451831928171472766343733856442295166624067208132789232625153415177702684552606510649973254289034319875671770705365778095744784382641431482676889711507050723012472891585309863634248992828074794510836135113430730868298998726037996235541477247925876008245203530266658542398631960336846945753040339025803107603277846696529449870418682575933621903192590441380667109305004920777773715027012926769999099684514317862702279929763522741835797952014144346257762726762292439469645665127360842011879261505352275183604378682321719641535384941810427698989594554108916791270099287803176330893751212514449235615286947679336010695870128839462053364299199764208227013808632734347109687048492413143330680169590854463489925699792187263404941443655080878325421198788126422294009766275805893105812823473926345070493653917351933955043038302594806288803433619444243942626366632501908765711372727591046578922877494576425449061431146926080165827379933014944665576715539218028231636139791580176685331256927030228904911248859410270745234586681822703277964573413923711265152374423488902672458747468781903797808723167854151570207007132623403754737477462403830395999167387318613853041941034289589191392300178190943897428423767378408462686222967494938699705955996871077836368779725092867069190413743028715727878059049352404205766548269412893246841856298123588192032158139650946157659359853065226404992219447622330616870330096498847661801156684050021636011642563246673759979650069757872553265080361700331454793263432814935890794942383478581703086702385850414650969265903344773727986918759738576558217532915350730677814794750284693483920903616518303617615293317520190969630219298288645797874546809308001415397951390959654340084847687834815988327231328359057855947508858636969964180841160168639191941251253688169293671986872048751033585389742990868545682401020485952314218881129643802280268561372066399440769514311653118494194025695918963457582332652681898149089892923907845472692189307616902473310258524474617678441781388963346032669515338639094232595095854994985123404103685964939447904660928880785241996821171962511635379714312839661125005326347172933873884136539625237824002810763406017238881023841951256089806779398602580835912559262054460756531608525803888775312072314401664766179941793893381606992340739576559996346635676065978826845271808383724282126287409083465661108238982224745774069335270815747865769308778632107897850207234637724299266736304122783630850000027538297610498715334670117588447371640831472377246694872156514063784947231261427862747431032838173277359277502115049243874544211541291018694393247855266340301355646096146619523131966473448458305370907485275912291198791412154975287554472816440309020860515747473649690265998612115345765054612359897509664720385027551342494006746434537117334528624143041072997962196212867898224615975264360977334044811873215508141848767853023216833325494861394930594458012127906497116191025203047253420561150850673010038250506477276179802174498752356083990390781369728734764797170391698377580230945300101460729683803235253591569943398684969756687102465841389827624654359751982593974807505722335192597692904617755036259537484364230688221100815001913942484620217299219582425605214923024255991443027260765319988043280161777002203759000632122779386210006103429834725381981547891844624514567905937666537126907192572521765763950627360669555438091227625385523717014927664422027143876964226609974899627564486671054004721497751111620281520317601850940332251236226399874919360524611906320582766927626797922495794061486890911069626878904150249039626815872880771469837131124215094277338204929101357116731068804158995757734170267850342322083591505857432788921973493523506718663959389264934491462599147667389196454435360547426113613535693599226449936076416057416751547283388864839779426094957357578175268649802179611855554807926591191602073483781129263933118524190595788485019644289273655493541843074145105426776492535173296887570606995240137463474232582167554711173997546236586063158189368820376178507411773679506541272841356145635670802726220010584731115860233798238402316907651422539764779540618075185457451735472277064497574644439479230161928496967490429801128756108186214876515574539611812611481762756904664742943208080138513530334292348185281572740135935188369253912940618227305028932492983531182096618696746795087518572822278250539503700961879384178936793437830973429780382978855757231316124029544074492675451070343793352067504000713349135441114135409044217587169423638397831652036552634487806296158159846897887955748329006062672153531764507515743363956513431140163798310564257622623631142868587485009874545655189954332177920762505406811799500218958118586962789225985139429693138163454247037709137041257184144856218520623277109687581517867418455712650763853892341278980121327902889386980108572942536563579003113267276050681713780707517689777366088568298943006895210808464251589083417371435981329639591123344934538662926559055314384046988631547338869999393526103228864382668876258720321479779802683097961733289749053726485749598143065642083561593025566777798790947071862467696769221592057727625655979708626681844984653059877628826798054424142168264752482998745792792148467840675890302073909192243962364147671515760263500877355992116231425008374483145717874420932398755958199622517493492491408524821682724464444187647769824321213399022411299130122484871482006512545070633065142707431878555350764634009822005483824777712266297621183963606160167023595460699554343126819635290415741228059669083170480636219699584731196109790102997570595020932647217576716735978275233216377253480430988372926077483995159213892596228150719779275580469468435053568018368152866559585314638120985488557061716131628029994005547737614282284821168629000273030481439221081315319917900022478473009938681333126284108455568181461268637345111969010306556510634693150433393638725916839543317286796581907358140060182051698179431305349034366044565580999962982299472520598409334553862904170529177617393474640791040995860023799695550363308951883502494106696578570765341544050852493941106576264868796532496294095668415522074250676227230538017745323418921662950441473991268005372503274195791065746766200795898011673395746437061461221226610531143256639591476502225976187464368222492030388696837233940434051102444203088989112548952036642067075587203698045369577839255135003155108776871155450334277521972295916017481377909087364586968503287156928159606155174417402797487629912009668411632962726954499814950201445579761378035316887181689448263145474522456085179105179951246102349491222855475755098095052305049872625498287352946324748320723396310418986402922882179624092888693283567194243023170402452620968144702664987637843460524154266905111823679678008736225241396939496662962090143794400714629081690401750714710423021865062034774617183941850678479347897201161148093569572457334557569125604743170901325677509421924546568618170650743470973389889497690628848831903058244955719298439543677618566043990975239332240460057559988618153538144127203839047361934544203506192262847876994841377084727537683666583662736110552822563032996115043849206393811342109784118413472980390669798580677916700501895249138136472683936047414197016632135434526920435248230314623820450836301786527610077041797662451833171523500376805719494560117072541399162958610546295361089946095575635202986793200299935251563889216608656776616835965503331521704711067735009106252607952051522633107216359505128735844866520853160407710606698675591502307190529109459945922649764064819665092226941762722463370547262025297362743130606006627774765649554068026721163820172455095708514320386109020040098347750995227723094928215180432072598883637079786313937088960630568616279625843449272307446909522537142325636870456504662516632486503645388530860693582952903554915678211121118473096915807547944478239817762690068376021905312944242559231503189308697521484182161547561331925249718974996755480446660054729097477864606437397347680352292033651615570066929528207224620764772492770030099656804912148003952307670800076853416988253407241931752258624453497489827701356160477863848512463275474310366856729269995662014670273080316432252826073364836736684415326646855278510849718958634418669525918313126325455834036502209740838252881287640881013363317361773011370115009802073577936882639621031093919235289970498265899780985148473620093456341593925572971460654290765752509401443636990862163920699016020483075749046158227990202366267654554076959247635746513142535596536629815770613185695710624687390983637161784105699828549486334465851476064579825300094756625069496371493551159319922272244337924030646405009588416013850080921818986818077322927421279682669966133025217216536893226652139603425933506298437465272927185061603165321983793448498529883527642520122401636983176657580222584305842003946358694910111201077702153637928835569043217751749101399566225751354999354581375521302413756017057341135195967692738882260687575935070905703949793504881644920684249335930801388811910274083699746912116733054341498007264788077874738125269045596673860634655756444409420257300403258937966638518739143362181192153522948943086863636565927374783485775423007637948579284038741210139642140755270310867812944030484278389445462629064419367592479339438777787033212435612587227786670373638898146372269668435452478715263231511752676497113864551963586963153299378808095843183016859327666196627782618698105925852280636942256257386216197464791923052396768983108292164797502510343735710798723784328881320957532296127931775893851536429227269486504471850582339315738072043572453124689267281832252991033057149074674938127025236188213403373420825580525032576760596876094909233333611159420957409348115933315220715253381237634327823510093557531959260433590767744205854937014223710384431934125415405167053009965376759427651875192115331383014345346612706749947194027166866385279602397576451622454831313914449247902921012772922629557035940200010176996032539901626451857415740374712907057694645894709878030225963778414123631788646023150169600175122458318941003141737727579097345932952816099396255542183187198418275399810801312922600787384798836330628675329458450640974814072305285246776967261822819407498566784240909843232749224736653203000136983032261883457185823729978034576737908345661995995028585116797563712728917141234031915712500118044211321190911464889646982767539965835518998296564989231368265883399874676957017203481616259858155682294313801484131901829790647074532445280814525979625576215845849565331617957010796088949109507168877166188551035527437789676905069401496434145507464078179987117155902889770898824048516232763873028101064243769291331995506765102013532258530561809453179901990251140517896589112507509460859587533776672069660907916512784970487847049814862784909425101023304738834076824689534395764931621438850391901269296976054883845623855361483886643641453775730917258361549918534898322745085122197183929019620986996640017241540337716905848988661806887505373386538221581143157340130292361743507089256334901210441720211647107784884971545377624914384470869685911797392069356402827896802865860474953563898624061721539440680433462800582104253239319451525701274495348332486899673592684953311129262929034057924182782235768754347489792184639034012761187270376633879053322717321862100446297504383555405628521525194974882278798763119803154077564383362883637721824291282482080883560448567598782367536648216085729623543631031690960440721111401120356553762980053927927707737246049457816526267655634176294274022938891171947999433701410383483596200946357448539869740943389665826844416624044922481057213922679055392917393085101129059659474882542251528821359648910673822372199137515672641476786099589811863578407719380070156981932140359628837952070843209988372410328361262079027112042537119279693790164202849525404167384615028942576923159182970381884853602573027495576400726713519215881057629735617576058206018933423830725144061977884046762861424626186877813459797128134924308507401149318948418859138695559656842316447166754286003794573644904647043106241274100475861943512920200713910530037433374091185748340424961283552214969064211092544159781382741195662905400835868962848597816784168943999846974175872020260660306076358661813518870855841537090244186059062878309735630282420579160170437769048198812217128095793305450239206746385303895039992743035929078838891735097402155377269945389584461179504732650008768910717363906545025564249589352625683761691046848866464908623936113010519517490415191283518002231333273420274654615995739084105959352646427698394784569974018114986156276547207376334951641582400610615698464042346629415853137077228020747549517200666494926354252799011983707328421084510992702662301570104736762759415237129666705211852491304826909443189987906792438271916964657823928350867978605731970046797865840770202769188443207095818635379896748690909416430949251949151198544697799269346789270645156185610714368420727391268987106954346325992633830156825443327282047468356678117633183220923039850339051254093178873183108697535220147028659268290600738950788409671613507392502384800154034103398977459250852339766264855606469601538442872219950671329642544172199047306103316384859038449254349703462888412683796205782699517656178741877802114979832699997995370772569285170767793571091637334409445009935940461683328497571762415377193959121273112235658794750172301157941748769110325855554418460550442835506862228991306555934190692909362266761479535052731660211412158045055297333303689591584577792357160621338937467913212532730106359176090979889416428896757601463438265292387367915558008198138310225659201236353132327784002969186792564905673016015001816922037161168990295620615936874621353405526262177926262623283099637034432285195022068774374192522894323071787136381808130317600679732990995707880841209724465340962593151125059551509342291586419062853852645749049249468598125360927836596991397393338987979063334429366810881121744965826942303666083391440212151900554891317045795638522884486806635658540526400966540197687262120322952616506599052474370239304117843341422227631216897088823843033538307650487959265634044179414585999852216925889165702452487352596914834353960891580711739392776238662879047223231712089254318907460559292674740766282276046056500536527054107845227062732456011120457417050346072379183940571563330685951941585527949729680414377660047486072668875354199518344280507655924707292132523463734911561603337955689854588798893831777660276080502518941041827392410399223949292955970827060274392223923588083976356862373906839656541156299367567058433070892941977615860861129224276257116308208919425260631332194836530647696648725066926704379611420331855366835456137946604303148845687155746586711991734218770375769351200504240855786336312426968504892727206964259382782761001450357599842187749136740899475466664021338603627247379392508089910927142164312174068654410067437531237363351991856777989793163478899092422453626836005929841722939274731875620197266716140552419988071737281812142167667334015516539439352388509566771299049996168205896201626880713227334054852886744727125695206969725400258556217949304890333361096148158087578802929839397977343933683624093608687451627205769732713809298560365349356623915917180465862965357557536864402786476134421394184901092662554341556543569672937209608577149448788380955170859069246314709520605952045211276039760079508603144044340517822829673135785185296943588418871844902965347508590200582093983561138752984039821758392546036592616455687230200192256452819935496264474486060795667250441138471994289296554415217383222185135659995222815652140082431058805405274555252896849627557282083887264822413100921707042149534717378394945595959556637749767639835912891296087129536440059459842422603323760891864741999993549708981850016119686438941901696387397409149954615740701511668807042521242097536657169862137058710983477032475974932117692006646922196987481043763453962201567723605612810404676265591259817234686368356120079312917028978486233352359312152485465076675048587673401789066255568141530808155722223389195990323304171450238544254758939659403310380947430777840395019179172204406547365206967645229150818348932983138407282702668168715787725114949872614775514972691756208493422337843160450342720239088020340509059496375690896089961040028492525102354249323204625141586830701358999476794166558135008923399303590370673205227430327046849176687788382636503926427702499246306741382467643226566250468729499823929166833101347249244384805309866594719426279716759737030933872398928222371474940254616172517910011023354876894553182027075408072633228305364799741913780187403158756391757035987989562047894987380274536516923244175142431561999537421658559269349147559201332042304625553514313879106697362737269650666325169396598480760839366036320111840965748246825380028771804266118979065293087803771022189804936668912632318533983320331567172714962327903071204948076163733396980999753691599156402167256274647845375808149776159437293625571329815652201302978676924046027820802868160339806925964726119650249619331342491672199906126331116606926163278437747220654831644246702872830939166821991783493582060159592451004849889959742858762421653326148544327931861008291636590048459261537275661158230866224926818418567850276553892855817706747047791103424388063886286525329090052579545314870773631936551865342456848806445392618759845139280920853954599500439046841314872367203158027607005829147771134738298761720266494049445020844762543720626771005273905309723879392001992143570054898725006665016046736257574963353786819544307232233027367687967075860173138298445685663995284617710851062625780695937146774188675427395352991847481013888013481430964835972446511944460098541417918961196186563810263912571276481813920558385684066628425375362065853716262827228622394644948431821675069490171873508662680862609267696654172540380115441522426574687469040480716969532668135089907718971330072266071967145817302349344185160152991652982667530992132645976818403612318647729153584489996560514190599409800229185090679634702343756484899285965892903604153311022713681109846351022784468652577870009637640249573388693776651219692096502109064727136568125813950164382589241622330410202843971928941377886921992441724354433745340222836546453138891971891798773925307630804376296281516719517011429231860434260819225834111280062164248198147743383561701135556680729728353974883284150472769319959365079646217571661918302081015217725249977195756074412384421002278116937323356705439946828053285995249692755415145918423815823604659056363774285875143820876889481078728583748371501384114271946213993504511545951921284534949308555669558579262129546281905965879668449187234007775705849797413499529736594896364285117731768083233683782237642452960749327494599169312944365488233096826687617293859443878027774510108354458257794707583480407767441725651098863816468829307562063052585395150411124266581291473252282868570799001503422365149556026169384818627282054400965950441162255048404005137664460270635898178395752817147939241418968869709154912024728574513904738737095747867059674177882067239166494611070033115085049794235365307461426464163264878981511040216416574440149610797770664228900828288205773415985784899782607551285332788018549345867697610306222003781586737547724789493607088787446171972660031717199821745242411374578478566238452030802850509223592266789102552801133426900088473169173577741019369293987257235926193194048666889231181998991892573125406837290046124662169876202026812561698318152382721888214693004507309011212233241978480738233948741316436100212041583426166853353932391882910939990683485034932534773068902371442038319012822453749520403448628596544628204806907939443310095707235050560870395093024586034306650053536427880191318123783289406329210444391243504491762766106039160572876822567828691316976537224762058462192706552578909061745857238101182877165162734916163142636124300288741795433472329545036617905815790887271269811683350570361311049629675595219389881409222696380210504957900974116850631235868987261143436651348353604749148721067850006413294417513540743020718720704146466548733512386380129107854381320432160883112234408788617580134657471051780285596803034944208071208094313351677567529491610232443648779104179294539452535993937478919149957163152867726947915856750791190457305104829279633019480102148296334130922146138976590170487231343397420423922394635247136742164511411323749314342616879038274912790815755202996900427584309901808103366528069008510872465443234275843062539288977413572815947117183369304041759222054685570733787874858980352184505051017541329462154651719924671650427963710938307784711549214532549908505160895247366053097116030323846574473044443291264996765382713832111810446069891029711531772099052534493863919508462748915213993380175408981247303485529328946538174106608571644513908163277414660140591226751033671508848736588420570756145098292410736945471939688203804836196751846907552907338892907005891544655908049883296909006816809269712622578447070751036421424095380526956249621941115322767729195946544390683392468558913904468650627663192481279817853046817805977326567994583595786738455873617731812253394906358365928868312622520994599648308034773870025093115878180569472511155839389991356420416016929743873908507057078544333145426139455203542949216699668716400830078031968670617025731082748496624971087755174831156977139132689981377271406162625882807311821059737450108790300962628097721860348991031014252399989618215431797538564766081517411462160482596496272900990452833402241534382041384188110647210836765359267490569748022250540302593447808098430392037333114892729118408210990051962517578640501709097188651916506062146848240729969124373769418257232383233568141918739185393840632686466340536785005869883366929873115024689588253649229700091476221833555957756200588935727029357370705664394442662203508719018426626184363284704761582498392044750582755207783618296731171005784831856940083893999555989694628794487336471350947889336341754970091810635086631632091941988967535159416917942243719434865018368802438191939155101604514515260321914230468652979284241839303142592520275433687595465746917462819774784774681286992469259700459070633323720512844052640661936683085633364570742820536979620348811821193591025051829706989702946114018455278078691872978847538732084888352503549039309520995422483344809661638052881022499643659308347439752089581396592281397649192754739305294012363553660188976761679389346620974649140682980450862864945888860329695729302834750390973679039399955234155391790331351758801890692916713134944654985635050997111614136376929801469738197738924290694440468521637734440581666399060304759406960418077843803756836877800850371730295986268608771949516467742640376172934066053312684732702622695260547090079569667615977069115978981459557188867469139276333302788031561647646044909304235501699543092885778696576305221480067488902806036835406352827819490639546149226829068013193184520058987702014980249773757917465850437802616795166665639617321100306854295310364190199796764317957418513927330765973082828502938865285189893841655186164400774428672177147027499019207465855819684647031925433424374515572441647689336862874708454974705231613733183518331259621023580424502792222470064648517247340350411884819241792012832325955497561004638938026122895679431760143211809709736833838406344724240004955588474194680487662005176346974550066662637648452820064320445172256160673727901041201857436015185875111119738993824919775011756549780527107980331462516000097775283723752410863289731806421327707012222340498209365584554574412993329924800698082452402347779150902705782511113126675845340387710212547656802847721825496048773436339679755527609574869734880617727193233175041217642083306184790477157921561593865616876251829786070523760324748848355165471652960404388846407570694306856965599450380791865092885642775331037058746633887395013166219004155432608815229278131894876167102719455582270422411250566979894472987372997017334517088023886537290304499786107086840308932468113720143916266201040100381325468719088535342335519754310148596700911834888412298606291523967110758606352205281852137103657041314771104010993444784935994591666829938169013879222518704782990239926946299055337325637417300938003188086897779255693094213983870557793414892808051580770266664095230399798430021755225233444352258932231936343286711345474616169138989173656412681512753242245135842131025213331408930431002628111690358471184227080317734959338316677645186885577255138114887675062102742447855433006557590210552216032393486990709268446593117193851615086164543540737990685945087476135499416640464128415176895495986054633622463419721114864156615145424479164616603405958455087218135861375624811906138739995203019143770602693335193719940868130657958013866070112152633327926666069720401563380536717659364081980565494176864538248672919965526707573950147767846367432010082765768407500281431978643531455898120361617901103755108117629491731727297502669110423114605472402384565890993567330733770753380044024934096384238105567639885906614766183059244688351051252055754966797150225941158293371528829744783885255764017563682903424798156374937770080293152232622190522599559053272055267346947981681598325014255282891886288426493782119366859616697191406320805170853663219154029671072042873088912735111448205848417665422141437494657717292141106644358477859249337802211481462245061063154167726575215551532349740215222995559965367010878177354327645143404209096103034558597656194445376388250254806780531290910401427148216881897258517190144672677402602761084191951489001343651738911989750921612372421782781718150290827118074549965391076524935263176612261601048699215013663878676734298980668113798646952593093917014071362405009956455723869928681590264220093412876209556351486189520060780485405212145185935539013484397467825437590022783950667169494091538563463132459138947135645695566362212674275988844147181327808462906747270394887149736133181759880205227654303947803739998780550091171034485216305683737336535013871603893235141081076593083366956477743158132439810264107870988729048431356791324890458357902256658019637229848584582518767552514363603424258772589129274880505268497504247495654196425145208593158841997292179697850258650522592539639605854141368281315970891948168132977304304279687284199429739369765421552147897279384387216656407237050537203245280576430013861303528105362351123892885293260726134533090660740647947746315455005254443660834217718850560595514280016084345750349076431774546822018052588650572158140854910701179625076066690017804135644495840651164244350695535363349130587358335974112226139770987229877383059006803672539294013680468169268119357358615948098782062099428642433853745909487681864677188741125392949212279165802793703639081930670170998153956839182776922003172301009588247818451945380058146037516506683256919025013718353639082328462587504927138173107361278848778433807962532550050003394084409665759952823783234670042306385400251518962756291783867355294344339868764339574708026506383798048323290277984078303853421511896834527616147378336906602705946213447984545444413189873208960677542205791716370211180434026040499130449196475952465945560945399733412500203580814458196720594130338532327908652763452869120209089836641815659315113496156866787763038947296788826392856174740380262617765323128628163511609435336436747584010906476893546381660973202784505539780524632809728399943820619406376784208536143878155056166265658589958128777829984847672962005983971695907107279427985577520201788806698079110729607407202016045520194745697401622351277450657753860724664077701417341487978264914551742499288654019784918984024515163741848818243506344340965271001446771568296625883346947270495328131624553412995216406923283784383065868539175768955879801503694272796941137783503036425772436708064858769590964413626192537368697372637810457742923284378900410987865769658560103284760125800471895027743436089596617591676839064692932788497327835083760154449557530194954365255786389056668324926447307499252166847170466776954302002948198585550792765370621452537042775133459845460148356884626600925984281405600218764962304728280775275319300078203596626512644492414182509186793672401871209047985374404411872592690348211296197133373346398014869148366954446668335318687697775320096285264414599730890573703582006730884474800796868510401513876212731712547624926825737127177933347762191468772008617462811926603078099921160138803493258386711690001677991480308711563602842545412089381076463368563191651747317460413674759507604826481165688014634440095567913486429428604146438707194689745887742565662397322840836561369515053532345640696944489680015796751699714335927678710537022586435770571040556527342352510449094512818373875611993890826313048377314929451964378313386423122745298629808746062971539671826490358496902607077187122923632815143271048185277947223061515505239086278427777599326969976898965313067623622520416132684227663340340558813141771333995056332106490473964928610301198366884076619853422402535170528839366996679242838465930948508179750797159746542626519569125034478712624688245745641069788986036621050221648491817465556681093879448957815406067283243845831951733097332651198015489757061194903896547623325511245212934701701306045111034471455772610309847426165139983620924982191720827900331266503819144332350453356957166682226569741306036429039515167347767961431127576947368206401293334757797404263552130800241374939119781802176991149015799823544173824639403401851463041953826060692426593773302003902256863806372604788417980325433998182349540875354558560920610030922317090602203046043866448740842126388425083895760768437321784271494904496979249702629970189918916490497934295759809357422814470554103457787229055414584855081576625302750194306800565936380488695283723404476139920341502485718169695241056580061110408766136926112842546714139326314544327941767494410382454367041083459845539634336291965267356484501771347770376406982765833566670709818729633869563572481505990242054648000486618901190677375140088078085483031664588293312907822713767916243986055879510619664791250502038272661457770445588649257788346780056678611724791857194928121963379795611414248809348796024639390950575482311970823235325370736992980674828980648582401924263740461444887748180185031439688066149050497397390941343912237239412693798517944578896490377497368453465291096135970881820871010918411171148994712905720722143349898998388506698509155334960760833644730719402308649523380803473072324612108853377218504668070833688665710217014598673960969065582613878304626774161929872622450307823470503174636999254202867285757864007654609196714671424296126901046009705210555577341269347173062588212460248200552692366757210953528186580246882942135527824088640745533260954033029069547303518152642454056173051992149021555602924882224169877182703824410820614882948388499016226850376502333938995316838414074504997571877906296726585047951056929464477894989248633254193978999454518447613217821038517618062582097652237682962350934542185836444661858694482761784911651813664435596424818692627337956362807587782392476497248211268533097313496494185705324548958322479543490934291067902162014901975161592072376745967092778473777544757251374603021934361486123538409298608091340578831111696386616552802969870283137000506421672787388900683471576014094710429144514755361244942067289344530475987232577683977371374736522100829834837888443249190063964348657396317951307672130215372076047060315456924707267770165223776162942630878650093100573419339763856545311405230951056359324764160568817626125070142793224249263664789868238047646358009372195176255562482320157910754830619417387275308804679339862259118244105000987099174445496555144696900980600624067778070782829392595561840009313020614450965263127169837504913812501616050549761256641175412794932512727104735411366853595508684694148217826101414917416065778525403564505069459588330497469307491882131928369074385704287563854236277902639334937134271911888429327296690161935823468870382772995646476886024302863145644566853382002924280473136866934366008962866759916596702501234527116538554566296863063162000237428269687308029552952313570227685181993486155437433581658381293711820185466799116785216955051099296616749699750149904297896897361507388268846245719251813666913984134949346288303860755587030736440492472909603733551663538358548310721748942691928071946868723810348134149793014908869727972496162106583196254523250509825852224804355958493574654076482279910410704521695840272634362255120680476634036777308921009406754361212916775469028187834834436892363096969175508769860846922532466976793496476470252074526084750930259629424335404171477136784018387112838917770471885975595199547011513280977015468012698004996026298130322388966235657972409529962899687549498911571958022637221402649667762013400609030698169938954999120996596457835473005992298092127477678682115528716391300097100113628268938244759330968418987232700561865374200243118352024325991091729093295347842665073261594329246897972947293273190140913484321032028225826236156564988134954836841116276696606669060679297486701621828637230296116032441579798020664822296615890301449846002271106026426719632503941353266780415444672834827240220003712793412400137354249817291104292070940065107606714815732000795199500398412051833321817269918813366443311323358748200471788591842963775951554529740630818952763552678692828779610792635690899657740253067653472218120236887160637437720669878681910830832049824719397030352658781423472809907189194834000230933715729802709377853491424631017114966767126446002214504092142101241610855980209876916117009499893836869599310964310270809090632512218933910141665704929308163489550882341061246767928351778296830517291912739390493289189120137466543462430963505415978920131489799826415699689977640763978297865749115569946817172853361568523350432278836287630228512275559443333188285058853713940080811664854406706167297834681457190333096612172832899652393363375509957893322995066418281942175221104602788760887546085225436986762154392099627802906166846101307208585609987667492091673021769599253735577504748551894405570669017262229081907138440851133871303633856472377662967286372289079400724274113506597942968623290001184037837751715417406090850284092302851370729347037991184164144659403858042906592621481748663191773862627287704348007655967680289984576544941518363766439537586025781350588623366539478330682179559999948342037873687975025806087162304133436778258316600901255157538067006318126600902743243238000948688264943534487943226461828846102865322992682598221541375079890525786432521269941575082972868080471675015727719663052998659659462933674743263718341075028682120473605047863478739814607701643595158287476614742307283498178029872755501818223337365497539567835041288436847535313596866780187579273403197890773516435441160500541566544207010244516979270746898637023171473495009837067157106348967320369393464288651280022660262521150440044849366231229870305991526464894207020526014712821442260503425787527126563745296127133918531966984514626372723639353795524514948980506221499279149201997128847458306520295679056721054925575118481125635481832183835189342527788561145855894620110768612735933169315518541205216303173123923923967243436066626046805209578111568466234254001441817566531892208768227320938312519543504548778192608133133234672871877574916724729031634327479078758164466236768052102340779068527761816879818453981178039414173012129711315482049699203476613572402935256645276604950885522727332986279615696117665325178925502487005386278343056407534290868898082443331515908663497952440786211579966554086345042688869892794354659241215285735819567158371500031874106647416878000199313077017993813721457610884136401244127061125907187711398006348591789959142697047258235122567859240248821481133865181554395338571405374491894948074617794404520948708062099676909455315118480153401443677882660030613634029034190488949203782556055092385567863443839439255155791570978726155255441432684905188825596979187331604251615142841650788725035050069491335848910823773516692859820533554530947688597419396464163115397735131280080845781143124531534685503809680753186278213330067905497805532557404083277148721855309551406876207680240309417850420840446195397385942500725101815332648121319729061554814306847257874677582595924229730239073075049127158325464950625498796487180577328162337562967198271793584816168306346777866748602100876270730526874635952230265478912801992167143046190744401001577565400670506226202847476800521306269598931126590260083976588547444784828317544443962840141703151824038487451374513361578593810583453939085148160683134123712768074502316521229447406865576269068338029265789312246874641595045405703205690069558028338645746417961368530835068166558264752943972494781131456328607233570943452273972192079796435790410695724234931128500767462946697102062291731481073263374691277341682188165999263254499318301846063743425263477687380760334922568076474411601350069913410491743146184054920466242352523256881430035420009352350662558391217037864110075744147618456935338019406748922725441029669830800416392325477218731972031319260063109558049234430620215781741931655370611963877764519827432144169882584689803474272491369434462980711317750169344416872696930390401556219427786625566451923471043067098940403359999882675837201493248015183599119608384869132200533015702811332586220368727493817007127295740918315132796057477972603428714954565367941067968498565245827280910350209210371818270866848056088910013421280448612636315286998444044534870954412436651353159854536201543530662299068715793393032462891317356377392029602891259943358808653026394326444639348001121309664832504314169147525706805658425639282400364777061324682722915434085572589820611888512189024483896832095348226190266225677205541342464882122672194154969955008752693853295760546129156561521949391598505869194553545171703863911483112512854356306887072262982260638376133774829903571416183880326385578512170025045329027467234226242570752875512251562552716768819973517744694865357223789935375641699305500668090956877434310498738783935172634372051456951235769114067229747206129171192446710755127759428346343973830353054105002207538766939583806262941900159476081266286286237268678303121248707610378124440433356874143834471901568541247045382578948169503058820273230787775682987531361403026371565380414747320021384366107498930456970613807640461700721363774783191775586728105504700056717685766719028875224884458635252304438122876311115353056262194835811486912428655593185320985987265063230304389959551489679112803333078731129360722291901235425038958614034905696644933820331542688725563420040162031526191671840893960509838502957799227985248662024499235314991936821999637303320888886040866464681150623988268271360096665756311275389149586936932537285424601293655286737941967662432170648695323771779965236590039507665413525876316149560375498396317206467737262541266828569257837849733554819548671603112792487128965711363746310127765308936647517952181127989519761082158345070401237796293752035443072396374786848554619431864430588486712992460337522869924918461948756633560104297730280534776819098386043036698466484751527713295411157000569510820052512719577113195095491135432492210059496197227265549135750883110681909161531810567185812466735308354486275115770487169423415652194493199938952576369255281460576601593697266839423300201621361076918947773479280612094277814631432431373558737015159469213046026107902063393760041962734282032854125152610835942022478850920264206175449870921270200667625665259564202608256628989364498333499262156466839272848530637525550078224058764594360358451556255005259356789905327144945897481979195751036339525149699637250398709289518392688436866609884433999140688544834452377614121399585751115869055011043746599011921895893515484507578172828039662682425762757259424250045910405043167765996752216648014655558497095762242582621553442843915825470971738275519321774197157715235964176711392288329346859666648294516766295554637071896572662398680581692236168496278378742948125662326548243003323731805874024828123916185743583507961455111446658282811798865489886281571243524564641537707858614484707391081716964739251446963711794989785242314773816624374893131759036333605656991671628121266388227754848115798168608487287566167530069468544872973187964890167059951209257881352027994970763851043506996123421253903651571236663448899186997703552355035703198518777911440241670253520874245234474537911421904329794115155169246864706700080315738156137764670149808487021231810608784945549341137843593311477987391394834747097594312547031222386415004077710916409422398859290189510765785964817232035873081473190253988762828688707621369993721091556583814495068846874681516552883019698619232990043012036607185992044518915212168491625949390779797991720370047974524461244537094495374727879150314283216792550231821980521427518814428230845426002464394844319393132684129774068183380669085614992037824677031270587666022889073974148276876987585182511892064523006970908463887579455638242333415421807237710303864757948610891053009206771358547568012700289343266766988000843734525778042924128149442684727289429539894249842327844851979245440204887346033328614864979851274085514128925627206358633331473744465248983558454670459833812049962270439018639155357430936024586439356447521858545461015358058294271252717332042371845814443756220373240152357636099947920295130835740895443486638954916955223120981630020740008891448427155068195856552940343481929606587646557148291146121525184389937597956505795124768964361177348423469382579319494184534364317570196505524845310342655120356380727334213222193822924163022076309476193788163147013191629037001122743806622612884791314854446326894794193558913541604324616724760193661835204838993754311557854484395777053726259673039191294476186538787723749890994683382423969175604015983922845406299545106455347614396541202671620613345024237945441916747722385321572640567971124942667823707938784034109236030262754822165055977020437168205003820205838570330297973731096520478767476003000459719957704664936463513022590101659680290196865221491315467155619246776300623425630200448910753586110763918827564350402524624883122153485063729872410838303259940808989656202666230300318232957941781857193313916189600683434138374412523019980614734642546467949572909717888608978565674609305967627055595773510995910960970873963297773233736867607583993391274727186581163424400082931991454085776211978558752162334539667152012033106047371314025293327068830254388098634147774888980445345602921334803604372052882515403659932283694904633853683077414653366994261408170914544751681461998010316590027250889274367414931313331961371751278697967999428778366859694350060762891719722215683896627279170988969169662250785539558509744373744928232732476867508392313365325494464359407035767180296319751299290434675649826293993415629934339502529369551040436853965124675563099077079127725536381935905094499817504652208486569527608002292226949834592077158096427471451834360933046384944929515059383127319852164731083148721970482622186141063299925536356362718416010864732372701539498698639132891615726538261921744941382040912575664794786841756201692660942885300097729589757573117714155888223461865492260691782402079453482893592572636199641085390609015737088441489231940524015906497071885860295223903295590333800079675958900578287992192729303439059855027962095486871181171372046776431118130292893488842406746265438980035479516539276580687149537033118531104293081511430325850295382171109592629058563330331018449374073128948339041486893033711915644002777636833585043525704197344724405680871838286245387074436290916745728039336880859860795668831328004730913866332644086388736126902542258351858074241494220112880384645115264562529908739357866925583100852919858667683383413267594702363238192481526951201738478652775145439321773756286010101095608685042344779834405573248158890547272310110847751710517699050932423897504962541393326509763210966445910095503522442963934694520364050905912247541505325948813598004081009863397684335636949381231456866164293086522854944818406190876929914845752556885236031866572241771799951195415991334672228702627310282084336193746138545092444606246326819886532315953861585911740299745498846510800253028680993160583006360069174473210327563543392915881948751180857577825054489996545485032649410063605848015808878981489676114117039623135012582418497652363678156324260642634207855398966183757925447501287846754927561626491465560036691681570392947386522873631348919920401056139866089394263731159840678612374527333145459544065388490496388459488606503424497473093610864628694253347000880547190540625610748650022151394823760278826598283847526924635369689904793085377390055528927835563763597735905852490900830656694955423912922107119152521956730287142668650905901190231243765072380900192417071326866949218438805794457293134623195274369349141422276815379050742108354809921837201215123105517815331711462439089624000631001954314783032028343867005462087141724149067086754778467085108760855336784375932552762549078897278113268768988104332451975474878852145809748912614062757379297348145867083808005749415307505689680474467279496978655953029018737149215655821449505635176703999173608700679809870973864056533709332082418325109186564041609886203713003123013462933781284458936280394952558762913822920647483595011187286110921930901311208809703992118900809284235564998425644711617184597855197743701121397543633478121946407269100174741356836065881799836979347144192667254409769481426612861783601867838348547604970473964446906330502561497983020867853592610861493976506814974898675062579819112918183785096944355598636718775353426205493610007981172014972764832016119809425400245171623331043304034248090928168508941406981177756883766899025813602190952663392583507892913249036974233523960371598699567745517169127602791010840974127612234979432510339205771324891325082108844238379272668859636831884453294043956497759369801392885241482518814592201954140479125262777448959117673331947419560847954963974433453261669777213485695119862791060461105899445237872476237613153941641362839977243673722517826035681766774168394698499276049486551939255244107707784893497065514276207871388531853106769005011617913588310272229618199468466014720700450092905416606172834946388736756011510015587449211021857423980151528291974922593149852202506444841151545121230806163429322807453973402254261694521784381192764127196025507892184050101287893339496218946364135505702807311984843151669879389511909070671379202981296101499946290257635611645636086406073184147096820060424285292412288944037723827463983284146533154508835513928282702182378617493225584920022445183186455647939875418904852408530516483034793391027956190526264418043099467812421808779418939877885987669536144843464174523046052741557248243577770545657850518576693416479116949200649616239423581451126442558089440348104286312333091185147086157045498648686278711029401191037038392639340837858309187445200536931360193312461436557350891231033832922176146065859981876954762191880409567735349194840994703982031627027447766621557740952117425473867273995472957854389493754890762220797685814777291382153606270676277467290204003282437379167546936033437948298944393341679962351396673731300719310186175461270019066096866537798842923733207805857838757135736612156563455030577591475844308635522972566053743855223810978729752210689733556249423390310775170070737588358904902966885165836781384096518634078019298042318231455349696246860508845066639227604664488178677390380670487462267274577368497390265790797411695507038447352996286136499407052566046686054966833911704617726716927040540884280990217594777666298292712731117297070649003195660798211906665833335821136700035895475087703005021741884456587022906769741008030655528656452627832563803753871090028178511263877899749630900332581231080357266677389723137177008757928293197799835991390905552070190365767168091461431644010066766424107246222115057237356558772447323724647426298473785296779029267078131290072106321079855375624035879978031461683447690336568122745664000492412469122288397350611503778945252413853141484694087037454347577507394540112551144726142522141968394958576645318226506182830358429846448994940485888431997074197922358774502579628395293038499378207767790246304410325102405458628768488336792144135856004232308411735929547456792628071851773992322593651536130100427513139568794369509902147021645784731622981165912181604502214089975203790308972851153646431810809198930413755555342284374674065816114909703986632312276605558154334343959615395460366660576056323005000226185710905391760222900474322444522547078020962900389373882074893960468632192123826880608241620484082214004902670292134626433926192635429031887521140750319593045162256847744428019133461114331606215434212410330873765128941849375987614304947452323317217013406824084355867316088009659047787120438679951124893969462168804848511355096125777987615225643604910332401775320525784659464318380311291415097932968947061702854417974630944116391911166796519931650290330374305034456610000517415980750948485623856725780799952254292072109674865502128061897672430402851524641464407543327149472598609977993568447465176822959471313443369507611185170874706390961777919261244824304616227802192403647469554619649988632280461491475233252432452037275876717969739445763240409030416705124048471166919793945509881911399123928210161461431444918161345982870744945718813543038667636446975961915042048886067324532638773982885716617577741328431113201706853478885456813740187861619843497244986651136333013300531878892919242888990207280521097705245912267591906895116786069853775982197088002857073160959877986801153035752918657186427850397565354479557401654193188578807002609119010956512978954863089216352804579646543976722067156079203262447976309029891119249346906871545674469677686644216325161247429235368703255424431076100548215300879029270422048521629789196899036028555887024934958673041218326253075516759623664298342359373186794452137472038862940574341984526015966737771887727886340672580084018209116683175727232482532745099986688018990788117293997944110136343717879262000936626394871219427525333605438192976369614621027957517040332797033755995118786759352541150172367763394578248486315764095308780648954638781357274218545714096135146276185911270613167466412382683641163655405119998611948526346225131634357378577912153681480520350803876762201230337697133751897833542858795004792768260143382166614995531172479125165588771280991359584382611941897794318239721220320880435821159832522141738273833875867753269882060839777270957726049653043464176216854597915152399237748738500722611067223586049131068539699120724540595763272627488825911044550205678476294594181997018749535163108233220606850410797689849983396283904829260337134042234926644300568230915780883009733585438415531134117919528107141106571577459389656801584340855930200206408816631913240817951071374824881501400687815144019741322432278756764273069101434621928011963844785261490795595195494344504041451524488057099785204679223828809432046096974642372227113764250851829518531915378811189545655699217833754518829677137807020257547175544134480463523304265272937627493489242569741664655100264295716973871676350426476588876862832345783089566009877918456554833796478547321883744862074825983481658969005509415448922860129659819155289815087770255938796938376610883251359032770684252541377821180389781297336251981284976548568002044375777400704254915427954855660798377587710504179960171313430852878493580105248829396298759559568299881109277015133915840440917519275430502249519605614580733346269654274365888746485735356351478944464202537833315438063242331615794381878275634831377910444170682636841509460769991906061995569916095431417672572347201030493034357350447445278456775964134581155313443182004278554614523930498310484247629055503037350309272683008576129538799055686561988060453246408585705469007950603756796270630060487113703471191144630475338272593550092436651246635915250056891277907999256971889475103799316494811269110753149687255971294730348363116536490987778118711334541997750718231572861920399773314525909673229061833453754199691010316176256071851999606113070288792390107793440700315955923016880686636095049357540439764209284010951291872729076142686852662297717314474734684252964432957110770786879745808872817890802303130377391870982032455529347238993486676318700173217415104822855997595952561623683164447832163486171251392874387317471499414062623613767952482175801425096286368950372105043498336051882896915304066498879550712794899886353015686237699932516803637959867551850017513113313539833375011873354155869932752301873020084127237427095121683850970058194535254618356484712616849102634934284342332646665132783543174276829646830382455297862227099131337294727549701775441793428038394199361480459920098967604264808674773443169096768761353963099610503898192491387301763859734964798893552191005814415042713553722642193600858273095891807520488427867074743337236175372995662466046583431806727885055730793110328823861576710811052679839639008374017655404341376493551857106766017607030925673748400770635440307391766092668152055618330184809702788410524596475305533601121626379692889114058596042461142395434647107287151475801405937362444658638079743166710085493356524439029304308486104865677008086957320164753580923811494545881328327612860286323948859870173285172880559744734901261408899290902298962548878658328924188133450989083380523533864300723400238390272958843726209569738969024841454055292484742096852732169695193741129487695460643700253942907949053855822820538541845684085376507229625334807292709665975147940521793377427568990690003509631293637419607335230521059064512240506134301201327801743308244165140358577138136574658371192313333086571777885102650452976072917209790243343891930596846114615970123858939436771492007352137532825743688997485540880793414189516472858190489991477396719120354447970992123422299828365056717153651011062404370950484850660674939631640126239020060329848742395571677280613026933997718627471277588314164515690908263170632218956647520217887073792101703895402381585844898865580077470179582615503978178485507475866098449415346706336917882580447023949103469328565900498571206532035518697795129512360459639512815626473117081234281775215980932856982169449278343942520866460910585980869073449896906543000351550030105775987104261231755134403790800836637022287448525641243098454128054330277409815151868296827090027973600140774054574437802873826267206883470167406151871442669119856826012278636861949328245263123151766178082771840573724863353288263802622139203200834962933563937139928734001799455842906093029180593653951177264284540543565359056607126866288529018956315534992431500323654675330426021473332373242932053890968980126128719024416143500281293579696057164992716401771079349268240733997756304028198581429743536963719191653153305701259234064052882820663600548891966731498725929492847029261559850365288109451670567741734444474104993914598502159865252713382797939854496720956644185564067441278099148500377421155389398000285341752322812142229545512559123207095990463786457801826946904964044238022444263494343336416671137609161934758379701931309370734285885433730788133281959214043607715876816910469520536765244147648328379198808894608785789323582365592210009533409604747578766113811500294746962430259294379514992610394690223128369090715659094788741809054940748069772871672558966004204104235755281786067192445053163284897204150300193011515249306024190266732308527667810361536881202101398317167627912196968091799002960431499963375937363048571882630298860956020519727877840418777584415971158437136027926731740994668329959320680418960785469518329585370733858604044252079438163710451832178762923061695510689479927201951434799429423541297589894786869441717362570523587004026381598360626173519830728986752064335713170112723414872803294764647378147853954076984590273695199994378962466117115868119995010380105405860507729225081332449039427668179807284998309738413971913312174213137132441831747717862557873223259650091638467753068068387680194605534604373313348557798287195994629390723229310008158315338141261704655546757594444107502611411494975551014222135924328802913737156667055320550907267599261662610199743885783034277955831076592283113086960128637751010053174948282986806504841071544297070318147880936210771557411473048659755043516283984854291452115089434229244071306638360799852771403106381419016997550669548826050804611435183287593249506684544222459487541495146936105842969446461246111501250361326479042725039244793158566140033927049779302897625019558906313927415152581819775650394507112845954275170178597165812210733472625274648905675886163779401156880685303320615996093821495537654738834293222258489482329736182590048646663513987330779093209608521520420072433894280342979909721310181000855687763440648907969234323975823161541796091532410012914123483414564957770256749431714084293988481506679737013248316028590342866438876445382760311687637913861550811709049805211785797345277507616503685275024445132775167324201304647839242673562398660441206700504033537082805560515850809767323564596369375356614761860068933534035840785958719344577993044324558366417751045795256716068215959028532928897783388758592090252533803319566564566114854861473086080104912429776920353826110629455557671740863896537183142488208872193570943506037802417273042523197748649778635925929903627082822724531103782486000790156868386334893462224940920864696827554256697703442125623473286231691004159725310678665330145583046762152263099420013113830056393219774387292334153650452121819491609332082898815786370202880085557222581468959190771612803925147926398682437732923374899457451037696215628549641696603367274960239467821254672499768131731764248209578561872011664561924199948154737863811202301618676473221865014501237888784457556143820064356972071261209178925496683655619441558931292086769819141277556342750500554753388870395870424635396694328468297482644323891566622324991779985835309980613363527165146505316617747125792484155877894832286832242180453258477086313123598843494206978353126308335591676630873519320115192361587794678204826015894617462077858561915590507603109747523574862471596914518313862395926401803759665013900524104894379132971103693172684578681664180399781271473341960114202391036887906982086639006937731722027772050477795811856215078348090816267377415891619964019583434604732384039149937158731799676800410118011472446069745894313114153368398488815681392861231833779798261772743115506252795250511648401621544111484070174113334288983010662284820106688576831493054066346798806207505853322096181223861854115292937706358683179903258117705772805527476094699701901471888585383302304525166676477752686368204260375244103730984285825049010717336372476367988048075658339259250878598571936313953922692952846802051461098373284262141191183484511411906460550418352068362865347791357785050969587019733268881669516545397580423021524817783949506357436667944040521690485050132319234571999393555097317841801348460331339005419911842926464781542795214717719868017306875751184043473003656962649354110714220716675704234196459650325621727872451570785322805986544112630923820696238031129948828284750041815471670921564448364010718526475371989665893822716868098243711821683362430069122435828697693264703795104825000739226679630269532678222002442824632752056127259018260653236671170402404926975948121322769600808491367717518296174609274839306600900223900350661696116188000977942748024346068386384928316349718959326748679684077792930309691587856383536046187960149649335671578258513958937061631092027698562999091609403637008473502204707355763618180149197731458609356571471554611814712096976084271063783582122331966811701961884858974511430508170263544539758580201338557864652121217675551452639465091607779607238658192332900710586876033529778336091259470143785122247947364324164424796343955740158202610073566635106747505220728002751065688834515547705523517261782542138485843875465033528836568620495428397405818115317973630949637004806563635954048791854934166158130152732961564432754917671703117069910482492075915312182409003112764651300841892175538376405988751351608877610152778996483738612950798519171542496887780359014950219190633839791588430879426089753264250489504221914311424693175458308248263197668567953255172890046583875456023202426985339586142450314447596829518388315499770965411201276541407526469980797187084671881001584598085925235963359857307644193312532641048745615566130292341198960672483233082199876808047947662473653949594320611062530357984405561461160063263557402480585847432210577552246561234903911528071400479950658289428956945996883912806329669263362745470171313212405906312471693668081169163075337665787815876037622674437357101016131640877543803720869417049048416177858008968208962168778308758947000972900399835209821684408784652790124223816380010104401443362042516678725506649898486143447919973169386689250647441313796059235899449154267335637706589986059914012140581480782563552535404767560932072574710167062531133583396986599987299685235815114622765626752291180584958946138608933552287647984257660123468746779262370756581739715821007483278339953160504127874716364310793963674330305135898981621963578703703278619798251026541587595441255300560224013372867326048354708291616117206420916929871019415583157107378806448392208447625650725884932335003567665587755069565417991932010481106497270472501565084802393177885274817586431084368432943738051843705060035159229585521332335623220962927512377570754794838134729165629652147917566150307167003170263916850898607490041140048271157468612072668910950463513180828941014004772333465415913120408544059087295388249733242525748453021633202250893319864690971659499194385588267961518447240338009916352810098906997445647312960866801659136347847230222170371341727145750514793976280933185099421933340136969174886053555901551754831640233374519645574449148390864327061860258083430627073251251660269473810723087690639770868815372271559788340132332559845470534793417547645386528635479527718002685229768399116793019725365035500200999564859676172045990485788904470640106396507036626199894889609530428574988287318719732268780386927128903912925168499986269862636197951369934385953934937527359069310518732061429285939268262384626166298690228080505647126965095355102052178728388446442753737220278159280617734371845709567046529572090392788702942102542022836525844819579472969270784750291371822050776263186665584533616590011009066682043446146753850804034997807275132907575520582272230366642335792670650382717349930723623040610493937562840575886020061132854861370358385771372154337871549191961342010690161444618492876752695463420659350723369348836460737263021077115440556206704488307366861951252022579727228125191589419608512145805217286018648027647507355385514068199095135723914429929331466826131709811417619765544356745176881953119944189520619426700007185327209587134903469802638590334679599506212211161168474585705890227580096020466815148395170670319479306471805589180414746912773427576190137988794123418725801966051411573139294950530549067249198841773985160799574370370987854588715011494208079490140500435493096500242127257303670540892282367134160685940685768924721151967230713011659973323777315135055280019146917630277176751876064917459029794022995302235033681652404144879625381457651877637690794331954466817450829698840476613802183199184679416839003322068408413838940729214314650176300381495538526715923093809904350029914582988568307713325782208383416437445564599387835006354156403839293207836650752274685129337377400366737561611288565834940591704566516624844100021312782092456378342440356396657718445109744097828047302062506589565131157774954172982328727236215760032510055525530276228752071322977157333208503105164836658389296188617558176921746159727579335702437940203466128086209374795921848892432541840145282778564650666855007013550918938012849495548255309110748594359208040802094126027798170307604672973464855010885535897985372707543476634366229057255391199248858283516951924471639646047737160600765567288550488556953119588510513231288251338585337817788504612364063139188416151105495255637088977150633889691964216911378584062465336592596382522769814648723957587959557355356257406345864703204004711752580075232140825460073650834368319976416807791687747717580224482450570502894746144438138907567740266492887499912795598369403878766091554208881606598868111055076773120528290269785873661050171155950051505241578200912026011569411105986465309839746566491339549433762029747385571815257102362280389242961739469028129761894724340253959115370814420081089578314277996624984771025336282526302554578872799540470903739816579248813908021425808558272305544298805598777058626245790312295930606164742425168763468874078760687761933435801483952007172682813210359751141908747673799605950834570450251018311331199336239610096747671006768463612333019062734410265876377745219921054995048813518232242402231652788627443189936360247624686090179890311302284610297920930000358059647936062591603109687077943581143489873335122869125785587505385675140756080816043783339409516401853460433198360740712766762835814187151720525490430030087219875517504994777611786738502427854539728391686949397236289949630942240514696499445423389627214560592785651041921872360881274705666659912896302691446230546201510563041060376957294460377291147867122479648033526860178876839607406459833099595195938930178059616856919126194450049798832620028522612590430821030489009430851938283301299778638991444137544589044376809632083800619054838733274406622766403882548745457741134468879881050472765492762492272322373196197840758353596556305923340383383551867266206288782538495482829991712270339862362603758320198275494266703974683442494581194471775705071542929920599725407506537122087327260362331945139287625021645294613665308328421909949031518302721269941411832041465431767411549912762011775908479767747926119979820351303246433242113055284129194208573705707240114827407433011334701474509872417498553132576697783438032232830232869095824682386277544024432159815587242352545305648024417548890346909195851934183353505256549445602907716667832135453355294178411788419294089170332049261545614796067431050564675715892976058031312645482732540315971674540397478092008748457280666880463598488883159695912407173664002265506698466557152135321268525047848997981444235378950175987957843313031522452466082959344863253543853339167222572730699187429434608770713817195716733895041238390744641028545462626410334375689055159800637769482670714750259271354371066910878709949539635540579841865060205449247129429571264050658303438114228198105187333174518272261260438818970800422319623927308413444925365658512072556380875261282451406590946812604537688188739314136967023946782315960041553424004365764278567642790318771511155028409294458341941720488293497711546781186883454058085517573393250276268177752521586992949158427686014341333081885345323351385776522914151485628651678725971916794461346258745080127521187638164019881522770504202555569663408745502127375553059742186622521511813827610422231821398286951867301157718645054148051458940395848550947200988123156786495310687359954563019928707022512311121488140270394372445355468213110575543502802693039494004974501605170501618752236510778059154896321946640194805917146351209021844678974584400508954313173850560254963176778635643839869044046578973687156663500871126053461319932558297396006633643459656940628847924745758340118618265875815342334877827826331521609522905475608727508235892276589452953654375061944668148388173651294764334922672068288095958566764406701852511416253267724933179105969436879011387714718556456384181994487614446923832145748098939226750110431342567332606686482082290389214808752109840000070434762603777609367711437884393269506577187359544880009166961148176149611029660657442316369261498614929759571593816304895339140639688645093849641072885416813043137626352691822719760315748203376216030012139319142526113826284282395216078475104010548337803793553798062480082363112271391793492727663075502456318987190645509537047995843266521279041480957853921563427104620732465085856360481968029336034175557066728412692897212905063815578447494579635505409559543149853957527836824851521681793343281681549574658429079511268116775614926028003439591836270755960239652195938688006506579485643352894431498209038069479179373288773255468708357816346126125115490656541433016296203591610331824712809915721361611512095918066457312539498697603156959656589007392177203790078420715063331843924781400468128568454263658448525865573539435784496166168393540333868886532288371451689073485058702956358241793783587535112798600543951788786418094214639637485220809373064114760199993706225666952317366130969150289502774016364192812202054180250456855188100982771702148570462432904090490456058408305109750603384863363702466434909308864125233439349528041072992001498615773555438259960666546907663770602048572825416629813890738211949601690074470173467828745223814234941801185535178572319098094689518998704902872738348674409910047231970268423261924695560091309200557655234657130327947939833364266304038642749611284821910002959899982905589191864456451085026137780855396999510904977958940569229126481216633169706681870843729100007993728620380271995098405375399223880862846407505621298149717688002236224224089051285860695410156973968182744371200050027834282172622203439398543533368911294703916190151823807619487974262495799273026754946161775690596635307091277221834919607013678763943069887837186932932820703016448333174345316937433294005241950073235407660173182663840435409573627820965775366140906713501034755376481794764074522825291554096103595920584401197993750324849058357419878202870548895689906164039360805155251161033302278395764938493525197287460773863997969153227865454510608813425089407762520917355876520307852255324741591787948518136805291188052042376059736019985799121134773620688559688761728471811278977041943590703225454130212506118269608631195707364017184180270173561865178722186729241121805639743475510373948722713883112144950921218809209894393706148361785361908723994139818111589395179834711904887606453576234569891959577230096561415738188433741444584818125007175182303079556971321255903891274114439112628719724867872663962338453237263818777300338762120548950555713587218280945273268063391015481627305370633215156261014214403885338429590319175935498212863018119990451410702715296543948731278695806767283447356435462438473263423473845569109751466719256946951173120593360731728731100621744270578322292022804794590266060228794194890025349698823114260622411497993118141756999705796997557274365262268192048934131879752444681398322729618043223405875461566138270956088989396772280596030803412662120417328191036021948920075139646773436352248703743236188295850461274177040289534000887035160425485545780281777032937508209086265944058940379345880352250648025392449488726950526638563543742896399900529079740049525528787927153522893554310423681028890421852462999875682511206249527463760937659929247560222430539588468293226607641820219626923638370369602755092940168459142983126393724164936644962276422495879293501874741810310499867222318863073768975829050344904098615127306142087904514642651506805243965278147014654744494870398581489091377226092097393321572227483971612078158677627002153062807481609446164840775665719213663655056811441227754521515218483225603604811680544339650942928425879766320564772169270278900465063496792150460391027797966167759987251037848920237539992402505791493584435161012772730759329660500787379258704829593906456954869141295654116285110723427946549431375597948885047585095645533282414742856116408001903456923372983182356354032977525250026934301660847076584210246924962365645961037366243097224895404878584313792773793828475924754437781298826191424977899336285411505341411846696080916979891857963165042666546615018163229563697791282577361559646775338342755740293141848570386787106789775502955760521304429471840666905279470453984542948092562734366488528967076362920204816440634618010012771530598491443937625881104085277997148906585414393531063844718538529930277023917851482175101137094721601145571756498701090635711033047309696059004601053349278335504767500686097720476787074517197627947293344950082879567849293358901966871299157803457712717149607637425792168968803333232855813385829960755231861997273952369722392326899947009271892739653053995108581077916312370409594848233980606224898934609558419294462051570945944641363122804270187696237583017621938083795717744250624315798422166591027875525470910305548228925361614276941060952726319064124204263126910412603160654200471547463293603958790047026855710100700589342209229657028036526269092122117021407410058279153406005509484344361383218631890414728230219524448045431186638565607684863569525737392544755099125831907527732774481122210153387623588308645413311635714181192148760807519015707681172044125883863019725526855824906549225720669779780882579656976902041221453649423629954438891832096337832361306751087094211380517716690041933535918526533998338007199161565003786357248738381701314604103132358695010376556637115186490363614281625830445920372858109195812888857941981397616861790251251681203015277226994498143929148707748972467609357295851387564044103643519646350550306075807113574021564568887463088683874683738871994626547369818315383381510348002736926816196715834346925917404835175838250156339416388881093638148432382179118031127788695230580797007860964218522427123397894215824276041263878607992603396227323024951261666774170257022478848038679886136104189345554516421678391044041598810159339159928211537540213038356104264743768939789782946587576901651306306714736932292824580240447218455039558546676238154060296806143929768992699933469173220445971605597529366313945207858090201732917121694263788676914105315279281987419338282853269828585761202824393468632499583503334563481771793163166509997220070626545068195289363178510152039000237589185925831489091114556234785480240456486536815840185620346823227028058612996454968803549679627681760443109355948992695946957942429842083191698164144470664475269649745387892386809489550153776030301705771266590040723503076270183647227297282151987314858533531919880976283837238428203070915480801688879072967317775403000960624104423446968627833458071906556109415825341889426627330337635379522335017630247480998490503940651967793925299831452017251992866975409321807143655240721807711576787137290889489061316368985577777154176076318724741283543324702031063871940657570154090245229059102781580963789037176366434629945484513680957576757031433749278266311164856703860985379890841402968781537550402242120060279928970008804210024058663657502960058794946174576531309883451036822693015244614525731152072920599389887777385052903605343185163359382819516727496730538612700784160489696609341571304510228554981706956018746897072103663548115305392942391262481358824526601631983968730606185485934499875906787385293782761426895222842861740589166057514597708725097746599709370902538656351340622001805464371381628666091219535442735238120914015538477199188264659411028308867924597108801039262003539299035848155888263388831463693204301768594006169836334777614129357464563640961350996418427722274599534706870205917547358779329486069515002277445938605271649078771572321365392159435265715619668245947135283813981044333565473013686601881493808466816199848672010650850736183504128661953835333064512919561145732890851012428325245661052418983209762985694643260779341963008374961325004109868667639250613919660503903319939727989327181378036181316154847890652587626234729904915184944645885309543525217944972900383279934697290631024867455577334068819622905836017311988099202249465007006798712389155258836591345455357048371950339942147177651482803140707397657340843461457658466089075493054021687777093629446529422962433118806553511183985922031084850293383365808071626620821840187655058835602681992873239416536359460767312532898988562673045202080710410723050505063583183113737521181307635682399007171195361948749789465895367188910253042278548944574785975477281650953727607915787244042897375482301836906895525931329065706836871314022088429389628613988034366533069537229346922638684369959409283375945372310872116808202053643808199083983487720957280602013298711088205513520258949801622867422175261651604855187240131420447822083578706876105193970786954216697120006635804339150362959832100132823139289109152726490912439189637630944192026443179323393958399065161075815387526520434460093009080267762859852658373177280442695514289588072011753735614649256785482338004028416794326695983892331775684465930934380975758503706717034991177048168969955453087738308024034984101730307028838718313821789061568487082553184107851825484168632138902844612136628609244098362235113965083973853741569063639416322667341243130058657182622130056149251144196366363821832796384037440009557002002560676048706779517596361276706884020837869942038740946589242787077789057608570545744431536704481996888539142968239408562783175978619785623737355404231756873331850025877909886855704578423148271364563458459697396797123785507233713296457567135214884161579428609877626880355900734492993287409896467483793016832772427489961534818794328227855130086916795959082804481134083570146530034604319916638130041679768802812825155000832484982434560527818423956378932377490190205488498058638234137924531217363765626706657770561407906599860239337991967997156286052164191703964329275110646277337668674058491955502479483887677032578276729730021945211203062992595027896538813025961671580879203348667046479881955951102606662931892611384587985321909299266861263610988656573377082889626497231512158618001642094236381452088325681073660032762384198498474093690164377910221621333987741923307241664040899965196298437501121608279220194103640710505352438677885964852025346739109203520414419736912807598018144716101987266847949699558732517153771943200864341676236442827024240352098115949730434070695739992418449172035745373823769612707423131460619542063512262039546597998662224690903255655954003289169215525300607763741759001902885905567172065422781066888845633294503056613985261263047044344526107483036250904629752033826988570712752037612458831166570329566203843414198602949137926335813635150298319050247738008636930241273336118045087494743040095302468452504654525721028349532214077119152102335757923727051017032035182755517154222779735487695410094400001433583355287554211342021521773686083265021523617102121747386457355509970347885372246687490747237196557671467727359410682961400662407540293606483711026617835050328126168043644973844383672650284028108221850494342541926358256116280815573845428030595348514347170728704184674985459062304177514209023505665934662704816909626777089670269764945093411674382359384152479387910064244959129622770396435287414545369502539312037631788593944688422072499500103280069599582399395215156294729126581717925582162277811880343037089161729671809243690565792372629773639952844443374014401054827183090140901908203759090952098299520563420051753186213539448790571502159800592745354819348007935335166065805724454647932160933460116063213600191856416852981088673853493122285313680384485308680547589946853784422700505231424733345596532956883974050202785079726046642251245850232757711653243916265810843076371627176240342524145518616967235166057618901986281286303222338721516687439637102094922750316407819548375554728947992090101790106403199810309571524507209544511098379829680164800950086661932052779115638283077153323927694115853952816627386475248130280818514745034600804753637128533620114046699988465390721101281050926826059282240117649902403511498437281792587285894689660304878367782565329200337487218501869139250968457478327276581469271370882805377534684586170702298306592146051169699357491891044380891749147790434081878113521672345726619066823751767310419615029841885259939179944446812571782309545039572588228081727648113543591308404627405293603457966128751282982189962903341927671567343527675203743477267649036775427120647713522641766181082634390319580854425242244368072242598256683339292289865245234479015271986430067944066171032521670356555052289735488789303517459826591003122870741054711625604646987330997670049510542609855684721968645741336456424273552495705615610211346303443037541638375765363822205177032246179475657469553648598304209434720311904201435675666395195244264712032738431263649262390176967221168200877419798096104925122872294790482899058215467511950302477824830212495470210716152863781100375250935121461952231002337228758191587001618848032830097372350291293911046302974044021554951144261027558755926031500727662161021657779390950713821675006993793397294880536379336434510853704133051077455975955002835234887427679768850821563940544000359946590236979970918909088620752220714573012299016101704941412112260823665620492270210997717166593051161516175917523794296195072546485551927214772622278516405654091281675019810790319370307676078748056887806606800392368628055516654590406504244853128914817516150429569692355958585675923767784950948850422949608143788437172365013700016646628753804049334563799211279258237171963710834266416260900214531756165863905914395185099026757863630470107369216408953853748429820521453981213882309921158414965824784985483059900810577959757137747554227105800700890067735916812885018705825733908083302453308047746021121754572051977609178119704714882083572855037386833392652457577215375413679945053178043456685893663700634330610674949709495367450365440966466182457458192144407320313146559562093923919098818238993382859847311541337409902434337764221220511920424904161012114741563707541445310938519928134112143086454516312231249831711477651591400769423371920413896614291805920327637613796590179829324660504738848139733601210379998363098588966160267604269621734184453345825506035213350407613300036849656988389526513002000749777379117368617181690993170375182859963747987871305205583627769368957736639636143966870589839701884154969992143764490076031405067079043274107576864355978476521456928020932958231595755920055015065653213510075918866623728688644458537278916621191203119507249775278857938411126424532911625777297219373173767669840499378449686933503679463656145947810545026964222322266139468076966879428574353109392015102935937428435515207826475096317856586377258039016273127172660766709337293766912836722723866153725746754037724492541571366348522734036554815566735128864611734342164622733392654252705256458141712572278875927302904950132991226934366262432635397012366239776917721373197822607348461259479980837425245216923336095663933773803074242486526521543351841414925759346668980330675362328415818628558648611172527215749773703254096710760125133794385240272970369257414018583899805054216091481315528669561868367371161578425369690956177424434704648276509242026237820447244525120109759810902103670309974339406973136036842800563785029409627468201152718494509385675180986021752845144415796161794546441326264300120506052818975396617743648286264187484306574203216084976226421500556424747608789777669434724225078263571882951668492460571282429370416287146396283263069318840515722110254697744874721058426551524997047875232119260232903598783211620976228196586050235628055970502922055506788907867445976697709751443176116359700317961120975105615220416404392868439873705970890150436024711577873057533453528023140049917393374398906745871317315296859705578469833972999104763719114949891743541222568846837053610129626358233375878245845474630930907723332862451385401119874421608651095308948608277374725848395186287040743437549545308787376505038756713651849154767141674848005472517559012916513174630358446106046376033825803669557531880636204267746985604470551537992187675765889341954146252725546215819809480493365812344784067366717252998503851315137681191620983531641161553895761753187442219715670909474180358306433542848549323841606677372393999760094784202015603280698734401241194834889786907117906137151464918185824937728609572004330681294760439843376023633932811021141389378454255653016022596321336214147301896880047742739112448972216861144102575861355983101528691218454366358421429479541248792620948923063927775374404302732222652400531843530139500941655590891258654342607106338492343905495894202506725752390556912949909660401132623944840253521218588689622707599386019310001857729658793641840672341429098239393135643982547975358752514336264537067934249322579938916283746615418010625350195546556365638222141969502680708256428993361921603561613213352976347464870029323941169340697804751386093443814441905618715229381648324144477061576547753788348710173495490672411459289155224477228024673010828324433623629770269981838446873301506192764836898945009861426701288118994377983574105419252076205654131758333271180636451323886329894832606491686392380608920389793632217970645343527262942844780181659241584470542257504147149320861145388061530475753960012361245642827418766978986792133097627376640240751312600509279680831655049650113231572855883384347067538362991583173214747738338476818691539241206979274019078106048995285680175076686197709845614295758720969081967637924092113598493006965912850430967812191188967761674754569887423850111414651250312563854744203352661010284921582897849830233192142470164460322585544739749227557852224453126479640803791885013418218048904512862112506946078068806410405218821888754715016714906558402802366345332404152285639394299143869746199404011153585763105154231764329675745940478773121111174489918279459972738611779545224309369782385443503841588743665951008046389571882586359420804812556536428339816795213332938654584756565156441506993039929518300264713880287590365558603752462177315976442334731580209150673647956339000931564212289883454135339909385693024510577774068374072542033240209533569668857391154755687899508791229301418460238032484167459667291947158640891219514824158915395944081562038877760542382226439040152847260267995394404746197434792440052718801465172654810926758773199393138475393508666790615616442282166639758787659533312293611271367042335644035846381942028173741831094353337825465827515382828700984849490129397378435022996727716493775301793290561263381563719633649034771849018747559576798144543759638541685844394071781519590513345730156778447115168498799062606778636599274832930220728046226905056548075862952869439866382746535265650309904005540001368964326100880285397466476779859198172248680594705862588007538554492339641523953922640502224294450063436809193711997744479596330201013197383997441615498544241329048504459988876438433893330461402883595342151994245955522424841341495760914802619746130227251097189444740654713906118593634559498090046770579720240098238590864662359986537876990927081026757490644823986987246051199622977152119807137388816015610830032668313554038441912088292778076079991635646789871006630680960120099510065732379633332294974281349964436180002576889363858321926590236870858612278719225259863200626137886715718784629941625940803120094395071097579687577964179419435843403635065793489856977480265038815951062391986818452805708442405437810946092610275858632089301504654243165003188807097946166725961109902845936012354890862384225865804828519781037045321418887228557103457805442308040777672901367173571103483195333930718229111485052198414319915162225535116920731198997459844639967561637754528053792949122318765046032091214371814270108851857294180344251729469915854593290844368075359727495241856450291606659063599741079707108936163399014483198489531549884444042082605608025748300711025950940925711345066983689200793666977512381691308177903611481664712434597107612883103277511421247288609851725813004127104017559620877729281525013760079528193528556202663528511009497993667730741966658043223598770214338879731824598142892641509539260979082282627980366901505136257612992922793921337870837240407789821357654327416796601782175406709301802105934051986983489363686373206636072429714354985738327849090301859248964876779756315864452983512767166255540210395795623000736943115931621676340012090717275785885390687765622209340522784791614057717105988613273266295911196648155041955389354511198664441353635736081940507722665862514421874167972368530208902845938834207335098503287509851992019954654990429368593715952964795079820503077614555136741020879792479989692060555560124399288412017803124719551225588105031999909666058849300139373257243791118540379117798326477987219248255570724113113786092610671869113025353899445361885063100843775186054808518359017601396620852502237035745177002465124572349395055151858337279778771208294790365008634511998780959955228117678895228600234931907467056841388654238580696898400482083473472648706181464116519797717851826993991876999346263055123618100370270109507641124392950082116479141837879923062078099236898932309567363887722154321129525422877715980274779283827966553569479056271614753109831305420337360783354361340515168014850336439858452694531162983285111445664688194602259058890920576769729885313615249486134180719113443920501940022742309846488184517260169676180076756795249984827894497738729982612681049172834235259026569919199347100970487731543773186465621654220121803144976170198090763659328408839981715167569901176819985303574623714057543054378259173897530095490323581705881602263065843648500857414059437779076337438499452416896848946223865894799321458440365255607899794379461358460232179775813981853384755224195206486659345608092739615173242703656983371981392688691135625183041423993521710459466652897920733899794184464032823315331227671396753787953155429569938578638805876047979027279653500704003614685555834634036152877720154735601504318628049880263455813318468912639056884022478927689933576117161235617759453265392536083650089802725175783793136756370965178876715281044526210028031798713758103349467487170170000949614341660621328164013411773136228685477444688440527204759452371155498519705323590319616927409793155089034846605384481815381902041497540853395567233278620376544787401369122651866337978803477747077235926430659229862485389057719950258746486134653398510821960237003280009338280826323368687758002837061176441565308225419081141074729437135245399904895381931795964427845173453739229440703761832400327614672007199883830129158050503840327009314065184787424055039050572753927649947720843769001745673062480292017004497422319391069205636753489222546992727533901016738091792162550011380945853353525243610284008666567328010489088249142230121421256754579939955681609192510103860032761978862906231044631855323867963159013628306889802028260852819303372069864058037395732767861831111859244236283500338752799128550999558863846926962906046781229797457326821282104055592045438496107379919450475920171791287237260420419293664931802078593060621963465869125389215224063251546094832368695318331025379117733964285593731421962210723772209419533854379911444598429656216072162519680031576383334349925632066891482753203183771648889371386729003003820505293018753768994780330463553333313486711109793626526552729821239599812612823463498426871547089762953151232579168565695913146369111797103347476988640537213452247398167445003994658292204431800824861772556686311000670076488132797896687452915328422781794808916481656901743444855942327358778266589080378698617323566847918079555456882536617690251452187355393046016203458550626725837927680588287954148518500036833016344096152241189525817518323545200836712071046830806042257752933191061584797358318539436776403739368381686150921330374210238539235235024785160569572660935536710196759152497396130753612179107812495447694051701559908748386728725854974364780294173863582900991241901016964635083520595354923188491770418618753152948546843655610209647064755978571684590984903346141981516772782266129994268307125887875240045930813543379500444128928602843608209614433625445918652804686229570731747890018419612509641700438212674834454671455313591715865754275095652355262591825236831797735925997585867875712115306925118691013769530808880814942073151601946239216200566576232370529776622729044218782334101381887819301373590341072378622949321543763787973583358729134840036369333128585448506093220757829404324256194704484360881632223107584243041127719395247207878463646806000698400912166974270547357533902083528069689263924678912568035944568413181230235530627194474488472455177276227345076639954949326754622192236513026839639299953560095768083541275445325927000600983633524589420871265068549121336539801462501410858249268765711797549366753230634311237883447424777045119603007233341612272042411500624921608845001446012134273097475881445037414101763056820021533248576530445567215576960148450045871822988508752297274741045382978924411166963924658703220962068914501209300381754245106402738949159281879263411964709688998929925528396486875709481171159556948468887324490114143466913502181424892970451864614963079714799793242103403423531239223656817103701234877252378599679840553644276565099736077406938830263971016489673815976251138929761303087225138570131635775388060354523001670733879601922469407295532832288837737224625584314984943410388856795001594694840859155550348599179443273106777548476524269682520541069753781280999002278386647379446656253769195213885947344296512626815765105879422815563987823967736059777775684505695199141959932914062545724238977640509011417679179062296757166356582241814161887756275711772227683679602841764461926815368571450677104164701792163967557007252476290090753078764093861344475500765030618085656475872587363866952149408393816698273260967844363495828331811610322863944808150930258493535260499634512500781984068503064612487635770041316008025497391239214626130328780973303595036678139771068629363102543674943533616672682299320675529665004094881869031878706907361262620351036272133455527506967982885530273749774489434934961277171849023676272081393052782004217130381935706920348361193183239525574476240361883508128234258304964431378267331492931744017816870742904203450695544069833541838820124749312564325341411103519426611705365904523601027814715452224684098186254000995408366901863202679792557742866612094450189269667945581609022640697510028893902761892139349207791773440070763679465946478064041266321235198940621322327413875206505508851914814205675353977671621641809100516676422978539329188933549411951487039978280409245924036388527188955161605328624827220947192165261882857564380415872050912889156940544685279776560506808339708279337591624074894442750927901597076373863161387673926168116722020900193565128976889930419619686962154094934908873609681380196341843237509287109102481463759887971847915954246786073579514722477815191297349351453542366676397152504421616124969728125857181258454529769836679820260025050141158010002672727725106786151948544138157534560102562511916807491798750446156294166485172210514485676825163886251255104748977571326538454164809154854295847605674132075184639587600080137391858890816308498409518562406958166953477615270103855646741830046131817045922669761431845511921003194855736608583319784864333233645407867590079883095634143446642911209023639034174009762853091779074548481657480706477539592731388663242871872012682725893659592577774156578249917255359921068141976835267084288734496153872627850722970061949542516554346926294443470955661783316151253717519925106203713718918907592865842322392045343117970527508581765301739526496738374195508308447009981872152241280339215353196416993489254037996826851395279767436916128531610104393233626644905435058654662584510502673697934382515701060927645730839727662670244356606665344653787895331106936900933364782528243749198396131459494456500654425647389455508923365609890107354676621736155280780633871918180050126085441085220602538482159739667237207606903441088934417048816179505973586853501944335708557009751808153705058956190199083302012606755485501373767780022387507521043940908425478862255033444277513821599031384220263539196274085247487590443834702579268302063178664402713327377262870570500974132391320095513514415368968508961005409434534838063881001967118945875022137498840979149337368025988615260750886887575283055071730738631833252976255372513218521631588782621895613924738702934367643817449904179462287496173213888883780836393137540574178697113647918337367859782383989901263515901331566193242558476730321160931194317149647715866204009910294351124656499880023691948534375843473364070058630627571089847516327938297599369466394820165612953436316707332266416733931528126356828339623556858579758547971636045105179905437413395485126144777257661334309598714998130204654764643251688987788697799611448197743523329552282198315056124634689536520094146595183408936837198700251828726728399566793914480320920208214322075413606755107785020437240948668355878697832311601295046577640197277388442123702544486672482811680624545985191724202465692695935845667871592370723280546061955541163796705910846680923291499390973463641922424785755208971356291376268263922601059459596328191145394496433116882154615418884946488593246742510690054969973140710523834463636954519759333524845565026315432137205438511377858528857193563699940187090444880388412305361874984667312605378959393367253754062078943671773636488314864641254230538566909760823124662672872340270244940972815402282934877260132105873672579783405617580919312142089512766893738444675586177838846850024583208848388694040274233300224955620944799190990894840548975614776296915381997961271804466637606285155123095195108086484235392950760333186594738062472901206157966325373500349554752924604745475671944650720847182471918658849346178917707724735687555168970010303874164161926044306089096810322714413157038463505469183335558460406704733377870566333326165398863250013098557431833981095216833279661010283064371383643759505815207150299889457500670452049404408803215194234960990528748695219573373734839053275698474914455152540110643535158874227229432912421050721080109234666579702388581356831319439713141181255619358907979239156852389809296219966857618347042877123187563486029675519709961706905675629939581653689806794281621546134497435094439361563898288390714450705498544957434092115370336507524818250406823157307119913719551385202342306139948764565492694647264606334412443146459214499317386275681207318192278821227968611165508214271306742497285833375405331236762452551199892275372619123120591688462806976147665981475136921382765659085244378392888057894034190885486767293119798667389695492798452592263715228755563099736193432750629119930635723578002780207427432233419586097517729113473451977649747528799844292226676214757206437897174715810187304155522274387850622727510075506066543725057366046744614101495165828395995207185527966501505315861907092721447293986500292634526511765307162605879137811999293226361011993605813541362220996936548972606000087598667362263811315349393368412577923290131543075209265988215079025235041438405039152038892430002353407493090676356222327629466361415447920427655607880104591037365063134281891468000218938368944586019246791408628080431552552793785365920367486687244212952156395973922214840123553600964663713322471222148245185312526733044688791008172603577953391273884981461384652204257983678819511606715754245818718633148284527044658322606307550501557751819507522330394625395144248175047401279307333360364445744203803996117197822761076623157435507268413072371486147688866303859882893667181038806241472025066319025463444513207817916405007590385631256163552670785039846840834204738053764060016790245092902309726113020869344126898027522853430539356990394102131470059687901060716042630981232135558442692530487742343966667472004396142887173063659890453541870118938425495262390886609121234551695889692995314337721026576294377499519482288952327787610268472005872582769796607657795881936645570706511952058283154735741532533694767698676486189581094845023008011162563233010084826608439051132358714182559537075845784147664550879207280951817009156811332880689173744578812694440314798185270693260652277242220254930272593760078366480412358026012114385398655479986585966314383279131165474205638123684771937189610692154378976892105544731736484119874538412020144187934700718867085583406984630626488557492320762477418480214119145926339410906462169453415214903182477388135142770414861070032256408576257302324724839367652472981456081738447587322375666860049930995139585360738058725668413627758838772534958989876791661186948241375693948700045829240347983342024483230654675733477569866953410721389548002402851981002242267101706255704715989345120958463546301388380648542522829519108146737822271894495735176459749464322530159992309417427249414798077174610258156599553595743460674896402966932254785823978663979695335321586929914803759152874544815014620134002163416177214806108237303694477600952056670294660092803161892185350978212384464577001815613002487112774861443140948940915504086228234503974901880211789198308478733134869461560902975980800349794741931822375312666358624162388331339545223195526924994720967782850743263694801912621415443218678932580501171229952750628842758702811663359802226842272443740835931012275893049654453361214669544174379878108422384080095233544524527428787119822090327763771663262210095423562147936309023243888880597946431741530218408596332261294164199131751822975265390575324400246599887744614074461959490742825288533323054745177134803389340286752479502221290997580667824395885416176468713062638310450394027155381576195901010237286772410301203843541142351955484328101496949569554655238912522912115105513767562445828678515925469210265249664023368645710632752242053752638869872797755585902981134276765622656134181890119156371993288452770575282356362746433890583850859108893143025650060615878198449707861544427259544740721746034842521779176387450809809155341006958190799727623755877902893465337361192329858845432516936138524268244340763982926256388576039760501868250038608655414328511860512709316849936538273678528601873325783137996052868659371378970745995212094516024246323756121848582592056120347037202469912702971536767789542733779363937052237799482351768441495995893236851518971707231767897984051659451794730252827357812255986248182620892708646094280534429207100365080837591459203190700334401086572763568656580883042079955519424323383828049229725022138674472198230232896562422048206190696615655656024787160480576322619014670990489514554428001947485131883592117100116331934269185490938395686456967940305612125028048277270890459689023781722281926812276320648316467314324892437773332316061500635801407756240428239084107290331735961567115804355325766103444294180178400394470009633384175557802345864530906082775823370674289185325137364970530835219815611453369975258089458399671460552576012508641069071629620082040784978049112660493161137631678861147329120337635559330128843391581903898735127036258343555120231112444914518630691612265028593723653583524789726174204255452157291285644001003555748458990487736876349725050531711097931244004057844765613128211226544544001651454673965829786585534096105845454463750811148064211643096416837063333123111432764598521357573325882243249248468150976816901592554444621580554469237415667853793472154555279370165567758435326500082623499563434848610629415148474131622342920595947532981909789701499766869375340172221448025542214427861642014167153470424593853160208138680261118251115526750061572337437140023050700026850158074256053830757777788484710397816274055085300176337407727022319930243234683565511605801450176412459329948984809572483400465200224997722987319837672882279075137160961086387896046450367007163037350139778167960112662104268217388806258208945419792473936352474208185169326332244085758750091507173994872243901256419583357970285973183524834270653692047414985190624142302020662479400205824740407429483227071410277477621417433172561188883842271352913177773785296273107320228564407117562439023397005699498176173850729252909800521594107087761455698409262205423106324417535503752808077329198594419765622814298841138064204701922613188714185262002372507020109845922174442187745562556493437272445347651041668211421170284902585425956852000453504893455956761220308607476541544681822833296485427205631390805397918273106754083270683830767604921728093808753551055647865280203600608746976068648917678722628371825494362938264026050762240831190925746893577937208347079486705510612036526951037302727611508292843538826997246793130305756467199504875143629386694087978851438087440706858920682789482182181476708542853363953109566024154418505950323257057385851984454728173017957998499858339304332608648637606165407726116829692098611481050803091163163142390163593235721083172301114213872522983770666769151294662295045298244201087077266982351351191843889260652027188888049950581251529643742687221069507874859166582989891355490957313711326276249044206071367343934968451672082417766007728540254657841600536515298026695835652438537561273446365251260261586529312840729287665813170550859798038391757245889858898060435498326211612980245210215167584601551306716399636591552869391123988792603823436584223619022987956776506155855619209686549920963552379390677336601287342573915901714433210551798644713230715401026801751815553138135499548401851403886320722064693735785846984903119881920959963607650476298271912789055308340785385258105493161080827066513485020924340136761030268490538305637674087487637977912767073290426164125459145193020769320262823472632322590795438996556957354742515530975802209510312315386659632953525163887505133445703700057067290812015475957642081924659210054012876921558981729346521869434074416656980762334200904817285701207421469286051859086973101360008314131172004826410795823459628102369484933309519995621394113936285214773591551770013302156852792974012285412427849523665113393922834870678096353877710152613373603052702304774655962500023969577378776322207296236224717597615628138028669585701954946042094002738981307073625975167263525049001068675745862455001547352132320818122438781305935227954980810283673308544573467788071174774038961854569740259475205673933639270229500276640486847924159978499014462897581289635990291425968978092561538684132136812503502844147640251599900219633161519026371722645851781791845135083103098849266697375887109690559929176840467652148398959461316577522672188181938315566376286493113472067117759223118915303594309811489331634829862621133438566926288104486558671859309240055624626405230907321341284068066712568816592925781553551248633572314396158993097749061697331063717501076702596113569319460798061433647958658721547375720611868622045280959702884443270950792322220942984763531187013858804927015890859360385708053124887743169008719596899552892672362511689610490290854631109755925644361413803072568283205555197725519202740320370376069703145183544190565384244478019777667487220718248279627327189940832299120627921702782943204966896758236047002767042967027564539451363504431724514852089873708714407814450067574001920730514542479973707968022350884868305781106028163332014931157312195026403608018450931868220908311760186115483979023817916018453508095319933230665530170828232055318125229552770299177815134616845276127519414837106557101836577967199065298246981808351571661835561624858381025157332956841980106950253535922405245601482893618484600304541520821133927370341128764553126751370277111753440866148078712676201272433918509429970822803621768583962278164016020115285318261747784410567129173866693736823873792481412245734433664705227635736171855009715488654606479689638061364291281275543862689526356858604633848630022283203075445260107118760484264480911328648030402644486605517053310026920288279425941326562747833862379104426177535381482014566755035885878492718749023435496241977935523696356420852760708905756615492994670155773293218191183750685888653770818529305090725876603139998683828102011726410745971612818565052711866433277979207795468298363023923798623779430484222256436001989527779953739612483649472648493137041954170426866920480967675051976333635327921300161615710144024431710833933778101836525898089980566466848600589640878270368057703430034307521956710701166640989941235139383878847294031738690443229773233806351479349397999898410230799371364305734269859388279780457876721619205734488916524559028218835576976171440079817139131814635855938117731830262657672837780875107504521922250874807359568550834207174553553047017973182937900558611611554107728803136349555598242536739135363861886543576351002910562870575989711281528627962437917463544777639598045943513329442579960652242887085041111331981371500649111535978095714450820808322865526166522855504406287587594405734019986778119216316387434220863324203981814384458848938571797327889099076269916130548868348980732178855507202846070922032830025402115792458808600710153414165889575555101964680645594410689901296236994594721444181584535653015709287547596119579889698571869121968812792043599104083970633576435835545530287443706530904289928353534617683142379602450685743853899261096145507839408462804422606191342198930769148236833060810880161972577601427284928264586627585985109980623634057030216714895141996117136641737379082118791313872507669177058230887154991589918464182370693048753233552318124410782949427812908749021921110241025124067120258578222767723352064459928586296793390846905987081645485224994743189689968683887587159878945380412163113129721163090926610096628109931998432861869856973519193305556457895378430012111407262142838672296427468898139286976456026792940157802694955919203105552715523294986538613429118873812500001479070400625955617316527029585393475480228660062788867664285160357677799401161224985533060533264390166485088677414081206614825184968921892664223955359185046579623143184813938406114261608596607335061855446409610263309384889551352705725561338712227346024202729023777838842370803697297202114398546928810723045461350287193582984272840178027524968124075112778231538057296921454366820234008294106688163696438145216186855165668760183012782988117647222370884924660408170438620459121070464471976250344772188024637200010301461339511121482857220080405877117224458998446540611146557662364778779732698900658154529122495507453987642546105708977985756769383061524312175224152530356562173106509616751836763613579420865692777401545254766680081252962506320494189602342360596714782511096331059808633593447652355034517721855906390744958753573394348216580746440474380285284656338837186771239928315777569469741618964326467549877606617381183008980912262392927129060949798570780241777368922473936294318212016171700065944382376754446176191647342632859505939712745818057228904129456264416489716063796297530663215690888375863839543507249203182070673769642327477121569123157790655844297580058535031142575679469574629124134780682451436863143885122530841349378826548375939961509758893461872636212320646802833865241406562371826283617741637264898154918915302187748439431037961659850514842739535405518859940247783715602143162239803946492378369136250850512656308832537269103665988851879194050977085041164735069343905777447328942433093799258546937732104529002407156597020378122716310035651325924971327821651605457941180833114841466046375219085283535485719469574006466164738096105645999909634124122329105813137281029703948460047418225916954022784628327951485991383923552796836304683610333979255311592801316150921086391581735221956106743163602863014045667744883799901731301756392038293468254439671288747817021360148891922393812593481361698419824358929885611071575125086153679138640182165370965567916065734233383439450903811686199946965886443182093264213401937425392728379437799419740840272671814307600301358503366585006427929055642710121862826273547927781384281469636875927398740020225126339962349512540874765261341250744881094587456513885823437418359662724127251644802153830765264000904711988943636100363266339585754926389010629212768786117864992127832363436702069733719032317255751729582227507089560404794891739321807535092329021061715292664045059350362641447223542993349211965023082760397096901518482229377196679729013681143675560160645848388020543218229473309521792840878925726030192170613463578360563205611803374309001423159773956469790472871778101244018925576524014773413202494303648823526942888431084595736420143946805854760931255037641043624861693816863823549957530496032037955440105692812440019755972419721913962764235095035586880486214374101374894246282642925221008870977574597493141571544734967252062236385933405025815066379006943363459580939043683501555343595704713636574698733900858332278840018499304904071648231854503622071452087840490414397088083311018178969424165776520687569893932759668776363785614940373408405109649263487452818725136849223772279905566766809048633997422407138397256775741991440423292100999015800489647857703643324740822659438436857626868376103318502769630340700750094694675716421069859860990790204568892027232934351026280288554866516974193245310692737117149423202004631464098163465847232681126677018802309814988760917133401021024854760744023355436259906961731292344341218844798680168041913408040559009687996209174430816543347089420485095771830968023785572745607283082247360308789754457328210306840295329417079163490041904761728232315618750976859817307810724505909525276830725933118391193508922421265691732390222750625418512075690074102038205662484540605440564601431943839863805748390127409198495827220980694176118713210576992794871750761873438849553484731606619404446575577371707183559045993272949695990366493971917675950927664799157009352419395535375927276479624432057073709466681868870903162527695188592017259477946343144870178451061846185450899319791715533113861466257931305244928459925480423183609396973271073701555867004897609998387821821956591535656471539848484752029386126807784450735524793204162549192997685258198904917210836686599013717790660530387356556107476293456557552115773928141449742064862040204603023492345152143543906666837813910599825205296323339077657665301536038803871352710484582428367186296593972814918806466627932115881667295761504501772739803746986651334763579574038878766083566194461661589883733781707847002945887594865869591912073281541479541010288643528441562904877369320584235557156156526968766793626623483943911962676778175573785312743541305786185471482509416729491029059141827250414606361996140043832732671674600842648181057336961517478239095143485096628932992349872935711303734301752591714074590520818569543874903355935068671377706213354944266646485068848647110078010707514304706441204998245374318101527752679868122254407844032388952835617036706191865067525348316638925246623269520485143317654641269806313018970010288397738835263050756596045023560034606658367371404253868580582571672970930894601828736312514129669802650887374270848749955585853840975988686392588618870317802712024982933177490209029285032764736074605535341783813195083647899204085140645974858734769859339196579719713542906001092292915136462340558772554284084821211767670840643634072609895101071685340965007931313180322872764603328387313288334118865106720651547013913536974153602053261983030815672408639083130118991118804602675458481275337087793752884112866045536690908254178136877200140824143211720546482683796248030087716106151867468277839526462070308615885212958355464545712014183893756182148312900168341791592687176669434931932596000808422890914764687815032745591766531998229092416166798299139833877163875411438052495289541532096452485161235888210531377854074188868122251277812865435189723477928873296154714647694746156998902839477909654324599585338303962577580912276152209764329545148029580821471218351420571859812077861221043593956708532810927883156823340092466689612862255993136584990865351545546982362871194512456464361363876526118428058470800205564567196480944156636825623665958668180936969128356858436757034675030560040504325680125949331698728114731188207019163404045281948718668158298206802554511291405930351197901241794230850880706825729682892086090679132686590197867175159845975118746803982987993951870756997266624739635534963372593790434918909226359423189261670177377080228613942477967960172393311286277639910095094647451640762554060952770141364490352860888252781465126766579189941187904357376338989322433452676178728333922561072363238565595600111922967704066708390713440079680582040743046299121732966617988293464977731281872998806955198678676395838767925643924207382427598972801150520741837052768264934894150310035538504510791492262042965644627181308331938884472996723854397827674872114382683007105244017276010426422355853344447067521283573235645102190634942520413623119527491972521027194592200703220253687413588076220181694509677896507474045364687793065649372830043706606807005288910586883664147763330407170650563458767280472244898307204139874253878659269701659943512761209951431683301382766427346761011977024431187296380772512747481495856424898895971810344195236672227101611754592997788416559105506412137546200209250229360637692088891424766783514859962249458338986676496389735089040497719930162058145701219081861452964982065989359438633681711389470071737628253448628997279089791371278814720307253491017966088241827152989484144572900392001850131989169057268820828720819169959408889789508375746915740942247755131657127417954914253912156552891609414400685118314604167113127351664904150516064205353136076235297483539763074367179536729153550136202811329644403935913611454136612803256597513912103588701466760893310617424523215396100598094099821774134956301776907371469408363947053936527708083544200916165848111913138194045679872981572309238397769596103313878481895222747301090943527122282903936807692683170224631858223734020299067877709722194578982043140054485262891768619142762544223360994792897817559794379371927994401970601766508229348955654557297668696940223247066525384675375654618002176912831563059530766350476545444967508666833021720565160444451895708011247028447714014812909487992367778437803875561716397129908053906806852908199553058468817594773456184070201436286854060953574030811985490757651970396485400798342035193247802487248209547292374157791650725803037961724162766067898649426483193653561000991359317667060723428075723744246035312440658378479289985583335427269505039003217902129666980586093359724515065923320178396807574554609244593573085878525930443880241398541541664664373610082725956234821650063486860152525737319704743476754547823206964366259431709026224153858420482918285129529982854664284496444383118246448927077360923951571319820145816271534405286645719149514138478405492371943637261325526115448838571259333455616033893398383540777809897370184215233517108884945402047118375538145041729781846240834236291587478133836609878707560378943697395300566434927216456339474757390554453459679800973565602278444920262037903744237886625359229964219728865862877298195864701157354685619777637035705899596266484528675520911421440610265226435864929320581646567401111552730172625840205824515930165924053662904359307523481201154186985957031322828748895776276875294133390068994764375737826602411472401355093673115854372341212742825956526560828036429347464987969597705333894174518560014849653825799524457723703482504618246093788103485290290007734072719041887502273893439094027747542174289832980540899576338024399110037624076637075452520361689465956416349527966692711025528436831681408712683205174379065418465284015883732362802909447841934459531357238553764985108488193954423845097945932086622268127663164548013879006993962887833546592921407842572472969622764663782514333689508955220634614723483732740198067290842594455913983795027732775895810755494327593314118806331478872635871856539039666952633303654137842991608677944819748183352584185788103243359947383516789137834902740876948572218773340637340081643193158676183758961955213297615351782830781324384109878382263023392423254971043709151612541264693359759595489443566025413111551984749206478946459568058817602118497664763435058791172474862512435354246048752967976023773778289311365959876191979010002037972221707751856033626164153209077007886931986372631096455257727760269071206642760737688596485852395072710847887383810969351731158656962098677921348372135807305581124511903055145431096759305720289364407773609000573325851031245394591222986872424982841266824340068938793799628356868415154845046160013465224226264899763930365788481663057696974961975509368344158008796707654659973139766023901186382699498555877781027780399310281287614866277110872533837343334269256005388366719392688466703749752693551769722196279147938878394947504196850418463454527517133755652373296004361606462865201461213466287494833273550672847518370402536316293678807945654587249052391565072475050353698545850026187491718482189657567173879217569520054541471576863507005018038733167047047564246819729166188712803482261227996229657012423252631585361401238134539622004997413300651567148876612789123331112800078819628516161905525840590903752936766003838901378582554617176820052051812007467280046494823024165665967207109934802473865400125984903976807306036188738916351121121504980319459758674699027765411167048950157463082062129784996224740649098051106275494813250302436986893895206918765391822497686163363868504867207840702019957766681955838280329407892935329938782640339764886794906371339047017532194239916954394332886995729455669781109633787169983277086034906728885679412648414354107923469543902442328848134396404272747850469621483586169181510439708213847757613567001137131026179769557086911557348005529096484843360810058370036870985328060242591246221432555649673679128881286607283722058437708373971869742567173273002843422864536893177304296333659163115587679495196569320748046848415664806213272126220598763354539106093660856551200246969673408259850731888662975718710533360608167949356169836508501345604490288831975338710368828965038611841846617506462195450470287287138645492208278550699726104489034087688331280944274543441027530706590524543313146251212005960275815727958831526237891015778286421853907643352036503129362060209079521609608070407311951711088045424225282302478860692975905609645233686681406251278207063496961384214465833287288778992223670346747199000811110983216395256806634896329149034097577963972931036310301471861242838786746098675431038690981716437827639496250700315158731274285273086923971099551273870702013802410832947037731894156751201479456074006379835988677815507057639590466052189700781786073570360578842677657331184245060624018590222649763207378387353831100430472698190142397876684798460855248271595839463787114707155349530765388921719777124785904806407427251816290983574547343902727071828631442339043031926709649072367006021914333854306380849418791351346667597666850362911064284580368640670488801398865571236082669053628974902192468473998662481721009177872993061845056143022426892041594951900224583435722325659020411098513796131622416905787607452800233397030161425166299274911959863006034881646339200369438994832224083959805153720342850183026914378563275568215608069288846264604016667730292060730738714660961928027630183624328008650655607038358561468674703517664943547258854170533885255478252764243319838887565867020256246552203761616719986113897735533783198433527614660148323989656727111913261017228611015236246591288279292630210128854538523991419366532941466296450484451091957169073623229234668116584701158893129674596060679893238447391737181595263635593963643677650866361460261287085307140923312266024638786625217192655477386619246224012961532160084601011084289799969558102645996003405430588718663378177461251041497694131600919561003762354645655351743474273847712927500701709858411947276777428860735175133927384018515122523860079919388555774720031753973341485964108782927518857086457113586073471681494034406031232139023475779530518538960135731071961978691633480355004924726581754167786921165483449802647847109291265590881165880896852488027011460562452706307832606227846282225958708738929037831975369317655814369831715701328958406048052285742612701377726748860870867861988985571768494177663430083995485917761810886182258353642794975687249112103029262427975181706846989533014468972629162687562792945663352864612272609355817339342051129950383404913592405686719067288807765115504337257741444768897562526552256120926096469107259462053223581474290872595839827703222095366189134100299969001638051299978261035058174942608747562846331796590149000730603476675318906608792705878564498306982209690270222911404825129871430597901150956132597656940133693794340036087812282033030641549446625895967310161706227299925284585243672504380900106453273266942539502795857779476094259201319274169895323638120146324998211230607988415973132507399149760879765945034483416510886355561025386143748552119049826949022078688283402794004550762108529545295316627632557945293979264513980018659969505451936094853774921520386113852892890360864807762126760093865971950651243099665852898621375654037222735606039776071553299916668842787397123579056943054329172869622141125860000002450517802417183801661819815656579137569747787571834402758794525483996822960147830294137889841802382121759774670461759125330432003454027289294594388207437293228733646950806622762065189402935758854645705398821505315378401950167219881102128644960222524448663304079195145447466545978064076717973791128489694882772990975706036183390976375441149833835987826934048504876607826593027945297652449206158426653920248554993258253197895702608565289799768453941840486009341822525673302698141007218779493120991858366736089739704595344743929102186929535958066324382998817125813010425657144625385289909152460306912294724574159681327087033628388443348096147706974055994537848776002677296742929643167508083899857563075480761717118884687821003861435957114849895787636468887425258665585174732944258296096602383442647955350896717084982438129064261258935241291992737170170601496756975262925781658687259390971332847140845398677175108822690672870080607208421970346005001396401969984413896145654241504989616216265524937039874336787123409871244878734369184019617782668267549372238195156205249232837562629599410892281853175872941146332421719906721583022634595594598280668494192028933027445797941254478844873427109871663057400551562070899815553770537204690427074141082461989504620683073848029855236533873405435338861848897647302206003758509199204328328829024642975041023754190355673014365179053339389212031814406852807579825591046997055508683603976015288305273603534868511460234563180076928545624359466209549269622634972231318980016131813000331897010720222860942795796877858402965466330904041651870337227021157835626453178955374118244170622736359938089955763450475239154888088581854109996777555074844618100015649591445927898497465838394040807123532291923762643718040225657373140228835235962612621082362817722984203949023944796307162454589836133876205676489977225338466359110014918166268538166957128305611074540172449158151717536377671275709644560749108725293251624667999869817779306073487477332663889306027286878875588756625663562208676564446297797097294259888133120662940285222559882997539236050834383312425832366017928134913536376506265886903970043064413838799168500985770681218293452183313003025242362032960818341179514800369368744226466197501520202111435101744409722765856257342519650572269093827619166895872548470568176416663229853075761104662979549213092976563834778148180227381046253146981423339565816063087528788378060696624410341149847860513867178024779095885249292668513915456435214632119795425956100373218677576213356093893075064153901677521624183441399870473849699071240628977144441461347578140345263523530623710307112394059119406934883587999470709695063848235201310534566503485849436026875811979214997649365226648978676621807491323526374119054124456012537667317818051626690664656540020299800928781987217897684633549320889328655526847996988524469469292412149709125306839088088816464981463900192759049736532682058279891272961631302395705116962773024070792055564135068892340866475239626622136446563992325138372372383253678131703063187351342630052096912200268220125151821926931269067063894940433038051973879661514651422655283587340932921270501619640483522696992303694037526143399873034892811484407343543045766392662853398143972830548700925714944396339320146936218765090615309712386093132613387739419690016430055942216675398363569611215270772852686216277783783074820405751802161252954390628209371124842681350525081879534358288762007716392516889475466665114429362296105055972205145293461591255692803631736534277379212909263719718912384752155203535918729815428415655584309040858922134597631600977861437124958936162715417755849674397068597437506681159449624881962247366821060412251098846021616758847910874859029799631794124286485105455482746291657311637428223698197931031371376748818530561702535187128859497260427143145921756710879357014629913570025349772997625637808841891224815621579885479435390684158595057951249986996463067985667780837642479868874987554285643140588926236451515263516691762961995073711452980998141030986080133479534970831630252639818337141123176273535159649614577553183149587843541093116824480588431455755072231559484205365104624840985509978351165382614883031641628159189577642296695126097792705217981202693118034126515466629110036305050762694679034487144789438039256548951211443495708359870848524087985733635152257629301787618356949028756732209968898485286984673412456902105102001936287531762478423644272144930394224268953938525236037861794295558241961672530053848936774742936052666884627891916575114971187265029566720175906733478038692231623114684773573276162969684994582202589477294201485552342394268842595786857154099050367927227347066797230259735530110284341788712547099755536492385746231700102114201447319522910231430636098236577485834846472228775661002906567580021630636802238806647433645671415553886966639956307434333188916859355842779759469096565568156881468937556175209567838308745813923989932599985442387316918655315762121239135600540640735405888166630685312718236690613794642355407609085470835658140127286974542451346516974116928005579973135599826475185950490741206482187936108206740728530045285830924277027204573589907867978944099469687192038800312861391408244281395115544943462941949740449910000575845700296458752835139300437005469339075636794330007255027371959929858677233215332379661490465970161899008917874595022218593223543444510806474230372356122489508007940283688624227160805155787285188819952149029481302782375841203418242093057645395979706045720989051211911151559591625364188697605293025815372242183267880087443745435278556410419606560425388885857296130081026536173058260791599429276111448872007809450360198003402854208049816125230937216766394537194783521385399449519697241499232112446848710578878502827036270250202733341281094992930473263888538395728107830472730785438956615740750564074068182784888795525504712325014638218599347322868249649808960489952647890308061723622119169186133095607856658369418988958234073331469144296648898275303845781223384197133696962106159828246676215246797743901351294747531739421193129930264175036375215224204273150403475352844040396407262126403581231659287475310561520611716536650753214787789240503746955901879323573391722169946043260362343321688474283728102003273368986220163866371440159049230366084799490175980169486100860897045950562656640036543332462364381660200115513859314426730556078588237831633812883390766331565294237583635797983758311562541301911180548224767339602059325648527069301943579887937482668270649514383817526195212105874068753116783765434007270677084596206566851029741759410897438876197895914287700752717335488546449973179550208349161558752833962778962072304184679607100365800867340038410055423375639883093125874970653582182691908079900190487932952580978849323171224012398799471509280592939900445305525491772553912553017241020817335569535739801568691139479962166856634034488205716504404682306703049859149719282522326447470609772851317772422181342085671323315442265929759905711449376146751809083395908555471295571144309051858926399600299415789138618417085714831029041237302563333945626507956517676771317262146254989438266372713699121880692824521901734297116783764181755171910400031163283859527661333929029510867185809493963071018733720445124128323687121081812862214466558784847938932486111158004498600602861876279088178026054156976689055312181619495023394441139333104354868786806114880187259580651174938938997929047881478691926113771567481593545533161527526995759954356375505825211584616547920662885552591718213095858700595329719023706660760364156656428324768753182932526877938281861681563083780664686590758044254465030482575164107846774887660280955639552354298833075663977644277994038055743105452096521848332890220937770116708246543185677297636593392089232740539006952045738749331140366240325352171313735209879371735324515641890667019819924808820212752538891146391066824681944772847627878313063272613063344538119634041297419929434692988207923900281581101107422176963609407132517362613808077302955492603388252045083402308188140539607140880217416373154269976438265425812950059620009527195321269003542290278538598215897806483021045126094784962729226793730399556397536732764141040327006498828681299211993407316670815218250552321545653134411019199684251543181467633512126995194784886561798016625969716604533773050069528832073494523388075674795674410757100326226629727541910273578357572795271546028075780211430393136513278228986412920637341435673504756225624980967016102536706010862925605688736487315826359464986062518191423702563918052235498601588212149507158377267437465178249752273142647540423633834459438451577107737583349073454997179296359745084073621414469152708065395459026070412116342137389077026946948195172720516140840017925709807832144392771102839590819631138763630750540131339081355571882957771106749612321292476596477675094160432899756704531294673489842385660097281219759378094909333750852856229934739035715790676556747398421689757963546294022878760631023938504542786206414506497768862286337989316587334776384537057830845797002276029131594861978921995539579266579720609220049914903222566854108189518595986904018531198181033164320695941372553463885497903746570540920407544972184254002400117747921067221936210338161268365442925509621816784914234542563478398527542515702848290865339095349204202720035935930928589057705101773065256137562505926476237308833508622132826795263539497085988824541484204408060685788628622681047629832933147444878981438335217104080919822021317965667744089983419971282795630333582946821011122305069893314254812765001329261441314094147118127598439858146984642390410081369789258980675708893973560738428192090341383033625043820488464578098678345869674559160161562012799871671104290916615792897869237461860723238102766856966343396264106902214087598983383207495907905235703869837904429804797636319596865174440962018778865226475132250021440539877597987112026085233400296111677465925926071821691389477978853169766923599438646982156348827691792825203355740820512803179791834699872345156600119644507915430033839324914436769313200255815433327032147738137568803267003402821762742645457791493129808497536841916661096076490002010164480230842356341321556366223627976231247204702051297061198885974026260475318650348102780170492626361172044238677556384784830188849146972956842724765435583228948785956564885358597075946246308001430429382133171346049894539483859982291231248997815102343742024265372454435473086771955959894270491920132435427298971612597371661343633615875503338214623898630734345417562676227310537742750732021402624624823812696607663488725481339703499220091959943104560586946975541341805974920016060934848024075240559998270032701789797686329323432853906931622760952540584358305560051771256435551791963231707878695500449716094805364036125875348047977807554613012880263247146929352108019008204777116659436471670060330528015110435731853307646450246439621563671762661090461516017380758271141260503775267782294607196228431323117748597865928888086803901597827764980139361744426946651442935666095354546499855462215488847324081666366143717419415112746240500179352330953888871290329578084158079403513333073639819350767278416787266324426397927786424443061659600665587498268137714658530964831056573655246774045411225664723311883543427761170639518094681250423349161823380051315395590700453547311804070313908230019211563832990120595391158573651765910311281369054505028135858491967837748017441145506461428757290769835711844100552860601889488752105153902046925581930677279627964142152196509216487787837577711878774440912871936964689213225846999632595276381645501056621467462411626023397563604967542471659560940564536738035751029847115128320174056128676837635035644229680884797547877716637219161425565953432028124149198086284199223335481548018293188391193736497597273468019184044216414279943245749720900151502655072951438510903581727341278078202955949062106459029531733495623901982047299463341215196354624339230274943335549406619053126825493191451285626277328344917471382654120381980326234649183127138210756411557835228828907231364447633679087669483492297413631665449447993072115368242633892385749135089241307495473576248527132078843611236903350397746031880330915018178003150230616509806652798088072938651001772391855432833430647223414645745970846887493840576184338251868946221972960094649448365104459495394050138240359382435322807949639656811806913231308248353720287328637302561179942617555100510162449838207464166661997344934471519873308226334977622560617354958385093315258284941309640255536718639906760919464654817998959972709287712467906141772634219119556881955133275043048171527946305081845386809258715430690816142691137654845132506629093666725825719622898569493921318997812892328521171034833841702757780332063623450856907001772845928174342796890707440657141082939823468118163041451760950230123544708226853713057231067410546551539887950901637968516581019832615503771688267086485413575086239434283782845126909054578041857748826528339153598144679605130300834704162259333458709959801713176386684572126858470756665832445573741666167297694621316485007484626844540121897454088233978760389765692722376905869264272989951897730608912904784561573586825070541375048837254826483406491660933170337905756004423813279326912711973383841526008923425032483526285045139032360382273545197354815178323262830452705382972220417846880618012129363321897832134312724159840349198395924081672710016512154307386508580983356970556367238309667835651408204332556999352726282858775124136365804166107143816424271104819635982361992881744467301648047103900477409137645811000050412111999939081970575443323513365295903005965125498283935206641010912743427067358317670162481127157319113172770650046937511207241284396495983962795171594317475781783392057307067182156706665542229249543663807631285080248803081888148051265378298207390280400035565686848070624951318571463261635025364399869935418435030935553426669577436406270010428682031657083630846383671913205858292397699903072200061338696453681715489629006913793087221125723351116731733464948481998233092033026021666587139008359979905074535340481329830528418972658118226321880846693239517680352285686136549882851218554493208260370789998427371726829753151283816130303860314225142009575247899075647827174140893222248505303008672518531282769861582947959297742606310169715975167316633956032009208556637230051691034515835831163870286126034280112952911069249590484769954801590851577705969455428340468130464813282425062320966808748131956512889335037250930438376799623501346186065268776946462516771584970452653595172758316030923824750916098785451341133808229301823059198658309587061403238216566842518910976168309002859047335718189167935509970956724142675416878191292952510798619298007169941219164129381617422803083815488502808836869078055686643032972310341866546380413632679456956435744586706388134306332883304402818951614612929430966575384473246460743943576614427824703805392498750584923977574776655889939091610663407434189625964600349158766350793082069586148998307940954087106211719025588773129015259510959205782972055591783222948657934651486033976820044876985686517170138689851327822240564253059992576479075303128776248091026647411726380209962902056608503509575284316774801181178581555939967310129287070598589887568609339276248824038616128407654722922896896721902036365718925472282547200198395931617575538954142508755341804117814844797400167983530684924981529285994236289411062592917326677689091858235866735394801051803774055510822236786042150087957665727579171667040399697108095059997906467561458183126438585051746698715489670562679599996999033480308599067712976654010185361074047377825099762646847607913159531679751331386287027587985321047077851881299806628286955751138785604815152403060631856664283799367276764343100515012802646978553883954036032403107803250186230151414752512346431194846870352565314928837329590763565636798521423829535524809567543193760738726535502252407331931852019286218447855210873258100264495739276013359690647705341912821618099649960490306342487313128125464026580647811806250303575540146320840655014305148094663912717433320858236369055953612366507297599219745276159278229256207154956633390344785063810693131817454206795162763982616758752279805289028837838682325080455873485108969090765156972580156177153179829796259212033769788994133490016973836834980195817932142040064813822929736522612319453339245683335104468618422116791828454832896038906567015936417189093977478418795571130302200010989032682176001441734981506011786295310945455634406608954159415088008104975821789979337114207154192918553710241493109606629965783178784604679980013341838547821878307800911085572807991427952574358915486608384981261937773208235228154076753868095325399419183022432686406100096666890156134680011581292146002839159215132908460690280418538910899304300240591836640154130740432308212135696463691467727240854550439258742089374674989492282750157973465168423221521870348153743699411864983115660559471251570374398131957344866130530372458995087053123358026009075002346744900031297403706916366879441486892110598339371821603820311207165994981872736457218897726857099579114771449866842999527581134680168216559787124249162530099543178684607037965678944565075732945509179922977245344109073699765504777146089733126066528512072990600044839833634423716219022208863812200475097874752300263004395400207993150840035255425512614125851280179114999311653650413082822532519171925335487278904136213576148605856865291544153358319693199768721184914579838400711220367681242977564104076450367359762715641655532541178768808756386288671122586607688586120172948775178593694230793022566255202875982941282836635322310135003236995294562504474456881151364947952372093192982381896521353849340668333756543066810453885350033944744758944572832502334949967754049357732153061528998004974086709460120211888514472712568302918977530118456259769851777583498085158447551179596274599950602039654303975817566310801522283724129266773744826484235886875841419154551017294571797467739801099497008504711155697286736393202184528063647145974562665519645345563606071596488975591929087450451938578420890633778053896946243331796392867807936015706915080750910944856862325692671372337810000047120173319820322572605954509609408744254797192095552933632408155081747423707905648812584071730572061777568823889174874871899187312972415395789181772806666298334055925174392643661732770414064671443788125869129413943047689622524604263865329600681526805022582614506840873925910914190352779658959216573449257176169039110263669715738950242675904787418038195253236829002919727733666656197137657172200844932079509276347942033789086234045368120344888549663570945725980282859456635456408746574907030992522394838727483516597595243472530848547995984376996423991806300977292577983583284275887620337852877346959595910112767827510612812944034858560907807917565222895563545897865485860000230620223242585974103629769833207719322500704813899890315723079186852691563133446228890019371978186353746921419786085058101955339509456442476938439038443213021624899225694839327277206555037403222708653307914628639540206962250735836190774284281691382930406753215182339607099665202813125282947625150175743680211698013238904530501597791954544497722824966518328569648125376555912867593500971252699496568331622198794191082067912315061681122259670595494679358159566310591895733170334322147251727330709360556449652503715306781814432514969395302849049664899216991248464510421618081410089677423106887488826971347399729684599294049319463316830084243796740953299532337176481226360544770202644898004297857864595073884857356531942076426454628070429642325447490470264238195336571888761192608636527366051024545646418561651765759829639026860363416583615471195557999778525609818136722313882726937553364453870817286291386996927883731132057152373907059809426193167437200401473119245031793274955179411589246672316661252646508620393943764115864656269577872326233876833915833445253494940085893161451740094553810375236646594145848487697278851664229515811912388508289531252133208026133296641578839181073567584213867243111488921310674705925721203290860806426700354927093334164384508071833834668943890017255909525706263854041495622491481710319314811407055342731429379315490339873748060610026249105208694046008381584993415094918382201953428558460690369523795848938290852807375339505853853067165958638312330929984875769499377056915476947805348657905379067287532289038183393184416879760354151962365475885969798191286924351110007041891699338171084352940721232666069259701247333544498896535406399452490977596679927687669559933843182137696341222023816960525744600439970509579626981032967499443332078878146641401895988067877966124942617575172991015373689109465858194034073154561454356006638254693069331940811220818929401153492124784476880201660202983767040151707536146368383512733131944151523235957667955458236147418245260568194555092896001050109836515611238043073772324048375217973821731277989303128370315202351785934609165459464263955823336581723341036814114697395179311417522749354899931966425327669117431750541281848189364625721662873156634441868480010986680739637717128219773198272692699459463457591297897351997792087645226798817615911210816168075320937718443358138557062411588322893523531874798581544576239294957371877081668920424384407675563122470410327195623784609708402811412895000631238137260963740645443482812154944545334576112547636486186500807055379700697667477477315747918317908263938321101399843680905548890326059364627190333160540269123245439758130338340225224659512375092593178430280593322995830017577356996795316903313253626049365474862487952773108943389933424352826236659796382093622405530299254955777409697522905396767662753567002612804668726024202514851573704600371093879103198339289985074313068078076044368017389936568590647269155559002592364544525389344514264185533621589387031688453142378439807714394275135235024059544588612964217030183819735131552894385215658894917447545737678715203927451227270743555145347976597337428002403587189294021005529897241780036764367088345652468382456788736670280567883882649356730716132998246985716705212786236637789473582242204650328875632899455888670684451758081279110942257267676407692646567279588497050076166413267845064134380780316321827581517616564239270211184117994413009585383331882930944056870680845737658139553680880691835063877120655635353507129504019325073853003840411449632444908648069265274885958929254659827961886669786573816628355822359049076723917592989845541949231482051044840844048239488577659206982685892122465204441282528821876940014029230424923743505843163506336587730797365222574826240008028264602934954180113880652797212849497970300892572485332275324555764478616364521946014797399552334434454857775290348968947901628994998964704658666938239735105826140154412254334754281702052114722165094086895925316856529501650194086992777072377421511328749249738832163272902431556200988166011839881348175635409066684648055962585884074668169407960028983512830715701514878369464952653863666951342915318669005872669742905560751864465032337707967146045428405506716379467834178178581279617657236911683387626819999641688402412051389723631978328700107712901565295848704077552754593378051694401021727162255285795354716493018160909337514013479670956496134543376425989745717112004762682491892717542209596153234547929206056453471880899616863534451307682899120372922875208935686078783838209012155514664885024433042088769316218279738639710756004331798097313859435495397868496669891992684314080712545388026209938543265716819791166177562671985769538572505950886503182922398406230819170576611902275561961526952778687457007721625875709848750423694798388095244587276687504985448002406142838241756510633698426485321289692176536734774719851244288149681242943531136851527165424857615715356671950353445273456334414031108016290076115195973368340720330314613484595435094770324239085349563640883575536625566974461679785225742941184339399126336413000645300189103131974808373339153516904951945243270012036422025051035673820425115791138075783475252664773090154204763836913091532763311751568007909533607443720402213165232203075777097409320201437789123812903020963868795415970635177871500211639323576526615863032472948195663156246182354190268849338811951658573202686548922093210810063030704151658694475406678053026437511274597388674196254636008955098163727389329610988080911954709591190860590550478390899646696363732829831721021950258498305572714963411978525947272282918778571615577562401854884912458344249084869734525050260118124554421905799015571723427281143765483799609939761953787703556616138730662088408327152747085130239675126487880793135514710557667289930370335995409682060574430459223262736994742648560506048850210275786420984896125632039131354285694219285527558638988534508683013547519019382204847198538919856760007908456207264804363556855354078970948255915637614906038865766413773233070275971187743844627921625550640886142760265008734325916593561151862550097084253368978180344507324953464393468962239606664216695240767780832379910340962403562743569148305429273614646986293259510509941422517289188115893073186589262570703905967977485596860345028400736241560715022779715126276758236990764584112783380123950733043403595614868730726626741533943146868115836542438122193322402558019735882652345565193235281913625225885846985775979182428511559967514003862119873605603273581258216204406636955718681661510624200076840273713114520912751598135032843148336557661082992786158586207647666334506220703511057925315535698752436577542781473667821365110425161771960309549303172930272210454255413017420305143302476811318727974174141030445013908685899386181957623350219342998289722018428332120015091269263496307837398943961385296728468188095917807873883856929445225475845269953588530895747426938023712654850894500868555212860031252454028679781874837153991059808174371213327251653493115837421945241688531336506479208030970074880150339368059307753703819868604060988549216743494433856618029385047630205799632766762800223494689389977005894324534312165772964097497537218209942575555429476145477341230096501315249533052656788015177545428947059348160754065033758623646775134019719365745385535269254869573909756991807890667741270516178480165532160335061933099596943907903893366619529549414431985452751848239177698022939669409005158929272552622535904345829076739782938610797877430672733209780339501445747022607678753408720681102025122614700580816259156360895432858927056794348805531133042738862950290901437349588334430605613848473281500128264710862613358322686887760113423659997632604837321338584631375039983886222754162789780814010319769090110157524771463758246247371914096874367717838400987966962806110932444677003072112756505362733724033613331993238134394148206187631244758567196470563164325509473463973095974017152113575760819789686889827969194164020894922569414671117758104805736344261847027121295749099351907332814402125572274704611624459181003964442896091767406802583180755704254659240862886419589421411009923520759376061284843943946327523695332050769404311689217366470368610553313636734130335568720330687036646999694977910980791657378076968006292377670315039669124026295852241862459377232410521523144969305278175978202462030219567666795002972529302438811335524365341081024900434979158817834281216752729115869089064241871807010997451386883126084010677065848789189454845040502293941457695049660177761703879510092630369188378703956876568944783399533560776584438016193988289842288534191199123291803525644246582077667765860471236554949348993725147509815391516935571899127812294015283724973904096968465250359134206330232675269775195442993576792659300766442275366401440308655602785910493643609657988188459914675098193113701178359953860735541488033210806688672325706836606721280164840739537665725778157630806209337485896640907056901468672478575756663197314992325095359253962433072197826156931759378664536395483608655001824532393342666853564179791805878236333009728842915270280588176215150562570083079735984182615184559184790638502501984117528200547552919961870953188337586491602797119031372967535762329602838651971374899184289940941026988694362922158975798952306790064671214706572767546687296909557430076329052336399271276381781146877284556466858053675679997347624123867121759186558307292977078363981323439305241076574997067092623778609351187484169987391411197189977622191104521223370107263380211329044636131875182956828908531611270855444028291171200688823076067480596862763156836918510166772943393992167465490815215680343370174928707465335632802071483849051047352774529718401213721531475398432750817829036959006504946221166532069427969819653621372867332179625659044759920635123357993966571848000827774051541855708342073988326691751952769374034491199837342554615032947263987063585831078866295907454882567265206901185048890471929193221403241697525133909532152622345828632692382176000999630012026920523557048043249598753505541947860403002373027112773734920244016291074473457753137693028066757247330120040376842192012743648905738225791512466752361417495741289368752631481025405226880413094226753488056088976406101327081770294058646370777213334034005340338235744480177658259402934265065034660731999792671482753883319301445524919321962438405160964957315274371713757590758829854672702419569924338028220907997509463476475277164278717973382621341530112212992554492666254971618243161223011996523518058773264138917190227631336562274052373247031076559524074362363218646785334038941579510498332599408415573852257497045838374496118131601813934261248874706729727248735566556508998365336702895635778165351775032188714625588967215073960742663578079883684321028835327314188130984178948898546319647715975991834076723654631938034677693229946459952960484991803873737958289156346169210560524482579021973922429768895129582592054450988657778018682250458005123027552402866168197942657409187440400867601321784974996376972213854569169351189845791117385870708416637839501940419523709074486303671676782534892666110808395692299453802075399426586499997154399423588714257489162774189564406950271495456180196294275538289772699852663195583074267788620119483732666426754322127967273452554377773581723917325247895172861771493719528951311238492461012004584182884248870159619294042689312698151132339566267176125880058628272726689094419936444490946267285084831411751883182270809735746025648529271387174516626180318346639056967677504995532611978802330679368885565386179782631295230479540613976070082419858924318197785485952754243994504401011215689355609970433399765840561006214261246439810128429343011469893363674410556762574633403840877500238627090118140836898541898665885016641196187461841971302206086055077305543366985221764388677399821037464886714600982552708170498093191915472991694962776057191928301462631572488724209340026723232065035728216241285108265861738340711736027587309299092399186876549518454879794890685743200554287837831031204283092749853953955669126262850638078423661695170947405413277290240771226944613877480307958985052294223736044970965854400890320689635255879161980908813943985723033165067432727851349525778518205561345409284268300452342775663254938084298777198948445256806393490621178194986636061072770130348348880978486639809613156178820861798070334436368768530575144948680885842143119718618598079819695927916899735929895573119619053209140362958521610927615701355675801619444831456434493686173968723055277400944730883499611763244642199103442926628665556186640631153447841649761535035529770532991484538671211325834724884299326011312994474623924513587664865199104495415063281351329848193939849540467161796025195722354918425071971985979304251137901315587166729236264856725436670074326716037434243656899325628751349997822045266144219451588124444119958375588358923933576225332448495804658906192854273932890032599385914553009097926195029543918430144629601753649438850512988349387977013477491328009447177881869205359487876623091110320293006991883158282347607765710929861832237060391536310844462728893471351268732144073697199503359556459505305175288635957638257661098720662163565314796262244526857379080966103764881741766449845143874908329478550150983742542513117152880023598951053762536162482918698099220896413273722159907702916479553373508855357774790501753386506323641596379391091037974923687209609023649766899311706164087775929987711327168585777051813273214315170090529762917974659044050782027698880876534529350230794153646129606176151429672650280326962764994626267085836913655481223256388895022504540876689630290922842401217601721220980857787107037242636729126840760430936829013144226975666086070469747400013710146467214500075413307983872084126100467090464091944108068493851373241384884960254205178615406313956825936593813735818766959595628236068954039305504826530069318289653619901237164328872897360109523984463242216759351178180373879452661804533150090065248327893249255465579880339435411999228008264178089204691193267343556416805702714902931993889279834815344476634030642318175694651994067064625595666505014256703971855559707238885805706984141083981759101388319921419884280909601737158946669914950122770759949323010456275488545484037019974557506500892081538731558133332652611067944057307930232694749436104552265009665908617123157886049158190416484874645073940177897381955862775750860411709918739277776467876574105674238441512542449358081488973106994741667956257803869033122063066279447377592774635330042939289078157112678547155749264708651949380607876336223228245489338378115533636050895266868990966498936039159808478379326772410687855158948852137457310158324110235192542778912370000903878039726698777783283633314059279799140504685284324154238707888386019779380234114499155359434155793697004827109017706692075133459642726785959303875321927482826562001303570312655183060167637134368671653301267842093391084861287120851188664355276822874131566231381677163207962976839542687573727335517559745028164383508780275841600864826185309126331275594646589413480649796163232698946665007498123844518630763457859262348756925953189714533668834553084940962575824334036336117051607437328577222042393908090620434081586117166688433384547674509557568425746735210210465971070555593230833935746846497068090483068312067236510772631774515894409830596123918011178590720433173873510578600924141647339382869566337087218844512000777589397090722551909381796483213439155559511320362006723880606826806519509670900937415668937886640218848067145174313686689324823647514942915594114592306484942517916125399214808212796121369989648133933106656592338539184710214922991250033269207540931071217823161702558583951658543382282059756706240541222744679440028962998361650190725960953713377505982838458366843953092417019355926521264062442249707850151249497122744353090472539582777370051557062180403469743206118395652370488772913983435482114727674676856217632173454515601040058387800221289170041691486693207437438883077553777941908778223475176086445374422574438406859947908396590197129109241170722272586001082753618682581668061070713354360949698456550126626111243323392848518314465062404326593163069617589610644022522744222845327608471206775917896871343884155795998524566666194242536675804730948143042268718018190890894846093771747934053701492372738803490058816626495462078914967848914737872425883247263478797254086493168239914722241520099530832386603112907587795337774849542103417436126714708378228451098198746119504611138075466195469880196049011911937093642222519807566167566317556363283512759525703772379029953927952871234546172424628070448227315473144793513047321358750418190477804403270145347972344786571462687606884756946670998083702489752860211928023771203315684795401397270953096551088197339403185626081427306031632743264488133719402634359279889397701360130072916354659755812449327643788522614587267452105431906519131322585425701925080305710450109765586660149919250532613791526278946331915775369747852234502566892489860959792444033621585524058873689673088388824742157719601876313724229048931462170854564887769175751854538725875640451032781505942243390546601532463364661808113475740966795722617397271634688145962575136522128148938076398784107350400948233469808391582928411758325970084611601749876111285165045736187282194408915135649958845934821929021165596267395719981824098898209810957195437001171665688546396769545315929724322353496304318370007503100123999445037333214193309064753103705069780729141547495673787004203902548857307907993911328269484435948910733691148769481010702825318814159022012649739974476252531710370698113319314114526835169204501973868280812431857841911479142981221354020724238781133546055908430722487560586887248677777761492281774217864653319165342394056343841390260206265160120936483466661849177085053706311488254674758077352222435358597741342592334085352798480777778909995310035896981000503545883580953695135901613018708126662342205379372642812219351215756938472720791036820060488953486449054956691343306594543144663318957692693824332927013980655279943200264524989986767504893888280639921411570825406325940501527961164167876976369382644495496333596156355033981911596653260139434947259868915028087794165442811801955474168879940689289120982871267207757663929140646065910189449380333865832809962010700219967957289717048976677591415886712264334971027536028491820984243328001512136001294337356590637951275546704296939256268088514362521414762891453867457608443956646382536214032879993400437563156810675357141288385949275180630691683957219490159525758825081405236432665218077494226803895363127744172142735407834848743549535390211179087647800862733888324089800464265866645129780604156793578925025768887149393769533511961418664195873850457833893201853594038147280384153096048167202856129641755138914983128294251589181220896172567249048467478434589984061963398793115127955114258365127353225504721815164056843090013269368433547220662100581207783561029717178735777694134658184604346484774376845378303133257176992630419369850271712644106757028575716960817959667994768546940253237359730998218471001357667352212089791388357945732464400691631387731334626839225440607849701807266656597674622745258468919492448567724709623748760464218684118876588169007445351895424511901683837010184560336991209041924961036588790495664715595092873872750261395723129336716629341996422410501111762538259868934956982440615576625991447678251713486723235558106730066919221638062417522012554274476454020779455797502366042233447002539465729854793726604652301301177511289552089678510129307991098284880178741719940545104046230075405086592827549295426759831255381946485256846983727625610874777814200876070801520425710136955447705195751479617965243958280739247570484675323858724884486147459165785601078485691481847698698401409371959594832145276405593170662319275619267058172808332615435510821828237683321243669661450561325083495067177899775214255192095597860327242199745081027889289529925076170021498807352654948302004360101520479992171170073883790033818973440421111150328488756631125609767961761413913811002015721114049979602797220944372469732000306327960914453698048330918077152032121563249407697192500504257078693472901499639915901941890103569062425849776203918656473658191629056945694621778466139138788099367488549064222589569637317295309872588232800341833963056576392299972609802572381144829164307299002586183320299131516606336786382931252212392697153689715123333705478531905714324689512640985246137310141671544351690664033695809945273262601323521841318424482748548440885222724439327998229777987521557088400054223242264091940785867518654910752763771200150338667610631769195024211453051521009393275812907409961883723037096431511414290009455359530882644793410396813106011077984826167996880046690577630978213406283987494814636621718743805292618690902633905105139161033103734688321866889485168616104403487672530683752173436773848740981811980893166051215119726138120910362875489784418337835674610821773504612660758071770995025092184150326869081121401495730953371873131961059024479505036159587770835879928550665861261572144455371443715555684942966967162371288028986213664733393149567764816067029154352206526015797681693663621787170306758049686115298849069556081396545654293885875439463725113732927794456185762116670059754813101682680954412398979659704785210291456548002405153079948256888195746630688444900559692114768428294630653948633911807309284396449449429010128106537508581546164142507950234260811619781227500774903603373470019037478462576564580405782842287837085961875934272979830872905891152956784494961445314634920861380364704349708550050483754873519260091635349007349569330734498376658570136253200470842021434803475944902758024454707092069238888785965913649208037747730853935495456248567666758672685329276596299600225241048994846751570589026279810309089123283287748058231194110162550485510522007361747063586908615380297667586552124949452810224223839573354326132015914854902601775881849268708663645882804840104748232339129962813092724801331901658152298398692093280000701484603607823380599957473834081065665540940714030109070590443823226935661102037949587958816772145753464032527144957217807131452015821868508625558360184508994012945448707560020019958690157036814347815623763448369443087083182741363728899969336428994231144881142600593321689801720150861610306960399118401616987580273593387748817489320574471553044949532709663959989751527640390496708316573714012959286134514298281879173834897486874224567864410216541385121208428678581949077350002492998528590956174119309271138301387484734468419076320020515870641613986523167108534763029595348003140265100289945812667208183819341749628880487658001876205850522431752761110038730554188158914446022386859544180091273007579276466350633041299865089416164348637385779349009714775967109001662288753271528171970453028785211372325943114152840157429025957860091405024825513806668622844535909975314217070058537418612496033394745873725915451068699951711395299346249061533781273215229284988008265721378772160227538866349892344422032551022237026392865493554566052496461952547760174437519409044485202921850521435104907501204873314328967118260775320701175357681894905294519723602448351148850644727597039720519528184114043178711183649017605203845036553848757097897807545770340515410456454347868134041063840346033091011342004658505593885304930032944468897284199648160567862417814598639671285412641257194299733809439521511594778106063392238265062208227991884025200601394806983530123669409091401555007759083369930325259555552859503158686239539285000984475785038385344361177351343059530991588946023987866728639062306942119065211755337696802000984046646520953670168803626581643299608745287450897616422471992176635411841852533278247075016539341148267215769777631153549732228862442289454955286245922858967028754914469119337092319011242273883344881649550336360361555732389043093902698403818698761913291482934347451132308289695446989387236100291044051758433138224364310712856508379858833022316240518689581668213295572079627845963453086119083249098339762128124956582520793209200576528044748327964330778750485853947939453041883519223607808730921488930867231183253170250783462674677223450918332692286338130113439115209969095149590744955726926664439434521093498741515440812083345327091279356186838804982015637629062630506892744363273714656490385602008490034598300385411869558139509114987173641053015454503423173887131407926219620311088243325424119955026948384292598108310434765150153258157301037648398896004903646387701794365629269886707913138047179767197440647284679117956949631908118543213566035067855410758761026628121791273823778121475887073166956171756389895572895492701634518660561064596945723436314289612874572158090901489021868104036699589503546673905032297934238022949459800450508894855710013387540254365165424030551306905678759434072696053534041289883924139072826023925272828873664846117969891373667189930116332940238066675619569607595784589981297060385701189828316800979459113591531621809122487048852704414030108025427777768227872262455432256216476831672875893663032341831719704269590655270123921494779611131274857855762880804373989980677394159276037091214745087717785797191401429311851923656651632420106711929171497480841422864555006614654499208620329872553169092627117412980763669794807183122786257012979503138431769419498572591869135587530906820683542204093421913425775492055514913990350764730353985946754165912225152661163323478811584488751685228156485414479723821718062130509355646747318856010351690849472008072412834773441197294751141640154199670010276569194641163617531037624920919734845273200782138506245499511309706561248662737241282100970198237397790184648202789420687755672112131702362918918005665732723917086984578022839581741978492069208971666125947693310538558254552741745080731106944829415986318634423094505235625140241471776514227058678778775376894798918349746267351713310684772960872822404813343994561396072126199203614060796999524253521414163396976130121527051935720636964286877312951563642055747376577480204665687531141986866301649199996302471867210392986256319722719782894406694505286875908009743046016886370469838112154641153767779070520832110431259401109157448667892713205886439731901478985539091234300213530144440171549390301441646153125056127180431675724943115941787893468429580531506248204048066648374480881208440582522451411792172159776153288235442829266881792712368165613018975201987248743972131101088425677321727802096428036861574591842465202435897844756991996265267937211628136032629235086423149925693542034549241622809572921456444896977056726136241838473534231519613492874942224750743179071484445156953094984283122126022918971514874556513378583056397276380658298340818533845873733022671194158322281832052247578339739333042454217180781714256899445253319190496571449334390583749106324992538630982387901446113162345478496233632582210358074161824171840193210122228467196338234465234602870798148884822210627392209218843899539667572175287272939015628354561087281517053424727455223067920851345449892990712901699716910323976461485504675882430613203532604877624849380343762253606329159594246210127971892829258521979578133188890058772032153499161455558083587855349444151707930348161711721521790459266068387973177339373202730602332613729346178898349742685152875111061786726551049438271076874405922209104744911289569770980372187614786525753808393052235000774959923526324222757799297233640928164379556242741363984772020552933528898977714618357136267297784646724594771397422185042078457617767299804113317727968626758310993555335576259328811585968839360577870273866223478827245575364205611803731779690977725503541576705370897497280227289612012208144599105198040438173005025972248644772061377586242795708308750372105828721570770237997507290642213328167680474911931737057637389940751469997467187307825676097030523195328889699767791576395136465556142319443049308833781979629372690197604713690645345109109177103394904251101716637363781185144938961802527868730007279114994537312272935755012357564158290709684240549118448849605936196416664053024322002369501548067078482865106882421363359269871346763067841170255705278343960439736916676398555285937503546355634291305760685819166501373778304117654948526290511372896453905934820901278228431534603642561260522829521605534156777881985903318025014673219767889198339080080838758333163197580355245037655153451768444608276553005010935660698669531270044496861522100841116916838262715998698653242387642332567215460760247303365875909604861550108676042265944929641015961184938843822786868670607800004212272232402720091407289515658656322130960759713502157615722442356048708432886354291975922157558597634404312572519187341744892997816378407134168760973658007222470567589293833167124412300725489328391518950703139218459571468239869613780649964652388053583580533713576751614842155019310476275414593058156335434320015275815493035933646121606946683916016974038461489931529986685169034857056574118553449703469044800099847539436290940680540289711732132887519854749445280314433962794706037318770817302581312483802984688219078536442843165369498657914460843528540949733528814845594095217032427870831427030367068022620735642847809888269378424299157838174819482406220376126575833576162775102898427587706149229145583272671442332900096735387326667303026415902972239428568308542072913439597770088644269076237847463476112924157073660063187455163251327318828559388666642967790075194230821353036402530153539589424662421748558909573949056599893744432932411217178745691140867639734658426879659823563204787362282586401802761275909637249720482300351749551633154534168219498909116780570346667164791523993195304893055760471429902322705189998433746908620322741506637917927391038601895911912793860590612195233850283805457104455416745141990787914859451662531471350244378792052606199276204727528661526756008385498745359992062030554941677547507123597648076038376707894968010692478165791644363304630398367373272823168273945692975228945957834734724651591152955316923631624054606876602087396162598239714636261718924987491870695466693221822729631064068142321015126397584081764565326623843895237459131541325742444274749516067957623244882684047078349651082176200784059329013698742916009895667611641631279778790728147835884056602773087650172552208944879728998929042598501212906034955949133638438622446652863652972905982807070553433486488113655909487454240302910813633715063774324028103083123376967468674377865634165020978158719648171688310999249917985866111533109864245733155712909989964376835303530738465910680746588860871988635400602795468448691838037708714933108794732722423540816801815312986294602822566289780257636723066812443003076081723140800062156479962302690013520930217245897434737793813002464036748019880924960495810616356922687686352405582648785205907264211937806585306889139663621511261699477215720623377907327478270317652677723780306483267638721936623615717802531791389531401064553945777744894246454215919647705318482896597840403065287050121194196777716588327026764217352351144304980803504305174833992398026903107154933427707771114367475147856135762521999406510494143053188518127468630870703622344134432566241983196824308773504795465865746466849731126107800236656041981752008119024639968461181970126887559252015907200585623670064824226862941476627112059877282597062935584505361641945227848860802099269957640068288045020484181589419496684354774178608842208537608606734658830465764424577916559933733573747719205586044719222811022645706630961415568924813470759869219975723384255273794526161312354401128853765078997079561984874503118025748355788683128612907743118728922046137625934154788073262363243673290421218335678058403878139625826741505792273035938977965770974811605018382157112995103228268172521761684084552317250440899779395650610000170652499146382176988780861372329670089449862637132051677770080997765436282403970589356565588173710445921328077392240305650648437654930937949956806510910463875356812209815407372105589377712168327466242922995385632448196719254157958373805155377587646355884882067079745669694481018649795956168832497432394868238014584631648959545807049140266620399537261219691808722396708932703557575056152997911739020673259406393140347368133781501175069399232418963050704181795729197109483713138752277507631679349495722413464500823197297260390779620373847989408222742349420453647450243595751781673655811291211256449520244880422827233582439721280845728811671542031742723833714234732264662256812027702717107861512434006512990110295591055598638193054224786642028824594264046705473810830641336519315083272785635106329931132257394403320706091246283987756599946488471512295893869365799585942765507531780918557655382963366088869282294304625956216394904308457961033383886788865140595874726153137914699464430896635076892801127835718806908744248436210473562346364859965789590485388976825816988953602336938055816889477758521162550683785344636980944563279147622848182839082292488659563413164982677148094841855442971429941242038169497656398570197687510511042139529786832815172697308674593013966373681737765220913274043463922831580521682395222117184059304607693822562729895089237033149990316207282415734248780676883087370678115952046414606640422993542937651422022702425570055738412612471787053776689517199020582516301521818062901388526070180125825334422836514599800429032898609090162604941775592724595196219096493127451637527061767329057445212409635612219217062757895335650372186192465717164223089056702992563026796368525880868729881821522170044108117152492614968944578240129344103239247171280519712466270193021360706269138578863642547694604975872147235192449774381150219247355195215651437757246481495903396728965847667984511407882550836927698948184774933198821856774520243378805098542736972572162101002170390914925330688039869796636942169520546028312413620212781597744227543625377059459564825547131898136600253260161833951637417524472495299812898909287161995519463806568101457839536968931207755007096233696603942760582287611629464253381476729229771321617141644785181566543052267156434896045738190525414743395470333024894379607256530623476645984657096371255982063497021144711051807664906335324932127481272426824075830445077748773136958551348143539388146838190031297479759931622061177745325718667072998212399701789470715930445371392827388631919959681914986483930905372539046666624627526348078149908107192986423473845428624107878452099954382137195899379230174921549509614855960214255750923272642327873602693939359428377492506127001691908335526840553652166379504838147515222133192561977224790056075441087453925172997245347013763395377755068043909017755607203108688161556672212896025946110991936853696597625592753159941977398714766878116181475146527883983840502656091421991296361233878033039519387877180523044435698668902515514850984732752810699359934076769416118146932177357685136283772237341824541170697649647869113639691149316266918583459763317021378473490381146423640677618495466026088210425905107530384447092674165791771752778064088305563781946284094795109778037043767734625838378358883080180026829267288966544985123386872265379459909266936019904291858842429618257036591772498929795493702615485053512938325757324507746946669943684668429710871083543163067339362929138694638279900252446833271349596592858737507981436229421031127236732651171504639429626914428546228679251144199504621625324022978029719930072474933972808686871444364303214939195947286722214893485511144128917000458450956337137929895376241594896972157408555000340936170846734803160458729945039040819238295733428443513109444942578057725291777709324024224117136964063876115123924378415986915571465608071303104164502007431649187385357256268115653918405684892366189203798548349731186661475928095698371593586886074307867288305884146809650254050617555006465665121253926984535534225793828228453196503796291909244950057766176348971048869328203957709209142343724889485004634123202476197637383991774324060699788726950742476096237328352211181480604162662841891106695469296097450415670624452826894469690474061928776420533115919727789770693134116620699825383977467872096428151447896460580781077930102007980508963527266332154980481728842983640328896639539524383030547489519362709506057235020254566879639119849214602117339633421280351381875750294306744039643077979417737762942804063442911455023586019439242791914433506107291654569882551932657454544983271074229674040045463824628154684468471161107707729251706698284437975059113811783276672609483613483539301029620041810807336691698412896848757860245949969175074508514137582315800642586046996146796453008108502506918775597845473156431267742855994303461362132574065557728991526395140566051233147157639519052895225735037932297758496196445358175170052740001635118580692869573358912886674000451630215751312470637156740770670705913460729651896210125122355005243541589539837564622947479080311458555635969076083487965175213705323422890846269922069482944622831168406573254204541846173504135182008556817399117016192747984705868902140464722000513049009316202760284317481320865950206741651342085330737281273064037655159196073933057317864932122096067927292192253850655537220395036828947770569032890069994910323674030165536084358944727450799668659734451560688864905169989856366497753598599734394198183904418730297831607365262795897302289737883811872994859471862394251360878789929777832255733443397540626312214757891255885942927305145960549721509574588673908824121522593988318836612060119504853303017178838129113446186706007566181091707087384835508623367847992226917520733047339629353450469817395354696517979237496014237403058463881975864799111343038982715441984269807083981745190614181703499340703474343054831060824893289866003760244471387573841716679681403674015385291299209879253555340135557825392740032838815536070317784293491251880402399837032156448199299827061740887814478419851076275419478378617270745439273289003810875130929144413006811323324413674527666001050976494301662913958201040299818128350487129214568168175984178363261439918932335837273976603183929748684156723117774820389540297046159336905957478414310658879696710887512602654435361347419860887465761379969349262774008719752259343263674415598066852922957937943689174128883678770382342304435599470243748592471469229278686189467221258935401797293186432845355097314110670627428239240245048114861671986518327632018671499987632948197010832169536107007597027038092730946162874011159384223553217785433500284464952686086940481750350398224911913853961296256341427609096027204947117396190580690895342507371122897242408445578915378646349932063901293773845005535697152894315435246221017148213991187562505649063758979534138527486615888911393765974487002592229547840253416290501551742063719832109477502718078603257826029158109875483668887813111359244118570188618977436989244849210275297970070604659121047833610332171007281367952043919718307593665136260476799247199591857521926570151163876653557095846647094209758849561134093226036810728517138710687630772519250423854959805224237449518177110532533289729533097523305331848876832153118335247923557746542863880764964868248165834842396822137175116004980581964086051982750599909962351380380015179280786878082932363386097438589450028834879621234611894388205087599056227857198329383251190873242917019842328658341667863334691883982798306990681352246220056930677440362918852186922014137254881104747643139166890045798324807711483869603303219900013112928224420252634416958457532365472709527356088124696753430329111019206300005638057169840541682270961831063314393863438897943750790726142591207878902094329842144051648072921802302870276605389427536920873074511747335978282687814554263382030257020755964250836502676582365514717664105437546933548691427022062008672944598009852258159486514452888499514345693413285949215423807825470673422786869535535908279600662857308167907272170571618892778771492523535335311035273957857190105238005123817556277721422687303312344557550740771938155740894588173793807169761241570660585164377109500551592655069919042223449715914778575087789050807940041455217112501964751963640312702789281534596655895880229465920720123437656527381492577721141204126235321993469349344561180559759860496354144409007368947925682680464103523575937432071873866653156057223598912862369976574644213831280248600266709852168967065124288680147016800176269623199772367924357771783082936193380517539334435271918689375125479381886994614679820927907768129209857997601690685682930686375322197334210372552753841158197447548965385764197915453621917559099248240012199015501474182410110041608965718084838207815276027297032329855783028051189422688616369592915428782388846001768412115669953782602373242772283988503004688271664339566387993138304682451647885766161771664725738188556459079727984961336770715403553406452565619561879955983405678621299939116836459271021182854037682053022340189804454995258785954948550596820490346080859407263884692334194007906697536504734108377749643844682153616309668014507468887396077428888448590200348524964793643883286697864959446964926892302357748567452175650199679546065529339771948325217339777820935680415339944697535173917568788283723125416030414599179616817309571957870742675688146219688561376799456551279288861690475522343136403630539907444449038292531941891744616868443715884259535792814729459748139129012168502858254800180927719756505713706834195526047485861429295294698511241283550256376814763636481375992494839343434840516458338468706359827360555409788430377965259317072250614212454050175188609024110763641619088910185919959910120885067841691722010733574701549191477332692021999934428590104364752941141713267385196926416431619505577801094586499639578082013494655702167790427059237795091089863951523624839921389603467402331920264056769702175187409173656172927189266977438260460163714945590175617566755136064826112102233552480045061139879770634460433475505994179558131657902416125755230134789567366741666127520322326566301439020993824616607748503187126574112455851862820087705827364405521366142825315492387712843341495805221121624090865065108256525801503698737657935109034160020211868366701838982382279481072813784396412697058915781915034604892872903269343919649700923874241287985437987573853907657958340164851740523420005495654982044173431802383431912057053181243762461250475537196271654556514162958631984966139759199575858440141950426493842978182219210375618377955077620018795409837254185931495312496388259109044954163835782764799538964670907440150725859193123044123546409753601249926033640934024677054842805804653043124411809608102134016124087246575249633201467685042786966364677610996158749522672284180635057343152152777214059344355881648150518305257333399345467700414561913595877760831071245445196982174170050661827360590913111855151298204853948473534458577159283026467470221546973119636128346944656060950107801708508882091740639142250020980316261976093361503188015280039613697743942064923920241098904448595477451201970444535556306808749035723832549956628337568667615081942131875875588842601538946945730885369250878727587662236050422043937220704274482889931988338607825830749377522874910320929638028355727123321925019849599036347630087661769174385229611871968092257561840598793931813014852567707337574510416381696236120034495205442541645282599951949541043564892838599898976399357793346520777151601674179686503826318865359333495774848578899023489886625078630492664102745494105787219048275055527596709909396517710299521422864215590341126081873006210333742286941996985705830748696619832218857460030050439760961756495183202926088515809611897776786581898754921361196404288871772937846462218857534510223516735128730982297685010064806015073091187093912538602640206316769172198493114600938315513447279219645536704749147948919846785015245120994136594165787159908377378853854480259175355869695514483314353893185951902308571745026306287461574788906978919121187805752194263979924358182464310792031474463218980217508916738850431808936922143522373696698475606401726545567485752545372581820697605869691558728375988362258416473019347889958312790354423185759254073085121855552399585294884591463148965734266712621302114043224273427555135647901400197628071103160940311680997706445680282270436457280013823264257815226957078170656324808347311124153505645064773226462004093298971379492623181684463720647269202830273886414818674764947113094254248819622158649750325373296333355237160875718713388049761154956313372768677657556208401850192310030803371038400691150196891147904771267799031450980294916454320040200946686899048414910397947651284733467996221143191864895402916589384955358901962675859485967406526392389301234976544214795736287027115155865362163295924411370468157586946438392039322430728597475676397281071497252455295397837998786755516303634826258466813234413439868243583383022090282925797077047860021475799310012787671224500174337838062529320431031956099935995004393229585455295514060745893399509992490394137218817961913568424265862870211462773517475724125507594326512213296615111775992670767280061821117176755964078962881626370287143624585211737748554931577509993090288615726596790491442417789634486272312366105618454750539866297542670971674296697653949231061612230842348032436951209235345729044602905551025165469596311038529371136901847598114509209766914358947798086712602556820546683122439836742781884079023570565460555525158910235355410661753783742000449821525083142316190654292889259645832419530181266220097844101066893377323877721810613806107807958233034429512729913991055572289975782529312675200318013409690921632549493691617167342512017863001191569748128133134824657299813024873137359970061204801182035472376793001793890467854297090468882275200603611938455464331125949291775972623009800616535408792846698520402078098654537788215859261840920499809496855554298150235855769389170757752131492700611683540385022386309575686989577553426872818044602126648501401868588440709448163627054732757868654216344634642783921452465507459927484532043694506419574054478827808205089535166544342685287650147333640667219370016213082053295833462591791171666686909064621512725776459678568256218102876726742464188926142001939900778723543474221121640128189792745228386195423908582898149890709088294224695007089494500231920834132577325139729956576369701269161659525330578466323638695360691781265289409679344785980202893652733261634778658523235307624193992662609985299558790888557553841313539110585867325672220849436595468970799403534800271185709790035406667366828012596155419703300488230582976556031110554031428660152024383721354604209767357262944292778181238617206250735660802166603634814523417392964795565896352180240993602079559294636888942141065872950850790993967909641364575623296118124998299277578296671023325779893737883019914554780611399054562012055237994535600921686512640728488186319799124835059583180914902008627800037321245799587158473535104033774832831345116281526551310687061702282478420292838764075739407188751549146600387669722734616240022136970266890562479958859992754267502006669763207222920221412990545019499782950110959145526864078854819370087612663696093077747381867698848628356562245488218176560465677988905059037515985134191784571169357543762870723545184911400596327960344781589710906891124219923151832047424977006411372799777769331266758420306475542172097272651554539661399991150994184367402854267887756259629466558521973172176918168520949555119533189063383040388572080334279745451340394719250129475019107428080443543947381606658812508430793036170698352665068759217530681610812429921541727929489959478139004601152820256739810382020229996161773443260193664376811783859059415122595840254944084509124756363806767147160796004685801022770934920339173063807807116679920742123037192528317737440968133234965231963505410385762081661621455460715593854358660700588716913580704723149768923935421488730124581844096439745396725324853133995278910171378776473536229483735230027969699597861871019064166103588784265641365509612256942064630549101325110060594609605974904884560254194484147659685799503615617815175668042222280696971922931831024765479130954545907533284422035878836820425998385616803652861573938955379461310277674593798621214439744939069213037663371338290263678977301621743945447415721967309069226400804733452090349240772212815386238520297876061596582350685215452305447400435089358256374244286361393514535300845269837461883842950317287664358533044684431826016513793558367722623241600723050708473306351268624847635482465425986965149985326866942465647270839862571536602774172900916615043027503268631071032637489493893734322468820774605490197293368765336111405684846055584854937460116053869003841680172108399965323306085155189864950053048620233499487406580208561807193465916626893457742553064560656302918167154741222681671323974727701369507891221450741970337988135672472682283931360878533013558820946143427856038073517033681953577644428752437618612070804540153372330571997304647414203074222097389806457930038050092367455732955581997738160711780772778158685603566228593709987207898246541813084219788440256765776038538536356626454806754904928687365640437282881374471864025936262044604784330820698496784721106807722624118426812569579082575235416210374984995692140136354774682868929624926531799822272772005782892265407291467697212033917750339633378582208735443611463218961488308220346209185094580289351378347806327399935895809943116892493561834901354482603138762717977105147966691926598343582212490648652059573952092105515510607791839698680771319204675069104063254065819118495668071689500254300147683039419658733242510811340034790353248996762581014778286636959643126259126785455731487069710664209862915194288143760874033665755749221579895930215477817670028788804810264144960185783105302489271314672146738915730219820757404680949001838239316251396637671527850793859862157111049078308205774408790102950541929800717483932931777158806002671788925548961172789625227050173269133081058973159006549193950126546809499053946689932354438526546212051684404014263921271537402435057665410741255132292504388563674645268986405137908269039654835206710859180178836429321147279346453321314147537724294321396407276635655525094418168844000445197811899351799753256017981993834649765065753396300669303772766954529538437197960435008419339029833852170227731638231537075077565774389257491202277403709969481046062172049884825414148042662524272358311947858683858183221341945088940639910439797855033651533748992057813251348354523498176678446846115345471244463436535472416447033776860838658239017938886546981538633352705634737100611531407237899084688821742595873923917157622658765275327515864870782182097144030772904219175221320917424203580252815508149426813545684899241687064588512450116058161236550802112283331123422333670218500540854776843745511564534983728332507442705874251305002566161398759084297714477432746748035970407589885024831956160210575806747652285634988827290570943451221845828473739499615583961937443491797756519719028374845756253657902609896415391943172601812399787099646337954567076018518516521934831084946799628702486090521183861320473535354481020877028821010346098223380118302399141332552333730024856866797914519395560811315720494320899563019789249153844080841055385541837156254375107972667119102589061744092103307387701974666767496822966313935049152926571280669414772400847362414414424158528896730738390336899292005369990595198556994920905189432727929328157064174606244086148886531857871974322390629882287678487165544490933574137989490807756158211446073795654991212009428675836951574754680956482751609380531367529232956071364887818976223233590707217201233947292447265967706813436270783646457873745516005716287994737562333306838277863563820270526715222566804475084137687077168286968714995789253433179622992100826646650840901966530234329822214692105593846642146745746052317233402488745930627716716681669066320518499610194434775596256509265973019475446596652336624084812108109030314648333973146036949532569869348620417866166374953481758185507783510200876761007342052176972178812814252785549115500970311866267892117089482812939835607861930420366711369007078610610230357093130818269614356864589872442640385790249109760964283208924198549572652377965317336419111447305024159461472190856161152158789840023580554471854201193623500656684296991063806190209455369079127348076356293811396578202709072126106359929332332827827375385012337965676533966134450645044189030653391388995679267160071069106650559279689405646043213419037354006785269457215190451926313817005080126621048211160768966134000929676262025878541888435991073606125695535875354251401760247697893622520998707280443091041565120145417387453390134097550586044519202718099025697532997106782384491070025112375734753070214526701982915173955778561653079891763955801168694017257623315541335178977253902831404995445937745482467438055764245759101965949766754052461269347464773469770740915603455115261399979827550899838456301553513260888603588386350504127725417808753198096999817237404580574402943074820620943118748847518816233166340048797030584968549121555487605725504440145771940772531330760512045952195431753689088358280639255852277984191333771145703554146620498189325358037468320873225535025749288690865690339480255208471463879671630906002995653178263659362707201499026897096915708277879067857332989709469530410267134713107956058644843368228665794437639542306624198321821763198033194142872700552450663013531920661279676183967137632656249494228486007769983300091253731983472625500541615240102150547291997983645946897304589536604100000430037775561598579935316598896340286990769307185738159976816435085483070823377093158097081556733426005106467028460902022554745104594434909731930187665266772138465863764183855407416921396517276150195218353676829033645164844640667809277258049017766970532803030275305740671020240520196036493632279954694784507226810662140208267724419854858334004420250895353165676838606819322309463981119949826571993926070532267318972170781783234215097044475769502129418971802592578160006715730991936821877315627480328725882893394871136178291564383768873149315714080011030150703802171313148567320780424213548663911587318570006874697297801438188654254140319286167473242595879296355197410306741931595179834831910141052581221153282663551954449713146398734698032913421120851190677004979120063646091643019054021980672349511114876554588503915537566460611437926442034826635876015613045342288216211393623405840676168730535940522870749643403356591096606902857272872416353859255665738992768643149295357716630355932362899377231310609318020977407532039625303292312624100007034936709302560401076082721160974600841240403552050193326152705941724632133001965900572977633879507507113967920125918117752950277891415231980259714820127139612546359296411192054954058838171115609181271492969143792901761530629950523444594391522858400794044964210657150135825283324195782894877092835103601507215278604606152625747378354389191265279899217222939544652468310492347677075140975353956379115452011826938225163422567024831904015815828800305814416611196612939784949128143167624108403891546675525165059410208936867255716566639012086913141864860098403358939258972901590065197878288360145615235664707988258356060815136806540591320888278851734137597237300389441505823654447963662900651920213307097526869845123540832085449995018278172721424629662596448514662763784282799877524781614874994547399666032857006201600086450275842539091518344152553656651626955648189816882027459832887791805949451583002665577397570356587059546097961930096831947480420264939219415094747271679102532154021351582202276182843722387335197654932548579337856097778470509109376417616061583325333877876655966796744514732739908077348440816992013169045642446270463728373148717726428673279292843886710288907385093398831999703658964093887733188446275603005040001531639003503487615592615838106785628042014065354289476953723802896376633398641408262442888624580236344029183615837917161680222824565495868150899765067182740592646612466160816292201748282879826686767708651627718001538506017246938292916718880364163709606959097078500953672016917619143510953305329471140776852694536153930669972709180101205379864879415278825178217072447424731503567319862241067070026757020960794789947262877071111564795778946170188468602278101824832127257341705803333342111516495716757104962122549035935220638219518641859470442206083087982263407481109718814764707427607376581017417985503691068223451423610501069824397992157731232776307110010265160744005692926089023332030875448469611785152953839153628334124662469657712488327418155967601810642999288679246258893727544945298208756672194778031206927397854842631412381844044356624313010683358307483307619818083830037873917978250639149677754042699565753431538434528138951864961692624682921664394900590348838030978079203744790198393771903408590703823863124954951082000959153302588161970428937762000972250220599927579230847693513130702852357870633420369895754890947884411112107449191475419644259562268596476065420705721753408299077057499144734805183994658117721367282100053206886627626222996998863396641753973199164793835346187370814239012441732559004291677144523826504578170795718173696048917389926603672143625113995846757754409920991364066905419198572004626980140445486660494271504505006274276795403092936960303067677544561349219025650016621321475098031070980000256140191126340215581794045392634899469700757086317910130367662356970977512478767657558467942286205352086508169828440581366531676126702955266744371724390526221295481422721169464279873519857703357334759735548801240403721836734688456957207623717771023030076327177668880169137165428721302116434010269010354820948799278305996803851510918631400843742291931699756490572837331823600709448106887941548818844890632163531171945094382497647980477605743210088940596184345961494943971829228026467140143928195575289608575326026699358432525627630301018754987469267719718547776852452941195806160877818455284248455586663977691438285840606938381256548134497850278141863812665432764075091311013189173647546056160439059568897332508629688015310036398543871084210547461051448786233075314190240666561767019058526569241329060181412629255732376942631589615256121140284396274978488190498938023376445264322516987280734375186023403605515588544949858922244442491868682982617297883887105348861836349689158495137825074038364793349390006484954926187673479153946441126110740455740213094428453159124119560534713953930015919999141519557980026181614302340386635984422567032753001307735019909691845485509032928126691424764535003826331010053729107102812343550642222320397115767099702946081180798215653395559409919759491115799552186904415007405453957137593071608433418282332343482122001245065683269325381635026807380506163396627401019321242606109499845678405078463082184105120721207244108953541948416699785532273507879844489147069113196620817208212546576896281777139719039705031206420284066906106083643259269277647417818803998602724754053616854827766920528099355247678413318886720961711877571309457391054144314823965077089120596109001608372752298141796041648736408597439896930193356398884465947153411786159766872769643703995868515706452141445024833878296061573740848479620541675847727116995909596642109069300339398015792183981674958984114063136705386342232549632254631616511654701605490989182709831599608897909385642602033522757183194790009090532642407312999272588335482191709265442945766718622891824741488884576490080161652190442130610806509751946971188391018790208495067773693543782218440314144571167514641744443994052681128350812603986033499593806802503775637386113306064200209241755198621926781264937208520881551784140517769875350190746986343366191372470296286581615445688448787979224785075387403743393566831904694613194848250342352098789191383816078087832925447143762357174921812497725181594339413556021536589102449209984105864035681242102951935722378648581513377418027750496274531458408083902177643071100351742117482533333200970597946473025165754337631520387653011673702678239599143168890400574880609322835794553483143298680831594935506898870084584513586467057515313140925178903678379880687952570242559468667040641748080698834961258023002598646443332233832209244457260047490170295978205743892805783794196941350882047513667387502108172110451059497861269099169182773481469402160116484037660427930128465069726339636577358996470277286539240955828667554698895617983188029155760516913474520568382999642344511926628539379912046143942641293069301343235148061066915309508859652212872619734683650208507425478203705272657059049337837492278048271071309831233653258755745667332088487952608166927829286889302603181209261435416655030242220453835517139490248682532747075501939062801198170747626009528363427872138528328439109156110701466035767066079174800668119479100084982155052440184601223481187360346788533066130780216333593314584849428082552207773527969966589345072419353458820270737385794626317232066390783400171058319679955100410810956574504081861286179360481878065178691612643448540492672987483336560992481410167846316272965552135557380025390797658498744993157904247414833163896178845690760796252628821829788925915169092989492290485669602154594596926429743559096531396737607848397453702769803880648918277047656409899865637607148144218629340916352559201950495480083208578361168305019082517860702026290708708421194818363173285956662704672141481795613628044461960595460609286970128277718366619678193787345880180859225804944172133351296566559038140354820808926003278431988699393425767154288922647807908130877812591188473093352784309371435726108933482752171436299648532631272178323669649807474809088002066818818281269011815064912148887229035574295338304289216753662466361707510530948553274153555113884088929369811019447763204815585741577551087814803637403484076184799735670393481625936980923472508149316875433791060193449342353458913062915946477084971242576596037594406709581038465277126339062963291899466222226555089220158632327665558060611018590646930745299440207977814835271843319347210692639329317125876786254340743956632527390994691875589511145802766038247114504736651265637786110754442665905662373543523780258889549196358254828684391362334621207523391113269243540471038481198657133803529455165344060274635702219751753457790173147194633568025381114564249334813402083720081228068519217111856800119672877931504205159543892665050125723643049142099593888434802729854338064124198065069907044180693181582423872645538586591377254396509635951447378528872759231759884279805740610433623714012708583235454241119365948714826035741215306583739033121079507478020977605663356839302740796037177485922610688397359305014612460527265477787798615978880586883540460186999359075847949394106860284426620807378468452886170659822713827601886847195109367891637687388523449636581169929038684087485813828698004510818639040051409552673760552753925757798194020061423259529878811656369204269264967236070762812069071303512296126117569308905366689032290388295416465523032919486592634207473663339940083328170884275613664465795088880034593001535107444332053978213329100864854141775142408556945018057779144765376276932085390118213547874642676804572924326659441230152688287977431443509858807007031810591532260998347038881873132507759773300961303046689771500832853360752604686034849290781014119803875385757227749533190331439077360422854066159122936179344562744769737735852461417436364088619142546894903512339006617140210096276075697353765700873107671814940737364997472587926845825503383562671867278342903395202614559437220843949537505734736487214006636584318792374080284728154583298537684841159439111053388074889675888511467280145854726527557404065292892756525980299756439259269224088461344017090471013352325767825486244392422070171373166515987467551924984641863812585333242618225663162740227038867024761062864626009631947181868804141429580287176778247603598127612511579854983815448241376876560060808736280653709308792860268633544684030521719525708657040961221283937683222221810357087262823157824572428034630492028528698264728411598813737814711030274955623903812559244676880682529408517467513603889753015830944428731571998962791398752816048435797332752899220169335721017059323294386874121486292112550265618673612109298599426401853632828662360948022978003677165684236931785827860808498072477248788493004682884716543634580501262457636335553340789135002927747869968919785826723067636273910979307903404803459455629864095332495292807412593522733131194295285642574441709757240396621443921349908869456608136544413435906022000872177308469069757873786703120914013969937274892149540029912330914494431133642609578652994331496941951566942865885121650471224066337118241195966006422093466003785219720981504987414281866812951658917184942643317155379379314208974622362479512569642429401609658478068172602993146453598851520111287503266513992309019416263450544830542729101547086819142225586265725125330358708359036891943188025767121947923951621339763789565438714632328053428473462194195206504353551393141304947819413430683996846127193150680356782418162493876373226325605909667133504993257739132340027733854860672443302975138176500838281080692319776545897740289930962655283963369411810096829711220581047089863074857745240362049014113705368498297973742547336710657328652133697227855165943618335943954297773323355912443506941031446774763671808488079395402641825795064999085223988911227746338280957357431343558510185774087087008492100829466796147577681401684046981465072727835560816788869913240057856770111067577410698316756325602566720522831039152963741252425080950516427779348023230651711740455117521628646085898070984271337830075819754735272869245104552323535656099585674530021877631534246691166489862712587301493067179244521292846813607855468304207179717551167119922840399517374485584902238167641836455413866247978920630899971742102779142618937683880141820961900813935374979211726430181274373293225941596916641032394792008120067351793656957710704888156039940009260101006903550753550098613334118775710866566591710499523607787014379669889012243790334349216531128224831991931741489650340360029496857326598111899623971848859744999399745626104279603409197369441325983277271374681238420727727231502433626805793487735128744460789309644295459508548091005049575106554944488174063912890725716610944778203881469721545899099363013713924968843861212331554039712481783405469569623585426468742195676816304820869853563774525446971495002643119827267227438114884676297396278108238963307716730139533315035686984982547651496467394802985172684879471769575688073288681049448907736578387565936434839647623278442689319750818013430787586783424297307557503207450633393506605749860021058492521350624593470376667929588226009921426440412623637250656477141089494804014065810693624845652691318556170561950598858569946426674270277250138474954486525391941079227775660813669337278093939559997280085592681995202521842185276507842215933189101378993213645765293545582721403517857244840586027652659205171790444192872101701309664869669295466057865346652503848905731536235530581471845790154962563792458432863763861801292534239141610880959404788728765074638891352618494774286371483651734291898060107120787647945927796223009075600006753953597316971370656562205293408198107408180344394395936734917951603100709003353714694158589876897955554775539262057459186076371821065853917649459840439201662060878126508180288071211824710186984775473310397877145929428088770520525452082384864588408869973291797379966177675093740968395919723912647103166303224498630060971245000643973528694902108729811735442801708325757327488916556315083556812885812107777729428426317985362730432691963724986468672998647337814126176181677879187575040705380220816572661641605528921603084644131117831804147367842322385317995624737456848440234955510064642230160527351605745591584855017871311388659819523047157874213454302474349973417778269135556876915214645437236177076369204889376212212616296039327296053722188633003529115827010695746675025840214552796165235792038468396412839543327486793256346085681785275529793005359961937244248882714149474120723929306561486785082982213555076982231140238558078814497619415839804633367565644467079104354190496421617901833658635865852628637815781806637676374930223565024815631103710380657781829822775602711316421833090887161271742003969182453929071029249439883981902374590296155170622105085405756627902824120392859784902687724093437784882928513140894499157792414217826164320991269880561091826512403045100645106053234131787562340346382521490384401953772045294489201657742404050468984125302705342755920112666119212114648424747961242466217148430975681974354383767107584826845390635554717629459792215626968256070261818788656676581670512533113802860284761692986268746940352983808095635890530851607378751469896556864443972201119605760427225796141363530064250281030470947194464562805815833775038144085785854764440032059103153638855663436262458457352783757139543561544201410451790071923726139776906214256281709084561709378206781117978709593324253888046711308614147556016810357295427914861453546061816271797028687683187486063473672495300942105253013488889082373949339186974865391064615756196755502066978917367146891864502165173072138783139521368079255973916255502908136671742439167469422988224722680932406281847124598263470447841361808730755704400407375667928416435852562919921125596916955553364480987862770682438837285645538883744182201354586494976777689262099199970060499714747115486319681472505700375820206068280763421450640943947309652463311822428534620751079832499744230071652560225680903295375925745830453605964317104566611246585008886864933228391737398337877234116693862654147074194971556399702067300537334317466549522387418709294099251123402112858918666666954596503171236840436919958739335754787760485089892115364902558167732297460728008592508171956411250717717334706049432447241374677808340978514150448736607064226744035757324695611781827746387799180036619208430510133651717207006625070088884483927799776065410709389041517732207971927268757496780117721502553037577801139801694934163895214058936855436362455676297485085940443534472509922106789567234802403394376245617226283613647849532300002897844685549285127151466653753689705606136292174801839992218387711688490656794229213703439767035391972336947375750015405708469433501816925585488881669538081301878027335150871121675215674826356504107548404130398606478556439378415071927121465348199397367307837388020628871454341021431668139027338134867596740755153300483623658698228130370334840359246488487546610554635623668765021704258672693060099154734499852925745327472012589149050404683444896120231070648456054111704760614951025055091117689795863127132137355984530701718659184651817631481029768053471606096481581735087498153778184573388801853604163342231318333532547653548186977831540989812315047641520433297206795896590992281694921196711689712274203375872481666366837972800835143338435423217180900027278426462117913013660396786001009158103137314645551688033139021367019105447835697174162055773711691303754258247775940247757377220282958252890977721888139269601210134933251901045521631848360841916185900931247183492080650640972601279061850549713435898254430069707368035596110311009268191728019701579425138956510271814039021228021714332434562199619256045430235960219408033549301911916973424903535756841520038881196100112481043537861284677633895321701674173574219513474199515507116012572645080786674853037773981130544344850724280226405480807325832053489435243626577682334606973876134268788370283425416672690180390722632477076150016633371200627366182680105250100399686484831715779772167716651454093836783410488150362810495311479205269740398481309615400470828255740975903167184996938865595686775456135804032559256010877863370063916719146768835911084922818681082700813552308740711595244527365670645846076526193506677997895545428185262830656517680233229071518376870468612509988410930757371501094421088361267965370876348098750393887861310952760506374618563556498110020350842799182774899038642485633398336157752356073259672456118826593679391594396884078573029899438681634337542391167002064029168489669304576259883632269457742834921535288260268793352600219239509049916408556362338549198364807185601017003801205632271708305634334674109206467129684994958168690380430467143132124962324909825445456939603688988902424038679570483445202583285189988964123484216584142336815293564508898753940286895782654197828462582010843095427672838621318310455904142116582372233933313694915395055726947159986093020317942277702271876650981301229065541549852757708436779104404804722969195498673537784078339524914661611975310480367940052890190128463289922392022940715313650027192038959753377918772147555847379532743472741663005631170492138739516905401006792581154485099872242211047671840849498191162491573027902706343979062932991783242977654593555691414271020238120548733259294101340714908487770862841268952220671594427871005396503174032214647823827486881506422244089186186921197371306502979666222460139003724411270761285368002178052677463258023822660582034514261336655072234408860198829954680187888375577815223800887731455271854059048033001478684118703327436734849195514927567965463592791884601168593542068550448948929374170781714531739257597828070309822184655310289295139137814874074598211857432240620932577439359404891580972103367863834089816462412821598569539990765207240231501356590683168996012404475783081852631165913400866368766433879884170120811947957393723158787708135521678576709139939843724381121677835086111971002170981770259604866547321483443541326527259934701815598638462644732156400228821456502492066856514806638176887790838377807855935043541199670380204987823383574473596332571084192224665696038627462153509272580396411100930384063527457690796004830487208730438718903096691239603737729999157182085578306421014464793169254859078034039229648795934023169317757326518463440108408182965808894492803486397003516263531314226538201198537062005156560688594266113270136534834371696761750073758828021130634540342603299202650170798143633667616223751967600467551150974599871503781711195215704985007381323472354311895138301962626810935584062742061014290029282012681651965781868275161158289711256370152881628280754258754334147063530393121541498025180288936454514545088795566151218777954996000928209958283434734704895799380441151250283538877542724422587331405104436084334227125840235332813972323521599120366140799017690088770428349553288956995310505499582141622525400194338799555990664084663569818346145314615397597374255007275783038311212618618699256200613983912011082829663281989148702745081790084719770260393191079243478224763541232794430323364834958391183637109203672540205868470909985602568494854911471329183931440510894467523755241786055302888264006571261041969807338565795250749874800510510343767400864385501632870663401405995748099976859908896414798123420431712538896859617625231818606058134075458633746183329829916830575081000419223247393092163312285619101333465459714652078782040038755264740817345668785840050431532070672380803646623845220656631941755194586876488980765253381143594371825070174474179053498645988167267171780986940851376550294722277861730905166549934731633463833834737043407863018375481322649512407664635106974055737821310543500382004763451044685448601272369469562577516938837688332478115550763324494394104737880313796580971284878108067167584603006764402464185081581267107195072590472123744642340336430653376143314332872789233122648316869089672945758531781176628628212710949974108831702056109363645625016855606237478951739555151335022077764459819460943568842464142243428412668635554638690226118284956432354240230942239353220945507375780433553170745911679617154077091164768142178739494497683774444242925189165557584422148067097878278541066985999130459143283184004231738013362235783438179521341733240926713837412795427308776108077958784850947068025735887963176106471542985001644061857567445116583816885987413118606130081026869823603233977338030701787901900567311108022076417747940437765855144128270385726120060614282711719539507146075600094479685399357922062377333992237340363437198245744692836388520133592709695959530023018036176182033409356184677121378552064237151026256919807462737989146108620963620601365883131427133902709086650513135501302550868999515336948505938792004995802568267220150050924406669026428817543998612288680705571470211107182254093228155556843013339787230164830506724795374093826105269013888227135402501892222721903397892893035316887117036524773687317492799655600605580338511575168860048645837616022404363792160182761674068381052710009850546167102487368205186062162710024083999396805979488742188782606791770187956052770328678433558240128250135849964738303922566980653830277697638768539830001762692404107381781651586418190489326637304260271680226208005664140544478434887059827136660269096331022866983591773258290667200392465140190636072890082739441609614459463288297755689889559374814516831096566337726260284657212648604707745524900000000493285014854898033980118082447541377677921318150526547430426839923736712236530531369924136774574803439485252985432923081690925471883794201515142110825385600654167274905268655246646292716298110899679630948564844795873483418567279510878088484783249652123762798433180924109007064638142904380080119460828911482729811542929525664506325100806026413786782946995289884383713998703354017096152019452704176416904369185792436212942348530045230927637608048713397636986356278531184248030753587751171130481577710420849890851300056456411480668733565788182225937852091455782447729235525873106908536601313805570139183180297930630571652927576239395715729769880528897886958467612679640322843462455789718590013356642649106510159089857400535124631102476223130634972465365260991196601924164084167238217995705109600184889045126860041457633678610809488422001575044401295735804698405525337203516976729018436475579317002695097514122527451858599006842360017468043089121413595311007796200892500026828095642923477601728821792801316670790760699096375519861865448872107491268746114566308845875838054365802520648954855777485275235085511559533347046994383945211936600157917765640462144053195026654553586292451571336536898766422096518920355231965057297776837381142735091247662222542356651077371039026427695231977548820340672386117812300707104742627000530968996456067283641922316820518588117644998232928652838049272473293427356885407137540567945704123647733822716961308237445680686528962585991833107330118640626055729516490591895165425838477539166724981437640642701586005356319719938599161678883939151743907072132655480406696791694202755298029111932626292929374168266850237830189627081813996885512431845195383622510770346380962619681319781778056319607293279908293546399522210280009241022090392433503614238505786907556399672942891518803355266383665344055997599762931634009392822671981704441732838243528552156883071761286252415423533982613486146774009789728279959993521372319998977330451500507226215797259109096661923148219297824077546521608565608998434499677320600808535804944813096281551832006114471871578192595670164874975490983896202384525497716381007601940096833867022278158019100995539474921887219325743092881660960027215599920245583363320956271367588166254349631585513204027002741432968977659832245003944554689840581454784286544828305143160026966493960177042594290133754661686187060279290825305887580491827990227972129974629257659327976650473821007884127759415088674406899304990366594253715613108116573105888810508746798735560607347961555162860843863334013599221664652541299783717201863740572205087573562993812338193487845437635058004589134978443567951580368425485014043005827474710323197024783330714734367096888644471232345889686849983069079981490579601953136823631812386085055573954281462150279383492661652437419435582302079134550787777662885070886305987678872507468842820549951965925499189211620150487018805189995397134468065129489475441983370279951412536448098223443232617781147853710764539456665171575715060356964646210037001981783587433690663312520975119282000252955165939211148634880035947448056749387931503907268277710356989933844880648050061268648373864823450590065042916493852404870975747086615719960100498076355996050501353582953223611439963650369985787678537030654372913635970482437320541924301030653762095715267616771032654780986621977241340066581536398755287725169805032891527784011282782379491932600358912276178408376373524297628847099726140814711011399829184597097792571184049800987977018321231391907576569007526890622802350711750322901761539253692523790857343485959610680213347322131476973882423132388510736981846496468727128627154553843555469829257473358634173509833186254500745219755272700605393184483718616481006220601559443907552890671130922947841702746577951792058681239537410984139551349065663329414334931670180101329690078322315387380610088447686579588558346730661509746978081317063585409334076686204963549799372180120889596765078195629796887825046378813748763688961799274455858304915012921167278574843632998413055062330050242292090079730334419467668449677725694258342270460650795221117616120593511775901683132388274963654868456981597244192303924996184366832719455453077717893097572095376371289225786241126491031855676776238942977304633520608921899763950632041202601857574562294169610101339840570228949307463019179881738574087132952025146319277761422824651417637238236023765696492013384234563227887861726287765642199641981194508480746371789121309338172766712460016403730603680508661856695029079281546612175994110134099288244362678506513486353829247568650353114192422294382077589109443511838320432257024874103826097678592030079316143411433817231073909454439246210440705650407952230657321700093091063827618530332927408092309721340276002580080535038962398127655612132453444094719810387752145923855195768188502500421285134068709942177099663097465153997871020279933621311863240125700787843171638285205056417800171495612295665414712904010808855635944930674381472501268170801832758961551808226329660165613953378167837121043106576531376230463635890299133301459079106805415151920799617908457332971611413063301677625198743240209937736891417395156116445110069133641215455141281675664812779740173772343375959184943339520236768618884142136742991531627028082210722652593614377101151648352768920009902433305010977374835905503368894333794835562661145840762430199923613500924287109136611017390860144395773603564389733285270777127305872139639264233024708426022883333155220966964020188406383487189519396527603077552856152488366998136552560825543910830613191192806008526023656284185006932065667218096264595435345631501880301258249698484172340157203035591947589316530997521975548656977064502756293519645829248421266775321524705414915752860213302423927582819054968968152177333714522740902624511187134386106279534138024757094214369398774911480857180148731135040076583384749278465528067519984435853538243747253559315766112958256641205906733255168473338588818487192222146943072638495843119934971705434695923075675146615765355473069886789872653640077113155842374815467493904394844862889624791947922067867451894236426091862626215376199026384947099666418123850824925125469222098549135221539406648711819045653539511687015186557718531154165527147456879486076765835724424444776327613811357804671324730188975708742919775561448667503215791101318395839912606685360040207829735257231357798035815565656720763682042328478979562648502475925577353143694643034691233044910895024433801747138329889122951794299981780082311782852350201662976062919187853560018478307971874130802082167591972093451146793461469818560494254087457797026041265694728979763051145990738070671183677477314331750103787692615203219340569141866736189097640414022715448096415855608502429503608729612697777876086548535854792647293041291497092939785993620191663311286481998468013800749607001955712356472856628430606952831434167870394654381239940034557838554327144839893854441776284302251150643010404196079342361308305769834707072198900937226352195194391328883131925850670021941425294836531312398147296303116135626515063685073682867412426936315819296935143176178083235153652745920870043744862074339059431451020458138186275376684999818653049934572808604330371364612579035920199356679606495381010758712159243965637100175038724134679112103375265873407847728687121744136235038535056543672809159648334696544120300080695002592366170327518584519404421876850719978795343505469428295672486083303645124129107807171002916856426124746128289782244199785114178192490061095801125026535739030116960711841757450216695464496120389934076645192759230758333440618674296753375061373483670941207961468290926206341039479358668717165445628200866297605934554719087600539869948324935484932931193758826974658728002809608775185402316513204658327491563117560700278511029076563119143014122419485338189559264774509885943072898325694078276761233522122066468552027540581546860691455065728592159399000405968362230198232181621621181081054682275224974380946949098709500065327142167751139433419131944564565541759804376594780567072488296426266877092523257202445901355752911848372873455361949757801453750380188015371739486485177053599193190054020440664290914307216010263338545041205922809774721703002245234404649050060514668386406271692446108759870542026227855384567325691178163482232132070299148020112961059859448776046426110271425194574525925218779864899411264099087713924908652595298651942953640305613499070915418430738235153165538789266623408118002537687109027259197394411633470872888495942486540571785035463230147040377251818084594559618529428525523097741371201479154495225280364131244089148231308344511513664662906704996639678360315241576661133941052863113734036047616350599077989877197110862667229250294227376411322764033782702502221310342886363437309462969270080608067718848951130508853914481534144780037618069562418152193709566900037851530590707917304223044585662383545438369758209006595543314786153738436509242056882829206666076009275979079697680637986980554920995130101358150877260169170390682620507737141330844736791687742825019154441915336881472157733307075774103816046686448341798752747883955743178165795288989471633843660408753940092058725403928699944028820067026386569438463009840023438245722908279541327852881301469879151623340844799382501337070209817850026423042408400444018042356252497933633461665082927598419047686210343477076313246067240359977913495107288176465571254325674381157393344941132228979675854166471711976935444307663002739160110407302865336183990068462322550570998170994847983336802759869724826817271182562975320853271142181548231043167888315884942120231807050272415234247278713233373275559387818744138313224424646047798271880497234251686110348419450074336018769625908692070487503826752201599411334093680262375153673691829527791892917228719015753891887942777522080206570440794042028028813256793903235701276036175113225922459594011793984409477783526136273928924483766400524243421218740899935032906569805891017013970678923541645059599005423395034296386257222338232668306478521817152505131933801387953274017904924378433516528197436811991119284281598051833344585918065715472326286567592358208115854485919691397818684738208606403014976031864319531466197625549030797424746666581585725424274523048533869459955310062247269693877212169412111622692835634812840629559297965205545820040712721885378959847001630377746723897420289109084621438654393190156223426422456231127898139627801612430961012886203888980462227624073586634859754027600734009490084089691566922392703003235736448007864904245554991582137755812098251695742141526285387885277606629696028996792835022361828336612499694505381826709464072868934845511279931909574727223780518473949557080799470988128510883399725225346702332233457548709653588529033310824283172063565016226428268427695447188040015438780715737923245814867774817709387125821596047397270346056595750623320864676515838091426338617333844540402515022632935280199763430454718429878281151179061663280152132237476850932446920028020846491508865738486261598260299007607765163875053441888928677199889209383702811240771140064578882036518134198698830835913075171383564980823047882752841969449566819069936021440709875280022916433745395828332700821757769987563886480753539579310672142350219550298478923244375241792840983158325414875691838674009862998393571163126922740408345093167509422074024652958390170671397670247990852346351326983089324760885869806667435085777554396603782694114209140292912794071104566671562434701565417756217451080220314945705520220744003653435233931617627707217192699137486960575648547851096242730443594440590745818284070907761200739606060092142041780969762062588811948477537472889480743893064251056116548848332791431708112391841865651295042957272599769410070634660033859454365785819424971572150898825532450932140826709121693767605947303725401761092287494560717809113900883839326625592713839085832591716425557383493183175164229907500405874772820594314334171927133198446784436883486648075999299846243104145208282672320715137342766001620570719663875839416670344937090818771098441270265794939018101627742337465514616715218675756480234242530580477460067477434418393453126293528563378862726565836809379985568810569588045135533809921891403078743336410256605148770516755170773274762092528826721047063023911354528744075937542164789848945310314910979399000105566938979327958157366783337819274677505734705398855648239975777618800990977550293831450495178634068332895570956040494244590252222295139368209416897140392729457489358209762555122105529663138959950775522984452568700011642168160438009921847032713148905221697131895378010613537953967732514914153181857110077938841485366133334545663891809473514214945622164972201497713032411920188321046286748265489051403728911961562067675670179800295481051675748436830287039829374406977312508440156194977756302564634918479401870063488490603898724629826542720128584874101683574346539814767707863735642568348580910669842031927658665995322766071087111599095332868063030761251658643885561198557613308030328820781634541301575481035852471285450272556472365759499867826425803900812652606525806142923115713367861453683067742104822061298252966041348365191480888196748140211894646506083329696135952776640413491400415125434536431866601686648200675264192240628526193574552686632132343374333751984308577883068970084805681449694297764122239499707681216316592065659669400419223569230724351938565968179754536782732890453345018039956400536231028939403997806086782777130924764356856209271653274284354725464059158398196828297744351669700923416440700421432673847603957289245162402307127918473558863822684315189190071780643921659479280082809977513233235947079459641431903813485506583877300143817118217172725932514198916468804291013571696944358923989088650507034803799776591829144240981377098276075253432572647607770237772083959393687564398512606282912576839250132184807854073800346583844619805414983567925948913949097389254465572349731245434766361199646503345338708136154019985106443092734071008167083401965476819259754556672564232346157876718156109273310390719912231790550415541046402891922510834925147898539223821425282271769871400697568441266999157518308920544777829862377200889986180711212725599873278076940253143396679119897388785315913713727664260310617631177900807891926484614068376089801550835250576790576312713748909651039640475481550337090883312994424217044420553880153520658460997131642176280557744430782776244381914537791302889642081783868560284273367552682446006233556768361528607138491417620583959091067694178648159862485330553114666190080427035516024430841568994140572713476971567579450464567457656437738534812627054664791075659218258289907557809709829239956872353053490021801008308553198112969531329298054250448129139971753307295417586672670877493164773098785542153886942409737670994869203451002595523049471675567927618396034073637138934345531370872308083773920495206251505178974832587433836933971137398398312683627448348669951472855017239561058329927519981714668967959340198734145939307178053756988008292056814708094555274536853603952095403232543827745768201485646250617004010982919785657503733529742460513637675468339272121786201557822563151366814696030880406654876502395998295441640926326265119687024011020334607454704812771657467464612999512659323667610808965752862014736340644121063302174572232767016404193510215663275220359705269673446750261151376126418909967863689023275475317756372471563621602172471585683125289812417610154960210494205557570165421496259204447586251547538499991583677219150614187932893605519340699343987538002464570353266072160404017310890146080073698532854992890585631295207559651073715943051248448627063205761636036877705243616798579559217187612299930786924584898621369963864563093508516418717885170032235730422405631471169954259877133792396594711425240754101592821029267868202030084897490481353452439625117742133750883264437876877724475942488130704586474777545427853151606877895983294296278375241133440735274835110304464628852526595746565765006858491171929617034150567575560447802088510128123411529520235903485091966653457967583160862115344995797667039207814688994178939028921342035630646057664810987020324360937749166214530649115227914309094036232200357764417944596714803558395845726231542123477832308488693423755663210035950716609681091110087624120993983672128391409481034875070831311704367808030802292566048818744887437200685759472752776398596025710063012672986548304523707839439952248410292604235616621984338159938998825826772327113980734820991264091821242736322350971907089581018309159434073562173981491105968787571022741801826106594701731456738701875804207084339006059119285707822811401280513035017929414514773410460788712802532218723430366647056198874443086458594035286909579934233054526781643657338679487216005834658363540456215500783935225319251767785451987516298563514197141832990078125828155043427222311703839134534343511630427807490044212679754566548645495517390062078087175644465978457371967227102429335210219816308834617231176357906667434262214444814288496982595619000458373949338535032551465475041916977826892666169927449720729443321952151396353684196852906244841507982936151843617991362725702358731514635885693643417125263584989786370611872255779011896811690793464245998623012693482614569322811699031622627593725714208195221046328286799128383321362480331497909190010520743367139536078552483002192573521776952233887049056086499668195329677835839439655144300114517105020841253040371376683864596055622667393764222561813632064587688000105420427360150458832637560550232324143144168763794447492259601546972454223210040488610277872685734492828070325988604843021741728570896374997893532239087970345869149708998955696806877317323504471317270388130534444201404871375535856886704146746082807391806996163522037446126041599214531519148761285596371622175147427871234055038369709877375906953094189942241460515559561504294926383421500097882241347832265348726794124518970045505486662507051032912367438250427023860971066195134134624906836762025385886699480352015088072419720323384836159363732530880072428312412723104269481446961667747391216973201416758951263787684536737949509267473737512002076302191228513145594274411847699336782947595753169922233745760300590936633567001293562341328921766894678265940061043984713799935127353991048009313645686841661745589565533195836912965416081568291430731348899708548636066039485900290459390486406006804957487370055830740705342866033756988965011093171315953564457018504765493116148047010748302127549374807854397341625257414466958421083867398879775785870140499943651352932781025875935868215002008938314690552129265231758121551827205668180047613373476257845241980494242013559009159703902846678290173472460302487329725802098837906446853560419600799620921150144834587554851648939906731523684711373326789579760671496544821732877923262002450279829105186839382104443057816848919796082502951959481612867562012051778553139893143095831235153117030036921353361159105626709724461685085044311127424560920333860135034786598353862299371447835174861205682136023331602024306572282910900251962095691619011979792802316188125937997086230601729649008811943705027537490130314840601045948995720101451138596431451164699864323792195974641717043977880163119906277830487473260925388903122683820376094317557304445823914391672171388004159892108852098087800233057794080901261069571497980429951633749021724098090274327143191014470054395478032597827846880359912811632151645013048491343082955226247069069064244937127375898118837627268749847693431048304136343046814732885863010392172405585859809865624174326622830303216162890246129098558597313792956924527399313144505786219146894483541948199368843448699302009391213827804698885659318978724217205430580323541629806759852860793888977082400371966232953537530598005327229100266714271985582445994193955550278179447614469159914747767468190904470831770869785237609923058663924971828782970841263068060077555033040575458316089347415910670425746645189955418088973732104788939766504271264309416047888800665099283662187458399533909053229895489144918263896090790493149603385348207321662346923789155871848372915040698906695760056211121016202736608952720212970353841769970096132907781172659826631705230953039750713970659991334739594230654034038384721334436710397993144810458046971192022310066039488671860998244427602596875085491679968920251441407227506862545015501108245048490735306313122850009855465943748418880406274869994450349083872625914528818263574424137934037326298589673615325471553606994258563308097307137936731234546538637246692317706952955566142419035770151467723165611396326592841301654301773484130106263777081035891758193590088452040926459296029602921639846655863541920194061641082410327891089130078002310234741264055295437483523757805621028309077974363984735050054838743298501983474714903846328346407788397327908207366842525045668844289188596132056118999110996841878485648188985873750743664226194555708607244850361699698953283485408098380499655628110043465020304204989219591493739041687361995205194916805112521704625678832851050265965084828349995199785445539132095600415162206796921089008799207011521516082052358321578897048436755641364074440314815131564598590685362882093489823167213007129645829982530009107573620067563019087518572278688699781341763623515047042167630939718921986860606656545105712422428352281632310254228232191940186549568860273271070481497502569097267728918511752360670780847548580469834479220211550931719700251202976194280300530220512911881887812456476836266274117782248664702705309992293272808258899068177195685948439482724046600735857092374215950412788698537545448603836316883788269497892673740467077234065379051078334716703870361831797863527843847276149182240996046355262795862895120665753190973920767585073957963161698695778184007953252393011429013680912397195663939415282520249844304902602991619383988221205939318443289837622376239580307017442667003091098677375744539320878361994159082183502607054642026501437970621553510146267408050448002687417720290834692154990931472030313474243353060483541174268226908725062919274788003013933122043624391605109834032519902986825150876696569870314077583067669126983321504642350568342465006529002362256670991410323792030997579072128161246981806155910399004107848981407841681215366548459598478258617879992302051216108764495621925779463070296507683385135273592899598971224925131145797777424014682224634440991890648494752035370116864154286865160292192588229021693580244551729011445990534235678069134735151522628883233116470174374810316568941973078437054008395704178121294115138204326509807190689966758473219013900945460302358026535089118614143754662702449613783324777154094145082216193712781224467841802614139072560110445468283026701314261485364940183672337106680256752006051031952564539717961898238410471043613548876344451182660590290932624429845234246354853631798242384294844723217893250364468860577090729605167098236225494736206673753345347501891253159184231877372220981034499385132425903957499106519786295563106884826866310928745908210857817897066402118550746291346071438209780079585530469202673997803775525328944300130917600141530710269187840077746605004421298947030762242774774689739372299647769625914815484898186240805229446079565779460429752346176138904458035868054955936416424575105469845043286799745305361547283632838329662564133124725450468677208761782120897347714619398758704831679463914101602451187010317150551315373365441168345898579226830433924508211365260650235464697969705353345679035510032054536225636931568805069162475184869855717615926274552837606583342354862857822517859537677050223034936305554210471779613664811934429492489976085398554876077321594310350709930682752793654292895479997611358373763333459153157431780347868524032813491517851687857017074131231299983015777437271228837975154574199864530281830144312605977020915966912015319577630875673395238667443363882244650038607132090528083162056348953838757970673642297047742116891022154837948717309651212669510979685397346461781259036583269226848946483672828225589237036302023375486899191751330411947471985022939635959056834669340406201572484343984182742935050384458084293996870284827315392155914720894823015868565043551548115733187753528010948894400297652312504908665839260286144236483979424456957933855812998802930491644435787534464119278527551940691771318724336330492820327002933746589572496866356943666039954180964545409088082348444755447080870241749097365846922972484100709184176219022233564025958121829995537594218991153155175261106486018390485530754792152917619840528810407394393131309329061308411722980044745439834608916616436011173579455914727114530714195121115341480154806037007506658506199618323713074770072306507131475678442589680658542133172507568469676641313736183323514184270375937635973683497124595246822909264882139006657125955486206045411241078405238856148325527862507023060806135991494733702954561795871613607014058188961218361433511630989877750356725798159255409447243145645997501202543276719207655184779489820676481833623491234044506115208324394976047699725027202956928263088980929205566193547243495091078703892711203755075111217852527679169139689740417130368232991673879978256450929555396682479091197335993902108269451459624995189427462005809599196401993492558516469956690943927477666978470702538342220353759361199914234605558153695886021247371923289645563983418240774959453250823607440608584278764484490615530823895707728009487869219694563901167269157378216289110894588137115546671459547296884564582139178549488536733716338820625558783284931836527815097587827642158520674710758601889737204160519565648769823687791078253269996679037736221534936903581022189595759086817886299579675352492573307709777258209275238940996067449367679358097012628920823317752907054034866100126417649006353162600499801549655938906823523030706238733167780374580339759289515834147491024342167241038007627563355581106144554186255033726817240560447087763772526913763205643560462870992061133726250939082056647330648986629973358188384186380159812279769094725750788639834498683520747836164634567274362686867315521101097879075137819315850273017585214737020174333862503993567744763783493766729573051341228041588463418903493795231122963120799797065023800077563765357589478921607170222215899145027768193235778663259358363436116111273934523662809415601725431068351208011264996618735944310929137962742924658404214216862902342634050328626683656157056174003700597684569722550843177781660909963887251489267933007863026670372438834009993971075490897336672670329403422017735853420758550819460143801573067861230429338567442725771486756919109083003997846706852768216949326046572309619663892794006078661587892197062994173186528364161008947989001563679318830742157067779841997602666736827825146202672838701567399176416036752009876517568709608764481871158016957873783363358183915606585660452846211860509022875995046190117315575318584755296148571156651775082759586408454188780853599010486402536379477849691289281203324386864509896908302746265918681261906571801332729506150378067513943577209729163684785212249105540117041069290537149344122008393952672116521226860442322477113722810873339402145733156566743731960522212017210254339865615676333867812370201874795565141074490266071086154188272349485962859585734864645742319149269904424896446236127874057001974583550888735765166013751039554115383538947946700719994426248285127849497384398120541669287533571909003144789007042138850449107413042099784913101163056492683600587644270179619066252104567499366718710273871832030645421176003170644141092299304417588422679735065745522376746691552101727389290446293263282715338760964947481868276466724892602454388423677019617494186694609789606581998861841790624186394954077200919645627432001077598978456704273458781413814533664655468944118092261004228571174008635833366073050995285378913436532049224360153357653640789760005104800391700763008232543265979227745468257945791084564408978953028152724808549486380133509175675849998983683457839138731222460115344714314560712680441430930212335191589471705933657912198480982168895249980500461209728972180571041071321581250001291008747882967243714408209333006362973303956951177664350697718830105799194150703329763322221021964097764314582758569046894529402467918811043721368039859410995708835260600879501787909684679575192836846505234185536761198351311107865573746540455006003316227335089872582400387927791660588273305910046088687260230629578295030843515881977276881527268456991165976254362577022218261441932334111790299674155546612144182082486685166364331492230728517461477386925835382677077196637049516477355279738501577826517982343641376152865589978199150758793660628531647677244930927179893399464717893536760962937508828268239053534179681362228768460246570820131741779613233112534107425656008146669697673668698196989199440614846744443612252978951459397303371934185462699747613459641047065159389846419798491010244339363459911184011508302549137043646771965520200960952942987205530494205727957433051088913352594527293952105667644826059835291372256455678958703952987681749330439085601368453812807531948271145391426589545643869102898455024359111224146780756322358777887064375803373108953405778772373276942630270982295848646521878544679016738324821889090921099743258175834888190071101175949417315053333533301419427322447801132192013165107541814455846092518651334234379433252819661301555018788143737147123678194294982414419424125287906126129578714711540816459977715219195190945370986865027411775289692370828458250064359521209148078155438392066587467238120480306451724700982263891355295733637526260238298318926390950721472064513889356625394210470671494251237738962899909098195369432613057946931979429334516502138946692624019508566295666107643772917916803350655246344536409996496639029543470684967863990546220590433936539150840176264983134075170025189563968278805233606447740993733900701149323943329091712922518265028966562325475766306993575777054367576381470800233156591906899152418611102526197780306501191593053404810921410723457153968127904331009036956205569672485938295917853567344601924598494474703509061515612990713367075297252822192285149209533380788550237043480681365209288567611494648949365217934916845483176625089882763970857886638514877527613256460775716636988456161282517222816217085047207788131169915006872991253713302276926069832204888864287484475403546828711032118030712319730049155300419146946419712623959562454881100614258025757213081824227054837261525302958700638626963075981864184517507565616494861043337110866277399898961932695161855223228270207923928016042538845474347428536074352510618799168642373664187535898404231976794078681194531286432738261743563154942032923936606711419560282940636708848413291959866914622064490194666285660871968687106826319732894549018199417198926780100950480221151792170375736149326542058248131793036437292017582041308676035680125000497572704563294711326736945951102920485010860863042351091904795935319528674605222372734279949905677222448334104884558310365844169806481427394921472347637679950183060765009684975414863360152757521273601942559886230538313986324937037303356723498781711134289604800013947629517640107673830296345795609395502548211393277708941964565343967440748116209023266003556277091548841809535443940333735107471640981291568497823155217101250645278095249488560590698117689611263787328076314939874482921651206407232264619468995380308574577362732801951786156819276923731572321380171390618344509247554467064145871194605676440508453848588775058152613233398319623923111138103188596810114002182769302630999407557819255771804256436033394251688485177211523021001225097768660488575490744887817717265372093217972883777043511827789576170053787013063919344107559940203165367412949940396173254506534836490129892953730113273579020609446769678595400608327402400719571932334124091817198586340284027160110903597314240329768766891912822934617230419067391360059546740857689687569939324770589095605800572739534324035945665029516266923894098374525393849972071044934746878445145574615868435655224973768497360100304048336092919405254226466584875673231750356458270964069754403372052054886049982059103716843650036242215929173787297500004250586740462159523920296647255086031826872339493758557169552382076550188678730352756254101621162841979157542608979709435573609661270516011702957558240780982418141255258539668727036406526369968044992555040654693924901451886989616625819028992418377720098349820328522939220104746569731620478388132963712136913725299699594509025643741165573022666086177706572397919953024732762952921830710812657719307783362801327080017253670375216353199743600791891485412984327763156485229111113227372108071931692126404733929289850215200753120630904666828083987031014099658372492438930606590573663948544659457870034979840516101430049792935287970863885387159401478552179410809822784946236451712224831248589072610007983243833694744291918061982551907856996013087843041658690886463221474431094846912278938189333029499693672863467508224177034062232487740414371164735658324741971760897098992575656329825931556909228608523805937133531001936428496268974247209896821675988956455248687290903387334669238250591087319061905189695370405231248492307102547262316257426608671338864372709261674974967894754378917712805781271906143462173445486680232197692574184372784385940629144168729711284053298989722894227975063420497112996189503683521159408994480574383527359674207278427292964015286482988570411450146917277071936644401424907271778345641374842621503732772899429483329596553219488407364673563255883671543763402596356893506466638830897553319703719097006066876014301668822985113507668887640334635430155315102150356642870622897684904934482191224909600573369865222894071959087704208741228504279610908215630940019354524998511089724682050909452052958286382442764414268811216949638924185046190772078610679276014435990926142770252779034983669995221071526047474858533266922816341716866301756039614878213700909941890193511530357521187756465304416471952250794850612461549657323492775220409923886894024210079436770934002154580607933344109573032668184977592439711507886257177457577659768702898957585156772491354780656544514473158454866066981764066792083569013468853572066571909742139892518590498897013609509081070952841274233646016011626925290318684907133573806983320558929896553831695500966047002964938524831481953761249862850236710463112298476382168681123033693372922280474326861811478874589029994543404157422991352944414906970580186218950155217487984574750187107661261028518976758703228302589405631762189977008210263398115044747063404519401736178459378201538753405649854456538654445632141235344056423278858782321608964347565529124127747003355285951591717702368835858614889058930723374299852069584751624066961698245308445141237470510784182069639367852865677299478123904979922159325783957353049424646077451297132973608813519384630216134103972539008173646680342025250895270969516801689945861054833987316808856450151673429142827958764325581893792404633005211350133770667533203368998354566567631318626761150579095996525120520659121457982956325496289019868264561653991227879469495629092957404185001313699033310282770863391591446813761573484132805498632082726508794455409614377206150339332074781601893974048722659056263904440982630351353248443010287245502198976496396459088995940120896632088925395552711420648857404478268463842692475088299777088857083967946578897071082684133608057049839502956349752169246426181398463320954232192433131386072172569176140564040540494674450540277696529613285957845181778207213437214883722265189595019932258730956877225250977441689373168349835291879378722465958298377612802103231373516991029106123978725698693724581807024262183512655921070966704696915067748555776896343067502213432410639833876679459688805538592966507471991063199448732880603154803444920765107353502897260176255034457727000595329922829215519357023510291934557282394359920876054447052188030255261872355059245967339701770854924383657861931705138864293078072953327234165367526670846615116709917977145528860711682721024983994364701487874838470232489013144022018533292069880954188503163077252414000206118777571208184059505628747518258752913948107132519812698457920967304765344905989802556012738080988316440360440940315633122911411018654882131026845344115038507833203473850806464329747060371376491694006249592870222781561418406140222734829602180166280613508515585895510423239836270363101516121719421148649959796117410297168697711351791651045848551061368247542386601231074112725912660620916943381706088002809461890740113215153767601498935407557072821978805787519951795117559826589135975154699835519317823647901465700351485115224838732829058860688516740289576116791282830775830741817655093812437533604158876452157596502292163524426953715088716629103731808674207350938283032635325325682250708506859179658784177255551225042182923249588492570851973354332381875987247704773451569757243423758998069582105267829799981378851254039727587634611882776965090528642987434306133039423291196891135319137467435967315216045162459378135044509120725901227933611785037185127687294291571057033942367257386574816984856405294990993111700850573134394214327297251359146750062101862086767651687118769589324610016032893407310242689689233100485884662021143875666499289385028371167063369279938279298508202362713089382277794391125109043581096453827320794622209027825204371653134690409174609327741148571937139877320198517723700760157868265966317926704256789281177992011295728328924001344217691999576341425422651816203005286680730270193237785730370429023225221278062761000268872540777985314153325726600672729672142148862921088887675530783116903171462074348108693737181347894210681932019351221744011659243094182650118979465214305007696899146708375861318448540129787138267880195576127950304858086112718939439363108051586564345221042009409155398250618480043034345822976277437939701732860484739658135649977278535818846007313729636788199539447979897139824487623978601084831071768006781631772602424248686823616861622679518756338927995071236312653106215832361734675706178183519311683587313797230338858905848424388985501823596300076134187783499126290195279113179899851574916342068510754916722561958753433431796543372702960828808325218794589448121930733651866599317952657318086429866087795131517786441389526559797587574683433748779597227282527016042721084830517289657748858458796528560391368982245659694995268058370716096294248034340871181518459507390900120827265979192746118130816196478112765222975993272398079990896199224307749451943241652816412448625752041634227595936413195997792008960537292745907117549501051124538210840643139617961765254369548091812595949320373341332664166610705304420200570144005408316569113488371665842997404563997483899206548798856347447539714155797367295905977873417383883810967717391551999706035364083826963391092398829234719164881074275351143133484260776815824876937367729275507867029480579562168608482685272569916832871743811841581816384269077079117898366595106313433382217805384756179809711108289681590585254408091120349326236613774817581455856770213635802604653076733385916232621671739798774731190231983111327014890117978139669051559492852483959160226416798982911828724155623647798962541352886241461779076241770245950498696691246654458942346521375073360495787549136986969365432770471161866390192887341095957575120073436320631092063046092668749935018059964699267796744417573473040735197722156221741382405678669398827435570041082161334890926643858728070147916900477352007024316867716550286860678494918594920307718698571373588839721305801176405137659964578923493535022498908981888968830585674382085562596498184656909497035092854459328112566192414820793898148367665402974792875139371492067779416480983289667899509452804848467533107157735055887473122750381353461983004058056421709020287548004683638264553002579346053522060224619977059039103738684544493549869561982191818007425006952879192146399264747362386846647949265274758310345229319541275051219941778550193803517112614448719769287934816160027839091359577274923809207242250710215147901291652162537627840853767039078324367026705579422855759779082886653934315705954350706682650404351612859039112936153294610068455461962767895760101845114260267402890604493243774948750464248188558049752433847427650690501706646917465910662430588542147896298280362331617119877195181563887112029592156611775236840617969900793403054881701492180587491512089503678277746165980678595155819492247648029640241072295380336010474299285869517162163871623743234766044510616613231599976805302459557555071823115988850059688104490339569055011306272943751346270771180971855850800904639865191345346659855902137182550674738340849149683425130973514378301887566382845317685427312902063110124254248508856070083124456827397731469311138714664670120230690823221439775645908589505188202915323505795618237614639249957737550889596863760585623394448907681940444791661894787920686529609520510719234725250273949019833877271131091049723574897609431710294016889105725534903642077834332342820611663501543584690360036250389972231284989311991836692381829098199088301536661024654923085715190907508147090127869415932152872100397290714545183579924626018133112319864684488678547562172100149527091623441356261116483387478605856293364389270616983717606727028450879896346725633766054733397920845774643846803302663418362685173753844880568600457732930713837453867231222984010835659967522780301024574067622915892181269443186869789822733323506071909665348635195950272736504250893254327806448782010897758150999015217100007739348455115470320493756734815193429396538116397115568768149787618039800654780404864956064868155256101452463654875671296329237037658638549431922739758088761795810819788646427550224942713814296528639442873461980723233811218821422660401114254450000424923955744458987321366183973138983002788402396922113147367562955937753770604957079771609655481397682841409176379424605262141478811544335775328953618355348775690756427875917432628693974588268356934478806097351621053884046106418096575799480186451996745240915386612096964629411338336777067243319370705016186999932607596750409640664018393387035827597153525309678455489765722116902433064480083668049937487922007663144622087328306852994163569286964496716283901958716153562136214529350687763639191834316015510020919046898598827850042335765788256347916225775256080436193500277287188955686521083911766936561339241286258017260188523205981856609372627286189600716513990707960171944838385037840852649240934714954314408362556920841490428843620250098681092454623543026590176819596737947293497292608905917358033396181266634945407719766797972667768599605573965229408651462510371357680027600930339981206520159726432834388089760084532102785154901107727277675635307184186335544993608763824891144865789049028395346262501253545461963103052521369663365962271550410630021130225880149312501234714471681103498085425812820788998385250624862908794934110278322133884879553032473586401829065100198333686580258188567787103573065959014696871098327329300654823469688921183138599350144744893555129868690416992414623449070493363313849296487957551061390188501005497543946137124677505224871019289742058384474120168429172300913744045615956550526208138787561623504083082304297630228691734071630733764175543033893022779067296193561380500963567907875194157642019055888098094246956071159842719738222903645797623129550731263244870296817503922677099932252370691461301545229202161853114056779724749052407650184094248211095639069482668528715778270205812851148943844129430336899783402308765676123657643448707746301143655257236027734755607647604034795458533739937375822179409280009972290696660782105470961373651825123809141411054759319924843294475309901366603776444050715280663358410165420069411997870204041537847160868449816227252708975666241367677787673525073729724701707059258544891491790929041677521618660512909696178783948089385246595604437700939632634888387575322236181019882068976672623782931133971911669804930104679050736515079863364129833912100398201426029139807695515236412612594634529252885310947604812388948014826697249900253956593973197999525098792522948144536079147964084919037862930298418363034120911147810863444605035332533587446950650653399520637167751728487643592550766465375779821056242406648020555905319345112110742207024984125173646757209253907945626427949827498241845207440839001150404367978931278274552628412574657494789037106370287900061342498751619072949587553704610659213545076078426299735163789221572564079491852926527808573585236681747286289454471293072966767202431228182126005758204539746956496044104152975715429791992239555033309690291397248491623355013982819650836739993190336660177498976847722553436034679197967686585107048447593627343298354378764297366609928704558931079435070446188972000805173342976180220051041087009013927816428631127928122906700362937302852599495829752085916511680743392653080963112044993045402040131265217097871947971757395018004307391014698633683082359848134177032022780901453920333360692551746288441620728524842843747182461229165282021430564624336729094545948957134151914489932938100233428053181164713308877213840642946010213648496321031840057647969932736793471987657175323250182100307457378943828164790643599515783452283145533797181088649280233427237911403610363276589178633693355443714700386456309677080661409677682145280085232309271288814379694894566769796245424543201869965525285688885994456426112223525756783194717080525409936734383008497066483099551341609770926001989102542878333029382381795943398799466182698318017571620482885934191120781080229590111352335358166570977495000220096101204289997032382013481722401805839334119423473656136638689361749135932771147874195413983928669103932309355190708198551762607676364610617724481265348591876908894068888198320105975371399875206780096223751778780939037005047880397261265990607354699360450845530387681937351133120792834469842921477325748751978170301280194650557333153479707082066933630450215077720951199341963413990879138693261188416373857098231751030958628397136217969284736067458449079138916324165372595604100522096098780875325275790564447567054654173203562177913916457752008629781972153720222258235405998525881831957020101886288331147092869414345471443543800048936193944972783030564621407683501970054651454949033176710368168843587770074904110618668501733768799581648276420638114061729773459608868454474549958856438988924714898390186146964758897070058571588790946656568008375985700838082073024959107782624992071038940326076907111341630373081747989739820989928831026641983912544313919283784340496279746642594700875270163024070354483167173482463746206261980121166456078692248361020406120349837249263127536706673427648957773355548749440964678243279994516344230230083125970393715370755988503661364170600680996254305090773546989900291117662524043617726937271047852014710510722521777097760327120574573749816556773247776150988676656523320592095972879893839982540814771356886246816392990434044226821516977226117494082571773255186747244581643800530062969364303537423679923537675617771738183279237716811516648073336912731392455528732872503601982101776401669209416136929408979610049494712139800243297586906278001522118491197206220665862593286794912509450562723768207576932649989444624680271287949612342253544998405650476317402142823528395500719086596738909674780130219442810900956240390873052405859471845375907164883129178654997928938096658028372961998619806905003209303265476370254840234324841589032078415987684182303293763594004813747554028327584504292983090879241593618359938294921901445729965080691427506588652354491552013674899635910339561850031900795890646734397610746237086283408959615638122021341488287293271397420786326217876729342270026763633906831815989668669544135034951803221903072158217421510636172469829680906997551184106802001546760709947520558099160437075403612834094762208643767069046193529376733904275262226322119878664795108590998913152727168798716666179345597966491453446065793345209629974254452807262725981921224198738392088255286535891813781730109021221894004622329168165554136960908747844627049069592178588349415846775225952560142553057613001632948278414011764755589957905281296193555659085048296226745732291703217980932646047711556669554230684644836789366680653404783574255630626765487788098680763435709059471742685539857843154050748141782140730742867777767938086641201454261192255984004888188680599421214157343551938573119759281338831907777435880485754868427036326972114008311775988400186505248685441921584084386041514938351249650938240499314415395026243567000146520176594639729887160294358723280358344497659680313722171585178567499645050630161930222383567207710831980081045083412371976860639740226150099354584805443222770869622417125252029276499383017432278759898256822503160873236922929677058136520916567061400918995115176825484863453165069679570274239123839711913077416671208066073533902374328192629999791173182046578542390504468103064114498034031424238399882356285783145443816508077784834810324168830663373575322792141275769051697974662090869767986512104446825719851681329517519019619609445237319756929271594334082270112688623236840755770974604918132275478313159770353866521232878628308324656697498308941597100864974918269661889402718892268602642148621001651592007582747901383229377925130624895744048319109484960964711093736180562748961730701507597509635864106850829402349816219140654942202342785563166797388198361271590372338164126865746262900659711651876853011580748788857348967467213640623983597371884088256422479916661772276079693399301597043026984398980284031333328259090184499949679590360765505860652232007646913269949846715757069570571934199461864273130251501715472339023230990277230852948122512071092001430766783797113099570331629149323541592823386904381635299988954999302469432440143839436739564632210540380175397510982522976684850045512330101350793146187066244658920488814073384053711669406583876179086596717378935238700995875642778507493782859785994510312534487322616303817289085294000900037117696593050629744762614302111527755917561686561863579014451743370451698203178310764787623929924134124719585605755086899986832962797260112572889529783596326001697479907039395968309087499978444416826733826970330321554068448928255684130952480874835427427207363675600510391705563805113274270467471197439153168218417950307863251420271578472812016349204980321137122324330713009540236424138667416692963349757086404415109726033332914478206983168625509241552513214622716532317117169328293665502035385486182653440828269098624046217544963792893022696936474944353507503814511024257560753990820051980814227502466006475201997637549239924305085478108057604015442746563500232433553041896562699426154799422817528903944229714362057745668304186941446638069820840181125501082975200735972424891489872894665691479610379634379377618830728733599065406263761596458998105620757658020678156218584146877410679170886164474490170979179372074954727673206437997393661649155938205934329841486917427208839162829962236039027858113390058576035224359504048277893697089731541832841821043672821066748488019008485613812857918064596695154880615190525768195784008797617051966079973462607583875273822419648979393928166217858296650791191346399798271183104744732735823233650238735423568197937558104401475199890029114558915803768184252817961066744844737817185562545983851275560459269413000676782750333807426978750355163272297952384215364729194884206436880104053810566892500860936441058471399905006886400318296687583101000000709613032397032057755275584133361807664721744385612966868469090043645908561842714716066827282840262918653963157545694936337191032493272314295683362424015746569453423134549565379940571350909608046293114956780747833001074644361823041301876952809349867968038756836453361099658876429037670438283417239248665404509436379646233157383471711723964686972886783408328583046479712996305661130583473500824624441845464362695138044933722509798989244766773770961062556358153603916593777796477981229246866555795783051618512314517618819918801838252195404073818106066210316386663355446953715871482652252338532230817962679102855701447562504797678027034525594635561308644334018043723485305373022485760512200250993155855193981661935912448273918070355374485412222903600493790363581178011301035115333649382638904047639388005781921981585342971952717128944874426555493649214423285111277232793975008374299510210672976765765524098628485085200812768363851301230916385046422907564711473262075278826473954358586844197730405649539367308660551696209558936509143852823305214110010760703261239546686910560653342257320362176274506906161700866118052138426861879456165659432450828990936960407641868695364465452633419172870713738863417305566108086767169994282509274652315627750688242661927031895203408059615468628474149516376703869704808516788087069411453758308601185722974087113744805351195894367472654920278891112612817905349896463560915844837063873209082293811329699162914416648503761581536234247562342321325364408570314966752676255706282882250778635872162371088121563568888046559797206379251099683163245799429678757543999453551606196923073364410595110769900136050200689637302441576293494308779997452921858833830673189818499685358877703544342134461608233019663042758628272161065461948263248160562268039847993563681213182194430995933528697702194102206260305552934363610053796029165107420557750994396798235816135176044844393332629268760512403788291662087473121643686686149971836883819819972044338682363617052782590493841567367953701386705404570826996974959183287389377838652744826425474848110810725433104262827923602847881189264300075509339584832082676230535321357799784811754576663077517506161074172016466897037627319525513461795587351591304551759718151645875356669564490630173888197486888972006509434417842475118802783033050329061575608315764979221745033908473603542834707084014297942082214646050590353696832850861857156575771961331647020969505324348757361950161594228779299242567444880602124022388417243318802203612118104204837392783269166714200727487624240901995222308689054319275242432374368819952209025747458555264995600757889097465761771403685287300586679458718764068038421870859258487358919845014786643836056858754510680148512742538961434542865071370822340836676757348204519914262813065664417044172023747763392409543389584191251284933557850982191530815192453469342785074024519657298375764936879435827385915917040229284779277718676780635044552086920730931905802633500770222026157542994930651839946760727620525373027221423618348414097372001703660499922275689656235323341546448673858807984341223638707943343055534900850782465537827883202298410715119970815365380721295470840465445318048712402031699035871923281347744276798776790092543211881746423011621812986178598439392607717596602362337378992971683192368827897720587521979571943721928156234053977945507982756443242032642605874122545860348639499243613607428536041438795430200421887125098570560379416925727017170175697893217398125424143692835804790009148051118840615726378259352585776452511830365057557389897668565091303340336795736287551994458630872842796990201065858480882435930879060954739879071234710319894495157309884947414017012025687594436087363437548247083423476558880258068717640023760165586099246781502749062380737052150288341041801606771251112870387501091756452020789523181511806739882907289347437205505687781581927806390883866076094155036559841799905933335251068983760876521471673689104115365839059388744571623120296378652084002929625142580697742867353479152478286616532992218970333435491766083374010467662204586306987613678849821573007083887417856854257367836557477681419094062764325760643482512509652465327939124313575945693375896541969216299771714244775388682193384327699725429010148897181274646804329359060521653059670286232730980803971979185430534814172086795841869179962287431161328077132653327933494245288403726932521718678960517835878682204392642576134035160616722933990999708695056009278124588600999365041072841696913635772358304982471122152607425464232088590728178987328334940206871929778868847615502721266183808655159013602983411343083704659235367923660109598184912037810787341855140858689957232481750475245497298888767643979911400776393539736536188883254386024196219920830331456433507329548045680958296681497455621737591227457971719856358343018051478950190057335125529284608851173714203847786400807798304508255671696340487268361578169152211030976404541159284875074109648473203214186564837641286163858631799955208308101896220043007250987898395804615102999174299176168867196810507854792028119786240192408960702448031688827933893261518464642535933063435073506342098754349831312227405378201801939264621617032272876199827719897643027033838092337482685408918099386952695014545664796055542002443891342544909483662296575645811222849995563835633377417540389351220003512787828874924423673908431145455628729125774607327710512431394206483762651477374162694170433636848237741747955772675103981040880071997927131376301295250260778803018591185956748237615494051656925797378445170270712432386608820609283398481414795922773339252774647321545463851348612266904547646344549503306350745085310150981219017068780120724319179779252492170592492845563603571900724958713901416427110891928271982326356752494513478875189346358203362609651166336768061214584935168677396311413885210927215737297696173348577128408169975379768745068517106170347430378227759772826723484626075361509214398913398053464533009912671196251942016332773240780780312610854160293133415048811282395916497619216423737459764355481867086377439534960216416217572298696505027365256140416557843956936082014112774842457642228253831899172090524587121098415912626781553992009382150840774867003998567943187432181879070654687990716751773525151790652094073047564773152195621551140977760688774796908961636219004450225442470082828660816062161399386448272570840202658161185476115249230730145639907468544016486369187529356093236639543811430351613555630511306152305998418294707508787078537015176619427574671332589715329675157316788334823915780088553495454315998093413210655803782183196921963244061461816682926451354202022170810039686493017881831162162300945619283839698149144850625743927976069786784323846068633577604275269695093655321968359715345819150580508744252720056159059274567782772347490827421453444639703485871285976763812146198202897549838872136412314577632370042015504364562164281693270315583263029363457500335864592170305454842832530268154839971913690283893999840776656919374123828713434892475429079437830936852460594818684536652315328406778603274186782378670553555810663506260329558407567290365383282737096541143215437910457231642689391413846794330821164648413744205642813265961164353496577033938988674077105222253364015004537114858036351622477429509556298765067486584877546969789602006513782052067136110818718519279589909339166940592083679819595665812992167016626485584055765292798607927865553649231197122664441522445439503538585140951365892740359802695052362970348124845635699446349091914694936971095352932639745091190912884459464468467595290617909081914189911382136614976687673656846119384732649313165744747074784489046869324012332928746013755974769212462937554243914293115137527958090918717779343916265132717900008492781154508523521455035250805092267391330603059103205098785183467756324429742458641337096332307574486116262915766557400119272523343553459633185941762814964433846455044878329193503072508037316260060622394734150970446495459679175111197851882800598326718905607013991737261389876236786766891364228931160290785799180718825906837687598995755544059220918716055338190806788643162017819627245623970448225669581839350671892880370968699551063655670856499278358763872020063438936237486724620418810653720146784836155083316106352832744228350315790659829470581226425514128771230225766760559856069938046352603322153695708583792380127142310272366581082627434153480282973640029631891310103856387976898723567604401288243903861193277797070677476485794999968624371564253744862246842013246585394604884548753882549498825761875387692524144347495376302341867873858651779913090619261684837595339461455878112545087434116315296388495598969211825240320454630190014566326647377692266991941675182330233575683160641704088033207560975768089750864816178412450829281423328594545282232946295170205624608388908546107832846172037366168265194719087442823656881182952329426196928126749434178136742717958940751061099208455931140575522251220299827017364122209730705166388027952881521927698780237918574150729998654875214446761203309512378290824948754419532164922888941786007966291933909302988080474413818747443282694293282105552584223905998812758936059288569688075587012704229431415603127805279680675963254821483362381039944713597052859111039712681959285926972200917926755039422370598725896315919313968231620227719494101111590922058806715888021813075214960425932368318673237766361809382021138148018588960784257123432886880753494231484788769646844414300073689817880416993781216511748170184797068381031090250082444670161322826321062216867186900171085021625901651121333539143837940056769389676348025047127661705499974665157216086465682284077326927247206627337296567955537182997132723244508283829670883940826762513502431228526281739193353422893721175327761434675778047104396095276354543055800735866385120839339745612528077540633307438429500105956213344447382777310862765317997547187096081440491707957954308415105477416672348700881847555590350813366048318486199278176436031045391631615260975528292787826275125319705867685455234483081470247682037940335110579735539596201328452979014744242284985758033442047243886641995548995505936460736874431997527024332101954040231129465464778956044351911356270193917847791059072262125111937615064491141641498933894150689429193439706486299980790172875828364692097217616809988453980717092465550610374335733347175432098720566842989432058787932042993103665003022697577647580187865063374133655858523182544598782145014491177997520330502764745276805252426702823215005273425158209860669503974878460955697787595188218526939836844782179990815188562032792443662530303365555303105809290041098790932316222581442113348947898786648516541612246779558276316696939161717701404856181130343708400368965927882229476638958666975062717399820736031826436845255684455244552528932554638310264835635594421027233293847056823447535024322608437488598841861216964275910787888987870826827936184798269246797853165011311615070006363292153710545413574188393040516943952849127964539863110877629758376026949409061879169961656228846263714186969047025289122691184294150284224559780904950206192559189539378450252140028363185562236382555598599036481387599387085666686448557211424555622674709139345998299205085977165800237578474826306311966345710136303113906579350141160203335440582872323848216689202298331417954867253170098042161501328231008386647805088389431175439270164301904631816905919603293132048569741381636213712155061237585203917556410810925239712730291044461060859117908015252525455334588251875323426471388103867380516013771839495388128295609336433879628921900410871481247597729930361122114872923575674940987224648651845572535958225230186046398537602550685390558722125480881788450708595813911324651922768233691823601295862584970334482441021294476683481421348268861672164517897644268627347398229074012025385963034902140941602834307495065499472201302631500429433877104088316527962767360616157919059150856446050918209783906928831972659095422911990431318709193278583434974338126271864396091037124461469257326456580667987805439568670032815160549815562149536101961647851186298567151343798382158932232495669195242668775774029231305365421645027976257469730739033558606364672930099039750930279295587142878457599940248616533386469791675049478361254442268021531407548352432455886967403793152060350475753689844837741850819217240921433332525109348032755104527908522630173774504762844697471516482330924659263826924240599558869132757906248617899623851915656717801470955197012274561194620660068870929244050677463676177615008564609046633906916799607427357594485679684031622129920708777018837609282168588865813086180981531168502066807415734363973807932756361710058104504114056288369462110971996077132923338727181483902082961355878799747398645442954242738319331745838701033644580421554732433154908259287684372675592146506774720299835037352294839392044649506141140201484414986259433742551820679301212233548254609792285283458479347879535640874226300085899579177922265997142067117790751610603452272317435394813215726289369161857628482709648567897357944567986941220109020527152336267054811547378680069977028867674255045261916808705646679930045281155601584632289736509710386917789071496840182147464380961689610886193471673818387118602539913215777275977606321255998809323928757144868057886498864118307744417977141924945181888021096961139632850738418246308435735841590171462465137454857577311136723268761248516560392028522346679589880054976046406870433866257992845162944566101450070302581583851669892728887167969346113668182168203856790943523031083668546663417898349997869665295151368795144794144541509644597815284813027517973283986078263910290432805772334442227998073868705449447799108964604732940605991902260851252715868874307006632669397342985346167744041183071904857500826249499422538368338769548030157749252889333924885141981103682003119961971676086813913878906007669121374815632977107920051972227528233218399014919072077435446769934432420597335378306739436417267397425767814574377405895362275877036067101009849962601926987965043028056865189563002063119221860587596688994517286838733732453077725771805450338769569574878326121353543129878183326019869385192523880279359757817565015974753070961341804247554737924343002756166593744194403488251098911931905802173471414485646357686133793996746447128505729796783482319946092748228514973036292028057803623682852830657884242327208574516828753710855935311314275093105519462359289972393293445855644617261988528108457411654593792745358923608008368735028019237691475736963743098562934991769980837365520248045168078804768777607017920872491654830528762439362364993546824690354315794125374622022781296398204856019614178696275070429918811325190943524505484285313149376655076327996881576178272465289700663836671943533986598003812756656800508351158785838305566610927954242928381454726266629432265976114198152093736811532367401123461829617901155622042430560740485064570262252714952129982098222115929837267251200770571710270480690805071730543777928581943525118844967116546903707493852557472800382682246251530983465936630953935570051638017484946774682606036545126824452431908623763287602356374204600044969726937145609587054772088139252960371898532770607394753992158612559392727774195269318237728892584706288042396014354729183922561502439578999159231559854187692797436487098430411295234799750177610862416009290938591336653133955498708912292897729250745003263580346091014611671233187413004089888722215274623995105323694770849451597131818175278907649496971024110793768624956254794774347282119296404359429156750137210261614273764253547958864012625201587627808151030085455513349697322350837333048618629352217637536925093527950945946499262398437067485568511799602731427464882452059134562083176415481676882360153466592650398840013775159836248772054673959276604551495708472614829337446096496883834491997933997672735211279443438873665959561660339850200689966588828064906005671467671690973092833336986129511328885765526566666551520804799560482732401590704726246940735203332589000043753586078321843198444699783059173381905955453660135957253396734578876234753348038734724318531480640748437104360646934495357578101818960804190273840112171126264113854256233774644707883252103962973451088476282523551046847966063961443368998893930072983341700023078639953859462997468428857873940615013200053098147553031298608025506343621780120911155336902128562837014643171002116087096030116146530397821332221781762311460693703218909682448564004450112292140123110734551267064599734863801457163844148332463142953688805310991016203410418817478804784250105570645373385493340684704378839539729547154062054767371318059418120470970142293223275909748956157514717900333430923559420711409956446721067086860624301697178978366997423249920209070249048439974104603216044879078036777491045958731587825928552489933543945561211421961324556891260701613578974804561038934295436085528470526150666089680518184766135111965163780933818115163896436034677398735443240029752153073111718519847557678049117470169163419999407716222365657843076968091188941650180953108515591592637985430122172522690462630023405831251655473966847380696936884692614108426823937300569358698604610983340906106660834105837929179219694526107971803093505560312494854829886492135578745850109027762403595807460602874485238355702786555024917473658054263273391729921866958997565035140975676943941457739346376405284897471928257636661120845618684370909716012149069547136201796400428499065584435554284460012563159415352211650291777432295148358922033397825164667501555357518061918383235457398685518739312614337016822244770754475816565425421749224225091047497385152158948184944415154289520798528455284947480164483595408096877487411127011954173851975861158169327555775828954805901906649846509017001774193858832419200552760377620022837888385067062928778131594847146967235646761223644982683305815341833778300034821879683277653082236171487607520348788574278086493378171497437267265611795576679060100583731461553974983708513530253324071069658622580461742519633436288925872262130945597055866404189833129893224084977804361854986147111326122341703591307141224755921574665409135877591183575021968070907755584454705334433770995979027286150078431966865259117942110480620203828952890717275221799146297682364712030933069503789424768484590981097696362713473695516527076225167169855392028290567445002476970893394980693098751490581231230994316624192200441184847915794208043992271366219756045890269126591865323002848119805874210490721001314781406929874541136948292891518255599178052117950435475105867783788128211590776745610938670899161605625446920308502028403923376701014142760937657395821106787422204472017604710916513805088862269464672241585475445377929167081104145143986879581182686366326258136166292821485725151536542142010985180148588261683026876495094599155043294393713259273146110003872034596218681785427194291026221163167427635527410992752485276149590650275368683877935106522382768064360320958543978247581139281586856275123266682089479963601687605447192867922125031428641205696059977522235568974334876151452391134911044603948931710326014427068939183307456899276581640649301462545835891169842248982383429587736729012808745786776170285110052997092804960678109484779184984763680089390364418796194546623675351527047744838194905289620820184010911957158908869940204551225123736144791994548279722883668544654354456834599827070877495859867184865807640376629837521242430403493333615328720049510530586498976999994858042635756510141839148753445878091941422706261987987531679871819247903510496460323975042062602062727751564990676293135989665165367886572256952343205380510153848887924166346336920450133604643655952378326607078928974773716446454004472058380505383847830303233667993869593117127482530041578698786519127153698814544370517215711042165577473606360040815471329980741118958942693946709821403972507668641529911832856837648132717311407285619168830299273145712604113398971254153814618839689782739497503287768834628218435464226123624054101148308463247688992078992308797657943524955231444893316467311448497706251615133236506778802054804683680362532479682298809913387472170629276266582032666270147862792153707875181398448392534648830446310290918790262346055689724874986128910503497974370398973265135419921877068184766034527164872002053901519598404636276502156517472291842546849076000062078004186599724628025364507124572557019813321563640769240147330787500449992259954555401107032318203636406281705464540743158666409928622878880769953796925793157007385436697923600278377439478637574697617093676784377165265187628555120715346827180115442049833483355924793213234053286393303533776065549832166659322105504928522956077414500934212629511563505061902004508390620048802636979414740209804831567330207382916381132452313455326110069772864794246346165126701188180031025002386839447346422838590007749404970538987316357377267178662350578225689570982162194187392373176293225289133254080025322417208280597996282951657203554401113871435421723184767615409577467473483091671610644579063485048803327686392251883181799582414465716433284204502993998618278946786440448574715415376499854461420076331313383700227193801311519929047863273010213083645540255007550597381081469783804788782927275981827473650680301224809103129454559406244220297512706264808887486034615633699883004384293136004979598276834800464950649940757037732174553468227521821906315576832189358363588779926257302566434420488553223725732899069516594722806777457478109061497887911427767553989641204223843860305183985464264761086766133682977640898100997194092415255022870274645345064817573293267167392445350745705774796571824834017278632336626911271649521410529805839241963181052359889753970648952680697554483430078723050246436883133649515737875109053876404018650990453588330838857362894855938943717047217551503732569805524433367628178638960806148177473072985187600454447017007677587126989850370939052892256964198690152687796817649012038994400561009467854965423071578407200795395321419447915977656876417658442126111769154512172055964927034282261744348719467830058098094893020609242816785069054037769075099695070615994312225284258957270976971518547081565634249993677497850849633056249835629942029444410261821426439747969240857054111277762938106763140168492767197977559318881057085997935976498323092545005255526372517363859313454931434556928559399358030191087945053253824497082660529078042373436215310172036491126603563539254531885461593160932745807905461036321613837964202118992335606179979266843906359027209062311698864597372911901713252621596544689205291507389467265932840255214131098973036770314284554664035894589776546785569297675308369675232415353134680083682673046550221599461111721661621506876000384436990975511083060920178652139595066331162248174628902732523286047213597774153197682729491078726718400315491895266269729716142828156817525337304368208584642789798701653692762517609327329639767957812070494499423216410457649371232502345148422601411793799854693510474913598769532849444632186825890822001396813961858771166873513534980374490734814735894357259447709574865926332176249140163677066920322103172104845738402706299684854220323765455118621670983906209825872807997591342681778208670653705466239235267017646660984749478999060335085457584430293135033054332162168374384701651197418136920839684777513085368932222366210521778316876379762522801718744733187975295606342202581056629891220512405670004355892678608475567684707948809328864711473899143209133361794436082686317825791604681245047788186803647267673370524168344328515748997482857350887196983482065378380950769777511152035210397377445360950659421160243581666343220368384709976671411171640258075187684018142650325035159842328468683068754710363854099586199707696075678283651785977322004700274288303944843806534288603353713929235155936446754760963187924978828481230563167754264492632223133668235051236216358882427484105454157641974262570727639084715856019806445297369004675054084067018282187984881986969468662890633637400115769997459838855389336875757357734678888336534473349944645011009766212704520710419705839730121478781847377639578287344554931531248328451934091113422725715562436577713130800178850909381049689278464695291079732105023422743859103771746855949680876910071193015578060873926172617881136095069600885342390231564363522777942439581963250871615407362745272487447488593372682933339362811188243171196975845647008959893021374280319844037968577706094961635059367095019214466430508304503107414319936378693251958397904716217753232622969558593583568039701230221128606046455374603362877934965007291276002961553698760102631560674316336934140606958704020043488716002274335527561432212500440524309843673276089834709373005890864720832978872262815372567809277764314771798595425352366796139354771752716752039798352780540558465614448867359405596382800300424546465797348942053818887773130118902500824450342320144958578656038274167047825850382127839681486033211562547926530842853773450096739334707116269930128492358989987940629871415449690854223857308681263658002636338043233361156206616487744801536573521630138538485945963925546070952356380645599405104662354045512190623711909363151088881844607466389470963676191835769278071039301063510475039246642696834205399741897751297589650756102125300399331415360179136270900758356905481507696532663570478184435407190387816690947257220901697636858545422281757807175042743504379280726811535757328337667752690515490996008827691154115178306609044941301964527006819754594148266544731554765927655541837863394407512751330203583684557967852471370074952785541156577500670304545784842817163201592718664342196407962081972677021598701363515392498269477640774555156821178379642936196406176066456719702951032774675833198395081699050473416922221863505067557732647125106732250550571216354403362113271993608202385904253988223204078713092950676918582257019437649940677053529466205797549912822925835182112412498397748176333348231058250466568711804461860183587818803227258156581119591657411729325094772538387126606102223200529079167365404404811946431324783799470572372386384074801897585053832578350906144860970131446735075800108640423337548530445803852600860438663850102931688681796553519117065132700107108076277253329646612728409474160758914061080030399660700224040513256528634935410171772312397645968180258007618813225664356300705943592472386009374078443912292299881015201619796237528493762284074794203559313561031509393078131958984521628502362719692114262649604833022267045186291788577861917426611286885511185123026166304513594812388838161656555854420783329568465637591739374825767309291561174232465343243640000416546304512961492823744666584614849233463552992407062863006693164791838242089360024285077947000906233973233961303653903635311977223459960056811487952681577396221314134983965829334264398430394395300089337130808699770162679856190558035570071313841229330088694912548328150998325508660791956387713346815716650024153053847878626615864037756513197189637072027260118965812998608915200798846534995418265856772411479718833336353177907619536243390127057730933997648258542168204828781195167258855537892292650723834146884104027857119174267844981288739472771548887652996997297964534628179241485208727229806943531201933716743630790549624723185723661022877069005287829356763648689799896797777676480121947301176562551735879598473399366039171671740043398129588894679527486463242122860373179070837428515082382211609698540785724817468286442778400267034053874887667654692864135700831781247266447387639482011625690978498410850991028674817459761843678352406147529021101047651503455986125599348299702991251329087154897697835589830245591071146921662090002305495783505477342649294030059238820173695411528659024269824516501347339639168391802196210284636174210389714718971892938579950118045811824622933706593588851081612707908634670781339602453762017197198806234270700325736957879282695051481612530181561121389632857501320733007613796103766621590703006055241438482047942395535595623808381372584339016898114045820150641734884045466141096395538035062245445757700719559067658965223318985738012440520828406613648394188540272716012328297292176323867170537386756798721980694122711314590407284730080385792273992047661792321427706081422193296900595633064316647650622280976491238489028199331847400729147896069980480715116497801442448104456558124135679196696117683638869532711217705370976262109737774870834608498278403024407028776341068032975231808913321078119206718714455017252719929473599659848667272888645118858073241144093700776769673121493896673769753441405019225609049273299229665475891969945869805464682095585484974950769326752662184752020746340439790805013373975896629843902329700010078679716166248251304212999107016623091354603937518686526830094683645368980358753910661921727890433012747411961835071662491818745148646001733645502761597332387711284072088885170486867163707654460461446092603065288087331911844643506141846426478447582876683307392780017835572259233911902025145009745290441474551639456174567596104851732778324436781752169671942657630701543448325470270197723165408674410893377666984208045135915454350574066100604287393887894341253863864021164770826307184816554734780812717906907117785309465659907590537423462391571777133625618612276501996644541967605872297343362783549271405075263258793022966184430853469164801397993093953340198880258703605990265425490463782375204845993766122815353904141028616478410065988950585618894879795429369311305254079142688428135672852484550213675473496826349462773799601336090855308610122085829830326538683948470337903304112119705335264890575275880634662948190660847323631053888344786685530836410434104902574666522957030807352827341666404231930505260782039162995105910954511241656458134910502071587195911937829447518320092116648171651678267549600852025648870882863274148443266788905896662966846068030048171917942097122050699239088773948837305647267413956695394505055723840235610125903654687364985314609001437160847590387872793718332960555974552652745776127018559476853737817658371093380979391924869721903183540379669422333699169099072348406078571345603670221772510234584920201613685093823084426410014961146796168167801405691006674815852309588222116482199590355601802316670280070482132606718353622249921727157020252165572347915605174164536102039614963028174260226560985066788828470253514917966540834233272787417457117358779435435146122246334601054130280353100332917269173433337988972001601407410572643857831717611227877805879390567014906884467782331595820948155031462441578293903277000781813110485098740451347065987749061551120446921564223298930011792264059861383780050598345767871413071152886080840819106751183601099989027881469304875309224480702665729942075740784470966316684780647235637150205646245804953622636829067574746489204096369444649820273036979974010332738241215707170616165919693991516523947353867720656338419816098792128994862327325746907063996923141966402914595975026586099620443820130678812861855515843358851960328966754358865140293427429528861470276090083209429358600699064226783069288158994112809263592745248887711620743080130355685094585982592963080178719549211828783285428989058132485161712986003893069100102305160726146668165467419936165227806397626887871377053825531393936183585926888587766398994831205988559728982273015977655564465696227320411130698689468575799360638548146642547851211924631877822675831199268066921064880317384013866775423284400486971422561404482428789395673656238746682214284159124719851909349745875382391502090951877005685075967872295937464138548107166148329105417304274019923536614153252638674150218113778679218171271042811163850158435083356139383552989507326804106509827794372691099941307198289893562689004714843266683471144007632962993709085859542460467641656548110383280964022976220893233106443847570664815166314900586760436456627261889948595616849831145678733343286176861369255935868914880441939867830384445866310989084486701123182870697262189339123439468523593762667858966613633752605706559690792788395712962516580725748277650430961391622418708068235050708184765180982630147250121432060574308642492274309617292488682598787202816409891571907441296229399086868031134264066051696244264894918306593712494333684599782971485717556737245495318277475597417803108463440444482274362153361825159628185249296140044042734410861216909691495552726144696208984338747540108024562409954397396474125984820642683399937280269261686099419042329564726762604714379370679777678924512920840711804595791613025421838341332430457738631497017701509207051870453321721985345538601146679452282276792878089639461249329869134749250302476526728213740907892607655634461770890774336745594551645573031922437042618098212249186323775329033290209869177789674340462442573086890316546059660428002991505181947603570190531964849374604854415565062242806923651672605084400451384039678256998904163868189656108750725184179561595742280855856386774468405533659001282412292968711318192613834614491659844718904824077817573048495789383855470789774213174224295174120324240210272504415544925267055017701182922943996861410107166867087020672750847084128431435616425434858771460708333114067426163950244151278278862005033804976951446905190950715548700823075584201348823319454346349055914662613647895109708288787321162154606146122479551869618007861548094782374980091914906368985943064885811217580486149739519099906878349548117888884438617720692783718547984963707522374098224515696446522330798305946465403582923898697645909660480942789320209349489438838775640868863890378405898388355654233262715048600603096706244708348361109884940615291279423965601599822339581573766693017065832088281603034274547712158998381541605276227626448870013721626402939596443318332793100992817313925246528839845020540787983180397792825976868535160222272334904701063067538819411743999450076092145284723134569153810836739394787170227333159781315693733796305733674470260850892390036335090493783507773480834192757781670132835998561827729210983205569781226998937574188362102260446035077099658987307788868129966720427753563206098462894461534407499536959063156134175209289413061867020104848532092977633570589119303716087347537565647413989278009823949189307116952468760024980294814787507313403572503459225038178401123989996365495800858640878069044810876733023173673302739880811391160363852612522836227304721897158244726836827702804031757794499605782543596757522348542074015416518339353438056330468282516229737344850072394070281004202707296330619036216099662186824083423370714088406577373956313118067129942635093780923827535292326583605355235208535239082451529925231365188110963852245690024911670704561023091475916660040324059289587120515257633080212001264892435152889650751275476754787807756756415342395489819647807377196393243542865360449385924100342651648535211497760564641151888872922606128016698643812673341537310898856253552991284158066127484213216002428422657413101147094275917083187993418398095211756812509266573396049236176454074662419767577221360512916144317461357770307570654114130437335921291471397950296156074324690758547773000877221375056574857549302841299374555824864245895673315101495789417947503964856088704999522969788913362227913768759572355309098561320985778569172143683306227948399267988136647596741505132766881610445054061676893719042218982151106220064698400877001996918194218585496687667885886647987256843653919037157646529808734718972392021700136221280259009864733188121146261993576725605603360778669147628034824460595927220467205030024876890728959687720918063406672577069325044021242587773191348136246096314575867329131807698230514652794216961679113338921664352543364856298961121187101691193884284710507235889848879971576309242035379971706830547035046581620792395571772088476629944251620064014225964578015067676087095065278927341339249623881352578934797954574954000330495910492411864111063829844751076579775461742004297342968166755601568752092131109961625818300404316890681715046052477297119413838126009523955400350815515883220392151155440048161897074594743434192400714223788033304601441717181264935579692158374722556958235082432651762780389950410477525155312322067263076218539743124505746943037663643999952637844125018609061775831312029863405576992965114202732926086530844632512145397229482385200960242255293365944836238741152953724942385391496718219390730387341138515552084687268624909429711497038211535929337236080231927926310601323009610398057495706056456051486283446658834194594435054131951390578479825038148212155878979863311798110085364782140838077709639845690787614971505695049890474824862939673616413393792496683162614642666607432807059281882654787578611479703954879210860781453794784564892110650186984899392111342277208204781168740866415929760514497924992057840656915170181879219212628608054643830528228210543870005656328607005294423934330864059666640354996060631397704794229758647745840868067056016609867387010368308490069834359288522780268940851018868288610687561835040933249415882419228086523265612941942385356901469610010070326392247409041898561757225595107995081253673040453054303827233155963377702138502604890269594286969232167326484659657109211816834603674422336910341419144343729075490413773333618132914708182005188991871671561032520698335927207103183716927606539312421539502623777661720377636819166805964665350228914925249155802751242422134889961423426751357294048100723116086385873821795366170663653837695334685558461318504652139374822649850542492946229908821078808247627701525208044445720092042126178870513149833940875014741446316364445592582081732862049882491435872967590089945063515984765185138126136085151986632312587718046921112805089124950658180623153847737938936246637915900396376484722206869548490280637462792864301458930377784873747881237475479621076844246562178488464432447535218527645936785600362549984361805326393448899569731292386404005414911046441178497314393891802045996892868976173663498281034663149120264932307166041406869420440315695166758887564517026613738237330130316484020386615093272986882255654224953982513532636618982689960457088839912596343185663595337930400090406107303016937425657080863227284714685175477196430399168233777691349688156621435775402433723726992753921632536570945150920007607287778381234828333847413628473772463411986182035566509604753089356213773305071836848370457421711517987322800082526052673912249357913129877986331727178808671312718296212254769710863909121582948447524781151848386350180151697965887313709802064373843835041422826640913505634876436760092926332751533649802900381175857812420622529191025434590767194334417078839727445933615113472131786309902051279900140171174005741487908295695566703455009566198565237756352401372491250706980142486216015791427428978609341864892329910044282143094423750589784991906382755374505122578205040224475896234309911679356488118825700868508405024833749946421534931691404121363715237484160812530666999669879489650743348341506281926695560905796749387446229344068294125567717613605617785776162947846608340032810846926428568569397274869473646566107188569775951271984631868915253129918031384185046958027157648668047328057226007531375843448988007912170240450488020384644760836763025176426738677473109136781740787594159414764677195795297147450536706623837738965771422748202562752225903485285872360039578338192682898963044759415358016046718702085613349660724189272750631260694414376036611562567962482542103111024168968173092584120817489503720456332097490576918394185694549218052861498016464050582752526276845891567249482189973631170378124317946514113847581411250462704559546587437818592704132837758402937441394504219850609055790034840363794615417878210509878649363890983970281886783033842871217524638487275452024634874075945721639306151111567952843372642036989243689267444955473587005864427175269119015078025154516384174369856826777171901183688725699444548022456030769634128450165919126093923691193832207751588389980984634138787745195124983359965256822816250469576549506220890858476075963709053009383525113129210725201559942557464884878685342936998894088398446655935946796105852929212167841282963012521240955007383873729538723356504134721292523713004604093746907227297223797900679164760605180191954402304442797705971547877250825653241600803569575077699686964434205180236198569527515156551528068467532780754786555359415387353432907958864625408667694904098306773412601113569768526757339896150512520397512606975649142693845688217118682485166433966471175435942935686949276820480327057434700175211010731320560750459840022300996347312739456213161979080753931067463858760540325386066408925541342223888451489820421777533309570766884148442273292192830126971078869106326390005675444380797029922289682973969259516333967746048622805582023276492214382468802323798874992289950776756163660729410109119515921013257245783594010699444293485353344051967695713811563401611498169016305098348438757706451603989408663271560959199283110105064666282144595833529452592964352911266021100168810782140432635363317309816068756569158725640111544896582763116073870959500267231192668950737804222434585619769088915651538656028113383605096914662421220578351853314309161698347765194608980735879829937927693919687924119523044104663093478918121443056066978406206493615323762385410488898525411756160786721575394817653602427810610961823862931070760597654465859241362128615291239710978146099362313737593268647503374770706774853958428651247690469967752880618996376133037243675222403460618226799304946767521496083257410445804802252420334273981666449213448274881684060618937536834831837486186715521667017167612782112569494049324863732081565461816801465405850051409221371580526830083310748413430433498189123844085605311648861148601571422807058571844906020756871164213508408505529777686556045555110509183609158020843322004201627699841908441061938380981901714549440172077537627255163719504199451479982547767140949321869980111273705707792281669761692147186474766246255948354734649960401285228280369438946574573291576549621411965574410288051692412950215386567987886851003339403735482996516990083223862317124093872116166024932251048739806953270137262673360679549861191584252394371361018421431375431834635733374771346643067893403807307562248929278436345862925718628377627301138859662744049036850806551298928584351125444859223364458101748833182294242406786345149701849626682385096101547356208719489361011730842447699926532822499868984781066273702099546497974163088717289966639847437011045183166263809167068796486213217455218251226617643289537877478791609727570624551589112875014133169720079931471692295317201161260900092060986289808356901457816691723037224750770094378175329988045879606850709059863294811165332228338393248722444415916823876572957759976280916691189369418154281906180755427066886235150789818732786834036813658718487895697657636829549407248635562207579907327805658045978862776508558568362186072144652197978205328392926779991917556426510560045681691798347845126800327532627921758156304175456684125724705423510583044230776657649130191026646093457632249125686559492229718667551734941396976475558780072014099463277396120354085887140865946791140673237201390505079924914580686081449448976722782056850802943065029421331354752793319590767898157877724559492601920232245124754806855788439448071222348160547659589588626159014179608428352731594294382853343885884218533011213074433092031276262681827930174309797585486230339620273242252759273469165393613002587438159284752636599292525630936322596877366003236966117594774819816991402727156329018279861452666642214379720504441483554696228616994978825177413379062460555681669058286150328431425382530856801133718867310394558350374297228909706358850253674553640915473705554216445770893952105053180496199550431886245087362955029954494119548971831503526111989964348422094810843751901195398034308073035639789419262735644297164297037451289400672223274427100819214536879503407746065252529380342956198643127420270974254893667781480324449058425663570908769973607264460640136903818318379124938178407183849958447852865162811939219155991525022132412820632083122566686549627394862713870974956351816579702941728868424420733982303317911363179634307750201442744773398905677058645829317225452338112042824810119556806274817599549841961614691247264455736715467028945551122134857543107090311896879862614950850188629996022802784479544160196616632409538558866780945519678494997860095305595629720388508813508644709642313235251025089329645973154557481010420045973043329465763564679562679009386772646303712873433801361420779632400821492585123950213563262086557636048514334832063251925519667671759886777072099404211790944647629111878746611947930778274277460496733453035823037822985922188029814081491272883958144823370421487391071229134405885358094793075070238775196670209594425048774719159135972911884439715685885284160095429356954507984565877376293316267656092731777167937152330124490950520615621129528985887787675892972361395821499891683174358801040279220719420365766251193849049612998146202727138611765230656581194698790060691434664631853032007699463932539723379986387628803711347010859391120977930481641639312488972134252295670749591985988187226886518194453970285458776632341950831268485183094965993988150738852504804158808434430819767580148107592026683452503801778571153245988711989365797622980757448357881997164606308355882014094402300643063866741172528287903179472003155399545802773138027440732901912487963583332851840828808529266929839332891765975817523080826970427344345066327355672456114929114354334438828879772675028427428388578714643032722571180577566231040401797044357212768316481142445909824785319742450888090761619164956718099450632238399919814525542382304598360802682796745240032657638895360387267619877947949659155919162089632456170209164221466482797117617220170472308465728489225596633786679881756064545804090301270102360358289251127964525639311824269629257425646407003539120671382826556997680545734091652998797758248452782270492268427525109237279886861737144015858925601001691623840095263132651149684817353949204098723715075690785020946749678061144389965775473765638876191719277456221298786759901724476020368877914205344074303000313182838511308395605548066103995487212467023888835732765037536902257335681980132409105213562749007447388584538964765142244074726258190450500877253905175322574168935702026301683803241538193644657963194464531926474363721916567432859446510759764623886440481202370208710989204503252630972381948904519958788574339155619680434895581097443489821651668505453672977493002171998764129485414051722889278384692269446804837151642912590295194926068502437413157633981823454958097844329265590640236179233287799390584031972568654288241531640228698684249666341409759759240159576656503424500721125193498097158174484829894985118432328968880452936207717173927609880228480110365630007285669715255090198633886777590108460920517520163702681035688388488196834740704843672987925945849860305330053568725380956512637100292058320641375035290686096938672718491837136513038591680815089394120565917886445054076908944279013260068876059394345770097184836896918240334676994485484530115147037740200354226812681638446142637374333029097191200973710012800965155867430750414508092256243805421585036253797089820088382329925554024021349918873152343983590100974591392768085848475691453346661140253033269204594053687344518754619971580337296332837937621344081912487893999943322896942766334481066915945619860695133871895593069237469956308828432065105232730239552737372221172636902011050471545749942164426620212998257275981441951591188936689362233422555790795775571762143200594355129424411020844838975366932254689323290233795920177193441514143068245465636235107863036289305192055559150070424138104735001971559370693371067748108827691083801393440493640755638686335579715865611223274761782939148403453583330750636848612195379742450836394077183452067321656647662417320192633416682804346913706817148339440296312573945714007276544553029384013156347531309103955682198092132500353225906570521368887015719273911030824160162200177354190384783802328037156442006958684859397812234764921608275767304001053810432857226666012217270277681025255658193671427224347342991607977545434144755169731554438183936193883046834554975781696345232077187492525103504463479168614107630906176890104247629793224326512537917184736989714222891699497510627753896698489379689531720164206771108101416195639587493995789223579041884651820750319515747852734837880275976966034641889317780253193681720297161674925991619985937075794792865102351653333170749922462360301872589820851974265864839039668761940064022469561198696688206122993896396353454525944687334990250621363247586846745141613226810383580633829450157864703024934501871991330513707471094145286160272436691339867557099430083333067976512882258774439554473160500682035129812047768121429889387464705921525290253500495136730205055625876681360134993467779924419312493587267226886224356751021095951509628757721126720399404228187742701246556332802863307945383639245430077040649380867512373679371060644452386859096967325849049235389931509584291243207577830035059706800578781695455712707640272598645121132117145917910026053890593321281945462136940650898337605198659499832268455344377571703121634958169859973908333580980404273708358848581795951526690659726415957644562393065294111599930745528529573135576945256079411182883396427053685288532651400135469969957463110304905155891765053984197071967486129573382768013403814993007629463078329336909497659092130303980911673401830940295899015726209686532344254837070232121469958231202992054571013217926268425677480233903911078186983275849309719944444155917968033273850620936027857977942901297429260932460375299519870710994080257464228565296687413513180801937866629772410958592589443073767471175188570056645381454175357551601449579371398503273834232713886312906968976909838961937907515574088960759977378000264363333523435693240192504571775621545322799765346517942677787945472355247847078398327095314824548583582151536889166749218676993112573108595691988094772149127983198836124214635616057349724164007541832254447233572604722625591510655443180502111062647069088680010387936007845159096424991231626205487511481376648853800232764323776617223315793141106566178989122450793834910349311591887233734288629447121963244851688549916613958353279533645410315269836122949734834316663634345426042275503075089281630363437336685265734059468623495175396500178731758001556435891494821711250161136569030523709415986803521446558953662035561326489422774853241787795094479881122147901782816198327670215221476906589701737965195108473856555083669104760440035422579454071135145571303758025618968710361363862032999907753200604136860016729181528200140820794837826716335234290253505344315789217178555037664071815117975148153387775069799329670368027391858400172516370218628488338470406665022586430632901662217799514454622429609466675403653075289482030228733793515359352121776463161759494954801402181629802240215602530659824342346385721166732327829030866823840128181024559498227871076035410009607414498609675039337028963292293969805630246516984330426684229429815319728251228505734206269181197133754365072268940510761649595405204012413521085266033054081509867815160179984323710389203620192855757256271360163357768380508962789674785692890834597014052707824438431246159200404284621484964301141985345545197813786612515701257643116129544423965754511515561596657293818856833336817531568528467475361911633345352905913416230543399421344546691463363216510471689986904246017488865503839465229520134546369525005953433129808558871708212010967614823814386211353490842565015533110111893608447276831050067549059616282588277455527221962017170171676978490068123704567791043141242975553645151087152199224592633565407745442697681773073725727200164527203986726051081037906271338947349880476782487569970985065775701323102005175621324993711124920519952231993102238844820302174017025620572767295931444872704826664749036278973485914471100841722831434380856397015707326725661813692929044120104649706524293130321716170736723191609345958081413234684025067332443617827110146927007175623774959562773089770998921110614011562836118030293144625871262021248401674018336567075770924921957084126340131320177147149173496063794840518245852293573219580259086324828845642200711954300611221587919832283870440175488736239393016189533450492548186148026493832151638354427264067297098971804470542124491504894062561514817964418527959532819039337015290528429691698783448363042750219043789765344303870627114872806926445621443857489637342408792925487222033545956295459105870541832516220779184649759271175696374893557743604152034808883253853034380916086126972812478816564017094816533850347197914069425777498955363838753052463125660451407685123827045307374361739455644047777491586898233172522972828479751064908422997802372710394280426611668304905285651536184864688815329473348706971605496767996566069934803775026892879029390445524938633640081049216528235999046558321154187451313452838250990835128143750344297221503901068410095476553701019306949464653461744973107757085323642890172315355808238204973836180467387270920943417611786515867734939687169004781186370136129832097198999535567118613345968864626830385830176191574932994842632837970252905268254533178364287523077799157119250235622060030106129134987511919997102933498752069456569161618275916460684979002101550231002855762397390228387354886464735139974204108581206252528169367370942861395469124326612301931122824761502153552423669139209776571725499778703488356517200583629502543958709122910373243118755605837836273936036012483527878046430380861062149835652741234260522678504196331503261722122541631979631164303747712520584059236432575427328275867531282641042717980069401754023937328188435226057153350941589249667847726333317849172917228041806059101676425075103475482137673591007423193364270496022362714026233564809438044858656564140212467752869410846190465791354266426841477242346881324612305622166605906625334434614606545263803979547358129079452531463186918713042258019583233597279717545258042187361934162312754022976188844935299271037595196368431887105453421790894078372287530851760581243263531075501587066945550141623459318203617802858399395736498248391010595361691870321997879401608534304720691990599489945793515228173009956330501966434308220186344095522767832113554133818259733428470302836901390203011070137354027794922702115830614423701531779435535300633018174997739552609084885734969878430775379857800281957640372541156990829219687004657918089177034100976472621299861177561781987522758362811716253737318827180253964934549255398665424679472155129558464689157723464177017215558886627191650062125380807813411231324132530415083804887178268715882553128725303015089759863005805484805894215533139346308915084047619519340774149736317000894917875169857926457303386939762938884625999405562754020530984005401799747822393705566082697496095761587927188290788704492813061474066550658595375278767898894434065578625915394365962419767959778322828171948901253142616830378443275089484846916409498971721495154423084667451035073276939871835259204432366151748633834752115812229445928723629139441015336732457629757803943114935188515037061861817964198991975446788378605340546155443877531440407798028448943141580056799880743770578680522873428803989662021876582079219991587797823067229174022892888941031059955736427974677969778914893088021169609967040554112172049734083861121982326434875477869437591131182104386172002211464814297169308515086332095332501391927965951279859642303766913870608964157468317391978833770775121343926893308073254242280239560524192301826236845233184861633790110859996059034654099435935791714889859232976157545440429003342683901838376186255823267256218148509607270599751532600270072919619554318072817042524410086710064172116268489579239961250493199779302478976556872733941015489105529197607368158078433211149940595874948144947672886054241896035697414279330046557972701777836136569653497349391057016819969970631846266146001865951351539635526697201364717799469581159483092394028969443432667596065501426277154887807944727705530370485953168687920949905633436368260034914462357205092425145262599287067919566807920293766832109640055371516778376589236159520037343556764900149275935109751057842696866207175000713139959614736393961117292647682078279059321122007139485014627646220501972748535986423045543914179689266143074907166510598043628517953769152478110428108266612669336197968320091656648833557048314555801214842461575762093849668376213931018961861449274241796475561658208225086032312874575854081218127538477124548801203415619893687708336489363747310104051170203320053200797263651962039214799651123708257759372404028968706940609863589304235815298730260876947318263743533691781056083032427214595510256742388537939462932717205284036832558787060213584313888466627463363677541783783990174363605422172185704226585356561355474466907142897898713336857115338271011098149024244338866668193883328956400732525966207500462330237461231233222152540157560171014119396203358449376157237751907988811938391003324305547614250687327540608703438153031052461925659640589067175581473757323112664757685740445018854598108279634385605806747244925107492630013147237101274013029159050924285353910156917034545746227892596965099908837587430708777279563080728738281408252089056163665143385267764339321646161439999728108722034120481887166726606034232987555470773000679168531167787824832700338012515917192507693131687552970823731361360176513345766469235055037323045348476433014197051024901817817837671355882169725150193918045235356663279723502960025879247164142028989295217551993222379575549493478751070512273574668031909862789385030591584710559314949348726622403688950285116523662317331764072876426267285328354158946457851340915113961442470711807740690938465428398450937204912384160298186557208588389396938956838940142343808899592793489506945667206769961667309883739054011670556066392444702756712201169644249280461556087014692126643798410976825915400865075430550757467155482185543798554648484705730713602723608079650029534403506996963633356595450989852410486271598832858644829919994337168432822924176526294420068836171597652606092260395021825023376142327592712355614456419758238801321711316447737343061925207942965278566569257554534549527865338000903860000131193252155872207316389576437191129281398997098068861121927535214755911094031027129349062352469508224138043165467408653033392875636311728539471154735256278977504211388399895002080778754864316161644067276817392355203497489036511020943690336233633953394504260865743082587212676648069661909842472866317563088462598102206124359735188766354952927898835067996845194763931919602292116136309353353922866953366555098403062080885173846326511135391009198446221987397754968850990695026577870321254895799912961870882002852817866977598112337526836679771086908505916225415903446875247975072340473751869100621061894034096255758240051292156997035256928307299670665776623947899861063663522996720232421142757253455023727068132472160075770109768230930972225977052923994699145940625487142878321388114558840172363755770355677459124920564342968760398099727415425455969129845406337103190552419968915895357944400769122890184143778461683594148176136972827881225978858939482201928272177396291582931439051654723820565542007342796581263375728210920426051025438788050073894198695629954228355614696819805170776640089525279963161412622516453008054591388343741367798744364706387515017041228510778468337934537689096543353383121349155222655556990626587757498735063981370070044511733974898308573778797159165077583039344256813222678938300895652399477639349851993407808882515405980909343875280699587106738932233632993782970675472685594456442600560398719481099504978309894489844032761326773861930259638296862620879635024894038703492713768008700190483048733677198458318297371147523857119125510927087790483185726794399958011862438214732860184830177891479739387763858446038580569677087259823398829863067488553151355914913786213520550922677801215515995296954575753622481672669397760083507481421805938274969606084796613415422398765505096291952313825294587943896188867175947949822481723060914327576451163660231635593237866625162605272415677737819601390858823808425750626004036650994952550746593567165648302852796615438249227492717860616964409080428137802112726445675399500336697308873586601248012765250210362518975359018352214585959275876523711379154969670381778324526277583587068066577603974373490961605290421502361430730032086566580403476741296725368893023418324120339454505453759124702450387022127391969969444887742581451224341575050865584560048405978479511314145246327365384882718850434615117729406018757523896686405108514205770961948388956159022712050238923200992569194082562770638601582157366574667326908301877624231010894359299539920066509891743478528305525945838509028148596276912084729384216405513004536782835650247312444475857325930182959352897473233589175411243695577792022276865588042867764400428330416864438555466794122003187503082322884218271296250576367920360972742608642047326521475985777704942026014091108164597882348983870371859255283666237935630906859458922187014091088868405359421893281353784010257369480264165615444017065137162298125613656876174683301832583229674843950696227361152996116888448563059915059193262194900304698145373353263554558123747655083002544561989976151734147279025080813041626248513220659414220318638687658553276081571369855374707726626887541089676326031041452162063650615698233821206993800266602363524551970647025032947157595531376186453400761372883792500137387292553065093543292152289389812873919152271742863531869251870134931015513876511792881350166658210834516904329113883774088561388404249500611586617603554482236100791289404994904537476251115085311510334971476071440405790711062558700546463285766966574551516310539183048276164960301942817807935980274788000639609800582449411384225970616136791241973540980946865471966950519067035513391362066470147033873187222902008567745347226570465224444103087220517720456592566637176904771972528808728698992625061542609185665800620652898727697110148277083558530255167223941439061014481988179913767031451161799889946781945697101149963462395992934998716857817134066378895463254185712769465993528430261134031754095637639797229477746405812766385109085909930336465843485529999961465098449934931059591726986232027447604746415498067279291041868921198251176888934789812590853074491065657745477379047396985250878785309773445180788498701864466628833119685325335055198152216087569208223739872923065708320561391331167324288955113605781942771673949500397487300178305363155349990940823841469686318711195590809963278341777400459222714235583551780164879007788726682135282467539464097789482429199283799226042287569021893506990989865953112148798245691444402116536905094337398125650669780941051905021997549655886680766935841091899666222686991613343945324741350250306831995800211903022791862196926843624260758856154411734664645683298902738478495064230037126853008263992551637787991560260251435992015786501126071066210633108821114202080107278111228904275367479963163786669329546959267420057782791866063231184976547173577430762640266599485650793104578971614511361193270353572154166727754072972323217663295180285824162666328435162271644252653554758454494759704760008006590967433970156595096015516466909225747179061305016485555356821940436258875929193675485026722747890370561778763686054469844405761613451986955550817864316764721635189381670019943008184765528136770419096177078212715094268445371370452863219952124335335565285100175837689283403469468399979742184528859584453876414120850527457653565171367984531886304742593303731059762937400350249775326795587874524596802407519327496615455475255891835103017277790366080353311213924672925161263191511318439528767497668079380274097114688974224851027904450741297232136832449000940516913918214004750145525472438081714815556715813917991566795200429686882388044635953187335492672806778441121666400122985215231060298872473369679112201855983467536607999960707718742382163411381881982742700707554675186687287723762275788961952820797564799585713166092464198063544036193173337642165793944135466258995774868715603497676710910161150739026960164808342931278008095871059920812516204248420922423199227654129210112122940810316265034214984887845507102578202418949464459810363950650785672013478712914473697102412423767880929570285832537650479056863884452438963595336191082393523094424090053687962370113104859956516401586551608432865891342014646416125842464346829186037408093495763238839697687958236125176662697273028882117586521551905450902571449873842363773877119630241991518692849050577571306323027290486875924770552500311024895499889328309284489093926339000580969999265858961358996118688190439266177098542876411743908061141264096867383248827630213733465408673193605455041146049124205568357905577037374458088697423976292585595123934618650209501419323679261826741086528541134259172679466431754441790395090602687286361957100341873074246840498947797372189188003662778503884782924539698588515236643593941409635005626585620933469561066388169988684434180864370684810608074620342359466027076683872394357794840999164297232908323734355869114461223333547753133728728663135449061683638582585212230330776027712644439569447975600080131211136955049670703598251954406431236789459278060870395365950914528758819117476778602656278248775722108411361697642646634277798804207396785288101906828463087594220573485820699530961200131726044071146868770761081820813769305222625832806258548361611743403806327787058605693137785169491521987185953057337799981015148935295395181921692520251173717587525615336118059638121533904165006987416745969047348700386977046941251186365092042754449743640708013191410848593782780494015499028410768249737932391680567387810058954009930973463124861864521350179357241090354009785971951829392487753048386139225614796732323591453606307825830546350982280175733453681090494611181128783510130505179646386028652080408870506918423463232389216788329433167357439200802957376321756972426242170953108170135902043811796504001604536881362284759858290721374899509589687828655267139943181740010999725834391188626003973526774563751666607468752804275665538688776062675315078408157894676845196632163417819527593284281434630293586135403141977481613744321887442083437990985526417589903134585855919067351079861735039134230355047083134875491244898400993914610738993272410543522588359053377262951561537602031054111745330409680526961479446248972136201339625778724469735222932217195461528201817773838268889492062912579707440719743500202295187199942995920591498260870145626942533217375332774494342969081953200444690931283024940496945257305186388211800614390655833306573395077405633018472791762969587923710535245775091060188373458185821826106280787404389523002378162692144495095131997737942175563191444920723559607284138697878194297880563973183215240390535123321003636863367305008987043630256968506589090814801867609022503853933815199127532425161985606607445253365394506762282936161904317101921872390135098725069639535715474733136387896106136109883817548258532482990447444274678438489280276847366781826983786607005051066863718735838095570319457557290058811949537640956456282227512697334678272314301199965978331483189432944276879509450691200458299389341466696986835116045428659714007959921472212409887965309328433605999971484953781419895761327473351723584976565799711573041117086238057564885028773005537208237856157010563875690611342910691873867571174577976840299053827472421491436173738385355548174582666249546529982298444309862007123576678641670354952175957074771659352461870390175246976583288559945403905767132322091835102586238064688555229790244480583725105789704207750655827803106680689577417560734562843426857831942267430757546573779512515354104776660730347524637334489822238147078328499836654132677210523764520354467299979807986005845514762309508705077174996774350080183502375819795004214727796868544609521431579525289019254999509932703784656879472006346658160957956918338503462259330688438809669611667300391217588233385471682765414104820919909045079576947350096145666191420493403262955444948629733121014768241841323319615437926148504703311133700936508227164360390152332376283035728829946693482439220223298420840200107808696335871180447206321591363018342532919200669916797864541317914040755780113073196114736133698622837785743770736542919613010749951225785425837861555799847714788874793197775414827259213070383848258126756523194874713621615884025385604286923789643916914809546843084041854268577346424318324151130362609259983179936767269099854468744054771977718467035585736113116320546155244435651125793147622176561808307893628745967855478492801997362213833543150766571470249890684812035362035660278203425522334802868957303249519525057737120521652685742693124792297443847330875516876753651630669655960523986818440215108168690415757751701565029564149298224188502035505181632667250390724833803148409795513493551071894861672869409016395689128173609453085467717437971474832111643639220796725437687109744672988976402225646139854823660937396131981640803870438673864909458163171288971243846585598098339056149789643794351063260831207143888994064820715290595232982575322930912626382480380606954980484234760201199183627442472600893257697089211923291612842956370038855540234933367412657298798480302153537733260389399885496876237350789189074582612727171729763298268283495601216276000014203859848881182659464212076585178788491163874768485557874712136732486818962624043112169525261488805199292352076667781005950990570750366775882338724805004928114349914074698396359059827559589712730519596122962835953569622480681990656237754663165088347653244328221564172553930600385355599550430623383008104510073076495319370369898811360899378980135356356371537984741807553657319961026488570448485076701357102898582988126182199672021848981987427232228648069214308581077795670834570974277224716661177755561771606585387763182216845696438969959601223751144186242944222749913069697549278189842811789940550422772580775802535631063995980692223733085184681662308742530027297160271334853627612831883991309069438006355571333277384363395523729979598667800798749091406132358779778190788252322555080651174231019829923351591376885601219078055658330139897210500328536319749772442328502234649765295837300474652729768654104095127572597777460420174172946768744515167296966825500340732307672992478368459010262267695888842289294386726813080149183619162267445131900016363641206554495633256281236149586018593940514336184168566994880234118247799950945422515752891496955278429138105519363565983405832031688342643079436838443037638762913215580176010580550613666698326186093949244199328442089988624848023166769713417288214018014668673421665748742592536070141019050286002069905257917646801978384299028179389621021297317027244478270779981580150488129263155752400809645127945355730845309211074538649782926623287691614304568316286209818989914823724546011096309076508149588426851064886349907343201464372297893381068694924583891371339698550852838673205407905436497557668461723584808468937544847118462825693495365519345933148260928210414483038768291326200139088420972401602061649572807288581778860855257404978354372030646220660760584882797304277888544650737689243266015298782353525969665838822601181348055736570176585110952151579396686667838034430115202310393987555275543989726518017655508036713667287491902060946464667540171188393459773230877994134587428061871224357269764847397892136603158136323938952952094964130713043698491509648880559877895807737747171698799362966585397003241607198000755559414125151868966447979539731865938950046331345697830269728372005479442096232824132911395638149512303980639028245587265886310313417576174509312734012295469891204744586141246515949009573919997817477835623664031278223253965090684114563233164383367336142085137637208522576604018007450277088319240134030596916829316514519304190108943198629087299090375463440924407811407081107834175630694929067325618504350720395701893601197186826848530426946966237974803953470861764088634655945051671081151814977312364695728488993054384427153817492966703966833531156713855871731947913623122188315933092773081543923007589697995648912908710973888040883026022923487957926433227140982894497646239262848928087609844634179605096693586794221803562764783552744821885217381063407786619885911409317706209906936225426908833857574392467041920669882174597150505496825036219019518269665084052515285293717895328492410847719986671569340119551974451436901882299381831568050270707434802717462146320980029928101440704570810834046133664875441555394081660522753678876925554972406317754352705338378416500372731094270535289080039539348818244654190253085238776236441277323473031348709186772572420806042058357885674376947020235833943224496044873251527209668346686051328584078027009914306730535576869147191040915927428240488604120108440359022097465925052108000160408382602477295799906866141641422497437419561313346863044201217103224693391863472034721664483323547762124626834093066935180812104933131999091957887208106955454809030579848847191700241769723675924697036275504568698692487660430114622258715732529133337943707081241542994190096388215495939829802700787413776296031442364322177300460960434731979159300773250925445573085973036201453891453999942298391744821147680675962306627181309830621094047747906970649406936309866135223245746111280570809630907024783448438048048896762259791068043404811046724290438978887457461514669903497968000223119152929347201507445608967530570589664780285921164216167806112157424011982518423401515631108149954288219896014970448592499930759801840582533937584771609465819202331347154833901875582917804652272367896478528670235959067924310048676461937851853536528678462465009804152414818815239321537958837144778650687678606872834257698385261850584068420185967142397450857770829278753654596051035051518354634747965502146472166179155073254255663038106806826796430206592350473629944946173009472648318356385820147885414221728658162264633537571780528217435389517899145200541973167206442703639193185639095728555705707338182053497839877636397959708799091345284877515637547360106430020340228700946470609214080009794503470207753225989029332980739832680896802060738152550941315220184765962375219661583526835633735476450699161471600345299963578576152275058347317752459858044589522050854294222905678211211303220310334323885423445234211842450791009012584337114381799529050565005952203370543833186134858512948474307905976357199294328395317905872313691229160687810860678400910786526188765332063339334232665000311400946366746692762370218935132895909295030566588558135971287666114660649856001765276657099402728946399957179435358300200731407929171950930578140967644286161178694494168006248222936506330409241096713224647973374612071359095933161884968628611154391300741318141603346441428700195578530246030582456609312054068323538620150022441916587848877384720009401463050788802868689493054181493095916076623390335205914920189577174341523244641644685218706514249826381902349416502509515978523800469020138388808358266925019544462638795007668762359744550818104250057295076069909389993863008053057376451831718762832381638650809891142606009251601793932984850495968604147165402691596815902897732019625454526731102740684400002329819088670704085318891153094772685435740249402611860962019007450085643724180116449865162767103258667302250165943527121909295552705353532689414283211900246149940724139257972369368517072199865876224511796500598068797696133723489223577298729495258768841262680797676043668158752856973242301452607489743868948157331772462802193313720841102471545443463636587164543965517848550645623029830967904225537649865993163554569600633569492836800193674028338020536937469436256207373240927724772190793366801954485391501910917105917231965063172575002842318680001409891441772744024954093551383924150882006359856456284278328563216910721749595964829170233884481392049521671520624058125991209987335473853021304488542378346097649372862158874472586315030243050644037441780761213267577737028233394314984378326147214831555456686695352364241258134548407788926198169397445124631149357269650138076069027991227747889575223530744153981370259149012009294474622778232660153913929482446439263573388700291307293669413947314506037417911537470134079742433282197246002304440477965461577863946131939288199123763585374250642812945074679938902224671653425910624449716738776887490653152933672085527965274545278139996811180762901089299242868790654439750640714139635574689760352067473693179049514883381994522124200505905576487730977923344678330851143074419200753969813441057699311754719214947861929711706510430995448004719787832968276616683174563217741825121726105905728890805359216188343342184234611220647845557078441869810372088809051284567064355292571222338950469035210532413905264107351948256563489252377902584124468926010381207926549040502956389592152900741671049011320871816023174000376271310373993994731806705388479852061550320172214217235454965841169712272112713708940211480884618910950206714462519391493693918853356388498166829615212962499487291789771206471332570167118909526546674358033297328914061574890144029244385137428319708908408481769213387316358032608449871503020351066259976898404707152300314769461983380144871907752647710938458937338494443346393409487586728861672931230027443091883364377548763799683104951760634608145569735513458383085696008330583474411163687649493070975665300947870338251084330366759540676869524967718480720625767614301341823165399228366563132055815456522761807312276584796261603320639291204363282705287422656785725357071238114571749433743758730967025922462786884715004977611581546115281801986293292624334520135294208837814483284677859738201503409436816385129396233289154166431148908446766338856231474601152369692673524036057756797769495646742640140729693922740962464186863761607780811206787579780400101591705013326289818275565323050930068779452158374803923872131004727682568582758872705693867797400844216609767333867711916102768807181613465771455699740652774878829655406314676270623606640857706939349281355090959386560962406866018310017251759389132360398711855214964457213843789273443066001446144312202404271845924290282988339659031478222225697061371745911406399048413582493362181998325497128328922352085989269904863394336867761135217647845072885307484564304548360984067426362472119322765701907604052531154373490228042525184066598648484776845026130807631694186956700358244335064037235604096625805156493508311953032160510889845656767453766231303799518939688858300166879232825208610727453553389588584502517058912478822191478112749235358818086980222899158559343885309334713232950684520892344477677309749006610256146208961473888071412324626800489233857471934113535321014067139324202565224875078230060726719367957371806626515710366351001446576075840155663818082911999900887885568836288852557498408250647258020658260570936752220247916228647864833085426340709321995733908043920763586758553658029242396868331955676609577947959734756413172370347683248380347499403060277755323122660156841144296837690870566080528281045600520656677262125667965919310404809843851523139242428486149935932169047486640586220993789820206885887069917412711381658597123216628492765007274878057463023852012416600850355840566897721406754318951652327075587663775375703697120023644880064137477650508641973751511718195161697047160655225857189667927547811677909857208179566899156706741903664754315883321645385048522167430517996899746668741103047954090106976476265307377856055337183704017951420041465833146696812106458040260459763624889977095183334602615116916859085513150205797325490757383906119229088542992355330143681814454174362350643270031609376840993855680712881553639205842245187840293632406052639818108952006086874185769853914000564943511840144712421101119777820668388324772408567424401980218066364828770929841870277812687480242229882352014452416899062406055421038488175197410286712470987253782289558941372296662722396378768839811636362497481991342193590549398918802728471788754091827876549695681712630553507793815627597049984717651445399354685403539839125583811423954086948024214137473752420494718771516918097102133111997892603001738217625419071314316305681959290947726329994793565203528608632857642010593869406791331010467959472444354699952411551772387171928581209462075015828863122931895313617460602677768920238906157925688529415257609997052819910188271328221883246600461103378605216325320872532406877821337428738417930255718634809063264784923105072710411779118143330857800117665651386268388153771302406654145500565363980810852596187032526002246133118462263522064579023736151205683174917360354429697763276064907082031178947232209265709790178813662684879783985654406522556128578238885412384044882949500954861433180216608036002564968044761697864057497186309525535717711061753326855464560958195285454400774882207144830663606556664762380588687770090532335318740756105017367849729309679584531579401515938662486471551738798741229730004035764837300531852762004881760166071467878552118191406552043798144938202932189256318052045741861262338409367866400892674095068178383571215470126342000696659901978350862437870979388031880270564837520339784912598169874184940566372587182596394693247493015877239174350321076910717150108883827384299682652092110646561100184072987833585299921902259887903012703436534989077801007207166809604514092812097029150547501697581648649653265168420289593544607742546260733008504012018233725751362794115795234449181876662152175902526582585934076614761759088620628684504961315561413678454566446403553631951994246499967111277339660290814715755811674128403114792836631093124214319236471502493453199130095742612548091372173204254275578624149456540663478418882786627825762777306396014844747423725828450579259028207409778128130658344807643267912986496667936033373656629943400822802738230971535221408201322759819347871707519600497864202257376580572117143010303844975509279556594134297338853668566680911926179589682814678968082702186717825066414080910180859956156067104494626633436722303021170853606911536754624523509001251303623836725341474281039136514614570087769901361975776597640465155343281164382547431436859193425812639792061087142984860593906631924129782639551870978242082666240577475166190462760258639538054676591708145192119609137005435088771679820069155412860703687437667131819855924035452808895241912723425284492987472839468335111549509292173496863202542573346976306514641959378807019315403926990150143480840035005363222855462875379558759950359779766058164017826989086895132996635795118576442529398538168476469946914246179124739393539110784404850666411803887574317070145844508358286551467517003293788560141592427378269134623514516940374840780049927144459911666191393264236508212839710676864162117458096469360904538746915203433720372960926754724242766225106664689387004208162140413795266620122581929494422337611157046830182876382102874315274971517566819259277138219149546317736802066554714498813815446679911091611964657625838023256267891795692808097128198155219549766708116055001849644754838569792016516183040707684233562979478488631837114610434077928210993264304014607801266643698727910236006401224308171155207383634008833465737767484423281565292811312645604931511450017797546995471289194961743516549480070760296867983919758507435751358745323486227014348621522884686886233770483017932096125198668352213094154262613500809113976557607423897616072985704768213372960094109974453124984338606663693411590912190470589176635677067037279332327864143493896528013931155353455629780460129433406220119521258501235122139931189689220452268782689926607033613073380588078023272814981112697041874386913112065065997033929488531668458889966482945480769995665964507948332521308700567104382518520135195180392062806590468156761494380162949890152839749487904815903743077214899002436186622992006968814254841923412507424432925527970085267110659503186334797959179210862947408885833669838124254766755383533660055485498339847333092402280413074119550219271960202507340388526100667194453273447934926637156850905498879731959649557261710477489965091564271220193397595601138462269468095675737218500061034785255626611930869454712008690709521637963017630448407328173850287459674825891890393825831256474639892546002629973998194341099434675990474121619131774648604661916218760563664419276739127822421324851870192608364792075393511581880465685164355358659791896041558798962969966546420154031634056262754870169613302900566163419412383853331606800369416655474035677534490709450042228468578943254558919651852942884804176430024640392661882718479319361460678699296102636068682660692168580515913044067539504439526097083363312311257268644169269799185783740746792207399682677049905584698756586677063911473839694109554407265059574306485768521455246332269846731022976217979746132288802190181485776163082709619980429620738203794162382410050259715244042541751149017894194379950502019285895067429155301904651979473736450784807651488652294871525378797985754402590607195271082894518542264709549397044631829592199718885445882235313654157941783503413940365392016874950786406637792669298167029869390456556092696735592579712985279250761918756410933636369140639187179743288686915341661923574391399453583393258203204500581162135338450141135037614341688513024119221463971817864121625645823737070872332741444998494030053822047381373086360094598384369003956353383333725330339902474721437054637585815867764797169905339803352965920304590841071110266872816629467617642736149075593874411113506820332030421152420192250270029690317847777464269950563401924480710200280769484075455629279262419320849134998114706724198866067403636117479955787960158825919654530666143613684964178537196711802111708134062188104090183266564936602546447912592296328224109582208669877164841909388481619456167527908664127169807739029220679405166489579162112378280849078909403286249216899310008654255894637636240302128580690644754704080201476716648914908668656966810396783667771712344311670137370846544371289280023089368468689576616796621420555118469610514543405721571296455993766702148912840947109926126897709665520706664359215796235316304671800695863263800680986368342210008387899115371093456838993916594935642992077838513112865227040649116644511855352386222983371076947273101735273067792793315181689484963158156693750983194864516478089072886412181732410736366354324839768705860247743866704121112464867519524165889705154696238077534619061678553915461283990898748417667674535496614205051367181731550803604972866990366044241816249513640551977492332761293061481001594312975249602111242189531559184691550941011473539569589145918875152331704343901571311368552950233957940437893306172240121766892308623439323719674842546208707366049010586628596042453570833443881400287061135608611736223386562212686912270449279582699628128907265290081301615065563683345232457770770564288940647000246787703293353252244294323171793165282726952106604535212226707532705029763292706896212860731661097098055279758077935813539731818692695032259325761154522724972503170315537821425867689169488286071184438904627453465913021209545893451724223193623544000837483640317433111528229442974941154353784599407754523424492702659944053224161802417139656870736288244494348918100371202431821011393409366977815808323307721825144410216974667296777452788335310297742462387080807029777975933896183138123813820030392590066675872310987637338135602474255478706269892742792243671098092026191605959379528763179197646684639966392498543126137869490670160025477292820778337468873143400107385514684707338432462744750491748378096338175199977495360982518977863676269996307904240180182167143309558917604591857412022905658069003806145163771022104534757077737102131847328243055824374560683942580121793184115185592871741150425412941834102173940152470021390592304435013098762410098960346791667820729592751642216620125231393099428359922562457472303601178093249778720887516214329631747508365419412604248875398266613018925892464478168786687814012362039010665127438863648569758650476141033933278810631158585603462399376331177031671079069726022613056259777092400343099889016501046029517230092730003388243561890459168541833244779141797949109522210654793026507187449473051501161338889284820952012848985371071799183899449149961887391461985091878872686031136944991513840911943165301880742200462486524869572473674174483308929875150823690893142381431637237034236107485848492375806088820130640769018921703779285980018025782069942363084600764995560311600561883232616551032228156952030166550424111774472453751835567407717421974742913627556235254705495954639501969530341616256800220073770578535392913822782223702672446476352339613653685709847677561780971628245803021630218424327734795201961199278156611194495938689534059594618658093260882191154940521678494288887078701278712145302365581196525880766513061400526606893662658661180906575564016820252272698021714850749324970899399395314543836364555755484401160825721406101163093125209604291559183601515050865553942645989244337749532531096981054106484132421825378336053018663052206421931653543023696395992970079399624433094695237267229915285660286225422963962661678303021307846922222184365165344260295853657897132126879874990528931082635255155217474181406446284027903664643693279063126158467446616213299122620444417092383909206550714834594500165705857594886726270212493032658745887906270952363647045527234597109801029150000319891564163812533032192884586631332994191246327750663684902866352628073553877059359710105776112730203818174049529459012160329075670305553756759540814315671768583492185111373038286554590428557681184741209619376055423663880680259428296120149491048438681634949775576122515748983517101463886888396377854483390914234613628464651833705579022207940404916117778467518401345758242584322834049897959969772772256203399294498511306510032719712016968264430298756293460974736046829275710656699959585986420069084171411363026771332386976624774946349410898066118933328250803257305241696558477776626971807004610538460848960091109439574834187943518181442518384089267921484978021757180501140401307662734268511293544778944113578878441786562994517933861242592476406799780285732405261704068346527960952304740417427639552120919639706189129120820947428417028840094044360392071560339842122790517028311029802187084835314640510827923899891423160134146674159329272410252898341719648838240374940674534733049651664710920997925015089890418008772001858882303209329356562794579752262108392072707119933584672412565231406021090370909980854412654169784758187450312465925475010672947555898453869532143693518041321185726872375052816664969534869996954151071229184403738647800399664531977337121800681114494531267802086380089127517770514914509408903409551150898034658122305013172346715820537845990399567687012964177315601139060564356350578136143063336238583673715942129296158822556933632672580085306898187323391093562841585675061423824792234107860404526593836646180833072664052180629434732467411380972400463773148366801564717395389532505883182217665406247682063761529175792590383733449819539536805067630225286332882589644912185785373158888339362448454647456150198525132215159237127785411178658517287683400865837488570405457667590602313578764076337540188374162399433732142355547884550175304536132973148243748639412101514949650881827697428441668234111167606360254216917159043200458245206581131913171886670073794944343175791956339377696098455257704983106301053617160818126607788293783489575992297883982058895255264269601681977012117257657324245275814182581458371025885870796381382932234928487928539450867904580018027400906007539251847360712367638607850244700641420517098840464997058012242397548732157476641699781029533262747946056016701986982575389874815026277835162277341773739209789422960426652949159036292141491972800562370261849543529306021426968996961550296132369496220277669498794553809174213881312808110474332028593034942653039429351345773196210844422948386080457538574981795978925372152554923082680026281947447742743698283122190164278131346561961516890175185408174912155903215713052758451954299635304957120045796703210622354840035332275445467216489661599362199159192844851999942956364052710535433651993748836707671257610217835424277468721789060587525837906662900075758314268649640610878338054958847773556637071641562681482317021464257592932928905095034620609498141899033733658557678818310620043845111885720153524322221978055461114579951670164861290087233237406763564783521239152661425821112567330990807510377817297777889691685758938749529103352533384212178788175362868046884852469003869887045975710192164436828643628203963611038987714999987748638280086654150691207937490949198152699894956571200879462457947055427313064124214216204490535772282368771714674520882965086087623803282723044926177075098660191057221755243469260774745080388290058512795965206362397385423438054422337599415476999667843123118954020668962733067163456803924853958128322710294624741532756147223163116187701918973715191174552643432595716344865573139119239982312068912624722008594634944060647707813868062706307821773427601815393289812054810778374590036894806216947102774884852144374535263908468821439971526483416443957043594182276475602572208938141195254945602030738579795612838974574809030175417329036270921882716301968964168164845321443906999099244280558609059182521791625886375898262133662973828871442943405082136791617096956404929993757669175030325711238493536987156660261977083946117766161841999179606861281316723778928292457192636667892830409244380066363805524544942253224145595198179612861453233261527884609523836171524406082421818640625850163735164896433943948442504880868095244221452534220269917699295555776457901504189935390236757777885772611113730590607345524707948251777121183974062115767640319325231038095452434511904452048173368653811149538630639733263834385460352098531693524137378011259362661556560130123109167341531047080843476159030771843784752874579496676191125294538868511887228501958679507856017738504058927195082861068048677086560757024017904146364752008122174314323708230579641894679713212196808769744673524852568995979640207912220450043656548320957173253650397611823569289554338101502128210271679936873962497751183340775746229146103021303628804810184144611882727587422695591749632046254997941576745220862929852617309748348294633339302357632481653409241544915104569108409672309909326743159032300940979997318397729632606077695185475940538002602251023971663151237354007700835816268227054525954740091614526343397106978359563015016316474339920541807915250272239503416313782706103829581693459148229715949849473283764363472481006990789932774312626646481750512894714360807251484023751284622704806921340961302006981261910642830021556271213780355863005987813009901546515501848374485324322514342653595756492589388092351413466301702576086881035520884868015877330182221143877470045346786354242541893113305630222554588354367658498878570008270788224296334250588683437558463882800925201907812974726099791481436062310029450927730748618237595975928899859619672221654522228786092437016310481102885818986234001332732086925287587507654578855561775750766612139156845233711397795457601747436674938031206171390904308534059238781552753610894810865696443473332701260245073469974516728046518002759487573094570286247161254291458018953666487936711336746175799178413571248033286016663090754631495782172132781626880353264592395990416684429238971973976974851859162444499063602393613706673107583780779796498939402447406596850159741516684959976264303784392458888166661162286930039448497633402096273814522099462087592914466694732937110298890182143673534414390699793048889626941681746902057043534993454036977228081236521249179862807807586354394388803362818881052631877789708896717623658413401601048933130694859253367565130329963162958725951308669135002764365348705333958979128387459726972428509978469054147046978732049747472662576332419456616783099614963531361773847388099368449850375037844910674994698864583554567647756465369775224828162428571066702037012439745086025311893977862533385357507342783339730007853492495086531892910782827757970100521274462027793524110006154935720383103800620498141223902055196872738080663160660200477956940382768648077580125760994685453727392800135572126343040206578794001607123154381831994336814241232687696253513352118262491189359997224462004915403830215279470340104199545848047852205321938412098249212716461152080176809654551144341430502894447256088872201658378742603800754016367275035295209001247021362179504167979354112622806517927717673001011018436771543113058683321944819366172775947959364683932279689680883929799396924517102266828311831043906645913790294322141266667460576813698779664799661612159230166904408586722126244412079836138042745489659517541238925682575288139641916732897565724808749669664742839011156635611536764233431980305229602222676302157733859932018029942010367912501518066656449304897116397555574575815869467776671983702900953093921365391908996504430956356439159518792504667268477302154578695460428262204662079421514537053022148782130728490217259386333420809762810858181579982117992087315471442790131821309526521962733775573746223870029780024352267341403140005799951622153531508529521948170353799898938841327621120382171759231268351555131654150745953016326143520444300223893698995168335702919600894032944685124479975720399450484234054221678647198701575714001877490795130884432388586778052157746166398853800159061081942953636794151691257377485585264148863406229844987470784304769652141404826352576576928371351257050529916330255282800931335920159927889025437927913563069391679525991942068294510116660190456534274669291889868758078921859955854241007515073711424230181192020779230151267805931233344729882368861390506293786979607434127667387787517338363380263251553157648004762419603963934509754896979903979280832737204617018689878623390383003194389653820769438053580968576111059954170066202678833285665851682459745008819953418108131881018643492815659773559683906943036077354127317710621955855393145283950483128240979718070505182170419405546656170096795642087581702315822527304303787204548533256975142092375199474391343606035943073690218575439933053648608056754635427399360041734747405746044565629694863183315030088198596479034356374683224892938725394211456389623440823158869117734662182852303147771106685309153415926946241613843734747652293958547010653191579625401516291361639271650109583827550962292299911997323415572967449574853046261387719896967418889685523651726095937778963685780893931876828441632327268389225473418710404217972275081214299569173823696201385875613856890938447610255167598043438773274054520019295083257577677287066492717097641383091977821187023513265967844934793381373382140648952476077735831217914596194267515238841053240483059809683128550119277966703267996963922013491736231848631219783931447806160367863595123275882631065388817079349566883664279643767434858395443526369945511190713040404487441383784824043109796111722993686612019245077344361347899724953805180363162943972140449632804802072787468832167154375086107987398919017710227178845156965106723764491757100614546179809299335694824442701352648460151350033331930720799375943621548962086004572320087195763801721183920722400096233607065144894420758831424146971243763364028988989480832959469115355086877677581176328795978169552434114179830736008029947195439234409886209045250348574152584897696128158161171278372920597847003535548530969619474289127042540894343032374952284530718946628209018331007283945051555973693217585254411864232150519819453704720359508853719445482508940854120893077438435831649057422401922959618726478376618758777612402758494083123062864738195542924358988933732407211027645814955368505835886169390626835259825452680699956104977529043522178222480311505586380979482229812693339421856067845061428930798046243772052202427910344743923269673834806894008291018152667165572406001009404670197166205623103810815260438513913102136140956804496679799565527171718841404259872095201460521843357205009890340645775437106080606363055197350784065952707633489148144178515987887653147041344396118848932128537195892372845305443805102624443890864055334012137433882520497985494779928800182740982930292428747818872599635178225387833775679983949775041976455987721349138283670453654458092117788708060748358895252614711448548445444444462913355083154898015867081250803670613473580025531396274378850961007517359492252232960533885654520507014215710756754965985038915439478338543441033130121552816894246083673632700455042063224910395674431576164917532858661399114022162631009129939558956297198854099835998469078418971421296415869762596942825304499166455563697795148803425582739454192701315906910759524663558926964761573965782275704690307821988625785844541914400655068569994173696094459777445261381578328601099226096951868188399162083395501417958662959122519447696723760535138314015224460220698750990729510866602585944675584639699590741375561130631428704170602679928103722291503391932820038296491012525099354459931773501651554883426711182776282796991697302947600969808569034416208168060789778680507462749879634702581856559584662713743923699447554966405632535358631482200716422871828765412391270900840231990205320672561072722040700973351221231611221444575394613314828704103207952732222278896181612830505694614625177657164321553172090052323560453605734218629122977604489061888083515644148685457872256979745039856753818585553838156476240070266231598933171412618022604793227453721463691116729832671426366307725534520461089816044511150858380631802000749589887576621384867158941324259373237612062843538518593774886253093338573317397340470084383155557993849015716747489082098417990399431829254432811437781035980520478328280733307381234767145195357219445985974736022434331116459501748407637849804340866747072462207792403943306244060942399707862207021047819834572828046827254054088612523848188003488838219634199088390923426638523305772351436981522274437271282641753408156646064372799404023782764532388857486470591391917266234157541286795998737694481052041967070439544584318780831971530631799542692905008076544163879080080267264333634023702104023071198466188666792261824007452227084378388241074300241316915684253727940787138139256396715705611372341745812605640368066129977412971537670504874525432904570703315259100937658125359602770600162375813580907479950149434865881334529663595068398578515644340883344804587357862503344980093796050493346535171989695466351355449959971171873658192340111092556138763937652703579267311932656133792812844485884884109413291880738045047285817355565963840246306615507843140391629787758763142565006175097191877348573173392307137692855838409671561273741441346180959602014842052771841058735418511528271344766450269726860836472305112645914306114042225765236760026577282563300254603143312356815564688160622261832926591649541862546024100496639807875269398402344467416804057788097516300492573544294182924322620406997775841845238409435880208378609672977674160600764820190704439981088375694841301823642052668262001705133201150239875481278035336057109314721480606215138185581558359608256795588695734761571263378319491967425579069573250335960285865887322453613944532891959686856136150669874296341478547563582803802401181057421375137069990430239654966512783125542586645960822462869802671646405368363282170982623575863398759490884590804311895916737206916555855765204871835218335595316367440022032500935172590286173516169498899240690976557902512553849573181662402423948578265996227275670149797258354605238052950615813012718038713934827393595205734378949686209088438137579395127798981995711626985847601061490481603995415620649842283465278943830364897249809123005781007538467338669606371508122817746384011773300323077514264831522821826263834884395705357477938616589734506079021652879955610266860402539961153612784874981133270925587687347192500296147048446220738992797796561642775275716152145989884606818766879414007989402241849760923153838077853897487067647678315424649564001959744326723230326493791597658765159877728470370631857875270359412756164940112303731372096126491083544179041443759473295111700400175044982835988394750991657655047392654367767689361588948930092258730880325731246693575956706299917597618126089520800197271460889817695103770244481653421550970685902277466614490681587382920083322548159242554768474175490568166248229927639807159755497170895825317202975039214911603756257197818009729128883005099782318688310780819378620036888204131093233471845466539538172128077965306921335740058354575007801204440979302560002164110316939849800792769231707141356160967216467262787013094991755067809939283461571126639365173704642318650715309692156454666098016718445178065925342922697999138553305253621752769112482297701145597830876073957228664203707255307744341582111904756311707609776271826839019883985502004886858474967150551617576186964590109695382035901289408187812143724970876561845609455524825760891500107481521158852093318623941885343180125876368799118159678744964625094132640053924876744341733839844850662483426862601542883907522764058603093231885047130620447252351907213409571877955647022659389561987107555666741798375458104461892578548997118548078270075708403936586969454149682923234367265320589125895832858541563861041774072647747802642069999718519602809711217390413098990561866586836540238633781749276028704202416649660096708238430613028304222674306642352138715968098197856058749819424766061065284296554928314751349885587402062017874592234179141976006122105905270817053649942974758211045758369012631596577065855361267119094997664887884057491415442268861816174073685374397404810521059551858798136838179314465392624470091371551766945648357427926896431571902207057309717354789110790007081276042137987713907839377559343938468020434237260335879074511941258390737461329242863424011454584676773187548873264400402556158530854817517065251503526686031277495129956310428621430312642662719182042749849350260801646286132537797364011813077531765650183556565885483701808374208014575630549340741454204670610745255751338938291706500800808702975292057570577080435960225592363257430287834812170425922044957416962058399905325420413438597212176152853346190853020040824104561770996212074219107506121456654207712638548513302914784993069108160023810880630401178744587797742887082819283435573552832557034293258052484319879240089398667318686710401470341056756763217955638903923547538441606928937259973246466416661467070387664730129104174192845475631312062236211389851726149295719249164150020206960951095490041096837016920307952543721604574713859110765052038376147789207190061050132891169457794978052827741756141294966574882370179343073603013985812495052455783148885169526043103909719955169850145498619730738296960813593400486482932200247683318815864558995033451902135870528315036287772217708335726850724725178533518036876600706310176844517405923549714140109599055689971995364310082726675792335129948917139322865099481620772497538417156154976398229062632289113903803245125884345009211015347626770785110193272159257372261935261795251518430282015347939514982582072539421274102777309126843357340635328204725542062896382425797809327770742786254239556579816119164686106536516085399541547934594165699142661898723510535021645056358442911940301248609520541483592916290001244217508756314156477319701801503301617875967110983302991803940076166982373637788033412806923858808774167747912983212865665071874120653804057621557520709447933458530551266423133319561942608095033550505968694704632306964944420651036405192439071789195336231799295154424203627568719562429473177652685394650180129967927512951513258380576036258583032180470592863358276106118982956051626824448521072626692604309147820322966214314131062888931014310976339259088037203954425519881073348882873364457805107557758470677995986171982958415702121696342337765546252040764915644051320828038678625615008337260123283510637511166424468487393450317956243787656337152813110474362084821594310865621885007217221391081683481802726357103521098543838039901841644628856854530978309610577834697629232671956147625137085732788811468781412945684626631338892270055851619713808464264801915713537364993134035680839152124988996877909511073100151830233701815023043624849435059756618274621049145320793883696043663414291328139836993397530371190343953412435626895091429989665232138503574126440047922354563870573306401097941539755704301837527087770336923475179181188961363517194162923982280544989680939027283082524441369735159783525222693193661030025834579842557143425493657772605836459488304773158343421114435372877795320301847927330570662483712909163714612803437621294719826873018315041561537766976037980599354258416703993072935719325945649148020511889599196921737761256391484648449680077338818778603030929095845039332997966610165546105688524829661651594754626223288445105730285710566315052486497967325934306892789555677475784259303052446381901131085302775742982130566644342044377816650279138714769935662866075998845152120410604660788797260993067937028148528968094078462701138621979228050800230250623452681981199205257483994389021275600394164891761670244977942251006975442703180181529770803342986586604099761342011795045491742854553982027988860840233134416814585863692175895756952344031859877564920024310506589904014908946456142583993884515066785428013093026996962133750186925344791201054362294278879040221742914811919950935870168722602374829276237954232183392812355481023422719758624768577853376591082028991652317922135020809960203582622543557656342975567435471642565352267157849875142192421700094035144548302256007338658169852678477972388250129434426329805893842771566154851813513938063730353749030843389439550078338753995758567288837281072782585420654207796876346063513953293251560677013808568579663491055039573469158444069614945631955792638168873409105312137390439871854594929465749692368131680543841299694391366427685514801630412703422457624619378493769025427367716828741897360009410446888490364006238247670174762657310872730065304160361595364889078930602190275986768144325670656985145179128721587019102073328592825724586347472244197621812684972640511320616376786081517762922434825472806433851285596050346813394985008899377391203594210692923557370159961294697202220500886776137512618741000069313177064880427322135530016081972578439424517060922845805314966689197109583396823790182877604028602727590828281884327940464512686876600739629978662745280027123883616950729198769798536036175267100121060554385679531848017274529187780718058068754096554019813579682245984058914327062693966795586459330296140858967362809270007843236961121067498933162957638013675859850037142050539438357746427664197310193997393114819865672669118080081149358616250855703485399832586557708620821257962266891660492079959825638181242276511296507899277223139933702063727376864686185341878323715918764883451152468451245015881563179147625467130277389312704778094486999342655023953511537552912639947270613939196232238388143107014803819913471763539619343746913588177270003679470673270463500842310977669927568965748586791863522370306462320663943282495585220283342075012183609681593031599666879656457657819940605996566949390038557370684588835530832029968633741263141555108534710132749928843880841676756295621955607345994353920008357207258531313870039421784346323989360506382671607343797535115506351287218525593994622347362638131962136851734588836004969023900020730064832516764728812236096743349863165315822630647235209927485119026494800749063464422519016698654377193049131464671187733663617530349984025672859770798972687842196490068259737069071941975069181311932016744063780594026095331278968594497755301408941585243163921908555367107756738782263181640817893385020173576161048698212454015611766983656471112178611933869192659359947572403346998943463376548766803990147874937787440404896769631668294875362229709313736373440700931110270202467564459302734962912251075548885234862209836911176561831129301275172474759557176795002255562077885623146986604147741967087372603659334611444981740705335611170537123862077446536905281505385103869701741303264275086544353874212868986291893221251404250867973524000760405859134900609391055371307898758977315668829207168822742969742881756582215650085053274253550564997689302842261000263820111051862063138068481517622581023673736916225412542125060820434262910631452313864617907716905359595763009245057908461207461118323073536092569071400047122565723770343347491324186948661449841189200741705382619246137941999696494316707597069687334623924902311775873071533305779193057185580197348482716685004185021394546893637470639562398254841914980173512389529749204856640727432124772714078720018014257750980445906573791104029694965459575510878527458941613099893340118283965219810871999618762879727340459674473756776540723525614903885083277206706132320685413173879186550245070867655022961806359668656379055967708551658771046945950900520362247695180055026310527410569930167580632311425056025919560349091598253283808535480562271201956799736974751470817144303751509693744907467546102187475098140563036172132955608926607581100422284258747595631400785121894532346836862843126782916456893247212603318459349591276361130444703208083125308208201370309132345136765767479849447472789290232211260530606751012269409794939690645081521477498750445442949676493430922453729366434837640104776752118232187282977645069203182834347965644241281858889101196515488816106415691958899230051741351470559625531925903503329494491503218888219578742342522345565987610604029882293581410852153638026641540782138951384555606170529373410600028409634489516520824696670934546974728063181145099083696751624683568391024867715010313195266905181290239400249699275716547256515657394735669143414257015332568370619083711604257471194666006766700797496054822964077623415506085199283798961362433026666298145443575149683735959588267456174856219068580693766841023852832108672880751245912482120975166526228270478353966814677493247299092025067167701993768370588341249003109976451740421390441361101409924134626343940096782197862361067974096279036722979904865218494140551536587781464448426573840115134907808033988379465226268393593441543711303688874283312818970528318728339408841241458937407676345510265082602694455262061717752701785977679313003096685624007248003857263409018616298077130476493374448658930057367962191290536894219668426566275186223582795501885100968340676780048943178412424436984926468507550498912421132108479582810821180235746877187548677306710547061141295283678124341734681871943388598608334978276696873200063079571170685770169634374010868151937518373101194733477574321652563344192929667102915787732874789416756236181180428732176195144365796016433291189582805321926369813670481197031753496129390010350914876807368537572331918122812150589668526764045344894177839898593600120298297581190650987925475924743314424076244801998412694850037485076224570190935638932049018553727591892208353942329509324622768948130214525762236393643496283001640724620097691538269248691115740678505071378792407577577053159688568650561388762841400706717649251098571124508577604413631769183101181086001836389447481137216902300319648095699715161702922915227819898124059100882487253838630819156673368009352847574212083764807933254176972689589820533524597463093994311291125368049494149871190727634690565127712746058899183616523654247181950411643748954194393026967489880899535130525113811476228596142216426587207702785054976690108846429814701612730716659901326148605831249009253241152154470186154429667134708385780433060456367689407084195142517226739451138403313080192020441991015165001648607056185053999674156803219578173562797909705103371352971905523969806497080120200041437813141298926299575819709197923674819276216489171573625830791626847679283002835754459419304913658439991533814272328392876160864708543535675744024667048383685832497054764765168644432127047741531990258793817104925546152585633727416161527121332019542312611243976288577564506454700134345378699495016016134625768156087026433149005786192911714101962387524890433658544581763557104218954419984989999498648261404334335606992072108285382377345266101154094869166332279791266387539110070745744910442428019381754241122311898151428352093802751989483612525533169232544312520472555056375827393098737887277804382220426293225048732834813846121175594872122499150980250047786720851573795598712320372938551624269600781571666176573293078530343056811102043316703185074518590598250301829568212903324708329589092277976889095275893707374208301382123517904609940219985621196874068664913303913540085019102137993420386672596632982832729368535636605573517913386256884638942704464126581098531145025333292020159611631589086339097775429768805096155352501506998011025008750836612197605709026284510618833360445096042553306616287993323642387614933402794233018479483530198846935651577187544595720388013662320057770431860117392405341771601329038255716687533360207255593635157686426862142920539184300772335442852493474464933860927945254528344986906923117922045401678427515540849091328333388707785553233972545223392571372683167206778596994777444749458567955855485536927791415039614677360059630680901181914830293083661301296914149300589412877330704444985651684345821503660357213930646255105842352817030443985896089416974998339367683724040313280999873599374403215355700807709350213426219938699560327277449664123119009820906080969090060616949397860994190720891556640204844936704837699956361060059592724068737761834867495330767710000127957533334262599469011106000137306649505259265140719989179084419297212441776408741811509947091935302767402378578784614719919449444845914323653026786656331063092473676366018472570610371610638576516622672032974325249737494525655446286777434286301480796973575108507808348474823704817719247643211519080285608222685199205568162648354624727011022525431054535302655153112272407639061549285405977555828707239752716052069870581669285669583699231503419560245249264908068136613190136327869007383805976739935021783995104343862953656277829058406780426121764678481735389167860575617842695210736150045705703304382934376894918849669614335305326077214014276919880493661684301077350675858836003110962463709446963799971783193257532454533704212614777459696268773889190901968317703475082808660571973892464906158791928749571432085422400462442868814666291698873653392948440635595243362426480150906650889678141305160617670284315005401946711352573477952633439296348620144669140373267061866996298867466137673608331471537478827338440153014542888411099817214314548093893343145473406400948644542899983610418551431808266007154698089510211108549034956683133571091522577742235546484961320166491895685185719345845953469628130526440355434654734594216945079056355720788906308320823086528346458384126544728336454671366700828793263923675663079524538706489563933703993161807611297455836613742247708107749905074892635007683688887655750788216704475486294639305802214212197241243075149588554054045727272778587358855051130752662721061588162176378756065783937778854028022899155324849002653812389049135147040610951782006253786398099345584282681563581267177524569485314746042532414423933033101265702437819816791572996425637607303907330909726572237565146625579768063761326387580039734199930966892659875507230900341163795089637436020146482838838245083352662911749507487526401495423477915433173597304189730356430251330660977090711701225742060539201516818990830596174149047836016090402470278052606956870515544097157213240072659674741753259288976368953564362470170213781045019053985372824016969176827527478129583558097228499731479203637253040083961213807099815588999185772623020992172119960315397646515738699334349325809511237488575792462650835117512261992623143066199941389759767175458857145429917450863901175600965608428527615436666625357836393934965994530691922522840993839666690414298956934663338590649012186776994818405995272163186054977215647646217823699023430065090980673345152673083436640166714789764903810810021278837671937351767294976973651855663236387762696487885638162181947707427246980770264244685412401515477351296544307049688328105687408457374187624482851396313310210014607464454803503507997650989734062954452452987409563851881466439346470920736655469503232249802582919505303638860212209186680714801090423825955062853338688577468360253062425635895371309181775450646668952117274751263638651665032469279965682061640715787463941059609937911744358936143234386391926577005673545739070731533183916066283785703490134536339630925951845754279265997865652220152984967828037790617847693410223931523452900420346219241792382639067868468117939305321279792579032392904530252995477299629901643623784950182061479323459919840951982740505714229897583147862933909315746245452311505571765188911106717275078836202498426302411807364817306130049154800253337116757802955244949187045343037544053682114695761769622848389993398269896574603027975607695265554451554714996778956102753596492556244757541987583494771976989561914884315638387166279862713984229731517583878285898713932916439309721443246563745535480653584989954157844556516998143675518480823936107496563073158179348861531041617133838586817205487035905421867939134885518317251579333847108953932199028881480296606948655455963110174356402238601823663611112094361338142884718446007786002577867539911573232083215581617149916400719664497466402435789762370915047191905279055770173403954740222231282960059216639057357917274513515986109293049523681588881827706073943904262291706559759580443491445580273008935157901818193393298269817934456962063264515595018525908052947333549180625334915844119784128302580906359858971257836275764740295620999437009120358501858576729661569109534439264307634974585551493806687286648375217222642971588924492052497583662440499763646243768706825346998739658653980407329761010568633431207568105667932242515957626582313794930335367478626887065296412395467488648961816194342386303909872916709031703295200862202108218187112871904442761464292553488228608850573639772411309869755593273882559239060758549140435493750430714365858770656250672523921249824439760276006841469272928762853353205476477098398171329999926505108913905882220206321444284852528246047472524596091036221204104908367540021132061639040306576526312806608096306502217962646446025111621134821367803292664465707944110877904549714746942178923258189541077424779110965714344193511401191343878425864729564820537183309917607871740277782607429020358338434983413785671348943190156331279250954029392134969312070137914424425722170528614813955327613839256034609888887939301933946192441489108536245757067751375853465149120646941464882091430110615457350133596868808612694663919615942557394003546650031085220887720499248446693047909015254834688271930648150611428831674381596291898933086225621233198003386876963545807297455437820792927916114045004638957217092273245015393987075096659821187983372665342234471143439098422299658764534673727581792886246323197368862218109250641781992427661642944476212071534621309831630995743149276431477037084727011529489510317147446822331436141804326222263636834962796617703966630714714599951673373732278545108769098189529160626189099432196120235324209177133907702703065880595353951558513156381961000829834317075767608498316437760646581350662599862405271441131969940178246025193455791659408880819487063774067986312121698424694863142712193209624942009734271210428161244455443895152510570173602244388175286436933713075135778469626555663946641601394003567989542109798367565815771132226946771048911163817638169620606389364416985589008872944340314355128810228897324865847508464414991822530807776994152870191879496062921839006269638281525179675052954705333725145084730660941143168976594805468078627374271925401134655835648918327117351850853484272528703013724098810459462547046722809859237682184540924105299473098746381900597130503999398563009442457009875284588782623020486764000323591496516761436531579802576224183417725115627816057929393232128874067894418884665867688233842424777321856423833989288930719451148310099051503054276171932919011102133898371147860980358569051799366158988750659145186388808158104981048740442012072938940496142224644306395269967741498068537218816276903058657040533611880987098544485587674593740727806559097767523557490043111024824214605165221542004209010969870992089817706436854157782457043603633703937539113566261086530422304713144772525012828744445782756415427373531824923425584853880011204741231507136823985434318809975008658064241556427229638030698368888492368214882577963109406501138163041091275763458176926938797622072916056530702101902975808579582161306319576612260579923644684815048107037710290003322039118264416348394880128646037087435735301104216187125505553686500802888346337475427524009712729150142774054417284050065118360903646554324467145823571756855655244241682208202090023445327665791073446471255844080164246359324273579930981768626244765087418643267741988281899630952830511530501187016443776419410721990925285870090836512501687910898228548692158193551933749947924463538527886533421439488401884597214482908475907095507422785711607338970231470695318084606566483840501191658162187918030139940393574450359628555504646861552300263617702787448248160085482096372580723190869516865747298865311764368629952874832923788308260385369101183952431825112507183351285691940703933745026273530248865967635857704953671317231343492982610610880226214788250245633434906833409301679797060091358412568604271521654630876575677836915778356776892853196409876871148924765325531191152371627222989258081209881168787065973219673376234547066013623470715911775123238585102915926329670078735546676321490007298451852994025360424481226376292609191771659717268562703312109702965274058787118942205255235765111519614752081938812600839836555750726213092749193201251786217865613269016963700148752670801515974597417278164868882059879544713121619922494178604155786222044958046418744249753985545966855553036592368831705708467985939627230558399234762521225303199900716956547765548937926679493618245775622315440747487170304253953158232467867588848058122354255837568411104824419904811161087046132646285475790511215197593820000994751821087329750400484095671186821559455229291349991541905926710720019706009402355904389850156805160427358837115083902715441324654831437353580204912996172502763816516134433660385187865743693870597245974540970618149187160158536379915546845264352880800870901031920587334317101824203468208884942929452871191915069409184162319214094644180201261498337417592631682917831850239174571581795475004690064320873741735289400928359908014560890355903829401765776461608793483966588489562440750587939219410956114430636063666041407243709243485690312048943368722681277397235758310862099197768764133245655061302234380916093062153335520759310619492906652684186333138921344671196805908611584345160309839091374880423119262508192351182891461776444141616561626184259992007216942570791143279553447836464265774095809373783015117072595577528683499702662896434548963858004193227272422730811172598611936672658051292574387935407444250532660196655661693293890717591447745436925353150867632706138217441434619043050940529037545290972309516060095400977082869920120991778256782286117593596316738247224667477990410699993577924661198747478531578159795200343256675426946828407101777535804028932728466070516265101357161081981496255974944602359848282415450522818506211944392605978784933785308533726795732281196673449961623617876368970687803424317678049489278640325513520659576735635309250933113732808805013035053199921591029061767532735706054305999278945157405610726631154315681175101607817711279927434779893477018807329460081915903683782662834013547722880185482875323365970414254444331853101553890329883244879242546663031881510482662897759214810468123324129465698261122070468977344106398845566401643905878449232076144640901114399566239170362813682262514521466023830238357142140631650665554115449196566930684952621873171921583112325466904307920806946963736096191279648870024474295736470160900127224823963349020412445267404539174670119113378039740485755541636078899093114014998946767290246732151505023394627340619790901928395072252802587345931681467512391960677284760501370483023640664025073402457839739057419084061044423353481088334798258870758027205244016068142472267069858936677516743801967044619137228623195647286076811037907347703439485211699165791443783510527018242717582372506061248472525049003630531939978217652041029106674212113321406963169177836503798435454945537255556978960766064998397944711452518945049475610046010233338385666336358319183991719795901654694192266226753787164383922416083472779441794569108554894985467776859784969745848352274809041769247298913506082688045391334964202853513491992444746117009787706728243105865830906385441225232907292404050556132903777663935415239330354748235956367195938140051798345351991099363121641735273440229240097984310087294531272781227802164096646118876730248303892050934807238925296153275023987331076651925475983889233978641694704566106204288181139005620186200043450081567432151897425845358753339855982503393748360692711720525242854759877772634550257739223582451676640090830614965306116257281977400833626121943390580448824148708642307726297243465329014988292521271215278553033341298202289354089139738371201355002564849715788990131681390164893808390866851447384269199777974523984419054998622515513024677326396999210626596219554089009125873264882740031810177717740265890416457138554555423547510885456835305245929119723648171409177968192306427965716080881579804751084314052407520423290951415934817284109630582087328260692418879569402376058546997626096092477615456542070686074392072482078268925262218515608527573191507522001853225031627765888905312701157858222212184440986863655077126320335194595959270370733250215495587292568137823895585445887420238572667397459981328949042488064770522039875234181740479223095445409129594762998653000877600466182754754220313548326476890713687831990092584022198752369862208243879499466260950163336154553248542938324880688815066857114317018781083697948680620565352208339354758185042348640377673131949913787284795823192439236943019715601618770761274745376010195345472679433153247838048518798724080544644151232336572896659410045233434499889904872664210013369547514277014150525518257087005845157436834051312869286585869238573269542645663225138899069258041835648437427243554410814518586998694605064499715879748400379961331406494354919144256855238630660903088206947781108341730702111506362441472727757080377293036795508051992061640327097851332704532080404808899008677351807465513228846450178179873303247780679871544553833052520956428943770561440516915501980274584997708000570542125185850698757459840086625225332485793947470289645216217406795018500312240241829191784423116657419420119148065991484307633304971893239998428372399250064039669219633415552821184538512225178807099723213271091075985126196695767081853778565105811435555175713860304356569449561092380516387407903345371983798344872269943748549161816247504250266925523940634654035133931126132556237511093113454505902870042576553129602102617736264642333772350479878994646372481347518000778541254233315084144387130276615921173393165742631435808105936364156691481107879928167593955373168989493889977970043195229249209056454985970575643696377398435687757745916972370286184132382170121715541919413131368333363054530878079785842143861216318828071393598858136866874583899405761505849379575354687520231859175062286595030368129149348715016116996682618959101392245670087318865154788703519861721779747780205793633584293956523155574540398486907927425485385543337146812363136725755717191677082992200618719960649844608453139760637531583581383890268700282033204899185314883817780497640073353745789083694204923115215059109591407763921465649170961597420360765523663767884052629264069280490156893858319516152946693651041521192021409264061987887276829232499466765213045013329392840075025273610176946093118795951135787466095352327348565905381110687400534332739762893798807417173368156387213607812723891386645094262533226549591775594515043863357780448136044475526416583672710616755554362319426324239052072147880689850559882714187491298203053055457798976173332816441406457723634700462692117125363066788605363380003432978767522079950019898411067618723420720224413547518248986235177327005490330537500178302812704898017538520164891458317539938558378940281253214391576501318800400286981853337595664942843324616845306875818614875961082864395237723034080412377270881773248213414988348273223266852573945816202721358244811444376376637460615227063902121851120831952120596410237603059927524859489470908084144719844876625388498611835341659480579199425380925580017226772285152207344743327836611321382782500751364320554714675414139865858977383209453593426521596132385745960310697757804597959420332717063348669334741281896573175037858925550450725222770895809092049808453768206263273582692879971077528073754643528138202576813409851477092974384971588860958037540444159094404217532806491195845246354787136281504624635148897340160895120169750277954000296170535277070491339152020795855178076052568485188527673114674214441837453666605079150507972142407120605456506967476895733030751379477441280862468046473622505286375681257925552105434299096899874157629797339742001204572296982450010917552765276456256839978703933140846354876727594526380963273570997778740671939843036452432911720315320018667388961586388788011158439537114916778309840081288869127509840012717831865870314536341891187194394778770587107216070598272805553806964673603576316069802291103525562483653386360711645255966721661837507660067278136090836292023689188179360758202082095270496025086997767334422910401935187361706642177559354494749079755720898158021633137924186468570092745904731078845142759458123029207948387227546493551212573040052376370748651919092074530345945981427831756232289231420504836817484208211253537899650808864902466946610158246144489454676548412495879724473218418194827494998747197873575545866533021710687506347034326467731907255746771738306393429388394393964460919237383968728293128941083625357420230463531158973037975243444468722823877845626242609843490873065354893576235700450343520125203377766295921061467618727775866126544729138476073058451396138376682651709817502116628975886865020704171617293083664263180135190426383305372241341943383684980860277487441420154882576400194926168907937571759740546010739929843071134683723462695435465455498910218663226971125425091866875863823058203474990287631954336647907729971186480351845049119055890135262421682417922953024423898946377574251019936222629549801992405642885347696767470418237037738488829466151009183155932844330369448368882187204772133390601080620386877939389766663924515616322879206055980818744288908484814361646548489613684230354942638850326487543932218376664968035711123650294909020453360241471816745441392006019685844166703906055676778446498040122902326515380297233581361442324396465128574001689300304109366328915195565184237409163951369978302679553712236567236889819055269715996213007609183833752085387522676491148763169549187429580832042053896122567831637971194270134783670912733197879779944944933478208541970721751315381920573722854523105438336266357974655413590403035960378444762310151191391451737840423986808988792204017180271736844729892914847803834534563046233707594565210647507247357207505154723677414149003882570997632982248635883378488994265636264327086935001923302225951368080758752700889492649585301063086179371138099833284358124226612999543784680389863488667152231834130231152142245279385106246784507768192475834376991392264545934273304695062643547249006953497901305276941060954712442771301147203858120269289143174040998282252983562890500669060334496497769067214224569580771618507005717171253147818935397479202732719834500385418549328570900974548078543640699244921642996806838827402251813000790652838736393712930409810082428435717617872507246137578598794909000733142293345108112947846844178616124504875769118462499662718491817976515749834066413180379684759974271682036368104299900876988713468086392475859029106358316353357228487265965112277838513695905223408717456962539409316675365023336932448256503290781181888574211511998494608985496379648643397528338498216717602425154446623930080116167660482189023986670829103665315701368837980362763184343258341273443001859936002828668532397092024010378958102210382887794908243679099400637332446040108716516586928685692251626992349513136866852563914129588778217960912522079181332084671600778651497664743660384775551133008897218189055826086941906158978666266468556490102093635170178772710169428037383973390359876193631607025916584143096275695608518020470033185898514524988329297121413339281566813208926409742347655814987788682140673811105403759401626717641928427576529772665811774500179498420776705929767346079909039317319693865193106304965878931125576169772329654674401836117131050462342657536296406552081264381418297629458312348036660442106512690558686720372898165530530226769537682707194645001894329371803949678782805292099116992784191697223674661698172656586888401597905396344432445726949280628739607711446771925530702376942529535790409455916368083916226468223623514908082213342680828417139370048002003946834377058596804263449082409940367891409587691058283150493642258810163587563523976008749825536679660356269104650117005254697879649352676091745206571239149973975614208772368599091624523567010250519037438238231322116252547947477333300553065438372664579586224600294365350925405082994924497261304488226531057315716352128252936530951119243889565391184912081690935672236009665856092841819199741677171042572850686522585569937240301921647194774053740524282819496498103440895903125597596741417279709150656233697978434926835327971993304227828391446321943540769051521036652604868782352918453787834150740725602081851570382076028196162855541249510722432251254962650394806876718864461882479156951106562245244791960348239389804168020448012031209321769213536317173558409129452679304228126972838307584761665170900638727980178451346806161574903321626815173349740807721626407713557886843827571601877932987495386470533683739253594345414490852862117243216338227228284717036714110883297491476952908910555623695422658626590245226279501837534020294739724003732721036838225449238614556280535350604070565248264827680088646470869604523399689423146601325253517649143220592710327493008929067662593858467206629895433171800907185906439136850024169926485066476835532279062705520030101664364282522489650028496177679392258167021646894681111520205737953980215630120117304478456886281686672097819549492000256934382414758658029799882142119918507942452451485051292239478329369035487802842607897636496952733710389671731429335582939259849914058576024286716305445258310441318397981325360021772453660182541788512665983851213037047503271074941730143729138504501510357679195329268696517363201124286705874928038410043933166368178627744549996653214556232411160699989552743406469315468415624463261715929248418870406645713315189086000730230748681764623831541013560958916698368534149597553125385227394610312376626986695998006054159206671085249970810935656166829040685798232408273920438996447890373504221455403780276730014318128363950089188976982823490409548971570114420572319824415850676675825063518433093840729732322916263687287346814973301253363827447547593160622059172229770224589132242574869415149062481523590687732976183083696609175347609570961005452367877797978153057115002946802399931212875526228889818502367501921821123927759881552929848979807139562560338447941033200090390653234413633983491953848352517255404625684206982982442261887195508552169711027178916986047873980460109193472811797857107888477728785046337613673906408363537372063237783822788212134285073078181616341328650625939168205664109969217738055381717729101143966110697630317252949483073583398848397502952771237970646708838661759063766957808981488025637719163271016433926006222736648843008886415656493142477693213297787086607295538259712739543347302395983996351732320465225343789689908404848352572656397104863441362602914305452368648437314373175369795946387417652559451646878805726442340119322593435233561996344372028088417840164211855550817861649384186179948761947674537091306000396531620291153263436969727414730190897982062332395687722789890498787090956016258557886498633545866081429932353398869326591967491044726612171268990344337103284775513202513419432225399177412940092548523740657297526713058169353621399390700685180597438163152028273753923390131334754204685485598918547580041173017637868875887948626111557299524955688299634228106270064661840901179454396270057385612761258853098723665127619302023214576938775807466865306463804673524969691042126663756795192567099199660289748873447564027400979754689816007009778616688570236836232289177856470558182404563685467635945884002925782892148219128514127117339761188840232091212338953853024219867518278833464785636656595572762037135438959445691936032485106755470229635661888710141229183799273904669039995523130720722251795110858959624280433142303746313880616060260766462661505756170100743347644623733496886357671998501312672796583525371885275452972049851027192440577633239274672242335885173057622842400236003415274457690897843941198042061379958454856447735110140589567010525400397650410179649275193990807863619357351097816569492978492826571221064418298032719097853264060796267275490870603641192665463185314540530597396868653196855481272523661577838681331416681078722916378310712952756863289929268071642317787108250849310342235826667572108903657382348433656631084019401469941278938002855680155818974977278438161311922401115122814264775229212802716258591279251142901325961403338290585359970644901820404963404438145346751057199358568107136684029729111099787827148021479549989362702495597945992857951171563709121073633227806667133543223138379554860989393424544511424332516021379957760742059751123837903060527172096989046046522387671657002152333578054216876921689349377254130953721033295607148307589897118046463235682157372960267583988061134272802921677317871426907120789003462936203500322852463211487160801159106471528749108611335734917976277148867445527682037587095650329424491673139018760029194850317753908176804099666243043543042821389662709041898998070916936916937960092746314551482796077598489440932190387070847757298919469938094646360547559555536354864719122991748112459348313619065691623254503883289987326627926480271834552379410644644993213029128747360879204802709109411715112881438272602859184207563617414734184890221274026669168780428525577137495087854771640559407292459523986521086244597207222096770048229315164384803734396912894026250875694134982638020585148330878437012258009973982257944964595783150386722427593809134826649022243988945697540563055401660007364247457003823759661542546444303739406426254630231831006967041621803041089183330816895896361346154360440504556205206843864034436532501422343034036886970706832453348802359115521633739303238150329765072504437896228842522851614149510055785522692509928009008889240827901061562032061359955867309070846988093943397001668938660464187546672528800914457584397096130728100663535819485460257096658881343813160889927164973568743549411844045261877851000367673596847949222583419962929651945252690795015545945973997556693052003277954892044982767485326058942989807358640704599896661102494095489154904952709285253003237378566825412160267096032385104700284659392298329756257935585701639345956577445920292264405237453515696094670740717368436177855941599221932506533945007994521816033758304547000404732625705273311781367402114060217619050906580977332150663941100032103360350724245611632601054412276532605707074301625075953992913995962469089084256448704195110661511587361951583585390480210580991918349770932617378243629593692673755539756619212909815424534513638193725915115451381291442267617760855188077405688653001006547688789270092403815074182034713131326299777758253797135883649770657781933412742857170182456897712744263613160087503785128172297388120226882639676516112258942109341328147944349470991137564163991141208378854037566249270508754390965683197660400572108124934597865671582974938151478767852807171378371235404998071230281589223617084003187815591271530009826722218207779116339581432204188025718187727899922541199156474921586973936090534924689333028349239544384597801166928641327268240072847981471232430704202571990458495961995322306823011143905140686603088240751616163417934701136358348991341474949909019769209505255305280055978973413977793053589717752454577121686581614002908665490633892494187579697075086092709164447181709021814403024393539372182585440784865293705078393577357762113761592022836224966353906080194983763174375724856202576975809900362824214755378205064264953743028952666959096818478939553552989245015829128002251874219480354857031938453562353255071682171621634571842810858971900121542046719035341612571886819238739100464396772389132901824304171971436792261554587816243231214730242267487122639403425442648712522245643296203290170165070451248180477533768057794892400276439823395683912093961424589222423358921985909990429928556947145312822832341622360432762489557793011918057147128889295283241142701734605080381899268286728840266652664040002960114879374131553811468176295125116814258231309932082861850280697182436276145277868789887394790258867236705890439459308288057396462743910463821658419887384431144968238210272864242052332796236158696391842597844130569592467791529677537984393399587893480825272129061844824170860829811585505740949792660973206231381042464084488568343853260459602416178110796838690205937827887060060887441392303129248717652942578276118108822448332339260061622636416021435284614184225724816186733099179383271063869650460932990152155535000353622307702974543926842772486663920176749988018949483151486614529355495594753673324606025131917054961380150606608308134178051483340966721442020130106862617693068840205691959662280882513857643071240029400003472860880619292734046942132185167218870214975950850415216975640288069065273297508187959309633678567823057441917355518142780162045327420954974650139776056680799488714091403621062352293406238971473550692016704821042088612209262113741040251841533058670260596636083798516078543832686090341370653552148410541310676820097970019133177483807183354199198731194671813641586808780685267512987581842185976296345419956597699866190842020957090611114449086929220068477334589259676355073129106120070033209238451809298843293643454652819653094596457780469949247436531057561617337636703267963642330512653603889493952239503419202038430227431543387247279043246478740217620500113345271682565250980022320128746344013870189642036026947348032459393029764619252641834044795626952347935189856211550473963331691769559640960598980480816637124660437522382932222397908132814416804636923941942537896371403546746156273793348117041351277831094812649043008186033728997726373548355107856486556322103136819965285151046544641429744314013716516717102587512568202442832462312471699259048721712123905560452034595213572973719032474546324491547940334747446923738926197698496915634160228932746618668656290441019032568535997111452706509177905579660645388017718790176610502435913742896746222207695696012867825046348374804175786848170684940760576893357051095711809140683528875365638599439221543567118305214661729674462346739869099210655941783451545300089181537271939379244604268649911528761349800501202321883789704875270745935384089124676162485322876307067715729598103337101172789250662855551349800984131536956071262248356989954800111638270017610362555187914838901091672098116893620443421700426053598375210418159913224401212868458658235146587986864372844008317636116088530234726819827995937478958829264509016493176008992392081310956268563924752884126399693136807130052726149969236850719321992107640585649963855827695026582045224442861918533722137584397204164270718763243670568479914343580744564248144663865831646362018166865025428109160962093810214953209978359636321730106501929846259924337685486188250655226051911022957669636347183690226005889183996422225879153831961974979031975916451623075001966231028254363842016956242791190433350623920778641684930769765673547441286288555995165714143630583430724270967593859880002516750758589215351052340780949532451865029514256182073088107438273483362041555737778539903592246450390051548400535425517968647622917286248320354463039038466387552002412446482853390091432917421972171931612807232935608495715652563830164623674655616554174895902365576961708812195038960792008629238056447762848898457022477826184932920885707403971616322493112182858063379645521682514709802982545727594182133423565267341638833178812925305491466160896929756790734218231790761078629170474823865539490200406378112697663809309890011672045777561765126531662906537224807670724199026682689685536772096930058523670857463421705769281975340648378134919989361624207290885704055764659448427417299864725767598626629789553974617198020490859119247871914731487199137977189514927521372768353963885218827071673335029719324423826268396588045809485775749156367619491018610859866988435311715846526355906486526691536529312844545027477483194733152717343698345340988189844432112619365610167806931395895549757562925445032993568062822390339866917570531694436863979338102244027976934385892009069773125752165680190592368428482320483089746859371015888113366216959019339957743952915968070505878165005162603548189384412355224384082432624666894145446642849974410285827760105966576307541691816256803900300561190196232516985447389950291657150672548703904732346236473675072622267447593674917439405889202252118056670131804074120414145011166152558149895593198651710378955414825370145333296674125032740867629617633859471506238224295947596731378371661969631022071898155170768552891467587607538258856966905050779373678704471554168018957887421178200546149875202124547781815820394338127856012510156618441112123797455345037843467367938541227083514485493147530265675848409234165331243870839641907117960291533720539615202457812950121109765603007324912755760577227807013143450232154145993379558122881683081360615003035508212345713468710396528488015141066137011223552775390824738828863856607131513686474325790794407333514133733338949297100950546050760930030873974813259655799443343793389191418314743029231976701836348222480963656445427211874460909417361062060505897359132804203567658004904175098830436675411675507485993640929074456225245777935682396563560577844910713887931063805019281437853371870750915128398206356322955240512710878272815787248542983353835922078778754553377066161734006524216940832013225686657553298607224917414668782509085563130710068925253496120675991194203245494494008829395129717031747117065001305282548253013002654853413786701328404846371647717662596960779448794987187033508384031637062963793124548160686395400831428925976888306104162204541257986455954202946829782927731978916123003554973798608111762658781739130371856925058030717270722757766819400413521647401867584162102968474003813378527592459047552764850556323125138584873251616466111307727826114414455823809734167299332092388020831679188924420143764557699194525415551961863504331282793072953548271974330428827258503685913240529964911489025450774413385672180693439769147887000579132037707994991085247847505488501665954346511147717033962423761020628984442074032958713580228590651655485814239205779778139207205238417075020452786181840919588808748155674208917243182590855628491301816967522381006629634740545117177431240143670065963340136715580753108611612099054464606706888589182997182349453802860117839048639571444554802359275422435320305051026941336145421617119899206224079667364573815313166458434711843990827951699906277546866991078350872508922750165149455011942398723866541024771448013745610468529758115937414136088440495810677258303736258176991430110184852083341834529908004197242143541715587736876700901726484930502243737729576856667891616131494682027639991917446582821347731266495924995630875863449501253860713927747229632805157640680250996437254512805324392969172176264046856043806528135520041723750644382584916465179601069793362895599006186353601028921579900412152371721905926458566062335887234371448774901360013614221013107856898550884335073498222724440403993556570119713173582615670300466876093149059552726409942410724811173606377382404042167161622106253927386425377029022910814783086374351108492881456218097714618331808067824324918340363516911799851008479934060740145279288983787804376730802412750382669687617797503585939391670800404036343610493073169099165388480787203774411349790775303556076009294541150807264168286430014437934940578603543250924466027106328201109239711150244859272008823945295058311713944196398986049502293509277376489924925182708734406583742153550673949857783551842623983986761502840809261737170582462840144005263630976631061117055206873123581743884364523991906775285798394065035801278084975813542592122422500687046615210632273101952581223946691753629986716374671697453362140253948709745493760849936433292368818555034214317954168602314207345771978154235201581885599261564449769459876662155357696771003993025422802717425189415205870725040838672477945698077049573115608347679962674944248041391870349249294411435370354450057950546906835378518974329528512626193379493550920964686209131447682690654952429598928368086592402082914562736502163562464873508845051556327072527721912231743902797997117483229544204645380115938804019611787286629279889136271123260811609548752232969203245552085251039974512949511799647211238158843087336652674554380808891387253491760337353682425401585538649817006570181667489789731697251543927488974057837321371792042592055320186932218837797455590388997834142685019849824834911442545488429667047129576410251653363405344685179189044916519985448009029672210878881482968318665712639313529449059409582646437212835411454129412793782386335371889841575114209266157469156258427468357360725352199139724392759110860176749619874816215625635293372663575385829654092577853765087873022146092216321305527558937624707439526322541481821039798803270807997818944910528957901227956124329604942653498193575349488412067799016908734508120655334977000532346521816986723298474419212554058592967373544553706801909951260432490869293417714522855342357801048336418404755535503101769793821774942529240057712085975815833714603786219943292624092989738223361148255580173548084539192979281482899463275857859287687353635530659758579560268468787049249170954729521013869344897107327219859687283776597728254743620348401237966755807114537424062544109156606005980465549367551586768318840356834367727259937913129167178281472591656641953284873235669901964205718645639867837838034113752458640379243560540223523681512849766959779240647837364062743169743588653846135529027453560387571489329311911044417632877876721337794256551858478592889487546454084486510710614076250801297549982518334813193201240554588475552368598746978556362462297938721985782914886878139610369165210854747190653045809356860704819670846812205817955917418346120406441857635867484623827671647261486439872469976867925468101907277037136695668411870569458358182710271803558259663762228547321521167876763072837496614726211999007481118805368879067163665949639966624551441284574508020945039197554811604146468226149755821470585818147039228104104073761412793608858394601589983913457599000714947767866405460881151137199917187350448172820817022388183125738904892907502959653089509240973868664827954646121562149566012219243166561518594787775134223125404243792073623792327415481601877121612145603223139637331875040045032424991831867336641497285336884986636814519058166410197912221355678012781905809086931450808270565184232313471780479050087378056261683942064268102097274538156180476351733786648064851932567122371757582462592811271983139467532438296466535643867172462280653614116028391886949389188493574678040262496113499666088613512606402305546099549821497519488299500657209953436149430564171514008146204329423963878358391525484329184907915119714679360806915764546545730622599767841505597153809146395873211392085854874639515062765172904101985049342835590194956672381068578852153287395136154357237165647330548799511957932618926183935308261279118904116263455658765809360365332882388156999741418458104182433763419354308081125297871507279058084098942699681732352785003120650133446890525702231190025078201395558725882085090292430600207237539242073179738898909347409260323762706057657705429562020206995729843218430873013301379278026471348378153694071575408601993636588000423771452695661694134995356643840689662316405638414944629944541347799961889794881276146033215172678844082320901560269184326794770396264078324183060898217775555481220338320190527822400296490475074238026618063130865358751017956161581088807041747975268876457647661063956167899005358737983294013868847818073074575651363708280948518212617740061196506177067127488699423499215434168416446752536617319215329084830952083967796470601471301803828684779673251850401644754442981532491803008745542289836059193059750918409855261728991672688417691029433296323316889609984847253721057487737567497573972543523759922914635543583556622466436198955295983723135250987635008760728708924358316292644055520522181189533598367826540615567819409405985187683807881919697429511819758891272420054303651725059521555772605972304248320157713959887466243561294592367130423612428687365049494260907475004901524409564902306721725500357136415161193979309434900025362267265430446612382434747993575570187394975517615023107020813849129636684408017794118440698499814058856764661206953943888002316698060947606012221761131891925279017351902134810299789209327566921181876036180808488360041347087864769665573933564530816465704515134595492992813257015156714401656452303537856607151817611578893355022421491302807038619444900259273254133021222869353861445530452036767289423372812619917067826885016442359789657023438602651636175692222837968664817407815144762951964419882488444797439188574409488473266716978855276320333017340529757622506802487005754529014245733246428228258658994412115213971868230431354059433653677852306278726811435546530168489147935544457236545279303175951165041876045379270086677974281731943767948577713096506090535387918926476553894337328801853524852468890117183149595719157325138126075539602397587182113295805877814388692283500439909162733666188419306189698876599577052251206570249772562367820742990817490646360016630335241158234122511055575576237512859642639591951943357009570717538893636501137963260608353370266593003233034453191219663591247347978457880006478755792125111151931293937866321799005796195815527110610277819035002472192992082746925801939144144947686074079844102293585441134931510588861953805845195954624315330668883535419378988397620770930422245828938191505837274609813111536502687606823084375338965663439751019100691858582414323463057455532633791880139463161922243956725508915537688064496048458577113982795279589124553931687673842318009768178549410701978334490373573344393733801114234437727032788853097349344510152358852646474912819295071790213296076635006642737244673850952702144222044257450800405192324110164013316861757534178482639176870588712165885376570257414572002816372452471637910993651279089572231399544418843221690019990179683770402985260141413032136994345489827464891666346495000727058332202866151789341646295733047722880829033599042870294782516652311165348876236399045942532881614587142386300951023130872544205808699311467736355760135256261677872991634127921863956779320334087030309042417280041595692577073388532275774072412476683732005268909658697607934640235497295990395338284730127482809552771189315681208083054466673972836411578300040363694469897103699256091727757103966081641207341510626047910589085038015023847325930979933749344913081250152542601540109917546730915854361470892473276300920364106099462652447147455317632880734303099393689484035249721961242888861537195689222470207833976317878623154119100098422336993210304699629644156191265923213553767470108813788260550471071926298665408326134370263385536220189005510659414975199467093678633328828466865685333372090335282805902067640149634800904732728581037286025550795961341351453681937861867168184068643013544091764050907205981784212620291903404175091526366455667376734330688752296951403835499837953809169284676149609439583284774916138690525037651212134867661516017557125109192653153031837416007182625611998658794147268340144002680837642717940649839853178560016220286241787379442332714468270679741241475913757265246398646675885593376834873881651516150465034337076979726417270213247134565520079980473740957093970096852992713883530308152922541937138193071492569089684423641164448710030838285921442952231712775118093630391740101913198204425958922422185865669068907752457615565977535087559293494145484552335821887069073823536425767777313699180715937380474434258901334238564505820456838809820092384924492646780068871637598450449713762894609499811673458792802346712198363553761819500518993644797135429950987381046900737379317814580581018665625251306760083486943889841378971675210521909251044486222765736039977756418266247562696182017136696119984386515164448856895345234626530733746854963567405005403885156030928576234316224584883778037839450364396781325193123346556126267708206437196868964126754724768435105135484148636223099824101398861132144530832266143520136775370395036143979522222070612168242642686722987101529219062121399972826479344687181809191405864036196187707529183566353251069295175184800437579017148605393363486859029050611941709489274250692148923940680235042150415740544588902217734805003122524877476675662653731929341981607481107919376739331403949558130527806436360759209246951726638360742760376620541604574689982715182415262308982368277748096073293986906776608986755065754657031778066591851229229926944798374152097623110472868742002800402233588800836460508102992080766982068032076733733724678133054535076331198645352089974245610290105920442530251315915793337095764971695768945314443271729268392128785560538269014416926435649675463319709928108021991303956602755621261974469980256077848016656521296038515754514143653430596749110889963059478333438708720953037129507515159620275705047380278481656683833641441964133398918326137466671110730913154131000554345170175621998609020953629298400663868638872155410670640979849356704176510323711029674764124539710370818968974031915466886880969996293626452202230258114298263454118217416657711413559346631279465796130480913367433328471221696080697585928481464479051935037785800245629179753849950493235849012341121889948175505791203139168150461246558966675520219783362804466510186872619864469252271992439045681697005126413283450611609920888100595725344050627911243141177719207150226252557376311544650161251310153827287534204193341508679654732286315651984703683261006494720126139526515898550401207439816290388216602295155412109842947816923416633954081012837386566718744389010528129452413313378402379197470777079698780603874821892508524449256016433955198280234580417677049143912188032406087479142653604081396191311133436758121921641121756097886606002441099530705715028646640916176018433290372898252373828938487741183740767430694521721195935724136297387853237410068915972943450856972259015688318361995569982968798318245973673043091238565641693603605161912501399191351966568684629355068831064240806753602415976414956153218422647436987319850795953201319951970646577767129687413255148234755857253069279893017016721026229683361668618142987037635956556358437309441073123202477676177185563014188098610156749951532750627741746528814665061899611003151383557470885379723264322294880344078528119295636674584288862257875258414611048218180207852023017288055237274077187114946453897291243609388023702433551797865209299918403725906033421456019472305586920709546366128404232160624467210248770828247908625700150837184592066448107029908992085676464668090633248292578410196244047486049151487279932326839175887883031478499462592810963972384455571389673372679712260272900012690511679800101601596413288188259677370440253540927803026314527397449765332195676755746093805083229338190024251684840232140272932411072996928089747309970611284553190583216517915902533880683683762358744495111862181825911996155056668103303877740970188200470662546350618885213554176467859076960624438391619803379870093107616660509099676526406013774779802422979556794643029903004542098411509519275016911553558641096789039325844636033391111970286784018241522737107437138680057134425448530003249902747501518937822171492504623018726080203642259247452833289006936104659600508736834372015637154061921341706525756241922609480552051689374639840160503390584445108173853251195121209098799893865085145650690131788790049660030530490461214662324545535769076447972512577688365678080799547861739375466698004274689670615221366136065011276547009010077306647913111529126614869002058656008898796236565634696707977640425175990006249164730365775888206431013089624340389168034145804367249057838811929099956742079561247528410170598050204472740632957159985593291437413513643456419380685675773951153417068006718047907495762028988482584178538571604947627992252147254365043429501952962886361427254105758260977469548171607585817595859243859075435819124472241560780033973674887919019460226234786070789343543109540917244659063877858821834378155085662499549075796069634700552432816337654664495444222212927289819774148771643274860046158712731570410215616562382031742268363568446799708471702723873811840362817410451037070934577849015475622577141358170515454182042392825180710101385430387344700474970381868413639653430152682787467246203363267846179098413218314261052274300487927013185484539925244456903770602757715519935734721280028136175412507724017145255831429358182971040783616584110459385075940447433563641084279625912896473293070449022394833242356233888510591444466405690977775181047109642579851818776131365868719306525909778898789229367965157766581289083930719076314493121552574639698142724587036890594136213489709038376300976014555540755721785657793020371647415435860518354128632177508852706042529289504798816811118279103445855875220825115897946862736603065522778905218310188397623661285002772931116500631406604354360041057041429764723655164939020829585898496326004552328621879234882169053200621157247760110906814866283625623490941880106455311256134329524572549983870607263903777011684140963895244853684115883833205040290033463477326167311241533479488587412907695586292196405777189200541443237927811654038992836176711625106051018395378990151284944203761415512758814565594717885996247669394898043550052565309429012284659681974867009895996431441666722420123837697778701142800448472832914910252000639256226205609189572596835320627176751180679248291575065701906705747301965301364809065284188095590625523488325321031968068096435325024695636759854195753284639697571371401111992092092010362086506605657246375188550526686051259389728408057536624595554960652892378435638521330832006252052066699029848367533226644883788453847403098425261676251097256661066146900597013552164607733594450320925017959998544265545299952765198723749540350392557450451130266072483272690976290965514511738979834221804205815221504547692789124725745675784943047987594718446412255684889539304952042921722542938923508655208035093757366380984805475873411866038255094419626954795964332945236207285130047762211990292579678029865703969288201948730288355298132153041118585769790697063404134706869683266330719704497755610887797152469989280682956398367430531189061879037336773077465661601775888712491426199623093057943751348454561189400074828545563029686704101441529614013693757067059341007182598005278259084338382959581219990664718133677637055696182820124804390458090732094116104885093665953778570798960475306598406110692104835403119935278665158122821701348928946346486063339057874648745850754254371536399186521930334897721300608331770347989804842631211180684124621907967468149455931739999075944588232345130625032786157340003387501307192675894838349957740940066314778814691674208241577650483578149909414596882707866948008740383126350657468698402591523637478579241016829265888602739583346515847007427156811744346291765967970457521087157728902893900399225764309340371409841169227383397762695877092043462634900032218807362915085936678721404404974618134875008243507922821487392702995121136518376957324908504700208548749639408929985991526302353431178912322775777432322050068101457008694637163554052748164741906994306865164740127133070991965613536962860440989822197828469025096624221862328354023839502141271812053780771448432919040192834739181181967126255002514760289937512132650220957386457763162295371458593832226234729327172682423748667701870583465235732606511473120171646321976354628067389619522369289358520900153619407998732109875347167642740983294584045188285758352136364148735716848944213374721044671683287175828634468236303637010476776713840804889681773838641138145823373271952228416327794669683535855905356024657776172052287475253376783811821726019757498829394966073199229875281416620361572313330136399321134857824806944697534653034180815675070536103247190061432883925428286632692930532248719751105500415791011784539176778345397758546771336147452183237822189649707346718326701522186043711485420812068253909417457637108800262509392645797463807512227439324017952274151587448264617161922351020364407970001741003224118602219155372753010923091007044663015156185359731470496915410981626625717245595799307878588623868787913363195232714829186789357946328261151318457865722532767961322769458086458900272356155917635106811507731590569194643971500029238951127855429785722487054829219199567965900565475782529772957977405090608082454192043239651831526962497811804082220597790723680183019760231876434090486885190243530129994091175219908444193359733755481555960007564617325912868632061431559106965824417832950808778492495030179434675348540881837427770043389668800069377389658479017665169577024956129559184456936720849454143660355826655335268191093123337366538586213856612168084481635230242981155889477885450198200135469341655191847622789270380987327188758999001582075277969896313067767410304032028649671790035134481063920514727695545971602526203805329617370556245492798337804563348806083074856394939102587089108265990563648966660093457737337566628902722751359499752894229508292973549827710036520745786352710598817310964466240386316920754947580485339590376357447182497857751282405930545712589460258699704918317809732807534905961983481373378539280658505857233699593419867767007232108063803712509860418058451853399428789341923647151275671212712550455174301297141764349417050094874960597981991462036217004988344540379516596259068911106005434570543076173732118089265231856887352986491847453390199631503163808853479783250201895802391350052637165422958387206337324491243688334624188341563558979021704183882309115716219935867721086891285103089412199509321596641046892352011241495951526707335843651409908809179267965710694076672213581353262122353752027266944080164547110760470930071930315454793335307229037450447452653915261809778224958815873232290275165707438110442448271823771759337853499782907502657000132023625681836836164786248948192249779129021403214902680226309349698195153622134254332527769816144190350244748107668628771988244061633644148468055404445701997812887429989895642263332057762267486414025426771525491279520383739709011495445889268186155029510285899300561882711080730951508249702746314137596707001893163821217886986941608758598268374874119496091760318795924771101593800441589893490387945291451253810061059116099235458176404901668924885564685818818136358990593883637259742958316621781373283664704184253226371922747354363072024019406915420186032532431481044164616437383269314527733243887389531618694905215537940508610200605697873533686329070894716416866550330935455209769647731130535024065077050566828635415078227929607837668610407979611213459602450555249371379884197696704058544090639864480272903824296744185898393236097875889903937529303491720438328419315863471786700610254841238891962347018778562964675794876958947351054944548202962340862982959760295918186493602321157417395686987705397196292945444573207490447792556960100371959747726250759248641923238658851906301574485462714485897058381493436904417667159440718854720781367654186650969443497775024222746615776856192163107471352937769186862259498872626181176761371915540115896876729124706336384039733745678301255454189840794664843588102664646926637218761151811137427046348823370422227774938646018076230866572323883928125401301095554228939698344033425957126743114862430851743154016950582509128635000270398619867674715789553006152457423124842051833881736052204480267066900417647595336549783543184093208517779401027717062365249628150584462551652942538085722131966229398370522344195371733419353607641177503695905703570789741021126710742027308473981991399777241794331704357539976033614857130970569419025119664877096003002963854664386722363726790621633968494971003580414148608239547623714623413196457114508904068853562101076041205723303692652049973159373915841358194859608997658734516185222986391217209641380387954685012299849229236495630169831102244299762669459678195690535401209337964816591651088919214858364637140359412264493250520413896389993012112679115797448814218434722324800578581123684274647886052093458859184595610480420075609725928810666215584387069317155363952680786512563062881843501089961700729289058580765835629480590563164840750144649843401782648994194195060871376391382998229811927967639673163206026714807127459729525858415221342292942832847499267192367557293399259156021461029196971515179370167071405100722134499386646664511404844182042725980637684538637024981395594267357981379184748158479229493310014393076481638374516408570793928162139057795211243553051431321318965870229971107243885492334445959715964305591787203718438629406759631467284212372176023405409826580788420290373197454186742104019138477955789467443355605128936472723294941148666102356335582530761269125734526439490019296593096605627993491752019106680761317453726866900398477950268129092040098895103528319349892658337589488964656676049626216860645276496744780174989967413184076540338640924124506812849789460536305819578202565705407656968092627191022568362332142956018543350725080526945537795001019823931483242274594613427441212496366560322991970031838481006403712083642542288453215677799998040049691474941934225360712454725928079411120067672601924125638681644612712895909302362086984859966093661599440205679659210427074308791217492183254640109737046046752435811790267739993645556574372881880114479867265673127329505704788628211824557039855318221038055708239123176863685686048170811142721509680709066912721648696415260674553737395011683998300623812845247114303026694106615514175217627620963270859181800761925892353040491452679305534288915481631056878875013901512921778026529632368388318739751954048404905657886168154360389504470998871535823667415514291046102613690050499602852476054669631174612068193095249792551609434477322334525699300709241455050513394585342110106109392912322461971705945136215980621476557780041784242815759267893309307721915689540597040638355024692355997043855321783087797913078719072984476550150702597917299215918860568312947495491435535497861515675885389754503059339627767356365574080195957896203620035100068413021910286522325033171015764384753620091172008663163447535413483445207350983638458540971842769296227658948120700430169018052131601696337483453534787757347639372189537416868421166875865445683856609727136060837227453212822769835491223548770838760297396347836542226266481154979387622485952424510046693100589336696967468364503029352352299061826444049618670293193894798297463402125897992126969581885626088287262757756808804687167302305111470649734382888144412070469319696617106316917273925388445415940749749965297397494384635781402112234042675135796277176886942974152619272518360142113722707871963770274399692178798816198717256424607664815820003800810077524142224317110594886437162593873530138055175349866289470798893405438131777282159635466031814035681061333828335954912282657159564466272107489695008563828764532266221361506395260388368016194868277117454908685827672703149166527816595646054515219166774308616821282960292539116962376605870335429980145266310206254416847983959857793421779419836781234637683302239666102022436832470286665136255300904477654162515918126890436121659038333004754040078974514711376140142015571105506392618227770903827059157581394745327946237499571860313783184971650475197242784711221272933002954131440675487399928168332565596404905193964759648721309859058289861472084474567736907964095436010197845561003301393451599217080843768621323068514596744964607664542147621000034892108093067635792421023135877713861385149194396138712413846905488828094163638478856618056338267516986107200743558661894338835266063240109318899843835691899912468416359384354989397348965086545746135282398991925551197106593904787454792120732110847443829711764333239915581407173342797211676682931364924549122438748389290107450082982818390424190809600607593874126104363764816398831166711283576371343675871063756191576674596730479994599421330818207913415037104288741275291569360325140575978134800173403035055790249069093555576483978608734556625066822408510535814693352693717683631367572943519155073383169456933268342955632734415911157782420703887858751774519085407261017488253949715827904520918642642165039504768216032888627687201882528185276312409120311127595982221313775107873141897497736168948944597049630293835516164094747112290420264261424349164166794052902589689066671037659789083998931810277816003494299323078650092830907680904353204791966122057313509498949346134961517485937910007804222841223929174220895121795037400637745566246952713582101482728770797227727848234754506693763084774295194293672992925890102540819122176958861905287828952586807218486663393472167712987662864032068330507660288590663070191844908956105461143497024799205405897525145501974890687517554222682114020676601187111497807220335847860754071582597856402770452678481451011711052461460681814999474353856313163302114228453463932067382298591805540591389028863395637352657776602437720388370735129361897387684832226485971540689146614708213267066365460371094811976989166566171741957620789436657955455913943332499010759644301935086239385512123133092132156277720706030510220727291350812342563622453702082495983876176332454325512628589234235207183520030472387480096742107405820753905660442049921986939560865396018313421355905095448661323780860615751879241535302642406972641399803260715940372304802825389614198069367650368469739371280839497818405295519811494893499767999046451316097673659305427545824771797362769474879908342015735272227607186808885301340740990167688790768178122135050014276112636043566909904272075048566310543985393797585403317086451609014636098263902376798555840948513898175598189869237539620268439195305826280497915588009031131847592106858396567724713318391014152855522627888415446507490530102856910860484380086051542676494569046261962515803129705861634241939283038001380983903190463356290075430003705327092234528267149980142131799261456080090613163776552967395012801102877054065147505231837424943728158784978577663215884105153223066823101045677939467908330408633512417934579020443964276583210476670886401811501212395471538021439814030225947775696580569802477114685124427510224688593871630463637119778307313253045057093648258843710900509722951811175460677274448633680112020246511647959992012942049022626347855583200108613545968906177851560812322599308068752914889568844313910986556866497472671377014259969307082997052053245111299507548082520321409721487303580407071970330510645567798967314816210420049746013927776931839283987093726786784639536671933499960818121978384541816762970431993959804789180779080717108332970433580035786471552004638590995534042553082805183999191454063237625012823066128319336808896941670438847143646640098898871871190113835838644227745323350896047400087884488686939722187062428945569557325602619544853334875406810628696325920839487133211092715433674054068702374118063030133051970316351363626309208315227349217078761017778474837323116656135599332391579084492848406737050204186118535017566211170829098055303652708858311414643316422477817384207997579282845602885732741174785438436425219546259327715263153086219582302804725574744216109663445496889797473792947831974339694898398394630476781652043827726771612168540777201416288643407731612685450022036192429738779877795428929770829335142825290884514947382269650559816333669052839634577714248066748239213576043782460194573347538894850509756127793992283127103598264099997126037831885335674642921509717745100619950554892141792680006986785521963914096031326330627998407773804490495148331441839252774622385974835014416650830026003325772065436285239956511776396668312811881583091769188084582470126035444855210883196102728877690965042226741031837345289184423571998556779251424348107702117987369010557885644300689718778455601796498648731674052131135451949152449047147017077791078759106368948963562764817543149507500310565400116145211035310410344715177013978583471414218493487113874659047413859946275185425440590487390573108939761392740335020562039538057295019705742676301660240092803211727276030775135560525832008956077327324076692688931102928091295526799788123384877967724781068035463312258172871098320554930899460132724531814550722482241221381258332973951189568234794862491876209399975188451327138451087431057493040452157996556809994734068369873479165647481928849452022943928794156611973344892967153965628157939816045215981454014284196061739245694566281783933474062651701756289100463838426249877079353953774584660618754780155891254973732131465026392293852851316835728628782113740354214883483596729583304477965996162137209448007206522972518902175607980330694359652405673792869501278305774789164265557135177301866189361475892597208209760417328675182860610835521589235915975442285803506366051169541111587044089248799473329871830417782290957750947060572309517342345092976524993046056738387857672287905680812170532695786218899192498596832934540669968351758489563918678075140501170356706019990060076601213851018737036203417994043472789899982309942811832753452559285624604687450513193755258624491994986089220850589597494717528200442230462225296380095610003467214252142255147830842451082532729809326754804703253438210560636121187282638978468286288165557112806555325737726142203622206193436267818557451179476251604252643307315177582445102866884816822157653641324371326946421894749655088080023859455553816167477381731780346362000820461027060676830940768175722470923417912298147413706042990508463784123320909122495029656378755774299241813931115826204884692387752323898975814784043921493742388266024696676741849659371163126719114721347033268686319777620764425479275218240454626318525579082723547744434367041173062594489570894265737157333732034713930053105716950541802587159434552938262296406035253690709778879762383125894820566066937578191143546831664405537115567284545673201639099669524746800248892159319595152821112818294445883790178651797750094198231246395759918648431172835611866880023147898738629657065448697657019540091261767553932763808543681420387590695250334791287053992632282502307205161115959747643463765555126057881359941977620585018459068120295349592816006374275606702072260971154565205206107092105282290480843819412063491887771057860934481716201637010676104048578918420959422382038648717764170553103785127774993229251640435012769974524538724144220388698876763246358237116007048709715416215013567027765190011666696525250853802878406268683605058245226587034102917548099971925433786109082713668735822464928864824405401451163928483217273413491239449172878824136751002026270106521266894228213217414072251663233393155096202224657759010717371621376675925787668809940717500567910637716222141434211173208220419871730853768188756715205968403354582031967786123094035191407483150509351440984256378774889591496769699303318789108991465608642650231728206512423396940000184143189972079947379920946163294362490873152762018700023431895460500488123594910023850980957806203914503712871250215935643676658269172157779562161253513471216181207752672804042103642600107225375443904471797798642242924771644767733987911121440703448033087840054403452495205911143706742577634697709204557040313784626359664136884623636792348402300747167375063169811142665097210669820321653399665073444929436997521678689241158154545479203542383948399822764766617851282693578960350128893161968910453071989944961286085654156489376221336152388961343893562262608349930548002882853383456293530007858866774284743063264847978895168735002038130619569653647768721427418793973887891236772074667310861587421507323501558359431699660383741460575648103038675708170622905191788907947651584900353460826837092045427182190978038248064644587652654410709485753964592642419537511146167223526942053661731584119779430879516145242242343881528776298593845473899198697079714237403619366802187361345377385415553131024145624279343706007634585703242063076232799684770515124258837409089779558028543393637364605666538869561092116093179523172433108398853691778542943250064480435946987049230562704191084550150745727862790741982016942647617602818917373184373303400611640105674768627058362497745282734487303235980292618820884184390648759669529387803947085831126446694008808473954826846093413725791877020873364142728175175304061102980355957568726525131066533336495993814080976690034147787769509425129924138161815295949907968084741528138526402724988533074357522676827555777637660026168398294852533310713213362288073464340966973203850068672532419729753252594312456195784536304090761867229019136573343189946621967040826458300302811228585165058645808594982696192170349127442618808139366862029416774593491679598064313060865399549898895715991937590326022548900841596268087293741660275615631569925881911563359724746920312269134391756900732631496956125000611609810110722675513643283336289835893518703134234821780351492180751924088513915738950181986933113555278385996387046690134617235316120012731261878414867473177039103583102625522876741378302062099504288706099962131414355281207210246049816209272735206346158409009517551162855482005725007960486081360881531613160591031770180712364161098290848247200889705400606207173095277138526957040564968407942713763689904821648345916313730597803384416418088491386761635912599651894681047891114186461632366927545105358228755504777161669997647996998912109949159404016502194660056825577614432899741473717117742526538373145664187621871655632279605896605424235274554053176015454117889049736924009182417671541634428723131909188212921631478927850324829038921047139121895096583666674488038412793960955436256783616633787079761885689472561679147433290061314854551183019823396375233683420571946505933909800908017745379842134202069389322867916973388181955818284975836373479028481581222755963979664021004427278972074268957517965248408072762503258260864862944375232596374386002571631352904320036613210703911891249595770776909735615879419221745149666194060866109670761966485183755131306305585096441511977674476316854075929061597567608290515589984317245163789424546178377516773635237090833529128042872051054343937544030383437043780403789798089031270406786135961132125324777806676003584596674549038811482917381874714379391375029444232727133752060022600814618334200439041424828941897540571241372277464804408810928986527126920196593271955456754059290891761052894525996958258732915487837071472134714928818840211283768340807173042025424263149415787804071538244314016532687750027478873876264087028237533592836507197021486024301155963888580454483185446307299385565791734162413739622607795967787441286990534610993970259371399942393715029295017786365122942238564106857373622237760189575443900000667330117972291046346705100540057215979483860074896215892255243319929516232132653685997469410616771894813970165693175621788606030489665145113619489155912727124500142830707644607374635180390486548283515834051851145860368952757960779979402776810586256647639113924237787885917526173768268366817113542001379883618125265141983375196049837845245530626886249861354345754248331776812961420795230504696066676693135091250775280195652800113075771181726368678027738486391190249211784481080265902726790203208509946237189984822805620954468005731379993220040140794148233384304267179188695688169950709531925660115569518747763865955651750331292703692814299241349616253974843254235606346789990550881916094495645752213912525059751066287400531413170934851491611022517160365101330816970282099194823244278512604678102788769982583255819351395621875803261312041946106563235463960466920704534205464431103077318589619166731511089589433856251229402555894939023418263389646896432065256681245675030439815227277874801748784169176300606752713667388007929894104631295176706397153290970079114859025422425183884052890666629954583671324134625219992627181136750150478551480745370771002325302068770561056612167539607655329840194841227783836721374395735522677613935500807960919700301282395311499778800792043515022117236020367749614631516909821981395547903093705747986033047454971688899082952584602307046439533370318641805180516196904482568182185930553615405790726735899464331055291229037043184966495461538442410181849798429297784331401905667286510864230032745584924195615568673256108037426478922171644425067199359797647031066021288515013679396443036297695906971826017619380799376966821741480721764435283212977782503460211565496568780935316126707492377955367905951571977875633676146259491473852138582399598485738563057900522736899837914438345307317884237565393646252063718321057977301323910073551675989504913252837738155546993128124076802382213946740260226202643476886042505160928900159515063162067830715691652920648520589008777400043552889387181934139342148899227806430824066422118561335428030147729467630244434794918843580618238065549127590365453616658491850374405495704360244634089002560323001065824256735946672607041766221833464883866815446589608198797752326318129725333193811903923482699177839088801598927992770066321162400612167795249769157176057244896616775407663746565829607207504271180422961426759301346986316272084253866410899641155284600521238048759804276313557199647039462122210867059023318347088607671081551497349565309802829929657429514171717565508564990833833139285422108319874533651452444107913423829326992355086424521584551924858939317733129361066930434308373873969155759179163075279367801378063132683160440882783113787417263409279145791705579194022326731968602388399896234545451120045244551418006095637919363118504468952148057646830347735110273220911773828678291308550446980241489555310226264753852432146187883952043226703916271580795739800479395399246700935859377764311157045548082583261231679808058755620378465076184988559699600632434487858446059029234466775726470851646101565238532151825891559664586046451495364407354385703098913994875883913448243743223372619826642914667067619391154591189421711219370135848411516614438277906870018554266842405512215691073145545643727338346706729094964139534609814627793552164364156804442599744501689504431288327382278999592051206408075377887272588806895128997358271862271417141433058244237770974910990205278072737520267500703300871129590098480398375202470541648007936921060686952106085375229851867848542179965950718992620381000330220630492230027308680725058521305486524180926533348818243581060993399856541847665632668571542905548942040730628562917770552032215209055546148739682417587593717833539008204478516739622002363342193872610759407296306964802258485530728553918977682274346736183695098909023160796433635883730447532163409732657673369450090246543339938087508852628625246634847903202551685410880083018391394042407971443917521490405297135571723402761023065720043714187975204477159019170963598496060955020387963690961659458950990179765493585446663227614093333095874065499363782842969103136103712366252776446917935675643888937275264431629665354534008712784887653854612353593962956536886632189989971643245596283999128741467575074716411126167543662831569897234522340281490929783144367198738133814419131166729064171753257113797140291692109502648007267556451486850831582987470597466936359558820964914756829613080952628366620074962145976247586425177897968673675628027991705480859274590352542160620547233739749293118231850770998280733314252233069598935788789261875095743215206739605117717335530325505543204620736452396651365833809054560864711955153633861168769523486500605865699069585195581179379857296423738900929814698967371020518040614926599165454041718511727689281209053841293646824258988741509638383084797416140481854502078408293696061427950441356494595729680596049413032035910770941228185150363063334652223178686009526944354432337341866096688588488617069074439084579067203534897140449116386148599153105464089666032846555472629934055785493007536825566527778947894274122239050356542436896640283219072736975720087474302242953409616815490412820401393665730479412466955269032736782868761269666697333725828157742900849313443667146293953316629211288404467178933542827305604983747555002740910552011786993142838872215341151880173959556528720909683525884755247083006525033147342936869177153233168587180160919083066804304064347607210839649135503729244484546215331810794368149292579004568136760146577973583582090125687586500164390123273277424380645784342972926380900009423141458880127947925723498147968909506424342724467172964709553779642419638416653918095080603485936645821209984993306030512724386680730488894315392912242559834921111907969597579823434898605895608199839404769178095474448884879953650528668088234207020208125655571648079350653678744484855762884418811899744581301834453331698035770611539896385665193119374999098485653366507592068244166290111607545507300087897506790024451957783737342009123724197741211974093498882874714762575068554475861245906766108323077752017907468566605861033865383747117101056419369784238209333993079672609447998273365859207831031440495984170046640992521481925077396255850475307766718642074903347259765390066883201843042590045499934959128933771030422054279276685870467929766592081497619948333517472025915716895383459058536309728663006062772171813534981689860053434275827116495128518941953415439197456777301665907599732856085259636435668198871551015865384447160298567583314381327203510799700028275611873077055615923439040762151510844278244966691450283704870956172174016275955523042517979226264904465243605331388077213586842396789810876038063011176304125082507934261695671934586498281344266582669661648454691817184460836056510093867657336781342500414133621436960431369936824943377424526736452843159558372118493926102126673822258375147543388780882625658266607577668171683430859919106440604068911729266592879374467272285758445353643078182868325660386034515027232467727791650920741605623349585512828230136126212550032097564339894591251100285087434029754580254138990917029178257931363211531905249760729585195030178613652121632052480305978137800391676945203598909356592106742364322410655166259953032349419327915890410657744025303583745434042789206523802018800256591541402668136916060181123551519514238554051086188000858744124006951338793976967611795050885628153403987318474963772209064774920249396317871773486758141806775683278371098188102272246677033587618460286678234567280530291277216702295689043938400517049579437732659574936018147016463590165303500852704346392815294824631409505450380141940888484876238482471012791521305033915299946945833236763564282560100302983851583608103668781635915496804324264800638524486757748617854919878152658695831559474045572027863415884614972387805922917328532200222262413088130078731828866295322660488195353655075921785434218203225552144056925739254325930890404134014864252035891591318497793059189273274067059938205825344797403706361265708777470622660536436615324717630673644143954630504485023852476608002023050826287623644511256739069763314076408764835182925877001395781271456773077355816103831463465194452458789191766203553581213799059272760706318315580281791038052505988292351191320521024804608932693761186876266032706631241356336528552280323001567962848191078499258485876207373174122300940672902820005624687357141234149388348773481847550135988499440235248787726364679220593656817135916776331408586523669555551248565944225845941496158396445394437207383931000804522123125473613271983140108651560564266692507920174228359231318533988474159504559057758915380984550204256846688470455376202192826546117017021221025169456326928889810924033894046790619331930170059690677450382930607475187095860230908383681928955108500629940674830546945501810560611869459797963069537298810144714588761748500647968880542227678328952095492018777328961951260120590942739278140788195150168524274383797378695750704067891684627906220269669341947960733748856619876596626122785735770662219543441248931115554114827312596170731836649351359734080543309621457982032363786440072566001165390307846930277277867398606789355979440549878793736494815753783007830664946625851872884206116386886125959850602125432955982781307553575470210365185820210991074577377661146171486342907605749300715887330348982024449828503439029418656931275262631285921573978547805107704975745769368348232941684906107131499780991902513891538773676080646371045319595362632756561146417142801657045373432695827292292069163609600731774779044332431902899080274025233077431070214542827488444109244925516451138603648833170341331861125598782508606015955420648358552201804259854651470958412885086397192375005804626814176002833872697385192294595172500729344479525478240803762437077234810899074771217101985752028667756110169116745462639075147374314950904582100378480721741871422142407228806081165392853826129701494821511988754399022445791748643058634349746506046699012063496113531838825622676373105463031382170650317641080396807751169634373087016961544289094067344946255837068463814219049044481874775693518781301627090462334247019771474086468148521196625826800398880290858631607348603248997780947085324654801282722011145246576850589075104394160368505435674371022575180636831258830691575431122972002490291696032818924453330855473066798361262974273753436707596051402296325713571425338320699416363251132996404342348304133766389408569797368285911541576660012947953354612929527169164559633303946448533945854789120583157117841042935664246443081965009363812079562517542820824458872153088363050006991789713044696825821538858920704690845541809289325081239100689161710092651019152588637043272845160137343629055670983538878550971871556777202213013021038956015797810867564698125950224975942891848501628746637721599560262379680302063640715326487526832187840524664164756983403850825197455649001745299182458481948249887722489106757304045132492009902474420163645800945374864312354958824253104849706559633039245429542326182903918395334070551865672369866802235373093210941717903216212640040688233563315804659386336835283674568736971240330308403913970758813827713472472967227971234260911996247135217454947624651267573290000136523937258228179634370739550234636184608035176864606720816929768238010819569474731976765837385770389291999769424898199601817100746768356832138521197755248139553930330513401730466002313097624895983167892513831824600322696507233453402715743913417238511205830822538218052783014976172020111531371286815848962251911180050066881355250519943624888654135349312931631445376992372780908581445362239035506398137985239509390483087829187576426310918603173873252720660201655223159608137926626634947009577160158981610771626742592731720072584540643893388941766428666187263816865342099297390851605903269993439963403356955165986139017502626997188509960309460352115006935498458957031779484576232333206278240331316101561936815342477120160196285060260823425640823281580802179655256499337961207617314626262421903728545365383563953322322949799647804587136154995404981222528026540133784884670272241855645942159555618651225588366303277518572828320394077206491885783200592478744305222991247597936204606496194229756367401452532510716095063653814910653894955673142539753428827326697117641991875745918069101671077843082389188468774682635593870763322309347671428381569834801306346839637912219158163237879113547874728304505669518141095562628626347795787840195674918142624335614526035461277938871088715230726340426335963626129813323551395677141175828481470220905195166273575082505544112195980851285974615446472905556760652710096709354614702199603978060325841081346856564366632211969755625570809859748393509537891884970969271666305875792859424416255013076885338383396455711485918203575251011612014795835492338828287208991998337769181882676891388486920309891344951201933435191190783588321737188873525300283127551093386277098614643117078952506109829208523334385254020268920197974539756349726664553616639353200902783497364005621630298832915049260211859947396835531118881828000884197534274859246126770645927657374901621368643616694119302545141027781916039148868173957943257173517035124612589655718841991954066411746604428813426371276399389882320561105305644323757527121796551847882502886194230473165399799124264274921330462562175898727363392355598119481929182379558105252715122160015458100650946919004984286320555125119034498406363227590413567814372162348306487114818507864558252775509018920823980540565354225586347209827491505292713165501823375134936208308154300327459786288810867779583121496882516579829181951051532210032774350070284694088097142972417753907153658508255686681244483399120654356382201819929804697407410177294330862990273513688030221170656235862371527227185764435019454276216178866028701105201990701655191979340875456495458641824657271727389576773123519172516306334961423576532404203679332344333665919317875830277953555521601402281248884960672139293282641459220907140137582560683820552963897818784885141798718313848783628713314467072074313450746597157061873558193228481293033557917686011692477359301142072569751074095858145642258581460198746895762760984698926574590268635164078269027430788773894280090747919316331122948907950396313634205259195471842107836913643442238340536315046918259965207955694753607340603483846485619820308595703724065292683428594868769339577845826287706932176880126549977583996198231222128646612397799716285785870149499838489212312067286564309031989546589077919687422221324871450425456636092119422739904832119579988833378107901118225826453898849721743412191783160238790259688627962044237948712258810263057499898951224232044976260941843761438006264488583788909970134942941400046473201924651206736006276096275839595763536381221247698223322449468874813757137839745563596549241139017530308937555861425345637559378395623870035760403847181093800780817353527011907728494344800914850050600615463380876874876969605531110569399110382736996824980245483151251333025044102749209494146293676845782214765991337850658335516647277304652699083599144468992189243745132306491522771552310179492768794350179019806704864262860265364376826758362648361710549654849423658715965224762307350075940881049904485818444357003415605487983414034679271541993250476190738632034914514891066409543935318050915492776579495731535227493027316091862775572481706295552741444428238639960764152246154134402654265950659019770215184966068869958536653089691418214050457619002434611844931322987487534164424951542500085250318734293657213955865627195594458012187462501882414667969179737427584444363857930797120822419506765694825926612115069801951534345747661540578677165621065047353146313220709483283689773704960713608706363456810669463413507162296537001718633072848368681332602011567870343637228349634283303367449554128541915032032889799566676721971649003933376087701223020566046619275770664011959022526766939090234359408009946565710456994225982318630244360071370698499453739324789398613020902642256593053593026930557454369179944322039672468896510418581685613986295527158698388509457376636138397650214047107144661275198466053116997841557266097840079005772088817580581792893220589393687541527814658971475002164565729745411394898634306735413015249537579400992170100697875098843435336302635035779137495070880920265939148434116733060424844940771716507720109995635809131695339403727339425304331762477201040477268823073132253302991639560142986314179755546342028511454023889317364634061992019804792872476417040157396376228309465877362617529935625723916500389463388837963863726500792489917822983579645734012910514716656578878126599178204943882820153061577181373646242816608641958878999455213229139996665777763345474881925823816007561551383613314145076354234098403575029490666063020093090603852958452738630772588946057649753560841231124296611042067155436624028153050051319822910713021450634574758545906648171664009060177827357988875922076506373294367546846057932585540588892036252402575501514516365835733860235504202704648408641550954490532165336131551295905465453194522843787300366661457516416010250035040086723767012681794231645009096600825545692228707428249236276628921725525785155813092573904306980932794415184719017696435373593296633004482290614866099119019375708334067962705841252209784345106562464107216977969566638458282606184449125803600468625704300189060690011903077087190762775014829116475861260450724250896976558060431473723232172770154208201449451752329935582711885190571531884592756113827531777662949405014409250537947564298392010055293809318526551694152237552768448647017156253905314071223288909436477824252016178905725990208079991624833638062279959706718566690335661471255298564491688475842647210845203747715215188836747629999030291845521980576759778051504655427049100957366628588577435511279376154000419446659956530632647250574963587748593724673658884100811394601842594800672299570716840430165530993859161948445723962603993090950738113533030110180176514259428740201482948328182167174862970821414373903239007568255745302199548557965798433358488941326075734736988414392258359652304685131630567804260405474174477662618075978179212498180580570923815507484545074978556599569845631365062165166838666085560374476394725567949008408085475239564194914661776996055585153413649166922883652496064657318315451604518616175110948549879159201108405325119451506769408007873804035407398504310700133897613810221618549766198271452299928822215680592833495635596580835281737447790767110883950274095223164455711779823610977343966307232095564717024525697347447450426912546430931972599393767778498464797956502076194674528186552371475297151166593505053420936840494998703049453532509604480692554901326953805869766138218104002259728677362946630597219373637513775388562030673009022598775124076709312043204686464022516171979500574528928188119940911509467508686826773354113957836418499606666196964273401624397012588113076860590857902727411594278921359211899025670010585848050978248176365741260409787466598596425068576404507488552206699978808458481435974214011947483795772768272285936427010966911352402161714804113596779010721023432368617846570121826922910538353794475641903787717750024157297739057843185153537730208138351926122805016518824964136866870111487802921498148082438473856338254130739991610213502882088955333056597744847373867157700674223166617271613164966167644767667233996051356977896085819020992484477595743212006398519510003210533768072743470218909944450840876359880638741511345729933703541007916918927001263567916649101257672931229274218558170144168555007653389702773159068777535760983646854594902531103589928004482597576319053910385665110244695883420307727616015548693721778379923692202309806722343298430619050201278383862798619839922961395872938633594751923272138538715024101965128943405033726553462725701472652562031368474688070826880352980637045807036478857014487644558991710122907943327662860618964541130250744550967803924453146968624428289955895566197229863929582657472584001272767960303838180423040014849506163616544566321455081975892157852616594254584526834967771377967996870647806758751682765696080615225503024673121015707429118686637371586647161664287777268565987892960558620201286003140919058709113405523886677587651391912016029970785505271858459726787961521202215423766819971640542304437573118333055635366710777921017186777468037960026632775641081670449204807542961057661674192358561344854853705054123499545700608892126053195794402440599452507098950527149497408488103665656402850642700737308490685069438524168987356270385819533896819023472713752543361157305797461547510729030586502947334941367776504876169122045043658737587965675895149352146140705009462363585210857267742815022293134942876753114536227693155181962784200441578197819599238669076659093320368293998817396826858865919320049101606101656074194130245044400659301218425710397062960109122104682915461062793243246088550536303304231902677565771569115916190651542482394026756507499059762758690709361405222514912999028117742250144465806091024075437336237021594663241655024623445193614920777242796145767632852344942577680824004696977047966950607448776142669745085174055530128763416641126059244194908529748278432606164665439614603784220735925423532112174932845435615378624472133411249634007749626230719086185210763968096453941123950924891902371692132638494664698187342017782222915143833160666055426705774436977479700179262971713576629828205049888948170073751127663291173717010850101306662839777603467124271586116051306642369835706150030288805700031822918663992639629504825079622476846744692425172867957234687771223141002194290010955915722198753932678280434383295383971658854929959426249996254495516668102244141098330515558900090120149390915064464785752497898681003665722375687191515495192437558203892362065975948305833405980164812362408574972842361913354423202482874451200699631618291718049516732367294622537741001785141632344064430436882221243290352822845011826502226244398845893918568825551418136314787685540529111432201720830264005077605620277892049714521466786015763900582751862246704324836179300368075474283228286252995320931030630273248567868441346283828877651152367345298910495813855313978435285520266378550688853130136365721642432516302231933963565114228540556030567558501372283389429290050822140065900272782949422826897441635168678073173531247269600562391284259696014826421957622688319845609271584981582077647713133629215398054215578764355478366074218712942320159608191911279773683888538781366719101628979796583013199538090071415520111991841341918521516517699711647787769704370131181729259753522933590583621229540602992816747311902230910253832766287437290636177520915882868661131124849729749352583051762131200603308599310772704027394189368407459611271918935804407998056562555925957574991662782012369264162134162517137492366856813362520167589362058328683023003604367430005148805230740314295388556516186068219214295067906637179706348091561393693093672702348046244270553401949571630277423332638866576696689471806781061110369400988460753438011431995291545978130584370358671298444651040797521800667540235367118038218936646592400251888405168912687817335576238275019915059941521379591584638384426745038454874766281174023377522809396441315903210349060258596634775254028213185153281954345610966529988887429886206626360402114294082222463832416199223492514086954415927855148075146785622883080124628526523551909847159649206520907542654348544715430489482102634987903593697203531527066809054414778655396659661933824406349374983500521526876613896209544890601791357119802724830572879645973517441369234280777695366533912383379241368227143531125445040518460554393360786468037660326808118433846904306811971423607590534551991389406409197051398357742781210766997863647490717349516073102638599069203228538474865844737128036895473581231235385282552576135755179137603512020614254639037281577431992839136146659977187047832433343712120933914694240047644384059663866013514821490409086399842861872336425152378356212380247345303193332952314208672226130119902594621593113388993032409151329686525869788237353015973659401032347954394657818391925211620196698955004359665817265148699550249222873876544486393427167203610879923075183692418703437402156808639566762835854986430597646005891875932733816370123809533081509613814216141769255385123156260707157040891992489657957439205147159021582245492447700473902595052272129579850695414532928838463131984374965933427889418962271454750136664427703531743604954634105654124917320252280083860407517579992015170985668942731436816145095738984475055731537812732277536826289216118846476427013839321116584754796663441417730406616537495625825075217368980290934751364334728856124005700782582013440118137801531583276518083291876679496517019154035409912084391352074371529743510322660065046433139747017652540114993140340414105779158475061668641652349562586286394275576777612542733524048712002989681333299491932561187702499354406072706551734288008757431794743619823052055852021404755112409772655002216899797247509407418753710471345737645477161061967895046586338141867848538215494636579407853856885276620430645838950092453369177766300764875935607669099736874594027502585576050891346259068997225429311662785424684846388782312963717674849133486133600805662352002590586896963905044503443360691709276158416764442808650695158375366878933221635726617026348998700323483918408796034750823622648053491471525399397475195712448792885311750698196529239876672365639062816039735494020675239026254704161625445399830077526245515583753482842420356311716398095542619501728768492278678774844214674916901008117825733238334283147318704019762290017487984890880136880496203309878222559541910087406892322347941136567337592961105065773041919962243945087493394946528011986621977077729982118526159105420244357259060841750611144009561181188601868403778315011248681324627909268114427142165109824528520192411284298268679475644964006860501101898985064676268307352471165018807637770916532368259763755221604046083039566608990813604101015155912280916185983119383170794186445458705074145347905514008228486724502066842678090238653993296718067008247882115179009130365528531903723581086964718470736741243753076902971225792330283265464853015983700737408506165495114816679808444129366201450404888556060668386497869684398537647727197250258829861649711204830048152911273211541367792352030936183231843281069488993342484828865859917022794145515502390386806240162939082934552239506933643345026910191559278645363298562966938697931513964743364718514377477231737538090479532480013244862533650562613070764613214827455259032036084049081487347897561333757471070891003752492258125006717865721571952442569469608638398080110371591556787686681527935095013630040348512587086487046844202939359934474839379556609720616467598984742527487534837101578409282552830641859682230688726016155514027790094033342883548802058860628112464362283650987109498127981251971553748666856722297051804991845096775150893939282869434974117260429608388969264695819711915212421770487932263082372950690500272064529198029198172676259687707992437195597042636409478872642833854530408258960293296911142577172223363076185244295747873928016184605468029151199165220526485277951644388917831799655169882693253607889668859814770351021204509635668661617507813767322108057837292782401787788504850433654941773809623624985757579709237724141853374264308287189543562966683203074320998103709928912984724775793920389443916687212181395081941058893978036788297004482505303837725299678789859466954671613624224928296289121618828972084019326365276388470974011912445462243306608657256973679067756920740130380300749725200095412369277739433676711188165146044036024144490332864241739486432696391187218642691748240864240070205825862219536377848401866005877594466474526014306632219239633239475250676325082247722500462511958280702436036893577793475897250504366074071029646489853966845028905386303156182392485807661703742363271823798797974222867073836117672353146926766877119597821534443743582676678686830638489174741727227579070953604084690757147431658780011837274142659565853743825141709684860363856148217858363948183427444855789152337231080129599802397575739975769319043869550559695197723775709900395095115185420048268631422022210716417703176882778040774258965618695954482067878962717899758078449646604516452692475049165317314587772769588932936251606235158875197366628615798322814960689294509311259373349157071690999211972572220758577209827628475368664130283203264577942756165415322731748446338118743912151350496931968595506692400329560778719310329164689323470696901348733651197106622043766166881625517839796196572054125892464276632790257740353021877477454593254657425573060205216150665892932777129455596143800800466986285443572806011955772370066021628459332656574013443834211254928569395112732400172597942411139457848547483473458865281256599680798919474817167755881469659549438087412481913330055000258707319173833957846851484795752793395522707818326285589150350729534626555758805920701832382339306033147189179101627415378820488815466589168746966737836258683051539742981268669067883306092356469205437049672729654540304714768958689471240304926016358279033396722662027872561685309740447477121196545178927368013186224403038092982382563067825321301414794905759963155966760645342187840266645487457097136223782778955159555044954419086543646552937264721254621530262802054468594313651293181918815329650511858492743780594862893830330595494772140738996676819448109325953526707182960001311425560039131306665084648276530368962622692471528699279689761826306943923956055688080799444741465402584014462765304933853578205543160038282077045688799037776357573655590462887204046623571851288537172811066206144263744629147285779771546415526152561032684189208283440819486517901474529533967249515805188128965632998259627295242865401276273628683069617363898315274158363378395599402250790254386508109122870469867156347742546033498521826554251964743786660264615711018778124662627309151542864962822444353583646448669790925859033215919535949987447474034396881493797061666995258758450965202871256228069039207138712052689184132946085034028422128434352750648173711255110694697554776131387925425735259479105304572411872189269998571748879631924395701574885487722517817431716870458501143214809478850567957978031077806844712024024976203919172817704809551276071179296276847052127005476200520963608146624290957581000289729518695418073135403331059687314303895790546109456184555904510028718132370210202597031721944989627338933655136172066287401520092578146254342929910295103291803913214339235542176274606221312717706931681655983320104576377128213181135608487537969080149925519152138921354351474166268059549351006855127343062782172061921506566783476914835407359856995075517082892607423976678049063693063487779838525849665190589876185060053210139260690030905399700744528539438741741015625580879718040968712164501786897897743746265013374815424023837797432189466257119574506573348691639248850245469124315389274463169623021584236003977161814967707735477690555619639195364654306221055426749029222368899674693374567222342239271661177586163572460176155731124674638502770270352661686186642067752487908888471037998190862455754553893357658806221405494939264510786909973326368447179075185082794727132881630871189953079321332946894190635807996779735436909291155261697956174884711567264884207090390898547884147556060844960725296143607190723410774863626242117329337355154911420346072536267696956140308865484084348118407070320438974412347234296421684737699029796411280426272813560587495297882005855852809006669120423460633617486545523847194945168684629144524998378114606535781637738111354532441877311549717393030763025143767308080100733672511696815338698705806736120571658521456967443847971046168032994416569349739174663991420072651455031389446056261565059986004950638999424779042192313284191233177360307962529796451897005750643752816885283334330665142136423166763553815102844050278983136631535359440408377347927695115333162171682400108867610056498311493582545768267647867584751415106948839392504646519101603093598723144147619715918259179409841293836605872950212304294893601575659247871941882785700184216300451484949502456454064677403097917154274365913467987408580141910924996524419773824239546221161362186723024121117680254858308273916385850008213496253854661813325053273476887485642162468974282104089795311299568250441337269779207512449438946200957170042468295503654391628528353059534950248108925380871245336310603964322461410952747464351292955024667312367747427403655832728272173489869881857152072424462410777613479124132379359856245189089683704951068386342585432505605890450012892479936482407937001916793108789723568918121999526027243052394310040504772379619288172054276593919032718700103102701429653968296694084535222979769996798918439145080346033708260260079475239342717879869682491441715522244272698912862642288542038333899025319887799469474119224678052863082971530173638183718491842306795763146824871583561004957465721381052920570246850993455194729767717887385303524418991263986022978095105298922878321742490455772435738787553450736751137440333279720721623540381494831752982667065796686679887608391805084988011669941059001643463685985793793799333669610613162077839241293158597329201579818168180496228423488106156027704161781546312054104832172545846432728765553628015648373134399670153843450060826319972821754435337400125935974396839864675970525912677299802951575065080930240157558768077198242890401595010478596288897485776267547552264718314463277805127001981139334376106065627752084162842085830681589567910581625770365602809875922634316261148873183273405992223407045055644756746609970928471424909884870371197164867888472426470883205552198509144405459341946565921077527773515697911612941904850942305981630654948496983746245412974181733928365864333777894058731954266706315154807165837441520926144188387227868794205887414205795355472911055457146852816640145415076886808360657496763583153459070335687744257708343575707259702744334654046762093378404367888348717716154768481155809798949788056265351824870697752177266948219130259934114804028611291362452621589632462569735490849245818698356532085085889719696043439515184252381341055086980460317845821732360736687935711901372309008774521982020394109105033823362675990547545598683875539624374532268839600977126397897579701688807371932319158527246139500715817515778549429582070401878464257191230702590777584331039949918702078218454411385124501943836000062511757347540541061372023233778112470233304660319587900137013534550322503947248630589366395390039822337675758659584273623538225841014721827630364850289652278618544891611961437895725495420639766517225063409846002811361224337703416167044162837139493641674335442603165966858773897335849184795834686748576628911752143461824433581763168951893773384998861533382318508905570040135671234844377262006494727189452091786484657293143419743461005226539524175852864497110044203902918947357248330044170587581648085319146954961536978144158387739167484333646399752496800305847233679249461431280698239210751100313609917141500505685082451815269015337525766794750575030377162631518420421134845363551772446947159021769338666356850593971745218634003659380809128258573134682755926064064387857850929633933730261322042186939597214604679169701714304632171003805964433837077379131346606943734135979178413669100879036812194314338608239680106777249384177782277333052039431866627576120031887245040669673048281802314137705996437999013669132591126832614297412461399247708463509743013478010332793518142252086817319495093006070230526864833055167249592270135928842897546047441849674690797468182157946125088482799572206926823538236330558987330725340253588617099221089297793702153550770499887280856870484302408174710864252622765812799713607715722192507324749231585480866237781117907849396836243787176575788577702787346126843585869202895813640796609907921483299028330028877880610148318296991992298210264415436977523597271985534893410901659972735917571476992907430021694201332989945455390419550515727217548055161799064009825510567694264441765793410425909520347279674214269058514526089189257426341981222530889116758954650043859661842916834935008378685923598222324029246361227259534844529656915813340587064488873689070408840239339369173616004973516711597536501630080027826215713876864682215400480574445018755123078599571830121482944538751992445654413902079129806937463618760758090972665156440237416508166268250948346742785938234602413994005999234584004965424737259738462164232540543857533126399919907631092141541269226140277666626706297405390669133267849209257443385209854736153816100474601936837826120701976758993409633596615129187880737299305837607719101921576293149431039273769256480058325997035860481394790808258941854009585200919753210091834359212231919196269539506982866156407932654432737006682909355558686637551259200771580660553737116390832556192148755827821272586009859084035058671896429081545718045731194804290251811721791384438515195268295256872194941352882425783485222223183333732814293113537339410513795881031298204952507129780526008384146764397372764349216058798108473557926694033966921748602613397858301986242218956804277679016791648520683251479634928048788423849907538099300112371482518747653318678740321876260384029845707796445153980855254186518530569024542857178641568558294989266314266036756059297182292347394488042306613975071619844287552732458161300487081271221305771664776324362716345241915449269060121084165372485968531861623659256434744723633185925565116682833094208772677671386332841377535064795838854909179356804746638901617701111984598482083369012299761884364863945344197753782059586985496330198980864326667731856917201192370316467135127131546349480857451561760125586376456690524939452883126335453875020053009277004958565387805117334821750053354470588358389312805398113603852773044173531153176224067827154394241174512800863621418295303055145744282389324585975327351097137400476351403327571829761027531679287666496316895953305753691731762125958005114236867114311842615766397938732860908181470226244617159908562985079564717900215593244868296282194451028737107350223920873998856939234414804508368989692461356257329636571011255742242043004833407986255205689053691419570748073435610259563048893425369627333962112801874694481874857482133272351409712369254056468035457027184995346865260389354368380572931294028298357458990239024333119140526932275298482893929139950034875422072040594302373138968413841984865436514856592046146505722532767585780267444451126542359390459984943966374512356138970001312553261547636589242701107225918621913469546953935023919889332982455137970209027747295429123871983487455973942534997585800582690983360269725506151896641999413420216918354445674917879043627983501582859253651954892487650401877848158433051719131902414963635227837732078035498660156616631524791692837187578921819299130270526815527140597052527032579929879680484853064627048378248807604566425806959517638152249945425379206621139561506912939686335520378853023729412040717696451283071367731948305136085658888873766492007285954005767377053096818570887056083373275540967498047052316756485829593875972509967186753896479898311259165716604546976044492397554165355664301941116272153534967678252100900830938390171880513264063107614084765893669381347580910740007173289195445958035589669878364208485588948608972089784563601356792266525361727175024467009536184201962410713331161435567157098009672345919680852552100129848826879354747443652588139461782770544957135517593948906936113557019807530412292158245777289453414261880890228778138908350743236460097532566504821471716594576372447167918430581607152860482239005643442000686352146829999729843891190817383285365387811080831906113645405655998380488320853588467197896414932714042854810250301686977115992860154889342612654274424573778927252974984419217468255745394331915431102670740017852520655621202785296145014281034230419339439029261571664572371232733283676254640845642590770584881859834058672217297895034882903950344288845495510453245995756070273377537717940271229211514433239464923118966582329753035302600170678037879149042498743823382241105729702795462239305268787681757308362977167680773580751140589431946065446105610041952277619260915660114543290620369964036141451462163159838135259394198655191302054199008880512538464670333340976922244043979878465619772652750911429596037715512149378262444464422043479184336451272278004285776774757649735234378175976621878750273512140480941432937026238959562878534848416886062871492200478278129467867536722889512194971829893495445883767224307412758978687512878305170153389412234254464490373312359415251696082490042302508371656306518048704164278548489441225937029459808038347668674347137839519094984329692007275412986690424497947358154722743589599280940827983251790540260660985899308312344213736274385539637267363462789532807915140990097436376086302294943480200856892344378400520183986258259418789995769366615885935037199797933326669853505484117079091060458385650528680543540522892097842332773111066741388919633698974959369819828175006355597925310928054500544532529042845762038897890531218722511458705321841534763441450780277955544711707062519785315994953637686363502175384247789758795886031582527141540909041344192779483170297872623168103462384849772914028980076819256115187981544270564106786602384833316959857046869951646515260843488262061384590067354856146124170484703485136457913745942972102393721289588736735870912783202885759489299170755050107738787694991399958482200526330693792038499198413452134544484700316590518460531974355802204397396312133298893468650665853861833288484582388802712194637606859509832991647097387226567384019618134877085248705546748953469030647765217684167825429978037103699944402410952299282568367627901054877831435157790305270296020371187090942061395931670436604193116441139322171766317091478950482859343263484860307870390776911616431124345489893200750032405325464691761883310266666151755865948651099985049677961067809192830742531151943444265876363537647478180828439288659364315877609774293163369664613454165173868430079913791178906501591730523345006341326596772404140095155885094705713039280703499884147800291942318075368277586108562428652195856692690461061288099391231786503956792775717232038600385905476536924990295490965273376055385890640384494854347556992950879901405256512605097753698457940782428676532341593975860607488241094247938526154447371742611129357485482172980761190313039310527687665875955862760707364606744969663137185495432945535846870638127186751585859582734077330174800261333510182576383336145447184735829464504032651125697280655681262993684624888894392141098247636721266674680668457195294341719938654030731893044143682865711497386328223295977152713416879471881155758681619829871496074147312638155555139171267615475834571401178082313551383610312529050192730450031082757184602220791932468374256190920812909467710438495057618268743101397335786463723719544283787847962848827117900457704028118539373253311890809326226403805464238043649062658419736012609625083910739751445133497660216551369143318216277023377945669307304895489888045679653538367625517832362400109130629238014925347831158393397517670158510424468266644783582110904171501108579508009560146068662067015640590619027281690057008300804776547302744260416722096212940877786176997879250145032638956759412228099842232721067995923837502135784821901190096578059500094877012841249503189280868982041763584807665062466283681292818704130964460240118841070205492029958996973247054447699179927225376648184406304895426805353291040577510424411867986031808958663976903575661212981548740475359332566045738465003939853436979803171057299116987726628688189736755081664117332882570522979020881744859130093762975438158313549236863337373780651305617196816882981841378526762349952281245651318941650081728525413817886621175833619822038599451679367628477163383271308510432835391885913548433222264001066555028197519253215563948715793221916534024538747286989098795775048562503536542407678932494750454192508247346069441124241558921258995854202462710044149494141928210775634651670945685750786496545726043759013025009023887004449617997672550349702217991699369872554931233652457381146686018990970388074702204803618945130782086150062975736980746309620811079939170313480525629382124924238476463281934442590181285378233377878381759677051212148540582818142156038835378662784991068228817496893110714509273710673175737578818313369970158609957490886980067613953860161529145297029318487994532957045219501556347284190483363961860234700947418661478393022700666798637177837881462309079589761335676538329382920802693607272234665561520888091338913011895158300481234523323219052712708653918333052356613300096096897554360768002150116048171298063946876349635565282415293314478917967924157032905530141302644338016426955383957570383425891006246677524839409092756324450682744576829406710866859527471931902260456990979281668535596528450335899804028780815243745901336302018063377738504164840258014626441632715816978591150239015201342778235804310858484351897390655367722335630429504618530595525103661567808915611168202717872725036574895337861725330178127897540594533311526800952099456739082018050316401576245698239775966343088964836400381518753503173522471122130511944752569778322922194250360914283064535295984696611394001656998839074749638381707245843940425892578344460620767360186397608444904749165145472637208347959968882090315952863299488486489087354219848034178815282367197579911863008589727685887115489223379153212675422763312914768289462062311729133843983007415228366138453287272256153637632106978494279010483360021705518465716487144637465682678507409631858664362191049455192120339257019820958028706819066604982568552781341522700960566426420117706636551221769009925179149458565243515897608859427001841377728608386871251684364082239631925553213953718762010044117906163864421065943246928086371244803616672564847992876891933775250118467621906671592087292899672941722225068115582538238848390160225898726231060757259615765098889208618354064950045133857158027812319600605693939455759519076320014014715866877507140381506750638094161252481819154764536319297750556389467120303860992841484007653254968889678431846253130223854556495564857146236829733756657892061441816168697569275320131166850512916526798638648499541458581157313875774307103037667181541335007077753394723476225885458668979870675316965378204630371928071827187593780042000785394267220240543913677433980592890184503426095153130018696600409311841195835503279024497490508534992367827280218241715055665196434136481788099345305580730938364493987224215656283025117548399881456726848397870789038001125308197195235805704738131718702927692163384596847060854834818127165150823869208357928995242235571821005289306897485992352984640880635996710837245935329550020934548130047001650536064050251022535101525887218224302413274397174938161772333332346130341093936746574949642406770077680007527405385211864953594961225674964318099679000497659419762465840604480145940939954320643136887669102528039791591200411908770455986135137398438049343205338102396792416376125894351631448222347954645054320586414540916085791286915937300297997301934956229143282213985368258264259313197785256546630338664436166857431622868888020819836090157120249244628923610073414593373659646006823230780801316255824053963212971833462206391262158702810038067734144437143694454863739994978132303099880869373400729220078466363770818671633772338808400991668055022456811816442362136720397698177042560252143987383602956271534149803857432122395166340368457253701222757898869144149790537758338931046483407784962888055618434889042461212023900054263382516625261721975728952513562919855654990635748697143706246461324562648782858742369614624491307318408174554024242050165872731552645295023332711621560014037454784240270653360595705520195964276070067450168465985375107287992034703162180484253104921957325894945385353166346437787037448489711627244927745235950152231348092062010880057071074617176308349084922439855091365590660912104801605576234365898277672095921120783781638782015005915374854091958144406857010257904045128186724509614925551800679685675190017678997502237251508859450692566245123737236893850177854065824797583602480340964514369191538755514840142453390038246326490903935137316395522932785401466381084784610867379884268317206112462601986632754015987667326733365798705211387958655253142435854604973242603881968312528879672776314362467078142313583676681360883271224324728792303782097439766675041226297977761772138017902907066309879307367227624192411221581774430080357273258418552681505062402161420496785973730541459347398073101411515457332617183041830584348804940494405142733138138706760256093652650743430394877579178482918785418019833468721155422907900027498862817152285600644305156481938086428266949956560496893632115535095818000287808936869203499992395517979263867099805133603010314533019859899553179120612976864793569492557099971622842760256844205087331906478138051582098794675245575281172959685246072734860776043117769263312366836525659611422330076021088720029992508272603656598188161108774688406619429066852203826671820142826062362342849952167408241637134177216860024804105606381934528069624313241380010547883675257840335533380570233754871764657622998952985346192833745201306188174456400046707530613932448752181646124882490989613391545354118131078642453683290309652658966655447109629185044970664234877365368249587042328385733925655536881456195156900281631049049300381302304632269999399746250714079305847717244119306186944884239252533890994956244397806797762242103056260818369531620258245211486080146505179526407533561512623253655642523323265325783107881237758691384303725040256330114185669011105961017705666808293980020011813907263721753421128735261430446510381157610313429088869403074227709916252400110867779327165501811200562691621432722415234935996365013110869805239284165979663150429788126300340020323706441440827718769251845389032534636613138051399112263368665675494685424338378986830272413930153577757334896110294891708575810209869582839737813728617034616357539107450828536886820371242297345156539796810073087958155119747168636768312002193876049491230643546741751677128321721993168651014443056282751306287911902396863829545080242436859827144826258419174796865352131469223405560251661283022244840956607190897751244722316758847451538893373648730794941880195959051350896689434998546699228315658023825379241943360137522055078773130894518179059067431198075334230978370977064076748407922489512459968777724687156116339508728085594507330061778180385063623733312105812399114374616067861553889091079468363256484876101479806513613055566575708128060490152426638011246240450849428649129052402879103667332803315119398921478245757427032793908168704962407938046785705192526926562084162780695242606021217594309864258228288700247644054196285250994377000877867413878383258111309167133080537237729875495592388445180600117498080873272458593785784359688012701564371129265856081671288777463020218826702600480956879333965618326027729632389548832252383083188173244161407451726755308598825149078647156997483729482644074237267061220656505456051061783645895868542762449063653276647919559148893889018863512408988508120802854608176170748714875871639897204404866155085904162219489239547167284234554384567108861711254083376048090892528333282363029069307751382504900281343861468077232832941959726006432199147686572833052653948555598495026631130181495771529231685926648024569265646815050738535405420351499744341713760693170020389739466892520254575380567230102036644080425660238502703286004615262699361002868742880979855992330322192846103749472724584367864408128079706744104549965975475685199215447940919942978596078113288116224438229682053863266605064751826239918592402022508037916780141444191618759740391449936862439325848699586524187236060554428020899070456580906820369960881831649090580421975541477766578190341009415142640719827413398654904496462633056117617968621007500300465075975512168319263410640774547554326223967125173385867411888575924125651880748654932930810725223431144660137941692712107970354138474530656217622200675074021792672195758739448128206863974271915661034092789289050738488701796744191620717616936923614287071901924591927420226063879893104455709891222711953767906497643444070672925502031722192780102102960041383087491982610571738367355180971112624555346632177095632251004472313051353508518412490217080447026671301260970467973617369874645052726923909073532808936619553712580249368297734347433027258956364508106230254497566875728416018352173665221581212200968147694607345462165344235173374034558719085459924923098447886028006498511964555951228972794160679711852740153278199206541757456670157489855687609350446792344734178604550593318166961328598787835080417084272818844656472687468839436044925075466289357936136846869124024100137375306033101961977673129373051866965151024279860578087469584104955493588143950644676981516560291679589055666008700256639208726329242846109517533666041633304037998051008506170700978469196825925946982492814612872524755158537658477023396055796117602863301986842249581754117909790043319878820233170640491275441375404487628099861514703970491267571683288901977805312540275389872837749344525902368627082876631082529735614017496918363747433456128193727699075388456282498065720538342616312286270251774689106486421362085348595474201994147610043775556960462693607336219297982836326013368740127057084233641888311903662706368656075798610581870222263735926362203135273223427247720675372268686304589155516501130671028370001612686648807691529117137096243342920661217707760158140158767899448998964485903469765311766556548653949317881219682228817607466215742921678815954394462793435738887549182099524780714623834756671474464203363419829363433210790934343759002437774189092305128812713800146807989124868116953191915752627246819937236191938555100841971616013928432470836385243877693297247703869853936752486693195262469126096260056361212241224165875272738302907973318371210555779492555676575776102959712750644623568789643871359528079786953019057010087988781254762014247861062364938798923810611487886535556196311315783582499327692641717738555590044807515927496561581704418056764616237255963669855183306656896994968689026483958552745885150317558925342177217700839085548007231293248065226680203707241287889926436741699575615455697966868515198961354548609576561781058555866693977157551368945822664759241766240787128382174930635053171721059223333023876822680516680119396136745160349246501563067426232183053732533298628355904658001097608237816203393737603319986820758847221544656375787481193975831148804664432983710016057381073824773728217236381960306313815502525468915237458275508297376730285497286670234189812543158490363184083899564858797236371935348931970787094984207565867587387868732080262745632563733735916503525473401840886058735065745438449891932933433729368687976505679476903142380162174952062842584401282066940326928579070061765412274774862919662907813904500185828919445361858701499723954723850384185319445078434844788795719393867796699180620048138133825307473664380145443545786097392684342133886371069949519199071330779619091807851431389387138463504813938691871836637355578525486845142543842917319676050126218721457278115353842335917319728668897010240436867772134593818837586420935366389195923046839913467684123540192702015167223465703259238743614678910703771559037121081473827673227708002421267575350439599020632597851132308320520455724469215265144517177489196951764340129880636565983416718984327955986870672622849680430062605307775434875881834878544222778387819297803927049035644001735861114477431959540807811267773011760083490138934659019372881296704570003051549199832571905572102809393494484053182917675365595406025116081861979096554449831171505363312554018856916694012635317370114429337160171219021896977970104672927614094689401501362497662134772060419683005213016117593056249928791823023057494699304633978961376391609045892533539269018689830269373658312578198948093495461752281676267631783216845339479863685766305230938336821337128557061650484457880306933979617767632307334944828624880373576772771250355660219483172020025151772294219083923200686589992507435233563215202393915898655507187731229638149276194382325932343355357770047592630117465168888577624761971255451499813381108537728207072682126280421932824122263049597618918042312876044037336127759227898446889101310431562329388008962271364840566027262307602815405993090393193231045598444035908737290170213641575100052052777760114992737032989210985986383280962246733959413413092029913453621395751970262601185472537977703497511145440784170152400765122668560191714862207124986710690654706637937543138064589266052619442731763709145082025402991567415492546664201145315729592465004485938629928649568630556385633335469342372877152869161017569617993699749155110618026972555436427915742585612670358276080829710174764775613738933780458185887676326647825012585589951144304611522351797005286107055132929674117013384459029035756667192891062245635875840393057550414779695066496954730123684004968459563487489449996657693906148155696885887739617118610716397955266576688240902034395400353235650299600336474825561491551051399829806027616860698320858230911675548079696747893288871022905451778463485096081285686224400052132213793071815738856914666947024362729836658215444571522965283048780449146285546944010829100412849488966314603165787028056997645236091415594592369015719287320055126425392230905119099414483085256572122977457717182029035249574029027399372964597966501789423653151058342762758823712369540616435432794568556624714703995613905185512426175621746037411076688504376543964227249350806110596788972141767694227215956930329463674142975329381503855605381870479299704012630015301995361635661465071604800685993616456162750761312756116886671099639226455917495117207005439201015769947379713982004937536381701296832834425621434865037041845981330965491009264756504445970162753286749982819272307073803366163684022844155186476473415436245695441999367830604168785537896324756373060703909697173926074137950339580082322686422038454596310445707639409606693958892813225269179926700252421467207762258691983359561571132016630460510887980137613326585054611357200108765270432622559625917539528119202951500811557739092240444417329444540086410186458310353471796237244331788141616376110109749281956783629963112993393160290182346597149659790573339001988180434764792933638166275368298922730738149971497957273661632894111677754581894085902604569213274634614154083573517041049559322290721009533097952030498793505360306066551738589404266515695170842892009374163006633241598762027015933792001601866821102693564728170350157364785081798390548183953558330948427746187953188944600930415876701902473941174093898118071899591081432979478968782371034100123264696920027281572768083549831031733849768980669482994963908544833876857505226483092895338201751468362763034805687255993165837954147263209676208543453916710007084092094425209016532466847350849939060549689331097483607105463595157618208602615784344889435781404670919007288914962166236707973903665170618289384308047193384695788387311611639096363410070335787843566460504426157058056189654678919252485218640325299379578531341494446689348556495880019187269796752179706361860441087005174206997726523961182893238154167800344284856170299439569107648701438821765582023607490697872418119584228413097695026803627047949922596767416668511261543876410307405173072774604506911293533718233546524494981493835006566045875829942029369973645951584123991595558643431261300970506630560242893276739400596126769023771362060350897449161160717372961562591491853112424842899513444043914555258035260137036637405849583948965348730251207231042996177139252703761396182517493188734240019932069239706787855665303429454615064274069723972960980780908767717470383186076431141265570414248616156553282977398229430120495127945682932934841210921871918467320608781389293921635244568328335392796232264801124854008322675360136842515065200720135537737257404028070539218579681918213617347699262989547134456853319113512750862584096058505172298869928895239183333716945288602589714113173462184207683487791510268150425347493521703579104954836714185931641269094034401912204201072332645738774350124315617666752984454855505761595622007063965238554657154462042817429540016932301990667506837574996406970656166960676226249821399122934179703739724884994902129423385028434502727411589326443783966826276091813514943094470781581321138917981028088100155521411234852149919283193734501940760066298654564278132279984140203251495434985012064287527113911540328106448677591928737454449819422906431093346542956920632179055801809861048410131153731661031655168204492248792303898618110423781690681803472520966707984483201707202444911428523541344592456020169393241766423745523053991350003144359040141240741327812250533446752836083373410363137949840609170714990536053061251679826116069189774423082458562006591289743647780617363551114403977119801224246947133732181128446889863615921424008508672206565006324114811515260511996804324805575696383760385377736519303773490099937647909207852239768842279887234618745824098167366434362126822385875202291692688549565448278969044652077089626535233645423529804280582776719883012506124060070221371239497997700470014644330330260266196736253519772518287250399387810337535408159835191633875799501156847121208611170796371285396191843612755247778403271207870320914038682042366010195141169048022158985573389400847094243494537886766785864728248920891992052363757255481211102839495005449321037192683070905999090263440503050916069200270384993116320024502260593422665417947068681950041184795944535366885470493017840944896784231236695608212821375465536606400816814040854240681996692642090646450796667952848966280043864906776969377399194792561364070122521655235009830523013672453300133075590939982317174237664485281570673028946943924175191507001989378885193011421644469352586791068373940343186427696737534266988237835306378659194008958873178634293077158992420425626941779507266987789934745603001299775277474103625256470007591339834148486811591756180245333915519353221916040474329672007538579660561688627391035345389446731642254747380089514940901352134466437400677588652752743900375218567059805385891354618973965742998532061989702492877669929606281526113343084411598487391415796420587923398886583865932603545892622973036660453055004850135707222844863161654833635025596497996643074063331900634580385258104986216651436421796616483084625653155725716671049306882879206689096735226603608231767855223427150161370229845484455572362718868800605345861362993848722525747432483870376603487659001036875581077364086978282109287271452067211099899612781101656046021917257882974784005684101057057159041172940553407123522673280079004218200059141843758161247091422048541440452254771166746361886325162220675057397668262978772025335928655213277076898811944305836113271820482211691965590240421851535764911739951921252062835089093760547052230923701405744485882569987885234677113531309674057942741501294677432135958212361525549808800094992380049714901537811956415006389788959306483646436629617080270455675618817796482963352708897594371394830989877900197195207431891816079418287949563620815446772129075120283294397953193953084366303129458117389904269676880558731401900854481881070598218011030646592876027624473119612300166055659210543230893257730736769839564077604250080735517746942790609571883803327809264772978626282524067881813515863448731232654558103340364849701015905930002572534739847688784994674398498933074731182897383983213565745186158983971942593204589067872462095591411465965400699001406991113252869449647363171965809494953940234631924343973556921769464645194292659635569443011341580970194552425649025447166262411344903558123062422377517779657446059255420105030318283820673209778893815748984542525515703605122368285350362109369018334377563203290591757320291894031502945266809926034296712089666489088880745890552034358049317686661018621661312606932943431620088713608096718325176330257177212285550393714751842522794063277852725472557220453721944842440833059442922492474994594813969167718922376354550643719933539134297370134617258378661510217098448777714907730807366709170136744567528094794734167568260267774926757693831900805764453798874482100786700166547164110752970154892910934088624672120726521463744683835270910266032506005642255080148626496652793382317366594265544204499491577128103655860311623069705285103992723383979825070813565346012817999603388853621147366409482010078088799586993083842006695968697770083756984230912495701933571188608012976896829077219207286375335037367952916442190531194095823278437891845221190187043122060509220705541122373487150510865116087999007456111088038732931952214703834297773607166223327269906191593550745985462431799243143566329940306228762445662769716349606684437435458956270042598723299249463385355219321136234798884530041508582628937442289846712747880650060380405959127974174111056771459466723461110777882266970093440309119722375017917657207864842122368817941672436903364583950663436083072941677380711163175413006220899332577175032116983754664628904839984084197776585018257405237714623279770499744938944225749621351157491276981027985517766755056784969074509922346472332520084828956572824835889665682045547874154940574530842629494655425635580768124113179499671092950282112455105927020369829244167605398521122864826338653039039979120266127188390078400206291891314837233882521640059300890875884986204788587751201332818759832828399101247132997146688492017793279736585445760220738787126062530288012298258695734419663318646194261831747319360474368850860614245166456691277784684093433068549442341938565787930868583576712335961706222898439778902376819980282816454845466689602534566645885476267506604523824992527962437403168609488963247098543605924889106983588990707029075135007257132615670640578200904945514136749566611787802878458248974610834057048178716238998644857535092214735727746818919062877257825876937792291422622559575970528214763806359768491038561031473192127309331625427833453742319594980451199213841560902043866624116230786371650102083436935921570142372111328725075758422137597594239678194849623873796242736343178529480320724105095089106517799067498221249388216173288189653854403280480314190337097053882727202159325858785955169885382401007671834334776528725256592013545410540640155652210068071643347212127673154462301786961228541227185737976280646681840035443821899243053983381086702553890971946732578030748693296271285619607954930451177150189569445374657057662788799251597918237053947843007170520080341822667522151544838399105505999582570639041596945968957499713716084941057934491103712129631122204492878469591442277747833293313411657496075898071801657939091982338484816301867668929485450484794385911217303199616923566504850194761968824513682535860347337794770527501352929321470757372601185749677990076570522999693365773362902051147031776334677621787043746077160200318071083178652242655664030543415407379971635747664010102543332670266498493602515203216100896990243998060573459496156883993923682220870476814992066123599398075600417638935966335403435556237388434464302077711274633555246411441106093033325332626645002527591095086067135114478635868090710436094530488547166107126043034368727762953159439476660668059178941723877192865661580627584075028056777122653404736866912121039062197670904235644639599849238761662114020553453466960392782129888612662980803850522879104191974034198801060876879624796398985713671784745039731051887815437114203466353530755945137376122677089570726906282227711597254843296631522699744708378373561994000692899119545432357402671614181158667169172097145529613611667068260844238987079088155142768680774527278077022764778598789652596760300645875342175185063592509131887384316080061081784100240436866945552153717358652084196196796295155741422355676791684605981572873281068432555336712252100199986657946040098193748988195475702344842982338682820378959113114726162573227179659934023484202965611048674475263977116478448542267127469568121499914983364238026980808004920864465376477642589843094567949468529611804936532513049620873005613791779639200955114061099018759908075651913385293638116979354888514820875712155400195092180080380579110477991762730778243006929334436507353029446556206849871037477038306617905790050794350528923275531301308985846190829197379697676834758170545427336087096673124556512170036512548210807214446239193625429286475614894945350163822549105739417263853856901348547746425568076574978410872226140253646262875438169030691168269596962254976754426314664779056034651078124531351266485840036059495086078482167307943047437057010285637391225022383186267093407803625933399088149501057304675521847228395140297445288140260206689830776591382794028734838864654303957228887262466903174345429034171509490127440167148181127333427780293444363284208045931282302190931310660428194071775391817728909682633285847793785573691729930229563101443349506477744996933860384693823082303761921930479064312146740632056348063444136475819971475605591215767071999755425056485458644903659258088116855821231377458489509055753083856402554058866692433386113805293531102215158244585925874293974709900387353104798172316379316743055179641592863287547811049143077443725242475482112321574103608468288115697039383018150342630365689488373211657705000277559453479652572542051983377226159969916330001591222637480088539302811536339179628212896357728970422239305720715742751213482073426041785572983936613538917394161793957352214876332526234408455953134495672591252876093079019882964191623548104895512752566783343625144820090774970290239012886049470362469089549499735218149148057811567469131227694976570208820741531815900397477771125802361067749080793221099166703117656984122643577987675130595098625094311388393257284411757098135993617609381079345584176634436833518700844831377216745800236116580509637828911516298806593559042476985466498812553845135689331240552256787508823732357078773349431583320787764021267975302188336309671990947629368859072421292003135142471075423425779551806987406683399425753884881787865605525825404163155542392612650244923189193277255487821428189879845507483677275819469304904387459370364027921904753351044493806135839902628588614178244351391078828766501931468371416649571308589714303064449493452182412627463004013270291967482031781656202521146723166285895001071629929338383331636900174570133242940768545042926091813975801028784543794831844392784483024394410067947598333717467553652319219728224140213944106601322457274710277682117413336468554713852900919414884275692683939819024422020256492057123700785117695685459901497346860534324749322561405060607625006341827859556704229477885478673442633361515224888750130470816802260877041340812486930428128483442725733558559503036225436828430715746443520881144819066003544956939193977269363710317608643400417019479594931621735319113878906439751712847357094454093960456437462582530093369948086059694252446904454636236297963865818587382212349747129686485058686649292460179950585666231287458185464957811873831434899352765385325788253641160676681227101771461841280935510037779000879909585415200329149864109196784431656044598838736004104590216859186151321555809630114055159635184028751927661568353122917379548468235599115257897890440332887430768846980073123966009880567537694942980314886288667814672119789933516249737672524722931970481209009756850565424611531724731869345787415522098030328891038369726338905307326246694754936179757246955169683673495206791114034794565692081873914147339749245389582796834416146224097693411522608772131341105546679488258121424042634845177089501346884238213889979200324589684201546586591740765832954347589816958387717003503172498072202150825356894069605951222369745142382234404267683213745881512605959140312659039448346324771048400870207142803895768650218289033704337367366161550844823091860715173258372886857415498554693495079903722643421271902024386689717711861829858135380603680746310312823538308057266832751898590636459798368541344569242184128445701095060254987212377052977127305153009884488232111111649719266460095494528682267554987966375689048117541682616401711582821577198416058386091635736522612029469309253627240409960984846610268703067892296504948751601861097026684253574146856490215506100339587671401493594834696810111792711023436856211849956712173046504967557439714888439794069721223000039711069130181653282193248442583178195962824340535022946345787787617504787900704538685473204432960683950390895967107686018998049028084029755538767977324760728883027850531638350333795706409676257830966738013682790866399138228509218917803323453780326661961401206162129753020868834334269253017934935296101329327637736171210369243714938009283141362766752748857168762110254685107385992308689936001119779392402736587986516085676515634596772241920007437363207647759441782786516136845473965387082784045005506867041536899098276217995204750931421644463777132575335335967614838403025402242838625621757381562324740091806325772756617464517245409811332208820887411090712781119679354429719052154778711726724672896448241282030608875318178945486493829119912315370813924771029949106580274936886962382952527831974736958844861035957973315291009742729194530285405473978457556805941776815705654372261607182263969316473619196628556933754764829938831055440157969092052323694890717120704208807567557433081811901447902714274010632066991537372805537327443998914645539572968694437631121527870366796107812596133719386166440332512706263505613424296745121273293631325821888572470965732590242250672679382011280272103633612881907622462385766438686079082761819692182535749370008366066956808685691110979505497317984214695454743325741099014337875618050965972883781128695605603391415781952489660130683135726533195275485692810562162152254812282363487710446208613284229638548323680911700476292055089577432822753400075144962403487776322708936089886509039691296144478783481864448230597333175561200011239659141848383072413687067464651858906227235101359008714604111957821367378627506853181393135618110289041106563871604362514037905723008513681778346502103630204914830081612937926583323336271269452838022419746300276461188085637616362414799123294729708619054777648943759768819087565354439897208723508210201528276666174056700632978789624481858079618669026047578711611267293625298849333528793377986365907668705343977035328317285583032060098001627630270067101492812459397602321825934922519501147873384584763283532729525898775608181907522852484733721013430201906679975062420029294055545987963258207974422339754645424954624442665063876859026364779547178678395670766667271008247736336136291243724222743825804176191645171815595286580293166620478411294887892207635435923581700378133285238523223293862670974908625866846385553304874844531645318731768860630620417278280894290914612696238097450808502402959973642673401503487981846639241680296016376836520621811523747799001763134139109170647809794472785206908647861835632476682736161877111469873776879677388891341597817576097453450091527248784211151532148801660729391552857690040229403712179365725081675959337078734232935098552809981037502842216507874248227075633739591450823979231207430661692662693604243328336163574806853712889625820679855668331965595121721792242246769442621775075562938664706058045224141443219953875237749640943192697820180974137433898749449052181202079644199046902941195054738665239340848364613883114200872200735787930434941744656703811304713131194786224288257743807568483646433116766010379720458016121116346186297917097003906699924673713358142367229965663091487529203479502168965617105420153621954360389117368315412975445575076105575668372952347631789549062149359923726883001158069729157301703335627088360843446113165079157777076625231808020128451225366869240004914487357903474221498489280083847876070986847285057022256456648456175001723807293651578416127854760539820891083726131400930881922822537530661164736388566335856240170030927631114541995839180489039457503572153967327302213839104518949129182122986533832611430240034747663726480094246903528158588630404248480670307778487887681439077173548493529755724334357310023397540856344825673077265092294283584692129470827190505268208719190695048232961197793976006615953666657614813051157284133380676051772965722146406233688991955110730470242529672371974301658860095025736374019815444421409809690345848382656457387973029854971063979166728369249575258389308116410532644558641087307171782062631451489823392361366404441974646813909099017728705152547458395928547865020713931033107304546339106881939685467645847672682369602796813568187556332635583799871290475536173593216885026085806864686821437584915813103131065686240883373661308344017732413575716541645879479375496124059717851778192797912159077411369765751004448301768825837897540150293114057651821142926851967131013495910589621946717181060727483891477621222080951367403633833644521380002026527716744520656382839018853936893512563480542464438687107195313338104754712633779638523229922358287587384855861918875717887707615062751055237418125263332991675659454905828815654938149128395821492531878927283232025900244212924468204261254674203749766864546980872470918255507224391890400233505037047908850505704734631214650452640765273722853081053881594156222585507913138170452333318366231031993565564837537049039300654949512747349148439755537313729683824595750739578194863813481431786848948728140416133558589171238288731303556707881160624736813520069697254248964579078753425449536911379542883064227949200038346093294971274965659403940096552162409512686558112567126951416581486554401346367718947395580544425885613186152428839614753529144995700793334829152511605785397564638086614204510857090489308551006978459999696484270675198164090272731528540013734865959136347949636711044176305152444248275703397445373102237099345483157086660480532272278074433113837274956608416873262016455600494489973990261608518126096597096650778501341076937516484847870914320821965898062384410219871301109100708613132503916781807316714495739196787949843229334527667061281614752590425373734697271048831166769770173284771138381597703090033257939956703577360047036633571195382766804693446998912117154725800646536098808559312829449316170847350257000391854585218974967480247351105185691078247647492059808883916208173809640107136196801904482833212412489903885864267374270899095651292439316536815711455562904829535712202519531174022881068211582601245349317214716975549798670820843894153305805759069954934971237332413728812047351289695287105357910319928333788766545062602955996943732219906397708266257244737716530856270285009668888123958847184280052256097362563278535897872601364039096481273243692431544915774392006946064118372565055177125327868266565435135341845850972807602758578089511980289808523776104828650967379623042554128575668150047621849373789613368579538768547664058151862531841705523522312915708844563554366813483537615656291854544639435262443039019635268764762549847653950060642746488839796095430204850032115424571589628355796240209305301025023815620292500477903249541830584062495719200780221084512534302362549180489987370113702798708020893669898589878945793185903092014536256937219386543088381388264911543515373888254370092427758555419311766863823806765893003981121816536118609957597728984203995963905265098319727962100182046316775748427926663119215432265574808572824908540429512746511065957851980138283169556831102692064405772165928418481975000343033015458998860914805648296528051593934619747704739923215660185412911436231893458731608138120010507579613338756671726947597884599563540886564926053101663252106804004439987963758356888269020544112295587296178201816447312492314958457115145564461625818675122712031544629412692636699859184717907675343882667608971699441334159397107670169307334890282136253292572182604866161117625972120588806166841132439461823567158235932937464517335777219770902665936216964417590430871762283639388462813367150738910786891027173840675215818468713064587947344530546885682220604592057380768824034167110609496785719092558109118983126844886391671399655781127068573164500579018869268710322378364785045220224377470760348869129835403254626610496537917821718610050923900353832053662165195224974005584862040220169518158527807833338234323170216776908766050395792345470312858722254134909122155545014327637069827391193639753400126044044792243067114850419450626977567526109013429160521309967559643244328422669510832565408046072351131065404308939789233838289002509757889013688212423379202863919731048850353086689648619628953968646575278723871820968032223369958388675635665307371643802243868690383739366575715491032385774886987044218276789248299239898783739693809381458371214754885467907701079266433789433475138133885605299044842779024290089066693605028153090536693726082472908051202350181967639735820643428724931573212443281056058019142225981529247835956239615103538834314752543793206045693625590355103137749046416077020526363375445096704920182140097952064243809672295390454427945849455323280663871658851090013232810843144457964430501973832890146749820338240374764188539639528226878093675737879928034065498399547602155948892446504473991163842595385793525572902729160251185370707278666382811252999302935066273962947419198841001743123580929984272112948521903366014022685219363792595898602466395476169907729011091492010514158099464166145241284355299880849791390214292734839012530427356929681839020002668592244527169009372053148410085324720671742919442068621282130862785186967470002789133711904444406464837523127059812228858486378193289257163476983348314243030085488906346613696724638815893712561032610016058183338996693331453531865081614435467704700043952261729785720494700556658499340810521030301385647349225093071441823024097947964078708922977568721189092354161023547137801237549612643120542829021958198331335188088713145349945974780852723731916679512988243728032753133073965083819670003353229879731985035962951959208031895667218248087331298325511360748769287414467169930190304025180502043564710897395450340627935474503441918532524702595232208124862772833122356510750772290232972159400257300556939489314081764583245284905626339825779614723109082470936451718473237229435437390986393379027563629394034252046859105133170264105795137600460294570088720111534480296869657620238200495693709425425366743110541520931028301809590231084165538088087094404073144485831560425086850082714788525393756359032043433861466415701568592990418151129777942178986265717563624025921879983873272357829246125507985131531085781191909955792165908172858194657231019258443592016497845102192707745361015025746875139404129579855383359819862785159271772796650853913966791695998278954829409231786985353166814281740028459802385568514130276539429563668252538245841785508629950349432654229477873588776043700420491931750802758425736560970302464175336897389663300833253547888253216344957710590539134567177511168079154359537972981818738300494260301606453126334095845241598620100221617335049896783512579385009863447923680682074406112872878086232861644479626916272355672372339232147965731982081450656145079826535304261961243740872282430723436760297601449578218636545375397965030634193520396814684261440515237709752537750793698946327398117087973695804039789626639235136050375761048946539942347412419706722580290595911951580846218425760633628423685396882287292319648784484633875906378198932090473116473347721237209049631369371086902644607342802387504233718070307635681607305607789548616721500288592187711114426765281537086060935945693778254306497885715784050060196494693643352641392426897395063201517075572694314769992958805701751778298331543174275373509816032541478134384565482549164664942114032877159725085417845654821008062591994412049474003424353557332228332725264358527602662412661994956716168842150694526852198187020329823342495749460922686991687232510882654996652397813493482873344508037691234914853335203684688595113902207916277927009910725879671991879838972990915928651880262977700990826340016729732443830646855771497902524375291664984464573674353810001883864387359070205925157019936708359146826973685961112315671197829727285435329753063844750388581225186260492770061307255488318456680284046795029367121739389367561034178415540823984769178427742462700628990990606787945327540702102086048272474406323243574260881997599808465947136002904550226448445712824417602329308752265244309407003942308190475220998707928974791226049865688984625839866261804805079835607841524218369120912835069655969659664510718114040171699263850601036075632907078965415368082650520375318902741694064923587069446167633189539187639601959788503711796845831450932914506542837524184852575521087830709044574582391342708797266293375425775672757164930690710877648666868090002977391814688553773921828915347851243070289802405295453364700584105856591109110835012157658599604766091811654742848414016619708807205655302061783238593901298720657054662800752157152610312609390601188874806657291645400505227852078795218525736693625674102515104494967164729861072380115987835671904113702356589399752324124312696188674182149981474245335875463213671990606886155557704542622281713505158262484412790847505076605600080841445537935377532472324837374580935255816911313649964771501697034784640366267918877139206527441898698615462692050841247762947879564829159080796088343281361304252130118397846195921215176379365851016174716866748855039692154484768888296644752158025129235279741012296995778799573822579144700193178002997805113741436818956574565315690216384488053428061349128866689162845906469567456173924435593584817534999276975717321843876654523183623733616697110290520464816410625817196306396692557527021074991423478728028317307077834004781570046180678953705473352643424787668333335102878917052668786240484794080712023121162893088262185586532652037524519751467927655101432204526510353196554082384607133562260425384897073224757585732717716192680741946585844178721309616809951840785403058327814511087196259526351797009069548248088917740335514811043403807979276219330971751348533849367813127598190598847097595985061015476157175358794736835073868569291528573043536424745701191635228815743917946929051313402577330760455284212121556974671228069387438778901432305157512498284325103955961669204431177479058168474165957859182243907736819132450186274553709545941238668097037085637901509321783854122873034652019708985526733789408462543953747912928048590308580422622959955756714665066404665339458484048401591994616188772999632373157216667332399512974703387190794117739518807037090666609946062918211019304037661520177438918024021730817468433464648265790382722452640543464469285889635476445984272473282117543283262582496710158579024917852031533813055300228348108203841320213755405439879234640578334561953192311120882877375982619332643735968070578934588421504250454859129755053089693222059723543710034800237458585362448353713515662432884994239676055700564849361161914471211981809556311586110576484436253725526106651039633302871598988829839618574746236098705104146084519975481213744516939206036417251739356493186840459335985199071201358644286060997784084203461765289125410766284789125290400843632992971242035240287925198913573702565360343685204326539046576008669399921238417893124742259000485852519573619227432822870905080268510213038063942991345720092587180167258153688537017831278439919890397902727683980859149538256361501313146252286313512275111067842753387860858091385613306760590908627381298342843276860053245917880970481525497631461603451090319071007738932472753633768481423478363157315043474984007851333305344902208525231211439055031741265116224134288002118647947130088609636666760438607126590631978572253868520515591296990180105330712299343807051900083296934029193145845207395871547870818038708361132840230290540334651186780064458723150365448381722727362889039688590623144966344589038323695410334856097767087625928328284707144811923589821017318026291044153307693085522551471031894942977202389759281825886436335895128929949223722176505858959638132234189278778482825561224845415519615349006196488666652175956190179710968787545266581026464900069418706300379287340778278429598050866543177764794750116012526154579106315867708623195365351221370362761687697938531961979233193833844292472271040747077236525761617338882181775976078605119799971845001501189699865298001395059079746630460346937656298220480703330746257327366698214605401870317052168388345311206600386399677826195266479862283640180361793934282038071724298172255151428277743141619348602837752797469359857782571218302974241010720761584535094270587979238247742448946498641837955399832335023259278695204644109423224101116279694734372176347255332853095383712472103867915018761813402464320031894394739912465126572078085716076981283524514513582522495598067803202034052057269224694320396252797341433346224307530972005980853823649747333303810003423885629975978689075345409790574391551481695869357104119193322411196532174843028099503488144568085240240429633739917700650110131192196093192977748264149637063625982777019004824487886865288382585684093775563246008629207095426007258855482723323195981906620578973623601092174312160577265759930237650423439410305710881600556896095183871665030528731796495732670791587680263049388846605241861404753934895442568944695231639542934777832067118353824565862722616757859059001789965378684219176207094956966631108612725444822981512412282304524460291542836649199281808736496707326781386920061791604162117784839995012645695022363556360465808855381591132566597312147770606684696083660375178809483961662248757884589228001819144969603142492655709320187424493242968500223946727581739114084056009177295660780582520823059982091352429849213307796306933977300177547859287593370453563165309322686721701545275056273262014507828584864316208807453275711111387158848561212149886445924106272833595409740376502246045350301354906981427335755615128287174435810459594276667069835658972030682233894224868262533111555367199536891299601542435690327407929090250463117698638178811588195788177787943169949580958782476262152352607780143917475965865210438807827956162658736400690753075187941198090566803829788737785002221259166048414735453491614192495029331222603867937147513049020114888976504344186491430174626301515137372393634201377890775142736354111631275194904563769042479132518564923842333016688028615197877131701976535892279177148479753639150612711156031848187220514190846526333249478211255914942738166931836050427131782564775715982808013666112139306686972915828820402159588439126847529745915179750302936184443177048302654722929600245963395221960823431219831464740550015157885905742808507891060529944084089375863101271335459217019718599898647269633849508427583529260117304425801136436535218936894965544050846775459469332148424572411089271621452877129046382126656340922117090947453990632406580412724457163897606449376941536764621522188062679026764909621745018536929890475002473614805023069326884514061699767711918824555591530564466964086011629230945201887784879502996681349897039915786454712825743001852247563844955457981946512685741634519092857832944540705761968537531889063765299913578857941222169031774984969919428316854039522886768564392080578340410289854397459669082752298912465659199349752542263569099500666140743348961051337895296953853612991597725507696436033548985977535344483135705014943022360007090474059894629485725871054287687894498363809174766031748001010004931742187277658326604085420712346203449870924510866008608936718045309390156259388874020084182816885547717810700159647554639844797839463577577746988746955203551863211637846393616114439172417471956179461840562511355730812107648051304704246641430950053250015586490771045390683064547442979982576265172669978209173579075268791919754021708820315247730039750754686266009177974948635687274945044178037315991006317902463362447887945897306992205474137098553246090734517536772947950981299628701468185296785402232771033428126428091805809819775221957380679279073295801115436607319481689843299632168828428100613828518646384367983429931693671903444191821244102816048457834700077545763952367772143609750656466894610853742441571757678566838604439218206327746854137660617871839003206805927678691413608235761186625923099378404095893309591820578367103127050060923014504146100711647315585747106614343856778067329912562626250249559605652071128569333513907533255131031406995779339056599040218095394677017910330660820069697456382824294090904933032801806291304521525767687353423876889374183297471489508260598530346530866703752260248434395678263496379163279226386700215597330211598129194402393157530677298473667190577497874094588672323032752115635041175914024249117704494895667888151046368686172037962783112545986826682421300969083950505918264580082033537191448944157377357537886120967190965511119818284884511877651957780808833512696874787736458284573852912217225892288260723293927142815133095171723772844992092106262643158455677177229055650624024930070814595743109341256071051160611256645290453370946440259477324671954773448834633099677984737818232324441235069439226609954586386801517331541080109593296005187281093900796081598677952246615587216381902071290223827185996996319065408950405200930953128470543383995876257870300571559573220342917315321743528669359130533541397611589331593514979012979274992298879420241580895910712582259080507165559475177382367548315458321633008654536870166871955335716870206984912950002467008323793214189538740994873971586342864884914012948826935554264611261063335936841737925247916339177226717038722823183081364349808108056465163204843781162484602822180139722889863123609515454710560803470796083069411022770669699104018839216029349432958283108387908990835118390638780633228752473506623696011559912646181299512599672177100859140412845846674353831950889767450729815798449307282655256432553767942064247215402782380447658215459438199512974604822793274533770516596627566771913777429317290741000058480097600066621101721148913063536116352511350270856190226340500226947572162497370006106379062261406217653953054853918936684862626632309081822791433954063781644932501110045917646933902311823558531522513636883688989538331121263123134187407019256900568357842852046617383033860914822391282936031578650445115140539184178137364195517871734549598284244785691602919174777587676519675221378448408673032623912084508766136664578006757711911514349387322116741656838979368759723517990933542487150766993703859305012764509115367481477163860900831847380244636781968476913571512007608764003759226954145416193994540649635374748601497718626491709230118819805779929919929585586857934746212245809486009792547879704623209841542995974797947078964835290283897804922519664033380745715641578088656101563639963497356196655574884488642143721134364703169661696986327120862162985824968192807495282311327394751794759649173377940628107105723706967058497571177135243685929006949248882026173137886428265636479134156590244717963632803434029135732417791225131176658972740639687051759737610247149564632505098919297413302960487580847543010823771698886075594027797731059742895236431846157509944671099050075530066376310919572786742272822767673806777555131229107824678745537415675666437864170237170066346732408536776938405814178506072441836209383837652899102018448919788729480496192361077706962209102829003528007419054140171967758486357905401818804799139714102242614862614784822737324398172186294772212168841034691225776516013600839773928534180243240660877668683287442893292748215895520063893533956718335973360487979818919892808276473327122847591684001019514696434281686622044631701440876759969385548854474355318375688449587591170976973504016324841132368407944125242790418540308483756244663345571915796554500084067649359789017961173278374204470680906621267298398653365274758369634182089459469317582051771784636456901612408760991827932596491076455265105758335034758495317502141677720606676287523304770713803678795438414844667002169133823872422628651924153557804384154902871956375782103439368517711621818448939782138717160874792359754330474902620546559641683346667326874875934212187514329722267670852712845260883734196931284184018881012095786525212801742113239317519330539422818143718117761952850112550454702224589847752955126387185326985377106708606089959701732220835488800205410433734813670304000576911863851479988626206774267482731213314997817472727773050052154522700384086895116555306772151722607031782150460279860275427003333974931946218600077451881974344775166068601922676274630357745718493435325502194517277873168154309964608924152265707926577139588871982602949421077527678139524835403602974816362362014044419634492210179538048809304583306554555298150279597616651137991281932257385372534701146716021026008144203142485229133661805700273435804154738323681899204983015801925661150080756013261443009050261443588373206527241096283000473963525257976930715311942549357362068068688073221746025037693064907506391290407022234012585899722201120049566620363773673866616406600357695385111645019000182076225237027345092716741103209078091907908471806770118482174596734736183310126959807601316068355831665224048064668264477830013270536348163225397787186823154041874801195496726949683643170476687247056864962682698275108820940913174951042912706455315311276805101392241857241618227102825695235162841748841298826581448036555460185602588135991266513355662902331306701079743252117066038919908307559005483256049115238449254079369477344157386319689575928433113828372801876608230143854268548995504558044995545321747253585192222614473280358527417210227464056089866213310438949893922166596739275027121565590476977605429144390123464536458064724660252015383472989619069357563602917754711802740695148251619500216494128339298015062604008297530962514286197760903329402709890714320911784028272981353848897252767001794524949351677420115334638016899258193456090696285679060746961798957431108919368918988076648835851523033915758755285959855298209664846475865986039142234349968149650612413988942926469852715544676901344159892008530275033982159115699184416105140615592774158301376895090818865646081991229940770588293428777346671514431178637119760763439217185148895104442579286280323809233254227193817967905518260890612751029261160894917475565688665047018984775572224942349851206712712858295698100019475324612908183960473620828786786264703252851609779918529528818962527578154827907403366834484864338899121567686719723994918855278688384326607443920094336513672113622495733537941456987951310937051402921773436068474886043686350548036243747383900788564544296883217351861188813395855379077141682088394302872890573158905508140196514591468462200819947487335755367832425539817739321357412828989278203580640911321300259025376392347393395659873062316190565136392179865465015066364791372286042980803110740237934768860720335534202844634780893804139382463457652907852930077286287900411647249069644679190560233810867342193196338552864780584466267631529235138497216575031198527098702647464428264338834255461442450678784584551235430157855736672500893023701760581027547627009737262923648568260155281787666715278130842401337074110055198693553839328364605312647450283374237021996903834412265606222766297135797673345259962870459284224801596366034777565852709345004055509475444110637047539950560003416789573565812717396789535791068939329704907251621826072879134958996409378577581378740579705841544024504031937919648046310375240504464762181674231463719388695015025567754895510535346569283180727182572588708640754280551731886985096448401998432388358728291483906741000213762182637111730767002545143765866376161762740149179659462115994483923884217656220259024313998996760789741122074260551825086585825058004992189829157123775149672626126156056665131245654291171366856112119575302781225773084453300447033179869761850246194506970163922815679500028934699086047703094579697668230894996661957176810339735743692332490031922028949542849913240073698163654988733457237565170221550306418561770267106083868113855520326350355473392701023850663107664110121510703257623217553512885088302985313306345323968322552914358040350097819818444727263933246653291744873154674745065074895858203685038515584481517511694987959024004295345189980170542382460851968180204451853845917384561172744577719890714805118328976637563664037964562469430164201989253856487590964924472362419385473462526639827910285332719878735044561812341522648061770148202376800188681283010220364984682566866545969705803054985029071958254832296721169494607738733970854947701312514037797421517345945792906691918636089422169238305704335608902960645329829180973582120987015453728339449345709630513526174130741274623807626598849555590903541848690368523809110731738446776133563860341737318303985582637223485656569691353864292056557478818789962223098860839949019232751597346326261126340999532120231462471680011992867700282205955143004752976396667184505253295906307334121172784311675204467446360946683413500846178702329995527513001915796352436537614778756640078383167879296607485444312254109036340131488877197488832208303107144913951160795318818991148122509208605960839356993477455768225051879063651514686710465326395341678324911980066924054279882427248051474715246340538386339887504602538712259626854801422888520588707499982433565856722329424090071416256694966554667993740369017195563952511709313669831268849007969673666814278035987508438411905639625329537137187001812809235996462277706514380110529224481539329749530871145493742151948764447469565484634682195950622288660870957372816031725960144687698399431651618918991563306507093106881340029766572489386920501510568935663764792565134704180748803702652456966196642737222382496172316748734689453716633126233353576805289908140086079090161479302568711827165616586062673520372374016676326823443241103790700511216210437974372351774825357062430829838001481293459081085294909668271187364455446321063707221384258495084313354179605044781590673279840555917871126003125707193325855824128786563738690939081989733394022567997538191195767949992924493534646544333099276890210828232317488129743749872759537650094740841972162274569842969601902504307038417523417429679079873505897085694092956408351138735614462866756425530150402228882889689140609707008484480717220565921835293410916036111726672448603026476802913585306260977759414049947597225256214952877599966888992116231458257153491383890943131713620421504535798757799151953497275048445244861041647392143726013783229329290487454240406704802272524293048719102249943134833678375195949685898750212606607464351566145478667177465821309083550294187206069580544816913205076060123593898560934564913850374870838010112933208590347568101504643938807941688770576643758100577058078848304387502855162660299593250632439094043731702525662169633949271035429925576460131417029390940976525960113319388906844508158596815876472939645986361893705930506690684714555905872893304040903814628177674988109393922614085989295274184377106948412765894139384694462183973721630772819113132506919688550791104136998058461379362368547369191343335509722493515939670136379517783329697628967714289111751248594130285292042971465916729001463852969520138845473476438561556139890818146176344742131113997588851324451246554908170517872792937689631873067108657813770137893965800266987743383258458935837881283866331391012646349001846929476251599868806451950740575471039027180243366483181443784755098843482549210122355098452924175838580991421517156160330436037752913632235732757838802322060298778805006347420417939273161311833210330397995014032529115886858437499007152789632854852391175764731465643588137261729671908879306454332502568666387141136234268633263673261004210285948086331485155758169218684150271739265307959903225467841253988745726543061349599586550461795006660571612708035626532236270268057173109485483599490290368855192354180419222654796816592033910658756451362301628124789798232335093360025276392632904322279322641064579343419026960533128666317124639676844121229279806080011527127173812954057413285836109231939929823489315305643513860908315115499088807710082719140877248112736688058794272211365951537077270051196675194813910655897878116716365009234258080406523811466202108340559276072915130170145925683042256396237910819452337128107651390572657599173029296334929247950942611860301787310069023582620013767936165481244354127937165197063344040445528994744356257634130429282492019193891635023533090203985490722344749705502707003641393279873865872329703917477281727019494782587557453450853810935021577777781918556016524849557306602706122228223716434122915405720143261761349067651703266035627101196163364597866309194653831684776916640373399446284065722920265839347602912836020865167750568047759166915059134789704654289232784567653087134445076143296124715270921892605115805939587887832962335202241491228796533345392010931059476058683047536408068208943052019982317972314537513054385388222017107635441101332708955860109330843579771195002462847335686049138408764400044398610091671124491453309261435391991072107551060482109313642372799334310819177518441262626815264509582332047899711653118759158220871888610738424269840587725909484162720041662709006870492711608610897234185141576355114970798850799403378321976960004586430525223426225710710468644587965303856328251011336174866225740422133583733153248960918425981722984767503074313039022324111449899036496748336264417345548943192036553909975362967966198455139929291168508010445522985243079194294896071804627547215315012865705811974688640389875278564561478788367648529371633710527797721138851443616087727035053422935230398830706955652579507578480869706374808493341703316623206748935075729619679338151914925950241125327840813691105372914625214319432762675991290446299993428809335737569999749789890079803308143770155609672637329687670100415095182130244989133030073495632829629171597712620261008428146536209114671037327541857025803571843029204143818046770308873354899849031579398176085957191990117810267481823035159493581196615474219987159352730480627030135172893154034833124570259407638630639313177329561934587247167796717800201215885216957583991191865130768626162675911006064555259628250872887536376227788339499990488481944318061742835109352748794990288168771907984445271955772807199486636734985755730210070781838979997759278594697534031120343520301362291938991944282925193052121429782787304929142947413542819032795757500682030320857558680399440935184827257164851596711449616888310988516715635246379263098055489332888605022048378631528901274329028095791406767678152193116520455887763021301255216985555049843971364087684716481270430598996776061612246199996624017180292893563482731674082868345601400790810132864298069581987173541590171770216365323139911123479157679467825959809962854776407927065289279780286472966199175433129236018947551100355930597961573899076211776823136061807320259891713283829989623676938554324628787985534625877285727608048910522046774843476701818611839421410245590043549069403745284321860638467694435198914831479291112406437274905716032536102559927823773412031199403895069662850733120860216304672067397758109356431182821534411773828917344258008054394074970542807815034965066241024667963070858615083393202691235266811162157763200514991301010534519786808916563998170277803000035816394517236909823965530469979396413229930919626390393680492760750413587771885252115271211669217578846723227113886501053375178447235375025084970411318216875886745422934603710871932656790153162239284488352816310609502207772455073496939616396391774710660990431931482674516435931702564423672487269080265059148636594566212254700277562201101929588412902044162566092104911229852807391748248779938596673995260992281382190058009339902450768452733013168769198937097545647327123222613028927240970200027455166483873320639117696447679620882988540985883034711456654546540575992910663516462758543709797341462275498521559208390451151382375039114284853189517198804572374444321822644902055269154894112423501413058881791142505103250503218659809908182039773790054218184578121300204138468416306056243685907723473187204648158732476936304711292014713969347989643815949277356510899869849913462594726877184302805897441663695477003884924141980756353181888509626011220651204794257168054775552016951445902941981894971570792812274610356429897818114126993674021466165130952271699126873720268960334105762986689116982124142794531495728324117299849426488110940068013470283948600299552368122460969284533334363278268493743562749579650787357325053112572944474798594985106661679341935875496059252659996005711180029919312006443453283679898807347121864208682534083345296674819269612270361329497920368267279981983024504960718205256638087875989914340018753232566317203701249419015839749653305777715133245107818514869027687105870505041080618571788895744080222249166315393785688301461666725152812863314425840490096134113624754881551870593193753031526228775360969747259825301788623070794299320364497804102642897013289916517244491969515070520269368775496142374659655102281916679661821580694007497326860046714843281685190299965008917168916647425058153062292542506174632160449687961353140611817485910597342530020846479889325958823839348375358837522996154444450945252730410871798638368066042460580948890594186433129341513497764996648570233318257064233684335473723793728554412080246946192783738424722495551525683094430591989600136758077995067388339995896379558846835782236410158519515233944193126487671992573692968781488854239653651005368150556398014191186668929824261169571029555011746772090700957738326791914213824796356789329922535090960653917094971909729897578643498186346602396056441855829733469669900209506764353608057833457041445656858937910478349500015529253737443509011012867217895645993690763430439672702682819799165053681697233362975379010438244954810901478133417137874319579806068337204165936682586243834793371265859514658839681273510372672709647304863079846900076367860407367075166452912864381535366463345494993512204448529202586051928159990086308753970333061564066960677901764126227599101752198739969744648662942816183997163339307863401110756250581415078038596647179704987003357371163752334104243692771458301145296780012615764275698311756889274002249074912938677842098199502187609269445033897944820916826812280258007944294851674764707130445381231304704148194723965343570017778247352102645579109884388470885444968049388330646138182770728175557159049917136313344768140921559836185279561041694782279161040642457559759313965447835806670013825431770087890492026306600502137501393374781360176488694822358744017779981531164704036648437855155940551084281345837577814855390549527663507189140226785178330420096729387038799371363781496008362626088726204237632314087732801805157042988851378284834008048497281388039490192252790919008008845916033552272221830319343954140739143387914788908481065935026271177760653273663446205727458038959921506550327802284051429763890275567676819027971902435228276407623718233126147723016992470624648584507686244889865148906361597086719238001281726270847623518723650738063585321387292609432951331257603142322700644248690931171440795150697473405330092296231591248136011117455668158985798124031171351011249332929209408434522461609965788389940087751199592500136740553776877324473520574086577375876354887539060066299250130509663470760896728899878024597352645643839435876857691002988064843475478919100339802431686419466250081129794818372467067463630648236971336323959616941044681098362761092909616700160941543175813818898938380656941978726352548183527319489355659026379753578088430546107432343026482565376831365067735961758254399919689907565299129232814924568494993764476016002076076880744681164557491724552730335596931547906809990898350661494825424223478972298802580247553587065014543397588355296958405119480081123626956564388820837857976230005417058587419401348901858654619679770884159308220025186380454901916048806436682323222379976657874425262098144354789085383239738203036640136662690461855870031360282562293999986552475909671370671893267990406567680015682064475905226948421595122243327736531590502961811769584268545547748437582158507164052807320708395394572977870247912469724840579556023956641180617680564077634826041587196048342067054078479272319441078789942937484369011521866047198822555539440340240376228145514136546751662371366955930995019335894598950004170884367696949475773572108970666634284786451101281365891726898491918598816177606434460858543875970109853476372290167635234335605758959445421108869411143250011097087246254564417278554995309264619795750943920620736625363031000930761122204633671046558871485733087044664587694502835023108425190533330466708049722442764077189651218895304394388534977875921202265897769653121674981924710737278961853539220052978554857410596221241526378010624923536952034077793895548379587625102370577456091450635815180551076747486463153542877194724706453469101961453040181535624578641276642525623544900063966083114867128000416907661070130931998858866430842131514863282802890048186511751283948577620496401551923491702723713121116981172564415960667235847060576764715819699002840129736785131737864963652404309045662713446710197792619590799885518696499308783535577883155173086469338206363107387122648508140457188964210712416285852075744971336707689399243105728291164980957282024347017899095670335625546614350062873094977781879737390167377574892435406590478682307946680940299019814774292537623176788682325993603493835142212560020611515498293772814351407624634451439691587648492635723834143799619517840767651190419800356892418820632096736937187340098887263946331797797106673881883678262277118199252085855424302245776570342177547762858534412039719676669486277866725965784521669973244620536088236144201096861850362163369998290217126893778123179403394268702796411147921995069227038167916170216183209546064489937358523476852084418220836168207144287228746912817375491590120982008990870927345956902648117558252039184398350800817615004402679541610650042453265658109027791329609285185032818688500757327761614188439898590272188420696994637159901696286687097631342218786846838051687095133226462260182990392641705945491624009855120270296390360004725283477778427327339587314998630309221776607211813423055520685937525050746375752463315533070940931615196223929889997743026826490447268105437990937717650081525740138227526664089544123406163217122539655140190450678700757930252773412593056135434720406256532177915928082090343884110178408649296189049504551450558733072189148277268695789626981017000392959202275507864323813028229050919763982553539437596193844365431501664286056097699841629115057603585912256729087984303792118715513855607547530804332224831206621880541642918525537958705369137568228831242686103447256718196873451672311199416272620165192545273796001218909858031454811300204017287551058299617368903965986802414075817699997267760807531527243321095401467390706239288269460748512655491852405606606614443505554140455435585392574289551862728461950236932949204493175245260823822321564714604750574666495211469575345155459602257660765740775425874084860373387775394753571582289354318852140951471924031756012588810062920567037136247486131674483395302562968863283514012412186391202890552442896242205167589733986457019367205076795720099881260922253882166167420437670899331258726745119385061741390691847631468665220420043522068963444020010909692118935600580508859083713251670125076467530641383987956365599924158109396461397992665568232793206257849980100004969135416821249254303533213877195083822515750500599360713772102216140303817940836850955267133518558654882943154109693133305385510256119019926332629051639040935377986260829150154069135070283005932079787334767559942543001257539145535330247036012068300226104935521189819121212833188248448773729853167250335118950749369122692527551942390969599418004781726435526711647599439847222069722715302713488590195284466486872102223939931741011230595337132440766353308757698167465233106120675505829106383261444277553035187981418871493527756463321647914523850465580937410635962243463046344705490497013021479301266547009036178316062586404257832177443472377481163213552978968629387615337073993194164606868693422607807870377602887689769735569570481724182263455471369604670267435380360585130794991110332968136002967976491599338669215301261881425373339549182567951664987200260620908697448670048877805346881577836262154329905611607120276818139734813220433327754874288828078005265094148999683274445514722234680044679221285292467475634955520254708735194415829071152326842949397297118626970768440517820047553098192946840001729195992845647040562417586823015025380541184621795665347905202346688061372607697184850155236723732508888250423019394913907114372702518744272313268371586090001293968938365955579031972742083796517326821682022218288059462167484532207562220629735724018364270557310205602176234824599777931949539062818796457066264450423661569414292519208451261638979340547551605618252085508372058963423013680543663116803611557632819709301045044364770120426891983000952623845672856909412471958484538137445031123684096045200861495169258045248347912297782044705900621097404171863454836715965066473648823112379016847798525041249618146538411614598157363800493792713069672317598011429557196198974968242235056971317623024496996273883819527321728831499372491037507648469432438645653385035182710967265392651702166984874732290680683009954905750127806221343034452257713642039962627616357056599233591507159727948428981674042176906073814809518229001326396048783346981049989296433370418294015130912392585667030104444652536940278957623121414871360325082159378333940972724653631107911077337172233785158143831650997733431578929849451720970431511599525942854844033735122945135150371011785563861545669434326239907109070646383484677178419575560345609103457725035980064872502307059637852437058171527740066259130257649423943619160231350450521591967655477177977525704403305699696619311628349724977155054094937304471074342786545159654662901176327633615829592486069578424146938342485916024382043276923050336237722268366502731554524550623063833968834129616105022065629022998702972790816927130708311686809256069907913941884186028258468077991382156265209367560529409529582264427659798795288320604989689615078228513998320406522373863535589964765964313230169214522516405741883471302609633515981440048922176672464225338569366488873242188642118859905040826499199737394653007229039471167459138266087660066844708868771362728747571218880432822586611843211727974488880373391647444455698628906697756523442427630989770818616550345521686944741803418493290454356248324808573534667275277020436165388037563536863042544739767042183874034219197718483369737299422858138655209629029791959298626127016712709374626459941505188407991016190743036234164757324414255213866049738024544686185478461875308911154354351009584470913285323788532248946247883643207420387761984641196457216804518647025171593768211179101766807048914132798235637322759920387439714557439397980804056083051373455448598747358609554381862209592592273578238301704927227750322850819770366194403569233573426094492448927118909572413333120624591811696572905076480021945926172487918159854237006793460331204950434035887680386110440720070600077567603386650068735717387150325627524479182063788923562697996378706256692307095073364387587679509411286616294052197883060250047893726632659291325748815763724677251404750502561813985517328280078490296128011595244843465278685010128875651158819024661704516225205309190991163348747122398809937398580446754566506066316172289502730921979338945930028475881408048801826989265674566419155761920057193768149216229217910925743988721018855650379324497001960186406485293677792374695304123192335293026388571674023856361345083861004770400621258385408724129846217939435381247357856295125053426420287692042128105035585027367990915485469380800396598994093675804785896784219257040973162395251141471342045461948918762218083556145260821723187738668860900694392851021957343710077150426807580172316425811163938780380915975055886310373505916115332244883671859691166007466629600176826864655218700830395507871084962334120667985806771774189079712387471987506433605720222855540960426727411063981101361957469353617369002977481649388655991130482548570747817310485885107419316357548455112259227906720700865312975818339972506859630534200013758711519522473612096909058785607075992705403538981147443304159110496513694695144254768592213232948854653676694959767580603409476939970429671449247503320347543636589092035130671934381943814663365741120591543559985345367540768892632668985602228198875666042530103116937201488144218363186935568045889809910453693413317173175337997801008014332888062300451585157572937487521847974501710821356625126160864364656045610830634121995723833127419525355630281604167300422086027843207627195198458444178359665268655612096658574220964793866878078041091761932518496924201879901953650524401407981517655409990477298770501720934032940471968108455286400045770328821601910425542029505860521335842707043983520714394178053072936159989533431103938319052068161787960125086620133608387779212938064567770537630920452893813443200972165827687107912582690329379323213566245506869281036333038204270033888170562674005042864192646241702767162091239369025026734759169849717699229950917471345330630336503726384612204143146343589956611033514673490402576157618860760019810666219030343750552016939338728395107319822114228786944475271243070347509940492104015655071533416059514083572316403727228044334404393060987577167694567570062522201219593212156506218173151552201073465209370736173276907387612292791900500837995981391645526674875431293154744488535456203277174302917505792085003440704777277544660216595601884729406443322446132645804180152684259811806927005109603269188292364896596070641860740048511465017728002559407657437050015625275437310145184185982508673220519207040736233440794991694239079168200709658369572068340747142414797511061347601176543552994210414661198789867812710834680885067896777887255921082463899687878230597010138178870162770871109034448888795066950388841944135420116201765172498201505453985854240275197157093463984846084712699469978641945999811185246766762534896204590409899533119252322628937547730438658018195413511613640288236222200681762988113469923426193659512090542032696154731492928524652917829136817687844376478043613146170133021338960567528900707149049999346461572663781460018782395644448692403292127582224124938202265632283144616490497191665691264865576968849490416952563660837431153701509587782134095741490273995433743938090117562413568350994880798607783201652818903252365064253391972901404197762349835880269276184288244404058174991052807768999068436927975679919510098616587972501437031262259389614068568932226551250989342048640897995666887631026314846810443707581767166148907176962544717919574436681036274270651435141319619833052994069227924933340101461842098912046028923551452168150903888765548577440284041764086949983495299609339355001959334302402126150221898526751346750055900508370740373800636452841184281095247751017643178895953941495339976404801146049185470820792334482940029865062176107435473886481426606736477172967286536495635287806559436362465612994381693331949577596596150286014321622645620601380269621582974421288522085121305017291313911508234925066189553940177743848311315971883572289668390057847158709659438882294074520750165932575016576066252045567180521213741546568444775914741418239025708686443544007043775691191121908664623316837331521224766544496600895229593448362032727929169559084983722200194238421728241444117930709252699724249790428727213046770325529011269774677935056719227234927762781134103304781961278775057669173899946527642340896204685360384752251470061966396366909180193664605006561926175698262521582350975269101639425971483197849725255921091493062805775897334907020745091921964082380916301897711958140603273175272133172761424968497114734273544596228712961577315493927997980346807932439901328878852686708465378592058592973352376988388105943384409240866055197245226263725447982116392986676671058163048576535104518924597301379157204139293120539515809819569518505091123164824383824311228978383486864964211552239604183557193641100462541327094136508648889222958519206661045053222299885128538425417580454029912289969275802526873264280065402122795870914623123543922854475914422694350813927310722487594613251208738957310704344869186075078307413469172043834854824906872974431159276537027972214366660889843697320518590541183788705678480660464071321987471524039552108697142008054220046681176754607593711634145098811533058707693610205497048787596759803237832999543212502027479088610215001355440370489023696711521800940702349595691791588487807428742620832234206803739118591824508076645032118744430039062130805754577149193681449529589533454984104621619723274410780051306239207481463459209793908206821988718590122532375684663985407977468353201921699345774080828818587231196489731364496018158466397992129773645284760535558264681558278940680717603572244492184309448765603816662469383761383480758596006858903038221658151342917251666791133383227849799007741848148223544639757136697215955371756158073361148824506489710979962579692590140941578540697804996891527833733388553459362185772253080531785240438816009544806048560586802366138257054188012127409812842671469902170331457140740314562605544106824256599356905483974087638869725489777288545546568049057720434062225599759471388701666563546192242555320571494511628088555806774476004988573957023646206671984806123552152730100800734126161598041812108481250452653496598185361653380459358153681070457243737460609757961125716381386838376492389509986852968949121993587062165585844664308011862029871134842548211534615536762051384812709107429364160539690559084195945925828138250850951023820162783967425261455170410324188442755075977653064018932828339550877907943272395447160597817204721841729563558824107025616481662454605501653590487534273095377922312475585293882149272081887542798820767490924867728015069184742054105140035751363641100443496129116621176789232057113056693213527804268898577119766846735161008498860056225841596799244635430805953531103403437367986003610502884171169170284084995697265025027999106738211996921623386940341886334308971088756951395483739417797517428305392711048219950295982445552662180750795115066942486951033146817409694872666930907725468153856070188644299281842103943373491019028035062401740325660581848153129119644971317658100739515559148781812196667425581649458473421627157743336098520510580881770294205821933292111818151682053927621178712834383903966462631272913477027269721789048789463754591649262854147802857944420425527958545384859403634627211175909183768766781537670829588111623946522007749265953610804008805616029781320452692620690490942713055247174861598841046983794487925274171705674299569885869115823262296710765858444595703909109806049403496181547388179297819335034885738373116167463457451344473033446799247136843506779620506711453963332668311403864980195943014067810557946817386754843237430790495883391426472149650660459303851409843847209553630524697343439414895471248330344588926694286756912236439808242985770169043502675007125689725046295933704769046329355330143541236461386091684274518911742857119712257860081837541693936643258625897275142024265596728415440196770312041249268482299609936279903959981718261897317538353221101185731789451006621407309826607337522744345802951911885568743151633801361492485752375246419711578461754942526003968718543560542156599864691020798294902956476433794266970413056672804605765619982928135094947246038903717416813654164228249335376451261463926681562510725468710681270361075893831639508975922137629323726021418898442756778162034993183459094361898308528719768726348081316701345491999894567927251333872504972227492673270730450027777448227322279856744700124722164593005703727453023416669713844498871080351701167964647367233339412664652473324820786889608109663459298646751352615723313388961708648301013683111289397784459031419932435015948857974590502418944832077823977709797694428891150305601622217660628916905071725569493373241739987801767583502637202485879099150703083650596500105468378875942523488421647472327870493611682521171965634510892254691053176644643734969967539633748058513238089829949642666525610118668578791928328411594752610246721432100142467476482789678602720064424171513800781534859004353432559323942403149158887096671525928931741300322584660070705875467364130844009554490110793394414208179572575031174427068995606898564918103126525721844590368739992943723498593203510398842370408745630944079828562475777968341569829690870379757166019355997634050579587756802218564554953236505062944930123539147919290615742476005465659234951604380309084774781726175239963234773239993689127013627176257385464001257241788494532500719038346858052522000550860502744538335709946263081981418724931124975421707139512508316071423611281388717533757869243054711835412172042251063824474322707470091044251318609142052827033368506966616626001108568887398020463654452388316346377642467609532187233823816749266944946538817168274821767165794547396853512935666283895661204072541178275219520453698604998255830180786761402730746927895536050153867566318663462740073179746302250237737539298533982446225820853205732738967024375897716000802297572454905803007918565365513280445744836846016994035638429122655091913112741923812393792970908388403764452437909925589902633978169599368682589058128645281414728819436658801323818941976583694674735344224115222569117824274473532593734454554429121324040405200460116739759513188694737843270121652811909659309303889594227262368402503564860953253235286896884061372401575406104250636477379812461320479243806916567279923644611265345503543652159644906525826045520460190288379666563087678827572962933222832122119924157697190492451643471834352564779711685459013195962566780515253434821954489032209094568284978922587564756962207660504176610855711288283350243971309163069473884415932981211104292728264443341994541684962298323408968842842094937945086413982985229482784849277128979729263745393695650214599303761566864741255395250073700903472069895198363021798295545341612970104857459690690450922256225645089722427100538475361890635753213138484870744082611438866051772965037200909419147819527801925506249390090895620961295690476048215401437246686199267140353345331596492221731049028601412903517940046861542713103575120096319403431237391147062462900977883701492632263476308033719786323437838380840915864935174129995663401804538903794248992927506598215558148982255939606015691326045531806258620362631352355881595419382431693751332902890871759866231563329412312722536714596108262605120317192971372406415422489712228766499617846837873538157104103228642328515902290338215567106476376154142514398580372630787872911207098382035136892213668926021130861860089707768442839040749215621583517512168391802792277607775066004657421503795699208096012058195300459884463668128838090293776106977976301380117993435079838472458975228789891048770878559364678816499851735956907729911502746264227789453480012817368421784307429985869146399241687230886450549575880170369037691434171493595096206841109647318312077822871278187933414981010778936881687057179398447203383531700267545944745340727333787672420958966458295748139992592138474257232958038827173577334090562102044551170152325842171769417805345318858529007353785896257889583590611857954553224614508813677796288064884343239488205174896054208863513795275764909649612727680168470179782202245721321634755438491392383089835844494341569177048184767868536411349888799624325833123804276532185810803331908703315759827461518409571682338715744321019715664755661445949074489682309686409630671432268795671139341156849943317833181256212768656374165666302319383415845167853883993764870082462662879622128857403226952052794760693369270426044123356698956281730735261646843969397373629085765083150264896335816335349724611006405864807187094555787060430104521604986399312405833862431871544581475935573049010374817409469761690075078708996920584312893328704469088608601255201594958552125295607094463995680479765152839648341124851435541399527201249643445454614831339173329052571856536049448612581578248756681906772499310529100191184069503337794638835897526126508383801724036035058619343335463121530536661124185290332013624555450621046651485621370369722383118063483270225699535380613717193170225586925799112053153058036835008327710464355359223753777287111278528854709921641302112364223927020585374484943974125157830593173286036305532524901251232369614382776294286823328734276025196325104248983985864700550928037171339997725964804406170539169959893133363370904186236140360357209887397124379740563611248539828581580125972596236007616252985171416825811798371206001469962126918173816385572676903657927054405303179083030540966775017795780144473323074325612360343473565886789716178121845356035611376828594710722226042914540925612159404569470464093788419726234508531731361807139343331806764756850538211082395763517876093525825745378672880956818823616334390418438811325755140460037326643660673267022287538391932683549334255103766149934980426515832612710149839681073851156021413066532236375047611282013739595034986901301637561735367611772811359675657090978982366567380299396248604085718415368956536771102577687176305529331688391154790060152442979502586606271688381309233632836012264828614222524279140559414427014697808706549562690195264969991803627767889664604163597058377702185134677272917414595915479619588069742654691305063000427979898372498247335746556927952819434564863895879576513242071181056678388592134243560315490955316115878750136949047636990645666857513585548338331805926518933741481083736545025553025764940238640045908702911956174617225791066894005034982887479052965950802132469839514633812947918778696441876688648287656023126495191005433366514420238532166679725178249404228632199573731371035664465590949917706137335739897551167071824568363238521693870226104044759623918304274144644766518665823397364430018936488961227135450753861579156580179281128998258091879718507968059630105739260030937603233533013184730050967046582976060458446622444558211623059902977308212653541363054184532055384754041910095528962833570476861519135296861567898045618382566250329184839090403306598298887733543311681921342996251473491018858590684264015118602928326716811657288294843007574838216792316541046850964046567217129291291021457489565716505637381806472143927704143951722216377096258097748956169363857652675485508634623535457312760967311396224817947851416274134686846665550583127178570346626666649616227549861111148580341426865990122512606132531578575148484931933282679508376000077536744691854021465612935350502344780924591171604840898925663342831032590696684159105821920271660347877184759187660707853449338092035012201859955914016944439856532401712708070580443827187941545880831003025757984676073665778952022174220961380525572889885731040630293946698289701017748593505332082589805398329036516351652676150900455665410595874698518450670969856986550850436387728795453156689206090161505936916499469747961561003578302290141716118438672550722976228250466319809013412288107281587659125100325497102439776331367645329023764048578922476278475620201389826763615842944040667059560548055978844877782356719306263810759304911964796225346903307248928627396136424821444274751135842358161155417318823087531777260485880640223974718680795213880695992125574626448008956577426316057646887607479514571988890554625230455559563032425298945036839814739120287862854362424723393917651592796489838073186390163399913651345642413488646124568996938549278785844415295424021091119661403246638473501489120568889369886492378136985847207814844071357597720501513858083843014947065448332615871837151627261775781500651518155801080953845428559247734444501558033912366906082880791767255346403498452562123500824714347882169387168256684369359396689525615095573360228305290796462821116701232708547322475424868357483848079232585970110526197803331698933201706109555262240546037827847448851410308629517078981294123021569554023616369619798170656090443228352447541896708958719465408484806512002346238407180978024198434547998625617569165926166907168782561825822040255641378014428808255728862155310277559877646205575358560635843935428440302190338752532602609342599958186223348501745152593471870574647887417722876102373135741084966099906956755436570763494110518952635274491766930742005443673168829109305759620919903074522899263712251117180809944893696412018240518486667088252413794117392635032663889232678944659361482068133788661714532938836046040008435306177225097631708238430425348581997567022160084203797941117544009065728092859321257793012905582226736078347315061284453492082808841832514775706293740271273511506377353385113225993428800460341760910381865316061996781209864047414173795827051416713287418286540783050836061917826516225734519880788549660211375891145818781323533849209201813047499262561485959312864730090868973689370729305929069961261585834699622604721841682382749509683940735651471935132636385476227184358065008656971221449241930537462324617721822319996871079461512761279654414179570387837556886690814962518511679567943339092750359674096086124846009240976335057918047251158509079019665129709057372519608664547874027101926320912840475354306203806023337828848366475778306773478716604073505892061118407269589098377418166686906738386613366685061955412274244085458921074136933757931677759156846798461633411145568607750950937620477482016920296118489597718706324708429086363518155989015322015187812966307528340030389428742301574603337567829416417813057184118827336736072897992091837828446795992425934425569345081916848555193589382403239799151236020764366098527792657732912775069336835451435395563922487827231940995594184012739369243847824435134144196863364243151724616864415967377509194705123213987784105678502067046424130413820575206607965706586864458544548885052351598494979876398590104390173695799648891786916535837841607490140820834578819040339910355296341543306422637742316536355940154404365579626419942290217260152650608928940040737254945562898260791045795067216669995810665395544333759332810686527774259681098862322375234334430058011055894058074376319487350650220775077441519451228345551879785812342002783309877666685794773856191925584734206213129810835700699064679754521733460223845244350186416865392763765075169885634895269165806586677404046324155588846970891769126601000759883947555332935364285665496188452280423405622412382790429193097366408663363735721408471131346870862731284761732541930784778505053775930959794922920299634756201213180156337118460928585417585459183394286628901794908059029410658388348623264107743814817664854736706409458892949329413389321168674873309941906603796888151197012537817543063058454920824986939594884483364313506611954801473094684232835380658443293165843641712390015620113642092482887237142950500550316105768169020854177982951181757081563888059674587644078370545585033648740540832139176871614501537821651276394571212054519050295762156307373241938649947253674041999721977538224640304013458159407747358215267429073217784692578729009269793264155425244523312658903221887105364010679787740608846395057129831279178024781184041692934008912796842811696881718222578081157341440360492239020043727070894348951124822170648621974111515990138492310374215858866217553492317975827953458075594585398184142279821905731674357414551016419388423876042080720128200762879917801082149094140259098653100849787808945647840539339717787443041118955393409985238461274366582949574292889366925965358922248201333321672569178716104713737864768170000783057630959245453369259842354814584355080188309293665451841804330373060014218390143956154369660295168005936480454421995330095034926784532331581855402187690308699445438636679006371633166822148291986882969123518725376658434270152069086520635007120569814890003172106321846302691648606633227798092049046814733999028711471819842389242706690615502751443022914175600725132712114011310222812716521751154186998129979884893732882101643579010993625485562979900164514567977221629352932256831932263516110528651403846121611199064457600202609825789021348789432745228146273673715232630665640034631617855776361714864416966630777967598047579926996162236182475132322283918390365820783613674046236396915485325265412515557535195645019118182754404607296247439585493408920123928949194063211450863214055496489990464603996521906271795538844957478001650448777582372379523971689392652077921261056722216847216164982279111917857155349062458145592879090410335295891201631541404316316583394942671328950856750967675241705533067794698171962578171748463884437998189046675777260839542600296102999207268778503909482731261093902748601464725387643539199373907432469825785484552251588607409106621175238744617393027323856348304578367498057633225331518180094689473038230430273537686572407957144748734212135871491842311535789457834002926031671890704241232832367835034388732247187882981019923436823167542474066283019129132349892095242103065965649680000131804414917232198335443509967559494018898958869787599671302345405702444601204971962899748167622996348512103400361720353405319157217677492351516606877765906159697064121485941048749136823449465379748922878117175247430914971866976364308395605183868308270799132847113050328361276194616718803361281704229705331943250985478851887189747538336897677976674604359262919303734576937516138177448086104929903299613775874131361168075941322341207370259055989980802555828576296141259186976769531347773750881722148806382733486081610934800075073359843715132151698566336655865965208537513081331293097523256700536667161227151331346368790909307849685615985771878957241409842854700632479855277295313258508000740486469662732440540347089001257782874050471342037579271930798151682025684080148169095612491245910163127870391994299732979031950717762831537597840867933244145466648326487414197808635489443390254294586295857662825515015434517912925013566951729412334633335454403434132350634645050056302161624795392105663682359317285695089708470630613879497475411883264684331073845611406320958837956763719709868956598780093154345719049135992768646793932782155537776423360368723346482975241333312925655148692997454946984299785244630901500568681457414456392627549948883138818022941616341911309823909851266865548137145694393167179140207479669703945958172737640663656186104255893522357274844622417946809251756926186387654986998854590741070301472904501159225081969342456900162524045519048856520740050720073807866567408144407499394273188100325343514189912675019265528090653727170286544513670890710012372227409314858331686888057812451784285514189156719199782769307214278448822305331511173357551193703803452854186197394336970642998039730453870843958855544192884658961608075979168337634598805861423655747013973853919577504830949549155987497635401485880757897339227007668327147095139004021096250748438251732373680276989253482306619286062583454826279360886929473817163027746983623997394860328593481957778221772985389678996503038060629855685600809395674138792002681597438185599291432183570376511702892565454179483964642152493618827146019163413159290180475044611113417980960262358983846886188245976349893988681967609039241656384202197449965424827277642956089330431486939320846642309154688129026319330810287987847753203449130038303697119585834691307372865442738628741793529238797137307338323495382551945465384834409784070425382983670182516424018975665789557576166010991274251972226152142750862333409665118488470935523545871082509558207678721698839894793381540460269952291019103919270485022897990384908409107411656465480456788138354051689758588758279011924834251988914423531216532854057359884908895251594802930411761405469910136650759688669363845852137519724852698689569694000985929140064960495849240826210865977525214510700306134508102502315321516195731201195982266749320027645474436421775238382437755368108634869557180440022903546469567559434054327494678507703894263035810612756463049245310408041280439813981189616587626742933912107527582959239933820583413879589941544899832981107688709032261746346181041384202922439208183290547970786945183072716930101170543285394179496937646962857975707287263496608323064141589173506334027218515757568418848838999021191462298316067604114039693370664166337174120828278156860838549679954775436414902702158998741958380186083397243283693972291803162629200064084627442332506730312523840943583117190457016271025782334829260566158506293035778296705585448228050372403257401227065613154167416181150157871125033288320012284452129411785714304672291721731659010789354484971957900140743112268086916590430895724082146974541626895034497357862762631950221021361708938810423860884227698036189100804202566778166309002302727158769499527733566990672100710435249541240197529784930733764245687993580061877581553921309400732785630510873882084424157118727511313131789785221386767821232452024392241214128343320627000494872323930161962879911804116731764484640959438672139125964602799384761913023733527877288516577774570510753453101890094260098158667549729251408815139569684703245626953799622346227132191124447461250607042352040876849109367252799941405663287981006991749306121944667980931441777884845178900111778106881376799595542744885287399031114014459693102358549934744449283487218994034015610042907416986869820193275551839776832881206764744109348430744486012987536109836452059371733731407359126030004858724758333623186769130146277685890921730721107150407102714739687363611192518537855422573216815532980056940434885408138246794690931175287904201540044625558452487031234469023612206571582295220012184042718971083543426453144911279008121064588197616257804776453003669812408459719324299710451984480544819539856818204997965863754892771596903708411204227598651901212506512885967697347191037214549265364496641777876353436429967140748323968983232152756095044375776089632576147577993633317323846118759745560232007352694141389387025538561387337219123139202927346085627112878962484014324729306102907579265603828198000786017114775672184023129459262449154068332474520567817562862013179342168366582678457662111633027474348699923958505439569798967355064776930307004932493291957317906126371731894437717039444935240951621662425197706676297566901867805718626531304295631955574652114693641109173222039021703855557778630254340332377885316456436542939289473838503384583902383959543123319890369522345200320069367171394086996406528907081482890613533993337855813267148467461289145868815231812804498007077800495855415323554790401579912337533740972144744038578985732526175836733273875465963910966185195263826748865124040146124002029214935048624584861722713400063503468561307388568162231536752102883540850859622337110212715592215028804025162521965488978731735960497040704152513633290294182022442856188153076884177023852690662015420047101570607829356336866276305523035365138182652132361401352342439486157492597148381074691897859466276444528147570466334894752927322389495007350608769514691495739425907803424774448867177858032152018888447719197769301949550863073803207784631213305016571570728799122803753991188947048832980421341748636617593417238212670360480475216669578310905933720796072347892320845619526504381796414211720567112170168096469435454592371805021664276308105630468957392047227288080014578286984824365360229524436519179075672517147804291015763403796281080032218633905352101577277761258239116818079829822807812586619070583193803302514199995512529402808999816391389900420009300850937316049720558508786827219652702540611921950803089354144616113116274851705341418467881770908223459425188486630217128424719839545085235541275207163678897693561150880558833220298044319118006566566586808544462227918408779731964181122757376385445767551243587524239145131012233005965485766905078996332465802235618414642562730250677710694851685575274947318871481255341501654073618904631877038771152068568001232581549261518199874800018032689573408372492472565061550451433294743420326813306825279710945625020846731129490032138284884450358935280449246978980683930692070293718133181851776018700682559374209293065809550239287936577035759768441052762116248712853769654179192066518320783800587559945405550853598692386075430451945988486969642205219418283054362303070003722116672307792792688628812107589432218097884574668473196244375855381818164045510569086077211280913637778598777059804471816916574779696387707964214820132263571530552016559788873913647710587432579356803393665948667321372702412677553856493122459873060862519309312357442596962443357633729222827451198459843484679304709866872655279686264498589605413731932470226288244609749719435521894607555490190058500090909303280433295192050087905675542634468620053113633107386872390870944914174730657571579403197864261743413055018146143344333623751297065115855501866152987929964539179902495858899502733345003716423060096493183917763649173918403523802852266697479230641244423796867960459250462583085838503533360200250698908127345624114772635361342049130322029172705162936410441178359184600069649399549535027622931832407289250999598113140639180455135221693426380347229035679618052153512989058527167096352887053015087080811468820944757305748682960961304381960045935529475163591381201976855060584072860973749511660466235062459719506810393270262609049326325439107851712522949705187027722000429475984376182450272878021673634375191236459410202198000667638639958810730178043927597478810389266407942573075488243535592887786632481110224759436194055698872813937966257180134082314473632970729173977203246945106408354591491351466676152075473292446265637764391475201653166152815577076768628108776234510801149167521713430232300799017242022945131955019118981308648437373731486610071147376813289929436368257072097432537223209913525225605233765258654729453344622883449996465095617196060685643834960658383533143745185055568295959390140399059867462063576230672550158803713562780395505788750122155025640239105565036307804966865800350769904047611954850898256817443817443036020331873896540661486943637244831123754346575878122441433004703721008445878593223434208859187481535914996137871222579634225713939362067887457699030099306589102891868949138419102128094401416958887402718331269575472931449373498031279962709657224736680286473183574346921305459201764611452041042632234937472381404368079293951351235356709829292379751072040279635455017430220300911818845911938238111061283234226275744745232324380818249030728396957397121109208391560208004079836555520515892904011952990828382437082779212279862112730900181684384068202813635210810840277534624824539237333161163769680888832023285632219021946672801773242261905273585243344230670992741196277513423377344679173871438904839543737738458488191368045001376634158862369198903794584510359606906880616151875253455190164288821492114214311795879196078992091474118440178792966396685462426692632839942031087363097311267205904352877940375175244281830287752246872987353529379573538913844192033085935369936308880363887778593703622331900393665845673451813614400804731464780847360712272859977712986837923457206554267271559354861301961425654924042270210973018241738397474475249610200811385797654589820343974743305015131204813136903484069800880421109223146723898973393344604235001113000012445191466188514108291442578878759878822481648727834997964045958155705107288136379141774045442443281402382642676823046064395183270039527402956524256871262514189270002579095138343048679561876891854777624602426427315144723114222662955766060856464143630264597946199658764393226693651760201987225242057515312061642586535025732560524832027818147221681881134049851147885409716231222406622756956389109197637354573407932687214469660953188197872214066563341219895499839613791804313243296582118731916527908029145397971119441451554398052430948559950807372812161209861341019526324306414964536623194360998929293645625303816536941634910952470551416790998507982225819545120197040651731466387266319512614899857848510474735380389823031205568793244239889253210552632873413736079259558158745161272957982351903815455615163241190188559753584016282394431481051479475051854124862038744740639665644335433808243218172520987973070945493501570218441998380136528534595040093283650874201507892496001495559473318162560533242571577226729706398516281007986249548214336207030133122932242645739155182391093388871170763209184121337747725624507132867031693669159654612206688862460002872652945971198875015305562770802203022326160951925479900997694362408353822695134990425573439332009623633234542574251598857011015270895675933098297463757979353930473516797664417706108374509131922512857812295794514027497872583330847352161797655606754335611342161098049613543273786533751635822450276627939788781868516448328379697087611669087192319043447006785236061917617289644239473443464692970016490131350028490316418658898289566483582497251910707783796787009073808647627537622339763921286097520679539155404153031891771556538534571032362984020440798534116657274707785153570489802752804950393344422069089836098485510888760928052649115421552610299755269814220013932245595893662917983177601994897374128970266510371210225952617515625985446368075500940330165901960221133282307885431909980103169723434690018403244933734380624252592718074034060334645232869575844923034253301054720711795965839363566744434139802673114789122282578771671541180610784811806246898786714046115373281135652464901720099474638835681301986539128641603287056313544962886072100595519995902190342454966100359616701435278771924662490807281103377637733601944726660817670104364486218730145701181743305464008385452725107253815117738290500188855997337949311391117405510764411514940922545151503988555144328024208231934972334749525369800965966020727907570096499829691450381540914844296364338207406483505138171448698097822924759765283486106564717083148367074705971230351425528853809643934524523377028403998886609629248159658776565964451531147427345855990149041044075504275928162416601792525632536174488700898336985453866730257569992293583689758045071661932154980751038877397604334111766091825835926694764550188711963531675015623885245090328542545612001032326524867671195894170697848537610118152773164100634608875293183767166275325992493214840383190287537364438213179926064616434573400725683603330441110742743187753683652163795109621851909516485566141827170583612417408796277725049968680190053880324077977474469105801067255280453204636768876294286407069598469194251696840876463060248692646090124425366818367929248448995467447503999337096979236870479865914437425187957601118457260035016490588380137909135358226751276960460849726347007991098765060511250019366101156030803008091060494245595672043646522497733355517572050565489520322693761298061214939788204727140615082960406292337133606384684078159655352709457251213667542905702790261786833991896557189422531578399370483922480363655324278908586471718707401066135033460051290517401444243669838667023135286644237183931034639451113268274969169584336077804458594739131659583688497680900003671598509912311520443189938866271046167198856504742373808557773133289862169618758006182973578971001579620050069439890349705850039475384433161176522504829882440229441614513715499910638948167577290515660826751370717158285217963232814737642569962153861036916122594198676258288128155151858772496166910022035235668629657010234117138049424925441464977599043298727561942855110232846404809234215674377078800238005340103679078273854817101662518178177727384485101649312606838994862171455179155850109946991791336539293284203015440202195220580507112364470800536943218595750330860047042806640960014372171147269171887964280728939079819474208464982812991876749032353747758714142716974238186444615895546046263046436197803867812425918520597010105221941651468188120325367278822039383974906599997031271382701100152497008445904933192655013184435399938897123208175987232341263975506875202266271013160902590998061445626148409529815606211607471118434493669450018014700400748135421243837879284393130194454320646567471224137250087807154851629228364232594105977774125155591557098681966105971920640946555418873769117298346695804591842109205690004672982371473575570160213400905130613343242270845870239296757925117445703525579292409873286110197440148888138088969840738208234250504850088047672129930567532965145143873467108674204903771299837206128433635774708963088110062092441965189916659872772737161580514229229525513087530072054208999245504790592546396482457322949557041935208472176529007418621118639469384789617973914796153087778913403482010764352472352368326282485822871280824099420468710692463687761210927326028750416821527386250294636581477163723375540580934061224516067132812891936414945596929424891202421260562730074508866362630201213910664002026552824949253393056104132979527470822450945492658285626659025793628159403450330792122685940351452349777180953493297817442774706308809267950116932458869653180272747023539690054844080512248429375956339936408659730230796780786568885829827724025804259970425266862759285658222489482592143507059041562515767821731630272065673723102685627721676776066202051089921322793472968572816138871399560797438704986818281641373200019727425938918902135248495559666622255596018300991669772472887436110190030795210042926472283390143091677036380458599743607243945733146647142691540270360773576949857275338197572274033214608907412737331029968521051914229230184410080025791540946961035016230236944840858341267059369719255141641020625846068805463938242806038143653622100454792878917063766066741203101601982122209992765134614515318193636988878534629476671412473427117733824289888018286928408454692259963905947204856722301492097135563064813541024809318516224367982675635524376386075338483316524815292280625897346410007097431996187633246773765356548805588330629109253527691367049261012920557026884215150044347113672195761209485222565099853574548986158840001835079750403456687956404709135061992780422933894948736555681639552217357732152622670518191132192798295577708422331325814372380301863912528126102842168631346765336819512896209842839672506818730504435048716739530749430531584285480803235616971542843255832267772799795755843179811244828713128000656604593916684139793513123607968023010800600971450298397668931985187496118205783918105814175538697423886688091839261702189476372102052828464417017417387512039294217394874225711835395833940094770406331678704522438578273950790257865987842864949769890340284401477439896834390021961625588354845303573333169206979606933354207456134511297122232834140978477296053601362274494348166092161481655923225977997949530215553056239648744806313066774930650066989071562616047199433655199774093609084546452474312949096615739306726710008008637882912760106624205940818517704513711281740456853874263546680869072085723254569003830540857451239471956033812098071800251587640415928840831183945005927713317499671999137602399486307539938844290206962283214738789772028245060527769575424819289498142374372738993865229119271965194586181664958879788912916667417390913975628891097559427551081065636123278406160945599897095090714530773050909362040409934972803440997119854435241858170402911930280484053421825849148209008391971466721100219798227866876337109061554093266566995569473228376899249081664466168395769748306336420541565988859546581359794135561249868337780743345020373946331768334735464918154030145722239992318838796775618554203220728302256693542251505856656517163273725701070562350994036136694876809343020941192704438616767017343196159673016101421867958912907217299127496287364900082131441961687220268817235511058934645406306372429589686403714264298157847371494164157679641203374461703762685998573151063414410088648612792039890448411391469426320543858798077750533561745477291681204210392466096087378628978453275884749405691275782629497584519300888888591173408080372115812315255609089155363534267164207002836879332227657129047307975416174931898051004835264683896419998030569733222358546615897493773937887681266330296677448037038544124673749352136765150385126136314633725842962660554807140254871929708640744880801417790234999561808642967210651342436030094053676066886295842233839280237119881029846481399396949874597351756125610017026143923944926732325906987883343409892743268137832382111061907571279352439378434407152368333379470543834271669803136182137133681285674843042124834637093134094338316122766688095594754364565466681657901682717322063008347790496733953903810790144564338980796161063639167672964264262422760086513621666428527509923747160610598927493813628096516627691260964345845390676000156698229531978455816591452168569102508326803412402591037528824169977713784457190863430789387653371809490021997630365855659420773853942248810735412453351669360228591211436751997417809323391151899874561672584726248642669333797912665486401400313871521961463271022406108754122134217198151209394786506882445781598981338939831104001085244002263020417895995052704794143802484444196501194488237006556443391131980245384219455991880310673252426141391920243941885797592424837892777516077313117999603075098804704777824050798321720978494165319397045582822151505647797514718322120016128050502601889934065156343254340580788050715346050305873625482113142731492913513392066204038324396286444734029811917140524249163301452939285266389313664605704745815669104848693306625969742181427310090006151964319218498567161792416817423756364891230677997816960861851910392099060102398293554248575707314280241271454232697682151212724989978463191230140168447259328420823344520141112074882369132383849685728613778781774044469154005414366721110746683731929981673226918101914757811418572466464307527884916727149377470412334844719279512249283051951339476426355612463659901585689645927822584349210897828423871025142000816120740132879644783417876586431787961831697618612020638431933820352596589169687503306643967177046887176896149035907149804893795161995037591651414499852223189072822779077846713334954269425138010305762010992796648424526644259561681060882738336950651622454062440954190044702318025098388054186109399161635184081266422589813120983018696771750693734731001747891627184316907410863588085027990804893238627040877736237127159658667564806732088759625146819925635947420600213312077253476549558609678359282548923650152214288984645350354108588659488406882798612534977923837096960895432461253680602811222538123484930645880121594701447490330794491081710356701343018966815966706193892773471531929341200247480407888990132804166203796591120596264894684166297540916729750616166691178461123721273906133459225840196845431523896479342103423236002270344323984323352421035417808102029991231709171034206238410180535564013654792047290703467700862759278743510745325058466802715074797706575753816794352594300097151773301020164118007622653958123157273603332439710162368177560792400885554197179186982482777522569264789677777477829729150262191719988983400598583401931355966523736757514248864753734676054317883275683837958657393096488074896996238827594675330603094778488526081636966055437480382078021179818778603643195211384181993094982289269946045655231590369613398703799467825713930453967596626293079090495694841169553208234725635540563603206338362933828275439741133037112608323067637282739466110834026183516363778770349977314192989283245496502225798643625911164247304413325124994362361402634847483559659892171834202007873522618843294713496771357372161677862537526990631485403599964154453466062299770395387189867652579375237497561896534456979322361252417019649430108845903907811894921800881026651777377819809820570244464843572825087257813536816690611527224529460951996112724678668747364214343515529315364149168697742520966638561249587401405575986785058004618889451517517228422367110897673371765295903743787982392655674485214364552939991911362734621427570130982523636654017287519992126277414100646740514135697329454071325965606386274457985205111492679239497033304290791970297698638418862067826010915658302158757475925575044350237619335126833055267883554719538163074264048163511403831876972693344424428516361680515317158218091960263986739950797721441193487737851888396716309626075419349420406459493090094892631068172275738721395940466619437415306840177723101104710481458270451978593141005178212355253007314023169717563278544631337774072147022952980220082143935337870697865698820207575369859665721544597260165510334264326689796740901111163551627831268045366747451517842739475304643417768934797833299114149325924775703683526393230600081883223165447248018810240874199212782774498890839537680832417966974545264001537872891657408732749430968732746700674126376587699019628070579013787662560324442197722931617067386403011258476637594999415198361514982470520565008239810138849512824446751127282514083905158895116868613239458946639551926896042905398392002746651192190548584306252134422423172176939620405725785499173630732162991732604990836138941502427064629482890762765439881461583857839701036103978613118302505679745355244283365916507900759603849588018405124592670550884155390725209296467154135234914782718473034707958726763634323801979042514281857781177946966453526431325662705211437110981828998341986769046629842187384157449339261558043734626919531703491840193064151245103710664386334809007529605007750852298589683538681144418277839243768141492461560068847789651732863383577397233686714261181690453167710610344995158555966353554163299446196914718666189462309853871080749138099787922742782406119928700512582294208730194567341583563335022256100684450150100696311065683813750273548963258214563793719355325669233880036599085148243374711540050339067532180035589979486994185977961395981421963435827169806268214524388185711962420538772532691838452094330098870299403085577644663584381118545927068471613705889770552150009931149470030816395721825784902187653858465856337708978840216425995550621366859350524282079161860074690772740784931801987530616612535759585392851008937303094219160028813129083493940241168578097149764554357366196478754100433552968704091160859309732038273531556507190711661659554238188733026163123782659306459203890058819189603702595864389788645529747338255833161168428560018348334373996815415405985039326211738876707584266687709662277865920609341509805595663025146708040163435276120157657095263642212883467367271216071639614726340983714886275258060774444141272268912301411986860171079891343616071347018872880772105416723288579022100249225669799284587019011274844745808522365641624199425343803649882761411787766419988372313581538700838906506723188758909946145718082916669014529618302156511949462491804684239943940774209877234560871787431822220498586167582080754139374731899595619990368788399284068732844639389547316254353647112957992961017168895567196818047988559699538971873850620676326703794778924755763450810543942399294382279630821908601153806336289713993409768733836467282449433277417685729224210695318463290413602054739176096946422579309983141378337528333870685850091420455149567126672949135050493891110352694159840653656380181690845798244116676667809479581415095242980546631608763609344278057074830668089874852114104008877941689290361367507387733628905871575428456963377076717739171954803170507321274529186382672341045205197257457322052112405702142191519487184825585496901527302550589480485846476361231253147231657056210646717863872614119899986480002490027707160059669993420334739141169565396448995300397708764137696955424987302958797999623694028484471935448928287730394073131333244945693120107343308586429779717894448558689513166625583259203260758145489312609715444065401180022245370772793010587333097809895748740952134650741768657551870286809904172752216571907217157994298717786354591393747786971274467781747134233153751776617144827449514465422002312804035195911699379573881524195593323629254864280853956764430634562107378675844755020811016443178789741973212131416994323199148339783261356802094649959515910906869124112656041969299185453326940737042815133996116832205630392543441272276207312949625715651463025355421521489218094514693037785689879154442075670668491336373865309290066968408528454535439890608282708429039004977487593154818941253672613089168183740143177912003467460363973990101246801458755231059831369259407823540406918373572054401197174551587787363770965709750987093616876885450237447459328224492208865064974404490880149839008471565954059443036391352366528898685022553841118247572846402126832261415576312185108922988563020408616205919117035596716417623877863268173748142110192760205723413836144704095883687460694268605106439317200374265845458948218963880417412879791494840282129391334685690643493750770984627015942632327466067544851301279496266186745857086423239604043801819567307230285437573810133338463498707238025827579431425615035212424462202545165150283469333664194193304984527960856115144093266470257857010930448831260628585483429897946228584985330706876420941125427696669817086908857411948594282203378910048603438318076559493445528560118243929644814151106590080765635667265296930052854872100908227574620333567402309546152938094701024736223611396260736068397909766151041411090874754687269707173332602819325360087243790018512413812511348857087921876389307176821121863202545995224062541767076522011446404562293286987566687298842806774117027069141166484541896245842285246577573324048814486911276313413520823746663979179143360416057901078485725813621987025792906120269478558054532688246216499670688977452213501000921066111636794856067036664665996886441839468514120513051009787678335412942395628537595644348405447587630130456296577904802925524656566138512008226663837040716080079295055505050540150230924233157485340875303352237862713986583960000927690460822159254755670603195769493377062579563539314689500267574650055820385457315821834582662939131349798687372770763822370108622496164026476393924695479139919723760662093315642627399995635288766971221937712247821587413058415095990508483565527998472055327547796846353315084630385940604642864377003265354175407451602200099598453375031573812510395723895747187878645570372920000997894673049075921084047850803129243231778063917790747460336491178476535204022887891482244162376560735074347545090845493331974124331717365139494095225194626426838859590477180285937380854048169880704138769822390802423942097520314422268997906820714843384411167453139755796324943588133639117779341259058817185980515125161704661382819205449738277090440032013950769678109418913658803272839908944616279811961403553818511340364189973987046112848469472112729143765729593455222790200292190077682119351381877710251367656970267298242685577961454315538250095217547409388080403418252135263883733589922464698632620421246297293383446414425037538100697314556454580760320940495363271977874656927882605745983516525681324952882598736699459204433842806147816020863627238957979324512413273352199713848844231844361411902892627146349593827152371398972430640974280278541804275198152338571574539672898375139677550298084752490461595110212573973965856664611788076193719764533102238456514203597626732723728873243613065175907384123069992370900810561201724391354892808126337865175496073464669185154150333761275597196831909804247858754842603390528503097253243235250116848438263118589826464240108760502001819602873823017336455124612080570385967706284348260674803279709430782803049339393362232656648887502596599244680296478371824469136106575970871211823235049746914219454047108750641789082808926990524723917913287337612199187929903905584180660620040494923462392503659254673028693794502452993212021902399927988315150665242272298631962810034918296254275187811678001058366466023648430377971384268220116281140174809104361108054435830987854142437433613125452742425644045207203938016207597641910546967472254140360921418082697692319958667709131423858473485196035574538209335824796706813783665474044093240329031293071441297575882482677554531190406965502395780136747592223909170765047594083880861834421145948180017133028200850416463368832900293551407985615631972363168843240873572020994401983573322191734379185370523530218178081143653956228188926001693445380454122667079887164298819387834578564764284306495148501630121452862806158048891793715939779397554486512678311596843267866914322712871026572591082453235402781499459242594549568226356926150518979482089713317396679951484124980909277565214323234457690202832361863408574905466634638219784147958737510723853703584458364642248945365722275065603041274370488130989813916418933113447536488949411991232603930739535402987092831121281151445327548632942940930003579153081334638832116637860618934095484067940179648795583325982357154607460749453760238905661995372491371637030221833218515384215383073466018227173724859131993096564967625362498601849922577831902052427509782238865671869691166839635838559236768948234813374450069453053437197203377028285146953763548417187747472182289193977164637723734776315913913690942825600488787304078649572150585355560592527580764989354664705109651281830036798518892058929865909483667009423042264278708823574298436403440675188182665355256390898774205363395971524302740993112987759711732700024042513721220578665553955448379730420920181248235656013830104205044408520880231262919940849580003253350879958393590127552865648373415742243269412776899757369513277830686592233320840299490065865214722558821330584744257358404285552354022414786338179905155463051219154523906790269189850657801380465824810376745727059159906206955165388371493753506254091730993068120569988354232756960841284012323596192899970309202110810041518517991272589259949653374777069792874982768922108094287841565903552202414210657545471878138843278278438433476758889087252638467601690650711971167936420263620912166263412593238461077763265986339432227759678221590081370119947002902059995223175033082562538874371767420822175481650849692431540571736482128443467407958239008441253638464124727887540230885933027353862863634097452698029807447979127320175748647167035866534257219352165979017492338146594455042316337176094875870481768753709561346320008658251440255104009247202354346523113433105548279666071699376218909468010539334572610877111982752879116557037649015572486677821065624495578710494859747999304698058888888603008522377123373780480475659948815803608486221363285086522799160282305316690683641444686563710252763048549420580597717037254770297613860720827518801093481598734345566772592061704505763731276741870386601751302437712447262045790524819082443074108620514015282512000775555798478878641102617393257536121992897609053482408085830040655501017015633666387997703107640728176475291710084642557855429891872084416753739728921949026602148474878079080412455435770209461703975852722927652803493780126916312606340258797055195652875869121010409677589121055581507488032920544253836771019846865824788871914844840321332787338914450888419694242582649519128086008819307549285108000372066070703345593319103050254184097125150734010470114027569161502166525850771559474911889078962633779597932102970431123047551917976296552989696224898819296357013635181441062292801966171504790663049686453234877661313210177061214263367481684893934256481090341901806590840452735905648164430875264564543714185322429324390243095774539223290871519770599479499771787561675832802352579925444670444566268075840825760440209899792858783848645785286411929232107119451490583281999332299189286677460899692912024522675934976783669236034319278282466863319717216394100001454054134845575546066156206794207766024449876878099677022582994432446967810568109163745184989683630877192213564251942509555531416106482780223628922514180975724225651391262728078805174590925581381068852885915243339960058430868849233780344275030880848788928649870333723994344798430896636567355413063573614497055352703595917075630281825587364960941215453579360530587551549432358202934037505303397453436149861945794841293881051094146527685149194257336385483920679143562763799446847413771297185784829516048128676547826262184953471123918026586355984237389699272018991724005963478560356149326510876815963633408475100146769422114243526752591505738742381079747785137937473566773652526210589891333284631777526216290684498353016584833237829657618878921559385082298818634929894825355868076348579551863673083335760715847864439242429096385640467630500558834255017564702226237112004639085251689981589453011015672788853517368672729305199582251724966174944774630767643653121628794652519264638928014117355873992873839558454834805593928464208455156634358944587368776699872421095126499793428582319288179299404768556699153958705119813264349686630283497204661840888172921548077583136445417856657355495502466348483218255647749256513551853246071301639512360298872371424654015552159741148610910880163916267106032987847931491509103965310375542186174483785212062024414685098730787154314934449715453563342975668234950487042897286715978669980827303379569922230487074530535441175007894609681792642781731083519013712632142402340198616448864442810433297444084696524312257921968573519297479003399875985932785117332133221836669143221834843789453969981421913504090546069080951790028537074701358828402165298013220872500950931221373836501642461739248416578280107035915010988420972269822735740538556654485470847811348676471530129342067047390479716131684609502176611368530639259256932245929484003192376948386142674719026302786402789112144237104867869678517156289433715422812748067371908519531974824904472715246786698008689252703889279367897593575924540788889465532034698347417409221618250748646320878869456843108623644632813304203030036225064334727177935706828578244633862617731204644741153702418385548849042861069388276305159173536959371646984857773344352096573683805235211717701498060762249847934275755860351275357317531540270710521189623206508030551020080461069107931399350918517713253933927501356357769050791551969722730494577949352537014801734916722656386732414563996346475771266824334003043183662142841485627783538828304997978463634898729749864317782184090936444583866850958958699819610190981666713483341593658530757567298216374014678025473575577924563227126238583396475516843436241750470283186516613651537745951972415189298609194952002000132838869532506850349842904376390012549175874163994364889969406439092245438678017345622001872840079665147927763404038006823408138227601282000572398782590616786287621337331955720834414328846032496105332383973945241753009672695172510600948871876334622642296001620715382691817915363064545581395189651422352906400667342877852153136714938668813890376375335993570496956137030182015523380185472946806945303876371055413616212704788866327994084744319032710727398705579817470590407681000414572952319240894761423482772462092240727385887462681615327692573122398876262186150600945802017576618391862989537740401492120987567427758590447056697206170582630514398108241603515355362535224969935322690260300677382400449428245342233628225294153826137148144507996597784488240272433614137497952519900990064158802505216551725184823785913722074958722632857268674794236505681450346289079160775112006756443009629641463841764041050893826145204536772155264268376891199712736546776617713891474139033794281987241325352583941748987181173581607111129272861362270273548870479263222724896209407885745923711721732420983081569173375876689843415102809982011926605490913655397994253283863887792184633613982083384699158564279415515995264046274769023711962119947312652930490491237742950697062695207513589074757201253114664294415907032485907626349375626446103171079453651530754529062724159671307200420163781864617677333815962303199411143782021255640567881423605791764696956627799190524590268856400923499741710472754628747234887749166940103140539077701492740490127254539531434828208779206466525717854756130023661384432132954129791218434331227019289471071533408819741489726317064753643524612620712784937143889199502274685034902535803766916979728639289567746145491909281823720077897854007258146674489364916538453689108197408331923860076085985337254190941538634689639821758290784405007604167392577323208877507347555704494928779126800968016205459482445017086836636249959610250839878889388853166155526984406227727497011364884638875667565789868697120641713842867113202324750376226194521755077857879233438542376758752837488196210078977253505854786737491117908420339958857374419870084477757651397172469425500443557251786192724511179215553768190264593640127308688887869844093152783110503404662543119907565112874981251119900417079226072025344238604024136686923456005684561149649082231034871551510864065813511817193288783143482874046086463263908561612663865780973086788253126324171280500880968743423085413554655213400417901385538568966457388498015508199706512187902339009272212442975333480736772599756447835912616530465547484436337517023517464404199183725359667461751163810205313728165552958691890593300613662317529617930974142887807765576779034898335461561755565599743765644153038584172661521806958731888353947131027481938198469279366738495255189728996264950941163380935611043827319994563162334176116003492962440826132960311716455758770702049548191186553719147354057987046470807045443769865175644984747462370754290893500545848487465846970436491296224612452039030264750434150813329104161491152327756235203417086842301172200704814071803567335365000245664161980099156142248385020017316734960563623641402762367147249062314196899708331918537335256732191192774766677349464667321423236860217337357144117042111043012694793282805428864150807916155039803217716466211586531885368777179618112955578873919291865037340360388064773218941249432855081767637055662271390259809348566142788516147550167863441606446920359943891360865016874137996054980504160403914986126256343278700258273170451077384546343993664051826669655894557045673194113283934175176986579188650680080018541299521514825934936238982127762206078478441433858788507900711559215566737692328661716508045948948102807571709054698825883468508221064993219470384224163344688426366816667370450247967525746275982786165613466058329024531323186064802582109491265670828794999002306677103678988511875382460414800953959154508664309975057915367781056347373804897502150017051433317851008508773534613407859124132287775592787135922069273077865907983958483793970637328675789382354589766142253945596487381153989604147804021155918786914755981158813735565809103098254150024261479146782353869105058010570337043927653514574937903394815142813656452485720318772897969700545682842854065462486260501446321041367447381190440620107179068294824503301424191446182752684267947576802080978229425167349199971229725557053273331913987510608494114117557194440180113334664498481578884266269524622408713709086213462361869765550692792423987014663142949104175918232847117013628084565099946400729157441183648787584887393806624878832827927277163759116541899674249474279427477923750903967743131560948556781675106487303430954335392603894878968949122268624334853571460540264076666192601363815013458596781394960048263217646235870356572358780367932641465470553353552244762955398185046837459279092520411536253745458263810372768855739745333546514112908445276293605595336825473104002727039910093298679473021789335276380975493772462898844475884517311087385233627075770008382966680269496892903887178193515532238144662001243505711450026588126706138330795866353764932484306896678074754720062082621672986124912383949530718288718786884077668844507988276348531679045143891825108752361513774147369617247898490320174735220385842182443889660283840346031489366830515786983164723871337058142391464926710491922735810390688199900741571560819684577979226618336581495966891884001581629740523921850467351132801592435835680665635343498071667447995802551501639648889980349179475021443682003599840127267276734737477539738246721948486509598817516949556280686384441480250253078612842299733282081677056514431682358106158113603216965208763993474176223691419916867337788951499318582523929696679667933352752871269582005110823191096645972948845134044136812584836250528450474226163908100737931800574348024221867403661799498447503775341795155325092845255752023615483657249592387275857052657817810665055461631394559495023347716900333973990615882705636871410270674259441669463827037878991530795671698672794341029638502493257764655536075132447663380105339071339783571065175069183775655683096085285046628666825909623688233189701464211712316692229344740250000546685796208061392439652384142072529347562088922788804707156573753711090366598103217967202597306495667399515490549231585524820501212235915973664678462365203004113784588499816827397731697694960911844781628507496335606527882716577309241519016072882976925954540670841288359368439993380743626849153693461860538446691103376724975425066659168573823524588945876427969766189678648869352978312495189191362139182106165499863852248899268906874979985582387968368391254374749523792518960528360054781647946363858117330705657638363200325027481923749878545770431183395478151808007272000376429703285517710073293621958209857430039490115422620259983400454390516744631893281482435800228329629242782946450288307498120670528801449377420753736779848249361066063496054342204371099185985302524111373951963287868166510013864411045561430418063708688307025250216349253978629154170291428327636647343233947105044503852548069621970857722872961307477374798001696956176649357554278784547050987857917748719757821818653290449512390495840562098770889511209619118759504358643790963783711843999411088808062780873894499251813586101934575200116066390820134252238121480168091376522392788234213712382251057035514423353672354387614061262307573895062965706325800258937512547751537217912886767513244574747248050479939178583624472660478657706708510293376345499329190601849108624349292654503730755029914831323824113925680039891108091116662945455159646844247033809610598332579668673908351551009670665504610177723396842852519709211319755441124962887722311241229926767925136382968859994410457594971144630521343803651889899793361660322681358017608728007589727987290863882283666194539201562968209695503910121053310472975132932986642369167050599560231537991874893162754726769376581948156460139995701167030294453452162392777755216814599438272321874962976761940223085042133099720553620721802202585709431811489570179879795316834568893479532056420442170778287324877842132957538783113220786695700478306835124160356677494432475828882787530743799046277967592140627575591853614428621482687101909978281157534056575175239521497488452870362636492743357415028232069275616218483923629057562682798867513471591260986879362806560943970609320515125462841937235765646596973316831431720899100810165252245761806485180643853399884648079966039613578331994641219376609260218477526021509979943074666910753346589479955279947123449392846427969038770566497610436496117156453559890680115440511591245539367219972556510148204725742179468240254701442103864017635286659572698565050886386225815201733116707012046479582545940330146623167007544697922572853948346929093087608304294844888295575755594103899290872557060605640532726379247636804627548132878940776596423881047948332328203427796834452361144601386595901772205205452116539750344710279250590226753202224071990221177239740173674856135483689729658729044260087130756529434607151518851968591228230279618667209947656481708907573541843495106775924981372772341166874642888759488280586357684963920000340849666709391620217462535162581284523021700223780011915814862871194827831503576679007897826461690272378840116284588118912511537561750899930594249277141628267444678479618418480299842888476572995308493470503667735904035569385560921337737212697937736073002513586985687583277579373384368212345852726740996514642220372208779223204916286946422924754814025599570796321797848776598563755449095500272164556614974098774184782846251786551618393441336259836474254383849265290625321458632330672331613517871121224094185181035300261718411552134120551806385335228932641624226893085303335826696962459702179489624692471542198727619194306860371756755797186650803507358467705366764415612915912993359470235220610082407770427550237371442044137173454717083737291418089901539222245002568208841520590519568420543632216576452744087294057585025211272039705935267210729793171612051931699535259509943534074460589635870653854631552145748532559431516099033643140106214579553739706696052087723023233154699049582873818155357529752526794142535896938167400639335954753947344364763844949016963553003831662418910479183558407342206622471853007756687667915485311914316832702265794309935735211123757279536471155330945052728187572429299220607171289932618298194367858008814058936785362796078635216312400659889671937360814434935549431861421044489312932600412804332229194691731365036882075435422708823936608250154082367708942017468381280775004623201283945286296691164137637486534280976315417441489419955806313398119607763440647076358578891089362677972900025819247826797606851398124473390705344649847010206808710506215218079536628928154529561148837783553735746553434882433667519785020171728453257179777303510001929935119992641481026177231530470891467646207876578736896532418652507214425052556742407712228761927369465113788034721441139133573300704923609255768409151697415854640173140530369494632998898834729199777256420571190381923350382493436006927107515657363864018022288787558860328372464414118667776424346009707859960092705101656645417768388537076105475789562229911241324558987209407996537231480636008618500009764262357453108516058195028123380864364569210413773454888876425260110290302196652984838616041994778587996491190252751983027236732675590528148896251081457025563949886052853044009261324896236225521752418690379155175872297649243063473287939082533832820846043735312955258650847046224379218508175958423699324651678959194267736556139056612034417088793223548499422176615229270531006926606434384674853078151831198657093470423681119634457501206665526597539887265123234852411355957047030086125849504452929053445601822959655539681123191748351594538018243340215779227625086679041163898755471530975451336329530727405915077913442731729184936036430983329650264764735488727148762336165932633734445715394480501956298920726803765404639584088425108688541791970441949831240514289584100907940002995170662335350666381190913046397023157300586634774504423036963029964414637797037452364707784684924420801496777580741403735025414753393159657767057243966115084685727273066627830539704044791190308515826108559824708986270855928133174152130587980007012562336982834232969798757614050594166116250352679726074001574105885845641682020839004279413252567539810585772015214785170848167046075415501783678890247989538811154371001326818193057441636021435880899205304980858298848560753600050428223184915300199986737305524060594366573392942925698234500075860295391009020497954099402420389889021573216715467776255964480452065073752838246658170057566702250345772914759679647341541725940046415403004941906365754387688105379198396100598914132365753891844970118752378557229759848386650509231879364412284552127017180514686046762653101949402976642702830480267464411955134802537112047269729813666423859819738063727596742136188550275279665718430449202976937633225211723286337286729617716485982205604362566852849131327238399986503278325388142033928375647751838892113725736187244809512217979319371462870820125514017554741640078006577365335596119099866919141149446885254878146597950225394203804299218493264524454616090991156371024358373452004928169823836412930615632781493490831988430395902748110917122734570638025230939363055808226734215170300302799541679382028282688909253872115820064064411820853462694204725954205431465163919957219955469944133594326706662364171261129828211239392744493415350223852090484470750548091301497843699473002027543042631603342782328609665331179687311421356415663811494217232673839478797717235602901002986311708547862514829268315562215605425006862823955001616562564442588615966495235602969476173118305285237755786842283738469551509126031414632210591108425845500884887941994866975933413391291227044926731216874433922072814003197713177788070066776437348636005803334455080420145648148499192463998075260845655866226022491758748788574161777454134399049760303777858565932517701865514574722654397606622682587406722597784330287913432858788121065151957922801507444293476560061864340712549231465080457929238777514096271822373861125810546042837878111426745295060572773736807776145222519964916409387418115592540966120131361299383755529045126239023064893862421048011055225739429398140671147767548292053352476541863811704181170331632349426124270849544199237831724895455292333322323253813615456001822387037798877568443229417326546205294481650416536229964193915596747200266703531216737017556963840095667161365075269613584613667747958137997780973397959009627145761846105868735985076663169606121362902762392950575128713804559905927426081630916810227538582983172451399492035048158235581645681948899048362023214907102249377876057147831027725795350124869497140393863823155931769437311355791208191088830009153878756126507169050533034647329472558201874374843385794174931268540529946838964611960557479786566976023436113349459713121048522720329532763779603181147242776033318124299729722902340248427831957707664415840940842117703548489572026103119820881195994557683069275137904076495842828279196778935010853722664893411080981825943983635281704415850257858447263471378745401781387191456232033202231689234768723072605907411830686587402784497152790295821709509798561260297583571273539359469488709505911440280189542809077496050669767136193574133215657772670188329547817361704860069457801315772578453822788126555682561119454201773790889531161789933877147828782560180927653184734460211380382598773486724097168824728470786925001872366645270213668891087471302549636845176282310603262036490923537793305478413202721300573030136177680301271665606901977578632464996291523453180135860972477955401362222341053170113531705520415648561429988097777225186410016154223918082395898295830360857605345203398427476907729995091857724953404923786168607753889895847561644683916412337028418692675932183547972599067169338452841460874073663161153144086022510063673685075267666048511366143331873748494528813294776695346475231711268556226478404515310468468301174384061849156639262705752109029529074194261287456459109966863570836255718255552815475758642118470710272138279750626604607595525995085839818693502580995510271440702146103381215158279138352644618521473604923978493754712768098771034633695566372242669632506307783801720964264004914515983940331523852737267619082120448932841557140784164630392578147865908627299364181681848300757729595865131835788585055873705232750220228481638001508324598922966069280029776306189004593265759587130890194380501285236819819550293661858303454609237514249684147784443201061060983482459428745638491073638132549321370510142829509993296579948578175682983265799079095851665213661212226615015743915179952092299131305917383017598002768671229524118213629966231394462181733859474029984308461523005154097075398018688328822115386186925416792678556937795515591984007807323749916427683734725993146657178798041720086334085424099574174463824536852236736249705813277487551639563621740797665344316215670571514791122631746439278425214255460927088777644508970227876851288986746299463081053801442981340655114212893549096976368521599255585778615546432132479085779244852007005924823107842181156033225574824205729368560556351626892647926745220303167820145854460755459593247842984757861108170467907885510941037106988089907196438761087979412564510992326256532783033081748887454708096563030564015005697248594683626633856251122737927529160305769711254672900858709507736365334551968292526331608923392847989697371978584356086332687285754087116280688581132329154817636629053163993066634646884134319643399285936299848769138851264733041093090211426528500585915984352643279775392196945791659143275533075694750282453421375682431834927086725322987708765977496322395464858321193350379023179201105131097853636194256028977351154352335990509347841711482674850844484709691287645031005491212453079761981022874483538641562317468031644404696272851604547245425328273834471288185570277791839879216596604155326412444782128243599325305363732258574862660618345410459035301917723047886982310713580541433211754825569811576619839325339643501233803624882412143956357167182357189602482590962615854531280031882831884073064646650981804474065869780035414252510610000120854371165892092368405492915408649536440850548854460618733595381215054729931437837670239757367398695719301161711440157606064025700963599725337341677255814428241190420634231236667163145670995916217950065801881901829712208555702078071944564815046530007141312598815797005615544829227145081372860191045807603935246213621160555965799895893941816676055422366908317148930271816676652549332178843313676421437422497364870208622047963051858786729472421316217043444539585167565656949209056380762827261278569228873202683978055652034640273062667464897454693734881427017319697626870088328542444108824794777680859380941562383405865611093679863503499586736570548517473354360439443276977857629811095616863182204048790093990467413331455303819821288652984928402776283888868153280578283614279319963340615441473643823650105765859777953555330383234233222177685933664000132166929110865001716826236561782100041475770637137061629051206712989763007438071358225250299555715692276830612702820650613157119323039457591239205586346405924357574214849342319527966574760388994180748528007747922270429186647291068569708883955832216540030384430069684431354927954736871821397367034942354815904714284021303472024915513500328392566653591118575514560696681602907633531044074948335646264813993586013799093869040254439868881324686519539202729422934532051817547486098572489898236780919534473540246250781176448223710026765950078449147296318022714964311284501226653539266360515110243099559998967776920797605795961467813667587396301079750595855052240758892174418169267219028038987473966480202596797004237276333644892128924503578150007901198270844671751173655298605814892538137392619341213397008539374691996990860241657415577892060288931814056291587985085708832357740531610215344757303662710855266290897334094763262920577252161188915592052474783486247293024649382108656318984430284770262360676254178170135607137521892891124834944090463447016396117009478828324587945050390247807016472357400589345028225666910020955639551759314675951184546548045657690328594680030223439233467991239410938962304085514934187371273306591935087991422213653923736949702790843773593066074837377762972055498654670786822608774052845568709633574270986909098079119420336772381889602395230877028503470125166192699458398960086389041580237428683453504177310608271592281996431834279390673182204108601292379319705300364001922874909201796975301917420272266031036966964094579514113577579130360243522029034005622097292087290820660201223150695518514489597013149203207203109065907543776107899096633067951685854147721257993478062313948257443005477308870986380051791415421179515347788335514334430618671958146763280367221567649851073661056092680952526888605625344573178850001215959182329114465397554582976612743682146625616556985447894865735447939653753359708426810961523923139789700183146698008080984944213182406160704857919543389050477915138614430625548047385070849329825057661295802366503710103615128186619689665793226948758384350988753614876243180133907990507800325807285619533968543727639342280147954622045460156444166853912396458692936673043287907906641799267443512560313862693059094191669900450198088401937776010481147043595452559211116221078719344838992959011222052156305246111042892817730069240502577325227862043581672634537568316159236248987230620755679792997384010708129964398055879031530556099991951616281085959424710631273319689156063918396590394241691019984922591598167150032100507362782392582978757616767378604681486456488548189282648826557887943354698716211806173648067723779774823740179907321812382774834621724037251905722785167508900997405885658648811284704660771059375157706722397228132190145503936313888101634224739244102819218237912099579357838365172692567165702369657426438257068195644870383716183139502692933426822417168160558289664529306710136920154849009193700393490765731849465147189153220676373340798612712388807417005959769593052176294494444370685606755398769318869675028368492746287445235263811241679402957550776635899836162250537753169761102855106884739105449697560652234168378888337957612380412805946034589031885054057191424687762045364929347541107565303528134816499738391879605480103901502640796690810209514283601493405947098300932956900601499124893082091679896604494714049024543903215291584355990743523946927764347701305262620145688219751902071124010411550384472159000572032043506611181038652449034501621122233713786697545033621513849609061790569812278376516690047327646351714173009153415173602505581540180654118140499774480426961110716669914286668911690195689671494468678773645739256736280645785251686269116967214232544670557145132403233842972646366714996440628925691045485649080941482741658515353212956146515663165010380582507832288325764998920011610492438404352871500552332148582196771587126903719097339145095767299962671701838193257877001322030512645549475571830716608311668523760441309947312111213879720273142630133858739268892857126520484481303827750127329718169140668257408079784671599077047156453632788248726931053064040087169776896379157013704193856198808116521385741693623862601320512081512904553754961460486281481646102826937536404754148519693347196190588746885336137062340064447006995823985900147605065582786574873330617398444146137999031699000766094912854288402270512848109894029381197611845372454251800238027864805602287773889928307635649369996176363345019109594109814699504305808479906299505278419958998111588830963021575476166948549119538562496502789681104838307525823003498638438249152290585440079117169481274111691809446565539261261184678463867205248468242324300087599134889957256299745461328206048326632832271274007110643847946836639995841561436500716783218970148309262628202861270035225280765258594217504063131256003238625025262610164808324698044077706475938451714814865738492023187279130923747153323250991051888819811412105807501825565944134897928862619137547249747906457997612768142484134618996793405124099386640329798231123476896147959699735508182887667849058103074334145678550076456834367932739482570781361695431525430286184657693838241132159729896527122482264684009699857370364332240658608916139089739485108171648418794597800268040859576424617084755237372810935859867086087650792459733321689695614690136846755653227031882093425971457338288131105239309847191690963457672727368601099984219275044275980740830555742592826028506011161495589001480612294418793069094853217689693189938145700372348848395155042612918883259191275603417900986422676548057517463099205358804075765709182191590345946938231838480301145568088849483912518502237533767836932967304119879510902468426601513696812271311607233864872922907769783034003311452791661881800654968195104267610019076639288747192086555483379189036714038010914137304733879937690012745596275930054983482398070161301625050737831564845079757536287507410277596057565929195436282746040674810999778351123511959787443752675483791848149205021483540666307557602848160695322663500153659922395252658086925401684886401376150736300326788713329828960819704793618530139554672678315356494004510921115675053222426250602287270963041158654966967815690502516681291876176706476955884164135334567392041403595319516831071321324188409849974066589165121918825009228354522899008017003507301759151586394994873942993661256931630501551363574572307757374821237161626963779871288635802509967646659120854894606924883913335068691987853602227477693756204954144088948179619471133823464443431285474932579125391031746185420498310933065068275334509357037909238739203507783406633879902279660593424898667661515593231071012866776823971060439807662298372834223245249328746855824710822144682491751387426582479147954429116286130385880679001574472160313922077378579673443704394884883643444958621933668749867315375015977208452329170273373709924002367687525195497958663717675407679009978467284773731628576985273964234921342456683779709094658978044568302821908577624418720699379867855378569502869526908220696387560608951423421784516936421146239277986136256754651716027562399418575276083986719093361645781035062160556963350980280200194669565039751524862585138660340721985364750403788428192329604651412833559266002376644599720424515075715930810659835609317832681510830791929497525030295034113857250935188346507464516500474232801524600906406108573634229832571780192017759246476360705120217566277669740341278964362372145275130516023173253375655614170137943923188169482986601053059391568488615892177349585008343252931519333167340535057238920015074941131563599160505785840455813543445420297210254839769571720764643919559459254153424985502119184481403021376276526264051155376964608357978101609021986598965115055808122508249606653689243369748139193130671843502289690332691729686013380229008011773050411550688000219064685439471689017828156254654995356689220819534054918082134706144310104713477165091853105870723018538086255253839136873279959155946355229212497740171868788846472525536449822464851878972413960975860466498672337881947771088725820121167646364122478130263827172794220913172514693811171902803586713916631477587614354449246669926194104196031788806246636319169865616642972669996016258896777318807417359009388916679216695611997425014655759497009097355720091598633568356187675807503320376313851328691340405157722062090926142824667017712447508616215423082475758045400622968846158118832068618235597762869242806474255089700253253540732407758972921834113589921866442571664823741053998561149621049762949090558044717035216957509882947453809674235667277242909152218493619438757057603721081383308059766222705505177706883505463395227914585093909797791268818940296927568417122434229456602827329277981835228176017557726315130100409561401062159622355364001814457429694697331361888891197477524895165682089113813031134807216547248934013666292667957965929258700410970704777884647878523181556762442079507716905251758562300170541186038597573233330490707200022483027664413662200111051321674663133571158028111231387004883137262291812711476762006715274175831701097915415056090385772410223747092121915356035369228373828785159111948135119101842208753177998837159844500563647335125272964174746439491074105680722176747321840818166364427851352736195007094691464243759223213585881543382558730142889254956803106086121001522339949128902761416456277892441344825356698983177845324041621927958502710023106945463534351602705331029250802412846226493239662213881607017100049288031146376299980027177692266501904290567961440915688849599322494596733422869037766930502455593956331476188179161207619388042166544607482788721988669537946167971799740079261883186039218369682348876275170481715699406093014869318320117529269632766273587661449868196218538627584540671273897714608607485163136490583863584756510250513542596111306331080978318793126989152413889675876411619231709244545759281643194401699245981924397167888023283235953267887117488019591284141788593767816104062606141519970866974294589259748797491191132161042842474961802014236856420037367619170724729929596231233886349725362908907422736587331798904551408894314358107643634683474235700504089625066312061400439023425404831275106362287289268680311215040350205857810613640150071783514218444136194580016068419541283251801660615964427666524880363404485508083106452312656086531588780691245583081562290511811485878677126301338317719368206731495305583236916758102922050139858172975572245954410749136282571574600441614240274591031773942497502332058745656638092168072073129088181342412217875984055451375335629398306720251019615507741388066936307303784338926844343137795162516177359496994898536020319019404013537338000416887537416965264423403360665102326824659039859139389923317182688021847822029021094381708103360481782195701368020399433681070853314865009165261646402217215071103529263922809070426183014577543178939023167047050197418702434951416504660937360982749584267341230565986971754267069566586018594293698580256644006619616722714449650180299350045426706090778800482678468650273643607350088140100548138828963343532136265245745609694122292360759633160271936663864757864079844402380235045402365897617258445345184948353814794964167091201194787219131045772526522021304058946756520357035586327467845844837837121369531920325668290777667461186660772809663380106083152418545245072606595387260108399417669338524405792507892369008072646787752870625343290196591224029698804738210761379997280169696163210471202810996133922989948790399912244854345633983835619446390374305900020782834198877490148007600300649868832011999880360107598262032352440219586817026654824663170373214716008878610790033526283312516642341950621911663093080816310217069325534369599601234344588292024603901624179470753475922154166909430168093217908752122946426938728309984292621989775292704202667944851187114982108363151448162396365274858030951156263577452673894210355849312538562704299487936642317636551829757620162112410186663143414514379016882135038220077677892294523204540291612700872819643409026944188910115492944770086568776971421004148463347528786214668705484027270163700325053051480007048182441083264144877509240408471130769789999560473886099843043054156022372640474708302289365546614942757061018187259842844717464225324967777720971106098512417876483090447271863041015781840529742757733112827271468449682321856222986063405125846127726810388976232489930173267252781489331527950204338285722306516790215322969232915867093128181148679613969441291199807267114179074801011594687312160443221734414930864408932775337330168224659086892108048617862404450475697059748888105890283447780608864273522401700826348504363010440643943217097955981153567055353992148619129117123833275136159690853663129823642933421552073284733998311149687891764640384696521007797844919061329557821614555734670884741950172839756958228516469140025888746080336612305864030984202319004855135753533434665131542063562563470854946865540550821766181944292928280136446664567675413297452636331764218767049423235589553565950923313045883123943984591950910254646146385924919643416957537102972419573318042677928474153773702559929946180232212560065450027847789579925299653690319609878063293071237949356069932046625492942452857814857370978545351511751028981405498935148250451986958084103320817908245353565709140790859749462551032420412094564254661359592287993501481985970375643474388469470054717729105847248889643170797068245574485768653931685566707476777974003284294563312303258013957479625877669734873886118579424503122856298147869469379151334120194362669592347433819065957069733678535562380655057161517182935468752687650876657742078418406317970771609331850499671317909291382722036825990281389484458270136040192080308374671957969899691524025881833666362045245582281203761074212369686821975910963218091864312610563541918836661422445646655972242981480128913814887176783841891053164976285754559103551510050917659983524987561160430165035020432985400669803534234599528107036254103067021536096302666380802218245940054337064093682336696622906042813347953213063360055581981638741655787527290838334801017562223633661702163338064612458280118004303730461875575854999962261462418818565898310392876420443372223742748545327112854891830662462997897954735536131692956598174963941356491767715603133568720807355775560566100182540520910885516758170885146984532126238719886208852867816825864637279631984448281098551546693777798560731411161200168414993371031093076920964388780693726666946849047859515940063075995921505916306541070116815426643377437951314348367252444825483942735880234705290388297366602113919928795910601925733379451709429828044203039359683971346685485505053106314478049459913614613880454285290070436603568816236142866843422999412136781483472330990901656865500490010564107808037228687393484276877402942122537282303268745009778554603530547268021435569794636034031189103352306435854283994871751145766545784170688076046400749147059576776445022274689028935972735998375415463801348590819666220370327379594761290991375339042631883848845955144203280587666602952915919397603795541383637855322329360545020087313265442919469858562271012520101894385317969265188075611232905145929367051476630411621706056336647347486744637389184774548739829874002804042810914928287118492331358765254523273808950313001518984888768453029791086895548622050047954248111864229372196219066574425553034103105125250685561593665362028745213926589959388713221089276141845806337188182211293796303079338210425355463036223534263547595229617547119634026350627328680808007001214292774487407032827735935555082837608545052239713568059246124612542668148176089652008886529504507558162925973908804670183690522882498132884044581804376016285970232827962486466137179515483437802316029967498829868995892464630090261250653565096225821048205610168730579399599384980851591047336449884582735001905998722714951358600893054892942190851925288950456811953319725070660459675926776194608950965890332285987064824925016892827853504012559842781793827513035525445992664204807262544084017306934462832740624195331529313758543456195850793907128296867618645148695693690891952636358387467440389122379915310624456100622453642078805675739616967902770967240223945863803254018099242669077975249341395064387783129468136160614521956114801422875449694367704889492248548179195997976362243481250074569220431876830930203407346429819214505732866423652843818716174020185123496798043872829156494255199965857298956724429954543859153990861618373300314815517003189950489199302204904286495987842790567837674838344289249984460217751098931066434403789159347628741684148271065530318277763198113542311603390869442082436787294325573588265253463155315283509443608605772181339421879549338878042749004891610113007459121935115828418025393468502819074230449918398294760101807025208393378350216923691324747176671761789691507849008641678275250311447691167268782608669502070261102815337569646810894711917492326090712552178675177656453571480825378538377638429147945861116052287314996798953775596221264524030582110397895437733353490614283759575793404135531053030254388141344747535388170753941248789563809521015115314525052408094252482162687425729663438437681061083305527059188280239110049131225610476340533128971756124681443520926576560914002102516596290769078857911434448944029704172029455855866634937290300575542314810399543553610639937420381542380077035466249975050512131281550584123175966249853824349312408541000316353219254427301016621406746456617065135692830676598122677110223535798911038794906475899691520718355387730707411833925029421046631511227261491689347084733390923864110733038027349059493568824937110333872059810910682899477401471820506134839319720488707746694523847003557418305632874807022836979942914394525732605256664784540574504816445111799052534641268017900475737076511639365077990944989693449306688549485148823558978212136025960997476350876288617925961101748997863857382415320835726756508338031379125854193138624061162595035826572117630715957423686806824636989531874067924540580262698911586776509762929696588712634156680970068314465546814184247789279456113568913049483048008571642982351221347255702948650058018916686217797435997267308577744912089060594103792451591178169479486254200012630957176280345896229829249653008256381878735274235108562245691940668716498387767937845373536562697863984748490653769348700472469095332519759703407941139068015880869623727276735027886940062111034510680835606746394319952375217363878687459554241935918059821506943447853544665323390718803241559370922378867614104963553075115877709301695226236026303987346138587001207890084528504849212500594300945308709796318592650092128639655416475437790112407302235846039483830236461940076421998068109847975507719282301972060170449590878592753270916611020501489446057302633806274155666515131921070900764959113949065135993550862350978713726725230794012679830410691134215911254742754240702079270894721851318588239336887059430418828435077864813144528536254620643429771421115724054161995400513572213119393126957723861105967244459826166921544932898867389749769776393133914869714694132908375581565538897122876964947316318393710074526470882953452693876654923611252419379790434075813228605661976039682543609142059858136661071787185652155608982232514173644609075064071363146572365702105306402446137602566964743380708872587068861357986889555629973345002035226207840193526174425188091507937986368597502785553658750854910022193327779998774090071156460955874710027274297392541581031119484971352475257782951004861429511290065594114252495374140170438451294298072545757689388962933881973168737516378933510534991567918193979729899787854470413431426577819190711202116949447922614235811828615149773369034487189652043614626901261854403826147096881493375120197323136319631317827413990691923372317357461810289752870352180226970361214217084158312825589359806435995054943866219051357174312090692539368746811868163936691930828353706773518681995322848302660767978301461611886802583781247928298212302967906453896687770117735405281760813371402164490038989809589663111849664245891117536668287863833598857435724046115688161030206941443816084004700657508726719598349340701194655415657238213987767021881308291007374372616147162294792704075766691024433426269813813330936197909483568352491387242726853586463404094688007885549653415030874864541502790173278951538844094189572768895193821336258735155030966150213272334485005837959979670745578920843688171700384913388709906252669319602570823226460376697214712689915467665432601532680404914030603720937885570332867841216669330390395915118206420452994712164744829253984277938670142514401042216619164783798908004592046279169935133388810675010755548682725149682531785802770734626611873332518943787180209056158560653581778607759444787852919267992074052561535550081653003036906061856254575251320258278991335144692086938380413872559698156093552252968906210245322358571825555035495580213142341702977593754305429200338219695590033139255038871940846948944094383996558604371774540607659462867024782306787904238260700621930707901421333808157164064791501176218083619673707447598173681322773420540126078874390635366272018707819223759405071536431747071901696512716314145975760569001466691648187169814237112583445333979884748456248936792882683310161830340842964327021465068327150142618540437403464618733349869039231249932193182373738603023740024863269008394518349253821727455745699408399949428929583089485368629490058344481247931003637966785727251786862061835379124461612666096996799300366166372113631284241164111274679374252122614020666133825604006136443711947695199151449140484747055628836992504323358586941607630310482521542059142156592007972931857640184481060293236280107363208417785843134488356161229615105337217305113148379026369468780284485439314738029679768431140678565893372705474952436242049796211945794455172139510386418744343036089576360730777114853810455928134634351218979932494828032523332727306195514256011348006284024171916557547232734393354681073269480158342861592210640204950318111430419486853822762457387005175482579076278535124647288117376074121646296637017851061314649531006115800295850172375952559025780962621087472672678005529157693898037779781369942279803421895819069927391288809414942117565762456143789486413790427784105555420446197599592503030981050086464760578114495572357176156996325956966044085664389044114922781920470956310938283263969066750978215557937749065525365397867988281167925627502148935347773821984824911208614770308526637576511055535765628804935716500340788914172036364411865544748336483270156124188942844686019678631032155087404998049440442354187276343851431379117551977129319995741168729043243522950244013571669458892201222916737571516381728411659471587451810150254440092104125391278703293953868318992740622146458189384403040202803859412199429889645948669392659800716722711775101071234027526069951021690149449275637458568161127394305139042359307244179895286307995839811004480076725202400482485131855142572464687758841377828316145970982608244773271223210440424726994343335730928550146483493116310682549648165625235625769310233012701035286632390969071429675846670504716221580855913353002967584582383065547015467802274133717270848364570599703799324994333863716765441960689745727811578132249649637571539201341631120829040445442587043822597470146940967100228852076078953766161801080700811992515038771968692253074394633343314547196422116007468753214562465498045300764494684058394831125489120142695126818768985581157062927633975262847123707477736241982004741167762336710987850870557875608509983028289678031512268142735563914455759402757950177069906462143318252288088368633118426611435433569397321971280660957211941293239006023436585997711987030376894446018889388354932523293338602208435694318221720755605270157570900609776988638758218733627075797232862728772970501607284432088051247264288800009827442341517021500065227503658054148661006075044295030144571687229858853024166959893718860920077143732585660181360896266048223195725226362606950295468611957962840762312200106119658347957476947877555367659376667173697891953725642547301029845513727655162514436758412011521666857829508286934398033640956883161843005878667418616917319527169559122672713982278525215018339573180483248577300049533443523024520461490855024090375731199377535270114848859567939009083372208849743006474820908902429362414813841716226693431339800408685865096445819769799949641218559930310453770394469678296246776734829068413719455091563961926571182254731890296554950804716309733482637034781742964322390004982716311581516534895865001680681053522349762493453787556239480994311462161492239896992722274053721628641345116407070138812707102185079067916526583746951941850487821358930327102864104747508607039554925017854559137024592730530524638400757797038579063402429852450065402378833720676917943038499620756688972840858681924253943935448306343254030447395190918402385048434245799061127236468489668273432800909501383768861813814997097432000355784817191874038190304087386361389443038690637297102594983112107519345711471276135877317936483587209386064889154989758271159230751602500709205504469249526475334927314934223872378377233882606485781736527882066866937327292535855969324127324387622219161283239088113815156341523186141889713779287336497433212013234987266935173470376769624007083521993818501425805182346244690590990596663635954712731005091255708225487808559389184752362485224302693399993528688766393438050870139628689218435530497059850410562834650631994208618776220887074520764411836216978379381676078099610459227533003307567275532673321645970233135782002821334908867199309395576898588738716284458204890898128985936249427082211526358910167221244834052266981715386109973859319644282871313399951797828575849607886201688877562353588676106751155787719094431782063628881595292891974055051391199698323599764355002443914304628454448363230906731400923141449702975107761002003610228357820447228552889528953099614584689541054973733669684549244023993030158804926109982585572423124221827900040930272072603220845905243389354157639994354589094360774994391630418736450989290898393658749452397747491490154551473466371718690192172936786185777907050924260842063119224732641131026159356745042556318297963338634940406440243956477696853705838388275174155259241206862798881623949021131742206235743697449831814669109676802829471889095959364117703020031413655858664484417872623496950775801884625972277770822263943638571883669718930718479964360426885160542658202653034655392091839174547206009822236772111637231213272449366460318906119250714251363982031966572220927292539010116595039233388740124481815138191597475135308142205971913790987115561871438338619028797118772790490574204629342445780947542332824896565828576000382055813118071006759284671661694697475439835011852808646573485967852163273116971511537034200452646555515999585039319378144296770984685606941797680312416931266814016969443330638633237042930688935762242635663875916402354876463846346875378052943308402258784737589047339276895815955462356257336581157788381430455095072159166825154105428559108110895479587965662833383836007430444788245011266880996245236843962048485751300941286168202257486392135915737470178960422884486366186787119976948712794684146919189847750746892690460568179321768235202182692403900823904790680448593810518051306487998733399634229656300390467196217566393040211294778799105516789693714499279622307525457488683076748255014893054497089402716787359192966488420743105170615908927390035652621861209164343675503798254244970156124275596305975951446073390498489947762326309169995587368985220659554495087023443677237827732240518797169648167351519525569926935343443400738186342736022138340999248469996055833810171704682030414414092712416493589079767826272657602398821522415286454197985973930160192240656690188673138030289463619882044999413499288887078759208805214468315988881366252783846957937835540156600480475668014323758112569141720393547772166503485202887292714905018880783217837015696839884909654128984041938167612011030942084241824873583905410479601213752582538931353997843943217024080810139919326968072211770735526250198954085012111947950582975024753227184547818098873150823813164571019662015216345238113267501985984329301339998254405758361963689905110817998599360809159332593997560059804318147666582810935445913909432868133286581420022554304112852034945742378399781508802859373626968149637446586006542610732325823714299651553947580325692565726710512022359400928695238546205759704986089830328170215208464758620350437392349205137127614521753695447232816736828029829157263599713652697607713553657688744848639727516540811427400243037907958072464277395370055400021137982783573602156033431575100930312914752159280237703123952159129249757240933367003039617867118631642598205246500766477762436144202901565507517228644256019686227910215350474944022444958144446003360335106458624019510255793715353799614393110839898216533996626203654850314079311952119923016353575922318223343787321384923753979541088811554078893702963326013797991475851366945266045657038536321955555928948787362009933058600142677333210332430065885951152971901573279594662166572059273327533941125244490212084872158041218415824756822510298643584084261614907405714015049147834466330508218206976626415271117879348896534277294085115755284729209709392841743346123414864746247905499657291822567368342587491245409103800342550605081320841623623604836371994881803011550792516213485425136881843245801590984993633005525082218051365795552886679044107473406731839429758235296732264838163989955589605251901167140525309683753863828802523762839837963678973233581889050703015638614613539770176937724490338180578984523118367807325792411233130934490485132042377276289134325351853588423975565470145397996044381034232878295392228596468988981819414762280610142699301607895044732381875869704909525320351403363065156414439826740106365661358282733968998915788764990002511720131803794882917907018868188987352826192019258673674084849802904792530330275981210707302272100455911767758536986331477414603354950750635374202209742703884512939240347133093035444042562218754936889718949484477304929173946034433701755235354494595392683577095126740216499261504361034591152862893162860344321281827162426755926638835946551219255752924172061785185738551968975827171406741993143193879560697914327464070624048063199984059131828227733591293659438380983070460065321854066614191121524070632613318814870166641003848348665253651298708268140724978244712048996170015634922449746735195619503024412660454266627914949491578640664489274318330713362807642706093330495624829451093012177615129646493901079813988271056893926785014353959540015941383886243621707998716906588784451008287251284299001195653510118161355274868437351623178075559698562781371221173759153260180489265745156598595293729130882895618440360753193970179384742222216975843212757393998038871582722793596643732237732695375797673519807453317371072084197806728746581008217541428520157342507709718600359837643630339301954657909631677323829815980929468271256213626106661396133657882317358328152559600178930203414926907397926988418225163990204675002579856635588815771058937844288518460075567684188748606267616714097472681559497995692866891455740353839359766885827320812632835182103229404864345146340204110393561711400633624168299271002782232593544493497608853918865663451429459027591626815029348889968903234461456305423987384264930878543670442305968994977366077972851316287609774166149008057208311105811352906532316388736137143302030910070958001563442517212576118954807293039178430504229697122922542313651695813097672389356261561059326580349648521785181276806790552455840974934028845886752797794805715512694377063269433389490247473507982727137610231920546667369492662280457626751240763119529382435283023905907328973129940310896181983484531785215568389860484309322181190932086437221106946469770813454224472045042480558322031797461748967044460327925823911280123516735022800388319343408177385803325466427882591761993876630794005138685043676005209795463171820356280501725970504620101792740737165782439713344531657513116694344719284537822809238869422543494449400721618891580441037000263044777467935700222560591781027747365712724113671158208997289799778471924260274970222187254536416946085264165142839005871365134450133216488775373485762920649707339188936770770839036226665218673363453580122315014780981850062948941657741773086409442931366669133978867754856439855819831344717034451332800888112221546847076394613817289796972242792069848680081743590830154739131429741319780895639457415966678449993950447091990309049999248844425502691949666202783189238316923956771043161317088844553895197215746966828158399600777967113455284985927552066480212103400715380453129640056588606626607038479310055556827398613847200735568466806216027261684928199872383779404469079140364264013484561873770364468952141497075617578248994527777219221751853642263017197001783631492570976600231951657909361086987507378855140984249546622749305762754406178247643181440242779883895194895033144871634376709350122903569281731828429573683246922640902576131495894152847059440070506509084691526313748670907169449989358347983311116304196211512260914070870258630219077818897391840151371563370771234290509444140968699348050902453428263973491145166454530581762914551033119830841284061896002840541190294801077309412449697005491791844243369944106763953802281038358742991181466270888051111550982052791525679330375372650753613372013841585109710514370310774153820727368988354593294392324491725045044377109522512016502733656674625900898307908115693644193157372254285858431344453721445553215459739424127565540059909300465631851755710494568576335816860606884449692837094333993812050268838134169934662493738117279414288446851589936506259525362270727128297551077302374846194692714319143576489682187721700262777611680210480118542224309434420542720897473891561428137680483400075463090405371280140461567749215076778837321634757741024873061711705229681727029302072339694181772598705265650563582029497494802415537860136359623887137831600052965402942170254275668728754196595612811131634553161098987165064358342695958862326437477677583439845528904972128178210501145464120071429698849800486971795787447573774274138046070509913325874203196337661228929200212093845584534941008990321983358814827965786828288336953540087199230781471372585628428148088277020095039907540302061781234418437379155366554560954531471104507186409365229678405094036927486242575394778872324456504077839155786635588862778866544687743856889189135577037005572542690243325106470595005321190328399501410759649055825330663545813488310641555108446048687340036515118497909747991643111163438719084103881101998242336066227193391665541069539127926722550358054903865588253790330330834628299313661277921703606429232844831043850117947457824837472715667401847770685130899630394243195368817152808186138763936007149519411855312553917878307586206825547813594347512815838291721935480626267247265328477434200903700930807617444241262408528390927543499249926989265629400054420140817909110332056396457120063904581027426503419268765778195804740060850468586504536408460052792479854962813628076588181999171155462618065332246803481502717314997327636080731767795839000984177016542348903550311939355860064529717411063732351213444497514162720870803040141153102325533289139128043729415929766273228653479167809934028917115552177596220798846688839780788818227421153897855796954092125829322082957837789426895203420868916864120827087540598838785549814654675019063616373975030642388494632213994524479740224123897232506419779211933235121728558241094715617853308685001081635555229921513867996895865482881631413706763345412932172706261124473190212734057458668344379508766203614310043252227646258033299319043795312021490996527685633797189034879400464342871627193530080850897487948856502868425739158920429690370942329181459233793608776059415646374087544562064272003716745814531444583906273640042400182102980739071563943272309066473630066100935400858510508767969731457481365639683792655152864380158589015314813737882615549173798370620020812553865204604027600776239807978539744171034970511229950681307060873714649962746762366609268312271543679812819019247631477535945878592102812750867919127966464698170404849514225859307731919775620199066260168232567033757875212375151647739886222902660515784990099530516809482240266450089983800313827343147497378694697407562919981564927749875919673226370057275549683618250992797274454089884210734298235486027475430195657808403726473191617895413630006875810009636488728418821291084212148374675903319377215534585624658667046411041045689836188821246738884047643660265083801644390031030812242141425877780074775017387944728343661335967852320080608027925504239179551209576033010172346074031245849578532679448771766779532854094017952431558673003930724108735501744925304280243014793843653850866048599749226617531092898726756666177779779288404495179515185331872714308228857918740725927254501783963063127123995834344219545153308775169796786249844876622564825564881772891772450047694370188810196459331710626905824844766466661638462658673116511153071779436522015583828020389567380711728500302205796241517422243549055848675683672499613464960737685303616092539755083267719473470734031605556773010019027197926538222712515640815257448295637311432746266998915083021674361496858717333385792760178141691720957869614667074735492845429270353655496888754996257767382011219277289298074967460491131484783177904195408285002574367929598782028534013653502473440659311203898962551872968609248242703062548847932442269543908800744828291608928437444491361526112855874626601463556305887044392568744367658030281787358462081515508167213747643701698733911541455801538701338960615386011043933798103992789470484258731470729224846950530439599119919885011699770759109818645140011222914906111834925169269395484404947393581765001052734417965722235601283164133782276574816115988234149869775922000809396713080445516637876305261729004028775086210978406567772262459729182751223497458038139944643666789389465338425248096158605089361345119061523501089503566164235587746059919413403835689842814379828058639588502773404995269546538972080973433889431682333496501735291050338675544378037856765748483934878209837329581345340649498878803352337925182190499517728493264197418063565532183311701674449599785886631511195731756759284759222209405324291025206127104339439511204852195145130687028213470667918391306202175922306447457498793831252459639010605474091745682993439700901072504134115771027800039279494420847768986156122828930056741726015025798372562016204878345102299592927548432413007422790053608698982191358970488573474057255122559403039204396121450529856359215836409310773901604043854414665273902297821567254410320815787763557208936541280675505082301972229444606255830939253784760836601622452035977552099656551403312629490218930421559754022103789431945871626191791967234630842126142647700710676784984947111767162881188156780031301462551249051102462570180151510403561284238927983466509279451958517568839728733200205751108394790081841561086090620848809397961951522412648664463859473100084802789570362065875723003616803413620944739883469686110678318011369192435961506844067577935819906840853993613264837793815844456460646319976733658580057438437699846785728206002755549156020281799952589802893481547973074355501373949049230270887505409633715401621596620754485022783818791360437961255112468899978262745200158510309644065023130208352102743806332777123361033724384548944758156955356794048246189769892354063371620064243022194248101335006433901948823813573218839738847724527702939925198475442706467858729218927644411742520584971226911075348441204083592516560467148642532371509357935070582639220831466489868346589883619086393672380963009136979016803376090687035086122652574947538029778066158505445108598042357550544652637120556034152885857587147013075364750733531426565157897756956062596385246864922049977109251344497236072691590235088548697382778107504415053146080261625557632162726904450575231397750477199901216541351963047267249328960485632220736651359873343597386997325482847952107980042721659571150969133096188267118959958111279764932167894845180953514852002222324985993181013769547335319960397045296806155741502532303066272218458354182511780451807534628745378600912289375657521654201984232828799839774640966345331143311920265096349028187507882283797019084833077342272856320944593018615488541320198992066928175142298218496633140473208339053380880803878174631914685581908589073280564106688356142104969915853730170045581660344311529173798531882559365243400311842309886998233120032557213702125033113559256096662162510071311505254762362910349536032404992855345079269269047306978516308326810707723620003662337507433496147065171993640972528235285778018021825508773338761454510501759034156610288423013121906773089950188467243294637629643293270049957040373318918683299499683669440510511091407869515952269636416296480331664264513799456124682143098308313893941468732965448398885139248371260617317353563417452489830567125133929130199186557873610529908333401894912034997378300612276408494606381768860974976717808835448501638213828366645732938332535740091485911772933705728436762784115478642399597603446749461990962174210755729039190265723626677049852787359787024706812847561333023834892840411109153748426879742764142626216345054095861103028211994817520477857562300378803164602223013014180508588980906061563403129184126987691053463827777799467078834899223990103403529397378985729203346553498231376917801820932204930909773617761086444266229808821030977477807467359059069694963916457088061763066119171954094081605148551015428430136109929837800079785548407553646821654178877348306382720244187477714452431399792158331389805782092023020845381345322317937246374485536479268866974047018973421763086334024444930738456809583796869614852324565413993798072637546732828446011328988172328028260547698252844975162860658531094547161704039520039738092222071608169752300835980678600406858761523467987864779442218675214139837362517166549476498476583177480893508007584081983039753754829031658205030965496362281068506690172127622852389782171038903982674378943617237574635960684349662191906649305197112343316897558150707111545197941542292956985294453486958689866851954228746588003168246455655263512457039133868113498363987584768863105176645905245385981155845037133619330616637218680211503060293176854884314395153713085000519693223852322299233759439021706381308887588361947784575552804458452057630741484509653394549794918774401225218626702942718233626694754014224143933525137949963339495787475325363312239661332171143466961745645464773217023836036268171335793946322130897599222365473845611493445148858878016990782481115574330048746516246825134664175883954280522512653134203381337830657046043597622182495930177274219174000906307483278095848546116249359192504810503258932948378856721280419831238524897400198696733035023095085648039104175718919507050076261993771897854042631529134461536470176123103548147440776733039317862130121026926750448027004450979871803647609404229330670141504688543732861257567634071186455193831434243632149155162124539326018750906425218134562700940319277891643753716168772050763702010953433605293373366748988718828190709919960549712062356748090845643659243156473769205385103585280556163772705277605038419402725515322833035388883731809780735745824732056517366862040029994867686552785119397987679625206240415352767443233995029166855478006838318936466893489394631820530973545156345198932320369889877102389231267031298948133099739826975326421497726591596234391257227082367829657885551980350945416366694896156862265125750770053732995775949725077366924234424546663070178218251548315907139256989401531232545637836569750456846373425599746646079085715111778921766368540773120995950300800054776246765814662352854693998174644847306513655463002175276350281363893567907388875842127274973078509354399555329558274641912619512737364591437678254515477588977930474492437967609600462219876306074827383836833005855747241311882015820704708567548593355999137041603052534674682624792064538184700849071176229499960825383133109255994514829553417937194457177967302269316215717381600934941089910658327416313858286481631509997865167404731904465751720665153005913903830997598937193018400499758537985783139398476478307970061363227557769219582598217633236110850753034213015588831438884278773579471234704631181579583629044306353755231176019450974901318102688826136906980996219316368388697467269498263063956503071427530898075481065251500667986064542945646737724586443395844325139792883483034627251045314566999333274215523795383046430790686395874118479393490137612660659237778786700485874181336702464883552165271230692652867319810427265910220504409959312489557186143925534006252299057227409236916615277005731474956577339997571501082906377483642228577352560555978880810270180270013386464710727236096507184295048698168783874701790449459612150821601408332751410787127901912172017802278022705318526228173132376116163261335351900491233691827117421320022025552810916993407233892336251347566288432734487130167184418982119846002967737418633275463399143859766296041621264951404927018184668278047488396418529392473881581475369091402847482741637392260293180237326679720417271130777869674307139040229546810503246373665545095979142841159485504580387491945734297627232322154854526579192642680621188779021905361538360471874158986876031724301712567988266743779829180509117824188953900356314842793261604625802296427792431537419731445252924735182081642967823247870507352972724591838571847738551340185184521980823584572662842724922771001758234952440635656916313980488331767254844729604571014397852059262211326249453263072336557887341123761836682151479024345571669578640544320408886106394504833758670898374778287910286514869911608563987473229116273413900095844177874043026747273779377411836618303749468531575266965843095222479806685565187639508927978164090757441322286701213023413326717234770927257889480978414868878733939500038419227476231100984707255100008541775020555491727624957119107305562135310554667721814071747704675650101762402042756462292826010876821200977071254254449401122668354760881313381015484624622953672553789775519434130537354964496332135140692297473290658201348381040758315336450396960615816934708982483531182010690340027131681953664665189086834470627060482880933482684346650214744920083953292189712467801201217639783901694460667585953097841931070911745998791185342144620176294824529849344301139403437106327092329619768946316123532220511935291057998212691442356425866564626677293469224583300212375070518175113152421844320201590520845901205122223686257234544352839410656537850883366615264022295069971627405070345301960467322730519470702518214361068151243941751624241909920297734422300186355500410306180350798197146675617366381398741982099494028205608091859521974481287534663224800553550399466294884309577817419544665145817514367832043699244001549034386792620597734286977924151291037779207123802082386070173787730528049010093476397347324857629857114333628096677901917638740872621308845966883391280140311531729246178938457340990709403376613975202735790796020669477447381269147140124930748577444021433392800655972757057676204964313328783658376809182727960018955540548358691035277376523241997734574862468304186607245628029704363352323465385824206177796846828258902108576549052765471425040413898028097534492878740083891452407169633123057977271281348840032938798442736416881432560328720953422235421957322749228607968610490620887071280586449808582793223834179809594149624040063268368046806655506863562699944298793079761917225633211189458451984946160899671399673481173556793413316021511597343859200451181526066734827640810895255382561326386965523601025723644230847719632470593261361586488056994094311693853422743887997200727954367747464372740806387544753951946264693634028823843183191457413314888630296261728186054001720635611916059818781880649073339696543433598409762909796413404345097976213002686850052771222076352341714972599135265931869868587642584450060630934452385024120655353774497159954538695419623023362421229192504147125575786669519276331229968114620195817467221439019311486399124334727100260065969739226385814388499867115348243815652249149828023462180034696516422769187847100792297939629152216506611838723956782610087730157131942565206046761551132676898651596785881634261677715453545585970383675706629825667060623046377704696411550292950701181750487531158305828553104115666448728446225890396991917023156401023977184593939078749335569586784445779207878117529838709552453252014398576702052434737903709344301282935350455190911543328568902361246420836108398728620894227366623608681096287341065061333334904287717408890826200819496105706817945938094763775435582517945808151144507936142755123173021560317473598352276146575730815049115296395096764732578699809767308462008316982760878931200621522185967767439753995587390981151052931522207932446701692763099348743299542037864365446676149166926203919649147918430683678027932578783738485101215399070562933911065508603575613859320991320055441178825228660166267315512720117157072971588355165114503200944642522731783497856808453485177624635893304780270899115506228933402035103560117637978203246203305604772760119754732870891650096541399746661090391580132992181780016066275218600833864264160494068528243528353588462932210044134131482438502892784323546771731939758144761539617717949922613945220440391818395494733354888226021712642549032408533701336892119330233797301585526262324820793611101505770190943746499576432605905223004097793311504657651524022969182844162237480359068654897676158535572859509711745442124657813115889676933992284980854473411015199358409135637027200660497168451519639629917835175546282409880649232775258970896291395979206099623868047621842102715163448583115859278344516865549223525559349367543035429107963392480249250694435553275157866999347650742208106648417191049410096122793191348436431498656888158306173356801985310955430343913226189437215822473890421156072860044538474577705014145396532923713465745441936026855579761322529586336175732971858875916024432075578548020405724030035649041686667367569755053576352555635756498041227814696925288673449748703735896294300211753916227993299680709711286424901166719037636749277282484957103348675309401406537104818111288368076298624188174562751548466774433479561698253952237731691014094304274396432476910234913371691949740109556802225726906876802552476040963638636545313402628596514664910870837533186692230337240869538184658318261652083131000728076489344477477289194492861806748655291294261288330939126513827122908978425364052703287445226432129175693450811928668651801811423856312643057345133555290242473072224580415480123271621265369481174160745494823797875996240864291974571119073511841848283134860098585845607041787448571983815767376177616921085127637079830889887600300110320322560634633722030798946383184413606666909261969716208866390203646205336489685921268279095295044805556913770872464390485645051433092508741249859698932705738593922952156937077978168498059086772287333164719580619520393229461736859708492721710862630544335605481286899362866204687340672249054231358371766168741898695659245811855856155103085606109773304132280864613706765964236514746652748153528793790556281529705052851806703036561536253921217545922024959344966595446941210643305496375249473716723358430052332120836837144589684188933224483428899559297909801723343685075050867469221952827655163635319639029896048102276610359865844347886248127658828989996188305775508870585631790393278175027889298751788184074533976779095632382483921701617271465516079485481955611123288560304028919582950099475759962990066508263866965178658185969273818639345223262112971326881245353277853862960002486076504190699574397956496280644181923825506716846806781299498374386662635916737753588043643575615972849382816470487667125590165899067837824562165589678811644454600741672463640225472736878849679461873073865188911933097719862672350913252555732330644771807885323059635610778408062118182039386127091683227191771487875509887727672103105191947817461804262262020725880639687680057102619963736850023361744223060946144823931872457057054884241709813833535449638441249172470503885948358981869361976601857619894399054776968042828765678998822839261277894640683164598207750523620338225569228535369939871605860711738550479337575115632800976546528767874137656872766091246787804557962811521389969979726244113947124283215864283735138443738758683533957244832173315024722590670087786319016555992846517118150086193381811251725671311031169623593408468519530944688929166588515433221206050823728084827266162161688358516336323545862354566609611736777838758453492121516670992953421289848890989860201655938290988557206286292366440389719298435922437070683696654394393317849579142799715360328079943958083532416509753824378224316918273969038740963030982567733292102484687734806386614598873976256411015893393540016151089033810189191219384928647454982960534405310830852161864381386980445637708607076310671668532932324112747133555218912282119066025410734219825855512259870219778711067866301436898427393974307049684742115763380526813910354764087934591323177630090201364940461286097839769006085059002210185493027139025873124208393527320841415105870716047109477758792663545100087850346312812709220955834536219087736516370266934834175656076355477476705715337573886505493078042336252512253658165971882354851860954655429466088804848170898020189612486428910380612721560021591718498050477306853515011440330817853596946996375912028170326933838415311664296039740428355842525077594091803414103925042904775544300596560192094044214381856245263095516235481637647705372922795113271942363937296221486067828410816057225262484316734413726802613237482912071894368180170771175695954073299333174629906400123585289697785570920076548943569542514645217366737187236258955430731951048629791916552870443265040199045201907554445602665830369668303790326092604420451474583004907519433677824929255359226117580221382153467930000930672064555929530734997646390387192230707832721784917546511017182356286835470467896397483209809156845022766930634601668134344216347047466248660889803464588203650092906609223390358357573653967346420873705063468427291648222868217123959626334052305487501251322211291912053862098199627685015676578460099938670447529471529085660240790090618690779903673777668950473710493282654762868081526146688040437997014841670402993044898003476928113036931770274098482423029928794884094215333847339829844119764484030166754823705617120729597835712177623038208394853529998957785732450830478285726598225389658501854615566306018702502420100949548623328502461631775857630031936370178384151180258941783941615885422554023285615217973131150649318303063625047227299363737177548121590930319661056088653800475670307075803076220978019072621216424896304285817256640714040654999651140637903524736005650165604549858502617111578273542290919087765068593690644836361709345012653470480525679488336751811673562372270538021380268046997077309626407454340652860262956947204362162152317545847795797510597721646127203108324845773791733483555053664201765071311068538179070229065690568725542506891477339647577223444075506069021065601457482315787944087867878017867718862644232192823517518034159468036509720761077523212735747088305312778900959045312270953514110651524693687784495598962110980240413768095939938524877748876969654717804906311856915507105526698490861974133800292559978578212226029177479639391094033382122773262465716722334162553619087511911841846113349298993102577323480605481267233927988781435212739550691777980103419268234125742899655461130594777202593878578984313523929204192183833951381132163975398059188055983380969498380517334579299125137393560144708985879094108462880623976564738746802253249413051808589460592280925463891809494502891801370193683933490051744268845881251296115914405523469302209487291964957637144103585367044098613964034007798793621083275199978876880674024531453075332042917979566972022209691119847239273249042223439110579272692113981599417626496199490211332430101775633147589276663660537372967419682924034862267351900043883705296510870545685076589674589024128017368426749276947848240658412831694253739246744952744694185299856491078171071759262322750830726457455256760632330967365007034142749179279880654815941643450097026941737659018697856499590317075495492302739815490493996907563787761259812663783622959773245841908624213507989113154545551527617921663701244990005177783296156701320685271267745583380318260026678563561365580543477885395909798113508665952929039358390509936228337003927174270382364530683752526273097410305717922351903195668605685489444271405461099564335552868526659017588803163663055296359327763873244781695141422510076607620734858880099885686414604926631073834305970090013204851088659900085570652810383231754227885873485621802376635118302487229790457672862237489151508874183071894720332245314454386020505107659754368747574532539702471089934093983940845312500031242253639966313505941039310329086297707222694555394024196877425798955096079359896634732164940076973222763931506364364094481118749021117131117353502503309731435268390314923081634580578666655934002691102142985177402336322621805550916513549326102683623968900567505804153584070743335299240962110375149470346154682617409957874675779040004303840308319410449737863837836982399198456922028581075294197007162651166714987646384564292548648251414979954419741455208113103050654708894151642862380279704415902419851548768948296133617655062190632616166315072913399582510209189329412498539093267865154761932351892759548639317528507699196126051107004089565498178785762090081024554182726015193543559999861563369301418156150333735738269161826811016691786062400293705938689894213311616397055333062994150188285339351201529923710726303483087860173769244398904532279247285729385283382498380152485693215539949799101223465429802646538072363533655393999948479964891841570236002779137700512813048824770016084013533742164823543279390926596881396222542912275201052928429259259146283838194032250447682097090761083064863187442014764501992438864921175191928621423029719585894995777011930632443928240945932003922432439036427853142667767878356425489330960979366870356950582584450696978567164993454012270810380264927064167455293654131918438101029027329808293616282275466065565649841845192875234744720922776549529888846712728505886343038960785181853422040410235317045811867832083354843141799619185334055486928029159701997613981639335941614263942632710549630133237514804669159770070398939793638776769404968417726977850196310001463464197790674899672515329587637034431959648688149310108280969163251822715456001599300275671174407359924650703261811182477138427739456026816042413018092726923973772371308361995057428449350941257236352806475435851985165396001358938959214625880717674989636566936819902320788228149100121183876336627685665384139174699074462871772141591048465489043428617977465352433595568162346826635338355034457148041519324564535053571916618558554174600863578132889210282786053568546911335702283141802440507247585313296832015317305640112497189233800627363214398852135518021268106200379400138086065257964447439395785603927104237647771480750495948898954909096548603816855282274534533895134873297130994083750741442303702636692244058532199941593161486046092682185766107173402314786542153724875739021957234317450819242067701426813465741900535371112007542125212258046749775068708811301380436493492928724066948967517294240429540960484204379068694888161241356243919622758658416110260348471280769446569149369397478810930095061134704605033826859423163100230648753591180154283805070143266422479700032837093225421233368631072815215429979205513853284370096114779461553320242970413273172473673236904472090626196148588386293836359082019757935360502376993624794879634905448941218297815998420847263836381837586972296354732746358769197848848956320145159590612675870824080500336008877414951034381173643468075755555212511713281065693093351220995513152628163986149231313361069518700184714562395067419075834819807580090374388538559838656988266094357364652885468956858162545533411857147304835132335776879055200406360130816446541092122624727120596345389378912468650176948516964667680447496255119609583266598496638046330471842470239877898199725979948526036502354046816121117054366360530191950186068569233647336784907478133033315776913640736088570475313160200114175849640947321826536893125648453386038518941497807531994513810303249897913755268997026096356413750688222699735893429705187789970028811421883116317126447572213594935426302153080675369479472049655856066941799331514745754112394735453645473838427487096678432055675386120375279859320175367992434208086242295699325672225414103596330857040867484152217879070199143394585430867028012549462747344571075391742707051510835907406151130149992989242050579386757092589781646291928899688886218110498031838642422210623713853873823869259314714699308860254692074593562749716581646175932798312642324603480730791249791395279736703553257120576031025424287957805385412679279648525491259453561702527546801719519826239996123922009133899628589798042908127485382147411804135566785523010917624554543968800837379292115810749848665041317196347520049605676521580464783120117424156885321014144695089104606965778818501358323279874176604227410716403828569889356341613001527641540450540047599424591764837925050400320545928503638674860185109279058691465455916983610746413409496751282792304974225433169939438410629357613919669288293536195561368085991733501600769014226493983987423310378878868918217296883871240347426747847587637060493095447116625771738316442671861760381383272584507481230311733953395701041078063900890626885892967429113003125847293355780099097014253532085648718549503448708067207233516752554701481220211312461461485382458137621183961999466847175159655491139085599850290967406589268776151560998235357727951722958118099273876741271088883497959397020794637698414864158954979343809684419587184067978729979968693688912418830746502408250053212029690632924316870121962158879516257709235369456254147431758256289125243566562944636565110332182101771930798633756635073919971877383895648536254660169684548292152732357534995591123272939267012934247277466141199344662521112430545754129245080075359287826588202109003987717033731547313502586367874406636405160945362864311280445161945314024430777811662906762315772842630399688682862677456685194154738625115380766912412555628573422081907813426323437994925397297272773319872012804723297464980831969884824348522624719179362804127013030315878607169886348635976738407085567843861572813759141780732320636011274494582193016723069245794730387413406844088510454663278775113339655868966192523177910264017920704574186933258488255064405262674308689680843117428367846229403509296122905630761494578138989581194792195860533672087670934942966487721936712742046565697162047911249574762715777749531707830349809596632565703243980982345213545659510277420364226942544600005752056637615611077925480276326201922783485593682612158365592578709531042176363943287978793968548393853371206041779395405704574462945122080428313537914640142733190124279355089876350516946996633106400286345242029879216903100378488808885274430668112291690494359910538980771146823087109306982439866753161031757262964837969590524134103565668454160177721884356739534807012630560296341020903960447766803348272681049194705772460590959202243215681848690319385633083437274262265017921668021708439822479246581382398781236064505883316300104206003483649345452764279222692060036390524223429913584479337026294791950966335580678068325613613564131211242073283312301045321036259808164131965508127936730367894500628611785744931484666129394459715393123027085254455811585111868218785800708486686605572303477692798029191150677043956903770859872929740657759237262522014434222401163463890983108306653773565726263620872905603643220553980876739595643143741847678197202806996491731025963090887388028433152513608974603301805538504503848114628475838876892200220199187351411182549671922280549889680466227514220217476954416867327918134012320263481129187735534346694453824225018223822330841429689332559169639887483799966539341123822670873026888169398603770823218586460976409376414759219125645545519351622262251340164519526692793290902054260018484292633107246798570536544665617957373803265046701145895139715060192117357666918416340322187039692946142794192715967070244331365763068131647070443989183714720937941969725324907554732495415337629749230884299508756624976584624207454371896774098152244808350201135741661537354537745364383298673559889062006807462072611116093720314224820734438425186341444653896473396452158162536427748713932675958845767028715297626366381414860342776595965204342148315848038375047041217173824836487937257416424907850778892016338853920286411158360675900713506939583149589804361718444211442955879663808281594553145586095153747240919331500244367446561313660489831449424720840914729811898816537430639702097731253101180618110088537874610882069254466055170674847208255624635232565466814707415490515623237796913039654998174363217582267302635933861659735084554771357184305113250163427480175442914004488677956618441361311706492896761080006738789627082782685930873412993423249780387667048643643473563203891657125461099938197207183048453843880248959628891667064324537668406409834954903115840063682935413658245110597873170566524723817803883457075669666780040927770425872125984805723375821780047250347599655361497897080264403240360255031178941831827269439639184260217447834516171967940914843243842202403931688539232808683517481170222503177435816776901659898432008751354202927349508363529380157614357144684495991248269387718327038031302973742240937725344667335948964072223991256625507750766695622150314054189030692822047395589692713507348285692832807828586645271304224173638461022154730027304672832738169156098587426326705479376250775050402159137536915329965769861535277007437117259636508574674648987504433450683242456870675958709282849470485168587101180387717538655797187093607225649265828016372044014785464914268233443980873134290483309871115737257464895164858536198208492164754278717341632746378059700845533373799253071393787624199558035723176079423207070152224916535772827321377497247119478222994947302585080778142048293773531181087423436151196283169376572038434116027129343223477978575725900125328370412819949567185372938638922709225711994677116788300951306915911127516979654757310277436642680326710251029166787049769425895187424505756742112275093808769165121869834491899169435473440049554412967333371048753700074357452347100186329675675613498529504556413736061290537364520482465645568035204880514567474042481536436240612539342471876262663239331535911727724254376670705158344489205575342851110369171796799095226786961319684110919920410687853863847741297321092993698266673642839146920171956131582210742291031576170582084666115307007369131345739020255951853948547637460917469616370178354959471676102630267533021383045058764333491063706158798406849736998970874495658866315108939929383129878188467744510773728907749716977979997583830346291196609397437850893904349201415108441132021686438120555782734330105487693163820197228147799045770868838997457936099127784492958120841176352649669538362485709767993440997716666093734084407904729310175790606651196418812780220518929837350150330429048092974700936253635442539613782273681124911921846416697926784249042377091301790848324589516615583587743964143345545645528497558412096774474822500940870504772285261369295355576256475674012250580745356649538786816859304389741270811997425183082869621401218280846209706956664293403372856407679805492971294285177606919206195394668398457138665639742585469480713543805650742174489936081657175639049921473512104123591522302625964558609640704593270918834978799282021110349637590273146612263612756661301070070674742270866878725663717235543614489225468684100514337779396098948108672191468351542728362345319026047165046059049556657673577728652095197285686244363654536919196521299714961236899841329815014762752930613184620339492835700909725670957334930000896054995082766246234769685845060172548134553139781004459464512786111484363051226052041884737596110829486662633467278787176240737257722639382610992113447204577043701083513419074106199980649695797038238621736370167070347918667877743560164641587178311717002824893363751980896867373995094051122765536945239989375811648317689598874104017105321875672409671944349886578981195037122383671019587207403131580340384361264292045650427324617664816678412364824050962594266336242496357936448425481365821421027383783250033957523088371478983286642585738327375732523509459546261461389240776776200503099323333792292080414011986899197284943277172880277554765432131930775829152368094251367564845519630240583579438623495619072925258244379102591363071290520679408382747341816635795335800546506402694591239389760045493455886452180192359207199542070585654345140676501808670635182130661285017768345356118715177418268910702396271431516666715135033463301381604168550889886792401905997477128619673778754292325657488353227309743758573018111868037795338142561860027310056631911317671658051623318692414262469382856020695530675251210697018160124006542633807554754018116930396584135630583138308332222232772755948045387680198881608850929489874079832234700796782524696767195781718397024780444669837124080192908582160725656037143910309749351233219199804005599679815076036189293046529041858882810505949883870216283302789695452470173657821731690297888662321953040974369194021711269098278851938966849321891525526783870874402838043314378425199276014301661460918727451832270470859457484640115610376530821112415588760546930586300856809937254163974764215734564337610809522572709977063689968030789909495979136512545538338959329224002912067055887582118896203144449258213385391538022047726295430726085239190127711671724407641294229121776322392373884763431516155037770217376901261148676231514140912257492493337871260529051137892532431703023893396696240011691031443240839917974567862220120312555628252281388435594655456046945241300226024565680497414185939649122787639322660296120137952890855518688098184314379524030230944886570075630914399929846681370111980744626347024983298922316373102212778892321548441570226878232159374098942208568848434272156005759908355846768792786842774710449792727177505629060155224094927512818427845594846118704830707848853827848018771793565092190717417821862719409118853621105660551605467676537768054530426638963610874975750786633634621784999693344656671291645608691855776615265780650879611308545959605137814156633939100962606053003791039557795464653955849166432933102221442967123135763449142379371225960285356361612263058969441421502654111519219379767514280948627874125005826624103002215365757650720196188777901417911756262093417349781113175191873590338592382004787338052622988796714249522071615247122711122212426086128697017206768792753612596019711484132878137176602561337853426294054719934874833903062394693985038715514887095036464993208013269500371406275611390555070745284132677734820274353461811071037188206846876337703886547915944044122439489087832649328285822848600831568653889004453731437149518858852791261489662448926629589544110545934623484984898348486763290744102800390568055312560435220530477164059783397743757983184862925796380103886493283387655751501958333430421369881972386270644582847952558960894028028913109590582426168123298564569789388328569812327778800160139817435483542574872339114507995168408290149801759354140664975066813888082222927680254350636557927037577741077754915315686110599294011902461317505254223805652990737322948195884682012205826841875877126402606783198542536620650222299273344272933863746474339536531267377951918950341146366221146879891324599226328006678227670856740010458241320441628660814527101993650903262906250394289184867386284637360542292349599658390730365035495640491248043857423391785780731668533298345146817761520750760834562044802369237484221362060428578616665871681600969530980615426576882974323440714225157101935582404322283764962110509847370359324122337577227689414574082813133706024246935666917505548721467578662830978564309578990413071014667323606895352757036427018660678874042019292580680635714359328670705298070372185090452099598370238380462916034293475857653904782874945624465409260282882601716498955113084899819119509278853978828824201619156548886736315210799256206155619313063957951580822068195717109788846938010955370843869713969632453445969547981587802265942247471048044588632633434336746252325244794853712340388206666938752806768231945664823641170089688852292238253496729793257821855818609235635141077675414687490908934586457910083654507466130557815697513674512302754353024349823109364873551908054120187473668600130508616370736371856784052994705671800150491268496624966414988102561277462992374423113525310353360204809445756594701952915501687065928526861844518506319975140071965952481157361181707379265213263334353910782622291177169788309401742232588651362299490459923726778096278582249914211154225230542129524453432994254716495127410362282835742038187055599172881880916768341099186539009688962076040609514751265518868760909150337827997142165660691403948254051321947836334937158613011730414651287328169494479282355471898013758410304987826990547295545590498166695620232430504344306243872718686103679699312557763586519328167153763388089072836693576682138341650475686190347300539929637142815523180417898394237473398069821138175732415495987621258817345896005425916514413134318676463760803207242234807410417343332623278558530151610573862262014388054351718934729564849949600690101728213846262415092283315734407207215938335536935018535270406440673641522527605063325729047233807027552136949158293668938720572248696943315217816563811299964565711217714601883658499756852868451836469634164927622728194452179599192414350619945783527178244458936853406272348600055003949175749886141173198480059374938959048909318797805977385524587952300975623772807830809084728871101282178209889845968954701386888054633914058834723192939302314486184556787108426891343379660058228725013223585083900878675349082047985120325766442792719536876383662809016920342511029897419380842994372622846026653752173008825339819171586378650417805083840981791191193765595797448780204675649578587810714214685710746313710924926002050902674532409764996030038067994206613122979745726673313188891806834622847430790021504774499246254351763782198952270694243629845131415715979428109798170323736995732017794575344969278389050559865995979349266000148169242997968213068270433280130562776479029830805184140212848380709542675334027983087587761919573460735082869491299185278923594580540289540762430945747720073893698975252261313765321470795479770546249407642210805168153019479266377796014503207372451482905067881813958294294603959833114192587773545857339215885150526397300038540928678780056582189297337813241380538335632330124541352856904141127471886961015390283154473215136046059926025602322830506609275077501530722334123106789517157293552458152071131795399263855321369792094590343576489203100003276092458819947341933865479718744681713970267995922178940480250067856361906466482054852587698498456889427661161392529295395359006165650318113715325883954547926221265233732416619952390527165563628760613179258972201874626868154579926843255015758312124608482954056716501597049121419403739480654317332248922187396146839472873908506767294399801696285654425231009756582259236282463316474531025740814449609171446987559802102994123718835199998563373478862506935579166678052303934214379766405928810512586375448749892839457344608775541355415600614211326568005826821891705197034107495272573281578542987584916879618628544579513845154946577468163088817233496601268611262668083346179185175664376084732234190671029974987872665653181310624242048521477168076672565126825182775963713040147636678747568064897613586406620672584181361695516600794138682176166076633850277601207884392091496947804407493056461898625429978951411182143855423933115463589926221704490498465164762745071629129381363575007726413210456295830624953305971870576525874012418647976109492740995428490308780082286060061302164566483472718320827067432235189915308402412759746121645053995258287088156076340756930184703217145598571058450405446418256544037117921376310243222328022303486474990971970267443123091605722397380020708678689926717654720177629846146785811540595956648164946207078911482477035316179523462976274798556107303118086382281321747180821166014456301812034189874336644015199079198549703548842367465781872755321038272045547273453717220942949405117848894967218876959775052801754889869884353665616909185700442203514295716329005173211198513175754026872065042358789028863377307121704459309160028570695869026551892278003267170163583421340968093772378513038389979494310764703938555764860403264770169411029475328780799563367069616061903558946265762256869158349121349105415915087950773335124445485666823665773218497216097942011217494168964367130531116058306202535811970478875793250028419113458366365021466783684286796481503202194911024824463043852148942530992879869658036776759813295740893156982908752430820189009657621003928950265512909751723813854346012736218562793800741753049600969915242288083535346107741311563338098728364045724348624350058304097386853455910244139847827639360106382667138758478658547321615494830867274773634189856082900697908680110468289908270724437387174950881251033333754468635155292864150536214830130093151581415169587889589795288058814440164182938036392795963155455009477739829644414380918091494880083189933326254086653391133020405685537710444831428382773808958549780407715918137552524920493217273401170979081296110289513274589807647970828770002602223196180307266754486637321404730030793854988984295156763991408324005181806748827264178779654938373072101180746124188539607615268828738290594532099686821271979761253499133044256497950439289093163577041280079221658688372593411859392585447394577532328025722871410843272638677967457289118379045642789610583823465351941509655222030467903976388587927105141464380317797264939061601780419693604300489825592852548288311591111774149100081623426424228451243430464595247779384313289212577750503763224469918496692085991696355019641961037444012687933281002005940260005283984951765616162345452232610435724020716872428328757053904403325898009147150228660390895442357574483880266058623526393253186015882378747249859434497555451950661813966205866169841697946440848124940642774795993589375005833324870297797474116787178167353468993163323690613479915581101396546881081054319291978449241941167193705188628582047618443926357895220040679447884418020417983325809396733035641214280713272790815816551597102781991945590914691933865687647231376679361350692455819805053052235402840124600786491947510749307070656680448483352398380279943867609912068761400031606509232189320883495932328678927699755575897012781128524329699533388251330873573064153186875807070591556990465070894074319321948134285818543442609040809830153103795464108789731588514661637793049170431070477141379241862426025291501902732544432648635211586307874212201357895747637692902537910684286133242233250473372188808409650718994290561176492585497390215322346972841335186224210800729880128473429861671106484362552359943227711754898015153263705741827895020406867264430803930521810462325197478068674204761396796010136146504816361071287642284656234868450914795982668644018282432117350393007032419229985683567431513051153844075165723255918601188615728569690496232790995131385437870474612131371570261234072421156723978402860257641395381939415602921602215197351974478688013497421847779244991754474476897121395831806595173616275944414798129370671485753135109391865796379322840348662748613603973409002993103753231373198234453993512311522435348526120068936621237194372970755795378336531194872645918780588790192179113918781789452787440685698942748133999661296771343162596786013259410329150407902758890349274542288352748501590673532159002988937033687117348659871203478108488992134850819886236843579485022591419052254363848707590310539549948287953313488551371471110616782215860058537404977794934975832680363261838846823330204446028846827580982007786537399506402336306352983838539717479204735376263410440725917286551278624622714696415720511263111783458553837512432606755965856638155139363988609733424028626838604089170787666520972157630643325102455676978298436760980521843684938774212766713306125296090514462753442842361431540071990208529618532084466988232771842914104858203745729387366942423943760596598132520257787818255176554625388369348396034309914930179885169685152021169100918482945278184349673858878776729363339873397703550968779649602060065814741526936171278893443730484258342266494239749172358495529705708949102719727151660484377778182395429167573443308756651267618616795242291043568185943944199415209188705520077218646492291386135399751048789943120443517253632418497546672478006610102891452520875020298595972687134117459945070487466285781301179242023571594426766643790278825636625120710212879309087317537665487745452508607504796624084441671408629331873451118477284330578974208264968217567729664292371974709437368893372084412722219207444608673583353475646696045100064686568750143804075445888212090441731232470215942996601035041557918028587425649716247273858486722183406576908054985522561355130841689713562117788382082037921172026710649637762256294736801169019650755975168753370135242410131071576755602995095780942468920255639000003219099326475458468164366541840768201981274458831807412506572014910217351769568641547787883947994063710426574569143453584743839041720535864934864955524324200984218332834023536644880495297174478326148516910353537990313193825163622473900481105370889423764065378973820893085249799332986939960927789414406800535138576427989063934097782738683865721555573114837783068167839954590686032208634422577903210871696184493578242595760206758824681223477978723114506158652205342081721514033455150481381222708188846784271753107964166295279349244890281139901527059382607835278026803480052298509926782351545102474421514087370364513684024525848358690069462893071783726365329892817748273612340227971838865442182935238538267210765484445754144699642578232636805422984277962864060703621818246384753361060330284447210174745838649845996594721717692342418134496034691286724345876174621751905430648998858607114118085299362483908256698414925351384319953875390549625020406677106993992089742652258614041357984687683917669866317514601764874430529128756284854281795105848735606802026984611718710376329650544374257344875541345312236639735679223176674658080454272673572227080194238208071307891337574322189133991937681914960467223629193364289961367827973734118241738184093146959817029473797533565064638164975507971863742222657985980113334555971938885473637747432006156413397216742417582467641333594131169798895579458614007195562987439418739818511996485969327699246957622827388261196690305510879668673999627274702999086392794333986287607209479578632525421192714135983255866998343670335980398073047368965737924437572256741436579183393591422808924929759070729327021219548497655098273714759349706280110162144212408441547178707465784794564761825493211021609200382795060691458289028204260757645720418014217153074170722792524261640556861136660074028369912198594028142174479466550177307601883242781995079809355768135175551747164638619219385855097847069527741300004641268359027428093448605883103093043489149045434592705832831948871567223414599881306756877186197388408715988274927489071562028878537571720065770373290713896241984180663570740729698926058569269652605176239576380021512027658897295280329205250364479262406680825352295733122099109943856061369566786008697383686388810521409596284723375840075748783028812454986718624648804743122231780481538212427948406223736023261600602922049995192177660883028373930924182741317355594398247256994587730586878651982745724031981115618755572687457957626996162577327806958742209391348963246985301868489823748908741333481313589742534643701107737551005292858424838193099705530548898365887598452797013133209859900128569994007007877027088546972201956108782718337194506973225545990723927403090778498192578534862782551795513515145145359076126568838261972281424716097438256454344221376423912421849093402926499875627159055173401188862382116540842689562523786872211597624487116705143336647633568061957525933629693117401320674993440421729033123139717265498511007406722917247638822094755484484595479069053039098430396686532298300183326526913106607090231703779420009823195452364158464487858413800832224194860403497231188657632438457484632558144479909829084961180506165341303811082599386818070263677137384453204240097653341268119121354905530014020855014427626155573242830491148113005580139502646129107505933114566402635208374472981303059575809584691362705858263758869868270053026718011695651980022935273133442672445575105455727295157371356359131110615717967307637691209462716009416864246148387374040129203319022191253873596750881825929023550030728346834679640652689203479245899362687957799641809129275162739606263976799126249609121490155682611783580645648094970316334124280013646745162925319740505480938960534555137027295035317220348178591650810398547510063266042260729684898423911583412186581633618589012372750757774764268127538658689511981068072022876446524949177392860636582624877067848001231441753393270224687547760509291283505634069849316275747246954912398728251699717959373372183580146437828286450281046272537131610509316616329486932816347718317159927675079673426288972255804369345192309826067036145045900986692302640477796972181860726314487528370680066319501714590340351113531554144958678311942029497173145720841435433793681740797800137550459687261993071401234001012898044459726168035741000542423114875557553808852543301449859486772304694168122934106485530706757458866015375171003577318277345593434245675396549271620399973291810881325019039571128128301662106990375827841935519581557938491798456093631719519662788960351119530195818222719474287443881529442168121531743611868626143662838413003734925573012174799955570503773062559001499837424511222693770799052910580725585815100303523756043609892952663920876039953696295351922977562114100637183341411341621315575929460589837871490741384857016711363077411826038721501029061738484671404566238585213124899695418486568092605034669313966172806402357454583204879094785249945378401709830849285540019679998169595424224934729425719492150929457824814837062108385279973914301354909841235773081430002171549960857323970370753379222170883066635972733962933621761658324080679107014365489900588968186193792200010042813787597024988012007487303208022535278508941568324885533977133891214480130827970563412517995005976573111662999879787032928847980043156288105569786079791558962190299894042185246707838678175763619437731386314504218943049209566601838133862830691202223587048994033928337884435543596840956845014497722932518537781091267585108124521603608151891528327280739614800249202159560230292154071094154823479405003273666135350783793261648856672996108930644845669161042423528257893325646078643255302836682657599721922748176429708976855015409570681219547895712821017565723084814216274237326051299077940741670017518698021752423312016163106618251830206974881456769901302012373741061447116759025859863488797068246687308966926892841695816788839267168942847842778778397682592016568990474942338155147234869862940036897742351062266901282357404359569928808664467412701890488954491635020265429176650678401695306208894053185263559963890072116022349330896063968859121124206398451992014003809397902904062768345396388707796641454920953416773901504492243580515840713230668746043890352825818614789221975203602573790044839202294057310235738238934518829300757945374154800412049625099149353064509095348669930353166935583261581801231222994386891076716653519800323698465514335858214568112394327401440549286003530067553604961466257361818675356079401800430209094104715404748548069336889540745118304232083375347388645783916569596642096639299305696298835764989461106455132202014834739481913371265761215821194029878609749492061458960180562019530991379251865085140373421113228599097074143732790435713964271113480256157146692213738313859175901454745387290409829906583229143801968479954652610297973433048682721247649279331525644290688334198939147255091618452889965793838692719064358567418009399445481949566334277487453983828724063693399697426968153870969168828170695885147060844781300840101939625253822498197103081625705265024752748505531426702647733077198524051017399722873084094936424116649156104013001497448576326334982999041680124067176516166766790020104845625983156769464502302112578200827490454263662086802138425464088785195030484377608860634800597330539575305198143719670872344647182044562575903570104813906471972130872748280069859393858574485751021532521337175682262328915195995192968997471057252185342515191663075763367117861761122779126702822815982479833490314526677855166824295063022750806883775047644092110955877236973264208728791009283416419855159809687861966093319612481245403006559568385852773083118696661917595720217872229980074398007121298457291093121496502816088544734560855233669484094251470759307304137903507572408515106648101795613375978708764089589177163977618560347775430044660171504578120300734620827137155538018271080670393440447760557407595132738829104142943012288807472566808318907128254215136898683953677257769562007552571005143151814094213379216173865863624953815865463076491089722929936955296492664315729179015999197810379091337449413575760630135210201095046894549721633557661605423646700304627438378913983438994940812482602248246798387253410061975611079554321964780186418507597483832482686088118172838406039892161301304476306436400451711358487384220969597053669628090871640909289736518415135160946889625262382537527057062449581179247015612530996285713277139335823252503514139051404008021534025461956096809116169198573151307141681960901504205712310059386726887558213070967691929224863195356501159922153793218574364462457194840848987060762064956486762275233423500571628257171929966005422437393321140392362077273507790729232746882502472303460666508408147573727732789212989773024686017055754322454377234649979783120648618279463533920370800795146364177357299681468953144145575326122664419267253585926620394694551310206092822559915932040323467586000225420507430603433897027714812505862598403964949715954381471828446848760058809975930761270822590585570502411544140483334952625710104428818171235268499078345801768011440817104343246668246487149268257266800347541077990688025667948644749983962485119296781138823496936188342118906651236538381606143592291750023568265472531875453579313761085906296548070431172343584420434845561546868113244380758540790944601520419398635065825226938173689753759788059796472251571794687956637456699207809461580704322168302754721556849563882386605530248133953101065027482141784915810628380396121697803623055787603634565759117771146711676258332286466769594092463070446280513821434714832554139571505313383401399886043455429173709202471565250519109820363028039102558320731393770169354144274770300261036266639903497146968884379828015676607991031992692007372975518961802923589959482166636386953618394370523926177280004998531627237680228483885194428547057988242942489030264596125938671090323965834854355549564153508523197406490156285873328142455967709230811283650808468015763669558408827955184706415219680597861258848549881856446642513108622216744718040185493209164300952513370078709129905545108888125110853164288997067306715428108661750308286068325730592004665396383426556932086664665620737781040843362059036165282713047610671997595710094544350380648215512048589388800815652781619811719614257671049470211195287293725422040251640949934734983507254050598756783101901146781656565824889076479152003804429412413786517757925736235026380236755295999659409544647453783768568052256985296238897681847730827443723598726907917906805819018642264291506734459640676252144670630399769850322304750148222832910880273311664904680446413557826587249020126261106276388758719893760119902478099165302886891568447689803181415316259081857814834317148912490209851576429835890087521573033126992868638445311029587392815754122132464880615350786161915224325790420944428745987194950214291041041865094736768351916186185746760052168386682817882418723010478014357373720960562555541102235008643062988293494496919036271686197380941802115878728162991506293873863572181167332395728948568629435372474331638284336960861867150921989113122718498451501359180489471268003575607233316558409742357118190542160806671850811922689725826729141845436158140868648761125374135732151709141645975330507071118097168600095438246275321346974470583169817177452443258903502202823221851320105620069301822724421174573712658635634761608106560518231761697791965792135536124278875894365492840870778905814999438806952901171896035035464537137762169887530985041829106973357952069120908165923736046351952243725456991147947968648304817043828725043182097455292183443986279612772892642048813169845587767994911502676916519682461114419894029623860934662935595197760984182814967656928862912835270130808379473050600458029914293207824715564546835514051003963506297151183850263541806722755627232446403179687781119177630969840933710400699105200581528178818049832092524096279245651926071503427397289875192666801180163635803849812422284874451807268856408427530315856096554201840051277846884841756887588759870843659837650681612985794938997137472651785583770497178803378249070871674113684639842056531451762692195618334271658064150861808057487993135370592950707840439415238022958636746539838985173828792333024955589804950811257175705310796357236717526109920054404656691948339130819138505436836587484298025584913661208996062493419785966711578336630049009800141347414061279585631005090936304692630678408996794069883172101180143190144406460549987407847976460522209572398865200134746483953231046222921064977887227313371460232309326700073348362244566922898454858679717446798256632544656567977865003269340688574862978734383462623606549275340161453656880467353445929473864107346159049749359087220987607923664802441465174842325324687849501557404478514756556301654991461268261490813614390752944356612112569540545514978521165812260719093025841447159447153585702335254431221666962939079065800593808448655008047933126032077783953682490937179658759660655410479499725081394918351666514226624816365253412882265156447752821875099566812363446698897950482953332111348885960333506147049719288923235688564498755576233863956220108009651177073390785743278394226972587820203460024691821484890937669379054993825747055447808156592567013964134282814709357593398587411384216478803062309532184142689627109629917069134767524774717977990903653322593515112777595344284447643034494669063709741026411002376506917690410676528521147561919947716566983664166873880284067707818905730290205804777688136278872743076941240065689118518724147690371075982223120303328419409946870622155075449965459565365036419114276501881649321951302593965527292037104357918036490323142874772208557675190867247265792549652868822422904705997522660321300620485197388069713545674152845487333260747725938020279284932358956159146442063178547137293693734605298858603853494599662109129310804935701442292171779844124551744687965596254186558469344934200272945406385624839545526336508983524261207360645533269496270915654895914617739037442537148894065718228507590486782064425900399654901451006129025360312373587679364471596894451098859818523507826179869081156861817623905896579563078830491616534264647012727874547771083888828147816137867261950994803684065114857034351636471593932147148130386399512882829136001597235079779569347773281710000237481942351527855322897631967503661262432603394680692813417319005694325181457506524733724759191468952255222827597400847271647930356339945959699440849154057067369633758264659055872154313454284076761014530358253458463480508126094126762469723848406963846003962454425571395402519426627039178658919879877246009159915172872677190241692183915511634335257001577628532230671270784613198685475433970992246618628760068268816886712034888032882292542061226850525126208271935815642647860961894691605505843850100995121848534120707593369364286242288347971619346922601490351237215850426786148813433160460604031024532609572152255405851617342354792624622394997283307608905473088403234831737349763666110875637630779580908634580216927138009024469779887157349585443899690517943519436511601128825293143744890857108129933422703505427163815825037215075466027844697348696750061362837307793362013533699871283338220696555893215507284338717766167753260674018593299500372073491242841513744720605382163990143103697890855915077687735259360692377385234367407618882021412321404448558569476404625565023488809146189975329814738942912971544622019153363227517418634020363182016424998193129193146506391349219729702804065855395622166280229061849227458826159982092773680345413142017014810375212136730200206279665739538821898179315680239814826666932088927300412824105744602122741842861370676456270911963395498693338970726997796715444920578987213794311603086729167174754218984628364806678998072167579510062641085270005221116019839363848892403230952192174387190456032398019672350143996979855142638312622811260730882992670477985777118585380374963680411970970431466843346713348864730922618192433792912498349609204000946208348938541620374254949429275079407629986860850322095152333036998264011032755297525840044172316345304022605119190696493389043172554002211222069386812456329403602182298612924497549078637405841720140256819443104880148718808999106536918293374415723030918178285890478422283170375277111044942400605362683887841294245210641438689585616870679675780297964952361926433207683191934777111199336083155827525279913125867340173026623163235822833803247379673460054538867077688978244655029720805249352332990916947383285679111109657422694151853787697572248910371094457861022337007996500709056596802376880147024404175873093045239408338477375228187398014715940620104463092978271028111392457445014620083851819356016281641398578723961936520360550824745461578442610995179603837540450075643801103347091241706735863862035720439772831445310455572356188661561665114516006096171408831644969577683197637989794401740295370623288909576466043711887170844772385317424872628004552224188844970674384043831918828999988037072516115175294871863683798124145442473496366834538368681371961813627149220765129726983339899772776864411040137865141532635899043629765119625539511558805827976361566733236888908357565534354409355213297949985707757376800623470379842324753106284785466671993321946134639005234923507358778898111232944273050321028297095986730063493273568880708730024746154600422711568950407015128822258281265410564058597666634783910102770898760597404797468913009426203907547115621007723396791618810995409791356732577426088370534851807310373833267152261137098732198847846922683262753881650682000514985937900668382345910703592774037908760630995674899007963395292140551447806777828103820675959021538900965245977112231348097912473033474514072256642916299008952586875775685016107606954840339594861734642234920352006106552508205561756131903763636784835479822363516132509193299995834944580614831768650667206549785320257109987871183065294600293586306673818356465729638627082642496217414654667137513288407629703699853178827831132868372551453476271837312704636668566495919687046017533123854155051112930935906017461918136861955673421208772021919444133310390956292426767140134479455850527850421570959714273390603194637588357703560290679486088586597411347623715303088539711018459380457214802742351009568805726853626262087446447704762819039249604640532049247982041971952299726363710455629905030979851396885943352699734396010643495129081991594045665214264108945089117431296610284634063001482980229154223965855987017119409344095975597361875957867405418339622347032476783939725221837120247523062288140151890618633126664217689858173295166336186351640134535824377228849644798375638976250392085667276651731771705072920878511113956743709373132469778098276881759188069123521655515646891161663603914561850030144125546498553809156021145224121361963720926496505292588015037464191009120402918094916563502980395262037182432409378299173411255972720585290083367810696635570556804084893522196236537853802574642058279913242618659458347976851431921826387445448170693421175086619030941058173208378240966376264943431527768989888883962492597460573000273629890789492359905581854849974389927226971852466039345333674532467327035940685237922056833556625347584919142234426832950310419970835702895943589479875824416299556675255116150895214167345293657898485184150042065562484177974365448026160553096050809302961292255394508082688399595221843481385622752833498811758979950090659254218697417400127460831410898559656179587409566324932446637663725153475542386844362027355996416474176682127568286927995968432074781773932544919146862708114708556142656957160692339785649784481707432250608446558950817724284427812527614336235335047618832305515039261422886784095088038201409671855641801915875371135041925611632996184550262119868670057970022672534669128094817408071113933896397159865996670219376163239135694091770529834109460362706268251189240994904674127406741083680540763262291956040767069000558251324071179593773048226602494814482962777388474403001114413243651152150410992717708261200626559347529282601711483218924387580318667823491576254763145636667782115622839107580440058212899218013021237260495017624525799381672151053449086866232657510227456447767851410784084108230515426449818084777206186913098348527935436573625982253142995501859474628230728040195180536134421908890015241356984408866487794966427639587269067844454543522903756045072140622220400788845432563081948029056573632889388869323361061096882085762016942256809123064744682258873594336103937435017741264464700245070269958813899337222346801070436061592343396557839113711084055065683222422780150970485663723067602531838561621197927074716929007340091981604989504139264707673165257279175552734500189654010543995822515084396886069588706732617249120828688534711187748102931679061972405144549151779139974881752960776236236745478687266530850300789772485617125584575007949458745761579472941212635970940622525422067130638637680386343568486347268095365311508442773823030718084259588848228577338617354189116458361502757897686744660532664630108776956488979850201579834489943240197176836639181620610161397399257140104457132744569074504258148932383871052095601651554566041583596964065100406655954506021224588767298342440245799816118377075590142349345197047152375338538849320689626750235616535548883978586404568826194482694431681346540897590359735246758186857729438537646768296025243187025603239621182348888164069091880135286086552560491834672706456262427146697157728585424304001269114866091320002251633096285881869443549550122877706512728182475733797405254808208614849755084244185514057187021899531363092940203271163341034754104442483951116074094643857107364456526083839384162988571539723299414777156139332394790596174780054988335391200545708735691903721672824923846111525679357422497264407180454722150361411289335978074523701548803610349654021504656386199915593813331852884410433097828076384015223029944390010520637001962938760984170684583507877164274225309545191413698561352778639840974008408965264038487473957416186730337158493909296714015501378817518238739269326647267043176736634294776362819298717495666434690631597083394136105166548822183806858010524655718957924926044211132389738125772474864538964778047975591347830924403635736431721526204723271070908061419971920690141908414259467488051149859110982225433656947023784056878565741932662097135706930933232478763813032933212123944456260570292306878074892389926001971986917630738730774645438349252333636127445407200001252925927124461952442248359513055894029250549160641449353848876059142347257288642620765253993828654124931994743143122287936827894003066384724163989472942325150891821446018110286572608880615023101462539502731827218098448492469276516395493207720310093245788222893861862514416923053996575319177634101661275160193282097491721406167823643465668133649248628501964029867178996265924735408812254880003342643289078936152098974875722662035183149093517177702574593533728401289642163711647143718968943948798525124355184860937876954052056007193483803437248642067787040499907490776597634724468131322432441573250712896992950306269502026873278272767507323280608333574530513785108707785201640393645683093039322235233459688490983107223777283553232279143602150895624468458433331573903205572644795616302720270050929604628900539115604376483175791710305446599217978346584902711642817680683333950881486274625906308422468195869110740149277092753184368323636330578878219704950380837081041544017724600164826310262708554815823401746684702572963430746648757599017338363529233908125748677419682608375957099168319131033360824186016925233798811751648470363780392979384673070955305419398740370783054268482239417247979017408820504427658600012676754416117726274676452652698785769125150840722876569515922859992376368983933609452676422586444572673879789249489656219445361469823859557457977642612098813558323380546616354606115506584167871484314569133788755557200744735250359516597148096239128521602998802379720058486088380028017953728535028602826840789799331200224055380438249696173728026624729917286068655778370464647857703742114810692333984743377849278872571425448704073587374798323146440610011574428745977507991409413422336245324971592770867674177899657900098574900536047709235690656623369804156595736062510221197362880112854888402171203867262714242133924225253585105637001013747870178251120404426816877974257684172153393145331037059131771050071801108996673268703599023902552485718417102395048193966781455730705002349635090981159675481612734700933985779672326841611895781254191211018206729236718025133610628321941180381449035261794474342245221648501419084681397409351518260320095086678649097288220400829963263687504882540624964089108239589765623805339482771091805415155527925229092623044057121026348524395794057717146752752959956664277809560151108999593970172266828515948950422863568064043249672702009207116194820253080080638695969361745620358900236328441905041392169814001563483555063814000885008863677289763926844544236946304049539026967981149770455131119190150675847169893941494759089457956181592788653867677168561994752025837651932194617487072108418268426765741704724483615584708660763193205567211221992648065854776902673275787425484669331803791132475338392980871819248406638318557210221974406319940768360392140496420005971570756093960171598301467256031308695681751289538899125168418848142149093877345454988078057800903264334433783122971724191025263032523132035235264958143319590946803761071862992790510070386953128570282325005977467081613576935368681046808211469602993495194380276658050166221395246939502665928209292086368127948198145629020493909291079890414296253158826760431712726630981637635340910906209278399718383525750247073918818826129854914055313494917577756692959153042422460956883282761051438948749865942340305066856621119441941733627177047238977141944869413683760193923163330299923100524187893161070616506337627076331338574676878704548553728251073761273634594340664956044536375575166088790920818674023054103572944039716517227202914502888208705017354866893297010875266783687999394697473009453394592262125849733212984242116334437970014810101159671872437305415185638927205455581702319080341228447882651509618687870648083585163109238515208842518854769772279626432300874098573310309260498471625852367454251042123690851729927487726691189284208143587792056864421726300102954300724252190345751162202119345611997302538286632350692002220459028563466867200452645372155778834443930023566804770110569280768096115756838432641746543567194948463371896495777615376194868320876783706666622117875834001336666467517366447684726467374680884733909171907874769555168137734486020628994689471133703087547407762174128463317433819982547065148711392311211220924385133919817522208072642505048669030668662789697966309608216683549385846569516618073713089996804789704350440091327512346565066503130198753440381196350701084523941937194457002621761589077913971776146907489632091592020287863213733983502366911666891812171329597528371766087930712255963142311970435434143952956995653226364915210504402634656495260082490951993718661085163670088499778433088614202233225343269686081482819429160044086214978780157233415094410910391179297118557725253065963326059316955526341695210474901338112470506339119614508390848946586845116086014332071416002719751792765389135740978686456024444043931105921297901586847828651710616722174673937593442186241588501265777468651868457855858152301658594902397562165165649911577173232674561299490419294396449588222296313485146406057033828398006313899805513917436970672626626374644279361936901692149341531886443675315012081138498144127738377109737735218365181450440183979283086490024668430145410265863257682662805227733292137073902431626908842415818041742623149736398701984834797048934478586940950456726467052971836833600493092442684300111140478863285098919816949175208226453656764491218705369205065172295316111231984922900832024231021513471114661756813344430468820610126522640446460453656421366343703082394373774142745134337766121824697234155605792220337253981597956255414778486107511129717322417093142522253777409468531400985673584810968997899366560000169665875561190204507799395782397045698492251013417347305194953439258768990641528785704756726871180065687020480072122704267756782034493989380490351414443832910697863454275384593854550464314260059770198873672940152787310660880854643207624830500484119463044481814093241911903981383951613315186608146941203058863602225132854677881716554857869446972710052366282626528981130769863252884313157574566629081026130242386918446134698582977544137219352087572798003466866249466046022281259164065310989195625658824342298727669361100608934989214702517813597481701844774554573264083455092080067486683205686115675499565201283049798744439364492616121365427765223273407138472206815862926252035132398408851905217781803267113557109262551331234671001604569606554881669161193574455753746130991619361960672432075760446595597520392375776276625084224402713563128128473143991323824146364634457251845559946653873087821837808482152114082838253460532676549614814966156772219864200457019005670858230198667071189387325002280705050246622279394950341603773060524999643943568402098336381562731924438912114130432648301297123404447216123937499365063751088373786735726492095522830838704539879883155957568985797982899500911408080536577109460857981520001780126524316499951467429340696075333530019392680510074009957332101022088006599960263921836077677797355271010288504914960271192041274473835426838764739472182104071723000088477203429338842102365027944463367222416509573765705092145431933873487290102944627319737873463014311516848887154643181726034742849128729183763427031131261339182641179735359860126597523652347342612035828431287473251062058332217956231286103765247979027746150632664295368308774993387457385996415113629547200814275749224699950645998949693112844981780820580496903043728073179317188744547942298588610739042792038526625886918359597168969790848706343707967418329598712251514170267633103682181811366792654071630277574724632794405159438421983335286342424684369053010716852359244925970121598031383267749529329531582011970128109093629595244638855938169965792841925426249201744198290470781591315368370038822247167836106638849555240606732991094864442635913767542829972004472444785177930128342939396213898468984722593992552372921174423981694257030070396354289532674132263525416316508201849772130931138158790010438367846888319677704584988120287619842768169058861150528672748307122141696898657598949016671930206543647379845507965297710023950086723509265248065064420323346828511067100548368184363224243320878340810779570472031039895587223781212834933240815076166764201963915986898773415436660010806210493142526602341147722266884020893277501861917615001689193578195100669595586924215429355109203114147425788139713616556667570937845324024362905296145363933820459400571118443647245693700090293847600806032344984372515554257458380245561810030125287713957368229392169511674466399842474252607041837317847909337947084077090110593344439395620594330864395253371040910630483551463120043122905824676192148918226128790437924900322382778380614190484589989316919844779915030834689399579325470474096216167353627041760117221795857501854037120922350536450542059037750328525562923814025719186631014382279172769423403129677145554207092767600804583372249678464199890833982287331832910258868765269914471979683693068595632812724087028767685953502989168982845512495717131745184013899444569163837620260803875924529671570831694444956590072483336547166461985856281366293437019077878612090095431008223002172347624213768867906259529385738891778839172291977325824867297870093160080603472131198119459429813434723016700924103191055239085135426467026247720025892160808166679260002852282988102325816113710852901766554842199971916374273997566030278982878215395855487653602284964098221187462082756006211616863515608303076493467442342815029069097307748503628283358025497055109520749874198428324737205171480382638570605058091980095611213686933721971563560957377405771064180722308681825467227643837095086478929719856075704350931761218744305637928189493240682831440342309796908400978966671197326076147586304080631720228856684332281268223659638491675644821815628806099251400915407986255849538100099845680554446091225402740805736441029779767945260036979426337420757652835042414020182983322458348058496646407686512177972043322042971181554187710786127142180265942433075101024287043220363419797622752395510364625530398537607419390178660903491730157412018716600527373392658034024532295629411454073433214570009695510572372992033724121926819316649985055655323069613166352846751045354107015564579627792136743107701654394041030244230248552864763113200529039257876932447258107707212935122103563706933094242667248032640318231599920950534387531927150740728076635748936852788705345650591042973754450982594767049478603723516447338914294699439695388519906833080086587606007973132615163829592888429209372134882316284968441425421649294909384605011577100955325832914598814530464774345775300479194196292170404221394015997257993412467558220013754484794394549779126256271745370987015106576504672112054618876510595496981843055076163500208778007016312889324804428956640515697808906823185311918002255795896159269917594453895896037951627556823962325488282086188146354312430317403854705675761608047919361983810483689421929341158432425476576153134988506305412844182705777188029178169952212086478121828568014978117430354114129482833203182924991950021523301999290105540407014548228555685386562333757881656183923506709158216775483736693622970367828671456974073057163018214457276375323507509723040355667324616567969258264749365965881515222831336598012359778221108843665886071191066879888462206775257526684915258455589833625808619228163438523711400129755325566562091872301602960924296822165818489451746645598850153635935773732460918437450315047255182634573411468933458422308448676511096789353409332178964369178132741229650898607644654989798944797612101484379147885031059487421172376366658656729842447947899431302729639305396266793908131946244177433238430559004650773840585977494837907508440485131886610268932126690448189516018105316093092647011714657079826323697670308914861772773470588503491552949805589341839030606340077646890097423163209180584702178286545179333920294613048181704739229051367989889159075628867035495124096295368638665028507937339898565180579953657223339580496179131915630667729619272639136566151345811603003665031278966643181291103756007356570163996794765420100772962287844214279057741220275988995588217452305947689876675109265761481904663990177621511300206964615355813524987493413907413256477161390092624670411661182864697120860260185982875876523449642110517974718060738989599822349768423642706936430464868176116695477768660197658196812674228902641098715633919022857510127491769530820702161726334203951317560219263954802350593186191254392173687852818194815882947928962468477527049848597980035680305451360424996790582756746083260349596576050909252694579615134597182886417004715452424625619143483093172123271013602800635570004384451352571034187385766950758810305304106866868496840602951830984435940628682248939720789227634686170107425777919997622822202498561464310738157620324877979694521218993953236395724541583239580837819203343673215687354162482234449184716875234647190363343963954416513659850218156067996463310821219124211444278903801392116195142531318249690453331023383584162943462259687259782411542394683220130379931576013761513071993733572740030264102667919845936053204268598637463632467365760635809164459057151911571499349984721227385902634846898922941012033228895852443100494676465242269871107925217021393778994951539368568274074322527483075644492225390178001736760850790691970778949896815366201121129378273643430277650562467232926744449662674464182767574080887888850873256564722239467320083378009975931676405200129194574662676057389431979806700402269722795179053591072649241114109499099852325691658183052981453045850470270782829474125123347685966296030701982844260256088724417140409853314433294209793516591429306587051813147907113040904546176126216921510427632586733866085361309233803803518988954674152757480814873152676581356840172265697505190625988653315710609832125977493744501625479261468537411248738201862417991722217023307315972324744891570419488740775154163637396370286080524912455569766604050863782873998636236567628635874800834189793220417340603189204242556130092177318974899449285866469820366839675174033550434889678937750267753218366839203867600225258999003776881154848027535187216745199179777750649884247007801134644325807326414380400086006123545209364265457954974327831231806288419244066222705942808515434892268589334393672326820068212855238115879893678837581758444490988209136428696504925151841624180278389241113440997205024378169692604193419430566513614652308884005393331323146990271136748080050930879626052697087398265381094552720227987225477480602867599347276428981828947474765866680799215039005966066477339987491994443208008271475237517404324125986396946813227852805820088756013919288323817702893037635802076594127159888499329963254261404538954336389501802264239552784544937089471159715832640016643789121676761367929169514268437723090967765288377959712991151743230517011221822047929649289491638751304950997488842696365655895654502798942850117193542916338571660902537945292979521279807563004437599376482460886130318020824220533026517627708077211922809299429434683100085111779485074757407854535126732498367967734345386245567909256370197772121948130622503598190984817359934165465004737278147424808199579199899903870898672351791607993909925122712743780533493320984452813522588210361544572912481982579117716463052730147212059039940992920212642405601863060704047119416627913308994068781536984030775303109918991938385158471286589076689902101592334446171968262422696089998549746464205081073347460411930926294099595058595742310664285278802207608036563573723112289000441648589633507320417424535309258047752075812766514428007047187258067683689354320507265733271194611563957171766267561400211502819602079732716557160964084858021475152733789510434631273555133377301823761013590404903906511019118707276385431718861671105029359548584871551410014805826155426988039814500167567561135595565990394590903513920985827192593654521621302615103879281199337947419303968391458654421019663602001411766588116777510959387642721756945457668268425725848986315159458808634451809487272942203673378667644948984468266318622961195752166652252586917740775688311790474710394604301596698055939562935920869041684313550943796748386774238587781422214111207983026113433447988734486639750521442739333439410797654198612813286528714490169609179069972101427600813518967996495447702413094216816067648464488762226428375935004915844473472824854492946149465864795272697346393432203560932558065065910548787583897496933166067916159428064020828629013359876013849451729987030078911255819337417189635099416960484032909280509913267228326661977989088236319172151385529516739265031922381195264734948426543288922081752237310447077997772774292671996976149968802915138451937786051652402332358881872546011081763915134725645826474508837762397037683891781833370835072487299938940992322785254672636558423866543362319576733539266279151275031257172651418654605402636735873041023717665173269121082308461505976497813518277400596626948668037222256970792970911567344198131583039646068258966159434755557796371207131074279043560412821785916887412842424541987064868511811916044401155722179506003824705429374685780272197929667540554912895283431420939391932189188367162093654387890132540520303482836295790846515028794852767553971682346107618162814049908860247907540499730737252369142045631970128425884283666849148766025790136987981514678308957485402682926521430656153626617363472611182919666068494748454265497284032986322233289611048397286868932200658691646328033222409606699567440848891027398739102193021082468028667320887258891757149735519937309344413965571822733779592094485832699461974581946541508616874272252336532714164612947307071465533196934585101184418396838621503073192523265922137269558468744484506850503636431094848138766178856451490531076248896033278188530752703865444872468562338151284483901170020930618815788242440053163874115407778347104068277120427186184071982199768006037112049784674963602072846782797901107895424378153883962999371205056433155952142669601454928269340292182530797853369604640587282543242081585262036215897442094615692241763538091934437893060983123373150887907358673731646274142925640293840524228407831989720912199389810499643826120911548099475972673716857754773361886039071854641725127073123658579831188549960341893035853447452328203950553630838430982560984441925516950287444369066971370734360837682899079909026241524413761727895561108968029928573451516347918593463951433474199961147799044923103111268337823055506215525781515130133950147991558865842011493560796581912115964974428906017015580127009681515512279012491070574727264020477215792213826249341731175161805284866233816618018659680907793591315051493094711806637260740323430946637995850816409688666017001334470332347393020092245848464127463745617548965374902733863822627365840998419855069254062123401305303512930963838552842795946680044204928369620566563246153672101593184793482177109499920121840854087181138334168863048724220114513884303668547726171310133436088467034743192513150997314799409439317984136455306819014991650209557862571072543239521274798978024635620322740397219849404585097766499410781789402607877347348208840663326738073947496621332926181335454545238953856257345058258393917844742212119772076574317498097410608728411386116750687945661323181282005058195261025469312072118393180142763338470811140932039389522947017871783671833263378519412714366915350338437025113694275436370329238985529703691863993386132179033341446546697093522171395452125094303151611812923051742123236256983330723664590891993659038531742190672989951408043535003901033093851444586994481307044755909959768843512240240581084753325579356208328637933451432122420964678692166760508008866174732842491881362504046817801504100808527096770330636868588337872971260579618455818832784957920171343282915035205897850069894866312355941142113507240300161483744376389855414825080976021431897983405105746134630044072245840077355779600112538896542133241284912197386849873828923924634814706634674505723557363664160700816160766802114156421820459313577241587855758520588513781494882307269950535599069867525810433008728260159194825869062166185604375373098430572809872778403906111416472316101906519695846386072061792597146195522317973329471554616362286109877723601013766452702701677859073136968720564396776071913266416968213290044435326619721810858768260464000265415515179372645390218228764064139818456635227067572501972330854675509725878657548923356844733640920113709946335509755145811384334142101725406197882853142110959739565816812502320284240782976094558007292301387361427829955157760162682419773668751206749277209162464338661467342732566663727766975992097407304618495447481063422309965570839112961489814261835325582982752686345668431048161207140629987926131319295269087611400279658782787069090024401296035425396507479170246993845293573833178442488539769273128778754928419183353090294736620268443764574996832322511987540863251533974931750588232956376185705843979888542767050125191362404520321187003196454537388118422672745682800005317200995218518431218868597494035302288381521844502266046187251212461069033720722256587525948929429999832136496775460533358810018221910207793361950198106607138391782310089537793884361170557678553556246919965986577675059181206883793003841745008172967319766142046831722713670149420163814598553331555657591274860005495476227449843754880606896749145396230575855864540199733350996676957134873391925312842231370275024079755493628984149732298627392175538496112266801446076970524054430932076666213687816239006436208872419281965456812752927178970219795442586910378065199068842963972194782317053796687404632932329214050443466981150764680853456575192753279655497176214254855964316574865202469191638512563081537127385510940233546244935325046241551939700363397841015205292980999058218048826722836484654468129399028408155317453216628102715942486161430933131095059226389124340061252809508333573588340404751339090724754481857858481395215037945305692525497991936484577006072012965547734536493859933824250244933469380747430955998871652110612124547385899984974546577005596238458410082485914689841020597143055787121171099174853678971518615299135443996721358971446085661037288096066876638337408605129793564087596647998698187930898955824058021352458032923622768423185242138731532264555146610476286129008751755008278699183857670256416722814387243481633539776411360620994611480137589006045524608614701149802503757141921796983137211292493070503715689051365957332369206518498682662848674515109712605805706477559679468751325805990482258729853117550111522345016163805489180219823047000799629226171110263572485348860043820179622242951274254692951908943663765255817917021349561127225642173607461762071324629712855715218533589140863093709684073133210934070971058916711393389266169742967316443378358580890836120317796582556171679004973321523124317593571712541176931202245187189506812295645522113076125169457669453121286375375726731174272114953327317839042679209537481494379942307813986306570858066468032031642865079724001526514691717183480596169721303214697722515583208966299607648414254712702232102294581238123462831963738270247540783291045591003841305700626574427178507832423626244083156704162094961810657405727357043154149354811105591902734202226977508418855466582850213189130394879536741595568271893241537306446148160671852668677203132491892120497072138912671808609841765114042658932412291198981616316917750699414316869713834118355645316408453794463940010196633033229350521771020227886814478115816428607404733082002289298161853581922217552111799850304017545687685755281605293042480606890117075462537220724486070186624720793269291126330280908592947104107772827266867840368230317950559397436411787620618572073141844663079258088459669905250373560111958577484143108770647639365758423813252627709542660374371864827844499460839907633813143585136821844922282694514086799868435398215093239998809687037098801759912683064064307817326561749857648876559930610117480087081407456609138165037224611515247797556815994550755545760004789775669377072112824354225233290827152725317451213048246991293007260910155176304329436044147266726081983020256479048463366335125769278078043481972838171604976252780993290438861558820939054101846417167529494076829550364064781485002534237771289960272796735306009402491095843817108980609096123794587607451423877333113167332223691693042160675839270358467742373572455169659875353100920439602091496172794268635102655866172939812038392410560796372213242436306437615895106702469966050047163802048717784883192471152060158217406100382077876897839878703350005943253558694848106866379887018065609801912832194715034180795224724770806555068521988360274070364157572742463574621857599201565281153733997209517154247288226482452213215288405646358925122007415027513630356584632844577520921277717906254432285664196760285805131443837444447203810076322522026724172655189669649734423205585959466136729957540712351468960475240137685895781657311038945929186758366994906570579423534117915872395555025284895936678352145255369794410356823150228247079133498940203679403090907392711342132456265653504129964120850099329343833922909580318037310670394853874869239412955919001450070139977056365310198458861640606090729189640040608450003304460987604868774889584430950493468765834203874417292962627034553332409794952986251911540330586723937355519060764917643740942940083863869187952223067942289242572272897598212710093479861670813165100347925796944804160854837345528398106440542504401101025795729634093485935440651648354215682248134163733206789284701325853800490436000370232569268058401114068950581161679804233193978069121310264419324732826209930386883431908927107438291482417771614870915853147446422646871705818979065439698395646514934935430702100739328168684777467195675120803922059227236266807079061271920315740780944341802422741707958107405987402952846652013890083844835736631732777280663074292259834941193342688778323464017495636161692427991270061264867912594492700642427943829499262828255002000274212810338529680547598655984853330105536897397176568919920545727663657862515751301637655867684721281351089469924955660654145033008709029562372244504434376402732424404398837535486920791118376292648499340417124939867235662929519444718911231003409496572992982529780859098231729756733503581695955551019163759917153690134700680550900591645878615605670155511280034615541403690773905500991711511452614548016270995983943238866911097787033038795192306146990670910377553083884996788691373807338774532790436701062969473161005201334900625772716091109935857444002516579821611740420481221791817765923939480462755242473967614060151229713993810852307509276828847062204882037404886329775083216362436299703926465335895949140629215777240680020639817874999637391195805929181973024644968596860851207228453511862848477862239119472785056740364838413313277940796927837398051766195894161055083350241845398574806741272029618936114245381533838463612805683403468132872202522431762163134158256144445548611917025740898153558060501137301439118839230387899865219504583821753535550220792323396468772590418838098921682631952581822009701217586530160102924122199188558365564410358722999557581106589021455020966532208452251077591373649491756101108708596411696108118672132417540953499278842801964905300817997280497611320474746029913387824588213230476617858833065412774045911631412910780728327862950657683683056458215527264657722847389505281128951606343499325400802880037861564714653833313745942917671641374921635658608360369247614503041160531003953315780216456441137622487322421730138307157641659324896636643445298151104734781943334405456329116493913180294228759276086187423262084263371470039644536529702635633303789897897036716156845857805920787783022075868207229000639998949700240262473938402134487256649099327924378191635473310816235767080487480131962047232462974229471958192979378714156651176361138016166528053581215148514237775663187029619808474092199385620791391247333559899809222728841398670103478541345998810588554344641556930673312961975493445559358276845687698631283099199529791017276743400329703467809663250309662108493186695324121822816201849978034821228010311075361727036578740442440102576118470531141197013656561234132703559688611372946499824644515071247894430624888424618831172039063494462057298580503378285250746423961595109779455420257328728427506570439431955425819893026404040445573757932024036382311199977302671606037807556804192336782581321909357396569570502499300658976852820521403994117674075904081491564567689414084996704501657144316936938029447135190462136777574110502557799090543256033331288294683229194403257045401152023598743118594765421031974500860387565771657446759484810644949369196342551673544096616818118566180442889936437265134247064513493520026760370922831012212982621104994232380611238292557959928508731699338778058308345283413234936418200386296143875146822029261581446350426674231416984100481445331125030244677967372593793760448194843143296488607357917613755522129128720136611615676017305926712038128469874776557203770994298803223064655565102492676165479391949105764763191353339485697744787821667594909507504275714094541889961063974532278859376121979105178824429075473960330529458622934199624356464876439844961717968195608191954830229246373379704520033001178494985592937787805348028499495886289586522783201692346167449237109082088182521944724123371277463994345092314545882637227132573654641195874486347293960638838022418035038071521636464247799275498739895551251488939873471537124824285787620265660949165192459478418482761568954699809600877150314793606179670669668922474972268658598741531999691511001837652925121470304261549294511589625748646077664979387154186102435886424917366276198565161087395016908634064145427148475089577126240539330670498931319028632804610090120254467056797939340272990245109888790766040172959344154484220470074446896488419878939567668098598501313387837220647971024162881058277990449745393379101916914786312607334324085162190465584418666417511392067350004383395773926752474389616988445714643806814645169139387120630740442350197972553992754662061337449298226302744928686995953400901587980357204329503930167967644047801048506049322527910588569132593534579581067508528474473338563778546558311833903760266137801767067888843142714295322856504975620770435500682200309942307021155445556457965150717468154154658006406847987717038015674703335219423345142592797988621948776657289347419648952304726440279997122566221077377690986064450676742507975395455891307292225607235165340426859237606637390995779020139238761174058674742140530887628254156422387357459773448667281159767620509952657301216464455387376155967791237184803125549540282181953427522040764149994989630747777483228097636985389415388803070715486045417586056734450855317891945607541892775774457317433444529493834253682019856483405359722832415768271432481502175265003350476887920432792838797193884827974795383779879005317099519152135685898253466075968612732568638664345250938983034787490710645763252172368210369256890300053049875847372467046103597649058331150780011677785346163337371298895719980759734702040385657799056633847805303331263995488376374530531450078199908419243640204274585264280289331917925601515136929933641033332856607452659788594711281573629318758778736969794082031055780533985715565317778427501362732685344125898353219871290052113540145230970566276741425291487774908931786949675899635139560918609739681880141512787161491809570128558897221152574211079168073154315011563475113433579559242932306631786397583886915342176804622956862645455022374916266735520798853672602638186529859115114168962823249549922313253950582552616188010343025050640831033963381435721819169983941233825102025768612292881477468470593279312267579212399655108771402391798024413196674291924760384214680487809637577433674809965304859904310523232473230409137419416209340517234610274284222256336791179935210224747467448425328973705213430424313672873135992386432928455857498586579221956976325100724677842646695917586465710139232758173732962191346119550857123877163299223797645853244069218340604942905077928583654571871602503654935956476561102375084211702423038213071040702055995579084377170998512273841294785567843265196484802826408013693949450799113952821955741996139462899402544249141875333128772733445868035515661502485906040928994462821706576296563787288380813682919507923631694331733925367266864634845786990103480842762610970879477787108421722397078714918710625889662462251199806806098615175872485276142898326335820144671791153402399520809256066911488949109270067849314643663370889281157060655950978296069272215998601556356326134134255702626204735695942819331991023180419536602395667092918293905065896478299650083094114065423688149487749253382589621625157778405266799187210362395836434624582040960204808967058453231050109473216142523736472331519519017670504281797488423979363072365711055271623477875689772434748324144467090356206210324160188768041044427643621136034377604469127935924322490939067056776692249165228374577867510832283473640210009822173584975593359548752286297503744664771074583219148039979761525039588465129825221400474489266179045351504110594669999927962991357164247444710391488364596047847114665745051260069119577903025501153651485769623545981885644668484281904140715251804314028791072787338398571923625520635667898738028123460165909481208563182747965840954626239004605305719858235756690048611759928113095215902973686619136080741867124432764198603736163756264317354058433481240678133264949369982008487532059705686602275924219249215937598665632897815282051928986491720014915313792792406172916598045388138067626872026974957233272723581299854809357155553698797562103451419224377139469186217119338225189438299786913388582790296229773441215472783186597945312722268052134733354936736760367788110333082671558660434923368218913419258919848968018890810455932233208397068125635833404316256746203653555058224576211351433782150733746443883861072174494064698471504767767212409832539348693171031798490444772064843115379872671035291737423181902907057057471830470552226570695401340123391411699026513655425027645623778934069821095785282444619483408078478193254102381455803812370948602994423175615901650405144248094533237116720958402615975283131794283606454915727868929403183350542390518552658523836083046770636790402637006450841751558234430737286060107713817445301821162098763812585784141957398696761088531694911914574444027826146182886185508859091523295406190999572303022296814925895202198758402220267190236282781114962492393950349324931758281386110856434869819731389889007729535854955361706701303160395088888188541264455254774795082661589652445214223982393399130251210711144627237094280189206733124426939971005407756082256182416887192278576516192568779954512094164966827696664242900621095454371215346386089274895790546789260665561379508615891837553134005580479738086872041239954532876196838346593243210625536111208362489244229693311560139236884099749894735800200690210501899882443283652052651978405133360535400325616691481561352980582005779021174235298139579456541960923268729094163710590747829470006405776268220822041022270873914103760491763893691892365208564777871160147948461274864600066611603217872485366929248860677223558999750303515735834769982829159664585676805391586800277406072606390102946960310247044818083414252133841618738870605560212147059742299282197341817328503456764016062304794106304586122685272504049076996802889990414329821211091081304612587091947879657008923262666352803400274642299768991914888376397655709585905156715290859637993747169556636201453349926661926550499741987917859725159699316847298382421752866075839458948938634295530669628745694867831137961914436054262235323641962683624632036090416328099080049633594724890714308622204634339141783183221310871066570410372575285262973890637460926199366660505172101750095702535652764405772252757213271586458783294734029664711183710351911696323213516467671464680652452642724593815870165611816730110641970860929822261635306910602858875778080463707638584561004565177882344852673403883890622738626941271561518061009825634551189927630420950105109093996966546909464258600790797873913651519894365727459287064271189315262535459512644690217162077970556667012297096450074756406524285689541500245408440074003362418786349590489998991833392475493589991101489996902118189199092931403894644471065095067710426443536314166532906563702628796005083199764939047724418026985118647231834259515775227321823082430411544504264382017961630847470855586832506568485845577183708674902833138156065892936297928951648641210137098919541886627007926804553141094959529825133293485904403481767435021077975391336355210468636081333857508608568707829694455374584601437150020954882951045349774673365420939036451099987027030061755126294252082612765673811073484649465953786852925002683330962213354156094487423939240471283740089091299841200602414376099172668590623734093357443346585979483067603675086715568565051520912981429766173220641262989752132334326305967684659817978094892733539676941816101530598120544728902996416894948405988095514944987481147146407353770306476132384771888538873694534541342807020139693106852538635702347644205669962190695851299972328750617060808791501876524929034862877447079939393854503815423328473831328275467887205245856148113218244559305970190960312268255678334872871984758232134520345842637074564359183523320482940036682696243286267302238608352862199380246351176757450805819915096671507601004550947672110008331954809246712606194841212243302893041482949703823372894985307995962182298743439439064431182872472696635664359973174205107204161606022703861522160346215138801667011862498187588800330837573789506034623151889665541515212366846782235440622457780962272824088087440712784028581592934777773476006178870094866891332631979712014452752067252012756156105855128397438452227796364765011414099058843603787681785823322830047826293024180019697726043879021280452693681897788202593087555050484465235585397603801178469769738816452317221690955482012639712751366307017506631817362810395803783779600441265920239286061787457723115045620976811690650341643919806972791806715870881300328458126286238063769764258755496072513183235222892715392297760919384211508800077117314951083022813466535171345990085571938265173452143986673956639537339842254061579765067095499642676742415735409589667368438097087224878065428884801892853527759626006293273246669948436506855713384054714398307879240746913439255489236543286007879462956212228461643568452150779125666328413403569875007646884474808615918978200506484127771273483228791348582243665621914948514632799214069959957954911448336505705419620668207608046879479932921169095210809926099624754119473414285672279680961843745391270956713452510742515975497835210049104206969734913388849366064262854337680097608668802460061490117826416947531282874615097215847609974260424790819130440109002650330275467888815344723706725114676825219810860140516102247864298667683462374364692193326001845760232904368535218561469492952258611187858440796665024194045914043771327695860060781113334891094090088601002770013765556671759654449927266443009248036882607169294774671663417475402205513475965642427427484798323688510139967417483701894546930310606817261585669172987193952659427455532615025577792017956345760477663615144580534053261491213681344080954676636055161051287496362962607568723460078647423854822055493259826765651650177930987778915960823463515782211325448790780631804560707492970899851985812375911602670747560068461922645280302330545982363335943600319631097410523695979565073518995872971304207153688370374492317386441646025151917169464019134149027813904463185942296300558091926884190212608107381373427103742085201172128882260787024109121620287606636591889697316920869416447811353538633877799926312395746539250725012821894447752822734439569338868688622398206340819297517473858075260485328993099724884226159973259812854281272905485002543277124169004842461292726984539743534021937447474690738733578755763492772673926900054367425565115701364545557872976816622508192458726679506797015924136841134875968783500237634754585587011142787846714922551684973925400994085562960464973264157615869501556154619692297889138943794746688189202962960546344366850732483491555063954535274626520987503457489848763789769564368947701415723190006200533697103988596152767052439304447560349736176859020748892797136036959519866198903285698768926537109749394223944361358583887961507059410532855636077211250599251151573212999166994528180403872476915327372333448073797086804237132768240774388029933081190824202493053287096901408621088641172152606012289034905312076604702029418465100127150673176021872155248944186327508269104700092569426513747003455943774386724357313357434823246301665121225592506028583960807992164075484241984979494257326084944766728875370520923196461513953453997029111865684805492140879838092671482046420759566343272408195809082860286591439233875523420419577303622375417006182908225479203213825623157089431702440079973839649831173471469683718544075928178949602757690908356808362081915330296862494237514669645268144787884012335238352328409194831461156274129182222845652955466490105714186242688168126802159931725813388734792221568807970546197813643461315339708543259628160041121715719016984641897329281223923315265605668535409732583244007479631225690009209762855999874982517880993304506868586495733531633722027968189242354529318387359701555370095282189562615943764851414504008712924146798987337815704902983777835994871562637270406221373981991522412286876893511182955810760395352608917086128112695262717884667132136027318754585621168340458814054523106009351517380234068733343659352295868428538446967702247177144174656123981408346029153559790894505402610159879132876268158931783269890036066414989804838024881345954738077172439438304570546102224290360217897068054923229482648695944642889958558750454516918946161743398595188433170596594645849830184371827525593219489634455027360978609690208060276294592429395270226085515619905931190519710821057210600381865339156583373694566224039507343539129485311845291524542160451637672500011446048352131427450257468732632083760057433506366697455293569230845772683822500661925529860420760638329369710716569044906422937348995786075958856783057831731576089518539207475543316995278378278225550191982430030227887058323028497966629645782467699871827296572860334227917076608239942159097901547769295158504455012802254988933910260082021753047317565725309130443433147021276157355289268284224825451128873164273786252215127351602235066324036753205363556327041482924682359626311681582238076579559514969406313441383960134520211819269839191108757932656693040088142697052577998309411475608248379564062816811963471559576881119218347131284436560950883590518990847680207311471654707299093981511185384097427104121861534502098315429019051631733052486614202495271970596589118121937104681058327963715692828720556358434745772365140747444598992662289369924771303655853674098878578816973886792354934276565094162381254460790087674179146997925810985284559479542109482157119036697247679932478455865212533494813312362343184347843195529964279333285958939914827573014779901736077330431863637489738502943959315256074031203965179490022382221828015749418434453507423104851838690191092975394787001456492982373714727407150758826130104478764382238074901171666597729471504879071113950770062225387195911961119625609841493907490124430683513919710578878249623623902612894877914070297127578897956609710170123442232728377380398443889396300886637210249623116530548930467308363352557446605326251585545079939288891848510577212589427524918153589943345310471605487939892386482755051771135688487006669346498639575753500341337302690342436840789331139824224196876401753833686554022026145197392719529156249405550372912157305336361867997451302849209764357654086690627815296747472189905900925920929015190966142177113604827015934123695162376071232082512058503824155086603566346230971898187748940172133848623758135341083558552406573712836665818741954104821544894235243293766197185582125598450782875525730837107275021578435403517580954222495496236454491239422047919965572387631742996722758707742592427778247033871790359878373321963517218375368945456378224844928466517211337343417206761711499171030059813647473592029473967751286299956162062761915260794961297199693880604443868429290847674956853213055127689945312115723844928442380316021161624807158016444326571680807955899690336578269825792478717763137349617436467098502771235478469381586356079001062071048922444530903175281130758229145981189442769476713508203396033254151057744516977382016616619815618661521532725273831091169945803153529682291063783781102251037015899670983154699065336854560297442423427481437145088661079293353966103110158423088612514390796292463790386664069094492083676728854410186206288162853278017838465385748752422524774263549449589208140636018894505579156470250933462081787735107526481752268823013974346625443729557657874167951326237602875325887958447711576123124733262970444848031969616659154629667623482460243841150789210982469925048059161632422150783790687616430816437953579036172003451406617583956327641776555323331989543481641930285700602097325031104206612535263847613002658050934337445071849320757991688245413965000888030822708955086732237189846801145637252020917341214746846188234041971710779753577751312000402189006405182818704143675489797557384306072020185263878136250693556869866459829107614486283681213807086472721288495854884525938515051504447003211985486196205792002962825660127307955361034788295804544054777879695348777299358556266144251050432464254133198937903147021946146081041616870365782049077713301497328202071829007695305287933273365369702108140030295137567325767266240218404972555264586433653675048337505143227721975715267862466832124381863547201968973386495451244076833267908216085903910057412141846876244992411166082060539218149508491870596134290234935313369320588797269628040468353140001838675079482482961105292183785841278478798985018171146948823218703739110203517622835720669997466794047620169991235475138039727771749173153414685272320737631254406851682425070269764931910732419634415603317278014171148522635148380774164319018078388102023930939489473110466496755872404494267008365390840018757867944142280164798030161726504702482388202366648596054830523001839207522672698174704748783890802370905244132897966825190264247459371348185570707444875870601197146630950566784932029926975516491989223166263991132320519033026419947259958814724942192514438049210532095142403915525944875415489172636873567758451117742438902689944014642074496939325979712223247223943400648281850849879397585165636933366942602227870363716124715688258167464497862723406188613869147945038601990380442501380491361679196584900637333007055600575583023990040502632803130001630902436677640489796656456444172228575432155088762960335516192300982907560869882517762982767359582191382580136267614724271620776332012209104765475366667399076135697330502087927774015139275799966798757029971328772117723245271927757009116071999721553889318557717478012827963285902892481682456037961179711101012028484779644496273677719064261763160425321185967784337669418673217882322814240170296088892309544491166146488938095566419413207319273993007006840358863593345884422367388338104924684752453467161734021070266559137573495831578324389443822186764078311171768541066055396942543196560027334619170889486472592458027126559027950342543700114300035874982458700766413271650716579970893676110740176010829349166873486143625974896226406478367990341360363795786329115441469041420262063347369834603435048093842611751203544904494944829365243105794706602639473286852133913694878674126310096134007857178928535292156013882840701483477345126820455870932521873043281498016645358559651535399497978142774893727948732368926487308703485133833773620455061589870363219207135493075968173414197215662814754801952317236612106625794747675464558923484242722675093143338390128421301907160095360565460430308270677054577344103107703327447920712940086502136723315689709622087462527544579758675218945131850578232379278309193987382657149852265070474796765698368019587834416050216550690213930430009999757152473425002260652282756660944275231954869283439405386861551616082110141113441312553296498232358455432725140391729034672542888886932079807164572145523791303416583446911060537973974858782911421167295317519612319586140625012159117948273283811599452536832511950525009867398847863848533966154876158846435010615152803734492977296282183843835409917983095305927112527173071734095458229339953661296264350462162981572987010344239039914414163080694832481937211687561856260186208988397661538851448379242688960166044563414973389635365249472784214603302632890817531280274951965035334867014077579888617449206479146785148215552567404338115256071527576362666670946510298140940982169324618783891673599498518015623116861075115520675880024222170908409577233087826772559027210683150746657418921840427042152132030892873486873659517735729970702489271053112604501910878876288360308495005509385554817223346375042265793664327082946519458348722039407101187430363982440637701280032803097577905931450329674918129590753635411684552532414284956522431058135197261453868760349503145836973277593427756594127362657170847053337844309762743976089852432251593863947849572442752139668505408899495804822896209234270435474377210063273384211792746519343650943212479927168882899380344351575403023676206476003185040438157207866919906648744732547523958534436585609115764542445861897208839377453356155624742483007009290630502178049925020609709388581551810640664651740983889539896490832369863345822490399404584713106867913613443594558039029940903147214686498643202395730439528310471045014095313030156548453511308427331308136972542759777029421456749373752383973781124803051328422909676030302309156413004802153474709582703164736407643412636193648176004789018748691905704377742767557885595128996509830816982140792698861479077832822341047263362685849793805598725619957795886579892917797010370988798816025314806414842884991500664370315961593650077845362246465190355647889877631900943775959915095564039659750561700914277729648201504474588218039881478326043192584733746994481846071293152842820589476999897139354893812901240810557929365733580654485647781015837178884269207021098826472990654972072867204428168105994189121649766041245488419018141181469572377938080302724176974324660932727880229021726127572846641398661972324213002609587425779831470328302281837915436597552796912117263392683645775201777660587153748242036251523952097002278572955300398845070794231061417299401797004993766608597262527576181386042254595380520639416666347936089689991026606349968895164553726968959610819944552470194929098781193477843928733460723453022332757090961576088312677018005170649191019375259732081950886314057207162761544016585523136897004290270747197741022705512676465859765426625963958372966192169431338726623206953769107610452386576608419616219213704711201518282595924649585961987137718336907165361404924230553509640298103784644087251833919597238537226069461632491471534185374035726622885359514531035683082775358638528785719311922229904468331215899433886276403106041409538702266865255307892305986759326500662060901625724056421721671205703350459663243100242949511774246280697969516178398028724879468796887972092909207156892979963278554565329340706889236829184975584854303157046798294542309742162603768231982100460980563620596108622167529638222631606555340346427830397155618821171327173641489821259786320017996470337380092286643699068674213355339590667271919033057710911947925315768050685201879533259016796871284194393313318020138199302406531204561785277255082381929372535720813750933485863460018462067104729368957146085599904812961227418726244121354203608840789860798529607850257396615619524296312207225299641073225384602455644187279041416882047518154372651899414979713170041726727817588229238512575878845553467370613571764696473123453555771687278936666571150340229926365320901693264825928944763521716245259032727234260741193084543808022153749245983604186238512781022519435064165094678370499989879535556178830417170886739133051164137378264053033452842347672100045535173264650205914285912470867046659433240020600962145490465835485767207425883513762423458214229940324191375310279500176063761555152872670250637319745518243768584510400807362368623330886757921040480579062297826910983294435176441604118062660142661780046275891055473979130174292505191898329132963246891383922221322161434679829209302796514536352866877633151732079618230662322367877271851222315620113195363510204936120512951026474171879606209658777625376726345926970825438746279236988010145636725852628184581557524224092843796926680750226369466914962762062279679323854661102812591172808053924488592119854554392421502729042630423161997367776865864711802068969827592742533945373074838662686703108741245072209540846491673587110729295460972997030454584710165004506963841703551080024868925770517245609170855926209961604808536947341942742534558093944036890388649360117559411892850355712706095059268909090459110425384194303940970004275357438729426994667224107439165239561820968292602798631537998636883418694062087407747609893454421346377627100903527496599299948704260016064654692164614686494007114828403637324088387369125649586905402703041453487346513014201741368927446104466292266964114532702196345041484187148843914429503535888454185720367427686912512039687761350361319370058544065351948881590543433291174690781219100954278653958394315433844761419080944417703335459178198891443538049059511797501341127488084693968336516070216625360264538322439692632954612916962394374263724438858806900284200658531018561310683456888131559147533337580660778880227902515818892822724752242504336804849737156374673189766386642656309552541025613303515036235258445073370126143867728614721748565405210131334521947688817535422595052690498759524064997775721131193384241839713699643553071042917489336037748747044929012560871630955455129443531580049247505049770018314715027339758913182831341242801337111978916249276421233876437288929144983578875242818907638545040767123554603297591362516247601895815895066579651893337660558738670281729888341546476659660573138179551937274681081654898014620994922351723249411736829441352675338531281285863448351719156589185588546819497049981614636440731737980525310136847166928903432448357242262750350925995158375974092886784709425391736901477041571264666047411319600100237917823585474462423584575077663376538815236176605568258401989644977727913180516518724662743167312676380040222344146402278738645626282812074485892927721308767209078699099266530876480438972424820143509118737811725952658350135672531330904011637999330482485265575599513581958369203973404928356607880149818515823963259482887375764145204025816020003145893658254728203909945294765340742397870641942522170490274225788767713684852218427814573829797469322579824982555753391586860005248848191350321220531361738056023763448821158020729282114623994022934466176345370711676318420843988713581082025179780749995088040207878061359343615312378478088256776886027003917589211857371839722681253646827331915877078693729222756238182973961705403927121908326869169175279744365166625474201432509406421329889137088945817914726603563693450239132380716013080669047338207102904192170061327833257792649222697796787740113896688809350180506062213036855994505908069014529077928113700199313962783715561403918278125881905593616181806529556540135776402982126287266709184481930759728140836927496998998690504823994663389165360546192291754876537665433950876337752644382220716563076609214631562456911458942183743087404503673333737356709099777718958809041561326625732652690437773102455109704898473982691561566311129973176375012519078895264414556607099056582663811347338176722885345388644091409335983489351436263001649237665037876853955077345065736160659761648390445376190750786518896895812080823767161694176718705853534600892130492987140030555164448894693282109777127820088423569117576315183921244168758112635956028194519732165837459723366750924085087630540682298098646310858880417430748097527130810956915331184389567261500372458960490873121290517923182537466317234283155664156611519712795577899240630174537570024959497414363727610192605587907310405448103293880687667854602425891807099833413316712706732151202930828066422957987412189252757957019546222251278280989563564512650344227129539738905583953832496208933649020963710662628947764381999976086786134348455517212884169445027154270299011756776467652992088543282971419490631053324044165652229699982608497671251987095584435305376646988306129407447836567648313248534558046802766225047335218675633754243838220237482993407144435669622750479844918022652685144580568566900201305196058108512346007900352268247009142423173502652867323412880204149645766564787904658113616046216859606255441098519033908103529421019156274885476643452506688120430204128861274914852137363933935655339164043057076033829856817151209078111627428744055203125158733010623659110928939290774278667142669960073105818286148805517234726009561316478101735517322527012414116825141908887414336020304161207039262116824520252698038053994747564237979381041618001387170255149962301650960196654999357116511320439741666248385575576269047037166780773377537587705645775027462510305557695712563081777890534355519209863851473701973491550385763301547941047001579410945215512616932103008917571760813125959230457459747635918535734267623752376386046942757442008964486453313277642664929023249665474911295757312901292181380094947059948335067109583853579832703592966060180082095534960204321814190369893112262844277292949485407186260849868858980987226876850534860803632924157012800593297154565617048611558301381950043789050415941364165705455132827229842308721475571546785379287741703991342247841413864342950861651281244214227961132793289795809586785028485000472053121061161746050028892595035523392533233585063743092632116043510244605173086224656456075092861403162224990043618155508258333909831348918798833600149419688249132028347858185879522328091598322528132161093015149888024577235858226510962015091413909774814779679302939926875132490518338869366617167106026444334055525178936238573620567486547243473737961255081863041737659210412990855646370600410251261239909294355743850954647967318222287699727821647420073823801906581519674339371187889214577615987836698361257804823377449742497463025723010407458714812476471433895471792683549276271154034674339511347690731462295049831501884561679162188637894416499969836939556727690001441226208823921165104597813243737539623946927137647703372669773844329541428170546039367366251002758677411576315566313108504836021549900584396607191300247553116011709594128424932900447735230530985245169988680880993484522114792572556138254439924620223567817745948587404981153005917321966861943849219259414956059328106058256927227906607875391720593087749706147759645295058586674338445405746806702239845007784104015255078550012909080095512561650550154575036082579709442479065753106538884987848034165020818103125524820487345522643175105387262068018832620235842541260860717709314795396311447966708876239076081314973527445494067642546920469997975371811335165299888658873174405626164191255160629725807391621411913023716864882503895854566686687675405087765339705941650176237829643571527950216749530057949350974984872662958250644697852581923203888889442294993812783408650448277007435316237022203489469076810363483293455033501106567626843910947608431923299087313919892683548056562238981159805716059204501119550061638435242389198104018973054082643066293631307346733015114793196473168481028928566010321325505753262876432627791934421555409862900915372058881862976256871081548730750938293563818705942017602697470040658248541582924564364536038284614033983565581293763098401590126894901654497679399257492849223711818366566617515714519359719789296278868510103858591584953208035218752662764839512270559022853167186050725631323581832950748748108754460439695977398322499032660775773619300112418949829781512464745838270489680700676010389721858227075696156142506061175527330614196230585238631408807686702154436451709411959194732001357940758531357220283457364968623747275986656955261626541272371335637788277881467398113440555946603340665674776223654425333245489784346677674025963059094459977771777466381494041015525006558246276416541318340347042388576652830962042540266559339245780294041925403528216111888752688270517064236110449500823978906139909639073552354777531623930990291280321558641113988947075488600119401185583004967235499713219775774182218576172818335940443655300287258606080107515106683012622862118164218081826656362848201022302261318516410174366519918107815499567620418296444774688221848232657045745107163978642165661291203978866510428995494122481061174170645976794109810572913628621839839577905579206839928692301211335355703685159670284459801839933955152316409183150169712471161019018016091302603298031338412509857471418143701894396389106611204319631189746640298674123603659727281551183847111460562940739691502522673072303844952884869695596323108493054004090552448984108754894324424591442549521159619957439698903961742906136575945203068297260290508475328866452876792520014527649306209012684890918493455161935174565201570113360972646032604748739338031112303778754653135823949296964505084458036979313788538920106862484765229122821134705744816448439866900250511542641826936467243485684486596057901377617270807852267565735200385952630522561964237396067746433229214608821016601856373228815636915864639019892120099256272755973269858705444498962190280118782484571863720870537543730978797021700519872845133558878165601784666385661822631140506535119299976155789153200885683720802930194331088816569290593946438306008847700210183823261240798260659470486604516909366270618062304986620419430587840310300034023293588850149550791721144703399645333350273991107929867200881346848177515018571216887439003547046800567571403307924567038738452091729226570551345616761177139344863239446762072588338477353319449999246887303600588434979677687327883872711111459247595279725141195627238688339878318027114634914864278568454980781426272375126484520491636712695923710870378965017257334043551508234620575398582989836869654256831621091858820224023126906928008811322372105130351794564136771292481729783460173915531008136853302072420458859125310398801680018313849441954828517024214308766814384023863521166417065022991796385289182558558519895282643884552631916841390353983865966132855866122105845322901897114844200315641501053694763535453709915567964735475448629844158694152219177085310354889024320856118530147303988084194905470568120089099174084737119147685087192529697684119670415645269616748356708634606081705589698892821833974797208661336188480112667067053204408330428384166987029599387485671722120300717282652074139509750788198415056113908248983840925620575715613172048665750059953139556812467957494176175298276790097554380340375725833776514249116471028022043750781868032573065968077404525847704908398277649555861462021974749784408182745559554885910559617589055201859378029392504893055388316799209593133284058972849457758556204240962977856663037567335797649639761222041303931825732391303613078035104092214718031914469515858066655792632496603187054833547985136789124752480100779369139181804905883407760199815324692653923847029359016317812793725489867727801070955499645533521855366455817086481476647260571803015468786682562926257612886233835224501945770313400202277903227096191071104719348878205311453996548898828815568558358006150094709346386085522080705200520280293627108460698636810334205533070880828587530857899180810477454102966476461788837967633867849246301329098006613592317077141884192611767961817676258880883596769531414863606939607434369547106386372528896962649430966243414168620287358343655630227346997247912005493455372483289626472626278617566046809070902131261208162145634622151634835469991680512024173944757313774313604065042650075617185349037611069007441497350566880709575612023269453045074685131001056212537117713579728687048004056835454690662880331989025951810867519318628037680164158306107258173967209878974880875908648779583142438606218741536111689152102944699353478268193592350549095413707415710545445032390758511727428545589160318145423664181735475020341224149249780877104966312384933632784697979307664753119736505976415245147991914156025334802153973025798777561777533723500069557258045454853420374777536607981318174913096951676934609117392208272140220672832460973698184942404720352929495012356960768942408911450692296976709651419173560851842157614695608255299487773660540914961972400480664524345104524548208458896333876287083402458954343304749558034600381381164148116075161098535437319636791496541736166434382313240814765003669317225652080265867943924862743086038459108812950025998439339761716726632315268095278719607298182437262640227974776996048331673233558741123331255352762170946405394109057078537385604024010431720470123707601471643839721473812489623472086102690857677550055237880504257217212844463950222003679487148167750515754736756968664540650948229319516435393806171130825093762134153554871120189715038842655688373207295107169228321899288121938343558092149616877371460825934293657080567213071226312523088018522361171118814889353996392295544200312669857054537201140207699871204034423167461625944973214259418399606854773297170467656581660271837535106972032260287753736906346076918265383909892857927249893623942440003465608788281794315258563738369660551108639875261694560091924092028234460851467722747599654003912213175141673543049948341036292212869808114399069072937371658997409105217849877288580809993700156291943419107302372323287227656116290518672945047538460539275613205620953736088310136785264521750043998591486696139740569933107099729342477948872996618108038314013061816554409913697918716004879826484708089220033145010867293946394257863645124172762418194852994547216338397640756008726889782779227260816522148107737724385295057162999323380710386374092884753677320660712792120218183670894201707992188782894966852431270516419784167349816435994452584186157755977297084414800665572544148516375279971564429608356442872703283713041321047835560984012149103129068941108522632420656071042586976261088593057134648882615077597135768195454848518758931367603445804526323171853880580328394838219547066222333183592207360776694177616576782322231025436176633350124417747965408935594959677088220809864031825347523108260675821125701227720898008504729042201199304669837189517928737156667244845040780027777678955316260990745830147372733905663616194300271175306725562652223360104587726208878850963190563998219469354735596851149918492317941401954372875687361034789229598145171593191730473357979664135370727803674377261383104509326832745379166301599704432725114287398582309995509483420379371956428595401032455901535472900661887109251634946127321384691301499621752082070395512971686011360679602854147300356112351215200337042801535265596135543972700020628837374713130376832734974865597189813322939571092756976790562554381802463830191725908900093898000586347572362174084247617119717822432672015784237924334650375030289886389649303502723094640904869450269110543454273486129312032294013398462260269245594568184225461036123094466378565247560539252939008826827501936343092188145822352428631533787559789808148069097394038129668330033751186716269872739498975894906125311930978928804276661003390861069471481037244202777824035599597938213568144633263854688571422825066972230376179801871194982738410920080850828925217955743026056576620550958991625549005627356448623518233999438729695768555325139965143983516895384775474213567899719354168463274540818202229779622771750495700061569130018650394927960270176406291045540141439035633813120916879168349442076275035932187574020598601513766916569959288139564641709488201881794409741888597072556641439987814326208300309251859305088470975844051997926502053028725003765991348728765668233105311001716508939972267882315120937555418773067627047593111963253519924651898337874957079397952593604677393679590656949790980885954938712209790340060317235036420864577655538561985504493949222633325893134349095690740338654608410057139067160343670710380272335607667939946956191787715243012382062628322296734143134968751033567700431540452821093078564710917966406999998159657516420957643438959797522989034425785969785680160513216494371819462111062498438085079341545548039232366802601371524008665281252826602052283209939665830581020855329797176832032188670008121168826451423677131954772289824018444737513140526448899596699630499019951284778570086384210220671975860425244835390848526855603448936342969584898086479613276453473023782717599778736370636755874874687451944613579187029804764319818549861234172236009700236670308094118184594879729112453148345333739765042267601092077636170936943395649783346003241004246422470315447876281066104014399464827170352735697000484208418127329156761764447336057405147849909517056968349549052254360468063491353191363496378797068679714307188514804992549302618576910142593864625441102750226320337906660522365780855705323986378218583471583513855539837487707695693495284173887118358749955735530495877216611066819668728354203763120058887738562018401384061639939529796144866962595523035752663526752939281450089811638734724117591501774021572217201364693343719706854110273757450141387078406538858461716647415240387334365453959722287962956755184606765012010598767414221840442663994980143277466043096534139406614699874491632276829758160875456437513361184441109812009681616797946277263142132805596928425405802065267996107816458115493612726891926111165956000508021190678756794470473320702450138153311311465588671871354886266236391844398984283189275580305850161395501141038128280435900738446996141392641997788993612104864649430992211469637520330474973747637054706307602797910164248383028885526603963647710489736858176218794747753373692989673577236171758739886035901398234395562189238030051915821264191028223556723253837801456392997916434278031937602904634649836776035324289939079270790395877043346846833687464158536100049383380861278965162997563542947477631580881271892706874705266573588034469996074574799819657234396986153644501522709088119537469954214417806157445266671965302368917550935094516988392493023412327763383922198361929766051573956477574136828384243940499209746944105830104687095426090393683038878379655129942420689164686796475778577668460035518169607725848087695411761914106851858309488050259411403627635908324533026984009572095147175526583893797307811625543889948597999233520197777807639422123450215701765470482389742157478443191555465014058443726644662738728924963326528224416202099726389957087399802999203597810485865611778317677592484627336942520253854189004369216667040407082018504378970465451239722580176305328112048316606965755858955990885249344027857900316873017644092803605923573117728755411495874516510142036072728710784952890355706549921221599828814982946531815024889960750387733215602550232026052578584205954245681393653659313970001560758171702937620894140066985493395751910325322657560263128837764386939237586686314831666043687207568056025964781025942219957532157924010223897927622378977978005592935187155450849120918345709408798655996766291025266205054390116023180511692035955158915594884118816570702511652410068614960445496513375657266312044045886150068904885162140027515212920671801395646130028608421386439447735768515087178345947834800829145102056866534616873356995938439483582594270985949439952128245361791799721020753824409509830673513892888727738322515163953316139571337240279420333267227147813054614898925534510494202974096009732717259668004677061718403883264906490265837804892093651038669776858812572187441836677071118935348037522120486026396312885913583205488526066117716145323989027419681025381701877483637489720177651807376039354207880872695514386567300800199168946248897581831728589571696239636016618698458337321761614098201672082693541946689267353025801485442723760658558257552019009685514893484043332320154970076637969675341868638507966619450441963566274210527223220867945917989640763285242407693925974272258811602084257434351231979285932236700636517774842238793256233669928541188904723223125540485499925718941352506143567976940341562560930053065516032149956148839047684678110576480070671085092068291636412000748592650428904827047026235055928143995333864131482990405918181215305655768386969807693686120991035505757837287436891194844777183320499084471007658514223116678877597686594187929369475611086618225925397330261010708514289840043055587606878418281290625043733490788585765533209592778286615857566563899846291337914852863955569884519076731809182644383332851566271049231441356100499930392368235304079825965627794637450446929900191075068786178906982053739326140949075704322828756786065138470001185716764788777878161183391643914132374920603557082233911978026472869268203049361915926697261429354044135632931871160269183368726707468543105368883848332942115821380141260956944061301836702085114109397606002696773596398612241500644984661090943265736930511479907606567395662727188028819121609894891785587682612947600666848839039543956345243116746371124592440337876792803559286732619500304707494515755993003510890085128101091813623806361317453574432696129854905063866954698783189766092924487814799105918626006368208334276386753201514133091926501699829659657744177039484289594834259523123483482114418029006775747604036599218344858800205541743213154204089329328869556508215283167996249584034153571092220560580451229048110755597842500473352808618009227588903602559657260768845076620980523277619569843009834360213967261674023589066314342859905947473110923995348952597057989261498790667117326670908196771101028980062078906418045787669176303412593777037416382494045331198077462313730892783252796948759589565841019723242577819897520858446985133721655854981881713161318240251819366485113395880774887354675025516081809693507943286456081900002127369033972064725809052903534086276457155124354631013622681544513164482021479909045862934843014752725442279641576994667582764753599610275488792792235010007796973298402947146579590753696337190079800051003689761951109204430984208934781935752574650802580851104122885719583125447321555459819100870801644700789782218936049340551568965252148766745890413899246648342616182959345718539158495496698080987008373539895071067163464750431635257402403873986844857825281343246017643391398297166921793730893958974504587838082720128891873761545270619871224863782976499637862520086926242169500832468356984185835258993619723558354308085409385285772122091549177627628346583676325197006568384482305534896480085641337088238497083046278467935326328750874744508541291849662100128788306374487655333734467495444354909218087287503413403725616056798964964626355158617737843481920672704031063809770750230743488697586501023737734731055078075475182967274109715617146599934961060584812967841858746243731914862575349811746662764870788448159613636945359168828630444767000801028221253519455660825132419332318544877101896185034428410559857378763349783033629333284556859274323709423599938602689343490035395056632903887494492544893535362930009906818866218907226625213535526501821970419102464718929832241292262044763333762925468816765936840871674086461763338921951757233397528885875685264451103629863504645965552153127871386145027355827292402575169470602302638584416427480251366113924858220964256526938107880242037296597759303382344464900602258187818217451143417218420507435293906457618866197822289344788468156965274124374615071231338999165498671350370510640583693439811163274231281649811981218011350058077991301170761194470051203756223147503475534992382156846924187389167077338806880657596293480815774782639419984574051224388999561964116685971881851566812132422990798647562458128120996145575095952158060622279069709259054823063388742307218824214178092595072475513938251680031124449452484418258253445732244151534164326228381355679174666149845989025298832101157410174931069106644417165911188099969678235510355946950587745004552257389623079252379585477126116760256997012836346080721680277212347508052692449981837345341652530327548101805421401102877830735756847253747688199026202209696204600945882529043803239258156002836846840374699009354026775245366618759447904055088119822346923037303293767725180155284848875648619658873594945527340564999449686810073371802504706616231890213303225835767753180736095392306384336328557454503217886363058578403145517520891184260444221401260464819670163763180662034300740479346570582931020252677494995785253278714295789374997165703372648413190252320026396473319357274448246284669372393810816126092366094707539734722094271168852823629177562178798076935199974991990231183615935675452298482947859020685758532743126284087167281075335186505596986054585332515172613995481229741230542290145162961707254121020852223677692397685125042442338038443823213714650463940500736468257033666355171946380855062628875305612554019149690383023232118435558379950320357506890861872569466514452549067697223099320718985142305056857533236726600845250157586811389411693590907786692015505799188993475215120154142190142510783230006972370702007670601809868218679565651050130633856931450696784204187520322710265276650752878920448043771000568665640747094475580920220976248655636407254041379311745432813954003511126342514748062970051706546975497829755313734531386269554674803164601112164918156455013109781144296311206012307985695658203992232413957141053248752337373370928566912908501327235352456370310831512784339075142119070739931297253138603626433874533989380653380942937722324500607811292420010275517439069349900845427074605601067783048764115435373062642927106992710335565689614668173608698316566811579180115298616218324240356752582437405719759916232848654510959584585395431187347545099094754978945808760416458316862466989815828291281859896795181301506547408775538150021913196523000637780235610499399613653461046127486998525426118296663551695032407341472293429382123367860422109344580098095742616175438866868735462226809785842590443633960258235255119308006629426345396214655936413048018472320330974130276384546565442379717262402713090161343826820204125349521026662969981092346137402045903741100295335532162951285895923106951778317817205071667261231822997739207661644887930203030262867186575374832507385913091572349318207216367070849572360120224756001793434255589546272965260202773411300651430972617697644750169421646728371498268091682195880600622538263398500732898969746783387249322607380851529791752024721320411542360653218681229719293511813554561038764029760878736577847780135507687551817808672544602951923191731075358941598762606728216164353397639887578779990662532383549179724546487197692918070967327306358327027246665713276399033566160164716258541763721710638992849989240980428593949158374886950100374771924810109516512086675017904933099080635056346792522840112760786102709054481745824839588084399124548439177115739288551877229559591500823848977226603640529702238861010572216734951505104338254706744923916148369749871510316109708387138140153911305578479546433807568531480905738054483289874907750229755922620259421500693475085162572671085426604509856689578646898472847601969084437371386024662434073979931465961190764375409560440136868547163685992831490913943712339119684145725850640789256631816051142596749041574819669739907527706007604558499678251506271825196431092308836811159375617087894356266415157165078385802913782383302088284981650993658903624716477093847440684602788391965629520923152042900834636389408998479492183473802992641018217656905033178621044535085392753771492765885572070962277845286444800464529743354526796549252741257312969752920024962243736773375455933387744754966457334058939122260781757145431180599559773400823268988069312783357487924999740742096932388055842510037305045800859395251340603780122491697143366345368570351639441127875312256849338580744349615571639745703203389865640389294738808248879400559659643373605389803223298759941124607750162136464089599714178753566665829696815275984583275584227615053312865887126119950890602349255571410212187935409110673763348291093929931585860872616880592528952395817211950686600064190185291005428636852685616021492572894667530947607875178910028921762438322100202067162173733308334938009931793570292051186690373780418965809900123813024580868381560951035773544908913728576576588948275573571239413666474508770193716010902286423277810434363671711331504269069496949097768055629205207077821815862146473940859375802802298933757272325286802100458214800776137684306223326928307847547235861274777311846859815277384228815654611967374863651554371260722538902855893559111531940182864745034018788930359224782346069259649919595839775091913019192883016470711822450184378298526695694643835393385294035132058511212072033994921463719166352833864920198507025098810217302528297055060674935821014141524745649621602324534670528236721136241442945390169315709243969153846979375092639474747220921321679184315251490423166448323260195031928049952810515349214342792871463060821146787223736240379379149821514311986697288892746207354792679241918598195060823353965133356261576637676194378774580813834810517041065734165872287992117915188938416706465769995934164927478364382489044526883938004724229603243150907952278835563743449390167240744769241334742144613316953487402089216843978526523705875985004767166994730124168715916422061459354310393439557299612335254163635337482527258836495066160310948326068909416308822973464055339575232618255036518915335615283858417477366939191802719055257015679728679158500283176620677056463772260745089368791824581015463978793418088496768555348762359072970104709348843007638024083647557054225939240509662678549869203977737384320895774743408562059971954688731732473002262705573979452054160572619308661512002815884824013970609947304140410460467842458013860833095747047901390774172679237808268333695896156490817417523643128193647480466714923313165466571523707325313345106044597024101067513747104666533386521700006201498064248096816066692056979768922516183707793342020222722682654257483391806173470087156934502261714661867425837552572392157346971498023765200772931319911483308416481602420227814969123788947792334908418248462168294946507004783079705281025371386582422192963466917668624659398273392328840332967352191042563102279027358155386591892808306749340215620513512084394697075177002733972606534194216890673461368378441455353501106668831523182664560748537737865896231577331041452111469689156686686691319902676372216374006282846975703621591103351282251220568493272457689297413475033139801757007204771574696332286308825013260462707958115169595302684574749617915225576413794973050165712559900936399605565454439740659670907472989399771001019510731706010322872946266081445197383272325993904239842842690458332971850236844416449448796768748507731460752715405503148958032582841783179484086530694447803509560070127403728947946702785957853133128796014622747872960917004210553673314273115981883602360708539700157115405078903666961337418489895879039155336821720647391798321217977125691817724871586980798818117759383447517147117867937539137155543208313005706614905592691251032344979763353330131350565063310541355873805428567554559558914902104378829314868639828657744007180529031277804631080208222466967095128267154504555680931107263656616809448898137932591317754231667691716236273743748801577824304102748375448502549435390590356445473327663131065124846378735424387761616290989240915510121545264962941595372538894711505408645925261151277384770057122915255273862722851193319788194435889966653938389610848825366515196009498007196741601830271561665321793449230414434341370999001837620699527536279653687479830348562087093748999454760977319308746050013238624841563706525069079406172933028152469987081944061875953336670337887705435602478675647908095390496234142799338192475141949609771713237424234256492050102424532872297922387081911701789134664112788809707269111288601672675375023259428664847164951918817764609378600816904081341807590664479525044037173902183026208474403782268217582874003836369841093399156474215010631484519763371962871506640494892358881163484074549063113139015879844914118060831102891314718658122826060928984062833629801971087424840020566306323743840542701025424412532081736542135703210964201206699871387181555788201117830500002241566168335415169118969902996623738059001336130757693019940029921385679270971791493996223735443433589944729586963594147550695019015880783512902246781089882802891232065976456052119477135621885415009827354445190622879233760560129288202312671388060655905444159401981494496561241792052359317697001552142960143931484515083631963160461595938547417191341134285633704518569492949000652418835759903497291483866668838040896717111679123446946794962521392185903494642283209692970030688534787534828977221091248629844075166424634191001440938245559363870823409518394099725428206520274634115622761517314325648525914678421273277160617800645068677242878845647423891865287673002105715671920552702753134116358397390723217145945342837777813969385560844640411180912376101950473679035004681968675073289091063599684891117383039750944553989940372844759059154812677556195792811409204391821320341778510717502218774300452416566163263721703368133101614083930960182533440567294657835556921398371318141347879310695777151500684293478112236276952647229283737366637921750094636219576101423471579436626441320156986289104581812697936471486204157901385626395949437000209743071508343424388414560164841277971174258230228510978653470778425617382028419662031219092376141846125082782506539608246069781502193182361609141862789090833155549593120766462513288124969335405447896334170515006446274591239562667423551155311262365402280156920546507435307737227118978027153363247144696161931957308621697800506547448188853667545152770029721263599865492684142026945769032749540182143866038189191527313305889416445979425641108320660549139008253021569569499531747918640409099432311630861875235706002129620727509353751070470231268620448809284908341636105922737997817903772281528029239211897085210507839414984948843067731655302974873430182756828109219098456156247167473593250270391824014111808446815337345614418801496090473744666389715238940876593207644197706892298666538756843723272088442858376885026526862026499265705123013429832668329597291062948306983217362408463662424513092534247636647546989263332654640116322853064461862993940147054368894557674043817407559200390362549776986048414591801530798726206359770283012542007362036876060123139150692040009452916770977866063045600126546655674960272375897378119422435100053397139533990295684495747414120828915196619652821329621521665326255911027454109208960762764111304243413544970147099493058274429393071481960435691836129717768994338976107559665531946360248599541752923092351707706238677177081894645163996514754805253457461736601197426460537933084395044032651258749732013125975765709257454542732645591384355580143366791205498994587371065617550310608947328538260884586639161028969279204403359018931380310778458047122044950380946095460177095425494479941802732378730261974138730103673991904991058892651207509094119239638745393443537385057527507829200816141007896922173766977191713793365646591530181086328697273022205385062203854132873813066086692745122461476177764518688118758969817887692212682492254614694020068973406717649669386164976856222656653544963722675805097538661482631488040956537662896440280489562067125127615503042243019562929337120136015743154500311983909610213935573283332292244204510543529686919795506979906498298683968704359208105506694385352851913215244502816860433483557564511048065112922208615457966847800582888649797509371012637291386110631683256883825991336747776969895764745565734715236299715818103511806840262194342283825357238125766612884857008760568832406408737926170173748202944791345082829919773258353117816343094792082453804338684007537386561534416350521223988790142232281984518928937527266660025835306272537427084866997771620311733720992396790433630559710194503629840860708856082354734718204117084100764827586031519853705925657818923172924240133072339052177157231903148495903728139783598130286549152081403588127442182701675761607805485072984600363438698196999261279329699612874163608823849121759440581439992454661243104902516098178487466936562288991131387893800665256540335865530222925415501037243228704275669593474490948365877225237111034799052906943442535728887306946078866084835845592389737853698169901044089103615725096641256442615677007904477789080707536523287001549295216367661169037794911193407064181342301747675040262585986543812032045923476331802806287333927878143263972145024896238717554462097000543632616208973490696178808209840535535817121440420044955032287920796097522286128065909906301873031169593966702386623581206304626884677382732748427196530507024375853662786927709450819122522951064755136960251512181480123765815465536298210727609396315370949902842420728215976123959439203445282409748857906134067988449752922987785844026776736047942151979737526032141995263630015005430345536733795137839363455307831852476804789624118066665426737374799181393572041977983123721288639344680865079873943207861512185732795215670053646044013920886162480669596509127821172293469014376314954664256366114502544403192967840585017430528503553251704448701705843049441271513953037286244036939474911940298846845544337202859712498825287809015582048590036256292807176297194448533264634363688188286719888570429754073931888126600135607192684464269700695537241183247320058123822038266862784172802890855809164953238145927056432191313097783835902194627238349341623443863953029626424752035752017993656316339371915899411727242320051974516997035031423709414550848766679059696790885044966188908223252189323434915178114830675687464914838178921297892729074126209446198609563243455717146040752441207111475211033236860043389352733693685659453382075230384369745581788250306982335745476617091251033311910471630003425504663177780305835235875682200640780171199004139651326247876461142652927952828764806493603951176404265339184768409428893782302880355530705207975261352932333728625299404273005798048206063074575366311612231028851182045360193285946687042697324384835535962992360433724740009224819093398783121411296623812809913870061186435441358182191463420061167626276131040018141945703866542286935275056391761268050339443600632006800748770791623995312204445128740296224191355485978572408919431255684962095780830158753910145008576459044619128243781082638677209369184378840346871526435207015223593106173697172648966763746636945983086839365306904698035055205935560667159068970086713843784383361936115389200742725111354719400102871863793133434320357494105332884723026107933380128728756412004085141359626063225689772711992015871301115317204089417489558221093026248324010311762929496584223824429557256561873218117644842524650894899057227018888887432379867381224097270255363579483940932466923800664961036569737198970730825644736285955884796597145348019207630626316443791286262506387746398830906177671951805388947450163542162747754902517557761765862086661028488230290594699584280621679090994389736218190337416921904406963749152850960442575653404947374461643147638400930318186066087256236783792731403667888611085438187614927687863685325279206593064030765671632309268336917500156364557743216970730247123422080976452638229681015563149363579263117839239435861031617167258596488312307143752520921934459369533973987368736998744970509473119946485147451710669769132487844084529593729595553607252474235829660194295871104956860574094099983310748325129415947794385290607550625928187172367492996406191843200807782257480825015863583757561541560074095288802327461549159511049268142481132568273812791368903541112675312880431833554553559029944726191996426596644080924896731380775245583683745548975120545032136490100069964834451274101080669584240588256088214066609529584569278265121319624381245806733166552531651222253650639102580716674486057732278928847356596681113460010907073242380280960104151237509908328177008289996662951557268601242894830361425832513843103415457834960331870609104803791354361374622989961347125550313499290672254636843262552646483904425312012289339313018551604309523308713993523106045909791927795987642804296316983974232782080645320958272856544108674302158364934501750106598965630004285631085448313350807788861837600408611697217011974676217833857118682101323723151544907738635214621819904776003473318526918449512691679780229608638301780327659593015519494506776676283617769419858924933561393123888104722002811461612987957012404936699130823868846064955564463962503985473996781177984540164227148306071955819816841156164344417012131170675466689421084913361831308620309579046056522211315975195745115654125665589572599711668135755384821723497050404014424054652780475901723494417417351889226280943494839918254754430552292356409733821419131287335225672109333906997172676635067917624993758497423847086938372109890649197791632131792067804256086076760685399624146019904278427029120073092078431229747001303698780340086620157830998614958145361197494384426617573401600387245443904985964017126435706419069443454468311752444096122606381945184622568609044864441254166575885556771360947913016302571137882183970615087682134968232647658550142199543547308600792182152589044674730449912742046410526951861754187891073501033263553599086391587629046993721462984552328754081234763178663429418478477847610753548936621574739763468699336584686918579868360238207674801469980875200216169727942018260887454919232835612750804989293804347059722134380668227537075245101044096695707488218697008617427901876023158420831325653248131741915613040689639903674945981956198143516259987320842154663334217498644847711484423682173356583664706948430489886420141277593026385885928559317209771172881918596270707950399128652541708535600424629238623582406967778726927396777383708924869155238733540164063101814512307235364482596664784422594220863631453225018091339052128417047916652005892231068761200489319142857845600814426297880983942564234268279715132542713005026606933165469385803673044764183278201725635759340833500855230906265572906144136831447021529124513482516313732934444001688170495149162715575937796439345510157865242011883763779351995585266906354611568155262380420461651426187510650030468037107372902924022628861107754698439916607236755217096750537334793439887739570229989714605555133787363478369543222890645907294235384680931555465879953254531119014113560083364093570738503266931767562946964382523124669161215324575487986878510300775633304963746996981093244335872502182558396647525771085558039519678025293467562279255352349370369326474559153093759908953461457275015456012077011941143710390964052298837693664003500836631060836804187340323947206131224395521457833139591046186916882429139434982015712279219769166710355048821557617581100180029820005785915355228643745782458018716591586865458861540964501162910867947384798303416083218017253592550078935818420608684578324173934486546371693941330211079378783948070217091930882174184611933197209541994619092180600126414751315989186723687327758062796294763641427682518557545980686155484804602517164200997837208339080910217440757089615166918597341028206335843668375386293132847614278954007992289649674238056605208100227691161247874503881074322633302086122663457813925740804345856227976753679504830872625937422874208400093869248009439752472449705623137804786389314134564665194861601459012752889860343261860957670040796174397821539315970736398269974736365255782316801687914241918883432066625905886242856658640553711828858288814719525380803708356938987342192191537193338865252916792199392823413179311710693153405649911005131910550792064781433464354455050478762439894209646623895417431260124909811385109497748332857906005870663914044885801265846745237796268451063094634746467448070899275336481973361981474291823741545535917830199905022607965033766268837509927984698858999607693517471018124886270485303694621921819713418631485960213274791674624062412831014669105006251291028935930051391182029629810415150354557871104283202594322672862374475947379036380498087472875173873004396282626447081044494500230147542661735358723793475037668164031813486748516295448636440986771324599368945004649606862803448426859718415592787463301606051502788711780092108276731262905801556084146026617224932310049186368891440026471356024451419994523051811619899085584493247275880573737555275874024446270404312030324939729349322122230953223394760173784391451695633349851772012695403193858369211089796430068091507441949230113650618622282616349498055810030745639596592315727441597294622090851484154747551118654718665543567019386481993201937952253099929829294788251812158775924450915509047391157447827544051773522766753572498291018438453451243432733802838251393041810871402932582010055290976636291630828102854718562084061984586283854788040473679613272694568760000326484670385854670017973037245238719001800175804286283632784268102908291092496550183755295344074396307279427739929838990311771022948791026640864906315372727446793049782786029348654548510194186704602509569937729393060943614550035316598835913107815887537469195671477748654827788096281918426250191994296062139815288627809803675605888665067851687194691733637593791361884169601406500963352225934821520352395166163620472647093556896752540468789854150353191096925448768205966131607082749220023785560216984925804524312097082228467552528010425487999821352378554471881576661543111572527750988623847929800910290528258718980774409466916863341134378688445031375228111434362729057304840629028591113405466660224588972018346304939621100653745553045494623578245798475803600741835966854297122253297761570074304236014493639447335529155328680218518790914762626747917018337975325683466602656592462568197673867061304058012880239605934792676182813170223010416438105645958108339232000473674463089762999136355095914970452435830518644997966038152060684669877549514118311452429271944761385738496209766401303393040863418152476785805234600797357037889572713601978209344556757760674812935217059273552450533065276588867775977892996111429949721264875921208740228957346508072113201964718397195757922092100495459360995068600844752743624781153328518614954883654217847990611213363539935604039277209411029873951211246320148053294402052854766831347870728745910894107580443582908551326839238825984800604630621394175590283563895143254638059070850716844497697375286525829868113668400304796092979130631812607030254222340383980972421318600699949842984205636342488020156026523863183863755085046265038740244977241830990250073114050272989126916296857472076419459250734326959056431447678438227421472424204046126779102661549195286613051553928364373450040512454499026251477129939522820447625989372785553102657469119825966337208810698615298073124366692754625070762012214011369484142583542134527575927502874225908225375042150519700016407807220965062985815257104785605857862978386409064328973756468151545526785713438433693191753725499467355188904698381634528034391502399188218943006356683742098621792562497220169540458267336939099818806762051068563760662384565528463458376935850058786821898359204587016780627493110174904266444766733945116282607026755661438592943294330663995825893115109329062703055801273768279369314832678692901518662165261631543438394616641453303102909577187173884245413167128352262762095862478235430064152110574435963256984290862521862470677340491952074120819466370623450763367742191678832274466425774577024404428675999458867757070055375205789630918816113339878620693356077295230153623308875553063278747265125975331274145589696917526183731301131739966844947690682484659478688941518377403930334930569687819894267886553661103019161382043302179021071533671440601482388120833447198442848945586228345134550227746412091150445292478622990549293058326176958509360386082949835911612525604322818677794627503679396591187133716210224701851553137513323795349276839368590625201101025528760355474528812586434792395703241531780853254629190419335312432015758660544337313169951439909083928637985180555650873864340193646879549509504372346173347119539986552042171037111713834885449001776624196799140055643310897381702630980262911937781847588146725676313642209428374537235933670563050695976608199002228878734032112675220452651603485572044756027681175950616766884654279155078001209598861371220915182244689118341728438378657564222786962608589984177402479988900424968387590875474167600423686248919583678037150019373801254400278596608773083871370375499325819241977182070157888586356606329084096476137578360380104363517715178057173554098781485485287860018068426035648229594351284895501359574515688129200898674338705205248116707672620427875834656771189048389043178623833589553164275671105063703812166056692247337508671924060885373982517776148075057728911172574752085329453846701487297133534708948608978865298333882970713424872798960612678174758836892035368023549158495707331100366460172677745685856615628153171247568651172731564812093301986085173072033658353928394285660225005527463266855157266327148237495333653770522939644374812587722113031576159859812079833513751338142077859658492220957817984193839897671182799646002950015991288209154911158375159438887115960788750307343431337758869624515442401788017827209776530664024771447600370765009819339015566740529220931200978581142858848747089144574960714099161609332602898444517204195474647087902156180560003069256937282301105758411726358591807456431703771458397648529585484597919224375388520332402662604398147140230443554327995256051323980731732302114906207549930691424964782906581942821179691095798341334726064345294221696077122661712191414017783306948758161651650762817753453892672812097161512423737094713441354262941389017168227693810995028015568986345124551749018362217964656626838940482485955543358732461536898495045125027922970742182909764131217096773153156793939452900159880284430548928945637620601428074888879182280476239363831738812957386988680349464852097464819040724928460872332303190768234888162956205942861359328755036005583482264069536703451572859198149191598044860983504519412738064303160037612976225994651647495222532609020683928330741484879868655774538452623781901956559603563617171903207787320434180721997754957561891387589466166704917431904216142878325839434151738415924247860540523486787715260954258955185487286855103958390064819308619271412801820887722328637553556432184747304002466851614537060811862620712118904278677869823310420571558605850089385383835352996227124493223950373603736032496709029308670321353416901481309808116907484532111027693682250677784506273365831749624231713081708513638381259203638339097984367178147512983875658097719298654168984508497835755789212990416081226241835269341489999598585087078482566835307606568214300307520156202880722058848220050600053902093565100233392815323452208562237157132866993833076449518787875610608207831359279680396050635902738002385513441831866937482615229552218187884133027725852522163114194330333598719163357229128608240525509697025197748396268540629174664286204227458551965467504506531562830597811138472487204785999608763626436813801790701826588116454515416695742873047341878134332974646838048128523640331248638753904831431537294706644676768387426152856589816127027385395959740330283064863205933600694888732160233644617287269496346831111006795316521955769863890813659179469753228664563180359938486050309339985769552523235464946923886960502028554667370236238574532100384796186257291677330907965367897337269878529654665784810106393698031235132331245129302962239103438184002956779968284648696843026508544069638502140959047411742112941344652750523462257444434737867226359066665675600463016833475139241762772780736191230923586823829379446329437981817889044316460142070190039317037355228604759050508009974202301794506594435895873529420651076301107093016086898111748511836887455793541490716809890139593176446444415518855480358529453379780699631713603292768945669422527831420921917173492026017827115789615891865633394422289057082716994907425361133346704676584541010051975018339204237943905175213143530966589325595876456549367121810727112888859314624761451678098288331025366112240398927584769194972936208995808189948577806570115498421954781575739327834201969543061505765678010808504633642722545143274115160819706871621233305571999625632947472408626493797166423709071431443237435690875019101497600134201497074442945367424468014285792977754033079635453466480219616768305768388367524839554005462956104264244115976139797907971261676071891096699788558576644940102953863186214923851293498402518683181607244833806368315628345522970698718798221359870451246513236869582064304588099847296250624741346256872405870160164068822602796345893209915518917876439225700424684572013577795314003799561592675685836125451229225805454344026056668701486532174794178618899300176240918118098396904350507446565080050523591136710320769718496346030662964152976588916075130343319508286013681488185846987264718542897222200448715689285684987789160005783735121745215895972674419787078811422413843239357610011339700785303677520775179250830209144236089753089976028154317861861418323500416348553867011364692355107350971904267582279667721873777218456912736811988317762525863068195100946424936078146254643455021937852952152524576041149605136935212828424171914340089961716770533127156083499857642847794147472609131211219353939193187085073307546853218619017780610770043588881368486418211341252649631750180582290951017523473053589081465232772186554030228424680841570925494916466287906523926205172378366185072170063298898200758559045408697048996878599523038701179702554811281552299577988412014954461497175445491699421555309856566752961872645500529247703038152549574270833980337851530941459010067376662705741234814017363132267080087525726113517978313420505201403682261938663557090864669928665054434502492466029027889874777955002228296809256951496944681201341974736609756176857131502561549477362804896919673538091419270185407959886593129648552545145552868239809762589200485117120410670409799274023532368074155475987299295405848240861214435808971726264425074912293499125730907393699168714557848350293652890491521456826822961517844954790287734502574912227592588999025261877421559936739646024169065276842189205867282239462348392254492472019207044355646943697890823194088934989798772458552817718526951953413887531075055450388148868257792581379996246597105566113413605666884451042012592370164316874950402826242644538623833208183895112241366199617317318237649423055344476310105401091755975061676116692497071695209038225902668345603805416214003701171623792566845405984300493485771695501311001185612771262177637001196008908353622752542107733428578742511310074615227030973976330618737557400197732805699440182322794728608371661738251302971026536243016838043279640760353454466263336476883259420782539683936677042876728877229031301945358452934152482920346925259823396313898825331706916859219562833333479731282806741458951102591848273989218546913833958949057641981281782834571154575418891652406846317522503016243834983322623243532383271894412305588169144642911542656956331925329888318810619334045412564710429652864273397802726542647610982587530500445062204270647312600866944740769095121121994234109549276596062849482705036972875412276481189620390451924946533306818436425907995500106816564416571571043162682045310958874972104698917203126442284081553237218839765084507235863048767111782771248200366636944502161640396474924627692373655131137828462050820631010260400999608684291391468006258701585327321224907550241853537922804369643283782507569586226308101461402304435748954188557090268476762508350790044425204357991382759206892871069515005137956019356710976668660006902856983825155334707030829717677161164519057807168987240513092277393944019027870525397896336461477857909956440550335908514741158605140156888944708183362691155910447086918787850331069223822556306999920167784361151652266199230077829653467277605102624195577668339716480870015174636738724289550696034775778838601257401186174620189927871607289279168242413504674837679064263835828294497938985218078275781202699035501624498567904946517628556193936708617707996661143203532078929143131706074940400916815341873706474749567974460986986997976380332591748553430255453542686402290418476240737515934422563714596129600481421448900779105087158917537414218378776332679913212426396980933993252457813225090963508839496249616336489368221263157503821021803106822229693129790544812055227680381071983820281178312352789154598886393346119052344552768256630986058343958855597264353790805562172822594255222206375244657733430548472851403452812033208798807643525997737642012792795509000990337809409838357131647922721064876074601031212507055767231625645740432443110101382477950292114613223453546639938733145090058003424738677142575279763406677214441701455696127176757365728654969463641818816605897151245513538137558839793126658247952407714535491271978467663119967007692564312565656221331148284004002263321906232413314573922703147593700823692167181837624948473684390805673361528845468532337770994271497567509775389690466197546975350379372990920549093035664229031488009476589142203899577107959335182121637498071395065148653923033794823655415792691241100292478521084927957438336614018381168013203149736655990026437613024990021367937663823712777984017433976222035283454702173662101116555886584076176696232055624132780283384295268077973362091358866110360577049531518398005922844553701518507219087478420006677680687495583760515320042513835179664998923315907486919214103184045572078401455000491161122734711215591586021820872570681607734743509804846171689337057800904558097428344340323077954506292669104379194808392197152928097736395392806760284495079661606779269524253722547841927860450990813296080990217921454299855687556860360211926856165005785245275556782005830182942327133707318453531530022035012684253381514237357624796700382574460205630968875818149224663138866986843201174929645845032031509214576866260703653290901726179494952440924264226095465529905954109794338416240720445422956155644278333742204943686302150230591328659346500806837774070990482878272246526988392797470757018908425292079485406286451144751275488978364752632689910714783897466985928903970021925344565676016031807374274295879735355544811768011703716941037794553185892393396234014422045755310926042743260888117285740844533784234747159707610632545870662787814028278960813427357252172066754506314603508921745338939683381003209023646167342540024488371598210955276942905247084185117605733766570211468928525800146638476279428311949336102384231316965181058449122669496994756644069097122971774708867846858685517078033948056077379705080077711374495864490177220505616566164828955205815375089022231909508357101900815706513344615591739186643757171052759388025231511583539542913723848110318863418564250859848102012040493566028531775854181906820914432841579449279466922800667107197002584473660092365994554852946702447732760410503851318249016696562879126800988514402744207402736839249952155918157350917015363302831498020343429306479371984069923013364937232250236226620997862002604988636062100746304949234456405879729547276901703517452803551800772760219927515519027326022450036785689396662695399245837036150911431783721288515101640047909468342148967310825407538756697813096839053899394537493830232375538890649747886845292031463481431310395699999280817719417605877694958703663730363888564177793467762418889004115932078497678420437982163327016501244965559419324235658406792400882096494059877904448099061344905975526037337108018358729555330535177673591239979671669219420445240135549899107742596302254018200616303639463793336495713312616565741218131624021115381319166022965001250179433330395119394622233542469446983875844578848114571908918252687958181500830359181824502416212036988079764635707280177522599231142056035365515332324053488316085168137876220002805023197383750956469185453736233784552149348187014839971445045758639125699613488318395210815860765396946519897490135491580056101081763668832537993370445621919843374474833129468118779831470601222251300461647817737161708749973102096112059174338281122510794913795317834357306235652979618088700929660828229632596989475670233221196426909245113598596923258048882109061790369191678192481790478775715364377876347582995428175972255555050286594646871773684153865817045192220374810537506682991961315988202300025398698058987486593214699034254048297999069451990469664569900760356248777798191659249223881330597409527201517016294236838007546897892935734968473493863237358253358615630618784910368575731824273819994099282231811938440076250763499113957415952582212714042938096282607676101901783510576176281284124255745158739465449594931474287217471404457701703270232874938681258642855174472140937014675393855505093839960868563253892625200843726562225551122112715701827749820371973342543714384792381166818825158226679008650781500238789798979697234492287425072131155420268853337890059640333848393783218123753962282290643468046908102530824803681516277237917412418003631244967461340451353744588101097053356257149662062420776367361886713274237321649633059109367080229882068583297446953535754400129906033138115111931082115480832607386035029957567876691125165681933638545320255934513328571560845200540531844639347128440362483026846031899404216928686757944840235176034093427060703973967849583124241211804629380418198215183076916929487657869014007681022043662955601017571446372039972854518861074749112793777648922999536264131965872114797167941590957180418439510300205471960586170933127035411696058604072313539433235443854007501269172804430122330057947429055336260503943026878936922433078752953930716317121280777444295195971895558861318284052524598777611591428174131570871662345673386910792802203038823037134781605039889563397750422214343761633960253433027884395230135674603644102468470875079029601529295740589469315987573509461545584897893983079920037556512589604370503777624317606052716721610143265374928402239002091637883523157164921704766538353503015317369492058540874367332564634465536736356148267622839957664805868569067751104327006400599992496950576815721678516286093950296956575288197804646274509108710170660597859281135844909754191425930701381138043054022346981122197575894316114175633064908835056466164426765215043246561309395914362285651632479891851261589790809700291538875348785363777421231021132138065705801318777395728316599972434718549789197177948816089415469969202446589783952061148277094877093126397467497766355113509932700550867253883601940760985619989090450636332738664528711403759440356115493594101140767867231554167044333224625908481337492473849032639822120514340691812174241408084017199591455106600682778059562029196200387855570218609904937662321640691376944968665124833070115268005276613075802587533962490076085648295839924359367078625497501575243902071031716551382349046884896135934954904751303043606379749905896471050226924830015467089045686448809160121159390626213266677058897734870185523276847821287990632546458325381254555389061134336424687717861757734321706253629590010024407868946955959163833774968975428828348394855730880395356485527452607888853460377248519021014690243633673476918391438616084770535358713887185890505591599856831135437722509248345207204693706407908019297147625973803579264223605554501827186850885250613855288939734159143251044461091934262115312729205104709606127488241110176840705208278039934443924067596095430649737182354576404823948887643976900865952381192415884122133915999821327716418164144113149033802625820638883235910382551453723935912785149721257645902282949696780068631172742941614066640023015894111441115289491993846141054844661888768738119096364193586389965676081544459618823114687265919706080515950176681747513736012435378355765593583770430665026101558606526027618875000081521752678248096304622101617175525554577399270133501818818524527023664753994129152756186050183831810834619542137773424440161659414729121559015971104031493854726555223844288444236553155592012672231122034794816965982180047757086419606728537556988874149450040847446453844609110872117480189593660405287166734517218504167942655883726309242267579500597863927286578420105944431645715753624134903766114413409716287279377669859727167036724008088598535263224850553682773608330520486707492529389039171422135686462607968047513440819336484228041645143950489915033498820126184387973898184551771962874753862396683452240348150754869386859420454139715091682847816253242140921732601482839409070121595291681654264872179994847505944729730163452816854850634845987113844790531600860049017838800212419032610533035310922587675739208475735661623320325639361053761973844736279882500881761656088284410253535099590871407815440247352953759782159599871842535262086752091273028358691487366618407449198081591931501748907898527730002166416572896581520372570106499222797167805579685205599421596029791989139627948700106317261008468480665323627500745918008407747711931728756145106757261111191829796427807693325463845994686369885934908642515642616182688502865393140139251427449111236883253969382352926741386159892260899456929056869775157573925088438497431509729335720292537127593081059532986788920818303191454831977501992580917649408543747828688629183228299073961952390201012684845089231685544131874813599830007128492050675499917465077727211631468359214040445180741971530608549234050381698876708229276519791479368354613883916905884039857571864112673411137982744207176957399166981588281351125452986705069659578918333674541826965229189285166593014736933256498218257144740390529029746262469212612053534278147239118864525621548704907126290282282456427612943900044238648249156267561551340375976868672714457058698213776535635180489835394793357412555633113391024664260998888411172529165980737760334118898764290440250784646181418088581953432427013985057263598289427982104267935226615837212907534944193234784222864377688446245788160391967112879214267872276650130760127794311134977889320754419054909296134908738838442291974202885662861591557738856942215704039624515034543284396181530873262189475807057101598431612156674801992173027218860219444349340535671769784908746690095507620511995330580405291971482429626721230157265815531153787772779635458732846238509921570726031095971754064922932230040390970600507104607505763434282523966121478014047101785559392786753450565922410877979597135564807020715270485496365377471550282213122714913575887447890418807453891720909536950451539255257306721212852176830968787963456373687696888701247417640582453368957419711129334035366966476213562252435232779798449776487439928226010252416255990537705367559198279620204986206746970733635028174180091075046960552258911324326274360008819956860736640776990992477883173014525316111373879864815364045430683198043766802774419561209983661366020061523931913884204210466576646682381800283577938525417976688445628903418295924073543854470978776408161362689038100521074207079085434063342783726163620696720123909275069318847854026734288062741350181808963718152387715718009432616584800103761175047826591246493543038734272968635685787089042837379275909715583320318592629050867339354852854416962865958562672481776059017585682348127075623085477661218873504793628620327480206774643780307182633089505106657194936666884973398220084644292760885815371834673735741535239051941505172919562233408092332117204496657260258259717783269757087962886548541775014608296822975153352535153140593016262444549993489853106582851989501171112818627397435933640335716165426629537399871212547812268266418965199678297678227384720551120076468035471296545587461013753354971467335007484523404181531388069539619754495553171855315472398744634452891305654029105098418438300995102912418260950464448310225318234054449598609673211755405059758767873436240912471638995414458532342983024750660661634469667647508862315555998835040066426620503675552133085201666037908482675378423026285791617979740109905426187401976282014933225817528381369715717359729903945175985055443276672903719312967382168914233919345146557948760025592278701461312588729857421662445070987498605413742616707720488580126725176515857979853171572172530880901495735074661306704983196918580591598281395870581804586451814429263233524325887627742477336555704939219462567840295394500649008215979382087790229186350943958382911578901018548679242056240931725198398914359992066917024586086747017831255145590870584142780510050373110220696888966023294129135603780613321852496735452797077008723842705237811082418732814899995418416823578623205888724890112996244836188240026194402634319443402853499346159846603450560032349796264941464925946297383052632723569802361151595560522819305603168119840170678268341363379035328072569059586209340354802182657493580505151148674916753585675522122698072181407096746737672780652636586737791487164343580437659909314025103376043430311388644679374204818791470312240651000757988521922160286156897821946239913130842118887619935359228658579758218289877698681551957486088239811908802403243544238243389595972013170185626826125633356065686730551972001761077224259846343810343127337410283944834685663744069339849541681891386356977051479991019575594302189167234611919961284489442051723046120297594445689251625929471464037224718827343081992567947852552923569556211027893144520341695116487738849591717426280363494837399251853789177488464330275071868419724631254335300499456076123707275123242260936967934863167040330270520970000698594581683621942125934269293242665434516559344159766855959709894367328515169470644923101106641975640007932823894115415408670019962562611156685526207026524584331569618070009582340762869279309711542900538882253739441760058395393549050985593050699478118521841782608114216379761464049477426600289836067770078280031325291886763391684981691975339886910440200445842633796622867925773634312848866470956353584344924713594987033075426938513871759856607017498589523843642862332421667343819815778237368786015092125295340410175403176117872985867895369443255720649423194795452046268489547666815013017320636957892292702602461950365115180789300126306735347575322396678524798796354781436677852413326353212154873803763572353759549633918459633126882261411753165599017657960862808721003665059722822630709828272642245950154774105442383357431462963004658664346058115393537083601559999230238505417163087187103971291287756461736044182161032587136738549203015485294721092192672351312928253497968340598593609912485170877452601407736128532303145283585828473023708480220534187754015727828160335822305800516884508005608503858335716248188611536745532958208148014815368241683853736110712612674247192418395090719264172460173753281745750912611689520097124922691909564142384793485861955536520835974741238954753006681359894782002714490021064285468457431349461835138899054501729339478122143811679074078180206176781229141819129728760145508129316002730983137059498384201139640853207224687395630824944023343699088302312166588850766336605373797319424086428347113747082853036194753251943314567212141574207720335363917354027512971060706069957917369149268567219768212820840305844244151978730656298147482662687440965194510333587837364703933115853425441653311436466209355371099547724761776441427776633442971361234535701721318700667561560056811003364279974616038446885723079232467083411483314872593544770501538794812800673658506418892631808562086002707573447691766624173607351506304384730908240145283583780349839882543927206422407382423894671364349027857342496003473577991960406859870755527675626291672308753198303278950973526895955909292038845265624250160930438074439447944629429706674060276208574385688236379648955618373838941724406842337566884913556953797503486421454462288027625078450300989729862478936010118700432667678250653046829604737198537225746919185551743485728162164853251621840919103455182792211463176012051153941623140559993884892215635438865457766919414293813792214153911530697868056542558181192791537438331912045883734024652628970025936668721139948716957117575346519279246023069308669062360221108487765217137661296268769471548792064834811104826411036058078441580432078507765816775156777514040541207007295579909306676932307096908798823190446262728380131973947961961575077041119131464986843562498829235016559517200071673697362837385003408355899133254266664316789949270828165336208983790115372337727713935475801083679335001317027036421740592436984458787768644333497218656346383426542107772079164858810487136604711596078837422139559639818537240111987501580266878605498849183909807282026511038301839414337834216181827163436690961228868965689206942644894384369939731922479632958052489943623876050235383840571384772132805415294308572409303942221090242247736661405742102205532844150203015677537466347925138662566122862606318948692012648211400520180237425374008188429858846015025369697196435657006999213676250445166772633380240021090449953397603887361534303287683091801115162717070997307794879249048123966824996575202337954505578525958532749155439395846691796342304512887208909675710859653422948571515550754159336716701140693022634837460360631913324207227779053707261541516119242637866048848948076117271202697115002620659023963311890296649186488031063537434954857383320015465803729966922270845122702419005516694306611414119275028676623557321428801284782303520797801009073454993812453171217795684304070250613151645196117484602699339650696133116191273798253393911969594680401062418169637421664237323261482064800475938668497450945167783620166947938173374538969394719995517710348646740768801183445287609127154959810169993041959142446125020766351514871949726906565169380437510136010661904379550917059919715678541542336459042930183176795625835340651209252278323815110506402220337590923478153327205402845204736728945237302565520784335029703263071715115171148425254344593732145364598864677843302929811898269719704012621745465334314056543647952498453503685595815208053400819976632952303214946488021774174258469617515583998346149807681529640337357339384054704124326152362567215859157822395400681348288642344645144603757839961262537766122315734087017656653038279334407715267550008783271658608897428592355319365108021643673554265089795357301811046075725688251876102128311065084808920452522053234387126399846348897873662899237583145581155207627979279433085589868270136117247230794986540263769275732239175705138218536417025028930892105404591247265618383864911899144718753487553626394213575536204195726636893012997569192478776054242503433948274040287294786848610402174149087775303075461200557305182445613132627236526139346503645085866561404761615155891859741777839417360643094485619782451693721619425252997391447428423350754267050668727974841426059974741252269781792383576877575405876951229273155285107031809070667452271613465633617179325336638780499447453841922461810822012284703017319831772709163204609840178908952972968512954002104033639231618370700215394417012241999072644601617807766683632946834535756665281573006529463353714435095161151207113476896936980088911605907160387123820846076167762394761910998215046610991938632257573383877850139891852369097527549798484283582063631872413169673199296798458892246330233764646562443832399228697123708403229686434228384256769519360824733634925874058142287478306653933296641203819759273140368588093939629841909756727409086205946457445427456580403436668035455290913102672350108875573852050764055223302637562060865226833534671330221248580960807359225247473277818337186856961209067527295046434440189720808920747813402421690735522577927741460997232501324876200237127872049245910419562817639626267710303374535029906229230728134315908865297997945191128003185172973362397563867055770954859795452177899681041049901888963707710514859992729642850498601561091420023994188229064290925178012930542522697665238355222497897055098210785706772503448156028896905153360649285030110540896462214645460329877798760247373790779768228011549664197972142710028773527936737809811155666427842900744352348089735202022744951762154678551159824823099893708910337076338683379594854209267804025429130932867501222965058194231027548630982968494350354433304054024237071514218061720508241131149844353273222848224310576591900935722674410126334829622822708940942363881368876190163320906033602402025721643191992479246505006391754507159295873772694365272676663949654887148188587331763062671265673678231020050751304381529554277020564172738873987990256614009131310559652222236129414037563286754617120216087017477442199989084609397034339030986821760130857692208931485680694485600744578935361681792951190857701745539880128780025838833201372088823845353608666693689158187257259449818383443269507133425650508583436842688410599793157692013389661909031766226810867722427253497583110317989614343328742516303555890428794911935456602524304032030693531781763247350209806051836277313076086637224022694605590398639805384798896530633968074682187850814640750536637489047196029545546997525079158304884961038089217338931192001492247454385831074651650269251428065339332718827185231543641926157651733000259541850856282787918987441571106960857324490060371766561800304210624440536207140244704388479017921416581431110871515020788425433340184625384832842634621801134263300257259529365892799060258602763753459465582003995273791608525165290201249591258216067756464517493280276900420008019038255714266449451542349849217182854747086330863169145809773269621429679449861078978218699651773477071651721213949043345896285517627403415750329414947769624994503986926472047786451019717533197930290166602329027889279112582721336907636172306662027012848867841311670895799766803604435171060663747703081330226029606111713489945604222010898687373354408968553509540111307867593829986182135360952576437445171900355735570759845460667630743521463407755055819149204651781561627517989244708897334888578105649123500647783685262270862918948239193245424431326330084600484311529547584003844677910173170346704649728143818243568257049926474194946486693614692451734001005387355956714184579486613772152191597938301283456905563998749141850604677585542497544244286112004481039412705548182708992784700560553780490556351656259424455212699223501251639796940734644878539852933210102556715966855760435940650269653785820521604594590561154879948682820667523589545316433071842397674051286103052001070445081789217863959790069963916839752123983752739530691297593576285733439063101352538802659319739157845010941672643619468839403542354424241023851640004572779582028988648724788049407308638218563175331870198827183752394714201479634019676604749620464175309969296443304133018872456090150967222284488260431900498927027383440240751368902414439518069458755671879156453241718100371071803744932643876567867309603665326210765121874373798736309863760928103584714190759417835316368239868561111578588659021078570557340657970931392451249412556308266549977475932129339406227847849246757636519263923880434796251863528106524447461960365165652381550187256976319664140084458998205386164271075960843253779097385179873535701715215268452994775865474290766694383428055901890323864818350637167294528443066467502441413304479519680559443806367412648264942629736045761938211127490620140150014923340971823041149566560821508039323128515647600588315591402138603542851436483128798780718526366460545421390422004560736123154968032007347121538507912437167790611746513120331765128336687136484386233082784172882588191931625415131710785833304054671708499565366564096974081607848156369877914778212053351123536979886564146237686216025333640506581799496608028179451654515335308570147344419296335934682382650500615556850368905503764180091786022940624742008585591035607013886152024989877789726717917797075479668707190883138177920185683151415772683628003350990013731670806721490956698889013269890077872215952501893459091773943300880682624167443481644241602646662953780503652097058407906484015245626966231668173192311428671293093429748193141689957069951408327602458694453629507227176235696293427182496606853521775133062298669937779210301920897752443563856132619235990987107524043089990000602685988994027801425102306182728965533628000561502857060773696420893566501223564358324809894949363513201419299284857493098272272819840250980192360528168938647017078393889078301794014846055660418270140936431441485622811867026587022896942664362142606037833876340534455622709479598104071738495463421849539716361488478598917129382578404807632601624557896512433314723819176836203196815378457583381836178194035322400231079411675633832206113191991467122625382847453707658699076383044511105389590194852531081311689993060996238683802216597792959886013008491971073534167420211398624853109851906512306550677570684472153042121461669487701642698288740838629809002558417748916879794611973670509491095705294356504280210502434224901580688328844870243405806807126140240334759520064601774592065239802200950772141224486417635447905833710267428118238318100948021683647909397432504469173350884494298835713815210411812201032383570283392709760049752601596892721847202019213695673175945904983757639694503710242307318108296957428548084852154721082681088648525943907226272004603568639643311027890971517907268108184768403357744299790060693943106752348931445408514684849922456757709843350566860805512105906128404417750246263150964627229183801262914200698221008255160211999669027767716404354460815419155862198958550358434953017623461949053153140997509364852485326457060453370119656211034677517094461349493803862274168137620290416260986476655385777037637718781928169905701378771542208554035593521306431841917141174734924724458183654944650958204169399065519522004260172017204642321130932102467808643566359395704631993546480202281599189445955749766198362939162993245914267439467540238759231970381350544179003209399669067792362963368965851380630254000399591120696922325166243868645374861478645657918244996578690691649702591872109099150975967978382345018715216161459546260851387967333277509034580486864227243482644043391032775105213932221811953900557062854525311730794584244499482430841110680589020661828951268505437805142555663374383191376217496715376527589101394515948094199970504028566395315481572999734232874383234996159090426681929699874442530043982225529264793127037872310791788349187848285841123098285104672377516934702339211481589712188462074635107317452560711688408927404573220462765120346389249890018063877661416369465946896091676310754725412133785621579751318657818945537386292635690915356242898419288446476658033567654276517068120306708586727231174365000529809129574039434107208899306077932868762659787334377301287419572123488558805163184430850043952012876663548402542023815994963884766365309082725228308290115897373311289198002236939840650091497621923515612361576669901334691760049806715993664408393554765805123008766880986807035096055909706895423477962520157705270030622416246932636908922145872842595785007325905610486473048598225686392044099163948020414448919309547665448608705615088296751075796816853699896502138180801078660236685144297069231225170445016169425208061055594424694010689082171068824541533301994882090687738960720043265292413777956457083773737041546127764324345013729527478571246812998282220403213196027006982144589402530715030222274400484787575966175021156099618395628621898994006381513181567708206912917285329823598265678381782016738919805080260272011022546856804311366598395274423812604390203771301713023686511207615683005906357841122639909522153043726941452159852387730377529024429498290231930283749676074646225328366919427629748896602809094286215229815288386735940004167111210145451753893867256870419053272894857936529805629185676795561401516762448282301283290068874961809401272689879178209788054415194658163075280016270569926527556091844169016664772065674825290561085660778635073145449182095627993230669779264417791619571254783424007176631265215326266645167700380411922001005755813861350313429173178768515143020009722968060585129903730306889922731887467759434605205068510074534261243093983057102314281232086389375692004704818612049388141347156879319447113431923641481124206609402954540564356543823761766126247893513098032210898428157039711178078967885606206149640223868479117948654976880503503559507694940565088675689051685991217911403284144222407409635338471802004755952584834913105331686547691093185343763365917147136602448694945988570184881640142504314388328187548195052785447244953791886275235082442584337622510186959963240453502165243330929912496939175471886210610237088989312129900235081928840857220988877908658233619962246323109202550308894481451069749040551775638767723028013466565485427874697496387582060133753796075516687310272770518019157733782956206146666495604782757683484873266187491272792714417956353713517035349885643066332525597629848235606845314409226679225959043613286637365441644980478203653330139012216590519515197684688965442786683104659801778762230387993738955361361741367479278099276614779435362118776570418602943027538257465779521564882652628420153753301019694428295610982550722887054273613491103405091402413941738227102454890896401963432260580000219749670328570174276112926852094448004383915162930984298918892141706715627499007658374080152802241791553359466052939502433271941309535132079512289831714559948178794451177976552809228128953495794743421082628605334891063372375854948232922882947896731421594470942827249999428954148647461031327171969346569623085157090333728983541638872378863400672365456371211571125191174264549855366490070218891205406778447262157357316761627907750715912285927371515537258800855258814026845960774216116265160466814942803299551625300622754317314024642228001874880263245363941242453291469147069950367827498174402271974143441019516966220502649537789626710829537434822752134714509160891963491842432871509136494909782292811834005019599948432080625006217407700244522665930847407283804985625877941829499086619773224494382460815203105134906640783449748832019856173334808754042780905990681391503463680062768517421111646539853838532870629317090586023815815104652101530287190998215861969554905631549800256734990121287804537484927157486270949675195088673877018514989926597920668309381051224897944336394241424789453494237490919151526974075425497131844831702491903116510710892811007583296033629219822240946089900481346140655718839008688815857101829254601560712936324489713271859074651865488228201032165806994908723474961924308379402891231474671639907617453912631958163959721334188439455955767886137153776421982912566875140838920220157050040451235072514956693797514719388673808923254958368621122409151576722388070708677602683848534951087765364064705904816338861052588185443744386534977447628629749676050782637636987600033889297499237331473944015201390126513571310033105671370237262640915263279466482943591213312899696451203922144030012370238275350395586252961487178412774055456091295782844423963870260599336417040831156630625155863551185868823277780338132534602320530145881160020196204785392129931518217626357713328286574526042545069567523170421699124153925861304582422898440023225052111502581036873752643905460413774273355546350307022401553767957523702995445945418075943281724418574886055764592567062102314911607495479064534535024922390180015734773247357713076724145301220831373603492322027044590116215834744675504189352579383130170668011218216140422324155019958393286479286238699821410397311250511724142139159453663660959167805449207889958829597624141028415822119319822128938684147940205884060452409053021072507703313569562618646901631591238422590921378722482457134796006343854676645745459500709654599903672002729129970322333786988565901105147902412359382463743726608218471527807836526393765021072402830794734531029430994327481062908451107985188309230342670786415285365696300035806336606959438109204553830873301018619439839573093500868477492845114947241624056674400983818456985070105431323284054757170580682047922710454745356007098138439849799028658338175543445934558635768048105642011853094227631774304123541027437589746180727323466271706710507652076721104844104129194165861981477520032826263008252284960382254731195996607830661337905917512981295878023937434828721386615947404703900480160178684903796727899344427273588517771163752033007959837037086247299200632620155090887236649861778393585884216717303813146877138432216213854110267481872145053559976634816306900371913037634457979230641052137975711357418935925411392942254818969592700430183032016901915311508042609318168349347004754569600822668422930383973012697179008592658137915484949763620082118912756790585320998428364701621434685109383876158602273267909867937702439789124282486104673468352535952234356311863205237128857402501401387408809117769153769824138321324668461164321260389960736279913586544073852935221145111481387276287348311410617552351654687691394511776976923799240258526155007859689645604171258570107103381696793164397281414597472168610858000650038723811612547478830396465466592895851098708377025747427497508467670528036197347637723126585476713912781767139311337650436851831586299197238585563516210395409942512101568676119926318084976969766309560331263830483434986612963484109243786623946212505747287675573967227083869469942696520756371087917870548307088158766654329907578492431598087386889702816685906853093886884253330707938705525988422584393817744313673563100588642212210727738095871838893630338564174947640351572105518525986038669788400321871975441525237035178748868763128544074277413021228037138971653005310661096005656011423939419026804720993988278256229366708478119316106548030799119498644074724512753560912618531078079842225616199131077705072039075416201802372454927280381026569368649976509442825132694701488189816053668599512170058924458224543746912934168473200894514397991753140215340903519916711487912952559000624765066332854233812387657904347211392791815450620012889478694744643661953031952589871290881462349220891175177422048305704777291633558061928849770740544746752649074061244246515430940659514565368089904966689611128319875735259323109018088709024753720140777945152482064572443485136963926046418346907172208965958763920707761009349650366755442437529342752635536137593623208942769508317926616044032544220472936890444521750699526497411769672624257940441684535206119101365190202210754532769710180166188791646543989221408409219497351286076777154743975951130725383795105871206308674664224597021305098254431383675526512574983932867392390125859200397469267530940324154696697989758817873553851090087327614592665826204381498639253678270812190700251970437323932135599939059685149922599581203164871843152574756942805416825211723875423382903358256485626303661369353750997880741132219643106249029786427360722622958963132084374043227446891316282370088490037062966260809502866334034808668811395577282468642855382228753942158559859495460602814771181323521343655049681501534248063396470155923718575830198545736086649706126096654404943291905006167558707490326551291889208256967567239566887316805226885500939894224965868319609300601796541709001262341106811183071159262578842292716020038034063233851514188641922057331749455387802925299525675249011312704570343145490583453819740908752611624813902640282321162201017941585300971742962283239692687030978375007503275646199828845177811165119449745148844603581643366195999737100557100496076481034229266053279077665677283600860039985642109900991952528959196679903941360705941775542481632839354008271456619784323937939070769993294008196836020316251161988802778694484350416854937274941381698219963230992308561463466079720316444013130004655653539023939426485068738133123699076596660865326668814264037861039410844184680068807609052395863247130477480131026379467170205941500415479534947111466412228141497776818098111936364688680606588992998132758778192276230196958804587325333538454976411433186563546945848604698942917347129665836909896769871569345984839428256865016977083171230523292468965668974375468415717549933709340201272193790327643336738002457566658703865592279315036372665854943589137459267127965045832842664067753012932376836130756920539683957181085905318079324224029368033343414310918235280792228409720342431045165127163457840724634054077316686349017417002557720968688159024883420525282820454777139184744402159534861304407877261868469011005522640429713255355919671849051955424842758289936200039130980492714275764203210751112899424494276810166861464936391644751440972526803759063953888676613885480299838341827145002434124184831667307942600676836710240444845942549999984186156378304010889844014162914609515155838307277186118926318774125429838470069524012158039362302403528266930476639377657573047397717572257000986862842356218545560972266207048582855003123706707824681859933665331512459863474443273861606218928422548654596519127451770138629718205387007582667938117213658471936728021881194442753637923772818553083997250695856597536686734838758786610564440737977368065633402444806624600504250177840109790919200537213666189281302667433739716175942957204830093601385979739009283249352794111194109028289589474764731500272961477025574381303313362760909929945441810725829844080959679761354349813977346568001489016212936383455847675353947519373836090290243440156076624662565613753282188941484039203583996618763578372296879796395599192782958072521800201534790706080936618611043304300416706658516600075796779508957871916455713871613002753746577160367374585593128260202663856759366726080517839031657880700167426964415584608179789675061852603662075266247717889818120161341354123601555972200590318616206154248286254618928714497580497805205752094291587541540911560337615406162688790463562335248890002101171699965411393798636016369083363508278242957854589470888132575957233036910028212930556731985922569405750927780507410900790930419693175391402258472291361490451223423353708100513065790664539894197245985831130918549575351663097769592619044440516299984327855800949594118283483791807728299649064774088094806477398503701439294098285371226871105742410504552089537776179553020527698008370010271230722364357110822605268339815550937294432984330454801940819513099629875452415442330609556988378543111732680245583419535271107773897059422299310365554440185546695897173646215477138888117700683067986862230361748063019927214635338665506379193072891599689325003918888918540471046506018836776688599720950823386458936467289285579894695610143182245040468686736613654361305406151772348565480440084387636027845407084548910681742799298591172258964898002471045116033393801025069707201940794021156023487145943522736776951391277074682983452952147395049327363634280465632243997943225088653482845285764314912100983171216044468471977716446779428147690305001801616866671691670068027196722512092601508678865569078373237695853615473006903825504427541246621152725307414476662872964339408018091303047267412140373200836289073841647785322728283922817796789934898036768668691164748699872394848265077358706286848378430058234309445620883907929620717970316255958065748423054378871174007683248972845130926171410846501341042376891807633949115954739434265773030750302657936547965718563821671636487405930409241762862337774853329994370977472044145000853517602183092252727371029041140980456750840830589425640688369796182505353867854073736143610589478735542976978943225024295609200348455667856694725297088564760217645778405231839828059902329378723430604498122919264337500117336905926043404893484606749902442603423872037431981701364048997214904314661859076281426448617723651785413129106391394500528697424120009065359495797531380670503877878107165328250059061508477185023291845022016289715410633528043685269907858112762116697145665937159744948251913475526812918896401928926466651039462207525054450589208288498197181133877560947552232007353319783044512554357283965714141288868246335079393125474599733483439425753498092520407718520441255278281156532569350466535555071830951350290067192719491232648160679319022050613892008021869888245094455370078871050191263402370404414511846865533745433654585105485047862683877626221789470203451926200047048732635378571238484701935311013764096634643317930741957115257902287480888851087069728352737088419408193751065002376794573604333088875915002130210914047523120702721618120989684137798446597483327806210587947499942505396570422393662482916783857823160895857864135201405321057278266272274013690317913443155875980479462031543158895432544342655606901474104534374368013426290814878474399065561281753674297315270432344343093537805270252124552861183817949181904147987963990600072747134659147829743149895800608210044617026080644711050088114950856618131863648709889608707749855672038906364505868227793975319185156185800509666848061637558583149918667766083648817977319037590070081577710198000925338761812596788328884855210057308403425353360561420465477301378637632142652091338474439181810173589809398177116312618164413834173660836864067996158216267054928388594936417985178406534417662412165721498647731781710618108902686126061958717463402412384625895385120849766917648181154954465861870699335738912321434062886356379503519701169054747193936906316555679408542457430280964359705023282465758643925807232207097415605789307854154851278434477414927972816088165467102493675861068512584741359088623485143397058896209216028753837373860597077468952053651963818536558693532398009785344331461844998560071367359921438527660733698022896144119311870130578880347771516016934632569292861988915575693496907329996858628114373110104659716295335474250179653111799766759077782958612193146155714244113750412736739071569125274698749108588011058853212525901684174065405107914855549219983475208469562497486782279644365075283858524749412264946803267962907415716880023150220648101819873302060249287025529903348148295281188253160012914732824461871864888881056511481720921077769620249230053463016644674903695966190553728164905677345883890227380578985289808136910881901762598946581080355808057256591434568976044651699731760838873372286815083920448535777304980851802835739329792498881207453345620634112476644603572613971722716998907122996154293516983969116770827670231587241809432678297067681151343449721211871668893396450279019647128797503051597437499005924928234290504114678519570410916597419424566764271293723859924127125345380435201749105172917634712752875522478230555026655044961746538922789450788980118206916548095889572459205685203085996904545359396744599058724932499017386677819830280687212008578226530454443345145043195816608348964617044218662271393873814984180929630609327345638083372280224650954086832605554657061488264224791108507439170501030068136984856086914268998283450322461882408104688746489067948801920806804269398054797687650482597034181969548962885567003818662738023153954131902931587392658446886757601801597664159725722896889338683912108425947067972730512245500750161293938720494014558680914621080024290287828496264418337866598217205531272359029173314717135333896796414863413894419148309248601556117285868524768356824010374564149914399130979758961377121378047299303314933437406081532945926753663606459907165262327501475131552894246979888143180507475883195447271742420272564756558902284994915161323506057539176054179751567385142356068389264754251125662588231172473468143794773202446810119631054094295655750780057871116635673906495349072868259090900817676159721048726790348559036113274193319748020613140224109843529578115106753913052780034911001093300403145913133521135894571613219029227772567192818571767171673045688727993357973805184057781172485409154049937050798121537212257957550066920387218936432050029609240598272607619042538505300335705889219135494104882259622495514198089674566396449569738727101153481973401157845411399219631733400583140538897726501517501462783389287359317765072690514498420393973871416927268978408868487173676543332203269684465332038983153301529863475454008903634127129586246510193603049606821829234556563938865749336650786746861821499129706433955615988837712109636215796848259398946118928882039669755750098837355070676589421046911635785032652075578541360112602199952100743875065154480921068360352722512599144699462444823740471554975885447656220445631021025916196793900946502355759010270620076558736906951433870184580127072234946337858369440733721213124234128497129221607205822212049535911008680709549246856505978853596141586143671500851645591228549829632497201140684785718939754717108652434423069309584134955327529821422271388718639381802388230640979188104877887105253655045708316818345710724547211568251231100059550729363000013327584616699436119623826828859980618266443021731805389814456474471316342366881655313584886665731799603242951819045294720815631119585770009313855292139213956230140625556542333176544553925309383237630819811250987868439526974031830823112622065002583303388285326064303288922197229148247927635565839203903898844194310136241925872959133058019248871544098655154108063847578883393086835948380394308058742129301961531093157612665182299049036302827179081771561174329513286233722471977771029273199814357948015819937170029032516422711919608192506038079225175930159865645203316792502045708375021504616609973243054974294297723797949931921242167150321892372349260319310592058922131322916527710358284697346505767202100863267507495936848305606218397298082625097399002553365315009798082756841317093349942092560974535516204921949522627707193857236921683636640819904280067502567029122929673462804729282109640270380740559518154643780085388952185151393693622640749607593140733549920463219094050923138110305793256568968623884722333804271381071047704045668196593386140062193556470275125849734645429754712121951087856165039443182885160918961790446602143572908177773540898453908158084358536564918609977683485723923084396531816923534516686833676910458512674898989167542962688636750794374759863128247112938512596599684253194882315237144833186994521579181233190318266311020613088376273392776144366650743085439262928706851970165099411725507195171436309806542181760458570633398706014903758656382371676593683507579091613246298040881386606137724911346955788480329648963731606040171700965168061429626304931898137294663991976319271002931195444395431307848670159751730863743424358399830833021522388307715291894295554211646312600460250649338406959569950802252850764062190621208264294324973776582677043459352397755978204755850805572443902105626502092334653016651959248011522096612142182562135159765031212564684344147456253904212265738822478204214431609089601755652772309019634437122836387900137442549164929512945586073815215774928224489482936348840193768491280973551058006771279019691718753347465555190434188741384879373193782580464630983435986678268659964359838524675943294876479576904875469645743550410425600961360049837631438581355296710137113955666971354500555265154283886220290407558012160162345409045861634414920507855044831401816751737198903476818675867998475007850958049020822772172628976431372644595517078112385245256543944261329586418935210236001353653859344128612061511130432844173887305677396565964022476159630407281581244055255602642263760839717163195651252609577058976169038082287316408978976890118197886917265522962684216704799379749274145178423862754069837508025066471614250634610323654888386856089642904074945824020871236284605580370697460407158174925035115604753246648157254575588741304299804514394196865845426753151430712875796744948882235486164125793499049328786824827386902215909501059177657654581780381016218189307472603377133034669005117823129961110753278444089578590880048507441138551796521914112470117443882649552132702981860495961729018197497492285685135542044012383284613486330591595844398333426093999426105179490143502721183598466234688142584521446019177436236005789604593938531173624437421093662689517529217037120859162163595303386296713533260678166278944066449981739313885650572446009225834444138000912381144554903940972196307129476058558533252080566663841365915282269518486093650331726002480560746639599802251824185090707307508840895124808611408148117331515039611581953008083495726733159227829464525573704503034276809380512717247023165265555272566416769042481956309280358305384350030412405019916380671879334733708022779919671735842842657410576042459403026186990818448967591576852604164762204734535172009275195778885740854679993482544285662043780478058396665081794999514983577958301865284810888851338824420004546722986776140865498524493236972552298770587094308234684823850383983389088358527507872855935290864745431267847276925881462868032656066188890434967287588923190678326952857802154449823996296956749467755962192968907937031055599846015727632187226788524570629640345247227106508979469258387908818646387463556455617653426996786777276950035869975227497699333234285472093339951709900423129677713063291537994031306856671261280594131907150337345809053041904182450949439859930708380937852859036713733462282866788246119410141288070741920195008776197299697792309230421966265810182783730279767966498729014367240169570388643419541441836232783363459456879231357917977970069583004013945265680581565816946695765520778381150406660259451317660662194649141878802244405626326651524553670110471747799510743437167296953926427515002903090671486110365968648458489101074535311742806658456295581008485050472206060885625199921975849070421595502441467965686630217230498354270371071887815539832223136658566360926082723453781014244910741020066300640477428155176470094943593721447325760048035235323558746507986739379201374222981095113121015840512478575245868051719101891451082129907473231468758482647282937668116064751080927353777980759813668399697138495067780040303099742580836674229490442515519952617800512325686049860257815725933158197424158432773419654046757399335296216274333004121718225329152639961765028356849216738721827594023358769042842342206686286784137780065748291314605744464099806373667959777767061023752176036677708205095627591916967168134115480114065523437029359596372298549901181371927710331227056496654792958787793542529431244407784867001598935219938275376173898793232218510684867354770119251687229241739232454456418013845763218467962114199797389178536390474716321341987351036091249222052552355277524748113393398849391093609759036541538290971818025449399697155305204204035449731291799972668532764799401102061573243586481749213925397982702682079224446107020777791997515200806188060325342919556666675360989960492592139740560879879278875118770030186209211018192116765426687358021419362142713886362256078994425402829528734962884993576094635546369461665016658352364450159410870893483246438046335878766895968951554700702956806750157459593162638152264913018251079009295145230208208440610202029421727740174262923478960236661082512993580057813496927001452458233369267528102678424750883837134998361562357172310053384046738189343191834961716478387160962949230956908486143281776027148098610313570857076462955195065298354573143080259707581352861183611606696141477663180452498059685185686239132585082101543842608948083419205333528997317592418856562697874307449321289504169806750146954177021102953415701558631912682201465804356024518956993431624577436197537512061340178523906305953865936933879499203341989466415041184126991559282986978587485037253243221807815476413211242894131213934375291775954793761066224198968888254111672363339880495004670071585872859682904059102351664486233243057538509710018750395045469686169998499270940776999206203592015095733704578508559473410675888687410607706520854650511295754298617919202255796535204603527261520392780293766151272983937553154340639045186284413303427361366151458373989116783113224535003807126454218614958909962738029974056991711957395302805756851170778923366987108143258992042280000516714961738173981274534320823922235209027382758802380562387673814811407852182022211966252158971582738465953168433858849257541580007126433385445448248671802515037745336013329622754849112815712366485010115019914523077576596631896090630431373843100224194586470433587321514990520368154516578960082959149781845538570613127518780911725641729219317425398782039831298314327038192576743622067022772791377736428734522902246560045991991367610274862459323540456001631765250336793193491155768118571771019229680310490756320748855530880117997221028713227540008539656346379309095905004433314379308152356168474841155587539890096829214205474710409754837903799431297971683808656007681052672058039429503699350774402013803279446749950346471106754089761231136365875201460181016413811538139969614021167546996961638437147908203568313177150368610631506500809646785139332765491169827269239709733743677148422820105765903687099464720466486109636900064833527132330698274512808394704416976264726144767336979855783603240228122978694625823334137707441052606478766593023886456396330291360530628397166231956676379394948311512804875077543852647708621838831340061180778909192393367943124445900011519705402103972552852640265988027471534257507590993384300061010842643425391238468752820306867806707835919760853205247287861919940000333789274662510437445146173509215621190722659521651825409524576958144315972161910308700575231272037592627631302171076355895079853004369599559396799293933104622214760376382504832312432028347333655129856680716457936768395486343545740331854126333501695637999145092607953956707482300703626099551657287502309903824315991238105650668708064087008359650153699234140216472392036588605444704280794712750149909128321738505725556698364393754579612236741876284369683565756206702415635579161281454952410126046200354457992990070666673164913356768530398153891535272107700108094330659431689402272968325184554946307513341968235260626387566609364928895767651146856794097852122479053262868016023603858965207082163981873014626654956763417363621391580862431777415117677572906772669818105246208202199094858989109641615082740746718136748695225062137612107391212531151193065484739380114896412713176625077543011970257039504102836464209166864014195065719757485432895260742467545518015898547734296973583815633870906024864425240734484947696050037323906579436696338774356470606425337582966235301195529971438134472529019338155440987861415122457533867568406195474552986979466776857579612999158437005639911494348835371698085415569507763551258343727972931116107538978866064384336112232537164838929839891661016783014679892710607426402702456577681008606442919608408197533556934397709352325820063348521288407828703633020049941514292989468945348420351861191113444628750055496903390315642356793617321986697466812149952103773033832855309847164169657586593254336920745165544917903186133799529765114895211448052683656163680502989475452724975410768795640041526372805632476268568770035560085640340863531100912624730884182694492065626182397734068273540751256949631042795466329171603889715129665396733026043102854462052536632090140935274483269455688608317584208405439918392614223916976073167266756313372267438262997896553120707658049763631891081725719999574759106879368499173412055353741399362606759187194644901249609651266409199832026986715313564045434377322143774255880734101858728036998300545637978310131520446441673166190191376016841269693851577130235990213805878232986430041295336103922375720563627585837683488615614194603273210673216386088676041972238240296863574804302486096279164524989176344209328087900963895753550564445435275962099039699496742844247565549054668765283114810760871115672356607259504820415777350912679835476801164433270170012750276020433761747721901097022968215884334591870911473231707685562433879917175871693831688032414577793357886727074770559549076424465169427635333414434777045256366549707494107086059112461875617722506505463956884448707279281752156664038668963658630298316727424224204576264000446361848461628468412172238984611904357193446840620657793087587488514732964408851170288679709201552949434210247790820238162996100079278832611126605773746321461293893232799978092675155648564624935620712659134308740309153840057887218587943789600116410439838894389866558802952460644767942535964261137015178349873093185935789793602597120646304921716983908505633053427678260200100990906083908231662277800565545429973234280135710304692678836214751524661531614300074494609106775302879764581594292886224483274541810624326186602774211062381298140710845163395728979005854199060977917284519268883806433599902008147661123828444039824833999803244238071172409394401071681539211515866879463008853581333907864210206522893929475359396423500770642522945934898141421529451426944644299937093357876067625364393346086687720671950682441928911191136078117092771287570571722187141120152494480263474988660634144473512783304538140746592117012267698662692588746036467613467390947175566278639991048887380602036926154466264947891592200248631134476447108758394836960545397865547568842443612235528150002548935585428996038144116419686040435715666907636715534682716601465582635165574172894203157053390912565531145234284587873702898275010160288175855061788313892214624543167640034382942418849869172319150260925734572287566235878714684015235289354588119702341673371199716308300855971899636077398047938499516951205068080217439118770659593492604482595567727596056218860602994443218638866931061705986563333681551091328875873086224062345980653151141434635006733503777213256679588884253073057241893677969101926566461835901277774676595510735557521013907055673214220293911081595382560860067393337813736421855073160425701526361285789842167325230818488918166754573593153740586927869775835115026268949765674781517820073850144816503374750348197486516623913691937652558851827400665165884600112094979137833880289136258211657243703971965557343449179707743848198127274622061029207780756205549742116514043063390295353420702397124966519078159905069537170240208107391797258196111456167965074567846926487777662993065096194921619901519838943688187533301129579859487430740812952602237576916199358985383897568495851937144554204131861001848517748270215617547460055537269240484387184753440912090040935706826299757807783029812511442567849163822032062964952243962656839637405907408315494320420986654834982946601765958322733263979590415319206717152732174499192142802761815150422381020166045082897593369036165847467066482221820291902993445884111516003228772164775060989135035815846708356663085953317533857303868553694429659670773301444631388061869851264461253756259383899974572004167383998270949008306621054989909262893847120284115666746468092218485922564029810159628734560374610325177651628790315743572017621371963337621942632188098798311428399622043523953544193078696093897876758053697806886667184102399461263890783871117823894238229023003691556627631302289147574779190762612742229671180052815721188444122842522724940731701817603606956320444139853798160769613160082054876145527720825688563939662365897588053379167892953823851382661292943653279736013975776691602187724114380215955629073635954720540825570828876836909333506933193064590383317155645101816578513318888820003579282799485356365633161487240597695075926054498872087490479113903745319674060564485361546297400814990577072558944114295687137059929084378679551450919718160090116822776698362385878143096314598522918308807981505353031445159342671820977328152349088196874994704481091187134114833479859227860432007863069744877814024347571154790357574741048690103661840950642401900153814074287572900805186773735635256128417559250418488727521373138265949106367381655158068711658189579348162775783203452348061554073075772635780121936577066614471219688935433607390827356457417143786871488543566480218131534675776107943909112319780200731539059762121244748456662792391278216321966022687173681844831778284557776242286658772276964851832454041349588677180775944296056447289108552803988706515758871190240210302595040941143332179986847290368070587770155037028743119238033221615943103056769067774227581899562694755136579622114534792823253968410214017505444621002608568457917900706445670339339017019514864654839682159358764448280463837989432796578328409822805936998551028634961448134771427134398736261774821956923786851441856894689689574361444187625962914771272192156580979941827361625633138903214326123801342882178333615425214763433382484076724607085081049795618191173052729119163427864703608934255903256263005893200254844778756592891436777693786116242530011630244212462917585545473386056250969811847722434047210093821932548947461576735739077989290523945280013772776715031532272631803002570482638584399795057337052818628982357956889639275972586262631523795798565907500384742913102094975519960970974955320322907190761702192464191764153986104626180753925203304731317924557444332774987195660008844473653629194196914831466231678224007612931173682648250822060894422901064736130655474023204328610881365303596749909639601996772347381283306678587878373670801512258914796917683030666433792093944232129304536630953977457472496586080711414211417759133775159743371959021160949939941861478041758040559740958561824722688075294773444959742293524649442848928329697902786914389765875219959020182628132695648234254040318055484641335000617876294629802092867508039176203876051133070600694728294455593347764446249644898243024160427840314418058053988786575659343542519881623431345947308102741202799727245253451402882264506261044592798985147791283420918988361554863828707796177684728966828957170869739815799772208245434326128853446565609946335156425576746534810531751095840529773723249117334443882179218125633065480084359251379309527490308279330383838887527634305725096933378543765043786206717558564009605712423864143465415251745569713599968640433480025680604580866616943274680963083164075318062113600992622335624779613472505482005691637184250851117933271380629362336328305012453597515165158652333659858569532918179788987105350241234505615317158280072021674589187850792292342387678156519140934087386038909209830100197648088607869361556278438709720807001672593991941771142270064997689869753107406085442018293324397331493134104754566582984248482262287803240496193408088433000320961910204710998081901541723966071859096372368640063501656036625656052122671008994028440661184759543294858755387893457129531367160023326683883542958155253180529807467836564048190797479202149299804428448695637714139515414420084848711137728690158381768015335508176448432342718366087810341210419117589766337293744582506716129293666616157399710667363308742044539508715623029252614250387960961275522984486157205540106700247614695043201189710880235018115817524399760402831624604351876726939031368472381036299896211508958485274517122161716622186273099973765393600879806654457228349088602083570597913722743151411959859505807058398948868929531960684318213066375813535152585752708068422528958136788638726214552587154087267237057733249355336774804488540620943306708174914466843564853514273958869821298903868037323284886631268425788153957360139897733557871478924558700372522611050659120421930157623782872014662299738981171698788302164051813907883936367720179678949792872375924494250752798111364202794102522066438895278606810354117232528855461820491364039034768239284679381438339406013505754498055579283140158754461674038105653110838114730387343649253530345759245171706102070384154967787381231671356755463641257422273671313394600322864038112583035505999334933845729992504324795614286192474195522840990326182007421251710973294882105310048681379272675679349830000189230137389548862121028267062254311033895084599117435901343859648277175069175500776661304300632996390339117690582413505519266633829964357185350439201851793972550791708184241734878902324012826753824088214800941821621317091809383675318808987968823890161756285345287605171148290459763894835136285593265718613685505149057335557065276892750146289266769508715100217242376873371563117899115690647459048854727750786643036256735214269640851040074497802003446050881400315240289863455625469185931955065494423277224114528456854470211914955079513797015599036142675915076512365238953326566917590464198102889220171960317862963725667723757475237871286460381522826380334169939172492373423682671049654857155773251177348184621847439502141004898594955593440139031546112166823829865773828937637199297223502312351887295347512656757644439667829249970498880967530650853853903686375432256513760044882102169098553262086438300593546142021204701903210646037458956358988939394810271669741084066129627995482551407883966859683307000586498529241898183317818624861370432812983807641019428381416218025138857581371674672128138950950635655843439865195496269459891513532101881629289883097089626809562581192043268976670854828562385907786692836245326042918139057439930783526253167784827294131143320903555207272624894185215752676885276416774023006272683574112645385252364379566691903010195804728206056126733463953294401823819034799958637722782845571047123127662599785747435598287636803538208756003223101058266353774205423895840938137599628262686256617666919278067838267901055146150211273640490551073175607006190997054073992560855164601518823075642893967224645109328694221558013342207119328615945840165968762785294377786559606996138917452867140508284144317578465368648917944219461786429086675968374087826455958413780838711528077829748175148277134247853382209490397277803238395491963054096158807321717138816287700291867694938438369415505990391552040354071531841928190588009254915755948082013669676934235758712317368141153561911728333453441513950939909417692225728420747253197403888410566849036652782077683174247414831871732128969170975731850615888741863958321137074363217983795229965529815746328977692386143433578227129322398754645572324846218435862661587585728320379042091507329053223240172451238003677362841961482562595879556563960786840270044097810159440771436834478082033063036918436972463951343654423883862851157112713753054950878168885291017126487129688377472621084566792769878951069804099931446638560051332110072030051809307756670552007597104591954169503958871784200944858607606079297501515989565604970091309737695047889519338416244753395157673195715221634297294124081321711725428551753782394446327508182220012685306161617471182954438340441374354433517294190926899244966545001402022236027694370843738914342592612414799681200808762230693282359519207960769188731887218793109485514091422471038499232325509280580817318830249453198742205476287283491470068337791009789328270887943693088654603681130627961267380627618160561801813956635421760207258824829868147533487725892890719989241307839798657664360906633025104440425954109427201647534353569476439117118308849881335277031461155328261959270134776938878274684116075002827733602220972766057240125946296367527336086114641815746492447074333380548231408409198316955768612675411158837809348235715580308655450688470572215303510546571386116174755894908970132096596934713532802229004524169049843890000960138057961001402317233138748656337625937889223971187646388163906317752943844614516393648557213100077461236773322723169460530703282342068121732516325452503592413175858164095508618905745336463663145201261229870914000136626402407363103389660531105148260148445966860572983785575372018775325801909563422482110245466802666709767547935712797931066456190228192809161899307578522893612600791847577901341517599470140143182017245592134988634753705427532869289433220077142437214782531756383778182971238887811095028483183081471954023619886791495304637983763736632585702177768286048854174666162973437834324544950807655948266025579763514665626637776076210148750656582778827292769112880262455038628799444239374526365679599522169450206009698923366836175063181572384768054182083735236765163492311281508842376746006403558889705302836870163937554503715931698703749473183630826323671933809615569375818811246495545743900001943260530945281087297201047183581210268433205778923815273605055953126689067764522958447872862620738434329533863393895784482070493283838350182504458861206471024685174295759714991076661513135677772163804132710792129193670531397115596686580154251137057937640860294891721372136677805345938461299009908208491687106631822174027068691033325179212327741557927863594195608422741364524418273093051185252096136852270631939442816975176664936266826495052075071700659240497199207289755041971896655130495794935827883094496526286833471877242948310463099772969281868573050217043148553927327752509384195998753219267018305332450339030112150663486074967246649525862759679435009913769245368198229190321410550437650080237367819032407778913477742807439350993787951513366970172057012635127959407580884341166907812884419045149763575665853116678915588750974740151241382936384093910951141156950179924619296142077548948412538313487654676912320327612006114489728519207953094567375507564797108886841358036857950484727450342953704608228180133172700164090166689310685328705402527782593505842589603711250494267946056571899831718213830889139640463809639483164146818044451828756371278410801569559921764677155845416263966891928339159827207285166865583898529135935053741143518894768044250289600669599172444493753124713612756306079102924597152064549668899372372981953929824900895690545252571862620572417696355366563339245039156904055305153129720748192130098196789497999490669425548110745179568207008855978101199236377411527956549477720823605944233504582515935021175494577615183989070205546075608181236630593034946078501136169541093825288114000004768779841360437585617321130329659096049486839147429277815383204286736416201841627417655934633685077158945956692987805229060529095085633089294387937689016089648815104406556396125126137433001248251261795454968323836503503881767425274972324809519992777641514389192053374937571368166673468101491999452163765311931464295015329751327589524892065573929721513715122465889787217593658539196153454333657025804666539198436608753342139290008076102934453418204043427168000466296289373059231716905818984407032719365472701874706880616521656909696740096522645266295468072243976517643428211643799814577996848649338247505215842125051886395419094166262835096964174566681901888096384949785880855800542814073062047465239047723759009883807199539564705018953202947388822321848938485736183902859647135893070100992036266260386964621307107069962270030524474111756151487849151469801038095134817149836246876629791838254358036121069146741775667375046497549151772899551931302512001172705809972998209582013759038569347151840882589408394400044691324545460399279631327150360107927074563695837501802847977337201170875652592371862607084437132600193589964822467863741779191649625162410892030272646771148315966368845933278051691288080730119136842037324237910845417261024970289641082129464175422844167954374034359673844956717398970921575185319284625928954797956285427000279337658952338575047971294178769581950366606232432362744059646600030789714222603458382449129687895646748920391409947228675504769242706380007952774265861112916759485597642196613740168267191556056986126395312804635839051819684368794940359115190969131374822597999012205497078953951555955840812291599960121669074218615009728402408204487817476304372275296808857997531629882065311326344272205581772883647785319602540095991473203893446543935408170565059876955553793113068986724564132257782249916742994238018528224186526121788913693423199770695173422993490683185470741499901614009544367504363242851191281635105434351134727031735836908290918791602674380510228145577631634612782798050950394322162011910556922852875670209974678363565262961937392352045073458855015276712405543387032737221426797521926628401233993719744690360127424735110750299138194306885237737075046552864469626846767713393687349375764155755728711594353787659583805576262646077059458275600640344119676935318077579072232238268790297531794690673140257597657184541691409368838938920759673575127138300200414184323258528224640587821164128573087700108587829192407133636426477914304775738225942538410173367446477196030090289162482340862200702203527859541907424456402862859995614934188546317576651402071722271767471174829941485677457234487335771121567515922385226443965866869261284723467327480292732045193767126364497573250999146386133724389678155814331081233968334043136266837232360069326019769640517973468601381886334943095557770293278303323835978416594374552034146490146684959362343488940546683227287096994809551514549076734262971022082286099749683883400564657484923388327962200117867600883023560374528523125433268876791075228517176272644418801227716804871292210963363080259256256598519182257948650475122209510215345831945750484742496344416132539615298955843663889614740339100103590969702561824773808173402298681746165104453736185014454102337065529776150771966126623692434723365259045023800884559785059113410895702098430209281242920034198672984876072843154423310599848812015915944834661893973347637820944202372594136124280302310846373270826326861204965636102690846744874871403550113900551531104613267597387018689715851182885889202072067011094436962213040688323477479981787759852195769333506550758015468053925425760954539313274293035873002552378472708896190419172999438311252799366397495055384977252065519939377997376179845344102972040491616716295606133594708290312903640830427729442569634572801548976398365557493764127963095278560500377836383092208257508628109626719787988924977296217425872804619345805179963809504077378576888674232369039956644848327564825772193065322391673512743420360237987645174414676009488503756207390268485971274609175143594231596378999843346366369430873383585580347346195979864856118073159643863252447125135758960544178922132800807690516703415640980050908049067856768027934864728767357120806807590634436578686554482194492657580847931968814223253237427104287044067315425189038173333768233587519455995248017888933227468484518337160325224457033849993759480213452601265108387800426529041182328090213144735016228842123247397934208658255365714247852933236043863717875305282286181785429305147380673170791376493436354186445097795657132206006776964194534800077998277217640647979300598616952937758084776438286277376171496314386220448460568961641958956653812394561670088928722316664399721397366076724168265246111319671722498368851898878604604456872253622513587527131161386556793575468758447912176666459706978923666948776228849567642694714795964333345297436843002798787285254175832814554058755631465565338397072711390812545711841834468026020173799097030449394190916883392468632309682066998745788884425941315692651396418660275322336758213989026441776941506106765790462197690042670425261336531000493822771590604853235085456265860432715057338734055322656398373481836837335394372231212616842071459136032790603181317416801147026147321021820920739968909100282401438282539511079772939974449364718559125417202469148251890958024234221596458807399843804562468713258544590033621741454574133927899026033269751535441120584007387118086598792488509419286938889562634686259995931232860542936327909218286326669209620820060323991307847827757852178461746512863799574946683784155570069951876142964097762984761713706321224946618168040297429350470190717470069381608435642358263016631653384730102656468450544131557844619995263050827758106689591817566868486792027696709267489313541571916592788306729224967679561912591018891232443764443952473244428305618295725086841096368633776440027843515180011439401637254084056525493361895863786349922166761146557064330498514742837733082362624165358954459659509774871923921061798523406729731079131203662049432673664376008210830383314271388162964331030198740948977174878290914947012357000253948470378078628354350915113697436645342989973602847231231830343774984787997061013998492128617828768028275691592876992503013941776133886579640227545595466797679135629675435088291768267382889019208885217291181192764206181302661954078227359684073668352384832512078417008972696804297394648228660850763163856885382305288523633164718786758879351253930832739716339860029193838175728043931665546485491875288306773793835369905619085097203060164655483389150142085150858575207774864589662750764512489831266992677811151555934005059279158722827627833994921969963229560451733320378026158296770750025742175067550479720992935637125626559932367415638910971602886155684608885361013509693149872911311579412641914003963126324245264012559106023655629151610190765553375283793045956663048818315973441191151035260301142159024252683221031084800188745059608627401095769559541015375399135863006355620363291300210928287228114881477006127218177226917492487836066192995554340124583419638087875372073214756285800310490823805429622065844116241303004087224239805999285801630575163897365405949260823377097616804633488812831564496883591677179133071811294769076424863765156499970271026155501884822939348990055266325064597400670401520247742967790109911541122148440342785483782131231024357767278987916916235818868228264073425539226467416246780362959369988369248661098950813851584627372920518661125292588645878497668836053739642852013680648740504139320306091045877819280815751573254180320400051778716902025013405518797644017440344474015344409597868515658790463784644743508998190803020264513693614908556018259345198764987382607456657408512197417195693791708479010576293635855693788876134401556024601714529493023430349423130021547824369994198602372074480376043284466917374422391469759896965720897258512668773651370747657759401306012860664600360645826134025234689463292780085902741342985846952631132218080579562334214223312028352794961301041860832553337321142018191948283594411814471844094605884660604105693321895873154237213529406418485686688724676512750898437177700428604221399986985746406484657557733210535496960038316655607867388791531685565163101401969028823401686812317615327203312607182373396804874636729058126036676906364551294990219595977058296868123372633355593197657618021908210085521264594675565178119974943389714215561750415922183141703088573930522631618548101752484507141894203032458428376996469985072908600637353261714989610380559756698490594954200319715042556621772179042708604869454600213020929792615940762302873483180283313889711985050153512411089599614811566133909133956681114823160232381326589202760646976971571692015409630055052403694626445962276508911349552029610126938287670599189610080868334565487145811412055804665174764252528291747197472855816467659423247921135357932005209020324942756186469837898714732935457872706256275396683811593141505697828410848552455362791945462726580183037349095736300597093268843089790131797372889312128832613777026183642416187696053843650126477497840371646670557666407977723755577654101604418923642531616850713437685048352411087405836260532503927216538051403146276834342200814673073333326273096766091122356288682656135911279001850824476938351696341727241813856063710475495054781377690457234925304567042376011428185863539524613862319574851492890096482647420438078496408185658643973029876393235126466804131351656585957862244885782495687928841353377450945751325066350990816794043720730408952440024287364962375649719755467811459138714713012445223497897887892988957875487106159059657641045612358437801911291230945380962515817795709966800759361865812154031841025675735863481875441971971102873635670323896899404463728625791652804763645831395730676026879499320797623328100775974601876927213323370114542389357494909766213318910196869147639740944716347052838477134436084843933029551974947337326930410518274984809307964204757360121998242422343741361942680637993211151782792053362633277392059064914815947468112560854180455224863032895835192341022540785215241923493554092587783313632634689457715450571107466483154834249772560237627949048835937423599469488140661911689930564704667641563106912068941708136931731372562272283489475269725617385985552693407208892047246628676437621023645104511060767789379843728108985576842371294981747207735467134287861667086152537255423304325294066606367062847395103656086278566187928042774016757075931248328790304880734411451681179032598600578048445162690398634140222705918928569356825570360712418300276209943152735091432395230797939813140860970775333462769912738521779212208898700369719104462062746920422724158863323789351025755727125764311995699678488222664405972045595005035019654092009033413201313870259300698411147728994896815858422986325164306564155760085071419304049780297051603421623952582899633619855221519939166045269086936920874440397602354733235116234593273550168977235286458962487060726757904010027415934260802450620642953047919270205800796743438726134933624956060304553877737242318637245454233162027789459803864957197718087717418711313875419910069667108942232981715838309647911184657935235101767429803493294768794673064741782554390904887677914052646311804829234272818311680845081265042213177811954015681025588328022828355526239338704863846555647892404202523949115213823694063841574230005143118029108543343327664792649873131150632483199864023645649308608011930652165505435680069071072670237078649748087391221732660048088234161866349970572403213972683846543892429116779061081359340212921942812384559986377826091360530819371079080673185619498574043507623601049081283725325412362624681206715139957280772440521162885184598300944170467307547755597619973986671596848740180485043470658163644391531420966994549447376684816347760939032911768387940843241034209073162183025346070646468119729481942704440728856234465177732679232411618590768737947734220978629721209066748510015717974691740744641279233345491055729850640671666031691940946117902083243544697107349739520394472078690382518635905483377401477758386606123137876565332798212447814057315989823849309924449881511424133330075768987178258406853449016314982191092257681078069734003107934041735350006223907277337906716104034157426324175870804600784525946682815534850208293910270722577788096271936176649620686328585367723212620560317267773168236097092666758882437800544190347723194345690398719266158910585515949660414317747246831019112339699956621010823553158107877177273492155894823053337779782543061922100707372245687176014124990797420722363516853629270249351182995629498696543101149790060896885464219029089024047551919046520246117231987774545077696196291251728041533512594139229702267570073626317614167559327457740955604843373268792478517823180359242226036274670876029486045775849536043842621047951109621631695824330608445837809450187107484966988324721666756704623102495943127885672642227488119541493188255796016876687387349471743111923750904467370432256238176064880025652801288277283212645834493234367006349153113310394501822975098153173317058777583359319720772902117982200326200179252576190671974876688118477028075370733194814708974084080923445856506582063714839113171187823055910721742196554285334302526340733468835300247595206264096786418375181182633896409267293341715061127309892566631932754341433421886505684684316642624399930422909333920819066320717515080699831283955259445625529013134210330392194526395395718397783277365630186238181572410560123181181230226776346365962714094889851143260406397523644492864365332546911904714072933757794491294827166109307604625749203618706869959979483263269977608089107325459367037415148926157802125467374365126751519530758840072721888717576447243376886834922930899256150879177763361330189968087207517485020750748572643356983685446020019992534186287554131380792055594313703733810365956966610806598978397364248354993984591521636184411712871523440743596743694368898765308225223859758807084005426695331540744672786999765687156446309695357537230047239163853144860883355482349961133966095234976362848779057651835195199558339923463064588532924738015076592679671827172059713962280008743618665221279601911892047788156662259296997331174860225596743678904493820617699348275683503368252849315498627863413454242631195085389728840217424076554787791450216473267996348737727321989254632883536810126410393308365955891569310490189121623802994798666606606530952081324754786546805376490725908056253690929542403196999282972115400799288303397628787630812402517714968343754503971858677198054761630237768641062901948934833608088261198716021958060956581098891041805511577066885066395325128423278414355003825150282006239328829433166709860958552039992049472470852178025794534182748750954731900870109167414053209241275043706700044855836855900475562860880858162078660011805029032035362435179203788853773832873177364387281658425566499202486849401773551848172444936857279752378858802689329111726604793222805024862021635006840039065106641349369741039354038106476472272919331393911647436618074957072486803993682716313738571976489352882035687466051415566873344931782949261789238100752937300887863735179392481874802593752950568600615509262301908604961544096025575875215758426687018033427019141711238321219867506525444824452043671423694674893833943440346709936077989070776095681072105179876748387717149644623659329699867793272169388645819456686297049163641747630091636120086119257319593976856948721511357865256519655103910505710395458965320992661162192236251256819080603593569221313995720293958105814170336306055325064077694630338648959024334996510463222007930153616937371329749478238298191882827851085963459096993927081811254742219501959290837628297917849978821463357154235916791848779145638704448636663583389755149608829058101979045305342360074536343187078449830882251933327383600497831615407778005913138068211980032303272724843866740224407786085431616108610051345810345902372169451423747770860243652989509686746984798155669861519605320146172921926640936293309697239368294469362975695436853889324388459522639025904432588542707162425617616951672464014816535400209106325178459907090968410044138897868290523731615689813778230395799852196659612396239822196117346929631023629855248404958700399351460837284759783350649616849233183291349111267976557649593835037507839888335340322856059098280186940476292126988053021473366916670777270402999246045209493754582451961911604558628997256088823475333742195874273917642464348845220205491359077059344556067273697479488925177387433687173382151659344893109688887734411685372487277712524008126145774500096924614986133558385934943840752598374175852742465115801369327095068083062453920353527955406388112005997919011405424027745299027215698509693899243816251792584004600018720681765031981095477350688605126547851865776760735286284791587483866109438305475921054284112373309507559027331765197903428527694980727515407897463557512612624958052769037701511948413012968804493231368426483284469555515119922064856396278122244709556056702623903669379929586950220004713037926902818200566762713668433532244529808812545781970108048401320845203879676250052665899523999255131137919884130725713747719710479469578606789465382951749994131245727767078673653639940393005820501103415149123904010455999537636562948598544552730238865428510836779560925397437382464393064227914899560238622469445538202131472653542722987591349429106767456719238817778819200478984221010682873833627079344679636727488578061921346307891763403242087097000349227212221263628535801847416440904467206413756115473719072143754390270236088591172984774884609768747678390839524859317697111717867301049166405804778117136934433417852097356441705427383805019833443214576016502795194954616492344101509465805012798337559870971150212079022867481684030513461686844390365055769983722735375252199343028830214062986554308382289878312650552149601636051434370831345644677194188279762615208886731179183459993295632547684727846412287122464430594753611765550583735414433385639401485793299862573779351860218730127722867503453752889075110650732731219342997660461777937783087835834737448236342089260193715634934944247639723076549741456241692219429217035999271599611333963800377386856251454619806575089654304812638256614224305823009275744796949263484679513759807888006008498324543789949199884369258644438042240358776250990233781290305751951580728935272967130932502655637922871932381477359171978087042541148810820117133011036065483486652676175736506697716374121715002864340853708354228121942622303422360445185568909862097195233360869195014974828321287485616846277224889400203263828663678341881852797424401436202160787255718362234671123501331130706200196980593076032524209536607747256811247114998669440450500114434011181895422217162278361334506363261395590788113050544270080739537746697291836812461196581536558132185339742667789127635334008322441088701750745234086080441778629184223588922454808022752358272174336268490282465792704984285934057523524330614849792187485548029890736039301319130927488793674787162203766350301159119398551803877773081776071106091952192908678984982681519372865062332196668016579949979582217718913248413324950017916206219307541809609936102865257930804277264748553657347203096447348169772490102004221682351286171133004298498991383837671260955572065996118542817043054370700674061909097377891174531021555583106991316227878682616696897215745894983734148683086715780432863202396115908886649446518189247644500422024871947305372162315954515326980844733148117600755182669456498358599583626687134823983321049123107146704450354565701315386514672765208650191143998325036904530890288574698493145556659179188967833004193405524144608578288932046439825134603711485495562686522011082356825555356280412564097848833839156959266848084589898091312627232433360575617969425744029689826997850500498370557184025507480806628711454545400877430053018639979521056443587454694857003086695811223833813527704657688681952863305450105853990455937613831811577331884100000867827693671440657822314048646113315519917574135871003303207162876680329750115969750244343029307504655907552999680827813933762160605322375681407113007717054477715378708345890537791611726240550015703090350858100145653902814009962786777648529767931757718227293152196347379999301706752663442994867135721411905057918692025681145237652710383915662501505415805169784295820719609132431462262156777194999338134889534434846053719976037827512090393586663795603307039353983083932279694511832904461634792793668123809704842226056287271267051303187075432582251055206719607599067759265591872734400621917678202132163804947312648882657784191892107583921582462896305630083729461551100409543783929156433135182202033871118020351801055468430802856973379535315086025802179298458956705991819913689564826007149341420490183147186907751737100905879126292432659848362029674383332986643195529354426273594390290325967487247070109629797291848555076320288462239579038239532929692179177652023874068256030455024017814405016958205905160933357001949614674535211829570800691423347309788466326818767096851990493243368330782835420869669639299047658181913760077660692027065983246486936015266310867511320966823425489332130886501628253375528919107310322956525187110084562722924178812093052450358547927225001326347875617845243053189496000609305444907713424558945108082834464071669011266274893828923969709865749953271564866836223487256061294878454124134953209914885344240084634474623676125888100262160524929653330468387931123540334810300551222612307842196886094946696175425822144544678474957770792037185836911071305113645287213162052879223585993474984877674275433913062233110772683524125888519858750948299044683541616806149431409905430469829298663136142975924086403049524443646668935185649033216584529087819454169263274094266656244473871561463304625365167905295764586203150601883619970919254047351261859837874389113311222062686373473020733802839423510386057206725742744089654456994289072190791040024700844013939789558743078722947216802057162206260322014405104475502392756820748734271990459381916631254011388459172609250394741157290087723094633345377204336326349233924882474538107599603771593415272848528941605218378689846192721553525950768648879174704470999529397112974289336063167450019195184180979285549824032495862604367993936621688782120120813178265084478278099120450694162253939545298602117103220690644190180428609277709415173986430436800874154607467172451892807078160481388339147714835312915285936823090008621578155283761998481314139066745998498124993900691504342242490792833570563586507883992914165563292256874805793154729496301073749699329802851521804633389603593343896307081332552018170060590792427099584815543154682647586921438894350725263605120839988128182136424215928419326787551924636991197459172400575568765366580776926050218920865669185578988298229604558272838715407321056183377379512173872424099875594663810341664800723424493522752676373065425156497044213611672492498498171017689695772285815000581659939456296580795048657662012129623160017444238474430512648339159194678238524985612589206043021571884390340379431885757303380468080879738089165876043046102270148657618336780308884409286521330111918326345345002940766187942590194822460396755695891609215429528856001566936125272630244678844278407554659302452613173372363093199159166781141428026435562516109117857123084719753304409022562937609923683747791566944374193362854928067090668050876155300061806712934896392766859472814810032425261695931435265494444973672100076948399353161038394835658370156644150356841031420995161326152047077130821437467434953595145410614174865282770494420808404875307902187984873025311930866247854114684102707794430463825364101215023885025184007790448481553696581875201675105251685071215637407298795828454964158535964698211913839522686812178958606576537065012228012284220664469138537400241667956872897673863115350313746213538461814655757049765663554850240098135635945524576058408350488548656443575495629805708177485313853386988696494926950113638319272743457298908808118168877717041894574164253947804363071458196239650512791295693966071828767572942594143996583653989729267861167313993923162955835886683785206962947188921723076292257537922754985251937307948598419534213462638202063333319994287548422333962802351874912970590558242308215175077927291209256097724899688516160153635944595188125600128878670050350624452058030738897797162418951136217955732363780604212920472179534709520479292477865950637246096038637952624244864247480357571290446443944681418254798941286364120684443571720354737152308264526703616094073736897579001728434083501550957977184089830234839842309823358722207849795666789430981829012878303590452927359839703546835933856003161372149162333696919857391678688837780874948730391858144605915309990281840220391391120546205669223086378704472773388089332438621157870071074873823367985870268342778956314814472048840790393078258101743572720858150542597166428998298876964702453880708292393711644368034759424283251620856915702120996908908423788535358804285486133865778369591915868978457865328986317731900401846295724151456716123168837410009012534606055206734789483268872839923625082701529289290360542546379000719205719974490320167488086411539229387763155774657780005975695430125965460094635033597125022283296327799881978170456843161036311529691525545652573836232650487360734773483241912066111778492193345063145164317699475256833436332274809141417716790803760307739169492977512247230120527154325686201905950976591826458468274010382585819604955075077114036727266271372401004959868291440813608634167099565076010468800112956481526026622983306288525913019582457272032198598697920847298582403995637807068398876074403481012834910337418093765778935748752763415561114468866559309339170531297524975870433254619577609718763412728226206516841313312869031758169546178754328028281275526360331865397806646415097642772104993762128189973298916570734129709566150965784707953029128131714062865838277752976614364076769165729423220477455103764094543354769162601242278349618580926602108059252039894660054830618380201428262576595551553010144898536566707698267781625542823710023636609516058111622065459571823427027101022688748411302272776859584293465196223164969066794181106705850618014530881031390912982674202559896930014526538505902541323830398503825607489922068473629148004907428838826179651254549287866372802794977658360625198946836312348276872128808559047246467168565777750630977386607628358664162796408747610732906687190602450948303393331321891754328892517925061106630366761225083544798082401799460841921411585779897425669741675014104330116160640689094183725227081599159340943812238789754044886090700786695816399377127890766629197297243254627634370737594011993163016862579349805261317525482137398267017337252077140448189531820611713673612215861960911139139054987051430142121877489900124907107556837305408374449952712402046081639500141237609626968622122820838546552301075506842667788106281796944564334702902206982632766790591473495122759724789178455807844208359134812633548301551186191558177236102829554066293164419659839576882213789365038161344463361497428374662820550369915624143192975773141656101543966966211026954305866919029488142649594684448161610622829515185952776453313111418664236040986467873050763622234913258087245880614110598156303450183411401888881155321907274888518823196941016960350938316670502500986939890362276422371868001782882455865980766717702146440668466455904027470924314575204135445107030441247173883978335297105048969839536647014770772708390030066464321490481796948160823240710980442879263131954830115225761011051496472785356707156074046315829238284198197719104556316840714123886645738063335441762851637073862920274153763963614788340197780332994739004499173298080151293786263093665919355376649939440630147978311230728343866271915721555829952224461745574556175061848840508313952019813841770292238669140803557806594530020550055498925590143193291680890217599937964295541093345025346882259617656529340407461942578793202812756551584021542815958534511489536588127716561354868937725240548828539850308912097432713683313335526447147190935257249810300621670229186607087312901450723354628325677741039717474355251286136669307849513169044713398887565021889242319084252700948483229826776506541299232058111717960627507993664463050739386574392450381362528525638120037444098787287622681702025612014675112648598231757462990277422028782510809125028578166030748219742874920439105199019581062188036994739355891820538481936371307578034689174951035172030246684412933541571519914291180068025947788096704298351516456203156265493058021128123623800659330799250598985376146630711308229506959031875343696611690351941788913434489626868940920301557962272262590687291261928789921684514108807304384543257094620756022565469335388048058445376092490790746160406318996423247792593209607118439757032072337334743738044692603930063432421349433928090449220038524367779988212791268756477773711770537792967697117734396989139071832509502244770154736309537922527762897050023485316205762334583308393171219891555728190450312843503047666824509560584489149222150375013716085979364092420145228015590153580066089934895411164096072400815352539389344378553191438195564699625182018303567221585597233240036564247616028184762739451818601486133690847204852876562181005698490323026892905876862211583905269743517536333359131832761901689153326263513565163717544650458575251186113210950303380691264329380381832637711907745976735832564402156081406505591524175981857186195497861219977513162676539093960380168501220114110029210214829615218934150281503161435216800242267859648209958998018820966621416073199139877452502297042440420624803819769117246303439633429968731169574892932172559556108181043531696255031406033047305172804591844916043592734736385452638983479683877903325727514134750780837862055842158841874078827000815129335882929805791572130008233001650769533320214808469441692315565489219301934626896017550618910098153074326707079706292610130362043606324771717432756685910733331866609687574868161965881703929257008948045082409706121393257978526762478970626650503289207598177657263027412305546210291140069806051700986816645230459017161993892494525796417739255312399598284790664677544811414857392972449178762007340992845064453811046385141861943611104934072135663190584905554224656082281575640784121063030243540462894721703166061603431157882387254525202304540470386957051005817357459838752207432726037766748588833882996049941815501982092012354131608240652701530700963277426561569201630069289238165960686098593688943376976415597484838620264110224235369990593772411097233441524219889104899804890945030820445222677289074934972866930812212560664904463134704059169840435753717621432371699813710880764405503270897965535096987092658615260816798780492584277066253728006009056621809678380348142259177862743316428068403146265847193478628479876266767283246272226799793094993170719655409881975001790504619296212165124059961844639252286481339188923915769444574686924498611695878973859142609828922617742587900239882541293602528093671587808185193836451259281780435359062826549478944447479834923188981937710797137521523184811804981638468759424585831048214158894977686836831777215744390431954510437843323519752130441796474405483634374363752036911898047133176806736999464984786625135470886516594638291850651799490777332151474820315993680123958454813930470117108434289458283111521604160512691324941694096327755554947848283349549317645186258663767916991488360533953944223092647938176453501020228627314941125524846198977390318874196867130569016615222728236121763163921566735097320667782298092491622629501305673393307613232837636507149452155076376977706770502176193777968890277414240115218843491897083719970512214875777839778930245498945990354132551006357276880703728589566764673613567692806875332410294917306179010578921631687404547403553593194697352530264886662098059935444608092670375692149272852163067444340495212448311513589994713455961372641263791867743617859555952321100840329453929640521153277381132097637903409347302246548446264005641587748265991511591989281830563359188052262672903215029853042920761216269709628329876306926884083279830163850100129922770955421170917716785645496702748894280655532269742374388567596151526900992718188415842287089452807517750736781962229870188447953957985704509415288883679189381148921259996688913427421265459951514808810230027201595961158754819833255079329199419426672615352546869063083700699350558681123949482374124307301888143225864224753233928784390662890368867876215851531744119534683650050709882787311354922645331242939000308336534458325764235536627844626021612351148702850459326332451627560159472272526673022352930812667780472909348412339445235330244104309890784558475880250982581633389310139532265561825684406895375776942955107657676269480189375295451675829951445315867975377034598552539484458420211728760907295313592093315710399013106869384782237840213391994551163321604520706258016120741564242113724090770856485902220842916663195673272130558249443079183368397657884588089480786786080395787045379517206625681873592989045111128884381478095797670119492440902009018500790252951576170235153684164172841738848243524822072335655585330872739043001395360649290502424455796640068527872455124765012126248300919602391409204358004066014220698717774189947168433977745208809861820673803787514089643229517803543388310584888364983230270718057633374150684282617832563262209682345028039556262045190515206832280945021673640061519988919847532278554705783752645819349702877059253919796317645137554396580782951089654657280966712908094139578602289977216071696680629823170919854208821746862608767196001060056298189526786526669553719879727489148325187943936171195220467944882130221995701648174041124728777736765212812932214870822333502413811185834288453479162481132910084403376646393302528594766672853524162232884378478761637776941609442286028243953023990696073798843583192379258921653278126123101002890788325964797240096905392709551473333329985598583908255923415168902892199479762707708495474297608644346598749472216011977161939876508053644480267656683708227128533954685811396980468507963587709700282066804172069203784550718949882152403139608231400061273365192977675493179365201616616323294403265990772795447236578441607698632116363796229269299843947244439826397604882788364374911315876153259053427487416283846053786335806103405733939301437280775710407526116623531913990139978941511725225767838472634502521949240913841581995152702759003483366892126536221249897222161919260013994337581190215292739114336555097929413916934693568808014986400146041532076587417407275897229793831157399444683208015696937394820900236403127891004180854422051379770649735396124870031886345298242366484639290330591330749351911148792123548164351644530073026751263974063103204998916907603340347959416887764351400268717997265307208048856965175031957016679530669168892786577045204109205589982063325182340302352755680975191916024758930970187562277099036303603335512262611896155352009658803813165001342272596945224377078942844126917927428570924964613042182577034294990991608095058144125967611884559916647256417935765577393720083437375937493266773505474736365130358937767362904971280016032404325567340203632413162196242514713160861925389332733082925683032391144230377054002941155341090984582006339467604327214722058757038818318803295797078535160543690521268806236992182823405413486998297683936118981350268098928279999433041454294010511216887778802364919969448969220576996611282839142542229774632129686575168365770490806851765606949361434382198599997467244396441502025592635913845831452184105667724552561224442044633230035721646003740831887642605428088782986584312216374338468619459902837338874311326587339778823547314101146368692102255801121957548786310806704430363916815252423997207627087071788558510665371673695218351791674353314653094749151197576072961589175667302541997643547679367445055013224629131332060496927008844489967393718687940453306065407082706356201075745171143349832176019582753006560422138127718103867784905273760807585621548380661029768295921611334338729358147139391726459604992009384311312133445678736768614932846027888688847680369190914939509358021123420303279429300917722195249894881522893044606831038644745277172686271932003209043248409327994037906933123601956994869179167768918792136597444457700402543376052308856034516210110508468875123337769342986574860369529204605133062860335957385270617707247397518670556802971099526707160183321903130663858462304424413277104910838765972701945007388977142140952069063263716140789538450159515283670160962496301478537514098945843789697577134772489236955298163582039727013162261559174376247224315825190713419260833773064802291853640757433473384473821710423320036308008259112088948625191721689386078859989521319246259900190037309230318013617290859246876439521003168873980363204137741296472845751956152550831322870579219074788839901135695260294796915728663955923504691613583233583611207001272109870062338076076232702731249325997619362686566767054775916648025222829992488260065081916517668602187337639865939670448385158346558099408223537309283816069821003041296804603641241863632991180352910073599947040148708021846951363906951370630853297149486433723455392444193479858314297065328499215307720935016636333370301847243541607560857482730015105374048863897152329783484570352555929973066334334081436746199999453412215717441290849292775916921173873549278144983354134130410567881403042585465154244987657388385305395551826807229370734278393173287250476922715783402613800241659262784746502790134854861199263090272993012546603005036567346085953367028645549831568386588809643353847555139578642895668627140683202370524014530116918477448521557228473402144709028948940779581312203070917468723711937226857131462125115120778308365867569889290872311807627751912217703669678112356910967810767685332763542326525663675441038370302701081820247181752753284030063861456200356429369822663895941696446919075068371504197994224363043707948257801991213474169765108933181060732598850056568471116765180640816693548850644776881680483747091926187602090398654214394234399152139854311739613489789216942075678723506083401326516285854019450681708868212044752766969194012787138979723942431923719861433363908797643115816849708497002664891027798466373701671872794535330193424126570960159648351720940537281689426476996479644636108480648113880370429101201802534066565186052322380543574540748518255977681341914370649432783265214780300001377982358038180232268045722854637493679402584555825013483661733235201391173001452324205036382494810005050998479048723005137573987313888166895731294084841524523613323275460470745093560022708152466282295592204074021660193169990988009376995388962781648193262607266684132248599903787972788936291283645943662433577743844949444268021522113402129134650568235365863688550373463627135612225935349020201921569534129455282272279983894537658250049599981767316751814729735386310191088953592990058218749334842942169711769547030619698283036907634808313389659585472659309849898491197411139647230713781451732222146998526764311787638809092325367288497972105199234367198918322312299690155086465237267286516340674988638886431378521379158992798777005589355141934162181354788876024458625520907583016467411503478216170515449657920092260192351553000463698701064401059615194644233125686961664708278501429046987476740852196934400544611578612509237892885708191568388038230544482673298690990204943813310195530770492572791872433542954487295463240229725440477013532845023401932509348487887358551466938668153471877994763514620134985748293620992562651215801147983823081589888345874007241964705306263261211351172306653387399704592051783642199587768824848066731286536737411147147965398497340354208677815955378157142838573438484652149186118830087348846161036864879627027705049685538223505956585455399215256153702121373450994202905105114937249917046918326332442809162978079362063379726139615271000472980328756031592849220605217291885937078910683198397574770745679270061929265664243001271154958396909616284431276431546998882022627078367907834126599443842170938458691107488845511813403053000418475533788573959212674291399243820227882817932009354151194851717478134664900973314705007235290523255529255513557558903223293452828718960399862876099137343129676022485649054930725162141494355726314635263901959194846077417870734716547132397664456792939361727464600572880835602872695586164980863762306426361432585986641518968550864268850396850952683241163122550504801927013564835782674060717484319919837529623876105498807177838229298852671650914561706949515090684971466015690107983027807072697075442618496717226715343525157224738980876947931922576593686965380223363597748454270448512467671803253945756270565247418446212890217361808238361800607886225235484271418815501952092230520309774848158443009554904086451136898835830282375969332341650301177661953828104364656950672603669750958350544526257955947719375769627345293972047699963441770168758053097900951066151746653997661739698707144171288315275491033563645529300350879454282058839331106216856216869720917834602943786550174270471305636251787257900003036552868031631807809842831280372124726635791017674507168027900448599001411959519072387427484949110949713089556421661852047848442906575729097496738643712965566723758327629095863459718520566425936381225692869580408228136286906284365433584070507481204519561718170265032599632122799617594955767014200420295118476824751227888456647456435952717577455413734958152404745184998874500701586675459022698819610398060243343241190592329396385039835681180128485607921959729689108743497596678259133110426715958542078208204894392745397859402199038229628616045609107659384307975346082506631241866916159813012837778331034913442234811017770660899735645388563689432368460384763850290456521754913000265130148598832590272321597249272425267702764914219514695683614220372291505197438140471579606236823928774701181832997208964467345113486920863847730276471884103927483539756844744686854354522213815021803629299028500945549055484511856072770637310762078551578105012043739866110364669218183967032969581931358085219192717398993152221234115269516903394448833243194790517028751599359930417592635898787383305040187149159764615335239614451023987371916049676805084732819936703947629855321572367211835950771268407515692061307715574560446685326432069213773853015135346390864271359660928633596676223868864284671173394673975074415417202938243415070345141399327656930094573733915334186689184473922737230653463901832429228095608029396246471944033766732912043873113541102514571276625543875933511318469828936661473033780556678659323097072942623798476052193297114975532525492096420004698034849425062490919064831559074523712390632554803366639649437367278192807244395130459460144019757371493847629295468682091914291803276509989756602865427170823927919557986537949272934419381229839477327293735352799151358643540353107557349629562021764712296216797527437250460590472121522868827013079328002698623498105781111888268850226161511323620424402609015919215372386805553080709165786577997456069171207136645782469003832142843857152968427722580734633681734268734684741461514829793796845220454485925372455403726072050854721385521863915337091819562324031641846845949444583895828378032224208816044949330786089483332788915553981015121721439250502224417249697772740260696150160882568902930575402690713020568964640483104853464090295315920464256259442302161164203782242097569441037470202362186780602217675505728656405732076846646737749329451550390938225387758232542516302283371994860662272987883900515950537290557355835025720354479479105955785042859481097335649448863075023684397176669204676968923968951417131380945747168008539874101699167198361674597623374188579967323838551738638861043832815666183911555120543189707611270025009989261173545251106852960680298150709331572592238344102773538676794282183243191892040443395172798742100582447101771974658914165506640823802868563208212643595644477798020999534588264696628534967252067430543145031338850268257187139500743335557901406563991860428337090076872673794091324298980128935554776342331065097351174907901673449535992180248848478665994306728357565294892516268202297357934796175720837329414130833747595122709283094472714919259428635739386498499361401054261787689434964460429732543759933517889756028722079118388652481586243815538772757735279002573710360173568834082425536615334367654904187757932601789227344798073051323464415574807138325056051303279062562186854805225672181796833882943008639292390319984688785273585556420197326467102299369490446662454003499187304759525181069018285414771447593937903942532167287032215412013104406780978510525331657287053020986597061723906970032260837490681748594350853632572325359457528691893325317762491265788436136440220770385073875853264335992634434539509370221828977533621669418753995278358512865782139263354639182910700737142406488346224587139851631735365856261571670423639199992103070154162703776009474430450417935033642994909775593806938505170662937759388152926408222567044529314057848489139588679397972808884973179624854146800744534599479099580106063561078754271536446009406022604512646889178870733100168479500448107027920669797592454191280062473223176319579250540922830984513987624354783684078401343204162585918264952108368238298040730062879511110242950284571219120031709145148749812789689445340671323939287342715232645819622434228736047175197627250419133744333651078802297930032770118295254955137582534142305286962394997977916741246424145561730167401386718803717071911908497465361828950534491005979180292984632120040471625699043008411711362398516617813353563933999738160493340878400126064024866980369375164044622085607007853011446417537429556189397458004628672900843785061042575066514410352236902327056405899243070467081606160436382120594069394444522475447240318053251248329038630719196224844410500276465739159491208601395114102724929376591829086810758456188553752749640469958295761379929882015876839904696071943537022431120859100697790650540187943452307683325493544807255412762782341178536932484977529153740242949739743867906487770517455441859267675958516028114919313394658254181935189370104718183878577451364571820580221073523322935862851378699718559814273807892336065079154921954724462253359102042136215584111948226907992189211234003345676394521507342421990984056210575815790880488270661856259578051627564994612430454881499174235647596428998262581230264443833236487280406554601581709847496877240039098855125274746103066319941172597021983801445214653020398108343098725825151679226779675969794499467684350049592901210957490125768061628665958204583265869509552898737129885501702390738423719587505812229302021623672921215703904087619402341525179423352216261029532870330027369342241338571494943545828350865489351917913189595051432167792912207989571496618107326157340050669964668546027717173764489352727553872282162298774716713684216472379072884651651531920929385231157469675451561959068374867116198765562627754596778660083305817027803967164582337284106112583725193401591336346005265473856743059108800799193456931896243108071005442228785646989613652290123562290626702448879761170234667527500906526738828241031139119620828056553190852370330749454074503200374209839925228925066898198910177002844254779912885538983973500130824052220873353494103883924364020876250406719016782277677924974839391135649493341586051742836762166433556135167289983119389938305596990361311319535398500903794364360686026901274481391469801392620423905728797553727274651997133260895399330119275951918102808478373303794507544516477150166494548922084027538568490346596606351635795474937057862267254476666165107713842129830714237942511779969666961141411343464449704969027341666485165331762832670770645625769195592158980239120271643754230996067070621770962083469479120989541210259255738205415815038222192257494623266882074976412060622859342749502855505830993096576889837012716267226664119130064363271425035692527726043214160066594628745772256614869137899023828339924821663013479505670124077021469628108733022260194579390621584162850127934235621526508317205388386061031480945651502805143059597376666611403187527578944113064742814702995571576463285521399562189332937403339648710230840393126986435052870903262457699411492974112926834988614406251063197944198330113176460317866569876801563246984089272756223796579901523163179175903182466850030727295177772020093179166078846389495227074091945219654740747439783118742473196871181223530915010390692972247721406663669561123994940256233971794700937265744830678171355174419615935135997615198682195120687955640192474837274876163189552269489631853872789442399895712496131295574105680282731713141982094061853373122256508468321146509837471048430198603857783224289140547516675740171352131190279044903848192277020686437732431295796193844632113613726162611934209372755774529816943170095953293089885578293605485725700385397062670687052603827528056288471754671866467454303261532182633688484172762668204122768466430443107979155374126147435295534910769419818347948794323457679564508736057639747242628932901625800979732159286830111538107182843083582420112894178798552644597597120241021769169037346264348994483748787253511065414115030254783557594704600853312226362961438341075460465540450976526526424870954909927774906551638373548181576638668501668585424770702575677425618723089723906294026353921761848884477784476013772600668496337623568408253518717590457376897313450639443180811277518496590323456780336341209076514238055095845573750686662776849290728811644415791048363295697695911576639039444742933964742021226552860564197335310111142687203382319523357893307185422065629345586372374687694010972560230339535182727455002689879663942864493389891936027543743978487388543131001913490532915504523584157258965457738205994525797076273503439584887269330199659765238798102510117816111166753099739714719389556833116213335554276122008136899060885941668573812277927633458990091498781112828625616991737173753464914877373042796864403232934763558664870159952581466253454349012056414378445859060593140644267050280880309884520040009200711763663947096526732537886531903796812510014111678170208803955102420970270336684488180545834852692129842897089758609862545276232215952520644002395318035777950935336253623601504867042276502459691934111033933034164126492827220037577737049925206930809299844994630999278267733140981369507574237991144141442139141565657491084364395060188872501472955520367449195098910953570295090396785003230273763382826750116195923322476599290955515416255367495254629706587621786473975015619346689129971202709859076318340362844031347359291091879502415084183448052372442685382345004604938310996049464253326353485201353229353716435649063209300935587252057054089983345074844530403264122028379710985555954242567111287566304330943867521604648688222480744872274942555044520589960241747350519738080955815999960656404939663726400719224719996682807768412348847227746329264743226751172446948845246817355374657496347757370018042837936679245479437103106170251570426931173729990869978150703599450205871887424788529338530177947516388314112128373535922355491499762771766416058784823427340976809762288699573215738199674174525713930826628620447382887373155974429247593475050015789040041955348787798054093156841100043954278162256109895313337725892193201081577258928677763810629067998276736683994085928595829290031255911164110988606074579328485055757622170233695821063447578510126963372117385197437472247037339979258497001032880319061617261316778049331169740472869633883382888612231935816564097471108681533852260202748478029032572141037673795798699419504046707036417071567216922562893984249643620546690352816753399065956116893054242215821273960069275315816836182727610490610345219008648889705320075675166584675834318000662941746056509902821231727668625262013331860843866901572623525456927972154555447718408188023981175195447984228619574770248384856348670255294590911216686401099875308837843486567031626927295529365547978275081787220724802110978216022255929084674212858879859365348399426575111199766640645250413974374984171635120795464371687841304684047687149243561036583901660270862131055915576443014250704627277984564311175303119828360137363184240570087661066146949479341230267326633226528957090085440055942978377686636180730534901720235684781428374599443947623109729590549745063713359052722673249399748414903329534525288774294098222383148215816259867175341420421263592672318334416689725380385494648623059076639630661279230020110776310727466505712879887574460956762059707612372876157225656268200053302806800901477936482761148676309825732138499774756381794839735197299553362354893928741135381975267499401167630054081374427707851129684819340069316413234511182577607369631798312078446759677605273174486704210996157727982245200111038944810890744617312235939168681086033271986889258289098938480130431253771299356229766365418645125289999473083168753006262107535890419772813691073800115239739887158432684329271055621137653823155104731864815236321301310379772960621172269712208158057109774810296293002761609668604728064751183001775955190303610397678202999592733992020460108371915729906543924573066903453551698077159353068164162438305845670432978607764454331149566891527764204386469665980361103511991791900719808071512291614795880541734509476655807223166658862218587560158836557876175307525874918489499882510820440242186691189497093361674199621763993524311838610462790139163761865806969868098369223339423859112982119373513024236357817624611544569085917000867419114492057690526140738338967955560796443537953908854154227424883204799666342940848459812769983080183183413916399129481795896733994450029566874552382175069725436682247992652998795439061468034000591727888107419508532725615370960241393082333224492244839888825243542769363000818426681259266596574304152671334635737776519133060460595036308391165198128245718144406411102032172707065078733738482486297647843807566507223539511911646673640522601736654167201897820420029443654670293055273943356676979939184564189669479897821294999765645841893655841884263026037395363271069419845392585996249734785162975005792699372854573343220742049606887579330518963108695695305252971857692622918821788955569363478089907342211036998684415551723887953500781943695188948728152872953746880594652363844158292263838999287801162994482290219562787330942242218728719979791948775651514610931571072500706021236398334322309164632909566150811690278078757301409306997686394523879711752982066082213698236389350774327094835646513043758588285742859480895873228694734985308027508512089844066078076764167262043591726758974998806786204170449534989038806813194836457601811930158026164619225592116977340650257738565499608185697077998177795749586604668609558298812093108969234982565578207638216461840648228870340684448268967443550756459709285034570367452172966388074333643411787864068677641883333028267469799609548850054586579568446473353355886378292523954390186863358145180320090456646994184017315475361111694051817152364088070875968660621090849722927668362294231966137287916303123921689449595781303152614528951345972916501363855794286101385015343122466435722931513077219170849346251131594135973095605637684044216046346047242976784763964822991596198007013420254074134869039060974595894976281400211713214897665543492006946373196680901909016638168902420583601049415423070796982360747322884840581474126397016675339657199530108180526291751022753411287109669136754198669868831508542956731744763766128701609598447877887166195850056815319354862747230138649637107862949647565274606242571622369720862783475494439221672085413843380178792483039743888639920520592782724334853103247292946096111438839871978627194784211362388613895821454508813925611798289327194016129974000513809355339808137395944467021396154881061808302291920873429374084802588183744388689900656739874220247626061938708855631710009859946231422662827005485829115504388973382234641394800481064694746491496496761676966714446089681902186409188694164056019469066087502877428954459322107064750330671478341472010072278861651026479120167792128353402077871753627550492233170373441697522681355591753534720006959958655403159930141424613386304622307722760191271948098269913223028681428610138006604283548386849263525470700257143988633430339744084402710157975185113544587825982346146362113257783989071505695130680874713585485447798524164983054658802497940753296477350428511362601425084298481918173574175609585269331691541193772358780334146467331303054108691794415830721812090333239246067134926574884273957618696220804794968931910749372727434932821661485976540346540568294124787880281463386374971649749701756792032825181690648801764164332022197299874664007829243146628238365362622346030335453564374849637920281803931427242326458946193007257485047396644032763697578229963496246354503286709682570630363919062088925989917808551768706720708954861438411541225959157794604437328356733829236590131165606517327814293366765360194522131094263892124046446245459517747608685034838450496076171359355720574317518911252717459717579246143328296308682846734597815469981827715021528784446261260319919598943156599953311805028691125626496741951709678156459511570119459473088931127535752565620895442213764254704078969316980732430467779928373777135756574527887728742494839148349728691557357824259405348161866287769018622935574579389639255848055638530207223753104687781414495695166395005748922892768452969295500346508526554154016192929310586658453959516872614267872890613227393624726992433747397062078906842938450786785847787255340576633878411531974678439871879756973994037483167483465313972101057516566407554240975653064970380440425072360151689628220434549425126085457997924525394071697931400256976120779128427638136300933916122398375122056646386768918030870540780586761705781333505011181714745779966817760489451656983264357743097588799677550214322811461787296516080974459261276219851832551945386828586407763000032545633445107938840601287557711090946730242106799279863110608856475036469204856843404005209877010525726073703080296251266517221507550523785568888475770306693536608870861857511692747572565351812905437118586252227119010620640523241987163343909107338215269013326021862002749450301209756247188368449328555869234105689047073693259291831693930211665853602182158339131419289143578324648812396859682141495013808564034602612656286532016632731325006033107122003317115387305077686016707131120743881224454798387308337807663378456020959752535237749690133583942438241462429910338778636879398897616085599426052123006377030538894497830588998900190798141712673266551665485643574798734869166249584080460787733084228411711766164943547838255789183834265349883604762123221599515738587344585191997334602361887602588645531413615936141544644197425267793111442948471782096913615594984091318117870367145010660769303205881777166187106098617719033342243005613133153503546596660729970153861791610979137456118910739364116316685240409281147947956852865849551906370320277046634931433560728077372086261229400874190868047447150429033292107931987066685739614921645657740178069907950834348783881689336274024492152635923220310050982075749907868884827834089220563712272824510233252961001702569449298927777966638442567615779969126453087452458062111383527782716648086963140090518859899814863847066768408417971857898265369416833058304072425876526019203220385636425830043989852462908262510222697196451186393421085242757552680689923918947431494779111795583786675696958565656757338355216908508272907402422102614838207290662628204275008965560370480670894902626650148036950103739769849226571867396011334939976309820434899261077906678098755262076819593146751227454221579338108544259091241021655871993124827032107373413323231718606565658033702260652794788281242534900070092729062361850693160468155864158418080800431423558537643862940124069161168367422407207660690293201978338131890468215022581281333414250402479086745258301951437977506664310588329963756233286396382722181534952531938565196512872211618339068448822636781091887218003253759776237314508537933681326239533735204058273312924299272928543563106710490902122031530011322648986535755230161743121590688200913571003747942732636625536473161788289235688264818685668640877049573531447377200150080963176197101946569819956727944935625036727149593829197562709054021265096466580624754646961519581941395248140485272535606140901695882947006612608869064998449747432896536610957972628389704686359152237390761473002913518765204993970846778620282161585303763572408852494905488699310698870094674069606766681500037058237986163266672543297208445071233738941381466423832844719389595154529183193592225660262864635488308384764891917214675882808303995651469764633889766721902060881169516373368455760218549289498634200257128675568091310450972580610108734722727949283822352911312041531787924717934938915413741684978509135116891897428094579150149097615868634087624353099797339961873617162447601801246117451805214528073361691575971390518394281519653125241503495377036224751210836283428578905060078319704096382232380091245146114760288568618042072733744981203906201194522176410451662310681259584658364437544514426527051948955281249169859061429715346975673794475396341986368469095879309260154271152871890901437968589308680424377188249812061411179920707094785158778116224564773392483454810395945773053345707080802359266527890756850975185253095163637837801896621437978670937295654968661920868927788321967374813640161418105634022565021558568947067786008659445495214309702084091762562227951631063400264295097455513406062725317937666662092411757771667074989878237905705288958015675583390219762314948818362815086564963916576492239853057446923043520739605360142068467283701078390609016785081576605853864493170817182369615330713360769687206253524410044876259145642051359564559091946494964741112630668460256370118473456192093782596818930441289286993461805971176044968777774051402838228282281201668453162629955534821697516823521938088592996408949479526458818671812405970203345759494547143212013920262563145420092455105630981347427081392613432266018235766803803341818475735359501311081515248317933111751748398713200153956077154030430107784942358905016864820682304172688544005970688114144646511525888635376468983857122269244770966229153409452464344936334051424900531383992117985093962034304688989604213733359845705268443111045348271483333205204876892138275142971627274217482887524767482399862632404922025451388682593592962782432124602897524396552379044141670960518136636170114068684396604669774692396756617400210703502833228478517326343121364917412814306118770099004366520183359454423371583584914376771613424356464689633105576645583839729343230110601583667642738412436357185525877046520300913655157597564559824047486715091038746898328910929131839314686400612694818071835011666075923302116688648849047396351474882411526713603871220507362804797160907805534930223252610421612532298600446833753212108578874331736683473681300982302922582632201539325876953167694028952782762766371883841710158163822753215624450640012584959882028399851176134923159723035516879743667825011491257040144543151154942072693202016349010259514464910851177550013117414770621558228142068343919325580436995362735241195941765416255776419451873018314575099221668340706149968715931809342715351677327498622148740612020271780575361369768370409344634635179407801606106458826953315715843961027226274444586636800809619302259274733936382559735463805144932006653667578615966198248795989893855292191712615797995908442088032054471568251658455900153481298817272076904117654034610582784520825728604988998043450805414488350319609544403849912577919128347311331826202618825217565219329938266635576553118953570110311414860948494598616619668132766018125222089266557550602838839711021950237618190661047612012351746851447272980915331872067250723885887377667652105517931812748501937836138110956212327596308167254324992146965397319868399709492866952950023184542419098974009929410207531943156045253408155238596910653330848522098443025854065413898206993722986067914622547004593048008553156452760733348323381824206229159709443192228982576843089416036666398680583562177886014414312222255365695979751013797760660429388432655899448463299101417139602972712093252833982602603084894718365962164535908616727797936393106196522659600001286456249688435241833246372186424953810971891414327372783800743169994413531297029173836543304445772081751758672050235361915575544197228006007049651534500287402708544875599166601873240038101518158047329600441076564542724563489995151660452810869824812532791058700403025650861315498669702098886684374774833770800331141595818229581367653009808512648668168488255101414070725403137660860286999053380532718201232892707024625530356102354586080032354200327180513552564395290927329022237171344494784576598100395009518788466215385420295900724586858065899186780771172850048073117910487353649800730411990380894701876537782805701945044656608874019218352799977896838667872373717858351284961801336394965199022521974450158255842036227325411103614754889031609468338827647145812137286969847161298466890659412766313560307190027548071753272324770330430779180211530130733277321832353797630775727605383706988744590930908003857304277833461869188884211259055462403881434387981701470605811608697815378491157459033303886807866734615995023619935450855693810272648110202594610054741444386973891234028040980580160576031759085320787983500310612966972662737726017423354302957235529378813117569119495031725111616310267653936033331002517989845907801660894243095565705510630032534399845974150178236631615011140569484038838199558656986829273402754102509198449025667381345966060483860160854138241996916348538032056919103467198907530861238809474540450533612912378004324397589415556581329567191359807203142560948470953022877788271794780009157854706428353037640923539379674477833263155279931610973339656756927393991488879265587749476429091605234705508575131639728012721239271676265889588228290317126571300353507502271858722066305127966888897826758128758733479711206199066475591004061185369112089731919245136753919105633208483814937950499147691806810491102527211287077774699065915132534029552547723543056772467055413031520569131362818690132373556032357372493551902232859761062317474812399360573419420286433617193560333877848939193479598080771914714688458122952444996340549096534765740760271525116980249606163815532171208786549118230100528685361212303946284941910115003390349468657038592439027757746112878974631866554041636959487587111471613871893240048305410765019388539260709733331156857339216024901302364532325470689385278063845742414332201870855317370442934180471086142587749185393838520058320396554297409548189062706339248202642726482078896598248795140019931711511275086944723938130537549222113759591511238816972402072674537252879831788467569707712326231013439954954380051034094829680927523476438125704930633359467392562585739272619561379833451115081556800110457426541445557264480767833913902180606539119063844286413295832305096392006091874019179211974538177899748487548141984196379109360585132023916634343565702609998087476003182115554841576639792081223254997654107029351130079910771121650238801351673535439318539361658424052201920291826234845143568420903848987549907630654676846200004330699702767703782839382414921316568195885210927544516928784311817147639679656672966901105409166885469376429956656895926170900024217285756426468723291933613908107170231533759802458228142638152211646349036550563333552049188685259611394771039464012663916147549637737450807437128266781601256008788622067127899981509143569154189907015118324091047514467928942250279069965184202086466117789220773966159404131513212790199691762198754201497009666087489858750869899177941328664635413398261978918377252313739198379013134802682953450140321990798123397809787976480842294007935344077257528092712848783853527010561307135933470308117522859416181159912399669189807740155817281761631688622008506329498604334444137650744041605893808471707440339496242933350556878152964920159840742931091319507704792438371017094978411968689888511282169546508206639669751575322908428258992827149715363601540713906696238492364181477323218981081874317673046880172590606296331075828896768012268364473789446691172639888991585587269355402562148570796690686381948776662653738516784593580712444896977862252642503373817372190344362476190143480045502609565038267978067622124647682409410557339049097899892584989428768487319620082805707004311969459779943340285358987826177630313649879306213864638269097789768197997756165644113599423474972972172578949463609623034063776003771758896033826901998846115850917137394119510221430939896741192974378554648715362199083321221979056975459624063051048617455933094624132700378886325523806597051730818938401218366014466170193450724694910469429188635180516267985951972954075170504280967492927729377557773453159741213893986035759851714927500587713386879821864153400805440897510745764745132994724078553846626354452244554696325063652751499691501531625814602386261506517849154941419955641117139369765942549887577475449964667079915303108613168311147288832588100297954399009390103604462850091547131389045657500695722491557221421387479447104513575517075733085447872094378562557092385656881273181578186321234134704260470372430269907632997798806843220133281167306085584890436014321434086851934389012400752933101657746693704194233151059500528141171768726394340798265913062683803022428361098097356906645874112643095548026951078498668200517115655595633786816815973735014698267632742122804758688664522754646223723964754460877744734949557768474241561734758110363788422435874281294114035329884352121932280018728434471341828586611253795721063474076292121939649509171568751734025325053180680968692690470790916334728873215829637463477836297659068470465694031978931134620917993913197680296759284336045537442383913477865159329181135123242510655699298613100985914821842895698322123527689008530571372928056127587528520967693633994016487196337417893512407640519180630224179087334373975435283255280917568466641125796305881349595690578194560881916086252419102335198364111580237201549258938979597199340008571592543718414909978303721109897798665531713436023905098665429161936899242263640754858183976679826331908136352601944042042177144995289656944852426157066666689317211202243348782121060911375145318109827045668273870304277738113281048690145734589879364445059559426647545383037226070773540018221666743751847428934318270631224532127288921481298561478161973023047095326788383815834691062061855718996061921355551482565040493842073586110123964851377211132770725173584795328041742512949536224597956614119976448977822698327955086902546758808640355998964137052172330952004655950584526249683600662862829434255967294444028153963457845156701467807055345518927350715556489650809848134987095055385293613682055928588175333474406449508271405805854349068839017930495429919682191967511202660388616787858196817389597851713617327272268845429245525309780596522557085110087259546883858598057950520547473132397699007108059705973623662022760918237136362510919427316817164173039068433990900029770993522854708483618425246488372868546053733911755626144303432737184995594325365865202312516131282830334752454960572273154945508637514376262597373002957255847129595266945249376485111111090085613186203122783644390587137852897997806211144974862874724108256149080209916477993050816595049856583000514266150295962214078820441797941764243884069826990002437332390944842034453311373661748199793616192271851889320194163288593263448107909686851170300055202852565610262624010554572605172235847114458005154998854431323836662100716276247937540891561364651223234960941493387674275881251099958699325623114857289541766678861839365349506428195886208557506847999018172159059029469835437838217012957051384669267001259517809910864549224077443939560032798762773502428559416421789270607795216482107402882942682975388489880924337781790067085262941634714472261011020964588477786036862201303435971419778372044701394100802869448715183829121167802518445171750288830169019409443349420110196328887563062727780818502581408952484945945923660675493678639802153071972679617330671861946071486436674579092975005027557500961896803196107644604119167958364020612248304504433084813019790976442943624329125129342634234003824778068036009063487833105016809853290476314917815600238881073134287056852567111707017903438273181669748358216868177530273794086774670695416054949680018181511449768922326884432275003229155237112091003356324083575880427578817818302039974896794344155402480263624087696307905541732021961065458047869924547948073143860451665396784696175773628890901100546048286808982060121463146874681724013283896086548058154744461942995469866212842016714332404408757814353174597914382016677351504547609595295370125886137315094346669432780761524265822013197510075210320946151704981451457186048322410252178195099063916427320408944106480547398000721828723677792804255947142195232760196848435849747998652419214626210511540631283795807447858864642737744634269058087048848841230214692968964330705498081032755642789390709830965457634339528497919528277304199783319933072610381368877600577354210235971406642064218281016855604278996569955776521207244224622614249707701473230431308426274566531712164032787288365714536378058645799560443999542146816512945108751629192685557980966830146702357500885433410409336952462550537582354316948689240100248384268235670141712354769209199453209717267369741364097878990222446393349137846837422399739322182400057235108680763567921995043516386817268071774669170354810659827731618874720325032889098234057622040143678486744323004133250679708799141698680628518641653777390340917383629259831894735278513077063611893635382089109529260550512902036922073981392180741290986300908427775863031053848127864065122309848194294261753894884234230903784024169747234751990800315622197174320675219794821068034435803267068961369792055936828360316867545859460367025952817782992476659499404386343051699654173139723346399703968885923613803565366190212456000760883528701230213206278702741674525300761376996133265081498665740499752756521129365949656122301821413658032817227422502498389982865681783842149411095614934239887262402744160975633344463415869221923512911962983143322571476827007881825129726829068481411204992833024710535901399563967819804150570801602092860913198952261227090950296991103183776095474804421218431185775083149587418404369698609915316354044679231066758755477371771748257967521180935194153272791933271977732723997970509285066150774686715098843359951617452299168597235141138939916635838651051925057946784478972457667849592834081576803705064081198496624011470126977138433347170590909264394762625994628524088452560515696450254180866425917383701643163038167176829547116873878094406140135506429986351872414066473413486611329245912180710540455245414270551532444987944529567727222324444429008711603479937161156056122562567528717400328442638469896142215809436559979442900493988549420101350763642808607549234122195076075254438353245041654175744768703790453266184046223312576732145416694200996506949890418812803518205991768154129220174460212511970214148760848051582562267696869092638022806404348381318560457031425122715974891392319726638109588026178496652605828692499204142211610629514276136872167369566157951536801497269591390641736967589517372824940128730755777775000361969575250710822769763485175482994576818244409112184785419268694425203833042397097760123050040320502280430345445460018949535126609832963355940769663711271157605828557949200205728094643075653818794441858926709391149937510674746860473038890495857216755397842478400133724140386606984365277275855504334463146908613762531488731186223985764784616875875692417991632488544619042845742488118141198236837596173497724490536061618206026457472252661839664421771894727449165625051934068529176081733537868469613536747980003725004905505574425347687493790322496221485714002468262141026605353835640212939255118181322585694490713183239498082334347941354521585495170082145432788681267719439321550909603158186728756956100735462044550861864577126914068640385364463950610700909159519296131496682598239911186029557805922156785696641289156237294811944336048515896023932802990732647287440092868501298625018333269795968608042778552984858127484341014616907151570118121699690781206081080042052221026222290880296826058613098535183649936668585678599804678820211868755379829997116668466429585340994133998047646691420970822163153537429517097214503436246212906702439979626700959197220843351205358041193459323835860472921858337601177468408078065800880353200868617538927515083673468239111219415550831010816068003294735575195983577356210058569531642126434067888484898606429746131980276185275423284105605889966567719308098601463440744865927054839617170103680171593187806924376086442074711806829983161825959921895825481484181481912456521775174797828203423283296138432348122735851236022925899547276174238160082242318206842426333682128064227926212807035328743242133444816336396962432956859048438949558356867350769924324341438096638948830308411376095538369414979442640882069959304256155587766429284750989441817996189549187218891230755699371292757827201366393875243344569787059621234243130151799899474854770850488664356623967607699197500550036066712857507259907377717643566695419300206124852321710229947691192759933698332870063530929707947049356226551946049548505993304140302295136275103540680978544275046111910744185751890101997824836350581201466437905437625903842766001265755757874257301601759639080346369273433628813248589129706997261369304098606144802167517288389806053428555167354878244056558146935569372710775106845377334102001486595305037034738876882914895196242627988188315362871816272671297327214627927068011036675326656661241779178609994337647927646638941131885333530338039907420581801146789721960239623372665887344120972077291270986093009736367092003512933917103391019874613509735042691717935120209676373621461692808071019738218156728817335766075943732510697329773342081072080769376096519258003920278490290647260931292971097261554035297376113251646544366925415485113804570902957897864006950854079815411091614463576798359561678289910480373354203030471150574643629300208415592164027726889336084011605646012237650682780813736596750219176127539891895259410906674959937603484357651843842695024481844842426391831939403414841641881369748277075613689258586703468095669024579949655578404412281618022364930787339217158778808111887595323733393255855263138629362154006100890238270799833378382517837455498912228629899221294384984937578159372137190641752111560438869084915670876287568954912609701391522958969539378270479556632969767646183504988109968652569846346864429884916715469274985636575371814587681023228852362329992952976685758631284051878195229068568142301182175062000577294077554363472296547703615492431917825077285499696779178695963402517846643681890712182744677263612605588059045431858073697872959340004184631022102518157751668830313202352157593379193720884295449147759199288739911866135850406687080809108943894265911274326473347022679984933549665564705205677709743864581949707344816932193059407499349968463050124928926327502126347328679453688785950759758600538568090590524107398989571355423315770269833883723810444098257390328681926307318981763647574587401195959939347120747263319191382563842282502660384472036879544555209872036470611265208380371449748210414810541555272837147130734978644466392346780706330211649484503825459565258120658429163750812238095864118093120421114065427295804158814734913601157251937220811699490690905780615793220453946280318840077881002987634251340624366173983185733744699373545332133808439153625639070425087666769396115889481454666381173656391445257854824071781545847202633747578059013693420700510567502998341493442971288381090273894085370677192454402422816159285979764556040710161925334892169529551720903029291232964098862728808841086777702167638224578733200324301036060791960528536294473044583119631562866574719890464211969828309602927022649463565847459090548106308060505686356288014523677203798684099382810320589133175417251822363893742064305268027607916299035317877288067041501896725289824838668492455689090074373203526904810774908940592936691444228683561671032012690493376570276312535269639247270114587002325828826264357339314609569729387438677791213812415273869141559070322352812384988689074029363386373902589455986053826006410631478833209780298139112850816533988659197745362954250714981839792082408777941426326828158573229711295700609592001801065699396231905612699012862828055591270067446694104238442299514559467563774174834563900164064205782624151745464985802748829794424956444236562793964157038316266887177387764733462410001423767810500837853946543902304916114519317481145572141867826707955395271778066184130619381948908855254181044889309696895625341005888504315622443851406481085457822747784050143208019180186480530905600004950662708554818045603107928746389221334189276535248727994919192449343552888482976161572068417574707292630611395049725983359734573073042096429478564718480763665918873270942639011441403068059049923734659631606723587377009629129794110815330458653123682608038395311630049941263351048222577298618252389546899952005972559817540103585503991282496618613147508773083610595379600977001428606282162824486480940253866972797353628889821839378593881732634175079426933828166825662239402956619814415541093386059314550705227826524395237580683467093887556545328505604595092546916609489580555053839100443890333234470021262022671255580859993722500055550655761467966783082040747621402600774206437672531510951463481812631427559500414152705677491627328492027541374475858074485665528322641904810260784267591866670127117607475856557101571325885265314718596827284983544699470161264777670692000233526337523036021439132694788958810135504129899769477740699508369703966462779210819150472158468137236563560730321045147255359325703537763267430208323465365105030549952969931070230660027939723795376110573533737492802765838372214925541017185354197350317553274821376658991908501988936486026787502571677565304368136318551860497713340410368394423027078252716114487109631828984583569733454057855113126372128437522310120058592556266476588230335177801169625391849587822707822102959797015038423720687919567228473120820271018941849223036430659077966477323719711716311650375867684221945726232055714684638480269998284106111324573491238954999074590579733512735341846053227559524443819476551246424792870320017428839962001791260354278165690785723577739457970230577042588840219190015582289308920914543681600158658959472406511917975293183751886565057695018453138601069706232247156551329125467967186654356921300758758990529732081988788933633516311257234465210329769155770361768076320466125599395767627100988013296189748477065169748072277679765785585067631817222675565139713920495263317019735096603506092846760703091043270956978693539991589077737280880832774087133908671843360562569095261171661756533735049608267683349068591658201781634081684988133652278108517012524361034770463732015209576045795099889000964991056146267959427008149869877362022182530473965869721231894621192726724337890483129213083180221898566590786507808754136947213307315161675695555960095994571141824415876238819125545772490157472455676726150711451133724300226401819954685398238895415879169386780518026801028733555627015636683780494132980070552293131623389330311715280495597469540188219057647597148817836897121262523017332681712173271093987772693625552216879127014331474725294465761447217315928725945145630909582792150432189571241347907411712718530432335708880798408341691622908525584432943102839949699962908564152950320147387413967933023230303813134648078875142863454496077791461995369723581903694156650890990095993637978570662928547592407238864872837564613074693794555968202170564452917245471603232568319666049819810574596945512839012476911820917000029394975552018092818018268626659036821610083521209964332674051144324914316818941033500239302849638322585350309458615655001533023365229385053284241029332406742182216377198528541745634911053472337145843864912841214618623864350854420992323854349518958581990065258168415244998695318927950602197021809562185813412536655818873331575229999698569226011818491676690933180991685876052226300450694980964031060009862151104412389467149790325650816050853857446754510656667204861378254548400741250303439767261067950143950536791938318662014775149344878237786911440385657999766312760436766046870568496042712452393718664381433561701423271559181418487844313611854458767861453066235869187500989308331860791949380348619224509712504523985148841170365601212823453355460027101711834022631061731486815673442589892223497030592276002899467422534530733353120783329904914079101427734187971191998933010310067535802177312679762476100408470429069032551839841360539490259212064127933268624115418464464832081740058500876573031931004670853303010643274054316774369200452668062839282727836123695085388923227984620800387079921024962565788375038820006418885272282400996795975918337497789121878901041436744304622675064961780471748066883055013235962863289819269273719451831994344863170787176146151758623957657523585823822360748540382666793674004328397870793908512274647643687153794163711270149736251996936798870773961931243444460035964404603523355114440048253003987217720829212266324075034953379639112834490733062676067999516504472740965829875684755052873919324951639355015785957154625994163200483571640068487077523104584907856551346727414850288915309522621550105008213318659961363213796010127659211127527478721709168047180635320596525064234541605592185873914823481223417815143282489760650176414793760811767446101411679447250497175991971576493154448657054084996369257674441714358020776777451399837972324014659532572047770756929806554418904089262238780299635038688860294776733474313334278537086312739464937286267381340547472210601996444586825426594449215881845644321915793360615792958716597929401376089546522036373612796034701069202431888658003725449250459360562410099586434719384205596067867411790506835363804954831433463469824906724499543527080852339553308132499058963478525549338939070985780161234269441217186239412227872038936423895675269587510262265658868633388568261047239554561545155426107904150189533469662321847445711843661878978930590444492224090258511089162894914190926465467448659930884001710478355488159976450524125802995065309366666139768212806731171624926781199035589306055183820594912075641072270987313106257854317685246762872594724024770762752914163443837921077077680016369374589684612283334377590940158490392549879435229450326080489373625672280699114439518413828406095931974998573900608287240294996089321296525098191227628299530282999194843423140172950341674559538701671930661336460831439470377918289344375122641917407310836041536900590238630264222748991096813126099041571450639468811596801550364557477843312580295458991399091767588088439650821190949253479998593223682533822240448468927203980323199039793782250557997813956194093301621589433900981629543982036674512804386924514931736500602413003045809329267770882897741433444401968811148386453400655203381107610273527127379699559504197531769337823265225892708040685395941369627419973033083303194113617302573329649791291485877059143152272800924997945133250061604310774694266666795654579993409168701133445396016328580722040509400258538091852493973198343417685058408904235419327038957124792609512777764544753573789187524749562947756420560334099021871502591174829007209414573910596009275008720053978283588548162834137977712150015774573843832230042527202143502481559263266260421488768286407608964182776211931839176034840083043720179528007524441892482826785056786209086102297219047365786447552094826853697845405616199953240157785636239269613568140854732056101886652020140188613369635712158669630927013004149902218219456272718874879363335555641750931040008032010047751441612534771759209583361538450983547659412516266346638947997046309511400832956917647898782398956105486173651262103510958508959161856237301683797606626037167425001387023318795793110320470466207629832705380073335752488564873446199267999612795442370375612927714200792199118220785826084720392821559259192435806231375106346918018665973200844699023989895729938570351982458684787457694141567890791850584157889890041718391382789429656873440064756606953011923551791218632374939595096309065878133452528699577832564216560227339114812767276041850157344800441807018348086293343767122764093904166938911706148915953215036297296590270055691976799858657541477202161647683932527732604747253290403457341483275706527315643442837299132227761156586008088742589343926586086870296039399240452158177754292210990058820445845526376481351917307570369223815998165075830951144140787231158737120327908850536334391414277822427632524539547275383984427708563415208444469365274823130671211999378657843827689569697243250608780143596823439482439639682476678492460111500394858086939361941574024130556340145348237056234926290488442212946768492388264992111849571253972478766386668591081798270284168366286864223935898614801481069749927146662356781454627082188098310810840875972729927572307205465114701849756299262734107809109100949392854041563743853148239636002694532278121470411830127440882925334385219084034952399364026998835402962151552390161695884986509192023683552258037380107824663396186923506178733209833125359196581682220429974404917579450201905613949295266010013220733617135793877418573003832979628173284184932842648836827594520213041289092216581106678477516439502399669205725186286945581575937420344827408793798068369709759057453293211317636867232754559907992772835404896680865821797032543271459499096344088804995405825970411529571229403394744708048714454286322096858695307203058093675893286343411731881376607184304772636749829532980560269598191722615518224388206320271601607665906689367248857352438008973090439404450149629957657738800682106010583441973819991747141979177164012202056918145188013097763301163527515513593896525746278585318829756761143675478071666568859509615301728118689102275329743955033063747768921351649372264617432326718621276102135831420978357970990354738112428263290452545441624323883534204191104592299118155841087371766213016977681715961290348212640697703402312926815059946929499427483449432048841925453796524551254378159991463627762298143729123017287432909506735483813098997094780584604766804625976831670500518308234449453834920098603184023638767441706408534147308823427631706762550873467774850705137551392305730788740178723896596245066897868968898816028327408724999720587785292871905636665530937481554969465302415612064745710008769755556518699380943854271078492467650968419923448206573520718307747592577690295017717663091204925299604236398841080447090663655593819560922435666282615578744831536349618057944307009191884748170608231794826393752682903250649675949901967454183235843064143058274107609258233532908679199546458195480402960164714617514869657989099353562605896350004333161473380718760350011558603459072215828066366513546029798329269657277937286625680279445841253224841684397101219764129730163696335998643009208201258829076096889164213343977012143264760274671699160948074654298239428436242542489396587177553384819216055253585824058982893188886650569021990151795643332828955168044659159221979138556030046459360331739364085382776840634923116745539667695033336204486922196202606482863540630382645842387394426508760474397496928057347909988027278151186461947503049890455485070577370940029207472809280690396200254237481122287067854962255825145825817068101505492889365979459904505810032792976241948395632333297015422500473927355132951964862187367985559683407807046094849946029185134835750474103961144671712287053402850288952456356493082817744972290428919868738916404957781396902316739944468622306558633733627901478092067174116554434353380089601268853400579279818027883339726493867027105362709455567028961693986106382831551502352375042264498243349887734337784255569445792841703280269936246326156107324228791332960876586430086120963374873413721772309687373076843677852983847046603118899290907381819886715472375372338606679691455515012542729055851744326915537973198555266830490420207263248875475130338982241303474426155495587410970639590294846362441501406552701595008837778398051677932886255685946725456080037384992176339207784356630762402621188855074779516150168244927194865618535122205118649735573275172676968583770916869379907040781189122915857695757336581629079867620194414119565156057276846596103163437179953819333908411627512165488646801857472130660930037038496379322054834918197300189086386484643143714953818403448977890473383063079939937478927806707864453850991073079015646957734639315323666619118725534686940784362941239195069572412510519383505461290429774947862379549344429892417145616590482641015112441923300930977139150245677813994294549940220289717790131064364774855343255179201083111018031202751285661827000284501960736167288528777836823426138338633071026742037835663827174909723415335716770487299886496870940514412203052347484924444265945881799438399417721121836500837165143418547315863993492430971091190498681231836924075405299479063858911187258610256368813024854845300322719254699561905563606867744697212399771325790622928123657554723448476665377937693005615252937233299927915164417195237810025040585663680384753412610707275856929267911705841147118925327585412604848803211578649621195280604625484304715538641045023644718859902562719204478916591429621702560651382400282766889102425236589530391529231280233587250163409940907224462198040417401143947949233146306236874705296791870302690984193167148026059360452971833613760970263000924660760312923859024450725989236535476983799459061061287673062258423542333059925283843999036673904258321370703533022085815783303425763740810445003039343743481467418141845057652629877415267987720543656924579864248000242403602007519593325783509336146821532933127418943044856791384761022304450836945091213428167772915153534075076474169129322001837265337415191649295581985471924830728654395488493134407887550988400470912502001086752102026625584426399303374339085558114091717850634310053924588783118678081758173995897887484683037286484885110465681545765981554403671178981315203777707447288447259771659415349465501986843231950873527176933263592291235388233058611239536815072515640750841378332257634493712262958282951633909482759230037465928354575887179755576684621420190757147601096803921599629178590619455834263133013432559528137474647795115799048113730154011384850957919905256703319076237895064204658409091947750733681593182825296827748936665116343126556967968214846107325061397891320533447532061877947020403532706161711219121000316565787110314584663432398588541505539647732779110660211000882220866833810938969275196053950308057583950883655645013111494345124059259261362231271565745080659358254736617127384742529105820778388616189418346495883548075700794385275360230952916320719728815983432660027649473939564783976579377893022289401158868029091134394493426370303132708812645153878122362402027171034270978054643314987616780195645218086783341501245111699057433306213101288230598875732110349628524261227189368389858194594970790526213818548000912864622413726748401412514746477475747987524990786304120057123986483888069622626651878696315202980769611845635052293623960386500596385438141465161364304681912269987213675704175969090269589126410384932799968638657228452939924843614033182444888610399569766198627691948306793642719320560906476488190094009416939858614395159126639587069327471705113703437057877470702818270695348103345404697543344189976258209469585585776513073922031220234622235880253599930169136933844115539772978637312129479027340052442419243480385670189135639107999987448103003263009429509559645282984497277658276078774079897616576870517185540719436773337548887072068661732059574451920134252808952882637105657945067288725088353161799507524002404485901043186592600372651437510648711638681193188891212980347674983643633790976496993635229950722765506451919007634714142458987677266724304359448204400551990536584599198265960551065367711604582814725369516556854828060339657662564329506145892661138046211237648663683676562644469214367014730395936058755412102140226289122949581218956863200940999239449605017727143160894451889284148205936297371863034923821452092875510900496137600761608620154064477087233365724486510897867397136443522396034339336951766006988550475278496009895675081053795550129822941985240547652168740848133243532663687211651834491650303774977493118479551427624371413420673800096090857598773756970826062402897452955437066877098387609686384158843116790021248630482191484518853522806714216160759620354631723015938975383317393763392114697936373369842938402511942489415897252352364644979978459290382971736850794867135734160874575468644201871666841514650814414238364805752473629332358219359006222731363057165002086342476473660489019618276437855602459936291487689659984820394706645731149206142430733438942570888527677466425383097403549076579575271714072590251489998494139893966466307813909468422161739954743048630803952598446702028575161774141591140434517099759438234000105775960823616252269146252036193194879059560501069895824465444390232155743921558341295173581652699894412635562154259851488414675539969768837936319125702866668580541456287806274973173622038640977703863104578921762654672364164459992779552764277311607953928596060412658401390558437342466058690663899520498560044984291607900271916478332484054765743810070762938173444685567262432474479382712457028360487560674613201756800304456684665435297750346492681722691196542126222329583569513769048671800138460588287145779388774817062132418908780661119525973852726329603880164436616042515322338229943808723482261722072704259311703587135578500728563750618444102931787232513207337394096322889577061463140928035131455824746171108480399028948553985445694313320863674823882078139200295943649989183798587450708533043481515029554668351779721829440032552611583335503160818983216168188004573816299198598516346667639222910564281163633880627130689761848106058170641749685873608986278567431791274682819885597145305795022930608779957694353415311929173092429508462926011859654757861343632566798257761557353024648103457272075921790333177566323775936887273402365578242474165877299226408084571019919381096894440923296810132225454913120194342075802741500178852532008491458936772892803239134595173160140646398794573773204509320949487077512356439424240428334964898944509025197720887947393696639705940380791909378188473548028617401113207509366093473247861649494720940453519075309255151097842671147207290761054799777868470790952483683271416712759239032287196216033771678046178044883464438013980057288391329967594099032093901380759127487308932159021245841591767087839826958543304507815248674794691720701454413782634764556130137108881617835675659238951073930170085768184421211486539019698319951892358683664723168705184898289863449519169726480687549135556089722071773404263087413975692205969271791326500208198062844214330463524345656680033579591417763388849509880783803876530690429490842096322439235636547941952995969135517974420513761190655210888293317225231026912960536192176124327640043597815551696503563765976183167260774814918878138413032970075914195850663901522893510454415780524485120332351969503015942355801987656527935416015801664239339880879886943612485933627343162931816268388467368244016715206920115479409485746182857328194032445621060154030656488926348863848341536616535231985924365294322682550207015644098002978096278174564230458877781538642289167192223118202587588250217935850390838042831295619688994121094602178512902159931055215985634576424119432478440297675606581539497297766798240156841386131878054681753206254182518215382811057217918109206100571103056217355591070839902022086470311756391462076667359829298334770444303500466607876511400729652683885970915579311889343629495316071628409886786163125945607702174115121543526729296366675305657261170333847932561305574629842593301195769909394156391326995339280022062634803809944645061489392091342531869681088126751421163230676465469223101199155458410483217671668976044355562933777592510940967276083340242523412235681935423448157898825055425095007898993639014431220178643269398457603813184172753315110738627550187888069483773041069657694208316399581093824929564424034927886540180180816440535740488852129256251055630152056264157443871673750539427143445851293960132195153357372671997558176724498393114085227671356425419209804557167697769397939945592513652808916555784824180616801580754816366304374354900720127418129814804759313229765244794203921288457664318047081585136664805784289364934929381308025574297528175871382078569893805020512666717572526419079414448431519670785650362838127783002001567226547560779892053369638540543824178501798775102362507238964657880226869547673720511085468927393978989195607447134080779393802337484604518016458438411161426480598947604367298298843412293032993473022805131734377465221188492768153323040307253156470619867628545016891098651387761463029441578512910957862005024422697972699584370206406229258100740893179684055044572455304406391806418699937360159395555059613993180491627795630040516348572921325803178084063082866648632471682729863424344102340460192907584901176650634592950085923438460990981167850334305288810008620412987512832321783845969070908535158502389250631687188853146717046139267316251838698785752964431872897178092799765592244153048680875032845739406371126559424292151337464326361349861684711181935397864320895944260446063161302794133585807184494118737532104734233707937282853238121081981873171230424053305148114300273478120807023795468946872170048518847998463055285818006913421775085857552917622839706616032608717853338456467290568582293801313144212565927868203573631769528283031575006067687309596848178309283825622658464952371438899959813255773996284300198692719147211244346235892189307621404993350697718691048572238200057924829720894510479469146252340240548655578899503596564150605613634181048555586340677226804292063080922004064510214003945231770339475847997414508917127764290296078255637521649211935570114630304859787941965973182744238114668239320871813662844459816553418727455643368363332667257917271308015873543941397245886036085258033825526335802631867696028687151835036248896761260239953990668564263350970310720267756927235636064360817465273822747816217738087068336701853072893639544955892687856724454221067027237665146886135497343297118613110996197078646659134771713938424985926535304462334840414218395126593520082951890456846641590528846683454116893055135865720346878142899228193125617781991119308230620338653960336890234429669890710297109625305626952243844898950786309484777486231616874854026352127817845485337657855797522475682712941190280201460221592237870190533554705069423562445481421967314927819313787192689377071045060238863930305016976925122108303651715307191543507577247384159754622044377809765103087682570710074157250751604554367236422786465901099442375678274989272784849159571717021552579953140197680380241913481305995721442074805532116196041757816322450123898900438316132835407097261654475041477078084192628045102546456467649972865411760308235397132790905027673802193639874775977226064794829245433515973443376386870722205892791988856130128818944922781076210891826419677690795474222917956472163402515963941485253955755985595581462703383773469330933923339270143544582351116881327282936472883342969780814043004915872389871947622965039174815071589275558560033553277790508403305557992948309133321312607923193429495731238095134767039042020835367228295126150559965226511505492591197380055571881349620985800682659808660674694010622182630525767923820914593191772059787556396032896929625072670808111477127608888813612322881731876997786785567206859270532642460835645627056652305842313472823420303653581072700696225898082005310088677476520096327755302503431087880534455809888489343725041829906631145725900272335212753418596084903288514385856449372392985949376179564411113119095450229170998614125947793340902728284868154494708356877928530214033541809493659439962005422035123714031827499474210337631564839474240801265022915904341541539692904014009076325439697536584064192240414368813208159475840821327745057993532245251666459870313108602149158551943634620290808410976473779892079822784655074467301319279185682526425285849560292120271420454844685222006552364452667851503069021351475769105050363905625060851360502900243446061151007113892386909610721250521695858182564072280348615507489743439747543924802646747556396908166938147336868775667184405437696462460232862661707734296226297102046424889892397406915837450296422546894569506408735569375949550420309270767194914657413109640768689542919082640825447963407880214618059552794624538401400556125397013025176699674234509926661529798117160651553882278986832205446081225622975137226328883926561170449881433911670443868101850684432303397192242746537081068326362195893363022547617311061934342992373823683159259500011015953160036422556276684473940715119549888131150285285949916953501917869470928867320420994066395677954495467145319169938412943517103905728760055673918303134894845179334719403389046726458319919290550319314173996071071697952858817036668318190864498238768720437078496789545456346439775634437300445907663111193236920291150868064815466996466972883217643178623443534491652282117028596843216086264643206089714030113582294357079704545194977472522535565613704563957213830208929402423805844234838653564284889895945554652705270704043853009586829577481811767099915673158609029542842946764948824362738205767386473475651684160184281533791840915837579829722534793874337149500911350165802317400696092023183076154266496147834913165564298235751736738121545377303968276430242086012011330117208428708903288947219330113076973543266073985066190706858506891929105597508697862937002557831902896924391705377339963621043365362667436567962188183152692451454396308148949611289960216380834923276813399882315908446495118315784962833485389896670388238833825522291068191229235410685554440752058271103127196740147511231620233865974426051401485197165797234892730781922614218707793880365943980822033470185906710528594158382346997492294443696911132246559704538742806003263673524389926244742484859143500760005699135014088087893730487641391494434414643368567410376273527773985889056068141956821456230753841894393565239761013371338699113825915585015645848275935181098438170887758136667278737790788548226040498856384127518840202166600147228893592113902326576828980904200456095798023975311236753031392938544775006272756286141360890967862375945782546961315125145398723422336432927714746686654612630651356038044971458283253713310934264420924911521115964841684948891286283707185019081909737983128380864852952574182777858203854979113269563677163021523692425588286152110495056457865282811290990294600129053640765064341640984473565281826452488527794422975169465701357179695470963322397534293074201923476245999583730387767011529506901428277806515185849657632652436049214026104389170545929073874933828745366035568816232350870154674379523854214967730815277953211977612794962751039012428571294677525395422024222905998088733644315094033613507638929592255931303997767279998961331276717372308718853946504937917275633989930624367161442029933319698979333119799122184703571526703208385922783590868406458569216960161265616465610592788650083789235307358916922230280753483109770625235513688449814270415026543216923941964182936957311356342713003227355848035127437877540755270459403275984921783270930018810624921471643926951750746636714316027579834402484904783036398025735759832284903716371698437060754857640925304205020418648399493435728558759429391739648181089114588035954691983267545146206234963989366641936848470274363904199128890028706124818492070725523087563254411531601308594436717245055255713707197193432818918166022474307066489335763345791445080626486538603423356401137002316431351052238224623333304721115611709772255511782520729990580698695638023843340758700825599327185866377328387360037054002901888404899223009825642550213782823348439570290764138425283056879515263667389796775659162214568266303047034840735244763210241992492548980224588664950658045896819344846961337606013763246754508178005516570583142530182879157992608845747566353439768057091304014255645456381705223913871611321493257748126374531929770809886174649143581261836050222835463437654088098862141860841094488600717804743846954876512423619967775583125213598390343803040812881236264724625843009558036936972797071302983129071157025188864653516347852849521758714775274971102179578901569369814573671312521033340894421085905219569165820073128528222120194500490927925092910040007569470818797527301777247752465568307861516026576538255679559068580000731819507487346238307667978877142002373776088191536819298536494768077649293814038606040918335630190792741845788058732552457925184648634807212156905840276981922479898816934770745229426349699378303939277721195942905578116032426684159683776418519811226261423784249004978419545403567858205022744727451819797108824530284328657446326348096406857771509385006784294155447026050130674400346331904319685898565320928993955147420079369093257882542101916204322198070444269175410221315075479731113934960143783685018681937914536626739132935426927618587737286752519955578555557116247885489924195782619957597687568300431860066994527658019008044187878223459981003782516587967738563194505884909255004073560886609874793300001099986568942927557025033861279020449384153512403984726079374283079267408792402803456349250506769733968362633027466925892609738106219350733700024868057743213871011925278049428266138883705648077428182110752419436591218831382345286912596239862457703865223615406749657717059068834626596275449409431411171052851171344717894961044373293613310414952712307282411241466763185141954307641111845360235396199183671724021960787026379248546478658885623005736144895390991873142163400601915875570725206283194216753273844177405679708557524642874486537011241331721702532233480560167349425493709834739167592949255167762274559112186242869163226336896971372385406935182197818082732743875262988183734025578353146154879775647478410931710008506184396280805476262355847520643870584563069824973050425192199441331306110190982077944004768941104336505935844943590762909028503266201853536075686826938991460664027779399592412411675667428683211296461416682199405009111660736878069804639578675060626968064203208803793204328690545881805544816103694596188137552833728874159358652702451476927928201050008334709371682879185357627569344969259398886272709439555512015422566982419204101759126732535311230292008235280990071278598492596253518776451428946429401278537858809762110458805349996840757138954845864053457225338139935732083965503286147327524329722395086814811918492985971593709468923110636538388475834307579226692096839274297847600755796918711315092057040398853916435641896448751505315967104278810858687896203979725360060986835196508502642609259916519181291961362950694580525263136841538923646823534084868555827546795294321586497330456310508329025125980906814887165375784418240779805655682988230293389585965815930796609043937340125297306160073827883955574075779823003893448125951523143715856916166640095083263379864120423372031704594751969230443955288382253424141725513246131324447461628666348132730714067312285198641380495732465417275278112441056092177630416155788638241087266372060806247765309610323947341535859820317091660983854065028911296308710004861713913228447423733534544901542596084675542242945193957674589270710384700729886282871535097419372706052765449961792300267984678548405244543167932532817976512847220498388851266618720156240738710497411706437520963870803369076678232486826116562496112992801325380428840155974598233864602204027597294304423184956076629843865404445474957380574834670250401888055351477582023537005415896995262397127145748239303740847954461441011433441422977195362125723156802821665025515231247092899904173511156677372960382708011200392795925612581652302221777497538882992892351139552639173690172012734982013562942006015513404986990129071801132349071091057775005182876025986343859190168280663754282518936281800862839970236104025066012236922609305030403615335617832236977660485539809299933128915475325825434933627408803348077856949160949945154920109607904497082761070766917322500409071372149530730377365805236241669874183758924554011710143073697915017120363000253980585690792208402746532359187998402255213485514475195682715561080455594240459292099048919344473313127038676646564082104697985194172939267306017914230927497657301270938624538006428144379017794307541487598507103814688720465527546639467469012559707899698206222833571864504945441134246120246475201212516545860365674303485215714094504985623963993816667149275060980805920322382689998831958223970654950660086364559032596355078839684971023197662362081713313694377331432777879715011081699925791089739929649318985482017556847649867306540303734331936902531671203759439677638135209383384281623077257387423989534301467084025953508731889928875982334046155531457439274569300117393335978201091743918192597120764619241810939835859712274772321581371208859652431676453171694582378108189924398657826201586004453118328523181743559316221343644375392473311058574916829143030082430608954381708758842918112229806930654334710524168266655474862079717159768959350772230115552555742911335920816403548499411522908919489104386126048641504354804142272308252615909560329114961634791161149192833969631163865978374247835420926544609604900035977477660570673503687204445056602205631711125039612693534922085688599761112069031511920187243495649975224777009982484847594189379515101091980250843848909190276097864663710213837612422422726832172663233150055151755713081191784659368666211149046580476798407439253456714357085532243127632862951775763865489907464426889841537528328888987182768192925289098335517564997802774047794821747900466109882756732262073056671611859621761683644692312113405813753627007433284391114493151661806664280247794643810223576774007917665180076301440535866824454575067526668020077107423866912951886658606858871586161219986693953034026933192042092179213848476501651935934020333564500847016860331555126261826829421410164332960339511741484636082993116410529193844375880810948668188592659685520237875016076324854054489801412847924738850469277859556598421517620768536263493551617695442401853796097424908690392036512669410371628794709503550019035572257062954191003401646473787324462806248496168263601897531381674210128429446749076105715621623468144168418698855423318067206534113642660243118984763252865359477244753749172218329611826222319743090493657049298344873585150245491492570715151775658162565502802014140041619031617052809630954986034923099544677961907212637182818123948071631714894218341152573217032375615705216551129066391455435803768272250230227389660304435237278354452604772493398798694179495007248472219163936748243829439324311828529863574773390632267083794190337200042801904238159638675266567046374385654819678131459971847143988056811333736196948963993189061917796124906619432697553824341456809428597435986860666502715768936135724424376116260727596308932514768937505647258437537638043881540110866748303270281187933188249405110653886137559619933516061254979242595207012177386257342868186155529300945037709165875208273717676835473605192604489732331660672888709528603598642764995261415267976734298983602665601434726140925395164041316757252530526698481616913735507553844423124741304556633984092450201907176340938744115092004331721098718064774659065693178492672031644809692968389916280980327813428291156492095513688419655338593582411437743102877517330809625959316452996441872707854551679954659880863457992174016357461026165884174756647741155416196403570155416583667957485186982574227352572349680315867956373377356515107889680085937921461752365103830273521789729745304831867321730626094454760865794889002337889829807735814408525214345919662790592285099778282560776796943746917754768065527036692158278229398746755837480354592967110670813719530557728738226067563387214207592701101453208456243252531135880242963735016379725227765118426362510068921441071021345900821978134589600224186051661125337421069428608948753196067935115873196670073494196572359143854765671120163788844784401277307988663557700779928659630648089924496693226821281292637740077865068662886401097450935199855543101890109204958260629869940005516851008079918019352592281527032122593544551445883220058657863956214364366334094244102103924732655328093881622251708027270088536164892452834358851312184887378102405960111371168038284590357341615241751588635183016940762524350467388773489944096715852874441584296193491305507034574931610857294690908693818169545241459076110830599867927207559000735949660127188676754857985832696652305447085718704619811962046104135267437606930025201675002428915825986801677493196646586937800729934128567919599848872453236373075506105384135047665388837052993752027342251053002207371882064184035904461110443891297294918491530989985164842531853518685252591624361245201432704876469228835832325293744586929258171666069593307574036454209272450071481784566097992474872704699938566891051492936182967523061875904604542918962004459930287867532965127906132837232551701750651963602451032500377703894473654469746191234813762238928458073297983354938579889764214525877010437656513708246824312583631362934309217908190010959571720049499286268589317967369110856331757035261286261354540643453820490635227434250127478734295419445946904698131081021506629775155973004972222104405852438984218846889431017306083040071250885929826706687853345718417938167114798415131588108524942849937037151487141838159480001199228282037841114768056909042733609628509492117036808925387286312215201623408206507532138754893938949483404447549047869398706679175724173780494618487591066052465210825094099138584447485831259555782077475768722051511584770147321439132865643743321393856055895208076128400329002261093254919300709763792044105801494527686467743297967945540282338820774485734435227565607873300721672951439509718745114300239231703998151473155020857324162012390218772631830676942750268938110706262929663535575139726930132169896674624623760887395391658398613759246728108672883471145094068904748619715110627708742056970113143314238829131573160150553333328842624419752148410459176285761284058684776721091694799280181379374525020777755011983886898571310510611901663517975246906175275672062072923562081157851421115589339840223611589009603699362359492287422000329990114783876159591128386269953205118690246363721901918740543616839384831945342605199560428789550573188343416008209890423210489018434737835491579739866498926569656198747167548514239687241475222678704646122538818266482940200116950779980814080162705983235677650646559549996682152897815224437739249077477802183579366943707689706771904745560012520448617561332834572816509719739954113670320965007789573070393056076662049626933226197602307597370855615366172225380196217412108665568673161296298417020703976345455184639076623660415565979363314797934101947009636424405945345650517791600039297620215634058157970114661921412704877069596536218172210713086527659848067730643652297745079848325868671690959653508039839316160328449668894782910189961942361556739240216132341858643661235688293141279538052032813778886545942106870343517258441583106999306281108059443929403330872094162573945344991064546315294400167143748435239195362813720020595768153259679962676374155378334643498786550734593079117658819246842312554826128414364901430119696459714834086869104916678765182013541444167597974858559718161553989049068102539709256473545335703490492629240027187509679008866750117872376828090864748431621020028630125439021307442573146852199556256997457997447442062217246699160021774738965327118364222505240115297949594500074404151383747620224842088015919203193816002071311029909094736387631491124456122099814384492031285497705544794549626493599531322197935961389098147423052652165152921600877419263114543712059909452908518576505352681170538523254286048910894251449282887957274778118197103676414912550709177493026366294550658122920749589930324665977877158659253005603985992015507228800614291513775919386703476195624264031649948377181444765503649325508932343158787067591541403080203648457525813291735906498336402188145525571315296639817794057818237722004989751055236564129731701003628670537844349430319867901083742736529569918162911058181457779347247542730005533522256356179054187267943139040302063539393534108127844276604929836224337616687297402644906069798263543217902249350617059902860161622548413419173637874555277583546775332862777707335822948238944806179022153026109728010198594815018130546200725670485826348014948985945368367399431841876809205855562073523810234810332383656636060131025536486077859793991988316310604165649859480399501339829519116597130764550461672050298995186694785331164832212671791304816292678038361004323050443865928170400856475662724341807318347092817987939250985754703661917214322869582527067743707805313554759453547055613906312065875646788101393621202726701682903855065390075342407368898240692329151125295773825118076613765789450080076329422593039318243204182054431195342506132383477940582296348104736255800532764239307559386279323643008053747491844973866492695559084373073990253328996665272975793049507646946636698355185493025809888685223341976128673089398668057268240192379258700280815464880294513819752739395344183539119202590501048651023495092936363196502691043386333093078367600492809717942588783045136190814525957461622639328913239622189141237286256964421528344529251368898814914628214120624914795150924453129514908729013927603868055075911707945780768174723746284451548968275404462534754898324509036867332441047727311221129087515391128917854189108608615885686593747115426439550664457394173387169736370830456323768881575059492011499335214235048433187354158778719156577595886684355673177975819463609267727213943037399634952616650619221524344015919017322015375938840320580131874119991158970329293644416845783084315485457266250415216570043785781154656385602161884864809325298773661128042356745066214798166745470058374341495534750118746809446129880143594009311516089180449944285222375702698181666276255354084863503801891718566854272562462024764313829415195481698606100906869055558217546125494766894313141116393562844763752818664496765531772187151896674551422574724481659650547812236177590983244253345581789667253944799141940140530770348775498557296896292498937795353603202259861008559809030130156595600080808309641198607074947078791061081780594892392276067027817387883696213156184032190440885280695071545764593862705628761682883116178713400137847346894739920546222025971225977741843596225416357106713698354148374893820286314224516213687543887638372103180584031047984498253139417940890067585676213075750784340670922111879953483211485293911602324672633716490322475601535079102003317285655546768439621434027851199429082341916523378749888539281017831713267219928477809019465589999183765574487708775467780259011838947427908402348209655318108470391494211368660043264409517722649833576685702658280642774464925260132745317796156799479317983228193477694850483065034737176400085860089933161731472266957251772288720223543619929251598056103716779037843444903292373579212815876678812441402868921150393175354294797035136862146720033837166614212871273189581605531833617333427413521968198548989423624783865713458235109448669046436455300110603257763658921204898181092873781488393137057489048945191111539084341955296081880566182372415019835844232438678260720777201071285427695389993505646550829711279315592476003609814879681785172990363923005002638017587532180315074631420251146957178138956863739357476605099262950698889771461818188738504630699350191002591506119362242690694308433044246829154514022004803439222001221158531653024166301783575380530099098338856674344655320390822559417384504136422115905046757283749720465334412792557246950471563447980266512414828013819749767646038813471750430372434381516154872247002513336607499070609581208930193605400515323543216052177342659254887392732478514087298199392150185987703094616952099977219683494448243443989781552536937146829425914801100046077988151291319193434255682639593720679629737942046558587092600491760698618642839986533836559025401466161359811142404868048875479039155194674585554624994341290743549574814055135027907099484195294941531575378612211209053340774759343982442974215803724771658779794012697093871282750262897724411270780168689317193699540850538017483915925525540421594186132134674853786255799097582686992885799601608895947652160734968126274221066260010209769462415724042599369063019899526372518914026951065120818856390304492451752915047453480748813676862614876325088640148127494009810380737852802500058467236755866390785204084723223715114023891959847794399228265034706037864076062988363280399334986830301948068552494261887851617475021857589828946682541425984159149878165036548103086332267905683558203642857438397257360287584310619717247743595781014087082607501153628554551901434223869143094819932081421559856345868110874920327011008522552715073984578172993654289243995060498328625331371145739274673664846532534151696600518198280818856836953965214363112432038154815149299083613292097451517060047568293138722592825131668447588376640555429449080491572236592607803566266871871692491767432263952412155181642494414889138515815985833521978442712466249722892370274252077978135314494096738917272899987635170880923320257700631775310728023381061145837879466329749912451064539703139929724069044883796171309352303459764930660182238135540433972184847054135461453790014285859033013635408852146473154538388914699374417846765305373297180586020325816915685331156465756300983157087885287073640856074205334558694037011824470556430045422135564066551676470832377493754560186372728103151576499704637772760967354186349527872273797249272052723264055847607707485925115834501245076891797686674587311830778801166282218389187931743882638171408068668464510586057584804203705643078345424437565044752253018790541091118735838420928597289192168349618196139414836260342235757019551767160521930825634981420990813573121792426123044878601962777766341202112347501738775990881073795414998179346057481884012619669678369301068035462724061001541585246680922192967006845693314440071458895576310313482087272455288136696870148521776514764553731825858286595006157000814216063111751271384264280300602368991942430132643388015608164375132703841623277963700255090343261437517962747849792660871579639435831104729377631004299083472056080346068825077640939608595514916218783907507097525528285422881997331615308125900055570772227420323900272733820809961572493766846359420765527717916367883598841780557929358168637445192228038718705842100279556870545462768705111039020697705897740308778356775727740912420154782462315265782066439021911486377962168184486788753833605941719213684823691059297285654462691203051417306369493549736859653541823446043999106053940677112778426232024301422184187760101093637568494832076383259682092811266612660744464398546863194746849250616469084294916312617957892848310880401379897802732305945882840591062675459517516070047344120790335907868322485675515417034357465423977408199510833971887653402619667718285781790670471406472305599138668042548674749929064940708940553889411859058092189701821174417175718459519689603654082704631731118232036086110133425222368577013619525750462189999962544654226661537401351140334526720282024268027903476405405297834130272433760677848222611680542018966806225862797628413662266405594648801484365455982604111691273081766128091091800309269342757672197823910789008846041296701719643591515705638775607461095852913370901645495299784581521726918683948843987711028989572669762893350482391923711222441371040050725859108419621288479204694458969507953109553812108000610386747228097490248086269057684464667976602110078497774682105013064829361283658606230769194360513077966098846285878066489575155469376415980059212074819213298359837088509334445994408748415752083220036682031801779810562212202269757987520458665692583029101550660574035741759109560878248562421121351398695622959930985730121786247127106568275822300939559475788153634385413345519479924890948003570759037385571127228139724035503952288498057235574930163347752172982113099749315725533894811756319716483131700241679858032308721979049637598530861751638646792869429651273802502069793923562541203468916633800479431192378011645166634934706821266280397106870163702947399942911334288648057691285259177553409537517715616913788512766328612245659522964668933698862420621406660244797204570450031331677355745878249173878992889740691814366218447252077981899332190556696324384402934277331800490509715796969918640006275854705587203207134486519534103912919975762507569873293238927964372995450813242021061922063323600864686526679066992890656841140249379606202145362727401264867360669039643353877503486610807037218383960363334943346252859200223113292884881040408865553313019529275683660966300175003401519387143873719822923577205170898683536972684598987240707042738610437924097959654173583981614248883687743620069087000654097936975999364282862687059133171158526933013338873228662109608901179319374301734665096074641333704298799243421777719162965674518285565686315808969823148340608120475608796527028611505032351714875556668373553568130356683251069725365247608021537511766497792278250522719588791361971732294033588771632905428669845434334928167486479825107058098893874330762776918620336221841132011630400806083820451241832274740383768550368426759503229849839328933848977187254973903619997304052616926964035631017080632056143265579369582577383279797458969517449510378093789352336099114164292085531290908228820466971639940393450608978362265827246117898002796371398235262942590578209130028936289458696115140689254511153849398673434069920183443644817941658721254390050730856360617401624455707542945028447385864027969855255713388422453360271036443982553275812275522354897884811514067605950820731360476146896129149054900560707747837628152175289964089047384349188794768077981268357830914210196663730047059484427586982786830436199938206923152250808695146268898823368113033593714335725029340434911254236104671682394999980809273000264414955003986370407887276098326760616081204472313521021058875452639478066505678084242308945965070475776406098094329361164605850801574731290060867653209274608875093563711446667379874487090554445831303137821285920068072848826773171396540889460982617200875801408887303024308826234194515315572889073954789698580794736524943353117706267166724947151376519267564456142362858321837246694425533573976250823143510288037820398787372192443869732552502725527126460503311250630175477494054998820150566265566704619412471575541005592937699428418504890571156808178631285945743380704740462646172435506902254492954657509853359730903552435838296169480067864643724770703909132377211586838793835566773613638409544126569105989927762036914005095092529430731530243308199384931966883079017504717907115094414340941521247607232641186224926069908068030368452507583162794741995291472388148640181282857996985105186948467348188398457034218041681837872582026226137396665887937719664293241355973863371054958195491035379148009789024486539845729813931755766491048486284476539433559132271210370794022964676008782359983661267711353024965021140402104918758730815803755943719256234368178833820137673638969244812608154700650372065802709614285687232719986307657761509945543284687317773175169931094178299828935474408739389607593989992144528805063711143661770141092716537120510926520068626219102564999284910747417450278870826793593416075600973948189690877108905602700889085176045592697745625473438184488607352577995834862861863326452677005241997220550780470586497205373345326255798417850490614767947468386489060864658278613877646386113617648022246323904729259684210794891755771275391840875337689187846174135944930235449355211368999796859940100580205347276541042513122340079613976245077606789110237842361919402969683669528751044141493410560070729585898362302020448230979695795125861080239768086860858909049369113352263520582235049509135399810626862452629206101191004473636017284636978340942283608628632625609744379938503573672890136006804645256333983332813864592816634909192322419024984355271092513897085736781571334159558288903138213818448910034498333384618481220111882302107898807627980608767184317291044401866750755066435783919605690723891403945891576778537455601516612794872997126333901045661697050895093170390653907532870699664439512557108504537129143475637903641917249759533342268492390666324523050784905395357071201619129528264433340008080701212278996706458141352480676691694505528662412383410312839092150148803965608883190086758902726873083016980600870649501383921173523382149570169948990084929390899236733119713450251642769327624717180010383651913355235572389628298912077530415028862545138017276654547004405833466375458675789074318930699525584325939457083852230207925738760152631466992376695802612568013039298703818654651227339270463167582774627875313027811405919931187366456390635959648409876275448280895599535055206904271315969288917355897736999800879882088066118169258240607269436522464316249325943262660374970594223438317444495503790591520864560494565543645995729523028337809333799682041187594707896467785583474341062234589331671108699082553564695715399257412357798753369911504137137016833213314363652068448050287940281338765884962454561822233860610006376398151601404554450656830848842028039845190838298139111613703568516176256265873110000374124248135006211922556239112101507840975601847766637382164907085021671433619032910264117796923429193606939923524300266425200878471295043884912944697320290135574675458791053689237649363958415375296780114452769998574270232814993938332703103807668340592825699358457895468912111040221093454033296899771470692991251035428681647263224448440286617183975604928947448198044996446653518551114455436924113396637886569205769906777777222038682848232339877456795720340469930823682214171777437616945750396765280591186743170134432701051408242186577845763240613775421391200347750653989121731252447409094486543060386649263426025705754625502253393609501484020688351394469224429985623855210151072484218949365221361242282229265773174310407170986724495688081496760808018958206507157694247299612300723773052289938770683618853286640113617335542741358132613072407791470157593822573064800483225927286086568825445350442334026085103379930733776302280918663282027128080937934857715868420538824805223416684220062091050835901067578977191883003873964338471021521823325932343201195482627024383919552101101435672008220605225044680723071612515542259857428120363604639059085313891404046099207624666832847964797349463148374285863938787278472349513359075660786022326983864920858843601811234941349960501661848285015798527326562092431697207535559038109693906992427286702319673303489882992209728459532508478958963334615898230414118549235690377233476144071887704901744368840053765181442512849689480889466436689210614740507992101367999495249754322340624349255463257252509972970758839888370068122430550787824809085703523764198465291235833426196725002768888602506740335275134414826876530875557964419448540256161323558322743411454765432231746504108475392193729650342233373627149374766313320163754944805160976908577201678678686858665228877840506638730002549063245790584788514491546524667601591928352817839659331382731504861020159203760493300340186944666415444875939443912563315390047932927250314351932281058674138697915542907827174967648938524580500508088374142882406333268209585206434114626282676573441027652742105899087351405189724454507642459853153426139330029068157594833029257572504271666333776527078184384092235744646137960115924047658592577912673789894551549095398337590452729579331275559105736030869562712630400221572594073841657962701781684280759461829015783885614597651857765576396316879919783502528226632932044918739311980850101755528933696510625102307824007240332716775875503718379126418528438935088969043465631727355563230363859987979799144161059704495347137816912439523511136289290782092939208278047895517328888208989279168117417864072561887760522461003898564485645925623404075023423088650050318840995558739730813210351348365151411243063765195920677966605797870641628942820755111760854512354794846692051986027497527232277968642041571612464723119699153619712699952179247657955500936609160370526105579349054986586951454545193610176007611455200594864413295466539146195481644430153267259098699161704556901908450524284789067483890021429030149036910629515230116235688949695321462126526402334329153107001938387785689060886330857674608045122385662070563445494563803266917275876871009032761974772361798729162944597823587289993459136033267682372228709261095921866095509338721238112513346957860607354992850952187069091452413454923922125013928479319738560974886897640107117082063749781746025300494003015416751825885256173628606085457248394079061279342782696888581845333310508829601943586758586027074997314633925711865831125749652303962618096739066305211705483532455802836781648776795162310548974508625219396239043945958877980522212971576096686823647581845915803695178746135932173119848832028167915544059594213273251635935348018300757738590434425069332692571655322379451918097911215226081673402133976574090513825626037216237266275574538289434058270607216177582159824079366349283627462399681004235350902385684094975750376218382796197102761434474862138115050690425668005276953437849867718782118196877267557351490531131757874504627873519231065998553425985695538574660047024606467438264831247780657445863534319993168379214049141701219544733305236757004949664651185429830510772874818284256709847016177700561021469132935612285482181967107278736749458371107891681675972984418695589866170300014071962338571937134957559257307389988869699637932564977118103533480622082636299057525121630207655410634439955730618773515030307902474650875047684487285175940014675974977099252846806472186025173916008942200699995135695903408015352612356757569662566108702994148471672155875444592743634606334767625227476109649929892449964165494772978226507779574623657763804870998601388136870895752728365307081658427141445887698686136031201630499466591707772469221241504003967063751750553763508036003187567411369428011176713774468934005620379323892326088581411543888208294406539241419163011057040545880609839920837458757806792716376846837062751755654810954008151058310437087329116671535723051429410000364462225097622548930261605043109169917214313084173881560652445370531181346194127978468331659609060435420786182856696691194118981289278032679592138996839315806234057585175120668923449868529337282035120099897945774666224685519331701011564775037533030252260842030353471080875813869188741335317939031143334064663429076990493068411035653519255665591797171796992942081956687812136338685355524975796539614184215222723770278247702157662551611598262878566433421789053601968792428195426232222118317171863733219606452019133736657531671480603685061579908822381308813608661555253291299916978923966634194693542080960103489051622089720111497557210323293557021992230098543981059557302695216493786520590433759615703111849059498218512628738840622788109000554712197293395713347714567861550134595635353606337103372930210837359321246152479384772994900843482242514952075768600242349653136496869670862402175954793196029304422346119632309656052444280855228749324649294657052872326760940004753011904258624615025982450465283276086046565944543150626958037949483199021018864370003898773167804959828873586613509157723977446911279940441405258300247291991011900279338785295972860144524321267900406208297618452381291808982900515078305464132641747259975827695506888959466809399008789878975697112732211038906777043053555483692108175785395130557209270390878578857359383079754178009088920722227985157528252758571146384394980370619543312161552852094848616740094973092910734213806512655486576035146129837489876996075007953814167095071394520183537721109875444868100444908662218515696078959193012726537808000913887225473629611969409286086115135712939889054932333679394397299480500359186736956332953265478052995741415938431232566020460793501751094380134243579586677612183219533464521587722101386769155960564498822864685652724813378969968351715143651518749977118446617318550238969185131661018228718994462468328902013698565191750534916256397434438509440534959478342170367892668837214669103202029298997254700976556408599131997582747579392986732044290206802752620447596828403812902353143364694773047610077233724996294557192325176390738557012958047322055987669334079154329459272088574515665968499010638067271190817335409125598889581727602293628838532435268286460438073717281467543817791979286050241256857831991330276680151966805812598598912780667018079705365910306778141183187846891909064596382407939349286590906136683727095897001592960308014094551174054673114325382533757559006558016238610947929256564369467748464674960204480945584106390184430948920157831203178678233000690795430389325079605527325469076762178335752988968374448648148889844054858813926988715781591121730857260748059319559462152381995036916672263665465899406831188703496400407875941483198306984305166300120052286500460024999246620348084770068812860094223895808512670358156867630684277633713861547836378231299260245386512691807607481466041574956739881979094428032260125871635595871899606667334705390058717134693477330657674326401065331506740140817698564613029711796074037610679927625014809715977666897048143515697001206356126005194349793082007304661363538173367813762500003813861391023848724969166575577605469958386011804834336295126666329103805200658026484014224820981962734680159917423998603246506918816443715706453276894185811959322243936047767979012611552175489568641084716658681403847248889711920227719323872677178734246955267106092940290211698995919596526907370952128887196809616949827218629298198906150611453934783885736205342573809254161354548722852215711681855006860639616940577169667570223936072492591172776385054372714272258260375971641037886888886006508372771958493749840431522999290265359788921634202772914980934246302285904481122544526961043680391518718268465275278842225703334791720788117183625906644572757067115951118291190024438986109658528878841981584985754577031558739648942744939369010367942869045368937161770737246048174735838041078607961558767139060086623048435376175054013074111147541543573539397008443280324740777607291635275442088305608390882102860812176818522919751398738245479767170857313642950492128199457041109563876311062939183750716681397469223841212123245624367863919615760816106795267357408608173145585986737578914380148855790962265810485698217604191953708742278239163093421330520182833059504162371568216373901607157757422416170658239548675025341106508054006320059466143204437888201066843460336398110742724222028232189140655352780241746066878793695396792164943354242024353353554226748758815827973803089927312897045562267612782884949230568353667796616106486643329743231472598918556473776221846561640115754813658447831668374965099418630855223757520962450217052201843613789979486533082588569454212569216460178266021711903947685674922981048447893478277164031660440485173095910110323204845110107007874258269735141448014586470130457162133213082887239617227933908664120499234643447556742974832190231849305033956722460319559465104830863394158159201636979578014652236900060143128183918087758651573892968607858295075780467043652932652828270841820482055777963466788979208208882407195321850654444862535180238520867932458388050502597964855611250798057561073690517609789293153644764933484892857382496665132047532453113887867080485053188630894574691719364451624596363438854307516210935399372318890542893411302339995981162624055442416819603742725500478363074222877526372169431765507582454485496182011213625246832549669776984118604824233665012035881432941072181336892310483008647204172924531684543155428095821512722076955991144689699647180961806471365014333071415837180426055802179988848625725839490957432355346100965631254918394010279143014243524003188457025250671664550418489742480361301245725595710515311403582710695066952750951734132644927011921666391102752671284837624468298278962135737383230086269181185267453383700154816521366695478721438981636452270176319689566459062110022220510510790877913124397205934682977576554871922833589235421570688458336003662643786320049995225963169819093742335270964058901375451269305326615544389196325908985385903530386353580211023082126372574409966971424080612595257934375117643647445980258301759783545345903938315601762005522606979970499772816488917258049085166947753060032330288741298153319174129614725913683277123732726368614317639233290352507651116377394269684669521785226311797854348021960385605723277559101735344539144164431950057046835213848533961504540093491444684541328213097465055478384116734024817682271658988282079061526698345195751183393326117180411300802480600277337227579331004950642105412692256588005876341031697425197783644092798036849389390764566296277196957970012166343201186406788610179927213166882732853540748790101097988879654973089442523482832955122416260198953923928517782350752104090404798982293736466895142526311980513989076481876857589362940140329436067948807354833744074051711466386134653996145967209838058713660649480740628754122969937864348483454471650403974876048058773313705305503127589982256166483498976037182358392322234163866506648047544902010663088895982086702096500719119088199649255566634176558164317848533048359250774518176450479525663477393293452679581243202739476434979619413042402362594627179978331871352383673985632378806778205544663214981098291221899254453471810780616965924088567831514202395696999584256901955547273216268267393058361484166400840113445326101073962620724439711762878939036746170205513703172288100089969487352805341540824815192144952402214026275587273641685609202363434602038027609012342539969569436323097715672096147688061889951986271434225109713535477169634074853249458300128726581564728732537947617035865098545934701374969301681027878351919368601386667029157214891252254488337818101592922137299688599159823352005117015825863940388938080769151158410122790040296443746186507299027790176758647197896034819145547839498511327861918975450726125052882092151615870105908998648163158837470315989130131817929270092073500616652043354580092745592252921625948830288273366751802969612822456617209102398141485043618539193241369039131361447201978519596962982447325827244561076414378686076612169442110795312986187982770566360282015361175865754358382859093890930785829756141210294618705330783432283698675699257461278641511429279482584002472234554236957308716055863294408033874403937071060352017564946764224995889545377812663844340102477436629270459704033026829682391467602762047274799163211460278935167500384174400900238344218569039141976396216787310513905192177497808956973264156474382071592251894140845074219242656941423301786252000277628923295873325943153548005874807856019367243735795029330199411576371673191748928296957740017992517108342392275387305510626290571845487739480655877069880375175327485507922280351915983620145547100370947630979949246761610847595756178593136391771688994222330878058792456160533770417787683507658073177546947951561294508281833878269370998352822504731071568746512161885571220918171891404367727107266025211448395924380601671888604441884647917498056430864880748271824786813921181143915385046897236173132778913781979812602413018158525634715464121682541432804790155854922127382902890219098426604578075396323221598952957153537003937276168497462327530209939027915547762986049178939084340072520582299765070293272325278106237818078002706196010493159534145355590425101006665247021180785239356585922648376992067012794126969100923402935338064520382432059292680282689652450172746645455395761802619505887312595427214959187006689106657488967563070479796842156477272985486431361369889874862829447082189028870620915689450622722523246822018363762768801774991639898109335303720082669111175748714916273735923873810150907510942143431277762720289527136980496080067318594041527200302447708480722121221664904692223805301709159324426513456871214984989813465838355603674865005424144197347162632219282528088854764500603824806559966747897848324108090859701050010607225039281245147762160932762286632788723443441335550919013540219918504128178808875173180992387114981613043097904208524988041221707085881270999406704634879472411196093384408643058882887032874013510479275578605804286906896261251384684270667673442691264462445335765066589886667265504431019802954908619878495063711452559117391580073478094359244870061528564735764702767370769725513112695212132599898252480626034869239626736615164723493932295353182913287369593765827340396524447140216949805492622591528242122396235694583652838901175860154995722508498173740715373858536749498923944772732689615956732980294916525693746759319990465789026718102478603037764277013731807864337714107084469481416299028566876770833188440690950839707943027185333348102663824461081979761979622082522669471076362908913813237421912365237893644648993940341681968239798748845441507453324755512270708629857650412669892000713457661713663322882981499665622814043946509139017722553710518348808206853890799085130175955843255742227564205425997902473170022478352331039768328449019181584490006850198730917252660714907577105493192751123831218108881888714173396782363940648743258852215590391528617279625593709829148888977980216914233115880052418542619451310000489812436742347507623824476614682660674545217650482574965503545108421232650322690467345300340072136717285243759621391815186816046144254367104375225606692897325578858255191140521055176627052169131581624926837854011789747793328498286310445500021080688502717935377721474813075498752863011341527491862700802653323619834538607289523229454688567444493221236150314291661035972941740597527917503663957565627198487735326571004768099712309263249323909063372289261614267694761265023814589485516065052035992987770491984516948173208784841651821200097452068470225301756584613980740985430249438234872093905868449865779591074388130863273640644058098996234882345387814085929202269572021507149397739979029257837037800264612374792619695115498696047636465166331804146695248962900496638149420261281385646401216586291590647554762701945625985509358008573274721195305474226945463221192015390441112320180514154981174445547831278065516047048455430644180961725042999942711060943984176780118945004767860226003239076525623173020503907112874753594434833274097792053813491975759034074131462826327281395631153600230743312783621123964483547745745356286262197342566304480864487355363595393744254347921842240708850015910130500213540122496370280243141398054578230610058204250202217601887248376295464169961663138604914986082320421751228302830712816396820380567428497998056466385147166981670260517838069662359754656662559055510130543533375205624844082776081623797564738764322600192810126052983884810471892128892163634466343181875125118716885237807743896546293621362436702389904931626455016293407287822034834577128536599824253297950353297207425002508241659101597890382680337380882982832334178083480443104496472718754931861402824260949152726475497684871507401637295214593485597840384101479595729671919177422687726085828974057592210310266389528628504546261241993225287951066205034592495230061027142012686376491159868582724351179651212613238178573317051029962279835854773240107537950555990248911788804420505796454052746269645143543759397143269696081805292830693229437857588383291715025463149124319586161790433973602304332509271960949998104438661765577593278621300764157518030957126318651056257830433366831857225068768778873657827741002041478038928848790956782493411426760619828513611088267134106307381010493271302730869339958202006844125261498292903878887136054538492210054876246447900738286088185248289146438578939392877016005895427419634786937076445311771096893697739473108876037609823889761462544261740132550877759488226253113863329453563324353787343236310200412890788314229163785164385203772238149043207792382254991024139549125695607157884090182542607736474233158249330505554129330832112341779486379958356324477763449941384300611656234233850587237628402666047473806256193782417201151487753138476107949102010015001841561362108195005243934206336916357340712154264252481918619517298010289872649453172283927147778529974052432356114106755149107459708950193602681658967275967415279619705895255180036600478682418613639674878278770160183457818063796822389153075989568345422916551703362583411144431556965390564900208031065256886567636662391013023606524063962223405958114174088212315813294103371628643099309379870967541750842259249702806426335741899565420066431600139964844647144840585650048902660102394985256851656534202658420585537764482139117654266245341099423012791137444614229280585363255627312271725239181570075667076408683321719448565102926399259015730731097974622402847003521169382597230496413002743139739996408523166305107801897867468114967261573102873715233284405736259889997254494361401295620011434715360149805631868459223716023906725426259049685141106476991970937722643674433826033448699876638446567723956597639176310773024893229876646076896137512520939828499698184028726531317981709023798676034879452417902050372360545948010640029472924573866894943201788551432385569963798442033011350739656468820162704158545636416862930510345795974997759034455549140787480239290634577158924601981602630634917690027783472713096493619785279424237060399637885079920150778004492079235498542379880938450476967358709911369906422361634422448176152637555284753385454102680507453629292733467847228972462970949823297537815204243646947571484400111211937466117951191155342732315300945428411443832226362715317910967715733847359082777431314178813059767935499692726599460429920178048486100853440844689667077509577273315077377354325354454162691924508684221930407990511387685256430432493865300436424359525969792226985376406571794270424302600217688788156619769840927821075501126938392768287384341060089605135674365322770558574191242525063026054081144185488153789850129253608393857282464273576765782786193197704748108288877763022925511486335008622891994282547928918474647425512324623212592511258234560164303985167833948222849661406680492950870148724377301067634017398366712168701803276570182549242488790160592851727317956627326359108992772523483016971046737908005490283920415700517417677880773970036839667655479356105134616338089691317651688348021286462534332741014070823172468861555378543839780840696470767346760079919474956131054630315785945042892014708106240394907243949291105587857314612505546669482341762877825828732438615330572774797283766509077324367489518538336085552786215497762683270447442309817730367625536040379489462319673181744008555423470301085167859656473975397804422529461799280555827625611475800752569588231578126850215909639568122961033137849224046002562341374835808517139470473012430348634965175939822059196185078953901770161693126789177789315129462652332697766081554608090544056331514838077392329118298884849366159948658039613226325980282245449019969206971704629890766039009937240534092838363431721592504233986716604239911752383275782298272737032090297918832588297271742679452729965645479134790557139429072114841959516441408462983532599266646195921265249798183165121665245252161324907822443897701778869751289331844932555229819327674153843329398967911766187330705987472249869220820542453733117089038628953263230893481628299224831288422334690600968007115493770902248463325624647619047968198532923566630448553594326080204497074966217188255157572901371388584211120058466529130206088382936036253640119735984730297186529020461730683770868589935150924885099090144187677827738930400757143606479801624434141186927717253042843371590776011254080553841849023199706250540893135005842265613943925237320741181139888081662527601078210331186307951802682654243940081943171613126130997261125701070841806248614472128815171833931859097101630366967890362099824155359370647862210951593430483032322276271604061986531084540236475195746563419867987107382655344353004156700377536254344654384425893670701956032530998496763005305893638108747270480459209326435131162137167804640244305509853405075632575275679406441623955059643333473662664892564546539641478582280486782231102546829464419093361970584836078349251367794470926241818564907303086483601224371181072793940152629492642458767500943203369382150987564209926013682127304610947964988180854767591892131985185571599702802853969835126095751339802988786178104459890317331261554705628295808994040029072200382416671198965029717489181191802469984038756598662690693365188614560238283134257041444080610825646931853797782175243244906544702925704321166285105041773725924543752082629979348395949944460048297736397847673358133628513312062820883592312213388260472617449764017533505272966233654340197237603124999479770981451270746604505417926848876524045691975786142756156692698150912631618050143937859794510082952346762119156078419381883125388857564820204373640216848495772646348356056289712292454222005524091587906300867087469588264693101669416316930127778391808754386361880832685835188481702862986515566415114398611522717441512771917313171987522079031676744306224711567163347013918309019358976001172074556848571543941839890375409183568627563867661016070493705971632413205360716005742738536258418508197834671686073144547610403614493895405200789895859793685385524743443567817153196094883205199361795676428335621544605631872537071225088012079431402917001992442127303797654856874607219166496511333739211675601776313454708840521442863265248916651524049877984726680138096140852020884765370673904758754316548386469332709235738004550712089480817681946067140708081791572958280207750937442124564704363265229468029421183604276951164693295676579432529244698546481993947323687538823486881836285997501009331540513436765633197461425542589930519084637641500994476937537327664871068063772910658533096638594775156076357968293000638018188054996671766147994394076072350355219426288222280591814820682295695429601551242538374156204121282801244642448338011761905118291869171774364331100082980343202142391985904035254123408452383335641524078301283617976179156157402798275496556664175577479564282595434272110097790191698586210033611999071676389516954545931369100354767409694352236726159389019612785386121827647645650506716595765475539376265858592849503126446546738155286123161808080157774797108850512759881260525202848048927649992243329007353533646953065679415823527922399575852365253744446081047742128231949111842045991818087763788212622136587485483793606599991699193385437708127260941324419059406473901408955110022691322756175215006734064145375885583907501629285437953436258773249455851182569133185763695981814321266572213079455828003655550464009337549696406458066322409366526390024841671864554209628422906343197451180902427017652558803481939778946762325033475060470332823577019464631418479802453445146314838927186311377507785364186758570899898735811436104588057467053341484402702394604984676268240296691162538891499418138618099521970946313946721228284358948308057137338521987349125211419588354043217646265510539373037641492745840134024101254138686171458721053190502994016626230403488578514485079948580616746876157998913775024689495691810587418419286971243805469509162795838106385970806234049873664973572663393141660242744301825414707160949181312453924347094874861742457878356128557298449617063594870492618851962400624747933344978633773630163397227224017037188348252917742391975235557518986503070298842460118678472964783047797310500429063389210123323160940331146587337958375937402099575004131361940038112031018711571487845247131483438865853375154585389870042692960133891633796574302815267267425299003973827717238196182018825218973066984058710251708921965723113463688245099905454701650052278423403095260157799004792304287121292913692701342383006836320467026371963034927885239673048162108269579980425012971230140850266367667938358251396712667477219957768689135063820764610369862635421707444857751920740671774571595596337662479815705667235811216001967253618337633761630496920475782901916177314989402110591822193965255709518608312679830693421234670807999157448165246388547579432236465462137267829939619011573535866420245057825771723949383326084511355573189392318346881996996376551426689613125889310179351775446021029881731821440474148428392489574214938737437169390996562039870426014007622420359205027125203921758714645399093305178472521630197672503828482488026502377246481428287920052974242375602937683691663474454373370647251555365445534016049094007861705231827043485628997853250318564788375185275196451340635583453119560576124222834955727396659607770079799906617307353407366388913352207998989549848541157557597700775159994246409744377503206887737416780766976231600981741310600516430732414719130503589736351225564889300365433235812957779423846229924101784902497116969301802063924890611910781778510715949391423233879391042444164431008511770664174166198713894473557900785491713870352901287076963629854092724975345166974343890300850386659725863644331425453299567243622685610235194418874393447573329325321451553260214237349102746319140615702820086915730145639087343647971389072993651267284992075032894217076751815709256962011730374593131644760380710714687297542393796987223520149948031461468167261652245211782212987087239302386570561662111957053223567705357001075410833141874000037947907776088617825324585087496724423419272559389200162944304193959215700644229856345509326815132776392501346528268387666779970022693326101894402623231048935694643236821636147963191915117030329182482376606987319095306178482142383152998738536423568994212674428207625075051810276443998194845839127229024116515408350016288591893304772032589034542687964601057452305131044617198957138329068901676360428728257601727113673167321944738791042377451868459933287650467724739608305663390371682590729056873218715838804601540938896422702930831905241690238742353183428652703658277067206854581639610407076363612274189493011066802985945261283412951453015538500422510708038431656747136284815768920304762320746808827665532697799857322442217357550408983345557176736989767096879474926153346433879178249696290300675252846552278110115381670777402797904521611584590994794023123291254413607684771654643057598725059281993878386652224207970398989389503074304290796760946301222138655632921390494115508021548754845237742054308682070531968171198618160577825745146308237454404652352651383195039689974848255368285977608961079855240360647151520361741024473521045741907262709801676907207376574837051303979616507070471623212337714579095243932093911647719640221769910714041720563971489321471091964972525256738328982660297461105512005994927231731507950976020500708720768348255941196519657997809556251308036400065899025510184246799093270015430790334599573397312247806416503701853245349499128640317859940406639010963403691369501854035954849148333181992515386520754525541893085906586056736845487490958178520297953634778233464582859033579765033269560760571854352609079373744092507270124593157424971836678092619079414583833439167242757133701067349302355870303850132145924877534439739935911822555709455541254829544923135736588753737343377998878040691306103623207861085507344387840801777521129240482310795043336997044878852439192636168236638138542369457074481619732885997226587809290884474519293374838454121086204681164185526044772887853514987905051740782018423954641712984067723553101194506909889685707704125654513092606030848321075816591167325082375222123535691561103126366687930385626319799029839233034882110984965141179755429789449431441396214549764727501656257159890527155357249772969484422972122225874831685803373083114649597884664651801846845137043990714570566009538616258573393681100723604339316235505264101132814798751700360999309612852187949809497618638464009813290520553156061150630512641206294293627200608706290624065629822380091101431590202888377863732458330643445430689321454717266573295813673545167278592958479216783903758071748849345069532513414009165594346657561843082677480134126705821814948223205278892873978660005456493000375399175343395402101361235839992936801469793219525075741212064136683477266923187944755486673032075845622575959083910553170368830109738212715244014584903447515583748151724019183765320406257648758875090200717154559672094693344652784899103835555744628128109630889536358639427237637469443297520780279062526557071256720121655849942144811863715648706066943078017482983021298239898179074433019109675108175151402744309956195458256130594784777709369093565911664158317663259780267197575201936109051957481707646622563424991274742180349335248619147785413655847947047484773395043717524291906371212898483061417754625808428303576978789046095732496371907583824048830913313435080463374648648526500265869514025653487896789796464232722529997502108305719896148814740152544192346864531111151185786669059780759035995128031341343846060757544893177852294285311896425770044210879713247752882917585309205064039022288894324209111971757352949615713818011889204181279713031270871996946035401515342708073101486068507533982194045101837927301638530727249018825013591899819882649474351858324547901638271341377162285715900096029869402077990519169951566333841774581235279097981978460691221078809582626124890693631342547436676088457215067054550169841826810097586566705517345175407204979828657458307696038657833852049019717941308156328585919665747694741329066666480876316653355668506757231854130621628917084033967479823944185286589398343536954733953480180671168661034066288916126315833757377137996210383688105139455751419181090815424287236898248379506107481148539005527563308231789172781417090084337954561657016633880926980143525531074258972484547037421906361858572553573162653446479328561143413043934640961616273735440600653070789047554536135308962515504937813316245946239895124109122770624410818418055433132408601907207261693872028475426926310071411043017703778942442241493107366342320660413197635231892934707757046949529257176665001838731792446915878420167675782247320293790030366097073695992694685368337384351317949300276570741585253405778328411405885235469648503683977449342296673606585862054703938846004578803917879450333496800303221276073270924724773523188650278553985202370491396942117530164600795207402936894992620197193883071239613657424664566514611123887120502459615715659658739865090476697495736180800043951679857275276101898309654827487892256017350536925469207731058985614055909679669373274115162589825176239987957633742191368848496395949796451475213446177027143469918635890446011436271280195009732017568993595592120054318582082581405067839426905739453695537750863806007540721574228164929009408581216410993204217934393507905257363880025643233528807805707853144297620065731127206004163260704244975431031332617588698826088529743569591632486040672350709817431272810633329473891360172399798479526146693937683792237308081389254776298511538873998575057921944581211076613714668651002444578246367781409137860856729818883670929818579129344922977094248073810214618394396535615297472667542909180839718370973169247742916729086525866342878566641407018496138504113226008731063254559122797513566244675566453021904923101106357412512369407019628490390087185394763587177868808389669830200448357768026005423283460382515122381628325413523731518580398180190988233048391426335571524557840133108770151859502009913329462342363706976551565545796406057153174190487410390921311350424613898627088128046682446521677214966216828790056976416031476306912204715310468484847417973106785636694273309350013159365661801952422673522426377353363150063506955905217324502118706534124335830524443861239428223488756805016165996183681144064699783443151655441569687333153956337705133388797284490515038886860695657433657919572038350034570871728793787161917886907987453124268946653637774241176315838274589307154912885561884316160534237880473237141043040682845298256726019871351405135782654200308586553548245003060915056159181799788850541633054859735170111409056053523496792763070631682708453270862594251915690339876529743094032729089087432614200004328828677295758420167173604445600875453523060006961713277370956046224752324151766204697629106529706724557576433004385523003200858621458555892415590504380676560701548314673063383735802979474326519201420734771094407607603442854884665630179107057530574916798126368540104798687356092646261983556982384443372545589016664045156653417169737710451030469285189065986395509246707248820225744702789333264216145135231835832665705676942988143834565419009913026638791699708107189397155358405026637289195629662349256499699567111071971153498329480974071788000884346568226574222710415965967120297324189886056887780918218252639142750395703538616895674686250540678538750870752578883743909382315080220668212121444745161463675640484063664511365713956890698250594900050618366401376094709726501799846408840629913686574808961103960686430853340420129567464046507534544286070730591118576581006393917640894697829484372477225579545984593913205354534178594137839363829797159913685849717755694792160795708166443806618467073449092571045301865777856080456491998724926857826932261044958412685053821519320223484219317851214983614819084300654421726943580030685751871155333518685012606378479898415871734206988843761848086633046097888354243607429140711967790101124729824773023292089005329818905882390087179361391427251120307149922139714016368445702325135673050719848613724872834353556094813202735929587074189617733518908423894935014870324861229400734406665646958200810881340234227577657613641841124632020286571757630582486712701518645234115843062802122877389947157371223426397786947295368319334919615795811616671958660993607222438899185884733160961630216769087576954112312883981600361893521252052693606032107488157176805366278768132471512532943971346759463870919439525996802205111297852068903140455043469040250600902557740379793364132037331730060965332864632575842731801455685964651906648507748224382904787085241620152893793866212025173200032116676972453598223470982666186654793222668856645792780980033572808954431025289377269950046372558042994179744398008047722509821426793749929739733659118209079261725594181182656642649800342866508016454631685445220841512088995971842245368361934450042471412853538568588963257444327034809614130467315884536839041642600143031206416760185724357743318545108467910387443402765258152001523147713995765381048454342449184558339837762390673440936364791658665756054499236310715564463923146145361846135276400095843367744947679188280837415161837385857709681134382713111218446300422044119606055460793229285878759744872971127818882016288089876010716712942134550706694182147893417267974651905021553936590407374853470174849777004722936578782331331400430671390671388082787971840408820295147000347438331972720247204371598821092305805823865488077806439314063413739404719166962532549895936606989131327121881069300584408966837654774002109937206071227786348491557301223988137586110998022390185864488109022676622622128337737481832331314962460638813340389049162291731189725235561122009799992779979876552417468428940174189296538944816316305047698128325959875831760205834632394639940181354150755697071243459818007841530801659496950164271325411520189682299374931762044905700547997020010226890617053028432355833819941409874489419593922095191804927079536590676365849027441921263434001046906953099297630817043782115914380779639727745287929749758878887009642638875580849284974630129229734887251568378685205797876141812594395004396786262240010030630286900841508275054031164962132212305764506893854720553005260822916534570164658484807328263621224011392257081785501074779214864227486301948147189189008022677894848221984040804064147886361726869059969678525739819075525477906737974599724538528930963343335031418140776976934463203973003308503475605421735187630599293802618002149563121653819015885166201694113438473709319091838979161641903705076884100333092052094836286833645280188116671408202758672833538256099842268636185188601891694030699113760836369665283666825139216296951187662020643547028650123097172451453417240224394896140272302483821980749451934338751534386993738379563235734270102061724753321176151854030386772195434826747283843511592985484519138492067590652842803244087450482903620237505083219460864020293926896447369957585136501230789887407995598715921326344586779530080418592446629490913936834095240959501830790666659883189631555958509554201576080666300399395011531328146225873062138460666921289366606840013256553717158384089301793425582288116216926037915458090052017588213919596415911251649238652441140102241676645902861716653769589839556851371861611622985707076027123759445171389564265119108687351449259496849282181951372588171335580828668121870303092170175848290881436945842837751795808003730025160295379597645513641607384670342268964132515903564689129087228695113968312531528635958999969835545946536487389026941672582069167673323531603687128552074526077451776092209208687902640460101313840862079160364810033427247514957399641338091084198723567922311420510000358344733053562831738549353875500444600757075648545019433068281090492650175580965708344960100936339819019032157054897605025373807630640007476020484437276616831955005989773198618368020312134290333060089477004037331217922093070399918321397381788007256681127134629527109847607734164144036873005252586705571485250799256329526266092916947068834332382416361663381217348121142835444782096552894337151744807392928802311952310840658606086385160244008279735244663869005809551223944999803366729699211783123701360561610590725483157824381833988723337575346791552994394050144334098758244439283466521110759487528250969853965866369749147115716963167703454565742344219874464850370485075271259334384403158961239083426194432724345396446716444562780615055883815533850888996462433973741422530023088168906936979008054564439309468904973534085586946620246179338521247608324515859208104879709460113943264203381115513297444103498928592422026955874363096033280425044264811258761898017215587031129902632013133324844295119160046922882802443694596826807013698722702431221701493112304191071558457668236348039356964476707136278051971582268955759041137997981732799529739480611571929016225494294082097405486910594253810705860160976053627734765753897888889056368107114613684680857788413121113233572398936186357617951545129358902647903808464317023374510710481406635255866618788759652659913483406417245250471568150370718235741228259121630032291985585404394249070144231813285622311068066957722906125389841446346582951065496269276067022518452652439019473446902959419826848000237928769425369915084746322459244516278430335463480497976572021715093882665251552917506477191542705436614945899239830269782588162404985586328521889435922423628902693084649650671094582568519521831140554716540688910603910729869228535416794150568518376213807188884284752524680767453073750860688604522623556519215315615156694997744648561080981125746357404203386534255018833667044661417147548179898108347989548789914735977031321809230987996290488270729319992792344588899388680490387743354267921007389145105991298836685126608146759772773911899742448376253826732975645164272554312913255177716277687120217926600879720306595107637015575503484455670078079750222841258164116325519698172736357061500715567415387938356399826778165897165522397661044489394875512388400478951298175856742650730041284403823035884934303741856277888349551314314010819925473318295334205010848729952867479924464047671205578170572173033818920762395344037873622493991155109125692785759287706987707366205282159973037005428759403345685240339042969030649730176168922456127376594067654538754283154749547841674883157126992550536553627793872393983228707593111268628386250765720306532385971646412203795037892489192075667340030358311147146930551937241866424033777303624131901553269219789937852176404790004238540219058452739487352537052438962078148231502823210240845416516016422280590048337449629895420391593253311427809582965694462960388121341114721756741857036201036310693894519132107045983573490799777424555970205537437737055029367550755895985053777483186579014046974427037558977737261328666431863329512122632035849159344977635441461416919860018597814103815334670335412090750728047854965998779525963727450460505967095526609208839659227338138223003676241885892590029021409242371372629969139076454053779316046230392200751151602967773777935460513003757292815767602611136370510650636990836103124836038638383716506445460697030866640675377142591354708516124080605049193279122744002982247698002037167519326299330107500069129774639352290740034886537307716665425835210099787778638604022622620953883405185363601236246834782966503704267822206944514089418986893142072488294268609698423249371618006159278318581281043278099953690995961325288337635988700834120163846285742069543792415583553846769913315604982651704682710917095303985383693872579846310500087115509468006908142671940248242477736033691309314833792476539681543322609926409988732598219626976346322139214250398328565453127325543922114022823717953178305011900014733400243209894135993478736378270743724743859537426546366735685822959036905430883615491351584819988822867322725182485499189260211955068420948579202014755234889381392684889726734243384597487814191429457697717083816534738591920201660623179845713540287027659128160075471604056889477454544962498836736920683435934490118163369078195414435069694202650688281461023498595007168512550519123090615586542601359712633643287321875789370342521923527261568017328847983130914307964516723426126662990034564343553820376887181910018801755267934825385371395831435660040453199732767803782939850744461895174383636050886278191859324607999544992144764375093281720308568903002522923527693804562174776705335726786039053132098169864656934549399596848439211176318725466870754504636265321436342392739353157432275090507391262424718637337555315852947797502092487788937029493457144387287758074887981878800698730265405230406727369447932317060396028536563619721387082685081557309326871576744743885866202622055018636861889714035403609381885419288352180262225135336126097607751321523397134387538350030502754130031076287867780288351876326435146610743618345784231745181976918833519905283108394611246263072609743628145431178208586526794544959717150351126121768992233926502546544141458926829046917883269921192576161399713538179613087147262357168477195909110197436359369480492525205979899681134698529204664117368922513722210786877597075657492855556411092595713601916076605116611312111476674702326235998476663758476771327680594760953673961336069211167340712566366719823410299989818634184535702843990998507479070890265017610754838121420097751232522351461423993912738802164555653745279249272383380868036503814830406119827846636322167806192100800254725392679851239640084433937646766177471865272972940134880853839750519111233686581097568491979765650827245596754656322318759643524760216594462603734249223187824523364394205946676658334387570517832159257678205345640892338006719275608250052147946162891329080316654770384536971465480036280494065539955192215645445446090659427193331403784418705257714359260798523696587834398686227895562533323651469461384012934023412270156655205690299966667586253095541152225860089398010767901556724536512408791057235932098117058339344190499580041299057402529639232089380580252069162328563791396244019757022375124449005245695763886400386132174006900030656022371383961551300452635164949898264851981935969336173983010684653572461208048455797993672665495646505661570139269200971016736056427367978125999846530452822865657086930390243664622325428282064714686337286211309276462169514263968082078800927938490009665108718890188182288078296954642511588164428665481562701944315492399591926479470856264645289170578416041516006337658532655637259297162384340336928902386325696908873296087496761726129157956073463122019296360214671137737093044098352756630612085424690937847004857156499669437872338582679035666462759683697580187746432196966804555386321408648521927889206534720172407357531010468250978887252381585412327137788622307817139954061413119032259117871832522117395927251975439372999225805312461200600388859432140910874482244817636244602292222210864248000732417176621508312467940923696927702181410131957591495688392850179977687797587581014142892081880476779185883111879937297503139792223224322192776906553429047501425762492620239142025328895706050730938355591921331448405555530396423108565617151132264280480472423953525818968364437028731874071364754819626426431753672774591267258407852720285234706783418762828408817192446990860709716072235769803524121707081395472699633981740781282576632844147119260558009190343523558897870010671277216791367215691142319671433939078140898399684945380337797754029681662376441562343790136003198952981857332311988896591451352670363387256485272943550343612667394416667415868201378746495042411575507671268011888075057769380621956042971411677504012087169183748295387056742312507875253682822796541474142904178929694858819259344761770531793831815437454867808328041871840405295448316289626079206531118737307439691628355089107421368624514139713762273016983585786002740734063767019874009287561401569885434799935875518577438842735771563750423836766681311688099047792488977785201611608282652830174619395344255075674984638556147682113261019248624671743240697730388072558932958881883258091972857340188087259749006406820418882276085205703359931391854109550471268274644138800036863148478112121441185225315911551692012197693092492095772739931767622940872188507512609428952624183952351060319142149011992307105426522432257297506729261646449735520994274824765536435800778859526971931791031413353478490245990238230639704949862883506374765029318922298001770059347767004953164231350388414663660283318775123342441451959711730218480063782730689060752707083780482226834858821472311324317285877773689206378704854035781671107498078812228588160712072749962133826411314925315861901606000506362655563714592179068232040822553972824000018205872988588431043904685213576681400857767256893805682338002099092428939216875794511055826394747202452817657784048738554415488208756619194489737288135426984949561357282148400933185341501927876080531334369326266865046212360237832791685886206772010116568879792529697467030126745459183938752906010030709099190717738051226630405225924956641745345130637152861260514521539246376182303225407868114489689513072376419136053736307365582050462702636414810538037433957178639991116069197909669439001675517760864438252051916977176990429943531671816651623576499070272828427172544286764011550318322070717628522019864748674405988462737761654641260271450120561694724233819813011508730429218395400397461493478966587672027464125627380387774466734363131694645678867944890985773697568086293138833589783847825483303395493535292155631573484264392743739949437793875750334994981145078286155148919819436889454517699158782057871190842467412196814384473398308332971077182018161342574954847950048422137059787521063563298579794625959205545180736267663065994470109299471534010438010962758848194907497313136731620926954306960281600482700371851995897276365314687093675631734450207991803066963609855594733625461607599448138533792247026873721696358224135540065619815858928568212850716006205586329402599957179811040171489626209171409208425891904107475641093578898437092025628412595100756039107663011670497037934862390133924973407873923185901223196685231146304707506243311250267617148445666357360470014221994873964132709317178157147415130404943916838184466140663176179866510342953494659445945047708021450122008210417289743725653647715708803595237148581386118063158591615023315248721987655305176164126662841369776538676423942149227473301052214186791371251562081861340307505921641418433104031729403525340334504612322025228815060165716587154577989055003538261718744960526065715001275547034205156255372337784105774197031615004094865814511539637640036352202227276130298564688391755534746772660559620446788096700557488679966031028881644897423527326851377683454205184989344523240889714602304972248245966175321671234276714160113511189824830884364062091184343474397052816886448781336454670026006569051764280624828890169679872373782285154788117528588890824706276858755830086638379356500552573328150469103149684972144180938982167442584724293376486575803585692101218094447709425171012877521935772016262118524548283227512670267132301218922834490860485115049516913083373830957371287306312702449914059612748813504470371052905926136172077177620953247314444303273124969359038632522550812240063596045607045327892358523109777543706697062934005074463194517806161732182211855698567368455607499992005493744610851472796337341366208850916315016456742551679471161911225697278208477521503534778286115699430378194043237979760053444712467477866554686602691220740831532380827738920908720013300288919685596238337208938047049348278941745680593417110441940846546853222538134108695968654749367857242769889756371696672965380842122968242766353407764746174887118485296905931064862989228615051194285509901623395989517939372832747412809787125569355333179641535373502547235050065584617460774912762032579925515785632154415563711819536673109217626244900880598358989978405475039158752350805378796262033738412878686440939383321857145703762651042968678655909684745592267509447537751180037459116172541288222787438125528876240259676518132546508899972135282512461441975452137555043426090880291831900041215629263502434220506688845568996454398891463966692281482771435440335141689021641038639611914412231904405554083390521726910876277784374175533554073111641701135820311258774668316757946429889159806389274518878612263885176926389683756172221596211349950989059226255184223863543022431127271939131935569473128529513420531948856178268368268771362141233683584931773596785850749541417939188836304850490335995691616053511383687107420600945753069297258818928732739101997901796522864783661991719507438919714313031172775751668182912646627227179654090933597055750923862341719831959474649719953777697750836097131785845986032270553334701394925897142794792758673529115218834606678249710936081425521083895110681978983464176307288092701492803313723157016776774356316086441796659567042307156685713861963932941718835632656398806038549870693199109969620773097242535761242005531875962042041045953342851112442288370827958244768516904087738483796683027402983029164287912203020320082371744377294992871953531159842083815717705447692147869045467538316140371969206853746362475701275642602486035113439113280893904065337405827143102962284643384556653542155636993896750685775815374810188231817175448883690684223009281221103681877523201783869660822679327515876311794300523094123451926722439335858212199860429269550882352360025536336545072292272823991554897424245575221244032176761625849829980070214795207458453443372204467099471535749563685644267920101735821306096501855703107072162405029640625796044905509809546666769706954031977747473419831073622211766391200828230501721907856380510057815206033710757752566621411510144200297928686165705699374420506190017736205702911076001764737763416766928245062889851859434245835988618211099093574369474836834973423443332566563306038537038174693393802353663906391672936187059935115321557413234176755783458267976276244152053087430349121040656315546812131920441482982321124870413652023160961107629753840067769267246995657472790293883640453646017118328983120868068937838143089644663752938076517171110433302689424317636397232816691901896567383519494756088461169055976180997517476575382540861066412763074631367392291093419800438056665533055262218129585728393640837509662171992192369746321873099569145887675720132508510158606647422438633630465735162010251183614573429637476056841096178969542515225982682960791784841732220638412665146558493985847096456274222163578390014986164034176952899366799847527401959976084051468715007933356153868549500339274295968499219917596425878973923199766275049120025702147742391223639980368224321831204672971891756541771654399960577638064810109105222948909736441816182567699062451808866116464421030788660286006770806840078153762693266594452844088484542282312930028647042976814444537027845606666464736620233587509371116069542133340357426430450433025054002943262893938228851612696889772235081626213935852140052037743399697657035130126254776226777449864434202087665478813249969374879742892480652880258891710096420432533602195996922457067918102640320782198597968267945204736641132629150627591696018563173510936353038635901489608422512944665821986073938014329060806794933943910929596564796481312192207986496299280586866395000245158199924043311506297890477059062965898519494680827700454078641009431387793322734119093177696852649653763666932390476802500569896566609345902307186240224650864621195670500003586076209192902150820553721905202783698075399937412329205560521081365539582931042682791224677101252267906811817106478609966468027218888052257863971135768158541798610442588152254320711106082198542126402930261141832639243603972041102012915436502966332458453302452167328958993217696045373754161667992776303805423570485731974395787107891629532356292922711642417606013994666136696979388195231106921001743091704610572143974599806619480191346591523413607856576441925042269945522454003626515505117559107984730329547741169431632664510099170607449702730592644453284048063733310590277810997386866684024137817209946693927267186160508873990121159758746022407759321640038811376557971743352300560444883846152164890473915340960946101652519510993274388903063127002491809820065511295630546792567461253371414890511453850617001726301923437887879293581381249344762316820142281115343478283815639268058242169569808596501365086531402109009351136001875712144553791391847063762447899085023974176272407666291811185121285592485660363546561609775546483859457580997684121657908713301575540243872125347158138976083007127195017626947969712228638872221013071467597531361560000994545126147410313951595960058460450080149813306359857810000471603054105771464669868634175451533271770015731972289838871171604937458298873915339883884316626111926606306528233072302000098193191478652658504107096277711658872311755080035331866388491700963245634573131925911979802036616932341579153454083577789878202944943533355178774206916186539023821601713415816859711786086076792106922603582467988033904719872999053027990111286111471771177881453219657909512127745002799021150956960370511152914998171462395023238450188630691904929598745443870512974793456351352185768725901300797042593286534473867240403774692045537307376974986273923110627050618844037055448320930228115365450939453808208249665166686746652277894637245875081786257841672665602542582455028121850752862657339538752327688092484543118858979308977345750645406086782071230524788995308662486642938977204843059884149318296647360726431667116577718511012158911593840834392414563173097591054249537430203409778760175320757839781873735899740740320835713931409907866929688311773573339291627667684706223860156392509545708993425550948269529449373469105707070193029676643279649933449851173631700474187212853974651382064906369222716644439872484904049528204824819017750544203607727795823156133196036652839388968261978548825965410205872430155506757579248887405607923077083268753505172876217785579840113674644259976889706649029815990558268187140781635231078346562536700728965724975803728353385635154537326789659833602962572766338418941013679001992912434957817880637673974079463795318700968761946216685685222458087256163393902394772668192777312659324947875635784362669751264263750704066829509426963419647243591847852073653988478032085084007864689868846460107543070107363069863642685456390758447024255658600772456991640109461140850073740433008520557563513315504664144008700828929613774433140858299793505955904243289143540820859006744075891406204154169880268823674907416931687952996376085677454696308181571715409698359348368240417500916390417463754714929966863466541984964659279036529581862594672747344842892879373995569569826725917477575525243339134166136654746271895749834429660018445083731749251509870892681251337179704500237280927124153007597938466693267429794576732723335565005388796154878616027916911874503384808200581184376097051905447795028384050922813338812494921579271195112195022293277100826874087541355227878911697825952811014679914973576150489305578079039655654158596981203123644029940382476949978462095501385859665870347315233901285313297487468528755419086456699065476774975872307101542881857349632235201464346104199879403286783671057168665131751166919331777626885694170744182064978313552511442761166040890167515431121900106095675267061286757356156026865824222951175320934068267806778121264179615862142126826764395129070019589349706216733800975872879982504829446165764811571087902955667899241038369601273184079734178352836724145946400232255342038439381016325871410684534761013008127662559109478412531873764617548027538763259342535073286749918230044811012594551446860123323625289348639728715850879255366874348329983902422780859327402460070971090821112936173611376541444972701069958849625403126729316003572106684045408390022348888912894232445421466245796285943367704470062708284258659565823273927864121484623527385585881106619842284463349348217218206042294596599592697869723323719231810770182331742514409294131918823122759724292573386440741734328818231523863139763963910095613645854825505800466712459866803745879363982383913891577664624400831168486465244017261922787619227621971756982666522083544966131221135636551710487894526772196624964868488453593794049407546346215748538953378276328913796854708326146706668268946732629471809656443071723165904035409194805905999728356494052713391102844677080499024863618977442817895676751720626967662547259124193610062312545305213609957501159510293410522433688250667216346007962794202932576906372287631664183659024979463830948514619324807278071342851209631817828095935942981255395630385830623240993130477940667837796932144090809589178562758115085466834241996777690060399966919977310561814660443778465176150597388031318112190354001263564520932947698985741591766741614739005728178783670081952600871028062691672037323976830054693042830225572056539524472059389721889898707730166938780241189040198715782250265990516097537749413521324528469756370912512083895998513355920339496630587739565956213292255224034287533186267862974333716317545989619993877126359903035307557024412700138409694689984126118354987352168772074464289215655938090304056859385717093936728150541792131138524470551515826566112898799061087568777950319307850973946626247055119349118073381600188947971361591313124761432537669562765797566265383239317123132370001500858741882069369175528740366908943906366413024482172654151817165629137127719795615008232153754512944716425359027754198280889899074480386014835960089290106820789965440830858962415483870298694777790609655054086869217300020794724964569999019702369146186578929083213664268308138795478029536727298903829974625914622729208799606134467711467251451634041924330064745954739774766233921632932547837343920101392787318976503743950627052924409274198495832228235717795388490990906076617996724118493069416930805405560188782144044877745737989712215829754845591898424855662085706498416168264817508865996714366639102100884206157979762917469100283775346661481478540084801372085989893413763006020031040537488792216092019012237756771261249411668361323437138292691398633315828278481154458921514983720165029539963589945463153230510243198055196887830658328915817308989917688886535858324842122347516341127243662550913992387234698049700919620743027343420743932577618573826485368235878132376738707516793786101167971223614341283799745652417729593733547360112167787897362680925199424251174857669695535840094506158682294740240289540115394875137016262200378260125308214035570373631655891725208087287160044811859518539190206890085912927360675570110806233724593767317139514373025784482097514317856743824998607284877655248969524844540189523928423459095044475214869049875816365182998691026765155803810659504639206685050048773476751254684340653834279025926716207825097534920280673187609038463689867265622008972597948089665475177729866932778433054082779164578792380592950923075438806808609953215725188721984733443442875432954801816580241315079047392738988263626293241428943231302601969557339882405863412947060501633164316228790561105529366684283060616357438034265957024956613760723610764678292315973317397538509352759766988272800226830901367812712736112226620349146765380050753295352862415996956017328645853881228595632581511987927211493455056424277023889641096072414338598557693212649302116759979448709527848484396925542276431181642327118511703278544825979021116092844176544523645944982210847392082261470588186737409740884133333106548741063563023736320425393652573166654943512858596236096096784665055399779497965734968706190566344458326660706786679855591374741078228055348155723941207794700617714123150544721491925170710876129790867015003649621179158757048086425970936392194377435359099413888884420393468262090531984700506069240768785020740842355530101002838339981678105618104967444569746071955039910707525800140986945028587006972254100259375121690921682780039684036338065570184725978533159944488732382721836333225316307045573612033099399666537502024005484694967615314091820507128803503383845014934740362084658344782674713420702472465817089505321482529422012177511863146516463869249065778451141615864381809865822778424208104772972074079213354138597427936439117011421309157177915094778898847591233220913046757608678983392113466779382412914650135519795399948306928119522731313187930101000455989371733931515711580381232499454515952043384435909418313872830550173330884134575057620802045310693160230297909736233632749035946156726141791462669922979576022540161491950462548135230206628754564449750186666227868578979631290481168150370916727774557754800109017405770962955435536775964759711392896763821354931130515850872549824842261292207905908332154420070994821211573281211273916743745285001032847511867885431761058488206946554732180464067585746074437203879609951688820314441218735347099993154483782458251200894986722598594620626857225308807149168788139149893517632166572492189291509093070960049185816940786906545420828093728879401711072161597992577665434302346608477048760842202675343315366521384257071164363495754721456535660752822543744147749211877489177128821862047913107781012078182803312879337227631480759234768385538056371085133060540440983809840250418194248757741630011326435942649784006293871243662630930279038518194776216864883191222958177269177456383332932754633161989620040518400628259919593912942745094528390042521916077197616543528504399084708140939486229252021437065103840056796022283231894356759930651860990652860732341634078786739671685941145261957260625713542146636716902194593223568340039175946071911204366240981119027362873813574153766841057181423248111413629271809990842878935755232013812693600220681350670293337200438671894560281219580519334900723584051882224165623839026381722770970139565264674549110972611483259696594080209228792476029236290246830961549931415811562104082598764716312204037052356079012161197929777780597513173303230166585556091816713254166613972800705249413009586027418644353405890918433810650443339700824522425175803876478826967211760053019025228220079313544035669782275621444565439679787402886938558856454360215655652185465743848849627228629453705706380203151667653605230927667065282510668387219745052167297941900351259383875264956846311953027579827272655025902372402559030149698644069428786038293392268386795084068089623469828844952198838151023618906552460072928284927501209549779125362453626947032345537383272499924093707291572173460993233257021968954699835498458417144255877166222863082042595835538581205755931262904120011294113165274930994522324821690543149087628167071975279814433249008776931498976794377556276213809649667434866596893870430742422274273708383171571132500725913468037625183973063120955674835120446665945960301880168409911916890889501797594233800121312543440102435080225386323200095969301402784814891564956530253082398400873701369822988691226729445430982326506368248242547057723027902994924534849823145262851530067069215668753885870401916972293043843970333937753890828748282601923590945693075517913462923180104253890107078638711121630724000027791630799688086974928240876104573606421439258757435500562440092756488521071929000073946352845541297688892426109635318731174088481099490872767599657709060186556093910415712005641680332951457675033478877085319665300479827655487818699068954848309601321313636196545972615790200948568945304376153437726144040837862039483829887150718158031595846781285103195959123728067562392528091466090922081725909174396447277050703687347704570798768440460413737037863343086162164701613776610653348040677563902823061930417757822492565814202229650247949093219953095171245059969267168329505658943487915212126103499622081023919517731719222734397062835175148665193536642797545651947240688971309940842467664704988115541411296402773350755798585684091565659916677598246059367082273223068588011907496904162374488225999225392030629508303843645236501116929183591101521052342224537353505046428943168557997340551906270135622318968811715682658627582189752723906192408218950422539143848960294993782289750201569488109333431529126486345895626189390894758869111031486162400769128842488755113656498346657610793548089078243940795384706075780251016273410316547448568674906950361170889764325740505887211994958610310330571056901727399335683067110964048555066357404494369939194992678334447745147633949165198157137083994537224235403555283289715846927751043896305367951819754223672270449722879099581005742741132440282955555716954282877167464103001384213851509979530658709290739492884526216417075159888960541959003468798142939182803424637180606654015194231337054760159366556592364789592358685761575647843049720303505762878982724915353221299203699290865426750143472215655501958421925986511666803886395937651448330309980076666672119530102845662289723979503524324549723553874905737928430908751877654233574087230086459842634222602435392859085094144373074230780932531323841927603324135455609784637717647151981169507459643850034126215950564789758825643933035750648413467140864628342230778261954815676742123684566244241555939421902174892018927984648949708617784816387230797550219398405614611374618481622297835711344142043044285791551033707499165557734074873528320304440712834179822000519712388206976576083506734420984986595483148493639869956529815415522233147948469876442787314878475343186215591246494410968718477530258862463639933966740748616972461117804515620381454052120008939720522203560966759625934462571106431761348503918268693781685001170506147003410613816627023760613248703390499919214952380785384692339819419001591460790432520129884503159746787720016690655428683711786103127541125691783825862282503363401783758831667955044165992350709628660003595867871007423246566846002920066855583739813933016389094969780081029384827089440819423867334060170078973994539654875673452059182375705880422088308918389265203008772071214128935951191827821676631417934880280284716289927133863497080602594147946779505958605092431856562984549707598504226052030572824503681997797036181955506731420847681035190544731349161421455501962203694795973972488349499863075382853954824287229170142548338330460462464253091070106102955442443808198692554465921583037011442016299137179314284484728823363400307900915030190138154615630095645618320000090278280315012654247570100575502929899092426370129736474694231579868821685606060041994443642690061291042540221333385542289087127798461656760692157125325828166356800182338662894668578647315757075855416467347828396272557377358763829490932337363639219294697457200450657120326709161773400586172339903774409847172418955439763760140663570756497044455353535968011377211735595609730820592894522936220798929890805964000052918108441418394496884320872613333994458669524622140832030191037119481967030386043223185714361077533836714691703419732754533798461547912104026902038372680040612509806241707177885805677582827796214052991041128353124634408692811433067222068853377569742261231360782912456318399207434024224462140060133395199441462581375005891349591590865393926857393051266019629421041224708610313874851236251537577192634617177162802403683822496287318407751802457085566533017351853249589574809570872295256960393837714327661582071027723568969983780155154602909601630749240031123685217416126164317527298807811911218096639990468830479563745954759589385997976484258361287816157452418261634453252275735465162509009063270590098556133288689868046170808638049771497638775508288233508637686336070189542792827722289114026444133190596784070059945067490036192919685205555785093708140246857116909777418465663195634203017277806775970525328794059190351626639282200112555478786618373157603695048201098647449319533058884472942342415639236285240439909595931039051442792140937572013332725380843980291173600120044998008064633125325093940472099365929442997947233915228034854701975726354640754630351435552470595567651654192316591991636476403997091676259923309360924137555151970501708919133460087997399076709529098626358490270977474724967629807803980446319706134931755242253846851076334547052373341552668086313213594061791518335578405737573817957627143572276908142618975268247771849989556323455638537767459882777931772669708642305871905184508971779063108505356189455229267517677001838168986346937917456497653013697381791015887875496110028622983352571620780739416586754848966208913746845573010284782502190956141528344590517341213814244291142521621956689838219841089509716153316274498804167041893785447151048796863637445276552062453736565865698013655348225043482952451927653599020203176846698496310610680802878148647187825849002873244195391495889945580296133732014824690381473363250966097774644524916865957567954068228787760701664666583768227964823204659918659273527228687346466019972627078440040423121089366702380905346158216130353837914752519827467506779881021828755549753693266852832567725111580446720212007830831255148975160483217245749408004911673781725910361491637156032946209974119189542656063914594133752517085004839249991703542644913307155894082976106398211353307405183518757570688399026820670422678390893121576952356641169800129675036202016289903410484697103939465011711312388259831047888833350046485249685172913181340160818074303153388687541226587590623899770688190589730438563598135043135662580687196969708264370737569706849730870305709612425380171912191082717371673576226992193156980367247086715908505146286336429470751550778999530104691180802429460383193266165684590933508695969980439653222180114663595902402794171665886013711222313032855889762283917654671038801542572025985117358808456870337477394937112029524169240902773313287321214279690964806070675751636623411992541875166080051570725372522354036892594242490827813126554090780692768657883886808383253128661966260007544313017619501162881442948684064343141680552214039558638718831083297908246464651004118601587145194881586051349215660314653924643382004155977166724728573119942530512645446330891375338234673841249381258252242183728917644303051895240946282207144585282044816856848282015005090844676735418153642980758797533162475354951135600050698838130428454030711656258893089237561308192349115014142565674741226936000006435330929280169968734234023045170446806858137283048250980434440922952330265593354559688776069250564633523201242073659562276649383964992987831511011106857694962934838721262866050638935926134842608213699307420987624629544652978028914404351327938642475829027959352355820392750266127236872333464188802587422059112811616315355297729908077482146511078057651446556524329340164030653384347415439032005875986769566498652054156916370911933866932019354034395140184098843998561277368140441866533064869664057027501875983158597637873275776125094241768710625220844962461939625047983177891935237003304902973067807474422899064601782561977680695905728336445884844972350471799745648314066159252539313035159933671637264138536796642875554539764306344526369445008675895129660073298184713318698651116627976271044948941049492812188065377059219404798454522087662904064309080266560839855636289039500038045319245057869338666575927365178191706166026230179590050361880056896041470388781963858049674432756154179499276774235915428555691431500160340148173711540912919687472288279125972389749010840098731696563241479413317533485624399333437925385899958738378267646257541776834948449873346958963273141423077389173732042578325002932987325377860499391216254324204058284441341945291836606158097043488888116828311942638397583865572890686203085728576715738710719085092609072315051793986496707355946385875210808826654634126717106393014401838861863206642327543456670463581175026531224473897504926828424008537699010632775366941429101625635657656791698375552491114347725681264230291939484687580095937709386069633148338295253260486623472188041986884430383869204725425620383886505085870201947494444148511661295267619790706736036509523595293588010065495876011705639583163577211372394628185697510065354229417893849412086938576503869924494475172705277472570469130132344630624142938072300226260241719438925914160722928760094781550356043717323908332753877486560530418913646980782006124859561067974162511021558080771044692737614511635417903301438127910262555384037653825640940734255750747941117290050992565026662977863430811509312402407513391978111119403562458286275650108413597013309569065296922173889196669409467858678620540501324215788465194779736786637636614664286704139165728290736838908283559627964019750291243310977513919360728968783872047280963296199157084765410860320400426122496599869125877632347892644796839142814312929525213181310386010482871395746517275526088073462564801255040303375611026221578959917159990374285967868446735212042177946766664919673745002310775328392275019261206097942723989543021889344454570840488484557606904639932655506191467859331016180409641431690359047350674170254079861672268596811967750491224822946674641727106904368927853968496127949053485788090272109094400418893180910423742520961877659646783020035396081195773987738031009781982157185370081725378072837250286760413220934054373536963914973863725972461312033921597143838142066669813707907140552907871126517918922192030787898800880767461851789936848343027571670040892278813183467994756805659783670278326158467965641488902686634152960433957321092098163221580717120197544740111607558819161010332497647874745291047435204283628270613479045093904923604989807997268966103772482532646066831761287759189939490394445848512433844366424865697863144610979075507643998122543317906154345882863572789378584503996427789633327079158247847581147589324186486013901037219132372519880197664257606386218707472319526193982396766490365127296543207317779549557182961625376668600183913664289243190245694574942716234903616551982764347950197461310637886127811073140986027815216400604537791740037663937322223725879749414058538500967841043473699585935611259509223425541089583906203250497216271225987838297290495017874850975230895867940617780136901619734821603448028175333382327736115859811055375409868698358107475980611674554070302471134333055209904670512966822313820015263159942899616273976438490590128190294749793995520106742542382790078599558868229330160889279789527196202271150611522877725245201375120403924018551062385865331092218076404436705970995683244157546333817143619988978379918750308654720452900611315304827862338210367523110653114938805060378656464478764906485844636883003169497259303213769157706677334115238174793593663270288267372472954709800247940235551837888097252512729526437995958798685796893386428032475470116048349586126050883704437363397298617188729028361575526625351580964399721014550298693084742223328326191298909340413114177971035004190525790401223516911119485067200007004692892131109543586555462247424961080989032020045095969571726074979243966560476655717242730264253663407992398798457404722401279680154928125161928871603966364175749768820741708725616480402905482216576842629505491002400673265092730632332274183926677533826728635424201371601134069644170587373411863211533128912204630146790046641594191628381663729217714363380632533397837850177658541935689114986169197604780242590143281897662952647301058001893028659398384019831405574541319838771620061613541209497401501170175455879188890510274991755097157516748623744549552450623705455065484393157278490505650067402083122476915271216718187782263623553433628102100325264978357267397937361371861012437863290538408812202667028193976602311536107525396681628017874678484676536860456666537530671813187260386801734343799169764339774601660248873828708452825635273511464639423805186658988249319450330598260964456080309904423484075228410880633579518818803491935489478254868504687657361919476719112125424916151750301074759632877293269523669612258454294712244248827627052085398527377141409491070495331021251887359181105673125622978669666100675563169344109263731089986936392048939110026281768297656020168638623627109965757325855601690780447843489176943301386571643468533078876253201959471003585003678371073812369572142292928668992660655943421302125728506601543835951470116956291208580869384906797053377539405445433128674712183926438903638624184263706735494474420986972223903027012457726861683175763181074069227320958814753590379745887362444787969838370752624756439376209778039884835450699013180388567845300460301621296157814838588291433110293660215461003260379223648646281460003852551692731554393867191963489103859326640778523801001311470497795282280536327814746812685197031751469869597922359163958775944732216593880248164876305689455259166896551218634046994445701933734816414724804988809371275900899541017191275409089630662832417279088944479817324505450366980778710987190410615208029650561812150345951179376131159728256497808205116377394107988307428293488041029707216602282527327714148309189826766776644073738257441264751421336523409149864988893253220539078324724789457425349369467550642443667901412759828582774408352806503284005686201190542860952287598332860906649802057846673791335488370866643949836297794228088568234104179239723337384642189134868381875076403734554258347907449834454974276175608028300862751777110276010245316493212822712922773850352891324335894899283012415817442039281452417687152269760003163013402983600558663867859896782458163840987268315926383044120296721630033007857091689191575825686754668807867316699659248438229344516295884411112104297123110374650999278991019192879795699435670973381529574075683958352242503010337363346087728846239881389108155614748390740978006144066082276249423550682150162842975033323583423509874723569054607085411652981978859299767730232245639075855845304404324710997492282120127205197262576327251090931118585719856148674529190847588296355847092433761025166484794015164269622825128118524290590229037541807435343354290782143714766871047938607529218934433766016761969112196333933050187726792845581114935169603993149006393417751216830611092024478751472874352408328971823488422912013517082441778068529188476004668720883813114442160910565282215096068851920389204571805480534979351562288953103907589745830176308511571505130457877538527762925168702012476564748406760597737266565173490537069622967433394240883051752320459508935930809107866314973087401591786794919006586428771433913513298946390936069868675265003057390983149319267564976453905120485629897000905847516913659121503533342139303086942045440293923041580903021669686323578320640628777584565087222584553622265195986393402241977392867229762515578127142685017366456626064552439901323193141126124247859835997381515178965188176432836619246316724708925908952687261275768578611642782128089260098692642899135525007571977365374671330475318209307484123495107469939259431508842106360194678220559844842464824873052657133075903991402033277484724282555422433110038472730999361129981956634999049823311266468303929923534590306110391010379041442792750671478794314436819542669571683539305505459404937274891974686504134423604826938130210259991834561385805772119103879136386674060894280048333517267435018571190820361319782575049179148570680119787805537123770679080344706063647489877549637410635522537114135666128128888111901785371625516046070869978055848981054244126384007207461502470501219608592826631390465826619223573027705274539159372698720254326480411752161342290692790985710953082130235532517194076751583457612655031696864824534930697609721271350260861592777538745323253275920370526529594593173468296396234681924164105969707634233189211102086959673573491003710007731764352511676816941478108133524001929895846944548581956509114807305719427520943873061441854499748890750859127670145157612956407095495975476677309991594833653992930723836446159219842756400833986577054119918061938697562326905323428147092782061186586734918910236831654467616708497740311137203493233321628753795037574304642556591751173314184112322070794795136533031105340026286089158528634535201934786957943284689310786474930277335285681690098261077133185736741063233880540035778243299163352559925545951242487164388555978547413139607398476742608678266506814759019903324738803960295793492239278885293556282381989888866561168118039447241352665474215349253104061152907233376593407808521283047012071304388700798650693679013276751126434168333221450142753978954114961227828887251270886677525051161070139177006793435523441818054252401816520084123605130157711215208975208259497309178988841818710854023133234735231426788397276323048502465831557695974812610309983073733838688537342006347372336984473370653038334296233446069617797536628656279872042642004552916359138432668027195663988723226987550946196113933516569333259772510524077774452391479901999559088614606593892450518767665461076918809297373539382178277370604473515314551831038495420292507833097793601770318826963502249648574730852064458841618918361027524860485559266929916637073458308064102347593385897024651334779354453914002202210864777028218540830111363597220360361709504961614761552295823091659373933638774026685115708651429890775851070101311839812465952515476254820701789641854463160458418887397788863965801866221031229856615993189866033664927373116987826233505967060838179037131038461864700546049738322504336461194806024255707054510523861911716339579867286059796106141096738771216355123169549557904546133552121869732084841271774487966298272445626694029341964286008678520112282618490964599510457885016165361960207770730152724638613682600155090745081419538184524022414001958431531957199350317486078640147268788133060636386236104924734682627865974509284670737829288094741745867056292595993138230614634854967863953451924345467242948731856982529246648932458100122578198714482609110053140080771966951717240833201090089745854544712329484346873167623520313441216028931235452027756818131716085134319091010360448942497808765672114560612490565734980367538810756965175597903138748569074016998114450793446339544635740946996608469930744918925838426359184052714464790852448099461028244975206042157706900653381532632157413932865850396041896506077499266125900227864529808350092163507390490975914654868854370559627633487020540539867254567254310400323967636952320441787020836064674859993923121141565320604456017068257753121672797656309316221520430152558571815284395964443398758560566276035049346548216153200582739168348833432088378615610089718007764813103005960210455410323562141058306868088994149185309277993602605007847487041562391039518910779579175652573511336124709438386492238055223073788041686702032109514523402890839695304266001014402665065351396955915679203449091658714898737020368948920067111171459040212952164143021049982869703054064330161586460786972264649150806679198644985642869097600049153779284268515864334545121014613768791374325855169685450700918459035990013403175392752727598387839308106598421865532338371182030438731297812817920756595746623614190607392332519832289651974416592026904595911366829338150405308416140396604727435364678737802329637420471450562690307504478796948516040160328512880000119231237095045333613227645500788765156577599582403847046620517553052224636624268694597234472216226082201411617597323325986046659207567777776117710700584329608010942409491614617955498781419369100336378089021210982878697259463213408803405238735037864075568663028260231553706206996882738311652344038119653995923964912933785168755880121720769738811573776235444843955269544901459869965294599299019501293946861858166946486377753953715439225175439460676929229964750386151411060984945850635581883221264583517618252882695211814581506036271375148259943921485113208789233958545144322337370115971740220112832535621085683603660458385476161977162726350740089606928880294521345841937511966054198498181043708168083261262458858504646091447163804636331081087383775841651852242202720321804681626171071528280778635661420706837226342765678465394036372625484930107527636378962972177448567938614340137373727435130197979784135016647757276669888622717138037713431137896919471545811516567262537457294387139621901665668281144342682479285286852761725202457975862163213941183373818154002881476065375320455034509740359360668564088637764443637220346789203247068912068962558133811757016626550669798224297004123085565613843511137571310246829858363943674419731720385528902683985402668616973335275589859965611138937803071260796089005660482807149407438091826287436424039095283082244119604685412645065783413460201531128730357917838279127787421249228788606832588573002952118128231067516525317162606155122373872710069868777264762679875123984097241892091212041260926808050993615299778025879418670190009677623531047660949090330178569547705251557019885062926718900255983051108467635706577724715515212618898367876913608913787513520868986590962751487586124353223548464188802927570633521563817537784111778920931467274627654075990896508092610104109623389511003102302967478769861384535845886643932146498523382664077027776835944586478819465867865118902362250717460358595428630095648645118451297671509015138512429443545171788715014527668915787393860351877314628718057352885037979318690213994613617359709388481853363504594987870420869869144258908691168141688460629367486165206353753707053795148769199191624312025315158563453840787773058373318033757091628906434689811680583367956821867029590196171823265741717895468103266226543191372472979313267523500204282776611493230457861133826809124213931041107141309988131363475996336927796005914348699279941721489962423643574551207004730091392453364414277396950527735233395575063452276676825543873399144245951542455484476134161841865280956587227654788641739592276396521658779481138550478959079730309294146229559874204894045558735691023045697083018023648840343063692046688942268656464478987938214136073523297058458523930397048348517201129798158449037715908577180890905503958939486035649071911415794544258148370362061142249609603017703908030069975174120075932920494524595104440083572744037601108149020056867140881434685810459578939923575717723708840079500353398725832350993450268988072711272588264292198627369980405718204941099100003254938996121263059034101720772270820313266376198050636606141430513443771869687316960119895850237979832770647935011870293280035774758041159924644157710593844030575552518272780500785820125499116393247644704789065363492694397171867218803408365394892673364716325830207954346462035481135119580383384987164482497707761144998781097455360755648322422602689293408342312966618566288050749829547477039514205652374348475337795098118542726085933865778690219022474620229811861262184958939290794550898701291867643571188780477033550574853433383093208118753735736011462357767609476575915858577963576246196034572322604380156668059167481445753389171590457121510314825863319477311929746852158195845669902904700910258819787351722344045140100546459440742453105318858188852023733534821585399281331200047892585882372123001564333702133645411211488646384660144063556891568726095900536492029784863967474055661308336193133699995549764317549826024215408983757434592376803965799476270546449570865649432131835985600137591605743934026648345382254046965639675323402764900332985308226414985913995768372052251343662678212365786643034607252331273874970251711333126850689614494396703594651448955536092878631973641062733663601612146449170839527978297475057335621137047639356906472114364048185471847469678719379011575226972451029744462219700187759042769293385982878293654717041677295533295592524331336397883842206223730270754684749665826988930277458388950944295082125574736423034889670020391952397330443526009851980331266412805722951388601820422751051363848343519021400556448884566774097160603980886737832894013655444519914699035828738247682098398459596782985739951588688410734595804112794413109589867517256608919649700321273815272836589844991445960309776282829970335271309903698943211672278924667535300737599059251298012561586171619679488133586847225574153732577329306343370665566769280393001821166644735372520992658890238144265820523735232449510005439968443600417795757195012721758290365653539559291712218765330464027010718661435679764482111709598523112406815849982495268261028657910340746724333959877225643275208402183854513385699805634820954329768905436173735505482483609643348927332152882754214072444920604468938246114116317152954067185258175891656311485297638730410641520800679302713391526948183364866779342076731162777483279584874044133761560505475729813003359134439553341229600130355347531864540794027550712257402085759659995763193780284328257238901082954358644173825204822109651253146020932389342643216534508540817613999273997808198421354771953433217792741812557779294678895072632931794530764027584560258315450801752258731501136446008332517415048690459009080908063497810250518075689783916321622962857819185241539584493555646783528375401229768482852234164477141653876979494479204294179214798214024166194220379138769511726988571985737335859235087359749816236842307626136371962541538253547779769493086098539891336242445613043477246481628718482935265182899373568361969061700886344306519621658132774581070262817332296918933197341125162921137161603112163040873374697969153344033327632135501120053304332361688063161738966504529186404503008330978101498348661504901393958337810235873372382341370046206130283738924133544473605007237444810182152060295093785697068632015096075556474383429734624066309270379210408284433238080648600617382271007573489058997133775291331670978328376599914484954922175913019193032031723911394996439487020319583258019045355018929369543216489058720756274423609526018271619119758443390712196675495035926701223541778902091686799342595225603645058422718312479775793275108696903824127077948719180022017637834120446133122891160438649532802126518012719063708048379620255873690798884889160076375384908977186685689680223742023096985197439539426151314886966732606051524570368552459403569535762508996511656606449862794804583046813934858926540452247272481351754653482665952586268857142892782357662338049260648986165760206265692329315515109079838222059098079225896030149659069346630973924515640220579760731325764196596432216243992157448566384017203550043067151493611154214855201479049218213926027882099132691946792979953981710384711303174207268197332905478371571452783489820098725928320646158990422634626783882417383429116681686574877639009427361636438967520744082644508354542353303405639585155908462820727775534192223615797957706299988139615594791673072313679936520834328614104723592025152492157400810028536726875234922893682086785479327044632665211145589816587838389675633065828861141302295300531217031412383737541095724945525574709270602537164987787658126455606672540477758558240994807573772345849586930009687224927625479067904959552461251558022711851226251692849919676533206868733852138359076536584330177145489885267246273830191859499410528580644278573078474608177682261617035497636479624501567364870379698691106657856937620859434226789533942022521656088964817348449836554907689472981568212508417577719229968860472654322179245523130038832289540525676357405861140602345607206098222545207302457260763790002079513260266052660274122502860797797381204913483886196683295472645776152639688775980847082421329784577601180144349893661705994476585563483570638456804707932462165275261817201191176269557968674733800238833942958160606296415774866620236970675540973026915697451877482995953870895384134091259884943386978775298803199520051997026312352653754212492562645167406785185207877179956001868973063851778013746551297120103575487540232293118237032672934271278291180645721422398864263833198877644657540626543106110258964566350037907912029432660560389952180761945419240123437409172293862886394172331198688777825022789242122294232719723937444469558507348625172036903854514626147638428665865304325287661356456138052494286553350194781151594564808520140843953933732065224564107266593459552952690407172748193924433542727087800344869373154633943049072748465759262319319699937681179699401291464250335433299185736176269898881608229911723735390719690947917504484306242593692627305725124063304918464807139143239426509851642871070342911564824702112689874052544358604608088553492919998792675523107382918694414920704473812248080092312236548390446442885907092452867514772832665770115995202439699194364856545273223195538428339795928954644526629050675147373508981724097316568051633553401114090534845007377855666831316683365203706603140257097933170988957579020725437465851294747675935723159088853715873104507714636020957353201648531770774377509956907481391857007236617046227410376965405267911520540067155158343118623563776530428041506525361729984049944900076538884978792520408772840666954966481564453930177992322751827414565156066343951698647400190977681762392380976554239055724116424258578136543242851902493945223822017908876188905929063400319713468057140506846294900742226837847381890385327268618946331381144703322247195877972327386111640970186187904801267497433596522264237871505173915363838582461461244764067494578603759804691804899308482366366142233600774491755791326334715322668173241254521472381100913204534620287059971542070817837940806101910157595140145545263664843953031494567925788376096018259632523885321479696222816489921536738600387839852481347413164286424016390060792852315305909790709422973907254701729329788632943884607261831104999942701810194343948543361861371506327309405556818892800418278390557981406884860741328732441064772565446889723207929632311073252172606357870884703583041260831413458779703431738751077262819037480489355485322074732376475992469148235999856189664970056272219586964179811000670445847764753722750792867934105575006962586858718924143647305141381053624460020100118686628481531674966383967614410165074348613780148029274276476488997568356607225315138346191164223907046412283449596340653161174605248391086448101890375807102093997381207891935191436128782179048264365670825021043736254391351326014104479900397386759127680072251054608175817161006945570359410644550122700619488346192257882691678137849219556496408509316866723216980134957468537519869197984619556976347844126192862869693148772894104358515392635167736425524263260209209482191607329399096824421342852266724723733329755773385761217121219714790231208084967906939677987233111380686864747772175681069105963780147764745127156976172486408467126178276094437510067478482350648202616381160145200661164400427940702801121418030882518417406124839963346375036343288858960002819443893367286744454659179904949305548427242603665399859063740188534797113846137924015675520088476701647648401200971469910631728112396159908570644498409228153674536095489157873081766249016116422671855243817347943812063164843491839162526958051789041695734117485461679166965659981198717861517859653589993795911772800155097790703255337725116483360286421507925749419484663190170761476521222892844265128777051965331765263721665060356867513681714028953643162117722085115915160210439514362289184764877514117232946920626713723282790249453603793703926926770093738395928570097813970930961440906583122322271545645783846241324924686421418381208466442349372551232137232644031419931795762045425806610166812858319421925050203931434727054917719602828871246538167854277619860492271322587344116712739000432521448623706120581257558387731517619116976591912407295883953201089412500049223840124334563287798385977682224652817034783763013595496370582606078534790048085660386908351604698331551989838931643705320358926267429327862358971947240704963718039529167415541751578229960914940836182550227641592870587472169898888132290843765511804200912122059858498807547840280162963166329417688170590280005057952750095121204567967203377726033635281007664550955545064816838179960060284787656898226320679156249501933891536876588010132587309165412460720442558415614492551321658150641131142420520687782129084618042911955605695484171626444068837710343264485952538066566471776787730857344445533619639726208513760747597746434119377459260802497203204805642812974107025901059039468561627162031289105493054659350229826117690200978022063983814749662677722801503512942083538592013299445872712050434880105606511044443087086126660378578752115415384172038056610696287719137293887788478852319496354478430956064112239903690444829234345727347300705825347215932894717076207908883399373323167800728250035471071213352328619249447942738004734777721637441935921593040768369501502285636887543316154087642543758761648512422665047589915099604093888773558715856304255378074654719761659631931091980398657810641349030272649261093110929908443549826342221147259829156221032044851013787389494292850320897946199619270967321344658219369282782462133133275466444725494106576639614755735472909784645623587599699152177292406290356034299548772658123384891668538528772665731544050853356403895604638086523458440054879318905719867029275760708544457391760375743559433943658681520405597540304372529347248529231608309267751174872733488267457238075719288910416246503665090351137389054261573267207223673881380109186353264145612902813672546522988126484430167115831801700346692483105707523791732464900299008207994316835009761606894778303436956693885570136495075739590297296640876879316644969529590094483935088470453245943015972284584832634436654562099624531525712037955721188053619555839097102020936929152210260239464142008112809107606220843980812288086626479621652592475795308118947167004988549170241305851694871248309583908985237341453664021551381019747882099857902119534444220519593692666395557705423564589146717810335836508865684979609089394103632011844459743048144659723714687308212555432406027858248983623097984641150806515203440366817006675142309863147739841425206531107131562690561718173590634484518635686185748953280730983291960787928301959316384612992024673494791863416348789338677885685198630203673776673778260454301277860185700411191696637472821102054917834158574497887681930961126055274131274776880947788553080262743283174395372652239673514323709184957876780159617458223012764200205327367631942122610462498791693973282297946924610842591544917655396560935026005557429833539073594514191923399462695377557173585216581981775727509614535264986173355182245865047593654841962934591284725274644912929612687690525031667410172571201565498135933979605199965634968126783817585808658686811165424224983681934264654223075397415622537926205464397887222748025697413070373649306049414170155959500953050951990380283237728849551002148149563340712000407441638743679524703548119783703743521553357233693864030924874460903583259685517924576744240734908368785786553492876038280855294532096549186591572911035422712983716555944106481148600903246331351465676385652746168920433552335790003206622960762484289191908912903631688225699996089878687883578615235801111855442713010124004486236588409212629537924277231759379174185332411968661170404743535049360910932148185045346853448123587687511656859321930636078486492016563054282662654934412383154376942108699575414326659936071366812899167689744735966849162958331729342189591582177097599899613256025369045153696472500975031468410199251651810907150761729045805450487124181686270248499761279916831401909003228572815966319467279722096755044680511161206540682467295877303175209648361929477707494409935569946093738206064249111387605854223235390451598884683223712857332978391677883069440461716580608670352207393703036748964563615217362113051707687675287769607484766807902970190863429374509304228773909130005035900580940957475108816054493143880982286749745640128521970819802292560551289844397896942108916792440513712385206505366906925042337740546885939206550629285298247153137004101520119386391035729289205182756547971479539706529796057273107809162988202925539930593079500676695290139593388377010970404418252713394372233655859387999246198911269793820642666097447666399057835300701349023432989028673575602260069366122268657573101814913596092731916990917440992714903040447147803289861303838900312100304295916554717688604268626030438303674926893760503467957507238227138453421202294861743187345080081094346632278360524349718106821403951017894953065404445322815700677819476055821416199010754913276373871803990863425758690836379692991788414504576502693434990562980697442890270095348344771702019461987552530177436296771051590993034208840827583232867572867833681168305811600289275760636473790816948572357480377054084076269678457767082592503354961579628624391046159727503641989288490485357597839624427132785885183064177847091620132718522447002953752933898801198796649521990480622414119102964193924691909754253194567822067287053347938926959628298458285170968124490007269478088888112136110116791194568262288099280527327796915943215654538958982996291171580986910633220545936422385997317914235195553232893643898934773281635813621471768355056805389763130539140639128393397390993685443940314357379307860243561056310181469656013834761389249710451045874899948311511086792449957042238334803345514274027714671130154204311687455144159659529793442807112954700401658585207261891649985781965321571202027766641385287207320062062473417500851433599750809359850065943881769876960926352581178069585536465165401641592014964336185333749070838090562155091355726031031107269461446358658528088429772849416838574570315989631142429252817674267961803133303099694086374439587066114044972438855890148501226146536629099187747044164328170490118705803785571691549805636826718710809005398206937560092548445739357835369653909473796298908594459254503896353926845449933111270457947295883286386123772030489667054795810778743171498775640285623379506605804564584312093570182785339286813150658423427795943484462938928557659207146871333144514934292040946286492320126062300782623162126611703896178043576835460753362259134250260820822101051494574204233434768180327270884224143234796077902112092988694782506472464598354168878989186932920855973917279653265924068124976515206502622507992452195462722388574329310489124657781684328571058709139343972474807539823101074499157928793480737479693335897814673539541742041715472741878147221505998096132832351995454750159920923617873974145241279214489083310279421499423134873430744099170490712704614941661605093868471952932959071158471127092227333546562642690988387417880838814270472099289608393424924946199817424688108359417641697222927308620175082502911950595556306724219025823066941154300912187789621438756840200577490599623484783203418764173711775381772720526795285388226930779144315883263051242800339944567700937907758413743771433852958583431432447509065176175591762780962838772778805593860089612042884532656221958410431585955190294219198593631840895766958198065373768336215899413359811478156200954541924786835299386658033425911802575278649475214348641633650519333633984539659918045398733987708517690575571380719824852907149761045865076981211532146200826805337143993456216747405093104029223629855787136411448663292335976467538371214168038962396701540225847928120805424088382869241595671218544419947878267276565480788488334409662922767068843131506055742081161078473774315935715922621571669966952075520703368445498992677236190110160732402341963103350948847599941861550706196731222002389805074804172997670023323744118089623995710223345055875725278830029478974842832639166059314716460815427607368910822683261536538435014941491951201717876598522627567697858947766002023017372712471422678479410391928617370867447731269524959958736817085886269959311213431152865942726099273268331586993133951662409913284271193766707425632191645940861421034209173987074150040143440028469067409900057859576534276962662664489613665102031276260275214859639697922184275118923099879329988202522677432560602881092968994969801567791408495810078548577144845401268653117915481264162770829401563973517259130923750534391062400961319113780626448402087262670971054809663717619844922035659708133020288741819336991396443545589426143185917732580025368323741471949895664422746868592893395447923130149100139425216255594298859319655639049045942078619302715700357970726389052112779775668070743843520482786776665960510616270284493156882202941499265469728573292860950033974367361706665268461471433941383659457162693426985535239355008182302120706149071423491891961877984073166488947244979915756193967814691213757432172743643358551982537844488282843235486053235180745637010403194604360796854483143572744246491909351271806224201805066581330294980715040210629815898689436665025718390704485421245569615382086321845015610505865438782993129390723287470776192125291655157941360594287548193428543201174133164452106714121318931857714751441486093451003995241833811867897625340461409004594191859083094620693786829314051080211341511685236392010122546480411696570318501820406335605738366037057351973283278499103542167481963670163904915952667905696870788254216658872616646425269588698368881652381605449422606817352083759849974043672138433403549636466458352774017573659158496983223455874678637637487054570298741807143257331260506370958209678999553187156198615017858631809880786662176771587647455730912813760154011269356400935656514563984510151584777233681109740984362979113958336779266039787832782614236332774533026073471410216004398939425947847474740972177020087171268633831483704062333051288001257389039808613447815177257217001854289106009128561652000596476739642345306934620401209934139741425812166626015098401421874284051586538003586808620558152816842435142607109043004720351639705902300735664607291802524673065973680092878082424877005476193586736916072512958441683252467053288309578374830555228415186533341262719572710141275069286537927958740366826759796626231539216117157629909187063320498134621658170643141489334061545296999800678095954041298683856325952211431888879502347136990588048525151003726042894490339919418557818113748037973151128422704314357920875127872692979534917256997121400411801408421810278578509312665470181978374995440568767673415189578165422820964400633817476283875009721522041448694736822826768712202902000565019328550749013036654583913409670286305958187226264562859781700999219849688417501292585148265336710329912971650675277388247562748066285637674861820907531830478980454868595643725340433813219430597753325450348023293490253206872944699331689163653486233774248537103591437062845963217939499795876021568566921464188713335133876877900781910776761291809734406844307976936740470352795660922268671141551709718904753906932378902955277175773495869379606672493795741836840597718471116991580214316365787530577717107875991797123056887891222150548086931643759846199380132390569613786592056802313001455369681630422358902679874432266857792993145871738123342088496659076280563925449486736796595339983089034283128486671119071852490721398425336994769486359089257077725446437766574173422006074371619205669169316126385713604375205031470801062222361521262724532614046538520487035406558517304105513336519512481357105203027832191190957918683026585891627025061721455285325954826263446663838585347410643131130597932159079562343169566970530853106212449597969985173808178345767029988735852019865332278418162913253509363841065575912649222952563839784983926740441047717665524798552090806813234878295716801833436960572765287028753931981918065104037732916145125596450549255115620649481101941764163175300541536911897610574836514474706642674777433175068176279760290589537021825339730947979257397046328676731734548713259738113119967957321020697864389673703183327428779642631200208257823459496553965334105465390659109922801051996240308524775587909399530676922504643113428321221808188241793899156820002831853199628101708973755864500580910697819210998058988269836405891775351277279923589023302848896016330413913683000750933060052394272430516564339674584541116177715645928781319600546159118198562954527347950180261494068009889849250917112086776926547455625814827870894697421036625797090575965118319976137789985398870086883896884087864537463310040859333149953592399253862027860132311154050599703235635624081295058545944746046865837221250501525668120619963059571748021374502436124270575425768770094013033543720392017844379745274553337317910275809567200691276478032848027755497914700591999898054428625314483010993646069946263861528869553526211289074600460015406164707296948861011567062234843007552551547666166621266984453366025085164889013745691694049994986769322824147426740440389537016669175337040337520664008129669794317185132671980858387371701524603830987776329861048421459049451291910296937924676536721201606012529610367897343840431565821135164967742415513454905712732461106932315379074025593086599890025143039977507397332911618617008613485765642688217266801534538658675053887833354088777770469744403368719621074023568169735625813094394547575237195165040983800857046493739988230253533024350925252618390627295582046003623207563812393137675467040322673266067269881196231314818272756128079671911760850976474785062183117391633985168577392527265231960539414622010157679859912086196205128897780538032799102804604028896748815344781182452921533868997180540267307544521824545645614577346549975078697588562022368406341123345589401197119436723882643040762127943556371463162462499533908147941030579384763867837979124232452256380679739150691375456230370947989198821191845461989984730485268603780106787249360295558683165034397263900598302284466965352312482154789821378431028389973841467120549715029801864120132666760653972031676378122455622051571799684510951170063484838951169824427132319069031078550108644966461250411057232873112302666967709631550927293772664948773237628988856809420388503178146540655832813581853257765221038112573148655552600166770335253690346383803997833463780822078325477559541163171882901597411352137858951774533286006765740728286454776093869309377445958494893857282520246168779205924725808242850287604404943594836699700932132937596558013644001271062697842095939388084611195391402247885070413284177884019273816794082393145082637675676142613546831755041839533589716874898374082944600076080215714761235302544514667948065174778026110389116055743934006628274928232585811725846400245798088253810708222095509816877099661192775575107125757126089325080503681962253540233044639007629564006149743920902695924674671652680040511206698500207705545504109048373508111991742149028498037628800201618514232492463659518083434667943529654002734775082439002947650161438877712519416437326673614812222535446038104348004898066494198854143686078718421704263837087393655972629549187102053300634700436994549432756094864090071600987241591150749467888420498756889314330373728405515890843989295584676645406808203239121916120646589473751361166668626636079237412829934317149160282156653303957778454595826814103350250005595512545777366853054699226691460150390890730310958529465263166654018752729323427050346367993511944833461073707591471318235511124625072674830297287467266490252556686839360765389766685874543910085222303653191808704120010835823260650804189355253524870563889441968579461017767412865814875428473415142009752715194387041872782774550634908735160824758412117270105253728050282791565249216639966617714550157722884881434785210793419881536527765445036490722814578303613269898674435396932908760138774758442471574543736239337895941732369751312960971858232196403389636088829210341897357148995944541900359274323095357244931061192848714763234026443409491047660205648976101437902657806831730503323440647903128664278269454526080144401823152767629789130925886069069130948308525933391366825956942318505132682263895856619840114459505686764104941786027088970938978978371877148530946069861201960005779949963473347922007323449352134138802653134331953985147698178393279026734114749708084824356923759803446986255375736673107138274067642112211944890126826504956477672334565485972771504888947297102296277337829403329529449469591657434453129463782537076912128530593156524204351472836436166347381392377054309764153891887067999495182437719354157317462434065608726312460724541843033016309074756135946209109343465099848803234123330183922849963813834808953199041728146581722533005324120578938298546428069055092464851411803860060430158812055259873160805019541715861255453436622441541092756215593742028949531386407759939627177900924186062224297193404689211990849199594235697250047746275487705278516178855755932444748976296685404269747604762379307724434835812944063786884517390685023476930706406035095643386472335029431926203603472104189456541103083412226132626766516054032777664026188811543706232211074238265370181279991143485226755149969371473082352771117289487937467538204985009522868229166039077481706158013517527388231442223119543807075348143982113585010008461453812483294787482209506970165954277272801372735237946237637328732747271443756493764127786201535590887211306450965398290015525737552246532548701950201997221348581652658512117766854686497436866579377671490767369015868803941534867437392296959046153940348001871788777827750123728132344767252718967440826913673684921676863542286447748447016855117510778410708925616457948986080346425814094113823802899163962932171220264182108174609768257984925863530411834950615880952315980495878100664165819933826231261090615041718676209576580136273232104771603823439250423970551411963631381227779057282812299551679113895281563050137836418354950253134193185641115708340385033733629737525299972996055684980183507186823540338654954181458556965458821985294420088716115862874599461564611993151223138984723540448238858493301038924247717746279842226270332169195521211424341049814069915588870829695093685159105072048988432000766864367567814975147215339476755851087040960724932523456862467776298347345083494774398383949866995120989584740818021104201918379104623402932295353006491009766857542144869613051126345573282307106789506021422850407652117619693470343429582488651792978037100973609659075346236217570642987982152791926557144755446983092043921158651590145181919225286057770453563537147435218024375857882795447224764263800156830750677828883055741411319267224869861141579718231957034214887917829930335085416605764548985570752654304581410442490456547938553219966053866801830453057440165351473484551489175211697725396599665249271115501807207663871445476925509870382127449489917160275351050079819386788628605851539760296249526763599275459307801923840833736287156694241867091540093797047157758427858531267733629545915889814817236544207157654110787101143534153910852153417897230377230681777181349035525233274835189466342738720466198535928497451384483016703398367660811514887126358304516709028082982483271725889022333067485966903942474611031929247177520785539871589499084632573542119538764769394625844099158007389078925138928305817796917918524430049847274801149631280030587012744847389519916156269772316018493262844403059044537705728080162396000706162739637005215924228683646495014359252361258576091904260234328307592003874012985100536681712288498253141855031643640176593540859875264928077158232783429520348742938139776838948222168189089423120850776313199470599689566349375725316395473696955638767479998152658641113855898352154315256319210673992613204683134541074906520070496684302467371331846602067882400111506543160217659313669692774539172373284679363139631294618860658706998652163633471712801544128804910396313313594249568061472512499874810623225991531520209618411908356490383110178252706980026303360479104516597457977866532784088939222605755712984422544906945530780983599933089514373161410930330273403291775651071873589955283731305645411654512090956133901199395131125779979351814885995034041224135195717748217981239066256031082395600064688429004959821205632976984270173798782867594809990325684403543353853718582412589695879592644847414224189544951138105517990917720900947695424619910891398659593601756132500723168928270354395776733202156379903395387959004596976518928290280444246282142513034932316076486076342935402203726641167120859306270363665314800734647067832698828241243020580424651343499736105544093559228938291188465004881910389301234791892277847526103657246465678778401822973965675814815155788289214904234798616247061312501755483887599189871601655789610340590243163330369522100572223963378889072923403535881740421561324501437930709488673103041431660557230471799669082836422813889262203898666984440437889272703269672940300943321365182581859219541634815196057306351187499844302989118777165619435788792568141353459270382061018077172408704199899004466688552959391181053821417347720945884545983257500302707083585401154776443956376686188095338936222508833690603572410912043808198611220418516634370794118129809398924470829211675122743577756868193063156854887557339551474367781168585514649065084657891600811521164635444989831534302169283584515625367400696715106679774317115395408300230658297167149619075354680100940236642344332386058109216002139298148946275976058940227453012185806883409788033770120791511769861822845139622447930843418760336596369418160875380637747826261316241550432142431654947923382067024892495233730971755298312380659116614068950436716589218557608327266217645563010112132180115117105174130888538770093453851514111330247553806761189518862268013400855212454008834195091853775522634107656775209054559954223288406435029865907572080646182709313412940024240827030478223063294187227652893202420307050880759455234701607501680016467567824779148207404633106375318832330655347576974992922647771171458177897429533643161286022008120723655433282576079380195103589819256320523997882722360971341962963807544428379283736911512534838218202218392452868522323361875706019581341925367561244274874761939476142296848168950625059355838145824339870494063358286051022541826362710765839332595857025618444680989003167996483348073794096012266298053415992653216601021470563659763741960063091983130008738607567136056293557448933943034431347059569152880282235371721719247439153279286632466297555774880485268296281652827101479325148856289864967248775629495635490768842105902993776647591917152475610002685078219741463572910968281271221810572013631623290724741545584522901336123325395010592808758707193622223259546943193960209633584942445776187502998221562142061518796331988651753917668394642255896953957529342114527088680165717988343908161938080434587874330992122248771978879747632666557353109504757952286179736058620044418746840153067688216120781671689274461445053661352723435343036153180237912121744440098230430652234859907932547737171894517844315473426467664435255906387760992825514272615364849454900391099878745806469624734770532378938284427817764080744587978125254286440824980616053735279538856481866598587520762721750240974710594195746458422352528011781934797186956999646886920431473135159820457540314728886818530269120498997238904895374211928562215488127123318184834900115773250991275320667910879559899911757136275233649380734084469701711796197563621980090928313160169622381427716896994476641140875394547183364345845834136732532937711952536541037960898104482659701569086694622188017454431573046980902621239360047281103665715983463171289711491660544323914898350942509799222542662774897105073440796174850709306536955620156798887844296661343766285092526866311770757385244979891315404412544268850118053932382480797491618290870020976614810341641761980864835005736509680474401275538325943461626635224818831400485332955378563219717398453611454783885492316116139231901572475630271962158654339434954673635798566999624404515888290439680087377437104503686155522097602879823865824061371257299725484920211762584869228904757184851982758334207840109016799888682417517369170805947280504823261356996038863016933324953702636419365434625987691250125820790709805579766265954516292286577287095874010156635254417884386186938720830444368386208046919798978577392990903467128665253618919608520332162175115775351021724483913003197781611679194308910020400354766194200194728524911482977787108135254938339312444084852929888290865671698088667232094310795204050808762596074381592095077071240869226899565335099928195110365405359168632216609446211307394091508688842948232066033242175659528788951168288366473542305927577519558233737407017879297722230092857010408662294948296260490595151275030604679113580181076925568232256661632677846713263817984009921111170786781316795973851938028244122650869572794781234816374109230459694351637699730798149519084173782224914612100415091763713662811007271380760967801280770541085534915719377105087009238942341342241769158266488074679051635691730693515272470837154316419116613681862671755064072857983949989113818834445056917783941365805121264731808741145505795079268185563678124644795253958551099139271177388829021371926478016548027772539716166931386911148678980423783806044299522589758288591012668495304347505157116896914860601936501412733698624856014541773182093424914640200879719656608223022655628943910202508999195022338487313517987286138550510883406086127486852517703680949942224436851643119777172850303070561816371440456394445482094518527306658126840640745820698739273824249510224274567802722741267519513672615257728562328371858074693129708332287029187221525729131778821314499582661064470493144310191120192313004059247404751595543913115127612837375878427417646229244302651701911806739200205838687346801935259582563520958677604897072922936364227482384546336156623882715339315668057468497520127444230426798679692644173068074165847909267202919117081297133001028858295575152537385968417467121038901824647373208930889208069276952618591495951342937619142198527712358978662023764655165721264934770133826123214958991990528227001972768431529568431734395319163682402898759949896126323286945043534572322210264906238744306565848200329677319551356830674253447386381393180122996655598947623961256569754095488932075949153064669866334032292465982275822345399799036432035914155540252866623081581006912485942552362502803476458847646629173880931687414463480866323233337788608409498672886612718444250666001431120308564924211296617504709856261930259888454471331939203421818999141044330332270683406614789366462591088777262279927915648204845801945045786975132689061317842942105335822046639837423802890214921974344135585275719227577047928015475618622932651432863681243485875095833232689788067763705138608599314225443427024518794947931513410200508922034456829378208265632807569182023169568189827579733277692421787664408463878529785224636358861186230670374153672186697374486914347522588501896232538999881160925959800202148071618760473627334132445134485701624764140773746010091938919534616366886333015323190563685076210838780183121832486972539553308578468882882662687799957436351967666202770100066933554540806272392665149538738272875237351231914057778494160152650404792962365558221906296537924198077459511433590561021773253614246828285531382929999331819600602969931623310074874912010815746945268408071230203132218440434342314124746317690476301050639314874788414791566231781780239756239243030998161437197288846353660188157246725260111664332329293416438230613664250293546968278638362372979688363049832764818243024314120148822052486530134703867000854941828512442349496624133119323180339783765102912178576937276625058989259821027043618069356149444031544187736462203237827491865650920574922168715902816679252081270042690682151624871394441210085827650755006612684346357828552351252243367296120813232333600037318699369690940524404038811373214825083931791229713318904541921934929908128484672699647362057625228493689870575283090054391747200855431674115611637507575598187563215651019981878566863056666794189371328487471783324977383494408262645496255713862161139998106539762833885251912847645160030443482508170241560563743908241784374129295973410631192963624859738324528537142528992591349107374091696998012404033972780302227341962160398519929856601788713263748691185923331766950284311231957062361403969160893245783869239203227738516387451630599199139994595381588154639743496954487679425145509603827682132741374015793434878027283211287646900551778622569562859732805637066418972467619646029502064296496483937242430170493604514146987289715512180095873735604857683184983980608046364203780346442442273545522837547982440869631959344916349777102404283015469432406384513811051300767310993375609487377698012201033266701409366425167083012677396310526482538545178487351909021293215863683108918938977428443176140341857684558036213955632823889831371948079173975007743297872087282512386167353901904087192943383870413120608732909248695694631793499316940607188182695061876615343360494778128974445937876223278992331218505467598630990109289169015855379207369450333744139641815942746174445900271095601182027420612948280768079354263245150441561665577580329053231657298468501366178136406355052096875963345744424014636895158112461208337605773872659834944210390837698529092188762100939814244751900072824523095198252126269701096538712567856547713022044423154703590756623925606316359800625526871103280974827036383510883561557019544243165464116039999679297427753942126177724326028334102899800873899052367545400126394233285237441112497286372416125928770178303200028168039391741932110143811466426880052392892283516401155781453798171932610315884191755368268174254838314908298986020974861558782101677542506250237548404743680117180223780205599151898216760516258756491977666063708983829080927374171989525978116207368550370921912609094731728082884200871880700396830074890177267898218690556860343745220518385502286676902100087110517252015449927514984108478642680754098138052363734964626982081747352078682250660048038618003797399870238056291820732416557191612554530910697903452104605698368756191661280639776313887254980041310099174827878494709485321117245795549325232418143989271302279554694340946873191226180650560102845893310390854222642180514865650905640835956626641546119152448603216090184016372570037850637562191866268609776308932617909757187889998909642297377061960440067106567547340538670465387372509363969592200301289096243412338217786526236913628237411824011519710491733257395251320115287721004172435587858800465170534237120088779132781407462133267560968837968093061103199345248547380792572932235570575487666529814623795412107640331118578728917977975941147958368065395628094267331006474581143458886194503044696576556302753070596272047716456592124724436718226042840723507245862795279947032288821313254528097745794554653255806686660379174925319479968569183756878715285744867914379241319149859267602026852265082990981236004029722251063919570734120545025750846508826877813118027023748973119297198585479537368489282753068489557850810711428431319360209319765283850237880389664555005414709543069166387860237359477633761598887586643848709832364858374331909666840906396592344061730183892736619304698760205958129695397796558229490132774068042874951788489323228382497783247251359430533577686585946206078914877001461437811788348234209674858970989992810882353959240932739415418338917494933149446285426481320024733116115679935197033810259805083533232195265403448370594521188664841584558653301356574612963139082834459519821191693641228421409040622520232693237512604789520212569925560844876277047608810192942373312977902870932489623633516985639141463930661053935282816814227189968950291423993723833014429256419399689784254308197198609901297678612445939124416115675359292213276318479776206514529437833658797597868178315226530333611856102006871473670683631799635743852543073482034015219315749580138254530790630589241381717927673197445259556996623726671778073989765183147995009787151977145375526007398376900389713970771517018394384624635451950981041745628654583500040532689416615892090255918919558481040139384619736721158780254386619861435385453211208843057069519234002540271386779973728591373448667105909607465512441249658463254273541319001582354730224127161632831224258002814304120193469696170614810468765565420710841359851893838732969806122594158739308192218654564996695689552345990450497572732763113676781077623832603598457255976568334641819453373150449399971993882551241781157918828765611977960495985876303473763340644797769020029293985659769378856233925418399781702606686454012541343210419244044435969105219936064151171342032441373380674184035242847136528341899562726692195546921060684104866637951744580489436819390546071586494862421411332996460547117291573958920233572878547912907245132690731771235402224362309451131760026704033711942814428395694182488954675947847852828973724475918469687298147989649947324142918985909756825475959416977979384493721410115247569943193545284160400653899157760548437045379698654063634549270050600389159761649266504880522988646648872951323615694051056067187602012299430618145221387971955941988299542544789814433978407609876523627611481961553472008849111289233412867236623734450434761962560708724974224275030033731402672926455804187546135321354615698094812573579187160721410191452479494879993680766854249661119599348629518307665177484383729056681373245379598078323699800955765158815718806988053847438134215102470702497057040299432751521377400611040542683955843392473546855013174119751219315055545727852620541240031683460316567865378924820325384733621596790887480512057718248877411520025079832064059737807975078463785549955550911300060904625709530985708894583797609377415604144703911856832443251911395660545702311933966099017954430924954800692094398287326915692944448188562913098619266162389860500599427428413329517362069990746205168803491214693132388969936738062853916247708456859524805319194602456341663780196409986684563512870186397953527808385106041995865631097247692676217626473498222006720997835460900266362896561697864354905376278197571817577671302273489600462808396754361901966114845216874154079985995055523783880741587166708488892128828422980301024305151891322974017496029484150397899038834616850995784534838627333067341581289026859851627216962384825370135945710201979499867101870587098618803870626795188924302579433115919066772867618385883000349779621683235954981052240067624039468158895165823662878229689404525227791831867399657063188113830342631165201222610740130974580440329677545440123540579626102905747629860515490560268364917850166282014245664875238833293394811976001433467807943199247748936071920723408401047867430840839434887378282374810869410767432693230530150479405228842804402268808196729164045677493003415457847995661214988537838399531174192756685137678404089635720951714707172610969342587837338836512441757982070724097995365416153876734514617042613259310537070461266432033814758781855416571579178153662937127468049743217865789109096581694792779809493095113080303244921514088695294748286301573026516060809984763504427749631233277263678902250514399894908633405969585533905975620793746421341908944361243699502987600039661395106448317371163423736108240245315485192162352993102906023549077637678054283987794155509601646452362021706208364054876584371430958711304572345979110213456258200051994528215652220882333456619134083665727814580267731454002362608983511648534528570700663054137741209791124266411563819663025840136259572378317121904639251948354184547677226233712903043748373249595368338370642112526188519242366467788064295317371673115405096363585258475419397338484484518432400887001538612856788580466108682337255092583908039113764866688173979713630809086727760210258590769306002835039262454683963281493358738615467341658883604908194663453657392477420840003874822746002696787941753621767324406013292033794521118670310130852012446718143656272074949775540857225561269464352945895089077646370455395913816708224971494147838960784817833369933429930894331298281332943524050662410423803523435475910948602383453433711654131641422705869172369350133506459199522512949577018446342673890264579647350790222873920757245487276387273536198362243148756380005043532665840045139691118939975957782472866928113239080694975574692842568010010685765461607073400205439570546869197323570797380718251270797562468635415560426947196939768133138148365084711460325668212525958673246560440704911924370854952115269002919014259427285268943612480929378677990772621066138982480882378890712717107490858818601553990695756460730498828423740698622056965282937067137725566814066932241164424515171579957915724001624674814516057008985851699045587327336982088980933776978340689549792019948894988432245090259808906471497327451468230758655263588715808892974459697070990765296659382315992328757215829151745938962256303872157772320996041442717416530146772037199622491291042053134164163745925316579883380936475073437549465901006832562571695363976918351215682818961949244079378442833061675601562630580244793895487489256129886540874629229542120226895091519755236358231983030544367774975662413666231951925693929534654785206438241833823452598795947605391269935309359551897508833274351118016047624978538730725818336389907603870384145159870200492869135274041821459537571807521747979433631791141887513403437639712657661082855113621144372335770505682366610415919100173480473395263412916674207047031804352891449368875384353114807172486984571376092934005644254153154454500107228837563138812950142124767172778577926095846970193252994723910294114852734714719184847721457485641654108677363345175243931960256893259505733983795900268133100798883774524162656525532572245480434674011387720070282390895504350090251277675746926731664595361569730067471339432756390493607274553451408403883469826156303327379725427712834083851458553240888469942358547409391882844504476480417266648682684924748470246387151558952282941614357448855385964999651954684498744044480625716865486822139029315387902406968950772738804777553508227137230089820001858132160802833814764353309463915486962439483993137169002156647272869640553586008396256754530105520217171130837521962479501812167557388049291628927296931148237210984930817382794833256665646063586729787852291537209396358858187683919209731426726135108252035366347570609470467722082928222572413956104763296940172015096953142190891526667489850410870271946920684702106255457154528187938381683972662440354675521793298388011764197714196684440964150681882464068279803305944791148781209654798461054612066919265073003780359739477287922396667114514623055221175207374598334300286820246723648999344314377766336121976345548637916842594220227045219546701717235191815110535483980259581594673606516761460963495841785802060396275990094251323033170644654947087223482992403506068754682661934792571073346399406882787949239748515245682017070202939850892706561035021500374635557042296284748696928056738576085280860799689934638552540751832778850379234517946108610455499196209209021955650059187716372463515144427097714555391769330286102468365390714879299931443097249552577767450125495840586962762455318528497380312383473097793978581230845077339135695543367245477317075006283865836146816754827464948905347707909931965904955238880796257790230268507685765504371368730390036314751965597909404503161527222038826941476222576945205028623807036264088709952470724118840447273117757077731411199498427597494519146173612074471733619843504911882069010239220790132494827044890519124850946381722528187934252188596685414711077391779736983738061712569440437089215773546444657499829009372466778347754508358099507386895433824102342313777025260791443424925985822243023825913316397023585732769098884515262323686063567110965459214541598478395284898428916479930904391600860688767089750206862679984368937033439973671067936243423971854986617435481485625514827898031695749361086316223521038713296191738478628834292611372547281469123591332198465296219700375994343301029809342735111670314853810149626707553820752126077298243218057195220812881054102109539433030110044777137455285839096287823827829131566544692779471274869163221784716861406569255985396999637103791836846968935476086586626822237979055857572772634998058512735315284098650774758388637008560263292312792485969903165955055211124475290540257662619764869413142510631819895520156866480723959718664167381107714686875549743128943387464467851570550162444355749665557519256625007839376881447057059819907094380247299230070991919664381088148112879335941871331603542091824372298805802194748337553764314950210515028232895101469988720091933699349566072343975098914491557943712775064800031971344398622509287329567670197606107776848675041131077775964134054574491932609855577099227572836730536424031767886681209384993487618660760942078345101840161528679477413194860478430804819143268744019410008596923168210137946830306832132327090088553302280486009052734681689175966765276252309012284069270131842301193244357691454129152010608660231858064497998546332635193183338915562049824253749631526660525303336275017753989345550226051148079894231740625678369677694363262008397546447554721034841569695704355329357945905784441656949838180166170679705561003114229392050742382346714015963516254741050495218880764380018114486162414592283599723100317329117987223517426445422777641692632195141800857515405017094456211198993650787053225542351068696605338366337458837553903541995980823633726203273118453492017842289883215529628450818572091430408512689631923242919283183642036782358826382319964690429531371301848607882970991863869833691938383541708731624777001414432884295263239737092526914681971238608226532647641731496926816823854392889140346177504597370760420636686846116473123047962136413058966900865245678947831163759982885032430705129872836689251761885428590373944149563101273352393659663165945953994342791990051918339274088098452346611583439045727742540284569378632357465551325684533271747004662279666692258533229647773075915316170301423284439849069922528311180973153218540916932407915112902521979196420057729773538186231499468130671305261256118049735543807911223869008819532035276466883290028594815652552507037293947309754412683835934050816722343612791388146179174056087749549947232387668058131687593457383791571766920014652020798234721958650406361736067291977871580880701483886480736283956658964992157553558748908407375600634035049804725121989162455265895141920320318045582297237137857554012830122567710260461786421097168774876309178674559173899631467745650254593942508518469567968693580753971183499858957651666078788478204013772608607599867794433278821713513816199595111177891798967880184441643398102541696761725680241645844162565953430011477158691953942267377706800982264087464313008797923659816670473849596773760964629272256289387008955941985054262449551217149946945132056184448298514456340020357324514969610440069312957299108395594735288833651685650747945331230243468803312854353895033920911196384282408925798837930660043094662501623415038489804866295020681254463535264080838786924984574299284234643475269977179740170730645200321056198582476118283592097104312146248364738350281865439890268176616812551595154403820764237736616850679208101967687478090710158769899836146427301299660527547892449294791834733157522538625339912535776183762590610451790266012474794055500035915891807932241952689675265881819874731731892845687948718992405161637105565394139856975229180183626088632495668050138383006964560261348658038747718642364837018567663869230885136357856882805919220639050158990644571010082644922204764211326869328132791697750587576345703763047565534049592893342561744505784749628893087923646157259203821571000387615123030196486226729633200669661379380365528832468690550654518627315957629364491316496053021257342566711763982806422898717324651070096676616109335015448979219699886767118996280283325398658033475543930175727276426693453129762758028373721860017948698046150034909567922565917681799855689037512993694511212111670986321963734660773496544551588220378063721797894271667406103932445881921144374670753526870250774573751551577338879882552304744438593511696519406505393789990678111762740041725675275743997138125439518649203346190491552649435129055576065916641610539205715796692524479225723097983997198024818035177804273890290920601700849802195621779359309766780503398439365691151171001858974713601858657811021541521071083172762446347129576891540797935073905619637053600746986555520033908637694086330934962071774659790093847816586793226196584487779115227678614331219701766253102626923200995627283408086024473537478018586120588737772320634581832643179935552299545683804661250362389594405785549864935481388278938593672194049704780693628859582037606937813263144033337217273823884669498855924330778691762643066864361196629517596128065049280958395000544200931036578996780778198551375442589386691186092221815624110304615724262859420682400321086156376572940324045921012905067064369603786499697028302894691870163537096238952953689499353860714537721798745489089536288146272177173310135592781030769246350061901637272289380278522838452845738594432793387809057277819982830029022637194288185834502639118489207941102513749768768623929246242370909016922202953485820455767690806666058116204265528439817768531262480798017141949589842544794733111403850722546859102207923144088119005890972404381172195205402689593938194429207057583417032454547254358419455120620114428096148938848069643764608927168801583351079165989328777131815125716870270373297031578589558482003068452383210902367750610293345387720890926074721446823986305699751162578072604702346279155589190247653511832943453129838987421780863215660782760002477712760446577323057040836999459098316796425464948109362598399408665513296551339598992673502273624837007850606789777777863432703101489741967558592540898633406349870740494252427525478874115174074402986053410359533784541932595156697267974145916325601142618158696613986523389448173017303427786471050655506137934060328754823068257914171800720451681779608381164321461383490344106500033548284165084184527604621034425194997222742384083694593786765572371263001621135008331685810265927856474049287926328453745831577876407260117027717155188280055450706891920927504071759162010804069648318640152123662834497019852986657838760271117641783319506247880031450083208657936430423906870389283329313481640895802051691182768116448159072551897538703065138814817213525044170672814522761942388212816574927482531438513319573980019837146289210793927893045747363203599742498058651290314442558542472419325663996327600944307548590580753873035419254008454645806935140948146737404766935223673342374434936536392446907124598565288029010793974552515468991450184553733871942500627217845505797816575589023293242232273198943804223240305812170961874892183409595154412605949538098239722382495190389346448161254817907022243479334505440471791851099284814478874013921927711521448629236038880803028297742255593201408621370223811281956085855930616351186252131915228363015985971619116679158878480834361012708436313568848203494256628621041082084003299785759652090900571062609010638399142900410630475650755460784425707684197245283732001899846796155356290349421628469731717923349355772175463976252194948000317445014732142555948102117268930268911634663920779255283742147095562736769622628653041376184489063532149241112511300643055684831914419685467044431883200087541081598019064761089900592796110208387725445336594467816170504892110898801518221290761461884394266875812878144778763173722105444754029500711653012931123944534704050221782434811819306598507714675611415536105970457389268808637892064031750441221413659522046904091675156717071265079866927157865685031446014471797411450010094415957991081219611201813794246569815766419726986702870167383465677209893916054171814774846127388556989978180340883841345127682171300652598252638641430915841508258222058770490236435558329198081035548628695820368096816383829220912397492260859995353466687192784231992832271483030937506642629123720815669299468014068861480909146767473587449487948800319809504166274073870011192066078977902261149555148169416504152774022145511918926021728782041281432917184039152046434176917345522538845729533293300078381553673653629205707150059227293160494889838071097797780377477918806117715820237106109924995599116216155784408273683512504368874191224754342926511254807788504256541433246205818437439167684848187658489566777599012501084278428868842919551688724869572176127919132189292776217057839053142327061604480468719275602193456673892320446458183007193226054711866086855340833986852327735600371840791079416140567086965751517712797474294959560629912589611590769194647364340110181128661394302237984788439555191767970166903701913579263981892513944856796170061836983829373307311821585168173889489174829502464419391617090430411458898976009679362882079440838774748497756687136173286454063703886298038056457885954188927387916861673076474378334318718191077214243282960643662612153619761670921762078842621629495212990349167509964197474456703388900566456216523276406301962428904825326594275603268624539380384032050893592552388174681411730226429234716666414596082165981886939213146796780600388066522459537909528279665182910109800494661538581488496673382533013912493740836086408351386499269782494547695860857963237134845237238923184175282197178759587714276670038420574782659536766231492963314556415118268031743634033899073315069192553298512191623838651282155603664978162511384171825632457753409134678357236477374213395709295806019718386399062638834283497728725580922546154278397166560411853478976933188933973729456375352272121717694087566127923460302698609413583599075510437408475020515679775632363644308153500837530705207597232883786921435474021305622236442221327337168348505389700685867328458418230632089478765012516471907531733397284058997555967635101830259683316167400296270619894519670353222476150477766473606977768265448156889056925886318976024395076603353904835338527761912681877233361686561800439604964776663771413155355108350234762366488993562133226856607893787797063219054559536247927182360397184241499252612356548150621117009600995935721532666918850925489506827335660107951767136111067365958891705231976156042426736105899497054840269183152388504189964800529040385051075113390093482135554385154843952029999621891827066891667398998625628501874954269851686754256942878833629005606517577464803170051961768576557975030280514759320611140579852901816872754818915260995863432949359590690782936541535757185152681460607174386328472895281267396455550667070115861288449092724686155337386584790253722888486627026968267963550318787093815985040660133220066368153455806395929184402949670686913813763098094216671859558350264768175961141667050875747401069350993987739262651740245786496285261713327068528856085202739753566366532995442177931533205520634955901685780704805520509069844551040582547825289218033997674313818367066598616438569216824417251213276385506141677644166633800927630005350101595631373168361201656405717315209787282510429209500576394429037834204827009267917758305998708623345171243914509872516324972435744933636548905068002176325862234260178458886333974500995215262450813393631359754759380879867709149716560321151258855736123174913409035025508590124535278799154191733789640664195556468578511119538609680363807338809612448787266760524265344122984353513244871623119585341400671658831557573076062668283691404625678381612609863796745406114530406466612163585364032385384427690457688689993992098278926434114903505148063942320375560921531907980334627435486196456154387879105371875707667468778279372133950254880015928788203208149827248401582123315778572379326910823125334220883584465501286056357606543280533587036617627911278579494895012089847696487352768427821172352872676804314193424494084682532727208040624529874029384954669827678599360625900098809589166047021302735933951973434920180717655648869984245136268347969271370775572775976184458423262185848882734769039025064004110052619694463200913305292254973116143954232898083183319059093062266297954331735454518781727030314311606785810565985453554498876694820863291899151628691985087718823182753887258277887969029169411867920148521592060461671071580662585896231530697346476290092358166490952733629820549756031134368023245237390319125892375010950555289846841889796135862777803823229355269255208705133334762464376166922733624796493250146793297375627701133005696338359020898540283222712144029455586581817577597784849178612905475311745249090816696278601090090132467713881186714255418064026104184745432928786056386815666246555261270502899805461645581395760013565558404283677259763794485413519799485098768005446845018479441572781588614297032477587131935486487097065971368066489283221380222443976833744873918812643632010907277829861552563994077687292202003192407808789944033143150708329549755438678474146938672075371402838126240383783477084735714387032813655789679594920505965587292406883425113034115033692798577011935637293372296646426363096867684297514467468059101095670402148182667666019600133998361880825217159635154269665748437344385096416558225718116935615513958455106836601731647586045875488967170869621111732719119595439607853113405030582079632978413992311776514804546382605404736087390841871623801958664445262839907920214832782694421612474258896342576646753200588909803867458597160884923025133916520932513881372568688440264723134136892126001538683679738089675303478898665050915862958560884850724238115086165653734791079802363538667509010327138808109814260321759185988141656787780035905969066494772962523136513536594459648501107029383961683781110129781041209422363905639647513792017520501431557810416080649955006619133520546270335485851274741477153458736024887793622786354843982777516915172550094289415408760360512411442835348123271963653572194335176757338084394972646490432541070833719438088534332254642487210729190510964632534559433280327200777734091463108390985656154927530944097554567819742073641242881476826820707979507682480132358180003625282696682611059253880206062831409090530279172642340523542436839234021668651759246674798577705926063326350802654999164505963820622860991931657669063949262174565086749908180047197693714260694975198719994767694449811585256267069199290681965697252168019445462168023907547009605456713655649401962244456173147826634409557172009562518989564868495550620079276986621753195225070054973655340560042454659887968807641933237121040074269841273967021736359529924274199072223727005291798818183926380799873097691359751615517238301070173459347667300136329248928304321499686094635347763421730084061209024858309784620706343390942343383798378506826856086343683728837232553664942443034818365628550266263990573186703094315364148451505516229262621382681555480080970379106216451745818765768766680072364785809235225306334551263323250328872746300220783091468578821458164498749859934721789071639809272448697753378690360175710477687870240324501343566652434491881189753021007091745961680310544444992355657663320161876684464614326941080891829202909488003410116680549838988028110546376200003366480624456666971110748933561343154484689319537905416850433361545505248159034366324762060034094721207208502255442692091456242650572015108287589111601756021235749949284781280179662962893295160483231087098047144775601200038278979836010623205136961215934965596133651533327038626337863345910698416934760826266010244562168269953647197081058042724728191411722820988497847950481698779102687752164620354243194596187335875347130725809129419851450186801727828178318692967811457147288355137277404757045705673320405707697505961810505993084036793567339869242054722708691238915786608050052546268292389982076254271482830428377963628555307326780036491113095680481093752589693587058893957802298721935173426604649972259324571591554301450419551131809493835880487936662319712641555046932098371382988292494702093424933115197886282356331017457861816646518332436110889298967534859247404192916870802738314917492925759969226416643123957637826758062897366804246294917310233417239587863198485829933538606112357312865865783625621135483499914462994877625363834466889396337384490876147391518002977767331460655304827099413906318297193715534573719127538366460228763187755931965366099608693406225392135111546051997720087234698867238567405415144894165651848053207897108039321736931212491649229994534617174135656922753669543198096315437370978536459578287328967531440485450743110960641226741605783320221737410096311318569117836815015480962475717477597426858825510459058606186720864307195141245701394567369125765562779858514028236887713575735945678570934651252199433998854082117994347521845986664223241306134720771907832291252282562352988642744763916321884121187544900650323232817605937958431192889325218872062838230966539956681290179044458997571245657260190188259848874973218278076265635752750849137129080155946844098310751786716284748062723047739846961023020459964523603588293835004807789806510323466739090103356504133089711375799160941468214792125571396213382343652547315573568191422792750080332506727038301795887309494240385245195639748180684129480908407501171696852350423645140208297562184990482309556934984424878455839145956505766492774423853437418075335086837228007517858896266559851017886552595906095043130291269218428602575162616158229684389577036449766102834256505328082733741550162450379367455362660013545113222104365510746220740127015798997281732316692162058902968921041930712106135175696742670497415672716689746543864390492342061798178572881800616796021044494677135490170459229827023571359583081100847140573558199896623989603753899778083989307878835334834173442016346367935038760674842705194994447839859588532416973978320560964743485887467119516490367192382917815557668653898197216075395713634516798430556245906544005775636993164809041011767168167987968047249117594981746228743467240868677918455875345398158205066817742123641663396713059252400891430427461906336667276679129874497145077691979508280297825957596309454699919836418548409982329760372911855042644588648273458827204679496351024723991874947822648779532315234160220920151930263427662941456412202976833291916358655223186864138058169616109765273932952814881874985615659105700862841815016419361226147606282626173864714411214793908812107842122169254584697406827296351200957546411767058204195189970928717282534263569991293978992734600762161496398204199907352770367955356788902670348429177315668991537209579324213569330753224807381028927286872552759925687164033717785873804088149380746789296820168368805147247619446269073686866992635666848175225390890894949714810790953812615756637095508132587241240418787629311455778648067268621933864758822437212283886983480442547501657425138577414416086854540609979487838314279282190160241554425499705557772538882217879390714389996340971274471423118478888669461084304502033386182925986905619407070245071284178569626548098105989773280309947987973437387238533606143947206994760159128293518742046493518369751882491343685031534397303639225055653521751933874173835514316953470618244236091787909212403686584944645014660552920362280102299665518005929306923539923352793060984628789493860732639940809626025775247604729652145256931297245776557470206425345154455830225014440924120651576729613720577555399517429040352428184188813248968912749611994888292877808041077236959425646658787148642084366756750226952481005760986630100436400100434043689616313453594223909549013789246291286257909755316140969325768046717567758252935393589596824280561117246575647420836411884931735056998920124987991515677587955401635079446428979072575696744807418409502016275343435174476096541386231404301796852022355350386938114685990484816965870875343178830371591816614791575681537282692018793269379712914101222115015254968497955540051436270091762482517513902925792822774623306300236786137951969465462481632334249333661730662048707055311391195033279610426056274296864894670432819555936707646250049070146616153269467298235623985621626197733312600439287430619923193215872690158210374269185210480690050578021101708399861016457280637633184624140966613380375175818281601690457297341367315030288013912855397448730797355194111573839775285524872331505972364431151188702262796554193358187670183533270736195942898441715460861127326461471644859337642051129477247128134374769919567480802072507685399093152096747601415376284142829626159733154329918928616102008916151446019289923449184387820160322018853494889253770168088283099767931392414238135536220693588175742228248845214899762070584083699245580321464006272264911057261880706426471146057019107534408079907825957902182423141927477780774524063078708315987550977458445586419406943240197988484220480048473620704917592646295692480742945552115664962535236540102984720752275453239559533891216719737888510455309466834291152195987061713235098895351704276036831408019817480334318252434006307759494635443218430755777530683459143252526024203413288254424177695040511737313145515292792181257707311529356242312124519075476338769822445088984875626107586889024558013134201836508199940111382493567002236307802799285841378508267446749435865277581566146449051012872516398943346147769468264292004489882866048169998985850749494739040910673895691072483861170015729151233562333435998624441753512276941669857503718388391726989093487299710322911521181263408439874760273494187052828231280926031312914097037986970619064556765647991062681409799299195235672744434277425280299699185443044893454652723935416965544309775550097842583622113586903319714900560842729599737536280853299519215498359795913107986494631552915699048451080817693492536941976125386794140483350648768288604829972045773272205877136649093631279088245869534763800742279280165524881455064926145289422051007514143482709560771234750355885597935646532500091946732122968368266593417622024032052086456464625819446042569718005691276993416162478911014509333126708215847838081232345352152124660755724851956526140890035698017956232266206509591190191247526395221412482047040963081507508201074456610729560724822456650444504102188593923906404659261584869189617561875916586985942287079502057187110657752921691535526077325109122019156381378848022617248800314063549732080699947251586416868036121510901193066330443528664459560627938412972804989182206211062778284961312307936402693809197967014742211000976385149696573644346146207030101367509967562968325518514450596551942252820898838875491312001254578792176628503322576770055207490925660398924835231148458467454716412274791217804801522299325921856056920800587530639520245993992624211490470999249465963644989768379822693700941024281243764578386846242542407442063563345423255536141085738436739662527886221327819122776916079814446283328974634243477569216862866409360023649534589375574901259344638812907298830580178817735685032163672334781101713359310435445260775921905870609363050114066818972180788698612290475714339445024079506246805813389259398160401437457479033338852845097780722823258670425229196949099039815399255016749159572370082562430129520392410729579969590134936076409782156243168371669270107452029155680668751273053350272267955152822739141083409296040749466426968582578278163996757915247373496190315212462203533760405697535159275277166705646680073817850236064217067987421472835460524853465867114622744638680189218378463867104059086455535479782745234126180328802895654986541143825012938707342951594912857573163707723732952209466702128432952157251668689210994574499211770578895799447314166525956105394518433995991738559430160257889106477223819007417257711459818653201999922742334664575313936077974822910896419679283691110512078097855354455107100453370470593946542845457313387944524492098482350738488615508531827865643532362367319358477559045350869438488439312651688338814069081702549992481087031040048251479752628696059752057438332394931964689558511707922646542071421880911947322635207543402035798908648713489747474232542793733395258868174331777396843897641451220075885177699513078651964522719855156378849831378249674569326944024233731982884363859209580677241988269015880321898828681905436767934620940107934817024918559756184426952349912573320171415878323063994732848328634726012148056428651815799520955794424978701389342952265877592456193790816427808739245143773998198225703969106659024845695211431671396434305895089363202258100002245927794234564834959731941398814990545794759643416763052860268938450203720496234665810605722489125803772257466524621540809365756909170174073213354429226892344291414631759675227396080097028940358852024106669643995631616860242876206746667741313449940071640817200910353689033692676909015587733423533684891329925451938965619137101536613943944632237665494710623779038114411137720613799828403062939318059018895936928812035527144058940566355748839820346555237757320298801692168755027183493557471971981600243273346521271670519239505123536525311475337037879103885340367831303530095048056816464460296630960862587968186494589441639476418271197473897236242083725561168086063039437170672325539801887572042461393370761820133077286124400875707432106518190640307514031461843769922803462663528729838160339463090257454520896385068078279362678183941171793356631109007858213965487563200956879727968315573908110688226462067564673920295457511099289793668626729489076937031937588316318494328950222863543841122645886340185531551500777525693685154547227083031092883353122212389812656181155025532220231406554232997394856232734377612846060017669611078842511960879497856006252848770053711289268949758292886643413182816522965767603051367791805432805887565100021459688240136714665302914017479693714040120614361763647990485645906173389051281560962143743150416518523844143644168066813945841361235231419296431566889079414135979750804987798779312425126695697956861603439094942593570848048434127130555835219842707754199702865875087464766782844540862810218009116016002424351521897615338280859183618687728017993828690694366846239158457453381988937781778903872627484747332579183402561906971623721521572157635837802939686920159645048449705936656019287241268463609802047192573236747325553379545244729427178136853442381737595576749056432386417643022147326114886624596387038378708901301596585240588613056674828436215978420293859231161574493853420786192918990455620888229002968846848203538517543581512119035571783480747272437040699031956957990734224963893385933101637027214455886131382826141306946703530637814918987031557736874531420784584249031462115950015301010247266881918509943815188792410590337037170876297407087052162187368200682031971752840469592372657490095307118647051965985823294598215388281949708780982174447006676703819937044173494775627964056224269597491924600866699100807999034165823840136068124085461253202383808296879256255720227937087249379681322192852856316688867195377882447286382695545934226687867809056277896211738184502880907781161302095022418010112724350780056015670598389442604941883160096163464725007290392528954520525562564699686692914007587680133735316640998866144757865877482590650600724523159530170645938222631781257223290428723038644692535387546934040968310937624095173007979140555234794946726422061814434672670551302014305988554123042184228713710257728299454837321147126959447836213512778834822826843802724176157103221006646826453990488201902442345468406437018717920550066932627758429747122960249957812630136912900083539014693749412766088891254979856920371470934720165031455548280508775459580650918025721511803628818175732794853902776937364230044308478510771000189166728534969901721511942833375882443253600504149745230679301302443866816406095074353736419591714115127628705862511275157102712394602389070128723151739132740861911082656066504171415717506850723393083731922996540653918864356594834548602872482968601853446735184581476255251659975610037021033747418667877891636376279940158125137218855885960165076137555402455255144005161455257304490335490554858859187956392271180882532109105782979630323610616134290500634640059177274422087547391894383856386228703350160177420825136114957512350984852394243736860102565757678535042514546576972509665320809526887658220203178761241089143553915997897132586492606047982451797196534267453220098608876696509566816630666554168623852922019450229780516172289625920554052873280522393054052942458103127888947575050951687079054007515683936124157874016787854391643090417523307389513579299554706484963718642783693240888270353385856933963175622709497526079016842240556875028967002936981771206987578259201878139281111508961468330609214326758994279671788480730926852373233601441093854152286975287390686971424252062150409640980586892488347680085081029576398941281264601414335323687811110842503830234028633464163749269737976063992363982976813981099710021116834649892815023344273714039007640524566325590387003996444829807781820587630910650163818096499850524279647971466333472815244107582130607532332507350575887924187427114522689896072609858620304460567083541217033278883505496562827990394853035286844640838148863665207475146365293361851572377153548330290170757056495707074805583763562113888817032899828070924099457237366090245754062834702649768134734917378547262871819296279412717642220582362962122700539083104878027340426510492411774787026157150482406424505995450395314065784283937845348621048430289555838352985321725312939000191767126082073346812088303533946451776871825538912808107678200989187342568411755955078598610960911929568877422272306183323774741034074842451033478041626678985611353713474371475136617570065195607116542571065005430852660101604459399350116831871979079679951936003414575027558510871135130996039585110795811724667258780831542874134300253692457745274688584729885624103968551890889077158419196651872660615622061645013617941546315523635919166990223643060536858640547301777465733821863817970559712613366700628336005323889880370814466704027745345845396999060402099301106088343308353365707652494557353454775650017690770393153809891141452996527968379412075378057657901899535794618458809562700875217663680445686771759147063995372566707025721161978361362769416353851538990299312678306125140264042000452395936752451518725236126220295431418063020035738834057040046454397306317072455810687205773834244017408147091409642006689470354870405475434878426673434574105928294874181608387155920847081369615407284966830889126943106794509668968210935458491599553630246248375594642791491093084287006154259687345320216800945962092825670216246635097706514106548473901581922768963096978877327379783515204192198770642507119149546925446843330326077858037639646778956272327051158486756563339119246525163749963309919207464736169962782771522118707669272583894242465761029611259831550736025819823186067859435716570478455951023834090930655152376205588794186458306486682722592831553103212581474535489279609711814037427004132842739328718247029205323829168753339130457400375225515619089506868820156388206786633211988391735885725763169149331927695585337544881575823963194796841528873372303664412184034392248010338218662526647245271916668589557713131423127844657818816526786174470643025570342722779317243783716653070820956236584455602336808431936448428660447814153681541021783076080794089880391252929556808050332660750338039559863978734259576322681481759928325797265850690682391659206028252469433290899011257260624737186413833061954605760795638445574999583890786236482350071256435983803742383676562088565620429921625610749935174266291376808917517681413848746081726615253494645739023044049333651572466387706079572974339899473238638645227225034898726775378363798892817903695751280039805567572926469881262574107090059386427164445197837162106220809418169078703578856859538098909060157436415912546208642102506440759718467303589155777705005366099349082141286969876697773044651942856766298166836513603923183335491325612790702012445380673797076628491123033667913110476337393551801435658891254463681711471064235510780473321712110663484957412251200159719836762015617083809580242859574665580439838421569033873218463215168866596711688356168097451123454074768432585609957859827735412358006513454154123611163749541672077000221488685625175395480162169797151551869656221747836799163345977729220054142145032977003260068458213922014336348481855526108217750546648172943326399057766946135523847459379865780656228992526502486628953310406390429402431515630134456469277676669858827274348540631107623223648038493632824143747992265908957361411463646532213565974251945995702841296457672888646648845980131455977008442009309081548611513070346881529669115115394067507571251258442615322814191961013034370872604185702778360503531829210484388894659426572401812822942316136027413111556271033679217903695170966117324461179498184573315378028895223340458002623241369484948361898400371254739117570371894449048162123496254956501338026957901354806940216350491712401652508109287707198804868455510588969160180963503405348568385239541367900065045909234844892829808960807429076017663481912251367261766298842304741656707988087960897003883463472218592326590701599088700087424208352645960820363066334187950789010276495192874524239136876390363816610494680797407477473938710959307708066356931287062317359278957712641886665164333873141287858891755186138765999168625859122246640173719609131029970258070746603107648344839582810538559529726548698529757077554411675223677648501122125316657831094551512917332952792872401822014116332228688853668809124792667151198204348314830753975068854449198129190993374382298463169223476388109710083109213020465036073293521058771269008868178237259454250245950439099039325648136045655850883529419817632488484722752680359632949886302677162524034893144572979175482980821117385697774983631493910717503118104439040228446551808384364113004878503029558629516760021462334255164201811035438241436812280600964654009251777066629976856917071966090480287475466912663610022373465241542585968962780644751567591695685986112028145253686391788734983506558565289432436945893656688240953781270031414606210344980662044599867315906946969498096389259121662977491479818637733725397777421523484018549215252627173028510385250118034776648432549221445963764187540108628917490681512408835385999471916777079949106617522010884687781497377128862816516162561665301078368242434976042496177284751474060517149480245147866876310083236911475280642103508419210918587358545061993690489609978413916465263460644068445482621762854619748556937128920812773468643696517678508097198356045935341215347020727604958766933704894878426529492440807997742336414047571393019342997947265493529805290335592516387177595765865738407314382932212764490415837454252180580249585904149822838240866746272244109560115753151532857271493757804221855950795329221789473789386260794554318565421201728248861305021055111276665649178127527427578438716205865379871352972140959865395574511690056836317020433633139364635541771815668999390661031863743058850483395559301817396550983276158047415303946411996963638661122655255074614056666711329508214070000121529022571067138160603895819053688547345480347810550871566725663359072763383088529018859256445205825183799083677967481066868611697467681765612116003799872382776284737980079597994042450468766398951755908997580830209402201488021526492823301490683242307442321850821251103523800518255510663418418654174874771483532241418088128290700860057198535697806482393434607488693333732044180744027185121208131504973355076549305932988551592695554107539900816263853469447782522061064424628431417911374477227405561964815084300833568911544871619187941283134613946874936756006695105610494515060573525797407021376786286617812435491859275630254496924377192316738065225643550275474869176220933217993263034876236743996489415337069965222319432903592662096073480758689385498127942547453886131560711837722130698499456166805480971019095977308539426417616062612745282156804768706441073268919830717597028072829649986382491884278286459595332598334865927528981384774225210295124269409510159490676832054087382449547101867457572548198226469128056537590301246120359293567782760911343010222906560277687271233825007226980892632175136049019548485908259321747557886635669731070534537563253420026933312262437714725706308914905682065395351004599016558656139788206676908618220884856661507697767820228376646883406080466065653968621593784811934512130034463851342185224206507422072912288725450603862054184183489089831487336429173710233196968501430697923566723354394210441946363196825899496743690956564916062866234884174648767528290523688563466482729876347295366716544680618754874353246148642249076284953903692572968462725758085518426630062291952158615392279201412844998966134763781231301868993402312789500209223792828784295206461573889748180107109993935207673754030759978508893351027702651054947956899009894210235073057102353454726002182609877783822787586192861228171582507356525345409867147014786919352102488543104249010345628317936101717286218868880196990281558353172270057850904514937688125866438477344697755204791589241872081704905751707912672604131846557050798324628826324988568086929940569360311117524215592457696446139115009389658009534814911983472846476933834696665990676545704518479536272131733018671746291494312989680149228838611967229097062106558756965022872200353767976005928304954958198530089885362398875654132271110954036790085211836451339729407401264472206929593723901972707788865150406113029114381006413884479350496206936933262309323317978595372764853206622047659226632239799437684132811931589491189281649841156099712543239262867539900445105328590293392071340745862979685922406510248549600650789674305474100371413646231567377197157149541321095879957184846415791405337570991262137697790200397856676337221203162602732711002991997856362191440522284752971166119086973921916466771341084425584928674528546408580344118796169837617745821054536548059608234827771590014349094798219836163732559993406348564269591775756911400911295709112531649141762971050006318019393957904633324336529110975260131913756933682798856036086122107834070485990973176525266946911374372626051960094104706321371734010660445728249021095445168733995095677920659905092243990217012684438121552758978413441624869368073395541296735003355748823163697831279223571523759280945824166620757226870329561309016861269655037086025941212104657565583103416626918297241260997486405420391810169428687010111564024268881753362112465796682152770114128830708348340464944421909333009538624110062465560849426511524051701994351204547283627105087090451285456384130836045505506596528049041185870245516382281733797505765892649226867979753715654142523688151254398902704684022152872745215811309393571531476556628356242959002951959255097816237630466763894936434375831568145310258431930008408453782900384657761242808297305839798491751757065048608341754431013142595271805591068647401951800398500313122879360577055805077801665472982461783104133938916391546652550236063378884749698820403657413610329127139873269666107214256276355729474140546915366433507793949138083754937152732237219998091144206805209969874156660690252289623976171435449664011082147627560821766521464873755625758061936380173491388743725188625757616003229163649453442943320099136916578999003419055435375189167161999132431056238160187705359980140260588800320213828077832478159582612056818795576539680845954176029070876325920300575945974739024650850830017685384488507341719762953178039740260403506027155426926421482211502928455999931509094707462026450736034527943027432685565641431390370439955293485029570441654089711719266484491081372231823311054716475298647724838880318332722519897487812040681936826685787707176910590803485108844346013967573873793752107573042572866922129074358225827853411878019511857603359123357067909054686597098039784066389753308842873491861233885000566020342350240483078747021414326238281489343091651705174827805236450917852176044011218334118030705107666496406691467250922059747396820222136243367075351548046419025309141453152182880852272530630620619183288534623029589611268790854619785182153941134528385001952347620767399447699654804101653421164204935994315950857488272168356072394898034119934858461440927987498157122174461318463032283605016614611511119711333285483820691484890047825196088181130101331548018045988986708356877537416179554184033086858859679622382810240651198766905544598781040331539755679538135498106927908684070011565168614827494420427666038410008924404547665228236104673229857132803371275185955981297500833671457403891084312007061200983513014015975985099063523269059886221439035656227792945601675947389947016844540990800065979893600991599541051683829717367276825057987016996289452761702943308357891866721692649672626280660502948800763396570786251616120104936213291461459168730734284009141613657247235926759034721008836629915977363655366438765443107886786383021486580013129039403420281564929828252401302693966056206390198160884717521037410837490578422438858952530083406896459591093820695832386761965392182133331428422908078875879799276777341376553103470963278271446509747693310816299781927779960907731541564617274973400722725243370724150453196963087057917285168894028372357408055416411453802505221394886442058923290746803575966781313735907139571809510382054013152064669513253226785453014526497728297442495542474879860839901570024918721013539382401951319708479027198740513821653372708434532745567071275100943682967720974778338436137846137178132509646116291021997195279353176373937619871147156092718507885622007556901016129790182639527173977746176105787922716797810377643057230269512757346001699998114363498847493031683615065536548157210357711290471972718168017552405279472477248454062646329159319591051491582974902412750871852376326970079331197314831512610589711311314253298705744130631090615995637473191146053352744553121572548314938876635749514177194945352683768516552685558343593522628953490859087956330110475385864641518314102536879828763245446413921880466697082123607434988955881810206664802791227564937176631539975661477332095994862739759124443441345749687692786080784049095306488560719978736714385902280507984620236969219023958042665928188337903180919061715925012509849273910068157349024062976614206171389266854841844045809182145882614196877473578398146736538041753228045884610402445888031584993179998859244864462633746807087033128635250220529685485794026920970738823729029207422564631964117478881665155658608261218316521208878586399932340549041373379995162269380327063686123431661695763447286018709229993892522002269716361981207427569829687009802691432318564058866542744767846010982042077044360096547390291180228554059291458937749283105948549388397172493214691357947115307822110250558982215155614978342907535842524646578009524614160450087089846823626638575041041941538649650035229305210698383550814581598774417474569513577881921001306855414433114349651829829316849229850194809071169778847975079411283107535256229949784902926253552395467844845940086639477225103896890421139808005589515974682835684432772136144522986004587245539041261175919745271796100555222806299042357269391948302078349724177399085588554731997876708073483932223153604754524314245218337286840475796418755321441909125830870482747094235255692095881903329060732115494280525963313789603983501158450488677508823295249377462745273232543099248587639500724259689360015677364618977285527768287823403306138688869659734546013467180978201529823284833999559496233900148505440456278319765538618859192318030317604373551763532517989769898548587788212102000369544682599906286918550031828569493524338304311160924705585020380098611561231309679310154250757845627891839403152253869339308873019639521225001304877474678241015119102960883313940479071837872905166258768211740493081089272758034955034286940631952603379706083944848077142020973958247752584617144039232801158990410987593711088923567949212081023900909260306004862312910810481890220789262242415512431114548794341346760822820080045570244049273632662253773990277846051644925409586506397331936757271393265271584745447001628833197763351530905563618428546814712818647950351961221273945846606249108747726174373594564946085729950434401666705199076090394971144770373651265585825760304373435383914892461622705521581719645415594175804492793010415029182050865694346251274952856297936794994948838069979523505644348196519674017879890168386610535602784335447960008619095139007825611939439557778486828444754405604263687454984147694835931437504695729156671847691036574961803643004310807320204119930634968594518594701582470650644685812929416201864887266169462953572013078070926607506041230513125655333925976967364357566475334443076734473376680538829281497613207260827125758653751348057140968252706554737168132211616500077228443494447789410176537254323930310753415363493249733142381680104849195292524887490916609541004685779298177854759101044751892468782512017678351006407809022855522694162660147919254622496189908183260630545774241203370869221596834762215396585334719563541409980697666273751338257085098282943851847923800650055328519842621216788343714442558098898262009336915268909518087773220528481648910401214036803973364262225673599498878225664732873209969840793005864766993448515717418003474518366047556815335058588610404004010971044224440297385167229775049797069720786276917506023130338936547895608067134456534915117604032286785893092990940971297148302583005148171653675723328493453600008628424198365781324955214405113387822406972489188197156096322533459054308680051283976788570831933123762853885573765002732134240431050650818980111164919237108198625165103164458299711443068752395307346544987053953593949751621548017608838674442407209097104422252608450953950910294937416157813638942007445487470432473509116951859940984638728455077650906742958052261139508691898729246159916478466360543545120033942323806216918538687447284365910159874008771314583190503772323897607494578705212119903985865224898949304975468915012872107560537306508069318950527370876216075962504512035838963860634628646334819146394920393256200073195461189055756574340137850767634803208872004484671377562114257906561245512775943727438296972438641536260801693667704181438657459854508665431719144139412750996170347618008516475082031889509037955234194940896332504831037931113221910468786731048643710159630675103238519388644769885019077683762747259677795311044511897779068837757030468055522774981804457815362074399677635645106488950854953938937158246704698407310932521268123093956864838042240400745325852531571999876675465555473242504466643369444724881440568397030619342179976170974254221201299686100199756495867532407201542127432973392840139440217725429463625068153043896237477905639616546570607135307365943138261650210118187259521818817268822604637333439676521193612479837560599233409940634399463371621458993174433301025830735394746260410793615008324656162949323822008490572806790822394455394001972298960695439336440550801871375465725028873166458781594982430117672115568789692163198345716486199031858754842317909426451703751856588229211292584739100367208212367740535812041881893211822801301258240235646187575885750866763486076409288183022274471821691241242208192315887177154671415139617503483893518637877820789620565557631683812677874819003741152305945411075773968855554716497844643489051008824697393330010396805328759055697090003980381975729004072503891826228934639653147954700525609106322399578932716508030893346475131425110473095259858788926920844812171533064913181725090963914055422071316509816766402341684464966706444351912232199374411780479759696640022934823981215679908590354935356037043819216711200399722197820216142067507474815408185046009018231223716282270134004023125533604187024102609295146017300356876366437154301075917140756582690164836803083459095160065764898128261373447906522811997735831757841796264744474520659203193768448304856768453011907581903593937028034119216412136338929927123702865579451060604643542934495318579878670465276490765459488674904581564806307627098441448711640890631432225886291363421431957550713827583408075118480825939369473232585043432582388797350749925046076367311155508387770729369363481747350616183005039151300220422562695317398777507030594695850410127656637268867227107723342303523699263416163449363288097452692842735988970693507791111575054039777671275951305904887316040780000960347914051163186090688704595852187344404768870049323566656174875908839219528062816270863587562651497397917882012532229745018310860388018947277946368285014248805398311543086816763820422519781723545933180350207006937361366693833737968635465294269744635187144585598827291896412185012608760741996205690021734395380754266004857342405515362975849858882044848925166069456290328415985118313959098355648044694346737232700986786057082055774511803882850056950003952064185948079793216681169334201408434002308453961920529634216872621515680497028277091410933935120133673299146755742472612030091392187349671454243105677628686161863387346156275552018552599009745523407452779310276278896654013604248628843369016744601701471906579662259135936675015344358410574720865495153651013600608149087944084380064927193553208954523504051892580631106329960476597234398158973434639575871990707194589843037691785520878681485356619279797447087630073087355726981151539113157000864105008594356571591067274619325296413153314416287623074789477049525558420521794512636646574928861911338198300777383941148249609049485723327601913020080641959509764136323540596222102012805061313781639549701225367448004616434230089898837544653533293810155088882256391136593773223754186075308720767859692623041667117284736958297286960250151223039485798936589712217256840720346870069830000098530447043659142094805386817025092451925801027275280302379571521491338423753479141720941436654000931419104152911417735785290648140662388487131280336349013959059298244413196541511386082882425525654291237390423361912789014848856926302297776710087486607530502374078519214286907108838182581784116784161337023770947654306628869610261667784741476387109393920402879674399109803450345634341760520896293309817709056704006526679247742960196524769443785126289224563374399766152243387920358935526593886477319954235853339198903686724809667427044362369860280044048152543717736374369189265461121139241139554037899189660746075331309679597840733921147962588846888877937196518808439254927406546988211177464301456411649394067863952180938951023216423528569823469734778407013543715783029245618259341803800917612663947741611404127859910867685269993328434458053253023810552300211006085766911746777132109447972319469537538915606077103921685262723881998894567726917279496011282161892153567836185654595153338248844160177483400294049229498644822511442569612226516210976343629083777745269109084160109344678523441798084776059501868883271271821379644801251163691057703528870882608949703444013254484268643749367408063686516943889330504295774169499144454920523834224127599454601627167395865509654147567957741392433964198811296666197698493005457050876992902149920453800213223112853380027674048968539903032842714889636154447654356024967588842651800822648661368240861468149304179950319537035402067915436315055759703758979373859173092361694596471557354048481907797032026054575078799778092059423871574033795673202138769127074201289494077190282934460087003094613231494508463263603018899973645120303732286519050286761469436799894498533279529297047004426902574573637238573413880688348706908449203023226918835143990132232185384090298468356017023401286007038901169364682177818700508422490805021421383472565276192848079490658605573471219243886567120610946332039648017868704857740734979813374829795773199796300907350903051796653763964175680457724373696495650541278458113641276578311449211039859319656405423622716284059301251509484658613898783351315399950189965531654614961379967631159008980627654072835002619638314685242489201129799165489709342083907019655206569763942496592029603968329431482278467933135484237049224243712883427086086287867799775553824196825584981978064376927300610266660361238268834603391195009716671927601506162343002699675983014311345711555102182836874911401609059345960500336882019725940588865664353692059092156411474733092822398873501067653407638479737948759288348977755408076572806050150785050591560446473951655932116151800132284403070451796926632743984498783811888249569243356487446950841094253627390647910186340536332065862132802303583430598273121603051388212581110719137671920183760609405394221992679657635313429987030010363115121928510259556358193870300782695379321470579949934036189616037057149733898626741124132065544469770318132089772019630282413382007091871953743591351894888536642064022347631562253008585673839542247700211852056795612823385249928939740515561887665531785871806037886169425331224923670128725542791100568509469534039761004286294330422461481913159492903845892504340303411736802224305374379362148391981946064022778160689203799056901358729317336701453420076651703594372075381857890144200632617806631618502379992610229616583546152000866358564518213810631751749302002395836739863339477706474469169710005979294587029346224127584698564539485293357776047294448027315347815467212993981272951360067830105345759069724464822525201740915497466339536695490228861587049546698306570841291518462373702265383852531636243854271313709896904669446218568513832650400374409486631513404375076696165304372132059574786404617269542347552659719632352215092966515219038944424916332783741114552073058416136164235771534629819888532379076247970046664775616395780743930230334745472445080728847839763819311689497979936571213689647553684803802655046073137657929102137333245166447950421303063030361936677095489220286145435992716475993434745718068424444188191941566262147749429916268538565703830968664293096681000846690289766156333940945194192396200438938199849299371238286388248276385238709533130281375252621597431463268242187261241426438432820798044803771786617903262969895513030408656495738935362459672330713633444274802251866963156738309853460779546708990839678208106659333320062004185602041987615932310852345504366259730525498343396412199256905672323313722826487199230571474913520999805174696862950444625757146401936676840356274627423739261115446525128743346521138391393896222373062518025298280938216404620016138933841569309820571738692128617088675834082678712945919348419774588727962873987010791680947709870583184292846411887023907386255955043826071581092476159466329912831864543225296322300922273691869312411840391154130405124906780308936839507638177315281087636776237561556847030617576872102514773629520355466685066109445208990809348340789597698398025978622435609352706673076253469459746073783569296173626074780042054510367933809257495301795006615372149119432854356811099279501882431974314745711660788182124610061485220015461529461305156698388709165152366950654682245660271995910180107538755141843333955745917116725874077309738995618535721156682850896052877622526640515051900436685519319452796981932562914666703532923093226854132779181331276837153621954640268622415653153180889293646519756162939555750385045630491662491094304931756908057638668944029845721977256971383465572721374155620626948094202669414584886441183248735513636146974397285397150094706907791187944318325744338686100177607415692366769762233942915964039297424131451132491926182501818135342220493118044532943615502897985753950537729964260733334077435370389812174617635917104207727981401147168099615532770636081108592000123772819997628351074613346232982219687531541884391285288045226336176958017530707623757865952140851605097494672115686108384544158697745554100497820031362181419097933414179030237566911040581069030316721138462314337548433502579334969904073863098330630953178435089161042731338412722609638883193209823196635908620835584428461941011067376220341071988071787160558357096545161206059992854376882358210678978317042132088389400638860696245625170620845598384601807594126475648427090355515761550384505851378320424462839382596894243474415140490342341137408211789636126720391219530170286362049998184330721836079237136232712477760218037021575765793044453088049542253398813445756342028107306507575135412076368302939732872094825478489124609570299410281020164081968000577231355423278755867468079908747251749275691885385661947859680864285606921946128730743129264833528178605009227188004712768078021187828088402477853602592917845081806628302684908489579207548585808180887410896531290929325466597547693637741616504138469493434163455788246085979539538384911100571563662100348802712272684993363961830633929350300932718635247002436256361163484343505454658607776688509162362782277804269141106114368962689750141355102244240969789482731964025320905569517243538081693199463951208346711140361721444306568676732898438628331619113729691315652591657031610017173843962727197422904488521558442537731675274675547291317978249705484672745671238692871023483671815566927541222282488012783643570928547139231338056460853569958328355301903714896944721934540761030890647159651645044329176394474125682102691535181434612397777952104334304660151326138622500314665336389114726315736841832547955584236849737976241894211227694404883135520110808093689528831000782457670626211728265531865924628183035127669600092746361752152846000028221719445145588669830282069022552337755492530849641234795811250265788793751999507445120649524448539264914474663279205799704296901914206680911188999833080474875530290327510888210373870498422928934604919913169775639699656729739815309119316434620217035790056817622528771846256774763626290760337384149602624072861267576553574024336376507753667310123360922790915888700137847832025294056552019666935266263333140485693315628867636314741009895869911075770603740467219433801566425646003418354642124244834005627956910463610720706341860624715162714273806996652065987416415809040428301714595934797005306911363539702323400205395218959288935249920176766554452357281035042386554240174007616536371537275741788797256891853929343898946215459145029661031861909604276812607780383115874057014507327721126908062671561176981214749388143715102108200812886206533295464599843980407747032205430344982473754661037004727139820388637547183615523653985728618701287064801639886918537135406253695069048612820849456506375922807213386713223149225571181098519317197802165437883762609770564544674100354331990458612574332078669988945715643164308149916598053539606732330492085658168579867923997085124474119967935354377339038734812492438024216226134986738932929599734772220407205203912729658102896119415482544679263147761571930117807430447939068295554684962888361576216212122819654463652554608701897077424772139023719593061680875571831655730601048179787905163664841302332981195910962551867682614964552395625864163815705430900032475447881035747354548031452971312797330112008935643997136313844079800440059697380493751381933630302670214686752831718669520966357411405881203778951002865169346685620041132865276763630501683564452516445970227802888556773736904298987583524234148493731629588801789529805618952890234263994443463764629852356369172263949011795801829270560176838998231289447652566512261936515781692324292875736331136894684162530321604657367053735144174378632315787147020710411342535690827684171302036366349172781952077072197794105368838970824344599676453898905337617872954132707222672506579526325150708741658723424022969725336650548585394849667273355292825976047228198242047575264164944974062621991661576504806390888806411946614390800791658944433211626296204500008149985317784906808125510416911986947802494064863964131887210232766136025053271236683305371986157746872238074784077613265528519395462210317310033832589274879692050776190000230568347991527957086729215564365352550057990413617112220431443739240475536066106667528412753467698239984971728466941505612581039799866981382278056826516326202595643183567865268771570367243018200412287949071058152086785003684097224985536580379143187912061953266013983242308468863076055478254938264483262715511179117920241437064762230661994540510954697534651456364243464380988572573467797090025282138355748251420701492907769285294183085932393142353750175156674601818685928447516039611345010365873819199437843583813887178997757265172388243536290292350238277232299231993434305473320070720999791838213206876393524007288270239815973138332937069595354720368112637294254912086036919353858426788035454683989393820224782812978718472120687718822956506577761250765048582833359263090741899004113493784034883151043620412286989853576537032903125489386803303791556004872498383041712391448659357556597160340127122704750134894684693700568599979697484139628844634488877499530908235011551227287853313783199235005869415565299658539326288812165319427579607003975401987496863670906522991730066279163413251991852538824129979014414944932179130979602370733417930565958527631990177719564845088397017578986030134264342603777319568960469117811580789909853442143938048393645331993239152207891998088571101102043806995756275290608773490753856880586236379137032052236898419460821986465000013791910275413752722548887630718611095684889867591005621958055199016302813308077512589015828519288005382205534541760786630432736188635994443234469202375927336653336260731691077406400100159481276156467292227356878008577314204871522890595010743715526458443176581427373510694508149598741541857748401749435335278135108480721924106520473747678303750920404312382232236241845566994774107671644186243794182175681192408230477620302059185274907413064082635383850564546522828122332456733111151146312301038210435245512383028094924628631099692765514071950332079231389966751156478595568197079120525581603430021883115600103880959423137091837388911190759599860841933183605320286384280830780345547711737576784184602552745074807944647595225968006757427118951998024809739073358014571249782532793688875459289390084535957026665918571475085773166324776445814969962340982748343732085591937710808989436114458553791835419033214792411916603635350457147267875733663013308877699593782076006018000607266477910572981788761942567769492171850706755102442584932054993443328256076426888830573798498916038950114730874205726662309447335335003433067723327128171259889131617181381100196815888973785919396997019638862202090265339011135363654711602276040971538041769183454704985582106322280184904937110363805334189176578523867129436552965734979845701335778236978214829585076959035820806220181730806017610334663513540521174380040126026830073362716708202247467971061440627645174002118318731355765595015411671699612021646739385190989746989609084251908097046992255924659941123924827283174773130921442142232221273103525848530296519898620918145860034032771633504026400598251846095416558322606762770719648725872744979026336734536621973441601215474041952097449914815402190468522779400958271757316960206813213898259815398265005348376582201905108551497151962246311656561128616428163853078343398054463561801643227381119497546582832558646379621109033972637527649220909602202179158246997346562770456003460972731738477454304675211096883479065244243736005494534436538849683832433994238928895206339133851160820020278038210913650532189483953986947017944285488925899362075944570658879663012057253685146958322917118445739183060059267668212723636812175120981084932005488817086933603414567448877773243115817418731105678636001610420682498057895918194657736960693950475246373714840075979074184549389525729387224184628699929958960123391169303732761552590292493775356244638765190670197076783192417849700501380493468809903392137994998581491264282432096627527111531730088070192496404103955817828445132297320536506461221532460859477708315529171370754039873092104005813648587653881958233923690369784411286771248428008420022701359355700576222108342764524842146923501141729469641927752641386026992919553546724414251705398240410333209005447476945418249226668284629914338172069257691931376940884726953159318004641460513786373260745305389455020327188380184292056483823814048928229283204206253061001046638508742383494617066839618602656916566709874532184361021612401576220838269838908139205870441215323536178517932913021643780422670288095571729204647079678334616169401302137689312495616795070005716228755409364051853612237855753038579326529331621510794975705143223891243832401652566966096869296937519592569376865336487553402768445051419734658152936664535242075616837370071919586227366558802194084385197320949301133570115923155209257651692046381079305057874856234074343327465803981308837121679539998315916598628186712286288452630963689079384978879167052068141608774327662755484535309859576946107945710886798837230693419461439330740348408634304015498620948095792039831950858093203365533364243171129313175115792326934698282401120538820482099086627025921166262401579480437544320242618149809126297381536926714758409364448511297685590050256611525783403891938816914243091755845842464667654723335292335997067516357274184676600203791181288050478534668056607722251806420295498027553110023573997403744679063395512107418512417133707303940618914993573461734753189137196689902199254126293742586514263605583558063129227870995223863689963901558282601314298263666084956633103151624064057473402396174980833836666773898423803341415658026263557348917537017957617978083075480634679294948321371877863687988122497246529390394361037135560333186129856661098658033399457358016735427060449813354853368076953366679001894997573975622987657470503408298068383776636607129903200715128812119262953758592675349670394013955987492515688215904139422277876007881704627005283368547404036400790793497084827711407640821665976681051491625495303476316382149741937239602461096625742028287151834183196786496532386197560193376312529155617816916975145042366926177280131697447129943929861481717471563629774377060546043791433070227799645253962894099024318128706844670731702002374791830791258305929948858889737401963377017504634208814923652019290611479052450695927893576603525226667646243658114314158715103045195233912490902723674120102275144806361105993419220142874642134157328749688957223219507974461409811445078140660833873836722043495126855729234967572129996960531557254705662450543874502058003790189087540511914570175245680729177205163729734791685691459536743207922627723972750785283152207823582365903428450367422258863035707290545573485510724544321964760885693789510940688142598621818957521272771371693158642192368586996906932240391846194776277361448973370285676143732839514928875563634150414123740520630652297789935129833568456654398021821751187566215232063468317257737751297570959403389798081110237899625251460710402440481912554808516802340848906910776720136060107082495737127617348821978045103078402510211444668026627798541840815076892124655921071635106456699435040482011492924955383342042920530941241276088645560084453721995536205321165768882029417820263294214760315166537623413208715523476567903057044855666418142477670785801519324892153230203554122453835663986789733453069057986562139974112634570910065618598312155271680976078051704440536167054715589551960310317324568926609302893154255623255608784740754036867829507593938576705797853691864584164174665384663104815906593065375476724593689570276544837088699430620307395516504368407060280006843767232254330729987974152441623449857604285860783604248215705336570960620594181475485553067312461271664908436182724356813525032194391967395919689212814463627259956642163967426615347653423342681638126403428103586165031044877548557227065809362711220163782969733365836281589875072418476426271841383750448788768333487492326819087453051205666170711237049456775601387450883341014858357858397680297643675742053318009687303751619728314760114690258369198951891447229919426500540247340608124187272464190536556672036873389324659929752773899270417234149696663829195710658741004709534594034967758632396926465410218515984305902257860614544301992011732347780377111745242231042470568329470170827706136972811451603337664632092171662443274904331513278148396621991425749963041572443876841797187293155217569793447999747215307267551427100116228152913281424836662842626655485756732243522105941809076277556865869844230432096912702672241866255690520472475225347422672632112063481416281469784217903769204618936760610092012703503389853282378354293228360479035078504806346022641995739832671585019186432685721976310154490381557218855688057351291024062042845500983966818562497439465569152936609956075897520826869060372865913464664604189537568313068293960676399079736480914409311619877351329584126203966734290061577905798567029054599506474615780919508661262319251952023458130092797965918484703034322033078364938905416195539606545496511371815968357139935578266205330845241259617350624941950890678331745920350614693263231355882886531843320846684595230003329415395544259411848398279746275351657763867458817547250062416010300686243938241623114449901593709994282745454573754739302364320400288818166246141781463062567366342980297357381634421431893100490585548217908192234438754205105327140083299241102169149983225583600484351752974929356784701852899572755721606139349162095519446500507526242510594365540724477749550780400493655892662036612041759271815631737885498948280934703962619652822679627920467205428945005642848841686414146276801905780101131419353128468774383177064071598634323741323149398862701014564523550786329295346108690466644907551888549400210257358903407544476394770066000523096469902671208925512219904653342734603250803134749606988968654818184135136392974242803797460000928182717465750427826812523251663063082511976461901249878076819254022579865828367232020574270801301580074609349826803109776374186256989783350673847574719718758596051082271133528444342644918002998640544847166572505047010944394564685025042047770668837840231265575899858218189750388022119520805084425344308352624046205348130418480859968380613783895459006668938642853404201188891665997667498770430481474993806256413583859220363486763321322624184529402715555266347583846423374880655546808710833075378115002994850624194889686925406810468790349342956407151604955711797378307800479906086506019168327926729512236985619825786075671406330030372353285667714794933582640056991397075383616855999743539278255247926178680870948554296964240936585703618360770831272624080343263554007927619701666106239197932224409114029897453648925018808746132717440961285563636731045565362285167772606575745394174547636444845833867709131191326296276070849408957867353162179260225917332481456052737943930826441051322544734612881342175257823682230634218305838460684197514647794526899233109282435806962326511515052737429758920467518891922387927373335420646756073597413567786514540079570313577561574970342749873012283262749810690187218421610671133628067168925936169845304834527993826016350195276630792945492546854030048805677860312176139290451476913300675069235033223930970208215460308834190643016290380289555840198977287059179138370409121941616185724123900082864166575245053662042787390646263411103901486785178584954088037148081824080607590987178405446307163770921687710287265201080473253194438673899511117508795672834550061646305936687218612399991317773810521262522504784223872269928611238659422712438792809301724992767215769359539966041846156795069068402820511541088672979257594356583708052214531228839314621827170605963734361527209942168817056419044256825128234351079812931986936107145636103679528620200107940379725536799418297928489827103774210066675476922893820877029410435671093799742798493674174014163830804949025279976546585310891984627337674796164010299702515072437701456711705491668400956460020556285113086178298464066513153189429188633175484580433636022556940698368156525204057762628117411850856624218810717411094387317387112767457307260578612042004600010789861240183181221323628150231711872706632686358242005076809665581074312044000828306440817987391462831032962789870778104935222056416712558935949995970199193031752358984287550512744071868802636293691864576222495077711403333452586449264358729469925069930044788811282608043918305667652753906395952147371066468713171047997621022169184346300513116057409652039378648255953104632803097403048832098882025527818618955173847973231637534365106052508406536131025511734630395501082696611231338013285327216092114441411539808394654713723469053899904665299775766879869877803796920487972814040716893407232144247008633973742888943819003289045374893198485311631104708718873969996652203685556407471661419266006006474572631909647818185339546358287360517026836645902995013167757195080481590218019707611975366215849033254810203071701713918947281459819343011805974170829703547047102350927454687692987038827029394595182313397431214189813198308419886377128951843120793192057264974502599279385218821538772732208170385761147407755900884714694177483304319894512084299402654031975641893316001353534747983679560718944085813503934361113483152647045150209188014663073070301853491999984128417012360733032324479900206989451344517852838523408106672262125977206864215465609817359440921910702508775000424022372952897247016517463925098243642011861824211902466116884948228217726660015090149043535284000571550245504324652793285181349465527968281912484768050964266465341547803112879135400493894838873958065856301122319592603582501548315071612813282663037744955522836089899890499991238482258054933573902610131865319252082146528501520381163568440343542258052940023185346819235312147091144247845793816022977910523796306972462046206979927797104582525035409515701073149647102824883930018152312915504911490004397534176404511308941837345212745642510394630571273879844097128744781982401175893126969633103419069689695017570069870773655126839780231138216368294405823003758736461454169097529371213805221636964831723931956019948560422089529069002902527251688813587550812828554393947305493893839719976382653461279023157960856491073800472254943387388133167935723936508637299261137189497910225755872947151578003324822435435045458230632256098785787351302182332385692902212895247464666872059123129201417723847398538645310718842958947433546913591817767059105576858604240044578831380453543802843611882849470730961399825587633439200526884569478519940709034431063292761779771360383987594398298487438793207645333293109959503543636165001903555442221248585194214311542664707991381323124851224493813872984147138947577966225999537542859263331902017334536956121747145628334894638871750032364816016737571627527081062608823201230567052167776223769139955327612334895369787291027147985213890572348785916487428402962215266414600783184093857685935902102037514768697982002903344717342675892541229480371770291943729082327547116392817905492451821538461209248226050734198073911744159985894553180372780450828825159470804914249504443233555785315193528477723093403818130108406921301961414244321952205769826172216980220296623899737038519549525156030648156246458500400419072066730676247368676206047585253204198158284526291190246635030432419275147435625388996467861512021035333478202485859939477082691071798976254022203202294255997805578803611477945582810473161416515123428105859427220995423258917249934885413715823995163292790896510757629686414241012406141000888565427765954490237514229078140598766407700652752365849821775652711090056010809376035135596828098882837998736222344771003135981456325512008791306472940288860223871535908401210037102753786940058072461892352263679691472641493201794038267025678920209951464981485976727230537525958982537361887873272277229392213512721877229013743647137919337020547163921465028182471943115838428303013555311730118513901241725214614024130166599668845573510865263410073636229777164256381816828922497695973360170331862341377008581991141853174050226688677945550623938039908195994232183875406613864992944667079320756089085933973224962204342409865648897764593932750355883479114684769701000515201466474233218672687620832652617691218539470054955594809569611087574366571445072686098260764688190393314064130270697562285145656005859412052048064723549117664547748691656199376790630462225219354737612902895879912479922730071357109280753574672102755873446730499884735429886680823885668229074080036299874737860034288687747390880225455479758194044082368567259341066449714132247471614226260886482901665879152145356696976146033944484319376496799590188645500433209755034340935823462176496609999368916922211071240675995573571549062845733483014505936727343821390681446169828915996298627080170861805346211583692728291960494923803574699039411891050445366486725877355285378488753561741189926273035043649412207429934564948389436637096725041059818992451416563430431954969349798435890140087380457721785347244393066778581657097471856726176727943792392793008860462780074672105717099993283897482043445925926674890783401468216778543659112875205599516763580865701031174792210391729511922670314189963592998555743236190436797909577058564030736845789285900775594576772624179905634372911949022206261841745707396460270643756667684639341099836642994149594472899627702662434014155106342767353492671705717542708237172945651224406820878437526048704556451941963105818683974882604627294123698163467306421455762410515396494376216202126967685560105916535118215511168679124883088081133248769413459665965779934307785014145035960446755714705542519447094241725835682716414748987740468340102992829109002655042118051268677122189607526796377357995304120671343916948206145940601914811603076940079054000605747236727923312699666619711210237632854132926445372234798890028672989029267222140181201772204795690873039827175509769768973433809329729040903923409196899398456961022293819615367455716052246849190207159396108400387856462942028555697184409068857924673319584468255108136258560758087807096149611646522798227033200237033159574169044782566668964544282870056686109422149898782245138167075842079698513645380467844016711952622190459922115207230505023505570924441842017839572183301356679785472075522058163758337810457093642272213200992864598635892972530427496024713623563499717050515622461670946867950117673984732849533494289199521216596188674074121002809174118433322588209699782632547228375922744369223902869739723655493586479697242842521125256940276833491397371617788896037931146011407730588776795324900390532913225402074280937928512327262438700330859800776677144146458789248488360420982561930726022210840405207149387130808048650551285941814346114205786833033558265632155126282680882080850055237398476306305096573594363910467248107354014846275091724612695207149444633969544456637121513692952597506426562198307979238111263927726186137376333024753436014176195058490291827826810067208189523037493408144961666993071157854498317073729583738558689322456984331828508658388317796173351531369574656454980965039083751837237014572767144455760916995200590419438488010077468736577434024238515807016663583572444926751968666924292304867876792535633994146366088904059017247779758519025498216516359271783459719276303344682543660990475142616643418825080162758356224637652989867934002656128107182821614935382779919013800846129338787914480405408739690608643375452271343351121044309390788739581893924945326733052080084261106876558088604830474115154353039990271570106763981906942901221660774229695865462702636429124202059706853122901581372162379399242539825872374508675846591955830888391729867264816464358006666229987133614741283258557825169355947323308062000675407164854740995976515228535558071926318507352063814895017382658620911778370290730463307306774523292813329643657798691876327176528921707881480388117728467466253078301889217557024274268932476364149399723818074286177033321503161798108292019117589287429357003910990427264203254416235311579098359645611577420322205303999839231931858650464195211241916241368023450738460077242399496125109549768440013042148961866538140266422310026918254034235056733810728800415647377917333322509605529709537576189315125030056862350343909894829425420925443223099944390325521285944618913048108123704396302634405454690824965094277736274682977450973197072240338919242831940505388052669027450301299866389770325645164920942945542520528058103174045397495096518715287942029776416813915189742132496663501306102192623199922645632435012112021447550986550816517311198920302501609156423572026169893705353320809995042112472116198473441384372121668088143568377290829025024450631461201372655409711659493557098912750217458602769571570551061519869405898865384912582453145941328314106798913311620326395433498652635783662818639727669088797225117230929988133799543677527297977523332602761641681364287807507178793068291707039462549069455721897699391918965222971865769948282629060842624912007112493491762046515522754895849341339506487313340929665681157863597717454666524997813350187232378709034465400346936856152523261561869530093163165576390844510283663894594736908855858603791311822350713912513674759017782959379815437899193117044046243331644482014118936593443237443314975001657510108763468678368240328346535300357724559913265654853596657339920172432717483293815143299284770693793347790371492477414094092929753453061129802846462625608805353084057731969989812372240164767676382217682913204913932781573231072173785666618799704532996825678572620755216423340303761589031909887315586317021358896776585537751380691883626195184427727289606041540054465423460382472218547527053707825916721333296352813449624907002374387690586763870747951605659099541051593164895654609541867964903321524707822010025386491189517490120202915897179059785457445660196542474410036449765893243585997053524209837627517915764204602647055078201659329824095614773980081762582108714275441756489199310266644468484860942918354855337731660631189442427279574196207984003879940391566642863519036485383738925269512206119343724300683316683718465953437940942090163895966591846102851348182237855340712730855999796218223377564175279524352587596994515594962970471189506679424385966683084682814382803763353996719158447202122006283506597833418987670862685017443764548495764010911218215707387945677632125981048811286185987585164262060497268870418212583379959953988169607836205786024087187235380901329805260752491573409413042435690741373367421477855737166444417022081668417083733366217455482186466834568537831110346446469861385955889598685039306737542189707753100685273551645645856611762333215488055593487156377775462928093515863550878873015474918451873773510042945149705089003098710727683978272978422508968120867814861539803153999825898264234781656472048019278513283755050915763574300295945728522422853152947042040144700589653869702447563257966076303011725791593885430711354918411795428136022191046726115508746110357472765738733775695953428920335005342970218253477699767663652363682006503383235975715643827760949759641374540822870397228362588783642257063673031932875244302275543657459608124061271023060092952351128023290578611885784591352855337494986308843802854687947267478690167388782321903589938407240425441432392598106147435068022946616156520701331431057465716120006233343901143992632828960258510571893421076648876179693354139325257816030520707798940723891047621298964236075892642468326712321042977292544928008403537248859750332206319082632912410988185559052776484499638103065472164471408973943244334367607772597370640247671484058244269032862663152042377927952551182423474313928500474313154248306238210566978577614848699970213305225310072698999516540828670273131912374682158227386687578780404704922411811256319438577763455726869755230873296543424511088743822131395297913939728161049755019824511376759158040487934143737472139574240542497830557784016378235814075242393531914209063247291633268967001841100164492760362329011761245701229982888872562340287484917422583460760044964302001785131713568038524000355661351472369467049767269496962626659586248050146523802468730189493443634228169490085831590158718771516249758427683178000729945205497216773711237000100454267767161595251864547753339478401277294849801248801817012112787058363349481170949339665186916335854730324282713001389975406413484959230208022095638405406408966168742362442173222558852788733122014106859894503951428914330912013949183113245971817427116319546776507473854817691926317768319420923370504979916436720403025146306645449289408157700212575366552579808731812097590695312028149847715729334960697451404849735796680447197823280084369231969033755662501558322787268799420321392070300607529916073464743633619201495565673391975256113937410243454719775915089878455523765812783721653577837492863121604451368181375198540985068820894706212105621746725985703721855913254000871622596921131072803602126459360977572969520877747608576914515472898463348572893361972771950380811213184002364861916373875165012968343982362652374540614152440848209985841476534031986099634209399553270082119226259835305833584768917595652383263604495220981527538287954606054354457006650565694939819684430536836852680757213122933793439182394469244227868234792447349925182794857412436941423231386199592028910679364366131592215109855816697785188048406925789707948221075665452762012993304435473326616401340001613082824824666246727047207622364934053597305909625879827357745138303929517546557634535617506337962778250050673343882909454962565398212862471590126822917949897640108651356067630986700842912800691369284492758285994674890399016986136349533361503059938774775676203472859607262697823674494573782286073051956511834094628694391400285282380370421563240191524033782589412305750831990124967101269959159210698393281363936034853744366377414999918879846009692383556427901921022996650531491211412363122246892396399292811655685820880575609147749059252256851350600641171203892566764051311046155889320479658106144161205455932625209153920130127580900293226036260606116796813348671159618484571277800998968897427034376561726703881508941401229130729032776269352954987448691868024625108855004706260317529229166949898173697139192382223987744811702587192497643663029725952255648150290446130202862851855350589231676429255110516724129083435535494167222622190892840239498250573114400356242336374238572990264969956777311582029975643702847561260811812652274216114529042798620342474680363725688102694285293890964025270534820714619522447556520974207992303348149153976587061005394530803344473368423161712411879968138468231563435910653380275643890732258145476474872090506307090141500456050221739843211552156593813049410971666399785179701186655390555564782498399419812998628825272156262593974751651231457160598016275437420304313418976863102691343479471513827314625674488156630908088854219150891283214322940108366522514793990343542182884326261110922380768993295707724991282670030883857266607758422251659675143052955628731686349359994801829980376223511833005405940316231745674499439680203945526783071662300638439056805134282605033626581826467247743999999405435061959701381122754490775053991388213781342990245838780242919084747164530148677246762294216159644604498398861729479213884609397226546344404076021324037760720730318550221200045293576048340980996703221859585879171111250384679417807130595683660210953863297216000949936547114931611023927519114248563862179455606582362541955029305179915370414214085647118855121325762144995463441645299014576729524938606855430238102155456332134577757940812041914491675353656534997976857676390495186291990694695347181332550116927915140831779644415778612767839440842134775364139597867743225745207535887957023395676658643377766175143239918519372154578025862097293225216910013115939651894892595671824146204794816945256732021498408110226249247259502273925083852470309447378224183760639532383345877969485103667628844981157938590541577867640473453432869627328526568307751846414039818311211404684437926827202551642720707742405705015728704413773664234564364257774496185107171856326222039799853122945850325569482774844400556333944154902557332875900033130518304648131739687860459643167011104801315973900806975465720276325598999785336736101588040035793515890950584092909612528144158243257220532458339501223970202771207604232240939143335021479872210106493921596245567343180756684750946525500215096820836369023024017399917002360886484486598259368035631021989176994840136959449699339769099450212423262834227301408047970251700462079104437764812225945822053465741912189815723061548480250933110099671735898915836129078861894666057339508073255171512443124530563181152546629321532541994723440964727314919256652690763554703920595568370145226155874987654179449818335481586151567999883982247561933536461931928299443123295677795984054957845747347077554380042386321172177541938770134330211832293580048276161421289193097769993023027637081578286781306287861307533484026645599313026978908158183629524183944817157584121561861567921880834337981188424910149750650707537860363940884159418339205224231331794875753342933651800807432816984315654823019280282565401677487762339354044805191346637885507851210463937259383390982124245357379005205157447585197977053997829655351143410422578952319826709902979593970837730101441823211489136119317354262078480730950070990726609096614984797051750289039916122664138849622573964173180050313288861105653108412911240843396029459098816402458010078438673373302238030028306250276607145183249808567111334120319459475284770251347736318198207739187139757251227397838248256813967499731936956038896507556955032716583119450059352965885171509958610910195158923130097539488111444274314724370420428938984058580858488941371035608692285604802315462196396211019539949967574951680029689559877830068529398285617260666074819640242167075623660182608709017170956429284728574642626201894626344075578722825725380406101804285581907750109634424802013882771902527206515210362371282336428574440262489165172365955585275037770540808314832578935833722751488824625623275101607492035518165313645359706312089939598295164168823715828799766187781938068015563644295421580601910980432555671673068145590282425850820999414313183002826762987591782330609400243918771342004424604390911593909148199809112489688382796362994423977148352636303927167535155536500511192183986807995900564813547146591213980443955750753802754260648023251470471435445290662698817180741631595739401790494881054950555198883873333788673140565571511048318070679116876112934006436880055558430013811009160359385485760768959770231925120156227704168745697743574017469539808735128470167627225538649572726676122997366886000263097163592107060236772993659941867843129733827333597519335664911341446349495623461947450215627946520312210904313373881607769406118986583140004406891315086828940603719674766457499406794774045545162337079450721066601446174712527393911146634890310864278159258084751856091427426736482696522346320174858956620069442945447453134501413289337993532253731485520486049744186493569327163604311530977258048146112667414475019676757514261480136845634357980279227484002696398241180461268720852510133209781779667645818456785854414758563513565361419803118515815295556396623298652355011490295280844428169453683850761383418996690291304904387176287399933094161027153090670709496632340549714320741707507828269431852658375315988277734107622574365219925609378636184167184416762045449270853144950929069129561440176169326284437182951458811725324551526701136531784618091385110845410479530073456785750370304065328959062519155056466801678243843473351718897290403744670512159977032490541677389687919065704737641221502891177575058149411793037796302768277297046386346817875524391986583286195534992637583623757833232516353845297212534997158297779710106370773239286125845373264305321737516165214183762394179665661551106438885895363893447252328602829000326695442083695834115359216014323082999865179739931268260128086254162033080801833381428176545140350030818966502108559583446966793191894842142114278390744555448405253616954323615375154721492329991507471371373536235108417146140047336685077038557110133827054964121973625945091102796379914920923113560091892996479258011097377565796467460610986922992387987160193929436819818816501652289483077222915597748000523924711750125561264263257930553064202615903104800192713763579699427085569904114322533094450425482328858824847073660597493169247106108042553135134028739489493216550752789275553067415744160710804889201405892251044669634824704960552099271034132201929167251244186754687873986987271935477244172018720784495636950322422703505378790911881254059294038739977399495416258780049584638475104420264126847570501187939634009045620708538034760886342812036223319895767748731377155889233716049570081100640198062494068481098681277656839574200112380538484447374683858086424861832771914872360272349817381087534150416844991518255320759759056116532589416659334208568766980971334667233413192655495069643360871662339850178902487854937212255487878618726324079648256137296339896067973467327646243644577874116594803412087313738204071744109639685542678351297006159508059143376928471961962539821299674269695030905249783659084891014521246057869342247476386571351092346416421850328786857379710888788950307957322495847196934828041594195310993163646654057875085675221333258422786567662879460552723215282360187131871137328623749015968242457130773281932412567770712682458851433360147902695216689736666924643203945195117749574815779425850541387898504065940397698862930879885388692384155473552347514965382364999477812781654657420994895470890364220083326915255118443444304606816103380398457340389888923881766976124295049334263864636693050987415231335009787075976133471427595319663595599331647843461976150397972982736350607645809014300381744131595833817529062241433603443640497429613646195587733817193502071170685019059444228954142830629187242117350167812408200318885676410912315283259672373418090228818393161264194984617070847172303462314652152983289669383225936687611857158696258739165696010765139938312339117529370384530916684357386263491270766044235600398417108193492218577364176516927100902298600448478612547634294929849053299445688468059296785115664571880593507960637082167576772345272290290671718768053777717978780861314302621570715513232862056637824467686380280612960038025449650797779516567135628211441426575033118808823393738053615830331236912068554691017934012238791644355130280795052091867604082133567906070156365447892452699646218841067979808123260213136108466258472093596380429354461511533615380993631798623814451581340246966677658117201924800952463624348095784371620594623054844452026923079263060119876879109966029901253550633621086629093766510654474440759692428502383158642599307066365579013373790082206324887558355302860927469257823294733944580121354769781519668266969750856904154135225038857858444852114302286109153278470571344902281651767035476389967050806651684962900642853868514151838259300753220438093356936776216654479235615884278021061841015229134720997225556331935331490331565834419437397354146673829156331517940811470999312142712105406487928586436670484229289561495249453607839727240084993462502117062159120080593951524012156317732606204105667879158825020576224203875793079706334943181744028733159654975178438308944820438241176501442687757618553545709437094842214028694487155621739026865538285529534580861880660239067242510414901385088827702137666579201254623388632290465770435125850491955752543297881732924700371295268935593143826614837189153265298896070188228761707218308468567543895628241878918685729579110384161881813746267958726271602347546851250136178981383629872585438466476991932994248478693966403026296831626276519375531795786079747430243594198935407298079806198192965141553906380041803244212986214672626038389248666646280533578103728486225068502924963356567137464718180051202204165373485592275653858935718742078953192211589272083859277257665126253136743328857506074836843242370988369429808204231761822540510581335822488915247892258569090529710498862111397918596594523401752994485744612282566548888686446799609991508775963894086761344790314696057325118804603862963933379826870672373936890680046364639584438291461986305259698259751249035320142771407574739470182716493060699632148968611446530299697585798536331985549151970172757581864293780192543069832975552458681460488395572906000109170497971377145946184951575680380794316787700300677809635948209511031679990424605657369329782246868673640839336583709666642503187130470906426380399332467163273809372388396866644814177286521974994587733314900081862530312099592859494992089269082916120446345311667330788597851669375459740564597782077648092948183627105831378305855485123057605942130417853062334584130392497650962929319141951006614627513136361500191028624472397559075436847011955486968029559995039889380835872634621660264816701293518242092500792273335298964509520058663946217628658306686962398446248494070763752044708997148206126707365160444834868858380125588309634246432206209217399684544118702205578505650710663908361982910826543883045152133099422647403252814265998490867902174530283293079190301026323354393202422121253940417532405783010747800861455201428877363251028412704399681382271691889065746616762905829575177195180758513694991470541792624434127152141257929207904314999596267920876042621902978538503991451134336317459210622472390850940693503184028501560588833222506709262324208109556640062194623426128542213439129670945143397060089057149998758911309655391236720813376341596002841268289933936890544288118203806186915639459275101254824448330832096855537362063473661161187830223675341142215178666773732557019335568037604671966753183219780850742320209325289452135524385193807496414985375241635631087766107833432532006538295227269852638785710301252152952868352887623900083337198878707737551520218530371889210002680652504888837114880033597057575365276718442372778495460297095065730674367883644712707611233241401335115393942854563886844727091364575706697902231867817267751254826954767676160895216790474899042224443683218138068352235018047104771278460412705742033218632117595009186107107036642802492331581103729660041845144884645299911273875065221885505163785641723097097110149446497881917585499067485438548802092365827805374600383127444999849173278625027000017615545574067594189501423795738122554801856882065709550898117419673166295955809236493076521228362515939153586321897441249009199649665498314127885659012529132523037814822516379309829099739130486082767166046475994721473749201879956037259642735937123132069684751860044063412903578277582932310215703110596038747328232317566453109975319664855557205670587157873726259118371765278320866202926006373121114907247325309209807221410378762141728127046431107907936555376916000297326827972062768764516623253015180244140812981383423353230603634425838560031010658988126667631814537324624152558551073416842856750093546269216133730673689252128553699459550820088897156019795641260200610543602160273854994604342894998179035010314743256121242240122849815289372082261801124580093922137299748409865073812029965967535429547470666873985048748025919413632528795369384450461452397259782106584822929599635117846166940752668471576372368465081317491555121385255682073744291951346625809878685550460769056639736053588336369031653086292324480078446728296379229463562804265164592271038926927737835855079351485168946139643649300316247194578452529390495613512149373487564399192240882462918281623073990153383468623462422753887144653657925144322169393769383227314502747420828643103892324480424530146426042419529549045957089699104204415444277898745371902733515292072225582165211223598947129823497573546007553312621192497089082150977923620757788024635289512111208724225250547260583992988039478786284176826388838385472726256074296343800843794393885405598365612546983555677322249515307519385189683596954510410499028020561847535269171083092570290742251367907677175071454781699006060919481681812824793968535256569438803256816465785917529980004674510887937489536414675818169508033435195359448459275907033694635803333606164792098691340742646266923051474156228507518907800520570203323900981527353890899248259801440917990387565319859876152946381249904270006475251158567528633894951168455649950424734771015818950857362828060511231197442523761442290954979469921074529733464453820677988097483431833908976497360702175667318422407673607765114583890954260022851907501923760071576057049743237147396320100556968784354971432454559327280602927648557198238679699568627832863578493314447077367333825902325325568484686993462845949473808766734488502373311120284183397382380252068192812831086949736668405259268528314378599644883114999426686711490548894089103108129281484283317955808403026702441735019287618722908677005883843907796311262850625417730381724899441067661215482841160532987545736943067891060027956332737125288655936356265153608951926093196229957592599500854562022862613102531740122535911133022346607058934609080207277661188731126868121342195445734983746929283064874450271794303174845854159049647840596189908732845386713968177707038005062287773960830838212359113431317473230484376491100624124530611494460386810707942982386739223104031321441040730192479906484285719757752290210718674598663445609603328053783295869632533868344263281068623561768442578676443868227106751273714893238086488198366030404292232556290999514681935535182258857408035683846050914479669092117067145202636308376980047090377836269064749333320928740939394354300266611804446995535386952676007531357177178928925976577099309309881650079082525182810333504085740453312489086434312186309412340581592531423334818156152967531205990285383139249260375963243412061656764214308571079644709483932746509906741252808050188157670642636968504038346039854856960710989015182415704295687895693867418668086556698204169291015928274952678310697876013638156350865081933109556008554145271579656931557353180176007727084792176021029133693837082224047425156123638980105192355742045775363331860640538082161315178299955634582419873518631055541428514623748545121717392190451348395759626433764098857840971963517281841127086420402057141427797085468611218902008821497363308199741702494423636067330823873253846624154057799390275245086513041379183984975531318254336901363786570176125059964834859966719616343509598504054263626227188216383575200398755577662593424339615722594688539473765261066083042231409900073713346358770824130577194172536310011591161048953835369958199074173774449872313307647552656425289479300729355421781368774669943483799305050790408005360318890645895753156934966721606614759219601335460520616713712406053036543767576914826233652406450087394860264414243346143028611976885459905773840628249013978590964488778850176490514385026366436275656394439597400642327575436090500924938212333294067208600235767293568902721574829525477130737700048501915637759594044040510390823528265586764981386080180822828373865545409840087666395157931074809291351769092878213864832442861178402985057902480119420609783546262568868128421892642384727535108601515285346555112459599673384535588166364987887157105282347842401313395331290046893732568862506585743032909373336070218215317856040415125337538067044723993562632649503834724175421928307813676867929378173927018277585546034723713545991180225526853958925219140369577625243259109175927619075638736268823360959693820891018402165008740032380906399467038501959740607139369004315222931044426841347765420951568713069840665234559983339261881395778311457123859487225644878593273056513318671189899162291442818700638460724773401609601958338843668492989216792498323953781057062350290261069535934865949784418361228539742062091818045069045052994321961193870379470547761858882418820866013478381547212197649286530740022734913501318313446103292942302601983874367710240850919005521748522997940293812988339733843694173737790483465527628368878019127858872892116809524493548642667934591844885593666858799664784723289890977611311134704112123302422886077301603006693484896400203783785353001992443351375155674012810620187807988053931645260948964316097002659451711253838444055174874301103893635405791508231688666371249189243782795383242539200863760236845926014169912089461694645318630440536231205425934763551193995218105482065009928042605167688715678533634734901489864444794415337608080336472172064778544861715243636228455754149698833341683479934031448387889732542159548164192734927838361083488827891587145391365125149939737722818396206173507345771799986330486481089161072246899621354393047004976393633956485713341520783943788918830063552436453982325385317657062255984592215845895037823433684309356857057403729499213632129560584278967091605988779567799162451939218766111037167919901489777736139764260665472643775204494916332641309302923956818024177325307812121537436132376170762069778228644544553998423001687883026465375642010336977042499480900642737789897751926614756507323331112667579292774585980127709625085050449779882325651328950397784170698473422386988473196693063753768393732469148484472529160569306858438482732014200428051126749401190808574664775315485499661731545864226799073116366846590593117746044412072955878235512453079423819064321111469664390634530646598252600859337814674688376410553448497419703821340569958398650736833812549265362032875809588586965713030700345072208443006987092225165346449977472497438907179174545232067251799496939742351272975485225014340704794898779468316318722499973961562762087654799444669944349576685923522741091449340404217861722472177755550736825485416289159269624679545948001003272702733839567338347946364500894772268448273710740788215383553146534647356311698231104539912795183982394460970429724925513489509670701000534951201378217847694248573467267159137115865543273724541619606603831519972448948482096851155928055884008777604324880230081860703292695721773554946902314053803035606591328114170118259318661302745219330377514924271077881271785225319209903015209820126787809772618995993576142079936187594449564253006352085987262179523132813612373253770632663063587270731051751209223770237381553897575906561556369823286880473527826686976278964346174717069876308048240530251767588980985415531350440240833857209891439975405758118340175041043389467033627827792957855286507298431222136242781189428009949949147216856739998896747330439926287915204325052474648633614464130755229182366071608513404805638704224763276623713948636473536978235843108178887599921195631644926473306879792466611246841353354258062396440702873231333820695146893760311078063338787633551879863038845070975847673904590622286628677454432261835222385387920846935457266245664211575762960226463006682509820579308599633266751140605564401868992878406682885822950978464576123904467414928596758641347733343242851722123820058206168708076864756039423721796654184879560830047512316860901408341954265142764523706054907049883079787238990653249827358427215485334542614677693316973607727146750603204011843086275636263426303492974968697193814582994549310567029826560359442172078125761943669570309936199288922155666905639772497740704746660104647688857939816870075305678347425694447592901864295703589687412472210532643783582180014172896140871892420360571556011661816631900886298236754788831060330344150121961494485873021467969872034339562544444047310286931029762000167505893878781659418150239611084547609980178719881346216776160094591910640633764707359004285043009504896738278778593587367800673951900332562026646547393520664363732000723550176771627624636432436021143698783901732412303403091036318199462644182220098525009852599186725673111043125668135495708318687386545595998980683040359965986812270181815455912571602376376433926349343251441933065617462070749543860294065435852143933847067383566685153266570267881004732261856054912762306192352241571056998729065634743456458446147667167651327177832832939631593958366889450762930444011345961237351637637939757791871362472997715777417418131134658129957695423901578424342145776775551240824448755882509719961438960281265113034677229205110114844142363404716456966159444254426398828845156186018966515323987952299350345793254300114043864667373613434019324710297211907270453761353469486269821038553258622618496679211428615992697856883334702836253322503769549344613748306870014322669951915211620066398986736017480969819206976954031351934963400090813667656380456988771664673860776312218124848508207382603672370804194871030872773948806395545921034783622867949607015950396412841932014814244946257041225739611723377635377461069954012877624988456279559840895023590934657429446069560454741352293676665982248837595089481628529986035458192406030832543955474118607947969417405288606797908136787794575215562302760195408043070079186444345617805052532332890193364852251580215337729268817079314893975699603786132328638906930986594803614973924996574820075282544746741119211253273682135392757511906087609654738322166777707999419019271259723214349643208783344834195374699313734618440099589961555601087068787724788676920476024891183664076652823002821727068786833583145332113150384989701162574191497648126593819057515128014270335360197314760970118208409030918733127105790780056353809895583146042075923742662233522846642742545256349709434878858051849727094405270420794155241393965007067522934140490226153747797587106888275300805241296595429834199042374588136216119279639177547080369636150537774261772801513416306032770074063420908933135924701632976095443272460338074071567455794039659675752561872996432475201880524233489153657027051055894689296921717828382608255479017682487391119843066870190118223698292633220415832127634367975184305629622495109441334339609340374766370049009140233985821762310909458609657909406577411347980616190015431829631753410191157175091710374609799789303541276762362409791200980219753462211696409288368772447112415874768126438531298867583933269957048215927558134794964892537458304022587019211927208318044469595141978275891970079829458123192689844290475034603343355068642074371891192868140317916493724300440892189771751359616703489209508915965998919183050180999250620098631698165503230284245592281345556220993443131566792534015587181000451381642301908766003415066880091249923912113786453322713703668834839753162567655258759696893500009523968637131022281658972410211756572175595524482670453382944852817344237999710403467787792912509200244076925585340874269599341292240623865880832545217626383518336293126876164948185434761309169674075801698029123738497856837146636179519245248198101711923553677809023032032068097638708819771135667278405868536094818336871428256817221536534670749680115347412084321110657293721435616690556164161741461449452649739624030057328910195981508814671366600109935613110235067683265692218723514181821904484491214970727498936563465553660674273276616984571523127507496718162271252287081922118119209423867694908717525115216931069113894285983764570701587257107747497922480346817810281961375146661944872752773853915781436793363678477411791807131180860750089043736533142145861860806041565970006211991220195341921238713965158011882049048219569881400886636534219111633501853313602935073936985253146984414138581500983074678914371071331846364944765819540407064634173608682058203080499643257949498192744876169944089354951892300420651327368035343457144893026549860556442907860295342952649117280014577290189359473259574678574983075155728020099012383234063927629647808212356358709367270347453019125896885232452175905248861845146384227534977578212473242935577814071023007637612052132419768582469702537679912591255380197493248360906481033235893951566113905773225619507284632639065652148985883143973055336450175453926502621328131475355127575464754838611459912234117008735735210586171117763829150120670945436716049205649175877923714772515536524819919187674995022520545755322782764400347500637807344031284171032506448369362621372051407756343759483761727933443859440914436110779477765470573044959000259615228058134005933082021211579450689417268226202996600075138334289073868190850279581156929782180485873645450569790138354080135482867642735007571517390560045439342711839960019918236084624095533675908482555355461815385314102533815726239130229099695998484809719802338580830033012789262673683522971565145692837655477249235472673991080808052184499460276129835447715578934253472699517694048979641509839991011612983567486782812061446240787530765690643896658309988384511840332823140256144464998847700049509471484423224120121164335988419030524919945294519766645754396018062754332729325988102790540958273718166539706106886587903035282751811886368214851495454066573321272957843494675862870644791121222303676777951159249350981826525433949525274705844384584291111266152871712570202005311666662752037846783072226354286172086911296017222967070988873228291339877211064840589812449878194525741734059587485328669111870743457442061246673348856419564307861567425348379819984329867206573367501259971006529022499407450377341556505947195499785352465537271032942797418705764384904969829510047661302055927943383324034331481459906908498104180467480913165311116172370554630061308122395432675595617825681907140593680073529533212267973297523249939011360849840595024012357721420466020817947545493847106814733937952154921152652258333032537072769923574936987626290076578470690033968880159163326346999500567983373670723749691763294997366656271608974837128071842806534385257471342548303947324104446137388955005240520274558261843180969284503110039110033733685155644504524603477889148466443732943302220668453885931818397381825287951280777385979149214981861416567606943689097382094006245585281300045177068167260577944689533753156282531407915773040643458964902131039323937304664708667964199207375874863122712159665301298944324871462262667025653668488133254324804722262984496465104037540436761647716554469539722165902998654228197970886267461540827776763891222017351577452554457062907450831180716227780830218200749226627200206631265656637146096498967253972611810775643949810299914158107911468311320007000077167977323604429793071688051650642601120977809667979129479990117817621230626836883244073119377721085631058890221683551715428869504447650284889615325563542632927287158634363859571590449574594464140862265941519767014647961217037314488427292253844812623028253610177922081248289460928388531312631333201919975537390905651267090186233793739740217066284529642453630761143512122926001012933057698300036933996921812238014336476261078732950628900630343008926793429475053866695339243538802277090947476693372240497033482694868837840482923607313961675920937167739154030156087148123590888816455024534319471587486723089791397249824682828135449245412285311503777555897481392555902181046497225321178327977719596552312250800060207514604665939022521608684472427836672950246771985400938868275584804882643291065544434315204687032607857846467433531624541643655893669555433256603256016598215383433517390029362067583357156163357814789650862586730613167739006058311384613186142639967693599533171640473532732052082586174247570737171496707955845364716431347584363656492392384257947098198907032958172718372159852479065664385189153996477064150123381827549662949590715676329724162442178294806494705625381676912605733928158102091532741692167186557058999510194283899098075935417008591061940132078101075406109549854518000904225132160815152107197773679707986185942221667696812641600463361874238412380258800540951053055964831297497120288165294111679376259139336468628071967759139904799891083096681289362876994651588478281599742248163358736095993347861648545122217875882242732811229212058005740169120684838420813843814864624183714196283774577884434315799455584881112830179463740350586954569632661559161780661646755231374942189122331841498280331213956929910672931161926154624337876282158190957850281926969284661336753571636475216953808894168053441738533111392243689226267781633190521750352580351331975816123675295287256689017607890383697173371795069094560913503703124216937772985230648762410848873587818237587572714740268499758360197873950048675242410298482955445660154669750725565475632049893527956437629601922835841183551611178041930809309492338924097982393091683558740161593356954680512047011455474343577254964369439675246963446992317886697896671775231536442743429648019353593612546748886831822734814499337224579545561076947132485991410281377947468133285023093718309920820646663453793576062922310373947579351627412656712051647049504173963029131605408273887617072088796909903552952224144194372646108212294217169119934575433026725588053467116647271866783549236600540855381272343177034883947964014036741462145576786181105248530696571786199839216342464326304638191413179248118319912597308660879624413236129263187474351880713596270475963380210450477058171802234716971090572305671327419858747052315168340505748580431457676119273794165875704299569191799433412179099324439957469710979267095091016051059020946724072257222095316454504257702847374436844895769697096387728106173622641166761994054088006390759114594269051925524560031199199074871824288794068917807296818158910783891563907565365313499967731454102979870116838967548533552930729589204478363144056892449286115330947720566125205085714945885649873856240413999060003522850337130367280107516090738626826089931441863951078257445728539463862297740322317715846118837051429653972403993580194323790994520657205369505065562688004194087425439418183526996651993173713572652800540384365342421717319590084447998162759805277378152566514683047146796671466541880795453690470385464781552275173513770656126141130157482744736012675895528031735955030834582605569645734329264926305527550943815378066142546103418926353524615687253987300327343362094231884612474317539061336425027756158544808784880623203461011757753678245963323717308553399833743594423331459954987712796542047777012981869987038575315203113733459436623517855998335720357607679317085187302018031132188565472170214657120779960614754819780449582485418284328584530288096281511825525200688449449568289677426554259076107540102994848997328385778155536765813945439613515479528976368784180728341225241304109272547527364227262734537504058322628280556713880461699168462124370072656652650299545270162865190586782583901419231861188181136290137475702026967039573847986780060820887770721096535863001318592666459072023692509317931532232326665763542718777165480207376496823940664225323623314485385810397100763783367310610545286218263502125898164765991658931277254499241574233523595512160728025740628532128355599095186201693203820268164509857500828649172850746937243009316006053510919819925299276437587565424190236832650398208749164279802065879987560232015504497101097024489566002101586335753285545449549122211865293746836847504556575490912162671416001328124705461923892544880727620199604562363312229876500525044747798413200067104232676422268084097550111993070338534101192432842449917895338459416763773405093643972668830727171842240868829497525252400076959875744931231126070932205338350921503270010139746537953686321262108060156044863204508626690876570747565602577012523616300377633040790049501818585970070375274741469806056547253073913400808051434473371041387231446084597217716394972537562271317449686210663774149559222392018893283134094680378865006634385306969207260113075440327817977515910852283706142230211660118186984563388418366668198331569719641494635047584515031747914384508673056061756167826225145646673354116158497344200094750096272665025062462868147716847570541887199882806631847775886213322700027769937183252669628511497143442235640068203024701097249810597890846774727425076577566953623377345568803463566270648610667895668892724525549249195653051024831012131238041477562441521382564512495887162081372526561179633648308479897593440405148621560883470926464678723483664959876856603464361313287255255065005442714073249320410266140698381837071104592295887555096949259924142898316334460327998590817621447550086343060908516058024648957329971901480604745401641961165045737036714019387985319844442688177071452249956889582800162748059107223512231005722236844417079098367515985631336669230554498039794681555141193343969747487481599969110406681057240736443565069650401365422229129234815361458985829032784697199697535732942867213166916979152983128780934438025668717089341954911143923790811624863577311352527409276683682028978364105599222507803775590199844743357394947757045986435832386671826360102859726293169847580866124039184001971578175649578179247974630267437888472245021187005862359262428339820530294929687930945764947032850420868452655202224963675598239587264455122163821549700712105055760682710148723430652607644203277835355339043505175679528898139026566274889719670934373975898900586527431638433599921646464958410826120325873667063711710599551281007703532265752556214834505285879685200825063816965361154294696013511162124361675073563890485587249758893158517207766190527123464150724704240362101416678288192076537932236041153708325374963518899273911456000644866627497261412537457682174398440677334059762516200539594350835946739005949114519704639623108243907531632272029976654857234924309049213432772396079563396361348110247917547704057478566305373751444160512356823183664352470158819787795177021904990609508131381829819003337027743111505612401840695747494921769915754253585642266977193638442807545745846944051673100787287939148539613469276694772094544673183081750191804118438027130262991227492992246432258596432357581891576983034055456316572956876726516704785919052554005656923079194998150857617309353713082927002748105548377317939636335973977910835646305355555582640381907754923741189479194593210503680531679733035340861150537845534178893381594257732016369320523623463606365745283100277086396665075564894435834563587919858831542257054167987277584197472167259056855649010125568797272818473364265937788394557210925488129960708307662690336522276569564097259256517825234408713295395527196783186471698018019366033282931973996698114711213505939090682354846108874511545910272451048531777626712734766436248381900902450195377921319881678271703896642336763143922640801556417434633378186525700481599474986305658421676937886315294439546700569319433026849340944490672472365320179245421244849218403620639775702449235615794366522648969380402469453943146122792182205976273354164146655490672917115880210687103403685966713195905183821260630931360955451173371015515904142087148968677082093089233565035333501601817077543439575193663162291740985002317646116779002417549389925002288159433241486342701442293780539556165903688756867471243137361552748759368810976152766089175150606363381903933438357101723441501560056438646609525079124061037931421586944787431576985827051332747258093544292552804428121120859135834455292173532412248030880597734496133535071124923522532286886159061748559634640624996878239131136015601276272982873292951021241096105731127071190469551989655913999556437406083171840921759018908778238220246889540533203527266851167841771074101255053875204029669565010314008142724038721860628016471812405527667434859693152391504887494668483003633030041032854640137564235125461952871425160217639884645130550403055576115542210232894175941652124123538825606673957747012607678960776478681401644119066636436912509951457382811974206031209259196843177891396865588488358467093148757137015384826720346527321006446961683992700341011848133944238668794309428741043062860658028729650484721443003848691367267417896493109777433880116463804469046447355643040069735326481380404652293173301100329909981659994720191228167189931001343997076048949251896701366740513960382020079190238128931702530762917642099753248789161374073616922922098688542091821877983749440727205385622290881216532653032745262476974599466936781163783471785547252031028614692719674386552352931927518932392575428587126159587212531418486717518061054722075971331692370988392591602145586289777765986012612825605771746029407331800868197975875632246347556058365614467894797036487340832996027711031655778388313391851953399177493287645647336190342209458734591711173249264372361203437568369501786546630931417402884082285397255031540892008684440672809122442605261386770983436762832461743716412278437999297605399010880375054362317211818883491049078943554838084346444316180216559053445307925478694339820736102946645426252087950816549515373260976630843932012251222341852650550667815670374152922522563667533889495237538156744756096358041442235648256445796757758989252206191822536272633071161502246941585146788749123944643574714911045811617467983400861075411974013313215067976744968688242113770129240652278044264784726039366601165274621851302693163254369684967890410472712802372202647207110448305693077047129877396524042946503848088070313526039550996289218949201433876475747506693834109345111666864869027393036754200296180032847139476976196300414614052790602803821840933313217872736574447171083152749162038580131404049101066301617524567029411682103326805544457570566556519175072126106217146646867481147639561821022785082100637015461390620351329175824177902808916852957605683385464539439278034313977664759521138720458854422403527645681624137161916670556813968680191808432897926249683065461662798453559592924919223729461919667501066952531595000200622194622686586871402018928917864688097471808483778283311288692726038228240914067538193709928155211638715152960729866222410787183754465429150873136472579891307397549180308460277383196507217218628814322872461248173868752509115725075656345719270485719392670330621077792325528031894781054318259847121190756577920928887321606363107145158446921411222455180694270994510810602850433204018322884163667382540676620454628695172815188754572111442992707890307074315067296715087115180294130256453889556576388309072289308464028913589599886549394588975008927712560931683805297091116935917730645939600021156704175330279152719720309084074040351912953190617404100695863458300820529340564256024785634266670866371129913237723696377768935932209911440244692285349637337987698986181795552575985439403379966568135919197368344928180022776590098366921545585322754808312370187782673437639727153635018342273408066371407617615688332086964371778151124143001926749838341915692379225570461786444431817129369823783059006394911464261170892838405551047712558190586878471004302376088496602996189731189787219646680751143380005338733303884978445883995900590023805139805552770364944625211476342494562436884217689107154342464917354171050336818627627732600075628042639651661617951344868402114038823847499767422689262260867429039818131576326231822185580874767219962495485295479384732720031935365921900451781480591602356501434796030403445616071880670116166045414923417069626562003519179478680213130136814862214386749589539782784498491186850232843854893391233068023811207711706873150901134801369467893659751839857139679392692630303063757870333505642800811861866736480282826911465512978814731175551552176095931632380534583742328259465683880821093015799101377455927123297570696275709365185515718529028628884366448377670802955647234827083206916227698607853092153762247954725016955366716586460375973925788031440752102674801365998686226211635311126419648723953278928159477528246342205160932889009651853972003287941118924869470140545836364291379419021327398786907221851809773610451175839748880640721135949456536369257521999427335215784687471704727048177826412299750169384861910423195154292346021235694438621973763470439497115346545667015436572797412321351429597169837356714777851322529554737242309481063476589477544743989673374315836581922113156994417120914566615478216861934438323162779763173136269676385476825456196828230736927192702895744716502298945668773833544561951845599069080703845547958864556330036215401639068885165094460072411096587651230166706568123333307954220632523820230307317411088563885675162597802527096911779111396035742642400146906742521616318505374745125140571906905844996882315610914076656711819692999559977543376457441235496689361597601915386970297437552506365772845648476624048605935938380998771221455930675052037662750071786422065233533670144633100835675397868071650258560971386608897902092428670595937832300587263859397298591277958089002644568211051380262269716769829646606993589616878856543797681855900051622689833780536022592028559386820042313267234848812855176211364163685208982775344088807297438681760920695347868888539271455358882531680276093181839081344369084503102708281828937038644292486652978852588470745458057638220870799538864306472640731027623311070957826428630183046585628546532835670926826957883163187041801444626143103658587001700723555003610051873510088581090069470475508697335301810299156166241607681294747489527215620857254085578928818013845649179855154318649879490220557444916899748913428014389440022747235005089327574890779124747207890082257167996294246669701583619709155741989243670450573985595539927996038581351082900576867305623091466820834297316542038050551529098857894522613350076260008402413034485845873484570288313831936378428445586376529433358538292016766876182048305033818514962761296814184988620241681800577229174360903016588340453756459344089844484228814782378048808678793474927334925049113069681314511742270736686738993970881643358983701666303105141262458562748381929901072206341614594194217525803528905925872131455650423068224627244634064744634604382074628272755415928609783986357980212066764565898639710873559679370495308306125711300355380006965388605923612928814393629771316814687016028882133385288600930094413812127309576509774924321042936014622462245767590846206074003173097816696346559504000212457338205471273889233075032420947750588003802994878781604612125390060223911157311121496428806787902099506097239323312434438718272418275496398035033036132351769930153005903530908421977198691274074502936369841115092524050277098236539831279187281314516080282224635794032437501816655058815960575316887677255146668655698207907937208640662071430450239347129227999273946043469298124046363574991403917590321573698792530259154923268766228716183621895566002097522250045005095500152978908843064601189901021496778281338728273982664565501669024976307753379195810228631764739483558142446435723135503284570393406915361176154807191870737433492347686493688793909200069011752750013279230539106887695341292753970064772248561560850156024389527818743186631588204614472826651650053536408477545376406423358703169717908787449519593806612112947627985291260104509210579452098145537497532334780772113132781642588285834416290669868826557355575665975076804797881621236026832955470531727584650913191867736991130021677469144507946341744242121333738796407555768525487327114437574974071438874492765335003437767029854403507497442166900444554119866035759905341561230317554484709644108212156046564670260155313228934840447897829944018016041785553217838014640658303498724612925915984011669081815595985866338127122274822184909764421579431293622393383750493033203094439962124993317499188596095389038211457738775808128961738887021241828667043313821337535681409543621945074331432923392920191197906395457722694693530697395473062212555831310299106571234912919302255930089110058684956446996919208633651414373780877501531996118865726371623674889504566670605123322500335614159414479053916727676860928834753561387097435481934098746581400302964977085986702738262509409228183823693147257594344233821801807354796290031897700815342740793037416319358809062089049938734035413005818465923515032762990051343534646458683173411710711439563095825060317170874410561486148025537187446945577219896308460649818498468915256206602767104442460945505637043977248035124434167311020435741559815346333631206469284361591529698598433696649846189221017916773327816456440424416675696153876454671379385504203830239290358897272515584869639533603048528351505653721024935754121609094041520079165949983147667091868547692896787764818054020099194230353447757978840474229795682789954085569530351837600672761625670112808225258551868206276456031367867582881207375138282774958201332579461487624358771821248352680241752911020180829831735574407480039679966292161893385114950239844166505424610257209150908496637520499044589793670404923374028643112474334937124304201027280477775209443574245410181595882730261226897834704884833837188967569728443626647888907638284508902540129656601552142355013607024663543896722216287365285072982335087779197052526259225170757644475642127805991702612319501894753367159759229047893817227685344400982969725347803294924327728191824082346770919478654824636684161663015276700343169559150508168147680551834763422738507467720179907531816651257811825064973116360706727146068762061472871128012569187250054608725913783564111225654497528835399490021431483598290698982042063304795891065999499651970088761090007084712232519259525237114613123029571190728322906962613443510972918180108278225014251234115165613655856204810899133158654044463156064129911545692885637693944677143244610079074499081251210977763769255355413867865448290225568026022058111040554383713282110671399089302750961049234648046916907887451008876656352210781167267287605166652954110345175047360913929489454215431862165532070803923664584809705825182903868581459366358301160587412108365440959099277770542886774212470839405983782203660110196927365400618276428695432050376863783396094951517759143264292981016802869828634596968006686149427556381116232213110069543422582312719297953078125118252431057265899775522623111522757642216509138327024956173289834011830205035264993755924531332673090455457090529939014644807153603555877599557616635116651454656716000960990752638663449516657379471737284434476028984886984205480600206423733100393192027680336022594404074099016081158748621551646100486519850404054267221369974809683739824013467559299164354582643509142612452575623349336647690748182714025598050843528152433414361953590975413841663152075603755512618423430141606958114314483664309853617751129083160162332595621167244047143000713047915725644707296903934947110961194535461680020385336600805351488676534835933257399770824633702062149365713288940555685815142747384085601207045538521584486534265902925434305641635541777592777975301369263588346411447116380458462144416544320844983885784089198684889425836804341655702591427374493613911329945012321798293206158869100748791814046249537783298273297372319325724889704857945561775605573405430323000859141095935101632815149752337995593718355737073405982142761286867284588322129673976481570412517257824035090188213344682158832186686291135991495202228549400425989320678594628186472007507420782257539196342271370905321490578924633723107746512449257345706362594347274410444007834988448241101477564004639634951797964229875368384221362632942349706979098993838647160244046351475303853832840813346580922930516956455901048044551665301239138102199931566358291475196726709136781031237167310604916883464265862162448157373010344472331301636083675784506925229939836553780393175514863008489725464443646127204169411564526363692712362916597714669684525438027138870862614784097634807632452625187617198314187844822310204399228190154321778310604373599804672795315433323624898550673825070041659354329369387234200810926390422179732497530116413045985488341703124063134215471131191494061370079193226871136176971465787141522269994118308011157555516823850752098356754232977619782596930833080433724004270871011572800807479891139301588957734332231025937767666518320001908300336946905022476509897998543620992823899634946397849332484951163966181776680105641923142593168012455576673496411160714516169231917388019063421245319128676530083908164274630216964597887856940984762639400295180401030406907953769562343333675658323189132352743105173408820951966866712859713774743026313602094314938777850713219219114255170921896357073025617815013147324717420204953829079466710265979720373686268006277651641780826897555209421335091857008731832568729085502902162196913395581385628888418782601109492886358656899749839163513075140760870859275344260759031691404385992356189901920555876456171472356636111387054971015577279114119164514972837621174617794902996638404168323248384942355702315926334918466310414674750651422576180007990533990907898195054983776956686339745496337824803116971479546566231871864007540542146481844932938274473737097430191693814622276831805237551117162028637261004803501843740402458592419951225025104964322542945906911768375483284082236408192157281127467589945578924913929442303201172802934388644889588695209659259401691002496532385679136472054598956710712990005755932193209721623411382138985314950302490082786228455548348001917621266074009410848144551745613404549044221317248435599390586084549411896848052164285660758997863760141495438821947087443408018090150233458276088120796917037072234232479744781995268273036850939849916027897801758976371802007568113314437511888831555581860014323039816031180583275161305112853659204290767341891993846484165658224879042941256729674723369388296048264980095821892282906273866257333433615349809383915184269386256454978659833249721077864510140874475703429993411802925247395210297020145081376105160969604841081043514598137150208138539598121218288800124856386596251282963901724450159028996487410803745887696853526771356654448299946802722665525272067504516703845723872289842560911836764127739794052110800685390776044761276208341664413625613935966783618271860825612483436489586541398338635564830311765013208530104198494106771977387389843785002069839754088647794121466707521559376024687164827647394424880736888519871463497685018064068503231665034638214171497762405358274115290422597556211005383741565952143118261523965738035672414414987340672036495255615849344427112389011874037582434226465029810630582841357521993964427931818047845155084408579991689173250359649524886107522027157826740411189081530904878047417834768205740696467611641734603523051210618126335850658390025118135868442977189317509915693687059855132031306869802475532748611622799090929132564767729971099471857704790170859870940597864112067503192651491219828086555504717423925782503201650368549109808681786622475941017170225702965890066553190538175601921344420772583182196227060110010278636068811885405192424804493763587813054703273468754575900343323121531489238704141161135288148951966358717274301826788624937807522067949655585346548672916764769037615058586713814893328323389825520651502725593195812659479575750724008772371857873651960313325686400812803404076523220633993757782595353902210215164286286160790818971299511823434309426038029430408870816327961064286553072319420496105470873487873829485861031056117923988077400747594735036356941914596059808218584293233404442331036518681678470497779116570796358727621122934172532670901825210223402017033264263155720961845355224217957539424815229424026504569374076819406051531944968569276246118803772507915765839754938306340877830090742597724706421313704578740809164816936773957472593188410112231063676442942405938227963828601581838575949175466281895604848248153117037087810872560279208850660083789714098739617564121948754839369716749884715175291353702349641909179061289414930384963188272496723669571943823844124554246267869555480113693934357229123113279494445641666762758267500322004621563999322785322006935991498986243735404680810244988092508472901683626143996304753961529021032905696090227270720145278565253564516932924460074810587137380036630199416880655121833034720491114972295499128249592360380450246852736552557731078447260717752663865952445104600455397666872824254676893695545476365147329785839075192953964505572282224743215519917922747697849672823038141721483947410822547639987689511697860727351042788777426120073433461387611089803090211682896817996313238140644967595667438648230313232243516947597322481767390085237597992875393789903857121333951610739058153544516460473423923213731275590955049882996359791240957676750962790623640480662103661040784825461593813381029912448754490632908176618423122377141347314100628584037373622297125093378561137336704909763905532937576189001435603973625834851020356795865973755038371898934359017656810872430530307955400612608285616313033613333971432608701556566813622460970728784404496918292287899022744101418023397708253367314433566425292046969826202700330140130972421802012508336021929346323022630086902796816025529249599928247582960573864444732962252065382710845330215543091557087118285018615496575505342988214504499209870342148246686463029013592940348393845264662965055201856260182639291764803817257463588232092864190395000592455341916783433219017733102053503361246241110346937788755653792378496042450926379531960550982083996032651315606686232692450205424288544884867254824234618266275854932636935912583351015367802201453315593668479935694789800146810757432263531944184323378087222302140747798403123861035163312172896972518607938095803950157153810240136031242506423031123407540168885598105024162136311501753060432122654592009424170022143771834690612118083679121259560554251930376174684323477419203928020482271661679675977051296461361128259982897794201622072105791530112977350177189893780796298061636801578089700182061557053700248937021111363130560571475512988393452549476901696758999828961383979683210827065153528617590629964421226680204012812374650002202374476663778035019306207058647258630967032166852444691021052282125013839688539216622481560384413388225794537279362853075644022965550477139531017029477721150639799765428648922015079433598767002960274136840411042469416532087261368525244830721707906711258579418627716080942370042137423640370177867744481053308450556198378420382119598948173847937018588479159078449509694507195465440261706981034890792310553040671604332295307341235303971296764515430317048697578344361513801737694918589710597373446934325945744972622843475606603696866975110473228787668812683852400740005529681638553254922105988404544928782412952362284375236298317708727885097687844724690928053291371154259019039252761765044746762880306346840612406535774048434543897532812878041128257888815493161438538938009332973489650591926759740542443375181089848152439318396818651369251340916828139219559408550932520552870802965634649751134803574421645354615995812836256981248898265690798951534650951249370617779007438386516740836551342863681805669894216032444958570542212936760340679862193351068414252378007707581439508537987959185698864956303552490757112341533701681249685997144488590438824591915803839307252440732959545187024825567531686764662301387890371376326403540813965702154905854330314102294920284977897278544968407927763478582699722413246996365425354332984657569256444465090395352450641078405421312904959527207458440088569982584598053275362236248783197911127815393537798035983863532002456502322179482174278976476322948043696558453043972274978520134078873452280331646035592354575671511018962298628441487635658344037505033134455281440285541132404585054158468257223969688775895988839005170663319575367612485714098198753973084970909178682172669490898326540726505359453307607185681651859215964829699478263614596755275177094745802273878032287577729287510412035242299665366653499168172250133949770021902301994017119433937408592830122668303886663301975119496785455175314328269695631635353630048600898901096344413746041951706469413832969521251635390892673658601056055518222174957959509083402764849384239065399401554588948190259392433263867777633077687486535807871363901972829353985342231957329010754502958450572389757953865963199113247999848318485736658517201621267644717448093047130136230356407115172548392096639023526906840936646874125482531205288203818740662504348855665189766435527869609496967982998906567916551307903540515955386527303457857751445232916070656585015885056659737012002553342004209471505961080795027811895018969436669590812306142743003592178602531738320325326993787559003816898200797938075272461665382047440030157624837134742588279549818221059095946121704108360005357725428089781546718531444648414445773981717796920093320203479852557553707096534530441027446327029797088234854090213328001804301888613997514562944648642249092069294168093286459038871309758673562071859800378682183283078407703360197257679514725261061304073155910994582421157878681003619717508483062952558363478041111103194800776658042952921479409293622226962670694150972407653524965662308657530977871605884405064166679232582116837606219213912986697376858846867671914377349616334681464128464471187351568394058042671484840262494876574431962324125245386586143033065632575095793422416407069989328751041339632744041360794201033424619078606499538046457373167784138755118761834426648524914720804456527982644833740939228047662087203862104602855785727821626403877969866630393297797124389936493432957484126520829278951436358055578788526175035615186910256769991431842540946505277303989315039677171833461255216497438787332989938275925610586973954650653586206265304232889875006261969525369193467644307215601209523009603748300213841451550071539259199322659044584086750032612020449263261273400300532737559809389773621684479965043914535926249477268706366268309944791066157255827687429979249171271277836294328326969428489459268944668368734847338379741449523160498383801734127612085944757554810943892290022002718488393786059879572485019531337207544212831954564728977417377607504753936033299949435379747718868302022655426850223035085997103617064297453028098146723162468205083265232408130008870379225766667336806229280059053947196261358314430082920315612621921850215844054877522412992937170786206449397313090929043198928499921196399809219525048290668862599429939056128236254619677929135635514387893858588884255382933462015110709536471726109136494744148465371125050091003608464422166163662304910521837311063032135999079801806606415636117267388941400774730715557249764826091417720520570938933933275510202324772347707116604588384384033517777411511693694981899197992893961210243409762457571095078839076471062912604068180039209015875009181982313109345606469538667964504851816033099164333672803252719260758023819246667594631690612358594134117604990236339252022809473931450541311539887396220176172612626972609577947743243088911712524898832128343949329888823734664210785135893069572590498428161713393185369775696538500658154216231345208408389470756365217539522473371689346944340879758798774204926078969971294206182725177006845598041793431132595809892699084304983267688847063371699369306880617634283886438997526955548984735366202822468758340530258791911708459800794151142342292843804420062674630793459642964427087434646566389014655761982408896968126923249600028359440813957058542791176064799086142768467973464052394989630087849898801212637783754355375600591632898653325753982704368913152795518647762611178242342312779591633606531429104564285140825189829385223476350382608489622963475858864610434554223248842931893544947361759931354936975676259833223904701867130867807794456420415420200699867819209274672231860336071786310556531503499381852496059441686175027856152227295293624468540062830445482944014178850808551071741474311186386784272267449549566147305010069816223019866617695524953920927607069341519185460451964252499223522258196311541559125091195570215486051151434451564845641884428867056562800280094178674458343823596944793885552617332471711624280129897629440409721973299473202766961542521585061166216477601269106743293170931040123254519248557383080103162647085140071239537152820153737649202093182668084930746338275683611646340053990968148898132602750111751594085635871326628620565857302900996732479023159500246846911985098831245559599769356565693686385539264699606588397860061049909593730155103861443265706550254341430598199316240119926349091710611828903296195456332968511847683481212437723188455150722421375965375661095466218874862330507804163675377385909837860264833758345907122175730779754397890751522423098544188942634174366915126674393043316886354619097126202857724296109627118183479270316075395244573377442442166038091994397463025477131005644955172805447194226296802271689573004888115033133015421347298637103636771995324035340093122616787248729858092092874622567603808997927143422335379149807193672918096746090393344550008207516201931823445478802289339207055272190942218720524452402249718597578046778446782301338026685081718179314003836337121129625070403602126645244853497345944585279547131508678003747290596441323959942891964990472858637460773553169849697518449360157229589802461076112801436128853014653808655911184057245852988783595181116520357616283400962649391523955592758883322698065117978934077383568790402568855716747782896125878526542785117797522824203586367590521161000884945359680033589998436740152404213797914975374575856442414616309071005470082286065574900102021882758545642491861991688649742744369530652387858370804028795546720139594209746918541561546131482778798714937207518309807862406440517037923938761363458176606826596816612441831884932987938297773748799226533083668443212032672366774505960157793037583554565020427868903039689929311361853389432533350749769597138376268520432403801998384837557738505234346232342342508142875713941191396791039923316132709038948694288331518822353888470905133412453766440561105094127595432299151047717783579728457888410523609376659799662275879897149485030644980759273963738702623676823516812519498456551689149842914500310609153602725364335456098319036068345847575340075582962558854050900733004231780983699359692082769574624108328511756828395359511262117158734584949490302668007895604435785499727349584859148289165601552812887141461878171127915841815520547759758736578853050723201001665950670051990689616994146975746687204130151332767340251203805838087844783741578092222904799961882069169046045614368658585721633161607754757825171145879958949299412659539126164266320794518962430982272772995601441837811137834907114621206425702432657952949289232565013031054568022439698490969067144590420200923457080500147880678017120473378519572235905659495609037065008806526040362442212327545245097057361813937069711856107892034593017573498655734695272955395181799378108567747813179756760591931349741400255682394039583369138305378346098556056486482684761405934206592777471724094885389835545149141791152471023907098004858000187005901837567989346651400945430468228271807916155651796606220711694335722901226115753810631981845233629489254475416766657173485629414335259207970333933614749379305165036957534119302468938161399411584259297474076703366510610617022123713015732467407861638455899102373457865860643002340086593627533703175492182526550824228159776465448138830601248576998799119132336271894097472170726868209509564636379093968656879652418325056341295184450377970373534303390323960983073703703936855841579430636888324973637851150234190698296075341738049518570426076236377815856049993237971763266364846594097126714826079092931950544549863013841272486097929139816725944528736843845312362904979427571832922322344531883174906151457756019107079134440003157487576130240494860780900557218584463806647182491397311596261223466766200760968316204410300898795807383659602957540400347108468444085072101522830034043100564738042928279115827672188733011110031395329693990016709664226732142960167928949246848017603527761400745715094427992254836582870999042514159847113010010347416054530273650689646730962025089379151928412757896213935800747520295455862253956731342349428029273909236460798273918848002417977695980617588011585698856901423167736426600640619966338466180654929991843305598866207706029740152941318888772115341440751142564777056637151803884174933081957372392529172572359727543987495286697925253574203574185957594724367223280316562262240224520295482500050352513782320236682327704196083489513843966188217093343217488016087690791886862170879583452415967967197634393337267762228374223694637096874744179663624923164518023488631036955719481498546326132988059683806374943106352142158310732835146166003005306560911929522264380938281190100371733386472718906425466832159343262562970064240488563154084780773777767527529915960990167016660497105605341011661338842765246591592417715575889134001426793179789172865277698787197380458977380609773104718385929246771211325924123281478244816226453061397412281971710424608238594693033477641950637132195039182592016110548995839801453693412105874043391185584259722545521053177393250778034529540327913143795207607325212975421343022790721367642809422324220030506836344056048886060904589129331023883988878219421566983787403593034572089148932537521221463939885374068115280315650853276862173240875245313086864167615041088407891249920449499700990166988646283724475576305550495604135918751836288990142741699725295551772439052166494087650848311894963487123426320141758739527969220858126459698662513770384906018902936708961206727012370741405821837940587329110275926909755642899029456703620155308202338619367843370009523329980854968994913188115926940194719419471532760008091414304095024830459047497779596530082887967020667900875199192457333156825013495127068856845011527333133108133522107823523516254460775247927555325350221198814885326168214426313449697616699598391007072687404521620200773791004870439272718335547382518319771637184469729538578262676796554750251836054669223516723344371162626088177763267123448015994794677020124253537439931119530750944830080522238922803212842284910920185944303924388930826897724802756120515517420790233324404105400348059877180913760037482456349251784236036361087380451426919312796338210206812014751052833521495649306666938792885764151726708423628874956232237091712252554066322711359216716460202590225538627793669408100085405033969411837075922565983784028571903961267032065582603257120932157537929134367568224498828986035538553396955123493832234289031437994115857190988398359333625250862510235425930292004699449425382896297508439714701417724307792520773847467548804708920542813101125619707155954088870613777646806808139254427799029430355385180234709347269580215641912797390501534385959314980553909083894928902028135223472101327278365796164312807151256469506994907267874556042223571347410832333840603893865214201587493990826184890184959965849000072786299146693694949570942806546300152683440027377793242148051265899048796596522571969610325433934321556795070715907081980088536030539133980636037952137393089852136446467421572548619067304014567588882065870814258739967937754554518921324835820153195690683525298644724838166917464427557365409520768312951435143478018360114310216901438844825537940634564983790242074027914595508133475787536973908232159723753031930072716496809993260345292156756769313874477164415769992700866975943168855886131674676905321763718143695011284579408320300986157820691983511438833695193291691011968058753706979899714398594073483333057520413442996802969457399247614171961479301222645542318049434518062062479095496268002761671194825538253440929564756571977987384555043178364506630695299646203870986510598271480666469610908673306843758169445983962135796300932935514475471921446853824166495795073194057230177344808172888776473759518905592056557017353092503630884452725972239284368156311604939442043368761459689831807710501584741961115354820135794310387152543398550230316272267926398676379847503377368967907534236160388956887779047823991138919066218557922949991387793160230797332053527514328810107685859514506378634422987401788196982631472660470762332192587593871439816732656543156404351877230726841510679573777534647257870621758505566005569837552127892565995650087706173036428984721205032978686245328676862068931645573866755053008785212222098910720734983334740886169452698819736703013497730014030759144025422158139640583603639967376587831994669044500865006950664705084785631061985509650884585620189405962344123990739961995192727229228440763411460562246885437747693704777677157074393686133092845073094003361018889766272782535269237826264212994788185715579910862166831519105555979695315737995312725781335114138744507719679533586667550945039952658642015879155367072223732410247285033117916178477006073713932391812912619828320616794361624072392122421327161470106228604050528291810722194091401210131237941590561737137022577356573530379637936378111118394884056680766303346643271922307694421152089346209766559449819137140927822035397161356700393172170786823859733059910191428989802570730127386028421841707207012983211017952649690929269752599516599846860441687984907852226494951028227633975989514597955619949236868605485376832283211637745044050724720384863034030261710211268151845047685586270847184155746559007704775517954050545771769055602614624619499405456780288767945383268542496518135871740877942185319431484571957417678882275704568590692949055850326783945131260736475591505403829462069472117525974176806699900740071496360349794982127671303826884220049427306669976338288444906050689880263549936741886430540293301934270982252830286967136606152824577784898726934670053128863456582161341337754355503311447859591085903547101322222816145910596410129402294344298634175374144444774191065025194608719479655359915445128325124689962684211328772751725276992283069003514530923042217079387747558189727920376756199534321151458202883332404301407765926023837353790787581570118265431351471836987961815149514624896545318602829805154765940676586996328767013418894198181124494023419646884189781072966161265720024926494763239578711552566357424852382052941420256331966941539958797050704702290228770393278713755877645680496419771140022754538703503606216755665984902195614216119613338831966973361177399880737968598790160954254810981218541718252892074306394817704889590305432015146970742961099291065518829704336975341678071972716607050527986634229178542538429366806485509503539101543017711048922955930373693008661311787158868497020803707051703636459441430254388596052591291839311290466172239360034196400459526099118777705872540537047514626329731461853343874456207904680268875476741695598189280911132231373906335205785470720023856141724895694198206408912552277596944395140164232702640775525397594260401262382668740640657394249906316910405268932379868741156542231838743402020603857071111160442208787418230850851393453698971677366952224045485752677597714450563959571293666207685857140124205363946985963140646546321538722033966701074923445852881638740292114050275491834642557628948965985006696525135730338382875008672711056929924000293541683029617103738760256032467379337481837161406607899790775296978564118302002188405088433950124628495837956419671134062762170158269939229436050132600885784382413478132973126213102316759034584251841574158764476511242678092373904516013480600200404659948498447328901231578721459831805758644792424068090599471868185435130744659664751524434560823777385219045583121412341114373660873482846949573205117608944072894722869184972301982853476646484935714569879745504456002676415503409124280582884495787975969581836832908006398206107330162011046668933967957989468680001126953950206069913222622106994745017486704109174302734500526788444757739702404528529445750950275482662893667787758617471409162148696929862786120699075474156293129553641020239885395170014236727315342473782780801384484911971150289149213665834242880811496844349830468085961554663753776089365766907927478742225955826826323150483838935549149044514583438931951758367991220575998776770176046802182396705523121173264177245884673841509853461083349193781347872170291268746817091767711569843186056326869118059911310208659128084412128909619729547088657359246739665286781433278178386099378309973705615461355723127919535929516841459029819519979548689662238403696115693176924020868759977628128455455062903614710330001550355029164637633119301328033317834927429864108274054783090179279115277730668620208631496140773368689474149165423971049912122665496041299915985950212903793934279053976263542556715981066246251218589473057119364474672285812391441753491266823962746787144256254721593808632393125251115873394520541998744203075470923396587831895513570035471212778079662093889448965401365820082812539930354441604102895199537156062712412653707324090308893161638155173221186338133524132333605881275121009001802871575090602239561545972637471550504594905393492834562247354886969876487360577282636167021087580395479280867732838308953220691868310870832704470312577348334989859860442308361371378107003454616518250771039611474808010549156070234469002512299226857599382042970768316130284731818585827553819427198925829314977578310725675816997188166240787761075401756592229988535623830399197630425010218505256153936844970232042313574876813994966396806370948681388814678139466193140992658891086567596678175952498571104286383988933391800618987201601389571948042560953180935744135632381194192809745863378032222720062002988644807274784543583056737032855053590113217203754411078360860464261618460145968237404862729860063905002943975526028335815190255959526744861058161501283892275231705400615132201706260965667842985186691790208472533819752803709641050639980365977381165206685201106884209411834670037301468327758165782736092018048849347120799167838642099091206742189519096805085236503029853755275667549031893234074203982770467273826671286016666090140068240382343757367414511195000856513368115593921909503983103392033824744987605041121487510114563647944983016312809217935567144710393846958366263594587802782682898798663642629243102106345304162542866390800012843322762963126013349329041474621492964132461367334466549778104447492877699638300546540365378452254903730646163872122090729445116088069871494233419094895489574848508050344406812092434311093578646549661760905743161449383401428702832740715346617228115675915856341346843374019028677535176255330074788656450683635381935141866973906425625465188770417925311044683503422534679791193686195855691373425954502234038146593646624747342654778475930307256475778867120982080324384244052075571002272049084844191518262285149554186574361281697878915840533169614604838633347919711044484687554271293865045818007017595596351296152129690971402727038356265244541039452487927544436660631832549901120983960993656417070628638502948640202471357576051466346353137029433958629005101086577317466236630119646634971909389736690743631747406117843977437424250802762526676645880765650067622581409325824494281480335566641372905302234146949216785172981694375786727938555590182989206101157846581063772480819854257800246820093462250870008912149572386492835021339253045360163115100267383478809796079944309855218028041457427191241257093977530898182350547470234462298550877862483579238907084779752592779156238666176496094681116765664057119563006791494783064770414028675786116293494773069331640135071394254275096205204013426089034142580385331127987604767689133396652808531923348793109359878979917144331733598559135797617348028623426527792052901652908898299672637314333608575509572069641198424710618075331583071366531957818907065512095181945351771870859896201005505215726723210005239114600028815416846729403311055694222499824753467105048230909445651913927761797924720260805728590296273025583144982666988545402480383547509666048851070489269672439508469589709504054893104867207351379088239463671384985645492577879860759706913030360794846345981734673148167785610476992742669855449115776475440088890932133237864092479433758729616577312736513801274589522811935390118830787479879948934084884216965534858611415148731973716931838438848831422033845650873422212345678193695688094029672138655876207234115573102799159905740451662045536994211617507260323611175719372030718688714049222692080448756861730071814424667324222845521431986503514308893646110642925572883819888595336407305563805689381166508094319959878990234168022429805747761755668449724774179043109227777579229656635653379105460791980247097976950120615803185600345487606035223048023924938630931873100314933664745084746040670212576365135718701614200893979618760108335311441226675868628706782276079039306488037750923625618733193122547534390369435574921887917661992040455899405336327214208467730899957587713645393692423010929455237336848452582529077063375439070985708707321274763797310812958404220351337644452553377847990538635679397743519805205215521434051961146552142817695945709182827542469963863667309125053110200249924782140902775849917866452340310018756972110042334881150767783842428952694829727004962295142640356519897297192338449152595419871522806072761069021678944374854964714933684441931715387504391228483129215317958094478496712239403454725394004973073495210093358634569628977883899181198605596611456947379863684008117303018304057798315274231606785441970832702250662256096154399236598160520483676714330055376673492485980634776995682992315035249853407053087146681555054519784471984665241322624780708862815331021889021629277868031507141720958861780352767081943270907636032555042368111591162672968189305938368940436320404757732251949933008962526224694179078362671677858895998025566045297208221828838745168503821623739597239926405398994213066104379177714376394997507271296776302460137338351761021736103513550798968544394297501220910283931643644474893872745163089294064495906883242742101369760485017663374083827038380477768712337542276355325717685933356228906536154749298015730087024437622272533144639705078967904287504271783411643956763984066569919395757050657088122566576153324316249320693291711151308315256506398537916284484062602538405392737303309613813097175416012357878130584769956850926316742288657267143297001701143460885352545432660745535230283665348187269187910104319509772774597097569697206633858249795689610999666412638465534576605775516683581526732146143442091033044659262530933309110979555906424634457972308471848547907001359809072428947347280001915669036266341654212857923833607106625894287059501630807531158691143712233637215905535700308246712776925488711022870418507592068976356372454004642054458825841848801296120420747732741696622380836369748247935213696648829224931508050203540565751127097158778551691203934764980043089376774662462756309069994953399712007321704026453987225923342892792653586661433077026949285156038502261567881856850300039093748225890930152797138417889940278607479747771222473425823389440834432402767991406013619864351086750048389976538831013437279286863069727448592078737240996195249364371846301220084834335594733316545412200692753751466810252020517498870871844322421763188741732387560680071429544827493080996589443151018194048819954855822186992505388589504937812619545103104569010111071493976449923051760766036950231494680518637536703862030015028131707711014264272205745954172385400322300130309782372817601821661173019482586689389777390721529631874847162655727184334562400814862660186646695687525305279777775140493001133872600113595172636362901493786276408086284334442884062684111769239029294104911723343292157212284746303921569803441979943430253713863517250229142918326880847825012359600055072371669558972862804483123898024203975104846568380948918619527875173840052376747412346057498692483595689981981312806512596849881478580429966076889658818345317859240608794424276175985851478015672458626106974702135097566109301968982082927610689468239148731149154091343264017100146999068621403095631758625838642645153042671813954831641103371147159246746859247648253573595492116162774341727403193235113139171208559210431116431369448170007756200041790719532826573169491451145712334244034751447805966623574725146720726465205979912107016964718056411425310060589051235985949386328552806492448200583077368549761840749018808993668661671015930216208615150179744794821951464689546659010415458257858343937757111124543650984904527534755201355020195338300689527184616084123615556220624676029441301294675331323874282593812906327719665209827017427490627977810143283515358952189316298276904308645247228951695558631850803808120619160479382960170855704944402336579386555610108737817183753126445839317830411617127579812127475462296667008633904895947321118770689656577366596085625753159155111661305406879827734733331974080430227904874090180031086740940880834063787896313698340479608088352139792054036325677679557361591602729743888457983607258341460798351670988337653122005876391292128121174750727686211114152879613692847602642814633071133311968653823803152155816361652030673532954117278678573178577639095644388625723182216791760838508881999690802082060434870294047564160039367084777181069372949095195557009823479000085210184687618319909357515846373818800305808125676048765758849384547588000092973285964073651720439151014680471072861749598056896970371822937142018284837060294025004671590717889797325292965835565894444771661896502047438316643364863186229496685549640404731136434117267127353134615581747032355037032578490788470667214682472281011206345874645613635401627100995152365125284235237301699166114842971268308775989485874430503046215221494840850049518877321187014091972486893609766540816666339312036258069226207591596746374986475859607860004992199385744081287584686856601566984979763136233651808760137538098543932215433070286796297733217706806933404451718161468494531754507204412077639700017271625501991965054935501155892153591787727867147169384301363349288813882835735372847116606778997884784085058238704877316532699746016574373436920422639784874388629443428123071223707530826359138437260685448011491379708189530573367295573561538823247405339939962967054060768549073260861142375357984083739653103374867223907812237105229508298991125744367779328151417165663283555573973791023691679331847899214609031663725059047789403077560932575750226451721659182128816767573450837885335825428246570154675012598348160244846785995187032887117277648430258025611430330707787275716739784388760933540431775771546103652475852272328676661071481957134596645822568931247136134442967860758414581534195496863240546547533623500846279634052504322390187277381018607680740495117707963287545106802364028707358311120260334632578372856678218225108310419054223707486771430575082628754697553925680006752004105905556412690892429250496213566352904463000672820913536151959294924751640846950266568558361319133528104682434353512854465625885537242609548338029486925868407588869071837691082492253200372817532912319128292543423539268569613555056878731852266324961572515859000027799501396169874983071262074107451845556403400278173389786223669263804135187242665979798590966912993114633440938742661061693516068110599744837721489438383510240354196718047128257829662325626393494469239964815751134697242002892013284281693838881456215835339047850392992281417038939753094913954153759230803835897101697434548681487845418502654891563429040004096611041399814889217328537316897616664584936381383155335901002945502854024872830638187119264257326064712745278903023688330172407963952885971448498655762720391763513281077515504027193537828961897961719405127428559887543229535088398644181324674697176169949334468917876738100613467708796283594541372929873257052927773677121709212468652519728679369730845576369970964338435966477609976672974642653834311802867349935985608275413216885895856004872264768709952993721877037066154813076085448496661192633432039129615332813778693792694289182899467857392106154318189701092724806970418471773960605765278434446245134503838357573990148120095028309215058479309851002336483216254093595503250229520365881601985105039776309122917830232508256921914408150885870303385455742289986285092896859742369890058064442909923401163872415254504334305587329753376900210134567664832586713940930304887285581270013290630031778107413485252363400289985944781952231572906479142960791259051640033100085555938005797233949238056685403666467596960977514491312619637807965834062402957353228764090617009809495366188598625168587275327638488708921091944532037917717833347892493225233965257678918867424786196286711564750600180540778998684252509475081822533915304394443744382100732745571751359857797628792403637597642127774029587772886408056494538763183112946505431935795229047468915302488509068839972414583999272620234726582627700114560229752678041568764970536487227807732908243972721436686724862422872688773488795769742849068751414988986659940319668579742726109965710076442427045653174183710028116944596658105872129858024309262327740633749271383543414244525029153720180616388079387528057364272941095433404849874259217666733523679010274317317609548289671199802259143983727324097754554253810442906775607741453684261137078439174972486092166521115959644345086287176673005490455791910888901682888915906155075551103434362470785312152233779288018349400225813676137413484002507804232226478972472159028039674206996482012310336543699584279970611592334748574366321197485006318765548623881417091771670047525303552234269470268006366065466888942190652307581623529028786091907133467894655930440645509093769198864600070224670429199254851660071017174647029249769460150884889486836679278419332972865941491217164062204463529760619346521819449314310519732897912406615658372298285481500081396675028910531935189366068701483048265370906348145386088796746068268247693179225393112197753101661521601356025651606250443471009953796053725852661727722321713631833257554452374914660038579061787268123212469470466172874093844140715447865161853056743484472610628230378737584285848867232429997347014041152399269816316158168363433276506185639713277808986238155561603547779525635755410676261900050323129210315803555783222679687364862559899972051854243216620832817912115498813765000643344071333061518302121705309411229688922979329522586430172982295723020669600359078983996737289241082612109608338147559153776750574852219689341081687409820994566241941268648369825404583378368335506245935698114855727537142911451744606274564527681187373569972342359004082944324141060452307200929313769779008694174477250733222192897467308739367933560449378583900237587910233652056652751139312521254797320832729910199371577940229404802345402400501120977976735515131332616764910650243080449118091088917464769494984456322946871853310934200219741858398819701912961132490386962831985971438703320721011370842807360941992204096187400430988431568375935261054681904017828381002966950398520048770649418983447835257181290221193713590443287276379039184800374221464656007142565811000225723254246426875096603712703794487891926986524650701608866375566200274757373865895646401867155853626942982905311749919480906677934067411648162120707364579825125966671409556458211370963084577087427507833786139414985093928484885316506351553958871167964594047093761716116325606308022609565355977515982348924855780725920103608138180107131393584377775986669637225224609300357179127290161322509217711962223926803670218595339833493882890344164891227334026280333654839943250690278771662894722319078594748993582068340589010910686262879605906950779307603232618335977394817335436469339902900213525236035677308261733894273100093845769158661905778914850692981926047638266819795527776155680473800864165347792915541548574031156828673489478373112697689683537192775782042776612806353466672529824624180569656252485746566685382613699845011328550850932867667292136031944705065315588417198453001697681681568857065367040186597120964892073985768855828591223920313632233648234301596429012103789461942501418132612064393790175234214868412826424429109915868548285429036844963390243014043130971291433873322831636190287828604556829638426622149172863693453716405712689763154872280616410505029653263612753814287045510845421151265139232318675700137162547328528267517144428047219442960346889960923453357442078454957455111576640615268629217227222003061101947225780238684804770117745063033920918246770216040925948201281243215851131118700479152137018829435900546984795634091247191474157031251617284510064202213289182371999506529349668004866876393472398926792810146943850882017211978041440215492859440836029292932118285528313166584418046017649897974059131934930648682718026169422976632399183468967815243273193882337349576764461618581149964518803732086053434502452379893208092933520010051359012366471003582083409132400337450415862994766557810209418684508526053903764696703256118892386866573135159645881783823774355346576742145525359852632036686126805522171503355539309577233119282896037025658320923530811295296097689658637034008051118553685549390488963218502991279758752389709860190846726775573169505247068888794875830665421220658241555694401591859760484336988545253059010157992958673820404029963764752797315791020221493378147594230582029990220016609210152704161334792843937899333492735768711779771869534191093944208029591421008816063420089712739850538806763441367959638895527286235713724097911614654806837317977455625719697644376520371330062412669736515825494489839818665382067209543278992777533909976961408144081699678402852403154324328121956497265844123539653979052687735357349105898458178482107477571894319243398722678785582047824264017052135137756771450936558925171539861529457631600503290872254249945706055585961068623509554685389404691956295247486166025517850883096565179738085140055674754862614996075973958660579002527344122807739583694392216920319913304575456528636069181807170134259242289565739679252595895192176873004742871216526142079476687057349671794906439992499096482157189691020671862779217924659669875920776144576436727940144359544190861798894730898393264505200916986935421133861340496946877691257843440686982732050562484458915077722273382613988502671739986224211843508162879099956256177287466086980004262155627348893655590197282853016765493156563252619386153509674414822807066209084871376712858639363176929708474531977244539446920403226326402685663624327021073947118235568880531212585850895204358185122609322092780467160887747787927883906726748404025877237118899150932787980388514185959597025975897308345787182113313702915564263184346228759943686871373384785937075252603391211374843095691459899836876566388661785883106185884672047051354379783761485294107642606363233561977336894803578982035396750668619447815054389043721020924789935704127178586731322474694479246471093727927652044004432637497075944372385808024142571274775704662293187913492728467317352893958317902878737704621730260087769051280821117240238438904107261854232043938360212696306159675953873667698908245243685341754983703829029216191340629229715668778361853774825706379933278571443083498023551141014034716217302977144742387397635415505751650833764454957827118225621834809020081333796603063925049090169716447779936901208878476063992099147141167284465988734993309969153297007477016151090764173616715057155068322227694367397154711792832195284656239558928436659309594078999250570682632163754362208928886688345487208420341943263208970501510564674517669885342404985647853458274470252952083988027473292856980337676295902555950040897582724902320900926418788912277645486048289408667321956647623408530929497065421019159019807065565076580850480317926275359227763283508742751731969259626202718903831438285303110021304879244301995834677085420853396783601597042465313050963629582499914342802133997549894505513863771140164148672337147506855753802413443026708258006829276150459161765317275036584318502177912764965081300397170407385308608755756793358021169156155983123823582406522299497414761657917933553688017938427996864654085080874197661310125105218192108894062204221965473706212151112433688934618620009197028288271245251783992361750013031574537058232836699598173915318460832958423823423017849636297945241326896228563671858047352978791343046381559657687983660073886005739347249072720120728578366392633477999099403859096540101800992333973225811226327826907278768327285324996184964097135508927428902799485269674318059795056393857539241301972313969596079087923798894954719262433079754599076573848345134384221552780991322620107325719069666863542912765254406137497364780907135336368950333804374728050487944751370526941676249850241517270882827176356760485307757973701214572373473810437767596299762224505022187562254390176959471911106162041687958320349719518559846208754124512212419806809801971331085490998701482901699972651112478244703531359305953633720342228685116047749192479293866635748689211823524482563826386184042016066281764848757503110279056075375812221150363661905480624189365616577856432912477383584360762587217657856821067911150939423667854260734652754240567958019514882637495352106296980136627093480062009423376064844496698066577590950812635937468627485921173209447146188971179910096931674778160684745456836269336371664428034737095913350745364025968727503908401221295528054127368856478405410054588253715896502969587167871759870183541204412230131502975726189731237681684105207767809202254559221450119211602947459128995862304843654733156204021679110511984646894126468057708681770809953889940713331726043745280841866365572710997393663575452372586940426956210728634281244527053325075772020477232767801481680438509441901517993467443970512782184537558052411611264013749613789889062932732073841901700644495183361417390247067592158637511626051179240397386833602634895951074253905614256070195811510668164555134594574459115845689657980262476549580844195063095485972235640508497038484666425906515481988240624025658317543775806817544696514622401760366674093107432330697541669248331931759925224154741716636034541959371708658846563042653014241692406822314185768251132192911244336305925053637802781445174678219503209584208558696095064041627081775756143852421225243845571576676469991971900099942221330288974084954123891736273090379344536683035978973301559619551695783986253922298412685872703495229806816784466509788459023700131114606495992044765760468129706701005053542537099917904821416745907260123152947444740192418565264738584979490435129582616550997704627479462087812756788758134110521536518789559972605914646513200474446709887642862356317626526528948141605563003606218929581778504163241127028281338409082673930258626368355652868255074476953205048715974619163716579891410650465798877027760615255498937430244684675716290672931670721994177491261148890980339269921929007546300548932625302084589776555928257868408940775489162659891268059262558808114009752032163326665301395429507576513393858881862780432334572643952428922021401872189965531307210367532841250182774370438094099853026375330051815282994284167892215056555248173740107667650238499880806772542530802263210959424639935044441200150055040465937283928593109811148670591598479145138800001586259911878502268012631578473365120962493291597870880980333489899217427430512270025573074197224139917757301982998574161196617435813041734311632150877620863935902929056364744317842006688912361725717448893215325219249245893645869623770113525879731677408436408883649974537942435734083313229684074507175468432922696754579321409785096574289205640625031208278441311999567934441644001909746410650736815952992062918239895805885221902536507657645979710995485453337272338669054427476618689369156424788866461247287884114800755452574479629492451218495607214355962786980604947470975288330760274941547483195859816086754396529674666060915105979742389415647274649921081549847503159924889314171445744110917235740003685630603001036654120899754471126120732851971358140134609609767062578815593067499184630771306626975651967599391991143516390062358824231339434111946425841227389681915061429202608015227712339868979136525894044536890917706660184006183956579069453872022769646163872118580229440623062556668277588466098645561711031527714448788113240636939282129688010227194100909379118623657799311277202730595488802981498804190084151502987190625645270372820983169504311733921955111821667358810499710462316259301449924531943533479994230603329037127879325148252721509625351861210096149740356974684334514458447454525044123568593159913545366994962398716796268860453629612363536049766384949593217630026716006463169430692489492848744787931663253989805682475156318057444876096937779594091905639002811140764470136082190541421249411220944794260129362267799097800343990375147966568736620949026304075124570630547861286148380670667790098790490730645994816176270470172725216036919965680195606477298070172302346406159237632123630206106024958412276951182279881800523344916723710089700902444499398332570759744362805382511900731248321418813278622914083798099720022600906480075587716881475612716750505751264548772075804721758569023875007329357733356072508728527382348229079757448106556013208674067419556344889034909063466922156507842803069815848285791918442673674296969196329049661734033234009539679742244826926386575944589820793931085717422101035494170560822312635483506264081319809538336883287401958311134089397394813773875972843527250024460978369859677737111944388256467308352617339073404155013926071535449251167452644036863001647147210063733127183617017619744087833837983409077603324962710922689540974122521083643922666589131127922606704384153382328576459533449730725341908868478197292657792574064187332657742007391658211459528424538556876876200270509950927134359973699990822519333179617808431596239911658823796093148378781524845304930398339685276888925011698539457782416020836059184765930015730044900796285412405930955979900382714855679460437679930722401459146727348114230291799709513185195703639800004153762577372165657221504005184273721799165514140431367686065984249925600965745097244964861107082570960727109940818895837429938323924786202570624151835437598917472767829496072917161103995770792919626883111327279790458029641500473783733023515913547128379849306273983946966863331624892840830532819171497241281451313353026281463804919723355926583231340465275885090942265733804637016364001504629595477041610788264535567114650826613096442210883820453164137184215395999530468704201791237085572800084557149548525990320307077182870593261062759287284463164875997188301850043270312104787127976980228329648971543657946368128670555578776320807771227857963991763666008106620949224210338432442043067623619813424501853844643669876613275543852770614903174551460130334035593572725224040485248566147953863781744432561769972842009272929014508673667582239827053071802733971915822253922327980958143974906387753037071244846753946348098527947724571025803736309017731814602211251471872215240613549404535292108557436504664562658360688412288654938094459453030158466153803962855828112692741824940777548366702373528333220733033219687939410876305303127378232214867198500675014817393064078792483184151707642985676606370040367886145795314210879156851510530688895005907288197938009237761715982976685290123715318862642062863059338186367709439400714076523991681946502908723416881830764583337417067381307117947296199081360255185223440142914012410118621990403793896735034050562966233520662543214024643344234094993888418801522911708313587880387544293625453848077859177162755243375966174585104509908655529174654895407162925188369184009401873632931744122637022899055731906165993037586096338820509690058074672541011262601636986928881893108190839660563761667524029049233657272229438402012442664700592782782278464673376908168626846641329313151094282728167374266489544536901058809661339580055047623527590475284128472339297593775328237168824463062643809856268002333861277999962469682768178923582809786621248505586376292254308442488671173181145869041844578274352337256738242959259949838089456815089782360821005300652049696627578999795296205886225335137328788784228859048383968597605877327070190922157017339635339985638163956985401630246922338449779755630734605234254228598725577345550137370510212356332053867322061955895940568773158753252282909387529269177013195575113676703488500783627007460087221647466557886768056468761612158283310862911748980154414872933400341893148942363853933441801643941694016751445425880840203908941161598428798361130186487213516359837085781027137080772827615597172399637755262753808731752699164773626207334587279199517111782961686825135402947137567405373195402949552086498029943325750215581034360524672664529589300745759547610714773290081110153608068965158723545922966979483108589971780059507369243942592252742429339494728077297004140751145254326376775157865224333939940634800313163618150996121217622651759898544440434630652867756740315016591344780320871761268968545326073325178531761706900227380001654376684011494457124794263829063623146235047543139140717111649247274883416423469909445671142188456379663807369089073139414607802108783738810942415243894852098957822485867842046751826868449043611794254190266437684898928069453913102717155743498523369358625333880406046693609390828206282230164643739555676055704922171364963385785292701884097084152731367015858089579991021500556367339698060082248689423250083375111379467245184562210458475924671389171113118691536842935910031939296646041738357294857128827540252345965716632837742139067281994857401777643180941245418793900441144313116904635104025403453596647970829600342817787814446050561910127789098412555306197954084099355300212381619912721519454686724286720827296353051770328407211911638234838790891583122413392914253729414835874962440816521381128767050523643948810153964573371824808430490902872271011234915236155439557304178340579316919390273673867149622113630078721302450545994184710015199933658728990371883024410247516671036904798466080686866181399109396836593250306782720777657325228515138523704942712233531563824851307588939079909424423044508479444616226315584234218627308749822736338971103976595168341213480488838194208215554488642594479315069945415350251064654449365143401102025147326362517053544660611226729981305425952067100509729268593141316672759762816395236093500069253042878384131836586546422995162086798645466852080129050221379585336444063874633054315418832375474067734276109444138334271379790498357716201296210859245137937001277399396554697988778265407680411717949115014655518775488066490127162304039532157927291729967208504200580773051014608683670139044457448471976969524885327596085923585738772856477582451176139471847668951327402566755487320771931809585468222859405984627100301364802317538272827153774831904838532023262498581710977984770685657872563530649176329787869396236570552476429877901264649282710731593874634288985583839042391418170843119891261629106340926003370724395430444823817125459620786450164901642578027789786029977914455569796880164571348046010358027160301200118573751490433993924913533762318695694608204416939135495109120248395842285959841917875456663644699494933919994180697763055355269907272385973429056428119881151893162070770669394217470165171794931667073424990256456358664216703207008613479740870247831629940290624921419639099275605682580043919465437573343074143942515489013077131313934869736566318097589724740038013834353071549645935003728512836988564895711867109343841865001805430392618191618364675221697536677519127736820055855665419643403834729502397105999101950333892122694432302236790603707695123254168198274730285725348855500641863937102772449522865082312478134833736564627391689887667891132978978403852808397434219834362495938796769996489039055826342047608962585835559359820440435079980348381515348312151454107078558393380027778968234931286075537715856779439872187736689856840132405035334804763898723907402376172077399770819545445748668725200786531459981737828159746041927128849942509864816542770974454055782482657864869118128501612357673318831765096949031508516905089704871195798548022949835565809662735753192208321642705557261961055228789718928474519259656322080731342830730727376532022172779094419938073147820633483134593376008481125198263686133061595815799153049402573790063808412642965239535176622395314790791048566652270623783314507749750050996160542012889357570755753659459703469374462578937001322165671165969745241069453027881987374030418696351025274663796057385689307448965267239583476447800708522576872659078786088823113106924110305058898088162241012287557971679792481946187449066514128272093294989359554227626610483150325684965922745877496689264581108065785634904377008953909725369702442835926483691825654025118354221977995702045685966157216125173639115834200927399320864091929115789994054185301106012157001466464895919126147453237068114357242504785359382591676831983778498117493074155795649332154240485068594950513449999206712341993148168389005855949561474562168425449216229730378039065768816197447574024433379616598513202761207366558321249818970795711706562448466474735444128673612823149481589837707898967983466313574311793733660660976087042194616591745912864133107026736245006896089555436730176795759989757065187899303414389759675396025669435782259894386566935426990203791853062820965391914994783298899001064825318964561007193219733169019654708350721547132800005705337077786576858765769366265099046983373678359427424799208403015659599144803454213522791815442339805479536853853423426174870037930754057739245990974782166104604760903592091067207348586789666358694025661788993123828318910589760432618248320543492827170758498208048893547900775309123376686117833585965298934808615698185916157905596750966838791563327315975105434940459897361509549094968497399478557427473053150274967553208919717834391552798132643809747786152891143913560436806111818789201540616111952128233693922385691372421525686516132707326527387711113583997526338498587522221795385930069063946959666225446720082838205014094049335634516526710696837800819485969657933081449359446348887818227537828173948376010506286709261073246033208304185904148211613852314724804465429668140066280947543247789085676779579464579948855838229494272444511324378298620800707296956612871283108980786023947379325829449549389019288183104108006529131833407101154183407594394127899204345202091208829799959593198024535639987380059691576708982906065856484360778338659015069791816390876812069288850626272143970715305939446092429543636436242163869333841142288475739812035418089760827660175942650489804469683145075083205346269330834462914456738684327115824892493817372887651420814851939911673005263576344257435047675812868746371968095948631498062154034087303524147933561008705645330799345464416655061333266377274197150736133333417270928652732127882527577717583228453428655021828923524377101376099322474070560878047046111380205767557362332450715042136188023422995505946111272471886042954867457110541101392131088274618994383177482553312555277745164956859692548683771868388989278611828144723328543772475497594161457016589247442605936655365048028038391723448416796254787835950822565168312464455268928302068448099723570718922900453384570334477530891596785194163393978023912574109144389213581483400809644991385514589459016282550095212287369322261347197079768748468807672138891207191061946392615879410259267426257009944154463581704169822074545622238027657274977224205964454636362769989607718927468762801173089684494786602207146082354157922637519439951002877845682347465346472634027360526503557898739545986439098649554968272042532479347662748822833910919392852959359601206282125980819679848314316105327366014230172568375094612439973684423689844103375693063131895571711582374073660161728004094218792055458787349617864348034361396050041855356411349722291498088475349194821756710205013985350098511887831047285500649763496467848169081056431222744013523426965193973190326097622647018908043236325603983982299226668763930968209471684084361207534879620471267736777909629738929511081983954722165194420289562283423619101894438240858458707301339694679953223258712325847479805357859495919098907775688173443608360452132697951078247305602755178460880637197414956812742040847852517408978559236716476797304118466173821984948081592289121525983889246592538246020206823917903105529498766547107562836189002501822047164961408040383693272541883097032286376482968374649312418574538909731230859212419586948805098242253849313443985633823732235857116698698988414792352128925962656060481635873865615464056016500411516316334167097715274195094256688220022023130614748811206540068521926646869727835069131719022726637700666837398138989225098524109973437104852602634004885512443687760854610694004061300958553613502169119854976434913192693471143041037332060854456514466292791564184412573456036473630105438620265532525789902877918930375478714113174469829974590263052055486108467112690606218810895846951105641955659665923584194363448436846767333613377843201768251287789519421825728268311727513198980888488655507035656869817058912021934173145533944352169120559240121261304166169382845601116866615766914752436501140713788814404293484460565930449481506474384040559710301515107865227067546274875814256540968578508018279452777575488222975403830602338189562285727745529985403111638552912939542225362203590877326348458644569983250879410025050155606810665701539958745911837800328068810426685180749808283898496803843248386384477704020692440462254923986606397526915354395048715863788908672369665231146718611769915617856410054290923730801538504512900796021901313779174843725265097749613697315657125795358748002888018767565069232506811752704030611679701417407010306073887261039546401903048352721743016365726444256444868738756774497035391231177964626076937246490178179746424070699866284503558749036297055711696618501962624293761768758900001712385304670464095737579629947267985693647029212984031223470168132038962432050777789394530046152042331185732271347077451144025062578049875415844225534861359759065971016469020791930692853927416713080926208508684205037593579740596131538649597454302765811862832986007354330074361395939277418986996984318176730650928695957216433450921873734048395272027393028278829268677136245813932772601904642251403818186857307171442880949137415464395879801921555096133507457750729389077332977015975171933823262775127716257831445886674125703999200580838245878199735463336378325818287154699080098348119869922461308456800477843284599016974003932042173713224526675464870692422539122833703563281697099491522534396263322852306617990057837282599467274662325742778385551440946672145223054336142883299795933976562773483981067431546403812778677027791644215561471812765219794340626996862695080430487112658189007741761321716473688025025477800109885960501894551800343828229486595430263615673100774848329807582042682066497688206244914952179025879488030100535502389472196736212150661103518592812453428578954833148047797847498274925501756666293190911139065243770999251350520110687127052080653937181687250035381096705149774460403145774574111392906736501907465675969745697476219377857702991292185893754526504181060723450765970234124863603725405584708502467812949671713019419574390638598960653587022630375984052034709373277650930986382888723748628154572558793120998100425771080083407695327972947617178534027835824138080748619829194304243964821084630770973691108011177762980318078127816201435425446085934579578769647292648730340318644969359534535942085754365743323148291605616348402870255016377718501493849770158186878117721846552864857313603341732487788917783715021694981008345988192254160016578456654349408859587494756449276271408413093264788424342130146443897089963455419692550406368690603638830517057904410450918581535553411707790177503510549495201152221818035464269730252115672050870473250103521255154926265528650043088777899494918328045573435916297614504121930044619828389327567446606280473778670195946040288745910890181547678557067769947381470467898688261867727123030563013352949085899900614842976437079015844964268422291751557336405129619772082331330660149873911797715004624429429281583216988519566532325944112453092438820814283779711593739959743533751911147230013706383067059537888933442987899848587218624635202786731933989916776992984120667945594290489027969969843206045654319638065182357841521184600578777797698854957198454773090828044352896563890028907284741135266344722402055100769179063343698303677334072734575371893192380303792988545391210247465969480015235400477010114142777766827096594365431668114201178992512171203492619081247546605548384374071244829071597529027564664780386949894396372903912651421595442212597537593008262061819175410696076950529808364053969698549795286610843455429369097399381113359996272337262217185180906210238614171239203866988129787928829329761709856179910417737682370433943394295603908702927426147783066226340668695416844076124534816395557696971775815777871011608073688069322197215097353437741824013121131887682935655796345326391171536066146688052625221763687263022749799634544555604491851906371414032961577009629832564101730945230690508043761423731731811428815001236567048232032999881667135970900105269284635821257030614849256642894511367986802654085693991297792854107899392134345521690566909619109907229319436908146503553281946761157667825221465285856082120162050606493948099225922307579764232107427443902297074922958087425482325284830026778666837441792607993655867526427316614695959131684209376954351381744017364651239569127755780413293729022362048288989566389530402001706548158275973008359738417666592772968723358101680893244577270065118594623480524728891242019106452421194134543223106542011343995718591408923067459443739145736536282555390601791475187635618889077324501736172184891648920988060315334994550176629605908567694050560709553780966022952976751595512455478295679843496833255868227491039602318589574912449830410380355521253095211478195505182049347322665480955445821365045642716467555240020443976658444014611933756437752552654771385467342134602851874135579476098147683529486144763191856512259830697440693406156913157182317407207748932611755909497426713008202766411083738847128315484177025360903800397685253158524998532302746349603413167159352348547918587900735163932107645826738658813442326987956012965058831927051009373810209770531576515884462384141496759672038766436726695635833163462825829243485442808332584069542089689898422237035548831392705952446821138267332694989316497146199692294775080643893119338704579181621044909724303662190487666070174941956845977337201760893854619356905287434386648228393996853226322009672434924651077452178165337049824285473189030929680505831305164196248624584794566960313658730626376256215197306510800618522856041858008818085800652719967427884667601458212587667891330938836384777490109961569426075655327655084561848341602583459539368268072465156620282279542182833301686261771575842708894185978039087761923215634455518981335295386955044560386133981804359109678688829936807154545149103868427075550990537771038280144352445258060830875584731826062081824709355588209555742320937348318673871571979577511740025837599161922760476617736695155308489879516382891743219470765739454221318381330275733429511658361724655807286422098517766008935992176401488249343270034543339325151598627152696963309954624799265372651173049881765578648377461860653770436277405792485998679981189399971743435648356481968396394727146061635055088505022239419988532932691186637296057152654925775829960536076330990510949417234004662316593065710766045783582851553513422928963539884080816689356176462856993009507834031271500530166197911317877507834252689817476387117355442365638651606562773425564493263627589247229814119512978505540288656658212797069401601376450925433423337218637899127688698543455182341915912107792923033273291490944812082759586361072534502596207801262159717810189174680517941554105629484983001189870186725290104193937742975983246586199614674667434137680297279405666253397066547291762900613976736614348871942619064327152817546015850350095349293988997127027857918256443929537480408742876868334184475507417268178487200734614451519654680446860388355853334106894141047240334437324055360134436924624478624437809354963052369099582772778292971379928081054379415571198891505520763992700171851495944037763904589697837224573778300983445680094634823410930752989257541601548846584341989026402271562714924353267260978453789928367945705289460523064757307244682904467874166616643407026783061202501969075746466319903549676410025349808076121246625174110548870604846888833959302298524975003615406426187511014625527232200659228759098518522336753676372670916965248017365086743743087097098884789995996357712326192900039591412599032104077718714468170915820580973944545105383501668914585860464954867988079637694077811309837653240798076823879917233380641423000295219803764838759217240776961410038273234441800007971353332923380907486739893115502836365217957059527836315542340821112842992301714846792944879537688326700902469884425635069835365087171181574072952092950977081153171914981047416992734048719593415759350920567567450238939882256006287859904817701400633176586710633681941863660374039665968246829842415781906429309832191252312081695317444742174475596675349213517009542535714430853954189422447282351433344184290566177018644250599558858158547896663739832424719362941995605690635441669648312592682742805994332638784442837790012181320203906345009160536493894823660926105523268970682847704587880848249223969550141967973111959477814263240849991873881963905054700729565319668805164606979205951063793003006381342953106990703774965809649010461645544284676846954671400681192856397119442317517272680801771430508901587793337424739485943862991510691043329273813526939375185614160813481715193174934111948761443074424168322614922145291973231560612283760798066918492942160016681695530269726205616826440920920727080256294473991495753349407726486813678228901503193902028229347314605439737857651365958135937833056226192024671100187958925363936923017719477638873331483526504152677659664181561151680110763703260259156862767719381066177652520762334479090395260937716773890169153585563659522896736788360094271611756366565144172672391159412825977325340916562978190653276918761836839010662504823866381482241636545744778693908346173230024689960954969223357617039206276389645409992479681656705840907810450496455534073487274609152146709320692428061596134465502981964377149865947371689807299883710339521151371779514896593502719478559100590856243076264948572887980102579044907385741223556386880360950037722112461606608900856321327897641852089101383672387286314080485968247553394942040853455645327691635637554500283631087470044478476729968273929051691923233564216037977701727763212314557661574363351862890588226561304134035098841025475525061894284670081390251571491274464874859110343348881788029877916757149503387860298453549075048707278394870145233851017142820797261603325771431005332352262234512669905558558078053170994664007815081537307738844489430138941986430222732132381877657084217997544594379541518712511786422952011244283543562922545157790441269719880641591828753263719701804784954517679358136394685120131055179397384781868653305494858787482584532932556190830615404562905819844250189952386617492567163756316708362377907841284978434417934521879063640705433615128356900791042991268018630425781971180991767578483151004756959002981263529765706295017465534466336762851284569402139150525673881628342658543658519447178689075480760100251485974779195538741704369083934861611490395936931607929322208141234527276355838584175176836835271410806232006833032832923618339673141546774585216776804277281662648698485142235728732231806408908841044433668500064582856454069212180918508574800520054911656340139927426265512242836816723387098754166978378786670105771980707622815311969933797834051331448970945269980915304871722749666287413877072889835742260769098315745083184747554075072554289891924861940005213560767590995552884095668569204034154458906502099961323805025094411474011535435483145309728905685649567687010764112718737952217183974031205356322019656666440550582940951353823885534380275871179023709802081886900342154768632695175022637303481692179652484906030172874903369344765938209991133274096599842147632339737936175599627709351144079586634865275175433555678243080608870680845844190111620806902728775486680406339297061595775624291810685249425332146871620955705688336192971198651040973268346093753427353938256344438927654099279469144554197935172823831474246690639416160942043236913776919284152074984195870982903999789557383667553727609249743266582477722544418540830822381683391803622941570085709545630458886707947040323687442064844576388341763703494823630470122784618476429909597872530364115193437142561132865229742704247358406572645435749666325797066784407271737091515154829271218973690902503556863376508887784465864921678391976317354362803744181844129557032326342392296706768019107198536687872194313577446110049971828448566136442579861380979956446724265754028115967925984537063215103535027700444010893389175890931607984557381482983814372023887613826583577428177038613463535173753755869752893123941699819492588097896793569012525575960189805404748703131762173303989037768026573198580053375719782448068209910972702411609226619686079535526324480305504762411744825122602325296575203757872240287699881519164594851437810441353012879806190132345702899008551906146991681887015536137158837485589380536550016078078170870853104028227212911560562887044735247183563535594237447385974702207746601343500374707214239702762389516227054941915543785382396182815396016794558052792525514348102437184204648375554868504270894761743243497335637842006636071103208867670224478521155945176068494311049850747128096399914972705075419293749030281895290097948586336008448280887338737113763144014697646924888067706000967645394369716494474037564847143458789789661186262799568150466229842882976825984843239506866885987910030922471749268404976087725565157031459915517012621373974684532011831006707511808335274735732499392036170074808083690870132371791799107265481894266141274276737878520302789310184042412330225541386713428438795191506422450087456375248260491721648993849738066042463825297661454538813475196269674589187534679539550680143157811429030387176818675486072123247717904834543489872488523192490903642838851744739278617376158314326413085219343021163480417462884061065928749370304053070951078699740761357387454508621586066238947161830506985173295026035338492778770134612546172932475447835387596998292611423186156342919882723085033998512820610719615126748809114205533669003031943490858584226647201027434136071898504880819336739996225170061064584462209292263639637907410674563966739510300402696125358699107967859753771163278416691092990413267697831146203127978106754380502977853339768391687556164033828994351852225289162137573926986160772987880278790248255981497487914731894386947060078859863429210612661817409068781349626184505755633927175626838902344498182979787489071822521473765521892997645856732655192087750426900919204415049546647791066877288842452544095767837149919549268386315581295907482672296575136761557498771844487935387521267145711826203066069266036275007166087091578880499808966189674029469756811735464316453945190900410379770519181257823159375380260938824607887076453449341078541563633436979955648214064823573117493613382426070516075386008058303889630528012468280499199923422288880080328099151552976089576882993361857583269343391124583047449591932302608428059041069725450736776537205224585475152655609027778291051601711828317085684536980020639415518305195161816110492959205549146606056715854891256390374200825299955061148466439820397970428613197477060784639794334401742399063710136975101993165425024040397518514872245168871181531515532253298343752505053037240741695178776259162028249982042012893765811214731865149277794336428637060233241816580807794632983236180879408823851542741034403453740918526712908593452821742142845509970422715474359832085026744180560359744667850915475395178906297425075992410571335277351612144051300032397474977144981329166058418152571238713766038334848136345894831955648989083811474458643563606481593157751646817688570809820470315967200839369511651685288958073886127210549371626454417653819890274512775304841191117869176029175613303479587292802199228226085356001628611596022611057008407009978570095613035021485376794645510913535867389719805389197958682035707495648281476747790502409437482209739640639534626499843546228537375681571512860507996356900518299456400300053495084670138797233857965416100360096870905000924280345660791347113303928787004827171754707171304890870625418483291215602637541619581846088843744558167475776470180206079305514174619063990139336493503789592522559428735033176557248337844559441193305411843156919548597107991636191525890362465496450193581061410753082182150290544862516615176536249073733701393789902957015231220123737842384556305104862086295551276242290217333949462023094047611652524883073235031488964631321976323088854858975650135756987199666968081158964344893155724453958285602485729001101277990538203317918320194620562482833778079679891987469016607945813777134055359379275316052645009051706466758614609229536068459186232355330691596788731635098082460040711019875842198591512293700024349407761055454938021482378974735971775407030354814570881363130166641668698263025470138433611903904849196484739214604029948077213632065679056371368309962409775905343364261903180775737675715105833844994108458280256754602094587039375612942972191148755162459267891406940531183122003861971611885859987086327231735661162072827020471648583807268773115152924304686128879494102460887700811768206089686789767297351908779097352931416374474928700989064826581661483935913379486039280331064997405168935828572565954279962394501842404268476964763470185039523716633453284142843440037477119434901773902422041725300592895340570673032511906869292637800429878396930693494165654095440231305420705588319720843801476179738205936074908311600777578473238121079562920841143828561637791460425284762388370841596344364015640936283114101215300199571507610865419065603352761039539475972268197702120732381623947310177652235998247444820535432292747145096102955224206930492235043692477764137205634018852020643406248495164437587819138570720664967622650652704762673364064464311589205059322028527100705897348296698066207484671312174202361679545012767519037801754027518882733199147407367572464569546988521687355953818035410673641579405834894260572241214348306345602853357596968693984644301624394050035498194599139168263725713539211118891909487631297571941115676811754220639277048775936939843534174382354222823783560671286288813309246017092022592758225605716099670870718789519707044547447696986645403891221130812452949439719613428520493886796492789475591149491583518355717559041831183866108646978702119143025180147997085167456142825005455879428729912556513984974389223823505730028599848242114521154200840002271418900228648305463492309241218099896300297866032330231444906772423619437908001804774762883956756113442934427648138554781942376011452483552505627513550195470021933562877875803035252693875114082188688930664059299584922864462607402223179565996473511336998708449977653257100795240652144406563101343452986265261847029374221894892775382578468840653682565523332527136296627426979173872840126117455750259899098913891203166905734749911559955266688120864047787037493834786532399299438109631629307448971675293761922355413213255000692157496791502144560511484642780590851202741214143123584300742738690927461106766522416886675378016693814788434414034136656560752102696637417627573926979185548978580542191739150630460993788614248445379796664425123385579235253170783543096201725551074851154174144598569125414657130309694501695199712388520928411660621779281605696897747498914895009462780653428302627962101367048441183531002853998680488433523558211149842660361335140880797399056627034926943972205256825170734127669943269706629837462684243595029856279087177165516745740618946305156719954767026451922868742970115460731046129975605665507945923874799949187111823757725553058081271664225184115311022255425003689649167312863254968781067958498729306083530787938612846602912927623521611634117346779553141301337225120892356843173648602673030082095801343767706897521218369377626365145111901555714835007275131565278705972693556203378715581459382650721235363941555828814369147408229212738032584829296897112242367644368037954455907834869541837764592941545166162591023804037344043338287452982901776295415846653380115611628897255014641518143665396309784761409152848804788038315353299734671853749306642354035956900998913352726878907071068883274468268844841465292728479496990605756724916535792522679408957714877524428522829907084540608017851143113282234828561766907535731435217059281324660664298169957574528032199489332094524163049317117068568196914390901569338574273807089779335285831572286872678838757787717980823898874769430809857252036169905924919059503992414273937945076168343017352012514104475468353698893966994651107687401902508474456181761716222503019441510753639440157845626611795820729691657251374443711628476549402906981678784459132461541192330266358163143076859020668661341284650762185763896589822638582477753699990781282167741182047986297493025466186635845342105312970952582728498978514592986108291355379179483232944720269678536447609866329764463709103123091691005544570763381888709947858243672973242620803448473242363222399989205296446475543549943392209090818023616976278493896218862266494445473902927154756510472823795326697130848503514533991466796162325104379119221804879982044214102308147506557586370310228935243947670270720308298294669326723048304259752915845147198225062927253857294383424431963198236879595472270319526373044712634481293048976558326507160664442195064807091963638964334731326124621865896852950911116741896185738615291522834978342362512900843212059101019912450698341390189172448321253280030079777435297238964744445217410872050606102156303448746440856905850852450333122976726979454082261972565750885754236137201338984115572609230884405051294070750944743278578703964069312992433297884902485218395484710304044474652215139864658687030402867145792606661105723137077607270485852039305977170867129337927863590514804428776235596093507276350760379366738020095882521516263051047850344970696328369938278996303114349644151659283378784961549181732751474001630205010232426422128642648023384247463233729614025642659545573761792437351555820714044075358251894892712452405770190474156994806003234876563471744322304458080587017716089464120947770395759273638080458089312852409369710168967813727377273049282187935341471436020510387968218176268886942448052958536308513409748573167396949875892977574464162769831092182663160045965857606430290165715126213654547933971023453926941570069191960663052188230955915862272469712330230769224993441971300185763511558239251756721434115954248577477257882012736510402421679490198040452599688315272737032720585226775676752674693125790962401547485585189516093183395371012099963255985023933106054855753924328820862467768083568424491449205343286980994254023548704838582027626952963698857513522690904829223142125530400714628726849515893844031513865525455333668510633506470959198252034710989377988296092696498780263907996741838227889437254629615809432555985864878578845076438050111470134103278084730071566698254526639491661573708437408268735683580799366782080791221305785746396682546864891621623515429854765692790818599941598439025166275894514591244715554085225262660721463992997928811390811264748656643541867557001573163187676399798753434953337282402538932869589415727904952360286387416796177960695860192421962418347985629596653614157137449214510866225840101823614247825247210424873521182978232822965568478035908843859102809602411823531014329302343435822722328489185310148517169995320342633352631922254837474892019221988305072910395893575461223196687913910453083966799640139767876086833193358765669830047673218298365532945640427518348225177968365962128681260361862478566627669530384330734640029618848687525537124051107357374332750211791705992930749108998958362643979194516914789892035464053510286973150424050275009238804710486811751411156289839793122818869915702955168255317479833857544620243170056181408390049549876826202633229014337304280057416810061645938038867342360784213107060874091951679671455903747376911416920904922314757800653606958755363619980130886527821516917095483878898697491075128994866966409184255569219806874107326271130060736953089286697448096009946967461720582316156820754579985968289081059384761162985675608929947406828742566044753549847805251463575312527546560346425139196142737685364350195601342729643396619767563080620957947640223492052544194092111973452860848236073369153358648405391800495071654814172284780383399942334971445782022282961462403369856358546798678855564506998929364559254344067931055916956324386300741651348519544025611063863334177863645671455537904487463532407354324002707549859023858543382171911611829721748979822594451571295254941207861997883616558854300722926204703007697398654458755039432942243136778351107512884076549176051769110484174873496650481357809514645920038638560677831346731508317147071395228874434401006503612865372054162499375399475568621937758630033550336389524873308971536099026815498039705789533516759813237699686034118147027354896478902647246280957751363934265216866035981675401642195996876235134910833352675384124956051015526967677675590956886697397403154358466526505390092050010378027366178855541983835167730846791042400345155522009368586942340811351931870363022129308345498806428502023454060553278807016787535450906123210550623972268156407538245214019330087511117817605983333454544335698538086052517638549319799781737445049444918645342546550615040780592225475452846070730128602804945512589306489044210784808895141707705285363717059896820840067310860749314081750577710715638451369798767256734033834506948657988954555026913666126640007277343213370793208132366924610395459277426190058562743712181954173874361956203832132222465222443599741986740672281202615039474296319677995908016319483782312905725316627598950478953296539465082202796744864876033985601827780315479306630619082649759684222196422278816381903962022498593786510327895607090916005432774864142362011648485263700215497715385272580916998502681542680500702130445708396337198450950724479979685287409993675867677781316827799572697727248257136554043938708059799191991490819769834956701301661148970812521342726596724863011641401365981145489500653121811859262895502386140836404742988410801305130434269894956071916858252106692518343134665879565658900313007555434413445100636905229983143788717087754723337402937118690046844097316016943321649319699960916168579218960533396068521016990998196071442093205832683724597992785856856250363072395132546882360432421651591880301476028229986977535263543186054343207697619490951257323583606534453989133554548920535603375440241526794554908380099119025729930729671512809032474725779969584428749671551780788207522485069680418118041992718363787524295759418260295065385229786864239288340308532930256800081638369205939878418521863823210427556768397488765957030960051026254958596340448053844699368918030026679074853436646718824496908337803479754206795115668984250023096968526261145159380891313074237773681773253028721123327017504598541856528559369063401493195959077771649030747777325640475448782836876063219926142265530598250775915594035459069354153370611396769404546160641773068639122483540929511393303308063348608915309806133295162343614168007353686421989083355451639399532420388398239933334192783716001054263634254319214864218437086401091453133787676862296155905840382088950587558933231634670671354211635001991572889274537412864420293725157756582267684502644979474843234961673435120540139509748149025661049605737485034054106769359304035746158105250997754572357848416570782632940633895346772108541032916077870904129516257261315646900999266865461948555616787030918824274823953089956359539681356129169148016227322954867044849543520750894118902581334317639939428675832623063157289921400267486241352496865870079062239183613222618921388809077260397901904985892367061759453322331513732770360668503746881438837587472320208953992375628004844998443869687921893672780412493247473779367456260720724227354097180851334434521392942339919902513327665217754305359456078115466486622623976893171983977008256493344589906399647060260018985876366929267464377727473351408994360180219821976687414148614330406542528143380545210306531203641777370248828968405998360522832768524951636849170943358372514828471612256843737059428715994512564179725756888815184173481591015982025853884458096302580112591389814068667758351020954476836495530980650717967324905195492227347946712893085549635761963865674421460240057753356328637163943164868064680969710901816548414136422193516174911577666636132503459486049034654465943383848897153479332479179974440050122465024486113253960146323233803580553796874800487645885402518941529512878019479048819008085078826814801329871370834998968015784257397935699344966552422148525850782732520771860680757275160808063927653928159701664139839509114770585592378828122283438057367947103644782231547735933816313023172458656039645138212434225094734869481308644257613082336149116381325909318580897283522253598963812705823678931912571418087026665614383695789853491937567408649515649006259975028791237542444853342957233574344585833066514350760597053876367939573117093988217922801623705200392670317407299356955141907233741763975595795273938655530780920227135346964735888218218971637273916385562398922617197794520827691854951699839311927111765073398310197681014728089215851390693795270955752657479967559739514067257012819619177003634123183642167849957673941663696809952598171507325233207392530981566545603572451007012019119851097886864278257923202186195416357582968834779127383907499468498704679295125687926857879846161602073556466149968950893407426899056810324388497697598444335283423453530690032981114867184009385373501015538740158147710730938062668291395568725600982769814680391505510251332823152139811556714024126877707226542710295805075307245904632501472542811113342964868731383055151597401738769781752326057155183679878079161691722699766792020775875789660028390636939131650944257155554674833566015212286132215497591656692525419331884938976096070003674498892754106962843087725125898594100272327668739890925360256423073359010116695021446114011497784248587254727327665209594164372800162037370735982418478742917221438909261206757680643203184190656052287370554032843261675565170830615518245647412820764254536881721996496533366570214181278191465038641314723621645115625878029572467270595742528290383028328885527865793462037146231994939837000971640988300959891201750519433023127699659387763134776314099151574304196136913419486219632326328330252909317043462649894982943269494014785366262290271823418244345987358002360424606595917924171253730341893450075523543738020973442884300214040355639523742866231466035320046470661219211899229104480546697122070131698503373604774389587260306814060775301741360070909079481625398920928700030178216111614098764218564613312427050344993794715369381181628062588519722232122584881186356365482939996786229483363203001185596016289230299080845392255933500828131852174183263589185149371957777103945159415243803816366371316812125362598978982029539912212009070739383615069387885353609541274315215269984503739693491018036183426788508702712376096470496824051745583983100759096152708962127702215437729423139637977812705715412504037322125307378426136044601957036247261815939208552598838479131818913875677157487798237067523440934322306380946957265311053876564754761667484947875522597355499187371251702215314075246010541789386057205185041018666951533495868097162539133782589231112740575062951190223450463160345445529558107349693407790422081229134497044553261563338822514436528438589591419337070297200874966240210782829463304883344900403037926410677907323004494471186612286719195328182674736681382814843441495286499139212447500230495339930709663965711138280600317039392248508614899641398931479533751079489427157653464710324717552202357834187377218503558107461489975424286184228107609580088708944058656317587652512187881965022153961193885425458820147390750410960956934526149156538634831108401981826231164306179254528188776344089567632747092423554863700603271208495317455589795466045810875382578657887960992850649528204328493590051575195600767487595190554386528783158813727097646285431416880224381693492646510612194089173505903863637969957827101833308396801238714401780161818140459301974694862015396495970725318506069283622045394639014642782060478561580609467173129162677827623242485701100157791767100637145165925408707031345606413613809354995987552666496672587446650472407257473665733136813780064730970059312478914708789809710389580022519222133961938613114112922609528468587561072316400213384311856458976605197431782862620212713180261847702730516233715197876571697930079942951505784345728626664064586644364338077138687003604108415097699064241711797170831732181062200794277522934652111822969735349355789627233075382579248913493195114625725787791848701908574275255221816689896782080175718769543566087436380197135733301612656619028542043516823769652309535030825218249068994777425687455400724736588505446354066427670175307141982839819971625672500441175615555355661978772844197485381724991443403107406720628207946815405670449782603274096137105341133228104822167964375455357858859642330391149419151692431739344069563202502017080681445588547186254760271506547742713244001493147836583796719297676151474220290676549500168039640173678346590392681965914373794036899857728191383126058290059943954854732487689297004416036598819424670852140412898566664126131562968372802230538969171087233917315914069029726447684148171520246462586110739601409194061099676540628112147675278118214977339165411041364435027134572312380796492577041955165449050300873125146661762217696779858245859850615030765807773317991756500179488882455857281751642093801083824620761908117588165470659553815630870887288833882678070124460577407182846036065014759282153337855711968951756123709613506270835432359105698788086060100763116808824778422572446130077645320372964662042056043318428041134230967572451876223794976845105921253638216870457122660414145095906618550552258235024857014397305550917159657425510543548381766161327647136224720005061227618157260327941169750706360407823620844854641982003669858399923142945202493039537305952477232422887699544961698501381730967599508615281751095240439939943062246692675583916068323620771761179491519533467261508720631233350269696032021267298161917852611653314256787281989832686005218922585516362424677698889072863395637321386574125082712777183336770962454368243938721592172859146814511009762624229476633691929653511275152186810189990408726985527716789743373266945144882451430201128668188435702657152428820751358712006789453035025908408307719337594565216908865101429856288674544446612525275852077413789671885394402323422163191896802992159322448709109619873261023571515866516495185847283574196514348251585868182941278557556638364315515419111735942651914553530485863516352274750990267551610566226397191196786666764295601981312916869777974450644746861146658371217926002685972334378843939809327200614017723086946960296285607930643499251817448407448037411115243625155962013636382610782163261032331351686540509218877277565574538035919840000979109349731544366325946556413292571422686488196064476162364879214113107891923671880711742064413600580173968712589979353888538224260983923094249447468715127503498569835134728870979821889663516906445923405625151782531548668975161343986883474156842743995202822095481679828731505283438303906249412986485771163355194732153707179212814991531462204438287898528758212073878365819614267886745837547831084690001392326888189876880013422772670474334899887837000482339191454768853781192779142854477522974228764232680859953252817716625594790929348526635591670559748608626227051062825225772305120731199322255845631348413518820897843530204735384908771686967467334771801337711336913094337518118707867506138496973033372029859577539308522280987589768948520504321874860094574751051893492148030519362148151357732922820732084532304553305385367946550588002445490189554275255262921133697847237582553657299916235149599701795386394293138813555053428674907325420281665806753802159384460386948495614535600756595810119602639806165810087213801206906337538922621959412256253213059982796721364691780524234460294795438393593959701943470601279280300857277008587963386252690081459875883903694841735284204213895899449689771993444436501293245693820019866214187489133099529197307455847486323255789022290453273857633269076475159898813451470101382848302302304474023691151268951215743289318150921474869219494990758961108360599761482117524422858659860418492304526399207371974821968559736119221630283606432265701649112252500646126595084531438957649173570190038918418719093909883826330709975238996734185536389592476894992427788796395896860738448377661128721443732722679022144698859022826893873665918315564783770482794116026000485615294612717221771703505154394716627829440238362055259610803371291325600177859429195962764703808615902654311899955417335739162279848941737965092856700473916146389649317381576630847973479764904847276819427024191827256954748260415850288514805155068011436025294521473508170466639208726751300455095641825264920213025043324278221589886718572948349983784258065790861455255248833120109201397947214751435340562983840016426783571796226494032165652458682921866750686103048270152074734679152536715890348136231920304000695959645356419908817592819816939853247375041826703123232466265976694246305866415271759709397397943544373547810527379648390785190124768907526686672165429049166651659315620830493008943589873135018191997433736781677230830994806546378171088902460025816326894462244294170841867334851513078773919098419680236675656621548925012686761894112984599969074058117170849301250101728935623868782910565404763043455265063594089116474636199293360097240834569249490122030187569806600208868007438281689531623590428821676851729634917395562080387486613331094425810325922300240012508174195930950097939526345626075994543726888120859300160223372112438496113294374229412318315634458446839567201483372839963034642066999630357170964533864205304291486991180988067289391800588329951295168945752317092157593571511453487062134624034619396121758922836383133047618382755361432390109662986176708356556433645731430229824515661868429612111099332625259830854079188520917963980857141802175983819403038147019298353867498894698472201495148627643861838200639337510538869426047081772647744966385381230304492162868360665404820815364599320284866494982955152282897569149254846326820041624496238532931305680980077424532998825868614617746113062210207711782843140665414589093026211523418251035664758869347881026564670906555861039794547547651012526705898117461236757037212287946997145070545121517114912698080317259221833592154321153745636433699896860065895228235701769520725500173014039433158087447587671100750143938940154452280944105947287639440275310286606602529901398714805138899844299784263048934671950167858042626097880297767911936784757114935666307097170264796074350085869540390094156197291648206763016824309759746417725956703999685978438342996369549890472098223129529213298912516414915465913416015999284629478415788897704489019723327624451474278515858369814620603940104906356347297391133527407606263858348371495123671723693843013186821025421409660349241558554137264248518480508103342218370056318061588234505652788882267688543330185084761080417172169125930420842871258284703253050599871044326753299007683351772437100199059920347846201429658627521080003127107592612317269183768574380752707278167133864346687583177356509137626399536171584042789106538179017966194601322831170318734041412330373302729512651681923665776980179027902071546195451917822318667679047192249148347162786271512476203103822289587313793145421536407925694834619276829727884598992088886351786071613149346636642793283135723502581612825917247387653628256615375087864063173372156990778918337131832592936702571951565911186153695351752983675231932559534766331565403275721158916034668484722812711544846933909963776100953907663105118463694347221061267802932563522169151782031163938494666355330287059118303903608133834273477760544287251311103968156875288771143150894693585549640291648989198363636497030752308424911072087996922550325123399931780255652375656794264186433629638450248849324118997260101798928053729550819698376857947290422336952313777529798523524506809444566419471711650933214757348523067175447162159644720462804861160255326145188654169415801021290647225177808237252583117882578647989665495392607461437312268087892594099519554771262625246746196539959333487482101001850778278624573385765424581771111912154255791891342972337551375544444937979320325104373693257628753658717278854615645448204497416488951199468647268794820439107319188700645403532255833372417286792134407037128636253741163629673449190898254508558656696466125836218051210309420207581635568663496807428504066935684094234151807433646931719906243681761976530143904053824980663290346701703956530158783001290587795122618759421031097849868590097931869515259657257830759290983826197631432125694924710100201166814350146026234180106691746404569268026016276209552127913575948159744754589033416880718998208019557856095524198063581086269180136422590155194402608968562561294042884830558238715624944956456619350418515609948097801315438308285444190864630660909097414609278892992575570797327013227997135481100865745649922084086341548061049256109243063005748293959446624163807707915729985609486459668738936302714621331593088501767509642513984584091815338605898264627056737926932869312717086399133852107342010173835685939733116813820248704706967761007621936616824715770043044966411863415611313168832928615943098378742391518910515344595993203861337591277082323899626068265079536431378645150441820623129515254645614486954301236051421445548161631125844934745265837689272911885515172537947936552093451108965517504180978969720913385454273209377313337139312977629743317251608585964392972365302924892401733760978240723007487851720682609466888467095058227704591344252079810229810387993659845477624507867213242983873775002434165582199977355820605455859338159111278030888256561920037009983279233841938303322180185420543686350124553049454918446130522482643698617120634657070861105411057986949509429565648336549029640648970534059748224879650840256264349659693717375831782749553873296023622188438509164162043720875111984591997989433419463233833969169471496079395140731175478935490193811164792027941625862822369504808146178383878697662003374094209790057281155070021214894588998906593559236643552602552010740330591884878093756517201061328389168229612248547381831759819162363153419085502121695078161199557199682553177825686457094359542202647956535598861939674568120620155843125594157679319684980665165198845489075563456385015825863693288860090560006573758944001501834097157760723017649612374876105501311583422555276274766308199674359476045859359260364391119283152291748805983969551650707270844533217572864272425146905390845740038378917822393771538894348520015013304611607807144132448881850032539010086777169959349920005433620314661038154729865571278598300638190040793001220316409226147654583912027333534611688336174739010116058109190646757869213106640328096302308533570195650101347790238999513481169232373755025210675752080059523986590635355008426385601789810402388592760789177712042722737472658910242822777091921754433779538483376524373999419723661352343328107496292974648168965841934873870189463954355802543475078488189442276077680591485640305488298473470548496604751724831725519373932899652490816505143520725298586338374179681914941078783923802522807099183651117070036253848347693375753730109201128448534940756971970561231320190430741415931534619517169139375584884611076701591683801233317139741721699056721454569023734797289477956380108303440222113647440245004899987706045583578749966477980336871714079496214632301547952925681101815067536856632931700714967524866416234068435440830045944117944731024796591236179921080493520086037434004743901721745019832119594016618622265609655632498038297088214849469697668099582761467524000235194357377220448389715688445836285152790204500958825626536763366260152063022173776223933491215469794361307100920810663519801601024993020728375372520296887993688241112769173522562062137355222007029221106665628468625887969202805122763368766514069458192235188116803340606274686940259171313327176563113590376972325495500086955278845764252874544667999177302598381361543732641778085223439680592660131728484354942427971154092580714173173990566235317911622818726226023957465169744145761149088774107812736244135954354374739765678469188369476218235615851685495859658443221140471183482089045127330395664301875867212120544780977541327203711196508671692066132298044568337120511394646710222117218632497475167880635225120182275157681478283124966270510536524716667730360438813186869308856064013125492479251220957936967128753323903564025013491025533412951770759135861717528363566418090034731916853337429706743380531081039207611611667523572312119416210486727643095376491342159874641437894780659763372797028856942154584009083941568829420360589931079762616315351378587450835833547356982519087726387993163766046809332734087293989266500531910101988641553858119092457521470999236929501478299373786971929700432024096318295765472768593815328520606251937560880437799547549197420792421576262997328692101636029141727808135273502572374865050089098211256045017300197483307175247320479496517375924017516484971384333331716167412832891371343284049400325503172516637938390348471715375173616111271889141633335205843154506788538679786246134196043034935862885379985190084396767097557743855276329399521591466045574107026315137109337702988135037795282004108300422534840467876502350409363571417608206122729439199525074512035902241529188991611915170538768872372476944378125020927851376269605310454879537648261490300872342343882062611470275843986016280635717958514477827119900444700865074035928120559961593825785759410350603486361948848075764935936497305632627019657815504438980564416042000641165820308958347584094397304960093471535579801453430805081749355524290472113222594459781116639347324127279037470589777662348914867445466645708333659986086139886531435858013341343186282123468069582455292911647457576702237708991833491497972903760949668037268793930640790149427017371974536395104991440023441946517248457075717304682197502959995869359958025142250628985949713303440351896990155974131457027271840701881283349768045668553914026486516244370964528431815011760448923860709404440176872037184132805460888086502774104957870995293715551662116874596844866016408164385457951762099747962644379452742304515435064261058541971894770214396246069076003130398479561713398688885207169918304342606391499723053266093610618241445926657082748580019810248888235978470585462786910408749280821425342417563379841153816840362547764318286311676649102765075772661360512130139345728332808569694904088177647442538588935213144776300202431655899343492879577751015322287533449685328004467278681593582832295105926215375732423341710375002866740597606413024254751117050719213967335539051186647699005813309621987764228686069060903287271026431521999965777201494271529171267103242099233718863044399453044719968588653946399777191897219766683026159307150952298394461331252154834764932221035718783592772479913355917624537345422001208985236163517546047506390907187433878701752269350294022501851851057669043503546301851992695416830026892667944907035771628081279020733900499500260543464296625631659515354376045984096502291731538584028518868921036940471420717615485956623423813983589673783596682635186231640842619885472909893769886325355606376156044791969225209014511674012640910146655117884643927745422058323910037908714984691610607775130705678498415967237603337828070571132746287801719184816249135575677737817536610188891495752802100771993056541919554726203382020059332247508068506078532742253570260056033136838302101259613734757004167042141251399599508042526691512608989302839727116439460364001586921799194658370495493400097827380759255738330438400095196758128931188204826198196491580680751374060329358950848548641221183119004247687876715518524280909184159321498011204626728351039346255073676407488638547587123905819915080970089714376988091028301327349013288923209582328573896294318704635614699388427601257804245769656415188441823978043715972744725218619874529150408090946678438027358100182927472044935253812366539474488882786648740001412962455887793251938195212084006963636258058960637935793817499868585196823089471542333140240908096934231529246327459422397913019967523133736738310209298763807922585853993600317933682976673301287653666154761273660763094226733254666763316648287874915151130733218598055583939063366588035341558159961815022310551386353801237526330149979630385261119373679557269594686259311361683613389676358726390005627846122906838479588646234422512367904031735289838888755369877163084980613267308222022298333061886709027158832716483260096840809389823332922798248092593630803975696351486165410491010169105878466115202646873027579354023154775865630536535214128365471996632980242960704250436175675749583298256202163092470626905901326531446849530776707010332951360222760690907939135820011576371009414003049965848054706721170017045921357739824439677477132936649591266691630852303266268774650876443877854069460678494219911277673294527257891010977341301106031857555208580464569885367105112066929766336796286540860433578055395296118909898528599765633598356733387065907350799327273355952561123598885221420276649191255342174774417369793986093856785132864839690542091851281706951469355410748424966439557763557433540372468832223742718309147126033945644114337410886405539252381038741895811935086294586453247913183576820565486153491759423919950475566335098612617294009769962092304401865630428848463443812335405351564411150621372905386253964808725069688867145816820051012832512259697071383505364046100287613142913402109367567403876430702238662470312075576197733122433059292780291338408711187448582736415935559035226294667594815076264555726285501442983360314882159247643155075292885651011657603597587832979333570401651709447141957295739214531204794347749983432188853462486360189285990005503322834631687076382672350345373374366324911130272831123736695923770781469744494466738694330076124589177245517391076363284437042465667774775802995244607087679769608011013647334515325458149559059424196226917062203380091843489468694240852688331002849524243982538850117412769782134464757679326937950420069750267780037815220767454266167462492408109450188758970200632052303559163978757295756155431002724857719018645257729160905723814341023806817670926553986221589473345688123533665259310496013507358213976690066807675968359059646928437527616028671141062494283554959988112199564065069699301147355199444032679919274416199149971579784048639263410581183421709275483770174330481343791122134443231116155350942238098220007358348361192996708821438361908399849707843269994897576082413929129415974659037434958301919692374119805003262157233147932617046472465727698988518999905090029752598071152373034688485878242631645598641210589501889280358711379266234520834210894924438907104911928135386610411728566454854775649464312219805574270620778627285588724327976575558638226346085228959120383640271408346439219999062722971685609964298142523776995233179155422101003001344670873530251796177731929788201107466343434238710108657260285128854118539603547476391904725054163582674006482235428448565161685279899836280229020275983077310484817527447804073253534679427681103094618195942413131560979324411055268621031574245869874647149287830929898086124667897296025435289834462666271213837845187619844135156840220809204146853668586341513801308848801878399662984642056849775042426477994964148316258486118319550040077811276011048112091075962686924810954218959404747435887001646214070271540450991339647610380839095636139526058837220702225308709165917591275837046097711441898389482907102481577127454508717670658161978726764823904482134539764199023066062542457072304518968494660152589152597280406174855880754441301031095335269268956157918525034041143932509844018454046456315635884726269729593011194435965086955941249165605463348923325102129543907496798770368421467347227525241860858636839047774033433378111459291590177077849993796872193075224907882576148062180258848172820190731520610522174214307508225550962651474968350109127888886193967606988805240378260971782019780068412319805266077179505198173800814443676049906354446748296742953809343493830818621607718415796316040628547720381411015498089544237151956550250701401191993112595034210585188489263994274249672535506811497654188654129145444864625870321726257913475759601792085907340194819543174874807965555525114660291701037246237484970541553356712703068180293627809574985443639783555547624967125222261876477863439011919628464866122462798604834790312922439548782292147361593530075554736998088165248160915536607869318725611567931577566025419599923817051751946601429480410379756804659393896400301290394656575396558351139323745402336862115343384595961410872116245520297728488444397677022022501526515552713546275590072509651294383037577267343462544752505661740658969601518230729574145888544230501513715931247825500808568141732259712139456343782099937134720644908499836577163962569449058906446507435616472898004520017162257139134110879597054456953639334362710969830302911813042724608909265708137494004221672758577636983137690121750072279075161593563416683498173701116952163982344185612255767922304388111391165236603647867008256489143526912666303825751387477231798487539646642389105121015663652720000335726355345842406446679070983726230541407798240579517026289541031425798980297340228274787641120567569574731520505105242226458912072721974798233742696557442409537689247243480640618490449339655560496412230245463803551687057030549206699681888340501689776541220879631759876247084594436287970054163149412414015938174410229624144194938701332345866715175056590910285709119747678371179489504770642845582266537733669183980227666614403293154339191984234200363705928856670283678836307730667594101384043161741477973661763219845294732636650636240078229208093215209514760859202329370236345968712492900016021381168268500000410272550352067478847003506656433914535068536974841476557064248755514155616026332472102853482536553277774886806890461510993632149940744546561107719515290358031286681726812422615544772668805741734588133657954683939908709197222080294141935072579159712644352731036805304011384309374882902111565750297014064694349867349898924349667630285347929883756655435373789394781106663413576347940273900802214215122413192197726920748097277410042621525611303718165357911642724774681149257975523885570450586750461895219998607936608539396209440445244848940012394951262533123164484879828220544678520585387567245417032797205511897475904614528623223643958457750662348092645630314860959938288934742225528041565238489095749891794405666183845411228995306580501214941104536433852429897838065319990232286957363828989521183077316947247204411336821125658004174173629319542444128822082127872886913064860124710988085263131942391452722652654167593440215961911658787204795217177881610719275886479172180723273900483484681497611631020872798285078773585928609096560601533032131810552262741443926729644211832931021701489048592221908008382242215396078930890651150187605818628500219989286653052913895108044232955736812204387389348085939888588100614202833830662709183504386266944314108268526264196936621319844886175825808516424614298018577808493641379934693265769811328532067074593945831889380124675747686178867617663191695846262117977823990706241981077732097495224831559671867838194317097862756457910490005295525995822221121797253144890051052219462859579249684031191256075825090452844304074961078610809625476607343452058347665984572927226857167426674928434208042215226054182991508844512270795164628859423334017055523644355567011952865517623825740002393144319712249103495281053239828918873388276639298332493216214833833560968445521544471373310643868878904874615664075004118399598103432114010332238702957624986304329290107471761906019655126857852983826908392125473711589024982172383943406162106907908938467524337920540476061995123077816279579087847738763463924331095689060742982822518974466672016362361194934274887361025021819881961470639258581600194526344017064733957433370294998982356410679655705788889886853362073378090408603582950476810206804977129480690509759195090022063630907998365825516575224037001226287878542777703525122458380670410550035849468303188644232830782643642366043561162703145709097969920922500784618111954446809734464589229318771248387894428008234000112138549923107464448171222991841899391632695406183658176519156744201169261988608467815266476817608878782303683515640587018753862041755649909121847849010048662982343931856328593469727221751636262795664979133609825759175517211914966728414934836843456627748494361037831182065107668472321325184184349229434818061786549723674231132893564462441770567019383736203878515778754661258297784918582130660129886183413122460340989295727196833194248768543808693275935319775072792596890036244800929602017227456875318539043297285973125926847270719102161902693150332180840820738832396220827133578260507037637499574804659799919101072871175057600204730181991900839966596115383227837751772769400011672297469275239067451653462655985200728611571316294017036042501039845014342235188146113198021776634929708718031565162309708270963712049573672919817310663499697164260978665605025761532242046114597516944801725165218092410088689479195853063482234375219186768471228512209264383562084686452445175528367063311576380793018202536073008495687216610156754655816943200415742907526135999942855246354817162512300862548834507059994045981886649045786740045073595203430090755928199064619079669751760478697619320992894346410262059044144522629631040169307907973426832607084810800710332948950828440856229197471262066121275681731178504548251120489670801945613449624127077600166130593489636594986182563645262449036388860859320123295528108604883116525815403717251126740199328211381486434628860436895500372129797973759116184685435767044769210741390975539503931612547984103305148626866683641460944019406203078968702437685534198692255045144609762876714073799168243197171125794324789988490143167127669391539729908061070235584677194569865632208182943938813390472269219342200691857894772543149037647892276094716963599738925360930260113151854474064259329705651380211075265361179542654494623844381550925965766479804598293250069359381644677565046056908502479936771665424984290735769047593508820269853768145908301048894564806665982016611822294136697412176692933661949683857722581719837038210975251082040121469538533787772181120888255429858544484558673139740380572698251939735955983595319455846843732451925596584886510922863946614925528262995482284535588772811073008955968703348968002626103400780981567026207287732815157393102859317512128013888184705855367058319277981358865758082140049232202605573020245230094711333567288157090689028295262653134325006243469409269071115183203368142340085401893014596437682713592710127919304979639635099570702669312889887579387820638314052379364344825146975160614999847881305360500812869277862612422691142644862121671071903702827200001962435411894763145290326587168930893201611772952925559001293404394111393349257377167964343246269252743830834239534137261537328201572573471500622050400820885752570510739791512185506611785419023250436580915875329185755153412506216123534611981286454551196068594522004678140208142770522886729597684923905583295396839202298915531319223593542062671463902581509406380785948075729241025566562681481476997384334299254445763040357355040931779395012214471569660619825669762595264623010463654181524156011569605188831305588403132351402279613682339437903432139350658246083054002406758054241358153116404184956457556883660254693786368209089430065625206357229215220881881122507055965141396808915479014648676004209112106231197073993727526135821182646905786643523393416483983579099799577788341127774399255140742965089656367837700036635529222875763529175164895731038808860017440363527223793269100384614088068796620773346860806547303173576131590095195850878538516503217479390921322142026999818632560222007809132601501324462333963778886243113157985149248400883226436427263497366456185863818412457160454055991433257145307589094835104581819515828426987330683402763693868890174181516019643980124488949274922718491106135039668280668941384531756596726262134645768360158066150936212928997334875549716565404270542853005527606620900831249495162255718893120530127473477280129659647176448453161662634957215813339079374832051379964682142683030499325652756391186338703593930498357899109347155531250864351918950246686715289566822827896664725570721970683959845941727859175323906589044274536822654500212591176109191945182872910483622417926391266193050345254162330690223954831698534528586121981147401171093664398535492567781167700931782153076867364270163625928502046087026138440311958515328250037402402218005795235253162182255417021557371962875248837763689310307642928820708808592918307817645445759159055709013736558972940676026225174525981561730933382432811181638088098642253498574667810548159950459819944358239271295745489072049516056942296855337660034006339549838687298354736720367963442205651499685983838014076640993486488524611762002194978394134922689960352561070980133362778693062069476214562476514759229727888078020750063461247275564654012255891650249323400541170178753716356574809169799366153803013106782609855519233085945873606946475213726734172992268233551669734920162116757398536292323392879481618921030761313622389096824135234492398546223333966867985639117397413947902458766459003883859644015239150928906520189662780745309335959249919356754553141793863515349281695634104641528374507974903741762409113454463968246957814368134658143620690156641060400563490740994579989144585941380660732467885376506082197236584760004865280633339007681088720714433560402815847920699230415313283903145331561896136209181809423289239691193465980973658953814709090314860357515460698169896808155960015246846202726512768238175471254497176337678422108108369325687748394607005436643805251593800641983061335513216309856615041497478419647867393963204523728703390562387608298544432986905859706151652306841393262211181527619793273812505107579911180858097702376762502908117201351861001259664446368811027761005239093956150485034377793068687569366751244069835169144183069940516902661043654403728836331088425525732032037729308899295808154514493876931531515671717740105960432436941940716028399589480622421232834829876351378380100538573171921608027167103052808774632177391141164286309217656121379896029285952604635662336788074698132967406370903433982605189084532558265613554418011662860440723512147649417706763180306070351991741513823256585941716907469858216634304998922161958348391493827808633521178203332605898708247786171377574167956367696680685853345147191265621135174617112272972816804065959974343790339384469382665988513298605271544750489172363591034810999654892460193341878818911195475254360382177938882657854496320577314984424489886988830857424101882088378776243798234661795324804724852506346169623454904279443288594967049628131309517218997500436894964999440908234403806516581251374087891435550685410736691062106551000406658271111215252887439832833759805480740612702239902437972725078121890874918637291921093257074301611996183625498476448728438530567580316795756020329749748268950839001334004368810817045283741947837378648511401043612953254296413972481377349081786806441692845531243576099087819904317324672912272566305326725112788363047482431079170041588834158749079511058002211374864049197052859588284529763733536107719729791151614273279534799169677206774456811373007875036288391138300034940213144262281639134705767561999160195972808813969830584174471017803577682773749264251093763536623345023198823713960691866864908461463737372598823793741254427177481434907896350301303143867504862602612982974568508997071095481401732496480738345549534594349413135094349284146533580853155278790219426836814613322269761244186712995017974624814610905004275715713365963071038029128640237809894614361884114440818516596735371265063500949727237013373730295420462990278065154570640241421225369059528306382737261385241616231751292156193335429792390903399642077552066495486793325483688218429405553821297131419127985701610283080416323779914492620955288318634870846720518490852821435816676954423539250168620789069921087358559073315182332054633300122748442947919368106691390813143500156648620694125479532137160136651173256966118764206840204463921851362108133727725615811309728629713274607782786158239237668212791542085191758528937000604793223370300749324501568962021382117178279266723504952203593302406885067863931370428423952381839437717135739339107698529624301641066084949588346387838326610852599321641048641515555575374041143546832201232428345157339929220306292754927221223834844360456286820781680013464552243887623252343263677996068615525011542495749406444372066536352944439382851679340203277368993172366725008258079274335296763097343838095733099026479901602345494864841335110176308756205999821333667651982094092098000828188949895764305004279830017537547234238090366732118772856396401447501188208952534048457601982097540754688945402239396508700773271712784438470124022875899065881798876475905848246448400930409892219670466885598802233664244721533217624534459267669815233158437731260793383330735247308315898450091492401291480003668646043550461049953224691609148495551737983185573819213232960187427681892124052632343133655951540226375657483192015059224901405387676355684161900128141647942698829441630841048198229026895415300483909123010025348510071881730151912134041054246429888551829626917254058292413080570297521955216300116632936040459928314822432748251842086795384920008669147785954465629502599481946405609643545189771035366973439065014472404633535516785188794647882013043600831152177773305529993256218657780767195600329531406444057933553528381279301850532328476971968949487662374260808323248417829357096181066414421401505644063898653539984440318477096343031041913281061296029507347849288121849078356634983928597884129479043643931634473082015929305524674943952494652881444579923853137652349180140556630517424067324266707819447340621282554514410460571263507830150027614525579610178511123834211782676406373387795042270334257876080339080597418822325916913430674337434296262950581545043209873818116775587296273231788460042200381797699152837415076608446214354514759183349659631631555915950075157267995849813027111611289071385658544805320118350077904304262157083544502090416135535725735927103991100737910887410013248320451133535768513904807498892526895869545773177964697715673535448176166455473886651746148202092109749098999969374401397399107841946789913243359560146354868469173535103401469359185194031273559398000349588865513557783673720805088761408358661599294907145026381097811732161277137581468639532337099312857715453192662495515094828910205006779691404160740099421064001412627660795878357411847198674651540062368695146839535641271540212544591044271309011110210917625069767904024255449905519465533993946771140756987498751689813004118259442998373272725544071931896552244975902564894162216364433398353549483716261199348195098582025167193251894074215933521190366051595071729931766856982000199321085120253932296813469927166637029806113274240522140005280433254954967255535253778234659861307763199666752901348625712082035636929828497822553893616130274361349293678262098910708144977350793837901153457474302919963198725463111786335106658550699491044614261166503124546436759255818304281086345790926228234279971100551787976260868081783635054999140147087353231862704269362668446086819208586916090047332896811968692340244367684775557656703864296937349661452477196251511005373873981966328875819765315826837144992126320066740636393223229632934732225877346376590973117538615213187481014254841272328959306140749075894517210087940800060067088103590689306286160758639380859519354016616131128772919702411514007103920200179099308635125466184275654540508631328285184180267464266393873263567920463397826690824624669757992927409417977490341764014212315599709101975561205213307705509650434152867435201015022937700070355034679887759061680077463114192310273469240481669236756074149362884265029126583004755797034788919490901038360363503279121106346953423421567824784347006962656019077740512741415205077516969359095198812855105682069626165392919121704055715639778692306778886230993306177287866530817619662981083293746008969596754412092983098405522503596499673909100202133357490945382789380664366536230901997632843995653189739254253441172565532637461254460748750588038138549405104883194745626549561467872343708745437902669408501349856003040935205743447078811414360335914416235842684654400047335496609622378160993045008806010388112705862459972916919533500513654137515107988648574048779314067327411202845370791389920602553352530457732016608390236650463441288117447814841355533159243398383352073219549735585952229249750745648823043476085826779168052618741235003468148804154430848359630701777255329300533581780747131469979542763479687770132605253645966599054869453943526656501085786036589072115144845374336498032560645179929929965142514805475138099015379002480645706952494472850854550229229488830640658160779316017787147614139182033144038618546819662904318889998586109255292908983951464101035381396182832180623385791046344910558464838328448394838225566789798316576537761797721379222001134044067210202005429493669768378000778262863122670178593690457324594266846174721575926346490699765533450211756014872072240652961540376029326520780998342470179314654369367047550047386830066923104259237912132486268745071960368204180127577585537605924988744931518534130366343656691233584249033676199561245680409859281873407716138472801886691954795088478340848839864645873259602631097168398017908005186041486326198259609482824998418215993729327906432715663348029209292843992686431353782756318278257470472780742626740600539010275832327133590376602456625240327566337665830181195232775829726546923357832568148773783313005044365356536449996946385449378897414144751748890386257183430852496444115746872321725809037187721755880472992589742832047485583542789352007102478746716811259406379072553103929732601931607442485401465699736658142678706355686371793015549175508284315283236564832992874680419103237320757509797073058458900908230335141002963467067704749132864949702005881603271097528544336317621083825164038145155811126272028398075614359070047871936783213415936425914199751963850667878419442440644848086711807400805870954176525625960548765161323457165869524065596024087277384764726407230610688182943291933844997717875298978205825336942436749025833282259765636558730118778236239775036663011086719412390866427586868323938635564392803672268613161477578469296767787546802661185561598410325168571898923865780468507874206905653185914124330314603397125123171713256556464920093596323518560269797079288833344268770787276883175840567768148511352738437701870096422790146326804240591973488065156156560552216578392988705666711896888808381306321390292452464221027681406532386334416292779791158472783805501835494453005167813721951578967451865419983422446231361812411283804158809384535869551345920859203953596896120020783027765040297725521403491100826868854676453002699434123593640502537599607065459812114174979773937253355480640332665261134579494510745161340721880959758233373606338177983471272051865599443259804967590412150247437108764844652753207232981052377528308073582867691678752028265304608993172415793500605016826122299012595879045661705465226910499940204797739387021743296145142089754655749059145600976460494076471055841898329178059451384038339181155297108078804408214995974542264227364939425696249161100910256286070516246880735661882911453469809866862039958304425665799497543904336533442275035642047987834425724283805711766764981344499157851698631205167220506807183035036967817548925301477529934250205716640194900832770102336329952179233997012823334521088554078576386597647708332619466281869403548169649846943484097358783210260637690579896591190492222448937718172668693144007600046038760204566498450261420358599756193556106228813898301895939141119609149902898483492880205558820271745665117918426784386625725564072316866040195332704466499247962774985839563109111965959573698942031931959495871965649191484909795186221157885215331776185311641991484170282492615700733320796399482518504367482513959762186713099018822078309908563850931797391548035223296855628031807750621392755563127580484283978714141114597227309844426317401412545649463995634525809923019711137089096141451038860624777378924599638374035410347148085601332487852713625292504612910310724983124259454236760242618453296059655002883110530071731766305277131038315188225152815406596124384672818624850662696834539485132866640648502394581724453405511495187237020007039644334728199078873136039172446786998111374166250993456121206708647803418052754826197122585849454682548086195090442305438553813411895084545736410371586246390993891240465747688176519817568144348519186001924207290372011612772091647359787504951427633328672860895888640342761838173329058610383131432219431980146045789323097476771928008226531679527079440327280194045867313697307616722113442787868232719692873919842268086012620235279679712713243654386509167045034200209561467642643378473958447520488188507538697354574370522073254550956156240950124646832994207798878398672957748872984369475467772582865587579245874493066716657732328825891873476686321548816195642741753560099686468529288508726857610197902931261966947656009173375124395427727609356107194779319398198084682361887450939595520709332037380475915381909894827753867591010896721414975996487478555406634739905071353995951447333107625644725661794202220824800453425687205397786748272973281340352885781901107958387951272846605286115001439984300669311876582087227199998638764980316228545985634887561418003943573678742143948450341205670675355169143008708723487840826533752165556721001338255458111807850976321614737430606945621914197467930800339877185187797059780977649519919515413445820197745263905026388129048168689290249938557123698290370042766823841917112657410907023552396370823200074750509025083406450689049144188984892069921249180996381628620426499596339134467513587791209607895059932319337435716409122742127505017819987188188098956609030967697986431761645814984081177600134859420261395384587391317156484867061465359035959369635644883151996393759756513607409939829127551517791766287955554794740988015230781394738109055981385514925058249228198451462746669294993943853814966408283999418265785976019426344835842279243226332235390204130702115927996276827707816721098358048772188698065963023570519935171020513381289246979955665236109306055855799168394832291583936947031720612468221208929042120595684053310081862678795480625806200970900128196439709721441408628874473739797783811078597786007281688379525436777973310676210863238979499386375054955496464821736236228104782016553337578323125249237170629987247880871880110440711693649023816135651912683639112162435913117436413641563530877325101761040384746964073337517206565990530467272896340236110872158347346857029357788607048127050631406122034023876767262776141193110692887135828440090265866244015598417792516657280019916486074653861889940131671897542983715666367515856045714379379524734572817906203699334832262413379757350311062382887989069635127791530061305667639638547873368406159604242821740001131969023206747949940745787810996585129171604169946554034931935123120336135786426567554526823237214301769817142544820721563604444201854313230064654670154409404173608848112519422665411236515728397511855397396864521760609831407254945416700646603698025665433591673828830528834919708390523226475960228235002374695206387609934735136037466679411067346156648263650019019145413871597929881667046095785004493089254516218587679265443811212449535503022666441970264526481214227248806727150411854251535124246810322491697793212309865546253217140094600765056308954416605837412656609364250196667880925240272283736244534927953075862236536694826829693355280119150505293210324384324695660004428114579011049742849335362288648149897184192697467651585070914656793573517208807310186944034475925048110100078733351465188414845335904694433894685541049683750272926877291869991408806062698622483683150374417796573743688706366773839557741411318797785256324759449155545878613682318659158288406236241603422753170463183857565284533611276537146696418994852005800701955314541446980777034181491623764123202244571420706250885309969246112843097073206523691337661403435752188740009412618304354184442156976913689422099598525181531495586995652099315705875919314657985729360918269469381587975223432546967678153436558231087581908549870553642192250074109958697783014677508279127027994576211331372347359355755181543343136168891816973342182792915568037284821692797430369741833662313703554446932717117540949828743626758255407297203640174484820864804977312580335120150263602389822479971030918647676064124746649001183803257396920593556067720557935806223440238475308767191339421297766440343165844986349779004139958666427963995074956618491001613846088282242740841184879827847810640683432445260180741610425195569698072728216091752475028355351694482707414317470573113235310185421888569366298149027256546257075267101911004775465165159536240752387225728112207093310215006028150988676424013710951461014589958163843440202917685396717422032368404433437341246558548322887072469397894080141656498443331986214008156807826451423088650807336900982786500706889079800008125942921205554676531004489379623406047316533391336624327372721292418304274175701627185565758316324763039603653912842153418970142075445468302922704688803728442748092884161391115835118232248212522099506894143239871443894501290955571951521866031116711691757059394435360913734026271329459362959471970212860686674569096141598510400380735483149912062958216520146534284563141910644192644834170947353880523542290812016661829048190567801473450429211754330655014936562368663744715520060792100599553155711994614999124587927293508665203131775797754732241298821197075467575537526571901175169642379398441574859894733844310852014341889932241003523330148483469577472985462407797017731244970018690533097720865359281704109726394621114116434184018836478549771130526042670390049520352367041617239075230220956971157319159098570010141397091601168618288814712328428010727607307752814437459248752216127578148103586452285849189716020112459098984389000210672705781482665867541717016395793617250693730281158054276506854248775502368162034594072426514243584565904485058653200711640438365201237921451252182137015282692155464937752222455912696152674779672749552001967694872781979019762280599888629181571742643893253334937865802587229083810197733629658361367588459027566813334857182311105207235748364945237089556722247418580361591005967462727426976204578488899470961367957275972147613710369678548968978708298232259716167856995607029408173308514151301238834611140787293056116053119301073771473785924102478405342572608828671219729394555420733201721560774458956217730171857854677999071126422685277586314226185720133924025273806253775245961928149514572813703690396337895726965302795767518969536195581568509938558806091572876079585147421038553177242420083072616266477178995414220044749873081620158760061745794575322142301026251879319359075348691027003896419072019465067846005304436259387036626332649302895872609269654089308257609349572827879913901025806734372958322401911147630915897006442318551573637174112820413227435991389100983440963063686434576375820842699266523087744432878250104875122828329178567950157047996892129073801571499497458982543570617561428904395118891913177964108045075637951304742917149266887868475355649538397059429875570450931649871192269580049533365690190503585292184229460342684725740263692474487555689626125278387954569280870091090103826105778174565726064823102447332623399116454535850806827821504817629455175760773990191212864517073575533584264677969786271616683385471932276843273125506491840439424464353677809430226915555908126121459617714634960631154430725026598491123166855657770370460954698897136154480233078212690015452377418317479433935656821611594722059711950939571351340923989213628011547578009346488929975279929457542386008085846425443456859508487864212081040813730242924619028758120777897233281646264831266904795478137018114179538819022504192897052559244780386826055861467186860783344148488085289087011082847470966795689792680468210381173565918877043855737294073285602143023913551643209625728339497700420291599088969757679241943950511964558827216132414295777904347017486431929924958978420338364735819502877038935297333685833983905940706220444648951585892850937011909049585907325324371848896704621224777824108762123194430214616916838006200773440211295432439995821456206721206893198939334672191246536057593857685413555590280104629510697909095113900564266751278249724949733525482547730779645199892669038136539768026453451740254710540549813870168099653066661172012249142043757261515910470672169068402874407022317626561929400244564451762320716218644102496519544540271361976988965542044826261766898863053165779030479686731312626849949266922934271299262744518738086811094091807688274994929388292739654653193262994964360267316865446856771571725814437759934572580753981182482759751597965279298248201918507307987588838338669716970632573185647876897988312908992248729934126768575913657827802557340597958970407303182500151715039267476228588121147744113310404996982484560600228024570566988981521278877685682434888539058117517507362018503867148377853305491505050996521321548544052821038032873819875445554616685680797260225254059241568251908512509013558015306806965051356824605024456155184031495678683343224735651768920214615109628279548598777868011867639757834237325513755462338566968620393390931497991244667774033500423660791644722653456684311491869944253552740298408865555102578731561766066778152352908748784393135245732992882550046810437649599548244713509723489054036899490384356904448878887079248190292277593854483474652619730812717191646698202792679851993525777980742666908748032267545096411342781786535864583286568405834820225916765486497040583225827278077218097092515226504034072465501714656531927094138813176490064357556611863621019769380930215068097124507813675098273559564032267358947652792712067118173642136274690818204713999729056349253947975467081716112749689246862766830746101240444756362153888256724567151818497086319646058745620943911381052352420490657051192222429283166560654231029761770090512811766854225807700916831952682388744602054387989784603629170929641561401705103004702225791622385476903828997614314469782942365468565742079661746836768109186093738510969636483653313347146559660759238663703249322889246344095425287289086390508668854802675137247161008104754125526825928050373519196058908322406009619516127339542761953996516294732981869083281437981214671490693937283456722394216564218191862689649615806732549757747653452975375066717032871105701066465312119423643635543052616375879442635192805556026638293108941057123640661740291622815489460673359327478498390141215551622874828788582537318143085728666500757016666695837421532075011853781840476602768289218288990168255443102378735339941366602075696139648653141889068685975744422296668797597386832445175922723700694164852336775158527843909257437455529756163028341912049287468630279060019629316471699525131555968927182379337226188713418288443098303968055511769473280170873585153032903016065246960283295081728430030292778088129028648282301685493588043821879218139836251897056156705791902585129344009840756915192888399197379725616685522777604263562541891173850678191239506566215034521962466308508191576035072153055829072069331675415599134982040385193762392931252004108904275392957076684244683159734289443799080386441990696674122475720463107200768030328826763120098567058645575358648267729028035752680277990715767124350503249120347083917877326293699065634078775311886056223498958402176124187527636911047107273638574651684621498334519813419873453905400019627894108521801500265945005966810380158673390885078468364510027807938414881198400446443466285345535839625942543318127724454893548632491704529678338603139039252849114504006659042243907811972190961043750378613307701491876485447504949126639426371361063434049796403639920579212981472780191638438706388187343161404963286183322283295427219231594341229140467006232304527552065559721182027056142140276065788589709653937144475638259001738276185716697809868265160692749296310304795964970882004943396760077962757262896251980863037091097212091087883735299104521041298246894320967309357679380839612500212574790395395282164145022328440919862734450891397966477780856376430802918514939868837978700382907908206013615256890001353674498259385919483123521227412353163806699343370235197864404883022547413756940518201563164076964637831173669255685344304729108340590767045706387976513452511021106305998858166512481459804415511747740552944937207690259291313133529494210811557157284933166988454048535464763315877237803900728788948566589531747022824742835832120148505690890925413976911580135156557883897323020637625671305334487686809520176865563052437341127061057099667082629499797658312617267072883580641519735671890607467915958748048904403548459670498696559396807816466691655645185546796712019115149939838596655862474383823004750350422808118593120659313686748031499625421738144459795089867035563564659061760381031683265505722691783535342365305280963422046584252048442272125616233250831328103738804825855526088222963696432430030897230948662574033582366774040952623953156539799651172249301964915210840720257709607487338113995036647961158432338991389170675125744266152401456082678349946214275738612219445205700825924641636892653950434527014950368814206328667853841635957165489895731665292565707742100163102870682091463808348291006067451639555740097846437109746679353213787073364779270259477484687798283579683705173495639838781426365963820237847183625689168753590974144784435869664161269667218853681703458897348989334818299943648851067787589408279549050305684591864755929440821068971946191921371896755661301495809068245186757275268799537142970426240063878973096822242573085959232408312244595167200461535896175870753647325072702078516807568653919077794110799280644033987116998249800583825131936762634592107156792428221095809543164643110431479660874024257236748277203786270878836536182744719343586863442094147789981328364078885803095480878361485730072251552453753129680237463646295160978079772788162082399047725477506753284338494945475235838770480235025356704973320973293539007965153414967891519685996581020713134231588567933433910584495469139900530917900508366908993383126054898097055568846075589432449148075858649547358698563269500242665624467486929396105908117352121631412493485856271460659682490263969139540694388910730238339120396511154021567408731694572353590125243260494622906315945298468045315772319247063649904886093449165504476396341043462089027228185860742580407598404970975053495467613947630522048092021132954114189358107983175107516736906995074491014930128072337900282311126940325302552294796816001423538632014298435316610763555763691903965578236244821720514933011166468289570245549529940247998665494420955872394692009492695549694729846635506624121481015779002363229114029809655391868248497646891991224902070547023633593660879165002522828452825937446270251269459660801197785075082731505141807819048669461710705776934863628249069929082215044821035319729233167550942785211371435951133111291415374634794047747162750591002640709833226041858237902693413978711699048965418303668773102045262411046301893544908070793438276632419879544587697926281113199924741087028104160213091905091673611297052223683040821948405261176334852174565518505568046187398811763281629563427274007588951459387245962062742626139665196793333978906002723476344861692614406833240036703824684353050691245128103793205509628465515296654714181922436177415786815297819460522665419623900482447354929188540469794224144754834403342141708505829588118166860521147454884861790866321040503375222723007439890120306390279749038878949933066987356663190584532579632885038272409600361632468423421522565339130567414848616533388899542709962653384115560351771749355391598165484828113798712442998472176206318948179515075020077846832555826462105155624570914554357318623922412401427509717501680279999069160991558308614137540756483980287048951707863158711653729705685678083524916128209943482329964596317978332593100931763839290233971469582082643177525428714738738866414895104981521128687842981383313207258610878747522190725974670528641709536973890483205250408162152772278765021059655889976685512192747855306416782561843624476940062461562734417562910200953055697408150455873693799179938079687480473004694676723353432415087626120389315736306453374373030654518987761973213822458016797879922307738057334746814079923179783503225736327332009834262596884962985632853878071594856748477876198227952414836111042854648969550169301684941479808827952693205751467354622585311558824106461714561855047840488116648105490748608739322198820008422574891298545018135427438267192770714025268789906283446224177038147957638158156992461140438849310750684901697470095944817426515707248044723055159825005914765262384893141034209986707654941828007157478461003371049042390709397689920747670135671834376568976320861631517910723837064737647538238134605413885323219561546132335252694766853387737998933683919443687761847528019973453841891614180081679979477907009944357138383461304575133291615401443163862233669116102625826710712718780450807586572884529183809880983276187354991578957118596133839435062764854208966696946512419460596615934611827359898911818333590799182234269464555108915496610301690136692727581325438892259647840844040563595991232235502799828976062109967817164848919486239123675353957447791409290562319532931433706376586795836856785573754907922074329407214284162347591728532591562079311522013496662336579136023858218696579642020420566145883465489277720522321834303991227577914337446913130320635999757301055396299067473848190852084854285768553361461165188823124764620171021004876906243398179956629979123562297163323173339054337699741695331140236184101543979301874101308863063311060847682841003123490412682863703851612448846213160991997010371192156197848214721258037896350097409731652657382458617472746465301354843546443169342426810125439446391346331983884783541844176133734841608393178253695662043952029633189902897244732382531974065512474576486034564232154874124572150664739525989626847371834209107285446786203484458779761387925228675662944117175955904456779051666982269449109183211278430076609694827845527351822053694703885916770501946898876399369241537817986736749996127048226984432977883755649404142145512532837183252103301654358162252009367336752173787608832030096613459229493785805751333587109918994583719717289048862855072759183333483808829177773527837949008822789784116691663570272004536619835336218026858398507930946485304494382176823213022676798719742506472789410663324340355104062566203066835309614389938944083431749124236429074731825009133654497676356371227478197547664541309772915572790532307942095695730813680671507804187062858729770666324217047436579294409361608891844023719748799747494064608463192792452964266406654305185992368240357553505957175406958886430837803563291194964693429925433298668874334971995937555070295838360545108252385540009646578010462414708904440411671550397264546348361591789483073600917191829427251789660764722852939086708221820262554392566769899727930113832360392048540648528027418796661158325780601188662806905381791636365783679446598253478644986496421035429977521278180566311540090642364522704858020147325814816990015060449856484857234428737844507403199296924843285829095308369888357392654374060035683192596174542606860514731573582968126388606404024034915460740586480140093823335589684728220381539037411615640303907850181943767519581337118846621111309832866837663350095315283712742334547927756145643332505455796566331979753855038904322972881834650775838863951814795155228687427500312373554008577462805920622408307100617572066751749109840363374189243858248759748628285091010295807328696175723429123250742728643769758501265447746540427491159916465042382001780678647613230008726341512436966696953350197807383805869596498988365165907166730290635519463273233809546992085503011704667148115062651718245294441908927304541345226157496268641782200823913375259052274091552978892542506406662708539044286439793466387719337252698621172743007367977346693161283804432098686081552446179176821392421414249955335855443219536169204067850514848711366801799211465573113381023019475062871376980245755654911453993375180328940585657024461912320904408356064410598287104231126169069243358023519352092381911424177236224650120104266988357817344767614294737766803573438664460508562641739443189535511359665807132313422484400817976266280982068924256873588556506745866111714342974933475505696277885002521766508812201333969426033928263295614912978682618386780688111065513502783732264148772732699344473547046381117817332321341004848721729541648759080878858113801411146661083589343760798282172721916868235964896503422325107175529981517100421885323026983301822045724106674912992043583284586902131798323052641171771843719497162552264954895364071717786834671015902546825706032599435651476238146852171496564009321390823451604241144887890960227830958234418227126075237540737274859156119000415936985267827403826332243385741522487643726651454930445193254943267501336156761402535499836782157460846297142974999540070319372623562912161635891228244681865728673956047265038909139180929017796806930803091897302919009292861426713785305754593901918144796634927875282991979035884441629203531318979468654014116233850181670482151333363789241306388430477001779899688177542146381284305217247539823237829708103346274564882151683593937548825204391283938082544504211540426816558448065375659390514818430354664184990187009710430770279402642683274639316563566646331066178548923267913522583396214429701068414753685265813204720116469742907106054400877286823442315749574344092142205571055579747899667701013278599574876113438605887842829933308736230706775051937331822677091884121633975184395231173201160356634511259995500185026241015543536446803017207067862714822500605336515436799085387621200109403497200680606476932574909110856507376421553335598991677770747974450941505861429441455569595532656619625550979545379616448786197693662305338018744511583653169675711067629780135483944064973083080452393398178586875986081030862402090112488985208445428756316593068796043536444071954523035924351395113625336676579885557817554934102127034358212940887944700614930811838507295532997051249826694516851236407175883953916054109716644496282511453374709781335851405430154608580151873946321224602639233786489403411036990694025545357438800327741621261040964198332997572690263215152987438117033250002323176808241016186420008500058196526101549166920195856178176434907602743366715914942685620922420066222997541248681018592112746619320591869667285162730289421073306647252533139031244044333093446659808408158032582455092674336000676587702692556240065347509510848172877863303028081564339429781642398956274170330613929963649627494357052150110759778078375108231864902164452291051473307867152172301993114072076491569024520834429454837378354138990198721084002327838913637767513014834496523302470677757261783721639085291180589601553024436911046066107205961848934339217692261982095350525540127482886808719728318708955505933014717508009222249171463501333792745575476461067935977429408356420781678849574529005833075101719219001269129705879521441590838683487657893407952191571409575194603180248528195760775080012366162969981280260189098681695840720085087985847296460793584077124431308107731179174334661501421548794103867155315199955763542878134175775060874223340324528900570308174997630664796286433772181831730689249331435088522148987897299658648611474522825700300308673667575766600589978517392355879358566831781876226282092188146463801120688566191447395532348806099210326912587448540795884500896429482179891233751811680626771918030287272508818855083333269870427422659554939063916523263480165847001421776384866626471966663420639240362766500943036150112334655774483234210002300679093662784555470920430313878327792206770996763904879977686202492842111372839557959707325578722235567667946399649817279277920334703578134816788682879814464484742949677035018936450526400373453127477056528006058027035565868934115097516228395160226976707011901195338167517945389721870946578744853122732244185088396743610495113912287941519847864254264811111814591008834582418800437964623860352573425973963446657496171336533554132350102054420076602918292003607718658583162609016324088883083520357888547369772852738511558926457199459755026037708293173261742455271366120546503229511963569946314479943347255008768540583539283812409593618171933641082279256682284058014313645904843376037710951250952369650886946980211379038029322410437922365726081122182540069695117963758812764772747937900663144719497509853066772751868356073728645940029766277323323076502458639818396693504222748945739940063752652751002419727059447648795857626530249614281142519356395666543358491955295336462121081316837240792562646224179803027170303478873319887149870356208764026579255885717578503569965543711987173718886556616400903758748917543855476641650637129742594943535557472688988351911262393006702127528264820894254957442100923835616494095844247274162698565973817379799025551510033516943347086389522338833579836806221769712443289540531883371926290352059541459002269709287500311189409076082278214337095038369464091751202653474620228944628576758822596899949006072311958126565056930535510779985305181286569719973952448992431384005187025000647071432869233216133866976244946088250460025010381180684436199781247213325685112034341121621823243904144157694405235303258429878643841613868868089237868549323473227576513173888361218230144131234101834014127941944489299733564335434127300589742946159152183891123580794645998531187099120100909656129315424202399022542744945887649353712337179780895686677232203726031589858159862339811921598951144477978509196885267845931584182433059012806180549668177750265891585327593686467640013431334514513494150160608147580727186146549440053715323938032515266023984900148102274812352201424390892425474166282067999698904638080350176053522625640507207538231625688615844600627509919649297908477299336398849645250227584730340802247422616278825025455449616669800774042470245257722487351635198264431337920064951826211907202751721045536629288532506497732237361042096411834355257803716176670879893215400985128361104465444695038083320719983153719951261998546899484267442122163497812488550476451327229602769801455566421395319991931745015108148906668305369749253748395447926613140771631436403327351342715890925346491505922707858639501893396951830985906117308614923055561015386182351592542742168543681485222796214415881078503119766205426615168112083684446018740045802131391887586019914641672647971175013927849449504497775625375690972145582129472177253603349563848980563524723363403683816358643119232121131610597164615615290787315399977591097929508603631468031546357657866276626554617405055994231324681511755007939286143645095298448942589501230827922326429875829601712945668094934538359239726076190384373273444247684358649107655284212121307877110704163349325190006562827635301162106067450417629583300893575803125191036655938602510252782435136171049703867643504648227757318663433108140081137063623563379261551802263365779841367477992675261569110882452139886165170154872128181798445160433901944066629669717777931024198486796987938553558641506980406410266322924633970149059894191783724673534392489361426622980761887234085704043334900299128060767242296862422172525602607518922826603272814614555075598002081659858375760129541436258520014753656003467598916488284408151138146459948770851587939730035079942371219630057473082430444984527594257021872178536829361915519524396067801235791659020707580409487617739935639889417268771408038776205693627317258881064245339938863923023777481442588821594662362036463776830372784954523928825686467998282500179906315593845376360390559773628577369728227922351864191207921216725042460907726960127679506967451276120000424055529342661419964107546425900127505555286761842095888775996259213202084040932656202367322937082677628485777370015923528526210045558518221337855996785777930672273149154994420760344306353022021388566540576893768970155211204160304209940005359685392984876958892784032722033515026390508849323312952298744358768787551527783641628691747288479746635054024213812537897721320969680150881314111609516730323672550075585107263085437959742146979279845024910749934264995926400634793732762871201706585112619293310683028470370407022723421419641362121874245466423967683464783570689806446549892311778777031242028969424901187952277161967009576129543390720950430823632163540668715231185777361253138792893521749722642558840268688474668693367831384329775447438930163325518541699045756969802354160213718345761214433892360587991166120763392398134048089103472125151784305314909945098254577157998455351428479682923968894308267057699368439889581706021426658990156994428314872216580780340840263066045592751348550967102679897596521447385151861188880259578107160647643592408670748334019719792817740553218060860967290701669309812900674160325109275010747392546857334765594268647035556819171814025493344821563611206832606816782521471277885727857626245687515882852711621801146684281099566609168036622811042451592286245120722189945849005161044832767379968379267624023346611147660226063682678400782973403492377886100669195722950203103534562658078123024570473048298578256097169529311270418623408675405939433130588686939134890709067207035879519071336136314909968190503756781273816158160445138263635648682866059214989941861342258840554733704328290160491806977994041795423333795835919894240429222405583183046552005572577868416173695745574031714682191140909490022538778655029087663531619357964694301372207022139409197243912114822239351683041506288846971996375878015267660382340412389542629039594977291320876532206713773372747155474304227852415068138224445394629528874754581903588550897467795320629165490852092372141131561816909005565252863332537820167991999326770786891623413820247873231301867600428553336859967687895378243188756941238964232085588338105050617971932165770801605363400655313726227876032114499394406189453775164358909758821179406261464235927801260556959807338610068279342047849110285519432344671367692986900588881124227197213005179867070041998205131360056959726516190730248516588786545681416833282175973950722809746197161630354141531898558911947727144527903911648371431067211471381444321316888641675476299757958413365830686466084067939798844400069146744057769762878102422509233455230344543657932066516297766522005166748134848612884818741427101016860463585478903906818183050375165271113441776732668973962821363527657533943111867814924176597308094937617214305315184634240845220743751685194029935212603063798256423359079366843794471660302633622331508343256058405210221003652891161801498195916478541903740468200900245766297807807024725315654299616794074578245740407359762634746450805809258015834116646283207216706901993377919720240668985013505360649256428308612175881000133507902136558665705058396151210121068752370955913725985067037784606349381938188380544275152321152922594696469633327970585505486932200555961267673829053630778645789652422973261988769759125369117377925650273307410512720125402188666230580508096785778870384119317213781785750928677328602287942320037706343111797480649489530361133037265245188707023660431747776938821943335273985198443580043921911749675009135171274127651095131364734811826737576553036104189240762044709975658960297439937706377336955008731692519754045462480452646440231871143711447662224161653879857456337127503443361682348693590292985910515184390893667738242518717384218436809943453250078898916201707365102602194987344663406532259053943231816889821734341677061723062319652291098413907919520330270653334667446045702004207275554480545755297249595564260177717468594165097264449835719040115648046210847487897472643404362040419111337833550370483838189079218229281849391187084740739309121221499998231725614679949775671869205322140189017247395205396250261411127353420841280047775668904615790512553247469801331356864025609919756467552142647511473781982003910158477696829458050713209498292034352642269250720489865432884352405872050332510125263165039487521252550762240982392369044806474827919714692134950142185034178645020137398861050985074249948225079367596386714858418036736790156503780537118431702656675797963944265459301750579109051849391338563620262133672612979603192393398581370537869316605072369930984921140031691290226564737016337545396657182190697478802672108835297376788135002817212718279540508548293710599960630504407246917029108320627280267070935459249885664541317349408146555113340139440481215702901455241248893747842782524438841635664793797716342724523761383100892249789644426607822755881944811673475355724321216443049310556224280572327277495225253383330067262934683009229370549935376056165283241347662254898193178533725653487696042949344784425222981842748070115912650542299147218052879163632693146233879965193496433032031271276379060681306332894961996102906062558629514903190359892484572246649152218521483304005707720720405340672796672825517942045430770279759536465772702430945413305861419890185144294573878374793753576047324914830036126333471386284799352382578571459445770780187081300980090649950689331636357160784764233132361903259940892443079868710302382674185914774747248515291138523428534432861582412289747580210003028559266550093884923866989910892089875749300793572553492435210618723916799968510548313554362182030527368435327290335750152317362289014382244922275952745590131131260427869279134612018910308494718227853219497170692127123168716738423876037409484681039015954414424172078632784805721063847625418523252715334360080033874687719685629940680064431485619460520216629307968638738133228715890960571483239487284114672612963034676161241905928144022407675740182007347517960048818807669012300975011220471145296891552252592415392916793289609227949447522896351952683125330799453022534913265388248656421625722467094991921720978742949021030439058059788190458578752524998109781367082928005693883358811995180157607856643443868807329602449721940120805116755665808805634982428170569291793552469505578748500981905283279580254022663950162754173851186164979291549008124984422649863501253171918498151897022441686225467461971652634382143536171539237832003552366949096900262386030425821512622141361569159571112202027501916485743480396621346672207204299411200919713611384527871142843841089658868700274180095790083025045905387276536833511373235072321496737780419400640842154347666033011717745993672576869401462724959039146152395361965822510898784980428760230815482138294152514170494525341891908377462569205716340323908341465473154717582431389545908238040502194608296770931783620583055720003779665481123177684125005883048247605964322844423853712562948371528002486489351996980402171274107717556338235976201067965288491351458989877990223856065570926163823415521810201958332731897214201548212244357024440382110040906668233187697486928150778418584493394650464750270303515345885675070325851684120178684103734828749602153301541854636712331455240401248624714850914674119236890855131694477569599882495411600817851197838116358685614716959439176431196722229904279472542814874719672317279511821504157603161157064465201756974296295258953842358804629558453680720008164132694176794977754531680262825511234294314246354609565610201652326214493491701558805001641908364582753087109425299359398429743790709444102157702186477606307547918381517227630465201584303293856798467620002114520167188371567090108565265526051032786187601315073380123709060570013248779073388281729414025827524024692137323548809502770814242870607325811370133399402625686155451686202392537981475474172599437751350701571270500155250939076191925614744082907848725538878472675699753742396303913029508457742742609182760405124340721955171167257981589994615002046062474464392962239620004925248071330808069289206059746534238366149750568377675761631246985950143658553158613197625910368063863876800714739809203583065277254800441818935215081493215450065448878173113912190468817841826759913884838600692786882804272227097480302623278323205109416442658063114287356066961617507174855606484494461279412345148992737145702703931754269558245043610129888005811979526461880271698083282523575194915738530324871414872576137883283962263123220222334162440445374126032558677756675975156219500391671489747812990032957914836270997842126985674220888363605319868193368213797905843632079732868357237584509148884854020486369906473077682851457395503365145575446591244643818360017364880618997597204557958671872686450991817121437491510010593807036079461440051334069828188402025901366687469125453667808926557366377224936658101830589144045688923034019129162644781930268057276906883890298494782201001707100395040999583334881498394388657796865654318687161917076110162143869007755764848555996064485505345223245256717354444280107317416335824811665966568573668707456146385327802348494010032782447213535165305167308863238698896891210188177361729147702634298447122306154682794052141263605343995670988882334785201695850587451077291643028763032386614296549454444127634744407196976267148843498682232458705399443555080322753552077347514736513252391704169098606383191819579659320855004012045539842834399554082392684285432498540794105009273574835439211918534360574246801261371732418042659331477700068616726200406345962410475262270452054027561273248343394891981973339843589926866440318406263839547999237983966911994029883082679365239992669527011411876098721938781020578971057349747351722678963164248162346258523574735642500652750538818139008354958487298746327330823758207669085751888415794046816411997527025023725618911682803951731611305749194674624498497012051241264461223790161711434201641072036756983920329760922433728689048936150114139359815216241017739904561224880627034970136041284779028409901941246493848634991291726963743248652788476901520256307579977500948147404146803099189200981525137895247814435074079315610269831195937966443378873333375635549326235841069321179657478532313291620031752545900712182574023568257058185545122281921282154740153938663299571744877076480238634646264781910664728113826435900488369202608782647002011530407793258998366918640550080069646736635121189386146267109894573350432828377625656228881419313870712949614750962730714201321210891318440519897120406828982361997512519833376895384860298740779970879102993483647519387931248748641912331523833873813103802946340979791976738439123097598877887898458833576527362219346679046858957955795641711656534311513346335646206817891574687707935325554442878529796112220356582403749036462229543869673740654695215319860613939300866949054316789064563011292994768453004968902810729124074044815947762496823386869159171932476489568555543015891546414060899526342246683397251389475264911890894128353036624174605456105163977844705878917347582581701625155011349343916765034274373635972133760012721578317686355152159520226446496492609780480186557049954918388070970025425685770268843296845046246654293965362126705377881354361100638998192450465748730711278042172763241783609654007973816630191419859271368297795933574481194269257297847303745937728807407792025418817118414289152495178889245551294540760581857218896538678510882603024651712206221434204035776191445226959246238138820873448529701595707474860012365444959465098070452227797122140057606477820338553654915882554615941346885900848560694269477358263194845335150273818135132233778907558677930314819337607860821621368335624541186235899302917952378990367138391799641664386809295284744004375321578999046526379096967215585167239696646007067130403545011259308456057890600354212987949571460275981088023971004467669998809883568511371496880447958939285473511293677452762559059802686421390740403328893943181652727496185766640906771210695115743794787655242483947358749624109635863580033370187408940105950150239020482132945837678841321380059254054564434723722536164600261940322232885050177859372082106336045250352374621635903990496486701040650018272789178745344321641709148887235244197938689195615656858259030858794310911898290885711794275948266338643478882358515572367389552486138922811696708310960567135754257016673490293144209379053835144133502461887360137934628053143743055951330960390160478760313446930784479101459149543500592028332263750146053090634467358155431257043460227906544558959830231597188645879297285862211733941210914999978309632880428302285970443957927552380543862845671884151864057268708313185884644090172897835803475316844067246931852175328893186485220402842620202066495427652576220560387881892805590670728338599391218500344879254539190183081872424427529852420097384642677649507721641096266771757624638939980150997089478479069570261616709999756983565605548453969618242970838844986593837645449798339173989641963866338987365995916285869041131351348814317026308157525503308588850154473590489270120498012333230138761064606984068125809894838828151435919342156187786494222807031099959083238244667532822079947033472263933713651858614762551519875396396972961060721368827042876310749639335261243599081487147067454479897746462825356845746840446731018616042006114053692262983539965696792181986853608005158296658935156033905957600588047741811681725308627235631011516467126293376351174291480754853719518728963271822221566231070487530507838909858156269921896765701500380698930270301065201605347716485259882445209660008932972297514915731352591299393891857000509029288393040229138679251836088852821365151864900610568921582278071774440491884281575375961308003763234212225864003534233060527848914286413689859309678649467707838401692898819772599701713053770529601951948546606568669791160432667368664422718077551405073921463892254464587729066905392138652818289663703453579303397892508128191398288890687378853688028471935499601219717193641646632150003711121628019400266028625633849993411033513895466895863870636236046159939153682268049603956443161796131563471089980153620839888110663548136577967634676076544424835093651381090824410640598551543401291804346824440681307797662641709002231441174523955082906220937667551626432250834806551163987301046230699013570885178736370592875235590321941136223040193295972667361684801012669652591992103739173991271113287341562303699003822526703220648835243125437166320889295048723347167478189006295437236417838176666201901231892589948357126720290516306808208268714542567028335797240635339463529991619566459057432322037654243379611944739884174676129995309149635043241907776929875045797917187164506431852733845604336179732762402348781423275523704887366574143242515600091214738266823694387714095981411661057269032840846955785979090145909413134031721562216400009630753076302383873588553229057438995729226721403662024295103202937444847699566449230860775718715897994702308068984947978427380267580244251595297074769037681276363629228603028374484656759771878650622237897236277747714896975681797327605253422276837995429658750135364417491973892394362856527485669834087117425991238064011886022120939375063157450770934402074918926233595322188776830297905091116415117921557331398449325605685545036101343165806936970220883455970283255331243654630660372994690909751461938859952590745328952015409134045197931972211524514097682909189391049807068220000635388446997333416940576525194555070173401266374164300500694734881463131403609736990931849786605374824045004995311806021093343473241178111409608217345570150854352889282532327347180072702946707617992343223546975978418043275079504991158216201143736768540619569874538956802663731506178349907255605037682857046661553690959771931122654857202189595211305072092143703121182171968498335915395116348061093512307045925484212742455265107424681773303778743475693627140396645560321248911827639636685127570184520429173954024305257333271480024772120317620327326968149368946285834296126505549096688889152276568982662108433673794678920986996106998567982704709239739045195076354201017526533157560180830605225289667750089451361735698206437985900151463245502960759887417574580502817200226567376987721755152842409836319822483567393099684357257407593857486423939892174987724952218823509850770346696803328367067575506250336548677619373235807234487045381866194935518298651031397168721973691631502528558275319242505649810932994576406047662972376898682201842141921642111976668161311173497096920121634677811881722936393150918880981447340547887379908882985339862200305740584985736025376987714431157403107398968802003958630064624122498349024806873470686620907044262816765327808158686312067195608966550077907895514950234911387528821546564969270299461863459031203779714506448289172209919220661897975170236764604106040895208852704470291926006227029630576819206037141889325933044784285392178431335017776868555301422578639684085556864131833487618584186882587212061241802884978856047927708848858348805638780752680961848662304397333472371894042721385465454571291537484274771743929629760679418970430742584575440616412859826881141134408130008388828740593784310964069192602737429875455797367471687495952575748022274368297868198679940206258352155255322949414675928160573849506991595246558704337825521145013882386359070595754729566501780677047889245760248578865164419369165321316063038217990712320614319095364562884272163061578840663384571160714459403127336589498645063503653062985237400879431813575323828638142215218542047094862110093265200313035918660778186050436234218630865829480874736328277991531949576638403531646724917207625718164678319167126766330010690593935612297619334494003144009646956873558152971224511355176586774736398472588612646776959493654808994429686120605255824804469004831578592921640480687985936508668977771388493020807307732115538350475545407914086978998840940199691095823334242361496769053072773497328261401034633796701835457797662931177516797492978663303418901750162551377138939235085499832908388411211450276583401283798019329740849208773861215808242005879668493737766132622720175596357309770330645069171808829479268309350886197969721258126861340594520058398745055367340439666273809631122910343261998601376579589542113991959141645710675511499433659345687644789379105839193718813475046977933874908824707152850293442579437397588073333474540442496691972983807488859702832767749132248062433568392310917155230179404095269005579402878009585358136673798596341263345303038945913736712994274416183520174320443447068814821537974404029648513143437160519498479405188009208449716181482731332732705707911298053540375756954712655399861990894014770629877494980780922459508882233540684771657873597280687293881219840029650060957426324904999820712150536503416161688712080324132741145666591422010232098770117100644718163903069237059410514892102208070806828382238598302404758216853803633778470339949041734460966339594252192258222076645776312806898838729708933404558947618965383910853032144079138817167404194282838458130428065365889336191900264851558744511951331625705215783820238922280168050093692046086440446534010703524570899188072184613607304644992051850421702866316276612313692285120782709730797917538926276784003056046583964439619802849341746029592067691345019007733904289146077884085891590025460121699530065308359869403206747662803885972474292039404513486957418942481252395440089104787840067642897909870243156708410821794947507776659737834314613375828429731508808204773605884552478842891027615076823018438006086464932948205425669960327392645303252919518279939125529254901451968128661080750158126177948751369150069072825447183550462141122454673499763925274371921631032867547106947305669465404892275632607198712723263188420258301289104419528063447649656733950472285572801414336007864616340498312040311402006002836369893763194791151073277730746930776687226951208305424450306922930476946006708280990179955970851469976003939160525791654574692507886316096817095779113400655318994055919753205572779121000829794057622795852503470819888486526292786113779031171892449833322402770307602075774578005850360862308177055220995700485139980689342389633775209291767055001055732140052710640195571150004780043704878982270832101560848413000584255644821183014865837154118799124438434929058130421886093165686976829692503888270192295638707598057172420085933298144921132959986370987954031539389926446215490892722530083511754797497168983626445468062184153006282142704311506741528323639625978319398804121927281330999459057716047881984152207235931648414309582308334531710760782370527223443151418070166514248277828079201691993375726155688396967137663548803571091868147875914988185786902699438063273125262601032074939277415722758941727167070272439001903287533703764409346723077037781353068489535944436114379970208610160865124798608459714163142718951551740411586701059778438045298088431501412599733864049586083788668612981385318404719280906724930990037058582581708165956457873136946684970075217497122581665121772317111708841719879072192342043463671642809116332663125932353979792947211993024292862916810439674387204354300598236765552057330637534902393741121459820608370079513395887944496534404052358697526927028373783056760354925241560743436995950344196355791476737255498193569703428229822981325424141979354804845246531760907558223968371019103606491030693694576814866385221653538281996342586746524047289202400286007052204177427557043964592426012858071647022825374867848144498892418690135071468950803131355523137533256898534877665892680337061198722483123718638650563051719655805970474163900852343062815231479634548404489789208910392837634937575288299714312409611602784332403626078969933699381464179097463903816996885115435950099123588910676857942028438100920928433921494896146008583317038926392274804447633873204357351626512626770470507366839300758766665721168009454774689840158057280651964753336844762973852563503152022408644253139086683148224902349225625343795466629121969352488163910661610129287169132517807805789401219298104301635780110500377175834327389100469574824340526697900696620252127232240783616298824224956736669770730964021537845852177975791562683224510879283851444993570134065557194519520304758574424457593706068608270532332581581750974912369221218576173126235659276906065897233308573630713247156930125453036462250997879285305846601688805076317241118195476362184325800714129999427651969987655143224165971799454015293641789287572950781748656669317191440489775569122021013439930086156507808127930522320479720005909827135087819330772800288441420264043802947315957357445430227078676865885265431268516371401798158725132842371320421043774393967460334915687934083793836147570261829118868534427852871063576608465463479116949086765779827667455772204823481967408164935380976589939348520836497477097846942248188313862369908553026968037696259078615825027653248953044662954827947556552747144847607413296049668783515056797499126000290326641523354742045064767113395901833756279388667050975534294432294048367211746278882963472912241188302812235961430388587808520918590228763483922576338924262743695825266754410156264865854995911474939330976816721481856563044136800835803422594740596883383044521108438375588224780260053124590323279866974454874330718409622887940197306325262198901323990250717928142973982293801770383819922139109488551010296773519001479525803695195861977018370472189822242655028408170357117282877250464989811041888251865096454604544690797518532419410508989145485438386337298372863224865840577295805970159151393111998977962692513843664003560947721600716667066156286920689912621513160981305336223676727255053530128679860087799571209895750270820444510078603239509614120984255636228373426397561387228329471847126493161774727270154835911345335343531317088877057337048316491716405782955018342764237324726779880931942881296052290188211677346964480806860987343046693784124871235578015644127111785191598567843889957783606628317685151475614162521265218052537571840471788607704712555878618100527883325250879956629277550475324903026547652014048984249641008336079284403869506123622462856231478422007640539773655743748272951727785028912369768045613265144721853964497115107798504156723843935944033560793846525088291472760198142119434771514747409444866952787883025972689238787527526179751005158482393210829079565723547821477980093919098114337078645320146733724220808304814313591982996724737912520341722237134661888374828528789563361326071638675434244705101819013214720595428910527276288293098430332500652979809908206886004331652904634547719848544807557664106836218085556275717013182823424718347204239373067261410975459795882962751703337158439722492881934122271457429066837646456738381369737057869621324829107017775133436326102182694243373687712200707142891301299288593087576798843694036838203728321665619926883323825066174320057068999063230845324996982981154295044059790861109565108137722968046622860025614160857194268442959361653313366894485925683747332984311772919212417740490643946762168492098076303865507303102142555887945389419109619619321120249082068471177591707646291368954585241752121119110092248075033703939625871289861017220243784569032398447056124471082688576278013795246853532856320769421377663481373783243033205532974286073951718616512209169081358530226781974779053665660432889050499436955461058423199465986150600132068171930185053262457348207731906279479618844235483778861729654687306051194906142264599937549755853837614508459242322456979619415948968894032338548582708019782314188188941577249048776143453570484415145642276441231359171775972916930656550404089649365569991206664940024779162093586941066539493047971379240165901418816617819882298830164318222177641894486005131208663954515795707342898606301527007253765882485747205845370455935762166168292414800145170395956241551464254438974686440341405603966928417847424153614523184718947522701996709551969598493545930334107489690375941268476441251462755673418307566706096326527282701174187775830229259445305357732438520437445307026589013142266683555921739730461215891167559056430670045947839514289303071862361466400956419418531584533502225860816643729840542675267470543462493081647523803129105279204432042701032320790417755215896179114456612827132220187450512532825377873723539162655168412621068466869655808663132256558228016549751793964031671630935177441365837270166894464822469466418776550733593784524976767192130346107326175771003590429898740662443801358624869839740200551400058939393875627385651345734259930293106452882540804258892679826032872874726710511021981318155053300779677936315413443627848027355456280491476447226122256676701698439930840590412379790374147414538309674142696836256712028191303442735267811435708979001547484440782372957556020882585935192247293439852334953331826877494575482594827706612238755182846790990081884152747399029827337101628892510185775078013992546594865670331219844074978368490400681731517852077081555967656804249448623383792220095402226478914425816958008425938874614845041497854414853154571729416352754065907311333804250432611978489687474121008294320735447533160128186938599661119367466323390470390507846021588392614259740993060715245615230766962968795200283207880049099784099592019898281541307178106662217141704352564959832862083799648910605536521372734396003319486456554927081527957176566495699174608397981590248358508920861404227347687337730737733326032160500126042501463029323669368798202801134804162008439810991611067135954486742136693335267483199715287942882737692852030410396222790279308600584922452746384714678737881633149704443554313561217308965116145018368050713729083460587615600917884606216338686441185942923206737435032729440650201755101799597026063667971233424343945483586820790515159013695103306454571968242653604592272792653975674648839101851277239513217421179795282777872605132114891449250952748142360949944320422462681165530820990520255684952843933036583537136417345975201026012619602311656255632131510738582061820353932078296577573941304408713751865128675216537000722915516282732839455487878469449830376697218034663364652269297258583916759220965371194833788101646530710958228727759610543106997801033123160687682535050537108251765748427486454661701245662603342066641602107696660441146021962934579834826348286883401520857972679796066853000212181759518532918088492790819105456164300628924177697099926962931799632252153473913907202165093677759648758659574499201706155498330157979723988082072236659343058358027830606186489091482902260696463241355836470021152120199077709489365644050664222735242399389951444678320302457392383624537119258723103254084292202308425197485662109255592369316692178556045808842618038947920500359774133675116931778064539914407392156463960588503514536989052245602935258545438543468639880278817159337276306511891196711715027095312475373676956270837951386218933938982459495202332348589305823305403756736624379682245060296864403327799208537542917930792256594785880028152168918071019986068521146931163709895435716810342903584229485227189646577220427013514008064785191000390172796330724213224356644557332912679336199739289139991166853449627898886555905700428154162864232298647495961180167934150244201418370999370142089870508421567161729768469928728173663087332893513158709026394335084268840893046967681286067268445957941715996604280933385691203658352661402632163262510580000658049571682961315959420786535342213567027125985412505898444091220137014108976214406829815709394313911464054774773918537644827733196388086430686448397634778554454706470698972514239709454170723515625029213356687708180699587513493395833144289122559803415386622796798689716379332075148708669961889398801655874108493026299584654126029672851583660205279103109619973937510390602736477839741500726784058209730408860497296561392264347179999919801613714271997797617772576601394760841068540029442223666097497634208326361959227984415549733212507702647604186341025073530494877818771569470624188838522984363999552392809229155834838456975040727578557156243252473411750645209276929951314892017444504254420717979982627239320905111104831525673269442707548029250168795558097615661821223661388212534181493451195483535384748716619698149337202889350930519856049631487540984402009789885663842886071545086954378828609545847690659361571249740353213860063082933081985185884652913497589438347823682803698901038075428382341164768637794451666586827721093866700979858147343413577953723181999483835254304049911479095351526509220496117467846392212310237593319400587904515093483921070104464290869055761872228269119924041386456828274441944780131709879027589313230005353493100340465706260399671301146392208654443457690599517460041552403675211668662674381774524543684329666868130994736300300124144857517741346236553354727951852709154880486715074065550418446841179765896783521069885514275438295833336371419491906574830174036186328426239142969608217484025636802724226362709189713557571483002131297134605481311918234914921782560062871772295115409205929516303749630819687884515619193666192384012220320489738941795508619291407679752186904247841878512033328321841933389042834011357544550953879479883208030923465987862485971851558015082786005199197783111916216457988992198562812165747116542672666106414775312786530082646155892184167873398008341285071737132492213576426035765672792855796616236545099582226963997014673438972579723899386357263888919783585170973549444433649777740086570225605515944171913171461066724963304389819147551253396069133911983571848605242830884698088600000579356997618647143188603195715250095652216828270407810100720604373094486832469711252868053310451087986876620366436661031522742340312441164996945250873971066752351203534224920362843063734057789961251430169881570745420839751300614208841354696177855917478910952787563566531038668032842687003021981162914533551579331394997111715456031203335585425395382429094260618471215178441737456491904891549974223921715101752846909279757896536707501738048491645776272104660700728512727102027685597240521947621884809853447081355784709709736475176497920496253956669347922191301552500675512749617827078276944496151955455478568635770915976217642144088777625824526733848678446453000223730320021078764607551763145204125202945474392193282074669047869278875567180041952299603343334327379168198846357703205499079974327247558745734635343441717585056342186039981272452571431893136643016235346033000492779455347794629152565436999235855767420298494315586931241008379190502820365614964176052868661875273560886475868193569809637819966073669140123854061528553628694977362150003317804432207598298340126893059508269582409633583941910862950307918030355457634270876648785298592203824552740330635909958808958882096924851643786467171771685770430291312692732413749256881026531124519267490845915972604513855118195662082078898579365953619289400551343926613253640170894894136713481896887541502161357026127575930300617009149051102002381962760120137426526508157474007260310008054711209002898230331871913467829057966935835842813555211221014075815750931830583959981530109387737029054780796284248999966475610156502666064795234516460541372721602176428523464264971643528669893426153943638014450273523752940667850725297307537017595870452533373611430717370154553916265481109963628598511814598311827755520318871032978825692519568907622552871645912132381143344540801930445811651220349227970712268812790857679721487857974529998236792811991705199193880561015931023752551981897278121854250319136615725985571311746901976263511265594480044733840441425901746692408153388520828918837962932937079802539384055905404333819209520319390365481996938151809267919110216693739919171002243906742565029072761251266437326190093230223904657084349199288789634932619315632314465939299584140816851592384118700341340399391352845494641294118507981217607673281465569153400161738506324066836832033752177244666494480858005169987294566193378679071225959680260119790133858602526946023381107261360149263963278865491912260466143258583104459716447908293128704337713469646607017237291713311789593244548158357377566741897908181595764874800140453955253795517041460732564935928626675479987724666950442254048159170666811097810141188632660824211596126364665169723414174152600572029014207983485278370211622023821234531008218885928109392041572749079957897280568356503774740331871236622681780958198282086210378960527111196778734585746946565165758726850829645207922559697426583159719485027730265700387431444501717694957076841459456908276075010453760222016248682952481166602432239484867679151698478151631958787821923612915575801362793392067475337922075989460035478088971873924430146985405779102044963217793220267845375624220385402935469318400109843523559665179382021669618502200573268661653590895483075940772474494805168412926776763249871749205612130767778730644868095258908564692867929159411857021507580347667718628408037269265544598204931163962567829116816381245767730964269357296154434385275723725021019867200435821906733936601509226167008592132498989926850238587943372142747380886641542480003648262523829570411237154358988941457228424309410182357509483850856827631565491361737810980381625233732098811354960693530665408002589215566686732494585378760745481336728892996234432435957018259641942890724459384390315921857092973359037053060403934549738321035609952233021985655379502883766982307848316599982252958670016079839111172993296202561127077079362346990891718254382920880943814412420278921349462960536058369230860761607667039445883306459039776928844233218569425962220031761447198564788191625386188299506460449771895290183970991199697711091590767253546540657355427439359653348682217996185574239169950648488908658361951136844208789010938026052707717386185504616868607884522173672282298978711277776924691574073343353607820050727523012875018658904568934461117820381076290201402416480404157771909311279888522943524856879141817669211025637045873691946208617839361462249946842499297795416642722286258259184387776487681914027462800018333071481271637294689729930563269788074204450295193187729868910184528147489863683239782229218873706788894841066457191499389147212334475558010321483332275943947513144353392193208071670507022610591020454585961214151559630527731405339423127447724001963965606332003337545139023215452659347485344743087521362008720028565243794142527618958911332869109921440636014176988335785119106896115233179936065838329324941827705597283200362627459478503454345423274065404086885390787097023239538923978078375116277118054730308774112222265241948286194538266000863244682965598040193596280490394983676981039024052548172062080007684868670505215617724712142290173546466435411903909760837655028546514346058682018924013060439467570553095823954132543760506674280446960052513820678061590320774305079456943800286350176489504147267538741612232794998314968611100003565588541770027117800554537244598113208505644637070514659048181724327367003435891136016904165735357855919696036428085922412990226945164002309023183848736214859497453507542883954425770903389482704566915525649912991255190378153883021129550249766017853004662838233652004515984033472600642245268678094332771657634056325848363398845954679290250852993871526354047961946244346215903749998131143597143849804697045030763464638889409072528135372079524057674689856779937501653240578381449218001227339314652163118720537473952241958549292129339750741173780721749719265357616306251500365877504456008648234706500616132789306534092447429038135799487755748062490777446951977957998970280494911620816486476131588891637067516693267062695054836673913565192881471441468564137316863988268746910536597550659980122792365699472759491307830680215645856663251908545969213566200160225585162877886053872527903396994087438632380941310128972105146933590293072767968948510211730702983462816817970672847740538027226057620125070937497110049194598391915671887058739610070128364835702538614344424575705154089129846169848590865446185563754004539876929026546114148765284988942285399103601934188533479075652227979594899701705205659741361270322116149331884191175319156368497833338457648052500790185238515404197269988873677746463689027271402285428178587283861090469025609590914969852980657602656372934998787598005104617733843641313881942249013746632424482142965265093117155126236558254348198754579535546354006890571736123186887612426623587957773470097835352414436953760761313332803150621581372464277876977917251704405850482489550631743516753326098887231246504557675218739206961551840117598833204437693550723631821123512321226989221442251824605214769552355817430543055714816501872721206167267204601727418284255720845666262022066473427997480943166145906378140014524996581739870548278590653497254168420259290233910893201664860261476059091735581130817416912697345629494213559639778689737723390793320184141427615915582936767643541811832325454944900221714792196017187863171093687165261682438119765655282067489937976623344461278464827007022245931785616277844243416576448083172131086165536393609075367438497303186657122831681976987373167719687150799591073566919388079674501202120986011980539990804997666888332339728231924272560541131888210954991592431481274199757822635420981285147147830403465420871436005840839825354289882345996042335755310463195674147186992536110098296205813081039153015659884538309201393452120878401162647932783425370619881579843899520380046292207609080940993217735185473317248934767676297032090778294003659853378587446129789576879128921070970765578383510213058957970417468282210198384599660380903882303812712061520421540083513704047102697703520302165801776978405520245984660991696155119273972646921763365382951081786619783068880197414168089855339656062427281231015362206439553026402381842097924763235995213323734050013244776652503401576027387701519380321221378598960108830974241550457285243959050163715596861823067124533326223625094640541139761539837837950714211864462058950567562851199884046244963364100833925413595030865907076985093169906541356448400248087553336446947332465740518154910482608586497269648029523949922214148584241519891671993835690383589892582103950609155328069706638618511010739025657535215475088395004971833092284343343479058240811697619406384434935968519226816885989708484523169620979595237958226227411220569963663771365225092107713106241337460096656197617349004291631601270796891962012779735139641492346260327306540394023325390753293830201441981971858561296443782576585531102848331503281799956683476194588768711009712507205834315270247793597063012539621115257673487685066738132826697716506145181480362076061335973415006555456223994494761315690631423705548037984354212400211539606990817406062159140375247976218944058811942165861643853682608605211154138929132428977506318387524120177784908489072356692852295542292462074658510630837566334885554174655726132787509733666550748874361237726317888642201106033125395072356366320852533946066493283255399513756016405926903488672492308072378134880861725026749499547622054496420124952644434763321129029731799219714593948719968078631581254733082064892266141075781983862164638332067318453269573699122423270091296034943560044257760651701558817716677710985770774229522779969692327821749052254485070053403924731740135087769435178809506818139630588900056743502448352171507160770343767542582758870373118916997637438271749872882866143119129470962261696427541823639496410061715107395957424679971305664087212540011432146960244176682614541877167701141418603007264530381115496040051833416707950567389839492332982937288451297369852192396839731074622242720090816157776959462709421375573938855754391376445010422103244819048149810031714611485205932779535481193816228544636889810746525745722788985655875331609342602763381420291962776587571583433829807820132190879082026352561718752922696090635581836837562667626512850311636278797857197638520284917643591640436206012849044965742662386616512669133445224478334521911034682856598245409991596382695192130941455963250287591143192910755294248389282193514224657016918206729980690175197836004112863852478612705748510710598054560740197560190619129593671637760156709065636065153051646270503352064052083296100505525695210237312444694305281974649007318650976421172474357428730064511247047038988762044770206607931388787842451726061889070982579832348020872446049625401011886023257546896396056395504999529571827808889177557795461054677341892879339243029723758724170150236157087541886058736400283422661555654739477363884257886994767774433990626744871666343667148875924599685262906419029221409631832797305802349024033504402058409771404756715012115528315029606143372223108172222203065912619339365266100733623291952681378510383566733904832827007666005894691944235250773387684917936176494293319241823653808371290189539690041896327095158053186630460288351211696270456476877055751438610723637915331656409845393893572067166469401576193540866054121105769611899000234239618532346550786645666710833887389922275925278403693534558212424070413746406860375916478944304201277735223494540101162508770158646484310416990921090830733951900454058230285917627517244763676931617789646931159141208062041833972396550618588365086645134720461041543040838727339261407035651633658093257848912369564637084164971432471458677873332672204119784435490362494271701321699933927320044100145541603406887262849973721544570596502966340312896320351286677354724897795682627064202485811091897453443928416671453509752979576645463536186012751259517148459405900014605772122208420765307489627368301696397597389739655859567400840194744260310246775545630844224278460220165576004797820149931955566829582246783832607754875846104786902991997911664952390906555149909717396588149371829690132175924576446667858724807861254756582099505633571479566332847413881070725599172768668715027165338663507547179900654832470063678874723345862199720993385561746293934072495620416702661501322646514137003461167352414812104403173325982752905495039329700944811941010157769895369548388500992343217671952209060426690460550974707548171804726762060519377315547701736567957524051069680716415328393571251128941200373245232828079909513438563259643081552582752282826664221242112806996011981907403305335155126880907725556063774197074725767959981670768755727876022457832603970580857365556474553445520071448063259138220087979444414209374294687221307920380501364391908083765954891558714679198666503953563834941513277069649155746380788188605185265127207922429043781611422596913641593589311949976508869807001383223322531281638446177855165925690345972662701393149969604046227950443356089468308213631220217190530817122789654966920816661260013315380999132550831329278789253164519637096124848335006856150463746484171895030956666581332034292264602042918159581312232434637453729085677001470366398751753055633911593153880150533897481705356680286321490967231282745646343277848105987047352454194031762561356012889703940975189814499440897756711455699893575003665993610361884921486338112682153731627755198804481046611067016925197069909445578440077411109547055764854680787457979463347794210638047882855396116824546036352494507073379359892442039103722315230550340223558380306715274379190553483786865727749025314501270766667079882074037114626282796364121932522734188652379870780895654425020905398017439360887402443110000685978653529364241443052849535254582248179880243191916612837781905567555689971871611530014396858623848096522437415366468151371374867105860112142289575521449918574690971620160387048253006671234478548206866010603249702454646009716177304834719349236061618546672935685949665269338001249042393892067826521892900383205709743896259430007397660481008821188474489045868515231099060136173215623307410986757591116924556790919880790555538569303606888196432117471249845046145522960589882019273309390870991780095866343139370181609961736820515736551651385786533281357285140917138258121701784153707284618952270023849937326687806432553944777446282656116008137028651394822381631253524226767652413300894317791225860992697118303900259612359821394086377983244518458378664948005621474661237380708232178029327676585280004263765338109382980504557855377766489759205634791280883233556162674956283883256004691862633993889291614978405406313258175252534003595130642377572788393907437514907042706828778985501257194175474283420976087670609282567845361350256254394870814051180733145982019648999626252312840164939622005062774731803828921515189584380135617826007062301385261580670619989231151579020596857235677021263733274961161218953419969949091834436122335349507996234164112796795845000663767561802008039594498964432804531900463436698908315779707595271619302064565923729925878319446633675809323830873039465341768711780208770806205988154127477082668926241361417550842722747427246610954724704011666802550536262874411360270074680406370013110160908154114116043030767932086271681420786015098956501910323215316934369860279242478494216121175210169299548925329603486847045327263419354905891280376290138163942396979549927723408398702220010266194030815964050656150345679217908568580970611452246607079551656200406574652733153388840135199420491057454429754955617687462505656246464461783614017206841403542406022544724747181692459169141128569375575612630231941598958859874963409534797095506176516186372728395972889218013736702278897196817764601849741450797264532002601172065481484913402206208578857345402893148288275938783083101356830499611471656193226394460233850890451092424934900960293956310173854240291111115705936438004240521429955926816004905341941498438448394282750369922070436928184401443741042644591834085918027261189389553208210699835309553836036475673489059663710188482410252541780368443179081552428524967605471119089128375700472469284125851780753558467017130072018778443677494007108859483071709897945117727119635620428378327510810588864499684703958538927257056794429820841241811176979973183766302472789741604842124499522086736806669076070129897009871180916741944258231602329444966456473290509500462053365544449086708066430148097586042563305079029135312728554355264885935065106053979749613904996224910216115369207331706980003989862419124918007004731631876609159114803509017064246537724671104055438519603293401304660389431173097906956241937496387074823290532582871433812692534590423402691921966886041494161246695939857075810946153096408219822847291037933586757564505466005164526038640839371594083643360632907732820732137256438981259387528762825601945602429846605824752101819800874787303558870401269594323163718748862799686377866257673877358522696478348573543255827173573083092337757774602193992366411131135056405884359492381871638594565992591090158712915782541241097724244485648654489698646678711735441345305596924252990906896960750388078588460605891684671153494310503675640489321697845668446269439964258884738533426943097994428148689872555923817582541556188754749238199688586472296560633352890105392301905726790192899498764311004640901880983066248866442330059845427042453161244532851541057461264672501109494636250966839219315852706172095523240345583123669044033429701964723896655999163598884884190329883451393729644686802945685698716366547732176405012414122864580541842922156094016720623129089028307692460827895283978378042151770135015908280263236720261826710341144486585337438534838298263052142766393844809963848381388232231474993646312571234440268429082596540444483494113340559335628727914236157808175447216103771844627460500959475455077467923129253734252720173530840424682771897292023422739338503157336279267305035922544447380443355899090876318324631949643612587976212755872658142914163425812278552814939363743070696986918219123107291591732028019230066979371301951945077789327664812285275286955400432833927857705638238769611955317457785231791915473034435593867175195516449270326163583053470038485179889036480654764919238385031080800740510184522691133897356638087386451266815958481872251918707868819150987414368821695194382613476441854740650242479007544590883765229466838156035653724935783008793910613118460657317332012808023415681207004762998366971251446898564401341114749453615034921962001244950562106909152826407988282210292829617342502959725533717626787500061748428475212892481147166677476710569997167161908649035375576092996153122577960386289630341793832349117022218677133920416733462253649436871909551440601472762575704389563535729524143409171895933873663942521022623265709162094619023363791910047453627305517463301727497543707257081954892038742236029713461666940655931382626764869324540229882164193665772348798307766030507858038974738912188885552487114709081978602886814411251927715155489494132215558396998510825556488999941758314060091217430005685218554110355147962770069314142099450877559331067611877652700826471048036821815890630406779925889753517460577808917214059503045154898167123048061950294710227246470496721463846809584432543061656084734894973290989482270757480913752652418523655764193629335950974641939102507061062122930289500616608039236516059516945705252923943865142200340108022132717685853515878802898665415214908475927809765874325313509825053247906067860018951018013000878131264327301327895751542107325780488963315322604216565609850592218301883947111667747191141593030212619647605564238480773979577535364617441953204316033075025830660351386816244547573894541410714430791990245652123488964532564581738963243159899366461188432605313663211642520903655821077582280185510895136772435873478661853368153959061536739508054429644896118286243508022459425587723337205807974085142374109999679520665470050436156078680329330425144587427921907975507880085441208329846147733610676378813884826589310191925098475659233214745578388233225380883908535451266926683259081123528351701908395075495103038870914975686962819199016868499088792483692343489407681868372102308990313621693904540559678997155642899912804432220041103720105328086738451915151883218434755548273878933946874079444912614590984337948026710087841429756773729556144332655430898064191862188736674999981391540867065922141839961680578244150260320754972358926769492364290258418276155729113131656483534168025838010625852380332099090594238077929023776741208395066421852478986093442050796278209030394319255415698429369115066188385094859198726248507858619908489615446362807888482865664640440507039894099715098838607491719030090821945394524613187191330806013682228753104303396683676559834220932238122938169585367816353632876947138630380399775322051036609528456118658359556317665150563124215092261935962328462469710835788857527431042859890752839699620635471139621561892395784888509654632020545202324413467932272989504402074584414570000203852442659597391100580075522205587224977933979815204838517193650789162265430558405851904402794272782495568533711005142525075247025253513319419392280431482630661295451293348065177225915472055722269333583359933046508304318818785775068398322190199089906785941624559849725862827556469163163327726601489179375201696577893313033511509989393330380762666183417701560441537464608485761856135876670480857645622740696777827218922822862830441287175605675634023860312859984782300831781877864926876364892867008541785138323740846352162024843436304997891886787610601737609280769307351182580169411269560309568401017968336605201701351501873964661244201181978848766776352299688046200244604572242323652484348589569688833021013244123728803162852510152509346980999007424481401420696861715754437067361347274069224846480933061629643025781195282751627711167142758387075704765871929686084247966178827909166459533148142199104318107294559031616876134100827849359630887846095017155963383662538244812172196950656622745631388556467874896275591490249727696943136224262212647748514311946927781878420295045136134885184145849630222548597049317685197790429332653399901346054224813394035672477684241502085284002414691693993935274906601293583077627301275777551698520228378549310355364840851041785396394048104943726425440897767668158643429164570324449390772629297781971133055972717602704653046940125018359562880695071127587951433398672944821497302942423363404570619267510331563573060959199948138918467224938315319362068288722983338514893366843169362231089798529286427900283857076695790318685929604138804076661577063599175256671235837718237433459311043880563863019212604689341588295658439778898649360366702962062721405582320265976637558857586644870133219899416910967371264131113145001118519090842860101557468725280284404221532145880582222511734482905314740729063245413708966742720111433702049095758559841508610808069852093276758052188692548242761747659527738971462212809586715944076971347888915579878753177331767378426126595807458377086820870849321556876226831877371324577886437973101942082622480019574584018060098196240976588738185905320850795907621937855665159780320981483640800517759456572444078412306401969542471053021268743067381523782816914920642875542537058958020808581994098672264660309929740931330456405826107717377340351850113991409522764369042443606638221981865754697750157036244296239355330733550261333227099465158796615497202328811400367824023115366320826034250871446554257260211876307744104558704443602894599978182298206656653910853403582781852642965013482004210689983218356092895616207513583488978490236677907180633169937860651489263301612710692997236276106052386501714709007369778442494006753037539115403305947295570963437003061251093671810248748531442318287636412418111738936503829343041515581536325118768989215983971320833423116586561158343653483193168151210673326440956692722015509761396306793838605462042669347908690145853523080126816088015839488204922428014475778887998168208568886896675419440291421884237567080551884561787817254483680894915302568922362321032566213250634702116172354519610089152612625021279221054737228517413172207494190486938758551925066483246170139081952869720503348596870606784055522011526741506642967376755441056933061405176924210245259325112573449739803267644181290086576953967155360280194584306660769885786551847420275478261729730782165307931163896989212733953297075517227046296926255135354331178856779050709955228240218012443129223405069603332702208847511980925067834019435517297599212664331219700008065954110675648455031600768223973510858199121470475868401692073317788090605769756503814288034947521291333722817457290171627539340979565081833788410120898428844969680576335509697504075204601492056751073227300519464799365997184896441914671838513595407311560479187808582981490322510082982600767332617459143069725980137890691052148457099826303889936855023333725475920854016370370736623956769896296294288660216122620745110069237157679778951705657476811092538423481954485742592125092489046252028170544270192471921829805449950085363275892400185491426296515297938278987091234860692801689029343517733437214726541200675040463820409725197456655590794083857247057091421644968844649554409455942160975733565359658988345532675222232357262051648754990346328774521037650010212777558473313938070491474834323418854033806459040651351626088725394483696393866202822014026098588973405030785269948412237525465288644054275837247945559521948361414020030982122866641093002838650321950829445455266884797007496673912116547398446944264466434069240665080264751903152195387430306313479744633774571006391572642449678305885851057246157370881985479616404599982866298954204964313479638913385746342676405837015095786716553805047061319550914727060995881692197306459726266395432663884501503103226157537336157047592161453140694204544573321354684848084665225388271656842316489753352765748146095078156541315642574753062798660092566505974910322222529313976254086600111604166476799258653556174387483479555651295557686083670174313982822033743070018810513817319183730115024670176996847574957186238543988223939397339909612124560780192409912869862294557439683216211267227011223229465749507503635623586939074371368238194949349937251297109406469558652176359158998041245576862926441288275648670160035880745815293392419764742782240329617847427495919003932579579582077965643531130471623213676980176810066112353931122679670223858786961845989405355538044199214083786758943856340433749330803902234196375303178595256353356855348241963792916425884786491502395920766198629091534716657148958433730600392136565690347509029952571025425826485462523520315974794746086866366160129579874472539434089390532705584530753221649765562487937428944406698607259287644423430854304543423158298650318021428506170040493922625615404199729928582294333103822083809523453253823367410406377969621317341875608581424696041993204200139379616102848161883779907253384221483556096333162840502247170515489120728063088438285900372970239526410990788848177526905068600794706285557688815523601288495302918578390229093906037604227169281491363649901207780916911383323660678621551145155544963040380015836177388729645634037979410696834712091100003411243774842862152234438850153940494997211585255259709111522959199807903553731788548522928496436839486849807343824576928285049124133806998402978670473032119382767495478750893534940683251293872672261241613238245405400682302859016368955630672856091945514635395769242915325912171835405545975243820595891852890168901447585550565730445077694167237018008889444435605734090864405323996836470325417308310377065432980359122948341170878020199670068535287550205547467731957752207279330911095376758475050182273241464233892618787062610050294763349267864814760127409343163122262207103848377633216226967304252966203321313614911766412894801498141472165901125728487019592531040163616922017134024895608867675122413530544575412720941061985338808057598376475494967668348711191275962652659864482483151288861422906270912008678103685346462955833544447379562529188090131850050349425335099525150214895290774515963144619438008340857223757284068857381602627098630157483855070424651181343646430718859573762536622664818884561761032808889719337050227051315741472992941029389122359784770355834613371186917517328414268450420277771763417747404276515641664593775467681470724265840255270579632591846035118658775502758572172262788785321935374168492806224628643127248425483950141769122556721656142433619588423779230815263358177474418900361197212009522239987544512115406551639473254167005688104698496483654206214575077882084136000161556536993863793322805484415829106841220499241360112418665956627058319705000049024275573067464374946399011710892628190203999028666740078851778090396559044271283891320761204975387685543850895402035074442775360205373752276341550451739332007938490338445687640781427823895870121408816090990974695241292577212241094241934611889984737726078012523428137489124772040372632504885526281138621206616996348183644607366931859388459686079444062129586817887485592444495258370397349826630786278115005500117565855209351382159044343587159306840760763636974162091730643752428558021109850043059532370430079728043949499943824033674717461213017795041865107797985408927023336358761844935457115360986820674481174353155485636455475826600560381443990102815224542135485218599526947590200024553564058112383921427953931139266318671277566405414617672372768351095716905966107530041904543285682259208760899668771586098455505562033411304244470865038562862778980338050166878334569711246597218700314066266040318888978276161493024925844240005939072625371778592415783091625694458352851402305033217420472979459677774258349331958649056799960169025487339863397154641545312534710279063254962359552578144541275299304096702972999389928487399237198112728046116978145036561800906575153792166827343186004997613680869850383267296436998372523840660244296954709818784725259154133176860721382242249912100235490383265490479003031168977817832479526403944567487384234749556862422031467371770838745419537580487656074116876796646949336030109818045480834993965598020023900804507292820028340257516603350482506088373701554699532261357765663460340186868284202002694271514200621934235624566934036085965904277703132773555555422074755592783575361887975309848475035252297079660316062082758121492500758041580314293116662132704532229531166285421915611072930177853550661866896626481980822827571144862007551511011547965862287612055662863244730038993646838225989562626643837321175261184728877774670905925197053971524482304878905070485966259290721156560348029863160323626157635851951038147173991506400313666738525838519133120525805522888910920364185455181501130019870269337552418098742452803961708198612469764632592704452562199474739283055674167611464915424384289009534980441212036331091672289373031909858050959806189063523005689357539569639460895382073343545763416188405224305037105350610538457487976098429144300063407790279197714501707085931733530310199118178986907534308996840220654903313514401431690315556692312528427941293014734966419127919898663957541359487805884552394030727661405070225973813531211229146845785811461524271685042355655033808137764963573804193318490367006102336399958214802324041156108061594608289207508174906625190331368008637653279226312158595564215166238411249536582361771186614276727697734392335868396605464268173008284131857834950923463106764767836034864681216063399480179623997255590716845484223448681622051880371469128369548474618194285668109283781443690104928887762746339271958902222417286340917030050962188198930906868961960333421567435458510448989527230385204226265781919179502958498185972871467314982209050558327054946754726027440593719747203327304824772525948956903192217737098210651247646001218695421507424355193388750173599424926525992495179811007844333834721691268448955831750082371373781731802016309569105343848925740832141586083666641365596462050162807136624435394473891462077944987070424329556806738747551611194861835282227076575005864789221135971415056642995621051908416670636420591798457515401652488316986740644664836663852838701753688793981438871743536179377098692801860719611468545551803314527345625615386417654537806372249011461263539380542028279609987785854911741714622046206695784594642249391097508718902980192618260561104622280016689317631749007709739467467598118735462160254984650667307392333313678343816959942423523806375416624837429142359101117909703361469495159575312421159707347915045674257826307024720733934092968895483788960024176104358296697697893439345283593606578344215203556984239825980038262647898527406199793162016260748218945197288540869431604419682036131080414946359856648218479365298151445274933025638765641009061394603417411657478449691576322236668428962334865667261271612033190645179357892938967168955121928500585878356374209362860179590648471185126484400282563677289296714144930407611210550350549718159007497482023763215772278599478096419945700009154889458198097711220299051739978339639530034785960277181091917003159418938805498398243175734615252188349403879759990759703469570999791825598147647361225548027570177258988928961691909036189800216796399988116457037150851472772150735861618143275677249835952349533764305326276769891737860583118055536022387374892325067258397176148616930900819922919550878889755533103692290223321898499503325727832563784593060495491568155263189468927593531384005557950434805020229884546394473477371572147004328722800070693533192649738239334496660083708081382890823920786830882952065971947166129155606701602444389637324823677165875431901059916702867833523336917700436641665414157846518531876498564331429014175253713410207332698933546806498275196493516012905990315539278112040505042852869816890012488276011008822569117539317340104413244822035850323883828185739203492325799939497771739904610315092125528980116926908678259543150757193824000579039288471917648839958641803375412228354219787669625400195376936875098045596021836499196623211282906622088262403415083636045034801670541000855995603824191779912334080421566314582797315596170124660798315699064578217675553409100117118379099681600476555720917914452888488826466178238351293713574280391166525142532934235827855392596974358896928306318257502903765341409034173544493480848100546836746814524969546655336548998948285204932007117551310373799737151092105232685937954738709096496565701002207542505600890737617462019441106118539927341296670462393072543813466817797080256070927822892193929696880887801164118299662635734180923863376449330905986088398980249285370548285391823582597727063120220062819784062065650774219309110268941274554180859414130808245022858468350677101178296616793549689576811937992959077029167298088789975657763153215049419788820516587585133200160397541906687057349436899247269910355563299527889861319683768544060570955798077789158742421535809221285167980236762553870377362830584056720621220397702996593739164303974854459213362677564010515872031942376532450918055887581758323231370874597968315636707887481686449818375600280443686785419125251277710580621633600291762057408210026810849948324857589972153056166606908446786835175377705650189807039959032341340163240922300399577831387627499148263465490509035732364664286784547849388708553742788460210305111211318085629373548375265288426653226073817215367767968730511369431023463873654885925077406584013994279617202953050415563543657188003028325300553350826796291039049691336456722991351768253534396944150859288845059682908258562683128841422769522859105589062640034391031827704301999104472685493764498104460274256827811643265099576100337246212481308232518708573289332023793402218298724113344225545340357771900825779119386263210474205591650562101390432120579513932313846229797759842926403460957497362468514394923979526310653905392576149021871262031495560914008261555554676888762151018443897301581298936646686812887314382595567085274378456418331125556412355104639996312810393373179252932722698982791807803057574238080506527526861970876713030024640810438674910103854130283515245794243380113105586486424045914859980598955390611490978585313032513698765059418949335930239784028151207214474885365833986424365118565764280494526275740969841255213742460920406416428665242207375487081515660271086419903221323425545945032767639551974764175437847053091588324630477723561235328189650363838763646511467653594852337766419788074575741662985082391561611428575062428471495054216289741572500917119063559036799925589276750495976310489145088428011669007475840343222198819586023156674362059216426878881366106683688949899072216375512835753113173156019608777934689343110061449675456825670143862738868899991713003459751743389413088045704079596220401350236299322407434830949368590539419810612300913539866163904444707111236883978639572683568595194876241134532957394039127627576768433328398797683702087541559932934088079309039699152356768806320959982732910155045379848799737697556258487084663507726757130655400544246310735039007428966156750438512747956896160094885027879541812822997591536505749217052861721750619685256275005314228901224333466212736524804719080200867332473962948208683355167293216079496092274280247918844929196230630612420843043079490709342949795447286292149471165251276628012220648482160502249014099253839625429527661100817423199656030006898347573998859285478503085702917903340173988637782797909626439440976805192604916668702031469492464800171206786641551000867235841601084848072920351692878149328513548052278650331740891272315284877551748799232029777437144434695173359587859960698763216325027029708308634173289402501938129089114431241287437156757711951126241871409776539359417567078894684407167334140784095421476140047298085426778888433219851408485331301524218152941389527854589230780143587305093710747421631355721655173056510837859339295597463032290114585049207897365276738656340600587079278970246378907753630245248036270690872535558338058951570234281922714771759398478629707250420341232034015779242653923981120722694829387828802011438281018869045335427289392675108226865832200932512900286150157839982271348709934968895991274323105266596283395014987532350991241181927036652799930755056685765223795338593920513805847581505753615459696456890481597816158735148050922591498925551101929926398506374862893249034937671770965870050596270615872939839049525527627410380647308403660727045890007980636541432648643209503310909369463907210997842587446751225405292118562084346399229627190785472355307537431657553583203549601524319881593992103365779300095573287635199705976001823112460922417576033068033043681285644233879553438625586764505635163319569398518278583834356738968159794125321436884048240972994957839266673283658497517307934688038511649932131591186289305497298259746330008266248948876716565506381016141966148715336596115498483260453375619024651975189614501324731818157054202628480498625883021842822546645460601038750095380363000256296556481821188310464089304768998864786421737606761699212576962971385275478803336257719213643208062012335807195404380588173240113864391236368609701851480358870951749796522874851324970298076373291840986472344869355979731906985834123968851580753851181330169221701139452766960237157618202062063012071370989553548173125079820360753776842370536548288980181253828396034677670859891911842573682434563952720303348042873320316319742492052258430102758265305299371886050114479614260920267019170896318439819882159818334707789422014833348339874935753282558533749395041639654905472602531646713063575456723427292734850862035597219084587931602617497719231539537310837713113934589118778003776918281543454284574846067285129601841542916157199131650866607908591184220980758392072353468667965126088227829611480851965577136771758719169716199461072830842199931518702642793533774330340612451047769676173856847348426467796910347007174438009728450411881359900181837140808221269295319196443764382582079314541743298126848912677483472702691379731668093677933525472638783968386859429638486626141160774512997416370895375731564768403911001989813839618747234601427887609792814286288827302423253383813763748534467027994749796399011090749462722727318529480105458998491979019528046915912467698928930356555366139518899180504028681687667938587032789259672008916394610384098822941399163824369787963212957048543070673240492509818292302320650736365254564482040102715008472468680179040723887665768192893385766339460204673562347538184189133530213576073378531584940881495435525535861477486173515070572108099584764490262504657614172790139051451642328430083043776368643285916762444291890862191541346875365655508967629055250937620045905012633756898537300821969687229159037110890497024856063069869300661163488438643258058607905700370886558147124901749276044364904664060617559981092869909439922917389415774355250551799593724955102215721257628675505862022106552202780004750076245253995127654659067921088363243994696783130190978843880355754301249966790150735523510406681492461869905401290830492085980838441073515640950673226142089495961614636029623554539638432408009632822574575812077282449389963320961937664929231773760205022489271913880202915059591928991606774760247000073173448280318917264437698314291283143500006533296811676906152656920603403686717135335684613079094803493012213634085060417385810685560129330386942763186662971202829108075967146344938597239634792443418092032433616707459180258675649943344336578383445065760075433895385742176036019999225165877791626783876132093420131136551506911524213271555253068201920294329659843573843661160227059522526682693101490697148223844906598960499076637737427025847556640833433568403369928716121180895042639340593852181226857527631161804591440712779661857366987741837037809650263912427787549092728433263199052362062119911624710434562708447564382564168744003899636184150593116472151917307545614475856786135470912490752229918121621855616691968781064263502981641789715131717639303386375435138984416247981535008726984405584353705604484256193982163378354286673736928827437240589694022805960769437036975933820381870288170988080919795333137257712050830918310816478172216718842351890868146039627897434419356494704950021452445099757878478724740756699002022352630830485249170392587048577155390289365264362361121989599184472475991154513149156327772304707678428559710757409980234998873915585428038301568340607775783161464560946170245312004516020711601894987901302150376913834747944695327326155618637573054547634380474421701984187834285489172944268533255078802185546920098722623015784320435693657913665387971360550254141750999756939890867005027156661793248564175966478090945604891432481704317829048128929845958114688995680396570189309646448489901955193191420241611953689511068396037586633833925543829066996833706519953785541707352454567011312280428157836889123572480010793888662324119262382550953270031845042396232879126050350624956861739674710675104702614084532389127006342315463777718986221298521878518277729090273114862850037919993491271938239896711128152766972003769010020590517893748935044687070903049102953688164422595225306039614912898987571871908916523960129480442741005511254893769707284048880348066263934454618642014517869134932208950613178234166872491281874465036590697754771526773789607497289622875031183360805215415977981576098846044880032463792951832157022333201737153433161105254221100915729335108701275013771840169330335584972013742046103113577359664606359999205565738820452067004702895406748897324431313391755953265519879544596046182863171922943174216433299420110331719028016357359535546159137038713905027983000942218759707245797271853964346881258343478057917593354506484583856568916003862872491591327548595804028898779783350568912036850020567335127810952171601883243360632009365369126924386815021079435331423199694705537735659973447006242942308635575120569329272976871990777621829644904033514573723643756315947455137077725432139022039693393162817832899695538654053690164475525569780108419083410554397930155739976013072743998498508927971571450043247420402484098560545807316349566532432150551559258190332084570826214716623263118231254451642038452003685299174970416975454321933180419463671633153343430562046670432725975029068265924431606223099643950992096151945037109612356861451966242635710977632258239345767248873902007267790242523107838122604244006411166456286497130340656296332222224771633092450699291349969553949504939376239544758794532793016349419330612081899437263257393155151207946258767781722012734019877052128288703057446303024061568533992172871285735329482654438530940269151466640521275719841895663937514811422579587192991603765000178037114446399454207634446831586640956981560904840745245633119142757183766158494901869530438989456786603463348008686052332025581979562358956425438988127436211833494769907504728641135203656100633669454772834188614618886750402708355918918070325934253575802095610136712377490347687841145306592534431607156759105763036782386469888946243502442138430173889229778175177731749513085716535517230878018835054497575182077909675783032386045003964802160558497239650602026719015146197888842593461407330262772248148508905846405613744298398803844184906557794466723252474844402777419591273498151198520331800655500845024006376127582343118035441639448635257009275352163601247372081857491038402360993543888666216694777105801604660449130516484322336013571682071465415361188542923628319188559482738487786374752807935227751121477543063176619398972290533871610987614931777700762695725076742591425948982563682961009573947299376835837616045318650267077447662579319580437568244962730433822217056789854777793671816706069245826788538308989107976976114657466551567947925179001387155943985643450666496318001299937993034268844201210252247242431044010301974300574988084015610171110083642617035874287933648917361774391298696012734066748660844545653910032553020254599395895814647495587089390412079091337410354144016475271636541107314554307325057338529749211325636036642099128401098088377020327160695170803318343770977582569467111218167472894663729102841758933905556547100409298818289765759714954960891710990422347640034925515607929334292948209390679412657255601825849094834167452259265869882693757869538948346054564919941869361230612310496467136076793351383330940962620726748027265371138867683687461065579647636955569666086466983609234830416204797817228413548954513569597022707640944823922411004957430196333764379750991348650762408317339723493552062660655004752268560422771890089457884089680766137800307620161816557458267147271095438384101808746988302263350345397716884732095732232230831703555060817939336867755956284519933426900138097323783817841902907727095257870251368247539406852211076022426446395042801226544511667872949477537683023657729231286609611348946569494493322362031233770762968118491049722640769024757982384863754680372563552371716404595714459255115214458120776787578087885201927643435934479934353507525112812976610131394015931084039880850613655541417784030302716069438748012751844650847400679118615925310742538688928548650108807354657635873279441232407906734236479282077097239812558899869443929480002990460275340320126281617016614424765643506241681498049444916803944752644033093274783332445276634781306563227084857589108881692121502922174845798098565758705160869807101063714958036682931821985167149436610959573834259961342470762652570096258514561000449870141146764111148542932064496020834203730317057054854293228734966016144441521999525287988915975939165388472845683503067589558800636509331130129705820154225955527830791692721141160873486902282605215764877169957259470728153752517743582343919244654535705556260719837782430374710757816191526530280731927980875188486182080217900396923694412937493532754209456923746548381879258459558314121071126511941623213635958773003701571887457121422051883694683726408354298822663511265846561762354535653895775713547836390949190388221064000306190038191926700837929454002475222562301379031580897007002050621923715740460149104034676119339206163295230362763357009678473665179562979155141448036042335770219503862967371041473693734585388435517837708387521566328506541628404377045164697154509877288971699233363123176696946502778315424610517985157726701573787193919718171985580022048147521997837412521214340173812051447235518770156413076296523292037008000266176198715272668803096888853237748084429809584930255991693311607689672026874865840859182254695213713491042781034158214518483446341548577220919856186249306915000241764478973968241609415427327584023670030696345806151151952928438462815116556153866562304553470062425095281734974498673658908418883039354250700611318268524721837402749508386683712183021447313399603072700070091356257414083553013982294339720380381709704599385226068915262158362095788662451887164918618124057175314645462183702179964645050827731985418663157967752588061913985523080624772120828869607633030432288121423461784602490820072703391424945110231124456760302888636185043512934265207778412769005594346016931790439358725530859171845016133835702906072286293507501619980024563180212460205107406460739385394562920815848216692760193880002756853981632615707756899670760211713039202894893768188284319676577332506293396081774272279047456301848915462377863884581659100326889636130060419853129208874198973684749555956150166688146145073515378948185016507952414020733994321441294115381822166219122377815821113674260965421318689254190715329765669296010824313206997164488307594018008931539616649837756158920489387960285345642223525841905081586943509756523121321694397093516307720448935264124360566812372424786464770520959510669310436747522038002513323003642482328812273443616453715758013805895768484267219269888306400718905773297296757864842413183395200345365618635510636429313415902809971981217146394810925539854055936978759822263431010495069051609366011936277709209510188537715571653437536289617696854610522498172466318113165796473126258008018786681688309970796580290091723497928581569383203197195965954074507475602449137712648484695600249793707265129755524018128464236489459334018780907644029910485621947378643297665084158087357719117444134606515771945427662505323995544190709874356452554063347221876796998383071357131376619194889228386828464695800096752704836583879093162178230238184375582270417550100136722919599055036988039993884730652828513527685810823127735483250830267456075303021409295845851442954484485741754850847748208694095548559747138165194635267761753765964355827871224543461372696249944038062066615541135297359416246632369270961248586894761466814444968615032121416938027214299784894452506885369411364352356226407541796625636302259452374812135995514351564165011813642151450935894090005648758680453757701368900218803593130804652031726001892040479043516346905585186304119868575790901342913983488349344308128067769112240976902508873857394549848807054531751740547905907000591424554241055357803938807272574418490850335292037588817089247761662843848306604299775009095773950498120603997224309232416406661800221893803204202337413027738153328121415564033590505406870217729289536349738870957650482240156575865349913170075257847346824823414413757310428675253153551256248766580063033661277252944419257801089117219411937274289703377556970159430268788070613024636075865311006172075054327592451399989485624767890796296968257048065086434997976916516189770112553062057355252595657772786114731717422800811765140568884078681222957905661799902096056393072259132902805798812169993668013135120438092737697357909271375622516413117144814087374713278132003518504361004662833622780220421873259521314388467276556492304824809829457399561752674017142566802220442362125692835489828945031623028520826214530578623007351624492574132108142180437627974986414110342175217152153460028439410112025981329514807067410489352375738151570285819611914999759283490677959684681389652386675131894079396457106918087697249740835737311440721327951897101587842206422089096955811246105248144129002092118516735221078438467677801226697534557975069445215177904420451721545527986744711982528553982958825391790354505960995527985527005944419260537540628229312501572781349370384327489890132622795296492311109701056069778607399501757668362500099387239475932468457726476791019029126354854991801250378413496779982076762385659682083469150766966335911269190821233463447408176544158943604821158859443841194280874237479390794890511999455759963525771880099681497423520403340913220889913983336065550376681547548109491107399783415398120834403518592755617093010309528243336364058374982408291227503263517496760490973123539104909472442202165677727038009885250126701387811018751625706084892313220066102314628076874806237917769382271592577641033122111852677657450855148306544586453703008311199209639615161669059893989760431846672794658618501531582114695709331505544775049119674171830526868489598403981659078632187467445574817888996141664870314790846001448893543632515428479190945119774596932491239194446709027612345165946403186870776824020458813718872842784354314259289607267737787056980855875887542614096655859120197100620367568962219651645408056979477484465945242816217692277249571997065780522666628207068296116322117312703056924171905970666015388290205330293257224526835918123926117130929147537777617795367047929563938614284472273622441744686449728627636071766493485802657427198984806333923803994636650268561143332029799140405205910168064028680331384540088487030198100999345489737064119072721815403937229069768755636883691167217256849840344247980625449568214782628576144298529554718642071727387911162999124807271759570884115056334575298163848207101293515912748258686711218529438074253764547375303423730130154638279473953064816057692636658690376385583715741843734882925754600645384556830427709147249178544699352367700839901485653183867051905188424636222163556616801907147877975030401291164912092570158196659702080163309156820783473558505369448861322293664008651682042582925563161645535719761685804096590307182295589584797070316748685547103457833652782412752087094659414678833031092914393179573285582933243788121985766012785468274939440186462539114804426793373839015317096135059833597862389268827153195343966232094616259276381241039963373589501661701286226799692918276194935363658401698314857571828395141009795462669807501505730992384074365310094977774547959059643490298223256126114608927823711295555455995030615682227940043786826202602971565735899257717275253075425695113942028765565497888528712861315585271711270990575931750212361325575222382034029216844482445417492762786094359907513910981624923602520099586209732446424906840936501542513038514971505324337627938457299262690988840150812824743611982241844657340059473396115151338095391141977070887442730405615622173976520892182538460075243288070276351125135853564670466701810662238841543831329456479010489921940999937703769167283993248826944898745908846309742357847548208006050050492610694613808823929553165738027012103277296866114031498498488920662498163098186594992151136359685097348517310955683521561049424307162745274778828770684471901361765839807291170397555610436535388985983967648279543744341205528272089074869934879576808798430063352133025007401970727443405016999715913737603737207292018715183813409831614271924712921869884444670605155567912696326267217598288424525459730815650768166465350456620765900539354449281300559300643528723636358850592055885900509568444870082208529352624804694467752951445901084254848067103380126633322797538335067095442943344840156477904835525432128367530375129745129847711944160601505844555482678283157515466021477530287338650431737069501469655146398261574559350358785426358047515351462440942490558046423950666388434162344764664943561304690044778949790084770939774208165595293143503079788909857963376732016550684362923678272709813935452311248952176797366704055291468450762981226069303614995558490814222512547123715826613196053742896894607943470653015911385923954070893789928431827546285102165983590058411544763660427634656145531387461448577423893152734467939866228648861895911164847174377565101951852041572546101960688322815126561865277455855746343931639433481028923739946929057581281012384532185059751918064814450916164112520859017553105703083361677803022914031728402432118865542864486051975394581009280853997181689373039848058836816906449985368967159656037599348558583525324531609155342609892756143914920062326049773090603250701158870821378950933030900912005663231347376889452175664741128665670787051194880049698643007624717228554089582786729389659735038456525880225687669772230686723519891352106077715146458102568391389882007928507797845122148829426797035653574979378618987792693970904170689777277413090354550465036678642593153813784467649583308823742008782500573935475543961595271890050502520750781780332581103427430996589600092938012601803330749516131103402436593345798484423652378728624044796135361439825150207187802632779139695622194572658817051366783041527733907741063515845936513430157993773660297572719322565139151746096932306284954470777196475176606991116459736654460125951146483625760889058781376661394889714830067967700117726685902502991409960296285140727903799352487813258960945448001387581027690729349377054990954486522012681474365621995738915764004232189060421322954260763330913739327443971302060249203743582491124712449787648424168888504187897918594233983865775962384031525796920513083150587284404276939837250060391003838386641239220245060276039018136438366953323896484339012822234083453868343089672137993414469174996567492025752780437373374437867736278720360635025454233784979007754470951870562299214807842593349642057268490359799591384216313119350571591947148384364844131613590121239348888881520413394337670568222335779314520429280547345389666345514255060000884693934639093151330529099572968620633416822074456632727129936399530645527261221148957288886836592997425901076680908969351079733551381331221491220531096305721693386329095773263565106940337961678926054341316122412882254533189493727554880410550726017743975401089414125545609864545656402144699925563549537605116309776609108861670976514428638075314646815555587305548747247922804202167921261254915634482267500332279404878573461683564842758680132042107129894263703560963959296917552327022586971167753213491388830679291255731564612690414100624325818024011065722344493167578875280301434725602375984829578840087457151898529725926697309193971703000634769132445924483153179372498830391952156838651152840642838990953447521437023939313272000608762713842998694224226008447241018596142812130783491389045860377325404382853373303395619368162032947971794816178010564272150676900037204749206346673430112733004677117874213384267000041509058013679211190674596014479699163665903955750393388429038942959209273526704477036961198700224341785661419061453350202134636804974274920751973496579726017035643622346073382121690633703728628051724272018987567774918031539449402426007711588788796239520250969605152780857570941191183088029442342448973338707848403099423314659001294580514194999398674975463072488576769839011722852620654558959334421159682069523798942023257562464859813157170497086158992718306057782994216442635924920424788506561772269027829500052238775140442203727943617321015096004517991343173583453195080611127623086745414375396946613597195907123348318200218924089308683679795868588963430307769645160450673956272706954570199123022148105963620807604467752632746586580517299068806542254673021835837380163628552234292623723376045152243134133962646296015349232275455993221211747548274920854988733881986987191570240159759224499760273042364564782128486242919677767852885160914292412471682501624998189988516227034235500939108234746086796825498081714702458692298749296137671512386163738154396043183623439083779424157962010750878696477972389582200535652768841386404064718720096795619682355740532159517838456207842843805934224281613716948583067602096950393859147732542317241877687217299278123669203519602053127283363277826583038190885525595963859977695923819660484074112003206040199269281380207047394684694813423274012528745866661569664136615120069987285361199696671975345374299277814860583775303208319035286741205167084159842129672566496943249210639868231297144327617406775547694203466621741723376349768276736960056783021687032200298193476949566317685394689230043930174443094555245900513402117531484606336894724300533296932569427787239764437798681470420194554548264793041808229345596212528822226329557177941301244215275495633261149179887852439154449983617342893619654909166278419523143386223722324172843086205707934004880037196953374110065002169500674349228565862513162625054182305577513061178128344041512821601012665582275350293406483723158522337921269185708481650841049219276408414317078830616047783647115696484030627430637044706077357521190917416653807612472608447470738228636616049935563987396078328544550905035567940252813617454111448499485521255712214729472329424974560156726506831938371641705431163009252983741482222876826284517000303109261766246988818272974274877748487939598520141383452268840576512089525044243461885092223222996147331066015063196837111959453643521971437570860531632233893378296037728263178199829819090409803440845269671182013863812980089955496796282991174542469901068092397940590841703432458974516402614000372197791846950624900630655872530586470480872096708608764874791855932046841680018599376566433721344924492133858800259761626242364379123469983576909730956727870333144643907162309547742420450360296762177717247496640789047071509051219435425222688082994896278266718098652948799006130658014976676628009992851841210565897076975044869060141032063089431021964344267453241671013570800417906892718545213487790022847191582621761087202601047325344100229784228950349526858338406593989689563365338609888032421746410617521843652274308692790111635152103201455568933198941539582142901048852365900822715551870128661054862141989823845907113055289565688784557234032823376373496749164047470086122904101996104518901624586389877088609990757963226780698224209847544674497755385245956591533759829112851856711378995490986624430122221978797016532917508935390399523802971165082341260534552590008875480602794247982539257982094534094185637600882849055983368384631341519522343609796423885427549110838106421957621262316478173162024873178031306009548114345441789691612439220155559889028365423404453348519688929222617903358395824476161821926464276700227780934953813789807785952098706135912573434576516605040483924420112534310449388681152522383890767710324718933764790687490540921269562224506601748666606490141693456672799280006029799137096300962668165324077075708199349169603653097240945310550743715923329036005245617370605027669209923621876215097724908162724314028145112084639605614095182606484712830413894271828000377043014692935064088008054590189203600969213654383221997344771222529463591134012650842663406206082636149333655840696481632617852454765298186204580489917217181167320149887611119370653662020040786358069343715668273594134420927443146847155280451313057620775448263357115154318357702032667401872177174738833985151064631407749299750536559974123003714619129676860737338009405028558732814388110355784138690503401156509864936525790255897446941803833282895631780804015625808525732093360757882502423316002458157838795791955625284123508118214424597507797164192136474996909429397481765678142819637222029039348412590437012546498256566599973757684468341008538128689902275767019168497860913885697097549996184045039697078853763976382044817501128577793666649340062774021520223248222889852573756913636360611577300823639062965427037161088066956747229544161762334546565826898651836049301287781081102900157873804413932595390829527572392353578057922710592521953152903498053579960856788038311573259750830472332807522182665737482626653279482215178203138745091883762636347046059951382171281702069196524693293122028833837643975327345145971781812221937217940777009389772327517206640332547220159661223777683353399432409680453074095506507937520577782089941970962969236904836244161440206338577613618811123824385985914373570606521665387837132634299520867533566907375258206482334845586409707970246480088143363662996577908463454452779929527613342611269009435274867809436700964307655494288488056455839476038445500931800991015918676747395181164878777199771118287136638495180478823354205279298453913928873290475357147450899476471876379572498741102245031663623137897568023605485020240480770195085947139846146746006858169301209690767900048978762486923102154122938426232746205747888037340740928708149533693242422276161960560385867514304431400617651695919529487958259875087438098474348291349262943293582056026102550916614265490254349950053016840848352174284041805236027953926993152208763851445937244139398912990500494394118799969687858751825935027580501905378150203075228876399651570147031696507686653394993419249797970090299056352112992700633014450477971691432591939454538585809989370539885206086144093992536234293178187913117789983904344286004933249257233948231075271257329040166025206436562966157109797117635289470162953930164256671087398985664839611624601272992035669606152264045188953509502180629588409407117044613962718293455347905787108414318270156611239646001467970425530650085234490040924856834210389567307352767930907156637342723699002895490332015422920692929864232649603365968730006370359866333642857975753151075661401096136278347931282430050241916499383643171311407587100802959192504657936029250821593699081814764568751640200170266011926922182846166412407370829175703564136657494964125774672429236871034206550584582860519035436904751957013892823888445418387262503176816001014368615412306142709550394936868284907476415486512256027829285143932985402291087987707261553839112242317615655514668609469671743672076809950289238498794549375510581624153013040917388993709859028425761793794787541770043927567037447443731484451686856929573671963449339766732483570716088823435398234232332167096829974952153785362097379015040494752703155226580368185011133166042331074429523753424952745115216459941924313136757649199510410475094314972377646226535897455034489387449501833307407926853642364444009705125132426744909460038873438845082165921411347738562897623151562112584493881224873619434797959794839481242073298178194956519733029504764761087630873337196363986090236873627236068375279888346854351139711886802830902711132069814266069001716518826109689703996439921385602503959682757080310046834685807020303144058784752140566212276789601593269918043672073814857566046433757681132782445985713688456754413688235174059278488258807318383957777028309563972353667101575745242186610414102705113854965513335956352870642470245803617924906332566187649527948437356314542885026946851634026358618109639527907500165492834793026385408820089230081446561308889033734335845613306375323474959250369722849693360961644291825097765930976721561598356977660137834336513444249489079197679603939846981829356081690282644382341503064934032928686646874464723175495321151165882973852577463162323111402872386098127524878431723713768087280954992666964743776829268449011614206492403566163363898915197553472507856696485170177604443623052972367041934677822300096253637937326658051638831550271071398743361266290191328919874135053344050683626848723604415708700949174221108851304090615689775828158377436570628558129880597560786057273612902312565714696847018058638242173119908957114765661367692461770085316555580762058497262535870203759135286459457268475441556598846460035214556642506438125412369675204958992224974247144673752912811754823640006732019445675988429024424308788103147385045498841682329309464563989651635015213327139913803589611718517330567790349846298399985979242770117946594761957298008214439311964473426163875334578467469319018990684063023579814821046674140052416360092042242381074971764211407997548238093279090288065023897306910467444752022760600226925212178703345763246530253023534293067568719336426679812537118218308074381177868986461517097159872476746188974118997259831544115120834769957093915306103651756729538460050324576060336906200069480334834207115751528037453977530899325286026934516914244449137052667595357679413922109401485849151700823212598018430470888197397867176591189344821719512697826440774465544039038069793580267548228325722125678461208446654804342153625909243776276039912458437329941701535372980617598077549264592592516771435122113355551142674185817774031970497586294474265622449681455075542313292848604578650469645337559218460179486903804288959438451234273579607714362302302969528045627794675883290086545792855505299943833300650171007429007797604295842179428643032411228946496832600948026746695099374202848344326337817628259644178509340731790181156991251427763982534706829784256272374933305640942888977487626538946147293689472848061206992918934242519316323526638128912823441466509988612298203126750162102306404409347597923676015991283398401611760683365356544060749329907977478326771433859463094431705332306765698893763297249530465839006755936872192607494466202458168064908138433672187872802189069225445108026323717223059410183662659897496338176618008899503121016805726130111611662190797245236776652264079697006301811661375752565548257859832079345450789700085383317416163129597857261070505381854630985175330532158420425335762650733417791955479892747816831673922956898967871655939738544119719804333810512440989552732587883861172665014848022009668002294486028322759485064450286031548974293116695858474174404108197048107292038159066695292572217990303058700339257557570330711416932780047693664872184857096969989824394167826083382466944558730012480941469101134141790280472058840944553889690141295701404386545039852348625507452979590366276618369396181281766302398072723462466259692065840490464270658585115274689516542355598287521851449836986641486533878140231274211964306546941859808345407633211179206441737946761303894665735201062676383686021590344506955932066255521687719186472532985535256474912019651083823178725256867362898388026305231251836511131257823631584009373139681275064493121801427802069932359753130483435784668174241252498424671276265273143844990050609133411986334712629325818527905669665954531140741396395946037859181989319970383002838348289510799888277716504263918148470912639297028471702078206575829474790379903707431346910683334684964841190682463147283467595564651964926393457364571661511709670785516605985630214739444408680170894380857111662969180747275030570503218041557093921545094452608449682985964511094000726087526077761580131561559528959242192131646692788221756035133751386477541021188237012765578281247021845940193698943455665314058716571931895051404741223491389865594232932164728027423848411414966727824052776526231025032638053400498126212482894553536733892094343326763675255132973025394000856756947270549452877673660822913051829879634226598631391129413970250283127641852088475329010011572733418081164268869559371337756357424052018678717142719556304572694217387976563055365411018900596101685507149100775592707558574915818319375295385765477400358899858377636957336020736425172545599264146105522335784635426434710759193225233746168327924224060182965232470894966907620455572370965223647841324741259805539404199907805324566871578295577462725516717987339428782444835729282448405716891087528559510190385123723928510568288195897314130032754964186945182959664689652567221661095354480066584506529667732042063437786681225893829354306095650094318052540216434198670960802890416001624087533793384097950920482279173685387841930480067238200844271434741266612930134412642350570702636139268897913435255748907684847202979845447482088074147301045130059353443250437067023617244772755429003052974971842061791243168335792242092310966598491048758608305905370872534738944301113554843060562961428905693245913172369052360383329266650530873768220127091821471162768306172802366892771026601309229643965493625349119180872423138255100318807325218020199552233480288034907651238389674696369312981142590764372958822267169353657509216040519347906850685390670277065672981817532401058360160020869138042628996740808716875004591885348405789171088618954572669588886036734707895654505065174401503220332895810370974055551048188771565547329849153711284111826525754874540128789023171484006960272203962753928012094937427694535316829789415592566799368428049908744677670119808622993762455557172126265216871324911076488361455314147051405185348422640973734370905592866371312041311269374642364047390122403604529464058926841012733090249129123260154918673915658437234023111446635132712606935379756435849350033435258365801320530149980413433764431592465720965581025485736862555016453958656592935030056707161295864915701380375252323720662164375564350597977152510893993806820032806039170192333354281142087255660361632074630275228737199979811965092557312595476763652668051757135986593595772328153639074065670848620529624823272874753543630747191233740192061922092162915999927159712115671585646374250506921445082059699361427440880647711877239265428383509942784029881983770658633050370048444785777162806838599091411648320240749905109289290888892198070640665513167860801718052905760636958475648882632224160562210739598514165709517715957141629980901078527756796012553789619015277180129860258849004834758815917856772499706498199728528584883714122078921534360463319684927942150672025492778716769713566376201928062937877421586644514064690746108240665415730540249770774114080490107092479332271504207158309091051732393815985828028862995934114717144846778720987793940280425509781247890988532626771918098519771249280589403583664646613432985249434678833055799808272201520945120401594310167484746945962815329706881447029790102064609828302825730484078811743692802506558178807441660133041657718314091011431773029709833502459209475475267964175263930231414440800478452438706102851528619304667053691398834403052543474891631601538571411211337852326339644867826244342901948377558827462345803683024010272436520256981978329217182606880874474754318990631676837383833680778833348908412497570356864522560927797105897925333894784579379388242951334160518878836265618104573678303220078327955032443659185154357496545728339444343915841445719646806431954227736681770409463843721298445579254887737397657691061606275370182678824616616462636707289818582228262629915456270934501368628168914354520910658273238694242372153221267914902550536123358075413523500661004321356255256793931177182500205038379845402886385234511470331113810348901179144142926597203823531715317503544936087268144407939451221711409931315814405380168852972853624381565079342864148511101188161382930285241092122633368133060346638695628179362205226933074603323761761511966218502973132573290646617290564389322632506583935446435695385283309521210433023387885265738166668586500619626293545693436527525492225623085292994854139683441381345489571873522113507757713503757920930356688644661493112007604699143868564087528386685390513369074171405176882911400705487197539244039323884990551340802460175894121436166463512789600616525728267946472105081629895178564194026016126430430030793210305433313891472692276275183013741889229503492443486757291782452430557817266535395420758079013237822566985339484618038107173350847512414585948831677343669849188439801567714749793496310261864520827217693640398870702977645963786100493409015918007315468954769762378710017120304872586040289303599394247816173526899169688040344606949163801994364617868432709046035174876684342279391202766938161379122287483071302908531758823759553220924091526573417518030819037002629278110420910559701311649925311336101128303207215390579022408323346977030991287820404089533362588428682869841304173907272503697146101066299792199250252214588522842837262725266495682585858733298579712672321576730798322523953811437609316615561141762355330430701361179663596992073750753901827852865280560952544270656381651817553193094397179073273505800875544838913490126333457056883352442440029034984465723456460807472250660534149709485757079027698859807922733194201638798341860828994221130634978641122500727264006593043791470102496887883228937957744165232708237388363310725116719746359446281371144311184174725432111346140172493739213052140570587155538097453714563511986403940786500736017181988822647237059987353124659009420189101170134173975786780965918713442544756107158833587693128825722031324789867562466574797726366303581189498239634414597574153346392441022898162644213068921327035541481854207749139392383989648557783454953034911830174091333664935424246820045889720659031942049052456637320088129052662580954571302309174742626652892863192974402906175932938809866688825005850482890494799615880986268340974868875671336835304856329651194078994389336072067069776838851250747944562467511914021456322439236972924324144049056105188345783215826737676240151637961128536557542101691260514758399237541855911764902250111095305047937556942709150833463300126346962766593891920048509859581588353751306724158035250688867133139489838976673779122698906677810922421675672091557842947045357396190289138955032794341232486533681296149465484562488114352570520985279964406234871956965300696743391832991506182268498595451582834517022988364061152761760388333018607833903100999796841848445236253456076829452544314094447664131241844812543361899105265658378626312577970118983007028407700309669857866383406646356169230006667907892636037399056011711775347838770706608777373679059085658199690836842447314612900820079397369618296363241900327807526853571235324005361841611758142028281596638150999861141736861913356727119589463290549533682094994323061800709833461405059187417224681282722959167425168203050188484432320039249705863524174369790734354462015040528602652142580422293842723177516606656820667719527311607501479849596105766181175288833622381607525330630090755245727574130409248569080263161496701518129246695833065892934945444190571045228455261923540469007864386112152142689521083517235452571071253639709947860369991389898950837208859528025686151573060985742069412647258719316936870999341264504710603390316530794037731038738527387494621637504243488495148358844375808157142969562432565983757054518737699989873104908130410929201891976431033149556606945696636714223259541181541355403956992140271717458556844617882827446407487849392602780502259718566303796499230907867286668971881145732444298438797156147137149158202915337722869676728849605402827548454094279972909288946551630184649642673551535047972952515539106382732679217873964141832071606440203429537822553773747120442863926600012391533816277939262619462179203299045063133824651840440057417960621056662731096851716201641357102085557119223156212743795418925367725291714431654176266959212061277616332371397841344149886555528888451184417543244758917974853780287555695102751269944541504432893647982256190356008200584334183882667292475740315617460885277880403497994350351590464110056083672125584827337725960370747033815661328360688101872667759217050878117359605085726958420516751961675135401249342186308769391676894704798051818007383571089275107317611000386089568166498829672524543175807348276057143791575769906832682227214559807744535025538362444276994993749548287466318570874890649357627748504166266511532249739041347502593392644432293186572739023284258157424442793794529141334701197050107083932525694635257145209171796887389680130755738016157528848848963684341624488111808922577643947923495722375884854883503324908263751118442721819115005192249408436168156222424181677052879208614478129556284578778500890078351388191226660045094998709448745347698184273407194273156732941522697051427173974088963441148327719385731444067346042280833148306397310405091125275046430938391686071485207720779901110534059785346371453555907879286736998604201744790983183348690765795525305234711330638716032972426502087918022280542801643976084923160755459398659011946182460017831254412650341149821536913016233642852325692516981233151624237377851864772801886408421130704223798976728976372121523930335207240928398326159003052170999785209969956916344689034883628489675882184475380548788457999609160571254937386953859052396572136949861786920009672742082381381554551843176257132116841989268819449723212124459606846034056119730414878287918083624764350409955325377626109127871920643961059352907281111560316230186426107857780193226178063002218716161602531286800859926842532036650633076095849250611968514803776379833545971116956781537501319024368918822777512381635031349933168993572228345286206653401995734562140047198215961094462037225010911397542433080000353137713991867515097525581300818276520522379692052677430962323597623691708911455683752835690219500075763004005208602085400660575763934176244684067924753292988101203160566773587823453420969437865052932172329696470547867227747705396375288160744225868047254055040204976571992763627606702101685796049232299014391338072300960522374472064404897426035912081773373707837617115642175352061813829710703589644186950723377538176171392883174628886321227584445896104986133855492787062461255459368908257090242673186856833950574893191471799678949460061927053294566196432181952613073173801837297809463694160415706783234176379769706820366983103928499361904204466865042709132372403304960437054943065245256963738960345980999327045763055049123036083492515835024347661350833161868089401551134805040843939697185214438196711436989379755950032101198862475496679057969281227234118575014236950975376733534848076033538715424655825520244334271177118775323017490362700740302191955515278184016512935780473967588097197035065730744552739210990465950349010132864423041862392179032188268807050295588973703621731993304498353222489444417623598185182100484891404091796674956529254658992287952778121133115783472332525783097897615729543630086975248916907827861479992457717099955319472923299068859707435243702016187470620442678609101768207483093468165254907632333557236780470935038920899088775697491991760341759173843043039740601236966399042334036539703313783012088742712789842973584188779192656157418761021572469602762234660837844520043812069349080347032123474522727485791319326692915315950884633915926998971884899051041962179344159123082341316279941270391105040869964978893635437722135142048940838602985328839666334409336550608530772423514496211718960515661921986702997265541090504714710511180166855764237401541928471139513668598123680176677120330270604146883706421407918470925138494863631774480931998738557275983752050663834046780675238635901630377716931776964489025533447032825210912875165307221633143051431758393244114540633155203027244391307784836588680409072690190005397763482644000949104050987264806702112497094148025261458279096090372795156203569705153421576481505163195311325899471026143900643061534879540945017375615099592780836915783038234077582903577869314914528187202882066015909201533864747321542682890592030630634505135120259532755058147177970527310683696967573036605379174000730478669537345516367358665836352769850744056633424960145289965207474711407703339022692132479776957421530710522417427824258207615400011535935190111115821641627672769312703884779582585346450157495670747039047962981404936001655218267789600333837311014016400931740455076318494188053419018198437156385863227111201206500698389196323017555730737112636761276849635129878271125640332512267011962451074656804877678717581714022298705014582638955854124844852408021978695288666738753105844546007237109173161299035334336253075811586374400962097775587230911841553860208908998269816680642944952648205995649655327931440921004229593180061042057961933506747723042381671963407753564234272180562673560299915588738753731844032427278231040034333670382404196236290618856247797903626103764698580575341437774984908578560845828888655764152833207990919788379235356500925407780464703850220069492554731515810563348036673234257623938572871424584440598081207814581499414903505899783597003981431818438001998732018393094060811233793044228478449346705338225573060238381416782468632966221950817903847012294438851628777883795462701167317738843199453268600302860711222566366745239785935312016580163800531108702536406209729379203694885023325380545627624454934815422751303017180692718336085621192547079356533925350750591094491190178619105012237618348722391515649758502400696461906022097027989754837094661502450825212257854438072760579341178607024979368143420150415523795007339194350765726644988969660391235187933234994505657527537868338845195410325896697366102336198425781986793419117042887608293627839545385307847982935064468874714601641960117841393092634967470939073091400339582649234147917899990163000441102915504054388661571726270836643804096859005261694383491078072396708647524533104934479213019218130004981359189295754851499586667919769845538795222940755481133465575339582324688939575074003961224465095829083036936793541317646606959021128857763279743488504695022490389168701558516766218146314771277873397985292230499418236415261387080312123098858137122478923100363042210763095851708879717350566307380065887507041461195708901462445125604888645755463134862303936072846516133200384614784531757338321927712750196332403558187455960488784211694466339333378222758274788249802212827209834250796172935414621009143560473761804311145270322404001952536970344078080453566523868012323222484975243307731998785905666192803900536297197854124409014187647626987259973364242073931188718386005614878329684708749127773058020138974522745354205794568578771052040277738852958292714676513591261826659982248192710480652570906160048726129032184787604335043908693760062869260885610544906411017043107188605945478218068716425164523985983132930207223271186762512365606924414444837927159771023632569816408344850399423810929894869891766042470957018670598819903158457786210982526031188935454348564471597239473884364554501069085532285055958937229351704994996898257515863956732979230613224659234820903201264800846803886014712046311205029660530364019144730198058512274955933568707568204654131203449948354227865066031171560106625730826702511424084015550450681561511986742189244092507801117673949596303444195519719566088629830774205872079186119046478660078571874163134229090439133791853740795686107956642272588058506347607916662188404210275397110158777186127937672766352178579331012804925081301053403250185682597374728051695318291720316810720941830457383430765277900230291191393972059736552390003849811346613629526918355060911808858190089735245536200948135690492574786573231892978753298052555367947802151466586923056167374918257635893828106833838698016188684409574346738916335519181860450128386418037142352736772554433945874903756016877179763015870433405468508057264594917724208860215916477796264163595870761916193251470916941047455719223268008066581001027880338485560541145310142613197414810060950911712937908744919135483901334338315357883671137026049947606404569819637196270254009369626001024938169885059328961003254666708613770553778895887651991484073175822529651809324818880885162775051084218803564600662173629221370633777610242638878454353480902092045399564944158438547822353170268533293602823747410652479853451644946029307624045451192756119126696312569865120759451747382550099398624460917572043383796621046915452393781064616264492591422969487685387037668280681119237630709536010283119100218706539252022745441086092445934412369260573350234474369836540415716402619215101859639420127768151388669801158374201658594935602111427374609841291065920673912331617696171262056123124183460472257715897262984686270374454010296410054204786709044096086558054350132106988504136544836569704784944338846996404782133412468544976640128115994264546922504346922258568974256875855198140355328380921594352803685324666771063860022605973638051570661610341938481957764604971000308630398353681841273220910143963457872798406035043849352271432886734536354035139040499263408977828799561771468499061931102890605948544412677180951576566137114060753177821142332290674174124830840131460216231083265367266259983534448782146093926126236998432051549216551817670645397516912469221419998573960741088386322126091231113279241946584301230612847592156576104141178672806145079116540459980990767440472211954665101046032805822617272445978901524855629148486831894104440032471406408140238488834755276097155257591452806503451729316509125536102521334779667702260442214882665791201969350768396662987732951840574869108582280646905862776788150326353137080306985943073752590331720209082452190075113928134155516518783145412718701268814802768445236041973183303922724610421247163551475433244440474824792338563792909663190488951662128455162682849820267311339462926410160211373104304908101553475155190312709532287021646227020048205621188747188944907435168813658884486175401318733863094448913944182133011219726952024633110562094207575498057758491030412834057790973223240013747264275670718969488736833021175263784654773776534432942601374817949214743571240911463301045064618553884802421211771122483042735298782236425546458970272272662057137129861722142190971568826544748279274216348283344001969837305277508754462570571312830277126619460211227961102211502675308993659565336112934016680160003115226517214705295554814994678277857721779694687630157208303827031413968528539791221218137627263858402039551781719938967477562063444029606683488292261293287895191688970479639738744764245395828093036146031860438840678754655828251464919261690469371305859791115188028698615685218119625204584543004479934824833171741978402152990102993199378560228365841004128898273467073205462329766287427985650804005356035816233335057863104859310137273439853186046680634887592236115413598550826505589438482958073243074222697995181530260796887980445426242574401313462725496815173794383083047421751747989625515307246046208186393487979242934182326867068671268891382736448386291241848744846170531487797105486723416654967257054484694488384099146679308207667410917827153489117333979728028522330313590258268520066781752831579030881292924136711895395008955189148707954977239284131080048473906766622225795621259943358029945645720075317568408639753189145807724805666581208526226569440282678809742359418316143320056027958000987521417887059837998982268080667084344293652283253088618655813301498236763596971059774665890489855680845270980391730312605317125449197568944116409990456602713853259096422522414453710088289536938175957091029166665881209905975275418156120054474044185212920158264922715771549490491657224722502639957987347268372905369129423156642579121728352002543771134528136567958031053003049820543493031530766607093507850217518526919502611459130733778503044154468810509920357925245046457779221606971555914617855320841943558008205045538982166131407471629504295015759620759473069626026911438446687672075170234971731773715611294255159340840546742073681850951267914734017687069655718522194333171638134531965580042166248853092441383094513202077138306941429718056371388296884410206894887191008136438176616430609113395799161642014445394325502290866484286018135337718195153636975076094542161346878117927879373493362873855486415095626748245516478166629397141369787522219551890629236902572685916379010407495756665097095327791424986892171120273924540764188155551733219432375993735528657103419886252830623235982084480909140617653895833429328006567724997348085785853434104031937108538904325614945162821105609634462824171239790883176864617334631751111653381295913589172056656895111726303052235292551657217634197565439307871859298521323897505471982709145722519928170576663837864632902319487824654961478481171131693195589520066769685322201799118599522766200754710288944683855915515422342723216403759981462093876527232611795313104589064786495085672666243394296861240164891379731891991261294435161787316492100896946019178021998210402250343843115802824321579655523691512399881439703589732764285544353855533342268289986965955205724798149625587585859798169943749968649365834300976876670850328110375892236201825449250630156475514597283741946888786941252677909313068240953473105961432399054743316430059606895922934708685522844114759447147813477870211296461796031527363032943677121719431274626411995068261529179400155361386596571917284186279375128056251133343312804231177617387765999964450042188814772901073818324399716372349362532749120436458224001080556912579923199872941072757778443871549081511777872956810757591924788379619435188566074039010380654642124108827355798378956086318243767618906532103382500154258530611232557213448026139959028821692906923393758560856213266394236118025600102027316557782685260822978589441365585502346595675221150991631229732685546909240844110701510008312600862610145569232225377534580987618539576841596422011682158340375151947059608823118339140686185264400167114699411616214608245504608757474912278025815973028607867924873911171922596041612203285197928528635877434637807392123915142346704221055251262456696156040131316788426418035673247870223746240991022517088968824017861969161818983452555133725064114613301397859808199921846446927113282182192103043640242578979703909059409406265247206587406201814937277354814118956744075455733967882769669655877504557793570167596425792920332063417089459301220309687982172534781172927051117486897452476284821143227689736341225059955916149300387915589996808445211506905643249793802924110436354262757398289245495324125616401457359530116347037763843999562461562018351297103743395227371701490742839540096691126013820496147045377158933215978465010164990590585568642136320659648062779403141562844279362194721866874362760513818392746210450980181357872582664318237751762885647340964526128735035718727133972931805550044229832964560375040506422703443780732213965065934846826621170398523207462292978562697246108306874907153325587183549451569060862055518326293975469776877628758346676210978131292377397201225405964451080541054565867220512304204282002254177289843521027480989896801071254317865290281675566914254873171391534224985704888276659822114296320545810939810561053424625601366697957283293345584704588030382082485226011141300776946635041879322826412275632270735209291821218943727185772430093806061070255317071159899871426308328899711703391035209530305130341801522372323232854719935230478045223810263200322235540870389206061288566543569092016171708273652034777194313678322185659339413097288494201664426502126953963929098218242161483506963194268827227283102750275835727402729928049669568803234886873523564670969161899465287992021024677899917033337254013009529833111393826180374984956510582208049094967282011925700522648170502954356742366030105508354489045019663418859704375145517497169654337978870926586604825114785811695018781547248146497293667017264550556556517734564188352128166891526099139313827728163448589054460619600954490961423816567683133711009403355596182535326857555001905276764479427279530188587858773787484814378458644622653556926186679277024893136807157972568845793602572817334185785919927478311105152131143003830892250525005451579030268279857398911456797372732974174608393963674934293730583487169961214264237724461812458548052097364489195178205852104065626947550924216508367594008615401456374024619046106811525385813709769772947313385290819557475564767278903133137842788287637267983594575537963776681898767708483274199088916807830409872232926032813067574017224413401604312298560971131728330083576120663631400096029911745596876882250101499374368124454021637395563605296900064368912680048195017944878370359523645229879792735514850482266166940462902421775726201540178030113614505798065900976699730456652430965304595471186539964548882075980375034118303474789421807403677020226644388574167078755541873642022363518949351587987233045465943200096340501328035961814073474397968534005887056952212899986150382508104797436623955710160986918072953402787781256719962743991685732362627362817699298061883745266776453406010903401694705964911554379110043716902273463357177640027441596274305540776575474259868752556638302847136514157517121136984968873347753897293663601327922018627548752064520614879489358869986982678865536409655071357224145272792430440140805523210145537189416438720962672498991443005527503590664579202331949140570922228730327779805903316139615441719383568207730153127121269691898457162612562027346156390568347181986131867011020005132726759681453232330590277567748240030949138037161810746351746422847127611411940539703160007111068257568466364667065254331855741714833092970178184998620661907656023538311731505096176571078558913675845141180831680266209074646941060539432441376550253534115719658110111673392911319102925434650065362658633237236152834070744979839600143833991564244253046564927661016571331573093254688620928191693373231107296537975463190810441901249434927249963480975768234259339213715869087654332996226216117481128108782388053167361342809395012940366905300636781264008460321745823315581892574672803030790040180877277393750682805720252188411447924334358577784740276740763011368816300495811454161687344489382072540982058274047420035449146382678900046365781621357125372939989085279784182690043147526141522870767468855769261867878778265418667271792759384326338296269073655731080108785875287215173486931157879605995410585494908058814265017205102042746658748727945576686410468756666757238997680328515903690358327563976442160852192505999670318256442870006000668574760152008772524688049482571826178429967339751601973175985579589566476236329028336256310661199579297210141698862732123230625032553107884444586421104028130717797875838412808848237517762695982820831769411728218154744459112913484719809138811483264239855672067966356431769213549463583904273415900907627889419933987405379563801678485103526845994092001890397836156513291766091683300904375597181255714329895102541613227807133726362476887712007458634590364412972848557726136790921120119297120053240489148739909854469951859244927666845290877315213693428562479505446173022630739166709872362081512503056754343713107898492914885732104420234691317162212099798301457725903783683867361559165399088029511435849019451659107458058755406258586101576092125108381066370876436192107003143383688100900572839120655916408395307296898219384643366500840197502355361176472830858177489885720946058171982895127194469801222476543914140729095123336074001539866711022775246446981500315511185366616302141669797755038018232902073664603385914235879463657732855245693184020647048007495611486422318841600290567054204834325315526929450762662086953279293970027911762881468683486521757566987191358815206350289433011896078292018451775520213183116396007024304420207159553404051231856783973038171507702399141242306365389637901261520459853508093213686106294233665813369833282245756407456971411868730129109715760413071586734620887149149631541932997432270417326997307993664806085584448467283756359767647279746394559443294096896620408906757917355110491419300704478402485156498416682796546408991828246171358343009708338024721745853440756609540418519367949177279935099428262230147689832986485672904558478581779143882449420331923592207181909356010767641834883066550052108013526183753936734961970585609642064855337109587651825770219631496515501821072517054845323583842981658444969204544930938042265685913887846874543568312446772196295191750757824697537828764675208561888908470567931646519946079642335093323489415633838240664699269989811499423563543325521362328152669218298093058752561967417224825305253629514537269646370523355966640639166859838048178185154810317891057393662213598746103000510638372682397128966631379833734527938254113906431275810052875574100085550177804511049394896326719533954800517377368108444172201596331157624016880106873154851250892909689422499126984883048092533351289168989609935000936401203580818140387345323598169483188571016882138282291707394298983823729314116315590163108425286656026698325142038871643337993470519885060357536206816841959737246369318506329368411673076543379974528260758719230961440801612846180661843000084783434589036691857371636872515382169581009000651690892798546506508841454663031673749086136648856922999400127526755543867606440371903591676160113260308095160278988164154337912271879587562353551360597854830189076332920826830407614812050528070712813729686485801781726847739169432662690979103511937224414973929502936311137179737791269451570187591212871844715796791498371161867191247168651086835488827649861485579948547889263304507727545664305801198609581487885639540705086516388158735716134658976792982450977148454899105863701055589773434873865240027662824180518301477202373694513108396618639324873734707462863430159974563966991105658182673150772029726964276735601685234381136470972075908258065210073956467499131874988526873767111667051562804536581306777513682806646507790115518714709900640707059831037893379677824159202293435686141956591204293116930428405515250179326870581137456216613878421895457633146165321704837218721412411172593011203320269601887729018359105314222276453272717425792562523031756967834588378565152074153625000140487787374942213270243467106145911884926303657794008256857025272737841507251944880456402558663268252415526890879964971996461239351599917818789410332823359716737005612847926831777103587782903926226675500693759436073469042984999635600875799421046334919016287671512919092565321685441568204200143464321777516966770205209370829888360964844454697361450886698534094068114718657810985523896926911811885184123980475147488406691017864430047220610644611576554450584186736416268734209104617234422843759204581420299247726346575312049835312288985465623069680284631972782669099790957379641318394444446031808294990092619685407304788814910877997088406768497108630904134565013742818579708229860798620236415865816118080626887527577262039134717994735907601565043124165495975386834453497549119054609868204743554377404129880361252729535543336825057660237196159308633285181504858911831247475403404114091045015508844156059014999621199810901457740489099739263620383504545651310357614276897145101637800631756102971498746323821053751969274034529331949218900550411439457228795692121911189817316121164599899621488814804626582937303149912520786566045648808466981752921376984387538229083718826778545512517182657613885741510770025527061090454947831422084921560449601004750809310859160921795767009770159752831643798138900193499231467209241082335328632805067330701868991153443322291058597515089536637792132572416913411830199136440374206963081077237708080090708163586667206109239693781042050893999811601097755484995662316245512103871158860329274371514830171420034134854262967856952679888569319251813639806026553135695032128793833011735062801336114597264401784788284370912518350163560561646863834802081366358283050393802747946069417054046581499080973187978140958361582958057321736859150670715797053492307731018750150369261256197084186238481613069898346036264126569422379661754422082846152650569990407906545215560943415252941252001807437923791935803245253555551279879392894527544186761554202383364012584088024199063186295304689001637506518960388906943429627154534002987687926406319434182157179741696392248395555678785523456529620845567596689577347665537107758719716146975307779067602232147444384267643781328098075917769070385238722075967197059791699502033982725803803374460072516452238420404791571952717987186702062090019201524758025066937915723932119112830434748179883901550596551443375774237322651753404693289012717151956215000218456389346698098769851579951348937085602410404506506318395255604580204224431833355407357040759738329469365161494804587252733605376674992645104504719760711122258716100414920172941565712602272281443399839890619139972230966344937879219155772569683323279793822217555997470118473492953790487264383189509979229523982330671333987847474845779169014399886323782161396780897868379653437443226552614054432101796150532173883462150703088693382772486162200463178752592571863189927899284365853429729519645893824221927870866818474192703403995480972078996210615664716250034365285083043392701152503267195991681890034300231906393224754081650152393619829281378703853081636557373862521227879728441651329942881618061687581284172859858132165492679529936885590983065485522251718055615889653947182183939318119675608145230201765448413242524415727830918238267787556866578038204882110820090115562954708665171551847320906969728912843949986412402908466214894617129985804669019569405072216443339164049243121656165041823283086727011154192751331999894131520823909933779703547315937956225803743096382043605394823081074363943286457499784841144657697460009476762564014941780668383362433333326210226133512065646186606331254811756576394295608883719772279349218846793393057275393286106203449184627564961736049064264158579170978694713382222138683025249404840256024858074098241466229791594467804390452015831737502316258479147181959684006142130815596743690118347016808105733157465925611183110433920220481940718652629834154985681385781888011179250189100943438357723131696210020587597856765226092087542203281328741144626123007457846285192270502094006950317696260530078803166654686369384464981658859679148437193348734549530551553407589862299221293867322586445269008245056763411480992334967671480673123811222407008408656462857254736878272849811990666558963056806344162234596509587370015052175294151134443385410231236309686989502315455367319320160273094856971929771163129238202215454169621503076683412864340793995102782009787476521402824084773686211549850572997671874279437726189441606756731480058938617669217525394545826075141422489301458800727351195112245767302396987431416732357578487217369937532080240265326452712256540645289171169861887604048613032378628579850500175834380713360336932394931748723353553356457576420741410701174183799165670930776722812069568288303459155862839012569790275189869161165967254243353450782880140519515961490092295732163886195895005627095520908157165028981138259628296314206690552836753637207791113215952863713341135234119265443510128966565370558416955283445934182063324356810218341393131638110376073720036358052561400615680038225980639264120401043547521690134604888576518514633772247156341012125607332367748203306535099197206233533249593873676517319197866035467816461023969038938234459111849456562501473186234407727856688123926083748672547755669398796255818182463800717425822559168183952639405704099506700200485274061300273230316489726951698384936572741092120969533529168585615179435754530164754946285974975529928056194765216270472521985950484753915289541695235010090863790293715648687666173604483074598882985375873886162607625785497068377119202422456639310925616113182110387925488272543046141697089597607735974885252416860646200831956888125865697757078301165969874707207220588944410557133348134918411192128155573612842856765325878437821547479759840136235798117850081127648273187980716428510002438802990342367843667289958937663366512128562974482889557865704125736929669960710968280072925093671368303504262795657963351017056469943731431742399511126536933162496535576111719805205310436930222270211328047985993115192514325868532847827794178379851394071856130869557471664925338212140813255341794343051196886646350687107801761389917803738839615142419081939194845022616885042533752578543143201847307334227963382631222171520213368851552845915898195273635122834911032256826574636423210962476524063663416530047679618317297099637267407864845581768673157880363350410831208761252414153415026828505890056548778861305353467562716880208023843287840822563013589406970017510186790393746703537178973789151597512761706167103230084564209078577482931840865092248864161335735542275550363167882258859757463045493105281627811903490758425835244112842189453904229777919838189557520960930746000460350395930318441184029307755490137292564231132014058331232909439244668263321740368762623913993026929969178605448063531556111208624325175212704041245031864426815357135543742544867993262296533522552057293862355595474193015507199023913952853927372740027003535404290730044481792534152187872754316845944843328948214325633046783225703739391125307290513518709054153253955175195393538261134877112305859170893742892194477347010250316992630775906353881087488185323253560104392823210775512868908015575030802183722572717325758651085529276685531757905880974285049060932375141328990634037012072537155580495139329230778029972055714202223933544452797268420455428339656762917581246342999945119604621733682940896196064559883244121625056013046660094687684263096162376639765410069107831345524776099832863125917753251187636428610484653381153983769077106947803766818699737026971127956752370949271053302489216493545945555317113294578930302304019054913933632650739554666008844452503676300892406393887119478899332863734827952877832413314119972790195572431107897872918170638898463494866942822729435059780531621521088324602036338898249601561418000032206650413665589462866091333704231093920323885093674273105101277110251441968567253579594798858536382956823404284202159593041002981637748362855439910397290250026577990553473424128780791671750087744043627565697009793391113541697600586650135798488669001078445632336283744432798076557585836189277619754871689208102145191617393068648511959386773429029262714363378613692645079336129683232047726529458853591909893273195735316009643672150771990384139481232652636317799927640739383162980775757206480367768366869751955374405432502708350548299412705815413913000680662147111447267502964376483999650430328059344784929096010028094858581944447326443398486697024336837933954023835614781207279027309317403180803831140633301906518466446447604861594531200622903449019705215909712504125810527695446344607662639944603687011141935441939324528590889112691088603283717873726419361128847539164689308733964258641237935960679920947771194567704725766796895698488700646054121059707198420311460126995175743529374119459423907468681220514042671884814013930968069393311081840822756953923502823887688810476374264775282140254128209002978744382421891755586031671418459305546100419459296536380923358800744037807623723895503606041847536552295946915261217001399624016048930801874974487920127952041430722902119498306313547894924546171446155825795007054690712857428410349326394509776087156776884899597619184058860350324265761523724644439574240814660608523183974154849166295649184932868329391480899596684550893736645806682492960599215208546613550530164593058122509310622625151815295709186557299393914030021687005476087251373165912871485187096281202102135536302333259032856748958534769660348652312216379962034787876074006587504524129631468632998533408355816217555393991470710782915596384383730437798825951542537806839738653189004809839095729014365687640387527135965187388695012707303744367366799965775159210844236463043684873927943955885978108699661806515364692808681960083344589473688731840830459258255282524850343740656693672399570663984811695241544297144341541472536724229339283549099569783285145403518909251406841946151450617273479081212955495807967817259037607024308072640633878295731102287023407516436065336847559297725538997886929196710685923980124911869390512327623393675010539604483863624845462908032025197636058914251393650525902372275272011833050176234947433496735127936838278529308065015289385680176473750343101759619599422626068483156296836433496010835168502585037203773412275095758508276641588789980372165858798798941419866011562689858369483451632965231878869740990889371948609122242354629962177854995164917917037667026847853768045228601522412195375107637327168780912228067315200012070225251612169427729029775669665937965947552740530258178377875306854936113915631433322268378791568503816393991574505945293547491252612216223881685863856375978408928979633871739018272096667629927154285824607714699391153158597525260073610701003356125661320556074430243450716673955975277485004862586449856386310115271366109145568314521278042681971657508045487827490824495810212503129117326174487515514940895058727557600037966327966808943899043929734737838235462610609180432984543939223880899311041050957191128012858498031418655148330456750148426447256128919874944161537514059334857182613454788310517697458000642850362109409233733208527343451500020868048328042444176060216801549777566627023755767432182136032333752997684399867160703626550344579243668940998353535650462627808597508602931198330819153095569503371251995689250559861714920390461877044312182519550068242314483483996297784065634238586480617300862604334897570677162690842907584665701532370821784490804452455527362265559276729696845275480877337712901869119946368466397644743902657101310606453626984455421657950207451363147397890991186898232867314282844742904582997331185593278696458973428709669020668305063505141403354894978228891266536322215046435739060501600005989794828979369414503063519412623948640108555475937775550131726228993258679335358692179367723288529915297255922389021809677748460154725660966142496923841693758932864380016158299448460041688201216461175526736947716864475961385340436147163026251695519272615158963236474923449956025217963674522811401435552326009289384726734044188827169441878527285912193637741201097492443148430748045642621573221884750454485372512445741650984356441446136155958533099508148830618000331200133083640878734286233055564609369353369201474839431826519582976202873924140244970765806313822588392502544937481474094605613159616354818357451054441280974519583277329458684751857661679813223614873867374426029316791618005115213021282171170548104447530360955739453063939591818166971052848013808361465759283358724735845035585238795718339231426974666619519238762200286464556920723012178926351891318428192669521620081661152036980480107125581953107510553257111309959140931844967514769023384752265649729288271403060214013694965259279800272292918526035926249242702974283463524935697031023363607426846304854521472943262840611799837158274203829576094305370219997207979018553428791607549688931360976371385034950944262600136497972521676088665299276489003757624466176826624127023421043804489438771310524483157973327324018858797280923307871090824597033315482026160057087140986375837943916771057522469376725489925087841291507638913881542263422617050021055831269060436591822839649772061520419096962367610816066411741219498317599540691574856644022914551280429749521511114565490998751215827098874945973211825501287283628745913505682902862688801716639623139084219794633052852818288750803438832332378739828409814580297929085842872515862069619822122083773592944412338439818416785222023081193225024732696740203090551984915170224840169476112666402494816898479876116351419784785034582041892052647283566426890514262566679194549066391341049777822515471978191044924218131507321757394633448346114956710401303237873782247755288695793530334712880550863969911758194510792258257874801187703685905600226783166241137514825303625240805443063092965079317244867846777569369069044487066346884614090184763515495332214883297080487266676091464271736638814686127286213929161479109875640583880294137242787030026934291766454269740375100551810641326129125047016044783362210970107593888073384114327483304632202386929056190487258091303174419905048632482185436394109740080629225078939664542858709104407966331888181134445592331769856522839558276052061244001213140378495849383212209305242949923307483210093979453359519018334745687253753161083120563201102739611115525593372246018284485248865945173068326076533265713069204682467805685684247781761975491223087826948010246051839805862319024241631793548173674976401691390515755373832277326733152233829870237678430213079449197758681893538479057524975237420023586905186181547015491966611509900123049028645109575165395908489187002291137500641653820204213993895361262456899944669444927393804559979199280289836179881219336240621906371477028232027305322561492185150639918150452249341161124471726845069442145084603767183550423755126446844330498978145692671734360464007069452898917967031779921643282058744584185665504884874458045032888171404469591085682657178670446912642383326641271552656305839192050009734109660845535675603610551817048693288113227023582167789625629123168484955754925126452181404488786524367262942643536401571746346166422948085924932207808062451024104910707250311387735354496645614117832908337399117383425293617946910566883256995662072891388927831557593890275355678535932953866777758889522827656613393063037795696138855621890433858870948171075282366356887310897350751860200022111621755178731998397008470075186837246716405165546375550079706827903013630829777583682509657059078226794033540313489441049231230478909009131437420082402434466944717464732781665679159050287507268935525648031496619434632053500947028250672071849774671370153520762329871078269313689862107402228532831465670996546940973227896309977429293634259109072670053903158882274160240188936604802888795621995946031975945401378511012940606610182288194487350616790715593758313154790760766477823384834927549573819812782263939918663671029994266307983151460926476364433674258008941205850324954146572538145509428144873522131567132651181636317769133179081819024478942788768370789642382435780015760334564451227468676652827113283832566337090435104105663923541983574419184443671700340766406710335469469928854377043262966712208546645915014567844455625627090137256148369881511995278773996810621868587067023836494003788281308178979058977089234343026521332582121180765988511152695187522997177434618576404691336461087252978001244302272340769492578492244601716689859274844479116021286881923851436461846815604253973702354127997636520493638625576469597127003808866110764083056520572264472027551943256402171893181486245842627019929990766902523025370110119329392256368856335022644397342988650300391088856633974514118036741255124373647681552109760554332116684170554955548146715930823214523057149221861393276842742276825810099673636470611179157161738075717211934116066267522334380687481417761218783822209927631291071933329676449397146429978486973438023308565246637598754387198720229568871042248385848783127110785805846152265528733813606857277133134170076030002878779352529453585389260957267497645061903490961070654594787256319929614119612631799158829308542273113671346141571523565096422343385990304400400252160653632231205229160901927855047174046606613744568853058925576038759255954717012842130228964816690336561884184739728102420932553749776527047542284668233503684633455931166003096109806087231566422671606401373796891436280218729681673467995953802140618772937950848965468515984199848242367006041225660543859980484898833671374138486010564460193226718653711097576515443241613160524623564463070505706138573125575105899609395489613420514222899108768518820736517585683520495921930601474761836768107613667025872981116737823399695043326684754779184394059157728430926738344496279929364201820431956062923979981842442662656622084525238171256620600485716315278706603633548996061548954723631584810107855373569067105881591983220905665594043118884402304979549895642872770998958851712969323414264475998850412170451949312518519906145266295206116430628898350598882763476739729674295223452174586251680501364632876082242599979398734665587490937297132304850317712325955243836118059954118896640688159951114738055112074138459104413796266748702811001763925968355520183903203849084563647332753913466406925482416674218356598917482690025486203232092941024255529471038058812645139846986448403359660339987954787716426201352249245923738604590222625533173458947462754048761667697818289582997330962336799478441932492066098507435784538302977438027784859051221664586840834745362857822277796477141529898661569809352497005714831921003754486025277153034211140620050734332570089068028683046348816275262052068371200120740259559457813347668730160440533401854017156592541003569084658007859822997098912868698563946276435862088804927999036624038520372909061011013947974280121138980125497946489953311749940837938198185358282203148336268747486486377013127384056376043336559290717335724996644201825433725486912025561029439397319009572224101850480995546081635301889236969895367917503821637855332154335197671592570043849156087745424543294815443905426335447967563722805839525776418750402985141357490575921681561844519825643896438560036127227023072178598108204201607730180732612848038412522168319194673103139315209600736373056470740145271332305522150431567465178433463278250624938025744104749602953254225910141472911757445210606223118751021018554764992004377579073612140096985654445638423828132226703101874632928060117487615507657810059471270798613784843270852063003732591590679153030840002010638552927142063294076747675824380610261029277792578536308454231514861351909829724052114824776927650593852732199494719397855989272648632927228444891843298348178606931123735542028884516946915065589801011070590674853340439247839459924616351747286247559652326952528545888248337104684165606114498636408584498534951392289375130599162114691372980212533069211087022447040922744791831711297917218669085137255575025195077674701862724923372711590751777367194139746677086329856410411992224782654686980510293814850195949466144947674574788222216690440969370604738398488042267150356112099484782730987790866745764489491826339304339571398352940363404919727920683924817233585522875148383158365970936883035413559746748521022212365404315734201177478468632405427449653167322083797597760931080856773380380164085485598022509018126056617619206584548929967228416412596602311925417142114896341115631034156120748710632956365902581139968741421027015667508609126297240419011842202804236140464999796052501871334038849309101074486098483483062055523884656124903069031016575846018595831331285971703564248587331815064400658265397215145539584533834523595781390739313841970511165454039439409720368676153999707575064890194489889639083888186236532805408344109000788638776133209875831358957580160654322098360154279557112730007193494188370756803526931604346355454088012666892191283957305774298334010026763422002462701593261827855169247660736242084689063774355467587501149426263566321025662312369069966262542610454973064238490631498077712875700393205528163847062840970489540412444336797743841999609661485793056806291642908661996727224915211072014692343998261857162806366721213839311535701351949946778510725562705829135143837832409703199826500629975783502592854907588874043884966840666800954553322653064316718163737690447436529605745160862377395747657828491715529482600155476877702964661076226095012637949850395782867817645288314118801259854826786860027188728238355073263550160356171502484381503131230823183982376537589467346394104050035015691357059984472987570173340594084329933106655453561346192925667248927578908007081487515648246503726127297333596392672306164432259382995857726665566650313335858023991681840512430551719398184515690893957342643842308434121583803916921355075771346733284433577667119378682009539605901047600934689802529202539380258700215354879813646848262626931501075231432286646725427605455693513011939117444501429112032924530827689012524336820643105860737904623046211774549990442813645739205078544564840923858937702475016049799930206272193022481759931035096287228535493783802513422741299096169604475889923081505838926560144818517050807038811818938527834741183999194270253242421942380466064129998601067065889252769915616110432021843422343870531287314660627886182396649879094046401793936309479095360908640782361150638202666510084005977773828502739894306910619185777076657600437037332971239861634564628979268746855978828691484700174961453638696477400985127948092597285297084120119330534048634580153756821394310978385718295653594042580844586763039719125926080007881583630506186277346405406008793472782285484755515893002264880327184971340247959875584209151030869915899636744440592292633297773239370972148969662391906737499422676876114268923126031130850617309037828096319710118931599472777268484141756103524299386560768297338835664078900973001442000106959154716927789588117794113071041143950348991953945405439882655576896206840979023572216000065857367947606347597421353155652003731989830700214519944143590251922760921235697809796177702516517858996511965969438935398417392173435800790547691218978505293595725865411399898162268253065398971593006665533499214862094455985755118997586900882672947590975507184921733908107654553165061185884336655663721692276906351955898197494958318209894726422053166027716313336642267104021931436144475034069234062126172213355096629999501480265755683924765377956596007012409505030675533160898250677087379591331328352498200524146848740509060521301303664914840998402358014147594158142259811311670143880967967117052870386955737020419979916510772762044369949175725468501087907627734802248119515888392609359937466958814802859170711668537550164415876467027797727056282530679605059450059932639197074441625697480479824886073635563702187594241217533702196655804498380556686538270228109575565581225129908305026109892680557086502246134957547401806671908194885152352151619987177498399346160969205820373881883638247047559313760488938251016736785851739291985341626154231026754773395925383812045996716127264480561954471781097425446465541134322148325213019986844932540342600728969574177361692560002652139084910207768025212629067323965093015179049088282014162283694662641980799409749414157362357086335240884464309393369547121198355958266280771623621342342826170595521057387697743989783263525604732579926822763357487375548149082248903236032687138595840566881982078622237435455604633337468454653191620046909196786975557168781625096740425248285485241019479024392605633238078842354301406485387372685157743111319876205517696210242863140606456716087982690764425965170962159704551649849386660748786514498216608510973595532322869911832857395196337134955201082792943164207768917082567212410830456216485504230691016806275703217923896871870995255165127742152893649407541748884932293547860699426128716699740153666576329673219951085982920889607845514309239254480747290257796342079278778290421808184136209206160167012642681120871371040036637846440031057167584635928024545169265424806179633710879469790614966342053031319375598198858436055298313706515341580877811585813149369299295899991023173281363995061564801692762089225577111418461531275812900377331936775259052754227666338504766636379417666759171937063944338349956418711321405739956451946515529645042871031426335725358620913681616498444593465162880225597951930624893790409767713185801459752435142461943676959819533467084648346119452651700672223117017572283197335412700162992885313504034527586218797097201844877501072256186607019080076701019480337027361223999412029536621912311544665115090127620685861444441553392509397858822267027917262413421691041212053265032011579677693254894750609669017782287277636035413110383759415362994037443467276314004252848335854012819244169161017286299653805897286431412893412368953348742429346332933469400769979210865711829253967184676398328924593688550389059083869925828192748393595274815450733767481255181474099204599857790485406292355708364654667279193690273434494663903584808222814017112158117575944738556501232770308431287956255848933024671924318354087442037120615768409246241975942432228627267545121360208511612863755520628263675259833846689398207821337048253193789108171480433382263998351956607550014714656284242864332674086849591937110774346356475235495198387531233624889457115401316551401163919049617287582917608716345383636552851540740762631701611461661388730054673148323388621422087858950222193126367305322155943718901122925351578263194132084264211943249388456802948800174368765061978741496028627003837990889081879818368468377194294971969496669321058156913073061371455313800972842510438046296959420056925050246438501626219217261780339356892986005591463758235605311484300542449338593346497901086904173066878804363187699907650468053415495998219288304278628353296286974039490881079976647934033955360511817135195365331660362313124233118289526547973208364931676031385443980621766960421557056250109602820131344651018107390315909405863970522386141871051107313648234677780331029013312481457387441473542013835657316734457125755554604414414861000970417675650453886606502065938246962254382423393266592590845066382643873461380802517577705156974439210426599218117406480006337046583127270527154375868271714763618575774014680075424871521414375754950705951024821421238139036532196644896334627936446350336637001484759016535128505234754075049375893766208501665901379318779521540895769409128163573279332236229240360013494283260511351503038287743562114445346796623804845771824439226444238419110350806694473015528350845957106083088685794640710304144912673057689354353332891428058814717721575339754856350469293441098709874216335820960375082011367896048095712005125397302543018429262179396400501599122984681197859878299653607845019635330073951022344979203541104900921032390773118180351975864821736901149526049272296980744797129918106539754212062461290539112791436284989668893039068985891285647028835952228187816853706526971041436274914748501193642674959603112518817604735231653564144909503959821133583055756096776906445566138722844665096131686757252861222176882982984391583188439402242690582570948401735616681061178180673965820706031723299369879174282050773849079232206968737401479893529817964174095683243094443073477615773355603481438177321114049593460876338871440995300451522255203625492843305150821263675116530791024249310041434349444688423389680329538828813505368815303957363982726438843651986343235666022171646049692331699378252376001094355518831518325950358955158711715232499021577850323027608261163445262713580408870075073529204820632068682546132607281869724617364610718370561294598780494819499372473371553712214618645617451373160259873152426762966663511833817239409677145453909200444100490978969482309497815415933652711916062536743417212535301418855155555946590713737836469348382186817965006918996311919299218486044458472626047416127984542269057968791497254127768539309198622589673555810055114223913067105249288581235954638529957845758906193282125817180767591801885923975305454391973115926743147245555420486222080839548043289023458600372514630018811657467593096315589020335901152450867551905126738954573733635175805728270926682303036644884458888996584759162904842856640943887497081799671815206841407417873830302498792906181650007122421953609261794972384455429354904136411402063821809018432608340146091512178321662152708181559227177463068616158699959843345614659369938257037052683018686366455334536554615823539115469137075456983480907119601168193233424701411480214774163645938229563445176055111389776191799178393190564862891229276423762981883815633695164488963589628816117237969038410477907233463143934034982997746676079739806656164143585792587067460036417132547405885965887532695825054606897806407333743139718161984153905822474052230831489979800663484877478435825710691851379683523012671807177356425543159169760732492295237680864324392299967566178785888334220512921629789896095157120174230063885211315624683451978633404139876809662227302575615373243030480984971181815517172794413256605498957095054843367319314609427694169928492926374921870078603525617156226765104716621385536808093795961355259340687430956583443827801210719091566836410490822162534138573550583138583530694758593537257800444576414623117468833244997617132427566445863757551774821076523988494505360912850759980962445365281803550455796913074540828937257389575781682546662763283664633150660064862685630046596498365776238379063806079050633941033779496201909296156860172733075264034474690708539396253392804633380834742349625954932679034385517945229476863821180961352665047064082747219452642713579838179857533798011348750069529866752262681439317687948677633573110879453720372709922866437101673431016319178274347945951390489647031550537940804787363357779344519913432610243507303778421404200964987869810828374854916722017459837490750579875412472300691375303306432167776749606089227436382073682729276581072361743124571197261836106206528744686177057329298406439336213352072133500215413065285132292457294180135724662492994175652362264573101641254303672229427961578825186694520691200707429862174003393790025950530101015930076710188432068460163211713546710294570128301374878114461077415129045168165189635327536967410633809692796018830750281073929226945243933894949728041837452899491783102936693850854346315747656482131400072079602620819707148940973403474606971827345338025614705161742816047859905636942525638486226764739887209237159487557193171721515444026993633052661441918796276257733972380885359008309744460954203148006720357293961719497295242893990807050064847411151231127782513074023838571568419568125455762423205016841620015330408839655221291682339917867904599783422720052224257429845461064886255183156310471160598448694382941710843806914818900197190712946389363076211293942884416624824844993665154950010978068317333577573304209645801556149938815454387317454096782165411357341386864923354028054102910482183606760666311061486449134332872174662125233085785103771343056288265738834948061572524691218139850273884900289031721583883994603314657634804123262814815224757523348644391685247388478813405700216153937410918447726037795103617765311956189566641281781773667883451249620122134248413246828372879717043681158150344823502011693399502543871135452691490041451774184733558310812858738778697378367317008485305967712602913239762761398500274865087767499812087108307144526398626128082936130338968218542863840753500748158996909869512836427361034809692218707128973604476176817159252773624233395900678738203320229486044950343916339396784319254502932464894368640147335519364733307980857156569273695264226217910044222377059284860853084206749018413486340586229234392766502400045708737686392630537908386199020268517166900974163578983282749859100605204549403083371669988873788445088786705934457077593958819664675313004417193349841791018386506158987907113471674244664384292087995013238690157398108497159059853722650462566893316625106981081368685005793286747101307278007798791800885549704916446045181270674198701724597708071133054110427589641056890167769762968452590156135946362511738346029894081973144007100359649408667976667934630921968999817575871830243928605675386990307241360705281825768768888073770036620487344806085973951454928468562016234719005534217365497442410264176689644235962633809485992369678795513715410385514703454267500190769552377794964057024423383948891002938993891096074232095932504347080813293535031559554633723959012239378269931083374914745272212767107580981115821931625652757760601095378418810354297809387598448398803935704284481243691988989574598907697207743835479195564434398874611611129718547444939321921965471700682600505550032441820752671395579827164501293873564539586743299100681292680634583478140331991055739227999983968250847164246952876097281280079880757138284190036214756121099349613318481682804949636670007940300014102589076919870492918594730185400230379063788358014214397477336208627219468398225143059995484304120085904975522054540099331453440007107707826854041281042103516672857919432316360633956339753659977827048272953498026291565319716856906548993347304495078368444643070180454207558027756679476247827346261104593277459928352633608408918475167718833361325289416433065297132038778381233729190392126901872001848869859176861613985517071067470495329267992949843993784689943226816102521784744505117940799081272911520898237235216148534492271643716515813059837602537022078397630629759906490233697134514807433326622883416038305203771682803724772187117562341090059968328208362060019682371786063887236195830013885241445268620425580003356835672150353944880544214232943783677782138830265301831470374855822642191790888673925220436535175989750752230128219983080691244085813207259978997784892903190174846966853006207067134439868958090247137647745193561446109014333903440481112760440092211956442697020805397401106509900931819630214623577949293124742101204430410367317240410263491097259985401190570417768671458377090327970315130616113534622638875512015953486959171857286610456653036344913898673291012375738619391088659289569764405231828459287810742480603701173641003552404425616252554437979467460700268206249852635449440283866595168378744929467734175685823110251064223780855306620435441926316595236391426441254937789990633181200465915883453277456227481983537101027400494242559190945419536979830574117058872635531737361944540471449784241814947203820808471845787823054737492629374187335411745211104332464785748700444234203373919141574920943670237334483996942059210842572744662738255571892898268521958797606054506456888339870520905080205001074339010062258287036446524931160419800651843626432948055739589007883624913652591868106545007612341012610055053376311653274093829298739484758323990133728675824551454759643994333406777233562665068290361740167629913313960906736540622005838589024878892780431306677108211918329906149710926993769389886376269477278001768507890133478844312297583096611250243832965538695143931726721254726503967015813847741967330447250807074285643141489332688524177030857269884979374791425664945518556065311750591742712900787737131246787497057325258035305653549183576833348305392215579353647750606617532754988859574532591901286935697871850125835083131776862806556868597176297994702753025579008010294749685074937182228261544605731829110892207778371627973185879327724423245869163001845552268489766402399387323618073713450332675780681224451452079369719111462864110060700636432767302500247894419006687023125839768359891704283624827555814456917863936495377323228419434761107650853464918994451214163910287037912827072771649597596822954804533526805603943219287954700921160186923002248364219307875952946286857435517708384360719351476911630478253450875823269708578377446142958291169476597557859708083120702422204069380711655293190892703560296224234406360493930671767054023603537010657881016307556019376829697447126518022823876169936764190413075378437627183848781716040921316482719184493267179691690299017321308406870798780552116516864723264767977052265180447278098852579368050077753855719747141958750092758972037079118236097039673751728155380406814647087427825446771403291820937499850955703221441973404643368872082908868295180356901994289802003316034497343051328367886161952502281836271026548179338187568134088307030444334745364714819277518079061230548042318005295169238752576515983288863047487430449539835157273220316713943377719847580256874123120364814027710514076241305760295048127905302843373565915265551423042309147729150312272497073472590466992751216272525369455208259595943679217660374812310599386495881342556775834601919118955738796371871742329663267207885027855312684073779602478665260723691990141089732698259218618584099338350428359580523466816317004737565701637765091186194812955867851479703782971769614948361618606906419322764979523491249103662902092906644491201136054332935225862500144244797243745561505306229759261541068158810411767505291876306386128663694494997765201998584226429214669597984771864759835507857022692082487389634711371984846262185355083992995422063053429273410801512731927945476559217121827953774504047780187231810318351083019965425310070852278862823598450756505638138397624747058075262942184152319688017881376795313896793770518501754605600185394697272036729641874389798773163050273800817886705637536679489874217155684940860865531711402899491025346790030673797650682901443798890409421770056735875004441527313290424765867568198730070070851309734074551844763699974073009748501646607453271689573424300628913120301256881861174728406290572182741231840105618840684460380407430243312721887443805819914319490178908348525234501248546159114440409074469121076143129033164377387161405671816443628416903076597560713476416622391750667513995361029557999203542395956972877000088729705693419512447707099511027390765560187329661332592165389558181533854869317771702593280248073492081941833922216459288485881628511613201239880855378564249521239843253122315005322780265880771069955902283582495338777710150207488305908876839489932087946381940487123573932363063175928986782104610509748285232888857889101184089456394607458558150389222802580892778209483652055874919356164070415039722667221941546369024860996408968214673150337812109136717347632311246353391465557061046967979939905330545592688066098511518420187560437558905511813388176172574524941647879438392459987919393929419874479892547099527137181550194825186351338294835892766610720374017524405991514207311124696530833994283330496540495775571170964259446547045168551589934948699402924363419844046897567366278465428870999126137457936319716029819924939508511697508800752150358539615489873324671455914304360072300612599187753647961757806899078803544279530426108780149909447952678754869044972943607920422289851146830229619135962494475444529687483423074507021103732107375736229706840473708009721234624287526121858000438022564616478567148886113670645028450491423731460629982977084758657099363853400510176750553092518932126906091814157699100004504791276181993472792122219486073918507099847787257640424680108925177048729910558270437834274054188223139621571520865647119446846655583411869682629958034947057919230049155147008940301224932773818587220777014104030688883818511470305018834216318178648004475120926905852965204348478972624986578370006348507571007956077711086975777572347905115860296034293162932748589235057650091698133651291014031706513843429311029346020703859915466821389968208641366270998895620747539020171796018389283669043368140597096477697488852433820882950440111291193556215692149723532306648736907956745316103126974517554981937682711631134962623716317877409768697740721711907293491007168504550642895993958812570518563178463560226717948614528130757751312155525325066818323857022148872073428182004552610339494292445615978612253943575657976466062347584514538105028562373677127430650292017243912465771138787179176245089548092045473233289724275257615127352300385643000059720989125942813937268299452589166978384973866877197510202228118677831318629148964028997201541967700634634148536258904437781530363020376901155966541071102760695813181186727507340330366480382668931383449989123641365191001363292066673452692811865820050707398607472335842068197560587159296099079969860074188687724754217156092783289150965778792013000658539559881842028950720037469263867751907288372354931584309764223262169900947733512720929434211809095320338813781192129946044529609306512777092636867514410249921330957132861863050883310152828648944077973877265648305470463711498126276010908015510976851230907821718132750796741944142103886966651500029181832564106917500027742660274616871715701258881375972995421371767078574660529286973032012719570402033830355605212557580551411348858497065384826355896811331617445763092522764429829120709238254934517760898551547523570626603975958361514165447369267735231667408836399034414736089414875578553125556144523271745039792933482141251889455009677972398828068916942821080540320018510279101701047204535687331929602795769662238093710775289611235564805733360372691753313478043973376737892534912191663574029870170904014462542693514343093125047280805981814683681705752618554037120775570790888335411055383161681273757684086486212543399651168314955145561478147645633502260054193873814515864298554173719367442123863458499008798190983561984605606911872865738300949240405424284917540281032829727932631021372412625325896833183414725903195106137181799404615006142693318550605377333064275094408040941177322189814824170516211478323763160387545918780061159618842678055802373539865047682758833356820342735468497871551007671955681805320875033332433237238133255761506802144168848108414441586679418802172274141463631868730647058114741377977550388261088746070112981081261601626770539029096726792613254699504467149031762392938703577223856630169725947013887650397954285505121842116398713365586392964877506529047809352035736652423390101616834395092460204163001458467838905743505060123332203652151987540259532957016346204285836421816958266127892349363566056626867173721821259116038959149644258243878091057083891885409381698211711209827638029195839220801821032424550237576847715469464551491513394788494792760994561133552263639357368916823067610598926680334515262122520625605568504560309395569734549948271803585970403809329983264088685221485432623377483096599729788403471154457718325989436486716885642164782254014986388347380873317456037831611356698507857277867314184800995978397978898059125085292906783239764815469450876195734738538972701469308213944603259399589528237206996439291175049162955547531863093572623713917363887613641658833271083247532323647691328242007871541710428428520549565920153730915516834237743243908299811060973491689881593918209682133013761058734823497925895159248071978565209904492966376241181640064547068164060429177858993625560371806949236683668451315736884086323576698845260777296354969248522712817496683058378174897557410373661520238131382060307578696435767125605492165493985963285131901139522008673858072376414445293364919140896679671512300899382978539448023474181936108361082976170673420912970304993033101945506300229326638987617850081514736952018490406314068863947904448338932956778286471410779890011334667919721205953138100218194982405202427724741138028382359072852722543964906129930112417462331915017724496603564208711560846951519747004190705524471173849872556426003760898560758035952643709123936156937048942348727558031848051390517861341299901028031284295785159404650332092327657089825539050251322443262060545997340046114400154639536454142826420935313861133268012426424938900706187805203982514436140897174307939204345598722013038626912904442953636021767053793156456159523032402522040946365048921910188574211060556203579380299764205859448183385947185758206102206579508999999214359425997443780135907500874553809799041500489607043648677898517839388527389082999328665841202735119625943091339285638886852428198125868088954998504782391392765342658246745070317348421507049518320430249449067172187863212446519941421680953906269945911120432144644284028646424902187462147455020827534386940235086689529260052210596204604725937614536827286092934488554201240004304676819073691303133281633580466139805207200360545903651344613173247573179998829786302187816044242771472939404459488784053445703412318637857619601329999044108973198516009706986913284933446585891951688457329093596414828541037054350122894853926336431557525633827838694491932222631781807369854533721210608268863240719180706873754927648439028072513099533716357603107712548066144674395964022594259352644567323565839283415439936695431556321667199345105666796022948901847085895596204541823452116636746588353330590915524137126842540044993781992639387980393890007156133133973510017035818947158241003961628325526217714902016803438410512781897333012211342969969458203234581264325345741923622681220449580865900654239011828646485390120505227431440421921620849072254252107008143108323801112879130495450812966425832516729178408263723986379948340287613789023932345254249341159148512532485517871363692551413985857460473245982791349428100630883574332289568741342173100246425376040756089076369433446579846717233758013950815776833292179495871395453273086784845634528610507554343988976465401984117098071378841128333756738972553666758588097999035529445296672591527754369459126873046148078488881241609743194334137719787802189095374949050262455499945839150359330566560985565023808264468163846706571514913245772035568626331502645017062741010909571576905629449486521484512273541490811307552243271311768856766904043074390903840108741188858864658035793090186668963766240031254706807413110440287408245714500892347325115045840705804619219771281011598897844653342918430352790521398736197143981016002579785440761916845868360880826250857126638589743170584841297148256775846612432701757076738505869382505503771116370301429802615055716845616811883488299147093885208120275326507598325421759727243595233158815696247842267070176483715027994223014365205023964735868805245182484041845845055430617975553252393965550066787857660584184449122395707221707920434120133568361012691224844232111309141619667908642991042163429328000186988644554060162590795213657137670429223109785727087757250681149319798675966287148492584554956393006904591004010280445197411505551839783258467409779536284729839488694874418122543711946832906709454383169600052220372725803565840794018840262452617541471764532667020325663760652789834481980686140785771456156725008124980208023148937476261785180398231251626542027874587367924649676663867893516466095246404977561273406912997539277382385834705907866332166839007671358687886560287458519150861928328994974539983026912760093011620450744073144664341171902379467034832753255259684306084152708662306609696716204749176627313847854981720482221775494057926059049395221828664397754559026594366244148457640637684380159264740923765575124728634902933658933356139316364442687501533561651739961885346299880230998273078506400767547302630399048135345639386695019317869986091926330741673672535907636580350062465800690223069796307698256013028475399834231474901954712710261985394542390895253951123839586687768337091926867582108394557164049965294793462459759274035267978217660719068691374258376282546428164378546854131791916991550106249419257371442898504068102970967702014033245981999559375355198124251349918301741998494894213788134924660324932806161277212660046047912619852436804541773682071313090299469959677056174247819868092801282631776503567297111955613983027044047823478900636336649723549576868946432893254318909297451062697948953512283333336050534875619530737186462281691988160988172733032331568200364729127798221783312412089144636501029525578796321963742202866393714073967099143248559649140065559049637750832085510576684402886763423860269289110152941134679654655987001246573537203849161349234187093874572372086675493495928227512511525593629858687271465106763166610261193440565797857507643585194439135231365260851845214293999577962412581518075899270083867305672692500714324220077329946339888328160951289124215490481262271425641791862435877410105307434807108967597102172253858650333254891566578622029283059446073763674974630691788734127594399214189717016212544406570491127297204125153160144130149496006275074036085414644186088954183027296247001071469094949153587713653589104946352205712881019896577949841200359294629838867636352250857258867496732863838603749605633144765513686859024399452261788431134684402812934137570302868828785002962596116252628168756026060944239006428517578152754738380871701550139314330337757047872948754459251803075764207196910074735620534940365296576236075241168729379339011724738297878565280606602400375579784762611477629111053848223263503743228344768207650288539119301293087125862729044149422491675020436589813260200219913763698806725274394195891525175688351763080374403308229318179850225615443490757797229100564875698047594256859961867771219290156223059641524805577537151907514135071470339809392000220680750168418677869137491277170100104223135593838722381131562988613675605744723683879727936437735931533222988081308526827206270064136658298874882151617613956825116265401716790978737368011711697732376230104248082941407442012603876426135575017385113292614301073449497209815496054113102498572455913647122805303140712370775934785751738344192057110696756508703860445840890723805261354865236808349747652801955104045143708870318808690482040778068298986225761244873998431286476199700545440536441111374372296133918687371943461221572430503915152818508709086796888490187645497327590240436838560928334822696774960735139561022971664123197873726418404181759171136585209864589221668777766189591422521570257700270580369780893564917774769863796151160110348236550055852612990267322030401598572956070654437019730488061111853722181499162750395498220048470944064364563721912403818720458328952250044491259664157538956286145818884388390112831014128293384790209115432607320447841336187323099814560736503352185998160603424565868604620719988214946176688390832810931618187549916624274794462883775015939083031209643120008656138924455383276429456248077689045766898832425782996569161552726274833727739001827859061874749509123350058350780350895241792672456109360005894304457117841412075394452808955416097039512313037420624698615419715729208057370382736605363165239830805533808866199857289361498746755444889572613824984920471534684770612035573451879338562011929016584429334667428347947402503973261244011522718973638068107671971195499225514970508211468604790682379500930064338640460967396721356535816065509471406499420960132102252391911296216063612684058188478202528887806032163624153293889886769560117609031256097107885665487765936350319144257446027785101127672635460655728243971749874009062153684743340277101871619379614476485904932950369976496057172102045703699384672058254203576370884256772402548753017390786262849446502903729019365133268356724593133849361848566136085205936507391909818574816279064394016725873761904987419632761442421453351672609587798606982381540006867081665480850912431851512570588480705806396089452905061282874066461191748389758292998002369322736015529479354411544866218496000630623044787745119312389857320311662296583644659422369143118280204400685575562544404908533998041649686895967923483665395860101790685407903254337363159217332670840207384465775411516915685112828346097231216046108608387950319917799370101265162786661342502767936914817895981801959120327295001983494594755944514945204651964955706480112555884959754394495398584941434062137423098573832188529788376135142077158691472161259535507999717983034715064938483128365614722996303864075376365247453498988660570904165908210501797889165667096816008617566355605881541503144059048133940999183752076173520934278162017964872391248288689751108118130337006295557884341212386669564543445476768072656160421400558505139434617095170537826335154308270896522713226481105247784448846851375219002423593318064380613673173287743800141236031553599765259511514669327898736827537324149695987559215461332860697484035340250546834271526866673876736791090702370228238132959557792539018186942323341217208146245758740638465042149852986841998433814494815679720973704437439492868942704656036834863784888746507104412153489339569217245313774247492751719398137866135464487631531290175945699373489730691891586383812060909375152217149824535095940184857986565582192411294053849141228320030619480330292905588878717746180314038073761477282508044096030114048724531260738448145430505819738921237832822419561055195787313044888914225025351671017713861159414171866384581965468999719371443921359383307273523704420670075030385700653298623169855301563925582302937547917257920847630181986960901906165910096378710001694507092266217808829077338474226118806013662583809731917424686529284016729939405496091556396273974289421212567588144120028690472429228352338707049416686013917881512229564819345205302224161496819354799876926800947689491499242923396779759116339069735460979070510715990492566149733586646149480877515991555627200237769968299043667600418323330296883281023845429516734377980364317171296320820130462473415143015227841463878317891270984193155609723917350515944826627399704557969897147075285412440282766257649556755088417938756587120684682161439083772597707131597022436911367942094100035117866422147540398688399187009991048432199795286680781540048244416490971808874221485505548210987432651032684679844101978480136078523803302338596997125650458709903407641270370607023952991429633821757878459090281986181888065059166210036780582657985210157097146133679271672983521927899695799010138293235777848988472059030972908301217639327563486298694891581255135982473081627784966608609078550603823499430803232575380200195236372371757908352111971500422211309601507549839815908460395329881996606193683048443600724462303529247679494820332370720548963911177205949792878550152230599085692384725828837702520683277349777726913871966326784873903777637761995258517953668141288406096146546596383581129913001272573166296888551840455631450334460039636313618454887859866491244870371226900551492159920098746813352798999996682266803078704024817411635515074009459334553535204414381963136912472333476355658821254081623448655436305439157550472075688665356562118369020878513250166936832386826275141856825078929140042112899249489967766389147885666746989013982434723508762377202659810317565042626263800982648849479539236480723570713209908464405261487744368397913846899487491831707597176641983082227542348232637600392182555756456262178541461611560133489051965781739911513193827346361699023655411436510365246528808683746137104209463648344797020326834408045097345844984709498544580269090180886091053079439811399895148377396639441025937041153804284246480963472203256756834727261205860456697037109120390463888540974134376867586878849043319467751170123978632866306786102903857396447994161067833596034434576383913498277550769058024459373119288979812631440493871208093670149824164165682138110985366834235365488225435448466068982208604495202945543525987735227745690341846995112983020500872782637591286108930519508308364426930485775078650560923568512020365419088250758041049175852639091498904562778025138471108078158303680477184829601587344691122063662875110431400163717119523275796728934851752350874745793696056347246682426267335336325141596707009490071855558375793755318762118471583187759381850473164283878627401282802050593714912223402645878935503990168947360366194465163071961296417723601398432230063918049536963249380680103678837517106233279105088559081502025009271236081832644383736834262362560483772149798614759165633837563079461294561938401890622730296322579031946304768275684362683858736132992565642600192552963659965932547895354750618539166801937510393638276873705065571117238006915853752782876805895844848836317564924225259316863375514782563666160922516028203495596032568520705791495253478866052370945608862913960068315457481162457982568828567262456659815075479808309019747760101644444732917215498509167721884330683508170609049783655513446836251166320933138856897244347162955908492059361233757788955250059360636072432792700820605612479578756490830338344937801889445119975499660132596271409585237237978704511198366634255683557322110995198816951744796223894033520479772237428308501877192819556324606548187988682953439231350772486511131803038002448816203559769924112217902783825655611047161009325169819940645537617004424299759052527264539577043851243459761330519171748843240726423347435916824135314746047118256154291354036644424629063874037044231844511211172164244834757639253218639812713628336049680014890017543853996213522112839017636178444450824631901689079076629575904255765766875156759043306886102257039810061630082311629034056781140334205017570218869130167939668260583360831345424336850825498450578231561958355061471076532791647601625756457896344004230321714068264649036382022058362642000989420647589696218210497706086563089060367420493396782088306680277721524384128367769065818542173813144467238979268836530080213092909218104836459330089128201039904068368216900341519086815602776430173997029842578996685874078816902075998314624934453167406716529032779649725597736632000423352033997902927922277873023894293354256081054346439225407713192092371618830845139182124438369195649675454886580039024221530311284387849449645955254616487699240060831279905969761192483563099315720630606933159002574591260712376680733190885938526602431883398279003937433880091393848985635064097510276148614675734526379038947488437169108256085450283258702127215325219538460411286039907981239672581743886345596038412545330847060452418941847815925655489397155205636627335800959955933244230235393207732750701464359991291427719381869411994987657533807322213725550899224638662015768837658668864394585252153888013127374322857135379438642950558087795669731514850677862616099857507205700524845955285514795074103202179417533717490563228548465519463271306664482153595378584522735975761914044501896433816479844834383952582332877743267440728378869904097102598620116443430812578757367178206333833801103238226379895557199115921131491858229151341336187930669726846034155332812856041082768158981762371713884861784699771067201046648061586695563944291868926496097660813053324575204359651637157023517543606261889936406671479216329990260001661413698774308281264975351378995643647450248243940292033752793092190328143647126896737854525618814212347506550053430611239504992052668523910979138663179197123151634666379023756163221973918003400726128804685222065773573671944919543795266579274534994083165264738601922002870443844592800566062223212657652608093304521569733085216573186481823671190282431985334779331256765631077194999370943091063403634390549959827404157367532829184951287694147107771892839800451676172326613160827059270575879602656729663490637290589362115831103177240372000255174118290934333792934281379835176224788203074274747648858999104801882535655638637835524622977205433038047226761337545015107321742177558880096045377685479996093528358247026423477973001110493788841993016451231386198751293463660454699288032346422299234685070841734297858303833069544956816315073191607255890666927759876557355558865646252726455763535005767705838240560250869493254413981552025410243618415212771861182229974898863138057666523409826512362007329390984742706883746968446005542004435919678852632836625424831910849557039486732562012109442915542722138559859821876302824187178522158303407218580649820863403340362574557067281971794724521555595563882469534275023960731017672920935305806699202632383209106136609478842361908618474396255642063773115950715063178222910979508592310200404662277482304976441745126362368918857428182391923342345124412621746752346465143886838779191137195349835889104788958099138376963581108348335977231128586057946791892078789690339994524216562914500306808950098396902716206843275198989898492276432936321277217665541467989548692410812339984831723287053389476498273957195363972744012343706789070998619367514034812711927533063846648675862152749487819207907421665561069822753518551877317385882864888302423316526636721829147081342108815553243026564702614249715724175877671665072550004696533640716658337022965623826340050187190133966620632568810892690223307621361582946187683617162413814636348419990648442905034502638593192956941864832514079107638273331438374185250991946453280764117753171401696499346192612321138398815597131729997411584545761207328908425540817463310898955271190190888018680329496745333464815407961054333079172521553428256066155174650391701951343137199872583164086833283757517719879012809583122707281530868091142552554741094181810586329489146757930221151790483980072212452085283993332786260059988388494691953023499098815294417063090416715829255962770231066747066586751338123104865790036656938264534053404555496141487629318712577539078572940049584083156332282237815342434139497834968541020523037518723651377912470111400536637087555752178232922251285160815132548812861730802657783263599155715490761215138670760922345528322343249313454603496758421146042243356998250482151744695270723360916326572197497952976163268897592187616116801007388294665026447188699392463507193942275399223940876150413387825268431664531859933885523065930387265226743706414781471904315224625313979383206492980603569719303534180502784895795612823477655302518036088072080637255575746572326380797481799173662010486893309214932226811656028277366707974688537092987380670233880952609046967733607726233469128487460330196115675263054639062122198475502790166192403044419904276048984860626438786812487002276207674185354066492400002375077659874988792536851828906405864679750509816168562037211062691621037040713476758514923366000357615609212122265819381448355706442276477528617093671367799367016926325697225219260389446490251756247765230566340504238884394900551323743001758761312790564692451158920219632713135027432245699456051637107064231141744648701915404211098262685963654721498196331676838941286889969620367032783888264118510811384628956340912235931695451523953228254708616803898162553971063589434508138846517040332111878832299525035827422240168101599738593113985321511688939323611244784599077914645019909554958678604628384917675963007304786476354597955833677075489422412973698561652893341966081960197260104783153747126309921597569685389057605847478884630934403144465370229788420323915966676305938420358743914743319069732782414913747051949410617808971504798956943925401253143646908848800352945262642606081462938970112311798763837735622013168314816811924221868722150272716786908912603315917942816089454018082776274589633589800315746369753981869348107431299291972554264669204270318385055500128727435798438172623143179512451826123439345126540695940534521766906292859435969099339535657686639421660081228101720127480293598520092157928108365037788947691123248177078560638528605170750753408417538669501128816646832731391090207317075058013820131693210720027246157755217994213374348020753940491729609010920464841895121149009773952250527459537777132521530995633136918075036251946000112942163216461644775261804857071856279103851071672661582205767873085394441944393221492375120925248995349809180679609293183454457570971186850080897156182368657823291486170818600139127371350622734757439933125219757503993211222018932190810582168562365304628823350957428264958296649201440842687836175060429499002538067579420010372705543356799292974415353893310691500921611694965978878755861018325561362193587901594225226486946639554331539892428872536753148754118545909090968562841123528016945860306640173795036059487074970034357133096495636320527924969683141522766774240201226280123841073995095082068267770804787871653080907130368872361122977244476957895469747827952353920259451917599436203821770717408632708359687124544291225711530348035007996758090267984819925013870493010729978546796156028272781242127882101926177732661929601151759757333595083752282777143975489104559063087501104592049934847230314895862180163348652365172522852960501592030015553138906125769078044855841294374218970820860859828968271114767773353327378390543041824629117075719309739929332076067483416660594796456685268882177404063449156105541968798402516209407606017449296736097598854597904165590533288606045735789371744443414529959904633066913124467886332970242117074343209495154828498582243131970379845875738067650463364078750231127559903485397924961463307072441460820517482458486633556754846945982488075187487630280221042982209748418047791467465320402837282239060805215230344200960214947127139241061214174533329727393860705230194001132895852293757286806994866784672704745909097144074427337216166021698547845527195335115546296311443320296430040300137701832493354999287663537196281261957251480011220065056379215828497634400141571440754816502434835104264040991491580903995797953484863382648022228432538202282722409412100311752904148424291890143123971854007629950509982290920120264166856795255333848597552226879577685305961633124874985447264894006212425121462454683698286061834237279704151872956913027391449793812155285817916069867606291799618546331326563017105987699825241985472983568589926571004763384168947325972386288700684662523542846938861204451445910220869761056890856139035985571182979510544028903276172736410201981402379201433352591526134571001931634301868633019858703786012283737639800588019775828211123369094924431968060957939284033220255154296504416081359578235692431813206011592447519191552439518586975445132650747200712536497140240040842168543952026448020360645200939940784011027527421477371458203296041691265307322166716846816979285939659696444414821511561596146860837129053427280051924196413291725380444385161185868287174523105004903539481138161591875853402073615418322532894486667060597045827618003249470094372573190097199445605532043983008612549138369008679344587789810289520850403835412625056544225973722254442318384497589491994854588460652667529470448137634479106397801712356851945066432450976911787586410945439712567868515412121196196228155499043553695012922635140978245720783762983132842657496669360568002352320421761390387859948779553238608385975303562265026735452873237203724650117285138888133541498734625190220805497517978319734239676794583660528241326906946407664806102766395315647807699921441987512780139039288309890100471157301793725463552615525443080435170491499874915416549532746652186449937002013346976177173462647668634027769602153236834546881676253185132512003865796150868715405582361813681831665224120993119515146887714354040613727831836605511471514615025188947636836311182464007201513506659854743223992428347749936362342586745942947014357709675704770243392684139734429126870234448213465695078565433814783683459695997677945955522306157317438417160075476545478296173938009116920184117066614416731973541242739880366069230874241849999923152954452539477503061742153539377702422112723678073813677537841656354443008392856049174409034048308771785116180922797721931961526017729463869823308177927565208682364768481386341010651311182812411391978795773856876887724111753889704504786074595457176726355876250574454396399886539146073829284310507636287008797810679667287744183687338028436874826271550083644642762904015801436368415101385859243216449945030844150685528715850546799339900540464541968044264481425427162415949643473491539630257734419608084517185725390002711061104546993021031074957260276264430249305174195340122970589159064925756048581736152397171072845426601426109187476958415909740657936508516972627984763820506042059903918285801237658938621144388899000217529293919144735438127221738039218212291046241114246276264080438223148008143664300188039241221647502732561197040799402424333496838261831604655582271721787823593395622640487947178108443185977225444073256950605183214347580918430722744561719434791953002144150101604761231973576436484498831047591331048790526078762712952635895926715192329323133298337186223372060093862326731377504996768969860847626044029854192118227883170952967682062460068387830940366880937890820446040955673994370162056327902772627605095047172649811852622853428168963571406875177587401939758613325791636713032461160206700491872187053457699810383731685727999056277577162056115642525729491091262044338503608743422571416453015838323839586125258655978118649422649288388569198380456290848898158554664118618611443959703260431670487915396697358013519819863919164792519632400779680664230058316689465731097127217514535600497081505507971243104791349872605066283414318863924551923147770847554899319251769141116995323938697663450287580280704611981049588762155362610895976055074988759108757710675274870972280076246602317996624466478160304967845174950729578147935389058254455229012295723204182287652556377691615853907984124737154300634593118766009846966454552778729274082812478948513734414524172574858405524920746330467732394836358547762424213207766587856274872969674749002160517409103870567861793857118954392822853251370764607800956127247657059314089144232828404061575249844216736109653440252198195476145593046933121493988151213844303560155846580693626770466624432488947772789559311947862210698332646844224802602514069678965348534264422536190796892575672809307541550751344413340386414392601528390693530660643784702637086502193644320389341476504641316934533716096884511618162823032273173957991287714030959253023565414165663046918622262491769263018179831861945298915903265485311110702488584653590104441793518556033531741249437609076572268413936300127573943878369959835320164390075329664854569744362116483983674873065878474070874401076744115773779238564527254671370654553999086145493903844930662649074941088284905680670854223197672323355201028883564653479247717754233468449527907527084196972858322255082627763989493384664561188147929779083966435994998287144343127865246553020410270846716239414057606694108605593056676853857486824790575832042059404886586524841729039757345529254753419467593342695041923255303390995096702754972442957739071069329664647220141308748683376892578450687304029996087472556876979831953266079010636948084546230942627572694742362347931037973116012164793501530938785514255819762040857074435444184527244546077917102111825126913725177880984709939002474436073532201382370291619916249040451480309237418654574096797517905130954420210712449066628243889032083246081320879105553669203868452356204658811857395783969641400921690897309287922336597029238852397619059812606177582661621165780510180865164135063228321327507398993906472193308612169851782695574114596336406979736872589853770830849865354791759464087498429055515448498103456217796545454827607347822515445484599980726995286473469934084717278953915616833539470147541223750516510086451073883556484489371556045709188616147545659014256286939522085718570919812231770682128094410444910642990505905764672459409894762132037540187813909522793739703734290293136796335083477867411738071299083708309319446772618470157235076808120031915415641520418586875211381259176782266993208007269516136302849940478110401228930543328235564567438499018553059996530863339269954791682093143961289982825086473535127185289160629891238017508119270635412655663583186855749337925430440361097151315592364112543692179388175943028066277900211439938018974138105849929097452783721325732914980914537407012085156121317171382437226736497858482833791753317070776693626374862340524700068015834800843148360426917960448010816316737354052693116715743014088407856064753750921068338204903958662112238522950130909572554776973044806144576826716533316054485928389740366331962346518068753214904070107034190687348015402133082311959200553274993739574043976587062818431906703876857235009059454640741660308906546593167285261756303843162501773301041845095271093796681880675472596348441735105739862291262965907597081087439611331482842921854545034870079570583362359319483917649118946467254674105210515103609710298640953624429714604558071583666095666787134075715772118728537805473506915921774552906366068940100691619229729890148229264676225623567456972394987407164003152664825254202136915126762224899645251809991183957301910524580507874573372805823667401679491423131028860643533644131258714787215829104420790189174884612531630164234310149260561434040185565294132116405847062668102562294862948040695109154076525093160375286377732832290046834380464004066971317417236560768775828263323974443741609918948849040548479849343218743617960585974466453450898493880915937211418165039408122225672387746677408467942741868374422274731173375327469628873289703510561391961270306056913212622485586736715578862695194633326193722263398300136468625347469736200062599066742654174286182905778986515392735996737004300558846345235958724727016872286170958176180602283476591051710443164890977340030788871630624052542373756243036703378939471636101005386382877972598495743281185700095630727757422135326195188290115775608973982669622818233600742592478906476207423825307619528788928563244812017033293665392463770853098501891912443337946211195592027856871477591714878488223840663398154885899895569943714074258210771805978457057445665492070104420626442210791671868242062223664995256489640228369237871604430250882943210830853658509471205542788810386779410120875574526197330742364986740362743931895981137165184973551650228603751157691013993504695869773362748259309748192350384640543726122906824050430967171054567298775320296651053778702862740905816535595817426099134965111332469123919458330815547508123132732482402031583789459721983145271764967156654923785185357485769352748904993519437043961200169818258591268055807971289962890785257649910946790065568033752415007019279585684560760636179617048955715611189566469309491501426236528293067057386101900931393181702201761553879108389920662535728567354464759969684265757005899217736421960809325675821197587138822468827820385583658330655455826392823050958658929283716945899994264580401196487865109857283882772838796423227443877072873310546479305060813816667443917538285425074829637649442226488632794999977396114079029779258258263011879478942854855387692043361310224928421992666327819294310554359892297413128342839145521671266587601866062930993556550227359593003042441309037252669506439728689751864841063212779281644019937404618164085371104644165629074280538662365331723300582076965198978116102175737788309675065599495104895558781035467850068509543546370966955493559778982456085918757567245362302087569377958165996398377338822233381668301963483027634385098677440822991866030365257464439216206166493256044303131160427151341198000860629735739756791753534882810533687789939080521484432607790969368498364355043327859310700997425329362512900854305974092904787661689341064098299143582215713725545949564729380942458968047343333576966349680314652569351789231609002200056823060893051018137710711301014124826520880570228341611505921223074536911557293133719593903189096538641693617338857319154233503664416365186442967228060275105978411955453201093597341035411669824529978126329911033705859495855046195527588711574205645891295212817441368070240122174784778447110737322129480993622149559196711762658907775429321013815531552139430839268308117514808854681869627890443982037167906979454441254246274785011528973631742648390795502294504047976485297545845607935245080251806137366356242354363671803314449329489958482849977257049742532246473411066210481047629859924916809739410283610489764953424536132182328774294130328097147050259598135294912638219263368057626938349033882492808688975613492169725528003484931606947874777503032079890563190117558446209929811249169163833203171201743652737821790862047933936727487093177846564024468623208074937586225095303761308728743311984693583942867799730547532296434302602680508993176999309290720366281339332037258189094176525548429432148880602728405704663690995907658874573975553733429480309057906120855174007844855946755234365820259018169290556142294665039764996046803497363485735289999661902455605885966549372258105860580712387725544596390724346460092868945007780840953461836397670836633541759270734283605328989608114688048842411872074118392690096026808347352903165506313042744016493642578692063018707028853322895278021280766740976976607504658550714109132439703197175312209350298727081836430782374306694464777627477228001912648783111098520935299135584287997882907385714096706197932070176614989452252704001494317775771530801371814122826272348605554103856961801726185560555435036775440468083270978935595584435692264846203698592924522897655728474743653586952377767497100031895556527979956355962468943587849967579687008764524126474694754678354732662496300994904502249074727442249382946409885178467924096665338498913140587550301902664042858176961734561116667172158171221837053943601165118685720765725518070226090702819972201896476393602234613796537248444865572125809489709179144843205198670505551675073475313645201667942494166948061361119675963571555318092444464374554959077783520401993478846006763418835256535669915898057104404750308296367121813498533813258820104710623309354223083388826855565891551056732471715690478148891201191496366578486738118903619482744351673085121968636147068881473177592724490616783661157254581553362620300740418921740080669107339464449344229288204700324460622799686001482064271299812515731671845906020821202311243622501295734580790723706995530804493970902393865792694581018906136453048848594532646069008605838524426593935822774528281337253606795492074908743222707545711902598074972791945746514971957949545657757825093252524168920386737266404403062932750346515167856602508079282451893047170250821039149745484889346426503850587255598348150852013932223634570189446428218240222224764624907341264603050969346390647979060256075848750405650327925879632196722823401737878564999985499501837188538667365807834153587720433702226253325847709727158026077885503725086353272001287676979135263584876504498870251413580873789986575443998921273312566973867549198772306005759491355318197582224108384903733529257241210595816051612414993637945769069372869895729160005575624767957568213247656840760280057679170361166482723956825661519835756582254977117449162679434747513768088947687648530971246301371442065954635595433173856460924803355601859785044255022436959457416891349229599209432883085911023569919592352443943416738212865735163525979036122601036460212944415398616931034127472705337208793229493093078137969287588920589626812556422267365441505146316047558965425175458981245711686033068125926680260393279586528684124317816624175726452799286146893940299906126865562086416128707525432331365262104930718542451492105684318708907480130861455986004455731070171603979486121898183266710535352516899104904359256487902491580266608772961664249673386893160753234009845026647642939668164887107464465898823733386002011057259802994421191541847926659500246979442482812811740737353834094081217443824604736710521864736919024645024347172998722762872989543667752573640873776319734092460167186288596959783513457584504941544956153393107120449709581612860718797466061989535340625788363484849818770455139272559510731299887700054043872810125273194290325689821590698996475331895376355173758145206515345556412157837113825231416032092230535645857375018586087747882873225324855040695428534832792670532080078391146611823450380925472634155370093150813645520657159896014571724564811471799527261519118782235450655558260767478227823701951050479724220594603591750384471228402666779864089967545707039619766865780501209471528668504251897963029187311741146689272428673072237549971486746253249973388793835705639412359607253212879472654003060466022143006075788334161574293781902874403700788836990374402765876864363473063482754560565005623621147309210262749059176861781071852559350588250318424225917361395227253186366205191261168072868262979772907004645019150835294449908162885299039243153133203344418019457026706642431010543997843527358217190369141927067390715551760784417062082602374789512479332113679250204394126368419438152028344945817322686161337509360905967964485997070984947691278765726006780771074925020607042559647404784995388039601700085472979894471333816532793893728964918076921617979144833948044148349322227106780674928044117837804652118400622090174056396352629699294314428712006487650963973871688542095558619551617635920733178688181350314218807074442897427645433930110396929329420478357859883665491274400077525131224163507705649352653720095813736277118650369196132043983033191303325358406802194771318895464393727101897355728224712842642692853714696841089241899926950108723742976491923603293902343277751310211122843870619836060292693580067049382498144927184465052404729134211582724131277681180091119133689956395500958019513169335653451805144326794431738088947296703831536543336052016104685538835037804271830979618443579671143705099556320864443385775458383622556514961103344485736798830867551204355506066417134263612422095190081418937762862780291218018202461050776980324536678168063449174640310262082170601045329783139964293979774385909311139947395071029049500170516592986544599853192651399128374170751978617963716124138732514834712677824754008108052370538010908003159230133295394405299769208782409321356400435765830238769594199362696987594740905072483026300966962208775997910283137866531565410918942501737768878566708933386798917143411512305488507757876173558101504840812636836166077321664417749637747288251875356922865287518195189561804453874078205968235861259205697341414233744710065330800039196761770874134182808903239746719727066272992099102173921732793027762702269674664527266513244948307762264046132836840685507622979478094330010513585702387691875946770424228350651869609820395164242015440676023316929821802999606105612704484409970428890169673861946609056193043108633321985159612202609601099668155388912030461405625019010746535105703644203020978325085712788695536112447615288453207442798494947529978138942029504352821663548681328347730540667288471330026648740893369181650404139167657952685385877969735785065922624358512198499728571916647867671542290892139431819009980261284942258107197137722143533711673234735741575975348306304677634640102706166301123118339477409794066903524618188005572006967127763643758895703204741702385057262937639233219639989630345396591726787428322848607362742200468487638805609048623545828917985813481347551099398678070383140904193522341558838105503026287199266281303522291858074448128804104440232783410941840402886612561775481727364905823296434154111697288422572129618110907034664733984521260487673612004650080318410235033561796428001016182553694786638926236674203941367707578408185288532370908004651163398507187332559082238629622319179283817113457914108439332420053735471443151520880971065459269161224884388970278965670677707113621632190663768500350221424948735853327623323733712187350037893426910007418009727984151006620688062703111657806094081412763424307954869567892450917240965723198109090766042979304688081844129781332029266274091684405934895370825825627861320987828480299800755041022083672961195078683103970762745083672844725697531789513078803790153620315967044319164336442301482055212936584043910296218335697763334178941405435136903121436784754488212473573307236520465226549470364554619588366751486993871390614633789068476075788571067506294852162117647395179076235783584609410761104889123524135278242366889533684000236195133923837626343520942578058480056026138587146632810350797271172639952556353559190959610938641792934102096891546517904075020541886295034473491086954250358162082888555055683546941381359469313548802678123396997352845903512277035820924979381130524009218734932270576434014453159465460069068152330270127418433765615041390215449727871778933834563016297884444008145148520959461995804751300311201306860032056521194597521368588383532714892246038844361948106644605535196380845895989152732299413321538422294043273808146688976299154294488477975961317416100740808355869757207083084316502536314493456193486376155023944345495548822636410351802199011059565392944075305342314016015344009946810718070771092537656951568187157074308242578158115874015253933098990882990702125780911510924490921444027664310873715898711293662539833241236933605224071901784965710189820688491305678500173654439146503698679998021162485434278110054344148488219189217738893051422277474215235946156394480793830602638113474192103570707331162265274168090517602504337095785377624817822875440287797413855804415668062442651018921028629257232826406807596350009129155409830437113392746972364355127619196580575342221736168751808115678396620408331564952923669910596437055070509734601804371570092397847588883474081337756657169236273978761242049717348442581915943077293489419153792797125616813517089701279156768695359718844712817806528534678432381044283420702053025494623513993641141483873043673909084084075636655715805574319021058901981192037887841278038400356204574489902756624085071148501511371028863947446382893591472771320946599716370707206648942394165562540529777792147269370671941747969000020397839200888886419136746031712336587183451929176068692272285916604789643486232042025046218168070137601140298975447300769427788596835046426565092138696658916093991260608293549075797629804879173528900683933342367085837369082163131252337871217734239053400779787640156684933773018639698466418238121272833159524598981250305649215688374437319893597066528731553031601515612044840329120623877165764098132999328455698464168854099166252949535714342950884894167659257864768102597040091567517214274053445693161202904393740555858630823421047702583850568094920114235785290239271999858419771979523720978261343895290443835951335129032286078043562051470361051010607929381186918410751947693460498478108644466877996878910003258226965468781110406586556364663112540735742873769287302633998252646017954833153044297616241709777279887426563840837580531104521729493346925124552434990992807617096090916832291065823270782728332359631678333198488097311786698052775803915368052981577217030988238882866184057207818517336095746135745955968514185964679841296089964552619816303761946827649499114948586402715958634623411945231245008783154490881767072004256598907196897726146831468104621896398597608317265089457069123232103588388660399907981219786905053208609286968263897147732257397527502409864572661062925181345861746219903720350595901384917053990712350444169872982994622430925326392636717643260120120759259875599597872211423884003100272381511853751406881707418063574398047808743479331060527032857080022438313604519911467748470718737726181195615728332527439220692790939093598953675235760544279652471134561384097839962159294636542147078772320645875704241559398425197149896713744393204223833623476428721791788500726927278202875429110487678955371611148092457861532424694886312303035212781792686561329601910355832011197775691637551784607366620078445539083877985662820265335281928372983894782682789464360304706459010443199265936470069304205636241258744846747916710911577045844962116309506210398301889758701525644318699479170141225101734341905375573420616973234990804933525499355970198902195432931701968675319195422241318373189373455573609711997550175977253439767454815813504803613246281946785524689354961877510164856249363938555730318968572379102551053752083835525474600526015224719373805891755411187880187134931680660402539592647049742122955321277782722711799053287542407418890888799187854894235717222135145353743658035811316872165218452351030713761227369998927942134166419359677479742335120149628197148590715832275276326345659994439293020231442604486309924124856758824209691768754851475361996255701138362805677206288494376983429929625222425472417857767180926838980184758324309969943389263814236110972669865712845236049811592204873731708055170994946687501292392523681213048325172988169860109056345577149092358596875372112656133111880783376325672919584320536472211931741199633353867924044605745144379764490132006150891198418628373908609118077878961557653284999485885115673095138695118697289519020585441256647054086588812537310635501944733819628634865511633333406857999745397587478135444385637093826241162107174979987632717951120984883500415384972086620191978265263860358798122074773017137068177789383591087617665148656583873503408033190159690096516332869904535358908711097532188677965453689783446564266651800524470440711493769832465310641622197821508621770581822205855970258064467280052440674073016588769116387148361073259627768345569532503001184324484909232899805288269382929954550099415281410592823598961700190815404524705336682292325745886248508409433552387559298684746280829388068584036199813892184034772051500660823184605295322926290965930935576004920974602704068831222290368765157714800127308823179964678582149187395605719700219995573834441967348762812272898902377314754548233664130014718516509563716975188943100684004773229034254093298946309038086519168586778404767558363397418788089422776932515841420959800136982984537842618238808652830304479152385912160231118761071824762142756467490249401060451738584479840198757868717180466047867448576343178053707326934630359766740099391588042017214219802871920692278411061555667609700259799415879076732853967754498505942991934776890312415944547876793267020972724537522468578770459665505154891484108036360563424623041349303704611356723512712701841592982659152355002997345445129941292390640561384095556414990789929821072860247598465312650442034966322248130044544413902924807798643116132793924312391486887231262029887612845721862128797820431222942901859442746960781046759914910434855673155738170928586826417083183980568021989562373878083786091036006727263062728841886297260226528929341105549499573193854159296629258676719378137039296243171219632154912193176318712776037220952662352394484026824761759143449631018561750383246642546912429794825594532646070006598686989266727414431728343248269146742153705762280196403563886190533571929249807018579044276104178084257567035994245354784045655442727964272661514812574300514909709916508869513361595477866775836927205543438732398165936289595705889132438955584640669856918820669397589968639071688114073639368470628754538336325758123422364263604181912431741538707032778002974683908411760045379197847773554501360481767859944325661962817843911911396092482017246599702736441838110045031763796773463442053184622281807794938364004859234808092560882181810420518884484465263016177979334985852031041961809395177305702060829497073035363130794944000348146684180999877933198921961848887153832008382034984452611123953261134361726099804151313957403317439253186026612638744726241072430172166433438552689745279118882508296898051032379329158192789654384802317423300797122894853722434427174341433758957277569329603835450595368356686735878230347047372361712896428883511644319928625220482331481156445875036096681832382312622415396903790953045038699398298496154167434101755912581457378037847291106082057895567501761076023796101084462529737147823657587929844916421804628706811398584334847682322377295321828921098363938146911875299688024721962783680774995373419258730894955743359031850519899022251096615922150824298906725254319561012039838919684053469043829576064422795294862631753532391542649594504255513198258539253038272228782989035078083243009222121036602450946281551717197140342233717843468152957297873304084193641351562420985922646022331051431573538936398328819705848814547728027359932953745339624601083348577252431196147929534781541471541840426762404985275135637325551325658703561025330007775500294767595649654683536904817577231803232083253123878095807113410389393415841796595767024821266800486393932775882434664519531574900442179638285710618930251684860952482645602375621707601571627475826902997438547085150500045361663458762228431033036278779672507808608753125877029396453575797968672203612493764342968675325670207939949897005832145665502729382726148560917801488194721974060146247260672411215858660634421045505021437489614083257766610990644775817395203985317570641647026580058563165099369311330280983719290869814730298384221758331096163859468853633815877444843206751236572289390500626407021587989917263859299035282728215437145851237399875169531322535150188803453965438644184118875761754517329367176713886355283629502511730386074719365328488974468690601355901829691319562560402877008767944332294452592363473903358186727132280401615856086918276755082101457751723757404781205704049795272796572464022610115813654305340244885764041901049667213468177620288998928847596046502885171548017914987320189536439763737960727957303106990428588567239943442215546198649758930152609507750315466196909932273046983496555764206415694628337233873494082362547045116564927223350097720401984097498101771085790746206619265314963474036838718249273127863501293512926695397840424875948457320837994579610311022549705770781869991307615294934923334650645751530126862695725304232916167530569085393209408391123842197592710453340201612568580508921401207666396241276765945591863401623964863316433645381287690574077198237139766366558991081659987301664191669192881191287686525391477043082506005948353230847248033588963024511715628859812685967403347161841646239796999437287334283566698106353017268661907182857289892070041940028847477449911876813646180999808123446698431159035757273928170456935128100510408243037520411223561155664634453845293900355720572263843109179485121069231642549146567948642655289209480164893373227112809381442337161230021232596810318865306077119764942629238802128240391813741433571695426352326726853302658663581547317119433609990417488714236738393647474012365532835607592848232063118292250046368089439504415820491362489770873031323292843819797902341036551031083022536579736570406775302751816872649150669719482038787026282139195533905609527081954028619057746311388996068719126858572443840295289494303675910728086097649108343195747395957888328673998661491886508002659095316683069220341863738125300754182919839761805709922849299091935269033637412050723680033312308721323678433825038780337226502556889480443005094397365406857215863606516637181933488926122287152045259347003520308196587175711254429957944003009438595368649783539684841945970761840205874500870558297340403323905099120920929434484526138801348307177711084258674480023565890040478478737688277115959861767364151455765686369013936839827386527549886508867881053332550339678491883406360718529824576666397029392583115037615815435726000935389869110678406223644001132756940986472742274996783617479922760753527192002303432615639046441461695336030375435811867296754921163603659379864534679893876761038193004611212977686789311732232261767525208391565327496796700498709625341138784942121940986767811715621291090728449594134844276495327766843366264448747507023914517176773377790077281758264043704906789961594974649569144156158259412721659704456424330101024073654337156007526802065609644481866727704602307647375126925981479409394355386163952749534227473924475904655773788364840921371289439559237469490116773723334262062532775190842103199500480181162328733707814582994198368298066669861767815832087447056087080239829465703201315515399387286105151866091151793813014816353462020849564712183496405158524936617561391344967804272967494118487364243026893058688214467386021074755641825572260617584225420445411596941111239968847325133655746770800049455394502953770736033759257190558705061252611059427580757998579194341810469605815590619640370253441853825993569509992904089812848737555163927288759400521859414599311538973723228419820870591034451922598047639191732375124535041608101068409537514514739493102322731142435058046475593756407602106954298249735568081106733150788888051309729108918660667096605422570204923287406153915260401196564416958040472755378265175077958895081403527245820371333663495752826384302972325261575023604013323214510072062370124657277832220908853589024042287307648507619155943730377973866481268291175382520733854048376551092565299431427453682420114088848481245740661594955447046921723630809642566780490741624289032419539969655698928001012590992123541240801383657189581412882699287727405763616064529138413046010124546523144879592073037425660389424281480636425337044609934090449430317692026454614822806362893434693664763367767551840021746970867726850266364071974075765161011804055115981379269313697724712327399341323666199192066708044688402538131359841784166310433319938338563989968839304502633557712949944471698786679033762140167089256702575827354339745823796106235569077438724819305883955633999897475538058324007771063624874666566743169222637749171930444499718166575733504012049534949830838191965906130378151643164747453524707968234548814694625561117478081273434050854990317531106319184220283997677632082362721428017564997907946090678794978325854707821366535938100622793813110696812390074322770698822596789277691840557776434518065050972266314875421111878278984359469129284673570074028505944621958314562355617814441357254870771402816797062319129880821407555727091612552139005686752864165767651531189632669558075463992819417076388828016583330090211617647193384585624828788138633392116876063719929357080164070019064058782122814643164064123105590850875200516815856517767535626074777917590945921286719096777866856326289096895718121293994884027641503530253096956230187458021539351551180424800760129558696482443176003388987225351285658741347310672149664525803055181007766001982718857045104310754662433797762335202420046062914005921749383603589144312013139635479460910880824856208612337898868630951609409736567453602751565923625356675518722287742507862999200974093207681829662098093425123507481902901043760558658387027779508110646095199845276002180727590308088341983278324519543742261569063164614204195556909138721458679432647656075139345450717072168367435512364347716749476779780809566273812113736616119089329638321561218534945912919460476154196780006131822063798674313803070717716294147867917349962786760193475375690217562861861005658748599047582856229546375431068099638996784559522609552695343583859232149651394683235912409317312674857145731185491605679867792269977875742970851999837114406093834187365982383575529033820621994137113315314147927558334856476885691905630281710826079589925001606687601264313574675543998332905797611111717529748405482854373222904761772295074711829253660452777107626031993567740248228164386397360219523299821396480578105143692060293683292418497883847479913408354092193033108033897788086828660602597415840473199020359366257666895954525100500569475674631966676818655337076957558620364012049993383126052050539121109843201917086340559267425185948475118870110679481645645066799413916122409138226727290048878513917048819915492320170790726289648612778904278874608378564823739508073895423715747093201789605257486968373907157965560704840026866760575094056480105752768823966452215903012323748381283224781391979329555202814704064438599174803169851868868104790304348979729574132330928153479272420765373793718649007635236498151897575675656433426828034236520294007281806851026347489454049534177481624481606489757449875650016352148075089827649987038590253316903398462946905405429270394509056667371347343336596868612174737734982047869570791193443084078123240803536476479886497761857288868085341064492341437261939383861911607236717981349868628230693441546113572584341035440166835449062696486508917314932965236809313005220284774917339215028092692694997960784906626993166939292229599836851028465952840364466495382002265288246658137390974534967650860625938392052011405396495132454152602981451063339496106346998606527304526094478444316599651843191355122475547087654483621211490846880838034731665961665441457831940932518966590052488076828457617138439222148175096943998654756892800052486981491641702978987364605540097208676095449732222763445950147344577336412667727940620955059280370241887062065518204933349523442034860258554069286791944873454932502515570160620569292741315315554414885674022967370600501587601494909035290840992238456194494821362379759781884706037201895039514457960004702289646801276019552872870204116055865183008674913987062377105001827777233272010562303244305967657133953667957676122089128628303223581113942915552005085691652319865895409717831275611734362277011988285793565398493093699730564555709970877455520164519477845864413109360267649674541156418218178015904370124532862071477099681492473244242733445585343466649227417252864662635424504098994714858552890640430247160382238646538592406610064782688171190107619961862420804203858261082442688641046245314037036997661006082994424923548174427678008215439501740932071870513576487829450229615845904083748350666485521539708393026890615099538816441006137223888799018484242487163349433585827988010722708496203963354636047457429005236879933608259346952286478565603272525596535665270120716616790470528971201582237921085665675373495223184549917957359685833119239847493304398996050805950898799800552506288206561595209832787988159265660216078881880408688212852136140251098561914788842048188826312032578056673263209434068983658862415965160856829911322697355769743701432562740530006072768358526595781629613150116290519783249995532761179732599940736315836884346675368181094679278961886893654409873293933066179270861822977297443894840700426605073657141066306350261463699989294427647702194334158436938011200265646125246957831530441778572761164784930400392536639464336786178042229362328191563824187904277516555110800762390388209907397378022993092907971507377661525515587871295253150309545941582974194220124345219394983681846741933789376965783554776906491549153450614186410348614034817129677740157375637829574584580441434102153724097422143697503282649722756382352872202780729960989815796121822185104160938545334227559481403417725936846728710372143651899423449061023206564783782278605505863947309645101556040758812948169076576676397893604055019223851254312817173661274155420887473112171259605018900380579136208408736050891670370859196498462084179205113042075146224257324481894420680146476696406833429846564802358130660886493887336041480326989573496190129037483515426206207850759470395742290225380053529956971054322587200733533597000253288478929361216072383084853379903048317582280700601264201820787736095286125015568628028191380358584681554303457835636034178393295563025296146251025301837389634934952288895653487774298123703852461933469612239903629931305593280405138238096111109331866949772670088067627483280818761831472553942066942011003904256496760831822387902216922355148529252356050731422520952288053159945618921651527344163580455322386769659702373602616464819991767251263351974134889395616018025911780763184120960135150289543179596720854242220459563177526605582106153322178593838667459932413133049137276257012171546656486198981676171515137705731180970722798822303175481880876591809818548574414069988027579666045018186411779011218489510421504954344118029905982611668290322331738314722675294966868441101760740086775307704236979388139392891896804642911938979377228343092749749989086368092045144524041405588373630739267197747216609761870156436861441990106820016401534757923813946408428209202259948311298182289845537372060116171683609838298824349150575738886804706535393505219794513424404549288420195226668917001587655455767433767408221857978420205857424182198349365580852066431940135870664267022320942059779079117225115020736479239581633196649953575583902394621316353073065069389809813881625914798396775139707518120213621933110158548420012295641114981314221458065032021333659810096580941587045150547362922380674796129959070215282069686855927580693562032759782615214204201945580858542483885036954684511807086453497225645257448101534234306801834191731108449380483471690283257708889262274417480609752792576406315704116105766797974658793617699785177877917788909878330893491257567562381334764962214276540282197274070676806168120541767266911930538125468438288523951830275310668657559913618582813162016984677164195124843537447251835970313204824751155130037987996329282384168845180341161630106022968883749505426403983576656511818610868498729681844426837275784363120814868426797042958758263789155742696820465616007220096593135361801850389921804135366562843251431630081359536956520424857967744081404924878287041325187169422361158833926830396354637193684464484497395409768742979789683252991342281615920159893622345507502977172618847950487152976470565893703603396085510235530189012977320759839476794849674320347036201116377445497242462661266419352842885302977820041023753542374024431220124274604732081543143718463378390554383812276850092638594305115603390020577753051637029455087611847960599663738463177743448795522850429340834112398945139083418598243580866605431356413496666112853032781567898433685578664907147921725634667826404633861184314829782568312797161656375723762647482736670778756561031412102956161002630340831975919796480133017834639884500859224820924590127551023379344087719618546079003659358491940176412966184562811105277383050566999125751144245466948996695789862355163081848702560039335485665861920574266797864075444924647561125473490236453559350041254234980625969766035755519602732548134207235998839686553324408298633182185098853718010159206834645903885167589331379835673155786890222197299018962962689331211320850174947752321056655332940092119511604461597637934549053647480056492783347467682089570913059450915491162809272363509101894830913780672087456016348546156136851596466428144440764941030573859187967709057414013636610273794569221818246326772275949642044933040973119036823256630473006961676819332808285788000353049251586402924323573887279709460882011014462752343780191296674863654534994767857821244260991859723463582045211803697786153802927679770971634207576850313256707064626370360193511555520173316930493719978899652327438892973013752458441369707459297007716661490930769168252757179357264575910796717880372147687001967154174118819099185197588468838762143611490313094527184755419633994308714278162682301598086635462776950824380792780488772773031840405395104468965518587152773693614192944261290263899872053199105901798273609606045357727478656778823451457640448925783354625226326654301830747067224376524663769259411756231964961416549762898464332428654206850109051736788853951557140656798656483195872340057056627707794646516179406578626591102006689148631277999099352773076739946508054980844202524516702761908335552218862269287518335892225308630980631774299149839783012537122883238581085858861423617576568065106976721867227975940533778900608679004373751522545695313862817423637891482410246566371892602586047316010480292209664455585938341624235381020140232528244064517579160246693834678521083917487738342997328358550095645133308394746898757270467220068677144112898747826994227884671144488886987685313865577764768979517290938530488472578021908930411470549291095794210203146848376817379543148977382685787493774510111626967047028663874130770623262212842036642942781224601295331303782080571211391692527750034873769031914627994985212250369718370871082094980123624318284993003748750952941474199083752426014444695983410413945431766812285600144327692057653256651262835258888824709166260652783360688894665255639124868461546082422695180534926821860993899033634497177103067488793485786371172119513803643454045815157184141617228691826574166162512021444081742222937776915303080986404413910918327758035004256785853274943339649969787961884025160410341261193838093693175411883987435828628580756193986945532130582654879616911136286101094646854914826191348434222143003391174142953419657188148356972398331979100363111668347831103543343952780505128688655100850085510873792482278117948679768392534597891339847849475014282695421502876172742580463786593067971216966426841557143091000906280417936442675989357080740785292841797146353058838735381544517807260943729189756761501339243579396891871158449176853320726700019945869346416516472487501637024433902128476807884191409705817386586308812463420877084068413781531417016459803295413012034092519475157098862843630188999718989357044091824760646394533505836070758881254603534804144798160544303501188326074907050188095839941686735750192015383993674512457513279607165815318749574898448310834283639679985537333420584938416938955501659875164420187308093656402314236324273409522784732773063142081521317616075016435223016406719375980099211147587530183242006552684501521096409094897866898119498227929044513525683250580159015791950561441840340857780226568361841295621830696923798090815918011848940296130143914387000824846424724453133586763441342652216860701582976604623474709718132534314090454095920590036576574089243040229530991003022702693615452562494085736863883502054213953160839429570187681899680388520158378667056153138418959942026831417516361594795653912487782563679677361065002575521538042446528982370744061325180771990944428726143459014884756006596938553466885115985581934363155483266862428786664858673801728825530125096036947553219824078982910801388552962814371679220079123361637995917200279054411893040717105590212692686362764091398206554387577145958554301330687508962414170183144579994544313693601712471832098790695279361598524698467324512387212118992411269094496474130020298880264954868867646425539520054139155620992291324059048370264373864499075433997878408616250594454186318813348993195768712246688814806615338988455588352744411018421906973430375892796967473855588752023787533727326578066240902823541851699912193482789313344772975731925794100922225633375314119939965677300883916515169247997072265249478471630319618366517821765277619875399890284465482356520059168904268617085292346494181839827356182487410703566855534920891609437189788303286664077756877624384495508249896305445052168553496116273648343458518216742304335389612672547873249529989364363726253372288329041836586276698195861227797413098159621716280296838116707016551814942418035196524055662640107354568490176336946441560688614675360708377533809373811162917213758709453996097985219693212935301905480273600577805873567045826289808600452269428064016690811578410126234104653737105616389801123541165628116446803779117131625436493297313728474729430171889233239895303961486358017694496172054521451957694339253381532788140839319070074969991814155771568286097468591776428453514505153616864055581531482146563380124204019712636465063256546199281234636126358551972773258253688150219549246539477743484519743940293045850999701964166196264956775723481206943795650025958402552600536980611582286498620576943806565579450104906153057094686363907140000148685891218913911758217848419142107903858323228739826703252052821297532214829148359526262363790942445698325672458663043475758270388282555036082428069380387110638726002382516952567111712027592022588756425127551100446551544687766309712964754464182779507223444508367291774493028830185296883574355155881484160306726977867810451295717844371106115977076593802416755559589309390434716411533138421655337555873915740173360709038511049994239860526390911162284139182514130854803690485236780771474812431894697049224640060482688627543281992553431594560404480590226452193977871285272459862114214801403862931853733003503966471919308227104340126695790273928788074495932280189373028562530157788603476057612566372121709378764983386544860913590372530371509841969663853350032498256176991735493975267156928082675614211139309625862700329879520157064496232771256692847840831438464061613115325148095840779610082248395236304290717322761272707429652486062219327263206310401878265133326937632558170608755226830614006260718372445471227199277006709401543764047901374534196151592439703451298942207245194794030589729396794751695127743466341391204917262903704272729862652563112033324895386782057381410724075216630464570199229162575700834067984150641879260747586723543965693723689615177162436618103794818201203087923278103953885903103784398697582549623261201479706095119611321176511940752532348984476671891536930593485756893412421608912441702418048681878845801182550311958267985806705694329699864009522683728423866829198232097157616277660797246191453651618781994523751088098537275938192412856178850890048311909655033808293367055705651962795870072282327572142987250717658128084297626058873655635143900526169698945324518402546900455288928408852188932990417797967142261802975070332819244419606690835757406523966857327897705043573802135428782960897665922043593996536994489440495258678025769930361470312653948176493558309222000053242651723064059693925080815167132604057767314038953330796595041190526125899186223148448645490558173831179195230298097190884423921210154097373811453422158661159465535452020538254850178782012150534583761508091034211221239589755551277063606303954622159065173448723367595151821854551004548139447598907986219362661857772991442265056575072764716353032710341102447115986885066795507753773950409340630517290761743958124398640814482743547396469127886712824526234077462258278160079094954645651991142028966825414554664246475252002371104293412892752204439537040119827418164196910554380585451769213632627022143966252416809433781067816434146063918221463193467691002467073461896965043577670821352788326765884954863677863713347313765100060312269314985127986697994187200395834311928239648484522322679712783668445738474801819285209777634513759174723496572970880225002778819914531616876125828723844923798568859413603485718744004332052084246403482651946255909653448071434909935681895377571150454586211420732484905014269366690499420191239068705687224784814755632721327153767663860804481564056801328032019076626375359970098244180375060753309258229043755874845810364531960961623143551666752030042852276726319331793549572985715653677071634164772198095615639841813261938697644470382242980319575319016174718430257701136688586343032377365693353723484721338664948080817779476579954756927384941364740641660811085814009485354697609806016588001004018811283569658152006605229974118732067824507144960582313202573783710473511980016753446993053333000805151171526037380265104090676143739229063694305877301848924237867702708347375342507730512214542198811472059321087834360399178890377474451223610332424218960608629879025983537042634406978021843217284504413498814811449714181079753615613503526170781296898006801201774726808534861445748202025513197918289997799333460656445174356219775317698736014060087252021572745741163569921938916595716346564202458793104198754413116662021722277533074361726295142311753608196257803448620410402177324636657798587577781327429377314962516651857559564117807307317007471588398182473747185719096259531681365973823450078177787308667347664419526934868773747233901845816880336670362099594756174238557883129612950373157754692314180635447837627423338565011321989044816458265497971066439667097232580585582479160900194078589043519715205935283736912273202500376295092781730407749458771587417944282099702237284468283889287470804243575074220105074464588817324856771443942359201580239312952708320506491951852801030566021767671764388386016597853668780742322731781658820531919495445605815939759737787790137842694082862152964374608116597093374177300314720760744222221885698375355869396283828154821346732281207835901140204902542009968638540459146965256385112628603370414270092647584250756489114441252503238226695243883087836670703786689902041826842742408136985796668518115009115006944291580107885742597751931206607383582613697530962891445255223427669910862157286758981153771657373755740859125867367988914076586987302667157341515276303924277529576145654742633474527443331509331738317532304826136111068649226632719614902004105363520721088647933803035483888141973413192778364868728496273395925052373268813504122652414370693600301296281287072559868065508972482400127343815449206523929195913429837294230186870874216343257065508386983361397386193120223212616610148003025432137012388097345585154395305828233864836599936121816392962836804014864303296974099260529509790009321393778747664111263732375640603067384621309537862119070165695004504804730301342516791653101169863460642480517503453924824728524198783906998659693301781534611688978683482201568393394585004687783654473455236313579220413076806216810411516196257770928728149433075708227016672255368728458219414645450189809107497908175328486958008499678274767996508358541788844413068460502173874673395959170431662483302745679397128265398178215877018243475238654527887572514789530217218631429059586286885945877341878513309205977158389643341944665421608144297250470722803336180368152312158131685960278785946208641664166937140623594141508353685033081717740396483548681343629607293624084969154622775310116510248595040454985047717777098538443025993031027769771325769651686851813829638498732532065803246458210914771024353907842573611074802135885911427100559913204698713036000427843291991983758799239735513542899894702790456038138850866018591765642702022551297087623142713446204508048297856910120982484821149177901637254170219128882000012095049089194950783139966859177238968151544260183058977770685066486684002804797641286697508069243814115091128438083001137846170823971633220699479921768907375942436883888016066244182201752384986009327205283417093462274190889655201686448481543875794555775027201102619594597090789105131201170430070215906234254574745719207985322625408967668974198446828856810323795568607868988402367041968183365245248255791103628453392054967194459259762836025517305456806312637231320150460615284475625333821640163958837470806417563261730302034980794711574811073531213462189286334803497860001445435567025908977348961044491336071800958981835445204529765020036104402003260717243949204424016868239377966941722325698013022978629175457361498078480776445253050181379866088197741472698085223521647605646894965744278209768192525334822436593689656634497961637105443246124911840593788320921845069515023495686356930406094153426493852225708958710549709501520809990882650207223122044886466406018792005230978163554740707108130602102374891949380658092147517694866125699696872946342029430530048440990301895492819476746515644454111378341789320786001407579667337584483181555630104965979159698383781142944306505461023846631943646665933438629524571692241402997426525885262536060864826171961408430378100975845215284371088824285221943262040389195438156889385549175192785867555921299473656234439906116820066283806128940333181183015217765750361346279500330241655701481523635328131053306242161648304070524806732164156593938640515138187214721375731897234442820523267388261927574716009061510947215883693639347566772688498546640665946260504238598551151604731475928330231298550450043495814270046790280227012336640081470991175611875678863026184312542327592748686578586281175862403583577303758391350557396075109069391644997387211857970003948509654500507123691834957827090537772727481004205188830737621787992781017814697513627951270669965483228137790413489846635758804681992598818506751517413858980654569832007391287886270290372174251057698160828462860670095280868783671256022042623588524000230481878244481901018597874030829003221218151589464734984514350034982333992148327643192382520897579188033060811798293326411389447522437006746376375227806665481953582225120853456056832573091107225014773652341305838584541389597258947652139471239054209878172939853039538268887213216189568101848960005038750150007336647079663041348398698371741569450417257400373252064724616573544350392549063713662118742097548718479842968365035151818295032638061386469802628320914878386158237370665044955961276126333101078728208186373942129257184608840726370520373487570849003328385919357366689829874700460077598865650878749827142416082401469477734792396416954288072612249089292317307004707332786032457761953655369827203926993129952429176257775124380391463213152561491524563810101026870422228850044901846691230182442904238920758316613689417091242211397435949601652061494802813347028069061114639237072269175558554683736167182557210468475861619931814060015434579703579366748186094643377516968728439639524593039968651959996875523781012790089098442820227522669992466921267867315874079591195842612701775673734290417951322206881946126586226773434295367013212679306480172711264507198195497865753646169243051169555965287899282365276467725696737776027047347408342456351467217863411647582894316345613667481648965143792106553358916527277459002412549211392826324008844019111250632650284120736170283235536617959814415295378930924819405152133413798787176772098049777453804783754869965883054127109569627827212790735082575039199070985816464675860773365601035892795665286452889455582122423059410557819935339291989260858147755589414069262682683700267982266814387165472350193538046505778823625371700071841567611137979932941383897116563077434105396224660329910703834504968019276600979601474141086882119794732982227993179702402469813152875255130923019386703746135821090468458734001457910775797479301160251514094730618547350744185856024733900200309481921543586444527000086381414562604034614681997717740881918605407621142993137583206637416775299559187271484542702293062793839710043550457055443172862743970085423264186023346161383753038284748034145245702552962031060940828951556712874300174863796117636724692756050018325585173111485087915755071874058538625111723201647352240635664583015109589546938388552980778073891700804073427715569406411371085717829204817930817735162001205638915999658879227539809981080900590970362504463733669475363108306207771562733389671098942880563775301461004199352895371904191401611515972704153921251201354292951806772836905608097423659170026897944817546818226115327745535848216520521290046389792278416134538596570028235874204977979683624655542134826630547057759080593603487283313086812311773558773276835970862713512782349519234120732129930269433058316377698804125070639993778795887248749490970758442829762517908814730544527044139784171884718820399000052273165587299832695236914406812894689259141028377119577366898678774830096330449036262104086685622114437738844517809995197402744917267250192191433109659216624346662004665105622578245537572746694149899127449755725298318500883651136863644894527465488515169487781472902996854147898428779782056603338920863979791554821578806273691323301204079710059955331979727418278526016424122420303280643771765324383853467168374259949788458180357609787941600109212243463051863338620562563506736554208140992017152261266999534761895170794970793041798996469756927820687801405068999304019925504230372237916408899724433230992643387703556428867282471459901403526754694053019662069752426803418356302408249393687987355740392970507687479938865897753518316035212781000435988020963040124991768396515369392251406708952142061539341715059139590223768020714568297876106530214702075191257023078570681619550542730252534710437176268661716243138342675240733194777855238604471005383130096600832586004007523630198474739637143989750996923748139538367198473239919269782995836362179171837962877514775014819818197638416901896200049465402454686608211253677971793359934436244693538481132888645830392429196624250085440032956121083798486532739160762913038215190258856862485071483206747084700674600199008058838133156973431569238486134082547473905924885850890888999216854879715690370289519090399251070576966648494051741921214656372916206798178249982365572665625466974640966757814826332264733570003061783635068533737891823498363014397910167055473328766036054892241516091528246305131971433455774925844340882514999499074801101134446653856373866976770821132311849482080014288291801776128392770012037273358530364086248527516368240853716081994881117911668445051368583540644223595239207250125645515477197657797054831349790180553471998209385073412589080350058086072131155012665261750896704318702061176525113242353005021437862514092889838872423729575733551472268375499460938431378519041539182015922808808369586314476009652759455982786890431382807961779672878544896578793535048388613391417812550618466745357921269217732705375898763681128036569483313795650283659653955454728311614211311460522172619226343182068141597322539611341073694786515987943051653235398526083473826174066580530699864960642563485471436846705772211244251722826423649127289920986350908694219558154509365714230622415454032233927306964020210135359916433934435116569624605995652253027957265275449387557997417554645305827024883587761363359411452381790145531674287017180906123656378741333843304246816138359264945669251580606913693089481096194676126215256373916509379636642101577921809035202890220061517432037313940518423713294470218615076240076663818874435678438746984377341720682248973609959041677338509758719352191220808304855949809131143701922900767490858148465604135074332642502377256080375636782713386345345598342594016676504279863366675454332236415122490878661369226187209851000244178651666603009797126950043322759674455045098202497626776077296364087604055887812604729802179765682120908935437948921373946860772484177935909873669303965634331983911235947118306186217899227740325128520354525919249845147607250200663626492619015925512934987222364871095990400368595005984124168735322085503211491755055683711951564374078158046818216226273332976650709477974187058268001192852130172758036796132144289483865137228112293242173086562882558146342173684263245488511046485293104269653668802568235034453668167599072827630548327279622656106918471735932953777997620520118532334380536671328065760844609645505733679330426205648431765342351290892481517692219896317751129730370700752815527673871806798183027248288988893830764277835510483665622847247859021775628217756780644613753969437213270654556381745826467104178337224406303530082240234567083781657264971339839226720563409071729228576753487665438068642847236657749522803024545489631152599597027819808996477397371554850553817765166595141039498844248644596775153394088516095889485983646441136035752148308677552852780912934993860645964074356959806096536944164471186756631673724597866018790785065361542447488821294502191024080733634580089324286004728218220261068458116004026259518267628843581436901972107490817622783851351086782292270586737166591603901301037489613747485030665572546377936075039521606483875307408121474452441168398799735871787186555569677242840639483077106924399995326182543094901880644024951830964654976307051164141218888046446708181485833448859703226952430186437693229583302474757222415021928608298477494941456567288843153919478109520350641156020707301719252872650839376358195599796118179236475279332454729385173129112047897867758155780165639352496102111365119042605367846090386390569700499972380618730755911986666656681839831905497075053273180688322277659124033401209277136236909249802353179259018748149896204586427859380681518566385973642737190439070628692257617234863883179616782905178663673905445907748578357165989383936541007618963632209922591341348093836575043651354319799379579140247779147995089805827659572475302033185894065097898580768132600467347923438073862462726144790442047955134798694525145761281161210841629928995343108792664216751409110071447283304667853566892103763441701302158745712512799784360426450142881399805012070546671531765051152408616981355704942708857998779300449098139068741278455065602504533707341477419791088783038677154451121946091333820236830130342083675554472925677692541298914757973535207986020400710469519343650519427196981616532729413088825598582685262249428272078375239501265659803005489443377020244353492283978780415901020996806196517555990862895977874126652950214303485746200935158543395243937040238065277656290802964661072607745468596909646731338733045682645913572305751785292287826725855549449489724214140988096262134819908686471543329525605381990184117002766052714584311470636319716234359526060066022489674021383703704040807236379915813404515053479412662617987142497737572392928858471097409270592002073417836856857635391641113033052777599652531859786687462747128990773340800836328384293116400364409322197753679361278117991650628005040291354617188886704847567314466967100392281662450666654551186099609286060080965813144735046056673095306230611952383207422388915537981994056163969338918784897280220182303327306197799972289202201341449267982809428055943025392334097750484360586435474499329256007258115870093075144229004842344123707287881800152010685243176401451292674436058364360694124710530319898416743124217851153355994297064216239043343692540544705712842147131202568185570631930780693327353298175112534642572506984441983022596558793980325075181826256691482240379946868927576108795038855620445492017726918498807323497417149374218247844719225110572035583794160941965512208489289816607481776505675031991950213076809411736298935381364981959104844310677802609891033492431198246103904875968846120724417131886402886657112027528672304841494616081752417973323161119331255409832412942623443827261424997808518447608577157098767740959912508571984663343316470094915194810201766674674943983466666524860152534621677783403360416964028107375771686375900998085659823110844765073991663169449249349415193298874402589254997832114307390661399188794042910395483309691422900776561698020153873154032454792193374113628493324085185039295686281733152868541434055633825250719745199912555257223765842483715890004383549725398243598190179595091908920020409314921190950086114055934055009818669566074180819372503436740552497364118615420061865320336978747257272832154446727274552978041907843113237150109564893267664781985650258761839089311575356426102745750808786212782958035868925273565930592290223419654594656825023106063416887767849893428493110038648624539274293676250296357315349706481793038700302943515152487883972908514358461804702788271229632554831178552131861062198451091944171793059874104233204899025457559618623145574729734219315550994176467731466947002601445825113567059032151395464902359096819781913758806350779872366129116631605252340115495506589882126613143198542322058432008273449964637050509947953659732914047572747822674858943250238828302096543170900812657991926456672199538333733848320968969704835016014177524593821887065282207393297854434368085070184896661998963609401027837432646257363763852867426602787777472294627363691444132808209930866633227552436285122939511914955188237747433717341174877154374407255398922249043307226591656001764415938711489910921997797035097311629955147605599527943707866083431340898015774687484918192262446901381511413211971911634540682401873305923001036919644156220751310833847565644243587854374960299170577802857415610774630386156880722579946650835216890501833244080372591071712435279937435355922568562705393222985232172425168864860484718978101615266339995484703301647885266110296973053215224152669449477991697716866525115365924531195065107115111067417518450077603951088312569650782500891320448798500778475328234446227770348176661883685102189101742974640744577475877167952400716454936851011020483232406040659750717769031525349066048500938227981649258524662449697464477024339712601086607979131230246640219684217034287925226779186828894750022214132939531563344762923109257567333978549281126765612703159057268558414751945260949628263842469478916730262875428590064308805509232054800617607524644907717509432532738593533470617742956193335648720903842259647472875627530778916873290414610505085101462617216604784708296503833284264273169545058511600974786454786512754088794875552178409326336581031232922320582607185587386139556694055246872381790195652833003636974750361883753669758282697822097775742049212269239818675621876961434194800038206723742531935628497497481291290511517279246643962070762158860481662545252824360895897247870256383410635049689326614471300647650635988063017435091323269006514639056042104202974947490989481648134428335997430208261478142052815891159814806936020948458054381817428509492984458066885879802618421419805280253420598814768400165795758195022595807107404735517191392322725312615781535936400040224992636902640787647660597524306014521290724249355023155114999906723300167181852674123736977489994653183073585648632872633443430551745465798991769876159786471521380115075586999657304671638334760086723278635655048261552986416283573127025398491271800458869840842874805847470609395112232212645774508836532144862086313182480286641921116516331466243864756043276255360552898565789181513945519195000631523637059914083475099382904002702370771675741050231371213804978574376953902906326242279980673928996297306358506184688011867941168996382895011920917543546352420163108139880477020217887390477646809498679912399699095469962499199046646170101758677738465371565748722216210317074787901695447574195259475646909521708665681583481087351970162644976686173953728446427400503068720296132534864514294797520222510028173569086728974034994590727727029563839261859917384416099430964832282007156446731113305759046153512328882708155764786207846157879104625980446080565628701885266536815587970964706076731790887711470258569719224332989866298638428865076398118569955364650581324997331261420410330743396758820838849721670592621191893140596212001858695336520428338202267936178898528272561173518972888128600065984847287965076158585971566638613861591467866292769807065118924999824296482207650625484894525657744492350166604057141312021785826780438659417556806261600637462926914999447825652191812062399770373295425403838152255021874128324957906485783980106740497956363264339255683961274330396335092410125335805510597009810237277928565296844381315888532008857903686662351433490626685721618215003241221973712750468297871933599145736867784752016655337928461180341292303097131070513823343921242452205461256786199674113212365844391078144885824531073412083002443227200364872018794984856910556212132284298430372407784173229583528832320097732464099192879463534154887394026784604581011527218537507302812951589302339744461877878405632202673682914243080635548532632858886615149417699935870139753519301191587157907074225832897517348847494596033576494535717309617552538629123827849846235243306079459820436461915602774895765416521127725476468734296002536741961729344947388296460446551565068180136963822003232924522022524180962723028489901350454468947713805073349631867102577153465052586387161012218362531049429165028681620943953331129086288633732234333396429500816751993367798843984150793544300503844276794362058888524790249063141079137986411770681900608359371144078506790184454109900171628396368614725958868846330136672422592331044690256545224276593558020663485217086808986695242563252587863851289004408119651568422695934094884964624452709212330788810080850377321076924747996152112844537065149984710575857826851499802606682513286378941667327033103704263024117935420950733629071503230822530460199039784976169535839089786424570360845880576279104826466720420543867463144421621715695375473946883381003502391675280846335260611587378790281294070822245319210561242837533505933764334412441051143386034794433913662581508842290813026831001118941557029225135628258143960873452601995069201649198417392094063446228368860115525191426082455674329381233498304607800915180715605664256342692128200744157779149873852250376319862277759914482846758283376841169066402269647416049920084177625693923723608389084303844933107887161077627786123050534941346316507341215385093456491679233213771484436541638588855646896617858743547368129373708825629958434407492939227488912962600612794692196643477613692284790366730948695584179261736520128975100311656060037364018984731089501536795354646843564640981990767535420535983347882777852372278492166757698631387899048969698170497765141966525025465077793162425516497850567239227687706295887190057560616018503029053847544629572465438055581146782814675296287685437076471127376676205853954009934156552379312040292745578827721914495218604766457856117385775745379811678976720542334404608776040195149923676756874188554512014917765563171993175541979882500138623576427940256604485250515042514580106099272232586416215575041583180953024037935821506436705325766266024724702978688486494599297195390780369664899332659827750095349236260712068360717013949539166714939221801818006986495779363283819011802423295658554169467613528563545117464913028337584177728288862623790731650565674233185813956049355072874847737842112974001786559687904266896861834325155837585045549637685406623133448848367555948436460396960422107240659474108720946239398403731744778294068102425164969773342802873809743245705185910482609296662212053614790010247854863034247973137059393768432924719080619646132921613696733254908778147980059742627659140813945919749803588849873560417019071982009433150997841684723655634894677990186642838584475501978877425065287563863443587984294406153866793502496404793315018632001855324870282260382535540411910209051045858613397156639595225057707786182763875602349840099058626883183641183183565801253469925269443219605302072918496829563681998786594611792591923712124649851650045962600063336389592036868626681524185176328589631523203558549879714013721285224985949663332630086576621415822877495281399748690225483844352592743545584670285253921709502601185003123660662702035290172148235737051849739934639786368602916792224952488273980388389270072967920039248311767350130501890898030436754251086402281397043881680584116245711365211767717513280130864106801827928076951600739004118436122137630289771045445687438512083390518401853839334408523275666861161369732206165860396288909828749691374109191912751369440956246334207935955634524427123580761261616000129153834837399767442863869567059926642589967351420414224303562465454986940429381319486375663314512015631360262448091694507183336094713982857440769263068841876070056122571650085496594576517324127057738682644014398631705191644643778858788437370554598038801436417347883137574927904747390687497898936411981041563915730802225432843300505427165251631381077515077140085067800929531263858630725097291204063461657998804746853507252542738556682420095066030437234636131048575830356773022851460946946520094353606383322824198101486324728707592499466479544562712580342310932288612283842609961134216320198434355138985844287217536055404653808549680863951263440989163777486379529394734821988984774734685243260001325429933868361212097387704925246786706352274429960388530730962873456977594431301276179043985133737048053020881674923885967631847806911839831595247621349201850070163681681824909401611017961724031170803651530328566236628243036399636795701402473055991310441615067899494509836180271763723385681733908467923004418435669046805216115467875275945346899436937153168378754508441347185943036218731195257455514953111992253186034046851871741233139891846371601035275531166541181636271832005142127323262247866153365700485435362653548564873327061071620245994895391154028502863671910767285530227135637368429110822101303092812218785604755749643498543465754864350870666402737088135451386995746779768457178374828023396945822929731927528176004235682533267015821104345349601635492064164227914034673683123188522096969108104475566670559753258267822214047357838614123297115707271830388885528259932423109002203757890105101051120317890673134194022372802960594534199721885531929023366109446990305327075728310413699382268090015755716860083380410203030018184386651977175877437118789667375690362861937893418006223694794159204658707725730440138421735145171938584488788715350003613061260059108383409055501333161126829033118426917791657328468060221633008920344282056855626255871910406968802884046561247671405223494650545167632442767608214587976008097320295264115444972838023786479492556133283111073445929530939056612719468129230056779901215856373162694519182652044908850168668058031919288452712282879740704688401139463485181171641158983189463382623676525825203904570890269858145210682545241636420401302278405692653314986217111986673647567134840917310223130463304476986708967950047863530093962179898803130324157940660974368390505007565907021584664151879701671295417202298507472850342268939951682448714755190714287208723997086638425600572657031003220165626477473158406952147115442257085007225415764167361154031741680705202608498194647972588226801899954085728491277378795339101916999568694655606765850242146237302856354347207865432252024183394958384835215958006018661259431058943177896532103876096068903561431687904050090223830908797884568022506595389359619734542226934373869746150548315649153366154559721295105839302896840518567555629831688308733779961375558555066623146877642251563045961102399444817762241147675508191208630967282282175003850401624102906781822023156645980667902449306539630120646651476777403965078167569197689643421901679635274407098266598584287938421619951299289618974241654097693037744727001268263671537106138856091528721132338969382617101648658713650435048611553144571008871340271054343621071957915435638189164070469118468408306459103223822898541473003677114156956239917025112899257506246876616923313580786768860484403002436488890964114569895275427085457620746772724637609094390069091718849348179269386285661290955787508695120392018303251693246652854717936641313981032389510438037750248910425061169923593578226704985197112519762497720170364935508319250981240622769000064528920442425457330093036211359945673471490544824223544473919930701044958100335449273115500998415829974771365845614706057696562980396998240485549345577633968553012749551864661427256722647288943909122270815635987442665337043098300936959867578224429741213334810855511005383899653554639952797270246565534351476420768591239959991404174130178656525607318398934824474010094764156729457239924074107924894893341627536304409706862121697760060670362786086238578898341734012760282457444496170671957819124142642305404416896353956749444404295356051004166774107537145375463429880756879613049070953841780204477810122749295224591109726294273577266167567039036456796783245749361416162722425425099206580536473604337153119799877298941907968079134683476480126348513365046589062381262354783864306628370999313857497537336123388048145034707439589041108093854320565617011340679415181333015164637107400393004850167923645233354768256121577960138618687380946526652401869810811719793295329213795316021008669070894791160294888466291009360902800711583705500039418663532599239333294171770214606042835944508245032235262263198085243597764702365091171380438899697518062029868676459693222129563349532099356769808488665801649825419378604758530453636456913338478640348981607224908247324359693699432286020766356364569773496127087071910912720525813284101127126739535998455386342252186504810455452216730634840262838713676296911249849632010162191814417580185588476333405577943554964429827107678920434478791242524211592594723379284321959695641248128971800293841055288573819185414036828026341908692582611173434253247793314075783160722035194869763193516764524130711337820109699079352730784722192193086912308232916626569435966043630759420195436068435574102259676430646850592427260346518046888000606362916881266637880050580912179691852313023833858013114288157151553481284917031993878913908612788038346014652335578216546837648108000639693000145519917716271771139423122100583371089662304697713888424291576376377771239251473740222394450897179425241832771097276684423012495936702574422974304489902263253080765948858623182735434565658252031030389963800964380150107739821476562857620967022791295871418797514979720944110139338048022065853812658403202878293776325655884516732001364085930886672738962407725928746444389285992517708631144974009122459540995287510278532789998774329705119632376973110533297889994378654955412718944369159082018866266512257594512489813738819089350963100466543716707509827566069228232580039349019205626502671964634359037998652086775452291740767065091609145925720165039994716180746331394856615686010136305323584521498619809898185870678681259541805683486226491693759195610911564724212653018585665861379973428993156823646453498755671805196488695438266342072655260999309310133797582600383014483099423310109179405839115097262489502536353225460554911967862945410684536959102077845952319974446756918646806985802255995455687137153437121017492148397648309626664103872618173829560182816923057119098430219832284664848789910399570699211118996506643832953869211343787453962218172699155135681162229181546487481133869819973061481619637086007962710222376087434981315367671379484584895062836566011373567072158668852287732666469069961350466727272881263711825290210451015814878329960368394044367436771290033352120184140869372594522356642190148745008716369124093061274380912722459568052377513414210756725931575719781076364226351914203763566549428635674427256689189916792269457682526718683747405248329283709364542474189433594104426542104205944847531254716483921211579214382705964787019587635308661885925098459214656721578846996715795515795305546205459245408979675989697739108115242615278068634916878036510307448924491359940063325358807285914436026869503516502906533838204144116324203662981918250539302453258582192399124477839055345892314834927348280654164270040761437437410273997506724923546364549131587463502212356748414394970065972363101953446611618414304630113815781342018139144656090974091123880809902645168802306787311930566748815561339430295037618130610333103017592696768634420486592967866802130653036753319717285390334620048339811756259630452179979177711572643920206970199046965717223418566532860137422293187348697674438197406907487839324837680781369256663880550796553906502250987253548696893174299468509378210565330696280304469608589614251583237612010488796250904905148266931031810481071234877278489900920572326163149394098612956978293073555213207262892743703814383407042211162075566854865894892925800055373977369313277670326226133993355985750666354416821051858418108804070579355343353248604519588483843696659615350993058491690873398614128099922214412609218018398363541560552313372521014648455224369692911583570640204118010014297650532308494125893285646167538416374476735989777188451197753710279054866085776767025477495824787387054117940732384699501261049528105086127289894438180802058314408038414046782363410283055882383313769739785764645589125656017940531175767455330638995510334585067026488586286072578345984021898543587107381641234903672567184656394603814057317798001846697504493234576326748080861950687561342396331494240902604767386174549275051741504887924810996398282701129020992807183861656653330436025204623384505021036470906931439862304716393764290681851932571814959128600051535171041952147873306098466741633526634187738915388572065330755232076121971466310138923816796170683234667627575319928266752894149361824789430836506737046889193862221265979854671675576503820292228071655638148832871773381061604432205228947812333576198017107319204492712626374123396718485052386438966568080200942776111998575530198855423379909295325470607163009518033215980869502030239735126319564175550863405117860651905567748616102219401759274899063577355010872808890029055762051388152170332488393345672864693117156081963550827577743649511526780094970036462891867564078781511876179951518630035457325910027549694893376929503599664044657911402317156764425648524892075528933456205748186371734770934620947175629950931657636513749577631117025983539871499784673445165509035858344626963076529094941102311315180309519426608913105993363632149011218499247262351534458672235686087779282299901954710787142971902247855670094717687217989959420520120659077466977373343238114280314539924614223021804331152523376243830377187170365731645176104537522871463538850518692448680091899183925021310613784022730596386561391954347858565190489522068638970866081427624204001880141099655615551373309704583833728265953850113997222543811240762199350712669318019139578161711922423885367331381579953956561904352103840985061947596693010572684345032363797679769575233423119869413331705219230112690063682876039096273255997385908165807008256810811545382865882150547794369216584718684795478453167449629348126293532432215982585842285296580658824750208836020088018329744323477049152185446379171303358625334218994461363877084188664203523110235605555919247002914155540811466127308801152284900372855562468617996853028184930535229101354848980910414704601410268523367846617645328567849216522518108526380091276814751381352834753517619639516387385409840440109431386839260536163462334149053555649689728251159543727467731169196678206454468040764664747902395844626869492989501053021598180765687121291679545111177660373377447691515228621130898499185454887029848098935189915458095117564816791363890623731063941967506476356697963057927873199775442679859931929788228684857228751949555116463712021251670713166653142137390303706864021014327721431057816394850296171136394642650125662255109419188592676604858159917794970942128331560977935691859528119689273767311877260128081597993027340594081751438849332482539063813593622530341616214622293152375388158426588017807631323278441960695188190896355732374478059846513855610020980768816035605996484517468956244284919945460835738462544113638006963156107567553972758544994284698726470552419285263296537687692289247934708702361397822520364512298034031197464206291021762759710003381184101487002192018312520987530688625974842509795590179593940221268496232379100032031353709472534440122571387860400357352871165408928173916219267675950817628901820111350115164683437677829449115176218380751846822540935727230435184659680318047599330470437479443653854458789833623080895941726349611324930574970897120592561635220649997053822694407760343303494224083232984327820342857400942744702173953920175406001835598069460150040803773478321939111787691761561883956055736880935015093952409716625852743205223543752476921640687523505613684694977222206037531902188075585687690123595263522672218642152143400113968092854447726084181134345753073709120911472075698284091761893284042444313815736367059636406856252469294804210741758540686707372104974126100496372547998913295558833567532503401340224756510117214616604821820386008420873993278638675295470987399035178760082308523432264141177237807387405577765163766516731078559089419706388002036240616647301381126991240773855504353295437106222678062768834485721889792595900156523050671909122462714853131889488644028140068081416813929064406536812549203961233945787690680313089371143735903061504018468772281066612667635529381186582599024053146547554988832547509622265873829445788750608498662364748451059747274372714533794698465242021494949273843307800122644913413087907168276717252696867048614585081598559654003484035739032885169468761416977054556126888496181225796551688366989753949277213967809231961321284194085453024206275166464293047391095290074328332057969989344630806024926059134177193715295970068167573081672330003593713714940475101356651689694661339923567442199647336794784619456280544561669904887396532628465420943249385370252302842160918406570661405025271448473197092116311662621175450972124296589906036354316474586268050243669287895607623873476608575988194330635000815620528498652689503534139095607952461005465678298963818608067729824077630490027690072852328460658079948350341646564317383428971699533936489896156308645795207806231703716389321954441567929716138349671301947748426640010474790185603761430480098636716138171483736645224965036507629223789727815998548517464361674938658399460963018907891818492796990680806823170614020574088895016478883269614123322630875501831793992170378619221560149531092374623161549397875992410724827218449901422489406667834378297273699579408963412169419134671868133984078102099448221172371997654353847424486981544000856797361221434326797681461065512344058402299840048528303138397265280919778491173685972693516267898614067957006292382755325964090729943061936649929290142125635954526434094550596118477448827721010077008981509673298288726813755079968039643350033086444091622730482673730203076595089302398561791446882113224069990145855208885054200905381029407540734319254091925960671144533598026980684703319984785805703017602378885352382194482161720185048223729163734296020274954628072198569524607383611227514160640336645379247977906555807948841177966925569636562183334052917399955034175133052107581398721035876712699622329548627939114120260608254830562868813140891218161568897213438887204325140697440133641059492397481033995768249294289175906631982863883973129291798137548161880526428934529342177996211855517641649282075669174366590381932873838837080902018785190710060832146335053998592881344693428445964682342931381258606453234034794912324196188404188207137324139434754050326621014946895952921239587109691756384525202064715104409719915189902740325568854646063086620303098997850824384072177297865864138171412873405008253197623326465399122149384442401917290480999324665841199553668926083901550930278159594304214311603849619731967410424014189444137934826741005050044274532999469528534982311048205895453558377171060398672844017076738298474616265890876569205592994640889214986161254383199749317207911942345023156851567996479681657068178299823353954284350976794376681487262375947271811597968111253706102709312639453260398287462214066846311158986360780187363376004994556163271873949128192761694853707782195257362158983509783626859858112240787034926195142755385746659897425765000291054959778866376991072187408550343498824897526758322936616236788499390853613224352202738495023355150816532700680659443811792797591526627592264247621350463129456659274799428578126012533968763213009417675327385358996157700301523853788147331111862831223068812556546038755601471216090475730864167739356073093647069446279285712203975357262697409259206608085377311283505177771144163217205278635505321671383121635501824071194712160250654936806945779264420464596796056652107587525206266826688507706426161503148918726368221257884642228019712696907764171300061278896309016400845097753946400221740567197458501144868882492886257957242415291691186382942078475484759101793089956982080515672212946318683293238386751212495709842394359657588705292671565944654309954486804282690520446250614109716634441454283953412555702534488661556744692136642536318532472214713942647011667348369769171786886293728227570769557822136543558530548503132511890558282899887965214010904398343363429383622447387963278561000387716807078572033472187424304509843162576237170858606572682703938746570064099111727979951493137679932575715347559951421384051936781717441542221809857410235670972480991761861390293508981082701147790269653561455742729885142584877237724077446107937934195953085949644583006902807950421486930225149127256911112435716739388728027377904953125555056778920607140865018848948547624404917245192964175403757772044142169573083018924813610116855010095319073439666746419669219771573585608898109243900954986363890423953927020263187758277500998971198843748083276793533423744843157214547097997974706398888659422683200258713564131876518705296759866193941129205544055238733064291145871870196723815075344115606862845169834015136039349321546514290615471965492221199179877531596742628181230237993675263792289593021643298784364890811339391496304504782376066449030270196697625784956278331459406945487887627906763572789783916509287491343575466579689417268807314186074800354667622428652659425159669758129301278413305989847807185869210619984849003815765075396326762700405231897098728611022156113295423014966619777258551034173492663200603287259411402263341952402598804633198506368230932732133105545932866587320807754485692484424782540224459844087135023546062805932010138681340689882560089388040213492214165231357722050748777303237617463960728961714242019912365457141835594179038187155790608877375902292533733746716897896201541106982030395781223583925758276945804920477842083984137105006047959683438480323086934547071911600873369290257467225491962835642324550096759604772182791522697484673989038327623438269382490031323898462029245529735427101062392044669261444773530859418313835082878025018578203614410035621599252081361406422376034091749302140412005051763308734488933500431461906449604991678125874568154759097131199811654248042572499163874815106768234169261632448416529097346164446983711718027201053446959689622642027136372477881901881077522631443109167611539079401523771926351019357450406224063757056401476668053111050296339314643534568579913797581273350538800754704961766926406744091151968476271022178844606255417262354930568948385502055726631311055365913806774330149523573840400750629116926590286492534529721925190196961612447460356367660575020104502041175800242272831942498070954569959866529135748220064274662498688299240708988434955663700862138454929244697530840654856262729893551801046228574976072883318807783861212668545458077466319694798740617258809888286151697435109737842770828290297309240871465338024782036656802875270439583089708791295591442889956265437714331769556771044454784117737625704124528317720820080866798348940633542473671540718876779928459440964758642899771411443590402140630076430870157632775392307361376295059978539585971430696972193702663563571109645749332279218331973591883828227215056202084808482169888684840313828548798127129371963919894774012799005787435449762855393411065655764195556683985772937956866361446116151793062127948006283307238058567115736653708687269919919148999213204775582333684408490823909024177025291548044651717146194160564106754010399342768051383713985489880353997971384448747467353695744743030148719513214724981012112739517755497564822569333649649823737796250920947588162629983727268723245839499406164435278539596447496007054160913087938541712353933749306322084170933236279635510421140698237317981544105872096239412901963272845097475480249232241365039207822429143836781834114485872037114610725570780154698962130229945734845230282437471380245107248615062705093061598272415952254312673603723492216631336451770230990176737502181212027631997286846087894716370310763606776178459729804999866710672373201209757109745559530014383317259356742037160087273938053221406075096496557276823371072681622628639708720661312818865435721416498338738928808371617307984207046502772454838430001779382575790161950624052637446848580907599157437382274331058309135386837351272011361310805924460700905000011209119391127697673141262956719909028544420773714962565877383527385824233728616760150008142166777422921452680063044519769033696906590549102868079921571876849915419451618283946313358441476868085762077236332498495210329161477109182313795511651489360818373580617864698447191942002167179727231380389634690303876849233052293930815614287790808231735678026984612488519559231815968512546961991338659742892703033427840332807421596816247621094185906592655019015673184909885620934953999953181103098984194850256650860994927459426521144122510400662273761400551730351946378804572500050313994410642395620298887310719646633642988901311175307788727176655763285626547065217712843018129860877672857635801396338649649047384181714544291067399659603495121817729346522262166255331986160416857505980293774849544205990194341956430882065675735623770486722446280712019442866653662593052443142226291036013324090686211443829033902966261000825909699213314759773993030604382464562797227208817336482225077398309656085923894579585305148061656911652228406480356907015833735635194792467230688555014749176278944943311086779264472245432578185888375184957198009199821964744624230726465683401159792894937159127240135261153889615668537889865660933230226756251342083789710755565340043623351103094667078245268778501550180342536717386983283661849008210796542470442192941960945833906235039979120114509492100674049393343904907884783792613410358102174839333459774536007813165028108141270623085293111273944310373942378281623153017842369800068840300425217134955755982846231887956785359594029052624132337059107047672585128772227788901367953738023670202439505805877662646069335787266101762228499109914819517108705676585297611140955250942874005490774807086206081463299539214014614534514281604562175325001335803519073801978283220342021194242093498924343371953090933476983835079273798684702247824413250236298872126692783651325385409396183126781969194333155426891584293597173470695252937519394202843096726040286995740281413589197096278585879772933290761863134950097577840472403075354805572418520009903463340830935983666539228278556436626367945568024043211236174842773758851127514889962495267759232876233530328399456015098087583116159598875477855142374087042926198589534173303156502253664952839764676351794221970423179220679254913103961925270803352087088759132045992514236197952023353580928222705742124044300725517847615149490717933165484872699361080716216839395304233207832413021279965372458644023157840690053943654293837170796752136380911634047256043866386107552075049790626727170519350641755161920049125420631582491166494361362991794327887289729760693517972591771608950727600937839630760857011524754454213468851837244769519795597880611202036376274458273225270686813644678138307727940654315974372500018244939694434824420461071846918955503007037256788698149791828904686306954017756024022906565744636998983602186599963874218502711998006726300536013662182644379750086315252597953457390404630432687271311178669326797180217691354955303140086063045471404888057801833172846829392789410205684403671872196008615137999615146691464491485929388148890349605517770584082080531995795827502348203627709333043122559189848951166747292364429828675678819365618126725760509108092217744448510035126932361768619508339518412616683371536723291441645352110410159156179991217542081235455776660529855920160712940829973199972377423766040124265478873272653631703291578353071733054586697229027843718411707644575298698301701802437720403160128424055564188157467549121383997826644273686700110388871121797879418279200808511804922973185783189154050696238903585221008727200117400459814839956861855286149812920177858399422451780761619648342426321784793536498315663892120672115308538074833571055472729081326424077540794067412897913502905564693719515195159764451753933716763066848715988107960334284733067863219829743289411221779033871764471946585695331532251097969781385867082823156986857276456623165197339896073077121269680665014781321756954277492032720594238705034790804211216440605316477351348468121269270903427695632385053520660213956351883142139575685325327245888600072595909697960424793029804253476313678164368686711495781614195541789937350831307529165644016369019869720444452060107321862123058491960149174088235798667735447456247099341517083835311426866317127738061336311440865776988444199441343909929956756383119679872943106677064007883676545400241929815172291939834625304094108277602882311060590192251187261912454309590317820498178440986098299726325816908723471266242812659750404242161322488476089143487978476408860116062744698231499559564445212886816879201178212219568911073266876634983196141828095241489052657353398641476076252289909056540584617959470627905109713415078360500331929412336737454586236629343119840983311947057984568121584870047057994308677832783888705804471890250996442197858645862148056025360702134310837639530616514759981042642774407978736252127105021321338237291693018989582295469789367248685952487275311092703821025766911078444675614680860931439445274596008638976965604228101774801123696884724702188424422745085155896651293686338109108749425359794460554895159600011340002666125197851796779402360699452300144538041807936413215758146332645810890700895469925662837987887782468779642953189806034491864994962715073855952396757554883148182051702873541554481870277387462677387526549491244004272740789873976380161545636840507486827473435646622728104621872007722374301626041421877545621181400120053583566358781603751400342816133395698675481638215260531484309122748087720902514481344663301439683065149011526945361928175433762983750910133855263899154275437939273439826110830200187011545520610629482031655447239902072288837626892239071858323595646558750935224956690291255803950317965465131199222550944230466573607252286682983411967883025733220276732043599213373653521080043097425145552033047415562500570937726989824171440826721005414762347978067414573886464358742039398615262097191305471917951853258775184308180964061203597913973324472626977926527455638767833967231583473676792598823523976541388074511914782847503474474181056472051699524261220905297200051790390473099738492103097464027068463418075518905316434725914783904446115079559529609073929077419708813004375676648481576134410545898100551483462714371099581384911114679397881073594448373944193478463092513050705093313261479584953477826038746541484463515329932742071399873895663923277939601924921916234133507134334773077680448075913421000924687497555407333828213789538832765123296357370478126446191356639542563229335276212174021991572138892394982293109578746435389882010429619661169347277065742604830394804175845113184031340144880204986095403009553444654979022862609587820116025779486056693336954186259101059560529451188075854232162975467360190021335439667070481509120925226284849694310521687718684112107220758925326806566121396990797822308961066949009886214983469264516341045146684584888387113868081303564424312485201739353699864713911222730952152906431508870230794041140604019846982673967447259296665574118436387038220438076388055954573761109705748600313031630214960418977227657763206205354248625155047074745974161435232080005704908831758695039851182810395685190503932457256860686873902929267095793916433774125473698417305086793982012389322133114645741297735289477393285648456273024926544647109691190470830457710182977551809679650047906785448273889737959433382633576801212995431790823756873935038187617988936782974488930799347033486735317973525945551538296863514994993981337649595704691267888764758346276173339655284385235479511692819991794176637525523980117575370944366868508358767816361798484430499784899860346074545800385999097942932385041492331725898907904041739897423050708379702248991246834538681129482357444250652279994333252511537503822748932170564867849446964439071311374793850065632835985682629155675047743634494974277821894191631638479632084487636364556809445991991529120391572425192530153259666921487859927829668920429497725480006103973242425481335049267458901036200583836543921639476867993589529667833133589238843280167695053762960917816435848777805078319576209346149000645456106094004562767673174017457696765867191726144321424987650562175785191640667484160426010890253202855025746039785636147633232865510699307015476671869034727782425180206942400681713581475433209220610296735889560264530648781907453136966679515785179277453828543029424975000173144927263033900503873765954476846892260498706154410635982833018155163244750077780067852416810371755621328597258658306292681514072517611218307911775256545826941389685332054328046194710223359261867919555882710658564020583617284178228703704718225525720930185516267557220362688034383080490542310668033673674499114991858997943980458467232389810888233937361035633993897394031368547507297051485496543656982960954686568186370270391356450677814908256644441492307110360631540451795187063670834733484486597990903601480512304358065367849057487955354376010196593070349527974083390103224162428938804583981215265194696577682259105551720312254076234595405859105659277903259167028487285377216781215617937472323428491791605761134558512586481928546412010050232750428090028667074936571058867938735145592627060033515768918443209184980475865957470604576709967756059471883301730940199725806144220706200955364101178652850272596804776508293480144227624044885355377187226174605448925622254917734649523046936285330685303733108487717570276991522409007571596281022048301686153366681056353645007581824628432564429884000878248874016369994036292941806445895312442724011186172920193190674866055830843376072013894973768709623931544384228428240534603582078230187293768892353591986591904758528625650827046899262511408806107722939974302422589070751128066193629296496712554412849915443462465185278240986683513150324295252327741629295090483066659821501737140543757617546824756818686034843440583823294189454802818595718740998997170342769888964824822625329503490829505698675386286074277483903995678590194781075904357100194009737501612297585808286952331842842039450190328931589171117467107514774924317284808895844324181928324690762674544522263636322471214277769612086155669862218290865801001934871788472408205541673525936643318270428661274144043395502163630101527281664555280057420753525888447174377212814200713655051860591815230160335713890350678138035561664142867138435714786427596337716601133698546512008804612492497501691777457419823773782956661022250474553166461777520301377007336134622431658351689681774486292570544726747283894127984785878056221956198880560453075616980392709332436320662970692670939320470683382432804332398513746157423262999767658526407288822438918898008491599935086561366256794605000833954785405628385636749589485045337635976928835930124249046378066949332304787128710243788577886334324353639826034185959457462653648271335926440899546051354433249515553539769421131314753175924793411767084444940407482390412978967120588256790452864488343261935504837758517562889230934690881038673625167099636261480088439863098954935444809551215132942406233781306188696332342301003857150110208625106394905745868204886073966992016541646611536017265297121519913573600604265153913241814589297348448677427910080020316439020362406404021836778922442876381755162567229251330873896424411458311743710789156081005678474629443636750829581520151250096281949954927279748258613551984436072425747287335643850706712672404575368636293350778472778155869390973922777983791236437278246939621277458167325765111032774434859709146269706961820125447339157053252757134917970936453732205977286993173992388008807146311673843339245747248647317198349211293350733631257092088814000168258440742491998336679369382208637065298296563890553844680740910979533626793203101118327079054255429105285807327632296924152559063428411663730568331020446487170196356662842780524239235025200816602318839260097324470083991381398539457830223760126749062523099999433274988668995965711317148172988470368972505376935830566170325599567769311650152751713601629632521088506069437525293483356017791678420807525216037403465126476891169321772148364935133241229823050762990254282189454075445674959737384087041358764653267923507603478101432179085162856401123109569499824388513915641756749376671224938810640698573944620806590583399751731092929991356583200507639516244816697086780455791716597417731886734340661575949992305530943528440783520159223511352549585159052705923569201101939781872954396704982554467099373675462460646242228743807609090349428404450490933720993962570071543372793219036816299339730449909661954179249360043297345749082402330228669423218490911942686957492246371402882538240340256552259548760806996252678646406634198455744059556115326735169359244998769801993009018685776818589290411464293457414227831663423524688524009142181225116706702849299360956887460356248947739116760789750847309900087169449513978616190263521635514968364374155100321551362520396795316485269735442171582544604150659798659933160719551804930592927286059397377899897819136755949327196961257229077464918452405707761134171815866606809059916140632559962530594138117605074791752042828515021547071385617014794345068530306790515766974601863872941106605714045001509521178172184458072772566040868558733564722591419690009754002285559480165410770870635242768837661922079656082930122122377843172747445251308784770446956018186995602827268154785863855156258095180604173189751922955373208807162887717596562235150406539974068450613133739518156640753814198720116176666052250460533719703495844921025769448206789270555786267185889725900429057862223437588691311445460075793368355635385004191366376926565914180887575898512957973235235662031335574380307784623091032814839600414663998001510775138162159726452254454505583692576684733362710545090437429535675064317762834605958900961711501276768888598448702555388679282256242374342855718209518821553044019354619822897524697676934355599537367980756959559285233727246378716172161741958772812778552781078082815869218573079469872288052153951263811618213004663257858955345302863740766522909020431559088331968858835799088904427913784590062998901774831577531998598591351578599181500213457460298130403271520657845011265539706491570335143358159519510134520840987150212224917154273436820196724432916229131840924118684727371906064636836156825072739689860865825962643390170264832597165171131851511070682093195510974114700163986176411787293153311513994244361484361664932457566458651493464793218041804539798073104801919691362357924273374554153223318970178999129769171290777311931747756430957050647122630686385574590888395028515630210328719331200395546361536759812447224330804618185949110288339320331477992784589890481717374154822613574147562698178121890355840400440818786623962447863722752558199897460424618069087380805391681202412504081154705152447858940265284592317197111274529597335520153892823757803080140520057608902641661664003991515160697630278772429519700874033658502486104778556801620462886313431640902592892487262900635099208341392305881673485129861959420193377752272489334786001074452232425390728597622595902180974397999996877402374667583844062459916912234526959467776765459971488649946072006245313509432670058336134593892705384738212708713545551025907735988531476780597960007240676293206607552190840982199330553383873955419701378927298965419934462855769046594823487516699590901429900921296266447848328950147007582061282539597658964111949756574860535684098783596239377837856663242754342633605543005556947808314809441982831587377791440443298100604170202470813432771733586152509974375664912954280323552354621853428825558274926733190267190721527261216979265270591862903608752469878675750685066640079860591304707393361275850976753331429172794675044960313741311407010118342793306807443217966452247717414180032507576709123505540306809080719337167599627490653815022071688932309917571529986349718008959180532592922781066384519007542511610392737466717024780098153900305536460907284133668552182504510425251339156016414352170267683606274192123377437499731374014270985715541288814876180263644098765138641358029337904825983899153694381709828992212426808373416143282995004058905610148795625547583696571097766774310749271745148679838176880120772803288871437851780516267699242017535443045224295522856363045505916115594095056543320917016991971638759581147533325292765483981065753859637265690262725785491583995222510202020758538512651812522798897176914304799013718923864093312040440134829177528302084288567467445942284628350324030518554451633918253648440350830502484123947439828951615784455974452574630455005350858711109702501612168438629450263888140376001856433183244800989426845084509805520376244949108744594907498179866337229104497180524268488419052662499547896910235043834408579088532083898012997219439203179222464133753809333264144553051041481012258377005792650285353314849244670289768842410196173575348618492303532599562329165917794746171705963445121628956400413304603345337498719070270733964757757971779226125963900888223741107239635861743174185931896092814434324583886972516662687808779162914249193389859663504554155542134094410024750410027435786680263159657473388601169501563822440654697878106805795034551049130319171863382993035947286587287808475783782950791733557620621463343337020228236642707225449027928733330376980084152795563944938173567017087473489726373662769392567938845653343610175557225855536562589897188527655082242698387134625939915198106466198775531625602534375658853430791886682468632227055582606809771325027085867001469965792708323224266771539941294569545263676053473040985317743623983575511881078888204128248373621836740971243081703670309527663590665986211634385768926343945058731106160988253679407500519143856848005110600078408723570590375574636357202761760776506036990750986034852203852210347676593501601494541599069221976426562790679097407292896351957691062705161161531954954397568759796488824217686366639128713572501362009701313100145949515712447613585155712042888747549355359195572232290139505653568341788115611326150223122316390294818433822960294388631376624622504070763861743799290265846397196008295985107977150423486898870656494067893005011050722292783877167844805745694233037312562091449955904229653976761077544751081092458436566140216694053501774844827733248931142497984520366662861526573194807770474099002697969207648504796840579625521423531657021127831938523795945193004668405205243102626328326490061407122987907045533096654694446896557611489467164327487942083954200761420576349546256300743344005690575265921538197626182619569427367899098064413945920267683240344150959314497642552127546983311928694757528012273050024123521886788848453889811333602600399777912245021032701401377527201994365257585688428701734403209203527443769616637689687023407627826140471452839855159491887146712324554960747153323910762588907445525706683199809042179026706000473778338681750775581759334224000233818633557781023495556449409519393548660694473571187058816304403335962947203037435920335281618841532531953509851606236361851511849038145615604348125530824494884748744276299970111814930291688904094791248899775580340315034595553415263008972163174467530656398790856807746964381411068737971052901272648340087667075637501564405899482496609098543370123217760645179321605191161580676842771424730206267194454862925536381895367072844676687682018441071919095855145645748479114829158710999414577099869456609800288904064179311676374977173522388637352474914928747409937494148116712236709451168406063801730074467907434538151462044918581662590488235802618964127915561398984175771447627039501551074405625596475071695313495695405168562520575748617728421833861815508955672684858845785115283661283076071393210020999231937189150748345178449499060777525041014145181690822023104726317800849609130733496530161848591386737221920039765328642916200520849406127872792045927011751941644630645897600443880614100849601994907723668987319825773718761365507528639787271206057506273795327125907160945906211446198540689204874273028554995093604263933235114376976679460368895444462014704297421838194137200285404997875587114326890360617942437618176620837300820380679536537501193218119127146336540321061023923467656490160701385242752829699513935534321465304085571564601896587121376469469154385259297112817414623189342008670227936124871440208703022665154915080559142860693324963669975199155056090579181641044849765769258891423093803637399858338272317815404619453903057046017160167871765775020891709586823459216312697499302409520514521478603288026206844735045264484577740904102614110215879272757861738712939627736230582373776111355612185209633400974118669083840351143159137078783643264367543792060921015175781196775813975911092203668141416499666466422588812252836868852515495188181576672651756434478801483301053082964413088440367615393229266157808261459477550093585034689907574436741624527393564694315985723331590308880916270288906658378206571666112846072596700373931841551722729606509689954211247953830022745047452569989272357516256347900445469628504526846997897653175001314818448531926445166497755461798772662153330844769460714174175577564006641942507918518248494396022418248082240252786116312452851739315791840847742150386324524219825441509863326568774190641159218436346302678221930852707551189494960494020385960321021663566248887268406647229583736090179642688184144261342729131022769387242749726985194863573788359638523039750401959658891219498353739123384206304703849702311317916815815133436034130595983940368701025648587047571861994109019332234842427440730908736677988810927917560784191350826457015596553121541364476581360216283557205785959954951984508312986128709192696611080823232583713702775463341432894128755426590790570235451774128091821761580362639686427402876174964391952437469177818191812561550964534185336059374132209308661677893211146523789111675956250440573573767589641315072795945249996316193569511209647262222707799343988043603651000981983783645941452872066821617854741200820421804636036221368925473044764175732006561843063369259711573806018293884216043092908694189555324803590156452169557991882970143160819213163963327940932278838408219722788576876757571366446524762880404246097831608093813228893061417273125908731109091014560342621079289456980527134919517579643474147768037109776026140700144328677953448584400470006712881343135515794713765222074317232155703913421461460993661075892414803999940639071118466500992748941077927752472495379635211207973689511117621567486864764484970681309901994415576859238892205122573013533254943400178414360210832911446269500328917801854858297563300130967502152519917700377565360545430303446697691368754685554074202933360845025282020659397538702964470834977485008925292035083067704804262241487887964503074255039163960411491521159880167797541471360143111392554494522594607698474173535113130323411161068564020665959983924130714635781955133509934285529633852974106747812935595511560484360172050530272313055915046583401894665484173768762131950740176562894901741700927890781169052723963874974080879550583064267916004521228232888882927516969344243143673487737869586761848874833549821616708421112974199839812464442995068743673682923609142495254930610399337987595137876707073078207470981056894740414928480316184738976374771150535422155039081513118875021194367919235828357242504055876143832722109189814598035661956996301737400742320092636846726706313071002051141417371584320999730315792364029327348554052373237781986279894392968003437482230035423476780483681525337115834996116773128564679891378415249642443810884357252491931624163542483187444086439822438193204058213577833611599235674955747832721015169029760711877493290170230721826515807208652762116842656041680874857657674523090469851244171631019057940435435991184124403778530752478121032378581114695840066561905240071651520969516970978258115946851862513033544931680864787140933151251496983686595299404000249271897391072671411228480327687609084918810075744440313049687390571293489134379257381660323143909084145217800043731547992870038526019335073678318284809227530767389520830049931633734825070456345935364589059629579708888928507102242733000784400450112929029474674673988233583937782051499341210111754094675641904619729164204200722233386609470260657279447357060554731052739844539489520561396267851280760097606333134904468899785627770725320424233815247483662419674759310284876241307963404121888300741595569126263072717025254847265763201070730372182762052646309445542191134460195380666812758019869895713799457218624985833233985834603954215734687164360685197365204230658534900727866683086668514348695317382988904130180818375754044915778207570848207902398943224695287638300336509775335046853425168552134329226988497697003327708507934074365049297267041191623281489209530930776614769499072522100020181797920753884081173257876940171367007337192089490613458554899864983758799399647369879745670945764214984887185099693061150400052955855923458367093093962643210086996722696797604919204018781570041447932287067661516474575304145236784953344214221207395690932209272199659071640506667860225408548586363015755678293411897396185561896938868016660046425874206015423762875816629067698647834001744955800174975878757802653143393044868111695296612427479600876970043677061434851064150362377897109684126374595907618293327235105639435869412786530218942548704655430987693819139550955940048345449076104415866283682790359513772640613761279385798065770644536605828292459933837856272234040941703200137930813510621563778436992688938952586769990504915999978096661728199183879539316051472836671568378944533960559505983322817766917547251057946096715501253746083671821118169399579544325934702721393827188416799705292935106456746455392116757575834319747453016903915713591197840121928774984371108988989309349797799334188650361630078055564547593793603232529122050945958605689176109225934453528143839312750794284434166213670327979938201392247667206326997343739169513023941572541278003239951339622765086721461637002184139046885034452046352476958670093471081351995039919630430518193386092507739791543696033272629668448504444728446333591871658142064538648147129213668861749294653897113457522720234231213119279611793429550557926609522724016306412717694078934447311908600082229232427714125082451260206347637201093406811540528311933719563495905638804522026346216446085439359887585297369617168465367663523738714984987730975936063225093598378506754630204917315484235175037810774608432143464496157271403799703611807151712874098919147642476501651467135604177947697228832231601439998914348721096259570225420622862647731773878146244860018468141855900165321681527733262726892215741102105159694176422751100324254130751836404165182052772055754400151930407153638252933205329665310037695487904129389227519336760880123115777082616450849813506326346151934590111716798955286024479383804000635180778482714610177835620703575150595696854913650406469078437498734541350582314124918773876936983161927716015456448586551822884510712504152302550679928329433161165338761374774854702566088693759530963144039852841873234397147943767657227096817765690961377460181299014357920008916092403311538891546714772713746571105363446844581343038377696913889045424781330077594383664398477013155348340832205422281204362484592656764122172398202249518213813491291382590045633856979066862484664982576905720394063391285228818782436717327234160366283735839824074344515296038537624189136296925826228095322552477761933961496435265784450221020625314128749085017250700523974383877154794308077040090760821274403840525825530360931867320054601739928267904862196874137364047611479933040529502893298001437086030688037095970354810184035742335736013220532532285480369062683067091539894162298936895314974893967638612577562088367291327009154145947060387381322799609125723865772606568380015545627727316191356837286096955146934363951344803875737438368942045359554111701253886307792363847652785643408133869056401434580190693946723604988833010015523071056905464391232191214565219425335156439825445596560778662111045439021291759115443562555883367922732164457885002432778420267947844653169395635748787678233438662509001562936157152865927426316728542988895770256248208839213947734029499750271702155547477068410860531802187577647972872491938910866030058467935900431977405405455428989526842779532420538658710537365214478211367349725975461754750034213762542642921061242367364947902425591146782057840919808034121490326219219776790833209018598942013403396668555839382153899638749527259476962607987575283973799218120542567222534230578352038130004525624631796512804324109875450711187843778916294089204146558375633170718034822741681424698545711193529669838347706310542607082057522024480636532563970229964066735479776339748340078191872006620556240843520029063929732016032931175649000886291665310952422681766038110414412143432792366667869277583213717580162925637237578729580887680410519668822534801703903500948166766772515910580832443616735611044177346679905208392522496823268027212810734156163325387078964133589390925973271171759776433715258707412483770469286497814571944189588600698666385287349946722822931695098772109144870720898918400427937638385801467763528813459291729561302900404918839736150549939353388476803245447485591610641742102658529366810248707097852204086914918078710229788822974682581263849232864580882860729312235610574843719439105053977780625480797803226833326881905655527151491668099247113466463778108351794264487009222925954027213681555348332228497224540438351278186911711632869677651675351521078425491127610096308386731101878614081301557959492506900386151157934143418593091125644506941911574587117957626964048957624130865943265660293816778038004191272370044709728040167135861732587614904387119961425820427145597019073433303008483990607320718164273612634371140294561992902821369675373189166548849690048606799226581806716477044715771611917345263193627903249538881253027621809832956591223421462579012037937117334919644207014506674068277128742419672754798725858042204831302943291974739090321490203903388218094796632890606800602624926561272931102218610338862899912231730246546884272814027750082157930863407644964462921662418713326917574097690715449416252089048947673957236125930029753568714393677025749258676012566950284765440884047487458265623842812317923178536056024442202281645510859544003114579915551713617565694089194358440794053899611878048263950763347771620225008717037355026488504544888455967219240175065266222231637023649185059126919276475574296507445264345005774230867568375864960329342072459883882401685736914716253279161983186795933646692261797255815241183309264830309122401594231481871450263434496487777796291656571946949164129164154898129830171971074920286890235804102190599358442507478541649806135829269338502186620437912877558742005053143158141006524155325278114296809115154026596995075685606047864397010315754605785067677346671802211860359071036811816256267331002754984674105195005358582863637204004781887128418939878902227676668522596537869553957911670216345266477722029057391189527174218887998986019965560898688610828246849104425223706534876312000615585317004861932965316571068275119329718605038078630939442337685107587530101710248997738384980010599798064495421752418584999401854573507223220293915243778075932263407869800436512125013023398015849749205079511078824313695811790965100034817541815886495151147365801206640960212927256536482688660264901410127995851529052111345600704892041754349584753325886024284602550485946277652082324090552327189570597475934360900887595589116531007884435211187852124930996488568003130454729789617835523146133287331415234675504058023157815972442369209192731941620560049926256267111640471875033815147196555112615404318430250383265618780342741430826476661918714521793986175868452551435695418675125853264012643184363724881226268053634203855711429165021990627216975271625314521263169788397677389554790447889986224234058708783259748591770226207584623192671585264916287628389160939185046167142078702626927960524199330224482992673018602119674547391617878836598538775389307281941667995085909046361989065434333689125397523888573303168646656907367428492926838207044901269279696550670957606922978439957936985607181374103818626117930466274874445379972222010112875648197898616577851365502429056003099889460369681269997379003668647449150937323719428209268386664959393366237448526413193563329288152755911747503356463238690136248436315069174937448443345324824541082025796864945104799068556349866921075685870617496839022211225622212003108712758881838002856985794486075276054151434489723746749744372640872769744775439410515928535958061455250461310111742119183183033811914564593991011476678330084841714246319904481649656474621953801897059756329025329846918480859036169810732648449408336802259861961959287637875938866007939032860223422845107039720380472302455988177598860559644239069149040378554571137485271554868664250532415478350811484463262767444912814972066626055792676975408831027799146538819136505180915213604340060425442014269258460679423655403847190867183033699424513861595307962189415425076263059726978411555332944107661491899982840388150892924508607957626776629965846720677361495412587842792907737292678073129704852507316273204187389655040593815730137129997537888531873114902156898924288768633577181125499467145120060213781081037717775598707055333497383562789094506833187118993883528209753771101643790841544035477112744326633578144471013042678103157206753031047483091907692451062888196020237545467022101492276560008274811258845588202150286883624356412855794630481718984997077147311749307990564441684091351481957218062787564562160036890589701589075677454422699607393914092649700957493598214038516290076849484720221009557295754009081327477053260812776295174126314620811662995956357657661182283777662414251873461633899974635256586546639832835862463462651968335542757341216911351374283744746714783226832679277916033657083105073464026691353031214843394132665107926649483262220665479321217711175915204423601272560281721330374914771065001519943153915525652600741196350845606990291439607247194514974705478600385652657820820384666761443876799232777319904554540150228620902295201406998594221684597135213154921648515419170633166048767040869187194136326267127313339702976344382509884950957403266519996659685038585075979819057993381181331611980643137974523673311278387932302208508955522215499238759414705012256552207886187734508600695882899525887212260623728649851400558475113694221879255712053123322447120087271008445882368172446726496566218823759331277652599924260044465088628200772305770788182061397375560002404980886232213299145207949971968249895312395821161995753232913662183743126424734524557537954125383655609526419926177610627607106928046989704679934969831433047262820504044377931687109339520286920090210945584988273565589757313841536779743043139917399511635951371970116685278521844819230419044649170700864857498105036385691357771267534210039999017846623806659834103640643498254038884007394278906464372752795849447326067973055369175298203963933247811029079808132917539934432982260795743165919277146784851439051050507179491094546404328859418588480725620042057570906088673232812470068424825332553767904729495964910843865431859242202885880130276937858561221720847771682979917010202536738678606683377446108878550314342660895086181327711796350063329845143500541814137210692460462236718760494444327956566926902629272607130255977393817671675852691569593053182388560444048641757832721038384564059295043208884191901909236094979502813491039028350269100941168972710319808244859258624865129627702989818248494159784529388900269890551263841799839498414915756230876455513575821534186065895697111131210197723292977161383197913743540297750335937724658856773513370836766567048659210192325522757414006727084185023677527107189393805893419857577998110287405608329183020676027681223870999492984418924204333331153038868876923511034239594169836540617157076655152512462767991753189560604122075194979333978640710350132930991488135503762749845484725198492539159397052611469595869577004945179196905277013215428405350816954943102989425993906502330574480607529247189127176906984438769537671440498371255422152686898338044004978060659433085591503022031028693443423836034251613437114797162080225135410568083300154751809862720677252350155132947638759906328876783019239592307828697227021225676375779462526364770902030097824489121697290324550707396601572398971483641786856924473671050628831722092471504373825221941091139478933764273945057761118854456198612820723819852134835235913039245509818793405121334337144029647275916240950089251574814777751643957991240517706642142309977418255180862950252165593540940343234904528803148346115407267903048445406140047739768942352865634264683733136217330613454817481752216569875350740543889550115710883604578226217782768822469662853476082792384830606323311278001072056045650804805026862916379197517441475314463518558694598486092418447547837164554967531421050682517735395338626196803831921001378574521752165462063553850955050367237325219101364685819768491182830815240595689210041553169227418530329461229805105457740243903190637077994310775754200711993574858588775627100454217341115744078164171613709783409247464626063104005456213147118023960599091355169174562754969983202509430938574419084831889336925172799696600000568325279626232204378565692967979692540891822165881929657199552158778532849824856828800416711418537721954999787666975060936802960858683363309335611752148735840325764849299624781905058214793503726820644813744233840001086363379242825049629037103641069812254455268541782990024318914787198915631810555537526844939026565686014430432638288587386845493988105882043576789545101951321478804127707414245832914727378801627124742356495796489262318084897074469036825366752592862194372714024916006015752183152657035421887042411729071140387372915359352007319107207525434239159519484216462885963038515258928923962925895012130179446111829500646973112527248282703362286794629605403172700637857420896458051977415539412333412344198678256497036872159698075976973871982507639038240828556870095611384197139057610839220375462377200209252696721215321097479615808703202756699193619168603228956928756904239574710677620620476105109462043784844306681392208959754458341599383371553071477062701469682877493272701195702127155885061684180598248571629267962881483057612884973113609874773098013049850857281181702263577777929568242106328530721121761738768911724743869676335216105656613610802579556821807100485536451439580054526463053824519981099601996051148336830652827477529227950470906939823925919274253458568879691031586626835072612963029907999293714249612213238215571530330066748743525043145243071425547856570328529046933792180840045754159578819072828805222532484079631105462658924604303443725124415673471794145006393407650158531787370443183820455386585327632995839205599077835740363002202393340659465234941149178415442800163701710539731593702246250532851287847861037695890642702283213616509365394480030079860351145448948369069072159534760963296315321916619243860781943876501941168267441230683720552135488435837624200615007602740835879943009917895821101133458984855878434634605722922416275122722170880180289669180713262112233100340052251826176354255906047738658334223148772162436091907154483106829208635705425894512048363001283164952503476299765155724294247290914841093941112907382785255696419261373879163490901126002723408668080988224820394277822338591248247808996723288576824667377000759674504590564943924827406862439385739337842572110357921622167748800506427546659580616086652891728207347282151560455798239229684596805401873213108153326702822140013387346240755947162799935661087464648676629327216618638371923325391228700223871559104895002263279795373439031289488768003303170684074386643618563705284338975520866793494478172767505493362541267067585608562271638088514729659645718991097352602379175746739542266554532196298282963424285289280518522090603063020880191248459842658984871877685538289690927525086535779445117723195263599757540260019620596901604612523083824050562920076131061308425663494633641507457572107435825129056467927863487801099450775138136542849323901031450749554944411536288422220457758202933334100788285966025138711365830200778314148938831034304575278017695614769690781957035925508382119356078434904198212418152760063466212259291240614168257553990878003905766592909484986020759192313511979185429712590733097569941195764047142477351965647709078976423921685756908581486704564651898736896113483882436907707780887681317385560270593223649498818459594012011303426831136407924642553312944328756457389240329929580324512645389166634994711911882934495468170374405801944448727061519945002272375802510909564433455987093381890935936934416662792167789151295812821310093714471257137124199382684477392150275453883727518708666333658659450166131099634624156384501392669780558919994603233363156634994906791983451805689367096624658305747334322409454728585560812768947110293524975952580178806974323336355939043833432744271715451887966552715213292117568271566297067543797040080003328636311302962861800562704636348316560236706022626691429388056343490148229814748656494805849954957417719429617804852890323805548208390705428235222971674176030700558101631209616118820169933055055339276387139561429653342080813374017012495660319339426982801573235654002829544986855047431924531236055904883591753459618088514188814871428315124413085260982240546738089224727402807415531739585230176892679137186970192982268277595764427810281076973888733557998548698330250321707053382631208391797316762718200443483320013421894688066044949852809676834122618522155400188020042469981682455357971842766844458089641792580296422298085940852961221496071821567140340459478027776400665269803188182638663174160651737580376696941722829880655970516561630617065794894812879726094904156718137527593006219890908139289918255476667769719366567834327882537391876037763831168919331282839290628586100254305031256268604566524489224973332423372038095981844749570703619731324521516579716723207817903297677154365767396869027588117587006555428288620277444601482792847446151081771537876764322161550379282910807122743354827744564563162926896126844987665937614840636639036766375073740324244341605995041357297099545090531239857901346110020700267215155990586935249088800451297975554001199038743813644108535983970142861201271744641321793265868695825264916995989601817969630517890271212867577359231715047812084749396469151017336429637785222197741900784711704562087252835207303777863866534455025896426428987158015228183452075681884947066561516903289295523993291192636574917439341669671682793770360079477160397738564109974138691370774955885779850986685326130219450415726179716417042537705167224037101884178593041587189756262776327035507177383806388222087426145962628101654184629177486084059579559307923066166290251910696402683709734128925320221290035082508956757323531626725703524831699181289548596064820078777428682079615886692786424203030773247101617526067320918940254318314578183363306826485439625375521438858109442720116065691327431772503623755895076971989327859846579655539094411938890826401561049275158156216797229024535828592349062863714512953857170891602454443280956937193676750442558653007489710232661149111996658769763934479849538674945005889989025265383742341937473413070128597626637300533438851804462299597980812205551900995704606476271841493711321616599088966720259750279999470806337401613008459302316835817831780725843556415923461705387079621874912294918809044313760210783220084390014550395990380700427727789584060642006420408810938746092668844631052992114107419168820593280939490912911705448691446701546405682549051520860227665457463143374301987822564896425917429880048539671828087374631835779402944856032213569311144238443810930424931120179281328804556334143189936413558559385337484252163494341152334691904138455329579739213780995911101677981039566540140741547110443817056434630681134814753684413089090952118076645210465786572067064993822221478258013907298942616648156140250183433556982829662674917570474796612997600497758110987185610572316320145138073667043846615568787210177624610039735562059640845301383538580624599483378409348330617515151974038252201193808644796359799679084260977978993983364613060775999620440576250263712152898555981169404240164732573343254067548797579737195930067445618070293238673245013808403471436886724975405499915110765352096916823196488139472971757798921524179205324662832494887722536313275254621104396856356252977702684717996123030494762962886781987561139742877907301762320642041387419145603306377040356610237320275998794687412892492310711832518200099674842344916133409485686239447394718180835749311221980597701353060113729242018751790853470735491245303039799133671563773351087455955119793778625723043460266019334859938008261047416252405242525878228074688735302234122137006090997442314443664530458429185765248804744198407187812252702453778888464876474403722525865061749976667721824325738772743036145368453266253743725557587687004305395349384299162318504899221515788712909726686511555166729449973974973485986678125070905359654369349620223888227992116458865760211622382518730910765567201710336129142432095981906248025775338620683460187333940421563147436286234695924823509903959738994676401774375468102933258769938577645172833735497725952620462734110893561887103511981787393507428711735330822908309540250965313533413167916842844675591754446927421441755094112531211094972708180838734787396650396333610597235950920328829064890550477400819211403638724576789896727512520404581229073549969528881970393007383941895683984551915563921622351169310942412780074429596249355035784406818552725636710741454556521990217256701166458949347424007854640270888554345384095577299189205771390681216169569778988646244597445469149142004890635734279896059963140135882532391206662880501559916688715939522581649389615166728298681040772238518470061205115859566485710799384853215469428190902363496525276575524872282402394550867745945328256784014409090898688685431565603161878141633959574157937352486041344497466069334184099857821242436037386941103281450949494430900540296063107729159108152893960362782563992960845321069244180211518642750486966205710491711196558129610131607114545671250554803255528767038700662645870899202236588964903731483180270169956832403623381770709088764199979494191251172572958947323146241663897209500012702187564539649667702167532353596438284350845041944398564934501820039940617473489086852514331351494666362147571329182046186594275495375657666499975806546796696615185532934039124649053434828893297536377148832885776212096423579666093768348324477897239070383587756267130304305576627434631269096833004385019705846888054707310353296494327355638486535031559075825367454424452941037391941498756787118131351600037670527816809700142430409064546189034735390198500883166896776688748664437516962886265886064049336144198437057526614741170473993078187215024844865190491097262506252312065795487882529236600792614218980179825187281370974494878165214828222763558638325874264524599302467651426514118015200594384307445691622714809175857094837622680628115680258690165067962397284883153064097438260562116707555327878913478730056153536864881689541021216229152565561440401843494353405610126508620772173596176882792502993043818662744525276370171352456347205849404052879814068985162854787280755636331916127453926633546638433974051001927764200194652266490733802705052686625498251243346645721784422538220602254713405725723282078762704445749393794845988158050936758016984198046722055874117962390313029487550810699184662051416027815798257581315020923708874622653861340897200376657355133052421813245767021132510238562627004739689469746481254775338654731503567478918214651917840251932584032181868436298319960301644841386522290013367135847328363681510554772273505345392443049261382400247499189090569771760997564223808167200163218064048002182519263468743988522173308291163014001179551253956142683733343849362002510157592202003151540554409861934264738246983659788185353863242660825716289445073288824366074907730481449103554544744012320006019347496121624842552249508219692043898464035773992379195725808426991438855837532092479475600657384608617278421521697865675867911954068745265877457155838138111721311083602042046639054414392150433384105634400528646867999277691631114404270190606275346572175518554287914116654256703600582529643297732672064750278522849584166059571148064856202663404061449036257076512795816873510889481125515439508818622324287878184295171774831179871673024431372087218439809495634755093870056426521364351427521340541069010525538204612981198441060342298305599711462768563829065550372444522725865840859656650654997807732934811358685430920625207591741223212048992756436718842387610743361759638650252355398415761719150100918943142752890238182427115300518499011477639383487699568238095620097654044492102022975333120282873049537750236711244172186065030313437703916126303183509133715744337598411854344197305123794406853796890263338312389342632266469355278012605001897756781425034495689663075971169896925751177339816533141675879090287763904991717603096851721683791975529229858540350639134486818375777707378776749744041639115271646975280206927487114121468368270603349004225476098876517487076509058679808524198312227234399144632163371019928027454721161442700675840528478650048426851531937792558592393708311089722215671145032581934371600563098346638452944838478545564102732978686585105943333498761646425878389849193002176355276288063733077348285913927611401566768927348186460586138161111605142513600373667681731846162696153398505321709813176485078141327005095395898856118335543674391568111959332401611188992038827798406889523690758562900926417351026545857987240962014784970655008967826442147063767706874393344842055093768151891027817078570166266560773649098789828075022463036840095648601153774620300273351693465713174987397559807875366627936897435175021589351974358371453925327996164533067067691056088227840845989668618500037952209431378507406848401359797420794970138706742440303955853308097256672673617351536961865647460753824150593764634677098289068670703249575607769013240546995063735031551116237384051803869327508741960970176800224234985551193168955409082995031443276398352630754292583821373052320729498578303946874370389093698401963218528785587120003963142536085604140895333311422184885363871320446276939016205666077186276293039688312011160856322525294452540292105604024454558971568591032977159104554707210086102396560073432326473020237159811646898852774210448263776367706372235079556322492933753251947384210686379447193545876063263846331116656888549072882623136456270237251685196871860781494212552919065589059158060849378113472029830169934632108075427344213613280149683306670565958930880032969240449644934341330964233826026859018859364590008054814388383861578886662780570533972828849261335411354378767497136744589550367778484481170735647297234243638179550764307901082145629864775977566175520990412340126956753658562875933447341583674413283989342888225102700650843383121882070698901533968148942349633595727596066077995880082051258020762807946163756543608522109345927034273846711117235177921605033831398621360986688186206523590072160953179793696159593036351959994188556207575692566567429029937205352786095577002110638719612567509913768614927088596196816124051149080826389007628640762749012021103893180297717432738417629215546566179824609542805322589019493670611846573939878399523626730221327425551437110439313409220118573568624491907788400309971206042496098967049253025093155610310150002235509251567601513747822835995398761777859224485590672651578916774225115221710939821712639953418423055265336069085185235550368741721916213847531025058760503911657771701375700347097148910857031690991682477222427718567312379804086991128365862882551044793446344681051852068645042077299417083716229678794717510897315270138011992523253746550945911724763407695686608714483967422951791357481882374440936923782592755570956464440941027860734777458700220182509804314508507811763443716504824178313966423176262511888993037721070710144971411844582403022685442627967390211154764699046006511345089706444120227465226478999265480194403579387093593566126964069716161144436212190794816448996763421448886770087216064835026735725581002614913938912259637375745215610936936118240758147617087855520210742033466229663069616037432202439094868171146553956578629405623090881323903005042668215254081057482614312536743755693837538044678616346406006703223900903594027647618986332377283777607950357215454942760811420394436955511401920582776939725273479463838677785103237475247279166831239754516459883044935355366028646151023425377303219494548962316505335698891213503113643057968963920354410560155117383921767353186179772249559812177618551975810717120251411354846904781525128306213585907413351230596286532533160740283373401483912247969177425297758822614016703880673260417160804493408118346734700711075847621228051552603173060371710710612991864664488011011463835428631773958355510025519039266370600646839316884922510952228635503669313278823457959976012896490570890453597832121809283249555091242604617819182851244388715916496612918747130628064764168162848013634414273897528961974678651668747788922063817277577720930736452470252816653796149936611608474481114175069997851947574275670420481443189802734952372635986459066360032001631481732629809922667425870710182886375258824745978376964899757989372312998726123668721806406629383803356920736304207240103103253021041959306241410552667665856891328406673686363491884952863954143741004521497737710023268154975629229278219348747265796505183172226942060901964280113947436087140181758597774366229572275834156597766294311621219379098680544305833719854629564985163950127109607764446763062247482226351918904526013640248514044244000761500876253906349179638313188401535430320975143633821466562717289052113949396098981511213759777660354232460088194451403455043148002935464233735541911341703048888858667008212526533531431714402450925782722500069204298711327060704305904710860686473698693135137349730667073824543063093151848695678251132011313978426598196533659109916671799784828556100560480570390469930021275854362612774883635875030551772638279561015256465880992663163488129707565011781850064887260351277946082171164363454884145589583360600774120360462381577905909059760849919991128822704618417964520060412422709020089525170047501698877367195652655041498573494168138525729141387450584823116138524361897276878255993339444773852686236026007031609375836254145063558554849301254178023257262745413068467115684737420573873082595135789689125552311810590830568133605107481845641522357567904108285638410372088353414610881690381757478837723598473088709854740243690395324403402502957079352891143838924768681005841426724507500321357167790741857246305925513676133434961808235637384886998803239327374044648252143937798792855905236027223074599491740685112656299925410634096816580659306519994130242759204176560524191227192465687955011110737382967220850012830891242639402102389299243831862841717132982321587783690636003705548409680040569218689649297914564340915420492588500123531406820980018699753706455167614733904959752198742935262175688710795902731061738628758656567728234104729490971499616326922258799713746088468930268515145705956153702876055515802192259478166378076253855160707208731187487353688929364712208628868384567632639040939005559630028915413595178401167319028934618143975860760020379925941061987273162411763045232759877151897020818672896452204308457108520321385929588139747678064913947938454807709252245802773071977842842899762353505117783695724344986185156541008829606061793974707279290134425284776633141043173059892906819027033555942971900883366767731957482386552024487200988669274071222184760905486861867661976751787813156509961087328522712230317897510694898698776137699203757799403626499032028499444100608607588723568638504037711804576271098745808280720339646805555608015412509923157523320104938948141849000923607217322252313033171235015634569659826790420586722401759257775918698426314596393881877295374171505266808565256479423968195105026469154334043385135097762869209589826025004798555320603176862256802688393097765289500400927077099393169212389799882027953480584090596015748690448356052353620331805022461058270001323854727332244126500811392325428015822684837671461963970066137701271496504526098084738291098936303989977986868289837014130554726487673303180925003574139632711831005542850175128598783205342568625116805289370824019107574651706736765520868213369619870768301620489064839702511468088536838313139380617184546955936228061856171143028833714672983919535785502335768846833773727534621308195693800621954307719852208882303111818660114862973160373040995913754714004748914102063020401138214023009527055256864881081002437399421489523127315248401569155091462697713278392642311011990609032476810670497483952727966479847537097786676703377621328681730805615451189188601239108728178721031572328461242052819964721842935598299830500242641026496799862245136519513669321416119083382890546925928384008667000229050783922512377867019110124477129988620930310433651849064586260543601506580116907223063783461587368813248904365316081540989958494669353593999701407259832370143445899626070198034342950991504140274959221653034286163592440969626133970754193825776712560593071636177974368929504624102468946441511954489004399219477844089428486378724713605808849998135456950495841574504615451201981604884687437461298799853562886765965889056552344897258741919460180705430535305958148401481050022054213213255892209260435699970361955875843090177768142567303294585006313964869408898577167301906698500881259540121736913237780785798107425853681689334642857448314557806626557954742910316237761727951972833847653498057276483758384361979244625413309132650299961752840900444979933691177391743275520702270147394309030598406969533414778287332548984851853742811728858311305369335897837688336166448887776021611143753986025454025784583379557488151226942025251451490066515372264962802241352458260953229217976726413697252811558567658729854909733186036786495887051614636530179875927741950101098176505317698720061081677906865278165770418155055854135020578777222659964674774142926355799052945391829864437961824659019964392075075927888243370325867599457422884742388124363624625542346290134751093668085643918691976653719620077694300065393165716234551462425786815376345476280015858361413526318846752353524943750804817848979274085193860506845491533663592892172620791014385199871126404775081826519696270011359113548853621496796214831147810823097533527170077734203708837905336170105707107135917755850991124334396235121933247191904914187962807701186892267332315388228390457609655738039852740329233529120524484164506088723837267951133455972220321984912693139968806865318553172327786859455179631216383821172831156912535105806085128070434500390778263774524095089061883940980862491281323269450954591899724248240512160480414894564332057503722957015025520173741865522747542382779323477084931501924629269233083542467554669549894570754789165877669118950995677916726017896327651101526088610361548272921872807350185551387398497679401059607042097278742395216451028517632460338792049624798868164446068299186642872061684859273368452731317582291932348535963526199008357064791460508779004174843037833342794266727285712302344368262697189978556494663884604786787830727383024457405812472874865129857411467752205901884831792700054896034495420093395842307347987549344299330582775476660899599391453007190535858555993803970238386681137557770827329051320839307471297801109216180337813142571123087006658064467632700972965940809075890733485009869717046224403250234616817295873746628531975290482136747302783614718136963020815473142838790768054598426474233124652692375175166690862284146136879441928722544137296116741382878729711211228961114426901156127817210113323656942306521068039204473457042244120039818377601630306592845490434621460973270299515310348218320906073775708724357248922058290418995726054463563660028802557449720275279886887358060581697263042749744854201647650274288187629473526942087318070236409736958996623766244117248746395473879072179021196657051996297035528362844573638595560717219355843269174672394840648099588131332714619997479833397712352367801591957650214359507506860488825178626036099967195001569346853863712846557564044730574754490125771250178363809027016397915457630494840871927051241334372963376295955562721981041542891646370422045342412548353335198255458492592985501867218077692809773245607191605448525438839937204246208853905918590134460995314493619722552272589532785987656787986037909692465734615638571462189946772505420186061513352495891565758937007058472006183450389719612177320845340012356460132949137472321415142689247487757396242154061975639025268193776638264444671520312117832999386668289649286096941434447838378492047427358983744431978390720325942299739773840867657478600222650790631074555525613732004513031261992275825584855473187752257917115567806159377412024800872989669630188072582518835613253541068027025317047616418470359486362442634295162478086988949499052007578724920011507769662454090510097457199669928676981540660574047599067550049373653919199230201516892612469502810766119895130206902741790290621349881431987914291461730522079315022778848533639518948695548718510204165069402315048015068751795490784845160527090072646655141955573566860049049261360927766047481673124915824023198694602931985239646156084687058811789089256581505950986944637787826263557333102127703173504339892530400303409736650505840135579301692027644435655091405002227011066722043677143792639622812246062033290232748705767129053384765613066549966061185444953133759778901564744645159721254884151906977834701900569634326829574647715926765356495199474010618799240690980936974021142512706254987291240607837826074285404586107772333763739674959022776144276533076101061364830029466707543081135140778877938328713691802188360825423034920247516492638886749813678858286174674147400353136699293513349661808741654451670891389492267379067816333052168864627659303952127577361811228969784026594203515961153194895039083461848759292511316945759687758358959613271021574702943158749166698301439268867591486174064666235533332470332833200918555983430002947122975583529777377637562153237030816717522872281291847990540429646498008559102243761924121122693825384968446994234787350241868473831594402012662665165418793605945716491548123813551543326724071781050717637476888679872393155470603339748239626850175325713287473328397165218572282100233110299731006860662353149001298551272850341276702936328136969042867118802113523603297080890140157155782804164944359366297536403836809254940004120134427569698906469374014139510867588257781818590261601844481376377399616296541759586411690148161443692757778212269124268676315254172653731027972868110922162110868601479662177566933474832557951952532281316582783721501197695275660839013182265707855945138337075647449753537646769008980079269003027495287652316982795443168641412580447050350901179557917524565871391013335920389358485859702800001590056546362594422879139771819415257321043311139330150656811147698283463376546780901014845194379205285451498776945986192437867791584292071008493283341146917614111954730414135004854871808531311601485825665411818228018120104048317689043882879830128825931931775075545090822595732270578718299650523392430570467793635353799516751467066944165010159700657655266170602671542932769177453485987626605354659789694009951824828739760813488318274211804335886671478462585855704151727298616867564703350448276977132640476582438805428357162397006888119994791391706762953708803839036160897001700658626879970497122432785536699211894613590028672488080380301150258672385689271054565759739554676089623909644202165131025193886240228099777540235445226888632591065432213794116614880481930564998090841405877923406809127770827590743236499108682773348017760985513485489879839523461418361742544898023407121566175469753959055788222101629330421611260766164993063173285401373782630161949330314202615620980323696448097704263251459874355688823688254538293676553254318294317977168849712683264960370184950467422359294705875449389233709238241718119186354182472208628869399513864011695728690015567257578529497017278407663900548368813559431919118343326576881687708113684164872310463951176586478254294720351031801204090136545728799825870760892659920137202875124310319012781722114353506079065793277167010988410243694639328148024069031093326737009303121401487271690666102260882367634592005531125850734483906843969790123453115020265672042427529207392248721140015474913621102457224659335305308977027549166102197361320229920383262008367619682765903925729407188867504626574010825049692617210256995343292989768617172681803719188982040327629707364682113761967263853996091574618863812807611509963993135713298940418748846669837048461395959955672129127422849740963320927796456259862283096850628127258918582260519231998436593439636799734309339122420055788061523765607106478175679144902437132814333463337616264874093654325306174330657970676157537445764542773367947940933540805411120955659196718313340003908459789772858975070289971035836720783634068430775434094406812447609255178477688313411241181130516751821152381273798003472008115857734016158809563396099052445313863381503019721511333487981663571067558453273641941421675602123301309176400865003895432121153026572089483998570377366327011877378310254894798386239068530447848028342200268536638843044749936161226442795925487365375753611476781524082332259038833384154622097113010914738786865171793431504955245626550432851437316073662944942526048287199297637053563418911883478628808052667486623381141810778711469793596818513713045950070365979483844891498084596323986567509264604789100599407432957877662137505419653114377684686207962377058166880883813257479267136571946990699811099563245602434916309255980796811574745081643431112656576941931973075577260599786839438297483419199153076413788819774800192451369018848619386998026824060694574015693947152964937684351075127084951777724082088597759296872023286010255332118325979259020490773909723520260562392188421825377810454928387437897530903572324137676125156355967641567256612633241759280594015528915361075908677176470081071627140702712922231007272982234240235223708029452168016719096582239056083675548180384184850489489326169674485891588900830137860539815472872394942760212676980979400595500650441426729401805031690727433740983190736399003777848259485105268624522631572466653055552675039967770166363960082984809936005839393825257967484995782629024088659886463587915994780674965574358258854251431413288969547877716667016350160052033437552446825455448453710846567355784385181474638862336962498339690907704701227064245462568592751980187334466911569772910891475771181328977065805741842259683362292582629080384538502653934928794041052304208684929530381486445036722655407963407291505592319447773282388189038800672256976639347657231154164127991649311676814301749007314142596528271430073172697422290761783121224261958960366075855180536611006887481898190651232253736544071160899578791245389661401752063111359963180643714863009188750824979870031403768955367883942663560037016833715404756594809670870100891560770501347423305482503364000361710601129689241344450272493478604141946427687787236437666844909716391295286181317280317394625628070371463904953267132525874303520987045675734826983817223038295175781797329362840490373325457193563577196723104987981989323705246591658349759267068559304880017951649963302667388269316917042266428181919073563830277115740705080661951657023377428798323061335296197774975410218173089985219130479946631741133399605011596295428114931256334216743484167370989807390129226170145064512471744873154523117866515346579732369817517488515280355689070284917456670402384998153060910660467228890462822736357683352346900827598238375200747195240160682589401651028156594394124427336788775387737845360086344990650060334485326708547990599356864138272041418812564352523040722458377240149219452969980285783670580791349684177961323589831629811850501041457974553322321169713943432495007227036249637923558719648528593214335534074945727430626299507237666664280723879778093324269142646957173770397453508106923179926926625156640881952561931532945550957220276382857460037835826426215843589682084660865822563421695394397531490937011147171091647606449045554806635827194484383600923090222765676964453775875778436822925337254678411954343552636774273991554392548274477823694496073166101930899555989795496287927947555732626693426905225952124906262094963423785312469640476020699889724937670279814513013246474384179266274242193241152270539621300656960195558587254861661387157597547421490076245821540490576809167475129673035062654932157694176075691002885342170698679066970599517178426388432782840278604346587052204926465837866056426746860699076182308204863014347683969799127300758367232480593058025760023395380496764531568202691782852686497748897315255700752682156872288268619134802429493278398801894437082907139903034212120370458569659363150090011054578736020878339891873453751857565392459690204519601718983037535062742986329528940002433410355372144082569458962189054111032575833217538195524627484669251341765151847299557597231335270623346881075742721766537867723628045085625883714577774047291919162600047764400373271109921422331158653664317903123726714136130139478627682728586753983396376626643878935308225371301920205996182341995285811115871489174271117171248325468586802230844264813185470547051086819732401635522541945333202335198023267191586765690628701834748941119732498145653262722875496836538043780116101598504191280830697102180915641997417175619346171236100181783313568948451194639766293083698159237849922668540767665130116101039911035136879235498316101264897945734685210115345061807523227657280119805145718380194278955998304178384615228920212011406752276813502837871140479943395036647777075849168548634118493593982168219613357003427353837459302979993627334360642487218527131497252023748051127729333905037311563831384595396540879862798776024637750157460907207682709759816017701129943510975598099964918753725879875192331574349403346778313285680166562112773720087330487429546216146551985614932237654789654138522077210579085686516838953892204245818295037298257283681990340364946230808830471170893088732522972470529430711341754788913320859149540016335539028831985346459960055405892860552901708596853253550143063760552462962465644756276966645710111406642542108263742103042417719477768081949190507656585986768772971036784117114844103459260717136496967607806382452961268062419056599447184991417946338113199779480589203846153644821170612402388764371305022940291426945777887748808810827955377431121948277165310279880178384364146533691333172465834617146122203976173026511284024430678011606171665429627308307415331178702203950920670643462523047209539938784177177948972430597482517503872302692641693360211449076796115932464513346446498226152528555642245559878595224254829627833077601753418567435027420594929095705287246134055541732667493469081380869026078216097475137553775932427955616439771340193021663066400567817407900227383003389752882388593386115576942126794256422410614029824811532247085174326564612076059266367388137060135843883796945905539830149736796545778979942296134591549205871936370728698480859494659765927476954458282258182361665361753689677312357157764058021492303193478757357556046928683846753084311995390999280523196553205534119527086365735960490690061566035071868973237126240631021985159249010679810691438780203885038282790498706696197706125253146320959258534125902038903057198487968235795265189587843101776999399620148852809780681637980490015476287481420564413683308230066171452243452524550817214417929053347007583794687287808369417570295422060666599207271977121210542201372824118177353057295422154919852644042869143592670456795288247755934298398837209098627656844931216587876416214106493840292555934866867443101188621484178827868255098186436621148425990522253167402944331415015174498140849635837188842482768138859284941070993658156564863831157902620771745113428091970008001171982418119113875176707037733403685454461061115640896942692255309700871684386205675608145854960898344664659285909889508420455164534506679833043738280839184481808720657045770018519290645843874845396793854808203863027621201648997348097440029573368160162618298871808144566126951468709783431317775919685915770602423898587763061996816274589982691474692422836043191706592469753356291868259304446226182859376487789080608942956684324201179746903056847643163218025130310272960309829521927353384495046437066194378601470464707114936021112378004317102988249775233237570305895977194622294370380728928548240404096590547720185466537519161618407925259451757719179562018295624780006206859536724944389920194512744401672663241553269241846024806796074626914409631626088931014482892581622201685433014694896917159036388355488637011054781387896223860770491655517677902790179559369391235689560002458729415105664268802041485687056298503974236804680239999245311973615457531173471362448446811605095231013672046331419167397052916746911780828543545568358948870033711472526050421633444384904767501618997685604893752997209101037971163366982164774102717032042905462466637443276000295764659957386589338716054649184525561492284052071880686805420639101701839672652349590470783498931405434622258614501476661248241253190489405024897883056597052429808751337095778797426808961408674170312970475395605001154222236739309211233504497850411198879912153581252258569971913401146489637977277337117255817376279127626353288663213978064570456780222744777619278193232528405891931143989770674821812326680124791834252252918107203248513560032644836775451604453119363393925633611288324198029971396035821576278329946402519956899672785334610851131635838331345923983479348849575802761685916378653341076877143268318335474473716913209591900456520379355054838819978401426849091346200126614788402374311277711294731880918959939300932713038957848443078510172625551425357757794785901673800043958050381539206392556081279156197495276161328096866416591233871466106238024151326758458160580776738221632515170044359939041606419152107353882076273536809995971670226584749887842170877221874794262560726539070904665667357087689530740083162447019494325941675970217315135731483767316011192329564624043334918639171859596788650597078537006397381056943766248522522026425209128118971624550386367865091104385151608022052808545598740173586204048161293044990243134285107869904455893012836074211277235483775087229372978926662693870301675896183964463276639049833643071735802456294561164965763581652760347130522663651925292966937801119780266307272872168911109748938226877746133931911487029654391477525939925636603918321855302512649233012821701547720246467920642953532137283487754533674832933469954141467361535886771012055282152861225729369066571326251189873020505085616197208527015040078058389559286240664797604357492495633300282014137687440269118572971934806160530304276413908839708519447102823834381559452451170657935682457056573728584240701774574796799407403894177029201566749842516652804450818600369800615464165896820675019076277072241960296039037474993210838561853900038918532490556850433635700680475669097579887787034264567990043034805974964064233416661352213196793274912571540907333304626616133399232938639205659822479530077282698043100030650630104383447971051571996842079327852798181974611983918220713934793815056407055481575832224908905119433101399494605645653024483528691543434540988505468931063176119596196192541930173261574021575891093179010861758847595934395656518366425263584123375039665766595294996475458582820758311217130980355837546705913150322042621688941539784543150549025623844772055976667726474766924574879589578171091195275581342533993255784084160274827701395773500057278098278913335693242794953705460210770914910979617749143958449386291229055610150082693027583448851441251815692790310633659651022817619291353846395230447043734456689039794265923988220639252165874932038812310882275084808954633403882624166590416219707314601460891700596969534305746551544850178433158818860493903836382865280226841603283543245465305283331527950042538066128552252705216705955618240012690430125922566619296404982780755531494920272475409960911259047763912037034457984057370835798342635377501835725431309239189491883284281795758777698328691512114371600751964883171668468870127224867494636126521002513751678754265986013818980271510937704423078012686448379990215612778982753345668341765353398516117696429716615618477280128886061749103973221455813107456205149607584285448634410346816045462383156982975542965713952412564363658702378418619633701237585722360623487636304956120179635126820905984333888167711437443530088421067489523310019820490477573802948361567992961621931209847244589617107494211409707378289493833476708760616316225066962896286331524272052751699017650576510758340561807789749983140875945503801778825982331172308067681544910319596295159680427448474409206665850070712663170884077055015169906204237520264521959470848345998192816699505411218130750021353660626221828356977858318809446958197134184773093775871579188826410784239876490683009864337854240414097945810787752543612627224474974208724920031630077469587224913057649113598836787865409793660706606643394183220364317895990947388356215378140876163941781226502309305194005162158846332190170441788127574352793262120027734766476864780174344072041871776722368487971711906556930070043319044987014414569046544103692224546052195593185558696156274526247175662151422569951192935160858509784184863110532155655843871304233552318633855910897257877572725090664058872939781192145293568247661441989778197962599323497939316436810865995785508727864768908707830263826115457941659482726652049893284442725284354844075463073671516228899839220338081839139466024722223159999324314906971226645256982027794050225709711817650738789045921609933602851809161334442615599407215841511211931507524069675804505824648557107207249096033690758453713723472102305267424377980369358116620294096600732212786107036407567390881317150882188716836002298626154041443528017125306328097643397631984965857345343909122071248295175370553740485134949137485329962324715233544746807250383287192102634278866354601340050326894101692061739234931922582793124377394934684664903558914245348988398658715370883941898316020192954294908989164496583729201677495147773360938370871698756101174230962045785311461693921708012705080672739630837360692831218746867425143488942270469537655511849994271357386316937141372786066567649561795075077879201117373876360507333423167164678740560807595534491710208230985572707675188052739976855697126605047415768868366386245918612982399511187681677884355514177273408295214171057456753884933608631503879882434060699152065375426156729201148928220833597562691818426765412422807439004508702513138853913150448944946763603931795365415970345512489564474697888535544498610347850164047387899078504690805713561033897283624794866685638771830212118627262182351555334316894030181002997070625984137227074939725566796065397229691250021563810527268115232294785958720031473881535979710659060885590609379693413776780104800942998369942915752376756293012346013763784725000367234940192927016790506510897863190515318171253723041885855495335450104479669164636944883177961778891437064681808303216713807809821588014409278275774545169975596900859308287837557860521547646472061179234868412685194575923269276828747833611284793123439530574626099551136466028549590024848131141573408693410205122637770146548360462267412250411925487191061315380687395475940607351322985601530251289055912254753319573701932069601576230543679775195591004308616877297805488801163142425083437485282068171243793378669811770326581406279741730528787671150395881545852503351810786417688966865228909949483846831455428614662127190095116400028600398227588688377099401008314815572582482070970542166492952968455635788005262702299722484283174649478995956209777471951412064189678755459498080811457753847613505289337398402973297556970419582283508756067743058149508241328178937208622997178887048026884872358194009595384833707457959429737191191714328910417467100383154257834454821877821093707929108889814924939038927867662246063026330448888950366527673208080205343609231503941003412168935855566482940273452153105819555855214497203661267393250087745493893866839897107400380282752550336530855580801578520799029265573738905113845116882639251398499868149839568235014503294043238234918907436276102855293635570714837840949474925855555451905649741273059769214581011040551255556568447448807825795873871995170613045803580533038139352562940706657519258752223931546889974252963509214912735879815681913331738413532701718369932139512952704050012203609054814641669554537370234400535855408175337531597351791748943084216231544787036533104123608548392805882950296876441111650196322642144098922150063913689030757432537724344276500885369248823560290830841650035866940977560776623821098998340493676134806569872050624979862092533014408022959782397637340843616970816606500457940407723612447137672411474998204326390708935230648407880903733927736584653230765249644753585801893906258513652344112123892527467937355662439178337707446340722865465988501027208661181429113972062550338732712307240429294451167903910558298932241299370145555941012428842422040618820941796854867830026549043997627863343869349277867789200770288349537473438436098111908732996659486028637142213330154980191055294234499597694361293810825046926686865689458103605137411979424696109272333512556116211074180441507185184423348496521419709211915393186714755951111508328129279392733934108839968318572870109016992339660317373253101920660585396451164253930858510263349551118653806783094582792957845994584903560831380473939587608186781387046183273252184118726320165164423112126151700887483683926082398673449599958629244264314892364494669724441962842037612282875408680878471259715565592364452446718450618766556129466757395930477066588268489165883350495026214881827250835774968085153607938319399874697084995384036140960133046107665539268576730421104246437839614169025287018381695787327487228061330067584273346495589530078791463717611792339579688504638206946744013880218947493882131118959262365949915693571267302686121023027014571347801769390411373272167379862215155758836884033605790632927241996182780615574742594221954962017429900295913881124732110013096571767110521332644962428550371068491531199953886772990146984798281288729056104082259871944001217186206853264014472160191038838794670921924925546040485044128304437240584194327178638967547853754801589411280470066204379005227954614921012204278560550409908643349084207805346411212400397160642227635697704450988400556756639587405716801961292865498706900957747652848374949947933705930487728499390976040091380857342416409022942237019822084611018117863341728376209389229946731440694821748506084865311207349450952257590128984821837897594099392262133967585225036312218493964042075817526849457214394499636211298226508190985295393902235153823204705909702226631321883187425579150142790993504524381011673154726707636429371575752354997675720855738517544280673965797680112389481540901878863895852519233450969318440863455143444023328365504864031814196042958150074546550383073906230472284714084301292169992500689693565422304499728274491963314239534626371877591634420753913902910162714228069700539312523822308171450896810904966221938025488343447885753084155597389557849649027630935208109216211068440879116615203014782786102712986816389219734725848730409064415609178315504302432457183236711748485680272649999302684583951457727945313912426421385380841689602671614207663284467209982762788971001898887065251628864183089389079797731734245477714261026774780659308364330707830049613219218153007669465144569840443462862828435827302477524370358486848979240766727629184065226647877445925705615406661691710175334672785648556737231118566261273764607194357426031352121466006004881790303188184214477408371370070357011766706975258666153177762370085353703207489101023512811084339332497960378692493184082194765370331292051540242599552335714667286873417550257380892303805676321398628958110142191029995039566195999937161012812767581444091952991861661786911517688036602380280506848860302338232139744623051461804110205959859033783746685522175488563207018674387078395614841490811925236323519938283390645892478229923574558639080207961628852067210313254080158962380022193341000930659933000751706498691143955175696043605261767008113126677020399212005645292327675063681790272053877227543210086817635506257270378517972616399538065501457377154269614660823258109792066507692164478538916667757146581950325452412420102128368974513242034511087523696965443640110657228171653538085336752405159023217825208603989899236993583543217329497483407369932187293069606392969839243207096649623570047043597108053594396194802538858084818442340811143470751702471987073364837092010760951049527515885726128037414883353278307251446453379869874493240473150393557456389043465883928285671180105928841826081200345265183950816855299766515411645100323653371218856510390476759729369320385676031295323086533986422722921743994143606327542722595005517809772630949579235279541697776475977382848696439490321405585550704480393101437110915436340351979928847526123525117534128645892524251320380778597974777003875274313147786531425046323541440965662583248139243431943990342382312140941382824163461124523035780340920745111310042010271408771784726160863930663062572953812367222114436183063711381343119081890630679347632528697561736282241742171907291921883610911828359286609500077956926342879809278376454057522448434087261393283104407412264865188395247721405460382294605386434758822884779154648273557386922009519671819716882723506762280289215987493485339376053703794419918820108158284317017160822341116039189142969083408691295330058031457168347797600248456887781753506996439877498642582156054184363044283206230769413754034365916588097388240931619709675019368451937854968531116460527299780970989957018217971371433910777952369684861597776134442656347957787232369556012647954995825027931703392996923972804220382717717886592663751240947625038543888293220339114864304056628786904262592530022507814274647504389963050800304805050361017425928107538612687693627325339824623719586341132425766866369847459650959967361632365305203418808680222103347415007941140132320503169971014285084979146752262672755587924550680494295213422846104668712128044365417920280788209770183121221592761493557501654669488586550934976518407865064329780839243249163311553753224503374883997991091092107193967384129667388716872428533514048425971714734362508111849230302332731969961512849772470705657221495698157196025934966646661017855632057345609727825008773371139396728876179904969805465276201945806913116308637224659757479105662121253988528451535103702017176679929088323859162444630525275790439939345603568464470111260285283291884369448021905217696215428238431620157981344185298967189898946658089481110058258083612915435474362713264157436510231591314208873650892404723611736784759975305481044711411421984372747952312072757956512915019273016564262357370332163805957356111741156057090387417112656889775288353591190446892107589416237345226862555056251388190498912047374904596395382450396649718961312091617334609024560017246144600839520915796116686802334483890534531171800252384309033407731605057263122588133815548284734555986299818974859731492038673527225939601147425753998896079455201364885374573199480076929143796282731217892054375089620607926818746448250809274190611070181280087019643288812088300736683354836883408693747625608435518377375384036794681831074043703949311569054267794464784736582170057480819660360538419550856801314425563103672114296017897351065082940007026823110364981409533377273881337238950292571979868650082606116723351584608189453388475941350480158415266183770536582400824885133994854636461832530010414610081559455075587317411298759105794145039093287099686863439737901082397573430266034814848309942061599342516762588474162582460604159415216550827692788207454791490701164067244042611099872306279742052149018373151835888483276453309978240092093278635894179769385583100951191365660033664340258433611096919314051762366456973276448295638123770197864090153442597914485188134841731632079915199023449679438738784188002701596828307220353709285135441516457446458134571862412921833844292676135077126435636388281727784384159248225751408896558905691627264300748822092178044077314523084192927688853382964429847335453095266373904388684244244614993038965370741389612244527623129838200421653779325210967583730949122465436662635251558301411415591266176150766259778517234774354024371002498866363914640239563883389370279392243192599757920643736940000000321460607082749581617873749947156814201282212755130288645101298071828681591660885591615828280940372891479102668274205318731084629928162664568211897549344467688538283295042059390913366831351180838437564027617266622324001616396444169015008470566798674517121658548346115647881005013490233538825110891217812535968850204373171738008383014387644883802245791365758461661087196189136581524654928116620566649517660767608556229712642988295600409863513084900049323554637800459727369436915650483858406547472523789456668418475420229394743212050153387375539858303016559299007391117700011502532009466897212475719143280536736526513994509499646942432977267860784064096738401121744500211088602423783546805728152777848511772389055643056315872176510455254121008596821025555880012986857889732815130010452421203523386372351340274895082483598907395265196752036087500478073724326887138003132654028455111277223820657395177862332477825293831764524896790694113489602490735789283409847525507482171369599796370374436032283818425916132463269685165481371894981301181012716036306063340038100301497397121418425483369050501079783080300160157853580557347578171316394400311219483413430556955459908586079603256839639043459992216741276114113869487620416796790174748268657740140334418067471470625001309056815785869739514617309979000411345516288178927315917361651895158448221563658894058928901396496226525422310472139336758304272276706516647455895653883978572777366239153619429062346663048635558968414396011233191754601087819902172792244421041270263174192149359241401100630305016002723518105674941021922152882795452345521579253950226968448180041546414178118302628764310284752036118807898868651410750593790066161674894291165473032070654538015046025824936307112981429366517956777853160224251872268211436635572000559955079040931379642870652228775488916644463494646838279025912553956751446838712922780739136375740292089112180597687643200701697683418738343395519523404992313651461665101703335514972749364364575347698826927487877826571981378517696565735849214594837124497623940075333633903613323595916468776797551443847703754925700001456343610082883223762384083603184026857286018049811582699127045691116946209101035888351823513551905394633996136677653331939161301505291028873358282116825115988887403668841127639440126117065409817460231282945039823874687421351476354432073119660597769564217765249700430752076885759111028504704470422105405955413265262760506374777208015225650709756495769321326657966038767557093000776455231013272318376100120900641094990027715957721576460778241380013104931796341556708224259775687793135398262637259571727255880271707322358687666545116842254902550126636714658934062808774858722341237922759784627206434917046489314590298598930629496412065864183078422389035457220584305472223362784466743832279407958081258137168630879297005251547740277845281913049385738493849771562035045212407990115293671319972310781513497013096408919751373736425540693378308065042874196274060693794382623001821903422601077701576296716752286876258016299741810018231419023885301470441470442980280177535631863030329606485134713850713723657951044218197752519099740481769214931294333473978203909628622542769512484432083688720529875902534728858513195964617520647931947482802109952116403372877442487870175679323682617861570035229715408151161224630193956456039158865691112200218503343354061711913985238306287831433541646221629308583061293052942060409977240398705207931913564603928155399387194875148809216511369241639851094924573348213113135716791918997075229924782335592119577048748022843156417717517913802880427643243612302112359000691597550345645123279717365029513884676330360049117449550965646953813416290702030998800229604697552091692080745811226305605189107883318723435576388899312649324720765345356900070589169851556647522259328925765259372298440782254910428384421255633724516853076738500376450283633701600001697455122514434057913886994173339402676772192547225425137839934799137454986159021213636815897927705297696548208768707165122426626290662435337387098905700486372569944043077037169730383729175858932618046819296568330898827648977326989215425649519616811250917764826913176258574365764968490245409759360406335702668508700635342875456370826412651865829317461190894669230838034478908215690271526562831782751350784187859769911929912270022822596763960553789331090413698323084735666585778302845576299241537703719943489328758721666453845812372842878657782978469301083229345497450533401858221018183161031775084428005619611501044987833254634924063780502551803442292837927288923194500569945707651873728403164260688222778132101205335718374314931432895935918763244564232498763604630254269668634146522660064025125663094002712330278465145977891412904946927753447201421554151431882336553735562061410891379036800009089115799778294055093937829220961107490985007061520848629331500641556983332880283444432108004825806423429619089834324433047638855107387933099748387633218621100199564351492667659761557064069407730421117384617739769850841660186459849941846774287150234047935624757519190018914091637557075942447678182891249924094445571150633911992736971632957037619028903467094391161621871875507978305370378156308713470343022987011108492883526637605422922476086792039241323791084636109244303846133898220682091884107016960288443150849768816093001689946475283293150055951470410945325319148166058949262653065734835823549159033169746620071893811678995377074699265824654041949823340380298436110978787064786386622593562411174031483149538613580059422473706541694949666536065764293310356498346988033420228634139067347240959153225119179725668962048999890490776296424854540894626479225132708739184288680649397471451564741231347954512232817921816080176744857547953315067005649816683278205355672756003916534874656520524101265929860936904019979554729329757274873941722483332261222950590235540360917040553318627647879873457291719369962980946325319407960558994166317406245622423610111574683569352377964637721563938575003466321713644488664515237552762639344508859956763684576166643478347080237254645161400247632961306434043941478769045304824371540349288221006655334939619866352165642970306447160782180947370937598764082669595921637791836227649680953164750443728414102272221439600454959295196838967156109367880450864242154461913810571794268042380522530967628038011244890403725774841872016131678914505599952125031726635341367969428676819724712596341273344031330889127158274840978079650433116284690656269752340496401733806164016076607887824257495605222700780326640250169878170698182554932228527877103218206112679188694481607386384107728951758972478722948592464281865025436089509521577851589640618547986286975679527810455460569476765469733337926515188192934783897101107078257917225840937936524012674384037274486984298251877914812738967625935678572733999161402258355683411854561348423320886622019608532646972107137243400913077448342836962586457207140814360845113596338253966067160118556766190237612490572017791924617588129613824784670071005787131864235622986904440776082733933276328322372556099135549692637273575747553133643402149481294542727965244849271080829649134842587735961449759061532051116622044027541880894628206036138666526582252533271798331072545870804292340042653259040622382458712366519874779094454243496469753380516050366585320860056854442887228992989755184996603432302082102260177736265561697176054860545331921271012350847305822255568065630351072732121655569340929397044525696581752000347203271496774158503969177680962941816580037692707782016280001073307878274763097920186813010292554374223319422133877252092860275208675937064100435113716980970980330572980118936970427475684452633643401343419679625779945182611597048866199076976749620158551506031774415088203391323922437199087235102430263259473141326174948433066125386289058290442113664237759524640259496175613301434367419709720621577544467408233092704977538035036256222293797334850485224599167935442406501149071859366407685444029051236058747386395017635012593139963364603806017213694870611209667863820213429032443684997396936333418788977646555157615597241601878769861403652479431126140137323179483189944495406828764764904910658225383173782361094430370004906422493291020942854139508378254647280707191773456122145486267084666294109405567876402242869711777480683317351802795919475165651108182688258673155940055802251778845569597006191252434237489972078346420149897615585146035467648162468268134504211470554487825792668865488948088668648863944852901081358554367821320944272203440920130594229537741427132781520533672994392542441142172339957207982467718368043917993296661983291813280432625922956343488693049772893369894401992573054707499484082809468611835743042415462247386260606065823576003531992968621048740301157548654541074990471594710240343964586643264363210573734934486902088253784250803263379890740143055381533105532962517511466270872707788086990387265591680233649310534765813227027950242362404481948005906716586477626887728514231367296107130734951133772569302659803212896489435241587875163744589978578487498905349180529055169334213106084208206703412270393827147551818947964143262312608126901061195685959243610529383258092377499103996178801295124303294453850676942776495298647624053279451323036277447448269678361159097622448418679883457732479165971346046280391833145338796665069065937154973111418185345288699025350544825066535940457269515285687066110787922547747225062697974363970673063160467170601553945821357413834931962751881785500183685413491409494987155285737528965261633806437462276269753872062943756825509720478693966395694276179213454848097263324862854562120286228168557915545069917146296202239274616315075009470613462237066063936689551692296683154914499141677397244821310916899482297362102511702928016526809050837358469296973926778915737637180892266874743079732843745019793366505282964216042452914482029854428274419823491922116963956675839281404042079939706069309041775401998455515561629806105453455075876369994185461447729623687008261824684420499708899287746075479135435646686367751118426842804786317635158834029514663840496774787842006518485099049457766866561987989921121609981781891920122669863861282519835089768034940932756377898887424689075445839010882614406728917849681467328423998243146858814549607975916293716226088368884010837900438392500150657997516869644069530834495045946430132103331409581732550169834830685374854992630482406297099762166319043021796205771196605562034823017120915973293564518739251007537613609934291481637803093508515241021337913292547040068331639012798384889114292856027406589706788516242080765399095130640191995882665392033191978157861885213308583571043037511836252936029921512105178479328495407204092757703461302375146795319263815638420345013857034669809629204938433442241849731196221184123143299014297506647309786352860270860954967823828055670819242061935528608695071892499018267835060743373223072442438309006296410267469671477719623239317400710565559970955624198547997523299346031791417449261968624235100889011061777520043584303668867696759415391048056876313152837328845326494291318873375486434819816623911634032633368802865388827189190197825439791392124002166636487703100953049758152431812736777422216123132911273762078942457613364899179331771687458481605723958947650721161487323903938167199222978464010933964615986983145706732121475211976387212207369632860298439151838822197900816605960441662310839300275100575749773883840485497483297482216031621499112482426235028522104100825561998878336774468999811970964177918768692326807100005812134712375771458411940315525855476967520005843573498628978115928314038796213024555588299013566211575296210897268222045429170063762391764085287576798603471479648664472488706514751675685788242520076620122730159715629562434329411399817591490833007497456629583796563976540246890624976986334603454525862105522879700588145377667347691456926029416985044110339277113928729667976038053705523980170607948979906434037709716543272930876979265692759058422050252426461557126130991293858501349771242190000118201382329855709841815095888547860747937271547598111218226116211823371281326099052340692804013913492575297479599362870491873695379237505091519429861287221321641865044376957129610141335055117222265942711265326290833644439412381918613816868989772431758497971830301476628483715159357163574031740758760236876195408943037321688987557192574742119448029957974670957109300339266017648477082898490744945375570307008476384157383965881945100200354144964823390544066763714202737855451391887287815637708467447845655263644172433472996537858498504963053509207225259918403758058523341075304077744646221900162157543840667506769132342115516610144074103880467001496877958622478849344016908594704193448402645927441736185417777205952915988504823638178500113153148484185970710332399749823752200216852727445784362377850962668349435983043658435700656676021207438590171337517510656149469116487963349489058809645866819056091073252887582818178851551413336272141813991240590311759032554278501779992100630283372984535910464686056330251655024351486710818416361782275689561686160328755428218576573693225470333086526216694322670976733408955892612902974169172741631831239079178048449163810175095387413097530973944014773208617166110750931061810646055050239378164731048966631152827608938215862456932073714493712618811898642726657301193309232879700776791509801240143665394244707190526591512299609052660330850670538744428799928019254829993386950157127281872468229305406601954615824488238274386557033203594454166920159010753455079136066984330369257058738365107523827176975363505254371194683359645574631107866580105603646944483731498119456696570462418872571389697281884703438606307432938962599056854806276403236485053454399301015970940363017053759375029916573309728829158938752740902500101053445412481838971594375050113649878787150310275463211408541941500711127250725888954665322518203938567380447930169605370625455442294667870308264916474257676166211035225384953774896516783450463811098229557865774840785539108936389368134091652396478107287491794644170024447283771050782107607371394128841288620556144028873009370990832715694673745959496937598896882253160068874014294590901755323296145286398583903288035884858633134424625363006288031396967968501141969357607268823327298607956809588354323440852328210383884550759577570576469650497579293801804407428314272593128406133702610366644376608243161103542958341133127096381496230848292160117721608618749028604544798654217181312417742455927745428962697266047528706752272500368664993029460078539447263478776164688592549153755719920534070393179643069293210315451626489951846890292517650843355071650756336034054646962923862856075188835738151391734292905706947263373102882505095105244686678604722852007339194783308703170383805178878919878913760456196740007715127721007896490280244181979171525466791914594818726924857184922304373303351981132144553278236460882284832875760193345362090650040904154733192908984976641166837770355871263228379362773148216837471148877665403569618986548021637847630686753971679657052595124474386433670641934832307620734644737134277154668344234796811261970969169107244851018150888905420494355037792234423413734982285307904740616824870747458781597528173929030551094418890735353722049253853324305640714492714234465740576094625507145087246691162744059614677743290384872302611135844687906171970702810480858542449079842290897348729106476826833170690530945448734292967208702872411314269045070328187586403591682566350614248304260767059288917727026623483533544116347954434245290506387117519012981376990458258019828431300493723037738743851364880111125097330064462868446458678071036621048769675050228821123487992531117311981339366247134435115140716365719568159776739792911595665085130303507978795710866165655405798875719277667252106944279185933108336233437278050604381409169600396107473010115756203780617218690105375483547434385146057901310870093977302414806058685660726284492528890109497342735004119038137500939855274097531284661242139096395025066858374281863855111961635403651090952490266871744238944804901619898920312568152028282340894793124343172863098682482293691314093936231481176796559550499685097273816083042017514780982986467580419217763270118505196811532199184125775293961004360780800036679697731244221290167165820017045619585987092158054284211943194073717978756218317079595059072180114034182553184461290224472123308463479139263981234005839592332378856788368163394039231406607991209592371198655483894452203117337121698183356049843439026284001600838874950097146805581261753469513278963316000497654238846156421214950364743226830232182525595713600189215693270974629143202383232994097497155061337988248443367286085015724559458500452659850313253849088674659683054098747521917433373832732988338279023563146907160556543196771601287515892527136330350194363133759289475843952933943884449855311503404984767441530891934795302031210521507443341699071405083712519072147338683573052396381959904786120346565131510691837667127571902759420258845886277395216376317672156462306415018897950076874441110651935739027994319652524662115875320805048247824024641553186544732121796140386863373232813409266014541761789366501656911863711045071088090676227666892831526043595328844657353305560477604691427368165198790657431578371738998577499044788533428927484682543152158900714727859352713902071690684933386357600331540795538663591047670020900838091954239651627042415833012352182011274299083480854787604597274494290501176305627727188644590188138472110950928870850704188745789786787771079731521162458716062964310576515598882325884059165542241772771571053148224232582796796331320841744026155570729620777488758588098154876594871107548793117973661866592575433327045295052124740441238914284672760565467055695044644322271670413669595846051446765922044755710006148419241847395885716949694446522291464393070980955770557119774742132467927990446047808802573860124383046934457254962378259336400900958031869819374327165095554523890080323241644505060998938159180643075922738822011465643192990977209248454316643031756979800764726196967174096073122798419324470688343780692058863878858880923582091906048640459337192487224004033668896059663726327640387408289163634712342860546203816613395328561306368081665887281513848873271548307238005711175547847002623577882538864939513765390721313497410901032922831577285613533983712957536711152374419216862321914824122837487072322895228557141798294390962151020593542386006854920572467550714209968915788066709025873560919839959614787544735559963614553560462843115982739287062895045823467683678145050433467260557076737000135157255398702430039071985651997840741635946221076547286011860059129252144516627540037340801414021966294708297041307133262359067917599457675318312058994200065674313940921753103954345664420319821289579073746750214954479204029344030484116735443202083642200096813791652338863882703504789565781069952428132499055827666752284882019036225138308856939663010062580474268238323112840383295728852274660867363749396664407836498353792728217359163286551148425856738227186141977201149395374933592886477585834326611831998587069595491531975073325579802342960975016525463452233773752085512342775595483575734972751105002244162239508090825580805010762156273500665808883365189464659658030410564185183403808215073672337734291695767421597671741590623353482091179427582163286222915809973368885361312680487126319723961171358316999175406911132720891062718699233081830530362640128601106379640001770941773035837194498812746604191604572967427144193388295303509113051477782769511475545346664877218781289866112218868248867029778685200527755446283854935431233516557314022826099708913722138000389577231553933870022961658785297910684984902102978968824863620804625079610122450075889052092248511628604082506144180553312377721078880120164325373394815151776148485212049343057300921384538047547536335356342694906745388378573213848078964341988781230384038140328838120768722996994667134407045264096879581890043429784741592252030662840137089214852608911814065625218662173848721286090016817298839468198377776415280028306649259511944921546119722042229858065350130056648744608220299047366834454601643089324161461892269218779977089509028040840011138572494950109466978175771013653212147333669900148382187807487859440222960459547062780833300611029970855981986528107360833425158149795095762771850265475706292088347617102887374321348278928374729186234496626744607305092966275476956546356478382637849149316041897388232673096360956623491833066873868598942571676612318680884667236518875280715439808492895957750156942836386455362534415769185177006098968741583686485404388989291564648534949411594811558668080423523135476253002298698144617130136468200832193069763586418979718045226461915852502568106653103513632085189694202825222818332490414517905372418258860368814622931558348871078825708050890227094026136105361991121468488884749371876717917402528241939208765323385793090041659907450253202921400770401568238126765457519917861533657101487241506931941529987320461324998807813525334025678622012175265289913024145995230727638248430872361715056200227915393386077851174107338484794879277381059624201405686780855704403632476076325300473471572983162624538653082867904953492767099398466973146825170439489403148109260951972096150020337158168914661696917729019825665439871561193943131718643779155649413789234759832354933898659726622498733755065694143532545698284488298744136250530672928220782270627477273705903773967205415094890867665261258442005812857197121718002386072709534574251712067752934437912912260542075082825584489773825031147332961078488451784288872476606831786762249253701682868025508661463884017723441843088885857816926576089494560779186464573693240185221271669003486967421939789363488893488035018276229278478601782099611151463686406621167128321169799516589232754077617295097296901791412270863705825019210279458944089248309173236528880997520737338045392957106241995132145621335898646639357562776335658897506509294254273462206487508556496258591990717813019762988607875037459614430077157036277604198458388886541840679446351656102446234103298429373580555304074335853674432158986008326070489066315410537840678769355877013401383376760818375714026611317842093067864240453077400509135825302916974984101230094094239448645393761219898521882614451987543340489778785583520292293191620187976850866090420891491639269322683573815488979850208516432545146025670776420497823834233959856215475018581190191910417749303987966464101668128047640527655489247834283284552282945431291164763800377799701370308301916732309120872872724247351106182248869561519059415653334093876581237197639014899787510194111637288906387147735637086903842905271929580036957793505169899596753186197202208081625797743848411057117689239182846874691642394795265469751372172672583122130875645222157796657983858660838940516451280980654956030336874987242174557670881596061550735521444302723937827583467068067893779256907308510074495159789213662224679679099234710532572340730523812235302808683028376096870657353487832691328180936060438467794507109448868450295193527887036157065607392988622962731245745502890135996403323106900699520389134229242730207902885136103336318580395274103486880385434778155395806950560870693469522899847719468737646564380055725910840903147784345929323341600640042725019457582037039820037412808165573341546929324671506748769984682757646028594390320536321013924709345049897762955468864409065000940889374717710674752281267542514762809835078338221967005063665772094335503634559711632380385497674305911787203011408362107184271445475499280301120725037864675351085876891730676370793004666008786369529224959979292144651861884845083074187185090766395050045051898783155169048317525696728640673571596448360525054061118904968529546904916816675832505810479151712435140754321611212237265575237660909315425394513166397071475416984684187511031667483878975298323129752525882368614255126257116427944468239400005465973261068386532759594071998893120553461282046912706213338589079631735653522525665827102960073334647913682629254739978194059417597954000966289943989684572601077436986724474787439791583701830999022180446416028413989961844383851278862966602624495949280274510190473102659575307860470034029936322871479838367477792396004271054577865458438327797798979085084396497949254570976527492619620720760348033371759063953016762719087547757171165380193148227724148797088843899166146324119408534560756322475217407922522394285690910205604259910843833820404971319896164078786510913306136336441703177121831120645088349111104182651094663529059745425456822885851198062920960429323900385741115864193761935558263886875182938591386494499777618865210738526290974418853257558880701013440426874780254217046683242616287298847321641712791888863350429156045471672927483390892203344837847818654192538738201072289722236168917750499897713417878093202636555499231222428570812817580402233920260128916446327816672687472549020291029831972726335253465281402371170617607115923350736526655015939379481243473520921328399221132574539913250113488367797221266877082771133356234326487420489054963103195629584507234941240323022981216513082933954588069742558022935927936863801385868139552917945237239452085990816293754346646994325490267953046510289580662582687500171504861638197405050544606071668192592550563528162284902161275395643935296823607939655716277846268250641777476284961068766172841422913980985175347041146271380011953463341831680462929500669640485680100491979613971509720478935131588939272320343936784834983767741786148814574480900956014223631274007689697594580147497138585336986483827657105808074976777132384430953456842007210341205252247334494014903245000569935414509665430836689816928752162354353586160341346400691073854412680116115556444750343219434444178070036556852437158113090647155039326771925389582535033875329933237212844771709762764982081580588795598310125393356254716684045429112260992056557068716070461994585268690271569634235947174962603215035497671029093339995349260211468042763584849379248494015978834286898493631507393347732092916412183570283035800846990455116364965167555436159228131368489739712478982998699601939200751083394773065309518635976472370972625761911353339044432616198303490652057343034490055653414533399243927456775241250181340287439929876283475956244710584802657757273916779991092525828271268158260888696854663523154826139044414126766361786831511411828751179866680097019438098588878743432909773835746571580376969047414815309378459005671040808690319952192004852917931939945148019207320848087635501535386143897924421980545792606620748118955818389898995918997048082910212144488317601372273527472415373496604280467327194797811551507511933678044101284734549232058322718399294624147137241909197862204264563729948108187521700526698753985145740686066486827955234611111711610450884947708328723437207271821811432269924565655410699342772319728890863954946617920608762655592080880306428588230523475732480506069715417981221671214691584650935099696765702487721776656845311042242706451806996076260951629185422974372963748337663743200175492250775479177020173659099670706392419122078910728956270677123477730600037279444202763103380590325556427163637236372518161628093684583145402800174483616561612864833008560133572361408161772870166146684275783245916701482205508002058503722425775507656154226449013066629153728628595440306767747841197754919155509266385320714477660763287795532322135637452278160692720638764464344375527336871507316971665504562332251710392083429492099775766441296472822818790525997582153801873979843758399596149496916563273630991168568634550071981757720157227745592536108815159213727890487490484109982254617943640248564789701199868129534316797129756307726508830257700959550866038430170626879662883074768360097007026504592323339427471946567881738485223611208428616216762294007567127553365108808900054068303878254808065481213984354570840264362308858786825861069561018717707447099252673155428992647442978010319842563657800724217662984391848759417994705496916592035596461776946353514614845426663166385837947364775311745196029999570316537250437563289453165889825089484268133673315162292539781956534782481098085693157393903480032286363997929964025954384312807260156819084944084124919035110862899755210903323455539290763528618902253800328168896645756068285478229643388073838120814317694419508540560177328851822284127276537568606042210146725369279035084964537833853515312938535787091465111784397968375769861959570019036032836851695567253840291480544163261267371227753023163156188696163654438132626627848752541147272363490517798142779447549199338802502849253245124571957855905888807374405630293342251404842412210056698520081869405100094882710106062730339865852181308196620740587823713519924028639681224690824655437828663857156057115068753914808712228214328246391482599014171820624128008378901750665571014533632735291228526158829509915644768145624180718441930891657627110642862550957893529975381910452938950519074532309939021026553439330558648370056855259243062872122983610666341756006446320319405235425197819733066442139819484697973389509671262238733291576467361301735547555538160570957980780733855451942007410236640954841177293481914785174054958315042633853076758394656756225376833273041398850858712036969812088615266222320182986517035563243302499138427480250928310415755702333898297125742873976463589804113453684335177061656238083062285352357161634233430687299299595798020926731247009149939567975839726244746881800098342848288496887851649991785733983721487941066335410213121833252524737191470078007170203274801717375533373047244368583440870194672353841214215080920200940724904113519711173088146426518097621651384877587619087043903698882358400855904157296457493178776575275370444436047646583605357205683243450807201060574106314004263081196431194708171333315479496276659554190764011999645412061071499095829079785857113287755653039997816178564591667929212987244485234130247056318821414881761671832319271183071206112908975179239865760661187866801539313440391072675558759956633516984250450678537169109702529346077984144812627229085690642701710340735445999952956690531251782556624452031186969592867060985599599544852754174774386656454756166775047623423954390145688129105598669938314168104206495417838164132750725526333275576307023769458601831027590537533969313052155431837278841238379105730545375470253838521060039800079999122753151147717818631653979005697855325728025745570923388667508927553817218328528701858270380720497202579822116899208433278991359861208252422680368494675330269147384749856578993943717994290862484234726771721006096619955491999189295434719250164171126129471966175526759771938443190393145134074735554871783674157438573820671228072100635324069055537984302694318109228307725377622283408164590463823652999982879125906099981923944427351242795444584760517810120625331468674422614481454237737390055699131747667567917241567788551241065620995239652141774166717829772607959181285679158801477688199301419676830443386093190441965973030968771375065313359539392267550007755882794332242078621541763831133611695754595240202757175540284705360820687740120703149446254333544855288590101682548883089831551712002816628315079237840600854237591893096634562413538468421334410856091640382388982271191316094299510049527242914575115419319096945413550592515475480644563535642183118324912277579141654165039590198130127768650844682204750133268569266458705579866524359004765967386419115223812169180075135914611535445896983037655782560693543870156472854222983897686975746650131796885387969668905156715116248497346372778529478007938571124928860271572158901018633337251041794260823835118066893108703872373185561479980177229161181271998541905181581302539884810824072341888634187678842549257457732750971750328978959938365797977639655752205667650782553302874405805137244834494222444625447999311702333115780368334002516187766740124461473501345809120907493073056625175722315408129578358318595878689087550541316891024311547998670781041595769352621103412020507956875152924729382290490255268098744456343766143245078818893316250546895736216474780612038718106323229360137292940944022598677163249164272133167119231746712414071752789358904404005105184094641089128692294692697961172165049218673465964045346915188296443083966086462256953948245479894973342753987357117161671566695908822549148100694873112680710801965422748180301353708439195014562286207359992879508352628961722593896158657986034960511829094079875393031925338268184891269277598018808087484250818784041127802380388944959747480471684660087850571314998679875979113441031346787852472095017122602275903971931382469814131935222643367698775592022924764124646670357775722250420809614715654642878924183072389430608419458612279154858560142496347254533312589133447039125716534037286073804088045793885919921933799224204511500738348089628187987823998709444959059598872828631539915660805881376827969467164243997216725895479827978690225479787152560471913736805436515054816854838908439340095313847631235199395343955920934880468088485089270169049364390158198447611464140968789315843071899865000916468009105853889930847283903543264614957498151877442410339041009784233196870501656216334335090890551381648097655253264990955529308303085886919330902297124572949026198666285945203283579917361479914424529935616283003237444613892543308390977461696937136411784154341566453781727945659486129156531222418949823586280245624062361635308500202598820855022270816021863555111240084515669686823387255143217640910326344618580188336841664637275951280594414932201895986098387016903401536424886091970775094672356323338180689963982817729186800451531345609896614162617912041308841284727857519465464887304836372756071766520964911479758588978058622572037149322963244746968635415602825790753485268830120145475128379507640372697536348803476111913468534452265381118683695163125589178054328174464167620570063128048111771740380341020066428861442523619043446024173112392062537978698207505584439182440036238206389119280106690143597473743675389610623886471058952412360554625764069010168149254446474128757505672090817892813844338934070528133820554577055448407961869694250163981051304179751757737068855391575862525507486302016995713447716444073639118092045001358479092324102511854742285423254700154428080010647859102241755255519379775522048742614915769709202619637827909490946293647192919393364933003162595602518374318749760101567515060345434041284091921259383618946394893498058412008449794623651020464293248789187083462703394176274324606574388836134519522482843592761862150591411243199003059362187404748961063637173799479347461248195584338382318567197861225409353967914769084899799084762863774077408382314746437729309657763470172489694908229763096003805233954233371020272455360195584003093749191427022755179734681045603353117246059173423329410426419362996077062358852262769429938393186618706127913686363524540404173191542038633044482630648697274173766706530531024932988549701959588209257577333984351649995281486618625155514825424334544089731090034908315226970198445945905500885300444725347515800847624816891988378315941754732759786853083890615038959062714595824786294196049244600861064723464561071299580262000608787361812257754886282851441897223109765417827777667366857420256456450856779395770251976365894151718627454080146582967614798803435274138926934504861977565212806954722947569423255151271857996437607216947644025787802153179442866213332004918122941527605619149840506557605698410484974842494198028115229550791074833074947558835386467580587263440398547204091846298131708404702018714594997308129478224355527840769810968676502698172025422951529729616643766840697857910040373310552123542143183874392284467064730787615831291601573835086866874977471791353082368902396256398474462539723765757512516989468279371465056776738402236167501238436488062998343348785987839251705241891042600154771284068594742197876057739427605006509751199196385242480017323328064137917669540524127425911745957840912066315811361378001398896900021369546165118230770923693530892905527010506125768925053885325389072740355662357296853260909007518369465746532822445014938767342350700165916864382944733832076810985176124084245008347141979205985872121823349692332037380590626898329657295068246416859717515542458193274022430789295698297649557597058438790817692468253984896981782428956060160741008985770562415890423871101822725036334407982550638111298518303843147941713473123652186633001378996966276269670582513354181879634852513534362170383062681423470140883081188448560329574883103670489783379371485689627833174542888385035986436157122224321697162681811166755800077024650312866134253874592900318047152033441780819417954307006830265514241837915331274145503302891509463475597014554910623937821981459204540114396390122859809156303291592422277719858376069878599686557018380307034998440368396919493912011360822935476509256244899843699646341471594760927338070337286425126569749828097140173189310701322080640888047759246999592093418163933422994703349736784718476344842393102181192542928168970688025395335006162617235758562731344752688045129555306990472943017806281762740017759448685835906012026118552671052071858536476446759512804263027055569529093717000253139305176842904132294849209951216829328042889330545723324665523804420445866759827805014845679568432518085288780945633741351820686274087440021821638375509185063838431071716900538451214912653487679234127809867772198698654668822017416258840925816214408935709863750468667647522392719300591790935565383086845699388497833451378957596177356246973668258255037470917939775399489878206130256815295957039226650038401043080269937987492082663795952947510260675914522251046928010969812954450261833728169509725765249541915571658959601878564859947778450475639131731475325799849040420056021455918499159797868108183856394637219498604490793683187438049300038464620651205170740489141925135553685151615228877020272082177537896456130375052152324980294233190290340363274792786226734359162089606419529433915216765206986921704635164741105295757862630572465445425246911137903863159803777643351017923061308817417805350834127077632318927024431120305949625743905158974507062344347548123187783790640020533996896449858803519552612015582377702945753865702908157321096781276054025009231370512402126565878592035509389773188774624296546840910342268841929658698960050234859779809314389322533212730156997627089870414214462594924834206350643411310133755328203626490580883291246482178621414277220551899697969275246172468768026980409526577212306953373989769890257175025614834662100428838936529817968296892884063490474087598869691610789462214746479068958611542654513359688994641525955923738333711605220618564252578190181734562129687087960636410165679864013207769178568296388262142101362946974699171861585740201458117762277979242135354556289693138170020179260626264156960793180510504981622496963302989035099830719755757762059131590399723201408872170879359601185350233556261656002650100012287776211210272575247178563801902186178350682751232691198205838565403008014058159269476831725239295508136763076148281007476913184513143727986360967439847204305962461380961705909489542070298658885823666296099751772237020912020611958814390310293799393453712456098695593131847446362808839769709045374883901794112396665309285403560875268147887974171135649827741679328337490603009147781643604030527515242480807038158199609442334453598989112167213210625413689373851647476431346309228048030113099781292769742513512156562453344643615244556781437323305957738014267871207663795466793067607260167205785942434179996127098321397916877655226561349514456413282012097858141717533266731354407291591246819406779947683500308520403576688439710566802463491852619634127163983994932965349827199481675125097082007956420571691873991545032035030827716705737640784664585325671772922855505919353554719680277877708819962763271620958042639963721995939380034213741465730925818384738462159911368736051370767808192696567635005521842356699388863592011102806159003925415367299717213602617218501877193629001522417165464505366681163189471819530757993113026189551975721871625356119256574204660376838295497235941778585533579789650988844371664080878970170558735939924825286595084808070911050256699113624416240249722970586351279149958483334056258175066797493766469058758680433562482634355887927022251759694438781001104734791684585352704477758433228966503670904871191288875136013325498579086359737878616004787116169037051244647446861469590309920855339986318549014783368370994006175013875588469599801658523816740450082143953918478327892067073419880110173198640100697174394119079985861801310869726172386239407378302954041200385186281661443671755501272886515378892036847102071056452118877576515710986419665094092312527282603652754268897579284843957385963704115877402531944569873221270122241654453369889669546637499128144260891452908399615405989566264569826617831965624162872112124993439681374162689507324019163841494305749207901171384779927388102567850738679026526239173443685791503832217259124604511155235240684962520736192528426429291967819734162953682372368638065368565557790957043899960452195348825115674249653401605066505381143451014808167919698047066859413295314915059712664734751529812195633790276682479221790180897370083590483715913701879376720438927182809173074833565723454495868694690426324631080936306923979041381609573832542233741329776097548446577731213603328343703052482476193321866452417861824104147965904143807155471130417886114072641427370342236654990491051773095771659026636853973560543309622110355233687765328888047436619628756516856237361935352210862237105699379427843986459013961738753721358854188570616765094567992311469335492727569254703193849137794028970307100833006879865573085449523896958258266116384613819463647138679909165519601896147328353178035625518039347337019587208978131878098882440108680338713398295552615034594626986266918467607967158844401723810763172931869569909137380492117711671158194445852137721930422603167767562247015491532607958260852823277527837494479581713480230341663787472429943919832849494842583590684612180623022900960540728989543247929760956461439614712745921334790375464412083215959372680129825843748495564033809207580098330089048600541781853327583424999048074567639229412447042961498986240942341705410589175253146105747079442236976483146518790304590321247248921765717323945807523640665389590721591705400340706969522232928938591098578144806553227850017906937629007464981242491900888661445364576883209888855597830437723817839992215427478525330936373495444324213585724430686008181039470620073606362825103625572511382485750217935844640573434471209941911223152341460455664254277745113027952952266877738474131262342285254399039837211935632136367583007927334467317794315346651372366306440924005301710841852470063816770327182388115694675926237278468180589317389474769749852053045820322665246277972640579140126338219532506448901056993988795046305498904577583615985787870457763569193920048938041102901860410332272323567401769017854505884259425992726842616963521357308367063814535296378724391337116228387954429229047025896581941992094288840853811161531150463008652205220570762699102704152000542655003517609456519798631427080144356691154964114948597136418179777822880896960233491214302230712675767444518380593239769967458839640799744627222563398447843463171159715607872479314524108064491342142630865998996256121562530603584665727683858839765658774756676714027395189423286484931931358472841552968710844937596330658547702502311611309387231894489279821720672205384051276888416540142896033190359839111917057318237802526036232144106633282484802423176129754295986001062439236626162423370095443427078482233575117204717652923363757974689396125130557642722422012233203934995745399828656069231469923120982809093725140830278988449716880722137949946785802644433854754130540113635011818270313458564318689131190224380356601380206822556219403187808081591978052034450005116574488266664831393977233229083529424482399000165618315611350069012450863872717182675301159833317404924836147587449044469486525853091353836864789419923829946744047693376741186847133836499930433662467303150869763757771847555084525851037374787981936687845044836462946562023426965870168987019824820652858907180588926318185219235417251560378043940307808422988983726618228400897885429516095806506343547284970574382341391983444904894986511946949265179391598532117209832010157186273414896989371689487705138986000426531425949202033038994804536080255338715740881083249714607987029015831137835148852602394847836470151263813075901403203501483640459100105487023050388212839781842449184914080541149299011370227150333773608682745520397794605430848259681865907305900187035479207479849708191286860783237779785396448850872521600067669802384828499850220308433994251033381612013518999328391136702445157052038369329559762811056343046240019345979096632077745418137359190417263669253550796808424492830895103552550176336025453140035456299761724982689249220902615124267485311130170178558914974026169945630522185550804857651151323974280025495998196859826147444554485262538519350479302372176178206056652969007622451352478430401875696051228011379780752965259372718335222097259637264893546397586548771778558479990043126511583864724603699326359089194600198304062278635950034934154913459060305945708115669394212310465268637433201082197915097163679392030299726125178380696289561996043876852160184502301810853752948992295719732189092039737149680310019151020333826561056985075043370841336550350636726748810234044452057626623212465445282655603181055034710171598757732689309669631867237493455109510628734675414826488883912395255425197166873408919273430369100597862920172453168681493969552235768696100407471409854118822233942276347826001744430151130361615109147353738285700740577028108632843889936064101162571057354281444362704834446316429251156764432374433929038067760314030602121970438140387041459907566710809529015672468862443666672653548649416365314276254945283859772967029521299981592375209858149719360188062588854090232689360702894416874388655095981837773982211530872270930944002805789476037058663920378278345315733138259977731682844096884085631402090623651360441828436458464283845188523238672188184666579448482417448981770714660375267360929248053238686214481440335722114008150627225582979930306917684356355718787437481662974246103836528460337259681240544145676605377390224225503465486122099436498105760849111592637053151086023117705668797303820930730637051307113440709798404179739829980501416581649023470355727182779906059526736173338210836593857282723128151795409548100119533947138434873647205048126368294698439745942375751452549825334668505149366641437066570125719694324760600966435224733932859016279566068255786573386438090898334522500405777074059147778178564926905589232389461804436024228785177968270694681508979441842987182186252191141920587697750993242675550003980038135634261877707299433715496015771992822475930487149981417252007641434745793010530202663699214811062641403697269022003592016443939485080404343956576626112827605963654534582470150778524095970816745206146215021264678002222522584072901118829179234274305652703353428590154832127274893489403384843903721182280913382923418563592415435633692708384918426991680438651216382153645505974375680761296912083812190110701548583716552539200663339000914457780059862578806669057861646413447345516305306674567537184437756221307553854494998612321509618503304754007638477173644099828266295057194831444532510937162840939443690404745524438452568499979893781729226800071787826707677427579375634707726570167795612205407264653502855370567248085267535780210648834434304710650682318219239011719285796716359688482430952737768402894276048631726552939071192943864987052214719096611474765192300496100088787416194804742545044960670632252734810957919195062571452529355849410090705786058942655864556341078753905587531010851666865235751460254274689775136921946348079684088296292395521514166840707759041035168632115286380060932737075662444451786861078131361539604543668528341403863693311383889356215300264021469108311249092188996278801855943839012200831934068615685270655764034545039121279814407462746280083920061957172738040530207414730945591908431230788838335725618840843670071543556083248450065894118912623450491340314664904471836772537654208534722808766468528882032429148746138953451100046751487670296349746460287165401256278789184580312917400650129124277488412737137588555287928710239966862165804767195980068186198445948372338213299631369515182631262814565621217165659185244305323607794906301829206796519209930609204835782613685635540199974243150323156063328392573243897942182432190589668558126574852963941664377493869864133356164870222832991681485530766079194317667201103171960690999372781879052001801155194821905956396526795478325500468501237886923496909704675899718954990383716732242988036942626696999262285019586275776962403997147275901135339448564272242822394923263919598875535591280936992646556794159633653266092719019996827792724283393273113150209230710511250581831405105538396320602807023951155755795759632660322618474500848394468344534484818192832576920125229700293195252428802079331625333676564197316110737505583953299409512923869082513699750233008219886536784059309378487924021340268606174258642695314820728813194226866218422642584781175158049448284888020607972666587514572609107217010247435585607733557414595439525796528684749234676998025414192919278584927283114941817788534517072405991495545173254170470371105343370380441633702695829622051318044989589094622241195014214633833367367371429813991681279717150688112641955874259702383296958629783447225705847668532000455854896702104915536208365988136685817778763675522173975655555216488241318312946572192071147879078957038190397660188212304323881346717496369284631477236967130818040897745971270529612069877474498075620237655593471944959529362384867529024216284252691712555895994225618442202887472332728782034118800382389769455899061005532980023778103328683023772342798885086645784254139642340583215174800641888807299865811454250637259507286912648277209527730602763867261662962061316033411848095837995684739074184480676109984525537441750507759761298712943268574256968687070174904858232651613291976325665641589523107782184675783592024229679549203096127323669623672637251083307860590457363753543099898959067783872179139373067124122410989765546757387831232836319179713393649688067822998799009586095814367818470710823735226910472940179861113192250588610767143603161562384515669836633458787303820899571908948469401406671700931745934494676640796637662102807941638672395839874937707816333597558524494726795505738241990718988818620095229167909472161573536706124189564317004823810620220638873065556273621980134781450417713907488200759033094298554316247033982253589422162507419842019788653596366920785915013629688017567989044543918715720969031731084395202744351658590640672621221056067254136112397972109746262189862088413626009116822753641536639631676366068047216129620529036089783075233599479163104641605122417105225807742832168640135059631959573806687457325418542809599855642571150661203063798478047776104030189295113669399155035020371800205839193318390981717925964174020688498960657942734932682095225274379651102235211766524087484648611226815645838813697243242098834866966491090011412966552659979837835004625679552553584071054906598238309779671310356451582761979776278984159884370623868452063033389233642637916246271437087635725985263100915609570798801980942322905277417107470060597447380478602895394300079643022616542463104659894714163975981325760840861094746005841284045473726818316903443739194903190292607615798514901022881599120647306674354518476547694140824302761811092305592247729193012311349239678951615633952539166645814739092297236031272473565182286666676180735098199614125861179493567181131143004461453949558528658446553102481450842558130233734690906955726437946470939215667351414816171479680495574926361373126629274601823389835968183883795456695657874766793778401421065149575151548510024556945398489956316973196832455398827733752996419223620321880455040792518051530866517384264697567323464465670822340819516400313913385741408252200980154444824204940615464857750979115123734674710241125207875248759841994384249196135488169515187512531799734250396618949927960663534046492480863710040179292163797624705979121234350234762318917676939374336875799808174157590070110840270613010176808018922805759363534676405655654576824701719254098856031765789666068000270559134120578109870652348400192727810948638486262993580261849980401948255065099421042060210930004234404100718634294413306867786136964546858130151734843519838331394891329827622293870538372835750815565120002186329742000411016891942359629932355825174549567760698009317231205964605031444780064865639831937542747686757724790673173347538631826550232703119770509851209102403339563694310803593666512338430930278489950178671422716470710859784168976871988107051045123092498275836459277138231187762833055543660949344116679021533019560976073557560213868324492134218658233933761388487690439643476401579710863842756450761320314144975345565710295697304031563117517077125571920411221668862169668226495023953348042820389529333239818174831240669921940101099654324252189619213581962055665677702385114309727577686442384959460987920632939106738026719548826382032627604257409698562744296891869747374853961130165195037836565623982958971979104383085176325478321178048800759153124623396002339860564422256375253575207466976693738774922616040936033440255546435909251765040608473345199715933517130505976628486214742019875756992916380877769048258597723164478915989498854871785744955556027855544015907617670142696428457180295609373669172960634341400801019112759889037528783919207314962918176568180302724970935473347835315311922315764491250392835864544929996085304785209948313786622315355317331941306067435376796864346211380189532578084346805567284479408360557379275351248721661560234615032991226824166732158489670617972313500012576010086189595077410517242983408796279673695543649618976313574171907305700616202214101215873055820759892532859787328432941195932541904996937636217784269675425642178228311181976449616321356727365906514811947950234639163328145352616479897966057657001768946763938614384359306174724757074402765927105262491900106238682622682108829780427305908955296788724902280957965283024067441931173955130008881722749277183102575401373697212891780792486459279108273507987115913933502543136275512805452605060143066206703552069926933975017401217355610468435879383720544396916964358717389067439510416842776389972794215846810002907518992965999257925076144101204444801866408654338754985392405641582194795824225406663323180300356191043960074613681133769284273322772700859093610263932224598608526989032479105470588032908445245113329306915637957214985866314915757086388155246919342384894253045735829682723919910806452142203391877866529066241981016129606141013400397887496158335306788708381797957178491718178377180160094439617041879421631112934466535315723358831758320397613917781092932981382921373041968935754119296261234239119674785443605349821347341063747243780803323303538898864597319603602637575401635953468448545605353415249399221451627850783558119463247076253656253375826837653091616527802219108630067690336390682684631732857582757551913988469863029833743577787690573971863800028458076363775747654294606544051118597526204518743290610690733390724716777330136415423500864105501531788163356913996359611698264328058743213107673093820450878966219467185015276692227949132776523438542132113967155692679622805227045274166170569552469187753456283187440306452926598613912326505151730467235373305790544445362223591287357913846155594602089582583713631855636706575222618980454036647272125132183225701048029345648392281329146980380100688782217844274273511657838557867125055364026810091320970909533470347087218686638996355102162952365836646267555069058011481921049215743595985424636916810135411348393140709145479604492721617629808188998451081276244046194015770351226031721691127620235822411013743657945922137143826906006934116102325850900041776021290424483822139066784966732872061254382080599095100858919209136043919525777072414303706958690517421223829117904988240896463799324398235839785575205024769723152038480973396487725767192038383929425225131396056480957267411267844174491820114784364048906528997002855018170409269484680374894987936812119861369554834922864831143767319714004069993620500040023073716580351468186841206821787016130442696906938634702547538397493849143850573988927256319431475207592793506134098803255720737618139623012581379485050952303048377822400222241655071969904776545179378993279925530707094066707675132984393962473944498188103176560248472689372648229723720779364369446079233603874010568332193915186299469537716448109830586537537412535681102134565317321715571336951564699927434258781857500010825454125944070577695717423999810707358743850151893693463633243410504382895520134632310775997854122715009838979755174317497796856484824378008359406156524697978666152158788806510621068902673077110092735387812438390308319198814175342263177298519219569442564718662566640222101310612297807941827205222479599458766747660474269443412790639487751369766089365997868022414421631548496307632369854459429331181139067478435318311564464742842487939562516272076598754444513745341139806296990760205517460582167075657905462492162434278952059074756653098359283279500150162873493449312835942398298608851343674507676351482142184920112788513585075028728659679676098902279993288367359365883769359188263026498693750532790741585242041290489458588661672192838828546719445813148705204384736399732205309915495090670673815506155502905071503947734673424432195526095944032949480858824251068416726135942539644216975862828177044766513053678450990517539840531187208024539046427981209975422236921964937929050757888785406826283020886456668571540506218552184808556118844338350519946465457265929944245895013581228611950182007616415136435903843238957038490528318509068172502141201847233401062228349487587599145390694191888272790953564756148326515690056010056752471945337679124072807921094607395797758785990936064248505310450556357808231191163963810687153917474897177483999279348234639426034607174878465111094489773027734862737497733167109881565199237200071218605189495854835751272346581643691529693618186602655364632307612174998919561534743638916634939067565005058096574604929723165464430061190530145167121720310371213741446789924169390806082482012724662748147174974475780584834812430671545352161466912852140435747428122535510856172104845858193896577491703758579573966706606091770659334868252711028079205331525355366158811036589806645425305285788249708456362718199270043128719601908609996633182301582693895875081676543471353390007699867557234911574198589298266993496418569848791516386327477858502636698748248592614131229085489016872487763619454316311118008009263088216995611457096285623042467859752918959469846778165976383889028498749012229442163298828836513711569805087129185581170388521987144945888559564476662958141419776545177993386567368508485728955932798944137534005412823287476549970089229138827796948194763804017876369531620178495982713559768006165512511496916762135041566955705002198654560453393632505623346630067857139556333488877551264038773334037065443406458306219335514561847794253030646994025274759430612942194640964509284170893645138069406368766889548170496281919872912565839928610828435077074050105878672884161991488848022691252820051514138685173394449582618074019671057324262695552774275007810895253461550827348485475593559756266393187779295009710725079506310205955127954636355297388226921314894054978004519070013234505697753039232434794622290223709592799993342267642494882134931127489858561155652600734420296058712840110170982198825790057921701260605319315404246967155348775915581498669883850502759064035676880663498595200625855801207977204792687837312373430411439673923335239156795934497842545619616009052294632298919943904931746295872578134530286364534424056879258436311429484247007707745015221025599102884876688404237681048090575215920415527043492645393206232281784221701720553818784827322064260540710568920158728517293070767285928093668969809208188796951835985828811518644849223058382685625499102388554190060332304676747282720905287138444374897470045942509406201829271091964964937171164162724723732331752774866862258619332328291731010337387374870412046298541518692549587709623441680435705953363241001348783421416417482749325919849311124076072114077421796961146628562916216713965616530721473902243244017460719373145279849243823331481046824831569050058764638093479378660280252202357230641306214098767821064598711106630734189608621569566543491707183442593406568571556565127829276514525620943076850843668681092265939695768342007207819864654937816701209476461071518979065626466825908757726779410336956686441356282046286952638083921683085249301273809856738171497782729897167098835121827618462538930960580568205677573294735582870391653225700410369719669421851459782579410241415214408911814780535350693131233637571653962735549519909286921638686629497197180678406128767082596201464827572269591751165482848755066917008896656720736308834330167432804990309044784879061387856987390384113740285862657802089787962988743614355464605147711057260336934464391691236468644867797464713083290186037831702427175067327972124821319053421310105794631126807657303321732007198054809804975739688145936894287030760019080031796287502394959687611120768429410544309552213152288170472710885701534371582232448794900556579559385300843666020676924177073102810621067607805744743109833615792628925192866092285200028981651663115004637261395281803747608135023719103628766969807296162544388101661597753787311039437324361835734964465996734097467153230081650701409007011149964690690020041355593368873042731490226833388922360635329579858174282882108255554640387568729085090527390068547751927803971386442169781202892764473457968985993209433194778201153485828422990084742090349631961463489724044158953787289907762078647873475142678613535714971076880835732262908727751952135848689974350814638457531754853436425344494665913336667656469149885992799207566756803251948782948857780455626349590891047742343675315955176368235595341417376381498499717839711509999020887415166170845246869781924493523257640182624741861472123652102502422276199891139364841827385391514543861451654301895774959939725011957734515067519627028372703742906849339405756977244498386730653234940348530729706238314118916214336193685964517561361716737573119892064497200165638394461978003961371965065907325048342793307973922566618223935253547913672903140129070563332125782523107901082377086260767803865629241708449206784452128240334108649058625062742581615025168381719828016858135307860927561129244657968764291486478187652166430222710984092791986130377547560411101369124966993871935209674392970423489891483058191422778469557701016798925903578456683965208883698798320289981253837931237592705515455513989354139965411025869446031161507923637866345776505082706589105593202454236219097624222218268032519540540989491708330675112407701800223071574919198121096264553484321692285994309083222887121959473418275159383674127862482106968044468524939761116149821317557717593126311798823252396124192491220868264992092961771171679905843937482275020897372997466015780358238008191342962643310275102522643149246130471876664166686626769916796386563808666228122771164768045062414738863665204744231354825297439569334242195934397737944412354355420300182258614549131560503066680053975768289866193433325983470588732060225624310315314070794843230379226334542616560844346831163913198503490022382783400842256567925826966948962848347469891625001636528034272994493746548817176103529615902496935682672693929760601537174194468202666545047882645024904774689927339986469594571696957393513809472000170615286931831059411244273967440573664934139690316714898584075413675525098557071375417874250934213278032451488583291478045961005432098106329299796997489610461652600114239296047102764899573998484520667496507018906746222976252518146318661218996679815078375979437552514363851032705057760455941471644810025350578635637075268362518866023965004105158082516974831209025580864717573248079114698764423407090699003490165605387981865313788038739189566989478051473445825676468032762566575393154358984199494695673288200272849621848414873944416759514262567802999413887047371367727866825704179767628737558108774022117995970043706092665220257219275288033174294133360470121624781414203900007100212351929465666412024127130434067014103006902058694604059574484607705889799812088999959231345770401677864841915316328813396057592339175115878271075199387405351914220467267232446470844107978872898337102286877481895686040338134849527785970576839577105030479606706488067348917240958894845899356605205368356364072096733785321154532274212482304844323526643674044009458059392249021647635413232247602124482113301583776614251489773782504204305134565511628306563821877986465655295427878642322146687332190367992188169509401971229721062883239068505138664618286439897323437192014154374040580477598708277376078458029603971679032622887784257250363146594380448092521448180400688655489859048265898887636039651633316707437084952360327687462350261072083628051368137456806116437290227707110494891450834997554903456639340096326418058361464339128039277878255912520045780896613838001369510674424982794519632487971071231460892534676751153967811983333102855006956041420834670791970053791508473166608752453292877194981319220375937554030250563750021852369708524588054047055419161665658854715390171620851057565277850184464989347380200051972495033035528782021218882543741528058932502494415100665868844885870221979976281450960551003590864031506475756332515622198910428062356025443501606307470544724989866113068059033430353086816166211534511404930805051362500381494389326269716705959236869874967848615043220352932124410091353824942514739326603186649736172291464588409013210917932619773031217570905670912813870507413778152879324478160800511630258819646026928485164029338290338484477216267036806221944157694298342156623311734932662998555724417851541172190398456671287925032226709971269691617645247305913220882932046158952047526543326664929889488790537270910699417802079594898092389729364915401307944380835211320491757817887774261388418019508196442134147410664884653625805925895406066344860595766688738484246831127900787796447174056728558666672497519219820387464164271116276792091691631373742661178769436762128665833824477956464818615000506530700530644398337212889689210813429854210143632804792115423290471396582140818103615797690386163574190289118914960937665409572357542748297185793253986256385747493423399607738854941091552805274186180809435789964977054796887185071614357638691093069661622227890110626044485915117198789675838902359245337566620413004257739249201239438856423409734339012227629032081238455326295578389104820194764461951292535038598667520364944564676134202757642786245602705727462140091099616506643054575850409544183982121939221168386776178670269091307502458638885161734044492803828648328344139661115942048247989064391748103610609748380185181883685464828747113139612317196679971748665994007577935665819307460119032214178407159955419795403302235206050315123377244523198891289872620458046140567810932603537658607804114658631415769022969165577918086728662388127559376171223738844884044439569463725714434204303772601558789109719020868855274030515238771929697625691222950803388779454111405605298012965348332962401427546397099731601863164442388659561014469125647736619992163269427311995102945345016794102151755155699380566719579069695887383915436247498824235618209957229281923796077296826592356406826248308780922973256167990018155546229175173021816640335014217933059931087121032635510228638118670298066357365374487207363045086639915332187872960743794740261335129996523961350513162961747510862779782231624793156797435312775957860499839868498733004395312282551297314686974382544236071799760664912119694614289190302371127655333798393608286066151950974303089369392219594023491966593418860796152628232948191517550271333452913651662987805021941605896248416672398250788203650743519813226148869575318015576568528432843591537120619621782506472568623733857446309044413071422474497922205112724445426327357911039188894787974374856435662500162193783675009525524609357505391153816730423742451495355889882404447671413075993934261181207423667358395841835271879634739852153066123855141660653517565147615722720025026043068336041053001637938981427897952295877434943734639407604295453041627422006220741260071325051074586870464550683761303234131682383992430305052045527538732155721782865270573374625366262427079761143529819550105128115815076858478744944011264579414041415538334841834873046530437185183593800279866409797516072122847043500556416726465099049323953684009860422435702950417465869847118941181019021602277380835885728932369832255317040972890607489352644924571927158949365064294879365039472409373045560141550034607237689091721959750330743707797824757175368542694315442316213293659247513073534110942098373799229709054325652571652189119462755766402421084588172856874083141985926872409325079580246455370612941329534618945919197381255063943340114741417759723559177099888316440356190682873932744169187012246842509221023160172561209534455649796710380636947681559967262868155218688204860704385005224944744195959212364249469099471363102668514613767935193895092982582068539086365950177665024348545079948655740683020962250641376992037708340301352931516669425773337719629978994932732345763372945396635211525916338501093120246378317774323454336141568039012013297859442420418828500828213998189921312721022515393196844574055122118544820521112314420678049487340726362053951767358585679299017538023308618809904750918618372331434063423646744292318268775361070486585572281419715197122602832462498302660610254917789981925357765016771138352428402200860044905787328645846754884785556611527681757052576642057147661470233709349512781411889478600990000540272414512247042294016522605387076768579828463858980539313714679363640289163362813383433508308567204799878065584840590212278507432430899684399157590066250767292613558309723170966600694490219873620526662253306563331042926746516801452464952200151810722075762495506153342410239433555969033638356427018770539589607809496655358248087093541491419917480767447135908604927987693738721021629666178642785164614766962946875726106650713234500103974119766788164025980361760396335478457696675085379934868649230339474843759138726527069731176525443281359128153933656821980053225341064595172250965016111856148197536467844858214198622556385933085709525368290168218539682917374316120313569494109492422474041537428277425410761104187430447819451400771681596792742444978419143310522626278329238558888245111002491819141019922962464000551479315602128882106903588624312346675351543278610823226954013580671357117927676134453099036889603350383859283506304396343023194241394248962156980829232463114032283598829928545535786835419717119154018229393952592296394628526291330093678494752744090994131471720623228157642066806760535864159844510431617219529408611365792812564949345303947925653102696469787200323535744043931596784702941848014730338994162428299026227516492283858787427155743468725105688924764796382247418188292506605545299640162189498870194111383640494246667411468265199921110629300931364984912782870889291780462781087632970313267174641857231294035242739573203489256504370633721856391870256740036389760040344620107872217271703919299781120776923037272321872729276037327506459393466706660332665481086401498691732552935760302698257707988529179491742174995137411266749190542751598609776634274152161279218091393639649325509833899377818668427320807891075678357820437516737102120863673023756883803512578835918320104236526937657420057977156993395562872128457962782533582189861996322238465478802633577732599367494354678267763103120828318167699443550507667908356081456712727631811967155870956736421501099524619216419568112635006379717008687510657009589693551425750990644826545633815767219226962244915529674716158445095170467133346293449553091602486550877417848211804312496601522565599828628005313558230383760631621593098452386698149795047017254808191421579022656795617636622929304126722202385141453276838093773064927973686487880506493542316663183770802065692580020148661111577445829558518691511876743097382691574415241158985579604179753424159175957604729093397997602921194395861947184687238092194672854337504996211693615385271536288236768050529454147716271396997298687579424866276325855714596158883313461887005053718649941363913827460612085820281204126551720589535946550639637047984430231262925829081102447371993437106587797208360235305459943480438549089833731848159705023713333945256849554506920277025367668537487327061816062229862946153267963727768936207198097478794687110095951983530277967749256245037505458661171242573378535811515835783928358770186274261126566294734375019879702202172315385718772854181971568543014712515736227497427392127799585427007668367368775607640099107625721792446866749244498457408252126447825885170572482676238741354813966656288931563418735953748326673154852967355264073352970200239755667219221533083951604928028572768116712695458040209747400271289476228900606216522657795963353095700873610118935101615868429823181752934800492931402051794248313586440849658751565973793921851918844993747768821196562497562579496065493984311598014867937848115997617978347163280113119532904637174042144847913481462299359678027367019058214357589487344496107200966735921062700953304699216586404435560455062384489864678509563824689297626839794224819845332738666134848006239944957414044674775712506230915819151838308205253177000125554498652600276995039996876028204137206774527136295935151686461335496297784112804654999335906476871737195746739499101826998182968224545912408765302628443870064338259174599020440874616322624025906112374930832969706932395667269953686496581853049412387308516803336259179607462054721386358154520378607739623619806426385512866420934569038500019154805791167375533108772316586768694687071813553669907168127782347223320140923538718699018754761649799599263683888281740643694539769455874892904117190414953698877807449108989702404292874743998212134240983625927720539750526094090396930690642942872727348285537215893305154855671841873944007941869057806655495240586152966390613968244676863181957375751233151885509620122729810296789039537263477575220355309151046898928154279671319382635091990891035915907164347624377844075532929731961483889333000664056489529053378351779099230953745174266797370782218706123204317738114389422688595936264204104886726948531563353074965245140157297871906738137493124596036431971814373928226388040932969386376492894105278949763044600518693746875739523022967556708942140642543638141061456206538180646190064371487261887281000188190999527531837913147624905758975430013219136641762139066434387791978065436829139529830232927923725425685666846582852270449996977635525096117138712945853154701610560451356506517463253082858037285907810690213808822804334992127716776533796979949909179231054802652997375501576087900117429208143753717886032696980621922331126225666921586506047729221853912262089736613982892161407194211876114439332347087289446221647800416570944991772169681705558918921283010216670623799242203360182347568942897383560377797348373952929134932838689560654236282278937056414837536252724048451993926943826013633005731843892828568689381432260643522383568953296328350337587397160941499460074426053584854300319877183318877542370952969457517657713597087858274490237010290430442311044979275237086905925695718197163703384368591343947946165112587018928978126701177610166037138626453325379750562148911089550242858199040784780626506673939357128005558634231255259323611137446366401543967771722770481003744338186599981278450223111296716653221109610888947674657878786262106702680550797240935247489792490243159849916014357412729779093866735501667563978413055355765619488555385950532885014084076204431418332480641696815451703850549096219728915927703917275250292325143547398447122468927027239781340178879671501917224151047545120812318059039487669954700466528284275354830160509855358539634903300663903161850928349922986604784955524471124816450326128392741187975751793750493917790530072321523713104885905706994705181099594954378235266855246885005228112110994827841975213085794523566275058661724737140044788953072947862398046240939999886271332378972248926322315767451131263962654726123123780875126875564724934923075559679004655704637470421848142839239796575972694724569145132167838083408469143114124580625765773292629007092478152848915027254067487472944407606374973226667109876090484033794717246474241440914471710600788101893505495083877238201758583362723950489595570017207430612873397653387535158219914041576394047617068000137239404504701027486276127332810284053247931088637627787602162432803986780425927842112052361581134251306721919878281226859177441578485739657290159006623447879936525448033506228441608065216343249186012635904466070644247573022643551217900040638031469526254760648755008941049116198418010043682421521102162968034119770686501004360641046549709788599322885828667269209357596158804803126971151903248418141740108672211004098323693117712467010597100922696091019244067777249933395219742913245503525458320514008671025356243475219832764430522257041244980425966212518484315695766685905132991346254594041115160768379728873912969325910554566376999622500924252886276566516126585094623041946151100422290214454085936444788134786974604754471617300939453435500717317919603154407014733188335777157233418293471682952418542666225893666486894239339486174338527415477597051024056214558662772469324628746981130797648737350929666877809466614454146343959480267306961118975377750579632023364642274281375097336409238957496769396809734628035898120018050455433850150744126044188228427884949666652441723850998799482778578575894285969445313498086538250221000697076684286776151751065546385291668601671926251486147188252913090943341455539369198974950062939651928202601978499765593234488019412761474509567871006088674297071100050114527649440464769971807983980372495645717315884486589549207235368811896044988183955567542540360788304573658768405605994396997147586942759321747706223649909581214061258998507796703933774162819890400962246706865376950656194337825730986716302170614389701792955233965240927159722518510302465553252558651440847651210030212580435600341391750888662767072482108346296964945652816435035730439235449933840934248103622613715536015478494964993148692632757954963604342466292112414546572878051556694726975018437870280516233386306825902518022373991825775621964008165588308755470455199205992543687151293494064899808327756362317026793167106418279714259722770668272571962465425933640462049898452206703008812032567663060654129500411031296644907872219908724512900058089198546049826868017834376561418966706118042778033783485718428258637380373165469090256475356251550938896097171206857276157878621252195373322193987117423228195830046370365366886585500202033363259087628751790725004562801738438887553530432952656072562643334879811511540755519794963903223900899004998367224960098666603779902409431011942518700035017941574469591525510128605450426004816252178615022798160297925491561791936812348962005831698006646886818272579935014646243017213929883201175248856682090871446959647962393871022098768479363192928737243021639638530350838034449421663229143870200170318423900847240861770802789472014082828708460908922105527632654567888992717996383470440426880339913929836795550625573950750364171174169687558779603332298486306588035193701438620376509445552070454101931860502164988212371441845771052959034026478415576114561311409142763023144704383786393078361211247519415703666772572944776447849930049107896786383997360090535097097060477070600959912484131172083773705751903640562990124873304296976660069645326575547994796659228176631916535072587476988517691822553474689919743340148382420663022370750096003870414033513188543339832953721475926265408274050497091144294654077405296583512140852740102779692725923360798031678791115318636368934597717641994150914954208022236668524354270237120877049623809815551591811978444016865846788874534878194768605532608523365780434127094066449390087320749498101546242551078204263416258759395640552672871268792115555034797339948009550474669435847562848373390179529921184415399656541215339371164060592933311053122481763842061391400460838059724560494088884962397364995183289222665007673086610720493609495367312490479364444133568833813608627620454870626785243934805126485335094132129158944842174649872534267814899200648765584405584584430285420134980597434837656929022819803125806822484635716676334813267533697751906803235752931933063917905985298314896241696986110951115107386009093667530498552049758085005373196162448494865252894136383519889481991411975237035494393354549186706655988355363569779752142282588056468568753212164237688167731028840082801030880205400948204780352095808040947951515339829648980509759723619596612720519516797306643745009118413598560621200224640680863033391495981108346700618823731515223751354566342313689034509181176417786257554057911079911284332003507514908340060122699482530717585140903225542629527547681865653735268142595702786077545458146385074405253050526159907223169891299838118635009270884974959389592008597323799554687183298879065603682191297454528786077208633958591872922576708455738586282522994082822298508255347014086242854534324376195300175569082946227310936342835262027337160610205466923027297958705273571534783761529651972345615021063748131592572277541698930184675245472050623995139520335875633479035713840885205269670037061938893920831368010563763461367182909641657407748929956406481901043815637261242725474980032381096335045245970889386753959670760580021695446216960689420732503501705094289076543622969939052804218312730960889193844966316766188181394738674818966771810470397189357707610763742263410781297168582099960691627579169649906804811580719968618810373063339539020025038039392891754639010947233779396623820219695789563667843170502331885250090895261838561159318778875192188975551849952019240968146051243195447279812138390765004884643314179339400788634655077568191728542737553430374066487704519825642401602715096549518916996089470550506944581970025733204479726175711133234380805933187402881334416050073097798370954700465320101634743783313946345628174958328634471821847154299696771787110066815454459174550871353837523780302693834745217327539355988171807584119434354668259088143259932403104608671611508567534575383638536857930179183611207441127839688030528511830394525834899565120794224817336601739780167969593831916895806622440421481258178504582320922996905566215569303296695798900770833549698587406880685550564541907394118927748314398662608743768950144323417809470277809116075186454630598239939168918107789467724872963385760332983376742824990662381915490499592705192746861153331655311029365043847823766158137086727448250081610621212918229871604524759012092903055059391581286556784186059194773307307821669590512029707659126167687769411051622021850338118573349711529280588678180829751346514850959846165301571685833631144478451884884182760355006567196382155450656739358720101117717254576754033282092895229977991670372862207418992761036181714587028968250467178340609250893788364103003963605571095048688935221762813910663643389426500416214905213517865811126010949715779038861723299312674605654542867334293082811606102957910783710500463632355694530945108412087875627143015578817356102485400291350252341939879639577674262907024389844015155264652778177851107578627303805219368978841706355180794376332984240612265882773676200263479352358762872934667010206331828461533172535360764152097163288819361040384956078009214501831519125809455630719183633789813480541743189555089644954645730334356914738573072452325042803739495174802550477119817749764490958632611548570608156152587844104978960075866222134349127929702471015655201519890937605842972385710807111864906820990958428315721222455388768038635115664551573815594011432429312213750763588020871746344256436756479460571095153078203044893856845304690777434084492485768579664367097118268731589299316125016508173650269254180311172203822031158197378345060178470919235492930029241651670773328543834717185318117515145241749159246596673181696203817802883788173618784330204530684344494786238712705723689164824060542916702579858119107980013842106206765202207502786956791499529875931642912466569973773597354174381601790194341079080678659641279118586949179264728852204957249818600597813358530073718023857352788230439975709047903626996319378613269617483049637835853080982531673484719564632101960317766265316097574486668060090862208586671355633243419292246537447958327314732102821214346766542068063202024771805688345276439110673875354839084523284379133414512218745071552781100250872725941379639617568252441528748575355395389548218759490545682187653760117068323816972119385085199571254630031160508848361567337684941633413729071268044004011976007380675430402552988313919051002574644087938335199242479278780961110742893771792051427999140545045322947559108537341208957278232629179648716075794710971285894045930599854458108329554792354415989392880625767583729370600530454340018992365144460421074134647954632259740279321359423528841825999164584394204775155792198405320069996984484259340858240663295780910641656447276847110907109553317133605332433349589390190866569523521869844415812574202030089449136108876258532795466372382635419581775363204679109883153257570439483063933018284480077516395156979137308728053127908240367415188261645225896188062533852110885829013832102011256619565757051632303860276713539957623790702671077792342601870124727930168973683319538020043263002604213709643793006048979811000492491330693695396870805586839574784312409569924610181343694829199063943929457320581019819083741837321051575672632879701008264760861965696890366540622357052633163728793560951896734420568361106776026914841803805535766006685258365756486948168272627256838398099517588750897316948805487407451930870221720598138104964032915061279281057740434392775172960012097065072744535903021222924058466361639943280224314405956030325215100099793382859275153171967201185013157331191183662767026929712436651917216987827969154711155720849607746602686271672542039601756080602513320894660470298513062114748424080376272527415571203089893260726650836938735045076195490480943429388861809719775232171899379970766484662887829290979824252754400658479160630584932821758949979273394531683017677280947569966533306132268189186089066617927011081445001527766941917692708953383995881064407604952595853463603570135740029819206367390161756089503795388047746531330035757470915037279807786081635081108907004572650157798265342449975980294267803868466551599862294414729563896750203300374700693314047615707593298385975930601273344169763803320128085632322809973099262130792700225008312912866340505118407959357933385845733996704269987602652975365229249853421090910497113566055748225188385902400241525300510736263084604433965857389963832278864763005056417206952939913011204586723576039123509133208317631590301375780793307712263635466199282020971994207084299637371672243861689525869824929334517589299814935107043491033203866500706177989367893277383008093669753361831581187938067043285158635293556849310821425412372237283358253951339589423170795028335133761319705371821574455274427810160949736565525975024462477518036339300863109882135950585510568123675630902284346392171142248200175964491876980155632409075011032988343770921046932909544847543811815852960316154017103545667037892552190405605013955052129773831584377160717525582664857275245711399248836310270107561365968131706065325726980735251411467101500742183201297344950362201350792947204757708261662827545403627896378543707456427014869774082952055656793224116122863495028419109566186726457958580542476921114295651799785597199589595557164412881093142536085010767444887374749110850171502445423937120207014953854203355622619488701787985714791385605256480399895893497980411215644201258321614609354893886479108063664598366360595899191966514132836247631338875591981117222353295819981044706611093173356696716761167601225510372584786520816985992194903559150075597278254667390555910273779633725601522893246174678302597669772212648266831348474369258812151990309377320336082082563961145304319085439690344527304368632564377072948506899795762633869926096328208971043773344044967625625110720545439342798686408746493624009049170075176206486773141945111277749201559129928047013513716892305829273279263106340370620312271045576106159857353574427060480861513761358997042884482013376164763646271815130231349242889777509252322770568051556145106437580747572665247382914370343839534897373835151081995754917693513273185417785765364386656422051510621968856826176338802901604991057228310734096989811511583600559911484904533069672606381751949035372788597667295255253528407154682517687086870627500619708104376518670231770644815553718840512622200789657282699442445587613749468295683964749029314056075369648048462888433624971659945347826618270043735838495824564106034519213178112667287005655174357394733378078521158522882749264776880540674929962150269638176212596590275552466317636209385128810948146535911243326023234763924065393966428971257375886697995436159314177332646738393459486494947895293581086378151262176020143297750909610163335840949514500448087848851785617389698231741696252340999364984072127108022631956956318539459615045790804959850031965612283903613911272708285931410469943061160787677061645975515567180050662040440461229562435419294855144218315664033281512032578970557934519981682092981873396918728443546959393605008956763355718068779522159964912832020611051432462714744784440203049584226468152887623941308817710152347954600030924693905211604733607105161184851656842627167602553070777734016759161928067293680677303642791111769755154615429699706786255368604413112945104892950011382384850359064264777531634315677206768829078415838766076530199214539565523864541675802269090470481145572740988285253496178939230360960187737200353739435975013632495298903864552844792541297100327288839296631792300084608776998635986859814938932739889282520561444617690126265996613243896065645964748317461304074274367959916275321918518748248589582029985918356785510533858785326996611618063930670114685201308970649695845031444309243273872905819255960849730755733350856234925642919233370765762238837899872672425376925163824439412526199096702120546915240026133533015109448700670626223855659497243019236848451966733989799095820604288981881601196150254636676037553677458234026843466215476434939602378744961363630590815926384013589694107300817311747027671296629255266778605264566172131061200825957157529076164218523655940586774838427116233630403341992612237473696363916738155237008712556077952679307936269340490800099187269437719818689522046689373980761328033852382545012661061774313530377352158284554591817208569419711238473078795459196820628790452995996201366056163803965067818503538226558640494990653416250123652735210341173637807897915020000906749626862117030363529546751227379518054220887625420738296795531675890515027876866363569401183552639747445522128915350235119814625722632925489190448404247160471004542082028290206897191152393710078085268409256648262391312937978235086829314455472121198573568787533520064382920716918661991751009625428270157271413935350252168264034330460025489749956868905547062069005921668974425658472707362494390442880236481966274689630887521390482082751279859080247337394082767283219496835244770166836878335427557007047430160703685712827875204834059815797588134123014893768642607252588621001471804227556909825942284099490448225624290079179521069437348465393941861912388302710310883175891712696558777203934360696615556711885483772179118170209167452283157416103040725886079270624645212545620196968096420655850544441773548176726972971295270467512658894126966523745047270353645782293598051103781282594577397286098322160283972111075925636057468450667602794385801031089124708806529051932708021171091017193807536492950280964152861354997355080533476032671039927736711603174805521502562317575712139348403472332633699420103365963730962745315283976438195292408811300537584140446649226918489974320456441902704752547604964862188409753262938540612140076776973356499182255330252702240156052828833394637427814502623535745294265152257320599941868859902483883132026926265587112590885633910373980975736728114578727040899307024499196131538288624279556174185155545381490778170352795770574413027312931808995905050584393157275173326154234532328624602366995368326158546628445031670765155426942645787990942246050232803049560642483750918465094193450219293898856458918249681533973059296978835016029479301496982792516631547713770188419955866779824887331030486484885356922909217158203068057253897126554037664851078041633427781840501880812892660541501769316020228993402626198313022219682102991312812521376388842128366161737164834080800472895890423162678878438140464034699127863255169490426499050320219061171036276683844458117967620438298647507405622867519158335602115207896359846167739203929156225500293494896945513065404427611893624767672412622037043955524245549254106978619346862545091809831046672251488871066536238431762523727188397331834817276170663592521130567830144894414465646451717641160827294244805131362379771634761420284338020810746328803641108908326736271419520813278197849216442797161058221668411572622559798972877227522606578066792681515878818888345224349055016710243864207101159712547231747757462374463761948604782656718032129432650588686437169666357155385185430160282502896331289374845577700866034942647835243072557259704218263158500987345908939313269105681008222911184551771098228250563461328852497587842004319980456741587504076064381851572104672670126587645971219229259704094364517831213228172122645323984362029756395885487740438572253591899450840240620018757504229203441818413846517697433256420229243420360369820359825188485609316811654365370639793838071124470893014545277333912043421490509727322844263011260856899125258525570149146683000280668980497160861254694654131582159102178524176219180600523775798246115463615864782629742048933832364368747147093790566080735715849187293096642362165229420988708376108918991950181752286993714650894727859701500073628080955196260359293386833714128964021564878196103519963419330914883936183787481523777472803627747487825322438028216365680916720888577090110811517681038055550666308752001408151182023220745123516311759823496161748612905416308214007568558837291412984240554808490310151499797104580929968850440253393346046262880326227039153030534084613772229925817154703410972002134647491823824276943251335202115207097048051273047983034824816820454231637105123534491050913251581065374171726371192357013179456504377140637389121899405462524422797876877625742858457065877758595398619199391414512712700299975043179018076490344545775775702208926921860572897887235885780835939962141060875458165467782427823618987720322879112110860698380967647603451489067998785628548026191422414005815524002835639006650439814314056856387446837444885502138474589371911675738929313041473866161283425829801813860949651311425199113931751322833572640356310232741702473438525375295245633341795708492035555891044889170011852514367066163032383629388965097294011519142628835620404667955106531212687613058710951551675596110946129938498261136893353940322174833437706710801529176507600945071488228723057825292204358015975827960249882624031009318694099781912331920635595286663622050598003574488306781254176505684040551212265055809596992033078875388605108979532581870865975767205258716519546969075973428499394537695765291507182337827439919396141593190108887258353012129639058627195633374768170165427214674739435550707200832081643082885731697565957652831674676546800233795185575518221579655440968331582671282575935027769751350916424302899357457814077090134939732113977130199332696777141617589298816640082501401910990542652336812510549310778769830764578616884112009317430439212270663338948866733319122268328705159073940863450971808216984369644541905972731486348422958026523709859840794643210378011842461391364003391029351207633926108856953398441722356724763816544821290687230940265050447142600036541467836874954925829811779993563366898099116649347254927860735106064356590655149723320001040526749413715270519995811191918655203685067377622343456723827223868392299411326499326245599100526790224420507054723446495709463933293628924388913759712297441742461790090848503480171337464255213772974319288463475476186354376934809590924784626182007825219739394378038718286261725415493916907577242120786886649992951009884083872567322447367525016846389397244420056641590068270816719068753363527124300377341590389723916886447281826715960086843764989708101457517272613100310368306440018872532486014277124609152600586057153840831387785084997173971624359427444790400287277230600101737457641918410733387160944085005050940598810906793042327177973011161998553817610522828763526137321898527109633634171738996985958954782708449984156066029928490973031003686850332691438138931159681682774818200720367473368878877732425264996069500282326552549757318249038713045104879538911068974598675516206788822329390829900600040789293659910961059353868528677790431327810919786985711542593629483173200461809969154190674484683199758047623921502921640215922624454357753874991576367269596867660199328704258992115932523092801870949538054544781374516906552313661444020300665174782294423068900380568712641398586771562323639515870140486659292418749728976149701478389138460510113837007235016837870831970770037003422270239725705408416843578358329890769407520133328867224126927078088252443965198448385400356603531825359251405251028106893391147069452639676058345308823773627249214938675404541645574013690099118928714940479890574788603408220595361996791443977119575593400692864024903817948310355431476745426268233493878574749950733326608078506874468944222106635339516039562035391805657355131646958831062343133270459086552289953455986724405473835328496861457873532028233476516782881210950710544285107706750299031461667385287591949150169404708817238695782412540299608808863695348861567112417839578213376542842128165998875993110489938440371846210277380453451371139230749422926730786652786947003246803081061066740342236943297738561277122490515414952286308001520191062075293860728752505467312047716521945036114663307361548974465327644140009851773247187258644124592961885974298683224516508836698559835466892130770062071563792016901489450758364103434976000505498566840177456422249169310036345757528768612647773848400173002699240626946966270723266840881820766906687837553425892114584362131684140002885222831267200608486703730073249315119054270972173512466562965913333370886853435574822809644528772078504756538080196035675981042028645908059198382091097958779663568723314168175268291469349000193794962523187556416810205485561337468086570366980901874261647030701931214006948900804152609050644146268538371596962973680390725415597916870874361387106904324779032445907381511160395994715851924898159464993052715030997189383716231541360695998816501280151429764941938276071899007889772445961101253414343174632473606434545159286122232443112631722934517721012094156131519553210367030065138450630602112455122825698907962068917219369890909996065940552006401585406328128253654906062437081946779335568835037722338846960649578311276862094344653090150276259840438986865155278314870861826036810326631315244356272008376039884867335151828972351695848689937021068730925644742325766055679200362893874583976577205691336110900557932990440061524648928919799580817089668037746440838224995967703687424120890323714904719504162762240951703441944954638883907603620725198333372589850864082598345953277588314324676352372963055828174978205815152600784830713998321561598324059082437866775400270813986020381939505621777717210097634451921460521967765953675011483544313303775347333288107103960099232530149371454157672690286855604303860426980837273838427983039668578801358589639274835046862749580561066039275036989480857784404573849839653854647522751521547449205349629323931287617170893634402389228641639527443125770280672153795615575640912544907883940906142736594247986042974434341925047628332569631559802087212612548281430075267344725969352960795503901361465405996338242471046803462884652852767185134323866084850831226620200736956073799114225397749233795363630120851777129725977528004362723174258345110941407678501271810560251362759334763595647244837694654528314269242756515198520339894743608427717616185377627393698631110823812993212424130235402370469649706934058494761301650199635674894292769371742236035912860466486888385415205915844946169026906094876716503394310221315110666652111255470283225155212507148720784371703806758019407545048500891514332577762223973340022484798551028820779760584783311021396047216376196432230599387705690643950087172788926395091035493146982363739835547083652172841128478649275279123928520624117285776586102281594270428738424260520333400861067838796816654131485209623242942237870799336739539104476669974657404973043926667504425827669937595903606372245339084397418050028377606126623206222222571032208170214666512039493573241985301117720324417275463810310757001506310383565349436809788028549452287149940059640642876907799031008714261601962089811964452765468232832408794218374517965285294562628805233952932812715048426167561765211801392230055649057143018715679947423219643394853953191339299216492202418281537967006139903342555324261486893225333994135033195439711796079961291043573763740273286179219085863696018185320110361479954643462596985560627001799891128057739528726058419935624888127962768518208205939296537949789453846440711554066894499089695754219706008686782963862535294498618724350986000566681948233537622963620588941489421731663169948464769001245660043277417824810162327739853296776728873101060092085417780612996416418707609204982128899675526455293672657997092428277400406115139669880874133681697962834888287740545748265090530676511349762598694101576550204923671151853704011448715114758937045288740872144689598723317390014441822164634323618241467372143946362771421294225322471679976935598772310451105464114900641401492115933494660216447228783808963886887354567826832182706240667662515854631799284801984281034990754493948647101019652412871327400889707233420456769620731237148867015606690836466620686279961055843320976920603312121188310794871797203892812563621644149216618815788254335050010992767773190795631676235922835564298890003576052472974804578640387541941674143441215358361265728654639185115046009683604495340623685230842599296684992039236335236728249253072929386324974949063709196068321479301011781463487883232512028741146013517578374243165680542783383848050751599232547651451571991950651706533111293065756717060488690804768992179652035574045906682769482766692312407674237260191527566011078029272265451560167061165179880859060014394473122610908156062579700371554581133259076639297498566208604859000382206129335341246156621288880305282628255267937146203517422916893630029733315837582323037627824747664940024793229205178313244304509754429410678950840172445804387852094329092948875425259058426618405280036829254173170677853358031600992335303697597053295475268212491997770348322464935834040205120937032090882891881758186652545676852813107078614914764126074545174629020348317297265228203353161487424425578418214676729109319245770080332864658730455908559806002325394644214715641470672963872938983346689561976090824454848348826327564891721015725414803261430976234512849898986593280184903224510780224164885886891488925739413017251616626810126802704163514187644447113937103922738627366887265126043492257367990022787276151291266961655479144562030092931435499547146170646231692597640534254090993976683936677248476034916441492387244086195590305076357729763986410156688743629038267905114667375347228864903445439276536855588549274371933308854345034453956483248105204029365036668832916401539635074474034735434731824705718049964737798769336080144412305438777569271040682144193856039506471058238903115589758375192713339256079795245953460759608191678311072595706009715004171335923824743440806979390956976204050787409870961517052703729443834368627636298395355978421789485251714371049686598429346745296130348848230076932460557022789661057379132755580673879340047067728731307663977041524153516391717009549544503502900072608149796930967119138941359341620519612576975396580427964963996489917843043712051197717428482647629502464816281844665002525983494769104079457908667202882211612167545440525168355476019060850599514323570136265998219230042139165201633409574903871011513218058881550122785119939536732891455367618496401830836582482703772391214282431650697283080963512540200066091954672757762395765126060528492746183938961018679202864581306184355576116435449814139493797177141846088484630169888167051877994359109892538786661785134108630133936933573066717080841622752880832656128433102089292020308050996794778386726651829384198279350428855710700531687355302567487309514169078839130800191083999320575421695092168277886375914053652789951753484905932996179106425894907097736015628202672230126060873490615460205524333834779622865720474024209153666122975635708803891142441473422188919567950374491863569860010397450427758399392042362034288226605210641831259908551159641037048156602697236939393072555774099498654424911973792296149365784864529163236172444992713093341107397384033952836233221690387740549558729043645335760053105268768044214196003494240882891985266092903636314217740039271073376281696177407343574695355159584347098621655071817071412011645555666797635024281140205766142632006058038810355882737612613619497203231549216614934010770897654706156350215279248088254106475854342858967802596072811175070887409936845842397684703074621152764545992369437982808507850254406687823523390159013087583114330135232448117893444871615876958706818180401994848196051206757402130142260924559461101956958778766208753904320556365682927976641821174779282096868314307973094160114563889274104318136338313572569440157613593563146234201297149988155368833094830116608546657391841279382681486361328329255714506935112192939702042306855513616345660382495888241257237845065519790923785531478275553084113728095677570491754400600887630075898397681351436721990171793582104983544658348267811088015228313341989226679839136433080896014440168719083029227188878535398443501185508792167565196110043927125039491317253233106309262277201522853434071920627898986910089327800094016603364259988060308641691279928750820185692935396780878216986171522310696707027029166450711351253736764390334948828467756168486564466295829418424634591716686653499148214828828987787645511838986395233705506989324162105599316641354432190125307642191868983598913697994330370556833961060754408069273293647332249157436661735216033365325900374983038169998251423226385012334364533720489524531276967725748775170973062917727522639111294226052963248498208584901436020649831998226225738650264085493666661513140058241137910270200381027120821477548285676837321965001942810397457527760957399631310713489450861468011242554142966985162162334239333500569499978222954004089307835033490288684332449688475873883395210349692054764428649794473741424176441125640340738691195755472350717002184142686440220066543348144325764084276368822692335092219173084761977238041949592838454413438075029279104266193598009501510908491778831945059147757985502447418567681078944871033519831919896113606777453562637663531500875014655269143687006518149938444975850200656486384405081513740725594121373220763235838286227221939398087544364950074066763724587885299841097016719302641115264324482891360633044571630565783533932744543663766453473947698443402600171996721948812867544515624222049095515378313690958953851393911023806240118404894913544416800993782118532389842786477542931692278706146817152339018164886940018278425469504913522853049572235838627333658754249783880285329687697873977541901430326044724672817311818564862595497535729734821526695236851586634305579919846650435588717777013321978643568753173690306217431528252374248650447463920597467743094041330620450936843978796603202206245488765290054609867961523584471222076835023510454117862735292688758645651865763370701213857048825186370192092859725366828548028083767603439005587224438726237017099538955386694364618750393236146039459830315124890124910167494650902543833553807449658165342582584512933207434134747633906016644844202304088798970514340613175525652071351087231915261382509063116148424229649566281214179290697303378696552044897408273575770582899394553316549875002777542337085973269115959601018522348697208973149113076611947056430119139931227875603851488764783526667475553350176068103383280826265922563223367615042133718995796342040042963016015410638372079463129220043684855210510574989819993143970239727123626651502578504372173627409009647731183906291629441060295439180651868278773031853800419327520036384314619332362642384291657148395690432746084260679228014665095278880594330191918433449001658822775936708547642652971297209907959100108640656006734995680944995155622028014397652256605066286692285087259379794127908385156816515225441859746151622316571173068763146321518870227894725591884214225348386501432895361057832190187064647714833168686549400769618316377608891040697184265412652114462912115731574862124288690652311730184521640461420747673287139100329395479172418124054084207100737856516059781005042739819878965127862227636679288929310636413202763924840020216420756089772843901791838582201683464198491340769307256908099563584764125498020440229583341509320464228506751508598009369024496659287159346943877822582628725009644739015903752437075431065049114009605809048349029954376988447057162353889445786376842622430644721211913520474843389973819453376994039880586072600131569755888100634959244059487209237778415767277856221776518976135039465974328986659035230896475230337207802757624175185585275366986155022934450718495103677259363890042044904794933244250310797076691013248806364501981850755215859158079353431762353807398132976777206597959889795289183929909330963484837996736597609776103099362588006829312088184515969444322790332117901990444438374825425441288899792791258014185800093998725844313854480203693432882087586676732149923319231747438041902229723506358240714638334572491359760967645151388832589735928510054103393814817110885528176062725906357364375235682032492994326654792420116102792282618900396623810347043917422078969587191542575122817668689594185263851614493422248323606779989548881926480427077473190183805551760109548121461599854021066616157387098803664022514584297027465253370669463807695131860258052377966560815431032035988788774278453866116392910298159463840536508027763518898088794342770731958850047885463364348354975353808216037764162454156234475605425715422734333442816427727955485025466841262854501832315346915676212204633414195890362999354952536609087715363514719444402276295105905434645996505416352596517368696195119671440630571537210106210994135405151390333689334722945044861273556627204304807220292489137990641863194869736051633586901608597215831998173598088099521104267700825821609571916889535056101387680003499335269620071737475082733523298000963470251587791047885981279074659015853568576833633082364464716213460691642534169697513089896339182294788122919784262546879081450639281447440075047034155799924317674810782777664217971814737355320787534025427734758837442486781783543996042285880931158986446680010866424626131204930615587600153775804688618785510723242010717720779065673823727144509781690557749914452664701608353127452401364314565684280956057641280736548774725861120596786694225955720197570597423415844062414766260662347740085422207881227320561421617905914007095132934826801449410609810536494701437526092160124926452714881779604695284600185072067997803946117168269522663221881143576223732651107142869701379437582725400183016111991351431695822943769859743905885711646347787901596923318492751993117141524585566899478162072335769583375494742594946021520060272355763853699050876695198158335488489502507425084498749289795108406965434347158472916118080207145570377053006613055702714151840490143985778144912416311474699909527051532029030823915492573528568766850396636939798990656887119436920589310054958885462332322294959317828953956445267385021265564913300186373713891866818633727773307093548975968308605142696407112169135711259769833216604484659258113460742135936800977208597238380397817661433971227999623036073314450197737370631215464765458960432480467018617046772724388927378154457829235480816583764774812551580675888339638003658049115180677022317606543207358200065013482597219319467990056769083871833691351331659666115234282653130017869843509547605956732189487062468888131030832448915254548181759109048427182563503032024405084624175288853052812577185118434383830116200986969129593513507877152901214169706206822777420064285045061754023209732105608304992506766537140551035946090026380344882377697785683738543660797583105196697591091766926570563644462416022466609441627939894167449059683457695243983209328425571475090667495239680135171606607733185695270854930015485458563958253021548280495048517773757036731002287319639264093027403574493761372433192631657582427049183057535661793400954340842824351658053698957690200372866105442140485312629226181482871198310883165322600618710168104226928688897422340616530189994006462430541374786549910687410709791266089659066257457745715316154705004368203175479480891530615281021530408047290606512429370687809913236491042007063377712654090954486694082343334226630844748317105449097621429330172575267569771449047804950484142768783787347867258659229652591972082273363376896251621907782308827575210374914774128795606663813280213437626628342998106550961049957470913984078273270109970690542962394386756644339830333472885950345865229981848911459215811081745846462255725136741520840066627008315667639852473047421409363112135554874309405969097018297070908029527481948743828388536144030989421090388339938028008769330192123144393722678335739121355650392837837888800405905560028124133744240640488562788023029492548446928406947311715690317176282516042159111708142402301338742914814110474910698442522608037697895269909109352738692160417490963461822948694254159876857635653626980938680983352837297602536684974525952555700471629114430867169582439857127094316793529900071953358938362106039163246089434150567094198258076233782883075816014706148141281921337417267585643452692896031622313811214226637017323003760461379068643416267367291547206571912355495338607438156221135657996392761057771340058734576215922526831570515637617718447233564928963877618969252379423911360120012479661491509422441295914415803470092286024018544318150917049304703522763262342687383356476798336642763564011902822357396317372959918930722528772439241641211610190417101361119555232122299809839961967815721117854832132635850687891763735261703351439852172372097603696935402796505349039138405658618970282602013756273401552633368448514734666168983907655775733398305310894772370133115953680933521194491129680002726569003410631442117720882187056316080012118484992854001063463878389235627557562510100634742281452618047814771757440765105268715830833637549217667632420406510296581871889323104629051272338852467930746449873910818534859620053616864844746800033138112664138416380845583591374487979841761318645108405078346058501728135476186878825307041303386970568458302415533412396136512667725377947394313458764834816836251983256200078654052500312411280576570713570775367754006335819588608057012057770956736415013898346712895293189557045658464036043075393733973069886459038115270474158642668735767527341196295712383584180305192076656422995722718580661926412547035753147053742689204139314552680494472690984904695685354220264285287114309156836453713721043501236389647128311182123831846228984288223031777189073178087746540046949140195032105928356981358612214246970528336093700649559209242206539753742687197862745727762021579426881270319655752708229160763712525978256304655271682521387106585318969562695850563444330606605991724116061542169609391871820422273396778065535561302020983052441488291115501881037345574268629116200689064581006938019625335645919075052650301879841642414662057323862015763888565991654963710406693431554908238329565600270755319482294373046984896940545432270639897105841290613603204499099439712301509610933795999566732647914517597936121159792683655110764103385598880643951603107800988217604189962005215104040152050383269669704853545589253050659006413108214901209098769014981077656363142184652437374753309056263907956070282752516041477358770831154856994519429976806528502233401527345699848311756367591356213575851093296950714815060753105060002536341662851568722687978347239781748027212237907950579305220790837418088563720886729686877990538496975979930549530664881928414701531346891688367890103546281039066606262257752353340939279238378928061059018631297460561143326673664042108658441116375358817448497116550298088169374885486273617971098084497303440383798705727960653079316149384686647399693546856439052842251649131649310705719787762282817017088695555186000979597773528603786889316719734940420301377748302280453995237594875297535576693223370385432633262745194862244713057817516786795621499388415032652387158087688453824892987533548211596378342942070515728913994706673165060589799768284888936709080446635928469555086416239330131528497812872553128326410075160679855280460915047772685446624086750613306668802622427774798635482373551923098922317142336043156163605537776946445482115271904788377438732387250619261289915407678151621818756186014429231674135778949542129172854753559750928096043270218160807639221486042092735236563825168942217726005802182817458888093102559424446240929872957984888675688179178456201270141116958689252066157608953109255089304185495107407546095334513991382277858000241355529746009365778845594206676964673901065994241891505086762390746466354990524060066613864269858493562162127091963515136526986051692046019179312018315555486173133796973308121262647738606787036981502334590065344949201977246440424926976309301910952029889838842869924843062577898188844269132446925018082798644449101201381644382415487816783634433996471806496445299015556614454772675949122871062111313440225385764697206330836942654487538095215797302587033936667715682611911068080880537735562047227691799088396748277254242415883756740985253072616377910908446609904097943920012201323235496630915168421078882142258568758512527904568874393180221046006147744238863903471599520388886961014326184972023104949720051547246083959584595645511208454690819372478876421179586846541014525363345760725339316849581196601451210003624350044126928218006138066759733972292874659164278727396749163006900733435366124873474704924109490124056549086267114921744224113253866395539725455203102647861498593838698688588686076844318389756041910009498123343465996017385553176745068520085095695259173701807858659858322397715510772825492387516554447833276522628777700990399465988023100922027178324223704761253618267557201442879482164980069545487524485099533822803566956033063185382124325420736428296082448146791870566304189434934934302547987899416771382716443076733101298057825529562110456538472757348439430366274394143536351375177090871439392426762013382017804770698665835487938177282931635824384415803525103717802194058352509602319366655120216809635877287353162826993688266731383083978208108357084832467278587022510258038658761367841067831674955777265588737094260034814149927360975250171862356383241005678229066950958666531944701666046212980656724969870932409653632738997935618606001124697348309099890179132483521112593550855894373183406486569975460547894813365099297024452913820799496848275693421681110755687234649577978367846422820603460646885999778664154084846593954853905120147092059339738552167880185723179577241559368828814280275611392369484150546899969957916996121011514196446830243474010068194656743948506812662504557889501813189401382100518077602156329989524030051414422505761962254014332619118698412736646477914271299682491979921650314159414843496792446450976133445394545798704017080308893001294925469548328108292888191924325773238670037967718194164243947846914417259460924795571583738621912426966619404522625785073294320248119712452842481198063446104900562146252366981196171969687018707071753807458972132386695720525140980248820725838652390925802721884906556234967157739618939021579151627024429472807857208788992807637816421444180407181475315708521303112919884295331027679800502432604750026879500187989539964415677248186920172534610917791598502553518805705236930528185027131665249492437420246016150114488821214750344839085074055697016830682460613732285860916309442127529403756291042828514049105610983359136027656185165614830025413119179876747704719152453765609416492367230338726244709008982417362151362986273707162274863928558154706963797769032399655734312052225420430331448289180764433347535407799296216844909143696416362446160985359222427952928320622896768144711070411941791914647165145412544149856298167201445114345576290861635103769350294847939137271745340214684754861414457645923765527868607128271140588234135118978732504605221821289753277596980146988191607476477710379359879488748422750434013410407704480621864308364190493499624312896126263599839900013001916706083400656997344652176907096168264109288270931304980644287732661667191135702836290195375139881068449829388281708731541706537658226902772596417193439495183673926229309765214878940934414390586678500695763298310246006064518996049991339587082582743778528838213733674591545048088118592845352795634787051436802114887287779860179913331291880966071430554495164119676772664364715220787784523684067281607461695489498442291705697568368822140451981374987200687763648978572417298966141893869700343589690456383484640004966102049540334261678498038117423341651279109864361100765147225569835958471964088917708256807728069949150935924782694030326269763317152965085118647203947157697746582244228509332740719192997236501929763539470649767686068504895124431846667635957077524801731954595661599506455447756283566248341170759333789984947761999674683708651272222850994409131576432222780212786390883041812826330174494605444994779742847431768050633597363850039975635196513995760308319349619198389429468405037937201193202104171875521953293706592800756724644329464422704534306736127926610266195002768176018933125230908639486209459459272623170652868756226903020719888589218945011006030328814143613978230376938249560910479804666293761070259868908950270057990234172244843866341405120793108833883028267484249897186445524251299792318766024674114847775566800064068034025293036855656918205303836879676269563767503344628347680563742406086545080892410684293679153842149951566023645715379290539699536178226002640897273749166446163850546720921799569918964531698312961581625035048627208226593615310618059382045264317519368937130076534988585610607699144589239432918904879146922847039869646356841837328296410494352061303980286193631496570857218741765925229838639297391624138554475665822583709648790826799162047528796187987041134207666778109351119799069775482275595936959073364764018469848060770356582858545432181010508159189391948652988460613947674624075485917728342690598557260369251331942143362538548563978236846293994277144465323452082070106737428733754475546086999867302417409737244308434559286690283822521735529702903009877305789201009386455315051313186965835770137824683298063284808372377469430471273309817476345722361621271745553920051542757803466831237524060866409821454149701699390722961000600333099099899864237540139161791112233725985735479749354639139848499134722618092567050868253628834429681497858413281619857518115234568594678991316299889117491387504989268442457924020419008783602595398573685928735749360423290455150988395263997601581537097480089655961907636797019350861043654247250384870491419271730621655810001390332628470920900544184348865005173289477358891009688914285993840422725132649826849447271620684643123337580471243381523870589170704738176473098882294891745862898276753751908293661377298829709980822094382890176240217877849257209565388354299115461115033361893335497004004518158472105962203321785947542394248504883090727572173333915069820493445335616382217926385055291799577917324560552734847137434679801123788238842168222858250412583793634948202164592784922241396952887363652990752927286589042695884201770818828335136250848690316481160095037143918667730275344534513171399817580451498307872852584779864281240536941299382755136150984165859100246127346395620718226289566879226585761705087732219149387829190505618672982735269308781687577105857955003821436604920283992757950680194528435718435376280708448113187142375070051868026776751403818298220734492854532867411440723090022808261371093874776445446564346781685334286891578340287827602758992863075790554045394153669968691540959811756972860425161433644392606844292185817245109215733992080560120684599594987595643968823761073383757586960296409042949801290477072539641061259112658368725152505662165587847962698699878576492390512109602440995871223611846444713240175178784015896552114074622837186248687634606700812500487820034319110135681181298819759845101763741470455355673648116229670463368583264492323391098683545434107980200822777834467060215561138208849447443823048302784330451581643090740078983676604096058060036471719515056574570803720572332917004139693298340009345819613272608922703818257638918730820463888885770268108595954223381092494115145923311149801862771978046819992536522865502020977550801648864826996246169631573687487205985269494149392223979616708365852544200176619739895189663449503229512023166627334054633087796314985772299883705836614723754465039167482220916406659495787820795242979017347560875000340561233290012359882061110657871385371821848086969996924414037924085694285292190833609199431282795465999122254245502700280785042441587580513490586051884079822058159034030799187972198436046407422260277962703833206698241929628462172195065063868140912700155811207906151950032339086036712736909480995554985704972018160808253402443468994800556306735232970011290412238688145386838253696641310649592050347648747171267243945903319992644339870158705502969248025876744831062323701910653221220028295718823427703928247978517972390067870464773789700548911522906314716724929133379568342338993274302199298161535416969792314885406105638579807438350636111577284612272444123450827413407809326389681749083074665136604952737391158394421367988348033442244357218940449118418053792848033745329751170201472589726580996399353310553798554699978785991711355555537457594475272350961344517259806815702850329655102952898419678929775925461807197688603583095041379694569128122760838727410415069319451140918364055769359236477608057077245626749243436710221151744498216918170916847326569346624719290101379953848368468289173709676073571334497258937667228803214517215049277654308741892915402145450579859694267955175060897309792614420255823105070698355781906964135845823262119253853758561547367966331928010664085609811597289578390231764605409654436109297121587107835155430457482841239315208208025786262278347797133631630606288021141921639139968795222810274740336686218210013714438976048076581077134737081963834650684968532179743441619791523662030646936328687804383426707468899175413034417148925110727811230975869172774725045125363031062098179958604720538378265372203157942473583737616693383296550538287585462695546503030848913799360520243667250380335476943575431582735654350364450374402014847682589810100387946942235002770322245250683332120360312496265917397073980223852414900262319403849699354055235078566703678108565006327520797695213257467400065423144524897586515788952809414804526338182909864740519930066737018464073559176618608719777911446382987074300013778438392738122367620031677704024265098400060773707374297294505286281948116773932949222798345125067092726229391891547875989994539943105264096581489266217605867849171527583481961210251327640425489661046746743729154181083919503842179075395777726374362273155570286188371098103589534830055244227166187152032007013771930367176494737655546816033372512320552028122849029099243349443436331401404779697789511770954115638941796316176592297982307189785147428569439952166068040962441408045130235346420005804574282990126215963746753482997879335464600030041637454129167376848707629359402025451395877622642956128641027544441099192587119678634179251751103780144288931057381232306453801041074165572777893920068229178340329415839184777447187511879357190841915423182133357318534861956803034500349049519878199241529428188016505137309018699080232054282108050766426775963946927152820840225881599216115631355096155812192781352266924330435125848628818700013208148814603236047474703143409101128927060670085737968222631172429103960185084576211551557235849308039512064276741620858019929981803841742106565573954877355153409168617661003596182772280808452972090727064222720506408298444723175486349008779077709109864586019392668079861529919928196937157825302248736259668500516000186295295364542038158222957414644360288427925675197901063757224745675223245993666706541414849951932244340240336723739720125327577027878192535984291644961800568324978866964414352359099519142246748977741163267402664569209088289286764875500455787051607685394754165722273195372719623183931599922065361199933868627417099878824943189832685746169253160120965593558144326329326888597042331447264963485740609022554426883513396940596988396850614085088397794110632558099164222201043869550553271694616415276745760329654868877997204253069498157125168212111989493871926711721567054295462720734371801837705396321181857895678660555179733689547684012661882776955883722540178601928373075183736707072100247846373690283048869660478672254812729690634106564598012349193849110484142579348491861796652666115104364804976369792863663189627814685179019985233009047666651613225852606959276599870426157241349464998985307587782574003484560279110080359164065848256236739932283599829071608665686995174155973961664551754523495322807439996884061576912532046422512226495099416250539653801382153137326583771147499991002683488020394097409494352094791933252175558199733237279637349337084063715415393252849838893850591397664280729774014905428540358782791031184121998060462387876534778629312928467646083020806510448809121741538723414407057658603553203984169469932864316792805060430968951366980292962125632661481940074717159493241000785610322532882709537104874047154853236546531777150046170469025992654259689853405603481780412075178995171929165740685041299855917574377263824273974947547700530227953503116205923495008227846642230365047277015624209151598445904554920844163394571590593903914898338441952600544650997411239745033011993593645175264277167900277423021117927365977406399135158518358048333342503677515882214512464994751818767877900757442524553050145385291108544027536251464596785375510523792629279785644295546958642866882641637941429293771301162862379304311196530065562638843003492663814265878122124003417776089108098044742819461995238649767229579091842048254908167013334275022689900454238181801411733218031520518149979394308686787438368850289037863496174341571700263316094475406100228774853966008530557751911127999528302337168414484213535097022801427059529573797306267144246217475774599774386018533949837914781398510854398027701676152398052654316039249594221996204944672577285227870099567523179541522491174554925809244450847687748737463522013376385397314807830634743182826761516690303244783279882332375589207786410844692191522342558582505182178712971522272309837255853932596699251512392663061981625783712829506363349324094781941513276649561887017759817068414917695174495607619955340441750800009056027542264937439558238386463690630017743611516518743927728694163109663641179475953784903791114996522755365975988607841089964344342883338479595159609850883227852409703991802208219963114764417109364324851177175562104038272908401740477690521677101157186390044105580057807627486630612169936082278716476032417503052374764120669119580939365699880681851253872944078135781832229232628468147668408250839152376641762137168684613400136547907717141698413118146960201447354042405844592515961558928023153996146895347422317085498380161934138768775238498867137838371307333157774956008959128879649959092717663110072249909534227583504286531607052172232761672143270363703578912040396271074502831519197815286322011655841817520174664772211583874372943302834586313366433573087041679456733460807463758929248344809007365380009185850686562141794559258930989155190369998307484058968461873474185066284515164143774078959370535205293571474661895627437190735985142028875550983914245642217057944631758857834380999552066190126868904278990730239288832643946898290002544697637583532815018863393866377121954282304115947741621689799546666181449166120809317944954020757391476341537860378523604587230603573124189291873626990510306959204537367992992264591676837951474405096174871914732241549343644946911464178993618222395817337963025156195934768316164725141116449440902224032414725851085729166053820843160141218872975485653741695735624934652688140201473389427034720127205559690304991953341528152729924170912823092577042494858907931909087777856010390483503775990599498837556381715881943658135582985421497681793552065685129017575257729232461343409287962465819434956197191698086761167039194469569557510319996308422875922429528523870195500139211977299556655218980945185001525305614505412411703554111356473963917442214442274131649715071834413540341507616921021005701588687172131795220267055356817185290318570749802884395309361885657878634379268180183865216686138341600167808857169437589145726207757942847627755020641955483447138476409921664980897908639800326393609682906653172441400369841283852504322568086693751147415979877212759411228814301449480115848975206175181381377433335845656115823165282214977736364587949959510766070005913569419753276224395028976820476847105514286041107065805123930073276436957839252201206350392679618211403686019291182731482371194751915861399770018234831403005244291943258137966929484555981382903359249219832636821856064544660511102638169718829383227087359512595270565642579339706904211829047412717365018985713932168153142220673851677648195257738890367017452680917994100947035977474765498248211785660685461079809392249168627493051788514941521077807415840356929500793274441185683587664927416308009475516726038921644760540607763735922994577273404350190469992494313751592079542630130794777410676794169309410757532618564044830998438695120298678283206232597467677967153193296326073001206164869140064870446765073172269645469603243076765517595770998042503357258306898738456068553200346749622981542417100815298950773321717544842101884499024149809037404224508499548120528069481123276730918110230424981535425989545461036919814863974621255667560707605432524625441974694153857365851027311940567130945017564567584152508543064795201124224424501461777969981731488039424618377986047082229799710851651089753023096440020791308810770397580903500399130045482845259219745643310102180441843843600792756993812023547882980357135867301563224159808200395793936698325197659034154669092165667581353775488820156865735206327808541136810543552588034789312493889168508907706343343602991784277116854699952605184799516586825057247808469286223380538784516589434881297149165182691984504727523117932206127277622119615222931006705065982452599211392788184683753837513398411264107345318816258354024683843340585035305880778698518894985411132240088930876858639984028393025274146693215790497553453736925514912222594884858823729329373464111284476251675609175920926762588919494433729407229403643553515631147753303395927271054049038734278734734923537839714529049008932079064355501369820533237023037662332370337979879601331652872678866190240468977889597371742357183791472222230923123319226144620166852245723105915278244070575509311429382131792601355790159949511638958223870035762609394018029762246816440940868803854657817989665511111355672412722417151726093840044786054129660185035379513824114590222503382665602026563624935910444761154366731158982474257110121149175908112184767670170941054887010190602047062532151245046401264861079260399191917740887079254506064014643566558488743420696437639687387216628168703583591924017201049741114704321414112898245802031961675145345239807287888711733269078343731776163279817059887526256878963896226505816135754290111292058654831276570505533513024554565870603028222714072068525268530991843385888449193759791155018031208626291153940726091642371494810702149041794325049360602625189552324735727865522075415357035869081284423645498579958779263094248237734889773593365116648600408934147292924751796313306006620935091672049957515225316707574662210153910325454497999217654157838364643557225443930641721741817579423706191431353914782189472399746027138891165681498934475275778938477820342454130914050766683798352859962959262090909462901072434597486219511123186993367045305420471248292959059473388283537341674319885295819176959030967802993100254448489896706024547378122451835059094210192905628928098037741057480004940344611405587532240008476975140244181825123596423064311451825113557228619796013161860845504033587151069720812138361307340851446430572471669492469462302690158412053799364063224352788455755619525528431168908630384063857994849113376592435303140297752703896027697770523757538233233048932904086489876667202893200960716098340434234883368198578642297160578468666527630440702564319276549565325471677661536447447253381025000846362999644689186855110826789242215345199502669366972592192299468446767786484183365724496264079687410584661123264819894656463309315138703395768397257390784491878508342869398271211802003313898441752316118183959754529257314353480630368399988215732967272697137615392454319365975594529904426223607840968886525505707442372987581156795317850303863106996170498333235647561917110621506930777447822360214866918330075593971256190288557700521393284894250871300999287217070804348355914831714535118987558863398215794841551977056493557459606356026346091692251920031198603117836890847588294036955380656182517734654421484136411991023976115291236703403991933710302726075337987225543248087070723331840070173505421682456791782214263097909227322420463574712289138385558531584983470290538799132621220512703077301162020292641609175291357610174309312801320776557795605569938754763420670360595792266688715974601267921442340972896261947127452312200476146358643918347513758888425804357085492852798001520850995447405123064608132165649724907526888363812208304679409807887840610979367220771625793960030340679937349507392485854414196294848984793393605357590197534364325544906594789135338774305926226234130122452311603575135838310674169514139742590602970296758987504417234769255835147419153704126064818068718028423998547365053121739764343844924502822239422114616318015147773467468639382685520719783650397932871482980403919229939595356702188436437886030911084982078147452897878844885556980763768443652826371451181567685360818510493369169854950262107094358424303487942530037516728656229015812759800314298726862266945967509639819425318239615236497925528844385368397568856542610455756614326441794533746955392921164363645885694346584243155891981059971318652914843125745198420326036453557599831291274254606259802426983550751248728761944981348534083153642230997371494239066605632766028043198363367743591800892540218101295978242748161104125870875476618937454849961425646734038727357665941556212102418683437588256596662509753779661963686320704672583429495217704923156502315825994223965145164169985949533145323601949175585389186209410038570132129509812963322739665734799974359914297107700423247151974422318244292065518345184154952940622869386824967670152461366658069920032932041141197471782458973721257995835467535747215506729720164692315532866736954801785540536432091223996098855132350007261469707890474239081429505476612721996370690557176780987826051107059802709615921659534640793379856016056731705335430298641018383150089661305684424492544522642596169344720939140444630540343474445793630983446635224075193591777730464936995948747690708158582747075687437048709043296561469665154335021397536409565456160120079312736231447227382276825910622178432141017577326938997286065605803256089110886565230449729154962099223005580616886548668026631423665765372749783144307317293765581278243394492521364077226257575186252772127909685995665532474318416894720357643860745269154664163722985257372640490716285426081596849062454737353257719865450432493588732127185474818742487176874370616423785428754732990063878513846211446611329979149477190415909419242050215695697940851354570641539201191699738235060469537359950009598765776188687750634081975060818374781648066230152070592650277464996948464507201139272470245159172971274757551664996486145919519664315442876777446278591433858969440822922393357073274352645379086676813962852264550777898771466242066144210161797307897267841582922815305977235668717397341840385945929360495205129169808053839832933138289665606508610271413010432228168493306520460859586283366677729185751739281341476302672095984525647962601829070976556205138387391167419863289442925328894682276846038488047495368334928659556726729991224936000106984886651063391960845796371719252410092873438404070409780818496717614305324850752991031472139170913454630088106342438288741137502830379761633451778623014374959352690719273448106635644136355090247282033625254402757131711464791756267264130187413174939729787108091133120874616904605535824157240878722248307701793917010175704982866613609505510169652566849203150108327400199429044810515690750370598282156778519766070054629725236594781319305654961726202915381026636668245420423613217113468040263097537328002834264576513183968622563116380769531195766788647601978823479583204609137628856661116703296453368181759718651815222466273980526120490292202261539374360891634771941192160920517239083595168757610772086284468206238784310590855852930764014372882655139740408542026456390276706278315271672876083697098364119890399115707809631281908910043474507708734541761945678324652276202403607296060865202666105506414733306443808600252679680519207500634590197607353196511677035824294920128833198966225918865557401611202938052660784667651447911057172019178480408086313150512548279758927682122056488648069838957478186423647164111338022338407024750489531972489639633837280830912239379946146613777091532338206685260679484147032556792866926214726656439270184108075264201685564131196663167442068263597564584569778524804325708516904232940221576239575107260067920344344534696303436815942787539013855013570058596946211678211665363547545845552624955753761988723049503826037919290292512596648191363941158489814209430147854667921217217438891650151368601964929764649029033079405460907612022572965270794824431625024353750382833873585949648255895426455933414364111792673867939430186220857809198885459057847209681256408499494865983142581071892783771015095294109610655399645299091563459337643199341944248195453203558808243026075142363995403922697927585196087377184991912569651290036980879050232864189089437868504808801312063779801739186413303056166165636825575999728679091866449343886828686299234407676534667200236045601163632722375584887460382739068497181276829892918105222117540126887093197312805870705937406454891543298354055289133167481332753477487983111838704053005679702285559912000157584708979604264030234650536987853547437518933004563109323654923222488054564474338554518124272176004308995636688964962071019694990067209426118783248462581005706923707710234982472035437611697844135917333705784678368307395546901587746010425217796211379938186489690941767915301682991872635413706693361689649631736489195606150251607627162322875409235010940959199536966197895020319359442803909789763517835773495942584288847197065153106897278517947554257304157231828427981504204114030914575410924586105131126459863946414710642561284160128502727316478405536290077740153762982331901970806029789506341868727381793602962026502191354296458636918284520510177762099769923673610522241104472396242824079212588010636176750833613939114865936405310066501628206750917500448368056199978553280778940733822382026783488509353182641307398767615683554576978132713417105938643698045933283264280942114279104340586520991106254149652588433333853956755346061284757292773645330808870075572427386566587387110895533056342953312225926884129832531275668795272394987257988435349990845942753150270373396307027851066653499848831391543855395637159779419503027817283761345493298145169036123149799637213956556437660561811320933988703354036453697300870465107316874093371306881963152601483124830257921831828579595145606573241430177307493849358022362833872839803816099455201724182469564750211052958053724246204908392563470398261602299048252323486395001090826047842845464406330793260735360664584722789638874640319882571001941618279666782912164797191913675104041434923148192861730225823489370313982168253036430101148267925195223590877405742059073058397717956156923599381820487335406081789950724794998462879925351104247071674982527229901831673847327500659668795423422676299434416175948269940289672667604410567767097575716287314249558281083819590344645169228324645490314525578286866135417298729138495397071713571400402211722171437295568566413623316776978654099150079272791589618824302142876860064928025821134181279876312616093996551107407803643003595163434488798620583805350952558617613415573984542019143563807339982939105760434122715758221561873206798168717804961140062759858915567032825936501027942471808494085084385897476728555110623903757846438750936744233714854905910765367888603907206401423709878526490650639224919125729791742838437294947528088806515772307996839620773068361651166871249450366687669380597159903524790232732462975964171133728555206608267090122459064568017658383545720504770115542248367390105295787453768950372201702591028199484620226855016494459392237441460775219640964270149491680338274174899877315093283910088803293708158062734735652837475877261677832418700899484007250696865665028217570973265371162157958597329582804484487143248196476882677077339636828712512695872618769251559364297122349092735673569350020929884685307021264575933516892137099901237038330932472178407111590384273171141523201716641483002041048839500815662746071650135556591804224902186969588114137653882391152725323409279791363805248445587692783916390859137572263694609666050574330767934275040167867177301475664019101338457993164838760443329436674334850813210901453058331588565117627924264466948130467473712519986678877762932645955750820488868636020608751570814159500391929680182807990295610338359632521295328193748056779134611040338409689735591385305794062804237640730201035012499345026854306773531813206035986055733727761395702538814361061410508711832900981807819033774168584207389268764225314778793030600720673084214416842277598618934468697551850080765761236125848399873400586181039417228885669259323525586997295092459748624323864884631927170032270056305466678947645649012712152010110124086009549625402989343127681440060547351950420353451885892917549049667787159481548729408558916513978270805910445235674984943054925003595055032998920959526262796957325948050856393266734267440841031591460427352025873356012772428442368330615020474862637030775582613612430228381980382476718899790856774631201752947738146171240673850323731986697971571695311680968770462777826863134488265515979508204589350541526638536186996943909039206056399846605133341195867068293072286386122748174571310538150098299180024995182591885882182518023990731725294416308980594255524982671238310232267914990754838698328934742111667194440492077763929768421002041557935158727125207918574835118365059663541331178777931046458646799282171043766077649558930497309891640340174948709224921200711890764459806834786356764643456349988601075629164363220328625280752152626371128357645621594504046826980761493220062973886996736937209547663058072028811563193974972282350552780796744528998543048141527407452836604484262149281196020415560079767610995661407486955017682734912251975971462591029595056282474739142499496953847988682092766854425201483017951751428879506779863125085612385976396910572998356334016012973457663159236201727608961032747211252597794394627282810873015362027488976701968762355201810185973196155895031751220434408634956441592924513088449779901048697001420968393993899274080598556301020637204964057818184233279247895943947364158346325303050882026212015322981219674664141574390171040045042470562871451152375304226839172206297673052228642222540159103097204635733221014626220011819330601661158984738946868409140874370959379590284714787264612285467505812749484152104270447952436528743972308389247043457483734162302694839786414861098749505719365748894901691698575098209610275068412470893312109894973722703723734194129229032743231962016848254588692003514528727496810559840892734926204601162526610748896560113470403442164774842038267025292667125761512459660193919812072338854970413198130435410072139650828861008933579628104692701121149309917455746033814807089877242382647038125994640272475594998499270127517225411433117001871090205874929228425501059153814589513192593740030716829943543953693232177844492029291387881199553997733277614814187208998369279762643548161391255692604695176670129566046510816639213753522437799297343894438099476128472770981521786592800005208085835000618455068079026920343205504423528750649095846859780820806460656421462213268051627338713331898025416141210131342394968459088923437905819354747434657796671069049355942625175536269028736467929550462494318698407689641510495451128185201944198620455736839717445639075419181419349275379538069347427640945894142836187299355128894306811822507968401606066254706511426829586862134686385061074351622438159383890471763892942123741920064952773913761095493869975598213999270046657797149937131108711124654835940356304971217912928065912119726925372759294633978585715601840042572945542643909036795059916191646432237509265938176421755934592951083404309631194849814099679631710583887678080017242162959264854646881861876251224360501487440705097504081000401759361596048934945750506697998614307128795014229707978800361616454513187607305876721144179203179658586091365386004572924871402831802192504397255567664452878616091784034726552806187384725131474740167009002616650647871000343111594842226660501052555929490520000426675905460068519259564777030043635098171689420450476914212304198466774991730327063520139077859182807954833494085194077173150284938606633543341534480938806592214119908485049707715577245908503885792575761511606162098062847791760177545216939418990224285008679333431934670715781422928340002897937123131806505175362669618540784837086608327088500277125876989403628366376259054524123007001685535661200143920396351238041248746440150186692281334988150878330583202445478913096750620546728566614746899196748897536430296708532529649566201029064575117828923341847473765096578575426994396522246190341891313104591542250404883054480868712112546138656023932446157089753737766508110832584429644008973965755992778262673439052654867528000984378241725786625665108835396342484441604279910732470827702408773586195875261758322199314491343332782060376873533817494133133337865392670795480544638469285602473087880033216300043173752448835936782893912598320580226336380185945062989403477713232903323369872202235582991276106290887593018222984460958660768533766122638610255307311643167690665000659854066195222906800173892676436451366930817049549455619484409310988347214042974210076608766197392269642419070358585866327138697078167053182121498383029739991638107905689390493109819873671296810174634519347866933017531663170346243273361873098139024655037304024691418952429320566792810324875757211935261509889519989365960036737738212955558235979972945452782611022857902761176274578257603483291856007269108489514958128218969782609519786422703217896173999510452936815372705952703865080692056393864845190637579792445035552266323279819663643506685024346525189388849264010329662284268814882708969486847055052407792263562369027897412566934173721177244656626178401295480853695233312526926077670105612701802284842275953433593837510106506759088918309214901949960042410318440968282001037053032831923267322365937653631559376813001741024426478870920700545195343335962040858232153152948914668203290011406833259830124821641740815583465645706065649947163248781913281043255962142655386161479299153897680874224137401172660205424282304383614096492933302167712808569275110060517804325565216683412738442441472460226662932632449684091206529927758336573941000867477345604078933268824257359505494146073878038890288749037776505692075957562679701562911117176514869445241592216520332602345957799403331345344577892450015181703445294993043331316490331517519506794096844845423266371086932022958466580142936022808584497123563016105205014328910878921799860658717758258558916165290640717174578903410982768831178961065863051902854724651949186296228647192701918454979565258969682961210692625180875974264561122627422983038484451263135911464184068727532243191016394110237125603398047715258000630245683267648628281539015314235621921976398910155390052051026374847337189924803966329213754925973391657773658798461841441071924546567809677164000248690774474453656653973746112057007433798656368150791926441855878723231088042940328720282355780479631182543733454596907642232183433224422342160289823198974070990887746897036604815033937072361011871119471203525571651625536975445221602673668620791765944134494326743062507027959708710837449872742816499539783702053138890504411191281755012644642650961957880312699764719218905299210567937698218923207048668577825790140457941803513244322291340976373223740110454012894544918558421081071762132334901443541637726221920887341747769727698410823989472401937139229849182938699724983045084622268568334743564909970018923123390615835856282576239898314387997974356043934414403958117507503572746347936263876806656683170557008408264716603474603405396609702005421332434320011377968807767131678464506206207167468955429593541529288670491339718740658481447863643432180387244639429660744329030016949339559837756565371148464813388291566084525712808749791320001795515848030936700449815536751501945667500733788383776272359336118393299496449501774226798704541058653365437588158613502853099210966973952137245069491352661646497772802735097497628891957531393246865048818205401913032730357340843650300896165118825790985561030246383024481925605194242187299102451983467641674509813464297133934371984673992363799517601422303173383366389780383461698488905020846253015107568043247663551236938975509775606453466862315043675601078122770549427349451111522599621834336856498756786811469862877541088755377298832236503687797497474758128754838188868737563267122012676004212514331660158408347882796781068486066281638514939003797639173883657318269371839597655510868426847405300461511325191099646825729697060727182722335734457523286261343695502659634413957934183815226384789947051246565980582195644123679392916936898552712848125333701444205621305649835028491833797595618092678118661216720360100663973310177375847784321455840884778185697187982507098840828294991203052772695493525600398033210302989515065784590576052503751769958206677401136528409766155801641118661789280119795919425201817542698723156715357150961877737927638449481766899732040818638934211971365708945545593818107814825955715455318077626790556860052011992522193613344042164301786712484250575091917270408276589911355379366018915584803901286280195130279662466475901952390567887233099850038856510175454720390236241248024467039079139580067229458201006506281598942518728489654573036551076863280420172452931794379785745410934486941251097139087260955015675637749072846833641142829489091680608817401070665423953937125978790227696341665847808816179206705745900979461570294455402669970508346758610405407375139765534736665128606620979187035487617858202985521976918506438896361627068182891734660904811863875922248784125627039988701399382615570889626941888890256452712263777780918200223831687902894421405631200995809971587104406929587118551712993924528859480842371631821922750822931475600724807642698702736394820602285883795732877645122400188293906770081006366453143799587495813619153251951774808891679962531814062370615998635219271808066407170650455510784197725534775404020766359315034927625849252192412372706071341257862737805969276744067355439719085879759565099482134557151259470957830100921131656434864737821530146673471868644687307652030187324747954834127516113943843516887748414837640780685675892199233577321224944702777145468433058757883086528161652213140801397371539373851385684575884135784632689816067590073881096808500285699822081309935726933606222642644552506859478742510181679014897284705404101857797412088227341626701822849554560603575844648343232312995250340140601287527747227743547134912104754199026606242454774662585237522100906788830706832063404784397614197359681513027514774891466398093943100081182440966405002200767428961835961979327761309447931687037311280283636333217306052447780377207193623007952642929135568384081397413219978422974597226421917483241216852537477975833724780605927479275160947168645058466934609143252014516437924220319227479694842849849156277365823707276431616854692912241224681589533997602226836547546946092490376246751448464460892607839909250590897779797757548723833085153527083341649106765198513877843938101662416489221522040737265906285962160700501369355763313209527060570048952510540664802127822405303762405116418946618754644650747353484418640336413683707730125176293866241004636194943959553258020520595925693440774799359812043678751843783554289310704552398248776317576349456428043989834745014169148317162870018794473074622924750981487548758079301090438336088023835173920168124827416296213206515404865006983727304108466808033357289723555876900353813907923318134127457248166488244535106021588697218418590187084157660063560179242768190058735263240235688820511235268621042930256747294787657641767403898125623695698079246288979607567564681690982492969999261014719316832380152366047430088693208427470696451337193823803045423547359565197119043302835221027608723481024938466926403961623484054437566102773733410471035429205577302532887247225320548164852519772354302739444189954684161247303393565130436697663241251330554665024167727988957465620757238612693659733885278800916443726973537118282181569569895569690312987292511580412718988687627289149225550976242219723275093674770454731109647196504288636118464249643337605617695189827112878808977693452598975334087226243128112887543668113126134390337417774472104161493428302615358724171364680367486659733582600328037738965669931759148527807342452105116243560346864505987667094761193840730599087890682613125284987186128339261693607149595479857166991569983139898512016883122849867481835639439744284441377481501110106092202349253709626316311526396603645546400709088444145755525408479614550392158627860555194347363297638367441762883834731454750392263522853974343673200003188914892246688331030283158988642401603579305942899285788927004600120957997824648018968076861984874965461824297838492535905299934673684029358454905679413250485717906280807384304272942897095748045027467817574206652305673424872069259349368631162599862109567154888136547382065588949858619561144439370126212313513773996463447435007780735275369366193449625235705087172136708428151063754632924254221037716169747648476220405910021494934378167537437992512539036012875225683630096971552076147984072593148065473849273825641600365227775578915933939294045168282625172219262563549745993497231107770393931329092875423482684174214487918350919714212057217801066656538742715122177565669361318244184504940648816562789749562834138101851768187140358648081991017499934727554638905122871494348449589836528656631275559435513933777298048349690371203922767122842286826224882552185847624543605961680374995480871983984176052328453726356353064496758622469722341921961235493830197560532313008950653110827390607220340984339295403905602035020455813965837965654542778261364288518735345402571407034681388113445818908623847990908416836850266936135223510584245658808346216854553455298063053200632601217402007277370811660579220514114523501357351529090950356972587892486994538168034247487081741352921968827108676243827843250968009261789246330390700039424732907209343423403763891253314711931262582140839820499205776500292027636067533836856990288837454601540879979605531970537433382324953287369175672618754960936377797036066825855988215991829687402876751874109364610691118650480534371436972587508091387555110587015220331978950897833020131280927597921077225478408087902773549968154799612587691475380972116179573284987172590582874755340338833941363121096053490628866319132403208734340230616507256614443293914082003337760407926482726190040665000788010184508226779330794024857586129640754241265850121757364594497891155634380105986608198585081936532101912327136177311923436124278759625844189383570457563346726441216605279753422014641482738066033545427224547787929599688805592957996734174592323740326443577593932662890990428545348426431140116288750167482945309314029657564391666943094608119498506559295533271785760938911906369978322275921078850005253995446025823524960330176083324205165436925808513105306253609059751354332685455097753713389900026915909809574271647848347077322161434839879577861488947510080986143755373160235486817147913439649560434929886071755917202380248143387280306417315069690525323087978375384659527319077002646360156628162496741697259110515499613714797499990854016997583599123812594429025759390084179564751711949620998579603694241383267225869049492935999476807209064598236753225517913438590989987383433900390027051974076485452339684693171302461158010473763261839599838694111908939075494685724430431507170637595355804860144914276211843761096893106060055140652613228587464057943013656734740534713987505087020117823936337109736393305303353550072937337119019401848261531057565333205515810074767394808270902172339078590206077483886833246999788547041936048839106800351994706366920207744678461328539046207586225479670115200827419306126890423427385708233085344207292051369917440559377530034837667144338232075946394851025274619343668760421546843773665228011773517253317122131901069318413753253555579192482453514344431731582482479403494394770603400082798638447541917400490951044340691294351691203852142920582829122046216921862563194108542519487321353097524185306649539944246126569185537965290257000351024187470964809838748579158953787555187960008182493260131972613828441850038676297425684413364319076189590024082910216779428868791133583992577871521657737838856101567042375909449997382294212374696236454513820810222699919799756332823664921587656605798675720980687890829985245548184151823912036265050761376635308398575978689480731429022844472449412442601559135070157282650683574592206505948422609101359836471837829829082459739924576094307644618508567200683081690288013203277511136659729969704407685039698441651882079600741285406418665823220697346009020928954555778756847464538457564174475825614369669242309547403633513796859388044387405721934846184664331888557261499348294889445328776533802922174020542553816901015130664214267004091660745139813951821982360379910952516216923461203379883464110439294640875673090322987441205490913368468873425976132991480367911081576246248703898469193495499238555037686436823663115611776832640878274812156892169585971118681245404165400675990789825534510235415125783917922215454168519378873862765608602280562429565045821753897148359534226209235639145294056180078191876093422808252226522989504410332963170970256523699763865428991966567490994498311627719522323515215493516282199480515232075594611950676697141220653036695125385199186168350702820681291337323001583233693708573665933722268963457852624499720545522025597414737253827704659319181990055633823087261925785530506504186304594181711567120053263163369487966718849357280928393401478120852035060956957281216295209005763551825857805848674975621078499082420888393146798166496670375681477544838282157350373394645280970906327178145579423359924704965857420308415957898471862220038202736521055535373299706716625901575853091512632600476194832411914086646296170604977645590282095293026963127099547331436890114569954202734880467568615284836623075523205718177542416810124389959589598843202138766419948016987915489630710487997401008562498555770355821431651164706846470695257894986274769780927130196033672725425769042881646667565126281957649623856242838718786579391422606754387894006496584469152636673075184950002858496072155511134122018880188628561311632075824847067441092007035414600476859907093111974015705723706322822627931942982516248549052084205971987500288851207090718076123260126556562746058222943691265354750642252620558609639120258041049438169738509756115917483310217808698117009016584158111493607241491764920468316054553651773666610153855521520483207086535261887434399713681546016226209408513687880048214723236903998553250420281949678591127340873477706925670817289927742649634078645805280659806591428097669657767094762754169608666015781804223042095313210825578002087676793645355489136973677445083370171190770969366543012746679843671947766467160193704709697489551464773206606482902066580080795790094399200970225128485517183493573384979661662913486564322484614133896634565520791618202355686758808770028068552100640064785788776578025973739406485861610421095528694130882613987610780993301661479719769703718703363555390616544972085773815279869617774225596259057216445795086550409478546919018296623437816971768447098360360734127202387040617863370508021891134849929697661794028217051015794729081925761263736237116503985333110627365299157596089651797866056785935383605266330267052366132523513747549455844355024682923925193977452075064940370268889102080953951225662683198574448999857946562409484822831485461895787507539148735820882065568001265396886146741710996259962445996101074612155994863993814181288115614160914945678972716514405482466934284715264398150125424240117888269565769436038401279488916813513041617183403845404866528442166946384517469652288486246358903093837508315181990121939285798026163134703427479724971267698222780220217943626830342282285584976725091982527635826684575165518976955922089397465850998960460074179288650465989314883869421532019112365678352651799730211463559388203860057635918338332976643701328253738197537537821342661372450811308462222245776824165805666234215252793807250366869609189672695718143449338643568591987473426451323412885136183457689909019203650954101612983952333564154225134247606358095447124513246779898042011148675381659575173861037547094531898524698943203345431001631696458877598803120589064151987373597772929776544591148278761150500997385821637367450103391271405191315883926298960064000679729316339845883365430574450078898827841298871435406304172487037372979270349363268156052193266630152936284279862867347012144682414708265929190091024553136613802994738440426373776104637153417985650692343386971374195266097608975246373626999038839120502166730667683442882014602534379083251697605001305623639028574955143541032416668586710156064173959253936833128217216564013993250165486898173716714206287516116022338307966890869030145632565933309985795951610421068809860877124359562205499560759567770264899106376142180031891155391519187090615199765665339043150716542598005807421836581956465550671466891340715392251112088549450606149663077144031904008725073576270507994220615932962195100423622747963633011178501791720752048836273533492422260361152769230146120189410098846158118362027575980250957702481815417289388336096275291279460925338838900620911043026962467390469844594894345140756051652865502907912261582296908877083566363593168684564483163759345264604814067111270440582715524925417853979217672409387767297216816244093025815472639838386165928083454538098940230804006501636446826475581334768170609622516432955407359760892373651613386645003208346231190872999838256947490359370705782450836527550018220054281678118835073653415444365685960153152295233288862631322981506853644925960191048493380587516700851216079333026602651164055817486283692234421347458362278084646375525254169237358702776511591813856469641455537859925636857300263115853543687264806439708115879467489635520921649954072913308873152367830586582604570643018798738665324698659174327520974669990079630607918653387338710440983647232256280760273040160073071556691873630814087213869621606668454404343125013835602350971821547114725196492243903324994849050247762805053748088775010259529448278417704681970956640864561944800896448052515907828907286204931766264780145979357091279063159959933867494226018293397669653292511138280049195405604433642380934387584661756470876926394677390340077693428348951082767516388702955148606225560706468925108775788818542142143218596901951428761069220494569905528595564714282488219024825588056461486787712508289710954429175066610263194981770472759973111807628197962799656157419455376215557931946280457275465469586188409060119149015545433545610532416330821398110588245429433081742627880341012463500899458310910664114207335813379095088647573025058871112569313155557753977232711694408088606913923928511993363349028398119116598406386308692932754037558037097792266292754531442993280927398291015850319007127253343361882141608191584106680785505081988030186911091561364265147041589386570442834589001449618920438116154739424915144907495552588940314644341518373880711092578169456628961777034303445450229283603986513406041289052504431350766754807466459712319634852741588256245941965586750274306539274561567563169174376022321109134861511874329909519297261290766094479160899461914932328715528336712963955478094348649243913517417819943306490195811597949377325932092237585940246710915281399075900251634366759050250471222962701775291546215066915394234394526005537947861545376634153245842351027442279817153365826944198588972401231653604385914958190334522308507467596979678768007824813153777758341573119411263881657185019993092548135675791617725932818402924010049585601709118103572940596135146317857949770504961017412006030306627341622421726065458795489705853021816208149875239860807543962267485267398652905459604190944621861344809856883576384892026942160790667088943230110806103388933212149738889791699131619796618709881143490561656924044054634607112871964747913505366074569832063009193667708739534121739914114949797388617806236763517499815952524536773247528776302447479011151465838768027036655548709210461769067569341340224326621500991208029397488770629156520488242516273039632022412290970559290793437157207139979555262742909386638845873557414527591199196405600497242274530537474354658584194487516388741684220943790945312828128318644951285664427927458899918527258552017859839413446002943868126492817628850618777679253578192307447362420429328862175200203377018391831450425763149211016166262063971775546810479393206505423643710480726277487679255541769465544675990737108667719711433558283388067804916462740033498284191347163731235456802179953680181230900687830107746744829537006645789182428419447403038946913899557907674386977829677490024504794064127652059980354559720006683107012613311283745649580593560858326412327621558301545726321620273152808162862376831853628239866663732534053590355139198038913028317919820099034738966655760457952311219777523303335328050968818733381414158118631639253840914689494253444548970361817947677101460520778036422366269929162033504918121438133892768749393595797358403323426197783360615434930096944464212096526258624623369542781718322091883821135519335739927430825211778451780269723379007358515205143804913868138624227278873639759707174936346183807652902007695302646761403888668419715084338719646757780099604642838207651889999053158324450824827165149529378207489225251610856427099100651676159802121688438624296955765167568153792899965487664368910396081953223622102933949934195375637543949683724313064322041559467031098363026688279372580453383177183308797847985256666872868072901977492377893983313336661785037711625067020149070842692569704730750489829233209167432874437469059656716343438282059815540611058081198474015209384011509049792028552885749281694220383561585448170889339042224655629360921228152155457225911414208905620317455862339881867411340564692934696532913661371303786091096861895865481455329757103983013631882525916945323114458712685499325464831729998768493735714077059091114721763185481032431388689898913921993773596456268721914329879642881839166780434397085063100949933701069964830596130278555985815309147963438257285380073358443537752993728185441861154705572146874608342600857213522169067035191312855028825852174264955071503271811558347551816893672208808796542767504462443104963353856083070274952437072092996347736824303240677875841764745707667844828604737179909248687860735762680225835793075804172239363377402948355964353995269251659531680508190951752455233318636652398246391114509361503359400220047364190827477041896583758160122242718854662509709417887423747085106228693442739765413712699013351798613490162720209703200079821171935867244910086668969173704051676833913195987302088139779129366414808983097849092650785153472974452230445930146067001702960569850206366937254331554844875948042837748730439582723029247145410083127239380374143671235743298525458578970899864115222278971276150599801549516002321336888490040463327881436283782268195146223779715367739002208825039754704506719968286676833520626168033583730958540050004639939842362535852774234910665663370599994909501241997833691595992396442568103879679539587835835441568762243014269166165977360437700934905576079256506656592804025412673258574714769868429972126604313511482877125551085783876694180016686133802991010148974247348645526206403168043810271648658515106383581671047228047582805694857661107752442586713638665305759487455282755370915872627231578283174805162880910686703154463011933852563632476480807148164822288749668696351556209954536784435903334482450912665761444181200777061418691620267351491774217996686481116957056062053140038372548662293879689995678644163909958173769206001136955518333626693518042662256635163846757235619636255472000932402949050625851388074893743812467202923732774939339282494260439918992328672219673562874545484932209194222702430933947440755329100504298137211599357531114185825292384655919793836355995748316468420697456284474944048356908326924279861805611239565805715269764927101725125438941579389827520625840873654590777118454272261581961395594665247732185757270073195208550333222972448222766697238154992109362642093393263805290440796392391566111405250507276227857908407718000010503849225351343085462861722690355968987749810824388583148942037639665250984485677187826305280193328311268383375240784751448383110048882938858602632791225964632468830912736409043930938325105304147707614486921999780801845451006452725763548613488158488494781734961970880986633555649776947892917463354616558252481666843019831004865961743731819537570971535662088536084997470766981847697892328650456461376362076013185652083859911572997863346721434627733098434786057597588656314736439947778066282371884443848950655277163356937217479320531776373293770295594845886067165643348916946617553028794522428380593638066555162569597247506489463153080827089010836944482451279787394069223030709447961856302158847891652300921778924860715721461824589451450934771523168643190757723586275547105227568177618034686055311761149743072978091031248609477130413900370971920525574623917589892717590255326004127799326106009565291726077481942855144640886375622166407589240054515324768554522051712697356438781448838786596379491742108893788785838405008845277739256885304254484926593951609523508271697728910896905459787810054693794018622389393715979082658470079234517952699679258921275976055249587883586935473560122260584506747542506195670612324448809670580518670178616813051888682705257674477981291055666460514366675087083904195426272009249382070316623340290186127128558790043885449022885653357484447433467865067209683672642079612257017190475698269566349416269188153015710843373686429445716638708281575871558173452403334113361681562100985688030241441158247151034005450523255634562620436012570872520765109890326920496004150419005451677432735126356119872570691905994964531535341529058590246182424654896415324105935340551179026259595740095763850628022622343781996981631756189646742458504092014447391404653462537433711668054644374424401081812375221782755539297530367619304188258160011005714817999232896155920941585812870416079003346917048616571277785249025256890521069885235914960356944227348092596076061002320441455055673488524132281926521372168338261096813672552312973753833494242029071618338512758686143527190168226496451734128869747471900122499537983644917977829468244513427586487270555388775981395177009977353479774345924857736537737523764262704241260507151848808210494168013009040817596451570259597959440558321977688999573627471338509061109745363151363255833574430552351926642287946707262517930596344839144902686890322668863473059093141229910741351728842914965209778820362918945666908976660066500494925484738774588450596603149697886053214189188791339992526992368997614735127265397290421243233218099418473688956367011348143945889150629890632218661604404235181201424369344229568110198872764532775695099140914860243251067658546283768870620512481064337696003528466967296569872988223147953116625620790498065253842537715727109632121568072059449844052237643498514631060933383792532851262903359708982629104465581889779483852278090471855419193058182672509388675552812639620511202154047515439825321437472966769290274740920766299220163889028951418826521755502047985124648828698078326428113244030910506456386230801269134569548250015471954006704428953179662022493621806480320881841570296515212886018988773799596478134079606535713533478911224528216573554875574235348394288609547636181979122041952274144429070104597224330640805269248408991793652398399570799281562213282681814153287523274005041139311712837431363810865248711950769969389537458024542404275776616544139679940603225370274349116989663276241834896119331150302485655578624859036623853509511310370784130514977973530157052313636696967555164916371832604504757941929224533821650092076113922915751667235722591199426814729054924407301769483202068712803381194589019479489160377552352111035474170400221241947462075837630773387049250511399219653636782207326605045857571616818895931313037676294606853032318492035316513397661015963736691350429311585848042441705753812749061577763893419537285837788608875169534376681320336350809024586213972501090947468841878364165069458477436123642863440824547868763466430776958837267868932671116188107177514365431554955421234987154516493691971680202260000732194528695520082138656647735603405050201122765639587603523703632198813073241886844363342638196760122087641149850464810403984922443238564056666367728902274892864552065467514754809517489113184946179389337817306086106055006613663245552065219218404983209984505625121838392960066134719805270594432257831204419372515016881466472784789373142359252046566388497948841824139592518614937659829763908707789014703678815796570811173751013612474897532668980803479320375821642077716691805783440113663798254391327010770138006246571098105949442300309801505157901167089141054854327991632966189171794879532904458276173203730985752414447038681111635190840247294795031894609491650310810816859525042093327725675016899527011062310209813523765489662287596682246481936147979095402510304023699138977515088844298315876107575402744901637343855192727476073472042496577105000984992166635240545953330810131152475060147061222741612916262205014925774430298316772639574862589672223765520865238635049739643359430743664747832733310140834166090203118154971560661578538540624576896359465705974187453221409604611420021536620184490979184868916708301746739520358608797172662574135498112952067863032054113505626543471774451531027788835270477488934950715047433508502765191920035140296197712226412631194285347942248777157468620135366435823527331242235959256413969731379447079800663719608551801747053699063365902728510651412181047969429213478153032753503070348248492346498975539915181327919798395254170913270690919277074788458982586760661110766185387010885531716030340166083868419985912745042414257707814609668627579654074381690593583907136941812861327692434478188999545575145916041636678335724557208712615386372182200768476216979631944893510212989817636932796510595927557837799539785401218693423739863161215505564939094449498053903837196567043566527764421686092732116463074336281576507357497080041248869448453944956442142710444627851789475888834753569703380611686024023901059788041144905543665454371484608422504099133246418657856344486728288392753573208721164578767366330620122568716363830925735478420032301078165908163466932883414541886726182254534041836331215377248177061063784811217273114372978398646226957127242549386826766286418113792731175662524736557075006273563742259421608944967470825965121273022818286191016220501623923426881531970497276778334174972915273422293653206219510342633129532000759061964004905460396328719987567040870389194294848961153977679537534161773439035568806946110994205097356701758281535552473770070098563226994196793190307911518589029708695284852289310872736457131645286197620505852567562878400511269223823696104801211371241199593168235276263042515443854238099358999904201545266693007389361035633086591631516112959896087470174718431512658973326860088732319530707481243350031065885884129323571672396319323928778987775265130172166317331488980830480298035410676790480393242712049769933999709551247691445434460149589551361846341763448622649891162448392537094860540971133007534888041435275484285442732944113989901766323108183318987561338876020755039024725245788093513791894673371420182670046572254436208977380349025103159128100714931838089195247931558960184820561823627527589972203082965268726318282275695373763949530423643880190015473186756210897170707730898553785418556402586787995698523580573765641217233133617815809016586552113940391004370085163983035920150744987950306599074194295749060499706805470652841139878964797748492198256437442637494248955548562516784519005755989212078905882580557153823625675395142423442544284612241998197407771966717102698583798650445160586292779354622763830671700849013179396090591021579415970434536086188854717292789704176258856572876000085042303686102922998168462423507882050485359945576763306278308057212923857933412978306800465851412349376741266950594051116027886240413829009016874137957601671702022659064518231578869632679636532022219859489605607584525653968655390957794749295656015413514748046878141130111885675280506913595151243414232528284195017483520422114207152023532827194884484836607671644906801015246672045906896206978967737506269839075792178558451723935959439060048020559976961029415266522179036103777321389169758076068636112990857484628915510580309000068404019927097527754653479576644007691962884742181401412719622604535369795038681298472881370791859119921748064368788469466941248808841880605528685986071856085521564984532434868203390261688656050859921012544931259043737201103097128127828090637139622600756869562958331204028162036108408363041515079095618157514645832952426666824798761788314253382929527509496299320637814732046602188727495722113093636579862263466337118966185174999792003120952814717393371205532125502475547395230275377209938568283809754655371833049460961028556314265695997443963154485754411647392605283889448817897646493394011221061854118692252552990854899744722999415721150940290501108500853106988858691179923617278099799461012831211778027390901218705393352741965830450251266170739800541264426791580607637846154764638528721709022281990933044205220226678794189680623963322605779062847185114536266648909566551921472777088181016002918107103740667597952924385151012913873520070402394932466798694248045831124386854575979845076552498603036645534550981268402373812459057556298031025552409367335135575953977068285518382178516026825236904672575464258820042555431866243709613482836083109948006625927233006301190624962877401643587232750065487486259733861369423717659268545062726994440443031045007974989068988008936939340861540866254594816905971602678062526994183635739471285680121433979997803737852448394573085656294214690281136620095005834538477076081460016004688840729440645719414296495516406368666407855714970756613389343392205356662267920493785812024123110734099743273682192594927265513423126808977256675009290354786972489212706276202428841578865420286578965127825361642770856791649598199220184993604584772585139243223658472424939762299332667814741749868709482542114954394287348242239783219726859876338094596029774682198793517673327681711426968757451646342940217392778456444212494572553768952472806915590344759834810339223304742461651025324633050128571697345071639043153552617973119436554242482920286961294232809927414708991090898790601136215962497988600880711783624298738025663400723158566009808467282489050442674916916668842345552822816920166556175022318477416522297925091946355511164724983740122200098570998163059032872626050554695968435797013485281052058843654746388937194074394782350796876640995077455047795683722171687356937165229253429675203755899859344218043624614917456307175835466753280001146971075368595271021271233115845470007889283678930631711518307052495647997305111149556428090071108352098167640034601486794006365139441958466585311545125434831976405327240461484503420279820685089719107432658579795709602337136718474711134998359557094705309514019089797565624782769305120677712319801607365543053183438119245948404154240667584377506745060782676644155235420417086768666953792065763092923105508146596727980468255307295707914862342311716089419076687124167994662194297228349192454033948178098908003903564571419135870175220402032560821404193935066341464570813251495909254945169835999338321250299661065508029674519239142781461670339178801283493573610574888609662779509645789738423749664591882711901794675059566650755636933816707688605448885939457584489853428305169710998357402110292106962217184773674697794558978307613575091867288594052699698298220785286321125348146088477554231015326469917375085921625404425160326733643340662648806945556455412180120652498232895278567576240705831836983711794196145723722901019563502423294404765270221162782520503274109830645064856919402135725521755415523627836837898749728241561385617318073646303201575718863973193843457807734287063758047613905313277332278549757569910419167326282353806310823018309968710826584969816736563692500550989480638908488617286151271237272423852445319816490644816622308649197076418029376847587040602842645291006123692979770472322065073943518784448908525364958954908532301744179758699025160803588553019440029742018184148065183565860045703321523135339764112032579470894576942616490790585967838384248699549754737117858356840031146645378434509046195659617972735314781848162712808213631330131228250452041933771099754733923820615638599230198830367009943527221002226471147321094923251566956093562635549770215771319746534280334112433061028439521135340981137047008398480158161262505895613064343771954697879294332717699700268964617333805080010596431955085765742985585757258019556911525679082332344401864641573263576510692058901195759084277102190819301276055089807031335861434317901911595458006360752706437003461702019580376167585823504938859702408239358498497844488457840815231982554062269832628998055539376775472696835207006720104826507115869237272284172812119880965473029625044144433517948947357464315751628724867263520364185369799098701117730203475391692842354114446584155635513495462340499165878598802265028357649635401781905312467935586304609797446559050608784759085663835290885299251332356059197112439937470400697882220129216594482039910089512429601847762138071154540441850967950465744804520791890873108465519909047206668471398209855209505394539233437450899931563657690388076906776986085538883781462415424173470035734407149353854205270229711444268203918789866744809525073548122123540058900599050281933745222938339446380959997667696333787004968209619445931253979693735290411776120270019539061369060681676590011994022804057747526482583328497690408226179267492246583805547436337027607372196714008659585353067571748110964105534493064886670998729087699083804942536706618303110477135973253051570447934964051409538839427692712240693267408547694954293796097517446405408614017186041932333530295348888923436587498035999956388949764606095695265538394126949702068579898818102448550242565434247995700650189440358237262381190045486891811256873639446444906809870783351161108620796199244583130727494752268202751252264301895981252436182432697968601237254063321317765834938787521298792674067470847665630542980060086802791414917964551408515856221178876791523461949477023501591198875171491140074808505665899998115747065047964746775400658023461976608370872522080881332259845563223775907161149741490630611679805663697649500646102945016634615208841629861865423502608709089055995362047978279852196588339095630640205967224058320577013923477846615281155092494178277782883440964913231542466633509270846241061629632209133414334305053874906758264830600120311502046042293055357229848397845187016614890501654414632346643541084082508238414172124128957108380855358990183966420376659456746769831459383600367220843134062690839026949621463354215787501669462358430855251175041499862049248366443965680733830997867243665878970673012903448350528032392009201712234732656321268375463619311122286654270373201529381880590474616048382700944957170934261208086593342925898880265992905918603643874841576905738206221337833234756979685351317652697215045058648031528547008825698001625313219474620319657864747598258712552623948175050085770119821233111865868237185699994869045458396352599271667877536780263258249933485455226814195930673911985528988478904188780991220898892417731958110514994054894535104406628351294116808018691261215945917943352568058476319733525759824744399461385559519814402862754840989382342233749724881795408574867100983406514905577466331586596675966538371330644258996960787546454057962905938716950081508403702992920328804254730691806708735578548520998787641828245979217668731225602708455417875933011775221080464012627853852239122502145731616745214763080497908028525867538451293259752916886965271264679171021934666200582906956337511076423180853734104902327054016027664295211651003555283627325668313839165890277938737048757636508298463479296796326592769417623840159970086337241910473231038696698118846474409367591024698203820131523896764039690432228356473703202086953892896053272659333252631637576329855059055077943311633624862229542168195982161094286806185603055876029348253447329678117347399473702000355969409507620059779013345078746019694361032106200025249462128974235526654642292463050621086481392304976092204963807027691558797444444402207455224799845702210244951800512544328628821420418105952211049803476299373279722682598078154485353064204066171247142863919140590342349110113189191870061619686340687408475613984310769051777159999016137621003006619743674122224133312867965247076153375121187496323799984238241495442346290368857827907237390147518191014819411355655640585557719859735978739760867064014206683288555182035576531680388456511704196537176747435616127137898771855939320389949707010015027640556118031270355840903255958562246425914510515288015820833557822667198849284575098587584701462859739871614635504967409348763604314601698693382118263722569700804214670563643442257232243362891841421359597916838549367920807286600422706004622315611203814933804180431287049042100870773864452656215453518132770066530169678249228259087469644022911166885111476444650713956863533784141638334894408774021868766632278806257787102180995654612411675059074093061679265473333956975447157166418010812661692904606910849035666001451689700972012093497967439438659062971631438669442883719945765634749908771382474245707000332553928325683658306413366654994585826009339724973997653201415318130917604437516933643444706453262842695750722051608458940318672967636880717896398561714830147943024260527514818430880612474464417559452891401815898402165960032906530366576284609127581698574445416103836689363455086348184315703015229570455092711658628141205244699303680395660438891934835975342778750194544064021335358873699756178327346507610292782651588748577765788060840048514294444886489411951131298355107169792383945082025508999977111923904447657146583358920094328797464732375230236349552103023773002963602672989894598437598276529084718090585769687973997409850444507871669949491770490908347566727614625574342503265867042085507619244639738517262673709101693938477564091251144643642124000760918277029467531592791769800296216899617244553152009828075366509376136793397098888228498002224399073412673704925267177958157867685982315478862255528670871832229125975811990322857719556953788377541844550020568325434622280868580867287669193324405952852026763995964470357281524863169115515032522512634023688045166935899374948375077544813273403343819739085383444203003855051519984268158944855581116510573447318818458093964238446931552009587545381265486802078471026793303364909368614972281595042063122494281621714663349268836019236575024356727958890763124799399735439507378948464085668340227853314379786726202887404559298503645805437803209294643698381626520184323508314914792520804151039928061155291286797522400494179178866210424418372561007735388365273807786576682220493994314301963413291397443230885609097246746422693328645043438540793704958060118341936280189989031583495783632238729948422903081680323098831836208859590289068093695018558904115915066674250040163090665963861867439046488462546415440994340512635040288265966961735090176841021181081439317430375468013404166324116562108706941495473736653355484727516327897142576111057573262399242902431380427395781674985845085135183418778393411764379447893670695492823868969895187561649202572864667595330044701810052775415600787089221246856469053175154029063403694638259043796430611886800513160894704899037505053461968670504434791316356858498446788387797649600902547231139976632943269785712406844488994286760121774628756583011524531117777125301386151599682008745400221368106130029217873216049193332180135909103218244668008495457749887353775377264683465464114755493970622552474707559307048848770656745666393339230178781446829654955335569417643633144645623667269550451357164295848980375260427007173725852255425193173448062028229133603132859060693183682238931310659396022547626458605279390996154961479632734130984359755159523761364120703070016671723701108996144892871993886469223948782784428642172248091779083786380705075662147229991647246958885446552280165995837287319584626981596721425892905963945326346970785890252586340425409542579274125251362802747255494277946595463026526382036694607065607455978059499265273849298755913869991581619720641308697181491994210511821256451087185977471054206879767452353444098576260056855973257941608290545296794468599306133887892392798098164031018402437646558071300827273272730761636466148400577071165062401993190944542696461995316333096858554839664864614769747712154026264111367332728853811733098288780018429478111153056330782551128433103285351469277083943137189816074083960761185393254992769476409229157666750119280821707326116100874284709051766192199224637694055633963613965913002555801029132934227922187746983516695006944387392618537656921349442117077708093930898266557521580408347966997862163337981702245544091447834670690606671181274467980257972690148696480951262150464622970925886245376623991320486244889215549140176278699188511303895474127559668596833279958700945014465949295740693236811099419416472178793741128719068070045776169041661476785803710954498246936060660918071608390818601832718733071478066133660209646939176275741374151666231679169195713284400183399415032431928950549236301235824646061669403417973952862880745301617465233404790834936371599516519417937967962579042843388971290346075840481947058241624031034092069357424521772496513064535066854559616335965901907456537026492671209272414543052470387972225464945797727902211262748959742088473443237402660564758517898314019940879017907214707493512331360309853561582334612395503680261961325748592801759707227026458067229351806602000875594391143728898508966792772913367346867653930703144800034747801413545995433380644442572193184932566840264492196959551146394031505782703666406117968234888224784817606261919962887206041438455773094254600887359017561394496342644757960563561518966757327001056091118328307951672777753236435743731172745176392607450399777166599978017909975617756107680440953360592396524840606440154703763815227248898849039032445555603895977538989604803427489260307766502146058209096095544499435491574391788951993848999779549361123151169604711843209381812689173434764567797762847958117013760151470330516641719414356395269339118365058377508064029454390908645060503544028302129887312953374919935405683354340954910012833500212815822981951186247897708024597805749001060718891106404401372217936334668908695650994230305813674276863862729059565214258865451942820178920781752475775000295249840550053198642552798485248163103733947084555461498210895011956907047181134278319322943083679290288043213851163667700511135585494169744875285266050288857044973490071890318463368138385059674075962056654489819266346561070441814361096019059952505853931404830948552602646244443875108582759172773240222950697272138880236066678235350463455040242973961819526992975793775210115714072257949136363619966929094854512184626325727612111649335125749103754428140336296034829963839848515727704359819793392565575064754820160720774134767128127229367824389666547779904120370335436745728011619418680969797117458188847722281821404007714667136117964658747142574253172637046443425625065361686593245558979598390103245180076676806461203177992593563727140181785670688657829787145101097195089432659189383023786478618874957087348586899184364064022741521799673379906501814813356640953845455611466703467044775781510214310226233832787309559963703157778857143319170267688589272369774536402115364832990932120111289571062535866202156083834704774485456924963239677228232433124460060356373675048189059678456601354293985553733679832465670543828268038781947099260269661981076864646464099923796845760401129482259067349768377144325486175629735637895918562764527026722798848865305993144002884503221804966785285465251812692585724602052498090750381513593004017905704450078662776868295052610139385357922828850336005296765183106391381435310238811587716605470901661008509875181285211591212579217738925310341585383340213514045620088339790985778817447648667577588331004051492732029959967270241336359875735751310873518203512653173654992866226175655825278662047157866868404302350590028079561441236582355418544777735423126072133970937348208323883442684202374789886617746981889882068369989361722226250260798582680558087531746411523613136216228684652313628035903210775170895347367537276312380395973193916459651697637189964279609786093017076016808043864791065267815244641285499342463708127606423388037393465092934447077008978711087324579339427428795634065223868581776917781463124766861694566048697747788568469723706438067645477673347339731924617988242386589386219627798915281827077725336987039072272501283096307198844057296422692696771601084669970087116120035847601826301322897659115189135527859898014957300837370772461107198487932145862628358980092242624666678754459007621591029958480309455278543861948917795130479551117971852345609447265730106184022430303820047461039813439163567321494314408937988792287741315863868790422916568728853715557322745120677516886578790167419536872617116752073688893994770125826281308322155207764913358281140250653284515122699009252814114618891095965499249799387775961846196138389628083466873073894879184123109973971857755341684600298611375700271859881579280516089084807499816920949623436708417639482397543812688856348010364951184155049483255540327389099252210935701815525273140655512179818912208785222285827396457598459023252791664162646595546997416046671027498381627849318955056410216419948925230326777029321882076129760179735847979128968550958866007817923868058509618567525499010759076429864820283447847484619543486595464572450363388605856714040246681785694382982022561261910834987494463189386555788823017883491101072049563900359319323395983665933412160877231886014396635764799729939405155282717486366259683270670607688281990845032139138873953966159648350674857126562230689729924617066379437822360269845251609959699714490582769731511522173557892915898669168473193704588264163779029845254521502094785432394293735376424668443435209310375504298872110337919814823297333270572611472845130432435842976020030795369676172250427058578284501320817510513490228674724446083023646322971834085749563122851226413329325771499606555482847656580818616025484206747655000661835403120715827297166549584813415689268707719645458748322663389179993477633617702205529155248312030459885859815961397876591476834861862841024885750817276931121977712877685250188591377779753774185292759671401346143104379133276965056855914894343291715435147334780882834418954262072844159857388380950208364452589142221864409235599504260030614221785427496968257276567748777765070595477492080770335391801979674969230586394963167732771958181474468417011329289423456961881478752265688912721792246668847758647512587102809612515887318194503663560156868374970842325154506786981900163590901971436957900480960135764238150664820782189314400777913030255844769729302340400046038626456108096977532229525954375818331621961716164060164979714588268987526535404790315124411353171711056185786478869117298559996791332309116198586931858145653919241846357193819794940458683270740053841019008314437931179861350795833100204646782490923038763969412889223570219031825999180880405762598354291631610510918594477037644151735341302155146236062991885261454764932298994744960417707410648530195510271311341851740230786528599137865235026647471472695620427771730610054074645260746407952491827564602382217034166924920331135413698800441365052248224760902869131440951814527130726019224963112489313991130485309384259874443509764107966222620771816106283996857586142618573584866314833884127126226224452391342850968511927604143164603675442469973415231646209087342704921533138501260810064239488891989995622315228504064054519686098393304447316508127490911556277199519771082711340898247490046935281578648069198616078256378337104190432365776789010226978513273249628420984285355483987414263153386695443071661939182721254926228024068279700255739783096235182261812815986278307459846462055798339207431944594691000195015696397709426262273360013367027570545550693380711729355533439826225068522684237239592697882209521086615941978459919431364098228054795937712449439257808221265189814520136326909721030746484953723842249606255764852296668334045056152152950052678856159571751557167278242732057225192563912894845088102248106291976496284871063219340567330765940651780052471787125442333999637649379927893573051392506232415235582854301276364107960709133347813067747427176095022494866616083926003062980074481648613239149981188634381081595192401234002545711422347029462558660439796696391402830209686802722838191291599269698892092069658250670167267959883670330383056396131480432167593913562450207536970094828032856660432399079287407033875778205182710925758233166288067986006472165700694921905847453326794912426772736925368506512427497616501661775393503376961276381909126933567278983166082604337051828466848357878365482525195438407165152977405669222565082242515791735388861690509439845946206473081208585239686232265214917115656832580599486750472436772979770878817680014192878679558643664446543452248397843520433225160905594873308652746360482084294156127743316420891254757281790638849731388972886341348619492328909269285605683801444317117474937854376373306249503872115446337652779094947689978801085287707498800499773388429828783503945795833293999272930486245110274650729903526879678716501762891234498949577864027607420583165690670687382321742032933429257549027709865973776120382462266129532805658501157400873884021371250838905744372694059675262864327913389876233233935229806562823026291028650831011512102020674600413843401678048236851932590163116642651338801457230477865144851133225209104363706321651829235072610074826382755159601576462897498079163704192291187603205765229407492843735312227680944050988886909637380466742270566610130409261347274928669930827192505986016631404600222834664779990052893826298817058511971989351631415396906894372634576808473761559931427331246119050847170141340392348952792594620091816532078766089139229581625813229555993217361246243640658318279574148789716853984700386081055509307121502658204477526506655652902303633570753282829710708916699262986620135971702044959483888552136570290233428507803089604764426785967591958636126743821390175080961250450126126366419931092738716012871674728601653070209314863923208663433063268299811586040000959652089324893545292755112619483930531107527156809384863312771471300734222335754729102960647886294688262639326716572526468741400128231931813001590181084768111313449830596515615971700065747421342934577520378096127936507778241672050696487070992375433957345613237127680857288579073371889573126570403214785181197312227732997998505591827429346583254562256630129258704196268176561550820466146906549775882137351684015719071423493032290628326436776728279659775721420090974001902700709459848118482988607913262848851456797531616068991590587903842179693490815696842379676238003228242090813808719507427113656593047995359913884345418788700262092695415138792962836800548425903461368874172785654706915615147774337012426066000759421083894369477389692581717621242504230023265542097309358194701223415654124525014803358007298213618134003771472615101310128658388577955496201747750281314136067058105081191154068730769224823968874337416282419795008285416891647602957294474287691491803150742512439013661860555538450518965479286006369314071948478480561889138617421059081834383415757137210254361699540319344220069260713440179682136984634974875060904207229092635413349722183824671572630217105296238471324906186288804584607432735978898962884409132171065215694207849754775553947520461285373186930889901357445050617979650021482758410724524757732793004007927999891891256750088004998271655527684260412383274430494944077610323336480104992621761790302728014232872418624635747294399030673811258824038022301051579830498196044729293496919484851376828182560583030292864440327076206608024429229970131946463367543617669389699175586876744360312775992719904407835174704455577865407825783584184308839958666444958506373081862551471617459556159500130645273888739793246608869432054093242640420446443821672935076898260249194998642742334898369556030758033159802531819740193599959612537455921595263338107396772357298868436708070252101039849546063725943650852289634579445962903909614368771729057298954627877314472849707443131387015297753805242063287704370178807018118424184157354849369260012291450552595636181105443860805856515301996303902581603488457256630897492520805258530599242213749583010088081948002402449128773423305781229752798200189352566934184209594586959306968868748825407914084325149673988803774419893570251655239726875375398788544268926751463519542674405580814891375361577317252683333761138750572610200443140949568151514478237784316720992813953042070747193416187954374143231271410730642172860101139433735853580570653969070430305449796296529684096199698162433089445105625944912576157189510922666361929039784649263817805252319323694449632397041801970338662634919858752244911165590440704973176228703873935300061380287833022076456130002031451036753371484991987241708753244860724527670921631905059290648837795050266155514823270549478383439848949517253007527756281452364318453152693897930307300417526844113281364710604525346694611558748386436678181041954358663360408036457672287028766102533899176485477549826505346216662290178268495298014646805708492468667736803841941957829705536306611559961588281655895675936677168284253266285420911236731348468135633770374641906410135226561456975778548725593160796692341616144283125689599927420052386370886912498463131677303232705489889637148317942627240252364613248490479646856074359692240104993105602996085912324197598644633230192074789264608988153669111081442374301953319764684284472939003985647836216962846641702617736818337319757713146793570103513023727076535107399555003788471552267731369300035643764735086291254728238335676718965071706091441489023429505474598211529727645011007268318475566090039111309420186763764491854682345188896078591560622014516656482485667024497391884596482862501600763312864776832204977861032292272548800799847438569060685063066880103129473982547150324994225973681267521773869051096724042860535771462661540428131143547510527118377917681872608515492300719803176199304553843205839525233356999458345565026186355787763563038968476220952401399361750212689513346166896852207573857093090323772357396386455356562278804925285365365012997604023086592643630304812710548209620190607088193949323078045331439498512837630972317318909654252772484750393964638372518150681223020749488752461867955834286751437163501069820589718452043786489787765074132031716972915891271386940332186607369660182301220664797623478649631714254775567958920598311890041067267461795448531796557595206366060523334491591542555229127223960737330656107575829814016248186294071363419864503100722526746925324844613700809698724509368941615777081299761440645382665997729734076327057270854357229638407737953407196343129840520057251873049207270475128712109435034253210527499435075956517359365157949012252520291753458634436576393679527560657374962157760762483059465021774742208647934650804056200025739619054242216762267045707232732780722440599037588754806344060698507348184717092676719401641769688712440781656024760927325001332765688623667836437127240650111569088619829181212897251880739867105520198544304223805681652802015823706484011616977931857883494144604823114250889087317662535440768261896627323039882078318981988028955450402972781974215445472523102826748173807013564222257437578289934119627063652211294130286785786471929130319779046456854738388261696127304268387902395203221036152534010140643010416232239483854848619905877183676228679300155434306007414148002092830422472779579469627216211899533965985511105818977084762655556989351125763107280610872559553663772565450456056493055155995660550767898460577984069811807818580153272218187973043140891031137963794328401333146938029588045881092283649623699916376764906491209237740208056295762001945864246812595214512513902324836085375824328072562765346747127518375798278808219711284002906643138719645216816184967392801854289523892388832097856707119695177832608903624380305311460991174635624206264106880331537052725001770879580145174266260303616235524380703115866555001641040038096851695733519890686663624112157510211526334512776835948137864563616480255818180740063541721332995992429589255231597968046069242969989683961836232941874514527722153373116720900487113950265616209475030410824584640995232279523202420706751270153762284815420567902497512796472344963314520748330419123874077488008514962139375372621259883962242452714255316729215470653144832241507963768769407135760187494093345398788214112823419723944429627700372483169777477133581370797493228768377914132328528186913053574205307339683925334768613895155376712541327873917835966286009697535552892633143381331188369561835847682332127475200062133002418681199923581174637502570902286025410515352809985205896262400746154343240147822162785856542870144660894352526560986408643829009130504274130734683268639230707901072099044145359741122732197349613109801976099697696403283451324344402459511025064854977056106784782869743864711239614029868616794056255867309814115576439980610907298125141902868231853076187261466534873950628228626918533227087149402763792716627386054165900910228527244679111369665795628647118083053046016461143486926357774239601541644999815142966092609449912838251401071406286036487428547471284682108452195791156112861595894360098208909580364715169675345922714223445737257119824974228019437521907495242116012853136382368137248648731620833532003102606870240521798520021316001843671446124335882298091278162202353383467742723681203889904604045625430510083129345135524898529209220365413085365642204189857903184041907880534425942600810743818348178577533682009162259326370735252562853306813300141153770659727447183796347864332656468066035118563782072847287436118505986372159452258445753524341682798753471285169108457925005743698186871778998441876846831790000702123094501515427257483827109189773070389219564971418118844454223634877638671158186263459807788255766095135201330471931623336441432263728286984236597809704780477496279545302075595386309710957726680436318218485779691142112738739744035425051875160972176048877007302870470425582074008663181217519973993007397014023771722047209630226566734225963816098558195919744462424055092449493222382557552779770108161800446429377750458565633852319078423560269340867865062873806537475010245933472644913385712623762249159987287689559519992494613267420162078602498504701511278019004279041818710726117383506447368757655663263713523715651218691782697745477470008782430789205206492611527179539314236950916481735056312755206339758499547575530103962471215514973387333917643534809713552692204007216935533327598396844199865398785468152823777946691798019609835537297886480202097714597701406244012140296175482586630353479958993388606670275792883226218016371904607579867098306879184413502068736192766809032291349985393052657456903539827293653525718453777570674731321646614233093244533054768293833265987984041742506370180181843875683515224534268587262462669460560761454106981368327869592516834507958374741306585491472783350570132853273672592223236324406480792214304716828247895838783308784312025413427704400755454645820194450651110817545508080171574474452611423693001511951707784511137231537977687617621186527237419788036075528107433712354483281270607596914387120461468896516911895361167966410629113747046834435548086561281163666959296793045742768775705005965596723494443070055777898148401690331388499022481112872789140127903949089397880648383979033259094822848766399731944824133502647372112099268497837185391318272204894982034457800690613081639135792817881865352511244241199023500987018394941904339007296179323071559523014753969930694323672585735629942019473073129195075082084783079861423739935766018868059985209460687554516996579740820063584602530438091540777755497946587681501033938485597340109845672043674499614065526268274779348484029846002599585405959139596325953051722327449600057941904452868309127716440671234473501507919838913399483821942812271730523002015062876138667598741251073652310265544637229041575094193435768451960150128883946265721328565413744318700262002430256130886736046573275175172411432833463302581414135111047008416596426980993009607162265741970985962519774339593165648525546870149577800469025521842844171192184846636751068177589732941991007741862418704650785612261887759604841483170455082250051979393041058042630588123007099561649934619488322377291123682337732513039065677477243031562430731428063458506444255000335335974923669950134011947878219695393636620915888625153929911627989592689742835735833288499497308779214135575143387694017933825969764163331860352132452853179102117919875462408467876509052433110023383532132094515600667911172138059219479825837393446049174675357682558451852759212736908619799327067345657402059375938912678151452919648394947612655001225953543003708420732322697801042527497950704741205811703688524853649585520971286228107584477854670492931995739423846593825513335433969688277466372991081729060012458349634400375409747817857804134853035563463578987770626923144496736711511699978933116097032787129707869691317284643883693526015953894476649814235589763988559730504053090838904033175964442407925128994909212869878373112404958455004654715345876630174342206100338559880243953360356550231268894363752351276272062609227414607720140204096051709084502946192663565672876203988585774621417442921010393196077251490483810626694270499975098508374007227666825484749599239184431796450114033348055611678784996413489055909464436119462691828034788404803153000104340735994677775569195622254890700012856641344533890535491693892333483380024423282788817416889481389554079534112950319999896774226653091209414337831338545685435139717138708395330214909516416672489767240439865316148809178637290333607422568608323040333496168878711755570766223623393288311529946389983870412881644862235297514708314946212464035582428336665890441850606278664825141454746657879081092017900397919862971348688601413444190661182108681883271473815584593678336747744133996430125163626816507397842315599800005976495870613939966880028679166331942789487834562955841141027669686477634657782679946598327597000906478542794769839617930027018278873561839194136098404340315492075226753222473684244955224019473012763278209028970967919618245871842705231160048766644098940998045100387629166427846569425728559927880316186607814404930416247481615228366500224204205819222493406327688355499327695099507603028900335315792693405479010718465409261631783377507068476393247165142920523301902334454789030203435077189323930985418218973173579734858734559506947756945954618327301217263439701102675760000028980064493764828601172385369048804029908020682768701190615484872780106682992995179003597694919153854339525937645159587884736894648058050799831981642181186365761698968353646906963790527691702059299123696083279883932605787949772321672265510704154207467886589718578611028882697838051348869911879745423695244485765964351464180541563363595343993765130397523562484085686565958507265543679621326324100947317714090323626171763936332326333471718448743360824879082753396894629883411076640323891600143001672399407912693435135532660684715803144907789755101179710158002646269944391860787844819333612398089714863904266103196726691953549819944206518668639887867926833926940961681946962266478432629973480714233967081367111116096294325331236331269956205198445331382268913855287268545519565188742587354885910517202414280046844480421832936519378804991195011536553612114224101535831152627004683713278755322736454740578524922284868404634910040026288085853280214007292908880946643316014324943554075737321130926223788004545169080660606956697368819973710429651064179364296895389009686650682710346603535007597286721020752045926544854429723334958796049283845180529185586281733495122826236766529244531654345903317209629910080999951445386043224919611615915781812955681472045515965633045287101847199608206761675016654590982512448387167121284023377602690213325233398152931564265767780864675318178527083103966568868457747015520339324916035986418681009343028749720810428617812750527279821746990441620958621776126911504453990886180737795250662504122713248232048625373570928096099735185015257534921782401499694117524151533072328055115784538251730843602416189544257713267369857130947637201437985690342503810327693341159585187558162641260113357532651191040705038621187891431839887648964287513817443075068204426662738741125854995550075913277942485296607472107908552262809965664348557369265966334993794924680082528119157061126486156398259780437994586235574849801379712883127093537663722859322472917958658747725373627341877805370498290834885073679819003558212143196114403311260328407260509038080329250789109723871837157974410379797003133079860585797196014098534521886531815773479343017411047199718071177633993163994002519095373899844150008019243739359626917974047481596699787438087097292505636066215091261744976951294358488457702007552135358505392865060837856450855776030375560693335483012120911822899855296378110316302903830720544806622606682550601561156708476039334407917560487280329765164263714762634810369292548941337324682569805911381378626176756692812201735451415458113055649661224704578255902097872712696597060113789340121334043378378183835457762395029909626993782903714625062833555070476486979661995133429763782507790878598185412248428784751337917034414892252820429232635937865237086363992623593068906554035165314913030516692509933161490054577332430702055890718351257379466073755163676080541472617708125861925724964103817152723697232682680129187560353921425777949742274317457218660508794430672346599932395628527204593369023041358526657810769301855749537544445459131939882201889487627653958731483934596482998952668840626694139508909565229694365174192649646877573169875277004622776785740545144845156015869959233679848059015667975068707218335700030602570779588201334584093282781163318239063486138583590820773047279392385467584981202810925983294427155604975379656421401970156621382147138723709124855168522157297021873433948488491706272187731915958765076983816708158132130842569723940839124915049633134593490769243264248672081121496395379243831287092694813033858088211479871996342296422425334268866524269410922744174043203781601101474079245602767833981281560903335594816277246952905829576644620833492283054599554704147180985519696023262719978711205116299802592190483328677459902553478092234095387685219184964275815167481214827839036807738747885024594824768417946837117190197625540621479883221474709231529951676821313801925340802114155469632329570759671921524878734474448767108144420277229067867080944464316369786558408867878988511373616503425261665587497415778587421826512075882515774724442200056877050968027347932319794999257899778182213296006064779884046737299251577012511335634588833681172974835954880963435838293530723259413921668019895564949792545116293000575952050211974532544527689379149149907627242048596274990694774532670005730782988376230495091944381767833584374050395371268010288316043414297064611637689568226423065806666217970940577920950822776665219877451199434406468463026133372110930672791243556826451923336896194193617318023047040523685608567467243884253193197962333776439217579864238766819376608918418179898924446177148705568299658780544243294041856756098668116721550759753766560318770060046217945582617178260852720449337880287179000171553908435206850957344568745148618933076665640645012228530451409928010071940181923391056777421128446468404727312116937521573782852986210103343312619061481348386882094027939847082079938479063069137998400664725108876802669874605528370524060184315993994691825857816688900254232037284027676699503421786290669300847599595319313815189791651614698734854693289002289789944468025625098132643196465675065874919885416452960224423829921291212955008145804978050439576889902723555701301052523970393792587859589912917094984107293352615031186660119460098918010874882065531244705613853863954782140156817266123109476142317444188103560012357521935747008351396638844675152767369857639536735745151391703884118292308433801948224196360042960662149338098261578510238384541746281480207949109434200147974285834770848473200757185062640650430151860356059844811462422804685522199500546760056631099231351527610028956434563939877758189930473195298541252943049858232951381530304296392319211008743030374940451511503858418583886672588726708282134899547673119271133067911233568921760513390739255295414363927333128382310659486511632558719462583217692780349058054634474159281444077370443851617436709497340493099047404503520383339877366112089513298685283289141567969764954373131620477845506794851753583056774241430354741466552534035079059901662216168546807922877506663298329263871155857636322896334340126609847016051867536031712418239520220086224641068783955520221258892861549885367817040087616233518297997988898841377506390214810406369249195659640693907500735048315681670530645920573370702236542514223531114025875704967847689725047658962676842317340674318357096348722003465015070119866839326850708605603190566054780783986841334737818127290681530324705961966709732657573279631549648669454769623940839397330908402713366170739189855742676600693036890097743655659268088874503315877928416333158173736554872953622262688354507508351695547674848099400032936343766822306107955021361064786427574446268399979517537175730550773056759728382089618295872261795001350762964316054026880862170372803475632003404279692378862399173392958158924014561966489292625321334446321809983311783326124102042099943237266608863300163987211711064275592501682094614182655501700681167405143691145864546845086899589309052326374401409573381010812609570570584464902741975715800095365327121868316662714568294245035329300440907330036177481473058959593569755862912218840318916961814220084635886514225873929985815835448741508939092753663903937209550501152660438069545770522360216124554660077341806942162774873414330947316808742426994460896524979884297189200081765812475646278367370847039752729348438638222279937839454511502257193982179359171044282464237515074129975829446217308195252569280085697435234090719666000270090889101644971359731101763555270716633699312080464920280998911172490100638884862772191599530020059351687696239976358212738121427692448045703631656307551090072715115479724876993969540753308618643759902429972849999401750298313936033673411089667004873094026017465672892197128023119967557538917026632074966616750935473971895279797184581176119138747129673332812043833872814542209241445376047401398964176152312229668876879494761513387039466087818257039860230354753357386666867398545785036177441948763955459038127283747820469055093271258987943464226428805851247237640894780259059223968350927371316160723475769689647171786684223805790494316625641635908399637448897508892756009621506221053213138510566459156022376477858276257946545035529130722791303509297011718788641397929362609277271774915116552420166848976831028515038655245986938674895963689049626543976055168100007649293855956377616045405695157328595990753177595640507049253276704176002583917786984497966705126684918652606184038229896224006365514006199902398789530275462586890567692581249786157720990257205189518795224830272330218374268979028162844082018171440026517498818202671611695200541674185788159261461672298986233409799108726983928271044797353601214339865733608434984510931391467911247967276781019076179563178726584739484475793560594239926761378825272612595772505315451703439857801133581743212852529789004366537387376896460618032395068005262747136794036132625656975104280277405539876280504643965760566781491660313046881839820718166996036418753357537710871860567896199424673159121235363673518636297363532241949772429804455163327913945279967738401991197526139146444115747213456067718811017728928424207771467623724922378557108585778206655453659117040520396255831879072042328183444316430182952647077088827145887193160747344443010805161008827891921025910755128680401577688632867186133545705461878711242206891492006188054795243957777832325432409788533077788199174605962258636956183385040692797816570464093859992280772519399147861575557678882200423281846649597068014312143206944540536418848164531382629658381399140675156499238417819994402288666675160150606806344091076454121364501162710646617172137747667544764720112243661582633581382362601636701140539351148556473181862522907511802886763725902126982462530116079296513606680624788085472182748548481626254479790114207302818135147149291855094241583168710631137802917601566349417177081482549964086262043252083675573754337115502400347476544051922427319377335681935329795546294456410514700368725006503618305897719766544515959193665557366340417282778961891807242427311030749973611696887739431515161109488112555361361245511435010499780866261670698033418475233348838766591383430543541675941089588751550848284174792981868718464941882399658942036094548523691570914639144719921756942781585392113332182694987678088428275447628395015611233431797453366005387497904639112282307096754581156058839876146717641394887808529946197804708656642934812171708174163361685970919872729458632277213837229956403293010830670419822415736956006846171428158033041343021838626761461982779736763563670027362278832856057623721146849288754684583527514677041467790285738545949153969665472544968900655007592519680493921909476116852691662290035595098160536966228222707879389666384477997191136566098062719983575723180662585849080991294071508004430085091148741985809641734809743024080638093742793554412281050479278313177160029511763985193357482394796850474193857539419337165172856372193024306782264389813031731303428560343678779328861474100806139918025535494120047663620055646571596372992190006830074022546261659526269760336925513183133149758746740369926738873056409122949288791167928311922269661655621573160560498193475358454132059942774577268060966939016588107006329127496843105699025787591311049002886166083697336031070048285880019306415571829679820725411553919188115065890952797981852834957226854485537911605015493142260322940771643906222852595993514660393786521003164949682794874962510114084466567989576155928597915075464837840313904841373514305334019315996932163987873989790044937692832720561234552992760116167479363780043911535758594133173345087101993621627573398197569673859089494409931935456682566740991223568374306602525725882409020747298234678364420532272544232997434156847417570322266287542025971802684036082013845745432602538136185273775486540141316043005587869386821461455599533258459697926161269820303639110737822995511330483783734502783865637510523534284433223634250802595687532481498259933558360296397174723556638050985550623341025804871449841629675422724861522953120994821681954410760453199808853731854985167749564438365927525215398090768749528657463419488935525572679524687881901133481950189352116301009642862672360938666776999080865397300199461783700109311017172298989345268745592438448771595449914449642610257334559145594505605456440273216698440624670319460789053050509034915488721726006481654843286862708771544433902355435833115777562961414195041526073848126842364280618490436016241081736819478610895218236960732138812670994980599560567278486881327506700158597716151394031112455757429092131431746317881048679186708485334896879952809930805201107969126147499497089224389733814807158308098874135989461013447785110675677165090559484757564048391933717719988851672534291362384746047924308105034241552380520660135059944948914872307778486896394475099129625106474482058109398162579661992418630304650942147693983249295578034621448020162519293296647395994012168811828299836130307950305729586337948325322059875571689335847331127680142682016482470663465512680992750628825980679422530778655273971387834073595508893006982745097975545230435316539634764476542310550225116594687762495732512271812188112611015215611522238804619981729110740693641868980291317708270196977477886437728252449669297743376403081078261369783999175888263816947430988791714255737973546788102105497809411304738259873256492743274742474554939218716595936761093377019111280571100439542983295094594730339292995091826385210672800982248651929097045164505547064427609575922001796107205888794072823913960735463052889099678911335422310852549915297146671918586159987500943937788818774683927673206079503258001433696913789018243081476581446366931378827719641508591556972952316222731565290662738392250456681658599540124497833049446080561974763180749260083297815763104656808701444270751315629964908744983150967949264166452882080979308843081706847004358539054513793352385169113302528252086855968430038089830557998343372793449744108411734256932961648767102673981697625662757436736099140298770994681290808602052645922896025884997864642819311954553141018620149894558242252689400228571126892472062925469432544102866934830453309873370794645821710323859762899593228283134546393017086660107798664644868110583839939986907630288148323642642601782477899436612861036586944177104379724629942735186727829138670758792786356723096375123410898431092743198814928821790221391099360939798100293549875193830854800410508763769730648267648645379686413302334831398150623124483685493930884536492762947515425240212553807602093919672960599685945392992305867105096195709775914635199210453167980752564486354781008241027823923737513311654141715830750833386640408728055385644198863940068265945222001344899241894676692380089951102797792999294546163197995837113082395025379509797473877490750597692648354123442762781140081470504731856640487393620996954262220563771936902520522417378933648563022108833232524760674403392483122311287223086645457292222636580434238307557077117435471121784628390048624676667634465641860123559383407511474668964545752628883515619291688091855356644935024426344793748319854845750247874638829711669888151633035489296346931458775804242909539294758653563947667462567235885237163885618692705326156556201177382449296994349726321269014440848950486159297103648624017641843695787358559559184565866937362795274164253808151810043826011596786100821969766626840605394580456190247096190751734220004652190587986269946361534104640026831899759061970081307186095127108759712447173694149185388886636573557712766737830365510571732220332606150568370692095589007393321458082971337752300153229950115855088986869711235892162449341209842955420500937973435440677006811424332963553390046121240016400958268845168840773583597305929992146538108938638529395019457714701803295136878553077565237211487457216613412228050110384413951341197251923588898766382581486796081696957775600736222338113178241150092342482157905104779280580296390599606605301726803140969399294622789480678163043467236820922713219668073806242892300598038431758040105033504775008833343680362374384721550756976499147294784737829949970909090947117981790409157843359494824407087603705166222663969647971554917404200608632657928309917085009914897816690124924711606402625103410677849373938942643159133676753334146565184965003069453545467890732817348181746253255046940476849136602627978211334756452177795364209320104406719889372281355031499626831534632957861828562701075214424775988285341093923789048044803564223609073784280516350795708858162752164813442821697706906888263683937639442592456780183003818488615754566437108791785469974088743159174059764960810388179488538394460885612072956670056722690178208900554090498173338696432617552213648917417550700454820620235156960931774641613894799215372106718218882506462303090515615321868798354960873176270917594716659949304951912801766345124679829299282735525642480215760786025342840307181819206459952415768220902785606807136848907225395051136795783370932214184574628705563509876399160249083731266974548409862081507109272889727398589779709954515061268363603109279867491216398293509638314774384679233466190102510769229729705096536300673490711547888954317044828907103782771087950698930979489301416868014661772629912754806902071766738212721095991482800819906990470061692558473614635048021135318223264216659383189800445460862874645688285466273242662815459800963293272259547587212069138746957182165692541570020866036848505663750996106143857478064786608883783369684740585274420030308767156520635847091959416057145025689177049986604356722709267338944615711424677292001900075632112379459558053857704487110159034470795485084015804731695185546162003066192211554498875463694581780941223799535174344995078620243468495924900139144012839047347288083164446336114318190365798574138528919308186044415424580745124194290786541026396631686621702516610537229431941474115099080032227692140412478983259898308147443763532830064533129109308351820043531126997141214720009216639656285442806082290337354857928314651189385462943478458899858967450702604820354390169466039956009304499251295748624110027211417358079840545620247252233012990485206702778954630785170346900807342992373817232825418370092148832078553890593232178388394888759844802238027961006321090493002739893563507551223203050576564447813447689821385530951359079505461040589545772947328183292958515929023025873253831907688395761510721502462939041322101092323224565415573677891034833008418498209860473327452352434277245347440923423463638600304599330883165654695969247826323866251481836860655764000331644159208736280509305846797461044492385117528966219860986440000985740047192309587161738154673532771308190149926125653238620447515645287785320407722936038402371679033710498413520283110418064090528428611132894717111892987323804097255188636811988416711813017581049570590878379156193673228586164147402771446706008839000094875833431104588428848861564846703626360090051791888245590517079922459677045077370831749884430115933006796167531189207641688614850193402821928330355308923613356804703203358960616738663224349170431858776025317796529866829053045360568867182096045887734345828407150250809500741933547790477544912328205498587510869879477037812345920243345246459196535579525061936701358510608525170441430227881942727401934827732152598366863963475231509402184123426906893371692468921978439185220614117711249675819926885460447583868033426718705920446577846060672873431975570230882278102143087122692536128495525880931420396131999653347872834962857979308973211325343347211100199151464185972860964652445104862890589868576988433464694800543964271782108872128215352343916309879947111341964406472053368837537680363162070766687539435404180587746275322083163139259583727864275725639791154040131654804406081383151772637634971254841164818799221304622813685966942810044482333070782608539780121896240291918943250099880941078561609162185516860081962952209042822784589995746402307263618654924660286061556925041527071455093861572416773136725392136009193843010683245088603937609425275874270840421914010409451988109222063676055767003287904879739608697005520212486857739208477852443840853394851922226375548260115172003742098065190769701720085453076842440616083882027867254116075637153643637144678127487872708110145265210256947948991132643334660259315329797758528899733228307536836687556350950984744321119272323632830555273772213559279833031288738606359943097335704196577530257132606041093213007395539615763008729831527708599031378398721551019553786562996052607940533919774912377644403290448541264959040255433823679957025031237923844165111780887588888985650229074452737563527667508515071574954497179501865124134639538925831629410135429122859172574887060813945289469382717580681381884334495577764528277619483000855167035455212473060631553124589500443866001350864294674558509898342319683197906527804757897694871114376821944464230020283899077927221950032561098499843932457438089802663997452248804050902653332484244321751613328668250040548924411880721768900647409091190272074503700034956581372610994029718304125859145005222837785796788508813663430001241239083915137791836917412812445501634894672960506049027152032319680792192527299896061703338311694358441633702192648004769855681056459396599109607349496474793177423385244690518667104741690792614165717516497731817599808536429811706110190356628763197632482712415305202663578154582659893839859947358154867291560811338202074707502008954250360114943302976531403108808894318799734044663975505607574911975041941899573710959705820264942376198084875615704833638140113092463916237645594904641822616460511776316604332054018929319039856098198696788392324063686759829966857039196897889011842058498571573847441443399124173584562978874452354678592906281431273185837897596857667074581421594708392160870765596089795417483803826055883769837627597092511601328634178954791783517413815176011302101924735781054009707117219910939203678924593481167489357976694618069647299769347977011241506982273247744370794411826005308462061884386490020407564034513797076989347088516348443075824976309180025343696794980994873187848887857221115961750327109796232579721658411317911530903405470791310839402399590075693491233591291079297052295791770759797503523694853465845291772380182539400807370784256028794167595588620176941007461257618207590057374719438533326278875320620446364451963004271087781430385387519854714877753756870883812103336553279126542524477213638197660079672897623090560001650170731537155536615249585651572745469333923927865304928693459391856870661250907034777397532919034146764780326482357549920999273476960231539686753045650443088731783555666651385227466667153153189506283206678434960567792061074164546262327281230559066849204271123195791022801846170413262662842137155896550454340240482032056403846721208981772314351863910195519052303173870711968674841585854617293698395211870777652585326875406414034990195381570420178074552461800198875553491337234925292462501162675790118615399502825109653448399964191923871652229206149012945868710222844839375630840409112814980082301573041935409261482972728675942268948444530715893617283440110371285706781586788983719404623028333255274412405470366816603645652686673299261912750396769915896751957243739873635163861288596004431519534844955116109476935145090466854142232641727680113809749386026552712322962418852104362795935221728520449877512171323164380522981566243850330005567516639212953208593185911044293802106852106700877736761227464651312205888697954082724709367889033857882638633940656721030259486533821138238539522019781899935925674361020860273359739421127450734355090292501870890128250653144342272316036891483905229852708613700683303006764658247673865726979940404051595680787670785454619966745247379744385447442348757132529238239838741350029102986620392094641741198251784541505261699017672927763763198471497466004390051059411977772751741470643827268942258311411413605257215375092459398573693404363694426346219186047962197869571142911723595954491957664155376712211166348026301577342401726872174890416350641121919136291267406290147211260072947881706692913958074371944229284717820101730344911670879071350832735079674217002648272849273252040940691999993973222745687372313798740101885190680361066524265503785371807178748811143160104420099091433023792189134151505746487360994153875903374888547937412188428542164621655109017291800128949964753571648912520928677781855252313375705964214956811942677550019214212901451604479131213480421274672337725754237681215323447504174193430370983828959869863696832963198574063951985870906896447425654110654134830563492096076557442589257157468070072642428093207972231015054269163299495640485544081133936079461749568931709251872002159483575206646829599944743013863010010016152421715618485642811029666259655497576574434393070729032406829492253272677706232492744145171902341981428974519602680739030127424112455250691879568191665228967487486651701096261570288711921925488271685823056338951074010269399134880981796960988568739325997209436674284533144428517308917859438550420107414610181783334598141224688257620650226411503780858057367362063175770005709091649477096502788094869303040049488658993414284649465360448360948001575375471991657195586315179872277632617388843087942784626439242714969779469934176204869756006247640669711116981760005315991459334699716207283867126108259204813227056305596206579595310777899950365595419297958121590997497408400849551672459196050915797816287577307675898209778256553482111207410331711285171396124598506972786022666950276838229216600876871714033484474893428619164905762677154038981139596626390841510959033338601524310018387806410667847649954617516132053681962421760890982126521780258737049402950710379317658876496338510595021864986308213216946958612596960791224854378415146948906849707132351443676987051750917491357283318043507192531575679704376951791363041185390563131035659012512065369199607115403233236938199966296071678098657792451398029071755286290530443957960991030374505810465266805147848168652172536876120099894693129212276570487965010604414125254970294018024953174403402564150416057074310057245885202586062806110302695680474766982727562518977812058779731038373593739497703358367794494470537310068877499529300216847037249586465836251847028675179312199865041212932464834072693290554906855849616178268178216205988548031411496664540669256007999995991150260596599971628207427460358430916119907691252300766762007192731003614518434623173722352147224373142680017669090356258949371807382696473383142497327054077590734583235949873553078527846129656325426916778982343654891321944189239106727374841618630296176126498847663552485615716727773000529478936855427495470671471400642072967416916266176387673565078819607642845361760680889268405118799006463380067775330460557810977053567246233408313101753121891332375751831390652299815158137470267281401386811117036779923584155862472377636343060778115374288268723761969679312577081427662480153320048414255317160855141193163457296513492862949902786699764769289909183579341700829981830095106999623649156143301297279289763469095504708677315508750981067079662534166476889918663915607633762863974698816595285003564297997291678108228372911117325207519075467817864617071082453860016910922695637186661181278196170072738906649165089574552990161181889578083375735214255971968867039724513347641337433597033046112387198382662870823092487116880132163995989128684716918463671193686113076494843257291207102226457619593238047915284371486517345221182067259153117817918078499096287059665657920703003057998483641574389963047159047274748244005595641835263411181315517562170126355386534655053126476768547745555600146622096962514004099745554667507026444277390395257019401484013481556626327423661729563327511270684296680032564525386712583149754165186869434786648976245896237436763127563886128044526975384572022287914457392031087805311150921256190689389713895189333767513421942082070842426246521629200147645071233901946573026742723537382006869848865531777213948671906101113942769645033286129783250668742601414898583275605265559206125516311099413615909889589827088683875738312611070545565042775039960706435237939223413420058324328660170686626081100996559659084559491475980919056378041349327975773488060498850019183725456618279374296530831190202095779486811693030739954714528148700856074057114917417995238948878804595235359145666835950946466591102157006825175248740811432987149347966745290664469628137149883215343591622644306764703914036441912732255931232878111380140821515654817381674084648864851963687156874617720047122065185842502227061156417993576518104720853187167553963086430639509815038239193898115031475621234131454896975336942143456494879395197000649499145087810779803918536600785513056640809594632788328480004981357332280235702232571816112970270637104004269363405221156353500903734294562405687105190298293828561535467115294284761224448710957374666660102177935511579071170901814073566918462516569759966865127608677063581704975894542373582728661627001596999367077663771230513142662153761477797290801939861983415218801576830472663523470913941198739922838027683959843415831635413068191997430011130742615420978665255233439085111057929923425428824889705784682811867363203783509577441383785517233397152964601606623604661731251823172406420868704079850309327531646662431368694833645426071342506238044113645344459710191500277108000258311196947194702836775313231354915425972771831190193489306286624421892824169204794653362831363430773658454307332545012080279490555886852032467015393392050698596576094574549033695628017734625432385885165018043278426630812124362355663919414583615109737304239321364818921967003612141448627938877072975167025363206435804063801066352908459960562750713885390582639333838394089731251172020142566927741857891634334205325642790141084888362082127827433718997332506139574260342168663993866271287683991907593960117601888356069727584062087299589555591158110340365914809813530556857241560364970343712829503491053081389620978300250872587722191273549600942956591942384860018572208988316249058844412555127856041699072378810365960721092677624854249885742824736430678746951414621565659598357173105673504804026078437680945983013562441493202179369838222282170775281249924096662792161702165449066420898145815112802210092834177949802645134742599361872265470056056455009932025294118666407097497054968820473125875917326669044822323613999213420931576307787746383159910361968608294574347802901360962715128096596425865067309815519030060223104014271973281493098959157154812812322523100854929452199121290625092429212484328516825974939283806186816013400973152682639237445635907097985303054664061032614547126127015477800085478665772241309134065978906206965881464065926620587344086830958542904684168384864750776524826674185047764655483630421457901543485729438225184633628178945800181700496305041547984910294702063974723301235492959663985796042170947733232321035650244696144556780329641853447261779576984763633082180052819951459032580643891920957193608371434846845225999851106269771042029532922976790627491914561021590076560619597658382552464936415174505195066179008412367086561461842507192189421629458053135283588065914937519057304613179886043735330215593943748829395476542278459643930694567050417363077162269676135607016113468890784282486066169626940514401051764130233615049668184151358933143739558289634785529714022477735756359581623202390153992351176838522067836204579232693021531377093079846761075467940233369048469531931886595141494813049450679011846226523726247399436293410578093629768905589103209550436716739792224423046370202144633169316264628821451227947460337656158580886125759965438187336300689371583328382343415820355291512724960293633229426738590715452001759816286563247655638984957217649853748669351631507668038505088192875438840099602327465058540991895919004351031766261171532149193076281010117763618754596996591633033954471211843412563944850364598279494017484598315209498421114633041321869087735819315974621883008078241723418277310766787231753020772828500194453581487870849506664678808883753250584608109080773766856289090470861061398130054194193246076301173986508068405801845065130386537470192398963878939294913182534575061100465027273538470550120247058453742049881402728584175828472455099184363238681641592534713651256763997416465401098027536318617860683204168850028324014080871506548568053976300567851672456049139448220938886398449227770331938549087146547037320630802650857124433732685081935891595960019469781257288689434087259187855472705759461048888844067172768967341660752427460600167862397170007708185323576373365119451085525314882297291317098242865735320773911574811873303238761461751688490970949986392783678205333767492268950554346072667971129978371275158827780588504779969281248610293903746870724780043011763476830481452588033216226227026928067227606812981944812719273585245080883163142014102124267063431943406556848850683783337738241515650760275437024088956455609494424560925768995733712367721873416589946154474032530653194773069296963326438040811447664717746176076883387887674748877899198827186227640043589632739965529185776967530685062771812419001290740095256679192410390354259020379171496055011859099392872497004631055965098282833234029566084205260316232086551128136767555446546293915417799881361649494060827718322187967853792160544404560360760012113008328089533675339002507737242911991180893979922197893980881830857597712014194904201338616923668355691367786919559247345172695578643159889248396861351115092020376508417479612238664644494138874766726249919700427049163792073690047499336963714188668316707507948389681166817201625582425720435509652424217243359321265961850405373892956967889552206408229158334545184495386902139901330210216688051432219909018911404586724736382179066740193604810725959525815249714177082996951684424953581776971068843170075640930598003798944061959318368853428140092991912567032012136733332700611100021224691188180914823891536971823656249125416597596715670401978692532620581444256138961937381006736729155177803198985304176417111882911308125455886742635044964244673815878134820475363685433464449629651111101092142248776043437632925764356114683446837493153915550454797061468407889695488150076358281994324051089073353524917238168004522894087410997182752528211623015962476880793734244573066953027070505773828189755654475882977371308579080633803092892663299113333812181680460302527192282983721862190545972915397766181346675067268330287944610268503625608348384096850723424239940197809130195127171094973370413699094531224689141602862964700294990452817185605275179534092032854704975350524258836092451399670053051544992267169673202366102132540100739555931222377031301430032857825427462078891488581938639486636144248946592141003395252524006455029278090012550639543259561021971775125958374764427487109005764384415848001222894480242193543394012820658525020228787564272034940589532327560422220253678456378628969568782193750414434819603529320434269762249700161014140283445344187670567016743554532330672023039773320380427248694830738551181349157666999647805771977864284940390046508962101476223640650677887080169927890318262995428729347951228838221788957980769168060361438398924472192413523694589227571050212750588860953982498993994507478734158630347085885886211270241504489525510374251878448765739812804317874579565073350428793969646849706081355642772472811252875485395828871648063184369748793753563477399567093514271269437200513232295096719339656485607881272984187412719308206934303208719694120928151409948015594124831275766417081523590198806576430195798261930343408204125918424245992346902365568004703185673223135855873859187150343763685863930244311844702788164952683775759914660640828096688001460563998390367777415409388911445677642749693381055820210601820461599743142951716781787295611003235581312145290770899888027026230121129280634601050159580978252491952591290460349385628047601872645316078372835064528678967408519326608500750960241081408839969165537015942957988537301795085815884005255711764345455993739080372305830338225175168641632617964936653205611175350602057479972088957525148191009975433703130988725360640720367484845604897995469663282853863744936048645169997178324718497942543116556990668486366630102981132169223352727859163274920662394388469342626392455168163099649988443634933737466068859016598980930876422908463638102552483969110153216090435301072343190360837274534839294771479271463215899398314828667199970139152992847759367069668123011063685543084834949005398426134698981467661108816068590006144483213177916522263860912716193585150093941301119575491565569986298945307626019327018972301184383335727300214074671371995580615608053730013423599698321869453367268554053914175962925027260825389667318850116564089358391446334061512441505117506886973649907028736480011848025439413156504774175420679557636294116344079291880707141088376983683669996532242225772419385406730294540601700119849197712439769303529430780303285678993963969920195509532336853295091910074118165155216021031364885146810466579282125747672866075377002872692237011387625365964177802213124941146374315764962456585449762783399130690501282554774716096007609269440844337693495499813560928759541885165257080378330522162838904683455618962256569978473301138509768912951813424392839514798732689220980674246577402600668573478445382352203328753136777215644955660089274177815150289524056274893446907353827743882938725247308980550362840949363518902893881297016142859340389252616855027543975378205034394534764696470828796701591309238826681260511165822946818484716246368306924923993915956431795757961993067521179710305725035981259454184754017406507196979655247116138874459779648555929954012097339294913694854379318792686638444538534768063053583679259979790771652326723425737622735045052839337038642723732496261491150419084977026563347064753764534799471866124684561178535339891860333834290833642886666114260301451342964823501995530890958134715055673454264867998742361272481234112725958800746377384725155968197285286316547758703532402285664108308380817585662475671036169223318199910679928575141671350918603574557094122661213378538446399177375223629362483249832356015669852740523335996477360575406359199466483630148095326753108184630543799459546710610794250159177208696352642964155363444309911440301705701632472684547347773462467404834086194864544000562382304541995887883762530731786881491977930689922696923519860621407239005069056441810561925164696456174297114090878976076513782652048062629209051319006183302898222770220806477735804006483925561277974759757421374709314455589515709726796925901006453508484947523018766649260950541529861703553597279341056105082900030060881607219184655394047285830912635860628642916500332272377453027721662131871874023271080949381971908374959313288430336542992386195552105054369895480204888646955497591250992029970793028233827596622940967783809602876776327110860244858890657756698370997558982366553922548858127996437834216963840160118098258608721992872133281591165250710219055245777964865605897171602545918332041935465976404066929275195528705996577656194344583909765431950981889335127943132700969229341705515062064080121320598245440201164898260392196936355366041943755571071919732042723225587972932486695865978483805821050571193785173171281346020632750111782010871854004231616168635765770094942988189552582938572149777214464281337008014013128926784613901295572298895023739753783047510094236430342828999647398970589543703530308242069633196868374789199876334049048538339579351041620133750076766635487900372821741920100722515654140017891592685950734879793816497790349829837761175285360348958568152251899208472284672039294004154277715524669226220344118883583590080590706388296719450530558568554799687392522375756459434863984991251958228184240097923320863267168905846790140375846457642557365480077980357980285840117630861233600682795404993367606897148584508486172382286816826972227265649800616638217416731880307773575293419922870646201612586567440485188744310393179984891757640749154026552516426636547748052548435536822087057792822398266947949619925965635971364445246708177195071516679517834501335082698468279414204981116970014051879827428470485317429488399601317654479879515702569042117232848621020740215485492995624493425380920050642985711264129940061152561114622482926073095554474366875734786360614368734353695044521000664491977808858517148748944398805356621701292237357188319847354336846249029875403645726174469343310741865691632429892465073349296616090468656563615942272206855550644663143879642686529168071840038313303036645246167368499056918068708313465068583910445593531808520001739726391036531611223521035920860815231637505028187671666876924985329200253015469399296788362747690762676866463596233111308129395935683069548734650834173220563103581808460159357985084121655348798800143380665848976994464381390973128467339864728415739191239361430689254114939208798208510914980772343844642206323957431102815587778940543807162301885280181572055988443537936480577844764168056292142823082521431782260656351368275732282218391984480423752111447677290355288345564964173292981136507995388078469569886419559796044533962964969688259818552177044038695795834194566660857072732876625318023132211971584779161638046837236799739982722916725780848482516614502824066954443420368402490046030909588791350135334407154922420003239634900545697918949091763074069103580304141060564172913417952832616603096553332888084162105426561723624049386606726876671445175975824977110573407631829217804143740881470806094351978790775031669616454850598362860574269044781550807877541834449993174700564044497394240417392639659832001740502125192034951405092984328201520269217769219838213526730170556212127493075706713075954624942237159754312221682983068959312735801551323338480483605725534998707304176346817312703097438457081132239016731472521667045854835498159440324198334549822008048190253688730367842767273578761488230284205251722146706075491223554035690338030895015692513102683351562980744574241510856491794241141071291039657485251447012960761304618134976965048066523489000852959942655499226144365559217993445710270878921608910546326614153704673902580917403489057864261682991353800658786283120517165719832790525531827199008097838438354989815098645709063964843194058827462987161148809522198382619779741427541278247348001443230475590700463720749833672017956384672691707806145030154062032209557127814698089272015633789630637601340065064860990523518365661435108249458335328940953472382709640444132422183983431579467152215354409369477290813516825757484971749340273676802384868917819034531301668121839325896401878882270355593145393953040917474231786435911191616583810104363038920821181999669825181967580732182255078372104158390200920150515479242965023412474606018126115630192567882007118415524336989627190342803303354894651762821956601322479820224561010796330624371278146471548305143021130614703168304601077034297351875397949559002050803645258941371728105043291903371253412313645026636400279854222645840250371415632889322202945960324236387087861582342824364929871220310909910396293062343300313857133643592474827061640688661674889508832908960775292356503024936526431488883542488941899096187398604707140060853111163973654968181315883592735662672111415819130730914182881057239415845205363015519622481552212750226623746004329733119567524435008124953250316177756178018434063897882504873932243360514421997525204718390040890404599570871376299743934227730645343147665969821376974500971567062612276708462962305764284380169578861941512262791305936113931535080339866215021307658725535810008842884083581650802964430302351608117454194464136535105580926551000678036976689961938049314208495646857001919025031588142652444693731858912787819265686083446685892582801083282415906567972603685421511709633626142746177181977048081153982976523745127673994466204689908743326017412381507897792625803967192606409974129356666120899956073546127473817926982644631088199105534183299305727252662487636565804742686103195198541692848450807403505312474502003015919343011307358836359761301615274913317131212249344095333865473150227839343538579178852264040037301592461457248797710433500736491363672686596455150471609777846018856322215794573502276664090822176233686295610139753957627725171324748896705876127777258663847695335469247169379844339801780254003207361110042352175261487479311762791164158119357353996583056974556737231215996227161324052791088752662116269010808693123648897383784594348281039643651286950192698832514516876694397439374067160934779012504949889799773279712315162084875046895817907125688873265524665786914285582271156331619641719685369884966001290586931454464268364948326627701930569699752174811088299775843843515441577881065292830266373244729343866178483719759384582762475330643482912635773150321298153677199671706767692528971650049022430878881701590452369498623194391537835318195495592766006546924993589733263375457730838256574533391127937169255124455916672174079663343029506003887010792153121417238035911845971263976846877550338891758463100718114881148945474833552962466032353430928823203065999030354231969900065801457708151850649230291462889083244463099571343079809493929392511921600941565199816354541616213299071265025038770978881721328249333869905395557925350884529100945432969364803344613584698565088965083947824963685234615075663220320757055282262576820511002181779892180328232606200454296720242581422771685941558549074445779511910320759113978181747673839714008622361252627904058926416538768809838750343190794658010141259059324902532857526219868785583747379306025134302410246733136754563711413754475546305411076409262431064645004338638627796051067170518082795756617610254657254970209850804130879623855849823095672009663714941106113312481758810722340018067302305899968870185813548751906976241779515958408810274229910746192852188339651333435048652715294218994897076873674455831785430892278566618897749199883839325454730813588575766384192506718927820228937905233549844644634049781009282081551318210916211151752997553852858358991088960186966784099613508108782043989116067828179755697744152941946245834074616159772377545351456421834329980349931320559571213193471062616780440159351412195004483170604464136980625891259211331681998955462106828713164612996243956066146123873798096288185424754098041959111019276831886925398567465003936204458221275999791941992449725446516247863454202126710266209047739761999394359370985227729627397444106706095925198121402274268170902381366496708533399964795213405801816627355725436401516693743587184905386847815567001483016828710039955317970683442512816294915884883229025117630991909541354874417609742166516812721733388756270337186656243576971165817630371878706471732266660665341077180098797046304808433606950949127500419330422322862854511985057303936483350687647290367610183340521056956238981198355819361060767856931594518786878213517239447594789382036707262416886630393101452321949527711542902787897118087461833153094018170939726880730852225309900156742133986706278659117666792896285176219612529036567984844859101468239654813269841620364090141482013849429173462809812174441742386146451121485239031270426809826896793281274925771811382364009214156148676981552390679888695955320464422119129896952372158099765709768626614625663415362485188726928035620066959739765970175640040608620515206517196289041588638757822667842932723757307594579963529856093505056410174702959427457861190324979258550355862698700320028821845947829013835664618884310364276582226858521208202934016814773391679500714770632929438772697436704162576963431646192419117780139268357290644034775879271007406637403273834100106778292022807870127296291899472911497727331115985710564905795784400945576936721293588197117581952837594140696667155001361611380174743478673352241061261739296714425212105470889530840654054091546355400625062509410091077974601770294138795469496360398161437390776895406518079677193279491871853838661059684752383900413118861296180677006766667298880281067117201601986222897073030490491758110483620750244921660278398374015855196627706493417819349094342798338035918863261934214539058067788899152201284874211616404121357507842481805553601468287928742527684766139297612329212467916708902277658551747032835333195086057752708367217368472713059797710964833108109439153664607969472406921344587771221213096848189716318149768176381023758534638362452607392959497789815843280973040599982662571788722657500149931891235404320899517668377465673310798522181513555670346944655302551940360114854593285680078754358000385870435827989435890191224539825370717254422646675413600255408652203341790678709613689746987176488872006960566658742962087587160255610979049206848860829139281364933980350357742462581694151898829692854797123417375789155903405150145303957160351196694296900276358210582209735749757307004588669118217572625590705963875041706558313243240395454878285137148372464393381647805692894088187411900530839885929876084189320017034820357967784050846695229423066652336298112794744312026197246252385740090014656347328166216431778073606747507348601718176056708121238868476606657011003791389997464535136733247978843145320057929409930973244102736674514503267232600694668806108027524467987607861404020380876809495441079251015894338069379331211811191036301284479348127372610694134199188982984398382051067824306734214500110722034939986620577605400212281686672177418046636140519117549363554685985103208441214804313810330133552940157252597623939731608804626460265969106981461611541786776087124567030723405593322807793048280995210018708135305751263652287736300824027066859513828502630384902359937675228693854107684787176707094584161593364267143945052860487365647025608240681098253774791293348032739349367402956326471939076118682621129201233062326893246760820153256690774913950084356749434645326350978932773033516450766640977142284919468411954817832457615369689256357428946494054128101465471218809699103656077843208998281043188949677388020705167927241113844595470595140227720907701638638749101130729464887129434868399536291574511381629653042657312609969272357932356999624345291814958249922487968034833997261441777468485521512870339627039547938102494207575342570887741738300333067110323562046715815945985058459843504616116386043995953487709930986181452053435986000814459946615505466504570880506423989893447146281351229046639823178536860766393144467973483353127792092044415949690128390785517081143711202241739652766575297261227408457894787521876274528131411288989245813734229567404810179939415627144708220403751577046527980082013637417723687668843371038447637616563399940297363418376337706051287376152371077435712938899244621029880648041372421993131163022848856813387999809110193692827688009860432077241317956381252091708285818207220565366658849630167960437235342488620516509696894519353622070177272423163644265876015743459203125364450391382311815158659063280785374344928677001736856939703065672233083625269733020762052597564094126745045370809498986837183015888741441411499913313923767975311819695687895403979263446685283597628950676076974601849075563878796606680258219478822999764714764176615622181377996203910792980998865221752840289030009798920393808627749261870935270162372830223819854174156895711438952328034081358136309161030683204191824917815650488880889796933732251316557537411587235713115265906493318969417145795720448310136299994922911324732097191828563203011267334221640973471309339867895858062979732391106795006027569880399509818427304258387405281524450059388319371342199646054576672379779628992582072718784551646332090639481013582617896239436426625749546481701926851805753802986345295986375125057282010815310420561964109261424414332951870831987803613110290294714273467535896430325635763672187273722744720473389595097686966553602215550535909050001055902401637364488419228808406321723863420022685231386039766851515635367705151949135228738169764693749230163040312034906418571135769437873448914633553899446219359949976984226179772160909593050563198613954809936156867966910137129803817133806521229856225874613857987715567018297094102816241982594373623176814925822465290079926803471846577973988030639530450908552509120815618475111574374298019816786131829981151516538948629072465095377687690230860097307330280774726372413254452935483313799235029383708194201532605306490203799992418101621619902690896669222868015497547796699544374166459021664382890846340008736141326628262368642710814348009896772590856705373405740311220108599744564301572424567329142789641316021972674609049887496266532218551169584671500328447733409499068357011437331799506853710201152201722571527072086765950364571727978198207820669592815537035142721956490285622598345621206136389008800864171404304758190419765260805347094301633990454494518229559275975342251767105932554154995182175830634786028456654374395934291619645717536903880928893778056698085492431620679962758267624628281437660034104375678491812144872265548467996914898440640918752577747066451442661720441374161940701625821521392247122703336182479083208412107003558227592210835624719061999549027573366284646639678137735033907495006227540587537294790317974163865652648153744790178675750417770549961636220317286220128224587238177563985296489281259231757448346478523307002411256550103546061239447207600752215469489449733015947174391417154021689513157513458464032905031856044577199437855936048271809293425107018496974677462383535847144401593364904943212800228353602919361719108494178369272425102447503070843107742399914294012896586398352244490268633665810095972990099538293847769437344665503439889250063369165203567053689968931355562355811265838929517277669177304773752047557377584771082072485319451053859395125967821201305729322767319994177033236611551263455934220619875032896138661491643608373725158886360392917817283312931361701476332131658618875714056588390803425542694735823491212671815720392832691944984835377668343237879866558264395886003011929545082799675075822647528540759507004424984746642944796563826166993140644437089395015587053783298273589549442010809191121407348190937860138310885872650484984185354884896804122496720407499858368809666436290394368417825823088746111199434023000077863026810569288980738242270320308311076536189900249469157117342740034061113713648738003648320243973811797690070715638430535987741306015906034207494473033741652729125616025852618273491830276694352863742162879623146228402885245366351262173511988494198445867112914717446787195339136659410060840774288991055682656974879834952617665798700605313630819625944349383051540703919919063209978870210215248332691962307872805190112889656725598176571479836740866148334978972197658655902731412152438868425081199091523670457865680368438555953074705848443930869972188938242948289961792727226390393886443423255919096710449029520528756457451599643025155102598516162272266141123006106810072144614643835547491451714682774262319006703694011023572962922184725720549909816560207813892271939219080571423122701507930300930289138369667878510772250006998232731553455884092715773882338939598604820892472251870387561395173793286516626162538597299232529493645697333061683305478900642126640667429663612226379931581141167531974928243185860023514338800768481636416869355236177243201164405176288765173167323662094999113163299326252173672995037077640656603359733060856642530936019951114210514010325447197911980231158485229147426030174596868255191093231879033799630946812638340404491502232749429930116930132110374076434855947571000583969742466297066895754673940690227486833149508202617039638210225217346761567642369788299358080157657965056572794028908702611080026946045095452898447114304737086466803635118791195817050860777740901596886461787092755135878312548727865850252178267037713881783994488624087984982160346792053093609021143087553010027768600539663536075285747094273187539727023424861352789726475375059442394760000143339203478072404094181220854880789399669412194175784768118951536182819055920321957612438160549847315796144939559975800737218222492862531782536877916125607443565104371649020943149458836428109861174032019134458523849936628831502845266477555249506973105187754368408052625726344717844043960057245225522217838418134274577520334613982139113562774633032282016059753989849961432406949925874731917997357135297357810216317647493133241131922728162653331503210680297454202058633958656706245845447426838884573023464582914469193523338211230377865297005890609775491001953837862915456265690348221394950929969416537325691915637604601550130419093588190986633227495148160924263682183163727255859272334151961381165738209134637432653180782313625027542681022408245400158818390112830271305794598186438375288065835258096686488297902713543826694098825190583850115861599580017200378979709890312756402391716662028684296322780085882728475905105023354473175001570424328028291264908760544787730782948107949909557220215628140590583611690775332806881167329841121409747655029560408235794469604956221893489036457932561712388794328039368483421335689617659911720859473612524088797764207396222373417814471097754893746592773408653674344572218982992333266174461492292553067981597648187948938068523453750062322411205884356981258072064343264197878057455049902780259752776981301171679586015216390133313084994654836953095006257787059052008383692680636938521065915105074627152973566668819023624848786683092433654989620327159735544973652395443670024684972559814874790346543500149075802692266080133902655579781906427356469489141467503129391882946886298098637884948652551638009742066747659169380769628601161320849501922012097230571949487502187392910322506933760302394122022226142730796375463780343192499437639653734442655920427600927545328920629266087813918063450018612414313821918107644976350232021916845091255367636043364270853165756161562945924564982758201245177902513587016079910419868518549455725621446812203276216232095415089355266008759961147182521073487757988542224277357315156948210006084408368640673396325322749395426947407717664601602766393705487343526808160836633116347855263018177731350753437049046374226836175763506979401010362371362968968998201010514677496426710095254723692737774536630740702710307397822411565186370027627584226867575885762036660953980699684460888019250762395364576309094975212479810512465599287144832570883671206570278102911873110047624377971637110771823923801600673383665561700268379152859283549430655661783423895088312491296230299662784173820218906410185674391792624244757779778814897039997794961963774663272157788098114907158030441572937333083949700687566963591214746911472432300830362245165226693773193800077209473269706630686701200198014067638408108795332198025270344690906012438128933632818193497048579809289962168075778438882019507790888762917411990471219336363699630334024647485287615365194554012680109881665805681006813406236409407225317340044238782398753576734761675572924771819518709695010006961733264266263073863642966777835791976983641837056916242095543169178271113531659513754128944795478583602286678639599084184887544308146676004677683588966462516051668457306640297827795982505601081255507910015160044670759333546849965510485215424736882135930757872230595078453462175690922940498597334910203667286443569563160538731481010036379886592947606680703595919483918373776076603227300654401419867392657758776921569596370240492726156458674307487536668378063652994465466189319231373890159476218695889238448765354570900891167638268526319801479164576018186537342053862967180087605476830488438097775535288003129641457578785556494026914789952565717558252388777498908217372122666171914780287729581705385848476437870043143258402411531528716970514957430856950836875401276124724815141978124732789555062918850114169278389616127459982401990674217614976190731886226558245061662176614790358204126488296785860176977827841042696885924244514746742954612040940381537609065448308597128796715184744602661151044396611399141240049656155461222400718477033765220755969833683652540715734727029988729220438990690406108586663447582362114068849244902737414467810291611781860651758461903725835262326305192854815915750742944760070679573283565518862902091723587838747000361817019399433026459270429225816679661872613097403672020217937535681739655404404348806140644626140404366231844811263782431292326529877313156784594886786569206126142499245037787123161229052788419817784758995608052724453741552404185508284191907297114153107744807888666246049488355421474717756430583791159444728271090979673590727787984783485190403837829674720997293010765330332111160774471777167693278259646903168854885665721926738710489655198925218940986414857149846799509329411187624830274774917152816165565329805855316978368525396476274455617327226298777669674717945674744529242881138356362696581749393864543151217027833154414223553098241605298158154012038174497705478692734410046793728755548744960389201558029017909007236925219388423438002450448279828689258679898111637819246848181250375816830266995580253013863547426283214642905282650115513041804480725368223657311707270568688246912615646805003850677514337285477300007375872787091259703841448608463753532135257047779954657249897452349655723966307484182004542476331951789312928915716516473073365953589710414064483849386197397281629791664693086992934387091436771397547072174389906987945288021198237432201092066998245581561121539259146596577593013510988573514976870568383475971015516952023546344082393322185958712913644869359987317659816294928958888265919256031697776827734742131912374290654721111839904934201250205369280401127055030924103118295114105054232401849080294055690465452572952830043759142776181712199646966151280738396910477821280170237121554098761057557389771883815022700748665434251229681964227059534547612780881620418865346555130554922253509530086789680408103274469968743612519381672242479382110333368279810865354923760513619627591235032475223834050218223647196891784725319737418811151300654406257449624020526295435038206449467613156401422459586502890242024920745019599677634422911351824988704090988160902117613454643606759491727498585619027723908578505555831408109831180070234212107989122780663494749951531291203176791732174115647767931734792759295802469665947071836191540098782874359221994317100307936492673755937313689585475745116839119559685621903911346901139369239445239730438519982060853771262848213103245853736833464305603685598995642683592203693061648335371068460608823218651583853144941796173591775004467082433588087723980452861935844766965368939345880368044416756074572299221752172779015749727607032065687483211573118076360265778567696664230449396511239616118696788931774970747809809285756122493662924367322875563439434550532260836523103186026226896203643485814037512446939206374350442026652189856378844272463306874424779646367864651831291800298144599593934348161289580063204113442012085430218412594733317928936339035320754843655922884070823284096144388856889802376153659764833254550370755446723816879661872394880754097070013670600951404950304454236375349422312881568692885091914212277277671060134068882075199078007632881603787928522709805322946364245288563474421406183339240050848494561641048896411614972540471891543647662204756930326280593272275670967785131445533726011126632664445367132117378365459321583393391176912262769343286212041691721655658913667148577472866900398196097520174354625879154407070087080465885317599009168924745568804931168768336470065664633355481914780285707001541960355150787364180668893842743899125347080343210158753199934161539718727331378156740297044566913729441765426290331987593497223975781736299918347579574023747890957269571141997181949102572051459631405724360011851724662492887231203516907804621533253295638180855042783629225775831787985468768108166098921418914369283702660791369087018224015254885542200170906751893093689568681136444777053387686342300148235466745986410598213381738162268492937197761989942048386300072695259559206805004978691304008079258756699770903475184608007312129937405990379074354710262592932994441269827588882496494696892599884895428992665472675037985838326951377273307645967402996599673953922407831327862359860189982623600878526848108189606052960692453375985904939553968726649486791346256926881333281396932265840400322433677046115518715120380350646387611235059971394220703536068206072831449214292279695709307022040257333629355452168892741346631322935089652361968942807416014232129389317327573771602830572614814831199984826123788218135806802700386991491011849466606950230803751796398307449016022253460189106690070456183178326254202303305466245898607900306001393580521022398777080755171689475109448388099987778589114521164716426967565965324616016419809895920339227689270769754547619771194841901987649052936667070911831305561880619633952915880613343219998225133865580230409270511009403128158949712068634449395103343402599109666696078888547218711874636523980629977274578436381913478485520909327646413109958653027292693921838338822220048820226156318247357262374858371149070715818798255616472372051666060893949101544225411827014425357778829363512911945402058572281363983313611593962478643098266957452260430117667009563765339040916580438608634387836231432271229753853949338064140854864781841606264058989712899155108379054285523526838717514168980675701791060067672531739828750146526903806689586634225361471693919785691341965505493441344861079607186417727500028562587094998174520764977478747522204302456589404006175265333640224758772762132908529379101708202882233335283861548743214876617112588536297169514813023686868404661373750472542879352024078347757848740204764966689524032142031968245632277407223601442723622211994349698190935817130134633467860222097004260853768274780020891011866094387662162913564849227735686622492371935608361728867505207050101686188581166097311087539446989021444236470155345365473295052713841154221055359597128479654349945283550751590220125073539220230451450432447963903443234568796633960297226375938622741440276326549719619462657934209976311084321295942778922661096137074483220099185207053584581149872350054708525284012914322459214825565499709295020655201208120696933253729833001901031234584764785932899258654551064794554636538319846763510533885510335050009800767776962471542622069037627542285656305438034988126001085005090770281271895029666887345364200501564444215015439452280928580527659190140081433393160520246335843283913139133858056489792912492568462563425200132669195154548281037081749160565714218834983928596843348681227535677814843095313669503571463994883294632757533092701083239057205059146522252891912019204505832096149589206891192797414053030822718852127238753526753112665147333736433559664664796934112882112072485332441357923317793175337041828557022310765434568128411879718631644575407681059328779517306079795168865446551962604438362554616010389503607069735363359037799832515817929916749340271247454809183989137008227879457573195061493577609672045177469347382419416744433588671993466629945636913109859374209712976842884190859146754557070831619225283926857818531101387940134242354509013175239568775157744521708955385871484818710392579055893108492977781430207371625505316961356564948531727614879208561403405528316347703712605895713903672839430873160932440527424113645487969673629739956834053831096571096547164817543047406616222188170085981317124516497166181248366603430632248182932251713048916351879668508655721012991365737503105642465686364180202606861042207901390451162682997282784249892630519783953623487690383572516113410887933887928950659714538706975416621903965999931676350057529101755672403315749872645013687593524672401312498423145333404273589413967017348415196952337261245052448881395257471037652933440190350484159774539182305566978575323325865948727949190962048267502001222130411620789595238228131554008666952452600788560658551335869240943646424975517349946887696826840052471965797449764750915232634293126147570761055104038036647667179124100664731438332875224344908932239815092811334645985401014076060178801607160758826952117272963721033278238960845135068201892397078920695073570516282350725570961144228680580542938595694298269766412086017095164207475337407305003621451940059431198360205392960920369382083784868777694302457406025042019176800390232868494544572523734283356748300541851000484521631611354011481668845821470281489173747245803973128571522709228013844835976566112623937150148223387185257737657652650233375766364308253636423858662658617260127810350827399524165187196313303322693858088435577372522082918075052914287543631364994551840945916479113167954548542595953393096381852289402542415383536428420749252430202716136266774946843570134513278609411205771345114136592799953619932814288231677567280155691222859826217583802648875868375878582856045303265759681372371189431775324797948322503399682935627416065750703791971632880516866531629356350047108701084208801009628002369128251374168485495189352873688317096347973733379442295775880899642021528722787766392591477317452419041414447847501118087403689562394631829810432254322490640751760461874378697239237507789172202814316337185360761160778422946429982868843243626297132008698662609415085817395180670028776253432755213679270297301242812211796612508553067828983050777975800684648700736487886494435688590081082536897456304363277240745287441679369492807445476932489236340091075222081863281060667584106212665571769745698208982979795982814809152566456645043979496965885297361516016821695656948282866237078052205667722508822510027148756805612628763654144566463624290296081081500995811953058317915898501123096215846736332745769449442474293876687858381773932233032964738684663153964781298360498900689032618626363933134070375289373252274964407440848913614404355850071729226069809804311822247505610500025227814475697529421349303402920134186563910321259015503479153936423065073975675867778168168543110584748377152567874592953571310626388071604250036447171613349855052617976251003161228425548207987531683628516292350509209501456380465421994271296420204016818031996426192101413807883427510815689714005951565127958040544446084313493329952854445150659888793233577287574215507493393634309546928287820333866888414392406177225805820418950226986694075644307421500141046002757956273846233587972736962058597870553389223816728217617122169776684526103432651996599212666476337844406575860778220768389778181277851855695544113616839038342844523412495973649183267124917537206862947882943866347027109442026195411780994704967877040372380353110691681769169695234759921003923317730997688556479385523837096733892091988713524903897387110173244346873338991657989521817275500877500553396351395549428499565666109228145084778315409864808785938125052553009310433418384476955433219365510716702944706516485815463398070393089100227475380027373315843506163753148844903016974998449969498273812889654139393717860076565905254800257652268268686038238432407265077322795351771952261142714601695224351317412256807439130270347729801308892080011647201860681404308216555587875681392140355982185446652280222725175086050944756475047838884865380059570787093373055499267264126343172051124964416924831058966116715935888461932061207174253920188228759187900041467244606504113465011058498996770263051284091249126324110257442680863178150413646641956634999558902740843264405209445618111410275790668204698947225178448632519510855194822695456439647961264102398629131696034231302806509021803620615807960681987140754988784291936528345976814655167839596772903374336964754406658228727792313150870546769335711142008867987275128860265276473273731107686645026632838001085950157799495317875628200725661691660261003649135543231999986565853314605537087551640596643916778156054207197690736848997252074113262229641858054922038701402516084558123426446046295861802124195432243723143875267748266936928843798703198849266136715101600597254424986522971648348176588580191659561124190756491325296827968283161617383130412471541400012640979274060666616339528689340517852627590005113190080602827894121558811664358201219813960651674242283088642632470812831255166762890362034074410024916810335388528566668538110111895794259415419509187482153846243132660536688493504218189797920245546984434268764563896403715377625620554835152262281703907195265767247791326025758959452511376866364549808422798680136606915687338125017738941303603582979232484507791901153732818964568938016154122780168164730198962592054511944303492051161794129081929105460078316662490488323292325613806924796326859483644405718270082018752794376841194850152620203272878572042863054540614930461011266241862345388497442385428444997269580028299754323478233065399091201582707983716044503717816597902059525383913541766350484290616018275963990505419920382821186830845132110877270928760634470172400316504303894300273570295212637207301087054614831285993256252286066788994139479575605712146628072647449857715224378664033859259901427923098556207183335623462236480815456651644823505180333134568531793948720475330679266437420847244866642459751769236679694696969550110604351069847819627658370459232012083504967524638883640607875868362915768878498729263447981370643451500980079322229365906355687125588028327456796301881467171392994360097481057865150708336789178392179516156924975331833543775974471226189517140399942179996616587278403159401036846287642884752439833936836634626953406199310871183608097407994778817580463166459909572822780478310933497066769009266814701491349964920200204838782904937807798940797280693495356956449306999682606234136610187038696624139625740100994611076207836577936007639685399120756486033988262296402497562996040842593990368389153566891963336758719378112860909776085885998495871003870304492963596737921778456771394903732286211741166587021954224626539349971087774810243622827550317262018162133325453759811267042520024538528243488122827850242893060015007753625207649228754636853409448688210235754232541608092225050269169368217281871213166424254848325515302476956008890794949116396878359767889529195919302358018420691275550051617693053421688684759909438763683388428698190256313870881758928756506686362718677221886530400120317264707028772801477253376008665835066693143524647471888639724080293008750975467710834597970663513306986132321536265577603730753053975505193466788649212363680024845063157689917058951075147675700135104180878588700840415218117863125902204790055056159238883102245956369210987106935892096825205504261204477714868500332293885659178193018050814434443379187454147326902860102308094637615326947457822781346419903263441003850042828162976001234407059987783963762419677460716267111572583774117764830579921336147524500605424724857980034502331575593115219585470716076880492417894106758917995042625783660096827698331096639783686245389847557347600713749250303295469028491889784430862556710185197712448575551992891274058144363610444247963708282225627871672874163471664408739397751171167991761834613470474541265870708577318892790316104521720093966796441126856406635325583360857449840407797312076229108165569971052448000972773906464661159676241383590367944389408650879883208498498655754151582983848544188116208353862345999995712429415883428063837188890996614271983169523738127105474543667126014107052661001203863673369420689918552906294511472706970202020440157481502937620399409183393440063523970499714058529450122698817783876979629646330698553608341887217620088213559017049398002107475034703488108410541197884892857184341608174607701494650982923827518217692985953103843742801190284779381817916989108543246584447137584500112682449561871002895144610126661166518763523785040297254950431716856612045580652178404917974419638400966703416957953533301623651747174894017899075662129262506452433895898122916263280588575853754414817052029293557316558074102010738448523109839122272265605455298919596274750403831523457475188794388090096501390385218375675190554831597542492221783686851048830068489416750238051877506500522044678810328625724182349742696837436279258573576885604835513757030811450877449251739459345119140641925652393788298484756755999548702771352408697440622073846066791151222851523274978227218813848261437193323999656950176930564352748472267607228417948873987473686140015222238592841333504566614932565354461601683417290115946368268993982486780460648483422144874345102266846254663170750050314957557174553643033837349320135745740772709591711200160889056905633032003134573777692501058138526248033041402858518447988705599433685346874994941676172635860802742265145826507372008763814038831061732098894590892039121924460155395657783743628235567696215253515678868446723945572289892731699571894438246133382373144373712150896870100132991252517690681160856762949470370498082738540866116769934899815932493840265338557430660473251357769296165459598308046344651045115869791431768958022842115864433322688768791018308886804696680776436014586601064196764920827047510231397094226698638299717236919209209455963758604240663969947519049022485202614062507927049101403918596492615252949671801110376729490177431367871793525052546051576874553044801254550549993167674202685785630460913693702120653327436461225052290518293076117106291853890018854033607221520578598646923133108616315465018406985293331325242432952793673995819733886381875618902921075351293694026362609331441557771582045364247295632153589592510323088685586045686790041699513384854674332159905766413019738850035465257951327120461094286114556816543633473064457715556785253380523897938800802184673638076452297987569923693951607229379001882436724227432055665200437226117870432821659496376675374413387370830653786973196168589051463766138124531520548282430326514671666811385269525321493386121252536509548824462521295313099606632339529901314296138230298162336080433597846824307576671844657248630551814271083875674518931371740543369516231534973572357306441212394677421845676874149386638798743845746850056060901752340757933903568926373613624524972317250669186274739991540831119151100040605149677338428519616771628961318460633509316910325102428420725761955015561555173867710651376489892827364385035464656418555971652361061240330218501285454531242705449647929358129606916832106286670668791212581444597342225386942865085322581710113749550930723355997410190313654577299624053267976816482123121928617757312809930143813149565723721765820130371233168748081641289907382171503666756703919348089305960177948020803458331496570368983534000483575162524050159819085979819298407797862482425934063446528840873923442757666394057885422901417266834906661706347921904074722885483017965664683960138407381374353687410245571125336515341457334632850660249226228955249529616426085736788841398040438241638382289131842087154906459515288966556966611419173794537965920720624556603332906079835104276383093198432364947338026519224833029173345287914606139579255880707424445952046079530046121096606668668235909300973541631578319439357755711011841227911116199490129527824717909378859827323907287056873792822458065962982748788806411040220245619358411169677866307617985871702397586334017437845205247536849696283583596536324551394069669293729325424676857386701008354590271069705632268915940127739514320124819509993045079699070811790625113121194465213938769257787832368786161679453603194869529888334454514890086858193016052676045962417659425740754438729052938450287662700832387512044962150655473853769958598430588523042823068931306714517642928657784989331990474856845470313621241290477450030497807153284334773323498916074876578909715926040137883687593031539213205904988944217660332655294550457658596499764605133595199164897490621752343473339313428433870228052567374064708118796313742972114278658877262146160947328914002543435948294536859384364102693924045219261863520209928750193297167865414590793564847982352905180106578631818923475427676318801674415675778759051910694483547465430153995134730951476940929251392894269201847715777554601473917854206875490239080842739517202679120793194104199242066468714208436879869319213382823518565260726782490054462021776159554862607314301480150499229343529552042815270164527870566701764816317017853406698641328813171703692909688004025539354372106842519851541674575429412903155542086698055945830819653029265837838693880514820978867420910384263212196464811274264395393684334355348665904367297711143520281709564521190980881103095531650494244582048920635429126850460605829439236247210537704240964796739767982870538425481878962855764283475362211574165189782919612185036179119405583824008381940317473269487327882757456774017196676588880757357207705299566327379736961075978637274303579160555399089336178217083981864834986078157392787592441704922550990461429990321493234953606795796012341165130891325617687358011130734498052107878432567161650996217432352990753901085525822492274612063145840072510225923451364156821700406811088881325811813666964701750393077476361462723518755755764104729621000135000011245549754169867405143122204170154522797167576282567230310394634166300363695963348768464905185635261619409052307869494407653239902603324006500138583110532854621849163246564496305268354990172848259800696038048979289041091014933359647746224494444467147672623006899533753465530128292164229574228499057723746835072448862332821526552362542353376856797692102370590294400768436554839971183823078779150903838058833775784297808315447995036805054704982102952215323437292278309013092492165439877280553466176290870417948230453751324105607444939782745211484972733109190839723352978116851008947491436789986302903982156458940991853614636519571766400724383009606960589159434801359351834004373661328102606340517529102821363313276974469695468251211209608923226353066352496829246226146977501127440790722648814850496016489393163187956683367657893729932485365162398082156818223383600527952857188507351394583107803201370331154025286353412143441968559405803663559955860200519839109214534404025724156671005897728458545216640694364945612170721254831413481398850874426706929410193616756104958879225545438113040246293479293789560823436484874775485789231391777866107389387524285871935017084263624713557195865632765298830632259796733393608241774178082835627055722416088298738310606205235874524334752111333335260804838264611773555987110527862232576708355880328096162474700933033735765639352147024709194384410113356168542664233652138444807799817782570579783603048726560574350731255564380641877443936420177387640814908328861835397288718941720857659080365376147426597395533316897194957365137516285051802311809629761461167440472617281708361825586988159633705028963788826380170089333278850466692516344159741998839215931541821324203657476107059551745214207249174414253944644881294905174847315841894243653686298700625134319512794483548028382790578285451343799481850804271372159891022558714542260218277596031579169718697879910401192737566072373196024040221137704972817768038237578045812148809320940385941571039357726533352450399840957503395085618284532692046148746635346321532181906421542554321836634136585998012791919489249784988124438797407429395713788245886721041374255982107118617970027495835872134063309730448821102167274281982354746384514304088725083240794067725829290934239364353332632333674811576616400445372226077662756238402591740119180004067791564770108700852015891099908633254544649591676891349174166787619310802519419313114871083211824417408475527264463204264438169366038464868786212068229321289153251419843198237119271480088250272680789198734838421651530699038113935722827819348458603707163756477132197257351226082635706077551112529851619360620410178621201648667579092371785135265332667770829704224126623433150607179161037980126092807566497850801107981536780193445842874161407446439652700426316711642189319167831671731071303324170058250534340954239160454187693111140646909972060242324939601743390371603778291521650065936101194005886163257062951079009307846091503638900331764287194546372537681694947280961931232774123892475666471739831815069434005648583620933154374914364763379469177318100193171465335219238211485670661103059359737963035713675810358841063948231276679120664561471953348760616895002704279941516625753448607262148311798445528765750306798905841693635712072046073732337978265041754244367542317450749396803142580094989793823012458951155249205863551834531890579861208734401702172952862112963862168916736739557219044047930154639754974944276812544709804721331980808658813561683422317906954546138856084170498703381856519564469478537363333332293316375696738313705738283471760171655042881861365587808665972170010835638315070221462629615737176599298852282350487376926622045936974485503490489846705374278806669434845672781419880699266799483215985296569818427256536626008546966256959288554335224469948605222416861438515010115042511036648618691058018494533323237659770915400033679734706989658293941920754041251049678935174200723460355343877100285277401460120879575090111156381564413517640610660796145120394632585105830248250920441736329642699775848787542948476515426097072153284105074820153179160079124322009892998017368304724019342061574211889602729290808510936134823115181906689042386782558206184108723563682595491670234935949848810634779648179437949804052990276673736049912649444701524564723299963599121012021184070221708292671258934397274121267470397024852115529178696316294656323753866816783848654523996416715497790981269612863798871252029328548968456232805212712123539983766722658439549337894476052708532619490913200010241416310236886115865246262500086797179536093547381100645948002438360812466825376804646556085825643175418651431992571739579832928087899470386288819300078867781119270334772783051791487005549336694786517416698023774424400286491716351509470604736916904685917805223876474865129616158368418806175146127004722028861720075427933634155721071829728040014103776835919348677623680991060596959837284136052301443074320554048411673142433610424771167665277705604982724157623119252756625717338513789194506360638624993486156796759113376743013487385146452652546987801287548007783013847033145337707287663516749370868334899751885082344580422535443153953226216673794981526453304063141889486066419896333014404813120991588890497156155059213008465897935205018861071249246660605390475421229434858393847171423005016770381631522969470116014677488540461337786105880971228130161019829503033276983798064883768203938078908119877202491962390206019252465265254438595697722449071350161828580731928677574134340203432695848227716389968671566959539520212637325053286962025042404120006875993005721960521526708734730964085161735421849000967499752905136103199784167143045143648632608039426878698370499630824566776556772292597304304527647932263798729699411764256878678017273397783717769388171901621007071221963697112067682525326663798945900220991521766168726217814905591030609612334487584308005774113388382028725565726661849455678816692895202765430866482247392040667500246844419716846797297161272604062515587379308933695069702071216351479830068351947020487477800009295601657493599816359378463352999134581156853006167102028232708946662252303945417388544022042813105771587091398569394660119796557849754121184061032441344408543980326442214744763889005813638777377783741278939744475082216321266524969568728799019462274471928901031483728742048596181831763077445805324685677691775485985779971295357443146145465491106827433527955755420131120891605743113552668048456122443247413892728639003736349025201009772744063478767453346757748888992121967318421201847028108904394896354048659130218092297317070880913903335183479976756773111558664944858253252347120204043978019848063384420065313886466883284247998997745717652010998710882739210978479363317482531837951192968601797846662723450203447682185128991905886356369204176022296952878319661377067954337875261752173187148807997680694470970396051479733478928925121484241142222853856627226342637894986449295106617301811585163290375342805844697116447043735048162092550962710359098687113546301555545857319303941042755196564718570892019220298368722861013080070694477741554108227760211180679184551512949589620883954780693072369224209155691480768631328821901672909641571170569938505188483291762792850440906810260407726712648608601995557682962245153963282928675715152732232914340921731376861249134212717780916181854106675222519422014476629340723203116464646884550396792481679906984505549011013460570819261592772032459921936596934577575540231517137893200836146549828071978586291259830098959610315862256827804754237671610510097965568409169276513172098608784644533111331673241942639562615025501861964490601972696946042093988806277970720043429479247440266466463544005320386804270085214689128291932611334368953253183273092546487470089011784839632461417237686534481856550218091406485747554550937080611162326389063411466323595186502504727528672609673775627762595169634925060491152117180286430030931148087150126309767278394593462627915286432319032567442878409812146610599985736346789331182489355263660842879671235437567684213907593821677748930245560973903464904579884951099836782989949540245624672819851550710498431937392938423758044052402082113484646966865256474098651523450127631771630185786667269808864075636968194955340054295805853268066608582875247624474792384646674321608630772820745961623088111514067507350941039791506043725012342357141695353341821361460284471865001428331412611581034960234332701817125129898591956823394435496094291192141224072264534503312126924116681314562013632662807704203411857120904775042611905519315070183321735279415537939402502059066299662664526337521642984296361737258209970118408160183055041417419049054238694974118188299286196224277424911256825238273476038295611953881794661601621393137275881782065503090348606959431930668009097699837483350714835995786792524633957734107440626593245396290052131114517718755396912623984935114533628470325269701621804429904728406229497491638340429506077709810768025630090468923382452477552724127603517298996196544995729654977184643781628870823562793667085726807515273971459591080682272613793310440412541038573691629323600413710481983039134908901322546074360657773139329973097542766449664876321745795241039354870573461396233392916620608409839547044984760783473483201719664457542890777221531234846166104108953088946230804482459497593057361931994555084692783334105530825187046841802720849938320594946647876255972460407894788937123890629729579714919194897682451214891642255965857309184820356637292297300707446512538360200926070688303399342505971910131534222434372747924360874747095255855144572979182211196515280576048776377521937205852915740908144181088395454447830780010592259684178654114030134918768424046259987178749517096042470737574556106348621280938694488916010790038789322066492736189651280719049074959689294641493553774046988705691404110112051736551493832211154318543456253113950550904656870190926603130832940541110763569760461442504199361918075138385098282415132850311047816663740129131066587428226467550662855332204930530925093645467196564658473459020532541860476856869358615520867334869945969246313139447987724638353370775566430731517644149325614684523318196057404357957297369191615201369750948008694299373409549196098418443153420277157097346371948141663293280064959040595484361501260440688032777085196955329981414384614662746931418422846570755154318307962075920308200215680871863193466409947390552765494835736937947569549946819315755282870311747831098469362303229868683603417180391427289689708022384329675875075202706958575773223029918304168981086767204181261747763121779037314604492787156711807021076377863884951940568748407548674835279500976590317342719495865264903238228925710422717683740595546651757667180907379036893466794806107471969138683340012536492297524221246328526701809626179618032400661543187518033134904745154198407368755814232574791754152873633997756688813421147803295116779390910860691095130062074964087868954234674762993191001294363576746411698105257723769714736046534594282399734124458293272847431831561196943889537523383429124473521983634111031521323560968278290951983429679721499230292641222035018115164359838191989188757042309740033424316535349406592306128774475508423228979514538426914731559432819291769345778565916219694696891754364104977402775418536634347132173836980855160624134399299414466006757460971002903738534193978973255389160037659007848637852870064183491074169203860469219930335877798839554264902784921177801027634855029538236490805069896408768305321415321256185967735613709777144703196026922488727845788940611137652408545975775122000886174323633894129500240601661660380905087378478056465875856313514457809888796155567971883934809311828737661037724413565896168850756202332218318443323323503395133001157570192825924227756039962547410651877378131159419759166659816643317900624576685508205945576037394919274074619823239415855650089327392495595556164607850405324281945266466550348727200610395566810451191995754704896738597673827066597093793844713214968125022650586310705460614977850757262058926204501412169503274543345115113503477567808784530308974627004568795693870853106334044412143834285445387489117398459996846005668602734112284212762714681808837881257009127595587675553951462878036081500661919055685614012710645114276271346747978570939186292789740186633812402593902020102098479449900588892759941528062909843388726645802389182447588990966948481641888043554753362754069461004235175696167344927534403636820105192723452229421253056479851144018398731848425321038524206378674510865632801498816140098912976068011190645725586819923495414128688371251028149993960392004628110164665600182982283168233923727943545185057479276733369743802576202761074823625682945922091277637667542657969178799619164055210490102537385387587086659413528299341628113954598830123491394766036139686692641967766284303762417226229809367710712419260977773605747394734483978801822023443612850096226784505891127307669471556022315567052845590493577996328770999284876010056267658628115644237023885057683206108252574398121896317468828840201745501181783978583938860406358196639949579862550948603108065002717472399575609434133789975288901509773158887268382507120259111843483292753357951939741601664226029763965576097330991703088285209691218491995325686328915141932089763155431560949099721526794617019437878055375840093575140619592028711471850522054670109450269388434938407364376245623731218821834804570990533870597567747138417906442345133142775802379720182292479037182221151372774833150441750893847358773764581869163421234433700483893946140931956997837879306241670191608077331783918569232874880601276866275170720993009622239946399781967198054495581638766000730854975967499340485864132803810121307590447415642358032918206164413274235861993836913297613264510070032172417164722665244882641683557092442152804889011594312940146096219598517678610877896879723184505240299734621212439902170994715663406122906784605951490691143600250523629078717074575288865151275919115141557319581407161826422677155941437579351685998129911179386294346332509264583672519372558276673046780914192631850410380389193732967315748411255890580553453604783642258667379459532529493487792717977909593622310663359222858320403560827628105481985386728631046769442667289585531872876928856178409457673271924093674684282295817634921572554581972402206436154971901261750937620940652887693267511799407247630866998803725925061796303338112277740281223553114674844917161761632613119367812708829271493591028803466844545264980949974389370560435851961547591201965560895421875553383830956492175868365923303972209063901739028518476631319410051434196258806566324339587413095138598655424304388182508644487590856443596166624742023035343120526715017783615294858809601101376217861559725427605154144264063830623305311964030139910509540379196226684667226941696158898209289009287237488999299509202590998667796910951263070356888042677849054943473911518842695044949485315151505941288849819524899020170257481238979789516654620791224857336520643910754784728129304582190237732853293855302455662739331920677309861836932302241635379487802267489032055008404487864225252028094324846149008503840778751709317030607291432841682507978282854716425785030853605777079108666526276773641183481875107814554433010817861420782853569506056770484339614431046690107919501511660277168661216130360449602995474434026136813186156212268806706351517273852914735535040811507557454925869505772771989537090083533931312081237160511855909355005945599545020999997239422086715946377241748824635047559484999236216590179656428828838776726003986164944995859918624690828131008740492539874212846060478137919608540113917351175879521708448800476740704403889972179045384170450054789248629250597711801316184583982905920027855734305023014527019398334993548015907038232792099795772176004055231987021259847758629410402117862827411617064333003490881872363547107072143166055328610562687633023773739586119530118741938708541895862986815552066387965813210857987106268691162169641143867398540597302525456266258579798920983686637672299952720562889687163281811084227679480952423463379470787316250964834709694974098067885648775650279477323773058504900683655464977716472865878399802846988674861392015096432903612512086150232622922382692704250539797383566542623079435449866127951104395235501304528375449576608719311797788721123870259725645919354398902874446666290960738619101859756146099199929474070393807639559168694384726649677638539056693082376213288611561178071771788889066321428259575644812051253004398862426537298222149511124005088758162711005090724633881910690915817232537520935449126554760076709377365848616110898678339626968497213773690498661293000791587938285887304641460408054615249810925265687359890635509144465374241915480787917220761449215446212091077003784882468671553263952031765105604966963993093114053218073104139713376397747963995690811998269925037309154619695760324936867162354163795695586680639069474601662985628927711586346774780480401863899904896144673491596763899391770445990433831282626984519151469575087658415291078304986990467977453722807698742024697640332200085920208919253658362472409576269141208213869600637676668202660920873624902527704189681537532737804736574047406693603710926359143132794160055044216234161792453222336021697661048713779613379576697377264177335881473094439479297396673568166357220642336596854885939136961052378151938788364550644100228349772708250332681132451879185938258275298512756826642483800174105725383364927846280167620980838498915145854890979681089033933073724200293473525792698044963358394493745118954717964503427489237010538649647849576282136184288457010876345035505129264151159637490203838465474276153502574118815611796611846642655882433060674195355050895235683235981953247744790873186786869692949679757552132061002846127472872492321699925795131847030043856059733783063874014016026671450584732917751231881028537499368127734331932942773320307149857699210173408826651484036340905240346223676494690270123864210702855317680534489696476681525075654637461144839032293999396551271625981783346354692159762157099767797528994420650229940309107194982074580266794253069139709254452855563422613352820131322785817851130871935256424892049434668387959689656500495683264894317362563568442018921104401121040726047440590417131510948097758110373314179960327907733128404961813404594711860883491289137455053973516881910969793171734183129931073778686607181200359017288378533078650543838262861520245810058598882679481715338902613079979960297796342088713950710537393788498247893602605405984275346341692920099590183891855263251423964456935354813347376385805967133645873096579315166357358080999006340018980793261979514154786154827452635755823433770034858921836619205322196555360368889856592339429919969796091511120284104799349122715086673411457386414342200753375836023225520534088327500974517510062301769725900555865160463851430462085140725648634362753900937026152426966026366593467038822845178251510921301926518928312907777282532750085663663797104262225992265404342464381319631682541793133618059057037274422223271143543976802425580729295689639584246141793901712325087491312512769519062936405765148456263168710202394679284217302288990764468652344909028429530242574584546693236426635215136513807386433099953019920679408195008304225050563151560821443758716756594448014649671740206854643966424908684028709044592293418960445154434451637694319267904054856110862596960486431738785304677909405861779225384504449236625205922001231593016903660074918829462629258718191395126114633273191817230525878384243282650289840152855219159156491639032132908313516454633763877670078292872072892282104031648168531578757221806067176648129747555953154131518408812684185584839387466083321243597901372521516375847316607226573060561986189278791626946250687583461919403435030810975675657932699920580014773795331135429684136505294265797927676817011793144978886502809409134656029981422587600014278548856255138508236104740759102523125924461178268967338062470812721467273572608918771150295787345483253886692678132651920990107356689485594093812998670334081066822562698969829470693228808992414321677676806921539704453690303673379475266641207851218149001410786034418901770347643368977936301406791189770106561214638852051446926614081186062942198099105120048706319546763829699318961992695785330159131018623087106736366031750915264575810880342149960112158696865369286036534614848256818380947190491872555242550126031140753438135290141663684939807537463563615473739138305833319244315641844411360126962493595281027873025606581919390302464417076760219313305389191719810343494599185981792497523249500085233053004654448514474375549552418158138875559329201405830900462814955688605298838568315116968617651986105620902183847059676926660486449119167813319803206440385796287046320894134189148364202132903083247126465466600293803935414430313917938618745409651790053045800221805105917837734785182722572329600269016476157973807365696711263523601148846226604386258019555557735767681318146271825972037163048816367352379782919826443396948354616238616995353190462230891652220135517420269149966174940928706573685090730751449253889588462080570103864403364412344425322438300732628125794190441962612735893729323512401228518243604022384286508443409521846100479658899477486066134413884446234310910131504052498319080766340947119452515447850884614644093563535608551391204770477211077226754156779601909191275711444930998710881107629742639805385141281990112300089482405154829588116539264523360653301107404769566250061546473998249352017134359600815887252817434311214688304972733973430598789359900677395592915138230119381003512814568231277242731296052863758379930311084022889070183330196820607443185344223621495694951229540506800169974665721476314875776279978964918532117961548844084034285491269502230592407598330801345010214315936831230861342995716386716469760942661995022671932666594946444990938373373288364435599766415395210094127322599675191823098404956494299361001466490918510123158280281545395828634037540143078731318173490662772057240646481135358780531299006918866258495837761433976622015639578045026747930749887154893873928403704608083269399165937215515221069936682274540293294769816131329423741380051022295761973000072850437829294680348543707574398132768969108657926777216989763069636580114040126715280234844646577763180278176840779755317299391788162191117752224672491839126362658587587661897167345210481135050396325405211054876430451424213406631100770909322561056985768911312576642469302550638299934407978464424570230972698472339463118826081515798389620626701330676184348355463588517579906513224272422078342552707052792054247647477830490022257993859493551673979020522445198575676789872826713636861623780404552567931278080427475274889730418068762294472235125901210704823315121564901662002847462274580670290569018805375979618643936809141689549951840659148870977313124940828370434701710223116023872321213103060542169872986475266782391776676102260071230429475129072206921923815862089363568511134226437326586499091452629953518531364762083825447804063949426737526020556125261093978311102958887974927927364085689318272636869245283639121965041612815429898431274265057451003057477268037555053983164915426356719559512558328837990059437257711704297095310823807934391541435330873640703816603446949267609215458318190239294637540630986258366315945497311625467679312768252058882496644556496390534600316179922266749066878335895792226030033972323954017537346004963754031732559076254433252281572715575730407444942013389303745220193067038262830769308013209764802964449526032775316072595333514044604514115936544176339967881316184592303310844463104630590622566398235657846163499514440409533999622529388983756610887790504120870147678503689511328558083192646982014430417119511832921791825471770906073481160218002285132693037450719234695883241241646246998011917978968079521000384448565514342694298056143454518524201476104309490240730266053823585154801413363403286290594008414417969364165043980392179025326296638204147447235363212986467275114037324948543628891103267768468772353133335758945876866242974261205654915289739884701771211405313317783577611247022659964028857629212581241661602658017159389705545954701266823906956583362049864636944165719372109795962035182134823383823499626504548259240520613815319805221949579887575726752926671225368402720135581285116774431514196404447603076476847305722103138809719079409260213786576299712944300910019213927960498794445334911333483843839219026759202754387320831570335651553549660155000496062034680212274501136028416110157446477243724079772835148969918328393544404323464980097422685950204416436748505000771233938608993344392221181680433758996558036246873264848827204470192960742564542921992557362214418559783304450520342445726199197515788835401141668496366678189025548872472702458664438594860845660590607711642378338766556372606046071858420827702979750946853065101376653550610407179580850970882748160963599895945992266121387996481039239206549735578290203374748791407007050229518428136644299057851490692809651231418482843969973357065167492847127211605649064511935707323553617470637825609181436390579378786504836172910663246220065265194485109658854230266298061471564525134060489872784152778068441066251490198317142135203422697654210548321125333110729843929014090213109498614600674943162418540015171637106742101991740838465052330198606906921718595569640765586759846572963384076758381002094018612225557995199571336639843610876783916607792448219052053280723228307990485695844756443903837159873937171087276857864598549152598960024341756000426824694509183721525400657444350478787954240722588163550074825578953520313168852752264527815568857366947182106724463483282701730667450841868750183552702293923433518145779162412695528201291111557957379461843040462625366055612878379690772657464597826307893516895879671564195371758343528365788582914102844022996616548935117331613789023966599269523599010438483424842797347699596589296357729501350437471675841952827398345034161894877890703130816064205677233415239619091505448290561332663426903336607711721481606615298464549490820094621328341297961266446151435051700167515049329352435415226578085372733567441566626013453475108279288520481160422362490049614027435802163388322723817426357319672135171884680619635447650033162085411762018449159440156304944709120890607291332397524889823152639233412812157211644096821158467414055958808336970301168576928470545604287276811131784296623702958426387905075249880625958145697960814663210957076751217928822855517517503623698771192403384796911336835648750817413048661684895350612234336331250850161726102319386269315018209396703931669712006337813614720056192833074867060577103792303415497967708565039940833382268210045212616673078383979980613884182528399581114890196569322008008520534414248390006699805793389908461745476023151390423283370509728042575775712126373670096735145867310702632799584579003108653898401420060952189660184782682658103382331706757590916249730552662850305161388056741574078630031355547693694502034658482100432481866470654785772170347406219357794827422314684224209313655752116858837487441809549197928972885940412121217131463612944465890167546861892744626686648054865002912652743756427880632897041556988792285738926684351253831420361556433586602443424399360791668274683511541207250091693670053645193838422711242961847165733020671915627173467007721804513974672805777076051194156096428967579454586021906586926292362370208220782784897263205977367648125796184069334740105713054974051099222750701449825949113881024088931301867001046428210875496750298619972678143690317972041534789129989914239685935424800842259028743207458534234422972099102531660140926905009025960098806297832094271126872601158219663151416484030448076595933717515222277274433196363393447622550367368642448801641602378849005067189184510932760561672762535050133539559040062024112329383969086189807205602054658031003762097452905105167528070592024113760940039784199940361331033503399725706770385186821804853091749031279773215446076316985929987825151857729277166095357270876596116594282121310839194158762982609153680841419879032133158418141382289659538791199622043303680184401347744461635103008515164112646306068388903276192591104945379428849963377543412328832792025478791654263856254411506173869762566234093476461317419757143702052484602674536863761998465412708775993802131457540559623079169960836832243688640110625315383014336951022260460008679758179423349537424526801788640373496638698178276184012168471675917773975292007660701525730608974502607203714543674235438444016759034935766246521096123670213648021718680576928124477240779032390248704865846001148878215346534912424008252062465030153473809236917701710803637842003394282417431207310743159472445997789248268437721159071037685911109122866328397094386430664411942491034148952004755001910125576435054648337879553722145968533136880597512096884862686520890424361550753087698203684359132760795095958154049475745676951762451156504959454356347954855024123089267281257935355295393985632031873346417102664209851815286540495435104402625303777398366491867261125212958109360333230491903444859025853897852902810695591294485297028850160389454696221388173094799033686859963051537932150146511370743884704618129619058163900215616107032121993095484043924830750659149602893937474187036416414662847459986632923239655121954911752705431073441677849674307883059837356664181491847008590560858879883737426661311927663715475140278934322415959217125613604480824249421592649415940644369513571094666373337995158386421793087251664517685734094516395335778884820181314937523374832981555896949679992093478532994362580758530954302957238765095423168681754843929601918528535540023612409292521231050837230598331914731738088672016851616599847028668782039861676211188597413431145090497722984503360529373022117322444969185851031835406131131042679406117152305519865126395482589140601644859848601523628936673413272329206750090381536966373244815445643110745635836812912756134580376824629882379562967367299102851836236830143547229289633863909748662302503586818428246252840001821200004832537819627154096985034527284795963029381538920055508165598519074328399824685896399871215404170814760629592109580740366462699705807756663652482389784966036972170397590373295261128709756367446636908352985626819574835605548637361693758355881102058465736411303763223716889101381311611419228244983502615613332124486840029651710495919718472269972113937057059112956409053381405002381727688189336786128464892715192863629302389519330322107398013004458785336283635557938570334381029243933759379927380356068488194127152312541058187618787227013810447908266332816072001294459077681539606392389362207672085117662206657186736960328137026418754557903537863526226111039474030347778926508673783642649145784881862386368080580530150971126285620212855871162105671328438124267430423350404776192693551248573908242223143257824505907125036189556315638049637003607560444828878033245747157316970043927261054352438101400233556435300480595405258998872357287677787771029751354150099336301696541400301615869830346321914321135535630765937361244860207477022046656639565789309172390436207033210138732278062649324907223838805539065130838446000737946598371948301495588940192744778924447986260394775960687950369783531805725634103821208672740690965993804009261106611226183026269605061366962900303100506797562109052656444648818941010070042821421622574140452842684980364065480642077796221356171923578691081804013233153148449759971784318760373084315192080088927457490757390281787858268996079498434189686806911384169055480283790814868712967208424841686969470284756298010734087831259493449910097132805341405224325605405972052814156388694035710576093525462820329761646559406650906081905908538308513829521355350762500324988345448017241507782802349645860600093528421005086456963766882640531290833227193772399160739971202280541132134361903581717883193135305135162565372154792063754391152926453031178853334464082857668021885612850435461510822724087522280992465140574829265432773722678231504656812007808078181759939896973782733112777172565641393088980423975594482381755734052015124410685305095673470972965515735301464560979318796832993518711121438877430371837362280203048234546475311172917517716637272678247705477252257842107157369182714170594254540990666103364018947752399942922937685811923248331247904542014368840147096808404001824074481020421139715139336617606910842304549543399905713102398816415622082449621321123471473841060481051555763497191918910104127356886739916109605375840231217421736954442776873173575353580437932002318109637561646926095352437290705097531295769125749926933483090628385500930436876616688858138726376794043451027627963163101859083899840414238779339340809148393424929612578286150825376902387504235398122551988868014966162129139024150708390671875465199130727328380516798529522116636029639389679339019736380829580898130383641333136993423181269288687462712748137691195488957876924391355617588933377884376898285049717960295822891195375391273441062200266157143325638489946438823433203391983670600928611247911734014678490869113154402742531592415799929681384224442027601344805676913618104848392289635341175903925459266074994078661476967485625008300094936252949172721280914899690945914558584819366421127733763709473137442196765528864416777933138661807961266337841605246261576281881376185818959876366827287359135581431938466948244826277767877791367489024232792855545718243973848719312011087843242950337634683340362470882979638757314691882450230004186345243532865448291591527463378255042991618882427570942918067804396636651945530410982636662183019560462239794920987445829504254984376879528893822059112200272404791694676029678034686072570797381653834663788022851702177584232264300956613114899353085359420376039407343037379133706204753293971849606517162616500441815470801789564532186111681788252140478853331156914070990581489025737149028691429819249453260528427010945848604545428281626987885131358082807284248581386171680485724194263203658356186901187163016013727563456929894170742504904997249450703787334870620960850682083315830680490868926584367800680107646389393203046203697082936215389579759747721445231959789094284658048290642799929688424142348588981920990884461286936653837167185348591946371595850253126492620393101038842980624560622856341056558281114942998400445535469763314192923898205224180950758445865731250260460196738944747455704550991615605787226704143478100472961988014113253411598048685044579709761634673939041438644429289776179707983706013859740314415228306863748657724844337350768928601136620461012931620807136180947778858010458982646103610364537549992721184430363370014842585258897848064803906761223750754047598616919256772562361720126838356208908712506048490234368159739093819416794759420641258921168486243145420842576125142225720826806903930032004745338845103665184829488225882966363251145462038721676918118560081783309839627099898293168598023151670642529229997719473535633023388716964050376211074472462830351738439887817549411302048328492006357722211773590458187723526335854377653209627819586265860449274567741966770610967042223241655886918716382171509921757262635586471955192547793535957264540156508210697846962917121923759304974325494199635123141091463126776290005480548033044780763214762105529200516507531382794889287758510138084495969995870257658750184249565935743105283312991529085383867925610204922578487222321365115741654068566287764811121894675435042787820685348544060670377841816465014200559217965234832634451028977861349269989912578783463294784346912962705707101971683185488958737430143815621233413517148227490104760431440264576700803365593311492825968011872414697306467801384958690901319579422515907203094074945160098227198949098371397764225256999025503154503370083149957016827944155949406846758707865647786202175506105190152252356424983235507394718268292641756814881474528806505051969722404388478997836018764069210919499714632529432262657050996019395520133838198960476739659595758822920519010221476847630157528546423037446012949789057744888419329023141581051514348429261378229958261871046505028427886903312463762911436027281525633997706673448536746218539059575543589155100641036655405514871770021986700212691783109514900401176074425809893903061105719739622981381137468893984266312037279425179150635363326267397764688019461821475056029299221986517165211250424209841968488641487245559647266955905727799739306326680874933151111415425324116883704007301054452760007998388378219637067974990882982682295939919237221804113970742340840078750597183351974981604782420241734716914544869578638512233355952706082006410451151965623069574090052630502855749373521728074863449162971229241875345189688842615342972160543809873005455076565360926177497515547642809930588727290134156910718808999890901355254527975628333262698479604717814164528326093815291764701300050183279611250751646445479771257323675409370373284397065264407013268488776561209374181481187197087178563027656154613593782502609678840219510101744667559712721481664997836778322921637144129146417636750163386913804867775593388178758690317139313262192103714549378178935860881019031059637276297314812872801942918210299988455108943298807584088873852609473947959343295080551330648688104424032464993351087344710193970277931513527456907931473630577179374545265411940058960882212695766123277974971498986137148473218525184173468204065284180010737705108608979856641306570932261309010092363679966500912770444407833520001007230638651158174465329773190695920618939913809454110735527071158481454144657607744119937414650579098911945931117352287185597606784297585848712323664317215064165309846879350253342580511178003420072094041798483150357600060079436150518135942317093424118586733220897715830593756119039414916485887528430769539602365989702097589969554273705703610532977762863542202617408920092589007690790868600771048171975491713365566499506792377293539470996492066991552821769905571197735726891040177936448283996493326389059572956532043469656672810132706303747684843653557399998761564239747989471307837339953835016989059703052150149373905722305393764402781180121958918131696980743106643297220169211093699220154026155315407573244397448876041645149492559433219491689950974941765668885637134978714376689759190990586374528907770277418640613607896858283396306163137203409903932015565128135148973987618330652038281996573948796159637518550768599737251721327729494922447707089379712885755898557544948874172639480409177572011555661443042212503318084676311166880292857310615000209632333769286968096446881520104237105151592413342921177151597660887116138033383988541311684601339384556824962153199658635137247654939170828473343411530906024472965357876948506987426051731928297788642901735858223126196866177166695095280592984572888821597723123444189226849243154472648787758723806499815223389482201847196755451816452971051120623638431897782086320589377007933644171119944822577959787384765720896055334876632907323462667510092416016480452399242709749259223283842586911923324103098660718243044650712844943637683634998840829365412318351108490807120874083027004895962816573121164094100956527020401149693017830068967469530344688620529031696805867085130863828508921567222144713760179768734669929831819969592698338887622612503861130670498326809879646428916137086593016031755332651421129199861514653935111313378950860003454833302685182594629899511769278446310657074874534869238901729471201401147883558718524742011294854969304368547716634700853678999723897201048566451717880354937908484200549916265107014197921609602194991859648568808973420915862165072523775709211769968127141049936304840872631070176792810486590694349341531685424174385027062899336357249665529666567269923826122359707317464565260678499385567362700496958608498608375329000082957848881062787840054348131237098159005089851420497351636174136817980025518340946543448755810076006669388140593507327489938090956277990814050808697264967885003725793485463476032678379170471072659624980074263062698645758836706535691914804765898930063629365995247675218304423129772003515930830207396214151225044506864515059800158681260122366931390017150436437720114356826163134447048584870741065624615470455361759313735178816689898996972855484751302049106098762676867169759866967365554321604622394905198731762895975376854460260361609721730142460761414440718056314320240243212032874058249884859544303306472035197759632811388935169565210505819162504282007811176505059353097403201499912171677957840177047169403025639712903266669881288111420168412969538486412515560802700640523199462658872466978771758195429972183186976761833979835496632739090680016223930093290238845536913795780829822211930838375999327592871435094550440855401043157584657126050096240180049536805308047674992264672347062933893982698465854076716187829784921172695111048838413861594497044264849834536449802208913885138576915407532549736650207623412045778986788538588246165827453023306659533442069299855801924885706812665154642133138358704134406470883029388939403595797483951148214790784628658632256255571619294857934079378550757532428229920515232229198397548763056095747616749173255295581395441735452512854578952121543732428633097547755087760392888119026612556859862060914681907712269239808513713705566777690289919760905847465983729322663617315010531563495698429421571452901127070725138840875468326536069546623417101362654870527040680032227512316906641625669120183351680807669936355538757450750769339580766503450695906710103211986079052865442010445867925571901496518421664626760968560769116638884412987131884643911752114957027521374741461206721563786833269026013594492862818300884409759907458007102792987885603477874730452666877050257245510014387978357691957717587872939226855346747723196643100625478608524964643723589423503175855822634897980207366302502459558115525964825023593820459066440542162670710874442874341500291222974454226526507354597046390133363908134995212152675667538684959914585003327092088731700402281348013681746034061347588555354780885864100575254153043750845692570637694291605143804384164992080040009747328515767282947117120936433633216916845421070076024722953580135501158271960549840427574278866925945809939436133027452011145938619233230448046134604460480330901299270715918631609031281440373059266748583510763016144387567559449637609437237489870509124840538290299367850013455459536412281354318938798887827389837839965499495002303676612178138828965878822069892270472746070727271292645594156947825458362219522699589806621853236756201097832824934964094235244061105522556611335478759377430403382560988894824101190962988629705704024460965963876236972398215725663725426478659824708302458632158178094664773006888508856277645910355970284353668515533419870416301845360803986362503348556991681086625419376405151707019601351496385372003074694471818752453951275708740281598932346445509486709231708910720720504510237441624510892794213105541672186166980662415039616468137212694993005174798792409513571548892881471931334452999482818006466366439555631814197181156659426034475199366555869706957281300268509790719184425401428483098677745123764367676197022604112936259469940495304339689331166944811959923792059598952769114231447425746020054093464462154603021051728004172560948413488633322464013191919190120102872232132091110573951967613481630873083799436708820024283277048374633957673361930596224001792955267712375026579963579205427615494430346082438998184377960328290716785357824398498614429703475022917804116127688683222229170463852802927966415267863601887821698956110227820334863901962284681810396903317608744947467702598372116367222303194670626789333041279790805845434801647965306625910448575248541666276645800583584528215637345708740147082096230210071203531117742470850171884899708704901721626344786687500697974965315031719336243906250067204369207334284873568716455434472481174125202288899900325447755214674786544953864246228921738924729831046195480580911619729047799078418224789788366837111665201049809016032061735421165703984812027286396976306235187365361289009411800427705248995673863692997065655745053682168674957534353211664641317089003871535305664556747826413027455045396032231931080328242713054531813387094070970898887838732322888503120597628664029662145094532475408990038592058099206368690951702567459687233382905356863690202150310771674071072032582692639635909599342013458578553410462911530172179260608951294084985809978849313970492089711680661109200097744271346923472669303631940901962369676258476210862830892845165110720380562142234023887096011557319170097572830574858225651184951113589126753072699789392003734390166713019967988537599701314152100506749219068518289794739934089145114024631134745309209271033993877029166365805268541879885226041912508486194325096600964309129613463099508660669105676748952428540641936261428259050655901529309376577679374556154588673204183493096223636932544590825147537589250153742035829360541349662190349403652020807630519052826128618639244695765939545904407157548547135546862486880392089204498373288666305929130722359911034548964796279304995954618542873704467325412535076841763619554426958328371379110393289680273021618614089986401406618025874495867289790833550359788320938924021704214761783898348223955956654567988477588127892069108394738785041469642961262590846425667737852700101286858517849064842387646167508126174276822990383754176103988546321314239993692364564845409175256206800093709262396349550739459564050563975010460534991132054358915476331400908911806055600749770411083506491949197570652351895199040953039764622008355096314403306677369532982987885324310694404453897043690021852512801245107331882356751613583377177262534635935710542435524308469386144988385231487629102502195855316925547777540377637528680997917665034402582631316873483028563715791363902095438225913907244117793771732616389549186125115590851610612533850875465623726524727847354612295448933697969608416358219487858633354674296013935342231928732475620497579508030660577584036275696879603030685511756919919599787904146200749943333491670168235639943801849222525481548807211820387452955440590593575973669444145690377734943081780328396485463277690039614733113092091474824472133931953259453821115135125192027195359376449012418480251144792788152767765434238388533955055813172620186083545486680436055720393474459632817236430398895449874940747155776167609691264880216250472017048872806362808875341842489491913183812019718264933571316820424868139554004458960175750547612777089085773100300677970757843915785440770904179556986477060020202993767358566625564046237093838500754156881816789851316324424764069040964130109079483721394370976885978708005603537751634712351342159909037314071344127378899518554900382751193975546398658110656870638893971569379386780481585649538557794525264136102717673896363502420082422261202439784268451889534057429439505938069832725490020768899323199961217387568678569645187874901122855281856588492075613733568409712213364091206403262282822953236808610794989666134816103900577622029480238836504484169681002612824002632391144448420187609455804592583826808343110387387125750442631154259298205331383450086150536881584133651114749561602801255028477006873833028769577177607467100278355167156142363020280008738231690561268718568853428241126751548883151293233886431401746930385496599840438506055508128800298542976823977863682747150820248858058358908698706453748655866161784905684538753870092490303480019543977961941753401489554714633529742953386345602043985211501923290423936504924527670777738661523074326461653804707285870423974269021823865482065536559877243508065706587732400130943457220836865825052566403396308966798314755288795933655551872282842581611774850487080995881969310662018247480891679717002147307698039888367570435993079831742339872196878650652203214251174307409302441254817239030508825994555972501650695994017283249154646645912995905617839447595062478561182694240739109914022649386775823528334295567735961719458813044149208859490020613071037231153776463479025783814813138740715463389000612290435318872039249291539349465502162338044381785863714669252698618994140575088890019067652728848079389883519087259713115239989294075140313664453562011621830054963241507925881161290050590360063932525468806211096798291581152964893456841173364081862460365349323413208845623706971014921414729688206997611848362088816818315181508067138211407814783603902959925051095121916938146120413487940344979138647759584934478282431674528715030153528912652416776050511480321262298332887399613594715242885929541506457746731910903503861243863569856691919981778470097544914884496583966803212309747725002764934627724802526461002535313009603340723314765588677615438140570600180865333153557646255524987089079558935867701091729976141871385711793399918760615587803343449938673666219625419283275850993562083861683994325705274075364808660238601766626135300826116381007629586660406310113223023652260175765407766769120631671728019167577208048206641322366190449786669829299926419539456609708030786414462702777264255588133549816365244284711185633521976645359530917756744683876236230599904842881978540485022737150681989915300127401547879286928608338328964130000347774929676407462732304735161066092219829860410069933676836845008070111481777938667592290129881365268241209472976772425328943112844614844443305020035568855048139371622074409672659523309949810850537579996610317644958940705035883988720095517174505688244788967251987571040010627676111186791545696721152270295183303032811979499233876402136627695429240589166557755139931521643284008338016934545726340223639794578471400389724694138163556709475609200662494014305357579392220841387227765319144265278995172759416494769266083092010065021302624170389616008749756458304931120405919866292223319210618473244443756107160988902967594911569306035805204335216200142809496134364716068938428977112374981589171537910776093818353067337300150555450980374312087848320942125004233513337372151791089457037937997893448774068845669813497931836260798881896793901034486180217467188504816352807148892960876936360827902869479311601893884840411443262234543442056999076206981204152710269282551581438513381781444879782026722607721418853069414684120036726522284727279330408919338868901794054495332066528837043431846654432369211233574934389888526108741337877624846599232143042985096104201992368598884850790085573668831944088953034152315165961307157223845395213445029272708878520979708299477354835095675303488073175799824097472366842543408011278415702069864046276216718993531430044075075266698333298694716481361661997847777551074625492130774851697508342836714561832804939159356251649581860455118671516915021588971040523085732116901996016132406612274579847738233180856962602879686487977677712633659938495604302414964327221737020308687072803972885867425155432291680425812025600601317194190973610043317355359013536847478274904107719975903054673674326878046119538678860351864702203808416991851256067553001192685301342051252684574639201853615135718006113588832436227444773641334973208479868821742164666118340536247074095995470359839608008321976845478329166039850718392509289997149566929472015319898584950708744951011047637382933144147494230333381872366598448495892778154063175357632736412929829454320419780014309892269561745623156047674104331314841994878928977714760674705550836575486131841420808996274350192552878289042422487571709894322609292393658930849773279375297377159932473094377116226097455596045120056952570107263986931056337922959950223324318869719434709658152446795087137385684160064385211479982209668848535297394778236838719271428905331095501395187415050498537997988182722783805794020979325761255390763781458285767225670694550993366841391547837150506699941302955897086430237129796713723375450124404424437780523767115805309191710279682061896002824353998480752648841378224389946677525712998540422206322167807526940897544461594282077541619759282858733927611183717687908775935751434294251782298415716719512100743542666929284295677370115867733662367101109397795225780582194529056150866418823075148387065915729550532131723949839872535708709921707126005426126508496005218253684290292744153045111147871010187845869176297810107451448135452952398676708405922812823385634176874675305684951385288752507670393429336474276038444899188836901512882663368990106861551640476624761666156338734333099776028890536375358669609610317016397381652043652238068658180277447827156380183351611000219135168539417028620377968180833296871381975748042352942943391850917991685740834685389943409163160823128511292290352836923136341687248175400937331249738835255011130567392159364714337299638907690971376019898216758801531538090871930102520338898586966578435579895175787380713412588722515030197715147202019064214359349043533223574785944961891819213159592155952576791883691576040685850322002098426078087452725624095426272357527920196103798475768280431001465504711544766788254041748971003434666276384750162106367225328189719027780406389547938472925789327027667657020246387778195154012047280571220449721184489124474723784500478428517953793439018715276012911004516083012340684366978394605274176066062111659174177256633030507290814321183226805458466256196543710783427305092045314356396181939132016644267922997489135345000570755000353591260014808111830610979493544736560172121862679928035691748041535432688806428423538194290474834205701827741608812632417470960140337110266665130867244164759069162044989096879237806178018939562656542302092750583095771734971803235230893321467440880154359685668887992617496159688607926084027850917289631179445695041931034349678261326120265446127362993791088687442780354324779590864242866702567470961292368401054513412589581740449665764170138490199422063715754588870994646504997835625787255571577539009464122634822578598840944714467180996246923690564097722667041641439763218787370283609026121583196297512996282185705417164151894052137800620629375226185461338955879202237575228217024604356032546028324642534523630056723525037864255898131123419060877243498658525867305248238039603999906557419676561509651425175833786829058152424146244324218576371107926825955131632053338625009954949265761982723341646990589671861564594250756487392397150550404235919708646335081911917117167882506729359774633504383066655081223011989139045571003940966892195772102305364206166162588114451971647856304112573373468971245871973598884065309591749310858083574266079117203119184580290604356498154949391497864701525688554578174572230625020951922556591492673554140704912492065171465562389837522519563680938129429440266522072925724506330524485508690412358085183390016273063296947775337684319792801779865425708396809444723124954937806768862778661751405877588693644037662889904878852390693577736181583099833250782323963317275103552133214134147862462446740582456789620065416286552199535687373742391207285444311266855247219717464504209407777192073560348490997178565954743140214028596805933472505900721433303717103418540045782114989513933288669865270912594031558446478878167324617219712593057546606179156319833701948740363663609836517265827420312756172325989114085539069424115496178183357604118867422552074762530197865806967305831150086696021597018376970176240872502071993465129629815781999776985301327196277164221392514498697791302311371181605789450040822315525968426216806681615223039571043537923440025318032776177894827082704056699553386486883232957161415643102094151542692387816443132878815864320005604827507844001444770933524827695792116341607749413196528003320866852550221944371392578884091924624826148974506186865213844329757263974717026403507264452035468307144917378190542309263889241790312132007177459150102370544853415701971093946106488138440997896726576838529825802210099055860030202592406115679845817181576563016918207523053387722043033039950186714259367771792144342871077223562367655591225700804598677054100027136336971967129142130161514039677275665849413573486729858189562087507134633214661649418046900868038587522264001816390214550731712579657582702412962011073036417423706614952050909152019065678129841497249052608843121165837390032363499362833899948055352315130279720470772572298836863791653244338217104398307564915118480639282462852248924966820073138326849363351782236018975206889375087825668308525020161663401624088364899651591532661829368059801732305279068777059340307342798831622711332652693770813911567814427195610750548068310862429207839695035029695086562535302546532979113287416626579452417540874368233234644759848391377992416259425138104186850998581706851662016907249885011878867128195897233224934920667291902079120469295461611865853930538773898583654543917310151144181589175393847746004817950983615711870967172746245823699239219226050277506626982745785912634936395590963172070459598594148007076540024336020232251646398068222637510784434277156325600160260478360203323992710725451475854562376591286013989266972952288854527564553275436536466294469000141028920126860891625024455800521405975932760244987163240862041734709145192605504928761591144655080826796569942098608193003340958172031745448002387064956820694767902015084575761178145426590208506733469106025616484480639971640797648382801289218604890476273156309220002611379333505123511747843769744378241350278452771259370334999937435461793735401193894358044446499094748759685099122447254229868766648009701324484127698619672064186286536118942161210764813561583180741680019903601184312116981928153888118113719694844442495520282216842670618166296303195387692189497710191852238496882041449866540287024790494525508291453491566501733915308306064418565481254797628209509841377133104219301539022236435321405428361092613119584705883243877881307280170651935592914566462104794493216066344609187601961165553745968609000021102598704768242088902329067924938886687317275907037466323233996757088789667484630538350871554355480228856193911042966701358053395055138916962864442736515992616852176591834438871688568447706120906172260134725060972084082672128366323678884062154782336050223782150987885689657453190943616825440650154977782631540975757274142506865691377530159437329279719215592111492838827420016518726740450848913638723469582814913511801330085832247167230982147205010647689287908065946007162270692364467049579233955171055320498115454533259568175576269418900525971997604172757587370972560275403603819092672277537598157494487071755092407927563136198541404179157460146078318681619854868361988947979705642905110771779993652653919302550448945745693747404275512121024652467374421442471647441115206276944972821151458628761488687328595389624746125584993234389158527189267516877135522768954216896871744568793244438858189628816038276315011546071386422917616891112967326810749593165921840977292698381346701605129116073481761968963605490881850841292260851460513348758988982035230594872892264663599774159288128067268077474464116536262980279009867118033474359923536278134976976343556347784396649657847586554273710538990028528862255701616612364234164610110560350492722089598915149259124691622234140935452487349745266545470129894647880404634269063455386309003851150564994871419511557513889086823899356176044068873814889112341006531457390627729422783781896103424577705678506549688199651433564067459315143752271160703956410544632736492795861568308323974612765589755789930708456681584123353910864446492352410430330182609344226216575529863175417459884513898141945346974895153022288522722291027816314626641351656734849740615326140979759785112316393454890291597050858810548050172086332220295518220885889406123729534138895130608102379709138196287336171048690111614962255153042222752062337185901195694478307698289106693360617493281912761187458083029723815789278449404110198307994461923659766480857647679913455598920143899471581478795223830329083465313086932340823591627877722211582638293507491641952093652166777541642152930282431701295072522109362796286325264326408551537149485336644118675535960924430691460757596813486802832000776625914342862065387848823580146817238516140102394857904119063527525827715058206756560331861934529167054791282343315466392735375114794677767995582635145447933240640045816588776823932004643907631468421907836563747028570879270350499632557720489904593359391580741169429416314248360627453817004903978732210590878644574266679767734498191480458441899560027521719090644524242636412736779519677874547695030164110011710390696694417809272508326935733723356015058709718157079604983469605422683445514698234535402445892681432030817872147020330886412386929831238366191880737943496813701563821738046570497198484264354406356184459393109962207366086272484277665571757592607772605426833158862655081565617436555132639080913687846995465831287348599700292150922581229324294795911873106971147552505248660238438982348005390420068517133233709318228575665103780170290335784958352679393706354571432317724033383838401150172516309232689431130330855713539465362572851068317000825873013300077279862054074289363656047318395223849488439589452893758694877606537089252516516611117271184203168206672008003784487441066620936248917065347183181471643349852025517073309796182173687007810914936692166926321504336863986171839181782078834268802516623801678475417691651894277645481585537751984605681581033763492662848762299332514087516020512785644516433066522017464129227732150648333544479465452360565387891661781851320715754821229826813124202613077895043782675990920875133092116055398408107902889584041824964049664284241128387869333945718546578129469916650084052368789459379432105657634851369079726418779659223016655681569938998024567087897548217451255518947100460181610732344723551640055154054831740511527505719386822177426102222998611420811886931768367751171820185706383996538547484445121736161326915961764898471182582009420769866991434296907569141504893260821659892994539305535218953276699308432919243200991292167464770634151717483954916528667011502957853748701302589619312189371302987047726639507103480603365003650191787227105513779605780465417688623541989575086245199838786375950101667445040655821232872662454717350292605074653098133606686588526696771417634811412783798476125974517260913458602897402172716942046273055545763276864389853441202129912017862231915602572505079960184170906966774463358205547069637193108816163603361805056791028199960457144433006674092544001078544123456808450679357990330847636712584731655666660456265486089020084269762614656817080628643053137379151302239799829979326771667915557074487495323923086298437380710607262024283083716649237691286802410870065597924885838515166460862135356751057453657497524526759749017296490680786091547637557358974102967465595136960571112724914323500079687629154033920193235679551680964643091307958204892377398421198856636955632858908270666189719797393529414877969121368059005271188070902057174633962011675786840683718637310960493269650867424690765157168852363704245464945572832666403310133119283449607971414407317543314326837651911327307975005076716214277825091266793460699666976262920235087976409478654381878398946495230393489160221224429592693058263081207870703013822357507502186358579649641648909268328350049475111539516833289428605459628563323127123567166574120042027352935490430581886873171298915632412674945374036370476407430679928388019964842496691049221213220656280130813722750454534770430191091209856370370358398879301992787816874168440013907204064235070464006591111119438562956059361683365913285841006651251326741050418761120093816163371362998594513439845832189746949889546150744918969819207573353492813384713175946898387305641448063789130056912329346756248463154417385548715440549397334795783358336089263143717512294359442536937471577484094517173053581990070217595474597237517850367938296683742304868042796022494325896310438516422409760906179392687438729104092959554156127398054359111696222745874730113331587472672510532173829596351602862466304837001912462091562326351953707264364632392568925578591760150713252241702799889361477148462632287308100970715718618565697034219426094823395702222317500713783174994630231621397744011388844916263182865540526630767867877716916192242300311264271461945617634024004188640561542851617531011027379579354287766984729081102224160452210959925209291249888267383545207128965634268733282050556481825130036730371421914802607670486232594927460445107815351861657697752415642686050664328323092728391638725599546697006553534898031501834307026782220519525696657038143513977311348328373096124932275163530241485835301796466790950689382122191208978082915974917213806271229867795719598898024777285072611522493622047112861335661822503848775435500637203716819912010482891939952784411163424684731162946513929359894420657788962929777453191137882524048124696998257494463378138956774187638187794594852944122565850085069684765779332196211075845176807909042688662817032435939268301237562660436378002467412900374458017420422364758651233615879077132406474583263667756261062203853278057984457782629707864813419202676263423572847115978080254212050551998749112530079663321287020397843108866391482721509305338532980556521178478398735915564646695554653966051999998572850464639248552722180783992440145533689970112289084551386770242960972952210934792226142849845638259862152686257210034120183439387504149811878516272246578734290187871469540021983338457856829249847160661024615188137628766304503246820523391553835493234842862924837237452730354589848351809397097963396945124027845557850982633121897772820494105235710414194876908521300321239207797630756147070313014997319799597785685261574141539058059593381097936491776128383610761780205790738346043684601809073152420114880074173665136905039244757394827215405255780628921356615277445857027609159263146831106915743642792538801257488606554140505453813315974323741389049976066213500861917441463421012908587467630508033645256468915126362018584696573979596119198633434352428689213944857004184819822565532437995788107868972270271007546670802540118940223531150194096454067232145981494555922879920566418953378483737879550413321547855208424895860797168385297655259753093247097645271813559569622624521330197870426066244763681163455237528103639239658816378017566345795620392523702010006101074500489641933562662400310829459056190313011460624315341281206248109969308292822537444548080992836734514339704794118517699193447080200966912183805429473272855791352294266299543623908781096106563108725118656169412841891614944054179355987729121495038069475368919505897388603563029852444216308961750836409136965241137870611775755842073702221770634661786208871370404728232066828798664488175060988401380845695987952674453395589998752767036102890367109435585559107392601287976981144875915930138010704810371831365476429424791403919918486395057814804005798740522413796656002316411752839382408625733088583097736227738710407158528332800431987151904636994328300820281659284438617679590378025847602346283043494980683389564877109616420868990347158396438258893875691077139814754912055410517501791825051458823652252534107182569798004129195442267568444103849583831886816458015517920237393423377993876471768805258157868419872392614343964412735257234153927312741979708433070771018556210251156632715103490313898092053257977199736434931388600549093261775695650495365664111539029274740068671699665894549772477713419276193333612708737113841693355015122388824235141546766266008902204485996341955498932754067764223989752230070932333919750641418630285082707148908323749337924855396076593724435695082187361129042686695543821316531976000257465283136410515422931617757063800716336874980972744338251830298260037419816493721176735017172276753376794082495710464835742185866936617912452338407174361276795246884766604278326204976762254146334330181591799357865095073349375404499122199890961020227318635441437040815780238047948222556644918192009039164961519038959536527608988060677395068675989046357541222970766797722641743440172611692679024167384838718039551740125846190985127996554664760191751068457021355141477992039728573607091594484637316322937775299310466541659780294934115195754416864202246985071753455370623668864195899361168792610883816894081199095955897791906968566127650649879795774003091745655789143638817980271417385004013338967536560224373300202048583467953100826330505434870466420145737440939023790957091579557784156748727766774762815517813319041563367785962461969158340818696708259386089755480806257450972578659116585501273154119801779906600819673543572011646954992473566373532479809998929328625181851468022484777169164834999308601030549332519888612324940046081350335537376808078448793376944871541412229204926510095293187920165140546497232320423774440156055554462925431936435646608872919935738306658167913529604699113648319323720390981974028299314650912833289412584576085366263297856078178450458266017563334052663360131111943826615645754253785758866983969236368300854161457815927794472327102275260207863261089556702348148504858069698776053580423418319646027248841592774719665729100143051219978367125493664419862193445420272170395065662113832735354171874018531080529434733467706211101434536844300614520658675534489973052566258307534554273364956160217750049939652578984898105663151719043915376949369043187843788547363622754942401449635897199124846878817220371557811223984133150976035118415345841907947675057654146124394284629559081880484918138402813981307362131801751620126385425842420839169821697492990206989817304608403695986659459073550885374758704034674705141313150968963599415451363236003772537703846084714004046787049122468044513075395246643234675455923307148876575020797538910882537458416840279754280053096412653290775760368771956069171947355278335628090063103005371099071791769569940055021089278167411190604911086245711713469009284778976946943252728123956881699019326339885032722537245554091009453728435303005453162587727634753519955027174250550152647390927259636687363826518034809834753392101434163380737933450014579441311251149151423230572123603717335811361895136741045173738963016623143117342708796595344821499793044155811721066845721015751763265143300478864592681806021573149035466520155879058432772288995444329848696023769202017788875014858018208739819046896474088092078328049060627338803918565162270630653340380841584046100751535399413679654782796030854088701297738460161691388888637947800772112887567303907228813873664600229241357237030617753503317576016639700269052737850662602918767473410748888933764980371007842531600840596875007055280553223430198045637731094729827754710706621126939426417961556673643584633763470958875867725474525830782134381997245612790982865657702041716278911971535553418599227709891313384496819788395745321374967121022266386716230870885235921263863181027585039110025544726454391479535939138282543150837914728084198371148585450141240658521479949482846783542141443291812894419559280857339382674596195117588765429808738557232946286970812675425327261659130993993248793954109653470704957794651290704424840685680383739409521797297170803276511261187396357189681899080587397000353757489393551886193762811581405542493478839368302717448961064772576729521176406269670259767525495852365200553010035356757424429174405086849065588922424333683296416434844642592134828594966392220869376294880226420308864832574348954178440026297323491507458075782725060028723858930010158242616299744511430804206637067322846968125967804572065887375297379883587050196956310534612525982529065958316019915967040828962676328734200328403794397062591756030559790172376542598110798143885308762569135736335687861098149208059521862440598846170732368632391940874432314367997069823670248504366003190107805171226019831534267340022035274964501509145256787615573908419196359406009052241821906727836216199371553193262390715850733384916668134045899654809657161659665016429266156183044560360621753927630710725650192226051191538580193302218419369172048274286350395061861651487471151658977789473125390181571165832649761458344252797109824884081628084143845717647583769107221011317215265372030102034815992433626718317146540140966094656970331896754703547031645654106595703277811321718989129456767356914581144953389672635459554797061149325339027144050795735133791128042124698596153680339675581542543971256258551680225014350548550331640155807337652119122755662544089856021652164710619089113868058042074141566013253028232306602011278701941838674265028162705162036888258923534243818504248220921297130738151628883514315108309630501881821303170273282498586251074502422169197689826120886927425814870253597933516622584422046522270528097300332848561118130039880704072158621264258750373007032406985727590507599755147655182075358868488895529087874257413838256868003795876024002617388697320994253104733269216702356550559275485541205221350898898729364862440533377750015907481163973285310240142173431189097901629917642150467534586559508414383268295809702957059342212581189300012321489498586148416693782009893652175539514958836520464757513327720499810204523144585270177658121751461574867927344741374386025922243256354839848002506254986538311649932842153770047747587374549849427507674779168879814357508981118809530193800647172026032074195044355741598123382710792746487051666193599972464156271585737273867025031240044094471184348497968528500693429298352325058907645571941094680025465202875507244665928328894797407086533040776964462057162002106377747427829428396386387100066333300870995904009924008587186770712245468597570494735738860309845371096088821582367947589376825386513460286080048289664358240228735565596107407309980293153129491528433489003422153049359287925335014316223582156280021019105362876301732711594583548032108524725972951561499256715985534484923613642230460481319760377248357368244666904987377855610587158007856022121285627513866647769962176928641270407105006244598063745816037864750233665526810436591340364338134285018786411850925650952186824593344379168275740934815975684284831866893517249456865930492920715744033316311743164811686413278504339277842120097019473311932672270590919357304056621251857422862417667985587854423368302193882270519114350762766151920112161555764025776370312439877284512507532238642868182282107504587942317366646885521223440217754804520242179909862385898742342520325185820330106915283082180722234621212580975722027496246942246430556207766868036982317238832089228774094847203632701380076312478891835733576875582239012941503680295346627989817172679933775536152813402497210342388301694305092036240541242754104716828809014766272675970448556624353357981933339394481124043925172106311970242045156033694724899536300255024598244438525581489118341885942323763288928802831959934164980435436171758451398948976025056915820994451215765414803336176669103735096209121106628214165539243657476322524126487738521418796992380680382376333659793639693439282297110254856698543453415906905009830162740807940608293153284580322412749830729613520302975120785954138360856725780850980823402343487235419634904431637211560489734078852334976993627613544462491288155181724366001273271158865550378314843355463421071426381244809364361171907337429847743955435879246865552765763584229735934209151554310274874871761635946038294839480636114007909752712549260220657033729839695662871304009056209952144869556536222928701115815595572682484009390065364316643868567832863537359219946196846423237538532317019260127628453682613391277809325460200777734475104894295728099329101451441952748091684463354709914803307519999368888484186765538900283644459810872505156595687412905330285448901476238025596867333400487968363244591708955607817306431664661200952398665303332626807447843722728946847002243035775052387979332667099074860477148410687269116878951599799325333352331457942482145693763380145494456563711006269262871625818056010087259096091806633174474366827942025934857571108953304956304577797962643102533543625347052529273715379429820892107568654554027336528287838941493006156963174489304189915782436294133936966882818744581718248722944855695842512195245524625700280547443944430120551293401596886258748753275303970158772156178534982538812292933221294465794687003755695825425851879742413112119506475661150029662750109665118003490442254377002156331231921661123495898114957237502771288435373558693821926000922374054379860695148500336156259080400515894628861388701992869570398053690786309617470770255106076544799885591552328487032712960279005697205222198081561910826627636089875285089078801552187497537893956872688152808749437263563471749668907195252666927429825732996747424389406114534999307762505776271340378784286181318150376055286094227424904007857075003365557832375171587758728651585136714401485100888472939270426660240926021798685125539443342984242399461417536857149183173759683899475569824231914259632257424675627073363471622620087577895994684723473336186623965133218372883562051208986952406590252208005333220263588426762674955279515788776700145435178080175106477683840735423085336522998386600494065579901485545553469138393898443238951202123539625904840843203241728575446352232642109586806285737313942935213457167733063940666616756372834469850381572264332105436251736950637528810326199285783390501593351411680099096982851735464851365263489603798944000631446017023498215933380772388056935889337216293386134488655304833346947245591094964413783114220731294477160741999594497188503612575790662659135685087162388301954428369461322647489033316251665881611890127992948576294611376872279037707319301000647423973008518201340518952287512740609171236039606561094993846506978633122900215840790191699013178924317476164875861636375695199822284690699952427145868460106805831407591220330450691962137452267078855391053155080524699387919971274742063873588887597260097534422475869075532062503551364391949794192982407685204416262244050200646307172894536771814977406238745222137400289084476265354939313093419011544201200978217601960768583290429503974438294463561758074742778788738414258277594308738815870500476498386882208694902173066607427959076067189500497829242008042695058452894907012721651299534154638644014335346072583887537663047110816554518320376586530504672636239248006798761615678745948605494610024008993824892296418099535886638331746769494948505801784794836925977495645551077883821673274328964538762189721561254984481044871903968750444104958478587576001731910035965042391739981626434491931239153256254134480610919994600198267308123410869128914890832763155940682282185310856391077564164324398022906546524584131616659297116906564323111912139705820301352963630530269439974077290679882294675168684498330921605590627510047080345588485930993145067247882972359047692728478989304410414370953391066677903611747942847396077387330516058194498457279808478348851536759784732784446748615727751097050523387392204974629214019826314800530634954965709737916856423791827370510191729972235989907099421031074441182855575904536578301078666464091367376756453667721462155979997072706331837455666105187709695483494379216225162403206923007940881433840468293008897366220758350776067585449907297626445274185492155029190540916481130628056611215177868268314700586342509096225305316345300519799732957690515306692472799222385909098372594398570305053341863259964883994510274687254319364894817087308833728142057608964156661424832759329935630123503314910035878116863317460022902227745341523301706353243965281816873302557380303431143512893703980957465263965534435289455510960351070224921634573745768625973489884131371124531527460515387798908358763036144216519226443992278845108554584392972838088363108669615552261292752019424546440073953578017949193479270586498286581062456037606469775367903261332440843055656469982193505023978636250387589193957542118259577640852723537907027678693543098799618462509480061799162703035707232481533339249568695947575022536128390678508343686658086714429327903894475629250355282807404904045731165595743401285911105395101001245599028805409879747674127969778947458718115864976326793464782893972071267187340324676351630345254802286981032718632611294722347986390551385110009485350134585606438602236485894704802887048161516898262053999832328074490308526106068086212754559858259285489930313684117385612830647121202538302714125384694180639277231151069754392138180963056740171038157387320538724295738933712306834725937815418968996542451970217504919732748177257670628329205904192625053160725450527998562831523803695452902129409985630337354394602541766046772940950264258347573724405616395690433136148732377629150275031078983636467845473405278400964875478066123806004930591048849308495429492822138707606160954136005950825840988823482079810187052405720106183972532468578817182093540730440417621732105744510774657692508005357548727979462205865792952237702960156508433801318114588066172139456288817100114571803753420463157578961160876921038225262018450902063477803397463637878604310390564866855475643462551718342955593384523320554239935997776298455049925634056562007647435440427232030406924066281978685758210356236277507907776965591882282797221375833623001382030130582499235135605313444032786506752233712039137391379532218096856689179170520124098617242711560039214073540329100683921442220150575822550634672052408076214747892755119065460052766756991682095327920947554297105584449675354631300809672194077617685632736278605825011656308059495561623902832891166206385687040751947055822300783799870557026364203334152413012602265988437154790006710764939478237504552758722374799558506955017807725310419414620359787595043135811902547837053225462817581388805856048738413762127662647873782727735009177063221740991039696563410721358033524260711358000081458428682257507814982529631278284424414710465080800343916856976551809026975832076703553088503314484176760712297203139273241030536599826813625807080852996467519963399080711014358294828162153164979192906831001382489166398794903159275463559326211461611405846643085607302875606696511637805097131474027165611312599086039123775069493469670832886321576581151219086932703661095436600508597768332253227442736698724044282791538055383453501957455777078518291803565479610630748727085688218880526412246518379732307265288784598129005240883525069387827309410667273449867475459251383845219900790947309811151894257831429180955970265963237718436260236951725961620982878471652371096479009493074462878755300392944993954564508561748302925853023865754523067730627970386995000412268660587289931445790800075452511433274494296402782807340505504847111613871777704472756313553286296380405287008410496202902431656364111439536549198459827105401689195603678145133502536756081190741349863341043730659959710586275126889421838359364244791015546570311404493673045542187867673907283051106004656356439924797699802664295422193313371219645762665883996125226656737784839077718184098055660224076752540001044617589517296662828864839131631378165426151948896751239997557022578244161465947282777446077580515832269413088389741196570189634496153631239320285194242151979866498719939469538831593402764528689122518620098736387809762363734270580507605601326002373823002844919685419232154184923994402107243079964854137236093135548224277374129912542705748500503884764054679514530089279009183777987420849300283627281454069698060228490623994585093041713753118455951590111918202562785860260074102964530224001076890121166041053469822352363496737263883268990157006626119085378926961173172455809363715205696516981570073255134868490960433567139394476911384868858305124581017439037358747439098672423363265209057961338241242182917033547041449643925183446046383823076694243399730081425296337498044204776407779903792248738226496903107010219031311411090169226904864587361024951716548229173350342503347462116520257908557421661437316438619358384243877167623203510669765358900425386214202061105885365130920191041037963971604534319539379907799350928689702648452374182632277770243800868420177164261356811442243828143774146002017137283984477887337182882689686236237716514008968936403863404877492508645542252173934135833939911280991773814930368089702283549019430519875320148864437243195411113287732106159434382163760590381334329604393714859251360542575587589094274724755117142324361365972013024134411728964543039784120150392939262730268003337083981496699116697190127096798054750861686753673935791832728644450880735670427760852787602088586138169838171376767483132600318883156371427699225666712485739780682520915926125537505541548267606917049485259429181427727452435780783406629024815695638139302914605210541342788909100041603732630928795769801980586235626918737883245743086900987628094172262309482374767297742544331325741189428417599410796007449635185632084743602054903964069149665683673062869370794804954921356630179076211858799612169504386341258533137508186290102965496032104396929089222472200880992877429234826945843561684566507720231245149734949868852503409410562844697325620820483475188226392475538133770578692645612809458031180740288728297309143372355846397183909205170598680766198555934346279715615965884263802493656452015635321660679252553867302425219652209365896324629169119736689532898897329622308685805147004322624839458073431807841575166688616137096278135103426520668600127777331007400587561849069172001529871814439718121743610397043498078368839725325034858131201092197581958348019655010615344965495508581892734961574949437560717790739651730278286769188321044157399974554859887095588877906617866488488954849632627247493712702886612621008172533509081839596266460359605494269159614519912374745754292496795331001548473617991654912604922674965656320267598507184377808224753231477114180136914603687896918545079210665400683664657871481537357748629066610563240801801197317368897219574434852525843529559605976538559281695067049984024658568320171357111244387978320309162468015515140500129740141982524803144747809303237500996390340536619776315678510783182116152355138653300676215580869501240334161869929105821209055949273508882196050149882312670325687516589259088573001079189738758626284686393516871481958526202566386244278572089867384500112253952723261785071230287915378036578749086730312288857328941085967814046478935825158484974139243102707098868594032890409828382775746486716816801602616000395061404891417054346982692825428429080770151084179772601104237943735053431300000746076007771355106286350722628237457227673404726898904776408042815437952688165422089027427821699085764899170684410917362476127120312054629042448286615995743867348864795067934570687216626447080041655994581007598964405196027989407195930787203231887889536729306999243973365971711396963462612397229849350344431170809301110298114207126203196594818082920955990270862725410847878817494636806433471484208282280479651673766290632158350733249144531473827028261885377096310669462284262041456349418226007992741467069351238154052692732330875022217305423266025949109127647547121474289732177035864623525757703556691861265994322226171427045834089139569841762621120375433718279831480549906982844331276051829774713651169649419491418169361207080801958373170100632538386977517457556917585023895372011904934936856353897222257948828581952976482292537480504853628653908032476792556063044152555620013495710044823663739164716407246755470096573716194177603591279578762452576643089949833669563791041412561174425063051839377948447079059174415481571280420757593467268621833902773176379889301624030220018375583434277762743764064272605339674093847138801815914415317070584275875192551433978828097496368216678738589379623616234420870040363761458409686077957112418452103200096920913740482420081836698889942814993725033045596311868916296609285686145997430915040779845610228816074066217747042806238844012629989152219967447662955914675465345665197174098390125264789106499155328050885444244341230957219507349768418973811069281417155172445559122523934446176470375628602367260084348799094074032967536239380422670775192851870828613041791083396222814816634170953258176822146323356238392692930954493026226559302641452613279057634841687319503361907652896225985066704706754612353965526698793912689792725925729122096062472865442443197060624125827166668330710963170300117835621473014546991002558316393444639560807301104847111956900924878538866123799088788734929080016103020380448267092521538196836320339158869940383146974314993811125912494538217247933852179047447850014476935302438970525570030858519714282521906140618926626880149342162097410043444211349022816500618132680126313840319697967330383431035657543120274123822475003672714177089252079563917471564898781631003304887344486255667725724976534966452659894096079173987924200572213030244589872310671501533442074406205553208530890196955516780333630097530657338478956040658865125601755452494870104289416452024835206580847387491456130858550898900109009139445308373959280929138699414286650718072191882671681794071554108768431877510347391493268571362353718766385916896461079122544353374730700836962222865657506018661332690565379774531559737177683523544402664694280226093262311821890620357685154647686068030452676293215959341713597140807782930676181720427756049265476362269934199585767214998264869134532869527538042457799890534887671825803822294476379375342861142436304096936478738480521975988981990686955209779352420306631430079987908764918249240627582368154451594981691929258700241381825587562799879208382698955943036799279965457133431861905445358142417219478872510404969417762838920399377031006744206141731305164969265553731715517343147306718272617863940462568880634498707270279338182346398798030113808698581935398340561090426592053703011011754396094697410940272492489013646719496834856511174516118825929517356566646941099278443256973211527864913632113262906411498874949600111894668522284903369460346823382373458498263693545101724399159021525054164696572626392237584336513946481276971354308114574049283941010861453767147496562882589544699885024471436538114361483181783634533220152154360134626374986050201072417428669506781888127970981030472056320688803488604311294234778553909401602853416296168212696735920578674659181450540113272969262855729882670354169910771747452582843857444176787893827456229940256530391591817033185872577156905189559493907676591979330397574957372832172093982821521015186260171017804569777116056938932689122583912360294591644262585228883351520166568741588962900819483375239770085217224437973859429966959512757866206976342633286810864401923060546907584183820756298351464917725254494106361039585979334614293261613183695843319735609970803550977239494702373761971308850504436070412104870037760599101926658032071998779032888768647840083535905620058279394239164096678309228239506850938734773118894058773730876301385851801490111801383802462539316288041507816076235171483614247662114234538007285309360442736322856076799417280174288589328661963698109617348748710278234826275049782714945792369206386212448761357720509765218094771351924336367550750387485102554480586173995263153705851242751626657417982262846778610904624633293563757700815082753253681019760216280818601418993741638954132291000479572733444834965373499262817773648000245402215802676273560373666481093147951757248633288308327290193676786604274300868548991904040354504685045734616237449525940103791241649811012800212774787086530372311892514267505783481999538136740432009529977835205122136627859042007568548663125463169052872504045088653863114576624424400306821723042956055779758944344820197187760647284361008526064570967448792409562527512605578705400831409433692601656592033682284150543848723251051033335511645754198739203542780301179642798155891763423596618910144303867188598835680509974528062860307728424691118388366825819948794277657574535420085371501715841901944173761596530251758025405442862492856941722324829199549820173608964751795091943378480499122568781654411179698655206000764638274386124616499239812982577034868553466738976093243448424258601538121228823846139078206279664739570383322939015881798815534383297994300263582225828018086036760476322908184292058779658623561511591791838631326168839299075597920385588535968228910111408497807894218190243082938804873246658226473463649330965274131840826151568716838640097468152149784955853911148121467975178110193723396962269082311715898611921786913789442386414476695233675106589542422514218608281033224310793736048825987273724724892663826886981331858943991508677282163633700364618796039618822652720511400494117654390496638908648984356267876321492510124146432643898245057592460981030675501450279419064667988636704957169761535672069131597297846944409493935300319299568106733740895518215952897443352924437545562704053828655185528364738940194257511447884899650473109605162293110603830057492650089268391258902785449895879598320479699932446864380433554849889366186319939910736567608139619079305854022391474180023460015119963685455229286949419702891686207185231005894774322626533509741377863783942790370984275882778875120179561162877421006614321342020821984661775716011636001949032565974806615647163596693873846763787531028617891493984585920147718343498317631051806926949940551885590325422233604622382907929670850735255608765469331083068744421345925158227160092428145472215656450635067947481742880203030311619512726608553116708045205228262211573125740077984691143914920538636804765250799947895229644898895115273011021493272800989680908591299309619657817399452006028740698031883174225638580027400421486496882152162882713021855192623397447330298186523773736731894188831285371362514252390306235852753621697776397805167613574438270718713965484187771935763470069197642994843560207957705103771887862786181529375393176033590694477438181256546643249021838306830295668810199661883314672478267804854706356562881166735531957421945816008152623839959284448922115208318429769834866340298005153886450229510869179172013163373021366367214721607539528500968440757362797197555720065266055088323748789024015799691167394820010892649028263124950321905115827005942133657089010729935458366018936288869951613807659107074654857857803161824720974138070416553187143964588528074845067783560796474938988255983286760609155316443042512148988994710784641719993027992417962179288864333307788101503272365236366018903346152237466524359696473036038907918493678728381795243092382189927097886140104246813749055234338893519686613727220942266569941061054708979436053005081432425622627676548133712891200288154389508230901352213150741928554938196221098018621974875496812989394481935773337865854480234066858718867777211528140762699729401320290657373704466675352562200504785363157281333540149539953798545179617574026650323486391550989970797537006019471707447258184045587923217472725532547907726457013889431134383403032747591406703353457081257624274763899044963038815162111221934506967656098472608583137622330800341894811260215372774769394092206850481259045872182908825574740090266219239682411510272467604358889928467643034358107371055468885061774741360307903595785964097147954858487792953273239043141154750457957654867307836895637472619707653707154152583110138932689991052572082945635262802206002051225351513469680371903355403396321967635767128423650740165548682661183057588081089800585060000330585715790410622177205993964097680390577865774421073026439227761987939168715722340008843650867922287314058301924539847517419251757722014316811704051563319177451539399566699786928366850444064104433056189594861577335478460217782435866467459649578371921218415486947331599105441948346853190608682190975374763537218068643280657428047289417712443324053369065308228346432816387313978023887832017101888357479473230803625054454964529476243245541376207891401601012883570586412559462070361510929771740461550859321555287065355438184586899891520345735988074316555787922635244639867672741398352028554137225337517835024228725311854050704089274359628184604556366410444923802918295277051561504369121967397905876367563893306580346765716256837141297879218837224271076552432288781353308033998346349327613789400667716885129255481504709570824827881929690033164371390747328901553785587791376850104952955818058978352348428927581233674386502305729447316747586382470409111005392247286922424916224188355060432703446335058076520836330767519816728070397600188285752167374863692971142937872585916566567874305105757914381866604027806025901593780275431338732287194740013753981577031776923618957689544309124164296280987368905016403139423110479693532028104210781682559828384370090725110678400357258004955355510434408857088729464004404627406620376796211885126052192571445044485307092180932420698519176188103765477645084302247999873719108840383122829353059711648751651005377098979605261972871732221384451105435256712566241251109509172042004414539337776630454078296545916488016424947723886637382828501433587498590135101799273120099580999828393141109638940896552598358340287305949552395390956257318422518188883974663404163520233351516581694560377921688282257496211657708353296934163348564322524925296473441527368586668291054746220884515325309169270562022892895673269366393404658091364312897678726652356743174491501517392869323434148668937732642104214036505842776090644512936762358972643560215865000633389057224426089609574047001550060296568655640612384158457598087869623550949371056663741716908692020434446605905887147074006544916849477569189724168906760810862668870532040778595920135623204209673443143404557007750576405347182931137185291751671016982988627096749106953929404170101328288808380338445039793977047350031413652561148212116366883639489695489698050291973833082791832355490302584953811143440564168954125247555323914711985634925777209395772600727140678802035865053661303514664942559360406313978613866637633793869803684339384672168135767758445323539260517844328179976700836702486660505068665097806450115593681789909677810033984220977703195813544943104565816485007162212090782825776431182898305807160724388663541504784586244340283647263423660788294961316909353444457993186140466860920251075916944119009771174808285690778875984353479867180602291478492376149060088065809674336422725039799160370242464134419166642118926105023079141182244392529873054989523462809302077803885526824529775984979705259679377376823902795533968214208509610689685583097954124458871456137152733724622309746894975570895190271178378741022550940309188583914518241301299513773296411037104650384431543656223847103508041987154286451718937212777433269977513168562413694644387021064195278823228222065593152671046136236303129392473760199115166885596523254639046188676281846160306033400092612181142469697948080194538042876032590741366659306571305136310608918473342350614281096262149248131684550575541741594858916166042716277335679287409197467457081040125935707766051350029717741723644499066441064070644067988579294682129498311343856719174530720193190564402772612097537171354119669995733400486059851447101166772439704329039398619377227913862206994149970423819704955704293026290694494857427038682789240276376184066208244771042292700747413903092144798682921289143650549001515598120651465000696385329635452106614407857252286658285639545497865277118231447123110482502577414944498618122330936414416389671728611642106769006339980131055997493781063742732269056751129856183522320058373056956582115632083732282237776860367363743506210990606111682525728753578147653310372272935372854272340293706498255673171217332850293824481098044214662071903074193895938707363046500435106259715004358732421047952663702249626628050406603552194823369805999522974444606629483081983686824405278460291532990938935136016964470944572457389879540650011997734329815233201847136990831082447691203665954998895662429754631149892650210358322304001321780285769044183972135343171188597632532349972191292947321716951082901926843123460090508436159686501569660069703940205307639018763856457244531329476800419833396716875289765952471942807399318399440388320005706225061001614449142581585983165423209084641304924807945159034744020304374983404109533668869079653846148763458130583121786672826899740490565380388623953130363403157381430821042314272143069392742764895687680541154630892357363077192227053652915300695758572900330454349818043051415202231687317572451907143579500115080440879634024584935285926427019893594218952244949503608241875950629687022796829916685077508376997224127661680930632074005301795010657075365389242121285200874880328487860032072349518400447516798700342139161784332521058712148724146451562556185701875371448362112412572186016873971644068888443101665546505804111574056766440484456805482991776430916354774235201370586131600520948901448811637159697573897882844346322028341219759926067346828044025020285662669787961511025756403090913131121096600301899900052109614989163707457517553756434720113499353230534779173916609608788987029155047563181564745857679158729709596559144476606540251388764622020715817296378623226021469239608716228454981033626699802904964280729307477838210232327828828905413112556349049737246145981539399115858132438591749797988636336924061766197826417025249269271496664462449875703042290916567227157779939692486555726313668072040409668575601398149366890047438787560741655191713643883974988251906147553372828961078416902979656296632586138903509114656835301697280044549889095612792197842833884727216637054944906480132596857338485185918775746533950189328389450823916852240332827448917336517355313156691976861977416246126872490722137699842359339387650573846250115545465595720842613171395760971123232494060755930358091904833826608819808732542783789547259769492310415669161549191304348526917129827947043592772719240539211079255251485750603558914783839346987258993065764585532206365079994171117433742487598116350645383381332215169672420763102360068061427318110195757647130759846988006431627699078801210659808611692172720680365444924926461468046503274418386042746704853506235342223318116912045389343513229081975525701247878887978456396815986494451659351451303697249867139455178625509472812533745788754850129696809165637954134433002317992507164670762068030668381988375540064922288672516914250864075029787542865710068079876852524429972900763981808081760407430162442907100896595038366742713552102932579669291277842938782090679156928645538367160203572990969957018995806870400796180453741870807064339650377642920982049865835695546853683409405903142454177810950703474397736868970062131832696506752760108333645683318903530954979167018413860489592768561682772790834848313003424652523390336244623840522995389443460340801068769553994899673398746003431331848320146948038718219252872510818280270401366161932562292150552982526584210998325562372920492625886598186061217764904285651867228152289957094477782233747868429430044768285024522536888236676662869971503151063268284736985011460620670954478145913679811911397758264429167665573202600961021319869071637736067086941001065542031061921291202811680335011374119079658866631424663079651944694018165611675964420309408017483521810538823765087854186573629332015958061214169180326533388817321625401520149494766026210098976182184820577287417379502867765651025443326338318401190710789351429524574055812783850136807859475236896434689165203617762315808030516852225324761964897460554092417467992709880928649428245462575570378708923357432082423127432675578999371063835527937176527946626489183274143516647421414597654954130908971380954851328034734120297936107511069312407492152816069453605166148447196597978784165383545203795698847218942555370006351785901001274378804408774056672812897861246313172403565140760717841485643114251964706443767638894489148854375201130114011620216951492825810772930471409144528790042925080702351520231931388840646197187287103274436157461199787174370994629443919017915484337478239957488415541100305605306319434957242319957901537812464681741340375243245778753708211807469250439085130395417213197306296007315339888224879658460859936195619983531729248448812842743218779441543483339310941506296637162375362765895373330471073292817173876371072625353260532895896511068579315761187084367993929899966820983915821970600567158343359448161723480118828577829848109216662911084697323005435984376701050392484563506208463136270550496079288244236582816319802693105668773657608416475922675162307082538132465173722912415916389508094202056939674821665706963035551707524587662528364894643892400189543504550726284385512968512363928305138785962563597388106083050255231399593580443669638960200732069844457526416976105907849599915743873942518624385778237264901211524653111868140476332959435282096432145280309563681457597580773019334006208589298950834717313066103314931315924494488087687464696966384144931726445032415857819680776187186385709789428051360913546592086608893725568238327121671016952451786536250962713222969184338495569205225533065517363879344875081435380448530503382078353482186270413851974576137096576795652903353560326950765443481203310662727975852446839759802570761543703088540448544971792443320678981791126995617564623203235778243090152140192908171307168412809331311020419261422322817015042290101867287151845041386949247668327455482064858478966853487388047566376738427450192028799743768127246920415482782176285051643122934206868361474503264585193122710365751097049712141556439325472303979931194511083307481439358737819027824784606706989159053327583277952312373541076554697715090422448881984548635989590992095246639792417922610535109820614929039578119443640103322842969676677192808784656142710801881592836118185091363828902286327454944612486567032067249125487063051988699161889640153989491824862352840794556123331080532452283322637873464373299180012899806254231784973115218563988395033223127576487232458888415978116854342596610590090936853907875147168527191229409266847541948093086229094981505877978042759931258843791293601758954358054811385690148859355773804961056918792880287478943599357165452530589378178345228672751441276242124634053347636069775369326735489667128906976937407678951066742799078169855452137262805994453664167646383179790116559846326218208832847828749873312292510631005556512080337528322882968883387852881833081592265717972880425627176660780192900853964938943248510141443030166212012148447018142896498749703336670145549238081354834665820572431444527897387087553326824793693916689288747262640304346420409232099689037689261430261326264592609537363276710845988346841372870319926482207380090199856616402803306474741944554868691851234765048030936118927331226119910161740496152794204763428404649771455345851546531275237585992724894726734792032219254943770507938799981576006584205254673427460116667978204948798512060123471749367766083036016534614728656297992842172165712788459614464479913343466901338645554280058250120951284081561673772482368575683985607093351130743584402925085322302000150862342717013597650532810425837538524683475996920866478238084264999683283801706480408032302545263830671012556348044625510177030147673485509723174571772693223496328398150004587666025831128349843912505662915760928397816920567434331684646762431568491611326209541729296352831940654891152704460874178593676202038941156185227636677765229744337299993978384977765089071314675002514476852995018513187099112315091410977901736379040651215997026893241471652120271591097991566299427183591855946506930781170180575268836841934807190412816728820306225881134361680315472877184589547806741871343793562318108569201554381805821496522060489338999544849549038109995165070375508192631980746566272171760968132850407994813653423576275566687533594211426615371442625884572668998314242120687196740718843499664916219991459280694957521382148731825656135340428749667665867463469403214817840048076238224959239536572072194177107551115283671309838983825467402174105992668089581538752235646936995944987568281877098473781805656188029348679356456357999726126852038821048979773336253527969848007689873118490924697335388915791304502071508929808276295046456319807432127085798276362212679540116479232618695149396780223813983458314129517634831194315757539496367705645487594719975054769432184093861540733708718643196269573831532836549247286381308676346146076153428214255441869683111745118148104328817356908572704435795520460121389478549690422444265230544082674118675808512342973181072100205540395326015328467418245679302719800958089095809909337231876086443423147215130463110248423068067263377067947206857644524003698587562266033682031635002857822587350149976639051382178706241496353461221440230966777149821508843903885293115082148345554662507849264231355479859445107002885409314975773055305871562036812602741069165502515344958003950636240474737396595419154621045777966516061994490006243523716842582189237585494799662850851460375520199037954318576048815040771947729556844449066664316594032562353450522532046050410574741109815871262723950333112495269307719500985914838588730133345382249242380817812462617729129513420711594382891821639235171352956676837636883003997972703600075074435042681364235135340433777691426350693844363211008462040067980250830364103136652824621325740754592876957758405393288876534188305877063916369269132710444670664485126060671150209409569432269082235088520314109355283867190443690276391876954870296677144490698831907480785785619029632301470217105584876212908769368577917706876279455968555651068927276007406907497667734168152423554733159902546251868357490701141744804083472967278417885796782723559216229931036793990963399555035095578526627551553504847848541105702753983818449024307348701506881312066528928235611536192820226009898292569203089517802534747903222674019881011657084438457659645956451165509046499223980590028982481189672533152872376373404304117090233252084160698655776527967667332426534410435382231610610731319456177827248321556921525071820183983972342890445841067715729413645363056188342899182516708761911928038987673014089067124541720266122710083874293419575170023172815507680299922090745340877381507999860742585774153828521458987237000494468931884035263042883942106798707499187507517512466237537490631550412067059868775822498193566524957645580578186799204114776397187819683618243462912533820904400034074150600240817582311684627946704614444257968476400093398682277816463482698060938016716470486830783474274738043339242661710130899730188211534599196758009460951649037525869172471259910319848193253752267302370177776591070488832716172561404437088848388577270283875590724240101312760495776224723168577580517297573126851141784005692378040376328999258349713442803463099075925432009220262270878012909012843281140334153961368282890119083572559821954755873593331412637099503334873459191181303916158607068826832453836227650447472849346790198790688127894500949722968556634638453038422702342696001815626456993358230087711317018160434069761485178677689349282163551467781596416960674952570416754309123915269130546704922568023992083461671294596485250668460046612889985288559220276566946963235244499792687008523651301557258225551116149723845033954949744339330061329010928983841651041116004022248845960135579684994822614836817214957603208804711191104327495129650340045517316188152039813407508544674553513514512819007181912736402595508902086843542384669573539222424830591807774506797942391323859616673746972613599455292245607107502169495192794600242198807583404547317935092168041605675462194172939637213945932488764604392862492893326403484710389295719555856829930487650086620573207892975828741301864629693377654672057798707116335962950290354880181376394058492883651097687709307219518974778484061547456059016935550075138704296780213208883912012103018961100975081036291753834346410660523555342986376815956879938919684650481472449640677361731888394197796919514167465281892123404167058490042544445964109091422682260665164030913426686240664163718055492231914249984609028739086923944646506907750468639476837945423922330436770278552281741726687806166900963737332386929485543561875498986611058255675061336271712358707753992467415067846785945753744837764237028953272217805891956862932215631471747001500822069541939186631255245762388957523463585043129174137436419159879266087946338616361487843817125351884798851159553875898272987787250010664698664435535531113756263197568077075586553451297863812519346520489804506176895208856314289013309455934619129392325945514496492403399848914101085826567693120747752975680196757305171661061078970459980073754371993079532459402219896891547905495948006137300517867500509106791050975919434664366180651795446851404987015071370223175273721346333390153699173424088844533454880004397133921314039743148353616674429585086406183456564191708858057826858439408080821159134452105786753412173571419811042464372160234442723059822559602089589514053076493847209751271831262180529936642885709623271587771144527111503593563410456475820370359051224119607859340452861231727710289592718489972571782259711408309806293918997636415210977531196918339687468935541299047490552174072596921635500549973986653006853821288890764303157756784124846885066970753029981739418097159489281510462554921280396540590676219153229719947563652909746915513681154382038703595699488470635628535139108419918766816382810131496532682295135037086659932301867554546771024485287866555491926902597122698894548275550541910533665960447927164290228333818941670120908279429259669297246947841607613790492032893309294584887332863606421329808964938481919518837933592425170505697296476804669198190154910814902491768352597312069518148300709182906697597729571780354618085487819629223894795085115495098739164046751605368725479853814481053130324662797855864512667187543441893627503779959168292178233799230515239468859358706520498723474024588738162943572831694188497690052321598409950637571256883498147288062580912427911889223145617599687839177339150220035747132266968860396469335131138679681759987701486108953147129847599327414780732795350797719371184127134112201538357462341497709656828812488287439354053946271711693871740203734200289767014801708559824264887839791326930887577666695046065221349269388244966990617525357277078715648019832688319948219876245704145140798287521430944046210078124124376438204172309794444059565333475454499461285878893271731034426170214926576626953023963307370070095612594368270485486764203199692161514748007428627904490972311080091666500033795698160345109832574364291545661347025665567856013331988059765355218613048759054717824513307217603477339020055609052189908750196821767045067706971132051530897566689785348499799865428615547111517316475063007559656402805662462509555510577706589854448825738612170537455581959245437503604623352372120209469076247571775674707773337508016019543401866100849020095329834319835209631335575625931544969978066559363400076620921020827265344511985378822456503289253046560398645186467304383065561935278099407255526617141351119076517537200960847801198890770961799113119165720118388133689699315517589859746419139375008000597225130196887506197973990138757218647873188054339634002705304110813249864602277077329551931966893523036425300810344216859945086020674860831440293713613760788164514076713167677039708446176921854355963301559361680806237060160800898090769405572118456018877689304899648978792327455724667108969151542637342999657812082599320475208583940390573265034205813185282956443056276965262701791765798764375846055780113978544437852772553080904231736501281265155609771211807417794489893585941400723898532003977414525954478899799212114626437026311106822147925986692936923184612741552617008296647039618557808640078760305855247923083854811774127564650907551938541498976718697660117536811206560621979150894176592393082761168248108621559560990371421784371803321528234064248226924981711190678101763644052676387353044470359086756950123323891046466285054074806410869201960231922609482913377124531135809400643698323889575666130176369391567128366201207827424820444894345794622392979031453681569221808867934916155939612720867449757639942419752834764897688832088352504912925196870830407458040603644834766699696949321637147326025596357060432034841895620749897286056872842471684673649913315096293897299169240913176133149550381349308592087751874509014521353122364086877992050311061951789468498393300462140232978147612965178235730962748259978525438967371621545042465853911012001847372444310708888562382903281047077622504072874620682430953652765421466952653261292110733774549902723946105682483758230619729515240513390389735195844176463172058976028103366290545820559315448137567704157408777339383642670020048372271817182685902236699582689782571547290506062916228681531611646647617770842180905079064171324329691899311234922991145845702265591609126984581874355359713183645362133774282948386060650520752404998740870314566895422973068035860647530264628423646231978393944735946369578821381700573205277188529015803951188747269755480886903119836794522693091213458436712261423159939097063142138757890927315799408846666246832118441681671781803015205732202028328990315233408225294247245864876697155259195257801510177343973188703491878600630781324223181034208435374875062720942885398458638986795704718054993509603026242889309876724287384415720421383743813635996444359011742463938183716122650981170391372972332813251262221342493087862815428532429298706298256568637649081221277377081526494297935042747410839396007166084787888740462803078978785987492906362098449232643489049923258521866729272774258761005021935915311255471642536918741017150753553025073885952998255143608296842240978403463837303534918732523714885342598842457528448827849009222543303916259785405801080659429578809788036740207803387393605980721675934864983137154768386859013106465736363905878474095761196276985444244808149939446775989309360241593112770719277436589518761908543710559706160978137974849021360835644619242292981757478995933899573365835375750984672307700762594697357189907844585469703632407315202320609084603676917428412685633574998596762873199068306404633825291826176460145632765390517226561529685843956624692075209924759357500800516906418302689337516172159905043131829682011280918019345556328873751367334005631516489750415951188624504983661933911746483525103432675179366125381172399680239494622026836950334552895152281694735542771409328841490749087801923038584507167371252523314502013298718150947898198853887340171452146076311144615997609851307234819289017829197149349843225729246276120673402300875092772006886310669979329974629967604143567894653299889688119845612910173018430988407713177388719665572439348160343079650231537358473134597363194818454778106573907977354930513761345702912266607324881194913722892287845197687508869204142985830521964877485191972068593977405006505858631782207444462882958583328958146425504195762318121907260328451728362000749724281728750103214648287049129240547776982001262960758097242929245307553769122528745143782973587666471022014627259932824738369130940505538170013268252152881232651183163859114589938070241844650038855699550526993629305568899232455355256925030226335021730702418651210765831517540735262133436948778429984445645976478661115252673684441843020472902761849588815126001714689833643950258530134487486921914312660889456815188254265017174002615800535584529652980178609121637950813975569945320374203679380259404227432137350986598391126587647325211690118720767336680042091940645857251206982484625408487019753165337437693324557245339677370245579284418149999926692835632432859530881019182196866711108090970688062324703496194094675650646264092142541368448366969643843685909770469415150300732374606895377656422863049806617930108517771144202764715519137834263866764741268589098009600085279094619560991574952809421523892640368339588847056516664708171463885251979124150477620886444038706513327564543613525055855209127852092071651614442204326086355460007648231008302068229493677410982981642502745388516987594227006159961806232597994853513592589477774306312624320849392412965586006568328822616214245035903835047758503164319750236649514630588120584547642769027252216920821819763300552121661475238251471870446463400743889912673541073817167049659312743800241817885100014993472955538136377661709715983738750370777023581247939980483269870796979467486727268733095926391472445055484828857322810847374821200651506044106404211753237678094741705841440159219165463661631711216882004683506318736458954089390848049241141856677546431364431236159833564162702970765456050407325903791567274115604134713234207793220742341040437538907285423812750108767397756899912931711567861433631230805595731079471673936628339669495154117533424475360301494464266871339829257804405202684519471636568506182686440733475676503524957049143503223514249806139213443393564000270027740761857770365231069631828613886467973180560063677053610559994773902340264840312487415406297890229504972422945354611636334364360740376485996340483966159321998903920951497202718587696500123733156569145488269006741442010035371392099106573443258239174353258600358669471131541684982235626681711285014677986081913002336287970633976563387310849092113661356851229169767875338811181118794342188318107769896593416824805759974045513513942032229140767715728190332421341071605866868618477424164381550290180834806023378694417872574682361172551085014720195493900524650794656182037430319518388624485479518122034577299160942775073902327447398645184014750739240666200882814569486109094178981173602517198845053743794064592288216683934297432656614640214805054063221500034107794158499052576566756548826249058643734597881573036586974686376778528213100468174347749106826700559013163126808069843578787521599480489530448124544536828503939843770368042332406412209674027159551531824217454803003811063564300446688436899702363181000982532479511447952753979400974014273182386721285482804379710870337168558041111119805323809186253790038272460271084821932759533483598944176631235324341088553528678575735667517952720830300407162848253323918453134485725216373820108073752756692265363063857809711655301641127910640829437084705399522061493787723251659742362035316387432730006673041536278417687819008260289561021014681375995622651450334730562170900658874033855183462056203698555412762063340925619549025223149701738138190835063388751260054532103635854629494612534988259006924997721721008440560792215037879409538411020202355049694089450971072529596176537045529374981617593781800545722654130314070966615832353556035999671429845938269942910807458335552592627555170499864917403575122679412786902934669997143316417024223604413528286679617038641798439334565981707254601248327699228732696271316012659528976572159220008813600372207016939836917145354079599979584714725876651549499359519563470769511246411710847553433792758443989217542185145640182598091935250916249277640286947856310463002289542919064583422478434302259329282647725516313745646710822313503501258250197641467995731421263668886486951161758286288861892620953442006799439965203916416739123196041776803046086431265759740533602171427989609303381953328954533966852082301389367144710364614231404502742224547643981696541694855469412122572707818608978644518207136328235580783747664693050561079842286838077934636615891603120429564208152437830170483393932551534464058640826825856784560550806743369592142751021173671153244726009000721673254256239213227078503544695664964559497391054516889520436730380849642893948183381300630829197474827597388337287036804141351534234535779165866245439647399746454063997637295012112605330651838148318497322243285886599372463092513791132568963535752529506179602309972100345659047275167412196068749837933308554374683131203498465923980558596513281477438151208600796363846569356436546131400733088853553793912909286622320504759633052498930695862165223888677015043128373353258244077269187696211125007547565892876479898336581116428185847014052942348345243627931571836766852158865363181933803802890638604040654284364776941380654826946880781070406609861369264082082739250872159561958117072824026124539770366611577428158005373975193857651918728800001114280935191805458471845250232257376886453062726636331353485673725531704204979183913597770350538977346691436164749014766380901871516410246581693559971410869580658355948711582033768550801072969209378117343705986845423398769859585119945501112039439251901612992460245538560713972708088413677910099170534117043854163097439705871347256496600262389677836330751977942000708117889840578878810285720464932725187735492174311908434178682761350556022691375874442702013591499576283530967236324120270171136911827666790632124706665602991805469193688756888881717375763033443866738921755237581127271962954622126749142150824430226095324172262027285743425012835771165532084273764862946021695056575259606156831123005775845450718127140915634625176887435067723709610696377047133034849600911606100078527801475139874503210668464844895790370149090364533361247486103806633274427413360479851016128722413829690552920769427940194638410630642886067914010093832256004059200736666012736853253879548150050697325900254776546989160161414339996802491742461951241091468473813807726307726969835238234784609964316259364629735869254543743743730053791804181408815402005015811300328071348638556618204853491708462553546209772687643800108367432834680076211431520535602073695380255600416936829321098470969193351534322549076018379317508602754848725200963189241476220512875705075613699550804870314181279466180396754644360940279104696421323167669532643453338339335776244221000609281031212439933173279816375408568141061119236440809339182398427073012735148216019900872641608552900120690468249716763238693190984904502516527270412638657003866234556106950075491234296269927044969148415574658686695785869131240461342042192712477634871361353424699899155963118206868335324199423800117195037638620449829843994386193878986024630304071622282100028000013636982255819459963543623090981957971776349672468844872413759611413677790333356967030336495977620477487975306963132058992957116049507125799847071508069574440609555419880246503577507170095361722117407672720809043002098652693588862139505964262239774705770114925320570006549815997580407778197326081891273446334374024088257687291071633703034509347478439226606881477895069912563738807053106345507425220691400723341838014738799491147307510724419317803237707039527134122081271079339081600612592670568301795753194525582936704978531064109304612144563420695894539705004918343022759092803697091099829072179319709435693152197574134238754581707993911378730785379592582515669366072868602305603239322861602719230194186116038668524325129370776576216839542061367745953091302650215457137041852012691497207636053961903797509208404687990892147382279813432612551986169361401295648164113431002930959006928013540658902323065144949423875952422700764753234785284671530640453632147901700621458022796489550783408133810193194680259086169553103129047247609226351199927140977039650870895625465174193092765088313801344029944412317414648685062959918029129684424367797105336991463005163520816987830492212153102809653917549894262423897483656223641175950391544512762144613732867317566392069809961685997913064270467557599439792700163550137449349334768365879138765485635107727827798930246579212584986863179238233865431611045982703027968368367827691276802991266531320003834855802140093824444700250477889738376044865324424512268376628799206816714951535181806084184507078835322675922685759679498901926027270646889273158953237895454594599089575298218123659322343843790811885381289318083516313498014322761060133007737387487614367603238715399193693494025798691354765575265410544679922779228590701061478767822720936902667494439209259369970770063133116532470646710198921013771423711510747084072386003118220544755234751981453654189870158400968048913394112279098986750108024439250737930958046565418921462173994772674928819417142892164264768551324891829915657579946769401802533566179723851341677133522168093691250586167632647262381202913929834802086828083235911408936982276755204196420382052695263549376221554974970809150690310761556714978399716912229312823205990393144775838029423873222562682015393634910159343192974734390791996049498158837743488963650630042392283224681956686941657411376608197672396927577514789727852845070549831237823351229567269737586523055018211756534908702096423739074110540656733837145177071286623476140799778198315554344672967930645756113837086363232904214747075055734881606384637107293818169132572052301090795158618935424341263093238060544560943836928197598049049282745784584521962615519777225791112995419059592248121697004597992754647355952675902035638151957867642999557817345298375025667375005987372431427318003440584620389455764647688435820428624833352886503208324039019897829660500818556543580180829362445097867406807786018077084691473286265442301396685448021410046870095981497269180537220777156571492487629803668191611359411773286204833504983132190627319442119773111362835615984218274628127636976057660180594397218674103731679118981467179321833347081141330016003175479312899342311467571455527988282051554183455193346746898355667834598308292637353433632159797021962525770093319505281910426520668316964148914024584225949204787296860133680898043203476142706352124195326870563424979222528142420249354672347727453113727959385085569977638712648933150792528018157161707249706777892228399718885186758049431949604876154792746176070256729838950955381204824641014322322563125538939126191669919740053656540972619839408394441269483782787446393340226176836235831289154301848520629680628564655360143495615912241799354502332109860636667741330003215071099194465232968742861772276217195426499747040283167219549710804737136407821838767038441710417225815211450664158181338284597148237570015199740853324152702636156481197225820213071654147991067048068191357969386512108140441571503633505431266163695461738415434268256389701771159900180869447409963266279206156359883361729653377183169678905017777769332573310665908456307756523266033912948227791173427127592439968011729198492361394098699959343753916838665674580198905372159399505652061932913809093177628428869264476650592283375821625816111391253926050170566949517555230472636681662183501496571680896229075469158713613764278577829607573919889839502800215393141165845303241520686018461577996710870464099630340627759910790172379649889005901322165732135484274976087167801111051049519279931491010019772851967681311202190883905623723435248327006055896327769863880256083319364894655467665310212623033731029093251758812644551816854162100642796139540571043723168397146664829423755589130124349704381807950721971125172501864306264398225044749073591489824790878265783164598743746176417582218938568981361203701762379700354844656000603818330001032213548083584695010295657487394354668178456822747378393134245388436562244120526306971630228747100931276962615324535180650582236472204565951774478801108177426762273031451839931884735011039096072138367455541392979316374889550804755076722528756949633851653212698460479789321765272464951793432913543031944779529901740659203920029779022975794977183696202023126919454671191899713000795493144159906541993381151440865409895683469066341841651219305673115181915338490535496036410056328090126559753870191760049285734193196750980218032637518574667843320966390502086942455388376652515709329776417034942196957583682816234063502930354342278098741574116788788558525448733431362541669223982943391997187076765559067436972856230219698722771159015362997492311093057250105628684269765914044337246442001926261278228329028435489429642618264868827121804096154391721259100904664934270038421281348254433165737422142887620443031402674878076134588637903886525800926267648358516499594828104811230466530800478415902558016752710159754156733935831010150687188638040169711340376513796275629965475512300887372086255498674382451184167651242641110393220177033820013504821359329195689687873779875917003806643780976409980333340877249003333316474382414062193552659441893564910078828801071341004928569790521034976262674457145364343597522911635113261407945306621906345519184445398414166865679470070720007264217509180830447872637886272916555214362469247899723147887018624878590296309018657089129309016234486955453083030310593286868728444065769624681220009575923069718279779474531790826202391207154637862792477115579979132108609040005512366866530382996232339153773468154744503956379995235767535214358126021350099956857328869368313691327390057967255239569299391742683485913774099879694036378312747032173726514979472512037850665522961126650148226107245110751231106837516121031228358086621510996928677011826272839856028777749896973045851618191041755787572769516233104045207098491726080581067392514896247304303604216324087845741408021811209557696871965922911280625710547650923469145188827455321774716923617509287965506821922527325019274526482286623823157656463485553270134829219881518832295815400595273621256652266412660930339442804380753370312276209821388500614496281974998871598993706536739462041593197763608273736681855883091889694717178651960420281552348455035363434743743003708021750341183908836980734054622364062803280765674876606678065316891104257999904786468223904756556274392876082421330434620751357496593485931361742475472699394536230564765816646596751944984535614631187247750380746104222642460659936986386224995803381838574018201752104808488245556025724529860201500361746717661507900266302640411118628485625076557486838531018624102905845086624560817371328030733951911590176332505023786211754893649857325966366994605693417408520972696368367484221102980267594430041057363909994753881553589726037501967378870342778749681673329586609719234053166917949312426928327660109656285862355540953562645300302516018467369914840318579992300569519255045086994424987826072783325627163283729326187179179992566468200378637072190694223585153697044214602783262195905242860107225222767684209542947047150132473406325421979248957496865433586941434667135673100645738020016315393560239006183347129945305984332743833510864413508324682580158066382467136970714268877308315121404245163311802699286453322254247978882852333722348278785548834012150355757848703504934344132213855074384091737628857273998811652459497555254795691259217848082731438010484240308055710391734492442232070133312808790325158360189007977903074767095531317093950503569780980320612324131525275920611224722639660078172505461709219695005861840841653521009562157121150729611032172206155354596157062325513849157466311900960252961460397526718431791436758077981446243540568003257120374248269736230277809209665314271770409711024846953557925554215167834326525699284975820443837667505308554784200244452184574619698029502411247458088737480382633888186994809929227568470405082375067887687250549961680328251413749235151317868070503322256452085401249342445284756613466247405501930488536139465668423295897584692335652293732166083133261942874474928319398972159697056857111492473461284652485870622833324944926732784131228460258091274635464900470399653155289973233547810692145911557278990521644371850900560329351869219133557168995664437399932589533652929718561641207179912486794750123751469077769006841820714228229629592889540625479815314997452529362287835111814504571228216404687225534957290114870162271895283289696412550131595896242642094677167416229481385102936509137782232123824315182657502761544451013988988425572272454697159912116057100908533041910515664504907306715634920454452510377328838979115586876222964602591251726116531603500996873507343655329102670268934260372065771879628662944204720363370281885328922679530332903351895816451754548526246173322650326519737683076991204001742523682212562575597101225479678637747283760816653028909343279360537579054082157898931980683430780333738134441307444873305854033416653672094027300296611968839519415482427141543787489292444191808227708470611511191325408395510952847732360909792659403364498867327986622682879096366083468311812914200488970202751418735827316731990012382708586116948384507493427593575855960503283365077296731639606373756794120523280560384365067578363957327472820405661855651912082037226038612787210225409196795788722198734433919745958171191455092179423324246557744014744185022796259327484936635501138673090799843748779874444264421550974294418936445709406483144291867820511149868512584586466761040403187251916569774415088367592102368428653248604244145494147817528827179339014906177390395612311180519255571841677246616938826549558491745474239357306934070070993593219086189296596535719700842345546734968734474572741691276462592968490516674245127921521977397533622200382626119980890979671288180458469757996232456626815028771224490011377629653055007381596145896671846237354340807380260054228700172725760723123311741006075084460805732661009366708920628571507518508039144737198397659974925337704013231450456747573264884047809012903840351975678745956338955073131949444613792997001921073796436696786385548079276731111257681862959687111657138271437524975694487867409543102423254912089740729191572096009683702770299362091465422702075541778220736113171568564368963061774913117880800437306489819865309931788036466568050576102865387482209846627060605234894713878286347869259520727621602055030616446457301731256000869138738968278933277552513450442547214465603346805888359927910370754501989015164521439798496807872283838599633729713187597512588772281357563229469828896917081760716675263997537142414311731242460633945091900970099567166761380658855408017878194748888298680956714081462537015233295179581908697888308603071655664995789202918559652635579629332200163103107659488304835525769467693066274741507451890094832204108247206990331950131718760984730964206862042629547174126521803644744607418362959172245731384980956996509994733066100026876044927030006756344191625376004554884892369623805972321715896816028664163332887332773802010623671622759062522498028412935279756493027738010961432455209507153585339199179775468078419778427597951271751741030467328143389678426462684259566538424105173844665641170806288891317645106679981689486226599035133634467126469884402137965382013828240996229984446791931432877468143396371184832103583240821510530481793535613714564738921298524134716130869120591965583265952246278775286516266440070623626489270186763911663187002608526276816230931786472800448906973349418273411254132162723626441072755333902893094583602587638334474332292282633458556388730692977691312612394765517020950367009934738995202471801975318428406098160577469498901325105700211804204504982620913434024107756069229546713446298618089660901724437683018317971420862250938927623934643074953911157286515374835535615442485348595973418895660671548907220696198972170301401248328851989580382184440085851496581510126232387744871339456568211686173029647540150202092220344803860186515332688464729598728480790296508154197447716754801439288386476891368789442215719171629528161430361879175222076890517866347758590508107970178987559017785407540739734476770151379472462364916785538782542361552875512352587470966932800022934249385363985164430617246638182669805648444411833149332439479450244773014287762319818435937779534444988804351412970976902296300392979085559041166701425615294735498015249356786567073647195809916452896934399375480758509962977620342467201870544300883941073274390231606686022379723867318607033021450759071976541214642410783908217824719227114805788320172793275222173332314388558978282891642658736434785048128860416230909207313067118689647126432611814037769511550130106354426764287735718274150253338559015086227874756326285164287640481858293544785768762980310391134520117974672058946565822168848048723412429765016879970481046920563552031300930483923900865820268888366877467583804379920820432577149773731490543329103224165385134379315195761941820076933807365347396849138956792818301700132460588723899991974955836857861369040145890445200118511431961332673247183948997302131541123742871158764416338662850845164334797818850301302862981305192986640201113795845067862933539857462261728371074140463083965588441586291754023047611743824795620686392222217773859541190872710989357368036062953199373106090612328952729456056773166506198626237432545322397986798004388246940969746665487137451456149293713762160829125873525845763796679082285661462391834148278106138583964771440709040817989377063904414539169705055503658025847525353767458315880977328115307767629785450437144800234508544379082157822545616967379592647099229918200652542446691569182786392161116266570231458185400071756510058938522753461951592808263085577060309385234538335665405656715497279441024216347329161314650747380485223143899756350865364765983929877927224969390644380230528015934088974117128667413874062743383166841166703513745181018905884815544155743280336109294975402554752272592876615030969485911005531484123165785844466924724512738279862505641433850466245696114510551375277767856854257198232555386966398115526234915769197212807825628544328747688187244278699229068371864352177084452151933244253718361700659417857730816914721536227612611930146828829543060208514790847606122420815011590953432676349263785446309819788933001605955692016692305049564231905009652161428569354586385142391104966268048571166332920691808805438340314242009839646923144127332867731281115378375871333692106439254204561577850071219014416989290089211837768261607824597637990732088396208048980877449252720495122204064650537174105421370033320350757169277632236012183610550302641476133999626910734062072056560016486043601914588621800090969566536423563842127783694024603257238494660060646631624844435785976334151638487766031596747762294072328881094958447570218438608330766195162257349684012487373420487610039724509505417730442122509303997875377620023978795666167894197766951179395349585737289828830298516239582768606067869922681352226544235220492485417748880112873397015586049413821766833126651600694178979128704172568234034889168915021041441771426068995116407832227789978709439638746527095622038943267068760584307208223897802625007389780264584375023886744666465292132662898749663460310449267504542990321739958651574483682292793712896132911896439196705301274449993360967058809067775694226988457966161465877335910995828322513621662395102878606722533601634501250046485527647892518862959477455138079919242286915617427138190947177135778678326954891821830176159227069061813368245404559120720043559556253559638572440762075229634058253098297725800828913648379590832373667906787237490205659073826418201783254925326332427939661888892787738740727688216879244966611711367766629410353470154659377320368749922136198817879296109770000112344645981804328774184260820784032380897154917407584681464301541115994715905062546676274321015738244025618807191272917552301363996210188826687998836882254126512469118774832464037333521263093752530804836970983872148946945265553290546799513864645834834767482356414553798720783939855572944668493372421502347984233212492183880195814797614715339505866959364260902241324109901921865913568633260400327488828347162315640206221554101838057457239845498608554191267884151588725437037670247974208130144029153990903303873445418431970526515953842124017096142109415332327252455827641451842691795094902391410156361718590176627201449714057402400350907872057196433464104812824299837558874074431393103969824903705222686281184547442357456934022557006574193571951992973501219070173821601143770838284220947900269708857739664712102651233728478824770555817486260914143317847534991096158126791005100687031127401385007525105779494332800074343228584354719685579803549130627503453272830882136838129798759025495145087055369884846107108412142597668430224475515123966433674547107474634435266640837931887261135868849544331525411792187789065596429901530800920226691913394258454074800954560906047274401027843122557781284172148160983579361830383790431808206786986689018085126626403574548753562811648542225650366309849307392534968024452359192371674521506419153782010828287683354177993902982484202229050077629148199129601193917597173415390623409812531990374670250498743306255176570474040545040155534008342138666272413009718156324761429659406378612825553405937993243541619525848102618766130707040344862185201796357666008449078967877955397666758752787447691118554273111558579200042534195348747782563766841514799820495063350366527797621256754262694498445173852012171390401650117723472117180474007967494272730755523498544728248372120518420915427923714583144361101881995628715656999274703968818923946967663608892029062131616386275973961632914447277822072257770220694693913234469145350960075537327147952383481656127640812244406978868585694926545214579967204932876994897251813312461785968924532467709228111873186714771818431738762240216101663972696458460241327199770693800238958294042889595934496406588082875745100060745632327775730082436921442226930488459308017847468804376673087880263110138224517995489628440177660069380868362039138965927755861956334374062667306474424423736902117816343513426802344031667908083614103389770437156980823918236401616758977494411336572176104234050663606172602440308719969766922105401663906645795983128396126305460356420984859310827417492768465042937216633751267249988056668231719562414303358280328619865807697880637191995342827935082503939533796853464244052096173603934734752682232583910766294617660692346992229931656538823298672842569745187801676773205437256077884201653270266183490709160791360280957436960658204585107645945250758199217028056874386714432917549610882502652873632331271963219868147798261366960608321503472305759187743606626430606434006660118627721850238785132030182040330806916506456919617272769178700734538682441286841629685970256349650709873381009971371468550136549511809619041108081063814276791658931494036905873395701689972952800393990131472823590412580822514205397465942729590813715837761598888913887383349003780742595094244316228598968833259696204032408176439516780943413549446809152014698379663898085598493781933377706483789139816865373987907375200775181126251880212430802801779449963068568174185109817461724691852072975045628657719213958150722016992659229955673444160235734323945384642469763513371975862168527419257356284175023183763550037529261008388585315332987207519153110651509912539022604538285032627094434494916529883186962427698404427681223173836640310410157429779287637868020097544692318663074177486142555988988612058094489924627996337025131665136350882463406546888095725724074527243697562132372107175686466937510928097541919719279156405898232107136571216430202969146794462955882390441200545634268606671988828386542407346822549861166702952377571569625769231282923993913036864771216342275916148976835957672298084695490846615977579968671846233868027196347244096640696108109361815490603179781509001772972928311900284117305153519022702049513254951194290180085215924478366739755943202409143355370847588186758393800082789250573603468910443425168461822729731122785370594248561117236025193876281332253257597942759254260808949910970017416618373574371276984259594655738855210182792453087768858818012954950275006345459022012987546539538322691683286540468503122894421529353961225222531575594543641330448948384863043214352864399444079773662544950426585546541710686389586005096453697869017359046685572750866550626236106295735998616400695273450055320635068122518641727239360005731754821150753416319885704251582802625760424554158382392266423706111465119507019502556553859151807643530168637242724400776168437938406572395946383790366530239501915552671560770437873825991255975229913474967835244793039061541157923498577055498565816429043979869494934772323831056012606991212636027254432952836274484627397979634009039210914995106210316111018203595933224958309456113670943487282885219585437226786484912195983906414798125149072409488054479813133561360814693383948244540188717318405627221580626124616949270865353959820939780161963153577475732739803925026531636227391330777762273190769252943470102592005396477945087607738820081877693682338963551475011517814574883169059472035352105174292829261949339048268284555461867689025682351014423263508880820148529711444292344803818950193702855852157247430682370138222343385257182227220924597302608900349505754618640971269181749052778577209146911886704859271743779233525435410414324177587989223011247527281484812680021343829632504721841617324665013370230581663763014228519993253140802218989143068449922177738264689413570687028144399970292945791781225767343496100082994784625497515338792983433591369756783748802970871545279345867588854071673760602492573799276221134667372871343485709030393584568572806950752308338885605530223511218097008182448763462971741213902995348347419546513418794068011490177605340648020624073984182059712097873627705950615297787878059264586407803677684235405294563152265529229550532841551031353058122190501855242620984189267566047457812414864236896775141158723911959055344826809507643670167077916864598230915125831161808908577002564584414865765567447716770035524618031785877859398080315382504083493398465103697297875798121291943149887994428083122241566168323453457274348510938761919788645004391014843016101858256103698415149825350425093497224012645400468657990595000536720543391914934238181478830542391622124584540729130042273223641008342265046705867467672471728619326013025894237824625111811633170111700963350835805815825754922460021498445432264165103839975555904150376301410037592778429563049125637763212019250471350992928595492484604821918145756198515408093726488990989621359973899476707943580974957657520997563903981805743615379596036859365745435184579774973130257005322979505576301981853568342520067473854147042254188173306132657381897080501929760558646329855624619267009449773628957040530374495972556038679998720131575680955637707582933991442676127244742081189977792308170032738922649166323761642261139023344613289763513298893706299646765490875411232572194012238182502413723394739208226248367253318626832035582328608848519037340803041121672512851816740422557899146283630006927391412320187003627140286413640091048059119473042221295249089106941476858943586108294983674059730035967415083165194388459011842995065811278852646676697320893614373364786849427210979900935392065164465644152007662103197021946001239187911088935897875778535517671538597155715277621131797568177051727698050822066141806477831335125570741347892780684066140273352857461404512483516125210802752124372449604717668081014672829729584315153006201266740193632636346540568955535955693797975223995601021101006425186231986989530669681248731704141925849835267181104571964307351795816738827149503001171125969626972742763928916597243214110771029839552103556215487701602154315610335800972815816644186000666561842311374519101003022853664137488745897630455728347309290241208688878850845917123698088833943897317781313203753150586653738282049847314021852172004851053378860208847514436307940014786053533560358742374128688408497281090863459746990332989503206753834992857678495987578988662632563830080983333830926621176053197271894053909429898178771730960645774252722367140436881801023671572288821800768341633639409636489433279718458425114010511473705011305886169144747530177488629212514574544811598177659734679402841787746025900575091086784782244334902120307096457301977633754654548570409658995256753309741777216684739211082146280910013631074532704795766395056797347728259398061244857905733909589424131138840939927437234850062142401802485365619621832323244684334844389862476382891167857553384363036952851472899843691003685492306912727046569746368227112690938828283198760316442068443272427965805321597563562565426764408567207715642972322083431202815929319667382340754314356384978326888790603321326110529127753824884094936237433858107481691436097921340106010837371291071824853275942387573209958394176150703924946336631381991483729770679831496638110670491501089565472387336502504273581403330625613996057767594634248111073094425905870161657575178687241869000192627339092757856286342971982263492681794421578288687936976912765594873625800080954515890769613622940615882269928035184002965377895800535024764714830079818386497992496756316187121735472539199634470534728877098601746577303594468714812708133079268919162879272326285144908986892256567937706893648826104401324690382403118836313838464831407304450561610861826331895351478216680267848417325153422902401918669234448110764691701907634386065689585369466946047448291007640463778480617776120099069495897538480689778690768194102807408119963465898428186145306213264970142838045609835364615981315984468760575874438053732588089704988711929004591534858909370186143110123290588777594023565530438588037023618979033266603531440402065838025672791045562803320231156985445343039863908355101435911642349466230037253544229468493176002655730602375217477831374356258898440179705153819488424958015761235493085141645153810444673139433799955803569450394334396376847013003192970045461668706205225048790527096866165385929047421307909200735940291255290017326824225556960280770505074441759705101226380068276962183845992162162174533881970560594091012330732848933123595864015742302379276478557635000477028220426301078549892473045796790760811266669715124928488238572123497374374631263311983264801091313451310825831314758892298667417843843947471684427917333270018065463399085921168152220925388832967821207765374794414738138286387413926481929408417742919428275922090568610623849928528184511026118878792999608356176937265787284944595577029749416639894576072613869794578987355878463090547227031475290798811729609441881216450649088363698118427345640083641803234922536002078544539212451383471901324140256040984951706571484535234581856438071036951187628022070855755311098082731178651825006626352858018075882066686402988300897050310117390848194921453287192765890041521973047677662738133031838746744263841777145548754575736664268140864080408808140456533532206347977831183109471012280320365688000907912338526304170337759527010850391317687993602946063347001478452359622951610382039870700282174970679687346143073006262793146759423986708760724697837170985308514605363164364398877081964415396831123574606790911136199977172098471400018320129598838341381557995942885361726572135495350776216645978983316401151260137753272918621338234163962130262877007467984448334966340202784992883704217074715494309185281304551869394061770320868396073969122877938119133509856647020500741249804888823385819856438013775578877842472034820875490356502008231098447637772864264818819758015822431370340571193251957985009303578066651857699719034357445207923014746934576031896786676920934447291202121768226345145336301607254013726336887326044433260265147340268054385566083775916391338304097388283427014949189989305596093933987991109862134660823744782263703258187423239643924730363908433138739667718874722540308105425354167767765010209031899922292077126948623530240196163000121595681254326184360475183160795746618733107306140632312507590551536070086804015822944675726237592152039945123566138913040560335915812678264161635014753263866572997985303339864896658930687600183577996250849740332510806338699636765149487775040110091893169560094891407539549427821246072250107329671482570735578274531565676271435391023760447448153140284161140151509342656276967781825076608042486144079834806631493469903108284505746956431792072269796400836382669253533808202318156241614075798130836307345095101276987954149017892921758686721824312069276526464616634133993825498121758672152206661736884259164285699023478130561697555360735955190188642064365648784434437745836427054709615036386999014282498647367235002028735386018419973103651987818095546520468771534672174930883951897598428175439042077592205783991379929856088578351855494134360762528199789311579898241041245643369525337504936359500745630268897175315575528869140298628244875223683957456676256202030904939655843959365757318281045974394559474507683388200595903897015321594126069853348412953259208584993615749097531548093110054647961355457954038075979956826223568758226558191239954643706560890779051238968187261984860326643636909091488851047237138896391340885192657143156312447166321281106234027682160713357996694730804855709453172805352374505124670078505937062801859447811605494576053227678660485934338403105398637228996565502985864345388471349457379868120281578678989257103040001735376482883940085921585372713686273072690281206623238269940772775232059081438984926863524770409729548592908295604747329133082467991991420175005990747381955239005229494542167122734737348537245681160533632915199196035280001604593003734094701060196255424265656111195579299188309007739706020916970570413626566123571474094643141196170558959698024857003538564645562287330718315445172158896600858741805228145338410092264120289773789026835206032700622085988978430349846586741653811500062680340118014274495015901578670916739522481290979095729934271758437703776711787910123627719137548195597998647443698412311515382339246346295283479230008723613833659841368041888171703777123205088817318849839119861136738356575779374803724704757927765844076058228620738764117325168985507575749451837702221603615066253875817913316761855766250430842672626480102788016451332641861455160921343620776531979723883576706975693677385626252488608060872311139713329698762184407200879873646780810240174310596781488102264843631773218686644568116196596726022685600739138532876377645105194945313631929540132671558734294763690042234387961943212493157238370616492835054927915240735355716104809354626276542321540643664652943834321285981124770624101105966673751928345694620534642429514870557556218351224972238314961176363795846652411589882922908241444080082634257404215394089737482015047362427603105422858794075242049366969109753807953196655994829707146286601139091783809595446302598624749954283894070683735682781286227563959778913527537344364756540062673763196847779913724707417243552167073747067226884187148434827885906522618680929504166422123375400293475279020117454578629382756738731889335484578940626513891425159175210073226593251138839742232539507006502111719279114115462239683420560931917288675090422334897504442964869948246967914404872033863721146857939513065713082555694147158411044834388645560723550553355624153478792384846049762281438581540399025115328044474245951350346856702896040297261558001498581411592442532479952717434696315213711616203059446775702740522133792910489569752291936514036415202056451538292144139298635077787611899992136561631161933870897726288937038113641027504966324331174383353159536156808615207924534898616998761725623970764573059724258097833869074693690417010894419110408588916001573619768725393501358725512300710932288946814512839677695498760102200791439783030844233441152280578874401828571619780635541311724675070056174004248119318951272919127707070768163708237173735224899876527967107030035740554847256954645565375273967740244069742379062248576715865804759246171560337738143504157654015719411888377079866116037029432333754975254324669262552129128714542801042643684383771724034294206028101045186757491415623927807848956199145183954195559304913533256386489342005692601898008778247783268624135858639517940192607394732416272383522999312070859252015265889299454201965790095820071309464007077593186535205738995705240307156258437642459485709682859400972060478534985546844309317053647116819768947159484133577097614891068405981091827765097572143277316358552478224806593502829382688116589762216237833438569833858334477384555287352895729327352617259012538450146027711783876762794403714497809104072141453004995162064577832976633835406703714995788918585075577619161676039324819706713944373534758372025309673720548620138758624628152040507722692134580818470000428877498127980890984075865811820684919044393406419742745969710231294296924509879787039195125681547320360910479502281781609319958031474608270455967288892608430781798802904813696028709340201257242144802646881985142230285769098069728156195611929041737053821959377366202483324573895765660387434519618071810927990952663391566281755665487483611064285759684490522052073410537990358403396126583738573703093838557123564628718962527062897891791606681244722654785407043727549229968471435681306960591424662166165427137814076730340776427524243773190188730723080612633519720938531334218601575165665442129199782269452161277582578100109289476396438406986983436574157686688092649691696312807141598412138711822685130603020380976312796600637331691427683566248598912130083007720292726245728697519771255665577658503462328047556513207004453002540031911911725921570810226009875412128673072331866179960721130950760634119196469450513477940376934470124378468718080343670671502320853329568357830314578423921523105894478665305048748542983325164979624192321647829542411439723473132070101525255682640608028330389901231856383123792878609958416957258384251885738474515245166426573585229074804243909746380814859282001720694633126449566093084263173661944040875097326030721744863495449399564849516724623198969841139062325743154584698662788306785811154576823460732740521373103999327327280490933811449314991699587508707671201372185102134848044667791466070973801197010549221009599920958165103832836252615964686641491411420786203219149553997032590090001316703569126382814101621778361454939739092970191796993358373041044822110969603556743427809295450246460390557169572754667117035173101800979871791499973571342732015200095507885013188525293882303508671791587248841009337695095746525315942878731557836843795414728675889435631237799876254157786798971051746853515907530643163100195863661390646867130951832213856855179276780050987842019787234226917737354743712532317245201351076591919975063179065466165916171884288553346488686816266914893354173685029682849410014810505504939943384655852608228236557781275595193558972782572571727031532189822511786365484630143066374265685357126987918306458699080274948124025132525665577328628802995836412464779091534835822964136043393809513733053146639345647417175205656845042478174802319585426054315400467479594341161657363471161298862461862752005032845612008774237494605622918000863873311511942851777641282609163499072969887777663958804262295992235989329245826783043590567700381849692772590162403489351511003549770240766864227937600887911670861383464045622308885568271276162427709733370733222133696924159849873618294384335867486562925526668698704448393651056780761298287858043385758569934832947001221171352227146222619227572377748496943212633110307539233689871278725363133161382066598519366468876424214392210079224769834662046102987526753741254041048808578401616648618020880397818923016342872735409358811030763801571163879113701543601248936188385550250677238340104219735962614872500187573955436119785736246853619286533925752823879626154586549440194204755393576778439584200186870462261157679926237376439840178823674420868248907439838419854555197664251267055689838766846766925005527259581458518193893554721694422905281585033336790354637533408417165479146065711083971188807670843229609969244153610044556201008323221828924606775743228709938841798113583718757499717270662740892499260595063613376752037396411370321541281891559433320786227457125947089824285283470352102165239751761980173492702683303747075482603499792358502406732646171502441368988636022531277990993356155722291141088758918376035779007494849736798544772766570869206806767117913219677181322388928536536941578532721268219079062583142327343061401289898178274087762866468983162416167771569377190234258469846671704006622066272503200320174566881733754124025303552163675256752455257643426344818017874080881122069306830749870248402308541428478832956534026613030844553404741951176277336567014457089259486406881663297050672548080656230166457333068135436761524816441482595303218096420644621323975661340269290258859265525157797829031376418631842620346420983528819476319829586222931076854830058391031147790947438514614340746394332419716139664107151607273193539549992545366828498566475084885941538629656102793811762564093564694884059625156812682271563504080643408879075685837894489912463177721877984093593017892983620614589754171751965486040310296824703573810091082501966248641244190129026653325517360934016422194509264704483605996155457075239567934002213991985521774043192976211896547110628534249443301455974410622111479547221834100670643662313826507715579496602880855729526018095045014174544687913340528585120975821140503365179505987277211168921529157042340936676506439488783147371927700242385812464775258042502139622427509245996163811576783191374493117584389668303494537430071903202202010111800148062866638549345533866919014909153417136107279460153816319061706133729077373571058712689903671239365028543383349278845764408314196957761227540908967327820911048789654967638211923641914114223510313781989100109873381021884530072366381159582148114087789257855183607851016799415115009028851177900848434157032152064201439555279692621779459296628220845484943910040118738761864196325428817243169477434506581987388659951680319619464174884608836258720650216653139926907704269395931022988329269972315168505979334269418088174783367790033005988843770143152466125827929599821065525553051370752523089909170421969179441031260694806905285185881275868050311559440697893943859645675364573754306446653180260266100856392685571450723461526104445757085528070632990962848962914868859919411466415839854794024121358834819201786448061026669634386921114622036079488937600267109721025693683169889875218546336074109950282756652703955799145944426345736244131814340670119355014750922244798131499976650522898564964818098011499353995578779329095874212569853359733566981422263382284131278432192006277345247886916750132324548383521628220634927842294477071689175525708469626120398127345264269407177714024212107538949092268633678382349535584256458181155479462001920981658791036245321264929734991376405091111867456522010789337891742115659095307956634341414242629892751159689054639950434296863192122349086624899546967665012416954842839752370877696351069940509279945073577516266037530584615449164691535159939916301413752804242780438556051690762398203043928106826191121827529402400595966023060240613332150415590415832979653575544945086184175723285110308590868095322526585948780930915875732083038267259212310401404488739375642328578987031601455057999869511586468278476965329872988982868148095265475511667402979652453086977057298325875938716700545685892481939512700316968382837841349041403627941016883023011657735073348250989683852161001301359285414045279370795334947537632363103107449680415753528951323710621196526913836552766565106595273410332465516402887804836613004632405188484587248347967280262973816977098195457959426842431174814763367768338780638842170096407314592777405575931963121097979231158411852840447166054504794284993367444667006597570140279529894622696906725935402921322678406647924623290433470724870711998766100376541596507079952019966299532813066807556498389406587517448124690393302036726630366673054630753868245384935915651180209991773119491635045875342896195519764550629020336914301292495877806012295022376001313762770270043197647263454994300943942605056284339445452230861839560223351979731132403474447717436209898797352127393402016470233484698578103164665794545248723374607091207978561452218673230098517739025825584359208816745519588350540275567341214417093954365865833773570866145033847197447212183248598423456455140933610570370613070903511623743582875229909272494149147050491827832319006460115274626433253195451990922723200615626209389206295448434137597297831205329640138955300328760944215984204438326483904878498466980380576014124708984477853548161639542258792708968550223559313005106188831108442525049372718862661809357781257662551308841483610190369966643209323536739127861926360352116521572296274699939994097638266046311642002988664895305957698462442799338242561988559728920916330973805653623306134733717241023879211196096542789550201476355485592750623054028204760258236015353819240402250898775684581384383075147009436139335648714676946482862592197862334448742935540877202138830238432621755750094241710079374785882954814664703116901775224209314740735146536573225416916011387288283910437588500865403890375309602589517614404334588124944026369441009184588880540793721894961322914994608010351543875086976386367869240945072782662889921372576971333348582932046785107736280516838320073212693960321254394335907746584239237743298571395071290920869215938837310354000972492233811268708072448621019032933772388392180116227905808695255961106875577473291751647586327847473440671381520128695064414425608681622770558806099562679761427011697492441926240685163708408697340266610736909091978058495492649345762905390967276054845303081140211357119727485998976445664506276130101784303663508359777485196091466066665104215684093902059273876742023945418881662448219490531753057127770361447929350147012538216662103863991769951284991763717040381663608315274594534539076270740249518720144413023849431720043966812782034901921722131117363092229294323901787152052793512705300276520589263111442616096543959217302193220733616122295064086848139549235377515395282859378768726235684250969764626194068867444129367349866012026199462488632174095676946485222845788974627455695967519374714687958452887246476928904054995112833086435811340387581909781782744840271419535124091113335722691035924941035233176639145912776312089645198060637400550171440606209788078423212544715808085674094979825613789085773603219385454013916921782162243965065956235099182380533140022453630188595044231895390739285294633228401049205358042827087355597960517480566022980919480048285277906950310710047339584761853616218366087014688152686353730993605664383518897892560237603460646150946840227611076754534525303168744888938353477228615089498435932206701760088667762688570131413958248435825084525595875476752404823023486954739443793577538467822299277536706415457113651429208321802417720355521102048495779426849828410390000729070676011960057116782777612720161997497647107410189317527558014003594696750347011084899413195231045911517165493082407653646415519000471853034719908563606860405653899450853443133999003362193016017611226123669587255219579861620182250731272738601893211001739150770667173082957303526542899593517327616239259274152765638805315251003712320811610222461377617734503526222754075971006355439102656162844709913087088521369792864373956145906311415817211089830053748972709797881593086330684410667016512280448403767959087232988578065753988656545075173735540271376026769098193096905613171464346233719171985085632632432371850604439211817892769483054338897758380202435476906309255926717482094274750973632005834681556849579104495558578299148736802837099382811854504766606057944543110227099758174830440721665403752672018706816720991527404305982042749104566521933431705285324755183389685308506070451639771869977407474902139573665576423993093991215297398590548351142048894973790516197150821691173459523825666244918291783030947125740800982718668559450488524942879645003141110117336342015629190948141045431934191311696902286235294649541568062404432066690416356523056168487815700022480952644691307497645777565437586827583662288695334898440584659757595783327096829432313284948705854754551295220674330466867026951405389632864797236016434446930702871770928493014006397848760729415869511130957178328095788239511516007285948739957259157189807778921586425939554007943494001462576687042028208939664984266890376249617858254699962398288654837981822440444211320853423322043014868428397144553955386512836569370864583192806350919873387810540253104377283999075672361570384576799901184688764490800993652846614928483107300979194098213794533946463010778235773714622365528460737737493502874904553795401841626159042903371200715593644642813518972715240208832835293794511080680283357326426956103576110916999069247142329316275776756431054217315450297757568276381939221779483993684489383910354617062898519254070026829999184748448183418937368907058263900567641610160701771719175564187926838750326393767612443902483389992324240650089903135911973501790141875584818668887715283162815879808070368297334621435103521817662212724123519156189782414015653890551841793283824373429459850889174531098178547711835855341694270322958616404777630396439602055366003445260915868990698751958096964136562174547219448326265735612133372905455245727553670059537154007354691526111025892325877574583013969844497360536064265778453960881577152349516248086591584453935297440470568862156783751098845184536021779094324236032353060681791798086388112864551287168560927542422185547328973706953490776023881547174583583979242201735867622451709861308065559997093994168463978726885584708887899172382136963419290452126880041965299211076534593520497567589878102511534657517732999943320663890617505848237060702737937536904349623051974970156145318440071371741592197496701308830658331276877627949425198694414350240805594066127361910943075474096988104523282411041499770668346712609215838066743882613693988607520015231474788663381211767750442298015620467634311823495025580971140821466649540713117068963028386412299186405907027305499151215094899207937456636079151083148892383130932037290675744448192163130024525026153887995920948549828072695908922896692027247444267158618888563035768462478432724887264109219233602162104274654432275091081130992916063813795849301370707684995302113850591491215032686505456308456466721842452080998862972387780703088361726867765038662281749638883127597367773153231453930258205068895541655006512032455842656376516624753204104615298574945452868062066796757309290455959669338910332126015048801583237401376065444731564336503586553218937193701315592819968688948776918632846980680852732345393082110691996228204547910607455840635523307354304889776250681074632183643560922810807393585168729835788072024659256222032499320406524289368404706194408107245596935310621443624598639635696414413279092488703452404033226339147316455612841909146904316191831962321230443996766663402261522961479404405524493009630436684415731271129745221287734668129230721399419694400830336390191858156137522536847301372186951338384873998068829789811969360821519340677999786186115051521894072784024005748470582449787060832687233020174232033006053734951057047039359129627606187681560839792817752846932377437264112468614920627659518930587758563839837822779781494165139306332664568924184351983828541618923904034021416665526817816318386533632034963777890923226990395203704103442396286414255492721658337606430663069349842056186296659404032813551695132233210630191718524423008887343206151629334095567500725031207899359517585400504663138442793286191295920352822990455540728717360175151697565456980352995620850067138358763054433505933844378942620994592610355606208417325269167691058215828732121070312451729865780155822563971078023780920806443765642442488487393722698068260438749039709064632101489529048137333608838194954842338233802664583871594249993542953057244548552418842246113161059541009821196232124365606249273926191948374626975981787963476228269320545425836108945815099912730286120816898474556299918296403758650349112793369922439109333412230219519185199611696598165662052591196956272131073297291529705493412430056409607234131045788951641179049154035195533909407954779175118642357692140544176997810995134404524319984849686833618446801434127526068122980929109263289949748598765946357703419935781083950263204169648232848459216545847645455861296784383801375488375569063436277326769942595831444541495882699485985742214186386374661089324189910930006059867734876321256691974764819003990400783659567445187405215280871177438125671331102440803447337423809207721355685422179147478487379765772943120611562578690528717049318451910165274456580089745275061935932049110183096980023910044349363655271072337087174739782799296009301201621867487844873141947870429439659599456344415180296706456280614802119849642389046769186923320428101010610056896313555534466894901182214224181083362929007265991754017937978762065563349728728660615783722156500183154940673540635390859854279465434052954116617949171288489088233079587655777216316980490259790798922829880123697471263476497277172705701949900612203182384826385768252542993882060303447730425282431082124529210408285257371420511927360941372599787357410206412679843221874938313723947900197263394413997048501598635439106400101505920211188415144515245440962036070205753006675957400671112828521118913154939617018630539608812536724334367616088488010301254734602707017554684216627557086939088989926935857776484862917776757171913917603798170151911162347581419318223371016747563601679162293713994585185938371287774465456159651814498071251869467605193820509060557867170450594182407561508753026696619872305820051549153714389753618751581173154535693547550181679890961612242669952363689012516691503508631164684171026270625461604857864100589955162418195862222868814495317888437555761156151061655289823288004718257867541156508441202070561086739139180528271327553420938450080453364777748566722399050938965645105295395190101109902401532126615492859100567874304290297779456487048450477765161131157388287870249891288791587010586644358898636481136880595775018936239537445780219425157322936340087850689366169643558872122225757017144385849804999680899432480534469577170881776899945606476620675712198615114968698516709486333466583333582996681267251664046159262632679470749508472313546976675984999343628520357445228143821699160789766640529829661392610240823102689860410210581730082942584732546828049756210727290068019284428378296648413490143729226442685414678263201313920632763441767139837080654402814628629711045528476277978745868022279525483384565768020306225460042404280408117565179556007170146619882824216322043365172955821326025087952553678916368400349250847481802780642944874248259178035704962480179682902775938532290624615298534539638306861327344928164936000228399716492906235538415725626133894801570408738838851521423373109532173944204772761858781970224265748690305276532524284647843549445224990767408028557786455207217537834293837905453955366077213787986199230690294555582485760021147104489172732324845275785207197199130296721870242464433214759128525258669901387387485087617191263629707699298450470518748306095116298304455033242580848294312608423289830138345626359077505336063470813639927507755069512983331379622268539111478003310989261330021549476449101163110223257327798974021802645889108277435089961781132517397534902767974628964653722777566297525394314344365747842154789711202950810918003587495685234312247718879334863762157783037281510543947157926424010297724378432301742261060624530675723661597992626827222687587745871022879538665330241291095839878936521072260245156415851472425321594534230667686473082519116145033344848652060224651072365458438640502758299707852898919868274203520669316285615481357082017744343574948345229327042540936694548101890326613399673830486269657971918364728705756155429443228968231493185881108294439196811684606270881885530037003442265129579418539303776504387626579075045799121321300022995338316076852436085182787857930941529336876551935145307719679826977561164763442272778404707972151684281974990684454262871316015067418341704925067237701839116957187186503999222919601353570886845035807318032833548572581760623382469044010644568149114822236675586766652045646992141510630495238903514416760034024997569879790063263739850383753497237699236259936320095564330126960642448355893232323888570337050756442399967081862740567025560206288526111267962514792821408001994117127782855829314913332446202863064071899184191535374079012220133447234147651385210958910945445739346226741025120771709273182436126671487818219883229343367413397333946639671724251929210689830063088210403797182863746427134216656409071068834968762357164259642145744347429553477960447813966474125257951163215200197881289765560778218899622789687647374893047501678844104859148694772160176462795198925857395680149354893609794278009391250858291549768071936074522515942538891754510060049398475326899574355104080502515084883312017285088781200130361475095800071914253727110597592320214810933979280486506263356680867474926891138510170037754854287433740883279825283549776269041044977969337199206466389819191959880350378025319868433753332943583417758750604235356564265226388358891492378872047426893160629942065719595162685084833620141228543264186198947679969778616275530608879925951149802999295213424937756321936247026846426398775237904842701059762358277434215382941208608992986935840151502968031741457046780224852870988645784774925260610163639478098326591378650682251819609190362727440126962589262564555969726717041306402332591547432772971458458892940820397962529866722011420650515115959900012562750878372778720742512986802732616559983440738704191296601357084826540929904489240633082471353959671212286695673300002911347948710496161108629756242672346120425331106572673212908759206080330478251038314882061489588697472931857521786204768657823466129172136199108999696668489464970004520866074465413612010489698795310528072751169862368848387699491831548561313585359061489590684961218873534517538045249312806981441895771117345893862464827675734689483230145544540943465459615729713206144809995716150755727710895458469139877007163506423380284507533560310562024176714779591996398535355642305222156125996729751331730227529453302194522032832173863061967763443160225091065927082682509941898126520151364330312159536993752914399084562856275726187342087247399000174744723767873535494096392554672559697086503356147526649013068776062991689728275219159907425423013054546625699976482531011622620571777995991616654330203676714854733077946015030813833344535416156949771974323409856196352346970842476677905544601406673339410521498947190526567717857842791673946091718630393587065723452866848452024391447513854662081519592442653632944153081477929979853489273198829005498091722701873290779939464413559724759415643905592420401441780287791220392129655596549723892671197816208333795738772020169360829327440650836764668396015789574982526557268836537717952666581721344914327242499458015088936298626561164619498825304289115096723775019905468482073634696281963395965535236966630466125199678139382603298358128311130419790172434790744480895443144952375910850814666680141363283053754001175466693299769359772867479632401054626803754370649059321270272940260310499657616733470221003406366654669020741101260175822431700091444745334250479540924063505296444417914221494808232630043631225057402454589203012709155483493919134791666588596443045248721418799891600356783889514081921007711603921396189893290396038037037587996450269596830046218608097611883239631659444509767482935638831375263834638621637512064098749658133381331639696541332101589174376416974078336690933001432926461718660722106083218922011284288227952253512029974159883377894671250735285792169126593964702740682059472166122349098240658531174308653012712033643304430168472878487803240439954730882871801368522298271907393198312298740414864812243608596891324144259152030239356227240025769294779470218842536446960336006777460688243124070542783979998295951002916607120662869710105526280749118742026744359138357905270361109718222320416198219716053855251850888675585992618764760256665428275180768740922103960231847460202534262016047469661007385010056308242143915218953263855599891656418353737744997749862807373306674576089283320344781052021779558544356630587015033481290423273691489639536084771260420769883113912426972667952245021083067561105008602297331154357068971547805278287211588817519497554355779406550354358844367514023838847778709251896495827451612754053077902099510879047868713056789818724893239642826525585671722206609210499117468569905959880381419071963747190739091049458803383498571014386887426865488292488241763754057551977533793758880272903476651371182797399756044202573477379556694711804515549163784968518618015189754067135800313371909053400576951726768220359740450029606112396085650621294901379244507295645101170567933940039671322537717898233172764528827950595443394643763724857310788537528709163478758211008993671536394102904446426201088140477844876720477373816483373921760974261920839057033559760830610718948596073245802827449583773919922541602297333467934166666222800003839141292270197062571836692408846318192211086195830024935953080456664130420401592926807525735342981876928343176522409198289651621166603763143624277703040937276488145295879084951750426488993174242777276748583365585098609536440951552026711014343189889842460393760064534813159126448833477286826314641310100994645727961927862950963150231834997408908774781940679552900217719743188374069061565035002815416079434636038120053500808695698336420986770080013824879016563661885779287845733386095151838125439247113800480824549385556080422110587086427589188594605126687099153539101939923950600490654756327383223862865128802612415885138460420482396819009806613406031086263945948097498331090823157666516355913743870039757754311902393603561431611135906651960822066440579379518605840756970853069711406935712213853049056022705812078377997213680941363258488206736260954637841706567324044945891036849085862735224018507278090864407379322092948714279644467660325739926509371510210675624575904237980007125280925413419905041762320101747792202659918731232718717900585358994831399264329833701458426355773905834425626469890650605457908780258208537942464579885261962883315034311257738347567635412860545779742038587939071971292967331724914298850059323488155635022890399324781663258320936201024693934741786279127630721642728305374017124970271224643322569305999391642393267470465498175044628170123429009268634415533261316806747672605521854479340721137152690713736989586432872326512247720666105419537967078709569802076913464791711333772061882628103918757135522290617942590084364124298846430987431209624837362047129517755506421597147137147115861146731826129117619594508856877899377857273705775813404879978834413533792999665513329194619054121686947880475816282979988825567734793073766477811341218229266330014470837172075684974311939840108383452098020420350127403755665410605172578107313471056601961712292427705718976692292458151493788877878444413823519654704835498016209992730831716419115213169824563434425372781429945424373297930896205875831060200722299001535498035466095217412826134603604536033684508137279799168167315246642808270547273465535843258325834311095324408976500832369299534620800862410019440621804586985784584061257771280677552985985783591147994938028959163417707618384220706207998332063687809350018911273484748287752223156456367216249279016294284704366799421752585008541691456554321293336475059561552187615369535722952885486147504980380505239280518689837101517760189682921825431109796537754527209262356710482005668640374626176375664488255657620461886584687121908339114906080267694444526346517483883427705128158256315016045057035189707417157552679842712514657848222486783966143135777299177100065899615964200250194023924918038589609937508787782475135002743159744044901879327734074749070777688888242607103393799124634148651261218366908525590440402348238416925335291355126170668145561002633362611160702550257173443698248134919671859282885389786400728305840003237032122979643773225021426892454222519630936622198519104432102460736975938358200292315484043914456768704959001240791966609510948886766012096750519158805679905215006118536789785807378322786493905472099881059112026648645131123471555778369486555605375685239881663749776499811803053648567036316549163979630602292573307818484137447083807896473578951910475310407835609933172155460250102951005167236600698878606596970428637775522073461376745451345980647326861928137035207269717124448976369436032708386505981009051891292524393219125157978312164991013082133240744189184751900523921078432298689958498703954091912622780718722941516186261159328301577320332280944251055414157560142295024541061687181642915934150248218658866138388137349822445251554702736682166521597782072657539687922813178178258144269694214134941623375208848172781501690888663715207070860755037406475872904563441173256844013533948520737851263174785894800945161905474304383428152092098848981502208533922194945056630235176970391943188681430902794943951287237889243950130873982130731863632154887431403019380976613797865806722635709590707325749031683378060642133406984241076256436819077797414917292651512738860487715458340041608600297885664959074274362353617009081129339558232675572996233789322898076316541591414986629887830582515480223723082434580749981055339639797735058642678936409758056118640121080868374546828303096031207641582717017797729528332854219206525426385046875408522245480327457262569325671156182508979957202742295979673496425086759475179195362566402797228041913816645671446119329088263518150486044597372599670113440859032794880535776404623556571561680242542311956831663081514554156201437311524448202555040868670667223907124737949638933925846963728242973970587994122160720384274224237409881698606195878624316731072006230502593412456935180171351478437766210055208680483898863755074305494533373636465377168184038849628632805018283621760798413018892855845662618762019762373806847287529740791849873491938814423673833158101982695265182298258846490181698519979566155175364579531140511623313660682414389201865932156840802564687850180272137040437250183194447533070084935094039655030285828313659857675700145962015093124694228218928575062583293916125265983903049630318786454228437601903704879873791154006461177125121773912389111062583345422179102200878917234688001546176554444715934567927090969040172682050551908291284588134720741067790679252542460138942631365607859610318099970422711387023883271650555738975443245732733960265736164305719843416846151576179263757643842475284863642601006711348884281479260050574602982791826771402975552331678216935987330072314510117765745414644711514504855108963139836659982113460159579808782700126963178122532898163103849140792132362858431982838735326803134814283731661462879836806113534990790176415057966684426231033341294708559416215050832688717386867489666210191578853553757017317063514503079625325386876893570245576992508885097814202282302079265526036285518916105389260731897368035446953622681272819422502136764723547172128643768808275307100753343449571659779514811554019524680167236359412530229118387631342361540292359643406175319212365319667096252819991940039127949962506253659150640374558760879442761797930748926954618674600628422762534063624386665504804418053127644506725006969466216344768271402801543296665083164842130150660312642565105539038291144541614151096820921020269957560202141364896485117550060936227852991964104937256501167409955708907111614804664806805864080883591299682539242431224648426595818146487880695183869320474163834857599511491497447930387121459952633136364411068796277726556472748062773359612484524552884249199678450136643146770869350731707148075895263753431032516708444990912434053037172064849662679461147529323421442711406680490360667392328112106391600560639110430850875351231955267059988837153238634681243398732488610730814597196975736633165463251404699245717821087557291432777889179840942758289223921055072276494459778390735437305421523936309781443899485401522833641754428696666000895682260458678029655936151484737389079773857360770446626868385076647158522650756034985173588827761557900981542787510716344433103756101150754648699714313055898580324511190640812596702468150160558616058309177264510117653839806975337716354262093012421203497141442492086500770212407838667566306015130786727210620004889681946565916345722704350096554668943558985341308013115786219910236269289288224811876287358256697953931009095659773851502759002882505258178512107034950971640848072757347730960163500048460901002984326564354093078926252897795561100422125777082918298176126735081139494875672080921481536493946619874998265651636180040194853053883014834214419779424229195586847349986079424146818030885561908529760936022179992233196880989940477029325314115552804963633577576386665056889593200300902868145131456514399258077926338186519500075682194818606489930818719886574662539345198590196071533380642152675484391848371085605867755739614579106969028227582484869636732884063305926809113228896042405484351070291792382556159549232855801177033975608527475778564623535994567629485509660631338566978529512281625081054811286274528839523538713383681174561400632103098685190369429595885001529940804029425536170990647255545068412456153017216002884545727875813630088154365739903570520071185579433682970674077254470737234385623470219371719124091768549424830015711288317496267800161250645804681425958920275017927377877184307190667812307529276756165695226373868886749466222036815243910899520501921213661488881284406092037863864321293077305463441971453299424794595260273249736539154611698579684039877133029754195784729731699680183630275123479398866302791954722369586398597210390710820574972289813343127424527991640184356822451371879765758968610700134410585175199342449518249587216741771550697704607909573080434253805907305682187180819029584906399863879291698400657777778482949306933552832162081296311274266676497261893069121095622669637458552176312199131458535690370742309907727170441981941127774611689738889508060432825603669963463198614869401609814289596494891927014657990848125835650645554771048526530135141810928152267393172242345956500628322742685175335644814315246410620948561936113442132259690354947867117128726392319604988800196082648023443075206536550476736647160861559876060730888936157735080282628099119322497183002302121155570540108929631205477267627415922494688233236400401760197000364720392900951037598581926177810418739871778517718718840796428315308467135724577518671415262841828642624192653523215748691147361436911959051149868718572103048569961886609100011084344458405624479075750334341453508164735654026740461673156876465921173723555040560860693492277341913327659761999068872834079413483880083947866146429898500411202797177124194455852775387162205274799401542522719268788503603378072978638559892627489847079637013258969348597530520820685389150419854866984691455822078880002119573469687577258654768618249142203594454291937106964585052109663525408291134269349545849024444494601297971949760533527789227192319944545905643747065228730902663822299767931016980488715161678314770618132522891229185195128822889376031338011834041473034608040333330065846904576495993501019034128828417900958758505675223520441994050746320649543260602728314256459903519341646745398114385469344856342452997362683930305225489720016957801197342664788806714842721462079010458459454106288388231507980473309478746425602900546784748299952784879253276737354726209660355618029412720116786005874950648887466028746573979253400358079136176977789408355122389566405021425297754376510945364865282974089796505258552845647405677340059945899081057541668109874786637452591966343798270194319512476835099553732625289409612783765854083097719071705423224309271499459859965993844601988536088159784756576534191783119711744659956079148192188798349514575115435870082096891943635784505155200254264059200203212909807868514350152547919458965402546528618657986213505409328121603279668472740273943438556566741619250009225228020230944788954758349771161687699568079708994963316836577245202860419389134926698654775187696417259472406787569489680932238022073200414667400684847849142600337707446648968991446247299193315561736247284850967900562414257624519741397575757087018553169639248214017287302917443326452420252503853709966437168457507949093804842530939491366812066858751451630792653483028970543552721187840190284104653242997385351230406389085090142721584062287258192716781816534098335000702585892563436693380947572130178134906117441286836610289395188855867975104794929969012026431915567881160826683433250826497528877803333128264623048718906388195078406426092967597967243877964162877635150694092505708508816473790578111879262904102918682300722479786645616077721915342850404611806508063187432727365150954227591899391921270747406972433019918864773180345278851601681907747373397943471499716498631914002063349724781375268864687104395907324483188835622513848819153082995526844008634335741508206754856593491906482339383719361417321306699524783652012014216028764375582922123809880712417210761356971077355434674574316651448425625426150063505359198666155074978831413929007740958678415478778909017088959031703571193208313766799858900805303683075307533246342058795549599247404069234232478959813700602818197264060677366407171109596386678678662991873212444391064568887086750151325804302071281183094848137358463758996332072431430387948365205898492885420185683302002547375519133775971699512684093176774571854723730973940586455178952541189367263803227810857558140003667935183787212403302298290768388278506237390162265375232142029380228867503863911310120136387475814573724728798573975845393136175271130352184117173422534155464096356171852759988428843909999634874783372659658702199515422725421121027697624898126537357041531680401285681618662134376704552175262785522726998864575706686977116396208511236408270288779533290627446134631452436018604731319525027193086298492803669026322456440501069186097683508871922498046230909393609699419787052294249670830716990151744467259337747545398490689475778392833372777758702023753706252557843441317510894345681477057958751101553196832612346083278079350668114488556894194479303115992311141107961882821894276895192123613523792866568477786881603785755030216090025615051176800254026769468399217376870010855558366935741662469531391419728179345655553375960642142414744325431216130715205418845714244304312390445242406564166413323125645440957012179390317012508541454635547440321648933999202678873941610988937101632896834496791295849962016245332806773311506978873751690474442764717008517744735732912319371473619568360638726585088743583222864583999831837255754471113388076981722115822441077172478084951555388828948121830746657579852857420104976370937606175669663065039862655449338613105548310853016243030532862099793214736580754208526631553066375204816852716075783671903782136559339346059715154796756826683100102278990943334977643786342258586104246339079141991952572168885712432728960708575452452548230391708418243810413528713254286299545457203029105415617720740846806105644629176934299573904874161206341373913296983725006753128527654276975688307189437332378556737857417190187450145989456756138507041855890084111777524444719279078016476087069196567405371296501746744791105765529669147502104041532671942164920717639813796823350758673687649386914117634208361622026952554757032332067696378846315754611961807868639226034949276698119509223403151261203802794239260612888967167268712961796598318946179428087509408087691087246565620747077213029988305646649900856806224885488923289627308115158963397466416161447110927293976759974965632463310575035043649565439423241416805974642343675101006773317738902231218929647485674324294596239989913034383386902025924318135074582522236974966467464524557661245996039975883139225703543049035279254038599140663770879966228311852965646320998498500342822605681026521504893133742651304543531414466884290868461278395516222607159653449525063617922547311830994984416381963662537923083482503665431322200325808668193996485692992669559088739549203361113661970127914297475025857177556908113787109447666180454147117823597726142847954039318339084174744949958798697832290874025405774150536374951490502795515973948855172517758977766725287360424247272219905282653152966469717442990027446143661396322838340625548002622629705883157261359437012800687296279580548887154296833089973608507392453856748499951619927162394994382035141905618096290243327301538158095573375235717188415055163184066398085733894275828326735695384977380909714176204815338780528250537086091613644377339735640945038309969560299534911235779003244689174406599564959688160136369524214034839312889089145972792619521666811346698923274134140300548562231698908310183594530868481699603888525575304127420013630578650136878523018961836529620939176406540370192250121817630637651477269417274857324985573704904512818113051370085918885260834953950058890046365340241455308520003197334774907893573313786221304711604285303110428330518821744549673169098190459022652550389035318463026196672070342336272480437670105929724646206805838319069616284905560243673610376724125398489723323648120767597340358476928464139131561956502446130710025996852923943484232442410362552930369287054279170035815947791601161511832657657081767960106718632347622894425054111324952267418279869170312068723746069120600380624896589053696223085722835924165607205994866386783221052453629649510744575824430097563386995432312578821548527135799852156209287368037785596561608159232161063387065462788794225591806156741552796271702735021974199353931513523275692994961649108155284853228562401999271610236462486538773913960823807261557002384874008848085951684869580534581239763434368558931483367538413062536009142746681939619855602550314474485361794466669201492071707787312568990336980517071051136438407159991823561550738970060488896545409098521240804077995066196538374221160038060499276271143010732010613732566807570935775953435362796236554451085562503231599524321363338694235934672446179507406523437703284317872805161162947153757727914758857699163073309498070634814889025093608140380501143180711558372315536768431283720410728960092672554995829471971289256876494883234685487389668015797812671607856374867157540260826140306600182217894296829366394881700347200826029342319914229786184362958793725433203170084049604513126683430052511777760376471821444540220018933193803089716395572196168574568251790861939517676077935228573427919399315924869234937219921364262539337051847837971782395415502410635445952094643773213752117755776146452136610092092718682180875895380652401835029597384610257803981461507316811951806224761425048663801921561754426796447692664839497444468866518300123778492808226092947983364065920356595784332980796002951404265386672916842880132339965778371950896478453661380598000948169160844877997193164207507786019252265481644647016214248172918585367786901771148982898427406516652173926144036624268239625675376278956213814989562398349550845494678876267457705621381270726568377819905077414905942544414123212037472261577927769303502419836895283952579711655354318666934027157744003505900705990081717391655506545009506670603672631226115036368262257478108880835618535919462417752816572665431779858591413133117462220358766625412777056849884286985195322084395207664077109653880759884067781898472021401174093494616959859111417441252900468201233447920079583415125701245877372740841059695032638718288192857028558614075344862882821402751488820791615572756436036168521084340262411978761036409046179384100439513082201366736419704996467167306686563764847303620171908083555726196843005056844899234587781061433792512779420517620537812092277849420834059650157409316856637126907618561459962562479309663973960837772134813490943117228462857080372172989156637514390308994522600043957966318844636180622142509071102614285111480828545238591254539467383451881717040039659067941588466654879565480902249749929233170767007664910501391971522605622984104807443249255926784582625624334709028238204575141669560369857685968063016144784255685910880642695775315830501929495643958471719298133026850394373730236315776449586840986621593613355202456178670638684336543419427631764148964571368836861007741293419671442303938255610210669698065657962410907481419923101767575228240280816123246346884151985122311015593761190801162176778986204164713719413210715300890522761240600862282198562687774259063888801166465703418239170018825691800958157125656577962119270025301065446955958267161197921664216687681532669314138435038790445671833420404985725703514351297664162370113383188389312690189358200472633688571779818063905576642649051463978254399208354934731220370083886392776817502816684520536225944342713069537761335719138822141438845753694562710665756864031078635521619192228279806556064656492218538563864794219027650188790310578889252032317122908164487585407422943508501519901487035076851960830998835095280006676999857064521402476053391462710079499683439250886172879856723284771185241971074826755413339415970426826083174721749525560761676927813990799978161977671733311330676153578487150738326378536583179258467837492245032435289628171099545260073395238607148139728173273633953626338885458028814010250831946924946060359200422608310554932958936234663251868353693071646787499053135290316184656052818195480181842996205586835009340001152777779653065345811707609600819795235698500934283113869569452356893763310580010682940418570293908454999333278645456898318676193668975297034716542342612024590395530602770940730988902615188638018920877610559851286867005415027002955019616948746839153638053790782588327168410876063391572072701412388390474696721360266142133330712964836843595097848780151706580199167504233693022146551131924854387556367559835650681216474950933248810941555875033159561185865034292143222111118599389242416502366610716443666094361043975926457286835072210003561213075575830731355597472179479572610086311349010426292601919678562386455181108359716176276696671741229721774061033407363923941977796676806331463503593921224014621676625445979196046832562332820322237871210698514132522405228488326821298908519527043266076833046664292388744038622606793172744792235353587925853633576424778484871406585642093333055744658685933598341893997426643830883079882408696124256436959353039758312210414718389234200533517337019546906194838675188077702447046496646762086478207578528490974684671665155082235035994121903205256953368531662967097143355317748166430491597489157552520812558369262941448995078146799108046651132795828633197600785350363437019580444759482407714528753632214843256070301928618279843268607229020842486307082131715747564402694331772297607649962170525812980964472595438830603954357504585131807916284488924971973738861317653916323244517616368515076233789704228799626214756079183172065921604796110117581962108437637615721266488865490183181400605576470714011223962303627471338165418449457547060335417562039662673145759999321118309201673762472580842279247405253573040332630431565586546925804753063900955412428137423482958163307502068897324473614926371796749605173088346039420790546462616177321297916426498746049003967927944758063401223146312219398720401607185338004029388985878389140035099158975375381054898394774306253116823863865063628719681174912992021799494871118918514784043856797682157872085584286797053566790195622563131870160678577925039130097755190015458187631884047261795476941710441587490443712519842085119897874602089145715197673929465358034998631069302685333878738874142896139611334149800679725097920924451700617251136624899686755980609376341776361848354406367384085914940620913773582429090774890662192674422137663895819680948812990988538669119956149224936971403611214719666820093479445177271193158724977409861201849400622585066761319015105155349219823234954224842075847780402380186458500617755221186189635019742498272509318893918423002092952308582485790238619392310968734244167120816159478479474834546871954904821513939668150143593884604949756016701416891677493552738561284816360745576839525576259374472858061578906630219255291019035044607828049156960081469067540136178227701448762497239036445117610630627747581884564470013878589352137955785895675093033791798627949373451579419685209406706666572862867609275282436086488825694333972008702794701932844250976025062366761538882286564935340077438664829125275213205944262035945074859255125594664057252850549397049290472082766902988232353091561187755595154313488878305093276296253895181842518016988394245204203260896793585912525229288918620700044367448889260296893300979638825576072684841263432930539268705612256302388245961381963603148449317770055311796312038977803429246625985868947364336864363816452434869269479145267671045556593102460670308092149328665524193331104411359118496945212026084993246389898790793634537189425951517703269609477674767679622717396170454939582686585003295832099331851390461907255418939063645363291850755021297421298309788993912058525542067655299526229288454908733490458790225206884518873072425250055629520070781412595962689747791774669240469097309306296792147300538355878728124508770724043140968465327529504421739398323910588241355792059624394695032263424286059900792531340776973754594770718810484416999079171777871454346093507261689671070218420261795501641012423770271207331702986779920801387167701312282158595000464551967556880561074113937633466391303656764435523736178721093612323545587256688114276978020361868715394320417341186701561744108220062924905613409706556106777486944068198840051765015107526570757405706785768382377938271600930817650819980852245222216925466706647679665156731529504378834451467418473530176878111098637946424072418963237216566876069348789808439075324064420579855227987863740572439957818733271556732464078797882981025670207259011760912795172747735370021504279698112398945342347419491836303676023410816539077937764465101088838225917856731403448706277478994984059133393960291016699535025248403251218028363751469935117502639150433806955987293972894139636364306471353824657269552044918169951527776995682773305666195443127478318018948802266230547672416556889063133878937535717667778203820901484446705897561453860392353180034974512281257841338961237078560953942470019340127233016553446647930338508240127506589633554230789527366689128340508317747353161132494247929294509437374793543491622384211617869494141124508678071601010386717531513255581483047877537792415839440078043930114752650509004407228049914252822397760515137744072545449028272272142966968665417536509263475569841694816528685530296747968245949474366616481920130311898140751848684836237355125841200657497784566009820833297956308814630629376133088800361233897395974830554179123687475093578275780472083658519774463932121313473907947529945712608787557620739592342421974430810954103223858068646871518481916704270672240293443131765536104075069798671388741348177021035262434964274809546850433046695963423655842188820461205683908067073904326612499221744686419082083101642515313120382458944204137517222054259088154327957762348712365871067771378981393139769972878430218838090611882985684433418294866494422224332174082177205063519963356741220975770211123046149152255366295912726445407463857292878568780392408004513376315842416123882885938939273280554685063958627379732437242499903787272896909773275944821825867094633809639574108022414935871520790070878520998746706068332155703873894967828523581240972506165659052939709855093076882758255570972413618742331327671179428589310912554346391164640193064164721437743138050726904065234237433174516933685866211656338183171596153349230344139035849228510074022244641650661906462882654828695698400446293405000914054614503593583883999319078766467848214005082976823141099795849395381693943553716715359991508653195030415249755277379672587797049538318602014387911162455389013940794957227820446790312587193908997829688234087338809237887861758800916176974083745242566725732029071103598720614650294466610750169644741037265539449298330268576119830332950533096338048791183453615012276876349698407537958103200025197113456485030511363137765488845716094551895972199830471092148525835426555178120180628478795134728246233123619996437918463888614158914280949565183228740209713940598362779522271712375711773055629664165652101100254706356672482975533981145916246525398264777553303633453986947118049693947234157369421347056330796646105138405974102680479713855818557696918223775706039813661003681820058160009868247696788746724602267659878277356585003124649476448269629286122809902339102715296222028808138490492526207329013339550269180464365399806276902613582437250707400113995467584621478159760530749219109857413670147199137221379160184238254634073774031111170007500535875058393914928635868002364808042235514680348286270402555769563854465222148363102605303039025541465994055790444998006011461331750211207245163384121205377162677876868002067624272297424090482935848538649457948415343300290477770899025108909451626401767644342893275934655263749500288824620638265410784436160406692643328958215291344367582081467159894072768962691657238256621272743787084589235017166684032296364191816843014604448341693390322356083566938576402162826620266327671017433319758329718096333713828355785560568460916763278680754425071009855806230107001424113264921189037496903005333992831587831648288785608871818499342416235704553339320567611463782588878365787974414920484864140768932036136421746570947426223582809246479532650259511868573419427454314925300819462131128924273457458324360940007632052409485694014744489032653693887659457518561533092318527912239379695255989323550749621178069481878888482038815087190923998867918191954617020570559705896343803853715219635827186143336751320589642036905690309328724028349102673720662214169664358457284613241975284535256960466435493389859563100840855465957974428401749249498798531038351378299681673528129963576346431615115397892355875807136481914962115359998580604415084164627051945930300219153718026070888887263945681353259368778318797752878313024525809316635366545200061532113988673597754310004130085058059838428480442492345137570379295115790524116535692045995622926771793508120451715475243767307311064290361556696706933245216117716617013397567064812965931172705614737207182543347783223052422265525146448490650001675143792085546325086376420672430811229196651865221515202779683459498743166370461439491243494759341787850724603633540778046898556999222026076072729873765712113167964126112562260455805938581465428275370758687592445736001612310086704403639070089141455362292762890935388062682800130197498929939686719801542583012717461007870823057859390152141236456069498675486754580293429325201140224865765733737017911845069999553962054510443656898702976726161850057557957295654126019073414465402135073276497704651640897032109922214933339734081785661515955761192373522598116557304347209152476589549320533783775946607050813031818621784818262386840805957649212442897566430374116479768124818389225499547251636750438784876549879163326286077758648700512999843109094736731128380763738959361834545137628639041138724736631127491181026114693740136163958238207006524649406390427979570217884940686987717127375334025843985086587450041322051861206508251833376355844274101767942173177141348228226690110044740708132260600630233701219066119505239361162404023544042071403093627534949676184367869023821705796124794574828081860522697201751372913846001030401336031664253219072031276122135003731306477266463672063060359184147339485412234759617055050285379453487815033645203567444991431360504320013512287451237776302261824936138106944938293079480420317750992456749349454153867509418402012350206085525159927689562698223241153158185538744921104313610367904709277237741721072613512231387011592168502561147260823656940536306744661528892793846852803430099261882263962217570789271837145018041459497308116945203877609544219844632799391635718263095962048540159975917388549608670609940766829404142648209567395888188217057395511026620705313397690122045376806090578131912841352820390988657393025009739693232323324670783035706444993419792116947123769290267747605739701977003862760163784777789517414367474186474250231991548417436117029277125497185113023367462456471465163256107179492158909028821725547385645478092410408994145918992052802281291559489173306087990975113285056904108541310207189723873908013357870265992381715520951891895271498742447869957811085130560718674903276369488362006756310202321720550742778830019565898814763514812798328963553222924446587281872315801280086090414621919571341438714068899982674724949019577070548233420735988250398772077041414373115092196887785084724585844411976920777022978212271549880800414026181513875605826812640324079471456066726377064881036910726316770250869512110342623876230048007014193388099217706618872335256728462343533323538833878251168022100034041047328110576051956746683543508966240127062089693440930921232674953252892418280643998448268663415867930136208024596317350562923161687425234152484328778512900003732071942217910164743326460196158563118192435702843539574447239861464531716172794938461997097357181394264439665376780162358365614678545610821173068356560512773765972911483941022292172524351186101466338514898340452155738471040015797052536051725737140695739557901464450503031240419255622363173367606274222441208141873348254411491754732055501991206237649570362856760497818523200749777047699991187981401429320394616608063228937910578995931287055567000647316427044025747184415899544287992878136801470604395000917062613605922125010316091630157747726617802529851743639763965979240612419027504221279267694996694959201982959137139784469261109894064538227012579081525149855432481337589373083655483627618547506715725949265364195121596608954292914227404468793570823650068709795870168210583249882048866685508913921132939018886462593476050326945563475538943698960962235522444846665833170788314809060966232301922222561858962007152367449506945444902991714990191182059042508298254622340167453879149800742193014897021719155241092800273626387424744988971188522805482688705911703811385619488279557399473528933500298758416871845607186677229256770054532696185153238466895448691385296773237502804447413247045775188260765675614847363870306416695535025458791138135653137122780632536030614923203283464153171800532327976638929285137030222944697779605388792837458696530607879685261502237452907360403479612365386903251028721048903794759339324819163826351953984636946281563569795037057007243425886291204039205094380618826741740408117383097922975836165453136346676835685751891278907907781352520767316842077051451867225214470407942628001679938698560169427775028269130270191215014140127441200177695964178802113157925195975721843696690951067979002821582571674881358232334406017915785082057052650741773313348054253908207889228074406331115992009019244807902909729759376025962288672443220745186872551419355905783046021385819683034408937241626156392426127653325471017883799013163014164499994069174187664938545653691332054409930706969368189199113394194550572940586430574384651341249635034135347785937048697122311218785980906722588570359444596923094375047562696379257949985667207393885765703008273302934173476250545589782974639107817644303220231077943620737440920580759523554856777401424904143561944973691157903369483098387518947050642574079135630257659219107908700812063572778185140971480339057199978207414496845097030834953454404386450023385985234327711943627321665982254972962382099855037181214001824415558796924095170002761912780253808592385284532888075365199126819156709338579455817694535200298918513285494662425749015421803676697529872473236867402806598003583117108352402740401849329392366778206094188205668386386141567201866218686270139751644152365104832425004937663009901481777755367170406783803402052190649350466778424763886711878376263920951583445694417303788366200541059845968934197013043135818453712547765742584001570836300261207605474188947369749029130489643167283718010019628347534314613853679770643923386276113855573861648242690855350790441598004732219214436540181530956755578757913553845467117704470002512425777014050670150461439573596434227408188390319990641300756009483144244856804179970583270230637730291219537271104873363002773990602517829600601413043340851233671003087509728277839246472178772755343421567959822562013812078468740223590369122868101803908067135182726024901800049887202807785634700482612502969320153709348928670559361682635575053637868044673244038912934212047434529753431033238761566543730723158894103591791756559772150771712399783236324223717658772856581530014251241874386933217904069329664307600250441162630270784499511178314333580454456137513450631424498303235095634461560592713482746041858212957402955742981027195191059413466808039119556057054175587320473390346399134726633644912649967482470652386814810211905377826668463839598065691942812057064749415881567353976830950778703759460920922741392127728785806278815417346955849905443346831280450992566320696388421627614777949485808616079701617482403937578260080125180194526211005310780531898090957905797619931103585420102622011508253185200936944516521237248725994785144024766927371989697789178418437747599480659000169906709116444698898090286730627240106436290875776101640779687617108561935896778439196875306223861108107022296155177365456514306444929000134714427488269324471179923427248269857234184837301952591529691931965562687691064312429397379369292764447409654924091617207368559662610258503072132982186881937612134009265543596851894444213455573167867734254677770078651240701066968241880564720716635923607202854737573476088137438308836616416450757894159821213510447328953868546739087288854498806270403494799553525301792218989498763615401403043337063767371248599281627872010564887598748706144712210896100831412583606661919172265178802595805493299509938725757245736659247314610649733792865496339942946310267866041078114919137387502881707772148335398321017256501864450159415853083371061765724460457482493232396196271462370272505208892701204753149187180530855710777191461976084702685624356444680636947099969988670742237710068215764249912111989107858110211015430097873346285870429892782973473053961486060850174094988457602062286892958493887053165932769361048469903921225850524231473829175348272085363434966658362564940755629167709756885324183940012884804094923971108226529126170622805538189434208174201700519466234726771337625703612771252436631134484597445370594518555965755865232964937727155949519540838816448438393708812487516052811673409419352076850171543083402040587017749101668253256688615771023547569474167929559208518554515891858218360269030969565688021296679892484226093686999734662920379923127885931241337614093706894646240993989626813478748586981070098768837507716390710526954141391766440280585078313740863941040886510102408899690247251812143647055147875376089178533838957109010408562044564572191590166485064664326598648571673444960195693739349860685459784816865289608303139846333975589990699766735660498393162696914806770504520540430515825446416264708575483428679926517114598559627771231664455181355384929226845261200322147125479664148324295506077855900659413812520865155764305158109950497071584495979016367776616290817750445215095740198360885426818085737924088137949406325638120432931934721952494340476968139769450744405717468605645115913802144371867031182021199535760291232295806662142456629755736763517035504617420262949956491143843625185511653538810061718229588214566942296423221904472194739167408904957065794465292170071309393971160342535860657662101733901098918870155825841946392493700593967723434441576549119053704297682390771806272515381189592319796071225573266413910395036761701047006761635357009215948375407023572182515604556457799219785011361455881379847530032352810753960438520122358402238591302729470064789041378479600085912120271186212200252860032414754832802143829413087187562228358275827729097446736325049181569194068053977004240452412283366616689176269041013133745395649472603483585585185196993138134585944479176973669172936725507021476964133695453484365073829949113539547311167051278403469303864131054678165053721463112931618513910290151630586240587476174830976605456367850006050535840887017173416428184152093958691199691444663419076429006163205159810550081569930142453764378486706348501290424120951189438964908665653465254520898202595775554290925386932134874500981663897204037731610742789357186963191592743198056772809300156631755620816601638818837640459666177408982434256066655183118950676612682634844473290836330893945951222166861307012787636859280864047286649110096802423822090510225910168549351017040387682396737114278951495803568159186594755420092232334130478142967116637270595675844926439797634777857066919889877279348005010960000744401341928604454503865479396559982573719659599094358189939919270921077221915231210840660837180923646456858280389510216630469435558648298313307959264086522003838559039388587610242420664605375800464356106124976456800816133453860621338109916764047091770507495194461726539968403604627593874748926399802344424903629673244653140663614233684599877058033350005856203809900172239456292001403576646951555915403733050471373974130718052470286222855567401347475530555938519372919843419126895051215489829608602897072524504856482248690015754457206744250473408930198704678688508571126734813509857400820938148552233339617489836323645605519952117587005259029577383533778732696139898657716411348464187715266665683935268742720630048259683310112383163735347069121037016903681305509940892512094399069317280072709191049604535931401564597573510052313307358991785051842024342778229116486357515934748180353336381988302483869619114065389799903060618916766378662584383237768494123829557638426873717086634888290009100662693629393740858444377983864788900022071435960143179469013115281107347988447101960205049940123325993750223777044549784783434170024933703465359120527811538201495235522462463137509446567127630897483442783337661287889750808977904041577657779462824244096776066757083475836400483878914062048887207396787765018349447219382309975074537035064554661794093020767657556965131059714104719468748902640510298906548775523212403487273125886576542225297474731046296030111476086771666548173351659047202080913804986487899185986187387318636384278683460652457153840573498596163920768811814952987685232136880103530964103651283824072752802931627858175660380525792460368846208937744152983616613537074585440886682018449367670744930514965221426032438236755174223938296803319952776198254919161606791849964900212015855404506852092743942612112995672491634414053370086213606372423609915234588615895926510309334629832983809541153813036228240817016413539687571812366458204520947750787694565077053277697901182140786736230557349282588114043182665887527583138942500381466783895345309149336133640407039362273529362438645049733615950841053310057276036658943784632301101241349176406512404798069937555456200195988390703458092664442246799124509647692080096175407148171763365987520818760242883563308821296987775643319248179033161029129063194567422533533126084554813979865346918491141967683664295085370610640917359990928218501940319968914343976035306538190209777098470717681919495473535382678599220526430962554299502559661027924899759283132128803540842698076518796865198762068537873056442307790272146101218096277304684232526886775576706591298295617327391145577599815411646321762650628473824390590729858405954862708317915235714207042998822879056402014922363126519084257118007381450786553347577222451893249203906037284467216131940573959465572593483624661471988642562128211175836098361013397675460790812682887887909031074881853908959836107882037195603994556397858993627541518803257375479385003076557254001554671559445860829434236946786884834360277065607005456062856887602224901537089150779696444532921461922452208100677519461236211366912255624841133216769849767376499274267227626415859486901216770895876297373639282085944045750110201701941637751166480541119079285611040463326108217196744560336460573565283204350920761575398218087171395182607352863637774611056705561460661766007027900504238927728921179548849362007391864176628732931856582414298226032848151527729995620717113456620372527879394411681535812791077790911321684085651226690570047055703010931369785047350087334064044795546843136926469793050537346104228133028826071726825625783637959383640398397841282510180722049701777362451193076696069102339204363463242504699411456265868461760666764980831854878572159550570079263199803280273860454430955490161924640919505181253501080485787487701604335676823744961104401431653525184136758159442874226633894091170564164106855552783535121519987829261525584451083048128858223273458771604035029070277001792718987032364444272999243606298040774474802751821259616036079151624990345047036596883075828909334186721705835136185682072736381184497232147350144363985866229673608260569666801149925293179196067443118996716347629343539947020001322422474272677723755224100737467855372744105748695372207285609167392536131294678654727046505943307189925755436926101896639959553937442986229676410016857934281213362988134107399819606072450615828410703681688127318954669507611914291107664960738824961266945789786314940896778896690007765865991856708240284168093804972152079079787302119849713520604613737703746922204061254496329893966033970870985917308763689600736055468466626160196911692376687835266742844866957589066624810192875571039019646909489904687512986048683457266459155091946548998491633533276566866702349739044298573925130729429397781882675093980778666187689902739263993069565466647591706738255151149514600947767106381916168859023518614180949916356763671654089704163127081549014429836382239448963328233013100262066899368647395715900984209583882276046265474623082963301105316136862608328182816925790509262517115234959261410228219119126188942469880515063194991493682220135112189799279365632940602405286235603842806020932677204433892617825840561906793952358678032524619593811313375137736768938432206767678191720277341194189659878287175584552765000251208786537085317864520114480274160466043809748056049304099235711010868923650563988367447454282307096336782685444660461187926510770600335898047320096358248576805822699732829961271952797626694012745393555067936260217088391379242908289437258783455749311852013654750652843738697486067442226076867308322330663198839872593663819845075082187387085673279080410422394391500011203404551978203674293372952324752962015712055354861304952869844280212976247360003983763355087838340013780281333815587557487958832671485065562473089818657752967428430634894177798042545743036662238860209323562157084291809807073669839991605056895908586966722847316011051469500838595932521745177962261053471078149428928062689323550286584683447382517739260513229674160382646535449398641379213408964757994680468703038265715725947071586181632334589460663339551180870797342131388657328347794298779487286843815973016532474105959903643307294695440649386579222496804870829368839789383375837940241436556170585260063510843677802288653531685548016545457986281453451120289543284408136685814196523913421212565961818816828346322763281428193168031718505947886328650775193262999840132845852317053912067040106854341560356135400554651086167860204531045682121750895639771318876441660933296706535293829841410329049837186746055360072613090167353681035943916999490433879694181106253253191939057473314605909705059966933882725608203067785158063125070005381320551815363692506768339141431276084193817586356091131389001953318568599225415015519234095099154662652037737105275796622000227026966539455718286527194511906974051080491531439154816111114651068460305002167903900099174762099270063108973048369122773859859122958640017937340107955877971900775373521647949900183583923687344286959670830384162255398582635388070640453686486550435087536177474394610626584653853184028118221102696060377019315182897474920257438395921228996367233286192852224739197854425616415725806428609870607460457123962707540637058927325279323896335120872698638027638676950762480432875004415221701620410752779890145232153682443477291303160095531780016260400538375366608527899299550165711808345394101886171119122448929388218792605773284366266873354401827098755352103607003833436063626695007991948908579537978399213933183103138437226942620203136896604575480950352181481200697174782802230506427488688428418498146770683592275510093638803351206735112740647614308973488082352346403126965892253974524829858282923501248780129770778823517405804818718610656480641549586718662542129752797803684452614717791709137883246530423772860105239796323798102270692226531225044497662189425213091028321755030703510335058577227387910635140456753680798879924493424776122149189711596710187900550867118077199303212551289992853893084859593869908413947384830741681996060583031358982490211852991895560312991593082753472441892178827115314683575685719243241995835833295446701527182295858198454863754268189017423225293803937955954417072284946654022122204353333650068212845706873147828227808477674989313868010726305641034399222135921465553843344942738995982784493394164875270274717706436722210819283525460124851472110454847033720504197966239548887774559963347203515281406844827637248128023041183479307888103073936541632249081740774398079686522745168948144783915793548318845404385473428843529146491480159131011764980303450042590430407849570849158617495560674823713343922723542892765488016686750891718787612884967887705864715522572174879984039699786049299130786090386438258986319586386631937107292007339794940787455586554919565892926477167232248749388679704901984195956180427430343102820314514516214877494496989960026195994824510207218740466733523344787364638916005289288108166367295505159367797514479056266156527137454114361295288503702380526375529830178621514772229037291162805489361690177553923072939053187381648552508820635673348483839459848616631746177879764825820431843674229957468828215799753448906447952152112797102258801775432793368095598255273560395021377803025247270962090993934934722095928512096023383243208276999975050824448366690261015599152411251562199232692042890898655904791056835897311835700923831201615817895608952518951045658176614948185683805820469780296797939387723871862515549368600376421688505731543314893556215892467474882258758864071707122284869247183390422229803079540889931203712928198969614570944373002653161605242755398394877054345213218940552421440903732049149864871033844408448031423634379725788264884213666992561513203554476495634677838406506399794600964469939342309590529180640022167509935656526292413233000630286993763987217980600325106907195748566937031462332239222472073795796188494003859513054224151946684485086154047306894853906053854445279706686638160501529971300986201375254205648433302700743008585574822769099296967048441719378369533824960956692986027481158466905333287549451800527247717271006927115037153026817307121406471616429792306383213572966400758445330049711254442360262201960665947787629790387360282885249529243724418545923820888504083627571454738317348319812129552705119770041234452176148548265354471265243028938750700471656494416400566485555801059391293695091961441634267813910405760831939528734620084502854864429976677801415373512665969536460976017450131241704931767319101824076767650904799491326052376756530569182539987059044448417489068071112634135740608349456368644021822197788109666329947235290194753222141814512486123051637289845344927622724426854533680907508812262393856510375101494888657126275230481328987735478939445925407220217384637289264286514128247270535707841461656402642749734267679818634485341581401056728792307905113143024804717757634062453758078297571516860961217315082013995978324787275360232673457689718356397749677273873027099861548700961500350939290159264075724133474074998303315992956631476082838070567863446916776090823354850384458809410313942780507423679281765452501885702428731031768884564763950337920688549232683832300271301324297303003216822675244672908257125884306129887752912322062728536368773568216717833081233509199785100612117280604276842244000099098524034374462797771114192345422164797027452729185257732937969634616988378356575006179912471569534714139810852386596710953224040468066388570345244578619586615326771988316140732220254282267690360416352663933931287292686375566342768978101796019004030407845651651542201192503776292000752226595901069222401612987463780153933248768416039144516626696893551143477850296931709488920135298753751396450655459109158599799748839943396851922423367314024205868496541782896997004514305284764181457675379931701087725941859572684633562200637589562925959925498661047857733588073706467291831460000367476577848231084918395766283045382863144715632818244620398944766478507282733834069031578697920786722880490075152323838785200329481879919523676268310550921978527971960147061420760044891882071094160489375026417216905113711849017675833978677125071246130807767377037036386765307433954386122505217273357171002698902721823704982454498002222984873724861870297903551676449964483590442498872814629414997314493101606887804022567700220834432893709375014967490809548109126926303545336878482644995573948656475963002823250684225173329362361891354689019406867763698202503972487470943556863032344796960498226590031239870479239968567514536978709905303348933845232751346221708731297851133850325822770283006731896165316697524075835616656131195703436113721286410582297390664745307098730567679009234165501705994266244148859532577925436006188505811436211247618967024982993704377128117108735136014185432526897010931521122229354170537746982092728356303142463646753056087138541793534895913264833389622617131526745020928036210733689555606380140868493535544771966906208863556438047448579590124222724575225185796778375705545213753979412620971696520929021903521855955432121289770844334588199583556991627821516819288438085583010033773418242788639396872455578240730865081181968276824816878261511276059781106256060450713089522120809486098798496581237431070314389317963793140544704208769134934176616296484791666599125101104127100481178907751674415073526373327339458109883556163784401131292567200489274277971666473243864469837211942716911176451236997751515847128237722326417022250571970205260115581132572102698928652463752633750082007350365910946880048369337118399725295416892861413959242060416348040165156427571126875986039234437168665509683975587668537748637562829066296636222622688309697472331709147494518991096441546630219442025691692730502115979025695146929187564802357139126054236212973337575138088996263635829285935301470468418094772903644372150757128333859932597516529773188990199474169558086573859810863898923136434960059921462025386218655506308792839645661857691509224009025592085280852800334467424854390723593915814975740460342818411230787064427911121862924093414868518469502835389353916465944369795343717837366577882652376477845873770890665897767705387378571068497498186720381645468354841231605835207711441281726996450530340235759854785020949839774157452043807864897913899583606709572140351223442076690882662692467624438455184319657944409642658461127203388562796725399869093793809510522734146239596591150310831760637660863976676028430638348929134410254212009178313722038335347828859383172105160408946379541359337166793908654455484241997333820073778643669169068999945562260721267673855536017895734375160508278622465597085788558808685406822102750268038211016680043815594438181494821408989214923077948786837161734627730419891345576404315807423259716725453090847966031040555725217030011945835639926697037615886603940405993016593029961616650052095239777035471689644796493514547203788800255158453139893677265573865958261993420138984798600508828205297011317005659782828147007658254799143464963080780596381962209760252143774742494584273638327872902184242419782271029006292469341862130160083710206853450730299163838100928803673930059880010768845613940122779235821692168126288869393846194838603033433634393628887586497565504734870675763949654180884063230474871303072573109870253731913415146756543385725561321215385300918201779623145157843515368749499778088973256449985170643875376562774360131976470390752195172082589500684734169065390254136854728575142754712837710612640900593571491408714081904823993598054781619771377312137220832051208270339923198742740386932745653447744429729481581920733931943436122287890595993852406905386760934811431690420771984152109770780650573305047305646791260653069233757011136033076636692075162788081588763527043382269867504040760442462783109186305492327256867562952569896363913341879483230019096116147137492308403534628426554865092644731672899442954654112823568220273903855567380749175544310647065611992250953805553511908356744479060495340312194042626523286041287955003253430219487050346033710677183884242020424408055037454708538860535991665938592776149892851522197969896433184535074608565559641176024514749107552292483001352229541924706837273336310668759596052786253411055454577304822179411718205051541252837036014152863985979348345984724415563372100077962310005065714135270869203949807862337897748676647085647671958639180701147775270264567335946607202248798325638556764263597028453253667259684898808576549290184703308511948753392180024221836266823250555777036219514288712510468545071957708763289193538437898813186613414212315017928443649915884790007916251397140785314183803644817587261775946195941965044846417839987946722920503894106555324573077924926992117473874947832560347367249677606531102489346543626830165430277289334882187959342773817833878838114901726091211157356300919870002512089681003079638815885983854067165156777619431839012703694770439896536452214127454157230728386921598290582186802131935756285418568985075234703326517999534347916661073474963605187999603240435493548337878827733771613207500879041983201192140905291264915896609571083646292884784201953138840193332610129572443688477426213708049638259751180789408707392827568469116041917078794687249948600097354116396233716785034817408046632635232511045845610780495280644588207431250680474177038756099018754484041894486328071741514197209140697238680828834491605982442242579373104086687208291980679986467189907700746361912198685441733181737492426944809638499331540659273956528311916475136636730051044734978255705584910552458596804748823298357065863456012460876768589658950904643943310445982010025471641194122579627002233673968732871062643255634906685975062675864879238468917528011247672647052251070390022208022576511891282481576117271476473882450892686650179646999291815079056093121158923557292003046067064936892228534199381268691231209415063698860188945951294980634972576658209145749679638394433019193252376037594382576050768356229772450397619507479639941737411974629435321788424651425702336564422811335733174060792014043095338354566839130970576436049455930737359067469043579433000539290682313127553160990403993761060577166135735314863092827286867908768165386963869194874794341686742380340440664356021685825849205772954944514566657040660677628680802149440412187803797745526295790503166528373685070485865526881609866292733825338536636787472004489436108636200219982588246502526214977078991251917700044663472662473562709272714920233807310057169235786682113423587004133153246609632833142611446862543225996553140373909326228304643351234495493108777051387229058137868690776601015822325637751731464941546261126007266612659290662350479178370283229358637614442939801022584196933068951799122319094654883588650748539961832520889167648111830308878972074171765290481967363009237922704205185047078325812471485042823518271804265014150383273812648939660044805510518217354815656593590512798396679102038091707560673247998116971238879389419522945543581162357858313349087845163197513402695772485619784946031147357923552725950996167291722442467702549485206817372492816875270615342299494090870699058396429827392599023360852361611311505494442424261236879484357208713044001785512350374046178658118566799693155258076806397179337160409828010912873029806278723821576424725097507895073433942409430824265181917622508019134167226490435971368274846509671600166411208445820686637070597908478672004620235678552920768558084130198724683028518392541556829961807112523518118811554242745823238471495366830923158803509650367886872031405827798820485623797031037357421478145595390491742740393787430307183737980050542133168707800016076472278014769770216235046896492497755588546912997928176507896964964852127112169166591261036158978241909556456352475251005150585743669024244049601656554081630084585560122579218230167409208761203701571416439263791993191787128783466643771512600775941482358613814215377270708047129925575869241023637452601925500464741205551650444827100289682734004849115936782024177818830976830193064571470384934953289663884226333404417729727138500623730791769428554277858114656134814696790504474944373733768157801214726262958354005454331914713207079955732644310855056466974953213120625279627830805050197050464393316678823035394304308389533095071629378651214627804304903768425276509907647573655969906323526443754741888276689070267745968878064531986125191581394553470351691760355395528137937433680450716545491719253290057923976680316197281707495341701900443067360786183309712307554352444958425033504546973984410986181510409391254571819935354270734216771256492894991303495011189464088358363542778894601539536307774273462550424380898772029413871612056167865817906513164761618092053929698939213691437945908313346360334579298880199958125293543580478658881095081252957351032377451063395485170185406833337632306970863343229527112789204027449877514039785111128505161035193759071253726427939112920706925537595686279630823172664369632288155653753020503286901676172714461194753716933792203249930055956447740498442716378543216773359665351288807420770885544463077411373180202447816897926029399934932868990216805026269217846829948278793357935360152609873829646774641036992496394480333721280866129137908850325108828079362546972753926509202696735801345945460093498732969539481239573491795612009011574844777985630192954882313748202048227261054562748659905569029547067996122924241912556094628570992712548302889922716228614917235851909745364827043244996026502161138632002781619566336103153322982794727395224562215783378476602122057336359877947366324913820538353572343384962490886322447878757256162897251751399210719186651927951229426384227050892969650560604912360009602904359060729510875259513808155436824300954138300646843525837725148827580726366526324156512320857311056991339480140338654352116029106534996805519103438097415105355623380860675832257449179651877302993247707116560399311449425944981521595779934843265024935177727170995819643725998217946435669222515426166016512097559286368094748993802420884239891771325078377801279623121060017370657731844157780045044865280683727723156569900901214659211893829008693585920290438784477736234494495000020006679928787187894637553707611436228758965658244626750441274552208231719474854764140023390426078287792127918318412438320093635298608905448594864065603196383049394834870149764607468083296768094095508948580430050211083885256415453472877269815348749430602815385456964116416260760294855533333205939304268123871462543578054801439469390129170379250389393355751706766501646632847633260913083816494204810103254718027737715709379570103949811529814911531556671223240278838287708127459135513100287158948295919027537073942727757675368962575067568299487440664319043841572086264568338332301572082842164768525579961792484035275823466008355438964185289452278928929974225661550096277203885123537975750329319123529619656805877648930239275616075843279246124121103383003599064910453656561149109701520256183400383893929681055460034493334021606924841915744437217457548540403069942748073263286453086221783463662522054538847310382629223309803795422938055022321678839863233034419475360819980105321846360320178717194804331977511724517764377901289779178779851579085856906210091882234793221427734547770531967108806159534331316544741961745257990825108502358770321035229831981937091567309328856471365542725967369049230810153787121559192046701735163600986252062018226843035016299250098888013721433991872827361069453426710637391511489177821874777731056100125908463146008511444681876549440138427350453071409694046972251132644395369066430093040404022085390823362419992272445768618801160837004359942463005345418417820857197234809577461419456503401633839541976978206043865441385481672872732357746845684796718215832735889754821756756171584148495705733849258076057770544366744143351889122780571953191762115037771067307274844728617681468233798062142395378726953206194470706083574130775576115515730645528128318026969532897752255364978503865526992209132754492590944278482855929300204365252251382898875882070459601843206053058445686324400714876164439956368952867136159915368734330862144764096667665966137025909198731255803998009589311164854410426438368140325202693718147575790263050153993838562892451290436318872916448904394218933963694422359722795865829641612740071113332666607901840443639761388971026662228251227260378113854104059252383635743128430565616888493743082448050844045912729703606081255664811964097911649389552896873423626513041065651102294856882709797283017901126903701270946612835425775672951865602243771951503937479813684325993749166543746852545900837507065941916120001299312906507599549549456729009749943067049074392318485748411887852743613010208199975673788809159810417404767180268670431896261647193157319920434400622763239093592599596342036822637312130289507875636445552163448689633237614872280931144903356067704806032718161056285017310294574610890604286456422147220746151168833255728851623380014793978438288613903393396394279557882008474245095857064525893247831068030874454829664856295439352617285120668647800423935274118122223493321463136914174435115739329964527948465337139353594214609494672033512252048545481266212975742374220296951120110875888630730268191404684622024791984660363283989113691820750134377056728459556015118501043806332086373784071107671088577996659573148614990726966982987358607031588661423427089812187784790160397697983805419875912879715113565865578708554852805197815735450419117308647837154555045220744922500998004105826361631353851366548968865661023011257019432239013594593471003234538292559702763815738304443054859446829929153727822237438064098576779250914950551013776569711036465357075329124587322056241058195627630989790420213779195740576841635418809201075681835254697555214049335850268772886646044276243773321004692252058228049093493384082941495953478511468325454004548134220467791346823944558314570811282092422258873262862681913405848946520557171688325911529935297940800521981975704701333780342804093675538615034607684807622293266222407618293586858669664934279733860562892837490851870898158877906556368579574744137359245054464452071690736970880486790082708898373855500720677993289975847680374904704404571155447595999832837097815397790430899164187152013471068460988785450802198684389760729456392332720166423493922121725165784244003924614657198927498938823545923136633891240352913251064375493419209611091783165059740726149001524711609129471521545407402925870764850686595045930867674221027156825724474109959213167574933321599786605446705446250196487648977362519539382393801601108731736239565645504299500473610679322874738396753446572634768567008608357581715433412949796363923059432679140496448525827673233602506495210995553486290735815310899165485322077584543104784807292020614379036920802716721753571498746120024112741873868761730880663562351904075892018738434962412990339529586753360590421793633351994371323745303486636195480257553307514434933408203931536090662041828743472194870235786194937211790432892171662225275413998505787376672815381019771291695538948289932200259100292127899244694629909230389946393415383082260686922598283247436506435663330963340768574579103175715909976563100237532468062497526254588999863019189497210196808864006389154304792239856468779517232679774676149012260537819231709421468436823700036650138301243390874880213750064667425567599011742358551583083198632894859346820070562400000534069350749459262471767526214635289621686003034636365021602985163006467102880446481133953894808559597144299833200402957031678419571576273120584601664006548340312372574932363060613781155351316327437294369232309464265347557688120219743868174108667305930754969888501450809728878550587036956024506073545682908471746519563809340960748791163097951194090513618730503754680757823103656498012894393076571343857346261036392195479213585030197218989995343133967435649421340744948996400145270220952091928336343933728814187300686670689374626677513407166640829814020149202953359139166369084969855594689096071707831360968566395549628518859719124953975514018172229979478828969303141549956327658716516871167077337725295711875610278363963857107578967623374189154270879150477190138692899087235044066639302563580507218899819215064235189487575423985876111843228356144556307335103907212813353420258254678120791310306130799215185873980059287462810221307009947674934837637854643212149004279024718481218788425850977459491104937822029496328847028135926333615854308745270985278277915213662389099138752388241349283688578922845232947086240674088997327427333015563783300443838231922983655757305183504448682755324906428134895575876300070016498184559626999357240393239795328604558643195418977174334767385922460737981580150105091885553016426714679620958557099987717829398230555246974159155106488912074891967339628334551676519687979776721301017959760008682564511640436634422160623496112331080968492552056086543904209329945699379455051708121467686411806460537404093104305924788925226783882102718842763717713783825050360263881104762594211023456754346341266692734741820310655959887850314626462901020331876324392770651079272339648101287411482810597320651091219152770878236705149736838060403603500940050022606272652397778288467612859435791146386316259023072493269385586027812541228947173477048572254195778767478445493789622831650005286549679853587011709116334648731002443067256568945535278494299332033986904796078044168427760929596278588020593627637046736226003412793879053663373909617398466013044707415878383683097557096068024631291795167922892453315763092897812891431966037414895396627222656819769437789627400789207830640194462272926706577532608273572057996390639124513644235496390931694564849349282839650377630208307080447670041352061438756044456158089919785432517354598972546324935182828515918438298830622819220191215215107721166366136026428905162155080335719481512920767182109757319481629522272082218278507136191223761649104352456754841515794627016065932977557875620280837524048877314978498189540424354488589835111978203888228116248035769816925872664762190058733170941932444061012659934635972383627176739008038772610312120321645464004769458485268557984154792780167686120604765884251483728828160383393818798909258229822931603094761954198763614375522665849636761325245171217521689579891869833319146603307338163115202744241158352448733787330187553956633452283609780486125520129492578384312190931691261071303052471436118700672304449890399422703238088835448808604091544981176824132049869461739626670378380602663940861839175996575435897178120528309794233843965532073378028088976093361728534808049575915885956586041469736662068227027491057878725835368032228373251992911846517209485564400857991572432522315726580462691781880383086182261306901956334204760326114266066589144617443204286708775436508712501622971131186369620480564706047284665603460562608879876712658921508852778883020045337530232833159378460283850235754559103851412250521733483015669569396278818910696800537395736110186611396302285523048804949664586813826452488244518601898610981168534600656636298971652514600687159588373924893815581337562521402069392401573233769073843351638836040928867297547328846071998315966518008594947568666568845904927992895807003449787693852592742166233484842003674523510821967850135461942260774831197486452115448205072603277547268988585188648982782740166484629752897180424469502558892890097996380805640055330741260400284395357999950656996676901616383636766603932425489496776699080050862392540064711529237915101391095754703469541339337678951819230192751352624247422616801654941077156259789937651882089627746163307506484576579676041509417036573738740401248665361619088778938515454384131069296388818501214716773061702742605970861836210230118462512068546026609140778626574145301870229847670297205629359842318995670870527573917183882663359231852488136783718454283608558580723203046704386498104778975062904961203429036047434949366350486321537490747953976915979562663049250685317047616282059558353067123672873451055948068504504185840058850482244953529125342460918288673605206023515971838400279130004601683325173560906563228918603072891061974236944533489818083419887730254058442127083092750403172418612091829673030422856522373137919438444796804274515070558850780068870914608790757438977558235036220735052282895810953338558014249591852548047458298252500958151521358456847828664233157005979522985913072537834704538562337773782253213110070745482001372816625929233905275257341701219673679082540971595494134611679083840356988163252647135953242682263159326905849298701512657607717357791366016573431962789351471831971157174218732959829909194826917974023453406649659630050064166770120335708262820160620040325724943377942386188338666651918662893950403116864758518191646125357927639517504678052168081379402910416101140238368139664380278048547947446634291858699058648419484379751901479876914960618094060850244805111201852807146653661117477279487265239369565847759153167753253106897257188966258609808722149408557193015651410470634444394460973770050499101368938508915227546677421717935286382075391079668289826146448983592530818012156298939872474112270378901566825289194921577184085032105663579004097080539640683718882386198146527478106818677311179025243104560210110131093577648640939793949748089201062790234738103677975544829634812617728062396849140360856090504402500923113797342198707767768098660632837716405643844026890578842968087195280486521650644349240489408807786770059912171912953762523867945878953358697438275159262722575562229052331464122971920141506063061654891874205032440216258950285733014739053522712031809808560568060308383247551057323500686456327546202778450514386544175407681079021517258791191247361341582088867612627266145536427968940214280379292620242720065950783396429836447003814521295192835155319359759132627632475885574102569583278030805636771987340151039194884126318541950110586871808559272202374699470410843874500552217578420173123027590152655228802353340122975903435473050573301141645363858030674950638930326875443388584292987323528813497983906746086724362537990886755034008144511137927675623745458343620718656192235062610479007722242972488201879033809027919160823707732052050449947340754310229282841896820769361513543080814307975172704350295284907201377544446207917194200708473286891754794071501548506069691360106893797744417624232220578004511105459963475520875461828635896312757861850843047844319925816548244287715913789584403818601363273343560187707660455334120308557342780970906958666102646471124441638696188043302616037422479122228413848570735895413160292976812279530093383706761336246928852676033076047636080083310321499873591467418566256330981556260988554367006078675386932036456676682057095700527118334161969061166206010531353312769090291382358110288552637630055503115120057982380576104938727299334275509051741738132922148173630643721137771519458864143548192631426544458894435219574400420768058128005331107605122386882222807177395800052160261611002815337169690767960792072341512039355879960022150018710986723800658257531439467698967063116609609605698890782262564053774604743314361706168693384052074601178803522919516894754618982124645466127732438024334692627818940706962348205011627221436820291597213285894980189127122893636425703304832597733064826194874605392361009673937827383778700584509944641457344843751003488883316065060468384384851241057229401269273806777609512232650612998246054323176560300347351764670873030185858878604753236962702694919976229864498621121775445330625237521088293410502963898676663081657163026127727395692013263420704663724751731311446129562028692329930663169240748825834614674032511006060541297564201761693541415525691942903640707278353333704532733946708293119667908473533291128543299258578537522429187432113947480340090541331656688182556206532231774073339765737059331064197510772119017374702318394065507995865962848811890494947874365453929446196933622600859392437150316139422316427565797780923645632762605508253705324501939162318037027664904819465195679320583460825720532386578303534320578183900391300735460989724942615947859781379856867336129600051311293265438929305839249758210997194872610131980460241120339870275475191817331341861532003139487870376436737404880593313978967990346625805942401857604753468605256492096684374337969502892066532142195963858057790226768969909084117486230938372789179786598748914151767354802892611777121445617159549787057635000534690496787734426853481078558991886282011655943578460447473775482844831045042461780912053059798911850646218859353752468069454832593190795817257298426028272668444250727472544479381552327091546982785030185912115131794642862288214895105508315204882241953978436253081124777304931981397692169976734500131085350527309521767224051709205174354238177711434695019253282138445281078589713693967253671178431632277341855984237283483636820506427950404006363139292985008232361841131933034353754859415316907989355100802313776242635585699584081433454755430304674074039910860870821147523821138616464079785751194641040094109361085652195634118862537832938792840959330082225629917638893245614369021980215843786452560488968630147416882425294149191867211825940010373853556254890071146165229496068930871974131955194288874954069666374875864867611433498544995323340087367949090703332854912502004103284678722967418271112108560711004301924805196033530617932421447620949109019373701837678241483355150217783235003937369114415053451146677426964678216276138369660536066983969290737752790196186758445630030384717259294717426584674850618662127841666177877338134255209680528144448141108702506702811925406002297988185069310997213953028257830783277048611262981628514246933451028242058419217987866645809710039156823564832238804097483175817798452688665113076749781575786631356017818368226815707125150911477469048549178239507317860403782018360865831982235469034981982164763714385099612382816890342802773813471810082639942508507097982517447637053363690243228979973911460127606115819731515963650062477432854877792076038044870214610011139180440359509552462249518494776496191602168095116627335392109277912754097525282723686874464164717697932828360948632043595012156018941284918859888579209697988830139216788630548920786982870217428535237261707412173703850087002125501459610619838450576149273091664680181141800809848996234427998875997237046723730814604379759087109960601730746638616032138388182297826301131253491266726761834467316151417295052751237620529416119529630171657027948646497675195231902307981346415487355234956180702271513323740482380268781188046865540034657849424168067852695403706831297631406742795530082328005686574928290534180284594045400026552052801448841787569627948456550046937145509450759461323370915862065816348370940956103906010626139512817494463806284598856804197454466090603490326891496160015757150416825298703213715012750892638740843242670918645468903194955204097558603667383536254259401386293702757884553344022184446492455151000695147324004841304904252740002129047939222526973500537047541789427977190894023992129629516173288145572431150702109457294801198210801375659403724290678932633453019771753864721177861340326834806185038073701038014808718282362315720312520893012666795785303368794799225717756155766862023624540302035878910343467552979248401022680594162183840508867368539887264074069356171504830127717135347774832827481013181074168047389403059452321535355891949030780195776710450103141961167024439873151702341336751365752549462011232059067678942142754360794988014970376095743441732275782393547201445952117218798194659727609777169802934258197558235466031735928734040840337950782124496715021991417041332392120603189756763810327303937844735374970946500506490373021413021023332796625164754099263983519000976005715209952405400173623364657847454180288130577459903891963253423616137538841080985754189622281838988931302040274534514140177963427712363198880493685320192674761818755945321404488980184312468660202029913979339664890558763783421436380587751840170135529521462398283390838040175770849196773305195272667737237524986508982933825966273036941974890925501533550191591713732254014913515871369770569148341288440971579247372168936358918272824014592595315933137003479152014248621317769946443967741817732457478671204235579398715498835995324170099708961421710040122592168540779849425286291120410795218599481781913291479412291419336656322960129625911782994085966560891004904746271851410039927250817386049186942077420244939762286277442429820095475918712278938188780200676958424669654447389432918499505452302837488404411173530052740961070340300248444872111438344772383711362724634241126351660298105545735154200521062724407141992877301691862341458764894412595114858615139631097467457143384000045249183843269143339998483594691429032461384384925421088420831225304932527244857816143495354140571378934717543515899997836256481639982168345473369132606961497991984153664383601991620064976007918013191137951987664800922028185675829763673415897375387803753754695441573670515467574469933703156657497098477635668136128710349595950067677245372388406874443833073647449405777257811099191144332364801544816960454602874244061124947497730205326790525833138302235474397901602333553205031079200949119994841098676681447278412972065214620833514179996912810236462207763162301601374279552490533464216684920952334768961840238331820061478370864069196991839996390014800526723172432113987458206259762320077461522253540921019665218571805319691242908479864891431330213147942439703207657170875754965440385145156548708259053869571967386293620344649150239521220243408007186680510601556405082817560027526258198593845639136117097608959618472024452351670336032460501219502597784577520737837269347881361281604032509611867003223671244055497050708161726520809435099794015353631393805622279335604515913795041474106598939770931538190825747934420759706319978910478008907888937385171899483123168217347395348874296583966486817505339815545828221238303148637373968584423789633134281160772693555386864102739081002096107427782957700364769721706685444349116890854066909237757358196667708262593326552777658413086752705573102486117750400557071643150388303798799588948174606274427519893213890934219240872619979858544703114860349359232609843177994124827282780026398378402775910085370514179020490855050220997356234478998519041256583248417132695485259025268672375661120025113538570622153702440671386871167745037409284228868985329147800886143216033501332313856177825113324230511435778650146255248880479597045094731736580410048245408108623600635151254135689926763719791236829190380851309403085231024362589893362126895697491095394990103369894910070469369079600976441815318485308589828464368296704208051864013483148996129046445272635331830656507392462283059852420859887865571405732480086718995143188767020917151327101738279494831000684131099045647345763751165020987138269560593676883046043153435919228476479597925146278422066415170896613182612061847684008704202503157652726450853256891732020204866068281352289818350649349632127305128059736878906897319648038333649432809973400758572971517482573239111759590159365859980370944516826994268384377718330312847619089049826699652258442643488963672670575496129499574631140860937503205326778082479462189890315471272419588124345583746294357194061309617904008310676304398439295349820886723939775206617491069862390424413418263380908978319108742812839447920549392886324262578715532356333319400757410038671693224018683758046950909578380379077364549320109581724489786747138024052438057869353176709392109279238784266393278365613063408184295128193874938481805244378832703215500709751341578074764799995081779068853557167601054575026654979291575747896907073518579111273969881790152268741017107760454206278075566687154906147834428439730756670516376603906785728974415966717172280883750255712723608005639177994861613753409641250400708276068487808431521438588559499743096607407455006309953126237759031192610888638218977652567238382031828859861300464996756016938713804641876723370421811411749980130303779470342950277213209843904098807124759178509004955622850078178760348732306937088738286889967402314860482375938693458416691711144425565795591273976988089927435069573719149269187252839124025084062542698898502741712156453688018384978300010476734553220456235781660645726014985807826811867774082127575761079254892002320911141983817055541317018692562519678958567283734336349312463931752367332480139808211394712127157442158046342679674038239495541327216809969405686269179060869115190200906465353107059795615314349542510020712043714978000752320181715066794523809779749883485465214348582795555472984824257429552936522247459623563698167143992881604913237679375849066771887689692111935802798650908379188955940115680826338699085892677189710795359501540443227327273597579030150957206040597728723781250419955798212903512695655278875066452161753914086973072443716705920713354020438383967033295218886249923447321501471242295174693275510241113686861861111511988470366820922085533177885944121080560532324667353922723779669753418266761010045621561904046144829812334727297468977668433546833872059660283503181544186169438666265866168761192030220956873872694051522020538317566134562757492222294545119165533959332093526132564287299434787835952273513238307478654531628169965165749074937127794146367025584157875071831390229185447426236471522229398160585226332302872501175781382657196340951567754532344111209419189314388720083333532807340167137123898708206650247506497253919308463234576578060291023787778963487418790299117914909701796756536320017763388742884157874243039658092784459215149919329578961701935095788231743946190985455185773362002938776616048196902610128963446149662153111252832209031004165852785521091180223058498692582349734811097391430946014320568707241527507430710856929288672958657272263477017463188605550652340328962675409099292794532817079528588841765762343594783825342204623960852662793792394404370762227150042790873251926341233010727558875553273879702036399295592567676207272635300616284672476538113242387565989788393268145352828867679174967482379174054877971243862526607338869763408961343642018363111696758774766872729851724373175446184500751463220255323062741463411966808244028051749925304455844585357229013546810769343700010710603564886422268059451323090745037595116617726756675452886763631823746034071651413764573490397304161460812084301155144820944122729017973036054961480274540555012049022854624974532665856842696092329518291890395811863440730047787138997929131256250124268719725955884147191529868146155003939184864282703273201348459470370292500399998158164481838053080999782235617232577697423329601216345284655366344287015714927455620682097920207285485287521953608279918974522979469825460885336968830494143764209884722449510578235899577503280535214726669391573688270239199943209320917995085370071539362384840224311933880772235512082038828249648528399451101120412515974247582615984173705767387925818508568571866330492072526755537942134217314845018716645609691577305657570372042040669603722776652218761698631041174576069650511149094987379421490234028433074292731610748597963431332277299051704399551318300892794699277423880500393729752446509880741469350413202401355192514816988492076776227717417097471251322858623541011580525428388879891451230777375636830934618517768777671387108030967237737526079354864911228399665018401566545706719744177753362768132430193189063657656974814694722777388933419874972446760072428781264114366407437655070633094705890006647780443213416159020074400349194517001215607028421725726869305218230883829218636192924306320925027767069262437048160540904235760625970800678378826924204328715207856294496975717059401622129755557732069582943299108783263493801850596197959068053278957468466676426829282407818353570988451313598876776526462366801912044750780685504208044818295374718570942804329733663433007860582993856739521259122393696729202316181398129390774104661743051219070513244087938512320995750468309196670026013386594995888700550197636941150552452924141735542321771723615953151091247739776400733826128798269600458570715878379332531220935797707603753096686569246233313771675096476180966138295163935969042271205685187038226047049682169978408338288854022328758018452260026988856024837479614253293319697581130170929157894577165511117652625065000847301751818806279787230649695701391662928455920569648063866369699756172490260957126553812290035861305068309709670282455571032309273563212069636266446382120797156215161316579043996185133021207796008254100819136134278846506788876445975139467663682661950945396691604491451894195945040919355922946822195668331553989053663384269204547313876807701118066604614126338079021154507622865154624355970772177021266439677711254624827656183724077717053381887318619595604565185399251211580450824000540102605239962692661234175135985067216382004323515539318649603998630533058739680104834131364246748655554239201034936251028838853076668124164396070506006003082113484081884256628117052494879698962174202256637961887116720656705146441593906935968981952654939610433759103788849174547666937020703392731781203191863225209068853082274248486446059569869384538870284732748918321717623645749359750789695053754378007560991931296660243077231767092636045804745231699749384295884428724576797392984139783172585284527011904762762453972729498708806829564552914218863374732427430185723076537558696544461770522268137102643675355710570958288581458779779584566774934674842862359145804626801021154313872256329720491362017726589990712258753821999764961889636544004532851043899037406393447439115370432791911346555687809945293809875573617017734073796998645355224187801000893776092949053135639885198174080638971035352203605568265700326965393662379597681267182239029213374718636410239766139733850798412952369433026772836389987792859442934991627754036849706625731460700715437664207549048275676975918490960375522481663843331945110946328607850723488439808107042498721224620051185621317626361470035850100340726711356241887137174277791610674199714501998714536330177079872843090406621232280868841349532574934625043949377594477792627147160625089205503147367582685006838824997592688079046986311639569167491593613835136073181460826820557724293529147607256969485900532039884334782077874852718970018054052127035098387358209853018469118594828227780575279163179023301675449192216822615330344826566421816468407422876007391753598556890770856824763203737831649637086058864938661110359474872287896995967726386535876305069196403812109021705473827801894120850460456890301593332392433068760174578707117696116462691975828652637255048232025069749709752282628382121661981810860491969360499953686888412448594368528083547009668220367514411501841427151834156562535184129564430376763126564503718778896442388754105900988064333621369743663154895983709596112873076599992806234487763758165770246490485504010774485529275115484373313409158728027781232117029124845477506996163309347256532835923757512603931877009906039830180427198568072032096444397465726449727531952002858352203404141328564447246347235898975360703739652052887584909771457223807384105312482431293201242915855599490499071179058085011795215232647474829642666152461833554146049015971671108100295758739867203296263994196245308539514333299253824499810680281352991584243288552347821460546230568891063690797276038588995944739484283872423641581671870827512092311744412467119877047043882462138356719566928336230670908187371489941113156150313656467514530694877425452632178051189537986668288201215237495150403634172027225315294517903982625702913254960079838671961027949483957988281676386344856203859167454206600104649997116733827643041079561940026341798236535553251867606273167434767601816868486996745080075643757651255767281215627233534379519875427326851897163054698079374456327964591531466108596143149967189156237217280128554603225634367511407489064973348675109679862363427804999866508158291136476897208179439239309415373679452122845437352579084611203785732627961844933451025183694670957561257306572088539903272801997287956847785097799521870396122112640420913968208595596678450409931315812165705932746167689753224598479860677804197345302116007672679853655566566785992563522196774178118383083984078244859463186207242252420659129171917288796122099383484646034842810946659151704196713725190192611480610270381800143637163612088596199114382886441458803270476872370626108558427214886026807614389906355302380529508089597978644779563416893989906121614459357266539388264066194506861666024551615418666817400416548353843026492214557798354972568488318490041983398602804956894730027224833861508775997212568655326759012239622846150114362875292777560415263497759992578979536056216498593143120854205953617926540568404503680273622981775505881381763933452928002648679920212308505517797101898004998910772996811106411321461021073548859448322058945097458347410217944142896837118069735000069062167914080314734929865103510083126467065870667899961796716161871747704324948930296748298103142047100184716270919425993817979313083537105237673071671362033138683646424736006659875947920312800558051636173812449965000726340337121598839628869403852969600905273920732610564587364897222411942890201755468410568917206703132734564695364467425485049948057915804304320486590511827537034409772976582470159285372395144116750827634867589626428959237580373387306666291348319075604518808221358764958480871906258498485435120881745568241507298598082664777263093353225766043549986302279274682141335609652017841888611268469404289691064868744271474311980693690042692900710950816120298178061095159443507652873748301232005642313484468770290866853363311382613488498405541381653374133386301071784614127041968152542124026477225113050162546791798947899024126240753589581445646731161810506314904445101600301012172932052273247646931278919228206211340908571029901248640374314254257205408818513124187099633868358775205478676507621184538739336875933364628857902072872946736742398878207196495453299475057543876615257791073483925968819682693068988529270431672787108488091192529505886636337027500293453960543976878921263592632608866529307112290037539456501981081716601160659362503766406596543889872966932824977186974699098714526896533027454823234885281392108725527293784740640222690783975329650003808358520479216156581176066419284058030965637980313589477602521174032722964018277600983477728825249003147065940363143534506030036246909641274319744567858554492021869347758503596463351670767942905220288048159519851742577704221591089530248247494788353345118065362207598169602947209397347866588806769104328653012389200085244711513129417198310008421700391569368878731785523256861899215862274530526101419244618982080660635035993311814359303179042034791474588684275147674003463472445792724291050958892378120270244588124561868469404236678351213466222110323873582048769200812351873136354337201037723208087567302879254869600291465150691712791336708593105206939770698898697450105310675931232976188645719916799190271069705665428604418852091898778650886146291668269188463139453655976050109836855951746697522959327708079139597330678442810847787037571477639623021906062312534603660629977986914430132090174716909249994730998226187915021457531183337405122819894163925777733879624495785211289004174394986274035486010459729480522719147044293789434830159710150166689546750971109550248774473300190875646722045246230895922272041069928505941804649104306634171304146423983600034203843107674535163974767873481585742502937347350912840807842079260159460610100819066347455949780958242048282099601404318666172047077754846685142641864937085631567653660143231443479867518883291750400420329750485808682827349039301757530899669274522315864278027103752508604704596692715302642576652719286507058648221597460547965391936919206468096969489543498979132445478079704479619969290112393569589028320937864585931745999631137160658429542303349756770835019970725564106835018893954229636550728906874959099110235786430255833718768112310205126526019713691598408431307129915282887474749579169165911954625542171573388136887918608996855900369676147826385982549133827176420141663729495012654429930664052246501199207008432771127425117941644868863234144346872262586655228399529650275967789026806025133933911629087065582223138495112190842089265128896007381320307418176409684692178828755177321119740682448210380694431451760907190652852445042296404559117784168234111796633523758995168562656700397707511410440879172661804541137464147188420972950776272750608709247547833316516301045889047486214348413253254404039899574327405229037168519627654930762251798989241112553277402609516977670023902126496513477928517823933597974211323142700626997426451958855209829590701251573491101313408789917734971498017419028554364973710232041984437282284968074263903113386128316308598617719296087180784897046380678533906918210427464684179147453697407247603310400388824778949124249768505336482736065128149743441072139483196837624347155684923147829690246453778556524531636174515083174739570223403539858928801514293646193451707685549260156151742527848219519015561459050721717389384425915351796437839954074674349035664967153771282664730974461431878910616570918764914477075196201928147592511706465859129117083116388747557971866377306968961051311490190418706847191610047855583493899025211621795324991991921392592970047048970542625720106798578842671538466848248201351130595128997287192182947455559579296800780057208643057561230078245731528633985238643936311371092265189228019084808583370394328402063143350288030520111723786422320710516626025099017966804391555541129225676164252987193128190333887114306763492379220709473570527596403546686374314978401603525959007686354329392505056678378823600291749937779806449804611714117788182679504854822308961069033675206453678789983474084784752301637528773700586994747047549552582507286409819985929312276370641515254270770342513999688075057277436869546589738745571213006344079228998773127357453957302580763909667363410794506562600692574576924066073105538396418238209411810919301567775418604791837498759961477583601650604119001172298286682417345049959932853449369020666994788188185543386771028402641192836397493135830327151775121611416919627821513361107932812491692285391838006327004672378124066542774793371152330036437511534521186262453933318986464685643286241575352013238861684487874918945950556970990624839254738698631494749528623859273259537779204703191566681421803034367982206203420659616442150677983046110387058274471093226583538016034782032052373478912707409019684239138776891256009778811078631836719015852592053706359812609993535440837930369001817269242131828572902268000501911289642964154222427756630895754530743582448029076648161381307028611203698113176231658622060959818484499820812558119465116666333748950897860050188013397968498330177390265155067322923043728896209571626707388803868243477595541326216774564382316947003959595150251544780024448254900100977787768271647181944181608091049960449578641974612152306099533674760465484729063916037574342807472796751445979772963920792910375537467376879921257420408500418318281223446767384403715413879869575419528181555505926908473297812583155156428880486444273613896664859287146041070614039102466579551110062928956172337984468345799743896230763066425803792038830232560401485202049737935002537106145098608592636131392656987705079391452601005732540784827940302184752445300159697529449198113766991236731656022113825195842627280094436074486138994764017019974928283063607706331869004333904464909077508262387948049059440039145798873385935990030974012399501084571406930360813863314261612090311521036050026478317319331462947119249994482529345030867002226803117559293100487853245396997569501801011981295654860002899442405223168608518231308333039047862275505626586184957436725697204203686965562976139943754981892522213961619020678504283781163835137726645826580773274199735561203099255141563117106553488780173584539287944585516735429365579457166956667977995512464321437323176757000185504751556946132927073539339113638236057102165297818057668632033034357290795974461004496594939427966676690620249510767177002965291474124228998647460175072275606543267814781794999967237521759990559487025711801693375182547264173757165871478748505532252798458861265721580909335677296324751390010852677599267549892779039406352888591011783544413537008308754647305877179597118902378828428518264673602510612417907294097998491243479258755101362872733302009049988766556068436817305079104713701784923147217721341107053598244171766184721607347268038996613078728249404296864840759699783733429888149797969830755636893385217262678298833441815139535634729841443182393751090896387246104812748147207695939238536487448998161024361121716653225377572545845789740401014292600434223437839972025083377527679218096210831163967076463130048455366105684315428737045614137975596072489001985876764619505691832901079579553962099766419371752748566472413463607509119577152757922167827544336212480758129687500395509204416067505428456143393840728240147045742485304073490331828750982946584777344882038746939585317764315623119071320958287932633777553228936596244941161408084628358923886572949830644054386362263105719127090946119180701760662118545547616524401630031999227581295757483049798525426657707705381345767068843260915098021060468991713630491107296565695238859335743995101682801336191881006770255976862397105494551579623958742640127055155278954081362043504578144682434075379358610304871138598527521082458726249371705405344651172128728541199018252696851101282578017511746762639417853377548675715703973585414923093996474998267629463248430428791514987365406934308109251136180158936624991800435335688806632343324638617558718053445955952828059693115994927102673390269481520775578331851657579259357801656561940160807933737813327159330354567577149111532466910249057469267758370441900334203230357242867362303182409159107054135099610208481124361304410289764892084329050924417333782008759940695062569364029701764309358673498940066748384027736412142029775733939322458989802436129971704392142955953157408171607947611510306083289918253071794377044396679921270592657001444533196928368164311631056863663001232732183207686791851488311901987919988751362438846418991941698987531586587072648741534837565616747019524908791693249838898482359484811764082553584666598553095646242734932954729698258420443523883528440525056606530353044402244249035225874982262715023423079645785061126898738590981332296822540648892232783515955689681426030868500531821948425529375696593590057321990951803095194878511830183794967254074912190795117653501607056253763281787276502775767708525204769011950896711597810986511161869806894250637703109802172795724024038144152296047712961669725448416235516377367490839817264161669284667593923744474845626840706751758559361403268755708710017282745052652376324731077420310385693658671955523970887181648168009977372859326293006133142929712093614718669776748443052210537203970024567227018521479187893120880641715390966733599994776150325189843938703730767083609112134934179470312111971728738313695639563150544840075665499052093851775255057191412333126313537206766389810283151790189458342812133277963039966284099535076548226682092934458216578560030108444456024329985866965318677718124331402553959082374526343014125921194608052643918423327947823520512335454923634420605464130743531392436421490374579305069385160015276846856348768260307433519892636906195110793024227753319166291691751252335265192664659839069038742509382041562959153323381795370853466149365118674925606294721737952969654733904620784442031117654523553613934209191134068315228683454687561115079313998054002214269807952147054499148966718458437217013706448794221141655303229255664027033871202821526695713389819056143236540021423805005215010461204408312498899439683383135248731434745507838984036477845108282005694771073470647160007890701758961299780105489002129211159184416747194016815163250128945007097616157405332681338988126045985326614272187510779251782348789613094526000177514732738308402594394528547715652567359088533989108693650760239518750515609402503370629225126746968717274909298690591626530006162834502396770720548754739739937996389281924288080895689039234138349751018012674260586958688554682458565285883119352631644632457113995226760790842558306972538608674762996084934710825460996872091005717717492894012731254817584796535818802812311228520279089189726997272591090858062438389538574962376828634079383500398476258368754683471026320519459495668313276768288119926123100457896214790552929908278659346088842331416836766411899280857268623654081751166069095844970864053325921588105596365238204833889658205692458310007291195522163928283874460921107070754948147882863452452001866637535284621552728217690236647950203325890498438900595834374284892431616521993497645097575077525881564790147710515651951395349012066364946336255310424804026857044149761052116618887034786488702236025775648902529644137319494328577706310840164710152592777326602114087748029471250679376475776857870733227820785333806912428777806105159235283046467905797585241618917270229847423317210778480534682764500604798588330793851117654321779549382124797030465111880528298861334202327359211932266686779123356515807477325922826203645577295614005701840206143869923794948008498126732344664130683424855081299481228798465368620183924349506841130063447806134605834868435850267753626981476877960050289093415844357897159983527688333150133583159988581330463582362393693146225325550621893959879965849741068693291727935980428945303955122299374250238594596530576138781150814576458920788900121885903486749678657853550227546928238565921548449551429254554207803275819292898499922474883093300996736862949034239076360254572996239692849854758278509694004319407920848517205453492812155791404958704788478191719039546659445951223438176903149392179548267482768139798072483538893686726850950398202333848635500811168916628611750108892760723432512190247967041214583235486317579281581303972689378011026170886840756170482160226668180233701168871086405764417809063511966961825975834283569710412439235359418189736578459724790267687223077067071174724049505415718891407921555715912165863962308020025285472399028151488183188782509581432717037718286892265102552397538658430408279714547025614299228845170219394495388223167847293046435362453665798908787609907001873320057394289695437508260696860785222451970843674595662489546843308745443885566234357091906901364677133288468320926502055075569961499475411648781062069067729073593751096137426924246581865085433615291348139977072752784281640159448954159062634927627375884989383112468113843399320322039121036633102364692163091292664882368325620566436121640939397286317502115544049287377252265109456852065801487612832670931667195320663649804868447338208588264871463256420952239787098632441822041386458892487825049868639790925793923670210032461639466497261683495369122044324820210560748728313944172383137446101248122824015801045531160829078073675241052402352066419724396270862205287997928658414076802384649458415455939890565210585262196569861358620851515381695133692738269934958106217251261535055984439428005574471708813235390483453754262384415267759631538391709333129497352751056252961626153531405202942774430116510213736824673475103199798484292697212930408993725356921794455762281641924858376751939825336427721491136096573062163860290687198719660281049389142027608938103980521483098516265020857797551628477502388740275096485197474233938820675672297782443772130784693782182304041016553944670402787698433882225611748654307023529301353111134329081984274448149179053909732131350441184812397187361515516203566698192554420877525019917088633541461734305263771916832137229566138684745323253664206640543422034804806827786087013386314793137546016090767042745190121866355632649132497584764648244037548285958303830834114847744681327625297665035920367400901382707332774607686053588240726821566028560788003361336077527182060707914927415560073468154922494021371440815574700040251048564138793277876858484545595290829740030455981524759011154758708016382942683304978376614361712296229279669258825649570367912116700547345736498375936378002805143428068826135424975403236788500651041764443411436908332438247287596674988433240355770573479448365181733883109939535453693829363486021737705995840111414509774254164446557022612745546180378441609591387155305578527160180496893096387134407347986253362996402650536118646110156324209780628536249494854059615120125491759091967142356639788271143667858266022592476229391622450781850069316809009687498704424408723997356358265624953530234394751632993485452785370452870278080775918366975845591768800727257784764148524054231637593520989816474419783233984624634094165487784704772597233592588654863458250255443397499165657877026808412878862830480667709294847293345662955371130708032001458643571238706876858545644194624940739182148656722122289672629377674606036227960429236171149168826403979798411989423662966779357500584918481977927353071983375888309674188167593304134756134063448455767016744219267057374255851606577299773448857336036017611133055492277784184855794661753717460027702163442804277306251779643603320874456040132253917197733747361691239785599652424544928162042409266633647674230853652632571979898698765797163097866101688341713853445165696849063891877137769984324407578443582938118117437819317570637711408043614421646194506106286772780382821592770116096574494879369907913959543552122976199198595857384450285051054117774812862832109719449961335385734983419104979858845728497523705784330021048325421954582622126164421526557643794019769499658610196299565186025068150718315991859521808828092793978244978176346272939308582687622082043802574554650527484556880951352176328755297417746303047636884662810081599862146297260023224443583847361377015492851353363038402216058524354262967149735154723420458147948693504685960184586170566762805317685692083460694476687552637640838137107555529918823690976996255976825178626196155446056388050534121604719714838419430418427010300724549273317161242086001525428054410618993518291155839841823817600032296577714280290500268564139086662226495495600775260630414870844776667620927443568939538410142171196321016553401556491257420351173383016648257652475791551905133548602890567342696010348669957087927731040965459053552156783493634675577995617784273043877392147275552118414092067881023106285651664497360710871694777238888620835228043838519608152634056805556405495722481654829997202509139653333593059387400866844012170387456157139410332350446994403961742062149895879092508882687158947636897523923545838589149459988352326107055719895314749329443255646581577938579470955587022176027321970942009187277516310288260368579258094665156560507268191673878107396242641748755283285178601600180432771661208836596562667469252828660219817220494936090657773184617491946505789387030434424974010104190405425270857726171050776559144118723066901406175178668901004777932929066431806039073726753603657748535628579510304347832015533730028180596839357092192674495945070331868203257880440497432956074225449626465071236742453242138871511612104070556167724350135314378433867324472394713768956506378483579282423520945668814153315372543006469185958616669213900642237550419511162831221662528594471029210990121183130400425263467929991360113674143965599381769712231259605803351600870372810400273657267255814125310913223001715972021841771957547735801398870597758635645641919714911962505373460575452140654937656534984102423608535590132743764355318927767917465930924455368419361738884559357754725344564768472452810650572883658938630680748065518017520969663168875561603970871476228994904556360538702366904513625936330758422339913340239479145685663825088085408387855900558332242660508558992526475926545356595589827474915955789652343377830906761172582567356967673897927725166385062270209659214192581722674447488633186861806611747917997262591686766560645118437070577116267702386771747772172336783069868858451712503044912105408828187477279780794154799164592907484645075837567257087334789802007891895922422428904999637527716090047072264412892737980880889127718485057536876218436868639846381967066042138604967815263466795595430789855820311381962819095377280840341986221124890059197319194374504523799870520107915207681932402132225898663673609751559858431714118356491687319305585997926964478078389175896615995911870503066954830512075077313990948369835023538306057900743154470382004823762791118209339146416059609032800831197015803881405278505523005917409672566586415590887344130890041626461468321173011355258789595933238265333150347350133666069721591788425970881757918273094544851962551354987623746589713577286830150030921423288076677426908108644684153065656568216038591134335226033771582909917649796896245177903084008562038108448039549547156157574639245608022819763765320335773889191999077232297464275767918483024623905257941091612572937947503784762162120757512635353425750523757996182019138598824281704045299972648717785058156971202022166417827474568844695425080077790968587567275857113529998966982349051769036281681901126881750352969002061542276471989923849989363528912580544421185864506112981858793526009853018361198419321417067529633331071374462151128593105845498781475400495119969972692330339193747259942719601234188882556385088015302350197391376316549923910078286552098613963628277881274458353250247891945944983864331124064055074660589137779168196698185077644624688195070909258804603088071339389097286976531753541007823014565318084083388705263300653126550022940756276796790396246261468361763766936105264508557217462826435107473536866553988655229044462409248897713541113144782014049655152747190859692704595602485862018345743377235219572233540192910937116287661912068694442981644406820645701776157440455254178350938220558138273596209954190184780562847234653093759168887470643783590093524121588414055528766726219010692302039094334347951043925695211558334654151910164623971228642106234520998736756831621099346861742429532780835279261348470086620968761761856904489521585848728225074633814138263965471205648857768530793196757346227887239424040747129606928323880806961924147616825643916251958580739001539419937938434682954118164608771422819260440750153231730792331186462771887495035922172064110442140585912192988865244334908193156455578072131783196931310784383633484128115686085118799076067775123817371173008271729415486679149878500582873418569663433547634819291195558531656760849906746621693050175435725319023579832508255797448657761494517244780241874335559324769389496921373992610667460709586048310674554673002291577599523173456551382036333777107093140160727207198986430810671052754747676556423706436863072154877910359238850588954928793602604230063517259876654431299124785204054914088333012447520871513306410042826067559010114696577297864452866591474397074671942235077707892006255624686699066468638046500344252855898321350330527485604922385800089908176599397353036332717739348940131039272562023204048022197689420460188632069114363984122665437074394034040322893484631588754247285436628785412822393856444204904460461021380473890605475726691872568778051288537821005270432279206120657185513100233866365193941084504062433418917391472957105551062466795199636579322280088825842227241640299419854006013301028684456900186554713397744227702421546834896703102202289858422602042437580317813281057709032644007452792047822391122324946161476141552339657201800299373896799560297816344564077336186470534854431732216097569642224805601311958119269540984761534515365220416611075818091282417481198629168396786787957888447038210545701498050718799082493237402913995917877780444072581414020490429896908527713978948043848033797951494674682789509859093484717785733969070914168313876208771679077652543072651120037843531383822152374430103643397710509938750453665327845355261534696175809644784820109816333546619059048644680274486315618988605655635825235395874040596995992691424449230858912367129193187808344331680917522607194888813016379485069756000863069216832386200173647860877963110632354217884928204818449481875760431169969994917925907707095499307852863112667722344912256980863471405369153284419360962703109937531069625376390054957268204937024333056598519399764351652984571364395154819371866466681704649837451142223614378286852359536312375334177561683045362561929881197059227857510074873159975339662967222085418408527028950156699512559168282383916509762879637485348812688922663553349152552118450752882870875317186679369674234165520060840819901222266139266927842918578605947507680957123518720064656166389170938131018873132898455640950946920038132154831586659981695520703730917700759722706124287053577826560988995447070743941416428835152725462627644370059525884651698500095695475835566168770978910321646536305721180211067737806142315864233674672589839274036280253469996598290147777086242093051466165886646827412690776298551866417909920072171077496491788065338175228266354084399570066766947090518624464281747920256318989196493806028969645853687331049406916127765690225876508509879654535321181357921689405538825420491401256383666332416222435707621615566954254246649133881385329108871285963348207938857010440503471100499091556216922778430267189970313015661898598989850262448743579206756798937991124332948532705743666852342537659487266836293965939206529139238552045578564620937982297210959526166237323370529599811717314667516382681940320287821056421724998165637564405675519307034348292824223287672325265606138236381255155781968230057945605493151780111532660070045883607499846383819222010155543059997477853182161697250943478924151039269627289328328904532178477204776354975485325435164445959888694859848030423194136782888790383584297153528400850621697642205176894070475280153976244238480215553514512716865765895126646052680997319521975179036119380723571829487734063706735225998740983549715939221226664579571714017266918934708359741423141267007309480173906470162822155578732892595788204485991951047541212309515809289579673835498090958398606882008062381722351101601804779146811485596204298837024781044415885545182296470053038664004295600451200662343809580360964594173448411001906595325624757263738829588656366564112305202139323569883921212811795544308335837246570209355719232957731257143034781026521694690419117207854974657714768635171721336146379061614513269568208099004761096328369005179284913705650095786780200604762579901960780744320683976059093265981501861279338556204285543594579914284966368704509928823037887169671465043546808533521986073159317595633589933765867550795307620303680821400360850635509053669750045764530808620237716687259496912157267307694098265083263480308519970805404520280932417276452126565954817094997541895795304255945781284365266103512211889306174507866097387523013015642383884858463862135736274901440109772099065573828099582620554741567637849033137473655600968626024932203028212281036726085574418636289700486920784067119118738375909391507727491430232668024343005135888219706203863354713808236648425236848665018459903731314586114482258647220535471253844053931976264363274862448491289105048722208869004187891156044828500330783377263374056655341789233814913868603875161824035896499127452190704898702065325349497622883984166354321445406519106705773951236453608486502344084870181003184318033953558820811405768579191907324541745832938738713168575649483922079733793313790201264021451787736074202942360815101998102730714400804654042287782167815196758069401697394592984478868559824662571089337109597117005748043659236986918567214854801456653766643680618910800486780220365065308391510894080664274069465315981327134809947197278092947520401355786509681721378808681945311919989559392823654720788662074350648072288056820575264037422565266979964329326537875005814555068176233586216469052577306059752981971637199141640403796742693207658332154507094483569636785364076642987052422445602917703654669693409186969160764882424669846104855469829023602063719203491646705531940285466951280953375269619345105336865959491375927207726296229220805046848512827959023036022181046519867687434861713204088383197067895217541071372942108544009378625810488489927898251193053143528505649484481352588570897826657570596620638632672555181046997803684278486235654888120739422529041779355352703331422073977787023424413813845529952008858125825952838431563680904029031229307121529893283654143984423436281791623587862417209721822911673871366356752529052819272248999820045025232403141142282521336922712219435104575903180934173293950629710625094316744954656276001635761652658026365992546454588245636751515490457238119895253844945835013032241841267218200367765975688675705995060258752556263473162964336431162252232340764617113609919795479358354600601464062850993766244064807028934944195976855073414391403117627581024329544095808053594043408578056732499524665406888828531438846701599772492809031569097487419720776618869211382843732931772170970588926330236450899554522950957821897426740908254409935568807124418427442588022448736497643776826925747191465425376705529113217005576074922758530853079828988971894848483057987393653574177862603613458402944067678207146688521864314630101340723158818110000457802235693081149900467285905784033349263705129820450701262321407266402653676315011233527513467809475588642966985578170722114185266011743453679095026659264383436905581454937279363135740404163661898013316528021758953962937462340918859262576381680691653389942197487990503091779686361234048087717873779074688169984672180693524803719224152515041500746695790108049547235757427179752227258605535508954573727807041174132405225695047904324338355428653412579457080752380778322577651060110080336729371842392514159859603690358505442664172216733228996025650223145445652009705927238754372786487160689016876616230462259845446154354933079648641399106009566098996251678302025453191212519736050873036659202315059086242325134879383757175072810286669943405346289758528530788082963343659455315913243755680787165352407696777056131723355596319659326002094480714143714272030316908763489594842530546635320663124172978309891857235322981178807417950984782647095874690305424705601985432679180492690471751937404668282309651048732683113466567788894288283061737601916220712327590592254007964355635058533673261140272892203170741376014986586721069421200125995779366199619829374042329446129575923398170375079339282456570292763015584434432541374488825779000661253348761159307433473879171679627173091121480250380254813048968128720490187306151594481928849092729923764640817142454530070816451423892136905823554936218822395899626000478037075141931790258142091925579230595098828045155035151115222228936978080151616382608047560007874898077809933833916194657784133486863647828442305686158211777623065432296694632080296396651699906984208454433853097281107209901495934524319699980113507234715008008863858236025237214351017501013905311547055666642504803746688841158948976487040692867437089062346564715163164250261755106718992081948118615885198968819194790882477440289579033078304295059960491903844346163050782329297616302565754729916293240510753878049447300505142620950112751752569316966952032085823268225938017870564221880563518129980362357033450313647299481759049680884011757532335336640268124822927016928239475303238514339585702624926965242853672257207279053093364385848726482585719843248472945219227254632496029116338012697518673484217227859650273454888687102739026292603526799687690821157164061303911007533253449899061841390428853929733302437627119251607639451163870202546734070907652776707462488339613050781531178577312484516655145389891727273497712167899507193220226344909039521853683038481799647216266042150199920674730784919555106753852658828422248441511877531125869308085729386708701920279208238607868545266943579275037439005023758425539298290603311778940944529178964150945974618804636955654807032346916730449052104299552045217576246905821395173520594860850533750901758080030983214104305311054601588906063685560370942456572260644143780040151391324795138367030053863942961172712088777621905531219367090134558494052184643594243494656441635870722530992552539387852115682623528700537994832569070444032742437879656521292063287536420062436356282675534288989279312050058293485552881583353049892785285289238965282390491706640710159788175997607405667764644060420901641561155696239127359356466581856995722529235078918238227364005427496354151796025249143786443882840914250523009055298938657750537999125067253949682425031560643239572120247055961099878944707792099648976876670179976784273259741374482373689813282720686078532776987605215093456080787370290146732727607378058277889664401203955253920802632869888799647807792070803425857951251127739446536134049552046143169651462648397044649433289765586104612270987571786110433746324565648533126816246717960024011866448678593184971136815302478379986676768329353192969053739666637978325151856721540193986413816587718184135375291714991368842140665228830622192237134768463741276542191284974093332435910394211951174454561480831953410185403308405941299686610695444219555804358363281363699776855323114560512117069020497506693882672190932931135152024541210672024619922533801047669253595430103619591227652752796417041795628508753880065246795079511633806152030305479516509288649878620925453396844996626521661987429222871499391170931831998999863984873307430517684306316565713764816408381608786922568410960909037645155741799172497255429772443059651628330739612049616256963470977261154234610963334921644507982894730243509487395276103827111726598830010534897291685288070254029480347433657555957615626370027611594969483681356020977561130350459258523693352246715870502691165518916886763492288859614373726725317228662588017069288098778244968595193451921653419484602782536904552393479997069423051400309050652272215742066239006539073007223627921819379882985130465653460662335337280277777261063731917457050559978593502784991329755225352577013342684227304725190106569939664402381846870098333510969895593103967565274536411021827997052866862167522308069306741623433782377865744215059294950385476272140396136661282654692636347993426938679286819828331748416628968109053352084107097344071904633217119798740356755990123589749021698165247975597167831425140922513104815051588019352131741652059483414922664422461402931301079684546604289931772111708359518484306044215561885797777998322882196210343145167987375797961478120992705012130248433839018456728798277321885566256802265613715366413514192956886614329339584663595761001343570143937360767828555820121989543730306357921478809949040027810149915586725350868411746254764946073023425105271192768262529315191464637599420365011865948208868215243409633306339873295155835053494883604686607483771383530202122011003104034579689175962506767277604171448490970473719969046400535169111211667263177806494268500784067869032667327204822807105967190125019979501518019017194211537226395419894498595838828225701406862242721291144955377706993794001826518030956776746408964690456494256097567721978910942554671556312010077349008949722329627142779759721620208952166183244948289614655438067277492138398905500086208597414128322255885037791419351509869796943428062811247917469923512997906868879183835085618808340865716508719582297779612430609544893736413545199469590307311694530938960248596545079061016845030019302289102147728588745586421341316336007676649249352337712777864756158132183776885376446646940657597430764906495065444948656178723152094005229403656987852764314960461486780814991597250174678384399506443311361325289132720766937153895771884874596079927193224851951041210977241624631302380509231733139160601993094589779723531185315396570975435887111275694059570314092787146158780004793810284332229345178391871230357365139064480181070214231230932334701821021313429406481947092782210938218641737199493664828545743883927369757566498652236953438145605581055456992683297919934030686367611820217407829838411917481164912705801939643887792972583461913071076042056780122123004079635033866644639256563525953927704690849541896289658736549585389343279296239550195008567109872245951315116436837306908504609506985178739782479113424112804284185465260496596014322967329064045735573476671142972926161789720960720965362039372258631508859052238647295035706492563611624914073585211527453610106538382262567537051866720544361849005377776313711121047484439242680004561988503368879902185503707497358324770228157814698925798445912335129574963035381365467736181008755866323205666538926517557065956804447757624203202493660599818158747748110445539423477328684442994826108009154773588862112069101852164247322444140119228346166812166849232853375919124356014722206431846733548872225405577813230293459089436968309410847600722110322573241542095614987881565951711293618028168449479445249122176733583741681393795515125735939342351527438781059119527390989068477820093136000337466213957792299111073961810798757535024013967567177176446834275805042955935760415295411252670833523290756016287448300224025222917544360955893167977266133000581493728511429361842018372619971036966082489508717245558872378663877150242921424874324185374839099536187809331832078912118131042065577535140412281568337661975890009973704143861863554546624801082169626481426741055036109068886338010415973724069350177627121507684372030853066353425778082218801571817603046938159123646664537118794339150687154565809716797342571847119584474599759777583829747561755863560963975394934045744930140108628142710228857378785701076608909477351861985993151088081837019968170650690166447541816361943213082657886775178058831171389108861049411373439348013512592372550584061290989812320318939930327664453409713686594127985995680146959529413412797664609663142184377328511832068745959638849158613142616630313964442440122126893969097825251646069478094276733891851966322704836654173314123310916663176135504109449978209573874172736221211153699410843825892091208920309073748063670546142863081711250058465198564668785489707945417258239657960829706078878166082170539496901192259363136470363990157884926515029939884998966477680950592615304797752344020233533597108088144159885146017580288030491340429634871553318341187149069056791419697686616944424198959882101817651214702862671740328446000541415522618145154274376310550615967476786093227010135031284914806022817386408991806694383395759872867093022722481353738046188221538595055248061549852787589175099219134871083168026529347090665491040032579866855950383716883471849915357109513924941617850725598245212894918138711291557446693022748194960302029295325191785564138981069623320709432981897531909937822157666106701805807903610887871211090254094652883654476891556180349795074686326631579887451616883939600481530008165633696553289777471589099259597572261034270295387574748444623498111303286319278796320943256311769425146001320834059114992434760371152683992402078147684232534565031330756910418104661823628836675880927370292280407187351829568382761060071893107038989858213278515181287253892774080220369918542510472213933037425178109784665707334187932192111959883814721629392348186901987216346660590364655842180229601138866801322518536656340962412018110368711227603505660263154920618128350766305922027646851265952823921423898087815196637516821181497393387596984873340057805593512655876937334512084850577127251297746950910945905806856699485512505642132193883062840853256950792822277546007800404621510129295973721970901427467523922442582894866988514771300092487359611124825350989575864513712170368862551640765433352654803496657049811275723977923769822476899124980544938068095852845381745521201314494424064783740987538893360727154855331771230952847332608623739689184697854019298942510979414549583770304451350538374506119368628237252425377108638453745402758597055759538415971843347496376283751599275328903711299962413487672309356797944246808821937075966695109766184360016963702025079269191898971682580646225749454877965125160142116607954954809813455563212766897552366442878696951912366088228934697152126305890295360433510492897157098265054233845744892666171146154376331802395361022809128545425971399283091478420764952715752062838499799720181771809898583478169529287548707129360678263642011862552994382402465214671155930445834584723372100512218605815241513844633362154488547715184905063378044616873602409041173073828440584697517961959253112381925304906693330532554821010677080209880914067670861014338788197584431388141924504874215363837280408473135220043608943621781764079544830329370309720124467952364822073636552318635892764893832048241724336107414302679071674765068719854142053590164952095672235787446243225997463949737839478168593481500592718311787162868098233402764795285765379965751573599893338821630622175838948851143221300364596369839333030094640945074012562950823608520352227391629227617804785032117923987342949449718558994830600559580697719004621612121011066250342187739451967338394019509937144032675996252622277747531976180104239639012665088815020837280452779640179414797679852727131660106639988263861271308210928952505427111984274073870811154478649889315944395550528971183661775293958757532248142051869733999839165214047406408769457779171951952928364018617227642377520897797016681716615371381796310338908022663120834716422580234485810567335238747560081650513430710708268962141612960601017188644066935022647358027199741907626233627861961490117319045289277772275266869171123360006539806853062093667534384004441925631933326933516541255692327054250604571014687992624882371738901946228538253719512526859815928232308091999747214433805591265530961662685365701947134325356670805167036320445598024734897340537106082892848741541019933182799050352950117522360114956766823792661571112656659919128188220895523014844687102688248337346220544292899870558058214441561388530974400439715147376626412829386973848190333101206267014067510656394187303432248908708330204323890463829857031416057796070076377146244664199606352488994329478264842814043433820676863370922928478820644343888907636905608212106138990402802547932024725380686347289672820719079377562262886145875616744462893399940908933644168156475872877025475743557100333176077148109068475098565551202607976397292194333466049524062276596438765456633045735512245830065955109754435528558349046694947616606679392764051042390886325228438399358876141218479987226233727135129341387388057148740047576199653412706439434742252910294626754932055547931102130311771568842234803705798873730951167377817788987472574758491362377704647138630674527787548229188391765153737746281486744976075018989342032244443318577587260720306750476488960519010107855328207189245922935944084201459147966467515703390452324293345644999213762306522239003002869914643025464693666029866057888692776309497120246868831997851301446031102354916766031425124727187971489883191967872735846724825105591273372687158175990557974307335630692734719944839069233669592619217351916652629644014291132592121523836513129542195585094041131000502763032901904688082128490882886146787093414532468754267831744278087786154074113498896309428798286152680805416565732685692695173877032849854768296503391997708933297009373075647336567594103871052084274847263433845037815342773441051348672706608664917200819584408587076055222025584947687269943053034762922931536345521053931116251218996224861798372085135158112202681914773429352623848636092328275867990145750586340231093004269489981439373980122095967326584210344626486223872798512722952493543525311781939735348849400558753058267500200951970256838608114495607462617144290855484644324197975777128359192017613390163620054221559536662597160932667384234529924088897714995880137798851328216427939754494677552584008455613199005144611192899376511329229123755384089936533824377908335801414820719840644474594414295677900567834118078683472558512178341317260235271317338756138312752761123225017398513263579153818280304137317953382632349932949097973943037321539526981036242241994331508632473875867591413045044254563534860562540593847389273252844073158971399881869096268542807867631191968228811244832349391286531525274269377072144206054736455840310649636718160222857917180285331539470812171139302504914684024366349056724909517500750236242572291060520749791354726385333462614819980476181046771934500646139631913627790536917387296692772239657802110593180734199523171288463175614594604638752316313374248260441692559383337678682295536141812941930441377422524368168106988226182319521829951060050821141722985179544902837139787772301733099300332973133536587513734018578806590350648317517045288892767658843354568491679578351891075801478529646221980902215781537301108337049329761960416149693537557627772148468935451512093147648193462400642032139850835695014773868085432681821520280343736850279507492936753306851871327820174255418025540347165574073300490352628031981763478977559060343953962749993760553014681965941422273641182932378637010299976145080676867627934576471625671628075961485067810175558371352497979319807690979885376334337803131385367624683686393093604757535475596049407442343338658019580026102934906550965476633014624029573805531470521656852769554053447647321096685983373494657439184578258926799543541681612047153980631908436679158765704837867429838685635432468912803071150081051054395496776345892361586809435120719696079098100901792324954350347169931124279627522332040150145780108544655051420756865486625391115741752367687531903506900998652825337605769422446965953298811151471344417798626589128715357565034886471594580523521641645422436318831021360379415180728491857810582543012013278794107718587633679984792560401359035539602629478612845244873795076276551302957845573108216794218103426492028816572214462807526592559215928398250610425971262763448140778182742289508112422407751687103440680864947115394802368483276081080173232427668145777592366787583054560449057160145622923076751689291883309980743135849471362110510524507299706817845659060215579040631388276739253703252817363368872632704708361183669602122254112707034718627821940449514257459213250613190521254522870624551629131543463582259217526622791206564484263974982419477636556344539292780068109820488014501453778056957182389069371562661419197037946791318021880060669267395832794405584963916859765348897281280837354196036623546552154333253736830561390474379344143272396622954559546157166235500460141636945152997420016929043500402319885046129380402745668319079966969560076170547656196704145922940764673157717203493737077516217127716844953922684518485526480053103445885000220099525489839795612194202240054911965565805686013948859976367541441027137819619230452815840455491500086405256882946190531253254149553183070224341567679980635627981934342829911456793754843314653697103779030322519200490761808726115569222883025714574300947581169455664806575114910288129546838150172917573059099624743312486411834149609425459760989424995149424399662176397720824885135054973108949943542832830089811239879582274657379540549322019812066328563257249759967334678597957079670074164689010245928583488233406164988501631833467694901753785932149561174656941376378399959833578098312968065109302347924546209456485024130095899189155572330571913160987968706965234494521090651247311954142057336158611859241821077018434309174225724325357657845329446489370215060316573262806123897528026629158992481526878084887698621248229637896103129587393948202033961139973136356526827877217703615392904062653940664826897261149682819497298870586765862742676646137843439143270118737786512210735722674288267755217143318289645761734940177589480379186377496627602183071824762553066781759755562569714404911821626036613020554586578891132606863153239088870218868977469270887542364578196985475516653582894510375532431460242487986586734778792486439192634353080010598326188264473783819273730992030743209642597462881406152455077748078072573902234145568657646256512388405801942589192246230281040993670022811775477685939656775416341359131204651346987850709857272905755385986446684247739389204171233244932161147728993764445309974721091785940550961415173052654090892013789077140983626648709439481743778865515622808787618356515506797942386361170157958920375375429059957015784791709060535130932498516237152472176861928799485889901485098651090042893916917654382899628697501037902794366674532638455816052637143886706342689485912872832157156121805007818928753823796083093426627326455732794377520237019465432241339776680220407202840716718861897069511121458574791087101490922562072919128380422393066919372262580247552285944734609615849753576843207141433449632124277593318394047157961472582619283630998027483688538277332958262305705841502338880088265278234064118830623543979052873002661279682186320358190950073347907485072978106060069318444761377075486020237071897377361206849611803408669398532227470142803544009430500075843666675655167193109727651698862638093209354229744358421415242624576182138543782706293501096119268334169315069940622997100630643880579609159053718239741060208737210503288258492695445982928118076979721533096977586815445077449998997006359117777761907843022827836297925184779637102312871378109701742018243237477484796126121832342643023747468370300675057674376860579426117409026625227994115746986152978271857476978809228772396901142997681569727652065448963005019723014669628671393603314151059640349614387015128428903934321309855228872358980420198659493326501430755519906708071267859570011171488143867863576905866045076958896638715685927726561899068478135459557173606050827228881673195151403555272158036129477241859208837165041749954102356118282353307393840487686889767509828604960867760695478994935468439527770418313404392451879860992710598788886132929418042078413385511336489598181226336794427562841502007699889381635063852317805422244327496931496387510352723026309012970856200276838221443792127833999857886051621995271106724217368541091808388948179641019439550424494675805233214785639059310908701171434253161962730005497000489127527840225945172459810018769385602763198824227943945621897021246350424962735925247046632864341418555316222966337739826584797797166706421682973671018883014979952815440961767263889078807290880799578103468040724786926992378441620527784042248563900566078408492942044227445510338567959224621969148168514430891930205706506163044673623338581795149854595001020254133939818374306842760176986866137496510963712441031608601400182171845716598800627340440031455618560354418283840656895392500017774431067490044656402359869212507147523201045426454963118873114917751906719715248693022509308512375259763503587593921072880619362053256615388464255865487865739987089174159707585996015838809122135394966616759882881726296184174198054347659170721290656434208450285392764171340188866781324216132473382430901353291097974375147193161406418144056959242902104031324548066577383476024568077619056988832980873480879457109379265502526308644274368325793142489433122748879045611094407526252546445162058719062017797085545218590311872516409851492718170103237341396808294129947521158895712956470120869548374811835054981131863438869839359059315841726074142418742523942894186794015648896089046453635964172302401603094686337442623625336803450489728651198898295791791244902783032505595770445873552611630002558153461014707643906166714115538344622717531752238352603736735654116869195230019902294444228372840965137533910427572627979900665146574312837072417257234029543865238924577521396279361260533890875674393844643518936663863033739386705069013982577891797625651851542942319902597470439298858677449499183742581759271401900488923583460681851754029558077644921582195244565487972580776788384731768829040143112359758168019870335853256721177692477272417338875353850483985719221112083003971171081955528943979872727742731144390609796444876349516102543092343053047559124635668547672370166342035524991116905342838801145672912456538046498039572156633246518672429129031418914927633662835441233450095544635052224803417565222308652958829174381918029598998629942973673076105655083943744807294760378975871271828288544667885489088258661686232338283284614063278928490980171621513648670623439573371629150428489860922054239641449621722689019476625524541158670387551647805507701689667755074602403794986777823383007330626800339485457813343673514348463508807072809442116316311720379110188037957440032704384604169585736085636913166812345554063570201071741365185335240846893503960540661498972700107854081918031465561706863309512007674676251755106926547994497221486367011639118495462531702961855029818403440399347986888884793846174978005402123859642988871354707932581116834163776897138535098994377894737133422047276973648435511470905044948823938397842489150869164680558880037460753698463043998989344371873671841320301505174768421608580228227508593651664259501393495115605758161754219950965516873659591278426520991033908911611890841315894804711010377764035337436541963435703899135720433847219283384771040055956413398096412127041185198988201214120076383491712953631189129559118177057396846087175188316784185965600671982925443247119418774062805610081933591928908222375726007033985214747160147094502220754439804639019184831777940289707586554391522169429614352312321970896257806709158746463409231638261240721162860880699133702165956355046280487187762607272784018978604502682652423649392829178721491778336707691781118838739107356582502015439491731055193785149736146454717422920307982267482212328974183351878652393287371553599768707161264986923133777217199712956041305187959553362411708458549797857769962139526433749210430931454656260174228721186372986656477639750775457720231302546320027607943091558511562640530755985431379944349277561678571439468992256192903673056036196027421938094475294045350604669423254010075332199147567444254233690755980833400961472926214040782500707933509189689991369059123254936457463016273056854174358880531703136806081213883895594324603321065867602571728635434408420463050282511939251139347932591579737416611184725926677730368664463570432173617891182627492273329884651118429634301012265606522840105099475982652859669810243846213389348851715785349882956638997162316949191635258710991889885453485154242328301031336724205917454470841437752310340580528546633571170315095115959939187920522478889565796853287130908001153577467032765793276969852597351676321517925363579591454189574132000854923423705576246435510694950079469784993237259878020801842968625852700870238668437154919151616848244490812476051817322960365459334954890618030032022597961465599666808178861511694286460187186793156189098512934596985505502817429104029072941058291839422661100305872783957159781278848556527742493312785439310081251660738479413684019239388856398831168161867449033666616990474300529174786418472379929387511189646748972118917564384770908977884888144676609952742360652927562800873521671822049178737456175240250554240618172006175978250295128088801992981033623398709169232989067145932896046475188113638352475898524904528067459266156754234060372656814166066919947545289334115632548963089905481887669807766142209170816012455549411274011348028282640329863647804866320692349838550903183029400947822541069244053711528871971647595976405279757905296429864745731480101346890560540511141248846176801887961352910197212178621039587883178250028861998823957266149019451623566924446756856683333201226150280809094387945990371406283647165046222419162159129421323568760950396977714787691725008322275255384110968970433449659079333938019654777445590889861951725353992889454976640952042069507599907303473022395534371431429531112145229936757198383503760881976884362089115069857183391078064130921025226984246637001650822034653200010213369115655367522947980688014307073949341793787153492041659429161070069535667510336860826328481770100555152346066312589814029141953380903205981096869528504513591714378796077130851293475840168567894805647763224898391782979076725993510935500487378956383405324408647295857635922452523551950353726049476404197909042448263166004499533613180382768860544936680928145341398146606598541288238919332526464301634807969780393048223127162944698194658315088705658704049273505393035274327777180656130820523844611575603029971738926992176987155964484849034345260830029783759133919977552104863767200081899284422561925419830545089874370344466327458507735107748071868188397621818328535478755287327468425919201827531532485984602925058225491996822512701677155527041971987031765291719717023998859118810489927166672480078342488896080784199595502922715672559074113802314396851664985491696823839894236412034548360493879552900529788062741993747775417534028598142888456994221320796216461140744714806583689976272223941389953306614562349377908473321449498976329890781617021090435027589950522570887074876064462802629869284281584750727742135766096110177399049012495811989499049316238885661146632514998245208222760259358595380478329250219694912213245988943372981586586075073132405859226217637661758798391989942487825539373945993253191335838251890622873911068316585225779773435689718046724422585668422609917697191417846741252915801987965679164704888165416466006240958067580184685010610433384928940076272479735751076050358055777749506347654958176613709516573585400196455218684056774722757501277627014424501703383578543804885140737999293500198325544082527884409682688594475448833569953227647808118909226763331066680589728119956943332042029014402521422959404166843635025341451337681423368183996380767494080226227276917786859784465686096381557403256620309093945606838852329985701082007249551680547266735380576990410051235639302290922007969478060708623572445652935082623573868291735417339159914509906850932232849987183332979641221850046598898835279455162981670992227339884932242359106653160810086124960428680958655718242873323914535253806401638092740372644660785038595552458469255962323794301983084392676388400331651398126768053619530327840056784453689933140746371835468881244194813530653151245174263889918102831414255009901468870354928893198839812828413829784560888619781630605760504750087996038773028425595963051387476191120995900372211938809252596704806376364509733120899059705493193605852868715651647300455973605183656186898001576299309280512179633533247760102161392073133850388491630629066857321623515139363510752218817157900483478238742950279936575223973126202043928216529551288556688304687992966591746475204678139731251691995956293719568183657840522103213663712738564751375302209688897841727648508142868492545581629276827757066203225986649801981961233359565374389994470731449265625276400272487680317589712299162347695977594469739980662150569067179529372927604892248520762687764553393883768877392034185274430147016100491720238854243766257279863050960951602787381663478974412293615702894993094973872804513964932509821315149830161698199836655518389158405821497271512313123108999409510487913177238183779906121175988385196546917039192350616323059529637945371933587164493102530884615071905738327219490670897306901704515923269508162483338970162773340721990903703306279357794453402956763433118373340111660126332039338884379716331118195460822246525702986785809199141814066488361919539042469399086017415904947888155991874343024014009860033390901171591492453650531310996849196592172710816585820102905396176453292781066077866757454339769946889952896692622570543140605444174678402433535677565147309573423585788369859762610697387692218475637256812041504515067367998948338350579551176854031443667048149733256253149747949723767551719051361361364986395351355702127990758699759799884333086485325211885812748608002161079657704215814487836988942719215629358755129590828501088058617594930329033297043200827008539467086269787934773275774301393419437986678935506570306003846083376019533869162059331015994413330536402171933912824576306310002278625593440283218068074689417991403648584921242110471830738778173012950714682668712075890664233579922754770129085284231540963578264251765665049192924598407919562835145628345530249076107480761851870655999242337478731487542653800326529970134314910064739581292515806670285773272009985345373247800040667764042103735558541665140083813361502799734430446925120718677883628239269971745422897420546317090596508591544653694024333911610040195525500770196516428549773750663311587949929154240361994143579054673298657032721005804249449840984628293459840005827378165938170440101561504500071536660238587555794524485988617775091035262464014585525782073552163541965290335707906285473481077408099794621477429082615704117910665396062106819277723687670196372239465858493969687333952170190607383439287145800203614290143610514729443084875483549460017410523544053175973494321589250842807346800779612169532455420491964276876248121384096369440875306840273930495129252439523979311565663712038775395930233060188694623558611799295338549860905251352944322474620067220132907570573747285635218520974706307968528405765613382339543342194493283783081187755128882473676433657400580645466786211712641966028728322547689050409017087340085607850253081414123162125624086763909212664855475482345898723483214285890301583794954140037094798813851630712175771607690810806824981508042173825703776349127427975728687691664148997706346685260077066571089380396025954888150843151246750160693390168326876176171285820166445109079432695557666264513403630814372320468645866710061670317877830278565237898444318630335360871484806484450267139972095327737999881513983791499423395528268819959643307562463267739322666146535843631068633817992119109912128920139580751984441495722085017863991526306027895792927368101389038635127650658152761690520988157083689031247223648007071981668497647234135995148707127797551389632434619282850908674161446366523608394337271750658187207553388833741786948936587647255744220614531108637602397640530625521788849470632895595697038647627526593819547735609366470595065984979218687075986508300327969262819727588873414676108029133584796561455682343599131910740825813240405415868524146238447649716963181235039172012158859444217037499876920911871819489263696667102866567865134988405573086712066371171608633892685234654705639964046701368498773544204555513505024100770587603054818035842075719428494688706227559029422228083792459864395573503688760870140515082797481982834405551613470391431588321312495442591446401474851479878037180399950649841447283915121874403400188786490457100420935645879590385460983966161940180083567827719926844944439422269900378551029939051793174784988394813979415208864851911008205556950867270229332940425510924614881055449574285549992746893193164579235494509478866010465162679839419073499068540620255979520185933007797095197554072693103988628430233571739343408640252472153582577727684673587779284693668772977048559902932151029065872692705042021065798584258737527324658600192950728212318814318689639572018342873940810496149233838864490400152896353995284125481338676204067455658736863363725917247062779408692666884914553289113009450322995191385960315308274961204612504658279422770686245701236508380105874211697162238198411126878496753148913743413255402631392422386274268792256723771434689776389097092373427720642067533376850081470277506496891051096544905377436412755761683448470974641395628867308806929438209756953891993909085617456182549358267925021732997124919006300112725686588212535184092312026270197323741713516255776793845196052070689155752503948925621981811944673246925096674416701770238258084068545425111738369051261292653431037668380296878747540000493144739885632963434906499165431308722137155515183386702279221764538331237103656917751882548811164191333249720623388180372053183867958487596104824455254815559821283063508130509056173996613641201784996044398916092534700221310036840236438046045655973920292279185887111438541414314833634823872160905237581330827307529253804958396176128020985334435349892605709319442101749442714111458526572533865710463962938562005611022364224298080828005868491309088560030274977656627079479884029260068951010831661098119166852739654232930112375392437225764572723968183543889910170863172484621320808292928200576150564910131739108848544011278179473002276574985341207810545486245318219593080128483495923555588598238948509950482481689034371503455849788352431922019513604304169597484403025646414925393757508953378941978373327553676836091655788946647349959701784695684204543362004654529582443041384628211424040802136621812080031837753400223613788603867283543919905843162596346803895963711368396836644308058283273268391098504218683368811020703270135317352757609141331466988849204366164366386929311635797998689342977723974284101077768276475631942224055214033009351618961479560370970854451335846562210359495476549864763153138245061270550930957889041222811764253784348414081381809183652690160471101953411563222642745678055585479097694122151174760600195923185387793930892813235164115956770612575243376525907065690866383029991745957847178016255868942854481601215920622919120212523226183697123557736910676859229752460501705304455834455836674589545658650374662226504470470390515548310328673858260704003903509057781023055822950276745826268716687605744704229038001262035713646251491373913553737549023953936188171034712620019982579379472099378272924294488927662889783831120140628400138359586957321714010339891706338767776470786029510050240296102847901555359505061264258928277197576514756313528623315611143553102353195137435392499028934367462204104755414051268363750486775282576688347697983034078927581656410086088728017289773264846868438830158804372126539919838056928027755822803018660829004851884975134047862025935504983272528061846488413325796410361062685082300426604416503010032628705518005347378012311580869469069221817815389868574606606340305830284202204224318775374184388399773737917051619503727700510857600773782010599591672453474288284824056490952062862312965194908996522870977344748128205691403041600053141201620413284144340637995000193862016531428288422647886844196871101619866491674654936128368882946955573800036165705957218810428186446680723976988130567075447126675955171960765392261264994475885320073488747590086539624867638567156938044496296399389538009198787791452156548823101036799036457662721026905441831576146744010660426951968540989598335749434063723614692492360945944248884736224263546806954366632098873630715200402431637851430266616681705390876165985688115131015954083718901328961899728590498579956297852204687802023802903811512959803753286843628500225377407427780612969086575985676184175232367011136682915527974340254285713808487090457238776183627645874132356472549682409661850298454210818203511674673729984874932564628527872891604321760703712623277528788309488528363663026286899475247843361473307279295294322866114858497685830952051769373505214699433503634573042141265132698682283175264282771796582088478325834586233810450056064782079506471857826206119934427721769069095041984011156990199704982901061846333051306599601078422657414085930402448598642256739371665085908054274522560551867084945952412702526638484801848059760330075991563672847528429970187889407290721572644130706864687862356159142720620725699208902957272515875816451211510338576929281533747383720474389454133131359006701350320160660053590614599572961518999538749587935486942069334891345976804483969060048199423816480712208115128899833939477947558449652302909744634593981371864212215739357877826698798076284614981711129597595169358257607077208167268526250123370969382836195465246689500875181743573625656812030205821559849649417842936085713130097872783658976767620651152004746025006192425195494162672546961768581116909100290195553698891752630665965361473168380752996374889872788075916774692360325556473235550758329187078654611434481472869416626216727447962682239941713186781803916524099189297510497265523393564180427534775946161406373844610762897085692422005671831655958567664789080406823950528315669062318750722272092965208325242225160251122381097911916046780016575508406952724251001525972116288235470789496606026557014467119683976127236237812468214496555569267044960962360944131232257984270065931432830800283887761326365799660843645558054703484667778151486232845059113677255538333843754122758863269401679492202835230887335277174894337455273236089639725598339400361421538145168158277974033852073329268766298328719577340185924884710816196148566620264548952636808288645014242153491297921378269477182297225482400613125403754176045570802961039959995696818094274353436132812691486058192606669141218130984856866070558176299959439538171457032687998526156101480015922841418356435664270539142729055702342538698623811463746830974297239708716984850715660904319148397587318090929028858540528134013853603969295303008237831545946378959508545641831300935960478605304715604037514715067524209169006036964174501441793310711374202070380253119123052883445684547311438769442509155990344809328217291691008174568029182100272817635174104609513411670616707546074604319411721743120264305088793498642396858872624275926180127616144353241948435707137133566419129126551043862321572743392260940801841025543490940193440021239777542262162624685074007314377325439270824727641885166647816133172701703966981128610120425257112170279850664163378339614959700150791235994514615459090816806974138497098978946272765864325785743512018257102536488942074833693971378679280031513950257248273579157878162106511916355497652502733283748966496627478953164913878944361435586726655859546036542784038850350379964958103371454990808000381811046472431677314378453015727699926003031704644089080458211402066092664982192544092179265438739305061679245304443204237572267021996022912304840163029992097947022597393001789926409787233239687538832537117868290840084699511390471309760695667542861869332503541087954457398591770025222841272319620859676244455130355949360801912087276536322640718249898767961918943755659401757928809535492170304019260694776459607538715146162577273679169715958702738213364033376882806307700405482397746558017725328285545723571766462707277405714711384739475832572377252100344300040738788386546713698976100917098728049735140989013925854733242674239249624151470341480826081691872243201378052797087269519882844321534420604324195634273890606028377831514007826926395420621920591573571681556250898550675126908948403518910458758862524968566353887525708229186868699627863228624122994127819188539547453725578839075274639906661334168971127116156459852195671090230096763323336221758952451057460084253699321291090886092882228015848597684265058973218384415394642353401426682841442300586203591391812743515158582112800486008071892391803119059489162152302850512160701540521352160915216641958022855822785763110054742680799169503529031871877778348602520641441002069283004535313195716422992741789021350634252914739891631677069866385928006650430690411043881425255156440305114158512281923777141683175022034070638322216874565174755035119851139764392990501077564603625072581981510046633483381113367516854840870245963291485813887202048914917881152386104028516227785164821110657186481806482563162231998856620378704241179709113130588336076490063465164007168099273311972842052645163886444068187571982978094584426149918007311187594325617634322714924574637062985432461124373304053528352384432036825707921513826382358771227862568229991141542886376062670557716315415153976561332170303979816607884840281893512803246645260095288989375342677037232756842252753718679458180439542212036328419027100054945304386510993742144466073549915649826270519410514141965095139420123460000748674140712736094402283092032638559803999911210797196267271336609466545362639135193867304661869072191044675187751770545203326332537726093154300056124585999041220503903591832961111384413567790114992879159270133212113730771724385690177896467003099165315119406498136958435395048319842983798251936810467353014052825926060740505596263306698523023094049630475060567577534265413161934848347949355442252459925788708414537519118570274744380644087257580111249078836209256388295729530569510551094659850151456848545123342368988007290154392718585556060255193337944860987334722607644705253349779042612282616705614533394207413206267870925703733418352236386662713905170247290809574292580324383156046393344346398977417579552231102836604036256739176211115423146173991916846059264472472645025293120217889229324149779303739446166100573346657080497130099929258521443379721751288975496939680666653170279856234720367931979118823017124264271891970227387806333232337489989368832967702734484930707147435460347964521045636067552237121268388987042955388060948712893593566610596344968452620028222968655634486707820401906504342201363582772456457294974244183143039470110831919821594763196365007761451294444327264573293969089686777109618133280024124454429604618289013399959602848305745938136282842486706530456500441518084557136193601184174090006831704270791467201891428196689713849598923551628576161430130095308945585662160020492110482010102704597424523971992058682081893284178187076727208179390202189434984523253166891711701130252422692217663257254913933451513865432807203760353821064929024707772256690889818147619217798252815644448744372961755500394401993391249709202681585015813190852872558293986197560296474456696290676849630424549769252208271551860312108114657534740810916867139392250789313638371751365361674520613870063046817249014657985283711068667567813496920605503521871436270622882161894165777209150245425708035808757951982390681151581438862980082935677800000636965105656326878777852092654220846059103032084254290195139827172041776489041715053584916527655473235868769932192452703410773518207593404925576613884657881724740712102786776501635984485409961669705237258459734874223439299047698098075730548760271174091864941523607076385988067114882579666391635199837501895169614614569345617024985797432239803620145324819433934580116386400246684099983604215658677412953902945371749449285115529706400043743837950300563697372070738750056287872677004066834470754849214324106292763588817034983322641272445881139190252979446470966015967451814315422051202411954073552859521727488565574085295963852708575934975218999407709637101529889271039716441963886053402629271071158738880958968102184124710732064690651065307167851569675821431388507510147454989337366010957168258689764753966802051727420347428508131169747593313829645398911120830365312436276342913996560847901517907772505741072316698075091930610420646511934603246231340209254800315734200707815862726770100984333343769459081749117001799534245907697066447097834740336951224552265425445060454723932508733873541431709763989292417707613537164286395433190591044418933951533917688387189723331633692293225006661849172039974283610995657181654938977139561235170129590246793068334888946654894928827459335028068101197674294534170625465031142836789716646428369168025666209861237884928539675858953158250746360891466935737156598400422295814560127525962027686140449243750527185559023487282946446463987490488254496069640234137360972335903045066618096216371311289188047909200885670895227558219706908158193217675169710886735535265910931022150617860498390896396896444690475357961225922878168805564345861100172084821958821944696380773655653528550711605677414184907950870177683787968264886272462342554340017421779273123236969170726137367809687066445749871238229333655177388441682761837914889177810968164076401991013038116199455760809944001842493404880740944895430642034628492138630484803373655994449345618969850454591924302944544619317852281032926311853626814410023575583648702882896805962069158635298085686890903720679077523317837916609011508519339420097829596337551757993942162680728888752694950448843647896931180629499249279190481572127489943111834983655031051927278222120481514630179409545305216663481840463035204590942726513715254832770452843313058914742105152220636601949016065587867053573350960774416516747428514882964661362463244563116337147168059184643718939805764880349634537617293841679790638235635790304670574491016831504361936315061529677659270079459581113309588032060931175660375789897498670236649025558876721289426159555849228161435187621090526256890440048236401857705607212036956551027187412450631020307117008080875798806209252963879146918376416609261147880060860844936985200985534651271736906335272878773169074974096822183148672277999187568684936877818605352843958408979287592166058200644430172864800234147605388191855900268314413365462244234250770140476896268569796402792188049775423054963029897490214474611295560245301211646706978102865004289344494119699950770687359821243405516572394489756773105209868609568609285473021412237486710511587021001003444015199685176211637013773940867426246819734765381624363678719405546006785007259249232522099466798722757185101248267256818378934626047430720602835003312113866029670171424741933871285120193563237060999627528688820883273573509646073431496274960050919737897424323795976005980217368202152255047377930123451717322272192781530935782727852871131757963273718709611760291738339523627602238724757770827479904508696127315478680337625803694582941327808237432815462519410250255866692914348956079132971026424901880565427526467444311724346803665672855011456848991552535186520923889925100929755782592790139620097579321438621919020907761213857631557166329843380316826165585825295212769220076816512283220161408928317652570146908754429954116478296536740742255072047878150159400089108485444747823536889214658251806632124511294555176053344441625727378768512122466332345097729154731960018165691147346801795163450857679830648561282072428581549091326451554583096387229346883695827807182864523903835654342176242025950032312449145212772816754995710174336748010602649978172777241915886239093832372623195677861633196565977021895897800136870865273141725791379909329881678540525390465266121437206285175793577997717954280038519003241685548129926157567523894015904568220361860147738519761932927586519612543369898433783466168079912613827434619097650227663214417015077453124960154221780626092479607778340416115473398390448579743405040370799400241422402581862567441940591700753206661780921808604322195009076205766551538426425762853488318383221758331304699937459070684249503190206620500294970097396600916781024738375526747968751971063410562050702335677327473198963433327931026750823300322522599206241155358822336592876377977746159147576354161223551160911254454842820452753158370919464420141324844507743917287099057042004466065083748684273039469544688902100846344213311232537159642430424100913296381265920723927319956069293190924798499580679118006449605588171625829866674084626271430300485928596715563601760441102927102339251128224029394374097837606861555533913936801780318179722468876983104764976819091227826596607997363159635022976710541733920926890852810954138347977471815774905105599254835075985897495906967806691210730339082319481473204386662739908390220197332945424736002321569145447702982062064149382733020038942904889288020155617522505410839075163064491207777777479758343832114055315438806590259863392365309975674212814534857726864608338500489831964479377364803602455431685836764787207468240695451296536397785060962564533240772340872151370580753298972644803738785100407396644697276343470625340936127755169051358317345243870524446985035678778716701784027178132955210941530254103964793971803148849763345675089346612775066967299847981876691963362254069596660097007862233919248037243889415558747230840773818759598229098635511386518462603367324902325293848849623539698354544499094247968472446135656539123598321087018500612409113108216440959058554812464011854320474729956281823795731713281269305690506347824464485975341556076849220323952111815789919010496943503533931722965918485107055381043427981285088144290316647582150783284176499044209632727843052644081902030062796263262280193950953652604117948161951581799796759394304483879459570116055177477964287105328165028754569337708215171647023642404593815747219234422669844057717215261064195811618598967083967176283525442328382182829922284839335076963300937118595816441765484488910117997112911007326383046807209545704211452743110288984530859284935018289465649073575218939634025164368299155391141995909058840839238252493137808788999149896481105961479847537400451888034746231636630807389215473467157717865140223061491274094922171989528151445219268608196979203956016895036642150052578326220856590527544563971178705740768286627232180691787500656283766514593533395412317920459142639275541801229720852526194469877688470292970330087949103233178699705081973884618767217949209525294188699520409598080823259924273801823676982388861756870202983329309100482736425072816299225543873213876492483272919889074081460172731466294579862942649495707122568223545958668377221701744486993303802981222846148712035946206396281706196140953862685854734842760305129376214049302322322566495090398491690830048674807921035359506803989854547127544651199461600807865404216964936312409719376497779559612289603473291210291828993023996123469202196182133538903949385763143039304533683091178164736461369312568320550817491361889888537351869613593865201010191279322794652150904591124826865517843078491432940438100692477142690215162307691625692223621862491655465817058317551167599004859760681039443881809001398095235261722286275621558897891003018740428695079959854417261732256189054663019292558204676007904841812690870256036778707792612468823881454271036392407689959487148657922564791940117819727528935531681617749585899864977147586007554821212894190506415343815374433982789048984529797254771899817010527270872709009049632536810832448351434762841102022732131668286963462086361626029720453479430598182401767267894200450428945161190110658111478780694085932594607710026230607844061281322707594900934019410647527245820324319643433099921157992560125932777043739644889154956021746903931071960497630020761331892403042390609801251136429428386224887748122591924952013229664646637121554680720176950285035902996633384202124135593411087144270555441310749807283000395480277917373317254226572047204338660751039212670160053428460244200080344008869477398995412270999749361151906104476683016315081189928625069638132907145107521396296825142412487017643637264396139641574308961509294089818555963246525896435458677462786458070592633521419156271055742307736665250793544448620431441126613299911526585658006199854879791490213057169795331935118668756889874897515643270729502407472451548184911307489467345442482264405976598301796086716615699088846500524880140118427840358719642127310487710310837772935356862374145196848441748311650553594707787468172782589913173983546690593714954536347631277091085290263193512686313022464465931221411009824796696805760390195484392505659164741194098400624458414432790491393819849716010221774095638844771194539814698310122303990147217846605959687520411906533504741292924171069155951460286724994181399492785297501479215457189175269705454328994011945700835306738758067210047246996003867708427248097838620653637884796764805903424917865505113002067495006617004992291055742082193138879213475381471355143250422393646475626028402498032051207458615510605133366281669219413242440278643176227347224593606948973035758194265969851847150064028373486366730829307543947816997377792252071652613262656738283463643563960699536653558972204239549688496353804957780818863715827836631678991360318389283235977370925504046240001526250879503636508846677675440550538901894057139038822517620370089833874989172440073652421423231211247966378152049326810942774896700518284448804239751643046552046213151827688328768637665717033533471232782242344857118691766654476960352628075186152575793460846825813363921786018136756879962005209233951450468596679125097570338301171941445335142847055789776775769785368862973765914130134776500766227236530991050035640380057384461825990652015422210303523864274333523072568247344398025331317775874196659914434594557716121052401341993864197098593525229703910066476618396734015442418519953739090457378901125820334326482943400889652699951747825738048076977269774086654320342032629138660073721813008434129567186465279611504654112388464442953817147649275582309549399272473951087898864454623827083323874651459919488442990349200807750512505444762585107783764484087730724927464361857991431912407092655246698728950475553209622402357791029040328493653116719542860341691051712693486645229249650585423736374660916864791847875229917164499782831450073921054491866712992143927768071105147756534821431179527605289823960543542838866796513256271223834682185470205526822461824597806642624743645256702565989444428015018130356635331574235330343133613121767573162508297241650082532772808024440883671871819954313787452875289035113767822465808917830675980745087702639167587899972703038169736436542090491563989615770923205463930966562558305189994022653421100917374776467194670750133994845405789199514740563788433690791808303974452031471767655124744401393042217571896222858908785467513502714215052556728189033062688212365109743266909100605868247369683870505954930147044594352540861971934686415931807992298388297667590316421772693526778428276250141709302531943369065947175553379105113203413907814108736013720925062605665798625453737376305001950798230996423528439157133865117768174957435110406126357010074227038671019824483344244087757763274493762935475377680874677674271188456428617198010204299832839073157533120053369653302423296946485346978162953883279517274965334165367985143050155816178769489416541969488243793654383363024929900447047476560631996625342616993390937112593303233706201669673904404655564921092545524500943192043081032461394628546485618516049490873011709846952486724472602766016085262883395450390352652798049140411836854672436025506958946797919745338226231580273137055362216674985737980814782492521379354062154854426446081394769163584980800146868397116910907311806905451490679054166070947457416228179360738168364027487089322894665047690953614791689387932154699345886251225062475356872217780067681168642879426732262113852112868211721072832395474787669296377686573272536261707211395271070361765690219285595715183221619926453819691481173194667320035532868531718392525494442866360235750156971708124121619399028765809079497935678764482680891540970097912209273430868688775879018456337683276894332513230908761064672325592933981916910749226149023194730525874583007140425985614050327856568049569947695673427541934260675294275673350949219908967172466002459545641763913498644821692933769141411080879660870307671169629658131267744532655325808048478226117796298437881738998843670386131146690348383801430633053996720772467115574905503957455469339608579919198835272763078805231644560603846781597290675169932724024289395783888328663936896773147795346017874408154228077576271508325061777943068368139899085513034632563032480299507762448822139330988136932927506654782503898643416530925616845414754941822526828187839581418834446557791947659626787596614037566610664029477791251865778713557204904066160033414503430682932457251002174602888707808859435373207911643136062313179580711694939585491573741176887791145028655845566644692118053109961286889096251437485273650227708340352590533516348121375099835489866182435640997569444787197004040245882165328015668842014498976087137637168410335726704135001950776488071796078742072876517406119327404686471238810197422987094947139404753846919597724609918932367970704381123883993574803577330717121933126155560098545970486043476470784039417963696467404420207403942889142765771910917047309372784571646591574335073247167402753611850606761770095086375612123826425612671810185982937313647475287286095888621694562685894431778463966982213836607005454575689822864920635250591062536241556596073949474731467290215210795130176282466508178978605936269442710094902153857930567660494508630529296871236137911384703342996422102904805204173676299951061754477658730883810700057215371343268631234288790507714007863975782336755389992260085415719890292863883199112215010369810331784646725642590580559152476452937757308061076077695076002078701673101331730457300677512397217362249216976650787486608239331144448398363709652870797101311932402237578199157846451510829916266426936653334126521314090953408212532381067986874211888969803280493525046091461956904964472519331754474131800812460305869783266525152174160433507509888737748027735938566761141585897182709614347063328198033252834200910353062348959296145533199070285263452494941788055896286001826460050050789881387627568247770515328680735958140072082220382638834728660703747832022902055882883617664716765023436531180967211655474562660132112478274477496227129659425920404071421451168373274442787924917073173256851810825145456440603951258215630712265346928219610253810530995466629306557061981293071279907594747336403480566358296264086426137826911849271642016267748034279679104109519647430607926772481091261658669326567519202921878854333807662600220934740951320730384823899551284761387650045345399155118694736520759795671267880544122891393329334195364414127730221527086913600580570444872538037722628088894474131523491376641735655597577446948564649860355800111749304243069200434639328294292405531715239054607504424662046036996979557162062478966571826885239467581897714885300756031154611999906131258210709886888433853014535089832563764620170708204901646879567132212679098630376450602489505396510972359793769132375336365865069621405443791610685352960641308533755761141133397645657312599056467002558913041760267556351463960084643644338075541485596733148669422074392312976155486088698912080013836278633003054820747318373923662020535308276220147479556544819130962172087379928981807463098814963455514065932659546761495966184669395419179495889486760635199652698146097103274218661204597765640873304856073567145585829638405503779355942146371672123920364828525227248654917724955036341801569045127228537689033970380437600353463441355454419347369788040411576477580310671239851213893365130092491339852747960565135093805562361530754451519020471131765105226623849764402838154450464394762314045304751712222864333287186333114541065195709007202117754607595203987259785669421463136826350429048866765939791874053127714900846946859531774953290273426271023553823066413397886131668244702514519505868012620940559569868477297157090737210207224088200796851794658812678862108419761392968832764209652956151631690808360771568661882327687003620705013977650839825920781110277960966983171937681907119276749851176465840860491059207098213291194431070360629694380177301067498529867262716172307451304094877707145638507662682072723077466485114711223014076925719353055658215117840638789075660116281015402955515305934806630968955640552528062432997643824548184937663043058461328227510613440840546520524589016425278201195323760264872517405891477215420541284033099967486486104024698253641489266855426804460204353590560272127807075686866715391653947450347009227236013227553966678311670942094383214335513958139953470011569651048928397633180679725217144880043923525795665334280345437079807101167741229200171388706867831841078604730711735047174735787768495310381746524835714122104673796548996966190617867860313125818151978899966756941279593219610957742602910756360870640049984099354334777468776432623312370167633103429417666597790100260800215677546644512655375273892047643240705151833936350155894149747244142065758847076405828549449672013162403393124831622125423803994854898017370670520932242373326929503112971930660816571479155737970565052903077541542062154229730584019007491905221560407209255293112140725988320515527856580393034642714227018553979213778307838260377013749359128863579076772468592216195758610469342803738619121308819441688591520599348742930828034225952950605639791152955342173219208624805645338791543172781099785140313702947719798775853198571619689280789133806999037048335294251349038955690101148454585582103727558629309436650255948110346508637662831104000539041789998952311731253910034119910499417460048463233152061288080462050822202605103035416567671624365593578258991639195798500921080931656035556514880052202740994519816711337723611008077872543922392569911242238678546964689661988402420599460042392293730153471007387278316633344257832148957643188697653622359616910927435991378440409512093754458020653535716034488012685263959348458064535079207018841330398483576149668488648972398658323280231889335213987317178874318264876419140161442857805341722142183123022239597775359365681771354123292614312720850451277668938371417218769435238837880600345932872301262594799926308445441313932256909607348692473477563776021125719708981039281353871172256952288007119705326193213229961407677572325362910388268930733615491241589566144952515958645897099779073645603719402205393354997575623098128011612103234688846245927617857602894002882374329049432825309375185656304062765383621115782765435370975203791749169099836762445217920362946334874811584516371263851150744682938230160222120967170963358065160035918805032299372378575371578016451871762179324610620827474356422385497127199492907721870350623939477930906413807353271766628866496507081840429395495741107861461413757547409609629019240365921740734402310737315498860428199166174724303461584688038247824076749029869669731697088637628979084448905088904207896074767264957315949690974857854538478880873663423075292416586415450719626625617388938884872860442912051424701713095698533005519043677594145871004719362480574367373198278093558948388319798540656553802606686295145564372316936649414923918576159239564689571390141096429722861684227554899801535527681465817836666813934167545630370223410106790393875351935704045560735117728176695576736634309648373974885599138662011258510670637563326544919842848034484143614415593707488924959567590768715380402517916278285244831041892451084578204650975739783394121272870586419322344255868455055906400715629651992924797690920230770645670609605803810670545285620275699224128939956298744847733363667847949774565493120162680819521638970125013551063146901678465003250999723847836074647360142557756644324533944125005331087938672166117363816654507932255347715995236088922770265393783741544546548810498881360510210271865205958949046768512355622126532170374955786942382707472502940717830349421107432196961440464681109789309608802187229606681603052896544199387680590924608773384280215629695796014741129030831438082911121549135630310381398598510969680288724055290571836612820883055176728752668937387465751880814878614947788558206785760306939223871709365634436714338757127624944653465260465812526108521649313125142532001492190380735647152455735054047576185573195382149665456592762455401348007198374151855767748580221263280014032961087991329380985215925828767582262451858999627828813880624412606926545631284548001307554957022958012622125069693404855234780287492308500112277835650146272465336214620849643019445048987027591838776891679927193181708502088345480874623825789025649657667900050706963681412789005099538360949453025827849954412730077136459781950470077040222686143200806416159472571074363604272634450618397868907644293565269035273688921910025307920440784149430653888952405628743696838711290153935311335658888262592141727696802329894779735557771946578526812593084487735024952399309156176489599209082244217070565445351589888854577970750843322638833592226444296582559559138824524445744725903296805878307432496490071833778637400726034410797904013369871098850407798838986338424126946789813222619145281357794918532753230819364760329035205526877329100584366787490198107624190381647276096129317927956919188209996935780771783578264017406270694052327351843111597817111113551312228132103136284969019038553003210770052007170719285890036173559197250968467706612989577937180294962656304432760734862808648222529606905692078889728553287899810509432805429915977075309031543766619659314622701387936048837515326769437629514730286951432972698294515893704843258940495333235803377793961451637445991571710051702470926412645711989001377609420861761300963573152139282634405945105631567208841315697116877068479839357766622456515064687348598301735547781833124599605691609426324025136642571610427221009126190497661135099081181784342149057728827690101958246752815335630853525747790827113265118141473110673992246942298855534743416117634476066271975007801850806081871490132894255191120775189805327418572643009547630042608205484253768389551424120565437035240659906879812783215057225570511088289880864708618254771859197086293466273212278638868800469123881727928850835870891511690626333964443978980427107378023336749244870979358438520711451295328271957180695254122478967366741213608492283901174175383170051981029090612709746745794465992336755293430755464031375604328112457907725906852580206902418841527921240355364692294853243371881638386585873896262674161509605247840415644546702376148143445792940664289180526783634213499457546392816417178932594182461168077941574932870459078231174492751877074255112583654389878756370056824856915950138677008467349287163370921325587220707789348274070989680771772495930028363347707182894824736805197454795191763312151072779507779330998210289751943071174925781858861676529413500967450605260582670627800507301837173932408120786738899521301874580165141849061499718618531938070224627375483845800313883586268338753965006444374732426519658222554404190614703974143732857403236455442114067186211765615363442231606860325246239088827955277792905861316939372113459824501687778105078974510406374486310851422898539940704607749179333193573503251952578777481516928594575037624918861133791024428687778589723083932465371151535822631826159139194155559163426216912835953779522253905979030692718548253858970414090116967595549200494984435084903747565768455098303378970088662218781542694093857512082045833080069040622129834465704106338490150999392125424693515395402599036658534583083864925984784435539323960749681136275267567358073807657744278670443683827691214990447728973207045631483038905796687623081456552513572651984298040062843736527148958241833832707536565489136204789512575817658457727985861502646363779100204915794439567650921301432694806093682847369982948685187788051044428537571635659489757683977679995414200041432225320891921807187744913347063290503236093590537088905409313056573082855278285894587658146119732110782416382195085093766621054537757826750759693186036657920699056187653431426754734104315164798914509727904284099280997467449759107105997722317749690722386211282417614085556755216983999721751780227484591422630406850806920448952242749247044458370318800392010721271124518800060089708446065145377717829875950923923054165318896081398527319282569062771288610147937620612972225583043214112621815498407799331737472340087224252179888481715335387466123603712668008101917667257601926755970800845629373080209020061131615982524296332008736494153948474707878992059340463264219817680676488668198388621982544594584300228524808013170446549269441987288622466607414650576255011361087368201843171137209593161816334874087452927175408138942119572564556179933290553528807328479734096228854760021739664126647186476414634788602101087405245334962509466728509528486725196599758313794375661740756051250512910564828207702622033807126638427608317330885895119432651794466346026670796770771570808323452124403215275266932964079841278612285394063420356825765133205166975205099660350734884921393477273212486828973692060964182507541366912719315165143336699183214096812620774606205999724133834001446780207283699547927835800338826357947612481521300643407124477921367531729443665062717783859936466458147059318541497667576632422370737772927514730201249230228171157005307201547242403148739732012559728603186952394572133869796924074717125994051272969776576333373660505805106743868016834853401832141846569458223656117549165610007369631303657970131245521825736514387636587958143377179281474422077069598825059541814733881029257364731340822182094974840153234647002224468027391251510517929627982428343118393994618261369126022343660012779220068659621772268301461694713920448330300595558483781971521393666590908765859148725991984420254939587422108545141224946303882086873845001488121155064090081214365415904137260965553165596494822541841976016602438666363215464946077537904581826451089565807768193097546809264977727228063792225128561980680428992352174948206675724021853047052152855219274892690727462910427756135903050290331861128209997463235327254054431717007334693481206708491620906821457369966420856753939032382432360219130522447248856794732934828244634189256867657229059965656420295269327724349861530257287767832209935905898555421715307998257295880610279252544267536347103928293476365456082612893262349599405662970567520228040908164927053782902909924080225854872283403527253722025503246907354690318918849907240530425269494228519938590269788622206635003597139415365943564545754807507393120945070479312587645097141089800906602963898431724138474084432183428729046374643062752763335896306066794913054379700838140216576025273931603538280697714672873702525021220875489919008456204855831517735847002926144574633674613723947328874975642750025362778048763400490027533611436603664428467655718434258753546907994045536817581240987283701114369240329189763995426564791976391910338522991871692304765845078123705356522847156942698617727770007212651803228661675146594563230532992696834900895762236536264112431727224382204732397455038890984717393860586040798549755842081330546088534400044002386150065975465836948064588612466290968410685049366860285754887660792730202980588356692160168114183332245209258649650992978133061530648452840399826901327011733420104178079716729038295597806352216949443054884665015758745777576756602165683027555272762234083023634244364232000324060823117251875380228125444269502098812439141099758192339708608969178198496200113143940734958634857698537852074953808992240747688316085720354893964456820752080752965782915061817077154627695058645208318829777061669617357163578411608764177335549661597444484653085809194385687875066549002745533644081746695954307885146639729110860873387645821051359277007213430198791211988987297299739183877637637706109282559315069784725269447476708962055411315239383106839379824374107174739137917601517546679117337599929482133658737731196850234696973808127136496989683073150989169677864495396313209891425798225161253160590596939984228521353434502877254943484459985302654141876778306503337350611116528253019474149940207030451166668800750625844850084368159936630520666352299191731173962747977015172252728409011668815332380583589826333648292462037604111689600107959251479535317895138864183145658895416604835767670576862327114472491275640962000470922545697974338030664837635461390073120319574827391467292135491394280100768830184980306978229660330574674185753661443669917143891995720837113068195178752609867120309858810025797662660513467520507534705260560750085675392154181372746233320463122862973698532199960367112709324498678505791344680420758644497130858252207370381890406858977292015952612995043807750953521206681167407902234456309310169840545981339263449836512844119817407765081328574053366234855668820921427742926738843793212262813889915347095183946397999680259187384224271859099600856361478355486437845008236953482674637378347595832858226369188081651494804739096650678495381283066073916016960142827323640939990817409084253117549507782894651307966717807993511504672731633986929628141271498521407047265946641191692785164344042385962693517807194405978809040924418845059462371954782044473137807185841218081013634955829062985087034952303685930300726681705325525244251583585826986485330750329280849200564408366486099981434030097137682010742851234212762050111373808957826745787130819106405720038352001433412820189203610379520618235682138795791037617031523929608836426378758289864551067674943258195606983863433091440192285829750464011232853758589771143132665635177621902565141877888513184888618234905008881736043955549510314916793804825837732174845028022172488004960280345787603526084191785465046860103735126763174798490591511108844409882282231667287790922398173445210608956519900812172870356924785166029853651550145070161464197040158396224668749013015958789780150938504715525779194724204514935454661142570350076560826233953551928305200473881846389213689790388955142374487432557290891955473085108680331934191865254659848772670449131003471385673362295972704767596053200032006926862840110087766330869900577043258077855582996795788151182627616853848274879960531139938158718894096920444288532812657395457829978808543381918767272721141560408520488544290603353092009813008481887619303251377882802776697208688281837179248280725524353221113306509450548701791173616197576318649623425389288591486196483304953444782470512920512081722300760921449116030021380074185721086297139050279363213674978293233359632541012486044373223678641948087867130371009556411883139240538466995538246221975594253254248738285455024881952400328983591073398066473314314278627107371670577811215589044815585645911324183897865959757076100136100734023971012478325183509413828885856792491206144447726280479497414443521644458107195452643902507271166560013697532832675239067337929191475985128741186223197657455763280006849112636189321288043627190567751735379225097116993322004977537147171104613214352064222392125416460908705420666065289042662163324399008787661659539416864924241011241320507903479870679724465201244309296787758232757661013098452028033228071411456227278076758867041224287893632402321947759191243578548024527816459511214316242211578051757598497648082025135934713254218890982184344709120726241417725005869733145920504486381040844390984640129362058002701110989659616878471396380626786928747181631081808024492068545943660816359625170720966924834216558573429523979829885938571670607052257924121142247033242190654056248483751089735084187189566624627285060447607665180825750731267196824115551248540292982595376282060731598149663501689882603859097523433568653808367795577659780346036927847427728816404218442983399220811405140685194728376430781428704305739238936704591225301869872039426024810128474031011349048213515279118356273262678564702690264321389712695823205858296950754019476554692610155311226298307289998270393266818742694516031539093448051216728331111092336453840361739165056835828625002903171547430038983475677305251209216256553578752753450830339516413081760072505235524601500024584730218579286157893311762935289418782107221877116792609333489991756178184549719601569518326566709282272963229879437931243571919169694893355937245078350951166243124995926800184310243911400491757809892322249790419642050623835106358266783284533265985178883042999729477661655487897982559134682413421946562930640589475150074250832697588770651512648138377904942116249310395906757542838918718319728999653538592119950600146965517714321241501033201399998597360565272010620216418770333604513565477179934765215733752609446029388114781241970804226112605668601445379183740882842512169717203335921338823795239401609023454840582464983039835734930804448149417678565955921681710424837171209222054012918917375576048077689204144685864813411558207468147377579547527641054108886100103830081230900490324758931412541795167128263576375561327426949538224518990110510812623461087869400944310472168528585790244136618071258203822607131918330187255618397768199337667649333625719617391939212405186458752088786815091622713200033069203726394782790186123601492891192826341861196504438699683745604441084182760535619402332477610294926117589632888739371707131300040351807804696374429259077957755643698966096709229007729217387140122465225996614393369321175371518901638845632536929853908960370314256345566771986765476225460150595518792344542548100587631268604742507170731252029228269693636581379597920194183839484655297607113377740581486295923269462716553891716476413891787247272211194870675578883254583748068455706539942153575681776870207775260133425816169772832627275295153519569562189991462397837112377187141349268476447788799414027771659658469769645494595691282586890647084346362250585554567790774583282732098361699821942549212329593183192014005853457469128361761072104474318252847506631949441972383112827915255395777828462663038744978487596606091867225324386944604840158020882672564880661156464960090992322771588722733805081175138636103968633217921501430524789500326464665744587635414694787238754709946067833287387064493553519372756992256030882646543727242837901471710936984091346318765163299781210010180251108294161927329941021369018266253034306541820288777287908735142400180327247816504205992966161071709739999083982104543495816988437839842486023402699122020290920953393731732579405730690782945160015811887821135022240052632140970994844561732558891427200142432166324095110211372272185526057373935718766693245922045441277064159576921502545887307936827793758437048540663806666099713350647737276909085698436536116799203761403365068568015527671741459720120533914519567125893653522326844819135652068188494169885608680148188781714742464145639680586348492534102907098059579108490063579157624177635511589444821301565027843316053673987095655386629533680590693118913693331383808452114285712574855550990690935461988328582430871350635251590964434726639516567218991085698281932688153106426705367524054563554410820999995831385163934427501766310663398331778857977979411492455773185831465391674323575551125408028252472180482164400827327891524896295460928339781911371720948750386402716705814722853153299619942843993171980364460864840717686850669423118436438014210589562524495590960031732934905146855645861239898275650353943568392971508563726699073740509469144252016596480183106284927908636946685731641432497890750501029467174093150750035131647617897845718744071865327544729915756851451255932129758134633559969253067653401418087820490442574638230353191586753376327956097621738243875658220172013491786806886332081679904730835836068190178804496261559422852020214573324032702454479446498678986394493553446747675871984119547083952812940530119338809701911714022775618614232350879694078567256828414966436046063383456488160811303102219859438081494534894026944534409970476009586421714707345923465961046623934592115157269520546986243776405776291716801618368032897141531693572126228303063362439135386550850582509799845923969647404479974598820608519382004631453751999133581940002120658001017175713291104042096706493939073538322047840090652636581553865563147352136563217972923846041364539293476372554615481489083524110657647850485212022276713741812323665086194666859853770929419410444563488881641274452466003634480019916136876121010274415521677025002427603576346917407867403917553351503010437789714500513734583519693239228296766418985473900196389508340633555070261947268950625150841225986886528176582043282814743724836798805868612755261900115212842797373795808205328647011263013291958093253228208647645264366131839892376473569888152237134048236934149575497754453342319155621880056712297709725462876912292725664926057894568209101388205754011896404480576908506849832807388696182189208033601239996530502776161861166153088692406324539828212365173569254199127425338231080873505479973102010078065110227453598407895586226378055324337919857291647303752024219976058897572875910511950318458263773324680811296602656082159431237655140674590260482880348875056206264973063203881542614883738874593312610961217192765763443636077697892308150475220501205033972945523146763979632835481427439442094634933839069131476674560484780260294971721249435455740985903383999494738085084514568730325629527348561037578359531269423000762217709140171462662910964319691459743384595856202904624935936629367599193659080761768100466749038937486843586620865937609593272884317636687898190626603813956530197648419296273245521992816013976351683101014472610343117092778834654761521032370982898409106232514894433176486084166272314794066120991659485460684674057394046920353198477499513886925105852925090271210487292357987913310624475610748219955910505239639089711799077916611821711832558787342637715549891442044003861064588428329374211109188166777633188208243722042374262299328886492765964732348142724268175198204898639698272000816941573343447011324284689284284003704077153565706184769173817648437356514291313074988113848458406614978095600813475056839619520751777189371953365097288271520888720435445482747901227221969827446277824069749298300278401141176779047020587650358206807734095896204904669642840045726536060375625144511758048662785872935881763543782401896995672797891548148002731507186163975962748361443005555575169886895732626051939509615385388096625782543152354270766877265815004350196510835394012861013951169797175470485217055244952282146363253499854090730548120808874309400314855874396067715041183890164107650325911032198102926118010417678789370184005917621479001501917774656746464646886471018364520060520509485654604979588686695934358973620632360738344233889203381126020296800792305013036404277886241662951328927826081657569078797842108493753362617479065836693211383076630588447259218659499878735283848075430000349684649340963603499328628223947524623106170306058932802258084582159583893660262726517797541757385872576454726590661680342316831191501706149513451260221703443698318686591451147302146500911556538983829687421935332715505389717616983745884127510227082520249851928050260659015560262170209927198094460993154687655073300553468294439010813029030176322669938308758491660648207096671262715757208491579677100559215590610149734482016141499853376405866501481594729797902721215990413024551004313238426368413708798451903769453236576644347460431245077848595404176220642181752670943349695750434905985300948183581630969619100481983825014704850562712184135762691715957991359774914889394895865272963821318979770853754252211167126109007359942858266382820926767869268180324887984811405813639461306782543396379807027420756598167348641232568579739826884336241641953170944015339842501699526030718358391928658486305089175351793270836595266192285869588958503171051113328196399859598602166361027524456349288681715667441629715083410919211563341761380637424833240279080503120440973229992457048425015668278999071609182044945938392554319462127946541871531635223125375664818363850504354832632766014866896760300810077749596516091094415890035858467139646797631213677341224814403629187078746484332022269033581539519696310934560721440035092852050702727301529396972588993079979125740101592628991170051192083473529583995385327571714596359803037442167970280171907956398946705507998906572158665350436607033829247771987928645892668300960063227247485715015191205758775568229154757267359921699288270579017269979626303947632225432377581544261776406399077495543193722663548139652407576318582217680629077347614905751673440280934404946379118240552331275767290966315943422165183207316175665544571216677713849406987570598973561435577180434846782181384949307432339339990285112052905654470698143621377963329506856134889187583083573665613560980595323487990466835023549638283295224379757596823473143968682422692072977945185842509253296424066817710428802823746710713394487513015509685949255484855326378254627342660061968009524358482855314788045179143927169465033307981478737158401580031227644758063482620400127458090786150274674944921404268496354901855859677284441115543300770639638034401340582598500603632679217390512968489890933095652414473139055585208618499332344999632073503295683120889060121778099393866394566344510468151988928529915450813745428185230621782038537049043567460315018956579314787329413730828577155314564795179898058596688987221728871080420431310437699883104570561917548522320726166641288241846633569495948805340553514375526317009340039497146771329562086168853179538929874877120957772637945913903830340779519930617013464208313117788021900148408327619256433597176170178873990596850699098880325176724489529824951145836932114873062813793497443686916227737753049710389568882291802960750133294680280181001865873490319662296060925360819195700053209648293652922685692430089915717910795982120453164898560016918038773295923660125239243681264196833418341867765385908325453990237377937098470463560078356198601645694346488706641742022442001543215588448436809292367449615759031349562744856318777048421850907214543866587850850099589288861963120412048177735193476652700240766938005431416473541179421716405113926430418406367246103751555226637026572892897979301625735176271353425306993669096750883893287981011230160859649107618026293509453372120427259199475867073475781546700655683968692346002371064216721281981162829289012042250449080706255785692102622116940508867017167643258742936926446950772372389300553532731115070992184763425739364358009396024481310777675379618363026213431501968394356040483397148313206507171112748717574383107596644050102833177378062660865556915842297498313238691785603138433456067499433485127700924423877980249135835626902869582897424834455523565927767625906375984558889149651169582740153615408088901289217169737200440836787067453684213813729766030870057569429527081889427867261611655156586414660740493283503414617031575506914029511590047697954399045692024250405677730030157246010779247410176678550123345725934395160046761557974437869093782995744258466967308584934703863928692545060714920840535779783743779447154167286682174726098422743645998659704269221187820839855910363409086786813666437466236275253783059237588680779724548076990782176883707295787685276040986707110838884772226460467273848899984989343780866722150169236835981554649558818623167467325207063922033191332254439836278224551648235395626652446490852727250964582464347883748364172787660910036639557897331190831308402244555449427039487252722154266159822002014240620776490414440464362789974499841233274426490843501025586752960000929262476788325698530955330652092967604229279644090302080250507939806940224405119661449237833746063682278150136708931514562559546594679513362603337061373744856709249895210894734407976021342041506704972670160493947311094722505151603768993290771720168177743941079345925688280488682355780704830970842275508821714732281797452184218670489796001972717972948838716740236548613562810111764431264608548739035033491373273262170591351415184124521261765537744788359648828189070848781454834004076650452392270109160853334341910065159915273914514045102876687084341918344762345109666912716540030690511472664217292774584579474047191217985676760567767510735229260465927120994145200858853597090315868685067920204274026388709271685968723767165041199315235258922527664732610894420253427430713151740431067852437494854304067064323740917557580907367890861547460664641842096533868185083600748312873874668003893524239321027634422265333090014660614365935551531505431591569475506405306524233309668956558814584866539812794408179737575658347043686494161345789152359638801199997573813302463536414594031001059611335414049156403827547967527011601305476806354852179736066159662993239876034252448603261093112041857495802750893029725953677486396704413690046472416349613173210922234192864251834281741727896839102902794207139884426445718859802203555413639206685858236826344566549198316776495052857758791177279003999834719084267021748458159006138905830789929131459720657888995327927948107900102399022832889281424109016300801264078507393897038137884889297733465414714319482744397151786547402319155097421330075416052254816956847568508108235041274344841499146881058428215947547670086195530264463563344188201126438667014898038721553186880906486412723005399455370802652751222831867702793735452311683767015475748176689080663895470754979136829825281289843998406057278095362517956735772517315093455823197916197800787448953521336076132047413083915986257416281365135542939981710936378310223194175246586131900148010513774267476991436931535827716782585122320354621661210167680889968739693159302776144314220597791628221441555961055793913204752013960423843284697271665540018034920137375928212428534864460529707492930998548861844944472147612396299597477733392535002061653676820274413221586458823606265860542267041714132221555597303268455618272871125623292165479343713895936354142200243408475492817506558800872591371453405849678252795490829878704656296658111668167641021606266106446565434315458111623534740330408574270021060881640925859674488233937556832790061289620689040227886585465854625073135359132735961047949967293089299935273746350397529397420640485480674018202138038214789780289043796320419531234799916570575363351550183786989930039056621100554639925379948881876974880416503612673165148055370887488950468194636649704969861961283457789478617196473226721985032794552807090529727094565884816287417390288675577102940721675446614298318699967214849710293648710336809372393680592938845281062295265219941781777448155598595020181781037665115856622535066616801349291054273346601481743440031903575529416724804187026087165654673209773135284854257757300927134120919109341532501719162369742288254792757835858025423699583458618501598063461290053092075930162162699251396481739033587077939449753846723234598529602238894217204700420231959656664316305602606812774340936835156799844738885948181731810057515237571317038794489518647176679418081596984133656890196222977193628806374769795304256127870352743014258697238777423391394033753459638661753586725802920906378141082803947589081142989161900300793428103826389107390947320031606675691812456187532392712432497065335603223583637314705304796706094208351566476501542726058622235092727709022126508877693120498350087723819854667632676555156639575753679373707099928118472872918992051598682789961800973028562200125599369099236751583007905898391084958543594535658936527722054829322673449121080607781558319330449909080179735813119449758111278416876727686357419472262937440252857218807099466664176382008347110263314079989715838641639649840955971835566991683209920586865832799456300266055529249037565530011030718047784357442031423738004640032875827363151505912965964371403412816051324547139009880087027762535062294965597041797964143150775848694328574711648555420999700641813674878564976527904906201317114330764890750338089856642382819933746322409593518989548402852983466655857291644573912777685937931901511915769227958073390729762086705644835901492074007898366271952714884169219058043287825668419331958249318421436805251732210051942904977447277354558114932832919126642982144476083919584293493536480558110107102329702076735861612543471601299358463994239210048454451499727914329560911121341567222457899994311730258413938718317516480475987234978978039837617324356590247109892531393785479592065783960486824932700978247322293244845721425392307014846675360476629974461815606387533012584759623627043580745334787412314554746396509634472580397483223134953278207573196015999362084971513950772065851114742438763220511485994540337043984191431367880177898054912595834480222285442984902166051038409995219027761861877522255485962606825540235473622593924771491118438667096886793365721809020724286758621549340874450148019193367139040140185428753924873590101674601621703283299609391869467121329123880330500458915184259493373813008930668977766764464911562509087121960102886228969565502900139880997761617547850982278405658322883694048826368384974863234520312589452903284192045600721346769029677877529804217647679308629693170290741274247180931252301753321730893678138026863896372530998361342105389798954774801194580549875217688701183068762498776950245792796776955016380943213828795604862951205294687420127786688527098977972173690191048053118865920043129151076146353222731237037538860062291110744590535581243920683563081742220754757660724605228378760457022819892756884038270311373473196532036285526142192810521577122210496881142460508471626073573450878910562075465182710493583603566817735224100636586085635368500896048755143409913337748352170073262434762960684006260527867893257601797526621043889704808631703112216826436729808052315300762062483392323584234126674112985033578848749456950522716722419951983202276428620256201200865230912021446165913860828386915086852770344504363754187619189241538821561323411574839487885201426073550668836716659139786147102026997023506956118831925980728575625026222899419704116729932721045761423073292532538466137362686178114807638513368505236662253928414108889472134392735555173892557461069596362580805540546704527879994429266540380766479382531248587082355056273416027130956891953964958694309757467732082735609878845617609180052350508599853535029791934320256449826188606938618236230611285200707172616967271460293984102392535209077762805119870756172853752489220267779623186058460109054038878777937298601487441053979813841518303443633724022281056607727542733701536391730617061535192287369488079544628931314488884652529269660702102824697415553949308126064007998473888318739183026473072298005596106981887271099554231040878522477504228711609031826178896068174547145710161395332942122096240068094486852454860461345473643537595765202891406140005298109493348632802930483877593903495807999783317036437422907736303050331380709686248520472401865344199679744476862595619322174549712500409338780167424511480530113225023704156465223174981847120338444835794273072481589443842958844901026018903303021246943286167400211199205627103238565574486799487650717165792593920700972552830657441558603075965411628190738109974112852774463012352430199530318140915483416168206359078713230186073766073418426524712375103256469699190883736075887582873655274944038344349725972939900288030079013233059305416057403713529618693616146052000652637337693675802526938690322030196600199222770678924486800231947181776732510034575616550112109061047319398377185873233274413380521150589819014460175982524941323190326928814256344759802020773358705693828829039809902855572001609056735010605748976200134954059004188614225815550681752522109918883363841034950233993758796948456879884772341237259846506123791985915490969051022643629367870555148599852784240840889707572155076157499470998153752542102637675719703512378229407753554305592471641353949093200090846498344987762894860016250594797093505112168429795964229299997049747227406857725612880663650954385644756824270110165251182655959661155929306866253667941844841480037661285901828917921901206451971081290479096099073775532705044713626778609602869699930601847681799646514862823990389841250313532818423867650809183427986073845845486184458942054808756549302398119814690999011189361355775076363287327592728274687968697609126346415571928017349607220193526883458476060231127643790127344335819692942633868458435048422273882750862312775573743356506835728655474620878727313074782809030601875105947243074072829321881982138575652939304992077437730958971639979989234291338093571972844517893504973092540662841628141936228795580175934851536648040029478618161145200430323219036324638608789286647148053625247842921585869810898048962267931785411402688147385311418112626838061781837274403109746156937262662744362546797645329303382069679136195244948424716959226364775180947862633285971556019123642367782894188265426823089901551592733157243088275678891140272691261115392111783952724585952103538704984018766856983855914198297282879636470821319338404424160085004394274169773611555197431568901446121347298883343473502495687740712638242272543706601273465999771678218004795577745364511321453353539477880709124759273851587161021136415690727072924726643821415603392788152261739420158905124858297902979508465789005120573139841634278978262211274512936306971476807842190084467383755352238113611581987949936167524318113516229720588783472149728919247092921097090209895093649901597224794757284030222739345138819421667294262875787164969667709487041293225514843299772819431014410336463463593284603271735882475617198585201546158430181401882853071467435538945615188460907663656225521913104707599447590768597886002021356007197241508655672696870047796912281029237262344775530821823758516891091400714205266426688396703602989053641755911454553177643963047354111716250465707646397094839005087282965767501921154941096841324950405411931298375783412726792275657149962718483909014541695534966235245376252622659690710131940940760828070416414428688190847903325107190767950114070143527002045276115218422168285094000093127367174446167858181336367365365298101151463545959620879789872710900284011658523961563607586135715310699513595539194380793826583807577619379420935092044457587836413447608936984170984196577809443199995644362133790966503402341342232557198758977109343697538394438233260877604510074209075916131187957107153892576120669037758402498158397662416638884490564343506947146373872780142583021571955068442210441226555040533770941239564234064846836087228461442403126872716311183565957999491588051021512783078500567526731465495514541593006786671397020817003386202668300853580543793065494417670105712112167359219880242400552853279980933459489041218637116872659325612292300242121914835331572128512816830816442738535943087701833718888549391014737705519861021275401285402607266855951691713155449723818421521667566761587213416005318678810914211204702412250257882603026255257959975019119177946065218870582556504309565938959080602464871509770660209546414064739624680012856542202540851344715058797940587478952913530524380486345152420051391862451798636088619051057834911930190618617669992812226565198699315856394696050458776609563122029661213660598536647190983663948473574257470205252947726498808718881151318132761513804532317202846706977246867968231194748232135345261195264002997061380844252922737016844709707493573671240819722862217648915183685560479923202768222061280712704795593391205795730978559382706992827085817173009134554566988435669833198923531043455225730149703775588201754268170119011042973346262205477760342931368994213479596627277483971510811298686536567935843473372856060304298561275820890591035282090429417790933954693799984681180037590085653488087683471872125882819152747079892624156664317561692451262916815205840798540480857237572423591144881061183367335016165755335478033799180795892005694037648096771288653987909330301049722671937759738191343939681946009780983184518069942015954943742468774181070872654257521863528066348904587749394323082154377791888084247250893269887131437793948845829085466766850606603829080475242435946445516528708618991906271627301959690805016910085336658259785093335237398317896063659400076549075949237257868316135091086669744448147368494094721537352073632165251090983477253255609998917926112601536013315630722551681165415245990713983211196772096999989908125736621305238955229829778592647723466459717812925285251774586810721169139110151440722958966463441454938236847123373133734989964027274783213501527950419831790307556554235065564403870187503610147314372901171524684737583344389946409650807801393169506686885069133040075052279734863546332275060096399941753966752067882331934935684751791791386953219092520216932744053287127478289806213316700721795800028425606944837156890531192787787435960499185772517401129226980304680832742462856316621094773686890393340256192179036803418818852369226038441376856509027441694438573258592582216388821061137441643314404425756860452365624883225754065760445000506229034966082263160175282007570219854368559220409032822705063823590901011887058949192882491874674757500080755674130311218195036568347727534543532639483589534862366923460117078523009145747306099646320827584518115751902795284697427037662979907386227650179365285154876625295685936067261862847428955873710675676331366380777049968794903387056616878433499277090473337640136423137965229035744247630483190451057655732037730411179709308193010765543252447250882552210515941371608545096594085716702126756370160234006748019580927718613005632960783388743417512050472800752059606157178552811046720820439338387454883491810471703282745973839034075400206848247974705138840101879715123665683575184432727962305496766191912573417150711163115531553985642430968998912296347882977762064400695943292705110885102485878353163825432441615740044331074294960840949507455498130511050037997599340364115376486433997505405652138070887899778707190398877224277170893295494161194535914153065210810221416191595723665301752020081851408570205300129526612613712913433016239849220936482172002501887007719565688307616956462905781675096106574878712023542412811865584310847975539521981956943849075753426824515179226184817214935675664113985272578725694971037789982865816214873478686845779074551745732736671370326180185078557591553458286591515827793545142532425840096549532504385273081581526392577800394221869548681453340792363551168099920353426325216483074629823173957492278759333819665156410448942611218118255691811356949325184357050467882716715978152449431206857813550229459415584607399803520063853126874222330370022849296667085927547376641746928138518711423977558062522155350758960547795560127973656631229937468788112604649967523648707476577828150236189863928887414830942082752688860448465590719301330997995490431045649566987359043667277029743977160419257790239509276763944913320620594383891122612405730309506607800887503750293785095657101398219806688808591196306911310786472579945998302716781146901173333651749486752939029809165261938450361014643302143986664316993419751029930723113915300734825993392744262785741070613025635451611069360130099324470564029391896549368211348170490188448371724476776713938922569015522564340061444496587674802375503439170933102409718821141315283409799420761847848292228905474728109518329397338827076421312976439128107116904334633258832733314396987543112426199941031695309456797112379423040489787549219834788873174178040303624682963294713105062773516622895508105980565898815516384910243987930042105023816906600339571762362918574401636728299773617120140739006425144248581336829370550577814298000646468219359629657966955952879266968461065150283531516370391938699084260249905406640600478307553435752217954159655387815388345948296841262089620348156830727774163508066375443784322206488443624508509489242895554646032082305672898321326028805535161134583401508561286420628390083081616430559404327189357175841885349378310472146480535090103556044465917695141892712208448891234122180759582966876136736878275873686252476081212500829299566987670205099042967564558984202019176268938460609974627447734347997608394716499606326009520570386825743428211892826270675159059115905543437520114392892855291655236974995059003909930200320786220456831597719455012592904949102993375728958687058420377632121647704159200356145256708793129779880692596071270217197440643379330098815246298320683936758711048291988130250955572151778113702883217214228710652149262182695014156197904978298305190467728107696185423828137284585790054773503510497017778094248945875707545094110523574644784129002167160561002857792318593232195183121061327477014592595101791580216799918357254648325656837769720298812605217190299766668151680317137198719634987134760339131387460441371925590571464315107442753437015732812119186182001820967877193223358754381759378145882233151592991481207526696222980580924759248189487250498352878761856179515201769226844365636638650905764352100359848449013228823099876309272022914366731341037946910020816703718266218334626490663434463052990281718045351629244367728380834830783760446005686023817765683195050679530834303749594735423768224400447954964076523893501361134349951937492161749630548964096103634414629912105389157534224630305025374498388612493755251622653900006376762090867831867023297381881381413172283654000878148105281407738495760794984864680537304726128351493200375266768532507601138474002457883580971308711177777127971012084329669713326744391962009321019155289182250948014267922476026161034893191726191763257717689338896662774514977299872775775906317400003473424932368281864292693767175832850807884285233552038117037512260940061501908902467405127827779426745035815950010496802392817623433463361798190283992021313015204431135697020476030255853965640542462851363302417575414105028734985476733712089371553039998804864460197896794416786202804238090828815402755940686515435421020031584292284167716007597761566091335105529488144774777996611198393659725296197424030078158711777863256519553202903949306971360315801008256322430393969036379994493586396207598998833961066662599073288907771375939019365338739127674234350564326774809931288395931045922103293742059195407496467761866962573927328895173379892238528126187347758424562269810741646595470415777555705450251453574191081718510957789685231656124171876987149173205836850584606407919180000036834668243968809644933272131346532305026338103780005466511880544438107045654005734795432281238984256144562752143066633941666453032108014134867267288254729996930548757455922778795909471580046116850645401438182180205909425687898086073764408283913593414832261490778323943880455892158135286492997253015047459647361752891298140417948605711655121070471719650560540460825313500474728099068383099637209657896442086848971316515676548865097105743824335272941680577626158448410344274338028029444317345553119168211404536995834920188751903287981051027967406745332439803653688258060602788977864671315081999356071751936111297689869692998749319324350653859579268484288590050803400614435046300623694930344666677925223542121232604203363474897795069117772665193144704643194031127822566011380263954230628358343994939283508863573940996771021033998791782847831083725663737345888438814013378517771952376747003268412142757328402795170879729491451883967182161646937865548081303961034117669559346522929236810390664908040998700278783185658054384482726020589555149718433611465554715032599173070134600390112586900221647372938446546378425485309276453002972567280679936979894339740204736253834186028943325526330580896534585274993386017282869223983161133720624907971615840782668611549091072919286420324414293548058912512754227849981962359579634284892010906591565300246108231041903817842151235771642602903270299908093257450553707242190897157359176932862857395966097628224661254491569214645606875597358146554232508402796105914228203074418456278096071179869639416954357176118284350715618362717783550845753804624097105929593808177503716986088252248088604739661713599371415356671238280237099791030460813870796593204432241126882541206645673173300421825245722395967880263582242607032494474655870848003656367802720330477137634789339921100871420478960726048978395504634974749537598657000049194931095931702567686954822600348237242270982376059092370431189163560008862219712886158424958194855358737696388444983837998818736333312201792598142624451259731279791544573423121520899220076745168238776524740567316035464845210766931926293552293290947507436062733086855027100299842648612878726304137191839950681845065953802898468707668327561195102129403003794337624526701244875450124438742972098828111083126072967224344736189502015215697797881597614444894326685363773726727106240308776928965733491428263517314219607766388585070331489125319459768746644729950267740146981912297441587596527151613538493626617935223073391978532384048615444176296363952350414324351663037863133668118272499176727183169248958010507095562917806576968083866197513682345576608191241118830510460004694921798585179470254632995485702877321521903343228852443624713553984589098000384867081821938582111805488863791912764650090786655178615694209630657985336103555977252463167461387947871222217892812155329433619701940060058559579663232627857965494244360701021251772449541789854694925702802258868251058945789488680586149840533301618969289893546223503142807923444025845634262478589058748367241438273144045839835113793449900063433327947989530883761715781336278368404237698743192162074945946973608589210314513985694887286399136067016415154696557000973231178821311133081347988606065975135926476409311297407515374027122303144330523329045141449137013358553547385807383581528898033452670500516242892405221509900129849883329836645270765009627997375560592772710253248820617141556283000260491505694781712073578385800034593942361307502122435832434664315521476376970406581672551295719108259524572263141823369932548438687313026818414384408835109849639467301280006523260038440763186978431888639748567057669267730292174901010844239418856817416060385672307806143606348399199150594331609830702480868876187384682029548033802587565489050457016237325263552545076909049752710963614729007257708987274049893665818781371929180701117972604310181982025338845615032629514389972619153286294633969405809782304158064552444686081301919019053484798321634492267530821968403002382083155289049359669144178706365760621814195104228380997424226697534553305710441039621525042030014003250849897736953521707756953773577563869020120614739568313229490757861822821046250999918303438446084580590896658456572040479398235140157815301589714222409465410228234531721203409473980445718403443735528009757183305924430122082545185919464800561778969571512917215910452185178266311910721480512017939110486497648842368535884969606095329951428828074739214980793957242483680684427161267660207756699598847990922975877648762799634430386303968128736167562760138954386429627204136595635932563011798956596589002346623861115056377177770058038443150065156808707710934281141984945988989161563813591806401047983289577110016212424969210992900789048947057285494110752652813760849367426000882050009479850782476762276817759622033671277745636214185771332541117339148948484555091094278959206120117867400203510373046102314553981192400980214477680703808724947705959146697847954208897034461371047362189871800007692756953496589582441479459600479694165116097325895329461561940964317433595213445516147752818560596831052247917985946803006326525751983815709352570560751242381573133429578880104397745515185238195176054355048497819136166733288400884376861748608189097880248717605589327355582564787913324163208885376856789437519644374801917766117032549144813358336329577293220179080976201553486040754425834632432815929996367161401270769912943555303876500976096425601263435599357121593121965339220570402510801440703707853238687916972157277100817071384036631669785670100550348646259943832819276208481465836428514021139972536855960088004849003335625317233213188766206745486745270281894244831206498752389043788294163213646715000822597093323630870716823095531710715878752959374582854901922795636301070138461742561915329694898189788184008481166182290824962183162009696587874661128777648469462013942853173887672401294326669097857731942495049980726589856344542711208536730924657097611251634003134607326786567739612418957303847515184748287316161963460362431776305111989476539019862885514523461399382567284889847345200114026058550740708286971100620717384337404461486077883040794556362853884655375912040823287982284044433895204461207572449228101617701610462938804793498405185072089339750625926180705901655730529845841256135764892484800398376077475562751027910737830945579064593030661545862987297916497559863914366837049490812886361022622577054307892163487764088658753253883305273861513700664334163838298837372291719371504260952623780058433919662210652963269498157515259715654002244626318202136317969163431033896354966682883277124202804050233976702360385838471230367844373881264552549077309101527144464062693959215907920385194139271589898383602733133149605756025994750453459547137643162720576740915813312184310882163127944587939824641774372181676246718044487675925397953906858959613712669438696574961817819347672992520326523812219016487588050612607763643158502567276007696265072733016138107427420404737172837697368503885489104549258858625033472967331183904559933195880567326725681922460050589840696160271528111706286371203552305556671293281284007201233665880896369442946323198284916307250693485022258326250448676071812596440789904470048019609946760950976635684098762516695477103089215677552565244830545101226485452067382835191348227853118855536704428980644890929520161426609392930408104439522595345856783663106909627405906744609037705146032168650570187991445408384587048394684328822194322150268538730348613473427316720991588912970629614261275588172836082515359390476625443057341863281438407499476360547260954945831500259852145447386182072076384810604258257846738235858377265964442587214775914612529924999131506496719170078998280007893953014518017862067476930586153876054539428524313066044149734087038382316084443624961048169633712988853729209609465435794111372350500021165352554157327420863519957270694828772786749569391639920501504971260643225613632530307189561875266115347469234735714844852864505025080896710185480890295669624139062263254777267808085662697905611881380845431422536117839977788788538028116326714158891432499999268318472926541836159597670068446190600857675626166511136639134070155325587805696944399303360630667582692937579249645469338905686878397817045418068568284076765297320416623542406399087183690076240228750021456361292089032505971401591724182633720995628853512212462328939163300278982485295169706691023591559088367023617987182967592371959431472997405878019302422622410752568674597532058509364434706906928517589860892270975715022087635407139254871826644259963807005062013349535674052509461709344394068459126067335596193064299012626629585561592201755960932210605972621048366197833716446451580544456983776529407791154848957158711422123147055669948566703878753574860400242390167987906554985317874793647782586210305309426574059932455381474082700519716466384372179416096198149692685354487956532417157044881232991418429342766257577948341455285072434242959151152787124882609189877048490222401963438037560278192740143942155110747389342266779478789690620770609424906947818687648876382138568500897859968955376346606878181304538107889289705483598219170459384548785938957799297460402957597191195603543420891533290426154147157083976754488512333190417988335734700540116170421304929717508655612661827206169954383015828983443891978484755694070330789535437430729374839463234253921493883394240881162153124997410374775054095775564760448646555391146517654154870264047998533368185620815237592133108827735516879963099141868722841788695517473917436263204564400583487563647009965546462925583538652772421814177896550542078075691404364060324023191655510241642942724560515044495904006476469262052948982137821695351895335280740929423574703611326899252988584715488653372757674516913736809272092571827427531660150300887667808865019136619284062317643480109896121862867556560227875289660889122131701063040141717857563048541596339186597371705747436621280157833933338840210305837528916384107221392996778431324143700218251770485864949153203962812641303038281868183134266335915637769455102954843300080623535809834228102987992887537909935519917965532195055313683479211736948841340096519511286710113789954355296473000535684085119006607856066953968346568055794232698421231528878386261024776574118800261528249416394636588826517518810222400855641064770330226213848900760049683345534974110970808072598769546069773060572924038215326980173535533130752119005277016044496689064634266533623076168521968555000190223218614627231516947148601595063661768842772634549792900250303234684221381337767262491067961138321657451340696733552297865816970094782478683221359926661950025928257909407161893923925444950968588183044157494037758829559932803665359673305274752023875771470468062532964188173621527489351407297826331539966440721915569393603810546482540365047328734716164516897519846679357834856976694293093285701998343093757786460203165303891192659142716280669507242836017486368609392986009780750538216842049679773741978249405909980989769319173065412927654109867986277221674869324650962385918140215266467327096751969802315146224460304241837517190485537390633506974297056857444643011903691776139415999688189098126396218549366830106691029402770422598263427001483018294466710367604589976599590270765652718207243331457193314992408627909773110359968985168817213603454847877768147457682450388629266698075762248820519130876513890456533916309349010501715308468523464542774534526946462574415406528053552956116387147535311369370693479538221931455416989447653135536727459724760933292042864368293954494965811079454126148763080693259954352265434098021556779310060336849568373435968313830679476502463233820219031584670191241649714797798807288671586400419576972228889703708534125356563029398459087906770127281089339922095428325810251013883347430168042511713145831035896237506088168675792362833410202183583304425068422662757674062591944159424799500257601280914006618793927131906452731712993330826313261950650408832332144781820617755916543466172826922229155377889420790676332357245648933777632426904216864301836645375449006953457547090863154230890520443145648464667500622564962978101823417978081933903249477899359434785817042815239308716975783968728378426581808953674839061661492283497553186022894434865506026916999809858740946522234966189610185268105178529706876806724927252747167232293065639825531977839839573639348634747339420919671116986530571329626605331791244592358895456684910995976244373124634733341805605592316409975759722129154660431591184274129764697441758248037797380220600472859025712196292416888262154381731693311507477988675335062944685623672312913696495747014432416492118184159086391383412549278252412552330441606198559790925841161549712325070661006662070780735767732217932669975881164603783895484135782110245300089532166495026901716294937086009710025389188346260633763585937889679377882914262602756225318533624023943935972486584459117086781880980023434620715390219811460935606565785282677656052790591349942491486489708718920004095422619058276242288491026354359624485999373783494223637206998577536042202196990070980423158362548760477317281726556461802120836180374074524580334221242324756306650174293860917267053943203639983151733522613340948487961477909455013731284869956435161961115532082079043455282522354572323327063398955642981846238399955085698187528329162654400541543573458425572443827454744244432179374101002071065703480271081174653201446619567681662513695885604403498459136001974756239606192138712897126454767027957774746497779094616299363292691237558838130583007911170545857482469435373135897683995002261183277894526973698808179053416900166951517965754628748209411764726801075859733779482612374214651871856003645010765680320062824946905377566542827255255398298537410079215578478023382860641253165571728896329935777856316927502020078199022377932863385646558070008565914319675921161236880459292590731785134872200355167421908052408532003410664682434197922058683960546512683546295003206080048680320977256186366724462501575023217950707219483339061498326386646738298630490590582328538819783816193444520046507760534879368347605215378102866935574644875332686631079983382523015845501272122269948369733178585197979598040440379629869087444843641567886846264115888595621776095966861235972979556828437920140235785819796456578785097182224055569284378001416310744048143941459377139161063784903944640899405242026660342991618351667657353805494395596764001342616981121421961660630204328235550571960158721511778131254272865426531391602477840262541075304917075804270827354032095741598830579784702626222181420696861194664518748317019961164949299054197914401115321696470577872302488300734726450339097268766167217280201123664428163425618304617535497985442120583134637187895212140348000710358173004397856682695758797124135812992091936522483304877560288577463658645238279286986239300466848818435672879548233006235360077909352554874193367278258322714293079210032753302136299954308229821421391921316273181994522889180523503626819237010656976838488119791023597168053623948644745988677902486437342154887993645431989643665763280354256448113098720829632768220999604982023251447772177593839479484179692001036740907576484303090375778146366599913501926929304824712334691803704043906691443339171365555057222665642617225630616091188030071955934621340228696351052627576623915931761513566517195863222205377475413254274053528342894671363411200301949078153634392878220690912847532990813551858043502663164015279814169734338196477440987094371324027420421323001192985735078715773531935419401146054419993277762644023739006823673569216150197461932259010345151094623307476474461052580725314054080213461953782981837029694994782399910092887652682077374327049234663070908855113623235038385342614358338230166788252269408884601516173975470919427433238170205332220141482587350419097275173899445341782909727195220128523871356980833954384125497852813701803217207605316411934965071319348328651226504034431352723210368043069364084779116536571202851278203570759047566158899319095130734765535659948439823230964571329365233033327248465917931462023065932295280294938843175856463036179127173120057857169716035364595845934924049297459495201451066072866574992477243980740769227873729025250157548177988518989772707183327237964127737973287512638374957926612966118476900942362134232261318879567495873197128502929154086773075360603156323921077252465434706174321127303432452012226128571381224760292578492775493954176257419496330896495413000941695509932002832073322303343675728179323206445569771900097017314201651501323068279208518506282188679181455474399285819084362724714776814617684618183232692103624171628736810668461350814506608512117873603916855919372596514361444968717077109228750186017539792807850372422339648408269154008102267577539671059034856590010882381894769090309419020335347260150883300868708558835018943284298792621838477550090508847487712409700249797591087963084044087301304469776386857246920118622640055931680107950137421590889199328536369449699753277545913207793826719090718462805061207302169260794660181262248790266545867552858064847215290043121825036215878304508497134185985521859537992870180097396666019876717067673249087859530584517430226977538576735603129888285319551209419468337435243820129892570255276511141866851818295365865516027343887848802134378407845495772062948325528265969594918974230484858531141278546550851393455578033403204973182655547720298212361917949811591891166343706843096251506517016986892056045157107772673402341791230834755077561065500443252867342277757888858523749912514031122670064084211104496385493056398308306155641808774478418283932907659548219609733179307689722296306510024534113800761431786043682904369836945434190319976547540125398068110820134108731151009277468362379217944192378690932111357104627139644331606945490924404657192701228749759556594928257731669643404813057315229466200757578481223574087543124573517358972010028752867054331155381089988041198667562882889507902726910005556763576222204154378368518614523252456490480635646033945657991293613894731532955010083756773605637502703192728804372963122498560426013088957574838564077022128037972650839783479956171191805704164374962441312626525303758974149265819139098641734766719965983885660388935829866766563077530560603376003827538419236717710010352946144579129805307425721940581329910982695706809035605554388144189054048047544310988772980695325864716136852163832147811439315170275356614152335937091970240699500367917377979228570882236615830225405532316695912267883545944990891509520091270646965135508695029231040450144389398309814991868641467286807186818754813298077879594365322788343770178023728991803149083301141917235965802283627692361248104213770361884675755553777840024278516421485335200595350348745496990121391766504860142637568483810148150879934152604201507077261464366980298423258021821196841007809601261067796502937352271616766313583582437368325376924071685668400514654779192475346205548774992643127111727711159801405506491547221455917513698348549974743381016495519317481604160973257512447476099365098543573003597673217306377001930401188108526292742624164142616293147533791407345162297409749105022053692707759643281391021085199076021232941515519356935196381633323646272805421342485520009159938864676743772363063402967833431912802154286464053358712072947648831681503691168729482797215765411724597387407076219105415807852002761377030347233671389095680316661782023470452602923862811308595826542561171265298656680018614707061478437254037641857487126664965076610262521377703998878379591306380147104848572376840341256397731697992052819263039438026028477916990449463961131437773232285471555349384881211413673133308218085315922682504507887600586981209287004992951399395973388578197877975532927226398644982549389253185039653133021260199267633381174408602203328825223358469257562699132393343654134430565924665479630811318959039002740831523374448921470815383730232823468855105984211359879560669592438226478813468929591256308544433003240132922368263033533718207391144963409717447376778566263405830511903569333302035234895296894577437797757067744172734536363901241630330900131047267294072388469243307081312350523243391100769489053426565342535959494746280921929120962578447667658669856283553205994977554750628697037417911634810147953000459427600722076783709614717950746863545276171960638556544538641683391189666753634788557503289994412806923897868238508284468846221526770903149165027377468734273837771148419444288542417466004766159827575334721155422571170508504847887454704782251471778494039185145390345947454831210870070783503378962907351705463394996925303373172802706961059909924796658209473423007187244636265527310879137419766821613738693447186538100141497345530141893539448474257699024316068157895597421534394467392464306258480367209212210228648403999144224047791765802000943065891855626288763985440103607206063060306388438052050352519527900485517958097115698073833519783845360131529024178025969908778054841885707110292175048452730231762820641503601580194388939049835374249258234637467926223563505991561150638069594210811566182749128581264354606459602627727503956634606065009476732146079184567816125933998674590144613032520367234334072951150725899911113560020444028867427368728974413934054144401194929040811102114284878466417965755668722011876974764956999520521546942568513914567270338041614874729074748084414890162705718467438187904411586035598509213929268078001379123751651302822360535301496078821180633148386541908232660708031809716164849236340683216091425469371052844217880842998127257951299019698509321866239171208537587684431680533143180974468383601418758379055257084228458941268424252911701469922341340892652134864662266467986881887277072580951922662828266437937537158975218827889248982389021699019827547045404231913933845342234168377145605273927822985293201546535736998174593754640151844944453325639934363605917522550695941646822960986992586358329186652579322976930490502736837929946405380516871341494719957242092505955514881515791357575229532537219503327090807224759851754829833370659332890810795569611898474402957254690944249983446657283140642406616196674777455172878172117065834508371978644077191442041283541543455829168499808552331903795141642816429879169491194389015811226089086673368678342073658579174456392364171162572522934605429021192244345882301287792767263275777278381933015260677129622146765601437665919107161265986654417194521329650042119323731636724386594139551021167192177953617661477885882587493154030394869307885540492347870812749523055657581941528907451657276361593953231735289506582891664867534492186503306075994457944433245139296366848040624835220576481417305404388369723532358296411496615301885334252667080625426873267780223642940384749699891093428450863777683816756420122035750207213413219474572148376486378367708974767035929711530675202571214114080598410062634716518383553819452661411612522122648670682917019098821553954484828842479726125789440937420262919368393189531219504676440569351353251111472289936636759909225290663925401231515982919109965402670036308574317744039376720507537635061687009557520694078693753115471568098275787250559831203259026847385023917629335494023624641155137137352747393480594400473644158372157437260506098144172635566985470236066049126561202723683228854596635865227834840803634209234769838741224199677137584832387656920789381458882192541176308193481956019235764860928712454054842865031838674334140807791870671686038706333915622210929194369876311757466254591509521221688114570535300976605186096347293101676979469405161891223696348285265694646033274378186986964048171981420561365736918867608822602307930069395236860630369989037081514937159520329503959627892598153821714529203538364898842990702991338669464662337320071970699295103599023452213676344159676501440016448621628224571782717290872549336495642152967298022579599528170605521928855570262680270145622053817300825696859573591555953762282355577905702481134787631272826728008513182114234288582014365001436150040939162695253591675699278039150512416726644196738928455826210992485236159405301784232937157942427049893432973562402679428004368147365283269761818505996644831605095096352103419022981609895406035071590395156930116289872587986341832662444823501593190442268202607684842147253305780956600279480438258878011470543777026958384054002283190124011420318789005542986671416899430365588963694052677374275524685463031464074257102194818839066262619650256466148026537131909179399198543629287424135033796945105940314554624059642616172875443720194102880808268326975799173453191693725536743414258842767314796229718738013156781161314623837643836500347802135702442817732729180808947181805576244060522648453173426993148362463861625708507784382879643402394045402097322105720362567129296701725604551519161570102856597287681910319289207362255392862312496106396567696173711825924298277029629876355828400873572421842176026644988934317462242299306333954048759405411173783998984664642957846980772527843954762290343481574593484360579437276607324597820173203594598422030878141866605253665538094300968024387113118176969655865979720019611874000588407080459974490320497112604048143890457687026456141188396253386428514107483559092802878256903148196206620526963701685195865820102425620977183103124600582468705136228835902186399603832847237878323915738965825834368422568809725250263695489396486825268065956005719786427692250557924382741270248512369577076901937501865393262874914085392958578210060865095399457384363618204713378617858634146949699565015946731180170465901023697348138123854520539923701198499228398044959012179416376954146963027672134598917581473762731382832039271936819883655502756909960860305362540719736895068138895504160541734199739492036454442127722512087545999198322081398084055952617729980607738118212019733806769311271057637192826339467768953174985633990321303999899709616810082047480332491844337131537819124193155375484444977749121890354135173692393714580753100989783932687203485837907378235297678458665518870424227320229039139261721022329069799248091362700993146027082296382793833228705970960544328075377456140533859916772167176122261655072776408435988035532827283709058135437287876916939084275277897774469639782355868902021633903449440543576099521406287049807631912356184550209423334663963057559861408564542939351762461658929308300388048574234314345886765280991049404706516015047196669254218050999836806934914919951972548745610844025602519478904568587792111086974128361997784321782786847758124640641508699522973860122602175010842412090286134735262989704806881911156529181502353990936172792225125155380387640643777696382198198509156047478871832672229273981062214658114604165301938565187646384552444881801543452900247831493417626250237483909381125737165231531802792826744162214517169976617960631675531361446447342005784440443140737408232262352918870335689145208310209724949294661592177379815545378954952166825758685229303787129336733968485198284489116997479728376770942450078844859310930425613275902875359282086025488231803697071542762383555628521506924539992792480233905003992282479705530881616252075820856363839021083294558480165946326888738801344485115089656547785715334845976198389934259927117031543487504556492646566785373155757254643167546182698821816028818296744667944852439371161391928832818214271077400640890252147151369537379260007112482379553257150001135862894159764258017855193736161941413893781200334640905382259355551642832315999326789779827470271093388119217681330272746961191125424414345399759035817485109779016012929113084380786865818852005846516419139270703689844047064907629681998233223987086789000148378742153335656284498112324749257908137507382115523541917441915917169912465401409104687768436947173912938878471893656713571773256741624031831343595712028434549470031593232074177965646383112875145862867701983676829518367588139171715523218744440567777024163764285839186615960589191979728060903309431361364852066089896669395987752409755344460457354416275555189424567707935828364492184015735750747258013333197808370120380285939284443902097538630338203135863133929106596143829814294331819593634362251694711488534622991863256911277981731708488659045508066980360510729682258051026199861805409614011408280418631949808562366632359193664694399467052649077054489683681790614334270431634781436446433532764821731443253604648848633303684683184605767039949709841680474235102321283568358067886799986680958544955587774527985422868663008442093855431949325865607272466553843520593238355158848041836420102645550597441063346653284786049308563444855514341577246903702389385760320400320246139166074986660373301492945286977374307839371954581160368552920594383157163346472579099705422755344181275216132746323541236610841073169333627046786519444190803069443658097137054074677608453577056094492186821319507388363594687919797055183322742267088559484906219217260292920934354662354807759917824311158703857439606310659288234613217624507291271682033921692779041416151804163886018930320876888693162528927403051862647393737922496294442308711291026452967635202238933476449684061099577189619034156858684409308031742145555164865683328640528779078520526662929461135337255269139824485860957068321786440551692981101971134899812379215747049159571143308212426550595471231946224455262937100044500780944597094583990078639813282713166129885962982112011091272831492811817527213003194732338951211850030447979494763246113624680536621343743764428179222059344807530770005695835888258505965752272305285537367172362602542471752945858375986280292980310835586669449571236130519815323576757263497648528133587612642993468797028747096357655909879726870605768413803469910435001587172514305895257786480810825472653939881027341741310959378168041948898349979118043424894609589284738574074559012422307215977850566683383659525583980219253192170678860042541032855116418321984838266563086250237260111201680692404116565391206432742416580744753940118382324192755007756335913933456377471167039079008776091307107234119299822716786326691148696149237431777753401463074500652452050649155240207891436222224911349544530711863550541972029195624810169832363706122254816222438609070569937791885401529107350366389658581939003043006569669677557765306987789466100783458444442317673338942513613892280199510716326181411679565731533258110610197794353137373534508404600532859465781614411905161792280645758131433230441743288856173519692083215896443474868476440407972299032140145328216613146778088628303276193121776726845953783111659338919100407400040792858802079383502269691932187319417683462535800242579411806529385840421043882834373370105418952758273812553144578615990016398516774205231495973015807481797670151805002499162432884907254387876877235086274764214145401914172787918213938204564224009440496918461704565752706745322768543274302747206807779490327621842494751885874263839951732586898520161791885687932322243265648525380098540006164987493584759438986198561885991782069429771413881457494621871223217010137622196307573432651114337519880292296464015908068752009968112668734079907373432845312821246566922980675883523085363258060670981579357071284694400081987225394201686639564574974857603172743887526417378593906370853760756065474923855288451709705665153050235199800935057853790887824512801757885970988841662211924822251136310482383352109242147742322890001921187128768163786752383563438563219426391881047669188543318669441444687966096434050294258607397152067266491880553179088862799959619489298118946811868452354435342413374282437740030631873229889328426900500066734438919030783644487726490775226366203548489865659696281044590547749274723291090524995935428208200021507863876465286719748854515479940102884505964212476046815273069706456333386463254578423128391595164567391997988081327542756290845428233046930330355750338870684529984928559256136722542033022831031531200529985530405110623321806557475210824229277331086574499815339154323474856831596360557349000317327159581774276044814815742708447342097437551630362237158779760323260466513047224082648228636085476334219443132044954135617334290915729125068191116594733944497406654014170196447372736451499492468412742188742061626202172035230705662891283379638957353950274502643525961004847417433993991746928399656310213676854070695015468583786069389380368250361103130653171201214947319859163528634481236738566412327446639486447268163030440546176255376705400371013946367980813136603362911876827187440066914805745351248177291576652293781026146403777620459572313139678590123187923061320581647235778208252472926420048396683559878883637836457584843952159278206280641252009447254151248176196287581719154950021482152193312099598468480291076277288950466606190296123906446537393058092473564913981951498361155832620131366739757899164087786975578373625088156113845699739665357061178963927846382772677195350745722516926838466757203289234381434270589164284823738162275379290487981258231305244372742383548853452231620516695065177565044104046025635191481459191699453787079171083663024362022550089502837490826799424925998476132154805379150394953863829880636744694767419766608546875736593293394146745195873598792669911497870255058336105587230575023307729011047085668690281506999812137535604273446239623116938453795573920060498074351303691960348917039507560363471181502213468174866121341409711575107357131015320292122180658683765498627243214061103918190506362547210219311649959116367197501150016097669707969845808263951131724642429174395185719157047039548569925027422030237864872151849430578926206530086501020041965317092125772572677509757364341678384830484368374761216353389415122028968812939676455241649604582098498796535455275989632918779988645423469900196341219914997533104683207621993526287146761647349763915793032420019709914469592967027711009328466228397820247831654210356897419613759414594842263696391514080008827733656766920559636925810680933141065042908100757163445130179482340631064418218053226606561199462223775772777470525140792725625746985044918705492608875658325752202033840196613836325168456802663566693063901112844134730211474461664764562428865089109622546873177885473801937625053851875880708230808016749664270693598362575465302976542153162438969621783916782361032593120935362690336637391797247301147906739506263137562400702042256850344938837052320418529134272062738175089649169501660739437761413557884273274098170908629406841278372748650758106499156236574951735994238493176764636362403583937327585338359629177481828732291448905465236009387336367468211861982847944134896359924529319738931707635291134840910761467258882500921450329038107451524060590390769665953160100436439042148634166738305715809815822618951904642258462670463972803302939818067688895945802222805896544296069255395233352928394649694818298464213635998764071694081485533485716158497013494767788741650232558854588614861317321718982916663241182989738387011541259815966879714851286226787391957875139556528677277254125409362050383078766923053924632521500488470146442018066353711820943783841326522962018027878981699429794081845061638570633045925939811969720895922747831592005557296672007991357363942637902299514174328092153195527559620147390616374612756175817394913394140566937522538760405591824073046380140281123853159789988503862174396363769215526679755326600230556152221399189351798686068797162081565538009260522856990156848837081423221364063085976688445165669077364436888525409256462816342362166789593223282000055125846411707256688649216627288735987360090958429575785419281165216280718680881742656737053157492610139489507385391544039351976283375903122856581242850885740542242839420103202594064423379417542413555023843135080163014670640149700549432185864285356909682731801859779053894603796602459003559631988943285570426582493878520208949612865768818442007078893620797253057386280945584969564977301094047691747669829354828836067498586342098788063883372207837673440808785721694483539184609490334046711093883268443700622176503818144670435242261692526811302431770136056571117557889138181782522578824595725663844661372949179397228918580272306898043735754433088693923213062964805255309491774700982791957373668753668565971772785968545374314557731380183004588276493039174897837075691452976521198007375134266461421889429177315371897234104854524484651071613004653946278935611808361656541511886154593458324285907165582280267627314783476640883343745051880898890938758656442788416115693243478435927773712188076825411190617579950909806873105211962236438222844314987330706779643663386918278859059831400308454067760468716126852342797503158044149525137050159053605405367350921265442282474094693099602870100437114621186250682927593466895353842047087165398379743921467274346511409074139458503963412301253157704821677260664530981011981498541415043010928846150690861429394449360292404018536652563530059061804476155570436460950329764284622457029344415571174329695001995988152045306584939142443752387965421942578846109154482600800987424670839983713423568945980379035966211492879960068269692369028789028594669100584380402174942650057166824378942609368098607450147405146843220168825477522763381768368546859240159288068686307211979423690072224572245110427852933771355441444096152803364461511918310952109525906853027442734729207397561369849541326559398502335815894839248986876139446547404584056395601841861388860865976128368741489080074916403254844047474699536657398596959497731649270453292740988077548153594549437383516710726440374118306250582835701039113813070767173583840964658733396197238307475999573400029149353367948067298352756965792581991264490541993983607103090807461596384887787736139582209096292376811294297711555384459331793118649383059600222915323641794226880032887786492447192543032493471392570965890111550621636945451499429035436847801294965502062867507990977765724390816205982117287052450718074468267139529953280569940298696268708322764140233080155514378945770411057579222149867765665965972709739021967308521313549661755674254838083566246481741599013824054168813629188150483183813089982421383197773697363841661485439955816105269269422920348576946806894523252274320862837101654325858098423447020722440278965817801047702191858023374133370448640892488200307334994832314849880850812260546564178685485723777458047079898955264963296517105128660282384717573491834993897566637276335370630237751997342300042669798984158708238164159208796212057765363088386769249193849398051676922559530125849615120357892531638508608946790608299223577025753251642844156876713843809655756063782545984470407328596401920874462318349460477290759501255755259388504175906299606338944117970224759360163622811847273570419407962259162098449336641567425713964421416405957715112820323791393658049315092879922356083241385189725150959722741457145111669492544985478498959918088877062889247496099457292368362610314077469567822649627305629413318009506291095261653877541814103106700805624424990380908772884618634548114951581335963067339213132279165574904454271054523350584230396770547003265133815315904882912543270316442175794786061304566355354748016246274620860176159507792447616694895990389684773917339749844025912023571918993528046749988787006715767166113832140265871033572320363059241877438134148187660985605297740061786907225566576847421222437328344124231087102879858812308948950091207433163017351045148900707086925358305774876462621501746678683212803543451164831698795809879151570462720650697576497408043132306085306922848522881679138188433331961156439388876752956387938575135276875802243981293494487614869526476969281223709313770833813910795426556725708926289442512259453411186313958126729996566193178888329172288835483944890128925195708664007795005959516053744066703664726323729590700784581261627608951980585097699381195459245576206769377913349488775141024295224713189287333758059715813449538824309829917341583747569686541113399527775222861960185415557905314951732818149187888346414300446497744639073774316214734830588356003793997139478128910503193893990417933833521565458654326843693889956743741975027842538350909835260820355630667512520347402141968826887246273490796566104638011890475105468362584671782411810057881287817986012022570797934698305360260559029811853846496309566289952477550195727343303427031522055217899849889589561609329773685524296930145596271896916431679244397611131915520255825929393595952160672360715506429203278211889510390773288803250137615196023612966797753261831077734650116004554522379152150491078815434567398656372937691026843353659812529973900728041844724019539348762759931030415361012629279783465461080574156644085193670728118525215981958499558918874466290989820815767195612834575871638969867612435524061108325909063680875213821155555249054264511275239445074623961520743206176564567306516821578657304149140883474949704129966908125507453360397832105518184378148792067650618317224259622527985825903959391918302760886842919002647069720349262117431614004784125574660635518220166402008371236106218372786064848163018621670030591315431401720185866201287168044754773247142161355996429211203554244444513248549785923302287819654745630535649124216977544232475803826955701679678764254680384436022719039621954712169693461181010456060880586406421171669560313505028433537964516656437266016117527653387728757452085451044898652562724330771640513347879085305725922811804803513199890133742172278085374485392785462074446449210924081236733007936633200035799579585094493881643548360654124658632373597467254593498785857916391208431921597386864767313232872373127617995107883241157503130829909467828285222691785093645627786098330569285067789208725938937567583593815860071557812111212533284729903097505214252671953087499519923457862260750729369473487896346893299448888825603598798263438483038526589089819404354022968533004659807603031225888878275315769532179077834854325320859725134863293293004449690026444832684506878253296852226121657213798407812576050221101706314059581406155968453479790602918440944780244606879417861771493086799399764537444495845290994785290542399582568247054384787483195050210371340951125786126301928945492465220798394647324004801502636073620167310902283610823870312968572553151137049702197214990351144055316764531139443627162425216291470570483113193835813490758435182087271718345113461448380806632419662957258212337858756557711053411609990741339257486836253323913972421356908178982214679013912338189007250875339388743155355344594964059085501383163870932386195680416980909270122568747785224674506189336051157915410707825119756001701031534898361492807632959361142023782516537120976676863536612889515588545891129232004185166749229008881555932054792035633784113607212057006092644681293183836449383905527490919509713159727475207967950889606934209242844705317964078896060110376619473410151781008459485648937674516078181771595366888389048127015745826980761203157876932003786494027655609080122890061082952800661868267141119448760178343913209360491674689323790507805101795857680586092661419658040519956756607910531887269964537113760518417842729950171560609952524380768466452291159735548012703739808237286594561387283692206294035923653806772521289521714788864460852411382010679537740213336408889742971096957231588030353487311119136335165528151078452083642810802868442873147069571929285136989854920737343333120761250263156038065754122709917748195126829589293008105122230295815540759038328912667058078994564595372089074933649511735800990831512430561904386519364563235903236584714388407615406754985376545380286878275963869585451182266796850874136212342386383479352344143390157555193138989985569839295101697804641715057191436554940957549188368844009496309753749928072043185475100184869195489663663827643474539844041345984750100353854542373407590518499891359696631192743712490550444417422603800706758761999250661455204949347425366226202151228860545117023598029203003711023530033030647855435653366141212769377886224910227362501984095575185253278199289235655580104198862264653534335553940405343304934807576478264969655009140134841521191902394423782809642649270696178612683758597510939717617043107602101883811747089236277960238576405112183821033819017129478162345473213667598889703841264527845994199860400232996057603153743504385434975215822328868609547645830724310126508805400097683205874270177622523328795992612023708344592821599822834441635518822999458456351180556813735641514873669224341444875545563259202225308909969799918592320683400371191547057718654861552201945683051349390630994579715121886485685578594506229835703334090864376033509054056139046074761630974505934604556876003653911245468642135860360891619436932802606130597654091016299162217928231143372381695840643997004862957370089806462190555501514615683389788987156661417666998231212401480838051117487614762781886615246849822711986860669845561858271091063281585391759776356317747831094365528241950023573342463880898606223140114097692419944916231643123041996374327279448480669294569384409442829166976263607087903154500647375764374654213710736688469465083247192152383368179631111966140982145072583817953645092073107930222181723996970370862961706385968524066477462604390356954653559419743111567458987790733206182262608520604196168093719734961195431263915542401824927484114040794158988093145996863719397046080518764494058499939129212024372540630438366481255574380569252777498629327627475299371982952842854211635013180161759223799438871294301395764966752095095261191807498791146988695512060099157731065991963551801582473163368911331457662244580528999782350608079625173959469549078884655692086559308230831374811689491504020431615410751649881307476183257792141895766610699892237598192330487392264647595248967259105495997280948330201407082988636714666943281493615874520265430533740067736889735057431496028904449677649450495564650174105252351795847553743521259486222645134045684311899324498011492980091641759637844343116465317749959938443913793964893087420925304637848336325951006549078946773150538898717025022716898447025141586372552557155134038164676984635564916940132418094103614658111560339235242078553323888598493641144140251464522216354952191422387718590484898398600014245319262050288484520600740113078706173016631337929367694327033667724197565083037107046751590660008588284592135079911603297807173875653188496218271853984372989271154105333506446042297943157569075668766594464623749462986769911897385393894076404156151954376064303743687936803180685992389924491540491851782762864664071001815409486395443553054568905247142256566146600237236598739481060979103262564081924435405457382749714485357113823626073731944731748496607698148147342325337511440785311845714250457584316579389703194407777388262593213669705349312932679576497948293866905307219845473006761942331157630071673573592298838051088022585953605318092958789822767435764889441231990821931050166180036781412227587044464782251153593626323764759540382104193181511231489760221777558330133160080824061559931554149712950462443161885708279229461350073718688614359139013114910644347306246165259790879173128615027524594315349130858901026029004961329291953236870763910673806333263833199217166086739743279584223218797409438069221255355809339748558675117352688388917640484875859788407517183615035310275162211174326808489557112702705342974166467811461057097657819598422697169831003960202442511797887880217010352664612642445210921052226411209521650677628052880674667695501956343595203529775453667552353961654028437933943287068816247703764134419512433303413403856133120769424409080946653576920456964023146917769988805350672405347019663430549541474964577223490740729541606507697939892734940250878218590202247522898819641616431108809428726807827090210847705058913460627422209712153966093860726127278478415543537731681031255520482586678416976223517919678441800742194182452960713908166055836728786948912631276509962036621051212181001283061542265080972414129205797398598194542359306629445031952131694500166842993173396461026246327097829897534921245450479734504787238409300119312439679135254262700353685448126306814233887708760158175219107209978323312840345813186177142344456376994964126693525627248671111122967870901494403388934169378709469000872692721511942947577608052700741143616324915412938433699026254675901426861732501514671238905902265791750416591858505354039234954750789910787073090690061095503598538064777509418054416780152834722645396768200621511065269727940069992061027893956888288146344525885625054195369027487476538087408711123995077193175335731836447549789641114853818597206804851813833600364787308292058065520154648052633289558616890411463858027071870082675670058137651317172904576564429690901614744782892485610897827701687025974593432055678026544292438261939399041266464542245584275073084430855043623497293892132327380305622353051201510036821064306452981839661897911885490969042776603917390017774085664273102523301800474106936946569809791335986284053001715116896968094948299049099115816759617471331874495541098913437547491153344659892422526357476890653376153011503570618825525433680525475140589699662187431055497098378829139507815270736912685707661489625723872450945653872352924918382082059683966911166848205951490889939256554855058381538401379359428274794769201753406562361072810810712375682093537248296685714499960631203449592651069099065560758838455632521531084077830546586468623513044743725724330071887953737579730587737634135875134437514263142892234230192465037298626666342541062765003871672004355819571321201806267845243621158324928059562798338976287260911989427088212940028428621735107818753233115582153564634061705936436516856215805972870785712348151807408839457497650430493630171291207553415319409296424833963285928071558808235103330682239671186081319132857328350761872844474090147638500847043320942020810011211867245394368791521220459656960484792050497216231810289050186332081127187131769418853611268604664352692332742257970512955714178413939116918758439492659900082527797133054965579741741971347090917618025609707303688338404490915670857069561432584784225673349359975246560373091921099417728201312096102405749936419843437122972656747180469345949303694848399138644323013106508262901858807033187880443035427078886765897374479273705784963368494904109416744101174177593894202372430040787086841476477027890472817956619037895511670442797761906374363786824751363723947016529285833317563576842634587523415667647396402421485847886686439659248549573917553295389801625928053116541324265712609621933539316296573835809019758490330685322372576249995273329726069718890605778473103603851425077260649049741610304634662334118599510265607461337987513215300587515476545681744132118629223056019817427564885039201376569179570838723883214879177222215442268372867082946089348496671233511551901401885513130557804510978707713904988703220424684934587003709880138849832283654220034241261277712345136674403394823043014859047391804911979151293284353692800868814224681874612834721834980437117172837330339957683182954268478521179833120426297480795932928152683648776787962347016093316954680564885949806696776252612412457015398751872991500454542009570048019271396150420499742222651055852714498050852082321331949894539735902004190382667207876089600803590994812304055301039176465971701522583845136371363511328396530196398925993578614407388864310197564774727154860007024814106220321879872958434719326533816746415741274140595993436702315538172232335215477700538784040651765927486084089296437050420072000672751654053052986756656598844887515412408979624911467988266151491100346405258357911267059130234238880583639229568042906090930889590883443757315677700925248896794901026814261269401825136576652374229017599426557061659372328490889443335588193211684245253394029611457460828806840760361123854416856434729478230728035502574444035057711624974408879579704365472525436095169033446005947142598859311365287421398871564601418278585050480594852844090609491421801655348065005196791594620680391224169877148242922559244066486043486394922434490457678739665083872174516687425969397355089991908416746982388653078462906467351062644226134881777990988230076478869380468874185574838081779194351259642688280885905774410235251186072353356018763471937431190914513573707245085526211510766402144814620878222550523005287209400783627511498466820886237168052247017871931887133033027262934709789046702403935340215706550941989833909078184579880498360495919173275810118492353741178877862445091690543157467393244284014317690950116189771254408036302026816497632048808255641356007033507477930258388408351014375702985290886264811723347134222523297960011646665264529173274189552141115634833660116968445516894032961450885385093577527120052630877629756979075105903571875319369420736729014392270568636771868452659219234799075064829037886005227324497047114053181603353591723966364855947409730612761465283788682299018580644134535668996085845936782849629133903516781579135765580013999991722588317858229576437641707094830025715354120169345186088221142907897587820969757859828499517763460663499610799501608884531723093012147878655031674764976254461286040048241235853744781493445220911769659852257225779220146618919544707793375312117863143173712051903301900759915415902889043875708003866695568613130935381152877900442838977879183651332415385949412541375763533925672990204833477536829521776856253559853806000762991399182285887021551373966268365938721651871641726339695777950221934062484769554906315268176080297077583662014176022378488418951192182545626499980223626071746548234592342072985401070589235401246022106456686462097512616348905044171408139454367136056556415905676354595327111658240965957520708135677362537677747718536413260982656983872676953382606490316620347066042143035102022096686968744286806902318809723458946611703114438992702343168474587525273585960337317036858249315229452559525814369787813050809172268111132111014573596851441479004402685820791692155690102337011808192245619216623923949169474719791127774743648080845460458685318011378631616829240747844327582933353010198379869095815294412662723434012209784417198397086517112545837474712281896303595997423670431795624617069657963906373238067857324566067810094676347087564613873739195618519673930709701149039866532552142980521068725201525569279418960470648885809305597481665784630540316859025512855144159237691426351811679162849179443261255548989560254401325304430936649777047547908532703240584417045206867295905512163123154959484472931701157957183514203014798914469890210087981817295722723160409994341424984742216898002455976384983148076652188714561832332814161643101292404201894945632472631318410905999060871484292774366686652979363144983652687246266807791766374787060301953655469529202285040754619139075541776118192521440512257773670584184924725476630760646810641396691426276296876998939806164825541649724901872777761413363188973710965091776746410221358671433111720341410091999248068017124490404879109931430150482030581811452993102141880815821162139683595489911858757172940430475833784957859985005242942555523958701911874848434652106615619807262572947171605064664170860730991891439728288961414844462058088950984544772183128434240495373620325595770340028739280362139652765009763619150305810985743428154181069601058897833890465532547723218616907113439618827463845823267954262513043665947023047799918561251751149449516936027777163159756525962761687171923949834839998399535183225283116550972791225652394164057011764383602058395855608924206919692341443111278665759962740821059162981864358131401090150410695971633423109108388528243378841935949743978777862387744369009320993015573359477088257888771306447827161283510341447084557021386103036919944974931657089081508421327810152124779371592363817517913731819277600410076230229310447400134910301399465322320530311666154501143715918509007049301724200872424121273553842749865924792196579815277595905956523040785734666574300927815509050646410892720662844880561145874424821067279892625159094998308596622378135647871062020460133467469018223013183476252435677451047779877531248688094335623789551371255054975861492343092445416713695080044665221368110562053733847496241988026290892289197219641631562792976650111567338592784546644928913366886689388401873501474530825060720212928460561602848149545611367241210494249593437808907761791761545790172904300324647802855395073026205088819859327135015371372444079310923590851248917877265948086579660974183152590516994215117705030394278785157840546003414124437925794547481841272714340045215676714952077989697156028011917412407079890933282026948737787524757460646264307993557329627522369340068864170521272423210152576086481567689202441148397833459425089501091644070308996167947528117440301792379271927343346233818677876814935551623610780773976672551671976723113102547434162277029155395411839330984494047706012029996904157970644673276027838050877703988887318086134204692580842749000873336311491211433745969359651232933171737335217241298859913608795155383200851713960941627699576751370932801222089719805610129687278259877753615780413653563274497157076343929069296191346460166686955083865625470992173269401811459095189176167218012043893648833334782535721109052516622215418706259925717829492277316642651659931089053129998058020539547195559418213117357382910913468296250320147626978608187124327627961836270856084796373464414135313951300745702829362046626089900603530882636708103126998960570559955068572595703361853966724860880094267089640044749869909427104151312682001617736976513424387402628018901403857926918388360822645174772841532314752344461422125257804910719881273175803085030256056274444870652368530762140321856368597532452222981080347176068873047516802843609736245577249796410540143037951462280191675498072396579891662611333677633446534737282802436295013906151482649194794346042390783736175912125913860488683407174106408098575651689978014547434513376593682889453656070634824494190942756163216497413938087380422922072877777136013852299900413003876628543661853049687340926463806888963260331359948043935476805428538019536070415542381738070445900217952157380856382167660289412231108876773861528680250591255440795946167352559593679826943344892761844905759789948871038285805024210095389505010739562641221015463578310163488584035087056171520971905722336149751410110476402656190399360853641105069551110369170731342759632433393306095608486100663200914278869132858369021276867126584263987310406896220964997013578182583927371042167790083860921701880765757762264129121740418403848953270439231852246455565235114262580636851556036473837456663746852933039796932416357191564259876723585099030952669924037521390827439018527800141191699634468012716428006841375878790121656615625691452672233550419234800374580105242117873301429633155392430960488139498719573624137179818712551649742790155514589376816178768132406964767442604720220429814327877402867700471665848659905433589574557048055085513098392813548649465543230084671400651330719841259197058062440771456014849525409408570392641720993084567767797371602435209962585019795075911625193600131985892847079301248285955576218709289789243421956252940167713464067348647308074881171327804849941315894221864959198547155689129465252541860712180591864596934685805478314527116510608795064636996500346117051121893595452490722958311059919938254546160970925042468267388225749248072314678249446162094348952923021415924235605634614678436832822964271143393184533012761277850040931288151317113868697360548606677713989697154066361609434899831787106971762181808331004859037143025590588485242810022958816604740833118360022404885024606111059493806064879241637813304754836255994122403337511590026803737501203448643965076948932102330440872182751446750333699838732612752332456730489214995129664151329226628385491717284354857392888006853063229044927352472004857602206331382902699737909942048759111273825529973716820034324813401093550931380460878022748888646125210975771232749047633696525537715092331153542930007076186439782374418471364014256333752743311443940381394952821502337289902193289922888400132882285131394982823932446526584983375461584229324423440432243578698790163630194618313603071672327993687726435134282565432374728511429749049490821136312020381393679344205928405736400089573035515616062889563634729371033209035771332641056848663443934167810087447324038570627284127706873468479910248596489935349412907727309670894868650268680644387415668473164228377612242030769494942671426092864886865721083869771706715355026758392050568798013993569335851037551030603603340187487637549609256209434983896178483402442463893718398615242006873026985382215420732130192404338610200163766996757736271907326753126116515037654717524604250712478090687037992162668340946706985130886208281231616947305629693107547715691772269718052026891985830045570429041489077627301852779970990756279958045737295773932977495977283386818770239645353946304004653309050061087546888424033644784011495033871268646865220726474744260264956616214561627966921646362433832108691669061919280047207319203215261864640994523275344489150974660998063653969637929438338397846884176629952360266686582574837402596824516648921203631338415459765541058214915952780414304241843579098205085264180591391969325034959056021249666278184438225416554427638036427239950103709095336214952555272062839021626822209136861566235462394688477643452620519666819937694207949834660557775817009356782813310420853934641746678240481470318802012502293897066800732471719558689393159409236057125906183542146050242469331612864569970525223375873495564804871825015862963270719444465679600684900817272250855468403695184433034580623509102252872382549295359124660251634536025940121067088822411830540041867347040971870290708456394627650739050694637846734536648259543324058744833403725803887500194241117910453157702262104318452539144172840645595089564730103320387539699214017104690038027210871142158652506087699721991758680251813302221578802234518073566068220233531457153459261821735204514805122531621211649513702140708833607933235710629266798743903840391328826273129219888592654016195331309045674119019566265356144448105501538754715589865964694093557608051357704183277939495793399029996627648321406756523553015844253118686350445799444674802317453899793507440359083194575137086797006995086263362068623964774710211421992910718218497041875298229311409370856826659701637263717359091685953436230550472826868656116731835366367415413657674745741003944484213856115520210208697279050668734164693256939052664031627556083943854548935861746407103866899006212863631407664157786957992659769713905994848392903766133676028702868249664734185259324402999688574638697467507250092018828178415485548470953139683635908235966884489644125737439787879489633855273554119691956502577572632037213023227798605936041507120476169223153482086278019869237327915059385388025354163808923942564074060853301547690780773509228294997664481494565022869597644501955783869595158634950484450844100572622361283199557198358103874737152927316411988331776134479198217966189368714424155356867029076939342086915055413853111465646897035079723936342603807383889794391495629006681745530865194565981280242817977413299712153565716014328604010229501376385801778793869185076202338694086313097911478679248024400493613793872383247138997297854214892001267314216789661431357907843731430719921688410514843043309139490256132669967086911074710638532883961121820726608646613593943734124512126341166914695405650994316171034801763203175938299492681985476878699590452638347213597048998815805014264819226190229074244815822213946530617955151317078393291256351153670810165906801060208691467807833370921444031096644813756763618345692023019227317696905355639414830200659351197665978399906362325191924281622914453972878177687399669801306337079036870064600794261422597268687101850032870779665101899634438543907904797586265277804746459893608434244289034976701404621137376815989391751585455555642847768107337056044394343922889609046265408917728395346877142600227585319055365528192848184088770419159065464688221027104286018455475786288949590185768477944651468327792220697192957074304224330321878767132868693887422121050147401143273290160282094241951615111911044085306224832843077432696525378834416235316869347004644313662659849714177304701841752643719502400208021767045320770257717829812351352515202266493539405649836494261847787387707928552843367204234066490018780576799338752974350259470314019336284322295432735279041167049765081257451761008613620488051548895925932325649215788596225471636213922009072147732336500345292160360588359261458872541123091360985223175026866446365018784523272200896840478044639378822613046399699050513177236764140119821911549250829897587207066901979940243678311223907914490697699691100773535662487843503723314323280825208075246512093555864650295195101833824332265563704397152505137666389768317702406130205116929870081072069470104044218179170502054905454513774660391428626173987736066238475362643541144880876862659892384610891395948219861934911287445865714023555437373961275844690752625082702940342765782854996141056546334523214653605779684008125233028788712250621114140594158287127786086510552756915115130298661268336980177132216017159748563131432900113792727265874586292435135540871807341269629875738590694223935737249750628638972445758544418269547379523196023112615926186120988696336202863103215235308966818281417244847170724195546101979104670109523976787952197406160216217568870824851558369980178416171787131240926482431878947625810862700198708118598780373979324511743088441536297277191791537390261994862524894873109223888953838775798776034179322555715481540073057471090408765835358705647633751688101563041364030365950412107305782198648065584906563225864802113163361833865189425823427645154260147841861888092277868552082360671352543694113644290577959799587626296672593507080653209581523307004972675009395140485821956986603637378571972002371086995348139480700086442982102048497494615225882289459096259768201875808799475125157231057418107773086391111199583470772643539660037649841526813369932995129198984024804498871698541271829219695962627368469881706714203632886879021942914394763287279165712819879952015713217567992763071471958796380954915154604408097854446020054403599806184215053090032802512662362747203407920513347305770266159520913894811629765192057546261904009469040459708517387252841819467632326285043054806223444001286996892463123004885609451089059764060682762054136836528233906105490312510097219158151297738833326365225617061992516620515976323353899378159609992917129117313986501157384554756146520786648253897999165791996119858637616509275183245156480913192825783366513868399862447063939402515539690372258183220425776094210230574275685610538408583876994001662268136997998547909137652129561557601948162638288044250224359550136257645613947652076651813268689373918697176858464010232510256965807599275279891279513336131603228610678573392060187935966226383507831826968866462286500696180785276014686006431418729084587667836441404916446241933814078089657456889176720945855724997007634117158628362120133149773814767711661908033060870590521970340111568018982670304875194027508117999172607066792432349306353679409371278798747153099959527834722276099538272574672631291260335832751082931334177603938705364808391027272183042401549074318281005192274713640196039593809643539442655396378350631103248391263018831687116270542732898386923888849680773521965661269648027083274443585295597040363777106265844327521279632175442089990173719903936330514924986309970675950927701199910708750992898266043449654441714087189178226371785952463477840879541504538063138956956616343563508245232865789178969534746403009229656765492858421405156895704909338882357247344892985592049481969349920556916148698331355479000037228114227250951526036941845011315814710382798970279483386568079111031484915006864219165861342971888072811043625796169167883333000630415244059604666093035632701490201089422105928886427174751447719891293534898822598413486105344096509678082955470392748912242632582249383671236781363745088734051167343942642037641166471870891501137726835942853014485665587049875040321652002468785616668021239688922982562679791760701335566293399018192641328877260097345261029475028003341298454558258596275525925919445511282954634778135715261936802900547832449429188364407356195795792188421908844750741124961543887670858159057422403251142232941665130884282236815123022418958045343207254316289554535553801654135066745426214766409996705334392972080219127922004223452848622460730185771580661212819490245515577656451991765370948836508676642360566974530485858245391970491171956015364875607217902426819806729400956418239125927117828069862905388956524315905503097681961144834133728985481488211069856128253336216970990665857339809522042752624717544604802053913810790356196000408599619257943875170333708496589139934470893084412418828348994276965407705429831743348019896190851208145304353146149851288181843226243812364233118748413576595419845764229921007863636414284389326512035190990316519272551971319204732915772620659548293451809662822720546928669557007817748291836306513988796471360678662738597687018541621078321119334671904094204167683438437717537546781339723457710984677219774664886032397759108439139745714840759371621751143363685079737355254895281815473106569079910774975313974732504149314319762659722114714572631265257540663753343580006363930586126777053632090674212125678508511912808588271433822484972867039501934253145459548675134533738860621783351007096539574875235321484974108582897848175011664845008154926328548933225287098446615382842983640174679185044015698550475756566293983447874896143072032729217011606525135215010776668641216145991213165903589384222793458215698970571548898066481960009972612671496900512238366316431480267000201748836657246120660277817455654700005558056109466395327863333776586084066656167992592988919188470969935817541681854537189735452759603561763715975740107236517776635359882752095439487975947400762803905033709321016219886180023454651561489312201383060603860173764604338152875465878906975343560505841381122096693882149118892068862839355928029666540078232669506636488161111935297062163098072973945569848303307882953963951821342234271348866758673515763811405269772078130525885262943368208883412219232420614426339553789598250193288539730674952811913341530674354482442117875286473375826759893687815041672025490329939378170771570640244450435339351585730895226038466905349264491617433264809417353022929923382788474034479675003065019665966357347068283505666055260220563513794388882015821869404052498285680448541545748146706548222342002504399631781587496915654319285420226902158163577923549766471060577473567714440397835200192412782840367551950960899012494530916005883656274428191785294694518958501218714120892078045220207897791687548415476745635162228250160157306232828824948295992439521641947780946882400579343568356196286769068195502413476268209408256634284544296410232475309793688308319094102248796913603719540638195603068095863828640216036332545460797748865370049603187706035054277155183730410052651106173976588101161161741095310526355071413367052536979569960506081011906348474378976267056674567158471412706961446048943470510545146159446365790220384372150298007309970300142833825061094256367985620573685571646972216326272409106858443652338993182714240303552831374577662123205060833813401638129842106593278464536790543367599848080900988208249738333148132293929266175886885388214029302325798244573807156670318777513161440346472386290358563881566974070052834575007680190108326094314502977039824564357154606400358657492012276352174972482071481686755218207733301159972180128350619372144242338473533297605787048080580935123578584557534677266891739658224941006325352694438562422275307360732045476549959283443310219871534562690957045785043420262184798434722586503213489357052362900385675399931841533509782465384989456388450339084648694680933788537141781427186866777169666565445941060610999880854543312268055510471846457826067311029571714137251367535934162173175623156018399052598721970569149482226523874131991607272832174142610203615608888522986086386494451231817248238355080825875457656272409495534746906821817921447619202228759262001615278045564352055236775509397823935326382688974465983113747139712086085816447910557155026446915231412717641896336895005477279171161055529233611505828660117778713320290685581301413864071320548592955546492589003852518248743243769827128821101451825803829189547139037359480829741676380816671839996115155971950672740008232150676934011763579211030240103810249182995251760514750895888312955094314254823966409841782549523633793757753243993945077485799367904092003393021678111795031760684216296666248214545921821722204611514448136339233642681370260196970722134944913856460507115396850058995143257692377161391979489460032442772725851811112999353274004813907197075814367448170242034029481989688942826071148352254794355239359050798950467263718467230202555484254035373430149325978966448137188201428766213657134776713913956836798535547966338288776108436557544259496008812978094377388133275537722524578609162540681719084781094473343453709665261352676197708164133799831204146611901642548205457556114104312394567060058013869662102273687720738719499367020591822602574721716649677236677904479341299422506883533221396933273971515652312420531902646140718921817662262756145310036557395983101662720882637611470085565466664934966050455017482271499931566543412931527566074557408883110750582269092526209774171065944989027842078690649131309674638387717450311691391399525054624285920177367878287915528307451905865587577383275014229151792684181325502720859148271154709636521207896750956231455107788510378560376687239533198061559820500512875843734856427654763516496642004005251411090302378187044094948126631136898814680006554952822899784410719628208305494112770326714680177820655196025352907834551664772226141599152671289617867454010460434185739598369061505751110807031063388169700389093395073021468927159461103913516352023211929916286256978689870028106846849643490759433000813287932950850278974635260891639656146465099267964474023066434598465201134459297008993399370802590361289650266471685213417260518379247097038865815395427019485694032645596746258416749265836094381198922064014515222225047151693010705111670267765246949746974908755442097317055649972271280102106575446831658713677138039102721870541315372187858453919653949923132190014606262175110714668169934358485335765177683041848153029851588291348297420791313702688700372432988829815229942077394606345866476097311077407986282404613544027652682777900751513391215366022904682795507854711467183939521222843684307498997086685539436336367165236186459272567926333995040844181480968383743667394027260055187922596754304467280064083439714788229276716181604023368027838281925208637255033009775465380687856182803498998307339927359550069309453153575877522123992467159163893297177089627449868183937803405599963911814136794384867296809367490657246478437091254295048309464849615577469905244079760713383811040157168390102471091620398153631006658903847537604099132651903210320081961586296035172117717579808832996229902157219035227040624697044312407420332418647375765443248803968823837534728311633446578985526551968884891238047028052376327097084453605506066138792320812674799001482737964170462654771516325195450804151080445262714037570319124926309889468536264324031060274472231302377991415295166896668843700696486047145253034969800601561547104281996088013263250257230217756452264274387040188896727765972663243370865594524787167679822556867992249725012735447582906103748899918504384254053550365429894262925385446575152894057376613451079379902235644371277249353729606129993794043329160025963453463866976067277194735932969709152696990063469439047382034038576357654706549901678882866677904265914595533607971040305220099598113151917820490887524076813842051877009749385954913107589711896001082359887539804156681281634893046841641650471765980340396655190776502964038160538451452306968348763917608311946244000674938323734277181959013627647693948009519115754114108273262015838072174908919835264085976512519257165763341987555332441600868318959627006016213739324405558506278566393526312098240651753727867325275240911786723099699296071035692127273660411223159634710231328528728727219708806429311857215157621741013069914972417366534934430623121873471730655255220846809797534883915341253700955759532241823980506953065645969263413984796157074686922125623733228019499014757066201245360767391504800033199119660784195315855950416421524561112044846803283565108128867502394633303079499577341580644518613668642650827698234015763018866082582160987356166968702310475420753623211332396526440583027195661423655046639713733941552288713783348664295807210604573229899618912273250249245353822503407521737960290207561363546098347226480380332831559560591915133187219318577736239053003501042835863108054296473217000018974671090778613355321750272508910346062886989284127352944593091490381969027925735384003294983824608583958737654500354652330852528937162536987114025402665875996873898414830449082923936922440412069908250206770290025359234380697956579119972230782738831637511227914457761230577825052010307654005814821135885442939364411081482100596586782944025250752383305593641353249919267306187833476085439134972754902273535015716062382258573842575051821045379035165748035940085613789686901767605850151336482448828581283598546709010910510104716988878563584174290219431380140745835445822377917933783159802939507021789273920305458469317526226302949477299024840094129990626882992561068358058205231647712245057575364263847880446735741862023135908658899458775250319150614557101303264880754173157166610318108673710104868409680321207082201086595452548699578423431437940971994936101230948745730153172437798770243737383541396527003716996142634048381460614142247380660908096944379990922137716527677929852557063153032074795882413774586354918600876064610454904144710839884620964825991917996839034187540954436411463222251789908804311533123088635771661666277703625547253274493479277431795173621734295473783984464511568065221290867388261742107066347008631091997680618203553663072490353656421859294621882940686730291045683963537257037327170452406471764399506926916950308400441080691562557052039141300179988871034981611377505467166151902600075706493452179176811538472488444150952989820854424019081042855896353032431923465047055891863978325209001054019810391106146867464141273312863121435365010741076061125111873166405291917388986061219333415650561502799507999730580331941341034470249728662775779234431179837839362338828058576511819224966477424521686424086616778065620327821024268762766423141255583999715469907945819310523983346008355157715720973595140442211611562714419463498410725382145295739061520277912123495176391022145917881955044894513676399708226895025394151151398864511812418144756254963183773519017096789188524566200008483559300375142280113330507460046521706752327286726288714058016245772526779372544724347560549900972167308364009707902737237401871132451501163914070570774580568805602853040038481143647254928850675682454029994012618709527248713840247866389600603952954885305805587367230031397522222784739769528468253473094788947473822853276278994665935995904835711355191929161022160761812126739495922424984727154379303689436740076673879847724739820402326387635173078619695583751560390875023508859399046858928227160217450055286012795657695307570238350220247162691860978164421745851037578615829099048966268692154786737439682597361575163258308326989007819995423931727863491330779141547808606473259606626175242238725876340791293020848642530966485628044929004476756818048114716642526100166167906187359678278886598725767012971267642314223738759205939872712610826445838640585569968572841845071576966449851258673594415369135119788134417509118116082397978374904494866243195961417206302581387481073527250606698922113178176144959308494246957287078299058539150732577285978026317436452832383722727714748028436705552495285764775800048961273954909752122454827834142817787679512753471683333706050248361838848385738639006944968280508889335498796801698173798785855057169793263652146067507662832225162391028428210827752923890623123715514374228250822836990368682727702480402777043467688446716430914796996032214891507801522510939900413805702643465078090850395405852386777014218532236256450956499096332118766251272715070228406409743128248455464050650970682136572609310039798061573317226155219311872405577077574690296679087762031462640715806951972813002634468007363818671627656562707110626275913425112388215255202836918739985417384687887721173233819996459663057642168947624459632084247901854556439053928373343300480854024346482842720844674048014064300459329728337695700009817384014715242419852966125732238853845472586142521758178415258478819158026584216739640596227299290706061114961700566524783582787437410099679735495206866067569602797572672632925145000377397099320741823171438019092975056279702543362651803803957332004783304242133359161567271119515533662195361270630848142438746307486315071852794564415640264426328934164343295793271236492748841413385837699118228266522120187342933018471453833099501945503313788572533859212383237457117497743852130261866880935425435534907618076193605860529928232046980708986676593401291358557153558357153474696422416954504720105701157388731977057902676960046325606957224746596989106008379381795505476452057165857922517872061723606804970191027210847951324348840124423043140877830018356844857204007495902106977346080933498489175439426607727504153861488060813849618479003666578061996025265542878415484302843928589233296687822853888903662430913976630423070229411811085328979704847259398550539665106980969177752193544422602554327263176725283616969636914560997348135196923879059929687335630787139968794982872355321422430891468781095269277867919104566703679584992445779122019496856519570910157377683399304162182424957685738069205191035166462674358496779094563069007474314302944035238959547725241713363313551455872206146620553849885720612172993779912579599281378637446859970416134185654680534590558865410077040220117498675075796051528685651861354892957435015402267490385736630432371850150355385596706511309384087075548301998352225515849249025975882549583027199060762962847689161378746013807329141137865173815291604144379692866041292599325095744360222778725709806473666724346345473657916200850832269757654254331589990517931220555061226011052831149509538965966882110265922851717389138813629457457175217901532772838679316021015793634470068475787290745195722839030330797066840374765443585377909463336700434250932408782566592123539550099949388303696969436158615777557370944474121644199037459717840492580971288357873941498841952339174315249060800140121911265154979436503604802062330040769761634683478049380159734680573628400887285592934049501735658086928146710773230247477850258144929475919688871496748401120470059755033298083016135235517180595878891837510034063007504563926787560601518815138865817237627354082155590818499682338625363925995939521877347965368386814714859722421786707436252433407330745135779714080059676054961910797958910265145487832660929455511252804859431273746364473961934008528791561493641632775577483017144809582251995909063190460095759546710260874624262529031765190256238227583241891578982731070550381761745221772418622991013586749671631245764394729485818094017826425276202905411780730703095749653016985714697462891442674925708223709890530531617828938369083323665210525856512745286437916968322425532603247568428563903909396281290664312631980216010393932373831492014526493611633892008903798887919886996654457102694093335156707186126131051158755584691452437998765857568724000511623162741073293252026206793010725201956478746613361977270988782171879532351354345338673603812839772025553976632040091539447251319950802982920581511543416661744731731784021720865047038794512524850218273623778175064278489701790912664815696353981765325420330241769260686983431996478560929241444450296982564836035907637017708285643910883686481638869486773045117189963541244620395190819312844161728836811410869642759477101667487842507977820092696339134743842592133273268281142840954063596451767557455411123863542032681571174177912555238422569387732917036833601377177668934812686451947949613405438111110985216546476733366573920523976915836382659445405285541985487105948955304386272029488289495112275968916309628554607123391579426292168921733702212059991846258762434027352953652817143631465125539747334110633547942311885455373818570123219141959816522147739428845407204856447691657620284262244615467308227148387805746204655088621505213613515948635715506703373136235227216732397849446912893082183812432173554395278565600376090196697564145868650723385545274848721904359791863974352578993798061152410125180114084699610658187742029139217357380950409347115139531080709454963079060887249406227756675178041025053047716394133457386050966727299931727795509490390156866829671709549144902832028011286776460930905028155824883620458964068238002951708538551963775514454108608997549066811980787726867426565068502926191221750692756093939405989083156793780267123550855995411444980434739039862182077601029722166835985271628945904525907771981492078002128039685624359755598142047791662430072059212146858630690526924478269055388642756779448258053480694917935574986545079067814070390025339419643781260485843501326592396130990832836668210381831235129016175949824971007732478352167351515878070829235774210704791635334471801153944944076933162604049488364353381130691944661808119049677422406360467421039671746637890415645025191467609137082402983999109029236586146829234124111551767311332912696796292725236424845704418564263057852729188220015937544275662616243694805954305242956404915885011044805275552781638575070601003393384410884292437361932955685836388587523192743141981496966913486318142202443224130976511842889227983516222208913426077504432840436880791854352375564665625000410137396416681045723876717190775635567673156042167499154555102135614814075634507324411694787219927240367468734171916323837507935816050667818768673130569124413187447427969158335421515176765183861009776143080151774446818271080612836936472319541677725247993114187271702171940942203210472386604670211974451303407848867792216908360095446146036474901659923541063623585645930702527809023539490657085329645146951858029997802279999670994285689552643134624979090038746128288457192737501856670783107281580228658107245835246030796743888378755906994730319572045695669731902452782785950999909130358454944179820743568376212871218732560524908932052559145129308766194630985533965804773170178774477998706738687951638919520229193968016125334907401776719953384293132343040174537885634703958514796588456239098093830815778238870568486607443283314549474557028603048171941226012833718443561073194899204468019608534677197106988677975572647596071500475846362129627467815042593969187131344847121079052363555174507856973592878211129518396527094962869547153085789866196664175332173046095800052118244892074131503289692863913481381158336357307645340451168492677027489648882129867338229235478780845244980153978710786731067435811455860964990642262128236396008593815765352609683784998123905803333821770278264914953771506104189378134457490247247323270472558177896779262709706032112238545200134528701367013323277118706549309658141088801559425371484092195029208675585780974530293873432235327721588675792551363701533255602481158586598089762964069539888112148190767598649037854200461722776263857067805772031987264824589697470731560040072042176714843025234171244929160827515614085617402472920421970512204109150617540370320823177290232652642560642855059790913484205543455415152077070207441170836946364696132059158357197332709109170514565147928564186101981335778042784210246300019090762782493882885421154238076616763251825143598399591440849639215836296662326592842436188298927695944597705627782006770568920470853194273862167333912270145772208460434411560263104013209146299084554545800030103550971267922848807512277724703626600058250932416543937544236699820803555426539887397151221317201678755877786278052708956895005206085789203234619600087208692381009508802928730774218302803516189711833038717969308115592429740108589948124109663153363974085032273114685287393996379094858864704255906484221885855126352424701126277026596071668520268850902979463936676384824026432058814456491295818127909358035775134021116404286932985762161944740149178221646885380182380216362670174672927002257016542013382623988752704513163717429915879657653397208027425583715100558540181185165043451655755694763515500477775491613750285012911713908913449720084143688186344632851501824528424537037499183008788565733925434075183805342716305144286779778633868867770125826122268626427724508043311637639390684607649814833562042083747929138188929632315772154141475031073114741354515697470171190777047293585409273668283096070224339977414805276385037181464005569617877011222133500947926654755480881260692688388874872318517816723732872100138774660108377954706790422253743562067186561755514332255294450510419753759255326315236895745685717464611599474337567210648437484689750213607627809832746526722523147911249917900285058211133821471974005624119417563545468910124559605674454058460955079842383324159125105277260206194519479061257563473656200039890887856557494183377214106926264472858629823640487957040315427314674841575806807179652656617208780485382752297547207813633695884393209783597411331482240622912908303888396284965002604395369153837861757819913209938801625169245588485115309456617522442587128061586701971896695161617107096968872657885748111979462776389486757820761087549130270804077269154802750358275205244993284537085136556005546393656312636925845579884512069191140486189176566283028779215037042249715436123570647646778099956661429147185550626269430562491471259878722571704528311210523830301513170787810098816581101729975947370153777273472942512837990556818481339500482527504754904921470365677518972552804030394725965612650650995967754870965903314199928994237200836887841375983777490518026663881056496230969468266795767126046664478697194121091241923302890109866217285199376771256227590547386268498898964987917411730686234404875521576323197204886247690457201028526136142512938474707343982741076047755429092916568861724688539945876865282283874869276581671290666134127737855284788173464345753930320356073399334714849546104177330572515933259369055307880294170622469927802540913347764960177869749057501358132250209825734473041927154014885591474463815352960571376408585070927727599101511578521941295087556087799534321364081151960746627197004903056667403616719153051021386380612732800441426404324158795963477721039940548854930339945853706031723109985508243939562006607572697538221963275284565061059158344813523304033404848829138641013790096418993326435842093123604303543888826584884512214989868830070550720809716551663401811486515266839938003634821398400868139533795483032067238502791348955498825510920262853815595822498590289533352921221201470827652300568000135759555317949813967761487582402670730682565359645321199954898291763678599668153369151746974503342206501510177556448206409410193194350400332025203607839016205502741335139254200416607564366069028021686542874200098057953385860716166955582336023860520761136117351316618462992381703412557182050215811659646027356689321510551584730809598825562811623885780811565425756907768492540641728709298701304825557246008732386647126365773567611527945584309752343010032787562852096194395678012552361928253243584865255461093617796805939316258338989384988261934490326946680419589009967906969305496411420601569244997129448488226537679707523117979898045455338504102632732608388372098805524358762216194706435140917481219756721172835317376317716653961127170924765528872034643039119368757015264507596014454108011877360206993658061345103628430816476980824824389515885511340658279141900827748425273901407145666171765306235724439608367342530009959426587453790740142617308970879032400887381873350570038746525894068898435440449187589043753512107334676885971283998314770241949471318490696076448390432404502781095924298017878693086723844009249455387762954150501513912336926775462879109541271698523320812706757159536804027760764054112999803313570499575366014846586302247627176034743585054772886747810549967905040273055681813915615192462893499603081181118792378799934648660263211034565856202063644521251306738242065193989946563067370851927637333092048207800133558322443229667162954780655092050554700476090537945757637478469056562473273288567840281932972683144583708354717045828818120718835480000478098445096099738588581272941299842917091600413377686970057275044286554157468644925825242432601791853154290074986145814570687241305257721048442523578623921849797130311907935179178408412057944269381500146473595152569037888213854270822262674490012269888547177804658147045655216759568132558818928160066888069162523705762741022574540222022761008616597402167284515299065335771461512475322208441246088696482608669800907807179259733908341030001492381999977654966736747255395998827840980460873786168768395425139144568893833875271525636725696203522768758471438975200902765357071967491299673262644798853307348210875366149025030170474247914954651614735423660883370235628885433568543141991717699300064931728423084671135956107120631662347154609005249095469120332913931801463750466408302273118829476027208849660867756268338069857429419064285745989050843639213230891977547004256919035225824717724339667978811248984681448727606828946542691707429217076066161953268591425410340125853759955259592329175611890628099265490922305037236841014248880539532274191803365236077938726707259231223004290134005856531237851355499757338646002188191560270318898126746797168006560896944527730275219216797773719362987602649518578717251114372817591588124690089339079060898532184485205041078600726497952033270091484037641870653979081424204508290091707615613982338267863502321461188050404943673698877097394791642661143672364743065469797458045881680546457059929356595382556232301898778331424713159411366796739017814935748711065993018845255390488265137562619918800307341845020458602687767719031849848610110000104633420148465419109519948985481033750876047400941101041755980124698948817273307383370982375009970676209743991007184542780291167968109661810274332982518612649526169497004736014828374180600825949019881379307968819385501477936538968371336037367610828528743769275876428272752773825375018679700016275013782465258374165424797124574271440438858872838950165362925674441453715222957169226170424954596992999932699314734051163622774771351683773353345815636641658799677444217370102084018755391803704473767821267070414288808846531142562688739672027028992848877233536562076102387954315830446057813582382690500369443163543234876183709014351438115298875336724937521741170978977109331475355497364182311923350595978941483950628104318230067030305527870019234746927693985035965628157392893971109224095788165053533757034090169428970050205070505210439994870268585275284221470902916530967194862143825155212355731523107570896944977111744543899619356115824476277471834016187248999553433774037557911385948770776253355523316535812946879488480858001003363465717508503927472835744119142390200882584314622382948733825381546224089646782498031484470978971985017934192036675955732125388445736743186979670325034081553667515336734991875512749475565549394996644266173842671171091122412702389399248507050555245211356040455625055124434719947514595331690978769506483385694704305376502855765195311330127223438297142472166007178241354771882608973417249981503046623107966625031427160637024060003667247778173817839117173196295439116653362149966356584155571957773513795820732767424960498839450300868187035814111290801535744036204307704066227251219005685255792480677387570231398859488904914165965447141970126182309770061363756280449571944774995244314246382898867186875837352435141458699642729658548090732831116067698690015596404077771283544168890070918639169247868409749324988152097363648463961095961301228935738883458648839583887092191114655086106363514801082378955118274346661142122658662519979855297494324212192607630047570272436421035869007342366946301071831017149372715013112485314944967003263140504181746270916448192301010065793033835506758149887544172929058001925365306830074972942190655433574768644767135914332436143125208599664939003068607453124702363416034534240066459315233144197482023388016306603062116562383358273628176150995433501789062327143295188549576054376593067473391303360917489237434645817541798828201359713538766601952064420065527272667598780818733276769745730875311084929404754983566411221455016360945293535727988969400111484808299651916860820872597845340221682318389568330957951233554537791213909875180422466819745939418781994508391416218231862635051086523688768556838657703334655392014887659804255954442457354973910486639471390940648893155565095945010656263919540219577610817622126014421538808329919775912762181121095574630410086488091692677658185332987691853239413138109458940268187842540908200226903458204531228668417149281501114309524932165557855607062173858760304915923435921533793000179213384307757300524661357465469149698791029282168095620597384641394962697554508092624101535648133819547143740522766663999317294375691098977724229371017682837882082553922625474460715777335705956586186624504425285940266067754726457887784064178750140587931025162078777352563976306006804722449225808562809930192327732886861303019194414096856821835697875257935454228633382902900366016868630222185948124022553834770969626386681693993400009318335628235665894354687625971036665170103563655883970899486767555968707958970349336520878169597153901562589728263245776599324443163890838783613859391595486868077090759852503687468126985995356058818320994580608943282417032178286312450902445187518372762696126368747357321370436877332206760402829889401111901798954671298481840334092268959122486378673665296699622617688050748564023009778821957318671250280958560259235389113793022058157525949695094947508886851474397413360252866923299172340386309631429223859983971117028627145288993365072852243728721601201230491868935599749893374524816306377154591035300745579700968588968689378716705131544137196980745834576650981726355159225662986513206788365059288818211542486549173536302263740921064269884555630366640952745578921001910894649958820790283969987158417278837736328194844897782077348707799771198228481635496097579325435382770988172097267363034753384732537818441237519243503145694320516088349967856816589910421297621035861184352834495093175587852299062212283787888033261551207133909000980699814026845767820784022902139926627886416271045875986842475151524660853585993705334775993557669855853637176154833254279755844190792381119126007261155315562987307120082434211195130112695416578141747691876743235212418882383912940953576124914846562458115081933072771355274152755547904273799014978302312185863077191022639377742560420147844558790657670939188041881797698919615845063476914728990882984483922675126451946726057386100997057057538244858479627004613909923448309017591756871760990781387645805290319409160228786129450630538077826497887856768555765942134281517935091979164762430223628781154436314873353728225384115808909963784971065682587319878713949714151884049856676769139570121011603683454176057689302175861724352397663884733984422647925797797102943142860678976788171519811162943407450569837568151511522632231466960951071142142222600120006776772661764109121047469910017751387993095744068017999926477792204391034370577175417944216811159127736510818064277015404466888641585685259017714361331606865832139032043814194723586497483750773535098464246096164705920096447012527013761177782827300632836514833379357822958843317700456539458677589399245941437826290445017527754901075743470454674548415583735702773160925575571650825395183279634397497668166125532262017823704978615964587179379927894171211481689954228011106195399043131279680457510243796802188579932766927639311571450902615802120692706053032105444358529959586495646495528588701238305433385007428172753789712822886752623423466222899576475103905001912387813781373456026035665803430422426475964318970858850536226949131769199612527884139722342812200935488062829269439928432185317448879263675697935828352206005840124024357455847118061532529617908302321735156891981540604385064225161836893891570934473808185304709786909289025342991028380065749447591322121607049105196858507907460622017591121749081945246647532791608317012317163343310941583075715308096685437834787794138379241090433564660578545583657244363491140910014166516759848363551870222116578168546773058559157301962976713823375346123676071009652761447060638221015611639185836473198567383960022268621971591776921243270029954615509942028946432466860702529454835347714373205600196354857262771767500030290906842134190847774339618555308055831842671847471429518066629497916708517986132054982312356917453294763891563005931330487133144830050601367497055093090109228098835330686354839835781312630984344354216040210087495041572260229064287790911744853217772216772738291608880727662160611604818287125488845619204832294767916458462575106914669326770265524427512998966081104446365985002227192913405607181291424000167062258627716155844615072037784414786269400063142982023182315794476013750472092124389549602699299181595950402745008202228746427972435375910524054640023628755566513193880050474871947578742202476689243251388254240305839305933457611170853353053352874957395525891745908380366845540595052627439913664212350563878225954859397194769852455052290902380216256013960934704004050944351539173133523817676973941742287025352232030495282651622887584577144328845831973860334743112541762159912781058640506395121367830264133462263400333881939502589602263725182957057973612759548491981563513801035458872455603451319227027215447445535694761579261515177873377418899513142490823380262652169111518988790945455423676001787544218697545882489138863581423638931283960895578165233898382604465923121767282724994033469691785386682629391079592961593696474299508424536966618934453805808395595699202748118300473455419849366760869055462190395223481126819072124685971955408735134469325054821492542406669230546907766173492679938528181329815724768768465315572488670056223645285979809874993689815296398626985034496043053671585329640260766048553146163450447798582488020029753576249814479912793103579933045045383733280908324136031271672035083582371892351897044544912254535016494740326797101478053942583870935949993595605080684362799107657721944046701789672152471158840199274272129540311826674894893312166520750546138484083823872947762667973485246804663596090486290971991467425401833024544638086598938406580784981721844613558261042698640727873784930657896084344973165660297170282085179426825119861176565124540119651816266531985666083884290381753691430228085027323672998694879248703851246681675382750703395291036358081165393538922183273944453069442540326030072023223182682225803738125861859085881694736096883129638239416707066574412381379057258244772396240035248644610869614119311235325220639124362711077037127126805809389550193104281421065486688712503470908753525062177109136771832551917338899252069251652306114412385634261979628465253308246409699568716464471911178598006033031446997875023344385561037599621668730654072889147206107455811539171002497175888479367332823947015726358030706037721746048504735387303806239775034533715780519550672083042878443197803532661031395583949305586985363373360449193098700098853772646670383589264306382850026278829119832738354945318642555310804707999887020397870531006051807333594257713722273825795376549571280961161683121250455733652562124258413658343781323941781975978465430513605723668718182676137075562109198334886072113190945434118446451406027350374376569064737641448353151193595181203334963992860397866914127656791443232270301425327943431333452563936665032352618865563411042448269215593241685876439273593235196207447945896373357620768396130559067061103294740169117028053269340682411604406914509436675476827850724360469635163829278507142098776654810633304436144036492334566997157056595190098874271393649762529465541270257123290855996417749575239979739116785898309982948688806166508896602052171746744907947977412491893218785172682880647415344145020503841516341459306014811218371617857589158261980862436080498694032906161847776285655812053925334106771415312594286866163545962011265197196298720683220609465430995358898831853480715193397443587481464220209554368278387832682656800331241447495546552518562461836865623902155125195287352946055601062985132045534331485381539844100690633014478517784480434647711739712973126631185849975112682240938895851829990054230764511060729856972497046823505068264167855704075707499267952384214412657704583025740652247867378814601773983859431061899723059521681931301784506840852959009987596148959896224693916674555709507264951606087283905409493874810703291129365492958413791845415596693786097227566824952317994595164122763082632488384023201136124057206816271229719904091618801249804611858817921578704474324932970654174927086468008309011622895616559067130946716216987834883177138691997479444289359782290190133494252253866587346951979543301997597508675817588003002423164209652720722866620018645970071889043263971206070185405633163589840031691069153032086975862390703056080831077673820676524990274848784627596313214004622203630009202175330068363006288312923814076765499980620781505167410052457912793813318197617906902500382898354890667454200547779307873979279103507117037443621183058989516143482904500600893079116310529543008459653123302163800933277145592514949146482932383728748347894928959764874618382841001549415411584329790130445983146760213527005482673512741613804089913689802792253766933036085918063655325517645673500960621367524794441247939159907220018647214050494817518425873663900279951483413846209061915708164495681499015405909230559465351964913463442861040833823360771777941221754721330423963389163016851920233516482573108869574043398233465453528055130677647384427711218762144212886528951334067207415790070489494714299345978865697959504381664059875702328561341027956345550509012283200722238155205268525680004526602271119412856318096081009075132376931281037892974393862742523457657613528242223771750698018075884247262706186644682373485114898951371313516989016734062799805272013821524376366933130784671615431797993850573619170659692032389605108364478560177634152192734903944208001371483306969982288453048389043035462654389182996378694480217345239656776117994047730066560360503213094026971589384225236966103320235608136981686334909771019040547043427314475363261554511968778141479598962456394821031737409878313597954374908881984501527129498157183802096565404702521845657985792175103361466563189409774108434139851250213683565539354433590648737244046301592475915413572088257609181266473738186538872993684844514427372356096689990811790104033451706151452705976609481960642817086940783492106870237805070432076647441477878461128947693541439353515903661388885689551194688678363480588676572289159511593548660228240752606424602289031072326733983987352997601368028678997329981740857285125785300585526914411448295374335131187058814260593507428856431294531563472921870606836882416686660032509776757001055866780895350861595890756337715393449978710239516932708253691001381359723560201985292826522910336592685355947502980842001558490436360549333426452953039931042772837328309446777998501197766510669340689657505258797470785955782353727282479888031225393804923789151259898427394103141097579549533840938698291366105367103729791608719147546358906499249400211348845304280129389501317489236161809172416830408058080246486263150261606870451487235891391533437699474866546462891614945434539446494381314334618936948102216898888319007388350250985907677008392837338336662262309424506346682440272341230101235053609702869225810720881498132701891662094887232164992333182716360331171571183795266248443439004009213305194010469752042600106186929049180372991968377408584136570669834064529721501247310444912477613849985506762553954049861620654587157644360391306262407946018325095186003799448368549957512216804755048861297497802564739724765998669188641197742498799769981258185415984856681700093109102563670597646892260239907099279249333388396063339564608236817198788745934188427484787712934816304944750484926929314461574531898434198418355986709641443829651449404429165648776313950590450358421468279246239840858353771604358608713021293093311381635794995137667055039896818549002411435500789149170081100616673555350939770854941047297416544340418050890363150609905055737974766606489291060789959090851809719732696326073865480982285594081822201695097514067284649659920962599950728084494323352827426272198897452349529749251430981377649628324160135732424380580574138911449440526024757720261938932420920952811920017185476240484555563006252241318745624722392164069051225418455584905361727475454207743295429388782186191842354863544487189275659742915198390060695060056296252550599951284231382676445722919332869105992292067228827391839024862534624027332721375038879100396164798985314107668675118019292781602861605977054988365438159415308699137157897433419015593484315275851810710133155343820804247138013928575287997407615587740096952004962747570678563091621584865741070271507918614303264016424495509070234801870318133226693627781446999313311101025185268092780531377539529406018436863056817219135573147700665729771184535893705865529418336797153166918190015713798712632032604683795151264050572173166501094929647731789448795210360701072221036501762322287842564438737439762316037993730018623840952865595648153692927424134774218817904005045803917993867697242830914664691531016890806610681706069271399873814723286877507269055826417822451812454783801606813901924170401544150731476956896904683426161171415188484269949362588503217429859875698231041042763202033731003225041303478167355283514352969806804746487969054299701395822779501067679389649819848395348506437281089730632210638180431044912856242689884998041468879403845794379894475174345499612738148918186087467035422491689560100392975009019863270811279274092449256975475691907298716795095748822958262302019453575726091893199705482005489850245543913242499985247093914555348380576738782281081829211329760474433993564874155180029190653799012237363918713626088991787836388093383055944264813165394162651495554448498358062714406462310742885274490049458489385081280788315132661562659064837156796593635888783230141942361509598774997140740502398127195094255976729584969234090466187336482228340950012852200112973925205387082876300452962880832346663814466984725150589275185050984697377605632080521303197991047161995557515239125932450352248593313858548641021208209923921524279795612207341904733960930526546231429134000502167074996792673879124572620009242918012121416443740422980936416426107944985266670182996916145953856091702030571915962271475597915453177387572357223247587588255950872865949013802998398559541517161074213220214695868598424594035392359365944579674420836722641465291055269232099180928292077926387352459194161795119485326031617051414214047815787275554356112327229306468545836613765699317699360976542408390088601260604362880871152294977860133928727341291590498140447674650360116436548865453568165821473755088190171039910720813897631720359341593768182216168225146673571790774719678681681834054214054137492815618015512537806502699301397647396871075105547378322850865375173622645882797565399687665960618725208701546969577583329425375679380046110950130825483948253801499727039025379476695011086925547663655284094550586187459528070550640013732495586418636743737659138096418488621234108924210014214746668449133524929885242853550107279783686389265439700910156642973600701984402264186907627892414187186668714459447476580113403320456165603148902027297478991106686548424435237680499223053577702209922964481853861724861537410024765833877430819726269863090640966500824804776872644022705938250542526536034267252933190659195531522554775055232639202821312485999649797184962974254100136738745071272476127692893255244945063004204445350734031486824374762831339380357914414245065781092622948828805545412553892825108775242852836265961475758789935815983814630797286152854599243120592925141303545323367011570769136711827436179836740474849777364230925116406112642326808567346357884167280939267326642110139216276813693649549910029988588967447204410211024264576463025025043971483440922306798203512742586387979919987099989661464118411822688486191945867376502244945272913805993363240526184124323748226567055957739163520408029366039140708339224137171259557402625888250544774869072256152967633816622800385160496903278337200139151556785809658081036569889641576915068965149169530047268364361279783572136211032996269791521786498364403102963101047368179656359043549622132724120219267692837333046804922279297277194597364354034130796359534707938149053303060571390147108605588622258628363259068334331297575296700976158118722985780360499933489728292241185744121207205717348801372816410875593993934208047272011423356986743967293285015719989967450827675366754318557450266272362776595330500615536673139592999653814499689365800875868986447188466155209162361229211462173938026562285648451223597677884250720249523874956706455318411467711459205851703719049722307917985289247612480993792377946135213901810292082848051863884735790219653011104720837219553138409719314007433788976106066767966487918825008821715320020445101764611140038835281338283050343892531754688509485230857125406164683164072269749596724083273472257341996863724390586535681229256811328772117965009478171430566038724974602272789626776051159257520957872881310426526628019044540020594122309947391801353268004667011220253987559587681683283220831946698750207436438485748260192240022649844452399087585359547938712061905515428617896848072404924734776630815372652029985665059544212914942930940977281933932607472840066640580548358157725854446086212240456358290905680166229635087264233611436723303540545527584595456682410853053451454815987345451016682603352419879329529755495253890838174833564510664058589195852042038914985259262662984648762425828766616400617607356543178468280220864494945730372635109374709427505966538479950835658397066276517013247743849770552605987892684257745525792542067938692581089666667582382335621340170153614100346846964295737112322920858477729691313696087116664814859938171439871346519457216768747371030164978437703001273369982201934324037085180574878069782108311369667090110017524094809416395586862900388517271232755990770934247970250537073094263484443515088489343600858710450629234001311708053915603538215421964114605547735228508682690354169504801817114901731596443247260866066633171338797681543467331826164043970673401211580766067078926318188207458063264495572112744420040211608298639168104303141774832717315617361179579007127409087837826107358099438997912806020041586191094679018732150487480247958113911840696353549051737432780215127508458778670156754306514166791450179892317318776527669330391540034827372605474715569891599296139657704465270991316335565161712292305478345238257692078176674914255891051404306103191697121181863163267941405930638661609832377883846422862274651982038891955462683335103061803314692894088204269616571856015741372509471264677233964048336279460471671935313937323480669477733482984298105782892881830065995791255968482517048330689141395822690471310672034807880782589808538067821609201796000895667273065624330474204306267550012052563791697990438167191375089226297044827019948825579793575951018018600060877524414673369060353050129989316916536798331181581220531428478672701423751794330996640601090018352674382317515531048683058235513232773893515068579406374324657388363797152389490901710708963591863059675691553073688584070484122797139873141566229010598541096728346134374726356398619372872339352947612511071520788715434092002042471594047925492335115871261044465342782301651720708600249758531527379887239074324195345433721730344015096736069705181078635021007305905597803743550424777405260205497089751441042840460928308814878061429740194547800788315844903622099635267263531237469128720113820056081581539219550866661846451964779680226890871037572427310800511243321887816345290202150474278707055305998607692102256357361574317907837880174988025387163493674661297780964827972260541720378969540269100737921231659344376370968689334255633103504477265002238792712098244341332888198902748692178278104438564337901342430636704450945363841531344750222071438231758350833213532343528320506647644488964696072024095236124293332242045108536395332312846397235300192700075676619554119041405896604715294125867180783001313463254018230470861110699148478641250738265697228573567290012606549130160800334513976564039308288542116857662290343262621789737474473641896953913032556544217590504758491136836276737416320217334948203442509842022401616150611917215731402404089174109565239816207028689984113299405647794461604810710915236483253586572545368054744243268896853049220884065796821885125671444601341016008610575067406673744075162479610547005912321856399633029343883726659825895851081887997104400019304663856988162870454678400475012519413888017816679779718805825124108174689518443572420469931696166320862794453346450898170572436465661211235085081355546693150125880392347033718079591528750413502377738180857765370852014821064381409152122259983881117520112937232285853495499113241925388701058189485898378996848370903821009126537737480721530942738819564548647921880740840335633460234262586272024052058144302425838680494405202253211541311326986950914571514926101790464853204936687496147434017614753239337557406718102394862608099001916780711914832012741945901192064772186035611657054204439846904784919722493262387050684999621363407397571176226158467654541603956874845268744862082019067763435426798041115994754315977644433994523615335714154329911112881184856721280278594654245490464310417497378326494564528312365030709059964415251322807670045487663059484131500764243369663640943260719207729522489463701526901289271199576871122340491421628567283766549088567136511064199415340904966786128331006507095011826377870893358162795958665094852577263258718765166283576640416480731835710325461190946127790565967421977243367822413566674174425832490899149630710590551952094431511121290507711389884510029578708489489726122411984210045295110694393117626962670814846057657484910061604181697569579844729839046885256229797928880483426400802009785016557782810748817190457228466177922993667890620542294927592247771699119454623426422872488056303707303296157181128990561250243609367663746055385861753240231993300519936406451232383875610457171727118441076574639356984552555005678320644856781739051958114960646604161052124409487858674691729050920154158145542557004420898347155033394041669618732713389121075407287054470012735780872353859123401494881308807303944367462840767959692967686650390185347753178360192677333541218615654945744260253903323105288256348026982067819477837506917429637506886075825066462635713659509038771668253802915146351098485056327721901592130509862527417051615943982016413563246020408589183984899481976755456883704860235967766636969602145075715299621307613796568792417539906388889908514158174669881837327537769785447878156924713907283311164236176226880582947320821614093877870816406160729038527049590220458040746869907372468835385306540305739216948791414119840225245455280324784882904934101538117316099327062555926223059851549751195610328617183927747391492685172803319606893892648057443244297088421168458601918603416888868233481183352687277787418492960852547128397401591292876234918868397500849488282865682371102379359664221181015760362387203132795160863688468658715562949488694864956222934746003362687940546496563125675477861221633522625096013608083968203177755700023438235859994329425171380964283224803208913963483139318152820372842047652547621419870190008804147526873631570972020047297806014823769080294453321491117574057102884399449203520572006569657234300123377060567945257709496721339034791460269019278227820905611151199103450735134388114083208197529168124715264349752076759421489756082376079422604997385933494265470656431518698333498901386655697869000995332013774313975743847276992183466016649823841435238506434704684674334612759388942529955736697112002598633536171527811202767392251241985616331014631701386578272301276521405640614949088311273234928982414817680400677033755434471103548568379368935419008204155175138821946150103475873343533718738283171689725527152114993542937976867451830888267418898228784194918179864908391434644586394459180657848460039386506318483619393694420914036294384199144198382740532844088408204783475090020130471553944523964596576933861217553723896079212891011220026704925437898701465283658861156160763625989754118574563304878114754144625473566210895133132515443473935764563162116526381071870496938383487677561067675275532891968632415067372146139157968570603874955560321439819025692924765172213587737723961152760751529672829586696761053224196467187485138482622805532733624848063917782995738324960791136472700513432504562832889488274615466759146731141826955325884944618042976080306324732012820174624974639002656326044599971243946528480103626720749444713396551211128212934732928609974930002766354321305133236160828534189030663392719615847529138448458802100636741482205755179200702842474664463312603431966362475893412678445411286285646457648997516523484034957255692221000874224836510997876107116327150223375338524802740444754652343611196323250135193576111227408816816970781964771465685792906838047885844620502681438546935564713954425027594279819129823315737138348088845723768155476079468509989417162580358175187278495676796685532793851882541812190277376743344454987622624516056319716180109352762899094505522218752851701186178208951766711348418829393084039524523057195171209299880778982060701703739804996960741604706523713626765667701674947966749376194107171768488740671573503363843215002985653965696509642447128458564673674630595162097984586464881567290477015765063411915125060542103676518224419065528096857440594192491673905128943371216720761612003934624890790806297570019305558199626382764189794780662149003230970589736859333901169267584613391066890488756156140631862178314798665762191892896514318126967455359660605069010153775395135725015743311548520057630390325514219023147482385806525563362166958445692222699511050389576769526319423858667680813708974034535667155335367720545179367015480606568542054898325516699696229980902149937858707999375423760948059941991799906615247423003495665208601347606160399096714483708990493656702712876892687464943418821230058391427181189146848394619298852754870893408473908873491332338271921063419847549773642291866370992843865782252155862789760339213350786964320255350144713478265164857706228010031524335207408637298379203224678295010577452421530937084472730425150042222065399042692886054674465025947739391372064987437176946429424781391311245619207791849601288115115336696632449633310481366878682825714003587879270062070030651881551516439702856029139201042481400472098471463776346313005637672286925588151013865834107761705274123036175959148525331146294327431378006034764995023780941727085844238055657463411323588960717334823412658929464534176374039389427266766780897465599507801740542440685309284876923306114681661380197074469506802221037137309335443916051272708878619039522708295459176879742908449367114950474523168840959887137793280872336557027574467269060688554504289364943817006418381663587365743429071702302506015899177088542507685045168873535029509731769662328817466092248958832890444768146001270621786132808005681254561137954675592785034983724894769549881199723809183213234570002159180763238598464597574684713362344599806505823594692249932238403169501202614987227396738551549818337214270120808085176044632387792159444343611642813404029939455965465896029093792200333383964201367423744262599790408053157398935034802228191527371846418439834541473229315958585128596521982853342351976138718013631582046109171492128616235644282168923893258516686525742521545083570050304524625417285228045305186703486045776320477278916555384544497430590186328271838538684217901102754833298692131155257120862908306852993463878953101158787262637594432554123998465959898772655923190047504782759445035931551731627651093304624268666714000508228853242033244528412584515099724842901584643020538453295301144768662452709603546960028693815622984644026324218383594464958930839243163163867379664231594826011246974798393947517379087299393597453785770534599939456488488516675960078703303512743481162765548549815433885589636657604999300936003243989747944253742240677862067559878385762290939928752037038305825402829365179311497796090823748756329062394933290253819680963992533018717876205826917317193112207555138634731024071095082228820074629573062548371392118203875415426378846387953836133597235212947686539819832286238526777660999335800638871194333171723573867560649792936233750960893815712956615137009587227771316352583982927672408257275339424279593864261313211045264416251999379225981619357562246322373628374672405426986079644503647075552551621437278107893322425881917084017202032604627284553901443362238876131811587576994388889102241743645169641854965466736547773242516239940478103679453645893120002461726588979013493522162098175012700216607543016553414184628083179506735350878547921619005134061620642700056393856688067829274708655854752541205126517627264015389786261391567286953523521491112687257887187892483318339979186097907749742672432074457409745085188308714949802774700740564042075242084332175691749880854781040022897675997715509445044853831401028414675218893928851110415615728496297443898379024991401678671153404969164339990341049870758171931494014689130890712853690156304042730828024998322416131764782173958557797730575742065147747439425019799130170572256913534741508227829426123515334656433178512318857750921972744135031132667346574348704959335732412278745149283696766930431447575516256126223915786089844844198376997581486819715446999640911708704222130433590720527258764484026707115952588435860826392132588717490849622144971652937481004824631176392615300616865291709724169504577620230525968043631642099578698034788316329313836007918902966502525121773094562590127492164101047020318792374695227313248772592730073456887683480995695752278268314954237771829705713105187273122300213995546877689228577037593143437480259467317362642812861886569619570713614342545311481369738335602028890051009792231250533612601692905269865659540023213838947288686756567341738196776726031669133692656605231818353286019297208546459249372392552605762793748198652108971784867955208335315116461394437373833677747176190911376981023328854236736992293402928825137381345231511243953517805957221391437309698418769763030526715192707283386377536480948365491869306115618636017892277197288569278404692735818229502992501090432706945134480262202735840409163432321081522863703605940163986225394992992343040676494854176190873502280490663173605546049429311960738944002912451386615558982745639451700953321794303214230426352314002530836612340994954973350643966386161403504259111365384914206176801133699531112559360989827744452432172540042108154529852375150919693042701964980380878315426496058981365044877338140364262957309844007278612960078831277228931229071186724161505392923093376495342765175598003432610331040092840166610103814644362147481122902278496129684818262987050605394699102843975732976786310112671943103421424369818915814640549680117198002887475006496366978935024514562993314884397423783832528431409726901996296591580670998289786389112241441370339199059572674125368081817318000197603660851646605008715520561749192820969854198473979301649894710467059110694908347372193091151560347217838717064088042887744555782791329602422901528905608842835645988964265426266428361523491245515045949856802910173527969971274921919250082486946111735453875612363183891253924705662079793201870514718060913313134460219467919625116452549550067163066819298611962134332269942499707632874302870241920031546393139039673207877244041719741245870343323361433701193705751819885716685908317708601843505590509177040203054860091017447200777295551589212665784620461726023285323312214422397028049742506415139812909849191788924606693576108413423886931084145458021136070789926268825300776133929890477439551802512842861518328741302283627961786296511907130085517825458254058619968643094172871415752513603120431057679400519352955815077239409254024915582888223667815986015682830404430954845925857496029702293279570753591088196326405084715972042008494384075570401252507956461868168832700992171288127116033803795522199058698895096048723679812334639881975450615946993370097477003268340948561139235159675504154609593129234295467136333501091517916261198407789520677996305782790149353844955764783318945819952271257527752988723297726117478567256012415889215632700675345655231262529542489281123938668581231121873489357322144096821647524784023137764276923410937360950981787685435000531655338908637738145574305640031223752807969513808544315974192527172382050252049390048680788965737602180761282339989569057698664690520500093201472428189004900793584326944091752210850958073523309390776489723422372990112607817114459080888580301914103051066508852580814841588350485770660985967094825563521206164695902109039564297612046031005498542910577232573085701647180420568930707566770826585371452597723823445549976970113510570740219632396317811326232758753276420079285915637300899487845410207432867601272301967524191187381550048978967289701438593295541179632470093416242601362266806119774532178577426541957412274285484412047043877767611994945132487256080747575858152555335854093525821730349672482439648082254690984847958783677947303838910279076187239829635665019597899732353405603983226228874210400530107774320695068572854425790164678382067471728789047685376301174170453629350570921255253088255914541402177365362210674369283957963119195994002883198437823538902448528641622819764932409949378061672727205453143084038613029760688223040319627410151470576039414062293494339622543206964310300179076802311757678343428572940260032777300443868662029750724932043274368672987845179110533748848808586989853763619981492902337422682255449619117260857602346025246511979502673889054826829122233785032551747469779990853720563145802667060668908614654692970562597181386360900416649255891344585639137297901631618499415608969390145558811139995524606741826365149381738253331524547525024435883949817702292154066056842573597289333103077449783385815856230159085397735623006197490811371378132120726275900710649971143137179489956720092331916731528650761147383214468761186523561397987503122597886953023301561831356360718786544359492774784932265777291324206117355100276939830328071014983461985036795208995669037754383113586169735165583661029153351744330125770721626682088379764300312682389816190069663363276831458494944438482005736440924054318087385665769755734035867528493321945542724552217961542408003922333811292429583377140556609955031615299987316786029705666884674859760072348390837507346720699954732634657146655926724959681230209260895922131917131380998174278848923731620373784091197339243642403486987690848378734486529895908071360556309836452393227607047904584312126058741743483294600862387623484657444789290773216882971097422885905773312042486701116796759570143877108518052999023731319707749575320254384837442889446965018265678765330787415845958468015241645518017273844066124337886595262809477323658191992739328073983258181354137304921401950900439007800025163932625384371452760578056289788384137117763629466953204076690898783113472724955541146275247728922649747312553848814807850777779081543806161958655094821315683849440696409013068693434193243845648597129535857312971024687708067303391148358671240465121737575321427919805362678137949990738596711482418184268536692109170276482422403954041492611335712159707806381159954911868701943311407412363918216071889223305640512986541760643462187463328639909495814945683840140651475032819816736513621762237103536081516244915656249666754080542349992658268963001759665261520996520290180129477979839689253317636889464218390743367016297079057290861397874153099965524941826470210064279983460852159003031917333254493751718035654988308735267931314278860368376133245663203825927636137038793057503897487862694443378153383749751853348047565894355647075105240986498453464417121341578684956729611484031202021563335007184216117048153777276747393817074562331007616445286140703762870194173136334365156054287850769159246523199440283408501908756516856310026599879519957133145433476802649367018589189464664725134031563808700718577526691558203311724817288485904091651137105516703529587361731481950734658987228264572722232573492516782125687761919502258499995029951436362670165639409277197215477054091254343924248611961145674534132806549963105188369190934560218463738588145840905138219025320831027944623696750685325718720398259404711163962616915678469198840588589636364098148344961272238623355491770405546867999662965433250649417515860561963260205510597496868345375283732563937357306929951559179483376774462611794013677793169646885953288465616028036294142757801054714479999276510100304183059836963432864381961136894560823778357475786187957817054624240020947474428552941562666741374498399526494667309902445230359557617194373980684289032896376483105618975076153806934740040658426664296002054437860154253406653216022642264735717808866652673056108119076381542346498632789400544660835270524002076726078825423925691850644656989748779207426756289820904436977394581355526738213298081374685730800980133212535341724106900631192318288277467228924705890169150697902497729245766235254210577199162362404005593214175513572731138021469724779367002928978261719534929597315756093953885636967460891399270385840360320881231172184885681101476715676902342921671444030827911683308359397436871316322977760557901866277177746039967779921593774224510912300034214044496517481701334649559760640073667833583917135445043193439445213199964658116224572130773205311623396228484867345534676900481329079139523593227934791042609020823910017473076326096706143317404837156850506074110715731564606030201752327573645312708384006728099097372278686503737955765014379971776126022276332287731899139176275932018443635401874763160548034342401872476080952116303552366575065828048938285219996807284209403419530098037805456324755992145872285434389187940009098483232908474840622471840648423896682493696700843129922342354254173415450533718551566376740669924526045563416511533561127720556504117155605269760600241546817980631955812569082663122161208831808351287691162739779105532353395874435189719886131198766341826984071216211315204342668519626772786619469648275295276382106171374205317168442956347408160023898523043388164249570868749430708953571316760287119355900527184506796332513136595208999511941026612765836153437738133902415539225574752989232626658070027370125846227270394862872016498945214617135211187052973474810451787454772946952421558828327619184997391554619862286442565628909645333364066319715308809576402614082433431758544566448485870543308546104463583557299246877888051847072814595478346948874610913676285062404595548618961041417515956894927920185213170610082821272417019495458464829314259182202499764292525124625319327330332935525535937338486769939062718953436518338655867044770870686595901342360140694936115627671537501633284405430874291871296223689239312094269721399623239163798126942792680272477214519356747510919221844255081957316603050388193700390255094897889633362198901323595784970137600688161346922026071527056496090157782915579182743445212725377306469015992506373214025974698486225578634794174743103570714649348362750301597502665436176210258416157819787025035833583990100892199721557358293501333866125894404176967114716130435851675153240242206507200089711923093766156687701221371004440003707838476145343918760451115502172081000689888620322770601141778251651020153320836274223570600755674599641370486554896636060737946054689889637674363104817561576731274884897731330476051711010991872947784626228726611749895995749692772215081176964439271805546071113249560755762167615146585943686999281997554017055273892350067082430322004696622372777085340270299096438139027728415084058527174651391925221407002661417437282596399268144706634365499649022149439769378922247750760408442112627857292857090459998571128279258755212582715719380795652042763047031943524908935038751661826297088280407361943347097046279782306753585525497444997687288916229261938998348372945518747942733825918736786500836064123856413299504951453675686807839275082002254176383555755085319320381637722207587186249372508601664532789770963340610465257680928235357311388860684938046508734296720170234630047976289888786661468430233240945374853114427698032554195638582150199358500546314236783589177206563846236096138444212308118454024214229865379230024223308790395480614792094425137799100738390407524232896778720122385398463642460113555441570725854738813858589839012139058600867667210318075793908816663552247606867812554983219484561676970011207772703604907420963855820804081087413555296436456184206275068558548346306892165998998221877223878567751386050489681595919706014337869967313730242632628319600026219107818940504256673820273837790370051480315487394777592633576210833805378743461456262591275017288261270188246582162961047463580198999552589270127069420429811825522772775008386906830794212707016853041466714648627593722144822737181263947310647665083168796401131914797677199755819273321767193960748732337132394255438972929742562161063057047552091690747519436839301209889032156533670071558972966484802518258439585112696005641903876166561611253112391709363781158463526115160713865199480670279096339855121181562510456812260754172664299809886579844912060519371314704467938480000100076697598080390471692715323801272162910471784134014576519365719903708763291717626570991168926184118775379595254149544338043082342254338487262045823004164404495279194578674161276556200630981505056875733033741270622054457386407643900326764323110000562572663987175540639039937616463064579430074270483150789043983687659484512392512175466626094248493429204375411428166299351055811159780996848029520191543276608540372995228626175694402978651808003660885276088896153918609183139158697618373031200686641051622237365676473097201558164551347175234871819175597355019912777540966975397477507606600043782910664613302831395578236701662452723314000080436701992164905293371501925959053973624755297615209125585046270185438734188425557916574704459597978276482706257226080294254147349419208208339675691820631576371822362418361427795545755018796638394865825396883595396628966667884747845249560489787020116129252411461873382360546937800537907202111647657492752092774196543236622831718762298412632120200440977425311275158635276407455731224152106671341681499514806549456639637053286340699367856695504342841561907982198699848309995865783870935066727255128253297333302661799353250506978450110281123787122272079505952700910375994159768502955676077519030092254242895025634010336370175095005043310242101905437884266871063469966302389497569135100800993725822562352181005165444504497483843802746829104818503345074980308329646033698171289405480718580043304331730569853822905057972994210536122253225930414499781935028573565708463935903771593135872631989600087503988523702379996229374407368505434405259367818923638475120902196218283713803268356377128889645910090977510584024119319990714159466493003453292240303148354117500970597494123575905833632278124472700628535078848258957609236006074982720253591652352631558421753253470946287354791324767236839321324068667145454244923436045133226338441190606968413338882326477178304395345182851011299695939989822322315460855129216008763654541293299244515158368056113515579909523239255266946326415293904958466775429051043337696648558158485931703913924640286190501841824109516004012155466122147074438642946035388596898833805052512773637564592568641936214622693294917473699405568203017067704187992726281373778603428902908920488375198208673438685581398772529767375561596329062522660523889991504623813032351417618295949511734597000214270237140859315950662657761470380113495745841706291495177552688686901940091719272976076874155278370420380927943052368430400760261309955728175411996140826163062974582979915139456154543667281412282750989065995131604207514120060842719987271477087678785333857122947936418615996970971967491021183341751249178883783625946257755248236566555066781813853613422396654033819056426325819863732393981273719077218393456720061646831297650252707871777669883095861755925981686834592022988821231539126704747489972330132261655638595485085655964355245047376303042532631038128172504016645508744452977324172447902662368958886647165512517791773043729065161361393133980068085418473037777448314375360768166672136523111637301001651112909449348632567533027688722986930694436241330716688277054920146691488339566291999883542190857437795805253698666986911022162848092753396054142767827275079468494054853638342591838181044222047854821507714937524538171867250129830433406314834352797662138644013695955574108968846849547967448446558116712299242245140899511749723527341132102766335967752826256739707581309855272801612371174272620427051593529124382308378293648650245148110954876601562115099797696339735657107843625061246082190711487239217111512133598224602832336522814739860412619074210840709779602679903471310295802557705697128958733245511752649107047622523045647894142279863279269786304695053910527367484048201471435554862463382583720009632617019435828114147856661537893694387820628347115089247382199906491491501090182735560491501065830164836565164645806484224804229599301390523677193778510529069616122354909800320810512188286809511036892471937435115536619945510750218784510774008603699368904871809131876313997716829978128855293175804174298349280633439513018662254489838826509165138232124634475254929430585358457254876247379424395520130550135113692825345821466702517026958061408075432797755057728580907831052492848294175594530821660883931171922974533074070675822967059972640007489614346871684024438299500463887341525093060144730291490583877056113861517959931308459668408822235135205399074350295100237268004702404240773199039079720174482607870046179625954494416530761013940096979575060328251271908128718770100992810860590000051636403479050698241284554779468249414452636854458705604101496294198472856352201878424743322233815660210223114251102595800246792035129001387412275428087392030978743506619690801898422327064615040867016576928576094515453324594653088915073569455092723020527304458493220236695187794553835317720906672029663473440428789175172304145466846077965190491509248857715189393159557535845766679932412708554829747083816826043911281083616407096749746379963808965308478566093161712549558707234164944055711356425013685598236030075682862594868862489611386865286237838667993034541321122807992673866640700541089018191384867641362570929326460580724452602288715454131817094986623124621867176950605015459033865269859616937945268384265548563092633457115696407918895877433706294752463396460282702284207816079338005091857620717144578431000499382440327132501003362361034823154468061275947575988481773780517975067074382381088057487736423428217040923361198447918993236529240805027878690296793779830107202283144663311702073326072078070423064215288028801602212136145487090455276508358236440105328650604227968727914193679794430301526184772540620478553958485658710539830318559234457442166694226625817267957705235377806598765624084452998880658131396724293477399820728164885264534259612531126757676207943910092539225047259575182131507778876878748297879560402290051357966162122412984712232745070264014122429345887583256793382555245697640073042081547658053968423147916895716646683838836026033408456235985374431238077923871049968337746852515323425116693030983963372765040059842702976830818326147124278179081733008712412820179888452287963770501173549604318470422010259964324801083661681218966078023205475344634677572232213139080638762735751074739771651549547035233167195732813580591389809425891279867101414350088670599929302292535857988726912508966817453804660855779635048086258244834686451009856024185096736360978880603684199560309554625963809007496766695945359471623789294100127321066453725236676337290642987065458160990044002373247370536921334891052966556603264345160514466458004867134064714560488914335576743983833027146752649588895799665120975494237430948669708373852543095111721732080055776071683071318229086653427772653245713288084531805424499589604264435681384217493561810220292676148527407622385619637844702159093726152692286018474988014679250937592991626546632904500367347119509373707056561770237155520728129769902345085325807847318280320211898774954831669831465540933242193726149746255431626084525335087961015663493174884906860765512308984351590724328780984774701320725227056617188252489264879700885392359822688801842241990386024758114669727452068279935548891841766574651289937974895542870739202984399412337018521868229053771845336294293531838439236437729554189550149029616547656607012799493077455691899060195073566998097629544451271523477062664162261517320797070886892252965953224998893153439057707549398619549311849315356479650083310246191002744329306369009033280407992540031726266069443010774940081992221503657643671050529169509470708047799437887434172834710156275201671041919916462572833516191154768007278234384269435580112291044968201746433288162171995917893413182686621705205182516140134216933219384019612464708037263773130816872095205365844416970410198906275752204095712875888425720105419569833514071432761125524452496158680723734283806203789871937586238068977253714567983939974595419553785771206692955309489153795068075402666634895803414167052438869687830769935553315420651597851307857240304124241877423877920589964225449833271526890578250187569187719293625798335332524114239720065278209771138770575701613099187035073347137059225061586118820455330441167529520335444035671447734382805396007221794009448668262802653102943793171488562248499342779717007714346805707405539043542260962556900713115090426940043873703257672762775637012593601285263228681192864629526217208230510761528055734814298872258934521491857842697312874344347873244055404917014187954464369922344290332666392245878887235651000414743478215175680815682955843689651818520399510283909559730947555047818139863486051353492215115731102104181961691633415941682374111170545016027740278855607543180370307123156195985679626383129088460800599801646557060571932345189610784659066429704144763650181038467699969022481930223648661532781354371759188119126725028562347475416881301214414108325688180265228968513051589296977566706701862845692636909430258998360192349947924700824291526871492989962913752109400747727200830750716173990128630592012694582211369316211229947545220494017267194074337769975645966886348668525668114673971230202374397168580878848675558200630551807994841108275897107935225106611261954795833788101204596053299248938686742049048013412443170639223758511013643800200118434610471497864850870031660599727720035371766492069670345591729475883764790307664332370832334800565229433603660706005219918471035606923003777276882988315037403582494097346801107803428695062386672294826499306894522732704548925124464035756604721185664423681587409610415620428753200048214438547334997461561139454968531031928991783127320897697612360470905251381570653183238610734269113021616250199027806482272488277349979159844182111854481322734707851440684364838091351411402385033705465469409380725714734790860490569059299261681738954544033828911521542425176660638350839368484205201662846127245376595869068047023864953208959846672710985029697757055427841887262040964435094810511022501213176382581569658232568056164999326909034376970458880710369146509691214481486538315503295510942305658900706750579542746756891245700786079214409876381298267403757433859333194220236318758392779888016435075706323507526491287480753397253530686754737525671970579804593844473664762580193112528489581654366855140010828342848838772700121303807985119741853842748745083089527433477976341957518279473228049501833367070858700653682375353906325065878856556212364164023406709481837444950059909333676762671691642816101471245841187322880656200462351053338998047179520487003512400084500372990614887113662151094530993390012034282622193272151148642082244838579617554688129586701627693000806148767151143587907859744970998300895863840814805240817532822347215024712101976740615130905919933815146823067937760200424146154257115105026392584296877648992478909522943814513705520581972135911512280675703737941496842188161367102283211964173314726381396865547105633223461882099260965604144326032678877156855772121355172256873875392571977161045243323891173317520598584735842327364187841741305327654646514269169120633629494949660850297119537902276255877344472154794336681355183887887664499526901517613383360713036112495938029640707168491394321299525276845917456181595547939921870140750020548569342556579268677645587801922378335986621135208545754508110488915714918347613927637791701631182319857401891691627249082622442428166648984238148723161135042581861133855223909183810972370365415455547857615043621107933721681580260447518852341129620776849845226295711319000853797077058907592600542118126620775430430007963696652668644221026992198222311740874578162419707360700979411470402166277682829540554544724728888318281214720652696245915660963064116294085433330721385402429460219454261538567398780562369625984036541190109841980611920913094725720949886221382982250540379654999520687455764585494716025348584117874936822857544594456519472706691984839941636159634526400247578910942322641841658203796901777359750956446563757861517354677896042189899654232450448310040717620855724415604222188215198343013394736611033280583496324236919912162012194117181661828997087520180333688541635187809906458506415516238595611216380051793732725657309240968264243816531565779132912598186402582061147540606820589003139636663499188352018767662843995968087899823532763408238720571584050541736624372414243689252780463062387028772246309248663515827691673495930820873821464614031691150815356377456588274881323949214425811002943184992706220569024817339168709057757495015489622555755237184640558755426232099725781312247585414791764940724387265232309514575150548156200819262999062249365469143036147240325371622624796612882540025976538023562465419270308049804380688257817907958448564551938979497118601166126019052319980898470326389095314579696728516408616551327628820648595420935066924248083469376226618122717804564257810041690145895023311055082078740366285166269013638451337250074657978177839554549186359563982767682928949312329374512089060949453173707568684184780581885162527957756675690370888051387544882945625820183406514847861764567429131095460672591438176759950146815955831369167797842241648371637014382957461656746881125293332892195523712996246841656624706308161714077444245971454833485858614451580522255244317543999010974191742619017657664479769060689872902621320895616117799122298980149195785950134186837553877514781846041164519870611903881380855560944746106759963392503501256175382244282428467440910605406509219818482758305264377526608862554123421033975468548012494934416786890979178161450494897707890715740615741909494649249254616941958945412871090126640166794789871752073097316475810810221390683390354716991500761178891044250004055297458810083832153638303662114428579163403351789191044673146069764421370749674454123112284737856949920971641311996040152836846782964356330917932782954080237359148868209104301027875346731175601334667749052293476020938089299354253128558927678404482689170127280639513358908328833570628696684847216331243749960943163404228462361657174218467678405151881105402181216065333912983732705638238578607163552880578849585510940950291502189184634066739829622861447342377449121087626297865783616910608869244558309272271790583164038890319832234303390494827666295017610230020321165794201015631871415750954314552463204405548548739734498502205550855395951055502530277581132150743954872565039245611121056001695043956289989267707853741257555334010721281377341746757189939220027844158879582813155014778807376666164833908896484095297366983314622042838786625625256896104820472338549739277384686008286936202144093650584590748000984113875680217916662250385310436600149033894124111847071989323606703871976248774576707939222265803503305209152215869099414104270311696173375134824243005132036745889202986252443125075013204857739401923990555353345541925961580611334795461647023937999078682235650254401546571628658909974349685512408340164527064174332099099151626893520315055392500043936035472182074232715203652891268148566544839431884412628571117845828664970757211487609553749020365351405093502817968184255175568714565133659580263484720594123769838363101412872845782863213105529560808286643909550456399496863053928697837725913982783560913300803895390106877089711609286939259599332537871725981007709279685298363464427185847179027088613831024177108663573648842844990000228855263267370630080492091072953134757626217501802662978847815917102694272606810422644093155762060144935280376947718209017741236884967937531175571812654330869825566016494587592460842391480072639998105947867446984437926960389304621933464146193389045189118788955206564702900766806308956295983947466185427044041572026178343354861240023918178756939289267905274261691431915077735471065705368389262308880693345726786092097604605909968422252678208179234393892510514331722661649306800146365728466678051910703322039994556569599793639524304981812581873911626802214803524056551488693817983814917097359305686386202626162516087635848558813237301562085717238571312983566238936970917347766611142119727519825575489973369581266834278075810315897772116041446945362571299316761351933307861813181931125744210340713310522341860453884630895689360530850445078560923121771838276829906107772424144051525746320479509397334293655994017454327183161984809862167070366890737489165806675253450448009280677091298392587672574241585148063851590932059765696868033071679436094580338912789240704676954168616016159607967040612215405053462107805927106671708811611313831733558963344897218669721743621952866147789682259954972963856834603416336116052443725018721324094498597423911700690197764021645131216246586527453857334161587084954110082322230499677530281308993339236289525914468999786431060147950701049253060738494525315137980311576147918322561953998709993262283074464391345898715491383162998881353391341600664234048330411091933792084346851573951431980204503111361003190526688992580285184967316796111040479247792435891540440569911244467517623136270265803374118595395903745546859226201251410085308739426281239857687319717684883593196522893385506146256930828673642248826500708775347731565487959596808022146902641428775513153429041456448333132892097415372915568088370668040199177956318490274821612961795930995141738745189369547376282949617968286582140760709544279664696639256336746538494280899569293048285785505323555885627747289805941113519732667302271801875932819260832338036585333337133308764585436378599065318072050695401449835650990828175378780175948797837075702549358217135386426986615236488442454335191766765754741917707810924981005563286790666742934386102620946697144716127512798054938634064126078007297918166008682404242057637691979485179473145500092809015004803283871618990877296103950736733126512956756815276639168456565733002645396465341512853779635306984994709396238930084094175992091874570763432533601841690945281072353878302021897121570080871705987893260099950042719164294822436194943598284333013277843594975638509358540335459253965505960206670292423829482759851999962674442633196800174566862274716777224417380638779521925667560766113186447022767037766424829287229170984074731178431693709249679980036068454389131547091696119802558344178943357255048483820037685094632561276522074980546987361400455918020024346561852485319281744376230123729366035210830477266191569099276021601446761874758768353177023893185247892501015346429945889882452571855805423513882460491830184653694991573981871736480887616351553196315846237677607860952355841313056252825267030223307809939002567029532083303971488570406565522987411567430237726744257529735461603100773981060421069857701913570685075769296584668896468451003816675888673498562823919004667995625063290890491492370667198212228498391201962579426426347066180309408918423289765071522155894958119351937316567573903922331851642837788149627122507852854604044864946043054011939557056118060900137602606009880106489502652820618466121360808917835499661058470401142844261221208309320670150016353340140538819320810190444783026055084379383699205210631738359531758134138741675128244504846606008364509340679796292075382835930488492273452301061942300838035348778447788149141281182152901239384684734915384755860364593600245040984635577582524402003098255136659570570807362848231994809208612551428204146415670734208877518592957305355439983751009311374026442650329925564682351119911636508362850923232163180847763745080495680025957758982513470015032089448963301532107726966506833013322428549151674175449131283713361790056774975465065087755107733170950909686634516745288573206457480228372075059728035758467558654484459190964244591802250398440475622286236350081394214406140296159859668492803223589120632557573602216995082260669244628818951519069935138148694810475032141969140412454403886566198440461047887242498110377249734273219783784809371419478398062081595296835991091031424626209288182462276679268626723523229407033088343095020934029701426363067763319727029440243745844075425757270127315699671320785498142564725577070777266801686005887753326031671940319191711425325299383249484388063074783439844536570594124384986066073284370508918731405178669703812977544251830311448690816173043755443800570676740610243683364219134549530827926545227911824862040392824566065622981878785338109190475016541031212604699901893234977819727023167151116730222918148862573935276243307114514879924692433239950299922036280146116896715470629774490473820528329843148966823417514325648426573036748109386713486780716826523032083794101774469400308055089719480312557238297791762705099368348991282713460483627886011437167406827026737854466510506963228862265156040937509933537075936422556833766340637014731364730140724901694775489225389339492877508389453705583476511981362553448824302692553631511685901033265045584311966279183009783905058148359118924988152228264451446350504596486593325348358169779698557923135939770477179463299561375032725692976211651368487240428282224630325306436103417733744696341649512222726604018444437877373623896810009410785269074473516592280349646432934602391611713386788863964300499557887714698198163596120429589462067377639135968831623768179854874045750923175667980029999153719154384254477570700197161130197075183901114392185747872423698246003627566737631204962575778844590066476697005117162289188884913618650131946675417851776443963933767157788070208635001034688261018443744561748543077223204536371462333526608765388067304680684096644216177612672016999084837521337276610770777435117105347490758105256694991850931357667362124690416458599795952386497964479255215292584617987218093502824912488592527331651138877400063156191284445364854884534959970331131176114197958307778868661588247506333086746851647583170763918295914645187890709306387767888897233842891976192575016317253421490219278767904013745505713650572536902475149558795697897694496350348917277937230220722008770231332993204441565803822260402255798048548741728348642168402752579891018456876687134731430322430143895951394463877352879709290690771590086652394124056225827636659058725262624883159699014709496065193196526598916335194945833532891391172949604448032174071758234872353917981619124354885071384616768859375286348769549846691835273973858875603597306779759617802949525400657326486626127858258369306665238911151663445345613760861722450395663578157936423717790389954662207538108897760935237522552329394337091308157556473304130787199709988925408412233320806075047440448027292204585567022291886313724034931305023023543171146797177914201108872229134565935508391265397009475619564619439946345588716342053943193513142167815971219512057402901054322796756334933055241822279527179280821610344991901091930749789000833384140252277322375796558646683505621809266151568691206833976468382667557309204995958789417131117102665413131778228994383466337932013231678519893387467213673846850878960898211315973579315126017546090167353496959622327919735330923939576607825615031043597833986980939403063217526000836366071274507428521983987152112733651491453573181948760707610580272873460692430208257210067438942078380334678206170018601551437727925258879244766591110814434772561460419931402888634564887634141366743127739601941716944134818019723873477150501859779358343553922862486664791556018055712124993643161412412543534679460218205513859754924154458228805809068535856404390119657846639163327886489073706810120761736587666441889803465005199345188546491338952067434273215164570630895772904224135107745346951951327961904222080096687518545406294662818211418701901165737617845326866118572427791634476959006546468319572817702866247463739447197341680382206746736716249549709997853178871998379690835874603700393674757968428670879140923605309174296034234925398806817374557308789084808455423299961980405214188214430840375707762690624013187974918458528235075515503003476456555175587891228693288578808137075616889378649908325165894285685822490504380257259365812946880115169135771138575888571422155587587627566963802529914708863480545590770211706180839034206134964115889181940182462426612692212826211614644242211811202520814766336899511892443853950370852327923599242542907380573884325577633316535937653239140547545413793518148794979712694426399464742468026499662225983711151859891779467275016696307478023757055450625276197284443621903336767243897620593299307767866469705259740602696413283101782773747648956066471259006048208622326768926552088563167287027805508497952670764545403954577802460444443048818154026826917281812441029590764271849625444517476615191195823580739617890386470593469221928072255050965502692146825481319160770103069255735399934733754222444415411967151016178510272384175742174954548852425074037943161345835010264276045808789685115831557949319229105490552713823893061313726534481787912548486705713192671924744652708645402828215752892406271180602661516626320647668603233852732712616026284404103493536700889964060001697175635902442785179248547292869086869399423963048151876797779712533589303008054506301825776419083324105113404685714552246901225867124264838800487916551743346970952151105339268331633324985530886928471706629910996142860812220683772164792162328052738246892139758264262073657857497284403563265329684003842827108179869336973162015367340086361231527576499196629170926836368915278478932187194362260907300317564577571431149931922734095470768806212335645580840767081800874540264501675184599141585009441037343432132969738768847710771928276107160849214636398167385507168317878780475860120541730830920437646610183744214868425862986424530965545634581347387677734698706066465752172154689045110477053834916336226829835458167014489107556084459877154535091929518977023885946099200147160521411833309144498488252938768636242622801841192414222795157738943281062257765727982485927059978133147926688478339467895423135102052440024011083754607928039343048457937581511277248737524953434310351733848257591802338724293036871957450064508018852838986249313495542353237115131857440175912049596229197227661041318262875791546559896462266086995686829483666975519034906285374824436018506256296104736567689954218996415091911638452735753433585600913981087535106898695342887506497517610058934599845774112757251099797954316683592479764547934769817736582255162245842642943276895200623176278317293996308726973224682963473591080577879772804496995133184626602170701099784388623469833603100208819222167941392760922445275221783229703087790945314181428851150946089147515141837452829043657252585210663416459647804716189969581350756950440685924973241583364423809185239888980904362140752671060463974320218156478283090334132019222921851443782685815644774889031484357096257083213053989871512514789521059227367640201156482789655790043065501978961038813429328319275161987849381893267901291545463768057251562647646873088226612246638269366826496810186589674808855069142614480189010855813364609387206704064826975917858635309776858906219701489802608789454655917220546680051848057095279217694770876231011792105778779884685424648243748196966408664214199924889158011507191259434491490942070140154061188365874104958709520369054235128759291316406949715689750061493776722615433875044150443980665663641791166536793791723060366446550312536900705849235742408958372798027459443380439798401028913736013270942901297425179110835970873404450268763189030773174976575457305833254294788558939126637235893979606342209096001061386397039588467938049543635610817138258244090942995343272746284836445485187198814635707360954939640250809656148247802183591177813462956246321180727342880614751313262948072205933505428240332357803402423510418059406783651764574554034297680476255467421221905357489684983615573910001621270681564625393658034047643095715744049280881522320768856544494879787946109095058767329412668545378572277060402649477406536659098495753103223236907105678214279359302344516241260532745283216932675759044387169884903887632307225988994167105647588318684822685920495316934072358757907347990222114774405197780218422050659494177560690479912421516614356866002657625491054159962207751801651178846425453924076974014298297440871302962804046222129410256340839770109410981017941282804385127463603233700209556698313507925642537787467259271048704328195363879271728678467936611460585238013800656410435850578593162554966920935012098496487382599013197990200299954162184140873038412648637379142572375577629389310431158197777211537571056883703912115260344099112072715752930259161714491317664293612879405216047757758815817399657553292892696060546223844379144844621303749687317349201752889782806375984878228044647542125323517121634930554939816916654474367059202223487336659115481828229827384743213645209024411147452487651180679706353088618002252785177548956392071290750467015441430691224783673821663651445084853823479565480835852084290559716908027884677774783736124176753003490559222401024375588090915419907749919602821077664473010263058719659825081685049210174293784522897056728739247291781284678803018659566325444185612895061613177318465116124107909363721757227285976892335689605565648609243577440667151326489231842056401873059172858652951222715088544739800647731199942267694585145083669178576357783410251828692895009578933802638959203997201255850245994750786832355367270509007577596923133987470672045478743781553386505582643402825148363977437771115802926837304133688168499764270081097108181300877553628642705770952752596834482655123386099525679313514021693984597159442926292969455894852749559017865392054943165034618845986016984720884707711539278704935882075723471436379614659032479565973237851470320251350816366936509874867177281198625073994054480385305918940744760473237621828348506889861654031726322556255607970147795850332417978037750488491795760970471269190405376981535543839280790681747680857048298546981934947848113096296531132714229553309253559363807456157934451205980502017398425945473389808751808670530832426568285379684754735733346432959639435375725805051994257520897803712935256168329423747368154490879576615116843426224037594049246940816200889796279976338264185212877413949747340648898100154816113671841037317049736704062047274898041947642764988107478140727442390357022824138681722925819433152860656148960738260361464931718330110113532905541715637881657834508134851079438793084379527877628279512610479458343172697717905296946251721856458754210526938036042595296432868262084786567154385854832417813203626326143575008167307389963683304941271877022148374581134541243479250029624805953985836279284195178023408700516624126820905270801950325454825778000931718811940592592764138644586069061645196116797647358874914409860501831799950515041634391614632275686084053438060463473462481521188098788463342517763913240287274951233631411858642038785315339778053933085447732887316837165995863473890576695799902177566884762708295441556618414222514370791839688082640653258057075406026783555854595167022557103308974201815820567512230389978784197118415025819542833280600351306290907454110346144801569252593538008892552658375666755478635416642890400951005471666086129457277201735684344781430218618190721326536868392725145717257270006386632510256231423448282242998412437055725859200161699666536681886731547438804812557722914822300304879365918894692826670009094427669147151560305649396488134995422710604220889745892780236790529828336126599722790214394102722958104506703284747834038055789248507823195377320283287163414917790827522469143983252430060784508770949029129123113744651746796932707221709797048803307230762295247994222631748191964778742626677049081135974406382154587320675234749364982429645717248036284502920169990309416127344858285691988854544712969123317341722799786966851359763301147556049613020925029302731549092508989516851482866715201726025852130849146634488484970099531407933844696867506687275237534681896870799345518662799779225866714969980890751397551327734935557565416793290441384773404032944655729474573927274449787434173235073922791064797703106574906687076053663376009413631911431954776466267132897753806995539251009385912148584622055930077877209282672231493722679085337330989296896664343343720161914280695096453771678226917685460138924794345455458242176524063335116122527423065545896461275000114850993759281825358512630502728851930610545784571617713095350799844291224772958328290476881794609197129343805412049282699168355541303049322780902126224358246934034687301589556773069491051507573782027732474219746013092331224966415256485405785042956435040089456294294048834698385760067216056284645999804051061008482392613328739816975144716114347709660445751670065185750704377976730136067381547235543694489058925860761976727747246421278033020538856962031304743647314187320161888227019819714440758200217351865398996043726242339756457097866759017514605478907487339302583531702911446147635711639689473659100316232599707548518233996429962198132591500167715718782209730783595433966156620289243117669255681246853218472068273449726457057018323484365006740057037257217181149441396225432603325221231288832356129591726940487511906912697518400519769578406282775761867214018949489919443085572217428318385903531784666350142120247352754620981029349641620488979829955789360244347658754858347020791058746171629024530124686380636946344900833663689991531264676592447360793957979858159248719200510456987507357019645581677022707339882604765253414962055220160511284934232698942608041986752881886709233159601095210944663321825039001936364571922823412749809674009969801358032779836722215190690959008422429576753023737909161537389957110661300366250063340478749157884345640866992805887737986482997787994322508708686096780969848169536114925485905682473128692369894404660530944977532778517404390473473427668985506074252345380203989654273915625498995211571460704681667975984317123241310448184746213248023187332185002364211229165785831353407320169234908759993938786143908388151766743617138989768393935300174959305461458054289617067798868114373300102124082671127608995085588282019100974905604885547574447028129270260804060479316030559323763593736297191854175338690452835475247546756305568216176979160943456902611784868708218550529725678151534957074120435303087279348551957493300497120480755789014500766041220793815344870912833915670598632266031901029342382872686218684438094900999259559583985210709162432552599247628452330944244572319058214984959540598837014859136902305720111852634360244865921733852536107239581510422274714930906601645313049771926870734832620020900036836243360766649831699871885355936147827848537794562756771801474669687741321504369623771913036233232674007903542255267749298931071604293103865714720835344110385422246454857818718981191726073332115333914313080443037088116376853164171993273993686279984768169713700967427307078392434924933106634393145907424735489003319534975209099643635852319622128153548865546041927976778751428836242044996785496810233631335154597440793644843630244373364676153749694641568353196429601693298147448457962364661156740213459518698657035638882717598347120903971513436315633933574870048459846545157121105975726616722046613094319344816644686734565572845854472176231685773606513499851515370899677141222805753319335858184030624263078413184209249786967646931792488726922321474973300419024167278956388420538688427513640067120925236580402927710017434942394300480028135731507242130340973629841615984675122992813861959560314379764398129791591350075415295973441232732965509620352030274986208025403247262818479675738333395138225229319595685302670334136112171504126252360842431033472430990838249905854207259353585546536678789202807289885359939813251171799350735587044422676752960064108155769255410355405849760351073239760879795986904961254396090992953981442096038271989069231047736083309320166163083786209305896223577818502291292323954071838348178280983316998390888377538416769676598729735270577470616203074311377813916536797227286133722839795073249702385636095398180227672863793211490402190037354614826045344484806077999029911861820419542060500491616244882343280435749675186808898858815979701790081609434382934831784790995841893001289492928563920066151122542177552894637623473364020045732073658715416462580642889563723821024709909792718640396954167115960390580080338879456200296716611203753888010000511666360658708819204538634365992868057622325381494961940617594833472056785291875449142030349295482776142895228768550959154343702561056924502459235678592388206560293493435452655163348998990206031914772927814587558902082162983061942095084314933902085867141832348186715415497351653298786039582788498852952774883305701169798480992984557646163483413976086157211750972959955149113721111657655921817128612602474117501516334937012741306799979395852966605888934315412829483778892693877577754686153912217539755933631852946535667947878607083256583473337000379098991184841428628467823467276552709769607743778582502968049227251492387997332080525460263374423362880982189222106195578253695418444020821009583619277163258144982019910149251685168432838958944990738480558378445752925288534252364900402740348495403724170697704304526421260125671211399629299914809058766942474800080113662679697395797553623096962413260509371400323965692669216013924491887908616030201073200885361274055619577228227911096419869176468914812813907673490085066952830599617771213593824068209343807502531622899748048976136282937398985486191040468896146281382232191404151510555476658726355428856773836153002158477245154453250741452787147831212060088550600971550401661629590730254685476925648626743745056860986502406712089778350581949654336315351293799628608091030006312282992575401142030598467670176990196003290194251446183449788505322095830867335794970743880432653455343780077172282739987514607811495078588599408980817180499674754786983984274063508388151405806950836234986074624155439995044383960346546361739794771321514109317353583399960645103759439996714137820295517918696510185602939343778658345627434517034939681151105231773480969190200588851910010853381476792223441585797363758434597933621006827871270786838713826758531428962986051051706172343603842619746221565165870937469991415324465209668490843272228508904570791138651904464276220310773981474986383447731851718498250748302389295556642092096597505453387109299659774076582987782662084490653973623503711415607387787939794824696814925685945449535730332371974441149646749682347599525881602902340694574843100896350283539830833365258036142009914294271385279266749777819785509343615658340013618248306987854519941814320008534919245515389081000968281404593295191199251159730763941560040936556399003537201381103862488383761458217333336695498780045614147539809872882217646427857478028996054235912139870621458674464634351828222230902564056058769740237705652852019702311469650891286687774567259990190720791619344168517992615822235614249202493819039072526199165922195261438259492494846384375039237104797164636924039454759093726784652326056799218195815065177793448560485229352919746451536298371758232746928798700656129010002580487082992229844593080443165445743402602062068602848847813422684772756825214101779632627843667002188201457057495172716440094402711369778514376365043596469898651788144406557948172619066278233180571808392244007392543921533262442703450787646548464410041350042660782150782415402000928641515134022774866762176423211622846960668118982830099193825569092642525153299859703432448025505680163655482390744650548432136952143191958135558692663285329377070962544465902989274940593543911385927935917167716913590105834265470384923417133858187660589439814983837144537948444188466272569234920198850262064250122264843651532820174481939286359261615604379329257923276583845774949992727510928441620316655061484357091746468097023396287758139759075907262244118444810858164604439055594486306891218986292856706906773892308127057473226240422652980323937315849790347221219081488798706588900506014155929431608792816684066216371987593345718054398840085007895141815852381146788264941071016478762801787702591493548145746273858772206733855930619109281974385117484257082087446918886711631126453140327598946680505540746764545737246554726786614779855459885184995778085606342265931755394719344413856872274277472836267659811101526519420844774168701982802546148013546509344672353397491344005065694068770524865657160110693248176180771135572172529655167438621327147472783564902985338995282903050381473019356333605807644941386221689351634816387056913558654696138957759957313595109830788549942595880470369171731737764439759203628844964763780912266054718917209081525495537815414371260062603744607222515980936511527984302061965493968885271603358134583084745823844637143769916337313017147834172821757387601704752936658199707046119930983335306661662365035055869612438520778979868363128209337170783743239570893275081919343813073347659475164838086563007571111064283966944839793021347226091547677725932539593708955311183973430712018877980256061094820532409975336020972556657407352348282167550550975972851814112063344327346863909253580841407216299493184429213237217146456643598461116757329957156593584031102826999683148475244989234235823400871022120832399062416687968675140344923538299041974917300058629937191038897403119592104656063920715004042227161063638391664114275583419254818754740451888506428938524511806816242922563818282069447083502472199747250939090387636207992446077198701949019345341867175060379702272982662989767026041697555586781184073059673935498358920975606177236514070301217856454425874563991143019314285155132114521013290056726339946231201665073246130169180554604773512728218031704612561606270611215846416917000885140671781177221521191447707068914650485369837513267724289756940585106312457849751937575286636550962663542401444460484224164724731452051152441651637846553989035982547573062088275269417204044681479338036389620746401767147064680070809653920258459139120543273021384192396709274920476645210156172298993096733617985314605205105435046245508874395253916235256519120940617091330236800565781544884621921385239166784804206520496472429275949487405552519654423719776605820716788206447422563198490047987917989838216380638211054511970315884020212412720206178473301872861665117385082783602435059560887482639876304684314944809286595292676927468760757479595269679617730331992245967603670344883339621496612324118367757864441953349779930856577830980907841280737997320567947506994381141075565701048466506935421204829847675291223337436519849608747224144524450263473272663670515227962728264422777925276114719164807782772938284316021651618194114218729892419333451581233674014012688682259083631302985194931726588051804213139900150061751675481885376937166468725450689713426214088306873928656046831191654843755784154614259067144154215382207878777921497334401860094502058623944816034780267570739188495756097636575554685543492673343608898513929671134408148117359466711926385011914894658865858939951559799170103963743519941563589495024063223512063705444388763894025076437381614635107640067223642392010952696147995219751250052349516986516694378739040826595082488078505092986207028625879558653635360975593312828547550184827323326732512067502580147951494721538004481934235259646778816372944335393430649444977690364649871995414902995716321378056626608394120817039384404055627484752186756094952458777895498164539373027390812247999681006407180515843661865969975197191716492435550157231232055779979880688652791837470189592529075356421399527022666936075163632304932618566913727552782979222244189631905540696372850684689764163577950404558886631482249176475081433687742941982658233195331644932519078656986175173741184968179600495891340638157941974389049123622160333734614226322075123306231600482142395776264783254350173708535797419650618511207432037407377300165417836185843122201912440759986149394441531029297871647887642358576432063674333971765044346010400602256184641741279828437256317078352073084924661914218904844991731957432063771305744035055929779016297304287445996200862822776808620114800663563731113513776522567770313719874222418948081203149701673286653071709269416940160408917235502329824020951167908198960873107918984439528808073429338037059168038226766893485275765840249154948341339077919847205023076109568052984952907949720143730127536176243280648445850422089837813069215436773260060162207284789706269473035798608478676295032286784019783687463898557366865106345277453672658243032070369746846058579989902453436650671087602933042719740945857614737567048255043021668071886009164558185670836615219362539155766025020018044030558078708789163324271838679430861545377291662113890648476774165009305832434306516723658163817122529108581369634579272250079750684735360080780227048587513943217179632923736773039803422407601117842228720469682969579813899722647263385110248347779313161781627827892888867653400313983489468324066204449284273596451812199110068982080981394225293642314654370452748852398306634841737937818211140289255098116637721858931932822428403520902010711201711604422999348384001564007538060961981381195411909045280815469080135457875433292024547733178835602385270390216232017355941892350209558644633652328218996393787979547364119567795942801244813114166320333871125800662017254439975788043618227202730395470504412552693621955190713923707411729036548521702298123641012800151338930476526842441020217702918715073300437973787619948598246331872879610129135626095124554556938412961735856076989544574287048260036342442212489403751866675863504754775808836210833851176480870793975311125058762825024249538955926826144420197073582127264536527184895637785108913105259857479488741358817999705831346378449242577418120356542531490454606481496925243950993947202069653863362702894729006935751159331928394378588652690816671768241618504928726096457524586565178788239656573330920555273934357371909276891487874640285342677944641289386866161729760789716793850624163148526711813157091378207027068495947931615589997591524911561220672870202390265958395106301341943977520108273748244011039304071701735577733993653328139246573158017639009069321526876117176994302246074871583886089701437416693112022000232323335070371728123190459347459739645750614018762520245051674682099972059183445685209305856924020852769215646547569165807390535222891495508275983788973127826167769907266931582828159379219357379076680931390445509309380000222130641855481786775997701943582242424041466841396644906884422914791927369775084974059065480221754874197038846006069035357728291948307903087615003759327731255304541088139945179995644544382890497877458014047528312756345533383144119028039488879823745862635363714629460109604775912978838361725257096934527240575272335257379351078246667379478672852976507633624114671447144608534657042053981082429978467944108908020327329117822577071070598932093858177760359458928466734455118848290262280147916213902784936131283914512414981278787966850527935567041126957723559051742052020554290040047159063610058854369716473425613219348702620271138594136068993913931818439696402262144220922003750228229155945338540819707725681439923870164942833436540276633271973711826504429646978984496015562847780356764340554879765520907625385319441726828739173462629009475750298136257859759483707220674015251638790030503010925535571046202746983585062962051874043897821193221395723083249414429073894988680479411201654099493841428222119349023450231813256658839440497161465993928844855315725431177845426470241599232565755560460322710198269023764321902465961273877996929243590304689650566132861057828959043158826747720890301811191941606669010664040695272246902850013858692444361003545661435890803206972366715100383949974315476000066700672942983335278945044884955820138514695987325794985380982925423892272409162977180731685547932064042815860521698944551684865192454362770411925180404670456047093983162223705232726534270413984811517877455538598120801511545891463505084588283276664324872546203040933018912607371074526783264416015109836959613470189257314589168993483641250733661379046234541041745967013857257574440838919353134214548227302376558511242981777309710911424043003979771665783285765452431347234491228542520602335950498542505494609063147597886654578263976821052098206206105653729280913614803629195564736367712991386778130885574101748576891046910981736237075434484509866962668161367376222582198868578306114207961759023227365055981857472549560866112258339233184747101739400804248029157315537421872019541596969984494725242941574171686269065637440535138861524912442112417931655609670549489580089621379812460915247511907796805482438561948156047009143627272534974566700953997433056744142835680891870094355554514404438613369734845416441243768827395259911937522885778101519204927405847137066196697616451724946728714969457223577769412498095835658446156227306686298943411336012996174819434794688250792903939900008650537475584368383047483087549826326662450996431765490524335023490613127486312603478664053953136086725367782769428673598334889152787290720881160080436215563434803544999447665757865726038326281233224611368705187097563583025331393134579884378081079646329758954269188330557916960588382701088527136639639129929366229065933634872357784650207284073134079957907376638730586822010406524286653980284038351700920143149775054623001907305092218920603675210405620081811519369057406511563466783687106602460165418498037669529854991971384979245793762941004283661536942362265615217873112054270566472570977309288325632215618209410187273474592273676871234595504196415999541494428387514237828638376178981102310595911939585783550246409877398947855615300321455402113375147072076291520297732846347914977454689609998797730459361876556756458689077434101490609694866262241806658347284974576510850948046164923771969933998812153672836828737228365358768641930356802919655632697473145300195851617728021267457048641691989455462954268420234589552079372828638014571819905447032869845118829787882169157400664712912482769756759627709320982358967886965561261667551316719014045869770735404795948289760182972690651805154041457163556577700314297038960924796776217541411433499954980718523348523967165604427848832177928416706590921936143368884007525617703279873104475393200004127226213848888346313934444812902970490828290572436986064701767258768148975198556740573033873694794056991665241046136359132668385046466866303785122175529489858915860648392020380583691812202286719568768338718499974108831820372925558690852369431294143823834973936820322440500800481181039538612388208885349045570003351688799239451204795400972796738947967938542360100126197667600214228686682096860567553515109855043660777271011768445203877218275347843824112144449169618353213873488908391027610189816259985116771259210254538673558470062665534768461171568622964656788070119333986341245933695154106876269745604016933311758756892632336411983277397076360363167892932984462334753478565143729172697245194608620565040901011041257544984542572387414395536733923499800741086368736206057068862317575881149749305050194021806822820967966764636011645887511336497431978825189786931179665980881545995475169792088539755911959439308958193836814853595836744286058312027927078703756395785712115050883095624368632756839931332157069552656465983075867153528250187068354614567858010602964291187916889287425897328629051333730111315595605514054775416913521237186281198376851315594929983609687414291590504416911724086184245764364204354335503013759635499485484255156987930834907718281284344363423799266240625862088924958676039602437090786797484879950296818362206972629719902887038113067742549388223553474063091966308136515066666376494244187428642006253817004624840516037721546056016379437902554032248340000730468564491971587078290831702615988103369781181414389703756747974082489622232909876278929100038414838653205872886207058174622391677770379641852862395975438729129044832374658303908938596201331083073668647246834655021035225723046144091662308600835571050394441373027664817282860154026530381020667673215954379695712165903713769733753814188446672085222479832643286564103660250420904050575511451748874349029002661728965642823893424486960197434322977950524209733146182646398199593690710463136194876399941252174347360120257724101906442561699126276871275623600145796781217587687688509054749616118357013991976765601751787980596715196622977881821055907396795621836898272010900838387499018724616419396845190687928607453930528446080530823681173829703659079525119020225920095549429017259895832371854710205242193812025663835811983520106406466632085200615939269151107984059185658554022953089372956282848242295811670525884503335326038934347485330185814236605398661287653442249304978262977337774891328281091032816584298695264497806399471367683610598181363556699331561802050964865822315676055771725080310130093514275448965598539809559129356771724316423121821988444068166762669666528503471395632907596463389931642532431092691499255834083169313897280079868178145978350297396284495278006365944501532633206279248857626334083843898647826862516125465556772204955589973385502492967153407377607319486717771877126532453332403251622041545486913776172647287622021354485890477207905079521461801286857483815961505455527557279757444077769989901976833238896752982271122517237746958965092315365719540928607165885797047079667558741483982639166511334733931669961878113397677612165730987372402307205364890406606372890794748694489234187414546112528880161592717445128852702399267840578280645645313560083917811157056010883619771067127630640060690520144367066418669868111941020448531981504227161825857877665620923183695651096447938909842552789228324756793518107083982564100698742298269181032193065022640529077500920442064000127673725185798253189558711213537902673719110272589739467984537336169090056836627609979572858962124169143293621239600865518885702872144422867374854176072160216440779980689899182225775425775402052683112666918954076596615723336866644982937544368630632087903768213769945102113373977483720655780540452444247100124741762354084355651177369101190476989968936287915703871721806864255349211939396244462637479966146232514723226972431554562972244543542782518070757663936935042041957648517368162515187926635838959873592560934207693874628833520609902640315804550237183663748678378937488603501153798224527370974239687545470645518228385010852141091776252418309660662996616256314535877429870869640351475341450921348071807367889594970682638558942694409842116625011835216456499993441474560426308439958719034503915024457533151416297848657527067213468583140848199705531545268993575984452252198138159920520905656436741231616545859654382889969839767829535306949510345905938167062142770429406410004262887649312534315451744452280522886505159714946230360680441499318082108745309287919440587300093424233865783111238427823290172476519443593909769790756215162036984705305208146318127415745390267656580224446002749650041753582454554360572648872050927048174461883499267635320154088288260734001954643026819020459240273480918118278646359636228909614842419072744403693814201982729882305274125634189822047157490750568065675499672120576726171837658435314784060112991365473089289252926877662119553410888353849585829596709571370853192323543850913599803786179418704338948905001794458649356962693775664263472665442361133267681694059024682037067231645894755224147829769521062327079112300359299716183869172646098287012687691687549194991657084734225888332871869367527630546094085155173204397092898579440714837795214449861510596642073212437161539395483357228339801542500264787589807816699811996074512509622260596647447751174821022182268132302651270416017659376676389964995335873007808732572628480589707698284572026253030568061756999972285686368260355210904909359420592315096487575782700075941543162025709433539602179017476172659731509579250871237896950994184407264581897528092061039825464058605221924239995094221770212297152589551415880685419887388329823714570455008183106098530998020086947152753332742723438428841640901967868793789608944460285047253895626685706779130065115037148296651845210848250581320490060082535734590527008457226169934431308833825267495851958334353362382485573635635098731666529494835949306730689769723506882448012966696779489947753743431571836248886697413213133949480368160240324426348953735481984830668797033785801536351495192958645965187617277629605186924602636809184915269215754545659461361030961463010470142321418451318868470190597061619170848699977742964979217945713907454022715903257787429039695138992816449149760679472818909539020035954942996829681909771446870028274895554775406604426955519598568091255908391089736979223922865780645829552970017678345867120273782173928244287478101966799748023093258810217823344315341028366524972592746572417945726006173674935360702428986861581547929385889546197505001806579960734936063980859657946879015155753361221312720897969437133811313124334641224497007849344343573289399196716078400834860628982222622801352191972507094464068210985176853450098157971878112970194982893668303675282809542158336824123560971738461091380348711088675621833733775994567603620952554950582848298592516606307245538204521177440039861575270096172662691618205800215904847665774249515911826145229246171916559068639422538194235383423279537464468957615662432428240215728090116468827277365478127844907960431400142433732978510902122723448597214446739396171477179959294280537092136087684175672311373975960262401812995637217941937368437747614298739771097435198425416555190299881050636418797460295242827207120211233717042859849703593778871841766473590390480289410017343584221209537294510233617480785099435710976952196413603241450191491043396860975877992803108153155697812669609738435273596312402319350675452771804820464166904320629496891463206998692373024771613067319511307407143294684771711790270041313099774110398641249996333708945709179617154476722166513067797645927859731898749919373094486539941348521462458062012596907208480787494365498444049576871541397717716876220569227189777493555945076669136230166349407482912560071743289006155200293702411537836344685763087527940667582035145990755649112671102722168178845837053908488825121596761734460928338883784256122065273418288338937665100981666790254634250155792058467085460974414812274221549844335959158613588162998262825842786660782960585103949862047025444370417839103830804552432080296552099154315329013469816568957106592276768096166767242564233098611514553327475306588578586656797452641343897003461264451404593994370050864437340137823396085075798592293540624154319588427555192541436370482194611153242884191336255298387783389350670551949101084050795668247661581358246477038725742307884055265470218107605368651418039004782854021082510982250814577822604613263934574241112238939915950220661523268992737039820539826390420506783198239308440702620763540584062763606078290052711255721944667959636676446282457419364282699671574692409714356322160311968125515808220677696209013174132189472150038594569410651664853996130396066243526901893544623570927680179215110645654107439536058462410250042094294107775365394553995698951336548189473250326752533853373428252904713269696883064560689341566502046978169359745315986106141197122510556849336959642836014489856993183126923167647320483927471039860316655104520225353193611829445700947234102719765500319128475959353802730442808379962715319914792152045688950769444142042352895125474223701371937700090830876514231075230700751181807327423340703277232736432333875853249762585071095198974749458603314708285147111045977863167646735134210800225886225768009131758712308208571958243556541935483629344361984197112398020391459029370997597551927393585836710105412180375352898641925553847500566870042911147263090951047062591642030582377686904792123798226761228249316298656109393100125238281739283820220238973506521402951494514761203250456198432842174492671213493769069996879322578420506248865842383894431203721034459391211497321308134264406989810549498497081351482322106302773247229067429030328167372816294184588496241032313368846205504597740276588850916899602094411905431506290499973707582771107955969327030505309883579959289017622430032146756247013246899613988816701263410229245986547816838325953099301113634823831086826962044393680369975508353621009285964285896008145949024326784130700990966418234585756947577898162276188224891647618355896487828496609665378372805385992159283947576780327359155191211616637225402376829788600554548680488908321644035263448808064306807329924924189295032131396792086045254816586441152070557673033143409045645790059040461554278708021739816965864307355578383986400131394392966430619792118545359442814781276630197358327758319883102391515399329178371285983379454087029741571271832439320503154290702619788170593052465609522585229225818107674122983120460155362496250487219953767318015438363658627146130503036507071559298025230159398655618802980768197938692133960274734333194386912825212678964103684954741360343474826904645247809525574363801667360284637327102408410127084530619987964265036806426572672280320392119860922206867969793601900775836045109204166730092105693572377920036684797629039205445797798191393402919743888397184445012261318700093205593297659710282475605006358379078709114689961837831693540159336875825219923488925514329501810049663603208193279917226242997778962904324874352057211228404016777083993562349805123019204630054330436044564028635292389078779417739202359235031088242491814014246356772250174155505723553623892577389158218768454885385153365638337149673258349135551513350548884309168645717068978672949279347465102784868208673389687043360306434247309503625513499734684624952996078618742800085096234229438148870158332224737732358846812408961683131602884813134380332416588260905264683422523397629034173081596875503240019553707561928695192806899128421333704742832937657581348297572363610209643319001822525695833657161519201377886615637936117929691691332863726736901438604512015795403605999983625366926338065957167907417921739166168946249146257468787281524703797651241645998277236310429195459927614711068282999036488267060886190074211646148706142952421899571931593629529434368883649074019759606383629622089400841978573285999355012237424734139449226215788472088361232850032960129548507998621616853169441106205355204112603840048018342460449515381066430353687274067203926780777189770346243458964840333156964430757190846364453955848905727330147371205455678409465418003100786992111895155087526856020439756495451083612382867780916047243497620694669168592292932358671907619331659127906984341926360240269562131383948844906055527230737613094046187591390100209770865337856106745155922021608171667466507205126012392215851711953329466285361322430717780166076702989160473610033370851488841282659237935398480552660285800915259480284070770014847909417097711673561654164844490837342140948895366764110834363057189698858946884496339850262645908467660757746170024088995124240576373523149092351634507459584853389457007399808799214481876991592195030874556835252354436791484691790375423006512248788671473417337787626976649612362756246708531921627781618050947222989070189239317501526603712619584545368094296989302994587931730918961203666186043780802076439890434283034111867273774518707842942268507795665457379472121922685094466878762496624083513117581544216090864369597110590358218151821724905822844602370500255677483386924117564800812050730477946229193338060579571008556122961637565382382012596508207654083936373544294793911062113296819249961670984927782403635184616203450511034922711915136190014268436334886174295601528510226088197921531210502524748521287395202585516681699946065534998481427259820279141166012084350515359874791607221122524522999641148900113563225026272635241778657623975641316538539497565929030360289270574633067879478385206896501514940870489429369070692762492963349450945929207364352893617056427758684466401702255685172210477265828573793904519962340114610635816033716849550897621141795605714657410254863929427401198545243083238881158239976993133248587716315527915004748756041928337948864863962660457917943472764424412953795848430904503911437819175245141661154170653685181908969431985693247605546665370591935380317828419682517737707428473714781816330897894014575454559217685608952748729755945818373953527989798073661493410442323437497203865060497080168159039868128932334921612959473021609387437305638465443950091311740394432931668767287017733088587908462411072078259109495832817113506000017707706360463873997842256534961695948823417434701766961452614722574199713122722468744262117751787922400655669186073377343193232259341854274112570183676887853516539824853271947445409780578775507305330820686658333134446373177273173504397386241481113040206076871811113386072796990328695083327853247380801262566709139853616383533171186976296350238478773382442338867079992861766503103300154128867729855608708833452597553853509790351628697080913947642128596456254298777153604459241193071751423573508024312275237587595660469709828227207109266771816016779879427091984810655084022014491874960639347054492081083816061633317333314796437319316405220539128724854307991541585907097702962850045272152107788830707440356118332842716772934600923830151436590773364163259946900010283408470751655854429007528723577168327697640550392231187387924045110499433895616831676976645205698536042898236177081612190935027868781537869056170452600964080245590208809557729327738965163563118071574487261260168729358109937604045483622432063258440597607861500930614388238749366979250351980324460818312496783253093727491805388393509140321703335093554243222899380165215321183078476663320749015817717086529797382842410641337723864571455260097887764048326533962805297120757695823720188169298051982749215621088961568412288679618883718967756280883102092851394356981083616309938644932744364871067310697612524725430925385974067986130146036329120643717100163852726899183472983219261057473847498908680289560807620262526996777727933799975589927266385800538248854744571479401679934484347056780439999425798414151828618617688020270791297432693534771947240632400970625757458144248863907089561874614679286735888613364716403447407406542462434334187283694182174149256239774655721983004110708999113644097108932263358934919883331429226461166694602301614825300450442945906833855145765229184982233370400056557717759979534926860800456678312274854306241502923128846404742132617930092343336436435134657624379981943015881981060815863861884089647333626609713681993802683536051418711960551423095158838387925070588044781461053094286559357300266618007943638367381579982997224274768800295615738915651902389324473148258723349445788472447574414018155866783678770590670896217361537247276531014108532376216122843696676764460922461997645447594753160303472344486117154020140616090912652661401232956162255865092720742155294288609279266992059156866816346022972297342180258375681208131875685678784183218499887819342161647429883246565594885250210358662689150168237196429820275282289476581169402486000428236290058319760698468522766596006771649143238838819186696744573501446866071445103000645624184080152700363863699625001982584364582636903743717728090491278676938779668725244154879694688926379243925146610415806006756216059886213263859028900890320295618312385620664737865066713013494851923326846677152616843528141545047054263735703432213996243677068275051035019074509259785816192002625936801910140271077305562442053989495198620983112168423465829531915694397023442959443518383578891687344704499901946091021870219096450487405399486092868430402963795844117751404708156797701410634060044304473230545215413872947937627114183424316543293254662825238942306159731361882209354077735919770309025570731046160219831304084390013832564964713368805669708970525881265265057353668784477151642050224569522947395492503695871301814091064092954823049264458350908012589096384075477544763069032350364213471074562021378726060915465694865897882589462661074673154817724648628510724941729801033235765985557405469332204605358539512010515251680660533404166269273141792059007839050174397522200620913513950342488885632997729658351757522613914956734819506276480647708471819511247387159472462673369413629032201725802854425147682377249504054013201256223255213469494276303376781061462013747112103114358627027472761875494648164480327849091394626386436316686316420048551931230292523076984690723647598796334374794300176869028394030727794260279020703540702363651435796670118277571650328553320351761010621335796606785938991011160046399813514431353163047570807495510843394207561695140226930092418442462487692600469798920313442636815576672259023839191098683094444395302179678067797769265805204919426643501882351256359012079545982472567801216007461020646284481872130617297017758970474337211526278802878661375213568935489217165648231006886919096968891921549337174469069934106789315976507636854774721190800799879801640318900520813456703569107706645604274744879368611205422979264301921809573589418516601667523501341325427022730685534651808292025257560174304904877823211711447449229914745402283560775981157838104669211481673791449868307024372049406063752074871947794133435056009388209793067603264176596791129914387074818270060837667332859689587036605586984115520364698669515550509780258935726792242011851092084138084608647227030693200462666260625513130084881663772734313182989973048594192398404848977036857354338345324709278835456607594547082413962408907349729922746079190861858254886619069215249438463469733227718170109298039818440684709878023474313526490655198866749964811578844170364583339522818739620858528168201735420084570942641822630161341999512786096403715082326229254219287979326931893460301175542230900092227763438727120624463727716024799309653047465540509983346274170986709420431217846343516429779210522169644697981537418457811912512035175096768455813113510569762543450581444018918493964390797116465925976191711963772705860679877281327809361062378119190458277239445793823326816310138025438106686917147880145739838820775329972461245710871169448804875861919802029827518793324138986045475287382675094841914337909719980979992844656168615750471092598695682511112841605891574214425034814235425928686286793254215432226172815666744853036221229589778892590768813795794977998582632504692437237620083841692732122221212566032479037509268264733694785186675952948540915358610222540093468018937424942529908773035541301337200251627893410006691857159995397875730398478435325919892712549954333123966906106938198277830367998453947101672517183664347078262132831886087507312820070652017202810364154924492814111584604228081364253835606384540319150830915880947600485399390026293605797926370500610054466041254503056693032195312144455370115155509046327432504070199421008474191227074728321182262932423821132226008115698066643198417734259381433623585521878312687285651703232843332794758867054523875329276325632297865711005955803319371832798077933343909215440496641250921482558946469193327211336582621705852699263210274646933690229310017549074330502635826266496421542943677551053588623448794400501450892574850939398477295212779951583931239784920394911637626171241114920458836036265701076252674757488776200528376196284669803496751478135051548996929745597608264896678327867736476801879443425190190815776008452926161336122879923932108224224305725637179426707316227106139376105997053739868719761292448423957780888146191207476943917420620174027923009078985710904829144663719375171395064465654402552220930454739347534601060549071620087350490427551044362830661215948184152058334156765294006252735736590891747818427751592185707026112952082772761219914454963143121272226024045910704668415288688322659816364633941322410189509184346449224915925653548996884221438693070508449123098057925589839852228399047937997493976547997320226441488600214043636964717419975230140289130269030252677121147729606836395783205034633388806273149604064516512796943516448204057682087388762910196549823308497242765290046332488014025126289509642762420898742385901428863328581407402261727205920623355523799327311126473641735414687823191268719317466888702661293519523839474034737877419575575160203721796213923412136699686258334840430394415794714535587520677404876950890889854724068340615319901302466999395948793202675094297842639297138653012500583714888839732118219398042713687124240508143226624950609954019704972966072457216726643084620203536547699858694464328838338831957709116052644868950836894101578676815148649293297246060850463233766535041693570350687207537660497105363607742242840790331788938380915404050938899820334075893483224570104306389708529820752224868489520085214473440020373680158658733052915501129510930917884951028787406512866748622754328263104327879132495545722495692150693032074855435437976727849925575642881514028309357696801591562735920176702563585453451315908738453856125106350961558613997063228614623723486401116988207365556335546610593019386122871676334372318412247344999764118764049325185821328498178825862178868299214243557623358898736604941211888393528872342002815727644686837577881590565381433147605830097615011944119092709253901463173982673235191004335820663905152801395465695204045745934849545186521989451812544975587685256262567855480166394982637252762699190567720661257655103960939152527353192578514936777846398999603201791821146389568307624855191036359648425448880904059619885272120589367173464344191028709318474824890261144007268223646832121127219327297840171026647757898381602933137286572990406057585748418713804917927814798439567788615316222842126162625629401995636900677018784873936256010159483873103697599390103068538568543989312207773758393926900715285883556886980363888141233317925276457134844203646997578973567168454529186671357250376201304082347019387897577131546512091967151530478884518630726277666431173065391536807835112519682538380891191080920211848768279401197942287192188100661599617307456953388588200034056161521765708578562509754679987863286941448965298528043912269525267086867817113504894181747396136881732023009404347659344648293931292688261650812178696785185238816894796935662135365296791841262216513018448442669181244561142441154869254339711984458060262523820822281119614332162692564324179809710746584819635211293908622469252814282323717438575173680717738281121176474525849544438215939317039156349394281341468824393490128860007216357022741815163401339255719727119815388209601373096047313742186774450245270897731115555926355266281768149672155077972109399561152043236538705620989113884383442896485457788616396034056055280125660844760995590487339732515658358028177029747327943757037453201301314534146699671598211888277636278361951561666576647378987303649061763487080382029736355039676232102823573962877183917520019560473078534859564864940612097035910454955777977575647815432439371109926210409108821453477506893251527035106621517417553518533767869787260982032233700007862540698294277063071722572958019006723547214532923617045298919085666330254194734921409504346735363464635060626475103042311787846224879355047413703445593893052308879991363399841379498755897914456302389320940928736160435239731151905765490160524130239489096838785350888429793848926171203608268612056323203768881759311629444337448854453477845312889230241830865457615834981739243321500408586022773969729951604973070761104213192590588008114756648041088634896129080188271908230731372663939829532276650478881552665922062224177965417026231778139883621430437510093478681799289786273314087412824139434280929555914070105904815808636159900249810416878431023808630435749165797545835294138062797345853481543947096896468992820083681452907194594325174585755349584412293449981107232930621194806989042034432567333694789506497461409638414736601387527131236298270927235178865158933048636590879332290996856667746931795451811672134945289498288427172180966126479630661633802374244693896930845801321285235493952162496316274658891786120529527661173654207097505942626334836907145739442559233272261061270797356097441720787966660811861272657385000000658303708747313543350649597424109185021119659280156138383390269999500067025428407839104214386002298085294861964435185052113141888529311855196210431529824503516396222726760976450626688219594031057244680506673706390847443844795904759057337193122890524467006585237414410529192910105684349410982464981478941084428803222980740686826802357985864192597726782702136134280092791118747956020969918809394640661508991479873976824824137500380398889700110632836361555485297772341449712532837894268420996187575783428051191275849105666391764560841496917838087157261797500873637453119203622000491130295190019578351912025975045512801822726531585362701537059580261577155101146855072189877422295906125904403774954631224991781135419717442782867729617991856872374656524746068187549461895680076867287580919432083229667031433303897560184813884242413879597368531704446616018795409968987844802811798675836106678834240418194902795149928674191038267400406996125023351002525894704335708312447268733466700689115058069624117928066406868567198739656440747901467473767950174402830825457862393696193300049906033563780427193771894173862228705991753594159998414069916008307244163289127120466299814275006587067224955656386060654811678984420580441453317672407012806060186758916926556766809705929877927860291558075925229849917938344202097443348078856270826165416889800767904107114924489748312393961074313807507694357880487366208477087124354150380018145155272918685826708628147228041668913030943642579235677602032269713870057822771900276869093931311245364365721746676586871572459618474224306951362572056094440543008582310000106225454725367986244099856109687953284868538624153608814839458148549783788325107980860137748736630688208504096792097554043112084247403936279317047095836024365286870982448778627882388266041076796833232397849267332990369863391273038886679195251618158837450012421139115114014076740790427169201117940629878719199902342055386532516447651062345914840522679109403809390467276215031972586264217350594072453472009449639529475435733044932611215494225399248721702196720312579058534766921303410685081540574508277106636088958026836563991591424131810547248954503067150314190505527738510606463147087629960732209111662941477522989948865663199177983245992419194685946522159988081850582713825779913947850404162904245406939798836916934313880481072493411005494664817767956449415894997107899583165691185640662847343529205760305222459311211545570499882636872336281064715581265664308845505510453960404856756447191114445836520159800022143265126734576230902404359935489335049665609083383577953224318798789532453755489430553541926587298147451530877191140768087164605248844770957955860258022546869585750850535077588069475863394417229506867395084515031481069685273091049947117085710149770532059160616183203548507573332807645373107427200199664422668096994797616109684296187232388913436155370375893258610214470692102337313113143032943013528853774488598808843959036551284483097108468466526899612852065556480878080648100697358894477477501260243183845855925686746134056981995532228720377877273713970894317752565082907459786550319901680646978449632562959124972315741787207660813324449794125652824862051335585051357791777251173002660092327187980457473201180686665082040393280422533212077155266026244602145217377045052263160558986644600803280854443204421845408017815191411348578570897018522421628008475248132492097013719572789368504537400820924314693498424597059189713915755827563822477550209601632536755474881281126188272835594979207915360981025457522987742997518466194561038036686412770107600687606580815877005889318967730582929566543057417946749635584076943447564779307657700199932386270681467844246212105490752555171997890227768981291690845332704006896650103500063749224658611310845255564286954707546760930784766973477895508310422658750006593424253372917623867226940038263233330780845581707184295106999363423470636317046938179963505298433853322374509371506996272949250950141693379564685655582428286299465371054861168540753437460691306191472535700619178457920065726343719500641200321797437219874053690419346650212926181438099547397223502083737559855625510690278924871036367292653114458636657553158380237268592999370333590138006272225453396290467477600249865692834743252550967483910673102274622741141026549265028049293958243078485291886106063702331033672317988178261094505329957330759248827426406650393902629068851231517710395050511760861392608069245809834596660077847275298464721202439185926865550836827930668063616338385041690381417113516425343843121045303601063680765858250615785426204853194006262583712414653888970414981583338428877425366084203806810041349267001966681705802066735890559338661360094401572634102326579323531262488491563286835706316379839677576220408941139348711920824045145215782973074923418683824916717517317632784914251926099765844517775985583813740704905584341189489841758568473866186333622366147510581213297277113633157856260078265559728301897482979171343364731709429905412004602253627661964500023134906908495230784089270749432484594689073366018575068265384824396169259299382159264669388896192012627079852456916564128860534431676755988619383091478596044135143605556587952881814323191505646953813731340618562640230541215277092247607367942283059476562658370785341910069613161305191667991262205947659033468876128325656755266280853253246745667264594275376319319684206810551100425410134594007447037901696359315438519840033714467318085230895568695477072694617358472915923636089348342379516870172478789174945154394668870665502390052981863900102699366164182181830353453359695079592522689427782016068687192253631797865582274652120517682749933861026128920639527839987933630215370430526568810114846621457945462204685287349006778207944448200764498945587580290999555023288531497456787224824763245743041102363521573851081453910680603553827949047029374215490463030017069986723053878549731281060626983690904454110890300609528900191125163507385202369434642920351426617182455687935829316016532482371906080521851735667259790357559223323936631116928500110906687887497149504114616403842911857106915240379618593284155475152795981650890037184164869928499737030293918018720500873210588855180419834455026955215951775776312298087189655007153730330960230540564297130035629950470912670780946172629690440551868246359987030772693324064681623437141841042601736546763185865144253188470860890912079231630604109228024296098478289893742932207707820809021232250298331838782482457707238550065345620685347436249204584695016987594001288836153056248520841318001493893934633484781567780258847572822384050363733844619788739384192497635579660813598717829482736894373828595535072425730488107539495721643698143013202318189419583827203573298586342240695056668077166340631574445978843606042403088214572547596720821205739975412545180471099880871630910828158373732345280399508975564563194731677611696595519618526822854394546368296131112375264407165888292734241200166071939765662750914987814268925265516739256093973327102845561545876848410911565755352712538826858522713042392983827037765727328094167293263866554055205105900770503362735470450015379204246654493261199608809904415638423629971602736867039778807383851165901951996560770236623385127399368549948846725555611762315259862237126912834302401607515170352922409246081042376505269120877951750166275108045200883611892341639007307363399305900113330002130908723751544002135990689367926812762318538576720144401620128229479091933653819593622654558640233168456862470492831668344382453736227576386264663950301751925308821887505139652754988817923920044645742801455508901481834320072538095719328685282861411845538401379782001822611018574798550647159786154355337621137865624967716882530823979713523027851708195769960279054372520446900424230868210838439014539088266338027645770543801861056270997479354265429047564802915557457251565535890026114517890746123684375294010809795921646690637232337591955110192165359069299629872974854117790574024812207234939387064577498752989038688626434491032276890593414607857790074585439058072484374840960490052735074858862072744371755809833000664031911457025268096003162825460715971720477661685736063373447591070567227079427253380697594604193534534911428103427567164583330472617014154372694425468548313666136767512779145645651812673664357610423559866545079927246271455030014207754067365482998565771433480220685767127134511613609421512448685108212693211047074735992331262014931063285699820686664413368404867658040272906894935812821561494189481204356794238829149822922886959125525907832021214409706177512562601094336375869722271665278601014462727493575127184050991306672763079607129806788688841086473431953941347708889566154626252120739544267571181985798027644274192691142469199792902409582137054939715745643037387997175797857655648818401427015478079535759795623219782749539318721111843432775156818593133071472888041563243856307908141975859443585641226618108877043277310358360949525062741115559881428544924949654784707306373876649978574852732164875261102809576466354882438635700536581070833966138808129897568470992621724733662128519546972928552711250905098467521584740608825297829776780500613141048111793598306345484141476783425768311301958309803726436994799386088706887456244365115436658892210453878881644616934065073138011498571628149854882394429658173937296062955501970046837937009138287683435889453422977847368703696120272881493067038528837951900796403272885985702871869460103194937107604877629055566079207527041165509224981482780770767132082851816492486848508917946916865081883315516224312237309618621186374071068980556280636561982789951129962105982139081908419793728422963588297543046980873702811133771813783810252051519974979625789366439437239010171619420287842970636203706240601727548766567789402196374875765661715926172352231976704728108133881544826355124253097410047190313490732311287569152939677917395032225597766342529901919316298947986633526491719861879141669291286664072616335400612599913597373757904504669980042717485825872941422492678516819559272974025596518735808856029976692329594788788621404293790595226328441441133339278639949553946922577339830027390468002984714675335285101384463317486863817611922583031496078415385352279121199709772799363292714867049743968397592118817331832999759005392380526157170967736046333825831691040208347342500334539706060212019058240919042682422825413247300948276010308373765765252050696486085030698473559159337412562414374843913348494461031563447310706119039178901109684639656756826652553524320884276554952176935628352515478864693450576068593470578746136639517929179381799827657796560212430719163268277570165591578197145144924553531943132661238390585483568014557175413077998058173649619681555374128721142764390074868556403505324277432895142642192690892397531198920361577313342460147911573417970745336029027101944394062054174938780229113913168320503607197001595688315542621411367191443756730738488963015584216476064015911088719295356853422841273364619447826097454948560574390062826024661034124948171158079178667186966730325237616112441500025126404152236513119403876815961634203750646217965394956590004183248232394489244101014931778244933385940331938399047805256803599621424007847144205783551929232872936712772838126971939750110514159038146154450125020371833006429547353995727629026787386556285294175021249697580927081701664403262546045524524513508520605669820199829879068569711993383040765052168733640820003922626423449574406136753034664684925434942166308424634050632048703172144098258389277201063693854969177041325686380087511262684932771038824336778601907071371252106635174839353849101219784720687444654942034584781998801778815118117742234557013887474181250620217752326592821613542230981591992436980947652527878617786160454290540187774344343946612673475995602655316826000043446302980572853976007469957042365754943189842702326843699210149616346580568345313056129613240509560414851548913565356252529213016865622387811311483046871791526785205906787387348138842650727738490884206175998360091791175408466526902475007036070420036002875651075166194268897215973832583772201676878319146373784661005508552395572165862591006862334444522352985122067342205623976595371847444583376717806660523959720123291909303046094618133079817983965624538453940006952355857406329196721291860250010837960763602138176745128032909475478564880540777566962302625117497764334520908456328530066215758675045543752894785404397842219084747594069621479405150789036301923194429678065537458584630601192038756681485769125309199991942181229964114683500542799087568177025130128001943422822900485962125938618414347237270417194157427423375154950729695314953290763332374586110021005145308139235469740733579689990699730183177795758025508976675536589774058712367939127355937576980014329461592562046766680643830965815670109633735455486918686793321395933449969891243137316120821603754739318380896400227079192374263632142694547896631954336121945427513998673138180502109565183704729776594427383458337740985723192712273027342591228452769402305234405664305785529148165072173229883330513026468982729147018707106884805797272027647218983866326525072058087989744389144543902845662205033851019877565885684013664685393830028594821757138912802135685475608320523344009107608441565312449593217762895469227735285730898626585292908383193455272728733830981190873904570122147405181163660197363698213961452675881031189569819722577679823124732090722004675617640549743368216827433612440913336524884381892229669361279062634722899896590556037301452969804468180430041498046150545452374919301255582163340879849625974793559551289509986558854102073304978220330469528232431897823957857391521351368731815218932178860948309062639676294548686526039449476126989547659414365484806206667935951983346583186305533818003092416047951997686468264110100662943156832382870402981051033975447716155820310668747234459125833683370623313423873764942555672763439468628024708549702780181422009077141069128079762006095295319164547559914804317575633109558513549371907891008778030997702520339768573767757664637110886462161801492171044282646453267950891063614883468379749372609476028306279247337308957556760243779175763478657014187558969313094502193767629662758051120919342408087613973227154513318743205954504583193926507618703013450525614311733641407175234772754181904706302103558361948092754137248574231527737657204146870129917967787118115369065407836620244459196859097824221727102804791766319110026920149463231159649820242921035104500363865148539771746814976134243033167542549582543673034549414879696277552581290156474992975548842305950163184825959126048103653284879702177888864512383040127697887160102871003525409904780356348811121560996363748330232946648066308705787774923192982869628599221123857090150719613695824260124343693384867102266633205540845597330307362856372662226539064689768878256347792547487170108301945409873512966256040021686776381809440734386030710256963367516114072668384804736767561788321606955673275998079983209128478128932080362762165277238509130097592596805337041883953611786334678928287319483303587847966040057241395728854382099623019459562066422833823140030561973718969548523173611699351779169900579245452998218844180953076618250786815687430043960906088856761948667925809752248985934342512110958957644727740906824537949825989427988708735977009745801820761474392498137399256789151300066591124978778853748466863848401064562387449186355835832284895813762277322029154124154458018011328014932854543184965852985710897268866320509979185177194079234621181146034368087331938737401081949388666017373166785921017184088718222681497464854342074624413227680667104766100374106263658228128721321663064245591660500358020958053919497611525984146571019507271327189342814718139111323715740106961025729368876794876050226367216738145438747507659938387235695478385658457040199760661753079575113158361359103808772653947744823163945401118667668799779123471707136084448644894511870964787888332224078700573562590969287207658605163174687790776389224846555769226691705809955309230659308094571349548483220462224360502045486783077426981529765662365385825088335777015743262476572075677798796813707276604565483372345829560638161305017524316901806158023973162119233783884263692956069694148908730692417151874789060935640150157729434853317562834229794848315148486870220005737487799471225482026477058990780735214256288675013401513635050963158999544729200670520460271840031343222730627643439085631591321627035629830167683688698766318414428973018244774838014033938303456966991308721898793987819697154122345224743876000932533576502055081675533312928274282681257013478653618946558678748031490747800033305314210026641631384593396694848261084076591927207017486390560092281289336313687182111585647144665056233448611240000331919975784760041109179671186703604129999565213572728116134546752537669353952889521907140404179941998692164932077969920257064541778033515258847632432518281086818901786777371606874758842861893893599836291617476034391059699586015385160383599414455232131633861789662864796635478014366944920628657507615155261909909982525774531867619108866676970324876098478521442299092760550722628143580761870919585597210346635487413550035301889398123656181486840278322135566009922198118238348687584517316090898305824690377318757459057964140018754633125640503865947181903048425749939945366015956725489608503636862954402081969980500673682031953810511997283633645436179510309146552476768313065896981296111428077494266689205153656957006715742983223015382309789151028908877086569494621074499696908832937273347857506173644011603968946431772833320642520899517544952204188017677858117805433311517815103345693652254715891933499861877020623163756612495096689208006173083120730873835708799224721643986636526395802387983454406422689339690261120257435324466454671347067551700777915374580223289785394286242778421708252432339891611024539793041002105047706283586924641049684607311165523052138616430408841445992884062726791777738312612806252248968331156244883410002768894963687103830583971296028112108768344946805999661179554931041052607083149199994701567067760867587554841847499011267158716128072670814715876731583893873924578568171605498752567992336713983516258117266898861971839910802224593193614957848503372695043874043685261211217356521522372255774427551761696746833610586385319222410847081990953818834961073744924032669088352722091527909000355562339129016118380427820748478695460230618655729972841345161562550296460746311745579819852743284764020086783692286802740453214798432681897938073988158461898141376037889891693972128639053342889290153061725378035715457736459015661001343044853925204044579195013712752346153069772461607639093340054688370216171788008606529519919156029294735595529504788956874504643099944655143738271816057673892666089726042700711166522746624822322144251862119325108155884831038640366752899682948835906698825069301211741977178618980099610691891436956973498633516882042004647131959309990523418152039564246428409025591240768147223075555255196192277672226383244718680811807473906086501545107171855146605412199555135173008664464967915089743875264263008409845165992459049959716150969601108591653029757300795067156881977648951766350956494215026000956518901369801118955494481947987541898798732865518127451268044868932882595517161761400018100605111953351121747127430683191833321987803927766402929501995585635308826189946004810266655972267269259274625011644816687507324214815836919392826495555483628227609572171621762122749731988859445516495351932469971299094968415675692699123284024604954322980070240578501994469913923752087096253373878240686856590776929671959822422589656259574011521119687505823426064137292350409752235458828480745923863817505866647636477436873001956244799340314673731105331896130462980357486762244334944068469779193514648811250459225450885775672513185131098934809222773676356645189339071899409445084254175495684781568008790055899667442419158335384039872340842008314025146787806909880646033629061325989339084637467079505129243309672910813053166017974132501767850803085105413218196522131169230103615752603671089514035390545033445287495275108255331056144692079363111697999462555417642873208714164239483516652411682821548616690258322465988627771294249655047272186856310442913392636483841331641559532110069880240169028605141997332222034472808165968342939508504707860405211790550285090335685172318367840483153437578517128088902566191492942837499391191576434124785009870645720356793032681797782381163358126866177746664568643022119807005152337213194025071128128687135542817530510981671386177639669357369568830229464540724991605925319628269182184807741118169806426767418124241175527619848987352046431464830998437035989210054274650851668306048616961950911572512334676109635290217791180327288782698778447219807721505150280393158421464024561767268012149382293216092754730752355878657531420635333792363664068172539221310651316913704402426421747063372314740252600430773211755564936416819352713543855179778095530209214655881599475052252866350108260036538765018867954504519331102857747172057864651994654949832519973970724359019169550486144698677312278025903579170315312261296746226864702263837645799456308753901769552520587508822019661806299207321386946378572424856180484234943666166181759039159258404489177433172797891825068799207485882536818159899316226497124874580939772021082897759702250816014753291980133501462736945672543682353571034850309966672436284144631763900396868491176053013229810610003333673421796997003282499060981898494867037389593077762594461160362575704475253330701010676034265970501258235569394489307434881214230295049626918193362542136137413104631822361277762191444628073054302054754685186618026281827796542858861833155314975042445852872071775666755561225690831884589026882232591659588548309965409734079560279459604302626713384884161055270843660615555293085996045669839940494590249605303700723779046976122098453950594988512939917187690724530622922402811551446043383154811658843455318686026459956388021850755383379402969255121978307676726758841720620241235849911006900555329711792528415872170236101843493486622851582168158777860670567999682259926762279249279059163150480613107278412532501198312325075669731453444922162832943567713529197839595507559688494591673655119284440142777002078475926584281866644752112978644358223749390292603877328808355185558167034687866696796765420749090932412483500960085268653681535794477668215772623818436691506546586307161789432416375042282447063534485924278603608528887631784084399569845820799142918767251387485568056567330259845804052455488013361087383536916475927281604230937684386749669402689739017520026339851482322970529793761691014195354398232862510432490889187166340662352941640324934468820734463095584362586153188771929645845936776738780814137329940314895031248516270721062730343508046097648069538980727872611250558126605719457355456462634517298391615736360851132673890026519748780560919108034961014723350375618215689117510702484787208134606639259192076177486078733511270048098113585666646129097393789300792359607179885125016070024300153534986029870589133670232588944368437294697232863362489313275547613839980320846478173139835371139599425603727662272355124404758431865804542866619701880670871220128337353556688832413123528897247979206206420138806877607950960332524476444472942844283264883384060605699929575972814264974099838037844870455551415576829150344370646322521497335465093958359213828238812346506476240264036060817470523576088649116342164099783433606378297417140332824106095076217590860095808545631097299264555724896627682430404957874705112407065296981129108260778578925351944117178105258179437406253737837206775201143716871474205099846991390311670459478852236857077698782950889781261145304835362215786596611177694982670914159170470843584301477161459859560985770430672252197649354156329110438182718127295937565632590800977236947965376106909399185531960138134579624118589257320870042497530830380187746376650013941901767848810110421644649250751817768805865755826463784979992217454321132645392166546309090209914101578528233240476007011723649315858494399425487425925708646154204671684794971724109972384980066419471850514868758182486886785024565447038441008583082573040797707330556076051990275574871356099736754673129454735180863666530001443223867133768210967158474037461928229452042302242037699155056440185441079012549770796610773403845772163202139659651818504742508475253212814473969505420754397475980402640632179546813786151762921479735492555488242867064420289471615493859048307228697997913083366538479009579340958632635034969084232238946661548362722149376521443879076078519217464542102551261169363379535202610119006460959220109538377461644331696490066252573416396077973505972848548298025620302457570358033339363008163157786522165425606394988232022389633172684952454298373425727135266178363598176876318758041993421736504646869145914427870226477049507964600870864993512138504612336546206387051139087880794159973405346699293631401804674164730904872971083444087797203528365134536084953926105632164189486750189166824787599342045670411402280147956977091606876134274000956597620514088002657973607503228276960985521517837234214708252730174879465564692674390285132317728103197799296926808892288001345000605934087529550872813324796843212829823367446920258649727160917800366662305664383302338195911434755092836102017345148393181712007032717964301500952606649331441812790513452331031302866286254209676551603687287865453581939405638044518810317508476362838734680472635842305366250842971678231040416872064462883598732602215468526440972085031189095325770095518542552337034708467352156426865972815754310979775768123258194749664177142091624832917256677897620736419710375869292707360477202698209792803645702899211214406191509562916704416457638749565046172342752178483835164675089546568887736889913611939398536382329783220161270742748924807620939641147689199345080681422687167311318734600599479989188675782339207568739455526457156153388357739740754540251655094722655285322025901145621175980188270700191473271986423972761107306038250149873941009668358494145633279802378051160383229669815367344443883421072167512666125519294439231540744123445603519363722500795878317027765836665869945794822132975849011056070872495964055919037179519751944764386460711371105181650540504501737870108385378510895055387065329989597366462700621349402540992917521026141038098099902613574716047881087041303278312492605487915732395746530132570491133936406323522971750807621883807805035285857651398069595736663676313800691839218945613436960237633100358742256324353944968852039616485262094259462261846195402125870796661766213221872152214557528137480501827964647495834950942166142789922175185760327125593508567160508791646346753446328947474762400323714673036253568024184033898097279607080050375117519397053539092385565940504533674662153728290945944278261807077526135756382782972120877648385538556210442635737993067444841689918891734056767423617662434726810963425644305572118004421258815400133907438461267107665282061052229896620520625362868545978698182190668985657045576407634627773838914532705223062614174964890880782754193950289065153021118408076011461259539059784470240102741552572192920100841957433279614666672432656121012747698541937995456373426003955289953298500210604563865853627086559096441158816292316750363660462611942700629773536197925411516387200936920627829274504584209682676823261047077500838102922446440883798178921539960938132242665184230060081939825587944760059524538323606680453605312853772072147863137964670694174539187888832214983811094569788956547753310853525536926608586810083395250585268552489619021715185161824184635286240210681026399434126386115261782169632018829699462428095870314921590524810530289090779709155195630767044453567671197081912444287282407520980786906825638769089356257731091521969586933734708821070930606306810830241176865090385837111369901215336200154527730344412035178048423488187956397827718221292244391161165163286690380655016584716100540799461681842950980821962168060177399055152485581522791036584173842465885511755019050777485978232469111791612108929751729359245517108664114784954003305338373080059118978732493045625389211950982939850990386765328931269847076079834840523904865377666853726774838281810611730584031054880300737437416791730766539807502311743006265455183915371781525682056346678407327824293322517436999321777342586622150418842382866321952226791801186140808423232043730008237732831590820607299872680588031578201943481128221650971784171245565530673390034982761501626110118804987574102966463973253543284680219517422176447013360793835342698056197160901286420635983669894103753990204427610357632935235316132923340488858442888876138166537991705533729879497864713019865036933672993999162341744052709871518441513866116137621169819118547217566155681087060550272091050033339860827171555707861272011357083487758260408113993811652704379826691598507048601603627392867570565431488395119928211399173024452096967240159112097905835214525240209492355601322146471322109483632020940672300402027219832396310296023295722611529235701397077304702474025331861674061276850329547509140420525907528036044654172667049550437747671796977952002502366279481676933933095982439907067197453573611662591401169269233697699923863309877314508150485744353103396936322904734789215997457585281127204923054670432540652562812257247734041601506553370616517378206876756131780616926262820056362485803263027327994438604271839784524550497930849373800156871416720110791369304091054473238124565889778958130897022309680264876173569373320410952039539054386647119962169295914534625829760578519339097132703092319864592228975146506086166884299540477463990459980714762162512161922947430752286136248382435586205219107855490283191437614847147019284745542073225314375786597758077373319671388638801810103052006327697932208403911659432707115844560965170457183088780688739151785931574718259736445778363307055159710906035152542355097846560230667801907354189665674720208920285171355372740654328917475382697172193975027756862562942030380945959711875107750129173039319641576801852357634880873595102961562535960366523834346731426612381859400498777843823831694168329096818265584489212495595411287343499071210970860293142542547875916314077375574907757007209266328015011403848954043215509803817533250182776099289378210899182888886931100684826949899426345714990698841880829384714613731927598747763068341694429140214466001026000401026983336039482136497860058462686750887831255837704543865082212907534524563048813773471007931017233689880132630951470432236295752078567812638235982716499906144056405747913448350112781950014303073612817660432977943710336784270825754225239010812125285294561691902209228371795079757402189640635619245553263566012260728641075975261756435366986464253624290872211864964453400655637834501020068810443728630738979475075200979457702876998694190360523895381246287307086157110073012463723378215346356468864540796349578093103399059662562335973467002771848566521042412993677358951769367810387983050552586710524419337006539891826876132352818912780029383185005218422925301308287244524519575634060279194946910103773530239813632469422509838256300145144098092942141055859633487439545829565830985210011581491236558840553195368211893923060496733086378576430086758751747106435753777559221224812235410965076936781080670313055819273691593926482224614479261259968092674019834955445766762341187265346473024243900046102263995450956579447733713100912480833391972875384658664206429579642686656251314125594366956295241548166039807892747259057395857633886656220988507656304011514832543671076341692808331412451099525426893326717771168736722201986448617773235384498137174361950432820183440561416459245790656677457537744447905928452910781865558744134464443996967367762558854318223512351158042060109276460877910198338053583092795767172873644839030493062073059983931069173255420014133275571071840469864896693456175520874339263005381775713117082581349240719661655853485388119507801344672249798558620723594440054145934897000484648365762167223000651900476188578646756569710704611518291503956206848252020928527261656452605129868889552710840941955855233952232151144295442440656596396116149465439843650930208195758493992140934573269258135904778277291479414386697670523464814536151805821470939386524785266653501135304666902486922477295886304474427998293883303395382258121969722199131863931236529945420945978839005376905500303293802208703447249049270517818249024260196813485951285482491074167576306978337739542945696348334880257229640459156694450159410779119606446918549696972022698812793977756547692187817476233227109179605670615977921072546457781341853329480841266989116214535084380250467298042564491938702016922650666891736106982940695557257168955399061363023409926745503920526539664470860950562180217149687744629088899164867389517763631706883558480511859256605396826507829225205877110257106585483560646511900623555436111550561299453870536009416875737864663742346245142405172987210070313283015240827797874529197790549166550689555678509294448779484416789792973860257324708733391687658643244332690630782131913945621002977871364864818546394074441513774394796939061700216304930104080099730544915116866982552207439801416149090637731961401659721846073788374330095079026579719061379107254510044731400084385734226976127189684159194804806944092684490223483028830624552888903678212265238712884526498486454719873454194853347857162395796756583889378309651571213884374544434958756753649213417152528682712131489387355773124967942984673476593668138981931606855812891877246860156189263695694791579707534968290128000680430987542268000026102789538347800988623413984149457232701491993570738712232936192659437591011624317441579457176491991030857417951320742950718969091964813382795811916325531209655283999622579269035231464484059443957405730647764217940177098908889484277960613698384728790619020175014421682642368756735748165852236324169797061661653792255360891802047097956509202803259885104312457915866023598326651421764604595342987591501707076336572927324073925254586794143266125755515519106870122049798973450438061884647066700090300791585072840644052577230417731113392259980867088526037373829653757275995656283555154979342663276153476391562727871142757689334130452740373496079897170092897693056394943554310659158699311021955563218807235897328228082453627873294342159233742813326458420520623765659668103502630656043488153518972572418907430665089296361486315514888151327133683375350678147853344070813970292527164199094177006060154819507491215746107098343558822142379428048578964718952778790787715899001594890126901844024449635237597679014227384427000458637670049148120150720417547564196771012739961319870215709436450878380713866121232182353538047984754517950355908993936205650853751654208351059837639849785831494517845888391005339601655102947814876310873413278120237496157288208147927070382137050806729106369689822140305431851924627786107648977650031718614419525853954117346289169515208357087350166169955794162802415785573242941792713257176272258685018779685711663823233965423639987292941275202221712429947889966645518547020626678484212130085388615334626632327045405569364535850869768233694025417195532071871755407534878744191418235173612992887115897863843670884476317192612673845837468742355117274421847982588615938557519042296912132535718867747070654353642938753196394645598708458708319368527910446924054259237577934243765415184808037390398216682457091492323596775566634876428148112622015062176068535168376499991068799958806426733820593425492611134816787250121173499223163095317089585348334700442479913591214614976726501144926774037631185429674275295179523422383727436573639464988210558539107936583121866531399384325172127480400598226676493384865612474003848505999322149311487290613315639583807947253291297935829625574894401455270614218981920383918751083316835168488878494554026388315780496556108137711558429184147491849829256153341501699317155181475947507767606437603445096862218900061805399898592774133043040730445020202447296556059709311666261367650084633287436355362457956603532925276200792196393806573293520297664386738866189063461920437365975654257412344889393539260396191914111689035230742811609921055840767461404052681928909374264478547081146035808757524778385278222581837545698421037917733494273123027210425932757022269485641648512481488006698015229813252468194367600339608353246889090918209762673283533143151945319994198308815984154654115209474284880587765578965415812936412338159879364540974789269873317281157163504007679898839624351304984734485400749784104296306547010525154185898374189972276009265384681039134676939640887867805779772688401486197289539828009321036281760206409336583460122400237717271136105604932486643204555795656436721228336415758173361302524535506048527975401072020785918581031494365308065451454885680007833490093989952877352404720606555648710142723097081426577251963158614047116948179130367811322341433808709656912939546433639589310544830536138684002612619565046283654820759771901042405322167911269879006432084396143759355497128102883841858045763991853147738171778956927259998482007490485740278465965663921236446999953819803192115341864446806920599583418426377261976048474970572543311150969029187355841482100979923644380110299348646157515207409009724098930973028098323348368414300328932890988208469282903170075413470628162827705447972368753750277559101761270828496398214368140822747904545887746618397122310329440951119060898331007706700294247998095153371893454234460241209994264643202248397862531812522632937093524073540320431273581073069912459742913248698784809440353546751353554155553008306142282285978163098753040015902408343519362941718046165370190314971579223880517013079300169970002124134436261812939407073134693143350744393294177453274560348766693505920563117054207558911181908576262871694175400715486774410503613200573992100023337352840908605254572206582032624143742730183306672753105795009077221692963376136541014457401240072479886389123250828088534164871357960425642080606598659679419049544196510210151044173261575676931511122094970375948462617169139586272375056844796345848083696336464112332957554541020163880454660621518267098433086800612717205376438451784333871041219472255718483494689431850831927501526961392568321725907556374639965182360755351997353245435971036965984882371088962280780017918815941858888665742770982438769528957956995958041046891298896213351182324044060910044208919563817217351183842011004473027851390042387680269466069003979107551277133497137383203724719164975569028983106669258768952959358880313738378717091230029655138726635585739938086290440038692858127233860893685517052294069827241062529111546516780334839074784794132630184024827294571162172793485083607149268213538969955416882234179764126604696174189334461925356611136319800040639623290027081193037107133167127031695627632661506924224283543142223382279363905631353237073581814580952676316422425851133841137446511066084680413406300326769311062198754872856145765911247738647393023170626468782936358215983506172289941036225418095445925329474932684317253578184878257618110927220909894191822889765753420713991407515303353808270923447228677788374118385458606965970862220789962019017303498758869396757880955475931704948506275693495192475846003673179550536022225974351068915244812034523487869287842244662275313450627118771727738031625585330283689910294669636272207121743606616307864246421893371835952620378290790393949833573441515810129737709210669431342987995475978004156484342799863468643531086887902687935687051350958574751856097310477820415809799508794918600261619950571208719050927339446484734530315759366922891312940473064896736522025626166294558994586873404064467916336250738688881912030937774281992236033766354285190959797399851662959688596298769234484747705278896122614484527973462295474150251878624794386014455913338091374986632962305860125900457532921223935337664998262865649254236055837926083563561317151234846796224482379131903541005141297272072250827589361018865698201082681055747258550342694981748549331012086122369968689158937557210323648599526586631965465236572654816083644473869128866446054756256690038357505707214754480834126731532338335088718556944135294696671060350350136664755622951496197891229305239457431426636982609891852240123123393222313699687836855981461181577717970453764724385659407911329456543491797413355814292278000254200518459179850288919368628167721338397837165895794568685107904231673767998708109790278421490682902215013049119720036708476520049594163660794902424439436876810023270107565109270167204304954109523466650571682140936651679841240204431409660705024866374944111097176637007910908112242657414431675990966697703028217543950276308379643525288807268811628659430945286117406909693071545514684508360576966080765304996769626325820901325656095816453336689786372560480627284275417038804709984924290413292640794822257481252684601086262086117716341336399629803011963443247296615074775458472184353494534026405394811448623936764353589057923037641428035850393446123272630129064143530341344498981332667308771747309615583639252822823704887178828221860178954140321189000842517371854986069981040591429756013597322579186905655152673181876239687589233849938752263889959247807480986776218881426248500121469850438390416283048437190192113734592618778547405069692727208225340458275222756830009866664939290279056039364403176185865398030106368516620167745200167310995940911265490850341803317634842110330355929040810339027387411454222916667425017782011397272200099989830675485867498725119811684676413797615526405722841050210241534663641066459689842611034645460604479663743439161046432512154219448335712208600019266143195446500048810072914312519535337869934357960470469764667366354178405345409681802853598738879323106154914257808691323901182085498517472451608089668984031219874620263815283606181761892636893845871726520577091468153612748625596503627170942988266037481792575721915911849395509409519872749609837791808362165431988835869001275921170348460222349062464404054196344433285249925767279582265441271037391214288283692455103475810117011835764385677118481669408213725486495175109656770271096966319283285469847998505514009101690347400619440576010414249573107226977022488848965644278185286387562344765313071594761072105426661701793123440210271256519383690310435068479280359018731060636980530252783373432511885706788880360617812624688499034630749071396033311183018991232438648561733528948052589693386478599932295578221382740486370962496687193081762705135423459337993150189870081573000691408465913040086198336500087413643039135547995691701431857823442794445708335535843480742631154775088706767956464043729299854850306509850219098198275790718333209829191083065314684832010389161570164654900543677941671069047221803581373446318803460867373992987589499464356985350054345806079440129584798623573912580531746932560819781878996671284436903308112834099523050977337865220337443362746252347425402572877625989329678559570346399287634633932470732674111108150077336082763611994563836566421831571513080547622712730021231711042615565443305293456521853135924658213732330957819411014301691523813552439925204626155453916469898924074780784941358965846552548091318706710445016832666629916964573553446520718885919068914475543771043444674360231865589919371230725003080330709029101091858056754661987886066138216044447787357189559907276275390500751220640232792151313530307292834923229513519426769474912018677249545181350657262310530357141209820482552573042269283789944707004386014357977775031742624708470485818517656963340677042041672734228616608767482919166111345488443057078407029364171438440241356706356039690259329248999934532212133324463078195750566638103642000014658464153537011311425719364191740493088858635993159497463030769692876941013644944923772529652597456747312707662844392961412335338572091920918666143794454672001275703489528339314456386143040946239150221929335400557980758286836032190378915423294234515964475245579054900673261977167494061933083344294173071073383112079128142392505891824896654491610082740283981991676588559331394628709255375238444836906991563902590139465749977004003746659149672154619616622643570870016344330812861631964035108909693956494885482758240702231520671739899148751658471683755270823877027688789331101181437955935746058690108576769606475854507888152798296697040656374970824490023802796922343868804262798668876228171731453152949465025525825295978688718022413155207014499393586987000693917171149122385921901472747962753510332237591876235916098087252421523937630934925889746440051527886103001678268095306568439303841353069306720611336643922197615650039400330855479019637302035682032574771825733779608365797943401048881284887115418922294366210818157039351985269732254867186079196305378323179734378427411048887362852185189331252887385291893552819593265255498585067011741005052261576625995670319521499568433753201116103359996527670832322078443299972310797837081031714585112959015114411715831661956004288732165112672646300180391235410643292850519681148195485565349357340540938037423443704120011847247304403929189467424671903101356155491113020513113698367911085087721980971755751481197959898539523767787371060459056589008626737387720969557879879650546178906708527471681571162411251502110669022238268117831384035947861855271595844806593389055178533398694311879145537844479167605982310080110502835472450429335854596499544546733225498901656692799502032847365000217115960672611704243288298330166590145263039035337465725231088626619958282589273483939334772019008749948966132059465713058404383358721956764635393019362876282973081733128444157357135127721602111544296007817853451274097914390447341452997595855332000463474649008433560663133070684776995819651671726496303239245741530019114646696946424507307674288207068348672114212449272071024264651788505083734413274146794718579566140175353650079759094954680862176801963799736310712925060809709125377627181438411398236210413535197224251595321086744048695204469710768925159336096387441336566300504763862658167844502091265343850928342455329286504715925878852573248375941510733799714612122787482888775232814063967088687221769350001905786995728710249301663903311555590723063844032080830285454208580206128860314745296553613524637261579124100959897340710026107044203759160705718245669520784821410126440638255367057312175655139778327369615026895809473339308766819567333405093736397987468957560134712286482556777795153282995656474573342244109738428903991684918814952603627086682104521693249371711867917409623349562733566357993388557560505918013423865498125232197838897745917181556314100688962842770962706712950239032230215672868162341161035843515064297417107920902464731261862675204793507364981532525200649688216289029091860270832766701555330477960501734653210887690424923227640253274391873787741809831701683111441053302184192227385308778826706898106539919964078177608121366476230274737427623361331600573723194858883398975683659202918214681579674958308050052351912216300913427613291419294945044705137744070647985456940020315197083657102811456883059978819556949174022435960620236512679277829678052877956459495927480488258824383032850924115994651209196509670390332079081935850365065805667146746184917298413241940344346102142068396522683417338494308209347466752119413703210037879540566055383275801500606130798022767831206237204254189254553171108443055319761342163081228220182491440771027648933956005613181556709470093455590162578009656932564371743981602938650385571592401284222001408390338702149497953943392996672064294303774307181127575558872449371220119383712786215856897121242924369619021975470643704865966478204732321368102747338070004548815530793991184075586885771503441182453275770052105327596340053407423959650129637037524599740964526332616503257494416896316455268763178326496314561032909097964334530453843941054756168956430436294400435233143170930729165525601389902281228904039825083489550164312146905140953110268516169312037207593715733656802024206227186011741873381909623303014204184816197830403714941921387138134372392555571214789390292547812522361097945578352912074458275664779958083556249970618870047417283426598459139530444838725707673904551933970243754510779753663544298596589918568287233936095592332518087530510784808428589304588017051182561126065152071410411267050072794404625854890212363445192745980045810242626039833489100228483977885785013588583540325615923599936336508949658661209418626675206521688217815665097743866577091024136197250102722455957276935442789376807494559363133706584296909514626897692901178218730643547210288167161039661189057147665689619468205842637154625777323752900775715012178480877379203741778153864727878738611094184960716184300507688660784889263810598391109245645396309691504876996529390531871601141139999521974926301430484665297960991025323660350319728978147021686590178862786117948911976082021527965314112837766625250757819393180750171878421088928285719575483164713430859607599479196802455005370693222196608897502431090987662618023579594037915341015206907327394432904761462968859898569041750241366690842228930883965105076146676000132117429835364842753584251105968531800281699959732176175729559636828326293985236947177403236059404610865894793743238716966449440708934644232995542977647705558689868542949743344542125278158977813473660457442502576777380390903060338438326493726348963528743474280497851229203953591460965540436277452668808381420847954579758959778824506049551184728794645512072347179545221777457518539396305039341099049745194584023226911894027209481352837235002101293171503504865235614605661411713000921424034382177834142798962262748734977310439211285014994836009413092585442942079772177911325821774645093426616205495569891511875447949374675111213720758697552640344995277420419273225558883615181269127867525299864357007856999207436671860506639538846504279899722845329566980911086394213720994003822228279809877738680232014298712036134507862278090362286029828393702477138702702011745041592513088878541724326291196700193200951930829908367437951120643004526242425022650983216563676330913212297597349604293830301914800173831238196649252830639662258570593149093472971767478613399608680197728727234885008192392963139492591756728971223332909430957517303617805766653390416273599045424878005614306296854071864602576012356311663527742149338992365324230978291497546203447688671274445917106198266111241738521183075057803321012491356995871449404719942043677094875425744113973936916972665278176765899744355357074946450030009947719508464745335320611848213218114320266330169781094855920164841754779475286439724121676924244443156099101398805244369797373159195925234731890246931859767841350455750797264894525683709375152818797425124236056768662346271388854808623213677218311445419872527764452389773564744601702629613191934275693166466053889528724216741367010901931665374134677150565413899306697826151563409245074504496154500174341720835288936733581158226872762800024363434371973897714566509918058206236266065193668294128828334311632988108314163464393220988192208645909655355502539905061025656326891791759825857718484025926097442715341083547795598932163615176479367813468904579250138000370522356688612668836611631282794274187272471544232575970476680739776532949239797841784739079781126803422092438687247897211387531504387954608256157996605772203214218122683381541433866381217346256521738185824670788077471683180733998393294046269127053546892327043014671073579592018597223396859093175761350784838495068765092575157023351773840362707958873002784724447377137206669809602380932828574167262159669466674395475279784793731236237640987596383905305001079850969923747292011737091442854952448546186580592281066117496451729825857597074983714256084638047417561661022001537719911109133140158409651096678409575213957538059980186306373253594057275891217347485643293683707785550043589923870649138265300869081419657199545492143933462285916448478438051622554401078418292252002295862883474144601428391795410015134653123698847929826195745437376122931811020090454588916440346890827961969816931286451038863128144121957331185521278055438223690861034666050359672293423647246017763589644604844015281681708715617353276678696742910867470955222982842760673192213781246032121223071692326704512454081481365180280044372916301099786096838381121340422859759113793781550369252192736644484368429982651247128111472061177078365409342949022712537784530825050071295785128286076036385985475660544090214293355169532668850022679238435273088888344847270975153075059296352723228261855601189092578309052592918470096379402916045836714805065065428184364327293075223160918942299978411296066062417192647309080855447348394161687823876046489490193546227655732422119781414503832093000325255857710907235507856028425178213419817307256495008505383533948581274438743072065886342634674184731736203053083639518122492137466382817059722521950383199523827011344963551531933777053862093175068134208028774606426300978544358888956554542637868905738120395653449888351132229329446149982749406067628302288988597015912865516171483252121187465818142230212104001095413793965277963460071805546040552823990922033846017427660948511666919502368523611593409305716626310382499782880487013509520963508503754918096122612003752419223399149217034900184253286641053226773359243676469174526573290319670039651612962116108206481942250419087147876967989449223801536585631412885011916988655928400080549310274850827613817272079335692900473729495700823327454246740734260996861998999791503478928722964623060641576316159668021120025153738341130103503928152422607868006040036754137943133396112208329331387038688852602454993246484439668571465436397684913299920505207230399101765399372427467696246923730318873210856397202331269011424499079868095571655224519554892749751503064157903881823421636005874607694624062222952423400444404452764295047775819627317077700048816831245106295499308945568046712377266380308976571109049191215168471519145681641581535003490189875829705292277989546606647225816727893515949564842264781188555141368817137285625654232543569028772839414595778488237962908762004616637828462450717509859929221728795308084436563678284366937218470838734435442908055677003659125141028839530320171128246856246952736390580133205439674052677082358520629053467163077278619831488852330262909363061167988823153250235595133675067000205857577235368452143268264364984989750998253658546257771891904457182437601109630658119746563802503793164094636188165494107594205149345406181832572125401647638224495191553270190447736729744225188345187279038592267732088021394615694306384365452461522237801418592992701221575021091662170439138680752804934913927677086405207371736133902574554527649589487589813596415118467258621464943668923301294843210896922646051556656272062016680429423683298762951534025477692041360075509601550944165009359470824512225447348789638377580347367793551726343267447527607457958049078261338905826687015479809589623512107909357722110576818061956095400330328218031604757766957192244802830806492017262245203932609320066100499516865345609401876914575610500080657633936302383202348043882545868952509873277451283691774085988724405935559990941523363363094245856129955233281606327710468217002794059842742313142565516726741718757347247981530686408148016338309459044268220998025359216943648873436062671054890633202139628655136905296705994992323331275094425314809574057191945185387928068366718491718218612459992322212318584005850425168477091864297185883162080187595860052408077654547610823240735542417175309069220811986562961926259981480903491127001872706691001389658489332964233307351235901972491851691976535519029232123492785779740275456529443264423274795892245138638257365731274424787848855895442873476638473080038262910030026727533403646355938634357489464443210056737953922116599253250085811469471263218959797611486792640562169070146000644147646540651151692677636715718262581196010217196664474606241656636389043703827149435992319988010277587844924807976741352064267259358681243184002839214681580559046213397485100574610660246109550881114926812528077666350420700942614110259086458923310611802024868314091959956348906301659709496980257634394146623534495355802375936457183211293364334013150749262445767058847270550967243635784943304101892379397819834965292011258391239370763877200536684445841865674844688380446908696858696371565368445486364943129810969044955091984969501639924213601996231629127256101559893093919089798116178040921129363108825564525950427251194135616681218659170044659338678023998279611804692739032059731272534385788917878421594414042728192771609662470157992321803567078178168640095087559654391450808177051221099434759836611885075185603381875527367811233306029137586455702053529788573467301213888635007302382573301460655403157831476674506198498397592209607996360317567683091600755112507662917400373825722160070819255453297691810744534506397078862653581493821045530543897867442297834600641224476097332643053657248603237464118067165719595946618922040405868783232851362732343891742545796481317728520405746598075099323297575633217756206850409618237913097986016868002176082870827489882840550429349722833233932497856251918474472484893644348025436367718856260229866802636731835085952992420111368906869671129487210578477720913897871561336322852980099459253400063054223501729311329457490754405478394477012750044343547218637649989158967670174720230204240998544190777126720475735303100692690133326513359340899571771608626030430540852674925135241409640097294255437939629161424124868399256593536370835527302215714684482696500371733154393189184987817272264301455305878324840346098044331114012475822376094949047192983857143728735022456298436318675017142665791214842518583425413691697522631743997119961424851017200486286278439493583041203165211070541292131071026587242309668810184221191782433889481695625801776827250229881735178194707699884085176259348982818187056046387094029079463935223501344503885641588676539139947682547313051846638604534185776743825784808065723095204636223039636679762808378986385803925088358424731058195706453239798232868609484248115006842118108624906440411246930237380162353798677169766394309920692825945371339246025280139394526743706344764902051619732102837885802648684945618208477844504638383292819471348037952245078800900374366567031312414943033562344743955014455800913022068890239037406068877820138005400673385662352069487583656336553382264282889134657812730811843112473437122922556969123004808187954624798026618218517677203644201122698364416527774228373313033228408882008038913890257066678114243616412938813375037885365219044504037795940268288069323085121049659680906137539109637239859745680969340044511154448301468552261230546969623695239244518357951037753857650009790415150110269901488911150161730138064072902781893900291641939216575787684506861037345922929711019270295482923463217981489021306909638883566827846345644258284166679722277545232231604186374802659457177246396293239809865575235539714634720457520062260985574543302116127190184068466865102453230933108271766535839977194485840521846427885392037675389857462986343080442506154859960606519274722065268947912349034228896144902001566399105178884332894285661758340445885437939375993145847058307876585410424982858700139021204340133111044790316145433849495477354665406672015500925854158461315494278086284931626543765964440618101727265116054073672537778100171629494054070984374697519390199856658060814099760335653661978925799048806790396430565322318009878143887707619304017845221100233804732509568574040095161420554023526874807185145240293063559188480031554063649882438854904586717114914011178635533228674588971638017446591196706588697803356237939279181073079578146502388481104149447980154976899205268642705778780211835369897463811597574463967181670245635747562053344005467857538603364359703622802086557803729909888522408426358091274213945557278335797846257357978762986659547107378589167348879899354740090622323130521216906325724928234019986091825085431611268952503841240763343802809591071241488288996901824568899498310483201230992655605834986159902970868990032682112267460098480502242193091572787611678134993052286370514548601366532771879762388255626394034660997193268918849230139434142224722338322119200900690937132458361113453086045944567650096907142691738253036476809527134272727233089304134428029963077959827070941557582885865916348228641493652308115959362642102595620150596134115612490998400952739874169379685606274396620444115925748980804033318390245745070621820150144208438069571272856835180883929660708173231373241650843863311330316671285260666861778809039040341548904236840299635504153377135663061293519397830685297913341249467354253669167193081879955003378782580811957898864976374341963336967073514055892199121015361844586022209762992352591390777085917946258501456464259946169077406101166331967394800380355874264357571393338357535021959299811166909263159470374385776729152231847904722636969825353206890732779907580911553759306684103043870230118488955102769269483126751713441655607978526220835915911162592370718181071315680083255586619042453584457552212727314554369871708597278724940427862502673954054453740189470678553341715195290901824342975271206550299883314159772569437122532595238401003174095773322082286254482001920380237405175184689317035585432187604418483266822764418264753006171917100955615874254534746500392545089779837484687407294630803664661111082608128946254994421428387369160731024929486117276850456083352749056916880523094959807823664473480551270042495888349520858698643409920205791305857615144450052928723809981926406440306236993489267418258691565658886764389889314047498343786426949708169155108651989023027270389767406589197531127324911475339268262902689836359946539595312799837823390120159446190672593886760827878695341531982100902353029997127930344575771301660781790066171696341516744756329441891295498397354507385861986151745229994766877677097227612877066924943657170005114995023919773146425427844330808851388323554196718895617788320418235160343282723311292196119565779607145530565149150682782416325061893791498854655985896309244833435140401804708396049293719404074309725294973231511074850644689708446184758202890627144791668687807138525747823051649364717901094662827110045659057211612281015340301687406401586022972815337739298258885788486644039106933113970477198176436777111808134677843145223206192274448546528768338823613045230881459707871348040739041187774563821222222008872925424157912430747499831508965459469021990526171393578511045199192129322661598942570566742950262796269192427476444568456677783410100977849604790283933177245074740396952312151045806226029298273587282097827176395244993423738783719037235344780207861494293632260757759502806251549705654353319399851739100615334666076426883027421786103317497508610506486129519825415788860433637409476575597238242232229753512458933094032727105401868785974617793425129294982542431194526613253712578881817685927783622603448228828324679397040472667988452443398118728394241571961495948447272072551007830445069947443419045079580442152814852286025141903666000385549398684346864083357721747961983956315462543365980492769976682816734150987198867115863975587202029962504476400273976508362556846809377661548988246319659298569693905937280512228635491097256733059834305842786059092640488884604729013429575567098554003695506642193234915583307041616443259133660285516477510461677877717360268682640336077264478473071910480390916993085889383072834823374241254797693096189031157514785019470500697541398181222899787950578862705185671180019582021689588402635061111552499176795826035032453737032162848142428626508221651455991116867327308382438759255302358939327159343589282031368988214410976042648527922578139047175729317228623099032333150654087662664243144925176237919889381272428609533774546996654794883697236118865287517623937596435583279116801724639622069187718701759399291236964692678157894959516676276663759303940943747462381415352860395962309677093982642146194928030410560472863706285046746492106005238738000908057871165157240123470370675104855669080831504492614895448866603792923089085304304205679531412766084343448719263512362224533921104918013700029842455694288509052532279368392220317154643502832165706193721723116723069866354194365340418599715981170882033901917737025807249412887103865457724665808722166321599435481675955176056193565137855966968830571339529067288872777101593548487790754689988430132442437114815625329126965982471425913519550866127572115380300921565289316217608399639043379446465787642788059245122300220144429776150445872612182003891684362024051023500837593690003250313355214610911409866825483532098395341570927486476578000685762951791067266278771797569188089380113369207261639867974016575371333815283168886244964169202934706989413773488261588843312256813400574421210730287802925046544918390763407446861955294601004719730761652869785621355492421525969219557428992276688773592975499310317120916511854913356284606202187067667383549536855234490990640401914862027839043321686575971555893772590001118348647296243166242430021578980248423011632910579267299490129410076720424077019135940577569259105045377959205224801977266466859474726061883547542999913465185196545107948950846016352464293023883645156428269409992890031127805658999979290930964301866322396443843407129956084839327650777704542030083056651991812481050856041680637226959772166996858045078633272618724701927986001339243883381821392108026012230533172695179133571800581204325620316851969563455616701227500750607400615965527272044613387854435524787892197685046220650047292006422458498031039627574665092514708982489315545369442629974785724528613294488780584776938915762401590706060835584305804425225773706232949464276167477409760641759729591000067781955601815487804919579264471966426980943771554216774737950814042783969378060315473055226997883558456183107693711250951198035264379470641735925659206712082409512165806145205931064160464340651070635006696980363470100083887171888652378341576268855454632247798528788861367759289648442920284313267432696804152330211740745172650680273452390249678651965172727782201393706023720676858266114091972206585959596694719151835181617906480663471426193619426651134792812750704458565797634764909028349211175064146885551504582549830011302222911466184117270643002105186035050161159297713643089202828130445593532016660986335723002457640308924860644790471334739873514982847457721942571953202952505826782028155057162519869095589216044817557350521644992084083517194347574305166714244887189563837723035286717784653204594438462437768359632648669863635427804119461308843056357790776542044840812767308426499016024651216969225767414721493163496649773926230156770778491959405931350214058388146827104266838250034181868148985999403408570662495886040073161681907968049698787377479002952275808292403196270575192778135159128521685551147053970101426090048497018022554247779680978709991468782896853555170634551296321988689821034556097355175291163690040902211777141593259499755785987986329417339703778001893561107197064460877340899536859541044840492679582012649517960925897269435835283235212724388268477145603122218153539547016774843946462764164520817188592682406874389288687423155513027102308875327869483526131599233353019532680572667932903293953276822784359303387880174764240952139428511405884960894661418641847939096027928696296338058975458464086992531259592902490576664687403522831079433813886590812505042787856351200932510753977747600219800280000103872628189014651487423794377054967474409988761937858196251802213858285368098519695824957556243856764288274864928365652448078870987095843622949175731287130689718243037828847131069200307332164652891212232896480575667018556916267024695297381685344443817218449347855027136438292412998196021840007915815752568867133896325000854681560096892946648396498478326203140757599176474361411326973968006878547801677660107619310277084665474150295737734769065878350686933489404924054851257906166525788653028568255642734952398980205226230946851036409769537756076028641838280087934082698501582649841078035675727814910552876736382229791046270687234631002310610517247669349549735871181147349148283543286141491078507194322171096543663233148576935892640573509328097784310896509960369542915008382470184442310195599977034899621553721240305550346162438670176885696113217911056492775105892035721995929100338259669171848745350915289396433221129246595043844147356623753096669626871649267149261775474505608587108741313987134671601822257624689634605182025865585996239774753336005491620222502511200180564466669706603379617043154073158879635354996650923864206446326240684659991600696653001862419433654194005375429979797682774454280592839342076646415074783108534150935214695854697908264976428795979251928856956591432742461969962579845729536096988210799232104461686861521114490910199866787860618585876314369942657777362806955557909457023638391667757099430125863803682000717937123970709076681798375850501151639000183470373189998070297545700976572600530845673942927565308745017489271785374795421672560272420672587838961079826692784776341826115207308926229874477602424540924365674154639710629451543992298009323358556700913009873545188299481960404913068124627816822534218888864077519779929726553004108830740207934320785089174487434913582344194555727091444609865740472581190077223000948656622783258103842389415488661588027872232035317513217127246798671246717355656184427573631569926691726593338403360712773876657719933029096805248506167870994756376977433469561019611651288322196618637086532473940190214868017157854537291605224412575326211769248112948357630186748590597331661989998362851295161763278026440199146730209351829136855365578117166470767090039564060138486169263839788843492242881525897770095468408345279355456553667157610173891709290544232348998996468361837592845419282880025305160638633837416790000730357489404567510907687466577796278607180189231589669518442562176091304776721703936272786060747945232684448016424570031638766689350209191011588293852134141252748128401274480878088154042793324581867991178555542201673949546664358460862186290888343934080565038555645163997189635434175804468184713566095904230278131063179121880385189638233348538193929268107766678501430385482723197116313451079229088934570752509012254915909760653408433867129549382663063275886184768608949064297136910953400453286159592469540488170780707460536769269148367602934864684124973212147888629097906981209039367416189230143053846254730061135476894104052687757783035789912669661358385689246267600158079482393012391827757746889525604682168545670568700878630098593784456081998783958835922667396436435313179998375387146345581123940165575472830837374147295302876826604285225118305038968011454192948502480807550967715094003592456016627024860231005357983836642470314442390593852747038923889233034847620470817553288029164351295063287739094415321307535575766950881891418941859343992398272745793899060417067330436596808761674496608909559196904237316344915892883225988031708566516312347220422363137863220008532687160383825877964565614621134542325318512636454712609761419044462123746896195775490208515041459860527205416700608356458763435644636836933366680584673646430863824953080149364381206488057869784305183219805851451485661401993910538255475025411694118338103147828511153917696590272098004529079360630803291516665651654129015512710428257833889069168465409334626223506343015994799978187436309890933948759151585010173265638956681832352529972883697964448474276586646839043475856849092286394034941093320081576774496545506538113792284365274350337375360885543083182802206980446166715087682735720014478445056717188854481956519285253025556278393398769235097175301795668806202764447577335199229057235559029970100142315382906348505154220546681947305698316299551331803306736833082413067131260181555546650042312883144537532943868020168010977806416706903540592897929647351635458500100869280107318180160226493014084862440886708071061587000317491486422818204963550778106954161862453985949655458646141463151999323278648801173723231093018852742117990245761610434298352827456259120239676106778322490931937517005735107740097689566731587231929310115671397529716218867073512939518796412545701182947242831830231268452246362914468868785756837086874758651595389980150373043871884938190935800324668372133939762856349760499955354396817535278140978494973638678749479080181211536332008210383618726763667054336178751957486104306719804937849899646665356941070816795713856595662557280634359308089141540957440928836295218605743481743583634798267691098130978886096684959265704416311192730815390593145291439668961445963284335195952964549371693925079632235699434127902088756040690847407109768547080923263016163709020320489932810746346031744926350419823840782241926936871134501359634310064508420197589005333669715090860289379332711588261590693755444401097647898839332003892142168069788442616309070766922123158470456468120518430117769960100536831748640162004387083898746417324276298901000454896623236062084078300326177019371693416823410469098371109457259750276212187242783172895429944347947015530766247277908523763398904687317257809948282821753873107022949419863064991178991284465553285627318889112999520606795573492667191054475802518152952768342134428508855497806454283445042916595156425812378402612133274917202660064421555528186538342902388085980905985823740592684470661169010692208859327912153013062635448025354865875555139013502846013806677986152227483895518829308481817382805172821173176107580359724545751113321822435170045777044094921912965990710317043084499127316930568229420373370409731034160598669675386189056599443092510545632343571013265824514820994708428568887879454981914608525057185079914597004255603114976806073593957422190254337257947509876027192565749208409981004408491128230696129031250457575779061934638113435396880398172379464397049621545103806958755053127908322242324337831266439064495880566528034489516892069851821626838041618248407888195550243843295290453810447839681824553064624260357973195520690907185800539836072456681467669809219606067676593036421868206376934008786283686127070028740106232392972900145875792608905232525769810530465147187985797724102990111956079069418829078142481922145370387927668337777015713620788119482223668380345744052114133224372738559779250251592582958440160471444750484235776596409445013065754448459146017979647227450838091356332043688117915738191969995090850117243880465157989504455422083750032455718414469651350402186089157876627425907532634656326251798199753699306819477640504516504370448930267188451170083641497363850065942458446009151901450960610936265018826818038708423575541010055864664702622084069981083870126172207621761537873390160484302853457994209007356354330297998159049945623293744147042237798515845075603074769286359477509233906621990083129254451344012056239640755571726347542116458334684215678789296928099839702786396579027018487922287867052668200751709496926751074431187037463779031557607595765713355468862348065775749263067231011713862359619709931591681357466993417441858585553245542940576161534618090483640720904051939936240883164132863674500644354887670038563722781000283257057103689563645369513964111250643121683810672318103325169927002146204057225313837694924539420896078106050660128769196242299182326321140927843710775153276589041851134923995047971899354695164587261645229971782462203458378722493480767908978748322649860117051629055384426181167640218253545006219093235042568334758955160302516203610785379042069111535461244434563838117786558658384417127732231030413352707618543421422754308270473167287649414836066005116247464414517364063149894232635364191849545911841634662140098691572465749884556589232846554695478498977625212301541985838604982016518166403098729535889772557312981813772598683309702376056597877513256904967601113892342720021308612739626992206865529858059611027678574734206347985905895391358125440724085667360315796222158131616497074923608306394488035464242915818747161904876875072300490070620154290258778356102737622469116565631482867794951643831334541678854197643865616160341965780393846458765555693968263870820231234161910330642445288821002142827351249332856052717184596015246239865583922453225261651368611159643738474886053077345685053672839385009386868710271368085845657110400900405257956568124152062782109975298736823278897892656261628418851509426891420208064807692445037989593538396453980135924345997412861862975262239059709657951955653963893746536055136213664216858346622412026618501974731616528981917964377883738604362891288083280940505210266444942730512871404801226624625312376535205253767017872449497582838573116437823376667210301580331437060461543826674338511186271019822454359441386776518648358824544235411804717515128216135695198078402946769637661277847463147251030611966989918310818610284609467108441714259094979931942067558039413543202528053468287468892873526067977194331647424560523342933220042982648021729947146545018920873702428227124339296055205193534317442190714380373524296681482612491685190737418548186276051046807031887484676222350107467457680390791311844597949214219488963563269741271012258648518541502971992579016040038246318645586646257731372961723105255448016391880770734696154901528287810997178858672438594695194462790300790884485497629629350787874541113739059145708039548321163186558677666927140258327394014311686097600319263004429015994783661901057901547360037895583551351118376063839305793471193630176358094184051004138161185745630298811558632232986635362329172282121441665855802320930415703224091756180371285187693726679527851670347104681317393376243807352522528451640108223517127373664058645538792662034835814164238441694435293274637760863340398493192092815975823903139622800297597091825355443825001894875519307600815992047143003642387965693232453085663034843451693271419801580590174228978997129685791444312926275623280575368270308984611353803875821640706944611321567361981482355120594555418299024041143078179228904329513393494419024999372749981670321992119116037454855333453442060183136643008193701859887401328584578815374982120353842326111349492032259944445285019067935926568772175664516475759952004655519269155715070437391677862180724405703207877661114512245473987771323366432406730654138648645407931761731758654949182840817021997891605241317655824097856889487338257730696492328728232453067839458574529555340380653537397772959840842942401513079819715187508858134356513255872102467556555736987429123968842370190419914261210541492326774895488561022193471811066805090796821668892536605641781343299839652607886585310161072346581477261419415334225335292533401107986839066663362243229467852659438159518309271186725122174127106465591331457194529722665566142549871640695773053262297088006230443701202010401682184307403830808668821946149582512217832178181134902767343324544214463641740297097652424514598300808589632235723102728003446130100334658395934430350840284386779916418994194118762341190257027823011712927586688083570763378861095630584708303066234513143020708701804990356294845816882040899720305480112852790923323085109083937656335254597723991305805426480723538749962339213794759117161805533976430093214297681800754650908010076213714647464971507215946086117577253492824498130122571782470843477022152117126720674887425421265448696249107038552743051038859013164608170196846634132237439434392630155396676606281511232433472511689829037751900713635841436185008402204779449530602081393576836297697363239262451061622242247309980663827465636382601798909669820369657648253826193204447210510018046155782765426768214987645945319058866857806990877311877650967076910063980521459246776574940031864675123368362799389331557183723445796729737529122840811507004412160137959853908145954373228433839676897540512649537904420151085741727533497452169222036639902082121221304540055225925806438480585896843266901917829650148529730072925673497440265493154741118621435017494425006270135391399587146236637633962339141916077543536332918461194237641577548197804312212161682695970708392739652669753416963018888004676495988682670669839710254425581308224807087763670594526926899080805607734047875837005232183328634336798114264246165733829540283482580030661126068820202599141022176447993919423723466548724931915784482306922233115037238005204399673518677755058616560180329007552698275672137674625909839576995055257854403489024083891466684762827578242847857177778040742767333954482853005908204105391126409832311682588436687766134143728895605191340615817879188535380702771654595593243819657632830717530825507369896658821205538990319039752733743252728052465695811635969693655197211826890257640971240279935567241162047233160377073805630298825019277684980103324179550915505849263201698892098685528887200161344001032054774376022647400285967463387831289154010290011107379691237669291964675056542656020756695708646470977194752474003535723958591807349018548207113609318292115341384389451447532537381089289032968214637614025451827549779508232752828589147009273478745795770071203536626638926241736320539085701159414667976773154949996206179803040081881859953217326324496381009191838810378329587450291752909010766982072108138279051148450297927728196963538995926579624100411633095022221456842216207652332912576901502373337741054524695328517218479848637850238863520339737390086228146813005886642100934197896519468791203467396372637221457632995574606395814234200758792937680243709429907254010063771816686988350215242067724796670205338704951811590233665389603940878335170755003138053958946999227398543101269276062146309130258709217524926157835829242014474132893599897985821880424176356828057345604484784835322991537332405942254786071823784365368443101598118614791319083439094070391162334000736661788905101263103135706920668146634452037526679060157849042913387862187869164302714278599993907354423788377726276348139850939000066851704795636125361901843984798571681343384574886758206788813489323927540839330262282335471453881639058563188932421393000167526065745583765386072982810735563243730122416906917281728839192767272953942754457793060895159174307089662801769431443558118181671293254347404021865612703377111658347204610780346009224215726658154461342924547136422159062128642188604228703574868632485217554401218351172818176376512758661885699923777410244315481127991994748893230999399241217691329632913395387808139523925881750184268226760506497523044091382415127677791855629202299099630439414057433840495221766067304958585809473288666787988112606733919290914282534265034728473893427576003798713230044282282232032178528747650587385612927137520001869808572865066138675550389825642873782926871734862620202045214465232310825347632539886979040314952061819889816763095528789851776180081489824984267981327025621321678864733841067953007692087989137203942698051141188675041250719632539918974942861539123244735961668586206982104595696857080211335066728200417524886177336830961931886551524600654758676019779442097556899303982986272626595930339764651034167870912286039879301365888128616339156849095447737173629659374953067778945723758836703432784420361679471642051463718966976120432578428447918151113684179092392493010794255563112157052714794201087092570159057506693522882568478467783134737164650580832758943525104513602001926720158514031218136082274195865083777404547431624587759013121845986141809874880779218174554880329032392289376557828137205960863684936164764421865422884928959296747581115073786968779752881372234294771347094891445745850709968879111835193102753587630648481243366118545934944845482665950446591003224508456652901679681976808339414353464811141634648497474909059466444124038752495109791090850101269655750205986451470344198837634376647948615894358037968574026001400348437282975432302416510641915509595130204572704881634502402283242077142758254546730477603643769728194883620194217108120000091355983757395044015291452497375723052916367764424003084759901511818877513049937954350088015311403670326502184559485087634733046374447522082167510089099178290704630477017860986129586290013126497148243010090060965254959522074975526365547382861478237146726663089752148581995404502209984709617431250136119310724579264223912205391973868099358394976828436848694057557935999382859354751499009745890067690810875564951800538071752306811462749439888062627171317397161973293346207770804144552144842755880452761625460003525800987908088678168349596856098502965385632047018724791572326693962522104640272834297732172730517615491731607377818543666360867467609904394065625653945845823229966146157950618048788560827974881733958720648532871360891715081417039745906157359431334117340545542353029114757315788341773622612956231659002354115539002860686698533990655292063348966142960634728642832105645394103637157829740233003839801220823414356656028310015849499913514773146046649475207479096333959091322757405861537990563683154136312707104987131062187059718985561481631559475369475766543854629677508167497068850206341224653848449677412722354379209788058681312510481459158884626133298918599575015930858490087779787649883673946307136036256067831760924134473357107828881111687868223190846096543239529137374568236424398343933285762301425461114264814676092848218488530684037115326901937693700949554412645609357776638991978724688598946450542484280544049144135996550847700060658274457938428839764513221587310018426687225404604125803402166492358345005231969014359332112553900041388401215962806328392971560090012687140657822202909534327359657306159444705889991887578868462578345135750790472605298299189248504012589838943519727307262284536714140585908029355514872280663154269889866565055243843209125992252972612967784498524636379543840061754526236912927273358988584244713920982518642974432425767445069198358517834203928607862876529133653121127737652466037814682656011617453646050379230109794144591287726795233517652654424541271236510117224942957818649737558229941444233298357272773098967279479691793406653386031615224741972273045875600427272365643894089948164676798542721758868233279826212377475452866985416926094575757685534901088348681780749734223563034964573096621900543994188758932362902123545352350024226054127597027358423484480505908021267767044780286134078373377456363619650028785276877060854147974227258825419702125761193734390085030921621441769735763945746910165287398583955792558196331915693544987566721135620192911643971047085728028888108724806872939879555978005867989265081008014091006348038859698590808516374338705345933484279044231122278859044340599346754951144603522753158716994811476398698225462308007680537349269535592226926861978792108294572654286838144246868785024191316067540135102785983410441885503932706769298753866827675997536663328702639047426986144913819226364443273597861896073891302769194531392723760158300524598972574691078179378106489844452598804867223164288034274837567884392292567118609522393920751387533981205030924755170309273910712030763576172249584356653711056083920360878273023009871963803831609043432450338890091803111510724231719492370220892390354853641843976796866916232097127292317361482222071126699768938108777156700378374565838587292988453605479345112910022786958188996792918375139466837995903512125061861507516780897956141313270172571958820953559283669620110382468956402822513481652097774801712337156072800224015982041986192915460008251185382588246364896617671191022077576479756706389153133561001434564054587818048752183297109467582745420297520292555961305428583987753349950839424685351069229776643031187905318307323620174370430473908393835204387535668751125976445339712298767381994984739942079796717429559731758852579681003723097001214036502147261806402785311613650914246021100374661389462936869165093174948807476642965584431849997346154406229353001142709749112089064713285549933979726474228964902029498186336911089559454227861370373872304165598640707353027770274720138597292617640504014535382006904158145760426560831072064977907041338068981905349197434386109564002208510882890325891555921526151914123747297218600447168152477285417736779632614484137962144988763677313518787339185127313480392214887361510740522953177551167206648994926655428033067062952345108267538979275248427634494289467855701170761795521145737476281735847861612127250357198293800561862826417412981504846613091763274272886599182627548769245647996054916569888266055886616645519044839698525633433232429168703921603369971547869399177479757659202095653164034180688823741912405429401383707136767424444001132961696365301213345244265592747593894684884970621151407565781959842858177634153624478585779487714476234088194145100016189772070190585517098221011863829316531347025944525537951323734842591713729387383070560852578211281042876921353514046766408804476731541666102541545739004102262038794071398696008437098084259495943337109832847774346392697030051864379763914280184838094647508137156246841178624316811342237503213758601861677722585482795349844032223606632449143389746940728960337035649176848337574954022758090041165614080233362751606837659139625997274831053663708003513368757097520073815778636775153036630989123485701344436484102208307690957355449336835216044350822884258760798336183519964459495986817427785213582784846948242224385154043721415631001419302465012650467476896350663892754159671263811501520042722578457996720254062059917865654482557048465910693186308329871279058797629255560941908914204145517568631931098891811459694287907599197979334826795683803750768629553111102422540482483742771614151016700046709704047269642017300373235189510668879967465579464090543315532907183520586805980605742009496638371915319668947405728233179479791503137118534249112243472253433642903058352991588654223624702130476547027605974326268715923126609140850372547078796197594606983458908347153399157876822956115992885450106136426067815703134887318163276556045392987593045744891930973334366500451373795547832153200085123151855623121744697997389762097644333499613079793812637680826315195057104819154298172123690657603011662933249737781866087579924807668083941319174689851058838596433618837404325740496486291047611499678958946488007124800671929915855704543061773945736084104511800474886364677721191178721899468024512631201536718290051234310385062274870869485940363229157327067153048105722301870499736138155188889719821626451074767461424162133160616421477155961182287758600263112948994727040137331129802519520906897569948687348019335780680264079863220875050799814885842181305881417213410032547281364421058598221586228433731188746136459289040710755017698696445048200542785179595522281255639747908924459832292812261914612904265977602335809904789885858669254790800823245727162678935955798729820428605704944085268312220372633148726095142992304216590692601372629564866441677413299308236383510934468176492751159690531365009791639318250744822214087871867503486798258749533483562728847778384487858389230355187752150824281177346102173682884988906519238129373944177036531210625382044533225798856862361155830554391256603492453266700663413545540881302742849934604702996316957758903455615139098357878804103551360259116277480847800618941328896071267031476544938658361052974174963244867201273282702963849332850472369076893389414641841306423805725233080600677547679594767869899190713752930069037602352273645593226498500797999671102243527860946240897994585119471830900272921167902667024959475807221134496550253939401723353527970429891038222064549975589187096376771553497176816030335648914838832095605149110595643707920818403586989675237798288357569318371849993727558506635664106197448457026718874569690581239044675137445729243620964389951871325132146653812225367274152840508244508478782680108516301419773987648147080427165037069780886178158333563806443947098344222183608597695649854994374672894905501804684475673806417318389437201317588468965053053038899152263025453356829294755191786205919882107356898433924016416094547241697435959065825839111939356674211005074777226757647045457653595415675161812955859556907897553938765898717565253772304734090410328614138665528359516789856487827168342089627323773318602067981900809979898876833825310218330228519050440659775146330990224178825083012664530233621240358076891590506032442848178739497582342089472775700392823548098798106341710016703548934101904372081738695670547346917857202417476437877502616217225734293092415629094270713681292496864011134915989969365045347560274124054885216153791437633811928199408459236711785589311260766889258138276909797669867347997756419642017546032651631528067804881134563506819402972290467322080432505460635815237085855240117145306784118400297067375491550370680640361828016832493227257916806187552907608535363268087632877486157737571141494466317817063855933677699976042711117520927348669384701179850579347286652721242362698344421835179820590553848989390059247475870634249546298434835097988545653604562829373298423351727828336266393952135156996756741364385010969294941260671439942870195533619970223650951705809305546978236876540177581723538991763860071821819150370598846487348851420819449748548506581659342255015693935676617318747788474534616631778287969409541871013049048955514480010795577636747542518142408726035512507551841023711785855927304015037713347885884360273553512354917012731714252927663755737977515644931287277092147937604618762693428084171020645045858401045284017330322212550555953602119216728801195895319776478257564048522338668718773141222046529091812055343524411271122306385729270524281441423311453298055366357437217099711903828995880365162648847767707605680686574188512776465060691203958792772423541893684652890111768408382233727121402924271503809682362579648494117402769730540325973316439028397876633326559775642273830712928243515368266851516551844392120261250806455368421912507914812265798527643290632332335239458711167742448866928398144627886712489379764618414125651008556356580282417589615331806006951810670575879746263574757582784080730067039798401871309595958759871325967574525727466151043383835229711783071489306547232699101070669667964973476195542017816109505676060459144756727933032493535625827138723607167251582894637360895501595925495449543885533319611696071175180431647039644468867833159987121949241942313918826379971617887054277415619805411813873118350905771955571980533732610500652072076162839613980825739456210692407932586725956945184998858328439647620439004907168920264765006702967395050723180358996233254527168767855237384133905119408715873419412483531050601174675109957146368420559849533397664889021728039474410101655164184610052085124533917977075967772715558099297076212165532777393708666609725415694294739424226319313993017253028799469782798121090317681848564513566834786041937651128682064788212300609739997629121079399582334974924209331061329746201980451309659816165853319156056238704135060810870302507358650197289941817359929584189406695678329555471884627658400664354521151567931470982218956895799296239829440565608237061233077919843135734285385779416790186580465998335705599327645171083395793834606645549980337358965277172739007550565907220940834835452974282660009226277721404813033017786308797460838984114124978476650413682207541173903255188053807930903357385039133854021433888174032260077707756137545864855317282422879844896401315574225913153393296841646987297127640160059072120655723074848914892138559082352360982764182716100385451430572160756577522277501549224332197906391480715720666028168419268643716858404940898594286908789711881207700136392827873239644728226106121225568625507869808357781838311604286027508755855075178780649063435087533042393291187499931727119959233612573447735233865215262015455349812322591858856739532787529694821402386378509066194563185441248455488136458398516039087791369497037743713088562448124821946711508357111090710881656771722678760635608809485010065142350610306049070133454084018395845738978229191892757669003027459442556726168620843733265327980399212963122820322209628627211938333800243945811235587688795242524850082545757526743492483018486633046064069936902213741883000773511029525870652760632172309710211733314092925214973483728391917657748632824900838403390369171257957097180229629608121703553404205448711950553581477883412948357797556158095195041688450469800013522990103763151287992988859604951182466007294937867253070888278857299523826808644476938216002252874312454712788468269911007287275677002857593430095183043910270437154750385688154337059875664067299933517409214069963290424142254787302689605285311830423047923491545179725233639569128055107843297515996269292392899766675089277710262853050527633389064470995505686580099182596430460816472461434005469916483089900653360034136233487757282525780695741012262178383910612142617665366316851118916697815869676485053594969514541806413836197862432717963961195081947194125066057065049453842334449018790305989536659280455423419873809709766905128359966901314020165430158482405915826005792514506896421537059723138799239239828957850110656307122415157618480553894057034461669152641931539245943141314530680806801655028858445181769929958250614131426951614139054144836501556767452452444450855602668035909221736159308200173014075005631141566344403226231270837364113819254347926098895457891460548683807038199083157996379500965335030472373689543762465131482868169429646486426952972524664733256744463791652944003099721379103939654157242955715808275755333542184698059455031443439546614269671236832495568345409008011073478273158073618588865372671449802708005898168858418838085040833781978742348314872142764016140060619438271945806568892594855761173863654480396522271674170548192869815266097597080348337245872910097082543140521244138525373362412399630599077189983282425507608373518371840093655808960158058398746773579977204395616787062513966631071880547954158291214184866817056273413260184796308224727782074050342169027484537912747208074600559591728379058106530797446363677358722314893035358563635557794388339061832079558742011186608067075412542463044503199215869914857725165202145553947874556635525035109551697152886461201019962511217291939269430826072494190297679305413778190047962191719444116993132909579178415480662552304651220464007217900609792341303692669883300810204290157276377775786360717045339069392324127272237153915505476380361941189408483215459611375909752024085388753525353157862273387613387894458058491149987779801868957507709130882693249592003712735883601339075022115964492009883813371346161761222465193278848910537099256243441773442775414680701711396150102006252748753977806176977161454466247631712592622635614897109878535678997246673558718278347114461786337626791187852250206355776229148186091636143225276708919891858643224497149052713501033854932480915660155239033649918545566865855926643685914851822901054478201210666544234795638088391690064550538196486482813143566613113377474144318175585946243801381638946189234065778190623654989367757041124042174497455055395301205887039274052436020199378859265783125172174435359972101845065537965150568285072113623571287741189734283312945355946856742101649332107583738625302636263136601738100768657809771140843797110158509006169263321257935268642720100777554500525669851225981094458406349118656580932462886459338961982280703027070217608804288173841848406060432150341250742461839823425005466974974310224389601867617048935787115704735541007486168606626997092030333544151217827160003011691887490410702803222832352338410216647017300919379737704022921049272415827384795694857157809273333260512828992701507875710531027800498325076355176290328219745298047593009266083067695261021993540527449633984440841544462532299269469129586451779656388473796587371807516915563650798454392050105067102001823554682101917157533021221226379817203444002521620664906859531602963537082106590102190540574370026222887520428371119899217394601874779591239085572300421314089803022731279519168739026464182732196462120935518176185992432422212978509501277344991055321333010380311798894174528493253682441029750723499410436739409019915715284904873911881811932079643544668985091305566565777176500762197518921099322735078147404769446782956418313012814818978203332006780960312326643191374571007406029720209121646204151715561330624143591160433515399180259795978303345849708853609895516635562551017252980770783640909791745570024121062809076172640601800325056705306888495599603862936553866005670510086099762522993179614980473037956474751957230617503711571411380500341886563169071105963007826524422872651395318657323308070566456186021944367633117981186103253441006202553224493111301046597413075872226635184999603947752902402474318427723386832341324816437638507671659387375544218631384653094021924663026321126280174690728350385005463359113268791787463642761246607743808000291410073046274256988661721591967769673924691199780215327355167194608608563160953150260752407175097408215471533281145359572483260323576495015934587787928956956756388443379261698474675051195431435315483690093603930343950215756394676015749460779368719890283515838844860053963234228914245000735106227346432293483042462439795933534621418114996359724067494889508624145829907631075507712808865890120503489001772180395195621153263907059606278329162326055748576579618616901547957256545761038400993371475045268030204862848767042768102655617322673771561871005514316021749248450694362475651360702270420797946948189538443164979900045787131595021565135351780551502107588248058364257190539110580933332880413633623092819098213016880751387327291254990924334912523851607057357118944071029235917748492029396326785919664324510501349499300790024797595605371305734392733722154846256802880297442061776196789729622855896857252969867466822741348755147535226826537514142077975739574857217343699289605838889051146100607432651691704821706597883772566271275576122193795137934861043333561482782823462031959978930368422611380307351103464290814225274663408475478719782609611206444143605312520825394597271259952161793252317531628453837253101812032872079198060363684972107869056074042513463226453416906880738715816707212092841368077972920644161250321196263916833494483943299036142989988985015623493850795654734625647250104702858242473887819004023204291153376373734762407933234145321330234267237324784433811615723928712132375773333663609738273633973320740694431356562517700710503976523705612063949950679994276191406185846405641357018864191395016980809351628233523330397135386909642700625768000900698422282665501728835807462532158802956951166274356660138261805717180724695096011260506566702391222561257576454104365479885707454970939870410639646232725412073332214747093814436154859103162851058983258692253505777054525936482075546155558638564383112184144941774357179706294692981588049420709473539162279776336608340269153046173497650100341117342303234725169998427976736422319857124736114865343728001125188096843113511020812045094919806501818282477193340570382726946288514790054055324747706156981735657137541832554664852903855353834440768198628099533975549181617521582478284672263790995340741069405390653892710656082584139022992768227828271188780552473175416554843995917017422697083835762232544803772187589527580093587998062541684670106807491462324654577539684166528155243777547397105198528634380908849033361767669785549758434057792829695202377814036270862310768893929846735892439956031686423520150995423351047983196194623558874644786635099922138059171174896588557952894184963942132690078443885241896758568544867070908987118454954129368414573356704947712112124716516633519957606653598415160291901380343824783103294538746093738124711979648895698495519908975472726027532919168670518280877161420685566765934689237414797390618474721942373478171862200530771177841005847967310365591413622123707999891810150840885634934952799795308522449081036375211859184426465276948614081006836454254633499651606350230071836347600407136172682634712979052639127451894644832482657358303343591918247379930311424225429395711749900348332959196853304351819452196021895552491372186696121142575105494654508361916830094069115359584490532712260595808534008964306626628466633532703270414197397701054190971114095086655940287952959611004133744655489030639480828996831550229156410445205187383276276525684255934992006000478605388589678453630202019632413340307044884939888468305421105224381705007233267005374426520961414996342261848067133294976014097796668979349271984176421471950032279768670100229252864832109322296560245166861708840862770281557137696029907792948887728359989759251772072738271058520493222463780890714093287259260306326072266593215913314997941036312868881411668836247592398646116236839241436396582303628604820329814826948386286705188767736325533088285302090297052637946919961405053903533497941247199903169797903621679158356746750632563067363906928698451122794001499167014637402372382343096161912295450730494381332766069535951294670757892112513519919517391681498616194999184350313623251312993275442544698327721098424914804751192808170008685158379606140930724849429430166714975297292425400048468376556799142149068635356437917964473425359844262158120447614699825405742378863025382087009168855279067667648054634744294223662183571687489322130389966788181243588706193867052639576059962830382508219833701690647479296205733792437938830687632794232097618069838883968989583601798762538977696940129255850446241205120942389406920997165874338157813525581336509261969975351801428192236599655704047448771958931615548493263520116403304693632611836370293440813323553961797833950230857331637752928681646045019219128148479862272750251603936297200200346702726943027017730457140961520273876404073078822891766675921073311670246956416481438478132116739943929519971606811585551984610807564474879535422247819016140509696515691336789137444401905016488036871875309316944275958626164943405159674165650988991361845414810098027180561438903814058247965067019812082003632979689940036076537676719099194469065716793149380190712435301451458927974951197968109036948150180142003396676952752362676000372020066433894318488071615311318520443088721866476300691246127396694676724148143176761951442444112954781799476085539791894047416707316216298664178491303297562755981907193785083250212223567440960541294673149415503639767501475696950914586613604034595710361417386572138744400946933982783511843682457496487766251790727479239222052426200579185635293730089898651846435253776695478865882425759291054522846375324754524234715086975017930286791589684360368522667273882926745187143595786324319526628884263540662703738295016545332320138621596594492902307461562043889408956772649025415264716903607522922805760983956262239579804649781039883715507980721135028534393285164347194235942489322732255365344839362173431646292046707971460844482693527823278812899118841009808293749207770851424511222427022133110112162636386134559734628012510129135097128924054217014413853167329830817644622418031925789993937698167749543316046934828372892175053414752302216680583707408238811880864735086021081248108372409598661856663410736099210725461304344516819870762249698958167424096079405683899815918405685725189115411220495695028267961223134580439328255283382884919970667635226370729257701256545810610178658606466756060398493273901046021780026349885508382206929282775303531458686047897058252956663422280035229092452169825502877515377746021690367846707223580297649766989506320795772476728447768986605410699118363148685781334396618552851850544409825638396742712849998843999684736892592205162624223091227113851589192050382005359878915082912790193320721107421818788719671889041334550634412258674735620086368008069428382022177752420691187238494298308137271484059863587038721865040453026195647105108215058650399311609405261088463216672569634985156480085073712945354427669356186786632750917369577608584353543729962262041810621249123721922565680754118338883521780296051277207912978963427431297975516550056948995026855093219572159166871321569070676137664563526632750948873539904909762529060025582118742381693439866109922194060242960706405118242206440055159191387526008057451440572232685767448406127268684348098317468057137016000103979020988300359545363491504814658973512222232199478415128630161833739085386335921866989691426436413073118859257363901550394605145275898830561251505196353257438841500470685954447122269696136238384215148091741435193460580719618442330002760869952617421019863479359216587025321200770606801396507549640190627078333467732616372585612546190297157666162805809822413309410681987117911297841027398809156243484935211672046683266646313823722059031584838951574104517754045354370414079496077596499687233920006672951457606941957644935832102861389427204899320663712130306439828343892069051263955452341527202381224842614298807556584532531920583559650279505747199510434773149133093394002232121111343825683494016335420148858174937722432857769717011694103148682120257254690503757491545775689528610686805791779736780296258203695532215596328776723870299291889049476415815037052714590096741863298953705947160271135598217729457786518230485921122506669448066046320592358463474703220681516087330571798640273822306146710771111853234779706504561894825772553792792521675178161725463850737790719540309719897663254605845429543778389187933922081987814289713498381420822151355779637039148504247733750204476836786793439759478510295950305309762857426806141999097132506243131521086324461939669192594264769749552558719303652441214029778212901467607896503464725850205412365307259819239724530508476498260812498945265690761323738260114099033387496748521578166513211621989062738268031064511733844881251634288946279830894386893008755626494923938783648543132969235373787919491491814354558347878509475545688119194702365335289781236133413720951798943203075033279130374275961856177303177430451817553204211330933215499737315525966040742051031489580648431870091658375661486656656698258868597310384326119480724473640623911888373144902336959414137465160474248009605006519769244343391655569930981047117762773535241450583608742027513735634209688341630612111865686872303907690923111383399104908995179052688773330699865835383932891877750956598959495392581194461946406169628288353822369559725751489613242838052802367845951855606423790474570755554069409546441131882684943162033654789946777697078324908837728427096079447090488608066404283949875487959015573494390951584787596004210582085876705740338237357177565195145943037278177370751235152982398487837717254967706410533790336009749463745326976119042861270609831831491537734066537921353850572145934796243209897435331486531429616287548651789968064018808905968943139247087861172992698012607838762228350859426861599299058208277386563621208884398290671581951592156944336623236813655278416448201456089517854226821556146744655054189541184447907220784479758025288157514252474987259806730632291465309713080106627189125843724384091736298701812144273236244293422825340465441511410228632076407546882913732433992123061994685661010821912229273097759574347943942757447860495695054775933139532945831131121977844216164877022682793084899720437042445071319532901276817312109795729649291972557639139627317693418877000816071448414429774934750753648666431467160974881571121014966253709566293344921763961599761316529392843845040935330533663380226220080512883769736665568122001179778288009576478779501970023691626329340429626008301699871321238648818629440943028424148995203463001757008452929445184369914924554942829085990920486887984346088478809521491844051050560385720528601082112283914834176741805276768196758431807709899632174636880036456932621894732612800402721315727343055845411312592279989289072473255745497170928755015238166488947530645283651982437335396996905486583321565724993410269351483537068681192075327219093522157614289209185290202531262619369158712581513225781330633212481606766174379465606878079649559666137946128902608228144971932045627645087412062373444004741268218375661897788032914873785761292670623342315441761368242087370109496549156908057231335465432136570238869329443258885969573797298109957015740010558649395909155634421449625017902960764196582803801981965509355665884562897410505876245330813879459175951192260693061484098010022098223400179840138638065946731660835975610583007177097089400087747680667510530139942156087587194745343867111496956365498741431710515605504417345444081574837166555698085169937889416725521820619358365295668069352332527242771866410606368750590092174772009109817442701028681713376855646131103126754333335852973955282381024791979903672376944923603168233442818067709705046680235159875355287197105753089278290596793204369740756803663100012118701334475222431776110613386841919265362777727227227442069739194887915037273716699833102942663411209245388424179172260783082611990852107684338879075852330190668517694698402231155201920654915246677593028696732967828267941356194019989900168533911185460456106336786258126124714385547945545363069765140480052611468795600792730772047894536326516122852975264577451803265039200632098077400563641617258040619421545715528857205085764225406564675738049480748335412199398068277764175858671947486067968217477422621835067754852524175003222869595008739529781612869037245936919247628777707877264616667272206747396434676968537902826854410735108956625406257822165342252714868086869140180791707899405639642704411008904590379368576800546318659627601555690357568895182357214375333758885864751372491666405706800919460055471157048138900013919126677325962401508534852934639757452196902219417954250519300531057893589832386653896559255622852177575541108137062384689661945684326994395536784860092915579066478951859656651030029208461937485802330018284807121916232963717092749060842717053700188487070669588620848358984705389727914031655210131724025971883807890325788128125195198053822117872590669258190460592982581127155172654155544587051167670967430729380243748867747347198118125382793736130910978426390896804362334821832306801051686685840470304890308332876643352466562857408427773423254456295936017810702891880190331156003779506365100322363809135494216434342902576169998771608520221955991735862214076728401644217280109957818969546470245028427320255133651805987231714367283687337367374225462486160168680722642766403894758542581466321699375624132957212098712641151010749533178955838583720448658392994640480642187595161082506277298545985248198108448873313509713782913076044419749984856358102793538130214762527458495984443531074346934561798135243038419802714963647822588017486440909893554693626616858867582388128012119746799021744639193268553333964510079050313691988707721482583925142951667840259208167980484439664555587547027745537286026583275454629180189434935989019363361139703364876841747232930916699597813590829888917373312359917438016465449724454665241444537993821149206457296554142198403313590578778686893270740954762168354884168548865558676416587132855423204840246350737703751206101910622251610079410033615782413665406211371250194004316338976992981996997434702504465760195459079178928160579239093948950783608328378895360945735571472124111249571595488460733142242321828792018158032882388836791453798197001233032152994460876647358633719402637003495646438635005943978856481048941153448411856829387288093214456862467609485933380698483332022601007961976878315386223213461649034004246817405071270093410072636883900904715679712476440728218168759005883706930007272184890712698743178963703580115944835918483293361973466268543113358640608856916456687991624539893269373446503483370655509625121756865819188507355246330142634619067142704143852416837849995840767908215287476999177849921669764513464908374576999249627607299067473483533511304962760227897417853486102619729225470551713628154862269360441833609776168921059269800118749597945687714240491377847083042545993354377996094199757020361084038007795663185163397837831385643975040444226599468951243191574056827560427931880758510015156849489516927828786674017772298770547309683247213264173003592614383533118624028290920646319600351156184819609456143649175760842096078961197620699133333450415121793854526877662833258076573685294625160345013215192423187644081975627328098502693075825872290085146890758960267857769682427469464849529342799358427524104439731758437702169846673261660817277672940227155149472382887983835872111472101551840209075814674447806875490336372453944946866527494586535965567403057352761142047311963351209024813471869037793674159965860817318265105493497964725927281193133346791561309920297841652286359651985245046250877883677595225150768634043033555684988077360820455588408186167028656620968274318645724506429926815603101093186581071215117622310612169899223538419917486129308937049480795107303529676858582350979524945890093439220845723046296134417802649829639988716221335396181103190079775776607997653139036024229112978306796623987096244533796000893015766901005819979069128546731540602862368334512247840331559034524519491117128687255804408004884252886828031015315130103167935374137854083721526332443996151396562152509141925100669900190738942673598602636436854027580669555160076957155870751214439609713956625603292641515841242298808450754274917169273742348635487004864344349095437832852324577724217465691668554867109137076015555214605090542249597217725668515330125925404503314718472350724176311050825347332090718057931833312567588883972733828396464127579205207223078026524317738945034751875397620776675357838326752463284483722106902529508689809712345333751071013899524684292181561158631764519657662660572607213500926542874580151485988317352264153681828268493021589785666403748299564396144912541432193629853888737503738314074610259975235973708298588371965316160927759631481852770302951648572712573705743711811459853010609220745374488982879971756447499488345717124727530226287306564854314110530034509359912955798023798604873107617490431577431785739264444011068520725254597127674780730052330913131128211417169853678275106913956068664601967515899078976223874990907470212783804849774560547837313705567491064273704324738913432364800977012527163020804458557878209016444155259569833012597053552386279799930539399551251256609981382622041762418593686015132415439424750643696956220862102265212411867442507383642661289090664609957056568521426692921810782894515097823862644658730042619583413355446311983906298757259385000666077943523468477072809059295213328823605579019727007845429641645808992937386020467697976302549767642709411403813967977873890606378226622579107547501381186561118461576261550453297818341198721651854967574854590043136596421891891793859451785593298026373604706640675323957554266900975788036314968216625657891171263205610403737391358106226145561516478204812739172237775671503142453142791023669323942004327693944539087867823157191676938770580019286680103195417731522795692751822961608823065113064385583177642376261190176684580709645135598222514693871203360865081255490275446591578622103574669912323354310870103927373082001835909993383820624409343056193865797274717920988305072210927142276095177579014013874906153473613536738650195524124931062478605476024205623873436164601088188959053283851758543038726773820973421287924600921747526342468797686694404563163825844548271677745265746595365861171372902362111591432584243490969662811472261831674843662340467066892490325179809863925686130474764895320288470527078261366329286492794654372646064792987622742415104742490073515843900304138672116579196925867654033070060224985602644382349295552912588417617140602510888382816198419751747306984910317081885428768596795055550176540758754355201213214932244053094452169260649456959841395664545229456842130779191671335648645644399377963472600071886840096268352252253010212652242754639614806989290135157256798145959316880878256400154308075652814221228341825937779725793895342175750239158925570307860505216698970955116431144797080059230474054569630322248343568249121039590389682097763028763821154413362211365386802125265079469606412136743637905345085668621504482696613429414174708496646456063220633640507257153697125347814223466881560944962135489258065227475772562216649828892768834823599865994297423647025971785040446169506387775185467067733099502124725903679389782604542732752352527492549342562863011062452099361042326313500817292262829957588001907634356903264066956001890814171931047178969163524612765401558944298688737824875277816200701518774811688879756064318037945486884431173297327165836072102490675000928577332368194420286439941553476681631574089732721048161212419264169707386552043157376353556740257216933105087049552312640982518898083020735167898155706949950546840376686562776428158841699151320612550625676909768064702388715379622650796002929865528452339870141853737094161206588086288239699850026782769712885465891931931685123553317900763523031371478290801415354262326108605454736241096012602656153133946777795654468662184843459713652885347335473540093211161673974941315924778649564026705276687992031938218656054632708403940432594988158557496850862928737587633665138498592621311845717519015883024392377760487723845482692872002047823579556679300536895428784040667458873679938357865981004471981620757252125657456384734161204862811789776889243624486321694889952232354813857033101936360457549661926019551859019345464876982332382104201723502018865397998387998852155736977898328333309905490253263944513414057778588770021296006086031716572960696202305330892766398779632616642874315308597396985879901953693319633049736877438132338521365185125764025533552658456572642771813901199721846876322156951559594129782060381146529459621873521968029218984680692586819264661329035398451664295572826971090456226814072578106836000054719864492052580138215798804839433043697810160589237209455440098195644834969921356722515631723103160372356301341334049547228966424258455942079985799469568838636245535967121087155869373113534037562381751771783578636763795788181439510033675739361894044389864066094051998136619438508366620085205178398468072858088728503525627088959149758584828494064043568934581450870613621793359554145993175375329056641216627874358239030101576300062752880894018895079474485918480365729874476838854106736656096722500711517196726169898608730615713218807945054994241965346775935881813180279044578486544617730986256435155449596064814086684821274175232835072895779772418783232979912832685230869743787700523762639796098564654978839986349227457758922004612283619362988099309914730676882694432493659643606673355167732388082368008562543934533086885533140284287869635802486151528815667458687851284547574737398131749740320532306165937647020072672451700925327816997721528110936742223739415399912442674615156258111199203842858221715794763183456284405373399122592111834456982295215638409450079650902562960687646114287455660189461397308894345683608091385428622034139748203572572702705035425559249817769740794895837234037017874996641392326957234956090565332012463676649358265557405969853841993494183237195418475987502036724512684170426381620620306789224108088088590630479399957998005193033033011192677642331253098034169391163739247730565412974385152943997892023044387049426103046165645048562959761437028603700015376997861795852591494781832860162038743634790803597983964045189355542339781157995555804315919428392340705171573873854630805266812871814939145807736700381715140768890095191511479974851441545921112518134474533959394194180264802188511511512947145380166267298929246952705804569091781792455309152516202434981892658789792025996363294031377979991351605753667491144555433180420074076651020152636633589683450423650645121089160146286737562033156522245354581740840923589515986808721283956691452508152618947214247645569696789221082986324384927218085152584887720251182582575572636077302110659778789438296962106139318504214692493085059933888665468584520921421976833440509050363752206233733181519130094897278729589384788279160577615799222997544970186064243375863638845428049005396617190698181678557551989902435027215880309940008819721499228266044398638852339402676625095043341659408951040287995204757804824501539371480397680709436241196933327497320538844362710631029016628857253648286382450800777879536132504063636050899855102007901854369826113398118786699036102738008523996476606376010833043786359568630054744798914035233114798162679901020088217784630508428424871259078611440577368974930682332755207329834709000225085230709711872454801630407181759618611163458327651308858016649428437975964236758645793145431152829082628869638352729855589357297342110138688160750502931700710582407393811337316601026138743545762332127122585389248769161059267266464756556337776968609529614889787155991509061603610195917352416801370057511085070367057722998593831457105490666311264751143279231515337828075146014269611539379467954828118585055321099955649496252259431659395541699148151120522558909125678477321717302251521688822212193051951174356257180516266987246054744547822512542408841403222550845105909260752463287562089068460241683831858549463835452753604907256119226976256050653066748231101854179633883592884556042679402973423544821284295403134729894013928029364461544226013734667037351836570523781239661621640149955450634508659333837107517111336093961220522720091271392073164598474301341969199145815826392729072292241617350781408393954241917983044582424484300815035906156056751509677006859347809892861129125392484432687025655312934394405268020637579076176599692940843367669825785054216667517029519439383081121661989580730033020405273837170219882907205717619659645996922113048304472658707288012565084659815266609652373908710709466571102932114488120484126448654097987511131120641456020947510990927565701271143182541748897636958613717964159257888900679096867611899249472382866746782496572706371522100386470596826665290461545184795512337067880034779610110821053389136740315275029114393550624493860442941044181844445171061539929417592950685183912218945188508237780230639634632229455261480031697919726100327059931718624978958510007051650782600830020885582794360601638832551212196877259152342879923929601828945355982928667083683022467193158782258417947779931819932705560939374059689296155563298202073441948046748022440460229202956650469294216794423302228742745594869578562102691440187950337625276129149600578992039540281486212841631124529392894222803245526858403210893202946618493238850062627213953833732489741494359514876627143344621161885629595480872937285448418842175804630953379403649166219719484432100725318217451294155293850372900733473140293470569168185708292901736401421523089060357355451008456692858746373475816887331718165050616511308579001604203368734726859128468332951418509059569530294328884401043584359498870755778042733252197718891825381206956184019114512772306957857412877526607057273149824192043073227931916475080106733312841668154160150113280281746419101498072988694341021122717657985992414578747658552357659255535756456028917685747215661976811491241627910138316514434991625651802290752104833707785997820097498532098614970416084539862971792089469660399082277802867444017845345826594900611978646510708313232560342521545989486691048026869366671168938519319716094746959960731189821235458753361281750355504651685065026321134846054853609947906875768945081792442981714415749154732161749613601028193920112724553243023109449685261898109041396021811441939480724158702734105565441290906786965114706161763139379294514100997040095298087285946701194137325402683456216272305582932680902237393318007366428349032575904536438959390322219510251016677022950988548354494042808516266624976913665617504124438840482847596153430237763418276312289531075049288246480011217964883611758899642275141531789944390968616851110825826729870170108419346608275105675380023402467707833346565594172529240154529012195427740253129272135943097522978355369757218488711623755151859802553055461653760091311013681119109638241644258051648238581459806438364418872949682344729186548773470741726995252482989090202279057693312084753759517751954790085676430660212283318184228390827384917338388816733787318572000962799500054575320612246761116210094921204681996799276409759511725954914048010986848595955898999150879139952786841388929833039731952150372964951905724879962832276443861513921175953344174530317777906993894160183239083665393872807831956350422771629013680322408913589538628845566922567475271067775977472302169757502373464035013362633506605945231279910957294842900746858336023942379771612187863391607445177158773781337321690995252436893458812487423059426847557748314413498877912832136598889749569016242940903332485467845097827848565525696395232242008876831152988726933822497793259158761693030467158014527585699134577093499728740943787372816981723453517958679956268540484968727634580594701284963871518093523247274774211662089848247232514274773381946360059941827287325812529334571029929264994366786177398791605348151099856401235124169483135129494389242018593205873163515437033339723748410638515511504984707915346389489594374704576798379922924368465803599488471800711744753470482646196116821907131454831039486641226361114664858859153670331187712670197342192473925977397885413623462440517854468346166066009106313695036706050813831573477865929751829787019733060974021929960313605550604867727875390054213587521898622841033431042287182589973242836897350481922350863602867297561006819296891744333873868837562119467438848423632172185891454975537754375394752599285488774710130135046280792002413145601468858342513543660310910076540852524858951540829701348273519705121697258769030998188318617349111322433894693592308932176801997316903337368806701962293637910569472637215137500048512087125128190782175656063654845565347587170488691894536802466942100123252661170333683259058342118304057973298044435860884758033468202523110471120344618048819737604966201774938041251531972965779489763734465317554353915425153855724061285005272419273174058345768554938899153519948116535375134822308571638251073564593968375289231827612346339194436220907984917438079364732313313111676838670151631689925402805353535533325868438813695942243399959551562001636004297842057460693462673806361340316249510314044953259234811098724130174456861749151450875493218106352025604867879913849918454112350021405957887371504994657402099948759584948076392103029775922690725925816608754382359417415111958255817215656346550438157991982155184638176806748713537273927439092870871724559784083124101372585185397857081478004223325367647803006198613349216575871999524602262767183560686578129896991172738416539222484725793502538786703668125810815611940288205932794148797604237571950308571336380100164411813508867941299914184911637461283226270060610337284883238971408233128173179082082652216132892409348548339947592993374717232242750538044454938623128129268646618910013426769576332640806664958407752415681382035593680467095243233878569292821733621271939139744293772345760214919374884580450062608748264005181329761099814137286455628447786129430717676611737848494281919983157347570807131867954961351032647774741047830804302873107778542307702122595923366116420792539645334223045372476615489477918885196472091191119419058640109956264499937976009761920595015362906210715128601969159737636981386207978608892844136390005995375073399724491644435172477389709760053560423460358912208812682539996147121058059654778461593844336281376606898051730316489247580144756901537514673194645026018294265531820478596924496591286206850114784520539805594782314271678902322178258537515449664357685573566814927181477293320828732937839055088542177751966948945357604615742948934523051542294751709822898083251137569128848018444451711881243241493645638394535587008242688620547511835690351448542562979561494196585158771973016170003779270425476252639745189287887797328979017721220692988831523027589147155248761914426073981660255081023308299672240145728537048649317544790332714781404163226696880591192546461248525254082286080033441872945635513853821970646233768602084837535435764698013447302627402675343410764188782105097800171077404984606447398648306587279735835502315664815008028546935636728020458023988566728571402254316751883073078176197386548665225685120995164998882165912809149126873849055427630169333255304972631071077766084034220233234079718720557005885531466655028558420947921400985811630135615940639194941167074585065026695796479370591891310288201966629185648314853737115400321305116925728276082915286060869870284506402602215966831766180371878634573337248846921046624905248274687288549331447993300245930053912340420765213213285902386498964905376922295381349857725603634255568508901476134642646135391563527882257804979521746064814996367502798646623718511997533124963851008709263698038566082488694074585113742388516275346421217845873185244093153178644834469891079198396890052688913751873845884485123967831627679176815215245186714427277538548972339243334571312615942903653842638914380860536158464229364123477308586380453353283306646762823121175437518771927697547098396100362189592626613042598570804057111420206968099778525463307778414179515746801842978483163363887506566502695736990113920148317781769433248555574558532720529500966889719846675333730486395733979683886049351547054034912108451683215941336830284163163160485453962224393921217034172322452566361181327063586030874209753442226331186999855484141467516539549232953541973472029426255394307938653502614972706478507191518606671387433652411804579719290689960363497759324790637126264657764262888388372060085432877423931469840289675113588224062091336335868885586652183642849071444327810280620922478292487839902618941349494093280446776052112038383851943780590878559916001937986573023007811833283320168293025391526043235194357028454559625310903186285151822721522643119093500180586558831746526330852229813651972940832942634650999014289562592530659102295511129132078512592610439256980293407860654395160123343210286394246067918909109465222581400328026419313537407348015842411821781009659158217968915169862909139349422796139996706172214976190736953635551584419255364276553456301883176176539585945595986473767796113506039332818020895986342791096535143706093692916606394487114597617714743027653110728995068339171410089073183073005951660661609254785371814735147774748798996687753470746375764239386615783320835036601140933009740110131829421771093967757569506206119041471318887247093681674743953112428768356492392815239780428303236904110484921245516001733382373142288794745229359695032571002272667007862292231987795053004156111418033836978695373238449879366419724043285944104351025653968178149943696337794915011988874422136833752682553658520291256046495005253055898447697931545114486993359340907022938327663776460046340497959151836751316060424243064758525500011667371248483393215343192227251087859531238868119866965668533370996870387852480686362580120423547112285832046645590182836386140833481723856838893555169596926933715038810035666979130955400544318612633875915511083169851590492034242897261405301979331409816404880669929024706883428419855698707097261816532948440731957590019637645500729826356829549097751403912895384482702893492895336170374636204656727560984163365413693733276791998488251856486955223844204716973242889445225759009449486887512166618280978703176294036817698942798529096515869282957651939411237274451086187106181582339347073970778237670735325085124023640643353143185811132408660525259297433341784426146935882458110037553589660804232276675250676150332755765954031624861895685207779399911628394701113671318733532230280142011733924273068214389345255755520117090547039094867248526212014080477934743796714655761857433158000656648538110202733725354499191782763804394111216592781256692258325024205700469634128573185946132843805454833380471574728549197008575715035730720647134557854476370738686946112374595697883347746265372870342912813741268790079576516881871450947464901983788327439642031404721131700583685308611803588334325415049029021128957818895917655742082538659980374003779757995189686428231332400222159935242022106232149608052002274233828260915575177815426781705573751730867838833030835637218781369767190316664138808764965844444648719443872790371750403864417957542494360555839589821395499116241353473115113068869448502691644682376291494770695071422288923215909948459435555418287233991053346429289814533538064730943032900644287936031917449756930753633138191753779228397613661171236358100122735404449127097340656569024570240104000440819113988709345084078984768193433802485699585553395639065582196670103696094277654834149513128163301413030853042399210202259752383358079215599218096728525946679471944070909804831084783611208466505908222374253431487155067922547087905119373119614531216574550880687012425990929875589668127015002146580506070480039384818324442025889535799158764957179736192594620324058901698439231546254611923099445674155512456334755922206616238960531406853493219350452023214491350309696791014821030239127687749125060711834008779788068607938977457143356959598191792594972538037792953801194010498545379551678841049118505700710148187207929933386708950978698782452318016388642988749318428561274890314882933204721459412700857231067188534497030215281576462440377287998000048469066403001195493422200501752522535595548134421884310968277834175874879306437757704560812693275309695835162749523517655245607582723552805438555802498251155515453745700565576717174880550897256446228064375604535435802639198395229239681554318000927430808017817029452951911040905205633624146680200055955115053316343760912621218683703392214286624528618532884009824409630725679706606493140974072279485432461030351591006590063703002791938216383985982376087659746730411152126212858517059012276672877582858908674555157970035157314849516961550421123365894662071977836227424269755946724882008793442370802115226716455591418277165114934985419936484086199175428384377675503664085082043703172246951737484382689782883981686298792583419169395003759770231437654581084395831646845225812219401770263054705383811544064863525988478360791382285870295654567765090895708101156845373484799405519195033509449540991283690799725444550825363244253039720625232936182068373525992069802290448596244090706007871319939524992739070943028175944044356539299187833651643542943733672625885446522198092791791327971000355504606135089417020445023557510878810169633195716427761579068426281498805869200525995182058605580723734933981125767037452925297022399304269410211759905320950690393922740635852122369113221362864186901170826178966032717452506300755045005879406605891030861419780193829422947716014234275435393477890199973720941136906032410140089924528882983326874246638283375885268531262361825266812064927706771820590509019614148214535894928671057206745207982010579497775574869311107048695907716533487390577319205341790919947492067127743709536481472300499367165769143161066638422902431468540894840081599107325164146509350782298972736574724967537061051941076827267107992551232667230869873385661478052440242404203196041348488364151580244871159619033144824957128695415284390012862924334364995802966178097144973849315634041426149750777558062320766278971724281866434459744117229142270746078660891350187623888006343376257779499100594142950999080093052168656886009567156665422427314356534044851084061237145995911430920642434414873281325221467238977027242802514140106859199021390120189234351828995592769537778789956774122601330215361916293180863176647814471248334258794744882392117433117990096339231734461562784900118003694121818027404643721138738583004492457713152484320019825207274795140219710658668852250384231906738157037073323383318245932514005774599132079333929824024616034199557105227133344200167642230024650830313645235333455728301688842881708828445694326267241106169184138903887754604428077566239189978185616994058453162394592243668951256182338260159102386596134631563564526887283495846234949608367913095496871972448896405711937376896867910344981944734220704175800690786856495047769940072134821227690839591136617227390972485645919596064145539880172636865260485189219648135107029478544059902307054956013503814793517614539343226462896580043259185715159421600893481244997462570071187820315204437495678936271660401937857326507745646510455420356086689984083025972662160439661834265127452237008185225556499594668435135458080182186921068117881286088286834166528076530943171240051245570885613418931660109568694371580044439195085871105843921645140092969686973423263127266560334750354292797828706988477729513257969022697271814531083081093899051865588414001902590894429221185333576358445130667428928747388576538118608810093175688666285721985176853909799438043052920075754475933487106979700869832076035530240897839157229892888542516390162189740563828888358954295625858957793237624603875624928934443847255500295237018924782351854213046326905618457546856043047397521901696970199049118794937693985641081648351233635105329118578573913113209073486955077727425129805003824134699333387179495897418464778898246170105880825321531295054702711076101033654456042608008379655363898157800865178137301645943909025022390697480221428388243570810713188979384284833000928523087800586552965863032543798955452310858083162451940190914532983270312738025990849192724573649020571928831637128701362702806559142135086459513008733228939039750431859766240743389256423953904993955862159681230161863766146747326365110021686193521535209826914617375816341900320518943173387058061635601677687098998825261438073201654163713310364202525255234052092846506225947755170608521462070145342361263452076146161335274626525101167365080426875670504441800797904345650053795410181653631799973047626197646204747821579090913087520478684326491990362371696062906667218635117532700996724817511370778452680057688418637642848587306831951782626974206996596808491627508097521324822448792287716710349723297124696489910587562080033165741569110953983982099801085949662188634857532914931598504004139143641456084164883775050080144318768945299749569159394663061127416964822566221754153588601757163953814373809180087119519151032635402593507081689343925085938448061230768624503706326664295519601248183633399783020166291746341751898811105413107418584514447621072501957980477527746855490461032676907181710553386428608121269746312674129350182010652136251435917259632686974155889424667395313554434170908554262012969985908062672333372862429960433470806296644560195331274367318411186262997388021389064891874018862343381656687524871763405843131545371933527813749549667111151948846411346098339184177805582067811937454062771502686221695531549422546902652284671565945232587180870516091701789336758383394604062571351000202918093113104473362785564148609679158156881254502531520255337432747385927512094029829516505957996777878798241758730691872666961593647196172483319975521092800185663128909944019719252761821247822662499869658944611323911289583976539172282232189796336943213725805674771682369215299340446308673867863030943504400837372964436620720503244281721617668936370234700436601904034954568006143127975877374327933370246367007462098786616982730413443984628387916558117178351804262060460576031432476042401848177039234624082181903149994354457557764662073510875081848391641052273170173568698941512133038873238077491536224356021006642096314826969815149974087567485845965454915926160832225398040153247239755675749890414275350480331545362308660601816378969607648137254633512819732388787177467469324435250912671978260370580479812626817707830463687440208947046730790395591023571637786273842746773180413388258570712891089508841932021462917978950957900186705418747829402430959119478686994062955254484466595453749772816502529135342561556922480498264636503053629619085644234976597042411481476385985588890364623135416172737859647806366160484045705732886277496195551437947359434156810905063171675415154932497094790761538555154703777662382700373837633519358967985034309117191361541545045178288743518915335542252099546201710914948053722855056949748082735077141315369632102242407531104848193116652466676416304643610794297314856138029009329120227329614719473690290969669274977386955598089009071820141104162469958311776263027003262185626172502706117040533982836231531649052715069643649125573990245391763995355203669684380376057015637671580803682707208885912196313705910949102405195572953640428838850584021597981455836269358572473184522590785104370446742693961079789874867692977537939305881920653037850372695938209357191279634774692441978256100672459590196435328061287167858373560259958665172252813858840559098910162017129444100256973686143154132979224148474856712873076679519316281998429427571097222542466108011067646254676371302554240673767987410549069191247550588269278897488039594435338413896228802896919839478165253418301110810716949575370201837107767425228562457947932417588790130477998961892440049917155224202959788040968280337636309201672446725550453508297038349623517087292622384769658640526187287808619793208360945540758271413497309480691107090668385631852131267873448516188111195841532743285600229923932711159332067542163833622176474242309076307691820591037836541053106366895438683992488746647735947541759933377758101353392274955371551585011283627948829175290830814216892885950772582391982338157855905046055462037644774241689571900024596429688971762238407500833996343237467138715787792855557874658017067017288060887253445905038204309378756607603314045815342803734981614575284764734693563772163771196198036415018942951678086538282224668862229988212514861870074266644127678129053075749276590037929838174694419986509803509471116705445882111628829209571341333601186456433878947277771280321808279315933487116698631430539694551053198570450080276701946562720575045320771863012454736478086670022341354649903900758257522503649311047489589616823940823620980354450686568324725018498672884295439687051546312351526400374688168391027781300474967006913891032800873648756584145762994036966423372667301949007322957925623929931057581460835243534783666274445165226349688171871030404152653646850453037624669736805588248953967177363621365691011704164051636810114017621439678082978424793094774863022870008741029539631752842979031291447959000669633335918916645922726561439419553065287488831600617752694362261050102855916563468539638969344070107046615515071542333460793071949388591287388897368999340946452195130688843618708597515175445480236937782731737712521912281075098513267280462612775211324794941145934093802607394347243252288926988307519265079495299480416043469828348518917302831619051952750218312313364647869175619342910922742430096311478859751963649693757243903668330948270457497004003942355534212860967067940989465345522123555201828675897003554311931494401198931783559454157704316125094660883146104779158984959078629175920659474921712798906353349905209426786819145313587357845444545999969301286936344799717606036121206914674120027707519995513380186937149074570020921201764465335826268294689141369303655334942290915906256914464456611853429426060084152833690327728481369160546446291097305485328991678626569124352714675323672661401669362842325050327682425890807343665893431735954725291543617361906522261940662225374895085462401181221881550156983003913351571534664444764310099673499179523668455376524566625346449594480731414087556784019780737304858284971202563985756703810122901710486447594739881053655413289207995794614497797166041817959972228072484015938508064141136476782861396519498494884599122803335197309606469219536798253009454031611240432737370681623652293965368864305864286996164575723442226929380924526276562486511271234642834336529001650102783657015669855691142243472198389578473839634627496459083999508107385143365500395387158511972611321315317602286459712745922218962379945215327533190834964665793282343903793484761042624135036353992954366538087961157688000274828482408923593456387087983452421348575958963469790697328873008974605170597472070965161671706910039951424850061121808829456388973184134512999056558989402992214810435653347231628228944562974792997689242316329759347637655836754362087954055965924965425861733323632697852476402030349596972541786193619215058733579765031210047769526444312158189326641236644753620236759016255290917449044744507479624802548129873502561191128607511599371249668536131472468459355195074609268672206951046438355247635520078342493250520813069523609470906246709076919467267313264554805828876973089286854444136938532849015796697943863895526435859076780716352250011755731481784653161663019598270438082419509093849526547211818157309487556545642847458550380829951002885874258368283117060326627592287433862667776407657328889496925971291703945566793460334495947801534281204347829098078403351921272829629438429711143978596900834299438683002227931917218946837373020685759333984494123441627292670902557338492120628315770000596852938244564256132504973582167710593969963236380320843026010187114653663366518045546497729702136556127097736101337717962726264705601175666219857372275955286905507875307106867746720505570884411202221021533976990023251659306575871184670102372786660934162604585457257886917158289170588982679151041857214774098059425609816613867570241955512886408654178879916720530608014318216482776579528087369578131861581361030922516831353105253904918137000934421583047894299948438260671983691104422392735138720357773233373241268962742832361979944713905860575202911015522729052632202802901330123647960486873212963084327909221530020156063408171092269224279389638671849476910014416395001354473225427700696674420606132739122368317918123079856607253510837518491558113163745786401209971624984541063787478595565848566351832639657890367507273288481646725295787383634956308362813331144947298641287366756528667053696672786160157511811751550632292548177757012855307736739249071276807873888637830294483456102357855942842729963085142486755277733566822811081427271046191852616737411578571535199206032966200585403320372526509981518566929416221541518304190160432751188989221937968354780699544401327905043694234092911123557638148990743129248271195904880787165491932602797092092411592401171525481578490567529142974130086371471889547711109910110942646221442725160156225579315795447987650944070820003002747687284662566519591760264972069354044112852888074810389489250846121156092807661660033925866216066128651148043477378805407086800808233713672735381358945714439919267711350177065220676629464884460252168487808770136392012707567055048232567175556403640024625416737632689240218837821709066697181917253432191821424694924108460634301099057563933733376092668626594434895268805117707989950971802274496313007747149666746831311931686799711352256049211520910031052048881686809808003248292293832529140270109252882061601477321505120860894861524377220322074833165227654416219665951685636408734971784324511428419137213865508956695108233911229736387240031465788468952841464650652434085963566994374000588057298500229622105331427439509205986951038697558977324212690795056078475443845469793510775016213224552229642355070619896149212111382203212206922347151195417780277076083010939724065937190232917604410652070882388488187804851448441140008546715544364445096799407699701415229792457268169179364977288047966754760304160561106209780202360129824959795326933681996555739489157112850094449172565511001185847714204040793363595516937763948379401346302973253667931928893181637672560456554911800741767036027702835444970496996238908451363926564673867871152823151180018227689521317233246113388379978483293446423963268311402583581927511856926547256238928142042413312851531994789003297389544118101053910708185089750979733290801198449772089774219652845235777335626338424363755177978287413516793717670014600529394037415460059674893616724156168835030904518347831969943052687426838510386586091444055188367548661069855083507646044141917411487037180343348267152707020355971197858295472935539660795288511333110329932183324723986132998976656717263966900093945145569254465965709924871542408777725483026640822161868543621944312723324751349326352422957991933964062823270499283620020296788095116980793949727577937919566333787009732240159092390082914249736707621748970632283853692213626470018878311816592239524947306775323837875540542265020272489173672592407224331483111133395150643632994418643515674692568810980465806720026445260436241076698458095224232591817486005121229163611295382564090919164494610657363940384201271746355669113155045307881540005943395969667630786264595375178294997599432944182486934200626526409395663764672120061245067124492641713577982894936831476074692445093340398076615563031128123713022437554202332914311382203625103102911693373656823378402739419498085240017131922805445221257793800282223216005847276797576952100553741179086629343949341851190429031925494935605965870327821065435430865925609148508380482778223007878316238476433141118949186364228334177432884415727239670187777781350127766242454784348071372131750032938988433470983944473275837627370081904873254587150617856267536271832783210378709389117617507878560910167098081862937912204915185149797789684863331047509740547617733134909896886139510214230214132381140920095702727176422785459173137082170309044125944485907188051867356894422831429888393907294310668562441505984353639777529782254066645821278187014499990759769558239218665112771374994966286834807635760112081415607181103954584024873836141499982876889508422407441581474161388999010828285330820624728945616980733844239951235499879291322292976074050680668255107787361613237991490365329423508287832629446038368030580070466872632399829580439328696872536631852207841031511855633113368658763609897921100100609633688822714779729042194027434716386117009100289111665212619670218086169589221135316871028129368306656825133928422207289041112904157628728343637163339852256612003997407234531361029701077968224768159695488142465131893725193399809719236265434343301292233281359980121079303402756932894476079618770957499685131876825782677959451910376776873491554061462385006995163990938211421403446777959741719207618097873312302827840890982215711165104163261027006461173665575119218534951996518061493377689915952430043107465710825698390855962863494399825665711608327453664143032804729356345244918121497076517272047326913370959457785043395300801587600745550698091063792799757353260386598618408740305169688403304534409861202717757440130899210046349102790748690098666381764796242925228397905855339208340038308882023503647998504373225755372088964659058567897657892844886002237233481978933203328514091030315445696338463481671483641771056721666421748190503650293328848742174284111652818986174237397155274482895014631893373239038789483572467835884073440232032645601009425712197169067673510261750035800164022951325230376569901410642489970553289966493638210493123708855606892910475435069645974380813451589397503595892889496726581673725457006067478305032004707797622751911432134123399319078075582562534870778205840488913766455934845214434000686209936787964595886823263207622679933782109569909492965651859308119897400075074416582726435766677817962296488140172563363427379226875364400019188610141246567410316242071401206682846248566929619656854338457376708795257772546025743040510788740731198784464493197643426660684930116050209301097345479328508017558507709120410735222395719179858820626908801437296826928102615440157920008283541083188087364809798173604757994568076958437346090945416072603059321551560819919598755187578387774222532708076063311852633104316552613395413506967205982787135636834809926827556065281395495392955968529675861869471815461469075003007166323388216142410858569191755155960931017692573281224070224167455168603682145293644420230195685896180675387625234579480876151193720171864110989328184226306012066412335453616242566092060141040591488333502532211026582149162698966341374508943822246601419877979336189692631333082141843156920117412830006252605594979672248543641949812061206855201561618620297124626337100909684582897746076379732808350220794531716956174876047004427996879788709910763655977518658329621560532078763881980239654136681055855278983965493489716599060594078939782380027899816705245405025444982916761242757533146081970630636885060249691408659881307781417381320683508368073653334737329290019118986589354385428917325372126612574648144123153519837841022939708564626696433147884589029700483195450501638925242633040746464149520565882820790551195469574238248976084007772068187779123135505149212557381642979316827893946018194121325129398576421154415868232147554606998798653783287493999405671898952860528041761153785889476355731588834357577952155206519922843281749526587193547030802712720709224491532524708662188608066183661939133237299657535124096656876124367279761336423659770485762945409440400911025263112033738238630709182194438122787425714168810108551823917888476419975187218328869624315557929144612840296691513917740263521290645414893203408389256630791029235145183599539367732374153884881967936684236864973088173736638415224973663474952612919102870695589818898693298883754253113164311859378966683326145055864580601207014512443528383898479578328897954508472104431759236309309223785482661496169074073040171798113624609748993822035736257012905214083041283119414230563308334520938467971837887842986936548066768631790573264848265324531882011428779954489783282428394024556421463168460684887973248553317594545917425556901477085957848889453556697335136849778796478724041963252434602186552850450374805625674649445344736510858866613776625498043097135997929928650720363601765858158980475662726208485113873980920254483924604575555768909413596324285934588320679647654457724301076171843575675058134850130027395215277120584340095188801249897508791005333571829559210908155465423292203933335710466539576594871762801434307857352388241880082319278814564354779270012777310932760904004438285997514570954074480695125178009102223778362910284949007790265903296605812859116717479905699125241738367221011164890774434281095433380603267519553521288709696132046404372001167458760958081257079022590879609286780854467941262478495321045627730379085813573579234848714480025378284950144484963594655468984600940616299101898071891389480202895618431125585152300717642583539728320230062713866834534647280528746348400953034741237119830608857561779198712247294979359144200287386686608431156092430538862830348924267423948643520270976456058450252115044636866228762911042080235620007631897344726309206280700830384398398449727397256100663573850822740057490237592522270010152912316595280531802785431766616477968290636999487164320983561439366154493283770905822220354504824211175515007886618260634081066568903321250639766299159980735393991723663089313509516875783226245256155655596084876280866651973920808383966055904491405520807560290357753245718401467412994152240116417255647685474666320239416667613625084487735670703759989361772275909415762734278652576200204233517592440063808246929667181886592892543430524679116228594130642840650918204851772236543451591322057617634296052535399349319631720162221042921465836447875869882048137606589809484942231220580174685688125742613321065215483385556440845966749982978253168791528718247519068657754078820364496518046947107607281642919133646639764223570265226187250723898816602255828996040133797224872209963685534440523043231571849721761773443879322308418761421435949577975570301347687369895969096050595845602318969716360927168416518940173577651893532152942443046913339386802887434073504344775389201161172050752589588678703059255755397713591813510043639299108795557993063422569166802520057621652370838097561464940494271910326215738136816419425343212361552469594267432467689868545193443565025870442168597480506244608484973343600021619605737977830448529113176907858112099229685592299008937524679087670298166047535406982498244190380887701749288350302659388061379098684469284633988075351024548731352144135857405538569153370645100678202462536916418767504807138635404811593417580264374863825454916596171036929991934414354462374964307890096548840429823865290826707005344391900141839518282536734210286062580715990816027305104241373877645589339479925253342085418617585965538518540017083464439661844064857082291200468320951379167532410402950186771375201958553173381916202140746096439868418504323276874709854107503332939022977280822640249261187015470080368033185014883149410002578935233732513840475204980981479646276002039195389412205588699791179697644774476166284418931408858914782331981775758568196940106660147731065970673137008363133574078202381394826234815191565819263476884356007403133638816014807663461835989905327327710210810944438092469894204095057459052807679634596824493373059773674729058789091528423204308017593469648270412996048999117522473128659697311331064607536055802105360159126410032899952931190516867214100847719525267638720748318085679586595066763495670251683516817814495610329387738096477110995427005166695140812331929518875427396020845156929170327870542180924037539212564641591396357131562352318001781863993895624323684941929422433744848634593500322915620178858419650184003432195800753810114694559004012426618541499562067426333224966769149800597204711282112823752572811425333400619038117913886590624256857472966844927971171981249894503263185966116385790334206611810778482782348062434265809458450099786350206381111811473823431949453729634162497614429620212787451391301571560506095754006043335397142483706870559972725391263671910121954917404283886530602173728931759614472673762138565776669855401313536069390962810504218987500199730574526922625196633767500626052774414693547232926681104330643173055483308825004674730506980723943601649941646356440558097205123340566474281727181352317542299940215186130042289750547536383509162794261783661535391952607239892784624843789888005531354199265661107810766587494527135393069390771960807962528595909112822686212111064229232216241792642083260337878833201276303393367000674397527356006618420497440019809623267622264934988178421714632200114786051347135635758812863424747995705587634646117283772019276686847623260464624016672819933290993139210414213717625566053309733929495733657056526497161332632813468962293639456730939956188686204641197853296025808730005276779457995211833316762331787616849088581257480023163148216255915648338103598300961388575460985569379263113818841973245711642727648853065396876855890131897635779185612136558272853667520928603782932707039282369184436712267176166114398264222160946621446374665349080665998195348419867957318422711648074701849958540447218167625416983744531816199363942878900815754304296516933618699696686448201121292054821910807339645095334418312799217580858871334111593736124042641591716356944399909418121619670782687069237592826391469538747459700467024204407260886696543154119173290329866805065975055035361022544911584020555137919242323228705609089845624600462389666164267027044772512436426168055711317899320586337309734953306575892170809335210805056756035754205097804449838367054271974045207413774143422537321494002567948830859483134623670949966348741105718229519858134627171713812907707885786077606924055313014575987598682938193369031599496674646407941588838771307371735009502260706032570722116236568470102272356539933006924364405711166115440655186349226365600732760568406968126530419610764292719318620345474292442118058025884713889262211516855089275637386537927881814293043611743204629128457231022009108812180470891560645418993917733312935317615433636615101620226153392626000485491604010455137536240859823298598633182088403885970998112476193020723511886874271835058138820203172955360753899096523178696886858232002508094470427179993622709699552354761566934383067698130675123668817500554539251213087001852280841568102089971319948087486722307779476257750957039912175951783796768986759107578347100742013264404998360042137192245370010022543178137910017737690130937955886252615622751610054832968669733684885309311177034661592637179565520987612158914134171197307062202363487654424855850330412002276144735697884512724069155181181317045516072143893759676558403364163267013669424873471549038999068766868056944484859634237996629937148411980492049891328297866555446549168180388074412257889835964685355832428035427672291076658955361429985453351845506189818476553674096487485606117984515452754224163279342858446158242285097264777764707074946007256831620358957941692242483167026044774028301587173542286043597166226620175282792010700292414187996368088106985909127190218543829414192454558818698931019734230316323072966877047360960785864672395937897880385268871705445589909820176757968683870541323943744745858991399820331488564002640916081158338774934663544727016429877925547055064341468906455310059095925926158348756985438192708006009984493388241874528597572760164770135923653000852328786376267294300775182348642314929219896895900926257654841303041816634164592878446056672112811908981733340446863142753054703579941171974481921498358501762050107184311973550037498591413127337556706371974568396796414528916099563477619863500934679195657635836724166789567559750451822448322182123100209439541280683632443976677994779761981446742652277309368685321298801368736360419912237779021031192864297844020185540271656771813538831796297076588211687873351594915131198481706255914071165444147990451457369566572604126645322500806896242571913263428684286475509303107033462925312616097408745031534927081595145837315048728028353644439254361450473618617819992326383753230656639861380034244659568489944492218047721577193874388143772871402729141406331936100998436307217080939453007318468328851561701735500144664474852391319171180716871398244816631321627959109919420051443865133255882278581993528485327860349569258141569747967539154872513626604794797860790205837786671343765441673455224766837408390275700439859922149829348417284904672474218605301745937754901862921282647473456977496287980975017974297443963917389552306108031889296561812276474356878251828893514388948496959123007922860581740783880170264312749516143752752271434624983685379526057031784780684945837075467241221823690076771483183932125743743125337095893903711873308098138804832118178662911304458861223920322219766208450452967913864603275024982182721270810772368780816795598127212476190584602556680375033519892678149355181148323868091140357714404993362800660627133414259287348623533825847189353636597926839775905740494511747840032245772202059740528445987128102136800866076988884586581576031525118752580702320893053706619331074043457171057141862006818880294974676574608428194119593799654464765744991813457914045525256844574280184984417094265098954232849289920314306955667149783335845773213064052557195017689368501032535493509653320685787068411149519202353988197352990580130180253180823647707029574365295825767284661545454479398881802146581051496839008058437998855757620672001978920404805095444029940783112758446952947994203879508365778202821660345635863707803646487540951717379860509617662867655840282281927847872478207109169099062118397131750755076445522002371707235213246241541862574283021146529404852109397040364306460578383645033551591495000827323293417389049058022305738839866713634890221175773198706456483514836919793775295307934206639502982794188827477152629315293941354253584642830804304786046606096452368642958292619446359608505600914986842513754351644825365847410586609931429908719626882437725541238750786579930800582678508691230967105898726496234380447481154520996502251977254870231219549217720270343041312725808828242539072917718984674483663212725368631938626048823649353611547784313165617350129658441152311173731839214233160529123122323953355167706596056242016246031663433945630209814064435689714579076293314936670978590275406845325354814899070601600103830457842135717804011168646204469783584294880491225939105683242271962175982439106089996591053518467492236418938063381975363072797238954107152652405216264396565052580285366538380021787884103818063768538047528509763870640100505850260539707414891910008176659071859213180623448753541213398660515725554865749035204483076023458262761436010600583754577247604347736723933381954655982565340099273857568292744781551553413984343387848372114897137829484457966405285350662293708107933032147823944273624531362626410771681787481111312933830557702359445630168118143785739534876334424683259362180926690228609758288029867485656656051165566256813314309688908683918871212222889114479108708822343339062781068137506952976809061466958459648277401805337627580813669356532193156936265888264304974957701292481736558067845902573910154372778457501282163250847033398672119371402380012423505830117613540972925779448230429053574229097630008544824111672130965453120435372899804458027885540443349811486678906129176041654091780028677358721786627953600449703397711548627541693561950049590355648169327228461822814458917668886439099600191984121915908757498189738627745728930298614056260386791861667590445087351911026532263003052412655337405395848485954103436895524257373089938226008474065871676248505647969180791982924738129134877597700940635189663719630736289130291099298738753912443992865865639686834852579710080149035407977174767021808196378083687285964584787612382797123279334597033906556984184562396615788225727369307549711740889482546753600237333799485485008078842958052801945940320804567728954709558455612953857098119796002241322249231989892332434059032368357591300623262518936260641979912308999543575715953848283406412305140627061963863541833326834064253370578802034493840064047814105774844466869374046327518464128936132596196365412177284983417235561232571289563674285093408979393717504703225370844004547896961805681399724340466397512364539708217674483098622172563736036062651764779340374892426101799103614264062189768451084980349841478280246012536883445874159678186032371475956936771634668079373666331623299362171558977515236293953213377466428370417915783159877056218907624250005934091791581702824250727310327325306378932613925583557390327959631305045631576731925289803553015238955014252904864909729274804270104562795600120923134326892697225885865026347234143069061405182468765539540704323316866186320309691816547450246744496579888969088785193700690457967235964104031978519761845931708566000371192518486549754178682950115524974439252730896918714851724334304532415714081503422139686977509401460222357985851485507580014695606762300883092830246600590016983470254288906777565095981855567703904018096962136712082967058249480520331501476091129007812246925658503812528386514819997370462734640459826573048409282527192670830867021546131243430236455042791111656540454795896949086313303911545636586521299863877832005400441124011536876132169664908391181513730876812145331380713951047332303942878882918231451134822740286932728695992232006003300658293444102866314759067889604215580162537844310115077828621566771755212283926594446863119100449373592916780518316683786404350329855430336267435449398106866682036589804762502626506070819634401518930819749050509310885923543284749013176791155107436128420619187246721964416799360418104492595613317528083358812296381176869232587819876118432277655288944121632459029493902246524480794825770707785741074650291793851204476570837167009310212000288074845818718979294300719550666723517422949558186232266657979733874817579571350920171569102911549380188083279228197736523353686794671512347620235380386430971136100916426515205938940884267601512902190294585707950646136070792962244044383981557860469678742270332490419585328370796266542263086960555632744116926495661286393736441372399494530158679279999116756816311334592500399412814327780623648639612077976059637068424877837004909446786392271643501140848503993176875750760033765316622670911914674881610147177805319833966488307236269570491317890597989609104839975037732783132818584162264370550998351930497931432294510645450239032174362932648573619510262855707742054913324356236996981220114152023315342563753213155682921553140264635001260395434123183182083295770325197456103841347025608223340022823064107326672866118128848194495657900500588210474194441158830883348918451237165653073398706765088445924744393559535538729037386115146340356972700858669998315461535545393082152196288293790760692309032910648394532325300413008909966718572714669505542272647395777308607503746012860045436431065547681342135312299692887566586148925734540305097076699279604281217384610771298795829715476682127541810722401274896933602727216497120390256320696456411074175799759708883102568268602639689091364096423590345941722931923801768459377196705549168065779455317023075931046422195864023694271219572713457906080590436941684603436360600678290253428292679407639001528195702661985275515977224715050910947332643454006987592230312823723587934061463922423783492251944676241740514528907689146435155082163883790818952296638028618911592030590869244486322095829108050615077657209103601693939491766960364927699684902518444966940265431795611410432094543071966224967398360527763366208682252111835086406988984345287486602190120026864902377899670697776336750620613267756438781023184636266457021778270420631689134581231791187581732004407023301749103210749724549374358811246820018438402085414510581546279749302641797153216931755444068061534462436091116870326696053668613557198915786324438947575401307719071996831350213556201867673120148861992018039560805369699855790380938439684205497160357226409194896748154999176394187187478435883529268462672206290059894916786574015135779642548969090430283465321871352083762565757421722112097207956628092521612044982815996319520145301886165724827422276840263797716143534715514570232234415941166017872004705726827995753077755464988619927787131460995625672313713226209720716423716799586379584288548637834608712830343049372906242365672188547683620161707099590996981498865664451587050626793230111993394962476538590045628068227066512881468846144925463709164236218517169805787201484489719688502647373358758603277398167152560111094612836028988841633859298585449459428906129366201780464511010767085532285029312477774179416986253612988995612674359877716972316725004930513704432200306852353705194525707449454021795427259158750259469126361230381806444222510872958239011486665224887560778770715088056806425800255410012131204035661833753197398896861307834201326223849073167544922325216014120595990747114111730273882886405446898600112801161775431559044032111406338864457517163871663933881778078301987642030200331679508530267723724585164518632847043992715109836338726952218875899799604864067323610898288106001715186396202945652607525211024490737955261398219843400000479737106854842712495781346731641997687478724926969113904014674864116373924106430632558476327722852318184518084254130343014752119665541044562678547660344568527394931380213085478412387856075670900713381909296518583727048089202972319140443268985953159494756156496730238451010845029036849179138706870500311459013046317385741428461838351096750152119910659175058671772205042321059315671533367334650687353762299055290515292283597014764792152591635289382678638254316576527253881120536942115594165531451887893179124365825184678135176791398603819848600652651655192307417738196062912859779231055031042710967364597772791324940083966326665076246511376071965095469678437805399050913903826603974512496447407255420138419317564166731063089334618025658059627384919235612060726973534018701377522453090817339352804172453566774665134869439538440760570906382858333978009769476611947801413773168378807876509551599614521207629174094115513171881161875338250696243734572740813522023539048802072494179602466202298944069355956091994783252697313764725361469574090069594599405985791098266955892312165220017007638890672203997567796947169682592619815830237325421613841504226141360147160737101864241401898736467356465128573938503344114788121936974035984741549984905282539953047621333542065021405777511529768919560709106092507578582498237535149629868052265065252858924991830886422429943620809802634977973620592604956723930548621980675707348507339052362150286826229832937826215317131109591818487001219605259134792624714569505359195858554265457704747236874468667240086174992308847042757876890310917287023313547248313860649554025763031565915917911915737295311118308956262374554947546294005237999850263056405016798584027083043347557420571263735234390427095380807469230172943870800858930115149024530830079854963347952349663404585722224799534214492686348317498452670908296621605148894372165612152675797153162752858315227618992848586899380302049897006132003896948891291937289086144444201696512445529041194019152651758789467786653118668835811573559008616151542212546532811611606169725318026492377181834876632248351754019019537675080536970837136720686705130603564415305761915769732861845133512676407562126640347547953599257438908619458163449413703609334204557975582579041736692085375488770384753062005878014524714489301287869679410300512981197554549353688600992989597554792122105391328782205950901002353345119159463194145868321296387480149686843648986588949854025077202751536026734264818986931384416561909135435469730976591445979563054438862414420241756075767625789062350325565241511034679913466499475679763076435448616676170467873833216652735538686256351956230898538174768800712927244933068508786947580466991178314288963179437959593323609658706653175061334321028546263951973224153337165322130157523319158317095131819869281932172096681159637963226512380834165260001425580304637659763550065688572616910489477715926635109959105317250135820628542840756017128924441462246293388691581337773872623746993490354745986265372844818449611964229413096018721832656389317998633536773322425048257466672503158469601625375849939602329234378101735064363020816409551925172826335722007710703133609246941328948514676456118601098907798428493218455008776180694166059315611430951435172435797120125467573098900255843316742493271870542416631749918770201750936556826316212089848563751869786688940626509443149690063917075289067720210873477189917640610806138995976332353959850116327640683449721192056998895093434147992349722034531886824667245430188106744290940340835383802806473440954172936002137223741960912413516618418215078192306035555222519237705142555239769262793653878628043328967305107486592157138844588376379263224265667752272173512107627001685329155081116078418244968531027896660309395715486115503671347333585948496303286456891076503526063239163907555340020974672841908943653395832111981800201861760911145086429015093398754745366900634191999818384428401283041513609117159608201702521440925075362698380149178594788373013442585547853382903544348867308220746839243225552014684748792786797917654777106029177793150601642957556021073886426634407480350142324800448608188626795751199135211211832709016642552329977871960936249021427867205578596330815140488255057192373844321275305898142294977416774948438303564282489234807951848636189663762792330527279592130067576221684630676004384112240176321647029899604343023054079579806738209288594874704572316690854475643511977485857725933376062028623097583359689516796365486951285325892291877457234152602493777900717726504305500328111684821474431136537254100685881972919481449016876440679906208791673292880256013329518846540735048619188093207082177904694108134532136423507871836187917522732826369816900582173618044112714415980597143903611904962751419999006548807773596319324382150395573231128685377247054754030290334660028269720289980190225198307586328808850141819594687721497028813470275089845558279788287517191526872411747988060235554787699418842564477673724589457430624266527158578360717213488028805548684829464810042010042257484523702916669525488058461866486151158899312641328988331570361857823972386773047460491064899352129223971957613860285796432180887540674627327195208847336972207198312909901806173462027309833761215687278414499562993545748253327188101082856420710672185119029432747357472627718936216349313276564817388254886230252402870916925945596412098744438685888152152334389648924684870215848795832866668886087986749053697837649784999270102876050528637782497089370887642449919673086383036502114151186004915509324840451315325684726761214585629982317752017685249894655593966693442221543514961827780589945077191298614437437698185424688123043538224849556749248047603735749501864171977920678945627307474534511207650456255137872388852858723292019518833303511387936441713779827385466896883151198191034130705748616942497003514042085506848587227229131875617557866093232518496063370700072955356574273723587851264853325411342746264659497105390028058027587886228815812143156439203922575219216964013011394792670015747080331353215155412083401506581291166078983139146816275443940700258211771664951994709958154097166121684351418480808247789236095598345368236221962573893979443490606038025955749712352063146451788826909643203331755749511617693990951585978966287359651208052230027754064355653079186632127627046558597459129333436024878709062766656278806747590686996889746412856538401489316006620630363014272534052462626288750348545871368815545923917317259470586589748246145778398861543493221131907929848371276021919611126062931070139185804322900834445528433814513267771671146014724932674128185502457394916286799568228479751440275419929834969377021501016211471943580301470744653598219471180520323935313208797241350558986421499730417485423155316149238630881887697177813903671457449857204684837870318140766324278419756972883965956938378649416017929640862609361199766013277231964904163071464242353912139210451125165843888711944928752977765662600200799641380212765298027142377217714995543819226875207142027567583957260102793720899391755419193128507393833304465037312132682929010666551396602891347829488137513768006791061785881933260476653928936109319284577610830852109996462430908806948635997228941894778049533028832001724383212527874985984643970972632407689852257036258092089152048303175735313394190788844820010240825799754986796844631644074637823972408493056494931977245317817065593129290931841253328106260424781476648242882718095516580419481705417332285802715560270574531146790304832705506471750475209026544084348181919056389747386667989714579528200820629759056107887406382299846688827483048864595162987385335426273089497678289840875243030743626935309022357885734751267242305409972323044131402430390689102500294866944574080152690430027062293233551410223110077151628099111061747270197744636852682282813416722311208487803134344626595865781171089892968529001072729752127531648807438452496312311208485359440752547836168723779585627712823161514174313644853391054541900757832884962788991219323828430337545011035228826851255581613262346802748600788381650827208367559169035704348083751651288872823955554609454677988397302210134441136721901631705216417988521417870406835039130560419083529548096410579970784882540870598129896929017413171528548698709049857794406265172079259632211069122878911411512239364731307099306301961371623488099993038124931462898748976978094432530609591478220441152157357179297193460225485541524516519217385030447210506828578622662593801195743764477612486298461494588570496407750317326678492719532462802330576011183352039385329757959208166350407803582274518503009553099876495711504422666356580583546493177887293069979263557795563884146684584343242236121184067898247704470529889456174543050863735825572116977904055347865876973479134997138874514000938476801063166173117556296182184755726718539505785156889289602501000329106775803937302716379145121131326794902706914234555781428578152268051398056780936415124079450883189242615485233891191717424698853546675592090286060151620990042581548242102137884957503892655871487209537960035732533549400206057764803765331304116337854612904383850214195297378700169880618878225814804219606371361981245623214665083473641557229160428294813507910068283551094404554090163272885471868782105952864979227389568361250884150190705468647009118080350247670415198773677413956015563215442526857147362269958397632374865406642387769250771519253995907133835542557201611076031129925517937224433480935088946881395993070082540222245908038988784247714948260273697564848289239929539374611699114538843653308204948084248363164543257951681980666460186661645787303785802198143373001578583939092201388753312343957628570704451579461547787358630263652481833220329838439353086603644511176577185186340646481352475370824764313360763316624193123459864294468411412739762312269070343047996979422657413926329056671709039702842042309001642049868646039553842659360582585842515229441000760660157414887074634176071847177525958005219519666621519455372788514997937365531326624225663775742231054808830161286049019005826748294022294212049324600526444295245545183705043379009867886595758857659561635428946515864372098009257610866597600500100649095621916348335845978402141188400803847055765724912719508164716105148557701603837080227753567220489843611000934730902185416551530946854074096486939759373976902163349046733381356651596686621957566635307058019298602444646419345615470605830856000912067871024116430270687934021758290565473622323073004246618082958350496752160372241577143395074311435668793371745006330881943252900262373256962180047257367151116508391104195435895856098041885330444111523491198204323231137190600465729419809569669426026780555942946071018411048211425179301525734721280388818551640651346979081567679274097817844284024802378649146074097488699704735781409011533121049005109167304447733318337078390995300553723670968678514659466744204757125395013907883107933854466934694062662776079270178844442429367392933432049329780100575845171824740640220862482931910106476718506874569868511292764966966776964518211579807453888072162373375312747708771447654618733234702623009347944349654264979105226927944992003905162672405567867246519732768450491088455846825332090958718295964060743330440604830264064048662670192937786472043985309887349087626304540205680329206610358041261365162838743382564893587221346803220934090854011078215412161527671620278850965689513451165671255378273389701891684728558360804795145702018120871303596108029054500961272968193160450175185006365241056558590439784597869535357914207077227995361730351833580792960954187792249055682295868158527413121868844477274301302629992664346838707551260621859579807345280921120061826096800792079936539274375158905410259236806665213924873940728943361164630920027404956447259315814637466323148878074406254532454842906409532720055864458222866446704963709929784032689601042713039345721385605424251950093051819635593311128012788895877929745407454555979686979118278131007568052739017378599913331971009582083198184750604708759256114072161200873481890708017262985788021039049990862718412476448891989854864500142828282983464657091393781127031953191630163825401641900152875469253936881199792322838646845848740282240772355112190554959409475269796202458006057788794792542712860361193141239226746883371984178819990312831909592702096052358075796139199556035932143662445856809527965617349688660755969745170475604257554653899203331651113838093113042507311281679048288196404891490721048778455616476701536968773273392937085331858086388905605973449057659495369775794925368271351201041562872266584898315250092215656803975845200792347288229682100278430993652758669566095317830692272179567292945083739408846971902770017096732178616944663602525051936892800759492856251664938433899092396329392883175779103078879577644669421527041993676529199568917822105860494263857690525621426329417201435385215519707072920486543336844719405653766001746933717909071512765847108464853410775348445849142576647991824014233986433243368590405618777526531772352608206310055637558597310508529982669840966339895872786231707537818974652876505864673294156101828234705583477881529857540551764714936204801666160751419857752101241168755226063880063655411431212233419553626906141467924723807893998606675832405772393471751016795282696959767136990574636365701067209914302385640818815592093076164538605744353794012521529511762493467461309077370709888772982634151235387348078568012751768102467184716380695919988292539220367469909077744732699546181850747135088575605498471390857927105841097058015225449926333088759102839844860016233275742241569297850635982796162904268163975106266283159956810909037040573035170903811840281270973433323228555931246987157933377677180325073369324129464111316053937957485474280838022247715236171287988627559303830459398863713595203737800271966812063657116523367048660643911456642100081736198959552142646619159508961776034230809453607424220164946365063797473627423908397219795040291622742517843017707985665133874078090762819842547994136124849872910402911971749046302993608736004919034275180651474815953043936392396353632817134481599024775160704615421889908781165628993837032067899074154923003148785178155232328757680788399167556005635062618721863750369755728474610747547755412204090842993295505925831621385232975984458232824266800881507801684092437192414727985440193080970780064703228668530546644900255954475507181985214825205257961980672627266861068438670453467535022134060438620322542618938836212042152858148972448353918311665703034722689748443236039257071638958555242985850645972101534460700008516307436557915282502646269717113170588207251402062205528262047579873072672100254048631024610806901194236209950110978029706554785053276967547231363298915986043467971827155723328425259117923995762445145850816327777040664594603242989747335166335502852794364655400710068263410567599589852755199833109482165040677946888260877990782424679157522045558111394396634834697561655489134669889737006287544357161785147665067842738284601830644200501330290135795706080129222866119854480326700953691098097051553941435874617771115249029160035834158336516623610184033937425086750891118518901581830415091059643228662876534734528505586403253230820425956558387195058751444677897047681179312456493464616827106560588364101780510643089262219813477347335843224104088772697344531495903019304753070141420558329944058886402177946172180452281939979015070084844724789664009610674982837357397423019238717578036283190229107951091860776581588514680089550887107801027463675364793287969693339348517803296129809408752701860858666257568541235975235393583164424232164174289713557463336981184942551955879172729911967324311621835780993745042071794223632200226797759056589078504161882205188312669025360630502792923451134987344052404905641292326942665950376200732805463805265456920038278503694045748483996181818252285348486250476894905421891737399509518819919749071576213902807965713323536740602702865110726762018495572324074548500269889083589217517618510052999824307480778526325715840198423352115825811559089528418354903502857316770996855860307360553947448932222819460627459519276144588587296926813733336645458919417496433384308298150970767334605693024477578395158813421066078632342243932641140144215509864970691844796752054051076230899818342460432268313660664884153660378838630060106374291956471725529526421497519717159234704920014806073590708667576129398270047831414244488664930940173837614081782257952244848666902312108746947984262605230548863538010898959615691792081301837717748836496782828715386984591739152670112684493598180029817607366115510975351677688865682469079180492774449222701498721542965133310512781905978956472392142448683693002081291211270846604967954611856063995096059773529376021903292498316937525865484078332198075024153404067481737871773141552115139716868233181452997146597175572224135366655698799829383159777992723261036654641477055429650923123661356326835783912348337046493756202655719013477719078408855839132708317742947091475885473122435613880452334797243774741990608451707419335488287573387761246057073928812108971166242505011655437729136001854128910536402285576948260801086099543631946992290671375816560697632129420388670839470984008993438732176219891448062148312859173053224065700924169119451245477196349296725960989824769023233353565593227142654874735659148360832369942196608536570864075775462229132358817276933168170788877209734609298400622175093263879686759058028044915620902885949296888996731218306283995551867186314685367991203710441873367420645886892605275613269631751419611511575778698555588501760521223705918029394358554221417266725262367850049419643880235057217318162841931335563960370286565386233109276416963260529767706889390168336943277914461514918277735106293658797870244425488807427670750082846482096251920017978539679888194793922699991969471398475032588877446012361910830991733719482756608905250901404225118049720460984664822018238708004546833599226860448604285836930883829028222198731537090223289026261383320040395504120908959596948874303994146109973310181651665956062391777875704314965333487428745802859913775866155755782310044418847089589175595561197580313586133660882507968392402405608149519126307237359875439941946673581671844832570155111227873217565861549572663356000520348473551011117562111743288142074348811189369237084885949263851427579215549475210537712093686039283512929745619823608163117033974818818024399036689143308202107061242028125636067962437063395002110679840059238422522313118371969395740446755853727234759926778547259362032387680680866345405187474542636292568176943237368054446817750503544597961339393789093936508126739527167231440540264221369478538328589954102779742260886516905890273010979785977519841214039211547355543378551588953734480262478092154655548979153145015598176796511648399116425246395635421892329009781697110674115954983124237742012664805327545850656339466309474101982820622382915167108444272525503086681641833441706313040130274755611668629795561299138118120535866576356873489901278582952926937239260081355373385874554830264360373195225774401168837464079226699616124042084058228573364944261640615704314575420886366506710406576726466743484649614091542527464373273004780232687042696275797354354131445477402340230207091066946479793850940877424755735369381672783898964254056437211592057262629702671154838011828148826257762352597054931762718990872623161989389114275492231428919462411958402249115673785087502106277870837072647690749727981344819940827708564647419237691139244894519614290251219719971820391728993982599747040376873161276223752792731248878461259969574098290439991582944143624200552652671017328688789971170279260082660681409039700427408451364650808694287692509423526591839702004692148699766194174956801996793720283876084517340288464202332917595722412796500660916862058838727534836544477095918249088959352302876014922854037383004437725046089804871175695000315215036643217553818376016850732359040572109955315196838721545313107538932058523849236073036774917365582748345309321080125853945484967666955217514692638108540668372616853853232525218625638657120901418108737316803028834560097537387758836358145206092641567843663607711021858608661522751090687167913778167449276861508171621045580301805281523751911433567649462698552210917573688125643034834377767093884136668778052975380611015317446662889075303545592064815432743204441110821330240093891973229046714526631105486057903243926209435153013294786666678824650504553268483559765535676288730833843941792996656560735919436207342148336046169376192961881857503565665205242732872572894147527447507406616784131239510810957282096608798241078749197448260522936754222731152454449324240625637254474869305005283838520506013544055330951224260097097987878033355111192816227779777219176308315248777091700362883577588872863703844946714855053475481722064262328952103457605263227423701462674970253992742748969403481707443872027414557063770358801467561655358520347636817878632732335506280715288774403860004293385927299991086872925225864269135343871228304075593540789431677832534692278518763553089015547664524314446260193103335495857356849664164807748588503927631670041310714354695002018967730088883179346959747756654261351916824524591806442775281491611839966488467607487776482888600886693736493246016910284981704720327544221823904937937040251658545667949516065099217877292595924935428174681123741249291136667842015627569771495939462364269159938561170128461056581926439201586182022842756016994602523669512930192996475291122602763275710875239204983380339325284657937309364000464396925969978352041494175141914821837603930410811769501360359994309237577516681008632439837523871875644567139008098095423431957785489582167588610501396758143409460091280805371586279143555151452036185612175037421305271169724948001526782017262990127662229353998389124158516458138327934503838283838598140913159451674914611026194409921165423313900725459911999006172543210454153481884974501904989267996309553625370981588007830854071464341029790069398981058294618235725939171930807088827284083865817580031561864464449042020748088913983274241922296614277925195270762134540054441703703783430893482539460570931725371803675667214168387708617182538009719392439665411144361069956921928663481275773176440206434751495940397128431514775537727402348216152588101644377807234367665422163067711528816319914107940573666069301219289277080880847040639849270354172247474637006017430966385041539705560971179101334589956058370376351153495894734921483867415422497128527256718484405413501048118485115254502375048513993217140475802310556234422355537397193580945805154098169768970383373838777873787226126775823291012108868274499294870380400905280234247875834948961781042799837439879156199731753916464885953560162883046733236031889412829531883695975722964338604387834251799001516154473089328776014103058679303675472348686401526186007699291644128028901802711869007760896975012188795599356065920691088228565218761502838055441224744417553810729667131535746183008700812324602313397896460846837365858394433960483635892914846515848003048862788126880190250749859533795156665293073105394615128298006725733843531697011337360000248329221754660186137312061891138611921633821418889252465727072764818639261878362682759888690563591521278015785992057398787086069838187438294655447673899645900499707203621152365808082894736406174648660259029035460744284466091839926883214680162378761374370133571127707525661504241738750762555268801287258540925106278864678398530794393317340611976910202789177821045507527010378181265909679396089940762107843975861916599468786684194937358893387357382671778533541912116952626499098964831995835234707245956216548278044889923979954570235915721869896592879258224217442860024454541916070783864576976765363862028058756190863415089813688783688347076646481480848467976601358837267689443529602517120824515511842531758163906248678505808796904670644351887456991922889778795673494067981660293420136154927382966160769723141570441069353129639893719687758511063191759295830277066121124647452056115165079282849714716196074323395234943142395356367277342074358550475071788210239265114926667992873291844148299192288515292828760591686358247972283955299337300257499094453023240359886921943868875879585152316695159429556993985616927769762889975701678603705207368764867054391361572196485274915573817643550312998687621802518721911861933513197950449892641929577331942610027904334214146007571356440847892699118029960880736248191265440323699669588962854410597952104437940687763788456330167140704247344959487840962112133119730193931723941231963656788474622294386741917576880324616611838790904499795946423178214854482604216383142486616206331658415710432954973707289185188082056008152670376167892474358929351707555162497547442262834939363589130733985912137091388637356670231863707743880581657707247185592116096279606631675131158268954226422185186902786648427926667226969008082586377519025184264197863630226394507228252561379198874281968310992305774265734394603198457061839502191037598874584928093718333574395798309244309510009892460303946409149640174795632291777021135957888259768315243370406095744770376246356903862589736900509668298509614923135164404922494245720191089874302103599941067469863688771759879563245369584443396865152159102850801453338767045415963280577987894343400466355551247749384125614680133490474709497432927942069954464593513093611051050032491968924176159625142860135921847922441966947255076233502514395713393562068019972627619820782897579828530346248145585273185659873056869965613505608689498379693667340059373896223321168315556712171247891951244358058518327687345376903901832108236541347270563355761277980350539082556836743071143457270114940593313474866480899994717655356164809247748567959483135870199527609943475474373416833960592365695407060744681253178803738562118736381652989252873685464636729213472331705918588915993976508381910937472844325847347161138732435533931527031365178830892849774378426737943222135530725685362125217833377314467911936784822584579048840502506466264183497916756657009632537050375961682039575537602082541311592916824458834664486231283507422307716230531522327581015867607324488913201946659519715005960384343919138112475008650175745761546243875197578820889998449704883067748329225135624211422471975285607715260572279868834244679737176118737975894370115956461807664880306799477844761616505732429698618067304426109406490589183898480972273981088240802812297791839163971246246427182486592655702276237268588379911182248081246467019539693932260414888209823136997329014433579851062307296087988517738888631625437953465975520651523670363803626748692394801584386985246901184666730197374808158937060803693822512977509748051365778769582459849383261491937857391016559998857070081553138271424670855642475435169368214331843844951425281130184316406183406338176814560502649946962816977345106692854416490683985218482628985259932769545354733528204459712499811726801218996751270202881985004305684404423999806130296567439818204546416655781862186822447225581923002754847309275050128491738911025196449209423079667827782623479604834072030816828046830440890576535038322169576384986229573442885386108760606470833346506550252390505838251695752583947015980677803297995747362479956354214419721351359448943440586597198192653121152470842191086106520543792696227078412522053381142041430074216988304991480353193908107955368158017919153785403262403206182384408550519335935920782804788394061361097849722581679206486026616222420521888256490991052014757377959034633793524366771233762964796710520278450145927277150856197224127164022727977196679595013725202971953108911802166435411927242255774729462386575329167234353045424470206020792701782225705302492440205103275163720146597977317088275568865857752952624175398185760898962956929119442893630446736226266738633171493832621457524578437562002835385691871746024223234557796200659243409898064795127193410031562155261056931991391783928882727345096231283046059445931500320672576402524929885981354771528078943166225680455570000038866295964749804160971258949202481732772946455593644304045893060928597960693050372998174122756134711554097391344265988340721413818865722221374662776724293241714499488593338341950294699487414310898152894027836554428638339516885022070850376439982977772737037880581677903086335438861078813713708852715510122464389496131421269945057427524334215040321344073340945841673767202426717615572123110507266699643819887753726057463081303344255852090845877588197417733415084703735016914979255070825558398052055140516272261228328116025736732485796616107320515386963155062330168392843000013238879552983811452308305669319320005360134526418419145528275390134002197889098372387070825031202091567029120632890482179435608284947026826759704481900308120393611703040415732324935304602795172049707673532950851940847558553485764637043754763025600021606401121141778348506043797801209761246284181075868106386405201918867917183394497778596534184135773147458201210273793405085644854393860817316843734072687200780038477474331821906478973537337819690102945373005177411211199770498790661772827899470577591863400782756661593112645049162205206045686490642713287719541421632790328207339738586871170505709148935574115717979741058813382950608241702107283043141422347912253631704778443551298995882258219145644228957141768765791113543394981847377132534468911292747723082705944863297480355591994206658589341774926988780826119029967480450257518245894259467287622808298498558276375619914747166516183587623795279923987212712566829272817529218582361679908396901473720336112406140752098098455082919101252531469731344852369731175275755595971022027202281985166544111870625822683950739121430745865008842128050953086583328492162013256402074540986079626052755368734501527940223747089982498684462973224961927617160890525521049120426443233269166597279085650771534587013336745279537446894077183886831830826925132528414725488661056471284695487842344965689353256463972311838392110900949015886191273057342080126507038923193994308943552560084967027249164304191344186086318624553166339814453714143333565897377918095194456032014856651421239036663028466661918240695016481849202744964576279413349749048100883153415384746357379643315302121408404601963920497933010641362571430962024772190942311460009337426915180171298973776045457059304401364407014143036178419659146322920727077993400645276421945653850102875153905317405214821786370776531318275176910611228815361234287845615781845693064182380985706165283426691236461815040054093916579040824994944099990755058424992125156700684131478841510827706086383787844356828106157684801837571656105930839318808727607476042351311789796553836645183782802280399370698525797994868248790194460829055913705797821640405547409943804021388123093476067011122471876185484840593868518910059850882196134600996360071358866291715375787502043974853586774370317457205809096050883464607615315555466869170509829371415781317373976899464352502032581815878669076856131474471232678055675483268862214889886189570562096335311718710120626388276947682074390561553781950267936502941781878312499789261034922168332652550381389946352464935741219945577563675465696487602027688935336638576626474892387757781475094931315106646731226883479871190515682074912998576940502212924917605650803630285081461482483835659478354196502674602898125338161246605452160213402065313742068419389732412976496113164557331047213817988296286347783787411021896643636041931459157492458582459816755288576451920568555842827910727131214149934848007121647287394475730085821853493882328100754227959429979739176284387964340478822770150376576191987893067160627026859239936736272303688398996125161293031057526718306445238863253609293280445742480765297634990281277307382060595604154911901223649036409474573270254597119000331466749823007808889018584139442300669849428306492386233440152667430358480971176642900152485757646419520525797696290814485907223797943051737396768295496976123940712563552057686622472925249148580983030235914198467105376420045653742549643691079568315755119887195787030136296138885799454085088312483783633451422172977089141340956194770133352871026099486095670687841812488534488866253470648680564406253381312519024259974448473204262640621274659366785627716377066003630809927767932730023040921896017747429555580106772341037610769459399660643411228066667462166978768795013476976567658708808836759952905105664326698398830236178090623648203180361733258147592721223467399283186566116744101844914148236040349485694492045935830470012211207968910222106218425295293691389409426538845340936469420387289558567640533368407821868309771798033435816070964012306099171555281982259624976250931343792259658507152305626836420337402730164166493948692134815518468010385114970050826969636521563123396488158250898651564165367436509166458575316740355953623257680251920593794044351185159093177982067695807471442765418090304686209037614845991242385163668186681473541292372960093353329360483703870775333310761879977513744610782719660369026741443035792266633728814720623463820926290886509537858644818401372404441107660381668034573456678219326332776175207904118493556423361981713961527426637406265398661099794117490844717164025684592615502104533651110687114700775164936894516939320600516002513792867205040636893604003733971857089146174816390684154496303606246403465519557020151749208831316059646698644034528711123887753534268212142747374345544020164294610261738148054241462348183745304341842222001377903099279029901653334607771180458872922515837470589154892984178598634754168692595761239869996743691952076382003122074550711865746734417293411910422943666376103081699911633797185341193351949986195051301587031549557251404013586848419276166594290744593482505735887609482856869786898665949309382105702726645626230163075880377639912216582775194210793010587718953723845121637854037234320926308615387093999088242570714027066334728893562600741898429628763340020665081906642911919423742430348113656693834850832351430043432430014047034260832790970126976420757475944891923625393404551298235155400146930073290240456701124151411288527728566529368698093784317790530740251987715853775890854063771896288770198511897874257218409860225091327870032276446595443327124543260077999110543310587615998675063695435205460091979221582778096420716882913583253284149530286568510593541465900590036543499139987237177659717590099977681624352636750340559853564825326620696736411329390103379924112454395778111138627885819548212649422490276750137020533523318999909908523144094048863557094551991449564445813576139579789470643791415231526103327790604562043586111143707570464677062357011124153744788135391666156282273204172316220971104823366932471219047627673392193861704770616904870484061004485100429566759005266761545796742792875172940196254257650936572692038454450809787413920940293220255073241211079323372739905262912633580207755912464809440265096928911534575400186830765948295570892105293863073878464670689620748070450742207829357679212704787861637014167788115314409792706795331969005439411626328879149432054205066617651729663527131056643456699346676508426809011399080125057338720712772147656460759629667371092791380600000383573576818935650385515910919915664979580652272442055778123911523658631667402847218735205848252239235703903307702299932891582612212704004254887189413838426711308734969452505497137946967978600547378366404106911847519023592849508672912473299228915422938991939739841573614193704362021210793804715546265017440202785989086004025608526015780641370019568444585448232418505702956169720182171381115355046721416771521169592808173637585131975135064222431755036492459017735484615774299102452764492425704199119994553178899536107967825063990719837055803994215196905094610905238627556798967687841769178213160175886830057942022541189833929235972110205798450486690595063940475699468537254293357700254860078139215143077766046689292198510631576560953741540253238453916098959113556719568668449712165005552484160266302397052331357225163348382209992485778161191736064787078651882824171761957594023329994899733118881263902157894869642302141587452966539928316685526060241696646530748054483041873840428725229777485111918407651811186323280595692614347085799455916591589556752763493725159316717632804979703319312074987841265734972499537933309602069141886839475212141892680583988393540625440476031768273223934257908474194317198820856583323031754717178403713771221470280102748375423604942096576497409439384343521442719683871262302258634603051016601074831072294052040274063639376902509447725994660717662737966570694989626634276585126847341799012306880385431613622727415218882722694625480712957782921020519465976932600096539458788181579710602082440903907115260053042596758052599074647282664807133537917460988031550864974840856283152553074067729277418358046121347403259437994540473270390655027814714124754641693936232935343854763016847606251729853578878843792082170824174913276328591089066437203555877271389697844880439959577618096326938645324992947362843421458562727498767749646948771399194456555121628022079655786798464122479589517856796839609467024985246996978496797544240626108077696927915648019245515956245359527434993814262166676979105372510118036461761320123585859424877892188918466797663949733820766517112515722328425668038141585371979920808039541060578434881527063556317759607421301256744964304977942527836191889610545340113102594881832859145271926263425491157051626469424767834897680894512575180584667417904392050997806430680019747227184663899832818185498596196936503394127528974093294830406762778136030871620004607910643918956172140918565687657384361833078947473627748512587066976234585006189095186763070102983950669386944812013248895002213892636517188202879145338928337099198244604982351050648575067639010747354638353501688899809590507555632457619136991484105153634262398420435174334600941036062015767771769098478841474524802457929877114178548240128071188125310426669278125984066856633232723769422012010633067099995055154948364989267442506867280712656004226422905927738195554700607820706482881010760291256080397958023561556685232153716509455355556531615638670801565113927507514057963565862824289911341477257545505652525995195996353246346661533320142016191809429826296676614283234760973127648854684792671441981189049690819613672095687585342095561050579787263351422693959488985984695812989285265809623258553654288876812709656881068764666175327409504065597366384316068934823081078785200780449554645190215426136132940764516156597543426718346795739240490296636390202658687159728251832602158939675315129440030937411889554769710512502204195970048186911358987707961889554606068642632916739350800084841661732669709383499025759277247230500435323395249859620835898902262243172374032055706408035881932038745683861392440828586819274569653747328179610687220605972814234478935987129715790897546944007207654392495521950879591016107673623436265099379740786158110305842510281849989326829462747833710148224717380534602549402995977271038147448289134372716978219670515803220746269976509136557345223842598824137705263963989777195910753143377314419298878189027381309478130907763484947639398553317865615403364767698459517045360925989021777939657543507938386622539707851216926108669101296691265751458581955606923814899584919235570089614212337864369520178988235214435441220162912108177236080470571874743197488944089789757771125758153162754933948558220293760503516711357506539130875364070631697910866574983876560023778175569056321601334021140488766920402457725559285402309371270998875329473934381064567039504476140966751425935393737838693136590688489830069956075797577348377408112239174704871564552058010739055485307350761053559775008865910244764305402450109923567212365168125315256565875209000372956541956610880426347370156747845152963791958406881221173433577405953491200641424292092875203612585806536116452072630066007200488797210879446073809220986565830774599078624396414343397755762166911337284405693796663275885586184715339485814600973542011579819424344614997607701484107063816035005652827517363490446453025833117350741266390689403358042261679297824946401104153342663979879502807898043841629568980178752087698557849709645707111576026819280223304016103061851603318231386813513315418326303913384877685899822456361052825801157318082495817558554592467646610007830311727929203925970252583985987617976274200052866564211625864477840341258447903617520838837421330691950256555894753555729425773970082436613163436988604571603664036141093707568736638739229437048607614173319999003398906535900091573798352658718704622816611037340995109445506568690401729810602511589609474781719012562689497107041746315905151929029686023768149762617990726374276178497467620569206869357880786117379408319395004610565209417801231941380153682775768690532866504655833082487009449909776789489555983547898392779793984734027151890700236744569538868448698256435211557320066731723860312558879022975118157487826556686472624338271093752266763163998029154440615478420287901056572324057507418389866851815242506971262162421637963209860211223279873630323185793643486826132325041305974492306655722094091147052129574190856003015028041817681033761492748530716925689549764203111956933555044188060249973857253328736635543780782993567895534825999433221250057680751988538919309287472598428269503386344488582452860419616966788603190215427849278279933776632787647668984321484524034032059391007216380962940743162957712160567480473779815326718254723983233798604780951212409725732702272062460601276157775822546157023595099796737747326986841060186459936532693868747365846290421518293549386116438297117554206685566956997872970092286973821016853250792461868378759145621196909138136625077594316643862691567168755261324480049700833304398633721212342934349088612339723673114023434001155701668504985945669032170902509336803337317499015916451097904712250456212883663664655667576751982457718682821527035489136452213966516525506341708837086679159060353931011037440654229428255734852841540774309795540013903263500210784534567424237574217896444752562550936399203365389170106549828735808908783240352773667140332937917589118003850232209821688051526343576817688487974641417962725748795803320292356401794591187663898604137609737647976227366312156321372008199120056103165874229865804607641334163058222653355657406779053016744276571867642934965213127275702600476069204696430394983703542906715597205242569082682316534460418554648782529513209691083985720718221381921768511925555557946227412575064331646408354118425399999976658325828413277229175718947661952010192339288751699277627140406736395865500816472149835246967372465891417480824895039100166522686205743052627476222274785272371628307640433613112758026477780856621305118818625015333613658733671912329645681167670759755364676997027111891522588755071561674592620901447483384111247019317864149931763486632449452612526901726734237629273308496491864431786898764859987563466666928375110935218736531862231386526306408854650537975243222616965797389443785965019010235851558749363213505803717929771961260056662303305405648199757960859216623401280984516943049646776528727100630713701803031419449176567300881128994987232999917375604356863070023265091547709679254499837422990428109028180702652900457248075840364225469659651960108534474295884374222289534732238555476085393299003985100880843628719065478797747896499281465259917289646437064371793725803338542776334217985016278605124272179582652842445190083345688985233379933656480338027304480584682434878928745562298599210353651250751625072801842641052924737720137855874173637481506024961379899590946647956924416883269457480388850071312520003041411816850763878038651943243736824828561795507675535655305056460846873295776525600676779162420887788708603104179362608641138253564129608800990448308575010987323987114894922590240250617103212020712336543097646024141747900818570838204760906771538219684187156383778995947095388260086336516631146589702589979292311556102425766693301860686607537442427651810191168737602222819864890392670562241680178054670723824836863628667725398489960438615263255895292206465609993263501848149033811012009084882888618371043712220942942662779351284909845337272158863814399601874398993968886889074829967062753966362926652445689361888188942239597707200135974081972521511530982235363815051660050125589399029819368747924070528917132578472321657033392009276110041705857258761099829428177513578168823884660527019109561259517786295533056327124913943353192367342352089691449552881292032952094045567482410576048449705142919953477362317378000253619388291632905418564703206953384691607649008777789828694069265803103270405118397595901857323499197909057325559097667660028439116554093017180285508198868971745132094522624612879184206367839440903364111762622286989720970779500363426335673104191661604102035575762067974928633159418396943954217815982601184950987789692994156182060484392128012005598899143455182892872733236075986094592556059020926828081660261028390478462403712862701402539387887763073899357217406971854264910500076246159024821845160008118169223369261901105354944916069206841920211897657652120160792541613124139317605278693700894955924666206232152632759704709023404194568981936287747471683954997682811648984242775359330818827401251315084779194949712313370220701787636189789285085197853563683961171292036628331438867948417501746279361169979341797845831763983248665290941564191446190542224072272840145955024340927791479354615554833346150505405292875559186276335943901572609416799421304572077542724507669621204514673826307576076361753544459283963847966413082878272890225968618616506168916283876981649485047270384796808608944150515471542760659082631713666138989109977902075275706416318391824794876107379489161916254911062255724603045446530503228610907859034670235155824443147710891083026905416989884251130592592657840081717957309509080239118755512629950356649045458537186489261340744320530448335014838819789649796731431362716953585299999442243961888686890623696389145060206502121628176660018284833625108855842639594428284385313091431826982842493649383950228354231600318547622321486038303607381189562444519336930384389226534540767704777227407193378125773928658771537252562753442349072905354446685924859092598183151197928054734675699574322813585615657929120498000815250862659535804415035275995131187674242128996580616113284352583270754480283768724910162853338346063156352968043621652463915722835218302320317720645959964460949621981289594912463036677135760242919464088795915115670700616221976019291667048276766588457207234965134269173423212379665102813121275459027666673027650140498388639371250845882462423889763172073574116864666192431010262747740852432187675778343897834095580248913880870861855055250393741833447597806105354822086559880819282812179806691638099534180029922730331958327111344422133082350255063376264099796638232453486584254605523947518146499225076367014721087875947936196962624068781197077958112496368350652709245146208287158257409010825344789608343559507859827119190254104004408910943600901624767076441845877942226112943702171740421506352911695537723025497056280789022308583437203588053908681761260275971309887563111852760347643250149290428013003889161181364941270118373999746751890173845014837950820058211665348801111134444496056426416538140897009329109254860747341984661223611657333016930257892333789327439150702197191473929528359004673916870353964809690272651709722865417538939859235821769599631308178630994796166244638335546993216760433664979376295452762183995560048275730224238609365068969129654071199149166084735855778678962055714785812466605760757186946033301248824521605514589996069480639951935320119267226319551667529756475424165158650134835974549494459689415953844293338033051546116574599152283819518936688660452922795656813099839230610668842627007606081323587385086711612196896844271879555839620575735799537457993428349874922309125725984019913951712064784321734745595635327906958296784771519672613630207185179230322568939329097265563738683828467662475802959565576316767353758105269474052718892906894131451186286278374244097192693630462240362893634126026467663441069341813080887164974906815846610749120996882789217379361168700712164080723010127050863704311262563961188796942013192143984054542028871659320508655798012595775521646806045656935760284571289159942521606431429787771499320066188119495236772995624042424462078705220928441893061742753186130241821479321221812073317456745560674865310679332033909563369345434176870040422241424259525862705882427004276601872550110536894538866162386115606315089792288847268859207386173481330110457406985878181938943082619317365865446861136806837975560848353452860420488294696700604490295759173974804406014831533270358134610386534351207434184132599776293831256913215527655817083637772710067233886072924512274623821430889143793855845097217133544771672002879902153910570248172021372325944858438023685193277021441297745657487320725899146634333789782937070756127110976567695553053186240775942732978703458573825429405821865871856189397523698081381034653048504960266432184822394144416370403728743913536933315269424788975650924040838468311777321797945693287600733573774625890618536495881687937817281595043637868648771041963734191804957186856150332499511214868493835969608078539138427172030238900597555438989255159953475899190518140197632815365796774817332079336056326781305680178168717352365290839138510748197349903120146085859417792756711829975783545025051955564509196814916724997783129786955336563057724901607215564425079010047240108896123660406841072143245388098850904554972774184006251984698999626249240829601683573614346962460155061626524468836825652427560766747080453579170278302522356007975458031629084594482279397452983763373903959568607370872278684269634105415718957687098337411761559507600471667962350996030855004310819397748170359164911052145406958617872557285606338615810711840972663217086199908517124515482869604079553585665516853754877801907919630003760616150421698488983844512681843144663933093808877362372643242989612715075843689855760442923527999753133560801134969796357086074225766135056351169296879444840412129649269904606019096938906747904236623869167297425768877583123884688492625742788651910326344981776304678326601505927611458158346252060976568871198149483893838918648188099689599804991157938154491605611185460291087126057756437240193752691845387542637131076527600018743233910739947446676650535295420185481408112864700554029354135149057571632171173909984782150133044580007804404120705732827234573609588197330223202842047631918099986507315154781838464282017751180678296435915934958082782088936393833169967363475077142382983282236686394210172345925112854718638741675300104096639696738673593290119965908928740080187502059626404581852456375295735209531978750424808983131567018639004069865134427466268392755455051859411262484075438329024952434413694152956106464604484318429771542168349957177080801323897429195058826035377051149611124116456148600109722991722023717339655033582237080736895110080723232857308435279789710359466179481820641709593411364489791557432583448450605008284281056067834239302198264853544184855531380952863331873777577153829682698636369476099901439040946359854154084569003881986481700488081325077314373069516842775551851454054310765057697735636470747250582818889133625249484299018968166705371223224296972469349162895400077164695195446320931016655015203736304132889352457177695489032905667974381848015378527801513456126475946961556494015300930818331881687782894454163597915083539696030709096826738327731010409836719423014682701161160709527239580013274205265027163416758069536433355088877279319072295211416607194654622795521104351164081542733171946223808075582265381144226717670581042994304308856623812506710352758057028338194631807444209071223010714834895547183834468712748160132538376481351203377057869261760668842875315595835412804137959752632580159896477438250782517712178895957902396756616706869025105228191433165883193978632434553968070261115236291472924832163067213926773569947862094649273123671838989068224485843590191218418735722899322041435172785567894620920156301345711022539102211352003424836047929157563050297613416173209673202041230380869580448035119392603828218027008510011254950642995488668578371726372985128432537694771211653610896377051234725022926708205271371233555651475855052806324416409686788226875492994569731363125533780849058016780894526662579004954285058957245399126333012405414799414353170593909357446950520934220123510279852101358435954003808987761535620792999792778792304947185530482980045346842964841760346718979527275083163283947967318471654480424884279942998318915218875990528585027183399198210198231066047807567407855617437352688110462116990903274428859846164134290194112218393258861997666887410935042174465699731671549256496985249602845839159452332645106063588121463621339669299013675144070497675230907564049013101828605804702150638135746991956277417966864727393398490139085020063654682781648832250836657672112410766431538755616266324691455526807671468652774270739097399264675495878652241826076656954463354649708281612674124031682830484895763528009128330057221046968219090034212528214231473991510969932485303159227775068916954594063061374954115849173262050588288226461565222462332396137638724682047914419685231839067131923324475330450767732298382292744541222118055734312016541404946167138423438756148751861815283025287267377590672667986411435952126190893201255264539970353056070920767765475796108769457914159893813561663576818565659173840422837188172037307455334166274933362714987208033104279161959635876901295870062392518375652466982537239520727325221425787571454362694324612590022612274334264020064005155107408124769999997221884872467863576822796296024870033852528592557300615469003862627274154977369338172064264080670088000000583928518693779035769241653517734435953432567524627840486411688555431036013250472430526579388650814982201735877822665888414727619110932021692021625276733360194043365658194905423977478109528993813437796894720555620411250666871234444934997422837684622048919776627444352627226720176752100624622378195143826960916165438744981792518169095461636742258890025390357999915615887679822877213585838956530185080001700500662098838552559003316251291284800635929892328532280164353427832607652571426361440291002188576301445067679669136409640081638086475111570039905183393638233484941060851140126122224196857547640244728167474849800233855466904137428085352228930703556715472787003965002972995077271229273471896826749465613291282058313635360321821386065684395638997602066801720600716193293726943085735364762004371429556578471292888162073258842606829554080183853499633365224685404446655747423540202059072994565274353282444271047529661121116477094760141369606352973535813472523735251968307301496168005219224248940158827210174510445881496458530511236523956143559497680117833374813926298213700702503695411912487688315280801756393572986843930228630305516548630135017603293877574224051592629326638165372170911113247052767302907891289129408984983920172391867973944975538539728363841427941102255125338783397591413322970995826669130665515976457475557584088003429388784863490698069813780884177209809398508465120968885142263129055622545052646070348027027050800974757911222257774278595128748865480168675010993355243237822699578194833103526349966749214110498105123050333757012609394250704166592356908767538226320755874377330226300202863924584755264376251848611287844401349481091249371490870729331862929189387564098816191722538295406924113224887696424187430860660445966062851652560101225645934277707870797342914207497495740763344993425117935688935890210331872626803095562675911492910938233986445799644091478571784054363933136553530426113077382976866777794733323355421909487570047269172963925688175591695295699312588724735046517844106134077812686598248989841440220528043864958684780701486336638178773754237234170621397232811832670733726084626301927213382393419289328634602835753173325383940189856434374397999659059142199477662671217586067489411613491565229069220496361636553172046831061699245005285165025847106921565147254846429103150367775331212959076196333737844501075076099679504881471706456438541411675962005809166614710023046541358232982007866867893105436313849969615979169569801839091249024462239638784679470808679799210898279513967931345047735129077444519641575207558206547141590617706784707306421010066119145232950888461744885512837309634339684166906725512891653430635670413961119407520360177238343375186810681267491205572780456368383267118984776237907948920501163884459944010396458019490938573432229476181237625299187973766350364531275338781167877073381672388306839262726750038306742633476102294139815027646616881111122683758744935204044301185007696834035506805645613727567734941094724195978160266794078223578411078888458059341493548903325419620386066023719987458265547098679187526375952716872959429954563030581212752310963207860195822637119760061657172458271834034394897315784834453854285887314075353429916299368582570071519039510159876869089987840084547939606052427056238069096516701835599510738541500723952732003601886730377789625507306268117516921160067141004797625946170426665971640979394210058802529184549755245666752263505644170194583101662766733348955111360150748783761639383178989742985179190242862902819481827035992092669454453723362450427188862693406283036235239637440858223878731721952826218058577508576913705354616330054756111695590263591484262575485475350254583176950588866881180480884911968838060201513396847099130735691383150035089420244613827806448910552629471831776237593085414709770680651472867146788417105044497657033061721596731999845251206941174027756580939489556785029006290983165095834340479979648293922191987743950409244218713295614908338326005378601339395269646036396944441652991066856628730533261437574955095768553722470584828254219046390316636202991230619486352389592429289505221203521479257103171453494628861688230599559641075186415476354820194387027726915068673513656561635786342284067901556667121293369811452168333619219020542468028318187502035798736124398032639926018867097450932735391219516424234964709646055009053793154449909727482898752105563306926969267059568483717836384116238052989337823659825933328001753363537184456388347394166239625282040613272188628714243744451364054173818720337756147093803966120722950726499646519439434132046245330992540467191559331509749677342125655219112992479739755814875071911432874814626848325483347939562453221544682210855794479314824260652332771805666407629298492771026828947505167768662472138430171736411794158324362355809410436530245638461669439362297087240455203951208014786500379020997911365585634201715727637625721001671245490064262639270667393754366181650957383931295100065790927702069733673634224842677884347579644809647553692008518360527418107600253599240160333135386376230071541448138878880741692307603465096145575510523901889138942396259365595866357745891041362536281488827687186710354501689369870809040916669784882829282616809230956900472531800355628269299494852762801318353012323460051460075388999284810859064498342539114334045948542124871935846766608749900189188981167990353421137931301609431397314436978418291806346322311937803890718805960561706664205799500857445787269502347867937393799509373125804285061492323826743488797751466444853153440897762652568175567696831431521040226101262272521606267978470714614726268212229045850866515780174689080890438128354722942001926278867361111380666144398345101907318875044331259134582247887330384572713881185002047174400336856010863515545520913331649173280956272738784029966102170744847519588487130708423920403115736014921704363100334121037052764818643332138064093855484678402215011468955191031072305557413882961368275780899938324762603735616825235974692923344796029452960406935832704764109763585536588791551908231115097923515085929634336204138312756592245223307775502574857723552589536175238616918453195269155347394978582429556493012830754252080451456741529277557884054253942179629234605164060963246275571187337083420904785957108497695725281667898263387245962098079927244334760671484614917077225142182169102236540759641300621499132314632993931882084228026698389484841157419463227121176333785801156200473887933849878075019838523978456150651396694268629761202136793778330158986418019066996392216599496788446534120767658579301880632291514060636021259060940665209528500725601630912524435816099740395411637082551074849073130936557768118342802754625481091252442522139073174620350648638038327430122750813478318726643395424383276720545435416845021446778796179679903742628000421454278210730365508325367594909969568634837991045172381415919372023558662653418679214077695768528582833226056551954057977208718157831613596384793281009443004313492115811911058383664928546629500305879525088475803857562500550358233518368489298737580403765792309273962710727313377444501888750711832379857217911012137312706122759924843814319273871930002805218624847990049893550709009501411421213404923941247047077070556409933740076047878014556031969413811089138925161228007514462864079127549417779305431657998498815700422843047946968441536079222685095073310966974593147087124711726259572322688005748311492152865437145571715450572098824927435742225462968153748963910554170457607738154743828280163467508710964087757791001757315234182519430438315051459817818369296153018506353327476921582347008949930902988576053606188697407699346359453826377271054727989572139851971804281287292003058736666409409219281958366069418668592811518846607063010473312532318939411944530832009708945502310278529761603687968370645352118614563297485261989902558079626101039115053752568972074704536532825998832937385179574454314566323600122801121109400882123267256645330056159193911068527299187798406614674793613986530805368943409247006807118874269032201204382027666379394990618390619967195040589950045279784594417501496660766963343223470351860691128278939927717194061672542042282003950846913401346541187820117102139215933850665313169188120985956019880558651402198277123035160872122495333584994821281811791366136328032541898651831742610912769329005829534452611883863619708299058523928092834683538849737029537552246251995641927708356011397040310885154015978442500607912726888646778892163969180650630288584997405956815255850420301209210466148546259540989825591525185510109096005863908781571646068907448249324534059664781962484322920715814565870010157681008887366229565381918632209020022508503977272381213590659723357371633420403856025636889623765151301532856538152503867191791553033498835450678932562916738362515471637266822220425792363578465482445919880062837626958104184949485305058826304403635444318760050475324075651701531227601780872410681819657751562018802074971317039560856328005760597441384672677715635849162933479572635828824878201106786089156487644494932810674831547638365837480582475538882725342476245605634325451193856986643572190651876760501580959991560107841029857396306501738900056055437045047511438319880937190896099439027463909162959359957521737234717752358761134283083093841469632658471232816672931983582898319834523427593864200824749396095153929106529067911654546062821983828585139884740154431843612770210393708523010956510739595933507777256288493221634321211778613697895214690301077925895364996543101894867926310925357174234515028498619007253402823046551574290142710675586179057144319170655894890095168609970207657655278239791614294381813443114800202664527260393235428863490319700025843514832216815615604459871583654290275587014343894625947345400315075904378798186455494054986267407074334719751652555183250085525500849861485435477839414560292208809265472491549086161409718983556735811304178845145235608737271418480428311801713678854341592112083477440477839484963122430993982452967517657398487628741046706975080865293105738201368547794458811634247578682349357763056031686084394530454914862415685153533564618170224115817078214021753619407608769605954119321156933979583750244340507086833747798884626402189463338913886799074774748077693459488732630919826377832880544114474828927938265268960446350026381730628656938224477763687258699757052117064682515651280201181838864404380752260436761842799899977099223480874815104180626584202693283907542583054367891703007546919535749008345313149975830124920317942729519854156800360834048033677019695925055677249231209688289407643493121414102235053188050396477758753764375875619982729564400422041583331253356545531076744461446469194354980491237122983091474886694256632989614217072240947231549990642454218267431479067030741976015166041825483509347875358359831556050760892937541485332940266808326557801570306586516277111753534304112503047841549146492559305887555464721652134493793332537934163441836498247303591355888233991545284424702321803028499365528742422210758069984602872341407302991818844209284851277866033586077019067667751669232561839496312517214841056133118277071729465168356384803153290549319434642960515238723702428443019907404611998322118797536666898573525434679134822515463547529228755783985744188425744094058357438732157826597058153611749577157676403508729263631003271621948080752274202277797299581394724039942495989601026810776046504636586669581354485204346530263976259409763720896266258523325223134561533167803535946943763656006025697484209923773410236468066081862537523363270629956668928971713549995049649741658931411684562569437515052423177958004846299140680321113550895649190294722336663493815928298269604927643454696481328673334755545818645896732406433516992197543690981511624013109987074702499926451564691207281839358208173041247125300208582163558884993206696552283382035548232336199216442089231243960394274341223520502696625084888526290416879872564344977672324296378681431348223036499514947459609327171031605386749766809114881770138389346409020243247329229361073459323777425423959472697654704118376385953263195220597644655445111738426217393124052149840969559117303376132934944837791646181104059009790233539929897617638884630996742677952034156131642739016201986629281041047277791383456036369099579330495945773141485000728205664197735111831482021529101942300182239147690210485298814104831101388529282348529889764357812822530509037625236298494740798177089196215528069018105818884254738925555733308421079701173893189501074718944719383435925754658824225971233607363431195434754062742020946850077801116044124864552106585804800660639852698041179132384514689870307340461084965364926091624033218951656953808928063606541936430993676482159322591362039770549656024162496012670003573257956935055939638888889594512002975516017426128253794826035974585954332968148537219585587446938754774832132225360245401975940651491434679221591459206012309033406149413670801528659769576750474794685102439655431161210147394983869314262760870109185276046431345445089540693208427002704644655385917898522089494311819253615654102647408768047241670211437131896234597101508860965480677030264736925108007793410070971381035053430801704408364958688858389008046416517004119228577443253825553564504398032677037226441146155754328690004049426068114218175686484776232739025464917930034463368985215815100133581633918321562952303464036034016035533490479561213145809583441372446984742919726089738943812049987061303895159266654214587897935814761127399444622843576793122219371011728751627155775017930047076331392352377472134158280899609829999636186850311613626134023598297053070318604999549039308613224464142110622228181906874073913378396306816237096764293918450865838514502477667525121150591174377744486023416644502973635540891972344654204287798627650974669919510088629807432715675334472239949594225791631233370929809172293858681026322593318210989195363753551029948310789318012066940407418955047666202366277551314093828112158140114079711546554513356791652490129473120503319676123769547025724290656795497165015894505010180909390396614234679227857681244333162114380191289364288807700868557824828772718528125151442584531944701851076577889763023731284888298663152408684311111793904017364166123845586208666181725540577438179114297755114611906600282601670339756665143687224511881344070902996254299340677729975334062079939768829874546439160236437990368468955761474280692380280376569695731114224803659257729045409463059374129634344614721200542100659426104965976472541324579040429746555659624240097415839305264402941125761971373928292313055925108416743335019149057264475284088845817226986904375745933653212139808106784866851100351240679371212533634635514701093801320356705511343064963214748019130805248569282829103167612658497240491720263832970272882085138579381565310352879555327804946953148950432927081732964736884969443988711247944132746939854185153745661278278042167962482274972249721417397160937274858853712828500944341244318299057969724996283459213899205578038970306468793135394713741420821927300080618688962078998324826980730885555734260567011934427166465250590472747837046867615047810548318868279667873681383696243421888572805560965772153600386491488785471607667149217586363809142196750363596867623642531749087332497711111950194392675457870271639149464810181346499369967666614797054438883975861055356324828257594501920835998434492334920439658218069063938681519270810086617313375147700763534582230794991277643317726486594989033826012637282204868023069441135241896923315914301787633357221565300791592577056262164055472415299713321607298779605803385022361729554638406043795528055442882041037763449941336395268469305349674381130790916241748960166374012398107687190702608747685505841827001367576892549181310649689606280813103629072328486443103673717376936126337857442848421602738212282308836340642253133049329704946450718024003941766828124417309477511224787455322334509288107409123233374047509866972238467014579813608914892416068738460455051944052437586240816933450828896114539115974497835940119701959144199732643297376160645494901480748288965214530818658836696525625051731239643178703319032186635017652148298350358945103956204988413666962777779210577498212636749465550676965388563351296069106033201335267153791486316637953712357435200303482691849438417945020123818611725377714658625659023141835436064064992419691364663936817447727312564164294669919638072902907618858467597896177436210152475889582716135444990663084627263507569355862121236012888647870482709412282585398429296635266378588174704463432700909889157169644310870108713357914851913087405018756284333515110456271578151943964456533505156283233538139008233135634178877991563862893269505789213319163050761594324000069859650981194628362360784670928255404934998906283210729118087559217166160564317494783873875338332154389762026043620674843955142442777837902241392468522550052084178919751546591609200957166074240255310150719413219613014289510767635365689897536327136540639172553032358196107766885451777754201590798042822857001853816591433392327272297774394137281884458666876701568462263187142942626650590071901077759304028038753847935214817824755514110810177951376302986011379826239471844177304594898410899701850862470877506686074499232599604896346148344075741371268338098977933177709282214277729687085775216135017182760568623454118525013671496495024273517096822515945245781954495131004238371390305474814558676998913438057877023335932955890078304612834805541846218275752364288054358681503233236475916931197807520758421376972704076239759756276276808246374194614131024086868939130387835591410924497368729746616531291307646786410381700982972659335879651231118325097683346232635390887470693875938000255723633363823767467962149987569712751933758388316056570526104005129886398812237202225981334734921527607426207582416626232159947134108618886896389891443623963198180363514945451327072083593154482489378704522417636554515267322707276828089918209007930143868185336413742277255998705011670989364526526044191953768741692763217976696741767353437198967498466598719545447337990518833145319267876227701841534090096854334327830173043472879353342863916917660372811010139779444567296711010048172469864052504106624377338891273189464278038201626056675384493897459269988680063485942284229237427079738938552920276679343172292735792525631165865644146010576550691997132619057047478006201715721677020702352423689873254976627296076432873621655117619672038354109378791636480938353759557555220451292257576262995737128927930198060748469650838442009967854185398784351592111590162839917116361771597452502084055320508742472633559180161166774979789520898808118600708222005535854381600687205327666780893051678182704205020073758426995071377551168950985183087128795875486196716411504564094570872886930704034702490830418960172094884516618014538825799081212028620294497853346168116160001971705037881697841106498976249252682778493020463975384656858323381463689718687400763394511518996627079708848302615190209364020510462291614380986677465679417626469040971641997732919250326334925099336305695087797952910126893723881626133515948449302856140146263317528393938516258204832169785930828508229538523092397613808503897836726609178801001709790707640763311556871432461349051926768617316054814271560930094075154459452746973062165067336335058245425834534738311886756646400222211321938963108499340888612823597505666643755393841788376440273432171264740689709907666092909308241317390127172275596279358971414575616151978412384823672085068763467847851008921118398723565299118443894249610510746940015679510622323279255611376625395063185370362712205173965011290276692813565267010037594876478587065206702426958040565245022556755551343213674309386334749118598889930342338196331271764046293666513273159418534860355498572874614208824124198732074101402121963752686429074496936215909076403689662298789705657967359428455856875707839864339999400770733360702702163842909440300974919241466546227183473829073794905329176634144666999614408574920812947540954442400233354318853355277418834264826419266016507568426868502533684756610554121595952728392204823247876701436864128117873943863253688737321307483610808207583266393814399466450110524393769678639765330452379074955441447759880982750210862724089958060900384830453485325580782757035381015300961571361218374296155552547358878035537362385123426710293842255710289037044104681850976452989622389775341534917473339617101618145072343813179865979183162496527313079308143041654861475088044187193372823444980708539324813194191883753050965612431669414132174416360855841262206512186794573387686138878153280865836243873692520483840007940189392851704573512725660885675572561092473288084869662654407017751220591405232635405514036029882478726146257204006824331866791919744942366690206331744776940245452870069911728049848559990893936632081276676540053481214879277222683155320243172218458042603124459693481003744359767634497246770529903776915924924262262479678347459347363963183681764550912798039298414347177538241791143122695277962047112863880924267409788349100497139666761733791348784245039487758920458701343740563631134904412587029400697305896506350618011577535088275993325078914771833541215941863455953457274642049002628134738225219283682618319928066753916602625702780466589873180686915561723686225892605494322173509567699811955435920839110869058857268532670523255412023154636680628774763176248656889566620399226637651155398375994138481809684328563992743238868406645956980999059707030925021703738372869435150914416872433224248260990992703625852104163808329417828000430109031463960673446744316428112684742719561377524695571137597140338893857951214477048717348121272903827573962391205082709761453890747001891798994176276260858403597623196792645411855787785180786114761058144448186489647120118874371422134041885675506002333449086789822099754404171150889816051725405019241487983202179238907972938656330075046003048538782841549887815439969204561899120797951339746828810459991525806702536097552521942056445133271113309788350235435185089340784361564787198124627886861420656737107245301924054471762860112191554003846263359722029950046694812060643839040822656140501377565232975939061276631338175268502742516868404728081304458168718769958538335285250659913609770291620802690476566952888218947797237466766022048777164825518138915768232586716937173400262223815649250979744029694905659660052493650095445402287214922369263153440185192602375940408932963955395404288221247788518834456841588569716604004638762381730713991713486111991626780382367278904039708721137594004803470745882061264610600353765759540302018127938185159590853499106105719731835642163692200788017227687720613250586178653246080479906033217524438191557147716113935182181183222821425976525140563935605693100611951906195350403837291842924082383682868156186634473826138022804912052821351328058585313954129999381053711262034240534825404343333799701442177155504323081272664034925035839904211350934227290220718031669257040265598699059501973001665974197881867571348609467094372734850316408791840901336913914438983601244772619210011135146417909593222468104074114319408339754150815520431320346354828487022768153725270171448935464611871867415960755492322021006495668843876717332963456346224983640233964253250037593546895199971192642413698905983693640496713936280812489928478306375778635580746081037488668221497563888774673123542393654329247959390248215245508878280914541832011967900600292000392291249033014748738192662297937423790632204034288882522974198240757514719555857322895577642762465800291554490685529972218437810186729409406644585072681843386191067408862864746651931912123424819777468570372865316226161963172045333556936320764595682045636949952922377777570319173854292518058340145451266764788575210176105650861927283851914428350432121587042622231040737595455257694707239812201383020358538618858572869518930575880967930973491462186419143393260525271419010708084020779905267944731309776362842591556685346915309092217176226175140234192066974402388463458586365871301814897722267893749200713360013762760953031012622550599086288372023635640084387704147792689223093844157644815756958246712192796140409537943460699134671823568521298184860486466007839781736579507260248138523384765824147810456369693236398877232111904745279721994901187096636410495422803317171059530040850551499481232768357699390064773766107619265721671321882451208206375025285682218230931769089735732785176213263421651410342478862625577294897111093571241876192007914088294698613934820428321239419491261373198733803263429711876419174836089019328319116641932749122089570714628767179182558453575714567206125305148430156061090150982932365266171611474516692523015050424015860310916028047048489814975315509268683138020636925763192609221468852723226326776988245680782259536795203777121717849974251036026256133307571747265125560078565857986726790364425404567212351668799449394048415945633406560386980251311761710008351748391173938018780491339261363253786594156324966772786370888465148649107021201352758771510407796023852495977671996065044382508905215526979605054885091007191914469337722616634673188993427351831428487542840226292881454065796920413319476339066972643199876150436546876303989177693272112331503503859377055476459662375511156054766993848390847819059144279584987674019939342123587555788665623188361885678761314778244820117922015094117795570231133597065769993790690273638562008388983444992802014656159788670414467578993835448518082735913702855305622600395960478914741353718952932877173803655257968634673014651971242719166237806056169685356582709928521935200387853921497386609105074614862916950569150465946475287411869789188070989019286223241918128843411806707349144756517825988152349628141303189063749558229151104126296251757357778899305036454126128569433354212715606858428858887970834746787845693325448967724611455309358090119456089409644205386439029579070458974095810695063968520228171722836583635918833164369923535226109114142614011038759004701454641018562269789992210291938598748532625628039225342338620210008646731313340217782053261392414647743825738040592952472713612244150723515979723515652609454148868483988601893162837186926732557589681415531393953198463012372503843035920182649806192182112284107063091517258716813986146921157044278540335562262540394454045224498542334701382239877757610550064990884626545037065742598316591848996068823444943810089942552478382958375517583564842286607345074101700323685706638506571727047064792647992260662004293111216006307042919930620101640571715204919025525628062103054867450578888861866039717591086405564364085666099972886850930369249608688386504865731184439045429662896712065016978074485453379871884044960191427383669911516573828810104688548690317901124615831848936758144315705301905125833667451334828587687540664011243219982841115585077285984245523748002820637559610280458150077819190521515734893489376005303669726217872355644195488988270976328541440150189529447278919386547619337135975929821052836781656857687474972758327794063411797188812281407428858500665501385905801180702362107708745618661888535706446624540008700994498025497828108389715680380165337604978015551064755465876030028906570472066779044527707763631336077735869199652618981695673388557014151060179310574491454035776736239314523494140213696383489730343331761857219360402156881681492242462171387480338565238206362059113564901232812928581734225419790044731620070771376001091149807149894786106400481977175289880864278819694157453779565231259798331884158480505472845660605928465359827748946585620919010404709320904771111130858434465226949725814747583576521963757182491496335841962556055863054220738256491883359819320977597160503703645710960900708311668753662833927669337967958407939646565874375618280177527111423239096062524502246565750979745636279293548578312116843661168014733319435507260720985952397663587084545972627831749307667620192154194141910508968760523808107252249816376543678111404259245900634720887899487207714371360931998950527419944491434334168127866292275725482639739645649136993397751986269081843745646236205894055733363653283530267959999600098701754865423267652911080630132572188003740994493519347545627821448994486912009993498385042344427637690625389088633985177601953159327619283004213489702229573445714569123898899938825031927378564519072171945041146284749599567567569325827792986163294420616855127295248830776038271597415971998362159404655040136188872436792959811765925601785611991786811824786534064136300814314478807561263072876799815313733077616101736595558695929355308310380008136082054431060798619197682944517775838516280585964896385512802645502899497562770407444602621746444819024786651626331336910491658554719067243921332981153924998993225431915649500759131714242183891279931492005985966049484383952487572966342272551114462707285315808286658103704630425277979075986845753497657337755041222903421631376521644948162831660829614013578456104626623757593971428019302111997128151638998911305375851965378542082191238023475919613521044245572344079304963466860563296861621355702083835247098668745682367930518655592827471361981452295329368762266192250962622955764466362274882656567931060988381153612456125194945409790599063841812404756764730499281722317512123548889458244078690262328917986524555564182097781419233744753371306989527379830580350890487394576925297616240971386682580987486919797708494408136119596173947732495632087989225677256699204300162747462735894018863160846330144060821663060428733935281162049737839699973557778732211761043765498420826749053171821566037868844586082885490972001155492496236872944624139846655692724265402118123839109394923156285705740108221288686392845093153240646659586351053233946941155213705855984121901255592402538152472138518979197913881826750922739145156384689348706731372244685472365165089722075545624192255000837182533798487242204994332650536507700596930694753846479060798313668161735044592865338173667150216372029991873325453068204188354607605983902806541142217234838825768201057294925171646091157644864891214806738697495048138285469139829153568806205695188264197473167787077496380816587048136346313406380930099097245847981288374956703024482935123383837959348192556634608713124325873981929054674215197995470231786781722519037460523276965322723813214319711032976983977532841726140606174248317716036521271252156579955848812167801314218310538307347324084789954938723462368142322717396315769935514985656318458278544965294484294218004095656270266133054918618769767199140640712230171749093668559763876735542981600508398976552861223841510273388539071312951819371280446401604666380135538491682787191818169127934596021205619252889071559851343563503253078563795875944941706703075434343178541760190106453427797370146628630374955635291902838898325846655874827703582412426615810458107760044086011901372844189154726778209602785398474823789975531325663657274893160352222900712143621719044867234043074946454423364963615074644443436239306532077872173457013896037435552232359542508384888537964791200448766453392332874385381504942028438307410183153072490862226846129639725188052081401404944925880054812795363424647693966721640855144845330922214469711970651430698093172399542976935635442653049579864597882320724398665871105366794208750789885567159863832201129704208301510024095067808695673094421122509665217507762683760387951405312207483453358962245276636988131474914593087544428690554396648952620030143344625967886228169519311491404461505685879018411427726979826550935416863717233649559983798413367091638458644562101746877098149815720594931479501252539197917224509789447444510993761702870334977237315377902433219000382169888923184854911970369022094088403241718521257785759719662168985727764002102827044400460661625923612927014616945037503784477190611878274430816005619200415399745674659938894435800655499983627855463958689858565685890383874334279815385266830007493652379655785652209500515274167649557763402478642372691430631559681678300893174482666572398846900381309801109224335748509894899718058497674771495717932727740700323295095186043828965677820676684246224281169906302117910575696375865133428944302505625658572371605324404432783621304304625386804705469397999148268298048773006849927886955092765229271894968143867411874447642664524529523228901516718396292961028220280299847982541993706114997690638760508925045770149497805357602257981409485503561602815038287973741161290740298656135038691212330390926356025268612087263378727120740314670131580368421543166172319992566962955947631634318364048438151490301035502864661522280350179432028521370731980991345183261203869438988274209373624546960377994162419972805398685551820532096259307480069227866084376088483709614649321350142055160833289227849938327793507202637051473043510472856885362738259365862665777124067479047057886549892689911759871999766568606174379963912467634833874710346350636105454418607810368157843229141832763088837567732136677639512487125870265210570380906282457646313740966168954171435842863230091548841331232347893723975237219451323583853975586404898645889545466908999869252018656179372975568691067485492624483944000461758324555532178920738733048742687382463518022175142710535726935120596541264993737649382781011398274306419461034211912497632818611743278682387679792734130758466873676815374534733592972270811298669169375714008106390628955150026048827857516248698113967358065622520079250960918510750847102404848255163804727854326144902142959774374958189217002780869454671893719657859046022457628428749052926885342126058447897428646551752382030412694370974646610718413330070506217144892003955079158694196376602238476766448949713961432264215790537513358398752994260343541360812771920351929800802773019648754270889363170272202057459966984698709842165274768714451590454055750549601000666994031046540582335700369565837005640558738097543347079495356192846595846016792400333151730369516597309314387745609990783797282426286713196835741290595093634925868462088283481201297972916499416858954620039427132407042932329835533255249419680980926463320119458643083960035228313177741648485736745988010701454792582750638745138595027118449200684484385943781594462269299983181633006867589543969443039774502222147939589292753938161684984605382321016687960723279274815870065631975858068264914640776927662396418258408724597856956420676233048192030402939042667028574691189699906324752098632539508589628804131046717903011833980834353106888100785145525415001354084472462417909984879154890469274504264336256881364865283983164152864958718572073407027154452259165380137822983516532403685418844540961333918225235784629564827634590562586390863644627656749059533404524559476199582586631997106237771214843870413958157950276214411465791549023861910690160240543684415637260593790334636151059041234274785417480844970328959190057354395996388776624819706946833843238044495219970262734447855490595838245860028548824670638601474644936500235473308226747282359282325130263417819725077182564424635699337709242893096511491229853598865331814898917674017557385737744624287296277490019438142137291740466768632783158128411041541079965217756409503113695840553505268644334478002241807970344729921893893697844768943896478146964622287348542530681970568803427770338348652347740914368342211492827830721578263850764856814874575559747636738474761946320587225821675612585160876658716184374210803863143751793434055275319123858140767713276083142221830193186538485880855829289472301732617320492415477757480326694202371584288899318133917470140839559864957104221837404719803763371119632626742691365476414872429655075534391125349299768502978018834595999884306050789812663839955986399075519425489987896433808579225147729129274495192009759022251919378515593504328307576727761934732987215673114731449768135134716660786642854759184656994968687023446205128244215095998889281390671215918533284722365208353363997820735516509120989961925490403407323435547602873874986647366239457100737693851916904133026616732452275356165717176236442894133455687606722081896813416622771351654534215126409040926636568236920260269411886461882538994343519058251890953023473596028869684233800786625518440309365763213383737018907298139190520908415144744117528146801797399779912598452982380819517513637224002546696459993564051629671007377150038608966548411804129023592746155317557868039939292016021634391881115667412710449784660524050297035831526924205141210037632012343285892292122042499320009477996325100651446534273609902537277216453979197632349494665096798237982912845637256730099925356422560278945184183154548046405251729582897455484505758022049708256857757149614070028309180446943228240399265905612815088877859531815051336706923274795212988531950345865392158211971047860465173981608051681652626642735186203063942428286123551020645251082640280327613461391323313088976883242004937453530797240315714460703881513060086750289579487667868520173266907812842024922373422905266448480663797008771468169211075877119800892886355945472889658099017327630722122229981155662986636862643304100060014185049336437871852293644896935359729078617449252806534020880967032029229034394308408582379739065944403584897293658446474400597031847414589486984139411180354170760581437963982767210542986134907791204734210976032386046760451678784103790951420643380196652192893732560669538353263309034254140296399092633316551399919249467716448027572802934362923256223109482840506767612010029958208629667591591989333619890301140106329866652368760645979188509503407129441143844675407613330568918651474422750232443903558268936542454108945504252910626281648076278718275217519486819760037103096085081622865146922597696445884285914397084264955915915250333531463410511377130620628123156003038415765508710334829524967986287299751360564390914866643684248591702755170367505841067178573226895918256554355492935738717600174733851512490239416112670047233110204361857600706586029964332940954280979581870494893075593452130903593276453546550061106967940197274480063442202419474394427782942964050726346971734961964160743750222268759192704724714464468372430307322593320801400781246207780090263343451605732362717611508757932271394534898898695630792447445273373914970998517161268609959771278505513436913028746877995171344826286447902800402276850429448697525061046223779359332885943899324076551609409004984457075293478097939116277666656033466132590976205967217622639097914569855366181944127726431939219768242156902844634285731951339015985422392833699815719609541930133241938110071140287226996783120833371516041765578223285313619496127018667693472008495385385053688068490799940098362994756883260948249390849100211367440235652331624902605646654439353518577021475380725005858688256972764685090131804112050791800658938040960034752548379801121344335134958032925988443242036145468458359586684924497039907447619430071826844958971951168648855009538927050085501034703307988442192554552623898345786904188518722823391754041923401101304432616069998906649781107112027476748097219142136140416038778676828988184174370520597073645588107865597076591111388002398281118928054126104497561710322526232017144868555796680604679353519007311972479352569145791350432622552919728098030524324009223770661496197404650098817318584667649275677434420447938511301971016193475771490167465826318712742495187029050030811272882007184556341889070028005451554597783138733543089164568968907281700016434769488730746846575018836143091167661137704190912662571320737618359043786635066266404293247795509909965471141695675794833789356928882743898745052942284530294261226806814971567610063346897675086750399847902132652867639981311460502426444957602720204777867307223974982405456226634838828732445150069889187277973849930360213685978750006713011876377306576802480362067042644258799845954509641900575503944613323294748224784829310086838676436923240091463433337091175265778911142428095041841526709608676045107729694347873024011662163878241422889351460072865895761767578355185105308066801994113529974337684398230564263436645569361312933180718416673379313007541573804471271795508165872683964724821871018366458813338449014848162212536948841871760002684447807451933602792128815769245296483699083495255500303261583249248057891188071980363979289905578496084705984307410463860853816667256629373828199984633857171669993842919624296025011497338034465713216364824989888998652922146536550304724909696089151586235060766678160003515492687714247678287454811387582455237707811806801545744932754115845241660157731804583364511645270540431642520872647197633049114552657165821366295214033539571260762841776137405904636692849377798119025758362999723239876884158865758446365791181483224388122455404203272641323632258108363839972816219408616946759538711258348401582480305156936825054023954981623549897106230078008204615945552580931070391895803063916127414416526924499224106872289627366235020815329790792340366903677554327021273596530437057031244116870141481141051521811348528919438151781045914372595205019007909969885311395166760406688214205761186097152626727112523203097595230526722911040771955295852425572622417409526186407009440612919464951333946777140151175203577267078013749783981379467618389613061575768912547131527431875406907026363324034543236633582071543347194443946100695417934673197431634849073518829733901920489568243428912917680824063275688710970567836322195677155787244011335311416815975532255961187956740774816474745781599931736995133419000116110914528064997651270313370362390004768745605023898448336194934903912275221821947912614067632197018443092153612694709176836991406695641185792134960103777903789716192504874929079677423828550047744311398290341774743666488110148669210350374661178496121423109212439021005204222515198282842703824229731494507218585969851479172961671096635468733186814696836725195572532470978566954207228286475524747720021049932167156781957586640687907475593040839173634255119141903761104898694356380560696580078988799314710815631031024411354990269878662670791091264480756276005344159209712733447398633411041004834255836803564277453832501821735601092522228575298025646906059053732433247863248823918368879567367941811504314300451418730075022607087300764414444203494341317241176579743802958585832461927717605780668512678819276082483586980184678168527562053282982452080609085115225408794923550532085219277335725398787452290296349580806567648537509525072625865454884578950250951101511199658860886786332436642713586719186113795043819590587060133493509347916131653573016881446794354106981963709875981132060000432714305934694705212504552583792008712134203166484747025136043339953059405088529147598320537005510629046593515051858460385109939855560750554381260920421100259502143337594934566133376310761428830516941893307892612743975335703868070277249940835590253264657898634142452451555729339314698769597810803585208995811416415691296476928179500872442011832627663137390339492837149314641351677078850250725122517959058331527242032282770058838152458052909541536251489737471137722920988276852751305968341804826268640216349114458636024016551970768596866288710513797963764663556372152570275880182052426461665313487463414319310331177626120889475812253163539785691232041370233372022813783025030184753403336546320222705765386119045974599953928810155678508372844046280042020015567509359718202081826613672573029688374017809493124827533422725874237998873694667533765910018251446142106577449554185463580744596129470308476175797932014753981547252842147351535466633804833369771437401018998884040912145981282701695454388876084595007956979874102261743616562792977530773557969826581626993365424035487786482469700508438224732619851454976624506210082342991515747312927309166972196631127446435528445896928714603812278312745081218526625710552099807880674884224302073933691716939131228513521235410348774947410683621875019570951509483079079734012034479017920421431457638219661873041147277956727141002047310945507830136976625560441904645049349451664056351670214665592252070140289655879836498572667502625685299353434035815140250298812229404194912244310111132159292321785231188418109349536471811004563396881546045321593678027724260900681679092657791961813961877881543513251079600441124727096577185665103618701168546894103676035256810746257858640457178283113653465994353128974041584196351366531572443140720546763009743553464003829326684523757125331237415483938788872294010927806877866722437192532062124396997179465483775803534906449240293629778480066262125613560861379159626249520548954320919416429927548020860476362627569083806147184374064397433417941475103632810308381822045747749721437767074937638890590140806687696843225094921951206171150664660784741324369748138186215525269187951638622669850667582467101428777239725661204139680492435006358706549729455408555490069188884467648522319612737999775006025413195229054253791146964275536734353500651064784111279487289652500652644333781372715395107791428771459703138309847890911140468824322301448729980611729575926562158853399815198722122125903357033697510366451859875180893831563750852727099201058069751809253211387304625731158364153002325325522201350809152340057681535100681133628709576058989244801117409072715671554542783165828606058818341605635689820599087773487561891063206207263899657506843837966327263397592668080964422176602955677477676191084664096565094652322078135754025200684015192001440803542020280707595701647280627640221488537279587065577922725284360697226253137938609739762189217800231236128393621194088698296438933803416017524238946651411967373444686784671911829688597561642650303858325318211418060796609810329053964776542495036703100887871131472039921502099507099918628293548417148209655020199400962646112035124437018148523211097667982512625480116510281227503946241328700344027507371890757586104891204573389793719102938988971647735455019881719051737482951940782176304870348021238770672446929357311424980935826026317131507479046102861894430086603386823394910645198860177614259357870019325088556595975002819473183201561415064094547254759015423834884782282838375344008033874492899892521592670342386300597010705640948980433804496463391401037235996082537512267509608126492194244281287682411569408984975016887980029612703857177764124365920967919961036196675754885126202487221755008507504549991335629249511204255995403015128457260370419158922427648716307508658776525114481630320534894037607979354085294833103689075518920003543351900596087040406130699696802082690601009916469131000627511887842157936678496765633478079963160621063182980594264508579167025343605849159858784394859976635317405623898377836658344124648485479091796366995600942291777556500626697353603426931282327011333648459844138275933019344877721038276049314708831334523719994433172173443646458508933804671082496907528261102639868060510131612806656040902747774071468772358109533737879312634388490570511831216409297704511562659430228607997330336513537774102258947930001293932158845092350128638538449047366068893134664340668176231580105694234837837242022726374995840076180231969863275526105897689686297471278326480614485333589839365028070285670727078351257478760697884216156668964621203240859376526798583985373629539048439294919401379195984169690268161961492504387692293051478530380744767555358649524617125461344873511804333642951722945963289785520163671472818195192479112671351475612592543455853064805888465735276355070544569144363284583202777073730795464737620080476062072699847385152551219542522881097789642320445105150548771361985586375698458562578929922519159767382076876597176081981945361706700325765941172820692713098951950696796942280020616227409140015166196954955206636084393888753724065217088186065587568914471185512650236709879551005137760232134881067433387552131027206776359227132159738364682889383641444109657446489779139945663464755284569912655403051021525124101661486164867983326149305681320691636804628490140770158108535837300932862332922001660255622673753791887654183530671728820936968796707715650475273995871817243031707672471038381291351384360055975871407150795559271590195814037170657097460861946843418417870786261050019236770278022634251897809539498063521148835340160163053998627742694206868561298900441845948890755886405060941308325294446326787159963043733797339399172823719192226285248001989057736196432580491517250255570705347898607947746114720172678817407023819516068990913558491309255012172445729817207124978489783514103729583001660200256296874453495246480489243084341475655868591670168692422694356929046447766097467416988458435798527495125256991861102365078959705860099661290776843615383947137925944494334845587354806403578340312064050438402858534606148205098970269211720786490423320394668969959016056583680952687933574483496298490729688862212076492582502934353423379532535439152228803784971259295003839268641974828017734029398839745582492505286432141096778337592790294718591622261953560259169050423978047148271811124040486035435811847471194001677317206063475688118793377095657944184470482863243818863333204216412250616211493787668703536666112691009227212100499412680716083082978587199410004470262628545885773265620292326828938577810785349104870673421835498277177324042360970772360149473563797694348573807041276530078062219135102745036056071857317708410899853533478908452045606446423346227872864025879072682503855657458578779341350479682588284493130362305937160199018108847325155114131631807997923259667400339738934448175898651465179269763534454971064164032145419992962644409036053766569252215030466923303402714623203273404004176573837678510007906720076484339870919357409752011943605554049827726740637151870434845438780464637906671825186115815937210440350482648855176600520193742650164002036288325610492838379811081304866727747616096768474155639675727156664914683143736014968614382515483500650411214248394399788876327441033452456071198391209327902910447498221367630056066644974794685722820323573782970446509077937125732305905034347631202670838512285336903086988193273897140352953824303847820134177665236079909242904965662562109633770220914276231440165953635008722303499414649560827735812570093494170729811031771011005664650032435815715385590403335760624458958814801581973704735623875410438951743303800052594934475734793455933397587187304941067864069919268058436228145688852529501143825797819005363164640169398548342027707796235174694057703478364189857491679731726633534589400215967356901028032498378386554526911445168232185885270105064203483786735362553204817950615252352240473716213550128531008977864100319226175339530252356987055877470395499910010508590408693719018393551786225456925090886932795728572756324457752167616127636202660621887874594510727060596309807435396304705618494216321880637546640922211087753515299094733556906919406414133537270471014989885300966581009806180221910664449701009798532890317273973439659406297140814198216535214689066752290851773282706272800241878794637909049526460342208701488191804475521875271304724532593859606763697453929450115446082192525391558481081961318151506265323723640195628492177557328580604780303696439065955685629893309339260086232676253268210366147810453325071948959478196135697680028824376807323682385943247130045208627535456250646670842368356286536764333010836913299468239011509508515650795257763728560017956789638204079433445265992747041168433106399756089431970349170228595513351507797351742461407623311276698019716777205962838457391915583704500251731363571841074000767668884155884355042686939020637472541677001514452988335316782485575654814256367608272857795216316426273836834789843245268065132891296959843032970527521525103654876042011410983373461122312300459978951350252845121071046325882181709392210529764992110768001247583138244401747979209329768328208356651921001177783571730970225031023180602939299010657855605808295905680120405827459238314126226507867104673825725768548445663841634450618128039522447712695896171456073609220676256208699568529677941822531318460077273048498782545884859106470417735796614241497805710878356991905701291384485372169766914496393706455047719779679584567739194220189887300113103555911697437283006827274963214356719603503785014030253109318468399885949796639431023466457269477546218470847480699247432654707387582488326664014938076976573531103658809711202733675218727828887856112311286330002826411047005874471034223096957363649799868452680659583586912162143926189003684099377666549035893949428431556534238279190996040526033941755114670118119411040382023787061110027288102648909288632703870542636702967284755999779200579890341855298719468221892411946749654917417926601470837388129664889275294570050327196344928981333785863990693237396089799795946449315831514884712723574956217728393325946389896163427783039137649460072051858616876353039462016874971430900632399326714325712318579806863688639684368318694720824843074676329806713595206822675428495331349130467544923519543502305398946636655648391507751476374907557076519318793116439587360532973306772233214460525701293493835384495085818928692437423774022130972888584486843257155230245293559569175338754184344268963489544631026278329436667357675764745581656807258176218954377601304553043460575081752602572833851784320586995264181094502391939300001940720191562776575555805908999448279327275236888051547620052358954493373355055454539561773087854358551505775829581435684161623171233550725376848990482573251590314752843839057350695639551184004087276275602126325783526503571113767588219445342156771563950187366099810835025016147633788276870867756844192466925597603571020740733701258636896075051549083057212614772162850807493879781576414487624131951299964639724068886598456833292519027391697546918470299983584104100230787370261585756436736824245155560043511857619891065979265678591058653522817762713563788418277299697906315744729749775245495228652829393271694508485399810942077424334249870494613247584978001917000266636206926307473618222416814368877848234911435292186690989330177354525900268679055249021713455583924471518150557538727621422502153051744973800177599672878833475905407547180026069432114938852386565136425543177109644893686459292222980372616377926430762900229123486113786071708836268886956414667409512102873453248347224725229364246189222586221795947486815631344168019732353039473443812372752962307472182128794589418072669959284553311479949446753792725713729605376133276385528977908521253103777949082678618865037410747731021426310596866797250676208652254520686925853478510068925936795871114822175431164401814478851707321858277945855253572766247387091931303188654335660924735260467699912026011533118593128094804381884935107817996245345765555220696304827676315524135649126704599094024101276585240842327219264610202681155592565451332735691116244696177291213771228605743121505072255012441568458942738504353973770557081842420320726080905151609837304744277530735837059594856856001728299458448719895021854985358796494278021247469224419892024293216166570594991676566958879137402820290561581061113432830174921993140899794408434971323654878916337783984514756545740460884332612603848306742563934179629004518169099142142170573788902922364867919388875112621498246779298905276356282932034337187359086575488869902443383321556104312918035799666542783526371442674337128690089703408531838886355289919737702603039858463721417131630432649807599130650461661765882613246605070299355287850976274185287158319831343576709548678794254365521568045966622532795603516187776795057942882386223722369183492361527158210771719051743900370263825958658617955095445317410703781094534688940173733174062537603763894784966441135093130302717579170872576823997639142768803131855696493868870842460357033123390331705910370916052561359191030375661439533927274741186363634640541956831459127389377292751299589825018711535267678291537391861714634023505442240828707960589119887432563503742952236819237866262321787061839667180947966157674736738134659984281383795888947020521276997578489524889199145580217498337259547673517376031927382288972474652523509599685202941554440456551137887244209505228743352439624284476762347104188033582405164746734814442471747910742974536040142892521627939517411841802098244920122266762135515734614914060044991498460125155390297077240180239401705328850279092419213308244880804906754555242589007196428546728629675277444414756672118109632682842081645385553789272872033106361808811859900173683883172349120227674245605302492840134904024178498649775638389818056642445122670672670358284728412451668417441478306864065117965862191520164940154459249793166750338088120456972517256551082821578058059942076701195466820660078871999320492416852376477759235206262972946810431622891030435782256683679078049074509550905476663011320149268155848883498927127601516652996704153148265358971423818388212111190545152968080009423554442486100373861122159454597242435628039277912668391296964157048623196354813878678109658395411157969068293438811188143701568876344171868198979255165806949205580393239444378789929363559950168888532113287057696883638864100285638706224781475398311820143250530244126556766197956701452287463413629956842766929006124014495241333534871848581065487004183062096798265161618331021233970748190757441950043145985273254633968399109595522666568950013117552439697888204332550425050542364897880634798342292124804306819349961076105117966342320074704592407805123327841674190442676730175058132695679787355289698468339524974380329724463320643713701201516441600996842545872700771370294194081898697406916640413983679748766203657278643956555691987445333746952832068027224546003005881882529890130159082118924867475440970367941603813282883597982372308419793408853592272765627145344856805168151413648554014792117878822225978704150161804960730141993917483649872208768712978855319025290035949760373707821511409267398800065924367708050387110305681972306887790855248755192881148793921761224472885078228372159532654647602348202487393793722822706502768342501778691438851930598794194034937170038855101716201537379818348069999212154003623489219786309899842800967555806069598373417492921475956084437519357050821753017524496638518586276403686422141224041841433227902083158876504546065269186825117731682764476389251763922047190629569259185115545609791986901763152715619460681866744674104510324893561600742218805405511468207464232191370786530890520991739490596397997918265163888852356022328180896125481972108458674908699248326669240586816392637993029850954693961274309241739443314446738419109901395956979488984056675869245655847622412349386423510267965436108038571074878715032099572900539339818080663072266998487561826511148424933761276854027990737016570676975178900575592911974407169175300858383658281724361961929384732556199280250289296061403079832072495309055784473386710177513834594664693668792553727684747183210180473539274871947768296532844520157023074237049332692353746430297044291568561938314373739521061071039943721839821496666682301806809041052609428337129281670892135682027970221951669288329780645903614568088695192494980996215136010954155680273162754664108188779376146660835423213149141422132904500273951147336189994156702877888830137845386294764204916269013299370612310286557654928414698230849779874684783248774930998938962214223355062401547773324001438737743067481090373037617109661928475912891892143649025692823534325147624552865328287500754909383848378443292583067745186707229180603430993540059072815952365412784818174210982979095462027075828755981310417706349103532833175676830057074625509789026760358561373588848791224586173767019799485888900459179369466909887520036833927925831580275910164633786274170986533000655419320869006131047972827703267720971309014191840026504926702176469443270316871752648119783270529034980056030953948052509048227241823101306141585055676695724452941233792326973118958580469706781976708292417349706868633918426466398870825545670540398171241070825620192677489377990895845154095254451355622990317421136879395127534120649696740875089752587164050635652565877222778328276707387959141543873666608869803118745266259898959744731481855162597475383076981704851154640507368080206012005543748473603935485703406285861456342896542355976809988327450115819007179545888855411970172405573238232396978378371123242616736023531700361166682551754842954549057617367449579196959481190543983108910258965273346878579055315825432877260595567061832738614427382106318386821408580733588362539556594830777656000114139614749913056987833607985103295424944144573522317744464800499633414069518788957993531927293702045322288068073791953795764523420505039478677177204089601064439145942173811509347698216782603282989970595699751932944914660832704722473992611840132988134621385720403637207041959355482121794997162462059802346618777657657821240762428702938853180295783511005671905276804055152077975544993898440544374781974189481906951558419306609295659683093135468784932689926514378374133844762297996240554031998800356497849025194929844826003254938600743588237881498893399023750162990907089191982531991011667388036209636649101470502594850862281068154654682857681301062460275242662739373885355890739711404389998271451762483379195560309217260697208651412710458257553138068707514082268556192252051413384206586647502125489838846000447463211720767862204090496999359407615857969143718370392885707513587758308215357928693043638655498530969819879080855988070214605481363355255049292946250329140512005539300840455521871262349442063775002526919384206922331763070669768958288291078585806539731553353617426310242469551921396624586585686559987628867100383079287827614020834975085108535237885536379723298788403216912745465503782034155826169288809097226046228861658923229696773217384322639819323637316308984710760216513860032574550169799968002603883584652041628280032074576490490076676460703998502687962756936014435086109415829995128075007669512950062405683355605931587469489868621729883703570762175833463678582420176505492750182468532296357406293254312883888112501004343358134930473662805059082213496501465245884415875491516264888335449290769814189083867620517208734693109002958358104370386550191926692635792127203678875294066181928869141255524570855685941016003434457635640948566094770219483025716606128090394801250656053306370443095732984919943678489967157400185025328935018040168992124331448686485953543272077112842471416613437445022339720460334547516218173954090444667839253152024236515113747342263039132426022391833860094426477796467093953541565361172811781774988604230222265366135125080446984826611794058498595202709865453745849998506250628472885048417351347371854980928524795406634679858534174106511580076231474035462724227572826111871199045468032964743451247303851001846098334944633258618109240006482020599605908415485143305971747591735597127010543249738648657089222570549547958278035515181058957477417914296574057886206649386866375691498705520923627121584311637647660570633054918172808237949272955885395530905675125296110258917353378640283889737403627979339928443127366764007068984569362355339835129389843271979934885620037792537889959476294436973672987474085892691978004156345874045213964700363371552741048861833335724062642963019031632881821987857568890416561302459257665682794117889206302432461670729426974961548914827287855378954139971453184830218845044452633244953588765983861844468092533612281043866119332686470956831813207640059662327982607291347788378312502440913107607834376125939657512225282683860003677222025978897115882134772320635819021339893449402313818289391316929154423460570761589546656713800548583683974235188976453170611110236106609755723949803086687885874552959858429732987424681606551001814402556116604972771763490652097669915629143533958371237626757616416658929852726219061789749337992243374593245476843658223787515669611241069930367977831468701123638271916187895044420436775275810437068411913792382925032307166947518392409352395095231943517947647911939811646045992288249072518543010520983501889715188919760134566956224864568057683229210588700546058230638494567169951091934800463527326180955073085162529287259727192069021820484144689830756873022398704042814857885784619661184867410354643974595620702325799701199058789925873583682477837444473418291494883500317757874600868495698531219759064633267530669505384114123440395701068561313290377717312652675877621527911987342282178578766726894656318444426034568327181717095381223319303750544822340921821947910368565075892657286123366774647017153053917693786022961322936970519938049927891004465455115895935748551894501512368022576173838065911675116217800957367812793667945404204242986045120134364546731057734353361279552780034195277457057171715504391834081121394060522083002513691583223782505107010773623463220461306229966899478170818082950540072868223997798190905716872666776659086772000490586518282266024131052793288436906994200305904964968568455905819932480091281892715601488902393111922052448127311288935917319026968608634934406474738984216668626269823805082621271419751490928207052694626398580591911775283893207087015134442835624067478707135948298258864889406868626222593734146135301046466167044181526115904114857774046491874976475829347395966242334067005450947833794210134078778810829777994878269484965965460140806227656227963978689686918806828173182587995817258538111789470558690565555859024466179137496351837001139532052203908520322634617612452015743413647857851216903332400181725995289135589627162382153463875549838495424198375364978347070575647518775663241356304562878961122325940886719889778013335730223551958062507527341521839665202976678819124609889149104718558032333410689579950242760941919772164023191801699400182183464525602705092363366218697565613796932527053016824456263511577190835586925420586863591424205169183358089230080079032292850350756246401680691724936150693673868534445817930078407525433435278332058956358964314331965702136582250685372160853540808406086834807958071346176132432946850428582196641825966887474167761431075837535200155541613467971832844028458538048926974921248063713045792450852472187179835912181419847646669179520611827331422511330546537579819692116541532593785128210646350024334755823607051238994189476841120987027894022824757349686067764759491712952504158390498065829102765606666444865718101808892057939421405953616416044004547224612474064751075023893576235650955605817327814569614462165500922613769115402992518653136480858391422589372814483240022444857938167753539218724843178759674644968228739468768077561308895753752960733905957008781921498592706593868915051441636916271285071442257450203367178896422903831877334442776014870219781500045687748770376974635199896615327498513777682053726784942431080345241310166772747276188870010155882671727094398497132522877309825479170755297796893101359174537507599700024628884862082645094305483575327537120426393760671519643786080313445956639518472406834226834989229890600082036897876845251220374123087050345733854152816617146256637074539259409531260795636420558087364932687599076099904982968445590429602807521315166621897151567009953298166755347566625740098228136401868433746194970903836791904777842359193368019072296904982399447737712528899784010851583138643685575832001537289789414795678947674651126317164219602174000482127104977655312592820437324091210597590626504448018872433407856043009021945912121185607128160960910548589279894351487813789823869928665043955466619870633397391595394728105941162596879270754220659191838269661842285310904079597315844100605587227423129293785450717197921514922226342170423001617207864380008191123561591776428301554143228637230786439252356417552900845405385965717239996242984485597697131921229790769747445432744084883993442628493660257357885537047447543195060946037577453412974095446475793584583307548301818331320849992429500757502290667891363562740179982154815879681178242930615223405002788617073595941492204573560068600202021332259477630055606530161018600488784120324258106153727924764511837111845544572594891636597566379076103365137276281245924538708650151620338250499496004789584731185540337920375538293568957485388521728036390815857216443263773769322231794775633762999368164024623608559507107189705262964706071887730725613929332096945277956348518251134973231433045559754293910736475356604596737080314278957709535003440388845360235568658977580058434856963337097343213560868254577937606957228748515397716092548589030334355599794825600191162628702051373574882125300582214461102316094526518961779277641211517754996769885251837345989940151179304206198142272773329610643555086775059735838817006973455789543051066820706851676800550071306345141318182232717275075382881470230061710572342816445112243414684721491488267427759719209240284199383671913960479951464112899767099772218617843757522865383641361510404041131798523344940529095533896366949826867095097251980877167095418570742232242610483788734314886816468109933165068449289710361222840505129664622064064671374926786670623781213241324616890908578804542071129659896845650958421487008860594275243173595652409029763278045336106195429592788825710793677896341345256840717502904844145781210348180272479762252703591257231014744120793970587823541844038794805624089394743114494629122244351864599521230667574635584054704381842688926530409401904787502858513861342510033087471351821949403866322995757625528562214313401342961295942516583599813992138398854176717895829439232074486945947988331648367744166607147002965954632576407754282318089948270211237378649122209675348825456246862351507017702242965751029524302987672320241316829346945251672126976812498738064532225041047993073245798598030923332232564172395616096551535874673632959976778309850441849581936091794547937621236818607629416263082599265549157448501837890158718432524726864536585932289891532718465194329571575858302855286283961510746728256251889191341427845552975002302034096209718233117146720521735384272664368326193005592432641194402417744082684778090697791301383145553358524095734572329647582712866871077887225247703877799995266531251601752806406730726950866044803982892127193005645532291699717401434213441785756084621037630863536406052572951351728786059137644894444782745935744159463111700323352075194000513633937693576744538259476672902954368965923719778792130531723727424141368766187332262504019218237283798631669216710356435612221951742285397311516245320278068707277165438525637788520544054621617186005304536705820575597784760742822675119420772971161697730797077428842216558711856012925762599666407841572264352128764046600371931824442506902933611536804879806852445979861930385021483326036157642824621816016083911256642618019122559752624942482147271088141430084345083122211595796884756907360683772410399227506069632749453466374000774223802003355918839463860693544961064287375995328772371512869302070588815132435238038097157426941948310818561641137023490341976594099498463667553339215567030408504263863754498091063852229345397820761838070951151106364848255394867043587490332378562042583333574470438013717726438923455070831653182332825577438666634248395813728514562007220344945534031683318066052836629153015993924276218949517005953470035210599297862201202879548096591793923911588986928931935766921964581895873955453544272411909603893475162723723984383797234943424120707572558627812289884511063806939156386540835067055055136700923827640076399496269957439605457363363827705482809703508501189422277329511957213432291362173151218151883988181779258830855654785211172911363363885959521560248001107762922079584121187456743225180780520646369939029156747086361319812982639213335945718194714032248408367359009834150986055420604061515992259307218719762656623857811328322406839783658703881315814830252906649857206531300150883617116719432440628642341562376617468860784935538135443728152359806234109422025999857943490098018432555302687068103603358410133897026307301871291577746270590377090833733260746790750594595807445882470157174067083056873413033951598654298635685915183429543041823520010083853768304519476275241114867978804404629409528729797104514545789482651447938083687401617545501835973726604070906053487268261946487303945130039721237049752606204827626575183978727758469316945904173795997357417742824723453193045671821905396079298655835125890467757023918948192330042109268075225391979891903218345515362458706166992726878515876284540008182728850927614282376970049200188124815157711833071418791464003988305842624454458918797602358307379741734446002150375795187551124609571515811901988570267924895251886687128401961039158779349325342545527466715239807493945985355377514721629980584167044710129253091823600690814432563381643284013817539650340445176090034206446061719590418667648615942473519248697507435795831301134870627943462521632563276571003957471416659542281269977990701229395564997463900032971956599145717573088399945354508620751872622432497160059646335949219228475265046085646131888323452794056499396090561497582947476952074778094944488438189897991013103218035876813927507204156988916455288330444364883857515928490659084337616238809963246976348089370920165756605253955074059341004712608415189753024402895822962146990948260103164494455221933285128848066970052745378212757395864394859891395911463612135175300696168488485706997259361242583035894015760058326361028109390436388578862259126922360353167466180004296306196004233095313098899860138317172175031578238789654076650403174388036190178526619840756858244932137595787453405568895859189142862145719660157344511164490213344148033480205835955696765953934147982598125059543413309966180032325330332374312249223487037043050835972260986571773753952722110390923551256196798449885004055197114381620063380445702294647422909104726228340133095851938736074493477826970612380751519562822087334923389215509358497881200604415962405163917588430582580657410567298843067820373712918630069574641943508093920550039612191292735452577705260590563976195330066397476898367043012761672356240201001418164561826835530518431709308281532284967400161262650734403961157674146744149062453135478527149712749309932625175930510508213313436929101052768400312197964694853443667080379037807312812422207328936084422730383722683470296208922909216971931652956344794765791911944274996810926937334640964696309360508128950885804378275698902614023539341806271945346770433425651038214775797997683800792505679351136084380492891404596842097070429559846050985703852944051259033031608419366914354316642419694429965088858555272359798581397048167603919887132528412993121455094522765947865207796273296776074739029250052454955933661451879438850576235726122419263732463530848205869823580404560041208398701189619533580274985542210261234196184161830392221307712191922488529382553132278689650274069419632278753004945283008407732334404265169019241844722145646001857565409746279583296076277323791507250785905133866078021259636508840645524819458517557454289765857125437718253198648825560921093480898054387408723790824472607656255621861032927866026662959646322052670444512855089552385834374080697866360474123279594478700728231175161564276428491501107086672439580705731939813679655852788498984708469051766077579831650035809740317273326824004700850300403566824118370706509454292761914749340633126205796302478359633376020215124930814719186646708586842478069956599488386381001768191856048942734379145129198854225800474361402224443819175768961672435539968422925169341438816301055061309946975840114569294017257080539068063262361835752871030778456734999757352691004357190002774864222951929347080617547294944417411382605162486661174487436410415327479546578200266385571567495201539450461067606205965181334421249608228978192925232033591923013710578360880921834345273943303721231865958479488539703089813489375905536729806071866074258115033398516450206474347286434100379708616410178380296620400866241092810998310151390947814824131868353432662484086853150189085244864637093667874130689637632201276834925489918393344591285572411119813685978470869154688972358739303823989511574434139440597967135039613191679340556110401598737361958394745578165921164047633376652787568467437808596308993864015277941539609805175984199358826624940982734635730973073452808851259576831726164902263529095902764202260757221960249893041160540065010139766546873195871873028965424690472896334527560989900784002436427054061627807282051085281589138612724937417381280080371374938726820061066608212591946778833760453593151937552355640093547634000021856963497043543720834213677524983367083563071134660697659958356745606969798411177895177056924707410498874217053778296972062556283024451807947047986730839750935009488896617685240169203251680696280880299554167315743540954076344723540780938758865171303126273733931119756711159754368110541898671469319448103800289479495502769513967892538209249840291202897145358446804004349305896321222187252154557996682145858300508310197866591572305082158104364969607703021400264886583073544004568488232167472012868933193241010137788349610592963368674878349977922939172304041706900759481198884963850899220461230710701579181060121220605495761172385125176500670888938380579420652200172218109828096771951156380411810054224749350271508405986888433317671328462527049085634937874931082226978400289779978418215082942809761980611714642422023019436330076120739191204189372599265253258282392348084606778601431409533511829024146707440792761251050407361079936549725263155352231145051412374290311648722505931691766281083422362607584473894001885162744529110651869964221803300864087119832113303311864457972270360502756571590098086226541941376938825908434704562869853676454963482694806703752929982494704090089162536495360772170759876031564748263946127063426028221558347180710849477178316676403772306880080100050448178883166966660175227556723215070372540964606082005579368905225208183332360509168423448299976738246156140194813309660293000358316704760314997441125468740224512147728633416305242318989418771747073919094096796963106032555374503361870627639286430319214594718657348818122213019725991935899172696562118254317156545292571708712142527478419071754527906904857599365771946573686884810226402028710667747704193116078860915695891881540960702589552434279728284556321880101809105180081838534290423842794789678102385123119282497287654550479633740090998378733763113517987566043794858852388072931777733617624268192885275015279025847375959577711128048363476381874101551375645914218672121088568351935969985378510837545930670652026921037310395923933902100990609172784110163631980805870116977544445210689814353617664364865193046866298895702783914305765165574079473890587877773788900645718866403545221444014968640561765450440786624414093252877362436605664009437497517097963041273217733247666459771620150248796543028359833052120003046308869563453576319882397261541321069863711998578020192945280237333083019562695977139716750395153355883763723570591295813141591608783357656125497508834583218123924290289711661972457082770443596739996247808392407882301762138364738265481904287208992974098877960062827326608699448719941728013507020545388412799214504365758876163428837749060904653998441795833666699944196012789462516189126756571332079198004366126457602881795175789989711599585902031867282957326337675003370403176225611752391733289477422024448488853291337685392411778262076865118798642731860765288393749386800742071117955309161940890472712039356173933654079254328468790396871474306448470860539172094495316440007099333844585375881194662053453940102524397110648226341499047380622519677877646851326077781735154770801438791639065073565070790915244862528335785773593106592728723819421342149243057471429920850936456065795349796627617603178789330978976404737170852888996905270697828922113860394187406603399309555264917405890524602632296055986997774805229709847524548725155998768852226170372655282464941035960955745389046434613855538719336973479973341898102067919729662677317524750549496498483592058383684314235696809622033427646100382433372517255635272384015027792523418532112106098437353861776958727008648331649630136094919960549395788117486810350840684446594453634118468434898999641383059523996439523303264797469358199251123208154734069075058754021971855017315852421104195630782267843151455428438736417760157586794172694842008706559849237465071060098881550508133234975896328229289226212873880613802791198641504365191548336306925055243192314804595980875303080999183619255889571177788191392253527542772741286282122326897760489691752833332907570067085593346918902645781000055252481272950875966581022254153701382630181718429458505657714235660707651285751821149346226483420489829908932203307686575938057805363585429602697769542922781294033332305819298375261987450111185122898462136701136326155614045536680107628651314278017223007467997623225386811499812484729336702825701801856464253710091593102597002490826890778502708900782126858573221470601819925041998978145258892224735535512225127974166105016877484229610663853369006365533030465909849162018982012790370161448972055111713967607264566368383491593267702757437762748781219060613867516709807660953952720717626732887703895228309662473705595858176325384173066834819306696914873425924082923545205826816423538176290211393366936664673978370040486096387037052527194702703274133244633600510120154588209880139419235946367840400720598050465997033845958157394653649222357798841929217163069816278556389031414052306689605316931832163083077893506629803382248603665023438305316330097472617000153973996222444145756571425590144520381146873152521002442321407243317198013896785389423838061601710123794346003551296527153051756629674443225912669696061033590574519679914472810969232225296625810430501781967243111917808053125182770387317657235129227928392089931310225308730026244481783713837712633361899903208762131422204556582249078707313090342037461125802982726848983397765110063250783670937450303849376748463349622120956905692926573533350073192309846079759414231102469143765149632556318913394828213206797805259740172914593672128219977050571474498323802637913220795992759056923497879065473009584859721899756564515686514710838237899722244349532348995671314150747618191836614112525193044308632183988244101346552776147147516150850985767047522092553667971383252315972074663085765144036346310722590875743148045466882916203303106294286821093307532911931385427787220407736988970447489854085062986497676075637303203316138603866228404463166440286985703986463301337876771602821389170343556605233031611004066513986478500872071988915538662914273868531999712670613223344978454854890771044975091759303462906604012029514666824099491192512681021886698474940310538094068345852894522310533152847202033513284977454700129350254294814136718745237507635319113180766524416046451674337515295261770887724353248161781871349290274111072331865994151065780243389407784509690743975041178842137703109301900835883236515213219091856312609910300723402079666646814370947931907352177289116958669465222348677875051897109683942662494180088572828375394105428071344228882474361501662586318831486044312251486745256829398300535051696969886773089769174172584806134818070296574902013607427054370814236557240953179145233427958689236393820597990628442817069330334900657376894805111206883872227495640611901076512898753423424603665418234641213394958683422986116012041908301800894389576654487955543987016199992195130230427354889144560919216783535343812467880698670282302066499013788787701119712240143479018937592653759682222938269761846126396137083103848220025788770933651624957385136198965352178476569773152662610320975749952936248899898453850868207219892283330654225132336026492926295119274237602669974192092197921968779361721162375902641989515302366037171243468161019212952677425179960044055407868578865290307454278973026220961920304653088790112502650437828334120019137093065229481066934940750546512910994116682533559669352403771087764448916567460191561941528046820225889324342537246514101174240207123270679090968341980677274208604651325770511984857769682656222459921000562028952814826214852181235929638513307922257711698242600859318441227342684858507752939858425352682946443666740961593397785539540374687140840752517908491739574555858436007326469247458321985277419340654420684459177778964309214510710754200483671504409397651201467961391472304664699981135751703060077475438734844292930502326456912918674254672757012346414252194345766374806577013546162515437918424292091918489708915091518909286305259482006140437113571332074172685466178728549702817764906237974118782314111799910850738816770268744398488893351853162223178410387261130603108747492724680516754876824137596121182889100572766462336504020655774272401180123230138740661089994340647932010038705543288106302967884495261759481288752828186755870006308764811132437858960697782870906772368863506525903600976556548768509438650577771970292634934142094249608174423866807816404214151072219896897268786894629118747376256823029876646302681703462181327890277047571657048762366691768069453113180893884534458842056203632853075443563924030654433392729435434555037387331328460006826699913725059077393997050857301904927047582011767576981736044881041630533589046843980095790505886407169374904477469002903769486809925838766991804128384197200805589877034055337739012374269586533233322702533060449340311463322468888041909974699880369489908904594586423980597316818844479372099039012765503479931985752461477340608842305840509694174830991727054594174003484533251653392841429407301521673863215329467320312771626779500754336704960603559021094937295795803322093356816066854477655115446150219979227872356111243498859856498013385440931451363658982297762389428496286168717148329230237394174353192920087414835460771028086505805201625378448693994920373839211124513911807837600896924845935009548252179239290659506709942213529291964140748523787462711867865824524062016237196829118906737895565782583361656708495193416613781748809045306528233284458233737847112938991450695990420053679176785597514655444905122918205560125874929549167369407406889457015649655618598230144366839600460149737787220495772605510824399274619749917540257792713424546638705709712827049427351235193286991741508241391236130187153339436774534788485828688870402767097441799968229540185071697163076162350874884325505144523763354109747721419453223396829992062444085150495035113860486816923621095594551955484090965216764216291180799646532002643417780758679160927649588518684881429511278945359752492442803289434439250074978046017715282358823038745890923176671380043628789846831241047394451685206498836299695771282690256765719942367687107665992805596671649263310683345936035324595341701784573517311766605847208800783838568768572684503622768748832934388837932576421677820792625285738329419829973036906975498755391769036629453444730761616661927215813687676105834056206493228658390291998489329037411234873837202488757406773075494358197982610302977231718817174950174871544725718157694414973491223972893488645234025861653327635720865548818724979723173839631957785924515455057317329758323055051823133237424144444898230606264929520883553663934640325973346882058572087383730916611712660039032022097791931623139174352083120392927111688846724751436499404155474545317572156302154814618220642299774282202145090721566246577195393120061959277992333632072676065732425871880854886274098864094631839063524990801430508864017144756207893182762194575730393615142976191684808608230885979957408956635560615355771485628947328650705054793390652576327371673631378221597202878906933930547266897525506299226161609923161366352900769737168113880519713979433381231116170956733691294525090640449388270849698121592453755660678351224936702622937431391934262335691022038296096922783139522276763257931001599805337790420678613687230608761406047127355734871802020523140197112772173630957795962481890251249957441899860452082708837703302714312102228442014565728020468367262112754061717080689180647893693783243296328250037859245700170378429407249557791846860951419487469734451789924439716459622031578743615803199439545779122521000432502829029105494746052859801411729809597562110724500887613470183922139224589596077532553056497963034942551807852945712514456920700937182921381473766714240000622787010250348115891247662483860947988094720594602826802682974595830520984191464299972085539503239289069796398747138239045171838258808002318888657791327878375768874206807147043096680580659748873028249245757537984044226228614981155208873373757184362564902256882500987335008496009707062284994913242524967129373009033242929367881723312444586935007211148188177256406771170921461287860823294242728288208087293624461532008322317817961757881583724339352730071149702158599493268219383090746084857674893871029663970379718449564494590494112693471529431554020605015516447581928673819844366212427993546273389948980010995595766222025845174952421867818850757603062393566851003180338215700295024839433759560586365466185143827697329882272677656606148691066238523281349938771330517578211205548355930002317287460112776931119635864273271767638446132603827073858556597676673945470683354245219215970014386976405636167473405363666883404209998915077374709994834755729469743342421882135748161289275882517529340362583728694755278838194604088251244284921896531325269885271894731071207631448768787406109000213637432789776212471812911304824792612828152168303551710853056696839517505658141352269281835580074913960294736462678551055281792530168183337533014057569938449063992929260899333688936521805398279596971800051369024747673047595601215856693476572079354169091228277209290275671099049435045790075654245926238565479445239758331057541463760856491942187384115581333971358332308648748305537482048129818207007932925061342763971804772900802723402062911142642553986675896542296694314848969476922874832479657566646673822352075830907851562944444094854028680894411983106252922768427811365289362876235599249441831214025738387013018845078459602221963844207514127231898097003291600162519801574215094025425056899218013053469593732738054558568123539943797610616492679742406257240709366543945827870071849292447431555147553311906270274447979291462994050409314523682134010391562026482258734082475667705317314075197691425304553408847351271161742974698142637365394862619920972043008892295793185801970706510342243527713788390255786127609424996745628041902197656585868229327992761304984633093987321186526154304584657994782762425103152785468363227660637104821137033966132473755773260628072084645269349207210455829826995197897791979358962077460521021441622594508509217337110169153738565787689865094602892451182485041765840957362420726644710195207186128847124245681784890777435176969840174387746529176008173216311766796081402961110129130902695748222798871383131239555543599758829263617838739345572891751432716575922246032668032544810910191573797237220472509881626823442956673505006477292113909638580752796126909040140227919682367955264629839851308745270346851076335719862006281513691987570055162130766119759665784701892388424244195846682974615490934339033596450542347657507465591255372476924470358920926931231765825421076664544131731073076767335642962872576836753936307264571276452316011031999880225738162636371355812075331520622355512895564892268809837437799902842685097722491446472550892169087246857893207252068289998699641978597268004301495844484612829099431568710897217717674288335057989273145356010734848461609500267469481083504275358871362168652112347706073453145591955272080140351554738356670950123597905357480370670555950357068819954551347146451484548933640127961333443271696064561876075900803457196230990056212372328216822578230963830660987829395520145269792065656731548126398307870652369787985193550264884306809520179226241845377111222737884880561723495276410728356007853800929453257282353881493623592445045508561784639387828537024856833012633281829244657969692516471994696920902683046650347744680940041758133669302769569563158601995803444129317618609061973566643682213276727359433088752987855920033563244060398703816638608277551001056429143729965617927841953980606248654541775613112994790472869901801666982839915805689154881392824256366248499149282265193816828213067769838076466704727530819755521971909773190308020992145193268455387295781793738741567001499852255882380647861031232900966892684744039422085446692611421344823584610046245876425200132514241605207920205290786283840256972223757096265880072292031150258735079507291520154113742589028587289947045114775043269952924630436794473871645975334806399835285152312794980906196620618924580690492436632465420996052760016129235480161395556274259615154423859823979387173014479948489415012567956012061094218623062273351896819022833428221499842104359636426601739262228055404930888408712679802653327193258694259089744523267184045467503649396448961551979208073816629260699783846073986129194478013727573889224554882185319389738346030684267077803476902661916592079510257130303283988057116058980802080716175900141830605296345668190479901043976347227501144176005747712280024156078104548097419780177405023489406935866836273170556219007971325810682168033697344060778412357959795829945853103602448507519909310281132872252704079257864376935754656973078913365497096207975394699516634874763155294351033453618881919453745128135088052017347888301306191601143723456561200739989320708433310412410420333871157156090740525897623025693149500731976696549559314710777756488686894674820103766549144546465795247102643356173013683335620834872153907087961723284989642629006542562683020088841963434448450442772580307336235411222843380249251354218396503203107516636127144425359208732791522543717672293335019704651997938052418098211208470180040916094260147030026114737530717317811721762597586578930162931203334649878657551711770574383240432383946659400822217363283775707762085304255409090382283825120605916542791879779198393888964060728117262354642169296403613813875562480808157865214059861529465752045455720573220623503752667883770349366858099647777851213074724757240429451141869248676626685451512514702490294521449115228151643155514612728915356493805596706466174239024644402736188547476252726548219127512488830442815607406897661862887002314491282375723487142717317653577025906435934176298318462244807450008375655338823517614661722748610687035034152081146075399929999822834540399393639359750875558800888325293103392119066186268844648258113583887462709585728165648671501069834432147922971204384888276227033852084741640872491847579049217541887927263868823666554720930760213744027894528616216955483965752148811840591499312123889825485683182604226876072815325407778400351252050156198109073438139871962161663686700557063665552291205173158695357502887335635981039552608902176766864536728181175407426375341912692560387569141471054244919128352811677880303735974724144927607839985925757507988180427850778431698232914153002412428371902534135904472344023955670705937421144280648251780734734465063708703602184828494728141842860725666333903935949016407564420138276906282854511459762764156450744318214188640470531776160593046972207302574123748591027680691573157958780373310818414193192267823143628870768962059103140425654228542114049114382103894415633372508493846234827720596105142627793497758399419237146786695393450887157753905714064889803045761240962934023745382851157029338506502840589658096348324693261995810023155074675770775154295030225166746654714290774634214584027720498527291204099336724339840659385344488561185537069893852307762869216869708885936565157180443165494342023771774137440162518014884433901264092496629083669628222791616023058386185652873407473838875389752011182093483854616754074406018732895921198386431515720354639771121232422518645033660481331267498893341706997262703568598781509733484286002786703423233843405853230653316449468713482928433032171492103954806561485006844397826779665295822926050084124971214994985054968271363487988967964347235488667617823497610603505617581390020240486987898695670430996975255520438103453192967162635166194191336708487681685990501528928682914352100860143569179543525424598171073635337140155634324438362977842288333684048203247231548714566833564822912681167362158318831184779442345516094478478850746417632377612399097560285951498683664630198443473924134348076146144907152318266702121414419123762542409437893552480047485102775203684064185965016858786241772197330923842263852044447675512007141183355526055188716741670535378285815478577529360426093226471476741036947896141345422139312166461620343183529565078931040982335304538398420687597608792168278418093015493237785787375573380967910430254152301704527602214538300764300065306966758676339295999398322179732010622033303948571280428596477519681971253167411893119187666435978526400324146869742908581991790595204728434793747934318384498557652068032812616496413652989227185890147030662879282951020892872927601140441485551561620438610862220982165721870404109594197021807280400086842704647226992949545176929579558528293308462771245947927824225827971728189609676151288299018925824677662489642707538425758446919809339938931286657496695778393087871085914938252222904808336022638502955512159843391312499700648644629713166277939118999234005849603688279649636791689866717716343930969751935747961067752969155651109672474044215446945568850625528337028401527965926602808405577862140195821034569250205297684582270859163898352192691846271860219339733344716947827792009694963398253045827220773824398782879363892046674555281093323165201945937905609730164329214719586419498033403684405161450024613353580972207900374602922435076676178376498634176596245971616013721751843946886307520714867543616003707481768090321049194409578236531884790016965004483145679283111661208633226411383856120325242745382394998302636071975743900962617967330554000224039732062179763992228547031213681420775053959166196215632926099174499051274659388167984006768299654682032374342593587196864572705439641330096201764150008443925621743490723506265226288208481103436535464589055256661775461229644843243537418009307530675337237387544580277031145631017608940745941648490144122713982160748029040186720102832014025285085704494301689012213308761345792395221616009652024805705275126269669808793750968919820164528505218070998638091362847006426095984130119719004753921782639581407663740744843482602534833024904689010614551480547983651904419174178757297142741851779621882907124641686058450846609477788285715285131994210634212680064085403437813629570804923231651462059517777897373125205832939724453256133556904183156117129570534560286485680596340964034616334751272484774526072178189102974123841004045353287539714997898358370755146234321510179593476200459519733052770249913463475696947538466847512536985997892282135623622860199223169295023440600319252194640042473608947923247381077592138353807232113373825565990610377918258843035843733191701185670241012294618565161699943936799221571368886097420735987750557568507803162261813967920305551725178136100141798345437753146038225598780370672090658331898180299763677292706205042857293873203882277248260424018101926259559465942349726953160732342948681287963453211532491585989941190621148568075988634099120520820030494349187561865205139516698260464828528774027407630811223455457024757987325397427318974197922729348723336002034462496355919296987412773082044599765479018482922033719630177964666662734548398588116033210266530131362792959331706081507696568184272471195081968974189026368318095614827577222160808620573167713466353974534506789319554008922137097968476882631583069573787523735355137854207945913602916309420394674130391244099791904294616328169768116066433767589903046709863313458053780473156482369321525658443980222315147379082119271269643751841313063557262466101413047548909148173332579602530889467226308483330265723965373741632470493171627054862977714659379707495044374397381080678742496639218081910797731424762190186020023540285807948015667660429939528810774790998170702178924891923244741929546387235546135613342999436414465327634893946798253261762011290410520352715615725808410815377960384804002186734792547379492341631942722598140151826287887907884995700487062163334363420234223304032656286349373666303351569333607636023436922553042308013422961346068593614358095754872786752487116173330639148376848346233002338997209945155600524555510839099057022063450492697754796617413937877891600883916169159399659537396378064345777961212791005021785656072972798411944471208497114933048926282248490929447882765633461015707499673349039145887194817254916409727032634716771629618271188828686664008663786154887154153377984708757006694552526234917008734808292588129392417963336437108449067431551911996569863212084327357995083800758082324446344240287970926431820676263677712610641957656597893611638656735715515532955263221469274357185247775416743073700642031397751866563984108523361662436383463022995093566425332547242938356116566917270800760467407120868924845344820756065267921260051066284215546471535412862894168773039152512831996106295319473362531839448696332833445985773751938054278639934104644134601458306974071670468323809229851407915157712173550530803366222882109846418432991333761773364733070632173864305578569937291563472606899406537083396542043597707453830150015965274895559645606974027115586225966460509738176118306341258378581774403823575107319598131243422555517876524905025022977735364918864771234726998595429858692986879817556185779014575368882108710873858861703618495349316838579547966385785242246727833037414523439517318611479248094619644365005301698720833481622202518969738486901309133086658813617619765553746620665528071351507791118287822614208079930477667267954086996873064558513785514615140776942949740553009250905878916930272748904143633400135459883521563595439242055468873259848895210524485373070508715140981866440909137576319082998215783633874518433458153831509312721819467153685208130917464979990018940820161777878659087891623892937785932155681322293669141352790412366130799968616606618249085277788439321381887217638012086534234749820571985431791931588074745340856494511335726188346854578298731715405175534618418184639960284088839264063630169711818916931486787049405208373805205596183103041895496081092180826840664230646066278305682024276384597487015868377652748494700269590156330266348512181817440993682092818225903578999387084780353904093082460026995055663654079676449017630906714213066081665807802479574871761984299046073157978247441333171799426570983230657390150919311123314586096866243384886004486632869566717206780709288808199040863223962428969036626387201793161715488815534530916719098117343877701904027721321105840582771856323424913318670396166429157634723739914746095677952059191428266409836515776053567943670307314601455392773621243909960392980444551312922755510042811312477084705666809088712550755808498641113242631689851872381545858675768683142102955545133606619891454027352139885717905296637992355392959657859668414590198352760143428131921083640618002243303072401542069264543286199674543713126231436166428512548754532007596911334726171524165937361764820240290325201828960948343342259540889063602393695498391080391476683280182400412842084875616350082629943510233805237545257718676452043557754817041574989883630124206190879342191780945943286902659737031597865541375731064262924824545377903942272740493176890186300945530020426837093179021262732911470820574117589527672784198275124077826860200062258175804435469328499737254099075167841364206047633622576222231980210484545245555115393278405571305312736692839529478861576697654525779952980271921155948814206362701546754276134114899495853467288319787258652518095620483090660584657920961436735051335418933799031757016115861052864466039149881453812979690789806981249380354716579485709299286107321264306198610734864404139794742677927928513789875568580659814911976936675258756943831354359958900716341395537304499749407805073254154863810092282680006784488735032168610710779796751708430605930303486350051452194524189828530478376017001276029906157638801055474459801258886157510865262964272083528083934851972011395971574960520376240410315839648724221384683568434799546717363987509603141919967972219459288148704398719881032856353020300234037389597530592660797450847946377051173339489159260325481817692467855950493127022980523169846345264664463128482798241157675601192487841581451739392662391215209488776576898873727748456437115795730292748292357751317909321935649826262730902863096475754840553244607307703752197730412702264862031865165016965149712442808872414520580990638232010255650282388534198968174798912630790296769663751642418020777395100413734142397207541031649602338318121087107316567254760250048187111175344890540934396027304814037931387010447414230482285106518036553955799873554781672992251983416501961727678490477694616333866037584202866174554698939615532069485109468630195725158192626855596715344946449686024810375304627965452117512897959652467647704849142793859030056498350149035966662510435445610994941230751212837102018613505757251702689520221413306263291305404327495894012740369000659480757452079861773255105107349655187148975497513120148890389657652140412110823917699141099546528593351460225442860777073640947670045732074491064877532750391181647454320706619130438810072554195785996123763270746345444465074167605111163735970278660174669525149843863679524137876345228228797535690893158580861245658576861821631888779052264146443785364740795874331777642591771856069256751007808149941255256986897165290509746350600810272759015122124706139960034635057943453051109740825391923615549516615171825810058001938365896187157533701477307818120003062811896213343712849687040248545142916809803641086649716355501497189853899288189666266552552972498988164246563600428759913317278065793548559142729290144306107249482314711926362978153950059445835225748359387622587618699074055524546079870199575760423845999156761895987669674131718262155711731827953084039573144112413342306211112499459902805364678309262388736509672411939201326169703664931585680926689939615056225059955295114946221581205592430467518432582794765527335028253384253425113796160822402848576947621711987646479461058723210283435004817410689552272144907216863143239565439924981626816175690778277625303425376983295372572468603049440195245449825556227330251351019879888976132521434173832329117429669984793552499537143003635429371401413034384276798674738155376023149816455672080126298692791771734394445945781820417857032657928014809502805819356739531276536527786337669789275566183012266259197872396365329987831891632786825176266959289184878941217068518777036027903953836814146909227695825079865004548276924123999904751008790990186379171083274214632311806274126419524743878983595583322089677345268129052849029363860001780585087255367386238220729149628223188570652856080595604443462098045136346740500103935072873425091124239555597197998637836458280891865342586980199464036235192131993839430117907284134706539590292337599068428668986143519750990360627230910203225245588024860058725658849674876073329806699993383951347930167029220788636899591482167496194001466919154797316993274937321438111097935553496651051357366002141003046194694290197393942980032819817674593327779428765640352004585718274304941485645105241925548931425829983029842734200097654536936523060663901831497832182738141457767842962228521069766569394255536720882509635559946903990591368764647612434800308321974201005287427809344579531979604289812525601938785884305012573989858401825887575120369192568695047458892300010314778935874567000195761136587951371667400140680402599714515320786182869554628903180522103408986466401974498271134870138645385997929752154985035532237199555621883584617576822922623058983621540927837564135437436229897471131292762500644578966542037731497185934682175025224782972598297339332545539641954428654368860665055630421780954437043572188826055090302728478413033806148850760938096339118433680763267732492066307553383941564336936660425256199936217996548672720155304716131423377465786479007077020562231422138825471726800052191307065716221184931703330551850933714254041554360550237130779099968898649783485965823328059358524384855940617240239303744304984119464001413527348380351557062780938265731792826804801442229322003786482289912624022713050221619157186488483186971725179625662050533992769516851641876767251781574290794398260918026491960605634278564508699669407295992339713631899055981185726536491203335504808699067340187619773766360033700765696304591602530153316397368948962980644991396445757368545726442251635137600288055143578450424548092847340334350623190168884148772756503271522221132116392348368457782294915513897634994135892721961622826709771425267361331018354830604022567069118084972876504406846479007311728542113233876612718556992086293195126733716514186159755653669336676162955025473368806646085985306477141223068326998705934564572165364005912126469268269757525336502967695767640350712719767857078546621242819337663348161565152216803050088446208652489774276093270077271118453039800462166562228573582287557774318401393106745408339775069455799586014998207051959113689100599590784560191085123773454291749831676103509287865242237766245253241319487288576757169033617622220829531206852585033377347517719423873090159799618704445761703551569329649368290621550050300760315240045025968518855073659134538380636691494711498132280148333987795727381423499197434015789622081245793714948954496869884068047286171867359575247097905169078806448350268199862363840172847704444595321001958372332279202797442812113897156044048583154526089278829365223915241152827465794723067827161844595989859277629327410573770494414229980677621691652256165377580914876433377374874974249903317460761470579617243262914369942247194777920953261168912344321796617007650396142991996797393647058258278276489748203647470779600610887953409004771708033820887705859850658131438116528402674289141605881766688154717191665919797070675632589640993701457932530911624925789016946806213784848915887210786470830180686128924748945460615476442990099540650619649197160006274068610115887957968543523579613460395803741027223966935924459665622736637368763639559593121592950939688465672220588750307682775815050247738362318296554319379878442546005046187927884335543242824867816970945292611413731898966086070004055525749878166748054309841697680902374053364746845729953314331205089741895318248472118487191716522533779236156697299973967008020713701472397781258122825642494312560210118046575261045154998071167605483193242352167182658157084444032825310293985163000889761652177200280141096342278014678410170631358011652223169872683626524012260560793545549841669916823783676294213430834283975882785811542989500220545294887813371589064881641976310463773649958454513292048676440477424865324005771300080393398461015703708448076198404236445855265592574974143438007643363914949945830657875802018174347156099374150693893348329293970373411251447802959103845494210302948988613076050808921509685964628679988375741182120117515667384178574991723808284806940381628924232573588380163044548432407151421403860877166417923794481067241405378863811405660088609619746003692309163943893221987714886264078369099123517802165072660246990879181364262543092543246943077194220561684801051597946496416076488585518056239602771631568926445952361178935759164062533131849779576621689528773315521660666360131246891731092467191123328197128961991979690517370017958765327751327943760199187515650056131955958518175659735652324089189482906566269611551686036840668201308890919401277655923764103054042669905952745316207411681176608359580455625826742667943858525834402047675584284810754575406122810966347050770684526766104715230276720376321116650131290443573690331310621987600487159149612029582365284438383222065737036408853298012390302381096617879656436252464720841075584178166921484019857295050876239999319172951682823912365123705933951819760587445345129535469895658979142966974779088416429476329109443184490379415202402769828423556132921386586815858199210562914991360658295078016634571512182556462128396435974914254596762647857276737834065381115155878531939705274169410433550116402157758754482096349290217276436783546662510555930810358204262505292976045775108643612259258354652590660495686950761721782048754972286608002305200321764596896568913479672811003360193562659468179082743145622260184546126837532257920065522875394552452284365851097103147385442476342120874000826329765742016855503039265128409984869224657726177595254405518190837007358555755720905088188447344100951590674903716907953678958306823006224878558855571893982938230755450493664362117692293060740894991997539824636263111458926037734420779519777812104403089831780227920053434672660375149395522171050309082329224691683508488023164477324342952977584040989797737569841774822445475269117842372985446375141392471275317519436145652937349171109219028695474534907423789515480052617875818196080463221944489400748893490476017477406346386261564226447504495022163068150699204393364774580297523841965656250452195784007007215762296711165184155421280742408570802690245193455432271722803419734009196356863713261356004286467379497580018144917060925829452921651936439230365032854662040668195193610278534512509519895996807839788925997020299896869834357306802944282619819692193000164197681355520061013076403538005135321213600857655281645737593821971792827946395979539426547353584842002772618467809052969159307495150705385878284393899953489641471691415058522072508160188202245961564517511619975750991734987009997132565379523729342187278075914862884471757183162126728669199241232338016443608389672557713906282188186481242295565578619434127135963311197034147952423237006145353001584582211417798158143332157750783969980889174643493152318532394761572441708526014072936826445395494742788234939709460362249620651234727716352495515079242113792368286570918219098263169021818968587803294634087144252507115546765413326289529797909859008984225562580161049231745219618626497340141733484839421018500505333497574131215062029145722892690898203431116518535034190125788148296726735762518396253624078297991188462147848396553780794353455103707494642130279947214671521751331607926172856138266019950962172948497133847322850005542035546100492580618019014979278669290557656881610297725823949921147224946577331489223119961350436871561214420617519585177565083030187722050885860742111657599317749754362961956637148150113916109575529194827010193696800012921686094470827385536559610882846215044627493579691649212709976919871472277380201671648262294503769101780968979031526534382522459640821097961155906425281861287897514133656384828844585532312682023995671435187650862491281109254916221969665831956897415254568768394285286904561224415771451546052068036204594223198068536170881855017593992718178647968479183021738325682788864332080052369614110591485683798386563163649643156937225846128456621525214945787006504251628086125447937614020715958618661776919159385977173532783264403448865634330285746466541119906421667767829735144177107781903779359904623997857461543634179821115019798177655482178823801321688424479677552947299511593012414884810766187680183838236764028806715132933257618993940562682679651191765008080464255115225958115727157376244173544511304478336266081827459783420884271055299544816004155274727580034584444977068889030273410222496237474177330204255614224229105687464689826240763780187268247192055365352213657447558603645853583480206511047818103419059739563408819526398948585165903789913970620691692147987748164870144527416967158207470434112283589853661001706036431323401003767986057447653038968770921889199469797896865723022984220571414741681157800337957898381880543514457069960670480830853352738500970564838091496769553077884492280623202336910931275371396378422866553657196727147742622514271199314411677376630776993168744283759804785076057652187237984142617038170480487668586974063746136095604591727648173759578587079935017224407098860883771762610538223287407321561991289700707190912928387508708894620500294244784690007460450881187648172203197528791644279381610888876990962273574843624397462267227606728645986077093182683169541341885507403104880876817661431375714561268405452307595845250713219237269909045694760693228099853959624663608736151606577459972885007972735827976365260010775023314229054167703023868438662861858316080900133766668569787527034084913065080505804059629388484859756904636699849314574069586569695254842540157776658203363325047477868365639068680226270754900899017635102754489892477037545062608525399300206968085355583115319747555511256916655973570257990601876612335155421741399894240335215075924570495396679191995871256770708082909653340676763577234176523701797504734821626445674042639712418894118556294311294039347937944799805201806206759502279294570374654980872010433753751831034344402176071716542006804406246906150341541248677496158328651972288142290470661555594910398513424822093133514501718293820642817264457161592351675864112303683776764577492949821928508163597847276095239492590343203486586346620091699421091347343397615796969230066758068293430503517251243026267390588204555244437000180240104613256603119413538357917052803436816065130510883705813267199611890902662992177872346154486768485978286302238469660315411884082575885445842453284816485347752788813241604313863141746759093880063115528141150201784223603135502677926313519073381453751996535372811583159453458628950622146438429621102955146013656975397825590119508744743163632878312120442164043474432439395604503561623460653214911925602805559867383133178733817645625860167306208416397248536323890406786259447630113172912590668636614642714905001844848749638252003438105907189694959835027803053300325488167176446959524263544211266373246505915920762226629727291380382774828876163781209108330330686333446675160886363924163239139227999588953094154978150016511729735226067575847444940914355787604554608078537966238034849660649363294241356306219946066106761526593975369634104967920647738162664628571048732908298082152999479523219346234411105853069042746383420995793182987470547736718701099658383229065960377242295260627428915368971031346084116335127824384210566777436334446697544932646967654726523629929838341095273557646377867929344126581071955682176082097104535573716493651724321106172448440404320983270577209625202202648185467955386117141156315274497214426088971174966651157835178875471910391440018072227439770178429217113397561377923888924690510983117274061045479735208689880607769404071064275397984707200077720116968869241711053403953509113681646931455841182665514683790700612829207931930397149041675350820560323497980189144850805922968519930783263633837922393105584076560099735494876042644887988698675816791648571807177217153460091343652567969994788647995858077447769359994964512875926488601636991330413928029486132313852415168900176132027963684441218702159310790985279215691831263730204372691653009459262870121873873804911863370088153822658407888622619115837966596700087974474020525450345792075580973972192516844450617482674949416727889814087911649161590305659783932602243821873842749669815665948940239145223149183828042639502082709316587837552215553475583801978185994385767112665884975979537371252930230801831142863284285102221098522839668559469880714154940440595930145540637675073855596646645262259920922065861229210338588341555152918688006577096533886310434748786916002852568612309921036293481707687033477236834375626496222187828226960850779732308389075752849276429514172872930163129124245954867160560724640211615839815719345573341049171946435795000489333158390383867653204102997604524805191100268593478253570076263011076295167480656764043684245464935877704200260759343920239765008841451843446147101285439990589006132903178382020807670252775154904654840568506492456200969902289888409345355896913650887888470922187008309946371169156284925137737754734074121048544341763956888216176771074572108587565972921277787393536652257379339844191341762868759887747966650931017080439488163557080130216265660881792761052499595880565070804072435630490108822452380391323265121527685168777686985167558439340078161566742801575517481787771969891228616319385732990005533383828476067101996001654313148187817927221293398216695355294884312488977534504356712233406237144589543921142036886884709562235986307173205296740617078556418452161561653907276975922339754984971713041679172564364027997971033664021725508798350576618029815678667460286984909814440403622742053976718383113585267164004177284908195167495528348985729439694252588026580772953528859308221437263792984271545747362252185806609535780415469317337956850605072171246572324575274034208138339521624654383358465610401518829488832532148438497741015600092129105858896834785026452041653317165151526770484565548500681346888878060339465749202151628340611462141465199374727929173083580284991261647036677147095301361525328527430371864744910996169615973754780457536988315637108367914097057832814634301612152635294285717952595093330223441270574704443386781825225448836662476734976261521519262016759486319775166300847351113334170497465678550531036348910065414811047574731796345740542009791892899939862786587868500255576838920910861280476790184445411391955695690572608474742855253107001677066762604111907407564368437960253844208045895490905090920925055177535390202595390923518636914735811213962257673312905513792612798364169192763752640435346570175496354069930581701873584749904853235643393965376177255563596726298220973633915013947926359099055211923571762913995749124432418951065610777745718762966678894511853302368230746757435006337933925145498102575815398214357775142098135886266260250698817791022253982340800564247584998018752540914753410365249112114452764362834208749579222282992186709677201210112851197813822978418748564331253189299555587331897960371299738128913159438392382766616346663874547537842807233481134073684960628904750018163241022379761498579775595435913379295812062567963648780729602600373375975622827209763721175508493148721850500428806517421780232469109023950469167031749803612624990731872827101772903336313601408002735205742534148863518211520700535035411617119928446145157640860397963180922346015801491751257852821614813893732080865126970236594861507824690063417489337984247734147453555793854690837405699268316685543713637804010118930193407005715375503053659953535986466391021262599529672572394002114899281371729867001888843334038239360663992999260412417377901479289195152021048117285161454373213781730121261391278308766767414188589642642364529180692551113928466732947630634112332137998034437600375084635329477672709815327467584206376733677958001640110560702074046970306366346378134554697089035034423211980493139546035659594473027449835066828186503192720697162977504067088424314753485932991113308919427445627097673421696785365900693057119036402157941910183148972553767088572614828325508891956155247643626471415706001675738369628504338568611211282144154212899555552018541939719870309947509567596919521683046535240282324660140594722720500331187027869925373837437255778485099114286497022814676399455205777172343743603964671189886772220749654374456563921743302697293404622123319457210599209292103545705198027287139830602869957175920485357177572634499932395293291354063497673219113701959455775238777206071251209403007064377229959419404125762870533712622885535522998854806455857443880094051055464071099902194115405887103318447952785687959604454987246693663288228113069385094091809256617110766654574865901475566622943715050106654252432789544518396553272793605665445620645781135754839876288754211257502380628733585110635278042629310127516401707877747252415774946661485522615039653078437508745721796811865768985613265736383225358719445743491373912669892958599407197555200565910071475273929394706179341780317678700864252690877507372922042424702737492152798846651232294123648602618969739319801948794126553736874708444517342355784949977165790683540552573299822899023138630373619076413958286296724163756535165801838132046309369530200601274083735893042225106709347075663844060081026338001654695455896660028361233578758301911997967906710319791688454947577440363607691347468473389170880484093852453073315309301250463561217866444240195254595658658523182630406883212753232495881997572326950829713963874339447146811658782716647500993910421551809606638683874139535125232863899267416754389313133244948754324333572479164057134138708731386447451725403223222122419246926780806533624269105582315192350079083944837437612336466807462981369668934603574996725035454117563833203623715663710161839344075205756541605482945598442617448256693040527861352200321198262078486843991331714278694000295358123385405235355937248972495267553262935651885011499111786266063693797731017444019481693282782875667212629914000722891453602592316367681506482083198198448479840104808059794782523128285758817806858001844696301632562508142915493383870770383134697801453379446844812230315553432070387403559482256683858208243682477376166190492429374810918968005529155454152467031492685828773479657899617700992578084831818296388090070474377335831328223564671393977804957951239206685989516008786743976787875562639305988476685983007177790049166024114025921270044050335221870450377369607971735444958002100520233327613155848100238582427809344966498476884697509729486859506555722130210625998182422096843886781793661375445905387343578857791521343422490786753741562678413278629927440040841866241299200066288124746436218384843060629099289425144555540386532798758214368952094745982753794784080854876443101480072963969816056985883897333001338543283585089454356778577013889845310051260553710530503626153422592957430986673540602976934313440611829707469399663318659533726208163383525105923331096473025947320010291643594024476129205924328337202749925473177700218037876001255208054798210239716176063865328989489017360334911132833294201947975142303615431252614576996954615387499458897514971566285661225470367936753328884172943476580717622620124589226659360293438154525963438273853722189116829071384227517700591731041387637507500535567951556862254784843559547344982264395017323389790212186937812862169206648977964966544522068558280328919458734417863220663160480336954610244005731126460927278449616105909728182535182771394319086287419107849519112005767654558803408403990241351989283825218968395942842430239482278256442805482929707179016828409383476785048343777487527630191357061505528646794010200192404540209390036923696191548566085733995665687528982522506833621211484578577524410883376920041408049255875052382285325517930176991886325587717512646673108365240696659056296522178497508890854375741165164593912642613425615199782621143585820932875724998254890495425432587298422277882018983221039878822577266933478843605965248729769613489151739759916618489706788288122278360514800952405241091038928487452949055601095850831306002531466836593335717685395228995928430138720510759396788031041366700512223439037146831253111586582529388926098627679399376917570049769985129655014030362794770191709750275517347095108779856921386148926507913082335390145202590894302198820997214573475014186087843088663830465147141033194678593790470828945499319123988498764834088208589055604162826475453786580153397406007604168924250339924344202533270568914451031977735254799442840852431530926208281951327062542184082916316105865406285273759648459443648433224079841870201264727972651279984855676749823306977818721039436193539218042057672641525939311629105485152578389648549386168879322296602493137559214028207443786039561988946112745421947549136231274256720005301627239747842154363203739720381942956080220112261809815971802122137362911089100128268337682597196105975408500636177346993113999815123820531944775159927507227889998140659446371934990556833675792634113699803191267454283658757120615783525494821660138773848734436477089003294364077809072132281079397873394930256657637229242375804830204239924947592218564604505735372433044532117795681872933462838064214008920479160377663400145216102365620667180232480432435040512499539838525977424483019823667039333165279101579774231229061142574290635732049297731754148020185237907888932906794422493388182419279001364823220560577471152909596216351028264009177163399093741022851599544477501072313247189659894636115450175783226570385944420697834949433972438769774146114504547235683427729089062147541413618188066808581975017844244436429551937868179157224652917978717741595622156993787750808336773532407128680320179192561530713730585975974653668582215527528443010137398311217734581536843934794697475155363959673875072655640687158432791235405192201168104904514366079649732291587876959522726118454154879066415672809221892483941674903712276828755719296732192278030897919653229873198641636196170036189314882597045071754680491197642182854798165659650497824115023953821423514984701298224710697200394371832144919524834902985017259017428742448699107857799689395487379894593517300151808978150674972165986591944905087099167241201966662589389148234221996452912387469253269670588415672058844182455580473206591131664528713288277439561035667982625392946215857706504481163909587061339064652156335978908726074709875338092165807691529029949383185573805342181644687219134517739859632067647063232488713341104644374572218644090255138767511974654445244010187223631727388601939141197802386493381096747171749009683127970576976232446402347971261985317841643459668311922252560072060712161270564464999462386970152394704402057958200034370057850676215829024686689943343097057053995594606240628006389043485959715541154193362040912616736861570214072437246211357887229198168912914186389422924769712829554494706197974213672443916083496276650737263471004391479767778719158124770360829633244329708702333143949312494185758326844519050844450797779174718214832612154181255976555896335405141319799598560094112838346200040530848710401271294562527207479191643710484498937393525536048226366908195527035152998647678682775715970330573913263958713972241974596811206737208536913046415118247968343689037019632093925678802942445620964007230509897528649921649685824420614400727572193924359564630725576908423364912862651313201674902508359664985444445916673459941900094758638512801299076500438023128447512724553355043597760739023333036209678943984458494794517204328020971356652595436902028867227745192528637106737845185537028724543474077139829066539892115791386772873239275278636191892425272914450009493974028222427833712283393251731131106957764176304424356559890311648171925580559390499891890234033111863984539542095824357955300215885252237403559803239343684507742656884871732172195892574853273180008782480065434828312083921833873359443603391908391703765832468751826047584673578402710470448344938998196440081731857953170693806647036602567914345853770780298653646552708560636376662926221850286304889053444432953284188729051175629639498078575397004475782894947507118161353184119819818575753147164103892503211655477142696269271982315298661371804603585523961701945922794151337396901489645949296163135243420472789518959517131218568650746736591301058031334631474929348589457374287697719888484221401297350531072115368151250338596539067177182923730889387063801126229653674747787803905582680114691833156961842530000887415079710943196918983991340977567774360813779164044869980421483852989719307505825768962198414585498910928416767785785930549931483974906158807381083986431214586933178709960395669482827474458717210344421536993474931880936988742964845512305026443505504636347441705492809237126017239990844680018991275753693624252110046531807201800284757948584299683189612307239655685821099946054245481188289733282705077775409420793902473408351208542161565363247220101960016944365281020818149854831286112545107275821573151207841425540204218071589645305958200447701974901190876758410280780133936597259005330122722694554067551973005284111158862480142116413082705072033781887419613750350075231337404024111320452260697963819403277286049338436051305250000151900337289570459776305845560400949067975772072646297281736754614020436543514114987868141362764542426204109329018802061223262502309937653616006636754084523307399238128740144771077023889883357459755684133621560790414379472032621937206206089553709631126786476221070200996975655304769079737722282484355934828711061436585849906518763814379622299445222513946183329105816760790051325199585032154474190709117589714226656108616105929869913136309124002770651018381102222356375852578115051410553264503993099253989707111899817691947411180692170742773764749397851336718336153338172919324165048236681988699536347426822367268092456251144368035151247130808278833932019578493374962318308930897548145980769527491029594697873141249050385027462723256872349240863056305638397296378668391454580833376998818173056969495775597100635378392840145104693660873655692682688555025060741338968757716161971079668579674544434658940291564430563604239626067351383602034552403525213032544649825534249510694107527969309327598383757405281050424367134614873771425736941768126414046734414160556187797219416033547031568428441707330712914218084940256991207039277475345225382652547898196260676352665999149357841380394906145331429376111605204248242974146805222889983480319031131291586935355882284300694891901763917063796803940832769927872314755397655253760827227363886808081071182085701787953874775978964837086635224558085909197787582983828033008873793419221196710584220640464429228679304609886494168491562970248604854734678637339229179283254013641837371997723216978348351461140797538533099247526890993954416952631062288537057547759242553693582111832279974770790203812574804776293041650605133793983880117417541180933340756217731484755263127850907591337737422375182636264696135090914270033626687802244348660211430703074187058418104654332010925839631111872772986503889462583248442877263091305155007127548735295306123948684197299752487147461460763823935472219036873137133770223379092753917462638193725783672787388596267737227986814692833618811378795800928366096611317618342632090944449729323859940141410130447420559500704041944587928714504978561055302361440943546066183256378716797327039671065969561879314617196306621827969489842865465018397985530485917506029263521427964961589329480317001382102459428071257630126782464903396098626653921947073467509562893702231509502050457082248226470525047704928668037636401777278427647168741239698597344729512997166718171820054348002178107220790923153007988437426782141824712944068191414186078932318981551522970878592963825281665317101134867113441478210145890651306564733744156134525332967540095341766210113740995663081334070664095269578984977989805520157283527151375964573746819075290311300989620963512321101551833154419034319448485880140047564930607530115962955097307515107098623834750183215662710159808923463290264032246954028478953400111248341026148739860809574452182444071000080591119178856782897905746819475024985490925496697568671851567995977049404558797348077776950385156803338199259123728257395151501411362563114162888602479200025184561860116218504675054930994795360352274634160385528265529298194505944114624125427519197573532569012405187617320793567090013515369837373312273097647484614203306767698826540559904535544144229522605851438292007845246473822410083753215371390369183621975149060631844814387269645031005909308029395068855632634658801234661772807204580744114879380937049632774339984755653519088029913230736328704582764779875375366538026209172698666019018880647599241214469478519460020493034034789139033879403182997865968683941633364328475294867186562497321695358885826382614854475411348387804871085503317907807954521922046613025961698723064691006608731361303956371860003810182184119665408498042914399996253817984914939666963650319736904713163971032986967974177496812717376060276120741073396549520645446678944908848426071567696337646148896281748232273630367433997601116863250622095831853755456500499326424161070561043699488407397309393477104696068122608818202155362936636525736669821890038090199800472296758374573363134279354163628485341129224295146284158102469743971514560321032392838617003677072465126281363376487466907966113209507453462374685444636206335636232250317350122897139279007852656435515834647837060211350799927249558254234764280001737293186503752620120185831179089160519751283303288250298895639474882281658429781155751454604147737819910594250528620667444081053149623547916512853353372902293610563773622559352076046359274658032617068313034144588524270907982496101410112832592522800453231068966865992593836043727823323912092886157612648398135251683600315737413985052519971720562740604126151211025251494729193746491904085017184419758223314086445754438776666501473779216610957370986853219370156921514296336011345362884806493791578469117041066121503704153212947728718092291128935062413848337182932978131600410771680097102142445121077413140484021775635868081218762692354295544753860943414364288769736360435470185849359278426055800131915816218230552800573058742577899170891832712955681140518691727719796475142025127999499314426132942598342618671480888355153514856569201391562589274767076596214974182562574778220093540193173712481770813869731870330493780153845014419103833172411877783739706207458920491237572431790396804749528670878856711434706983544130958419852436856919790373994661038425989041644479508936426989306406025484559017787999535348183259833220432285860587487735703230799704226199214321912805330913408256025414165640754784379203830235461142914978060565229296404000230239123254203992257984534961701823249070198548797051480833273530218978008886711360650277744599636938544330066864424114356949566219094357516346278272687224457383132130084639244756776064844620574634224825521735149533109145599974115010526685954147393697752204528699344502371672812608027062093605818737720659216610902492185070612746407414792190071526351430953115493004942938994612417339441991886417742494836269212256057038459869875602643324640363438177947043826001679657432547516934279309339827023193488363255932630450614267434130588160334945927700897411409725449231721509969602150182335512425649184406824820721265135855469959548351391458830832611663437007011291075966865639517289466997999317373671444763240049969774233143509932488221127957930875670373393909341868945567543003587369693816110774891036916996248901398211771852576847726070313272270603113586282689364361450684889977524632481466054878068804871600372334257420285671443959248268325977932642281367066413096134218131725699294620823323970463486813999075294653886209685489137714354716932817775946906548717451408927195426375254649343999977711614327969299615536419037442236657156094000747491153832212616148882760397978164641346704003798243341308553459370496171172686897459952787418193602038822930317538249113569892319541999813141872032857686509544394475448643045931495146503468296236571889718786231495850575055265474236911905175400144875085573050394896243232252885663506382082916011267671150691696215599274639991928105419732086137731546008588764712800407009431251911980307002258589480628754489906136071418437832187505429865292713261551255135808508236275309220200209558278600780920114558933470399219305765312899209274239800761323575405899520373299977007645495462356560210742643593479062621272475188242257154903446940070944399322950011844721696308524855915663254621248340155780809729647163226681576999106382245522417017950698839259985233061763198670478407790387145641514868434393879069283460569566730985756462619712206744551415781247876851908611505700226835771109962819031006829673484417291576461096444477015126771755309637994383180376306626880613700769747916107491118404893839813984970733299721193545069265545346594324770413064609858097295857164925247587366734708773986729304242622558354655577298166182526133542565727755927446330178832834808713783068681381470237914885427384895318555694134984289390071448593386642292075685420956890558449701759536824625309647243394641336873693592502097463747850760981467303734650792340780961346583652601970697827841333287550339564353936199059646805247208630772597137194178163511906154200306338702988041566174737008105877509024950782890331805380356119491046060232570593253795777665906210452532500583117735054238057233821403062012234412968445641802618576680935220157595282729117067805100426616898527064538739161894484691524806564919048786848278050534693196246154651098713272214172085061036141852099298111287146779887308013058702115653255144898350157363775875853283436514518390747057953266348277195024228326181878841860052149085442395500666990986794667092599097558837630986736894464645394494211206134761784168053766792079962713341126723358981120042781869955008852922916815890027844893958040407137610757853889462508268036728526012562783951507449168229016226810925970677478948183696116184724845846340684701475697435089569801438215726939968479685056107526205724356820408548299540887452452679739274032967101156275481238845141494509078311603200466688220220359635301703797944155131869902668150537913467741373547642683625476888617983470148471671408213910154844983035045549558201515717578086266601175822545355998453643437427067239732698076622495358503092532074602949269839091359305044077818783289174174885049695491238152455773197021986227413420996455804558602349622320665045725510551724316919436393913710193715453403015808144326582643542688904372739644882278696846888181417269193191568890707085264463267057781668142361151513480779978509769163475994250174491324412281151494705298886299116336314965677660388155255315558367424189473979391913139320161600772381989003841110692449383748850662156109055591234306958844830628596985192126003473926991034881599376040314711516300153320258163822461489671671121899392837661535484571665055681532577873689540385886826471615041712165299432022374148897330975415976758226523106026749671942517683681070809013544109107746194082327211388131352314688409400141019465156614148191358372213678018944676016725728689419092187104117299330982344477857935744628104476886555143117003330766215339194912721968837408953664426589310483211742538841494088633969210717503291451728017928756571805840970839505430097229791464282729947421211942282553152992904393665889477222148581465292140252718777435615803879852696281510317455185388891525475575676678871036841065015525125173082598876653008995516451911083370217601388900362194138222507469860510909438846008383433964669056114927585232211736335735057755276290242955511824417792589259970717000341407597582034872652783025471724993159763099120616904285645270322089496798771500266504997293008193982881850159708730856930829515620680007182046722813794880212698238922623894708292867835334012123690583044841944514510202948706289262229274868517106020301341663220619706692071633969655158930250824974856198958396761786857743661296643846196664449827304625530805420724749697438908344116718112485783991000167450623763410978198214313725870180995563254604655300570124758246940299598775696117204714642446832985314697501333185476830063759105392063534896589732608719515223263648727313527627888831389008296529617331158660953699971922717225261155039743502362803658226067816753076793781692933334692308506422563332114224796725971558462516561841926361285388274588755273455943412853864649566002949955835850297448415291075499741065973770342280656330414143844658116407525048704160322253380596518364928320725262297926716051106190077980856415565998169434731509244618560121749772158631826804603977256252990143877050290997567196463798011194453558146502557707369122647030257098024047621693247580144478303666320192104499375387700537425198273566172646583706473949162464676583541645329443817716253869071195048158402614811912590094975994350403486833914226173868008393498798503109570752055272014622393828896061434018631178212695442911138060614940881830329026827586664915704420929161378667813008454342326027690834978921905123403786711407664151172628325340188433126595390668723914349315120829954649212005857804179259961292777517455414931916235461723051142874658452554661453554421082756650866830040350878298210856686497221492571033374035225931345047994576395843597582191505248963557926170191228386995936130510340234672257840866468862715543718995277772104742653069656951689467870630202151114319440927905831566130997755423134271670368017330053159996796509690463904890221310195337407862741703414561239054165602994592691099591954607528252909736680607588924471807696847069733316789321934439889426710735177450608342106018442919115151453377371212125860683986493621455521058542428104303792318607733693759861424310013364125691738081758812796881059472484839414105359319795583088986670760053575528143162564378718459392516159976092202953945231691580298248308161851755900097105902322205702176316912237182772827736598769030763347615677704151709338640375099118287068342066553355244187047147077780640470169385168190804552337800238818990794197667859113428502203827584378885361608720927303977948835846030064198742848772589003940944141260274677534036996137263770515771874502604695223207128354766549607565759133886974146205961127328005448893435212683645586391759852591622358216385099247940817453801711460252538659006072093605479571622388696921713917324722359675912295931188604465497442111300965946495323340997967796276935089376253402223424269942942404727189233248029519222488159136231697352127957288423985642945731051476624395494545626374359185820293937915364585059578421820480070920582200813034543818136894909708314386419634091471780884867539621931444076820986644965017750688889726797786684839030169110360581238562015111805735829865082572346218893684663315569988697767256022715674397819070680991902767891999810987523741909012886992783877262099577316701067159537346389870911595716498004504652160701450222319333654817605303370411380807610962473826223898242791095951746015250871217461344458256730568340954816331222285053952389335270979251225706467819398427601556217400849041259703125654706413228940986485164872957796974885367343560008380362310642996142787502803562662537136432737343719841292786061871911209045129788902096949330968813164666376874810558694401589754939181847722071235144160390028185882553672049287085027530252946724284278842817354365666877392356838845426648616040656585066033183172336173500266251873317789812742594528450780879206262294772504704943807030992841938235461138072560171085129577695158903974738040487624755175416899985655799528554111198675405994403738463748010635543951049587333989353257534304293931774952640865106620135613028627172962252029452818037702950469726535727148984728400062316772496493105480147087620712010148848872761877500356848905140669842277176316169310201818951738514537114451879535489868513199386813419423742469161070243144385556837368839150914489569870589247808644167356026704578658799189795820513333409578897467285289567927722936378166538832153079576178925026315131019738211656514161054080145157788813412987661539438552754049077653426397334539181152710326669059723016687510942572710209466577594470061015327547970444796067760739622518094822719283512584230336517789660733266406136715241852901948175760232764454743433736230504647363493509184505413072398009397703841338650222838973498547145113301461265980299351421057486030752593246551157268821554250783748663775752765461305467142572135945952343818431790124213018903527884072039619575273767611369720163862090048456629515919715025701421029388961967486313087896370612283114366193125763919009189334234598375261566046940465502999399516237290587909068514488412842883569249363118043927657373807317338293680711497026881292894164067994049816875723677379162907976476549876009835536555827797156542682349833352533568277353909510724496157870394912711170763875726816576826016314585092847071502098954779660343233656531884922073330973487926058278022896524661239624350607934539717275914493450332940345078671926332971768608813025793683325328797232708759264036770532512062321408411319881420496651550974404179741043571768871948585837450882311181302650079745996600109032591913908317934641707600028994792437621185261962059579727770137816366681208322642826743974043396591088176397519698323529318464423417796173079984515686046492602198116819302948709132572573389346986137905223189603400095383369069688434737996543590155013093589312992343479948828290158398986702952989654828310180156380113602129488961277248031014775741840974579115891193964825620782762666848794174845149982255880812374591047223813459909143195625841609695313891142299516990606386666543424382792272460367914011466794989229977054151460250934791426729900626360319649241824917806625494339450939903892839102162500810242414364396362785824850712546178150950441495552579165732575475346803419929684111801457444428682697333310640715437694824609925237957332424474412957753710685493868979865519084036464715339991150284177421374528269687903575647314684632210294291013046934846727895059311196890419061366324665551430000663642388143577047598780706854354257025106243828728361325423494206166034210457331351987403898687905437654305280581058716265162192350324428351484034020572860093286314723167251037675123327597940899862940189608979686648994741665427055993275124352927172850431992336430745317737546798704265885006554597967298789341364701012159225306480869778326714837090292245994548997919250667709114125214440147406504678750431970025501570916750938923404152174977648903451346490618803423130949233410544449983936524569135512529505525182502724654956180196579029805242554143523894174854281830934586243590245119891603453626525885449901962564113950383363711860603221258319396119302790746991739513508184308540964066123654277673788805425275222406300404947726856425402790215740330352375514936512637082935225692279493457238457452781447610826491850587478092368445175686726595097269935378114993868685480793877931909096847688557083918831311560553160725636964774405436047806104374224755763463328943207992824523209643377968158494239518494373063842702698072232960179198068882801237465318032697102634105257348354947380266087797334288426632914344114875232853558471532667553694783908642155420655593067850604165516186881448152868444090146321529279105505339747985632351715698786024520230319865717406716794630242763198043541384361270220963404398926850505648648323912519350357434775031945067332913347718211412538496918062786541712166517696463969955720074570207073310251793686733726956816575889295635926067811030350898625259976340666920000515306194279686406836454513215112094574123327992224495735533638030209648300946395221525627344378417389469261902470343274250515786325664385124042791532726536559549169791330473212060061652157109642089021966819016704654448426751707432865585066278400974204762320395071801009935959304320511745661865612004599461420704618294886000968281481790947571441369654057879249635356976943807937600856695157847863885311637652997434640433964275040380973352558717003376781877872665243525793599891855457527581886833209869574061142621780422110012689616476880718727054987542361051578593618257538373507291792106306717857857896344099246075073046987662756261047724821830004376219479504657606876722296736272948056252820148210371849467974488218965992313738505488512698982996195260196677695130939749753780496904405448636993866200268115320134886191660715579869722950178571990464359675000094726676120509237834906969505797306394047667217840280556114336945707590671484242770361444926984241183039475096313689663376141695706955217900768897733154551710210177211711423808473014542107346662304431573353869727709116828058760788608075183687409778619418731311477897736714366434382016118395917295335462917212957630772703458890894833110551619029038111351694912923625034403511913404003242446523123748614076215055169866756611758595895292764264432564212890209235614354713387286744000884372987133577966415644221812711722880015178605293229175269995682890902840701146980606166153352159289210629663591316720385228545329313467714620238457653884755894008765999880354688617260280350330189647672721798353210868921215229125381175475017371779988657881985137803627436029950960635108027272854735781567925779542371983563453824165323681416532718915304456140937866544643124216748639498339240589225417937144990103767598663528450509235292783230927530310719970219502780683619257439141533556796626478817681167717904942845794269310236591301240685816235375458950909355909357956653964713539412890242724771394668544897099216035990228255117869835008775866640354690689775581989669895171996106037370017246670321447384668653494332461871984042677362356590973866197148509820515111555152957505341656118014951019315107102515872600136099096460877532732887100713230952767837159012017534264176184800737690751418959184513855577202454132957006445809302369224211277573292511958645264660486823139768468362813445164171148141532575973273590552202063282064573876428005461419956230797357644770210415746356847102519137722174357280411107668857476955727917069675859046428787700872292547794454842071217576197207179957718667633801262350742274046697392810450730116802031931773201570089796097781617364806445200695068157246579881689837565919182633533528994943748133223958645835147897364215784821217388746972145798549726505215571815910451926429989888644799563185076581756434723285279401849010627803368863258479450881677309263051541929410593862878575976942043587543873347979007589683221398988173398333318014872612272350386411186504487639306689061194251383505904507794998861510818327615704806338935085740576452425893518070959412772722142620451068462626397662934640939821143857066986622948993721719870496986547815501756369245501949868800333086295963849670616189877611306728462745796012172602970862728593966648765485903570325520266990181514963847669290928494474309581082893877339943874388378252614449853688615802332224832874981531365112617837204962585098862454936240011178058353744188078941312284016559932860653027471811547688255061446623091222576408968743441885970709775885921510419562472060030430014610168358307794920841389310676927966650164882565602240909298807340441505069305797828798049855000116674699678055891584752958482572560170601833010932051629552951959853430321299704550555422472015295797956453290454072155065404491292410780084439636056066864737463355437303867058481001584849610007128938720567134147400341286506167854475239560558545227160466112485687133051686276728287073252100073939394493500440406146930247208639211329998934406167640998549725344574651329761304012617102003380722564675046419655779162849585067843753717483428815414639879092963874314715162514593873587529589179626218406721333271420647291084723634653966180943244841981913201008700104737256700590058014607455515876069254635259428256124705373234692428871451929120220858025520944892303483314918152084330579256289316596935160837962672829222066599088118144849266873455461257511976983493082298413575896565595543591338463785433971601860121007503788344654189857652590369625401515674702635961143608172999791369144002085983231390977631472670484596014726309618317638833139477915894428700207390205880943656324685646172659951693697416399984481145258059879729988562793201596047750532808522233922408486609706611778195216570606021140132018327695666033829028302693690405807150147883607040922476842733672384085226176314597784548565810918627494925416686459115915541025020048005668808873868951147846974639143314407790939704952156858075384203675710917183711136527253832257550831941040449344825795985325066943288881988759169601214919414250604092875978921110833198436588386793918025364427602889507299744888054833368949101150402826957761648692463068474394647025755154061298152473253020652331187404523723026422006339819070927015458044905087445107383835784606612371835097947070549407912386248780275604822615663360791351612461775041606267177944287131318264035943071188267994758463288767410229097256176876193319951545395051204866007908893596858392108059227400399435485311486900943575923110721913543294958782543179590705700733368637540824206301517736068789277231753941522224260597971758259030196357085903789922035271631304836695524925952403951467747596375388550284966767050747004689542677714494472213794068714389896642516678688044472223560360522117646155488041282825882307664708640905814135431193851990585701037259871552682493635897492576106545420471659625716528530618920262195036969233669274655143694109527898264777625204808386121703132626435703231832985151080993351774694424329243195271739052817690015522688282002320096499089125138512802787100238925372692376832037879228714395676066323313674630098655938290984749036849698473435522103024416495703301551460825989537709317999735330723638922710637455039485634733376835221041114573359082178580015714481467728853200989117671103322925375689381471370411846130404130464072578532154990219714823200005034142287309047255720265094128883785312495915523905124391275277418553596215128547492305942799062907757085829504772192340536797910469023123635621078775294007824914427734297311826679945185886919919202904223085317802796026461260293024274136408430111818047981258098543375090045116403468801677008045251629453175130294113146071697209029453996530644079790023858942416408162065168160044793234087606901109239396972073033106057753222979211327091894271670817498784731415985588988090989508818864826226459945217863905029963798188541131249189867185572586867706867358144644934026064595406032317018754213189426198150752740330567970337514502631107836123255668441082794819190824869339681444552499640846536769632240314265046475911868415416874846115812756477347634788164298805287964222850196592754747811709813124811417074308435522774490177612642892953248333488438288272592809602783337562699327805632673712907509728261085009314537898989494509006444607557750836356089225926434261461559513735615800834842986830337352914654552164993896210714491455918658033531976320879813430084836059004352966154422345926058535601707911748704749645844957898860793055343127329610732007791138418912109773372622602706872080244268211973207499097920059071429466225029063686879306646965566882142025145107357079883823809068740146917998959648971967491890266893019546916972150332941349276344243354341908772826613110180351992170129939461502963533402716221504025286667714640915920290762064252797561306608590119163299149463957257246718609144772318502178436935960304910692696310943168756469992805109995458749497119398011562972466757805768880946743381706389957680787137988824257713178627187117443268597493198447518723844234118059918582710187840275070612230920246808938521648645233673848144133493025601710096360418842835068707466886950797795030554614818708307168288109384381880294352829948549238614617242898520016307461033867170042361956737377174409633172124955492303273310118762278855218628387434944046466819306609975694479353651959582391856997498684988903895682377618309040903162716779254509324364969231847006475628429383235525614069950082650935615292294272694227385886239797133430891296957257204067817666839097014480149826070430640066075551019303656593745916943103265849443986273688975378150356902949768912709798258685465255624202222412348953845675123610993148526702503318369282379556430552824703779111403057093150089810794546525533215303280390142810544761795634561130209108247426749080438320751655034826856003005115969176242034523289392993147809399607694934019143543425364619849351429567514195491102883254427344266622649377432975627349456036560273523349753515927102967918333763974183108656356998205561949023471225437442835209615090782925128513166770022906537602938121348924940148231004120322656624562386369988433553624591419274159286499708158598561032122667726642878207519059025707444628039177006378761788314673760027662541577601970953859689960819384591512113492190375172819616768052288731295453324350819134265881760056480156237357394243747163043285899369768165937553496776904930671351427051776194747138461041383848477125624798762950132273647534019021673060995921095111314899797932892403696006763275069373692919667521229595297284146474658745779193649332759462542897850142369178269483616587423899033181663107472755156566749886553979610597709169862342610785496537052312727663915257224877131427811468684831584392755325544727774315230237635433032602150527022048889278950333548414628156808442625848008046404845241864604855055246189493347006645220687139029671012323626771477504093531650008251896613091992826943058794105460479405978799574420995582192148440655761374929573952391224149203180729818172850635989759211836120157730693572595074179102789650313669412711493458296944315010784923096917125154439471530913317570088102690147227070546769555271918803451480020455608070534466300537676397109627077500711130887591692202684206129781690424015535966173697493931840020192777695946233957990764315308691978425873607034673240435218322564157489623943496478492527613239288137688400958180518456574648267915706167474922279874538491536383842134998344557694713643534335418184010832672474045064045360406838449389185893202845358134242278054689704588588312269344915925478515623919534980369548579728587169446908732142466242308177385932966792491178118780443177984732685037648211207699172319509806370605096951354304050407950617493107792723166399837043145768623609066751409762633667494383799749918713548804345002291877007742682027585043756243653731783461670251308031277940360383844556006547184758833519381295537851579766579820446479977280702630018542099639227684907925458008620695910709646788221889744937424601550360643495485816279890912317543838035804310989730556997254779201135971263125738220239052648872864922114698622327065124245867769944682896445564901188315426321379643277053210416615923126848289545313095738366554739799539556580545482413963288298497121854452554087550226093564875167941170340037897495398954236486833641241961418599208295142664738833642253543028890028246333464317610049323495597948842338876791158776754560904671581093325344143059709490166056956168303233051615940973669543170058149711372433373781027120503702699400405926694343834297731331820579775245388152163322127925269937717968998586443365953897830381172648793393621852071341094201930181365764125244791183225806418878532336809594086103188333663659569206132831942392486203401523137658347663271042258813747719411038259601926768668518870271262008510775190147533731381710130112288465409006441939782619693781709869357198498319921895075647082068822816982897273166726366422931389605790345459118864448866583247047857786753300681866123955245137194337293402419231933441926709654761042470326764068591450814620962332319077305399436406683343007017417036251011671084239704068300522683531365041140191393461771020973842722210613487303361802128407704382359499303881326053852955869447947186200336840437079328279984374586760647975650328919370833962039065417307244845976757999755060845556093095282691113296352254550111012802304268286511102747975149412663415538198695153593382254781333599790767032312027964846721515833805595643048494767103967920332458224814016804365153983196119018820602557999920660862077901812933994581346826556374312920354433634349303891365423406953064276225921373445798727917809018761746179466734327390536950287352221528126968295673079017871243676972203421290798510159207341868211568564591052698647429833080446077335298344452389386283579519897171010460367817696699652676349498895109695903932476703841849896558287695346672969200739513279111264646985031042256546514276241675328223007437339002409991975820683205248937341348779215050061119011111457229483991010370756624769141454185406022642246764031461275582217928908531374927764352993940323567607137797715014075276504917709914680188177303088451693348213207208617294537516055610723040017778002856024316823147449094132242386161058980249041503381677306973752283791906530158992869744517085238641018174993919022131721892742453351708909300484167717996250683402713023959314438682914973103206381391774058035284354167002584242902060310021255781104142204716674283912406931210985568081162517872167800020655572036319487712205045766096825331998588018495468913613358366957687596995162706205074470242780047621963296520897785337454513874055138084984324449869205796291546531631968519498052381746056585367749422793939637670271212935035589232068851330641400252306517890849638943348286865338691925331498670524669947146357906771922780462441161011127243963525957640446625308404773759852878144746469757423450950643955646733145013914190549183425389654240268243505753037755090272327695708026956641508421843010386444855050283266001180249480854731148178071341198943819752827320587926626272941806439453269103018103549263678810039705056050524462228236566274340747103733045748211839909561172202618552710960904940684900829945825137446293007278847622800612178858146915346083620093884737023839237147696828135465889578793314147357221591360092010947076153277930826943967609514159512501760670366934049385443436765626236906157087285413640180871366410365000106492647696030584777120640196234790844380449555194042920165959136168518639877830033879440947842568919269100919942205969373082785255783759942721972870219226887282151223463219371113844312072563981355436770804812965341210965055051271554876198915590612785047197995949191063589967469851870307911364371498599966409378409560602869087882461948822544428307741182410420444059739926743649355982417855867051881147557218127052894215262373646976141999315561971200132464866349514157487610724385071415539714591899457774660475366223377749209679429436848706949320543972685871256672722331486791478972501686011627707267169963697391641416790969880800353647967778556140706078477601173450560226895001681698429856263228670976222654775844682425223526870528583041754669835888421900986811154331730062533357797050005877726152331671959425770311784312417288092490343999155309613491989205180917857193622100405367005514086703212612318891954707066927160518057169362590015298096172875711147570344287055607686042553312855179750576911795564051850114790811146737457803244548274865361312074300177459488322548487253093024828623461580464717246862655265954757572730312462149212745955376408424011804843520152641266265131799975022709522923320409559817841850664865014705822820009741061654062059167711357347948292388616393221801002730580760861139570598538557307468958743072443547659774468778822985399754347431137565107212657129585982220285569452162348248657967482548235369504016828080239200222101248198693452087210261772315751072452136674967509354161195877274361306362614876683688334065083825495091888350248459160681064667898905860125975339196404431782598333528288850910551719937252839845084654761474175766238900967218232817181306728688945406942069467231419512476381041909289802579725419921455761350880657235828113199226685403488658945625406792189514477285767937661997112276017940283528332696941172910879564349028839657661206620836726442147772191049276882955478094323570636758099141893932052181743631078307246069255316111987429584469785189176717514478001423374011660723375777515598138725000132902505882118487408120109336022904869793520390604201853707450489874478914818394824151371467562019652682693576615686802043020764827307376988456557957323734657054917941986186918478151091788325257584161709295367162194885756091051833412773393418621471119232346506881006419292981250159931044539902537680873083127653205058824892193263976829223601410099045727209006071925994613845471757897696128989992786637143705852512455628098414996749515287445796875506405290836529186655161847591338400964377118696999940994970804370852353240696618830535853349126587429413114478394845211572627737886905298378196137165708272095656626148595541217479212739251047918866705779063097999941132109738043378648886116490583660583114798963212123507092903285209285409088078301019359097998502506862201889531043780203464134789457946557396182798723742082786660807142367305596386906217785232837619043739058381154297473094225531527894221996848673446887336081582847955865606640309064141878039644966772148576583066483155292477093939047942887430583264270880489653223235226810224180967539759537696424506530283677351560596104954270845394085362885536434677182599645072602518356803701088860947270732391055290764588599605032290245497777333634592025605976085600946252232253440691617141060055644043823658934665371898382025880748846786951673989103079296234838146937391019185659106023386273894396503106693727786550366154129363448438885462056150922249849515823324527583747084581601785740325064780723200438462059290406549470797743905750901288535413009933146571804664795807152766506831813789676698676167159441984129251856946804665753976512083626112954722129627759953431886226456593609853386944438563144654772687482307958054701395714390588780287271340539071830431232300968779090200806894715468206727763317269217056909830755013252388855441523463570191076436530359520862556772475263902639478633807594586662332898333436297985962079541089710690825715867974282992395018615353343302654726673767836876218505634237383354538197866008398401454679610531221721685590508037784771012261924136474064906967822199439578246047661097579854271651346225175306445951706549036886051107605216992403463773675171830482709244266624453254718995183844921025071216538396798335953535113240223621620468598482116641063799715904751441152207680664982480936172909206893622585067852889214684630926951453107735175956360291010922018890937541808939384023756189821442483193486232612399585792427993990751614963871211146207663094734613746254603497565105401370305168257242886885734885600634164209320990254237457685487680911163693281448654124234534657880920879011781966021368104369566437097235805987209371060594151983874654473231923659484416463879437408229098878022715252758814640295339152958502762448670727994237447104395638321722719206985945027548794372889932942443154963361193033634322203683329420207588818413240236724136392009772519838053460010362886144764813340687365560137113188224484662389503140015541931244714940866857214213988251704316059703620681995864755533951666985572758310703918372530284742021295935603807465941328933417264235208313612516545098345648430528215688983973818225827418644393299668496763879616439350219342846270004949350879383340561197253943918812167547924096996695722322842134119602194739755542168304003051067197204310813532588866755894754468592783606239312821203116468993480149326447475402608548487430505869903136914754753028297240241999285826739352417292945054740230908340461208111077185215138998733301910569878450733186006986740636831211893896474967988944780652052161680202800970860078178223239435953543191285876837833351036664833129440432571782939923234270050836095639371848033862062620288516857058663742367899028933592096536982338186905790573662131308202371963701820355605228152288420940238871771510502320234370077047542597074170362717041336393930029256597897791018194249163845860604730230255480352554617758376521097695025328834696743981977439533796266134308494359880049734936078117054356343439743797058889260174340185123236890230431606437779881658076814710722211721891750626449456796089860319021779272550988748146498685039381950291743800516291602804170212246782266155151673438485578888800545496679483028430971496764991867724834634389484015551031740907488198138512812181260300261510887414199737096925723336667881306057576705535060587383986541082518660426047564841108467311028805345467815758230737342549882788043134635151530179971269888644411610148941810729910266490276371819970820308502333646389460769682080520054489296008679786657508415424233209277342190040743938322634099225370261401137996056997321593221583384751191500239951053886218009876842129489364716384378599185370283161985004507304902678533556764077526519258849777083500752950606310271509176317574911147837976682926470331897938086718586202753238254553075936483767031105423586191993886838375005986552898178902682871449513628329890028874539233905812569680096617555082062788035421769949862210906605551035850342727493577368348861344712900137877623530536890649201948819661292205326388089571061238001242554303381547205845719360397559062400581402992782974067445242515813421763873321569194490510660364855814311750404355178280695826513341496182271692946084009701955585486826664307904395719389466112463215306871324244466659932595710790884883792370841633066949631133397114770120762643191318433252072506854865034664801329162414004436693613534451335113422181261411966960404565729280492413816425413252445304078128471137594118874426068246625933449052044457880027030855609725579146278616107512538949724250499197439006693391244501687268275542097058313287541707440983953733611883253416459657141987675597978051775344998554761197580097216691134259591664040858800778192716204017814655509144105078765119679711953596560114306737739077219381525584382042279021787919148036794640624810871446128942207137132472505886592013033393712154575455553832100679048257934972141414394750549593504027249038861183445482490276693740299123685772038464776678480708711215605560721492079792282528984159643194448039175728380107175749736407591478252368678128242303237373023636514160426826057959581374666467654590480523345418677893029766637621753934733582261825745448741980668113813764084076496931832128150691551046540194397568287947079692389315105077892036772717902453154320549891728660932366362460264176695696848240063426757737096874633197095027702761582831425299203512648771450867438716322540230197484210730014739055902929240267276850927323715451158937805828244981131182279291990134201185941610805075467710708600288338658411281364167385110772211903528021084307958621186631345753112448735664114236568814728316318133643463419290931694206021542665952218542141489972423425273877897908049936517046168796469428248729116730458459069777965093820853718742613366573026463484815513078282202563955425978391448016898741702571739290792759622362994339562278539266843288881331450421775685440606950320926302992421676471591950868860734747627659117384899960978139713332349584888028370413678975054715567931246838134093307165165732431875201164599279689628885212575613178613835209237816533151395219284599949773222580336198630523100963728394258896251069668923995744230854227902461641455908301559942384089633745748361248250707159103272340435138576623182425140704290778460100647464581544623682599748618781660294758458211011439264662618162985564777543982477965508503442449064192188656302565722974318831766615637272306564979379953472365674411717238342917342298280784780329261839801924440384900680574404193895731509066494652846689139475468914707352138939515442166009959157329399489856570707890629328251555375216383860202546558118032827735585630184726833715286464432875032863780883585001692607014054274722276607832242934977343600583295717718579800927558714920874286385739991193599930421943889330015011643279984936003956365542652322241746255797932153006233225029902624018130236119998821667734104671258554585576093806252456160716404486139515224690146106283849049212833152502110693963063213823529068332768328186612468261813820713811503189880194798068608308984667968264471016354564378578657265538231740017527327110074460022061502343020186925525098724154250485645951878793884266169696591547874106802790413378150543702141063231044197082322935204338424666722460495840032971228939939663147627447773879985087959499775417380263673328423452033039890483902796660452766452035652373101391776833670584020037169447823094620229154005372288324750734569349869680187765169134580027791231701883462050320376979038800180130616080322130886070992657602765184488634365340255673491511120499756312303282591858294800247921822688009043130070072492676094030058473691348867154797441974488098569624341948718607615105152452952690747004965530083488427496416090909589490306060570345073886821606985140486234442813659665181690785821881647283030559070611948638837061473346339276555415017723851907304011090142814416067011593731235673265802901461104831097524771155058579083211957945352361460262137446428165723636661700889898846939826714931447950467703871935052309443253637937544783211160525712237440867706514368326826292377298807453876079451481969520208559692182190888609080293562777611579396147197217104071100335598939333827218658391538479131171530953507289519181018768027010588384544547838220639533035472252822723931197460114439407651536155189513512651995142975526960074856471066540490324443528183064896812899571211515710820723233311780444871547924515004426656287071835675994464877126172350159567610457379739496466343716357073203353272458707140045922848417884769403970343916263650074897829241465492768942295358761220817049397891477742460846952289582648120196181246196371146053031336039962452693244510752736353454556710877723200707908052381127415721373437649430826109300404219257857524383229497288085379343289320167134131497649040450233655056266836785479025722963580785719613748832696446540535327422407027206513645384185028174792265969727551618220102092447949851416364222939611206073840417729838828571300977243383490742879892867703391072988993704084676030363067482331589690053464114202428855034932101507133636220603897784639080251582961755896310698996601566473706323638489889509782077795445231886201781492653208381074564245525769075663705737432729084056419557822263410081681013641927785857784552873242204612594022635201436884003295731834937535045609367310537252594401257073556790297996258425416988285569620569990615436906114192662391159748252069596238895181471099483012640807913584444834335128475193247995081048806376425757809404201528296144242191705017798866483406913721496280741994304631824267787137855728260988768138177966467823949105934733679139385978499987122104089292344431875650478157245305493687185157656258014423496598718138430659361772748758383949152981693685265135830270979656124148062999463227773738595503032321346408026307527312997137632303200245833499384010059310952251882919713486144639350212128541714897468028877304065736546789515506758113000964075582634522090063723171878737695224096004107227702420871603333485862787567745887957507417757249909270102166648747209233303236786999536701419916695478738137855355618159712503449414472931961899198768275444659659595142893717037303244265061455755770256468227445555771404992824566649394713794287314383211654907602680216767520056824521342826328577388791728757712249669545349390539156751188592932571633171414654096395583283789524890113220321693280545823363367977998220926873148796780396977645632652693099162392242355863567901301137188937760947558340655439035723848918245842463455454267159465315815875171223795544545097468656432704618470621149507413093945346720072264134422552728602429193806357299051003319203816385816630192103795763466205186151020484651468324665485956086966773606027297568128283294076748610438097339151594821372738694400365497517502545206935732842035839803170593956995109221622569653831008661729687006760330093366976943073578936295561537209175326495987859324993809087166190376329930843146480278161676925588181588111745656505194987204802849426939340263311718598469551262788619738709830223630033803947668049883639830411838022981334958106395059177692709381598133659475400918189983318779478021274703824431893672366188075956273359980115148071790090624976629660621944405531473631464363771559263430532009279976783686281818029271855931710873757234249884862667685174731765859980501715751593122760494673012437273548762853861923646314566808363204407818853991568394405196266978437861879735728574221549946864608093020395314629120394895717480220260350555677430033364422940225647259195886479299623174677605344556345795510852370195568417628370738234209750073531557974486925635868066622065063790321323068918255394618622512797604672214533262183150235323175338380187829831759122922496906447680378788186259511022551370507932194707583560947081839449702109757369345063874976594034796539531947106843236190876098008788788077568764406478700180870285691348357056882558769572301928397816358878485515387646253561669139726014480548552458751958892520750970091135394843902918273730654410350649763029069133550746802716659022654275534674471448052053606435567530506370635156744172059400659710287766627554793773576254255305054734695702865965613464760268444018066398643253164808052233067281369599408403456928370558476856713351521619372229373336569849480250559635921937748552499527377338029522016999579822351211016282395958401500684646687585652415735021978168881266391236659060665731543595939590584162029098562343016769691005092767276202449441245402724189203571647429510297028857495968967657830413776498961575834734382304477418757719839778586143585461233101353171598170969732345148464947411051706173059783890847709833935676179224078023094100294626603178940266359076938538646820100217657220692339925737070587741855908443190394095937225710073025728483428965880365624353141044822436701492433312342241379809345856531868144990603997993820227669488202898234509415670325818996785697152702500460843429258043967399317205849329446226142949179730226480022613011232068796249805913371374611762675576029683740972074784468358827943833622605589240789341616605526809572345267383227428575093528104891769370406759810819920463589527192824916964875158245885540093693524753557111252493113612776667093140441846147162852597571871601463433521854926522715194337418233115881802357935842583552823527408696727876795423464212508990587236278955157569426593982839447918249218578301044621506270356329551011683781814224734257415287416019867460569473662644231440208964260916202959421899574995099136039155846145970774402491580423175486285745081944735369849466069531152926141788128702817699557982142951263289000913666413311604575280860111609663999718062077925411784402284647729795698536843770115735979862149131548891713070487556552115062306293151280007308980921312858525701977071280930068676469317911824458795851007154690806786788237735679227602626172161272325751125723219528279052834197536311259253893297325489766486681728493471814391845160324479124210462735478421817725518069506869868703739168567390450670266173020603983426152458923700388508656390857709414816604801572608434563916793331593525186611355271050312117920896621459049530732842592170347037744815353184141093855125297241332175201797022433624730076734463636225061116307958894459535787640450998402026585161421527762931051341437459983803634401848435576724119702139072523536191740415374358929475031266290531769034736734483008522364805206773624875872228251072248990904703584705573571346454024033208402268018410138540721341933304883115476115260707360226248627290083685659262824370144881020936573961023972627928981103478253532073248953812239585519700829626754188995994540453484108634386116062279360525217653706440547265822017671149594865875947993647386787647443898404912274019061493301618566970959090252793736263027719280274102451130535975759450537253492381266317003922190828732499777519425249634496862020212500134638695766334873876874818154150857724701708145775448425538145950182533573202712050430990344320091357266478183646544460334987349899094558275002955563901108240802853187850336189549298426148058922763355717550842802875462575461633222784908988043866845977699273617059641191764841910945632852883907797906483957026626473122572036219264142101743945381422290564709180221118137112261557595697240571362713535018071360590857408382697187185524642577199636398052217389666716758927337860641791930586950831263963865534345654472083826931759772015620427462851342003083881820528113049031802981733506198403004967849783185351005049986237467755824678057125914742145243210113755594955275190590796764011281143398020473194392565093070970753296374026405384964400553471290563260627730199077682985663254840991152272064757302753788648893619450193651900837596292160840864750335424960703427050875607432572106531447472465902246190334837740388063203558287445851312397974224825901605649878373242736059890956621122067715430291248990795786700477167761831404565380287731856073469457050205234704553135918797995824044990178084960130782197174970232669152665601386704471326990765313522078028513983510014198290361962723010737001412627813257163116159044455638222460884299995154829125668521070593267951081126516946920740405054258406784967779014126289816194179508287314909626665978671539724316733702151132447387130843672999028230626714148381935253633589254889442313822012113195359419266711648190733512432407989442828232956383235459849503712475375135034878106435471916700539531385433941739684073349663100775546169080553954579006855186524713940013382886842091584925645206461246115448597914337806435417852750231971552469302461999812887832198418447217268800447407745737620393366501485945204272814645144655600009761373828260519766979002949368345502771139048041677578454965642060643718177949283185102857494197852977602033417299580969978322619547183309458786928025387147657931866179158508156020885345425877570903296213087745948831567438257000445707745417397604675256982552196894711699165395570566727358322605450784861972753064468446314815833593389069665148878188684627471235662345202771436126531581481359602286282306562920987322351354370496752421967473775493886289719173234756548506296028302942809630190222789992136033615499240528325446887511269299577426721832132750269891359260779510409411414136362393951903469360205985206960453303487377895983049871197906343174189849237516303170183638574986425176628339713166773697219821485110585709228609814176784498152801090732863718206161919340814813997266371705390598601300640516647979992052310142938289228524555308201489778621912168276677721222376191914561397599358619503080326572831541745110601000409598736330218223043842717442132144164256550321792859216015333176345167502431923577372748826317863612805388735798010335896903158588598323169830500862338145986331759198428449862465437608036177363109932223854049484075284088080531202779331935674129011006582359126338760058002949940792966040504627223183575220330429403362796240771332446532535285493581347984116508582335656578715976482565382592247733904939871160135671907243576250464352570489628982628538733437682047166360889591680523046267621530298705846214381883320897237022199127922850274396996571848948342837772660207956463257117001108337902694849650587824325982964973494949749911981188776819868581216030356984865757414074991580484697185820322454796641401706843021949655272966841704238249369007703759212702553642101391076230439694748559973906945202416262542277444474560495691551147574626536315661789057441909721931329158684957904839273106234358248743714035228686684522438402449994850256042877873137234901279632726474103890266238659289199370603772307485066382258773325428105860963283011004302427197090621761512140306091906537922429112080952794636289222962108956376258662536916557690763208566366098332673884038446459102874359504353244523924713273339476016289086475493067806682725641744583731291584597720532128399679909155512219900169918595427725194602714472587629130951430821576886269239443256315731181838937180945254401642644363878331555228517113144885069547688590836304503847474615515601708826702833994680898025896941439009888617316927863736093615949535790064631551562101943809532161444397360403615030205742060108971445452279926529292369000668258035333880157844051823925951131310778813301209516633071136116895471408122904250002143892182570706958275540960893372892837601474915834930549776370456050432991183891261857705345178446851128859966359292310799513325159200502238293138586822819143542785986350302331056048865674316424177644973655315563607535719641845273401572943697910747643159841641083760714812788413726619190896768991218065700945988189861366269305388937240760064855031562471210083676320497981646288961211699103889698873095658119262562177358234247091671962962475983909652991876577642969597785559960716014788697031242104399522650529473795869291419710462499341248919719698563683754207505015869841363978827921044037407814174665117703376712211994842052396573579812968896538723416838353373267274914441092279853683071135934804969324133964006037328185947727099109824979924792203471718105879437317338499078453217313800819258000285324340104964561244722145179991252414147931529355137766857717508136208912858343351230893808571976295411082567742088371817710032269870323996689979504374783994984283681626140481170286262217393315088074374710844266560724217718679696281805779996555199186635989690819478451608399313318810912951826375787277782943084549159997058437057778940320622950496382531595357747964234365051576461198060295477434570294264391233435560555770315697871251904985159364658249576448915964534496237543273572107685796260321349498395378775713158791466625164137785316158252826640101451221815732834107309956013970946567277886257011446070497528271264996178257522576836640580497141772234728322871566402044372728955162017823333171234869700433221437106862303829232956909111967997317367859332635576130632058309725974199262765609532600923375431749058269488648516402330116510778899899395555182924280983885112228788748613718913196483957712322198998339884858474939650700846183301333339482398663973482407245306693032415380973473651561847923702148828716809097211121901346128023430997681867624268099176811166571043292073320196991479060827616206338541756665521604046093948627545030591764906742223790233914290075036017687533602722532682454948694404642927731101059183817995014835531785437117739261131493933173396937342314314750419641772518150992923386438841944111601178210784278792149840050060648808858254274655767165933898964524213973768867940115620374371462532052581377003859446664566843907067454472350884567382669563496918592550638635444274436976179706726640659139971007018859163101098120825124327725782824927071196472750160525904511714193525843532158728053547651958315798264392952561557205005434759136364064291883860671989919683393109680168723759493447997459590040200117691912955913682768870825548367064621060712381617612820819950586382055973221352848819968075204492106629361835513326984851351240666596575999285044891608058435782542276266792676951373211147733538552310224182696239470104591634911612597405270133726267844698032796177992527293620633211043827974282726185046304001128062139397240946531549736255381224241082999595240574736443610921237227360828151182737773387899946214101374638572255616164386478967429841443891869131320108012999291606184863437198396094594350173194476125389792522587560453783414272380744253665280111973945550591451257470009980462240284793876498403011815324532489027585783389804418761545647180905849671922894704853344220356905744079353975093930016631070727488863524017252815581394880236077648777844206622869035852888063724587393475901319978703939745813764815833471611193851265486532380514311331122400609815197779641795939072886183956556720543917001446863515365237949879943700214225764706739258594932177323308112734920022527512532351353999307160136555679584490574559693925629224572551546822857334204884239038071509341586816736446252071367210839057836897984012813683064388206489832801334849363684903666221875179318589272661562669054917102781383649040796296995762351356979716688240298033960790279349671466665929624125519447075415857055090109753307895920381181166756954295965303928357758286542889240163226519829459320407942992506016532182827159678812443385142308125736283925650854115318730493372465582907188546157698819061199635894048141571778150430315643790942593682642675568070534027000533913217426277428038849525147452601148999895110771871560314311181236367526790112187815289470978903393040578905536946058906936420107835981027060785317797176591148298609082108119198444315928852684973234089703700444749271087449653784147166749743756734725204503568150510096547113614895409541433724994516029948986584910568240096118262061159715772054190604379868275237034563542675425878434325996670046873192310018014169890789830268519948122356729937723669482647880019847082491469829820924532259480143354603496810975761677437069872908638712908673820367497829614895852003217395821596669012771385686796086655030190232610883494166628421023430938331256103339689649989027876584749127240587553170952420523749224392222990080018294554374844661372376035390783578556846050872211799981887736680921682739171120464329321482199413766297505220044228007889893408616335870943615917640013874163263995722181329086270233071270996954051330588190271640007575727947335309779850969464237767049758935846503795977991596528859689214021258621109436331044163927808161108582897867758210740071661668310991734717763032795288690794839361713715442120997518170967345222699190360561786009336851111904788815960023013268465233282200760901498973531756234102289102237040653074673934544393785343194472310973737995375661026924508558636189212880488208678473235780282328194502271810825457032528355731472609786194032969435584685536822165384901752909471170285308399132737725291719460015743614855177020524004787171089590982093131133004826952312515363162995896617206184817371468464552565592073504818069094176229347957155321791321018507199001450203115962127182085217468135033150693255968731029814554447601840211450126220880341525794731415449578089330227061124450507684251364727143391052768295720836362065635468656862820185461224788992885794373800605760802955177337980923747012431104848090938253614039024724534187774007530637126466323317784761147432213788366846534377214956999700095052132972109782349358695840169600968915814902128433898791108058326212487748122031173747254060986587768199622598424877423851977613153275029521706156394206194065776496954374703143272315129611151236065299583406112810909134165574850667863822103487051379668298311377044306827126705712865623007232771165446763134293473458852146582689938386774019770447405903274607888078714053761238892762395100927973632175222685029584685471038925909771172829967287292076145596006555711017078524914569353424045856759928691241577437041248611326247538995447035127681681851640813022800068757323186058773268532232911076211468777795508853880618773134813079838148054834437374398697705286392881158147221139891634552125625559497411979295786371417324006596432044171390829071098800517415362107141287571291693028777886340112133799687876054041321021649986279193332787948838082862562153340028998912314056074691870121498756490024512878720139209667091557669875105682319148978159233787844323122716711277914577618933287986771926698106234999883810855968553598643930784336146730606780991122374109889790441151352444245774156205839480464473670268207769012470967461296883925870815025352675340225812482904466275642449487624814874366599813559424594242189120647330516029650460724632793750980563643359593048297811081753652996185738876523479085100406028556446723235962992306541167026308519322274055680311481069276383305855372021821498067933455068193588248443696120621468537080204314915057706386564659708962659561913432219110858642560103708625034724868551418252442860278923636130415183974341916431603400511365418495649681826737679016995612474977564255780270332922807907522362293251746382586878830558618031700783553081462001953305233388961398059371416838546680537101316741797906999294749733549999110557518558736922427283995333869237959130672523005608614473057354439133616007960810754442529011210829689475503046682140912199056615594205315850313366338326572633007714135096230275906227366325556037786751427431757456832765703795179874512084967753371796316535372784312558998849545994032066709337606356083685458065497769780793838745556884917850068920019868698554356015643815761853631670626515733280217982082330374062608852431996145754203482198806311000384162666073685843100615102218146552575700739274734882241667530933358567641234287829271152843595147685522302485334213282128679175659300621675170989306043011529977999217345716899385088937482606879545875095869124491315974819010134845411468554567111985224922801297249494686878638791652145171796922561640549447855988658367668778927251522423113738644133856751287564985853772392408551914140477444468132236713183408505348262924843807458889655871976543383203497809325152934787477047942574665397542437660320287394396398372477852107333485125553873084395666997566392416146269680513168780128884709854225778428742766578716950396278976778113453172218338103263872340321278651961056160741871378914066585881865716355286381962452976659015005933301893322298942306712953198232838709837434408102408092228201577241685524897858516093063231009398524628614479007941919993004999955080307132733158139755519446267289817914407531171249191118754337448493351791841293184688418752470746508667942728330772054380841411087581384714835809122889511395888414062499643998119303059002573151838621542755352863664166032991526927165608353742400846808749414854443209071323346901973802506394646799250379915581103251793983077591143440770243414123314242574816290014571755363331572458051004853499878922209184694864372529384489993330393952000023811932622015213075630214766838689703717140101260080054500583505498768135187371952877323046439489292017031984685262659848447240181801200940840488438104083590554827761559019190365225829730416710228701398366183511769070830902676981009873056472979058201694186349523758873932006832536053142004412463241142084253802811384793640252154024053829480486178092395467692080632916931952226201945668856477606474364260284055152678452013053664924053394887656805246378268056238275868859537053681545823814169804268904560481489870334289016082560556985336838939937169711602673528311801828468020456300383292124560147678520173343926036296188563734704669477425142941687992692415492894380037669669627501180997786432476640144614811944709966649887489653767308324509428654085493064488397225977616274350123576646178850041929939920769304822871482116839819827222256306221377566058131790067675661051114689535830092792937986037682751142650797496762521996288772001431737418322795529736266108169521544944387505805249818626980992848807004992488017614616160488472690014118325887647174581080513592819793145089853582146668878651512362928639199058978402577852478233660602850300102258851385989093522866993512708440455453954488606025517919316108975410460124840320070249720190017976236556810855964447760891818206250581856371316640893725273063540466467635271451879513890307980606382197740233509122871026606002148517864192119882806339799500412418358992955755119958668919303291353707044488868516343038645248174690007782070483859499252763729181847799941482377191301429561599227402810069558528356377350160044087558675107012985894488660672863172348609559643430705280087607479570237469181296860721232298797767586448699724865032955007081269874222287999834360494192069288255540412382828762300159259195323344750372222308072079675919459739031129593561646213096122283046391770250252664455935792750429233028200718521593275347696131267964293987395534360132075783508021283050617299365588336586562391040813781919356606232883343085714791750119627227821950635831912533054976011421662769578597683853217214096475560993381169869496723584409368580338962067468383731146318025839040221254440724653577744867879731153374526785697096658501490048419729015004318597045312395139763344905795150727439143895553051955248710011127189169550500624350172327594634156566098458382753247858547280559156556176827651126586915246719729117356744914604029343845253880810466072515976348269762963693465330246140898911576781130317734856479219677679309167530936780000527215967030349544130466983084162843990466215031296648156372969662056837707169339994531018336281253945377929474035715138792350332866713676441259087600011804152468018038448477017776549472192819094162404432244439660667356460052596213863962794943837049290293574807099710365421184583049336940072936638426583912550057342758967290146160303886590173651284042609880880383292766214282187725824050751217236262776095442054421792997530851313709567931045069469315107965006730113988071421061517588387529234939239815590953598824269038055737623164103984516734155522201713838696865230210294653840349716648168845964135630734453093789222210318403691897991466552665541702128083723258903185691723598872192373684705099334176903519502867209387464953938889760286850416227465721221830126516879851791300103307167246946930898798229294548015200666073176141843480495106450127881315142739535566163747280754294132112858524365816905943825496136330862777412024754692922680281531679486077444152897075957856002342540721145984667892768424808829934063576842654262370100026297441909122630094619651296631115909008773433177955107294145412872347799024768644469535805217382367609861231144729207339765908770677190260354258878507840110786628509936554521575605957726557425725050879989146005134032597946525103512158293756451428374480782470448190623244786474225706810166794131568273158655770118962177648314054395079216177353417447539655619767494808042850906701310555553027181727255605068671651227901761807319446788827356448098474620868258258552230874510361655478128352232371181681503029143710365848602001016857933670885790131744306072076939262389662447467846030619729498783833225998844463155870225067989117821514780984138875703421419934302202868194999782647668272958241306793843055432969612305474344844927464314835954889952915076819128562932518983408622196209526007453541133416483083716626740431190943201130896564013973160114834442452200505561177718673542063992951654084196447743205161408270619838735691306992223766725511891246875046853214061027110586406256774579283317516207350423286499695712277542888052229017068089200408116400449740375413754480666396541568003157196324826736047986532641029290610452448300193636921885317616973653805449512824221342148362306944905981742127795946046194733232119762378800698822231623045669959390493206239614772535853763509450638422153668065544008139186153606305023508823807629153000324366389543696502140752324732927339739313570795061977854390556137386985553136829260670538599300448707099509282472249153338388535960808028995608892781219472962677906141326539680206152348000646446000441545126524785049207102886393131367518002424015814007667177514634368133424513942111120426577163245649841228420915529696545992994990270726858441244372389348215776229636160812918875320064876539727900657447244204707223111601379316031719107501327209987735569905963875157448705574278844870532411624221933188785074181991854717050942355922025795240605553265616693003631086662372776330874039973167487644047539975300277676883384823290066480013594098005222855517345881711024261790916972628231912423722575606161865826790099865985757428716826510229972159114476190205916260918167360848688914529721913861950132493641762259266886519972491542827939133367833988413207304672122657875423323514621888812151117065579103070235030315980228498839687030403103578600498765383380659784536404558763088601096640933405830139616301008126173369046589593509559245885476350022536238394955409707692129489670760519098689177012808035873193741610781734156057759251738709748463817932304080476028325104864065003839887028526989514600223225225389710049472988644618565492919510601743970138139630025196320962228018358145099728579123113640248461883223820150851600566047628054348446907893962893815186362239892938929085144720482282739691892143639142511991254221448287255176321584405171733812456478948724657542076743450207116405633831860617745121031715735511800404656999236268603735801747548622519276757794840907544956787392736267379048486730455682688936078314932917484463606917147754412021566559157977411799412007876634748475708691356303585123986834260295879943209376460989023877876992428365363256710464188920234882908555614577346383531530201070669315134337134225653185109254191428650390657251364926848808365095582834062217027584824520115024247425982781397261697283360078511391635520478640063515369638160355574484836725996322461059036826065642494986037847582498506071736512933984058960764593381759595030365982453058983073284629199886336598157645823483937480414309439635961978329562904731138576372519027940549287503476103787192262128469631091413947146948251484636478140205408812632313097097979732857119006362431152061548516288745426175179012265377778344925592795630855743920422539036803649727175828113715657508463872458349771172386436653948389283043797714523436091260713142405639260745686591972792977021570695547172656091714292750234080502774655323637718508695466096140919836545140006581536499751553896432602862917133484100211244990176610497915287554292258300215977224876542859578785385901267002917143522385161016523909499540278736817447878279254063602888863669128262271310048192630442231047677328232405601168244244380906744986325373525952017037379854979859627729945733665901609261313320180948880802466303160057189730647299613686097718132021950478033946985059089340368948802137004078484732368452113352567885002203426141901956521126923933399017874352299619401636402803729453412698289233903430501889495323530553170898625965254042194992751330739491785163664921260976534353511991146786001460735002240403615206495650075792480155471212127242356143346561145056170085096659143876781860739231364564787138179064117646048814176012559696118283871376948721229182988584348337701527895816161100139143735611297599052308817640642622301079079262203553373715832780136098085180887074848834893230469129121512700090773317536838332375659641163794345034975028712737875035126809831990853324790936647700804670613205473350885590992710524035399129017574980158648249536585491641072181907619224277341037065543456884288949047604904810306324773692933358483366052505551545845891603777394765712920377510020531822319972740300627091827182107919179451894504585711456617677182272075065343699198621429711124130635755910544510162395081571705616527040039429362088916328565538784054036108710019073066164715188308314257029783952918914081021884351924550318406614143196851414115795901134417258678940257393078216612464011060836381232236630385979350300515450928985391225387068237035114860877706829939654397233222006513982902185241988033765213704896301424774528437763700448322969674092390643873721565546225518659993152905783558573138507865868536970756726566597594510291449212879621045643809227029946758083327263122883258797194901394093323170170132080383250986456448174025449594258263800126001360470061161705187943400440729072319081874692723836631838769495399316164852431148164996043751889239135549307190842492263987411809573733420607069558849687089520536013858956330408478749247814392746338432734623622814538304291971831237729519603314678197327399223391595915363992790424741889550493031364383052272417753009130447045516449524536043713535169337211448244257336698899178561279293978734931328321299701587651236074781955510774670004815677071192147403739113670575723693842261110430057832967075655180626439427919173825024590675166809468985186357782221671903445423513803243836020691937658765918239535687287811583193712542240123884064940472809609131839896221449696468861422757733057095482785849923316036128268824388486990373073959299340548607718506631593471425360605075339323736165051207445252129126547086255411389127390519652045969005742932215693106092605555503643700937314270471649213558489287520047955843644616163694504215841178436966533071731190768690609189641483039423335790956845785133292029998091904364018640296421272361825876209443916335780866555272530644827900245608796575710923040262026903211062570200663300033439746846180330884259481040148683004685033741112292837323152245829173519581000166918473901168151269204927913842085060219323095756995325978790424641218039908853695244175166382411052217695774251784277416158058489654428261522478680484746335094453555369321959029705053533046235708864750183571303050292269895269095806658237445723986521988555670544197549939837589082826921007762785967457464340143353305390168965505227526687538573699662169709066445324973023665733493159092760144772578967703099268702949962427998081176016756896805946056580612542367647657857876553234016049645334479143257626283363484238298537169319678732169460427024003742185089089117739464068031438326230537020615768924944845982576195335167452998721888497172202363329468186485733932139610793829463807233372739384948737778864560720662178885775761716666213369913893491448863151870640159560589708909184007010034946784567144400898435409949897345800564197999529549952747158870523807059525956587283417923876930240124356313580327105936007696212266989914081031349521120117502161079430960454119121620899916216464635183516555973936935927323918706654735133504473296953170065412380148000993357186210920794846175418558708970958123678475256986718049775335276625716312712152402231941472674171273005280598839248856351880825249492983554284247090101786973713157896578808211564929729530168661643190571203389761820119381179195967954482970964845038204680250570587808468065223916112059184928470032547249285062287314002097350774809692391315385906664918659243435796517649038575393252483431097629321558424523487452523159635625027341722033934154773422979467026893423808745281260825244283237951139797454393726713759113619440896776446865828633583922978288530348080841563873390004562209647099273289491175178718443155237129867519131049688506011580057314314625548278026928057028702929428102489723142977184981971042561408838394086584736155755413130114781513965400600359365596755925435250848105418083206458257141910473335709021979003331104513753928830150797363663255736557114120869843606893598761156826246151039914664887658867535668427889505536924558361499552999993547012420530866915956937352739682605086360433312890470994894186479636649234700718283214904074747556574563261491066055099200445242383918562217657806319369449209545470213531927603457676841455761049756141342017049473333193418625670099790740448941831052230228258046371373787767459295908291820756488537099421312611243292360197085662489490460226081132035270355490771440519098475021861735763069243022663224394974694687321482739907341086800066842341516072790109636627571991576533437542501923047099998117785712770242957954065893600514942758229268620988937145256756749702553490828940467562990181493643072439489243539092406511925473055805288930848841189927193775345038275960711350109314779410524542441521289044920678420363717238542136853693405304737602443574737298347573008355700524311237910635688375223377372224276357324472006607984721955746562621102949798022019918034215581794037811020947570803175160686515001048803870017453705709205511475257361114874482928097578799656019999808853539565210410468884229739368491572076541900968168259427470428781007726587647818256165115928517243970876438417312406681523248049050152200000640574742047871907669315187176876430169852862866438030415812321660700751609191582114535083816351410116452175576862283496671473511863621473115341973222424374218465250769813609167658455345742160431777605710838194492223943640205297896119267614686898965867207452298986400476606510861394893674742537982266884541908059961285892831390514709375076858135951649950409082246842458907429214780110605834391975120331314894183697214372354008978900618424497801733727893254320959671869521206524768086181347758090520586213689050339123583567147388981862157007488806869268949614318508501908132109866271290024741466652987518513109416043463264686226642477667544311035882354653690517673886452012167788447472981688886451729322511381935703121478429650747160708826550920445853101055446679121214036476985292944086716333855716833275119700746161907743547489189552886663741517087200363415947273128161690576309060594023202244074253966838636502252643507485158639125709416258483518044653503631774602940420724286497543476046071199079396437389009998367134737642041655932621110836457411369121464980776059454892321187013762822628596960193997562959127441112198026002460841930623805622601180944782470527113860018488568984512448403981202564288778613286444928748295352770308427062240280736085437141886048773378755213813933089224747974796259766939832510846803611368958517320577521179124041688883832586111832264171370170274769730814139948622304923005392177969510169584415224927129220498833312234148720570274619904531534495491212924158201203990107429166328648472069473440720133256847623153306325004762102317336804009788612437424788379775175488363015148529048616102463694975112304943155062147043365341561999611942893523247835286498591395202303191069270869806511928865250134726891689518159119225885155660348774672961083674924597945913135158833971161738852529924886965486435507761263562429277772867592737297370624462691885708579104437103425288962209017701550093106370393570632004892211480363077452632807033151300668831143314164003325809210728527977068048084584647413240088147952718287959735514530342751259336840736175810642375013161314413377159003448922588727769476343163377621701135530562748601706947726124876330758257528039477914031611121293625413819392188191159945379962851750884224864082420394976465439742455590949790321721464640397170888159836226942478751421269616539145540297344838564845056068780868108582647032012406244624971157208209164423485848085010912757986067983599315009647371247823384883580187989227609779187282890723251715515053220197573069151431214481845125206027733261607054973799581769850938531559653627437269792024290873512542175211032817753233270871351986034183878938625907818247610439912256901232012961217509885746974781704053265282918284329087370439074726582881317212022266673525008854576720010194018079808061984447019832191239330230350895869097957630029790982683351397710311366985209495108459202626297346997228647499369353061882509561696686058302102301475141387708135244053181378407416956950234810195900527163621768889340519628192286920220285529791143812564678796586789010626161695235148567421134543244320669609895895211005508054390167178440226225418291135544766919784505108199375902252235528949184761955388130775784145358136857443456951960917177718072997119112836830403291484014010364076996177195491524508844572006774243650429378422628021112328332849562158994837870887190113054142954721089911368337148148747120164402629945692138376051555656885385357835328799229712652609180357006727826139741672570849338706475858815358041314475077072929209212940988134743716226168747093084776977915900301361902603358551666206742013031722343023850336162719087994782590277645074568490817722319956158259219803636270327387827870602950993789327939028660037403918689835456319812450429462004781597795915289410361390337446428139630257855132298307588712297130902140460726964677990074915637730826043921685853051435986259774710621232050090292818412563828353172362864762450984682567279113530319274871363176644045854196679086208757896473022391764785460233211950585649509770453349995199161122977611047489014820099625661917929387695437801297784304154840593774811013185140353153359297670202080460194237624333717791718007639138268291229094397387792297396015827748816025627545303909480169982754806189127769632254889574950258304543816714199940110141127905734673283452753087039929649155331954362382313225691151251304146388692788266151070132991577435944957029930402938520087489519585304017832256770739532405174886188317016085727915417728338978179272032616150296521205650276344339875035010092627994363824341657711216574070784978281220531482590955319514612313222812822399246124732173129062122123309796575606453042215116657148537796113977605771332677511495284613475346326808966605580172356797202567428466091763631799896341874386083559104835464522915934943797334046742566329600970451256441762897605186138766996532900196075172419403125069479225353572759394486033040224508988459755949747687828904198300282395929415825408812177975480610371539687409859525199526591200263924186502107117528723783925339527169113700827340064800302717775145412424063037741493662256946664146541012879160797828066144443692537027024637650901928321034542833480150653797783540922236240596833447617698995535603339678705102533043315705230179341991302912647676054382579813284221396570251330630879205706579963847574603001802772343773286007296636868834969733650531932414384231950303716424698771234998066063182699240043214750944518243869255946257813579002448808588709512558776735744886856506718053736659121528809968270479469178730371976596091908241420724306577989443499230647519550239981831346456219758070650698846693959153075987007341683086573740582935131752325492562298899621448549762557724002841810503768765708108231850748537133835063856343116862934969381418884359196467913948507979388553099007354589214810261801878597270612355731719007004165951197070016632700826302471384959571221734854685648987535079043048928943680901315367139034679590803791151128570524182144458794535195779854300580237249748189475303534219490793434901724391011063998667513125454663523386963173124132478869597875296771437180429063062760861485611424828723232970832275460387237475657493187501279239485486130575015214422012203102807217171469478738711767678445997951909316828221970252044787102594653393493314889768897183351061428039003205180936239126803875738283247414903890636188943803386610402679286770566819855986041387131860401899009616591341204755902680816179636142784431757385178954828319713055662777079740674697991549025385948387032485712602191688371325076796400424201480162087924387950409835137089639624695927293930138583246110675021066211386095208771258384840362163746487203318700117396572998053625786120784637239720061652716747920351301130636554497411362789348277187811812608639601981354780896806420447589792785068340752865564138123263251160548920284724179111419695597413379081800189835721886151517047828761576947721676988501686656745630982419379859637562601205212551924225350625887236717400028227295474519042829022318546402589532158352040017530874471270006231707642794142011777944286600861069700106924476532415581294446474910719346443877087660640874750159832499873498416811256172265327559299162382299126824136302541591055903646281235914272828968443925036574516368086915914392152376974512504508741149097852325918994457826894860262099819804277138127342765070404746609305531265722459018867643180431395821905109377223590852981944045477830227132582930663867015003949650167506160843653532607442760227635152861615783129355142229434867481847153531696938104021159764652149911896912458303182755132228317057992665905510869775492837968897703647560837305333326798827993310592652396610936652365950217001474067319295881587809587618838540982721547045593348755893927680921946059467524795178837818793576936588278012669385277153084653429257090012379103617380596197460276939399117346637266860625256211635413864077822995242231650699639750373329067244838915793321125611959057810572365718798113201992064494518741718850717507388103103705321095295580272418970636927280304857068014264114383411252103109986055733514479551321465355138562801077633171051928195878619406836434161066230746464213304950961239892005918815715270512890250182558808835946463449677880901867440214567688178853583567799544553056649937673710202493085162892571220027020073070891045840445226241491867156529696577227246650239502769970099277852106455682937914947936498901357809939976353813299288889042019359127647879915775891567814314285034433339930033612324171033799571043187930737764319363100662032729638142080874667766537005101152945550437018550506547948089760862731828715712191507948948591519565063436747254928481702724373391273080105434129970064788983611167856357874275901618039219022647436054872678874748222088587622461211818907618334644524453577204265235606106179121461846018698466083518947730326475798915359315942029263395784416537405305821336808155099613700554033127184646477959490244665311324760654588429049951950281193377631369143042081748259004143393972233985183110851413346739154380796044977938615971253800710177567395472407657587199037225931903687698096448537615133578537975201470616397200146900362721428319230609674714930906317200005424555602799139400482323388953216803050465443646241670134907443838503046148524406312586664751541891579410693736545216344148204043437086397763189386236814501802414233556368924506536168023158714465617773730870944439820910850243247255235584712014405331811940828704617304190558997342415219556582047884903318898586184885541653635216922562838459614579298403648832950753279615781634519932832654506175919666482290599034778244462993669791007214587456069707098272869965229366700681132749161716473548293703078142108323071217557817536524097654612045078606188985939155686519394952883358191763473715376356127017248152646170353371840537359544134231269519378316984316591722246310520513411418365699498276834144299624465492844368893132867759065508912681402026037382002451973088865501945361250588486391981317677746251098288365971295185215981354027149463639514300273066729172844401802188648256876021692422295108577493622349902241790251172871923301000111455984296580385671288296688312554696408684013039935238560439547580907883739315632686017131373183556040384004243736087454404325869659066182441180606030574305429026304737789779653853261292620739133419775641204293601195830158905037940326467892788022644421140201941266753219406554621641335140262724711128689962639725825593356464494095665952764568633960080680978990195290039723440729916778391994069394279762748889178905990573491956545399001106317276568820585208986400025241081648819609227725169178536947913570272558283320111218535747666891374888417247583485617009633471209799244808489479862677762103453031081459711750015286261539746819465882534526396360765697375998637725127710495446397685862220408134840602124440982684389554246099620348223071552287746811866609790537400858981122320677440825007424500466671506779755157428000507152455597842602684299497302928756697816917444893246389817494113042564421014842392306912738624987106898096377072449668264857099701113499671641663013989639820290970167865529979918178977199788861158605535056546964008137826149888890133223335799687245266523894380405183439126877117618249538006391856700731095591837837867332078054526638204439140152198853054703247980991576762385861929604762821593786921938762381952878859506957018554309867680161855204899933795703321845830434563938415694206692527842076771702112860246553271049968339546160731164092888062028418627475479977647716872672729982079560640684489493474397330741970628198525212271883394293892056969693335123473958588133979037404787591591748557029437211480407892722776977838431691305168272339306870388220908098581002646483586668610724422949468279132977252667861956369776742204804607535074993316939659104215318147277746990729784747395055043793825260537613269525687592979946999558573887378468377875385819152346605882738313544797157311114942760864257697085723275672466841774227369084092430677974563869660387099853424108481944672690461230932900153802529798383275724432039897418794542234558614302534103862571172054903102932471584114436844800638903386636233821659896157078302429079467561826353813386282822526630325979643439638406383961190889856892749463196653903676469644824356275218185670049200362898294922018726138947060646521177773390142754206999580852225682270070429677485585851158524217121109353474391065451086722871048628810280160714824257536244930835939104316328200838671313346909299922377083669445105593715239348327254590221783455260980480773122157938590191720889410196388933623037875591455673969846563879328292309552905448505234616616879195305765314347440099039077729427190218046996294991376861641859452962239422475170166454708481880067313761591211328405783557119453477909438428277213365560717696640646869895804856826977605562453045085162809506292799721397334555424065991518004484415064451833492729338652064195262885603762881735666314197265287962169770112578757599221476716327855955228910451320619134909881114834281475286874339512137922534168282601268729143337822353427391838960501599947355233678596138600913567413297841398189422177554412119585175475809762470724619475446091162891458024045605395603011528157193172250611162203233815934760506007988921081549534892420140761119742168147569598410993179917368516036962698356366348395997530824109990719953318323268718282242067190680461763636346821745761710120723656972131088681263943783875581180278961892402079343396090535347713527030967500444804676582972683349869975905424651484765007845996064326931935620548475737959860715814035944805149395358282218848794475607695176554076092831333918196036786348722473608891202317416917570131754440961372680603781971752547733202220073926132591345644398828470993687933061307961591023441614551607671582116797351737772309109884723571955803836644524960175026220541066238550692480828615329017221764545813265859909593571857660795209787968666535198952304043278519151374110811778302167262248791996146385301158868844671268207861566045823789531843159609803754557750167090066269334136967602064502806906100925694824204928488927157713996650392024494236293402313028247475509099084677352372149714210882920182765851162114567925603713243527870486366246232130030280246090179195986803359505290212055800359660442469350090847364276803694971935481045403250175777911502991066139926383128039603430831691165154557472292593180052664077585865100473435147150307502194229236044876277265666181620091302613105615342023341924487867953278388965562444222050424630993139379005729096793717635629407407570043698356041415063311073749841569302770773901478256202257984984579411475847793513060831208960048030093832730155732868173377607748596604293118379592995590000806513384258725851571808684127378589129497741828282850124132006872818463296673791400899560062754184685366527298246094393991776150690343314691735791524755704823143271278420054558360917190783656036550759050938448477216450137062111957727687677877866766031844070356155246081553148408902828908517980349383681405880858916694068890298472773480423558501298318755783286510014329949122429342341024463463453186795864604310137648882976929884723940947796015078561724486975091940666781756563503947829120117183355058951223553605894446493384735101780331001300628674994181304001785862659328252316195075519283916283218919369090917512233420302560369323224667157658996481207311479476259006985198204001738546007394879611341031337063892919739713762664583115512294636307804786565313896015395556898579519406687161787804838791606485105044149598631222160858603834776102545279551524044355067446551163982801041626487193817560604365920835591895843272411336642879787797131808094927113701595569436312953474535432707368897851936844124364294528235853236773599870479522027173809597147813067060323511713810995949299198608583556000071565373764694231598107801281803696031801181665942381877831995196813645107633596794911921716473306624499508012458865196562020778159481874885987083348742221417651302019932650994157874575648060135285997896753253163641780980180091214016782609070109241307521983660720887029640936042449379463322876403730849392563404584595841143360334625226977987821380645056438355521714102198596822984693060680590985866888614463185666058722628542555513468336194261843342808831554806059073947189028046760941291015274829561606185294347455912773701279076951751488433808884582665844297910951218761637425301382004441061078719207368120141213775004425002003869242607327903103207574878208270789730242923770360514671668854672207966607213201052785475448489435354035989679664715595322687221532898267142688496942584515749389620575633433694836165972420702688413572480452128061295885919262128582612159629328048898015483366122394541046003867411727794344229814034755053101131623936367002987041686266179853789618957453947413242756959790186073603553021712958205600586918017243754743974946138233444016070668683335133860626276454690077395524686579606798102364198366420690201802114022763464827793413348138242006454773492295139256715676002548601660411117964823452356766672727012412594681625576009045289084811852681585628868826219946229758263811574210050874514529299554029894348526859293269322924928271121113274044622690777135957136282441710343108316247391528827634997109858195761047601741529998397267745369802382699420828998159307079446101046589711386217009224117348579270760624034479311185993908294362295784787431969897900473533223062834676301206622374651942244135100842752358494653307715229840703561718513767431597633555061863000215842489464434521185417092475055704669363309347583107430341526951326640804314006595307350127681809016476026509205357222036393845943161161264669169608886845315331927538942856496086927099782698656664281093473100603717497180119476783048278563795510794490598634996957564713700065590819362194722117324488813662827513751507510500518309796139216532633014381491092311818782435692953600924942321539811007319087331996376430317714474826932405797700719840396518606130920295280979445603661899455955838504690056122254658428417693712602701701632656639705189777641657183440518653312215165679808876654890737582253515829635380043780209547307433624165965073072842333267541939902130592728153512405067951798899861198419271271792006467314299425772427562850925935398694563362651470945762666688203852835464409332068909970911504754808305836859997999192991629831575882964232872387672986717130773093563073157797581619003491122014931165108088861414043217597263829336852985078054102169716544451714950922386700516285419720352266107204784804159537845558029256015315372677892369599442297327328635991259820692467948515872582722145729253961309292282277508373227353357273249453998323857149537720010305268137938875206888504233782141768125377531588300362176963900799236177071510061806379040825111413534064785954524562638928589046846482820230256679216703841926828395307952850505361722107607574818600058490635695788598394901312166378316457960906453857725070865347969471745087258290220506033368276163583938324660191217080858068999715273774597608643168572855090640933160873286709040984854571654183529072524836379890728707957886058253909247384001988363184798457528780000341910062896833181027592660091105586576759450633076767558976293499781854924831459280491701898911530299723612607953058372951260306572669625843414320240336270627644289662192487000203588173132803470938086931206510790514439771706903814962165588980303564612674597358537429345374498173574832044161543767756940748341641369228137907079789050019574970437228036461126491777574303432823245582071839492459089967444223143547984698709038410521492085723873606408576361577053292242292065118117083281212289521031000960928955018778810861938007844442934404048776674068339606420754970867679898604994885062936722372926267048681218660477634249945695576221449731141369911668563741154714082786105024396818633038861712835180308476876775512274582225635239376748367512742750682529436214218602982223199348374478543335471069510560548339965208555334349490409353013171344880247312860863962158495135523904153678413322249965111487062127920153233959091017732231655129531800549902409050940699236306700546512077677862324271035914150610889356819433070658655202162203159653273412881056032300087570926970415501146435674758279340280164494055766492985840685866088866861409201045540103858095163249823265315941309451963015521755568992474326702381190257506175456489689953184207950392942591847764659270351559636681049156513386558470441278137564611711669039878380881355122695688534492576106882673840954999734657673149857578331912327303483299564537496567971697905520423748586994166549021625673239024354088842130054996479052452451071671778153243299926213622987146217099544045028879510133169617457606204848470270827526905777583989170168299442515625652821635137026838706065897521842491264526997244818774331392658562051144859909468017753997217002979567119762172004250385929074471588454785387944326726601336494086111163913542872830105155017971563553987608853953073402656062659960281799841877091986796052475421370014592883226619716273513296531784001319159252183628382339476075933811095214073318942512869019234004266119430276427724271170263738093072935362706935038569311866456040274351022767236597496589050269216605385432635986738727881398184587642960265212073090824481078047990070117852120628828964046831118558747512806622457163503790934946071393496619451891037692305236810847218358168663719810117620371026487166680868934002625162388338154837320626151165249538977630028717914864902534049495836974992300436645105950630586760943668750777832577162470029939423163702323182151110518341586415850388691254765960441072110111184845638711584752305828203301014761047683017874744224726014578395799759020887041874156261968060983576900260004736359092613654433334335077260160595460785938479642707475726644586080612545142289576998401368050425364009704381841870295770718626895396591111667572715478362120874926939138460142393377851114983263721519191859048593234304275001096387033603451241316419330564935122019570103621777659570129957537861843751102323717311057731971373564362488282947125088045857534096107722233031989554267816388618382809341160416250120990944728020502422932488520453227096070785260768836178814606062354093302059780523207936294563932958198087349769120423699106780687986869900525318668324192782864437864152289666412140600429544672056768779438071459878615873614042801885997416959536330960674605158705323408242481212561170047231641295819061976031070483019956634982893721835805202492614078050137671199051669603207579755029605343196606105471619358874253941822279734920460143081920515162903100870091359709013681639971313396782515959809757181211245135383693670871518203317375786319689308359725328685925738179084630349734656161968793400316877459130745983213785933714209827129482898137186409440352035350405686564366630834256552539405465395977393827080204259640945035140343440986046237320217021522056972690103265134552634896091263235878606020530595960735167359825196355857214545834485509527421174230390916049248644501184282391408977458734723624094920906862568520768407589277499329949761866297037512029691736932130557837438887703517045685916948564973095569539935396372390424672785651961071764702370445212083409575909931090211011022261256946576469414168641983900198907343666251435610408358167853589924552515034441579596467336242650258955936326418952784994851973447245027532558462519976449488721109790375468314756662237002876847140377410396156477051909394628517834487353068456089630653028411916254683832465124792936940951281550153018513227793945404311218762308911824443458536510506288525943279175758464074847486372111909046844088752823716587900096602363789350047723878076129605555569041643632214377448285938969534715059756112075221495930564838616203678302690311887443509648334997625779520170109756374188242102286837497271970287962233326625341777581739551887595094688384492216136241504961962298352306025218186221641057281393875833646075703725764268604240632867095630955304073719646077968072445432710454853363066502376552140376332802782008644359072183769351783999929516719081222631120531441897270300144823309531883821262524801191334520774561130001249656155241836123607883730081983147843554743682869021814590872829524509722507581969884144040188924441155299428395355511265403117767367979159672150165209633269156829124064673862671513973415442285863377174213496618064218532497887431427471934617019530876227625007793284856213000662880470382675628278813764113600685497677965315955847268926425913359095948643856105456293171097680456247934302169327108760009126142888340417037518746522171686753418450813181054247911308858835635925475903437144209439089386552969918394389363227109645183343564696316577091850180649414132456867683967443144202699307810092392348245819260231219287037869773762735319111476946133825140372886631193482767451702806604758765256131462182584339831418665060568368008693589009937235881805126236328856034912323940533578111637688334540951265349993180609588827866967957711459543062392142974210703611717040683692672116464411535666260916732554103120118422750322638307169211825725673593845715137260373028419848172476075526028126959777227347782687260915300680214685171491946397685789214839314274502489877159197238698840934365625698594693588652376436271625351087421575304236049870742132108058561649919464445022984138761999896884962644927277792026303406556060755263076021559397181602545847770842019588535454782564175972080108852347378920897061980795541271330605519816320238302862958665508617729766702523123654940421172709693015461418758304318819184017451731469375749684553073450466522059252422082049962295586916998867922525203094241978295502006760574516322650361936048902544235394577526881990987233547808877969228159163649250254875295072457044450086932937542991583403912501379660219641578737828443519198299216120403949600923190945836497691849967522351670880572442992245132767385944901022984520306732467003121916639408898619073662501260920533321892656046118639083206991266263854576711097667652698437262466290993316674511804762023569510428203490544499529888483581802323628223974425467846190896717621408057813937070136996855566137856898604810475939220718948985722340701043934130487158149330303604436130988644438826903109636482791333199170376960776892050904493739770466105028784741076961770060652564739607554019231620696984771589128921772596839589507827419637148634235245113600817247502072705913634573450578721354450929666465196278154556642841589078656987747295681170788966968488399231999162813892192724032777243421448438449829125022940000255828034260972886635321929347912829755992691154344300488879078866421921640865937388708268272018074643633207909597242552907032054306562120681446229521687680760297626547002891833821240380235531721889964221083255451999478437116731029320236603869874801048870430111242778909973724777750877329407958749342158672849755140335445417971242527994927603855469360161963809705917315668635167533121462353287429988894169777720323364297238382154210408417150706455464641182036211259090477561364726636485951547646260103306884901617038118758606594823642139805776419517703641852139535286841873421193623033897916412775422354746485202934456121561590066366544624416311214408508686918537346377107146651307788165089554339656228498075886307646531791440687160772075856259351281022338472991033288156723404416630379463822580785583859794872350155515290715361225891385168979944881549232382649717239763486372840344897896931201871740751319653530507005309998012667380878563859463165757839457611597903571340693622007653742917225860152413734059024105897527467633730834976000184418516706268453843814199511459196855914925868119761109641689086050613730572299213141112498342675054550944471212728354674262496263590884160731768599091681137599251722074540726788143763467925108275744583381291700437180311294138562083939340260739255556767351859625272091742115689691168470725963054448938106388032468412754245498742288318405514763298651347784252781895398249616111512512267617989352469400175450640019624443857594846825349418277826805248744571872380222940346857812969351295735715461610195441026651809623358252506935283296179135182915550711854213489003153692353317007779134315986608575358690925341546843618186687227692039310131626402748047797189182896847188463251816674140787921528205175551023999003411407257076101156361843023810597053544892697572241378286537259353968800267443313892091953468624385665576713465825063355600913507614019307913991535427706512742920698254984417543989646918412142006002886541003962459889630735664062782182525374639718658175084888821136001105944728630998102469001165582733933235085369578911494416788425728083942430673002136855629800518426662449790426461393641330594778395165707641689552671331429894481731460901397995272509388970485554408593342224775112839404914948200731824426899373779205883691757638108249832028097574104805047295148359606613139492550296531365513510637561699487943568600576839135001002209804406234205260300825820938731078612127613414394492489006319218474025715042831287578689006372492738352449424864214479915604679576931100926958937718695523122718145432424439133517978957928165870288750073152619691272709332735650930580405585003987924768816616934952105396267465353689138874689416541630451600905616693119256813745939597955027549325171948127047282340089884676386816409721090606612952275098426639359007982639654125596389629207725234412880448554896897495996459781468351624522520102640875671885037257643113093047365548120668368635487018705963829344305843414203438640351671884896487387827894203079512925569942395242174100754706258635322911102004874186597233321747665584805790058160504883485729855888818516298671530361117689964251579821855465284955869765350806951345600981425327317036833929008426617387457571992535102644862073198392397154928676997466800799341245924545826359838640344389976654189479062368198858306430267858584758824839415789449511012041966864019913218684219087812170965673641921464724540933179981967144495289302885780532796622947706082491613503463168739830900748387716516589869102017736819329120337952828562507514193979948119562958017593678697766659951396399746059468074496551970555263844173276127709291948726666003589469452626364226454731256187344885177345365337345008192299396710304902250535734294124743497314906135313319724656194891564247921706721645875218650422495501639324589198226208822441188015131773330776114848959787064991399705228128509087043050261828349905055618505671606588875674065615569507432319102459784051170782666831285133574026516317022673222038018831578294755915056635650317687428580318550701730195020940776940778276723383308570324275133201564709009393347401931906966158668493632169457984004393290606407732399694383150679913164036638769595089335326897897222136236566337432246134708605135331545057127642407473879136352797072631849864908225279389497177831641471097096344624788985987629146234451994936701714983869415674176493905179283993217950246723896400486561738500506477696388829042906033985520428088918449111429380771794188928937639362798474832005791360211393505981111987697151814017437267041362991036210244014573755127218136410139431869692120379849971548801291707549128894931465183478545142938190176022064244358017921793992469084422805146120714541660095411357007538037692288426753144342488053438809808265259023170945141207669748650301190742253160229387237138251592650451401617463625698193841755297562754209159511914731071744956961810972692220237503870344600102979843673031197124573784372585714598932719052440036211033973420690484434702438733088968178755795513501003899200537150084406080365442254640241601740131148660766506610677891311798523923600703637850563192331415023453622064793747027035975068238939012815389368889701801930166945741321248699078138496378804287614401293599039340434043765017674243647695664516169080763767108610166713666649567752567743587515219512830764132199670257888943839542658495634842193149314219483462112348185380122188711437299618293582485070270916924925165141045436860076220592611359896555876114042388319788419692563734397095600341200079643610785671841759473758333315649175281641729575090565521381028966985127601301189566054466885592800150188888049430527365432387638761119517687175022311905485063460487123939456050305223457539250420638971296488184664811933674827928497430749894601303300074877960106149121265745339061884726479230867679910496112940111862134995331972591463648283238740136897099660599985124871569806072306065304397597458754156676567640359954385692647598504133457982456416542860641289217493044026405508696085062795140253989171235840390662830970893229446315425516703168146456086791705271153562008590471080787867225540306101466825910746230648913774781303749924317055536356489251260198661884059093530149659350670647079308000532669081436009096348550284371130435618849396266319984414253299284804851844205711420727730998558895934455291065995990891046298514365279918807833905561948050201694071813776056374172619343434003775244023995615368314923695175258294952989887761827289236150750126192628146501754592857529047126775645312500249406484136506763912985829778995255759596758448409016586775536997379449641080169425071711594291998770830051840912212995088210237704062994393411782220011341720170452896990155069232022715681918115807195630178133436930634637000595094033440797515763561114052373410688060339775871546498645377076669365941315294852828500440276390601885154935506056273828398448018414630314024210891161928728019479661659748791020095220135724050340199506320119506704142747905692721286185237886174866272889801061822036586537956576931001273335875811818685795469675259387000702986682610579621769092920905042818425929507430239187306690576418200021025893681029447780619453292709978359888953576464522879807640977853474120206210910443975903507183785560596934245457376942658459431650940647287203272548003383743234623896955450095283957743614191819474833366747276765966853953624146317603234008705822922490129528147338239883032480060000308029488165051062508184451348696306776156355140060615169986497179840363288591786204754522213793058866261019374918954752802177617196450034084919732531099081510621492860187114041262362751601946368471350007091770388952144316362083412942230716262660257314402458923823476620831839135434331846880720664284251599698687616979541632916409604856380983192904508737135625127789914679467738049435948911742930447491294812607219494875809499418253195681154899498431960564473587163156701916595703414458692278485288269765153131191108549111636797402353102716264279190831064277462241444025312557647331450819579388860260315467113709439996224027293776900267482120240423317980904368605152861635077259980662216177685041472544647447116830383607719974707451365333863747447297464366954339852223613743468387519000012263422229295581841537319020297200508055062762040843586415664582412408439434783834347160152917807446839676400124175077606101115545561729345319939767284215213911776891087691461733741385113482858628618041274003820703369001152545456184273311325377350324324185796610343163945645782696221093715241387553242457011873861175775874159299170172481544100840034426764585985588219910692345664619792818542783792308404249669285569680245213458792137367801579736894556114012411845240173586598951970583388252244858844763016422747527509519876340418323227285619588490440932814876278068171253426855648888620471137391874054437053751162868051810558031117620021487681771288401503576138584076194355149548821451545541393345536068432794967091550394991362449816854371007293842106852054555894176037628986813680438325139473861825980947176815496169895491550149533187588482418184317886520549603066889798220901438819379872335118980938575212183730239713478213661217120797005039761035455744492166455682018172306623762388832567597973198583601831293440955175136752658330762195556986500027312342773036511381154044052013302146654585098690790609989776221980074236588290332414924345305662633324401992203906444043775101377792628353186744098246128649387912613850796477134916444751993235062974881483072199183140314391792872903167023914525295578675970075368860655341094585914980874342455301004770180365929074968448805261979634783356473132928092827710874256453386969576220285430157666714400464268626809213613747430957902558685694239186086970377327569356869624211299082009781697129508949689921998382703847756215870349267385594886668629141313485760079841715792169479412610002892547263500886943304492191401044113103472816468655889442213339573899952360430446517956771310474617026995389226231293916203462136517625026476710103223903097383626773152230828145032471781278341875979457510921452719128303617174245207895784228230755322876736493548972083655502894148562078444435499181142961811664726704376343468950664298353235396237829840491990753705286537484284035158749855093241470533086213967065636180260676849652102723037177812759400934527901507926182522675643374849031379356542534246901040265568419922896168320472589162832478190792171576550633443990623736945322443727088315859365968063841337898676671073111098220050240570088522189487986497960049517689887227539258788308778021530775678474884127983657352760549236382390424179061162692791708728569904191223414843312613421318876305221100811335351878845600872920785887859898406860726673536518417578859603012382313918627323762546297844340908896195142091549243796010986872113419222318543889759028590100234246582737966233812372744406122346934919447191312878717538762997541634796533070583651037313808939183816063548890833089542727654549470835105762737628958538399369243319657463517694636059556902063231983022049736523385962628162362699391899444285949699761145846369555707691240899195371052572423326026580692251426606254867301966041094604403197406629712015437174959693593493833308912280999982276190315990885045358467517924291470002951182773828453011517452052338777902941880029560762793557444922610429167234113864759497432920547322436642981862009909833863865886624768292377480518861715307030939850753058644223856648746524865288805135693672497750642507742273040978058082428926218464541510513591659969367986593395922165243130088426910232843805168010991878926055422691963257467155703937060932372579039611141306929058064303840476812443944744078576650930138426994217651226621790757007603865850184765891090768871781164066570136355842879266001717290926004841255069926142905530183389453559344128635747609717090211013912068063358370357297298170512706988886444372143677732291038855170480745464856677857882568133391233778650891358786901481057524135083844598429535163362265017446387196882176641400700560914715409820592454521610014698692409160579631552492078485704060812167119791856679581052398224163357056311642194005637490775160542671957626340383179632780635832653619036637978008642240679292717511517842339910475955545911505801470700329176207422905898380334673884606240283715069738772571325930440869125942972716588264516863115823134843360167302949270142985822761959001555870557985721814549587219616302974189595635854979037964300722398824146822642917840742204104360891083849088759810138412441444616966344898077506590637049898224278305820275285232595117119947984891955279324971928895180697071991508471315829809777528493033441765395736247831919143291548075110877852516603082108806000986224212409864671690217784431125932131019301924171123239057396283370015276024629464619967051913893626944363154426693938641636605931952684445877644167458876695611278629382945084075890305010494899128988584186895440646934947943246123521300802707208225848360187105617317443727764537640985889992632780620141911816333865918434310082922120966495234721596973526416768415934994586141336259945904902090980989704630585267791051828388602969372879638965323648066077492827370360838030214895624480686009153105071202469387612127694164956352994517525649277836213630418257888757562280805995026422599619959935588859762016196674753332825788264204688918841188210158625620873264447238084977747585971267176664964438917390916687661948302518457538942270292525415646348390423194983381632066358208044939640419469486257112900880149394355586060935905155737906015393847809193059475276069566596434567111605511143521446684633714299937232348938101028110410402132164615640433230843759150882723626602111593477424690875214893275520611231628754235968300634617836862745108494976049379234003078754161427830548481853593495289406610468187999417873333902033289105139700478566786383861302459686936806400179940917158304209067592639589703861691414350769925048792831327056381060857868977384590514257419165612116956727392561880608086591460995614296919007003336763408643928572082601211779919292107555981643793596110974400515838384133090646116521862983472182221938502146292150753393181320032621100733455330926163975788354905437111246429198414441633512517279512872032136745797381796280338081667485826243727915793995269307338135398419939565656760137013433251355798628251136101939744510181712826820642951860277146296388637412499847826491735008631295724031961087331740640716928858253518981311902165685923686334469315410093574546983812391149907367026204654022375265628009569294745072874267007927773469987257912502860516423070719375087685404848885939259820011533112661369909211916004783671148542809317933445940813782442276161452525297008030607561125070652204779121354385364282963138160645716877861639045358768840531137848995725100139137957729166288109143830108255452896320592528149975691358997419668032426009070593708367977380349476468436043403793742875316911602349581259952354037023406342601936208618144782872053205021127112017436522795610465272016748989523295514990411525147971108527838921112147489422248023285205145607342174629921119946377953613854640014416142734928828197385252370781235427942868526535512239542809869502973928861923682993666504035660639318495549256622988607224426607648914131664663371111323501106633352156320096174269087762229798706228059493716045161141214308606001607024971238403851776101741903954965602820485985185164910128753970376937291657911957271441497621952380126484803064486606725554184364518717005140594477888558867266385449199986810809206538593812268135938126341336634083322862456682892589151603120287046939272493742787372820270589278139367971996394337151537651076941062053781301492422201408852277512505510652839081198190619163391592768141233903824678042741649532042321435334445085200617713005072911647522685772459580674067366134272202384883243167060185982889717251479675792036090049260279187975011023453944003240334026894911579673484763173612736921027460353922245758498166143477881018383232510889748202264875212079330513378358390514863701284659747003162760693894556107037388824357454846202459230914883803872876456458730748013746881440688100175690866164322176066532132115085981800482902257458394126454557483731021227283319694647066302138243573100203382846262569289615092361847535077890126404080512590468094955174261329685616516165557222433153258233751023275329858181520217104669254165502480220676172659240441349615709653871585357859314287346392124000948288426110324962291691044845606967328980639166337600887549730508413062103352002936251989671889150630728872812683845139786052583996231973886805563559758187776799523870915577563082865718770818493808962684516830594468378767398194388732367520600470504411397515008040041291299053039447820539231681393202488129973233858034202995882741186942083195883252566466058743170352184277096663602707185348463515449228775049190023072331186317555988463625717724663899870672647915555298690699788346107147808089918585171712895226066181705155724802726891599235439636627989043182506284018065424514196505789793956291645118427066770085118345789328526580997152239599016853512971511528895063131750678142785573391475908329756607621010681301630264132093743479061694233996457231087768536122869794892086968311489730673319397235854454310694886068229970965580580333664305156056679765530179731387384190173260757048460748315644258883368296955082002056734994138362505125757544851291286345925039427687958265232016199985029825705005858998502626085975464278604470689649657693809443272363137735076685739610646914386748626702536404636597870038889399916393359559033187511145850242569234080951752139484329296921751647364677016940179409411338664759397566398721760917801288925302604745684188770108260576058446392074162853408561186805676335719789319782678052489227822415829347442025862485993439965159890520198017343221719261898340441314013074895244093323113408744811638534948389853327319709129945390803771135591641778016502551726637555625915441055995816280521529384988328305669005237532700247589384239906495952805649167980157394146552768540363546695317595557483492632332904821581581743135534730342149890416695675720531774178917476237548624091771723146034747608510313581964329250914008858128902794064688798356358350054229134131201305462192712421705362040663495732617872676869722616254781865809118293770148371572541215248097832333459967342246408144953771806382067511866688414154456807969413722585221085450325298919366288618048170582386052537618793397349446142082547737596660085311581608619278209470314555042077659189093134856594170995308686776758145800757923087922007972172893948616136572359660050854897987752483094117351496158217387686454414758747865495878651114591869907959820193230877544763287645107064836628625097329253837736847020215203211436047257920866298521679315563525810715663569075043552854817381431475681722276467928801193988239142436127745087628937758173079003074092337223272318345581234092115212202167138748089602184502873462607567053046666712470550340121320461787715464122844981344683324983104315531261528628013526998870854805334692749615711551611090779007985922893406296404459803464258928186233824856502515533737825399742263422245802608947707143237079511845871044352268964708820138780881598804973780724338377251861669242052906529896936317287328610836766839759933922699904354198273357785168592379138376916419167217569148767476303429706000138083905092969540146650296160140204724145425797500463676974198562576055769745317857344027556756081105590537761140367635788598531440958174510959685101473903285138043850728694511735353956478117102976780011002861684099541547365783398000391401914687064497919150281182069183688543546123096586657599800559978141784690931256871660983636701812370744758468299314571600014614832015459940120283525380613778454291707573961961766028056957126421269994148149745492761546982388195963873943546926013865058774875362869350919822518222709357442369019493180418683409358849669904729456644477607046204695858018382366811729701487314004886719091485385625515424542074699232184115572793902878668407347511869421794888127121821022418774340405161649915969104585491759196350042712423010579880409103634691006924876254319518734866663808117218669030778710818098479872953348914767572409881347443166463196361181904226501250616801428171999000646882296681128126675225895224424700153318686391061474602420052557193365748391345716839599747532691516954818332489301326372637395550959852851295750375196766788030816144877819954761202763267327069668256747807942443426314073006265438427407113853246980242061777954174765987714469529962366899652604445153560980746908052662246888099477071976110209045123232207299385458853204640856990873856166184922331651092896207865207945759412103160554310273157421534292231454532144666979829830328038641395196559724125701646140434075608311125250283421320874842124344642388591387360299848129565405022204957257856625819835608726523547325955024945551727319373537316289343865328576168960511070942111478411554470392684875155616558416281779307138763120018254749655365718991700286537978116660974666859493258563152868603441547231610708586652053543267166327081572874093124829833565359932303533492453520686134536905284245215169302672090764718390255943113065556423772980231438759845049554267271833408181787972565502389861383485280803635910516401138843703937093488101906016085451344196434363024329192799688324665641117682139020340619294742012113904246798048971328705233332162052701412492512314437117592907662945499993187500052865162065003291216560604862681870766960144516268852529639714779963969518896944016274509625330723724117883458659173299146201172126430670594398841936163803282762438614351353827398794159576190888526670984471935707287794898651949401359180491066133082640985877550441797637605078754828902208675832665314684304078577120410822499308050114425738924570353494926348946081708111416502122180873310606910261462582334306249306257460753659988042313141170996964924156725276195437495650183982261601450742127165502701555301952191643815503988193549534876129813919228296842357429831179831634373119274386123631243927826596752468633093243676723865995380329175175655981702360982042318465884657956707120050482636104379588942974484182988630930680540933577897612600645194884542273975853901910732027900373173164640960246239337071202199948836315711386506178608725262959648334271056477183231853420330031553624417569273533722836384241080651287464320796521746548332887340516272113439776172728390185158427641397662506384073630740483074990471133245943441059127325972010826055720954199013100760671965840629972312850341344366495539324740286341981912099864963538018566946122345801483396850256976403024960552748489229939548996331704495384041411057539317465487235284197030474102465155028519983102138171813874676381162163538576627768181433181722425001597754551474220862247741532638435301810011824337593943502856376935651998584752525311140416604016815977675616619775775157606982975484464427539749420100628442955595798447477398476838961465005263726357907299735940426652665027584906053428509269648437576364362054013045200497070385106787660244556388362498368620396676889747509776909568278845553070408722275834918419768368303174936069510725194585415558852873950105648090475141166072765011671753991178486543195056685370172093352480876114722702697480259166272999099836031018412787917028469528790216422818573665681644849842144871690224461776989992902824673588670723787908728697202199935257176111706240324303606289234303693927184535010229445703756061685820366006105066902912891432384686076985429098271565084157310618155573354545947539219237221547537895092426458944300737928618086734343896453764419104717384780851468707238910882403921890077412175261801658763725845611032492636750420652623957815680021002914877066460485029697582100660765689762896021489376739749157819752660332716772388166776189018007471264840292712927670166160884330557206171117842714247592211326454254604951036081258536468080047879978511239269203309185184537716915111022960646640270581869632810732235064524638808848956996047034475566622986601393193445173803307864395923400229254708237100543719807572437111531859630748133968630905312981353822145494243017160898776336195677000193172166903865011666984100178664671412712607517159004840070723747767034115538656751271937729833904722990982169892165351762099433977267905170039223641442676903253368146190653097324479976793158352880214486553196716708808953141597361896208103349630658109497277819171647276120461406159602768527554813895885656936726905122994908754065950183457316224737515400338187636907923835440844491718987111481179386010291643532497410966305849183697360722071763386744912363196186348696588883571070864407859690971375934875872186185888694956503922316317966362493567199424494005572407053128510638654679980859796748315687396273688294503137590826218673294589815611375728325559232355354180864783028590521914296871068208390308255857103681984564431530077809357720207431745933860388036191123213469447180551481080620473706351167948930990974668500174106774836099280836166256774285585903634583018241378739767243467443677324313488684601882201876402336078931797448321158158101699178478528608738928492909526632602273425644015887321368435327715799340570592146846694962356719081302173295873792827734929693316130825823763314011676738393164508143128397127603017016594827743491774644638422329364201600729373667201702233502306549158652019819309163486432675756086987874447145291639571944714398363260029948698534127107447331670627541891985993883516901829184419089456166517198705329321411745519340835322162870819414958828156198965521065233186929754747913748412090584406301845548044203100905245688818034400937058809838920107542617651056429301717514606922920897870544723103421472535867550167373157747244398430328686862753219148320033874739146094982124685641152610655842530989772689503001490694271804663220417652068484212984063018040870169602212428633409556743087198989102217895967349273693307106691137588892972822900763872695727885315466043171404150398578612035092415021906400935686588515789340954543266025868832899811059541374597187880704315490876020860792908025253771624005995186427059816617634841959297536000316727873829193560028138844792259778094703744729682284520304857760114714824355722461486184190124756296466889684272018296444586711864422665551709948116000486665643091130573811164981451140411466206990168198470130441394907990721415830644230669450910737748867995359909984183839418345507562554834417149461547505380162266290426767066183602032988580769838708572691969705992487399765184530586460602705910947710512375848401802004567710273508497950776826514989079673040532743848509551322992556452255787695432715668179689767566261846524252546430794822457088444492637469733029629018780303358352872880155670356635518518686886304536954283743308378786284384894308789752124872964065235424931521302510758159164864357551684767130188571615273396173442735560755207010076806830794076369610427077562698775712568707687344408091390927237682444931851141972660379696708108395369817200609340667549277957367066435234969943713023443741922836985590784110153569328793525812587179008485634297648433131669731239696332409677991186190294836076967638104147490791695837691681306099022974831784171906850881570497419536171700376159900990453515299158274086364732273333554660370211069469791339903280376581755794802647552647005070860552304412668113029273729299524134149823316147235005400629383810713483262327445007186742520154423166840128864238410139916376331537267397038617450587831634384044307194553295436315972561744481648012623266175974072945847940834426045526754888251350473846453341818874397170852952500052856973566866536831497240657381474346380772423482277547607926051701436306816145573403428474416885971328157234767603158673725123923636910415259051988075731925749830161392806615031567224823690483369586579149977289374162916127881156510836406594248786399980092218120971313413472081155433363391967410314888645980956433634764343399673102412545883143638236860563384576395190550520426265088251894060272989637019297170457322973150756089757385808708214544266510040854124488231135062635741049008865274719975188239914353800936507724374853412607034016178063320613826598893537137734976382791660879545050470379615034546412055691982999053164365880673509286986488975549307451229636240825968206599661782888754301771711404051892950654387268249672383038679138896975624927486358690785884976569351232134101246634009808942641488735025548233275457842672598958692088410788635579762031650480624378893797672268731778635463905818662498915451745564005824448621632805475135760342353832017923853925447337799310086836385398600493145720033477534540584306715818008240231560230781309528902244129232424352637018138504932207591394743501310188477495263377042575468868378955155792822636231625996345607115368639370850221162798816578207689276309254835616472343681801544418767222836630999928372583114663872996906447554778958319710192457819817329663420026804339104548429788689160421089642846489911187806394976965487739031025638196887651443515306590592501640298218803666594021689405495139521346008642339184405122482791368954301204369008891943734997320333300962038466522642293759618685932594469753207768019519629840272060416310031563788293050001378591295263846607097651435668273146151915686191832595191718121039874026995605609236292846385325189770496063399102639585676691670897093309041934134698313475502908124624384114782626337108290893863292128352650419374932589888821255033581589205869383552956236030477730830223921217443418968842288743045457161678373067027375617012881482357275337636350776876890072577249447231104398098608149295767154424117777848530659469175905249243674186120806741432488887999978388430617381840566331643501568542200099541013809137332412904902098703150893982988593505830179519093677336171822191836558025195877428515131536384420618129131475262992345186585651838294495346904117867166215781498679374472156330420840746142958903525034868881970923188252677087374707216106527839937471292301185248576614203176334088342132114762267134285545588487125171671025602321638865824324638802959796644033557409156921175919064590929561955501625196924596526193053622847792198813436989768076480373290034985845928740513334284804924206235137067885189659721396728720093452171505416737958227522408256693881085870156553234290407986115119441882869354496066076554561754682186677011501799138138559161970676256303933276462952113361166576957712608792864724178909152764015442372143115917247329253573610138397099379321046378965601251037536353258130912595857688229930474672792875417331334625704984678696326973109006099121470071098459072372212160307900288143097987946255454385424642184629113805937484275166630377321147603953294295125030865497491587169185959284364228639590818644638738161331299229668543553318994408363166691834099803842702199565424948009346047870365829678994672702701337587602225453746092667963536514628378897731172358769531424257923797180882875242608653141599661833747844032601225538643287025616783853432400975802601151993463557025991894015234449228415860632610111535846824256875443209681678666364520796371456025839006303682895396275749705931131678799769089326890416145210301682555227299795341173911551540568790438933196781205615997051010886155373739823174995706189367844427201027795245917730525996761816616209897355119990726771403199246866280538027719552655750709723484530878417806195244291120589207828931326481273813936062377672790520691581640331783273903688280922812801899860518237146962431874110857396542804890949627006493422648172598212530639887128636911348512635018903720493398654145873116622031231427368087073867828541889918869569529997210409895181990714146523929375772591937357934457016284842204323773906829158054695622161223369325975178001652370604619636710692917922802077364543619168162190145117494230018384018589089116161271923932700782028899115113222905839609143548572450739476525326578046594842015822733315597192273900575352244795468251069654868647580672030943610697653502690731077614037862890655006795492583972023757950254708957679532304149131996523324075258814893065952646156506502797559456984596410451054162771942718613169258889755825479724813515522721549727132547654186522876782053660420782259363425874095953050212321356496897488030249577411533272343442041934153370260845184173681790747047477828563493913981028145633234450892354517693725053004650098559423231960937490619159782857723975902701656682758354937687157890491412685870087904606544905216716417629425720629626497781623476262831269166872265224313293652233472470725873139158823071186029007393130178747651389155964447790539550970438455129278010745936493664265750471482023861140852350734051174644376554033630663730386291215277438602773669573755050476772220969637542029416497552481326110967958326858666122966156102437049787733309233281635177690177965888514700523810782543569799324341966762474762547591180357089110037389553014304086956348196542058216229374101522359537998243010480247216025219910483906609586347255310991043873428004459034339549020595447275994516979788292818166993582718974261084993590132602621395613274382627215182740365713490951460593795871103600349411991829302799976603232732278902475577503458108766030150569358676472521045041242541282245983005952088632984632642510085867286525192890320341119834099053989530335802490580930496008675475385782096715261537227652099187785809345199995512103248954910929247723991073935508473352296219870756879165543618812717580035447047487601182219839638115563076001409942178029259722394517745467147379821580741788411093097762685295236124057263086990137575201954368085257354844538583369988453334774601099819913565872794555084405479012281488081429411181354566013242582945795115675700871531049590618160907500332250310970512988117611534478767444879355967085599036117366167418078236895274432156293844544950304192698662678895902269932261914984945507972696434687069909623139957713212398991503594383261088364032601251552766884841885348010618638968604240394254142810439496938708138072515042729512862989886721139692597296999255404621932117029563183812946018806286740728082243435527902412498956491366801662172089503651788871761896764875830040980760781209504625190298866667884436014319052785029449893434244990481397222115345709646963135422483230332777513916460369277248956316774416846579422574995841540028138033832865549971319803829857735292464303015097790548682359274432866043145836646550183857310766957395635317013894818277636468600068823009292646725210198428174090614009509148641810333687499623177559916046450419017821542035293707837873213244166543499586836017503723723324673894012950411514325961494882395073543291943306131833190039527821919769305299505452810832908713430176498633320096178813603972133349353429841626898883655025645721448047262558480472209601788729613076026163235664418598726433308249953591374727152790274572042208955023479024892413675354701175494065111413845158869120604254922814879918973479435873900026116476071182459997401509739095647024409993471931733240750103295103320674220176823503806696030408975108684082605188547550298189027587300755661746743534898553149414161395279074976188623485954356848427351382395307887363430915794777845568971598737759503017044338297214493248063637387434325145599636919563986686113907168256218134720019545577792032458260152848808758856157481062108923206076170633331014472469535956531259733522285077121678653429896911526151904736516937989206717333598424071932770888277907941498635689117031151131120844226860881540529405008177227426957512425586263928901341523577951216780506723552204307263282260518376800872999767442941936435706999841294231446966425130630432428627101952165289813130554865933780515963464835411827967822669464006040748831285220360544965087544428016370740817742169268490260076138747556743131256490641520449264480747496997790855597064067716150876499079293260329874409633054189683800226739880548036105588096540756513976801012558978641328801781902929018092766406987359114597677359737461539763945472528278194763309830099394787344880271686152813950843196698807145565495952168695375701728168979254633730676274297565075687699810672815691735078639890081328361943666244545780768267545439895964185241902299104192873713906248989747733357629800551486565088270951459633185959869455046062065441539146940658799336119752191089223302005726608786083203910861306689674346217158940371040785692788532966244500982003418484271290947400712361138667497251877033479108589825564531195090800398265529600029029118107988144997661835149428774260753114162307408694448552345933781216233221673380940824323444102087427979496304701137905299116686399753239124998954547919830302422682054111642975777410637307978171836421839933165517751674080187781473557812300980351190860810151677746835980563289542689490056411541690614298811524220578401315729185868639979263130690592606283822324085887407147795318346050637788907574384448867828537092411241459703795449864337594866177984611898354165701868979612335024455694462193907618299831814883469296897830696227758334301695049277625320034688273658733664318907606251385042430070625561217544936787895049530643245654291568250764236786593703968088108715547296947381502224031752735652500319139763294400199657383932658245952409336232267377322980861377424681709654842813444114189206956518703593312921871614979284566579985503286865404990495825730043052691899652488265817641000579380224274912355369866652152250142599130801349618599543293072737648533096725023122954667410499770553871127779165522281991010246256152425986106888615595737171482292572125111506358201583527171400808673569915905588511475763241085340547847207140679925509250247563181597386404152932477292355603607608534852535982188818859229874946390527631569338052745443885480906017216798138124691862045145194852644431908280206884452521812032817855657585805314071951162833762635510327290165888054280489598070975473441252936192195114012089075599368222956756067897047918206384821195605870875633020304964590411302080300310389162731122758927048815320783730179131465190686677423413229221000774302944763986885873643347535668624790212790932040149587174066238622388181065292606796486361026985443029914157534791713364630353700197847301610615310498541285127297735176072494162422468820454939611803109629566090955606393509923584555152641690836690269626396152888049569331666906470486747656104628876377842205501527552017767498516594456652624388727108546390313112361628020165198736502163575108214915511297559967191709040140021412990456162480487399595445896768575908047161221187074112377182581568202441993637492571997719789677752408517567212198491283695430995836579271906128147612258628878241500921003176070744979162773634052006593887360470422169224047857616764124963547914815053586162614298027283099988605161088501545428038889448075500074305159324809216888650658219343035730973408467304368874706534671472059751543104916541060253351882787044002153512341569183619066891631917504858255339186556252935918161384047796472934802916215151539798777471689670497042402383388657581138878082398464058587708785818808805693717910488733787114072099323821132321540440042992735570081218980331857836555021617441304731192842106261167050795286629149784037516819142123159754077373570974271928853892679181792164820935865110194546226399201597430923306688034474148443814893916007419953720362784370771891111372366819542030875189593466140524538700846121988551041905511256070772181208404658237388794178177063026266598958176992280202226535207602306337974230374252421720332786198899589253570286359088869586716767312226370407854238659880828244371736221339188297432515834710239456812263330428524134979747393010035710114798519121992977862225429144686090174859635549557611173124757847694316036748766935936135987315534606684307657276249292651123219780651420471047554545587573116044264883121154722454706117762946520168507202440434206165359429910866732805948890711259684953958157467813450967575673993451193163282931694696839353655534480707264301898018122611335716855883973260867415748609800116561214726754853565074278897438331190270182524261022289042426246809027486211688519214732979943643482138472267994214612116711448223030920369940205715694133884594319680472557023022383327283358638741557552291985580301214584524891388597529876218567231236672447985093730831627623008260138903121522432358631327832754668231592145132148792134307822307667381271373838311165110275403132299180311763542530222669434547176066204551913948130716653135385662640273432325024897129626565176540858429729783236796228814930220869619231264034522970447330823717006993167772285111671945303925470893930199058715126312333586083022871932621141771058826414358214360818952300934143772173927335893022661884815891787150542687302634225397436669257949666087873508725419676868945657093295380006742175651492639359090285402989980070591885897960909705082714594552725643659281242361888468279571188348760809763850065993492768553918422419494840318100397292253421429712423826276670293306590603027491252524075445157621053144690101603477631819444276459521022572960409266039219675575287086640292303435071489886898858587917366958425764955206667150335740525634383471074831894135359374494813453382231986196843976188982634108605212112692579346720647428578462683539624074681814009276527291043696216908416438163198582974889851759266925753644752645426857732108947109822023933886892908327549798936322456897235870376025095610265389835186689423788206525055579518959121197684024110128205655534316780665989663232681799685830873008440078219577541098043337331045539350888797606746571689516674408719395602115588650591213588819854584684263748911159385685933817853312783155890570762240223654560571781550266983275045303985369799202744888156448342843196516293102709404863559019997592980237971353914485835284164786905486694889461967757666127335538495270090824820904277036415703704931445939159547991730061454649588794887308734547557147474037751839885861116323793344564923609450441531437244251445758755511400801842329479072277265813511622821011669179592777731986390839678040096261676613639105233909607234443529311129886146540621921979507539635127219685630144464705333108439932519509592922538037173172621167906559243112206303159930544325031095737733270556289404600980807094834912882525531691747101369636249733004155280167606887249279834608050472157746451364291600522995221692239998951683661584777989734714421704083087451643051421408705729644603527276551640538607877795368175159492028567021111854927554575528179334784731098949044766448191361243978421195880352613335911023810722676564879189176349986350751993998832367616213045159651611062404947260109671873309645928354053689298869215185014961678864545670611356644594517059778543487541876526732249793064842215860090019193241877158360917082567814760130837180371012915228711547214671689844748522807743462586813068753481964306571253307352465706900566783147776993609767042360863625891139898075589575912140074377498239097248295279076472697552759546795899705767294795988182201255284633293333411832321247726748870585253216060049798705327090883271003753968270938378917863381273776688807154121928610491868547642313776510317007915214251456824688929654067390705140847323392765553278072328434633799557631008050286813243133902964381388642667964756960809977193368131333078957620529200409931090843452334597504604109345105662364536984471539539367663795356353642280138635468293515914646681571201739493432337232907885422118698753882996037455431684884262412210273220748325725639521963914184021960144158594383882930513549212986282576084461780526202768735135535864353572499461347302684013651861939507071785669130440287645220944087698051906711372387879639838288229572830243073737967739471769710127449773995328516533013785654847891288738472435847981859259106714546541385069776707714236777712195304889019268622124175219808991872011344218004153100120773734494111808486400083790448684713623192211546726860332889265142002638156373646915273030701860969651662493749364753646063606514905719236617642414424144844417869565406622138635393930978213655394407859266144287634866524184394733329665024664787765499378610061465734176915084520661462796612465882370900527115264330531166399189207706122966332802445751390377255477623036779200892152921894660258824471427467022636205499752969331117174858889752220221289836863693722749638658900740547219057885920947620938942946546663620500940228650240416564958075787729791556430465370951731477355210481821371027509290474042682991031872646773373862514852997859029690457781390491725643674078181031238376085359490192420571691189333091375514954085402781849799342314608138705515987476135832245643898161774029077335678157662079645247700136296595219313009102038745750409932136968888991489141889584860468390450692208047215216059865946024492463512816566190635930958830566346833969217742434961989535402063851104953333100475795188559367448830631764849475581103568752503673923905290176369735464960461028987272546782283051411336941964968995476072098512570663980689015373676997939465156891158566635156508182916692166754370257687096627874248795406436727925518375832639991849209993649760426041642921803494046927794294052429062151447912539748319042860340205236134425392575697349427623271890629957203637199029109101746251281368058220292218883175491777544647947530266815626964800026937342167145071190522339738859943588938462705269224213482847933651359766317060372481712553515592640661365409187777381362825732177283650390274075588888526801263165639718869479425832060660948187996119269404494248938213264563996497709814881684462304004243465263032240363046546848883446664451525551065569427579168363601311124795766576689264761630093189221972664131144581514702230560261252612919782713201548456160495497058571784715584886013780513723622287371898612701529057461244387103723624517827709851387997787237041465108965467071052749028268875166520210086227109212613159229888169688986376151998735559060930127876071687342305053644206808479453238051084242463118633522074584403385322311386785427308891619267023555067050595814631242010135000654501628022191459901166586068315376459344521659783007806480635822561577684161606149217613115778571484735489376092538502254189895407934337634161332685098598960590680759633422807278114560895140164802814181132951294852770034506974512293644547925547152507067562385689749934229207591441732931742994008988932659222933939958721640389809953078468660028055221326384453407378890204001948628571876419380399425386843148198859597685810879979176381875406573479266263062757852806328256977679382414818113936773867898409297524906302518361553432644523245039355900033401571872425634582105469432647692588218649535374082317049787297005787338734982582093240265209554329337443328649240326560923175385475633989007342698170186318719255946489432718225647997471775535508728723082787727817852239706696501076716688531656850203522312545319740740703303021649575801994938453840757932526332368141619605423440995678594593809836986862160633760382169324182213918747040773340231043069662061062864215373552717990138113231526774145777032108964206365621160379777266847835402353401250751941282854541513301167529661642249023978606378876478991261286131354775129325932114118266800452969355855724641031988609050642082110931532652585880057944857567708990710392400251279614181525012034605377019833094797959857557997379003678639401599051707375320170138747231161795129237166619366991197428404533565467648978653199404636100289680443257371062012436810031664457088868210373620605834922444317178023846312275750784652068478850944177951076774177548906968975902714322440574594448214887311740081307568397106164581252544149003200847088052761326315844971468420182662317574604140746547097443121975294162735669935862697788640886255223428047569057725082841708485004173232070200734050788254403541308629516283124089756242282854744207712616128824943254000442220498680436500563596642956793114286328436070049027902860882954865977495256793862879675286711877723009741280076829917841421530630924728153733308023367303459989566019905812189014150628861729885126041800616620659065864316504523313263577618042091352211750841041136699217451710095755909796238851263717409215204613553697423704533462940341476254500411518786232817753105122273044045768386469659006970429405527153260130917133202085488975579476146925592668601237821763750365136245798132626974886529194439159825862695122732744335904998126584968097105311929493234899953898371062386143140149526203195049637987746113434193956884136061831172914166809643213954217383182227697500483067874296182711822822991532459103357532296959478125187911668120581094913307180596001999232636156406568444357347000543649060272807179045126232977651468794707143497545464731786805848074321308700432115900544162216228226460483621810834440364951210455532869454406968410174866849945458409356509379665683844722931091111908240392258457758930559239764743984597997918707496296510060474085494507178252840563998387072003138121221592094079322203716632471734297328170439350817365861647936351215350186156291862817524551406859555467613947027849937190518202678102297046484200884522960626385459283557801049987848843367421881382015822091552423437529566876757596709369000410827355861159201136798553257181288914610610036367496752417429143096927243927805836621126015828991435823700032114489045486289369163086103422072734658190418004700057543115502207169656992928649350345425427901170330751482958286827436723962870986969623060321796432132367983006391697517592047396148948728191525079197597695177669073076099960174500699491195781518841870136623574587725017240423755299408423628660446181583862609081818122704600086393998397791797599249760901072214043607589821122716245277887019358255033492043899075399345167500591268905236561176240787472909454914776561485477314197439906316637225067988456419003701274189767160770219903598526118857450822717554536593923660571074416981569445329660044831561323897837333533202818050710772954262024519929708705774182176406365205923891322444671927017648925855912130535038489409443526144631119362827271400763208930626716073590912738309626015605141742443088621604482992638817043258832694189476303691653028724651275676166180514658495229051062327645590471302982001815196911822823996925126126309132819597278822548106589895298342487311046582365845717380000687177260860354926562486141943991008564100669675137447353550144512173382409053662981948117551097928010680151115867389110838832028316300050711102190532898282563435613868995450257194182085723412295397465079627854488282890471590555602325744600844834557060160723207219407129089737574080296596041681621121566243393280655237029056777726929426322885772748345315826742903939788026211966770876817440245114787751900327720892052627474054228563140934108982318358036218413830063429063636035583955728135585889158564331574753787934289783447610408380610828434890432617859171975813597087439164308302056378195054161364859559469503079777756207326959240443220695062387301918128049489180632707397857363040375441735637496331831281416678040138874526165177692985963261567626482143885502998956745357105234815425060657819554953124898673727991973607720428981387860744302112511492321195789881208985987455874239755327755896215230039087110846877132277443846714229076560381274025580213833758726635579776127168468785472988683090669395220932804670315206152247636681205818703369346733009438516618032913679349498532600451481086514392105808638689687860509417491850160045614630819445389813627768477163371037858769534767727283333969300887736854896867784830747617003324997611848208865260279975100680311637178598787366269575129286708998070712143650594267771579807116021991349913076810408724739101383114073401390782001589678523463979502041156480888212412186093284247449655962706745140798944417472917404763783967690002486363180966990382995935659349166691997630232558249970377389303364060322764219377364724473520371011976078535287964355506630346817724578546269155660630863336202801596220189810207556494238730924165676811646871295995335244971085476214649302327745513949077238249525722635900482404171899690136939905378285683497443304155921565599803462525193244825730205034175396547715877689556407623060185485723693045933082693446827383694558353028341765407971564583618395941941713735891082807554599269530191937657617831115892758365251059854665882277922765132980560661325390341182115066531700097707840678042024370399487466369954551593629858081436857001070712408026718676847042177252112819318295171665752205992493143677395698468923336412744595933677168102660045694749234241050789507764494975079759730181044421895114694223191761502818463863299835386262552423368747142066713729156086688091192130010019370156043846027048333077231593315052434890714252512610808137332605631287480475436961146353731084392874281023431390804753436482743015124597086508578505233494665270650968632703436048245345283892480865184312618767829464241427987026913402247965296588687781088715496434557667423115415969646210568072324928022715483818196520865851910971481773964944685275244859417511159278274615486357961508049973238884236936971866189188657290955234691905314972378910079769308648913038296689064893149844176529972205492568201988285124740698656440888446422259080189295235302892684436257943077736348541435049918894264155362686217938462812722305429740229893137664136953326382091308278991667044780039375827994530009679433897898643682365965901106789690525823463043898891216837825109073966327916131181378949944362554257640181521299291874451022252599763688977526047970870262369139993690077861547438578247928307300648531170780154770304613032317305131455568531721643001209039773336902105282874370438298337238717508078594557451180062021701280686849361460634055523592908501003553604864349425836295299718159929557329247041974306443617408313819550951620972322670118757296593126177287275112008252876341688974060044501292196806711434049003852818468668082868628759965405599986921184564037757628288840368266944845471437388481505279872371230045632201859805093842528549001707083294309798011084644571821851891472651435508541349329999675102066642298587701682606772001628126054943833958020294316347555942330794372630376949625159435415862867982583310992284386101828019384045607075467686842163729827321203919151988252228795561803018273876083858134668855367330835861900384645391586590936339269077391927944595335954063338357181741844241490323200642908662872874222545293482370309465357564608037601548491977902879202605101672529103441892084837887869355136813287162770335285064277837829492136997532978029761491163273045758447471555551919739866888528900267084426520874857929670880355584349376605306938685330337540216171246098063819867949781667464652817997672138525111704825692077869138605034569355137107561874830505848390930261747133739549618692289423614787970898457439422834421256304990047968350080078040355973805026694975754700479049628934941009457811358493921575414691175782859817873271176808317787284942874120064109336155205939809729109644736806937590642870118620218710531915729382850126189644906701508259571321921318106776023508878607908479201125283030152753288611020386129063640539856086512090458331948942036715962817719291909234795824896217620202980065961989211574007509639730365177407313612060093042067970903068436630135613405094478720281914054292489109599087685613299035425906925889528176917041505510666619994974571823728256635951328911498276356954539983120169427549881115389176569743440328728134418709709492986084031799994968752093209114643702980225050386066341421580103415724007841096957155046009048858031202244191315589934929424176397973872673356589218178652092197399121234618501131726546564447206951691330940616286750189617268808853571314387218693972506470491350766494340252036578012092185952198409716726790534401635567599684552063474464025767135666783310784712062764504976916382294637440708439820801512668604058668670728944117788964201930778168804872870058183885279554974146379938693740947295080148812392121586374928868309755067141724608580423538011239962536208066630706830573437442869554560969370251965496464379027411996724109971620306530354483898486790379729975987920763095225685760733707414902229310330473472982003050740251679223244580703708817267261786943349365217967811310034448831401452220863158973844077183086692976867579906637762451814864928380341882123409365559669642174633547165950331555372388292853886780144715526150335029089766759995117667871468538079907271400142080554452511365434287651035794320225832725809117581208335894385637854532095021778712670226058955315749272164055131124454510722994825889004222635040552897968139293023657924069015858708545074376459555933265337323134771978235850166708411214746984802166483282873982885893376751570726541205266348158881520891068246844844191626952549376513113993331232578763227746269635484396611402106243889102035302853748712471494623855215142355252411487577887063826614586298528923233467642967034490395862509760799293115478246852028540031407755013253090850383727205287542863864591694571691409143423229656493012474662785096400567896703581712143494617562539188582885371468457780229988330524637924627148026012295726906787068474357795317413352045861195976054761485870412989215147301839146129061465625648239355076022146164161586685635835523991153484476648639598986865159255073944570133844034009407622175274236687212753870953590998595324700784546265283726675641067701562807102314170204817794149477122102594017286339420598762641122524727980834442530784522789904575826053197952973389055595514443516551941320209262843129770132859014903692750064609556628333729034361126815494720494484355478426338372478146444583195901040601954456658199992235859059364345719180958249531803637618713503725332141712714808099710770445945782000499123220235538318072160479379535598379572042966493612193469437354116246274870026508559981598302461011642484126645854890460687984222103703933096268499821975555984844555604760728331307746977690898908154316390701173730261296301433691732930268829424249281415209985730016078735503480693858204593753740954576315209699789272411412952684295357138318778118516244651080958546947336698025990809393044043785917109884430580313630448547960915264176475771614899460783394121991041605173818063581076073229496765844581986630832922705269888374169799816763794026702923597600445172352536130921271846017684829373579664513731817219834763237988324769349433218528490633255687393248349017237950530440493504176604938334158785894267523398864366533481771957746497987570411517065781514118377766388408255822306490217405252382788158737896089900469050581024254430752579091952926125305603615098473569738319050254401300019080893184587321592861433181660448218927849866790545109802364854399847398468211259951925112982270920190794638727645467649650498381546711365486695353608151633124144257221786763598994468637016677760441783398806114548142602644278537241659353867792008459201386800388600293146559314208267805353812282436655340675799466615106577535727827838182234885807248804970594323949044553336196796933746475172493384875836832935415986400172968315587964014283361380860860961804002517057297404738625393477815081579775703442692079572094841900590625970423500523496803592766589157158145309544892098318130336918945705719194193426195557103264770548047787189892134337047500151528373690235074240425505153627971948884810785819212543220955759255855807774004979995681174754470350431487615833181819049093474420297733011501422506727772336855382003291070721238249711491440329580973625644240200887076366689534371440178774202984622627383105849267652500810304406994708286860496357851046044158386032390716131647524992681192109478730412438421750514052629314606716841365485150044303043322451504723833099515990561658809153132695978211290230694012863321387651401290099488031282969688501264174489408124466676464359260001342860157903585672364731510815668569084466246086697736515389766171793633023010456136716730202314658088172449863130922247298317457504634865236949310070981060797449606444664900095700342933559378119242097686427725433618101735925293417205465371755186289576317563693206997053354388004444033911182123145048976828417101265333899217071645301506231885463871515483161860092722919635349938618094466543162946938225306500821724337763330911200674131499700711453844957629042240174212494603049316586929339703109516114536405844157577883206030313587182018143383874105448696791069824508706983719494293604639613049286304749279827413273808234180391613097096715517554161624427427435400527538432633194251559794713854131297424016871357727972488004357228711246619598231178305503732982657817032242064492103054060957048622322717898066162338817464678380843332802295088619917612071297855749566648202975744912943208735612114362425537787916263525543341730128928536364937765898598616128259170566402857412104992345617834157315350787921729562221800467297680761795806141428924660978777679777818987522218578105402171937693041823613616522947510061681234338322530613046842070996085366770245435152806438608097509213977284884120158660505942944943277251096808377666131779357185150972516758969927701331308099313068353394035218682422245823384551403092300573558394995647933948743709051533329284202138539250824328846485847642819544153902417189462086938150952840850386156272246478114931629251003295103220737529257399381861861881282840793607540199794267287146695405781911644656182130851187385199206617069648215465887900606755472433368981774565222331580432346880581775366420045325207811365342738160881850214712227692070198398643842689682875288523332478758893708899761934791878587560663141531905328186910573081273256928211704885200630308611052421311984818726945286054707930792923311203554910764013952378472832598745068154666608569845835387459325718064344883829040492093288798892636610340274433976238731716377171278120187965805130992424070093342649347001995082401917459904722400034219809995842999954671752974293669120963343220507896939956829084221350256124280620799570752384259135897463493490199922871629710932045017331796224935147883680931996222550370362423474065362046858478481599716293822907222387437843808112239902896541321154873178087925849120744680242843860118959193368831582541484628743158067275059152559043930801603235707756459656657037502730968939628016524733119396721061825794368976350925612540973497224298440438538577981493883553260009162585021063944240726392039110124569827579915808165177818396349141944493619658569575484927007074834396523759391072209007424442282130466088485260227742377753143514238649539502148695173163793869623583772285771201027281187201007648998281883283500237339705362372162381978198385271657886831444967313627112597028704067264143150516008531990742137945757986624971426967960757659872397426403243634857503247122142176976045451677274930502873247971168964222341609280423989663990786717548192464970386998210300288916190003224177911845380465578137109674912028978323400829148996137184157330211282092708407956450007915026376079984903124833473810483344252660871871988355023139351995190315032857431357124772198286213939543094133901140101330471363201985720024094368531924582865634960488318258698515853257661385872293481435637314923550890688183936877108436706092557104710702796951919980446227956974426693104020419079782131151051223594894669393880462404469208263986918014920900732275100506626274271297782995678373796668861584933866499163959768412590934605928245673532894538149043866469589962088875758202059217324792883336070322584779414063477962667123455581281706325430833973672556605877556797494555704954895210050377958794932548517356407003100172579264276352439582382280738231238603152105697636833766252138763895915914479286510776240384468932478588229547967448940160856122563825958715432591623260786366546461592537823149699675784563211217304499306401600302382932773229686523484673551642920162902799981695648130800152011108994302313321683635189995359687400095643416471535864946739222247005738838889217571381968476192048904767037336597114982524073119486879686077612324416462977473988621265587466256677356128768409309171233861877340219842825188500970655282053781017926878296791312643571195266075331612381836522255904169605788087276304168328611818354260327180901539152774210972063642673295387470893368720796612708265836927733688949198713250701174082722722113141525040756985898557190241835413601632060888058411600639320871998633133878076676920908684145195321658090793076375780476591202159356753555981406009368499835624200912340904786619080946842935346728971044068385799955280659454566301722368799692985154387925032812921955383454754558918358805742990644413745904235895404856083365359385811180992986692805276515313517524336855760953183334730090797104252258251834401649149931448935272964281634057101132573185961279256563790340864736492612515441669567952682709971382290755913335273513352846248859015981314233108377982622230594824223347133439833958587001390651282721969760720599549298384877285013478023690919870511871271129522492263361262182980325561016667379068044571582824227858388647891014033374079724759121234079623541304521072969532017945544191355983422567381142502915283970262388301121546784878258602093365776637305028515255888283447477169230873108504974974372578895495232552388443914271960247949542722700380075214316925233342872392936146219971184025448979841937582155339420994128323841164481291303806789080901906608662765015845439851745081359475043987358578040286514302610439853436318659636627253603931583084598323451193869302703564108156834262039370216474021528441688261575174408307651321938174748569177495952949444809160246055443406741222769425648665674110019416012455670519177255437423525609483560248548585441135078848257778081517675371541914047406357140338083078516849312811181001743569626293338908974462572852488334089844809083947769894886892856600379775792910415666741722187567499325872611029464346380765907970743008926316407286109005828129507000766887417927705132779950738502567484388062010197514314710852528990470553929974144100578958936820479153656830545138051726589541337101797596789227858380349445608353495521725530903223603074308004205699540604243242589276371277708090561274538843566755888602409724491911296930947788101762203688492195271667384903547842802096737442759007909282491066286253054250610565710082478758682349760550889320775323435765522528765131160604632335486915543859169995725813080724865891837287559181843497865092782752989860579620977389844069199638838200969225019404974880437781206707912265019670929960741992917761312895045331727949221855601152595647530396755188709082199900990771340639158966677516838477697415154307840612598632527889155510351094370627885481930513422951294315499374857273851641727463287528727222135750764392262272052672548342834429000120543918683956928291413282342130285402882116579366241834546550272422052812267649267784062271285875445845746941055899792934228302178362791370412131663135747543831351218453201790410327593677923646508223939295914050716224104330226105479779263404822258212504038419514460375185384397378643149380721993302907899680031068945234281210851884961573810408891541345653795576223454501364017923544169650190592558056001785330896586531903747482135866737325616179561276744629708634466559058464601977708043410472866632131635084594560715602650423918114912463303145125878569027593722144534482143580669138330709130716936158891545198375838056811964816721598778209657498248061039434483115800052083351571683731554510603442288186826650107887570130160604712356242042316925400038803437178642844183861349509956149464466470804578262630716423391068993883048094191417571990519142581736940666773450218624354924571301929710704494304934801698271939966775689629126682911694553506671650546903759365586917136313061716894233321364280781839563552920601347806712310146584710927593014494885168581487147270907184120834541425589359995487471508987366850942738671215544889827693183563366523433205182950162716242133520118711962640793892709837178341620639677150219913812983390909774526855910610309554413428441560782380922048280141429676609356460145042690586042843534649525047066066343381916220274816446968380932508212366401678250611535561051183434759010578246202076131642146954324466335791003494519577299136159140523648988363146771446729985346651395458906250192720503194282415025111395165944036705872927761717751392065523579566140441830652002247569366808039188535440877284162149497615735528287921910168379701581298422289329179879006714137509309901544656903611181452970403350414411786243075218880811672860562740751828036898905108126146747174484687091540665129347785072845776395404335343356157077632153078211984362057187389355971459632386964682170977555741029870432478598328924364529029595583454942223148019486110496201814979516887833527524831562286223232260821162695594387277218686696172438783939290566939965925842987161079596935034286406085368987559672139170485081452050569764634394583837019492903997952008644231813392843797744369178090858439363673571351666798407487323087893997265516195921065307056085640001514420189970115351181208898518823706840004905657245700354135956684158004682075875133980616343206771963587008007907646633604674534875967844861549150386913208605669551207144321664318246399038333628905364876174332782882744752692577593953429301442357748971212977694042004284199765136501279136351183551975587195425219349224558524958471775751470070622489619997841427597094733295339168137356478662066649275085704826785248688047366633593943933227571302238300385508197712451550531693340398868821934758134449217895254130311617305767263080906078961590805734483287408424897556855715009533610644179833770528899680144662316806769652759552171066321205120295327384657105937521492723603580424386957426122260065330492637978661080424057785614006227628149095523768172797963172734737677108024042251579280000471907743922965497694168139351670492237298417423956256520098369134304991427318479428373826506779418176008265130191298720347601377113418782818325250706782361936215520137036181795902182185390250457133451880640426165914693151764612186080402339679224165485336884033624212918009860552714254343740704205508354681835484058753865196053658457138522497750519505707973610538057759536857958065785926420930478258131672466330652635800015040506403603932470233219369759261462415255977609778008912562415263565158694757249664644274856660876770602634034575896055860648852850935525227577715502828785492477209854536184495446185411488952821315894332577486678202090301276277721864525633332147496410234661037854981117458378261982489330260612525708412237146034979367333451292931943677812408551456448259299137538565551679682352012798369450126365723672165114420197172171748793288858216278968771872467068900740092813776875868876220917073577046304047893209170859258445642886261556161465260314855541243864408712023325264452078227088067677911125987018207856587059072540675692986856453092032922181214027193668010855375624261866634566233927191647921390610776191812299125678474460503323174707538262181084179716879510017793290422714877396471362440174318321832498729786431083631476708327398037255844158513042781734857535929707943151908517554709447271899139152100198903612028988468494054910302200551852019115970880258379390011870282006504905738635550156875433459095376606400155577916836673081341025478291339975232513536518861974510080737160960254265293684890650990523768890839317785788206893175144839911739350292000148287660466686265973095679217466045511634477195527670607694992231461347755179857704812015541921510050190429049754828054914006012092295040321888853019248936746943016271088364230715207049689524700570520885700606969955762507598996273894318314594593612572722124022191048370449515002976483564282244866015368645808214363358395818711984350763491568873360580604991373674208742769569859867246026073033416383201515705406851450754650049124549267362580688219701963034144853294784101072550700354960805710117061062085695447942477273465693419838093858352704246771000667706319407819855742732955348096443100129062200349875600057166934001682371613152684963015647078975306132034989869621959017303248830614250493981902811127338090310327823813440096264872396076394369235519486546048070683006585879557304234711001340166908033423727349964581034639972015872090142886403472670455136737478384328678488713835716900646518370447261836814112332063642132630506264764331686365574564250014693399361340453058207855317391279078882346267080479626355014239519898485267063553026932988120571499526164458901374202280484422516585787323027675879488615601601739769089323692321732285146061552803601651517478237012263435931181888780820894360228098789244893657260748279327153484773047180111420273942025658184574768239855326465249559242617154550985684970394499116130581230630889785226880854303693938280686241166884359153546325339451671700629505850334761480247061487358002302141451373525430398488981758533822800729021832548316638810195677404428813484613888581442729320899362231000822666988563184812341116439419627648468400824337955427801684911408374667293689177621838611218646082889798996691185876951059836942515213323663504785536148513118788626921236699338052998862951423067563159035744512393426199959522340354121068624253539518761647857230997519813592960621842116806483816820021303041896818508601272353304981825826054938220830974376387600112533045326918125915110796970729464542927966763048932246391048213475069312122992043947385137119498556576709781315309676505956817088460081509419939990136199969073485621112916706209991028940586460883162412475245776986085267334405915671866511322389093299843181505756935111177368062720201025515201200339529293617125055590462216736257334590525603865330286899143561257465377267442362625606413945895915234392494588714030332573528353805020010770701302407308655223882159543865035652456369879295037681500155265361772424803883786771041171264422508219858529573433208048128249127837736301397169162264128321310859912714449162724465194035826170703941937055555933802363333131571801134747200479507534421330673011256489357989379124979543229895400517993012176307084676492279985343477029508324366071850076519112670543649009826906340099255744256124252673940204199594366181652288051609447353883887071454676357246333543257172172805876087011825294969156037650916083125632570004315740280963467438363518629774523504681823362058771073106109755416364054358095685446160977343135353313545584156631896180204523730023471730287517581219106926349874316707990683222903984664194094634426259653779623692676835203522127642664975824603236988065660121118958738078456817689739852084042288970086863140645724996835718873309855948006780479495132422288333812479396536522265805879773728996253415278680150393548665978368536285960089123272079556836449358153828714520462987054416247952172031112873549158628177461958248436189069461097418792360986905357608760219141140349845969556204847606109890543848162181662457935527486286293766872519381837124940216239343873359916517827798001671359638007746754691276625829050879929686005401066401948306848752105217256391417368821629152293815716731353702335387866027426001036534898132003911548024294169746772523193128928740633166860228386632191720387239264957871503308200132447054677582083485184440312908960640222573602276432091739939216079223089800831026018048692690726094725717422838777472392455314871587419563671949343299941375353180722244825566038356218499597980559253256696770789191429860618059228384175498435676733621396696873004200156260451506798440166115816688209598939785656475897138159035900809750331993193297442517852296760298869123455310834628498350553894943737344648385900532865513111224013630757786981396933902499066273011903818982365456428945907309085883757787058436575118379866650663025828483711939794855469876062871572508995806813192566094974902731826762852272564410761551171674086859091467685595884781015250596915115579990477452773655930679112549079229412591291728736167675276931744399412360252605520327564617106151264870629291243289885408245559214378011547818154271595009510465027593632701829828769810140534225992830403964554196660532775313419391596154414391805502555572517692565899555557066303922245828279714683425920487613225410099199558899749292988328319243620081181161484695315464539920459057593785239585308507415835808647054874429644414709274762614064055656936543823823955118325025828836802428640174899001605909206492590793058398252895219787970566449312501624733980676585879527257849924736919600583350048120260254713863992551917059402545102789049224165992466318631388661585861939024481032988336059659215512375540082654369546185116040890748795724926601621944915454901336559667383233202388287852730361486776191313474090139419838745048614379361796970042336765186407789703687995054623973240347438302754126257730509737732474421633324449457741384728183972749415604187027381302422161822220299860925954852309435273003100619608903369244322774435170932619006005323335245999878165091391814708506883809629399846422366590506318279241976378613307806826529802182892503891232418607610132687557427309450512002465989992713033504477729178207898364422847422976046891303765166528607780160268081912742923883564292839040621315799168802128393546095603863014789385466877585646675434204497185891372617296209622446044807830578902690073087529023710292297137676467309950480953810204326914702307792032564247101346331238391183085283434953725003063845146177397063263417659277906643494487452262276557489271833142533610905870668528414256714030103265747835867176820481202076355404051247226568052443235147932869301221568190085927760812849295861258275345941358804750245059207142486414058118248859110513792965998042339871782768782105067591687069149377323055417207976417415200122726084422262487382484631085268508529497133455687319707571585737753672011849747180803950018010610938591719893293722624524129290834223485921758644360663007731861942501486383562901249646246194205030393591616660260863705861909713809042954584923626473031697337582680059764733190646372922266563866503944634476474761128256741029427174169042339274528167299351801200958620357725623564101056029329354442301606403539649353118309357026106617897161882826257479931414627763441775196251955114288298534392507198464724015873048702262304711183400736736425896549837786092535987073424490884752145651745888812948127479356458775834947389797554974493213776914746952281124807960744406239593967666417692673952283952490376641415363349223608156314182431499328229027853613165590194836327682451450798271354819856658397782272354842016325172432431984492608433059597210957453289989336255114796668081654492321387826001045900295975964367138187400535964205326553721346898490282524608847151327580453985304874576424736753290142827727583141914668827939761215247699983211296589850258104136606539161368135039845150656107097163304527146034795324759487757178541195235084744890202791179060573070455571441572047860709304461573609708031489414061656656039315899191836412572654590607853155540835946327433919157238928422729198581996841813145904017281833677515161228096602845476475601293255734257292142228008112287395145268447463645740498564424430859278044710975085566758296136182743471772907738494416901568352610347348308781455926407828861866586744268811202060956443163161693961257115855022691998248568522294350028691184479790577004016410488858440636086866159810326241938796159384689357961545350529178324752258577249950005475455479817023899108841661474289192671633850011359599587570678963672757219392964369275886680384048769818787989174092906947439796544664746890809002731019450528571461375532747406414311944188860212852219753304552349181571098382623903143008323750749978171108402484614363982345032492054086988757401289028225056756132251111109812089427981227718724826527795001320901979865541810834700224694489328790785946728043611945500819876806763026168492223930011222607866467796366021934738031396325615591566045514832517088493414125841940634057443793807904192172546701113736026033381014543487971505161121276141082754734546197639366565842226454990762283626488922522854619899181616364312575988413351098573597783240738566959712726388196556951782639017344986458142663373571332110773769260026774943131953986970751710606767730099193591992324284562441010916684209129438811654734397218992318111970780230366507726872681044445721805137316646750221352113034380196342976351163096785043317313230197882273550968381418594513947800660115222150038043861262375165096542225776710310324521602309814687771995172688453559990736930665293735826864999650625596098645680816233604105757728756738265813708835785609568069984002449447547013151307277183993476746425384788891965970821106563191257105787355389706193516145361039393305877723136902570698953804132494102259997546239702593488592614166700802681520750308884370514573429204397747131857965684976451951294801912134028478552175513949281801041601740333057026937355135100071763723865505647428805347464328063454979910925458769357967689773557405839156530212017169875331362795208942193127465557036334738504409546377757068890292247353916748896808744765035489098159361340840745989329818125812507331618701687721623115781976445932055206128830521492734077433013125555762204326597574893117070188243301356846257325744582513190700387451275603776056701799912537028253389754264375641355975267774658194568479439675905290441411406407671550503877001686023957098531469290919306611372349981034120627026179090872613551321822565398292434427288840189046860176453563060668531890177981122845694050585667948733692874525512996757995764396990036757090474577272219195702725840007984378060118683556286328639218294016246335897059964770909716579159960959242140433901827897882141219995846049768041652653352303729607051004673384582797910731145992613122956991278383549578407555180313786345608759036201101811036024198366135930627306247254260730913677543174005338293976654563378717432494595936102374583987392603969692835030931876567167983050370973636710418131089211822672913720201527441852842577726838701462428579539307725670155364057319154622885800123186078824184376404198817792637233260489141129123731630581325954687759716002201588223332079891761956570624593639112196682271422813787602992928947196778203478512360082449648874921051691037165880394594256776505426553093088699572699033976669553235246243084087545833017251279015119092538591755356828072414218706893322221311274838402303211975942695389444674212981120983584747620317436745590801971130684984748335646081114344160895569538650726572733193307871488805254348314225313511362729643138761734531924047706693850550500697149008697675398014009671825021603252170994085330499924329072347583327515938737811865567365926107109851744533061848240778919919131442498307412034293988151695339232740352923268914135774756284099318373214131465904232599417661770918873661215021963628066869300005184333198053492358693840961806781364891488900989098941367773453966830947244349086239887565164580604649101151187587700979549144659795066087311327143227335603467010086841675523250647125717350805186144102760520271128866328837690341698501158066852098895298980878611580225519864278990072745951382868959448406704627136749354615751829355565811063661807351375144744262778544968318301228222097257858650553326672987346128253964673971235686439826522304590850749686690237850096286333891013840096057895490913501650599968183353581926098933829807773391689395748661172671706072851350449352736885436796828474979611275461757638286627983049885791111958465820299360682557492906200090252805845848888725038832980439339909096016578728276383685221071432405591388807984776406886867774051941123740686821789090236721746494979971260234862708549874570953863090695501567466743169012554880784064345887723358828859592548809789885239834274644223416179492199921809815959053423656278344052856690098676776175288091879377292127489319756372147239995811617302952103949028900861381400106995417061205425997300908423235457717531145351857354436421744161100366752107865834982777146628066724249457007675889099100877112605029728726833547250272829164865735646857365222156334118245574575623884646173309267723215504922515207656082760089691192478357639298912386226982423808615411344617008243424795615914728742213688058899260124296063759727090196079781979301183166488594043714830672205756508433723241765511938183797331685936078071673476077860790441118822706572016004757264019032168126357694366964407377916454146034798891815150332791331626498932492778702952318643309503207779925764778756863257723653901501559214560772864526911572311604087083813794060935131622290511103802623209945610059308266367030191470387417002804030930155160426391839223397590928496180475188225522457037478364656484519218182853319162201602670802135043354078962315261062521212414368698364692548917073295610883348112857404747713085219566784469681405123905386874056267189139905286005496973558208876713986080414604181969699290324334645203116993155234428336995719833346991501778449292915240190651456694554955404709883879586967454819085834270004630457951290796219206410769304003836685535070017818311574919717386512119641659733000164654416448917954983749103968656772371241204098575008900674448033956412848300689011672404426162858280779983655524308342170546444398666530440335377270971647284180081863429337092931670418738877094048048620405683485440556178783267540799249334625642161628312784623956383371676085518040245971358373952985864229613350208999003933752385087600111552398108676360246215296078520724622708990083284599390977208646819214804189050879892655168607828647252328963176148484329464224296345959862587148836644873411124623825222290345401845576786236770738633339274813043055161194116795282940869177117212048862269984288453068605082471535403218314510408593461208375601140921811222562908186187675985884644591139394454997779591055068008171478577162343819714390065073509189002111026131091869622459853412301774407325051941351854424872607708161612616413689759451580065545741892964728596599067006896409094144344745965240386642887191001503559339121603800625851584796756336232097944306369978885332975546903845066544395410271502578160837033974000895006572447011357923609801106743269659566445728968343700779552505006077141749343514362952528292207280567338265419648479859380382461941084347074526692738041532926066022826430496259819867378671824636336401625628095826639780638510647374242249890398623473926119732464196393925665182069909415847608588080676676898679207552727616268060409694889480570123494928188344579362568568132591688649612595335169025977962246918874502433507566004001098753080815779577959433642665887998457475548801451029258839261685488903766337720068443806944667097496898544365421607669659464939505173886543061807943254172274589996479758087779723981884199138066375136474655819736359050240551748837740760368967542560489837012401907386784832983666801662568856972934700631315812168682607027140245765225791097347709045602540650435510108659966559281545440559798220254898440584738887379395527030346684680683996157509949942322271153430395275374874425908651098183792221887965761929930598451451751952289778073964630294645020898573042315849949010910618634798011583091755466341099504472898638011835600020251596648909991939565531673156046885921649009242150176566354840780954850566991334249540468044158068186665668799390696374717192927436691802487013000578391360143072081561812114973352651400201035459439962787171681742887176495111133211480853770358870110855164159187242367194318211677181487706323246357420897358616745940061730552394625800065301161012700236273946527488691270493390353109220791533795165874680255400892900636368012105051832368265325079947600651932466995357489769034772815303393730681063664992504266881966129550767349155666023471790953257306444383519702553355282012585121779124356471380480068671332666252659593085825149327466711853662339747159048724380395546728595296534127874809567566377076917864984630540983200999672030633525755197635946616371040530630147098458877419145844781044056304349502800135580027955365271622116565785630728670266354898754481836614711122934751965532525066886076818164605396056219795300241741324586292271087204469834905937422760458024553493122613805177688718178105634778059429796246652443538666092727672268050437532290080720465037334191348752426374632854206251043242785091035107933554989789694009690704727872396055948660259798601094714653029050971819186584416768122283953854308573313906709325040423807881823220129335765746653567295618017025092439080363625245339841658995334342247516041404144356531962821770084270673988651903021628813912110546664090893087372613776149587670128679574697831191506170135477525661215291742157166526917247369023972153393826530192076312083681578062016648547325337340006654806042628005117859314940898086546662085714403602777660918658248132143345591707915425173247106020423793158334503246003646263106883082670566063056124864760813768010531488200719543911689769013502074145708986529482153334175006945570254972562384070869385905849689575090307371562711603256052448730646815835244195315066608212840091570301017358558311251737651536741262038634605697260198985675660345716146991580513739985577344645900810465285097618646541652881486112503158923987967971666855411627661704028192820444490159817553227971403709634102468108707170253883063388847697468302860222695078977907210994843259613667635805343987119895954968936448932120041713468898244837506557155681214246505957116639612219586851192126307285665419714424044329106933832650963396759086963758360806914657556539302724617329659764424170589477085069420808129772601157196880746355994070376186360565997092702892161526558580352027288094702734526349593605542417794819049675993876123645734038443179958165604212085992561646936750146873051047027253013845627752562082837965931340437301794107162650206582663591437421202537543929839855677890851810489626615360710961888262398089864836240249798513364895065420927819401261122241344715913803468031839728245824869731050113977722512583552718643806351054528107176163067441825429639511871632847445739337777299857337095060200398564162808317506420123588455564967252414685257768509663706553170006538407020871195090987468119549837552389016749899689278538691402785384168436903227623301374694850802327043536872683847048052524798648693735918521144691591721238086825615369645479508337681291391544935247527380599834624107381898221688799074673894281800071617520292071860071577199525154043562062887400671362866088828268119573111232914795522930788507037597203740061534358786896054505680284410344012909746321465824244852558777431425109046946830832494778178203118535315858710270276755791092333781639513892179004807820455521726317582566772519848487700291022584597589516254631722553122857279931615484585528433835154457417052789134832244101378393506510341540710116835693436900981999845943403621667687446521349950149570859103817682222404915108742669780749182311854085651548164207511554769509635765780159671434085668580402936140393005506912955183027550218650593549662310588890225572395891897445903040279853295465606729950031854559823949608547936676825517357759822175664028008245083836289569741509397419959561932304292856986739533589106810996621741392112119412789898831276214657762331420230325852585661401293650298099550931673108835550729769216024528492320696004636842095524484672017127197526721775356053368108417720947030598117118493900719844041174201781446590731884269599850591760821528079356675120040196730174657997067012769373066391691369953129367581589240466111208516331270614003524720195366332800737943869573739757187122490901752521906686234116994577298012482122324364095590399114734085223590177587939982423936992083047922398710189783931848608425563477725491979311168369849831053683971516512457888342060916459212830550969346010350160363262503084237315767867812839621412523104174869721041860887267670448611097249006082249086280595570978741821767289613780552126452756310419735675922559789755997244052655314790029242572740016631874239109015078408907789045538337012891105733134724353686163656423628890690966104362264164785427727683243814870872806943200066311369948182417587105388370107631559484539675532501764174144908746166497071477431426762511720144134337371552783597525545491449835024249914384559194674013101689185993940021402477678439907588270223083148958988046798902531080595966447702010286287587194499205906224770219113097172736144190874968581718440541621215148297317568764201006487962841972709160180529997494839104522181165542831208440389695382494838382734725259041033748315744082069102356886995874130331954499925081832471271681496957481278391584220210050724563313982410656728330407368890340851249840462784331047829761586769397971448103603830279037267498820820102755539940329987354844180105838529423931070654473633994685367308603162578699181153458116871477208840193850603398269962966536060362777333608538646480864282247684647902738602332226684954878721204287552394125524226022213430246858430935665848638850646625963830723367257317427655806802055669717860953614138232713214597146110654877128495070144309697444720298542779647617258786349518305352532792647685603223866983722996846992101040708461950688668625113462076309519888710598338000348048963331794196105165882433953678494894751996223501195282435686549511172679896961736693533600858642051393930372896354284229018621088546035336094849451261475572583978733056992174965242679751625076870425567617840811586208811288123421487307523909631317606174123830651416896139721475524645906774876192664297774734352588110474356269211631117051837745153051192180097291006256844807716472988200141451459128825818210911407994398607138876229996440139311997838648671398369421076351006568270931949363517171100767968449404411128062598933252205725756852441411883971236411529313580300606116199487887370619491960335527577915999302468552237367614117015121951316880138262054660641134636764022761881422682052082273579826627609359756232113796006168782292288194723870899385508218976545209051985100498642707158903041748763693291695170237216040924293571317088324550759852184511771669573706859957127319258003233956619332808475047727182830736534158974997673098911419846104835423500150933697049796927453359503913099565347532345841274583959645758441641224542278420772899767527922892986347633604972164567071238822936665476473131949345174211212285898436702567191601083384765371450509039038384356956873270390435963681127159392762722519984876492345069333145647359882778352137732779010811720132358772462860786775569777216066234769735950830055127692906037442115693495574195648178525921267251873841132136794087571505737267819628019967780921003797841474541750997105860401917013640470333010965635151174437748822279672649013021576843471112700995436076755120611600957396889543680188502538225061103808544028027831351725125889082759920444664513342529458770758246760020772212456459767360455524900995784744023288207310572968994502370366249802241495552902173199857919458916707370256398672733320365349700352240983224238910191910596059137994286669851169093925226959659791901972199110253473267518586846703214063663246211464411667629601883196974502458210521901777219733259455452752425483476285414036250430382399491893153410736960078647710529531316509927361845324788899181528595885531947491070316757747111401966130007833511424773713663802436491682740851784573460383931699502316081901432699965243350466069885594853041973460850789556439100025948286228314433250340944103954167959255385324982638747025102511290410561453980747443105990779959761171792893075685643348844551376162702096500675195982706152902697329190934202406427955952185094182791700689463197765571120549416842330754841575570880184180895699610469820251419382945413175405750545880996796223642583324714401456153520629488932707585061904703637887934842811861124867543108731143150967215365446665182095306623491111133006126259567661308187112486001693408083323714701251375306491124588865215432094182869310014494776690500877262237810568705226375198370417725258289462503298920004099532820247076416686458598666111034536806062647165921717181853709792761702222361210832116343837507456642320630067997808125003582637257724573780735578443977077464876753633819206850098706223799765139627372062703809607430487574688205981395079275726131818019970918241475808749030545084746778871354945050185092708219151725405905004050113783386444994236099908013753936546296954123681099971437543161478805716978185271306409267847954767641564828817730458768381647771344040690610900446068706506345451547245347458716173501323713750047584372492540592788280584589511388136591028864716337597213298558345503014107232695020937271001241537308237147264602091066382992844306562021068429431565647907541570690720768039499744988688171473888382208398817171587494889262065515229179681336646520377438051247529033373086289768511229976191946942317118791078715029614782696813127899870201231123635830247443769197768015705208461060599294331012414222858679782968879309184029129907404009484182899290440418160819946164716365589516265699246757399841400098122516188438787545032006076439387822703688464734914459334597310288272725874107030148205692292639081121203537505152743810063414616655902595762020753851612348364880841439752827818904078427907474943451006511284502655047663573922015529880462961740926395646334004485564975850665898461836289447987899821939910299851424697061980084284828818194274332813354538703786122926925058398677601624533777911465293524930528548014312875460619238494846184007514700859303386864943446521803565840844775099931284863618988421441692836205996067206960049782887277073536385649283429218964805756566822582665144423682825704136994213566785650741472324279795711840601023353926649858850885240121804324103152472788689261496034828259489381057541511846695167598484441915238052461681998937428849859352512635921259744477549238715488731427373483032947181979013173813612147832674902122453560769446835487971474928894422535118746307748494828619092503746448651447383978605588551178385596516840396965704904802267026142835825775073211681794263050081361805678311493705223674847741710511840272067832040677061598050331582311023703431197272168448665805378525950462352003409512771506936064267721643516749877870299721149332682091902356151140615417060055979103736201012864887298501302595020441277270158605234132457854801123164790083045849510160192422094678756790881953677682544952864175590818575204542461910430602934780689022980787668510497365652702819433150818011440480803592604632970531651080133916582371221226551145361871934950785978288975046306925868520757314158900421285556789544103317680843690491610308304367261500781668359679729757995797523021137745524900979609604744834124616635508747957290355575231320072228422101357957147360724740319452758075513949945043606372466621392136043822907392449451308955794075520067652320387479200722715883279400815897555896896804968413712437882714805409984522706476802332969551056030490935941581192942943457308194322834551780131340452394035030380396554486720627171801530634879637179936679898360684754214804755062836248507615718603379612487829880533814255290253877075140552138616595729274513063555372572285555719188889491576512279817593040336249999943613956873232305926284584597782540161185876584060030844129041228733474346112801468494759795875664817110918163305917794358151250563107440920691248673876771089138853636310678191735169783442192363937308832701870231882481073933842745589979967313111099322444531419693075383570400032910622961227211227768257354760714448722500691884468256150439059197824059183270739590958571343264086814995084786997820107872571859615301404577283967567704106723912157006326304817132574926104520457372264152875933451077535728314721985263361164978022603202589244811012364191477920679486036759422281610213041190888791988506444545822683101869511308296867841152279807930025302388771906730854851398323404199004132955759698448431949309114628006590774978584243031444226570354609518351098864065714422508952265488516548738835269743298745398146621447311088190915740742285881982417919927388297683650974878777614541823912830554023313257262486676897939181221255815417110063323828730287364180992864456391257436362258652202449267183467051860388445147869725777965882485032566283537673742313646155877233927977203317616742514380003590551605602467201391023291013088061126685586371460911627526412601203560568964688444717718417189518292121435253559667376372508735341730377235914205290508493233554279567345763755437545582603412014692871484845085713725871830865923316825257725616403101837041801257817760849730310857377327103315297270466896972747411168046803610790609831732668521801161297179266015949048854587001767805354835731856081366211015944547119585972995574610023912466447939751451585416413881895941979587391700364559631579278481317155630980931935839169395959187643664803631302649687276543441076024246329862876136717008254083610579801601067979210121878907274836250705761532889089171255752659682831754885770527889272172768207051925650796210870223756624307685603911804041602508794908983459609000013134625876180492024924439373457004220606304657717763350221591496362806353273212116936725084397177764120916106164984525983227609974800509566053838418968494231798814662931632453459280737246993978722063252166365409396493534286573594260204325148533966771086823383075646252373015307325277702359598296069774621403777956762070290793296758931868999870524107969043759349694710652355879490346120481741843950023266345293299821340592319523851466024873999434946935276901031314796218279987064686731301033844997839957366030465468861506000025381482843221203482212433257957274242303020769710739457193447153984306149346606345975810752964398016991389718196622902638537995401931299608656032862411905886216258246378802828607049613694269607236797257151425700895863660259018850525164314289900473015427305025849658777410685142821973940858876702601931867158033867054254739517341856958982085011472037468185542100718202198797962557154745105154204697854816383890981662559822339291805464871683650268187169890846773341753168223943591176440533035293698220580294129341381332598806710186672344489121649091894299040027758902303701522752795681237904311901255025637742880852874888364483806499205668296997819963021633084227516356685057249691324269480413104566037531954330403313181091184985716547076004505480451374606206214171352633720628606713311378442426083773373168488598222164159159920429774941894066357767940668542734365034444024361231885963752998530090771104928961103418159113173167738523932246516596716505336750098802307944115032860038723647492035662873747961400041878342508597290316217257055317567750452453626126938356539225285249210485794214956100928707061919245826079256713657134258118039275882766438995910305203160667925706167375748758169439212864548939676472632480849507090989951326957176747132875606192090554291873570573375102007197604242197500393541745504734170648776447557386649206721292987766961557006107981005709712780702103814807889316096527864923932643912801795112648786578458510628386257644254655241094665390674551983764531928239436128531897146507921154082279283559517454685250199648340006769667040591265627700737048015910057209974370721406294406718648890817588905030809928130875427783589132286298977285128672779299964385370879856093102142490976280056989561257056531633126805892218383396098776652329245914343744396980205452273132939192608390464603231749092150019579928572688364584886033532338870061745966208096666413693221315670164630953621712766654509664656773959983930645727370644934201648057471100394793711123820176273551620064155429280742434117721577991210941896763935686425107270705213472318764055817326953911334871642924154162184213473279037646344182907579481018639431888114417959640363621300589330722499711132951904488646344862817567003462069980396627761409366615026170253742943374263055199932341862891898639693779648636262276640357938697179139950733109119959360217704202832625584883099154883931484203339721463245037740900772889175339248367271832595849768202084030665670034693549734527911781780806801755986889371504729515964701246711896607158782099837142863102759233042858058748020338630895802641959998599816840126891786955904763452274342925174117984799306641304441286179157855712241547143286001262417184976808272966441753029793006559435546006840285879241736360217799464524268210251932033597077180500566162419099392645213657977142118209860786436115506150784779152263528871005005031100221898375872645956456195448823096235124832736304620253695492866365911791798063718189016198004558739945042014131001540425071297139670023683955938406104039187532913563500515911456011152033980095051901614062809537076752624633583062420492001321755462420771982358427340442531396762122007811694656867390157525918809359134980921164386790559378696054699393245190925590688384047106476841960693370145230487132746511649056440072610776946919912707411211317447726399987821120834479863852221989678010502404916046502728926976986862509092017586429016783174795541424994420628657821669215652535064941077241988205191570666460139320665766396747966374515537009232979806775896174809633856424121403932444806278464793390209819562218759207693434161850397745642045065828643620703098009128854173049195243776460706254779840948928637052020685338830592173173392642357008885755029269317704217488320691635063477627166367475340982065160542434574054806088536917271234866861335587976106163698825351962497638618837135498779387310955800949553132205915665422064178357137561836927225295816302944521763348260901916039740973380756325913688650972057817329802997924487079000333996749200809175758270292185765619164417118865353830960750329460244020027721904285071342281344228172272020080610357671126651818884161392147270317162969237810413726941156692692872949641458510431558452770300622380839768433729145812406908922880596626370400294546312742029259592737397135378664387305729580181767035896157355667396547881826942896226239104341156171133223609508134365279726741937208599486912154073361474662566814707241830157382390533341184348827734850855785958986696426068559721955638440837646476496718018967064138569208106589454940503332718242323004785649208873909405883890849551584438602658077118146348656508916010665957185290289577989261648008723954834254346221497614532132812263377691942526332541356107049322164398918547960896380694884913529306031333295230272739925527852273892454884871813336661733383235079532538127123617275854381416865512351692499490796734757939303419270102976810626176626189734247206995885291193557198464775306973648085183114960273810402697277372976604797102712951321150991827221364200797474915061574466878959981610090669052349557516742154369946903264577920262740556379261904060647607264155549182017209132533549394212814638823595009987082053867743172369673233811666747755432778133372110798719726164963579087388288864277570028020929624819795648693428400287252273264414127618983706740978854365700732403630798844127642237431306070973692037734241838608109292617791473763101155569538390126199464616200346455939452634095261402158428408675860877399100286601628378521558298996233870038462751406319116890977381481099282999597943150305747107988679925658677912695848170981216864040068612757576724883208911109016989283309130673042793326705342617711358020034076763677383451100287716517453074985256387323980735081518684766659809634366993475125874733900925727507399155988378400909224829921367689609545573417696246736602187377801150936716803106931229147727200968177183825956959372492184225123951337784311089066891622057672944211713947454271070231390109962408413430051189098240876587844614443611645123335244605383170150627291350154248821623306992526372067682398467717275751783914809587944810926758585817098576832431053923875845566381972272254354541701768711352121399159153636129558562517929830779385690313489286302572201373937577708242168057656268877323658814669054549687108069869994194654343748676431633863572887305970947261256965519120381989421210787986924127541119579196248769975527157341212150966389225593163332305683101236826043069459283983542044529107951000908024885298677132124427128348151344863277195852791687896660003936227773852840867018541953066817762674825285969456988690653126622846766753599247346746955252387921830741021044225074588559202390673667947208715666671250941049931557690381624399288928077622468630277093672101902163262713369393048510380598624083468418412316216449634969359648290835884655971836339730270742283596170738717419090600660253209566684780112656232345957960705438492136765483040372177032256593002575754972804190630579522708476302272229212337919990767121140536642698213588895801344804288707012545365611547110886797054423189539603214802595562881600267165301177516119389060889503033908245628942046866089034436264996787334183305491050432459261836827434954323309171386314466597903931860093855802249101290151256068470892322318568252742952710394582427803879711087379595756561121286217426875543274799868193812296380804810821563668876952762157757769077061709280490162995944731481329406668556551127440882594108679410853044436910037940492705888034687352984395983962192097053321825875185653844720688964719196502504876580945379940114142636601654179576945191149689974121407145048599229569216372908460222538489186863823126718821460856767218132316426546383049690953939381679843247991099928382352078607497626896449664441976875060231407223836662544015486421706770042089790938296592836817948123416482608063002127606509986660287718782034397849497587809470397155580193686049256147975336241170847752461007336121289755615141950839254018081437582398611331167825479971562714428773903297755160320590363403312634610825512798350505889768484785075360393186906978082502898144554934388244756757511580039411162994991320439288728958482390513869742054669637767480702986436224000482570500219877557518895775366198022810120319555818819184732370052024424802822176650149881897888109240744721067311200990986409183113334886179057496052625098068537655331345965891681756801334015571184760680876594436664742839142836553622390396499863434885163385825293140729279067958286178207385223428447773079532662011188660974653749121210211378420565826926758879007035628469039894185847639244885249358179589784973189175233887223897759833010440040931590634981592199933724171208729609298539064092113309901529422578133156663524136403766947122778583853174519580280762195539341625088004586993563932141508492955763662101516149283663802922293096237098684544696525623339662928352730406964420278126369263954842030100660163695397243582003222526520657360831893789625001592701547305538378359671226292321559327329586702745322521446467299641815944686848770659333112154564011050572543307263011074470727481714973677791478280613243120145059032334575421347883980234684815718589155012261319963430102445159988444020256558127804587635807425754035307732357352720417710132816048376733378995937957678510695614637910893102714572263948274470697953038352570892652660735458234431088611454801184413665154626784069189080725096253028039978238460724530029295860486869179151632987107972258311132475417128296946426375402214058888791889979424134458491823967884305332115655555099762844723087724999017410502029353736551005960545075310299724210996250307171932322047155523135746195771059573830725313062486908241129423924277701174836913255929990273466576121470364083450550569166682490734153703384080445740162559113339911892640544449076283691099787652137694472279295837152725580743504633199954659219495123231515566162231086024541761162489376753903485173521079308571382724901217198740802389739721971364869228598378457613700653365285697236589132756039258952473276373661213242088914615236645253093820032327961636272245657710545261735046339722049522830254450649858067156774593373629923086195252166511321021467485037844144635347875182445962752099929438447398857559301524889349456230573898320300760010798810200257533602303082966571031022263829816620046629974350607647210057106108623971348402243042432291413188979024811064709520044146623153973655660028303820194957676395725139009109652433105373757277055902311099435383197538984719160225735815496385162307230770007604763253008884300139429956599500109274841911575311652265601470583813585561678687268995760159175578363359263708280846648504618198581634962891038435695616864164357257185323302439914785597086060446931257541585100873754877358613271007479977715896769968347031094984570457692314615177175058189347571560079390505045064974103168200078429440063072174735177666321808849587709434142255142377578924480698930677401904716630830228563610086466685976465819550332697864163884852282647072775214312275296006105180091286711922829781291888197183934874125551278737358723726708500591883235275371615620092208150039390963473374715873389136840338889943374130194902676144138832384329348669339547527680198148863897490123051155278630639522411909919072378153716129343279856221443032521115997841932349987802644165605366767132722677237923774428354381537532419233328568217201480429322118467909935107185601193349647134887275789871079683823797424386181947034360802880127584894124724589986155206770638902950978832386409049812446121138487861071159156326863392235510640667590684597144917393888600979100381663738246557951530205928510293965499202810189274267794746489157345739784602238675978159583130867831423450691982202462639245967255434740362159332135486267118933558370271095944340804007163248680733300604455372781895814842990217157549320966599138167667684508729489052504551133400342424158875998415934451565502241878709344672163194916145675179699624889850105464346531297647349540025367365801575183140836764585074850963250554652467863116803199775161861882498168980417877242897703307399866524644377566966344459599665938293638041276070846157694941393420678777073074077025712256187365646920436842734740139347500793941714478483161355158355558731751471532815612129892187796822234349429390419832992220708315176642545101439034421223292446305632613282316167333098777311520990688746871631008777971074029319790620329416321671057167750155448124802846285818953599249940646321284102678397343927773074099640497890413171939532300331401990356384648482465625500150466316886183660676336419008422612224053340457874973688969165176196248907080370642073108266364049909094126235884324873302397337660744250219577097230186910045706184668555532706578289439539228078876170581568969304696767343600453074174600896037906390713860619028409682760507021690399858903174050608571001033613728003612421687036616933128073608638925225109489500917510553287417040350531898485618860512316186242166579815561062923823444496661843834365579080765404163257227813751453176266257318924161077776234268300926794325831537393959820247651240380937706239510786412692777888045882809740698418681383609782257259108215924758887556542502069548406177564361753288948691200863037523116803959403319465235642187273608972450400576835104392113305930939746234937790731819994249736729627929449223643373094657730572108361653148043273708776953256682435793753629318945785723011399003555394300308327202523906199392586044493412572441720898474337621633795567601694528975139237239183137070417124956224130031809630204257531673875108854720255165892580034962396957593274449670847639449260724307122526534269276737726008356827496595962343765730801768274583243816721134507281057233601171218051106997532939002579457703266829998768939376657039843916558897742644008782524821682031135165674208709436068598816622880001008471613609277193007782695311469286313367639727501754202221273116092602748473460726750616557522639112910616092941513822448156014823977030802500932832606200134155540829464414343106055515519218016182259045973690314828353252537258008283689910619024015278154046856558948566840065787585702523277640325127310375448719985057711497537717039530490276874818357541191685600970152205312611589949318908629938666968525506474289278292073636701892936196260099072693653804171037790896774302291521658537278980020348810396937517942641176643224621222116575112904665894817257751801694938444910809604528598301684373011099974027052982841566643655590582582756975449054574261274095361121193478194231785014024652220254172826126447364171892087903808155155251593839353119987729342744868121756315415272445527369532503670504733582931282770952159582140492994571306966178322347654218249075303902218121916206594292864629254851421540542375252753599024672764217301208998230471938270645413791185989419371995810902046701134751581868429492865361734100973801743230123587211564061322529405382235967983407987522617397163989439020450144019977581957901654480506695836664729867870550098512955867817315013484282668471364808315220616956736967292782836583642829712293454421057807207231506793888349125758486411149700351143886094496590929976377830160467234108081215303130078113996193173474386902681520886245902167124340811251955603910753627365085011438669041061724510364118442539476160894680880200743029988571994993650104056665301101781412887707928799092604984409598404677646650776425401443437341006905297325848988389893422662958510681886234008368073626718098762332962759033754612382529988646240668279406191668639665580481929110113944775805497352588385642249812620315399344762797826381154245871197853025066030172559086117531833405784710124950465928333495975947494420254605088387097053723636429344704794766336834297912151056294867121076392339591476733914696528649970763952820204495843174801772732721446740282463620215756117819893832014708288466646585701580117220474966299174575127777527721047820107354626009766642265643402079089609241430357940213268312698114133778832448157569743177463560478931317706445400162132248815023215939373929141374112863283896554624886657382696272879661667439173404622636939254243252524007956714781375504198485997550494655582965340606024520530332846024698215469866074392648254671533407892379967484485982355104219728088256060737798798905704858055275031412176123508514550047626426395599620608766088367315649598121115553678447136416259258003937589077926785066952905013958322297644706650076278903101379372190569111824640981008103130295639071482496427699571066306142922758285817779967180731928837579068877156299713384506636998941698619777142315754234392932652095167907934579664244559987252736979290462368785881631038827529040832435788152172803323253371953238465351020796901114718811689490795166755328021024432408975735419444630889522419704258732865893010561059294987862134908998845476347682602720029793490993791451635680241591266493652297683798892458715990583721565876577688349624908293383164365713144017562908971527651419652272348460209603985441188533426738965899424577533482003776638412485932108949008798631776272606487588937074193918531002772847069392299174743719977285548859112504666116972839219183382055726111831471156271811359969579254994048504282246895208288112714126398389410830861811060646067532756185853810751190984129636225187617075384830096362831427601302030592563059228451976417530734640605038504430535882711097106908251025896815558936405787785390386460427590384593408902323389317215676854280917827236624774140147406793136335880335901741658037747953706720967231036652405111078567613815194847576173450400016182023392736063260264093015001322975345820776808050018855367030655584719856211048274489973685392608932428389200544570276739759887851194305654398609063793079634148341940677093328868951933966964604869793572429889161066673024327807072330322094748852621040956921201348393848577115950066475486404431524733117414629216265796857217266514508603046417526552998804820333143665145696789313976728766139530430028271548637970139066792587646839762829001167903542886074338955232629686648797713583421507685272022231408669243516445086821911207173144292384450340801538495017501612135963829404498761656009305795303846562210152680907425265219272329697673218967500474874714441187524653299866523056795649885314684732910832274676313373414844686854973671612816625441919473146758014104963089490101735644206931417269449175595010102280115265397249067499660219791890512119405643243481738237703027498515342695099054646914707076436959425727326898283958483818889547277473281828096273071299537444840089712883873747348552533400397207235107963238777103401034874684536321624656555863479205791554291960343241226506222119195743349482857966285018191681765204488374776576619318198328338595130956162818175316820263585528426407632568337282225448117122270513440371256004610249847045420446559122676484547367193327492961709219431025542156978314044530612371182147433101044582089876012718833088182144430734213205628978767818292948221266647737482542811033412350092559883423574145051821158368561889310816849371651449643126493829319594143370158845819939023942028692039970774291179937700175312799647590340145952751084759337493929582913069924794497455046748359613697135992005308225056739663752698372875466783615849796915155329790058586121399696803529857700690943422554577466162869202480017593688036291655533631798780131518945889203437763826006746954290397795087040533333960508839943993000276375828315995754931403301400974376676182824801661918041113912025228926276948802423190958992084465444359801938172147345628157848472329583830574783693154307953403945074586760976703338439879945334318867553638759120875895737376387390459998961227645575152412038701788090679314149897693523101785422158837666659803664368295920424716235730593614902306926170508044434263118827006801713008411523207233090047354948477182888420809744456168868469664396181148466511591781920433317163273561106266371837608727693172074292272890180275243975256517740639027469035220906444465577627981004808278353259582423219647460027894511050508210078163839555565589614043199366064017878739818391048999495672218416990847683273834167998462711200673756880179600693936381281778999107628026921659076651781481984874771248632255291812771173603942378148910580743755994275634713886580996207076354110109787782253873246641206891605286374601655636813864203545890435103723062533043860876920563726918804633358457610892133626880240185481289919852198304818708592033354370370906714097893933704854126332356067441964241644386053273650449493738186402541906329387581556588478374000171503062834797944940659581265352248251916265535468548313248463577413284043631957850281244023732619909084481820566277678642601832418815173248548738768207731970962992454477587157111398496851860636490639006014478818937197316316779641956158260680047403483915099979689550652199671730650595101622207853095730532988603396687913436167140329903764017471231061442304818627020101622615446195217613060464890440345760052347130173103381881155131556518288321089818973177324343160493119879358375193612912047569531063841036669177248648221649500467966119600023181942316562956708086417074500478880905753171616961374498040227286108491681826353734944454999595561664973949973736292740751567344960473242784583342486932333721834240534092734438006342764422266687615674635457158431200771631941262161457063051588783131592795313979230432166184008974009484324163307403499881011518591130010675040674596408440192217966276408552074169984725206812772733905778489244930155200908753194423885078396399131402025770843325378994860921306576962778693650242486024856798982748570140591542982090603931383112863138917231868798578595510498818412478196916105613777399272047510319580887851802372192110589168688924538488919471751631638446765346402249799878359561545931383150844696528157473359230214522928172355901779212862007555830816257440262690670509947068735150877531748400760537973571069914776107606483913492542820872045560407363164086112920634411358755783933804856809289297808053152276301367061105862524648428665631569658071772340498043351952467965237740545778272662808807079466779069205465039179652089003910062709832200126043035266510090556083991169370506317647665984144709611415172364165961007787182176442488777656586772912554123805806633641287641038552514604010914096198266846583627481270576496866737125405753786405394375631853857212932728230932940773597765826908932197584702560974163506581828512071763937026168030534085874157342192833709015687679393046394433661068632294603672500573368947536577207946138535929161311542718715514404604975865153662161550620546161852430252894179531140051844079460777441170432111888646387067534195492900896918829930264840072286149885582648516606220128068790437243245626916950263405950389913505979996371362836720990231943521256169600639874267384348481698785851802739718532476662254303164089984999011812483241195813367683901074420368819288633734688819181329125889447698278511833395405412393509828396428017324355933968472625169972153801723926112367765382274074067965648425970238651162863936454844180654479708355338860646579295000392655089922913773522888277552107322324448836683691671164249531592981267428784389166281480169696519006647347094479210018257272810525233353528855158296633661352103889950716617763958985819088443354104846362775501242806832584569061508252321545685735827184590096827737603674565219902563511559602550227164059497588557531431245740321714199952708503222775798782227063884270666281989617471284791292367127597126852904575799092618723782404632226680147414659836726756639220471246210449441689031458895877145736972142359880160121693149924671163064284282916061433359044576108030384565023991052874931517402557819777298409925458832117794769681081650591488715393014003534887708503020809141013558983962571024382740802085582477132820131033695812839750376430058275327730957016011617817280522401465082889838475524532753209238328818506387305503859828534930864778092003357545088343480709549134998031975866011526625308267605290112150192246497743173489908889643766432045595648142142983151889599121432776716931923852315902001353052932909619920215571816147146715730325895521279691798708479400921074551110881698584448606143614805570042667101325002622104091779280887767909007321019569425485767270762792388774656341207540358844540827610422220971574517321145572806034868928694898362790103693059180147480860344852024248851279769384752596445305103501511504291038138960596991801033901053032389258406346852412125434205936538723389397041872420208820884398616079412183633870633175182746380665695494718131132023841777387626824332388994620464453444453530169021116937576127438581318357490552249401246123596595335248545364505991267920889995568790398801538710134707161261232202364645256153525435527225294870464470245727957084726764203243588657271604822334697045207654075027727264827308471943916654630727192713725772578550062904423315827126673435017060436895198720620785828147807917655853867977961133243962866593669218351956956178743991661704437703677098581556053367645193358135725614508724151865537594245194512009617304462897324222283122721761779896676870448154310153358089918189864982999956132279668600318921294567858422172433282560379160941218862296719154465196806203770817006581219207331714823091877794672510407564532691294515691297970691095119176453032701140067520488182665114442805304116586502355591280401240518490666644327108714365936212803881101757793303663682768733231760788509453041964500591954927510294817833561186772756301724801906646097052408755218449285356097850528130932474749868141036648849408440700005522239522418880770747487458207096054854123632503616187711515436584526767036813199424280598419751625503060751801888429735668243759713718201292035194578085480618990189086407079729347931929869289151816327306933991889954945038653966012610138550176951001801991376512193736228904795849944684596079874803034293457747995089268658230067363460789370847790999169875373421848999394883235217644530219987522021617034094946669377005262344792167427492279575212692354855555106273056707098089770095577554432375189002688679089267759674922085843530173123609454911944777558980435527421329836270746350881280540294403768170834686658237695558403978634940706274063073912247930026244261720254096239064950566098634168759434957754882345368998394272168216092478852359012162185952939975270769724002463886050725573534969369580633678881264817772490147222737120370137752023836296854261134184966581419703664304296314869284956844772742953442522781670959191234179269452219030475178806623136513097086921088919297633292351308717004936101558492518404636535048916052428049579864972746175374819552097366803108163728087689805525363865036865725180025088127996191589773808491506087720135435975815144773822486883217710709953523830829846970188725659598256316558177621968246509069871534075284893248195939838812962043565291479146445422469416035825765446253322863114427864088074875801975109490857670627320554066441144975021502961511081171602572329023985395372022587672303409266373231876902037836561535585413144423988544319390795263531886502147724063695817172142457709421563946536959461237904276872305141107961710155355121013107190806910497965899335393135989563956107952192423702634428455168933687468706959707453272474504474995569798932769656357236623110523411536973536511316040921536942527566323615333006929099144578124864728329418354454446637399131420111430852569685852479167576937614251684148218227737960291789407845653277081916648234439893249666561665202140611239489792178933903660352997852343311920964059205657783916684580179296811387390562611858116652500780685222763094722748610816182710452138992557955745597035282208733968223524753198519113601252174131325164594344464787961683352745952067992921419042240787888806302700710836131007371689326302644029566018053561185187968618798702085140210848253539204377946789480066652671322790039278805870048148176531302773153622406563913791009162917145936605078058141144968131941533133555759596719134105653721309559942840497191997109943454644364860563450075418019983240856496489833907002988865497338060037938781087630601378623178438822344315735713535583056261540963950622924458621483270302604305406933869082592711354471945469206409539838804643590611768555620662165058150337484662853897456411397938249577879234502625751868054900923845927099800203706859593731016911895366457906443503075146693326322176936200378554058307005061409007501269833420229793629173354713877730799203265164668807507396149254332284509197825452318437294829785217909137100665209267132986021071260543349942918577270719659398888202381866875034914929309684343598174048445009802224438578590998476114021008191823454863596334437456876198068515550274016989320224213302460715122790121644172808345429311625248566296549074199437239577568513561057063130263556271499242711677458967190057849803865345168069380450806895176883109314888173903325314148303804527374701390142244783745238618151249308303851430238186392117491686764666164196677123333085693793549237623032012690180938662859510619836660480916707568585363294553751670198636826586903532616274523945162436143729923471293819123448086945787587785720750242314010335280825834122803853425057857733282160708289877566895998087484043131918582681206561473437275593250764862112303491541328599764587718471128115678355408721224498442336017485737390936046070213270089142057122938250408845617535211798834268129283803475479156989719902202906556222427105239649605133052791142085307459263593878817481942073424252790028580783624657223579923391187403231213460229368578895706958512462391239406671009287178433834177142405118608375159576381607473486264656915654380502365670301924627918119669032355778655888085678016649121472764697349424545468927407622516739120997558773088606404603994431946011248447880052329902117889496948105686262389816827428920339011849662799491921068958066093322339013764926182537080541356989644154255727438064230500366889822223018523537404692673477822662943478095171497317758228613621504799456806616771370798985704899315279440798325453038742508903051334487502512028221521806397404322022848728033503549005678209571544205291540021120395429911597189351859994673891993237072595960428507135560043390372477214677325620219905431366671974314489950075280551230950573904898457361932438743214871415417315037461950114470918980836730819360189330615941441217209648394963828316847374122798304368151549150634177682581778093295612163602468535447944439082146810097559340546413120529194431990444348411594513137890831301876393975664953329691826943860924922965918049337775746042564812351988336992165057366479836463163704674077416098736480331139872742744036020765111749282186579884107794965688637788112055310635297566419647759922377009979477266701748714668144514591483612656855325445851483660418580462508034767290914277889918742842249809073535666989663641518579373836901278875709329457432840985128595867021403761776643744562677260180169415155416135422298461448040340116606513578844397439966605115290164683154330010162380192424443321326879449317531675599041679426779139191135334677636923551372196750396810209357068378045208015375875200929164046232310911379715507464120130014145100111836888111081858263072526234235692038888864902948873881037705332962072152631510860311771763288189295716913124645796337965240668065086341068118166490487699505824943053412719650407308167327525136688697070150641736710866381644211607279269017342881458710779014225701128551750510106254556718413222985477748374064529947808450324111914153356326757572127160562585749025598420622954677161416580057523914447118097210948196867450631458020079174000867704473153916677478388399056808415401729085438765021735346207143285508887775321856458987407969765657798711867491556442066010268031785143225209983892609955526291498077371224977058660626213115418860630190844034353439052890992806023144896971677561636389022443248023286030382431872714567299394282181132196768736503861807253384549606719953384469143275824724094646770955228768043387508083109236845751191183000183632642190867257875681242456665973860853660035401881148235304644521036304021242576060242163704150161831404378209221363102892734029556402234392625950484967050902987830851047870738356702309250028762239196198226601924509411902882933843042183984632707710224053568175813450389021718892349512370453312704486325078495296253149473453565988579513958980608396951558889031041096182143168547131082043509287898759849910718767259710216151553382804161797248775645630463689991672704341336771570700868834494186097400881762617078592403312368743096109297615355056178730658593603832878421876736431765226075371221070179756324296639310336058057615156026137242738274050343052680667020663363714563891408204206508404475139505201726963251208879794235467349456176608818401913095611459100411462436878892301103354698506688367317979946626661816780403638587846238206253668784706073654146168490264294912298870774190628638585200967285867687718691911177797257080916139053174729290196120808555443622456951498733273331589029139562430141494940257845054152716430811712353914631720790027382478372140901643465359225911239280597426140890571233576804527395249796960460167484140780689110194752408331431156768360837340757946215111100125771371994580573465861043056442317923359728286196685777302001157522624387356664938412951498388061366618156252517745320747831094388322065810637330864714022717673303625646950798888113190424980331958788294093357013910933646323858663695346084673765170779938680900750089336572202450983803340624249876909315532682291315061818215460712951944447677913119035734684773784407127549961137212380457632597226586743746625208413580422714536777012597876119433792166619252386521375640129713355934868459118499875621660641742872445571587809063247896807809606445712516238811305472572777797820495033505940637238534335616024184236813979605707739930597002768613123971537258337426871737330583887871742038906600951287822514182563202694981783085025291129762003352640406482561016990806885844770799109030225282905979243720118724431396911497306728873524584725178451734883192988161343654065064494959164945445836014103144321781925687084664662655544133419641409121104056557562286977815752767277182567967398525720206198343872240934642956583963073482476128667696526640639284975838106312938910278077577120688800945899191412916767559823192097027013094865420603773432064407694234497953541727254195622361520955706216486954727141746029468046708024788262157328776928033114218867068386651058156011372029093319586077783109463717127742286328217605408233404100165019488325708597100626290408610854250822115784245260928816978426417600028054980321989252451261409717946092682819428484180688762936964035380576242086834364265358713193596541278573861023713030988322782757939299025390494469292097577247378573129904859321004411293091807646538218957940813718765385761384247501996796725176974072967057843501760140939638509948495826145888941216489681341707844031646248407968440040216390615922579101744639186958802215013716235351046828490859252621720089950566173661205033458834553179373104222671065412569622820399290977129315170856261584209401658056946564565850581004006158255896323692523979715830616623272919841222656524734954241906950516198819560224648457167254028105326468479349254029585980078713267616052358619116994026873485208242829286383282621703600751590805980624311135924229966868729725734946531792810821748873981128568031796574938686616315705741889409110075720070864039636816578949739348897265767769103278903284190440633529415852753858278808604716027196425836901551235725193447861313107383343261899330017670367325325221685522282505642235400730907922076635450069135318374877650768097973357744319173395022462647669009246263050296283206307455168738236037748949476063981554213240326645460856596361958270740855106321574857609496994503865736000415029415197301832604156673725189762556036186898493526243890516574788597603845363456841244659674858219352507121092248364336123744808387765473239368185686137158342647000314663280859873649341929326593254492020124491325370541057931183634241626311747676608186971915488032989072567962637792789893760088659130506005354812865111749576232683005311298178342796954113862649269363137457548059407596148628952281378276933863602926682337936366472525453089474017835518711283667133868175751516556234874247894435558858101959996691962790649928275671920877875534772407722288058063300314052857392360993934271627593884819939882088935396889813074281578246572598961531833452609010379628829923261702388680107608649087038404611851047534579946943074970942323427609320975657595460998432323129670299189560846926698365853838974315554370662829137272306870437829020033150033726387500911429083831738656498897235580472440385617006628188682762527346134763546647838137807621885847963515152401165294047715132200230657648080387272167647749699046910233089318936076314909581028522567649040387834869968971247734379774642376841099730935671970572786181811753514124734513313079895942268395459847965814579451221585566135133689468539806623463333055314475914495920148254368754964429692902205444082259360342392803748140033341970432276094452584201846673139039365299312628772258856153196774619682696667400205773730211512607554464113076601427227394546707916132698071622736836509818428119670387167127092521795949572964541360308321933039469865918637075991409246159680824566995331314213461473860253896460741057232437387778348330550474932681868371251071037830149948027548423798944674652096122434474622171263755302396870355675597252389547092098954083538507201886984891041501320728065089239135600884451557689926717144920182837122295386717223959029128972431882700343977619398731848290869187854417698779688562784775096364405850350884699923633582166108859345977014867128119694193311853464489689668631376006998516253595528813921354635490941728462248301188193223746673795759498874668930353862014989071895467272206310619830816767602151291434246373899870544692620981454079105044729742512873381611688227594760863719217419059237357574779726747558982802416966156349059029706081122085531716063878098916309319647165235964363489955208456048321103423254717782537743848033382368073669334609737114070489858215977040789013141085767894768353480855173173350625779222617913429405810129995364788874366060852312697845570638217965352505201516485839088915721349239552631169693260852974814337860637948924881997488215970569457226307975317094189901022540666355635355548731595869688021570845315995540703188324170826537384448755078006101733442457916693375332829721139563978458013702038365157603528230982664372327122766986218580694776234588363234080495038014298395905539076502308554051150840856303681621065264552441995971676754886629774027666920281929245409506017783112219923230334600416437992756286006669599929258577482881381014448058030651851188312200367887807522050745808029274893320437971043753377202227483227228352859908145949855747952520245501073386186668171969707183491907963912202510753787344041830862372565923401228120947002877405414967916813192159147652853501299465597978220580578662766289409403663336287242151607125666730611903533137849123798949294741337103927828922652853427226543963761114628194059277637765850472700381547386471087270519806058446454433521302412133742244257685638353946799205534056092090444388791035296492831176581478288789939348664275620107192541330631716137719379348853695671753863539856241305297988455082230849579734596227229191636941453854512182967436909457941978664071378146570994739404652850551460698091042190040083606101864177453740716693035777788510499535148322060847764023185072237851372930907457211774614149516226372076511741213890537457848587158516113554821400009461223009642089559295959147593534692486405649993839997101504410886468644027962739883313178388663870803057842905946964817472933062413262808150067483736404463906120205461391250261143813909654703240211269163525069710477505242469502495516832150727684860019364825056830320762240681362211185344208725742132545954659955461054889373069025244658486105094692017652111868652643280015120167708072856651879396938804869318740556546970409196245856345618411468363844215534042557950679762151914877153191361853833144978543731704451729022609515038892042761219376072457834532093300547501016519728039802583310715321816058305698920731905715762724232228088602714296836956401276479145232149123318288047371124049539483816398975971907003298677070811177130398349705533242701995173834579606078047076066074779244072026841412507128327378690722306910408648753315694417361827006491389824126617815799901606511367927691742478019533556438052740655426102829807687250782499707007478413071631508470448172827713024573814125647856715076687303955239232394876232349850135681756259812350495666943537797950230749533918626078399253603820621594831667985836568534094506117656795262937537562041317860105957769599804850852688415375490509616147733433479801515573267651909033851793574986264353046830719825259953630480500218405937518170477086132461316191719801943347442431231441494784181346024839294829986765820634149940479083979182837680808781940551243133134826643247586750034484759520408020796468422982136905707866774322047859884993063958148120003186393755644447745275183197722302838860055949526012990109348619740238759540981466546654687471124585111467650644341260256024199340442302492824116630727514643136278184676835921120664677585895464949932415354267073058106637466109441315633727576407592000252435774337013966935250840539781603150721282282676932826511423894889583364854737816934933973426206475712386190299684578198014105102101652834621520566203171135809536778512847193121893492499992597481653134310155072803127870239042157236548828801199685430803565605031413233391129693175391126819848209213062097064472987826477526957993155179183363424451931509109646252062944943889886006035921793619391125480624541682446087303928771247482982526372718795010208700794492694095447601358189487021065912109297890919100888165607177527841965388962423237815370427286502633275905224693506282922717915619829447392366567304018211411965767735347221673312300432874820547970147952613561885525927057320214195951396665369491501333257712310007095162911757319264293460674081333717202445386242780360953938140793001553837223542805956866533849453971949055220573193778215264341606808068834597893960876584029793507227229938990306939714645420707790962479774798820333865396424585364095720733312823782691269594394897341148214372315817510943101593912783861716333529197097206728458801430399507943318705237434563202698771950571427307993907288439457842965331496341579092918599495429056349532371173610990287249746857587732786512863248162660890319146208436641296009648343544230848696557318280246162486410132199984440084512635000742271459158674347306557443667624531779552041342945596754917580400749918675920480181224583330094140859090953020064546536006016254606372288842987430846801450170280591119189154639680577511909104286938427893546801976165543262624189056719315701295646198778264080411294844343384111246007358161732314887335491460129481428539999290252657542607652304615842660692525254630070700174418757535347842053375835494076649099224210559571876730155076451320497742332937416732687382491842934651894402738908394646464230958264702754096722001650961854850309560576319988072158365662715389505975157856978272811028976422653688127161173717193385790719066657554637646859654186217761375115108673566656079438568615507727835235109193067897723605895592795193855201426441955937880373768751071963887183852152443050057172658080746948998310484337872552807687202578756180339675201750318033491819267545884859129481253872917239738650099964332483914818576485483993295862931096523233797144881268905089770917554054896422052958732592631921425723275535423124111872318846845611424342555910413596726068231302829062227039899342217221303817763902965640134242148918666038555205035570926276295452013600330185244553829710076257596824534058025179605277159136283134392166587113264610376888239980156302232391043418640167321007044950516150255234314180839629710784134540789722315407539682842565679570876466283062541334241119445658559350174816044833694654809270135551217244224691377336428663802197937489693860141305242278620121129245791061186103850653760610179309248757440913259210859858401890378886837411946045164714828257970264232285706587772188578244443408560643397423283014191667084224023872482551012368092292965755543915213630747024314021847703164139658727643897589064033257029981816700311788623024207604494953333684799302452396446292564196670030376192184543392614875587049997837536807083553834621151968187954873483433002061886317727222126709384289752837753278134713284026671837266977997672927881086010849237366911357174751016654099046800025906837326207449474367520420944365327035027080712303893693318322048632545438486578979777550166668915463391203235947507826905639092180268253143866292143585117716042147312449349807149806937811460629434061372148430616851046851667753881092978616368994211419598586155234206815986585590274121606340705721933927757966167692815345075988879088323512669026660056448727183111593985505700859808838037551392864364912481917714095568504359654837955495537763026685764296856469366727885341754226463464242632060390519689800612858850900913724692586068890217282245909670419419977003036462787665790142769203518132874213754181362594806033932313803264254792722185571756322913638025707336612367470094830398940246016279084906862496196571845155270043157761043994989034210031844573972190800036314446154823399548990031199390946557059546109005380072785706454336224407024698014043853610512711145723761899144097805382261733071191264566051568950080542941044440576359512241517013706632496517957947632328090336845755920209963448996330784135927961350264670836128134687108990337948288718367388265964352322321893191985667788752897123809648538726933981721810805863239708812730127936749039573300889437214564615420975903438242446220408529555739260405593921572616724388532234003498878569638594816438036261446779264964563930187511435355712681592376470078264804120908030193218074757987428399398898146604934664613234387771288780606001609431598782557338331688748525577673140658891762200254888338553649196449182754761541222205514294356471391517368623195245509089530067605074287996596487135124687042941928032690634613852140502750767251511224762165416230294913996355460779971632963012632715199446638548147187450340373032727032644608533538304478297210511667914582580078873656679509690279611149145508316154698796773805048320987713355772829412192949999109342329403417447159943049754668593112855536761491906199443244500279736816025712132429589755767815253604046444403290459215601833643393202301629316535532201526141703273604535408944776149068062904265716488527388600911711722341394925794721572356044800506742989967330428087974368611843838866760073886109860503195820054772996993551811869572770104362620687656112016466252341043381614328999393262938868301759005343205897789729744776069934642193330696534836957211998100509237817357999395759196182583588604480378087332726415365242006986895617996259635000543819509460164104706053074554718893690247463686648617568824187323388334635359146202275380712937983027847054516461259642821143253853302164072056479255508328509246912214372882568238182609732396517332539480400870755236930865285353422613035805934126272069951757685954397647345735046272144072161200158971425275244918787981040247729381498063129914716266564424209500185996968776304793529989547511903329312532263099589171214635284252091482526759720304612316470389587300527012686854861977627337076535427598965333292945466341025486878885290908433488875030261523202462249124927771607197470756845832652821852001581622267549633273430625277845341350408961055623843688788284643002684324783500164563823259479750926934665437440002556566231772092625186370820764819124098527359421272900150812544606958567098322214161299250057972286278801925146310829489743407806119015369388807585803201841680550880519426159711791737107216986240750085281907811183696167087998808039887328399936825009995353154688557061117381565167927685554016025284175096555536835752160047225048586602476906289724964928694911889812799768807936965085624947888018304620280743298739488526325671339062811998679927395803804501028247316558046702078610806628676136355707277001315264562789966588002062360834859132823379667431204874304456143928171237375895160253788670679316936167466133201705069087195103628941217909250456254685617644439149189573740236532319062510091452966566778722295572974059282367720138369027683964761086616549776136076700257159332029604482326431801378610541574647599248583436482134701435658871458790758686075455845262464537502667384363961026398245371517887130478075002739674439685198073456904238381025845781046421467572458956931944724817548044613449857006252631686237317310995540030596702298614624063810304494455072162066838558195743991258988259662378215950814166985267773749642743732678273087891791350141876195658558461705248142820400715741188390285289882194231378433071889940150387550884346774935614770279215448269055995720702586533467718531789277704247446711239459802783466692079353614637337092501085779768286614145144732998395764146845005259830984471839655316277591920209307914604426661869331756651010745486245803751602587819220114702571979329118055555862440705156149416580381545616676712679437284291521115262528003053200629254233961504390454771501985849424165269176025432610510818653235829376085227642473749080251999828870766078818208397162723069689817933900525533044889015671089968493366191258102396864397082122346513051096911542978471168854624740432000762476769956346005753183939596212283061417017796098153306666306389295879111895462075595182994711515667358783747797325329624371133827109710878632243746781537944458213278226770077605563756052433867049122290651354351750563777691401092466647624172918092660296547547106351690892087028247845047889285132357892159731437139270274402857816794735488821809327464660118446957180308176394395453851703799574049643438930783719904145332063761223510565009557848730885370843556168675455199261680843707097627772155282334804841276450389678605663099701569838791907069166047634581096737649605539022481540047031854648208408101649626949157428601993819690005437142790459567602151584240152109328636313614781851796829856522819849900606598491158959481840963102018545970944736278250565525060861766701639644851263917370394904915686660354967282766536966706890631960873846119724250824653440418979954209444076145609870398158941027024891640807700899321243237372995832058579934811220174861311571307227840024901046454705395618830312618609274155144603179803372046728104376401156938218815740922369644835339464246758414320425637570407263185815819889779445728348593587829349673314063067082728328789321666799666754096077355357171860986631141863203306330226584453964355422533976999119204287107128577049348729786074405309401609906981972203935644794141851696597484420862841572748242966454360380002588995183242720279730531809000353838933315157493131614293453665768736901483370866743021012086133746615015599338227797425321757121213605915322328735393420330442625714381742435384707955234866235008083890750292165421152861031406623708721609272846551191392370957996370849102209623986381738623802890840213604441287525974711171479606334227238931514786394704821695327142519954889416692853594655631438406973507625265189268029155526163255118849726111014288897374014312232965374903093538926805216899849998682672577396662612833966742490102783898566190894668711531357839991993958422604235485320016002337299727601539606069644793252714704112241818856514753561906464165457883637224241304347923132061147064109564897450568766672678412161265954107060803759448585237829905120485006543212129330908807111402042614183704273610110573934533890499702902344452372771168944411352300032957446092352062950082655594816922201456109571333163340750662063823557651037132239135700918161742265157900156789213314705792253494204825270879079640844985145465487870870181291613636583479903028417539353010927078136286501475874177658804153462795121060053004713997808475503482422367627240646652652613665989013139225586903263650903977207660636403386995374986898549038158161110757848781155292265373447251866552638455279311960169156036460689910813448167740300943110663505180886353464069298181686755164518814155418717658069822214827067024023908400856912030133285285701642254358700680223250233187982300514314667233281292588106992162003236279146916979749125922125696929330001016098658446997235094540553852717613979176699938003770426567955530402781274298925957528685532114537984566283642847649702758773796818798493701472402755943829832755058082607058015354303165458390841389204741327796341498985795534269862825404386864804263546422299087995700792720263527935416477950393802179409826246591985211815092667220873091913547711925495428542348826811484574541969330337524316290867532179963416465976218166513425508141947471225386640837311209087866283177062237325442347767115828665746386570746384746539835080063853351545095322745667603343986556479298906847404911467696723424798172287059814550832521581657483706238201409588569624059511033261743422043431530624171023090126306127020261471980239228679610338822585399940841046114591713627869838960638025927130369851051819652078569866432179938007615064683268972764588451349744600702025112916652659435354003781640171753474951009831093406435923960289732697382538302727304817762185667891934883774117988019831699674059961692230007665344995885789223664074921018383262056611411854831983912966648596625851540922680180704888965295233633650093855564011024899768541324930913262400055521832438387163324273685695626855046482939601867793183691481385932728299926884413024356973773445958070051837606969147873877482983321436952866764760666971549272808618048343097504954368831059035354792612336001632426287477230796610787717545386517901254169499623471974417090333474808776186451331503728984554805053709639567322932155247490747190913944803535002816983644971003311574752181279882431605964787856191258828495748447287433670743414978946712655551417340870208911118726451116821310908966878287700849997998274872672337098477902442545040493308562056419042700241581119124606124192282002296755351014917775192128312329286785522605592315035268616153117754267430241133087035258663832622484458188821014484074852850427845720608469571844511343629194467503409873392564987759596663706077692152931687738990481955602402551195974939493271594885098389601411546625927014798259330670498190021448046501599654074087965118430828617687726186565543138625943236762560955658707021317628092916744251542392457943962502134749033435300240499824700363998322800007793497242447130925764972271801639508823780611377922773399596381024919122026060738205831732137842873411705832768797251130072310560997671289830764993637554657370082231075033269991605240250661330218621049354052543966909345350939246302353715110902654165704683241006775814344898562520730250007421877126720031779068909063610103688615753971938323644214223759423250792202523165707009342962011658796633781263125103771931153233576146540558335529289987036227786012006257899714895205452455828208168112934786249432286033843240282935796862283360657442264698153091350067259270772694148521430867854495392106942033068438566990234637259240399359872098541184884132190543511200443041782338271477343195770105956262243634386204594686288439242017262940387209095980668901752308510636784333963220243557005946450141743022294333293958907866871348908833304831842823808752474720636821293212998052250959141343432201881273572623579052459816512039158920369774258407959910455790781278952535716434902719866360317634705937787348139172385712789618741184190843876398710113163897946066345583887913687942645715746457597726808753094081975924484631831443150074264196310107492207828886376763660461901558119421382199491253084552033561236940986871228162832224226260891296421072156705322804151892509839191814691883641182659272883056778767723735162749206844808485547485586015217456296320353755885517943010322765326386955664052544716888907223765625220679422997687616380025879500728244516497044079523144433558367561102537158812016840812189853518812490879586331074577558858919531467748476018807242681907232374874842173438804362550585056376932405294195067050477581438508350608138520009709378903963911786949367787582118858584092138801179534674308057042544405887871943840796950937688333299340269937109632733110664639907204604957601576884722625501408181205926226408923094341353983085054837349854638848755739848398169607312822525335027857688811860709739393276792816184407051304223131064891146802858003677009837819355034133745456476034348014683969321331232215010112432727863064259864760718680178250590351782290910167590982147791757949114668635332070729619241491649633014252984946613781399457308897667525715008004093426760343962201966602819246872850556058621662442359098123215197453827436107894840062865980918518947683245533567708170702723499942711831683789412335893309290389544954812137161822782024358535023306513316026220129595825621242907510035177791824042907570259871075116517095468827495774567922909368156628825579836008766327288158633760313931060820364942396812990181122045071861333388208310525433131719833553123053240054055801609882553841233056136105961551493818271443612807648125202450290763460011223297818157491658900041851011289252972376951110896720262990206789823302337917399883530158029124770026234898106331942921090580515849692053215314741217319852398219856532187901369169278531462450284672214405587345621291790563400356201854241023861876140056516350774427681880081201927285158777566904489732069803686952138775845376364083060732566848639118378855158190339031947852888746393952928177449888536617655138120771486335218800410591781803580702935266686725983758965563125764944636743581651338570975564524424740645103642600710044437722935421046399048145120625179460554509011276997438188002845295955530912587131110939622327036690147129606039456723397843190768871395611172591123339244698313816104361475372709163235689692759288887584067506441901435142064385602069526879908639187830121129752739718220700544917968215789639263800473685486083003436555865396115425857694794522412503740438325261340771015150321202241533509906634377410917835531540510969846561735157998173956477652518525301974440881205601834004222839036635480403171224468835760705979892550676094111638533083403247806152934040792493224680205169989931813830357763959562441891805199733311488147209144203895814441032253654214804668534174160690036243172168377156724394439329148657120253503020077279458247042997678761326425738791879909632197144021507600560612414124010175768914962151587967547791144875675071715023602223498270378272732289941870074117016640998919444402960620980498003705577848789426889833539944794119767115340920238539272008141546357975625698118042098561713081831844691435874368106106939321073177466985749365534428435071020176179327176742753768012431972840506882586382248379936293261640857371743277070982286399855626919371548878980446777519219932252031600715585339802796180992140947863520662953491743824846543537804359846738790043518379907652835900756823401002723476457474143476155846247604632034180259546312863176353132810042054327066683076160978282477448001660817298774860032362090665888454123274391004121027555287202670793453375067159880451165267989798638914086724242487179287322067291499078835645993172354105214104478765676336399200604313027589819823166174849458566878531086968070829821978050424950685894486622144285864522686601510197470897173218970918285584446954266557733847775516836249459719093955265241305398746530981310205997287815204441941151906763385691367498799272177489231463125916707781152207734379689010671765105291011643606130389564653890017741263616950638894152769984521963030666686561694759034165648570501098332294053698480217588910956023094755133973307200774978446567874738666632791162169669642900550288157594118760558791209158160355856378068359278610661221606084327779431066288122307504195275962652255509544191914649795162269154902927787224871271754965303896897515064224178251825977484791425766958181131681262815020768419783848034657060913817610317296409974000238845756002843793591929690906585454573792388094161396084388103981739102814074315070769441874485280766869885073247027526076943691381029752926608548702929449036248581224751201430914910909982945626725848724619240873913009004942866246150753303370135205495485105626666037637789853050422078283433979238298541567284725145039421315389608630809836646745968429605081021830638971240042101016794252828604321071941733272192229064801823854648514246555930498067908458947990436384340494520399836576013975422864044348058950996141092716131959595626251646601446489884742111511213291841586100098427902854969674748995672878519075411767698799426783397451157108767559823682851440476403596009380513808531352962110037968575255656581068159749752780357727169819250226676425617663084244021858547917643731287998162029781736333555516198042972215640163570441168369356410877475514348871233514625592566901303878096966612629279552876111647325289726525116328300103758859515453545382982961786648956777862915842054532970554409110277370133831467443415636969409971943963591198130558047935451997022574622522810690357724467934612512591730723372846245540299993847928270050178478055402173900786626097378432463259557772095387995022259478063510848148974962247302160855117649791952587840275997210897818178328228223597941320268603367595229834935628722475991791313025044505391115352627800295653396915187605033218769196996737734074653405152967527329050806490152807947986585976906707129821117939370982818540729018357321025481404021675213242963287013373113082470260236389337786870962430007280816536007524738829602502149360631761024941406114281205267752084467111873283995136157440891605637149473614634590392538651913146835788699965663766671870463677749526923429124299886166907728219954997081770914885937945148393716383969423115206028217479159139754441751153598974760000350990749960746062351165334066703880765630803818160310729554555601652776203728835387437694228971131080608308811953150149339059272648159309141017454171057082267212629131252390192394460009809811905700928476091041401726893716513340848380371808199786297605148490616629339939007338438944692449765370841243408268199127715977886513190340724023301843887421865584711296310111806044356433678099753893671125099988238008732295971931977200749035106929247825320435172023810622668161291582091720243661286734936629238199645674121617589583401444417993543846781727856889483872601710942325112976640502187260769948708274885072332871834523471632073389298285840801636345110673686960002431154870682420359190791762554462181836152478082542175193986736522090728349572559893913652161931554235917442203793059854221441714996963133461416177379752656964766726898509303871103858222698950911476766087330195391200843458162381874724238306417459604747776819458438880517209906653007913973315546076937686089562661162786522501981465523263285730186337633987825968158433475576485898756334323838821216907274863897942831006603879238418094842292555691132671698888072439702473939805404829929639469086782182662940207036777728931370665780101540251823272616419336427141210352258798945754332042678026385310118230689102147671224992693092094091019298699756146845909738207345205037895738769839669268738852838325212162485099149476394266374933135293505239598154240719342563261290695483047643137875800623459763139587871280559248892124882367778871255871576163656129455327340256996011702398481525921496053979842132747566663856248888766221550656349607068539705929990845658685837449517079445493483942243213802765875461307664554675201694064337749815263815434282281283405298963989811382069900821459951657544327008890836058565873069256294152432007038938475362780523757120161894932439625631635571284620540537975609308133460280353982757069817589795395988219227899027501001358809817556380839869254254645999316740916730602705366307457449445639266453424261317997642872712754751095616148988725492277305943748911538694630678444953236508026189026467664024270864030639165382982272149267905622777434807799014019377458836453041233767060979787098866520425737866307618911451614817243902319475516480900143308740359242359941370269242861591385154774208448532573746102924194321487605896840723183702827088302216877041106784382521424770181390626666706417229035284253722232447598941605353433363134660899468069456013226371318646917067273518585208434376012972126673529827769727932550763102642089324140464636150767222729381165241877991340696162711923655241732532529518495257821708070270869017617741291447445124158591985623952505901266969477661935720877752101369819252877271990870573698217669222424345900889854427314547338254710964409074092488163131419506583550443585621105116369689993246785200875172321540511192279563554138478528748916221027553303431858680338436097918282550484345557902152544655978685535234037320509775706301748568548136782437754301307601565613156638468927566782972329100147507995643338017445516837265135539953571829820630882938965082785258359742406082343764609447874538703825770876414834466152844989021399427855703532841722705462184472072612732664782521705317126690983419412072952257882929998786928313009248749460038390317424670207414396357880549197042840619001333928284644129599989102627937569302038110224454421281838480744980400007186754966131232848533714826355313406189490131092392324674475986949159921935939709893375282203499538055382462935791892688270522307752661643269168021593242706627295056356497373865788293451705806872191815858590489353720810157860988131287602211564302281402002627383403947173100532557879100289348100544686210456429640489376538432476035538581440344748560223311575523173122711527323646795250796594787408666044167110636045152436392582373261013256796125899226782690565912457748457388580282579957014197295639207257330292487546396200094668928466091014615232983215648711588232236316697371676263405023479507259960066727623929059821862977468405261233069602169937581038156409353818812611085773140759135435724966673470040745427701076668125731262313034004183520296476478210533927480087593646604509215996132071431603369117955907767171678670260211057877095145869874167184221815622561030928939979067589919961845103685474375300209322647187256910661305663656666082226269265485378882348186011871568667972280290102155295508584538392551715992733713017684459247938502784604350731261761249137559607826985578860097119479458168101397181950647915597077641687743165157796411854326748023668528146127698118072138891456703795031549094823319929378517280134761957810948130743952535891513781415877567337295335630385898760751892333415260049469794631593398217335074989896953353128937123276185126288992729239608026738382677927426680487831419570565446181029160518837119537296122416460094524831488058324291299894478579762278514765210192890735409247322769547279259472769135322253691865468681853790709321347898369472033644119489547084398299886372699257049126298738468765769112163122078251784387084854641756054836521277734222343773827408167140071749868994931707495489038718064430270868314524338341596549941527256311925857527641175689928357040496892843209186783705416492716166953257770908287229727661604530033711354116834740872834524948376664111595707483786472455016079790354719359176219866287338358125381118753994354070380377276228835431465360952626121550391311645452773836205422177188583018384534110825544840336249686545730483285203118260295491654266953335950731636661986268189172097152371019421365315617004293948090344116283291730393320878780586863473791601931166902885835604279683010037991401087749757580383668222164968229409981092016985391048500533168350902936575939182703670663291035546210272818369591315841630273697363119438971467214074853909916463895851797086896940317258082508417544746810780297430932632758278953409377609252556708329074976809705625893797431826700725081184798580811044151612182856627025198066615605386501679430168661282994479502613412366713350899382688956979523097055963055703807270515425525798931674924037617694857637414484469340814731802385150870401422774377236422732758726025214652092493340172499568195270079273670507104162579975888269843981648746820240816491830574866957249833468784049009286509320502815106324938139231864731469434861787464329398553287360301441570244743237608474279630388179966836370090450575446281690866453158882974203100662827244508609303852958416156600096697796315038205234085785631723770961614699484593977952923005272199593473014518545745043248418019479349825267469265346018296627942499475437079237811897727245518096639262544893207135235066037979963550841585660784666867684373291288512287931445771047682873531558080015962178124407949123230549212952135815497120873632005510060537597604277413103489135711434053460020219402436268266997107246064887118668366695593250616997666822137035854272149806342533761143402009106290305606813233542636206227484644311999096625020373655707700476316585535988144153795255794088100923431062785599018149965686914111010027916892575118127188950287274093403383767519633777697074453158951361501299006641661495963438659785331512885555906686429694203059865738889066148394095089590841580294421787044337706898361079490047134406972799810534580303678212048175287237460072408649276062288971333989994477744572025531774321251082521929731707230221483152825505787809090699461428233701319820336760381381833655778353362384609113098052925931451197697850090156157832270997528120785759604708110189226316519651411709313438184935756596467875661959448660012508733323942790809858895780989430978995905376489653378158237341526189141553850075432996360467233431157531661915624041022311270518504318909768901231027295184053375194052216860948013523837140249755905453050429803114600603083309646394664574556922435398101487586491652128898423532955108107031945984273114830113142976942305839226438172739108514292971919653563619479806008617278709077099818185993122101782441988248099577621249326594178981646660745606778276295466572627354355082451021753917390900121308798587012732937519224624994561576110587028422393876043419802318361354369247130038779266497141179326209073284280397972987084916498726384336249066932474578340537253478620783563499907413210368369173588837624610426741964066588195573529391454733315450763796198032545705618902049828522532850285203590996893769913008178511826319779652278304592023412252472137023461212155095148051070094395596046458533750688185058094406797739192232741404517168778993750895890083375277304762453026556372997154031701133839962295551244901963572622135762675659319193648245700715880867304579984228443373520410739952670836900391655035395970455028716535220176276204410317123346359110353974610546247128095258770893771511674147723100932774483595028460711501732428046772982309289950177942262521924180347618083589145620349768427328754555212730221640314635762436360717303063034612393834289191236961824295747137096907903979129884528002373890147843091628763794850159704327261252358052635205343295294682771613968554481895665768857098986093782499277497705714296534644157042452606866187586836218441579384563775074931839091002767611315501709834593644616311903947025077918371046711201870181225787914034868578189377437733745530318200196509592079868774902186632098919100282437996456290109303499551569986569322416475636800817531516357595372217474060525065331062946124252550644348806031746284684516794792881694326651411402098005185072922851540385125224395033755448615974026804757962690009476488414361094997670806417409671881495950288019771863292586463093923211345594513730363688719410708979513427848827979571446094208607826202947310100999686995880532243905685647873819183158262502823286297376331287810758545597221833842027024505204797249301165293262731805094695695408055354991999278010739409279101622291240866724780206810128587786849362432018759580133998246556675255439722578809731898864370121718162283457363892772203631928852259396226142651581379414413808792035574949251394505911643805662954159628370319046614270248990476015553049983799814137110045591291042056453772052299031273296050382745674876682154527577291954709799934693956929356653497543763861984355315074809415883827610683838494886433463288987586911537379382500666001057171371986704539525237000655989376087166158772511320135013366439478190341841265517994641526139434230042638635653446510128818968619471764593601983632791210008161050913765040007613937524349310792829166276755959229740555976301301069486637513650534906040381658331149371348077748160281224201958324047926776373858712594548092800153493421083817913287630697219346784092958653589951533335564033295551984914118267885101663481033934535071463321850288577802415871991788638518864414353675644706355094583739952255997697827784558183167619572764764363549154547397082212561083550139922006934356482566889594171984154326792655196200971599404556342504353571963677526921578107970929092912446040944372515265433747598334607713076307359277177689423875398636281232876312326085292553561902675163229741636015240920560834137301132091062885261953170383086264824238073767393853741716649708078759811975880810826019250200551731360649569438372206034759181399046796222730479482469157434014238524002371689777528353973832436982103013199829826467275039290211480777197778083124687338829113029359298227585205397803763018450053393222697787531769734083260517887697419657695296491991975368378206157003967524342742579289308969045105528922071069584260488293980262330753012529319601729932498159300215174698244662958194520865270676691800464772316623003288248133604202216765014430212981529377110285612883172687523182933607213303490117875343059618623223149686186559953928800974603334806365729515547266126798227573114420312664762450528875289356072730663991231750972029810958412537263804801610542767092797923501432053808398895331274414572162256614591674947471830944891069192512076164884418793437862985542720531651057412025032487164610437799627617647526456021247794932346383599585426955874881844224076982413642915727623458901150233946478397695854616569848404589850420962084272768070773957117900574531965774822728782907353991097143246958707359539971872745091236667022762322747028155470917431577860017831776040683693918886789590036264585560279852433823336618189033729185387686170091146270307983587899294424888746266765693432661348060785756758927232568196990940055717756261814690513575874273933872435989046863682045392734745516894696419991739666741942997784539863808573781404977189033751591848709749743463708409371563150186073271555339255094303942432424046320153444236073998576784329704615358998079519182002920154227040813754104856431724321095764555253921275534797628273399764054909333510796813826734492731856083541889471307069770985125039571251064459577565067002999731945963244881743461134580574529109920075709980427260622285194208973997930940590129422546400522939593597837588071059800028534481358699007509354681708304679757801517798110240774115249544328287485405446822357235049106622563274967877737641158129655001521400325738324887831895797715221599414104273006173199868337561806850887152140848196960651335804508462354534540123361704464455603742571175344723176611327236744751144088176351533898559719209117188065980375364595828678986608110050129719069321765971889142204926241925288363200506545353252584250835394270759383244409839700367346975078775829939493235163297432374521853177050580519361794113519005772103792155502571861697682166300998598747354588808238860598541124325120899576094292774982630416691819605980637288634398223758220951996649538168374269694048344974461095686262612720182459602206436777781339948445774062043176524815212483789356722173828781761237578287234536981617634812045053979825642615020871077754916636322537333126835218312723685666958414256060022189904221737895452690560724552638982005676264093081603954914442572955263122228463555847799833023862719659010325855240746910027498008207689232010675618100003401438009884672865779777845595563968620183224938901209925692250760202887614738890824459299144948682887551085966353278727619029717338347580493635378944993916370304215910936281997837616134386029558671286545035967013016526539820577472162185612700289653915033439431188160023853344688349932269872239954355920270322523548270842781322509565613457968861374071490406081469460678258011874991403789118019671370362322612913744806149008214749367626537005360424039173439604963322805692420438823864243065459606732009047743486093048336071731173476836032845156264620122832689747336893435764129659345370511644305934014132059868069645780589793389295639716643255289340853305182268534982474847599138209461278064772453788986628455201041100558798457276845656916340396999789875399424127113967604361993680955642962151872783272424130443946362769307586519486027229945719443014107363016562413764800559250168564258605007769112214953774291645353477631621839531536340721521245227758636998495210300403176401171944584378969240332521582270380322034428372648407132152730104757986556687381571215234848856622599219720108996367972227780322799939289942205810693569917621623783550030057986700813378442860593375512503131449419131464635884820499114123543587176560291968877203912299431527579582768563456267305955240264529284691313911050898597767785729863649195100393478096864823062941857541308812090612720703308677028994404874815169949298955791792774268441616565287439945078728941921177269711794972912291330640107010072309652418372575758240640008193109530313447738726430219782886729071126821306793320946411769211320279508940654602462478510452406801030404717314525642387138736243335537739291854373230578513243079037032391746034064386026668094835706926428206413820136288388360978546473476526105644664599965478290353210656429074348238058170652843388653787311494431780130455148908849310075294991586706512950760821472638726602380470799975134619633854834030798731302244548694509635520165616371824352350765178679338384528746641357163720044440373449463437901583647620180384035718556232759184467325038915303140525465473861867029970559740053646199900759559799045035467602741521442862289759427854016007314316396378038457922904022200265481235647926225564833501781119124546385612855294221515505554560893424887388974128538116032778195381777065705069180508955162872826800341867012609805029596613257948842902883048768940298626227752901627000943312212242742579727544689386916132157226331555192855174866270107518597930576981587768955741111690081652163268326719196959602239791987559182378192451854284339002391201975280093476762241115516795817999014779634151599673722108839845286243310285130983078722981397960601437111355596964831101817705788513063792156346587864196593175436846077375441958754933614793572191741097699450788690949548365043973950846682132694032203313524068504074515585217777338989709301249132121215530943800970374679415551766971819471437977322533736507100995357516688757125738575112001908732885397552864559541167859960664819157213112928292705606161828716357652124310747550005552495733748015073834335771779420849833530802601299135355743296862324017046706280820580764497925673004847348917269639044690436181297338939601791533820876683844775539884815282444940766033362914263137209681756892442789092172820164698275488289925736161342214684856477266249794428055558026436602267620914968900246473806494924031206724466907392386149232856443786168064293656971154318794103527991211240968013561709247154180745456131143150049569858596573379501211361934188159507796782925950041806468887366412568939734415657089888599177460583294865849443863011706170213507001643807339703002854775035771998106984777452166507664109163679073289620792931621490775247376553535035535761213339736065841536229475476410102672657179622634986764962770302416275856432595932626714918440978133346617157967417109819877108822361728060505589890469608644609112824994903506243264467646480595423291740637112681489848244455715356824333749887910752950955587316830161180529051911245276103892745471528091567393334377898809427589443878050068777352779575350579962518166442601070770361021806154526200477496242431307594990499265502986673260830542987882408257187120182611432151839869499595144629670771786682265926799948976053228416786147598528728698538310932728480463384463622268132407610606605469965311441721550473779329504025070503465641330683792555424793047182762367768611962938617175145066694489274005108128366108574533598813595832081155040699255500026416788955118092912254999662533134210011237199433476728300743760766374298008192244612062876261198614391186048300347802366581016789522318152524222611636507475699307801731470534035995279941565641743754538138653277124920321396176432810152751097758450885662910229352411387476158260022701423721430016333203223069897309922683856697002268613883999875057210197441289098766754086315930286967611844951549366771949176771424395589000422393991718719160793379655333801774416717433623837836655811996821308259790110782601266844654123145244750420768264627486250506540073203858840296372491776243392688049542454335922743076391614409607284294385415479680800599630177718094929850174715574926243438462302586367865330101564893702759758408868938996912298680930019305386631185264706992644361927228802790365244945896714845492891261514915017626745016503329635746215909763508543804003587569504584426900087314604001816335671193469295555523729061036322726735417613633024597838765222799043775581287158628510722631323065713699450558906099593347049971675706229531286022824662147651035788800490400264831299334470514114512031020259646751204787157173430018304891890538973978865831672861406515368453665459190282265566572051237886223430459304357720049112950714070792982731259182706041164857433292810592443035147196220762747644892265252494890686291339643108352735709427963605936364596663313647650791385031254050569674443392807388144589460196208416062269865725350377964970857649986050058943768963035298449829647164748011361590852458002752781945443373221652115424560118759023972360073009255694341717579898682957282585234698984078767041185412606540440098085125405258489488585935366573324930569819082317177190205988563011137489765469193524912382543258371142280825364683501473712148341980832157194536398578098967144676756405013730859990712651034598977125377783043393792729453563102070172754740236502718326616592288920907665781548231051025811826513161647050742581840404080585552714689380858895435469817451357060771194195134655610057499066302234356471806012535411411870427863825735873998672569716802817781280697412105581233651431135125676444088125969767269628163113797588359512492018993526026404561048248390763590206339721615716062305275403346817692378134159932339267335633106803769719525252718929279285182822081622445253764177849362518093477970636728214924868509732092814174591845913353051635592902561845071826031238592288712425039390990666071063373829573749276906163039424228414203941329202155439884253182265042438225409921264579931044881060148914588968140750650049348839322117852702994972690607615839675699332247589106097409538644206488621867325478101469029300152097200803554973366164784513677853764628446752422607802254447901060653283916021858884296940867923159178160290874355329060931729102493873956333231948886882056227047636665629096271958162729534996374470788689983797825953410067859497148726542816667074900303896770575731153558130052532189017211389356123285336591786483328867560493204896253814557913003538522507007711085471114725248145692013463713041465447609574116691316578198989862128710186215731632430049140203783788459297894819765811688161559157646576475907465340711459110703659938967557304789218601061354899094297548973348664590964085676307583193475009777226429353805722969743831244196966579651308015407958111677981342815287839558291079730106015395060893046234828837079160009500218206300751487016139872750217028804230757182723783150030437442670244779547434207570609159918155689860228660434199444331429730005469869083762622653059741107035337642037864030533485090267026412422714574790128461312890199418073981698024597681858411130865577327363015083490871453982761989129886665766490373345054882967281260330187477126062287925848041391940907349733649948837624778650769849757128660388246650508167162227203204502457464702694171081896644458206319641455914281383811429360648197283617878555980023154298559669200456664740198604895941594976438284438238803462304831437455217804409778180230914985426512147427856383080087175909829804981779636473420540219547201607567943231107499718248398689685581155323479706641300124179756736489933970119524099149020860038854405001183352872395279368902878855972430296742735065750268717033606459950476446511098412180695777808235367114940900581965880711115532068754340952465341442392570400095468843437386643887480021326801144519552189898359208464147914372804378741412713245258913540451924112589431248204811785478080804262959532703001946196272536200902083424924069951772633791444282417183020473294746755668426060565994882998598547296243509682224448291401481385862159451688610226889450496868429246187298276463179359669822761030891521030552186275372739038982383481129673293183018064505218699356829320430861922517601789584232421613593862226532540202450926269962466337471481672646692442851738332366241707809940579525289022333537113243711523857603563513380902938586189729933409527530722795252935331629877235678511622081947171484003458919702498699896591926049650317168917988507885045110277955413226321404791545417054501730357996192266864730907803151083652064694832027374777288272552630880653836835103537800838394060705259739453531769820826945596369047234983300342504685981138255687960390349940821109159357333656495607283852170552392483686613714289252500236845686846119971735163846878002910819797196101819818761319155682698307028905489196533494459009448362825319767307170299928358341597341567897922796998690125324804498593729285243147125092202547532774242703693644930724101058725393270649215384382078448046853409405397959215769334333799337335856259623811467425160120582134409951610121053010901869755070641559442460543230898198811861154036302266990104361441059726695031827854629917089161726952478718133185816336654652122044101071219457623551577723468274296293011206374847542936732115817197660875470964809668010703792042999869240201337380144392191842366306529780806642620126202572477387896479568070307466049702954590216340014438087773275127868502306271846509516572001660036891323123022456920546707574283105110572729629419682829060547721137193941859145296832371422401693702155594469210076326231992933584514592218316853792683144210643168921612865056971371209850072167674405071523008985043827880295152673910378738969480785094479777354876661070405220164531836541227453302608238838042301508012484354330236716006296618117795361955897171176793768981725152866855555906785961361619081825464039404276350838269433052000823267411464821731775125421786657275723370159651080405380733513824952576313534476827970700926951508100779424157079577277800757475626898726138323717239489344611381802788689442070609843131556741711862735651448501273972719504542032328770050407159982368453609174366967754147266241576421711662706122461020679647538443578842337989722013009103403585779372141644099005149049357311496233703531465928246780474566415847904943174389741276185629715423033305830594457181156717607078873366874834850689676936692989950054565082717845566039632899059369204814821804406792920492301487360415336562274492336790970679420416865287060776855926143559364972386299973875048474217579550419014085195814067840242130346648772014657822675405282495672413981979025067499168513686049127397391637706509649515928107958456523191660346460669888091021742784805496577493753445383345879472296915114348213305696740767290189902379746106634449658414918306923043900194422899459485096856809897931926950102370495760333405438983273082496264310448923658550219150166131487138883913602767173079360987194317536651746990564934681963175851290066285446204267838222925284259179332527214426347176932302582649927152811192430874750927901485854633632942649809738022559487427945112293529769933383623708616291513301254695726964239672661576299968579020579720345217681070081954277283908173090236837444234104290711089183816199137604033255209126475103416438184379187076859158045144639353261791748972857129404593513780631202974596679455338578490000332328965186301461734949018164841789604060305544272158976861519856267033428089105990876282871730624253417658056010255827549043431451051764213700390591174041982174973857316548786272523488830847210207347334115938989670409821451809737984828177409429754853423643652635149432250044818606714037435292486496432640697800820224353332316299483601795813669770792740011833767532971377046429927223699039382703628006743479031744536333897054424977066441325088425328565046147703260984664816505370537177570403752940515028951308833117872450488804237377054299752447412915301587022713465920326826639764448150665809877250467075721033529619038943018245713876064146177211956026771613050933782599639559789190069334324034732424687460545881979420988246598120434891316989801536570738070317097141166548875055565288797530843763737795936817150515435951187434955324553767252490830074142647571983684027724483504319133775501124109057675793207842875866865790956480746950107798002214104637348962147030848720239462590149632559617426131825884475294139992102120543451059666700456589305237659223960830272288659918624080328917783597010093308178216579321408830145793498757764341360865308406875502668198152599362085846466054435246346477695281624726883711149319234776025498826565976912333305962728184588806259539285664541807348797014771954267258754142255892236415573372754310229859752155479833458139529802562297733025668731617167322483763260284278267693230963968421118326756214588479045872799604567206934420843954856774874146695119229502805925509504891845374322720964628877806681171438979822472392005974795842847641006029918334022399433136819348827676451590519979696355118429230915927430463312439753617660693244395217022979967668483446112990925361968207227798009958725815741379116968722247453986999594287130592709852894579483696520043603255684921934674667890414446279557026035831630683067052623729491823104188777113750885224280825132440272573870590999619589337007033038852229837178098285983553959782265910553079080747782699023987850396385995128380976521072371954103586672392667323392695139851733668323322040434611958292382224110619138813559642439058496484197498607162832628788445179710366286211403662566069889278070024284532623372468427386953527994643685494883959974265658638182874788567963105002295174990225514840136477381936609828710653019194550251429422438501395533342124207550977087969542860635448191991766246555478229282788314821812822518027798363193641006308505039096595323377908801933017892048097654354912693144638536595163794667260176472867691578063069600497599889311835802624490209567545905511913423871560556146691326397723101152234981993398397749211869552793583347421300849758410367883760313142464233475770315108996467710340625909449546306291216940884842801983239719963180299860625843516035425253674290866702504598463887043595126699095546424566182151051704792716062001821681967441105298844093720344310521075856215826616559872258947035851609532249775714412177745679963710422184238309078440997901327914504021461154911001288240198551444692809385273941760411969270388945858152938836562577980447916399394726220905258990236371023342105744899219346141203650628490946514506475409788728628071620915278642312285983998154634050966360726037959178683158217512107010292788603664602286702626921300978103127990693946311646289092082865661000916158319115724890357359716836451429330284682180431561696731774410300387214897521243148047000341139414455506566612938563026967418162892598536379619107570706625257857489488557532112964639272869221550456997128145377429621940937064086963396854177953421902422624870177884722617599060201945625463558202249049208496929585174892216835419884129854921112563884705465081937456180989864649245462321365280065477245297087329611856267211605117054412272724072101540143716522263595182852595157215182866224654642225222157478447616769016442786556549327474565890549393341841511757883693785835861184967632922651861213322161134742236809619246381298109405879133859102362578044023901668707814852740348646391110245672806635772827774046897937770140301810182479661828645806209234848423340127139846784381126318680367600173622504651178512576726584644772551274513555258672237183923775715121298000450666131205368194845273714790239675964986646514818335365871394485984024064898151868178076409424698021942703944939912692707078563276691047987090138160764780792782147362259168153358362529339751591116731460449914600530742731596185095215860436868357650568631180226856611700739851640651991766228987596134355648874190648916536392909193907631287307300191752425618368945073679263193917052199363445225629915317770138974172037283857262926711982561542489171030752041326148694704450691243573013504567193928843254065310368098225874531122165007113980996363888440046739233692734044320662418942080954487904436526671619332357874329037866805829959902512112619185814508085059565425873314586254652468165172443486412866827233420618290776401903910159157393990653385872796136029604497378785938976014252814637575101238224356212336543833877642379177715974290571762903381314750497295893729061428195797659262005463179300792663933726616423583721296556035144836928032006289702528239777442102736152727090221304563487099014231337023229376021003867258364930639442702363234312772751923541060180112607223630589946039716114551402121240351512411092342994103017278958172330780391642615444271892488520128740394460603897875553505448918672689685735484370333287728151559799351787046541107119658208015904066682230490946806833083935156970104780377364202412405546118523933096073340941491894526290696085999130761203170107521242617505405171018947690202110876764423291011139752581408253579697176278712140290581768863542240180032483508775735090654355770807001939146837296437476816028225159759538019997569698595658096938236875764873253984020835966599610830180185929481244654525059240117670282117667496003921585584703096633668056701586679849660357121181142028352441065351444832736789487505541788935468429744390945098518976144365158602551501682625676391638425572892240175308105108022009239446672529339515426015072042097292013519725107460616443128905140414003125787698751921132630689764376154843272896570613669119966083117253356513785809099876819526079515688708613216053772863941075883730156038979124281949630821124866554124249717914697338612609319968400562661620293731677690315449022630377120881677590032938816644298889617056080694583712304707879891058832766357960059622864404380460959660504306022927358986485036482818588791144289237439212784934792945484580928841833994477237862909629104176741622782233844162390053654391639855629476650410745329374064744436240857822058455321271928054740823749659450060514721922625740310635547866172252044463581766147513002293385772300654351513396916132821274334495113866240639216107044720915986673227091234078121693299334874018793452235807883411095921268213801977014118307669248234886899617250543694356264718269964956982521673192901312322776868766017450055049392554340662069915626142941823100699519952644897469580202116916537631606695509825701567512327930554435416205798624867145076871815188602994885734833801651127701269845642570723717769177488463908356707512867204705431038952666970861141123760348458424864679514629303990824911326009439192499095473260001816895387628411949951724802562040892936400353591702558191447468359647133881825314011621787086498892091188971348624642763086709139594094288004274417224456967064701044720189899389565616355775704320363200102053130701256043630136760492558974047842105277926989359607109190080372690772424422934494984148056059079058584197134057208623315695611613467935002600045917576108627315163492418322441225584263112220704064590627199880613443155331759296481675377685650907619036016480744214975513063930549166601544628021818416393325197534746331343747366580670249952562272081289785107416889879493304496245976654557250577576840775583620153379232450270172064688475382927178460437976389906017395018750547892528167300206964701453309605452290438779121732966516108449625196524540898595545222219706231122218893834662016670041711080634587971849823776320983923507936412041191857198231033136483419269764580084977855677546200188454710302218250662652776683327341908535485708364305235096723385486609759824616040696073046029524433976905605425597758526596263176242628331506181062551115761754159666108622803748668349267092595274966608195146007124060821729809970609480179984592713334193691679202659824295748103533979450536811651955181904122360150777443714580643218735971749559799262606211026606207405288826429384977791626416512570105680693865607865341091616374632984458325011537248547236682619978619711574065820647728734894388239068861737588073530154313046775388778524350372219847713474401408237196591053324555442345354818524782365779916206392411963010120392321746548266802835277130258976568163606223047220355294440318860311578287722639719385967269646624647483674647981548594220690382432638419520808004255085684521729315710089618476745508508107926434998194992423045004631629599485377608842740509673185402556104965848594215863802348011636575589935588900774885607082861365389751345172637105339466013539489748427605436668750019872259810541138081504387453045368458042796194173181201370166874934851648951863287761246596623652907176226748028572028876322225771507095331473360636117101900309260587393114889041295599291813487040377523801955384047137088394058327371745054863042049736716608777173405196486067942918372081843369146524717099415410548841957841212681308606337865615848450235128793676251360839088175826644471894813013829437765339487846926441560738159757571288773912911657141521718934133081659911186943656525167229973562343894213639372255309421512326507560466846280589911667914223658983489185713249055181219012267667282730012099620483392624841162558078565667167042025641677827420431397762470285508347524854702526784475849663319060150303192906675867131636054075858360292557016596544142473609709661333146890941412680569987814766679720817451266900801251991613241948728380206911789335347666598500266811056360771356775733094943620820655519514223305982790291553268551727789342332704751047134220566940124449707277729614570890526827873536929069768898822990480630818339300727974323783147049457089763274799714491593139872519919237696990908754036903298479840672201576138417721684932888403902157566314607343093177332629539658416333316240325076225682617177910886014223280570409529194048470377618660240517986847882243369969312040064841785231776933042524840503631037132393599195862230846133785612244306906787653132178014993194632555278234114588722516964350356320983147244827971530579924703730486069863709148242672142086025403373217353065224541481852342696333996121870839090088746669266942275818890199415290281443845169312166128181226152328972711561886545230236341723810088527985515601681420876709152375926358257764429298668625555639819246773639891996148445837066464048552063902359968660997958188734291402121327529055547983865074185102377538212524364603769476792707469187776463464865144870724686147999875775686201785984566632797975796147747209815370147198028934195179852326124287527283319724802991511984726689136988937498835991846226048508008955834473300877061172968646305157681032563443630086674932145613007839331719145552446642296058675383737764640138880271617862760217819663917920519706205574014543836648365586705713353211174665820420018617620310616659678237094655701062753336565090156797813351587812754909187100082122052830896095829314726166562828566314686878639454845070692173662338042975362991125918631914645955686137157764990900419626451912087607263859671585028703716653086282701076983715308926246139484911428830187855431349943073812540351114900372100699909196446187346973184994123831936382490105750147060677373594248778910091350420079019085692404716339104294745022620536277988550839902931666317017855607832285161542853835047234103153015793230756767279806019332136039063629020148168846323008140576899348011483796813803293049016651398750686939115883872825496986374075090701048250865004868608093434967772262415791831380144159436997122110153965025294936808038334937982694302573351255093225095055214832258537909842507866845566544518264613756141522362949008752524704255623166942162736290517091351234049894366075450807935608574332802264577021629194790549952609402845043028796172876983911888753523260001215700188870354691660354621633404086496026737558588728784113698306237760370215971219606548784511115400656770564172758073741119397675225424966540148753146909881621650493299361755942178528499942708540028656350569309155732111552039471239098884246855509619776206743003886665525893452932158549891092408639043526967056323254213358799994067857783547964873226184341710222044802654870968886531739457012767629969091940403723302943055842641714503259266119719578325006257437235559291353306477753261104025768558115132641866095018702613607816141042568897841519913255273161041401329325528645765091407903494723363976847332291525606122737111419807428795007361725474823764388728951876707933042674290852306346421713074491492389697666274920844091672462980212788418757988459233388486909317107216401713774914549309959532958119341166417233985412829274276387661167266631183701754813805804208261201782201589702929267307353426355968111889241469519960358738844719176057157198606320412348415405085824451175913391320575600243574775917436520791031252680541436769751858312995877636934379081739926001138326579948678012960848634560251198002365521560917333209523411321069273597800726566098403207722506153229955325990114222155259780845516049739084094676112000622348308645520206244188713807168826872180429361539113848228350157514278654648531051946714723154219578348624103199181945771411372639602480942444252648714604791086575163746176446671935728208461127978622180138797828160252693652674658675344863331269878865289679745196812742126497039081944615242614728190450906562590039398477997631731315082800637545970451309512609196116724083506181329543795186125425479248748961727134015562546581632765343494106987624337729252038984699549549304214599120473690686266093860496593504173989795847036153238003908157910381174311538686468396445437049780662199209298415058409306196302730665495930048027491927905456656923583569967425684187491275709952976857483588818254700603635942438509988000940941038351628821352380522355786504593816710619590481418668345683830656360248798592160027030290607150799865413702189537710873899909213402293117342921924385517295277162262802632028463860733112241421419684833228035853721030998442329379322789310336152850181052445063564983678608788564262795231124493223192003041983782418942776345259687607190827324237398817727443387410485409811583353624728001328672908648248576435692532513472819506479520975900860206928503025119794001383167541571833910128086230754071789571830818135473720753927486603656329275057694619851153493157469685673526599601600997634007295575140718466912987665501398189786261276122746570231057345093907477129597358549000280641780557919810010605967936233104962422649229430289073408067508599849352738127049069844294513383051004048784794209612542950793991938106503487837358968137793255244148365219187914101845337252094431055435932152827986554510816225255130872668316248851918063862285612909946151467331471689272942198031388743568589873319351326550110437084191714103332568312348235634213979316903320156881153789851843392583110178932414312391891283671255847625560136677973104489683158098965016502105309361995687441200567990207446400039678951276845117025598324433300668815785376273635039128493646986606678285530314471242539376419233365793289850823937601295928313890411332314809684681469436128585771176058961397360130612490881168663198478319177130224984778301073768670371854415316637995807238597877386100776471966645555507456403203239210791328377195019876350773163475508427726231142897614656291957277552565710573256101610192155632657151697090293599881124925525123705667752335414800560717835783668495315877724754120301392646091079242443793509068448801110677200087899220989947751866399636491248941342119132717088014266359525623802660101164954415320878645177832416648865056081700823351840762281627609107008745890044475809898185092406711823964679903831318010068457454049542922917943678131039711641920596568581223524899118139351927085877633948417612284760063990778310170461245837091305054701220054373111079718556399108897469976119313587994702995625631918666330381208422762376787219904248089716356102124796832954122143673310431345100551553012623494460513256532276600175331422370755674775881917993293183455975948555946666958959664746849198035831246639349288589423657718925216080924180020022059431865501048039883219327602172149387683157129073775781143724335223940670169145754237665471571039618147505973758819721410292381497605733373048176400157023705316957021276773185132504458070703773013299041356921838689518807540675323728347840265369780111108871439479743879598461136503591133475399148105257393403312507884290923245096355976990661994738179044735055969247249755210073655027574963550393929216080456586192601941905965454390002382967488454960773283762658859261468410588938207235043099660836019792314268164089519345497300438563787100011883634686535204892285487124997415323502298736293330220320735427683766505683153693413943849682845892961402515250456125668056333464565393770216738239284795112515751368114830805034022368957704047536262977736692147674069907062578380439538311653562195162932984831398431374145781618526494934818992287130789499178876198837371467153327094899678032209639859961284668503733289167205982752133266379386193615563880446649975331438413475903582679516399065272758672903595226771371745489310418683499922374765708918131115117035288548250514015368822592985614980836204712910085354802604125030919165141921714982955205387499311708112882952368659623233278966291895582518235902798444298052790658505222282808099243496381066289067473740126846906329595705058008403398300657840539291807889265331915736587610507507218563598586390273732938493835497217293450187891450450523111452406617705438777489951484244689627734176895475789921819691423184294516222781694881617661583439103462177057565754095366097615625348360033819074439134572747556634137451089921129383082032577227437098796404025302429343283724146725675327765092805236844029367190778389366136219874598634899073852533028400401794265086764429486985234325785525932654776120315661314316901392975157423357185077978492789954888211724578671134277014182838282807659493944492817761469462651464512686290471595735464931753951773003855960608476702417389565838284432239197682345487961780383520283008333870975748171693440216680837637371080132871023141961496527012040338456962703890858828331246749850913282802167414205270255625633578271053783573500022540020681466805258361035450183450026624934562786263992442915957344785446628980977908081646778666886486574567580936782176622170251030505122929703314081974825199575967744765884248188714104394071926044019003085275660809502438690763489462056518493132609579004025698376093917306516558953318229489953022208087968568481901216439324316630678750170309729627615834755969031623078905039190797278616479826387302013775535277468768253106345864548013641755818914197510581982554001181415156645484845894234070514193177601495322020689052313629062958679395433031633609377564860131605791964128897289175539555472372314968387657513467390773311814579436565799668409529709095426143186685158653143400408715341679653201026018668574199211691241443308452709099181959618216163454107653046046282015073654940112740314212932648788699318607260403022212039667173997011372527614429426349760838068725343693660930294653787965279664614491982977862164250657389384476432831234095455165081490513888134829441578531875322318701017534303088938518836982421921513021522016997756101580287032536332418530196017882118247934917796153144109226832705476069984639918575052958540491425440752962010356325004717672865562866915700877533171432346226004373986601114027861324846153584812113216763764058806914968825766022434684176181828170218761748356530534501443100645759784836687188996544480833745206744297946596089483058734508841718251935913842448398068749276435416964841459318539081081277999546031126612040291345668560345080601353682749327168253869218009810184018068074456839872999588089260698788276960694755127157966159190992414970338030834664164110283837643868610820758464429374817374351043473242633074311358043918967431571517843675867935605808303090819127887092138700537585944356089144558446929586585341788758077485111860884840336425971088851562876071754148157666211268851978151298635423719726946258618293218852758118185441964254543807805174552074590912942405345228647736880854861883464696299654815435150925492429524252008105661385049823490103201719545191843836119922734308226477208486216371748943568137845553078332416699769463618506722404370090748052564367068766460272784380643418568309598447497450846913717835787667684412432899092829541248910967407628830777128851630607513133181642362231861951886093650700193073129495171575700450664789675506899888430963954403827879511416023970749539320921589851952312838396229604558117291352513328207313481116311871674091135914280046838654958073197030594626190705899337366351139807153710572033312352169846345621260544399128947967278211468694477529242836532672430218630245807765589174537388154554896869299128802248526088521568926584822533359017184609519562541000820688653538468317718734812126812802248265102243466371152051142941720381026023379244152675564945640995294046040226431822101754010301132900235315558879983372672213917584700932103939642176523753727990535908094957731437707869641752996837968218549114946676330252443331441044345183357363781968401652078023968407009385145873463220728221297960345120267168859799937785787166599248391270591612721305246037836801275258471565391056349036658711169675833309933911555308868316355952528229254189374637674902366687317272530596953059076079306154887128827517442904765536046314282746006077202675133293006703197142578690627362368009050057177659555013998556511163345171945034844765032869974222982564234066747341798823176101315105305218758634117556962937683603629965216446606555826849005784855084019855322410387355005947263164125833179247873628419728061572712979781810682545058115022279412208708671154964114330003081834521278546617940306013445761454033654206894013704739250701566579167934980089001020504994885724794380414665760962723278895906633618933413785236988044165889598958943507571436603559712491538339564111351546046576561712773734476569370314840635302050750697400623171471388661918502244889242479145662393514999982476641492837212176853373627333956391584031490802149799648138214247210045592023895436242357401453423698312622621880525892066413961338139802912393210165577373378705689631437529068760847595330456987643927693838130886566039730282351860472346901730022583113183848043145692240274751231002929250390941646592389050596804253793771322979650736238752671567232582425360664447107645579307987359305119202482186401961740423978546775318704953584559584193432444113239724804592214266654096871813424033714267549751222134989536235084820368557526200799506462714777096800237543748325037336960518353203852169962045300987883096640537327166486812815796484432288839022868397103051246902516193660813452234534997213460830159486702089803197556018501102557195814705021032080166785818651700065961583531260809312645727416774996831890103912852006197620610229114633778415840321119828063461450263319199131813216035820272842462921659422943992348908990368535666292292474559316115977889946738272011077421032529223398354777769913321159963625001962542309112377106993600874052541319225948599499117428460744096090403403479093339549145197760419373326884304147623362294668462356617569662137839770119184758154112709431647238918084226271873874818818556781850282338081295670669373250338821239588425063239376592160002483737602540293946048991632350107617348559930033463972197680638781398302689979971160954689668983340810965257853509044497599930868793614249834322294985149478774233645385780329100218922942412173707598699099979918665088486328767232518508950523426476342957364513810224445675205218562840567586932113142109416995250440085360059715761304336644260644939854382232297238902592277446917460467659449597817483089964526454836546796813939338509106535455216408323835167925211847073060198823324555586009221079126319838204617951128165199906477510811662430363707306451739159594272988992351885828507516962752001353919506031288853106621658271715729310359855629702615560671567408891535565446288190278328421959178893501492551956610630099018200176800061509335246955613313887588212646976179100616282663107260102121942815591579525799475964489469332054299833869127128975519013943344677332794879271184124154942189725002322630269071008504649087588203068961657779035650991284335249575172503016176339185175653234669611213659245297352462236334584829038710442500216495828740618732204457239693320983376956008149827865544479796698124170735234027797989475579482422019690581913215047365985202066386123776113573375503796956719627158052390484612792403439584909698842794395167137835529170243894785944829276294487584851903250447657948569949356595912435526655511784705181312859922520839647825129511941083389459708741464177954952385942702083443483674378818432604641456134268705974614624052570528414518675172255593879070224887143172395857988362222110536266239785381811339103583343101576526934861806283114092147898906344204257795502754158889533725583821046256616501131038050485730177979482121265596576398779459118697746538312435591811728714918568024431455360461954235666227170899766050669560589026727690317687139243293385631316830437227343082694749926807472181916711466529103416846842373558095804064021316758633768544823073575903650995629018568418778405284730603178477317318844966743410392703409718109061715377195314576265360824653865935328300068937195622370479132653400057302982099473531966126859377196461519266338227951821859627622523068338310076242876070346242671085477823760212565488743707323860193207508261771230101218657506564968090158241973886894194291815668279665535954300555050507385835980104744463741156046139865795995291092953200174988586588379858921428828646066127041120585896353615067695691336628592222701895762215746745721462595256691803661049500540553335497440699395064370196642762499215472987728958299078265332966558573301923392081333078193791018854736062019077183960210474280256004743412867381318816042309149469078743809071166475655003214447532734317886073632872641379466776905339921336991853625346793129612036500989327089675282378971824208234399556806692103041211223520256952066692929816270875221105906402473851831650088662810593373356273603688691080521522837370152618249748763575917539749840662398351364456883190848634402723604998876241087708995475499818746319078400893758739270197064892997527211552066222235141625179064436147778228426521691179961683769275654668891660098103363382882687045121402278278198190822810341726773065343315229465671916547842176867228270843813123095225191662327521061619846128877152269100253759829861806898020764312119701326083485092132931483190528883945253150688815887895303983265292183154643570970812855898686145344176749416753809040555798637053452870043106545690551845280540796971914155779256351772058421890662152035617727943040898011315742553189618907156841533160538204463459367924276111135042515511716111470544573156709315622386691347634464904157971118026020458999238853985591507801208155090567440520000873067845165878359584048681235929363245586142539086118593110861558577178967932683122532404661306634326381107695172016962031358328062757507850359337370686605859161638241230274595525318279912906688754828416914500072285263603140743960259911710136998335147920043728035159645614032471170760224619384657717002190431630444491816648122896612977010679411480535208201072237918543828232674695202741649106153609094873926488322254325377185306098745314612114649858761398042530816343870417237718836773147492953950269905827242355043838269274962860922910080801596726536022253673761555861033708050293298997331321152848146046245231510977624230653003777041714949791864773993582529423436415638116450589613818057986366060845128735983325580516826200887953503743293726441967895286338427857607917455495449445376345145161684262958603935316374768828828302492279233693992207594750283106745707142658097035949963286414221447794336294726394156407014581120582209271019027471115584589652086697994842166350582969846713953674157384715469652526320198321309715693289673352149714120889069954121709351790389040081348993569019020605988032478132496385298606253861564406248345857502859148198918876998373181850588464121071101245537150644259777174743164660717641736453937835833768798244578965908075327063895523306263416228370853344654318643966422057461815346282247616716897505134718704729650179542770073171589482141398392203679898330023081939112526126342746709419967076924253077204381836325639140248435381052529544615335340104826643811565322003206743059503865730657880565668929884299177072883890746766030951805593447874337763195343585562303417715374209282265097450642172208739160805900475877165433308866257507273784492327890880665895737529128212016836483872742006865126932355460831577866522062645577226078770621986437609067664925986741069745257144514669955914767534830858555182100362118852892921057525105383520802619685060912684942570284049063635003880366493842880195975882469321746717167700589513697484915637341687992354353314705770620353001221917405180355668065615067815911186064410755075855104987622972773740537153288429376655729731878986295203830893017913720742991496997212031690042071890354531371628574025636870428707906740144433988282149638166970678315091461584194013525959102716562508884553243845867435629428133804964056819355961656576198916366720233431761914832636346444252421868578812126444618132890797378768948213233316638826178396881729367277983957199384702943278124424108398046960165081878158599897797576000075546656037469067432789470371309692172325116984683186418635610254949446824601943662503037065698067390104946020269111064561705986256385634997361290463256925965671960014155692008105701416815448622324067059223834270391423746006706069520461190712758701833143833725580541337513963575294545732951053675249111368565835505266341670317703359351966753854856985221606503988300463869256643756368994834918839004278479179543760880968708449837983036796298256775415462037710678429804739707213760203014432461382763889235987314424975105026234337234862356462409845866478907225187187083890506156821018179513316783966366595658497133433380706463669824158992232902444461085431101478178505028722032298990665930278121693718284357349609780661145159892550393586602484349896450771298399741029448466244701019880267778874829612340867452204277232356910787104161915002973340502191000564056460996701395632454019988263302503159675217798778726609097157316228226800180346285695011761405268097702203683832957134651075055363739969896789696815525789928446860117425923803769586731479502332850851028148504049979664261100422378858397342434659041264183210983749078120002967735847058718669797906892157598884480316752012264571635468907421956585603209519436565604870027009766824667724116731283509088109890195674741243388946104410033486771424597296907120874047054844770823481548903825257244286401864365154329537287489721203075451884259156360237102570695970040096027449844019487008652294516041034644439478043081874298745063762773223193472563771630889969368987198416217979190798106498858710592782588074066883450258686152862678524223764706955115422742835123553397280194523025944389746357433226017800828890029072174067852957791262187544829008899150831971599025669545219038982322933659595060932929261997159148364493969708912439688663770833538591387582591527666915477481888653923869450554294222260752462574962390917280371411181259827262937305564822088843944793591877505549302622334665062685069856306881175986497672095521268573472246074012538779968769647822285117651059809631778155473723275293150397577030962032850795146053140271940479773249694391856344880993121068649754865372888510829181627003946211290532738005719021134705494067346150982769124427902587670908536536496632335704954533373152225800666017209551091346307992959701301928332774548924886817439153882145752448989087230517784057745709772099482297739362871859807279543548191596038700959171214096665329577433232046523481133077236465529715540451098538446328498811860268605789506451657115515258844021918721531523999543867180805040484784300001026512190260843170173214022849945344613452449399588817885259604647217534799677229106604529315440863064006006657023565177032933031689120321605143373291820901533650035850275295324346123534161239404917625458332792423898405438609650942017606389183837948244762312552620545735184944231259391080414466934905971808140851161039914949593029008863001849174585935828633782067972254569174069548361336162371308083416928642465268324209143070645880096251052097020992696227888365228904371474932044800335758413531564385607980161513341574885126128456551358745923161121195003306408516022795464198816278005324766828902054212214323672744270714066362013852869358620311360591689616664288139648000648440726602587951618425435040236182156367298697192578802581721504625464872249587056454466521450910201585397282872144603709736243699020203115226560027021631335441496224738389094055470294901228521405744199971242144040171192341446649480033973387301145397048737362584773693259327043768123588034432511745607710802146063199348508730334222764369714726564458667877089523812775372332792707347123576229200629078333363701108279920538143247503555264437103494488177773965587925816827394216619762373511220736964848219376276797335392317436785267532471667005610678402435047034847934244298468767299007893526278532615828373224079452044161023793637985247187009798743384298920819196363108219010470809780444409477892582108229779933716746717901872271887531999552697260631239544834671523665652640843844054783659310293841161724094286305740965670042797731293369463749128327852360160380639707100738666619523197464066131801792645370706819459913105222585144050834907548266896753741796045626776452550153800385864478460588459738390837574387098560114364460859794020216024822915848696862007939430629562325919545894478637378656921491433492002683330438436288501408926689550892474817998242669403811954193293089589920890308948091514672312005940303066691052901833356179976765189624400748277144355404254777771766040734645011445164745804220720511927907631510477867020619134747629980730468835608269997803143533197068103866119795782669461067871412312460737999433802795879954021264434071266763842424448232765128046410448588319486701241024364594447690081368291253861407461660413429174127248955734642313576619276155038239827501155050056680627051742732849779701209139957952734028894618226347929127864470063661635760980563068683493701783111748521464481253266585695458000732566687042509617536421137614560885909176720750132760410752486624076417479187883856024710997283339538301117790518998822139108808944253408019097482927609083378360404168063925298715166757044595259957409291371160614633551623026575502567201672455542356913728548888280140195262574934810218888913835222416502332799305480531152790741847296136442005272671122244269078197381046236519063787174455594895090377059570737803221964208634626148974968092853526871024748240573628468347891546516325133405037155886384699360867341923154432074795095685657477895152297461081686294815712335097913922464894953132987754265884295715606319767754993303481989998370173206572346304076442767569312474326342259963041398250420397546016748719807428949300202093105105495525176852982869607636662605381658757672066797714336521604031543659891646281424641683634587502206874041779252872197913698801087510458349011868336512779899076370893538405068624547575168309866389430417638524914752058119955273472621198839200108057522879219563172542719671848404891854740253303887984655050005666252790376266196385288172339278335286161240245414621010516741672018765260010062958631341430380140347115360700958241065941363347385517088611407434316029851258023536237157570493479938287939048090697640527150177382613755548555826354190167282627742077574212440372121884320606859523362582373514062801733441616867040422961659109519348762887907038491711846204112087370792325268983290592729033441950567643479029381704554743827095362000017649361689552471747109182836645399840871398112964550613080606546342246550697998834825088690579258021873473985364757918797765266355022328549160423317898131538057731807948644482606634677318277532875676988308919848667311508521255024064451907458397372365970883264421729627790619541525444289934840526919031145853623818043600048235339821723691859262143495550805502154356451327502671699562053666386152871399085290524774352628121363508084772773345214501790240937203521492330079159190948330712972696602578984862066837846211920199881178760799388509127131276139143391326413711416702191882963037598880192421198159880708116717048721496722949494356158049399656410977497868629569358341516543886163889503448038185588148859278732896419088627428827373227175953457737680155723585773472135319125737859357965714123758937088853749376511388049125263750368338714890869440790339774000334009183781022418558553409037872935562895269826949900249070424474676568052108481074512892721557664676004147948506036583018411792833140761345864588240443340730789731101223031942021787413942568915470321166085984138506053002981168567716987307642975506508074846073233207119926359469991105163117822746189008930669316047390107093907066823626867168585002825195806031389425055975913359552730437080771577769520255083904158781370522034520800359323850004944196750883039854703936233343627329325806934054261304080970995370438280095983161518515642442696916904998748121719345897839816819645796666337740652793031653538757392125257201015637124637567484433809232851766547052741788800269907696126634885252125260336837972227035759693782211327261350271254316255893348109871372706216782595860821988865980297132955289066128415178586022207841720822035717219080615900901820952686507948149089475745969598574621779386065145933019812803337243761090703063908117957791436094590287218127930542463710567521641246544989465857133997334030572024509734307963512844185532160995445802760356420956348419483771886853507573362772212962013558599773162829956270847786606765338706935244868096301519098368598081118891810917481457625097052617765182651320375080552626405918692344674705722892482965812375761766011992333058896758493742206565121360796106378711462081698165957164753769244024422438212074738316697493087401003966410235801533503386233987320395461676131511611015586609227403076880370768755775001561747249107765565089290929706020845801766938554321649297954361659002516351939658246414331961065507663066817256659436793655671727777123162389664655202312089545056899831653685094552216984264729275712051772872872156185500259373147131755710874223027635726764267118483073326598165171831907556258598223407230543612037638468529732589093456321232271102318291463592323175144572400794892553761548353479113804451498103210315684818332277566090382621487312831527185045536445308641521615425269780935021503550151611074246166642762745120596560825714055575574511071133303101788186252569341249635960001068172734055623954458703660360840068260544453949110521512812346108642912368937903910842486509465500015992923488818099489019688927046261360185303451395494142662880924343847278984414282287072514745341662193676027264526490714339599065242475457970753364418271631202203178342510453610258062167079266956316464047327878975682320118186620544227264653313954619611937628111057703507136082948680633480552981575247970884698244486794178946479416803495272095646116684761395162433407038918319810528329653521612706395136754071275980080797671940296294951982347726427905629897338852148971409206083322013276157987848463160414344065995317371124363511812779082721228107458738112395750133390020581213426333632629226910412936327318911202349957664743766123614435825252091707597068433921782864080189114947941089744974722568873235677020372580440546690460017377983262924735811676377456713313602778025321612918802164215750394459173228668447727411836825227237394499932315834873702006819144726821296055036507188762602778250247655448694152929022140522845318025712587628698090073017518526142786380046431095018620586649414417789342560207914171740144275319456026923330228424643926260054441247382622324750955074228641919413007963093133351920961529269607853832591603283181491538344416296922809883862812159771172657171383492248918101992354114281822270742605434510891832268078761576422777996784169165841348752489598134853660230453294632266050563250824596855389972637355995398382196772629914220672343446452558431965846193445906807549314981568236693282157633994866774378174035435285057076994212671294065812913645750325176012079809434170614881531392565306866520875912952239556149000500091995291091664535831819183134694300003301485007757734364321832319801607283092738770946048340537341207662901981818236080996379647394938549370291746331720541238896967415428426058864729718500216355679620939472611198605246663206926798478881519181811567407855652833630408573770349377695145554799354365853221118235901828036546025788732044839636707446256893929736991869224228770065577482461587197071502993675600990521258801046242547227363118595529867256272170983585268807396420740174005464548479197837484458638724914920994519619694678030929992537539485367682047187562948313361490842835188458118960961099814615844270491234905738175786336661342646857987489863605188743170319535343820606675527008442247452706288157173762206641634700149346171203371280649539995494094949175426470602027671898667184985481463138292260340379231985988883824179494233671725100250493592705565515657669557344084156079756455062440400730359290766798018286491576743863434390667308734597278903340005145012805856671896984541637282125552027020708934056667491784618099962437577275729165640817524315510302691574638822236872418314736306871321586759979971149898423546163440067166664157828258143414144408484414783885270586319959835584423093955951256923253434028259469851828244579486009158735507072677201478036962373920048200439399917206156325395358158880529469126394660809763589865352401295754565683906616310649216598343370282022799801074244897035253863094069007973081400835225366611302537412079579864130824006830677796606265885135349224224321670119544089598505688032170765809361141859688940876241892012232056549809308859033914943513544600225218363208399717841049205525117456289845222794909944519564574828294032179164288301606678896561394387790829801831986135271105290314395397138774693014083071391067388108630594166248106960688259781793493817605602425430604096840710204909736628311174891716290187545462061082535892156936282494421279856250430528154388144195379755438583365383751593422374304277497759970182029104091405138847374592368481270443765964831517400719413672545609252607394863353161492109898647873516147269141835555577864941061242145196878922111084434768885794800237741597304151315188175153826024700813131870284858245877422821546343124915915737898826093608023054124371966563592106368769177467797252193932323957565745176098248349639288815749537030736210674279087498666110943276881448038131408336886762692562929960790469007187536441546365426153316493992169821321551124791608776244722697882906056541613931348702023369336436069786070196431946438849807697747831475440556356430585652834251494614628647473875010786078540747206915881279754570907761548290048100491334922727233445427905711467461911905631213319337286575133479042994733444566944523952401693657279767210880703571127653491286094837023236586517146565060052897306856281249788536064596406816007115957463539050164137396805765815350577929276501109434766309895415370807754143703748899363524324552082717393181573554769106393398492908882484140178819790481249613876278254435592610519735862934253480172133921666323440821814588452248064665220790037202331152044558694151596523202847639712361343633514423571749391478067440336295669247689252983497181900266865501803663151188395843520223865782306800368311003972940605682877560524998193429348025540477684800450619808307941517720321252548919774799855712401271120512202516761801941787045002281098129541168956297476491095638490773937039156565618848181507911678065879465964410573196046482567262367112783763724571465903970333010752388506936354951515908003633898623801047810962231732028024281421434396194027763303330395436414659992680679376329663245987855327264981055200922176355378975925294892664443711934842241458225821844249674448199532315606779840311252623389783992927270852499809076466130725272042138316465807350209828301551023749947068061455304521690209357299015275900504890282258510954581068162971285638150746993967079739315343188250010296027627971737603944863679652085896533304289997990780146890985994549893624518813839491614480792249613965726839581041956830800113041142949705264571370821230057213015107138808126561399080393487479460790490953134328101989385515898225219013793650891344958153453094079106812231550927461269186887656009253040320588422514307230484026299363770079001061351790857213704223645353588030103749155136401124398615180839821971430674714203346474669482248370687989006467107900583970893163375187133985403809056603125556338402616136960793932226043928350019070363510886042477818996603874485374082054276918873002455757287076974954531351483519087448250946919520389363341449357204912787471872071900488821947809324177427884872434653178222280675196441160502908673321738153269239477701035704414057411426966747602761234082752387190297766191289681612458868456137371869574849029621387356807966048236830179459513820903035115450783117841971475814136056077943674035509383964211780094299557057070307814913179890065866227988615815134655470282652212028985590362411488005821846913868661414264728428297724998263449757223829096353617053886385275656607975227336741836147435487061940008162400540808476664413951966388377927888812019388649770898634937715773789233530879612934049242371474921623320173258036925520337959047160344544746007979911029022516519794977332643278552199871491343775119979418493112042345862498523944160844681951290965609337518438325569753928730322576281778406860864764906398516460307785819423213347512049415145011621437012193571492004769052866433783190853184941193159622675393856153952366157295347967266105033228355313768229931457739475372745764952309914277648577530833209282783106819714740872758202846150079508278520353110201360263074412581311850872819753797790953820640946443121435969566394861477617000151752384272776218871795661843299034635850862323297094330760564680495699341127852834062631384647877702925157719515376683147790446988328839937035212253878544596893081098885572761048515802844767898671963061362859390524431264568536539162391574190870551700902918670568493197707039024767884483735899473377351585022873548645935549803755164066724945154662005889250702189327748415614658774107530914100257931291255823994327013005608410484128715692515691256633511453913489319263350882432952856733622585129737209737215336170255428377523536382192617213045390545729243546203255945498975564675110070453115935339361776128733895648578198996564806553738747367118230776793878212866884300600942332161691210246318768505829234832009374122675634517059687437585283679767113487124522004242294469434495590136057219770674296159236162937181012174044510495663696251911281542547119479684584144564537312203111221635564283383180560334587313645870683272585980371038518399136352027519682992666151883666008253333718977680823259196222400602513104650184666902689199927113432514238548596358338797845468691616461408902128554243451287739927080333847903489526915001714295578922074314015216971708849868586029370441892094610932081638905671288306244935910777611061745233664482855586914529877100396145584528609154975785159752472392984912302948342234322996956809466092221327609470306330348578841999873732943626799325550431353692296821155913150577976692659801781938398337570703271569851901468244431591124527883917273483895654322680730486298873860720857854955816775424505391488531334029860839205064922219397820187220776831010467735715357078677957869295372845596290435414603934503745261323949319024793829479286740984314139575054711318425663491455209317606913529930956236117432235032361863183081603373267554948677555753671819481219982683077675670719459953195899290267846263235284965917746464732961262077903164269281349045250289585606321285054470608592122477448377802531025595450235946149880769455478407783585979267364014489033725878827457215994132022646085932702363784386342362818484965541595646970858722557039163228438724597618071428958119884752667170381040083100195743205618251599403105925728789798332717821559919556288918835311009620010078828668683983984935306999710269685232311741302602029855980467120012524365971129828063123795835884995198664715792717786503032587126973508284579711870445127006766949138403435037487692733958108421058873964269256648410463255599395977233352153151736165988763054495833720132877455227559560314180958877770770876579174363668986937150326215599112668818443070060941998235672314490553990070944350953718006685033997039447418927903843480459921629998901200456124075825141710384324411959153200540593083631827740112794772345040500802092283997664014316352764556031522137413151177404977477161489735887019850471826969465921935887330953028156215972104856366268165633040615802494980243275212483982417357371014808934239732047277111694086152334199054010731770260008003533994016769744140385670011438582673314965775580156414830730056384731263022075529999763076457013604986014574544097165255789696566152615117784800336505434628150054266118231296803850037042371503927430655469264921060862099412322950030736972186566663340263339334686703665962419902131520993179405278049668749263264517529645929651322101201748030777167543595926585731919127189750103356520417914570516925962270658776129173887227843821760073494617357215401397491018121215049020120684167248742515286175482979711724579009940311780140472719481750488743275037681186299075222311688629888665175520531750400748621925722939200316819184962461900884894957589914288179887557157255589718429438536564556491811833817080965882857690727965713020359102672357057053125991813168603244104316938654473460493130120489394376665281564493656816431714725639926632201344852485255596565697523287667807318096608819139559190062311117706366355838889777771188692588709747922655724687851196735334525331388125664363850742173485845417259871232864796853972294889709779913487632708531570281696470783295435359648406072024952434292559609454736053564887025399312133353301299026560856744925368419577996536208062645973257523514012382170275983379946781690639784366342982666527918656585921938098271413436146047641217885997167812473321665606220030443940012437148844703312505976710818740879181173286692969459885584001615762389605061094335730042557875259431695926345381432056209672577182814278136023837485840420215668795482013829750584330594556305162223146445443323356778356961686710559812693068588584411265883969335318646169920925425820106543742917867163110325471208723849469688851667389430972488267628533083507486367593332944002249021603538780099571938346641615485782964218027266185661089041108058785299419580361737993655310338043960038913751978405490536106151434633006493834774868017941960370625634430566719034402544985701434276600021949472974149216895762311301824648527882321127973760346666141512947209947368468801710135199363011902825560232027305548389525156888205187738192466477876602098104137308756422346615559739698249249674723935124998354994162007257127496213211990545098371411615431615361467036665730270209536629236663557239160802206355696715284228735989542007687634462242062744617613235742618169624765386391322860413422141432692653086966299479680522134838842102342896668302009943765702325528985193636363661369703843291711864229205204021872559459211388712599766628879422113988943678265836191285077680029638214233422429129412084727255593098786409649900141862425192987354469380141724540327512457042833789876254589611541686821583442017349378119753722241377323423926545558128833150444772397363437017751686008705577458961613896440675766357905894337509676565518847521547897397602412885005300315755547459255914101849780936325753880130139892801723002966390802161474044720565257252342650019930940951358035492297713058401199956329225673371540178171003485711794299185585788882567202665499411954464162633901113616502994186557240627536017459459424619212037704418323953217974711826856535539370044259575890559818332429357047808154550155303943450818292376751157945492400376072736431699196866771962114531507378623386433966767299422132305268815756664947565614132718809620795978383863318174848358948082149206941177720366379454313414286234408690739714101198605983482340069798575293825892183980850487454444489683779063071737284605131128107699821097108006018460665077228780607133962461236238981534664255364140939241285427529645250549168462628125623324159476998565384278451126607605567591015221429451506649556998237583836663565465856761914558012348458104286860384580028810133316965836691542063668175596564733484770973919865233137709487412903712680906855748095804665709052606279387486897350097100778069945304540875583013446250791918788249839556958347019679966786531335527081462982983399094727620978187166781296273457722518478077846628326581709918143104848945642852780675790762987860777184852066513141247102964186640230752166797967529970957894450751043420456295304639004306466240704966614148922975519327872423810777413134971367807513719288487034764170225220822488469607898178891568421251024314264769787196908412214308081641104881674781864111116699634095337553072186045576230457711797816799217126148949288007402723533639705593560745045538037917738158899269666861710663033032909082702233889006059477245299798541215875864286883683423698473993602471281594219000470592940015113694950196390114165132599769144629868692449101593159410256525514459341408725674234050104014730548617178584487387529190922269420754902365873771281629102473744182142061162739840098528124799082255848466868620893351540407918560290764005777309738126389261155240933151062923199085030545697761547488691186534704923657692240996497221959506565159363104080608257880018980509400847567509595543974374085840283228179637587220360571708786891223959383719624942848872487443820689886053362332915456056971363545252831977918534612193440091753778155925971936451397862130491929050623430992134308848564934726564505790590145509136647464913039827413099080173425318837013228965797656890683738789283994249602543090435847171841230224483302841810064873255914162059162001943736239215369676979047904617655050914716553262166675098846512612515507915486464482759556489528238232738549663454435240124799345100817848613094336359157480267504810890449706841765095493834051762685513123177508972487894079222661997558342163447354435781581449989214320693642777644739105082256847807859046581878560063311968349798352449249028970647603785678120959575564772421286275703941012987939388162096573008806498097124250643683247623738871585034903300872644663201809090948279737511274138000270082723566322153563547847417055552717981574587367619171280049615497809774902977695708325786173073499999516405473480362589646346611205733009807226293768278809784297645290169095392552973403835888729586488471510652472874059557345319321445697544267910807233731879319152707912812481847000302638821770483302288110149708514689459569214991356227435227871088753078114766774328349170734445157334111437582817182014334786326793356541926753579923810115490701958943704661866115864831217521301425663755022927781140147732897671908702543687092130751723972106217847521367330462203059381966069924924876217765403525186779319356722036797136555406308557646345083699631292986670298766260341413989721132504319568431095323407624775020369867611599883691007835625286310615093707356249247861557226123263298268067211534982333217980848276480528547647127819308162466406959367414536980379526053834588224716248314957970441901107003731897480038024856333422138120141522516408369301542475604804047436328904008735445079076713314167172441700850606646173362488760219623466954335360116384332831634952772555542460414358692572537193345114582154578305973397989799190964588814854430840249950990993524968448991878133044718459308530254404133396066729467870474791568564826830360474940822099033785927921419083033961291837685405251201562271326804765071664188839648735205718800983042477828117184768886037015027806370937225165667033497858983033190599399007530868205484919438999125413219943174409769712887261330802328963719067027082823623650117176525740524739305001742216269211774465157758383689315968377540080792705307255092035208389803155133664803075692877442622496857491320646212203455126270421691774219958247422157183841370500161853035645337811868398136509186078105721504898870443481497780171270670509170238295818452934022485153588722165179503173718380859789590399259372305496567758513906213973701102265168372248130269821178151266962869952572402696625872264438223300360539730402012817106458042445965058922045643898312281887107300204195410376930414783618685167180694791736450222124116155414956881771281493952368227228260548269919296065217847494022833455210521913843497581647715456551430380115351273677722922272876024881081554391114485608820415773884179262857269494557193782363538225024313575212013141493326425723177784710418310715863255763910630710254598920605808131514209925540889186234592814529110395976527277312142440858636227649916049645453264035517231356771945321673053948678061821608764119843317982748397048166530871622740694348322574168870550462494492985946749577978461238277702646893220761807329998043922889990699611012843664324514901711830402450621182505756831602310897535746149935429161789908216088187892726503731609367833594597739041811914508389982736813721112769735050588526192880516787847004910593967253261488188489296837042205748885302075747458300444655883993038378801089855152941791567129720425787222695188539421993822203253396907286025728356127890438399666766871213026027371577969813115675154402455668140203648920626144427550495320165776805511806023680256847542098061500683223112184894424220598842098302613600839121402176415402710311106950404984425523364259520926971620155331498406219256740082779275335504182519427942972648870052798516647562170230421983971611809356213393907257371932237657608051537453324215293643572113187518939861566284298762663450025687912153530886821682419147540833265694089067904508571230419705083309258314508945228141080410096952681488720808548497072762566764371338466812390518583321315486412809289237478506664705114731580932470598326334966148634943715829888681200807547031890081166830008879369911181067013886535527021498183914058364544018769776828976486439364553453105182173953022677106059996562053006078166008466180252281998565880925226146759747211675446263830122844858683933286160038167609689821997655219280667205290053462476908105286508253553214395018627312132541661718026978847151566637204871159005029430981762735680377089994022986472759103183226408019460141489733946156990192160845720888103256909497045978323506189594660550060668202297937724153931142510252485089371709848593922799965048024900774734600897766486453427969822724524134317424364233605813813779365966682715103655221524080912685284186782145963492945841107086070906083299173741993343213754732944031694936819022961615347566119545586293811383568740289402579817709212869093020910816637695512490042880449919804596578564300387336926683767039842071783018818595621381448159091816139466304442134495018377136029893267704211352050825606393166657793759615540679751607173942858016582218782299589371147872117628158436927255344049102683981822528079956079028992551805734771769712391477576998716172496535472727902372393108856778631490457170206142706958802227125403097401366241440257567599673389411700500656977740410711335433578050058394092084161301749783291750844709175467777195768973566549685968925375324528391589288184280047554558807783278365063719334430120642754692234497117207624326701775822891971439044481375509035838133598864806030803169623649799450767513136337597546655167168428003589231964629222774092266387470013571583916322173111763775673891919136520278065954392753170962014222110184367569016686210393116085893201161904574272526425270188500389222817731326656581473776620288421430005805761114901067208346982448621849916680845366881550784810100718898617280351552541664266579390123760793569934253268670473734986712325765629025773388646204964675363104214991129074414599809784681094088335096661360220925514765927627678075640165949394627775482750421744563193753264730573973532303964399729012918819569756385586841275875484373008511583065148112348054263661348876373266941432103618990659921160081394612574689040559330997177019819010324265431815672927319282986931976194072119998214783649764414767904842380590094451137226599110684700762676532410909996092172604179206755818756851720489922207838519892949517820011911036729333519011997440661975813747750241109520279517464228836754060542704441833588111140046377370709696542918883310301248784145173023944679570770048806847850528316369407795354919618470848344231122155765294693989835857185896966822881230452587851733987332293877793194269960761646962012478097276309412965600626500087292604018830522261096969168399746382019822347193789418489150582457371248645413549026475081487062048393556477219459246269262188726228000871466195298184074350964781243403419662148552897731853641820224521247664131581377841488198986896113485410748101008735506352561691379792153192955232065472149854284446877700568806009530718217756954780635555658372560346909756347815573048137505630894784080914741717660490984131783504150128204737505723173114316985392049578194776654248363063470482163993874575610823913983630652673163623455813343754066996339966992976423530110011207555325395628779233138068851622448026876339735184751001759048617856758908206436733366091102728127900874637743888811511445455822144174337904319342359977087596653945056200600103148574823772898014458377844234436313095822586593092928913198946164528366790442311223399449938969970714104140892547413352892859687626201697514194992920736631481767475347490106947956108035925355097947151298238511719619119572197182235285451227910081529381094065629124789269559794735647478112570629736688807385566971458525421275640780551234978088842560112169809934906127529810211202343208410964678080706670154800338784914101288064397684744456544942428877029859779473624600915434134529791587498181932571753723611961959250566924145708017215169841106688568185228486519216234071987207518084243171300421393080241324685618342161399185196499648523479698177836683707857565139956903834836353058880722618152887219413920868510771380274248107107825683701334279258323158694472061311372844423097212529674568829054587916753675336673339883328309476492053217992627379082365547240590774520267038596167642184673323530941814047065471505971534070300403903911329777102709874697348061517394260036573592491862991759466303537552174807636273050547486984955427641220691178551985692975216122313698414075040629061966185560720042347476247580545033376694483388787706366875939609106919783763723836518249808592502841957672349890568863879188916858301352774145428678680697382935810959899874921040785348527922627778206648892709993047220138247125330798671072029993778862954490394615451616471614218981368309967327475733546830092860015073978840279641710930436565322825064299822839536801517824041458699686310943377754820714819089435677062011024447883299742723984833294520039444594098374748061919206504198033377167330122406734410790605158462045506510491779205462775593895793730135108610526231981753621616293735191706945729864250903897903718436714054837787571590046552348836921532497952090812745110028004407682281963439696850703783922354623956704248290809607968229039267118205771466794439153970036068480038851205711221686462943947553880571331774573566579350783697610399788058404146371856281205712983425297491362107893594270777831486991404762517132889469009509424186750495879544250746494415497385668244221326758275419623379271841981651907331832553043812744144763767092343634970513966767061233459943942234448831989331360364011406478666600395629897925695809025129432818807474424394362398619408701977556405323597200299033567118103962797833136979652365236131183289589464149238387728266808014135900362524470599287696654879457450614417524973896560363069039363413612410568344791592295246115128655811159420542192920447757194612015343314857273009022113870197932536086493479490704676555712485041353534258346584600430136225171761010430398841633579182806353796874313725222553701487270096372547956416372959770284573505182765656392633217688259014859764627965333697020706322957808073318421027225011243091655790744781828709019854618485589169301330329418743012435684660789911622598799876122558786307351215557796537001950914739466536070822367513408309703714495427307556453749455318291001856156643570707850578166054965001673272576590308309104496085010227414970296924274279287734204474345520303961576908181822243769692052092810490112646877388333031109877697969723388106742977612794729431326001513285173291559198629505526677398966170087423092145980638962133735262896271048283623573920878148613889213926040043323505843399721686997282499933478722188691389255205645947278176666986057318496123824579936368218579086583744904385261468170186059667006431689182053588328519419947071998291375627123616399030875378058465359070342348196959145920827831158132170912484832226115457552838358166232892062289024248848302673445322981991231322336674888221185419910655670488159374368985472675220165998572743422119680471820085591975172005324211873159361556937763990567679646031478205150525143018700707364265612181179097110688256603802965161994106229971449472010272784541947261811011584995968499954612334894185675927311391017969199090056898457026324601985468034225879769791802758530302087212420901312426269837272209141370344458379581640617068367151155845456794316266185896099688768445016418448565152270814827807799174549441439106335778120379463513096723677096028844134289319044976456308743660229214681586021023512403822755074860397998654126667268742770823649122756495555411986466139573722431300149922680342266817312094663636648010184503044365503983626511024674476756232548032131395498405716933198518903087146464598089976703875114768367641142844400250261881868396792004045441622096131970920661362695150585629018535998796603949936605567396716843087817519904668133676787432476824665030002601190813289191749297651387878594568251338960391500969133488764570075346829448407501699606866779152009696663394797135232380967617567899960152423005171738949425390101088083268048455230089382078499520411899841826934522814477417893152987637637958548199037187323146395824470367304848445364894981604720135420251860373540949930417742349230911887071388534014302885165144848785402828943486093615135374785014009256780910155939904871588035009293228850988566155446156756489669042322610963759997453825079808908886106211396306238506112280007251128509153970044981590619574920594934096611957187442334416240525956400932287914911662451848207860190904015413391554953641867097646443548082882961170306138266716873851231035468798032312312254305725023783404599917268061991981879230662802560424911636816098153505909241657727543814247035124831479963009816271608994119326089503783367427529970507570101595477664908570409012474531652229775812668834810291637149420556415988767079732996960649834895148457759589031477698769822742399089411418431921171079465786756504165606711852560728561514548288725155996133260121255245535209871377891654878576466871130918098772769984158013003929737665234526346136929397719201917402496538362775268978983800294571600221494314699623779783348938866508592026220900568268429390730359928225433332978835572683206839787242893631222979977556366833048783980716904427678300977292478462538985135666806338749440538901780589151009502735203268438792984978549947047551090439567420107142312962195553456632949645680688196151078163767666014028899751584832133994864754383291036142194430654928749341124036080801621727132531893183822043161244764001621795031823821358156074138321845103957708997130904146122666276998063522929261157618631810659207166585995354375394476822183457567705172639007802378882089536657559740157611797509298460088783249863367158845254944405429367388132141532405739962808066194904523589143480981413996500819082446130693200675080659393245459609697975077977759142664032513421494868136934664202523298149940490416255586037041300283311288994305585358378427766271843391961389191363352004568221625323660248691020761732993091137631611965290418598712931671521209136608794061010825374085503264653000953727654627866975936116380975856020335463948207955468440339382902567913720745387544272006442599060631320551607966034326404782891213489828278767738010571097778351124086730785101723375532181955079048435889760556015344554892544584522756786642737572231115160059994980290478782520206253665155028203075797487436801697027674559222223841363280062237252785321728184575736825664648466582297372254424108697685281532856484265844794294142772718237389266787702391783784126873452272811990687509860634907043376108222778929883445223264176316912124029160629238333110582204469154131483230062474755955200220278164925624615497048257723901821030279388410199599278963359618936225175094947904340727557895441177747876438999909772261251661739762322220683972119215234878238581170588686613489300806725668043208843048561851839738163350165981118965743545496061522057338841700999535303888541965552621671498304979154923654040485371054306473871721621507314092115219172984106944019909268373277093610701613124542405990596727316426178883961634564312194271333891717429648610841415427240436243900913717132043040981412624091362591249930692834826183467590169044255022193546676966071600726770538784141768647850921774942755495849490703864291926569284325542796010415939206379650713424029004134423377921157401938662376790241201352548216172442903460646387499949414473083044320984642706193614586291107625547234644234066263845574816383413731509682915885252740670720512020573646165302749662762481095044604924996939964385281469825176273011614795572301577098867883188975895653334348057970182468633479720178487681300352002194841175384556393527277046624998892697968089334878129351629254976651287464427555530947653533662579356908723887497027668641758125409014277362796682561737635581800479107988017376223711200098462736992803972849474889018643950690777652212188786142006824117179240272930483461616834473822837762430745149461880035348694667110702214531546451975536995052280329241765428134987962767793002041332646582550841052287494228015885250285102907047908435547997061845071946364254128780960548327058499268650486776150818727639772340882804214351910861327593765309786201948854885418051510382960411128257184984557690509499222084816840662258181546826293074638981835034889885200928062904035325733678026516430606309244556784092467328373380271959318525505182639292048309856153899460549877935455955564855997776486864447332083375637043881276101878082079349067123364849458846501557666794852088099231233018533095204939275669471344839735621215056067878823097984583356294896297225147639039172626909072625297638426849499084962600942227196745502873653783833298759901595017622628932524272304617307671059705268619365770249591208518077564407776542123251096590313269790085294174412176069359253696249161816484929956650523898547793818177606411516936224464887795482901697113904128659211378311826873385702702221228156933177098490096776073239106956599401815407996759762065000434274689105684074645109418279487940789462783206247737215626720014323952383846870304735670422309342875447283578921194101053719825816149121387758300166069267548213597635656568035031141088952865436213166004595889024927765276785595941791604671587173235497298766763098277467965095142177415942746484536465420297433519897567547207573181874769462755314982685798969405224040578499789838359699358195543289302553786406772295365022785482602610650153036901269692766256634223623052114634833809911342174515191699232758239239489217086489307511108843251794274934736879324955589167683186306493016649613667793365620681661557830713962455547947674876875425008394825055554715536008469056482656969853905328883725609892796351808651241375589723846142566897104582839809879594290432981875877159301971488156324724707149524451163896268567445398027628722620484023427067963025180166728416030067969980350469228762063750814801099309020157895634595986747472285371066418958544303913205244906245606824562912038488146028771649582917564344817348295278092475231880091433612814221127935106481680088457268262345886998373409704940218159756718708893021010830130319546131157298740098542027440196830910825748455428419521944081232309373680873755981726031201161791938598014281758696687099358702051640628857628942734635397175880566556369447747254335235803421946675909579352242890682777895092619146456528721952282870931014129107236752529139154314302279155620806769871127878821327753423944435320132725494711980995553939265901046898795606740469259079070498461717049757038712252431291678386136474048774424298448053609937859653061127948252553408032850319241298246781797699636547066500913225652705021398692725956479077037300754653809880536890653591343702491306716924245589706200585598400993492413229213666077670695524782649416421977105142611431516747941484689272845433601544046189858153651531469235747174129394561579165409821172493712283507908485597321173030385685420432592162087159775354581498031830217706171249014011117259495017087711404786662475807640504416502417489878108318107597614724083758999300629666022187721356075059543951922302477033732850059456612644629007440759222871378620824587343541139374034940179495096113696463060648845669894145315915475216266757127587816735670905905863299508115296560981318001816081411239301292296539455479210662857062019492143039656023590121512556279999489832438727833668102520285306890687494854146120336062689985390010271955699724500595677569095481879209558368487977222116013702509741175658440799989283884282404654352929146354451166830540689899520812872276213724208617435763531800806586289970632589173855240472076145319126140333531197843998459146073056200342143103290493378524283673860997673793131189549773508148664866433428300828056133393740002799141227823904683119919721557977002662139917822035965752630637122528773112621319786860003154077727646914813678905995654074179815667796873294691675827317699906891680575426052411015113566705063240862657029515686826286734147819828666622512852149100611288639277540516339707353176376051399946925463684698389351872544597306460917333178997037482562855997343477077131479510143345334953992748049337071829843139664735468743324628813064393133399284948361842974266205766570267299342745877312429207073462896014388557229603659187853972396387236484059460305878044105764828066117526080657227441383191054969373385517264927209333669400182133571969846474382340659022227105011251186271164882277086465022884892844501024510891688704425940991225995405955278830331022357258142191475649278982495486674055035600958988218886558627569681522462975033723223908087044073497374564981907047324439879938459907986581470803572195065364534352073471899273771570735114278948165748943799428389630721959599573407771942132685688152133034577708698246293637124335019290256193151337998205230503659655821747166553686199748953526650246514977167993887841901042076366386507907050720161332610292996565629320374023969506805261201619684496262017451736180363132008335804235633781097489443878425626089435473956406549535642855528683521253861359793053908622462547581240173074539371451441228466745412341979848543422824690655183505720611251663724573358137157836016542215531714614036686518471398887380166577194482192971054764340212769421537615028666882867644243086115219166623376893868112964400664536087679321697533125256622337394897506463556185583913896659483270362608511367719428014976639404267800406357225032991302176793987990952865434871265066348197818463377984088934008325957450367480590455034892762847930301928117289404540095311268780919736105315854532545057722791750630593425350604497235054787654776487485159876328334128239136422626361730067171579217162817364566962591570825563569089871820094402426635849931683773118720109129609657961537922050182134841973894072041265488709645562172596246635717982124395597193152673958851031901772741525713762209195284869591513680127257454996282829733801643152306241739910250340546658390501000781696814416483964997414886244802172535637268820360442424346927440985393269044506030861330477884094019774168626261324661074909063100805841355167474066109469155859439011685779656622709650297109639516980515762234771938073666389050918252833712465344762335748985161417813918967568565578198312533264282095231259586754538218973400393068148614238002970374117331632013577077241286177033083267281458485956128202701723541783724201341870665541817671497739202276107189202077413190450674820414915274839303003158684884430130974572265164895562364541921751603141046898058867921434491644000157818636638035880030876418144044400458681472451384503937766286703550858902734302853197042921700450515945812786428305801093297765007767377091305648959977194941828908161482624260600887412767163464265495416217013867075172073061008771622823409803614270114585537435307732642868279081928842340746597204160250596567798713436534309206451109580077934840076916908483930483393837154981780443148369490791285744020320537460142423372061383493800554619134593462210037686924429145024355887737051839641488216803864970759028643120304866335680958935097752379477594833956204261177626382099686840594531287188474557075024181906706792360353448147986449949313746634371395608415609148500247728005856920035447984290124038939862781521963747443503428216858792728950404209074844155570038846832317097724090829750467717514867594642352445794204568641772201195867807239063137017627333491539511074666536871144523179046580691558477279831895621697216382481148229405793928444026095918276532382821542951667679792037747750206946610537070507661639473507643047527111261168444819373991768624999890997623288326559987096397242589239902881361591044315367095195057102180245914594200675185115012692730485657471237652442368858809255663711184989211338534958439679323421889314128601719091545447108754789387677985752076879946917705765338564443040440661740503697838122041327173403151849841076094189489717800648120529788676018111095943509135420132071947103001070425905219790767670529644789139460695211507457604244857506636826577576875132456298857526796802576639947251433861352890830881910914797888114604308409010897280840788774577336736239734866275653088665539844919501745603888959512774665875947916142609545298574200610471638594524854345854661742413466648402553555339496587951609779759498219422869142514063389568144472904013842886226221166971762854218857930358082345177774395946205323247549550067618998563355112351323096425750236859954975100169512718962317458887166326086635289660396735008784878163511804743761144815949785148377999627926003179397605507453471957891354128464330990701172605148316123854632033639878346549977523351823943620009814896253520695574706057916843693749304389502427349624546559560651433633908146457383661101052754264821499993809671608197706625606169019771267247806150629744451198881632821157260867177598203955831956292145418248710403113870664896344430693568646624222282954317445799632438265711837847403756084770500565591122656138613527192886505873425022299560928622766011907419498626122378524985278315599512672143808956277952506880682134276734153621316915335733021993966076325568756896068014672818704218620548330073269363389906388765672469434614960659882276871965711081658395171793651676279400604784942249248648895772404746402083142518703425206922426837124128363575519704614671814604308382443671811676003335136157465268036560979651880024220980709052712219614225829754015693718023005436020477340203223824003864112141636186327093079404276494073228802713516883523404640696882602691424835927606217526929618008540245948408271640050935833027830799789217735777235294256504281263980458947774113433301437612580557668101723947557131438425674391336180612603889019773771301513553145121676339541992166732857960073148112917187159918187490235290638453930287824177885093234152800366006687257453616865921238605589392977686072647650710985913496529708415916470517782663652798193750610263747316109426799874250512409116170864588780617041203069342586485244898035837712234890884039633288760001050721407508705185965565260939571654885056096816450718159618169982266267548575918323638257290447582424614716236744077303784930662762824647455955959876371666747837154545745813151422899466866074288045176055799109553296917836411966450662930399669375311530792703957566604833435763680482777050096196646580739910335201633018005922250160757524735052440029581320993270312935995024035640571831277623663354483377418542275487581968466523520254312233624434969904684782996442387162404990065672248003929240675223485891135363528448767168274418793712054805161761917455044764285228314465484643208642228989207421334669917032442512406602453608818023580923593764520927662978253713252838479639829657458800950561499965196656478088794492817842484514392605074023759537200913269699734357018762432655464252669430542100067199569580380696915655238841517172990099876113674167180169687121342449885337227237434974126082226170438515732230179645333692109452579931087334384695259230769276793035541680276723677704978076023300809934494468541150928646473804586225184115563433177713642706162255304767030148784913094374592284600968791724689220054730151971097604127673657278813798107210446395225114612152061438921614848648163111614638292477801289730381890124852420379627728742833750158390832682356898253432595417525871057169656745931413896255284896362542331674016188973568224815087831426387537945452177688400979362284365450121015598827996295543790559618677272008976785886375411054657671522910785298772875585662799154970763823150445667978820342934474484790747725325068308879602810444746791451698983003021265022271573949469790325121595681825851578254462973162285881603835567676680558412478839663001653098457323481261892820734652394293792052307270295399021956537472659619233729898591845387368671937854900506416004198166624217913068656146768038474505710928721226597069232783691807961270320251794154444852386397033112903515356891421045379607305747701421521071873700651954760986469764331589942538424806886738846234614480088984177282427407765706803303391017319102033814999659349310095860304081303804316845687126021870410957091286326705889795906458532398473769830625427550877279966332523969544796314345383947285302191267040783876026989382730864539659411121224513841460306154134593665715304143689509119247524328225887853849021230800258092847564455257447048919157602645699048899791036080396836926503183878704055470894326804829426435457950091847197828524190222328437055753550258382373886860247386964144886077348067377821016094509537790558931421284878253133421169481369904465341502319079161075419258547218123215941523461051057528352389079644397050554995229420120415418399120812365661639879961026299758352790801292933378501243116729240873015173627072790480004294412070380505573962980709393187827236903351156959645633974921644090449996819306351868980130084316361705305262497624165517163551467757649690089166227336124133763058832172842840973610940333130996483068972414284358604537314075708003697126254097630227220568595405985854279236441181882098813921353950926764297769853587352569585234272602918581466489038341167319513102077960713887888384511836814414632861643188601000002352413137504350818348252711037505829256454088528006528958583403472871594062027882085198752447040149800089077491516184221195698325996262269970034902818885852139857576815567455668296107053877188724989105702717493802031987446888104006399961077845872853021705527720675057219282798342222776147975825843535730344234739910973836614491087875009366771110924413796595438607662437651172703984421560317226138502471557665347732209324711783490235401410798344861198131900876689274223389703941078954457192757943959136760141861709439005999151358640945772047273143842840221891312539377418654025176936221061167106394361854932788079612178873842225187653690503158390482490631343883144600565130869518039240536312919390638975337080022973987116246659911926294007837622911528287196805484817429189161145234315430066295187198617140972050656907196293939616147527418803531238999686378533824369180704300920082134663241280338856122508803821422012018270858243049718368051731730510360351335007120004444317247482891596136644689538688512060171463627622328025859102941803917561950200501947417870283778162498546501476520212178266107024523383367033220436179961598570961352054197335069187271949164258204558259204248379830422414122471063483855350956445609362630186794305895452758431884103571725566618675946380418339472470699774338983000004407476359751818231265256340739851066765769112576068213537275764788382187684374290168533544820324267974626946287449818373881352435379834722569586268814222925910052989234214152572960089899258337242422006467061897367313197079268652402179256675462833204317719449597804602720503806896315780454157747094892737988067146561197824327792008601002261165235150514098199212158413912730796339627690691614893509344912509562373609003849012243800972530152241201399706951299633958318068642853064028158631837282346211610660922808726473095884583208059701467739471071507958315969134934566461743477459021926099568594795859518911828401560252701977753956037889560755977419487908380582460589659244309327619136750954058108185882825398217855303939863469510597953641100628495258370012602072165387949748004361119341354084182952835334369601581432162558881404258065295465340441658435626999353586029863231405102216834873932967701997879958377878898465967521571904812352726689261767928004785130426538457043667620084250320714003468124981576818755430641444680515849971119626285773928075640543700934637589863192738867317794586350428348191515942388145968295577121607214527643752216054874916885006576709297982429671671760664938496662907077312994954555320126147727175671996227549526805421137157994286094992908898090980354319203492513748294748806808840228518015274832473585424740059982650268585600613382098549131626090973705111950185301213934706836553167527186484271846850580851251787697698531862964870784357064469938153264203783247065020579838527708305456733160791200416683936986399262224083099478829547159180873311506624535788428912120156363041811306319777522714685031733186443211409537027699559817110773301575420868325674596895840300934865823949717494743107585221874823070541797359845097901326115144242951873438364893903604332643963623988174021578412125143875436738743260725146057799987809384176160740753078416356767794903600145341667617095731153284500977252309417676607179575552957179392048317653596963872629913616294497171849063434497524351851502766353636421232196737639407178434903933874028969557981424673437707936708729769101806365733689585223782099628700475192935481297366190360292715785541974200357926890790931883641508140877855629074130851274210382752731439279118371779702510204843539000984450980915716763973537271979549826631976861612526296791632891873645137065738284645591574303717401991058646606746339092424862235906193255139126249888890873790055259101881204198715894943529933895335484345605007409722646727394203037512186008616093842315531679466709249601675285331903125562059710903816580690422733101657341360292110126748107156423024847401334035664527827483601512936167138977293497847376180428342628286025508667165439168774848256061738769215244634430579107623804399459770887477728361405498453774314360457028740090825708970796086520604745323759140272617543220831649812334681259627907955089969421787884487591331942211102656286956726040133213272964418925879821636777072637802831462012651613226022237483599613232115370192330690690003930233232495062114810266316049969932787465213578842902917138580378763767379899428375623409965605243823678731761105811038229539066108535650673338250583955420655462312819306378560496068692806437702580166835132143353472660520219223405103678033405690449942223770497504048287520010045303721056466732009309878413529078597581172795478370165062498427873255883524884107246687001698072338864467708476405541764184270724796861669008596451074693215162296973486257193019401214263632598143407605475556402429974540195184974246003739373020112906128640520661430273483226108858491432678415493089965456448752027649693723957987605484410360416709798397885354712230523832017887628266487510971239591435255744205082984952616755609374952779826072411057718952045405501182952365002604315821349296637946971797436648088759171124837491346603951737109917746930793633961821015530767559448788305810981663725462121392072485998213485970637953465863719170776462656513511325062679690857402585343796757572004745012393561801613523314341306543486323703293825444506221741002377104487044923053669922542239441954002630239364878719477511664935467801526270944414763180910904698816150569151691344991648156010404622887118183727900254660456446722042693368139841879003073435330435456077114000921792573782698317449473369603775972929197156178461929651050341972004377135237220003314666242145750001205814508427135753803396249256690740375117219863956681167042217920350180485845952203417650552918800745294816851595008162596127161193979393644567158631850141485129271597499307926079236723607814916265181022206757928334985937641920840883891825313461700321823196231355040371460233866010021521139840590765840819823748136281091925096484686640277273602912271365232761738599038441378987864426159980136061844804630286536560834245544757704676316293710877412912046838199332471026974855519967285207541234671059637609606927780294904232205441597612750839454959067236375366149938294035530738529741291933560682321224742095721459909296260841799139734551798874173285267818608205871460328792103569281375799324310658580245659147112612515553649940769777878830531054741475923331671608967000039377590628137275901773474205350974167775566909814744110910235619774657600470972383269604693333454471066547793888469713258948229712787307784537347905896962321899403945964682529475325855346791351785730018215742318395001467021687225977773148290959424808140072070306415519103851909175613469875411105776346594250492139781672564730732536512114190328800180745107773819769565934213875600632197841072561842022751757697543921790801928653290725912432427991082718101810654116919569188030558601322943153865007871596716782822179294618645771142919678918687304311824369498893113071036789913104954294923161158415113408240829059830583757037649757470237222410216262755848290508955778558987730596784504289138407345193069057027449945217708105529925356744999914911003128418139800559529048164740524596256839444242555424119306372684616679726970510178930550272668871098889176391586588899891166309004344417793769193757600643032742061956323914169078614925499536815493868045662064364266570630683589986797124161280292603479230075658044482716216478263035752684798725649716966262446317141487894738643450543534287965869573760601421982483963089367653816033374832904603388945224294393821326065145178285128569232556981572969253951819181221210005351686342623256369744301177466414834613030944018995246799051452289605821084971954608777495581041305551701194604475785207036376624913441978202298475823838809354566210189088234858514732105821344068589305506386389294104777026790634593134017974804047006443243520310671608965754270522069575259790092198517473724356578384292432253015914908779082540093535450312731915539128195713340618670202157179796413733869993362917569176374920289835355021309671590947429236418498460385359542849826067041649941001209412283674323631160048421447365534739719421398899715644851561034640148763277063019155409897285833072799047856607424845789124652619387794516652656526570265573187748592635182009643837350323514657114557564303177461930891647307441429715558181366564554943211841152951215702338508534723809125390838760001115842519464156037617146491476143946631390400689712289635805652900224042571333952587024220099260011588698981251936853182236535792598679929645328363724071428784401046955840812572362653480701254347540551554984022212348792469887849906343331111645440921685579184916269246167884635007500091352608971800586775345679819595322202555865976409198540905249897204895553310381068285146180028586739192974121855619286548985706837249126241920935174597380837698896724929225061306157182041766588162226578247275433421057335786407851383866645421473707157796300662263150684986184126674387010474042109310705247310431816373375620304724463017020115857504779711559361185000735847986628799073699476886826511873740592028606900758976729362742130093869677807146564407467816145522290678167782338940525974683656831660098413327069984807169044355775617690380516082811243249180144700246018666107059807587216233728401331348114953421249002229669311012083312047733687646278842835787105006342430650271582023125039082440600769988610161830025495606374711054301626134578302015179124548543654152968450636378951048800438992678875304326569065491325012967700455374477780136082930237419021193263853048340679189996862362593487749314354061052989732567409305774629961182570923827938849640183542554150690125023476769675954415640970698513997688670405527313673960309345263088863873396219019738126602365821879370023352217981989295855406037525637528477141887889806968464084536347654636692089084521979389413108984560213859961670712569128397855666985732461279153244015278933203095600079605465408638985926244905728649187649521334482246567791694476551548005369340534762521441278323802145952645314133401625661041946142420276590382919203461601154067893505821240936352081634034075112074261016042050789649532065169538034481286209875974277219936347160385249708546648907462117951486558333618554210837026843331408714106142933692256341530011076440731747380928550775865918295924247996166147124934372002216681952552811931151196812841924390589184225308794811757826197465283015290478429321516016545101477894227215960211792556504914601076642493747955111224470052769790018747215911291005619388134172981791191894814597324375840929745150159914585120844404557889771290500807708243990063479989804837069763605333923716229746174800771507343011650800319336767546207072930336718423092508064113264390715914644034626435067228722301170372756859274899771323590999366687607517238201879740376110083223306333731361098710141093621127538788853322530486941818630045217634591665574116684824880225268231418102149149842415075705065542153734484572114328796247605758517891709860326240939308378717513095178150767935480100188951068800277399129553042089862526361591830557239644072605560019791502152034750507212229121182444831293301505764100262597567574759842334184430531262707218549553286338902897055929194817998843898402483703647248098198238600293124646797070698982015316135137641754842678200136524913363094233937171169446893391667638909209143548146219823702563069411629699109765272711421611165908251662378240927023374474320971189735392998228680755610663658171781061189912668280372815454282344265844761597720461118910581052145093661818975401161869823841561638717987035506832246731625023258521431920373769315959733158991464672757875258212023175603924429265463954970177050128215747882360596774858701019659394970556714573156249016556004057962850094386283162106486268246536286788382474164264196470458065413549314656964420445473114105800277292226194496974488444514952863518763011048761040103662326069601640813608843942952766626140476106695207121527275732394775094038481668522634049071830359813263415984909246361697364675617459751805434057845652765217389412748442159395805559587645684358417361287201817936178876689541196392291136322408157005653730750560946359413216496753551498100085196449881970276245608550978057177502897968654617972469863076377548215816840322605638124691961903336439098684361267909657348339504866704391366746292315709289102336929356952880400421624970936112728837733370960753448341715069025717737159420409258745003432443138352923675214076409669841673314931767814802994440031210243796610202177229257299497585057612930025702305257235671989761590218855752477519076161187592986915303525657948087827792558002624980262845498510578925381156516667246907574477073245546731346626381676792660925857536298146876972488057828462052823956428982928816454466314822184415361091617988478624855346387232292051271215581053765392049261778823382617147543252784385333396197290902685283674880506467107374795906629439449799801359711766906669624051348444092386596678311938534304801024971574362971399067415669831235818434899039064558852323126899571603677794092640851784517971149562573464810953442960223136652165746986798091183623138873803324176763775687741182657285699469862642464151755334918939956688248822643615868051131042610644707001898595481933455109501654792051682088729338596211183692887258709333043809142415826743950309082338675299242864077998984515140232057183301767656665179091364321195810835186731389985707039711375176602652398429325784151191847850053562080155428094915570875196350743120941116205632736433335320822335737256015717394405015165562883829688449794804973519953958732318607479852272088823794287046217565657804504748739816287128250627229195272726933078054604813100046103029984026702355985371645428754505934090066921986458032719165823531246294768341327195615541317424413137233823972450449512699231949622813492976176896258224656929396002957240520053826705094367343650027873322890934529402994488055216043032002352519053023818312963096328493276738833373741968680641276067454141163191353986605115214790533487202097983693447935165466989087038976510724544035374111959685061155727838123010686582191311126246066222275045920227722336019419487215461381152801805655422858534689028877282748799616365726567939704574519086189627856550209226143369948287179047934988693164871574615043442351236740549032446330220032891257142415271027440190919987658819516758556359235392073030297532562571663988580144969616612525972415865513514729171959856737331718697098029788266658087607806111156906483092028777986305893108079118277702102250065618013585427443197936565562146101257721105618181357786208760993963822678381023352300357675810808259900274607507447590739611454238677553280209235182284114381289864225288414054786694319351562167039322828892849173610873324977147802064637920800671937782175120800696442034794644371345205492436266451542877066691006685078696762486111364564104322804778559255738129257002193635236856490647251295987992646637465097591061066477773967822138497896922843054931256724093185314571518697200976246393502358313556183384672790481182613268539965414762938606414594412295864884195911916897776945425725136489704387401699898952469663532584997882305667188949328185103153907147848226757646118936445321118948872936973163354777142848860727481645755944269382688162954709717386948910041821962081364897618709664221053937153914579330802436419208111819895819914398193967680765959033154535541589886751176047989253072024198766174799105306972475257184005128888485289155714699984997537708968519361639149730643778447878036051408600002831472766539718566664851425943620799905142643187097117486653415107418425195419188256050981306418273337093524010432514146401579535765208557884729471959109852020555209022751774491403320604816896937792316419929235967260278205970908291757879386438092774870055769256582380598081576829245263250076444578173779463557351196658708019349282410828501813282548727945984715979783819816550204816528476582801552157653210317604925793046002284562681091589129896708999338568469508868345535947645805761002145277161178171254072294234940134104423243412713263299215295143663323086272352532436847149179713213780711883265106205190172426467294002253655884800284215866384477947388460055512247729915626025568242595484288542362890433501861476227237023946352850608969079290184616946179493335411201976855490746316098483926045733913770480119947883608709830405898275671510260395001757370823088310986198281570877657943835301259646233876154843634249874095344753334325954092871654143787965836754397937844499935831701930572007179219506686165402564514581166535764691206729361479352343499903707473645649450073067708753581562257006303353741152209454014141272282831204370166390920101476567469694550075088667762248324277491882835571362889437487163455264611410653206316857146460811949870688307921197884804625023036054228448034409750885012340197852274970794970230640737218001908211357302833908450823539378818382508591535439809819195835491983003155159393752133055620281589460320522415041206947000585063279325345184368763900329581178329183083912630284523524829794224877509492390929717564112611791944662695535940306878310936465890061297201685134325486539852722950106697864896346026926259567588699616857145206571162370517520195187310898727136844029690977611559970790610099465398620884806664702841483624876779084883030052190378436309365282543020504821308476064480348242328197080815328743729745575295141924721944159476305215919484451065467784581429494638438011277279293179618596183668972759307780508860437069527188938358155148142443006386250121221993448780293481460239409805837781048804937874768917839350301596516503186183575194338710104344914971373751042238855692200773941663292972595442003459764584384631905909191738490365571791865553089380152537408520601953528266745680144600186703102343724861840823123327352707167866120068723878487102667074015828051850265606458733781195566666364986995459175798409054395129468593873545773940290027426856932463210823917534621101442009622819830362324578076819045449284004954292108000363874183859649291129999463329457450924633047925352724317353358494154063059699427066889151635946087146725584284991873522010677522570135409346175606526631425483030973123944251530605928088128957480259865095679060912776017376112946620172401313163003766158105382472881341369693803067473682061569009648262796033642879907261959146692347734771618911225275070705745108372729652725373624544588890411956642690205810630075605484484238400341353475079905992581472693233664132645908128592967900196499401440098473422958993937286594984125110342724910855605958467645889549050211641745894579630136168654767343159771164741586606519355185642941339316530638611265086648585820461520023059010336187499517735706281069398069592143770986174831916268369127412729395683257139672767323914163016494576891988088355806852601983497091653973485502044858648879441573884493654895442034752419509119027518461737092813458498105637937829150166995541322091941754615881994257663175890958376908456474393387747965791595988072040207760457539965999955286936831419961180383760792799835144214990649152792305162385212581794272289882668402005469049727840277955944577904161767912240429566890756688202229485662566153570445029327757030076046701152937218394112307412351926756052565157810918783685248061523259092558932823534897108946024559424011604159318097913345211139000303969193599556695500249193857990317110634094904811434023860650546333709048325377643873768376253007685841356461359060390913060384306512741893614512471753208895464598947092900033319942586102519825448440441844078672558171477201671915408616180600752336411079907224716557806934559714548215722243856724874826095219053511006946989174495693010021036775981880893044165857952402593732711364616889608630361103632227654611354809475513034750979418181068231564556865440112306855576039503821915312858382729758800370656702442962527563644608599397379063777103159770952356088553282860555489418275390685263425899713027982590199231634998080851862825063574575246279271642987254591873621485104319914185722908839947289656496375242951698976505610539376781569338141530880951684230832785084250543630234689107460565473550496756368445324982754876590624315665149607206288793318219433654795820128946270302410292853834708165343246889365653997011910119924514690926616938512629738639695034961301045355328834422344356111139447549538826145631454111322882831314371148670834659522092941420841674166115777070300192948318655060078956268516374817991523110022557420464519569095354269335019305213653079783606373038440055824819711900572701183362033894938184913867070153675219596979555463723796130250282641742010782365580651152622792857151599708164595429290811916339419832926189075445210385701764124426487635003072050831417341856929555926725763701199070647383636455722645070424737339623931448564089640295179804839143700058757757732191782661621320763645277221195310023640401578012337842946920005196381785225447297907631577815448059685816692430812283608849577426281763121202258538223810081819860744026926256834908664660073496245462520764310805022990858945057533011405309428638177354048077402568388845058390539551393288557068705536376329371285901486992037500001533955730283589801825711311593619079755188555450525422171862618233444279505822613298195365734186508531889345855489857502845247098822741218795914417667226159502096733032485904953875427824146142374350812267889332898290276831958037583543076989183001979700273987637349441779157166913367723658576301565627701873386552452188630536866672084733152218659060428820717633075481616246025800124923531888601046118626514440566280388832921588843068795302186269126940708528900364727051195056817660596821817887672733170468018517108650433950673140119498352167908964513855150512123796016086528220459477506895996836659954047121293674487716311324003264772140539486211759783576296127465904686008430299738600888246634240482232433953809749897060969747664777538112479306895894788239077893435340258470001134236047404375878179839032977115120360908781164087497586560893069119090732751121868900972318573493683600302277756751732268539797561911614769202383305701764999849148993251842007208986087302914515176973007026469885956437042224174728981481965860340715461672960036113142451478475753649069487636991011943380678940436578162732212979098841047749408208497462348665634502140992697000283906400091014595771934401073368734441997753832073438082883924000523427732894627049337753152515945737451045204751101931408628758336325133938955451976544327913355981035626326865569005952233427282421138081555568709682639037624218510268674649911360964670090526134834762775009823741139838002637705698611795743091721172891373053163100737470139958214713178742676527291253707688055209703888968336902739794966864055654050095348571924855143132643321723402347133521715339495986719907847479182886739251556945009030038010225214118207088373067102156954534136464087861839546597738726904125665030587904627901558954957139823265224487776640652220985824513447437467834123864174890761538197288004427553192487156514738294040136524856857955975389518458023967937509081575096912564961005677270005389849084252057517310976707397147936907246476893556809507799895491845308815521547150649329129340373044215420041884093680296478552084545211065083794729933775224037402142088768180115951467800800746877371610750389978531667478690907877656675749478306756556377719553188022369221334132450284223238820506874785853345015650533028263501269381148237386715043472574503244046098545400544573563692890380867986671495992404020209451410617192893235281347169294623778447029973465429893758738478928962549071972246508737116664017147277592875759467535574267024839228875761286633870177116072137515575579644544900174400459884548036221019032076460601683884180585347302865544594305286689817093856651836301430359319096675327591340410628929670613702616977589095808563879546620346248561346176016389521701302081938042869459387125601206401912669976355669830486801756525260350611025072070268212521764560072800413835701452683896599932965821697601371211149982294590136406014606087146095740334823644381065787632500401359005359274486155977126818730688972522289697883806209257916223626481855907388236168727514105436717254720094693500638782150606543837716897719646483504139755543296086940957932453339368344541725313384841255170875921802370265944619550723299787119419997705445121633503580141276767797906547134245493680680076265613995933717302871640308746764762504341259074995299505443231111742250647350450837603813719165743711602590775148747293459285913170267518891533325559922515467851607843426498725039306365566970355659006685080764961305427243284863639944041016789532283924074053037787290045122267671043396568915345222865162262414641084629211301166192789613962184192116635716288998784578150351440760136592863278345467736893051461734834197245472211855499064352197078230601512573111204285860893343564553485951757230599648424090038007008442189101243105617497827753787599751080962451372073107740540684092456881202029340818543791734999398016124649826294999022904623963339399248762029412974712831614047194029706644224697863100871540792302505019341998270265168790198974914617369640714871748989145421701866181108063086947679988577506914633018757186434145509284513128742546823767915584105881383766552425743716290687046247631610421901999911519741304009269097076160515635677443675634953755407976975452727312276822776861144049830165347213474647629414215635385969721570090288726252827769975309972593546259352848292440739300107516543029433164841158750664976131064827467804450170558340223802553619189968879054768205557044975110501789767182712641670891416580443868626735911278363346717954975749149329136620741302148158024886223124989506839551198762669921780505930871171603788264110185884012972291726952870383013380162210477387482778817338819290454027536077597787364965086914741528052062538684003516304634704856958565646212137699540755873797494968303905102988895488154471639638305578408334126638805199752566397909610016845139929903470448243517667334383710075515962702169222124230188525565445230183316087209434349487216739863671658650438699612074210774378766386195812753486728364485653577716900820555399924373950950610929392208624136051671177477650211383147140487615537998269209995378859458950818455590578107878610994511779821956721634342488841669892372610627905275546378455353086033016084447741686855231607813614516406448494006402175071082185006647172553146950613499297822498093219092564087183285766139797199169074102756849669038269307204708361623912480810001239238530122824241241879777396232089890675120034595828436750185207878679290962366432818975849751827050630353890632308690490426617989369695466275090902039491765158896967136591927902619577095683194165544507004990164014257139718149793290448900917502049606530898397505692875965103677779974836492683666410145720475163743681344327091267487909294865634648500466755113377944308619616573281367651607070586928789473140969146697698941342717058814718407273530060195261343475269480453102725049888560109390026869890382271274429003069403965135698052232114314026624243713756446909018218489938465624275798273732050883861870641384338427928773311776123936873065859928152416060645433101744079491044251138857879306860322493551049266908365896633206194830395748026799190317038683736672161338470522607836182206312431212635973229697017335841167792163814635823201253135954401047046959466202718985736406213615763866658686526540178020874035286390527895695456757586752029591749577219654528649743291431388923043055699555689517380029536469658946172860428302388878213561876254191646170269989148550200178234734594273443895832826564167268719504995632483030621014423764776597361873500423578350028506303014453106264112016686781470761213611731409033219130808666580533023459886279328779395821567543861440644281403720208549984126836213894525574375792746309746097865700151738618737292820813305307220405046077897292482800503014721274033175533227916414723625300301791206926319448254217901910104267362941654829791173080745467367476999686542855078775634206972228470148776026821627564341045305203667407057176451464253911833516334018430814014972898426127084381403616622609848195321539494519268493121930962090041861270020945788187261005777618711923591870174300445915854675140335885426321403412294147267262753877079893369003740181079529835104577754542554622342225159387924483192713518223827512670331045085371293666830633752840888087909473046127551849435209911194854138447189247306855186240627101770643001010476371751172339494643066282970049148942316449937070631389552516904843341438008624819457278685978917659693860563859735328915233621181933716581270505027202448817820652308028832518190725251757793063204686158185220808198813664316361323084381361670550319348852835313793644753583924095528156350630155313384936440668324732750587642320999989273506191588039197013174242560445307608164570376516615748783669018950070468285611705713808529612680711289530557065636467340762568805114228512125847077616934168984580511034112536527782643578202465330122105193533373049730423806948857891794278519318116016774613618832675244778774519278163063421177196395628993920381949394524895144252534704130850776574414326868505149715667456552623368052903623354296750434576790660047998336720743784557850526197496342605622142494300979112372929653539490920708005780674929344878921774146311055802059560795845148334240896321151206340221673351140432007170263202425838459758300095011305175378625223078187867572994339064410443955991372835677448410135842110293049473102204083070151500156406575591537874490465350120487769014983237222110940743938223907706179290032913894067499036356200988585198383167149750912126208123799952708381965054302542257074451957422733184662734628138939888743021039990571501087324278291795081076068026611946822371341871983478595399251719753738972421399950041628100357635308139562747364016915519805083873009964111004780985222788540279571266794947007001211628758188747043666248948780033984592796138619362524342172307361566902570761395072575472826590004785032080549938971910000121116878639938480438031566830562839686053087481206318135234022156549578383218634933950620147736094073934691279695786616837165623970386007562848716969426409278553072348963760592002689861480450480265455526852280477400252089903550540690302855741355056765254315053487448340169246199382508145005209482300058203771849303152992799563320565823895459394873958906586972507371836317536600884215160982191679787639594160224550031384547830299927460340415376139620793120376324433795566258441777128801885591691840918014955607352798261212111805850749550709981061407699302689148780401858426644955182070957104702037982715935546840885575314732498023548872051813343197916858352713408795616963786032264628886804484586730314858041581082747400752747115692513838471414174951507475488794692038892295552198893121569488916050645666606273361257107414717462689267200546570617959386458085143319071664519856601910389920049364077526985935982015990062910295430439974225625402437716868831217295936219928345058279373500605771802986141614580589767272814538299239120009248921606943172396169262896531824576755512604274126895688742484382678702986656012864501866194233846226881629785978221751320983830674201689904838879882142131629288460508321848234806835996471372077951233073949417298295846303529674515940146254020222409328762797520698365052195349014636239440487622180517453139102537308175216008538360251378052423988230748387480867852885386283209821667141222312985171911914297116337652191760249413553049920149322933522866780224162049704145935083997809998878269668651056270933345574695989000754374434227259897170415690386400197952013069540012333434575580852474822293047223110079734323154268693605353456124019844607915490285037862170358292529498961751398029287900449545457479323868078197975990812540819426554099772789187011418308044448330154722969042072049322122490832475041927002209437965990743652888432008645836874187524795451470632723712394056322191162121494183475735175215560491103613334975259983668530346520022136264808327196933305919742030195117158760775780369074049465026961531054699952232618473978473022659475258736291315397321694206935678116454408174821796416386706414807195992850270514114311370467292479684025061091959227636293512363530718787144756476581492547315683076666231577179710982378396019420732783107314545984818770509988925622354720964195330491987378445534514480209737254638844788213059557923047542731395911158588422514686953405153328474985505959066580453504180006614095923695274637922535918856811707682415524950285170435932945772272034253202383958237610274394669914061835794006830288998552736180874779429687518786416622040672737998269216467750987006808866201927593702415524670516377177657541866296440607778504216579820720418108244814961303636557305246694926043094435154734844808058808408243761055077030366997980849658008601238103256557606494896933769274679589841502112546692607364156755406442051767311686529248176365581649027167268336288150345481243171283416514183238244941818221276181387139047210036302154095009921413500996161564983119010389095518655683242790165019506842501561567977991826297210153228743796478376016644627701615800360583568939842265968537962490318774089923323537863295488457026343123063489248940956423154598506761362157145041436567042269832541979680655009524628430668118590183855416861062754749666435257141214204599281607539568644387987171647636014945674734992655577397762904705965652657069590339588566896929740471400785701972615566702313231159087472841237220681706196830562955147571945192446866576007708405555353921509434416585175780301872037632698448573736713950872857158419219953653101045738079426935740200641038291224416841594647034747501365818270373563000553495634149899049206551123194970034258374232818359721663494141152492530441030195153995041663515105413388469305981593963366900794765507462770748880316493270782749396225607208514209223690022346543160905745473680558844784389666262139076681070295820881904058844556814579209066500287081781042685551028426646329393029331103648943665601619320924459896159153494437141416180370966811963054431284546609416304668741281616784103237027136992294824687219483322916840867841561355990880956038832826439293215036557079744321996939723688849827007307842317309352165652358188909506359022080685617350485967585844556064261145965133117003335746110067932163788780816800419507511607005529046427654432518466825607139260541506373982824284903229652019874898815538080838250103525402690337896170064977599818936113088840091992125232049443359348182362475485539666285670088068318188520984549756572585867471232423063507222404842682979414121127844658284730040786016975715237469186519361533131496464345438148144074934675939230753466494163307871528508687700988640915507054368530640465313202968760420128258253526330015691597301317126640324491242233115934621328480800577882276945242699813785115745728503405463544132976705162060965986978545551311828512897569635134181186430009627123527871536301033578033830323262153454513693709253596721768715316308986261094258786810361005955160701886139571474602840458954981466715808636565155979269477536217988516640392353133115308595588071498697928015220731845637995863825865021433961993275611835447187618056438237444096015822623472674613536523208441053570120101037324757478568742438125450116308453633137250648330206323977300893848230982105455619192695124486449828600645254312010622090787188166024041465847414495217867282698800970290274773080856622180343733690107679475223932641885634465405548810765738886802972393798384790447317723396363687888411843340438557251686079478898660280833581708914612441293695109420871461607675078145556272405822531433946334935126071295652297444650765732304112324221206287890586509568195857917040256314760079568198651607772631278239803870267100367112548499329902773456520151515849287521257363969345674531939292748952636466099256399218726024054738620171984676553801385264319899655529720638979246153010562116240350569826020469454312813320056962836960431609545601287219239848213708161220585817016311852593293607676419815267891418366512342636021781944666283294481614937079282546009264245720764004991714290963845034809378299470860360753669813655033864266609158133399405431747816042693742137907676173037225947227648901939556236576374285105388240353266590351161152860039190761538949556371230293194429946522908239742430840657234151574422823062556080782967612452203517261380439926963979269020123817033598930100250633231069010181778201333244520778493519488425665673056483933693493340073624408417298843565893568968436023953526137845224267102458950517029305603302146634886374476084582470698521822615128416516308848197567586870036648525160066339282551914131382198599318588754247703148624749343271108054750235459913783575841622429859921207468463368948249462626457503532913043497844120250076655507446139278637701301605287759594003094047119561423978049303549462302180907828046461253990617871884581607170597286604497245013405975630643572255784906774851007903103648376904736468410361828325374746006163725952022942786149630807528668547232122623674562903443181100390800796446288151006804611181456895638832611530020179752068690583239442627132503399154436030011784424652339285151027638029245848179959152573196458611588564058817582501514969788780295349712913172699324641018521016765416597826813950219053798335061998623426310768262067452344769211103223902543457740807981531089940507291742440367950170986244017355912787300445579402729481547866333070595902714672174881582054636297555655681153879119371765551767228366343364963925469946242443023671848428505756458412099470474006734840759602315613604986949062377535408522266151711296347420293095760452886906534626926587280471265642994310985924375712675992615796937391489993880857478058546887283716241512433306472098967968177408549400918263691801593048439585108846081499163691675299650142883710512233154816757535596137091937630460843492415704887592974328366614832756685382161524278186334453665067692775626774850401990602719020351018010036542987675996731686691842073250044905342809245508209784177090285299535741908586782832730474308610423105201261815477547201587420040461801272275850189460808657226518867788300183741099591914062153184295823949173948069966006874587311231962518193654146310157873624970097466672218096315491355621293251826317469612971867306469921108712810388429706919943158133209196709178658102936261718788243573168694729735858470324947706151104452312495203084483818334937730977699596224089413766356659387028076378826108045446762888972455123527276003493746040664117948632825226567023859476643376993251485401918034148588571930754337685035658452150534904751745756505355447170774908135164267586316148016629323894656193561861920831962062499182304966276432366745911396451553028245034580429072204160360116210091091512284762063914369936242261320709244770443893160909704638291715742385361567273037679651404360612995175023842561537120755844559499470592005696699836904964458011794365229806271953214925977837097544400664061103963138093081291455846796178813905343474071320159266037999329360048490242510428621622215172055129506926720963765231815798931838115256078985870162559129185614675675518026343301446807343643721186597103560010227764327703735263731092009820109995010225997778627495941498649177416512862542334245310896673591197960981940704693916933759533355750907776442281406727936886019688463442502019912243685365435492866991755983179624337536092553670571199277001623952271569792501855186861944703005519813644479493576623842772428401654491220100658444509612429877022692401246876757042472410533281320320198195337194652687653226621547954206421272576424766307814853765104288044478779933768286993913342701210112767076856998231288051658543002679364840377015531037299789215869274269385425242666519242960225190674962699794623386634106615200407548367089905884126774726595382266199359774299872846879048359982205740261452999349458325149678238565282432421146246753857463726534817341818013792066902468153527135112855929996696263254403832776096988115883193920497511620197864802099511704302687212671930215883180786339981446050513013087818631440966955498119805978559053066851443949451457819230135785792499933477546133441051303786517605105136124358323196791951899702517147770176960508189235916548572392396988793898551032475604082148988435344348408025058289338636447884249040154521608194030091354025681146792551190315337015274194992111267534674553662843829616733651697575456937457478913727382904092810830061480213107019994021843954973117937892243349228181532026603100364658807931880584796914235239121985258187643397653742874192900909706041250959770253105563310506417108856553563124042734521030050960121384486546018958929053239365603721130297675259428489602678034223103432056912491850780175185941183660260816301446027908169392262932999804198782370546003985798684591420868479040734734657807632784944124562498519053333312523429911344649363153353358864554563984099094021984156911220373501644856039343543847690299247681696692841688295733013315168470455462814428629932812704460207575202777058064632776116668988001959266672344399274724136568340381866112881959205106157034711800903980558060893172386773257068772528765439100611942701509692759472898224788641131005952898134057741815778657114893335585639677443623947086865698478472868192544964481365487704526844321589361474724671764820562747569439826576444492115301071258450605978160998129529302894709253080758638148141138488491469341764965347158127872105089125922481881749195839912017959764193548433457476024882043144248164809241048785099525155955867550624363505765348992919238625274791921260804265996849205412249846787760560388885825460787188690442076315677627622074898379140106008774636275907381031270210418795575337593132378201290256822367165771393526391271149736550818809523405902258638331096235191392668318241687134634845906868725839076459044933945827555930090031075549278578561759748537815605141124738062134918906781558077433722714885799480844545217925518220308345864212573218816274290620165149040917129614971439467329344735367505434238520951872318923632738460640005774066770832758242737497373829070412845861407635587550269999613571912830278632008975298948395523756959074306924096863717928354935494075883155780998968717551643992384299455700202668414700224957107726826503362605027281877448917052255486186306773750705394680655492535162362773112036684809812235423735239521313524233103999584667861764466651107572909123758807599176895902679521632650244602380091989415645512771274289642521572345770038149106214071129389820414537365027519359078557102806788200289577305649727911649242769575382434534538498421214052835814689054050305303575936770093749867287110958095996741147347418378429616172945850476973858230868524076697706492895975547833830901661299094347256125496611772702606402292985256233744899130776313634472821345528324036637185501764340415075530878584131326791369393978655429758649808944505883131834488290720476382031726284331500444799838423886667335278763185322632399624418911395203422223250619275267814908611308773226858207338382204855254176617827093495397542464323141906219554536365396586127189702494093924463460780112067478887643849376193301714735036579611874748928887404564771007982356742759156360983013082006780311761100847361172662728824422501287578838793243543078605549065547398805450814931117649742858781458129891365429055382983347389212628585821697023712825124139203115788112487243845635536556209425069100841548491732142609606558234460196457382613549556206601947473438768056070501110737853241757943066571996510805426293768786323943343211757248445614248740155100642706725114002532989857405653012679645758861674529697996826295557712255027773169401766082081668545184359000897788729775636435881802713117958964086225498492337513369655559223593840299391404628878177474278251097987780479340743981771042891456727338312366032281496633473910404858031577622386520803659554299746469599092856152364756761571454725698585880415859298827556779008304910709595486045168037625265388272459213062824379793659896898590368001236163634000309042599806069053783722764012329289960804004632925723058536093161532339327290592063534794070169267716549296609766496131171005008798588310700990347526429883318170561209242868053744375328969108767094533319135878868614808785652226969027138131801246126212923292455989305723612844429258444265671372832765751008277249064345133003443442546240483250965343785415194504566715334276234054155714565286164058143151723666280271230465889914247760153521999487615153453462912270243313363881425593769091593157495124149222183318706285069369680955508292380242976016895254678791121571143739250989368937789210434660440970802279047304502233626989602095315366003881944374904478185186706638370274657222155494108142609745726713929983603904970830542628919460072258691858522449758711692111337690620467573494388652044798998018893627617883918213218685651547994785488362462297152830153990395249957691757023471061996173269896613256759217573159266896618820730289423117689539676246816981787896496951009549551525280998961265146260994918896711302026255683688600242842690435797765799480620952991104065400207690885405212000506721582711777647112683149447949299141589594400480620192752964188265019385547139897375864308863905176790224937911369329004447512843300356452568873738109829086805739635583807910749422834923006282036718743169906427429570375939079789730747008154159479923640553530619598338806932035055180205807947194625265149450145946722955798680107048534972096458729884399055398876092913089833648037802071617687429724691762853792751734718329099933565039735623723356696611103420093601318778622180724596226298437459410293482086437106750858488103305805576954246442295904116371345357759430326828871193810479031838205021074314284031458257512757978655392534598707919665817596415036406819544346358689878992181349806579866223602657674962237110418050109188126011413974679677983285876583232717640473639568360389264948468765387916932123324609643907980480646700996444328271544686893263562149173467755419576141745976987859158153455836851775422284680864040398610558631231911957466684493580773773822733132773569697707298066677090050405594273256160074958848739981050351739648749744461354338479792474860576149943683296414238677328396002392277094318037670049862198102045653298227304058201141978539469103283041029239515569281611709846172253972924034967581360427343511457742444606330550467868753845529061654874338906650605521003098281543443373822409394781430761900740600119698032284864697105942672410179238895253026940546439491229710722087126829369143596869176728765378385225924397765444078967493450165840905280158173994866747200756178819946232453827568554237010400255873728946674537330181069397272388116784620259523934920903286232611050890856647744308990017610544968041625550784528895880000778236963409540427137906358923664652575305185847238347662380174163415525288919757226052364168356145183375445166540515744103396629322075079040818610174886776475149269157727554122383392460453789572919127274768682179141500168734618169763145237706957910352978654992049463359804861652116913936657113082131978497493893201943922862416686820706753348731127240078077359054390785576916329092927403389425558493060376895288042011089818230083253075016231362950260000255954013014994098172044689180823397713450354997946816701627451560875127929175098155207026607840444386766884352563262258123625230521602200338849191087346849441602535243152146798250082368355857277229511301865082929407080454388057074050630733214310643832294807937268039182210922617671647002642012017038107827666451927895584689514698914672901926873948755755929587604176231252431092495947849837225134565382821436955396268759675623888642836363370603954894842463554847011998483902254065691952266980183075606739022279633075067323378627465303946804055892172776309444873816085039055035676434007432517287109644628749812260650754167468553296762100603128743160034906273234491763646096660559275557023017823066317301818492541955380687395290375477096384389983338537101020530027651218154075153087776194940422445377646934395028275042000134530570640691017897133615708135168155916652216168796521863159461646734933959871842381556383468929216739248218730129951402747752499286086396633386912412350912005854555119523500393145899415207008090188836757133180831104777704225515058172941152568413677775053293395735860197011505558704904025794872164918515316517528535085699764711124546533916969152439990304428678893319428520265435233123669814059452876851051310269348374702813137979553722485643062287811646821646521392033490143018536523811381975630076649545452332438084154189912258093619558781707779719270501914591359276387875046139311915652629284116623378534622366719286847751505937484827282008351705254116474897800609654592909232144968349638248053749780894507667560186618908257473404524793732842117407997391565593917953004896929463081725239831522270974863402607720190705806302553306592622411070354472492221646043788286649669639917111302197779580693204261005603295950029979140533055458942177473938780442005192950030413131167010845185306300055194753625589550674539419641963722313155828279892617829759454370492498509373093451982371793828705893323428687818781895948706352907046773224738602029197597849462993299731891155316199265164147251367652589920190496967198296289478696673335438806423766170325189711184557373789495619396981515047639015290384102593691062050331087585268124537258408188689116032202486965302511767305193793916506517835401274144573533441439120350500725630364544999594147008273286772594929602073859219504404225144439262489430983602473366269611713814058753928332643012425008120670643178111995748221620175166603321112755578789471422193535529505146293542203265244011967530405049526853076983604619410674396616820309557966819041626430424061788423004449566929094290302427772305049183579839797049813310935293577718251195911668335272563081880491276183195517092122995860382612165972287305845552369037672623153119257806510922574135949446901224814933354959376472697139441769462260635775112107485722915742174720846780275882533186928802028539078556594208551969178118065305788967421174176489201050940398886064110389970390031239122901645756761394278438132304268780796576299024087406365020521697807219674431306329641827843217337525024451502355034360656597537181093514419520953475147796932753719166654260072677617869385487838924546918718400726348140222600128405657685892822540306771282658397178175291437040733543199781364389327853578623406638659156587118811538170752587638638749109919587306771642539693032275844510654215432615779171648128457011940788817493585098530249535755225421522423210974097661194795364870047936891266255276293119842202555124833980051029515336340876221054201605513376908758930732554447580195337986786902284398587032317254186286461946132828747265019969777523925535487464695791081801902586656350390785530219544146406231945514593077417735941462104201907064683087098207859580989115177641455184031883130350054213618437205396768098412163517469115966183709144884637519241656804942166865133541119230118890095558155040371964319158842244566855305869132057217167270607553988643528374673107291551974698261518275638213263265281968919955079241910747618820760546874907356861501564948532180161797159014828088154894960944209784062317172799953321407446601831319440758386177402246448207482293771181992365725017102548787557395111236001784019242283599113645846730983191994250057476986996129667847821473798222519332686185978814901832953102241796519397362766493247853610913027804989484919963072784835334655891477069547749752941446519175818381979779629217193168845685213356925413926124254062811172889734520880873410437936210133857463339407262365243482869623706905749527011914686414351767241596627898355421234275670584593594005188734383664096486644258866293411828825405073914495872566726953296281486193436369036517814981157276627559200399288971171782764746850526027752807023653856270225318061966179780871201977557001003665515312907162205417967478936801808449817625428007381336598338755992630828947330607653151138941282728964048151782755596832538982621271366117525835014935251016456611830980693651250992977308541318211333564416908261837751765699726283791079548632172881730744154479991291789680154522326809697441680187801722648857665549450822794950965344962529555556818373661152957440549740326250290238073422039121698385693701702926548572789565546361554218114797568325806610616504675123267752661611191552179884816759368456970303304711481724379659823717846208286458916333761032467625500190970165604352105846811627954284705613082114416248166483605512318112816137979966327247082781857300182967076336193893919784427668004118525451887213415612394480252820074922777959614053207560635326537282023999244921326530970135142978594252028162106918901474920022285608925682685852019638757162400443715387100449297907471244907992616801018376338081250221707112473135252781953398164539244281110846819238867878250310532257882727963058395272077802894511913045576423585075713558673155326658676794354945204414292922837286824280272630767907839685669747790896247748694792160594820047813933971772849626561521059539368326370166455642607338500076588081070814530352733292177515390691656299112710267806681995326504511218827293367846736156936023334878827692786190138856014377069221612483538669521222571003226418762904003317635433380332701113603422204145117667974805141466426294379464368519276210758812348925164057880141529332548729899084294805336713209883656598476733186436383692333881426569113309337330085975867638505543879973915436043150998635008919097271505839366553274922277256362527502784443778384395574260765444915215097289349753148637199890185071641738674456756539051335874379355315234806104878846724047145823228752051724219623555265347422752902509303299907902166152282264033265192290743107931440584258654892905250681837712916296951372300558891126318917364542145017715526844285239385226404348075820537362426991376946938345700865720717317101902454115657528692393444188682452458028451517939344126574605852883560488728737752854552832880784378754978383616277944020063529527034787453866981296473038253596077478707686052238734853643953847708299977775860281861846263328200180302833169763152596288741056740570842769428939470002335125708369871417940776066063934326058286790298080030954259414512287339818700562725592868826442935403919724798133263246822179590212772788458842137377290176690271477984467953018241307221987368708213661985396499378068750893274115080159954166131462321312633807129078445913977535263069546833849276993990976879959921396089814476907365306061767140247916691208539098775523014052384200355845839126404989481887831921406179063589111638778414290142612022443665169432492993623184638240592116100906839553779709891845787522266348415403660950171594182161339662619000984620771127210205869720924499538482712497419775908096700629765324359959374407668663586354586298761309504018409422883568706652405938020126487200489266128252572712321515319191812630465235798605714649894033920978918925171909164861354512999579910720446739291497947542755362894550741092102075972561195963888102773238621510377295837044174728873185133266674691574840890314983059376230323653693255186260935506829320770180124640996500584601308153794233896882447417803601674566304994253556068447607716199476271895934969867187096536485886838814206616143988275137633089648195323808654855054671450604603361026537843612925977036803005941795593778770482195794345519191286143150507853494701232197710875948244538774451734637808931777128041636688683720684750375544405954973841611982732737875645733704469778939561644836928589878948110781118230085709033164371386583559757791420758268576199366079811932581969480880489241587511796602177204072996018377821308717186361845484860001430335981621575209378461400002113624707828934216611095425306378084359434031542577250380951885755860262320465440916509850993378174288517256680903081411895899499153051103493103063244521033799911810749417259308593573728912086870726023074901199770709646400054749098079137942632365217399404596551336842869425124820972617372499526871684592559400868367542219459007323225123839790600383177836426511706895678831397014754815473291165691307431955861355990566954904050671046276023784962694644216183968139049990231902811899953192558111697857519451568192791113369238847641746422871037530853910098359715771702497378731710424139136977305902969550464425987491595221721649825761369267825625173419399611213569325728452154002566454333959285354088150071151803242772921294365882232435183137365806554519461882949772535245557182064533975669281326330279879480145412493329277388454135120225666528215517605127179690380902591063435923655168315053276153196787159088598547551514606934266258228496542446412375184145180726133779203122797250387550530201083807018151795129744489013940733340344589391670864297735671193595081606472836474515078125910832742060105125491258639808288111974335378047729580101244212675780310748613653848129166643370735246670153152439474935768880725820427259873566453546944844311382319644646195121846200479863029950676855746301073915254736356576366896389101675064549233368176864562240779813518241041114914808041100369394571765010284616131302448358428581610861936707323769377653930392851400363243917515412842259643320893300970002838195684120344833196569741934818832605523274238298029899310397300827422842176905314962401533346309658073885657207830836555413785404084128119880532865985350758111579008397691574640519217638887342388346073041698200574188522713846083554781925905180147985635446595974968518908377804462629517891938139642182552584987684976771566413418641063156885251679263062000413664286518365921048574540658100482554048587568817665851433337975927455202098759010852593084574745610886460948230621595302298790951434801085894664894942313109760099547518531381298468514551430190217894318645424920313477775985468546011180554996960003725488008525770064096957198527552112539221474578316198388928810369775177617352173145187747636445909491857933251296187172857455625098232701346228254233125285722518650033766522777293633149934971224441258257404732001420609012677964576104136178418721651775286845884068559892401304314471378327150722338425096266006810038153683069374009758589456037861609574235768980194391215079287765391707949678460648333783230921938931453033289908545553065817879607189530439946479350228176403666747356546048614693845617430917337311809225406777858495305976930866236741247755281716353637983929665884325839731810191572889984481626102571863343355179458063423571907123459803083433233813541626865117222436872729814908513705612133587628354694409705174032297658188664862256654549031290219768978844956981132650120274023035295057752110021365160829476277723901190710662860718171949561552944985510615168160192604345076456891642127369776755892594330358601415995406839539990420314428988124913692038282555333532192616403295061358725611889453755831870162088489724348078390174349625425171853341661430736853619237406709166951782371484598806968958666695980658168424490963422110411252140679001794171543571603242587280862560196545425267749932985435812399052336741317457637078258389507512449186804796141684029718535354725087423347953350507966867096764754523553971368702532853328672284067371297658459525971163333057760774180331681453017958905551352093225644956178766932193834429118098542224051075422589898499851696737012557707814833971383592699617846506024401208413036183677484832453774668786228353475327516117424366714566999162842618284859536346886477189732710225237372886402882594178096425061664947551881224826758152343437955136916597260837570646929328201106130357727902204422773729648059110794118557205027695124065045665745996612180885447252892615640980959577268163829176835745959753680960466103707616618335939400505663981525353851354762357360448454482759796958164209017472923220639178238940110119382553849021746713917221965907105435122942958742121697507447883553125256864420305285466732156022022692648700499530624388204345132259317963146344795007835210987263749229069354442685307348833525831708623847947572111100210991140720946255993782020060548047755447022901215686888314983349840325970096166286799548961590551938983820630467489816723192852084791611543635902954900558949352529938601595557408914825113776172054158274528287467381698291684241687457654803290636111881924700077054811756358422387374056684442237575413876240088721004492600465101922331051589413682972737625267045364724084602289660082120184051210280819882462750176475113173701207493583864240741507515023830834498824156557226021466820516044647634998658784418947798486422274231720596219626022710571455382004728112292363987219140565542436857078244774263104453107502691506770635565977549642454203356451441967698827914693016251386794574682775100803322778440673691208470860565022710834423618651590971190345709731285056495861751794110110967878401382705284761942604497961006944811518168232150728689655034018784789815751716130473144991203568211663282063141442538867194439784749948057080258964061821405968940957251516399562722691395310989488295035278824762144133017519199255321589322230651745206293436757030768410359134502920502484573658874375034335306444590748814570236447553023096271183780039056974166027372370361981545604512755055488425432330997586911109233573181820224589766734047032649178549246297969248045053479172519855208186460932127730916907881004136323836946016325919283518770911130304236704722971864852137242653539061446998167836927406928464562010118235026551582499133182944099350229145542489402178616215087325269091889113788018946508260692040526572917029254139212878401863034669011787088272428881547305333594210297189837014609242560161449635521021797095272349454962486308299320274275271384474122781262223113655882518767295491459365047534653248402267004010430452402375093456465875016365900335069287153903541544972113989828299187166889929549050984650247595055877777916447556531845183114971318499951275287588085367883125854077748350100591411582665144123050637807131373062970685638328867757928216658187390867661417170106230430642086373994338743256126473458035438743467712965211837574687337684269128772420998592465303592614590108030346583073558790750470670519924137995204743214234968300478081166393830454893453931113927823349567926695371227406527993216859722369385492216918438335962023626183437750375096415738253047006093677799029713518121655618006150162645173990796138695987145934520446298831116679102602427660089234878941223241407174598577613207091961346677914083733254304587754027602845692089977536211371680700577709651654519288297523785506565538011238763133494924187774305050239732290875663272294602730368279919673963818985906255370499866512737912950437613814952687997094327395856449034035215275057525494369888711065513680882522235517805941295029473721925704625230229796586929686243224216367411698213139046466080308810149558791319191630287675946889185238368686191856519238575066832751221523088373522411424550918197175444706261076362752224789674599297121911550670131521476474035491597933447742342340078592550981291788894420320504358159396007356339639516889668450524593673765679995166507831459324119953432045305469619344701617875984479120168346860080823060869494437955339760093151839102213318153377857644600043829235696015237613994085095410686580589834725678886203885895595126562085273356132213922009402962910271439533054954661596999913273713769890995912069049768992540993161782757869159414219695465438088834634945237767427683076597489292393839950318914560389351886910268488542488704479943892258158195990045067124085403436068802467099573150501160083479289466883146487194122022190084839591212542054814658725773459108411893679155485292900921907069602002175145487080298029738761216432615271879474002304541751357122412492504808468152834403496944395282361138022966409875939963038342775298227192978434536734948853544636430134810954005492121187975810819894984627297268476394665199837547417389592789287190158317197767417761270697008899222754423523230185470609033931348739568588868859224660114438160120582412960847617569115148130776882047700399558134743045827859113019506056328523456171791593905778825116663915893879624406767239273953864569950903831005586168474206980043771238294204815571305913169863224045038958068897276401594718794347735040195991578516177121475325224878834074079634467952084264683175846595302775408985823728731252497036088137702814712350804808605386870665651590948973402273891838659280271341505625063481791675787629590373109239618309521007202348184400077959287646832092779259298231515532654749671502713784430743016524690106640093101638404730193709517895839689032159237299341446585203266519728006385349804269428928307892040117376482967422455840886686583805127724209570954792543893312403426956225243542732762408220630773976660043994460268468228353831296200197508121630945874530795760871727644300467061637956160106646329747049791644139491715178022905039023854472767611472935689751886339777057830607512103479400835954922990129117010900757458001916340943646869621943422322315860790002424108260504392627939900020163184870512773191490067867084747180050588938445320419582553448870912381563211699074720234664964031408922959346655969088715739927032635613113613917218083830319013020073878566013491895662503541167477762206465014201932580731356496910055539850345159944750915289956284268928704156125475934524900802851183399839137140966761636704943045134568103732387868099046522602877931373231557434961476703343152637117821682586012350551976312920615436072403187714072470131664784418730845992799854264589048138214637975575016501291598164842721055509537913760062273357950116362793786117111161117492335391889635904754599299175803094437756725332452238913664110412713566545285180491688886021947330656078805244968571603004444452176500798844485913547254932772367003210535758571391771165693472336132105066122599050980358278727662591565615111225002040245617630272550788321362797798188081443347596643385685398054798927883222583867610891886339261598914162702632989635702653033414770191794716610888544629661334040744222571217189293763645148566492273073488838237156898648206770794815750657197311380434907527180522224459996332966028429460984761561589520464845929269528983534892084634381446611947951419480715821364973299895627245232181125978716489326472591151031889748539413422164168826032047120397335588455080316188324798757984889053137776954222036521258269932838981284291391236764088883257381426700209726202020804158560637629601945525607872978138713468350316993584619233290259148411478216448399329817056731310498870744065523627598684537705085826977481303967260687358349412172746407323060538928454408623813051791374395750123738245239959541467256475313777112308636641836869546667950673805171250151512488392173162314886582008100260456411273198111217866129446783138562517905833072196453825945372997431185288066671388925525168742818510640329689942923068437669245339801515889435439742513978380690904614588433917008964867161677521545266965405320269640589938859598957460614372700739364873887096531004397671440141211068856924754504412095682162731925883575134055639265607376569662526386072338955723810758483524271438232120677769722650721656137489578127232053972193043001594203030213651688012282592344797148431549486964621971211211829225416922860279943971238826213648566386333530421980302372670537946832875834146271582374839269058000305403497796691733161137374702347369920173918283439014548929949933966669670799927261290232474529756820950149851175553963236538846899576798233817963126829904667802080125027719028794895711274972203001802285566812743517165001497256810863018878676210916022283542202018643263160370210094058273039412924131217158618825822233511829053625402502514410439892668572832011390344051713172819013006446148383058807157845636190974005910137705753834799724888172890024409743705073873322779911449649807928660942607079353990015166316007899727186425987546291131579210110619541003576970611691977166059828866746288624912054659349723244768128408888492930401321094497494912006027714438037558139637861572851877905428549225631919379431478874157390798503152090017578876787347211488833078335843152862183331101159288085727789705322970398921241638257802047811367506495202785387377204661189525861320986496298128616566084172950245738799001025170290066243508048825699745377433842171241594248704220797205537467412772154274999001041737540690435038714297520888359011149794976173838259118261020694664041978015914888715806296401847656267822433004601880157293369505159097550229640973883131927321405902049286643539659269542515761399471922292557573374835338431127089498895613091909755873635878622103655907095336129569453337300981374462612840210863732366426959634388009002030538548566739848239102345286163405534838197456447580961560771421218040148546349716743318831346211477973571536020664725252352816979229112824239016349359478972498225753245512293722442158906065823368620234849406703942387338178784561909213078653920486194879669336950640464686001812758155072573831578103723327778649708287111929832329440995802433140924234273510356134519580177733010090683958160277278764306216510230147980469494201009429944937637941347633667212716049230476761994801041042819357785285241144574939840489536925875936328220010822934374856448702292956898960904731534928359585743223259872161615002172483365222468321199798609545589499310016061363274539847361698896841326823944518293208538282610536554648313916707484106392312204227719959995678474530225212941237476584827379244929922245601730968966389650091184658834248187347605071208866138937877483497820916591965486677458754401779743989873589746491870855882448688333696352294018365311207902305894976877421813955040958600751192724005907158908416712966303932184175692999049349894755793695847321721321122333086737087441921453649870767901859071047385792919974654206561714763568348853835348336692682253517401508414760259354929905608039504503001219249007299483675571506654640228855887856063502200364966411112356343775104624394971455362176466878701068374796082823354248609474722825659939035714074311830660386728030039143078940215879980558015626466525728509650322051714428231672893430570805537002942740942158537542635232384438276813740231624317956297666743815454542824032581019015390609077578953859284828407884896143283964457648717993696613718258130951431271749692060601909146840750405286999695417731136582224018823383126059742196566562159082205705584635790064712698573841097015827246387260044109790545704500153962410840075218600586172411214918427923565611344075281213888716508349775077054929963856047671750061205792054170073557104074622798665776038679692914515399850122609677707747482260992353763218723583185695942590625917018871211325440596329546809490602876946476704185616744312746900411071883540613129528964716485697445871170687400707316711491177802659405539244887438685439643889814591526386055897459424532038875961384873355100721503259850892759161904009680474704162848123358547960462057683651942208257539850608153119842470246903618335975735144455836281693127335742106666065788202658342284342722073510062670869903649719050656168627099286926333895542309304932243538118838911936967620002856575967329168272734280406134436546785018577840756257007877076460883376559973691949146747560655655649849949772875334478716606201175955563142795301055471142545171376125164520950027370553365010378123794907399309177386233847877575536028966174008399218484958579542659909558347550604524787428156825922928439955353179399117882927161327773586216089142449640936403062104022160633862279978978122485910665953165957396113239142154945184789973320772874091217711958999233827886467039266526629672238947440974407519294561422693197228236706336923019888231709103283314029330224536741212891700016334795029534196258955297352945218630257327331942060975501913322732966238068008641611726583693732934151516076520390920698105239832588507123901866889570135196727365142401366907332613030571637314824724770639397865651851115359543747814859699675197793521294564969737585529080337004365813498634468582523241498876674959724474485895488687704951570340498658593885058814024491456225978788585761575113861226478932953708416541481204287146779953544177428424712840575471477170343051157086378292979431738316005171417426349038640545896278146312468066876689230266085393349554436490717707391535804189916307431825806945108332997192433038572754455719170274507574218547776852324394834980745768859444773300912714585690539557079556553160582300410713974505569672388917793298592855254379263359051762219572672946452646572065616084175617103844145593672586214391078789295790105446382649821615538921352667112477665071184964502296921101208209354861126490122912889280627871859387205124428912370514349054034093547009115981487709201776205786230269423027198189335844769744228737746323771475098453359679143620009813808184895300956104503376445105809271708580194414544866739661828350654769277424219269023133683308263403380281172719602316649425949341457937785116504785437095421532627280149914039296671365283030651111696969217636672095078229365013424535051786230395965015235028238307386138914788183255064275685324445919442941222239733947605436082422700329023443830591511545753233989511814377791181927973098614138573773551607440419154302104079787935546599823362733786710379008950100384322094699781120211337481183561959946245969544569344996406398275448632940139217229501136626188405750983550997411340494968700405448065519981611516260409644298917500593460737292786794989287789325370674334223903529605610618550467374149463148236314601733970833956805831531782518349391424508306571364688698952824860793392562892619353012347898834295327467654446034993278265956779716665531619407182076656525979364049704011424506917194810302714260382805534462143613073163960954845972073443596329949707611660802866622221270903724453365705357554545573459352333893472138800126798206647980570607193859120718491855122171916562707329904270882643961191235313321720755952717038710470422683513594958252366829311590291495037407964069988004643226713727091936875474841472730522453758208556208811695214850917136556107531992638346048402846906630889139063617941792493538492179441185747435300040842518998353447061695897209104465459365648823040325361390285632965485903691786529000596874042843709958457362948206771983066033840364773404833901470896249668073393554822287377393635639608997580009460313092436759684050142105131733367389588414036722194717219230361095529464182911064139070647745645142223934229022611496396299444694162138590302818437403401624565479153581106999697596289020518774428907246659431796840013058401210490324634145005657261606141577119950843103681210961476673006025986032717510663801285895047259157301723892611218742276735748583148321645298271637911322178738505384901104093812840851648355891419347466741488579368858830256091547822443428101160788585523168336025020228109798991130731690252287584638791506223038698621428944982719216515282594694512904245362434256177387766668568859758448253040222598969129307801043279279640237143972012585775793294953822402810758976590288350868274423170822263323703860605297674375189159857940562148897671599715211524665141931289829516788379842379772634959624868463699558809932814815665796218308656247540722879666262813863546662729288501228373569951538818506044335660438473682175120745502672926338329851267335682656435783617616553761846208782656899685653484383448550049010484313694292453083808179942605181218696580230340691850853035437528390278554077706722334760026270127518634130892837391843824410726908740830152304380927260174816267829731767979270729392458541181536382204033859143591299239749014744930026012533654772182927153332223055986408960577522690163914808440335136147239785318237441686651730426499107300519792307910380083822723360443435031642275364327886556379043105014060885874406981938521311677179669326179144054721022706942912520991209722723412034551540461399598281603777431890020008178120476050448315458587707570589152267479446666523827568790456848205725292418682591662244881301172799713050204334049887419751962394350376605043299021196505244767596167831145516881788893246536504855823475512038111409548004145967607551304612498804589806356298778413222817492620485880633909467169004529340704719194359146334553019351000889778735282479742305556443721113468879281386261104435462341515467480389490927161962859436335671796664861851164647828205877943845612536534150034220909641434290427772829151725023827546446581826313059462235423188045103725686305941366972870976738572259486912470322954127849303073345705767491996442992258705464242673266353432129842104268301476225266667882674978644136712995513385338023270364426674202120167138181109035331571163608329225202413217601016240994102777050212681528301553724411860976956743373725003698127088537798542152496259829699821209993259853514043105822690165704514170656641142337398848134443935502688798813106769966326725616598263625738874291895069026609476106004550529901338305204579079841054759618159552858501543842600276594736982398429046997966264877244614540290724202244603916171468312714530761428098195251833860974242058693735461312183592519879596959993742223811643837909002063246188316060551777326508593045399961962542274762417531011536498446080687419619831280412677429945668846740831912610556036422767137559722632282499348773411171108111498467991242545668228913536944222331984994199316026707588130502919305562811683302267326053390154248171063095150245897323644405268669841758704241937587090908925086626497845839357644973293676387949643424299113265326015872818588472516743613885888428779654245610680917975930680657337804582653173274516179025855319791826961950569594351085180764871256072048219127236279011756763617463129628705319234098662975640497033008026111089082177266555208231993378956177602349680554382799368294124323564249136510412636523273567713010141003438400880176248816070739671031691777284344113138240651704979915968894147266528740625144243511189100900990276874500258714525595260291857077865342738015725891426679982850437359481880104673299725363058281112003602958049018029484301779916931629247662074064254620405288507443941074733877601080842593412518732695751812362299114534349859605250434073399919033654025003324067348657678396443457806575538431377065635491623654786731055251284225836403022562368352972809229888533477827576366108427041261799902230845735898870416812865475639928620671169443217918761976738684180918081543818420803070865837120004178113902863379762703177998556699607096833935247714704404294035358640600347835113694525488691521967460986504171546761323232328664815291091359871127926931559236437945501889448431569886364540845701090458831075639939483959861197986736920425048504362828171352053517021355210730824996764920968271729730054973563860793303380229439029999428181814290152179191810703922933220455613514072587010511710372216582136713724909300332594119666408300467743159573524715535317860534530505411860858086826670735980150604577465927993449521193116472332067352448858587580865582695974507124362924934798839766374086070642502041016023997239621158611202261021940276653252906963645241884964073228151376900397822393389484603130129661013596216327023429869460268816142380089735513634254924916193100750749675536270831482406609440756405360103510848030209199541847309678682620284705867142507810293555882569602215790086200607751262349236094132387280925718722276880389266995991548394456376800317134317274896513550702823109448202403339408886532396091442455713093085536095477116219516563632082423879864666689291292039204282077159256761197935586632353992780740407052658939632863630471017264258743605761056966288774457267467228587518127724745865201603482484070613194072448906713617027422906774642732753616905325019179621952303514265022358672082734676729137546744368471340002023965262632343538050368766713696108838453232416429554775152697748469978160540940494156427139559219732755047500301617643509036572820901093269393642177054910814174500436657772186414836418068936966511142323650346891142188275125323222283959996164502040465520748356708701504005681987164970723731264246716663443965780522700387747720441729405973604721945941791037442912433728544516618360021829397096281232370362726390421516158083090726278846906354509958211677706816427282702311851453836970920764746795302853000905808404438543913827975747152928085347661845376128598935137664015830760670210508430257644163364591393410194128284478821754589400090609984185796987050856775978338789756366143143301367572678844889532040560306206835917763319511609557256406594465003865582569961200846775654307423093099314391459078215379403297053805532983648580682129122976471057055113328988777440907490542345762950647374405911810427373244939829047302552393770932848626467539152453666661404737671325840118422022175461692811743672197371895494184374402076698214937306881612670486381850956580034401248154637121765272930810154365596196442256320544123212582766488485899740485051836683074228411328673180100457269084477128936065548044442990317132335087421344888965510757525745353441145120710137322129261077781274166088243349990170664156401257104994632561589842436861205333548020942486829189944068832958918743824526069316336880881961771752731639187715330598028105431119747613795483579926472713625110376000546949374730225315844926070444710192909383592407230035916341653089239679154521950582593955776430366901253960564591920858007656326479159361612647896385543874878100971980529125981028477229871472122501690644677347125790977796040741989541580646281637373173923138367294050546957171177586360239960304562278348081429881788634013296963783919057983684553966758731558350768593537574967590374238263213956675637363532137815678123826378747581209391990533585788419720715122667202530961708929067216923102445894208526355680271063520035806418189489859966036470343412954333111848690191876262171727579926446936145209667525320535193494291517886511655039175697440003882314748703310431570791096622066705428704898187838090229180862892054150499384500127497260413071546484258660116128195867376783166611382007092069779436544571759315083737323653471817631014926179795966210905888045046718161908814840517429063709637025561221258407841349968728033553532528141511492019929119686117449935760395281817246850138715735184668770516849268981716688395192850641253838352475085856064302170889310973423932817715792356743112332662733615239724725303380718433456838769257687169613667359721470289253141827891947612642790935994051819904776745427753953944422794101136276012422091536479700168725549257604652551989788988396968460977718291389543216949489171209546154432267244152049280183330016957011186940123340692785249677968570118803727039905598620653624997367810305279722921705448696723274873244952810328318298619251337341750123518563288176641924363482103497278849062538646420451035953622066606157725867701176408003031227374828601810713337002372344459797033396717504658024966760633421231546615130456195629735922160368228404815814264752069229089675772465201720882689657965938146309411078100972885553136964665477837812015642643459759306752909209364277660589219895562684200077463445099138300614854582464610079998625894152735216098207171076889835716062972138114745409121567560023765001323812638912714553520221077300015651863390390706418426627044527738260197612146983037323366662199101888111640465977487527762971790116852329391305674229822545714966512129178024984912528383904368198097392365937690507240392841327643478507560556986029881506049156564229627610960932449163686178740245102388341092837424007641537576937826319033442374669450543288751687580123064873173948120378745229445097386812759390267080657687424911997853874558742635983594886452430442748915773358722034357157473372381006935680024938524453299190510518833768380948048139123474671907168706798109496341619769952171394735778083994729960654474052737431344225869823360612797201387201412064460923410023484054009536079625146349447034460646773617883673485756030866257199581283104339121722387986900449138552735083700810193643528479239744922769306885300006946333640465149750292098988867165231512768945777359400660663655071643367168302523890077738869607324086776017736237606326398149067081789414736000740507532695662000172552511830271661360435517462483978749646894859096404045324978296915028548581286641547978312141657559307592626947378404312902848157481630713855654927712844298677842636616417332130363497889585140347470921151119282302134387545581617173849488451946593332797040963509325221317360939550649201677063360361735522475167866193515658949942372421010101155270839321508035936220280234960372384350426406173245036186177652731978771124043774087789784941831190584567533778053977793419999753130424889772619507830317215798322542892489242721344763183446331317040290186574428776628880565585922986691541866724227838879050412300683721565093630375244527357318204177394362605008548216119939557556921535618409132113263725424969973840207712423424010869115380898749888477456776773650143775015722303942892460831750082071548993584668550803288094031742912656822285324351097584349007184165241346624638966383183815144506131321782925222716770628031906682569183410481672382457520634882167822322493721980455615450521409419332814967030955722162309124760720805465410254308882967715146556843934192996594504433410964215814948678716020490793554620802927849137810390011135372739764880039155038873221954986038797178946614204691275828349732224719739887041442247472330220709872160738304539550626204189249069323701923154790065464118370954365209195997714714052461189216032443225478659832384585079325874148820710557308323360700677985043884339542153959472225504150398554806487395756881925467977179206224119593753051348387821508727917114660527331587851604502316155036225370642507112169618747526327522846179888465984202032398773528837633461729975604605146219232467077796971730585017610203243082755798894763936393463469290779415822679658916864043898584491747688007507788491059258641982833646419764003490839853203703826526925132838712943712813133323065821005006106037897169306507153864050775328204645022350001452916814960681367268452379842021508735965938290071805851983324867829346036451753063121044905478198094341568110328669170112268260896830789615705128462110229592621000305714771084726700723856767851086580574273440794552213497332799436777776499040426968311465802505859905687431577042087848960718542359033236813386583813673608624098000568999061258685956294846850215270138526380459621188596492033124315153324715571658808390465958715793179995192650308607367110559434636534794775530271783795268187857364500572972189640755841698361327277847586691649499268494609499663937747678864279565515806719282432148018560798577857077817768511674107844458599049598120380946504251269394238074454013151497091007419924793997496070469562558108845585653006436129396307120572926826620092100262538299311625209918905909846463470396183286374747291388948273974766472071436997131096445660089944369781420284747163921710181192112196010231198424133427300396636120761769106901249420611619976632054561534546295211708238866130182419587836816387181711280063324848908858184196275768147905078837118638236495270506706541836232546163742967970049956495610888679944482398171029213360549849083201485865476181306341286208900009692633756609017928292782227310965591333138123448992284774205057122027891863598330825413373566897165311391531007108350723499420741490635151440124966077055638769194023861300173180720781055490354804601360572996223769574641617074372937502460845067527778283661511354057573727647567297070567967076846791577071152401900826252484385260838220923761715179558147351180320701340735981487668125947772123978551516528678101798122235015033647217783533060143740771812109317983691093577029367518172962733616543718908213047806724486014159762508675328099241971099666374859371636224072686189270279473334172777943884675092665747080102028997736117134078371539864242239079820434017718842110873648706001771501262410924232081810063253482298499807296876160302263291125498609724898340670905083691749964325315368898121261398548041337204247261794307083066590325349427206685753786477159310951762884477561031758350500081246232310064839806869451392490238334008347716109027159217363909251402009695015473764335364742518287998876578724204072961304691502096711057276671981593380456165702859044805539347645389497881127189945434295347332276688374292804426274366133317860788761193912131442393485634716129069486070973384556867508327150994052541533862525755117562897757583313804667353058728070806000845031978749151098102638273505880902927507997411405848987421248767258580908239147078917195713964799712938813682616338730612038455570491788472220931632759824014835736369039469063660974643073863913683629419666721284109083774140480038860623681428106929754530545535761080346333735344900949163072538576426155976878143124169274218014005607457472813810673458217933255333978315786705863840339417579662527695598983849517353236204444603316602213706350793918501800804750799824270944965623062539704648046551675265696285666246649237908498101843428398448630275458268847581132504599948539043915446561459621909252942378106282865438332570282732163475693186578936949758598483328412790407428315229445611423703291883646557931726823235082821816612042288412741457556215612179919900693081142601775460184621699284469897355972942542034764099044210869893078674089280973866300016305983785495256257904503166122610730871074821067886499684923590384688680762306593517247523665331729350383532233837561444909372851164221407408422095414214542184371778461681884586946998905292172506926334717420514634907779210981169422317400194448670236849735894135231995711043697912274200846822574629055650154100850327202684036439294589711077236440071702505979800729394292513950823199604645733867051543175051488320172770580254802174679802582076698125822358142875129800961471186566458885703082046724477860460669725414932562817022818482315101169908328834863733040004186821874100002354630974421733665023555940895874426073774956981520087740386735311799038026312579585049011552917205364427475123142183411452221574208098053834927487295549884212798200205282917517395604884977814028613723520879766231153296540613088072885062501803838031903128657401284565990200322648332600016781927666817093948322521817126922962662130992472040157173416026222314809221859515448111026732227495132515226884375557011513915015013080661658523182609563295932761145533065671261181273552130495435643689612708418689266198157717280173351487140482640739631890506099611271096773817014584247729365656267327238913642884834347867348757437475622076768031822980803874260388736546535608968322359888252333531849721344330494652618061315523625644326764237131802916488170147203781451501914536463816603021254722990773546638413984163580120771746942304283381628228943143251137702486061234403473374806049532191646637195781080473542637517027246074905641178525632309551231098262607151479105212144214032653710957374028907755134919092137329338666461879028387164362345992172708827840225690707120265908608377379386299713195023311058259265139235698765131253597845363632752840868881954427890897112260066911587129625056365738645141886232112619247156002649491480554270149086844929815337693729623500424242211045500638273240608858787256179587740537059414580872148640806954612420439613427796621805165094123503115863888315287178998793255592928165905200221369467308224195493979196075620472138378581593733483819748937498492962957578910097979577361962380699038722768100456271886905573384470359162128279550261156526342993609930405076542303299992830145758845431453291603858046950440198744618170036024412873272190271602822094692150277276235757415984163665569601340152215941911184752003239431610741607813674701870238565047854193534912736388007001076675683387074980328046058893962213555216421242812199733444079661707700818667664022859858897159680209660698920263018717601447251647606791958020565549947579571797873640113998196971565498649102756136649458984244470577684972118051623351691115767122084778355837479400097510425750205577377210960894122177451024840317130797476510083172111278184961646522180036103015285687732187064370053273788410568214363017055339918751710165619093345440182809229110499096642080736711893841809042274057168887030932410230683883878558621469528303701409286920436638784046210542767923900749735819062951422981652309308054468195171592684117244731380098413344239018911052880461007017531484383422173676493611063272559548848139076417739080877067527505898298247271021971916527478318846250602096088940021430725768311015702276226970569553278664669917193816416034036016946362117349542564916055189718314783057593196582193293481545350554627876061877991116312668933462010802525526412848226479688650511016647232600836016690373268002684682231101417854207466385294672809649326489347131980836714815293933534718625451235887238688744123919103811934915076162230570513037433905974077084659988793737584896510903034254255417234896611167756925676107166015335368404010857167759939915014260920203449757675671198971826089509778614070033890065328043801216757889360593120689938541895415986188311139107328038723406652939505337192556697865142093466233459783666723872091743735237888847337684965141131611354859335411611193692259401019966776692206130921604731120314917615414415713694552275554457765056593290801055085684960382123538338091700529096370460839618568973624207783222045739409888868415407401763744651043521786020638790428737824258651721789491464312692549741764411838449954057477322549714665149215878080185245994048187109613036674530684601197197114093443911477344439228554905271893202873866884867531425920737772507896200040364908973463268172291912508351125231138217974266672446224633534546887473797410344545936627067828351689963851067004249986778545665274454892428021005586661533786373787826937057341399651828731054130004805473826550814834501997356477955079345957437768678824869672692780014175534701492173715670014759070313407120028121308593345956381475640748059597339921503725157094425640767163993136812237926377869904970697682711302773074598994476390035373464802793998034232222653144904411373416905386823733402698298479420260455729834686439028297159268207457544827737477260227334004620890322789865345190086947224239639081091384813467881076151672012702814454047933641003322143183165127867326047262278047929508117459890681962067016495404329438212452229030929549581427715561693975549103262420435269951295876137404666629265164043689020513196358828096938638091732052882778615987823830526573116934408903715417981071961751978441966702890561995700517272301686806131338501087607945601071341549022723698664167754821269824918438648775224793053553091143700462949255914202214641473336938816366944336573682550424405934199731303908017914493804773095463821079661868351020944186575439179165551678096802862307869928368011430362280501997986245422237064923518207298777880130499019095443953366668455207583518030252942526184708538980352666350150659349738006386977250066221339608633478294722367226405069898084701355870987398456647330397906183026099792147547385174572435176746361862590721754984002294229509011616114988592955094430200704071275415424444718884120250399477931407164897793998513883006987716929183511544587133314015113430991953724449572280296788965418433050141983864208948632066246293889330237961889208027310924176906547113504165748292358523740072306975307927259551324604118560249568643291201146215588144347086179347310181796227378095934396551477639876206791413668581353566965303359889051549588023396379370044796086631502856296246495867574163016405035853685311366821184173357567014088885899402459948684668746215813906576208486866884694453507306336716406182707656756848301200945169923543343953587309085950642401186690870276248634828626785181824596854202225706345832236014771181793189785395542442410833102688868006411377872675287550221695652697739459297793976146166943322714628849693446352223242048604590838666381119367078267068966955027784015129040228967293011843455786464030812169112984149353324653174156247348822181002117699820279705453938145814240974899960255010474761686314699808698922352423432209117044529919486534751415866946831109161996217537768867243409029735047443372843862399395657329236438728654783655934814358969604315179730241792922139988561954763957126265936521647405303094803772381995361456999205358461587687392645442347260273129236132228166406087057914892403208539400467458560483685087507049472612035244522139831974168568408062461994520215539927960006349698568363662020697352102833131727442771783639211746549542928688417581569045621536631564318671274412875453968299072955823846110949007388497757079657638664315763063825900651144594129892797801474541056852641404478109452181823304646303637315861605975553948238778898826019221275453499590259555752459520340237268442144644462451314082072143927769508575288845111348674652956926283524047052871058067344592305969115872692640191408356556794130449948618920263214510841278109240563148960971373002160284152274542417200658030666063334424448079891880764762423372072450136926593877841736984160682180674449071995817717287788448799513664356601838312320181661927559026851017649881163315330078872012743632612106362422856783868098040268315645285609158265761784814814397394139439742461409442149364808300532634208488285099646124967673966351794993905117045533400571413456321100605516041665089554709032337903085767907916634264337759191420576083045157096309881225050277157865588410058965816276611976295555017757157757807480130034367085828959348733389793462018051716065844581616185545829133455387950893389959123586927837435932026602522343699733609612232795632361584532410771796793704807701978102442089806795602692274040308222553832812807880862177403661572214193962646429675220051641637017954306600910603797180461045397763074440585635041844275905110166552811913530084113826490346709415783698578331381289171164625749506336800742263363495387935043936606768063935612531284815852500177067049528840384305770024787574413500406407483516376144869284622910510840653902010435501678242112114634170107610443687191840704897337055364937779212907304378996422786658689204417837555883451256297627301021814107952797917825224202812393530639135604151075114066035909514450205095307507169042815314376124096022019114495332571835026141634545712536016541418062896747466720753344531563341046002741567249136224212751254558682964835061188036831143495508277881189905801071812510183596187031822198267634590613131651926123559221167993988103532169472272166011733546854747475689318046200266322532386383765719047723331468508049453055115330424061026863250180677654541330530465522406096416728745477812904569460061806096353122651358462803475324488122447454532452693429517011273676853630943214197173932956881476779609557060836116687834424821293049444265211912875885925015108238601299077445317905811554487446843081255964417083224189572950070214274233728189418120987939973965101364724330625547706471866813459547381660615168575844825548260940998901019385270841907408327128783554709667918502471343209555049236542866163051794447629004287399653778299278086086760965506395706264303705624038132667199663323551826565739568958922866043744329652534106248134375206657549921024268463860135705475452976020995941089810686014591243928461072523230992626318331627800689560257427302530591225355338807526250352219600746430705272792762455592625356893302982964837154553198202673753738981119571814861020206953757734005003767982269470624737549388817578946343692105252682124570339040878508176833432895465505942583469333505604546615917585444375394343541897405167713161027434499101986898582825047062284708637326418015441276864594528211517084278280705967245157197473964932380835781454556116139355687211609295347399166284455390098510933602690116994929649944263658537710154574139326088724596099718750589262759212431172015914499977615756113100573136049572371988663011887130035410325495146855482362800498115036204988508248993138514200479391305340043468061622075568296389903237395556778482994961302699448354357695052563507347869306118078403261575769653203173511231510269075016139923134135308989851414082345571085253451116724098335603730880145090275060615220661041912755606848876199121012196902649684057362785040488826984405154669066007271418304921559966223940725090725449974355859183085181617762742539840786285822338455102056431053360059865218463067651790403773527277777501277082688451161947278444845774491312261480352768967697607400455876075809795187833710339130915448396638406658591711771683318513186146380225438466170780850881844335607611001285603347727296025702741844177218252631760476312974625289636882134153316339724013466120998649495463673470617825165523285270313547505834764009038715828540363814038677508558815899430720316969583041181693570022198620661816030358008149046540142945099884642186159159832874021152961080138215476862930071188826095477243400676566620808477032548801687437934860861615089774715287447132296875246213091886511600271599231190655587432921329570679008105435085198498147102373425189705810711842575396352243369692555985074969358120139430067758920206890850040287568524783119495750528165829010998389079722940273568050181657950151449046236631680166322507225677414099143854418787349131529565054827349315477119747139026529918650848945489293612120947780971338507671103691888174258556514953433155745004548562759628450055749140798940009024414400327355215866886055841703304542220924979329425183447980067484807606007283633947192472040701667762667514534768040727743074356821728336047797960904143970622527223188186847901421047168732997521121011763348023884356402291287937164987099263813241075546736747575772586967534291645558086619386758103270190882822293012527703423398375229346674155260159368182728990427281124252771153936454809178809388062395949020750901139093522451963339327977471672044540457908434999037958840343509009216657589915356996863063093054082156077749485483103832706540631227022085731438089698224915064826460037627043192693029991898460011936012867247331530505953905303876208928691902196146428523209917721492316591576858066018365668855582146978139765360601022030003181338363701522666500701958074074987776744027810343129636554665503707778010514982902475738597474109586550519167390861939921040574497668026764429206048187940849673588792980635574790955414543775205598510284943124598730306271491257998369171325959896114663528744446399274478581639018046777596052092999090052023947313602641133537995810321973586522621571687713265197937885577799362915907024010693361610093768818687500533962885755916719311829906330778225595069416211745050663542336701270763500957877438667906909068703543683097175927368544349512365885440697707494956711266898712036184899310685746917012084735680816517743528947695462144651961744534169899091870864832752055701760970825540974329715885044513254797230782453791355685693760762265687785976684027142570067441793342153554850645275593648098431558081363904966989064219835252584912155442899117272298850730167664157498824968764126073030334355317115656377660293431737095128535360117614787070457011493650663603692062261788587247270530662879750852648990739157731500373199529097412633984260086224094256576452357893275848812372142082170462270048110791303605021911981832455028006246112193941236807224653862867636344276171709533184395533136773031531072013786488526371997257796550323576355374227839285490203404503779272668608437774627282322008380797215723914150429108365822630777138489888701594821792914912401167546965850357955023280385713194173751536497241412504598764157137742300060312839114747788854127502196286861249139687174450217062439218676171190716949997754220988371339023123180942113686728271197665413188245762900151794547130864786771439939374180376150316026464020634353129605437696396637922053508868647480634730625775123599963526176619438003467000321588890529062198830050831584470283683133247900148228777776603253058491119792839921418939410133896529136493981709932452590884176555481803997091446605853926918046499985865985628436071121334455952503819499175595641451303301228941451525935623707361053432364912330280296648105461093124889598207834189132766709412499611326805622302088308663361911886924922312934004492524769632736272931488835435838229598987627165599278264865057173172426949145803777131265354865674169322950786433903235073831107564042494765132214834509647146625707378791914789639958268389917977874621004412843903487679168185277126762156947891227269319499898915182426902650899568821430733464294127900791501864339735095972289538970135864072549165910221146355588320633596400643933846885411281291427974217608615945202935698482906820012251929502911056678942499634766945266347583873914432722678870124185147091583582280522884769886833696486319858918907981466057539946654995395715728945054422108851776932652343488287202347069590416055980386205640195259554411963578338418184750718385183133468631672288897664145250921536127621601604892514821925429416226115423712345700117026702331878139405875370572975762244098039764894989755499647227171983999994239947607918985835436055079271797763438612346503547628847448944030267521049692058116879899476926567545853459234740487747651767388491182255339073005804696098978087781241363189073015518515715616608660344275869172699826071587515469023437528091645832349747012702559458470330309526416847207654570219597141384881289485879898153996433592610645410153726996323796074900220375339769704171032115276175957753999074907749031646128935738652373185464652670898865978305713414417216519140294869858347142807003189903669184869244915657688964584062619307911258719067266137861397846241538701944275793403478813496172365279366814460826581017478131679210597245882080377441582568504141497510204356675528364755882410396189170095900762474809440031947016766723959082850762973607930743712779379722536993262579749327885454327992832704280422912820947523329848059193993270933999373667007038284795895727335063815714200341603484079502000779526345100476071664926938478323777986791901244397851307220576233257402833745690128158620364942605664698995410673640500081543257544253170897115914670510141228261265192187575408697098644734952847807468725818698550466691282553226522471526987429663203499970601303580570448761775454360166593646382780712841337056569807547527630391824661906460834964512601239262892592198585440653790529288489021543410462994288508458052961633582624843018980932351501726769472270307536146708199797075472125558603564594811021176981202081460937790983599267646247193592737758145447939482493175661385991821997156427889615117527576392912319844070962714884145531516309007053446786021229882791836738567927379263221959408288364996793778541655390541622358351511692848942467511224927692867391774115091931458919224738322441547408122916859440263296309982982281331845444046902631895637945386888550076772009375327888516294928474799361512494179571156793785502377696436413256291603096390965033681857584104535389940662115532664751457140670541592330769557582292888484568402965685721870715059890575436915825920207580430352130842991176305005311796197583562359429412297736315828190850228716146669934459388103483975841465085393448107466596898157734353746068062810666736812845100152336095427027285220185576937512639624196325525587777008041494052576490853751517889655238232133732561341014648383067579569100593647943584533071016346817979531629975411696497437677198077616375880893845024679382759452946445913159192255734419659394103826721270750980766934798187450448133746037425061379530017402363432710638017506830615330317024776363917233414292387302308031713961582312899741909229737437874583772900795289274316087870871263542658587719072661115771377373278319419067617367379911786488909330219089363991244175132417250953304647294690075757783877560080338574392484319516394481905148975061137064924326276327815091955379293705271024146887019404784361396458735333534342307237740230119357772358865917973459160374116247211326920306177341158510554403146833560851413289236244929544057881884229964864398991080143931624374843444841310364468683904466787096321539225650828740287192314925304968437156286366114249420031715861331391347069786290136968777143922718564014882318529157335888150824460150494964030987145398614304766635228429412303192538012495446785405165399626904616904274704102577544133803692756812518796755999432029377605603944133467468017663384786577484293070731353745694535341023241040940585744847769895934253319157991664912334517042277785983341084501741208462675246006085417438850467826086293581296429322956045102250997431572703612023198727647112356983531328783005654616349024281905423535998392009487632413656143918627639604128766764204196971595451445847998968081015548070801084252733466424613286281172698649433279833858722271162606672134535933782045173363907956127371048118806235538008492788712702053407535413656303708365123191942886748795384265740866392602611771636276175356459491889206583262184347813431139278205495999045301363000453430477995231447404635089945913725286865552899422259179373725422887334631620174159652077220952518878506173670807644069943225077389178475468104410463669358222578585063141688127442584739403952262295077234440577619930713797640955622919639136406331110442911495700620791127334364082940238582286091170416390569732756534386286177404757650153034914937716331912704118634768484194442135880776793161709115785702246715872659233940832232126413406476539889930585992110596677731430947053011433491773857868710904185181602150764020714400834094076492624002543503085263565607746830363659388217795969257892301117416850877003867630434893266587511925139501734159046576406752162170268351670973662409463244954857821512274434847982103010715500322919659033119058417818174726542125366638674055101303659808424530402306686873322674139854461178127046347630808357389726588517029605101848069190111351958195856611036814163106824015799969107811456910836861824734842596140514019224865109150660446381516281444853908941608571632744901052469015312587452397007445487813697611905990076996872295931143683381464845610940280034527723422515335761894662528856450184717336478794138075006742118983128383066716610159623403951303014666640783352215241814853116189820829446252975273826140132099289007795151852592661831486304957948075221973889480831716709046609511012365366061195000826257224191782314169785166048054843666174887307166314238729943475011240183524427823441757782712068699538332487473910838492900899998816609003701356426906039797939453640345881775537175997562486060620282433750899083172752188004493022683974846941006300728320715852754050997877172057837046171637989512095165919898663990740443182986582121439839689547524259157648398539410331259384486773553489807785247760572853283408953405716686246275662877059221822610712561111749043368138383738681480316181593198592051200714854952099719209829614537128065077704336316006146147523759439163093255489537799500418509522559422174989198111682403669282250641389230327444258822513802609241487566183302213711891847675889603682305019012201427317175663304402286864378993824423130681818484836900498285054857943926531792783423343355738477832573692737639472383924270501293822418655013879431847093218499202647290375600150992928365907494614204342721419003033916408240710641197950420916775063049172798828759094845732020442243388798180068963438174012719442889538913624703640836392555906547904798428650060724168126954510133090262378335817271451671076231675292463475485027156195138193934304158862046727565558185231462188154674166150220807351154019558413280908188327153682374708392689144728276623194249816385637651229428037978821231515192638710188105901891763333333893008930242439328009377046769204031683973958471383260195810349883150295334401820625283363463604862386550902260021517054191167941827228502739462092712877354207560312072721064041418509925204510328362000943218093627494633036702260036294811095103141406339157403149732783656048916421177951436649920178914825884648886429786771067361286371988042534434835232537436030944900657622211904065936495686958024438215847147313568700673134472203471331741876848141963662135662997093643299754507532721692382255970116396800956709007941614250440404250894299934754656607987905769068874795285092157577873218600837217499744464556738039059339831284490268859688745599844758059625298221460306823923794078657305489439233109896513253332528374068831160948980392760479558008899007543006523403116061113893973367908480148810937624062567586489107259097080736271450656251930206334827734590537084839387273001563888602336581644886733126748511564391059838437611399375826497913994397586859418195671073052195789562792757303909412096541600735607219474753950040403762486163219334073272384581289540651689913236665658551460039517852174792685456704554852133743242820273220036148714004543977871618172706580268364287396276737519880570292412723756675297592725562330298981829022160820123732928014869720027688114398849678734072082277103313416989260819453651456215024358891580122330538288359131951082224927726067527396865038675764903257115699787207887833094823662368866571514261507375078281806503870118042697423804633789221276353333676257970411599428012511309769864070936411461124452264176722999410180423457230911286161000830682385086892827371327506196394390467498481900301920667658521792858601939227224233141091849663254996381573008393722562151038165709896644554115511752388218561839245294150101034693652284752146735117224685833049314354281858731905198665349609563045826530757089590643429599471238039240349003955754606982393550201788734730409213580695447657962528985173218886920210654226819704856237161418372476427409891226160441429668982314429949583675535827358685453159380897447430425340831705368935416758048823708022745849360371230167663497760776983547021671391283379017660407158016840756476048145970915296708754729487798813693517312384927039294208539210148686469472255977122368449870983678069640064348403503031162947047083348592184112464357812326201734235397669730557480731859651629392610298657795521166498739212860293595375227482150125902822952261642580275770159999626540495952709641866308430473468897590897776212118167644747634110231760535518640589450950279142699070016846122189779265174976037219648878910357102780437690360077573325006985344742182823491656794590411172334070721985273112619488469334106979936247951064632992467893868901918480729347955183425186307142473436042288085078787027145417844335409191448473069540866262391400700562621394446513601080137265452286732498061112591201149703195341598725496139108053620837828983158155217104217520150267858367944338696660638405509076531761224584842871896451166204065080781973710720683438709918726133741260188432043374883230801284442438395283651074106459919055132814150382492046355283125252277155282594351463199320511671615584010531492380314980358323575383860508466454301087673330595270952845876430395628520164002872174211040530143042032859837581516589669722727828911593295206634151276736669548934882981432775631168722571359962394440336857238863624104729357579506421144947298818474325585290426936213937667932231798520690433327307351100985864606639302012814196294363477613589906391892107852774796916296250096494885507780005631841234980408418902273282689890866273243275302863237479926414112515979181263780535071312312335836049285386860768946776193941854210218351332808589599107678576450203945118697866209481927734373519996904045517054473561724101675761866612809170125310703745922684102997678696557540195852239123858139300182309593147217682913589203147299385963745752668886446791604876144255316085272369691911434091975291458508637575065971648152909906492875896302826509034626325192144664952900695482617539360001704585240567897863195854047331791798809176062192317631089223553778093718129220410991687464106246177622781628084981208277867814613477368656244035757022710039384392225183060081403943674457089555383323964876575098129735872150531801537167850859654163582621338878138886757623930289945165352942273874068931283646176922373280371046988950243273598616713260204204485544845616032494781600034402479268779039421919580747843198277272604573045837017538657273496469054102042651202342914816662728345411131327068594005905820381517742959753502982366932122802301213203096054780108705548898415513350991523728403782559969274301610207898774956482787971216167361630020869934837380713497907060572263868821046396566951899277139336521728342998199209815727669709848146995650404244768970512502403790337111285141227864268530916898608087839161328415398292775578760078752322931386532836015848643169461257185501050691624554725140792632446087439208416571156039095744911772320448793153513999746548090797778850480369318143215013953262812639070020133224631233288933915443712263609178425709796591838229191166277886828973743076492790643215220473517324136863532861385964233703889565397490615250930300655214006857105471821132061951903938690514457930293925793306509290800518442690601508072069132046352330295943278310002991554170520676387872185963376256219971757640755431176258461801898734642235406407289001390227881709058680270096714671017951223849091274502057513658026957411517034669884935551929117376745590068316911629531711500686410638806410071232209685792029463262312766145648468338627197553592990848852350577070595651720408456283284200695490419400852288277433379159178651898160070300135158537727840696618928039462345071703825748234029839587305034341666760932728392202060372086397200107785444060968514068364228740189463041278225830085007614916745533393473970065480606433103206970256493611399130105924009887960194412031070489445001437462988055881408709268479256863700710040538838589490248804420754582168390056192326206492388747337201008811252337526926150236054338990400008485823864108154583861554798117440910427268988029973152080125730468275546578399674572283295856096815028687216615014146544994313896728696379135276868081068217088022731463759915455353976320079387197284433999702594402719746354660390693749829620482380112890658463727522024524240558295699889670751938672557840740610244979389099845115756861484056716870262828679577583558496770875032023550932798732615322572836983665236369880307810152710868763002985606593820263765105726094144563250281624165388963989919271556036470372509360524608402243178722824663838538530998848695285625453856970403399630163226861266884033626828149588660478224921701221966395500640568248159691855209187713720241579519450281506059739854287352892149008489290023985281781030277181540432987814267306844210960377676381341409072960817494016597812651923158214196148767557361567490562125146037964359894096175191950862122340395325946924813786933219884921286197273492530262170076272338921881494436853603576115114803477774130417227063253522241711814902338646927437118646221613187589104585186251954545667940596210790472003677022221749198429314764995032327330766082126793552462732741334878871745785507558094271930523599756144292514499616172579667028349610611019000876202511254664047758307574631472971049199928977753010640739167248394392269335810446938554387838124550474792985128319773243819575644242607810229570490192536072003611570223971591827542965431105129568013976886197996419894212262255418652620634785774881397546312962056500829169958736945491608100217905121724891729420399603246402535930461841397684892904313976828503076466237921064481813411363982466845849043212068141257044287193042968917411150786549329316219803069411458159798401789086694618611418660194426766290193329888183494569189696612672465961400490883578377882402230519322571604544271881155063662491986599575392058474275970644805484004729929474055662399230449738558623985069015806461830554541419297002986195228784421527902709400248399677241385625762427669193613543499770864518107571134386889030227475865693028842279109560400027581877416268965073222018768880725677993987721015550377525731371353129708394810240854416498059576933183988573581839633590653142970820321029187441532968372866468839266035645600341743941177450150543806555224156686435081552641164266425662866500245208484863136252677917011976072108145884104433337555587901382912679026077829503924575154850817379090368970175155149378609680066169134372287452175859333093572807549465957485633612074184563855226333548049193582119509875926798683976364853574634996996978677263368188001881388121440442884432501426186219490260069733612553620274210359212053915020011980738126069956304831685389266735182941380907201317615822756966228885233357002605435530421962154068460518001901559360152278505410868010249407364097963661424391115694886568023149626287757097070190585287315258209453731748980353659618349613513985159179883670690921984493986271778188681395954696952006684725262689314331384465335974484150415824958242059268192542950754159964589719605012064605220357893060959408826107184753631362855283226308421489822731746981391915951865374759533289222606555734673950362921076668377426364913819024602740374766582838115780616702290724997095983020280591557350429146003344286081799207410057804688724464447811474937668570323291513552584679897767599864507050429050920482235203689741554093746107645421079521478672694334837351672463908070060551682245033287887466274387877169574239806462453601441704224173635052169870943179169677863534662597431591452317286593527752481372591848961231349828820760468727484703983944840699070696177454448263754048634578280656888517833347152642647202533066551957002891065458664590317174292499368730905046069256477180011941685873358774737865108655795054813295659322631301063359641289823154739676797888660495248006952696300142243548386892591160871687175431309504678133450072507981347810079686313939297630312625867790632838321039562440152911109146062877013019202225098654093380354444144241642393750515013577410188979350955902722622809256566981966695975773592305211421786153810385699848670801124668613491496586674827081175206150796111504128376925760987952563231209544047270851259125481679173327609198504851589219876362565938763079273486168085296479983505389909771649088815552288966511876164082146155063552172273572857293684808783717555207909562788905158126604526545827660648194764820943968545465364767797307970055016217435798460290391043945634723031634767631942340313447175632359590608042922409129653937693793160575196174369796688258569866843076513940169911278109249914801001332276392429320816512482222755257440001253256550830430884392836644187907393038225952731997408122689524209912407564937186673768255350031083769040154244805208668128405965676937702727929903463538976188523828791641138367119613881866590815769423151438926527580103575661150238909125549427597354918159640452210692930274895888329424471501905189638252032154060017720300935653943914766701516944848128548002607986316144661743318206372124955566577464407947703331986688285463725837299183302828020495167093948094634437633683602190319141990863259129223267621942250515638330107555661117096139161538099265437678498616202560085042409280601430090152073757971345235706467707629932693663835524766946072448669948197473404886795786823127829383165312616663257350300595891173227575928930526601123777467129048318290278768054759771276375953176834223943584616825901558135529171385116003285956873326116972176545094226023529811270968772620452494317978425498162335897234321295301051512550103480374250957072285507169125731314144896757099401416988572045408094080968924518346910350524930495434756469878692240614836354786870617417743866471622323063098219494421855205625185451362832539657126901501031565460448326728908702487805009197747989789597613634725754942267431470443171662395019792504813064661854486374206379882498065904697981493621461049706110368227955710232068212703529925763700395850931902936621998517645695659678757597292794854551066044005566938695655748771197316029764294966105430403691958851139976618007737042364554475103593083526927761536350480915208275309473105208294422507741318250934111904715077336114979713396644895130245006427549810761142449457860750199440621084936179525952134668928919489634826425037989053589463642423430529967190005938402003104412373339848609102743598400665696738859683078299478981157617750600341240681877632107152462468406811164371729806453185092474284180634293564640388925383213715544022913931668628229110769569173900353954335757056749646594638392730578498626890912169877639539830204579826765454337732762318602981959917380660826344479105987557278251512431986336016883946034274334648638705491907103431861485653974198950562662641155381225592075368141503120210156307003313264561868973176001551829428455819667900619622844503360941471689327927842129389968279876583912489113008830016111431524247395676714853924081338324837456368674916596457735457417916712988984729438641359097633248443496247008708953957313622802922734321189870499068336071297433279965576102400117603668202648418648082705303066982539440585919456097317405109486732786859973109163062455906415951936845614023344186260167615978734530961812857498161202698618875904781238039691776771540008892327810506626205886899808309519935024275468015627303729732113859798836321669051400967185219395037458287925044639754751225058921956535514263681238831998383552945310426167775560347366111543558810292175992544203408948705860237448270184572052361688109497714130344689782519328161024532321793214687715207352654392203178561022733863568761482919858990446495096493157015247190741695482647264185900508176429984515942183745642964392622545169766175615341249148551815293023673042621620617507110487445931569172832302971156870999598773999981342509622180367671433217250953553479167497242250705371764761920599276120961471733450914699350751903863167700212484754714848932988892357607275751783533695238328538689869878107492421317211156774023372208661820357762919070729078931639328155275064341998124879451926468580588981873359801695504724599861162820291133572567748111763858942478323977770487542349542906161372416552113255138498915649607548039914999716447519161745715505136285559480747660150669803612449280619394739263056678485604203340859859813311226356078375221297833835189197949700901455278672791690423796285075247617926083249636129584089784026913083094419123856225613363397153025155298715281879482422708322563077739938522136700151693111838622238192302935467327477972293348327956480176569633899149065794331934882339278542506193281150842303688607142877906337286881111173544858188068702353903476736264964506735877298791264115677965776207034035862142285454616405692127759855262714634557538364682976556891581883726281426050587831238058028306477775955026521657973138194612033433693369948289630554452644279775795110861866535390864989452235255048346466876812361613036137546584973187962924672942292657126481722279722652347048847051665035577580354489703166099138698118609132081741854356442963211137158197959705408096371144210919748332307008648535020011854583002024415892129525204065596444686167966837876501488072983452934070992487672877510873807562470891046334287553393747551278878426932628937281466065199436669011143722692360415844066234295391949837744753363722603287726711872644989543163181345412360321051397887015250902596250133911985991255440756926703874662033646586453238354511957355593318390307719567686320473811846764125128725207023990347298985056008390990295323488741061339139316268431311339927022514891743046966060851872549227244709587462962055428950217282179615477305513052196967894654139394276146413147506621915914881084091295013548163704814138117282581106030229978028912205663591275504195848806441069834732959910469607118112952310879065534823524952580264543686050812737723688049575329197216668890407652647025203355641151362223921144551889600314676945976663701354748916344917793276420507716586974997840948618127867997933481385640087044455298820946127335032724282493497925130288666359489836079901706099463200615607673373706124670156550939255325170903612064088644785937624416580848007565335785962526684798718876736786926902689799898322470294629723155369971523038410539652899653018962763548329929605234018413544488585113203294272478460038220093095632062729495862373869084245531718332588567742155295449912299624098654114965134614067368515913260537228549750801852339729863239986158214340953765897865980808905153025343135305447085762883888487548672357897969766871713807517427189841299964221942680434790399856720292002854572050106012766371618483507825772702379261493920686373077169650919657835193197742539339829317438804363677661653589479403704057953965944395379680697695390498617162630134517247094541086289325474237107710829836706585101434249679375864338478485164500613978668461082694814430942051374557900021040758648157570064307285651276173751205306064772621728672959213450588012810080939344576748147627200268923805228722985688975100218706772718389350088610725921581538411459510381603286287674341530416911039370783162669980118836395219539785901874859914076974179154139292423161583375944728702005582045767828143243355384005761211193988194760651664971331804379396923875486168704834114329212973848411957833395954494743800349966857695079475801670917004068949581550729603237518023019977440088685799160114033853555104899768742219587689678728937559670832868391403753910084429378218612450716529897895646597230200988697738632964267063371310652903924775329183280234609103709045062348890366616785012338765159936381876202145683331364913801178511592665509070769927268273452065639667401130197311725090824578203003848619158705302346419487140642936296777564886741813884605302568005601581910444365152959843144284871892319534656313809393626505136332023201003948786742999296221641475324065040592575698755208551723352563878770252073894773564500226787731155539573818986653567717979419887560887068633934748204203833892631526993881670999410928626564537109967444014693410498995784770870916861592161169875145587371377003010612871117726513604036540516881296802638512301865765162407595327714748480659333778813721319043878401965049218411033313007537793921936410388946616639267697760348947408448804607303356857018132560233117599704737883108841015283630262041976280491032617777821402485718024484300487515483755268736904661980830872922461239838279173671687009671900442495299481344313912908400984832751162783911744508862638343355624528191536399708392317323983148801322969725000760303112533994771957645102928764334368546611916644355363430752969927896349941829256465963590430577887812023032906593783235718633798478926784745777491767947505923965178286952817709072472063373737462965387005043118748634652725312771368939089756705916048384737444836972334319837665653611573240417384364774748914139790541623162491715801850328210551369352797383173605948050053824947494452150964395621484361029043987947694168165511890764618397257944737346914521044851477496379202533295649211892743203588371980316652374179600653723183956193648334122175453076447493753881010612686753919184902962953038612714199910903631194695050527994999889654139818262144927796791680835639920464940139584619522786288114190831023887597672134823872187082309207690309049744087471646623566016760016157007151738281951613554040099996973933924617891271305321762487625276114548622709095706846145796359126074027918746839988354580514972409922203659309109793219529786147238849622404217942432969770509084639316085605736105091005689802820212794104376453525187437100233883247180579723190625347234555087822032471376843376271637833281300334328227821878688527210298145151928918137477020724275075611260993547504626637351407077429784977268468384190618147265597872292315626577846150203799713455923468537993452047324192382482478643622171066685173502327042345728778425445931887293255683654300078079395813693184999803741081536143959729738519393459979690141323006073616613774488438682121175208482615166447142206453266687815957712388977270795002784152057201355467505754854739804759631399139359913419560010729076299424528224457515307108488288157148317753953434490577236155299381107545102973479544657950980984648320414359077386225907035328925480276873181236223260745584785302504095417576925105039837977564057060562059886300084822906347401997824706838768342065620482370634335244676950465246193504789945745019941117263864916153096485488210365946195519846616533621835623859546999873012865340747134446433298823619086146758550750065226583508656786314563981424267126910386511484855126857082110802278241838401190149914711244728802509579119969635073022229860388992565293313407595192300346863635049311069169976726376505559725227806443434670703963363492299879853368898844347834046891376749188369487269518088561596523797154943416829477452126273321640832890229834478275656272040729074244898150235639223131104624743294783898196059662143929795176744176206904092815118124162587775330685507302852512697587959899065710321369901815391721427819175485612464168337192686478980606785466474860794212995939040597065448842621844624472620942925642114808951667172261509843904403284814304487154629934174730139976541427676685264552041717584694527241239034703809430569729878284760800268560039354790520458790390909773497857521334177420156188977283921861620956726954769012667074391093865888185728871597955557523714650892606746940530075689531151108034912611251177978658995093483621016486468409062419233004273505251982099550406340870528829527055186052493691182745342350969657549724566388134896452600853667435098677329506616153487234233258163213449171494283300410863361953081416257007494547436218322318495190687655572189489771714277515774433035834491625567228796669135024289759009206251526416034151495310384132304445297437360979433665989395634786644736692993865431234176932423257014627366875716199919720504317500144762471145030100305385456905609809569068499251764474395234963200158684665141904266225151532908288126685049436378845908807861140955360121618179810984840100867401184236052366335544749947491114674556202494310340732170632390082074550235634779422917175882435211321189765398946802430460330515773146177425737882404802619126920835648448943098859858098583855123532092742978143260419028067814686265756977602202732771806345913644851405962514523481693714665730596443095239891858906297725889942206206479618943977126103869669785565479646503640140717543576586543319048346152421708965848944376988715092788367998619639139304634130183798253349097019102763276463707024998942480013993108078303186499492486584272917357618700073128312614492164559807609543137058796797341206879792341379135388763911800957224296401421024623590352564278443492889514800103917041028815264212557504575886586875670720508143028357047798667786128769815620036414970968599270024967588042378662863424201374267315305397636179770348246699159258415142838701101480600624787682341162544385423706857218619575314780188680301600848886458249541321103800604067039328956838492037023188538056688511440977887081868304452765187105055407354175196772003025377306149310308306863365366747884498031755437579544483392556126551599178961644319630475791978043146896904661780530225971896092341534666149005235484803129212538676747275045515701892881668483610066943209404494214708674364929860672755107622788045286729829057284857307084036614101371912388197124386805762114049947165427902029727454064447527637031875654541093090837796257876585832571620989168336938802558264687069107225720091125974245720710339836938033785959107602403136360380152974392835966819755289766485391726023000637818634625515854012930102281550029611695391694941565312578429719484794951399456359652442310963756699787428162256470797702780292876981786618874312261509120529050497833689336081423877418835129657597430341272623911788801761051004733668984550879997834444249294293383132892646243799555597050831070042749493974349652151347084177551866831818618070708402693696414598635897723026355218277735812532189374814673878865528374742633683573243507944062654948072825698381283997376168419952660984950732107361445362179607935886867002356205451076698629084195443627280500772495332079252697102475827518011572466812989089527302199666782913117003611077507552819315971452374920678147163388972747434236113297518674493650683192255722910894962731950841080503578665869801114489748422588591769537743228731916704770377910451141646932876231418412324167907627500930533382635819920961624103199269180111368620856715636889028067409323150874198022952601405529091878585780685720151895646500858173830663747240060757572515991948685962872112342544269925167652075417592791571093324088435258018820694514978322456224668655585023751912825519702899598489281148652112657189010347678319444862306612390070130404350144401644956889152212033101211195578399076136460520493610134330107265376018828378772341172860304724240096854786772216513839841472109074697535123839889743869761985544147775722827958811786161560221842474319439143619617253157875283538911131104262943632490008270610141853869589067844917766034077532635114463016196554415839223430084703419482923311516166816240058952042130241752809404945566445935591129839730342386529842741353243084662931817826265073347610700055742357998092043156953826437321112210518513110965002062849018655462428000527863673553564417169494486285412740463224859957108621591391750758324698208448199927196859034671820666889393426977204297981531139455095242554828709167922761607192477521796224677805610923036253513749524744933651540976837951716074223829826717948468976367972723058223422357392888010278533187909378976294235416629879607542577077007570042997353165084443687063726623995537903037364646215936349086930106693684660110814268816254227169463225062311428276868687752152105621170050688696080641569791051273186220388327427476206558915857189773278670845477317215261324413298248101622129465629268672738475859143176232366167977717488578895232287476200910945592904168328892789134677840182231398489487569699231326145893719211545688395643813307124511130769207042251326398682704365834961874657425513782683284520980536094879119050630442608983406372822180669744294424101570047680257691778848735101261501131321897081142611776999994516355627800207898039935119969711780218868981048997343440214968842014719545731288745957623531410664754601643131916004613669201111770092882604553940350774610221560241178591174165372883514093034912139054967968164776061103054038343817149718139562131668083839299350087168822082419037909842441361927054938194615027136768262233143044782553486477928044186383873588947170715943876343026886866229506888140841013690535760715369882969952216497646835058737994891844856663390556981165036566740235738772293499734098494974367152882623951344030627728888934330441390726254335121392984683267455871114271448779448999935410463303749116077773091471904913786946825320225089694474568223229982159923317877212431681804474844205781251524756921942125361130426310710554178866175817695670405521917517149033842334842258172365519397203584696673605942353596564380465191831103145323894936747264615298575281230456649985390064960720698734214033315204272836405924693028319595112572445277804162373764990490053094711428973852344429792132790665900892384085093497415803928119245989446040287336404725546670326516809360913993381520489887907017567007278220858197674668269951736581069433159974127440236019303804444537367401782957882277279739602710598003833637256031229984173814352414852790481706418129878588809556260372809125972186578136245001490800598138395310913654215041835994457617755725418137254773698826952791858463208156684610720154789247609092228737898468023674601288641305749822711009706718223969168531004901432672422065499422968856600239303128362489730457373172097350752781545067499813774369272228954295183308712726490485572442757881333567172497780742771240450536139391948178552241264668816792402933416377179975299154432661249595139171211187937918208049722526934822495743758547143270732846383933740024155566652391538623047588078627470424473910804772802034008830093407323932923601867471351554751741362981888713449730379508138066837152635903329824519804254229476705653823247195150727686479232798952540977327712206880669023356177684589771347348941298249990904179922644751898753015738534981772938360810655135331949088415611139656218717500013746766682071705289650495959600397449328275477049406916983001042119083352231431691861530793276483256756641001842779557570327116066713642702259674249857219163638544125624437013572619509459892583627838175716758479138119052781480918559107465314775229429800070528397129325050396576241546540534530198510513985138737085848696189980234907618477861848885301509170711009555354850142680701061777305407599761849782225229332166403650107077527306162702088885453014290150891885945949091374050704605370266177110229585584634244938802397705430588527867585679596840932542929789470228610154377315730977320141272290787497093535088151363760366827265807197683969637165965589664457016774384431950968882988721395928230918420120581668397877311122122931050412709050837091298518813874833706079044527027359028349750419854496524297351809110718622126902913258796233773362243222052896913659099145948415507940909226879656910204967589443027790052152902302526151642893123898485564322575858264013738729583296879711083052888872721997832849943266230980068872719642621085307311232116553795067038577719192013118286681375355362425558534336212589013009909589864085745985818720933402764002909874044266958900845502345790618804351108717673810894939435798653814036762054654069303852085739552720298420709819957173396339494743337758664466938188304195379803762530660342012281662707948050094967717516149161764932057850869001790804740221657587074533185131853786637205815320498331378688071129681651427130146702004081286289113746906560164291417588495156561794985010558731345459142193477325167583638736045256924241710072871521399338111329053360924058106465670213627202290401714945410806370387122293464320944940263967596456979742266187000425142020470080384038338807436363156189594750405135368676146705821250610620615937974647930983062361672034343970938219665903751545786435151808516768191867820465357589088875059426203669806508168207071854110995538317092993473581895269071655531380195324408785410321494987475795584935194089691050606636649793833713408920761401623601068892005910640169721157877494254653149724010491862394929557927497417105624730139461590021765944046197852383453038759796427416034225146476531199524459884374708834797217023745265983045642125023706517666740971128105525142746405817578848432021330893159677541735977737985239081653639337384788557431431404139108786470853664369198561469082535580251644362770427264230052322144231460560686915095426999549318142947889135277338142825987520162976221529706149285997805757570813593558815666526873603192965074668643660361076360855024205777234158512111102718446835191182893867187688109530451336120579237928075522363447206111811837015264266005295188202236347837564657261291611946017581907646141223185179105200640109100518310221245348326200880057695188243511431551343204503255016318283404593980428614137400953370881698707160206876814183192481405487924353641609411696711939650767938139553142976224150651324729540653510235371032946553057609171773739422440388840146485699080209194023744793569678512853638825150437999285775116408978780578078710738925343613409496503948911049281494850664249545040153782421246376941562156441429015322469376326173668764714448346327663193710308066852788832572626541934171477979441807302309558632196255786369633126749915363501802202132064879657657622254042001768741854021387708420909099643365448152656818220760495758261168088044645117037495504003582897254275920836563900925519562561131911731630175625798930652776523650158746316184241171748206997884845470319917906970673675243852633182028826940224434046845741876023620881228535730068939325408653787612737841245986480998053924910611741374028631785013150588910963769440190729434604353035938578505582781281156743517604837948418246196865916374438154288024870539158139707365467791626414170149054463471085686224741271354177813264022976672903219872023782603349909988197585465091355078838456336705499675858283115572282514053300015550938700800693044296796372660841229879897240086564755427838956979295450514079375477592726889469366547523597172972872497182791996589146670629913127058842826648144840488405743869366122750072417586591977057339957900763929668655155345691602714595240108532805339653434807626863209315486810425978492900397022118050426611571400675411614895543716340599209469099476104619924654304040227589294084075347855937722536810259649099553467691682303767791415480603312515357907524003082694871569095427883052830939105433387340897305285436852502606138656811325285814306599233360618335438165346471230069259346942905840197069663837136044918687629041844609133214344625333106913253894111296820502052104178577306887928203672471723551636364745736704310047609412712936721770744072914103708600947318684283139170199584114193110734077696768756791494285273915609943078841701363188394588856556280308519262150920310446087220541752517320705924961898463654726855331909752644619631705799723606758859649291344216432663461221562881546367893929061914381238237241165359829671727967499973830928420118989497935941517287530486239410531810410879449367078257002208398417577300394033533431358096266303738749901286194065495677518029207412474824791945884492248104159559563403804502987341301131172262323655228082399195279752602073732538644199105980347849838499003077853332199516123623349837651194290480790193244696009358911784030106697568601304687936879966134764911573566654066388601261119056367922985037925828138792367642731575661050388753365273930892324430629960214574239717066114834191225871657561820944809200330408347077359231087955354710478152862496082727840988743069135478165638200093450767961957925086210056039351863428374672685402876466358119038868462102242498468545043349450698852818343149575212918288038793147920841411730957339551261573319735809939472336673677671071818519678638736298515838599807461379120762093476892428747641427402166924316628129422021823726351826346979824700126241910130388646470392877792295555813110574346833196746144632373432553743140281797155105528222248530027572463020930344924994227051870747506034549490404987261971429928574577104973824919484132783553738272447476603932588753585117622807200124791670505597330795079902588051684146151490348137037473724558359028167993298202382503826594528724157516545774694581092336205673871818605291133556630267896249805067820259927663588909713054264271847329983710902770025774243811645221832557319498231504278295255397661820807796578010477634243388358330502153605281100881481637930430336137029806535507649515311286003758159508616590181359347980168025317501425724874321063887666104197281302900670089118509273853396356136180563123030645668316806293210659371277852781532038862003535333487369314663102573791198488826764237934037996625620394282544298070304853108355487609848223506446302091754053635046659488283619863324907988410931349773282002344750214729517236901019214513633574680156130688663622511586882594566367042391050291055809874677517661700010106770626643976991160876405072798740519277717996894144167492531416349278909958543027531778131766098990693950272272538965589593666098609094554378723543140510051014249297377143070518453652254141895359208229897611077620463615562293489373375204960517877811040080010053635948283806674239025199166721003995669208157463674891385374668552671280146630757342147627428792522656185435020688807762770183558939198944640978235753205392174356124009727152408343791837089790138327055059158093508719109794542614193968907914545946966498290401993093446357413212856785335926901945031870346056532037181339700285282434500570588007859275556831954128065147913459386739173211473858955399602648696065372205169004104354877040892993016315661355938383527516563948357756078610560478246010565966728975066989799926993051072445229070803480892831191958317731749441971069220508076491180768566801247423765690341267864569171152147722976056957243918890937357623826445421159488948460514160501595440278494773887735566903837322257298935461402810291693654291901575941253093850646329225202684041776092223546001039185892727382638409249334595357435964152246553576049721790861669102903645374686739940009728647328948483053641315019784742991352337128385392320365197142913158858883850602490060041196086292842672524396921513067332221506507462878731636425224003519274297052714980510193932090339540358106181942311115767588284435305676671007496238494782927639969910205392537138748365859060738089523843703380337113444750305496473027339855260031418744391693920599465346907029856455515457000729160020043677756456865773317983670933653207388291173542164288182218147782581417455768529912684648028606194183830229394390700181766449458660807326150111003057020406008535362175588088069432252127109173519128425925945398479128761221212548772723431749729161592642203688173411870278000574736970170682091298300673591880388165360954124523489925862695160162615299399177825792480695440263653368897837410794102799616842966750288795070465494923273011571313656930715263780025599329302837012490366477562601985942991314522135759075779895040967161098399774569136910063955552748496929333462063092664271858462371828163939480097764301428002635372050339884456684714971476834120481131926270279306735071655708069373666407108210892722580340268406190597472569785375923786882515576012442295160126661229603726706282929087708683023188751891422121115313706032404929765003963060211125934601124553077833259519568454481273096718013097555073011906919461472992750278634694676954064886271717788085682708601405591376235941544403921615891091114194559132124508767225261622703718234061660823901825265227861126922638459831684287474097567993406615707944107461994406444916094403572902587501876800738919995397085066461210787086592750853965891606848152241720670700788148153795577568810771849199087513160140712218754232280047183383888872419640970054938853957052574685321207741203780866991610600240373434040517057670357429898544587068147958894435645580327513205464143850949668285598323921983758669315818805804931930011934499252310944859281507676146265668776035114252271907016083246448128163584426167381131306377481300036159672717369684535939747613925504193968450441594509282837658783064812440202839820944433962813595528657189041808080117558512806915485326474310183967311011148086351681363609204633235845959179109300003783689353653632981137633570333698621199935111271037113317422950548755476953612468200115654798207081333194090569462494093785044829130151811077071966259145974528418726595728489644227373040807631160633471824565799958776565998790527179842412305458729357035737263522924158565536405126417278458522117993494104482455466084886285958362541972978418323220566263658239610144006119895767439217610998136358408261384571986972359050676913338493231728073491056908804771861807734829539561636857108909131572738395003954391782835732855551694648776639854407723943793666260144824966514830897124476909299211730399602680184112363136275625562332139749435840281673115270210790398649047680271513559253954556102690538209343245769419408872902680939263984326290159162387953200222118339862426429079164137179184317140031822777758542422052491436859378346946003842356945854468068838729082482641009542460997328473296145021288181514511271581038085667444538710450885654505490460433352668804782884964033486649709566531276211266339894784778850716189854823220042314976467180261857365882340264596658171164402155638407345354993117722232216036576341891428939675936930239449715484591819352627281834864134108890402253172391050241629817627622432979093442178220961570197188730619620543258466513804461393839265279509600595487164699513536065203563524264730245507945170938550139876814446209339418831022391549947747497404960543516507650745216021572629636328703037021586937710203146891461240323245725966563908842067023939423605765908291593656265969753394744155507631674491313585207892524681896717998922621806199565310372732441746909130137090649736299294839817441515224009401159220567801892387664106727879130371703024083443840822230827551757888064259546880596627983954167139759747123846404697064003320997846276230880253901101529410653793053139039233805298046679613351463176202604733111718765325799005555799481039894835166805633182311175954594036424753192963355275598193937651987104384114431896662146711213922936998477115285241267004628071974335700016898350944036508373595621644392807665594770676522642636004403211921743246384019442308005271919212746237789183639811961426380380278552822871420135454877395387015728322853712545392428937845694142349708318896327040709911914801079313674029258737110718207053353549921946001426590016421605344792264100982621328107393588353289053145768990024062008388919347829380665872299873176500721263225557915969141040693965750128408687529273332621282553906235371504756401418196414106307665989844076437661521768562726853299663984904879078481069921126794285111897146546680541932757270898240871143824323908464351731813015074705575188757878427202607388527781776934641740986310068733759532938153440576981833470233852213268552178686204903321454346439440030354570447444724836743250986701081924502481593423626884551234005824787477351551975471770912246264586585320224071926518189442790640292014978285889136298437537879256127491697487227939324969398762669026242468705878492850679543244762687482191801524598763226058840757065118829775317592323136313774591138183416091042318942302116433167430919246458895818075509918622410833480806137818905588817253693031457349402353270268072444017898201980268292708460325169988193429709778018280041660300515825625097914282762431842579477730427287862599836759463907790703465554008516740985254100597986513826780893356989631775178340154988437825595776070708628301835466302435271198931587467602062371264408380533774379813994655839307317339902339749103124747405199819820743518168264986382833922502361407270551168195505372659423350317921286946921194784975720560233410698932067282021974524945705272917007627772478974989890062835655561309566307796209457297554405717710384930480019041743719150780348426925535753562751862652019048384713786080113464746973438207612866230541587482829430655310666360195615324254984810869745871419568178850356287067441761911024713137101219281896834743739466333313884348937494613058291144731546434185497127665599726962589790994634450459978111350640833818551490281755327363900848458553839549165541380918031622176215150902435504010363703034845462440639161063384265043839017955219288590875367242541582074119178303029694917969520942585942969048673823533514936713892369504440835921172787869499966834269439169195328974923600196163906669380320867067801970276331033666681280701385015115053811239804720481618095593754248568317078745792133693259410508663705406502362351569809830012010249192705618079531826689873064688255522723682136188851226579512825498073362044105151163037361136554674411214578432091778163281375106058631107378298610491298431844548106496743003028845557418476486358707979783003187354015313235550097653173084011419285890428620897979832632982997852251421580506339528929741235218463550587348791293325788021654638605905374116223080804465068521206896080354239264633183551254531829263899290440827507660576759639498922168410911110609803648482500783797202174312472796863963581428318249590216311650984951809711447893403778504321615523746358254617913644543959674627043175709943064679540975312631072281037804778591130227617880607330823234520541718540227729964447873912643262007700107398321673172794003124575743017205635690512160278757772304406715635575455771890244320894861970748983336147385309529044718406610697753419426123153644035626587755357951121134912010718058325186256416716773230647004176762912536854335608108111144661494571896281967085012983761617084119149721693375517407519221457795244206240691184691056710936479416023269593493922994690798060919922076073809875232974215331083402691693596472447858593381037596105079228677975697800057107231676833315507365689690164076728407456772679323795746748659889403255738945003450559778592851240151069337012044593773514360871933309604518344757980376570872467609041795702812733056887112503215747836925926692183622113064499735858661499056451055965487189198539414221020616366921560914096859285849342148677575812715875058453587845606377136389274963724098525432766818828970841009063996818028139777192829449208289385937480682879206929604157356609769439631759854702364263917147434075482429450326559114795696442924182355687543819549852800516960133204505992429068219962104719138004772006724024873132954015512751434062840230573092550757926886819667380090209769325423519164199137609800271734739579683640159395576962410026439885594879089793136474666416902623018757391156907542610689114518668960268464513339944668665313985237071231197959476664889825822255556783977458884474833057996262308155818095855290205299113331072336359036213772726458198290250616716932107133129076427597706789831267873957192507843354357260998672098116992569555830874231768164837635505994402503538961115800574743991849063256507517339896475269643419389292412279324272337323437390716919414594385595097737518118224503563416937795703362369949209766086904792023745267603608656264661351798310844172008736751089078929428971313243784559896457505849863524839060700167749492988536124109470801116473353144015863763781934723653441914270107917985281556507191201194008397157355929666744701140052353692266877120225174680624604701979786888945960912208036459454118286638760605717104010267674758784192934881187541556708970583227368415285659036344906924856359769282850799714143788188142926684369407974789591522143968138150271419208210727099743597305843170591494024779990665094692697964491109216726270613245070090036700770171228612345221399126226776115604309336785213344462459522734299999226199297088840539118697269539938329567493848730393136498024475058754576856210368537135377681482420503019174759920636988408590303729251278581777060348036327945234685056113366687730015426540524426192888334422789620180669161874414709821033850294303775574601318665013532641524028266843984960774715163021214475180521017516871887913974839900943544445018706186576256403035617220998317113153202412732444198264135290973030175464925750084294884453976429488065151580564047161467589000401792874615539356384499528132022145625926313799075176688614452048791266443594790150816213327081098909194536411382911807722204463007423530885370647955688202960451275148579672908124107993287026893866039295100336711728456146208995904183475405874254435970010540327569732577152848744703345109408609255874551082738206494813404017059047209120909985321505062423661250560005986936050549327407193074775475915972285528698615858721358227945022421991169804198198278750394753728744897128604640598014288664015647464310763454000030367997778364199235986529290912742607007120819688645164631431304395726881748844977835871710713258601526524471122325535445263315741162859544644308736563298197691729998661920930036681734631762190365922079764970071946041297614883055987551978921222117140178743498549158436114993720352183856391073920424380092606797998708810542672947875078748420692773388118873446767994027414974565741919533943631931085626916804110092666602306651594897901806658162266205999865169600775050031307354377513475266261597118612086115805643486242877117271507522051433428314986472152746370324197030901175835279899447502764434407949761156009196374655482350089278844167706277716009457360115157320354294618160251818190346352178334479027578925776776268401256335499941444809392930430179437205832129957903332521493144229521676626017988770367219106441950707484085909114111333764469097749120187770547313896132071602658584144992342910890991270690689721835192150569075981792957952385389404979905810871863252325703595090208912320480838879340573614169705523487442929046525847551158514692795389434363514382849249264606519319513464125908311370655326121138527020917717435090363861983867440583060926043800447783825338392222606160056966116543959028264206863338848620141758778949135583824265825114673973203074987871641744197429648146515977705140133057656222108445717578845796318172151712046106051227546204805845396992501240692458860582728498722017170346169584493736905903542636681691723311383129034580888511921628598770162858273469279263108071333281744050967474226435164573402554812950141914460669305446455374416097062297701597270553904193398092049959505060084272442425101208481905118045702641128549454797307753432308974069212744813410618174696760631565354194357486082438930048980424857907006799947579469835607603594533906768922609655511821579365607446490851962612458611658058717979526283547006733893425617682835561144020842391330059414058121966255868264127008911388759655668643074481805870286639560432302055328093055361936745280993476153913539186772831317092259920080380007440677414470228265071096547689975535572508792436212832102839835746976152800757967135241523773294169356818701667590010065565762822174313779933807547734932147816228663155458621636262444469806365057213522154919965681529782378852804377816204391580989177627227338787436791364245612349321425166944308004482324289849564545529298112333209610669180542924027290166760787307283526850880552647303877743868167290457287431793094633732650701586556905195757184982413303925512815094978702881984829735958557927325941445707351900269542363188823043006576800033109936769090542133130508901892228609565027840941602114113983107956162092080356067344287608264711184152209756569230595353594598145381559155195102926553470998054965279530976140636324475007071095292314876939899083740366957251033698994484872079048364406513420743529101230029217624950824151789462641859090582683854425228628043455033902469615636245974940535873550144132390173400802568957553689313476749329018341493739794167177836239178621366625131555556260149445592044316245221438689804520206287043065580122633294829145090257792033228230200042089275375558838229454554920638225312656270443194023711501415973591406705997775440927613704165582784312429458948336739955313684448950741707893756825939361549189747969428288886350645191381776198177269428568109977341413652676818300523507460438306254099079885557820160057360963308043035255255891464981863312666081194610203155398698705216106187546656806263704380264226690620903137300643019381547358100282879286279181848980162830549400955143154584920917608521620843246536026306058692974385050939574842749173297675726138884060827208900558932688376545758207078719707979870172860019533756817103642841833291031091603399480838996614689718377080616359621735513582161680166462783693657825947770175341136520459617712107333947226185654818619483682708294075672920206938598545574796925115770227210024178968552490694021137464346954736423683971801576557999352098067429196958520024429124579501775013078598054298285460101152711607212600472827217547374058625185421866576894408126812581826859444297351374840384415583179341177263640642626702659729455574083892116339931270621738878913590945599772517444180628217827763600672801668033699746312070439367250831777777971783278463797788411058301528581625852983304246552179291013271743641979351585840632358572586948599606167952163564486893035935403574619623635611088129480294687382268412221139113423699054506778983620379239549183409015972132780331612354946557349218337230290598959972535490184948810410351018430888113618909424850016894370094572120809612478459045265293611930515148837642396020439288630884598831686376503690597456915604193101800726733329561326579310916267186973406165761289705761130846068100868316663087923767524571761037649826956577414177368197877360757505513957328125327721935971332574511895078722872996771196109527641371428799932910759722466799367770290942259717761248009112870974199077177728449522125081688178658675323460253812153046344092782802762369135237628450694826340896644883925715960209374243973310114282988775490493842384008360307210170906265315229865817539745232982683500793692868423011978686968926505345761525976388914835353856107582565816554143262792181247175589757692890598098194356688567748490920096451799935743977267588116293743518278997503808793948508374971781002954725682068175985941828058809384777149016161133430765457629801930401349763193023967425742658598960120861484851341148276499133361156657654026734828645117292964819371173513229019947609552746264687634649832092580208918788361843320569620921532396232145902651664030215095456778774854052126155502313551095065058684979210624005413526959349501709561057389243253335952415730991777552771383143057749350677030956399414633515583291814773374809895467035978666370003722059914228365661002415579658613069839365426275935078941656255913971634346840920339661789354182592070695440554349957598315973780184593386660658718145439338813647459544794666996325970552465975828749308619560019254340369872981871596381075567928987968937972443131101806561269961426146203383705684433549490956805180011351140050485463479853029343143769971611017076823468976641398596404272038093300930643436171661740984811606283744412464376912667952717309944378843799306628071976626396718406439365341410436055448945731145651315766300457224565874185297521962946246819378568329677451148070299696558389273921077625888985005344301374782767208452694159011845802294277351848767738664471363373439230632012316006438248869081098484079399572777187477357358448752945964404787130884842009128433625790200990923343044891791049229586569501571716728721060162821327403632693924949106140778572155813746154452162180115083282709145454108445519916196212789705231553880033158449654004182031186274796809582876950670303659840929254916397329569412480399622862689259988122059225631449962165104368217053264688811004420924722658221385852159100223082981232915239004185822266944495363130377678840613828848644583707919553140922999969997745773102143011372498268069574202132460800167473324479006347170250023362527337353663111669453571941314457722114151692290274554615488238212624471304843921237610751605625343868987268440914990637692010460538733580669158614524970409848040578116570429562610236012246740464164982804088729368981368125696474964855760773830694309008667104396866555553139833116141429937260263220438945937228969351095571052907360374721441716827202512283620206673635237880597549970751503831089784841643104663919808440889547710592399717684343788919354240996928777021181416216164864563071659735224579001859468256626797233957647907964063005119503071899197061693786859604802142277944230414161077807982097110846799987006943224444158003435051909181069570137737021448434567786838817989183718262024014835545133995968284201265605594813823346197520797372715113060101755060103305890673043032102674898845097514018320160540376615793905638333075687733562552673948670336250476295507162547285553696297371531039941334418337345812770769175206520169223248749005136490563197295608618939291906401698514096299941733818416149786239337704326275983969240221287593723907896154594651805716769179672780454556994749947352554102783090850038655976471712243641849473874422966212766796518505451870203122563701833925792048090062684869220240964990729387542681320689118917661155938962611124059267645550165348648708683907614007566312152536086008300568179172306697865017637305024777037407692443378265846209366821181354577461941421684175994935087557140358023960147116698260808901341062587097171325139746757909813463533486111978179371288918864518171958871016781281778104914782673160900987268151018737195413018597935778538299400343282316621503117951716892038242057745667049508588284660057193883353818985031156713240846898566829892012575138318662713993656536580025212820475226872252574031728328365995303502896937422597736533410802343432640559355518378085091425265410878067695685016177216935675431774986756926127272873303038820267684536518629339532245766743991167154166661250250363241984143088309244078138344560809007746623628769191871315420066497807540958341548710094538590959138156510104912611305330966729516286588143867061004705500609720445682985104663869236554534074296895091154916831634055060410679426184650854464221543017344377052022748833055359032526212234796074740847637961921149998154612711645370306203754546541830228612613371437495368685926990022739064128154323411281541001051544783518717642648390253690368424697933347171764040356667184527823455486845410802813959863046443658047317216887564703130048818189726926601133275048085138229078180702421489801690271826540358424278398075420689101894193323501852784338444837340406937476053251177791331543849201524231479634790253941150976873435153394170084203676932194930565714332040007757902128028857006215785762699408176233285777052615706947605162521191847030120832015037833760377903670264260586289583153777184474781141274604981962316086015933487474097435678137585611495118419030193941583848567871422861235615751989083542773231361535286301134841502255902983049087708798395164561605081104799647281212996342601506243481122869292682255046425664600486028792795252909024030069200667362614530486267571563761755869932350019638862635662382863984244815841081883834088959151521442583185125546585642858411732044455864915596406272637049047876957493950468800905094696086980371102695963303735251338679366090603696611325124345234462231445397823637764433087233341894751498867587244067879854807287096504287079042629694199639650664554044078345100068565785535671848074242702710336382028141482755526628131036492805712575647384443186393553426718608094333323217297506318596031190868642057349927979878315267381397287612510754977495059993758241367968328514197240501298872409826078021293957753723320529280762817230034989633133304304372232277842946387902209233264338363497471444618311364458995289421542622770281136234396702211803717057482914621935135813385101932025059018486771192270077640215303281613635215253072096201669166815913514713641508689908194356883540453068092663587871886372607064289093183624639739719531984845633030680732273453832283686909593047835558811761122131699636136247555224582404432889955007508305695378371040924510559212261974439824966805510827984070696825190618839758220640226648318190403475335088601903653616514924260492063663870578009289399241321232931930028533877118386576857898341663263608704561338714217781474342810043320795943429291770048373045853039693786282818033290199225881861162694693820688860957646285663985595282905560634885770069919708063611004224334746148392101745431572159027068236648881350862936973061762001483126624461425627394586452052209199190072464478330151034241180137242089283796494874894077206180858634146245313789042122417182328450919759915383645418608640114552533020974257406811907118800998659854455268010353023019891615092817137232734547649088363364679284231283691576257728613160233095576531277035367264159333901139779663555532537314696056006274067307119324478214952096505978307208279282194062293632222673411765192468627028650631080549542007547693111199662656790110576636707284893223031603560591642461045811175112530582313295318148918875646267233800565449255266118381585755961318401961980803797917885259390571095891953369046168926714459466499124693643359238679815972643556925662568512140595766414926294497413580526000326248754091847778784461882658733120448389543447667130493712549669958032874149889415898648083802138370051373135805967840898386251609079997050585217722637670588626878242169456421427640009382494878058121080848463487869633450591535903235273497633738254956042337532101775755064534186191698570143001505294354361889723464651732193498423868050953678008078477075868279568103827644074437908811019447928809798528729811994669545916910197136452709546664085901033197758789472645924215270903665105690562553953803850530782407429151038196207289403368362053222487253974546036501740991692519514121930814289807679828707030429154967667908819468913314022566369718154388864639384330752213443534253618820467171286182360413459668840947773054732970642636591372576124270991725954861947293061238720068025221131584175566313502603749327641437244552302408232688595304985858800449126728779874984234610798405328278851871620428699451193291619939185048410883987283268338000861468724162479886409376338565792386999594635121085692850787695148804630167507661632194325688929618962026448137740454184465427081301470969810292448439594418617613509496280910812089891089219028550689206738065396845344044303094345378909543427032638606116937280585128723606476513730379784437460020631190281315965098422604854183353623180498735213510049450499521201048578966917158068744162866509697991167306087688572395033636582091025512843591276729147298957686901357319501616577075554016997326724102559000822304132794206435414645241456720016608688760917934856032832223313941445879869159975682587798085677780091022218195705594260795308696915011093516865052132220256827300092530980217903998992836370732100025185624673819368017499599540380786137310256749626905449230630882884888723820597780796398949633652335066250059790629012493579826943933994009148400186015701290726279528581999686107929340519269449151995606362862046887159318326819722789316558679620636150625385748793068731404460582239465267638775693339848877079840693202547010559501246644901917613872412243312473282014859499527113137794938213670179636168472231010922188961932399636962060279005702477133360530791347049837236709125075848975091716913672629136157327266255666429098493233029743910454305689307316217781810802023173072139154109280465717157346190890808056627288506408389602836360306752758672384872088314807526424130030444371595506497950051381300889088053062983980649376235059954704661940611664460543982798537474333173983578397260361428069552052995412457951190903980915930269390181016712184384783465474262251192376640391210092032863048764539749193471739727775927584843482520218513490845773923920948132024846442295746212105979999686835003248397807692872223009067636443126149742763892413157271752632156895925221011505811442993792965834933119583465968683639515716930117702094327552650134574986227097320883691569608837073661920232492056942428619158600638679059807156050227327474008570535461004983888843689598961049572162844918401901752546618138407495426834543235316015675341123454528964150181049483938983648325560716366956875625282469552083126052327860738090996588193806233511992633496814919858141522010760680607989227373936576476538138675382215817997221355811598703090412300361634189002414884676866791955184013893225696091061157029523302000141297538201032885157587866040538119795571297014706476594416134326383225871105495167797408770703294170622182362027358156811035011114648211784477939728622697048898193004783364364325765645582612479556785688728812005208518896741682533370695931761641341180555927200508308789623498390362949913654772294985220209816346501432951957744215468675453773652193289897480643252856772943648632804810732213389910321462181023048927682552241482120961903769102996401663481031244948721824131431853100075187620681663103906517768622861813462359831862741295316520954576324260692942889324772707702329477722032028539519407848002977938497401821165088616364294304237618011118053777796589967385363066677290876898547952565893901954474192226085485690291367563328165408766576926270620656050071381099936336594757842778193192731447820929124830627177028058901652937942777240992736891463005102906018817528544269374173921028997782829890477930597066654830804069455791635255398102037112619673821090810873410680503417237055445463907526730976073309777611239433277215793711988679249092170799015454379317833154376759757327756495924197925063653431736610885740529073393724119968159488364439074052158340081847529248012083665427879937632149993516844670131311340509059957145129250308815808618653015797654774683819041246644070611572867691507696392864768729616251204061328362904602765209990360259968484105526153005329101920294935292719043055236436529267022960118446928317610444518702051241172071166350824576188991007782482613952110420941991940140432285203053925243854387404979137848337439029518291361083607799087940876368541963663587371127635014330066451999088393560907734361033667927989832497214151609642267690933428728226950329304600695781873067846036226610428523152066333493996759444045404911692443420806886452979116676985310279660530082508320438001964434063899740228363987150972122785476222526528234288060389309113056155467142696170154682072986045202831239358670000368095322441948992414406627988542037580598636716846393731595481844664159700933068021582101203693420918172382669198085744862075795097833867689521626378434082848917252613676083732496340540393514562436419965666510137082079816739028173280574394160032164436952770412530805523828387788238041565983429029987324422787246616327323894387075701316843461993861671141672813450646106397454041096754977310164570765772662920447404846820301524533542365799249240566602627558068783440024306767246454297911005134208312017434483385999596336157054204935698743500158495284274553389610092848337370418190474801280571391210664936148644391067185754918151636783391069217256551887577567418372783435555907860377481825246220222485415815557885169963705041655057619266867023632864166603850194480030955774921273922353305959109573774442440675641683115360618369656004737223010433124111295616263143954465480519233436802103449908272573806030721492424162353127000843757609653607006504410414120481451404501020661686635826816818602708495291595622610269189454866062410995646959128757296429254793171439156314033447364121920928195516492908589988446921189685064100701030375497356598758297773313644373169943739652621906455785951467909392439190998195951723289649079169661921631345464205363068081409109469249829037814273338135009894636106391194861221621658819695586128856669383998850223423793624128798581341630766400471722683411793720514866964016322069625604921208422583315415425945613680232145730994131357350799464724343402325130498341704200020158650716633937754264478694509984031323465695031206349578387725407963081439934611773919441395755690888818812005437530561811933116673375745392240559437695539951967124775175486680544660093817062424994672305430471526437202414017889406717723576728967517932839870449024894146404846636711791046117924764698727389851284123244210895873945958942038029743681584611248444448032756670816909590929710108862360160050202644975630227841647712752710730682117350141919341376524483331711920125126873696714153533064316923988845036359973466359473488301844047204816567680528088809800741914357718697092331832475698358042351058926775897036459332821610864047110286101244076900668425297515814583193602304266029655716439080730708034094230527090496394266322732391942554055037642232717194992018110510618810686067554909798123509292296305822297095840689337507751340876043766031661583965558623045389390811147230596240164157210058687491164821965817880532106174465555142577144097169066243384064225339208925073519375202091837376065808472770468570660842934168528476937381695680447759962617461705864195443150321353867456252074897228953204440219650628421109469965067369087550025537878649965212752904462652283942138232384623045460492099385444361509257715741497326193172632490113631610543817705942024787006808293069487682515597470524853596400356317556937500427320826532637398419694711462015556767814416877510145238621395073731632578655421490334833277343252848365291379657134957525252746980557563178849774954957762752712173939826018806895051796957077644830414750183473674057851251970478203261509479157106880863613251666079471949537715646136417851111306890740610296269477670418813317971760235389236807598073303925843894605726587845190865385929660046834678056697147657088946741529244820599044903391705511958655812553613437297761588622025390620196975223642908414760201476368684990167603585416325300269021126971220056120227184917950927814600619310058015205623459414577736124612777134238435783826369075406773288149661698871801191141447604742977057967278873929410908289548959194747177929283822904215490141967448414392506211485825898042064407761935787817818901115159976014066403736036609000839590375530628876380236102315365028101082042277767382292231628000791354232787132095952803367703542154717254685064166626561501237831368452013781795895752187073033522512545431470803201106819941836408450386689822891748969631088867364708268316825253055797954053129104416411852480955792833219394256579496509871000243190002534591343602005881374294401528061443427678397316715640963779818806769522686263121303255595344050976611052639697262878880088594674230948555747651148332775232138082511587162405781950390743880041176160895620266552286362283198097101356169955466609922023451630788832268869291323111621897986987767148143521207073572154673034227578240085209161471214204145675376609032945787312967215370405501448969530919495825793280818435097545088285458758203544612291075235455054176567673492732900448017579952811222701196840727555474777989281701683811389703180524569598789471524429842591612797486287554421879922877317193857043360250290182487469688272488381957305986878669095396656993968697888635262137221057246519565762185313537038555383798442007253190190888139254831043285558529285362203136891504131359935751822279473968076660114937475066810499444081018966893166120354760037438158104879389833817558009855523388963033756707190035413382177948185452100926419749332045509388119214671889250394005552237591879094447236633450051900758946832133950457087698634553546993461234038820259058192759416453622187766713149074445163773661463674619515091366185099365413388920129019317326680337822165576446712758281655227650588262523242218924943314209358866206404760431363884126968068449173996981611200063934433711832416369247624980294342715161434522031371680227069129815815468226045200620370598883400254995771991948767555318305100433739286467519054236550831282446503538162785895627268430457781499596610835474763328450070651313068732299562637804763481210980681522484349725679416470638854933712876195342731973979452683997148165490856016475264842524282010192649038539290037739782089337549207506326593363783911355181019788455741055665242824859222856117498302068633504904513686830555362695475701882925382554949477716258667215926227478476123460236854990663833342693550650903311827704379144816831714065950949147064536157473426716512558072087457149095026150534332489581656925995197225003074908859887252080206683952040821845896693663372842119961131082819363006871821986890849873081477315167681094517307743350977866774379181764889164539926713042850898390264022674291287386818630247558928340203911301511963671840002063733828286210553835132229496421574423682641862930855416212831769142665608051877285077439881757000160245560940997924223075872772251403231519319672129480497932569970419901240336420628783548374468818696485800154871806318819305368836534226772506983070298757638042504014454190904073058233210944606165390045880715977313198958506979779270773226856650555246960895745515865231968771315092446243071414851874582943559307927246341340897723944489245194022142391664178801481295920412287030337377126800958683168169875821406712922573467066378012802856454552988567190083834165670172882477071619928001298823554996238229800405029474831853838240520432253618345583887658634174914351042097279856210943363616609137207842576885681251290888037057296350903475363728102649650330377853900815568660841746443146486807403393402405931216412413785081136577374830404178339322905480535827932255346524798534517957089158086415581558054177936687699436517181588987272297739694637748266317250433080684684391423020332903481704184666097869360268481031128676154408188875607115513976355878156877636549685804954407013441448107411512279549841845502637760995377950344602169292581294195798449766352202017627784112622980383316705130980348605874643291882005341817570297112733429022332498770381099467419586275666011253724532289477273699524226310278038786631042954491408447347467178661119144766768791717766143844136863110396501830243206604815273896672314401940906722280820198958171803798409231238531334587930404583327370146863422649888711283212568975666316689257215669339904418725883497401078933705984554363841084072628248641279359182455207599996484872922087846334936605341882455726757200734013028838069122532400356263458339461914355429447330587531379590524312111527163574296735970528287377852262418247804806798126019559401840000131947905228888991728480940756319899345684743783855992660472330359656460903473179256841221873608794307218479472443024071862700099846832167326325020479346366711992582131609430089725188829983619792709660058073761659291959419982440634609980239655977846740478010278563211389346560192030161060214131165676721734590676734019216868468323434360384622237775890096408242222528530618638026618958224369711776930265821619236837961259773112614418736926702443765518382109453029881505367116381007687255650726123889650939415861466488560793750145531471643941676691971590177180568420295770463717542559862711518872902886419510212504734946906888220916570153607622719129813459467348890843269776345269024599965001575111943117187866024659873342676677071974049401118215545087701237391718206680849464121702544841736706042278248006928056896392641359839039265494565986937152376082251425396872052661151032890840232323465055906672272757776536509002936798618646459820364413994506275306264689340029318184206910273084364661321242890208024219433930086450317318534421833076473931869694259323566220828236204050210672103783224002478008965967498761839277983731730462678964863449207397212601284907836303009858427114758389010026168098103714122286404507188315805501712616576911186263241686638010960858020005991723851537440196226551333525184085161475717056039581781986514550325190390110104475643537818062988664605005031173639195217027086268345576250853939755826192193275323816052739058371220123687403281588047159028416868470650673413360625734950854201965865562618988075896931449117006274497882706805865618844646763916896098958030223726341244769644484887205442352277082796065712456773534743637993841896132575884567192005949369864285745909634519025105553869953194561608935266711012089272384605651348146376234649992963222300178239405945486026848812036491407056174906494463058307282567603508336881879649434219689274185130040596069373177687761937734162967809700226415874499406392785524800567189111876897896622150443699609836404858825653140134322969810145681824762184716479101576784002154895312421141916258927252137984437541012091894276297252590293882965431672069063304726161338912283890321335451018962849677370845087023744121279976977238587799817874534315012256931509182307848188728888402246848131977338294999539553697632688618673653274625666765629806768570513829794264093228222106952954908271140721241368344493653581709440111066402703683562551500798666589204855550212919169976489708615402891921738539193598582910241294089253525208622205690266309093358385795976754463360826644628321994756583822514813691353741737213638328004537530520887789873662354626677050259169611575736229571573991697587590447976191700940115079982554374449942128925132192698452520644156322440028581710289256909698137869883907733118242581333538133786547688994196406281000320788114637811393107811073689582396769821790533012288617769366719314499342784082553864925292654990143014959389981071652851818700500232594060892963811933534969099731595053006247881403713079564965473103925771528373493982637258513267566021433173580313129628177856100023296471795707765265254301148210017843343336494310158106190347678539702760037354697265323014494254847525716996714495028798907323710753567488817519190678227248306990280257227169415875709464361680961570317301224270084953898045037637048150869437389774192111115539543067518073766105202316019861416047028539086349135059856265219972634179357415737643555794085289815293626818719834841161831052462715261816541558691698754743932898733180677136925166591269162671486527140686951392194534259328581800888011286433500532027763713725694723208730642439862166998113854637680693181609300259464652882212927671985536140902659158754888775214603766525536542208475244306713202454607531154109118400528950377710657951142254262335101458525333777102645609477848214464932463093189402303511959733101628246847128135953241385436337306206878459292060492157728916140244946194869698205612348436229840428747709644904612809198217120231574189848340118094302130692720567894501074302831991287925969024297995707616634367421797227258904334053026439741285756541777262861918879323665114221482248615369789212702206866774015328621419596669163460916006758479995853792035815759919662188946630834819943225451839080278462109510121148909014016427507499216428766891925321803871294856070916938268533652385068966809233950382012948010647732022706173493908919547745501711693364031981493506113947596949441473086704612148761334488278368993740441042314449253604494661359801693100309051197720636530441699160212348915026408494370777341382591890441350722359186925784094188437419590282900545749102910341832297777232124128466942022808189879852822931079182919126271319720596920764019591977980047971561640881277521061848390213147984825239767916003501264428772263698109269968977674638252266050152006972939454671414598367217282789606797198905602847997206348801728942572069012633220026713167270705753585782153477331650609329432343008448402093974078692016290592320102375566595342913288655737355699753598124255479591341459120712987119225376507604321518500201339266393395872267226833876989915369178444020378177837422767803327430430913484707211878649476519189816289784124697058956176581082727288852120349133514230496969035835755725821224633189187509185327380393248463010483945979641185405889237686228890556821393007830292249503006141898581879609400754856253854355395001854198749154106557645852509906817381457001868337560173651885783214249770181533243659075085885950613196852364796280149521724574586386135672716124053793912944396328908550416200753223873484032152055352020188673727322883070892810282331672533175823314325370605979015897119875677237864642574965134124013078710912827035590248229860896796431647788992588924148950650737686907992200800787468802209838746865310349291771261962758764259983558742720284726867523253175178779655189815975264348777551183215670592940062077597309605367533991661967715777966229697809297192710760224733497400702829068870337413824014754241150918680906851992505443348657467682446155578920434031440866512439251301491315580462237899356487570007716957017670928892030751176881381691175588432245627747415265589511580587727069721381080571855958445822126126727416433151770755233773058748631369486170858056061264377559625583962828406303585695961203653960400893401978950420573510580188426403115306627473828387060537221897191197232790525266205156922634495111051630105817799997703524495040998150003155291922928654153622166817752975865580573825336870387003613398541056430970664389943317003158610380367335126752944121619454272441659649089670181397202906955058068868015455246443486874111250721882834215339293338884970562961845228592289789248851753088317746115786740521566867718326044383748882834479051771239602120657885577850097012203797531247871906554136428775235545759156784582265624220393321599531119792805322327234101919064394817891385136120996412043180485203454489886963558731363331454338216583672271645024511669150971085232828945108235493878586742036416956271179733105467963814263464972737082697357022782872022594184269653996739763332057198603077702230976259395320631342258121088640461040485076537285458787235973809426750329138476058572300577866513460490196496352308031751474153793319028457197584998474084094053634218823254073025410788909493291325964144531591336805157460965718172612574471761984627918730854696775973830243340279611293139696445071860319220939136140222112241460608248975974642398990572159579098734860923373267872413481355126758193468603073308543061014211198783444204771505189004280837063199959535849059620929464348304285461398870009158759037975275362648744172019028657723330728650301800250463602413010301676092285796030382778725456766804281658538749282750535324980214969700651483000429552517501181631793290581963780676625626369598838526416751524305032254704732949987280148930661970751964169010490054981952715272439302763980140670329203061130578823836903813122344018072022807037141935370916367833409554668954938386456292359927216205956200313295040727101152718883633432013311336551150871048214047409205652731585386201760849855208991925147221250935160166109037711669935567345647673346345085793863469613710360405418778596870711667183767010371661014056505031954695644706659118989760781032903063457073897108255368778082338323080677761086507851781198674528649405475803339781874161989938714134111347234639355131663816355980616052672237115421992771604137070897891106956162220483102985738965592441328804595173749853189276597739089152253101827347275867230881523730766470103462002388516473411291914356076359708126551240753043203829921427371344875729379681934393431014732504382882143893425384966539044414268261692344766072245250103511069623916159880025701778755266981977167688486232313167610056473184347678207058144668999343940963729613390559627203931497126604242692874348112761176861704409485054286313194551536690413649656009823433397923222961181255147798221977852237535349324670769271170345691119867023870762961259790192240218418782573642709459897125733745114083868163150826539283048416688570990304444954404441150028012727988436401089120797656164189072168876072754728870899414694581565308194165007545801960766568572282058008353328404971993034044713650369270161424969349347595027088901409027697754655356463635903031345329422213057693108815681003156913365247641762331652835332513278799079286059608848620512494429477958311443301528401004567643574636300230062460632090537070085384959949298428815102642356505009024117336749154942737947862029542001549192865919507786000006385043098798848912078777196665666373550560300763653405206357291536299714908272389233248458853349442517999741544942919240068210967150502258023094137095194658809909798710977752264870388069873587230525294270259948284002487081549895184449914626897094017642025750650169365434367550562838494906334487802802597936963975904753908550980280840942480488509056783634297037464457897465238457739206980908417696077782059135617497085972117282076210420764218235229437930253057368104410005953606701674450012932155641163618891094447912383190115257271679677089762811599968348909821015624705514722211272683113265717564717993963825714371754870076116287576418958835486957198405473264323496222548075504430272622373025722296668310347405276947506258057576431326409192716825912862399826374090167251712670861166584970965156365543925964515280876652821468417303230569873119292004353813710138732709528507030815348799370675951274750836655138771937982140416505629539229586255484904341903643983625171353919031186278059097655880276617417216464001182338486982856789700216335861713877374183799553320655459589024385349553713687000258297494088484953500720175259041668242069164481997942129865281089859399822987378765824867383957789669709175239894710587965404409646843680793893051010401624237215322512091101776238215760631291003983636390047569748363117833387143008839557097457258468102209499255465289440377189418667597417103084225802849759288294380123209703622898848480837389659390776029643095136626137734151189533777998308630946511488337801370345629242601949652899695671250282007508554823383251158890234771077458644161849981236958277821326320994635372064657341491341670216078557029097661347787425088581030704363204175618001702750498092158653644714027647162580232040626379223874424507141072318159793247226894003438374283453863901944805093817457058847583700587558509637187498617416428024366932968341261669737254964435122663957904626471877525622644173568838731797084085267204848358930283070863597321356993615867431447664985856014149141760687778608579826319315822292633196436965537391816441368529331845209299476368088503958682834432611833077082786914480141447635376717837279082910174613115973450411320777725357568512420781410361538895843283676755499362773011152853110850405468690133409106943225936356124171738427054034281403823145994853683885301306545529753246637059700435898336445896359563275762285508541044762494937014569234304728079845314523923899671874399094025966466184472853094968743306839075375665880911937475999782536716004962913783676454306492427754548737599431051724780094542872622674921398827501793813410253902203042889132813162104987366623245281129940471422105084494476725989604700174812069056279668704577562369413627454768710761526083711928152753512021692317228851512255367564496853906252058608369736063965187810645835657092975255420419347689063109253595826690606705956751945343715581875176337351348030220223545931170896725775118311519312501758296452882582362478821504626453492668984619824176077219498180218476192742458585867666707440348046224122773410086995886796628600127522126087090795247696611011616526585013678350473544933803621308734159377253493387626974218431501430255240578195508137404755953119424150091065612254096468366450335763953459118173589590421674248253677993081429081772641033445253964027425711875123966887133113538197999914625350979344336133432772173296987951996288799884504158419060215785710063841979115256659488995443029139799537908324562562217078788962859938937309776706420217111292422857029930995316636373557640391883781512737800110391249890813001627245216045179568171069970699917224687342570933909475797736600781213708120229449078238633004905115610621935778319673096756860590072140694234946572163281350108604684008868331145208364627742426736518496283359444402831666709691245304916966933928587620019949829305685063913182869585753872886020351267984557543217734190208694225885214663662572107847128277047705186245463825473651292929787751146393694958919968761812215952077566036130866738517867814199272311604129207779692498989179582794758299358164502432838003661841720360475319050093547034479813357363859260755549152010354033976395772344993624835464507433761316771828780817907804303431451704710048303251901826071910269033861539232772452982976701137609124533780594596302379864247887581720277612914203229600011431043342498453189763338285650679982946612255181202910824542445280332457272143613086011555373545514336065861074848912160426256637297431464449042393880583697691832542194927358798774649177232945541476477688686378662271545903575952463352735286353206678185465657443882234709591995337268421221008525377464319025158933782822376991469261712991112786194716448169898844092956363166933641613663635425388793229129199991551733797947492511431489720220477263476271921806796157991965781938379082707483619527981798381581268962090497197362666120473980682845128991270610072965105550173735595448573716471158311734495280331466306008266758101349891630486129319091035004779521485852750017531601878879090212893570460738041260527640645927313429544658333900221133232823924126243438931716731296716446692503145524710258096376553482958728493985139851305917598866395950835667878286414845907799028323518686961422114245207866434640641971358726078857915586021349697101466071720209842111014460743002645248356433660346354397572739202689221662533711440615665734667588660034473714209767362026678663398048034892534077313413658533455359334240758988054302983771650108399365086792254022148115907466134768080354638686389475210061405296041082112323955986212087665882400904076770186693624489648034092354202414598515074962387768529741754769681024311050237612676752600240816530573407048558912507237043564827236455955233058906744902036485459431842099795860334358736493796206874709093651098476475085696762232471612696743238896435913207425520450958989581218097027118585466920020665835760086586253438241274068174267203263856162949892450564101881428619525028204778079639603223066641455501374074444962081201369753043038559990275941088912835983809115450437303140522254561150443964592054625580447874307888241651220518681117007522460944160974825685964988235706679669799918521246861899747114578299384609495136819060995224876717823724241167914892435346248767907196890730082850461466508856490866363065927720029311472513670271844267112887855264751599583992196012479747406340721096452550007031559070070686675008039922123021611207006428158489708328900287313967499001944313192405282263165072925048302796170703194827867266758512800770094433596412968086591420580664904352746749542401621145612324171728846144244763293639250884834022248062482095003300631496811701135464982825382084494857908602652724118788224381038513094895551520664172313917968049463439049566816032467111835539071278073576595473497867952584425763467095187184038200241613186090942691521338212404424158673858045394727162113298566500248547626485187330536801191190898475699545990314414744426482820471243626739764119896763519978695409874566639961830424828553590932625382183646940816137786238817416998277307092443057023961531661078539511903867791422640966520365617598408194078631703945361367606630754482506332207420320279362444580002063730991407589187446876803784347364028171853954922409782160120540666916928735407946924385173855254297525631713525806930794803641163777860137519827382919933634534281336827044580969395357680967959180752771430193445717657147921367216095874772904527060883485318756634060312567188540572953950520362683821323519787439309698244998167120987240877513912183426050319595327543293402164124001682780780289780740736155726561708302528508325646152620175115769638556769492622682949741183157117765668891595944211386064296075140789102196446545150157169174951144592692843564343530496521455338104817925056135214698904856443451377424008809650959953985026242200894442744795957238401629251830656568907423197460852141964514390962314616663552766312666747572393168408608496904623167416952285510584022833716899639889915671460388933608250921618510832310905477692015075684499877940791266901453953279383406660971141565255639784371513350775343829769125239298220478480984536703523163977779088999336418752230095321011523918678399499695277233967795474843052091546903847337651447190339031075759248416620469971995540348243029185410183433752636512310483075484571809165312450494411355731069908210960119779733246700387059986834359447522783576441897094540086674757728056869307699007709361625028178086514480885575259074932052269206590768799259553027333291068917747309577559795075277216965234326591655175193708740490644075544581117164842201141813933314189492456800941793854813524328686863766790759723803842681932748297455993747319302703346375141220131563765445524210392244764182367785993565489388323715349705110431324683354557451852771885892097346338519070010328339545606625635359337093276444188131409843430836034716028323756788764732931911615105801102936266401568302578595106120009653725985295852052006898538484772947598929037161943717040356758982445588107755533811266411216641030485223527421890694995607848788719846095840391993618211230151686536275348266270530892319057513260094797356434222726763309898476359985457000196633924778531623109694794743831873419250608954033749203162232489754851921309701633605282946217465470750736910393128690727756349961884794193392553651725035623288642066795432054700992728121484749105313287922203646490372361727532153618800615425338683727065167802167550030593576767543246112041733786834418082345240363033757707597836016790835830328381780760360261094669096324597069801555595323953955346164282840427657568415411497657929524577206280005729827942510231165938522495465255610571723416605990219457182335911787332899784002762702523544269213893397592918119601618307742436924001010422589766191517973811768578384834020663494589071150227663408544006181790093798762550115162684589908377574484192446497383661748477783435425443850040338917654454342004295565057456626439845826183835156084402804198191625798746328558443286304485822342139834217802600925409821641808877786150954435532836106976386632136730351492965692338013599721754064801188888876565935556815532500413413182673878608826312855416833902418501274095094377510344886111216411274477973386463819950807830345286650795394959295679304220085215893463077553464116560367833708493684142396892648227720715734622737573659569662466268712084178165725538401153025806305992124612125294088257223910191297072316928594585383091556430870017891043178559082978286818984254830392217837135187062189317835451272876125772498475445149463264590067290615403973302808587761847078548855000472600817806609378600915348072358583058827803079550671762041266296349667230164175211374969859716945029577332231641672043620350680254105866089133300015463398955716086121350638471794546850737563945970789460953982861691491366093873417992893437379482627681708751341307456027134444376060000557732827528384272632028864206136819760958217082446572044044281435388436975925249527306970794352742755430396716643275004805139286202716765786214548193773361227429250860036049594714129264255440107273813659844456307147453502632595250867081752054378125411199894516759825872671120663494012195721630694515080067761817743351944981637329962033172430033513426354527713564204339993545133825869399767846481871437329422495951191311775220586646942879128458485030752285547884303138828228785194721984207168302428632860778162336003051441903794246652998143102421698648570490442971997404235890173261689303920729962440261941432651264283718145058410053161049171868096205948785812567205822865904728579021612690261173583682551790490424872102555287370153824599234442846751817307064046674657802560385417496295331759405164265752546051124556931183306488334214162348259503130097182020244754592287108194192379879658278788684248943003442429350428183571756011910498693549511023599793625225385833551830820416061785648510242994556337823728936896451416196071619874057150094217075290772014396816291107662842332289741723728418627560470465308205107660822899095264240272557791283293651922789728606820654390223648807607067268725090867789985123502718903344004125924945386326040370157504816718580569362694580544321512982746341458752370952608596231417879222282219698503358283156396664127551410893806031344129565887685202416840722570191310435985609711980481172402704314094414229608658787198226974744978259287912391573447342135761139619098573922821076223983900028510339178263923786817700508998801786832792511980919258201448816771616072348529811486706866051474438865672344625898256425880399311179012853618469074063878437707169704664177485102437632481152408889919964722890145042328621998717485868979695355054352651279204387725448950560505417436484771593777658955126147284809039893402501280733094360096100107105948884079628334490629903082242246793829806147183438152580576843147460171215189207013309531652236739234877340121255024529178988039894611744137286391865827202113870683894508942657066023280238541357544234848261237757847117425650718199780817660297215086466596938597131536303155282876293584136807018285450508214594690481203970237170598944660797489865717016704459577959555831078123533123546134676545380953649155146487782057701270161118205603452282116332098638392935704631518852266289349933782023077392334396151932504900828402288709782381109565869381271716829222863874963792113438647684337747889013952646195082225966969966844757295425356950400100435891648698487411147450439790447950464580582180373708689357689645962279285378626754342535139217982331677216162598587839079384997204756977880372625222213423570140779862253306991655984425145954756547402091849968099719129481696431850778026960442064360963705522835976087020991139240431986616729848292679727142757061935079247028754091163663572209202567784642196714300612872143079862981465500024285366848703336644973230441596456491658961304899913252852697383194642992885936720537506788903031958345341856992036626870225456275347214933622931532534782233561670808011426558549715777660672246382104759986147185984376833999878610579722605930618638677840367212384298737727588626599935128040354731926382422416824427992109871596106092875252783991839918094460796019412663086016909072753597384973708185464718080942140297129131553899412808156080742104858229774443485119773922201433256916241128888996821960721374145891877960715427719316761138388860778209461626450319129808881221884604935960888165850087820044661145396609954233910136952112950189742173505204687911912568913145536928404825021787879692917333459617848911143425875865588427808613683048692016135805848494050793911075466742447223427528947225333467601235450511653260157784831235759426188993153723420364496782121537456331998659115681024664183211147949811614187988109036731505417209684885605826408305663875777491369977997500248983315572112243230159592611831729461681887743808765171712788104071723774936898339294287846930365220716028264791480144604568855529637494650892585615186791422079213917522001561807551244597366465403263317945503379127494214412869896515527443646877212707908826415595163136547377295818375918141652485700729754575732848594188994023554108389573017050219338612470733829483093072250200297638209259720140280676534098188306751723629596912656781861797477747961607335120566578887834926314158664697833054391765931618974649708491457603785212018008530442074804343874337812194537026053708348236583709577586833283255681430169852459207954724047674693069963893100428564158996083760234128877977525861953327631146465169435198394206938465521328148314343966562631687424045156931421901173778038993187016264920621045504328044928528021013822358306679690022876820045548329324866446043851404753028325013139993720592477200870204772100756607494416817934733320759661608704860032502955462411504705380678146333619805925938717264018917455098477082768222253514972801462042960213504890459861104148418457667415564133897224239899495975812687281671582153872524891632424311852518361218202690252347168701404881665710515285383243295387351056727605923048937967402513747577141651125825253102925905920897322712270200462799357096006122834361930254410504193787215972614510869204464309038206508806473489570451535641369094948438406389133298619513613360661706335119017859116772815545914286321753619063602317509904121606350504288419746410783235563274715891610824194468799944157539400106730418162792121734703328111361822489863734203941611873687095616086205821228510177978619643947007556140999677362904660541942006132984426843741642380473463775821214491826054467948208952889578332677840983614263236943270540882137543924764569491587540019918783402575671447481450124433198114909594979301485714138026281189803160399252450474558407540140824632437920498003570662784438543621102396521476405189684375535036317846738170701847134361314243430095627724239545427192854258963159223354085842804292533957263402027528387655940362044950555978218756396040673834139048842394302787352309291260413828740977711145869478704504320421968627007333628630223279560055600350790026927657002104270190572409059631693640058063830424732840071163209160035534059183879595615991061643537118503858876950408984747566205138495704010497320805294374282802981295202112145067019106387662212495286678977854111854517911447104889140194769615582194942690898581017726911685325618572857975553759999390536958835564005791544125806943628187272685868649268208946777764649940097362817789560224178794574426434543105325219861099149489687628543832015391040318971526053414040434627671591609951878051279085521258417140384885922845943343054496744039388984495841266200668888755653009258277648588162282939943910729214148277813639645256238139538328738876440788994527578933845179953656782834141711964962511850910772265894706377717746393573822353061852091160405805274094273380207076105575065875626586519937749852688465381956178104161352630025664305098366423223347098624155211108846131741305756618406184812713653964054095209715591750437902056562863952757003260553085925438254436029226335422347223994337165829402650178835474752130816777220941993015398004024106629577237212857944442868435776864408930951682789960284163285357637890205827212042866207189041610707368575402004601061784284833526973590683245817822645958638211209513850847274899687112640519596601167867978929304472010614354980284504256708469492777143877826048975205716478867071399439102838311139856080762766605698994494372044561414693768005659066482329459818303324567648882682642219049883615230842426988151829073157737779128495397630030729073079590025220619344584685101020072032852475679344776975202248525349726452698476071544710494635203779720790504080782584243651682229208722449405677972806025390712221016452844841814480543934355456980604694448013847004295321278664194790694872254960760418390481866725022780579775415954560557729950811220435827211508628061413469737966825503456423564852390518399801634746357581780689481925442641622398660644384299909632315466643872251436377886974005918420380224958918147057987247593858771157927805712657286465084204995394671393675435216572654255541935349539747771870100580708255247473020919191613225932172278124572564142386780336438500223525636775442824819145546930821213143762743059165336453142285190017883080053880589446009021066089849701146942437584369218224677940043444039743886781448051312227535515369088289593028042849904459646188377821920306519815235496319913210894996803504812516418344739903663981497562375203033496355206332282414936188379977703879093039404435799310947997147247392061046594404899813268455571458128864578554860982677161951362169667847651171685898920904290917673160103808499988900455090369131088625127757457876636917264502636924917929596151785825646517413072703886027878079646704016263749501937383976161723353273641562222300905230457860781581326101068500734118863631162232791586226464977849230909329290491946279493320157045315145414150344515835673090119883871110855336320205785885480570274937677031721325296788972596599666233735384893611431326981528290968732761933187921627828574603108888380731886331883490335592087247394032130197532365922451012557256289589227010858891698307605643263944648647715104374168188468713753527152957471817899916260799462109561154507938237842584534686393639541974709284031548616641517262746289584950795809417054143724671298683026563751174217247776476891246801665250735141666082983850047972951252679128524254223627303657153506788426491471906831213272619012665467116819869231427578647793248242392101496085328242568480419430914103975446629411849419284156011014680949370214321751040244614686172322810077680470196208395756134191881064385094373907385516646057926531769373451544369946276959593457684991641290102554436586978630637631771646539149470816763536330772606507483711070608078485487284680112714479533220159450653834429707344526951027810462339537190956321780531984028452141999985593415666168135273968560595954182483965832356159756434793171213992400051911437618775590121287361652044312342180315797287204029910151008935687565122690939384057518911530146096844447553175014741319378776894745879102620994030344078350679308310390921536390314192984042554526221487507580409029026916882430300320949818090924222829193469992828750592849010506561605415499738499961369541067208018128266734794441793638019843106180904242350095044240764402755244246859293295164590872514396270449662055030623465912102291067042756989550934200622616124421224751100028664893006482470005737778546356538656870079323244482989724758659468975969294982460620360659680530334816881322176658831634200385752655068503070323500622005877170250906601759034908046256510256449388568885064606532267175260663741486749192983470815288882692337013190136174150598974749628953976483413377408246878456054566908867612421463466033361582735996621548092073413207865159516792089910737003833499007064082863654219694861389503028974331794467311688141059526308614523374254860321842128188874906491079067901692819020461011761869360325325847115269806451197176885869250990653365869430770776014680032608251367813539050018158954964159269814621737467185740780280173848531770854163780381962134754063032763344361001014756011430231257733502546261865943365099527047850184769598295614303931758575755649992067578631012818571607546282104930670930074830408300115765252820512192237571673004680587944964488772935363567585079368874196002707367008876685160222670226137735955121884863332665497349748203792504958024914941379842913071096604470736409886673631251919017038722138001803030872393173009905858775503753527490087104326168215556063281616102500649394958609927031773187026311539875456032877118718193271115542786340599312500846971749447808747815943349353190938567951452081949554740541643889420869004623167582576024292731213518485418287674730596902628629316424309869532209495084096225056560523390646912220374906140188301500475607767602971437667160404211504369709889012927557791086405923688435819694643187279841926211363369141262771279307624273335019923889681684021121705504472319488545225471494548668113182995775195891625846956173011238338015895537525400090960099863852980530273329603652406177732831632110582535484418300598040472009261169979007699606656747513532086924817363550804338033358382437574126415880007795618218673950066744951171828381568780460255208747863466428776151666711554177304596169323475751736388480782206981159748707634229325834353328836709553813854583600863527213915765421668320697836423909983660943045926610805343396839953733542667316310620415703527555237278824789843713584893226807679567453049664964978321019289380167971347648022070022828327082939422899690906932151686086061304496212758509750314405996128450094041528663532582687222337283185207499510744514710054853431185857957489361796499845767113251799931160098608037359427249214124047206350579830670774443264380321894496317192837388563519096964887155646621937017989409547335447844998883355737580743510513261052785907511661060012955937281172940518600012154776243955164355288590115190414168957551397769560689473570756720331051970770724815592393949080509045587193739592737252090097164447408162741010306517866324730027309907568483668163195334709288131944171963230299120704568051124748656205487328704986243785398771732558963732089295523416422016037808962480967281256068969530585670917962647372245243524344783243711612638562468818584069280419312762126812632184492932336202118788070859903014271466502617371407671820759294225416596012496460558826328442040314734293634182354880207298498880753575368002232583043394189110616687705194162559399481987292032312455861985435584937939590554851148674156158584925543740835257042651600913436518623965629315804250228776725396058830538135457384383276600650736784020560831431887366008406035722583783907331474445068689278107195620944496858827735900884399317940032142813858918497159719706776784841158125977611918400258127533539579379851236474105317331188630912730795041706591707399398577491611524794342607535139279752323974802556589283301921504001977834287840945941461196390840140393439552146126239923574024622534950099342499203469151800172604946185518749841872453362025189252644756806318354567114002518153499690090435666521609934070683597880360591101326455320587700302276273202742581307170162558839140321391868358992048704452841825677957908505911776959419144827020884236964685422494485717498083829452512556306378727496184472799333330176453385130303100989046858893832382929398443036984030796797176982831446876959876580093605002208435778507208907579527632080361027975931654924476588858675376867135479445428023820421171512731797927980621054004352782555610607605299251425651456687794876187565089074369584186412304122608737311756423294613930629525982682447635696833531630319910189772077706612394239025439074123691427187335105324029756520461590934587694789008425055097608666006111391097681557974398272898201110407123238833588052743040797076071302151306659885616886925904615210479762744212787267808017833233743242121093751634751189222945648198649278784094938909305061164096035970614226199632581416478618344392038740540594887132382957795580636901170457918125638638568943853370299432964682655821928849662062838945865293894372103227341352601439656353788416866684984111996448051185272859775322982526332442870692638210548142037400011477908856658172444679732714986934755702977008662181900043122179173346030596915003071390221335033330805384594891716154901815268154987325907192331260046123971091338424096400573816914851913713212778927797576025648238938941219983415641381995964614381776693554859115707353564427577350889710900646325641875501820519648162468614586007460385559111180857052812861124236416705813346010969627532438849688754083142470497378841668637156324369299697421190866714437758175797739022274763802022986956398902143298130090910069856196817692697619545837163824409069011082533249108884832044283555938213537418193461152790673260919454193954941625806280657274628186536783377389426004151351674824666622522154364690852331481449068817537536017077338257908657807228813699276345727521352167732221359462376766904607707674951795695133156258124434232285260314725722170963847817844949553088221886825719779735746668481898213846519152794980552526189232593805388435815907391500839199753928334937176456038601338222473804983622436164154393553039632335476346255268061468907915030177707433741234495304402183982350459021157334909031874859546341006913435201556044396113379803955218569819174150774318880949235854047975534796095593893840307981121638747204277692668195101902190989556477296064612820554898054936447389624897471561286893267463421038328664932366013659042595194625722308763020166836172879353626850140009517100348536024970055691903746999183607900531513317872019318253563039595867755434263558995562442634679875574717984135320270708571597102091674585833177133255713621088631438307769257771624930590292200266794650394005609808853136115735168800991418848443517902607267774487695721505665907105810705285679318596969592507137033831101715796851649218324552111071989797396049908943824864492395448337410337476918474004480730592245167127826608080353808811605983425947688893493797264542288970254669076807359205634129671272722030311088011644591686469768147026335564303735238135787121779765978610147808543537552123336544688990663410592067562048553699359441751419837201879009633910640931085193585582041290462754953926998762706580743491576267618383424349559180826271448167674164374284793201948673238002458321267858274470477820034203915819055123530185324843510098986865886568239331211971232737481607998274796212760103952970616645476865509330670932934854007371781484534263647450068873174620756633986991664534998958507445522594122398362839765035046067664513750766310182600136308079070697393823874022152344898464365083808310340652210118804296654775890633502972239838234339609468758014725009655048267721459878245921620725412228596043665521706934253502924470566437578733731742363206132287956366068318785378029280780974515070036486154284219524288061072891369313722685955368131476239762984384482862088660716389922092296129384952822605384319746972050270622134180647094867581601728615705197807852835730112816483284968546631192449877511581314140632209231517056446226465439153957246355151532509120961279964481730384032335232063744811327163832672706313255437579978138930599070201861738305447299802719477863454453403264800526025527815448728973090628575762508640340670442562041420426153323237453446121997871784246905941556721423195470304298155743373641193020090149853136451701265253100059605380344147529687740819982453855255568520676599010081261149535391910805444137397122137908165974852272241615577217337249748019250706796552527918740708267476559129666759435880507146553462618777936277597173595495335941397606578047845213679903205051264133434977552421609249297485094436573334700674985988431735489741161776013658631091858697047620801110285477779224890419482089160390652783074125763238711258566821971195195030530269336999518974277233467763110514475746374490648966923505447565529077349389390499662848393411178108590461977858344758300097232447955531958519668756877863889794262007443062054801906444476299436583093888669870030744929441055141307673798251257328998463513066965352846221318150061354486495354426837088456133338688322126865752222955292192858219347343873992475525116038676281579272805307265302564754087331783794618181364830525809452254358228016685599409775088504351320023812892578908328156137642105489682322050778415125080314676902607282501169142882005654648609863551025032830824870256466785953498273379692539271811535538202898992065835969300185694283469996471839403907979684086241169961439621246822547242282544673022677569556228104576117906762335593566697604122655967456620741093884113704930547190596511013321295460515119601747922421897164108603255692535409319154539290852300597486526667170031975058464106410990264151039032553889824383179449006591174441520863198186635841443817820257403200608494666523780324175143664637190433340577804687494505112891382751946253726990886805867957459570212452698038361541058411402355674361223602560519425360692001259169521107732914425331217661282421232139745461086805132614197510472096384665983127653443171854271951617709441971196893316841890053561649037448245825124461767005980611557271153262009261935408711778207926145032879839955448732263370529150176036188096491231004023400290277819788926099218420802398290560655267611923636998329360355426653665061209454325210698525710534366950459471188858678749891640190771886647553650095982109415536809436312378443445160002861430505314573448133685462066805286270647208523605976862889789031804320308945313911164570465672280265374005331771205435835698568640566198656506917481421212317784040596255733557341277815627004180976090010774731217705953968186159353591872154685123644549866726709866084804808822837135336089619376827858033494379775292045355378784244734401747972356353163218001850703182218392643540772392139466159477039245242604303303998386993643790312434020267943430256735985080142195483453861986848318193911299827989255013666601470084164360453315934687037750570522690873617563713130359838939250362564923711492588401592667710205128232701494169285517755213925881540921152756005583499097153633182967928539555109853639280807314330174019386138499149380619031494585567913236077620352693399672909627025287952065820394920165782963501014606963910856519496784943676006729317544399541140338747092229871799913835134122891815236281636334019924890738775526641163109042036368968874967690664612719755597037851037615159301627260846499752461512367453683169477751274338956110439392054185825389260321438946287106396176334955233367167215267854931819034496812633120343157599834248602393219174875315240206965615593749575886378831988520396530612792814030515222026162393015404415931639941019217046819119199053602258150982179049080132427737776999326013575740939953086784636609914919969889079046637657340929068581502521628168532090577237978150954919694200866165454975055530293183999215248129331124452535503453746457538978546462501759815791667447843299742688574902146426909654927000334959611255077918176457717845270636239099289292696321060602108490176225156702533266301823620876251643824415396099260044858705491887883468005849201268864014675030352747756928424005295145196032146879533500700439098264753397297243069413844931207575726550831712282740257835383044073284665094631418769799074059448982629033318612891084677571632187006871106906382937071883278186560424086666610141575813374639925129655774556439439045221679364867663704158684471312553901224013070402411926319103387329184746058380447284967483411901336447375507623306771503819980654473132761397297022668080490658945746108589820220242331519335212159558987774150780557478310280284910536334610439442027173670187466128278589431371261620583554147297549356376675445210208637734256289608979223740219870822805798470337621529731274217192986860412978224095046007079263517162776539006696963318014549786531467789442080992533077044946632388181685051554166963737575300878318529538188099192911960242174229555669639479034067539007068434636017280761039972871007939540677342146701850739993331750785737955829332268285881021565592884496749743541492719883671691017942162826221794129329702818688386741382000517321695202511983973172203361859319885914028512988860708700394764527659097869327261122309966710326326392133769566059038467742027478045339483177784049677882135279768948928761639282953455438605221128172466342677259209108165013334943612796852415701428731264883009010555424997678738393901230258605212264544004252423352357946099582034978736069789156869431934484947867043394589038975935335247800557783495075254820817661463424735747140438109690221438868410533256087560100809655877668486349679952777230998919592530863567391007919467075263563845423323236319727912746025592570050238034126211366809382543856449043946672036934379592160699636799026478533933198054121455973238751735715097469377167971560796799875620250333477498876163913758861907950029250093546344400354149139029936514900356682643584685728837057998994160488568329554443946048581764017521034733510246644856582304075394946164028770877408035562857084812618468645993560647876793231906941844084442474039069739414830312851284700054062570333637443247695056679204358051418060402542633190481646372222490760071000222802207161070422320015839964965476597029882274974336848892891080598481387040345680611783619778992363134650223914609339710057963062619007757761362137494698462659152824322257355662720287743932842847403353086653957645897754461807612638831414500065664010399206426315916974407314057679094882083389682218636878483978246984415950604470614937477785429605004302569878250573125801805987328649909921738015012844284869619204754971855193445222366113085889108376939216148666077663608198491236793710784904933320072099795988179979899295117011573798381986879744291798918845808292286117502918067139902675468038483597728987934083508656986353203967874126355957889085615450442243504705591619395067254315270984648206122343810635127880768706250432314447757452116979033173537797148290410499586958401417664893814757900891276937971279873109357101665367034144980690047722603455864168157459513737818049568283610364108023724741117051441520002458133787613889954018219727073354109385280244465689157872015054173283724227693535010945821923064050926902952997345298036397584098466661042843115988303549204498267722271760967965414528695939074897857150825778446586750637883490695633507169622142262863426086749104420795134872648113855895719320833166070745591729830024262216828880562231973346162991006086464050253128008477263971089364875698561562554935848870412012069852580913322313811693611704457101277274402964996458961028059234135870761262064891951044597420608730231046597176390387954839292666570023584731126137080654328937522854525720029357423994289058631029444091605041730030460962127271554353150351129444118736597084997325323974915880639400416727285080031895864110755288493743983977492827317977057374778655509648122767456268369932071094437432213942851188778978367233268589717298138189454247660921438042434761098740457142043353925541493639379909283019191410168824407766397185415810451768584946869716038014675327713032643295857462013733472765606803894416400289373257791529847208179664338857449070063055704670672858095227798836494072909930151160291133236933397418237681738377715687807765916286053634414322085287229185260813604266010079546951821090942356900578043249822219855288544380803646858849027316169151749827480655129749615796551415808428575537407582720181567075785813338707665724550632874518475690382753527265211375971771206243307429242811944240022153219498158553358575837633695103632206810574296628785482177190033016007133915030221543401876193633189655711441124877931451134205093302961838951387367763103342663289290070854899831963274899288992330408228147953043355501270949074541887025477017225434853202301575769934940640447254439835167398481759747503653481051094990243266890158521437859775549667319649861369943591339765502816545687842076729402821569467583319380942429500920295735640214668784938806358444270906265001466027525305638460810736274191745352590150447895774100789869340968280416982137116781594217215376628695964335408164990724857280861427464974377622037983549868996218732233539657911585816848578871764331722313868573231719225426620152931981045885604467569069264913094127670324053146477315008659106225566162192394660249376704422580415572502712949491197135410879781680855054036857536342227166521758048321136725251111663739992236131018135105706665412417102670063050917107338371544503898784032289304861086213151016456845111698297579725126956211980820268608982775740213400421191786435628645469590120003552458959616163587465079524705151494386876681013174843520109078212754027042703857322493533494638880764874890153679743874833789095185746513917061228668475862293774528175907374348805815842918002203923837458680532305215874828504477755742613283035210844850854847920034016592485005445388542020654701459760235284161115151954602751155088271333726108458489342670554033057864091531124110977318862157061483407314545398882362792087020961304522026791545953429405204500356081707854552184300348542989414144525023722239157165698906379288722858422147609744610062368716227731949354871917987969014842960569851075311475429808541419131764198798981128795414235642137902819859853704104202233192296538085035993770206506341490912386762514612554296772725199215533279708146045504803549732843672893234984053605486616021210449942358407158985468259129236130297202898854377971332450569147254884008397458710310319908905756668552480454735602831006294830025541850822423807002918467169887642949666130690813215701902207679398015065502496596706125361865500776561301289306705136395567356078568073522472112311679991301846209975130441057616198974926010885573938498165873738286227139403677457730204967064981310988496075117626827427922773333447276686472420241505505320237404440530231658283162684809620090975980750422582684926626020131392325483132760201590005482431573451383263288614053409623870246839861936227295518875041617438019915050065444684046163669719934971935467082175959796006794424833657677679697723099581464526435868036245747785832273923364230858867705235826930812501983438433368573140184254555279145852665848501183653661199449057720312565667869974260451574016125452131144366269961751666661215525161262271902976341341404872449507119669548308793926070276110928129156804076941048269763797708249058840346978694056382678767297689123218379785253689690677842405094213418994353925959640492037845999438216583184316042966199025261009465910466438471536998540283682665632705160639251887326075247226907862444205361092534794882567210949118250179387032079780383262928710053164303335534014326011275507586738047952969959122655339511095288580274375292842435292202564565475813026150150513063867020701593613833807193803260745938477734749981013536799199636827011190362071213076153522198110283138021908262527672018977536243833651076983254868780471335842421995592445839681566561486227469333447710940604500650495747376354298625723906847568702494915657714544727586383514583860851589328586130823042283454945572261282244947007614026571416838824792620345190518048863655206112284109551371265573409235547575157612807078334220966432860183011540465386000109567232265720474511237587768839906452521825542884977680798096574763514088571037040367543989172975557407300549875010987639802468268646616452967024698515026032132496454482525228226206741993792889876029243432701716495845199458708826524518600401358537400662741388598641943618037976742918739701143692147779578641487436994761413978751940920434948045537161137970675313181704044528247643730112840591332513737587898709406428409299362430000024850061401536535801908458529716686436371351653991215649244929035819167241095816274930744094388835111909621138440736968030245936415978551925407714307479342177284772811628214187819793321420970127298990827048602724227772293614327729581508086182196503692216712170384514802589520030073367825536396005252474746268263060677719877650653565807443942201594544354206851646803025727711427830252096957894750423119404409130215029496490149327065103540536099280087131611125011987897290905559801597774586190501691423628671892029491272077032789839524029525753297097497621626508549693864454284375752285022841106709184873688089451219943943042038947863064510744556885370865715376130982080764850064554839344317071875168949179607437779425513607084764255558359048430362943865732584753888849742940299398359114913665589643201082115838170567107449307316547337019225899620863426586856827651428683943412033715503561506092021291739445603272291955949758373233381930212539780213666624570664472168202417243090080599014588542613896242990258602997168151820362747167297770462128427493758033140376859298437279277868818152247848636114516316147255455253956908908918809682943857525557205269152526521438116119596060704492077249667398560005975810561302915906630384067350903091408258777017860908892648366584263683635545259346060449068187984607890045578890274502884386947263943827504064991427868076274282143158484256486382151133504727771593600976752158840091501952565642767797574204152962252440636541073959423111530890947484702202939141586953835611289075050090272556814151331409237377662835315721080192430338853641813913948124495517991836341196505798809993128954164749068367289404898892629074209149398179480199502949692546726789963463919945314126179639161325561015904617282333391438654787652422010437653085622391720997238653511717680503951610159197995259488263147090418771598968527653066067044709078369168001807126543482282178271917943351678035040583621987419909486028147896855212950870526656208262802605221624898496534207015909533544905854304536817540215446294791763599539469906787702774157900596159924186047390596918474405989222757529496051906373327848258903511841479307697578011703472855673622372585508254964224748649282380979591302019605326327144366694862226739931412860536753009017405987214206961313538767313708416509226877479271184499921832539083400115890641645951205063088461149120568531495194962103013804654806119426581905117460130848521644814616094917424258374392675056745324184868483768250969751122372596122409873585998764698806120376056869833773540910388229735604805126149094855158218902144986976862102523563837464307070541636573669134718215503414027973119813288165117026802057486870247322636681748625806275514074895806277635629047165791765388095672015058361293809704908631012936175388039187308436032094018548784458953307413628934566604104693867531744004044020909452786970179128315120694955795944174443346352384886298259827864141277205099947227609825822816140366402773278276963296520521871975222552875333835509876426613597059205778938378403852639104446756759599077679047641404027952197729269963020556304814655117673360651011034082422304305921386607844468185932143270604788180058303180364539882193667693415014496603971289451947371728129077079914761434672093332523604171893071127222230846536860857078487559961384464355698583967250395579376021016462432091394174677324172445282227936970384657235503574950844867267641910623945963870192262837865213680058526880973517653613911320801601511285883833705867724906570314160713882652443147209356684326108377493983830071610684726042139829121523041733464389611220838535151105355808684396674341887417924176547453075319606875841868378804181779584562981744363557142721965386866560930469554682310291613553702582770644690143201978456231324669661760632896364715464152810073182068807358130718122400577162002523797699352796130313515097242603246481252821532180634895470312803387133354049666198591804103592913707407231975622773888313614902432328879667489535751056137969479009726645963836957467549591244948923835508508225910187797997959321389502129879062206375485100463019127818206318839799605677391804323357166163761868099975849525333560091737152062524254007211128209884544235822067541692636743291968712879253082923441050094849299961615094500201682240957971147583158982506109029182241193260175544844598625227073335098829880371491739094385006151628093169514312135809710108696601538421878808290387279671721602175799175544487451348366545149675473554215552576161141148142105245992451340389296321255701220099605129854488900234887453668413516798462677920035619218162800861541946728751350448648478217546373631728927437127263054013499874657217479435696901259811552343212823620256835203671367622924122570254543237024189075564092500312051015762342259931730546861273248178845293299940579183831144596888105412645914547827397664916314091973602164687525451316811331651798251211278266779919421077586903411543013544356415141260276664699674530351478809832990637943492902229645066904776428705226914274021257737596362934336968919533404181836979407877892397361628537891452670027945296176328147851584996870479379495592423529042956639641384852120824552889183584530048891077671300235637544963768997780252080108619878244634284593599687368763302458816862432995986245787466644782053534204073824003139642585929998242710266399183799751216888976182091563671683950761600463972793898008872017864286613124451730533368366306013801260510115758819978346925715098788350836643678047891590080646720777373761811599713627018111435926459312713042041332017775081140174762237896272181298532053056088243121154261392562401104534452386761500528634497298931364933867059780122766686589485589105011407169507188690817478666863466591127615763789078498205097217998297959715095711576677997152774136183374507287747400445941508066539323965721426570123143914936904323257877307389704202664252283105285271599501671438763740471248650870665189436204211226067317228999993555448224817388055666294101806923046469629106600651234687332052890629147625073576421186176500827905870664038178993847778065681682824698719044500917135778507491698148887109713489816228494465171555470986997613204195922090121284188821640740337329448446785643644748807618309383391944695263798165886480084957296278719565585860993969376451504779281480673645169425801341297744572750266726330783976916899448306260163327399267071241863413754403889208681339406691367921398964501998161963807885678069362311464963742343899396067309794441831800183193682898279830229228967082018252525612695452264201675861291419064735263091238065273572394834872282851433224554068946500449168496999345218367246611991027393342002849267344456181586490555703146226915350274524257190890174891927256563914452840668333748734924840951533198671678450076790823547951741354965836123461444668078418346097963088818916006460764474479554150232569969881265204982754038834381599149862013543056405653437434638345677317778410287039394331687247230089317224689096641187577129705513841818035639912346409517051991613435577287963881849900801535042716209711007117293810384720235237844000875854143069353065500185091786628806582648540952364474672272934946699511837165710992543781450475475833441971526592791554139177482428827450957773920421310801491148959154844091764376088894220327479227547413843667822129828278417892957508993229586748642311821685295344704864273175351010424158403941389272432356373311343440686211495742512009713801082335939867467887800938311417826751114163184655901171324980754407079731784261449827680135171588989480358734517897064994442198693472420354007700413880784204948216580582736224237553560560277717164485886486188741323433004447670335516254479399558460693022570063321766846588632936281170514536802481757151771707374049523089546692024874071444489568375378333356706768989428401734430102227101939746645643984007717364485648927778600083600150595238156132450363307245860231584520450745083656013506126980265669007147072654222590474391694119243266609935460688212206243501099687666980644204658186932232613822851202673735149371742331826360822632866323083770052320474378415836472023333347918605485266422569206700116813839908832755808115359161391398304386212685340485373271375607411670986066215189046328448345827795348731152657021340434515551164065845328488413373662982536530879081956055337401635029415832286872048560622231080992806465318832859162396376364813270068966312746461917074681516763159114523442156181032960683163008726007828388335445517440335870267826615575165973328345669880735885354840086826711309833135010093921531333382089990546478277749798362706139847330032231289860390670247160839287393346437440857701708072039185585125857146365859422441796207907058957085182606037576222223435237377596375971177848338741699455097675153929637587349532153339285319054440714730970424408571407611759125118511944008145467731308971262169828398421590777438624635328887488003741788200280394514678485159206370958693397713447005405938732074768416298131505492845487324660432993166718709293788269494441564761536802108385486390816338674728396596159187473086967339126196340473890019878226754803022562921773107441281235040518081788343710771658034250172957842713684226337397960862000138981186718820748299524109483676347932174436028429759369477534913507337088124617850742222884315014422671622690396102083256268527818086218831103432221637954858983193892510389464713050283301130231686090642120693900444207520144726793760419680810087200112551480602798509610497959689159341289416390927274925796184397351258642075769037485173063017249617984425014804161658297898248010812468425672426585289901037986508241418062825722114064453644677442088511386391530868776220908098954584576653443069800227431719869517559849362745756424054540152521172691889703161243165777359649596655939768301356368745580712528485173791637397583968282655416657310513270308547979470680341692719416835098610381606099613093352016226493544372865440446006969504203588214888383970240101203508726137398134982751245788766974435439459487986280876320019180766633246340635071366263713590872712444565588597079020649493929015641354329024239884898750591662820673262865835787908424278075196641285263409426074254562904715513010232234615860584058273084368202312874031455462043253868875007070799047516402937817629130006149957839832356187859998579223296521920923038657892441594711792538306271421052716309301271706788376982477716583009127350577239117581101637086145078069232550026363689946952813428724758341078637179036048774184077898291234908191626476419443022264430336552964386690075596195992436828249334457338018310049493572715024916103081368103378164413653911602066933831989426456115522375417171728296262716289229711960459502497024692509322401111562304431577516605213546286506341794675863279789320745617956784074193721900902890676898562590231022234877595024079890690557926079614989531946147448614223604551357470867220682756707383409509592075633184872126128458405405095992950536552883644753659575455152014324602003300433593598086424474057041599640351521996882125662441404635600170064969339131384786375974939842247952234956887105110784444747537771672118993520780094985248994756912551080536396566704465314744613046825531299925125438427598900905359623135153981159068602648126390459817029206120262380519495131160861478829199441259527409430277544924157572234544412476648924136243802580138379929787023035368811664565363656575262257450196258405607003808171732200066499726242737626691385685348099596693012215048296372929409991083323858872444384792826251265953007372039676872092446437900641853695537767807795063427922676853528214557506529200281716575514981174874486329719832998601191716125118361331286870951392767022665771410313906014859477115802687857672398633054176882202821348300297314797984736907743745623168166152780622553440969587650905242383681723093401424366853444410286716925731014658370303349022101980344834309708520739573474204696799813029118503098606698396079656699545819247939631686615707767141699882376925692081650269076360772454859343828282381097627341254241242706253493182434148316671843182919985655046808218779144528399855953569140352588242896110921143795400218174857361163823964745638948053017864527407755520692546576450452586514370280740472580200982415721664448805027089052995503222080335598749232500870701138359781402313950788321641039133266014818821851770253613376699503349742848696215187995233146329447343285709298415782295105273110574656125131617194881504996465678264281317078329293533317441923749174427739497329579016209307902122767230569242181735914447624946747207740014065937897738678270424446675617426205109917015705946109080150759970957081216536806297740962611415656449221024547751019130188010480451245700866787420003006301775249622536891761379646504448514358875071180433459364028871443814460917601555799706097074380879319289066435740925234283614559336620461634965549023914863334950326974841456245040265669943753222002909938209496111984090524817282935792801489688084045880038910781535421726399219178241283010985892493130224434973012951762182882157265871856337815211260097684370476883406296635626909079421366125536691521101226806055281153331298572193682720974197304061330766554677732298295865147143425768984301074348424672237316733865182943505039364556971871604855624765737832967729771335619472349402950177715274186095564811029900306225372411096821489446668032750290322990933859843969273594755854955385932473759463466649502218036762904169853541280366995565659433523007004979664067879116532625387599969686563914829886567325089498988629726553432301034271327344363438235626552238539272782600355361376300794918630570146755998508270323885077876918171562251066811206778856513256628752383775248690150234468810739772952064784608232684294490329105856102337291795429524352504345002714516378600009593943698458777534778762634630803848506766888691435608429600394841379942457870569596922841358861804045153139023533855333154699244742411462732840440620668866297878042861101292126699133958299577149069239846299662234299863214638941343593416457523836158391601460086897603869685005320028790793430967264673881991944705961534996302978078631140025111607957626965308771578140627522599287200978468861964957441330990144530304238425308502575184793803364964216977586219952724213173116403443603456891257543022500901010723409196956912753084614045912790757976774683440977002489682837630820886925843226598354376877934202992403274117236608719689702541197760961233368555708979892748160625636509690345561864682693779052541186036282358226092463278852165473623898208317978008491171856956454394662763851329449701530203081466056239347157087958541181197457677854683376840484371302437797893825044101008555091243818225726797303588196605432929116123918481327419489007306996416223804552390410072770964748258394722029867146856082399046579437146294908978796941193973134679271617709916223492582596759695843477308859064613409920063913668856346059700587481086583235506950824775598988656782831014723271224115191027492577059580502274672585304391682394406317273344544753842344128561259239282309381068644860046176247420773087777201127398206826246756303198893200666797713455597282478997936402223194988013179587485999927270267248719259387203442336413567091371998155427661193952816076276771610651016593349097826654429405969914482727468798993330611345517559766838270943862447588429471995460862294923573593667240124126340552926670284877421147569468481247599967451003787351366166937433244022032942495260904112678412826778093811095350676449190708288570140733857644307206096451723890593992531503519566366733290174194733764042657162968188887300487667189041894623725055123340453569847224423599371962964242424098098063973123035721076728436011790491216927531745852300135999443564779844646526981622040521887716072082481886051919060020925668459743816292366433265851667834213234390903901179766367564233043107164731551706237088975015534994913231575538273067537655204393771212542691240439185736483719107448424222018575297885514987373928345439533723984739118809008996387531998759712013802853878802981702927307124359776121324677183910773949866739659186069848248388859242365941652310039260575729473841975944973356838742520703147859720017834125814483964985924974266400317085754573435778894690678399555994362727468312030946552689875036660787512774076248840535944394577811482913655211891671460400508421439896733732896391775712425095821172603236857674530163278907047701789004085649161465278782730608356049173876382070315922765902503830083523468956557079576294505545580914232054010444616804128961322589321460426262634369411528959155675097082316812866908157071024992229471417710131376770752795348889948731450293941924961647545821840950286739231011670588901493881703427403528911164863487509278778910873796008252146458636086763255506736981727405197953483263220598908153684840691472469620420966267908080100541458891641426317800742551991696847410102116991436531638526678780367096877609827964887908893208879066238379529335508638650948609096272652542958001282731165782158232926015442140122726482664149180279845916455544029865818657159383154758117061335121617382002707239047406129120385073113956395073746293053265601785172473918408690905922595918730962728949987499298700323606189342828707593116188607888427719029466861679169668773594247900486467534453358273733266476561549420602901020418859973462883856756668570277802783859704998545345846091663077390851700574399993121061931065124079476791037307760516996097679894483350669773542161143881926934152650584993753399829163367363820397499124880653830002817653451899448259990479082676905913713375479427630413485005209286955282430087129624780399040457069563345697042469882966613697708517959921706852387336326735303889342826239116920132143171883104617433208955467723002253224860172145717215294789410876416302112166862167685310883266991824175690130419953374909172878601365623616847732386521957352068987368660064916353092939433551928234559857124704859230813480455509460573749128547676638960374883243327799568040581248975942995865279362374970162491679981172652193850411955680567913997149467494905291683618768158894085405066979220309654834751118498631081861943660555125377441958841669277790294033973283793057419867782999018861494202841697236833101510158148930185184475059888732720530113838375058481860720287872706847637003434279839547053000004830503996981473362019113263997160409907108072159201162311103862139338672529997143089090562867284626830133793751404210037116321857073059707355360467230192511777220767488744377063562171102982651074985485689493318059136733872428472001107581209351523767375286192425031548737825415356263949062772038776576700573984059245555969425631945994962002615524197301023159345892639700960978631978269661125808187926812194757977486762406743515568914749063058100044583362655858275494676913707833594557452117913990695055702407532043011402967210818514290668270144028681817914358810698379901873324692986487048729167873934937823955837846587288542675002868917278850098516095638295504970041382694399654012676013156466742088061630460355250146717000107599916150144872771267233728873187094321641452766771060586133993018063484212903486054917093749649667161957850436137260117171593064665114316787340782357170841601099483832317254846737778147204178227006744659978466255815434698736409467174633960072413102642566891262329792846338368235474494989233196095228546169833200930951251700080709332667996467875702004211298610748976912168473600540491395928064821315377841995644261451638658589166967071973887519822251653304747912310925638386842887677491417461600872797362487874676760798217915447276195578077854873170845336251771530526727317284565594490845100051916364866456634662861631237184799503796398768934690557491372692220386857735225231502272662288200461381246612294724115692503556246071791995340899408959796068207009203984374437162358203495790363518529053154982247531264688345906583634537746883065076922762335188542859002249788000748364794724708141582769014267705686261380517471315223873250562528080674797684705323493446120758093638305803875423415105876330853914481906187811839299081413489202326241495103190837843815505636520843203782569272607385570672116764579211168482655743268865885355768151703409624300737929954789205461174361404261959953125304384253486242602305935742816843282068348421286660901371281394116033223715312008757269225226259826384368662052312821115535072070810361160394105797525540550315118237555278224794791120227186177680989049634139932538626165938954013700853098172847346352634404520279947479907990519544189720939991416178562070526646471476504939225875940943728122216527184810659403671410181789658014012940183221327917548912044134732996001163417034798233695286597720149790420063187870758945248776571621361612174631169332681409939421837911894112200790827879086961070520241661575432193407348283280536401819677528443456199953726822303789240961674024726762944984492182404547819349809729174439931371433900354444599723956057533175610982516149731557430274146748169030263090047782800516728162666098974623144773310005859032054772264111876550985368385291632692261534895980654967256034692835472985349657010685678420022329265799268136679846948730553988071960250253311261048269735869900899394497067151737025762634119907296003843944560173063554920351814965468032103519946272897367923193608388023405188759781052034700659324588272657956662471823756698386414681079491447850642926823318990153001489269522062030613692165343399694414231896371231637540954374078547629491447929627892850771977409456146492985873511726529506590857478100898079151071940642062493074707802002299446384971730750154921519758569664699413780451444442435618312275911966578127074556811349741739015982511244572419322383377263134717306374662635872263521882632763284805188717241690518845333449895541659658713784449552682793826481124308408360557771475629336800054808740915091700698097461745634612744098656218587097188729608271479603624550718478038880248365144553980468190257603260883382296588606810545379118213497805265648833095203281059682031025485403179892681745052715337875272230004761046072457092260816952030196586778855064470507069336738348244716190341841970584176406766233671491116694217183716129477030900668175040459719762959217023742628241869348877391705749072969245696918385343273374165222263581993094395220458747217596915462383942761476635031525958957557789536742350325210558077320042742659647934136426626636986361921512052992700321817638044783854781686342518294762701385995820884123869863010765078707621329223585368610805912846521906580120717384245540540343893227834870438390457292168833439089751865109404869657208409070233715277765410681275951080677670077794037341374199795461717874399912972894285643040263929940469604454178740254450621819751289248044399131688559934809252831698150183363055478516134689772859038737345791736675714560117369475222691999414373294476522297023816221279235376460091775682164232959531930569128695793462051677232464492490181122129450307849553180024438007038535716817653271554167348770865893644935604011914793400974995485563395268821734074650625677786032947928771834676264951355373004460228829430205444695590289555667892023908885315831791389366236510032170034139059524366533591175432089970623156222560320672291541137461768060320060466239052154662218583673787763356412456021059690604472675942676735385448530443516936073469399264116817123544285436517405582799201403785514535911000921728333465314440841446783045073887102921879527356216248794601454722386720631698418616203684961795858486140784928279992210013544247870391123010600926536827645479796554545031703244128367744772754231864561528685034839613109209277017707397950518802235754821842763465136418593268846664194417043816861912913356691741421977012715806509085997445725573962226577079013917123610757836145278324885934623540055649272035240151044639251635047969729217796235296775787072426480647537770140879529473716251460929281874119411414063318544229806005597083633651191891805091565973810991072984908686476060321984974989487360610741999140586439086706604466622919110348830092246224354657594660455047230297972867048066749415836210030118402629949469797169073394574232861596749917185788928473597438880431880911688980045632954625304083391323040130718772676503296045204713012617523841754802615846293070423977242898872861052582031111398985999630715552882253711221537610544121249956364036589544692747589526830975234084585914434272969935744835477306424739532843577197518180685971959070981656004774915869925638097565146969273229760274755618430290516370909410886336075029606448804613391092262599717874954501840909724051727226902967270534218807521032728206961391561756197022087200930396730417429666633323019064771695894468918787612381196789607843363196430724298390637454895046572514522281737827234078619282031006401646090764051811267076187842883941498898005609281289618520603236225740487264402197460665256595796640322360712521845826564870882312148180877188539250886342366405369924187964805875251511807984924277595724722446243794507178898800612359576282921076106370071385422682983049696838779096852950250611707702757822460883463534802376803020389258946102735165675179511339708752567010845532377650436746386412246161442189488778309447622694440755248497480745432705081607071550539304731408258879919694064573774771734773704087249664019164577037661016139852244674063200886375448252411812799268298424488264374226150334375806708026111519595209451395574810741005019183139550668305916635509247757448906933427765593941504226233968958438697382372094730530628523863009717423687322704737797299658694646745889649459685997218348167971271622277197294011222145033301621821034650279127830863073550931016658820082541833005205081017384951341868316000360078775621926950740795568775515324426006309155142976104780532874798313524834062153706595576399001820975442734143124803149409977414974131820398525632103984110183602243859810139891675138048478949294797870871450686989765075118684731210182730306335514007972558159063019261469910229969702922991645862135410317250131363290168967694171292929337488104094385975191526691927020485500897135541972601306181612257889004459172229208172708021531834505464646094445456498911742438488268850042451886103204405036447917446933092263345195187670379373674715621601343133678413708463896641662481515262442059861059664149931895127817643383544355980540153573564224842913457065395235773453536400485014732861472510609243274008165885751939897144911099551543451188966245242155104074015076609222724384057959470071582125581448953815807130038772103124247008811725943716444944497855307398396826963712924348904824693173462307629227120820315820627584517569455393693079250436458700459940575249284598623571819889532879433085403361561885023288571736758339493616959021930910798473696695272801160859089617647492167154626758363312990434038046523688272538018736824017228699493497368682644124339129170258243977826017115819911701468381199544613425118565129189498747202938028670532050722815885817436518070055630109399298770703274224692824425498830461145184328012512078391217652397262455564576343292035235613074532563305954432741070620022518077011725399177993027470296770776531721199372260186783497095364142734382773153805077761452014042410452201699190581967534045633739907225347041677997118216166772491618670767647308331704416053701349662717821872788873664707885944532871927812933029927838402378529823488366818709885521208030058284794568026918582058535282700420346281372400007202383978528384456685919589179062301170030284490222484830145658093536756458005457725342326052150337667080195861942795158707828818370015389936307319095386144759899715541193770646149551907864502888752069181198354675137450947689019955393175587925076433738338500621973277189780686973129063272221596578429089133452486930926693325492830333033635127760166009563662098928424824747456955483230977946246963454930227602909101720191986255378286904126198000095308499239914818274587809834336195006086340838335945086001128238845894147727725313193643683430332335414207810914532380892963526024089032628239485885621122321952298212293546941992293299376724771412786898169687070608564204585517086884019891233835272796428824386770307523646913441865885733058755590724761410800450353020382914235237224109557664693466817212292112708032887120769369366814489160622636333204114050971832547056304154882116147678942814119879816396142352158406516976091631707479176557718914233759990367542363978215911490310463659704617993066352940731578374613090214662006664429074132071561245996335796729861203693737654679746043953397907314984399266810976944575675425294486524210893288907392346957880228814604438284435109631503028442924280844568083584919326300607470422683731265512082720756862440824145293623741880285455034574356975304442739082091762905672341457086646197530567409530785798208303122554489215653726368222647269293357350149189989697957542640083780536705432222014550466861303065222111150482170619941282348030888863380534284831825978150405693010016742503610121397948285770719895455087492406861125975898802393784873151006672327142219062090406545442904470235982503298167819262103783702091848628602198348512079735959575639020405104968027161437635447892440280186000996200979531837580731343363522040009594489709794360512826925516537836983340895242499344062754045736291196850230912485094405457285019967830428222118515362376581353663230143071612765853220419645426117879849804607163033232800039530089009081927458782002019928678279432716113641620696495609047798098248548537215882829325464867796032943401994398193288871200409729471878684115786355777574477925715532461832424445725587778718939534924023776151992099850958717542574769770857051047268276096742900740174390734610006819655125416310439134358110411989192848681096794775930381411068922202971651830328227841420654415058820062584312632586651809957534408683609941733765083359153847112962193490175739134312919981774386861882698237866616719175444368699337009737102032314314872375814577209839725701934236350571722030307926379378347681002654615706177235496274300230232750329606158447453299024658360662223284579448484077383750951197063212818978833543702517846754241733722625406819535450043239881282280458794173891781116866550250573808511398326493702412391216979163263346671981078536418696530940227485424535296171167999805856142774018396761483715776618381342858737235819269964311998617596610447733307096601352346668129539511544974502838280847210765950989398249674824220258023400825476958569916742140419526453954549675908557437246567908672856125521089319996993637739129782844623337777793238929718588302330054726471560453558173049197849968252014568592784143696485466873006663449462659130129791765787643933376717880981657080514085137594811248373291868650302627236631407814599778023209175407669034501818911765051925074545537580711812888660716010243771046897542715636832047684568528594974214202677219402843548791661763518154566306380372012915701931213775323728747346734465087744351479625360794574908836691538810217994560678472027984304402947591338862069926292628960009298712696169652743150715355259633609301933498079474920043235068627239749441724712382052499564085498974768043691518020092284582599951703615837008706532738859476170021652128042583811556995305194360228890339290006573567166090463513406531146776196849226381249647130331740436749827370682755735518911419195156160159441706531319422929835262972909233137615459858640845270438098750501324896630020490261485004058116973231559944787611081564746991721361546171233684141268423153848174988780295621622551664601066133185112874816299495161712210154888441772379079271235651528884665132987182418087115002925516306898626397173478039079515854547222018942504390506869756972387416003771512027761470533243707504217244920829697227221972319252971833139810105868008399034048327430534641844440866178789153896527635088612596277021006016335659997057959903735265197972619807798817443268522298275679339721992847986452707015473754856827415092226109223438341676894841980670579892398672767234390836470744269699737161443935419953900925845657599161458447537171509967866237975620767269312394892283449450709461837590521923971415828119179165957194376855459921547899727190202375802403944369322051779101567544480828291915219179808671215517407844290658529801997610912031122242558621532644439291424930686931383664769437679182117085358843710162326146056533611376101283936546589069093161509993146731447481085300671294752417093675127198650056072111636852395292361858625608005929467239068416572303765783884787334302617467253319557355176117854985636821595809129332418171526535824252997225859166315905057035491535566185119869758035870586205516158122692479756323617557168628365255303539727859785847368025419280607633839057612195830981733875462114367875827543448048891119635533211535906735239423700028947322835738611977777885151222579675008474867634529100531116879724288887259564326077470513986770230638006169928564489609820842874397683210840411905778994628416522378353684470836489240118224841876459776556154848799926495423086995716145151532728845718724453374655518138060366044477810869502964136717841186629629376537759896057706123955999619880975561643202763957047974241511457130244452152557794567462137302576083818966327234358498757017938707072045302948885031657461407526140576820691664337027897749288378633385628643284068278677259617800139476695460890439080219204748225079658279163353939851017776129673860266713816216718025352142180996425383214557224980130549554650780133309672138076224935338020804508950185467833380638431063960082246736105645652158326526315606780264826150673335472500669203337580609528888604832405057422556846434771660833936808483390901700340998685361092169069949750482816109259489793187103958163967996267232153500024143425094920794251043338842120308085184551540968319551559055055782831831637775586216905442834719575332125344992116276932443319624178703925212399840857804125041520555141133527202317193806509782367171916369920441429102963400940579495778065506784765476349816268838629470579312765721645752007106762229319324387258695117765004638230294368395302711951452378731125488457571633783554167825565094880088209446579568594777200173573575318508519982088536948798565846988430239217086312887484935442898709270011503550081154272880725472766827375570228417253018981388101255543237184966028568765321715631289209307768546834274218033778535649780761022983326823363604735012346494799747866480960600429457279701782875315996376340119666467843817752169984800036007629561009562023669802583127946276121534250834418890688125914236915509481055240308513596212495220535908725057620577041214905220503767194585384454092887610534340592679329089272207470592777223363030671095942896548504735504541355808327715085035480533175887151487243837781819313376991139943277627465817804348792474406695764925852137567308182928681472838900228302408449156614598238338262721158825337517841547409901640636224709476604547369880905010902084481773628913303050293375015141878971804196674214758291203257820666670573599191964476316478202213875584479425453862667080343745934352201592634249575312390441399224177141424373482437517285453277380349754227119747940221477423296099168466746990589709946815439460950223265269931455179450517451148669640548690390161305040613052510622554455836393316920805285406796061848401034970003753655136462749985494525032910931118852269392563387223310510575922742049971887709509682176646169388143554567131226330225718027683341736642098326208185356800142340687778733123880031339037545426139751689698384915447669708376957232331484616492268317955932405486423429935099720427438325919092699771663935881194425316812770373918973543288273738694736646790784992963036489192372910218963958687646931429120032303891766822868737154950401954951939328769659832083308451626462419460945693427997732629106877182910608987411218621336725694748159682900740754629138321205155921996574881990102682622155347623593051450954117827760072354071601890227286894129045487212387465773642054786200863625461465563007388880432646315678355225706946359748538860801986904649472841589812606697969189009795786262559681819885647533778245404863824278972588850674069278228983943116796886176454142381819505126338298480325455308011536922538079565185234619787630326854300251379136120329774765253133363040200593472900618921173375031068252467887538544700102065054562008957077111827202024764117393477357278341688314106287292261646962821216853663611032384225424593012340760557595441458812239561105868047830872537150125063401886785547011590149473456299040898561385243774348616776592142227277368834358256254220653585881872722606028371267774695471553239110504521233731688183599164967227762887791532300828603370229109511031307899324601786276938848702487699230128081352804572120247419769261877565937413621158583836286101276726592792876061488082101001427317983276400956417032880278494457833814628368551309891388217435380550672101571054394836564773018982719005976389443103141777633503689822087704984704495389729509729417717415059777278746183561571720531069689086635789410187148336319329767204506375533171084839104907812888382118705281704914970289606082483928617149273456322985444757594504865446172376349692537758203594373491426727233858611907761513350788128984682096677132669027698010895319532740907871209045771146169107203305544622942992801836877507580108194536306672660781434007340652125883746459364860754591370023549478327284691994875282234536622378730081005441053929620336721881232349901668284359454462125407866467577518913069299128745121240063026561823739503093585665169571272867527185944600399960601233086660334767515357647311014762824159181333222348741024974565993973487337503640360509447612878874077990555373035373791919874101708084231702788345654877431809946954112494697898397126754350304936864363666387321978855268381727708729494737371243805024671030321826113658139306251530897477491268582777848958929193146746569038828000790126671631072939499097032343450124660790627368617021707487635626360102786119002519265742696300756305751866490774173208583025582904698256527757447870054775652410027253100433692217146983700604561396009651384841672502323926574524689685291490425048348310286807961625526238181453387437689465824347701863749942082495404764587127122024806261738241722707499635491452025243600222160671678953169133587403298175389616600999265071412799260917589470029820543341675399678651816961119024935596155324476959712694800515198203288351334666238231177921516282296747785234450837568451278389615246443218357580062657232512673918353012045353313451822471107896137352187779872284462021431194637917756245340364105335478401129641756501414096031168776198383873040342476859618786084682798541154354593539254806581651171589563441946922892831638514836863720028379775206645532522804823132701267255299973615250693771746162914556213197691842006548614520005611919544671658748292066269144757296523303868769285700967610103005656631522458078150233778681386595865661269212993336897849863994773442848074798921036828586635883693978060011705907086808463922628181208075221031410599836987562674291131525398862281877242523320173249940682467911788774149790618868569030738554633035956953908483297047323330446875819227675921333911378654613163541823311485328764007675532204238040994463009999934022010741140201672605209582288520923293283032506655520701310244972371040753546898091170319005170744058403459814267484494790176619710351947288459415407978964363213757144840922486182458803645342624052457069649086140400777803510792207396075283953983630709709042781267461076395677499258800461759649100025114629370143262502100655954938193112606971251027230946058730044215148834921992348143987639265868952060479790327904235629650081315800726556045923776368987832858076828349958343404320767840098291538615886481485756240584752256451103700061900686460446255202389545500072458320193639982409724828682329536563970324803599520191184453818887267885027062203729320950681610427211341012370342210619238413667310160424631715342419352567026367858627659812851741221080478668124163911270588926884541140503599484888497954817904235131951652798038242124591127434023667258407846598936409416383169823507268256677023560554946591539443573343094783424649992907047980903198133400392393844012161446972932932277070042633010112840629379533667813378678671696505003543445082600158045710933215137922129666013144420755115589825047244170424630055516785316509341693226669574935229785739053304838231629121467919644133165085969395353777454973592254913810132548872055633727970290064432992643924258796278927373077887874756435062420896113424978462208880340295073698295943295309354006125035795418906434203800919479680928646928201871019536818702431448409066911337159875613892450092848625714436622746744257789736208021298047010359529328577655207083021279692221137160213951355978482545651624738288378891892015424025730822946043368278407769897508181422884677823774470981754994090381434983586690845014840090115191398638680390606466860973540221129202669596687329005900443572635718362710178418036437967057500752494607439537479461567180285258498003583085979742049588988925043538190491150374304652046794407337058895498172684148011920677435792376266231393435841196266158859231916885020852368571949912603344776651116120806439960331196154596276940384488874610614181287601205349809136216481718236616393280352725841239028400563358408499507879684860321160816567780471683995697805210654914945826109082965027525504890159742683449900335141148883898527884484530452255462230424301051983470508344790341354611866501884017169240381974621768057894327299080994724819306367450382375870784773135361883650244752722400687924236950954624074744113396866838207729365322763457025470257401796280841724601454871992824775726647228022552290159778859244856290814757474039896717390628270611839225750889507408278264345226866811590421156537128797514319849863421875665867954888422062016241341303960336388096987321319598743228780417067114306783891429309693709422116295872984202852095807300870244180797849785633458461944539766874750502610448508799008046166242387104339144032964269164999183700594834089617698714144025434291041051112329786968820758435345440188330708295361957280891534102796544598844667488402262959358264769591623587267702083455712873425794999871429648829907446683203388587100981691715746621752170477223866904268086538883381059758506291227082960021782201386298587539728431449790160502592387798913729826393044618318773407314682025710262162349126140446720222430215510185829075338966145242351426724725896718828766147465911626306207836262413375777118428229962067539299409242025772171956344355775723270119184036661678397385733509529959919880964493349281198238073178171183330846936591185461655663054643122945124147445292631234816267675603345932067698231930278405262683565176835702167842933262472115212876748297492832796127099789161296525504484115990082910130366370216228301626136475285900340450146287024182555065152536325451548901663534835706116826254927594298047945909787563634671107302168055090398047000171865176609238504236225198987101020642501877466431726501530390696298895284516095944454584021544980036992270483656758805098078597950423227229234315883952279180528047896462882422187849694445717295954214344184287222558657974317190279824628999715474878476082254118131167895159890594149621371794714377677424393349727835040198031214050946750969682114708809058329271443628067170970517730089536699206235918979284779416068536452031719434260337268812885554469382615657966774427643886948923011654552993290128206412475646458368640636888175537440681887779838867382177281114483068432259838694740411215249385005092599512440870575589484245803099840026280824343438117977376930511012193160405854747706529153890348357504999605109501850470899111693045293608655403223338369674131422737193486099257265912570251187640056343091397599692527426075320212260173277690639421109082331782592323042207138402756441066028923478021643806531158587796643378799405105909763002306650713702493338660090353151285023725107443791447357579524571440888267215341890204301969199134702062028030609472655460286011190142092880249183394039054792125652407104849641015937854528769563768642663070078650319768429363661610793478411637884292342122910332095214261001529175061876248206073910485168555099252735290628718196215671437941076525966989305258937010747974778850293241449196253982065331170624310826053372948303635854326878313831621804935786638381035096127010116652421433677083095615552979390360679122469347079519826469716058690772525009865426412693643259026707664282614055616828535232132768446593421815697870844449581235709721739241338086987822848603007898251930161274255040982370512291031688078708459304861751247061366293829969400773206681747715075063552267700598892320059737151202613017312593396038472149248046242332182191989480819156156854873221837059502103233763868088938900222004737979179133086604695471566096251707868401229134808126248650440891062461670889551652302108852032955494828683917428259679425272128718606971062963410616804639648410477559752702366436887133133275211076712705468785878052560272763463057279386195391321172730320792572289416141073628510200937156047443715122977155779111310124012161995571796450381632869886028917329907437957017936180410798795028405634119073900082007216488930788967035945036535200554958255052579097308245099800251432138668716360322367064255045299067215971509253605653794691985705981611962541530570650481097073540581662178763312491636124733731970875501082233190099099842380489653612692052969088091536353933109463117633736728270796303852077534189062253631640436823397176893857696925527182378296614462678787603856871854904867288784817913548639524322877725633533810859833802866987444807729523643633173304430681631203402549551436947111462735955775218171447163353206667862968925703731628123079554483491050712702689682851642239704377390862313873240704517859943522210633119468961420677981677016239912154749491363447702651397732395695809338362545821191808919892109214507203719063199395627106840159093163304914473016489519155512879820911176942392018169734346268977587390554374009810675349333248585335926057352245562605524524512301071769841806821703166397517220596012466313064649288710079519355583568618126872428446631129130891885251920477041895018413103161011011613087162873791080940605433488956921781492302084346864481270509477269091136793076525770113036753349555078159608830969831339576635525958292485365555898745762645534812498447059208531042475717469556716678350377898211995913243465634762130819530994769935146601203724231849017744657655320981687888449625503986319700214186783886433921942635496436662445225500938685914415596459466438705270205140981878755635255828131221730355301568514483601101411214213456428346092697569472514192626504915386742492623635369811041142385712407315529799578151347229238591556498536980031727754452616012225084672593613165514643626061469091850012148383479527408239822132419930961410848970523142012273616957116849407657186789906899856660359606210334341065826613378219475816095493837442787335928342414486557882545660634207325615153300044200012001024162927685129536915344450487028393643266858026383878582352280144649656837335333321111479102936787266369672223334308918664565623698819154287279589812471383022324138556577666251140922890856136264415611404434119077024291282878546696936036982017824702715023820111634347513285882206010948781472569065621872122421326720849610192927542074694136862890138193170426702634407670895464350970676281527414705663343943029073629599316679678687126561044544715400536410381662842794372278434118390798517895467312828313791167297182638499138984732678227239937284387885243666664004103237749205899576226343335697640394532436810392865157546812432778083203308118589173111619801432927613190047054313173031619892791719541233091890712787902057346546391572682991657609241464559515327354604954147405506684436846841869706731399620374698197830191012775561002572704199691987792932085443235862608847370478401749366585617655918073931484985511290230354424210871217433262295281931510901313205656249284119441476180079212105162822985243440535936562742826423547556312625514188140851552420792564791265974243657445974208516059617496729597160714262934095224204616876877236270220159014244469297195098830223029222831741601672487218896332040810111112139667969128014640304473346899701638829018040520684480947730036902986438713958157600083713244810165544037180897961934694577139791084133717787078795137538060210778207911868903918184736785411291711078188021009148233943900923393515714359518532119953473449390418325024932664548873728825478141622754576429194933550627486047939585047703535705508739968351509195272717876753224874099185862841077765857628416216696216258000116247684210726936581306902883138959842229611150332510919826970712230476580239076558526339497521840618463969768666830542320712709480360323849523903030793053401480833815574535747590575394279127567382741673684646529131209391686829809836542179935844730189885498075455241912995608301246660288486100816596033290299367702385960748632973160340160338327878674834070743955934002902395896309386532325023692010919455872224537250684633614858047917913875777887888741178936588747389485385566056914716489122637138087501538921684705992422522664665402756391454414639135598034838222480477068687008693907903451146150710558297858866137562559597038561900869452613079366505513756231527433310523153660731052815731532772235697466540210944552726986905481982942554911618547767897273390849398184143869492393929131291962796029393533242044274993309651905964561249458022621988737694375438473114470632326661174616846563029579415592650555528771164804664255017904478185298842841970388105992612651112563274533349423742071044483382626532627940523742554277499520484636264432592849090736490970237718505758220144138937942793730639176860703588751110054393277279777849860118800873816244129341350940382460208023585126314328538082824428400905238531474456977880688952709892040134021052654941479358769079927331483619912489974639616721945164325984023947477188705105338631319228629917078632461508635137157238930003135948697986114576056765338094009491107063066079204841748785857114844145310318024225098630331236955630288756952883706822427945698622070602018056307465007043787645365987775307047352385876187698973458166580133365204799643334316301913981430565315989893142306923205765589229243623160751506578932560828936547460815779548958351325050266667454986322133810194695324413683773697901875392767902089974415914168144999262036219307860007107856390767292514767547882892657983087990728898128798465996232981246882791242475766815286896801135691213264921357606841058813998411111730501862387536278545546622865722097334387591126202582189960746360190954677223795249709921686421884849756219249321699418935232463097820477770066374439034592009825473932505425399021648235847049738923164977329982350705612540944741881349857237778469541778495379825679245896039828377096827508817228706509835847331549805828042374562218771043609163926685481743100477198426169160712193477674808499954920928894449090758339594205742304310965572680090112487276172214073905564958873010662872063854075967984412310074595702450645529090111457115889407492560169668371096266183414015957853832274077430273257183289217938920418752732866096640449310679907028330942385645767170137756891355288511938485114339603211522027403673059193453136581185201176504684281934364726637493382508581512816108956300145834718047272749050114100860458328095228785010636900765906041103296322314205200451666510501501793066660556266180027650485753381899127994375750575447627862394987720863828042216824080116743237140511737173859276222324639576407130983003252919770519977278396994771626927414818489649505790156999244679049782867890614179232127838837943481682261412549938449587536098179908372378029200634602859823682705639920627728487749672452641498195261940783850100370314969594965321121254324425713600847146409591746737603159283726609050664217174877578719788136442373076166113234654641101144130801889250149863119815740844411855131450443394999804537246386073363842245308772428590335428529462202807827075621549315365865344236638174963244755000477405352647573492492179850006630473701971927987797052748569474559766941739584531498844522714590171514293769979539749387924167124701995421679915700177396286026365019081915818412421607004564148070057357815392045254977442252718005083886880466617176894294124228562452692951912611903854765762287710025659314915494016677440322061171871593711863848944758460534589285218533371388194891210261310286150310087677032284912882408569702528379358175231237841791780783350321710344987346790938269048991159528802295178128192282150161785554755063270228187651816592439382656058885086152673561492023182249272462792134190367120984590217491824505672161509349587170124422648148968609153786798471975384256469990527121520206413545226254016042310076569920357882441102614107858826896052124885099569977920968895662491590401304254061106350027914049301888979562326784434416052956186215658708355071931086156419606287611549885106461993748005980860686363847124870417768237803049348305413052005487327337254494809741198692574667467654977993293149599794288625266858628962828935368044807772035068687138724516379738744619325288140200040454502505954343690118313964777434342049339473761667378018348836207434154275170597591686700236444468498709216504663564678022822783824315575500830902453519586078032033674284254173107572475589178675348320354610933164504269575385415705537907160084976827737585914881465468941526050195700509786450085849378501910658947013535127190376083361821375241049990410726091327099882255153078657376630821376944584131815927679903871779098800069413478851544430792552347382771638465560716570427011073533862872288331768239747770328383265075830673334796668335857454979841944486577065818723484508803328530518760554628148555488229453122284540203950461154874258319325521555506402885511129716576440172493221964406461028694610846262703093766962153339186030623495912970013571440824910139907292164739425444720944805270496747145833122806352993232954734808938620397042911812595637725608994458696790280604978164792362094990543373960882549608615282916068596034834461502502441259007077871330197443895229765104070289416679653653187063899681233713408332441741381053221040194054564993015064312258420052787463725708887100976668433731807466534342695477399251985816123851795229828008787847060844313399855524623063297607477189074330671749215819785605863125450348398060679409858574855507366582452405509953039187913772045001081228142622095758863770218313583333358075870486974011325385748087943113208756584272527449086540162749317023670114794269329296618413146303346409967245105029862334896531470358948899370291387763737071277710977141059944772034485773908839338170413948107971777299981077547364364291469121043017113249919169022121768266035485603989964884433090932868699243381381208510925829094967945105855853713089519966310967672529388861847671566170934712738631027647771146677650088266899261225700552450713675879537034570367842578989308511061498304435945782074746768406051804396020321865940480027996836199268926888128237506440095841716814559289602450070930364479569289263059834405164265753147503232046135481595919414240674928467667514916552665459547635854618236237873731988726800068321683549883985412855244998616537196882559744667932182021163038060952738207664276066444336689536672604546334241516605433357577550945607664957293955560732141823530006860903733174282377451454462368521363937431060882512516338858647254553902689049677626969393124082653137155392924364248371144432186454418384480258215659591379136713976196425917179257256632066198188439496826731261939732745191148446311148722001897174041230518918715815902261519156567269677040084205254949837854222868192616322403607910616483380078580399169925412940635277479857672668084811903152680486502546750849147816630627853838233324091638981861484562500982027661374052335500229713464116607747980689933138058673468106487691786205611077311498145213243050843032825403975567753191442874308899833863722046543026341591915617582993878488521887926968938682442791740555849631550723124449908969325461733089509665443568909449952363699441858347386693242557570578032461332572683160022156242532116819618554573657547906955759787842781845055029438330553357948903332663187224987358191693065615132040457736619663255525329069509436344309564996484098056525047834126017832301885033147112223297989298390040666610238318602808806761653040586686336487545069230010166530200728125966516662316066017921342114360354212285397564893948377710476460672261683775458114631900185268369356811900868163917895385210503053782245675603688357322346505913951618838908890790548400135316021986391527029535315357992362225083385588902387165780266399005492589989582072004542972684821613829801589815142665664184884052185180264115210552287704042127131331686490351632063966047487332641444127793778591967580065212710578644312606648648815671639859394215971905701042285927532367730104753752058234652739222089085139832932883525587993197968709605048607076858492406850582337799033323302766894560717824745188948038577320272723771458015691864542727711784558318094134450818895944454021914875799215478723036292989001978992818962394862453965933752894289045707450962112198605592526604161792362541429304851336089166556551380549530800535921305352964130030912129219907262375082768865806224076151728282298351668106397986757898909712198200712820673525268184820533805874938007934280606309849640980373547951535208429059407685058751033668286067756181495885022765479778845610003511601817871984690220227939818752124985143862447817075365454023871385397499826548290808349508839713075514087876544147681504700949326885203342992943786130337008065485444050966593254845192788683094930116412366246785524696296796572499625070578578487767179405554051299014116720558683135964976499388598255179860013089605152209658451157663528809318318531400164767646906959438014125883244765538767647776522919364706131495255279765999409701030814273309280824062127650125415569883267277205780057454149792037536900335359778437087117303802887678937730422720069831526384782069560864567091416405862897463277794466220171931663161507454651209792925388902476371863162988710416298233976987366850234487712151193056537787842986463931482175316277638168253852726085296296455500421467664973255977968822816148414243168035515093408650968583820205868692242120788283763320535799289664879971826486330640556641270787852201265468030372816114796484265965183085364727765734954238960390295666702380989023829498757247842941765370917688525166245961396089553885821974457655675007683369061827993952464539878358938854054729099864376319613662062743740214639195393216146273872760651524536776406809720508598657037866830006495945641278412322283172951885491290896772297344461970782926655714845292614599650999198788540692056087959729596759121243185051481876938420578835461287794030637742744091033658659593700397348088172920089078503493273547316704860616536013401065184512130054696852570621307251822972311337871754010669141393586058571439712563140681314307905752020121608358909513822145804697303023319287659221210177559817569792513713245207848481261644821108985140595768736466599896039416596190834868619212998406892410524970726265579918145245023430678637831403539135169599087847766864561802092528506145895432284770207469377454727137653269342431046411591285999416264240435926736956823258166488851812739455620598801685326585148322133166673954566022014638369866538122120542773911230613048828029307941139448516378697501895701709080988659141672653127605055439740989341203481473418140579319174603354773202898642162171958865437849715624118824497195897766697108964046569138280494205286617264909797940672786539636011130128400777281685829089198655169816933561114733974376470126698302206186947368653204850503853846619769233146800263431690330639600506894952402198878514512072013518982194562114648676504266142474671736176986748059319044831099339496324363740346542390508495683860317341303948787894071985815892588846006808408663722011119478150302416294270552254264745228665064639917265338521035570034398941906976449370241204853138534368187959126006415973957952673430319832162659090429826120154890683564269098108903926894190258761092414828406799471965073188030343039462251516288202574891212978803444906960697363623814536287887217482160691051706977980976361984846858244817013935077112889592579520831497891206722005395534236713211467370388078846246240669363384251917859282322283856555940763616023735457461937165757303441340124202523037795315716108307315070114672466120097905014373590522240694358421162020695275670834358263824146783149052893542662068891640713755117817429027996793296585125558173667946069526259917594413915521642231952226865705814289385787825790873258517564860593851518449249922911372350196263260118069262884901769784799865626028623488210415210723713269184332779764471861265785499431886369696601887395861064311125475164437909474021850282390537127866965505276582464621498184852955045992946743399940709783135662074065133061110225517548766853202438525324571402440200178943349872916351334807759047132458217259670625231845315466693998955548548640182902921290011461508384204732719890190634440851056554216221596806206390298356561635391648646138892419601480165255742121351587879038776800020567429273655330303296664074360220954244619996369864926079169793432084026975851558372448450888925599099560176632376468605797811087144528526443231889031313792707032044440814400682290742047243322509575999993839070487739528380547810062846461768948969515851766042127200726585289486793668419435635463935466914472877584172407577130871217032045206133850355621705981489714104988222254630577020773496042301805470392018847360515206862688602571026604166130909370044544727105666204853657367089238332953162840892235045432850171650099100067802684277819676600514325079112070311024579205916466475722917928796521134434428450116474588429124733789360471044412021606145648290956028005702912987927515614625380435531294389898428072925740003478944021139787571806678432949038903486239667164427216875627079362495885518456528042547998419777218486940210269146162610994101185140180865994131577719124196393893668568866252103240304485322392177549273121191426308321600262043679883433723236339038801939721539425048146660740161565071690750042557339296366511606595202495151318807337071980104692635980173949338556909668441344317277137169573804090307959507343525777401426244807170497276502355671872955095813967395686591834275998238387586780185633663596401136379587116005786680362477877478406959754629085646125641687022311773511755204830016077853981403342802784058817221787235524148564186129564247189460648490900682338550249437723474601263477097253708888304882444265624604181705477718200812041689292462708862117018110146332823851718232719270059925794669667308873109624510715810377221308840415439676326469501731128870745217443651718582562878981457761160250158144296557675828163093822982887185143751116885457338893903845519064812307144677437620651574933766370705535347695357269169588861069245179599291782131502032126279624965484745067781032981199718309838659160803167694039876264953169600444236852334399291974452886088639544940299256295043465365145222251771515983622829638441712933620790233030570344702013218803693360322674610111775917976441360701447510228857242974311889381777878829274253682970589806901791189327169199330847879017325800746670088103247462203597501817400077257018617348667582644443596830152215563652068028505200060714009528775661444702644654155442456434012448861394231030707712296160352587103455033386908135266030681679726558924985279406507564757392049356534509232844447195806054316237943497191129424720526117036186831537327165389853918197817017813405850511787890174701990111809703000095572244538708031135521365557329792645858007100929724896306656063309617478025342558266321708527565728695280108889413296644256103821144763150009470394754406984682857015840607838931495467644733710319685660442086463114266861859582694996582556648081499336380634570654606682436234970833921258830479026978063837125762311036431085971103713483319880097710272486494157284592368590704273789498879150850516022542661872175512999177797318842419109798265424678739923204777097312411908499265042500799570937233171663347912115639515969527548052984069256062995466864883484287963969078108016872933627686389518747513864323679892125023016433485336950407371206236553738780806490325008179472758368313379753888554815409190215417899535931966576281381975303762795277559646726291642010335314515389887438809165772163980657301717026094118527984570703791889950397854733375572602958327363872143190791272913028969812325437012142262220726959488631474520595442350471165292473175604795061122996515135427598312488144755600036503138718522308494928196296957294888899828196270026326983985199595470557870881580298625877574036342865444949781637261310423430200990727821121283899393734529908947914425439306392508011567625895261158783868362912056734195432111232812747941619542764464757506196791179696476143224966660785943791240325075115826344603775250869870042378340826342425547762295991975591383382630932410711899375761885023193561457486131035013346867184377480070309309863052757114209906325641658273615593771610220841009718365191168349414311733579313542916207879452765707424561191953596459861813318271477740443575365660149112854012901961563945788852457672583034901870792916852124228463195455295004919404553371684338300706082688334202159170627159858822341954457732232108835475379389584741029264330955356668625612993293539014102388594108671654845371856835349709318036273858045855249058981435184082116071089763048303146845188640192731347383737927134203055922130484808619394737554353938030385268027656565569987051536262643741772658171928354445602629946349680447460063226210746040626602706988024720385938140882482236897418731859327979522769833177669436293149475546286662406957406696355904304501578632779878104041580521470110975587415941144973898669274530861891533428065863593171423618836072770714328994058219812606730451959117316242269243011591048328811791373615249064086460793478166004991132213042331419331249715794352674621647773465828284718605238629818932887880045061373551161141759302419092730905189107967572612576925636116422761094443389255991844633935115186463872530354211311585796269786741112467996797193866857229685438431957090440986987741028887830784159432619095924014633864625199115697093333202294106911467305134531827262123838447543983125348020841904200741296238107428163985627865401054642460346684157218821317962331264224065298683526886706994234139018048146105619458879384810934906636673387411181170553378056264259651298554584385526205981194988648087948914755509182965527772548320911393098619042754982900461598996080230505563543973635305399692418291065071734413615752413135666208754096344026508615295628549733452592765237942843689650860605768095367564904261607790055598201790261763353369775161177836379569965780056147313319924106743096066345108108291734958270249287199305977161119140345746817080945491366706291755826291065663707555634842730350867099541473710742592138109927687551807459809582866845629889098018350761291763693818221890046123997262667181963871351774649299060857047896101687545623383927598139365096329200283116487662018755402851655330123086380463098714988164424098846566514347518317374431683674018811355967835927802154066140221657551411177319988055254279483283789410549283142258531883124237020345682110365460874135891415075812801330738593213845772895263637270139192511882620509649445425157841103770084592764658905861646560547911297271404880483787170604465562152860800158081325944350904847386376866769241689605715020198051974277767897206844752909432484885829066595550148948763922172484861814111585545745741136840154876548824738181571440006133315131415765925274402246612248606998570379269083026055817875062502593216648049282535889678439121419036082041715969789287161813260200799193630241426818588107849917683127350809138380901926963103433110396869180015626062981049603018592137452247344379520962692313656556292135732496191480086835811316111692725863140673117431642952258593927733186564310653309892739868731769465935140651965855227069168756547923291938380571446882160097739012760065283467834780127686619624274277272270560276416144418177091461499711387399401731496557691917383066096903045428964525621396521279281220509821207073692605032233791324650668111228578740710317965315747452354831366097511699337277225683542559106624359526396415392872121706357657537858665008276492605602261208018099865536291920037915109706213680236316610301479061198469590371012626658984758405006540232202934863324255608783586321077026944615661919429981990505110632305039525116905108119914375809441968864849903910964519181713514838737760312474229090654122407821595369784673522010209281777956952324250318110496321533941379982851680636778427662937462730910753823846333194041575232101905142564516923098223118863354344846270045313715710318058533855416354990328311453531864141810802786941190458915395636324692300547357422020630665149835277587610135557723482477383439203796391215843035972489155672253267647117297286465986056462984557473098566093256701528127018581251830438250818633533416472202066221393264710340661575607840962410071503768948385160158072475059620397041677693798909149502741968340110727007620650762332016311446890104713537175572925955944744460715723502932912138964137579936703623431564758761476790928653992146451243272536554938120052427630382047501947823715275688248755687260202570677437088243481305576482054782484434721812002876826184073293442546826755162921413720271569756233185466748619661302607489071154137734263708455046442018994590422450144635429650260655201442958698087314645732732572758477057796967418643237129742309418892803928889489201061350828693911442432599354217123021583737916428682433532753362083681354190936965444675398942112537569662727876106826153419660817489242094321166693535116697168844654866681858841575798960050109643584243748984288699901744422494648286659056840289544601699505458239503499432435165752878176954903047322480616967306821271989517212651836297911649301822675287727359324458798648559667221542129334967815468699152943586914448927733730161868819980109156471897975334565777822818796286536630197551669678115603494524257546201341419232427512181233480987696165342497081741221959401359158751460249119941107044685078105211385279254213394580732333037786034244540357527052168272168151178241993726123519760239807454129288908962301998112603581369934891216336595217540029356581697956270181635946523291760553445223681606376448330146830397620544898949318818570421464681847327574915978626815243207149207678945268683637155412792125772659309098429372356250153245204075897880630929179986663470860978561451287925518109727625412564908517814186639396910594145700526502120450232588335548244661611554842636030530878885697624755151207080097649481926252869225103876877452025903471813982417510140525693390783018257921767954649267558644302741450243181677759122713642889807491429768772780783255490210651502484445275900550649633533696942351809124398579938351302267790611748702242629693797999985832894870949833319840936051271669401292445006733043048964011854277306107617038409365404278914855863557636690653848282411671866272564535767691050318940762788681914709705912228723654677863069014588010393046541809097778917076406975764596825524457788814727655923864757206309753556864294228714398560880432742626849860793501292318189282395254590656382989473564979529212863766585918328734936751411696718435591791591505256098471037911302398097386953344667829017964749657538671794996793069771338280517959660947281012540100079404039974698042411733213029165658210654390573182920604617860173579457059576682985590643801336247418542657640742838594351303045054260679540247594680201595601533079690270735802554633349985829944498644201685413240063592279388179991705833156155880388185043120475426781396682311670375982641470431743790639699930644983150147311088229089978651846137388142539721671799382508062464071031344831359377355900051933625515365249798220141024173068620990409198001116772065104733195020444164051890215929880540978024689781105402988749443049059326507682250886039462882229157360294458058535993558445849986774732467343201005634032475435016334094114493418411345949239305699744268257747020963366476476691738620565077264524205154966169957348404746599675342685872224791330947938392157140500119726471627688512519175664528572533040184293964502123142926049757852384484784262154097625423064406141471261578867049407479243718769904132844372178453602914893251112559104942949528451002460972321695472387236509350555730732995477410091084181905152894424812853298809516030664637282163003676326559135853522871965469050596134435298015196205867635297663431616296626424688626835019812446788226451572252458168245696181649498877662718032523885907771997725820079699389610839994717060975632372298016504466371744311188850190913831061583904899268637730368655319686170340127070112043498624642948004559196248703013011027185823592100258741136033212505306676165379164361891860577731260800848905374453864571112853538947740686678003537448835060772276785841021504266216607615673052983363207515564393082244499699327496876850350650721659645500861028829000504769566654658552979999119496253948718163147976364376288105527347827159243222279930021928705708067564318956725477968421127080943863485198628950117596649009923486293886104599687186696742050741470895412598115624764007191224303061183588988860769712203596639635232775420170106113007250411549596838394691278480899820265595090484844668573783500154960591581338997307464839670573868244451547208463845133111998585897600939574961287693816648721618219490357716220054205779307470739805216738799861144074698285062910379359035354168887985383239521153319590123328683404234139560949204511793963981987896268359438899212509374262143214024983894623996601848142439372456321177157111415434485803030054898413504488961887415031008244236967613566524135838081548890516103072926131129818212976401492582605005314971224681333337319857655599952800448216053608669521091811266221440518700299572207456003669995776895084690743361794210847387104668860728076605160559733735942313633122123505838075621290882073363904132012337810066870128321745536758434417193638551499886882650137414091174879579898886799002401626639295707768379424407924853256967976353129876266594940002078828552742766535011791504207809949052191714777075575587529831537728619943959926721796558153531581733886498764166349477363838894016693627816564043456252979603940061005712001933132252426226820723934628937225754084689546127609956862940704208600533682379118730190179541996718441267455490467361602821957648173386227121828401086624120032686732436594227637495815559968329344411950899661361391547719268343967928869926101959302988080741785793703256821194535755499703864265295871622767244501126820341859846192467345020526467024773631583318569820835884500993519290998674135840184188053882148867359271088091875777706299317048762131530682502331634937475321582577123527023976881649121601154572750857031782040198710429840471218879292152257319962530703939162912343561576728018627225741159172076553719695162596300364008874210313157928011086044716793523360803652561151442431247786510496830678920273795152773086243646476907077690765179052657785423990925828390810808011767865005087841058305351817801357014889484508654497284472238283657363478515588129840566087318213727871648701514519886640285920413687004229839273365326956317864425302394010740185791926774777035980037401422419722641926667343065306706487913620137250227079829521393767530507417287959256336954157095862853935739700609236014748934318550237323348369266637575966527004957795471808814304336589706871403075793253726487797318134271294264620495862959005521345826736883406408077232768192618604985522761662154155787610214749176907112369998197640837171910367412507208325108611555130708395585184443434993186679943842564715337149600021688507491994583395681443102845876080089580078728407306272746421898214552590601211740906220947113266575987231037738398901116899345341988025871838559527614441518895914674399166996369964507398673947843692299922580290875207238790611486987394961810688143868070695128042520929170627918731636717688105150607437598153320249611637344775346933468447071235102865090629227478887082570856712663286809400739804076002083475859689210684892078798653390553014569556267908834812637011889244693115293359621731695333077922410126548482599710827944834647750186665861746322032927027534021506209073225356711558558809740885774420846456229810745799022864513530240589496221619830551772233168749821741168620407397200066074882819209781150137813570478566994947968022531442016509455565062767012878299149279745273044323665952262431481348798879059919734298445822208918934467121516338987361694424365053680571509504034654163074300944441578856769183130672876056571397849047667840849331068454288157396059105803466914293221439490591965218233465306852626071236489360449039661032061465921813108689857766480568122496733304810154318027950389262701921968772974519206250144733569085311651636352302960796479418112350109395738615203932981944055916844631363840824876084695435607449007179108810159435779312855611393307420939727427537459199739598067792346941075187507544268774610962141977358163627468844091748047795035179649561196826554705684453829015320860781194549167238481814366044288896410353039204509143566285555364170529746305527650574522155734923309160044165510420478354956895900401958984846793023345262748659368230008232190649431192631046082896413235614714391109275785993921811746102867622353935281297271061845714991353804714404156341020000776309934188329115681761167433090090408825938005967202896248374854507263476653180163395929928425328613981083509320812634075942300361788577277427581838946156519729307530918214388719312702912019241665494579432901563703523074304053892131816889032154449963252597419888197783395332341813597147837274582524940747130983199111006936447153396240981705391479890139086729896943775880933411955367148412633004881697290324288757826069282429983242299285027998136952119360685990642671534509160426846033623977554115024584976377161173117623073682430849222581879462910572768024065085143150944104999314468571621241616317363366341038695385538113076579816999163027119783767442295543069590384341315362049755637797520894901975635510891860077357361251322224908218563331224726560494115171034558321379428831908309717126140876525961475237567038516958674907311708433398608304445666534210594352274784382863988326735859298615560258740398253262868372359779148533465964334647238397232452790204232283581453216446951015977585101889246003204085524781721237378224282979016898304197254204328084939767587046566878695812302913446329645729937680633180099119959778053337985808258181663186207512361601143035740174232294742988727758108292990780584368033044669477790424904814431741173146640772851361816483590446695033221212918748973376029169308524396297897328826648132155021360272997067524653465160445141019852522125699429535918972025989309136562138668957505530578335744800474650249550595285266413705848843434292055629604085655476120393801338258703584925619852681323848412094460037102313643775790259101615100154802700994767375011428616986382709824865311967912184941965665968182192130319974186338475308370126062922698632099928889910517800902649373419494117048129423910400461597647868319534863164700636653889564246944520653124953565683025343347228929532071730926116120776071563379761512189311346547340423526006939090972668062372669217910459026631642019487243132742539421318560599333355464322582471578112635759656446315480511369900086780319659760814146232526747092979014721997398999905552825509879562259109220268696034683838934028492991327100047866514847398404060581065014184530931705028954156613961501871249072429182058642953651193220339568931272982461241125012537051928144113936775024971038212835997378663056354782044945814689173423563063152768828950062584216073988315608279755172272868392678423334833273903878551902711064320893564412513157018832453595335273579983783253015688243014530830952212156687685351261286055454874929541890546834888304883520362463382623952464926061950473797438886779949268060974257042483323908195258212096824956417196576136772552928324721828498022345290678856556913875610214390938496130568230822645519148616042595836127614124246522769418413337494962045006951714715729429193280029415584938764569708838988659166004583951296593090334480045983880438000768943656203350156606532182600512563484502158012560014994504321582959552719271242575749226626054014456684526875104509128332705039932163551718911212447837095784130574154125342904661758633900366070847153969759745829887620605874240250578274950353316897198950613160444035796555901533376095672271768546185349360366689008745460537565128469152365874758384568444473371153824263493698724173801730380350409961303463779011500946510512004412690532959414395406560556686433215757839854973664058069454657019682781360629111198082374740590669949341847718352201422185231047034024696697396035998368808016211660357475696576562995816256347761866261770066832802015283568215417333521124273285215233724279636915004296456868906511878147469499117533419038145056476740845268278374613425294872004625352678288604432880324919961052461078129933087181082841676459124323140843819861012956921686511706708858741883492408922016729368025901823279122995667330594907189674905057996281501847707945484522560060974120787429554366042491932825633723779160141014096904579927382011714788694974371711724864038186293594004051742771552486196994326580545816461986994650518842771732148607621387358605208078753605319318721796061453767248967555804356822443344958391290709432427296366703271440615785351608783252842319260265463760683612750612815655774314561719972783596994096669592217598394123639313167736273819712986386888237251777024761600034118710938236284572680878375963113135127651262594195573715469898504809253967617660586115931213800790549889478167573629171449242665945515907283026040672561510571838849718380715212173055641409462660188572120749038106093531409593742197990579704269542080932379626849633007584471705048902701031523689526823305237284403729412409061007738505477831059839464717769991430614173794529425566616898770436876358836551563175470425909919011636992952442295196317052493540772768472534499765481382378362945656761157263345463424984407782444956128509324561472776593770587260712057946885958306023604482943408473565570384644421744775308523465013509694619785770867941520866173396062803773038287129112008621064386081523531758297431249282292983532065868403823891793473925994820745375066783413405831254765889677171972231591806664032498064919085430299592621155321248302730042982539945353524184304884531154975725287189109828485948107201920510081335868290554300030749054573987295442276694912186250407733673911817470524679295282200031718101554303062957926078165032960464610291601526105049843127716358202423703167429421609304853279981661697184536443553260797784843181938134612669363851791772380084633358010548941461839972204970080528136787545427365328797678511025724301177971886038541903554679616168731640777901047687606711038927176648972504833359583175612691305146071388537732704643169474479326924718595374369391331608941074339026082686135700483186583053182996347563240446513441901047921023090813214503463493431295710234969738635355930283798041489874414701985416743921986237860675864017146302593135434226637892577790692415636543027262170643761288386285036968446983282614656297580107160884608847505012542773507261067759460679167484106916272675140938551237422312909224361590943256602808617762548389827693588452918470169014520951759538139563327695060404832486647503627788240825405116959475819804393701150965530428780123505421674827265333120488390902333016616833491485248519494109508212343103204084510509446087643510819545478492509576411031129950657181008172884320005898386010041174286107729558453358615092291878035669575604476876629442000734978718706748706498818359304471392574775605943627357455908633837209666821555033500498245691556889421398819216569122257781674509705759533798203055964755323247995765321836577446428959934053311239620905694435697836257752840825191347755711596354715462682135736663435914702021803449909299017755816679426052146208476648834102368645102203747702215448675803222591675460371104656365803207242108149577630505975632276054252524913986523344391760444636622343918356648839038704824959153976676502878947636189013292388961666504272932418856676995579300303996673709102003697333308417272518953485828425313088639466521762018969287289236110949300289805061546367302683966598874639425815111917711182716193876298160164687549632650093262703501379261256020479726380048090467654191492170104046093848069698956362788452095097701509062286126738660348308033281336900230430210187001577479422127912010099305089389469433834508407760053038309438033215154225097680617950082088774174835936225978802028022250862557870594653179739545793728913422376480522477856610170725409925821331508604916997478904387592504927783813351053224802133549605393949558716080653582396594736958129760728501121166524249693185283968045405908748041288703912393287730814729970629646348292263749602304710285326077646585746357008086126993415507540510146548339554007674553965404141670270934380436507411689150150109567217850821127944760205965031093366346744251581084334891688428155167777340072899984544351925137468539836136899617486296826862696531850474494265721379410351591924877748435632893998874448088922138695770859844920757246554623661054110717910974652291141315862405269230871092437234185156806562955873205788311585743543630781341659514620618844319034958214240282857796436165309015199428593396766223945636283746711207114238360180352048463979208706466132745434010379317109927642248265399676183382298513379562499179299552369900179245600373925891073234194632036928129071532569084702383702107087287387673001578870508524605271040993417091213124669285278278184352789008875030340225170428580128275987449577781649334323478844665061985682082950043801323512860431326837199553744006919597563240343213963563471623524899098664086013465887008161759660739012949485041213776227516317750385153654604672500648848224718725016201102694277035514435584351158054899438931031527355250721856731204860278448831860887339830186762323545406143582173851294184276157578417143566638763222026296280028239514499120121952319706948114752934671669109611383693372360790995170658545684614989646991999497735734104302755911508263218519265009336855553268920368679086487696488073687016627452171413405301569143302035437798736060235501741985023198565306871663372881635785748570618097187031047843319466272669913052701527097219449776188111449450454031573329630790967904329181953326559079295301336843485799121570827349574146892148817663654686504369739951697603674904331874266021402331227242116352372508754041561364526078113420328628030943029970032092757069221185748235265981670668297933906707906953845671423428347835892352641715625020922857305048822019655842588586282007937696415440673647587187997226291148415424479898839884223054618331546706122511153661306659410336481540473355991382762042150962672225686532171407415795639251832932466730440519271257845055097532157234506756980587004800734300538236982446837677423446063146436405828812889471872215721570972417853066057123376319859492934211994957759332127857688659763362965111447497274865406004004318861793867153227627299161575127289888553961104614805439893961560479227556602491640399917986834044793761228662761049160350880557116636836617456886568647826317066297613581811941198547402617741580073842375279618018647472478264010301730622412838430111848060849900936680253152559575869662929364011542772715520508665878912410811067153444423482067018990146735185585748994299536974580077338544971677967727051883551698233289180990459148855407929157821782263517588072763367162787776852067129412217140313250598660367824227493272362037314617018471371163483794295329421942282285044795294961936818295220661980453443299570726352713239047757696316939155715741239890478508184226955548074685048668011225083361415377750528990697269828118594341672302229050429477572408353490576760097727435710889016476860644357496250172667680986416402933287374164023841267752726932812056701436759847163802602366433885326018419284865193000576918598476215268338081150696847831810827009199752766003231895791454074084354422079930036297936203876850583654975353953028014186238868038466108293482350960406767146980784963786452414197314050204833942513015919257647235834338758020741239289575781060101503476038045187960773081161760601844779039866357620771531871338951413544377194598581141231527776201752644751174483859359095529018170929126500305183787841519590349247003373907609874648536721243802806828799593835403551873599535272369844651800568371608682296765878647884702443361572180285447694184345153381030473369943458100806196368114424597855759224917952971738351650536310139063971220973714014883540122167253684785844778758935699066392411056832227281383425168995221292002397885093346222308093864847008734981576479446186250892730156812080360584910199452113120321285787196132284950645645174308758068209772147211543356558897903725220057044452136065365259341097291823513668897890528811927206595229701183251150421477513609744244680629082355745888553954215997918053513024271945067193245539544809567473156387337890404988066112890190348966393943252695375771826469848891783452178886885801449088386453204380921548636738358915012506008890030081238269852267856855565202675481935804376832770050786386571192057981224530518218800126977330544643783455795565842291907573805538437750752008294754573077665852271664004422019458000493031965913477351286645839199281251695933310337094098714314350504693814009809924026378936631014181953640182437735648848216408151719858310843556120780293348182902938864749975992496881566000341600038145712532167431480749099606993127879519234378948819829921780513253966338361659434205429429711725085586533401811536732506242258804014704921841850816393217021708701117746264595706102118221952450784604521096043818465071860392780510626454798719816778659257893772862132231914317818537126326333503309384610033923137886173443194871788982238205651809244365982387088325784081457235832976501194654217370891259552636652296863382900149798911220234080589600012168561799455652945184741560545798553988286257786891855360920889791252821170017898656425625502269034966229836061127577714076867646662771058371133693349774403885933998122862548732386352094721170254665907961366383010132362182967530304288738747658670229531797550219588226894441668250666121870844495388065599448026682207210938662425220938237158868037963518272589923089333287859977418914023598289562526903856036480793511610870407959160192551434649593985594573176929600379626160098591038199272307468800890472537100120569007144794204140480285930798193624105875072796159049340338391959171723103896807612772944376093657611782968969429940371529087829350618904801482998962089569495918799873865663178870910435730915159925882483411422570151920939761469554044161770609901549885547957955690254240014032013641241577044911314557192240424083594881910882209247795371529442589944568240435911600975644810715909326110047121243048232101789861783645948209636884902568265398758288836174601907433881954389182338992818399939156801395407753864136761922737924403002410171202311492715897025368775876892351606663803994002707161224977865271876054215918616479635427917597654444299358693125790556463038887860513739761319577674429957717074489242853975403527628769599615801831024442420407634627021462777575858550768745484186097134478953922465824127205176605456951532329215079497710520766189676627711065837094381073933055923037649257377631336665860089022828057883010980111510146694406669770402512342763966413062390874794506204658918100832914921800665678095255475915459816954341973394260876687656524541609549595116593565574365664823364827625084028916662806318376816237271384523947299823611634743001890252402951865819919803098241548935193049754131104838559880143236216331040606912445844902049035612884585420170391958537554836940914799814643681493198256231356054566917887334851458480804104999603154313824696430189765398316040504179901535212260297605835704821048465445912293931232244354883989442441662041384432466295263212777448550659110413544919689932816616909402662354665888638290650347133418206368580163118769689890605050739499029623870550387274699285879022189545212184730445429123226066350482629341972895223916237717994745631226898084556042814747337358015493405540668098328421516075537812958410385013832653819139202996022446316096483831448366226479887320012478822482658558839962267447264689381377967751915475122152078809724224720712255115730061853234620776221021377687027443560789265456598586293207987867486944407021453082911296038957714277115302530835082679655049608616242730822509046380260309153896475653394322183113181101317350064420881973899306702789889988336849978081098538248527861274142693218896054944839960937211683768954318071129815528362129175777339584381934127852038784044313149825796523973727282080979852680676017900363434618619415568395419443120229715686040945366691142555223348974011385521875633848659207845730788293923503499812399109220495191407423230863014023136445906003095396358554780693230632384081114949440235683293364847722514847116962157213871460078853200445793634865700074193119429465563183904292166162522549247823900161111357762358933129679948803095810222379569825998570622794134668851392792935624878413568141196640320808045852671319673682532034756595292179031982600871092112219979794105893111052144416680601150894688226571528131184722027482552092007496721467594444786675903009498804643485510277923406972309426377872194367764924642484099964733712131817259132906261652436896793093393234192183589050960680152036259750102634857062057048926121098133001110342500378134835586777753147616979402879990684384391617584170717175913398787863025337952464506963775604219222541020278302814620283349277874272468767683459862732289172839392413825778834107348612009451037221771361862189128741149913378942844133691460866828968467102591730172296619548243437513310641570840748145598612085385517565853821285880179946139078134274540216112024961648799207994912903568585467511731467113229110370183538866015098567639039562057260268481500556895646697382655485569112592212714175393249355090834466119507675579462983732466601332840268785186088731583531345608105430788711943518130094730550252555114030653601679547167125302237021220032672886692375125348537079639579015824489937776155744704807541424397178055965357825999664523332014323539430033374935731600574366345792491654128311849628809580586245590507552314765165130876217654855935630244040608418035793420627858400959029663962063623193249661427662398751036071259279017033853297008620866687442137705603491580955391024972751494020034806454585941916198049149110396433569306761844099817353439856815113194575458183452748278121917530315709603579933444233048899994840339043880504320224980251145302507100435744888431145781841955946003746636706444794722820324244097727859149926751683324862369517936276745756100381042585593893461750648857722586913780527627221660120229753668904905762951590983016749139729629762665439932671875661556243306025289148555437193037307855916259427449360364536923616851810587033958511311080221691136023877984939982660658480733421513367092967627682121932281401377951667365681080169361860430568731827860987282618053215704846264794764666752780388458689831630468580534325902346164029865606495537649332666101579932598857471980262048360848464286148170969801808385839121117270586140542928142132539135173730706785017050287969510608332350068597702211682842107802332771380800032329994184989316984649338789162461167909407734415734850345706545116945947697067726991442694595762862855823757580645355173166096122979871996075305208080677332116833744699006982844627169168022642502284101446786588381206906330518966635054518272982745543590761772053549364893812775640277218351355867772115796866579055092499151187332544364054885611669391381720826870449746016051740582329341852513275592181991184753672078274867337998262371235090513212031014799082182511898476864122684582062544891492248540942416829062337124687614693260648628760809606011558664831836946185320610381117674255444950012748401417834585356698650655271989614428681729989664460172619323256380461383610855901357276128186445865752241759891023013616482345780459185606461248035617286732078799155556726761377241996935761944379878828906265172703021061429079136650927539015797920559025342645095574753623025977653738378717765539079150646765747220105117126140441750422988127525289922264488996128698599818849447705956028413244228273311298818689570133391137354205805223493383816989199321821117618489987546791220656698222376387081537143079463328669581303839284239070362733324549594060285502257805216518000508615716340542976457571355095811047569460366583238111537140134612441151861862057966289135430855388564872577618621164061739857375381958065418431129454264051044441164921364064266934764279697726235692286351805402531227144787052275983773142779702259689384949402946297381382759688155861552008752826795485952040963240159339058266422725457340365051115212582257560516020412635801238658213914364596239962246743655937527214848524728186374276705991374723693115928889339615968609825828606902565618279878577287594757673796751434154344311465782284882618113841251388648154010221823448490785436699757736474037211180551080731523492727776356690317872857589185193960628666390380671627457996021865526371991699524399831791459004279530938622217215556200295041147146405108557386271431619495273995058153920107509690445897584779846193993656771288929615273659241563646040867558226221692452596355644011144336002242716582070561902886521191884129621873713323150533156118175486891234200131375607438420972011731940526001982886374985244943274983523096307527341007498140460110496185912091347918598049920316379831056064976256132099963480655083163345155710378981762947793696866988372143348772017395432087610516604436205279804238650597145304292758389124370220679320170818196937533808153352149594160515618929467211602235308740849136851784199526654569156365421416968298718873747801522171782869907127014677059541945997634946712850869900243524588216551374038697581881157783773622730020501128654262057672323999318968511048106354286777529377819120300421499515600959084292295750007372815946937219472273616630415334115492906870908152522941742504551566457532737369199053485888664376577709306970273135351904085136051222791492075822485304401296146567110346473432327133229809848201721513600954247431125944773095038122823607777282235603260461521914043453099315728796419246699927685846782476789449220556178908732907013432407997230818113219979770446639501558833853154278621824643307490468788233277280146372939934337523853244959779903867624181641432758361932706806131913638077822813709650221522110070032172800588695740154499479855634929017985627863591402906084511488008225081954956210529991394149810155347829856860737506779311471279922453330417265781081707944514098692025314876025495903280305821974730457710382145970089435919414206874932886381792805515259966799815539349390203492561964336371469110550397056680554445499000021112914921241896317480061368657052199644654136503975021803037719199093683504730605698152098504258001596199133384764138446961282191565232194996817859669479426025266846034118678525320326297633295077596986857111356669278908326285378671649252710924496691693837460961206690500537645966277821808904044012750850038769329041590432133442746697085674571758973253664171112313673749710320278432316063967145995651581785015635551197773746920856399457386939890173380199477490099140913094333783242866583750759348792626791932655111068294699727629069107255671745813030195176162238150687890421862380386408748757138467206100037788241241108922060394362453024217478379347523163308356691661700703238492756554756417288191467742410459242388691066566451978248515389920296093454210488085302396839571122925449966209338095530913472732344314140300949565511158390604170330191955413899805771764783549121287613236825342573376675013517544667444125723424908094985074412179035243418137737592998999208237367948958899811844101434461295804544142613398109399177014720345465572387471460984741078635201173368336820188134510053697991003308000802640064511441085250030219958954248770385918200071498698578492616302779149910942804439946815304498425375579767445411932008969537763367408555545030011643592289968174885778557364438855857674164362523493170282945682924889953215777650047295786944797285366322266358897016166238603191197426231555304268151609313043614856445458616673230410115339349503551777523525005603362253563248652983919545202176203399013734336002714310466259271690322929731172558174481638465472253573882050401167178362222758458607348741073989331994923465698559178464717463513588284473493734706486752596615098821092255440215139802428332801783144397531053275331019938014598202438458404255520952533311027968151603513334277082201383608679857389727416270967383413441235499027578014985361725043079358157809353861453413637748143526086321406132230101146726454650092500010776782602634320718277477369587008521595340404810846444465577621156274991962989952948096136550515046055211722279526452078877532404793948398893187149030347217201160359653176801928456963239392225147129129932278935232420705933723320062997990059525061517599725931582930914525824428320630884871579750519910343672835261203842268351722338165359459473785522034366734516346873492366753274746928239153210074450916164574926651005986770872066886156795363721746219738060672908067689241719119815576576097136067543971391036816024795225101639347580789439144249381541969291701795797617696012380029656829311849352642263296756951639865444415783946921279557514465982324487922933775987137078856383834572498287352545701401210944639802459098871179802777282727866886764462407482106140706330803772661347950543357688915583214040597283878121161101029404993416298397407406858141499985507590843302561325796415576877469546723041634681035191261139316731026488220917459724234985398219894614778772970383715125613315865114915022745232022640442537560792405342674801979345393144868260219674311638172603950102652460869952967355116512628420054686907681933391596539346498683642668825039597320781190160924339217448900353597105098312714748647606682485657776286903988213286403302597875756242049874732268130317078314004300443032724463474786430514296864109162223891853729501542325783046755744134300965145202381022072857102628192750503536203442624642588439485816089495318287547020142877249012490978911233035033467068159255745170744728766017000371191847310511435760072000518731298745220794425275090282840950452944767083579337205051393419375699998420635054049673873609445155500293629696384424864361688693798698546103314586257869070433179092245755512647142716404750113330436407013341061995077101604118130535206993621166340573632643783340670010939589995572677242684475437257946183686586566876847068152546184271891141140781124168196989668878599428047348974903360788249001323965308059333334536426390491150488115972507976467178286998694805313760006187281417414254526525412963014373927109637040481498062926921610628807796773194439398281655232706323925879891084186386621367967352054645180135827645656012817872638670068225702713283412931822068368058387314812362979015466584202320372494293817660383616866989296908373130726881907424515999984019783449049865139474582665039732330107029078880686711858370562482632801881392190195061728569075722860370319531644352519562044990069874063969631439089114137533335172352373023976519550244363217611754926718242508970485868224194875816034445778003981106323049588293342317712321907534529527622147560569479364839626409818081966037546198537137396196366218270482651021806098624546195221782821021497414403277624903767067871918436061554734224504529014511699829158498059681210639214917394589146119298572849003445319323547812362103203483949813359535315657086076203581291845606163516660752073063369281299901325924322235838458257478460238566377397935809277737447676260109310951869266610497048298058681812291702261885289931853023884562353017919349066130357915328445561906686548201252520300248805826008252514743705036974993046651535391389217106274919485017319119733619976711067050300397710245778364624510070663348859601388105507076666577814261584451456933251219050745600707629172613567442919790199194400427765204208354808426161565339401314225992898529029008755617579832139399010564144529692506236667557020738270668827951878721218822483464408118747776857379046250731338434298411947806979421411501199405256937286610561391628314905673344424066917906161896466705679395813343501219701116877532376837446583941295196783345572800188652477196846475878269883678757032123441527404758097136622472172649928121408660408027343646386023728849859429021834327169026072845621723276840273291582075158915605099558618719540750566173313509715294907702518486513429902701379553728393608516515685106090408577410039581349764655330768017465252647488988345555923821593149535276376178650401748927858033246296176226241358417190838820670328394715457284628121023812283404959349280660123978069294959166615406518945785801818563362453709602939514816112179416924481752009427158272954977855187720792547607890826792041476003131482945970215089262665578322060350259486918049430137324193166134071428005357764559074060526960851932598762910719629173795197783134659598936365965356575295568192284635445617864360799040034621744956445826532646795906412984147776072956319943032225967550148259467806575902387519005073909972254807332110965192045659471370229698295878596491811209619970177484001015669474418363746166784119589741936627589635423249500767732420575013415799474149541868144849667847154564807243121125113466239878566790826825536579013688157603434308827490626006486080083321689665893070635186045970105469365934101878743207418882230118415288126395311764527212922188417987809453916305397387845866720322609325719861877077923010985311843917070187121082294836197005157558879615710457872901021949191108276234270649007166082007556785530513409759534962506245176951987062045772877229241270669400561107900014936768059789517124367846869624230803715783915664721248445981906193599452057133711782382709504503506705321062782264110950846147277436388526347696890872791866179988480248524251210506611280114201876253412804045414373814089930263195693673871648859953488751003162171287283494939603882450538595323967400672301495943183052664664240392361678039649595186260693544196467262870311067931578957262382312792538338108260775219707299770773101517013670866362325184758395666584583501158728300342241608391902507642073891043761436027964046137558590715550714357606647067543116041448681963561214670305765932820619955657149090895346659414563226111222760478725266384006624264840488870577949382803633354274281827499010014685342727260398757723737587789006521926255394751204596286082287330226348450870938625489201407763098911863296367437077682805218687483857868536891967737652746441870698811956874084648235005826713110185101735581395289183112673456080893685284928759405051832493013493500689872942949011763390810304488285750322892682357491564999111964531841517958672953740014193652776316491759148290443353893529504629256118734061283127278905251764670225930665720085212979864231256485873293774718438258527469555128129985451276977524259271010561794557369888107676525856856466409850821670256071375307525634549142552840121482085738492758122373230573869292959192879933981024215960829385443190192803681672352071363417458316136082603962598814394402781873919402214925393141928803149735887813561190396998359885278628270530687540834436135326214768915049275923850476840824288020291576920372877817048571915190188007099772973368206011667919516042399452542134571473461430274223170483179722755962354929449131398076233358990285538228979795361761347829275468842667467370145220363571117449358878562093216214846849689866379981622785732218834003252801359678364906282282403464907160878840124760782781929309484359385965874772411681407354250258984785955613871860848029615168685712327805644816626397985049641187767774513425077216526951903910889442954698195619807671580801055093593012366199262791608277946014847989208814418033038477741679665237346866178379311192915582709239954274077972295105817232399583506378759329338859464258408352384859584565818401657928606120212308745174585422258510588326452216839056975686026116428688523523010312630275386618115581371993074921789092835133308264230346836572253862518977986698894896359524679487056265807321809463390864621926146169642490031667138110887410464614539670741008105817001691286582708375885637800648669990558351572202894901496456925440055533740333679818680957973167133877125469062158010171602847722290226009244863426494854334411441591880117907435495816127367018178828512020740053684257371125993110298548392137741167117349205534184142959667906560861652031426221708845874164550922775197633307525625739023710544732562836746740516603272418554028018089624322800253640620690569730848491869260829988539514484427267891145447039075264607670368213551583190872221721091530325118414633200112276256596440830224327161474568241726933576842170013974767698038752242510555554109313371792180569856598433238092013778584595075684938044219007892470572410305363162091403394578012665342303583217236543378274903413718673819011671696391317512556440972203468633809711412638353853380111607449521369967255643113298261577759882282415389020064664658342404413763741551972085002263417678879280563472188462845724676085361459551260304968397525512725864873919916982944769125299064075950252989643051354893665500173236601738877310548820504633854036017539895239294606410942031827894855494905119114273911588456553425007032001611884679742659818525593972329099278577465288527932087209202446161072783762046882390803460612937138466701639193962076804191584058580466705076873692260642745217759516934152604742987036174200497122782396149500671790739475531400475381315321745259694802386066986875804581959993213191922383998543014356990837408079357764592345889006078470364719236222641850382319610310816172611531587662089400368606672418003204564969936012058177242446116582391394753922621075873558625154927926771883841451469979459152166294861586865909154975756800488515664504859710158108626221782213460768746687146031126744152707812049842149691359789200038864346680985513686929519667964709115694467103838210164288860786621582540662922230070004533167722183243095943866045124632513434510949786520477383033155811011199002070256922567330231166749814800942847078809880716540355096251686976774819540764348558871754896064992059119959043823203117876429186836992065516076134202555597870177717352319935213137814548938805664162987941427668900977206952564742234611109949915666684538706709077502585114675655434350757607055753805373097416899475947712981911701794106337263489984600500446220489318257136159794217706938538452265748873503887264773127777816741964150918239855429466310372780787357672867282496458315729301105248004565408285516673131574383083831230630885877503884939245765928681061853750716191231679118119825658055936924096755203380673604833933367306602806074113338786802310384111465931356119739261763108355097104712801348716439876945952509108634076620115265672024882221271345951247461031893054585233108382015362516534076272475555593354978263444239759129353446700268745188570631104504286829325956668343312477759372084355555381528312707964643147058980272979453781445784212455617644226412887716745843717987195197665992681267188045926915578629019467912988103909199172010450400299309097694160079588760735261567206365360559244407850505814377748725538605182037167100811886978093586338785614673201982832031103343937006733489570096945789169833272752308217727981914105451497752734835675774454914109732972559332534098369907529322018776159891188020856545770269784777260480493725930357569309101557539724503273738329279186658844517198101148842716078440424040039016066436408880585271383435283840604947868494303809934428745391487377564136327976229547410506578225948422645840074210343165215607589043148840498230526036951468670768229858179334835483801497664207283249576896239795839435792344572483286842326390437165596919004102383763940485113960911691848635975157053883509501612204044193011359756704801726908161079423846960811630921210055878574645380148129025097852117795555204283868527773445934792476819732709137978858418736666218189145769374101012079514113198950658085013329000217322164350141366459244912015450383617775943951339145362650066408291826092077407890605046531841607882310741703227944101757362690212784537520823134232798000999796797889708651051167185006190753748451283049732765016334722062213594180899107330756211421973626442522652142118182953496518989266117975283224488914711771464526472663186135770996989371684319370073472493300299357589913806818509430445057247051476510095543925507454520333616157406468862940212536142730131003596307680560531507094020444926042388785348337566759196855160893143420698885630635958673117408461857401584840524546326392187367358391108915102719943048802413167282500011382213772579170405583058088252320274294751851816910509546042042910720358102052370913957848423894285570701009789064076979718733936730274865651269986259916418219442048874808564645966980244650822894911228019185411845716305272564971529576226759275018123039298694277965080393759884035989182909747530144598425999065120210810779963420705784295349098696819955698537575896413644083419590766329076891440387555985994621988451699553271685163808574532338344060615735799665967935580160003942727402062782024518178830811934063676856262923147176382252964767106890697949737136175932951117523452364855851104131061326460968938048171029491194581485729928407734733496751042770988392896538160744120699586371044571409361460131849132175625972268290330658168680673312396769098156287520980792551989176197002792325919442497779784229004217761872366698299498018416480056660037177655158918756107632624546927496350913763156924219966999705597085720884716214475311666103873511742342691957076593950054317644937651008033239036848482938781218615508725544658067234358038048831277424488692556270019383634065053270186672081646372139774975875125692878171052479746465542920591406368519962118029909467151831762261470932145077310743154317202227921793290983456315306771161488489835993770746033145813053888179211877290272634528130326365178625718701233992900343247206113003797752294988607771100093196236696349369913962611568425360250284714735062387603186000793776431704982380193580950183735283290854825286105682904235462373274140615912164959719693552327588086430057939352787899904974688791282566789547842718513739991173799030439188737237029684905328627894282329362042464872532241612704478282643480649184038179812662423037109139099872067331764167609519219625955581637281939801787575326484617011267100942951739571366761779369812227483198919292085406285421484396650144622498404265434135385259062749975357424233722601963852846046139327469165353598019731856787766114666565339865099610856077493485821141024236665893617601454465280144016852953055978536081071453930746977304551481330566452129657872461900860481636171911925982085768192948891695366944954129101457150692219123563183108263658898438173505089154176174763114383872460396165453616437953666160514348820834266867621781237424339715822070506236499450367235394317179502435911835927198280158452631034266738394165632266430669398547175794639616370193166158396814249738301209718436162563829185810750499756442580367275776226997125721062958387358652423300335243427764357895327085375797988871648347916501020846166132508213527355386762953103126427996760233375816886315780026093158375885617908833402247130051505199560773674365825866389423780323431565561262845122097368856544570150291138439223695962336889524011668516911792805567533251342918092960655912838874864739099629479001203688023573726507045111630886506224022270705009394894484276359507553144064132002484109152217172587135835250096135730444665990869703848022978569735286825472391447318999026500293127942582086950142794265321723801167795934099292845065472176183237884686043920170710206899486310491522606351331955920513254484367048875070547003142245364719070362628594479459133594087610450231454257864980179468987089271593431187071256849312895868923474344380786598299935369780622637774722830017381512728401260077089718247247894202824715778402670881329655829369095249049330380031883330698347481446097866759845303818661672181514239992112529965981955580832584833639041236687036162375703002238218036312413340125654123352032241177831685998219812699989707161893094396305900895064849935275136826146122762983237485916217481467933092695248607570762835403742159287061000479651890052938692248196822919788641314975043499230208540007420106042411085682022643095749059218390343140378445946943343691106786047533437247616169823551693296414365284514004285691474212906661889283243045744634206657817931545851003363319588923147264642055947371786142739263374911025452495291046199149120301306807921163558721654260768856517756093779955674334269224786499803293860006385708905505690280499874815806276459164380079165783854897721638244883481417964396136811191587260497144529874640316372418055127404341121975271847220032881863312575199796032071114424982750535804780895587318335044431620809505060933818509908607824411607076165863936958317739924747842253062694389430407621847584135965671720266654353064632975365253805240927936583519717059738575776576701474944153000089032361908019727740979107635632749581150520913087233421983101132478187764336330056052242204783968663936469658011429292389138421109412113929356588335846833597694373620150686639865261919580775504884377814220575561566763034578928103763561796518163560965573951816247427162776033378783226719417184120359117758169503516082507750730203167056948510537652940437251387026294115448096217664887069950426746871105609273002829914469614709637608557049204687100156178709965572179224608398310832353128202403502148259016601407755350474138390195573621565683836455454437352495969998898975247567429579192288367197331113247823818347343182233766267388056219343310593350658073300615175228412936685128320019164382713140189404182938855128105872255509399636618263209955915957149551587538806352034559979407425530318716035134778813188417474027675005688228811704167575132010621964738421952511609443847998000054891300898492583061396718772594909542740301957771427918043667171440308274481340112247860049804805628932099145781943097345445602485787161481242089122646305472347086578410684440137351141368127025412243481547590949928695336467966843529638802857505368129811758397066283400375449574343712937211437101202241712402994199332534292245620654011159086782179118732921282038360065710723169368071211378470215152094158875793590973409002424744396512012058468282278654985950381309725161198059121819173763177636883562353346097239246304677424445920037259756714372781559334687477181775212896797698782686240741059226741320079211835111712636789455046654994978609479467198025101099152159684699574606734996608621767471160870378494704615739379363037361588337428761915344721059912801001599373771724094079402512952430651384507513807280223214166288523535934844800263402832772175061698279095024390159900694339324651598039916410854193300386270344823157548583649810149882248859400948281099247482054624697496537682050930181819449703820126455093890771974886509410826475606696030265769111814857426096822380621774438522435962862246098369778729234208861105836712057897784088765832256966704331448646376809582669108708629602539114704216700304052715955401761252223223495964853188450403519104121631952490689490675813786348013247974098976698282725750509038985016415805554254086135735937415876460211073988713440942230904746629510211169670384355761307600118971953333955309583382670175126934395469925776930814555597111381703958798986360345933070481046893458222489724588740622654668358407735011369256275804677011972404255082701713429802685312990859158274136938940690292933561796467939124796879412252852805494509749411779095737998668605868726667047934575463724900006029668921482843448632887720579088171762112853675571756624413039846732808402137750160038411433361958646033735201642697815483587286253418298735519269291690148526367877959346395042291536677942042444345057895453670779410974944318693884942669273711412183014919106670482358773098589287204707491908667356911742652926885853183491147177436215591220452064818334351593838138772515895757245799348750957234908435526787650177146791313355461865243509784975261313082698035530156792004524358431781539221821911315591571719861719381052978373359110126729666465960615228424225232215208023851263898578881529342623986712450950186391978533409605005320194686955327592208247647893949122387128819364129009232953110381134559406516963840447083439856634224466719566842793660143575256917757000610528380973002811416449154436388718445695131014536931605074345225886134363692159255980063404949535515644874792688280051953717770327286163036406346304444060277154509911377786919865143023007813824697920282847864207426613161189827727646121431740987062252680345785581094193343163288592622349894933061097715013659914866838704782305945589926185057639009768674749796701270520041981227652619528606676211991398815276576964389179005401011729826002156010631250620070764084295209733193813727724778147972021626191189990423742312474289153766033409245492271806781009292723049890514846621111427762637787952456147401716771166741797240797214645965117046773545010226406526957520656102415962565276180239909520887511095530771647985686631683635892865303587411253548537767048133910630826320004016880062896719184915066506110766749570901813641543648042665251442813343777632139044439312506828929372614371179697407343250311969177234226816310752445945630857999176553972647286842229067930027349346135679466934790332849374774308708440003013545480986410016595606149848723170851810288403452371235957866466364210501138181719205413973349574193290037191712550234509154252456867700036334717258990357877418834099732006151969546880263242844890986015909630689613673308902006262857890639999055770551505051983937050909258960693474325453371195828713000930240060192297629291824638630364554113811648217734761005782063799028403518043171409690536091622167766752400260183611319225907047012308914981986316628247055250622991060671531604962791448673173923312927438243170683193580887597849890151404286908962137512531711588249068931124983776945947636142967258326096533939411588994196411370413158453258968094899454401180358815383877260722947411629660628888891595805849735751012870907618071922069644224437181754086132525086272789262245793195469634500987882536277247992627655585436878256108386707627926068924087415411646413749800753435774013554730598980756223075448052424473410596146775404919134215013324369300151702540895334774362042315141364895092941228186312489053521467642930130491598217083387057582522777559872092940074810211293070105489978578482692162720144864095999645818456258415465721744518549885883504394779835835336405334550352910937998562922598706964237525614444957606789768344537338765406494319235562352310250072586912656270930285386135686275044882664790489864179885066353400633034181380715034946213509798601968145500659478411863810128128261384889708992764058059661690101727998442530749145583838836144220689038036067014550447858286515361535094991322753418341554704193118482990521755143505993887547145290731096470801909278373227208851528020764031580788538510324931848058787395618462683700669007278046271269083750491352984875585840510524091033821675810971994998790321909764138021429801558600049383233858994396853154322173153129181743033940710327754775835432554465616617457247812221384036660472794981429066656591944299998954340667467126603953982614325352139441249070710350707263660781205862697806434131754181936852187342189042480147092022664081133308563276806486050599421085665412048539965418572190989918621101179056989934794129613813183834251735398654932814177619871742386765501290709686149747542081520777271579505856123203762538565786143897250473125976490238644617993388760939519409950427851850841665198139996215955094135775142533337517771963655667407681743136526802530351581123214183209555117726363628417408475669028148277962821649120920435727770107811748776594232491512653231876559174233196104998140031003244409153979588744219199894691929302601100750605761927390016722747984873310197618293838817901963878495887025889805516880118804416382177872180186096464551050542224668719908219039410987470891338019935869023244489320781758037771887936197009426637407834007238780381508851781421337602729270223262987482396862072987585531424962079713485072241160981032710115015713215728490398909485657200982091342585411211710398988489058590244252725511579397933523906443262435458291195284395042948508129360718008302500453247298566624245821918279704892616622130568656044220660706522208974460867281133138301903392786177813885436678562978873912804232074842951528502504698690502033713903045890387438395765813803504500158445291114917434925476520014872394188516949970280350885809502371134955062600540415534993808154377787247400906811775842597297168153966105897790219259177536227221665484121083793736519647675099066086620997469433742232197470985601853791616635930624866743760565761185578782808731390262856734342289241305717552774869530587157075631545524518903031001913591474612450263386329976361664422659758905742012431188474372305911184819462863419307855780094800440788145337560184837785620919971803148718843511936609861990041156829192027855045714010161062159448769639574841036482757584436708527224218980670087491657035124989714041550954086054969622194696116125043094702311594999244588640541319913160405984201965594533527163195254958270410218841403797614982258274276144527028059555120423648569308114554801441753190450701903886485992678968027071667098182500011236050506557136825438210474497929033061520411007814717411809024155836496135171768152312359922312354679560450983399786231944229139546510232741526964008256789851850308374896045337741993954898391245301726969640837338863685668865332739586029769920541323012574606706872113820371335426007998452252713999687851019701567431671571217983320055293461851390534419789856696439164317308562851344834693696519735273140559939495796946078690561173627868443748967116972092745558149190355453604298098167140069782379524247308621572850931775967792060048394708215606655358725454608440208076944184244332409351040354624698496572991467466934232650909341465916919962952720992127922458874030542609956710318733098899389597356581962836874092653652031033658052772035572740176286964560417831008005590901091940543193445698002961354919480393656155270004045265899892481453671504561051630110964681655129749777959299857584943627358000570622671689296948502162063828929410081701243725660079890018268629066102309251873146871147727245769764261650793323609942716079339975202790692751387107135754559383766287272467807541790028142412880510581860246875163066808568153275803369253930409209781664157672677090965193178429638006966329656149259303429013725036199219730668828594193904238683310722651721087826437309529462285999337337863639767028609919560977102984398004803717122891052222612506301073844793409039713867505111507057810706395193542193149599954358613350223086571635632928087663313085840024201591978416865901704389618258225815959396215335259916821206705691247998635978039716500086137193963802432896430100025016035681288890507846468111530563461120669274928764914618778297244281717618398706042043754287289256865483927153721752997999585465189083154311209070922321584564627204287756522642079679699957154861739608812897654096498283321559833154161314564340165489216196233177506028247681809330833815245270703716890324624087141340632160485634476106459183953303955847752546617216261594918861323001344488124217597276101705169192860375793646257987608701616711591122604470773470845882357075740572525299019716153622021646910885765854840795631070456018290461084267361704022580676830831067618039911764149304193900992806056907593581899640461019861095782870697212018275919645631813662916187755413801651441609906452943381056632737839904005210679984304532000453606153942661638070143558433005275333253826459340772689194744780588875309090641553292581410178572897155678982868475811220216942419284955938398849141393759653814190284486434235194425917917085459198805722509730326588445574663671541375910303586209984364546508817284415106436548724161793704068714267558757489180764830762964535657158747677677575703689311028497675127804320578439462711244330076340561635706447899845116702720407754400856565647291980351108345980516886228979165098810580622283977680636018324651095858851936247480307780331116344639074399428242267262920496132390387381512897939708520416343142012907567739268905146985282262295229041807648394750431105059946147441349851789655627689931321537823837215774196051565812815167055199802478537031744367512905321408557069390814053978889565516524546958562978287499626784461081100479624036318792234654858216103530979985902386422811736661322030193715071743074192115477591252817133954407753825044443805457462752730825039548047770728912324146540576680345809443418615920672793264783358524817190680270999439574633488840330962277086742573571229793660487348343582545340186687931447444188940529656368776075567393490199752473226488598598286412723717025730538908762138838066797465445546784008816237044704017240288991898507747238985077603554018860687155423596186541181817385750874587570353180647811086325032011373720565155673147646619027510022103298471732916081738657962134908673161116886424860658861115724070936680291373824531190256240198991550798159941956772186397831267721177356233695719629394631964982387137696599939396137433380337841057451367746202463805989389619904074031275318282591837055590407964978369246986886281153987728453626822554433229232578078522352459412148570161875939458077007505132051883223730810746081543876663689208159919906529778414189374371723668346050839899535760802622887799913300141185437443658689617828179628962310627791186067063389434757289736228811597760012804398752582689881778564364726950177750765168769452884751744850478952918660692170055646045951041157836333250975441689311964565071695955428157174488728619509569921568601913385757268805415254652503567773123656431106862918542636698674542190781148652556261615349217872278022430564927756249327240462536154898475202015238755785102914976526949838680557754950477282619584121584329342379272678929393354437994268487360490116684808105337445843767546010654854968560472475726341118418937963498233754369294009520071641340054681806043742828126733866009300627064663743455990893939034305090216058178845553316009090285926068035789011839804455442803954579490555401583110404199010595857681237542491298277891601004227595107121011710219379486161686151408252021421573813009358668406118987603496170104889712055674426076030466025882194948763737045340477625412466061365779141487211694185558748828391720998080751881888662069374912766511183792865004698450740132600425814428729843423552484390331759447648057870816078075852923164628870920852200846263200080577811542356691901037742502633725407743168042944429283433991773057104146066162973446466360464996064850861297340441454406216427021391129658556765215718533125193297780288109110396611209938918841667006686971244396202647796302086328936583368478752013538130785401233701968963297766018098734627661339960297629469911304445984699165334343700837988692653593169501602332416907513778790035799951338470996376806002319902947720987137237786347834225430173033697689003844450891515222106883922756361561073050653357273770560295897235432002457721613092918176054402820573827661460663389380692487113186696244025167449059033234136257379872941912951076503535255161616007608112369008017380989849485746312033390508075009022380587335791285194004124434111199776782134313267667363157650418852331417709942427415013911782274977632740934625542710618953648428683556242976640486857512721360766846102594883222957397431343483170225609185669405066170163848141823454155341342040183027262619235318874588921517037136237126825255026497423252639607981163957125979163933475619176208819011186200764138739763431079224431436257855698189757142226031039326923346272134105601068376651494465846965825427924574415417091138415293263817672297679772187336357352493867636741351416205965091616848100776218638019678041982436178585622765190218042458216346233510441803061588837628812529000843661932699261709551905367381009034175566409881266530396003376808165716527036921052470378868534990258623974476494744634288572688380298548782524000525198063485862415773341963975855536320994576229115324612152684784866743600477534733440937445077747639419061186946529184426340539000074554780369585674898211188349125143034617297377271061091168125487189629324923155103197779675793024507262569370750961562051552958659762388326284572641838913570089626482838973140696644912837638696004319269931710982232293718726110241554376034776992971310340450573602268499743541026492264827622136140875536176913780652999411988245252622051589829089680666023816888026733919214855247108021948565906632723998078936521152802877287846054472672589134914825157556815769561316060430721132756414832969130951488118461766887108948732194661855884356815523985414603376602011502209154652927158896148272629675070069066677376782971776644831486420637941008491522114865541661668053350933276976072366712613904527033817043125491675520429655218092605905645484052627485129272224005888058405919491337393098523930858196332222322233348599342617206636515693204598926577720145780455716352232073573987927944142626248167970958793430963142714975233345003764336352779387396090385517599388600790724147676066451482925373756430438686770468309147357972979143261771551651864919444690614671285427912416215714196358517677486282820393514763938412418197075048394529027499072673772208963370589439592039327453770611373846606385883191846406342672202154960756509211706994243613153125355064973531411324101818702543368665861367995521153104039283872182525195921479447160940570739777599045851184056420030394714555880508016331853598388595753248131640905263032019567726981540409521143188183304321788602556081472620735971889302053722842368159775003518048312064258882708902511222432041117469398947181106423332650843404054965545585541186731675975377438099702463643939253908643504434409921439938105991433543115891914767573215077633308202518004745779144339970213384461035169526030152926480210351841952228726108471020853394642415570067256386208047866936499935381220427089007936726900925063729621724659952493136754440141952295328227997466474799278217469838308758131717123533189245332717379618858965492761230669892102420956213782797757097599167866652935143830004743083796433986379673917845623559188121017544078958043931953062595825632360342555762198496467031401335975850320025604844758161517221694534152603406051768472425592512740641876521786053824815448438002398556359963987676056123053122847252664414011422728472416059834034778477736002218767616592862768013974886841600337456072858506336033514720792065065320927041770884581525519084385095896937093419679502305930580727720605231489280981358442250764279598930324442318678082483105612199281724964317689012237905202941276503134707763583699214512506464750564877578821077470869613386788992652525407992760571698768008078403845734417396571351712542773987578961407565150564556577825144212568205092769901220544609536946919292935432037099548406718721260996396171849882988467184489622592960096351953575563447914515764004238282146094515139911049199483689207749076945691586627420058715139226380323427400553486801201226161139307158358439610166109037265718630416596578864039105314733863310071237985036273666754079707026241659364928698763126407704636771995384218398269009660195105937010286727709123575178440715851389972979664645059672445809161338236419017153436235051955127615499653998344777675635246316493467663574605340651906242585078609848706577771222608249043563212978367797447837811505211539967256891000268467189235607415758691338764257398640572523490259105083493118474244395061049816693829336867981129133451159404972384319274450790917356502695769917428778611762905634848813233473570490056623986951985301400739047792209089382128787098869604619469111080254669939146279626643701730474749775541451769179461491901581354837286322646324171069319418149738376232916041228965137702385493681838045284677354299208931954159635318669951892213672622603838355450893437506961752938749887041316125494401642910107244651353736471687974270130369166636867001772255033284038037582485630461699936253307537669245250692176974533519323736243297469667007625673943105840528810748402529438848236319662730778948176353429179969387254200679924094218773589391362068123706908759228142856426821503563993772216146797022116916115583849647518708018680204062672364546784211258832795334820913614679830231530253431323470573272240802302938010501403177841810536349728582986893968673791411919836440422606912297374210652033111431098983547466542377027153547349014715059951702177066770832369914604359794136237571471982335155229632117271072787853157355794807293100695185835264335122320127271696751773027399652598827745587872900183078324556600451489159798449246237061648171219409694781416109576564470237102372353468908044791714006903375038184805078334746735892887070978008437684525667474615787920810192956210217230585406573263349780275311180303890469053969191710347799272016712958676415441148796073487558295768177064481893616325813590019755340113916298025078930069712079283208541296047354219977837409996590498022936451255939416638207713261336295122367646068177334690123406940505629223862970008500759366793315791954050270220431377368712402177868551102678649851775230986115862879377653548439660042157740001365199531152874102284948363080678833861617119599301039213481391419217607790642618490855030308836662698975871210198816866619593808275549688932943523680876394368834326628733894075132449656037677130027193010946049010575770582564541229785378640283971315282024864956263579970055861083660649340671267383527376477254544307544305606008308568962091527486507229317290424154659669582988063610586252534108021811563469329006707751289152919512565298269053840247656326569815967770762497204509075724453380618421393732086568589578813718153666863834277892435804070010279227760781741863517556373954092534660774977188891871070999731361656526741469005248370680415836078561226691118906425510989150294353410996618172644742153811181488399761840703784850017614987699863797506415247557429723746644939806370076596927950551935429904397095104960023640513293453032576875020771360758638029469060648345148252778340067497203053659135950351199652904737906432548132678811900384457460118849381734903278289126141520441383323285762722015902164066074397556383523011289942354432506458891407578531267573233744325434608529137491613341008485609319886803359553863750181335775410381523543455323346407412660417432685669878289485914804102652220159856696976990525220513859693472075436354658121938084108948264789177095915310394143481453496975978027612149269852606791254061975362853980497386412348482962417870429074524377118108230817676754949975978381319961463935326556671904066939992219610882142901280545785479142754602624985494361285778749885796427577629886816429593769765155573287335592104490610887188365675315300986275163866980083330372244474901148902720481943309687790331461593288981182703401291692790193933891741025460597750030839641347416509285554132356277079633336417509596163177458068982086534421517542299834802316885179662652799228032427288684464244938098991107959979083082549924108092601587125703829677267195901417552968057574882609476239516108956336879737409459793237372682275995297598140127983406557733376202420729099830744734063159461116042423183042375922346632617966085379769532403428682137027176263930267556662921340643579445636506864816691396017206689665934478675273074456566135252367460044293498012248391924823495971788231612172645539430372609142469039473929874571704639008035786400293578832849728721887554763449219126490738523199691739578456020063203209407422915793101850770477475906045244947862464765198089290935693790758535574764394558321187776393521413320777943714000690132051243081721411836170291037336635196686811527189754523277604755115794728433161540614886115663560843917390949615856534835906145341699928127904496304022045622900107970839977308361612405922815419453007653338658019448017662997072480115601563150700762854409578511259354064565546862583601735070758265355365901771244665795073215728981922266183086748142963050592548838166533480644497674289309764861344936382318491333921286640370741329083629139765468661647781927779075158808382431627320123607668669164924683519848422059909826527057999917436138340979068228516528815371697845422749412073353325565103236805980146920593902888199638942426468633911873608464210268933662139901654447118639599829700514299044497150164803120306118228293330855592403356713764327768581867741814674532929437617564578085922597684585811009612494884269571256121638106225566112102633494226993853394359818634840952155353979846704733725448238289877349915303613741228782435512551487959505490851104007086617552215509607053314045743725003673983817600103482228227843215480215762613790340074668527613755112463363266113609136332686387785291722087911225867255613461491728354333989706407725419326716162537678574629808402035292749359868605354165551454061087704915896166036595807808972231790009879146452642010581123613205702700584525373767838382043200964523615261428716516475594945134868543652458937617308531390320804570576123542434911544183711850690285798585041090338893011173564544356595649109018026325929655952219505239240018028140329542256174766087071332687335267506984757044378196698048009905324670421349185616606054181708545077469408620754213828336454003437300867385502407316454849206845236468833267680047985278395269149044664312552223091870365912827443668848055352156684592718980072296161251903881314611709099345161145412421119845583131106643218744084538654077378796316291893407547621434828489789727008169207043385508055617912381051248288387459767069519946220227903290520901999721900970064545108934796831351668437111587400080371848647307242724805244829207917061618438783669197659028990506350828394068373922542125231582447995183089456690941745102566786689152196791587795646853284365698872196420987839636816256920339345038483468148890705214131455701346550053196632906193235743804143080597823762182489043653185240867640593032941762036714639152500683076586671240160569610699376316851110910723581091266977154341409812759312349702680413442357246276529847359112442546249584199789486590098089670487807715164216145427359244533627739061396326601591959284211507406996788102226063279738504411911747242092703962318851128103916124838044671870720900929192220752356621968795416217717773490358883878032166381027065865426412253404725336123855857395648550294522094997677337964512350592184062668710955937651979969682256599353449040793583864407170467799504619054123687515478749677803408090202547859666962030460735396331345891793329127723637948207268291522765344391751789828245497792782268836630437450040464680618043946202927534207860399949875554332369676242070775617668213962861426671183847948255231210705252892603459120130558729534290611207506634847261918637348094736617430536728407014956777037851013993933435319390726589353163042242994437793406993924611057112868786061621259579290114233527873503583973010327545778662348707646253682431719694160655275137132377327692137501769752106530957710798040055727383177691014323364783324988202567653264399459017278185960114593953812029177589031608770636199674899508788604295075059667470619693429351009007217888045788870227095979776101764539497092629687395515771656636435816798245856232736295986475185336442972368298726093442783147412852115476445648381294645997051288387302261229580893909785231640746749002417441273246655818150735634462507071969968314549650107658149994516093217722134652080154306687556031005058196419829965459454112841502795539193994216104427971849362391970466968109429996995444836495430442182415698259123394112444506454050052161545855085674067777819266626503406912709335793195865401484487727947026722840565425594878802288211643945637024254776265696876254777118788746799728314456742856798200947715942145306602287592444715280574964040419859715023372892094293801865823674997880165403660141282986227689078437208773525385972680463959479255992542902845776942325415465807540309876907932992082137038118622360114894064368359668211631306314670085870107180391004278714354608592583287964014191563096095497670913176111210885023086679755224003897482763972353784024236546748778893222599550969763079666348816942220127920170386602228896318241701830100639433039980276478686428536208456351342209347729047315605185513293508154899572886882556346460862258422715578861137153494781898288406382942396570177806338330683972240021482772068119624565300376585943565617341383736890484508382685786230426897007098659549232666772292532349125766294202730184557139101966963811851673157808872485032441922008014078865891780200102633689072129488712136422436718539287271260854765101484194263009055169231512259302644289133905875638519408681851076925395430047435473389013581175139919957633007636243207651140130876407360715340877911877468623519959647318803177718908610425943107967417521882830691050471191892048468123365020159536689525146288305156278839914120720041816331902581154840339494436246443581074424349012461888553170848222969063211926777768703818760688088168474700027171678792889394897542053005396693177665481512715185931467052349532103919572085845764676655106583479754218308883933952345991480339536818684764367979122216837712952231769393211875266497158280849853648195876525419082387721208777017488414962060235214264515212912130317639085817994077377256494508404031912978867244926616526013474417047086767188196192128301572357552211380263178411978920137401112079794367088909208986388783926628509832610876763339184969035798328081251828408045006844762323132307188906096995680215946469078409391923359904792863579973035714502320944526189974080269113630629298668180673348234005809260809797887563580407744915224261978512381056436671292324502984016697565877527846838523270204922126371500304078257195925260200523056675144765464897593997358489488358987649258295975055397996522765761871966035290331517320681119508792479028433254223712536796174250342138055638626805057557066760867788826636505750651166498223066392368228182572521189381116858889272407171757088734298286756298389864887876944484151529907190321290884459979843754689733205066093462079921619230284960227265294852623026003806627753675214482654593763811831587842179246382157061927347529705574196206113221959407987988264795519812787895898761710903952146351080329023752977418826478551132610855760638426960595267344183821309181313876809458579819056600312541408217949399164749259777761114097485716723948337441320960730182206740440396148647141817683283020079708678680139952410917816382634854446407733272545294038337375107486964626823333779738407315421326130001326154849053638706684133542673801418334067493380263156901513404614901982138002597751715819969759798466158515484748697412837219677389975183364143010863404511143475019660761735663210189458999627738157664252245942647157511414373403390260626979720228521048048572789969212639512452731628748930027034472531968628579949379103810598410107572797145911054383276911091411181606188437900347403000948113132300704458645155453246794044462407693625692774824989856783626723194079089960934720684675671447941583806081383388689156486474871425701459743053050328805317891573255499994514451600736642295115341596516257722031989701118430213367587180429150415023813525915340590224159872994488701211573395630429406015152599882280885016645629851565103908134521157782567441511738488655288389254180263894543776879073370833598875541363016663722515511607095268269774178489223907462750821475508891703565114733142431217992649204946152801276836848450547336127296946957391365273303441526413465971514115401086472497068233566251756634607648804444528404955124610682979204988328438547071511520720209994756634408703647578066183634001034564592935140875794127106897952665065874726193372738464009539188433235338683469769125646392786108768310420143568521095749052993541807824083423579043579113602899706390373592549276328392173624473730970685355269883178944804815915749636384630978640038530810660370024138505351799016365673430576940498358017866282629138677569423768437860224444289846179191634934666546247972678502597795590570705457961283964894676854614245172252339545501510604342641351020567239631819541119734408705856728706488489686825122935444701398870394606378848992988099183382159602297105455751934116631813083521309056890632460649141285147709590714824703507484764781262761479105040200005887508387402495412609542276435001988036345650833875606498870361827475538519753284745569690873136470125270496529563881996150401954961851100818414938025785260193848953651373856632630011511793249719787582843036505191183381143494773187177014275208333832325761960761128847840450320637882224001699747089668386604688386553046207430644485748519123812100549861648596046900867382019400760865822612111808424393675560079138831768997760181409383188653519338094566926922522601963011735708026402464103684142085277031869934225985789363026929177260331479733790144673155718989101122706919062419209089171671037691676000098026279696234335468826604588117450721806422269166802721884723019943659245316707284008718502756653636978256760718021754499924175877073270386871286159902554981937914953388549777468151429436048156003478364192934132004593359047932892614289890712760216380511509959933795728003625925061440411522799203912495948548450133177814637335690590805153616423012222371419788578702671712558001000924172091356365425915579794688593534997831779761678221467664088649636134792313892473771503917888395724328785791978343049481650646400114504979469141500809413115696376665707540966970343149271596907581125983844346113209178426862365939694590572519181792115503723864643738258873407668186794745795545066607783424561251748253334276659594165474593502683255522888450876000941579602301033259524842105390501018345979182036499894328051765833622901339527934558498216590669212817692660116077142613438632519781019751429558277265368444914955805414882848115569080438538992000289994212473172475561998648913459882915902584796690352538845210641240632554730859740121479707211520096482641439850062207990701504898592542799848326129242141313973124078289514474345320165491018683492931605130681219336006490116262647735375895959093885853346541516068757608342929830503671479466994933952568917404588807352747591862127869867517587545013607050333998003330541788566504727331364058628275078539928376675189921938347941898836372885282656204312261615906749320852054577624535970167926486899782373068460407469239972327203272932207379178895385826883828393707805712184421923145736680981980023128398226701825202693772005365496203932513990930316754891056684197425013016434002077780996010770126888775623343354420854636541739568175638492120451612564638578566962342362314932332961618194435901258248623569318189920757002508196704647639986306892882856744657566806881953372769938386830034744854543543468753458868026384911551035721972322746995351150315781572878387107804719805049020062283568935948972759604287148458811491795423971765770441557065777499424770593092690749891628681743921555668632562246154849603335848543623721554081322976220814335777808896652901133903702756675533471958268971488264176299478279327089780228176379567614327895136241433846656874867679088691994257593525062648653811259817685033754934029619526831982132528584603598121678880689124983960084811747055256834996372766492313201634055263318601826303490877542085920860785529584974391089905523355576119039178895588150760761299774251669092345718247192532381453081076564889268312579920719403908832118555634091669306254563956954746223411933556693767601411868758250096319244439332686677234022518715905425440148307350232725353632801320994772509301141074628590343611597207641084481569632996787674033763584283187733678299389689686732900119842341792406473876959386417698877081169416929133760230703239064505932894184592355539307998033977356859542431084219243462091190015923494289368406064300456222586943206176650077781530512603110428946452579136408026341547619148701532973512335137220507612117515917560268766239739494931201456711462507703606765880702195737841534288731950167663458140332655481721109883917604491751089446534282446723371555684008101062800049000892906012439295058337791479115287026416207433948987073747536375163957037881910938149641227178335631818333932578993378972730916494980256622667937988841669156953539450497126004336226200562752604059693725664426815420890642585322965313881903038085855121257017412726588321754166188384442151817933627224704339315839101216608650887729371493796916253065710360893789683784979699051702052842140744347104052005626946928556809452313522564815929268879359852249588953814819207380331639378122304103462171560502957424621913850687550091096630070571603874127248295974814943039868799815377532263114884249615672137285175588867192366619530863054732627649114153087382621798805021631371576429338972875257302086129685155299812573285966506803932679003886658445451524287424623566700096317508914183890877954944399186366020430899488289943091072729680547140718501450112132523452771887350556501256452714110905401885204989935178792658559892473795019167967071678938183300030606056018492264316340968790244611124675461127236120487523568265219796686314376605098816758893506021514279361642138535212661471273871744640473486862355017806303522306782019463180603407467045448533276902634567586507096061309088682843993030010107019227825708431375216866823812930127389980289122009831352088253538460512721035040483384506976696148369580197657627235655467554152608205887898327578709629049342988938530978400260959231623664451994765168239476541346848962004892560080758759987079680429488809332693891174883121349312481860131705017391291405229014322031488301620512960951184217384504808223998539601286199280988843854756803623010974691064089161542597880783912390853411674154890887707585513216746568421631942031932456930255827606852714680766402753871705006138690425003294604908502343856198199328432008947496431302092682611363468301075978677497008062197736350176880249411270412517751654257460738157781822673126293860687158772672824982450844932197777387043084292395106808231534975339797543116580682035635731166840674344540868861254329421659487162514094626766414614469319956471435351581521020848150884657824071610655510986371314747243160032963089576523417291342274949375077291303530621852527339223159320882465319412659092753160288662469670890653477941245289037449036334374041679827835359492046986817847522000145005860124969548586769901692894239669195931278045260577171905574712999283657165929894389768146266536353036655586002788843332976049013186761621847800246620743132642497186147729614381024934335425928005996548008496583558643536509111256409017400624298743837601342938609354765400706165275839098456721903093254972098727696227897992731451686749319826957562166578378034186906977221417111870868504525562150558469933637146156777447675103915912486033322778045906995535644168488037926709648494406767355510118837873114030972790820076762853252701079174530509124825496126535915130946606605097969143033161048787769663559089373530323045010160556306053448890084656144846556810801258807111307922393964716221092839756129285635038954108549800489878539177309222206388202363197659380485119008759442758559000201736042915112053433534035490366022315969628799708874281774454386428565634972049524195342644276128971997738281086641640791554439853658930611230624828078411988397462498680495438714488364457317875858788820745358062426932465667415180475365523381901005472169296667183524475142388334810184539694783402168399073056948843898831027477591141838382734990789970065668017985682840864906057136689669089826940416235187302264289540788480634048278796431229130246178927993026292412240377577132623868818894112578395463329645682650710833820392191825984540543129474927375085789914353696339092784559763194139983550319841183794498081647242970545346344156157741918835277096590064413432213989224664782508474431143613707731042548973782617620242346086951709806668044957793515789682054296525696542436024063401074110654633674704132640406090358444206054950165545202160129515807788317697718322831221590882108441316418045795720451094261446137584340277194973560908367430108905390545562062986723768541844029314868919455697848807555393526541632667874896948718302284168520474015303534339290440224169054671732182005369946594438799625447166470225056170668178621878782476522277740737868763987105417520936850688112026427805939287258548320392916912880024340093984331101180743039213476300421038342610309079957409281236451883317700981274162907130680750305567466821128163072578132986258641351766310257188004111613589851519174374141655874314156064676277040132896628483954796023473410810862140745707395835092190759589892819113080217253393316674734013989215192429389484885446641105732977600441923298213258617060515301639483249660276403706457087856686510457000515497371334448275906006328367126650693462520895743657564837194314011205966441114304953593450340835380188053565527752170729480716007550025633590567388514139462739648066214416109584604005311277697092680340859177599158876199474387137812416914761027407025531179058753518503977415129650372162340655264816432189110178120174491474547054495081405168639358016083619933913878370798856590039890404215481819479999758284804105916955311204560182418909801749968737866678042933412114340709179886585684487252229999002953635225625273304141534235044031155312634097841415021154156460319140178170878974408346475210050973930465979368657953386867135498522670156622789552978262644273948209128219648350790955645300351447697014883338728440925814455475982831094537685915119894507080664654800300438326791462623601986932823063850778175780310234095093460350936318784220520178411085026371356425129412594287004012919442744246331140195142695809349067627716393427234332745338710195238783022884462549672756677302510346953978588615550901124986675948362981028416906287336733329593583392319017850214625473190737539995632204146164917115063316486694913697593969106613161646609360318167373528477930082180221645386335800009901428035879913818972998334937218488730688051373799879179488138638286869996367045925874626805591723060218955816231517725957032128250655090524376585166768070844142761924947399464891489591341795342052653456841620450512442825347062987392307965139972144771614146371094937527503280745664461634543050269191216070230774764852048514671630244264158218283718930689407101838689502288129084287427751568287062204776013310816677391197949204509140352122172196951560126696507032372724741884027934252835374338775190550041118020419647214740347202348040860305985867602763297276435333732708797378532621618749620037447911971929324400539565950930523969407700294364325780590528941668005390354554646560766650327886725301482601102060709260754716481956959659081638454452157107215460300194909795538980526375934223832777010576027032635700508003104668191149144143173839131849791050636322042311587617066298103312819237402267863813858183536543695750784830709098950719596602676298071231504259697760862270165854616442475892166359091629022953547659331348557359001168060152230397909242391812700783663349874274176015920947397401717874173333695389783390766912113866034327488638868959879171541557418515571554304108557720239375717655933974077313447647305353129226422426627328703332369649911956938691539199784912239618924281828829044018604905330079944619216106870696885122176912391708383622565360778125970506006467723798935910148374709076939985917017995266644515347576304630878092171986493987648774202555862447829667528107500777774012178256653775232940097589755939641399903382584502503887685360428556635544347356055463691592512917098889983558271012364327969295318506769852553077783529655017241824132996860061748647334989658293209782651215016101888442011063138949631846299335051621750515781019722262171636383149544308365393540785221990863006023168303999183629858163730139331385979611437666051782506420302653181884952509668343760429441578568081033139074951116971860332365077966668863624481951780204338616672035974463374779286350229763167516738795412307695069281535088171347685015092828305659428068461338406258971578410170405448488157465319614160949017786118902252310149766793443165947216468801660173222415373240583454907501521860828060587761770056908980944875042782962087946034076078968597132165084209439995668426989434895342010594320022663137761764151742110396321450039111518837108635954752840396835812971202271713580847683023413084067871095804391038414430823271105821048560653929349134216528738186862208001433622794996592057769538342421798724803762124809164781183836854335345583821710514832044079236490177180988584982130556642629840096667644215296885479309744631611539714215148856585056593112536809089790238864992353002122953044612109714551420290982796860786123791393893841504451190906408463258918196962633550560250713375032246590181349612585844738041362416822205925894089000363843490777198201432841768609285656769713952108262785524634762907581161401101053445788047708675538219999898140626379275566868133434397093059510963266558556282465218674109028131020472098925711984600776252919062079090923558736478102144905733195200918842662904538616987300117822149771136857689632722410937686112743434248432493544527083592224000801762567726071354191729442174400797941451631799920963587201949776063539140055580987117279276115030945259868083540649428164953199844754118319165203364504176647631939310996913421268778957822046700066008781954589465158197589881699316427777626955073266738995233351492433068094576008767138568325212073041761177770199813604810351632795938113765433340460889202687066959154149218239553496063267597570247187556215301480456848609535825590389814808421441241016815354615237964788066868911789068519022076282888730123487566660744385472610692315602673594701718679114399421219328672308117958064250738948008449849747671999606128671997150262752825994492569279601427660150099109984694094126625461196350851858829128442860412323914993094622820332545203052993140129072739197835129292152982212040358137400317252763874366972894640124085325354289363999068842686214645039227163691439783576929335851527804857854519937602145173954519262198893529439572627357773830970978984256480021647314001960676214289116887626072237995106632685084910581021590221606281276967319461157348916680551921822156715555927658093775943619034528921874035483824441288402960880346774318914754877115212005398128554987644861920033313688919502890184526979997970211853824528517646648486411392746145872568907392160775318611915839421466076321354170026349147298066779463567446876072049001201952219847299145230074076570552884402605212106615077330717791852286127217475624877350113239628641752821282296429202064511262866263277227816253113656415859751883456056137910257870565266294623816107493889217130985604215264272093576183409936021312005803666817034500699025249043035764200670806714548782343660376863804785173052591820470860465798847186441127036993971017916351897558132380675158924325366947173327645091683923922487917009816655526937259182076276314442272451810695721548315269854663742844111945757083863179325082503390744484586800562221737558067541238260493302035477479253125168748022694723154513113829731518674033895159403086429281283074509268390321797267788509796087098662825929527024868516115149752070932715229201293914490218483548965967570801020007387787962469178698247617973112147636370163960839494350769176221495932379583354421160562455919442970921971940666865400576742833012932467375695167815939076376709576950461064555608661160752936941681925394040175615201063789940239961277400549538694447568418298950937186801220509772054449554049341917718035795227020190217797821924259075303730782037553683130796828000234672925515232981753182959269491501021220071161901611152544541675865019790338877252636657697377907662375993231298715551010346398711885264685653571457376296112756620455404312784795270191906118930849408740376993355394693440270638305399113492341840930887485863916073128706947502247830765002137268206939731924485827085839279015748638218668932562098118200477860514627222692529480978571270795688256191633898858917436355596394591998289515146971656173541170058061969133428825426857814109913312523157448165343228900371227640803522951456836063054766922066875091670034774804992024216718839731656877024694498563013693683159897367507599181450921227014454205417131645382080206979370838901985506338764588036643469813631144959433709478533691082611751887269814447034253091214715117839365582749213710565779436740922924115810014405878063980369671583852590645265379275152055590989144806696441953254015812576587014778030918562951257696683527166134740566463341044375639335273190181993292460335247785620936195467589031883824952738182983510279637941957936914633888880548044342689346916690522919138342798007069556009648069137137634259402819187195628223706368077845993102935245478240035655430836787984449707799698217860379388440186472649121266806087264524087234750946464074592098092388425429764576180433949889111239552413271621050347492972909927237554344647929593858510444892404708799737439521014197959437613696069714548149748367262683675916322261755964038292125960655149322091532795699992137917155140244561809553694592823188638740690675210083930914742071493642379666676179275052852400908854841093570502271916614981769318428138491768258496422824455381853415552645938030455612801630471852757775929873599998291934674519438551986317613988862140146330781289883449958785158941179463886094669927925400107273874753037390395203936207273526695913903706966291791688475648553845104711453513776478420595953693051502149582372122964550341832085554121892419284940599280806273768955334749693347645139605681128877589388849484786704793122204794855692276200943557371916624176931900761024623729948161136417300186735194050471288579642692683371797551716049493785275850296608612593343099594495849329892380011262987328197115723785033659556643675625167849405793917405326601111482069919752435698945473567267560683488432779896022172393387870831158686666412539166083463357263969842992347543439649831998917817179172233408210119970796704083515541736000667259461792582721697876989820683283748280529206249284158949031694215481083885214990986865324728245508158542669623917170041834956035979661347600160600654509489431744153056502944347269446304955960749025385507480426425875976798469612463354844031300888905473426457288304032813551253566802525653104097696927155905643289454247830502661307559528246604814589323621651182791953718152473675832225452313243952126024682199911804642551667961184735807706492260746961277869849212188761609800545031818601048816363790550921657818323568021661091996174576524500595906443701482843361597780873831102086935999590435815039783271359510743471486866545404084644274987468762113509594135584378825186385072072097981846842657144438320627288616609555023841630729349641820755318920753237062789329981655893339557911183527837651688552688573258745958703377486157822016723272349748588639182971652170021009914699765013079616359626493193651145851290986857871808384925670099217406160902508249430684485898853869613041408080776350479028086882387024545487226593440024186627387607547407497949384535571769380263901591198296616899773971669718017649784691557819245361865974827527581260834355111301178261931222539042160145678446732622352974068774373067244415932719217345300606392931059499245422206704032503732862845553614423021115719038704757083143698889636892886614921506922807378153347292313787052686768604578164773378388242899901929553006311833691994924657776727956305150588895406289082652408920683954301476940099072416018003085286128992057524238471874109381012701231050500059572662772828716637813005452216204180285775644327416671654294794538076512833379180681802988765655796949787046328370683992897273177902477225630764720564086018603760808256272599223130967388957168466588372532789877436172635713585692185575315716298966382195145957713380656101174016203720819959293291850247017851274050369504420462128800093260805502374659151826549043999336929516139936171469791812411889682167109668998009133972613231371602954996858843959904503086090283032674325979223203965176865438617716089285955465061509495239952668298199716544179254466373792955788221351620094210468704732219339648921545431483387303354603408885855554152090094152069125381501632242836103059731513335292059711247639758943594580225116529449839505556767180854721314489302913391324497419280931233821582284682631835771944997919871840213446536839454875135213289253229556298496713030434776341741668853118806764820716931883092056960191082886618529018597260960649950040653899192499240768433789651750303984411725985538608604285977452484267599083781675511961468015859404926255383951240970206316852253172702925747967484404754308978749468151740673059293501106936889768784291694564433673086496454049367441976209554870313629041688211654003295367957254275992787882530025517141419690141540728390124873987604532640513191919901348599376412759883182302667608715331978419881686207745859364961741728140038518175727987825778284349308796974667209231548506399589919159619615647485193291799844039547539895039683048648410813302981600784539052899610293649719916081081034943570280473734366402973408242174610175817274069908764744148298383413877359264152460134426017310100956482563311950941829612281593020672408091214242197303410168216784329487040374699564596626241404653612744484876683056748879586269455981575221109520043097818717017284235563516783607533927944662291054526101575611042872650684271822678136975131895640864613216237054155872783150936683730688763957132301345355126097697930272922272948069407387937086670845365762144144738165421293093033229781806932137112887987754997549118611002018832004935830942256774463883767409018602435349736518476287221332196806919857089265232995499330213268867836813378126588650319492184513384052674649841390232341298010059167350846739450356823013955320882400931606397930278750637020080804148077033572850619488120591639330703569226532554357600851418433838346235174595972504741070886745770445919853027484112170760075495633211243559960366644160179632579569217067689759424383296949629219619645898684697880459243163199976467351626880878780829257285503549487939392348082648017750631428783646986144916207820233427626742886393911756287504487495639506662859291886502854783280934493015337909234115805206853958042674737734939914725214635427390183195420087846403163283499542260036534064799206516452475915362269894751091336347610030998827622603033617343604094938454746951816755362556759652429507855720079456479162265765384064532712474380406236931624025918214079103741708872199964004819484703202134146507733467965782405997142445644934103225476243297851814817366566595265475411375934143776490635403464668564991465762508784815232617082089117029179461214578275309928074974161944021859647024531614013042647333038125807932222682104230316856141157273258965158307110192104014952069243843228624510299360070117509298796849390711211241477680127318124252419477043127013257041619968281798453818900497312171471711707392500895106146282670767726965005122243573932709856698756887515010808616531920808058800773678709432022082811373902300336447541539323937293362491031245114877652886628757925833671492124062546005137627505639524655845927221225725796422680445705733512971200843770248253885515746733888565404348007828003817943987798212950470978366768435131392444863244440226267561844887724050320793066132208089095858176569770487535072925125919136754852302635380191887230854882578861817931383971589735941655219742127059856409349711663172864301883666334838983596539194636172043075764698084224476038089453685645235061160362065366291674073210437314707091045400607192040198817068363894622758096169071450627845141165672601497083610715855482133740504886521860594224513045799411035284519461354610930300974739459793300403136444970326147252438636452030903658910771181011421513228059324878362568877872776939998177021032395810985217934859274792745278336752779003825435300656348905635251687993893832540816051019545848770240735985641299842755027394450186553717964845939522118213147851343748955830705486453635509178279635610944301654210134222002677725485420904704195165408084773273783836155835908357389459833821921425844180048831676933158777812039218537043387496727292702777127349215183498219115713936201632117436260559259163626467804230180896768112282808079462320986980441344574172292046105531988386898414284393620428603199643146379049318103768855513606665558268732615376292175369618010549042958389757338164844852529509822683862895310445463008803662228105405766082619524261738677568992774959029426688754867619313660456809637851852391726098059090827309321066235945330009818400432409385556085843684742759742672647472634460324130437872737104930921014832624600100119555739358782521620004415727620690426099368891426431046821915831115565965039420449573279470930546128650096580386392700625576579830634364462583489698828017696495530962061489499251247377400398209648801888486216203801504101454582592630052403207711272801374903070518159174786867303588747498956040469125123223331103041005272105897038808795774106226266718197596469494332233079549105433946431719883731531135136029463400417109026950878697170873855920536734424341170438967175807249556563238303672806507875938055952669522179696913094640248168951165868181236129411922119110401614177015300259302741779155013704113590025716336509902509730514324155662711289936055623626349348954378716651400504551717183487238235680081064001504687556425754229640085207529047686452733383122409036295582515362530237084641199250030793002378494113358696715171814802672953741079822359037675851447791981292267164183380414308549410470159636711036007668589476008628696267450703061281830445318998214871580646224449562303192038714867959485715619157276442031684527422937837215391543339243059727448064949566672943738677701598664361735167418257419360490827921042685418700611492185151663913608221025962153659518807129626860340041616856364405816725362133960459221784675379644694223836147651098067375840913402488342300635860805370917934354399495000856235505271814315021415070785568213328229868821524736125715368505847913496899702063464699416514428385014942493529905427885232204947420887640692311147729898294159860577925467089341405652150232538158363552592881115325394955556489368674702375697191752465208275888959344107920334324742450005555778079446223079080521221560699135074411257823087135171324191927257776916595370194891636631337565554279711481327164250030599623278318079060731242821359895376815428759692509563681000700516686927948037527462134683754245138976193798222692552738063022687637420011241029344719975503152853821379327504567846487680674813071874073843816713610011479036318729853824538077667737594708720537506056013639748836293951516786072385339263478529040891163217348578674216697631869004934649323273466320476497610465880889535118263780082123620820231696143323074716004548727830621336029087919002627347433940099184418535172231741919089582278410564968957537532086913623445831407324736227146293335935539378263005248446279840884331004509688641331424504924341417158258128624430831563547104766477778669543679674073889388702849866692374944972048819099945302499648467300536084545499838130295875435042294409624937641372893720643111298062786859439499847694930890837492064755610319920904008812165210418016665891732073298294584128282925745771148115206317476694329003588529215806775637437643895574854004289302782162487673625494314778828705215973164909871810916926765364000546573190632067018331692111971672042884037813065516652145811277898608175115004086751604656488530019047059786284496428675202497307545790434571821060893980181436026700148076938373169472702642058319066390201373914402467321280808845980631809601692758292404993997765103852759052930179455163286411924082294638547194415512929361415981789753943834680467661430710629390412885178941899141525489747746691594784347319424408102173976075205940984352505225167777917381626842547456028803715507365393140106136379060654258973450239824248521499757328537684065518821021990104523120529898615729993340108902222992142185467018335560687499189775961323098776952974358851151536568656416631880061715456036866301860295847496046852548633686426174994335515125859144066781993485646158504758902982930708341306096721111935423790933196250043918105405699248673919252226651843807685935698169127721344434766758867664225444694186470637299661228276434034799163857555575476808368524342061291113006281203988001531612848928159684375506442107768577968078702024132479580310601242282016996644277303285108821431015762532880607959104498718584369888659809816062564395563739378548496768411935036820187966526728754634855988012291009685411535355615596007016828228317947701011952828579651367051850936190957070790233007256667972625021551678983164181228718502535736510424909527113115752531992300216520718215302906967515495940238849733836461887336779312756116436086084133445261365813148364246669718806091899415320059638048300595322498268844140656095329852667282163483949950804493696068795611390476689664429933856392446300567334404723891647292919395042981719666451848033450849980954471283843288093936460632818353698486145769866401242596451948581213605658518098678429049735655458095388631816709351565362502951034535196244570825095066483818195906290525131905987481666919414637898314878922193624818368739372038252015051995561561011209897165094001461537903000689716630390533241285205513179445927308932880862802667309668017295159375873408607382929310264354201618515893603304868002024996616772173574132775586698608957950595348567121985179884655449453409749064102454637182797996588484389662985066336662085049075488527279381753655542059420435472450099449437132896274665563539376513712765578458181208009651088636449037763080485938575983977781830821123060808035976596712244553979476648549155079476168108605283918896392995614278280888857006130891892398437521186871666840060667501324591092489673940477186438703082638856205612291736402782296411548335912431749307175097711130830346114067856103274112160951775569598713969918564356577350050837963032188533592611268259187097714675438926852501950393598278058644421389590930483181491723528638235083277066371848616915750217980275028804152401155108374406554679737824971712244004419060719159720610227503773190612475485068152883244675564742041420587984265361105053486088523408029650372100810119248983612799577945552697395197502411181050561459042023352134144474081776117652618750009599781931972445864974108161629208721698941065250521095489113233311197824911285846745825630644600875751341290288621281983188889980578992485195464706141788894939055045592065184601526495891574265980506047253591490861519885588498308954151634723648649042102761618079844571251728498379616424755794073664771218374530257001246673342457922551033843303312731074765090440728881619095295412040496040592106746321448348335859828002234122446605515005624975685788425292696335160457058807178322866853455330693156342442427218488633053911565433157452815029558601448851694597918671957285510174481169435680503125560273717661504971748226064314561015234522530501715648070990488786467743939198958651971015504752335779215100431380878138660275965478851656961347301777481597911927115169287198684701801224504717467753677488759133618565256201812645564499668388197746379454848669588606919870337580539526643373368209787614540552514895760797898305946074897763025475459403110242475836839632945382119662318700286240147871578499821001833337346205519393363624544745390445534832472340030110814330109115296751124655679480201527906472350367004780808529683832424677441251951567544155728854710817474896607818853697436336724585273665627636685960495354974209600839042755434173912532988371241560723141154834688406971033358004266242986230652514152433599805043315485492569841999616818874095050637931993889339839245422387320813300153561288354368492694858461025142665269818741550724866825716065721977666548970900926989957477964221700354705807641682791593118304722852513736926651490153107172576575965369353833867323277716275267072628612453600429941567548181117342550044774869587939864354033017370111911713361502740106090601032143604278015128265091843920069292927830933278098333409200750703250083837894521068872808230152892284534128384396526474151413755811236965154869497471485372763829414549882880909219738842503909534445489023232910204092804787175400466326227578390524360062552021868256016785702793511238850936059220024744819185256286681097726797594070520532686590555376148973875172643520656341518551950287376549776842873843855686470027202525769573701958953654516447683628053778937571595761950730607850500706174695924916997120586901566786654624128766938543595828318376232217416408947269725068997980887926610691327385968087240325260248827676142620499998248297779856553079758617808555580789485736466588217936921284421825080412791880378142339067549321404548649944670463334298001418388709299522764015451265856737320358099211897998562915576596306209728820628392780044565057740872637033660231321538598121980671584296005145429309111452002694248617628869887077819715157337559422538627385565012095854409635910184300085248350718535405421224150008541897694354443223587323408814660718172467599450564793654991664485797935561145797785551660695302517368342266718754318782502851679600671648135809819061362850316750513171603337418096362512505805581360884744799324231632173812189703817935221397832337656673560413883594134989740009961290962121037149445262898655397435252643351304097896364250876842177426934466894354514902650087354168794405642034424694235210814793395187484998152191752194626299138683728534352770147717258914418067798190995943734272643595246067943333362123296440739343493999151073583466023110835518839838216106625636476503679991555751107214204512120314033354609907350186561506802395399462165807164764800396923638272147184125803981687820049077610479051811250447259034700935436058830981013539558847026951670611814349291214146053155314302428542076605824838936475651892137403080170707341079088915508753067800106958809777930610476434734162219319940615037103601774939987181533728415156701742680730468949460912861358406719542706478390724919444086949268229095164906025399064684496387592832005360311331611010680350513001362245616884447363117030049034068546155309317035181813374897585498441461996121331447842293313713906979547835640954943422330309678905393388168799390513056218785697294856884208775594043740159187267130130441029190346560123293713767894861716670419243483987808644651759866266537726607027358519270716833734547047267770887162035815869804620432466197450887001793079701431840034516037045234395618820813005523547096272953585239918954035820110706195162843934818566305069648417258582206888095055829631307968238984158620384674855413439705581499120204779295560372764478999910056278642680356940062880653270914337987342333166556603029894046659031443584217126969818669001965405924173729891406722007035649658335269124175701339298873816676741348005085400154076842335398710276347218431294947015997801038320481827090068022544177145452323840879651013206962422592357556759112548902065504789520177955787340990460116655273546913528049013002488440807379970741765475638962988719435545015841111381958445863042295103561765479186065454030006426382029156163146460225318766859730906411264311548783126556843996235048290505107338830683653572713501789444856388334900127210990510338307518929864776001739188849722942689311603069310152283540015518914672547412743858665741695694082738607627370419685299363040639843758390538350512055350477341784270052830834804243624658452726901704859251967698489667963202986694670075203906516268988894616321460014038415950391548503082329076700537029445651904099789487065728076350866800050277839405207279189678375077946093670046558951172703509008647838840245876216625046442808501989108933625600538248943322607608873480000921244598561658248387405954679270191702261246795454239663514196566220806430244260635966685359319969475163478015505508399220563993728735289883966801308997311886454539154069342304201356171799049614018812148498871417441108431754713281920130886080805990140982456640792583122483047362383698057646925589625974760410483153575947409993537928558177165761156020143771830880963599993799676022353020788635301702574618575054905031106777589608752120965119521894867752520336687925877436656528681689831425887997795127025757416785724732003225770344038691804525738343627320348295808666097306776229087801149079589048196273579870407646094424698204943460584165452136770254622258488314278157531091419991454609021249328424939994518229379407287499839506945167472104147591073124057890441851440432306883058442443167302704809119451843374550988286811335015808485787183281244176474250697056202346175212839540447516921003695679412686904002842924000755619463531973550535743654450208632192641935242636843237866616600402261550587716888547862083678559667434196733032843475415486578036745936166039943700711631781113182655896340373471346680461044880816342619091280031156469268055968240552455172225523471092466189922995691082650889649534642388195842282703799368641780507089106680367137059541645981998697979893781808254718208899440202261296280598074132115525263033013335410980622180136363445519132410607904416991865323469192545095181961022828333115207915307469302209515670291535734380755759418228424788461172081789840464772195423656823001651703164940688392545936843104907145031978096326042294769102060277511103575477923693892302797842174107068604312176407961939510408188924895340500509350262598260397775739653795418686434518436743563055512902682968482814229497057054594308360815722278811760210028239444679717193882606276203550733776703644392230670110486168648834070874228750624561618338266427609215878248536067694188723440475968334616373961749998555448101972134779635539156055025957732879092596348116159820551868801455116634698465469653865375866424809337534867824250485769363364833404989490050636516613750455179920318533202583534202509496412596055797040579639353676447698703900072662841833156802136691117601503632183684065956127459409549841531662136652491531297664462410935989757405149539261896903661426319099037820715097768099577039046648552410160083996540241927802156188938650428361290410191246054700295091800133386163540354156532459268332610512577528068226595938655251676021640551027050111814551008465576184966864768048500084148221001463242078342988688435750727111507766885073518261712213761639457081463303481605780124262221917880971293311570356481846506693829583154947127763649770883203983624064052116938838943208090262488054756405917677600797842952421070423094560644869039484344430684005242702119129902298656484283602757010826046960429324858062996883863345720507453164423394032061627486865758518733955633428110047692845579759531321390752376694619803869661853329905999430901378955958953901316148147809391320401465856127471347447278396577942772906878968176874458214790913833742153351919351716823683028390803564451254157704369377849437943491484135704937250576051963269939771741577348928304533878177134304236221734595343005176778613592791206407568687303975897551615947649631065377529626805312732491936667193266870335550262381524723942602599551574194516758194667915666174410452755487406753790192099678884419685695240802511737470117726644116547573811650319101418862277579911105325018527516256496925062585205556934839126024790951430507810751922702809545249855860877095179165555442695281915327101251650293080268786745208616349642226462773884874539392474057531702339320183212986733768725173621274509411996073467357576763005863311139589172589944860972440631620353617358846605522664970795759367464298654413309329530727301550520569481407454025550555994697019068948413371626947269084104975127240755322689945756263639463388810729209246091075451349314998608264057792038899496560375129556189268495320405985703170567233879656150922582532322968415007971675466766954130835584482795086730148235576599944896912331626064724281109148246600450907280436343575664593797564079433213051590939845457052345320920017553497292563848471610284876243970987638534051384392635043613536100434759970086874583827579218417841763361975101714409240991675608764119836255971326848748092712587381469733581205093768229675972335253777310906383083415779946453736060170901292986175476384448930325109780262015969338693013284340341224285887402520699630569428576013768372413268615575667724396166951169943819842730647632261342748072732452063198436960299549332672869385339066510869854538598990738318685281581657231920430242251425051712693446052948785582440125723416810955327446658505619499246796292065154583666653989963662542531433470945734263563576213268326160511139382213856924639633684661899430347370140508329577308511409542514946239724409867196947847159616500193189153107993066957036548434363002449003676675075418089053140628946910917735827440784720412139767329053738858562118692916180616280483995216111042023246870471498904378078326722700543332412504465678984463626279319562944352941296430001206966902861752341899821118451258820923853899758429342141074314268910269341194681278714717872180447869377596458407777211885814331107247347433793588904447215570544828604722493308968057353249288487811751617699335354254563750029576757376964230576956801023355783181234154864492825271244359338911690113193131667299053635680213312874378761427476563463219886860876307559092981884195711066811981086355559598559889953374379156835427806340969107401387564816495989190031885277249922594412052109765131618344651244249106170205262795877593472734533796794317098258432651278919775189947208453500029620527110223417834031806390804594077060220320297210776728956445711798504355048472133811319418866902871574750366719612823427575652022176428226363090573956501404533941967490074291720024036689278253515646833110671678283374718105533768212076033450760833938879987892685845008200594589998437557107790864040636316356918272179763279990452299438849911007359522588424153219911427709489747901810760243856808312603455133817159623627703682595089067780471556141834427616369902453509739309083537106192419615316955045263376900498824420064334876758606185545593197780490307893385503479197646105874592350798476175931913542419578664643887903820846857388724007213052850729732086925826237457340092587598554372242250060775838667643589614523603362249466685516509685163145813869381008678688743220219170455342150239854738506176605268803214290052287122638630581912741101840372481085080073718846395569833839679436765200534597347996402454611839508159773250219389120106480135222994660351186829064029539373661358925620198106153223782792266046108740437650283867905168916975830827105346620991672116593224624323354896209076244866078807849359660616449919763361888783627369713672561437376921593375360316674353992262005887835696292050766672731827833809029765945845929315737672678838676635873395392451618376744607669219845332064416161517574573362104719290879598674926472933561004347430259104054879763893545296082365673898797401974616203718811617323223827736750955407203042780526202683253206414365093417345910476761846214977038624329851220146019886758799741697679567768147401889386806467332430365325535363908236124812571198057213001421439771046916479680090655691940698906414865617903762275330190704913258454385947713738011774744148488947220798928476009255106216204292176336289812844523694743614196252354361395257761536079157348151570132399120119079249745137230516403171511521663059929457512267405024767039640160133920131201156665267000857307512740344189346774646949834679362663340323943642827978662706595607060696695568618328765573324605297892779785728000101149199789982879051264908180143440099360669218880556572907699122522660004775442327999149377182704774297880479077264101019443509021809506298352254949532291848396856286137627724699729402050932231688472923512700751406472935951892132471009531133960285027154333843324093854795769739052486144649665362622559141799796547144222817417002320961869414872888723608102434038137423430334031864442299174263774856187802227955207109508512702119157444539288018924029583400774799891145870486970980362794916105164007298306419532966240436657691695318660537459836949787772268451743516184271014418325235780131720915798725165406041323619259742654913831834336509472325696918121854829705478462309697394887890018601489184833293882494827393606458856347214149956249851852667457835121728005754788461436061317093779856663010261164152230815817961121518606872298983435884077223441695173907880237904901600892084957761313473373887608345940604080999953890784709807227589118455210121398220186926412591996207989149700799989982855547726459715767293330806832432089473359298586576248487840408014530267181148049610194081643134661098733596026286139513291923789053491002814949502551806440767355597332377937549500651376876366849129834131563050849770482098000226454487112745901621961952195263308515937343094135850397534547679125135543056719317204760485308585904380765499003225748634082194341090772993661152971305537055537459576082820959082697636306849029738663035314914396023594321971747053472717076414701526939927111954024513750885347398530284681382334328074718146552369096314484461260537512055019546378850097603403810031683810109980882174722272914214803280844306833187853447082277256612114797976445242777950604691080478174530545505420324701152274649962261945069305149613095225886509881060990296204917051621679077925693518496292271521896323608214569874851275820687446823284972035936028253916856656106725031817149115280492689132750168654113201794985166917658206372989123883782425490128645292090224741445645637153304074677156034380421727358541194668026360622658346798847247580906862438672994541383547587873243566024427274837496298017415001819549993358058989549736910556152549420033548020947740519176430460990340181363636508351204484386441502625394854644923606643374085697187121314388699248452794415737581959990259782599299029785624687267228670325500077306150656885038908751239901931802678166873328402445273650575368764989028304480527908883418329891693855271531530849190588353461276347262219497760214420184911240216699990783856792009317619803635683886088810063449472521721707902182532508862507891357820813244497566178518099685277857339251285672517075669382698565656061584785615205910143511791070278650124785268006492382095742605158093143153618209562649633277277170929148636356733460389553687658988105456131432115802803730071814838692833303362371658754392995744627789381549750059872310069634969812635115353298540072973619167563435726064347729408508915430647465630073297337994298952265523629512699565574901980669358733756792800014090549748358122836162134699718229065486860683709444491686582790757568763186945341188529120244765569601710010152970183278853735460622050664151857902244348698567556096356124369920899655286754887602487366660209302538687299604896710197111764562672854553197380726632548670229863987313737802799574564618527393496560856922145358060777548556921261086100515491300669732605620398199805096355434682412360973791520697211013393295488872390967815504867511580486823287832469678450042392030621759980281859436950050825970938205680777204969795770438649730829841647486195307510159645931896587112349359691051877457546296605073395845409257426118506244258241755985777299625801360553335812299780177936576022320555095548118900837790245382700478038321725050064359493075021545410240948085123109044255921405578807225457290220936057527687333882664648092461039858024541437285244934089145659932895867594925323003388959204053597356026235199852083414091373931290563409926306903683370570561190250495651573503082849651140854192656903130190181187918021765110740085440293262517178099059390087109985808713115441803078190564173798902339477354966452072856022776446862651180038786425739498671331508199513675269111680777316531753900092347244159161121330622561592347208386461476896088718079897015986395495627663613342708979387745493831461751530377395474476742794865136201873740359165455567662282591358639668011581145328541344955018906745268342601582377578870333154836631171829561157717275231857202623411589890821280797629110930753279886476107833530857274223006263907663725929400792924906179155025026570448276706702019162346517447388176165084042267994614018069443667954164220948580922133744589272986370414847334147413377168005516470928759320095952062523780037303508342146592448540465265471804652385210840098133328918388845897845818965105465973981178368532402432574177409521682406265963043828555400269170244308095852702756939427771956633797038737554899155746101407334281106908370405988958454767470256958618512139320167124500412227033684294331177732638328242246816485836003882948586656400470098187244827507211127103529657352226772887967770721103124777701107300764788986810029393735933312822484203472713630848887853659107771983822023324906864159201262213137512830010266502025159520389599980056304571586750511596398905314106452834884097810055124441052338251539867229066102623624919557174641610206652626836865242630398664423814427180895315007151082349561510649452803642589887132467746228279264983899954918361430980970530489552522706955954759492137363297110454892354573403067743018885530871354974696963059325821513487987211208954640268240120444980340336548584660170772520442658870946405733353433807154574010921268912171306972534359451948991119273005470504965731865261102393014243532403456711730286831128641344684836095971511603717360906208657560188080408977520708764469666492624765789226179347692741076748603703154219239163037097200380734660371035677009636230301260231053653619409025493575747732189649787839419630333206711273357825168649303644564168680986709753869650080147695838695878312015375031205735485949146203136621227689288549117877038986076026712269961490308291483126225697203677939115786060336837158891658368163078453076936190304353820901087310435099424169081611775553653528903882568846769226464214368138346232015860992828106620829030459802412928474674028363063549607354347923802482378668299359368883516457615290096189120342215773671858868162216739558828661856920944315099269491302861230169736358846387819108712962800541588782131814543102606713977570514781952133507581157190393950195073190566965855792911768379758308269652866369771577106864798763663868787437592998665786467895340026957988471016974185407993233323552729672837785665270032825014795843526139027158425418696479983363905920305079620260199599151315324961125681782775103057793287731372465408120356867052846470280044760393793200608281428617166621594134897075387261999422994098759148626607280074870239606307268367499586776145111749980604854426036846968875546033315881039971093817775364240724682012003649875493975364348370826651088945183625942086025652102522201577996445846166859939257167238540051356229621763708721696350290621042842299566655548620922303088793775197693628750397382604728813872419101901991978449824643983385104027796371794767291801766695640069203228916131661061917488720042838885708868457420868222913076675202017943094244588769297733565061978476358681367054644956694511906628615342331539060931434916714234166399122928319034785902762381395525461158898099079871982146861809999973516842450699508656652988539897267173836334351017243358374420373085192311774589052051918225069182865417208410630810164111938364416330833552009591448474575837043050073458777186785378696644716824507173534363303162890905323871753991866395070029574849749510935445635167697106627233925534880440049187414304345930746734369154368821592733070002934194699577660760636738712363996852640181300100909371377446292418207665515958588546272383889563576846503334254176796059130639610818094776097700949394373690849937840971320521334162568945598583372885133772632388332007557445991556512468880244702358019598232976469738654918062239140363077735885783175250676612488881822228214107782032318562822889431406954367768799661328173075100439978142419040592488346550937817907277211619630918292521339135087042607681358782475429773357396409431909015131144954886490168191126616195490322460871348155170831723778335611740041569688325585186991768168802637876483044472508476787375849241593955857615992406730809094803040987859019755090827155470429660973622785861322272130446145763029315278721882352178501666575441374664535682332564022359427592975937159302453840336651564802329520183241584106287587044436162647485378940424756464524955391450527277314482082822941410758202880814230625858728047718762207222549313205787848914753223512939368903447594251774130683811263903189315596053216986876770729748995825079849706031399149963327885450326455249496182111961983139458844051984776800524593576853074229927646713137136935325656668445996123885683293424344295880800172643943321646881199408794600910304055942773938682490783488083737958019917756633601404460975222333138351264808933430036387033529246561141775536947798443599425350464505982698225391321803304806004767352858281419092946793543734836738207994111592309204312342041985266730379559239584650359144848105508137531825842113922620441088947472415594613643188640064612578477652849698682577172125491256258058233159354576982397988100297030398530005623308958413276168389742395956725139990409073229049164081577544353516976108963734323818479081448228648523348128153129512358743998537982013390751301949757421476081714900675478792104763593120875602645352060851572417431815750355790139771809987897049056965178072518757448910493004324801042287934439902834355862693206879958822749615117063784683299237764642905555467291078381356736604500508962704660607876614005014257304285914429705273235303929648668051655099129468586122798061448394964208077388333020077762221279963143952836085363637528539905591438163685710481746824044237097793934926357205070618871889319316003782186766163913184465736540058079117164206451095143189494722375016073030703267175802759595667219370990954355469118834562319350470535411350997553359399521798973404498451075341154513526868749927291094648853492452131943182321447852211846450960411186066836330234168081613307820829463573463973865876053503584105609657527063395230722979431584397330412829116820244166206833138297454376479156973845000864319858509363467977922326206347028839761890532009066521680559015829758440526113445756665376724974058792098121173606712790072869314323377979515448592970672487049692928538905763653080414151126356166481407043794283338177660501914533960657380108875264790316957920341256377519163757690614719732078660321896601768019491712007251872568619691825723618118166671308656324785895344805971007019509510150506331995090205616672856634981552474457548669048489280852888485611051356906800523296547704414986869583016676312643890899481551176625895950519428033119341138333412402078402569516499343426829061274549192217612586782902474448688931716292069101627734839110970450968973073574886812824719508040843922903015159819784244149981173118372970027995300526392629426629403867294753746137750099437778668066166373311800102760283871033621194246908713822924202507843543677478139290254536660248172978140990418177024953435163372447453338765001942317161454144142087927924306199512770394245192631666798074869123212079531915829736841988565326439035182892028467690597352799008430081869650266211263931144863039080194273071419387996375768403494853448146179325976519260387295067349265385498364322141563967605524805881336418139469610269841039177529424480417750321496680739633405133460520478586656966366984368730037326602351755086101655599665909229527133181828981984912483169985785316978314792103313065053536665629722519532060492629918805262250151586506156734013725982488408950448062542163852283644348990120696175915740960570285159632424942925227128635264077029549520939824432062276812043608986508842986556892007280388255095742070443399707516922158892423188567563110793969614874177332173826015005168358351405546184961380615764186939237914832026686363177119292231065485501045599035510238737223252159197855517354821905238656381698535869721729193162096045525484388586948623719289242376082386734789686535158521642748251890191186492432106393849113208267485227220274039894516244031610582693543702043927445617706729692847731660675818837918408883052613406938711645248531927700464298706103879780497492066254254437103416399466525227177223291041648634995098431791698514689750214984759265143840840537193929089182602879551989529084943574366822854042434423385290998044231664260804512598917737612006698676166948704823109945272546630954208416403065501546406846303604280500395242568190820474382040048275082777023002337548218252094007094243068565213037104602989871571462826530406920094990159218012750277010663803176098472633589805936422925295438266177632600711526447742897079418066924915946676368558983049506467301258590071092854344922640907538359537246036114017297533243333880499349768645220924561768869348986800448591500503719591169127989874056736575253678612228069231755787836568241672885754280901249267229272279815869414929562921338817628972556802871879703097164723512577120102221490684329668509418154508993603612251172212363507232297046999618329375753167932591390830485987919145509248814887296807468914438439217643161314061531804932086505534896251366487782475213545158715718810975301121139310593369101818260737887464948877917322974382834599784117515893405909813259413893324853468816737077600908403186724255055517700071036486611078073899776677295868734440890134357547289762221763721000354552164649173912898179117558899228288237412450501370832842902251646803302235824954260920918299450414695740437111436664704163851513606789780364569596362367938008887778172054000784213252719327574477080338364612112787111533770129290142133927945317291998341091796559006189016281130406812470388764266830075179910458797171612070357284271552909172514683481348863345196947651826269858695757628110041857867404860502146393460682348329634845789097809427518526974455951798290497543767188556557943371204945418791028505839781155837834115475978592919942441319850844730618700124974120722515325201024552887691856954109854680592927622389161718295102907916844917677109343266884843274258248428031611919933974411197586657962041921117806872553188704098332065752634247663077262604633144584128853120649534270719670454355068246347498193940089955273758906314561207400072740001423706604807618093465937528139501769225397062302637543252323791590913068774943068158788568528379130916399224133680674263676725160478646460738852795757490654089258358944790705113754918670629478705965493435475237048673846945781178427511042081005803557182390220219957154381510913914002292292830448619896746370755370248097685421062021477637032799807157303346312829817728742866340933292031800977234162432247919552145821975281417667793866327709432515915185996938629108812140609778512165190573086696958309365346696290372665688640231382846396667124221901472379387257861761215110159305326323818469405701585438082241761406932142388168001048094966034362485092585323218962491916815103042516573653124590325388267953585114772755810163197573519569000614629413129683710343471353026166447704315367370415049617267830447861121803762946057895084641496864924612842637795623231800581093202316088503220943922496977833516331070294843191916114374485544133279252517446775563466786673972730011216196451100117641420528177351706783457771026594871031188847400338145147396711418210851495869980802390517510589216557562406366511664370704581676723062916903398509954135746136755486939937671483695853059657381516261310350214501574862004220536603794431921932282326723474623727820074042139347618894575587141639468580009695910821566018586997212394012330526771402380079764236299291334085168785064753071005287558446211367668657177286931983747933729300123019841476954421086974024787668829385548422883617231664648778687576757530500776009903780302057403000529586889683438811227353804700412468074159385720604049243057877965284471003506395797591566340522224248614788464487583064550876401289659720044558216096456647556553130944264639043616175311099941842583930798282105129935882004966529511759173453271221722157736251980808390215286720633530410810167467732943709585480437878852095389134602210492280539036612933707955824241970685756107416752325491940761377117333929455587349478465946602261111995103438066055250278031449515520559271171569946206659432259051303745725743538665523930902464914753590654647494804785749430663595438773638259565449292254054636077641459872867221906107189331094646775231324471880321937528128909918949122006103667312549056703037265190525068112207384855110017831879322580194816746524355845758468834979323222387650282787776738553481341892513578897713588188727127425583715336351395391627056446791567018943354104896201181220859752857028470971683066525243063691415894357219219431855513747773712522216228063996468887579276717502004469851236570634413679182664001735446930632546405888379490470923563266622939852349544893456001154714591169800613729395764145456530503180103803651277005595285674928102806738142429482194955934674503182824066848827631968739881944470625874421729805087580974976164395376960419763786270027877913776064315266794624163666140499424261342441450467615212825330888833585523647456368866151300673694739666955527208643860497995303791404197870279978173026044443169917582626323360605661706894418438534264923659457083414556816692579705211783035357772979634630342628910492643817774134632147930308204711142225421060901409266209714539386566950931979923001586025477206543596140008142542017911913055119528888955914254864179585316533242088031798310346118061943731515732427875639496455776058131515871373507920437404388583606846795057789853774321080115386217499095896900474649036580385957651530303185457936268003139689182107537193117904596609325120086167113033324804863105658743081155362717601170582052620945351408726780679303756884757744449828005610534196706474489520979315385136423051237051174616909143377049601259356406134496352294191099993195016484298663354780453607903100549912150041243604110361080334810912520668512023208658812524135686887676981225276152596274469178828550703616418898383695779236992477380438803681827570731176083799493394369074349058410826737054618513089857934263482196125193775167252704504663193636480893310882199614195405359856333035722709793058062101871240842169300674954331122698813364522588413100625628889305388483531494724172024976599647883921056634444864168236385269221176472749513571300574667623350013512830053711504829892375532101672336085101551851049582028804071206377575500257811383730128309583589120975544848966781021844123957490499788377968972003993646946050985977647074017832035446841075498296567963375695139859860728148769856901007060258320988988855959215985167362607701713572613196309825002874606911506907498444187655098989730425660404093106167757718943759008095258506755234434189469210693879195222742559180034876420546110466973949462022313050799120897544115335108444143384111663801004071957176611892745580776522464584808309970136914179081972673558936536809747381618414025455843268973551035892908987033030283935856534973338798474743498095385168233948659256616582692943442370413685511817901866361916722285915951878661919243068949932892794124338208266311672019928373629687118062726044483183692418238229665066584790163990908018551729527249750361867140700373409436184800807328618188324769211669256832452201953108144784361523408967892714661649285605448204176635364546231818878328215287257063378321657327875590011158287094736785362028437414291201672529459542918866228953162048757339881008327541117721301292851081406963317273963293764311620428156457426642354397662368483843858396853738779692931084166169381010654034261082957141966852789836931592246696672969947473444815365680883640665086614715826728883839339475754262121190816263243647964607293431879380245223893518754251952248609418851458629058891181339047085096357298545508295019636483683381452680569071419098301254401518757457507442426086915243112290917057267350131148638921888090184516339001213075940683198241016503976293863648585789115587987922444657141368127098805559558784247298376454798422714460312662050821344131549363396634840155157501587272954474962287471722920328537864627261691325962890100994057818177758080423189222909005970013147650040775973322454441471503495026711508538975978786777979859204927718126134175926841027658895997128213423994085340570489371583627166338777397320660680195574404070063690832914369945578648924515067590203241191167487138540230853188203005010935590960125758738897627856108865708642021122816088664285289183620800116312729662469072894300401096938805639807465114915823567060167805896821829924888801006860905948797715531307781656200465693205375806796703436579903539782921854651456498378538464158177096406293628424875673913140039262523398908318215131004827286581742225559199142658914436662982037652650413773866720050055356791239662117320274122328823283930590818886606095481004411919721285831226209334656414646207677343011374112715244247796385536935578760090681708100349882027240956563765011468166767857429894870018244167173707482196229888094185809789265467769237912002953675745526537353074726842766784857358695232678573764605745232944287029252573911516574573323062003165254973644046991864741310527016710089573400010202513355471262464158875603385617147222715253994123399141525078807505889637714071250694607183375932163693979754825397284042864714686805863964642764495072634563938924736727792341489108857557434634431239232434815056103673157089245247109991020123659103753303778062276890365463169209434415586450085497216359038077400284817663226581295893836082017180441861385667159945845755580014537635820867053833975897315759386175294748648391670788017357027429455725454451533198123727722803448979913887921682882425218649347971149229925302951374908922879629219724762058450472248527476767644979200072420131797487379643486893642309897531507427054565385258859579097882480344004767054704560154124651462026329799140378332493221860940959016998449766612625769675127325665623253364183366361925851015441912350038026186862376640558127953189116085856339890451826968660736196706347080136682314419344247628329566053352698411609539895113341598782009559982158088544851828665390053761557554559524670695836917347383080400208815284720899562171510806837364920594333458627556683772070330781194109811947097831549100335742904844494739340907314280351022591766426459165195454912911423874541759559708258041053367788696690835134428688094937087541915127316079443636133980231927823460800252203951592111606316054724384763810221670623764405812364893705526609074397676420266596891566040719266260678061618484424388780434325684688204975377603097519201506608331104877647662784043951125446035579819686056352369011872394506507888543326581342848302294878034832474797116443052628787867208747671690462141759511641430210606234690439905721004829715705638261247805531251125830751491769839690675620590966052250099832760790895122662733976793588466066966744434561855445338246011449461882779833474273011894653459050523276021230645074944043292016324158817606829279235842870337716195964834864721738034543916653830894237898056132361487693376328030234346799443802443153124353610443489318204323793391613412603499762239208047693513406244910895626408813639193988777531918433480147404821242022819403624461828086039564611457006295737313487009258884529653483652242275625346535424854580223965920253116577824634515503013248164885044045066563267761764870656045665818618757280106433907111519669665099958521421647035992057197919069961563851859989356863613949215789964576149904347009340035857361695356160352531011007426384815507594981837773018783876896881817718000572292653456037627126986376160274853827144354725285571777719446207024667309421659090791961082512519809175201420610404633930117005302646961750320093646848118011723816722232843354782370020438600793678989374595143955751203172256758568804833247658507653334802373449929366244358717941382825582531947591958254131060623049344343940977305679422203554014515427108580095649508577748278714127701403504334949964184580335114216989552164129564142221586114825193599322112372540223686852977073987273790552712467634289673501944934267293100564749127274598826405401737596221469932136021196910698952943931572897035425106756086437524794174302837191151709362987327551852720046832769560960306786121082861717035239866855521913698557548801769705201871777756512276896910444378823902289457816950257746243832849596718695508638320115660116079498980597450337864348842203199618811067506462280239647219004621450259263912569006771469231354941193631544608782863182518164806750703426010227853676803721445321480275255418835856723485658788161663548114270241631134795863504685959804220288960856670334179552230172129108174384645181727555152522943681687804012127353785656348984909436311454927373589245340447453762632533840054538430973695906734247919940207720135814511193555147243169800241376207561128341960845079172007308721592001699511702759336582031751694698824047953268471954073240495821399675551834921166719454416725272648947544875208055169284361822820630827022351411813196373891565337220569646491334011855872833324087744981759600141098680825260763082124825213888178232602103587804015699270576088716578634820768583047479991515027303331765028019358173150779136937022656885851982463724910713176858645480771389500813228409679251509785868424158442677947137288092487850007265839543776096276425766162421575034408209949037119278809039616065838389440650940183112263248183981176337520795567620146005033766485706429473348888584412432686943580319742418292042247223212764999079851571612956609816182031177185366882736487577592641954978307790574799655473799875258642997013427070419550902530119706857021611739455158407820696050764755915855711829805040445179394026058638339965220298461879140272469427567398676263113522504451279687290784854642790860712830562328438797903396145027285170365184860581148572246263564083726335967775311334759965581625578996009998833076153263268837058753013198153416231227159179072810578951008977014274472338153693782754916199832673330130399079175911566085432185164203357562342867799398610107799128137953451703964894366853327552254384134018613419840504018279413773861592186620971342163705352681052783989033864860677036488987515086526564671699079504367463292505150243889369073934301681651793899621647913121900119167670741760230817580463147716827240230472988958882762088735097221270046196988145840147480826280714176901138988970384694238412564597000425356833912409278115774691469809684631706091005582514339104322543324997928672180645190294449645385765390052740070212397379004365197667427551612512965888644837170812352761164848819050459044463273238428751892951500622000048356700027826153193558428847120919933128636873689928701571665422863529564776068964951294782968887271693353772436913974023469596579801669047369905078939101309150249648827846942605783592608189337709472331919957450442288683762733235774617928185054809645550765252466959436068779692521056847939153956558698057682220773263784256964683415071171132250446314889690272882669109569944009516263743073665535715756334443510310875597483514394188769152753946943211927222849227123884076765224762907790293237555741775357761465517384675088685835248820830924713113006193940874685047405307217872258541607464909799872086973303047771744800545048632455665907604501288498333241190436228039223963028743997880079920015818945452591843881111969975866848645130656678678629620263260152059712686729517350164311534285679231499381680801179094540443804487635192222808453307885688698624698072648203362309911365460982736008780343737493104748851497833029716735321120439291927193326891983947786672737349946078033951986162115950411746731078654290363399271469626165825031622634582854977572125436459141772001253896066645702159687796421425541334534588164913223650663002144408465730333218381342740683489252160047088631403719370174681426365265390913731703805033391386775719340359366930332014901210158598685340470396606101690623260929356614914392427821221845956160840634022644728103315882603576967340929980675834053064653400459107178668141725140272626842764040023532063474802372644951078049075926864306637454456726018008734528270346171813418170660412552698731248513253516356416842358233704228927091874916536594146037712998849248653679614852551252712431411594517097926439887689707383740016650506202526755114609298534904770553689762406664412828271443568229109554928219552502593610005690970600665910327934652479348006060073628113515752856211700379792278108622438765273716650851502777747459264095342567605374148275102076835149965599471897345644769920111346093218596537659886813760989580061170049847650973445348673025270026817786375515316232996349559022778514321413799693685856256788970044915634809831129064282392994310846223496479587859489114331083485752568028947937908928337302392586799144733673021460123203629811617623845425963724379460817319828556717082037669955481072160998342569180690195599122981376935113039998630296287061887499154621003750199117503302876549322215223210692410422335860289210614383995948780545046288504868805323730199034032877584814747674333363945867837744925348323377778565639430404934385977119762389023663584806265069331626458815585664551031442801617860477763795789105912734109814535149407946318087752269216781711871295050170729096867989387105890289436039557661214054668880872669634050406911670739637331952596508037753079130212750995348201431708607690975014088937958313307601975431627448290182508615224008263290209442477589277746075054472102885115619794636456782828530306990142805480326728904417508102597292412626961266797553966906444024807807721235873720392337139046243647119671082102173246258766520550150455729168826757810099998028035045337254899861070623403021026588152575700903413871695992892592527495949276944067899386609636361403083848645525370826624627322043314711700060597725226757345481622776066404140345110150038264571134109657048288385265074865867988826352004009664080284006632190136106329750999335116196358892045487161741784647583596863170890085694414094516600968595727690713832556287806620393776452000812701939054805383318089814696399324654948354468841805865926717083140785401889878798030356442483980107071516301745223128139480256230375775992313516122254028714646761248723849781459170609367964500286692180168168380130251892678708693902130449281650533202953076519904191104922229782783149235273605662443041705250901458468912673124495332945958946755931620657646607861314807328880853673860513328184680774461224661283265177100142122841781891950174343440555057819396903665347714848396374242367951788526963817560098034125590593131674952456931458838870628391382102109801250981642081688702794619019171711667322332228919016145773144271393286170178668564386150776765951379695869879223882072060496876242724830936700958994999150036818343927571299863747234384406454908279980238142198836817469320850253971852863788292185318996897414956640003577495860472801016860831102917907867672141446642425504772374353768749074162149919529174457562732376027260199597791532315277468238039011157225712313768388944453671128312882942072111551699044535277903707968831570333080253378422726536043231713521455695834097427789940338746597810891859289914668406379797646490748589069626667534244558662632546546157635248818499788769048328265616268435301571025934081100177796771927082877064995459232881810249530763372898089265972912670951730956033856059040142677337912190065027748046978015240765596885317307749333066199496315977820259907205527012488937738782028528616184515905256650092727318198886402082349306557164911960436660399650868418177512009490056917317205511766409305606634953148398222815117460301181994692031213697760735290042130429196617125721443259784627474074705358675954504182041084477923360400124851931584450101472549025980178568805290249475336306430206915122378874978142989455615989464173301338936182402677583388321050789532490583323396402876165897331298637155148121667560662998442797015297798467889070132357458044098667051990909402615754388733747878965496800191776958014748161126943576491393902685031307723708346722194373824859758210483197964782818604299107684562962893904796103399908322647331282907135625764070718059425949142532553805102787083218573064745855120293932454434061245159559193608686389361925832113526034522853878390734675539430696787576587925223247594130868746876115086431217205682231723149181804190163637713372461139421407584113464551889601696853518711694680596992430234613115421025488032227431660498244841680161033638942777205363420803585542582358750648338690029963799218528626865952977734442479693860612882696365682574468105207746425342630718433605608096747100201171942520855495557872538434675054765935410821346669304053218446789399054823740161113190867179135384288089355846917517382712643945696442111879490989976661851407188750869256691820960685549618252038882972672002824563724362695192450210649489244015694106024807905834506060931815785735884412466870840298580250396856702640463858103753373950628120012135864549101349119235548356245990456794807332353897953298634269270402460404621451063707674629531454035641327280388383372958336841849551797274013103203860129976551993778477574577359528266907322396487723639315746893253004318295608035810920621517692753071318276459430183621772742794068229027902887103410309544845205230986631105970665351493384581458193523347900289190513401460028837716790024376586463484697874259670503118364948142067269362794800028528529989607712971962849805576964166211933461773054294025494575523724937102061441638510450946988684199757264332220761944976179704096423771349609046498766991162411820266515131348541231314041738245162868175573129722769511179011999261708450067191891456499790938105071138990244331963958367940997534040708155120773395624425007123746805818132226638970624890013897786234329139163820975851638441948949453891978151122717591051576052940121700062243923741637683971551480476635094657016515421879876656916191379654337588296556602637194771764725648634582063586883620900317820144840594135414899913030904208702839631816846641681140504236493997977201389099935585547729405204546289447059875539243717637753503753388634652808023926079193185061498291509485077969835197664717908818654011043036737665911036331031221758975748974553856134085963659966899062093955191672895637545024835467558389122344194201040060328368388920593697625841307704610602822055009691527071656486708596142972180495490408474182407120243982713448632958756852328368695195798071029588206760342132795736248639159292338709204155698222115261063006459344289534768283443689224253366100363410396040850133445912642673583054222098963614669809628557403083422047972793589166173788156572610069642689003883025867604194188141100442230202828688815417671607509029952451851452803391257621997199510355969062629995774262038468036449353769659047461802522781838935474198426392278453231762908624364579342406074415776684085722227612426489602061393244641486551452132419839739505188451383202541101093596294897796575545645371730398629777329029273574081115926151430999190911956380618994419474552011148318907735646728145205576837737302075117070959017993432762461066349400295255973876142016207596442714511106449388050284262271909927795452429394035849698969307487535672587891688685903632717685122621551020809291477964926847256884374344002641000239810622638021088058544442803482913071238179554913147124132163334071457759107386546816791716635777535855672570066722080608837207589032287804989067866872266056774111321576722488316784297467550432167593547197930448412112672081725344815570045008013409336716901158508514382716508260985674965698764838602194145191386858204556743755254710566293509695100013991245384270949196123559727475193158874723971505217033337382574599322501435488404358230218588148546466525362497763762821196536338011146552695544941924627136507405956761114063164485712033445836272658074301793073726009991717041233686462353378967009294316964626627611634645802957181415840263255520095672885418118148080234848731998512746790586539471621425827502800447320982235446295885550841412269413190746454259722537113116795043141027956980321468179871207033680790454108878025739021247353151723789008158887968874184860009734212419118624226962307091877451519789118293303219151144930838713459053512610944650324205312193465193587020541157165235074304422441940627454673075396680538826027810594357896515626790501644600827790399686583950861393800858348516303914980976263553535035539154724466201314872621061795393529427132081510452013084220602690724804158486248448720621474275749868975894007285578824578159701461233025405172814142280482431776561133907712806682282347977157538872066031052222513113999312569938688267404693829802520535098432538205919259928307034002930587011266743980360597771746495269102698046054464989401283881626562240913941451735403467103904820465128146549905739186756364171657714669104890447718832920522972979258986132994340393157635821300427673014400754970830278845819836101477943061694791963090232140962280846627184701369291607398774530206989612907909648110979345467923352919807238812853991822800693110715224264254045308930069020109416287053941174466703574280623428931499127113873244236551216642692530423250941321280602473294297327144022678690728762651047427230103718774020558361499917836441785523077528026476897597538800557090981720713121052095752457762785513319425822364950835684084751812010987372290357877708662351222417824459112385523973058356930274860774967974921497288715454734395438328386256876353010284830662784958341494704567345990299764311229119303925813146501458688554052992724838578017170993807683960426008673869229248843869317832248036125040402308438726900817610001320920825964117794237467042112661474307381613274028169607861518904794420850995098931731006308166273074760137620667220257645215123394223609291310042747217052012053503853329066486551380140994784152973456272837293247312996105310386027592158482506767787676678768011894383076247446877365199035682454535500905654343183578888143167455343163321686377438440092126186199872166872375782940150397521973971979582272291153101164257708766644581019326582043753386414293994041488766522483807225383259907761610090374664669779649869135791536856629666110594654345318887401664387595026350164612802256303778731967446467928598394209661614430866241518380132328888115830632353034009542863472474798249806652333067728737851405277191174871683070842338759008216673438236860024602788437011338444991798271189660826286124066526175088633837593298201016234160607812868604591859847928110593551019868144480008003289954762765779819986055175335983989619775765699390104117507443206022460251928017411897988046919158808845554094833957412916243311098503945122819569300308773262596081284973118070204728341354319347876094320578982324872491200006237106048597362063553256673429084650772463361070650681731438898701488426389216185884255558123609481937339027048589754533121269701114325968962879786422496305381541409109512657474439101420903507996890036229434524948817348647705548045652552958163221134128717479018986804360073604026312795994228600945907187657204027464978044016348578935767089839203679461319361862925613752154667957539843850371890510285835359692469565734023991402131031336730892436764220730405483797044526162967244022943050788501394210442588147131370398214768906493375647693565992070124265698020962252148729028867370376264385028923376039206885534782331277893194499724817703732252597417485778520636287778890534564900518154066060880445674838277295233843995924697419193011559410117022097606399808184063928451214959552845790966713304655186814692393143048903901799020482432171286087047544582558949896346910835877702658221828503167515215941927889902175074673067308198124656686749719600196585213077459136779870889180979266349027561775612806420714814320955117303520670266758972354679934761665734908990440581650666396291655291538614258380789858949102034004922008426696804499559892425261878577761330181817421168334605699391432181003076809290600326584025605216421355528883319331432472437530590836191107944668496976270941139402745969827385848886934185617983820615014625815990355025101614472989868493511166060886387236175890917175689813555998719037542185876565368984684136986950788220164987940849706639389625212311193087223134998404946806685333078763885253915934111470563996923259381595579915371472339140901388359771698256628288712019331540412751869428652880476402186127599751129870358155803754883311675759454498441193548321284492711442255257735636436503346023266433517176302459170373772116846307458983664155258628047831048250468154306417525006378656481128421514093134638400738030488505028286507280309643511587701465387920521428891926365133266187363736806636361350017713062431416322778551952939389654232954709490294361848622510635235348942509435623037876962887004107479620801124951246533084168148984083829113169848744907324350096830247296510382590320640412888856160921789327636920909830898545805034936568576919239443640655911823994350768415269154724906790066901017755465317384288433336606608638064481193164304466320225694705386725223633804355175998804249537350635948195380673111258415878074639422313933491307437028320682351455924797392913086770450862535655049359766779203124926113313134396622462796761275969928181927530919070010388182805841406517696235705035953406753209654210819868369848676618241448269157292235103852732160781710767072717650600101737227559957431432264818834073344679934918592405457314543643936940764375816468683561265157224564824382919328436524121005915471388914435533464751002668093032314932440452036316231785843346860559447954385897428978580486729104611631554950229281513322152728630595738955939704041492835659853528993889533618769566345911890919444211026353565284326260805133745183906260741641949240025204023096822028548643347598469103732845986946522711906911465788235238959292334598766803322941386982689836427448058550722191587495067415669274898429659928653522071887903792023651968264065636197742900707124165235637923364859694522427467525904178370406538936700096369704888733900742033000079309694106392708700423627536331100645346050533241929667112785155017781663388428807824204751397386708590746434592521048682911820570586672168175850401572169297209846727208455849277569638605157923279623207204118686818261669020017990015925904408937919490063944106312042741801806418388045813334914793069011008390006932298731125189339203777618519293724408291283957105973851131701787377830316777677920402795970946664873246408800070718625265929259194114144446056809624816880396856507886466990647729562161642403553683615451488370917169319491897755090692702081258038304251686993613213345863948461508992440464624343425891061340376262194317817819640615392622842365673804412394693344680112657496221446453093854842008308135764710125201854202368783864167699605827698092725606412853435510633226059125620014959242355378805168166834397183543965988298199896397842545557433051914671714447688093404222188245985679577798714180668831994841284735424176094995609696379039942635569845678791828716827150162938656892360976114220129197401460819717557193579462097616526931639634200171645083102985563373346065759825712735238235919431762825855146383658642593400928258224918731009894323423640844234725777328563843881274534397915578000313149235575715937973428061431143965239044497304846728220463327837508496832171424184732136165075275422451312050702315922178855785858318629086404827424032160824862563402108046669035870476292977763185936759963018163312938435073475580187516589615229350818123038270914028182601156434192200531951277505827485564322775110916303119646388466420384188020505934874643114734859401877234192237395837590148378074955210360009341538672510820512054584589319251898002227588129286955919130507918242980920875173584698424348794493953304725649776350955317649420765958352734433616168861449294851057745005561118858264568505107141290959445596506864336375889615232003623755708425858415329417671521099257911386662172002873519585053226710757163947408794484311705323560036916919088436127346941043420231110860477130815247265583105094848789720845657635564303368551671043433901868229646014615340613469206077204850780501466298926644819138175862755007237342276822038475683678911081183801492623232533935852357421254556934435013773344268093289863261510563459648713226451307935115692142193736295033137412788872304518002440698010765483684214824460906122278074491203622721924729313257787761745260233145468895147714999060529570645398875826855870589566710327922427506979797029973281012489438911275859860639787686448207827468544735980491578945175956393825700485625191820555218065181351242826881436388612533816152370202307268269957018352962488134354141780830391701909710560337717806866604387942219519183379427173478195345480008048877690103140961107259712674670538163189697536295310228651202736040541773056827090426693026555613511106450172806325127300100302272703437195070362205071608782740730129585185343734580395429356052858919019049758937765441265806877395223539702516142300195105153356251350889575989966169425884608101626915298349735340595523528392610117711433125445454203386423499260940467120634074424338432513094394871071067423279186561552344535350171257605362972869148455369985639086721409426947895268814817014810246308135366701766224046233380666639475937616480714955370783580965834906490136992505467976788934543533636872429569684617989630481600092687827360984018813339256097181426075577778751989318660068977206008029544144508095564650178433508782261774506634973681305772809254704119466261964982752372880470389283453423071750297589057819039650096204522994609913295317458127919647857583291476224609928364884083679825309428476111901793588117919632046940031054595027510358056568157215155167196799033162471181436064181490208211865441047604933570834914206533206916027974955420241158576131266554764751293990930925012607902945840287895932748877840894941901257011188305012865288230464378415944007141241330146801012061761559212126587481861133392842330644173626264026109438883972867534723117398604914935002504021106380441009333698660654795697417358927570043540401311526718248391629627528760731160189203312028700379144088275975071327490332932682139150855034680251986188107282969612577156865718917096184464177579741032145167613612465294461156885346015748844041012584141727132374017886241218000030274060527656557971533521899747901911706553921941449594522142186683434981091050663138285561410998444776027986890123800984469384413912134827270122451523130112891393568077264207665891806348443546181918714779850685523934203794389067826559256190396114689479792157590228624382215260934471202205172196886111032095800422946753540409194029804027594383997237919294218729473541014615308426486836065474022208802124382905537508101158075374488046745279415500643500432420878749576075373497594400199902476849221487165758365512237193939559771007586761100996917076902235148528464613870697566233478434598124014119739908123524915294279473000659503694184779969901769667885008470402374364772560380252543154463741064380954462662732616603745118918841113377193116902120571826302369145030315720081403830774422425646389440045958604394639083940946159717406696515032143892358907081990362883668798918526417030569904481271008617300821678792100499689433243240671831881665081319045116017671266942390021444732510124435245941754641047897868334439483420069474170899127514309825038061119954711840449372192032566111284990801208980393721704371174346110028643410243061915018529754927966041395103672527640128497130855634617468714074755544729441284949353353914968090819069356156546828286107422825203130988740288163742847221342723045254442220332915225909526852745684975297576215612578770319998108122586453006736769011295483799505626715488968370792022034686858426572594928501692650718077300967721419978415491971798617479314290003254877718923023890493921253688990985526355207079697657948188813664814952052118802415506302165234240141592612534521685081831781567397979117767834408203642411645264650574185242825695017681137709007080370817019008616895097315382505656371723709662880734356138436761799760352743374205472008156263045240717583882300035951694133545369700900361126986198217957061985051263666326757675216408671814453181384194639144763824478256359834987783442364601492323344916889244586361771883475889927886751405076414734147527946469053043253614340905537466856864492248892350710274403966918469113330354589590954077002825604028447352669508518180462028101254662333744766119253666101039601033232046525550132825046813522014951056031789085113550727896427304007169294989359970241451004251154212229047101461201159696658854421258910017300959524341558217665838443697354745351865374131704019612535690369001835574072093956345007741149302403055629336875539687523397581917857859454600321968266893543624701512106919084584601665235834886944049841976790607371699886145850418610561420843814933720768970584554903532871196635650123935374670598048243058538371592438406174083113676340094647617114340378777742869507971497222172161149616536673369051731138001643849181398461043059289746979501860709004113790901997519306545688468435458184307853474410429938163709706603974763600024381872108110612258914110124171276831787752887650730657583063463870244421101879781124525101283953703592344898230654529158992206054469965335963853698429358761866008082763751980442945121253046749330002617084998680109453313557252039158816610380906892936666218625828699802313712416923123649012178231809696147532506380766464079340614666596008729527024227493360690192933005440123973198899375296079108390059493378919983233829053774971194970809838560985873177289292823818620674168304645076551350364420277127962915650252620069334350809222605066087295141167787286083349749074566142788154111911034122427632570878005064148807321429326199315064841193438993150526197704360425666749621672724651027244390979899813075266239570315348176994117822131926978297465133820406087126946638708241931459054002394254605795320760949535443644616936075264986864959207685737724968609660117045778067842903826234370706432945533718480205593287341351341716742003151394979547448788281992527168611235734126748080163066692390699450003622847666831543426595685002268386326940739725517379849762631685257363328005646327161804112146731123256891619994676711569928577496972225561388379892854915137178002734597940686190812231124186893830738205278993979895374633317402100003503312468532025153447957220259793217502954170187425539177568005692469798408685397680533992452945164074187815354271476097719590318474950021442231576042128203044906011654310456265973833540751387273366945581028323242672827236650885972329981305217168953863926087184578967041734616814446020944327135837082810734068517693231979060121155964778930369026256658306403527854163207803441633248152502169298015825086130039859794306310601048357306767303346054913065033372117663837240525650642473040810476976229079827695142028255893126281458251788302377590136913993469810827039924634514211174890467259620223355182068727122800815273006126751757851554678386632893735879952592446143447948923274011508930517543203337622259878882869266145946594496424873200113356230233178437718104061850216658202209387899938495149261735456096471917275265622092871624198740254167394819806436143128578650195984934258432872483152013744762857147959631925787713178839474451002078985836992877618053373060514597246470026371042098678440467140690626526159156965526766323661476050050766115846572089850661631375031455794249173999725629727522087432919925878446167695791676627574581658821711714249524127470830065854198198248159546056830057697982812844290308202676639601823094048514428126692445529011994603436053042415035864632402639786788311210734852111894810370269292961256757086295972491226254205153245891231269573895276250058542338160296331174855700629708114158725463150277132269241063594642603504051479595959844287559464863497844568369849784015503797242891326376531097690739303975840223273878240824374976844808439007752656301824035143280253122328157826769370066640465638262741034500936102221638862173132033842245919399134477728908601853893075759343282886124262505901114776719060953646741684801437970105346535416679349401236577933920494040545241804302918064980995234382995456281124228664916208157315360100218274403933228174365460958931770486977895186692093151047564582425457967963390459068610812178167945161089681203543641598392135456487279907695353612448545414884045561449810858382939078541053584695546296456551687710374236196916402663752216662711611030362956267213418161296229493305868973703701426990653081926620331619153000411944641780510875960567197666426704974366970046558845418754355493670352178894094785577769120449555745631003898340070480607305841006589316195309191439642872763637365140498254318459079674266115986913118497918895953659670173630196066250026616002014215085211194319443578286132085159354605749518530326314698242371614377241162218943594367069243448110057206932146014377762329852953617204974904678904689473083404249896370455751963653696270258302999044553671671411617999696128881468641861602426270654444617407903835203386634616656636208137634316469168591201435127284286518242284713314721868894132819365685368360435597293270166020611829364938008100949742462392206739331941891470125803913389491558695395193010122582425272867895886056314021752503167598135097210690039841274868957515578411592767265002909291183496183129230532869478132673742065920300209024125138776382848709591192542934211044045618562580664794513588521936901626620646788024454865714308402946972559154851431157371219688035806309471990097279845529472195742787961573368740362874759290304958954342322037701953881508804361267298131981738832665258800967692973385799735820475207001800678857003434730079222445094782528361221087760819872540849850370812819944849713087108716871739618641796759177578819186696880741695207218393813346027595980132407147613081041421527183138870958974386732759897999317403971888358336434299502857216292107862920679962073440024144729910233605418871575561985487273446536454659939894823449953840197580699464032566212639612366976235766740505869606709629101539684767541545877928342402232156412274635800491438370719145492882672336490378584118346412131522517616034051078133384022358767529509905012871647749545551623002008081849990711406606374978957296641308050831542992788937551427410143369758345732970072175739797689878130565547981907962624528455847568668456195085109182727994923869961950250461481784594297361664996187754777092491019738003790910740700959308380117693131252849742738562334318316787428271722794985082324346685136440440096277162929138293507247464567191087086169628172947230927711748402769682092915285194051824678778786003558816850201580950023781483198063255432404933268467534731612940533082623281370692512779084653154419864034424959843490853413522749506126359795954802275235470479180163002516707883359872197977783315390813180104905773253109058515164458813792071351994169382912877839074167967609040642743689620746245113337050024672424368721880068940714951449892566237477472293023313255714595612958080337109471178899178394990564768987993031792481435947271540996705038720915590900329406581838450155237489410204251321129334167030905245326347891436507107051803293740942424721500171810923964826964953427306846260172179678074384714339362092048716511157106802460340883364043070917659304011917581217147637609691046894723167499265670267657718493688622970658016292556872301891390827540692671943909280213350098391439157252401374534305752982297410255786963739428613910593879002376477641909235230961508160454975522625740927453358171488459659228762950410747938137789355366309786887995477618835716026911740150329308960831793274370829142382253598195548170988843163362120556127450882783953541755864967566401087404800721023884416475579317681847563250606734167243507370701373583149248840834603935699862942044975672308105450478256323227347101200363110856807715649850150218948917646939837546636023574839793927122236940484731393227394624053841814391489384770324991214303801355379942093493525450130423507039162096352805241708567744968993647876722084149181365048029010903841136916885425934643675401121142059081630223314854304893700421313548204356086967231212999046636536607958036880646475199138489487137214310258937351565362926085221253198418605600194891408137069037861472054336067778882691631021683152286306198668497392801848107411774363864479192576331249701164354155428901282641853576358246828910443429860150708305541568588286011086685742765329530017238401072722607539707457579793554605385964387501323099825189835075104140608832507847515725297138851941124627957516479705302971156738392340727304364645054806340696092739295979830205106026300040922429253924576588375455355214839377507025875209988566647257411592876874062175109083973663583188974413934486924038454099793210160424025851157853739839001944654123887788951062960977145591839412616673768756667503097665079636114473538031448007745082165120448015570244611335241888789408294729708420630489423821116240851064017443147494157206450898813999629784754443314842655360451933045523717946836737201085382200243935792098367801149630156250617117168389497850037717502617459281617141754171584816515685536424463723965251923721186127664655657726247372677458155561988777727165996617098192965760442062165676884773234402805971782645603655013917444722152153624242609243234469875813328240373668939594837984790466315117853818527800096936433121161007172242838644956609914302084229266010670893223979765617488347445197010088814560876195020173543811869816333957150934655533207048987730012880101701088859855840173003559982564236876750940885764525781471869841359452884570555774920963164242079968735161067161373354543136349521913223779055617854364921418784797991133104405772251960393658567544202847559292465801246707868398340568753641891010468076975050332076110797023676164135735071581237950289606336993964438254719744612441078971143704962782852151414906744408125125777049734199176356393292541863278753579758005873416116278620518491054995010409700426595293289088231556394997528170002663913804458820308684611011180196441155745833245089485990997696905108967657266757007173610706373872693076184054917769668254958992423712787168975808738272002360524417501804907433494933586997839771228922751301535167555859883251685109420852003433279895530850222903750397008406605230514938388543609830642545715827280635869989493509922579324280097449015867660803570836227829629169668909690946498866842583951086131651378587667248327669498444004914678503521666843678394128894787799922582830773253777234748108967613473758865290875372508657200965285961961112095248668471860172951597418172855836293562111855065623626446254074365252381495763802678882082870061338362093793308032267152947491235356076579292806083278259822664356529819138469050074467152016737774433127562168917574597606813252498782100148808229998578271499718512474409928742511235333006912008941640056710551849506701759654221032651574521306884416148367622494501359337645777036088271799564066207479864801455592207079424198387272028851558541871520870440930262871775921819102150833646508206441363365344534857174536480834027760967858234075808203246762075927337878913797189722438700800582862541581492367099433775926367387578582603018525178001909294617092414732734188786782502761621264852177119524641473190556842108622845275030677589627608764294656420985036204357037811788008294103722896433929584011908423438999887035907559110257960427782583432018522319391202870763989182246137745843475680890763730984309495098291846183850290569364828221807245072867002486959096390162144994774140640187848800054579614837471896846717300649325640782479416328740960278243255171023740320956829977299693963083374558444861928688367268496489061001535635640818865462768885871397678603198039789124329035984391728085935438208817887281986353320483197522533830065419677433088865655077096823132165401223614954685104995963511043885257583923484932736913303231083254441280670505212786870534094101402508417617125170161386668626812236616910007565602952291969388236668395445796723432298245906449238379703346960517894369194495426969440271591713190332667048547803385992194452802810124920302041932222377101735563814855350346792811217684260073104025794409645807600720794604565031325163592032046355333505456686965660359633948411894275919552184046477161642659399045055421909412461385443330710017055593887900740295052350267511615285664179238695104066122675943510359075455463694240251042299761712646789218126227285552324112980396661577168698587469052031193539233724130185016102826177612858431257461966400611321767145723643446873373822797188988200094137075495178305857195235371223440987708402055310495345509340230618638714904162571272308047337579775671475120099729457740994731058567821555405842289656905696895217451552141659480913296396178348930121091760436034809276865379186377917099197299580031185766639746859003579953912586436040873251875764710331263672716522700423942785129061019858776377647089078261832741463055852672465102666132911236505222570478812133573337338734041363511056023730678234888567646985487465890968500159234581389657684976673858208859537894827313297263374507748237361135811571080295054508138837658057837882833310825942363727966475929899769107813107480621665698726812004503983608196714132249583609684468760290976119090578965142386268156899547566219404020453273793662606923023134904255140478889553760625719521022884485403804279504631289193574411103160072609874274731741710751053613350510847611180062477874997188283650296170143585222865293304193384342003827179309927072937563345838908426017858885668178578726194799450688665154406236096134526695054341706165450396963590902069692712695385716629267871077343641698116110089769583805027093083038013053187617313598908074009214621117141450731847039376117983221606743024190103406782627064031002339575257556425604009435469137717369344476066776324394454995089283675321234722849504777832259824330236349914829315617424513134981233814155478592213406258595277831057322562199426282898719131046129215616187827253630552672515892485641101262802036931240117541606370155440881851821865017355127364713530620744444214986704188110649985282057805103216931911879666474862323451140914463699739128969274813557435117323460707333446764305067083948553498919123763905984185292093841391577691748643338385863462473457896499251010382716050402585821052511662129759609116929596506256130568359865856405608018242890972235135118850545966628534470834831752810226063162626113759963944634300788633900080291309964792350619147321083477435399111143873713491385732177639701269460371853604875788365735957319908244390521910669755593863186178132118045429633877405249472812667065592236405966546585367727666125708171457596295301963110800539439628114011826090802343143559421584582228424529730831096228286137624490416198442326702295801338713955537253835144128752565810472417999078162296853701003130709177635416011490577365909707903593256727753527157600639013041470508168534077595329925332890896248928317409689109047784560241799371350234561486943847997903672110113213279016532633040213340817361171404704246035558225268103779864667196217708388846846721915177848903119301874912860307924762560514862700398997369364672174850784137311509228445481319043776170817899197630569844695442107000120801961129625727454070682413337389602156835819090443516553589005996437763864284771813764363346673402120460180447149327532568278869480766570817347227158150872226448279794209259589050778229736430845323803481382355621685587926206605210885967957766420574571030570853380580757966426657487444123230683955242419377437987788755735234049070334583566237476327194151260379006631032532019088270219458172183569423035786031871130364591380268703616431732376984507875901434979117061271488167077202073946628924490206398904758124083702550196207582324950307192125842409630142265613892980291640649886077259061512312125939797540968058519175301357230648960741009403310874095800323457261285919308973436980422129796949973467251149411367383804648386808839583195732680516594658580037359486410883774966213138758551895558060909618082401000378979365814824306224334271181124702482353229482333369633065121708041859126246618052982686947606183510512245176468063976937403638488791703748922479203972115360175859900983855511724155224485510259744890684289289537115543787099450824920056312584652964109069506065046995117644723570193320775556042658285586984670553332494824558365144545391594768858582126401630166590787976937619500703558980128657178241205436095383081580032666403961372011010201466749076168266598339073850296412142093766513787560741299445249169156553606170581849447655783360820668766100537179964094194992329879006464545338215414007405015237204791154428848096148728043654114257273962439219161127904446754993061109491439227564350436051319706532936307860937501009346838834330614865198113293228112834127338974093091620581028322956755830526805219121691472648411558389189544823829947410404676423393737763761328491086350964899716904229063303670357620049988511342275466645157709768110218814304250252043315389867972926617705834615038440397249392577896290156764009974613452987606947846249165742227355240347364878467895253097473649688660542244682236343142262740542342831800545492575038820225981781483157986947820496121888943925617609636304668832864072348397680644974259364508325289481709999427727735621359707487006628475900806671785705121128480736490444387988351259110166279401339887898820982151510006392663319034479844692457754461900310334602104525682739005469601771061863940980910476432695072999950237591083364008839461439767666579665508063696092636301708976257448096928510238060056071200998319058848731796430587049492226369148571062115793583456492366300446102552258140238149402173310245916293779260612886951775495079752506682798797494921441464552589793457823173135914213288770144994391953842021704792288911829309747032038205338210539138798858996695805445919711531106649792653632217696597841346399918145879786207395247809731966905489255011175486806815439420274475371723133650712697059215207065096118212428573865220611032739081699080840731377639519920672490673979333412358076666463933477731154610302948144033700602326462577148767717913134907636506534845121627757575903221632183279842742956561195546297493928184073736878992056769636610691428247580644027423504998506165669724684082000727500664301667459682893923762156922685265542467469298258530363877632448924441722736002759416084424092795515751767504310894192131620595285774526585724286281042447313227406986704960902283263290169691517382704262543836944527879180888351471244748794069365742671852457876703013699576740497969171703391795496552597191531977371710968562088415963817553309656921038558071294978214438232087004148292802530420358459609068028883532310614731845050940011198754552614487577537417947676816371305682941390715154502541509060732533548218886161369411633702734743989204851737336663288881113970892546094070744152351482855608732987233091276665683585901008004287378764595505940494588845330591249471772926368989332493128906424539146340347976453530012382131270970759468927513070572366520299676215638886792851213923211907160986863490008330252104941114079559825000321321433586469478532532913819028802313332315327736766966800053306154209916066646271040199237962987100041443773651644952049511224755528158891268975210304892718104349087591765856765315348178643412227093072400435001658477102971351451491836052985815953709259235287053797725876615018003869672737746035099067861572964524768747737062120365741009723632943772099002373853579919707259770438246461415943855766191481588921402340125619019000253739113912622813170059147376151285175948886733464228562017387707393683435866628846986672068337325188999578209342283508578026343717989308115167639011815725262483786563176645475238741768381657820824727402968491720626869663905237591068397424207992888202967016623563403354636012381828070626196651093296129510094254078496961034268923865689968975372071991025677037487927418889743803005489222388284788098950297167702378598288490367793198148964902323583906835221444116724589402560158802662313786085683402876232860475716749721482235467380657693495523605999238932869926181357364575710758282543748832707011070952590949649370266836320226428134502564594976500730018884452615539415515521348883381718094994767613277418737494182640424623811323326115767464373041858589471747687898014245465477118706590218808164285682350877988297360610830909928290840309617366973852221700699183632372523072676088791522052350587607231901543032681452843588838749072718347847147592167875637999895745723590935362817008118567190383737751474319516068572679312919996674019887307066767118403509430654855811485987779974519721217074508415651507078427155458051726548013931007301937076644318210108659036075202903170448974342095979247754155733009091686095320479168424979394461974217566417242485657597765972641796783072140055009795126452377723001908940853799152477783392160278573305658272377336078173661165277876025639160438680085989803887900717798521377146494522229758079841795725925313692710722598406113995190507336680790129238033126220804897750944493174872040468765808661409267098991883583673418388303801226894479034447736629130820467985185000973958799830772711848503698223141450809930036092456840714655148019506405833773990259530356534934563751144459373889067946218167194431893135835084081837342781680414797878310708413460687943951287269035872352766413213937013113232810017078838468181126667047506761754323499409935281799703456559092978101504641279577296725437584069503653512006753172053273722672722827867861286405476493244266699863307081829260893269971450783645695917725428509208209133878279677818436667316903638645155821533277377050793551085981506130905621953900409952968050385784742457299025135074357471199426393921206697703290224736718924989094010299767454461718514905613882843474056974596571582499102854989274041294874596973473588485438455580055919566546322687891773764606034438236917584522753090662160018520730889650305914990004461201529667298319352865382030078519988839944026401844110552451009636919513070176323029767869596087296205083605662180684457589376915372596111518658251880396663977528183347038963454498110959657962516148675370035594984361939550062705755448187583343652897288776095617278583071935255579839112837811455463128209216970821987974780723240535089944172014241961664405241368196324292295533343410994454312924442495002910456630880196233329215654513242674275758180213576796820573886713102158884337465826691883494679394777155965715965835139123003545845211693443952305143878573645681164667422816281058656629372396251112663295974034474898620947600002635642844102832885201661355810110550776258519475073575078893998048129893375139610068523272375795494931573465308236858323419807501924948087048918572936028475465989219422288606063334243594659160443188493458231377636328539866116132665591139745934826386541973468016171884309588442651516293071673963534907997429597589324296646353507734073499656759284887065286247596852406590693651399164120750468654272231990544532098719913742424639620914008313810549010598419633392079885820573927494240408876314016285575092680020382392377912110364445241505628727581999091139137153174256225417244164865406931015326660682901973509160201654364295236663656889215723705711435665817741474541341836413397720140296112902833543426439998542885351214076280147662079295767632591437728714994446239190055432824155916481095968187457155474033392967750189136419502811866256338875670468761445418373683388059028475979831109598262691174000978871167554243776437372777904344223113851323693928372063119136795144806327961193579350297338851781763265725798898378151693987513835522336089985446917715943837263548813361289523027296429096090420747590965151699385248147273803324818134509080112103041281870866360332394815947786650820297194321923529270258752787274929975482229673777297099215111109056720152688148035940716434142708487531217342812264634048164462649044252961720330533107488581593542892443115279224273803333260584555074708501829914564755013067343025324908740021375204342257583565529989248885687040091666980337029509162866409725675342908780381095090060924315630450449424104628431518017567047275822092049678775530270595812157748368157958608898127162014905261569964008755116194929812225904589915327454153532324693945780740157455981644416653620421604790467323249791861847944292402148828610168609950235774633380022412054101579848100908283817834823541085558643308881269398318037043103468341442149479196604528056631302742896803549206262789235708136757831180879070120594864293083433361969246709480172965122971351433468874382404656937798294628595389600390958839149130377627475899084839127162779883910980760965752141905676262440221342566840467061664237607282149428924214311533799841220886636157203753532936452469060041367502280078729417101649890197960667178304084927166867281634004498532805628099326323272876772871048508766795383647250096187134471966312453689647216809752083708509214299939233279668404647731520652778091423746350391969035000137635639911751959644200966045355398151025382392661534896379920426286053971458448861207673541101662888154154166047429980237681678358843726679520638103574359967117719375592803218198027389999258987342563681692626953593127976121103594593003496842363631503383167525505706950125027128248103629576715288301995381716314184369225173033751816102446336108295884974214904565491463220189841134105536154561485819360121778064642013972141284593420398781859810890428605508790199961209690542256567817661592434050458104967305068454925486294261688943322654261806787715722470346502670788007989770824602310959786789144793798158677897868323083666629794229295335563644926962325379815152994959720796467943090677842114596943310884955975374374115559164196816283029259695761099859254313340171533086717879968708762641509613186335165085051696559267743486574497350221019735051701281645744746493690700554252681060298158550187627439625943362953016382582915598803871013212636322345434990636105197464566935617444496044413961067898621841474712278632473430303687334411810631014943427826974803382379440173868039006686255900756877022164024645001676328786946921800080460212827111686548179949794817027651450905980527781538437978114548037538704685430092098929771214765565750642571694234238916562058002620446574537276143124817469702934986179027345816497668849995913453578941629251680824492823601780956603297733021943381513056489487443674060064468019123246192492557069483524097743594607589690502075394595098858942468402109249361017200097177034485517344804886683181842019534092673613847553504119920069862229554718639927144251553085915528286468016047095990598180173475108986350918077010664145827984730644644348328675472883567030590288745178242221627689512800082129608070475074293057022857261586353064846755971695442201760000706217140527234417537028413263797788516425628282976835727713036383205951448829074703645045370822404740975790364735498663545429037698033135867282606725832473109701827024230131143158674268619310482469806927800616985906891486550652848026173391536324172785465408962307835327915026286181492758150596298071087510305643061988384895802416486801519781205890031626295035422063606477188005187147896900731789428212275453291288580166938998460522343034613674524059662845424565891439884112769321596697348139970725349418550594123115401119708009058245385865946119038922412047171402405692192500203966756597196533217094166826972337573312686800812268543589624079113244131606870091367293163517389852444445793117037808430772410817889882409850856343561089362805784523475374263620008091837391402722018661846977916374440352440935349408433054948180747561965185062758050910070747696222719768883964306701832193396521936414906631475568321308222105653897472596964527483490357510865250902145774401528802788498586859674612717326918106984611926557599989394590585957520455675985892322103259820634364448477731786152814064114039184779916380600722149243734571884155111871513605617612524811573332478818629503270167548253455084218252541877192823494958467004676323994502304163505369169794560325898935817558455024307848304923718237237605513164635760126047505280015744813667563437084313234769920776211905279262070489822733753217234570079899995910654800781602801697376788296429712145106977440325222962159072571388067946076550340608723063921157633100481963890351481866419324280793977738449142702419443668868814290222489496764197933324544613054856540067138064296067254127754222004858800478780489695283201192390824856007196448562762828861741213563098031290073835907654846584609460447560182223600118121883541950948119407287069933581355569029854395528752216136587200086311800170988737876925411910406602941551435181029050700217122765645318770379998216916888443872204423443651747411821681473463891518594562791772866361261012857192004029852851857394182691006115559641331492805226560872908727657036373450489268238277871326119696007707165956233957798476249134715960871216430687946653972654402823319352349411658354068706304417680419500832751489262989263645365738364203335052457844042704400485150701754407216885747868346422186704141120983655794069495319127544436646587296875352677649516512343616210295793914510687574415091674038991100136285271147524596916787356980012092422242706560704651503747542774877190063786987757133013799443687647140495254004322814452914313195218759440244760504080061089255959280971295831476619193087111467287344898707180985430400410920462146202333618064456620185421123874777855479318031777944662938990708612161727441279020016094809774360581551991871083220502705691727681516020605836568120825538882056560228066455773892803529955719072386625688576983351782404592472034647969599773476433181324026415307980473892402912585025813434935474617752804254110122386554020235726842852678602466084319622874052634874123951187439452187610799606688681605070438977389086239384321901379020742635272110936534131434178549022929566072038993886977315584683237270722668002081813645413449266444556313126267498856488662935068799504503651614509924343704515514555969514467239569808562309680400147460539195469392140126073682604500637381716948783634889456137677512477831732408218362806254287237989282654533990148951038845833953050230233749394925187554646164836644906441524213545566298930136611836943089495338386639400186469607967075811750364416117414892137747465950535917393189953758741505091922268483590532897623300375602693249433406007962811832598804122908629772297576616744534592773087307656035206204474230526374297111729598570270399968275019501782846834548846793694808895149457308697629500314155940037316016050297488190968110593970646371699428360525559955604832177827193902287463384707288407791133982176361169239909348894420849185434067953529715330312627293316278137890163944859500816121815855038924806321869505348383740655999459539777890678009840508506736304871294399789797515049587054866341487597654218782244735698678400522511020029808226601891303679088858612098635147933251536722912870035704925317972546610053146668523839144961684955894406964811930976118462519578810084354498480399118352370016082249480586792886861140756585136229954528123137947701537503483297904553528960622524986130079666981239052919924939944755099526793358457692127551607102956430993664130528063493111605449366464793912353248596062731380779028097483233482683462660144167287787894976365439080010212068913006242224099569888206010141171389793878768655220099100736653467960995232614372567899300714087405542026377573891967048409242698909013656554358645170310562447371158570890727299936399575017556764312429307157313652672059249256429254431076641954442681612779028569524016817567541795312446343332038337748396946281519076886036623510651881452555955118929238186956851935352418102038833512045645235533596257412767330765759182799600284248148865555124977772580003163474976848548130036847936275003616310059335807658428722289879844812290874396589591542115021832365549926708909006858049058764185591300089700929474841322604106488978186665753118275391450900054628204017027807424565533704838850385823865943753494754543265928574008868669584832518018461828647513262366941950091306398781197416340944752947543418056358565035181667257547937377653596570135210151252409042854222265611709210522666022461700560924563409752871894483718934600766438801380925061251379098046497446500744819584470307819526199435970359421969999346867097092680421501545298254395089703506172484148088040656673644222562243376322319880229926085985996831550607074881530681129964268794544953256288291327661413632592985154526140986419397682117019745525185915342757850025834232880323387494841284397680800258326172063574938388286237719224210831076923582952452923468771096153085358174887775316585292076928663845379913777650226454290838721363205608087034992670887594808766835683069614121658970303076155272739545620723666935581123642403641716528628472186194299426916094274445943889753576009318061962994933627629548543372183879960368152655521776451381512019433933807048940177910281548538197637380587154298298135025928202538224688879264768328894495738245850907709920707989981790185041183620875888128457648454197722995529956302880625391703310330169662448419843814471078530165679338554658762600299250844416767168550065013945707218587684101314596410562340370688165460065342659542890219685868989127209474074885788220962328716056126711791236226733764589801364124919241935225218181058477621330608550329555061774171496439880978436325942874524499701776715788007888456382934264708051426335906744208741536025308637870753894806397719605343916579711586578339583735768246013646856688080291997162171893493309485914532779428654946935561690673698598245166891815352518329084156260469743021092283173381935915758647344617245845169372703851585046205804973174320338990529305678740210801500901351077744803468064521169713376257237411827426844196765332453075368219054534369334884948183849064210900472651235551052426206260486911090204666487628857977325688208529140367515502596225980577237313070884487210325364925351347323889799164451874101877007898106192466643914224059541780452056016102134052554238859177971503502323458311593927592431233280559142131496151321476231086483338827626350538118814828048062458339007308715306748551423506854731507458155618151685377269361649538661627408450069577972350590453741768340582046638454091328593451968198560209711618934321339863708286992713923085841509490194244286726912079509065757435643113098217231410488035649138097909514008625827078849190884969501558038275302308257241335618586966295562370365851539700805258354812288195432153253538779347364230696602654339899496921473553585555365466346505164214175867348013383700531436186238007481653886462451205545454223102478464049048717989326063787184853433669053450778212716211990259586837593789986944059286630397611758773619287187458500632084728613520924185871719979048980650146652653654623580810378411581640842695110707287863476558548347016407649227069999943796649018012183557472126180492890283315455993510465327780164742784708531998868142891489422633735956595745545456557047737522256617157327766820979691109511580552291975390924666771565573085862807952699857287798988910582196287646535738801802790915749375075858798465396115200088706258619869853990389852482803730725499559878257638219858758202186667013807750360600810611295389137333331549707470607156698821944567844433009429982436368535771648525868573036061197208848885026843485444594466403410250848529724538040032154307090585599657211494179572808979027152554193552387404009050690708313882230210812564157341239547993748429038748971929528912116609801031499317760453275796170086348669789071280064985354732463314436257201158301034001540576994819930023191026676758799758723550669707552488202557623355472849447492357780838611434714979715890805667973165056369086857769875115750121910276561929271366853033875872425471937324076492222049461160317771239009673394617395398135832265388468379779804470170770704880243404191504663408479364562204856429930224250958168781243055757974562529730916893628243770640662432612222598922833622369839494973565530510878975403540106381223269466036483520314038748002534012281574557984589781877471017338531150224121842635795731675381410243830044460406512024103088112859454831896127184827860783675896936574966876008390474876788841715140579087757310638367775937104206783482418282809711434824158029769205399561745490853047829244600746839554281719172793668522453418296100253789859613384922666551681005346090543829635014814136941932464115426374963464736185180855893378153234388177804145824319446567762115889170669783863509518670539449112165162939822270120060229607869456664399681661195757164937563338634216283255247896497364131493899882143396597938115776061725184337342508290537289696307688098979885488750236476561843645016123066941723808496406755183777170036570257187437628607646990166772565688702855956676245111350154853964158590196735773945591759704754912139951366329342364486092668404052590525844784953446885808631072660929273944829483941366329503322101369972187072111810015381368234080585552361196100471236911773305940305105482489292912450842367639826742526619089003743217130268420522991061140083348105191707119135702883795599359755239163158609900656746534116877823741836380782405221553766982228435336841868040196452130076691209832714990544533795969757591249802414757982419858810547113621743959710355097262397127235509245469161000168238114706044566278656794951573372784434521902134040261213449778829639960121754528305500451128904810122982201364017341455894799207165514330108765484460439037661740026395287338724648905603182292390290875920608477849325891253013870089834284980746805363277935762055783926384453018662232614888477892166307163132154252383638680240588820965642106723499827008323868785587184191652793795358672174884295221634286703450325456636546114230915157503360335442412617909460157713001965153227573676073437773213340969729696140328704509723880960091621070050871087933595828714219479400115148466786849721894486973198007618843132662629751313336651474332761147069716167550488096936001739459750146417005775386580929678248987954854157072581285260945649582378866988005060362321183625880771762720928408784390202146289950829399889880516507263057935498469337358678082254202750391708459168162126060762736594932183673472036954655659292059761721150055540355249369211879553683528006124075537719917606475916756090860854008384658508149864023069749465627650164073413264275063982560026716434057941611767941687102399907340830320750866691037226183006945991757516515200010012773599384560400119392857022230993658707158081900445798199398075536065302140284409977629182445799848400470890654001673723894311997729871714537499572667414232874130571625236471228009072930406210850818861941094570395939500599066763683419250282514889698487142257320894286257919760632381291290355379646037470264415554289350849752984954404508489036426542577520462106584493553133260583690308294543072619576911119038520325444413137971252458174679741109612246677493109696961749157442428877716633774165243159085889654860331124265344470613055165611946360187713636268559667404940933003134265424127798587346921997137901292934736089635014962610908357390772145360382363769709374741037682250167778478533472231234524282543027330442640245984027658238062967147338960672052354290196671965391153685332271605698183958683870600947405969657478521703184545329759997269930579046664929991132396193638731052278638907338417674625577243661330200715805860189874073344251757839026495521708001693592701452426779254799861257073034999101194496340135282208220425388456907073149661945261568527948110791586675638467558612658510451021537249193440036017631348413757095733874303753517146611550327581071710257938151783710429182641526374526607257897637342896911763942032041529798656509765625490592929286704858014624645996025866773815593982026739076842961714871630514146550617199675546519882831362572134456317944229986083205663622347661922608448420939900551215075984465750873143733930144688723909358074029714624712339794314949208222762253863270545289550932350526444306565685982972847140350737486908298730003635162081831968609145388156225853904340401589651217315161732375439244449107924426899472566616970093895786362164229373372481204153015613033262974253056817490966706782932818990694273927625794394290199329893288398417168585932776530585747408685565848257640288981782604293744311723633918985345360085298981767541451586681941437244606927172777990397243923530569261733446435256734791794070432609094305532306895202642706173982469910640009009640367317512706110355408708459853483633964180661397763433178709798522983484386525031586738366051665314386707436814836777618300703890747556080372424768056075382542877378367047796469207255601398425161918507598111167274546812510727622093222636022145088206542532219755725124119230404435550553363860969043297206048549531777916698433773183330583854479915850237676779798571726600365534818549605465168680808899115213010625211412722124732650441732311529304187365010455183836699699824350201974693926171841546221400502240317545874980635473248620478742004203457982740822615605749736167286488808453115555966521342308613645141555441383310661060371072161764098306615282180729622120939904493804353689712035997275737096113844553666463808350202781502263471735078575131293037739534301314218061548423596070636106646436024521563610823313977603949853910611700375039994357395280566949051096065333388631912079272310011159131659104582389632541136372680077050428277647271030983424762961810863357290908847603812961976960440322948255829139646326038859042700443911695878899427079030953953548970110880517516342842498527325165513456433090743275705740763901007543228302291531203911325977669929452986606964749198440687145135694436561131713489719041454665757050137034958762845281692003989218613934978631479517951576036797625433680428797255347649398306600023829499499218688031737613453329897765381272170738182963681922378950800385050528631743817827653996245066337477252810556869598222827078065980419413844723597846451743379725545974408522929092723701733914364644422099977009856592251196029302885777253619596999993456003090670087424834135344999606995441560172930721496067415845605667394350000099483529876859349981518198627755191413141404960503320856167277788996919897508138202985746196689742806309295813259691610642541105370512963689760600295674535351224109419126996744746145239725149089311182540418725587116502487313212231235349763085830844026360018261578245628733437081265109421566198763071435484570016511773190616572872952263356333522265703256630948195745993045250652646142855205659332575436487288571767924023632895500365557933123665621580593616435688984317391619506547462909054575357038043101773412769573204472059798433488764171876101917738161094717953713328629547771198491275528498684706566073433445277407218954270371723470202638358941821306685588474359144364521838058735896737589369141845392441502792787146032566671555249240262477433196020622116175195183154247220606009615415704383785423728505758689488323632456504951754778060965089243080143201846189366337919974769139062568368924455938663874657218182357932896885520752510702568501193396880797716232293917387269824294212857519688798783690663550138907449165542489206487604225021574121779965591014330545703762346143287984132193960358862203661690439886730078487989585278101228382800900243925445628797826153824711199617251682520903503433228900148869744287458764159068420724782448079474542716194496220948324316469960752344595305034785847199407547929421134419164238972498005076334337368961089907141576747892369339721512137262998465933012663628437457840796630088726759651744157042835068769090154333634476374223757933374373529725932308184717602830305573576540695293159763733572357632982384365146187480088747429161543723037961690689396044776043521763582296162463527557086849625468537524895311770015122013255565141624821705278723348687830796150638936210522782630678165401340016288251202314087584725970262362762798737325057464952587380241996999472807256591075432624344981167975199430220456064183114387930266450716926132747504521430769591894712426453959808839392186869045653813276939486447091348740514914628851213494223624249070522352473059040339942750140148924181929111329001557960412842477275625504560059743062340412557136832920879749677276102760052939686157392150426331891044578107458706722507359273119753318967051018932175993988322372003689149550449118022501398619489501575808430720071196674329620728826190365264536607551983617456881093435184671220969456982625244477326183021086136387489441826600228250490535552370226110277825631521437702482175312207226297611931488913454741189790564840807703666226490544984867439243106458752643166571007857354972321322988294857931932979062015943002365913100004185487724280296761310325034035881604986958113497291470175860378106204754792393003745593333396210872937822313047097695146803547987010661142641453470287802827403726425533596389055643344084950448820051581846413295966307571452428177391934221330217745893166157288905779699360479456271949792535751969564793015586143211719129929652451718137647598931875501226311674250978442338307927710397633666045182125378844593100471815702729778342302085695406929972620447786980146802578176494602601095381992342813193867758976342253420627397482039995430838507883454998556647538855495047692354862270232368364954340573424265404684930535960601839673099159343808102808373550519806176173543805197224233617160414239129735821210754738552269215268614226304116788731809666140822806424055195329142071573889861681736808139613524937338007581338732470540958878422189590340530077410626253613530720883091492286638741868150629079224201646301478188669709940774124046550016789649422878774198138355091753822276106394466106628549811152368673593244838008513594362403907999452801480505893013942018257057031857747906555835262175370942866500204182778197185726471186578374282311187596971743319038876416542549948142389410266605836245464317316508037111518300767812340381305662697055837070787278063754804240004908601877149155006295569737431023908481150153274180353543819845005429907122845484977387636846062421339286483628178353224586287911338305393048121017678592570801916492788962720037928835388018015819462843311445947563523490440616903036130164133713749751121481234295553901063470876100922954622285729172408232202335505251969263694319753093837518604976861507750274685117531867142991385618047083351076021991156351924256466372625324655885808076772976743981521566617517577789016890127143331864883215087353722044545144580302666725986521064307648866583805423919507334985385753815079435169811555888980590761702908237859239798520048417084478484188498664785392761346199799507650779034952253556228418236187583417481689418471488472585251631894758164467707292873213954602156835290601730959960376414660288423526254289100383854238093438013533137253830753684339125301953720608510225801603121120917707404848348365916359198749770420146812087350945122431318768855911833455656127430892723527165677095874188672346933518347769954543544497450327736485703732129783479942259624866871107852237139148917858160667307117856852706347555277948715600233235947994002974859275513513375386251004679065415541995988287485395588005888516570860800442326328240365521374272464289934292398966624931382483676991191619729729257525912084588889917461578856367968689621180280725900514310996067657850544774814579258812279068463000970563561244095899702364171481996288244886460658500716487769308656486326873096948079957359008503358278750361333554134536008018996462939942766940788429152793671877528754944465499551998572059673518080393177223024884600827731893498136857113777065459777792734886336408440398895079443111152987328714856919945206511387360275898977888339860584590200358974660800466526488872117204466607434574149217053625085792982074239468949393470677881244636897501927646901158600607739465370580257950736196646111557589925995022855197303448514194275246106329669184781336264759137881723329558039779485124221658853799990456400823408206418388879598638010561569191816711800415608771889123809395562683665136986044453620133687851610864820521939395112589161732293075467549160001603764396831348723727428203348963631983464963392114760489676245350120971454641136946494526354209645455323554247339480793619040774011550629568561783177860132930779910077663863980831997313677076001045256686268830703506708589854435861658017104931205999185861997106870970306375012543808108757908034075737357060778724862204497813172044732723612101883670486770154369892535846261989959796702562391511587535360608347691956857629447453203469604866107767695651587511872609745041250635703371303719555237380926898918120507802191029926474812060372256471469553515507078775741988545485610779706513266690462384748749093953116908281536138979817422627036818302802666638945645858440163727166702836698160653658332391321239232627655277754976055304811680151451892696159689172743559076054555345863710128220366553671387340246036290558647602600856036170669646200561609623345369189868758711841043074836804443115105132786577190763390270565982408844470507997847256747233116606579583983536882915965447915082138625846503506243524446019853148070396333608133448993558139741051794487130000206667439540075969152351827182981502517042750810294908296329250372240405873367262646638381966492022189584916675707605984809316823606420834285570952217105044834092021358684188432378443091722559855286812205427554916302464342161531227262753603795016893987408845238089910117398656191669426829889321334024022045891879260585095007555079187648792339461083746604241502834785360768435999821374114359665533932429670912851813955371266003002646165173589578960789278788654877607992806884038789126685654298012424034876743819715155882684744114192856985070508151759256829192795455584208742830392420430452985043071959537961619989176411934740053308613120913717647118132320174629162518608591499106196092543929621425554064254462316737750663460237404994222129553975830084418816059544581779928362583505895421736614236053204299494597831368783205145004769727766659259191970271162818197781207681295279351729319626735256556745880930963633144962437364291672550173682571140261384120032209626222612329133973525069281563629408394103373091486804246709363521873549508782936450552834246669152850489985201400461731070341429981856435710061514461325006550510500347901890775183396039852195148945387881390685691034407322497111308674837111558862676322437352708789631402931576936668669334115362462294503344545004615588224435831826440243189601896540904901047758696653774812033759004195993486334996240152134085423895132067570449379798272687347527729744664949277578352157491450575260526010005537508328506505291699437477979249264846113953843518221881473232693496056886538488611956923309892646009676764043040439318960379752441082641590129476512388749520883130635790492589620583733658237067329054564839095471793634959152233788182285533480398075351490266837352864433114177332710467993273898542589104559684251224056636467572047693883735792165558607694759633398997479863988482867728116934181388207631576361486566373937578101880371583322500236148222679213324303991167585010482498587437192112833945886215807837637950425516012815107284164380801326484409275588263614448616361413990686920654236537256361265668501842370578600822360353230377750836049539976878644040627729160792855043028362665585198075064730679027490838377934259856798041765377767785441109729417119788441748765860736562494699470823426608693699021889493695335640242817752818298100106802721641221860156313714491161286542609452865247035646111626847381195113440006920505425978403422657528846459226366274491862115791923233964023862213979925385717173333505336150149860568565201121805647237006272543632694216958657977077959197425138489643020658173260598692762738762894352612491287499789642938751193413408831594401612960545707083792942465307051118200668367651208531308803069174149910664155204697037828628432199011593591840038405242687585659428590923560448020598335523663674075929683462556874313944921599317492783028128514693033571466710372324497040852851233118814089842211867498097104369054785553072700287227674110701339602567120950226932012918369873867373265128699081717622560983352417722572208844591363090907094849394597202579750358746390138432441300964672066703065742257269846398189341126873612387313009982084470767170449012850314119334707225661990718621877489627078679959487739633160563080878111871160465028836496018051706261355627844865430079461713218400313439244503927969294841743425683900442198648656412988149946182147264360822712208604213605142622544480917949437843519772978860480790651400679918467226772822801452128669839864820029030641547684122309224829442585559415874236841611639177443249762639286016728794447666937434604720453164011003713120319527601105695299023402977522544229130694371360901462882529320486184777519027215934417722212516193406430301446744030636178828995022412570669879185170031523230019395860633282677890331702034144090671055920118793732113711883888067845703274868106965307756649000896203932280135876220062816582128008645151949875390111695570773877624995790979499150195699277612641163378158973712457140467847624348208380352618042743465393508447953525509728090730108903813816239257341055419726800543088781684993384910248461851411296910800156457554604343717939373807177738243065954736233721392887890354024142674599275474437674524086008484953494607778815197610064542605060422389055474836776658729056159755972776551685437140528203374286437009301161809969279086187051238977782306377227512670907863385551534897554821415747447946758451885589603262156963952795999565195417055695651986775370446774231072755380352755569921961843919040796510062434952925682067085052112877287193748648522394932803264892315568478062946264838177304886380949562427983638190025935617795746010664404169851446900825012739622792169074989314865924289209739402229313245013574868662541430805407163140106624654620910427133673797203109326313156260908133173806029362001512869882975650490870781921305606472829540276543653441361084223333284510816871916437182900932581589423125994875806088979732593287534708698488167739298951297874033007453159124134774941459721620520470664923197583690720734809116244428098344978827208930022651403036844048541440791930990838256058057548998757374845002290785099017344350976632830262142305084521532287782334381177891567456951562959673782088560267451249565229268592519163589174785017791139540672122562974842687400681101638072743680553538697513904821208101445595488520141623286807696296254767456960019753250425557031417087018088071182401945667655436160971723660298452406213230498493869020784158037897340122742391418575118479142378930304703186081053448439605919931843720146983658067412719926728222480263690347381541022230468936697496277585897749241856881915082196074713857033156481826562412936091473761518352188947131461757606772602853224603236829055193040006774593760236031217468518591398410065121907930143779026495676141821335177594130129670555144033811946878414021245257477244651533298260317957161480669871430194117044133476358374912739090948478745837780053357289695041572929771242628020351118228929920004121871284214162222143776000264813030904892836530193230201860393655715170819691905736449795351539331814977073943018513354309459072685181481428535338751528574799893015419920856686700413145710081489066942117608243866953180661014235009197316114881909511597214754706111725377280996517422064759042972064006472496510639952963824573130335220035059030276807624199974465353251493656385890787101995755487364861412440679689090950726319458062628315208155387309476687235313230716678049935301719534945073638679145856178613828294560058635158305770233146890194832610080677455778322745864324386736192823059008686505313444419030782905287872756097613173106184905192152734771352268955997623100676809580571285340231183861015222905488948931957744140989770781531702124690020950013453536258503040692417504063463496583748094004631825988937964572176625749142304660628930445006411242720758196338980838941436023635495402420469285499237890048024562797066614983830863586701135520790497926549541722927280498883262198079818821547412727723533747262415417493016989470583420877566833607967761353888516179693087734398594290781655495524504824674069522102303171610584556624988186480577706530346926830208790884156461614717781860219015917674041375995167095015772748043123702805188404454440067017577637446037363241565617918970016394309098089410205149015148277197159432781814683932261526366549729315493335186778670117812357293962143607897136351866237700250125430507983219030552147244934809224253202896721637640850060301795890434255127282719882633095264180976228291475346983137442600966777412068230209284090066664866233108681512224223766277078207579066841078477726189247558603774809106787438204378990749781332381538073522440369306272402177029656430597664240389245357371350213210569041988930394516382926821107926640153133884176760470433824017103579980224716733440524328774674888626477315975016061080095457483684047389343998681997620479012647000780116938234528719965598123645034022170790423723400983937537077264810434149273516749818022966106855375659182571180706392494613564678193003998474597647127877789792401850293849843338371684373999333886017747851777150452874064673680952053712145976791595094242294410730536525999066878367148985644147408657619336068295884949830677503138154857076176461513872974984162743875232562497485050905670011114109929394636853765399307499164937112498857700035650757882501143681532756391497790583884729410576764873542036496566934171822463436720857189440802864697364984811798491053280347945750491866033917041558140180303343854937279348788855964697993497894797579649904795907599318771973278007876358460822168937687202805078372216621359099230058243794539496205788226911953269556564881814660694216022126185227104839981921540082943264346795032636518405758883244700282139638132893136333390478124727760719992177967933568713301158531568704850881114896915676691287338171316805597415806066501300674809864953660120587543706332539631919960406402658058401811480926683390671598464793069965869302364938275820197286195363139304429847063870825313543735478669948334239368428469472105928871128800460686087411192006427546207833332615479484283713179417626447326415150997747361835843441985047014037877351080262204566986899472645747182707176145189527915931768951129711734733003439096542313946044737408586763854853701920610312232980093758253216523224566263011959207708796429327380709839194377188425752889357299961241489546848908722345120361947180375950509682817998110191576712250199500928260284360278756676893777235518443752058877097541642758792878019541942226651764305916664857368107061705094225732386865484025317579890455239595804206141056356869616781621712582576296274410632344548794950353972865554926379182379025430117314112577765082171094217481099297550469417930807434338107281299735458364192827472724947418451511143639348778354726755382378033905543169051049271515631454853606769789737340964650778794402212672327870910925788792430409942233386217022414794363798403377893149788366779950292931508096392754085058016575015157855622112357685487273783129541088042119862671578080168642932583946671719440384973555079892889486210725466994748095059177508184302736869731557399862711528902042263888248367271172882706002627405808121441997813755594027196831296984884723103647255188199263074390490450554282130836190230749606062300968996878665754470368625545906301897333378898245597033924640154143206619563160319850750164395602135539392731172379654893774512256760325129002656144043248500674761680135764391802748346734545277746292968208205348025961022684053805658666759223537179425442417708323685863276569104976315770792891688379810054693862891351176975497411053692600871473124812072391576888122646261450759959470833273690413667238440054956515963108192475397594087892006457056174640690410378523017047199740188366888246993314672662986766570794248989684278492112414682784498369935586229674907431728863268821448165890946513211852480719261709866575100132080195218247676407029883573528813838690200809245323736840602703252235978565676854223421774103107182475662028556180586592077341949517513923912556804317936287093849408329823679028978473046742218193790552214253147317904473713684566062416867993564405783633614636032271179106571766739551953876615849381790207162187029081530644921110639502914035213350655550670428387522141622063595228064373651380382160004506541393369193525410107572146689741764978177073662994751795373115417951313746053702103953221125102074951322182051793079667312553434862637373584784508605735003318393568829126402813153331197087342706938695916720075827303523040039497172692812331479575349630363790362271764110773787801268623592193025357099200315356535381731258103215150710924728467545661135725747190540723124001131014352812913729152565998581588723849826131315625807414881173164383729875635265772935954454439226816075544545733426779126106669642835460133057275567261481204691784172269413999826508090273639227931224738691768003271261145288727615265694393995175580431472531318767225907473361125451645999965971542257342611945174132239517975700075119123159083759013668228791750250160609514610204912042863658706533222706627896723503363698492148580929138804105845331500544839573397259440555169777710035315097452135589075546621252686194579274366518854285861479292599747453866298491018056471387295870009261327443715595252451716486876795819241211741236848813167312763279547377780422781979702507293055769334346568238231124184992608985654544916041904540277238921677861469352450273209430972956864078890430673150818346258902683491484633289526282840958784258640186939897541951515063979460812324326521180189366577829798683379143012745798580878151456494588743608225934456344607885849548625499260259855574910917245960678350284069050953500809717677088703350744043811022802765503345850614839392149299137631333886980812107537933699347556292660259078597714976830406115327054384600710688058602161720945249203452556581027834344319863472396644705492864348336909372341194029719017666422106629981720055780613782853541887181020268312380001002388792931072738619720304088015829835864295991708217897640905191673262769980955056100513409570415905596806107824696199801846378797783105330960733788359732736406366230763181078084885102088154834080252505662780060225125722502432375556793337407439919020692633604753866704185353032672354922280214119561997832257533351849449194519797080619749097262383899922237995158997572591584138914114261672667931190468342490166159073245091645432867696175862361292726911135240768339341243994615997387170074545209074905566424982359662858930256611985697527587998331226486665602295718994446061688300514020184767063856445430344277129686227431313912315841349779562967442530328315976840886343918991995880946443233634568997659993184944231792830383612050289713978072925926674770994847519050149868495222369412549784043286336883356372700598575039162621441094546819264506727006595123779414226253341135512767776936506906373180471696332031985188373692324514803655162051402055787990122342920521550163854133556485824815957477879286849377206726656091361271056078641190430030895713701950581677449529543641880274349160989040532734167342583658409892267991550291225974656836644799836385403944123772092384098110792985731663322316912171289339996089230586898737691735858750064187974189273006548478410763219447855848284708317966701724335571639120438616866676838945040490686875117776352975071343036090432133051051387918346692627565005371081361655002302845331784183175746111347912472776334704932046401678290533046731948362766863887156684956001299556501326006999097157775587877975389791280325991102479367950329069675517659661770951935604467646481471517576492729876922925775485392124734536064199144363120974358900737283289197714544557084585379567885462236139894294404516516195767061905143170109936259241198981007313266539597096794184350747693691403204299738112937170852986462809969993803770587953292731086505021693061434952716033979750222770307431805550705310592557967086918732516812315634252044670724583212609085090599295133332413314442928369723078064476334929162076877371146295020506978287925854928085356682589243803012766858029142316615761804524575879350033096535366456413933414396106447489726093726965931663020981853445769527581587513674646314942306002652198835675568012049509655411133095129666381514393602293140420354449328626544129622624459524556048844288399144137167920540603485254375685925451190908292259798766195944470194891065126837982633801250016652210296668022344076773115419688076385138502226565187442285757359192372293482497598166635622644900711248900783909423629311855217574378324874454435954520606590841352383967251489307088732798139666590623597872293219292064869258955852302021549097973129195088412211698372867325283751033811063722533989399566275436228677088193051401294672490053512816688302712093809900409589120057755010583601531439580410998343809199625410971034088905889313770518030572100521347113808879437556726789678523779077003561527690868685795951225041886344285020422257187842287594051595390775216480826464264714564023970198705279815067845547209887919658202362369121395174858695818293615092669956615750629948489751114037823931814902528381780468973360885976999791920952078497388000484478328125942257537757370784309936295132655788285902522066146345339756316364187822255670721393743896680304849337248744100728573635684430064804184804232389956418349024599664062994918380439713368357446290366063815508214879622078511110616659998420390525357839757994446643743935165825390383186228453143869028636162133694751828050440323552706779409641414248420424680929553085952414125482269768561484329033723939855237623804649940077183451638551868797023162883772939366186083797863994829277995745582014215701806931552165313376865343978547579775623871843178057756114547247831806389030736793133927886752485506734270909372324085926463852079488213311810541923197703968297158725591925255094241121039461261286508419678350587516322406203069343118705453469873729244428516950707096852694593114045282759736950731323313625261462057304839318990868340077775625939656507828360792690373751478804188542218074407342024684328296668898280931960434911042529770216290310013313240866642246341327861319297713557931194063723589528540977042267461527949552077046439129508211918964736599970821333214698435480893610791767676737466392566366722621247693714863760549713500313190739956983774021530925749856018112474868012305523749063198570690089876858726261087113836076468739808023072871866257614288522517770029481676699208349332727611691456736926080745152604811956532230430597589568939048682285280885196022779449253564060718603824368027260769473480325638638249922998836593571878269392177858603439228334054440468044661596153515915127091080823891751418589564829889537178238136241805877131097284322576226832411307874501935967345269248631129223813380255764026574892666481814788673482926303938013844168503852497118012834070341074163795835966287221132508328767058858637799580266732290180106552214187047458240209025011363306887531144111525127187208627555178266531496433139877680661843627046665133893808935116029475403697940202444051183539152115551588003828834146358625272152594107436630592360491344258024633200034981613769991471743054083969053882058879783970620067067006557937950011024508980271816926168547050413499525581892252277533424141235016065996873217728646829752396718042146294858191154793165411631856438044379337255672267620233487526911384858101159544418742691451338954625415134125827056326446780127493570758589120878962095055636492422600624915032975803527981337541396876335292562768299923398561345975118130086416873232609030709286310751945509764972515523563227733316090287304581443744561026584440626816520197206876215992138967768291942195621822551282386755503242782808726443158517455488437327991053164743775524292470097553289499949582418977405033823536433122417737278697827151511150389836810249832744281599178437791425658222452273593200646439821899032772939337003560204029511511832768767685594164944333919218971747237145500570299902432825773501700873981695764547544848616939138399285892032018607599671065795454205351743406077732838409583381624583045935012096082986821088881436441844230785917721104841058561146145163916620052175703563298744697778330869974911348012645771245016023280717014753452177395937717063311039937167539078085456332036302593586990331649688263018465633067080381268764584389497977051920557042633921356043041046348638093247417406838416524081704372003022340249019738853166063658950692302388072207287380985425588595424427142110237483001938036846660401073008704104041447511935185855392200846964206447307213313886679868253948938175082362080535163504764304421269192597701880380548659714565125316909926513288590598111738885675845899008024998433192278174906360678753703656021247570335187365580248292982229541871685629537789843248512090539717998216143563787471950874395556030533928284280608146176105848176472415417751530420457421953389555174826961150240300304984500976603710332379080957393651048893519204049253895481009474571312754711415031176892597333134431711502061903714230190870654893192299764237260642026709217471815662442267340632783031620536195534913693169941567647738761220509316932320803123979842038418345134442329411169710459042973623534463774674812767767559478431237545752642826404775044485532410986846997274474984928084177325141170412856021076706319824156452809440121334228946075740484846942359080773189833441545249984634314673111608289588985796935957735261696586084762081247373996196609032068448304525016910145092705121640574824268128524737860061225207090552250259139940532389688889878431478015783110991452348727828250809523468282428696004376821367908553459384712802821874923233604986300166145517798280614726671602278950365921849606509564653380917080182336139060803328159209644814174146271972440220284673381845823338192785976118327682930322783977331587547774433347383407294108467547163304346428042578118410023031966431165921525975757682799448299552416258301963571466452427274518648831849400771536469059875223942360968593357103510968641133140293831119060636419088899607099905017922857887311104091833612084833221401234389852594402121360967020424194767330306619639586508297179470459949840103584463067185467461110449940070723945924699511690772975679207158177625142028494596949501885198755915349468872558297749414256068112895863537256770101221762438807936820032026254637575308795589009097338814983141289500223489068718573246084313348200029154764457091858284340508005082863827627570981907348619404779199074003244430919857571357596706543588181822337050901981465456741360178313642322963086430425182854782500444946443299125186594183760259991708841858568101085280750403446862479279630339955341593585301328867090186732683564596716283837447494593469488371318475581589318749808526226597411247584084617337767740318902008097588158183188846333933857327975883291398288568745592928399862712115783889353223376101902490241767713802025328859629761978584808319837091642220292447959472863470522095657746548706135588479346212625956339785755162745228600248266539719479938762130429493743598769594843173941622688548413236388379323731268666450998519993364913427016879454973113507743107453773080492692409749277367765305709443916134884739507113694222527940120910312100027071402705745765805995394537271461719343072044881726291736547658074131896332944382619224846452881012360649537392574578234749386525141259600384268002839223687154289055151541429061629934130008438544956304482848848117248034659003211339580069214523417499942370311147212702220495832306446060856883401589390625271882188529955246634535676847948979793606450366519826043551419657983867354339901423462131713121804265454735954102616732094649824781098320088655354869159465927896270639368002608264220399984385397958677154607535669795933837809816030846352134830228745882370216200455015972871382784706496685725537743324914982866861772319985455647496948839838738303937046437599816580309096147838344987419445938711609666130049709090786297313687956092916680741429430179183756277607808445775638207465211822766406024994412013077878523406049388828727025748313197733769062384459450063915705043325896639560658560101737305342588500735300932560750823500253891118592594000315801516804258316613649663961154009053742710253361029354903021791315611035963990664858811864962445074616416465173279716666627873817963097149910879731347962301763677344929057275411720290723523374075328801744525683269572498842823447046058739095741676853910756708202470378883399344295170973370514777119671506170702678623161674508978623971887920074770563497265532508378564053993676651013315950163197536360790751187074077507589669548446385949867909108411984303328435005971059413080631319416503686395723873852881503403932706598740511597487938272154220587050341570288171724053726390285251800018932871297457553920551267258557515447502255686418860911289767832564958463643325333683860051391674650981273093198329316294907110261168093371401272428839844573928996810577099103169949438568702516987400293993475585123322546904801339448226392226797875929983476441331969116790008998522167452170869500487160675418988429570566091870954914996710738635939514305701767786647373697828165592066072799127981537551470299999794561729776945891155651964933070858894054430452213622338197727017517684955097601981499100542827675029688325928875286667139675959342368277887392814381033636821362205497968878825497880032320518259451046747328566899241959210976572639779427550032025874944569286711400084897526477146190156916326628255151672371914029928772839993505908549495538216729523794648549607349629169601374428894666972991122869443963251875000362995452897255288106508202512843500005121416163971143090594356230959272842485995942190498932069246409406381736863254089909555286824002721543440978900628432691062669857616254308241792560087743238318769050492134190568035287633429787457244926314119045646522414106408695266155556902745519346387720751495791419541535450429995196002338641217919675235460560442858969535711683288048860812734047317047369526575802091275873676984482065611868858462561352657284506703658811239788539575366158220038723716667730636875405952478310206497745294827596167838970224851170453806557315851786742439949636550424390481422570467959266400241403370623967731593909914417063738518157932930012516968947681087857102139986564867640039633479588032554603833743935404504032372082382609358186134739285766394762489875188278485306572286783189597683458282033640161455331757268907647820652678768561897558014609185420503308447927063876743595251644292483845046508031101490261862127550890115843895475416286506189587303076776884882929781533662518645383520604782687540307496149116842400373735605909461380160632583071492501264095100518028013387232895528413121476251048083762824417193332445463782098768160589523344397861510137142016119355358336771907131243141171145334886103291099205004350749770029988086363717425203242222316521712519566915861228430469490374251209352825602219193656216283604325611618445036921185705412722568202697140411194052028760771361627320915583026708173388527156745062322315595843510097699009330880781308629302247256013902328689739461348043866310950519917536840330210435467460608529104210892451602074033580343643063934829566947291750012739170657641427320767591406678596411209691587206318690893798308195526141259748666857264460815236724726436879462927974155564013083041400371174318571096066918714409964610592520179145015813422694131746349770445640685631291856894256250367440615358072472285918240156243374120101800442121578261801398464897728570288082548102261444807322270929581144456040466836179218188878716285833836550393196005896502079178304218405424437619807370651109169263372296259647227758916305585737096467934290035653324341519516002144350200844754027285921095660121592949496460809371745381466104302528062437665190293789793455564510455293259373648383159869387995226043299120579585873379279785931773737546987502003879226352682170764730586003593107669989200341159204431490702077435564119922781804088559238390329705327020969320945367039996811218554252239969892410141410362461095109289936078930324294247462124453290272751107903544938125602743234077047570353146440577604571409936475537629521993889586659167401922317636225962172379350628896483413497824713548314017659924999881711347644110327953859637510897426016003150052541629838022553916988019224028793020325299986728633232387850586724953430443862407458975100195274127062453138904604076985652402885459859553038033620522966722126967774486641519422823217324098991487918828692003042837494583367746994269294447135883154044661186320391037417665678212359036973912039611492648195453229116631912166813008204560118247593741498210575324560072432342742874175269071032059638671842254878099097060442631384581458086847152303475718049373200626563156027821727590861872938488550324564008315047426750587419334623299206570728492316391244481039745034622308331525896705671442909235793958984949296930893423783513263315673117960103209208784682891319034372949738982565750647227492767504960646756095373523285267274855371091524377861891152162853455001495638350762986767630757933714249657805373565964241042555514057601049416422593586706547784512193833874512936387364998279599392619919796873766396792857349415809659534578416419315093709976686804396094919767933292560363127551771384886230968092327859836272268896956324483422215666956578395620392761232679400448379451740233940747641685030530098611735393237617824125563521024293957175758013332147624861844492796162887147837853642273921485955667602262077691481679271441740937717483421514298741423183245877635119448571890167102551250404598820726081034197706976106971333219338792566347105225943109656226734422393276519980773701647853054895587819158148394744657329483946466868490218542734685730766976457424719358140686220072220725150883285911590414989806405829556506713496714488215227987761678628197875370857611948195463337632057467643366919606087635751918085168092830415405485688626228758854244828685074577682550723110456745378874792912977876695529042934813581845001492991931092962053544981821839169818895005628726427425515764248097442508089796513730026248860486350873419624464291514153363399571672845605075454823593211645713950067709158064668692493754507059812250477040821628216058080312116004914562056276448368778254592303003872749938605884559944273661882166302926209085173096920229638147102733068776211783511225630542421479183014243160460165169769797106810339620235039950283090785228740942932530796317224389946277696453746127186089907091464746145043201250542539229583173619609010756488522302758710925699275470867257238458911813993673281460238113689699026035240917234684177510238099049628581706501899227010177122922440770051768095914774249171250526645241531672629028647676670642068585298145698411052932834482120003856356919290240775345209954800776746307219742103778395011252549128839265218328538084057016966790745492533962906769747305934571806606893076055376656334305191416238311566107652700925957029024963845622492333810936726510086481119655998766968529122846834114142148507852122032025717732798560194617575825106037877219240051627719306816124692978987528673339162963579616950460628281312331981408722842994230955850674253529527860437095521064435186187686068974365605714329728466426525072042370466744580083720674250002038020518946330486510743399674562837102279790109755435983861031536396829170385778384493542317624206510944666514318565792080752830349369338268589249241240401959267863723615166194500182176712190077155530457162509183189236800352314162418140054598026426108392243671020740190505765660210688334154138439922322570249849188993251764763228779082328259096412930753281629820782849158452794125470238652230899757188538563192109396075437964176835317479474519052950272382419588255000214305492602594523253989058717059020274121454553365424824078758467544492282202421741205492988200771343947953010152376634299331660135302576228450058311565095197817658530464089604811757627675614301601898069718825176454511074502662434453748857454695756401211543908671309063910663557719878229154689763219282744454440199208089100724290790480219675187947511004845533129013762730444743834964013263784549888981786720477363723584124770677613991605170493933019181346168107002039761199972974230824192052205695582572659516825702703327865951798062379727437762456496986755511846913427778308662393890052571940759542953761820217257290393517293209026059341427633913731442607464264961736907546549280117399189414482350801812150705087323958507901030830115082933162660364186391140105919111445994306102572568700942736965411355570564309670012921866939052500420043817633371080871099169640521812399104609617989867002757797000288043409667712768285969672067109178602958797903963017481186047691953888421347933745022721138103095116462528401888830842175046926282981309369194165272588356672272569174185970046470287427917129861838729706624370158826938132753324630316332146366638855703425424005199017596592401518687545616020711745229513138290519642029617018580362483340991732926173221106545487993592225067068267805064185835580760106087214892078257916857268620542065516280060581479814998836264665805855196682493695413063568538087607132303054957522842879884302029160435116597681998875693797088519241293721199147275513129146628621669974170558402032085261121631022561274567841316495705774087501442529428922314522241329563090854477401495466968747879457007162646637069204763223986965435267623732589635206889187323107414793055149947953036574954189689657677422389954752888908786014054856172694994329234153221436039978322944667002689922106562349965020750011740466762071812052991635576590398762803702490417644069449972836537402168883435654375111982499938976498940420019759595393839980968802833975993818015306448987689614743759808819021393509197389630607484313895000826982983499196855012917099689109468090862577810122408305846242932701157564536562699062049009814911257581220162960501480419902055999315930305721237666628965403494363473219015470434737817909893540319122863745844936591769165953581580090701840259357700143333697877970192235767499498420242159291299640386883036106424755883618039171775449652106184747085911948734178218087181610993712605489437382864810460264460633924714939986984054089742022430549697039956425033007238461772351309345305516425103509457339427497893231935963097665980514042939292520807352536158782819019463328297902664457100805130002459876312508252801088472998060674680864590333012069216669430067302024981473642258985588154620853801352922982921451047331695375454144231717615610600842283175520857087337684205996435505181879824682373616250539230843677889912924977730950984162075020011441264833694301087103756914905543661705512432920087337717823637443736453592412198122850313434299957623945937158980177652135057396292363568399497458935834914323269191264280972655930068724166046510386048094221772191767807443296500534491788173073193063270529927872311612966226815799646694149862963482456386509317809550398607104307459515824763855286063007415928193522444210896374608826869940364943990763361594371984320106516958363174748277336662064673855931823588242230668181137178269859411361567551218013473000289191613438220206030943091411502450232703036397010171064087688050347781967172583219566741516871817807220260210394990555566373677606098431872319266026180174820061334183006955401064274290207402153855759837882834675111496943539394997562773391380786558799056865772896158344209705924457188500636972013820031910712990052159715790699604916727714929897763980565767564875132217797587971520339649657201679417957569523486635878839594238470391286901215115138047444681854515846229884624671664300190242204494911759535301638090889504712987827308078457770759138821218597978113147923099872076038616852017270096183062773590999187791196540290036697296543629876878626605223559613895455970977030508921057500697660314624497623660949121578343508625750698766068101340308075797892904176189801253231083972901426621418156105164775684929120127560464638555048792785986397087992106207929091515062449850640884679923472261155312895590004968609640376471876025835064054097292290939839404033722188831581781984772952248192813259787599835187737756171784255822230628757750526721438632251414984664517360165759454209801272317442190482292756177832010901997201859210978172285993810284003418106148447449077980851049636645841306486464993583556111999069678545145339396446602982809969459455179662089613440334844424194442702061610347292858804563206090557331401282450623871394365285749972325621903969283691145075743919147568827432014020140777943924026474204402277310290220025798858342339268301013198910254292577048305461004349802760722246181070214267357701954137994704634935475563573616754685428819734727591341761297230021565242104286268651309220390377861641268227506161683676471575457467977430053211958216181760295633040117453487466366729665782664187880179569839836306236704753200438386475197287277967321300774610032160072762971754848126068598250258979966840548912295000901503482111102795379813525796492501750218540495500822659350871469119353641387001422088190794020785269274168874874556532510415914101337005464696770657162453356765308481502587630993025371038997982888677484441501801460676456819714033158991445102333910249822686031505983819809583254116851843955462953045966771351378301257868691303863650359455601876097498377914289241704061801130888173397697201189509357114751666433055040850290299969618821111727633359620814592778999844050172093410826573302965310203899831080214327363943216068994935797016223608201191458839135468291179485507102688118387787343865507275092746291653863327846566610753582721858736233530168684236735473245017150933520379324836331838686756090863628999516868238782894118912588798394622822255924866307228549453112151157004940460482657476808666606285833571302276711756953088997406226488688918815346234306738880719125303773156390427224671721619516699890513914806237595971236844969486657236479226974844363617139682888098789182735884989827862404762108570529400102555238977813858095871631059471067896467669779312398288359440603760529566304511206808734000547146020020975666979252149842336841833380481444959917199061357807050517977991666399947706467979021485387242257183815332683325679798395269861578091787954789911522699604481191450160627439064977284333725459865368718775900111849200914008563953325711562191741912421405227993086213280989474379387870932364822612625444543373115144095611961351224774768407694308768345974158575451316951301469900859111717353014146018481690647938404180875877104304485568505689056232345444809021480454460987340296985600357204363844343955494288229519860737020606403119659702935661993600935879008826728190334354956490647485043754224119604058570126502911701428113289848661922804850192459375710671361437298069721910853035571555529341486085519417487063269092126488131599225365669561017303032984055028558090651035356304668886293833229066132021013757897167738571075924980330639896407993890759417188644709431444199014026975930854849637188008355288385278702751777767640462837320011679143879140441919093148473355876473958591917560758454300194121630913511739451621467718781446933457814365844273829595205635729634452502220985594295921829511523284947498434045158066939508565271845128259664281968734066761065887722444308252040726611547360715547094731680808775528171003321725238593401841432886520254526989721188467816977165729870295972292089510074148482782486455573629163835716839866838145925584069252620920093021547580588632643382447703834224499178172766137789655895418052033108289004872792986544346131154517946240102010745916421269792716255835320484277065177269534859475346307332556274838132887123401476638125215005225112526733898789737125920147790057725836367357727349288128150875556368822390703635896702062225489874479906090094399282377953775225374152900242888958246642440126904702454108216396517709413848578464653134930710875292500626161031200776304603258687107495942350241476150467605188391796329560291814676436689057290652152817033876472793608284729514200365903336642582932576939460158907289616010240964929166667847908669454235906857534874605946790205383771739149351802692756163527849245594009729683233481755219648143557477923459986553516070293853740565809997365777597967402641245512314521612700391061290927693757584925565135442210607292773683635160398182729789992283913027439798072487838433788085334163792765313143802176123502748153650308990145415128987736404994175311560066811471382236759007392504113941172346824683928769734988620520723157899822887416692929353736959942986133556855603886053033843990209902638379359492734262958426065795345144785809864705997746431525115266309485433486650347800580316816091693755319973679491250859286165119103648794984260489397056579309869700328213123224919300133664341796742989614686820033920184876926102242614535519864213338608112366005069966122725039296873536252015880785091010202159859951409812121700820819064378740472784765615928220839552218655402027554335476537003205507965500268328459321258459660816433925417086353736098508953761022969172428761044586042677180687485396574642209374838655395747953350743604754799322413969110097478638137888435273015744676243639127442319595520989825061328502941756816530792590748313337558129635293883457058840712928061526291976535389956759784500048346678702058894148376107848816448522506623447506762408210340049918775014859175418689634237177087948469247648784345184042055500814944027258509832672733467966244433309807848354117641450877630021086819323260958593974826590559654851731600202352302274421490640664094436792544855043079786126667966816874227333033939177374676108115000404950859162505583999037164326531185175796894939505022741283183548982736966699005677755094730440402430013597607170947291698364769805207478097044430781960201654973635895446193711009965158298962580348903399551776109651801772577527128500671240883262519021463877036049558948276185932132965248957016146807065564753956968345306477575092849534008516995048692043988518018126516194863747321912655356149166717485317577920323769495207113378071914911200333213524623298140726565134667449056218354301024170729174339982160653498319077044551901440498274689106389852340059404085214016919137267436468629639479582840298997004065338566415378021764344636089698678642946555730282407084709340459795617066584387038508383757767265446517117261017221210852744347662818135354869658309071830524230489578316931107099462476282089781243658772935745337788510341936924361683719790323910544650507202547997105028388152216702240871255686675458035833421650014960748765150510051752775609652233074579504668887588068977761600862563574436302057905118514903744236168456624609536799677206891639405852404956561178118911760088773662371399142617722631007255691917820019827290831408575289894770645416228641437844105092787895230043772685619571048285760298447525427277376903178010536194712472811374004508886205616344845071256044055187653295906001361906526576010833330723816236379634965894552711807735040791571685114768256913623927191904162348707127859039914862539991486358506403233721651073642169717163399879400395356294641206556730795251882136052927169269783505207116760574176607033013749961955234215555194150937684953476459762443963835612285621845010463268719656511686448369144069733534730966529436001673537541642631658278807798422930883889049330290632070337120340471564584526502514154145664292019470253756166349109202602778075110636205152525577246942745339488133604644335198905167476413664462996237404633633690035943593153428408764792432343202868896209139385413255947068905213111572784441247129314781657984233973271866296322845725669956961979731695065919668249954647005080711647470800662727067961316005223420237009267964414966158602803865041103194487151963300733817662615827019718233753679709704907958068144165929744042676924602890576524357589134149316348024201133410253073552658803969721259938425057270672528472652736574358034660399409813194465410766180390845890606811523982784287120958830250644311047680989814190277385874840251177620584013579888489803681416056790321644299734626702249614176912586970852063208799216046073379241126208708884851549663498898851131489175057961901190482340849685370569961667737706865776630008423340899137921168313180561528798875975748764411178874969150963902725536472905088261518927664968767201132663364009669500124002314851388457537017935643297984843454842323518795191372935666031398503471312700223227700484417529808467910329468252899487740843440690060144755854338493893061761337995943427538933753542059532897812883401710871782466272131652281853831183609775189670545498025272919499185629686566251552090500205805995959960312863981426129766548413367134207930343433807082715347459334347264462257673257474141737689729137191052869823370102772943949483327174374891918709795654359901377285385943463740170281286801535114516146457803783251308344310302727378819497923876891201561268388374184215630021417982606683138465053802253871991736788892813637975466331145999299529731298249260219193915885611770353144935105276275877997186016061632495921352147570730617866291009653243007617630285757919427543965904174599690844086697924434536772310623648986725769556518460886698799256094002775220985171213963780749354847304292259935690544664555716083296484719022186693924059810339150386865148728710772209960587617467304823822581084245652052374327587585527288194236967100948610787945896753642405737688358336907310830817085522816673006801120509278091490380605074035400890702506348317312117999198029036117482820007537992822948130589066072508797481372568402728805156614510465697851862335534122792831528091428651334654604096257070359746198395331953643300086603370366772255676147255983892773160378300868763855725937906544100822720952165908291862511395034875244478846930784930017586962244414544915927048372133819553213799257238839714665889049460672238227920264771016562497801960967828510476624367048772620629452089845364635412965248437694896959410591434529429315180048393564167563617171384302778853497015207847541398221302581050657932086414231159841499424572607973944980404291714388274703098163817765955238640793024154737777461107455670443467676610634759954612410320834631664874257632887014495506004303755414757764660315094780705404091460835247910400903404745293482639173081057828477730232933525954665829026960763419087140514207302391914740015373081015472984594094596799663825246409453777264845706039347321254598866114430997475878474631448884438602800763297843327366899634925134529382494451026817525679004155983137322382498932754082566031363595375649843711429595828552672688373417199606897201492376849977721960868005604716632384795304504154570234976701919905389992657654201488584974563591218279617770220306374335151180404042320019797115918045610158096037929409143486118920096889353069505677861548918181415608103259393602507407145341434433752843757034329986037476199641762308761987646353583209250598049763805075816578460487837384158633335684490153181267809418702783088484533056231478872658697003959988950649057450041958972668291754437190536974522583763965229609655341076034919160908254771334460715396326074177048962303152690616279045958859397446655444842976185482896280524491843644379029137847043323326754539709357162528527765422678887880361450582378947109474442041384755797799027496773194610928040380254270593348279897949137924188443871170735073523694754865088359739614050923590850783407851363629683615614104641417066719442772031257479747209463457470750998972713599835349770862215167928963724091431714591498016870426301701422330203111853778745471257982354715545964326879119041111447862971969813713313977205001004345386331067004379632795573386417958211074327495470893941714705315284194237310862050272488591019527815225910702126531106075447734818184934762008832547793629030049472417237511563353462551075519412820632017570454396460375499059765341591290871965655111398755984042367825556953335954167253220641362814345597689036950819566584442149225132762847195590967457168726494231565470003432868659850893767823076171937995753039537105400148265390572710810607325687699264071827910959111904157612837017579628794687225474881338664709849330343332241074577928144941895939602326770990591136668868310716047511928362234342441833256404989328394772333404814748452004798164668116325503114391460533219537918723969093010678994991918503664585060203242199624693515691531950068262678094274746643188866706836716223843175252604938495581144077290077773554305837332331498458101419250202837642415503892789951765241174430958835450444509174891550454142090919918400000106156214086108300826534579678086897719872783528831510403936186573555576708685114109822623461812039240542065723869678613762068674100038874422612552188341306817361947737503843621846797605391546697538791020709157195028074638102727678246817435353481795483841199171746641223122129513475991092290054063505630598263992554482697633973860606335632182731320286510358629324703537222493598931285997812228297092137055042445128194117882239469368290174822323754784016602549168331379794887903445521808763108226690862055570120001155207578222963108873826226132259728721689549207251228808675716575731486509785000510743603280841471690261062587214501628306169600506731133460156810676621210608077518033461214910306484567126266832732120393969825889588267735244812626887164845935401910566996106283609113767510254285921262011690976161835426679368743164954588642704695115434251298465984411993612452401103415361120133960732547682024072436768451673519019020726721063399070996647734813873601990444217668576243150006234334924349842210129271319544475925292206254820415995932982874871384945621804152758521898341299107853204689463201340836774003450628381308724583634393443995398495943981750764700046228935227643378520413909590579235638994763988205401278513737916406182788969473119635851395613229285373574458446552373316420245499961882618033578269034667438015950095809886388541972326002920221148467121763242881884234797730045080508732506375404560310260733988824127824388914718287710088532569162430556459683121823815883239936445475040685710125921953893100458341320628420676013227146866862101211378589529433993631628151901558357416893201318233306822203621850725217375159219553790861580559860931870688974917206280938146130853272493857650745163480576398579903482089130706286242863423764263757901615460376008817392036397747781827293219971518334708751260400150192789996832489603898303969252350862222791247123446276680521498470336984402465879661340028156610206097245163478174796402875716013343157306715476043849817646732345262704583401344205432029530219334852149529635503255449802135663311974975167757595013788920916669488011824215777829596490697140222482320460111483850842306524782713930644551984775015172169024182555091585183401553030045193551742642249734126431159525334641287158383556512587226512594461130054432069078420480272434009514261057014662779111370342744743088380592801836799775489419944860958619558472291853711201196073296125937373694372018697480128629055780828085406779404914964981907533268856238168500936273831145512459607205198533197013200535853750406789647606330423973926131620346778379189869708760049766116891473428962219901428853494298523677580849049332345419012170698778035394323955441648674624119186987677441124993143464032559856034451609769336255188168396572824945217939360119199001148751244977219215116124969030823500134795131546998635116349940326651354725646313686796096968432113522956945917439135074762035336838722383720135147033710818824093377663548344195468514136786738585730429332213902961583299058679309772979499291339462371411625423381439490440205691776359920877127069332825021130493670514455930453544784891070129253433435309791739346949804095094187741430022562617292156072912755862237674363034176116684279450515366402844004958424595603499323138956875125346329175228390541041713552404742910092302440890601175557116289225388483468322316793055601441204477600395611103161824138931776131848668972885652063461155146315401097439021194646543156480762299583954346990739780469415725250780381935290434593075734104095741877507445081877191840202226659980433706309806251608680733237503690790638641457340683593074978197151368957510276609861923461251932839038300975108646488468530086982670376273983473488169739404459945978633918855638305307827624531083571551925479812995131004253773016163462848969227461262832972264755938636565181830194315391944901462742001519766402814528448553408056862947021152293572129508294492752667019805294292674573910533367665219905106228171145712639912465350424173161461326192670788210526383901919506441907065935318806473739204129247924165901793230038879483878076012794855691258234193780385778564474640991243739545971132265368769244521382667495672098365608142049259039819447442609845980864904848980027505011662763122352795142499774002380714371966343822732736860726544521559856835738850872236330801777889244482663658646381104575083829664381941041998686236750607778517750775051124243492732075050954281905232002784314023995688612902295858454623364630639056510256278815154813382916782300885010686363276833717711802746772495068525182145767048913886193006702718660610746075033145233670458572723188868714264923280858415791793373910507737299799113778118784625650320956056348257625260221958241013395855540578804254632558997824211023415201467648926200479214394379417271064087664877075209854002721804113754368518963881055339928303816148509645107917738262697792432010397171650981742936828787606629430106309685578954199346990198758123771082378233228169781756621966972784899493272874889544631165822407162899921420608137021983963834511098110678057021421577710359281923693886563565853428606823486900613672486332990384104165148594513863937356808350607355252325734016245076774453573692488428649326997879824207968246897806966065732813113078400427228356509257086310979884617531185310020229016310016171584617717200335185509265086585128818734457813841985842365912154022419730676163450960469664020503164671701280969188597435576924749772331050531869999215259440737731384530156800230923456965972700844020357640410804277302793803480069639257559634104560394878124416900455062240061206844737541565988439315138612761979004759679114600841620839341137107180084099618635990146607663836342822376331639299027841338487986627332201498090118609602214295742776326610607861944787461041914678861680890846844988058251798093122413455223836687034190077815091945117977356053862294213054633881701335653735709051397395440401037568213155182992537893450612244188217522124861547954826422636774458075010670194123836861193504245764124241134818397346170874748153408404455960599478474711819164203833743849118341691000095144378879589177960913568927884005547254209002737001157442508564932174180100144187434341977580013390766132730151857386943545775181727342352529928949942923322931546014434803080548812165996629442631526749433754635835445019142542730740616426287682094706452956393031349009208820951049781127346946380140819486861149941117413576898673566414983438653110727489220142966956877317262761336426487090450485750839400700905931665628918647220829589846056335088204489193645871204418960032222880278377018859772441434255217940793921932188175933048693679148428377626208270080127080655705571635357354361135136140037122839829583924820087938188468035579628888628983026071531418446954004969936785046637926203419559132429413064735133520648221096615077195225894722318507225983475187415667114207167490467274980237870214620373818368899645465073240155693212163104797646307538780667841663097928285760375760972235016768837321643834411149021359424724275411646663738761754933520428153459226933622793647581965846533362530171168722131279450097390625749735619967946469893487563047409833678732129099229659521599477389871262495066052530880643741366774547624078924776824574832850227747770226799945646277632884100837514557119475217204981123320770637517043370037702844659268856957303138066868890107169818464209114290088425206863514563967895673399805307970157608350940503123914954379430052830571173488326108298963988203339008254893654344245077922752075496441096683337005488703483258644817584232055142941590201661253152771221797244600183408921195962344989130092143527892797701733919774840054893389583637330093928248039459107625504788365740296858507840837460782541501109379017962465714147338772873723641533445352719500562838790697710216073771859006400082655465945768068512581742367465848602766459057580358818068425289914365788614445838344453768904181421946930196694212592063954960489413854998032428161689993864663481691717767912162296240545143283985177229406519509067763622771441164645029197379728737899489316868677437071509113315950069018651730444386718173265824119553246735608482417645156609452863908953168716944570123951346292855216667162031385997633624532613455992596885748968981262342269232385050760659915126534810398323094548404482525705574144172707332827797822801180931693715787524845559980240062323689969958464793298877857321591798668951246164503751138466277808371430517650881764991530259785752316382020171627821809956994332708101295061472396530651114141585320170854089088449343901211345969176473053163052902104166189273389951618182271748472663693095502148275525971814590028553216184572277797321413956325719773487304074368117214027921154322116398081217873580808112092732324825844989607641508865984586889984714137402956466780813690760898490612220225436868632258629407295028068330960647673021365263357086750133633627104793298578099189931426759544926219857731330442714616823651581812620424773183204038430716455783374345843349064650798248080793728290631665295780068301972179588677314558682818022981491699763963392287826156944951926096454415755183806741072504121075595014750629143817307646413505060874576245021357433072169690973242709365392154456535491184542982650946075127104115041653903891281749053288931867737536775504817399191956246415755401122633014300178502026251527439213518142242516338748593329402525612995953313339863103764802858569213251545658176172205452687377428827805149171968826896052425368264687307331784565313004695346533991100280095516122724318032016688118313614790394444478167970994130838155972117311220835058625188640809834529694713368603248755539945320960518820213563824162449987787092171648097954813381470707528610635030971571483001997627369177715088161209929191748726431388797985557534204532886212043863232086405198104827751038923923060371406335472450877957040352904886237103583027154039678766256372585568415145785137397724499796235423363190312736724450189433785507833838302784484969795993815822620029644662995920552937021747680994627874322674410835047402196361673493002201476837367992368369420007798881280762530829463788568391304769314339300683916388704303368126911305812436416431776224265703370034492806149399596208823575180406626021401938038177090647840226584586201652007377988344984433673008855391619703429705211600593694496354174776915652296306860333439714983069256522170022877731572111490803309835207516518204894605222578856787511880101958843108730921017332769708534888288321369465097419660049090016378345511866195190640209556671644006323513726623253664585360765653615207005948077104921669652466474997600241174512766472797784069180051435842002326925948338303617574533053728213159178544182241673433629270196538309783312740460644189577458805466576704585738029434512103289195419246511739061208489115052589458518511082510848857001854144512124518904732033019819580313177142530419702480641242171384879278424609590111982987659128813520544242843785564989520790363954463074890008553371839755229282427117279375524373214356921769130559513669631885664458857332399863812340948962466650104024622812213196153226604275513285213479016519313419115061425577788959449644717565029070203209783045604378801470235559763651242092763759986221501034768580028458100999150737139666776408446928349689035755599626886294139601383142984976974422753042506905707879439989541600534058611606849270732178154802695953387285505063022229607780342648012489707897949920604132332969960221478827352677199389903326899358781826973904196072627101587322956500647636961066440239399097096865027343661983167281128033288678340303280919224136742572027938859478015355720568118615364972421551720050969355930119704151188198153795057479646090113575668102928450528439212877898220731961850520788827696789028803446690367868637029181320160787248220121244767783687859149640942763558284088799060347431732992968784699580040329825364840278796976503894666228920480850380091215553394274427414426606528217407331339968359976516775518915014058170784006785846394693253673388281276239131429303894463648753474154334303478414178978487749310262200354502799152315082797052257518734652500329763406789977653054411904382634795405370286084180726409058378339466155543702419694415450374354742349374091942409638096462439724960107954180385997360561406383461149859219035269604960115309015022414686135466604905338821149196498956494884735219462122224158186907488012967359064177386857200185598394182517865045183092045498693706506656049388891368299711089579772673428202543794892436203094314580225121348319805397803619200367934047892960391731107803544237147616208662404090772055381712174092249480354414659877884771092419089656600521983165158663764205811313523956219502327527588312588247692057442457760918110528544633390778708545573322570577586110067780478165122494746951745166781231105493928095130077219383807683937123004276795488636782743894573173069949999714522499106349069340472533771969179158857735809080060281256706219632520047024039729147992237670034315876462098928116917637278489799766607356150669477923518608119152759356276505699538420100777945126865751808263107666913436257034559926834729498628739866288405469289457324485319826338593837242390322086913388006160323579553933811041207113501081688056537763653671878751159939624556726631472004683544960208473427703432961877809454827934746352777075183952060872402080801058062692964352302099532549342708781565495739354899770826023790625769780916778542618526843809720589656164175560201842636405170965144066855514426036780485426400284199960640483810213669318849619118374766186100752519546049484038397981846364394208964317456657186257041662147485005570993796271701640495069699740104816167858160962051000722829923507969405365987729537827549758306885917676409528040328674526288703537210887231106086275734629584056840561063116653885609541942213536904691461005735513607931465341569717772014101718267287906686326754792670904975876606727731034420093653164366954748108960221504620959562016081584055668436905008297440078691635399669485043080977938764584000829521884725894409711187176483582314921646675704417023907345737714366435663900317643525590536196295922912243735020590200773268493267404063613538034076943793490444894440942326136204722481110512178174955105402558519343798036934342306200622151737153902837666685063544546128669740277653621983889979474957296863499960579637339051189160974778831293599244517293686813466828451211060556264690527159595056522710780712431824444519199001546829491009771653882580755139838795788319722690227354367531211667027512608468116769277322182871408783555212210424849190980963167723597858253380772580591908402733873139809608902567182773643988526071252517520424971174776357632422043960958886041926574828392723047106726118034811587258717780918034394681184069368188872123631471401590490959348636333657637487450170934302180586375990922659040011309015871340298303846901547273903405310659389757682432499481764426689453504531502272850601236599586024246386802610636803146882806615707299854978034977731046501426753498339161440070393681558949850974869926611201644433892811597178067069485329259118595287658569746621684446514519472578922237778389320124526658491958478907780487233130041469569587978205299869566272555336191674200077003317268619357489336149079954099891282220165338260870160661197424224703399223944534547292163736814013586181157124047055686915140345014265853876647069805731468061884299428611668700609516917068143094169515339391789146852832738898409114139021814284445323628314258465337085188438015275619486420313797472816535774907178932338667565578799408887950892478887587616846859181427792997589263228682590987950975126199281495353622599434805003336790264204743065731253544875378962984719305572077409014563568587092927395859950873885635919747437713799485476728449890958576828896983201796845084449911564866793018437294915679286171446087592429681512414293529189737191229698870824392560500303860815833939692693301665386569480302018781426379544791151486637302651747079356390046618139027333867902312403655988473676770819839079068072429833721764850455457284389812825288696421348129438818666161653045728652618856754549420024722256687662824747622443171599114850970723512458145102546060714439150481197585729549220156723716233449932394855256036183941185156675055643006870692966606910068797833706886953637982753234935362645165834212802412865062370280348404687092380256559305004912520949181276787472730426480857889867154197216314673127581478705378611979826334233552171912566310750540160665659303099269492365848362741104562948046896315553347482871650901495931616310132612999219730442068958350966244772798460462090296592050441231442883299790104078482426479726573864512098151399370784154832931439340828280922605054456437781567777995322136388564578112874962451714784020687557801584135416343815162239810575365684063542899508257680192960191610224287047157595399495412323150153361557570924879962883537387949073958634532577695891265789091871115662570438914261264526955263562159022476244158196463327248499294648948166568767505533209283876381042624038569939710349822158406603254264015384041081028825497756271033009689035463940762483123637968756703821338126674178848146184850817080777013833047543791341506970608910124438168171581810769443991513574212194347675287829773510338304825993879148394952913347830344696678544642501904158772336842674171922437420085684390902202850941514296726800055583467706810111740169306137866841405960125769788922582816568928995177160996183840505625690974590125064039562031124445835461410415429571350638978079484948852119837020225390148956786924778299334679132749535848296190815136043818857082580828853847596819266725126199447686343146849783165438190021867728070542974936680517691898488144166710823090142247342721695774622881788300675596983214437498068637794414676558692529228332678650077956248666248753185922468861472899916615501212338653156633363137986039253994571972434623043665787275724287141675693098938669779705701706823138167735543393297227895219584400788320175796229016072669130397534478304342175664378819769937224792673134727848214525546798912470647468876592514108565385606645153573893638757884230665769078241857149313130812012023879582008756007235978882835369581097724263223572683404402499180600707424815141365309209582472625344114272800004085238363089825157190088496744570505556211488017072597559722180323435533029670626187922856716075024823991428374264396394572121515504325375066932680471057423959207475128377247452544315119914801495723611224766486156892319680458382732980295724853912060871512275254843277950188456046081132395339989551860717222601960034528809718315319982806412990793189739516486384099716945194837815133590763059272531952608616788618136309453054494868980016860931791767000170922358196511541363005920887621694659507776876304223848677605532006196833121180409660709184610785968648986601192137924549977506626403928407293780913775278065151989390805098092667836394932167499425711666129171372844173779966776996098662286008279780255809322936188863768350319659627460312187958991523917399420387200336357217871344591559389992276505158282201795897568268946677650584621212728139724708238237611520366931136758125245734661506011493570192906310083305001279488488354415207349575932260641199440425926056063992422548626787791264584117964858667370780359419822299697016271369669438701906919575616458762675521152662733615368894194568450260241182580400501376855430067513812399759347879741561709733236150542683364190064163277531973604373617184061826762733436823753317610957843364200909636235742164128308879087246352586823705514912453606611698688712321864926524100091349772931270903142524541441319089907784838384658184581335847672449952317567283486134107368603154509075565022188639749040753560207837948210386004061530373924751169392639597494025785938357064135653562815714114795226653683431757323190934600717331094633150307439749227548492561094900662370821174616038675362960708337088669496946802925840243061765557906204361196435703616477687862103312284388742035456945652428706505636921396326557910585184921080684460766099366734060305447562426319205504256146475318977935979197798704453344366662107119669830247023945039523573100969094749794520698597792821253868603160195100141945276983798020022169264265809105960126304533500627528979638525318243740577705859494701065625856875441758580970331741962848581066389800966801205392725832109909754520856701893574064901766763258199810708180997775873309474149275918316150934705851900114599472174919025857314059593342756075449315185428117113327345647604659110975890630214718925243883978681460295046845646506924965437918081718376231043417134998953807590669060078152585639123107477956153357555988356245007361100715629214261071955079089236332691048157474195209554335736404677572526485939998598003236993048599326248190939244278562028317395992137671949096694700559749722696180618128942167001504287977628865349392060144873282014342158738688642263434634684655506664660490832507106241318965762940326155075097407255853565000481917168537478980698968592058851096390071029516441179063535666136804916542196397558868854296244939140218635983417216054554325108120423179210736547713643655839834181016390405666809968015172152294181097246474535823291958036092803667739101203675166459987146043825088716343310911909720244282499686579569351180226518951742579749013450413917421617285165889292590952936256978449460267316625784768733858326428887200926613933734700301555802937750080181438858154369907460462938076062048057061235839660849332072506547181281355682016495026161361956825673001372024523435165699347305381150833549347410148966806165772403001415992917654933263066648002422266179772006544944176559307130179135127260026121802168546529187020671295155911120997849476737248775238550153148930774103762947014752209599365702890280068464980453613685222759505205471346498798118685054974075094903673235081541396458532661986986468660833230414162228347579072766091442683183439268151410425380361127737544435217744720763288047775432963728667986306318756900080750635641955218759893385862921452157772379066922572485284755476128186097263617656809356961800926495378141028419850640260631672748562344371481151053346003812494454778991424242244248320429157777251548022317220435571506880554359297758162664998914107721069114376723325678342333709989254950882235246638961546960111935033718072659417727102207817295730807479864288193913673290725601571258592831192446541377931697899375494573772324782759193250860325665592444741228314737102862425579482888560344299590357329096769087943248735893981408723507868024902920282574234942078909124866328308217471679937846169785443708980907758279697415907764869163744579683590345887497938263731183781122458519761559361899340870894847589805068622511298203010303477283192257671632972395994002510711416147772923294259217564390352637062856858507389736772367714650752251907740209203028670515641261358233996496893799074643604439260930259352514929152643177267203833876138221180741339403195549763046928753248890053000289905400327434410725484843564871188628626010337304110371480589846677025511693711734073210595359581651111585917679168933882044497634552006513660897307739404682243530254282218787844648025837563231326504140228897763344910948870771067584612621403868760446727216330657673742701349844560841462589630245387435879921744915224416436831510899403689566039645134289652665611441148647838426420124614449476271138071069502719625308571705799774801173566345809720621535319007723422107348366811544698969592681820529883565754607710789929335948705994550426168572452512770905994324887884651378160654534603338072801235063688851110491264065248579350925261948696479953758912310828394273243544580856252893130631181257534064080004277178086845169396625404134723577128150261725303370484353365805772626303888912105091994278912676809610150701496861655996097484782282943543156147078381772426479628354357119206231779819506118672421666095773711735780883854210688234140535856138029873144398190698359414999263621548225224563284928469351184039957354595284825661164682622197992980148854539936564055476295377506810223718487241601091089167412300884419732914892940637875161724665811932824972916991323365794029023231576906349888619614170341141469875464297574580824426426948266537296908171185641791200948415019096644451450397406136955346533017543414592672718417715608674213225513090048463029588696462092903411671258293720458544530651914764750411563969325743237432770794421327754884856196616854563486446988266556467581715817657576408474790897345757004806873294812995171009327144476380755826394963947268870616138418583779597856153113339986588175480686047405139072340060263569632395491488325775240639731599127437513380321762687653332160333695952065767944156824235322447096441073131900007026577023097443953698423433859790852655142882891206247055986022751894352330280382096846468396154923110965514776728452042556907278256934672340215302316440299489783328380589981438047233989860389678399302680484242564727247881636835599848989806754005912119706057609606305046829021721924355099578136721545204180572054244994746897147558640624485620575674120966438010960450402227596971237303729577554658186867418345123403298451671897739554050831448301501588277601704885110218643580534095358554889550255033097552442987446051780882610263052958702841680434456240177219971701556582305490781983765154982376357085664541585289734705316672203061223304128915351139071070881604938487934091415204331097022814562545100875342575237601220981324483220877521382805251880823004409930083834035847725670810777754489321454284614227193673142805385108354717032563429560476792255744838379028189605094558832318464819600352064276953151507647291731033329396875153393328674922444727012142690328375319522336669400553622115106994314577265708931826097730454178930984116494198558909625555375352561086195271606289476201012914718955342367981256152313767498526544033712919596540276602029598828615266230389164111009312870822754588892861345096914748524603807884823121340710518301812163363934487836908050159577251613340981259592853422193059538951405293667228337828744492902193351536337858317046805006127942278817252773350906769634744280463081978818137186266551348149494032336644874748983238216843935840022855965240769099974354043400002463576481787796526514241498756579219897734232089273395130745376229683505023144605840368070987411681482993948667902198462408840953698455524872782019614800016978133262118872719347174590087458189386042193955353089985931870216790747337928687503319408816356055985115832872817425739767330032089904553442829603446247439712200789806298784319070235766959369414885877121816803059490452267003778953993237545644188241048066532000719498647681087216946469406378932002029063579833178704579885357892137666762107467668161569328827275436456029059130537437913961542330515648027616226075897923232049857748632804247340259152217952522467258395068055951990703202536960493774023441660350223517316038005043831738845562665509125525689175817708095463242685373713506686241363228401747798790403148275287826617348543400197599619162565029974558707004066520809152162297391409705536885773196494163096106375656657074205276156185769183400710791429212237131142315263175269379172214200368415713874644972154977388222445753768173702437079984937892274848703451251302593051704365955915508684318119756318798008277227108170634475964220229269323248777523994065487989655528075059829935011147215394985605908100220052986393822587904583927033369064609200226647624531391313110294922395419769326622230112155803006425861089232957011435299577990320540730325591305202675310145431052265686254878845020955195406469083286835911145799123333209724412407205196341977296059078311933620449957535658065058174465139462328571738931247879913049309192135891802263792193477167356997709941177899909079470300999480272095434838592212189898919572896124171848390931517853510204274457119230572444244946206312041276184870147307988879931313629927210139392858896267180868576840975797823827314191054260877668851415983384488662405832241647296738065446815768089399119553258915883604320740673302317091613242971617521463096025254257093757346826240322347591278906957688456538656773226708122557711380703192244222953656968878607423351153026939119425520003409321964266830236489238970937978496983584088542989986595782608258121129046646653085542493185351973447913782896757217812723951222842411860113768746107405943634646053785835407740668155168690725595546504113519379599678784229967005964841978306226379809655842123988716444351458975777563485447848607368946267035503405073430537595907559829591485364400076570444170871880547973302448854915558507548703587781460255268902894061834794628009865275785137333782421417966046226450214295625990138861660894099960353356982572620129362376562369772159237111096207592569536646515023589509966939411099922540063764585544556834462461379853769438439800502597748167009515752476603647176360710245043195367028018073081388241988757043355558718490047072965605515017747198267583122839722799961160700287593885606138609183428946732382761394607067013052913927189308663542209840244611843691260449198039166533463913147736431119586284098967618837629539524815218420603031944191995108120552268329838252826711105580637188177449442726219134856543623884903322205874588072943139660238197260637888724195349739614007177058397442785831158886758627747551232803422823148883239782127751724594892770013339353940728025392230572686969596464799115001790525644986524771305680661304569081727380946878580353258955082367726326452986939647327559756347567704283761743873573979395989707223511202873139654345323137504907314498066279218417287440077278344500951938132339392443755624059809313738643542950145218803083712407471481549043579025792770786150091232878427190201266094182542170969228417373030801084040403784657214590948802629145850218854245946891988233646491980041974477362463739962668377436721564525109228411521625989326278010476824816821860680865672173444478440140179625989826045506416051753543754351771677637052307297433180646090031353240053855765737076093162508085478440281409216603541466004357984913666631743959975683445537432285085956270906156214163543110359926320092097198235430665154192878442909864777982396878169899206213631663924798851151447877127453527395636223723882895209885675200623424923199650506116153675278605097555737703208994290280643121954162953757594996761435741196427331276714067674226899899150861164006673180197192094246347659510366954725785889981734687261999501071756242046681348941907776047060982555224080997674779389736271559641338695054867444983842514577094914953682243970059659803690261306715337307280087997982191299443370613242772316345753184013186933452480882927045999600767747012830089510382515705434317136825205831398356583294018763290326646247108937797265742207493863724414456924625714245054703926430054999439368973112032813526394792632716486098640193889464334516770917349720570264688180824151398244095348639551697723668127986450453520812519406816097710825212770646843315294523442024709889111633409462080179414194235101939740521058449762377650432224519199534011074624125193122878254741527750677775107392837290384964752963853845379831909634862888455873979195521351155593684354474891001446134600207391445114423682288591943732424694055407744509560233630240896960217501439995840527530173936588194212185214204243218727119755021648043377606241231320597281081630611036980403730550844049242158928693959059523352404713328741695652343471076812442412671997018330842184255578289086457884189819169984869204034202402381937790191657758757014137201263564488385316056824279820822019740960530974935205580525894433114450835216317954089374791461553112399077543131894978020435677658630798749664092231888659037470610621417525568819253642515063969451503634358573656271268664299654703351421419105049728382612715901918687319336038382830247948888136726200361747722126080527466000191791040281903829863587862378374647448132538960884855804551668221554352644589539542775744591048857949327848089864170816035499565261785484310752695475416180867717539241697066416039110221996724646919983256737907461026175802418369070242774954176197371951586015839735916084966459157009130081067858927572538482388442039979733191996754780438938251982744669353812862095712901926726874811273541671072238616230020439069378884185407283730937509624363595178070366235765626872027432197213372145850144288988934487549285355914314181667751814212437773600996458068506456605081112369500354009297387095530330024256295331071390305375284613163911998205419615043597617174131706798443987483497029695204843710501380891825902289029904793358416736350800857686125674863237797919350562801074552100979820129046058611184861266138072041436942061324019558923582007941827810167750492189527877303750314229912629973686302813536407235385298410859400995418530776871443992258161255473349160209077395496956950904210555028539128223540886772100446837124264668589876817831897275063637244749219694317591885174583515399255893748067675197841429819952866334206243961903228891725300354062087740996728284019027165333836573464203077238200762042938803237079926345582557887335353204999499133200312739298336750076945243029242189146914698664990058659116674601326115783648474205089329664904124361969598053604031828224163260778871210134686187847924871657284698749582806619000982908745599315183764657498969315147115524836699475376796329229782811243742306695388574853287035257407565040477124616686766611986506283933036719588212128308574204000074225967971327387231477908881624137698163546421968192985205653691033650902324552862537004034878531407004680327505945259933226757334565396682024662836596069480723282547435489169754462116779532164472600225232892880338708853219893979022638678242609567400710264336031977457249934520944086054382001899636204703659493215774865504962839525004109952892163149437201124104869822036464868968741358271343703850692555117898041313265675771368472077048184634678441128908397829823675773862463771288763868560936765374957747217386159634596383960685415911208825630879203627961612214571469286270437674196085520834821333276888265519919976041606935089463875126171549711130616728729921963286821840900428901136536402143039577552500568325943252123399751752880480233613765309389572023477344193603531775032729144676133678774184254637822270732557474897062316010609265663196607899478602058020951910419830677972739520121397448724746573188975312182800206367612964059429010947477439481493259462789103222229591430312173574473023959239879466207158800074564431657765325882804061888156948120770556871481140944984709440775824161043159586921918348582760094349669167083387875165007832968337088478319414724290155658741137728679805621222743522656513527421546860135134796402052337777503688907826506764374459774387345260943591287696681089346179682845972307609099572692328329383411241693032775485882629852524641370285830276339493491591538086548586875645760073151812678210997505331463448635678883041423601876550368600615364564814092084978015640974938336557045207854262935689399828688194338359514850621673395458135572415590439408425958522590054366500316047579769006201471319545910265281920043966126440878069752914567987769504145620897204888025229262276536816494114611211371866663291906650429224402861318407256777543001418331931623874872448526588344988600765048246507619280302682715848752111172122502025645359291189227868351218690234845325503889736337722266635678209607491606349627557991756052845678684080171693475567128830719384381363423643562022960050652617500242281326255546204137840086305747335502026212556527760544721933517333019568997236196269530717631190374556458730000539502977014524204395402523499503493183917689054518006922237975980986968052584536214466415510235628064561078929006561028878534233486168804113156926954897800057011114571909087416795373398139680603462488333762066249591345189056618134875834484980036942335201023873156285280833360083584269532697148329254882439669590039108596785070513026373883852537687269754396505599937658614927909790956548172915835333340615213468127856222576706080153233791959321723996855347856071029478763055858882107817772169726977772213554961903356214377846137593683120047799314112590990484203916971904093683105478280302881827450959414065679806165409352362961143955046629483548213980812746397896925325246809036782997771669086344493127053585796258165018803560845459559884571724503716120892405363074976936689606180751664464935232232671499360169604041254645801575083167289965235756355901531293663479443175898399038399453096888256772712051607003331906450387206657839815814840460662403606745741876527226512287617786117824501990041844085159534962238606104327466909177032336946211522737652886129959625670360391940649365591378650271627119441006619669349878204112589610609823864544494713381939761010586453823562852212864643272774434423451328518491716459327739720281782083952604961359316543450495344894529773263133436063128586122007890708691044504472624546774396967452517508916668590965686067617999687630543117203377184585993836470006349904818167217233073772317135000635300780870360281295545438845971219963398096225013938316225591490830275064060963355516644269504642314076838190414004319247012739173680893889756577604618361365443575811692226018832078042647660973695350493728206295613227402108338147631478322863253868986967438193674612447743098478392650057032798108540876404311752660476930327610711643190454539434786894259693918254554634623475569249131964524051081083174904178444965287840497094240062849187446155855465614340845175007901311650051015623035894813662830448892807027017488921415542091291896030658824733775367175009906170169429438138946209712880202542295607654647942096388112010547632906393010407764340144982457327753198986104681612367193321562857181431385982670222032374228937561858997150187932212143783559054900461343458811350656614410362551863398124054718416296253860275891628557269727007282565611250728979180732070081903935615933850338696813993355109410874466822009809216030868108077816114907460542280489237593467000818062751495244918845332367037667733275522874179508002899081395686222008314945804334976842658975829375090763161432778713564284893842076505002893690731340264819631876141297628201207016063342401053536306316239963791081314538593146680914249341319334364314838518516880136050952656463567968884319845673856639339954112631313824837609120454884903129569669601078456871535287159727425324228278730848546431491365047857716343833939392346331254916727867910931027765665936265548607646497853792670922340148800811380405583928877351385233192062409480049201768260282169480610837037424233027881546347171286315851961409706008694079904834688474714282607553318260381847664298546505500754133605809899500506897604779725346612264380206667470933041595745645706682251461483125207195551381088386688480044337688067039232889434149929752712359654216091943173763376682999656585790941776023332567756417826333563621557940083747475104548336781561539055710309487601636206190239691191538183809703626494632611559094424061394068494891643870412732064842671959024049172931658344946697544423283755541737125537847128372486953013149129402962141235266189526490409864069512334683144139888993776861952050585010360663494260717692585526246532309862553882181628342847332210864683682973759129251875377077494541541391390560718149722192336568292124120109901853969725383022953947509656853363196922765926238420837646440734378431320703683681595359270913896305616140444036249304029292786031199771994457355196275288934034480945864007901017159586019390650593169646046160151000847083845110548642583655714268238132461392949266482110639900489464999744072688150614651602100291235829364603498503941374926228682518966746130305552141909385189587129793179988970889156595591558465470430655301699108099295956379456399384517395034618370826818864868154753343877713116186727196006042352115655208975808238518626628904249678912778056102674354299674995590008249087595126436729889074883140030011027650433020710740467194686585316474274589675614994488522802350402585175907161812766207136528366194458480608535764175017974291504714947645626337210080572789847865323747483121600270244418083755422269855213252571748893163487549119193553105931991825875268694720311147871726746752766119962206591946444907098868098700575498320334272795744401268968746908735067207378863843080625664581748114229219100190070233536813190608305020780305771758810058964927209002162232954394566527971525254098320195621599696377397030881467182817167464536533815676645414781932813812061922835547909533042179834981186370249956605847108520205439147887670023594136525576447746746729655212599013499538355768007630612017609052498039805824758426013619191957396668366034362951020725298419578918799663707799699422646408539409720308087258651674987903477884102544222810476175602686500353300543855089408272734752164181943162070022753673269355988274430041370961608695611886093225527581522552319151913530456910005183617006111911535141912852728865432367074520778217611079586567207515462665220875148752929582118289001658873580379445800570235192484841706256262548159069167546015625902549137765519500877637218492725605751526410362622834314320752313800156406987947734905182054780087504846132781406219997120786180315773856118343150247047926103687473935726943481654164837441211541420433313491552475213772238117714345724174392403638121656400681371450844549746139424026550195886818392672503302117213033174484124100144494436870661565842140883822183534893035967359155966575996139170205429508322907599791551479532347882667368627035740242008132325995068369372254758961244695825903624838714519800557933687831508462861692232458919778482884623624105248505786405321434998890446727554054835748486139198249030289421750464722713358397397391108918279157242474354934058929470367829611636561727601956532192548428859924224009422231788171740093246930943525314496817591234834000366484281254465467087636338595294001093380329507538860323164806413060674464851833342053248880089686995400457669620623215484764058969090089725906653656312987719122062666355193649360785769121135465665732472793979862154063281986739915365020397251457363363298349391482542548568552884136763881259559701120996739590631035057852193134540405296235618545411793278426982774607096739109720946185394878068013800005357798711981909999023368665929161421031687247469994971440433985757696583822502584767984033135684917306828214752611959356645886025204950217656941267804784606822650902272071649908968434718822292285264426248535936393949929116149496121307008796085490241495864353686713282997877967416092394161286557399526917643308002957718921989072623941904127032551046733355246391547636655049198635095263132236269896174304945853892943954670163619212595670236748171380030865095311592289891073323050800742018477299076712143687351502684672894688044206567995824313942788506991441767566477234587499546860029862198381106529995924090134579534400661125927173996910970217265816499944372942606357276300441231692139324374219686095370217814289994142007110103431805827026043210747277051685799266068199976830701501145728874226540222727357479029170292257467196956257758220627340267087613049759859262703876709316361440848014144000560799278977669465317532978767163322050254302080699988049800364115562793084723712258917932582597000529696513168530196853637600242327255835869046928179042232604785487667986098578176587370454704198901537856143307780340802774853615236691429237210692256703460626755039390749016915320540111705684184406356325118821725481580757107424384185772975590050475192345225735225246436643249273685202159390440415717007118029140585781185436630100164838951918414888546571390940941191592820385776374481397422374005131725242876496950509144591811772902717146881369410118315231542133161437695114654652795970443565744362717727208376236392349099436693378323591417409807479380968700202929866337806214948204872914023076663373938590332039702373932491850434561069655313330207553521651394702711190133435239110086415309644014799498821346700214164667019917286517451788911408067277451150061589080297834245019077524907276857899129222870927801680733686645486015089667408932398636951302557148265742995598381142267430346089997051637895588072340903852293096142245875995450752398506331787137777292806466219704414898706506285662731566267886641747517924608486398584213822729940287155222820964382530587041226644666906329734110797189915813069460448467837666340841219571118478670685540882746301504483923386755771334769245502221599280373508915791947843568826098126296870021379791870121762989571832339289679379420558154512687502917143386842614494222687190864934657000184230677597887889976683493716451203778679694694812862884117289973981696584796575837662940541262614466918228325183860922279203434620101224179005765397254335311220517184370289847639347383586656887947040601866868845767064293898197248989110137773725341131682457180254436003384065637321024633233631130803263720799953593900982460896508865187724758894094137894067955004491011896990823408001792546482771169012401679107012250578677252497355857241181869345104133270475169035746840670956188138833118739522375626395096032830008414779124082091568897420622024241594528593532763025570062113450814622854512312018288000088057985553613511625651441697991463031201687692476907174366937715445942420571526323062722570484061219822227098327446473850589411889551859319650035200693903020368911385484426249794984985561189346679021027094166870946085790456800227977449666332271513004338341285232815249485679222866010994882172809836474312756785625584989952808535739058942399198541326219926488502557658382384685871864255805882298867467873690643165954123273158886994717558867500312827727359221156669124457988277981269344256894627869108071759745690463407516891621694839283239883225667012864987384801365342768901960049156066236035644472944013738263194249243939584295110668382156087258463718900280912011160662102491246224609179996435688777126547738231596844737755401641424127890757541188710559560312837483790113072766582266300000476489569656371710424849539310053255931820727355685757195447541373976119805137639919800917523979036987934196057665169771665918406078911850803557816616907264074961384714404444760289645893718335885366605599988829672924527886802008703024922686800805038776778968953744901566233639651655103053789622907214252813163389332943243751349514799832338588242305423973312703320294255395939717691373475387871313837475632776388624828037013022555867306485704837398806913411726132998448019763920437793293332919135760522974845798591090757620840265219087047154444227054522712593139626243244472692986733067095115579660005461543200963957440227874985756792322859858203108099289617678975565110937964829932466735562131516260688328260580509606339660663503379994601582281276089239054151132588396698116526694927612542584582562992632174024860237277093578118107744165349504767086095565212167664411927889857213612243595109992026288134084969693098434462544424699627120842157534592110520003908378564215448949588290301905666737592302716955517793487713324708790989479638852146356649707968943690824496549902246333022793980883119110040688560660927860459540532827646515381175553019744912251692869334076943479678774682682527439579164138450251296013777886721085388234405551170037223689330195357557151225456589298327083464033758553359184676536974491638185471489115578081908995271938995656204227966798476051915642617137295375434161590717585517326267277927465479247364008000185755832020129689917096752001952387015527603934570817571495308946717931749269677366277147633410725043987309649065149463287521170947069568483015128829389159440996173577981639732391715013441775942745905050408259506354588101444184757918996256339934361641649968305743000837014331983479501533669642038454147569704506167677447452706362319720640655073571336559634855736254760667437119538086023547144738638236310688429785951262471801963482767238681673618485108399424558101101217660853083204554974063572686954467323609517689743561845258203329216922036156809653942786156590491887188778920326392249586393949516518390456817041577699117632468443724360083279916770892377434099151089816186584888097073006326628740463948830547458996133462368881614865926701753387471209572049932909462417935647342876051418137875033990702361607118151431121278575602433010966598502796340279869646300035893330553948921353128257239474514976597690998325921411552514946813790238917793863439271170645463908460756878306585493194397750046996093591574743883891197705359184758380631183806909077492329069904879457044793865516212592246381362134906743618671546174275684313426880004818802652214119822297503001470555350972190851113849049243836484343844912398473615557192212624333170082618044069852019253402509728072361357312156136427343164992520670997450202761402516329733018283563036628688576050600700246615486391719011711761874529935598783702207039077621618909633869617030320553508597397124467721432927215451700698388751342688910566835868750756794828468875084696360592753094469657100285378686710256547806844469368983309395825198416641926466228379246570872713432361309820982584444421082504645534350658286390091739481816856067141623543994038291046646789809309584001896794859506093672613975447346062352673830996143448519981805794139142247260201112574465858246971761861036370886381390420097513293193007609443118853742174762404515907280839718485297052970075712453704591000398713247459360439794890339487296777357550895964027472961893942065846637080099898901961305209985387129793559961770083345396561557427328241040056519795348645558176279107102025056749372046299665089866446817658962548488143633919929827982023087710928561493748409123779771202905273781778333598623281403345017452130286381876733627927313344330851045518610616748751027031703474458398415982966952376978293625284636542164043694561656732032192572259680386247920898423965084005789128782334702690851975887969029258657364257795147796825999344247009440115703959713136063851281286727585814766339680234486924693529858846023046406105526257148281711588500019924001272192240322628776743327668441562343320784353002364779581048073662868320748021582710725026150830467080555276360130537908800609989276035937871148970989078182081878481526093836700089552384379228160659217357694096329583361192698191500573389825255768018206629853450651281301416163551137624504443641663403234816388680518656058729925794010893682774052504953236859443624504540343115482985494205142652682044222641371651178833822973712238677875306484490334989549047989522232995162721704801770061723117456128580742534091646523439468540580776963970876208743769218190396590201923799892480030709802816568410516569093208578492055359635648976358425643747075060344905904119168627595486017236418709787362039123517182493243603499741561263805869498349593076123452033418252383747991857348034174299456543696229893855570454998731075521021865876755978627697568173987746001490225097769303504825134977318609046560390334050926880871106728142056005908500796307349417676790865420465732204735060865458716920268758459330025741067438997980514461423844138281019753633574380295450941095124687331202515342396885841039823830398912572509557496380617755925753008152578314199199218923101497333705053366085217075174973460603075273832310818986253124376555055949995475741944049130823033412381115743435225496183816262199859152966788826540215222904557192048541147424971389534122018027671851072291403919263889963302872345365304468801528760971108915688592892650319205305775090528316102810392935591795373956034506336445898093279058501185792057785684929326244427094502623115090126667569968598243137215820542620748148232863384876429029985717489513701854527593476356547084031138970768156519218607802490877398243887225115856048643397844554206033153721769442575272778173768725786612030143532728944335247144449986858636114105770891546104408171306295465016249377501480237076287240701253393914065416760171127584645254395880543143969285503091231065633788320811065530673784366999001023094359290682311948634544650042701810538132970724889953401207492652149595199228399493337242027775216197133434118969699812989886275952673511709850628851644442322324201572588647453260659695587963703806287584392013589429503170364823885853907254671511621599052819723010578001727500439719293882141939866243752564222237694122022225549240805424933284760429083981439382201612231252595044215525379363313004378837954245291488716380651791802781289496203100111033102664389984930451445172933643626244487451226010764164202312028981764820738044091292478317724826164131095800840286948628890007516255396053919565109771744817254005792964045721463858184696184999036877542300554622313357318178575738428046545028793699639116200470641427418672768745777374296051068323361022880320721695679564622018607975010728419346925993428494304688015258091240386585587621928977138604954369265712105225863543852499530976238507568769921673961915081142205500618259701542842166309060119956097109460966388922770351334048209205558365913316048882176605141438212288939673539131464362582830875512904926145960600096814483637000329274062137297906990444847051612285469446328157682926039474784230245933583184327383849900280162494171519273456837452619494383163243877184635395600552649315723822400252383167266294293102227267985228508626864523453972196965953507899569889338009477578557910550784424651774471718776759811744178872532817274121395171989846903194669088226808480745901339714226829628885528969188989572134501648271586187938143628177840276036278050744764870083881061782319742739022078982907183264585584504264296959371870777664361724503305397054496271477301018867975655159381989083431511027428787511651569424487567807492117568200884785042644277015611320719463800236613179592992637584407539028730535375537349310930485492904461447831117756478351894985245952490454014883627369097481315859478172820372175693259380494535425697698301945487419276432959446295131986388639945510438143665108678635693488675021877876445152345089523339592276089275696916727777940228150289864779133302550137690638229629269633823111572991136550452498705061383869354932478211382659806600977058239953549312608522159954700794059330202577177580947545467375689005940074644915552914030474338115943094950288392120003659983324103550692525666659543464600715142633413956685985180908346012760001576033848176258837413437038416285776633507744984102880926850327387431227834325384837563453897388789901743305464957080395025517487268532813201078701443346753830951425089254835736349496009222401921611359839670974994145470898309914496544072397219758387827650868292338612073004998733931205187623649521727576074036550054894126145422918125530565397309348444240452197860899929304496739416696944184390125473228000944149435875796042735016725154004950313243277411775737863523462523789672331818038839189985646021991556060342613139016593611353002353108338611990739369536834651579590503821389356033788943289122398293964714476161276400064728045671694948378006950083108700756580032809123644933359728407650216727733718453460210891058676551847649157778509598263559477952338363785330297628629210509469948501937906403076104572151654451638149271526500097633764088409877719121912358898161838815596716415475668884871479903246000141526223838055224322315984047302165988431442647537502404459472711575870053341361055857553424006772537658562971576742773903558103847324791126263478760901713544166199821128030110678484541965955082083542159760768304212684294327008476766578463436454509028542447800565111749548916993437474005219749626003187049240203344760896989916608106246243782222287239867600237455500098036855888023450150698570205577119519101440968705748490895155062589037562401693705877271411274103720456270522688608827854579235197181038321120975372928264725983368037181526143135412321983758650653346796434583361131045860393090301205309244400200902079116197890407092404645594046954551181124630981436758343639061413575122602408011506630002014745543425315040108734002845101933833046218633086522950390008503557402696910724849166569513157711223895299806213423509200479996101332185611424380273759126564684333649374468614651650977393331520030247919335067345169955841343694311570554083684651777478542804339198127194791094715780762003186270847669484155773952130003615146393006169141190716772849257643006811665371248906125414486658493058574726675259136339825634132763076414567241791697896959310155419561418352534978072171937682611555891424176549983049306503986222777901538232323232585618790271550536207300552748228352249292072218500487442712137541337039672038209324694545945385902113615202049449986334748690317451981356950420291334888952238599812737564809360553655693294242367183225586040404268241117001548585765392430979064830380604171137253514342811395601990576775542623277155009506363603232513511675151885623862839560488061153332782046142840374387101542825177901141816614075390275789665033921319873743693965767342743557627626032272196725647683897886868515144958471249693991550341086068639140576437774327693222963164646253258929271489650157352165562658462464101819890175010383853304001485349070684665058136194105503324653154662046611160865623787013592377845997663522026921488917370444201478477094002934010253582578419538961382390742544447169693997060849942148569865189943421326474597465503985219571994291296406133656525247351088556925460027552257644833100232859501378021299118891367568343333045873298250421221013588251036669019443851806735911853897520500727621942386535998438945052855038110729850787934686928171383630295485142693227888775929165086478537667489222705603016620720548890355016999414477573515040979947253554406067266297161631370511714504533947057218480761504801406868258579234669780163714339128356623649691619745876801277028356397772873461986774935182200050329941121648075014379139750022161929371178105368669447812562432017003768378640489640628753227935341638993396786441229334063733877589392499506706128557843569301544003475246501165120776364626853818217596967021140281423986567452646840237298094892556173692487349194587126795660808680469841451245755206787783231861311488371606399509309495940965088788401934689290101972303087482048646930025136802764692405350284857709710328301602794387740321726544682504774253762589477514597585019028157191581331732628561205481121631889943669888066063755583656458480423598543787929476643029480374291715734951256548787976641856177234216047826137185822748103731454512409991540409822792823558320786847929078175138032979139389982058345863465529825298980351573686092212264176962200311138431561695610600786154658959941610404875634835806283984128682206736374546667992443219158898410429634449177417833378846248086982655380992999512690246951128383164901083713085175872680763049184430184075020209981363708604465792213127267210954390367225648907322779214172960168114174164429855778055219567730089841675065701094549962599609788911750363462115688807872759240666628886133998174705901987695024424566882986267505491453064287295188992077286279185488463066731937673557264928198743799658710475483196990338196917906434648074721978165425403533078973756536919626984484725806484088330458549351330228759584166213982971143569308010070107213971888276150928887900973949435826696021152916106169352587253857471096000803319445791850143877702020555827465708905577443133075200326687784629383666209622901858752659392452374616559474311714695894525773642460448253137017230879357759851770561023275904149941827425670196742010402413518845553249887105704316302532740158152595470920855694561264419409750419132745189725301364956008972870578962395615745132764079728726416063811970141370752266529937246603128154903558950074823060624204934772505778381143313333172784557413086932282385521085843156870645377020022057881446372568511892368838352061722022253270014523422789824704309416963924660509187924417536973052557814401369322368175930298915837988118637997871639835393475015112565895386577428290441924206744112933228934486450504104330313556563496835101809309962942777116371438970427959987345837321376521735352393497506467186115127850094145623638509095620037441741443299135714535462613446767431231416375383794499225922773948742593965724755164250353130352942237137823830513251756532016666618627343920296747744366385390852544361948829181151947995513787108071368290319666635907850537588438817827360597305407359297355985583081705710650754363381451916383467283263150736980633752982544587342732902541788087004785508709404759498396598360263216883691474751650302497696196160916936367329138659801424568620026564030833076203770471705479308098304062831139360919593986172007288459759107022379094475724179236529045286297898041324079210318231293661330650063895678738166126622201801828238398205262526997906754860365553523567088833802712359681354194430876552188391834112544366104294388893266650423761760344030733814797510708622783940860524714005998566659082420689144995098436457551103726476936446550055259605188498208601366207375156097238502195021115477010790382874821147535099135567592937233741397799064107116096392997005255963285423172537142576449661644773778772940599745608340342152720225757996293897311757487951945470198927626778649454523058642956286411999009869474898242217295965148743181119229967496015531134118929378709638437574167883026822392592508425182866418317828862470237346356619603654891673587646016505241820130440381817457692672813136167318585368934351789643014219292209900761676114025497877299963859391283110698637105817330486489520688644294791398735273384570239676535260602820412644902504535138152092929370827881901775821075280274531790449299373267698634818784883461852301420491485978716003227751352951340044573561323743636437249006641527121188190474846366017253414793778238197034231157544285443386942531638560096805367130311194038101280707640287987926740068462704777520166420215345358113043648044563413413353105590442224933091666781186406063283994947881805434369068113072189211555064062323408297864838257125475228671712428034505610736760850603068476755998846529498520758133866236764729902754816366779526018851378170039996893416345070792909564079136378517687499620992955387698806166057906974370772485040461007561131146450915757272544062295212904170473735733675817530191267698171398934804749736531017407439318253747297225958916424401840325712867051054934337744865064407970548131840264735677034863970607602505191635787322721343866731813574526852237685233070850032078686733595183003509607877962172728873987487928474243033125679587670225023655930818963477878704254290005181786952690053437222743159789475628981040854971339680641818170077381991625099129061520907541191803382917988664661579502016313063768047108844122685946709458966717141005473454276109652876710057098181709729780941492950611186785343186172237609105659635337727819701087597670172584419731087034420754858223996016089547844638651623262575374909683367510302325868434774016789550983588091125071253358175564934297432611816909184418891713903897561783943586633711343813924466771912622697413061175605010236919247001967157874183655180935990092025704985911286674079498251110584659904940796454914137245094099764793230980733126692091363411274506578148461090365699079606876825622042698522846549634965355688039414681358456649630302086618583676343312538652898887826956506480693982466546622577507756296257186994092936770657375800053976458971608473967606360071719859731197433680848728722256779133798514366895635876402090804748901956429906594517143482401074262938616655210273124661464240863079810121859904126502983063249233546611398657145796388989656711742917537152243169804885783143584632069080820987084375813357122297933578675009530762719920485119234069626253030724093966455788931933140281823018988276460349604618866131027688797065393546441845915353844369099087181278065727059900352225331117541857296271358804531571785457035091680836288429792040277645718267328842798245980444530369454839284161421374128500851332211452442366201939908428298148200794741316296953686647229401675036256432725043527227728727382363662951891095636324889047147167476289091564928697425292545817852142088587013245989125217590155322250115914552073345898393311284904029687581284439547174958276815768228194171611643235950624804148440082383639857672481568950123119619979845810390127346098591035522395270428322850629678399268054110252883485957123433188330881883848978747461783748195710313436558367652825657142961923298022755836790709446482462408529061219709880066462760294217521703789113185475097114965543412837701236968071479227607626467767620544696812334388441111538747356924238591652768583624261212596238929563953612028313750577366505301226671433295566296689621333480077418644928079779398333906896785336706102829312853032790135912070881392094469360063197351423898061484862141229642154821791568595677458690543848173196958384161052976165521575259243145687476272965213497548758020772818086562958616241979649766614746780974364508235448698860330466713093390921711524960457440312226146261100444715490947106040578211627340120865392599989700824586976247805318414111584846727217826581991707456050662681818619262763105045465121595405554671472519034138368341247699983381260667831546960371565626891572045672935073365180818984106095668211056854479701087086415691831436442805450010563566048168939589033809731418291442527211121173959690762217703408695217229137507746465739029356144033835187706277386173540618908026413001186346563557185758065862531966140145423037010449812668229030326378075502740886388689353411766917195939330296241743777133433336114705107797035878681237048810840612641401388715246004892748069159681138139988848927929650273871199831473062140337335570794039436616702958615979052310770512193128554188448966933899502513926870726574168780249791819971299008152007553674447831391974495852888305908322504944322727389521592076414506290860120739862424266151316350286020098462653810193948898866734321306207957566995665057614539488235923145257932669256622568374053052486226410960667582221461520773239593160247404005771909839791519679753062720497555310815001018314236882361709957082636291942275424087036244418345144228984543138946338442863322128731135448047518925024647303757713793673620779229265489836751869928938341282249547530211512487991995772671162078165832511987838493779769427014479660629056455894594196146060823865976987618421569067615956701270477746439186281047975940034060262378578358923085994671830056836739995371114986520083944890648400003233020236771292141814034884180968995805098005969668135271603632440846999544040313063549520643730412144940687650028663507260120297801093773500368216666359772656009547609046580235727792047481809381769468577797439360896139422614711910349363813889939690710321095394288455210811725374523899532105616606567305809887539873998001737233454459524748627916470768105222515694444039358144557148730922867007277013648333087691000547416064951962246703184556752787631089039095649467332989419552637922379780251101008105499410030850495535891715389383986884753430722168590674477379719073754792354153341344970228783550300028283497742890121229720847446624892746557814995821584221610663942749715339215076188007857544507213449096506111532995710052935318324245348892809810986978939202892018697968433326587386553305472617592508808172860861554628756170566185081515692673364099733145979077682632516572721290253213157025697652893472332530181132414563152433616087773393629314161872494264744181138619088281061696330071108425588834494381817456452615366693417958768759705826165273326604993733986247485573241965395269323508094028684571412628488083123927335101806232642422536901012912000196468745693688557513200634037699827637346144810753782907243837786411771565420154324687066634117626524356993902506123983104726684747763988920523979422637202745629029838257299177690049554845812650945756172353664682717440337576556075805637359749099139236643530803003878511353350439028429922188452384489398838470898325254902180657337846489657467064751260970889193184987053502006083411300086292373642785221239012178932231017282939629286802047885629790744592717672979918770595164537593181785131048869243337047831222400251282964391616979267380318611135269646981492684588715554759777983600766780811089894185667641794837712719255141657797120154517130897328706044496079501217779703778707589904674881942931058053597779602086381348845525088198570849764136913361580073642667104876971897540805363872181257367431389312116997182234275457990927658456497170656148429656918597749467939371902757487329663812183983530679532132467580893952575227493264202236598360102862233520500397589344588211971901215458182968518995503765740699181549076078819881615860728726061364293036863190036489141693440353066104416109222471896660846674263442857572688995443449342998061931625096898977190769870294886098173490336584593659551474824081933205015957435713407454336874275328042943041725507430706331987541741702356773279104676943177798492196835846017494045982566593779833812905628960485852393050991650554397663408325416853357456506218367376289989895054651727960925770852613836726201087905764864286617747876499423545646825151668694219430506626075124092066170928000803637547902657786720605154979089552450629762827435181228930335661298277673447456362175162335490183575050205521049571463310874192106009081869858801562048424734606434735953298391247165605276004459111757986992273692400361050642468774932548600927077155254989347497759872664233014781394814904784430164737761751238583171017454146657869526871107996913212504769889247937620182489913737025337942080790529531784819729034398612763078134193225578501027429296055552102568492519437170489073411572277478019751309069758288756465195355133547336622231544682130899339969109724107965563755288072812908710299838247505341458352996372977342562236017868814907250590134653620030374741068620605090133320260311403696599367652682208571911530548897383459865613611887754927000321158724239971240140467724129565456105128632969748230888165934293576800935350125780801635973387762446287407814824640194691061423036091008900621252661255884025538015997462598490001150704602831310712729239684753709723428293617862394649053287071343133152361550373124418307112018734753298690766243852786293393778081621519528515318670849390574352088624120735229818572090490136557971427386426019820480076707654807337192899269249682561124913684722430409066697594161194555547769758027814096513737803881547893935333825465433278348410258457178778422234686047057185285688395503942824998599271935772298147727788335696242940389119382194432727844305078250710757379401218211526094020488886726307373181628606142042818973100695853890781675106363695167445864530545157600089589602522042858593507190974933489666850948536883825176211650865612045104714480078798898776936070331666582455599234986089552592331015043190942198625588164729981224983918341763369295559582337425373413578633383916932412853750569174557627476469811282913241900344537756452117014117721747379795996683473342755989795225167149812893305053795596593924875252124336646883179347840003964267227327436842527885319169416997312476923925982157490768004149908686511432748832750684777048489820809859553024427553498847006943740316510262974074575492744611696023237699736223099367675729744762375448463410481999355848960739243833503368910557697724248920474993969096291012198296557706633924011844059723227282870795191093473332567694476401497245502158888655926339073524564615829943644349277319044824992351742596441726254183385439632473839732015527536923971251265647951184350967069306321633018433218436430000437593268872563792808410449647620660200407460058224805173209091392242388290854729955825471383206842090950313222890781164855859574296918461265749513869386838940325656674123679147903345778138031047658873763991549852103368774050728983226109485926881641055634691924203728464100678358809176778221354407054479533946789672268903261415401642715107860240652336975360091158246808785103020976903524373185391307867560422200871890648915307101006915440117165760443641862944269835352152959043330763539671677637392083098531398019576222612016259674807118131437030919257763856780104132671482027081147839971140465059250666814090551730806826716627461521853292198719064557247322150466550220946138798882799341267959547184972878122080540611340706712389242726630537593607968478537870721152380858209222666885289483424498078243487073254703017310853752235386310965500315420463713286602134511464393354678325941568400267066212943436007583034042291627877318128270158489330898772875995990554138051169638634608521087657721362645265530196320241825135810105978696054363144343701009006943275622363456742416569056478520376281858032775729456098159062234417286143455986632486807449985693072435307658784268205316618697077632454043374656233805453702910947082814466393682261782896726213892842825320062387357577202518199076743428600399763726361367439102093350915182516497913492871007683116244322144336352023009826189346337794967692358233000818813627855858961728844290435869186796389854756408012098010332474990922696857084064784802563483765658843877246982813833805362399896345591110370986951409192936760681667336913823688965212453952300562939881758875409742360535429353503612264303533151061728242635959414677830671201037719254727048734212252513586713097733922625848137144986156285549432578734357469577561366675037621995738255036352040016334205058577560968918223919601641890743111824529095828325893569933494939903216898046852731991033857262282452829721228461857504252574820589516332856696343001806936196494954713543262929157374307765282086699999010787352599962593769884369576733284546542074111415152639574539747503716242690077695432192104925112577957269943277951591644705306259021100312116768837587342548105333400094333646849413216582736027965275893004394161282228081628808147900888454952995764244814916804789872077066177346692368025966413658441748735707808829871329366299713452167144762276229101801191442903145004823431741081260825648542373561700880917633782924846153839750936605166724117978962118064901300100206102416075569339913900727790751717458086725556849767228767563644095323678023820156473156290479780401988685344963876531442828545978340569491044274602862231571668720938815735721473910307013323444481889483697978214370623317077673674286919462106501021537999371896034927693434970371812817427048330584161625321112595460136702928023917872217928771562163320701704473946301246343340062773911422089273267883722392280708587820589523731506941541227739840139116256237391352442706010796581069509034133528156819418582121575325196921062632960386062748423585128120069355467581412543135921974683826580933942234710239015492095018133789482718029973261917625186975861433483516230662472392264155867450378512316509852162755973549187192868607767193630792303721984977292489971539491964529341914789573217116646206306229186180947279378164868377095950758813121845400959360458824540311806594370154772055502302950266215750558521230380787904010354380689397289307607341089838506559944909534449210751259118795570720516029218293173466963140186799668775274378147337461787153848491107321970350697891279661208683605092466025754055193619279348059612794495597719451529760333052620498820625728577025026053625735793039280341259526934778951891410215397828332702010524485945529071043512468780760602966061026756296138258675812787878008671389872066855462642320786253532984320750562201725334263794835948834147018017344542455784785566509969150258024413635950182104114032425030514670775823711478707496999193547902163951732956392441277560156659268526256028617248179192240824204936826990390213154274168525237650216551170619115801272901516546100009602613206319267351912923485861844994491251546348054782196928341981715122176365886478132802141067232987946539887175887668449649340778535611568138055247328841488656411792722780020299174288273137429337609824864481647658088422825495078817064348011111941761474729588245550150872283342802971953955469372155924006243484816347238392229285892177694452489341753243453223996493389877790248431510566860016495004999655715699913674189894301151861037840854368113465679584813842605569387988099247150254734331093405438651155650972302984978293091602270310874937213376750961478995552340903830481467440243869828446687242407953328047183313680027574987474774084845248361968216393530582402722186001930905070327994092045904305212074517758258404311633442194538899976712512018130456655044313904962109681250788680776126703529480073417921979669330659516254465959323467686595925167860118378853923748925692213743877297614026130927828007878907166384689153468143592415684841179214525824704923512806511495144289835742112918120517429446329193132762155715071573383105212742414243820101043561362123358446799891820587457628428339124712863798401546982696107933161722982269139586143595656620708880043482579636665829244685355203863502682553000226860953626222348953475298728327529510395500255017875774871733999854998329577211838613356859256945024844553101591962220162370250940338971650448026172237157131821594214955457332616313066717620412948605119275525241115068878249596235374999496575353140952022033037642910269697063625554539263369854098029598090395422180651385211344239906063703628254092749331574198353126872687863960117121003083122140050548618099632745399812141779267724907808680091971063211130862649364636799123931060147515048877408890033389968674443587602054573581074942889036933476772948353951927379203331474655739985983615614535017747484644950541930933063913860242980556175610836398598627368436057766753277132701927859968269837846206433668886038357935162600464295407932733895777117958372129637856490484250770843087812632955889235900614902291244016655772705588984414476757812540811166191158951972701768493022440625832539598071719987862054929203549038113948476995496739480664618743602276717100091279974614330961069366761420550905383019223359682474551108097375431432828573068351922436518129895335325596220127346179303871177098206291382892502869542306153263545206646681378098620870148396656636476227446887716396166550834387053655812846729465653330722358650992944008634808850867851214353635364576611425260291597116538555717742139941254162305452417134583734927596259946080506747227749674825198561202598401408992384262673022818510419952854146370813474779349160132282573788513232347366408990672876212605334912539883001121196418332027710825873638972743894073983735599466388740814179217344154943014172613500614892385632387276492170452711112642562518542266634029131067570707763894088964268163903233031809807637476125482954436847593309428766991382031574183939307672255359405444984913773485546298568504543703514257440901755829819275114346622928992233387266051231749143992550991969634512095633925612612923527349802076871261801196146973031201833091286746553518854525386852242686308364608518210831416403132310250390337286847047712138297289851343472272280901909199512723071884352619162885712372068139361405712316738743838636415766275738102294135979182893499917594859094734725335781181390306067465892067625039471705889710776613852853600571446329303543505095477181669314719329841878128475837933469748946567655326576168886794768618453786535225280073438749200399758927783080088792043608428731168116199159733569592733109544508105015625047161189477779297844045480302993459054609371520299015184698332512484232791136472456402360215538675942052023296498217497348057852052542805253428541634373508057971588047144120786648379821467118864607688125109450812821201915909844082407328205073658946487009808233329631511705595686706961400691516777934410023172288779365487344196848757867379461682330461116554295813420606819547159252828902856909006477211130881365710380824268150419412515961081790960407147086591293817377569109184767505938833250914151715435172332630172632574888734949804109593501948580737790235309282881998932460504496294240678975054406776354291446506133943864130769983645912321379154726515602120190697468514390797447056747143131942751728988717857806214585548357050360088185053919683418247311053623309250537314399875298970605686129260369509296880792233297538599974833976106939321325711359826511656561918737253219379766750698073897762424447200561220698145788170722215560276246713579069941336840751985727592353611257732719500661453951895824265090688832308536195016077342732938973985925114212943082985304812713452736185977245676103300897241690398259985913228631336048279254005269647602524899257053772804817900962338600295051849471342315839005435118124481986809802715192725944837365537834098814188709890029314631387933772329021356511284168420222373931586793019170550199214008883411852528037424354303285883282950272868099810240103600978603536137306034129937373986536416416415380329773772571379075245619834122986692543182290805981263630220562449389712368776653277242343791959211466936807453564678574456994434642947938703580332981396402204056289247894191770964360719828456954669248660559566468331361633982876791343699100289417057857154270787687319670478647505348467653321700929658727135805481091693726318517358564949984242600401848844317029089455911063979901716957025819369729189829699227968961425111836955968395908918140162725101172674715872743956814089202354932574930461103989321188386912498703878730247312298628679149561340907068101915300581258124648954912809798952174070343398344731519007480687369595952419831802973698547856175904872517833381528024390676687195198839299817873667354848260365090494775465062614558977074841602394125347255504388540423260163478471006512413730890305750242794331767514339479732669245746561769731726631115159265472945038576274557983064497847369637706075914813621113412119748981561333742287169843894949179022924263897971281246113676170596172121350481143382591284668344843634634418707501016326488615008611345990403179266093447426280454010162947599340117781171837720520118789521408315935910693285958420048765105719247081290125297812011743079565380322767416231726389449879316471669769046226177514879487977326860069177044064362365159913464777999395362186662899511017059517775973766010580329579011223926318773937074124185734919788373143018963089232818600695991114445273653727904179401127106520156367132707437051721043588421559853708508666987047109566006296360156597549309768736403700322525393382450963561308376083033438954103821860702310897718916673336187905822758600466611745610744426632791693808766069096771132331500060861205811519739322374032830586617870040316939130861511537416780077525848466590735008311025673977264464537210223379856147159318521154891055078676996157565875673549732344236371613821722111274618293597921086972545991995420572414953022079950791568440340847001489407684752972365756965519031005563977691666610419143759501476569817108074095927704002514903715269061304568776135778322477019524045502182647578312305320869719240143156755791124366502933192077581043996945709163602161291454148729400132356793333724681677332267265636066286393848200875554572415956640662994397761826013156873508868774604296397531140613380256130778139652627039336485606892719925251232984915848417797195005824824495327112229337399700821691118043171131738772454341137851479841801721998630047770547924648749324953151343402311415887154729105659637744748634813663195787749794784785264250177180394011707985004961266660189449131801443011313485807785616704947784216895494944333419399434457376900707330621500160808234486973409974264205731042375911854544020121253209028550180655964798781797117032763352821077658207733859919099654676277143650373509369353710874188946514762630172490329862514379569908168221097200449757777613301983766039397904405046997953705422737725379757955318373934371173143286406864269690835119033682431278122568665435017420284356802298498903790048451442110608864706022430612942872031740720623100031245476292435648280326225794789911885509011695333441864119669443150559839441840765427290557825326027393484794311586576747665677339629953758576387734725661225871726128891195950061153854246375204083271093847975169741558182516420727509813504542405364932451584402093006767225641258624307333831061337178595511319731376798364969962654015805194213225998731535672873352270654525307202137088512756015357114784819573279516217710163522568144264986810148705281731007043999682238362647219676970375977469688979564185895531075674917316406219082329433180000931535256917114292047612771727477091983424480083142240450783360129530609641148164782955007355683776456891706538697450855424826382948863031853037963207276376917317424969868476706878142645613857122734866635554838564401396442241254695059220971042830683173298777187482402483242100706728099949680223026419628184672469504249640535505524902404270447369039617396907684568894220861347660595863993399959773002713383020324578114547679229270847527032261267123396940230740598284908444197822987942788791163340801328545015823346974984840641603217924307840180719691191833306334819414655806321142653757779536839126955170406785582417913349528844024765029356457258226791638185477444145365630569666654504566614530864441001124176669994211319827328162496045356955668922811596584011189780589085574929578963042665395519807355597531691696331748116059490308632942711132457577379606628292616696252049332929573172536924272789096578188130319655367552230881997487298855779025799058996741382618226086684649386548078708570855100773995568724757517592693121851337044626881877263651338137010733359773173389982078130355953816274213410662819410785263679993438441582639774583312101320538287843893867478167502373162643755443678643753298710135904595316064351968306027472045735620183437577493554427374688053963751654120483051083086345457083106719722997350010153143466601723224582865879525746777006745463549247217207784289448928487086424814353958216697434855074990662149971467411623074398336345582346019142315408357032123459032892558513413955794758416692532396756332574571273046087002925024573950522550042650969486156842284974757571495456488721110784468711946755865896811016159629101943683940230873030393541934122833895749824715835837735334119904284149857961616864066671520726037253406476399394452577865361083010782242227141014003905378258271082678835104288666583932063267834960820258159854911801097229410894588817550828300884322324135930538917031937646497393893555537825744570238279527194305395354855329974809030790303938486545876522409891445498481745354552552469006723870406323828379336581756340952902096610537859940721633079065885882947053141786841942060921511190825730104274265676074357347767939574258468753672130352797171179096480859342389508367235157823853625261553167441079166739468934147565016473699638005891015770750736107845831174803897017887173918903937674892963317253475004525432523309898025655012983287934856222867470225974908550365853742080961871678971298523811308826508726806380951121334029268860255660971636065964081526379837311045789409656660079317643798481126779235352418151124953865724942826059502060801704425618828119969822154520432124384812076991606856187708283053440468089147157455415407767627988135528900529229392439276949058554818889682899868544045055002889974883877582883667426763741774735828105465718380985607457828520469489575553500141818892150878123683672094592321377985894135747449556574011112909302449373674509493736123496976327934253380814624684022477617290964696953789679050416167584221677035894004192388676226680337295775949706137259282662984847453966015266115214266223363585497473315419314332172802170239577481564295701999231534118574327382412619626073476066477611892439151786954278319724841806052088223897587597377923722680541311960352069273674416699315295487826031552363197051368757370258335991035840702033961754564269865545013115156812180803987777350671457514565103961958219272212463042867697957072435527447355933641938039920189977421271386255211905601408437002195887573790598223247100033826564838307624591063288372869341862233442187527881852541019427215655568261462057613660262012006595627812614609520270264993444242608336412445293717292835705442207357481235082078902122329838169300639532089043723206594754019662023349086980313474162967681056044893434248912667527898006576481417086974915591109657806117507524861081260979816290915633220131998298622017624193444279573651864713745760825786721756095432119333482054808676950633267007598385502608605391340282892305135950932796744914312923940140207745039074566839705503264172030651945034267791778591149693374534052283834351326239938091025231812902491617142670642073561445493629565456753598757885363061468526971068605547102565092287172369038152365738149348398389158340612181634837584813638060535496310070876314375780806674796044588850232081242024996020621908720102156369849555033152928056595306119048207852981267692544189494287358277322662386000972631635245774366452575191505461113465297036831595339942518470385626671875720293062664201937993243610118960208447332261460674659351014168490050444171827966130721164780503938152888805750913066325956422217154181890267307472380585855114814448316805473493046397924815566709724557533273612482188817643246495619357408774708729963780103014438372952418441088170142597823389415818130253036860907702267589107837099715955688036790517194134219347182264805178010880094672984569336940246345233687348606916933850507652797422116500157466696306564202108902496656763520246023499153151924273878379871907288679919072397665051646685071651120092551514654711515779099380710330104856328594341308274883519309255268364200027144432419139412832870814355976823605626517999209489461694264555432155152774654453190814917158031570627188941263817957969905149548544220275902517144233531356821250661418947373237178808787332296322625063837765717456269216228139035930896053338696808354129091848391305400402016087961279346624573468732693270623536351046756565401320703764832871398352317848621216034801423706777799074018340171823830363382787839255414393908817057943842407572147196279695089064557183428816324535257049220197917602470514148692043270941766854292573338275311604036675418430385569619076157668821399212391067753271091276603052468863860238280062458160586271475494801103889203944208257403738782168778680135166586187182902664942006469103916634914234680728330865533042934151736649679808171253639634844484532790096138127842240764642875611967284746461920111960941228219122528124581100408202160456953456287001219218080200184574164174308035121241350980986400113100258589553891391454953329537040769701373444108346573603026108447588201447609140132867347178868971332700406165202253350309826083598112133699378651756982202168731419165279040729519510011195461458159301913707348946892560862554416541259157212482423650187299892293777925631927055164949533151035676469355766104999819812387322121015083084770474391340994000623765346545086616846204731915856115076375909635042510308755735369822730504857459305515494189246374562956144659597417887353997620088887922834179899344281334073580374588303288000562211320428719335523305032818935085405524592777721579544750578046900066963843703658357708194744576699277453860046900078050829242555571061794969440636829984716412035178822425721854031694223097695451485847297034420490733869861725444712491412776366503523439780553824361047563380747941283625817015906339893805594324782616468403095523515574370699664566391394244592421823083232154917651940583050819600022102148644512621740761599418747164132393894716255486331574361183954468805167412850832676349569023817229941802701548460203205933321987779122132477215670800740840017487839559982215261088319776300067757439829820820200631316475217058638895442559062957289432328145080482749080450091036261687906047008530870952698864684406903573686152034108912907805916158137046165965079855723503171847320759089914731636666101794311014739659309019666219983824684247223056613902298093593838169426169903644344519289333660325582785890185554621729567695692935717510656773631155343259679465827104881406926094620090670466415038667040484248239075166324596039205387208205300790537401978751097475971190817541929033401990484427201145888424332471764065766140310358976154115531166750752196493601402867795687554776462959689786451385122715238848111829329403335563980215143361114197146369192515143174155470567189735261983909629244646987352997491979183198072932347506336151037148601421597332464718992484856651763530323272186305072297354164546870539007927114278896563834308299064706639903226879106937964521414560495882687895137732010483863467976417755570165516308862455543319785849600899567773249870614631376787473389461534065993534186518194469472524897786189663844599956328804864684711861813030708383663822887798634409161063179251164231625135051231869448782948826252235480018389795555547191903414465338950385086914439230371275133211122722623083048790118828656020804139267935284927795448572386900929041360211001600673348191657096079812843808829236487110922260461959074604111777359862487079527987742858396269152020286730571754073793152360642020838789724284404694489853574952844222386923791795500384165733160446593000581083565709766147592191998098382440632440928162071110279925060388535321028415214544876389231292857947243540479290877979692727532150037802533707566219123907580531449336526207002824051992723804827769382117206460862637125566754531894889781215987849217126027572959475338881896479559697183085172784348393034040970716326480295773554503183569332858979651258516823055940592688107827338717100819654896047490719989505413592253375807573202805292584856225533533362139480720858512217254081059391828512730693953262461592072875279387967445752907197919854220886904667939017192231718838307058082096402855964562577226658729801995622894491654012826515257628644140062559616012489286779209598886935886958840711083701833189187737801241606147218550305074013427745033465999538971560192071197243994667448223391768880737228450252706929434626328779770876781981228410245484948238134907680821425678768734182044298323110287638513579246478673001547159989929196923817988137854810631166750580379441276678546426898219498313216307560683202842832033679237246091874032240654020750320496005707059388158394770870283279048390336612634217129273463823045709138625755878352414186276081764941431224899459103529749532818878843195625397168748045529793778416455238465179270220411696956855875345353597266932264693186238009154986178466200842290704040580586292076515297686425247320683436792342471187543274920054391823429665853587771884054542513818036726602158361153137911863200340281056941549199505295591805398802171145026505655476551480448424655679429808479041164704302466101809338854045276897273975830756544253920892695231293419957337467352976513933586108864524858604856136494542138311916910404446865562138418369020119084203908262338606604449530200112054554119958163294996977325292495905043601638359929276581934724591832782064303221715382861601925440134094591231881966450283321677710390816319287740845984332008851820254985781759914007417195768142556109475188279868786526503184163630770907860414616120112224062636971623070529116751519674164283593601118141996532022008824885889309519256839796020025438415323837414817572418774449260463986122675796255284131338076024062703958384635226218982725838633255380427579560544907989656130612638822474877038501137572153776292733235314512592481499750902132860182692305757327744985908299853127919615331759558600089551774428396520200754449721928080915113373089549977799475630469048360837539265673526691984384647219899631122747393409494597113291959914217889703870803256825932143022215330264395922266040337838447616678260562582966827394797365236402115377465938621730236402646199791099114258404818935302731345495170279213449361176532474467314923209050041983143196523612815692418028938813304330026985945735527130949754646212410075330665810088840090891201814757974271480089294689169864254335467692468071938085937601922203700215536826214794150909617307987285802155052723416116533463483563213103728138972369559886188944667287379776496912917680826986622064890787584061132983824268873788687358284957754448688151808361034895715534290121957918843182368231559644779012136264048773954049272264359655762358809492516000131613139322402474288783514989765977146125114856473547822356113345663108103492218573225499598490277433587326138179911255850340150932681104532421528744566952992342402987082586333503350318298961941761115495470925944560135553226263801757338835985484481759935100388656367630416164633008430146671375129045998712313929602317786930979703030500941876342157785967239730036723499583061720352579717357188348699480986382817164987299184953008578655705709538441706323215483795487311135885267485898021436669617248749870199802252805134980813093928491963618381223832556462917979892209860807262328035059545873717565226409163592610089248749243923892716769253847053299632852202575003379466656676151189652299333957265082173287473551002716233555100516951155282164285675995352308629303391028764883226273489361701116575875872119400926885247348842968939282859925506249813780909959071338911484705334183318710226323994100489222603513133126833669144813419442512079087938727446644879430403693191466196463220811241860949566109939885954640279613809983176114721275224916817668811366877053100389453294558842183170176775346119316824333017679391907699031750805058390872569677977133556538547619137340986636311384673946888694154043457084607597058776687752535025552159792468307408603939278995532914496419078626126711885850157450489855228843108851431595612655209995339656373298041782058744790726414400880185490246561387191854730016328381114567187882695837116049119044047872212161752012334242420574866607952183745058569687770453277621658924013600886542485925818797287752900819723994968219414365711235812308749635864883716243517704463093645249048304472667164841372873293076742802145307882884388049797778660555985519678115749449076370188059947989001868983150240580434361085746288936339706622185376858181958928153144336847486102718953546206569898428109564750227430988724567909569082918751411890364093095862294855478988676969223899306648053936778576047062570177469295557578148065545903785508376153408518908164351369264391550908060625538908268232072124720432964269743112656739706623318198756212198461594885297381165555013893209317318850857585890794891701755023017822171474492963728866157282204639001131802031535075468699857898299661738419846186033184714350242830173983960081725529241953880818178430436743311793816055974987333498475080349252866349965589852591855631739533770646546247130359329912349819853869176283630187365313168397152136268480489314559172239366907476529128739126310747135018397765707723181303344788202301090734855625127902036936425291889415024407600585195800673091917853647139435885432831603408364865002638834303169966304187037992671264295913362997473156025164863143568476177919349770926331598570999502359756522614269231434943180550001234985502266405256013391351842271357889695896043857286821542193041582676839226975722609635175666171886637636003509926497002266805642254860902257874641756007635221338098821082013880553159647448043597081180284648962556268131093178171794241161878752228867429409621674303332281076663182214051654203066720290647728503439048743161851240096035235340519798807743854240699799832868218694678478795008674855119422386022599246694582859244095823523116063285175166441520143163986238298419251839712162402941423480788885321473670106326543268989061420279878082768383901876744927683772974608463139479926594862995100145619907413237053880442469111184416915225353084374678594662870731422407999296883797813051734432083802149483233452248673527379313917260991493407952842421950128876001634936207882359031164801204517406937017240387664945313698990427593944577247844857689915218957346159360232831128478435207290911942629174985667727124880851733947073498943056951525203521880303631462592209895303487749872482338262033397461439680887107461245388408767957916224079442704505184705678116793832972874108493556143383228150436171039655544145729409553126407535663714911889086170894935713981365261228698634269885383058761188796088797956805431748675293864185135802562550473830278713034075808294720474879594441845125826887758818522552948084503894940024721356820716479485898988644893770790244007881555959186886724856991278321966730118174602760295270941900884582554069494212952458069504914546380139319010944860752125514165275859986605982681060991749468488638970334809970899013513691776798294239637932993158775185078014019472769582965186441357180587779393890260653172542589624979425018095825354037292811992077627332724287720502916463504832268318703951173312020797705611693916318772708444551447216448195274933162997131324843676333451478600472585740154582493684423955300900973989960613701812926809180634472743509714460381247992251209845706632386438938001127052885900395533542365891134927911756278958105966909746374110104565489335899878976128986905845258473193422966573519907765700108696616299044903174885212464436065553256202292123162290827453446495971098073182081107774403556221871999375149157222703581166498343931940438196459850918178239401036935651162563917991619306428195674525149685010188705378191240502424324527975587258390493682315849810320423111723451384761608582388173220150732086803666831112434232508873439712987037726712917030685627730903390799558081383264417976300892012845801005117928889590356428462911509304195636818490137292773983179492535309896856553207517436473066795133653242771182236053177177746694146141995414242553559926114944420328652918074956464062115449458814941520991016594711665784117022173549095056386675528729064853988928747670593361868149283292940953538712357758830675942587333709906197687750881980330315224884883074991895832893636573007490947873414721691984883910779977248065330137498658071322453268158424778973263009087278204202027158141693367323154530139349787179045145980233782335168354449948711490879182018204405656943938359630304357364979264280682396797442821078923875939207121497585790268549453846422968758961825823157001087928092863494074535960358389340207542200676703888674253647265498840400071436265499115001803569107314146636746695374307678117331169500691534966763366691289071931318618917833712261167580136014818472592685037260652398511762489104608925101885520854134200614472584852478091475466794431655679978795323578203384232065919974080647704385848779512995448678262257770648018738592465875926519319383529973202493886689041439349617816758171583541090357493420426243627889721922667504145186972416184102039788138622671202562830996289475767633541258015090893100152751722966042999604189806283940240010997563156125608286815321051378197005740061810812761304705235759701277007015730699132557991826826240915789611190503092245138561630329799907956917370806459103406110919813391909982928016799186091527362422037396595769561356623231297032543286568210199652178720003091674770807974532053949355933554584243991240321592663309736757257540849584226184740545969459324535176880078473190631574110131069811048253740838683244508892540470381662394050243078819237106781938263686492209654740437813119017519608886604529530658637973521235151913655759102634110865866764077582055709394234916152576682547587735269815350842371260558664335784572537712423334578888602809218017275702599670093923281618008992242011615557512007409188931798053452624510468258962675830601783811701620066939919178861113969346203898912683985118347247755461838400909735430375572590522458301001348484670380812145178144067318898160388663006222260694924657932600076643986625593849589614944311480269360662327244536441339787384408228877309425282225904476971061863852888650328238932409096189229679130760238212106132765365864869939166571129565073404385169250096488891222499750597174777165633212755018307889369651513124252456667152680308714667409795598864086375008223790657974183123934590830439662278409598867423901405703043908163382607639829303415945913667181214303837537266279801608755819676372151098564841409898049286173387345751110766571604739241855669229038756475440041524467547242322052080593625508292303098824302708802512868359832761405875705249110146797418642069379436718397189022893783541701272043399980118017864454252395508097915595839974699205092098738414181972488867191376818369472205807802935310246417900531027884313544692869282353771598882734893916981949890303333222140788619654248972247330384189466893772740489826338411139674380488999884528456668683551771766406131360494063530701794422218886156754237302145560921535990673654414309639927993111511500576346882533494590113609838456423794014467292508238256370385663765071405733928337304858264058525849555612664063372106354684614869795919782742306435272588880618492086788142899265030785829881781520579547061111171918995677185801285610686099521365573972036811857473266600653053583157549688594562356705877006002936175599825257354119204140036658746849437029025122096603026315910390896882554102358471468407443529126745888349660378714520475937882127236762796579004025391499504875510522416943415580164585939625652210724427280384306474791128330472126183546648260740998880981839447960029692211615819512337548540575599328806493040512870041253181249297903659968099125843226914355951067035839500908751760272950604510865288750021600800200126467003189080542154196060314328894734345653425435715555620699382203611911655407961085788344810454558641384012086218719071915491007357838646776284159794832823464202072294645569507927502522936736833250975510061219444215536781239807938489181205826122441205296069269232996560498209210833277545711753387085262357282915691389950301489350054187470002665316018580740098287799047446475727798467621592804570029294718217949351524124520488528690132008157858517933114377939385914328174533873696265039743318146241013812380942268671230614429289945645537132567951675483587873119026975449301703255100978290620942173925946824623553919780418008788575459578084076217520753336531347357767131569270576780861935584777961945991226464732399989869231386452572571530570129307906641528491325592999308328349677148521050461127316638214572565503677260713445456107967228296750305334911666367747495362095402857067972672753626733486035416780982350672872727207719955258383027415481245622243830994200839847792527290343859125021085345615785823203282584929923359798954685119850580362503364337365136755473649182627167760407933461195576007369941718751654911834037628489460668558284781123216129419318672039786883673768215475449008874071807755847085230966034740728696671438824782057312191471542778987948202848983573920666514892545776111397762937837423201521688717938848278982620069901455356117094481492326051761727322040893444390003979973336789932857182942736753680176051710517642551982722721871216897428919768030474169826626668785382293423787237772348724031180718949822877498237751698665931883863681938724067083693213060102348765472437551481083429191691038261037197361439806931311957551356687637101828954844250485849287244145836629630964346749038286365647976283346612042122154991465850755432461957243874586242234406275345800721048655057880819703660309274072924270023880744301797778126135111102070735868473588965972014979832833604485724317223655210049053775213800204075402396412635561644308812423202894511663375578196589230523925214803741044396177894077830171447347438447835616302399075748094610874971364122286759424896234386717647686620221762536807400998104864408626854205105390127833072304842910312699568473338289102496173593601294035744047726518365078602146870197718207437222334133175724395334495784074973685936472152470332933741788440005427526330625135598426163322649739432826804950418522627820785914719701607233859797998009009722772087228035440241927165114261438307527109199782298493919632392043140191909392512747426930346777469574178012418029842816402567965148466354753885919253998575085045278790517490065638975549426332198277979408350477101105966030181275431271452483213801559892671091653871726146430486312819567793417205669953085954071108763808136098723631704999460159002403022151205348921319705803918436410031162033967788446639434917787397339642849468329868216498377394696557565199848677355526402790322989933863143662477085826701283584617200428352750139742216542931407294957885667228438200912843692232626349990900709072258259988084313576997578924694110195423697522188439388481011730866044269435036771768866535776815521592901675522969634198984544705384723547558137324130489313662814138305985296932776303524429706010322034311903712113373218560563330814583317838577906437003778002152337789411917283305629565923146424759632851482321285132125649584707684604190160026043272181298059556745925638160313187346733539276233001202289719544545724425771363397060623105685940367036700753884704124937310929310136296778076177728104776271232004921820153017023152166365161044886296412561036159438774754161611192454520864975435079753409602747171583651252709886114917498158756308293709813233102247177836014162453369703173657284428428467304841950494356948614019843858720561760751341851554169908992185813769648105585523614099146556154660908871094210976188657722296874599665832645922684804047645850934815210751856754482934068608286353675693394666376531537767777605108799584217815235179950469908822605966791400094859003084924590036276686779930458471710384842355335590350124550398887143283896769665146975745973342297000643230502460431850281734499769613683249015494344315714689273736787904087151108056467164685197315763823338024935402746590093749811771521282439451161914847305851050271152994056900651561405484179639931586280023680605123661059108119007483762068909964742851701160424840091535104662068700585228598591160720272879042416964299129873691588065812546092450589458984428978613506144506198302909665743901596721228689326809700517173063935042584252225931375020545113570628010852422779065686970404286387039288309939433065536039543519783530635216297248018558386287857476785989296524242741330885693914959558470377368052389908040730392750889325528239110059356784192255594335059198778103199091688227468670430102842567776190389687424156124992179844593820666145314917613220434196874158189411862068259835125910636634533162063724584257779960468733433774774760210637615584731905416068965213790591856250255688748963714401632920711104007501043080872035380889788687956774563590108381386881191971794898964424189091989136872344268601865729015557633969730315542680806311787202410584395286337731938749318595520304528813394638743171149929703608222475067911799975896895637191413260126058890414594732156752502001169767407851018171623632036148344260365180206525468143640856265384541070226578315291152178056710658233370502249790642273323595738800850638205835582099058380897959983915701534478743403204215738881567196408617284426148205485577350139785022375291424941135441950381965658843729565059423386585511529207358244171478401017017450211391411443537683521901358629077898386887462583537867818416308485244479027899918159981802313090859978761465663694448806483519163211958688780995224058271193162208707940519830731931146163189425842259150556248620475300315380433949724886456733215363347360190072196959981229359313078521590300880039464483576824601659244007203693512537202198262346415636591386815707534795325298993336152080961043766680821594559397792053383422026544271800402896478297191777983875950997686940515279853940645359171480240731011513929596125367037587307189311222506618432307015503912389825426567952800310663549813921984356093523760930502087642649887455625061763690565269019949154697031254634333623220922909995141448609514314244010415846940378156801895015100733741861168109943268747877842342878519791834977822058762769824691464067048232436115363797144973884334236449295426135417634300689460025987707325041235608914821634778630977126478979872622457987873779652095347987340616519109664735190964513098024114978973893222402111839495601194831119393742356898129869389888429042186007034545974716649610604447484792664532417281821026948617950891117742441711567622184818978100571809827935892146753653938678611215054759870871199298611448192496481676540229109452860823824490608827505665614122614488524064337350053922805194312079987743648296866387833301810477150631150650287369191158847668757073870267039293593506178044649177854147739387710870780372632807047986978537495371466614588040173788605576620476278778405682650074449377827847884030348949395931228935357459823627310667200943540892661774890333177482494459673437438813345611254218519018481508806353207589723342567359206406214519130117572092455133731085074127994264234611411647475385291338708993252260537762154888901678220839581883674183391733527547623490183084641175375463699021718013615735068355402703222205200771276448489149450442590665134763061273781033212722122445426635155094985118775919745994403370778534335839898840632092975055112283267933545883654514318726826528468498241970154471562588378308643826810666334741964432360525242493221067018846088793211916964959704788285025946653888001870959583415849771390928446443786203250997852869999173178133338638534291348355990321777129168342571877903990919613162347414760186985180363110463133713677784974752768365005492890579784288847178651686123428566269547244636182120553749177522875759335949476248004984644987033549488982319383722931947467423892529437923289200709046034561998382937038645547985734512043402197634667707468883335244676476468984924546025073928168890385387481456362192559822086525016832573096908216478681971889635166577321012780695306381130328463079917063868817462231763786046374335094340015762199736556296365764526910409551215829732467425905205042167360864922981230241191471055801145198149912999477195204641911682243207438828646198949273262495651329812307669700794506050321520991820032642415218377584483291371056163184778284309455577076328404964464419417406845184228183078559470140694140544618181494067445906368259865322737981525555933270964715952774767223420814501269993436905059052201669613498325002114581442887603245770850437583796732767124816020093187396240892836474464173204184947091763335678782997034257705759276715069489159521484318392967543253151972663236545132987262548628402331020436665495378528578695208966090221959030920569656207027547113649421891380723128780838823965016491383293808933116498019941250840081961187721641592970075610716779276800738415118943113625991084162837561230739754556038830075300502450894528867120299729895594565913450801911045488875213981610834033104559209440099307772016838894632116223588482637535659201828292657511644886889286480110478018084820175754184355877633840905291332326303028833640318928346280539978591970957639794545849782836110689920550789053651249204270425279561056671102167118191544465413489089417696967065076127012211163563744605418578044061925536997965132059186143130217535826318096418140659851221103294691532314256918197899250905695287971483444776300307904865706033074526024868544186140167685500332418524761169829068420865605340139388479236597283609342747859400322410542737557214050366645343814559800028478590448922418382066266238616880040431020715504425740567561623813946894089483132194251102100398226966736759453035174825498280046491759374411370870444172502270124724883699052263658643884062733664233170632646736075507936539725623315944190662099835738050998778872619004976577021232761862980551116714264761831205473292181173170504376724064986347304155075421220746233769822229799637142786610832954414995794334850882480163162446397882938650452321190161627609694591517534654937062838527359834493280987707396059827338769957573889649430156890953960626753781960203115392978819287119825631646142495844810191130656375275825905663872632455117197509492631331505462023127847152334107695099133613067713759482377252581150077842150054805824903328305527859227437008426412523827554760966758369004379967675776401756706938313329595983042412691705425249389082656521125394147118784954470176694464320796184076063142460005174460953832688657858567526983302274792439947227287569592557694652310413439206435102061073352975509258182572223536800716393822914416570104172390180685715227069293919907421816497942573048895221024802914736926216256957408283606947862878890964405135084626776410040243362924906508351630977151911802692141601686598358191307519364550983075439180259893181206178561349477070454594563758332241724166699822587798526941541939219124182899739562793966974725315732073494973764186808597231835666787337823075984704373730012779377242987861599861473580066184377446678524129638883248330039192127924638705004889050607760268859918155238432710348072113023379328911418617215255879503772850048927060573185417833432874635125951856695365392065437744363941277214377726268369489104209836876663350992986611571200408168323299791010982801538006945027907244802154324289636314176038596342635169054782108156834737591962249879068774137546680225493204247135891659041945530541499458109479903611360796176475479116628105097894657037332379679384932233999486121248415409474461250157299106191916121051310425990390330177761209538601263911698704090383207880977240484243995018183829002395936114016518200372998260035196282320974347668286319978682659828517182362100527835904410386922184628663055500455673257803168791861402577782976942018784996107599494417605764931014816309639057381901137447286219889642075125966560562131770373854161878420900095605570380027854246640586348215176442684456302483074634195805312492247707043230059287357876946612624266489271453463369647419853708994908231300838616812864747697748278796135017156024999494042823005769272909424598843964757130393888654217962445134179802131156830954640613838838896857159948938005728898439961164869102054217431035915570023063884692588487581129478075101577794827579583459215508861382065232522627009611341559398834888398619289286593376958607795096713962809564995297180821515306001218431855616769283613847617562799094275507812550015600994848456795732368864981651378151243364122069617345159424566491544119330307140124122296999357729047778733187620109002373961024186749110470138920064486358912999704896820894946969159931271260286526644802767848825238781007609114504504669998440985555607989384842020660845090886267043207182244962342457721236803974188661356304066770551570771249232337233961956783688336897281728205816716270242603544345032271014677171688735113088190383681411611516332781934930981808825526871313275373178111425333551786528431243611861425053028696844528371076596616181670135208007831614542281247235480918364432573335456379400042854878898055902846545296859238817847141393169980447624384127974283110390316051386150799755925372932414515329786601511317497895978832132209163347213698244138038951078151302439212567395562253517284392695045992747314136323544745269310220556345655981870015825854602180620875235498396830291073823009266764877189506784939327730388285519286921380506358452449125735283643081323858302249527254917454962911436968999262647377888010263421118371267689560844174568223142354749736312356420005682947303987207064742388041947267424906097376288628377434747827494212091710373348847147558932023305015930615711201729598816921153612500604038030572929662077438928401083349839026229579418198754649517608155697652235672212576996170128149018111657577785503408847772832740943300681809621141767002666137942108829510406849518254411242235397387188190694461257490319078448489358684671916581855460059859702837001591431249101350644930422641838961309330832963066961014193395735111709519572365870857441862003420091089028110503854766790867351127766022109919846284138084600549788445200702842279359946040158927503146737696590025537394527811481558954849720014661614733545492736750742964713106851406521204982578144959761882533969799001836561535783582802231046527726835345445429292548490973462395321833284359349510006024590182556191659044324960105103204915451037959217053332660199413929765782370320979647683110626412464188295181816934411137228214975818095186711735289172736732535054415751557546546264623398485372091166214130538241980026995484278839743358665787823481716297291333568416524447939766442357968187333847015098014122752666908422720984671453109362906984225645152737954537610520900422944317536479433023965979389190426885879176444571874793039192610034217081318391180621187360349275035013758516397310668370757241036309463628549983009614924422745575275653982833719177180622007250342033156739790666767888652055337002221634184324462986221797077697305903795977635447135651599395175289006316208273890073104223888348950716129622002982539541166356221492170336337503309464194728827543427077619633905905690810181043163454825895811580560101343061585113653262157843213771376033655002004746866126920017455395589483436617337340140339220278967042764310339360281557844662915647441509803845020619959162778180302256111201409089050092101594450955421684541177602617075040657026528588772443799564173864593184931796474106696330048462428230998457159123021154212392644193007413166693000185378473571082874584277086045370133080591438131476338082757691822475357467373507393733689327644690770008699867401426118971040504482840043864822074825577627579717886988670753563036500732002205315504840808171966224735735219808369049808351987691466480216480011770074697289320380830379472032312328624543285562760854041382668117666017968529712328989118358036460138902878959547610157900418072622339467915617298734287847908316967087005496316475769634194094037540849510261371016086679188845135592292391739525394799668263694839175750393702710836473385205343853448970975972341455834588973951243435703505818424839514346213050836300630120332107467029527885155214184340886399745010281880516925876801337160073098473068819500183390282405904024465531745752731548758828819370251592773774210416898127308651024909759572212289681821609593667826144031782371247962116654493897609982264289227435799545955644126186351082496685311728679330373099751023783777273673980106641424726259527838709577501148726475002949020191309595281296067621402277856984560588810105967788953551687406439358473276878481786234659835679865892155581044827839028801669827145637253965563680452989303472058731143790958078722869262364549844736239909400478695047945118725948071289584980361130601909578277567428627733031567317050941139367076201423458429060846669187072685725338229234795331928949455974189659667271216148056560994754420451931398911851834108840771480462892455019940176976601002040478948800636607811762855309605277898546324539527811741869070663907299329522319107146553834169499987292357335771097824886915784772624052862873875658461307081313126754563506097480965287010541691966783652154922945763549304649784542590910389076330784750505404565762038604804118317224295912267786266087058235053499352666267043113165757283529308902816732954522923295983314127569897698495980875710791376368272897308413601923470393789468894751427718361746338799121354494642975510827111186319312447310411393090301610275270801168712160378393450683535035608649675319178818602650530028820414639499356744382871088082395937028120738975901092126946132526227376934097201936988386829221866919908069641378338716993542168475839619900541403618020863984000860889910056361829434366097813671825266002110241222223130772022268061218504360167170404785766913668742719115859363257592729702211403021965468122223747211022807251513284678819018851599510153487117309467388843793533079365474957629442162797300742950392161336802428805837464768757107995616412931204589343203129630063941335861211875746466875048823951253854683546846171015697786895477730230137712222743042206469269257805302647661058012427135810322093125612724892408124451097884888981082122374061418413860494573869091530955286771440583944719415812100373762533388554217017749063128451209969565583968496384782801693750929864918013910863402296559961454402459678465344128922653097067298813236588436461360323836981129365370195995456470852035552114470191422983656408811380902008144046024948893972812934511327937640368234841332029288635312965501791579083557955603057534084066564318140333698728635553037250095331430875820113344773392535978750042542137057756729258031538008118072338987110419096526911519200924106034739220047035258812625131785739770552403879100430052282423373197478778277386375937105439578988762849512396371249846079093502813228213088217806141302511260649716750801256063373131743540925990312170890611185124654396897507471116318571527427864554583722978349021073737522734247590262561779800493052755553777153914157084818175866566549524937609330205840823011141128575590325984223113694440881242296583305988985754311325520432753204455172206014347004456616939666155613737843545283507114253942203092710753517377304703500477269839294030545968846855638737877317236128696213483269775402962278186907433055864908255198136032535331555269986232868767406196746842116164409280088975335710543981039450734545208418099988144321365111753114458490373155629763157667580638804235171184672759739593355272484819969430816709984952415756934964849781506434798376235027707597488350726241438461989810186277483751385813157095575995294392975605873954041488702203826905045364374289832974734930586259990999253846831262482553827755937349608199849418067203034148860821778287947308156875534299672753726301492457879102201911563959327791205466836983428301007396774132879846271550230091020918338928010875285274631644124071945357923015959930137966893093667344594109708972344260132978332164543458797927429350095783343611650351554055042546533196113900211755410548415665272589043385627851177153593541422081790223711318216885989292050094832175102221962044970105013749335290065851843373096440451146781396172755734832338674907541331804120287328317659643873819291252826188220460388313818063932015154401294763352916061043624466794574970487268525600482161930649412662267620402439066774680990364288720561433030869342725709580865610107490462433847863939899986382448174772865387663992484437524811017565675931823707736764097685572012354433597403037726973313415130589813387328233810946675828901358154361056750195458015798150811376693981862687138750695749319632025601998922427813886864095874509257345888852791089782372278506469056593518379973238776234802831618937868421656859715902032200910703167467893120490898964421194612622679819060195712999092632772860083547566063375713409052689249322579596737564479691293946430139084629195262406286222185596752989375087686966565425010354869448109199266282172245093170840162102867460370777891817096327301760905624815641016464528094988649397378145031977757970813087032078347460647048858311185150740261934719865838422233405949566225025343621025684825438701555480437494539761596249897618456485492858804850608766851651458880630069680951300595868999167648464208433265341587475164488069581190729714861122044658015158560460924854010108512496464774616455057272969361225113145855750511502779722067546948941605000211479256590871492677872000859268161700878448012071702881830806431289761407836582062186509011724423100860572050355974476856781186808125815599340771426647440947784754446926857497179770678382557281101693361554613763572361065448186598000694042998678087917831094925635008361325460643558216359016250296761578196775390189113399506364912813304816587848221232578362085718042728719828554083421887260299935869920437441400092914395303672475438505257627850225382970172310235247096568829653090479964203191487403535495330915525651660498614222692436918128535049588518476560502418773314267172224488702144782771716773634043648705466152718304035953933942979408169011454750068661093954094450432594680282282356984050693794715500378432675377136109404530878518226567222355827486104435471690951350819365976683682263293340798676760455969934587407726621841876665997612236372073197774467361822662001243972443531625401606823869793308580367437540533572398219169216770364263091317896654585292655110808763054416113777989515853277677884052331736689530253188926853920765475282830775931987261164390800117956833529867682459082386772267361420842360418738487093235714285585076202263964445512384437087781439282658187247186034706613988963252368070217776985419192771069055528160861933311272196915943312253054113850014017030477026075523285824610932093316513669306392667515349865476396773778973738485331131660826823821763027377664537158301224970189692722154361768174748758450660819863192934577108225123505220528920752512861394778332999066777975752634211638267205050709593835815157659314189615178907812799620531828732361778904361232644910808047558815988442255542837690920061911931602976963309614113176039976283783247121887251869939998989528411763298467418560623002626291730477643450634081650983511123855155889189858882884489109475975684752567872464466155686503618972865990416467639231785360625907299761382544562896667250813832976065225784882322188166437843163173995961846711704999510932105744826655755632070489483839136472727987445924384175408164341674239798894238018584666295665539651791178217112588020363248273384899754204400316664101809791829273183986131958652847822452424621371707483796081895813170345405676536602000566118863786643447420023169732063654454706771575218589440966092404996871084852021509008050615224692755139047662244536978201790582110435874161820062600776739522019365052127982308893709355748476867337660510527927486687916999972385782245250665654902722913521362693220923487274357926313041849732924214014771156497215468411637151367530530914268256597444727801907181985210972233455511900972902975679900829342946000630228256132099038808955824793516586346273495432728312026250234084284501691029881409006690347403163530525438698429248096724704914192230070428541842305877421763923685763180856644247532510087465729034385219224083335531526543402221894165617700079791292353825128212601190138493621090616021958937656119731750185681949437395109383874332635090712134952129875526903729441889001781612844656823330063913640351602227094123229852685497833951000192737101426547875866862669586530508462753162850120334390544208610209028018611722704302346269447965056555629635124662708451369661034083103223369457638468823502271366048911796048106990296328044569692725452215781758454882578169058894543385394015118435462567242555764854593055455798496277222325217377387873894760828869093025583520600505950202437620532403728667613554343524372275780590562065614586157871908826370015177888578800357777661323392245237197449618332848681989072679617143644471854534679078158158976815764161673164998110959459323531460465583622087180965873122202209041426195340200984749696607299418215543542331999594413700714736456724863479583955624592608150193800989664075685748074860639201931322743428587938250692567037708681517786336725753488400218552834501992328612500787768760936579100729578384030483648903583104297915919602962281890229110403601479288682173512457447967397815916499965037364356583349724420707207452968529371144623132571018621380153644649674398582121567682473348316542743037246897938800841709414592129058685284390259165041006660791038217094809553778381874654793649983859097146168289775785920711692461134235982785782238486111336365466786446065874081551629049944077774282182434194899373470334716751479546468067090199188323734873526089607340076804238690259541003099161786491232105098353799917876084304616103379823301768518513339343632207872243726708818494811148930080659883539372830686396990115413439807290990723530695030090363319852217615791483942217142249464825933786649884839984047747702093851256314936155611181584847915711315809649010254479141578664664197698077965354377481106395685538416413712191583271239858552518848240312502099735126652637113242179964972961399580550967889795229215086165105197855858290845214222494580184658701539177753805600462081519362639333564400866359413825249776959592217041248351793660406586304331309134238243605587100316804067551160738037826181732838054492941513946710240594687737104569882257374170888179804567852574327420497701556615200372072325823532621639910631054081032526606357297666396629615518157944148807357052808729352492144676604314663014974925673968241755922627160439233048645214470753148499427928263367704703063900013912115792812252459515527147828529167674150717034089778804654284542758951465492817029772243902825401378727841298418548496972955021946793223010213625197987847743553320678290123227429200864578040132587787922358695201048068753925662136588592270235386057307475590489267251814001329911852769895556449200964590064550475122780561948387604043422601557447493596631512327412743412204613273316377833342759121809885763925109158166185154775317692148630713420987288954147356816204315220363825193512000124620278444894932558881818249725474925470679875654795379268936212351795215466184387589063727546555271150418143949862810566297866906529783584068041364663769093549962537954360302302217595525687666795564021329337485792518431209090317333123115288861814706443115526697972252408777819527890356214251520677622163111956008501914316244436886935587415251163996424173665427250000492927267183169379553927811358905796242956304932581897509161877196073593404023141327040847240602218568037025545319663417918612991796812817665888445460163261518229998370565676398522344928161911611229708145917933142990433551835707025489704693069928217810504788167385795142080657037949447158989595840967459888129769269704845024164629831221136070844988153254920919096566672618901548838338360933551379836866314422514424638915342336312922890012448280313803627672403415815100601463762054486883685978076217644863067198397963726356971674694380362000760824769510693503676704703722033512107738932584162700028013862411706919129871035379394547424351458929746504552355697765912424275444417475631874690099423690539206986213214549294004264419226760804475367935612039152474625406318257403195854798953878829695149268084129562586838040427373605391269961462656334052086691423150047259502919989247517029504012703032676814486727669942720004573306095485441960318050971926457577511755678538432073035287704951083777592812797944654168088585328631354974777036532251747773681898557247231377333630348933269403926385536543961450182372887158950577884106056421173492761492512958545388904140180789951330546099956427162785593546098253014470267135896434967887136457368124521692176934391402264937117164602312043413954987336741506173863325226788086051979971751246358501357773248245277839303558949861445505656793991335651830556538009987044983942982965066282603959971793762915556292970868419077260259556321645915507695020918923403968046511565225204621949289121256513315363499104373522730784976600015726795188057530930943884905577572487146974721685610070286746196011012625417232661241133143160441075506764251527383816072758823104822171556181134810305235064480340994068229032235318819019376031071954618523431116715425195437784456383608089669888924439075163501894114998384596889863290390979460561038072050298096731358200668282023689717373174156670222760976407959378229490289694064521793090252407273767387350309120907382040342481294298187479052246298178954751817773105967174769812908958193523966213151412803333192479553942559760560396607489457472762618923279255093329817680045198250704722620565522439386125254164308431309426173985167721018848722360529111436108880352051424959245510191322787538224810421298591503397890749510684495968160134226319822157108404574937889775136386566716261706866683001625977509522965569710072888694915872973017584274450347248133792588777188511879467563240466532696969193587202815144576268604765480798725309364786808727880002999945948983759167152178040319971237367926039382819300395185786185063539647502460290833295997346842046470123562614118420782002120142930748393260769271594961634146271160157612337761386741581786793507491857340102198690521035993986266454900753675546910764295742951609117804469907721043324283946935553995089683951704547857329545117216811231785948599326102312276531580663965326861778974924058454524843201408002047502220277529529918426210182383349627991822554867513512034350633512892442462495482455655028443782189127928764318440861473568235310581840670627725169517531144381547633196429083529417880578996701670582887084136320392067347642983004716116073952821530056775691995463695999676665139704661178792074907911156520762301327948617933188668560668252555952485779061152591205783752682443868208333700215534469954726235130758851657718620145093396682069059984778607724454487674439187845559629947036446496014093997199888011845918051655560691302411880079739544639583745447843757421768570427801340918134692087935048956342635373759024165295365404666136976339968252802361936156756390618190723054704778725361124846937558607445724184710449499725658184040003937638568869033023606271306346228968461673954744700136100263028305839479875550708711156205666393287740491318290350343312064302269925431532191201311132565801308726721751825406169447482508909817658167356653351775174329179934568204609869296134918390496512168555769125549153003756488273242025930951049524415902510680953420126127808251602120102016923412673787389672623309951962002404959512786891905227266182278326476052186642060305282436357079499285591095325739869660970113246196496122683267411038354374167656606607079328363403087692996467559721215376628980188424231298522268419364823762606935964092730967276471866239287881568922041400431399195548349914361415943308445490479133288392174065570489034876279942753819975316391902639652399042248754217759473360671960947948911911043455229531031231002087010475374270799061799562141881913642223132309754097974387238067468267510366214786934861636961743704152111908199216103224205003119146035124856423616760020148423637054109051156211095153228771005783398037394237236813278621502661857227686140224435922790201402534436343341132647548310204508291280320055676559496538905609312606790832057360428499535757778193472248539200292272584271535278156453868931971773479268186209556322063998581852552830902720228291430979944320479574823175829193002313362009021604445198508704702077398955365755082285940818227054442649371805286630872644487504358196278152326528852436406452958758623266715138273704613307101352911993683759976384658632197227121367491820360261685639445106823412975083463693318916277745335709521238369457830066647651184868958548510573750107522564898962170905086690217314561250693199920128690580374290988768254982033627474726558051667875700124157930285049040877059000462311286856423040804744203745724387251309920996988320349327270035934182634525455735524558785497888542100207499118060232267141211113502808836673554195769603105782969038231246066837326486304532425186762183699307358209445338583808862274710609676543273104379281728461740109198331890518534045291625101498425231334756484280421435278410356275841968255428837878630741632964022289981199704606002956252936652984682186170942377048231911493511550133260263565655484666907855039930062321751585264071471958609994953459574503389728541762460911493334847907530360652514285804971917465919267757305429101776277594399803440816324211755772531008364235141211477329155388761894596237025635470894696399143496780249873330047213632343202486180929764516636994186899343311452856742715178514939661987158874146499935389815240323177565816603919024099420193573659490882462916301142685151246849189038684076743341424146893961854521785138908468912828128475479689402446731680848921447831072645585420069356707277076383825064426489891986044934750693660931884648848161345113896997604250585743048475188444282151866665023422469800834543498661143923158421911963076142829187026251413286373940771936083187913758610977165262826215538685695142525749674250288632949744897794947528706971466250501509899034524401191931097007245007425758500143652418487511859225068530323039321361701187882124308059888907565862942984782123068389213402904730035487438304582743574375765420423987422977578171556432044698273860649380386444633428200126786165317350450118579999038197734111528664214291850509440103238784722480014497183430030624324741191990989084412293365405686659448985994609964930195641092393574119646269882497607807601148313590803801990525095748280295411875571588990539103808502856697633153618035652378855524231948566597835684819417874580080131577283048958399963564179512972786001238412460358804732233795344026803754010849196791359006382440490621394392710157135131070308282434489815405658491339910054641086475440498152340116212498497320891438521536628935649141197444404434641785893658358045720086636859998877326948931071274934754344844462383221617005770860330436913607040756536569070570733348771551504914434609159843148334614844147739376831184076860273340974963364989062769866790839899607080919605337155086637647886570296254654125109825194556053014715278712631029537094704058874705331390123978410967455360598216908036987726425277715595609885691817092017990748783513922504772943075735404132788059771828076364931049546313643603244172920014738757990019311605240887585328283335552405206227723596646134684711526001017397605192087840844318411433848519458926968084859500740121831017902244441177489013164288200842711869233500466193400471127484138534924274329866230876727785383593120029500074718632752017366675218911917543626105998585789865925959642406791556753112042511331527079553122857630663801514188025367597724889656243618288180731529572868557870908845288317658837972102702403916533044815403000449576065857892316243017565621872846931874033520879574612923524073017409076415832307398561296266275087982186314088640375354866517722643230300138479131440813641876074042844478669819245716708175289764829911985803726418561139495116815915721444645723005544389572604460498446797853981675288959044877538244002693148831815891111651261906707419251250791251976637076267505376419121022234714054314190071226094548843638236373984427114791867954547853342202633839347831602854854181479724919686246567460847405528487969148474687738359538843508988562482668414909022181257957078335742323098717583399955123994280557343545246394149366976887317043267740718974232688151022907649071138039954004219443159996003372709343225062301484548329899341950525462458341834965073590010782633362502651962224168768793851878652163891008277119786843554730671337137944337012546205642275700114227583399707200104326374572968882216074333802796262079983982313142977548624769075349556469239360639701672140177534537286376762592121006849241532839304223653784153190557898060237053809356839850661295992138154700558286282479207555959476783285268662251416523113356450597774907212665772651225833880755335828062017741605709207575397954295287060045680471590259006696574386547647965304755448005276000387992167139341345169344102507433631660632977301405302762802437964157120228713791735466663534974882106052341649295031586248159245758288624640108902321676477001907509424408083923813457278350283086959029488383858680365994932076080583000263789283520577423603230987397199542890857842355230608923863998350025039550108958801720356538641715268261663851014562306894754191902721606403479637464576861320432870927706284392368460896902686108712748201200628079349028752594280013369258173033434750102457924835527060875145223103596679206342047267744826595377058835173284938407779279741925022430962511152848415289591202470341010562767774299454966308424184875314670886435365434236786177586518333457695262465869309411501976241311540907959733692331031523508028822229909153026467069864284723129844951668503640957944459503715930231833476048764999417768888706215095703452963796800119695279498391146719560049651793321450900520545940040677815356526468785676712956200363855801967408153713381871723151585577752346212356134701705380599792811860211038615342506371609307586027041046293409544429943493426294237100229775729803117289430007572346518101431836236319257954187899657975421746845814470988901522197703290749985798145251330727659893914240021493865823193634926080538727888522310631859792188511616793431406579231760860065862764144146192741216541610899805277629440123853390087071709271421862977011004282686595672466702935780338848240657820989907536126332246704029993289154014515755144779181192691546609456130825191685111292024054562559538716130512441149241143651308455823432466558897540086554920922977533893694479030830604773138632090255220320251830920740603049174469191570274532033715268992867904074394274415507947407174653605911445562153336831408427737415350376413695433291840410389487954358773343850533508534709121196238415197790145243123377612131857931510214479181970612201341249945214096977036769843348078247127515245652839875779413066874023881176037277740650910210891403184702721281890216647063156803762138202569157600779159078338753428346552356003265948418122571234866047307264692350138925881924701221750006240084083365338125796422055952278736077388688668521313932517774875455691804141809167854979104457169742355640227486236940250038401318724081335064687302811897815259995333190461556147854525317157791634957206979082659060690509555229128285663376814241437120084181468687858435132187058513943079840088828436024248387473392790123272387512465509002533303378331171246708038656993142294609074721001757244932725007840686274435259494789097953006980056173826717299012733047039662711798645950432119749929750582534022570788131226439905807289093589977124889201342667892746300094857465343122661483510040972092736373051651097799173498302723324058968341965713086440636821268112159573266138685589936752467730924901193848323679415902442555867895543462220693060406181710371540095852188623979868485148508114795735208129814610580317817249742400115806554013338271923497773592533383451830446070598425495579705339791660154190919970093134248358086938027022693759657113273145319047258871150716341127605123954813035237385493746888741502679348946280362954381276704836021087016306766680451294899806434649328460193621769172197289603495307059742591425539046564119964431894485108023951570449756936038177908037077568425635732592511583317437929415088264559525733350451782518977923739526288587423751330794743940126070053732516978321833467456880500500324120857433004055166670706284680517097283716133633970729473732059492383295541994667557728041430734715094233365154487803977094584796848862792227851786816747148236285107032266824180893949941025180144940212711314642388851542231864174150879873248466631937913276477496249183481544479332807901805538780804013094071135028092000320607203753706098702332058867495459305017313349652281244827729099840034490500165798460767516161965346325825258794283683164238073895518316582432455991273511094621415779526241774480165788557344210296896622228330146148882163235237280001979637381861308092572513185360615110435584135666113524134201377089468117124173214086571324999674987515965261335576584412304040632195513169555340234637239402815605149435452314763963870242677395350037527523598728932389898942130537119759723251983808952967933910086918104959894229200522239457178141733385515395788501181419290839955393423893783678900550187772296346307009196426713633463786709600897816068393683000362606524944077675612509834732433658965520958563052066696126821170279815518944143658172889307492117966811397173916048021563138232156280383509402995333709730469719781288990258706422316553737208564546256337443013545541994909236799942613433745663518985782420344676542702860704621431876617874383862637482272727184654942876633139700084654622506351698320745341260606721613716174840353085982808285641500553186651994364330923340389325670952603126934392986137920793781213198317293316704997390483657850576963313177683561908301040937220509634529495769883731296541871882150033084268578767281124501983563033825063407431743033183707920235453153611409563613652374262636639763836320156291194474624542563230635237011193419747015462357598703752407183406733531632558758986716219556278288227589617431982544547910735993386675802181704671633992175677746367101474249558208231967279225655698335065720598214991346014186152241548986954175574628461995035833343512564526596664488108809428237076904979689411704201916902630896814125143550813987955696317091902190321427067479222567104667408769908316548599587363062607832719198807909525088911250655843654660609175489177925145589846248881353445235901783502921351775990879966305259449019172461012705025026969560021918974422960543908037285702599217236695573575589044173177068038351654977715322838679410923664329107551943876799450380558728420532581601796474495783812730726917519672811296491335412012570300693898815313384006349942438749240571494849850183516628583298624883889802473539184517978710098897657817767397073252404841039430320996601439044651952966604013549233184074774670297331318874837559491664399198221437227777625427558972735068984369462770412745578546414689405055572639389902978154877794877501542735651684221824929031343825922532106808026866653258906977150479763846044686270941764668948453460912538747154268139415200872163287030867062106112757006084466086849701119333772424394694087130849962391821227545959740855031234798604598245843096575964023968923638654598996269307425955097120439322249294795350011728305710218698343376073415921038874023034106945199391293102788043339259567770501132224715298769297813651871756230547235323817577725918027072268694596618522663163176228687218355562186620746130079973565990067070832817476394492894788647912074663469700195179860703366346723510386543059586671638487824356329641703374519243738961187337418513094988548002495116302314926206756714462959301692307495195517220227153229804012225921924721083146584727467360145171903072121099882593931123783339132827010826977887689182338836462075488032228332341898564873568244227021549423622224788232411919287152985245605943534209271548762304611616276959365560253459389066890864148792801622319592215953224088278601687543216959267492972307250789298023049771607162030862895231871649686675208622766070184701684162969673799917718445691378948053027408525610536325399942276115264504170076140927742494576968240032651946232381610208252825283344155291162171867506711832093662446257134999220002667383410617371884754535342883801885172785261792539096924373266498232000257136632754652673171457892017549083516582642335621524558638334273353586698995953563395898430046254250648740050575553664674337699737111923866150793161427165317631275216786160568239747931435625920445723620844756213873028070200622865711942610151589203082383431912787417997531650296912788999783890358870192652132214739869162505826056478790015011213043466414635369948086289540036350359189345967430188157499250498664973252787294375169492130685215273965471793091360345348745157301268659219811001559820717597564238919172441979410027875656820619660406488029327136073669406656979513283011379917416431899041753304764071745084826153516006957193610164240982192941267325880937971571784190690990842029383190710294952876265567679199010243996058858886792854359709752959649191871187610426087078705300194392336380963926596317628741674142256131087602959465909578401094913226320312585662394792527617311920185275485376814576439675468120977045650086672586776003017530261205433604349414796480845739874132904998239343857966287059192509512227980041255372697007152082248960884039312599613242474484430445823347373867709539419163289463242412161528629147832873174670819681021704754171265147855501141855000587763983292154805537694981711531072866738641227199278482750331215441208000150341086922501854688242744219214249329911538082108101139049458277921730096446545953794460239333909108132619710122418546230436446306968044058018254870777534379555351587049165725331129601449742117593270849610729152962999013670507842760086422097624749130316245894013022510564488004568201718896578477018981196183965791764836234440935152274292230298991555308456763618268092282589402602023604885489734287375226968261852266260817187682295447042226831786568021264152376195276462145449179938660887505004704156335981576502080569635543209725959528203311911682782675309897005814960090024955638963087637896990420340508468413363867928553951504989093362750500016204757857560088639240788490830122716709834027200849225087029391399426329067460004034884994324630712286720555104138970971212153930438794568399951892511482738920721412361025442166215797690361817515151297884084005263322494394755098693709811095484254338179500182900159049284185582124595624498289512113324344289475722344165540127097196891995649793885064392839095854224434052353441335395799680035455683716231960034551832401046950791628138058514774343108346712650033180891207050527818305374475923529507110898246808684609102940698969142823270565794829993635163390212876115576272652073172066414445094377999736932174535865597421516807519045974462202142114520439432018484280318726624938070474347936387375663409475897458242645490213849785122576763656341906918243098254138056077066898360504166601504599872714032579405999096624527848986193541222178730380967208585886797522941735052012868119238400728989513610030053648647490117349757754352735821052893532239984225780302440502973880741913869718382053871006184716870428643950709218923200389914452376127413543525674935838374607758593261037335903668328190339925210739033978602898881470397545642225005381887395039178197903220259324765838915011711213148614485567658323767162007257817157086095187953062951673249268335924874022875219071740509382981750600759424498287896922299290805231652505187951932081215816485667604112973207116442469417181915188978097947344236123559680432663650466152592235921356053549239982890863990244968796676990064239284272973563544187621855477941821181705928671914725693317048493298965917747700869495213842778078298743191237169702454060574047714277985913438165446583202569590337853938740065672563335033812420774442037440689065905344877793392311814220214441885434376225688256236925965758852089834116242394842803920783204805968678121249454460668989450911245099970452959294779841834489915272696237358269517793398641318205328142468148099262619340194991056742540329437529625973410831405017458285153608136708137543301371323034754223929575828441592933340310397930096613194747799929675528576172226739658407550124114693244626834650904354188756722145121045024085224691084143082093612397724903604477808236676806469275327387415271780650714753977238982348735102503128682409228523326503809275131141024412500320753363649151208493192829885321365349912165366000358626073306753191959237623008825294558613574480001588386386434705601385045200102443487303769965221149663434159782347308828500427331770936384867477505427190815388167166897866734047327135301367879894063664728278403685598772665192620431386088046840061530756340920825834641617593053230330619180842646378917477742829611711759934140252302242680507997374009539029738285981429374520366217355540882516229147940651623917407011717221334656053954781516392624521599361551553948865783354779102133027610264266651607515868945638362509524395702202594232045346843054907058912430040806405926857412215204956795621528839777514714695198271781663746272003820169681940500227229127420747065091560951777376251606146526807746565518314546360703848766506007819754284885848769739546693151308988292983711393632802117389377066918867540899934560152240760595559234176391383291146096257246941193519957812191667801600140682541400365135544734499316297359164078199658788893825477065298380684989715640074382043252139282435664164686064293692264272256494554112774550836209459737408053232329860329034529775430037900506321656169782144246889686685046649512846513037217804867511701618540176610324417189081765937822781975210563475714549922547257402927986188477188865250700361088417879289344220563587894620106630765762968588476732476266473523672842972914092633668663859310231077382524166765529922743468912918529638144734343517650895060423227904453851975042265124961874539656300928946346902341876743431172451583236159152081553069823463904070775678638229666178373856003645812264088958206910615616758375972751004895304459334646935315103175634932717677063976966494187695518299175882446511084420496051380170921847676838754647043840090692617445143853158904429087759495179909963693534485084352606206457957807727944725631114773153392550666128156124702410708298168923523140136135945096278167510265043770012304845021402535376582117648803200290230675167985593471356569935853702192098380071128308924023293239790839047146821534503955947032451422914044036664235635644777555357003267014948351084338948979292298775109817223962526439340539860839544717866318451061669553611913889422598194640103182742550997695447739734122956697753332794705208705194469481156809867038058168151525530180640746831089075398142172601312552313819879494871051430739005609594897788477810178929909664017906174947061669597326069417185371315556323395911093737881928802156683447844277412117119620989865819348381696728049289876112136038272204098216290590545579117865920876566151739232227226945630902962842270799508175907176966478433728467134687145760044432889313490274754331827436244251525092175188158556529218735291839670704723926058851840063109062206509373678060984743640742638477151459424667168094921043720131543087268199992628320461770380823564081943972133289148324374464479595114981304127749646574093611340462105161695686268612935822142539849998680970772044737458042856263008595907902062998542378192199164606457434566191081506604917403603702206380851711269454974973688583356284339179146694891951442648743294917671387256481636744296919436320835158711322181759847527524786939639608958404922325551609705394031545569384301343975937907026174201202877261161958867134430143493457884567214277448822912543783313934495612053195307826627706604982229768638548464696383206644431702466680002514318264608586118484255590801463132400136254615548955626396348884298424984527644857576876522068400819977934505125476357935942572376136679798363781584072238365791753915757108811915152168112360749826001306387873895521820988887662464811176603951455735673350039955881645358462899282174333017282547946473470685113977647534337473834908348619918563131761063224385088320218624669975244278943052638543020190345916649832881970484792377319491532107406162289665536070935566998812652258976736482573302883014344985215418711796994981363706262231267491902562100643338775694452212491172000568601056907972545894283247877823630391160199457169930714854346962160439215070955365233051651573189944682005713978210877344023923682790549426022954340079043099875075649885905772408413065911539346547881239979047112262376954276436958683193477899932599663958765524564449558359621787320777913757436563371445893617065113285282036415197607938363206372243569111486974110484573880676155088115924847604353901143173572826348164058066513554907871810697323396985142305986314906282932473697451121534543097280234542390762070653681216653850108294511004498224450719737571065998702988150704516755335298957087096240704194412798955324483147253684063932633155587671970189807476159244729085792584031328952374746329740649074300781033360244441361801165015301470237850379432352858213202459268965715861245584805747360778240120830786710910826569653620893221340055019016378574806412881192824764494188096247530183674817767730064644942646804852487814784291261422867943529248359844913439727533096537203088754088877843661621918525126724310548401530517584303473426469219879082514202972251620146031133042350676835654370589462490709793778965177774031713568236944554708192687886243745408853997874088110176232273954976792865989041644637313703014478446304776663905903535176807306801242759930490718648803163055798237899151841269589194275694431900577786081760965713791025142628403720192291903886179008747047066778893897081635712214209674479584082603156925294610154171282506676456703032683470351713572732355895876555898571091418440413601578853297934212522655892203150455818461882032456102929238276345298279220565947846716896486992393457792005853091720827032620165373938867203745979142539463455462909415253804126569572137351747764625516129106906724832067549535168506111239020395733469929152304094902687085444696810632260876469608495758267007636652584784649071533860214024407539581619229843323269697119069621078557979872460857055953531915875420237177352786996157854799235841787004062819998869749645533110455744322266560317010326663845581885775426940195620025735627428721923346867813166521973780147149745004626798479513004098283033888511885720389798569137331188231550855580611067097043020810952279746959370421889875398238335657597305098432598412945413635104301076150082048122162373877304184288961162172017224726510940870103391747924999554146444902035650275381813741793484353621439446719805852925664824797415587757297402967787131623615899768022622041665643974598153443156462722358833461582862876036722358557215933824049070502215629267424620001852826133342593615821213740970643074452464113436644130817820552382989957374433763051138647188502364911540996207836762704346702141957136213821129172010630233289475785130034060960192001161626080219965726556539375771056437796496641459406580367561444544086091564258400120271025276524474478288939017797167017978897418587097157143978929750538219374937546498112950525447636964746264342011033160334951003810334672767265013352332771450672958334669553552417229570016018549741330714139246948009855952107531861897836511862726412830019421507702575217482315845278874536984272688690911633675732839197558925341150014209577866113425148040323905810123969034592070137673017829251522676300321917968506555647095811212109514775702505867002468409671539508191523379792050468314510589844395341171658938169618559284182272430647897932175954766645597366846529945101516768652768330935442354486256063280688437043140588589418706793594228836032580302433306208054061685068781703830464065699358989508413248861780274957064008463977152590255564796160514923426972290654091823714735256750938876873604919121821140259871593409595435170948981125924697702365433043191249467042242697899005005211443091627685231382154412817119892930112632213251019158630305495956332595811643608233596709542750128663307004850758649048055579408754709816953208142157181486709867804086903212345746827416622072740078242242630513906315014113288148297635346044593656369829396567848827950879948356271490380064624437784996413392013826543606139718778761930225842713009815837135352754236896743724292844893189253739586800712764890041556467592051492976873073790009106540114651967410155071742088118218063877505398325561129035255174858713978614455293359341809719547346085191664530663316294663593524475380657787100859013406263316640943665441933764417373139220346714852803651255737894093987757042825064364385829350403778190738402077243143472808626580171559639953788721718519618588312662100989231029153539961803666625182656117193571745080006803787877560195063832546912293467990941842262514577793871836417332536587140250933063625256420259394820318030743173342088407202747348696651973999557088727522970902296311121400436992202010582578238335865174937263063499207370744344349892731581058404425636814517408237532341099393241434069088640700550533978950450257995104298113810225667828010661823763168955986758827553724841399456427830813257194007799109806967001710363787411129724477288797367195490370770417025631503531389166678524565326626063716767695856104237365693390001993393334251083730506911167727260765276543497177073601076962668491806711480964636842416213620599198205239274424010342690525456213036810467556056731397267233392480263820973874169974529791121229806387932975806861842054117630336114739561869212317327705897097413542225773610461872966295775736659672292499631327232969113827314121756858945259868395208081338889533150293449582169321362828956734102230364781959931736413644458024120064114922955619068808834200018524729301530843441141832488292176882158749993529813908100597545173250657005666816778615477064297808205446249013816266277519054540422308879812812538344137824638193946696035459643988599030544259170481722442825345552544212379320602319960079992748749291256429552556355372417336294856190490079789886504416341266846676590476651579285903079353636261699899038178843417098383695121994681791022165771676914300184618699058119621892509876236433906596074296011038840322036579777562577948541710224432595029700523250225053948389734733884366722643058611969081058321963788609781327955869628057027166074930476947045418406068462083950533657690510070243152159528736875726361296463034074519397468008178413265469585076589633803741415801317074834357602261832817226306120282746584259595395883700308464093713181667484452380187713723432480843135581152438361807349488527537075808237701542210681579222637603707806631991773299630817942143063332153856220434451626150171343034840839103845319068985688440527054561014386685433445654904836795951759947938388567402691230584425531232905826044857771876975911211040598739319292352324264234156822537416542626761787215957648740851836950239046164121112809206382918026700434096503947200520163694193515628108677691257663807765861158074502959865763252298308541475782669946934800542147261342255130643109713334505333067750197295980585725534930547631634678166358030541633807131159586306028522197488094664016508877552922429556522568627801318928484753674127829509042452238710971797236277124360168423599260444595849367580243202891366694060772858595768564086211611799067053439752521017745858548617851536947033892973909273002740641560670123898954759885819420122736578962517477122618212466623593896342368399459673065900789457521265768576045609189303551367890548822205925054846926523350586457341900020924502292007803942573297399020559261882932240522587016474532673540939879511037674808539085299443391027551176045050209426966982216508448240489050813234375881145029251658229116729924720723988445346467641811305751143951734417578865688177232340966257421633453093630060636081048306939391153912261218464949987973321048223153887438271389552769165187150049791739714002916037314641477315409560960703435834364909834750476075157422715673350684346310580678971599083878004128358376281701855618113651012274026327652071268250884170610427829599209884398102533285374395778371481448776204822648360082799366505837050913200982441888792252221538729545347768446212012076488139371161557772388409377613384343163211965281838329470166039443830859516603903355537822455234319390419198822953871584676275863904344580188113353604773437836242416245335558292489036369122603595391652794681742481282456367616620930372117556844170887283781654245920831733698637273039048765514797266276135767345844688103455779965597235465979796558063810075407397035933746684872540929262890195458130221487667673130103186112996917653281570217066890550760352872795563038907197588909427656372472958535869558674884541746405943846410946690530999175030312027447356128253548844224317815434044341420659639988531269264004243082760204789863907675810794526739992409971678133984800291867140822814103414727361650913454289531833130384742614227853933643367623001945736364706737044408514797237731449885807074272892154105539862742452204777356437069767920628443948303363633301285371341767492785505753050592553358035337365633211891253053768303833049399033922667951898122083237145789447449067286867296531938425718665433414624817244221520430401452372323077500874943326232838223593420551041579318379615181432048237093595076303092759884913930117557465401536945650579069409533945512650418842311054954927342379211381028758966171809324273611162113916591457323108705790161642752048334068547269234229656904020972952709280216965183504932217918847348048791461557975030303275246219542032235150833316267858231050807030936977550841119053274376821259834157251304092559388841989775927090893098312369235102531436843933993646597239317095986519669703921705967104863864797673981777983524089087795329714850067158096354421474611228717611203183847011680169573107366046568848857282081702091744443471171132055228126797865162235788990085142016168174522174854276198476690489162679520050807203082716024608626489564146851763209695650711203453470997178246991311894867999228754236941565130956836496912513526646496897694183849119258181532456972796518173810234820385018817247520674021592533178430814460021552686265847166033478495501117764605903570450427914001411188898875883834393810404169869761152421853246149554729438746614719692371766113455475192795934506654513210601196657279198440834862275889783799268166851029727787816381152729707721356071785042032607223642444172648602775407831987832695979389321117449436033787348816866499416962660521896088479912094264065867562526653881414621162898331589958198038900706222676821877601378300300793406843478225911331902968718594233898066284725864722595374811190463026425664360049215830618197221702890025455116351975403419021921808165947705743197652961269185947296731124480174310262247746863880654813824910223313718489743124196330383560839679058492078850890829512120047664818583034590741628383722481188608034085082497343982472843874967663185522441661017543314411101354743267582090273359850098429196984092794664925856536041825928912599363666938226745087105266535953595340423311724478944900884170310211220784714272197718504859468288481826336715155180439172440126405477422273475979520363437898845125313159239733605610114757996324812361565025717098118983014432992905189727837700458471732611066244177497295680056135462568979077203676937304209538866838135104048031835433521584524225429839306287577872553548237158094685760697753132291143437552373703196521855026050130415568637340867225048300871670012775004440943787848368716076711524754545072122037171700604084352721879160098548337727441738693379467269481290467154920502116363837750415132117733461691832817502863631328845260917635344396309861349626140202896392287230499887232649761705691109733999865310302960179722111592434010879631564657364063474516970070693547525886564050093990890952290585166224033440190447622355741959123793405951301690321973092663514662328276116502715690080491285701218630734668546636200781452601017594339221681178323979495242712711152379531661550285969842339485441954401949491029754539819943773335285870258183731916913102038704034185262923578650989227856171084591537634136599162195917819215476448624544793111048449052855697642827148465508327925680310734837151336656192372155986921433506553358516258909492100250556771935518667870380031054894867843001926981094129579470689857774764485208443132301573337626816543701353276471439903296554294912654296885770927479849226605066206221221797064760123045996296990935315877213928575823638178437078141785396841446881367383960349761885960184833703735140022020006064002365503168877208748539490326317460839218955273004638781205394561056970515844821586120146473621936517545249080835778898120998399966764381347641914707291171200826676131492451699599588942166350758676973713808964710053278005001303890593483796280410665349100134495169527688809010409030580043947586183171037176827282805227515986843029137309854746266095809104163538449678627798344390945157704187655262697804416972315085397725587723346257290203288662792205508640946159063108187323626002880739688538890796584977151210718150981882195474102290262758997355645358055024749370156030108693916155208142501664355997380773749416394774757443898302980939070325618929687312446943355966825515232481786681768159509916199545166330601651544476836330611643410094056005845794049438224701749102597911642016866591064001231755476914361827144705991293905284052131350430140532187556821791157180952198623236796444507984673327253326502178951867048367473341700820137130161145041310999492906428717915894764183700045304453681537352418571905257176234443869361771101965831956492779927893666422401028453843088838114645780171616855020617207173546339042596801176978569842042975179883711448839820730491789636875014586472070513994093557025851214770871442304384462859075120931377681150839285850664453166215123533166817968315048228041683397527591154163939681896819189098820213157013872315544701987934414916231134931569931592892895932670290952100469927159280355409053509591631394691442538030661421331923146540248753759796488082015415862410665649616900320815026722600807742405583755823970962017325559155438683307878108749693588458996271457796742853648616720323085060944837507211707506307542492834723171435291322255732470232253382496371459644106329467196033481545971916468123847638240443036717201598169703926510754530930075784425864782927214384475585626233595116186930386873028827146635059288336267845316447479010005926146046044835576808254650688795115666669597261108719938798250706691882133000091518677452598633313043998352761243801606461363239023652292035072721122020273004370117159008757252602530195611874357810584018714556469157185313319924670981232248916542509705248155643185381252311661432531248107463906826696576658476194774542850156752717801977104845385251229017863552867431586463858918511791110458326976036302441634867124296294828078628001073264039348778850663621081741412257013698363279413348072941045955476769002984281067328748952243238104308440807434390234744108895808354809263199932772888573137719068782594831868572516760880698786931990772021076415563675677644204409908470563172450372170869441138218944025052969333714134655093744059359718339523272529652579948220305047458429398993606279914232430447277445758798918410198939331194486233359390073321733930591725203949524346518742247366242570204100609855882853138918882546472385543171137236852102273135092455442109929018412774314014414917173585725523066231266501533994192866143415154597545786852075867218946287632651691525423027672965778495304222873380974699646718715830435817126658990330460266525273815105264429138919047970424666854827137943653989161583950449596463438430627177081975960049955342828857572206627116254584333433399375283970556815651214824170086126813444371828984639337483611766408337864841654293825103097782562155952358492713314821143634393816255475266918648292084787419158378787242673700013911016037147249179885057727421518708147373518628337396117754428218657011968599540194139370022205754299344864496882348953697038535211232578981700861680485148311288429675945703152383769975580089059733881723605486992000834853819782811243287140325668852089165566907540572321219186199479151879759339871925315568965836982603539159160371868418434290626031140860673903151619267530850367253667503368392576555115104285021521020350097163888315459392395496678987258726383754898080095136392436443909341325772885193588952948500776013580229104685383095922313101286705474542819906750039597611150423645273601506876101225828201931798156805550133977144947656482127879211630520400129972918171136345891608736564131276883217773148060350352223938925362038786935699040003158445441007499885036170262334398259084475385448974263984675411138068399541120291728599163160075979464963816275759401775088259866655827498246806602741478355645179343501507034483151044964425687888674594000150727146625368287072746514612249585009980207317741639428180038816754726477426137021822826873731097199621051163036940436524484784587101398924282387518588592747537518475094543908131775680710845773165933254922074819051967376941469561284729971943725522717276889297908678531410263529542413077692151996717794074903784158317272392512340488747077853592868940262173067655936147969210229448230979211531854575584504713831229505246528372775550171179202513504775738323693500139374747052380626067697237398804045142686336655347832337723391154743073436971095036702880825924737872833699657397381669531014072153469866023559635685154804363009204355475710252564250511789427813519655788839917709718825445420329046350774950410119195771968131731749588297989609320025139350022525916131952856235403349715702357303962386223709033633313914461301200836802283492412244385925673632347735377696432993237347813583567881619969110149229305786145662963391559967552187061756908201099054933059753801993630578505255491787076600270631826427764334123710365261177435269545583209642099132183520145730688093888314647125953956183722114656242334829722200434976973690549282120810788546803500814310962301517747875800805204586869392422389830721834165612816012724568135850561615289361562060056730318846678466589416581742873730922612863515565527092771960884357720800048627566752090540097743024496793211098733069318075929535617311285813301898372791786364200495081622502707979064339501295535040514534169978127225551137498805180700446099774435539077596801032475073919686696501379181078499900998128861472040049479051056679064249265781527349970393467661851630813675636174421636805450423662345624642269311730816257549574772218369395555690478835389628269225286457794485753131448159169856569135682630407083917330243460848544659243314196274067777737180244719846220866013901414193822185303369186328676203870537666918331087505394572023760253582866158017351136818519339591824431242911708473217624064777642981127160791985955965015707534517672548057555383610826465360150905654482576697588609214202353250916180682534484457309680517700154165575418666476312665676938347257154288010051296294818678524870868908263480708143481025663927042908739023800899394246629508166693112880117615531744241412220163336716299515639556293743225386948756237616270439860324554937878161098649817384851891488649927858912874711933885307622004426356481255958288335484886956308099425642072755575078542896771902387701933035806489794578232150242234592384752241967132528611798379795177942754778357442409930252210196544955341378513319332995319310921676768219005525645582738542361993509592423653341764411206849545185074332977229826701363788668952596082209582878319946879871282786337186008522799630184682964146370341359155486347824451864811303727562019773901470458727895782127706390758964761046054867218419705393877336151934345491991643100815588272679278090580148999568737019566367654617381979755914177501000498860926992260947151605567339371240164675443194326587472659742610778742592300019143229694621518150615605310161491579797293119192908881496065546096084632987822664486505076503593518910178384632451116842088477467548197970560959272885925668242870466479713699611347955304828558708014510984408260550734658112593531090774095057708208386105137295786943460019649740170386369910917658658060701225038937112528738248831187077005728929463656460704529647902728205611838813202651534762485736341494658288606090510576261325724813320211774465896068207364323682857843964042828075190192730657563696853530418079322020753564323604484756004964088899041127897719523080917242104927180066225856786508242055499816306672595514415802959592933659931135771646094344282232592411519756985216938965400062018171099465929711187357518794439364733209042517089004291860172396910390021219141135816212277720800038458768305847811471041817327266320321697431204663802511517690258164646068719570660323462068562268250027394979496515443932043073424329128080054600352675265241690459814267753936166053995873513792660775246411823164204229831230636715415318904781137232465970343936500433694518881318445294890236139933353081414998179798795683454353329678953783066826256362464302806172814558164982937821652065748260145589768740426619549117355053997843150708383915033433657980927554606330927598885369761929969077317482654080850282269994552893425079032047271274678651087490718768625355923074993204016340215006084854145049653798431994166879223619952977619773455886330426910086926588674753412675282761569728761148031244114775574235201217349227383593364999781862935924787942892091667910440426638853137788480989144807409577403980437743903349749060424469399374878156905361484063141463381518566642092636472843407269914325922395889174442831370781057637754750510894125635305836343093132406727517382469418058829983049774906687437021865957441775577512394120161957415698260178487480810980697899825436305896672156076043762661525991515275582039597620964732362906075652856249159819289795640263531078663603234756384302018629425775137212241838404371083860935145374408753142326760251480038606348082477680588726998848781685151877422751976589456152489149272996078762078134441375725076958006274677753714234792298121463820419288844154666307800715510511151335562895200901943603354110060765812653860839820460719841051135130530759755044005470986826495815210145792418283808450510987278714891717379693315928227841918595912900275230959028374189043349071692149468293875290527810462873976455579688207716468532834427459842038375469590770038922399697400483354583060841213870824387009293282536392295539021192904081077965172486952737860724370482641405303590637431086180425989729828735759735153407887220811796802671186688279551393412338438201840334472095935726675598234168587278281816562513745275980656373283440617508964345336205379221996330865890895749440448676459354663000905920019124432975549476010688731819206351610141001536707189564785403923119150167342453755412846536769636388199849385330072571134438669266297636170902061309408079604873406277472335014142762356657931574894495596839525318182043593633289709333000610067854117641499043984412132817231929696748560941930716196249410934138877796157542490576540366597948863351403387793364649195382714966696235988249219328286261390057969083550205647623458900193121015999210521892545841379551109944404500549245277648274262981990975358312213957769218276543087408260642588304898487776275569092798941326223112257670344888343769399193723552550373824159284564221686343992429386322591160901352042444389217311380167194257955140425884733236689766115731845594549745261772175314784161880801086119750385003916176114760267951390939041467123849983140993728351152565555989770486831975439044487753004798211484617120854881876311290668433070975582672953305408403301347608983457500810898311049643074848447791685435178624754108569646040451483145223841561115050737362437149264539127032635459554336502762806520354983018211266863744707660190877221475497883209874044670625966434914677376698999861450250703962941478536262747222774926654837137087256749182789038739034290700827119912191362031454425100742494509932893114202826021815363947434482689552581307994305500219697127418583626104614956197677639489813963790415787066115176421034142631209245118742768847657008085730077302124499478707200369627736312372557653859822132467195423409629053999990951492521480656005998669189227906192364030320650531266663313766057122053509028270339210418131339105896582690175464903649633709323390316144873779567350414048927710764252940842492785352925164614333429270894598229658183656663834445225586529267055133391280196944799093541642670919551094580061113415762415229879229729602223163610234769025849720736610605554701353489354281996539168003178658251447924169309377753408830373104595432711347978558234732500620444257011448167252627769985754152685755503045969376865322392330535125420630104364364289418420391491740761564636933729426118981104964328252834281128618940974542236215112436780570122730479171674019725732552539588825675889234720697205812562707090034094319012126396250013750301440770886610323409828438489372354379044532469693460870947825821463284456045765587773330124548705195170338784022319600384129443288842133108199074672796587156980102704727895275209262811113724203821880062587255387397996956082708706495046903502415962511100882337669463975826973606933242426286905201152742805274887514658510535557538211928736832561642717283865195239112765518276179943435090820057048379454360873405827022345884624868958981881898702645642558011361001213311026475361961629002802219704363936409809338325688659522479389099157783494654914331293752787907261437833293235516928587464091002799585908628422251150768992293080625190660986492002687303412621086863595673231096062808473864296652313624937861197250404986108308376396791965444169499158740937290237999801027940424153874291240462238145635681467759680407742631262024669517372819731772424707674123978439837781540938904493068745366247320839308912450800070551118448531892279556351631088357264436894970997226766607744268916707191025645862021837022317062968399067126087137953002384470410181691125079546522851955927203589342154628181896564175248728062818929146272162143398173419374718882148205341864050531576824426914454390671262188921756124181448497155913242565434497095550213822902193680558537012957203843304099536986576067023447340634187636284286515637640464568117464178645383224794572389044035245403865062028092260254351325366298451982924386358569178107200177982776724760952288831410463649874281506452082198907268678407225382079834355535799986981916732791394800109625324125447327356542376588119478354879907780232629309290924910373838855335283311927618281217888659379371460797373099742183018874951666897480781909117990399524660558892279060040754531302086032454331689744423460605768393279887177738522316356381988488876133687645339453363474887455779688727929078603081166210782946084643017772620192848231973248632123352980991046637692909654428846342022696404877498470040440514139399610121446605647167081045698521616952727050535523237810907500187102279509950388445178366236559918068462436813539160463455878978941355690544772202153751686662270664678049478839999597887130102272601434502958931920347621958885326412808151565130629889749758810261141468739955213706223901830277311571620474318511702002061490059786965241334187396123044075826463090653505686204854045629849318310488047783005207752232582045680642605781991034657297896864670271225850559309712914427071483912671438293521815748943916364281343143310871776676191615560003122375235158549544201689966427559901895541548141628823493369479360164111235333923787483436224053907481585659162720445391546302116192756356557594235298912180120327593344450580019748326362344133148848000446109506328972577120242183413731449541998791923704435312291149078208069792669910208695177233017082326859495308872367521745426679156318609284090902806835017257123108682878352483355610599662217642024193764026408781247741719984411558834750419812948124699670619446076655681202314795356169560382438583229454552036160171133528240427880482932280249197231482660594180726201114192117791111436548053077920856203480508986073875130116835336578675543546618009471657548255999112343697274629574435848920790352367271242066017573830907473033791305149659583802374405886110478659610654993570857218177579323836466938474439625782197631292928083343656323469808177508439967846899429853637471890673520601884514398639364821464639024133754825258454195259057623408420190904812230361067219982390704038537169337399085872208314661527017559514239356395991524129962725863253693005268299715621719575722193568262558145515659602550918959100103763386563037275312188713027878639402913602479197578082673308635759652227289811560838457407430704417648008280364969181025448969789329901746292771735994356836236097022386559640214509711153906552953087349669190063455545990259258000214199275773572914367336664696151064427136345346097730460750242100661678141850138110199210374167364639665626621652552768082300614114539996906370582373181269507308177647580949165374496938632658488891324935680274042072524931641991456599990101769222615384037426418806778221031623004438188842486330832236468752792536994328280575095845995059576477673986629576234945766121553296806398106663107792174170899496839997777095526696846382993962952273139111323208520312667562412790806909634117945314715617057467019058045285919713235954526858362084859446172421714919834298880059974739459536101004589946735793586082799524348816759358496607147956955239702083972642183234075261577213836262232344371998855116194784235544548300691509493557736412692688802789117766454867654087325681179433672226261365358173280542518185774794683811768531600594440710552831879247106022451022561362827977806487683956023969646426715988882768250858681848271466285239441291068323622516448300395913790814418556350419619229126170711013019829172982825050771233346005649019810437889939127370633886477611230274125113990017176257383406893441291101836727967196853716429966405583999315173081878300732254188962940637808492858671710028559032213297584667845463656356684142055176981146443354899894426986759837180860696519004801843207837667026365924656333300842375552122577597720708249592759282553761499042149511594423477286836247689671777888127395373684959150061157112357944079528482594741755402782033380821487933802908559633341442009815253935847016474560735392647642554532164935991007736681669750797339253910804496377331097837347100547371880263485630306934772063411867776744926528978826070533568048574971937892413968644741604486539256320380316375886162119944005606083503154213053819139876528871458756294961925102604764810065488710831195768258159631350127208712492001489808578885707366457164968169017035797443301828987002912458233973562003880980374988793329527431833063509072074199701225050036705705151249897407501016977112380113805118200982361026131174691953818666917879962051657292251365610690183466663566943206030095047118123470196752653299615567252927250566792305084397764046220562417555044616499961936838060836454407201686376011148720668035204231359273452172272993465803331211676357092969941137888081962207749981358570256328501243930266234599223783137715057926344962401214766383147043436146696834160502455009087479997062715089015068455602934086236113469470709378088172821102767077116195588075105160646361459329828958926742524129380609862181706867562585570387168969090880126813611016404805652973172763248034276334514525700922785172544049974943794945178026087393727232003521431608124423979991108463634582541793159467756191026049595140781123575767309446072296298631348787629723274066426840638255908354673914148703303851106248386886031479971604656128119415605655695993973579056537767943918314888480738217718017765171054299227726448895460953186058006159145601537345697130248047235189507810557888770784259284949085684393633914252356173987985539994843635130100093267840496060518060712872957367275727305776461261427150459966684322749498535201485811371974312332318722071992312122908940745447433862271098114282935769717318474060616251173958193163464838875419261841339197403458366476834633758337975182262810942900452808648396866700010112390783181593556824617167607602440255514463078197500228971729738826650099784485889240867515876382660203016672771976350426010375051575776766522510509091806571694933962637705314529100014757559250853621025814417073420527443700529313074753173724709229414378062282400919096363734037595461310810347937267141383150556754952194199396237601277362134172960478346676971496624256541266022930686601652581837939990739950785984758663869854900525112644583014940378368817338634593578305009175418724034552355828889181997447085966395339387811820099871599289612567332120037282577708994593648458006326805870798486065112689107125954284884061310034783372828780069332752764497976730135454220153910173237567530357788524433894080819415764125826669649306400378137118523591116508384387803822655103197954223021005513775976286631688877607646873639813300561385848057537846944222130835697387339325477493106782003333151518004204892638076006124639180468055803427285713912764757495543148014535465815972924473590990635185486799040309283668152657148194895476957851368827075468761085016242775564672624728908975974816363308745469875088085924769582461304251025778217085687936117343648432306890831875889762523310395812312190096977256257368701041920341038211239395753064745849156647640910335382077339437137787129080186743690004556277029074652915038895238602091174593746237931204310439683031530221808746540454011637279422417973791619065977230060574373604817064123875121513529735585461737039232422258368455062129192213899856843696704913396160300995333746929640924529300388667620971388041955794242583299586948861300826147935542160933678082358460982644837448217640753132298738021728177321046389773194352308001755010915944368680368049182008227343064294703636703772704805523419879369212143319023576683927268952124202462697865271240852092787434803919831716875297328039474648291803975950487562339565898817765612417354521656033565146156847036512431522524567788685815233261735238799984829587081469107063242624941678923718240079199556852001245996513453736912620759177485663900982521533007090223389747050767808642648290008022939688175199903298205661886834848660544556102365514289357631765936316643188873224031942325968376484469963374940839490922099267360009535025173811649173245023174564612575751995858751932533526371024423729280089715508465551657077044507880671379859661968801719677515856332037933201189817049892235887926576345112128775223092143601376744212672211504457011736648309564000078154055252758092121656163484980052210418707119215854913575637670078200904069621177047559177939195223777019268132258941142239882146500015303091577203131337047020429791579720324232259417842288957316207595435611143737643470320605563585048472820975912685154378805464182776228514126121130608374642992195819900715346738664057745175417455352145747532101423716474948726952865468746292961960073720968854212504133186519041912963643262473996339199506789888663949867735686655701238732513941405362000210446499169529956348672856932273213770068233204492922384943412747235108828748809804791472434506810884064764813037302948898251747343779962827140304333447934593225219895673316776501261286616696784043928456558579997924638973171563125553125840251410464202506997180941926517093430377635725982782360543523517641707258551103515957831264244551233166552613211552417122660878972644188065004762742851754018424829526467105183037398569125805490052161755639219058299589594836376319113280086172555178271078789734889425582041398329082692383428900361656405821913914647663896760109457550953217553104337515811626986671090269380299399867122925606869279848806629389898656210754512744161235563032002563204069929527032703811151542245909651612489288271499766822723884364664111658519853548058865089053746160900629169706077284365199286813951146691711323114515427322989698324077317314550897905396035546009934577061374126549307254759016680247794993589789354768083792544299749448971051006057736791035339735766775721581701124168136277154476752424655329722426269618208922211070653959169734525936368948445115393634220175374842158245728083905564254909881428696539276348963295223004234096267409961958092602174457936239287008029878973881976751844350711493567081358965392314388050718843842591110313638553387668983619196438062223455135311585093186107712302952563846517349618169949570495883543202341321691440062925530013725956510015075995976869912646655841504558877125263592841451866966442479364255516853390000445047402107786756861881258124365515235159989439662027063267492495162455431914715033075044289334630794359147488395529082477356204472788412332478680167102880035796175995562451714922040861027131105884753764121343717934663703276091830867586809461058812176450469912198577085213561795175427479641926233569092180730602414515008044432375434305232644189979512887467674202344899667596974829498231877687523688269377769894713204587343345889499624602786127545516451358218182623085231492946907292438202425165732051207998676457905783796453528623682449496190038953244551032695099688634707282260853000476040106462770239337093256478024294411692017066264481826659738287870511950986037126495049565110330434135845663353714723954627144403678275263359688220877105797683755126447680677051406887573550572606715456587119884535420166616889111248197806601011728436051345143201558698607794043654059730710996002708392225503066675172403078908625649955088339318801393767857552982018145788460073395696169115561731468802637529974972166106371422124080980212666195453969139984364081001620766178312178394444122437505607375660864678826678351007141959579885377031656693944613352969810285781111198298886519288428944472496018159135384839083765252913089553959048947548031383794637394899966803635721796622742349600318458974398446726145753678390159632092195508989397341539251936236132141208657254379659314350991707950136709846634738167500754007711358247356225161650281780154594834611869019617974957601737405739045484251945841959601169988114602075546453453588027395492367699157616830079346977558969595005807207167939756038979727585025333595693760116492979680000522472487234514714393738666196977811189976210753059737275423317491642816972977273653781538335591391612230432644686068847994257444063213729257972180063497348475518050322714494800284742426771025167047055096001853469693152473669598314835516487409863998131016572948838346167737626862441851211431266923915617060212620100976402253129343455333507987470722285912397254585834010301698570975099368629716239612098883596928907036918763122510471847629099685492038082396586289896277621509319077732763538722367578751989503304744442740037213538204257421203475468693907976799827664250425584084218204310902954593845918792878570952283420951252997042387150391620085331436488220001506610508303450276630210694684849733601871157500889643955725269922254401594619120057211002962494526584735569691419332799280696211025949083845624974769404615589539303176681998414336099991073265321560243810535261840769530466376922533476132110740921265840918829044835770928148908237874153800664621758935829048332997354415796307814080638291001112654261624927041296538932651017674962782433684493266358033829571263174917932636269121343136588149823640473934674540911586835612301162634666644938677119443538603527254308432407911415834804461510861328352644152664633428387383874653456293972531160840528949902676990584942990004343341080036928891263821497045397558616986006745885602373198655989045512756603416974436586418017474359953027028726956403640912918231874542356281596705219221604612710409379541846863536136681438801776113603945117765962846743205694108424179153116572832920746329184364727910343294483629003547212473852208550815746984698235396560044769359600023120370729634941436698046363135696041407260371296174679980954875340244873028214050247317533407377032119895765688084514833694115027962339884401836061102601202940284427542835597474077668553633013159756004515868548010977873087344996136930361135602131785383708093980110356951397699780848385784798942230605458662328138151110598002047012621430667647799438301357245855648551411323171274692170652967431620528354338267485867972688417112216816864924623160366391915923990445490649270214654569612316592544369922634076807066589935643498018904334775102179593039619634694107838274679212579486179090554799843495841721955885640058362713337032459674980284130764527461820217370561506328906448191228422722959524584784863502620525563514151521765901753092242662731745539032474442179929426296321288484952279152118535470602850804058968122599168285284933002443864060210883883264893281299923545206321338083252880622151019566302726802140347337049830674463250254452107015067584893200905618191964080606385536639514950646041845668111843540230540584971948330107090883093899158408723504436583047878794307869577589360768227646535541618570570262715703009686500347445624926608421888060817999637605510209971763933174053461952394808998303522323058617339602583131589826132744902864588855424230901556132027918309341643498130690045096322720068924789722671160772578260567330393351039008809949025564308918124719995245024494402355652027284428865755576227612629387519159073993687361626372831959311821465449161427826989135628300282642971808617932447822944352445217801663515982301022477697855434230203522804740606114608049933731768069072497428577645299390421605875816178353754804784275140414582365043563207553702849905668250687888459432419382181736342340746749541370583934845874780214834221923572454160266381023778401501906168464186437494525384848581886131502595150214955839237597907526199052356969054653947373349686108486480187138582197390329046704718669952136823084475741681715773991823855468636815042697265117724433404086531183897714821911643993041896515201417541551893457826407547710833675797642521417433753721083543304872779199649710632136318468752149416796941761004659094833738004920351207897819201016770158320476048317699664092404907637864104388995450539505484605080914095516974080618153549761976504592142860384193265001512957165363031239351149468527203193194339243516499593972152466034673464938451277268410554159855255103503260585259067570679729055159101229163121369263237477586617361947079182242979384808450296724027611030490643415446622601377181772493529002788037920677283242874667263883489988405691783088590351238470802213488210205485936413421251705207957007634813750983004709821882402643647503416184357686442023294882954113162174175151522282160033165372586661428416269617311829625312811073622987802501402224745009690218717430244773944133778505476166728663302773401816584450769690555850670837967054185326953243408022858320472222158460968595373679228331448012007988153012572569266795918125567876537965375406078318123892690337563990564706694877994081354973945275399470368764541635444356863862978401568485561630906720622132178253713883816412845328666017530876797822063127920870636437203445452800269822226195175890370575153338213480144091112945225224843626396865742842871629944821808693518101421592603300843216793256524796055912459845892132127451543692525483813091659699439938826966902928586461527149006892636806836692287823327442311723080573743141065790136279182898130525230188072128265121470220309560330398447261851745597476912117069501588916479340128286888483066190170583160152362740910378223104781322740714800788355495035806730590081174350399697777081700965042682264911975667224815196329359912284434011501868958991991889464973225774313233909698592079056008480506222594236311116122758799371405743640284794181309783321329578608862156887074361040022478393858650102004411035979802127252317748783108613426336319680390870064710060356879804886248480843516995782212235952736746171845466282062311941802211599013981380857844273635814494368479639241557319540077241646235514239048714617583866660744235587278928799305408513041707729314746033986992468158203090102662629437753625758863845442102144424884640253669122089254571614102497781662223289750234219090188713757095378491686365052244445022343433166703280469338173887812439836260762260381288594352046271779117404905073001283096211168042325095335182680013810125635525379938696166214321464467811672638817172706247529376929978694781689743495408237865464438955070715344641636573611572596575936056575024252360465352712513637011385265750102026945126888410310677046169042043716529352986230258144003415150481428815997337670179534245773568643752473516064582595337690900384994272553764607211128075816579974736259568319082544264910007312628270356940506492567027885280541602965172732899990315549106591491582194072677154211284533494254844133394710014689827996615612846508777277725537304914709492426756637783222958587159704760576860408999283387316420358870612966432593267661683220755339489406876988569499755380429045795376577370413897275609813800015631528645818394847553813139802608145738453220160287562788593615744644806074454414129871310350702536540961794653884150705543719275222562164192230719904628458880612551169896188844505245636519480469708382930152976881664481678916971032395900523058077378316541390970878702359928871050467643395028054856843073369270155199797042035097549932920733555003202833708556226759671833546854209618529867873105265725524463645572260837668875164935327551920558805003207058503534982401902159509799275915765045161860263905621103215858833255207412038359284589062475503105560347334664785597969625610210407013501244725960135648594899718234374245236096838909734575073425829245880581699333583015853758623111955609537768585387688286764916700670417149350024582198604350131334233380376231886566133899750605409534845060834697393966498834499755260914306320165023298585684368299956188682444483821525809080955920697400155208949182419640749252354057616364697114789379994968866422293728806915371228206942115242138912007966790061945994202605203441673779156802347487481218611069865439850968908037404382363252566972516035442810009995910567787169752657377366499105822393872235547158762432498771566428312712952853701341732934528691070874280080990886795371272209146123808648618508293813168087793556991324829125494186888820535182596034814480583847340631515867207528927949727098823836463222884743629961038866600465316226291861056571218367260529389691621671446433421508183915147655819702768378355662400225236212013695983493560053643070207402489062140165978291300431536698808824093499147135669202000200391000190004585911430636635428163675116517941348882520469621971836657244055433449134487812083915915575512617159181451986731133821924074376361069756290579309457925287174584616929016791027567867033828553241318953156471679164065602892716531020186047393879983216323669837189223050327928328172974072402720135339267225464263346657927499080412861350143478894863807829432783397613145243318722325387593558242532241966534090660315047635622847860311469761140121834584657815296765793934117409161499966780798964726569436651708642201343979312540014477546516183173874471943316920975623632328124969414430170544985741712855624075543264543549511498959801703992312512519414191687458075219412240964312826496334293148245258318593297062734484583112839111685016349987010354504651999011297673455569385425898418580243274055124845989001557882738650081358683183863521782418475299893663938133689320465189952974854164538245612156199702567147213088756037922631484698126803380941286986777530031991795318855865619898106037828975302444911054877742997339468208111413765023242287023044068453405453648201245402201093442362442794131119164537104272725676531294446263157424598597648907202920587558597760117678719285584390241453939463809695291974372069723355293681291312819609553730141314670981297249277287887795452705242921900273628231137699734938827825876189328083236967630084767930142090905687437966762601620167778262729497985437965314221723255284605082638063391744215005745603599615531471939353512317224572740442025878451072402914850205890706102545523341646080997764422945423379465945449222470023071133336233236534039893133420223277103913527659953876859790400435906077983083102258327351530710846948031385295827693061659575301425915945390763150652823803052889376560343298724128812456819701643146844348487365195607334924743041128903701075009981943621251762092210971974932267937629447430432406633921053221108475013378777520665118493822481342272671619091802570972152605773499519341131166955377475965407297466478705301981054768914173019895136676269391334463008537760889459716500736130325020482848699961232195411148350281976172356623930278518038036459394012631182233552598346737115662048922623426568028064215388470839271713615623255821993660776796666848903192061162402070737855352195688407205735692647232624425071287094913033361690324154371047049286324427147699022722591731350940429878222380489772113737288341947947931104335194478072080894725237011700063963981176597803685872253694726355491032268007123296402946137020598563418264271487571859471636138618067763327534657724796875652833085407901786048979757892639925743325077362068371630662105129434408357084558720809977173767356125211978761697249602505552281059403625388019566711322177123323341841337072226476744031197655540838804505619667881806926854615255465336236209278241831805905240542948190828721621161767303743358292208661523996898355542322193751774364298385218889661325782379806655439918426721223363096924186069957513157495659449129874443061610540778524423361517001415769704917013223893336617089918073077069156561668819683792807308556679851037259316957517042109741423084276165477115274667794103668196661257481466367737564960396560874777860001735337496984069114130401056669228036843021183480659208018317815951854269577612396239870933455037687408648278765295332381018026727269911826456789125945471650619802898359286254794025990685064053251714459818626432762206075863963762404782607433213272377443297795546750310184498521070123425112001150350888848394198326497596690610349697295074801109543075870802422815703816269928078653249607555168349796229276694076739828047837897170216893675799492431724508456682238028480666161559690143011785009031201778511806522445210122052002555985228825255911035905475544661372413565985740927942685661754627977655955714295990959194925962062147214569491927843959339442207386826328282364896182298708117903488114787985358881887536215871892787145592097338833749042511101077359696332011560038769750339852922764834216862857098930879111411290656916951939210031425385381139615720412645147482777741690991215739526383817160625048248910512872742701834006990940208775249398371262491316590409979319144551016991368365009156143626231244339078545643752016579111868860209919339357325056866458276187709429171107661903459899470482367413534662480160158021157219991041067045375001945643132748730630198783562318887208015822735420102261458195858236771355960011890463393656188759161257518699194007735609173306808742105139184364790629878090569776303738960910682450180441742007833665632381048150425283306701600097529569625634404834009119503287801071411612859545821458366348592439311015842000182827706264826422391821259888348891259178277847722453308761155949872606253217122634699014330291990615597837821409716909555023066370708761306551041627589103103037464754179791359559734598690595607833323416739856522803280767382254154906015264755648209167153217519653824834551183520550715015286918181165812160009808571919871655459239537866048055987612372990806809493602382106822333557715528634725510401962389336736506325424682034683970432308646868194316227391305318557893917851715984749834746625445303034995961670031533520770573670537855916977677387687183199732460967707363265187842428284481512872612460303764688949123039222876849987143048701800342391760501211621055402641012083845633360768854933163435581037321594255827908201216239733102300048360762530329862477582127536653512957448886601107664150085056693904691336506800389796061456703857407923001842739074011358547458277496031962625345387537757040076733186407339409170918877545230530761499589786522232983278555196969387399930283399403210843761851548204740045615618346515841810904616752803256803234627705172320893123603345472495483566725618956807588533773443459763294684481544961723471697876079413464860823967675730669936212952495343115143959980327101266025787749885790353784086155109607331261658217528772781610606676185722828638037446223280131118654800495959867910036174207301732622643617770579058802068055803224030382298817180872235318863648013221923516326492450144206058521354982621964214809520940839589232115096240953210611789181285119213909934683175543569857244150795203536560576803712789506410887447077947216173515887384502573924568053040148720638691698969880168392825157227474077760906812542088338206952435670197512264904644794540448009227269821080717348601786489457060784124842586583838898899219053534984879502732324206652511820046652239517177389011062309933461394292796559445307968624313893789495138509614017478223128059721651193851311438192589912356409083684506574844957568596774068125079937506582919312283675273816239558653786872752836843645571463247267834055336618904101208879775386386777632403460781404302676374075347643638735428200022624990498175769035799734244595582637397247067020382267572605259482016427798644923031399570683656091122249747124027192580031593363196854534864289313592822988893302050018110539646937706618658888573533117448092898380856704718720478010436749882280450440152284141320546502547999700159771768044368128285183592819067166677739600678823849775326798981621559867455258036477086605717873650546371560946810356313181355927943234980726076820954817441852744943078488469182302114952117956105516354384803343849761378016075364011835683526149997322888694323594208115572999910202562140100799685144717258507288721287082784342467373740170817020980786472274202458779580423256415814019829383684173627496141354178197663377906635908543328267411167558618700418730688227077951254164856093913207931359115776685156996616908985638645979499217496705716806280537593278604092209481264493577491552889464646296932030781056789130771577771131752699021733566954664300771712434889057095233967302707627294539917270360229224392574643918592810097912975838253190490829143596052963331519692729829273534735045180108016324499534498539666218731623338064345247884463468014997587711000446535415181159565534066942696442177215300141126628428612457899134062767316251042413531771921529095994054330232573884104524695462676002841772050808330421177263445027981595896845542181877532825840748487465795024131803077513520710131097356527090127787808953267808924338083887585656113593862923338651369686641343345751369219020539296710202850974016608643634967555306273363133997679027122639505848983398199347030782393401657689475834401539572711883396361545957182251889862750977977606562181586763429449437999266952015858879702830615899872038619686217237956940487735182151440189051611847962265972546945798422259524142878629557007778538560691196548061933613384282871463147767597281901655870037710146368784658768407010242105154354312924405292131105118866797354206827692399581795099821359560916216777015126656452316238227077331249186929525377301008321814603536792004796663825596293057641337126707574132310342753711407030487011763889144572029691730237406072191706013558049573747461750866509523885676725204560678897800019985425888926889114918059540168646327861648017141540104264670220412591964680220443711631978623941621580315989887701811840034320931302958322713479518346628192341406335673289109404441617882442853606032447426112099347155040705803052719012529194451421825909917275325518159032189226623126719448914703591845877264670949065533459002549901862156129662040947546374387754041444093322305705713530903346477647555605989704034641688263252406817638215280277657795965533138827024861481147234926387735866257415267721108646277946530681695064152509605486051387743170862284542853324203875446993463319416957473866902732264393813356056235785905588870223242903228146824026962589593992240525196821018210898096681347576631904234659387668786514077590969868396005882571374921215228526795743579940409562462063686468675404840294459546449865007310867556201269922463096137269083385411997335256810488185773422642615124385175434008330148311177394235997404414577199910456361401025819458340449486679482397724398796370289129065950622986858823787339118386189297219513636486389977373376584475393277008893150207759300918249053596947995330483632210639367217214939693716109152374972959613888135317461549421425941624974781809509040225349731586926673743276666843876907360682798162075002242525113678234210381666493047175430149371563679834534416354513390551538014603821598838620503540425966385487128889511511112622849917586810240471741082580984067145710965636790916936233297373450079489766735589226272390119924601473049715425131514520222161336517950738496287047635135068115708653321095454301528309590372177406192703353815638369122331035923608887410760688200073055831790627798315927610224203208358294802375905765600587849522028255035738648444753466290950336577171332458858839588050407194289399534374276797775992837482945511920387122417323758604518360939381660282495380162956685367575628094553876641019264011074104625306031147126565814559146687692321155852631785571378547645687654618814067621194362848133162954869208144744777260607533169761619482336485741034285300645273924065531277959275368418466277445500791877171699146969162436369653475962856678006738905451047802421251246761280056236560129641389444434523028665349959191704944046196723474307085694443594068906819553899568855056219634390295426844831294132763622240470964389293279470583736054544530688275268445720626941216347432636146390765639515262777680065958570816851706371338377170891098461482409459996210952387500641162490202192269169100065465180786495678016441519219413430824952348990444380863600198755156889568390879259572848443133434109820361931651369304213514614827046116306932035510511017297929979930925462780133219729190440641145617622586025824624864600390240483289368938900153548954890338925712141491781985160190105170378926641618085971168522963527057418832221472779733816987744642806329966784652335083574603249601832025171036388617244862132955577516427605588258263712750428144575483085563139683846242149943433281856556544329272777003644184079189272547770705634941351236642439234246340146715099753970547479350601953845319344208754071322540783789643905675566845372656192887087986387250318487004562575067603828109716212572682650045250256225363007607396367450656496404109257036894481559491913113240544074643796033208680857246899380958812066394808378570537491126997880548462394575062248975314334784532711400606148934535550802871876334045446741513735625110876945775701161489677375821425561444896749518208775990547959623806595023368650335484495657480006691122609230313347209014987701342957399095043704221070045597636007596211821764268576966160278227791993924300250241516048643492518666049296534652686121527659769646711014018724013954634209962882505222474238183055923704003856714473914788850152197362573530882645590878683752630774679739610238592411383620582231836998257979162843339588683272978518121476802291000343226343587376827766117504001850057351880487550888641252152859300962154015861799066613353987327369744842579854941403556908757767343591086533218746026027395614442503369202984258185097975076683130544195100318655114531541826764291101602625366256809190524939045664537069842369504562773741661616917999700606637366897900955271664156742777112049507903422490609501039147531770105653537507028962705651647253897069978770246545793259707730754894299350689960687865421915794637647492387589095460905438069239326209680802587596691715715661999419774890407312546132090378652561318483347544828399939369502723531302536466215044166404993825788268675234294972290482854771010452827242506325688659002589339351308929584673877316929631394421905031973298248854188753510293799694488113550865519963620054710369826211859167172062464611714638353517650385385195176400524301507528054238067069636672452756160801474605517324492208182263538584507380050860556577882719775807254976835264857036409641308017964471657717173005487424947520808053323821901525459999968190363837506170526709494974474408566506373508816015198745595489549604974439013275287671619255790569089931298418680775399548995290609428056865099395127019993648873730442002239919856250986251291560944573467890505238461528461607576577408559665258151443781342488450702027115339401748386584647764601090415852535214653294923104829163588463653766238592540775340819897391361715472876444104320943232065210367293357841085201953472027094235056166154380102476677480061206678741735737381905292719295316983999867051494654994086144027800365061349260995199455219763303261555555427513303081977873827577440568030795464186778609669913303109943569296052049073861050458100953927909702202723946474448063273756753661650521625559448872572983561439024707224598895834053034068029862390967799144402625826551084963301728573612898463284270480931404764109661386352954113400997607730282959405850454787780577175244680960894959619795494389539390101861730746645453717532131290704149523164598218821922660398829079973664661280203360781085453761390989364683231854968212411091260915425720605704067103196064371109546370982829827223341815678575332202507880659209110487311521036901083977370404743227021782114155903678035974675132307238895778968356863833825170900195411749190337774921963365828457075836704270579154490510517987968152514605474516677748032534313174326777490758610689308595794359635911424595168539835388030205562438365418790325297258889691925875019466924495309790807170708160768853225431527037391521178492600674289393647419384443766964538872566180744822107136402767897880557172766058496654688521070931219503006611641726505249478264575370465836744082759654721608858638408441685836136496749218162917662274184761924430558835340366567193054915329029437495121445907578917878070451351898746965535642862218114586251521002493207746391609411655138180823344092015847620569830898433203986491668421802219437421230844818313726028066790119971842753059030408719338346686772302348026756316262774753432606833143356567523979576295043554383131739489174479786610702331168219172425742573288451210287253283706902319910495593680806176630742066007867518059856352955522119244637319363628286015703297543010478067668818748601742906593552673366186951071576595613148792516280857791926118989325330638621342614766112913761874671231128943309834809460763250554562321754433340093609958437835937833758096323263509588525346235420692243032641387286141689191505030883050583196189712236407424502453790761149476996963896034127371713610266277386117104175380680198297922271158099047778474479346224205490521843456088545356572210674304820799574740826956997719329686902308669156270396265120598168329158680429915457789742809575326758067814635932459693897214995257761673995249623427654509917914944665325300130029671264170805285051033943777929628119307837639246342783208794870785781662525232896929566936632535064751016118855438104193558381162862116694279980575800696044661217379309222081842536537401934750025989505312945975535374310666946337357026387384645271593787352588059332091193804849313534267766014767120281435924598465328924883707741396112597690447174393498022868435425932146488700418245966876548265168795280608993444784012025684597239327500662559162547857553303982584639272707628481519708325001247381081698569386556048257820484036895179940943564295353713641921402504087810406838099748852211989055135388844842966707842261868774658605280903071145828915299030456987869892466374465796844497105161987477281021593130594979603956408396699824889812360376295751537418879323535523588335927063337258330367846765041373382028175294674829551870012691013300526892934767623168239962487252591180966759786349333988329800671938279824843371383607869408451315569703970810772009030656581928142628144342002734318480774818380492098241461352264989534296892112531031663482646501283433906114493400074980561056697380434185542403367788335104032397050336973326547570482760297801117349348210801500076052651317993057392005139227562029702931875368313964250483999623601822466069273366963139205543051718486889605509779915621724426348712600082756862071058964162156306393945995187092199885550894724506281096272340331547686400358624904588496046629877841890235545977953387094080149037810799372686923135596738842912192887723490011212105469889069059736538933743433533511758275232606689295691008127133896825068771516937631729455203788249664630232202708991151888049388064047739727732343297319715636787797616821030703545048374950228362732324241988700235459782002609597666868646775217277571525881495348749565692559840391945566554215943258059336102441406282698217734186760527094299646348435133344571856037300392746215876502266721406364879926577903195666979652864064359365913078655401406737966462270406166644840558410067812296368777006527229237230036262700182548704757220350887626330018172411031466276350425356963701589673120952558009481518045136398987904508136794759974422244248536254830463650500594573661156689529526910616022640906631822986867302330745776108619570435584480293880764304266080006352024044623397453857290010258795039952067588174575607204603587301548358004118955115570211283133336664254885305269217482237862886175840411012430533397806065983807266116470823321099308122362836399451562057632721889208978207995645292247278212952439778350702247330280279302462812323314271283446729476796739797694862324890577876823821624831657954215343247025447732561482918525691551097685399903529958509206949525915823950931638795817297338094310451984771829575613693867294110161146453048714549929142670877547229343741008259414263422874186845064081654875310812487790936588871565031661191849872814233262021218998828722751810249412292344653839613931431473002843699258204021568380237639926658251526990011311299396014190341688081872029367207044170457750639457590218079665229854760556051390927706177387603323139058361995511500284788515781561257885616292846863164408101182205604907925714080832956442883301729049792220583596029981077627170404972797068658951472103311963984812209341392485804231646442468157485097920042065791846700417342715874161295514314825803558393022861867964909444220553548946433036622395146754856026244687344162994551542434315299556325859272724623499253533053168226439307199895387398995532868652549113698281436424827838111441110065989567355516645651316876437515356646272932969244389047855987303939804325269708287841341178546618325028870200477229251421610527351791240119037164107832225583106497645216581524797061340688745241451566006686031225945727336078187196046326857014611470202444686285558541520169239221158361978720484127389235523284431592358960906227836977040701691127897781270263509129101233703343994002524455054114041694244697507911253387857175454296003962730950781629782396429093997559063794668287749264669058263427621740633649403538187162747194208023832218545591834245340405294545622718196266912407276547942658168856074928811317302240498179180017374921659673101248120364827305712529413699888023316105062714899736247677297638893414329166912963553876620099996374298058061289926953356674970506704876574190850603636671024017358740572251572204410679409879195410172556100125398162366491847270289224066308300829768443291307524982661543618548507065994967116309167877801088614179096979002248327876786460198907047842340238579683460937522204706832497560074075793824964603186983637114513397883056988469320391037882540530825051206160010612278747358369391190542003856749492358374977511064624707962205054165642230441300322666584361224532149871879460554338830088319580913671615201363410770397247686491528664707837440641821435829597791436780533943091375185158443919746469850428512032468322364040648577614160679572140779307786752336478781036054828268441111655227828257251706550308758357929711546561029783221772925329751664090170608920157913817930441568916810298198698157721586904468999626842572737936983971929475181752325617292829218470890553479114112837641959511504975405634233069162064786094687391103725833443430093019891850916591336102820266844675283648559658495907158175224840109296959241362199459689521425140273363270706036541805023443435333866174237730995579640408919255659694979201722599857874427381549123085226235627832670478506533324893968961434322888748945914118942348417350882643648416929630399625582225999104348104227465525423103334303991750644132227619945744991444328470617203422615070817405068025014922632500080412257425284453961205894722234869337489174049653542499445637486886776822207153712702321692611622439802201278943046816643551376089627254302854746306467988429172771764822059048407734201644584267756798189737349638185319717151673824782018528996754296035081935409589572954912983909268643624956220267965646400631655128287695943709950986108583299663528566971937130050703044594276927632187719746788364978266897214012135530626364539187570002496776044997271160364597357495976923169856426785581404788893891180568520500752774071841623807565591489075058378355695402604096290220827344127618808078129164678732573610919021765244118515086120457828915916432263383104593484873879343609382866908942722533065060830365180138130636340317894306133787954342066198556525778887036319779367014416072526447967501871120740222603897302029179235919023920377364747376399332404701735050315521641090530569792744421100322458228801109266355815474074874101122647198452978169912368168132499028725211053602925692079032119976710802828169295138738224576795423494398312779427518296893967026619742850339367055925196852917293531916164960321894052869598998589401019112943801345846606379538617876453112881721379284245771198921122073068031048479529547049306166375862976530240420314966956604672680431211776896210639348374726260835578156886025066362184777930454856143445347131523560292737493299106848913465703224014071800538525388947072270722709393538724446912760519479792418720175708105225187682032344035597771017112711442330292456970983252217759816745908330547074520121564303325321719501123629032725704515034057743218326846183237601343938081898476414697919243601517281978101250085696625360208090953447291251368899738823774378380665620949558195801051461624105786931160153322600503455076390380971644315749575593785159330652681403291711818859182300520684490016714461502961731156063696120517219746301900767776344843683373775600969275804029081207425422950686100708398727212050418046535197779787098595341870286442049123765868472872621765277486584080233055882263984960796615890775699559475774233713510445477806958749956223630916784022103849397401684224977871865048892241063941526321698936804368516539029909523319996548726584746971268816577371764097077444662182865141433008476283020821978957095833193613852992424726724331854447538804523168583488933646247161983066341144255391358100437013175526010847295822354119414834030376972224854992136822089080220893863842675365405686156360608986241866747721924360909815753510769195469926666925875784282096493856291622526948634563860072614924363647696607337755690704930235334263257219441530664531638294887819810574011487455889015746997887323012141361753599286887112157949024441494746032859074148772651629073514543542370636933120979313044513161830834823220789926678604568193677449169937992092056088717979458838235834705135699970128838385409284708376605483113772946592458527788211363366160594539410390739660859902451111848131792388129839210893206678041199522850655639327622657811459387614017876102593116198509059377255141294406009035332046540637872054097025795568158879382836786616834008001498669270186249123877547196996901619785387465416601734637003473277575442581005332131843444113856429272970635133229757240509883916915766597651661396133178918496231475001503513937368612285378115138988834918731624118558456788148701218937143499371745513697440169370193118852820668968850364894467057520492671009564880688489637827726809897596123794520577560668994237148159206829748581525404242156585141729440615977746457680610219251118026232491739757392618043225248660801461106041256686662499909412767399602481496884927817829631756164366801128993385930313352711195380312520968662217963527227561550998349439267131326383988108038475503980974174093508949185220697408491034057948569376732470465829029592474923349449560592881212541345856911601300334067697045103146357674559779339625576701854659590435490276988718902019612681006888286427156716864264572124602939775197945497642347754599436387092282738751591898583972333807177719092799802821219305970849142855528495801535969789691979895660598037145680735934623650458795494261932936781638847047983708178729468397440552523467379885971750783850863548845719455369012030849449115673427019559750955520448006653457063483462964846543470715243444173369119569151658392642476707682558725834619822058317006689489237104959441639550883110300874166062856860425479537724168630859090150415991135021696691901263571700647286236889316719811639486303999335380311094771909202473772477424105474176230667116000782422339770215231574890874091045621223094727736642841260958943729480798034112122493846636446642472672644412938466121631682305061147960679330760337693947029376388771656952360548267838464988535893030682439865470372826846500480808385419600058787125637851098362368462837168259352594109311652935518758914116696038216788051275696669937202146509004626453005616625583472208959294821528170396541277345421991831987619310264582239832130372124992114201872591935162260679814650320337701868258761603345821215292492263253728435553932004256775170727293198387324952020303158925067236808660613560994497938747490791371692902082815974825411828806146808106574285755592574001663273440871715584257890117365210366815336714610639919615191919059804975544098789898168047598134593106548986069267310366075354636886795582808647991886780732072227362859814653025441012733241492919050251930267414426619030996488701610262397700872813740388068697356630370602763585693045496780623147205409010943692874764988509941429825116999317522747923586901648169348950293623971343385384698878417502473219310628943365148569918919348586163114966514664994427328233049355245568970554342760661947107198195964157325582950376022222850759754379985311746362937920362213041393250303438128137854868206073365839711768117187046622901103887857489891578140633268491382811524668996394681153079558919856710574705533574412830181193224667981322844551724193613711001223678777559457861201160904178043712734180680083695070238362046280604899280685925035003388123182965849045185621027694394575050614046449592205371852654427815932208240219661993903633321399172838472294681691043033873797672274324726455050442104001867131573752057636244536154352712165311882179550585233530457541324519249716282383304395697928026031756174144101589827703460992936709677198227534023346933025020167337447425479944296050587513885014698441132798245661573579951622991095779299082735047143214438778867685776709754370754862325265998150970829137756645495649279408478710305875345642415196857707163968455465408367450664371768183564106301940305123156661179467875231757818536682192257714128830385813890395341600046042690395074384133579648608344429437043174804417584998666455018930267178085433775826309107404454477036533062789677571769359728538147240937406660923422802145506217470419202822971984261632797682840148343798095062106931338597747920688084864575450221071106892981140057240220654156349898357314685162856952763075396235268148998425435159854865842231619651058693556606146058408672464512732413503048332221239936900493070816649756518863400589489311772660976150194137007165397994525653202004479224093467847684944493703520931663235585937148507671814196821973166168698100565818246579111182809082291891048627692322421395161284400503453105551662333260464207433634171986763548102762225128206998978421668025973568517179938095662748421310026381475018610797750592499708591920907936186880298347611705453615935305223421365394609780909325336356616271071451345295398720234994705086275734651313544952915240053091538190692319406905028968586102525144707768674054340590731187513503493443388981678391171045728036634746706611811354007078570193794963987412599197732066436870101401231368693541746160499243275781036986371745512424743053529829529103051706177097655124557283613515368390292874783582462226651140218674636912034824101280944927479811015246691033200158243830705826035943255593007081012631544170084859272196205205197681396121297383391582919241013663673073493049925364137239758798841531001769372702076387670211262956293572035713161550978988573007196649428314562219731268645323267158471035149860331952366364498551160685564474711067023336396409645271720392379221362728539874973088908108565919386169536268053094877732230745639515758571741218407956182874277470526264376061946618531708737060610513657995711033364446942784865887836724323619792657902488955704399999530599266947725732230677896391530789221622885289345778119683790859263540439926494492572254894471665202321319061208665734649544320733237395965916841768996047111939423225636877065665567264568901690501796610224072510237030750415312315080825229596163251027831328466123157895756942455657607528047712481941935741843166629381669987444562393203118074450076143039445039882793419018584915582732044463142000324380655670554734295104051711895032697030637053270139720629474336849876299132770790723864197549871894738349530172292096500454607852029029662364594630536988626572494692955430508496513739760559088368351488600549841662838849061757758894651470136826599521434707397098035737866076610374579579721697795305403314780005423669310236048705280268188278710867013054027423991928031389478759609952811324056457194277013122971841217054477733543964707738903171331647519138060517984856124048770398452802519885499683510445692117059127340857453208394049116220698706396823689226752089000562639461019934612136467832214538124054414240614244507670904375229409669611655421744803088868618563009219615648609836787040072922440706513045492655892199868058323365568431041878003472891001407151384035207862899976139770182401915564031599696775175744455432534313031582606777254329203944035402764764065321991423602036883642371964949982917692167529795972232114549248453773538537193964260601224844180422458676797415611506964189173023627009573021258993043512271176209923926433355851462371498841833456863813486251266714526389688800910467730272350179286669055450954006221032161468276591022952555571516341938936432117284181308287109328565361329569023577557555953655032116812808177693324861014506200118443364386765269659566421569779037057431428856098694977270842802651050647024477556020483980223887476283510393660787273422023319656951190396046048390846052360188538674119786289781111310521529755739730026001068726280621095225853108608524548641956893189574923567931770945526221994874457753753131294348068289647546030122104296343560906981277353131679111290866449204456386771071442750969057170892377017087220108228302630736135422945256943905973883012061067161252975768569651973792211268053250791673299993547312493054851537160230768403395040472494531457374479174747954280707487420948968168763814302565975217927157021620260257243859016592933639453527406511464238629013667001292224726957056388876152244195786959783255363909555066249778920837314180787832767443696592141331626884099725533517698712527083896768569559749948519105347516893363209455312102248933876669047319200611513018483806556532209058032461252909496855179612732253968604561013722641888424735270539881077620188040169738095165484139418324357218022801962337792941423341580766307038889960095149001621437349292121595630875517239977136034433321262077704960442105455946603436077605605085309405084087535360721965870417760037493508789237865037609675184397248764748845065191495593139119128669738709324768233318085002530692712125486834077369108763118205487818703236566588967866822097456494669747727788249738492096729273290773924146198502435841581504033268106190980797959630531533566482999823366174526680983064138761356178134769574154529107825870844210512098700179551333177091707429687971729323336591401304428940499575362130868263099304255276467810268762999474272047796340315141541283378389414217054371509923414829547932620299756732371610812268134820016732945407683386505426983106698388417216991040950387487565314793507802797539296506786615011818463626254480609397129754019234804647636296794754957990429955072395488364161608404748393829346467400092323617164406949636713084607533575486474574924627070082489306927398843496316839966873344769629943678009745198120427814653895152920950323811454208290409251728492169956511458448838110505830866320530507738308141732540707113269327357725052344864454835056191532797486858245276114128013826803268316780784600530031058914476949894736638248334527524607410766764318761413242050892427391810442167512019163003947016387458657912503622071349336868430084362752043853965629830912250607279694469347830948689768601776868163652168283891124988457829223637253724677684910216768501032712134382054271087608355771627467071951789273426919580624640699715007706751112720104445229688425551371579815325598018935058548450629163155450310835865802386607724125250172934701026427528088072667760497975291977355995579256432242654320595733676186998811512952868882135881477304189536867612858562629484953464098399010230591712400565462674966516144620813978787722931887416121451611920704748634516913926103719886301539312423814273941004300428930508535097552079445738448217376184481351199836888796599054451787631301557546771097937693428418033775235063867413977108370183524493617683306855142448740969649204789353891202346184983979517424498661055796649567159637921362680430585713143150154672700028106800778729402672329911221077329189123299756540993661805381685896401586049826308234315018507900747119906112217233139385060915495321996131815395328924157608347593709095440344086754496597117042838364097472130786405429063851998580304639350289229760883734554951706028113726690372293328695686287536124894759019996817896721703228114417449366198129721193924567826878589082063318269612118765462820294749794524861518517354853889498396795469835407081296960117511905042828990207525984342200912418793474604076413207879040538909953997076871826522910925841924156040263157152501663661985042416701675236922159563580811239407666624641626722152342259052588500930308788376146662912329443558697692161594904084037504703202025154376958272664519170459335229001161632544911009642827721741439180222918311826988350524408596548624101149471940493119204674305052242495515341151087040149368805255821765276720740936002200174644432276172507412777961314797367614487539183319511730261230712782122062341512105917318765468137402681299981215898415182013028335394857316431046871020063189575921762480838974424747573509072729654293516680234525380842122179738043017276845792086754368808481654738985644731271424443865519832276291504810732272744648354579558120318873959212486652284925189674099033113439583064668246187803227290630875046471185439613329495163893445321895259429467841637992628436179760501698731197240420063231975425269261561367728303538995296693421702007063845139623351342215607179438040174930023980700536066586852107050430368845543891139506438820096961528821397271686230728182667485585688951037341678730170427660429764551044370733273683041202549471527723771426766433497017882356402521777293918321936730463611053388722995835431820564217452551045816209896561196765713259048587620995788888019013304077914488656790768847301136464713748635477451356400727520507794385639448321997003134740483070258267228782486885723330114440550395123142207354552024400973034025767557584877098760143029298716043771202245300154823814395188239507375003693124065684768343446592870848329702054545376113734510809361321687329405879483091395139496394849754120633907385168587437851700636333579130545131468311587764382969223887288896184870111026874880541632770759278511458626819443920544087943528170094699846513350292891634835573924437433192431445438676706802428645263912109152711278831830798515357508141446609025307609017790231145034618226395232042015752500345733671643220849380569403680107811732201264537959840233612628130036738013295850183692170843048336666142452041435060562026305050858317859541900548448270239761849812030702176891227043303878935989652318384328234535738937264683172923672549067113100175743425821264148613558011063088101991224109608313039460411371111428477929382982760584694892010129114233861650244537716807307949974986302243352793492634813736352449180564746638240831458097442437994964507326935202975802035178839363005960004030340763809369150554484141919606100658225208758807612566029875030673537870733774917069500330531076920224779548830444163525340404612391946655941412252985424555776279652639016623157054836303701236492219995451023004195861407812939243385290668757917007709408653161776308940416386197172925343358341840665287626192146843872412429160749675721347338372257744726720789347034858319645282202629526307826780564661872068279000530441678836512125070064523431039600099258591702038637307375757554301469904656092965623159949378670523134664193899773635636753578915296652779646706403227775441905897973726229871420516232328874086397295939664330965305243546714259286722022079481809430698069498470690653216913897939399224791090379944482338104170369008720783012131332618307333175033568651488372383944372881556579747102680215035548825512076967480375183491238583690846101979370188266771831376752898564824390012626997399866594405372492995280547454157353042414101099628395871818221906802735063779262744605405140298112489719818069077489074839408053768302288890137061367366789751119630433983188328021801414389873777697278862430858905603182092354597777459097830662351144201971705038921236959259050424172790303394724438983855627395149519218298527139186057560554517946229957652406319393062741050802034184289099207508205239562830234001009931548866069284010238638196801614722033636875365572287548827875466010465544254915882524131905388188663192681302864407928514961267404711212296850326447326987064454484597920922897559125285601251268876865197133101731955634823862480887992377358481448311610495383164005371681996075091834468667383415866454798025578535766976014242372212998215405260514608797272764268836348007744876757472050778482116774922614726365577454682205131044056538599247478793365900527594685730490388544584718368954368348798199867298129326296303503160362081386264628234077664432992871435804476302317208567454889019921408276763948338627445101007850605319486989566644316037713670933108728968592903758180188531048523308323275893836736986467108652342258093664202429597610751377756899160030046852842699061801321097849695123998764096533484648036320070878014530966562063819947263437562197166448545891730078899984801206979048593330867743767005419822875576548045750708894292199750444426887462421477972198752165981700761488997872409327648876483140366674098056358782283409487614042735265961654450870314360283481048625159514865586615557979873892415767605961814378187705197763245638761397720809164712335506278221201275791985183717803371492543026856779615216180266229722870652584728764973273825450172844908934345787719966833008672177225278567678404909622025995436985556491563433926980559333054376371498642413917230211440036884474128724236550570034315794288238448610352130022212276728660453833005421348151680043473271042672019625590433164022442017298081591389254591958642887710109356818034566181540346451722450992604995589283093605480518104314782579383754610536804117877217885918893603481551774890626523048160882470081772123292396586922541005016411180845640057968077562510798806074306695054059537155515327229842966700319761378017962827786720183627858988896643617411703567088150630443541642411004086307612894003002871037755431282796080941578246716129431300645096542663269320695887783227239950713241406356049402797163662506884696296221393534416367890188107103740013701457027871388128786088052792376663525190526660054210085695741886940686607816013405931073615587495940111294217520911790997158706278043960071143199083147699004819216299675602759378444748080821861251048230849325913061791317834893913229955080197059721995889032293617428507958754182844392949803789790897810935169379660475718533577895834801179258778751498759552578145426941444235553554651032777219078845172101882880424438751963974486965431176136656953161940688168540814018150889276445856246187487685632779935337470433184562032424709203713056233788692178732692184239220393163140663041645193660894602183397445298643940964811021724345458798719924898545047422311552736535519746240652070241219082111639376811605146037956945959820261513487580641515554906207718429057223222517530909367952941984059856019112080695507817474025166259128361122725834593893374011120727120753259109213596211403074160745704851231237513436347328212451944669159436134147427706507822256335115602685719199542394904340269743522741804547221027906794346465692314775089394168853131092905072200311036835301431504524038028340487506969607985020761477643048453153628644733135415416680860879851296211440985783138826904005099386995394465611223223949624176456162220825447754437262189646967104422186749061978396714846930957651249006711868797553128837932088318268510455314209987030755081641293168372755015601783350209899612954347889291995171089245819154141577154138310119953000312043238865176585641437511275706614530503976717315727515701362812765024542405357983732964048432049714911882769797905435520988215885269201198130768832147925838546591106844040037571232684654991507735934355268938586714109945756029431726793420543864736090277953381116490890233007431857969698374589411992695593218125711977653758893870241672771740298584691737410417575250963067818010165991021093692029430125022108635348225906835575184172097102908018087683712280842679574149145202563689664042901524730419394367627518006802607418943441348102587949977114978367512289296379259260466078775333095838457748196633889342167580576829983610263045802093041749480303940499665362810105348106665827360659914503404307362657786966010563015839914071138829412856582827961673160216711147565135099115960722591631535359708223466329676129173753412490089754565791765183958584126699107857795170390586894868549314311530638783285757636165097802958323619448781888791447646140271953624819207074918312603866702864970252390421075254809680265914061888692721137107760743053214270976646905240567448505668971305667281833863838276625801394198751681294121959068300277518554313147360761368460551382872246502457352963331760079947904382596808208934977836541965554508544395639075607836346086432202228414889656100043872082904168185617214018698424041148120036546007341330897021978142011772229158245793000834666711905193707782517617609947317578154019644538363602568893573461835959532495709080553131018298240179790612427476802139205026752996088685123504865385404382900334245110651039122759860419349527924325358110885055932550130451349329534915501236287827145638073550799508919461417626031412292057830622345307706843036881560261001296654058935868922695307655595831686097549084156812472650706335390710053238756809255228747815615516068728036899537950828458592235152905829536693454033226959517939376047283156525882325248880814218660087272323227783463135028342008365406198652235829765727076738772360582533254680006151731769857494228263646369460917915018686740776491377052443107657738391079256733068644804959549100780017088166947990393202825333208138542595311395947044868784156944460646998956221027239467745795919453813430751307466374562470675298846344370762479826813993545448974024189415022618376117631888911040701098917384947232372542034649767039371835167133011625886184189854101531199253654005951742794080232244520850458439845630224563140523313387062570669418087308801533562370774561084762217407526463730474714889175570832188526622045414050167848775560343030879867475758479276318273482508028745303635182676837853534942978291112866276287502596564029377634639929294995838589101806340666058746305162834149641692079728353526723259177307728797456676207335567200126762951666458577973615207992734173452570853943459404568261634231979776361038614130307350768604923184152233239564598803208099140664234603150110063611765694060072808491305050744955162233372925478055490681276065723778450550888933414176223556369922912543413268921110280467842938325270559182790190701047139351984514328191873894386121267036993270157040700679034691238467055035310386485779258631082518302597455735756895604647657396048041505606016131023622884156444142222438194254921520338943604154867323224880463507080966383315078843700276518144552654235546629889914240717469906659064672404603228778567158192091099380691485165052846160326728869166569247564274840396237429479838692546573719617212947521453028624135852364165750569616817257850252491817294262274094529201357039158669913424700546212356667019453216990700694791049921078279130526880123788068879516209765192889795925866693746058490886251242118269884446582523030321066056786029426296377437534071831466191961917042140065714190334892761545082995823006037254025335696603627839491262876846286804699587069665071314025137565223441217652448559234528203969913601080418471966769207385540259069221262539686076325621671668284880399112567110079058331727123350994122187558923476209947744089152898305740404286693909812440785070808692708240785613722702809956578757218280713675523941809002565656571828118271782306303523042183115443858340020114131550317188719762973851194164618528931655667542186952181472203735444634741513333832372623880287051552025263032804218208596556681103468764143423116487901310157725694330014193024061574341224940303370862714821939634464845518526038333678705647182227876547593671932003056713342867048787411057133672861502321328778564536795054198493634163692436981621461482219637547116045090082490457923883509666144836731612703538182392026213156404432141927165788638843760660784033366613963250340415723477211668578287862288903202934994707151469382824275184536603698052930324285424469744555218495566387667131458033138505792465147260557950275694706108134412725167867726002365803786248560945851353124575918017594888603138674899250942836659031866238513466086469055089315767010348415862285132392535237243264763164916092746106030432033291708328541023927890176179012335735018309450337727387164976758170586171915292697116006720120604564431031767009001920706581777358697831141746419302912091956062853970369911123287688048334788567291379712815958709695609795589866324134101675070044592218684054048472558183121765724285825916144025352044967381297766178427809804162639679742049987231946820147644119138280606033325445654794880926165819087711378418564245268094144699003835529628567590676067654492888918714834103010586387907657902598131200044964259490779943917769137434945256669349319207835742524887026838992862242082112904922323931050762577801828502625958462968861212057533893702611116902000729496310040344199698065611561416733500659581410784665095509633086208925548459225138128090782464173635291550403196923537258562381012642466317556529860563019826239679938077959933894097503884798811263364542967693357139515315660080292505747500897033969466790805830869505368756455768321190929943059578376125336544151441412529634540885890878236252009261380866048250608002617238418215101974357910551336952354339676991146857805401118586098699286981650975623426043358654349237421787785029132437556130629689775768074559165946423230766211673576733965350620733865574692362193332975045325016980060860202168042087984743217576362126675419654000180891694013596743645773228877563867469664193758297961240389739628277262032026991100298934776265398963917557365317127496732127525749887475551119058809855444264926368059389067884030457686749650243257122998340892747286710418024442448844640755673304263282805220121847081153127135023181971749234166210823652904306985188672886549125178465675449564146519501328632680698873933730647023873180604604854285370696569869348288375837964222377446863094037830057516328501217058408573385521545559867749374344443636677173358323527030800562620208247631225299733613230920097571244294296593230389983268499634741117455742648882719790363445522437007163034695011613683810768205310539412974273108324867572971564764366763835075046002780356532681265119120041506514162140261682256983698482148058289767849436019242542394870261748908712348209181782702340724725829727785015059432747169317569406460353806710867647292474720545518832667294892577443159804676263581648576183936808730901645553746424282277416679873541896822543238194469095617264945304499391346231972082629608123657781953912673826072084705910826526280157191361362995322812287851808141431455033047680425670067535945343206337285951333681946984123439240450651172103204370440081859878234399121785184727457405946649082424886788696163576535773937591875703216390560360669373315762029995560052465713127123415894947183601202329317938518700329588043037593910641058169335719648197331738572958182617719127745055226885049994317873870586286469507265811293088125999709657940077155469512234769861053241855284816885293035042195015585275362162749738238212401430422779494768623768715471471764313104610761057179838006609791529073409619983426439465797743777232346927106287604344020760110840649420532199575424082679337568801594131037521349408526577182114760603019471038832637263473569907508125725165250349498181698596613635145794088635181137524319747514183902212778894938854619839163093848699919329985178851888971191679489907048179944664795623870229577302625360980566427052204478978041582228168383106744312766646809951479263003537989450767118480435152813660001495115378548421857563364798582604084917782647718388670113335013471772384408516741928752523907359143450902389921354204859487508455822820987172245534723662061580793896817620629615561966102284963563271224479934188713380957561965567815779661019608976941249874567880079913085209823633726083477403224332375129635524731386956425494104503181083840501079890515380136457650761947473394652429867336927374345655716847475160543855871524190445212738624065972520840435971830733505775966518406529521803305802519231402473953794682170068118396728488771163438378606801766277442828173542045497345025984524686852711724057272588227726771459593440193975376658307174204521601855558483317147936004417055932304984518790643760138935240225818358371269212425158909980685318567821621781045432964866937258254681311378967246003127950840956614430293122911680102508425412511974468121557417383744550932070064675290477813140065332872598497771352466707686599392960671929419828445490723086625930338953762105157748298218419190963414097832986372513150029793601709910363913035324089309763695598070884833722068554499924445986729636755804973286620889771986859520753715320719067312766051248454248147820057949638503570975115947274829384742141061109345879227335750749368917623263941738980959374733988510311629272880311440295256510064255830282272668481063750385805140765731850415139248170736906559575848296901684837533978616962493896328717378439751787443691002909367524148169442391096897827377578824160286854972123779169546094557258997591238745357948036206584088696528353449971913708120092711104171451447790054812340308006909157830784294929756688388996065268947221244363657003755670310552042591140097491488776624977263948444114547066839825770022808478674939565663081144938040940973394891940933355367545323308857925795913924034711870810197411564456330249485104680686073143851521887029103516974546876699234906809300982218056319826053472792533036912843652235633369540205431368546517810755286119534699861586976592926008846533604528522326845497799842586816713261934007970954233937652884261062077418471016574672899647202619441249383880931544862632130095447120423337291563033489961052143144675107946811093996249584894983998902015590076999228282667316791069893159112434751659872404202426276164603083663841280053348446852444799949025091699040372030716882894781395001729254718225700628602294298838578310616374225002064765266177121829592987244275897056928605100246214267096912761204373899800126817797651350888966329885481310128938968303439954991458954823125735778327877959680846321486073318775346504883674375651168651267850493604698150993675182647165116170804840138728930091756607548601398147091499838550023384890054320473227439496817363147186203943101936622859573686806737573853601796767216707586861900810348735532456052789195039724272203218554596827066807652337921811917409899784506035166582490596235287739758432095255178512205463544088923835107800398860642913736339924956015037944596474223761742417599614664836465483759298435663897302567291305230096283853835973607882224215560256941234513423978557695403127611167254267716688575202328525348777278614725618381900497253097407683278811277547449200134409908645331999744273894240994140280420040408313692783028819382749206440314415564318372544243325341936722967658393746088122747591600813507111408170023653366297469403660890561603633180608899865519588730247800101969314878651993487303741310952348594573009161588642251176179669213323543489705135071735026160956157640697793699447602511218855117423332636346771126078352557167531279332333622332927543739277447938825446228680136943363226340124961411206516565795339940721736390099378589958827484979266893463497081649368079031911709871332035804165349551918685389061737093809273231840633335641946469485235392195209811013033742907677070702543686339429876201019995730501148038276947488341768219095642406447340281706194216599098044794744370144869265591584317371522743018191421438591605329001938227691687858086098222556148928712827779586833470091812714210738602219858026086046438564475088261059876553785970730220362530214358832797488346173137965274635504843332722043994340167983441225467236591497053316870504844605819599180975907664412119386544701651978368150505560973394590051203267590760168696668850393379892027111062027949265143247226520433332481755573928021023371116062928781741781862273336099870220416902064513055447545241520767726655285812625578346479462014986155618786839735717410520029606747233780658528338588879378418676641723900945022554906286182675070109660957342823445056493602057027830876006491985404531453982037881531365140259549557500768709349589245890016724009908809857036963860438390084079364190391949621843432624958302541395749854452454815062155532942114049092091032208343858769816276314055008374756432604999834206697745512995657607377319234950595311569184449905957911024989954098615580334362906331198374349000460825677312593504136527896688178281177989717544596145343253849097356938511979417251256303227370059901046318674860607951535866286908907045975681152674485477801786607281032034003869554133367563699730507326775593631107652716773072547832068673045279830514051105327295455336054899153493994638831000361569614194224353390628618594437066035173766050644169879128044752869770819218749841326373940673539886389701968346911281959415370944352977286331778622687991478900908534650264634550326578093563012699281679236823173363657572388189005725963338455355303012303866230687687534385371596070389012480012951401663788451919937213332790584601641682954175179519886828418496280414096311555606611634557123922610018816480990224942912190605871377436424142846225230411453839454342861754579304109524996612279089440047046071485864346585685278785662654853679177746415757284802914276847261076694720877027996562245459609216549460010436150748324957983280757284379436772064473650735442820506655254797785902733710820557165822732246375689708176443167820809598297541612576691966794646206210591871108524210228497214196482168475289640734312617072509465713002918644580390581571016498423284367962783562369292864839901046735541540740391861306765185613601860170615171740189938972530318646892157106074813740641516526591196349957030013756574534446699378989972590255331408995744991713610942868098710407911105397302510274119274015759160248510736450888190098891526979821494197191887039758109264589516831186581507113867684212594419792649334532282825463801504870492211730243060572349155023115933603398508297036672331410548747248846989793214512996220705906862417550626313207483231011049155131124002959476236653176998283844157711997819424348265313129179658493007905535701453671642449658339221028679203994595120889077312577821986525950105149670328833261591479622607147522864646596069074102931476351670625435710172739686474390580237355166621808998038017382031508712153457455941260900023879003878525951015110147318150569169880221102617220446747125426288914632422558677098997502116185995618868314657693560064839341629659443247840492845470400095827479528837639793498728280454580502135269807057654836618300156586011932552706546307976735460794253460702190652919739082492504664596635377876761275952921111887745554493418652169796176087112480541242224743358134950380356531088596075356109879061359362839198307216272552771578623352032369374108941486089160608891340966601234796105584982204461030140959223102027043255440358398128496837807981142246374657419465624048039287339650355251611400428279581179856083700196800808344436222255478374234999020856428277444596008081997567554418258242186098427981426302736808269258217156340809007898703659852195279252481521799141551228454481603051261751916125035307181483216534053495281497814517422042189769477064150998295920370613270422325012710676301911824777511268828274809782094768983607978245741087906962695467613970978471246292610496172200309999896544298939296437811756487486286280788585902401109045463325343268274259978560753018911961862864493848786887553010751033636268947035243800384539002329315063386872236169991209545614250622291739313487151217396194743921370795810040026604614526183163494067593405066232112046771602205259080126946548558259546128320682378842490789998633920532675440115448267047722079202695222118446213130767036168821849856834100385782076338405154893991404779601516655177944114815489282482743871889648047481731203264706564240196521233123578983063312189573319785493718796852257799706016761802511236188019186534863814147177071964675738102768315416396215241611258986670255697432886876559277962644241519029148839143435228790424192676014216058094421469083436301209637443956073001272370150871960479719888406806609733326794980989121795610356830716658132472313314704778800701139370547352743265532735443189499899366162665621524142606704591101181606034272838471849191451586806670109494293007253523905745442209185650666800085344392768663922479010751514605250421802956176851266199388939657505547934038703531340817293074664537976290305693114798162328257779999352625589896221194424019398977106576811680020006514243213065194966997394356284830294723895941725494410788914407884386686313052720841635905764166104923411071589161596053256438753223214064626423123237201742872109410183526698516243526313705212880526602997092891136499268689465447629208508984686020177317330054306220808055043569074027989785430169929863443614395592168091444763182563896594491435768859727421426685117110614423449956987252732388385144661528953847794149125024044181011159881142945806693907857660220905204626390249247995147545219495430869908493518472412893062676256316332601407966558886982740624262330981828173015914393835967152517343209839854012129083944729274041429970805118634899426988824978017639560247612668898895995712318820269060217408926877355868435367181013465167664741887003938819652651740683621135248685138544550016039287857094649424954720562244758458287701520525976457056967319457093230512510059242783325335434625751481819913947051223401959987385302493216912998185459637180961789826364746921325216304122123917888733410037238489452679577963615170331503278386674699525001804507118605083699279664209155991625720541542759662337943841261287707097726325543339387611260082718985825148512533748979020118873842451157490655117003883060798521979727606083989271603455905421332330721676104930764515830831815223995047052291525313888019045032389015449218783597806802946441333871657857218536070068623255639554192593212125423715305159859153429722206984202793612964359991734415450959233504022618337377784434128364612305914992738831806063683514313667444129560502526536592800983668093475148633966941691110274221678079416769790662373178719817209186181756431415521893262770610197350818361355082507462058350303453165106458649663264088506664194225767592201133155246843410986320242478962591712371029847282251664722710846430156262301615114279754137101626219903597653991831571916602490079846212331871955111884721662879303363142434003342560495227139398801788149241889889448928390838082389211770457887020341356001055084195205787104627765488030196648837734045089494182641368057925130870172231924545069184613803674996592503845564967357858565405424498120843854512452426902337572025695048627806401682437843366458614561259825517460991469431835969606239615628898243630211343695206563883191014468591769708441746936867887637714607581881617182681261891697344881773304447038136440735066760534083018642714552966217985259629290835992039800734959199248338383619881467479574011686350569045925785168704129461307586112371306838471203272043996899181375424757443248843492853950493009946596069720583361915810925788871776079999666449046511213653126810343120253532190413035220604976007109285589306516967263026578542931039069603586673107794263839013475245244109737188573591875854174840701517677345167382879311898342389037923207178371083783902540882028175144022987269569202836517153967991435953779048738917236663743968878478042790431034056970672973063454784636241978347688656615268379532826303033370423807521895069173161085044326329093315742492099705233030644950388890682408716106284066397590302603935403114018699493824193150318401664137048810286809341153141976535879804640106835337702099908091040883410805500943089630412224939218995130046759065009014977285031594685359177048319708923430231796047219589259462916724072012015110622553695256009785361342970206146313941993251493025450179890304455602134712264932367806266742995808301530088590972596785383014757988642293193076727268144127272203984343786418428769229895291314179374541738909097874393648736021070238833513761206035916092482577739028269889412026887731346402742167343205775040650235631788315741119411366215304272598821503420296739906962512491049129401096343495785953592359334626532036424237766786247640870343137886412889539931051653524610134337622015095044873127436670137585537961901286580962311064913963935541165577793958026775189635172344989499453188769479191424744542456579993223479116140208964333200804104076134203078030327149368058469798047548272389296344420846829179053236856332514796142288982856489971429172868357448710613728035848318660067811435023701397385127615973450162209268862308837493980760357311532157583503505796777414615051671731154876275287821569834323825132696887548334642748439879227011416049924739849157446376833244742326451606186329055341590544934130292249202544537582102785121018632064583844568241961583112892849852799935023362790126148271118052907065444327967205578314679521005071824545855225450442251365431265827109752578980994385526227756728511405996869073983872058496704138886205213182568932776354122038818109319813553775233279513481014641858958424762553859977307727078491376689626786881105270766538095364946093562661015220570727357033390193720180342415771858981248322882833492468596861315602349877232122431563975930397905633222728060100156264726465598574220770835465694161087051280301029164830159909174506151842791912840537437990720159307215923319202253441872987394823367599172021224197950701251673387836652878970193891006915520158005091379711791114090156570652761306151861688408649549218218677460500541035771335421179165527817714547913781305060508228315192994237709624043714906747077834550540719635858662714224286644442699416396738168607214861784033198618622066324192086910551462782625463971015271986642917753816509678417031255991277008627947313508418397562358878193153670213653734426078463262355510032166883500443332451233015263623504688292331355291882653620500393133295594049138908837675886538413865875227827493515659207975461314381515955431597344644958498263077451533972563383261727035732096783791769711926118782155803167260819734155240673517790854818087849237488899671660465886493116866829775418853576692517497112665603073227467365704441595429174515953816757968019148220057919121157733287244322795469240229653288219995243072662667663615893705635724297329969282165331226905821982676764886342242181989758160495826691279779146899502909870848250433624901914201247832585937407971002973717024636195374982308107419608297072086831854218219226231355913418419307613084542485301318660685423815197058734910232222272185271677107690701371454505917219835960675600989768991955984848029105080345579527673261936318034572175624259364835371266833860182226795523179615762022988019423216647599472959078376179650397877110983461991515369410572340340574267349122778037022971559974231893137021083631538786244108699540618879504868221392451167998572232396903656885225549686596108167201756395985869025288589878386053256398293063704335839941098080944911695715086376969984576323068828881756145821823942079383386154046586960536391344282791001322660461288793119441167139512312984108079046167364645207513749732432534625240724786587146651888625011816390692975665988438506964030726352999718557224030939713039036036380562162468472520244375779111868867797254806939835107207502609613549654627420972758797867610910256924734924511990171867873885805872396964251686144733781921387121602893033516592984724480122935754014334741892240551856358111323655968797094775681278165654057616312543848649516943967706175232065251727564264885950517480748993906550744655616947747086701647263463188980454243838451777008704161385858251553993082351395903278158278675532224325166412037940823117222706509773411074050328585281884569840583749444715266862172892569550160022274757269259621611841325613025809379447601323538159984019792054628593806950651465363778347370003838958031401190582638454481097106735724488076881954177980830624191143381615469982516580065968622523246911736852033862689015903631135186096203911662534607825626040409892016334745466128387884268504584247085754272454954719782301997063980132282991936374154068504481067668823815512709980338017107507523427714689115890003102972016047436575816399080813648195089034720092811023716701081774222025874355671795534122184428029999503282575145925591565370199126954622807200999900569599482820570039277587240841571120569580496374328695853502783998736330877069009168197262844449362477552962389780723878662648088545658331781332132416586735893660255819931017320250561089595962306409845280022907209547688730825737630465722232274941457420880457386588794142006579903242028961463749255205050846367317740782452327378465247337619063266463114354680039869796003202646398141395852439648665346175892150133817454877429351368808988583104720834218086894059324175206751995630529823969086115215077415838174933106933927930596293881955069376945352022813426719110797729625878533615068331931730628628322149790018062250664565471356914673026295769094830241932408008337222389580315906826867935106952557506069334790298563760108919150838998808941041849400544360951545327745669313340450885310798007397310472057946135068959921949309881336169078917942299742636503316371943068029494877756178775975566186448489665354660903889737380934911792015083315994351825252362800131111592134496478964332768185637788915640091710266553787166257319441137763592910109072252412046275517028565871144720473890012455469378233917851063193937787837843088382928407157029225691901387289897697613772353742831650780696175637668931146024303174391085517206411770807713133623264713980172160925056194199101348473206454601114785442629126884866357123835960771597429669454091892529978834532216676477005853293332805899160565580734619650205797786151108713859847992483074134609882274037178565268490954226273736486423248603845591174756286985611152840538522825723389320718245430319983559459960582845570745958926337539024191947401587268957679876143676820644206915291898291226672118987256163957974318242495545439898517063658054994386044162474603210375851049477665115929983024809314216152490874715289418929827523039266277599378934325756700719554298956998900489387536078279787714181647619042365447060170442818047277722318985937024339374836141208851571057739438011041607659746515758823764501444458982227255510420835308347924479321510284720763609504760422007438118009174427888589958057104141708052923493513698746599620550383770553945812441156949931598116783449170105359757984160792259734239498841638098798607070633064588302558465808166945511959168932629645760646319919151412423243607932249735033740021163829490819669381645085862627110645743515467554992142163575089362292351147215760088396370315024153893692733370873269916947261817648369337940403353536125984726279303139778499064757802341454372691536068586466249202755598466260198253544783704657457080320388693281007672144486469925758124313981810676204305632306326319808797893245356280290730596467041665180339271813853538183280932529111054801105091305287809095198439785465793551938807715902810963257545475198132508700770325592052388996208308602822263964517823074495659067586427258553548393744213998977357476188040754144680439209646251839064722018401270233168519066968788879486260577754746258917664330762672259777393250739346965758752850986557964924170505921954258532935515753383356507400222980424779739465051923401810627282031683233671863989768464744759397385552185719527397600604010220078363398183703197927726437724846042080278482306506829328290834715437585220412052518903400511554690635196637133281237195028579975377460865257703418238140931598789482706612142740213754280941046270104739171147611746635312282649026255551508862902997745497334830925846700822594136399609586583076489558729061093820256241139739183456397582932327116640779517310018159706941079022393077999432215759248075905293301481007517813405700658000648545850572318427415132295300920187373518172483340709901473488014930542554936129086822321810543117613943895274114239994033902108197731713026451428665301269515764949661936430827028267176892745729908111178848974306043553983173927205916631510742623673306421277694747005280919805942871054246098049802209487964887588190814291837924370489318386591806178989048353940703872980311655638934422625908940055198441188036271071296240620522003689452030544667382760293390058939452878613226941647368742247120269333620341151045928067809716421970105950665165686853976261118115551147101103819830410338613766713086595774774515125883042096414701680284206460100108173408254925270033452496745411987428813326380049344810456225126180388357347695583784194914842157259734960786053127894890141166047525928733669883042960819587850197042473217431879879651286245081276577572725214414828759872882442481474164128508590467776887704846747228909835830621572593202959467670259793128647882917075297776057476305849081041572100845745594300515179314543658311515970984925363491093865258164057035743986767956813231205214604380785120659322993510979692339288469396426374044851716781983662995686358640210565017424933873596925438654568353045024016443652805405703346384461395346331950698835057895877368786115687535200923363453337338749036128994545851998960838904127355800338189615522811428818596289515780286679218329187157456025847424626099427472363706807965617123155229863773983238821721638914899619982025377915831629721490913600862147190464786382177022513728436459672860667907502909968359996040631463694238749612660506946121930019931636001338503266933091123592544138686632697635331266794257213638876207687804522742331194184947212542657394602564031929776727906253356594676872136776500221626527445124151550439899409207804067046747100889596874497519049081623393683834930930714485178236590120018341764014829165638746457046685522508180006484532076422080510492315403448116657150216564034629428878815409514434808614520080721814996822045655177332743093526293446549307357104679815412585363417897244067998406556442683186127398157015389367342841082483225085416820393125958904240942682730602921812241352335499003526441682640229022514815952676857015368485946194482244031199217786208652600002186315710374684619960798965517338948335643437435492407893029761320723863109677515051408629033989404899005192557690326315763581686652064279858801552837194034030025086951288145427105767671604774344926279931086074814324988569646403593315421699236466720022650128038575600523417295172130102000837032839900875576327483703211334684461032169951799364737094925294951780429571273119784476684044370697709299277775657178093036417744156365160173012949165746272701326205695597616352693909860053641104675729425713834807820585445951744136408156067822890675207128927854535176651976797282334313673014299620951605558133476455590903466410533386729098224361603015810601774814792051206107546119171683162017776082350235201828970784758792958155689856982290660901850342027797054257529459121997988381107337220575470325523898583087639923968351119177500509839301888653964367142149758982671072877762319792119336805199159779253199460303339403285809247526419099689890913035182030057343273575049349430522682026785401062152486649477910809650938173055252115403236184250065262597720642711352062223343921716325927945037772107533626476049766000828879263441313106236167441049839699104277183304444241522122299580760243855417281830610391584959862273103177710930124157514757254987401294367223592514347742337784145158630596778432306281617352653656739780436004816952409645166204561670837184944576026362153963610041036789870339166975242540370746113623408207109310155033055618201400510041136170936561421118800100351157631623637283938268859728560179118425242603915402098018815150437775262571233928861063453864234365641307314439425800596538625066837330790749077909219108589472264202539468391437217864708894864969691006294226442415091140946335579580639659811075092803870586292634386162533722673356863147339814893808333510399197955617109924008329557615516530358697811561375429835193815664901758436527143754162173930432140211136742664491229641641230961526091761195989546026202529100755736555207796821573890916098033726490776856424289467791569447531916380088216609178617529480168565499706309177881146187230408874585713710961508303416923366762408884486563778203302630636677143039987722485097798774403409218182853822476608008084443626668757218196548387420433989356872775289123030788598271900483231907120342345651661481214752009654529305957563862437592171660095697944157487193060339035108004790161351058775140377405083158565498726962463994836391921522466655354851168092871843845294603770155523081408197716437868979274416196658949677800523398100438898924373622076740080168679530977122905591687876005415594774353172632031722281208499328237962336476769628121154484481290152345221254774220032422462999731869255355889294438785206179641936890721334903621757199757449418461004995232231443367925177393084732730735845419125085294842031885146662202778823828515978057611633134408951887409878600200754719678307559831802422378187332155538602502395576220247719089073347972835044709692527896936932827674552642167643773904104366778796227355457781443613824901711729411844902974522671916387592865976905121137488953886970025179390710540325286112549636059745062629551696011117153884246383566401616003794319542020286002836165234890438765803434857625265078783703443478919076509273931330211150942416832361417619573027712764829974195097584387661322260641992225422205605713152110543933529718551600613173478606103293522882888437894729432561371695432784897740484502187411539437325611567625507824789673174153789714903266817835793678089845541542717922190473718071594772497711146019577183986081139993495868699372544282134679562922767974836869591169864308744552443820634915958799545166045052318791053758330777262960072830019105481598189797818724061383228343901363781078003161429210876931289997625848694025272919942312797277422100863104677541987788493753354248523290848876929460181400682033768393322366181615587794239200332058550748675626266967889016484541219410173616923969284171712290878882016726770589010557436341454934930152027708982632441417916985575701495019319720653885875927434574107907765351195265525168698257007117358693198755832206076645147538087542868630105633949006260668145913799433163174466104000833290504067226003335052819323686817171285698377776133756460719572885326316185582548679609112090164406003072307213134353888150023021002340690192356979467980758665947956378620032123774432617766170615674108291301751934888195780658338522946257391380887166518433288091247035614182183152565300686976774416955438935715082317100142367999690854175278203202513236306333296207798519739750026999832905365224208686340321317433311585846695409956210403880296869318116490072349065675543271439541072120258577031258227865768759244781399163184725076681393683570050990300295483145023927764383636537200007206691201219499132068519470111869426739569589623293852914442755229269739003131278136719119716139384852847980962174940430428029056446152686091475286871339954388410638428233182868156390073842629362756941146807404469150679465010852995071518332197514132504764167829033525478923079228215900997195657032890446119805822800876402408825461937218170839899599596297885923217882849413252965048521849538145331300392397065992960329467315740397406078159598221756665928136420210487130237477941710683845284876172704042945578282254846598560517201787296735267915649316861272104777155076601634742480606796759497970194213866358282262265068470352236101903396519681387050794236987458837992152166366716730282972932540239355282249588569814707333748667936467248862889280281366528590974994681119199490333108416188698301942988213991279585962090549096476082059044938798168190283960928486609317594868410313287591888298113908685423529099113516026031812824309128196271061013665015952771977359202760212737124634704695859457786145771157162995393791366653514865528686011535617754560902486188253739406058323938692609361321067742368529812318850078775928477258052423949910200355679216319355892413046810634282040522232927778139755675943176282536832853097077504922512203623061905808181040270047316213013490579294963669464067174919822173942928926441919336986128748458044360587120082715769533454448583419538793954156212680517893511427175113969731531964818411422981811247412841627909427129694072193843077323878824314570401864126147318380453900849728003198487457473592544480589123648039830421906524457948228481988501078772431372362536243486469761747688624109580627223878857482401210894504556926180998159628761199560040307137553270808180563522936150287730092516289427894799963804790142563359722135640054431392271231402991966494419823571352433978936612333623532864626227338211120317772202736069952596869657980622185729764850185763203530882727840388861799874138812365944209693220044151225357463454635116435116099663088288605142794033717933462420484022202921835179647509592814985895046478680163460521161619522722166702839354304296980106947366045546437244008082161138096512286968718337907680990530937653325292953139919890608009036692403921203594529658430575922817402956635785620281479631949680305454274123944801899224377187935534027218098052346079357110786285859080265463412559014864769573347900778069262525827206775007377885322197177988545427616652147580592885380178418310305561037987741409168933780903173966592017696720447024887198628493753163925653812562825602820274074429963606095117926129216285002590607966729171672944988696792386799608272012326533893975688437495746072298938152124241486666216329498445162729790663042460299474865382525226942260120056701148470616512789812753552792562210659227966746103754649915686108159014043238081885285812234949131804552393691542669217652871204195448226313502125030722119906742617445324365596239708884085415106360624838492681612271445679175975657025238698626087561883742780916194453363063783041822850388134823636154477932053147779711531116829912235088683421628765235469963049158301501515420237473101909845236592246218658941583868861963868475128679510010203646238302915042489818971659235624523564050707355418704238581915878629411662465105465376481065311785081542039891736570680180687830136866087891723107121763274632777387744358605466318534556915871304142613196104406629285844950437787062967172320702872518815600855907246157640956205873981466356123519935905512848998970017511575850857150037404280415738687708327007555615609283302147111752988794106508857889445662585871086506493207421469172799072689392568600687275117338404847945084319941908299784766735118223953384309761399657361418629926049784440607929992942125073053510537857151844806213259449869845238930502896767645453544689544363679047733095669099794542019343853745373657569041555228271010014281309930212945133328040574269511996832782676736198301036254532271955636474447905126502820269353573094524179715646337965593057022074813914795518686544540507907074201018934616487914955617218252738881373553452312337334684412025077462929764239058066667708741646414799609982413831007626432315879687777902200225224411693220105172142288852045049705437961488496898820627619346501123973746745321926288728450908104533868152094802730100698936002584779338722032081691326002024648362437869270426614037049448762082522399649514706007488179273285879399125791861555295622649148237502514581609476631344344020924980771360341432242982923882557226334303544973085727903129013448150471722408970112473386599057707454621422416225084541304416442814058638554452352014599389004236199107643610105479166055499550773956378658765757819597650992760687687402206856261381392600692798780523092858715970745276635309196122716399564044227779772857390825201374600557855575303672520595599351439894050204603740470770674305763309027466206462549676302341327487095161277955895480157689116171856582054524128183578607842944344348982824417385841285286286677757110335910116103655521439254554942240035142248298535399441122271490779316055490535948251360531642756272469836907671686480196476243780457784051893392439120786945902171921476103682123044503684788588588787320072931519940187547062603958675397777269069465558484337123454063003276371792891735221297671350195114225758053257985366537455578014408987263344992756817311383083472598148119118795342099212453800439703081196831635070653720930022169735856835761360619901104531558811569025246296986969219559246511442642922692311452679423673723553243077637334813304772622702174720720695047280550011184111584733816214810491728088127240970110980752633060289681762577340038916468213377860083240079531503168269068320524864536270247566492571283186805850435689947677389587816033174973001925433458152885467540413157686280417162448642047672028409168566843238315613537585810575605842898636107161494164547551129652068643208924691012388881052738436156702013224687323469521509861566505408026147692730683144590869638070723600110048662699319298178103011432638348755927792385257761456500522377693853375204393314629570500614427182023410952509945712290097478602971882117404338829809073901047198161786749473075535664731960771883741414081841791568175671493899458241378672236640950613974743124822288851169965513261783628325345197579550387495352213014744431227248078583540788535369236948654447435715270791976699613547598035176318986032879706922900451019687316205313773374492297927807790097840874913212478838439758117702443922230472243258037500601355174339323085270346510908399199394185971918492645122111575917929421988808679971517285557646291876390856485543868284833819572111029537168302366447099182362166916911121505675163612530568130294641277602136047751557074320079314510761429529399450113142287819010759003983448486891428372364870798702448202801903148568341549522577821731311547054064438993351910355716379337152803447427962813017593937797225311467485118246706829840003276227856387645674833563275240618481495414325582624772944344252146092179430489361960207049216148423317965318241743243408040108325180147726419445571938133409166238751066609242890980462232860156438041434039851578303951123196752043101644996076547267462240357850319879011134644468775777438521869721291109442139802533227454007426371394276061861386964176366828755832283868330199176200494954535505755143954687773122629891472765386780745100985381172011554350890926214539286705684776761438498345593195256884080388032065647909513449055617354198698806139691284787642994100370803964936465108419285986633124175106490011097252276503306031492222489459276552173170845976218641744032441261401802953416661900894090962163117091181749935771005167908673933535106745135462732960451601184251452502994488775095557565009202644134634262877118020255588410414109525756438627651195163922637965007179744290523718343449434149520638064337127774765238544124927413982917810402210451121490465417445393541352509142785765882582896241511808865621681881699354898901301740975758416743230360101234452989602506885577648040033672875018608003339920510319176179786621257969527070796239262104658136452223927913889178635070530142569564406926576532507715962954731416139357585242034022922645383440501611428381708035928988758861858583424456692982454683949406682617517986792273664714441398653348799708533197321638511485913122204578252052998317564574987949324714650789346362826655418210471442308623512039924171156039464634143551659466283922326705758977084425458942754557253321736863810457238144645377506963351687409922998820145107075365714628413661035986785740112101283497893674546692429193222584116957913503873190282098536654203019801337029268719631652799061609408785305516928384736863130485291225988525399900223321781528031241816541496793272370113064975608614736992874972336087660259978173102035703502085458040620889190330573930346033613107491440455987693516115835639065920814721798920507427156423507020486321278083881771940619217172089926719416969462424434632114872627977711103835309478106825921296418886671765795089103628366110373101497862169769458148469935217118029899284752216818944302465572402841515833641391614812727438805214861237352555505116893265145434186458795019027540646279411447633263892524580816552759362917643277650141600460715646407477984916879795732561267774171591098567143915641518993551794519385383795738788327742625495554293193532089898301922365887982613538819773986380409355189037023991937435028263729191282771853432197830398913919771600985568750346878639875912694914048310806345425110873852241680217675634461173040669869165739394607240027656858466966784485683947462570913172194648785890065813627307851030777416055547479830189619273483603811543879946561088278157763112189696863912840418408862089555203795344774286932146577297230756849689565546905394000541038344606283420369462142229627303247912687147646062628506024929149594827790202839709809496845893198684056428232066782923052686687072989650357260421167137955400205121203591486790417778248284004002990643840237942873794510734636796177335694166685928372963144864863274731763481266680902595545604575169094137275912153963774184498431870144122304740474807547016271781513695877456345028117026740894496681662871594451761829040019336518120670743245592182533392890848429775771814214618689523148952864268932362427039461039374850633551139683344134613022267349326776473597216574458856782649500956061584737703237797123696808899509654875819150353367850001417111587589354594367957066552648061305227790035040940037485918362820560822164788368048283575422424803356213622226281347523568667632268585716098285591188200449134772994646085192734887732455948453267440933126111469200494844082088431632471328957490181251894807288815596620665949260057241415355189361261182521129939247879752839998676599239315994569929044042054464182524124825496978431345217694691687245171445826218766696924032422485653860492286957659535819336496583737818019268932862404937410195908576869287281629677565960326843783421266688385683953604167414729852612227004710220254511639981822881650310323779069414758818890935768273203016888293548154877606804971809270444072349342205227099480544529078891376337394659100941847236656594266840695011672309391078238174411638024497723300211570416732980239653492640457726724711916538004019025248593985698416623745152968920115153629101503682606303399367623917100748030417280631864036308995376415472430186920814133580592972475655948003028203048630469855965343606045438223175060143661988721823009803238392118520284134566281588252740890271204351317730436186163026221432631057794976910378031114133792006963529122169767260793950166991499783163389160717039365647522167527068850949183681034496060084609195204338077936448468474607138846221929264086696157148082561654413876336641948762133047781070955049456313029092934989212574027128828615387858879419601050593336818679042266955427723427999127534567169567943055413998706559811815027265743481680529373858420209625623432739182782921404752024010170584546753314213214474089119621329118615659991736721227611767623903761496792199307190964243932472041752264805937229866149453648694260951231276512681777171318700221174594589168051452946722519807408496339796342195043299081002596785304497567863972375855785305622888026886034019363058899092713268881255289308383476760308045301555650904890263290566822027213734340981995964428550781048877474704542690068960463066554299216697597788603000912129060049621698957754276326037733333487681851330776807576117470455240356885450617315879419837131156303635324773859357025163858425205402512305159324539400447516608769540668155134948342492506219971590833895212652480042331906974862063476427958027345098227162400610995206483858118359125171897218408960210288449283816258353996296334389097864787634495266303130616056937472657683894736387891911801687198193980439140344438513319424104073206774369433875920207499513323704138826483403699778649431724990210591729354134766642459185588169329233515368609907960930971383392359290976089079502396467922864811429065974787775706621779602324616609643253104875237501386731427063189467546128628366155402290648113014336455676078467741287504578338103312213378196100541515101490674343283204397453296942313625804961854317137748852824646832119740394045899804497218932110645917673079126446616598922397202299042444052318169146986033268120688634904604767473922114745567428153652449528727668288671825499417422039605998308064668798484719381525120540187249640167197538970278861149209505484396686615503946464162691152361197450025202318884535336078360675508846793783887256299953910910107709735778322586431271371294018341339056202036345244596966737199174174087631053125041759717195725150873709929724200824383712412934198619858648145450205512045108482010630709381438063556592861835720799069805509576070181544674391687164169366223004289721619724135476736181081779027011815426305174247892287271887168405407168281491159816440986650289019096615776540933020227654372396394547048604162140574744522514706605780801911698208526797584218727634994080956869471757755121665411697137470572270158070053344768806169713592435233663219953660737268343994079979581777292955668270525676784494142251391498074707872212811272931159229335266970547479214521567959248856477828439773113318111541640041236830389562445861264583239778127310762300640053313456432048903126105911236651626719108704601558361416179348634114426198916996729365726828306741919415891153212842807954780818640611407324444375264783295318477970323983994906146207736641555994761463686388140848049432850827575332535935046616661972122956207341972345070896243378577722433587513442078692822573636218323355140229676450976950003094746837603853934756427869756934822293486775322201462649614190536204893069936839164257043153643952905874929942590255510660529330574952790251779152562642245579351618142977979502784232657884814372172753497042046229281422233482128632749708059504479667453758688550516171311035575417804658257522266088682603399538590935673646898062064829025097008064617467840619318163024979347985392810657408990986126624604977441568107372824826064052999899044852709925929906950675475176785864906896570936065247650603574374546771563923111467468779370897475420852745519200999678153676624711794833854873285972195252022039478422904357688289503748590515144992451993057531843923248953758468894924395431721065190017024049902557327691394508106092545893467782806564843262301400401423839973631736737211041615373338405388508323352068345044180756799987256856514842648509520922241324961704251928303410203717459142126961940281639275753314685348067390739707458667036425262457059208871376726733192046303189818626558216055263184894356323638772599793196820162312101613474638636652404239057306459687395554068244337072282682547576763208420161283260755036975531246349604119934152543810613546600442384432295586433105967617610188456431244774551678237888020368032774665925991766243523775432922877925982388370675197808284552865055137209384611944830108564102698586315769760565516563087623877168766093981363222965790622349501509089921496786726815677720701467441451844797786208532738333865821424100147266769678165418230332686243956275711495001120149334393065009399725186801181538342103238223103276430345143341743086792119822034404040907791084528329034786670458510534966990843726695040043389554284240708945283823653834887536261390807698739734807022316138285631467785080001738522298957821428344511331470326573553360613591993261219698564493335948644587693976965215385786020688843425736533363465715379362686758542868511445799298100131499580698347560580471121827912560818251763967110156762907387587443107385719861169509722200646435542998850012569476841376302717424310269496634583818496319932932779430678745986667938364648250788556495926723006981791630968557372986086589814843832795026743281407513902744881671703556572415617564923149340889349955933520474492842866589390548439754785075090056934060785015090205359548544083678296052070241441060987328124544345426268086175370688143617108941945071369588563125503230436844706653737506656091971655907131708648466659797364425592756400524570069901338247702767942370045517532796445628192234027249797515597497915285788478261305757974598180962254347139699713529675633738317777365245489298462260145208338793115698009232382845639718508884949971465159275535918999216814979009859580583586619268465409586576802977264090738817416596891893305132097047935532859382949115527837599071142788287824516523920837386320576421693395050099294337483329168474042538804271027096420408643941078327033991527445596176922276051474196900139691479740441385809652508517423448295765586729800972465895959882405745432437654728715559579037204905040484645654890072346022414109204133924636090925735371681627078696040356329727276265074609995076061219183303150037398362435999593895457569839344231973701514716794415547609966228984428050659644839787161983863369019109991839943236663848167202314147710628166605446035501702643974812529891792908199923730292436421468935549248349328818809609104079977173966594984402506057731712438892543042887101216897003235823939341672259586388211188851070908463402461765178764990796531757583118632728899341708124574183871912044403180018291478683373352454591732026734783222760581004767709334892622899545093316195795053032407652770678729490418440384222838744304069160007465403688226718203428488148688663394153256721095351678632286949797285474431092112424658751757908818763900731639349605880118261153639916494513921710723197683767412270474601895530493221326296699213465463017956169740208074078584364782174221917507692488376051832642289042841857482049234101504523351066583197034127673144927994078190228983933714978773397876690624222749318948150267964628026169142868544079920177991903824961877448720114030810823571124842288038475968427102657717480869032304221479737111903161002484656796781802528478652811993494945025643420458035239015299231338184763548771736641395787006264775229670742094519010085049306661288230954814383108300906281272391741421672825298375779725583935268269787166833201290770266528334410411137187305071971810802014645614510589675543646744631880051300165608105497933237377908008241090278022280924399020183859717640948151602428822668339226997970345331295374999246519455483113764982925836640952531616340455919580556521911191682511107725188873984437290970511851906262334266594558889953388931208878709777452250662083890504743297250382861506465886047421773284216746310095923103475208899103701823603969025347845260628666403669071162281442424463191177188066893769818587442050679614353596299847506854352959870753330977049252030302315529325842321834341505345922274906069703517617338187721031615683676208409334161677365750733375945183914936548312424503478190466665759782266317051475420288889285615593436558780322213059905793362852256442044367623818652337602785144408208559687681529154762586096483374856504619076859163305697789404729417520996170690280068098142984863029898474924698050485014137596077201706789867698180553404707724631037883612634751098587271408000039822885503452550709286924675047772692111078114503313795964771451624030088787776189633811812984381833389658298369118644144075470563204945315007245029873337472197895869486089735698243767636166962596066477509272540104770949427864136238958477048084453590791505324601112647924026297624928984706327707091188860110842210496809723759185723226020447247822575742280116530789693289352074769981360938047764164649340337448807380257069153912435270521018587267013160178851524770635399173977345423535422678545726638813483325407163783794256513632307808927591447120907101493609290986152196633402176758714225110649686067220127905170282101408400078841600169520623573088375556755731601628469127621842272540979528746436140885068925544039510906233876566123817810648893172289166969442392491173964248626087887057408565933314921149256263345844421836509697639035271704593235230768774171864678089241552930052440113188552684190463809970654310548618066297606975288833065987108133340940788766416825456189730562849507054324917350334097488045872086285220081793982893037287616608762590350046999544428586870759813680104675455521502022522733043391479083802842339472653338675659696711518344132145815562123708761798411701398195008113501438468733641251622055592748220272004326371521199690750249825983919548820567041095779573431867636576793296867074329675286499287491515642552870961506700216498240398517992864914068835458761270419774806938270875784897366861180863902021797625183483770123121929104306671050359931236914884904367109724890737538719697316321237805597287764476063273249958717724613994811339055621067031740639789793884818207812470664494837749535245040406158378915025163083879000432928657983984253728681650647264449383104097705556424624643056840694835128841566774150624445027335283230854399681412903239665838790075857760142354686731752576675280789682923419710227586957927594915750947415670994553802779804876727016483848242349951487060305924375352844618806146305878403389774422172493277700607561828202385782099844017979033659375276691129418062434197130929549189117359519602406965649902042778669445609533802648246448038610746371457811017516116365765987951184904796218197714930477233971375183455551528232352553561323012512188609947858147523147669011079799686718593631456089065555336553098554784876335752890937578408577151300602795987485342217717169486636129874973369751978626880150210428153726261259179135193862561046110659328547287405496155253405336814540363208672261788840294354119581364894067185906398344863912655504929265096889954531689541040212015619040301851400874529199574218283561719606551374248870302915060136121039863237973227224551500664864854325814615645899502560374920841044496728882829058970837140975227925673613197533524296078044095170902770473301114375622897193520389998505559776798462028971240947266892920362740093950798607086271369716736891581150363621822829278896146339528402223929074783581404923817086089941684617147145137927331008848511594859597747507279600612099368257352634603759150005028393655120439826102108191919012736559664764056798179637615829423425422576176041186807974203610580988919207119654884411723945773106619765629267391799451008760708275734577811343679012608700311532590327357919716006054170379660626556353690293099434459286642098681420125395773835701711778505861157182417239706990119933008691513832873130556294171023732511365905162845981568067870763164100066074178423550193273845470854594704843181416810652205407422463299229428824309780515032020364390822967722579362896926150713343261229397242037037858394580947222458114579667061815587434336126404350168838884953427622862235944240943935441574120843031351182314580606079388558323725902996093201089152226771248785464505662484415283925381929282689186976513111117097002211962336388458046624127877200580722958084268689677436873835970420607058141426093853134548607426380324706206500283462196695403741883702666540360304471384574172519495034201752386100936671205490512924361256398658101011209466913261839140771984617999418902121078724891906322743168441011132883096482574702462836583926326322661714049593710348998801371664050038228630923067319968183960188444193110510691677022941467149682779401976003418004084301542790673147596045120329956508817921635578714114520094714325630043926939439501393614501252424643256683275566260941025577103627044321345312431931905690670666720803660611846424110175615976078570628701015670801753873117024779225270651103299922776171727320993677307931325216142003332228447696809467668350130446392172310730467960464523321718730929766753898056353196594450219858081323319014410495625241805931996295015185181306610425459862497832697673349051522685466712017668861266401463798718983067439835180742203450070088340505386895949112815991870579299377634629858606370341745191751234247455898763190272467485678313067338062966245778987937483618369314542245632733995320900749015989973601807779780905766781194218156369988608451366786490046160833514321109011903914036003671201057580669637919834954928955041819334146947232470980705804980770859793416903405907499223852656241284996335192454570143535401134427309820340902043380624706555540596336156185531401693081042109442897532161432721282135041782940711105197726551609001965573792737675726240479868772036234885112663881510850307129462633445246124625919891398661360560587687652440847904604524713346072749894596902161983990588579776156501569209414358951492814044729141665708072871552132613017903588535831254980879993129579952467800405499096747175500697204073633741479583560047518642601004921462767878076299249108643365211010952906223119480336372598715026439044931020090134270395401420949493967614755310094747105480219937993369592096410644825478598525742888881832766444538457343427158329246720574502066522550784932186442264055034493647541201975368085343293077278906292261115628982594430007928010244819145168313093195366442434462335155133654084277475548439672733598350642703073615822871149406977403109899459820716845355253486518606215883745433586511650001161798029315888091801025318446417784582704784497677398302490231510420152545699362037772247069461111731598732982780311865367533782797514443866118796416823756330870667549139903752299466378574985767575924594868968042144855582370460959061475397744670870702528496496138297120726494434587027002306742137088926156834256588858629000345828502391301650762123378681565915120482340782391485791608799011536485782685778137757184414867550722812403521178001090344006063008744761294199384931773815103159928600455942927319381204924088403563678618518395444203960179330791603953322535977992907998441619871658293767099220713128244563097655049617089870482536380813036860751243094659474902163251900771099791054232321387782560549329940562165354925827236411688125391208209799248429999317615905612042830809079370785828411973016949834601068213671676227850834710897554818198288938589309153434790801704628132868558575935985068770046898198150429394529141115563107718446632664833521789648744437016547909883773387628236147154856849988587114878616605726656215508506540888797373381084437188205166272922265396446998413698960181789773117867219729434592519866199048863245656878920745503457635188519918134622302722691563350269661980840370335669862163742713034374291458229667649267065024659137478666520771936848548902251507159616350730143924627225738514992497185680453744266689334385209316250246208061485867874396595083801664890155315944721697757204905350814060917416701179234442828579271641469508712355636341087747368216962479799519923222278422185654750143819178960983317778339702368061536696938039408057927788257804138786252197916394921812278339923453109998168712832101451887987791484596594679978429304460346019581534800172192889971318903578799258930586063904924594735609047034118838101648473725311727036443568460922943403651856248996083156568085540972646644829382074393783802181055331233269465606548119816363949616874270878865824876054658986056460692836363610336147893753149799359921914901192211497452419952718415959625452295888064924327015510635401223713450244834818601137171140168707941174685801841117348576703846902132884841364177162752031567117215439489883596923934627289827152930268872738952525535654986211309988253976608572652030320568082927151759323477854074290854190494628612246691346564614988784722116390153856874036151533570535745472670799846805207898489101492397611176801271495674936386690058655473958794236502538649333820876266334030198307485657361573891567787139054261105653853670851348112435135217536933962639762614255066011238145349321738858016779120737078729430375635880759059107471937861628324773747545811789272683761954471809653639094605664883147848288268315773828630470038217749047811668137541955517231074898165754621199104582129226315033856778700752452043619620144952871726572699416878242493853248083230473301467661257814830178488583868678275594543288331821744023377882533704346277546116661696449792677603422445033129053576818198289809017634426794185554264622540835696961548089315965126533601562614510782376171160032761094397315536656247362178926169618374590115626224642253266564216274158273791996686108576995015754986732150050673364963958265798583293409943677741347896253538899624144614746582226814297615799922322256922346310070844324327194419648370198394919030660019690331505485334282220542331119827201101045228758874762298364034514877368195616485308715992812889128634998620466829155903627749408331221216603324031102924859348971272721047181287538271410567956107799965426949689482090435947398278008102203630914441759199250007758893966388118826441059909395710003742684671129649849636872383349327799068685993925064015473996845113127863385350047846519727617050258212157309860157314285267641216274823608568796517742648552791021343693257976404809950931423706104747858921569534077682652149262557291717183343807968294359022884468536515120633830482748035835305656825163810846147222674980194326336227271729783333495871895978198798378567257256515970199960019857009539673816393052930555721746133947630606363579975660530570032105735269215151352136611755920680823320644557732625870273007724644298364825594825754695135446249385852682611274574052158738760735293853103996224888068738471760270159703967203279708779088151446837570667178336708460526034503992571707023115759167365687477121772828150549951074364663750558382736682581919034817768027478941875795688349224897568512524375671414494080814630443573085135615285530164760328580032733868559406924319890378827184235919554861018765177487559334520375330433372104001076881611452535771975221488366556941824617266397133217953234098278893174310501959281239192858782021368335824856338505925604476066874064794139848385621878887515105005804395257109221366255774727025654659889444472809288872855114432547649159898600211656049843594730469284246195726453528007513414087548447103865858325126394936077330877443158935140369973873245184895141409600039119719833131150535789817924513312490026039727316546569058573175155063484853488814554268531800712573651338643970876208017299868796273600674070764808982010114270350103389264142368879785231709559028477638049071065919488997541301228884107078069407060369594229159703122489611060279199083082491203057884717165043296863717616132022460305825287077789855629551624921053581969484374743940325830563747744401997278489793318661285135937841121088651531484050996342588078143364888147702346573314414171204503072814800277863103791940643997064264913278559989453875094165073760606558479344638473859229965336111494817023994307210631426212091814678954521080472447472028793501314981189622326945680103269163881277598310501346883530317131017067421397844343348877186000636700484220367538450022389281393836781508855560553545609673076470174679047676913935429251111562617657074801166923535243261233706791701007763954827437952084546594149430416879370491518440708722931435482946683132664666430251685453142807235517642605044332455509838613528028759541216457899993480284996465211355435216514270874546941889378185106760962176160397062302082816026618922169876273882416904055139432373233464805533197334227323753026086509889288926142924060568322467447927544170017091269610284622495731590771969974614799046086438268328062925459941054714292597162056388109437491580978824577160727790609004280405621037397817802303701442988576972946726932511398569439017043087945196408535853039388580494704698764852449913682771638643440735250870366590644378361542168638675293967673414744195063607625776680673113176141591461560065442330228671407485708624599692032873401310887074863296697498615090579959940984565322859758229736073251649773008899564630969335394822653371208409030216242850812539133581273593274161115517067532985256247050234401989150267710812145586595073815079890797990746174337021504259171749039995076565100189101558374705094489668081212006851375905774582560942626648326866831007567860640371944549961979938354499940883152552699734540720703279914645813876195979461854808158332435367736228246251814287248806039743965603804791072590447422032145936846841363658522548884360414582843759318264197340861191681204160711957835565668127893129895866558745505573206395298022474962037542744417502264925612313538279876158097622395827451104732126288582081920965540736602107648145375938054423050716660430951980485768426855322770402385796772401321332597821447734420307567558045399606122272029748159788083420741176831311159593072755928654230401870942994454479338161138089880668362119157672691034156100305169718497675740733962194599628567356092388817405879828454368552570384821642853751078510012861797507808215922960253080465083823229122641028278095075497990824509344618413574786166446411517250860874171064704933510884882543939193768110538650878834150876562262616418821938600732247006870369307537773487574630194697592150130002710441290606790467321892828352520253036284681231886138353070304124993952602532994452732155503614043241371800642415995729004245672244548366183413653125143764978420508215683819021470549227886547932594766128617658756170283820316493112239624843708063452514948403023832816393683427816063587102323712333503349242102018729943292762199852140260917944097684406820107773675316248907263564783743939560158919215823377749712018746924134615771666741533760142985864777789533507190025510792759090693285255706161823717388973244117507479216197473791688717495206210689463789898076436796243208367265228492683711048159182044003800927495458542717767048711000927398738204484654507132428224810414727361385964524838534845698021363186826654522092197561967551706014572328767739397415811822017774437283100906846696673963086672426187976675162189194863655739588737687164602697949242915642171027264160663083485989705040699472174246982754880489135681970466218137475936253915817007320294596549867020117838946845508365978875441604945289667896942412187063437657955320707413237658348995456151536618146889161674460521122458817836317232206409268801516873359725868252131718249272116704011345518647139740575611395001785679955985375966068671231004065272642090577392874674259866723573819312503842527182445624206788377705030348070500443159220941210548616340926289896763616161069292669181099110618677309683500032321057319784719256273515986657610925688821396381176835230021110957970180588108762527365459521843459881945277222936839479729760028110157297229103365955090387192752931596761787834532282358463994280418349951670450282984517773610751949634093592753503960340268447878236616517264159477222793203945014376979915281367552387717174135917514478175123923735885879969854519866484656000951420614172207041292621534399178526278039948571273526439007826149284228074891759556090540970690347055803010990803291468073121216404527451997693144615911214699518889906542097460917241068575351490677284620058781933241618356531644708547753325777181013507564614254577904491710181900181156260069285411739118510797830427344945629610456762010201002733911987609624963654843858906720656658631232838381358230386452973065170991581059028108648579964415316933591221140747603896950883196011126845755685401446870567542414250535106567733025305921523073271191026824230011592420074380182368586789921965574628553792199041509344543479097768348718037076223554937060519378053184010478027535281608916466524188217445679007446348926103087439456917678587269929891749455153536765471166878171081687442852461170847367714737884645302037154899228535954501310180756468480893072543878860021454919813580907470264368741794348215783851461752076826100589660662517216956182669378456506613744369994136342502652441337012368903125731115527815513473994424969180806423066219175895057004840224139252183396280697701182148344931276002499310140125060973884802547915222288255061711941378836722787447645488539506279790510709612290864573678163383160323392827975436542991425059133452873713750724531848286701970066001869187826754696421076342709110714312851767701585029037786398326034987299886958667002695670898627869792082036812781277867111358311302624377563018267671463868291312174701230454059351485137512727937518877398991696593413254846037262108571665040138440485188251537306136235363782381353758211114593965385636034220803173780426931572052476600389521590550261034315751787979744690791544333432820266929397621121030652236847453603144011349397904648391324781917296477036579622393873543751212929168921771844010830306572568379846525973115542752705565430172752500076437756689717953923424871252594365196846611748475436458562147328786781847658589003548498727127410662830952003285486719394635229187100232217466840647110104136897975348570339599235028023244400744310266696647111721586815351799198596798661962675594006081326851291099189446268648823798844438327334027950713461239731508479788336569494830239176245907050984386367202085818010162888135083649639576049260219137079885439481590627413337193700238960992413598904031101480360139450484310989480679145317985903141310463453163073808947865674294310555446077636420180422352845404784208457931064172891270706984456205037088541536929169528781683519042438361829039257818877408335718468623395438388937182140187656075274413402401833302572836884301538520971185220297075755378291187363932423346578090568003693730392058499547429028895882984237380908266956927567029198776503607967066597904053630682336724932676953944800369240505901798884274941651067845797279745308754895051284003238314726886995823488478775813685191615090441026760123763094860220113700306343173887114008443511755911538182640821922513625202893105204920783085543101421561010022332139602385385615307994234347198211784157137332412391699445408509481015454546417542997862753403460455286157252079170837891248566948749529643465979636576830457594478839264660067197244449658368069659417470175917103709320677588195972557318587589224992464074344267604684624688086985519835056141689426613419818784895277452345683774646176178865153409962957940140141945092756166118356435411954418711893274278794858589473143180498011458995708377067337071666086889735258258935251263744600931523698503693497740825407095238729550855932904948513299068674382234984841832048273522427472992710506455269815016338956687282395387082480176090826215717278344695717074134580533738541961867760457907272431496108632918463863400161389514882018385544046326028101876165713950493863891136594692135812930193988606072503401113714494397711088019679752777172545292156568526394475120646022296777057025999167823175978261239851922155987278212952599634697033497290248820819722859106935128390243581350069565558524838395384203962517642543489424394251707417176696341502935635120998600388345087573426784380678253804266224333054093232572620428629285732387694329799955471814979757184431196821410653844135372406353816132885284148105079349984730075886351047965774655188053134358716687416198183789303616499288152601348376970945983708722445126112923397885465289435636657544618794442745065430686695414286106589940719849483810562538949308425529293024422606743588325030116811649658652964900875689639369212018930062894642751361909249851618187924422355501627424290027654914141617331043147191467155042771717894772314705740923673609244071299779237186900682441745228907833223459201012971337138543846007434460186881393118715623101741969772446503295487092568825234260467084686447025853504127734150512673224331508460427022548655583273769909233901764796813847103733426154688350178866261076678062758043341485394009855738564151714740588367484132449800372158866150085212454728843312724598776493707093825304682046034556117002691462970935558465287682463777980204465089696805025760609417800805793761490941881292633213739336317842331745209518613928008783501824451727620993159831482375497259295860570017364162438041891912865927436496395759044193234002995670274562759294995874333833911100405312150714840135532590995154669962412849771984791860707122470417479881285349712141672328026280711152206534830494166974691683921009956115295412757841632083237760406272824898418807161077799617681386541158207641466497394594931500681556985062731904273427302299592184017484162228579583029405384128990883744259254565215281756705432113259871025163475241251863737924520718778328584706265113483622096308593620200971060465350375914899205221763930377942197205639289997181559154900448284834181253293208901400502931372027894012995404819521486826691585842673390321006523412475635430435653473391139540358167348072715729378708121646532618246304569307343533456810448948273767878708806077950209295751601770898279918320488415935741791291465339980642281608229243329678623842543832906365890202185445145751721646939163874348072992868768815134902279834718676539592226498918321615802713019572843846942656092060469975453103132324749093871660959626311525493168145280212149894348681575467168351158302974818543460050875246435482498733925219853741936919643228607137076781468555408150288390623652511111758812656208750177844882121074504828079197773718946163507376839543068422157648215395482085331391967055695182872487173779372109036717306884234592563203075759073167503417824015875707689170920890948043768715472608545822898127625618395548927236947038419103266365185646650253796644242992856421726981007307613561845938053380097448807148887214393589589517813226402787289973222691341912801198909755665945730286081166721735158896563180676306673176991371883546763403427302226545853942360235125466556142951460461258282734298767559725721332064141046237008338846703611657286436189817614157088259065597058467902072898737161734108535443868293304092597616651273076716323029042625256365122800726278008238612144689444687728556735812594423117382498625539667821556669094210711335952629513643344161101247185014586201707287876347129628281018608099888246446564711880605036879158676733064453218266208582928268402371184247550914909669781526929938344303920955490086125724236472718822328578981665025272509913826766352029884770632712156205625368027558383967117874161350608844994380017390239182008076087425672761467567580017099361127470052817927284238634753758402935414704828951132497438746616762503058714492192562610756367585676120589813574062359974897288266140018230014381489285037666605664671728771308609341204007268451083584926697329247824793668045623794943239273935911148538442087182044819313185382995838185139726044020892934176877412927929644982713183705608983393399955883497848251046087709942072203144408696519453131752894965841581930555314669123518737252264753777435915267973276384804205282419755385714013425039751083394704591728395953963946934983682820075798190368840408030574640481837854742182601199001180618978707670699289463059234945038824935251822668580858677837468802491529131399513339113468622116127544380147264661174208444013604942809339758775639407405097167046778951948554115069436989764902159517822174913316012768597399753075861520114128614052387923353808946634534017918359852437704884869498623194728823505561374145014403745668354768004362241133492476120673230841698428053649255639156182648052829984597882563193704947290157508384317400652436960406869444050385731237212657479237759695897828621146021585369348478229944532261528652013178669443506633741045134593412048217581425434060263083786672513080272708760416353978796733036823782401147656379973880383107540078237311831338930702133856318986760413690327664477591946729380443285473408683465739104089194275091324965702489006512447298561565741821865598943531730981210306805737518075653814825222399662331196545956836541798474150753028020091312520119671227939169513675934421495527608679250516709360571897591633381866946142263302610891253428417178611953287980114187528977948245877411870065558469947085624004572099074033905674895579572900462717399629160351208056406919846540400949224553205471374945910285241307110730589473288868993023982339875103170874474004449904520034923598229504893034867171849928318417658660924811655395423241595706401196482672673048920476825308328877891761689891938700428734358401760361464013466641803317036086500736540685647108858466762068358677614399774805867814880709231058385710138589715846883093278942363523369384507543314404841554877665992678664048859933894695008532834535513689484726009389058266475323092990146623651656259252154243444059184333657092840932366021201737524033858767475392087096490028200316149032482842624168963322954382800429418938553556045703076494201201704203663305334480261221529381859656315912866373735283617053885693038944935754978676905800954880618549369395546729549576674345634762943774975797296670969909034964253325113201167443941201467109844379590289570234314569445766969096719284481506742101940714388636756682841604223130928518778370066385718649019757089708986264645628515604364817462566588077780860110282342266147079664969454399498417265022027465526404214810897936568488463728143291834590657216938798596460920844987711844354461762414132438307928267001204320783678311807089104659527405599411893950863408337666085064270300344430339394484915010259222940654714527632320392162257075499369158083788508746010325988677355226455950987120061127890538577606407375899121183255303043948716113712231665582692241544030932586426342778449517501262972288121826539387639927541769849036041570898000436153321254917951661753232651809779869900042702570930931681033184191013503617185580659297292289659547810078997580363857151054155071970154464937225862466263834426844084098349988970577284470710709675720358216442442609448937498280929779043990043059528855107780368716765444021338235566298752351825510676131415616195060281389813581184354302100022949489476204019659236567965644760063950116389000844858171958493223671079523658821712421189735310587744585926364631804843831420419886822709674056239569370762788139929691002681950879763506766830710635750764075085672649823469843010785094415667204410597241256034449630046185119275174950369493381766413219033967984824607709191134255888648742288690626576742751097209044995741389579911980479284952310319664975043163648909981069005185428589421946660135343789629442076069573510051230707214757513360708418253130811383706585213278053127274715756813412499118229367941844777041163506390366192676125248811493457279054968790624339706801453285423361830164321353630960099850953134529199279956692767560726222257681940458225188872872846025667849543573834881598019423574232379532480832174515379080524388559307876120426717565154357495349047147219187979066148040936013107955515297341093525307591469843874147955287675004761123811384832292407990523865015754531426858083712982532307453014312790700850200687188586536628513565115090249551808226436606414468176779699939755011446251316886133622695093080036935955465688218395511142200897981484338646769721245532466372706909596686669046918350118608029615893225389990369728442799165846119073698084954934079975208171164008645417835871212257391005480384996440171432310724011102237875671789299860239728472642626577887463874424920763798520129584075759864398929274601206700656486971274795938367435981168269737707172541462091568895223277362348429635688021659606567089749039710106556481580977727478066654170451071483272322238691161369172496398546921273232019707184608241438215707836875717346589753345544067965684637576630875291108837414519897528200483813649588344909220510556177225836340831955528324592546814987956714900289321002556023276549835530828938647811075873114228890918836920172476582621612504195928003551378515155516712760694600703144837305868461153246552991533561900740526747729191299097997459328584940320300694968291274369319129201872247751441227688046504497350921082699453712602133229460722743392925095328597811129515147616178832042762939696514020966942667313030735866289575442570994595990818681613540498214771588473269443164860784778952052997396717008557942695529773689468950765735842106364834660090036514635464595435291905802119023802019447403323577894613096348325640998723390437525302418671430264305386738512224355178528546126306747825310082618785662132327393641107946662708538944862910816132841825212495728715427442645830234820874902090522308245776083215989350266758150566959494254310109328677193772653459866687514367593185274515837688858055156229985356588504978138722121622391841599375132417713197573915759911677906117974985592774025212354479028348513112695130002616373955302921286762017466971371284295051882928948067359800018111184535671402725463324287349169363186223392755666344103795328608036361595488077847760004275435694660495623794147620162739640606755918928191642567616808360700521309174025769258264685288510630681290941233275395794622877200433495894165270827468365552910534707088699355988265690467173665836143278055441642918690310674259453666554689496625165047401499297641031004488900903769150898026934938823762467711976282951326887827315129600009197402481756535808918775636927044904231609077386957966903604013462197747783733733522845095279625545674556669546253749309571800294617781068958040685685996489642308698445646960538164392346502055265441911769115546787325564438218397582242754053448147086117143853956212466853305002101618063581125319563637298553118012032190920606416647021459853721193536814645765289828347270484143963568754672556685890439532162048188156411571793969493196987812830255521283529592006907131875867753941430772406230896268184992930141200409872742594218990686075192029682507730306634796948471383847392893244802355183664700941568411615108257448273841986756805509511266475940036648578093245421003601577315820436368487265629506245517558144307929742711201553715672174554505085827032657369196029280154348459823278347051804493609164842889071950901176216276071403472242074895516817801047153799058225880113357735478463487033125899703586648405738891756306959011530781828834871694475706674155660644567527222570571577993072120927716695479112002231287832235906416984382369873617578218085604874866043204453740046697824218114614926247863130816844152537618448510385730906533335979849490693077344587762308200475998925512417977157240925677330202228300368991075856915765429165343421656192744959171407266049877960335480496058596916407357560944904377591158410631236871234364615981615156538619119733300447462011963834031368575972457746950875597461968797197842066099760951196394686774222656209543205420756678151121883600517510620839584284743138558640939071798652413537118164253967327491092057144816252407129238347890544004395917902967542955888660261752286204463152168421548996608574136813009807026790384431285304729679241161483364643010343279681829642117989648372521326867453250620618303666262746835937031107100942092273184174826966728688959528019826811988682403318023656582619164667618090106132832400595413362191336399927189882000497050065622341363541098225332297547711853951592505238349223356946421080533442947669503161273520717173673888538451599283723887972950392452921745443194190340540270893144340616812087232649591781395511527333662078833598537505379802588586720256309022729640909991670306808875347964808568963767365503155689240690455834702931686286438568097508841201492191688218196658468288468077262434897389015078826323830680601254826662058153147628013049397048080299676463679573986746272276183488142152965897501845340998897202497069864368846392941852699711616104094468653516185318451198309111680656109268196530013365616606482011415545420385845602205699664667657298596025711329192343497270952972620913868337659612811039412897763817280572678351738573556819166139903680023753271097782497363493572407138335595542900194636731836638981890123050298519852275581164006153471405711827807907731057500383775184564084062067052759358128386287095885551817021447486801083855231018043171424257501464328626736174150387741809479291302627420084893968753571838289050907435271403232367931934409631120907120203424925401913870657525575941939720392682518408335588619931281897487688018825917295765185084115674302413863223052899883615126438302788224702758013156242986852489210718838932451587785874623266321057105893113090297525634551563326590631781018120525234042970858549085426221919756966301390889907089364374579778744897484802866402884175200989096771142085110079658463140724179125949675743741404918450506362858599014061522890622382944125118033736398253698951941885844037075527310664438301130035237291638849260778920367220928222533593538246362246484776971836851027950119419131446589970610592691613978135875237224535949676182207860622018715575806116775639849785087184100107978252031176844170648618680567484880918432102467219185690586226238801228420147081070672807035272225488166626197398940107470043899825307454819406039663976603035697751361811057999582500097835429827906595965645047188088804479630439287475490179792510750581643070454673743168328753465629578356520357566769618915322674085886965774192904720108650340106153692125093698592959830030150577415372087392832674705837610419489336706619748875087703987210863570251964892340952768640710291964708865094987696678032849158850709982283222955046148527884812682347883888473443702721224409177136726333156109232519628408543092963203028085160596867036156223163839075488756125701559918101661952726731011958371985378221047619218840930365104450413440128790447609813996671961824591878179258682775863256119473018960406919469594311594805623684419879078539842851514275095589592491967921566377735176528084297865753274161281601682709402670323246634350302633080974400370133245863764980959365397359524564054879081865282750435664130712802333963467317152854615984847957442275099234165540046731919020845542287169241637531838047405923391434647208308910680616454872345552302189183622598677608776606801975703854932968247540676564488123626800249010329521908659863896452100362345366455707301250616498572812314725959831398746641910878965955383057903927861370596354466064000636421585445014540495132798380937212933484104692607034675215557536634972899272935843005818389103518359993222077987655775806611239092652041930162154252326311459486843052663849861470735260192824388746466188788629441431807569305634946795472724094819270248671238832198617423234020397829731498201211236072986269782701527382619496744948320443036300969096675632406040867380905822988807070756570346822978165913569910166249584747049630826366733430709902387001796502075707791019315689519553015322097228447700789937102476023559388816175417857089246369755835647588637546476914248538794428703530554070196914191263420080478140139014417705311714220308218727448860931275317190130103776658146911613564167311730393521977304152854176985354051681842188360397380600029818873477680838896297316160358970638359345646621577031212917520128952189374980030235487105980953476739350764354723586043767299123865831885750737979728293268259630695566107755349356858861015453468631492128796100913716767987149618949383805492625046453237954813883050751120289252662827615200856961913293860557513307643850068008437811551345835091893616723802644322593283054110997053081105636719458857113049130272581041585826297738949496616141085082633946842247467194437868673213703225570326656091198382692454212223330572778919441311970377732889465850734598831196449513528545439217609580479209798651928650157196466043942541379531381948106760451750590790851941542484069745702023325883321405994142653325114533170506085714911316040719589532627988214437164241220116412812749740239461184207845757364770914344178437188998982711435640264308037460011066437953714752885397424434565567923273228991208221846056407731026970188307020770605025276714767321808774665967383638271947981149488155971886100698329799370753881197260654606206475090033012310438928672157532011204681092021675886237920377841425026074500220392479587348441147187581335220850642721204457077003942115652971051102779810067805637818755082823817796506934188327048752213052711996561106820627918183806767268944681115619379136127544415230695386018700677763774977995410777053611155267527449938068640607589863927715796240418434349627483467924503146359703788035795811968071405533998582686603251133183306876891080693334289658799365444807444688357814730252915817126986085263720781639351449131537563226970402982737509891138283725277512335149486855004213483682413970496110237056980403983358636255880195903995861276048468964275343760416014156311417637153346811456251223025475848088582670998703599923231252701174160029979001645415872266303668151792134811303276437055067513886842080244057595226903803669873173191602822072734741696352415687745681044697288461346302637717650470280336348362887682552297679418439417592470908636347064985282533318567590977469169678088316819466815665704337371862992922890738800239737342709568621236219642289222914892394407336225324421617897014520027727060699303376983395959386873516618861179078633766058511336986938289884942842735265934821368243668635437374471619347310341668263380266297623989723244175064998511591641685131115502528452959732835028336985000475528365328326885140906907193904080721887326733478848022202952039082113433365256059720037452819359593149030225880864729426714550272990715055728092913606931773906767606820428736983553614389987853701949767091099778260111059405339826022438120174381790460556444597311817043189819047183512626731498117831230763434021903763252486807077695441271756758309541858733609551597618621618050858381718552315108315140675684423958992347003052627581177113068509384010224085899736351487716303268782465382809653170579850494501656220635654429828758284379013408072854939898842651439473213282956685886346271867108929037687119108354121023344934722079792784417730961895951248612417920557538235450834429933837733532843074420512901330771484494213986873996573266369499523441022552312780157802892927584811662550767886110594370595961141884931550017348810110580791937901042392143108294758530184394797377381140201961906493070882608351975623123119907979345911930260778642125328793009715473165182423021254830522200294097972396322623959359201784058015265640970523849191786569438623363252010831186354765087767622407020529362442782211780123559652265076091112755808162280094252558603656275128551825129680826359694975618292066153303830181818978692053347347813681022838688417495461500218904445952242388522612683072117136339455796222467702544809488521670641903141082603744763215988451265775423893144759645428593632401749158006672369321503472720754104782815513506377270966810124284269678091671570687064333587227045921940992294875060112265434439366258116236231638508413068423170994648094461866151265580687782482645606814422239521012167355443688564673526145811851581079469958578264805166321205262306951884779180580890253711591415227062404362502270183291223514891289370284744258215505902567841912013036857022624737469192399590264147428143686024136258429238400234339117680778202041158797450118597693225154672626048535712584748047202084386476680191706291459180600644757758429633865304885397575677098416324734258873957656543429470031308803728184315048385378368153564276501041410870345995743089921334479858721264246666617713924465288709225484719780929868830008151653575248832096180157351126262127545660331076828736804449065262514862944080894930898368269790527741053617371282570274173293961042240338517884681959422866576225006167870961577712423200672660537348581098616763602319659245973638478420491525535252595471887104516240467920797116486357703835521791995140215489484026363832291264514880941274553346944678395439622315132716136663790856087680845994528906156863848729507145291209464549076199509597231201098003739904726154509653213632629321238754293005918551103733699776410775976416684312703667568344996847922749192615176610273439369864959903049333835032680618345264539192618590162584445519852586687308361753762693220898244330190409760799161024986507514028768571625936020354218303208897934109556510396869798067688868020870018681053308231344415199639582900762296238912810633255258218746027362418813572084520341155052148216417057332509321736648773429481104596918365761614981743254560192700658474262977216234592479298151890218501641088640557370314437015359948543618537587750026468837744105416060463570068043351662651533387687277524523112983667479937094784831511200256939784876789871393309411872779568084167864751312100194212116151228296148864133205981048979238353117613686257053730613433643243904543620367158121873272388281869614627126116642510052347472735795400773318243606722650912683731509525616326208850289023882859034951459519367928983761614234480822376657173387091417360651590884254023282950082195152655941240286183064417762515662398425328065466345092887320010068929281237545366344710249545543593553469032978341936252995704154746546318047674036516917510078940409820551043074996204159639615666714519095457015422451384821429947514108253804352515513471447335101424513239669629600849798421373213437023067109949297463456896216852885381373553503091153746135813212032012097814661606718003233555108651932866300059994926453941596633046912780072382891336417833849541643180423200912012356918006622408149794005155390002587792988881062076896125905581639958607848182026008774613973109434511230755791456111510053463710205773849103196660853015911605515610478549377156088970817810064913121542495234304442459903699925078301043148837510921026009633397172389951283559968085677830163773584706035607257004429532280317415634652559417129786349868489681021856480429571590131805540753047800286150815312027375496959382391190452152025811158230557491862683204545456103689248940976171486430845270616584502621460007182496189816458747862655204918325332273342751256948800682785356906698462799716073806826248420248004377481442997211267508644772349305205972154308797646263569714699019901653847837294400818341717373141557456543342397882618775641525560843235916264484216559989338020873553843184060439947390134682644248499290331737381751182928753210460253177474469770442684738713432564405314326356245430969304737963242672259426241987794299662713041218001129835239219707730324305880399694984567374390349960132138990389307516070062501732819658925795823881274022014883247688670538090621573272355479030109538260922645535442321569876180107971511282341807749745871243177783555725082242360091790711807257123812964762254148996405132475936886164219215695684492120395025604095300676416388998633947178493344940839695771418016953169693203803542087850280270866021890156909078066751831031567319497829342947718060726627231986730766530944890674248153100809679937032137712426822965684739514792254632433833425491486771006920773562868272361080687192751428616376220912567369222688354792103504185439295058065391606566508011307597504847680768803137111729833671869516861902141878651153292983015996275908149385000886057368835379115749690903194382652986604082678416694679876542849317857225405058480497441461191963856151525653964547060174700197954694453975941987510616690270697037685349402484593226891810216048953132799635937599076248569253531275425992132986414250579291263673582860501521599992403651363689867616639931377375549146562209984268324279709695248383511198923186040805693840846195570454616559119855512294575890619124292963680473879066533124641990547191219324001643845543132534623224667416819948436470076328257994282805837135831154625514053965001137172213457945703547458584744038931411156386111967772310371670473174485270821602074346496071298097976784775996518483991382867332482579203579640490973624937694404121961543569719364799532219244812348711565968900176006593846224429773051609524210972969086381457143439338380734921072405862604746907072677891271503880744271366021775058337934274046516620418435775940046558100086159152393474069470836252523691282604799461475036799242147618204200498629175572617654444229893543260716950603317814028105909616109863157389759380032198090529088786939965250764817391020647981708097685345579939452782765655823343656510386486810891778073891777742892361360314529411259464680068726692218513856494092273329346193634844766675778126887876683921989056493316676627872100088679819306479343975184264214192508315197259396226227728799324509074228857576288051344225061556327151117564399652914297580417279100945993398628916807778414756286614739552381881235336446290531637338307585890085609590607834452774909040543738625873177805567543869388315905157912153214913668073672731552717000888771412854660567466099165183855205013893111922237571662220541072942005160773765075841701852372780342181872167276880509779941227497065500938797387543803802947083893313806262624183255182089669208943366333381015941830347925772193156822692614765682253227727718432798760851149784293371370825511203701284481697172632810083394582799112799793638666446637781127796076557913078708085879922843805223629495270423622603023441578096477661794935021363298759624461566209133402689265130047468352751823138824557068321429758527279339477462582638349068157865642428961373834589017082918905440270614450212762733230943626701823337436253912880810348157400996958627544738658858902683999964523211418606913529460650725680993959428948360891553157623559964620990975194953383529144233370369527552925251756945207452267755675144921610576279543460652005557855836533906381338110070046761824153779982775485417842408103602303720716865685587719422810095166164481662404713985580471048324191717868913953179450833456325011219606513508723799972730893169062359564755798272818262690031209403143759475385523677820948291021119143368156214891510610000137777964833682397716193710214182268520683556118801317036067183774268324109568799432687389607221291636125754376175851522784397326803691802540218036040044829677223698454226746981894352226644935657250753203637476037634063480914381528699434003958581321769221570236821106167328702696577267184046532740882773763219732625908280054573734748467231025122304045989592448456817305604275665190553805372850921292689370607681011642416176315839285877353848426592793590070350295016750548129310367917799103633128664517340089087698630820876636872654736417814128392352341307464354973783721559307183655344349369058871568504564032397641940786322642295480420398664826303477985692651323187532733241674819252742061644888504384198334064095917503287280926954243965166673454246534144021699336925724227734375813573921258544786713227331937811734660636938661230796603746775378389001267494573075719169080394104897036132967873494662435796781413815366741463160002513345682923013069663823481342211806598360675672428952668115761058711294501740862826070635820438311181868153245991044985772951945038701832687126167499569516765225583457673422302962480142748786809350695199724909994602839573981750468801524170987969573889310849522037000543165100408055177074196036703601759974857535528448412790632565746166608062659117798067391519800244543680156222159054024076933766553624772786403558417977872465329813504206405780940427432426800271416642374208754360064293265216611258768188733617154323551134533435995770067964473406533105636969784716030199218646124221824889168627513453201466270344357432671715389143354135656241672169092985800149973227711119713732105002713305601202171055152965708593562571406259494419869538007502462562300486332384647277035069755650675325128748947154565962723970970885075008178686188822471833086180039971749485439756424477768537216906068943969962167553236603957527062267107912105060321846743072328295318831600459089696198935377428216126545117480849323274820413447191430672652800863420995061653502701182852164711374045930446467215002322797962792539580792594115730413081065751589649903904314470847879415720628079824405136174604700682191288434633084265753357111829020708107091140763343328181677774932268317057470758462860321677279540186851651401429565921369972003387158973826538151860312583539085791631319683767706321133509112891832385666848628338245918289452171883359186560236422279639871904672146550002905023618760154868273299285990936436857115654240747780049648429685694999016435006778138770844642195494201973503100877395056296909272609135054636061870693786915047566233236112528935106639026834215978149382638040922499354972820918683744217021312825291239735637170942419306289085712245716984926873313618923477204478809668530611978434850039432127506742249411472924202666812658480734638096014714381437112748079665926235819829258906160290458374984790587730902145689888768355762014664313878779074601115158878236694274317072769419592214440529491498424756918768047347394962809078603848562147872150042536207811344842962041528243502434810195702168041984896620418345400606287555088999058103312241534669768927053027657207056286034031241586202217916178684863653620842225404791943926049674299702054212537774647027701636104033060919656779677109173275845130348640537228514395634651362263816534675651542901521690571113012258782349172838844058711245316030009016364797088613260691896508594996591244881278255849519737003178708051126018677567262003676045966179170760247744381259415542974906491246508574311869661643212334073349385522444813679124401898465880768738309213084721603629816168577432085413600288869499595420355567607970946958938498217418321687563695045994061502111768275085545639683498392809226621234202581805646217430197112850221078753645458282242681825111972887379484394017219662903215834913451230029528323575604053117522434968466935302204218004164852635199792215371836192667794472406941210229928251051624781823228388095827783718975565193239807863797399537608411090077088747979228414209071215947213715041873594785301480245570387029999903834237732125211707365737158151101821013691996747702377278898761504369619246030562522338361508757981246927125629737558298586217464479979140724832812633357941847988917555973021856657311783092683774715649282228762283761094697186367996592406749263523172307865690310611240164225355628462990976467223497370766414753236232685006152743156172597114866698332046985048205405402991781925118853014855116118616743950491509416012196457520398758003658656051265375012738880966915112314307106742140277902148293584299055704896400932532544680545449971386306289081150536606193511935820424539629884341099096830074149164260857607796619854797459340617072245415022470289886550101499634779093548829882669338170503522713777995718638575346917271784281557130934298265001632877617088632822506358830840783338596002722789330654893159285563084123226847576057919596238419660630225331479260530587951216891214797726189038579606212822267113996010329886470520179784144589768631637953816537649433501734169570591618741925244897105669471082717461204513100828729851986730925035383208420776611714844647512661710811649294010430393554782228201463091636032796619253983994828204129791104260245106857473623410610563961255228672544978052717027426278302605613169534361775866073407595173392558064771108732442647279248813119147687905595398492115833897343306215247436533870304020014881118308346359693583351109795201029339861603608471102311579006130248523130926924298033065821981874294299431092836658891836553340390972544269275787023142491544554144886938071596172348586548216564173293048853165147640143028059820491810680766105826579407939910237763266290178009609337830716768281403905614342736882879328992794011508558199952415738610444949982033690171226979633853740993541097882215162468099122536232040642220608456482466313938309976288676103478961826892277273229691779139578962670016995725012646958977936956290992823680382689495180795159878074209714213873483119659350852562118146492071024601213324377060483903103242111778917991017095535685569658540719205651307454514642308810909109380261351856447256914965458168676621615127706546461808802307509133163794086583391430346407024166629301615754423071200803385915589574182280253071470343633224588073646955916702736827963491444614229201408293149009073405813706608758170007258702344318314852008490094974588435069152654946518554433176773538370947871645833111074888343687692607892805009322188118607744794785642525060520447073923005006099323331680039809409422723471828071971854854566960186173523268211652576846529377698344899785405976401066777005677909756828741478427610250914736418036172829869804811663135712506253898109053185488026388106578400238945597984335180526015084624143070381847655798289245856041919527515383256847626911676932732366529058581342212649420117242181198858949712889420287707455959278751440170618566348423570699850442166133064672933531672509124075137836527452649542348923786391011387940254457747489191109252683043838299092744751352505752020062443827437216111354583567090724206914573011696928658546985496734877923630347940240410035617089363565182192439947071717183854493552532359120205921283638983792396803418815207348753822675869324194549484507845762407201403684194532179675335083913762785412426145600077709400679697054914193508946871759203112418947172026142983054696547784135300171269425592661704030287783637032677560415444354752814731784080639045079073066984870875415483837563049618534539607481300418770399918789431939439523257335198229199592652531609535484128876414836346293852728510052121162742151510320299256484329992460070395485909909368035487900839520344705635408113173285389723627624321480097512281318270965771577335251168189359933713909545511973849549490013307618417912594824835271237931654202892454534099989546012693942025381546057375908340780752506868925913837911268688942972150046901035015663934145216997657881791304414617668897472526637635323497829367827163153150457083172228353736392278951850257462397100727691451601240175086804599832976467964023727512485618991012636124282017415400811876810459286282160096368626284233820201055177766569903222058977184879217758205406475194750406210172771748258720411234710292069733466833413436792527918442400837815583277276215619627536725539267395002321691872827322962374402523335813064862558770033198659102628523216035945576911966122307568092153068904985800614450212460980961964891767112219964290034412729540769916970687072473039683343558839525225008257376689400625877594206754054267429992306945289955795269721395372182189647801853310697749322686738528715029559585105631121874284317262058736225721558140804393548824969875050357798665169740149817223994975802236750538463749045590785376403680696190903053840987867266079537938129293858749475280547616956750426681646316272133476739047899812518839196382495395503476347022892242576048435407053513935566573935050834225235474521149006418919823579409311308669905661900291638059201929317860440319478324130797330901346441682083382962056720625808884894756031799437384124936732293030556888439105549470060506698006006555553331114929429809084327458625697766849273478580089862822444523513406794422830080710936799604344369659944553598009060503400748116713850940828046573479686463375605326901452168515230039693972032276462573132895566598096661173897059870821015984325301642433723905461950195828195894070163165473335484944877366545935104242484834877820569891007104957485232522811348663018065179590543018032514970374428274019635353241799610201892663597380959179649255983188724417543246985118528887271957052271632779566296396714292458942855573242699470885664295435845511335474483558498032709295471274654713676339552114266204561247765656162042237680737693178318800090949622989999202912984669026292717866139959307954078733727450005327675920068794545653456897404204340530972127056478345666065740224656829148441353540079777775415919408303413395000118359137791429221846263846010933511199563186500566767215428023398532656738211566754847679606788915976152765616267762888991456083939033055743174174528259247919145175860415985598662449417132560901847833922050603120168766382437186872039820756168743102115730099025150724133720406463660705973742019485443170256774605255768900780336344377634488139576373379769989432405408400818039227074368461866684379655831889098283172866096900005867150652433453708400170156770181635567787155755548370717308042396899050542042273640216282871386459925684508042077670313890785351839348558705542258945957705870864424349814134615336513452450955883810679662394957955370097406736987425462950006520747647940837500407527738136516002379430522104081971417139049883714743162103140649661033240118998756676324821692007349959484478007033935765196804225122529656105893842422281185059419222020124854659269715815477423147727742465152854060596822015004495678984922381589474895855942741677804508920670732415602991097017956876708565538772469295736289227623869769135175296311380423543350607032303798509437299903412461911658488909038034897167753814329038628524912375302607727205203399372833684185657691699941022765419807228351900503150832008560402788031071579326780756292360869701275382616403367108851480716185312720508818733629530373644289699156964775172197799826086989042172221174020763361344229238580995560520842859249481538181548959813938890435343204428510229253727327753369567816455917760219739915402910862985246437050303582274062433862638749428940855298208100928449155165378005801171320677187452396130287653259716160701298080019795240566482164493682408360990038370044769627850254578238079713140557168508398717908558758680690595727286996491169066206685241957268307947373269999418536876704095869429328355944863462870660520668045596888763012728082842280699858252712048248580919948764093473700149709518522421624134927607074577181483616646645523617628732453164567409499857122379207987249310211419053826830932752347584912237954710471114661358504412887753390473814271994557899173179188854872104226966878051801584125449048512046554438992322990137960904816917293280991605291440032169807981558088374011066290114158285198595927706874452972714837022488850978049206031980163928452722114826437330958141843866160120509076071668062312668280484241094251357618798407593974076303266815367755723169947243846213330498079307073028186190586758643068217297293464545222011940038265589883482405173141094819536397025305268130051673241211078713095611011184882002992869382256802316894552680587317796246957269186459887246724240131990849568440879803948420606801226443370300705733987117528213930447991800480695735412510282953888427116305441173285765307520073395116306954408652691762092162748287960383982863203902621135200263010230869398853622114867481811107091682154645881424030427070702415607856803591269284831545289368744802893234260555730869738789618342624135771399558315700550250435942193704982404602317026041129370017673855621066611355612067775189029115690291993546590486773598156780081561521225536834891947424327932760522075393300568702794312238285337287696945087637661067112018272108375208346137878346959139291200061067148387701832411084207872910629220126801107976946939763166690682052320254207577504678343110852125570198874928720792662682778530648444165066619327567330623180407789919619254080279141293876330011904660796813003940992028337398763846823172227795979021956877651043795320473998985719803359554889816573491804629328370112509900178674408337145670243634110744839779402879620455369303437743118363222300991394820137234258548608203424871563804249610780622032979027215743340704537016408319511737178314814394554383343779726196308818018921941168830992014764177571512234137573900634059881836151270601651678721803326501188769907193498397307363124310748201633056938710814832228543657289058599974363357483867378347092079231775738544471217783718077378868585659894071604634645335479035415931018876087410211866584304299377445605267924294978032724150958282678864217526242249218949253690614605801193531694266844533290381729668978574430676199158070405890900209220296594309816141753284024603680163810728111970656186743518229635846449916504165232870866627370319594335445005887778277837568357378008655345152503420156071088638430536938983298900235790621856546204001733339692832606506489832523347430248905994285306014558177110540779279157691658407468503272938590708860621546697272178204447510647470075406394444408120388986472121420266548067684030388638921100761218599438904577480365771576664718915308299360023884471215011373610292208080631270143396331395131731226999578042490868540575191654487887072280780826677922127791995407554307978285051603180934145312631337571475787127629791904079053229716189689497966416096677883834564541286864893154432117095970381007436897038257629176125636949218068130257736450310422717108642943568399129026846871252988867881452517917022081535122592612460242518261004784251318939941061080475359190990828555015931493482144809536408278736150900443978670344136327339158302537211094844740435319493192105063711926502613589905388841783802987201383986078899771930881602401875493102450880804012616585470745267036148743098529309940663934606917856874397210416838500768732926979586035510105890496526221827802921036929497364998915438215259324118505683329248383389758460202076268636542768554504418735058823921989607732276699234686453560198051821942303962789791017031417805488858984748048694964600235723527037589526270947950567736984162137771542234227496169744417677818449800099854042471353471532608676056474677538799213220470616723490229577476095394290639081431743811355494459592551056251927410109139651916536729199300942063478129542517601432055356724478836588760890948879046198526614341866708937471000038626396919517243384295753629899792531786803271293979481638712434532735763692883718804888916813242260646722257901469994447565483235850624721268764879890096715358075804117872585714693383665090109238718414687243334489724622311694012209523822345817388234860493558854961871609946715881027953999912128101440902440052627622160611375599087289662721889473447113081857232257465061871249715113611336087284328412499217698004282737825459169747094402922772854411575798748665298352058286721692860552368626445061177488407855670765242881764258003628908258425430861408211008203830026927517323736654053492508883094753242624400604479340361636422877604969642875846956905585151328982758296167646305407610239257629857304978621343860787628665137993238418252927635190790169189837108447892670500537358813494037881096890384079438433677937432084110016697744082789946961516946708586994242504775544871026385205275002018174833747823244477011075455357889579684627359741434810955626353025140217451311322683538512860628817281708373155541770064006073185088347926679151933147075207029581293263991558243093045336730448928871835286352211008819272390780159036225647284943440057863832130042590582652643745911358103854439356078409230593775599533731311749142452248381332407015430792406568744871337485173873016332745432565562288095151021827827297966139620698725833186739726578459961196569955380545479939923019899905766802178115954828496187915348112290213923299416746901770464066118737651368036422784255582310556676691699167792627856329675135517061195189453195161267358464297932099337906910680544490777581646399860697923915417356724149324948032665194004597398506658160269165366137544597599512768724057817584357346883817306200839695860082498391339195222244396073259118909440373201263092258577221678809820888495572260556866080048211439006163808223957075238053333352873611478195404273680090640922818989918941717841002333219091544403398828259828589468131754766360833403593651198135447458951990066493224463550410558563230012655553237348623770747207420085112208906487020349647757631950896061181767807660922062610315294414589085565473322839113492208037241640766138582292565571880487387491237905200386254951874659297701161103352167419423008951499675943622963411400786614828184615279083395020085745198967252463443886855189093663651941960823280656644941939827591777479863283856361883225908174254266410742042801131303811028255002495614476057611574689443719834802949367695362688220625398173693756025213887910446241181831666721591328852537377058765566423180779078870757383674007697967615036362385581431205395996451766826477587312821678589703165870595756344347258907745747582388888924875639757352911205165185514302534533842679293946332571774090568538173591542338785027974611034192218481803212014959652929226233808416085905652598709077972919331587680650820910006431313728514681958809292942829038276704274338545410178112988403975252788257567321558948121480085921161352111049857289487543390592116718868286597202507693870711929575770601750826402881735967274975117549758740872056579494294458668511987448700287195211296256080018103966641933006089150881705002344801004868912875311458185939864485964422574154172499807322508544070620600178384071094969084248210055298288632310588913000779402638577139515281407426380294623718182845916431175252353159593852078269654175189927293668299950535533627616349522865421475188259450622385379685778813408769969851991740671482592004848853648694009118141386756664350957686547699964429544214871704244311714627101915829846827478752331309957941689731839541572330867008266743543010123307619976371855354114476718574691391866880598358355705818547222810313839880816413999070651374234778185207977696953483132777125575894632077820387680956200592540860866610011347405022125252662211662361417484957657994542129874014263450250947209648357086632824359786764556087568092832861057597544287652784959651771357637812074419116232077513628479806957607694692137333771053396321580562483709371388789426645963244338967940466451715738762471336814839673904330982139953132197822204186567360928728676909033495210619181778621541713792808725984956638279491584287006561692541728757495940376308092888668812688741230762758705273363973328955058442602202621201337293498759260556679346919236489857681551827208446573309628470516648964421651055405837005405144802790911746709203212569967855603047382235280957160014847357578345835139913855686404940755436278519505186007507666532102558183865446229741223357012848367719685204260445452129517650166651690130732559795586422555848010507299465577555903223556146515531852719404119244775646398797515189900030830606023484320732953843959102890893086553984028627644685066450580060086801692273208338784719562838546963876641438092079773118590307022807771927212410669135094548576197201343275235990585583200646864531419510736789471835996023341418727268257030202591789816136272619303937700181838014773319138483963962145540387163632474788430806831685212422864818644232538012329637490081409285310722396172901988486978194938664552893443280092439138146687861364710532071764300405389438362121785490615478884842447699534775068032923637276754956661245861706800457281103791147397970783535151819550721383678708959774830049997758369957944922170865870971524849330769583646376144785990463350419990348054280476424750205656779957606326925077091104733837361488940513001911704886835397387745445368815890930713870541823394042995907750413395376006905623358724658076246108182827635248856125290305617907793915734202776645276022418831593853908246517875461993138367207250324841900663743528153978273565623784158581354039961861084251974682375958257529086798989610454717278079108123025068488976405998603065885241078726045884756944969004922410791647905225019021053983605533194982876893841246308830272057587733106660354908954900467392234472121401543561749788380077380501374398322500755837655278453887912827540220953457806468822776484042539262934284225162828667189524913252274472370263493305087602560829578263274417437330200553705353948295466297235558711103230355288984504282192387910068613505810067734623992096890840724434578496770262061582936016703742257823837932892974227784710979316525745625970970204805076253051554287290349311284444636537755364723225572026796953813735520773648257014425438215761141943438077893596832719721329481562542858694335296464828937561568348133849921120749610616457810713799206441759784849413952235254758003758679377242060325462839100196426809419075997374700882746970601633978725548170084314974675721790051385401179681167563051087480300368723561734281401219853187404672384549376280726607596343722497041491191992314929565844875631063090956578303038816893329268747553248515962078396852134807252520569845221535507090480490088985998867063234103831322164027787485955327152891807604607564746776439766670967080320512799917291970991032446982676659296771477968314077461575733855266864118662255225825549499670223022919699619549151776279814115953517170631453604370549083729975571442883574460564208962575505630264814491079391647259975097789404179698679371224553498304568860934774558403490745927876515268496877928410537598715353088510984032184390698681090895383849756333332254527261445348197368305761383449725070370634046426364346000068328490413881542662197662731940153085691935860496054112782626434381272064460324104209059196587364458114738701928765619710698382437053568371556900790914636251230998172228650412596126046340434121403517516177001288940810131409922086820709304171464137932129560207640041750828051717281864062328651827988134239256548856388760112850928166274208844603602180451207958385231714647115958061416206502807753787012998221070111526896588096000457819830126353820587801067564575153796007498330223256810967072191984002837239885029857545695133407718297314842293624283533480050170913450966152858315421634752487700378703230360078825700789346877791674603414142341729661336717612868580344190854527724931835385201052749403155531054804606958122608529342601104799820687482417318277523573782758145389588359654418903608384163442566804353988485015610573454628721895579344313109298555009713307388243970381993178664021964374282622610020904501656306371047438894861325577096670527367059918185232711606235014563869945176397142565207129422979655349761097365073875124344010655976502800312195157363453991145389008096144131000683448918256644314837662668957045106386179393461054402154612554687651344608666574634044967506065766971932694073211122173286880421170651236625826541977340337147637230211624626244534541481934766539155890997354645504777761634001386392969008917481885307921659829219172105586246344379028167519337563183588930787817282795189387868340083130752723638366158382058975336932924368545606495449575345663882732040352453321249296530272687452812694520673619947531030443117832956535489131989352880835491038257813182878455575855379255807186652836654994503617121947730218922721221883262712089285215382435538990821359148078758694633112777245179725626405908920093232100263561899584757142266732341626816410962320369008930933655133482834250809803960097699382369679925620836173766982037102378345880423343378741834097366739738428809785550125536145388468224610626931567934643277065966708818043735076868200908211175981797950272921843347789585921487083164107135035361406560985465438061043082866917137424339861862168578813781424066543102651414341784697717041263558629575735371274808614918837153096464541913583446340822480758072984399659730398955262662619327174635117640698834888256667625082460771490331199224650702674414924304337508162069295674715720920363832760756793781066549925083320946255066119070009161145323339628574898972184936262959178251306744483173195829698681911851855499452637446101560390732872447912997091945136356153834693047521256529019780218362746804833608743734162448545514067454691124367402037683538463791761704895419182448708107266645458952110806138959050675347917423018207178434314868618825862095448983724122729639044417905565662388578539328828820748929991149813506929191698729802563145959974881365660596340414330661612491308066305122682902789455516095047404378125343255215131723520642735151126412530142293304986355966316246764266665623032460934150956524213158809631661079436927330824663356151460322140215645435945692736206813110081856588418083739737414976133566638655842485446118308148419612773671199249802132409648653547605132081558618044011617813485518486967754150438025981251332890114171024287965345929808017350455814883652514392902494497337007233426157672231518362763822469525818886459415918590862262499673805235377702818854078619772107261385687044170918233318011680760056878286541117245490417811262661138606279944701172757325731767261401214755878291189072280829106667124363554419542708358661589383521437541614824812384108459680243640627473900960102786757117107793028340459700135571543925789302479066334533643714613450591908868473880091899312153064664999413927805131788193316996517603610476815018261212298697910308107809299724009621391166896334518725792465769897512833927237884539879304496814995125362883074056241456351498245279209454434062890619497866815169905363913825081568925298616807719666863617454568256395747022933390592581085089084665088009276348254083438087130282132118885105974062865833364906358861545256848400690200497817778168270138485775462938211869663228327299322897130768088744864666781634188474045815560710976425955132395607834237285899686205734885373542065256426840354722973662456228353872741034520664658288925537574619360948789397310486432566070426158067866533525556392440834002017706985524708040889132289016074859706287956810638458902892208960938485445303832844840423328479576993104257908046199526980549302057448765072655705384591357588742604246085712680180644193497551648363380773186833676180273581557855013722075608609262634044064043944321349203224850074729911297800643621586725980716694421908391740577523114990373651224077726635209539138474597182565445562937739486280482937221020183723734995598582929027070101144684101876999038935291293893696447545678675674900464246438160068942796314142793917536707999480503337796589463347446489699581099077879371112291805728202886972353490759748597997139108629065100689658906332167078869159169811393571857251514510229026085366478244626644233527743479170045462108071107823257954636923166434794899765697804312102170247792088595368052352967409499125992043090106566705139252695910811241294433230525598771287559652046439498238232939283878880254102982136546346090000621594391124175920476826233273931382589160772782425477827939427813644732644290590885505771024661619552386886601036346917442249391652695028085605026608658829878399647282095885341715481929683752133430062113909036485472771681724953087172170753666187898456149447566077089113938678191298055884366539203079082112900383915000526799995847351418768521493839992012767309367855838366351472709108604552301037062371520393827100532813811438401695654746298045097028816042643638710192243296632930525861687785349905235944763255138479589668584303040668740845818846696124614286510986531770309846432248944756455966685781724886089646473996763290040362442637846681281786875864631058972051031003426169955285917195985418745947368443009974148001570228312840828173529879416875805592139123741156813683794480043958241744094229544846723461359093120455201806160011044742196349434071194438661216663519904009441977932715433617375581628329038572440887878118982738522905926096943769660124855245190694870856833336304710038796097317040533595531808374876470770148522145447550646092319185979345625178651219286616617176924679934597291019411798888069378333901262762094087688403248708277863488344088708093302693602834551200322775376528616196489656936040316574670115450314148844957520355766603715947170735957639849448146934559317011593975217351518676129611206417779725634479037481157790613251614876118806192936513979751497025311606055440570985397854786914527033986337659600223935195298282362695644807581688397478196629441985965306086564219427732369804040252748113042756656681635821872043853280602495199687525914061990264877829483965595545955790005205563468746369913394772770278922223943566327643521642221189673716036945223797973336165680587384650312319148727570630025289566167480610669871937175338535692455702490291343723279498433816447043192416575046976251330922778155272455655061307110858853779323502358642957780962770763297871809713694819824743555799667213475448206987469839983995526548113080366309956776207819579737886219142759846413140227841245490175349566158613337099736358295217552637901982960485137263252074297440026779162335570802462879111875617685142834705660033376340773065531416901289864888530718401373028000517430982502017931170339746556749901973125373095617624560002132213998710738322510070037627984624491897417382435666830927265102956025548204752114109813007625188765274141242806974361527187916469885435714264355030312756702805636282894939095991425674164731827368452644949199376884060610517020968303893191288485082375255173508710589342443560476598037782153561061001408558757055003655359588148884981317022325877540728555345318419392591160954181358125119099139496225047995338237900536800027183323980763958035035548005989699955410626077807692196695924012412487758503870230758519161663756385228717875465534156422988633711207579283965231205859174750379485762504832162959972116175004825719214151993947069958622854591095164175815894472417754318424193947401060750626644706415118463148736331042981160929611174443406107435167619035244829970501966725388349656099300879366366243561711790387593429498014848969403975972979275385841327064883477720418582896542994343134331161109608559374333229743576698102573627664013740093406454753192005856643978224185515477640967414658500194071006848332536550856599707577911753387392210168279067654783248419902110148114154103697111870836790152150335639829400386877390259644165780710924046862577969176117792297785024703115228692547580733648110792687060418974104066504114958013102948978899298714997716174288563565747931842479724281245769480276531519194935398841693802576489012813426632409038843142117237833125248741757158957759263876292203613308370698714417797661315262415476663224013613012390904223094980331483523883447322094073703714532487744575486199416982533162113047306583617178750461329979665301675646121845844707515887702657683769211231095971092713431507351298041434122791469749842228470145567884193075834645477976105909595940462812562085757045292622739066051950875497206976886256930857556022085450386291827979199299404025343408774337859404861286030910390503561051720221395728997899937468554463501365216247145367543343754350804469211953796696185683279964392232103985054736902287772466492337345476407892552418338938850347963663772357577481325159693598977422077961337422510499014476868745603534836277588381126617829913683089729047317825377173438219476854373626908701897380593878493237270891397666875328492574621776640674013242820762896421331203344690446704511480761285131164843802852679998863777942435191295486754076824970352049071367484538457680528472591291465028512991727982834176717315054909385513869603467638900884213221972480879448059888848972748051989197627677086312114244865887558129246809129368037939462136017048544216840265191218650108664830453423440656609153281592736104320229970302478839311319697720230781511977838972702858075333746830770535525082005726780573851024880776262338392724545267349556578779023978170463278638897533589204179539312620758736301991218305223981550760375683817801660033247965193976572881068646420842845156897587035365128648304942619886346764041990832684436682744484786209821418564561980077782749503184319969387864511808978136636974288800015068693257780719645785044697897895208676935876840620228884341067246959922254624193153796008941865828445886605803381694771364781198654624838574798190396560397736963807107679423299957298428303732980279246974080811000537927497110985605527955575843543503171163010447267386287344099486668019760110170026537497624795288483357428551705116888740096416246287419204168596834227155750689960847150180487704706052032531880971072282718438694985442143228983451660119188341647209568523931755699696779373051329372891939750387950443076336739068270733766723892536280825681209030918174489542337708055594579256224981726987920400024241787458240157038284209109724133767745732390224742797004786097155513650726205762755821605508115972697995056116637482586806660217380405347885329071929731219804227524503464378525772899632148442930803214773062438297160544319006493579960548300066503708386883556835898266122004282535134612481799800592452349767577551523743106234371358115176074482954176054069198492082565237566833633193621443727886106396696986524999121302968530707876788809949987250733514002084104484891266916418549374854919346401713068209293932076308502489076766148479765994981905780442263756938334576470506512054088626691392587207697263099361831019884650409599929682328733303874409078642210595412307111291021824416506138936868766830790661554578021959321168112807701121432202768579373918406564844843159882516992252919594635290248424453676699733798054997948025731241444443098119277285768236346262754696093102870484529486129265888274923545128430093647054976895890258998757750203835737628516236999905463814138894691751636197691821694114604776325672092158314484587352492322513609314363442066790488846552791541442608729497400420720128645070883360195251293623178677377700904980582210086595208354710446840537360254825831361476472757253022088419018226773305952658684402884354534156271595999796558525183595333438955756519694574391711981532866207902095549511805641227200752947779301809641402417205149170674902536133379246075464265161632316436397516286045826177690545087063620577818708976480003349712025720476692503431409980627908814484301983364319219268680508454256794364438363962648211351745926339413248750469345995516939081814600493140585487307733786711114357758957937941532488231878944917711482975392787102053690885904002334961252589149799569138983757261051384283172837335142333548899852289068476333083065088732206752156550591765240258355900751411058713740862157101043289998337256446412047984462298183574827634410609466506284117558039291848394107176254712560526529988319897710470988114147450342010352288832898128473736769885939416927281427629395365413268354200930493503629498248111886504260454992589447337582622874162228212445597049758527729525461860929082608835398624011503530549282824461196592884665372914028846767274240153130757126543792448853688915084316455761311671760829374727323193628876155667381165240180534459991327884305858532783222071369061630878909455630619362947821876027824949624256676251569785974700737774623499409439871280354670219911531034004144364602325389180152968256128666150185201979721679952632088226545055006979489304268984785325233331278851661897619827121913544711013546281477809532042888509346863967695169236840178126594971844617761149952617165347925204520437688675575082852844987237813088499885834203761489964138934125844195193700028995366079206994636559575661802580751715760674420187118038371731829974147681261003642575529903651725701190143375338177150116554812777249358669172014681517991225683561109115462431483348439934718426836110293260146487116584324953948741664205836746545982461652599247776745669382310366951492621377939444892743238562103079108692959661165367803904164057612313156589269797595061970325112679948415981601265107623639017167806653223595799472775048662062338826398913118788194468048159037767465383165272392087278035410271084560598953493972661495629319873532222544824390883527015957756837993107060673385187030710411671114927918102967245776931098758192255589305851179207801838318881411934761900341389471824222417034711379532887977597683939067258720849438417705516347430310921399548198344706287942166217654439872774661583940195126570968418848762649458303708921140370594922013407281564434269351702990917307136728056776941316023768692268744212893123946744650185348319751545896537973992832389232030954738868444278740934445053833846448383232382038305078618423130578650453830781976883310930272810574240670128279748580374967195361751573238247786181986599198189133112254558834020394406267923195677822408651353441954554411023668604626311812155107828464399568186654476787605617481374040700738848746945909086171905253876819039946449320189416715079063788823811200002188208711001200038776111092660789761620909188938980166246615589590209179784622344887338928066282764399456527973005523254533647976324702275229528447348525689872786707721047349229406898137500362116337413601978059029819474863290687237423231818466508495824227272538728043363240377903456031312152911826929990114556080242187913175785697980605878457333986972396529795782951418650555073910160149269866725839944975589184453071723797994781031189180660871804565586659223931447641694340251579751480822995338625167616730093180039240849212813849546076989765831689140900040292943518685188870916062808573082356486391254316901874629245272314780031773777270317869886882780909051309908861452074828715640283632552245628356016760187442544130715819677727819928816240134054041061804612682332029952366184537256903782062100608035517701134930967328310699729907239929100999146275097075792424783075237637480570608120211493495347672310824171639694235768195482226951729705455634045207640699578123073032578853301888214300771723272816858160794710408288428355379344823641414273212994034378850939439321871206148601447259875062068084445214099974508969530185045600809055825185202830466094416718882426674521924007330282020072873509705460010524402747507448521198478055021755820992048769304950066779295720629546867373364211692127592347192002879419544117473266192301203959156554993193152940634483341597114667810404439911917435623668729800220218145671229407443730280123871617673801592553164527626808206502313286709627911756906497895102734058310254394184658898518570142454088707229291678973122453701800604084242451150698316737844448209479297019775689233705341619323287474808134717694625320129980842413831447264544850626584286124244875650854742021138059605239017318252038287727137239996243013904942133472846012679820551617965329999254006260603323316255310329959188855290754441282274813221421082186705306308749483742574650961396172768841543309840712780981294167259252275079687982051362985931082885851306932590469278091916895374121304316375620791455250253356754537073283328136100165878115908351656207835176890125591781145183853497690911801935691925862990423298574631030509111456826901618162112273454012894341836858845665797131221507984848476353220971936446530426678244666966975848900509909647398157975547311920011510442157361774725817979767396308156476011836933778464152001489340148390481223112994125651550451239152211870360824996630928643762144967668231006820613405785721703267540050462350801745794544112610301389862216922855582893857855072281424125557530511110597191653024645468524599530107864789793240028869246987894360977711483390168850411538981096083531657283313053093426903033692681259833890551870641242394983934015632346324552555885450205524839304809613628013641101736912319657622378343232292750220978669282394343181467103002155019416901474634549392654624552591609758353635526937693182106736704746049796703040387348029331331251544294519565409424854303235757963774695475129029088939587629294884238926638292283874638093341731176537534751040968383649611839439199965284537584110970867313051427687924333646358225371089703075867886315748954148584323529558200258385081841377062440892690758219766330559930439952888359000822868604215793418688057291668574605222223411097868147141619821455146013523575919218397981073903629826264883021604791198234943267911221217067511401748355040303953364657896759800522503435138139796357636604437397675316544015811897938147894717622912827260578303410609604927980069920712474306446377165220557744700707738384640732411917089142088026177324429933553055863508362228838961306439805463389908537006372281547643986093631961328239606397689559092280028235498327958845937685095530642818654014764428104436902280792866266792538958001862372229079588780802982808343980090901222696147854967862055461521893694380769459199639845566836570620264136010751787391716858337506194161803972461167579082239964307193773804096575305333910927640923436241491389351273955496376721973783119769643139055527584414794067900776832215144973967164522640109409488799214366892655113569019510415101999377127837511848033927756998270964804068311303618503152780476024959259502001876410647249828758270699308737782445726696069743645185548029903215517745547199208605290507635550899244105967439666918045702845439684885575983735341820176517255736850233619225771659969126082514514902578014410185316700332770177177638822234880989276934613685049096662639720230433530929601159634712768950838150195193341661371840724228130115548816739899652929154153603672492228538707051217560398333456209990692178776296250000639273223887447852299391472774102623268007393468407798885278468017251252043530018216601409320368706354801863439196348050117748396842470061845331606010915816094427803488771092569306497657407937741629872938371809123852714476857466034791118899544463902500066872224545107000019481873348095547842661807655904373811017322397225391932232245759043129489465298289130598927235319487281730458803076191968712740007816642735140333978275555403455844921169313527591843344218834356982750014597186269451656605838811169287933827673237710163966529663318646183362418663606623298647598926238616459499149776239731708359701544332325597334217220848663904713831615876045841856694591040431443733277673206710986367486375028956581093133192793993781476678324515451808842527638959415818062884616771359677286799561527609612065150355031563408702374530325109838294403525789987477024429664729066488643189216341321624359422007323927057716565965822398373242197376787318363052662959374870572030350943057764371370656324972542962499999708233121695585288200696074794762552822255667860878154673409783802078031503759013596442335916727400129570890746436500197568939024543321453293498212331217695874330983790022437626895963400898608667251822035798837250144436486911292298357114454368485444731309455216221827432318485623077456473213144906643403660332051824249077482931513248371554138802738837663252089785099230186944247820560692783469423881278720618063913885594282679676171654406136721559895253196605002222644519372261789025669168928824405436292762174680137061326807461375950652493758790686206224291578707484261099747303860701742770073924518003283738373767817269954658346028058931406449643272573836849266706490996028715325599729109119941562560125895514708110105240653715126204672022624213353635126569380224918587228595762825713868040340784193284638566603405898758710368573144639539265787104150965735605449345021711406197348143028197720095726218677209369403737477576058910265621093416333890547093875579633844391239894177685570751292281971763990737463900549705815949886070248842592506691595021223372009803561075566998966492239978058173884610602188038144174382042233711129246913429382284983259695050068643060279131983354713496189154026790007808579550263732868789682756907844272038614364034006052948894198504273302297340221356214772826454808767609145690643082570442297928992102255836453171711452400629341863458416845028664340178198378070003574721558244804854842680864255783688929356697457286916845013630883432375203757299539322028860259580082702540824808469815141820725179800502292893310429111314997515888939897144160202575265889218494151520633873770037263463118641572305791347490220964136418525725084331553548838730365551306698885441729836936184799018350437415669653462968324074679793422006342197177064947171430759115624989496725773758293656264590460018305387829348458170769042878630273543120167581843637784958301250669759357096654312593359271507912379312643703192752977233877140517078976587930957858281092599243735892807497772054640341265583072080354309543901282165676673052069801175163934187992074251845598887565423839698080893456640411970860742209919541722619798219495126431579575519138928483878332398218626433491317781355932550300022768375783314445850681063073544059423786475756717085653809272778630849205402953584367877656804145997261331249239127442989750536055574297445924824951597318285123036213137761359825781499739766981771399827255477977146485728550873856735065462829759919201645096664841777770487779446894034742143966227448353937864090628302154681558583826878010691242732573458801261036901034834487130854187994689319092095746976772811750833660828793725912433218274949969265132834887577474439996429317284264950626010355629991648758960087229932839118007971990777104280857865445680156981127941943889310917439899670854986217080859230815341069720503998629582295618201070882045557748514534881823687907200627254972762683565769668652357053840235806679565769015135682074907952295315444514403341053219852594856700138493358303176211064268043069872026436097726659657521553327097535089439292959141412151709142513270034621534502235363055978085417937568748038199347531520889864051269811198090507613823973063203454581652816676048217878337591811986233737074400262405410422502575752546372114355699286608280007630873823282103372966185367749109832152474744219311458810939871267663526613873321126532882386184964896595917140307443700325408736433870116263795226537761070308734583047921910405839780529441911385559148987001894507679510968260665429438185723371671465169101672027267613941254499023876640939146239450289729921187036223593339356414112386899086515108320263547338854577578072625343774595273380147850185937047568338391003376591133202797381886535374654879700559444505343246522098362154891694877307566504373094995959440161407317132211882913919415910767447748708688695879001154175531866164599079774748282772143421775920735239237755720384786395391908792540639760707323299511036015344313034415213482077127838818124327514460038083464194694337918879938832093995679830836637024095728505397438257359185415154065960995545820766599349274456703588733223844826761660644527981892835259021004685422473735870892929295485334442110347147464550802651316589335567644049048266739255646739540923093326480449560370950241967643411431000228172670697463981510457358338893100987595712404800128888321957498604448040472908016872939460395680790862859269441492328126525158844743577935653373937891227408162842747750708542590006856786379038175162316352023437094923037537514642308771381003995232866452457514402232436777327056459914983659647031668239048307449730040036586002576103510825576234787581971657038473791952905302070554153305003152814721373407258077439934255510450881262556529094418370079176429607471342228218514750738149204752377854368029062906898787732030682876083236354854938364665774041405263313541289477279777293869970087399570637185337319575236412917190826117073579042917690191705614605103079539070490701974131215598118317865850955694131821220314656535613449002279717987322725149683345907583731942278168329093043470537761885196539587268158545451405138169999511360441541508745391612690329210107821602118512255051473018579458896182127052957217068203945289494336339415972547910561065611446578655920700115854256292389116053616903441188102987039069427498370363975044521921022958946347162434401694019062170017411380487971005156709187246920062020037709822237736955372857467013200983753058526068162351275784526700232426948393097583245440414081652252984531652230100299920887073447533847862354571775375622065496319241175383494039896824999663618357300228035521369019485643411064415096212824365000188061918752463459358030930958258539693234618043881703772580274602026046999190628109414721787439935827306625156619981504140095651493794446255315790422835722859398961583347693298327205238028436467760450819355626105674431553676111206289484929412346935869440120021372266316957601361107035824434407239463681647871152603957690565059068900043805359574343413938759996343960459506147805868303023993954123698924219656795926705380269388330143534756258213674236813225208621256673698448221921228638185493076377733682235445529266555118752845849608385817673138780821043232078617480339391587046627318157570674414398503586437845104650575636742880773237292013499598152761329992098006828022674748446271784575093034383593294141080126920072839844228614661561924476806793754797423350965267784509700847982834907417365767403912047032278489617268375342866533380341816824927930196673982217615156533615113249419251780181410548923753448168190357446729513405240601600167322936960355472640731154863963908552954160689844338624270551509512270033316570265674328201484983943206732536875335079015316295928648591104713372531739520149183659205041020514549537383187025835334152499343559713445866811395010086447472248981397208806039734571325600103929957523924516780630883689863514958446169726703266907676975161818943914418976748152228217737333371519572990086908871923520362098562149217259578202297915753961059503171458453278696557353740366232018178203906624549490914503307590388438087360459290103623189861959676507328209376626642714287201917672987522889319468598781208916191637171775920078947225210535006902682288503143829663890915922811473098766912969953811164693753973507521034251065303392282800293166966039378081273645307969892245077791298388281136369378376404365288932223776429986715123417171382310761906990859554591269020765610457771028307351394019465452479355024942661878070910395758141845134014160832170296117854836700413830881696504285827442525763670657918465919645278741328086964937825616423515121170956355358601505106402045359238914750964473794801832015717173134884958870811787179156978242780481506535203505823039400696071866766044151053102319877391371499758360259773172078580629196251434351439935308673319714817146017242200876959022741996773913150211560364130595191126157865118114590550197421147395624769219381505160404386539007128589316205069989143447848583201746040225733588608009902287603957053280825288509302640479203633809186436149332141255185018402169713775418816554139677705817846510434358357749878489436150210874131669499905249057820365706093274829118630163472865160415796161515090157943807248707783109082554514504329518740003090252126172600937502897715222333593638983633207573595798676253890651306165666294732990243287559798058018170454254623024829236973241243905194164043168150684829284416013357353512113751405825398389822275403328184760499098983382953160627948933807866586829767354039945827013668182911207075800998855168430530383307705006746047869333397982194867781037347648339264084286583090430909505079920056509869303123913841471210634683739202131287553399443562636947084261246727636519419042351940200704698126757118928384273854256832971167878164096338517917757422102570045478462738723732327661963414254982018306781571213398239559797979081376797477642678079135157259680486218246715127219552327451803257206364549714687356261409381157074233297270291763887532998863826087190388293892807905200444954152417050860571775284055632614628852476717782404337491695011152870025790336800155126080573530385859627383556716813497809528993805856714904818733094675607988511721674934305494922480353399278323995725636852438116907364223548799247675694829812670586278794115518297967542080856900491019259907422263488397235678221117527488905412206157711486216649451421621516820080294678119807011107019335397315955764487679280149872899307910565505010964588311537986656808133767327980269917706482721259336400495743701437547280791146674188667165494498668133925186695858773274792347137904836498755993893115822390720210844936585875634089537723119286962614349681131358417609681288094523373786844063612777301925618701190512101325640765270692857380329300076561935440383128111409920533980621467485088382126726831441401413683918146373700962400283952842909746780069641266335407937068695878876223794567777258071482182115451223833860408688657311278084652418699651800723578708850997433611071229212511901980640490656390033873453620172033681582765669059945278072416540888572140388800445070350085998089789099584906253838600680999975648280665983968616161147669159612194231869616351511363095450980607717658533314602246933884767174547857496343046774128214100726791138648522095661578844367875651681680213305405602939497454527717419467707770686342051497123162658344584039415376954284328928744147113203048191454984872738584114151796069830228468445280844958073354908369234952604882799343838895529649331654090879770770391535574075657229040521713221712418561745859874426701361260854965225661001063825647650723524820655703361905011365399721347429396405935798274171244503670809521693496615826125465068964706672050909305457837677000836975110387882358079826050666357231568773489883800101688904353994235166906184987485564934228582064261797018662245913409779320548640747764547736525500171426264308816796276215593520062447631161432625576430218966173796973255926579135118996898178636852443027192424792340486704544191253374376591010630579166343103876907417495900356062972166560667519497494236060306969768140605321318256477106705682358149399216994461113554387009797031511861616829695893574703347269316410642072605719660768889299204957377380279093274130161792532117767302223215935702818596058689188251760309572781171786816740905654108582120843583036478432295837779067720036258786546385599279607181979863242284544380252324901706104962474365222053315005989610722229339087552770312219351549647720672731201192880444330131699945930051991653528547622199386886002271961739697432762153833137253817722675118122458078902794686074397341121927265096627171933513474861813830713875574505822275744034643556797755144277347973547112614095963149663935249173253572293033582465832995261471087936419542176810887987749326943353430049716537839709499905554662609873900424526318056659261313472191964275778572120085895495146045584648290948802606596358028192313543551476325220479005734803083397148965335839728949789480621725164316630051976415613876180920502002311769420899323292334318550259151270335924863095718154206883154989067410073898094176695050727962074942989922920587836537821311931550375192099087054311435935298158880733157555136503837161106891767622513950414252142023746897977282714305240354880267893672549487857904285607884271474790947915429925815080638297296914053044638419192138730575196691247146442183989971424423418011198317186618570501988276213841070793588000258137012575033239310574850471548885571599486740639294438301879763182660832231833445412999942461515174664123882517442988052632799220610848956477734157998518220431820393447620554668936107143877041390682207472733538948546924064500806945673090452369945931538690655473512428785822785555193017250454663778489844103011327326424558039890723162818273402200946922819318686923644584205829977363462729856537657696730115888995631334669152175447597598559564622146965553249162797549455249876672285146384901480892853808724327685960754419209545159900217209371011925667952825279522557410863083508895523304363297605942082749302931230729889386582547898089408790452435227975345046098567351828015429313318387820587304986304629223029355094488374575736431782418433332740717659674387661328587383299077600675508618282859864732757457021612173045121196566140128304505054419747256278421724147347343847115479057210877057380868592380948871750367833191856337298369042369660957673310128001986012511623020227214665042528204050411048609715130647755627856200386205750477667333854443238199819110378154814974576751372804221010734228858320907637808375281167686910221605007715481154750869219355747510288333727780990175098520155537652319515769214135023749720251703034045726243776846754305576074048664382105840104252772182976911138785067037287413743374059218821024694629840203443289449517575402026300654063546233715718695085376121467182131067387204858590522639937828308816072409632513239721550838109319781008973480763289385015604709343057246157341199703755174447445198872950396776465024912937321272360003740740880146380352493117639484929118339952851335798415608303933124572194524950877397085690273710562310540688823306992529209325283211573329914231926203523392086320537941536189496022112000607746437403369471453876035566949847654375550042091789654741210905950827368668746713328080542730276442218260274012057329783475122695137871470876272454806024358126250562246354147068078181220790781504996752722554265800233160424826603655099480742705483102852494218679329430906814026183890320412587058220677593771634560977327448551687093491574811316456712150766307726877167426238814927250549055947399575374387970063784078742437980252170553254086962872523240205324996341868101774666870611882372464088029910619293844525884685403354431018419453883717204892338578152685733387122292760204363497241908069319373143488354816057247788457697413936637272976205241854297903952236626939005665038691618059926584353026486953366070233539108240583854849453403468270244739702906195232650674144621011742940638788644632521966164845300352767477855402073346073105326073136502721773842171694990524033220404377007320456296588951070037762093053200856098616006084932402902740192677624014806011495589151906202133784076174542459576934659891977028174707476249765860461619214656226492312123797865528289739838973124286648782616877005945646519403750629624421806280891079089310793837943249136041080659057919159915632127175187843892065594908818492724482677609409144888007505946306119522509282793305213411143954803226004350232130860383485780250292279976497276021168285983423708034078411107427202461616295497912748886476252745378546548908226798255879476100366591507538540933099742725331192760362683609132765289875579211894020803284733854094703692521997422963696794206360488776381661445717871230341902136075658160288691288795525753987974645325510966004862517304789456836911924789627715980016889569740040769520502454365357100500555765421354798016894966654450814654421046601931633156800851293791977626411412753602183799940195201188312158233624362301259910183479212651889383594764001857180050244043652689252322800198687938696741198481995715651263400977561163537451593641778969142430437603873170627626405610128824357219936027341599010404235764263185265738320351778377857370507511306110507033791848836917592005125780926579854852451822180233815693120005113609827445100329563161975024472656840621666882101426401723025735286704406255639161051293620548856469371038202752431126611684078870693636693824787676266384646200465545389524553104933084800285401426064663269624889436645387608661333424296467650797664970459330522185858141579305522007959992203921027249607795101822145595960112043766021045348458136242004342216060238549821360536536752783759072431232357453491978438873122631623960254133388122699147181928730549946949609688922958267326161575126912507548007009924602831378900579032340527580411291640828855373101588949396715225457730630110768556060804615452147873606282751159179881998561547434597679175196889617878919703253634111347408368587984991313288562919244140485692904971123121487144897817022074010994812617895764655970621757304319443022841762382374285550825954905798582490192709597124727904162096092927785004442982744873912614171968102897907689321774852095575838953656168018206446883713221191445361405729046073293749061016383155838387967452271043367004808082083131118922934788611254749734744125675640024401800525827318948919220938185027291393933214834103534647217343140136212654144314660838017417675004211647686660018543528606478261491364327623668260275040837726566406878868943347373952555410744240720358265455243107753756486634503131563755425876053695906423666291167640633883923677801903610978552175786104636252930305751335575108265548194950264130431067225350287244037336588616779131554521714719982884256796907407374104747458861418940791532349917274651610567647904933969915688383200158489717620383924991111315889424974031760254741693354598460372663030416407098998355686287410120376820209471110044486372521557158858207099132259563978609576814226972499339725064154372954652680820501311443199838845912156157429988450912033788847367426942156663495747119845875119961695244140450299639820060622019961381318162549971057807903765130305581998808048450821369168325142919848963129492689183059460990214988159950799834168021795287398436188739709712359534643132349284834869517770547236345789611022885305517798738814065539171953107873236873000868537469392727888932883227573321204066984162601050721102303116824514319782780170210548932005398969536545516971551584159405635316399964022576949011294852228036161032483637535004151507441843012972349984838151307958579837785520900107627093156705778217211632913173681758328748553399016165475354279896852302365136558232934123567322924619097445278739581468286732624749588117766717090407271313980473448618897448778635272281107830793361883974991546148218621028425507364069407709156913265977366035514657632180076101450443369970904909928771639444309117817244917653263483357672088355362401701455434579790319591628419502458136668549530984736649157149253280728647460801407907777922626956201235362513063853841288102481132709280582636804206123072812608382306959103774685891390605360887764555777779194128267027405213350526743771262933145816966537142410410519193899536878909107177401919354321250701565720715686294235302841563155777810401692457355743444925128660956272358495110928855574846561237581366813660436546554617314312384918483991990512572682494786558992397463651294820619621547549721286652838741199068388268326842209548622769298689764816705600469689645789996608622906244142624228682967878544393321798089628600702107658792878288426908853854715330811114115661622718156955643974166506508504576308222084896186895392610707945748014516673209549375512374508987726938895759504800393514413716943203860689833399581385315081995523501697448576136088722155242772508216532121433450017482858906614074996122768831954958077016016884794772080508290374132173248851830300646013605028732639144111012326942995720721665404900199588096990003872884343493141677962707369658845664638498164525278733317333905661775909607324395600024967894454673161014148186533516232114856982711176448954523768890296123850522189900892937604730372233675589511927875855779914965613268443739715899646128717602004145208278758759315448056120071962740016247160427013856368870340314035028422119357059402549577774671915789207901597463358473350388856401920138392799085189631339380105263697760107259331000863913703217721973279818554287370480991376036221208650746843975445087015738834081883377308127612186411445141942374062486362077384043007520418580090418736072837051802471293847942649631295849321076052930244994992811973613731602704982786748088154273999346982054411551776760075904235705336023042650470787611126331825539661691446964410980799187678930898158561215946700288865372830882531459257752638267089090991244235250395989483086722622505675450591566062190517555949356740199559176995768402385719050404765337119886526882634224259932018913558306378335949995426188257684126931786816021946285658309058036149764941853256076129247701512636732187998223308641248432837727704080423664939903716719843901376386758954978962147811124812583276283279755406527928076318867248166678509311966164779646196943197080521915349197517102823813893551450893636882243533668387044302103177589266848986593613468599900318077450944173742209050672365457186299079994774598365580972975134296320039227913714512977399430992627373403278770776551480605879452338841845938033360250671353450621153087689644370654859211030470009973743348320914277295071628329469151863612248127513459018380088282283832339975668839780620425082980875287380695423111195069502660481702923499114090411763202784447998754917979269581848154365354463998319050707913293898225212667101886627473265968002584368589511865713668930930395511518143875090188410247820302085146920802251611157573555687182729339991755609431731753265706389515242701501141241453855191140579761491387618931369560175983072873371664676319760686499815185887655571985817889712769142963975972931845682430096024361605932960298952191245172749830233047037441054403203613071952692549273808539623051843670258917400186650641304678141462781606676778953283218396738118167298828577443801784599242638249039311626809016810616773961257471503926139191233374168095935371673170122320741984913282023873340547541396642530727717625437235813736480101977603266107264094471925860390197364356961451600497069418887713654744827816245860964907196650143049838383163582613353690617853330233624606690759639566886573489866427611918658227391880840966641196593956993711411568921116044811517784361924427781235648659935105336387891534526376380771222675733863624380010792178901850150201162223934982772623839124711572460176178903202514495016352363821464681258453837838091089102996901803936983398468204282363394725280999945866241337614106354018002282018046774148272734396466657398491246366483741502342554581861881042849911677736863318928509455628561421732130567607949156137719374743619925974807368153979672393586016874671897505979109835550646856994199015388840099177700380896621420277166194245726869370920979429103700168252444932562347940774985980076435831232110289947683512793908405086428297044828912561559853364490397778988305336215513859755925677198238395952619235824531580186243368092583534816439343214812230465639080772746624365852660557124522290842804581625116266210370896815862289819795746448793180890267050645869383611606289976527827455515073748361567892011104503785238638342263312900360150106286120777819121099683469892490139477298839673288687895257837734420602034213627624956609924510301273119907492672425365797499537777645313165483318381192160593187284374621434513929753426558613328608306087387835627519526456848611696909221540944526478320939818156819398015494780183900557698241907403491840570952266454143786201726913638906975232237881113309981005129361983279870755603056446212258376941720996890423475329218850274753074156207731125792751306515181531132852090506990843136848650037763337767818846816483871317692896899136051516322206920602017996716928892918526392326051124688106328342659484293110446856224917872872255376339174889031772114231972687721691053693431326843566040474238385297986084514349818490838765556717998911527700835866091381917831693183251121637133932707291878366188029419282575550914451210663736746714255074595248593028671576826976803894216197455432759935695385355111048836826473100739217254846242590224565610482314908051136188998584136906666961211080261180855803199743492668944881524592323395509314108648822397501318204590853685479554493424556932704627545195495817397251691113966254743934014366490258170558997034068071912857943661416822819838594564585867508468373101082795402963026993659107688750790838270803353524329333611293514567573095652542706888145461710694870124116159321119944151489935207529883379557679619499216051191357208284474179496742615453703058197682569355917172464852818717061793713529205901247239398317083488448156542213765962833359292734961735092975005866133547109463869435766278948987853474809944382599012363105792220724590046814244763665080337646981085420807895274851968304320771361264984341593151458105242819943078866508558775177087738006232510259226489887120071334504917601383071342439777166246362203739365673443591250799556874731644059287659059193678132345533356083083127863872607079563927457667263878919447914250537033384967151136749164822122782074161743927984250699679388538609561127543898227122228747589395000595993943133541243661486171309770085177466026682585753219485921305548488762223064629269892662163367235815017022776820692964702199539178126950270988672000849104161112475263444804244401317994140722087590700301339887292602009702623527658836657688388079529048668710291397077687321177069371514286032103449294221240433196322322822181727012349550952611483335669985204933898541047729650370245594315348630139920451613021083428692769044131158196596955645302297145664531006115696824855995737257797070041394885628873295181981994986492182911395951537199682561724563075647526301795593684856865825691710697269994574967319893120042385730544246082821589369490169261614438133373268751576579980423010934961044242269564403528658323212668202703280718032206930099302043289476806624467210634706341505401183487334030217241139944009301580141221705498243552317811264233071389184101032442958187137507499937065094732401618214121323016139231274838547250516001647549863587597903671889208055470013297738944316488072422021366759886558589912699156550133994613809678055197415435250826764367131002580960216489153714878759056099685648303171068678262585918701051201254548382234671682143004912310790474154302715992127363099183615560331642231942409339334064088837671022063997155186251306482358207940258893626473419919103016524367714008840796683721620328354026141140666773688016783947549476286644810860514080012497137574207574867960542780447568982102508840811506751169801469686757192818340867724406273451548695889490046046695111123545500128835387742062381499125172911060768215224323152661676404106564958572502588503724677610715836125638537068353277116259528539263312752038551103609296797654069313074961682195306054564286594273167416562822722723435591167416443335947802063941285318775914703734701148159325390397516011201849031867505082996100137791952564507953654222199650950541629165312644529242871356348929728294124595355788188440047880133292122661642795872685389383614519712864833115957232686146625975063937109331632003941967161064096454053599550493013046450548162966660596137399145420388135887186867110127649293820812547392236274855529772129676745712500530081792171765340553911450116517627272798737767370098274269098567121340319522604987749036442196334699538768455910845782183978093039334932960576808807853800818022131007190486628561193259612796106055448820644851887254159942263465113348790448904852565951059079942911776575204995339799722621410588489742554471142320954435283754157738288724346159974618009916029581504968387735051684668919906324953296375603438395082042569549677396169262874100622532497005682422837549295929569243988968448489116038272572594996085657748111263179415381612949735326820240270298980109759791951692163312173258872275902399465911955955651653606365753566833291292357154594016339805839785203143786999879661369526669859775884499943738119608102916323683378555534251774200889629228966638127492514456574243975602330235380266426738846888840181147779467557858235244110423595666926279758251566078605898942262459857736053597078334177916530391042495512767848617158582399671743113116066069329507049812886860056265320458420028956401040420545959029197932176023183918019577181573932941637653180906647566860700316108417095713886894928014214911735076485952938471913036529228434167192132452991643071333168958395083072860405063144087270146055707238090869484692241898381671858583070622719971116700902900586484676923710508951862007635880943836816548037125181504279190348144945200809870300515308233520356168321362900880083450804525458591760524414597055606394852575825661980377742330444224176117906362167627547235190597566947585391542406961920276445542101518768427485381077317786126265338322578071386511668207271754464673751911165894263832421966677606079876440644073666232444528073278378104707415636885428033749613297962023311767713364601592511930453777290249617788958635657905473899797022357519032461266015161850258538372880309134924216931557407307538546879645106863520122736078577260579734790283427537287171752676334810008919277619713493833730093272603398867843553199422331554857791355360866677244955867872060241984575257048228838236620726073812434040195479613562225605956244808051683929687609412466471391175215014558716268869983938939550765471672836078115292276576770708384727749600631621684092789334387449779594638879049625005829752862065945906931586353611607129257176065875452523439937119254596270769128710510581025020701608584617149193150654640121971615835877427565595063333792434802336209958830162014639464372570605412081005421406618109983117522613499098441925796094205956758494695182422755278993618240761701865130687424360725829794278362614382373470346756244557657397377513380440811604537169326823592347897898084708778606887679469876770971350922198461025910298478665647611730211655959135168954783543060187624629945412762636264461841236751233861008271136452366276208334529171091849753190110697898144724507419844788829952593707369077979983908087368608696444053448564206635699919375666510631135705823311156751939493472944478479736689846138225681456622561810393334309305161845980735587316472483939797420330459485733249130276307621087421038731286560023346982024082839698166222648856381566016960726745600065739420231247415572389442623968967239129822390371637118713605872920579597419155019105395191196882635650580215367493736285644413202306506135170722235400114121453225705854724493619244188050647074269239017687919213787410099527704496194190844819277455480795657604024473947412268369426849160864231597925557205662821930572120866005944173067283171039759935425488070456469878987455118168609242222755485440178753004096673748158147673332032800494635648799062015444612297365771487935731942151329937943213445457090876167380583986978052581069990480866947098398850590922488401625059924032342964906172787385950894926861041007228159679303899569153142763714440719894856481233123675299827911999629148905784119330336540147039473972049461219836574425673866230279502819051488462436651890684463764254073383482133511690213976514571811710464888614876929765966711639936601143061822602240684628296858308914456150097486007629100581837947316560576965129936841213515183115785180614559137778329346277347902622629935252005699712928168915162467822696218970372823910717933766941985265801733009332204637443844496886801942197652437464237851109830235747261512915151971698202361617567661139537955470065090442328147561248906711642428479510613407132054345926198309313787245451656742361193273793994434506018267563334952956387695804258850203347609514901818592225899427649957237305922590122302279366044849276380051062618568089646643689484141668991110836922990464288512051713427890036248495078458140282211700487552974704593516781291248496899085997944358678042448001284874269754793842528291810529331035464588468970745984402345032942441875298799883715792933237852102590610019210852666214083353917271181761457096119809066560098016014754206857800183530810822191288048998491997570702789249533661661018613181206484263896078278852542772909985640801782493359170449412045868696858557467253436123299871026823228374332185896693008647850213439528344921047109547419001974087790358145070687781062735176625269212099805142650540483951419559260587108262910126260096473510000777770495641693733512321504389939176139619114470488245966069831120985741240022412845880104316508252537506985948055435261043240721122224974979029876299431809238590753589844579969370454236287701502559407404946469358294940762967066802100633041452460728024247858137008393694675429221543675021222495117937173371646733820077063594745518763810682204640006529906766718250293796627849353577789353562518980918153897506038850341347928843670875111359513541362036659548249933473952141892113283259619939573081930135114859772795946426554861170970438065736389113512459867428668871893184707913833933757935550283484486949823112537959047046766377761481642831929304001396396858586216981531924790980990205631122238800869897061438427981284871258019466475890969648818939348855545791463482937791127713625709332875224075801347971356319183715368242688008070025605984793408614263066472460844703131504885275597745304209753255274730061684071130298415048911625503285895376897701011578443256674562790637965277510160305355625654783402973821118575600690661255460340228167075085362038705727901960457859716819867335936105086340127571100144160056950461205611929374769197596963062422943015989997923379336704854501009768307218479266548207918025450272640246086030576922096764313667030540400359923739202760745880545879714566210203939212653797562028188137067634953431058710377518283632973912978293535200644258053092086721815398190175753451555732793109576196053378171595911776417283805581429573032403588324390876685000702621070966005652542586350043373520121904983191676185333450639619135479455298426092673570423277827846733767398360623089912824175930212024666836290329722494090788514211044101775242361639526960248103355062744954478605072840333182204001882795297714632590530328818765056944453473207667142460088890327210110895637209479594318332354562092856974796027046576875583413107802024412797769003117896679616505208170909522094218201954016744176837219251418107321304909273364165115859768305042599903316422133079978342692813614501777962320467484321987013059896328513922259208848403452220720028045953160203881458314433951703696944068203322389906064849077192376315695120143780268428623933982218533012743650730482853291327055563059466543938356315056506765673082013492358673367601181523977084806286175826134623836627032897959485050642497308459271170340767927983140661814060166349471925656295890801977489971664684376575415034678273794023019298943223026928089082676962612042982097543139018940451682625155503480565275684384353372350201362776769914834440705213712263378055471403485046717632026871215605495099159736026267720913866619278604390841723592751750271330795969798684399680689728513214116004756080635087037121304074321901079943521925535332489452674063924660520305997474388379736779837965806612471838812248644159435235496807166290907748697362194729992530950398958680606210411621751440382280760290894252891318606026807756968461161146606171676472326973132267323280702729234445362798511058688729415969291029346146430120398598972661702544084687751697167797561287328615681483816446358974920021405161458200390200648199686655890367171871896801189782287118766016312950710496092104728113028140210901911491430201035706953975958033693382236811842246453249097979138308261087439591163815293457421428968099734676058925965840831321563521198180945989139305807296855532744176618617786931501984941184551379646647200431656497282287862908948578312368552270800256228444040920220761195069733346581361146198780845786696207824250538418178258791887106289696412216949680445206709258439351544984897115344679948050024111171325618183937386381285105637367018387077237295662963704999435160079108274880255431448426227182064189949087005363225432320935311787414818720236882889520074701524478098507658236602363911904541057345446961334364024988380032775957037725769870925991033085362700632753385064364769306954070570109465720962762158663929183709331109984269348008205905423238552775170886076342353507499214392312069339393466695229410822683833738854173857409202064332631794775759926820839977027809163710097051107790336193536495700462246981065634287331726144374959262044775101248958250624003551064882257072078688011085808976033289041772827947495832190707954992413790882071837830184766414907157141323893129551239662551510832310916768044130248346424799761867444203215116499396748652133689277779456419427609503568853588227078423124846486325386963060225792931554248267206613077760051912818516291063785615400787034238780890435246372804040451534633375120846849795290536807105778524652620250952759622303850781472287944304828380267204817136874091579961283847578508321173696267267220119435820065594071845258752129312298837263173248845872753101760512440379643718475472034093278305939309882501851635764869197053870343118353292319041684705693969536127815324927595979926168264004103995355345292408488134083319862379559287865673141997893218914084598449285210353561412383515492636783171432281708911662073624612169740335613547103043307038462344806699272017075988692329625140663800428076557889920101964555733678685429192498467103669801727327973285145691333408275822281637026281606142023378911931412297953670996086533934848365929525569672000070787516466174661647320266414243470250322540074108035579801987679915330685079868766939273562608145608102432747473286572085020011908815878557862389096306549482531413908387062710132611789191626082257340349653059776177976599358869574175238766626175504246151937630749255452430642375145196717807840901122540104795417368214441625191267723164800012759143073822987435995772646984043562570896385022685447400569939633870985816260163119161892872121485179190497262242882302257129119822488322123135762107836902880379060646933538106897192178448264594059358478766126297642258692423116886330054769927773573379332793716641372016625771604556504723619096716900140983171847645900228864677033955551212927149255937204685865596850735778415397720262259482919785581682576260738634697242288260085887497656564510161722665970756907675097554566372377593531559652584035091616071499128984054345767106299405537528069178121827120138199100676304634911876653127104282500729273895105584062354243570353683076331979013572482650358446588613606631111792558738583989445565674910107183329510468906495703515996287675418576778263341609499645812228911176012102238846906635725742661956887202128414599761718818692859225101715794968280633128287499025466097897919517927645489739271942426388432034342012814838815864295430723848075711047783137058586423438374053272718472053354414036885856723664501215057877256604948719765912213655387578326344397530263122438454795349539601008455335352183952407020382097043182628862531622206320010832190870807392633779302136543878236121855433912433376882537570910792214186814985673784731712948875143746905842682503473140243528334620774036051906500618935368196489323353636890675063174305001236038058704752055803965909447759606982728962498262099302937650890225696206100477070983874944127147256520083201138833873564117021729078987003986913770366504511715460581596438082750585866771821166324608049245431748080218725407413648932601037710662038057836908348596979550863940369674348069752734805070439778452236974867736100334932469425561214129753715884864887544124792973173947022377712135603060329587590697457379999011664415260415845903073884926421718301480218858093842013249069322990774713384054079384710314910389564106029817989811656309717453981013472933822026461680746001263200978571020844706563376658955911210052835338228784454127982786984688855210159144153171281391762462822566134415080907956034786842116733320081796880438710515409493856983469506442714111604209650196828561220079965569520998212874667885060299895140639458493051197263939293997206785404616959663167966669041210683478735393659531190749261159505490416023918184215034036588848993757681542350922519176255599455209811956746708506736663353977643957766482689559045162741263485504548345033240179030004745826237023693890922209544560360180542348769290186812527112004866208243443210635541946923465614681721558243285981140868110211301456886618667725952841326439703971684300379399161142400688125282705101371310273967262944263747800646937482131326036049209777139298381319516916322667662620665029789528125020981324752727571565784386063160381890668536520074405923818430713425212008200978198693030368205312335045598049246756872318092858159586214822166261734749884863848305565773432791683924427016387689949911424341439409316014071299613234783797109771881764027164921731222007432749943644480426619663589768506874861478497330165898852065826205573597387368633282930625239152987549216996177726865016570562320284807582683290406882133300716374295697710019317950871778452798872813960333315092116851377426963922472682538782732398001455538666405186548510683788627550778778303873656232198716757105334278616626496312216880608638302556574076876003202339984656831047238467859788480269575191428062225217325519583342400300805387340265218490019369427846315674769165486352874322474375694583913724014173138077288725241676433321952637933639508050278975160926176290265131145300259712012254742926684217444645544570517200736064864994635095862247347290538008208432456087091348447828454048316864595278446451028597117881956590001334505921368016969948843728034393521541982033412037884343699453825608470975577981612219723734487279085538248363507030737706469343974763361616112346537332748174333177437683808326152375445131003255796642119516687353170479028571282588148338236830601087370093924367459311893175698927906025738798143505045168808256866087966954770720355682740780635462597148696620737989690564367611736847706568310442718337847010836337494273116862537896512312294983205667208513406557581996839508819121361917979738949960059865211354455672302853412624588924450472060314684467381757930581673434668615559803836035031454426802645494950456748463942920149012578383612539940074777540588686931139865792258421684020770517005288912245678958215294618060939607650177372739373782336706757014256520210075914030865852279192870160802917093504368152702092608739131903379715134330679096805308177043973657161394294669751265014567456096582997861818889760208879439102640676020841216712705659698501972286050191175491143151809955885933326779893036823143746815834165750299282132538911820957762069635558550422034298193713248108244646472077353823616349444619113814324670417091679692114482006043254279311065347108668953661710107518396746152020454121529703870615206194630731166800376022552806294086021380049178615187211932991488175209412975441335456447069935460122228698726764495411423381376702283897820160298778055501610454143570798679339161882356365909885510301822880206972414599106572578145736780042798769480619798976348336661203817987469814462049216148876013727796085237662579132512735629477286870757979777973976775602518448438164424205241458084882257185824874820337020528700814688852686348972401916451205943868254348537624350410767025164705444436876873793368657650348347252978332177562076528766370636022772954328627344083834902750762207003479146902592295293718847253094071419315389342770289206361156668474756120751255601882536209148149083137188584216941532613384516257808691705365859507661511211662364490370437943648976144725733554061662798355789765996129232867453691240473833422489436721352906813996035466191737990603755329205935877661121598553035725698297541714059965414511139600151263095638043362069737079729812280843009389197972233131802864575915069303688751481209687186934989416025544352367642040597597296620387320823093154079828099417034525928391238187723757870723416110871448510012053706928483567340402235713994114207172517474974422235230099457060802697971914856669847364718638023338267503621103935152748520837209931163255672067768239791582113276670594469580797758460218656784695606153984192944931097690853707621478109455908768287506909257667813250195299974006347277235917583517298382730963573433909116435017732545354609916300378881893578857179427634783704534698618162655471483224321869704872638932483152231176505950357100815305155900051151653710502795024983286855082985235878508457716801222321429146103907060643761820023761158009032023848127121556724058941868238934243420191717856795771715784518746256852040077744158380547004569704900128002064513016073089377836743374735336162911023754091400044778132406344810841168060939283249923765073778578683908853296888114165093774652244828708533083007442766873483004477950052758522294157909859768796112995081296587376511569132996676864424464316143884384784009994520974648952208203134197679293110379495341884145206790579706753122772885274989210886096297568660240433175062990386465452006809038836812873979613625777964568750637026362082818887736512378057823438418199214080308002051900111258201442112910487156203619055480060715201758729266245898644614494354494451624808030335848024301503551270731401522248434176490271680972233958889650002165908990540522146558313291485769861904342448324779778162378714141382829181622032710543511744497470960956427416345290454094200078545726263606339210475945005112819690524933377425534742882814714576575963843176777161073567090114277603930480083076743003636579947770325650475984127263582467736207801956257631991531508222134746465592094807538486209965727522241202593836847822979710483338728144740846439759386431451629142897288666081975799640216178535085426813529754735848043002337925507870079559569074554647978919555649466820386199807858179384602016736342218720418897467327789220101967578700068632372430740895733455204740938170868529871857443455414216515359058448378173502600659680478903406830867247798758867212818801215960666630890750793835471172393614560444008557443789140665962018982540431851258297592079979833520232664643940435939666904514505484013708136344305257440785885400830274466409161826103055251008183473352779055288420370939862415038384443692648760177179310443128326642138917148603600290821950746556376486993584933232918764131684155527574329474003354017427418302130226367639787278159545497659635904442693928862023462586974605794694453255433123375756482041568500856956168206549745587368326274563654273499390983771765111412162362325739397436573509150231641693278581728997011834445484266481502877191873839622262414337232510544664656383001844433203217589226300397088823656549853557418044495960797521382176731424324270168042706812761085108722701495211163276910855986125626895934400235461919536613200448978690710647896979465637947994584701204009865700354538737460663073415299440843256448492444600798514255089294407470461851871106332683620260270132685988023261662135075560040603596286954853289658105612444199847891551521238944736625777279371665164823753630516586961115151305921605581004107777045903120847844231814913934130129824437903548377704951308858016552948418758199209748257669938193837624042610673565937906954172840270548999831611237212083070813851771386033159310214610271665311537249655530254383128057965531224181714074439773268799952579532383439032980154422947453664661187556795728892838705341682636794110328368116768050961646068011259726657582774338466784205639038556212551508516211562595486922955799302141445696163841418455446526675343046652951358540527375766345309174744556220233456721996313546559759740539739358618986728931581747497617010822894578523131321865955171220806054256041131674481679655369079885113440425526183103904072210561913459956718420148036328865483029017041757009851410733561287591023507612100242475949437414883568315872809964188300334628454534971557798377175419081647628507715565524764017899172757865526020067695544104968526596287243235759498685037022779060349371308213810888816990196858584453449432815079928303862346047679661892179668150733369350146815476691773086104259538575915291275438906535700973450615994143040151892857050878421641893774675878329130607700476718164423567294705179088752039780783867230547072084965470055245884021375273331296032952915350811536896294830740494288389586118109987457621772437939020953868583169936733758535458977862883638252414551947002761370600415649149343210180455742990510553738065031707342518143561428403935970915761552311623782644053368074647016718688324948510810367370129587461002581616098021223206479981103632774304947082826087307147078520733617404937501892526454392810111720664782886127154131465293297533288454960269485931298269767498771009678377994808327174130994797164334272397345648555319137874886270307455356343020091616768028109366387327476633656695148958312520317766682375097166967017822056928779073248738928767702980565067199537714140018727621209530252582825034514792078795024747355036233467156460824334103734027122569311233786325470510257091531542522912743705746369246483500961899631385869096959988157430272174816906625005438866037338895283461799186421718756328317006943247408126781266819646632640775430066087862097040161975285507848690312521508978119733295447120585337404873751964874754751240613920286556801257931919099309867252770790036348528031957845958381776444560038358751019874978451108557348218112320615539561231640336585751267994064196189355626599208565989286388139031968334508080434029517425370624253144866564192082739851440279773332916834850583705676308487592498236437050530259290692651010473897442016679040840693558788117521775473586756140040368555719089866104760849211325876506935663589083886249130851394150617317132527468093877054420784921921491003158935510257611242699447424292641192744427625827923991333391117108747839520178015511602139426480603131026455174690358077481899375997735023647533802609266500853680644803675190486751524444300109104207869510278631872759196579911954886102843428001784642552344594966846231991266093087077154877503455404324434079273991299601620713861977123030280465036025811498879667344239355762745426073037975987782237184372143751051477952459216215077470015450531884294420215388448715291452041221721691586949187083775096869985815706301007162931425717528116348758363023744656722264322598022030702401085461212496295775846932577406562089653499184670459477996760205915380595859760900555890337538541642246979890902596968247855810983628455833510085914259246706466367226775743536880764117715325879665928988246804792880566441463753674499469061638892002876813487949823619043626240244006595398511340308383109045715709966671963413091255012062691943848470367362644234822377225738798983921806185142269019397074461327876627855481522903657741963557830879919056050847992601623631788265345304523622977847885741808274508068241964430506212397908989504314492306970489759869151325328390710181696863228653469412131923813139088316292415797856184420469517315500985502097837402511789929232566357066920576498799809703775027240069096826077714177173031911712993634450634488409968594042537512595733716013729826893632579770952168128946943173123092650121093991780726008633374824679104434182569004804155587774951601108410736276898836142827198310313172859536911203366920389925699993151941314919951937074332724922024469126365653296103900090644356145957636127079735971865194799704108094866762172159095538724766564112126349066777003268615394671412501085574912750657085009700539070974673395946885178351622284613879071194832755358892137321358011301563278339184276761117774821254732360103489185161840362710954135275444643401036001897239939621214496342756244837818015155949898710709351985871091096330948678736997618219620959139368553345975104159870475077175558013436751870603814283352802108716451242413631803423284902873731660771524864014426737482781524692489058652168548638316295633467486304140785627589024087654506043213046159025501429880538533020825921265852189614651603564113156519820675534568218010305349983700646111629023009018231493622066786536826749818880445358290937642548398913449224880713887358066240282427265705189544989405332967269018304031875088750598588306887503390328175875055565544157913212264732456146368131508719865701306383183635309981806508704170168131950772820703431952427265844844004964509171533589738270335123591239287615135953450277204651539552393344583301675311471711605540906191546040465749406370091692821953796104280100368670034687968771892509257642640051188232927580439533037526190039956978901630713419219343024983456914421831104897201533827527195607723285862996321882219946525197759200558731723805090271248625551553616117110444701179305179966260424694017830104290489505113039523520353879619856263502661912126514351278975313005271900496051756887974177180732433518152154879618707435102960489301560466379308318502156614282284066883149068766307526853546700126490900464952456586718791903506222218920382232131722712114692196486112576855811765016597203221970379107227232992127729481219457319598405821355035790884244014102790829308959356165548428370153740335012777915485678996841749079532876400383027168189273934879875457135538665807261411846122527918431023053293353799901470582955808419997243410818796164438944366791266805508107750209958538574692405386437125640530500431147793851228371606217419775075301536502789646570894676061934941843308230284350877541326136772482608968823395984910664090849474932215617960595309754373553279575297254809185016663618454859728416862335752057942635739816496708688629502094269282336876818592253330302636630412179967005220904730119160990256723397606552412889445840367876575512520713812874645308037438927916210131446236482988904096306783370074563813357470089757826395201222407514378007593093566931047438090242668456023165446002117828031782161345274265778639110063803905111195517345620079791613595211807398186416686905776556275914162654913430510110300553070781255434310054125466290522457794994631669716667364670374532908613287144866657851585706447164111970462885877047536058188280077662079051448275019745117396006375106538062417502724200390924337874662933283613267299735625584111555337294176492617451852494892014139094079556552596269707328488843255315688653577133208600801003974617174533354566595656476117651013657306451004846815816010158656099620973396548438784096469381065365771627987360468406182797687144830349156445540962053065126575890599465087920376487100620266980186174008863550652187265661796210788609237776536708533101580173298073280635806918359889200825696652689874845921234376257981243264136272333791715247216433322082344153439273868942480450889466428261346045999170609509924203724402017492824696994266315396582160304266021201403622786507166579184579232057992028404484258359661837059998236341089386116324146294105081200704236844456485141494177558791932253076687882215835203006004214797062170798686873836698456869776641658908555461027662910385827541738495096652639806066709326655807723893964553706491619505423376840158034948229964937737103436652546743183586201573132621143390481861809193218987203044471614862819812188894687326433109442654565983718866260945932874004244518261582405173998330636516275152868117154666324007686728521002876766001068235826099854565857500090926669297430880172445239250330593190061490172883110049714668462872321774151300453921810885747828051236440281754001136767583833983535480155571138715610130269420933522580454460151384747369853010786791345656532713502224334404514055010227933143387204470631888868238836255608346596817389153550658366956215787036255620295387676817700657792971510810006926516313933291729369713691000369187113491104447054410278262041931541883003067967138704883458477703509071569507281535442594240430569878473358628198873802963653867017909664598962371038870801232408535151986579443524849672544850747294246821996202496446296233485274257954335293976602782353847139938655730470054699565631079010910147817024954487991199314441663141367163040542933637041506768427451830799295216736730906419108043649171000730613628308633283619289407312286920760456129049501566714221609121480110635395069456821281761154630852384868496746576651972341408565279665129603068026329384322893587947398312392996174125265683386073127704235256576409824180350304846815727751685245689548674291675250992010170570313470215236611902852349720717766764787474889572047835097863175610740685478612635661761411663967950449329716993244872723256655205802385719239532358720978408629435315072425135394105924432474966810472038387059502879580734923702460635756119828491374002568830664272418429884338421858647244108496067597888889590341924577453257523760587195656854629690162138930681513121318661678934988295258547385717175428263838147486250829752782979042931283998813245159737093235379576553317632776028694865610581203696282976996391314720833954831074972120894553517395858786473258658193314635639574960001849199420050557945425385304276007190340840489596345930553065187919713875507295777414427327884755278489643329369666638584487873905045454384576342756644250122806104342797827647164724992492509755472597755145609170754976558716717741822314847333686031557350107555290130390560632990786632152242962064591131591565027851275738980218243693907522935420871640019685466098674944359908627217905013221357677447138370387142911351727498524160303332317419298333222051473383928110881523106336017914192927170299803997352199732588114921949113566882313747903183810684401051630666016515012521476963174133058966665980450796948571327806336394629629556712268051592794515586954855333499268863992569194665742692333002025354756689325472873919788350526696379817264308910088284497899330342901478380542078722863101797387307727048669194570109928943196805973976318434917411433169436795323104229127627536987205980546142780866841073498243457793097900662968135644185332333101637380121909539554965639180905685436786494993951406081685018421579657698919653483424023487346334688392994029559748883135759890110650172788625348658112197608983676978853570549057126538929832787543757263252657396259754410219834089365989597821656133875855499581705048795120321024348366804166662344305917416471295227818712796285878978112171292968006859421109818378963273209629332177063413251395758617601641429737489627909324133028652602229540552301196622891968642645248860989596647805917930039247461111509962739648413864374905853722686307992113381844061153616367400944353039152421957632872681676597427971391472753173411455303974491597670465183426461104226434877929507217931366692250879229105645963460094387391906062420628629241493188009523768673776335384155320375229151310347152468765980542783980617245837797788747594728048709975240056609026916008773287501166694093095899484308569727131658749512376656646985495179974471229224864241843480590427573363929740956802698674332640975937495235236810445898212121352399147615795383807600859840876270286801825740648447680183809267326057998836023826303930631493674234269727048555464072607468793513754346382797719181260843293344920964285861888838750910835079615150035697331710480583797585912651420725732839670116343614321035697524939145310532148528805638071648538139163948357460880626299577009152789362468498777011684691156285874269807309081992145740648105966154607078429328791854537439158971434469672969630671057540377208423402693622220164306919567080972662049007538792617667045289288458645142371016603504792240568715799422599103612895600080442094261442775179548159049337013360668725447438276705534581424327683568295555301407450473190602320364858583142496031676878702825361148483248714596826713800261448800622403342785823917476960352260437802657121029526427963216271114492942668384067350212867105499616912299559775623012475881692690669693708110780279613649011346230089604026544416865916073326645255018791648145664391809763165194365553478885129800215557573467538779916165846906592800680047535779653804906815372640981831057657386179287611570971268081035044281902862423165562713891857930622514950201215067574014368203281999104322497641007814818083526115008731866428018164408565015172389794733202218343873468907697967092922279980243001420275876581595401612614077910047952505873021763306297964037663180324660683286685874452602929373994536265881509723817177558593425703790000061007629134006977310198040442181014896167292179664352805503080812049310781995395709410818363972585749383896889477910604000337406996562833788286971005578235709603740893724773259255232165708764261944318216803822370784757873503227268316470740041604211614212064844612884263501216996011548487412691323630744282421478169223291624940516607595632460549537184776448009393477160739030560341005483732564911305288220354042690525215186430130845629211784968098792393091430571477641677539300557539299840247381957068580035972280835639329017991430459178191337118260520423097355803322707759488692510413434855917255085193849338131602599887578965726837023331242331146157806388161738697701772149212315721521144528221642034413980586501975862661313023051593208525161602710381976023763047602097625222568974191799456690569872360427708786707410743787413179141207157414936833950157930363413949427741761526308814819786900831185977383598292072986608936803848955683862834295228644380982973361980478836379868244349654496723287152597339878902580811927775563808299190623983245477439705725851131988073834642762669197066119183025643597666318348179036221459163323834924794027462361314141118101043151582561032514874376105647825547114753715147731958954459933997471798648480264754126972883494006075720553898365677274623431867640691298747654979258407127269619196586138583958026824929163926264771961704946287111159669401085048405250402651558481173314820145199571532050036876787921004341727275097127571181840922935629448986461721974077517595649911450557396776363031814463139391415017798607955529227422430643885547789255147506520631255928942619512621163808484351439610614440767350230193437028972843649496328836143709710422437292944740376709920315056394058635686971022306322254558690682971419574617570612283791750561054617593685713858031039247534283743385273256584546717336204330078003060780709436962381377499541902768922526613114180222800110336758718003971266120698774112696452467738316708968726640570198997597240807877490921410862868293651146343550087915091660860864926352036704013698108259519295876428480000055321029433107507698253219271294096121624208967227783464305011531948494376880943502208869885052388965738237467823119628101103520002037104174664070575308583037826624222052618227326590312669406817472907131306063742878640105766542387532982124168277538101296779035243453036519833511540280822806389177438919643649947831723946687325509610681328734098646683216735062614304946716986943697359009513316307722971379705922933664759917963567631356024078150249777777493691539086166078314015130228713706710367763322089353646684009217809139507031175394434289840981865509419697163595433369082839329856286559969729904332980884263503368448234813119902511738102001515387737365298119073227703652978059122898788488785255483948890876076412956239379840865693932092276098271188066618064085306345523317387289814524778015598920967716521916199835445382848108800421845037935226039998540411967367369710033797811975626989599406971382094666122283394839413278305315911173610176412295446889677947071597940472855870558833192896784147552002082759712441124601359163149132117938007745961208042412713461881231317400476760619695288241978282797902357252360335191368197543858035561277216390482846683822042121252600442762730841506927311144666290545459459315148254903680342142264836540025389539066829699887229816096413072032849766744150326749449508190790043458993441151749567129504896905636275330770001181923041711752225529658758179303906106822769427222718631713577927880818609544414340741623056881846398798691933962674218853029453844859287988950993193105325543271734476478369018300170345288448811215067062938358330127566426578006594793692405451518642525135900520990495126214130173769634456865576414441576902397808829810718042153567371487401609505638681698836482240713189635586970032146465929860569427859794449681247591911553275725060122473220243921749269506545349926485322900418979772203123946876254376889625913376626757698743330003114805491975011514702713768816982677194701633638892200659603617517885923470940493055738504442440424815402519334179782883713505954245948918818297439594947535543640364260657798940068926196244977523846845090971752379630328954644916707547913517887640361348636967423830205859302206652049159746340544344521242370835875906715453394174497830813271621197663258726773624625756065748359402803831264079143517158950938506464501083330524509899045277350920802833123681929093540643015746965836265709713050542062273740403143868082937967264118058077872079242905350756230993077359051293270406391264006579517544715302899623073571700516199558424172450356095393573509113029920248603522116087694158382465526686091978875682850980059453281412438278154012341099876300937832500704544934276395293643392028903720110643563278525410658818506246328462021884323721990794535900268245415276419189302678254440572394832500576093184625224563420161165403274457262403401462790026758575213782897657225741511794863527642496275376044104474088374827098465954869967292394501952211525194956246991542361332345984591039013042026394469464812649649976571725913528961491003439338479462996948888586804816853380015402181732856349549811405201711659171136784509460766950452663781247462633009723154853142813350482048758085768644946041452015897737388205766815190809464475041982332196182925582326574711230628146502100568805806736447819446475490111910920497791004018141187829859067220333182151241510144324796730368919324004904848223826194849967914334340886675023225272864440556519460041321939599800124768319241294132836352100251288556021470836677850269286280031362639222501721427898262635992871346333508645104359498835199868545603193647075207857099973858768947193178388257658452143476403427372965099197487621673470657350228267326583552338511055298108529895540333410058609329106497513489247647397459164881393278493727169536023155599089542335319978080068211101186452224256516075149195541781659232696700042634563809276268101020964606432855473011980887146697231004136596987037569800237137136686070458791065432944066795433213342985364160482759689413349288840210871648021902582178435519960435438727284979938210639844449120208373055125668195209955016101623157361294850584989107053659293488795268272470877071995058979780492290808697290398158295933490934829075013947137093093053233833021832665645378230953839414880629524532561192802980385628858460047443964490801256324038360705453620685531266829938962063272698708710108794606425985185143049294265939599182641666278974547224086863775553579305279012240430192802169991659328825873989074279334716269704288079122049502279815936016841786504057316614615979504854170692612452677033496510992946704816580707349688671702142880742868545806218862367286118255783426105324316897996262217143456766154392167649802164241310032882742292076043449786160347713594354553714853381966479149476382687695853721391884395761811343126887265563193695848839801363893919335835833286734767247797771660031043878751359999114211266722305539773800451355783562176703664536899726438024967499708189300117896117034795093862727594770279986883250992012622473621564746437521404275864171869497452400826316097997935551240214001733475813539890504997043222665137542113460569379312132916500951044976161551147130620865027166201126780965084184263566743370891661709318927594807117347119660502497035711208265462781614515396940618263573584178799565380700315607335013622994748654907882137376350067227134086156713069587290577246466265200507749071797266805632963623497308542038180443785616860651945184261004514777204348279405463520468159770616855593347141728871981001422110072449360443735638817432013474258860662051497561549348145942103466068945497199524435595239023299701898665787601677798765494162614962033370663986157065704597669264944731683481502360760501740381275537059450303686139066513367986104079990587402795830719911594696150395529229361274372525080418396245522779616794652824679083023554269659378394657782370316854269628637977644259282259564564702506858574665501220257389070120904170739938164334760592647150128095475876005246051079099521785482691718062279905584168947121081619985454625450541989291506680177534745877846480333555129184778531446004958216360946559486107865645724998071417499598584479223614103493480893299105611820969642048248289096997739585013539217173936714047197290703046130994634717684259899834747584204598223675330904942478438962368724847761490129492115080583599568941461452764407409280649611509889042112835511954526791144848268954384436771612915419808522004617172947759676885875871782078620557446442743220748768169250799048744437871805063502254007028984627542930231825217529809117931768543317966333909565122415452365695646053733085429390073823075456879999003662631892237672505057667900738235803216206366709992913663619052818438103845015146508737577910479864098613599990231311923045073131953799409140098410233770093407037557001099807137307873687682893526262599724292008202573528307419004129732999973852488083899196229531176970696378196675266640200911898392584273349036756822078488231603297817334446248048927724880517866296833011000368541205887352658704119486737650714836512741535392546391118783607560866145143055503721794652275469049098171443877380700635655593277361128327996054533996967132914586960414143141453643890484637244548542332408243656164899540742452294440139955112092519692230686718130754358450041682604297436216759415023693237491875011815435784902574861534363744493157117274969492138936723282475225834048141466767485606344976872488319891440573947116487195097008370610089100562007311503563377508234504301623432302424928333425200953679711872251490014235310068507837008930258714312937301128988133034983286134613668093427392934361271214294727196215954667127889657189451907984406148332976600098366127618692665164353561700087037554051626444745956562760027159694146447003246930435554837597681715410275452679731229414093428588759416492672938354296382665517642444714311677409799466173157066050324262448302376147983694669779569045831827521471924365850033115366242096478959872700352214466692444736217175765007040857180152264054726422776746244396776436982620306370606455970532237487790551298652960349565317388774835302947370428127653208988655533650040925651953803592851651196921497780711657390117051132794070706719148134741249480460940390022691687994506777002776887070722644844315804330625500788365175790021555068448251847924183509337500897776071672805488401702920740683555332057937703232464167656259078646107254455118996446955170761640828942219602816597129823661410865161683912911716568825320779055897941592458321969776707415931929688711180658266489868777486109583662978581620668762588809665784097231071752637604722539003358686937208634564885294742994068461439160195024473008385221465442960951368985934242429256218641761378126259242774030480772091984004070329902425939197692381684586730048719190128985936230064354320768725155458027812347008443334277160069420958468639751005381053867273314789056159258815853145206702708157393043813736995430285247104011658806580418695565747484607245067821362860473138086820743784404030840944814200837863250924533321797647710307003121658442136050882360430595744037216491136178889188961594466107950707578083482076313923576677261162864406520755231753789119076722565091227688188138103692304536970761291240457919336225043313572811548240986773925706562679646508878949236725260449336787458044343707395220955794114888858163526032166850400238967317221088189675058367628415872999413860797758794756339407522481247475400085083319945080814576139998664531341305565578210330689888044298626329943568645269391710099645893900057491756256556796976857784932787357863758120867752193375789282728660433487947372631235682622186183819195155244485780672743851265596096009159875917554425792955106989257881233518695205624904899911461669900340917625717969384787422752173074531893721419036782535703376223982603795050554296079405067364838927257873153714519678111365226540456358083530623500927690866837461540880744386711220402242132345138151967249963393283117691891279797290380917219694040890243290650902512588469902411179509706879822301064334374091294348930388906446847584413601877249590780277532072569579916639295517668320746125927603757790340014603818672563994111032745098858047246932876224023566230335183553685537898565639851827320604070899963082040357346696996638669243862695623143777590782677816916740762707466500296147738541181791874419375696843932700668620422560602423707808576096667078244677101132928496937561104705447524566147598459788595239541034033392217173711945290840118119227562384749133136883057632032335291247615403025174137168201948827563734725009570141837226033318658021521016919900723806280080839801668290021984152206268488236340265150326687977948774787704149088605392573433179859220368022557409595895899721497403967774813935929918143088081277932498454097146830241914025458819479506231078581837268416853165639974784350086937269023664801687027325479495304925227130387475574702693636985758959900151475899120755763779733599400123755449523480775768727816360632501119095038805369714122739474966993671636358800309648852123280803624450740938297953304892078449351466807181870326848292034710036909009943931941351863766019367662545713138110347707971574351404842496688392398086083597894604423605805807199206274016555722001242716697589627137564902320435565574225245864244550223649426175704005621143744000302751869456511799892130291534813994731918877290404559639813649102305357335600955852298780517603233612384687770519479733264591529045260928991921401688178128123920333676855891108088543124359413378641570905112710260383484725330858705375081345926087089371232729509856088230563701081426647811790021095983894773108615027760417717145043262180225240607909056560567530324319369874140170970970964960526167993202456641696326249352078184965520127984521489718227394928124896580198888507404397547584903323042213480569567499362905391294922122948621229457619989030952193725103122269203552802809736032609755698185606143657598228165882434155958222712148746480024379071352941707550445473307094651226491927135148392644313128131326633411246638525873952149348480754527835745936590483567574680010443969429510983702758288550250827928939134732451637604109826473766325094541386222137557310321909967303160627330089050089935134614410455202982629493401764911660587251708720131679770038767281546525594739950906255761243732620109483813532044561679565360592407230593037074568401241484956322504186656295455149193873988412550546300776171594192490153147337240533611185551219166441830740366629585916446530767460527039724156953419866356181623176378311379580670787911958827358855696815621935237249963547308423714048086018012228217611193099677888930178265104692137832915730633739639235024663061053238226970500594021825098727686272012383842819927744998127982743772032905861597717492269268111981266224539605791510086158496355885983639231469889943583220502163701572962377986875887862368330452648531535032266479334872815511992338106035295328590091377600430208474710145122663879946769644309921922618503034711732186456389195010404712885163801805655194341475690178988197199384350846807613588317659759420933934982169685250184167680843728620944710934546855429482815219530654011176242815637353416769255349075072494575957755702472701158448913633069671767999108854965569308036586620968609033398483952180859914256301737837330924162841958275028587829766701164844102071022697534075680059659443766627656429213637832198856739226667646692811944320082468851799494883619050242709783751766084945834455038120270002328792828790381192104426851967291884508283118852383526828793446409779299977316900528232735082567333332019738654689137690589757426505112743009209270450580078285161680637719065111001503423647249636713958684353491027748975949919596272308231030529126172746670010039397006010834887140192215857582011542307979252721045796397392989278860014426849481388622185599259004944573952912486233347997894474181150121961394470415636109511416781330593238377063652976643007378123328397810300948577509885146407424693087281543954240320086162485382903911762044401147780582591146615891380705692092315520468475441587836432364017980912946628912024539479069746778348271489740729465658655051194696276284502777138894871831867905698711314007094421402267339103041270580626969185962475056607868841754251484441211457337306383247522518201834206374214754090233664388941680399314087959920093296745348960587247432944928390563862546315867348487313801516303227141693645725404549482427656839918468494373013824806416201704847240958156000471455500546770326442045626233839100232021958553319116428351101855338603954548483267260502215439922882875330019646567181472640117221253481076444675073133905103241859372617379228492477399727389073750097561833696569067937587444160328089715143010181289402744140937178457767285309197584286806669881215853281731884137068110085664798576294502947068662141185850895906673219446110966903659097178309043905780598925704138910398944325323004005071953492024064957731626374560466579214801186777949984162851981015594736709356001607126063589679270145584595371513279006394441892774052077469973504304052313492476042696595688265128490894079562434105225490576979192867449603965221724291819925770548873465430589685996079147963938961708099821763414795754629970515050226177481989928463143118813536136082719319535508038616636877854448668289665332522557930301793084218945232352078644003062351945581463010602472438492101383304309568893641187442281918365106207994238913073912187209153096358954269610445974157842287381327141275760230752104010201170284855340306790027842941859270662619294727404466904755150643343257435493589275706498750288236100988320577264235618776444064283465310471449862555648733390163568373933393663524892204342420235251678928118385315538099534411523111287419483283684298713704138430097325659213893605758317131771732275250366180117214689532759137875901994153993575277719766028075638570421817763996898210599432134464203467667910629628148833162586997076828642777468878823587081473149863535360873723398123856520564705066566391662819352457307164735817613724290922901735988447839596791928555103255316909055685997866493057280024275393246543643863226434045775503676921587486426405765620922276126560148407481680514366767687547225856355178599709666353526762543024684832985275506588014298158010515010059122544003269293290766693446860913358475547273204322670016406301187024646344583759686940597340173921987329307490521149915220990936126017665602307097619063845849456497849589985957454603607214069971587175824240887912579308785928219473633602385906533604060308089809320310604235436357644424430160505380707936796988198782571193313648243104250971766349895129774141776718937107641849139315994776565350022224678248245207197679755642339242632911426543012314715309236485373391912863626542799283093406616973663820310976958462803314467273257306826787808151526959597093459577096703499652618559506186995638345191910936790161005855902939293104917416393727273241511818497705072937088945716857034514448093804842416284050897446588937174580113745924726819419453923201682787615484463102919361302442417374128573416521638377881670233241823459534730874764563295590033038826449490352355216482323457774199690133124816005925429954448038016105860610621271118827164536431750960840796678698865639230019322919141976351933756274361459106589060419891173963275801134041297023083139922093581559371141306576792701819553874015007942259043282681004075146566908293076402903498318671832681605832825887930275116777723495543538726159273912030535329962326153111268198276832211402168253838851801543574049135545873068762933474469296201060821984243853006528889408955794775731256143647903430566565792194444431193259913931684457704340532826415767854261763848344608797453390945247724361406078687011835710297848085932988615777936971683427587291391372003629835344382963828141078307854819025071997642562869314271740290051005663955534466442669509736262210531300405057720329314950438072938941883555436035951315780576579269977143000557276705201008799538358707384938347456963249968859903048906978359985191802112254729666851265385505026286486179892457193468953651985902469866094545434834617303307533838259537410339894422768423927775827253311844547611668797813190299962622117361229130531129935302346893347251681231021890550639708397295346834554163897631385234746998618124327256136546824945102651296702667197044506558370265103004027422722560794291363340776750033548640583581896171291376110592467000148977742988456993121974345512867518548859884730679141096429589013148581637979077120098904962821352564343473203643125872399464358611376854278753458677257869544656550713119610557892840005171336591008937802049262153560734468642282985094405209458817668261076625514459576471648173954454016307765347729551332095824924729262726736771144115022960423613293443444596917086632131695778113242682303913193124050765371163509438441268407838043398726322890138691822097022623754195134630797276641331721290236524153245215273711299274998091710329359596446138619206252088795018599742497540941729769818133914258068397821521359754848626836965749357316517892405888996404979435873319382755514001044128510316218818035517691911862390496555331145990565475454315313886185795104557119080305043085819692739967643540173127018552992915511113385786308868750897517239267007746029545033379362280499033332595126155261310002689945121861088043330773895492246210282176626554897752910897475878923059524913127334417042206492953156802499763747794207459926264292124919093130411069583017410034924186100104371600143095954955636600790530229999276585541173000654793412830241532218562381141520583394605847812608290317837721652625656974958411804504559530108991415995326002618357363589734513206118930454192655849007524430285221543553764440019982899361624467129779837730378145931364218954411100297396774651218041654723441468814550624978064044790844676983015566042520229865671668599422055658671678051202278253033657852273193556365976541405085065578876968668740808573538268921062888107895828479479252472184999544073735374692836495026197195289192603504772681227334993174199239456384229604654885973162823775222746941936289109934038299733037063634889180859566062217552212047726060905999556127457303642746225682937119004490994005404743265903571404267951621964080084545198808820648651283364765188143110062783330923413319386041411815045567948250808989262841260575244364072422298887621340360929286369860511671403627422721007173777909216466924099673534866872935433770314787787480059037570813821937932374046977593318115096271699689980480012932827175130818974150605065221531822529148583324661041151572631380507752310209436736688663623605179204816751441690923342356885348526458088216927315940993513554178084170639772747172691550689591652252755099310106230292294877270770688343991240324951363505483268613023132129147226013679222505534240359488801107114702658393208858123976443457863018157847342294069288269907479244596581172247311121066879337995879523945278753766410980605211429697483107803138458236540307075766359155858003028562205803798322298534309416670811704409482899786610170754321586742453141926855484766091708883877848607320899014213070857726640199923371530981561245724800675346911352824615851952885828480488804822715846890965247377496085969444010756324548157034231636762597502781703462099198060577107611616807979503536751848064143567693494544713271583194793211649265716539682983632079530654410950292471764500922863479317503146439615280574423184385789377838692414159080438426688843050601329956784345271357775489249858917574271873243466625660293941439045162396584906341485547727466415718427328627434511040904222076008109034566360476275427813955365808400203603174657973105414567991154886327001384748554913845207412737295313210495850933018338694981801832757555851254784253391005350218803300030607730647050720051341030755760642334350331619857835220532185873196358956420652262394780760641937034297814435269354534312702560252487595424780675708824984337280645973143628382293312694334792840527002317379266109749956862924663215900260537895463977164403066387143843964065723090102506631675197310935251028291155248208883738927188419959041883523620874178057447933977044202096778559922290741867894309305500240874575681617724567477220390347896279748200606962596190720832934462279804687138221391186733482937603788807617301392083348484371944292393839514825588298996455813415392765352555665818910780295508047696388396118353516551031602207544213644633284994327282076442278996225694867674016278355763851795958764242716450880382557112433131389505343774415019381956433407133497672751453042146545688411264805551485310168660601779581948952530735527054841518919978082181370327695797735706270938088449247969274823858141970593369375414005026546960776633729757246027191740476399116155927909075608590577741317668730517807824625790253121802199489900367929064737495409754902195712189674854561955430506843808452712251349074949882544857260937651491149460018095187542953272193672753855577676106252147653435937915054244610698710996000826465197309020158376223217213854096484169813370030618440973281170384738233758153709429419632649790312018127107932581662915931117860804972488516801243945738909256040615801450373078853534787388461491738607038723223341966150381922630268097786515930815518511529935047181923169617994214778862652977419174289499130796204591923072754928776425289296843912601188904283338624241848824901858346768762088131080158535697039431571126284153534987134670761643314156272553508686686860819002542323733081197837040935600382775760595061096537902151486697496338375535697055960423045183184891125292569797391821321321008108910514022971978880992788659327386508421877571670784489065749390259758887020406187702492632550415505066394685509919937588129295588779629084675745107608553962256254533547728636569640008084955312827793996806368107402275252580928685381057225155381461800550897994856312564219053193308435308185143258269386345192884813664179659967259786868466634850724354478710147390007015339866157447497225623775298833674249622159441415887359892620368725755158641726431637422467266115127169266848451368514899315198711320206063617334617228691095864182833913323394608120799717883101974200308399900647579060059389681860386197227999912903775604447966871127516623453547435866369246768395839059914085128555887063032875739596049743424890661884521283578085838260680642594925288621843269031043331124312544908794626685018248578591261572698083983732737816276876141643507711634933555217014351396199658539338646857199738921522054555003958029880570238205296302321623201016907919773566873450489654568808257533008849603274074380340000183504162297868747039208213332900624731475057734592266938422474147083583320819234168707643229466252598086239494518291394757371517919249504240352109261672048832740402492277022147225864025716660350856300812807321172545770367789703515791139195164527859282750569016754777191006848907184181968080026961570850942484290316822561843884051552279684134662099293109436045732060281143614951289928646735370162405500691542811932433247563190840665952466985338593537312732046117559871451253947913477706164304862024841518348445243968036174462023054354759574393089735531300898277312657435364160072361752106730866782738443235207501951657319837976280428716397309086480961835492963613353461208372074710737914215883521528175163038741041860853237628388400393570385843102857673334751031851898344364700417990299065389123412369411723455942132059333498068894594497210994686538013634740674592955126403525340009876551605207054999913579651476082077267298386811985123340837316659987115369357337052428391693317482398316996459065278753186638726184385669762384618228622806502269387100862717258003048870321756886977019913173308095219534475287608896611128838512344906941252327819904196402236732650775460228562284497310649043029998199493941734442726510456229779218766963902438756838001063796187027770104245948756519935997933203886501546952707164044262475842569294790364022307124384955212507518551268513667571181042862477078730013069290761057408515931415986430100577009118841467354131491377722244038220843898524155786692217205284757092200123197390814708521245975606494685088247173671343627053602639361687985498870601575038850831559575371370812406460079501225162443201945926996679532990113328063050901072166764067754996210131872715898380854866445765976174112723956036537909000428587054535908996997675212094448255444006201237801288501539812383570969035988374069704055631113653748253573121824034317764511238472517377962852818370287440959467927041849075703388967314535946289393929939278408168003254291699308717449971069850935663920355060944386816595545094437991882619186301223787503219830902440025689017167947736946974906850584936874749687369035958126497758635018030967299524981790562901185955024437400042326441431111842419251362558480927863105086482009587302981615553898663509107966788996215931967967597625540155291706798484226825968044439586057375011252281241927346241395367292796743076623000234696161592355367654456864489942719133323530555475379950699216840711741242424954724602635090250337677628209148544503625033640237715498278099154102414267211528367784774718954412498201152353299831237619706064539757158993752931746297407387921395181838386503689666372363170867236559371153356649562940429293354617101457543093243869450463777950759942952776004477015629977498776301461468280879313606894010975413166119914986334549557398488549158867958416600478017628701217380808673784981702556266695367252749934674655214068202457323581845777813802809900165824032132620832185181571670039920834335258002325580109579980894215793032626274755275759661946748380906143375286444101470234895912428307935127265477289008387206435418088291932879101724331288615524747539157931944994378963437539035635897065868148226448225105725462201302760484323634204783794829667346520569203132561293294522452964593949935605556040845289480774360551692246732015981107134374074772937459654754976599406560932852604272083023678865255158782277403175145640991330463830943489265451014412989427505842015195871934341088913969254335939500845662331086349855483929086101211947502084061441992705198598276583045358318096637172601499868015955403586941641979222068823416130052905086414929129836235915899760687823781190853575660104186655240542680034281331685364119191537579753862385055599800790597938464832051777340079032263822025415567807462624003445200000279872373545549480718731425984678891853295652014264673017807506372898329715813713382498047521339457443080703539761468608564659897241654948020600862675337959779807071807500520419025908139454566601875508104495445008715407736263949946784885855802467294286334040606042068898708499963672208191806271786022737715160873161350314582297080287423300411856074307192383330346724483210693128926439860639257305144103490508186608913895710395857533381383250786074061451310841738137389034326048691094481375745318937418547616450540501318065695102311056304385640355658793245597778739166815110597044527374919826113321376656075774252775819727910252245319205440885300455777326960679749186341054064181147473766950307081520937908594614233253272019313610513260494500200676120029094798801798951875106870333677823750950704872259779295142364534468014233830116884612069520784769267260106251740114249275390797527997242042670682439675096164674549461135010621689065469895559997639904750827322305915018501808687625653002414960187766950268585471589474053963600644346681240891679384391040674468686604136667149630481402926479565132538775666746877044890297291955996414510867250428968822031545514149894542010845824986215049176615664270871653484467669116457921687096995669169599197803470939632225740773152975230312971631659811764914963884188982901826743735135921270477231456184131629044101632174023577309973861087032487635914819928685060966071288009427300146108921494992866527234166811564210254734291355800289036784155591890072089809078669143425095172990276801914007093004310185520771543083302557739734604052691632721011214910796080920634770226138803385024401777519483809129802893723112300470976075792749017901890008718133729982797946424085212371630515325272627945344172425578320767759149755091202788778194233757711008073117023629677180331509002706425029181944756775084921955754156307032775658624231429547847149613477399429490966400325797858401770891221315404104391553231358518525782382939833860609264929123309987156551866003011244833320513229226508693492246872287262729683284018002378141784584315827903126389632089073817522326898861021042594208143936123250323205984653665612500933678434848044190380097885122319684364255747595567278399712530494042692956009074577730673179177225606558667002074973751637554479526939834646688845576447275694283768853563104820567869391832133375679688141516232688538530965636214253354163022550197782573780468483486497240335320760826350490906922561995776154831979922548528256318157647779671433808154734437372539692682483801754921014801703054867095345151944836401311164554490964448145345065198938929132782014716566987469119283319469734880055818061252229250408900812388737007927081686756608733135601356577100567203476798000910514562102852604776177561479174478701427970402010993674853025747279344512973706221858936718054606632307363374610903719725529915381533347136256067832480462514269455237099010612049385787776243652563559747058175450826577366894339370315172944661680598723462412758683367518472226099654905308146709482965373780080702669166793651817631304775190636560364229472336105463325128410905171814610105986598144885021056119194525702440020130013590300509749000518126148918896811753721094655963269881436008764907278294009260323419214747945548995145230218013885944831760702121892301245716192629308826364503864109987390768388011023143703795618298035663803908135912154516584601469697912369898140714801551264787014292339548303360457783695950023540839767775692059708811676239662466047544141834024348403904939746241018168804963457798082634947132195264664249226081846493782784658383385656242494014478879906359190073847118134913735323279972891508486531291914565542234431411474239020273810873439587687345331254843264156599916470847608451933688161913145184167809032497618489890032153525596616205434402273974979353024171245283323967184636399038905963725448910442668266516675406201885942357378986899731436760167342867926434607300262785834069239943492999953945303188780406000436844269389624960295780611929545220704768589134895516863476760553525454261267908036303321686010960354204946058195513078244434044784969061775874257537605656851012028494750492237177444656055432855113273080331373434618875689452663334873549388768318572116677474493052510543264964274679139713384545028930290796689934152384760822854042852059845496982814321394576482844905770738926433334448271003052141198516487462778106123727423523850946826966515214240642996164305034149845643937979733030771968828346794610716157659348591883867526782248251483016427897780883409902431625820895933332802426637430892288085192816715708808005556226937038553025882509630710203428593414482703548180409457231878902941086028967376686649464597690739549884246709136418537660949811787392235287776644206611595014837939078883273705825591506456908226226085658661136435900807759561320244809765128685492259251120162810991257721721716592432721728604674124506591913594027688296664199692618357598256626956333749182080504383254279332592262077377718402940384937412156147678821898137809380146695930039015843818187035762919412034078286515287083116902694175896707056162793649202152704943365556984993685721320120176354343806404663195905754778428807985493444119292058531273324013000116628641850399701489802863234567061264775376208516305206816027652448970410842917992644173418376938640433959483430690691004880692551102588001668973090451567391832399425021626937384118607681530702702874480594542828579890201991106754992101968297993835538115946762308720269849428631552660944470090440983069282201390493923548844140818138383292983347129675435179387815207985260443900952777814041407225529492200799685762592288210816438916379496922090266179054921015514978696678124098128965086948462676416064914392278959586820154739502321275237794109783834776066725086941089759130975478663157333045155039914410921406483855641072874327701789617479732909607203799557872135239756891024246265464633913071585064407787705610315156702914501108781069214134741845619321863927730524863539784912264631471935448278436153169389910534193805727683392016650697864203699513111249195607419563176334374632065918871109394351661569675862460049505124216081635659114595352423957733387371394922842819668853183809303072033202583058498657437799118031279824420389226127470077220465254156994575216085514656626503023194141524025171605252269321744134688087027212714290133410024673050656931505309012720108257016787072380454620228397815483797500215634387857354111536903749311885862115599863021563287589702744106847668200949487219915268035770409265781510833665956099803525899527973542628915270984407172945820765453953742039902946328131250991785907887715304260104456373862847030090824405924920024624382629106835151006777233831111693921321432362349700602537092614929184151520015968891606869527250533537691509025290062244000214645545820374653802819752964071125083987053410145115480667817826051509437848584424640715213932127446928423817758974442085006875587106748364168940435042451415679615715831166736806333742344403231269184418717464409332415524365527961743831685858529507199376372617852952541346464243365191910646955655567947015575182945108490031926577987883604578985496884229791153068531336726384236815434000373376506728902448907825425115855938658921533054980265584976245072888623632240883190517257052686323665725005721015936214793654710280670721805397169282625441182731541139715916493927017893292842825563975144139580822322194162071512167293118806352406494823355846084493970186504389495230598758320135487470999467583023412655569747902632283142454981321454011797505001148348196849399440815078191693915556029790208150858898441183105781386918627438863777292275717928907387610544441553237696709898996897921859754053740076154715200966871759393540038072490640885846024789589215047549456615585415082271186429242701061668113746602421556854942129406883926623182378965296888884938204677480945935527349898085536346294044920415873115711959615375990613388263534765807423953597788671234561068744894831492416641966730961663701024799842388433469278434108354992523869262510366358730799151499014370706767115709363054122536946292479962824879978033998569732656176825241805091574157415525052559436772520747688195992650946425447836120494744607403115571230747662924036037627269238509239078475124229873477738495213537381701841289530932937857078526708006348633969114820541857667682834147667850705965540302297332213584411433565654349719647072174417498536220856900612783937335635603190968240984463614841261132005705986666109779916519965199670817712741486161551810759460056045972538791026241234977037610552495390979949499034822324361834117580859079082121774286738265225965107091569394948610575671904811189893564297140400601168383592330291939245274460915881614365257628459045176842557961814311129969454681321791262549585754384087765217561718016674818160762148901460221885405427738023234921983320725145811986278212596688340351352569680218202502729514055678539684511803488824083595524380062976289266848765752198973558803699797970111478221539960887900357705623431391942282977793912905852767756228271120198415352017449632976660498824976052881789681210963286442755581121698616953280069080367962366138609750638790941546882257421047523341575096752973130493359634289137858406241271832106365139457719979884068869909713735382590871819797546908213164915108484755394950486929143246580708694947874153845238770370751475229898562627515193303653702647186437539408796109299050034861334223898038991135649172012028821845061957806310082427159469087470757904003094627810913375471590261040070352641579072007583744330081754045958522320607244020669120111732207657917410021300045650395607504541958981925571969334494226345618991660719215665643185901599794855909284383873720408990401524671875270825616102940081490548304814963134825912856626122307568193668626715663671546886677307752151737813143028841753594860566124524734809187198913137551718263466412272562190908116190532623109864966312061694005574817313833235955350050428177296403163000262321315860038564637918835834300660772798720130058250000530653319731666915549921384357214042982881947184813542783303451427555037910140687283537592173243853358046455809406115426307403867666917644335746479072334880808991819521726938361311753144228662557945513916012565095288910986484204142309185286178790280779413149676055725971486446085582991484404591311042372492032451004340392151711962857142294720233260050688896329102848692460844411507157362660366387878905376265727938206242058072337784516788932130904042652791875684931816819279317680150245255395831288634221926069226029418160742485064035057979704165533152376595523561482721634871950968868851623446678468703371434921319376805202271424651704570701774084769030646786780958078033953178471419072534748556685451064069804721032788728339213810435309708734528171750205214130012936473414017737479100225434496821692623834302307283979545576630859708317491654148052480444593169072193033178917830172393439231319258935016650972653377500960442350807529324023156315535010967866523983816321054924475025728932419456601897556376989584729018433904728768041638953121525352418414737904649652777369405851890215823242138931488639530855340779699605543062549201445945327964164767678434937781560421222571322958184342982333027137804650983313076764422036136002482341328692939642392497032395718408037995511236730521535748211699288734267861720607980174327661488530970844975675130739965868028195856128394486778854473573974360824019728365773758068676460387198195944892987020242250282052845658603919089862463825931207978666154161760153666673202318916893963489223033301938248494903136402294614610776864612690471670043566983598059471185048099912719603064218541495059597686872450211631907840479996272016550596656380525709250032243372283333259127819216014640093062110219493894321146964386305802689514405887250264268070469369568110586850020808314521500710123697302188430147711069874222999109998321444964300275643775773078410918198730074442915558883536107755998802593633193751956669643776032739727693651748460215724233504372245466608763663479246490692536180748571914144613688162513830852842730495221920178637231172103492977249478798912098721331129758493192578854754958944747706704301562555863388048768769827777557284413832544684961243771120383911045384801923180399623281265708434634009974777831220010316613877054712707313609742583110295461203227137919840920996234052466156445916251304732988614001109861438523139126386603827075985304833102145723728598025038464189031471071936423243079493334363553322183655852532404543992650359395233037519683691273923307439871254165061576689252579686026025022259655285957528770159909196715304765792628909537873911587208355876529328454041707930562718427459700871156769417455140125422486746157461330682687632393053346710704823758685693198707145221401873126824158238860957196579429876785492488438370474971923844963161254704446526262074755969067595592817803331302595181153595134389427379373087476832383598404088513952739854209916431440321441199177861111980771973556575838927309705354374310630378152175125285099293400335827262460888174519018601233832692497361981259308268380657735148645810973746227044213422357119857191277012222391789051536232329467442163552730684622371110906224365105030025723027592586254084154449631860251388110459658604997594200343320318503019142280323267358952941059040662829277532599818367773308793378246519809718678262938583227652608091770128760554720262137950380434185013581392254458529207166007699654172922306059189671072789863670725554892352009106357554935197199431813871588764562159103960981749518284688224775030313077528758426411805691670245753977056797417592761033177307600429618378876471393236185924811604326366320952111604511349880544326760953335069973154129784738227414966472552671781700138510534213212221941476506328032256041588011427391807609611828701156125710009973545640331238521148516797381704984090669260662984671760723207566344320775546345535381484507521950056091163297006848793716787161055470712523054722210775866949482975177552977780308426145149073530374535302154503598577191453662734461664516829003991757106038430035223739578409319468049323090596843820219984371355662378545553598279646202415869175167378005026922193907513661637426093340573619421848365935406292750406853987249522141736857706970017951561401232779494858993995489275754505106549264277652557660728705540425116932116843053534211143320280179466413973502926381876608657625507825695988686928557307192293153071577585422320260643413939584185529929086248372364931760921060016666592745506801929363188705438017230868524157551597700947831182535226457857713153263627560541591120797289338841891887737956066343631249917635630367732073580217412133196305178706503921348183363263197040136801282219303794429965455071092427916749661846472290344243948674271999761881091594543987599867241139714717575044637878527027055483411882827624524410609296226988191107440584533150443513991393348967593339942305680076614504719786324406287165148910929809368195431955305166242018661655485804697959949860621053006878094189933653406951789884538678877294505521071178184615004218403989840607573213462944755457607764937399649741235807276226971928479011743516816347815594759909504795415129861952341381931435404731271595194917827681533095224744305315935582054169633297543797327297543563670565176707862737805695749807325761546616845273004791826024746732118096748951218837331637236035229885339479118307203778323267844261799302782416549852950718964349801525440538074649508461225013211431393040492421320365988188039986772148119099546631285073391640174538104448401097438459218668642652141109811690972589645638381052426937128288730650547072254191727855849341648454633993900730469777178307825912252865005128362761614518534660456848055572107485198802263929612895675728534212526210080792913632149917201271316773889704811675631335476284954623499973708098791170123127271627398307948475152048284922617088188261307021828084585032291633494931636088765643055721654762460683810454744740258204079050649353358847942209427817186006131443981877151585144318348537531938841119011243466446070344753530868163721114970217486346210048362002211746007105721070706081559646803819608068554757635708076641394085494507305705695284788119420411840673389635484362214441884076240425455306137186611100533005766052218386263925694515986827891315178427785773131744023916621172445869630130168061745125211006664878065832701440440843399383548195292262350917524983695997378896432518252966016284286420047730099557404640279839442859750033045303074968460452188116244570808470850321059003687837857819043653206810828367725589950747192103951648263598340697200170914452415346987318919545950137493240803051604709053792009109686127311703763442309987852876031436601216769707155998783811455312078960565378584063439831374004628475144387563719950667225002252878514204446297675779210422443330908924383713228180040485286713350160410251292722827024673002437834740096532181578455082439382354319302762204314357288447445946444284429079876907530066629348917436170885296955650066701111307660118221555401731503072012840122630375066138368337392120416145374112217915530948843511224911275212487295394852805631095468769105898684207892531037492948145794063014061797541828688154691572765460206581016931229807591772462501457343409557913028324359488560661871018314391117757565829192161495559168775014634753131953882359306586643751579574478117830619167786495107706202687407613011594939257667926470175295484861544970149575983732501898573753340489470273703083086752807568870136315622885448160221918433407624623493369704245713457952883405380306892432944629699851395106574929958522658088295423272794822876406420011519918155401629945775638576903730468442237213692131265553331284277930556375876415568857625019740905075502405419872856291029338742137507030772558847674769112061545318545590023844591823610111938045936120829091965814142850825871510138683380146204583107138387980733512233959283369430609367271248587994770135367090666483579162324642319247523120683261348907567276551608307516049764244412922655548930016298720033509676785488267198044187520746396198770272596619862823007964758228531252850522620630525913608865700988350599373044442809452694677886732700706417442955967080167682703081347877821599040264756771089929354125853216492082387273152152006483014881732149483143795525310444048709834238147632423134184122801829305276004236861411168538737452634030005740614577569179332594494770188976543740082113557800003694937586000391354133361559629942453368848444370484198937411269246304259533317364465596905744343018536738961723190709822386368751145530231567957451247164711109980311658775219176689986355317411739020921290530026213241196352586525994286865849972176532667770256226295732649506977828092108492458337091732069634558649904698647276738326354990096708056891363863659832001041530543013509739721722915798680867975203735502321729387632701450884841313163786417537088405718592046383563406329636531369626471629790576291780229635037929645261757606303587813725175303101998410391814857810547183544090271151941893888416081057807929678854103450869862048488754303026202180228905851348030198751393258260279663820745174063155387181432139631024847434672415426865987848415604998370223321111116410994787904754380889316036044219419969448278874759152370994821526997003706144918171132385463886114987851760966930345323745386069938613482837222231786498050708428360531133099981137587440761976926361281349310882330913142329879199968115802498218240854389028933181788954405238282034946653736924409297256358055460968159425700503347227358717642810847434595418524898114168478731774823987437053818367111421706640900481393402427426365280233774492851515867711327732409914359212110431738548678381563544870674492251185823404005124314724002497216567355199234238729515800465841338805472715633139355496952715179001896524465875373234053018446789628372248618633039848219724978296575587359459891914650948571740658483608168260098515866017546238835327107148755491048364542269820659661290832628969555072594042977283553024876814112381673238880092556055169930402331179572497830294230860739729166219397752504228326987095648116206744486373240954021000033864719270742583380885283090715447545126973255248549034900544235600620639788877247955492453671812172171311884549767570607656195764545632816043494070779494426904790672008311660589075378013146622804267506873356632364234100490002613415395700285515208605823835349468821415456911683102736648227424565893937231115919779817364311565596373262817779673684396829501604200789116085317318764788238977520163355143774913361674061050768187040090192127803934995026639047704610171914640773628102501049256731168391457418067194482045817955834890603453828001958611302187399043897027106151192483643521893332338713766790440099047180049584546235501810353804373090627078116128872367302193953825137153996600939124176186705307352270694248648212579777329267529732501588845605935159330689257599569976157227747689265139579212989147668803041684417199010432538399953179310479950529902790110273733624623457256686462069734708732919999340629436584457615934142628871716022375297892827379763318165265554335111702571668529842285713852140965143281552061803093556962738181707106032167367848822876067750735122719536035250751373997529685505837916725958826734793754779830939753060200236898498335285592053692514365577691473130051499897448516648507863283505822151888441949223077053264287586442921853559879010325365264858080035074854405584407962092657213377741541177853473732340672945082607185701300953189843094505228065328720466579095753718463446804053555752527630530402844038780572471798946216227894379820316455399317241864166290984038627512334871864743234680986157854204435230046619390796903025730272509871713567277833724522986325123356579265360507297983376664778155232328388735172059910382441703484999647541290331988785088323084629224395817709133268459341792630972095711307277024089125697103159461336105994918256752827753241646588413077625545343710864060003565415007352589064049116077590749874303288897628910323558135358880726296170967119617520430584938355139437300898952594496364800651565837678541502224791533983216972792467780308194262993555329798549485534579893364628448058860150597941351939133030915656881357663084007615046733747803287153610205946785401221614242376046946848779935378140019671528154986128575235658520776292426040522075600670487804143458146844679429002727429783082111383788671321914823833260082828884215263280031678962976933572620167380591161851916185013348787732722055692982933247983805678512491047267355005781968086748189486920311309942541813303748691370773268167691265993216873792802507807213848440318985716608336050906712811830469352398466857430535577845419928323396700791247386565151639362453608883607621680249020948983983225246417475894665602933788412105078962935970169955047643230537255056877363924432038836340580651701603233253274313459023777735202643330963174424632337238675779610037206215615572050541823009039623180454621669432958634102396025920960118791075814319315941320908766847648291247334707857308358840935662890979514506604100181231987631902029473249072070469957135179449288424594778549579303151438621140181707459624177949763792712642366354138096725673242190869805752371706254378091181194342100265479262414560508794184729859351247892401219038303846587010236014950411370669118678574172438281930000264406575701342506161576096635238502094066562636067005915253049168485997722733115157353806956382182431101380295131287964427215204247685002719314528577838389972261412278217531878469897381605807286528821580085782324015232735298643091778439232083417233328828265826652437314376138281891623389622297387090407639145117790907388460862367269720573715260677877119507833893145852368352144712824733810586929151930013361920763497013435930889315581302369899663387127959499762418936840209402001820089152376276281233129531815093035064765080538865892031927789788665495990413448950004046792219780103711174856274020854768202216824981908200024752576466164048304884457878697511956158138501658406414181817582939619917726483482515854494348787437621099611850167913056855908837374676170086464977957353212991969339750515724819565158900078147375827906550441111752914300316101677187737859712573686840806022661790767787506397405511416925488465178662659621425693760872792737674330906072089711438067708504696448206558971269224554491483806714912401922171307202309228638760194061342005391584169693366720875236510520606243844639940584256508446131827232577524290070943889836985623226724843163446016190015984033073839975951790495855933398092735850311523133072732785048801530121652987104166032286368191233378110014896937814494774067186529809028261524900863414577413778708559211961873074673664195196219690389188437890436889151042207973381815887463638688194629596740414705349786200790353197564829822686001025307744410628313159705305183871917381994353809610429064955379202765385666111748828358260859560012961815275187057446755150977599355700493565754486899358686963458525527594621356829566161402930907937876780652360435881630980947315383685202086200607845515360830821174761740877202315720873933512125784500851827413953130588580738386955403648131131661261987715042513034387342612006969500239293809187565401455719238973307496131077419352092656031424097292321086471182988565480209588524457822488263597849680085107015380669173450064278934359161757240036561938758605194812149187379296441666607981036879116659056074504772171961557885496556207202545795059296396917063937398447938854871707203226238699171812687671669233486721005337656731081773171224420080034708519483395991163779745326672446599317155889913682081182828963357307832793101498995611906554362466890780409921452380690536734125126747212102744566928341247007885854143088560734268562213257748181959716445297827212186294781386173828638012533265173306650489529213936753024569950795346881403419184073032823829055143645583735947703306465928019898032848910627972961437719182760978018317779090910963666230959799488784081409617187292048383488663134446855304386041391986160311520225430453230635265395848010623793190622520578755672711967414654669435857195116800102939050473767730605896958696007704625866418139504258707476886015752221792164235191538584483395149665671510614417119818078889748447238981309958144748267875657021462256348198625960657472995641806849069595554372827439727044734501223356667231853162320052653500413587921980002485182541619772721202268476379238743224796100828846042273965593957008717337292502824435169090548200161371739803721617701988211437183260445386654462841262218065625440845432577395645654199980817297633554722966754878797174756779440769021350829005764455712163799435951709967890526104970610391113817458866960421788923390317551037519314922611415757403753544325699132803132927798426034298013975877854793114193969474591159371638428112198220806371007280316491377926483953311638048455328799729579443549962300035624794659185639326385033300824317797082451095703234787454396800777648457731740138559589513096705788688040130149555886276883595076797111509519892507513094889473086053269715930563410738311377173780824881950736740864917572284552460400160964672126676187401118433674504957098553686541265034503729732124754877738739507429778227758329199416186038565702213541821127889782940076470631277839680990487673829293040243938657995086700954981568463322396106568983414557910545280662310625852635168934511970096987143151087859626820428565136070341657077163208878222904068320731702546921128200342620351187212422344203107239007078835981981952201286843175386039585072348108679818950666876185853629471861048774303110016231950513883000038999335917703654400619588311129737753708213132090012071118216080840132686266787961473711046376715173370094102088154547354017450463415399963590767923289141756275782905309087478137405929917696396706925565165357780563604268067659251848778914582247484009048373669704137583673579729042811742211464786437918943712949166332818836277495336209272872579867248284313233566907822979911378174462594009655329617533895092173859763772894986347769359455853667091151651527391045782861511699615541787723025548083781077570084071366341630693985408902499884316562276640820285381812256494004483190814035898285768966116741588870268239340454220685985894860969823516914993486822631943448078308095290262646844056703755028450950520898339483459881125169196382837995651618384275464429388438304303034980441542195262904115144220975022508852303350394380245616942215747672210274830095139658099259192923915532438942314389204591790523604029079313681420019830462693647150970468633159762677950089552852156140745870524687814120786323324251692757493078481334776259396118005069219293769128823476322949408851174354079389395004999952037610887435358426241257080059670491654768456723092610640479036818646781851611302544629793627768362245713123118883275511082530051534035231368994623580324892626318712585678194171470189475124001446416217540208066899894266110427954521679896794075035196171898238770976695950421696486147804832250228394907707542514118815815715771027424787760790306290059976505152211287069076958395530876271394801545997456922756424369837253179367261776712990748656504605124909349149210557302597319946967722982416120194099775828417120931158281629597931119536378336021335014079806086261320212848335118099554912666802444013543740115516523408963352583113172533939118056341034218992714348730749093996236639943920852193627420537166270095254722946503996672686314691735324827198003779747326720211768006537314726309951079564710202692729216375383483727475513987741912526039889152909119057279076409653664713552875265814749530340835580740675323296090461618050975723598868277743349099937487828555439571700972035573970115644200347757392804426608259022310702208696173733367580350279720587999716157098178318770559065322507676888239771417869309493725381179967850984451034707926554121538321587100012554893541244655533935753681509420181028025790206654156864392970804203038297034439668082859264250151143371766591334575918169003901323866264123856707221340694204880164962247578520401702597744332990113143894997095873893737093772805649081975892556237210572636954488292052027282771781946588948360547921366918468187572474177839088354873098882291289321716687721099944535722537953141311661441099833760787081285739076339320573499689131124018143928176470674844919440114581716253398402588703237839907300839202487531667196662550901518104386571893122499561441182061347622988696808028325929474568882332252732824406991054920252824055307453404762621753944124800995336291690685510129735511919745567416991198665505069263036831914823061577717770155539972908935925302573009691202736064110328984640156432166066953735758703846170342878147101163529097290304035576743379933879868493139927600241676144638903028429998695175036391943447887952580893782674207618389558934109432837954306852387155843272374106336840180733036397035626011833985413823873993621639377821769758704044602060383442102058932243020366784773337813336204032630146345203795627962146025570409349504927152665772741106655007734053445036266571109510853069565600743483224039604511082891369732131647920699465873070657560656892550954381565556847355433364008274687319684493142543414939484922278228353066398606500147385647743028356597239046476056830556428145482408910519419982406124521948864282135006876481416971724360849552315454027437485403073152626500262617705266338367361071797321569796631539480554882081041635807203356879179122760674583321348507927384821163300355422287910137242709653634090438211317293794106876023817025927619100997573933291681507371626423896737230603141295635265896646905809244657985474562019086263035787341249627943677707959041116306112661835825842122546132273192187477632757758377210434401618122046683127447874059025729966646501578020863988731725136638529304722059285438375903847717152235779920123363938742067293276400937638372601066939030782596266636400105735088300568219100997657137320079278961160315870651333216747350541345843909407660936749269200385713569874230943628723638192870767601353872147233646620214521703126020731330991865467083854544943717663093165512012424796267158765477227775883361942257612432291609948385559708645021459916067111025734924893947656222092907214011958985079438015958267889037917444312358149574009199325074329182100218598272836042221042371135396875186350239436815467885173621174298423104910794476107135420084654075382403173264039960667524521212248069356943459643765630404658828325381186891444554119116831750144865867878076537489770044017750766540151586988206540070114843924661916878951814611340045980406723354107086129416661884883875551502724373373112253223716207261222714055540716330770181338960152021998775770333107398505581782035976012200378887301451200031637609695812267414570837870761017943754415401357284768968654384385096073644882312306268866652338886790114384793687807104923608644530515966133386122624252179182741181519132469015227756191945322026315547446302508964523348561966440670877388833070070524502830251093304756984991140135047017009436040616254530523778127419162676364617719414927434334243643288065001676832073681865839336437647225956198892294481126221001068164033893545917814428772894314538059956796340873687966609209376837496462404375348936632917621182522760526306032977842738836340119484504405146804422351386156768877298237500511583195478531645109873761231808107688081651919836163433009980712166282753677483229664572641748583679092263372684284941432131680186919220122321937575481469710209151847483745154930721293129352588273798143839842359124474108045644734355849054099273718425268560380644917366478303840392336278711927182022912414171818516679335720319398618492748920891196133517788272131983514739839203488675276004055577733562984808336769727542401708567798302780442157706856250245291557541848993978785806972001834714001411811289918349387117097818687893943784116485955151572877592977730854475103681633502375814960673897526048160276982920819899065175055324137181173134614573683855885622192473710600809583345827343608547758137070091963159553523036204553635133194534603689437225608863854263491257819271388665482346535047855064678459541842698589997484036413666681624596757215547514427500963154183549525615276722927935234026958625671434128602063568829945543069252785731852685508387680389114340534200821532484666567623415121459319153308625568525279887224084698253747310390402415019404482342659046917218110666340523803112167875638191791754492149707582317999573356298549428160398009959882801674434451736571623714753030778174997966826623342714244942452276509670195330601817388640406102308207413656330776001660070761287866476803453675510222962140839526047660804169604870605836404698846273511237312779707282560413287170480604943625135457711154875524584974626907104064838404279138892405618280294113076424903700154176553348123737719746554202787878607518621477869346371291858637830952442603728299411974865993377353895339411615309145682809180207465102678246907960122266970118828639962974171531058827635219080804234909292585742976705374633035464624599296354200328366552710270273832944798622578245552374242995908436387672584511886334791445241955067719939381852441547868549314760806856291028147844661496595588303233748359216553113906601334646434530800236733328994900313456948672640893336067736748149131419780627666128081337677536884380916334251778948854746098176535653262888933297767996151876585049696295066959418626605942376075419529889348746409261515566678876300297496792139280861021224393558824581303207007216929691440552389948615486023864315236483569575735930172445711802299546586822654996595211067966041684958400028836357115132908913972088882936300362239744833222871748737170139994689036910842244458379176990853879498946492108364232936484614356625262331709089631459121148272808237212589980635100232034275666120326947719198343807143213123276221128261009898841013275101497649020827043563154246528662026789233318150691484182909792042727780712009795870922304838661844161804407701603938360605473250772786172518665734781545590659628943122313013389649387479814931333073318381428037710606207752794428420430696834114093848860752043554365835823602375226174321420123039971703673707549317897930650123441840312268306421549048639378242074780419917204281426292127281326879187065624227167635106261678811269970895567688246410611685990458241395089078101329672845511700627360893539017464160433276801431587928817364077755741418551544169532139998611009778612739158767684510424769034557482915539874182230956529128469178881407888704892480129413096551218338569237727425199161884687028030234335549895616658870283487757873077650789487406714571887752999095347820052879078552740831909227038106599542555970223507047994919822625553920869960805428473541750240229964959619142242139758616190849215379216212610839176039200279997112443045999376628669297740632186741983272265526217900194937710803569309196176477460031919641988152941546043696214437332983242366257633684783478016189061839919826925197928697965429662091429612745294453598264818986063658212814334406246752304998351138437909187533994033836436610749536760454830030411787371434171374019047225351723411548481404656861771017698812860315073734701296832004208563708983119773181773642350713374097270683533408704527853780041291638147477915165693451928798658318112398381677995668207935949802047838972393952504417012726514519280779387489892576904601736921885460577349128658886700082546184009739147142499529381069650628763660538187927856574300706438570235398009154381394875550319183009666752485984467396125371379836053975485070191995174207770169980640240206966892977209323738191197430982934979084870480562781573796258779629602811853947356100753151105844279263682943926649431980042276831612380359894621259342115695766204517484645503005819826276781864309076886228513137422656502091836647237334295659909662603074635795107068959240432352607011741808958385277628404730821798996601775219402227722119662068526358360478130491958327589289090875888067274774390800980411832407966333391139764943874797578853484103332873290644678480777214985895443380494728704580632465594679866255151549342789337908198975619689318876021621898554621601115624572920191935989630260346770605207374529172989915219711995981834380492837726272011727924815133517415258733160575903921716705875860661005465001687144940062596873566114500227184106822905483847466702076121671925480810953188469452279746693584327812933771546886685135586348017270559789870915049745172231208454360384685364531284327367109218737809247443061476520065126246267771812128319995906738794581456610492594643764530561547052436780572950922417166264992947633442068057702204029659959633488829549973051956622709262734166509857256955657586172605606838019367709814792019645117737538810694222145340487688023727173698027608695786103217557769013758707032873086974258743421320792164638725050805251053120105598906332006106673432132253617585327505998176237210223776060760961643767722501563823104414545941041005405954043246524202771637213756705816705757193403492870553910194074841051377206107358280503825659671907520586960551527861638856234058450903856251449586190551662791299565972353275996255437205866058500041082504578050872298166343072526681722355952132440230358355864656732093046029984578395660258196716998806655261209228026748122197561552088579621000602368678219862921765683931375178937482103097886741311133942476796889200692306945142770561317783940126816621939813036900874263670204943808520190208482505342551725509465594190344108344335983635186382693850032385205515453496091527285274370877354761997555525287918490001279691135213291873757035846191038247494049592074185036545375993942192800351071020826544447741492613622491698714256110837257027107192919887942687047821958809128524203667612759605730681982758368393480466220599138482167547048407024651994071384919241794219850531002926159489891615762720638134377274623214830097366485484964785060019488997595858703694152269452216829399499033083226976645456440966392337869805706567567832872873188207537177496941288382500572273806102330512803607017775225296728197077002330565752439626605233782022810735029291625399585157719627118843921629901298032912378231952286754908983371078401638216812747628933390935529403669607917747919996909712908582980900282244503744355351419218197232247954670009919094709567486391506511343304604625759013998134468080377801196307605513058748962753384343072943792789037232367764670998412899281470737455353075054017671760280134994201050420006198672370969756846490015100010840429693790020854137375898066194174791247525556636811872699675054691716014868511920951297850094656085086691122695496455739386138763798612852031563185526361735356349730428225887323727404379696618582265799967648318328901708378885108243682260229432937921485811782695740640010255034984240108244842834924988487589249670028075873410510305711291220956001724064546599368526059738346343954555251435656639152252902558491662886101603376483633170727639063898428204617464204533633014311074034788147573993315782886353770405947539964462010728665793971642240756780136546518619290460410614815546838161052125494656791252817568425664087049286844042250059061275702051944521291934785407510165967166232158894805245091368710528215132904472027150379027521024450438010810649332550112041000137878138213480198315027411740163934484483845686240034923085984508912307987292868386985467465557119375812075514452691293444841878993400920654654127989855178752178258926710675393202806524751697696420948233254996040476649271277509747136688157452548604217463987290116809744129067850338449008644156474662340876210312784782834643719280343427370591044278970713996318399828074624078907044126189879566008267756238483188818317729822420870999571634224774708475297645553699594912828961711598919931511965086829778695326611179809895896451331189327223007399564029328440189210531951481766157916001207672301966281549514101408983359063197209297596822201380508327649800879174859725089096215857922131780629282273103141716431398668755108514093301600193032220065615949854093585779738312967359860859957006602129903662186078194280077853832751037061471296465576253463891784779849873799788302377752449052957758060485543267446674311824362340799083941193109030087410575089256873346019519572595215834926798478029690204757330156705129365661208940636557992133830217435397725285783986583849484894625731813585274487886715900689932076849277344990269429014929969031340209593628400320509934308323218403567763178972421394134338278228122527074380662813448102072872799043917893919802388188742835875811508255933808051720153605537772927839153777074901027893364200474296877078043070377752345148663725734724370455969053740504073489117486097470649999320513652547067446998200507759686641852097897373602978794985208020485332564327763119191813786143777444390832826990476872572127754035468667881144588719460485223402701695150376025105285232041700964966348447613088000668172674813288485979637308677527319751284937486171688095850827869027178870358878231393976224467503265574525750217115292838677620071523993908274572003076285398852791798879618116749438453272672912926385961807548793971259299157778431503801821877385906148140591461704771579160415402724599551735913167596558146931165045732933172121956821882443747394124438739563069643888802769367653195502457853677820514686547593608890921910510882538527908528626659248513390301435609276201733646665569817348594306214431754383252094032715109713114422843069361977223428154991492339411202449919697363750091095872130061973243307157782598409832716788955830746708246403422339913149497841644489674319162436854153032347802136937120381977063960972998211161266936799546296115029960384032147517442548425837203618679844966291212443765372870335489894517802928790903315330201334350573813863397964496080619415124754992512051204026997209946793721189733092171769863847241239534401979609318015456156927626313678760931224901457137843422990717854284352816556048140989479155576160038134575841245606557463333402718397422839997142432927192439747064719524183803153067895353215902518524471190318008547793743762217997683099370034365814951093675429298458238109766020589418977421624758209094380416532430636190900057021139799692543559694508668015869289627208950964072565604337610030191790252385646366459318673486239451690569422085612904991712051893404687135841800730221688547362930632328893635014951704409757155065201501296196709601476668361978916321697937994138794949888371369870958640398897142598896246398506555026483754628916587452977584908231670416255421074698571551169053959300149261525330501685677278192970733103169443694552462296040958322382785683516376531136406764891021912353178953165175863090421777009668647936139311114492283182324958828764743197423063085421816110540119746975817758874920293472543146035426588109598797499212678222455279635939314567546632903154672923459219302021671802039418095244189606453536573712147721060664342364165655689014760597711866250041164234184233003761084346808099885162766515996302057275003179061823780472598191610185412823947373502484115054584377022627813491951643472924247484849072731083067856808317511556571504554717806279856959920059468382884759503641588485222951144891075580680486106002035475156643862451786217983052034846284974633191485701708968340582146210456948081796052129523669111265659093547261843460325394310732376585710909919670000549954967632896439042919208176113727690399135115507084354767700511654127672714074199235309668149531964774870904200948261222871817234529729572982137022216017440510834455797321393403124508059373383589083945272936514789150833383044053176856610458451672257176615366484458107522745782628669009645703183675063275405069705444220150830202961125748893993622351613567286678460576076745494893286178890278643571070393211335192750467583026086365437252685811600077468291172335296754215163883042378834662246153526329080005739555202716076219589587963525685888325278956002290430816018706936506578329085257350580310214203398683149056607924127306314767420928493947361895164394564225473220907139806490049050448590297926383269646030011121978789264878916788875047990367490980964049925162240619969565913070690737718811209084401346054180988360339395401730073744379338444924363898559275751350204480706296860047458945971143112731103606556453501215250518752171230874366519232406502578930960495735016550647058749532364494558728545679631157639877679806442877813023818589224176572308614274691496340298545673569866096844490482311721123205328635117990106757544613884280173333626884938910073088625372328583906549021938050006203979651361047363769180729963725827027033988934650458750910768736543205287501017375789647405375582204620765504771327310584891464920516100103528059557201505277514217818104977406640160297401004459309783474418099751055222839457405889058516321125169747315749903017155082961816552270339375671682936409303226375956307717261175489313425057721048446760136761586814876022777271513372770915069995379910427082310797423349026489578001112299385915022081418574428841750170107313487804654724154154419538674815831116022837652074922261137430352145433570567821617433415200272385329664584344576262349012859030791970260755346153869109487230765582019661723046431002476540312580850705865362210795061666418910797811670599182979172927285517292392482393785375137869010250285990165609188364716431659964387612143250497105838971873350277557248537509332309697775942925492407084844166821291729842216795082865632336179631417886800657498177044335717160981480143598322093904404919867971619646130159324743215564790585085236217807218713274838449552434043468386930961437249838773323420021992226474765350491135457420972622478136469833174202411482212460683916950023887652821152154859763373450082934337757270555109152691564603643917745735080990361239011584751135734165987834552532191546034577124889293964175146667966734768606473299116014755565031015299260560592002423463814465047085012628343435308151284270263511049126652769346952242892373112077496675917966299036111404714135970532308115412148652078654084903926911723837625998167299902488699729295028885658857410553173525421571424918446186541181712722913863353658390142940863695354979828124103263416993018747983091473306769367299934354432514657037727880928337009497187329243859354727645106390704378242212403663006731861313808604623742322816507354992736137632501986494269925200522068692226360135787859282899555606551323391545992304987018295061638726361465664424671621209712518546475060266717474159119750886501754031640776844876781316646201131486698406784013177374035348268235975033830022574372251453034667489984348213728692218878819810188296088142875812304020076206104108170771434503386681188085553131822188355205768744459199166949613261195132924986879663010661647436046678050368297794558464856518670042410878123120584581155990428262719695380418434141854360335657180826432354597699373474353881111326640617257425272371124261168121997530888817164350716464060554120892756071441359292274301783669701583194159474000675882118605307547751026789398949140541684621750571956187826480411022759814608327708214189868744930588007789285977375826052718243338643897635713929305483124068205725507119320196671349616935703854450568692436346376608206159334928502468577108877493078364450057152880132142977507352684528825226209194181884091617645260508474098880980595466961319968946985542312114548977189794839630403722604243252149288658911200682926921416321781334417696288650025213666583016483002734766800410429546603940475387819991910872723900918759980311844712455676869295410934223716035617839023359706714261822545703526155039032669325144550066294721081353567754581947552992145751456597383750425219400496709605157890837008739870533457291733827392569300144739367719137706703298212944241779229039022371258458534769265057314613453526136868570158206791880154974817952672924530601844551037408210103820847411142253727385741902720031343617982071639158952683637607682005107851123843407295138691135468032990119638141721280328560513490414380853575620043996318703678908266313912302332994744954540120649055929389866663309467028894699291607352616229939515228804466234372813002248650280470843202149176098967998966236121325693146979545009077062164198540391919562265506385887053208434425010461143705719782099918593720343987409465571650927766563139782041808722360361026453497316850095876039296798511558597474207011069208303524750992914776309624410466461028884206775381968807515266350738034996238334351675684251760667617950980910313291703840811917652792911887056224331366726640819425842535299057091819170661172624759468683878196132020821311685390577129509161007650077607619581651471256467002910311921947694807184396233401700318511965496269594379133975860765389171715955569698485889996573154635314410998574969327039321482331407380791766713934368875088672176380913223899994027480163264185587484481748128400055438662920480913263413208026025900265657434062123127777141092239654886854641825227849421175020821808391027121223744413602341153144767398769429485551752428579697146791449743093148401808634129462818718587058426289214163695651437375934055606510143149101602411931809247092690574604435573827343753625316212425422692606201756754343727721271513247138840921749191470900499044692206828813505435494083371306747282477051023062171849103044584597290272977105718382469632911607893893094049553224468759347689822944861204158963441716683448461749651148320223478404753303890729144093038190974910884227961729980940611141762025336548695203482798902580353140050190095913199734503829639548333588162411127119620285977466785524475022402230897417134852726205064595393949201084977350138568113488396682371486219714620670858471366380467424304729710367075723742927196271685135274229188974508271753867473455986767480086346614661258195049025092089289135490614998375655317995717443609481489046535858598087106234353351213254647912894478722650176593158483193974146447679949966536898727338704202294247409876710258112024288866138087592374544038705183492363196744284485587655249028268198353148787312722190288095245437042497258950607744068921885703068869100074625021725195705236559628449014861289829549537986281512518308562136703124772492251546199688710145720703842207296202179332586950812157952182951473561302354571024936336599273431046751547745082022227364242692583693386827204953279108884132199650202183248165344097714597995193553143993636342226315772679184003310354148445198530644176139622621689250814668902203616654160905407333810877339082952948559783911583541086431942878684562342359469677205568764310436543780779158306429824377055973050596863778447215724826072057684530103480472772676768674371448275649042106533267085697759722113781948455756066535005049336862300326759822364935924616298014100101246465832565569876195654600622029503955217604955968690668991439569730440005240042462198888526888210149898507027952842805576556998089397225405519694046200826762258743038172029497505413896365921850856782980801256428165024543565604922446943819421917478033194304872623073447620225453770876131119912898817233198765780265935815561535904032674392842076472124967102648771351548740748279185700763833103671447004120533840065520017319982119322347012853853202244011251098738157095757202786144258001805152932692526339682434441065062949081108605569708826862106959819681698811594834245703135184749306138138808670291040371275222653232868735547121921502777709189946747986232192977271071836042444140297526070382134296773534282056303174006774484001387821227571203668440655949876205243805505687103813840715778671947291671624554341325042193120045740965807157893598328030897843477303323756861944170973818947053486480589418229142079285790679264122164140683883037535936647158195961227026683625501063505997566912347090819122723787256551836717103638738700566205490581856692779289675208645194544188839265830009346262330381399665127279472430210673370851303212791209886801008203324813573544693958547073503871488424043381691925953730377106267389067186158299525247989719251489915909293711959055511024747533640719514130029629027257049686069826326273934964306797569052990943643869344268972752999431565043873678530714832340331945357659521857380671132139091067929554366372370183744363026379020795937708645914515605594189657777425690722525407136983303365887172997541964401970652989726853718093129558901703975440166104844610226509045681425414786491773569747111491458591496552277542384937101949328847713952088214403049047577522649312841198581391075964521978906026223739342553192136860669234799920316207492681253859262015333923577421135462756678179900677188714919380397194172003226829709669948841097711346756669473262138625414148479703454011857948335070948787201627679495085768077310330778991610416014184135156738267820084785184912348472529551030425049312407021761691537172809521119896136409266697376974972160020060129267491944959578838588694835312932898831722208414335110596681808449252636160932416067743046573075371474188704984381045579433824727515380780862819533421672561719906067009819382280786461924010733358585956059710425782618673964551562547017551724465656972766645361893111480415391550964023176024424859081891651803789884662147454796803784712628148431729713930581968859024377684978737975986780898477920580777896638948351810608638891166420844670858115927679874738668654310070273862412501353652701575119841804345901524665130871301158950614551752193500619834039866984209895374893538607470189728770406421358103946985571877676884040970478383515829692482898729741751438543456096240781578390368672865044423560934939491035282648838900357827733208082470518102742781442268496413617706243899759381220115326346125303365420617746171322489386120640718074216433580844095076848659280273474754102709176457078760963986842570735889049964576891586687801843037421949524033916951057811688327821935259865201999482960999735843334125478229807032311134618062033038986738708506553865080083404673256427133649215610306351116520860766660869328404671317239921664906971125627930366929522248914822573518198509075618875261356685017739943690923295847316602988702072778245449963095037223910332046882765712228738439840929092719630749181855632755588368071431341513791723302376614288806869488965946979489025113237561109629022248211042379543261591073753523264247797081991733423499817170162388342657266520699011452786508073242763830106209330411083152598450757268246751157147041280570298246476483289582684626327962706602299208778024263259711015471687139253940735681228643798700615736037956276139022136564547229412012035012438480104141063458229304186837178708350103333684509337318998224064292388808046992439111314009383310866900115871997444311610258208670131476394385975769764169558695757734876564106298211945622679387344165817503728203388731092662484008508531518191836507456557931717712961177660246352994834748606592957701976816687400124301190237457781423406082886708095447478541688010642545951940429815947308756320983231622929510189028216449585841332629982728518337090713751547904562242444229158002012095843515287177423627640183770537613452588695872546444771630865438596035260205219875917499586517477696545040309489970875781385779272744618153539985873509415399816417582565914002958151738247481143262838544785469441114949857105834453237554013728230279413572389263933963169958983916831047249290245542666668986878083568387006877117266226015103178128253236809690168448521081782485847899382405585408517987212766231387670069914500104854742653634632002707415210545270540793912927744136231639322399798768046076134800003746685933494547377098097575201209284651435333079182621587674374017447060887902660017344354918658219618925732972925775913151675774996210193512041891370533111569578216205557385643294653229805969985619456163467288114794587817907721739233512460119316374559962503227725520193448779239623274717543539783767865480117135220748290004662394030207171643660818370675910174711968150820990291166297612130682776211642182738675639013687995594707685899001525147137898732643679637978708690865409818321058928943911266888924243602347150659802249718630218914585473944863502948438993297665400481882406229464615350023703370523040179697745732889251067814327511987958781359289811989645514451065492226424159673716949609594113580685629716467619618922017748015797933745990900291935632840881378223333116225252394790679774218899279960998592782864235480294836601357301570503131288678809254894940563672100487208134327206042203529618910746076396316483900870891583380157423901045602123386087754597654699102069250296859701581427323867657222840918588187228220094150963812774999654412357072161099139074076087577856650457962106709683761463127014997206444679355617040390609935836309394569120569823687046606282515692281560786577085160713062060337152446353453257584978705776550934446042056365025527382570550431347213759755936104912163393892658528227564581333998250566529469009616469309698326032340260884376169151187441356506128096860887161667117109017543662181567378711498485286358196475312755280133598325668327430871356099537621583592230242386798031850996576534065361674401342917295335497032496942060290262902953626578400960380259829171434851488995158163320797488022962466545435629581858943410853596248886287391584283062089442061612131609052985903671416816491154468388976647664418482101879803100219517050354312322089040578507677426168441263142901146605474323773764176038021155866198809070518262642630144094661149338499847786750403839777642031721737557439532471910411231504136722476027477590793625385166348776932884346661592886264228516726094386018586097125633688079623323957054560198168540341698668091149930809911421105915679539550040399396855204059022654007595414926491359901181184749610589282512966352094123480874476917821876912947397927653456008795640722282662241963000569958485774341706263277884702491322657804022637383566805610983203355861811503883310468321364566106911781951553416940038995881758203842229855730643069702038743331963525771250912728269676735379253704378053382765886498623069175910080990662837187923628047021747858018624359477670897518067933692986035770478752389693342274076351577671792666668692029835538414999909723341142731133929617723865939642996734313381700394507627130153789326594279568926242104759445152589481845451208423965384336324624995652037354848960895667232178685355105882129754776199085409232567444017756264565166197864369494175082906777939653729304854140238775565323771976046024167845785830453167150048108421400309819154308612430832931868831901529120418349309326451575600354446063848873405289629701408144217890187542399345285999694816867055229357971737460433672748150466927264356916010477918482187400340720031612192583560644730446747807350787533450991995811048645634275720960274149955688584737288104617162003087423113441510280051260486481870208759985620566035143004675145983535101795741062324969146072796809943278680450253623780447667561406648907061043139839422089217118348394900193337472700618642780354182082493481102707229675574792257596138721510973356668731249184222357594257237848668799794170058041177104459804501944733533424255514444676717073616940256624159077299915481330986800056992161919851264760434439205095036013309453337338095782903451445676096130311949567516797668389376293763708101264122941773590511818275160487425738628513012450048871670307272297984104260062510235532370664823326153013255124444436811684820466189869546989728398209575234847594964442930475873552682347112635599129521134474396162287486775017564831505923768633975176094204299501570160312806265749853300295235855182423008125486911822699338979932223618928597507480213748440805805973741502521913056463419326200065383365910073576789204491632172897462227054186482887106455497910807246987090356591248899284745431168443225778756754018453613530248349923944153976407739015340403273113547097211568293528946383521671054346794724046311020317936123282436640778864235558572094651232223067940808552027622090614498214914599133656669306299668395402039352588525227811180865779294580656464705116491848109304319564385899585140455588100317674641073297615265132085607386373145158247248318997488982132277476679151893141104822234948260347205937248457742202004132074985718849097765235948743723743115591830265357614647796944783363329334844944344472092585912563133288174191609330440777505033722000332797331979064357244703778735927213284843978832134201794379237363848350395987444053887243270644113770157345141894732793088112312370195082077866792547296848080600185702428764330725608421517584675402742066926223024884858844609152361313220131388595989565679198466940003485714566452697948784481850676249510892815898462357081071805847920464951652179860860837590822032345414556201831828318568478362541361401619726967233235635454668452492582863018525452098762140168107413169457917116091082329190280210982559079644294304362566609824026775448280143120391549277620754415298605415633458024126945767296440341426147953895877525225445290661480781220457042041516677147784770309781295033964406252383962360516935821616091326379106717950040674853683166313782361651156498268446054635220247107988035164207406700885733931585585894724477235904254332071673467993798930208617152453167585861147430432474382825915811545659692440944783011502102616878411103629053288250102820730010050631012589299787558540534371938394571015022687596138729639478989110867686231471247568874740775669144286308687093854483030576856085188021278937191824472736793108275078465772795792151897451299195015416556440186138908700321438302142401648737016815657372100708932641980780795665221315868977150648571189495009245712587752494729146369269362757026389541322878753226898975518051827824885154172225596789522734485501435777010224919089623030646477747393718548661343622726496409533612468389779274797386077746186242925679635534833711322497072612713829709716765024713729195271142034973656887628265081764271682270594748919888362907924704224597773469490413951792956336327783209603323911152777603680562833504823582830402144963259734106518025300100534859193653358090043438862395275001114632403948798967705247957507190287511479122758754843682269221587675437633398632217172685252628649762644688862966597707237939812799552571040897974223264501400441401968599748156362856463395382328116754418553636141082852574260576190982302181330506808751535555690685732297920113715216650801893374376806755363451199503043845772458451356225732456156363166394901756207513338647220793358718773860571848051362459585054771654938642940397935760293501707603946314796986615883128142253492321221064777800700935967596657834270950554487601024762873997351732880397096553254695890796737258723852645094717919393244070114254046621780514010214672770605735820108078942835786814577011942633097270790347869105850282981998446556284978230540217261357517658887757689391089588810985613767833888488133589560044093535390340383609121470649508227314090504584412859283021258283703110855148669872998987847362914202935304645207351198170371686764451817283738032735124204730258328157949160011541262332325958469525239037193234054825719694170676694787142311622554987266447064233682096512556788137232505526912565099719582949286071725164355171862786813780839041744607839256577549239796951299195472370414383618152475850100601366834560091322847402493483212239820212748840818261608066468450826490261726651597514590317380431373096135197396729637598798699171177488155050300280212814481610371461653464566333672097290915131327604978902542419318184889742459464885720968962196734070439635529324850298377345616657546781470181713947177000247400303842570689894845525762732077054383622237604389834863721086702614456159370341858584089021819429563596886521008250997210817463008700942166547588772715068297712446703939100869361701935436676918325803228364841484861910423018630002941007712564154612117561618374771525116028171968740327308293285624732630942273839579723951153412421006431657134727591924479966145679240532740616474875482310124020691309244506585279127275708468358803069922792892319124465778142754425067224981827876739544331080665811007514924156843259104675692341253977666927983826715994474106445778164038591321398638844640855634629646174008180161028971523095383803485094010366371684118066909689299296124308963034361537781381119433941234950403180435594687778304971652241177405040223625229131510811255460789827561203796888333174064417874313551017475902006222439419634628100597971602074543911853707070167973363767749766180425444091979757537549927396043102509141590037226381246439187191724108206916487917899533299847732714450694152537321830829369146697537498615514194078532395546011185966574571465894093492781055644100357545738441599873371193076752503758148726711041819818494365105595156490936644933577879321596900293736661026981985872005684825603984499263017941443432157200530233328140964453754864628307180948914441135853885252597153337406181779253818040554427579758008833981117035414250856657422282000287088108080753562639690138713900382117025979260929962478558686734606184781982724550889239990363456301860907142003469688773466832966747585139665020977553803019232826510018356777766532894273031374233321822051726847601059650971977013886206579519415134296965988590086356940688084479421582498965804428380960791389781246342342277195021392523494778029172494186888979186513251884683531464546390506295882177493218035699633559603746034331377435933270645004813443785639936595327300262363756716255170223372271866549281734726829508897634441126270924676030552779172294258461512117222047485400343365122230321934718374108835772189005806661822373716144467027418542154570066117613621446283860457916974959048472976049736869805166551999692684051158204414958572656361438637107178965796037134903487294740920662426074611811964726288963244210386513035635414971023547736314478830683962825479875679462208657108026688185585928563144338425622102326448375249395988421037835883640682980493140357305839347928453855758148574845514099532796276151037503388510590431455489914701742601882454905494495786449674478430410477739093694459464306826241164370253265334600973355632415934143615873371060136523335841940619472954933526256588443278684968254181709983787017083673481185739795982154048281377706560954674558984950036312988075462097988336194153509562694026554837411736359509232758770074949306092271710670552447652377184275098076401436844812117505792299429426162718490801858179933998938796915834906063820722546019723245391385601915813791914899302785718442352269377417872320061416585201179355812667627812255937943163610921858621367978896661415327701589546712195771452028660018948660955940736075943828099181171503754435320729199562465693779399834738452305634538735823202965301885076084934053069617021881600623328189552166204325207698726921650558425371105173167327318654376683797993364949820398330845728110980630627698106135219052616154986905217854911934209925812359136724363221217610302762991539909047944760870062348390412045188283728153101392925355548903093689369568771762691950237529546838996120140521489594608222023432847200162975875636475082833609301330268742782015375004329731083345389486825493467014274414907056310672814974831928745969788226182481128825421903278352257285795189359015366493656833989864570879697164276547945130412193675022180857809830384116201311660847602442461715311653458339987140601262675074603081549291285389684422478249832619664855207755505793112511234003214325570665619838215028298980906536580934822374060151744952483277259143620138884754547557167545613585352621756692742585065595785490565141310343671758381296515577958404615604445633637534299317933281678746175988823875592976254108652439070103599803602777060084746727833880991536242177057026320841732104443217534162131671531661055362312891340172809823798363631352688843376166009590355697743888196881472937877806551419450554686007411990878569544215614639114432231400044268627106416959863810571453194433125732404223075871134470916018271426743671307142000417304253501747128197613671598201763568989232827659803382634155383686261569167101592563590744316264857954854200826916495641388857925873695681226756547155724300177641247484833231428160062706258984082354502324580290989154486100797150996199973068245637987353294144776409931068967796612315724047056941000143091219962760815455195630314519561967149213796149445170419594409802172348807116279194412388594584942056212099523667259938015595032647202455119844328903558765576865895531420939584570200006621217086590131439341583815279481700334968296788587707616021575598572274766262073251934667468068926764208136143755133932189736817778209668443771746909771919259700829479913092671583121315288409020332643240823482616424639621816707071239561699681325738414241397989438320795900917114362123565621764237656299028598576800206898827730699774597062728424603879222706021699940478052720830705172839732258341934307783478043381996019224513864347237840061871189854814865307030999668725422890318233913982171176935194542206609687879733031585538915995108817624390453916756080682260115416110043800538403988579505381942769404009363582693564482215851242604483222234588515845934442104101922540291942820703291334073217729425307577356187034536043185098592074456591916606787426716023352767641547634450875640037902119328329091671828533999447898385801602891145088109204183917543147023969897643546124726213400142483903413730997178831572107681237511409889074531312808443156803440436201400877757875474319778366169429457108530467361761993717221464383017963160052673981294289255004964148385020572493259895861098136408660840254291959839644128200563454724039584229718701271989033222125659193017046888596955404825368241581594674170843593728676521067540625858898976927212545001674718717415554732169293799309964372612573589323846511398894175269938478008326361633437618828454794142160688671173270902712639787498241814829888237793686558796506729506623797095078230576871454997422646308067623099147525542633791430949063497294492142862610506661376876631758260194947023451909851712472351379516283719578754646180495748659272600072703994321363106245750083024810394098340761807967108924407990130722524518808190731843979236226484854855206399043134419316027163427961083686232779038738755956537751089784772627585491587863681739507762226860669378648099160347078525369349662713832918139026631975518633567654904463869225967734194818261307172319836141817924107218945639315246108608641177600565306371579270414087280355537283266636233791533357397754814190076725066838503743680772409269910191591645769404478800805518704952206806693474490064161129439625802951539898910985808344970930442387508922773016950611715855305245437114343155262454744476197625760572740635862504411825441823762841956128878733435533635309820866222741759317435634252465382020246371186981437091676615210438212113762760912487832488661305033941899365553899273068671559877380845028190503608803740707566955258417425071016272950446393954206847790916707870629189078585968027132722311803259950665690091992493899347021745771039036172877077585526888537801094069810699286759476061212191381979278626546102353711365407565150803721096919225098727250996486455543025903194059840613953116692895012774794621484584923325810085380305109126097366448849881681898246078234294858151377720560178249265901081566765560220439727372950796756024631895958319987901285922982714334309440072319259998154180477195473563029317845415220243167029634328545590161988675818597152544597965715956398411761075992417745510538784469282604168828013782192657953913416340310185428779291015077945929903444813529013345557199931670749942983489735403185681765477131226994755811426808745673741837059153713608241094443152075139537361306349678274305105748261183057727191790488539805332332351230273107543628129679785477902060567828452789435179967918762886819815748610596645481732583176020030416753405961293779179153785158626620794271270171473790574864091657939260649020911112816312990711089589309446408402678621246977305584856239992672269922032612487488959158234875235432944987110345026433751319289361022145212144867337248895083703972552369048151603358943285440493579398390419843709720488844891983969316942921871845211368933876465498090788947577936658565704748448580668437371576946991250699515312213859374114058922332264916898429449463989031197917108994734013674557880218180578345760214491622395317862897160492917504827345399776623415087565831977332643124370176854433552699923571453112913715534284430444643326343716706709870217541262656349814076493950274326186572823208128545424983193968973419582074097742772716221049103993156454876145731879082280337381573904561576947494810285787291937324750363071088858101950290549176912220152676795010132441269647399527939780240396397218022687725084464966239976656434905702380410100053140944734743902488739963294070459851036992474509797228902360705537564745511552530332387196807195974934939204464624503540655260482303862195601308656601362584723605544419208221320461558836384702348166056406144809171060251819714981347663126055992623282336865766448967491859173361486360078635704256850154588874247986534645464950732074983389079511887484933292645191495428247424025236714376983137482891598488135010196391349963804332127790575731055568628246186786821219243992604243007630513127502727969012963264721341082452247780765609213276643269628711211913512130925972520567015519361606317167782409398793267710514097860509313500378124089744752028210260363983908823122252809166290728133435588061403608691272281526130899629863133314090698576148980048111891483546223250192014287114199423133985472829696546962638572365961970948345264299769383482404115479179010660642500233739136609712605764204780366315773749497061383384496763531113195709041917270869696540748873973702063211020749047828266677476476306508344507606845875610755534961765119731370051338946712236901155115671761717913469792432079180698474092903292216540206344781368389870618068991995098562830348418137313086011570934219936533419998734630524200851989007001207043983376697809146423463587275166528900172980907991359947739320949030799884859732080676095169220692476155894844987403923785293975652451981933617408330814503581822145136923452827778228798382777841185645460926857128383181421095770829804678111417142151026114894938500969832481069771695019128059512563988161849458349148325648293762201966607225620969242749208884427454995460222850719647018939523217132371724057454401380290986932182257403741643009363823316610011686692989324882446805514472627392595742974958273782323309345977905041422331049412104157156862690569917506858728245634656116727723160255366748133527569938002789085685603608705883262464798232254845940893938186633017519935562661678755274292361361897862757699777845824930427129202608511137843881164472775293005644443065790487264455538990310150862353543804205577115730226372072543854894741263105242917146806815019914811059556032473959295536423048065632506599171051672664455101861608658625636846364618314300958057017268759562046047322787622012387584933189180865006458923835300654034087397351610749191220735672601556977354109473920099820915894789609218427897289616590481997951782593641317004006455513613899492262138678168962014717157485876136950265878198661926342409528903109782695912602770653704817357349441258174293351918281934843962535529091941703781642037818164822900260714932741963297193388234057900316128872721427684842007347434286011524468018629187459944927967595604441817349827967598180058361594693923323356895601208821113027945972991064190621488058576157949498812954822128476402352959523285713531050686272064711148284838053561700056956201961997427648435498559581970327596524462210715761885785832165838312365672602251300586809084795496652218363214331378071466273544830566861155952244980080198208993409584433763709240221873977664904719202116497779806553048278120772474749725699586223737042501454924668696586133603720263826733479684923208597504856239636962309706005616971263186493161317476290416262564324353444580958780486668587449152415935614639525161374374287792245856251069257650760955657281446161707722804003224242589242254765313067222261813886647484637894792906151094455432338636881832644942282594642321166501060447097519033375864923935693871953643858134103806125311354182597353969059840742776509244272472888478028860548167566714881476786330653530537695446466604223212117150221677049360957883106571985925984715475398833018176158749878840612631071377068847876348612878973395914544282014530706048491495794701196245851507140448758247814537852916347691916499923842564638807649712954321668192133041954250644425905997018412703542264458090017440539926289934429929625569499626249723193221637835253551240620201209157053683864698913987915914691527234858020323240162168768925945212427372213450427098588223383866405043558307318685070632520818827468975724679073426638455834109923136667255236581485946039336613162051719851831573789269083118228117456440569748710182589097754119483586336651360096107152571189465337572281868796177765986994853031854655370367713022764044910461952036317005787363536802059730445847607307218343392371408768102787217075611771055292521068912149997566435471733875393274707046941265080579858354195174211938287898170300323789288656730334808725348914414262659108037279784252607977066993580623040222349713317129289710139168161801691058022978648347643476958570300888277096257988534098842380218502398195720305270887455589172578158561709303519552612071887462704061652272108357010650998566800070520795349091496281058439943911669472975170772008040578000477012725890691950914295781683213096700845999963324297156098760231630494132601713751000848896565721484357666733194374355299024763307713249514888639583449697257264070321951652810936411427757895891912836369975523886925443616752116786362666055957460571016943501350465196973479334348936906208858041960133229572980981209552745083966383654754911374335950593502511887899885548270935514994368615096230516296005592839034148716801213206219906266340023502911796444917122690708340046152285204145015091414824138579125282883007152547638336571490392017313087574208955374306057079045243640323920548187286236920645679196208884898893143155452027948426401362170861288186869058020923605402494059983364450507450707931210928649442307882102896153934978499063339220144089214555360457013118088268333230804423962129110520803302894922392993652464300003464254153328233454741813027064363312373259434495371795959120585638909466003244190046495518992703160730230031215058478043555335378383621970554869167217271828981168296734793887170954070678323144905646203075002717554632366669919516316030203279717168905693526014487942789712280196125756186044215107889681032487040195956011218032386289787433923642410060739670294285180776625888277829688791583763839786528546943464216668331535766126248124775260169842626402386004576572544525958019633204534857856721400214631492512540080349694794566267969459261159403421410664817879690863765819325530187241054023175549141134959556972882026766484738535404211132586416878504133900938371827983360978460423696354207594321602024798812263582830961142760062880296412484408934918702250396098227070147851116774303474947635413379535685609208175386456618496210739948754511701449489242364798901314482856347943705481463479980758465084638582163170518005986254764281961374752654959518332901505753773823058168405398789902860433610516656444724128179330547762873489438098802074520774996188858885628644991515812603046498793334751294680024327050179845648984056590093327256165884129639074403175160033188359131058153223161334300316546900842956577699642037189022819623399282788736626356801714888687030427098209145286044563053900669203933410257348586242039585071088089080153888036183117696698663894973435229446839881671211083705846886899882739351470718486534489578048281927792860685931830875841183645670830476186977065580415943849849505600175123157925588128611720415857620469768821300534149876866519908906552276355525504644926640196034439996937605175026165681450330818315241828497541476594397300707339977508817854732249572190375953912011055129358674404303351468965345705987396993664922941457184704362684416776002299075317237163543949941623573662326439448965752307154717105031123437174147899349676106648729520714906398696214185369584593346197363988201989801646826067311926379357516695739109141265177714322640712547449187733745987480999733231093426773448352887537651044331386514629147427035692057209228590933953999606620733260205545578393767517140342440816768987100456513668606721291493919740132970415606298527304319669802584622033505290593657558183075105596879286044060485463065008018160993668339023254897872234743909530016208270850387645018629176638986868348769929573961658057650373870530903412020734923025440226528388820027930147766753284352669473390412161932273565076890867233468970056769069044997036009935431223564367042712423369965336213291682697847630054496078018476846687198563236381384875580622238508219066540413674763343095731406953269565868299676881439631058175618871591026349669844172678151973125018599691093875212114950713398185443737188732581782295288833525339302426481509938197802354479761046316944151425476787864610741709503751746952566886632626199970042108819583141022180527343811072870648171692472581339870734715466462445283736330798384987267472559406613893474371272059981077409530254607466780154458458243323893659141344041309651550834936127169635759879695501281766958354986053793845886007635659334059684848723138800822304516290677349996658159457605050467909058773669946221568178579644091831474975637196804547636773763121976797021861684398264680071941328485863446723002354805659032430063313987943995109472163188650784253232040386715554962426686054765447640394085129579223761759816041244921533805649308721347939959785044342512375661164557586599044892078256637024881160758583563334666249133925531340359117187953859108564067975347485660121174757250785665326862677361274447051663520147009092662739899242254324855469880070582084208889053064640852284372503139873605184448760872825921326806566846189191349090066899748628312687940118332221707417536593709791812138779170471240847290420677519231669226323914522191881714922363903497601402520822710960469456139210262017443033734052970285653426295737471293372937818501966439437360810651771434531431641950113233786591250524023577871911868367205706339846641149477435489201362870460138308091325233986515413082226565118807358419760218524807072714225459709389761448292223698924257317044504618323967248282017806623812474200934369182053019539554076485303549744248041289795981364538648678997536460632840803017707191454595500459387393357495177290183692266052682047910816316993852552541388565091086204961149894329307520950278502035890435134315738049220313316359854057934119436848906609989223189470346686099912638203949296402404233521304250698851332400199850278588390779427458419781890787682994328275567699487995554509794386450150180966575828070342074370230707959924761356576604196638504336624126900518062012184507619933391840931495770847882366734132935069982170308192175800542256731664535385313509950477615357667725660985770779182112818646045812294091705196034461781660202901393990311366765330142268376952814082864771365188700460909096776694307924228152402716070714906213200310969979299302523670028290062148044477568962892147656301122474786523692883094113425504152079126794775316431850233089925742255857179785054032443444980382969769022889251104521090126309361925928600448263294780151982496164622699570196408588034145878781531552302335436370013162588349658586975600541459780087074072966875585713347998785148530173809059228271896824871074432899715223511954035565349813214028435591803403445688710965074309155190881418089938045747873639365229011572311315647923983356093859132136934859042229783425339522525252634221790783184396192593248218391941108150517009447321554109076254705727183358913764251436270596441168414941351514175527108706533798923713530051544454364284804996275935362543009575887638420403930589165978035192922475943851440432107817902517440954176813430715646632047356135569232023972756731943135717396891056736253357219392721090000393865581073424344773487300528730466637394871778811112271125629703463506733690077276186093641349068744066679005016206870454836652366273538421732116154964149699933465499044651476873723647758209365274134733025180412672579773568768096132292570821264065424848874004679877320411117760747413636509683962855645557289928835797417873034336047947830239904951733300280735055211289387406854617826080007380603837392579021178258466188909875746362642066879813744553899374592220469190123999150487639132917756303847401768646685314916065091076075208773078001110697116186208619175289389965816935222207357082100077081890824652218916415075560870266135496441671755701086294651550206518558043339411886229477965386428457031080367962803967699479461092573075320086463790362704037122480984280075393140564575053183435956648473633831969586956368313126565080831167457080838417954562065314692831311012734792381814853219731547087816351158286683182558988167769095485745428017141948540406400277034112152090179448269449511557318590805244380524168935586778043548038847321458366854731639391680481226394885957331552217579373198662801405379580321554244518527230947008599279746799653871545454128262714143912368540044873097380502699084928102133178341017698829454292603559991808363073343243470367557161786307632070680341141701301862423357513767715972481598969366969913526361980561561212113758155356850744181094074569519610642375578086752706421622318172470274065702340393329279081631977132503079065770060479735371895550273512743609691626755966034218072648665747683490617737651789566871732867023281288045392395134464183235046065237549907496793932613024738796644263467047631940274386124260448572257603819549030313500955432911102444422131020566860028246145882626438909709473157561786551251768578569989888301489112388833105526342713504596269771420525012145329307467527665454587772059298109821729202854378550544073113851495151695138659206443873649269455884514642391758923187315468611612206382145683375231643013440174200710903198831184858901054315308587939740821938983988714857971083548039324565965884042148449901913582512290947632537059536809301880057965751633017168976193211597071505919551600456917435299544974813795823182867076589707650871780014820831245969515940292949608731593006054789281215578112146996645394182068665474785713976156902873274558546484745952179025441272173705096432816102797949658621278939246733641370648683589276599451947949523896481362860896619587053977785017461991184651436541794032184355048386893576360072272637454454081162888292146097661965228984975276707945780687331931962938548866230623365805161479978932019540032713998667772641341299181158231741031345704472137113936200501388641935294079438910249237136194622068152754656303962707956715954763178377192485018645222430218535089825450340062756431387171741812067993954372631242667117988369084470068585620500748942810562927925190499054362163516421286757733743220430686738867030584287105599896478232690476684165526721394577849150549476622305441712037105206282216537692133413985841964368415576678468200782812133181178241723137551233279542937929866453010223164402171515794801669266341393817035792781066512331296012438433330640504914569322766012036664714091187138265401494264869062388090551395829090096586488109669840692950243186156983728790681606009915378796566795622188855582699153206086725446656326506042267489718282660215480994773093872286023579653707689333116911430905212774395115874262715575919135687006235807882722496629847502315888803418669267191230161341244920205997866078426661504106046762826861918767471769192816794322582585300719490243136750671698335603377871589040922869403185915469544563623752612278891790326684935314088562487478387762315818805355495003949887982924467526102138173087901795056480383514120016422248332523927785265470555675282234075917472907262209858204312731915092659233829225670793101392242424257069718307626386564568358945091604656881823600107908889599133210458922836193716540274540418304004973521281146952262086413525916253175092197910142103517540166742404207126201531314070549523773430393141545743303578779763308286148279855924420402723268007022964199455523727294274546920545969584015409290431451089925571994457469890569021653514160480411323403026890865158697000017636498657874898755980473950644528223595368644089117008006071679558737487817037078258908190327258180059981175769988394821933834832341135538058262628034922092067221578124956453003950281781600603072119182251473746328572121423870309887916263603855097458044677656775417867736669124026593141888665131226564429084112790754857278679292011444261371461294766284367385583420254807578437429415154881726337811885344480184572664774233724474967871763035455864790671135258457447024372593076626458436852302345151287616198445722520993774240239975337087153561276084563665089965204552879891809381288123863366235954183221803130466117963052925278516923321605533459467316554550400673459373940195911142659481213138892687803985970068038101690985720772598522984490123631415228857025144590223851708242826344962373914147055620551005048656374209733832947087040998085349795965363884537059362385160305153680896215872703977498313068919300146522969114045906258963078102380526344798934474903860282714569573646533055103430665686067009726839957681377438495607046052154499515780944588373233079962137279460795013335314325794396928417330954435859029475641729794766240802445182647424463796415311244200295022875496122203087835905313772108631075205202318863297228518780622480961994633422672517809205561479839627419491133363632301569281935976581426689900876488147796514450505361448579650931649515024930209101519529201354563058200740260515925954333603845048802212138672805002566301584066230369605867452164532394909558971133767125292406909801316990075282231298343161886403832571832248962986359068148274351465473730187347886193762841565691671606333040801571673710545670051327814493202454488108873721956839911261454832010679128786556987401285305975971006245285350751712523208653096652235668734871441694151889528954457941527570650117777311565518172299845076992794913357393645360356913551267020656070835415181446502323329470341878584595368074366388745415765693675617039841852831798361447269461874018409009418560479667783914761712251855815466835341954529810970731580208478978677662961910625096559500730406146150211826614271502817190721461490277839966626791455154221908092161107683456673034826028346426099375176654456012179058693241086279315987544128217304094000665593203073355886887767568257613277584723075806422519156387715748526395127543819181622087525112564773246078034983760783740366534416596017885269240026808529106284322606488009467194059135527137564051984267116613825809538837719390464431112268407230731793770988299718316287727394814211373736608651823388505766844074172792535441799872305038142454615426477622699605202139402633362403733133411122701721844584229837494478378840526843428695402235702641979536310774483347177481712988204318511087807509630562513867411268305449607228037837165263615094198288789184094872148547088281961481274991321441199625341411579446727343382588886360933620806382293485166824505689289366842604284092037141699118414010498870063403578913170300658809906475811390613262811250193070786271879234792187451167761398545059350816407092527737227308198998210200395950796432326718312707073789351912334769128784953468743982373636989028829956248680912388083740698311090345186349531422890783968726315917520783011982639427515782969956796423797730634549352867716115286589029257630199468792734188884627960279912028250909034685314528168318594830756434334259745230028430280487551647600961389438199128867413743087576589379595321247480358570406645748500608671772265468341309878128608896866724225065513770632135899422369389726295270206051849452654795846106207415668011450176346511753293424487495619864001945013154209003420158848362322074369424911514735756506267381160451539157819715385884287126288455982541763183508935932560218376910203577867015757912760760648256301430603965756553087438196473083447774497018057342732241948522004011232241759187456986952898544461691265569028220975770948931388955072107031875364555565864152293678613774795961633591748901623707149897292581651109125349178727467686272754943702508905671134524667771374201614078642595097069713459268204475769018189487990760997232453635379143508074010360136159500695929531677166178802207601919464208173460047348292039882532288702212873863699238234894248461385153693084546877800496241089066532996320846869172342811060864471063806287462038499488384524384408633351719480203527425183190596285685134911079262405258241878574884167363579053391561680600908326836381190151815638977626690108117781359460439029545630634030862270933305844446824024532554292855604474672315370212473117746335446945928263065220310082938376291750484785795890143915619328165463932557012567532695903551674523309243096926072246468479837586737694859465847968270126076539138588420803591132602920795397339001656053286486222976302852072691761408311920136251636887710693965086625752357973392390219467708763200626117177866856116093170318438669366475700533773876057105098784002242366347655132967352800548405601627610345825284429148546605800193977256013722327321947127448170651767002357547033775985430722803561611744653323312967565132861815422975986381827479013688187552064311435965646521497590042230090449695754954558002113718773840791321716896180874497429965491776762749262409088445312111984742192788313574251170020011850875800758867059093601086449518463859960205996405206813729363340538071469853702705110731507960407159869907368153002576117791620581657928136655580653560707275997612097204981079167288402521530349944798877577307549864808049031943321334238448755454425530349317347339728116938862918287644394752374057531136661573248889249976162345587506428862892481219092147816443661325477677737022023403893674214145676401243033219325574761623039438118550819603210452351850699890656230017499967105916521742406800522562150876738613130071483933173412910247950119894287884868241380110119547218320498594819599691933636682179609802873185735590131822997677939888392729690074620981267184516145821184897287422321962822865060930894479996166077541185150091793486614845083518704621960650707183977868011654861302540381162762578004501765371738264173417635882850392754323584946265788280716533632713851924558211530554627268414101978903477503985646200749051561142554367603835874512388642941703770782761542182792733050161588145175665181510062081932453802517104103416010030617838124754071062787131517676070474094854560601108145874304401872235946423543876513965043371251489624260813705307057618829303022832117883550232238819958132382534912329536243690762799940695446441891195100022410294623972547594060160047603970413492511903489660232804612834288484197699697357379410492653584925566852841140447586233664325727694296219440854003513252990048345162639040082340749633212539282507871813559766485378082489823553547921572833998319183280115754165488007510146990358567624725567446657791155253802975242035218017520488537606260352564103378096901775532841556239654636894949608886788949299114161309052641860995402545280422695402123293641337565121862128818204214652322173701294925848233704169812569386197337109047248805995085426772698901513751835359841822932365870610591326167990096372795270150104006168272528620852152936622098935954403218515862005971650186928650649725026177126925802747991833025834035433445025025234943894875631279335870632624959301384539801870591870276420272737960749533558336354023929747807184074183496862861089972990857985217017752830813861714955925147627022290029455595148558948031722320714000336005072330445127229133563877826323489973630764303931872663682885296505362141700486600875133003251497177884065374718931759268226731759962769456364666364296284398373389582538761163241483718546271147820450262675678552012914540905919308984363312430588828410769909442945324330388521994173598561387356169329138516139994877900852661753156521075459838315144740848783282318063105910987704508930230127698399658622754791143860832917793545063467001415885084828468184128483763053489622201373716035221019231031414438883350131698028784680632752709078486409286718986982170123826559568913682118003762981950694533625669133289549821737777694725438281927812449205253808569765497712543053322336824971171909874000568440412727500860564152315128809296382966845861542793350217375241927604236318622353348566537550476850915725886517053524010345690952222591330474109542592274029416825667841007845623775480063553145352749087772346046326354022326439879454442060448161746687377585610197016115271649689873072373570622146340176983721156403078572546201813267727054484867358187757129843702043684100670700246232619078560609324583682711960004622755432458479129345168443849261437375913764904263495795380574143562857466479313912312410866618857935315546673171180235048054038837200187032076942606987868172309885857049589898720725143532263548151643571684073834901857996613007620088394001416632530580960520869431774589081339217057114036267098935705786544564949161304452847166723207389942074780126915348014511602317988796302987722266436366671290488314592278618220173119847054361135859610405137393929307245903497057410908201303797434822255925410584566219706410101750177361295871232740991807884064633382316927929258063921418952643769537989394580646987860319817319913505201759926645424113152078742715969098382520811522175316849360954367870288717167277623404382941668855457079762507388728382597877324297621690202059567481937761501323018539513856492516442075558205357621339211010577138215011623987542731141532325256183245931774357980729785472065938129390512892949026304594091656467202369533119157912360762783339655776397115258075406134986045845090016046997358684918880839904826413945795391284497446640396063024868476152396521347582199140803177565527512822834457485821126067965058734764370987102857224509771920031349449866015553987702300726272586511053708495219765438528972949321127629904658979177327574320227623922789988340095896962105910390364648316100984070084751170239254513512276362299344536147231286421690781208537755790849859248570630581120899071071181820036657105693855340429306434468488938079296269428396554901742160387531073108694825421433670506634714655056342887548911308861497790279260574059220773945804170403052265013530606048615165081908346461061559996951817257072400261032125392933461573371143733849505373681509459229755549057712049386152565432679400051920464263432944128962612005593947892258587031721477446969916548816109684022300174254181099213737900095505855333452543509423435356726852376099135005267197138799501111030161330983521402884922461606522806694852440418188938892415516133834451553168890464082590941365016428082520200192908122905148764356028766918070257302940517633540419869237795339645121664219858641691353858125872839572224571504880079044909911179544292223630254685654249871178355558480395089691635317807802469220129803489823287884076755664252218974931754670198749274314208743536854800009749157496144738827867721520532851554685326447231588647680130795687496823377131749249971092877574259030572321818345862553902088893919842983672546269203608869138481178467504730903319973922900149676855533478570879556316046117355935924835769592511232595377187008185553860999638565386560552667516960494872533393761940937511204705221434473911168997621437375881202007939957530682106980217193166321042752163184019605224205559249020651611140824745535700357149904629021290707179458576561622271948693274202974918705152792582844332828220359643329640182200236465399364713609136950402247165230151963321126101737150694285573883702447538016449815224980345578355127489673399633602683556511869984834251801560829587204339332017751772407592963017760403792656626124730333371204181347243467262305939283214207441275688181204198353481678083998029959493415145399212681118047425064726789240185685225401914810690626923754852986310399383458195854387705465996920962469757911902719666102408838548351871571964267325759709879760553363699301127686035537206311282688503911745663355109165151003612801501474227027152707816204391070119290515678243038121779173564755855078252838028992466214069636030058717245935560979839891110137347684528012429713444255609943400389305312228375029638816540012090629001841461499211546715698927910360944773571513677318521763792852250383571513127243567010276832313570625848515201298661015513455457869319974556435009398625042027674441800284685998131996174597071118570156717263907600890638063654225156809217882531293518953591941371822814076779004839269295778516002904210831347331922838861331603131118768864347176010460931101062097233258263459136569889718399589523259602054464857669126704269410265385694587218487679850099488194228363595039134969794012908192275935550740391659727100460218118502803655293758106253072745173915254643098275364980433302676823455400104555646360433338809490436089450479905721441291234943173601865841950121651440982286345541197722713232560022380855420291666162441954741462270903055192883051761025103585510789306898653556740969804562726295264160736227950805631947289041997907486369536317486098779435069341593312772815676753472104398270440759946992268994981477947528579581899402537927154111293151766247722229812219060967289001982167463204240357895749035700504492206236664109906694462687912280033982400194040993459990126488686412177960487044150908179263147276181642655423559456455956051124521241607081981490700509455020682660188054243362214823482840236975048289677829908993131944339309744663319347011977422534696265006187091068669621317340462489965710664418693575142295314623148383245812965870469363731762235500939178230424735135027464099401033734388184093904647628792093634230989098006548691194782992141858267679089675858622972169116030624663554305492523723766968223278190932499195212949636293566391664308250193424393467406708021905286287889623789386329113804628999410391530998510331542385434117812399004518523005823460642183552538691341577583068580861467209511823174558958307825910676759738042110792687286828555044625423320096989007813195289858228075823330308518673174724642789087037095823483010264982945020956899490419945212207617727087676116029670930715357770106979342329527638062112314867827201060441217353854115249593377508880338208864542632408222479835312680684308762409394732964073600390370247473255542903113988826168116515710712232717729918184883276842620971831154664456109173264963249871276076916790730077781737859705102789872976298548994489048259437502448183892208467727172052395217770465195105026639514926218369026761663861483251697230174719767543571891617046436443348546183296975714427883303353094864222719342515112372589040346410297105994848664163952534827946113214934408970173108007750420212144828492163361921945539786317647671555392633002985571814140956732363642659826077418091735205488510261913787157257649572567507423461564470153824188162523337569960123422587068807562307008199856273660286172427075565129126805024531722214929420112722471965485661280647410946191936568099519222671453006659522063792122975020839296966329580675241855999367402844795349853354369981204652992790483638839489239898014975649424256555025636287598504907808459281950833166867224906378400052695701743389565678281732012612119216505398421934903817965086895881279318534757714295342478116482688195820743447008926521322603666906118194285188518133107817383880863350948678625955841653936872554156803058984723642597663757069417411360680275413440251317487693133497527094721176372206980384463989032845931807207621572315268673612882111643809395185171241363411607379707348688127399765546483236335689679774464149950101378397670893470204304605803646136694117700631907941085206830087315756374120879179960954838728850133742958798175481637643795244466676914110782012857111433496667135552810739912229085162431217624107577562426403838456930456290421595095265586586948559165964246583100395312357486820906772933018287170124809475402005014346275102584776047008877606840657964041879033255546470892834350787520282926812132850695347742256380550852017840494339330604570508905818283833064869490939194826894214511948830058104414759562285557633024865589946863950509063755646504999149446204901074072734968784214093852908499181281423827891786401114905976618958143215837770638035138367730703244273447621397061625875396120252383297175310156233661751020740639780587381223189840822880242723151411730623660941819524141908843908925634201432780841189606866710066182626937445833762851244220960117581547676940210243926611723809761346169351718067139502043049208888260916962583743593234785379149918473293993135465540108012015116623676756895234144430820766932980069061004223974175433099373122474372965482037830310594772567778458892942278801805853856848108808074083042130769218842517648191470193770022346810859005872832513719515504815216650989416793167768198269576453774554631856251388200363221621421893762992414703729675972322167359898824432133982060664272384469122720656804777624382069155684363395236101721921517503683459753446249271451411385361947558205405994923163512788921428379494262147318215189724996854156047337851124958924500763576400602775982815031614652839756199990350466594105805916923370942865863090566033538291010783628559423692607125499879467649258648993387986696111096747009563556363486307581432840794001625333239961757698838830509885646197639534962408495923068462959359362227942729717627315870741767043928993334668552284935821114519354590270235016385201790592637567016234998834823937198378122880585527411162973731511189167898790438777340848035345976833084691370439232504426228969625877153188419425345733969540282997381379888269566474139952520436039989001880332568482208370228371090597588937867950193895966335904915042746805097268024522413172338758943132240628688667934796414597383227831895602531505724989551507509727922136762587109794386866095349881915768271313614987192764164264506122883613152676883293201644677507512592868416670156874843780309070878691697628235481448249267819285380722003861436230001030727213575495592885555964646598134633436859621338937021708062274485218318351789987033249591839130641966067802282334407310148812977942959631638231740856914793873337164063833035451819769502557165636290641411288649978361862630409339149288950299367970637567686823899945540025107539434540286378541280002413885991103575611807676087875926760099761047903071700906746671963981761911583657139024259989959477306203603128980070181549646405943868757435841251966407401021030387953816549465621940669687342392079874144297785386153498008118960793697440126939424343286189491421757009742153750491180368292274108436726491935449649075266157783244171766415040793981195031092012186758766841704139374677465390353713431263983719382323054326366194615276039623393451697182183792903597235972133311644473243971430710171462201853541212801324286659515686861837403320948237792669273393107488980738585611839902788769936333692055238652970340611246454493708107896062220110358148245113328100223594562939999883934429748907834959630079589279229854537988939795319501980393564942760316096442663364072837170718271126352323561310045874842211968375323119044667416446482720846209286486674623040815991934332801217563269877351859828523039131277181602978851221894837980391932871940684700209863203119489773476069189585920880348691391854981461596631884627304627979975459418966232996178191692312099099708945203276148167129243507645757948614818134902332674327351256604209934981409683878326239778596211742446789326754668170510607894315726727245429387958574599340652066907227312696453392386179679319639408018563433961230959458858555450570505334325672601760533445219615650975010369032943592272938051472986467788796827792672034881537253909787639590625414824259865305331219448245139863190845480988129647737158402208538145101239434304862348050572328878704517401863756113975202637306506534622556805566085957574034912168979459028646265548315665848753504032828311489076123790356198703032640322495862484324480431511632584298682173002292695560313293910231565595768867363234898284423359166964499298307586991649177470845726873634591077830482755475909367757898806563675192734608884156306841917441850931480856882347416302657604570604642423858208065852577897797176123482827610248195528945801091671142190620489589068408572583670375341078852733520387584123110755104572018970567627360893987963323221672808272655034802962809157849858228188978699445496908417565629667080204684577643082312653218996478521267431838552026200132012129526735303164401415118501624081207386461319143549776609656151539172884502550540511033771209840107657007368066871204596826885118411422910619868835432164687360643548053718327434538981503341512061358073825625607587226417406464495576519275940835053349437938252639039389472179191984119344916014922870312698291262840088608370517312573083583395151776316335092327806629030374229628705073371627380415038292788880331103910605725861051354779142726928560486184691521003841548257916122937923899124994491890156303366980304460383636134093441060410758052160213840291323648930504870589889187555951735413659094793922918382266905467516359050496537477740630764020602269826976447958030792438516574095023629004669705161001434676022853282529039557831803527519704407977950721057354166724226651575445709848479175720770655239751887893183973110825649847576460056070368041659130976101660913321844872861827876968741904162591278861650388467555581135471795745923378063441738535302968032005951073776472063145781270283023056793584015938679389442621593627925473575718618206492294827857895977238784329885417557674042922920014155559102989128043556267120996493491541088473341814580069886049962550353821014268026097863026327971548282757590640081107874263841353595217895986598118377432013472049164875135414561931919758950688629038236698501449590630244019608258124073031425921490306280001661837539798246853727451335035916749424208896888439459469956414012363614982747032300920247874061284513994441761648173869869322539526159443368550479896682107262383763451129047568634668508641321067082975204183093638155461103389473608255904723446721061027867402034769743719597871331036735405294169745310683771434372277499529898731433849315835823565912736258014653989092687410088980216885631894954919734598550373029341968853272441890661248034850605420975226376841315102853718960265484226028390996930260455911600008752877090581548261264745054119143324249760135184251853764491236832334316460107634556659729182249901475972631087999498098998575375742754397746312592998062520509462554188703465780020421436306432488299988201940731539990879259338108584624538435779843713102014828366395358057249145526179494608833001617219239392099963974157480908571147706840921711171097330826950847042515507092842455402061804870735780901451318251101387394603262466317407741194860083556469321670247876890323100262313357141511929320131948206648456854610930357399278158438643645663423717781675337395790083597997050196052900678760119412192336415983952456073339856851755034462519426025402726997791514807357328989550771704312982812978807276434604348311859868307812036123930509858077764683999435918089227539989898998859361000435033332706842950060856315988534453631263298751707669924267452301607193850886314538378484972699925660597494487757019460096635339242788578552971040124300504966710630767278001740077234486993314194652870519482829195407510433654507659027196467158039785904728376466338414607698089846289564948160601275237757725589448081463492907239779235984384923728866367707011751195175507174320731499683229825184947565230610393854941214419936343373785298265820359862433781451819951602677643777403515097272767569110019574561426750827264262233666939478322833528461368882724543791372850939648075282749748715849751197310063808389327694197813746791445281768805103581846491080154095938493485517007160873239003699305738298210240167747800440189687808660636799786698798694874600951397049373092418077530176270822998349781137730190913155820130781514381531195286278621289856393114232108039712008434910541265999364044481601263390874073351566489110219588875453869707715727875046407940139521939196370154493007953777454713201474847853033074785725088829458104049586088265411995476232625737835094637949043342128875064193616108800752515142730479070508355449867989261557973898292900918258422157694772197198043026962384025875982180201610055366687111447288411888637514277580529284899918612274416646263978898214974643226162402358484078451014278902551632458698227277493704337064827938283587894284298244385449294742676872011273936474511494381167736585493974513928241320176012562375126716933871149844187579398984405368425535744475454708320715085159518583189533682663652849955776470303929765098987601493635401090318800479536184525226308691636713868586035214990813821079447095293907225666034276446130312985783250917167982100816605635748119587036292222808261626432399233462247820072199096838547321050020085746375226776114419609563650692682960478295871755709498175859722284680514009551837705241024769735256261925544923453411965537166706543304934315673335565850543963777857665853275506051119875250314599057095045392929497888408234194134008253385337552156432323881486323321960131912827996004777827730129530036339695610782736837167743800004793411696596529828532526363013142446141538720405452294754045736478715212840001465496503477053012580752184790703819904406113030043271927592583009229704603802323695981946825404248532739385374851823874458169215478151270416680871702960665282554778518702565845131579071454503949033461860935294635768503611424853160886122348810587489248982505605384374318153870519787704376384815453747783399578358706077265720241778526519765884449094233249332739120926664823263886539019327438932299746173279667102866220579029553637927147436691275292822618183071852533276448955225624187718923845768011657297172742221877037723240552713606996704875011350219204521025089788188029411114803511217768039085389300954481272241983592153073074938607505154231953696109730684460809816623699522614269294685374109160841533972949181669867366192189871659958170002642495688179675712999210425008995608715841235890382596591947143574219094830830244688796261889634008614966323657586861386623638761795760235302139518485337495683505834632915833496392518797897359610280808354852170826945707133516633634583608965239927472601635545912072358094704961070607049878027412917103138638075059592888312187640472457935361069938884712307300330977018449446827824598156866997112527418989091736941599436698632076093279613085729875216145500278639196160227569449907428465901933923987418758136193163808389173742757651665008933334990176126145976555288051169286740845855464383752561320900130475283522334300786692813731388437640516882516207646707062081667340730395154741932008943174023402339525582795313592011276738274546543870341973413164978487744964402708518531057504163625524581263035814863525392891423273183399096524216668287851653000162996014690719530137133858721399440242431057530892402248793023235525751940375161816406097517413807814847761905945153307814248350887308019584879743816509039315572998982666140600721621767805248554502127902574596797406834174863846891478828842292411658305955931961178431165590067277112099761304379031534214950811420096154081480148100550907844387741962861409278370559646882581135930376591587614000369756491690160320590505190009503230492518621475301138933490651364761562826127386609075173637785515386317015501560836465415646087543669808135713933043273395702965806670478426975500238894654797739189686160919028733584822648864138041034016043660486766093618797213196871518625116397862345292080711119636132168316510437463465678249123863030338379532113238357574921234455853666043302564276654341550305844893856322425925056281230086350538608887504692122546474945353657120479201928008199534015899350110374426214467110097639567575159992914118649269081102023515441578687126821715578807370501201704815389487792863270893746820179010525534073225045571161154811346735060060622793917744756831482404509559112335665269058556485349736140799430104788293320345903621241739480726031364944520886421228983257049464048626791118240615798790686893455464445759979777881439331247654660691246492438626635668436665958923379684151318247766317540369628940752039573891703870982635806356230962923921603885459996219317745441963683035209393476069272787319140140232198690615575651398038196774267023687224818333503923688974801527657778867661332600096080990681911455734719085629572064526206335248504815676513939827263205487967584317130133642806977441571945907641305730398635238176426068555128469018504006687658555601048010568285045567279488644729453422925630443569397066246527766999205595405531760942900787216482572648275254980820658004321861095476578596701342704430024289693850353590804397484743658192192415342089006463901029591374406535378930437792009998721499219128220904097969275709173399289229804231722458069920665302691729079619742432652548899756193127715408140278822948457621508881162735323412379668659307590936173121117440854435593818141281318589684963426562096706770167544624204093780562791100557640195229408040999414063553285303076596000996183581954546420428598732868027482402057605042263563909823566564929647446446756693700008309223921418332366822128353022212514194376569377334304409727854529675924180933560995889297991076840341149784801360815206629350982522508595493907447953152309796714960795047525416998748083370851189093365372641580000736772876657446085795156441206079811047299125260762735446074873527317452048866131295000623968841148050270145828606733888290276120055695505429360455630925725603181164300185471523764514720234403025722554207564106762254586941170087597778423249395274359660898774278673797729526507342876459557327005468328730814014273639003109606896893421142812128640507188293133780128152093711461227642683976654656630658757166178899279539340018791379860431687801011476019075572472186499269912664170912600317452209194813013464155716414963200690108267728783946063558907008198514634782865092778315593090910822331756971869133484984324503454545456583626311209787577052369650567045921276803136871189473363611985051910696937410267911821711323465864517013022570679223788555488243962462398494199769865476108232276310711600351886816145519452248660057597275254132026952186598472088769039704137174512457813510909692025170423846769020259084722935947951799315384616086798441252980426839275048649765722452796208818751264787157899026581410066951072060569346233541328714797415046489968661755041475344003811617730873457948464876521457526260300980912379971375795382540449287019680038841825238812803087182035601413563043662892535501015419178865740488540295614403531909911622460111383329118857841486261383376030594053069894436371823004945127446600148916943959246124591026944491457902993040713673598465789096218334227487756506484035861234246659738776159093137242285950895247529664052690096109615836249321839414419668870702138163625156923365659179308671094933463270752750449420834886227215020118835955454458843116994823444792286876437508547532746637772392469129468300660861524973041404894669062345253887009090392820312458005164125022094285642661765828454981835662563976228915534096377549031278975310263394030132295608031999239010210218134516902010275658138636909640727411568747549337127838646069394819412322313210180141028580222582706981712258537720633686820263969140671472596173205850935849566822433263228177525757611592260999490839400370801511255464720426018414662483031143941188354852081264284451426954078933396603664263912847363085621060630048788038383021191649576958583260989622157586892405207839516129460595941845148471763712389483177172365632233707500744594788341255526364508091835854181783110667051194856232349823191887922928667225031561405060051356436240423625132316837081085836290838656330919944093821736243096616615716800981329483722716331250965802499592088994456536268196146526590253110272650376838383267385768681950084339716298571746304022563280558985674151498543350604448219909429659411572058933671103840197862012101107223963945804480390018825419666223616167202299017283927826440418641849697268488592255490574553058219860542167686704907734134141128356382499743693864669658532172146685025712729687358796450457051048236984475069400780648717886637739260963282522011861385386206544634534525901378379323218587659745966139118549591258334024513655822833916755190598984509485705847107101478540033990865795195681031739790755174650363750091899838383976618661580125380738548049153382866860496950170096110490220247094322536063742759870430154105904418502522411738767448013211227212551375201808439789003684182608269700313354911450051121283823619419806003603431774370884378530305849722667187281224142733844598658021401620094725086838472903471122921590404413626390613631655628654357253873787716694950522148706128280462306165482670831147661506464185624320128689620064674438064569096967806773769409126732101236598736761840694111101195020394111599116149560436368386348098946073841143952342599612487561347739102460302989747890477884629751782136011103542771977857521513741462672390958908933728722647483108974958748781624037771541799346963492649066959176927017664299913402657300185671386258989416130412405134394686028679901015343627461741662599090127907982183291770128594541135748978917364423036661810514794718629214895202400917925066170730826161904597384713215790587615752665093336686663222496661178579048793216508695858409640364160577416394209699212834748858121725428194467813137465663137970082679486339931821528765516544281414040279574294973343046490070628739446683921069257766402006428752075660539989482780617928136193478647694446586800842599826695640265373013877845183340702116732655622266895423383014716712935347667826851074850880224297400816951807049462287281855295827715286447278174124070802663653286099900807990268770346732361534061140746884967037192832203081319956131208490746185805058261236975039882597467799993429580376886580712317057328518326244681351739511611323500999976456316085578781411434479087405390784090088287308955063256183251044979096968130978901072515323548834206899448336981270869781863326479447913066745129122262519147161099368711389675790969740232039428417693040008348653124953987610448013053618885368344294650351477485104754341681014079380847569830174696102488857783379340564872964023268112586713400275686043099956964008028277815422618544823331067302805892397620242395104769279365893593955617555417576177448007468176874547680088503387024476714599084702418891888509628416139001098928060080831823393189088167249860731485685451057871617920815086468913896065227974703748148306418974231887131508265259175466323547818063490439041556595986993057710734347663662163288050107755877697049298969167741658575895890504918889701917412387866475409055168204003652623160735813268661097036104772870216214379424496332146500681664699963394052763591163357435173996586814293349977579259705878776630892562229427556616442854599660984378334886734842124656784897113975634822552084365839387710861242406395838627046337378474374783348305419362582743032029985043797966952816220908592993983641230092161282191457556068786681078344362980117392144011824802597925526040120519841547901653160644088003750609525924644658051970794347368547581520787967403147538822434435456193926105764724975770045480502003125954322080446988885870169582924195246309542910310148666822346572088800094006552859649970522322351866453716865501499247220946523993384175665303750364179972193877312097332019435420562140490387565453466096079122882214785889183505606228731787217308768538881060703401192769458175780810652098677707285876887206219002908522483312248608877401545718313039570474656357568143898175363870711218643719897619937276720000688983385819026788457653746218766100311935720057945114911854759333280212110864908926132161588776025425204436516312308333045400311868637522500052567207112201267514916980427037599279930486854452803391846259487671552654800753243620768573763913645201186049037456685582566380550503851523064386760110498753799586290402214663696225415020205643526347647846510843520119725827167830067228280445936717734550638650774800446551808599152743353901012015659367124156302687513257997750376682035276943874074900456927383887888230690769261579164090908515322783745837385893540944210695889144243771749555862174404753522443643300947550696969279411825413389454444148927132979164125768239400250064302197799208819619062146302062667016638873326930662082896745996407183412096862920225975920059929641341606481488319548764649746006818978184888835074229683244960532050080765220660894749425298732404418552756410059476292362385917805022974795109486804506330146586872905102792457501104664273516043378197908802393952436258219823511371008621691908559076892430596176245476577992752737162394861531586688805579073197398283326178656242888077713615315516323905951745522617825744833568305093636753145421162209297559596448467218406256723795403342059423530422056429990727387570489449928458062799202249028206693679436866939025451317396216092307719402756652519634294569118367919489847884570890141690019670816176557279009201193172857119702474537607858533081847037141686365360539852329823208376052371211260845460320578570235145216041536744254486492130624086077183779545507679721308481439721328260924359393447660937176025390436885945436452399923559781376542702986391045755822668990254868638103837932243067343494014156038477004742000120498058038221738015958269424744954893444687138218208229583618975504576425596101752249674702993647105706078418429178279931489264948740825369001902582234982916469974393305197333813839180911521546199792622170516211033711150687456161421465033157500816590138077853701025882078732242363927796289477502534915738060354491072235065560669695959139675907113218939201965197061782361766983248893293315748986490480491176653563506199811234741013906867371361515577797065330498042579100614015297456969802713686114736942420423512042787220264485578009869722671669919991271337668709548082140342413114546298451792592840673926912701505262913415976857482213677157414814257148958408478544519788223902455284890814605554408984432387245445684606487704774433850410197097859565182676222862045481246672301369814049047612784814325839864160350649233180156842865451792340123592524166444755513870298516094285755216440538839414923254648775820725374317892772418576260456935213239595850998368063862680519682732702942042698117187734927186121715526946660570110194007941584770060699062943512635735489629333523567901700493546610207587299472366121484160252919574315185974035018982854274285225405267246792844626174575962013736860631765537889907371394142372117963303688787755542184147252698342266962708183645552952284853275007295045567720216522815016815248337484792081948229829649734559777352891931853635382641936337798181448489104290220467481848008341846985811418361906913047000477050718198712089075401916699579763849931390903801599128801217701722466625798787297594583374699573837518147924400734457829484535168512937100903255078191304360303649444023368741719410049268871464689970977952841691855992526259314542201059463872452514588740519963737334831282517778985590230419740015644194288383798987943508387367610846539896166654423709840172762478726927164433825473207609229056645360569227713297127812841533760312842163710903969099177565458847730911995425439403698264029598524624185229695554674650598351382700200063960317769938002557233307989773699187859843036729960685652411514134233425014645817511041349561214872035265792808930049144290791877485879063856980011410484319013509838655507455422174008277899480686053557209454701786053175449353894926398187101147561546919171484822616774361552779317334393469686998034647198771558039839318456036338566070024348400354763927410021796239295633705250633212145718889847361051859805319034377370410662164516965810442781222548184820370599923150282655030153127063171123473823110586317208779672129748826907644083171049447539053699375361511333016941543817659217052126223070547220508365422874397099393137649029045740460024996597630093853809370543372748341080861031311822236474684813371086143788049685867536262180660341710903730619688512575685057391994333038424285669610873067095609277913751044288510975562655451156184764134378906396108685409624992150271801210264747890201941870595679948916095228974741544313192503846604768634783239923856750524202924310396762660491492168111522606654492120666372313064444526828253928562627197050924153151660754038555819859983728395912583826865905542911961857468799653332090966086084635299022533371487979636109812382866910403071995681655442650783343255852690848736777600798405820553904680754272471244009604600937875042037577097499731071698795440839295175166647144535608008636812510874671160518070967953046211973350904184487658642999438670218443311806581430810013260893863356525365237669780252024026085857614378209137890958255369952856219560193398399110272410914143051846875555368651688150562380643127705795285966522106029914756221765949744538924194441967723275962894938792011011865518951502499977734582523022100880156157907843440446554284195453947038799616200216312228096000793277394828168473600772463571780256049229722019744302575015944199973230247861993657726612654218788785765459441702907926861842963894391208408744463626950537150292046742883231680745960494466194043749436297161591102562562385805804633846384970557475158636200965190327192204473773916918854794640566046226490397977060431518023587333726698683725503626929744667624169830928293485484984971175342506261275106026481008358399132570353979700155493609841766318651882572492356703221806521508718209839544174751263186850317485338311812826746812993291558190974303196288084293274748003792668486787201307397430887772076685762127335600523146748416492741352557017906622506104535956520434076975225951734946020614336354540732445549300679466878833906051628403309073525221346780841202192291999853002459090286002588527686861205221367326253990371624513675838384941689797974124213088117752024229619325448931630426839575283527498302322378875894610980134594512072492266190010181248898443045142086892909070609083347905956386982200107061982685498933982707323751012295603255481303315903103505188123693318012797470169624154407301164959636146059544217917716997933381645967398805837662012221735526293161495448025459235092707791598354571764159566732146584723183470488760933839585279479607091671620371982900335558900197731532717803801092556150122146248304112560007687189807710904335283443427818513073859564281393070127527323319194947581912310112054805868226847844731929051706082393438528521787222058522062597724643233306495565226141584172606021712230804297394580507008674093079129762526312609002636426486367385322028546446007687830964384210864463940965470609879496883422431785269407701374691079817623595525827448078770412731590144309369327691413921512744699586592666345829574214732784089410862006708081039312775199097225930425965983535195570306744434783959785936104924950599502476542606571813200583755536823770406822102980630853889256168381196884629305796285533355122665919892762761036672398403857201587712131426171360249081524085343476832186441606914117938208147699580780638667468862701834899313842896324762903085715769637927006592155346350736879003638961367448293476550589345183897817691803635018199511598603990677880354348812202421484195861538275555965774178965114707832885019636203109913376362137940007850654476887223983731065807203064522111092684675118555171930436624616301679116054459413704419092309159141765783891977578606222822567395334282239887664826916795432675483670295753054385677779103451045694881563124614075910627517497459902911445474178883066401445672341134290055819726044935046082526929174325273308532163998069672317099565597081489372712188137302311108768961324845227059416705753923322237502622614357351093936044079252701471019728909754854167605630256944661532736063621238552062006559900857461194710691120001398539502243230637702567829199564615849107718555425476852451867898914499229099931194784708019487717899912825351487386867011867019276237089437796585811795616248311730875926179196736024865914742841338732991558557149612752233200767705094291649553527596145115994670503003943397781083855758020202760421937849731573585903441041858065011474254091017687473716759668144367119383750496976093399497626887757024162112102796725722081543415708884138021991941059785428014901470263844300300923791314372638854503698898075966027031390288001732405300042728209275833180311642847801595190552155109807009505376892715716170608541082631979962864557794429781654838508252908789199317740610567303082430668804616799303515899898280638474060726538194927658831348287234435683424819355780520785856585761494061741596174337107495965599729859781471802866790162193594139314902914006788188733598520236130748775292521405594620095059110800510519081931734062516019029840998363559338824084535586983188783902428656534497274858683821636063954279964774971016666641441575442666798462473595979780913853936255342165225800613507510840572687910502211921464534310988337574473772577141197863034966660849241848505340250222998908710261983159020608994168178466061471567620283202451078441149141295937144182422125018951904602715933979977882108406090611062867789219868976165837364940377799983513077906362420303893719127452875392659222950939912776013331693630371673374623461441921865494831902819136974972646338652110506225075446477603010719592458372949117887642519958357842479006279496533412655046044702261921783580987579827804124125866189769024285254964177133798178730942919062946090013347775037513025821911030753414748518600931702579944349197177738336375710738842073508080517037638310994530439832645326622228891541655084013908341265771063791807820670884127724882204104601613201534382908107393388804197949674300932808679925455158883900057799187152056863200696593442589110434529544149096750549152311886753661034130829780185302574045450983025331137059351548535666935806399174481687202634437933114490071554596949018558674115800486423523726605683958004596699047027681286515663266933061704730411089218950368405019367942255573306851825508302822541165250271134021000910426360774846508666938291864394908691217159742019825353600515281350604975781983032287522419119676179814057266798268095468168862564718360397355938010398307749173059574952495695380720756275544074521547795805381978321075273470997840137637687998566574659403973582244891688087322394581845107921599984941761788636856788298707608388086277776304960945374003684395413117513855813523162008294238751175570670889646137204492822890225953164804741835750485288069896313465870823426399292545142516762750158725313047765020691224683974301827682716870034623652473662587689900848814069711713899865210942279584102446825767136238082655466290249312630905010251152956548849938674206092798927702507508314769005950552962323607750708303999823919806717284279793330658166228825341912806513685951335301645643653374735715150104421393255194849829419591802109438370975868959511101176752291436127537692799953187855883665483969843137649763534167609101643795924242698396616934834670185662460251608155359081990708433098929069933230478142955886324560830294091543638640717983582247212306948635078140267336274776540546799110101483242614670379210232804774972876799347828331708869067554079656026976007746245927704913287740332303420079247866206657926821098420266604803940308011531328706795148609382676045213258624561550829186238150663444669438432820010167895721677236403871536542744088929906325198056481440166803794773992623604411250362149322494011721437597437103897830132923969140699386307845672039683176037903426021749319677080070986482734609534296940177085285917204164272027681095568454140338215920510131896781392020984009539619555476514671095892827305422186996921709248407656964943624619326594699277342494214128164482446890393451823934217252013965571782541827759453563848998162195371634501179157377187033510044784867113002503983140617046745972780462510350229892363886329870253292934915929595269932243020898864726696401072481104271819853745617730930769463706194405513461829636823409506091668412725070485741066069286072531580594506379429944240690449324637710039285738224894028976079510361076974331179553275595149382293091716944265829576385616936677878918440838310816922201829638061116317604879361922505990895060607445180068415361022824670667712452529678007121579974995522061624154779959306295849005761812355696822755683099185601007896495759050826091660072519818239571159995518563807005659463532750848006784740916908003804623599376068004767904356375109034705342404943597320084231535387235666342725520486996515200588931206458664318603594890727022033241396111452256522208331553261525674597450932883248423414975443503273110076845475300584087523219573626427563398306014489391858716283570333467502687467175003099707408231159207157039119776435745178565773179377242651086981405590077938978207866409515081509575931997781621336448835371979036381657534315765127136579176071693180026077520280845766420802364949640954872787100129638092863246207462696172333448209782315512193589247880700840213044353687560664946645191539284614088487057524528781122838827792302177542463963461943727414753652343959189445017121692733890807229282892358853977065060714554477150933072123092749560189559805849662130429233524100573511766631851353474751241443550340939259503966869304827710838814924162036622186392315193063478690662092358293653390982734866070764501416035761907348278399362134786368281770492845371453508794043126483559989403329275451271303285913699043238158378679274280235776520895575310972767874044483243719035918834175115358285644399008848620423693191512893669168169752301437058986885472280040734695289359775410780629955575071102714169210370950707997739126208685274813318548739467600284157302491103743896703614511328857392414552130517394763114569792461632371465394431865786716950430058970228080272772891365739373508150497494590329786830566358119402007989496173094837122880264697011803959041999734022276199975322301789228127222587964205277974579513208390824324520202484027720939838886835407074314737039727252588276133553129135878840951421380833745148743018873840772320126984451469618710786635992245224954785254078338155884922876923361902516522481909536512815888443187402000776875421190833651738577090674264002665509562937843748783838171467361256462822794892260620882644063496949252722083503451718638530032870489673226692670835974799856972644062530006856710495977111880029927923556752966689928503698780337488010984808716940497324061137554220911650581003971144210902933158235782282437252565829195908935928995033719314590000807233401915773778755883986039303706487374370132981312989292406498369248591270129692359830249799783232313915208820303414646294993107972067639226085888880827703257174944679018816515068337402876515039441611260016104472521600074194227405785447788578773107030630543384722461318535947351617622675773416993270003604554638137030595168513591434298570417284598170082283246458548923831828402650346481423937755960905447502047662427111320893864535121201149294242752882373740863184842625399625243233953436009410568685591245730438287847963850181523050054855167099530481499538814623521698428899126246499745593715636459364691360937647201421228868383846759598130337171915994632796135837988597834431730809360344472639667715159904273611884384998816303694614346598442198866962300034271860065784652602805704766264426908336077298335530492108829686838180983087506830116001958941496909751410239023713306796135652929986395391613324434532036975258581196265730345543573732482606800163043401980229220038739190717546538635981241571387601713326983384224620878582134254859502943623482253200248689838995796442638702194492632453084855140989153452781011066908761053722937060891807912875528194387221207644604475158828526105902357915114150600259397529958183063590167630761954961334151711707970320268736589781081968219548748020494325168512740742632815015847877540338831809599969494654289382169144017245623254592285230891634672362800372718705577966768318603586346969588146187744395004038603686082069400047158673487477091730128324147586215132479361322395124223359127463027000886386450155988760241660009827573798605212409743762259983763575553124978178020555330091810662140950025259707657772143381674590779837320268682028836454245103640069882262236272816612238914267982540781773516395603321502162610717471131382878579645007823301042611827623614103917959927354180581624553155292360406311997285074379269632231996116262567387361505294863015172888556075556291432437893183715231314501416683683926142858047614854839986137415684571606591675080976617681822919086017309951946427447346855783754332118087326488057033005313827863556505742877856946158815597447440096189879418197782444405753172079143362567358909973720445913488689593471294233506549424297177434579331132671300763055574739860752742396428761596145841086811353069306754174707945638161098667847327522936285309378443088249944853758428800987630934103072406457869387598017247555285031598330639449251681930934284218423538839257248643166947365521918454461072475473689591272648206018498880350509764132399053355161182105460672274191820536621716625790981772990302099037240579970058865172291651475067834534496106071105503794214816599212491714480297165028564532668311954108380979980004852742699553145817143955954392993454717140767764072647362587223769092197193988412950892902851717764336584990479913819786897411548766873134379656046387716403988144136552648845514622980058924706427929070536056580616365659096391155138421368546375460952592071549682200758881321169047681261789620358976753050410982503354434226112391874658094277299411577345450337409082185508119767739951028771751333700649989452010390638231735386977388547021114478155343539549488457173783787878391794664276366907927634427298303757338298450748795187874490950484094820746972203078162385738592775151277657504299942461589443808153254335112917110184382152687288390406574250438763693161579005640435639826230518071723528887520249628622294983611408249510273134338247653742611243318497196939146834477736056201424090227968923851205896166967594551003287309875589458821290085042693329251765488722050462501126293868250626885405596932250261348881174674183113947957794923152089217140608426788765025315167544074375107911479857584274733631071722156591252691930968535865106681431554329704486725028993331788754950399740266505892099902710585451830493123348479118740284873343822082925285195298604680778470198329840978715156751254984079024676203945114451328802215763399093244818573052328466896814911491792831528110368214842464126527787106615611109683137696740861878313613629486026870300337002085844856551131327067626879040509870963936998624362473249986440089187336196329096974817956686976593661700281331468781914645047533054411814408996595189743452048101369023295780585365328683070928226296192161939131168011925405663973504907965178266453130766380012371037788689310382811067054822807499365017285725277046480836641028414667716508494746200199513743841076369235491748656632217348598544158402850971981846705398822767933093075863906613210534281627569561298928250905761408582823526930129337241133892067382916077728132050447858068300238374109397971593675967562796342326068035555220539823963444069041354631617636529329079645941046188526949786279399320784385895592824807478306465601254642897923309853216731624998939758078326891023343458676236278834816145433238521022731340658251246897898100727089683009979605311911069237027052974315388699298441185109184985960563277555230596507615802345670098631325938173429546346499829945054311384901373402947897073503863494107019507519137001691052623541954515272905863534058447129493659353679769740405119723844063583141130207901630725706852361669793424615897477607758988770944344356683728183200041864260622284390183517375873521305785649823177356436575340175113520445041153766740789272914445606738840484529469013718098955500419345980006701915477266170533300500714818009448777728488313473273248863463583120907301296008035684784147937461178794191062176082753566672775797067678824171443963874336835767748345656192506758942515459237696000931478123821715164006879144377369465483352118397554628031350035142021498735308929340958299209480698036525801018304027348833435913766833902209769560587836040503000613556155975199601860011543512596803631622462382450098436932322244064498010065833685549580274242948956794796339794274174766946782237023671902907444160967071495800402559108530795681163289984997775621046835819870114932937443331978730189602604506841927385700394804052782944473076991391423473640938725051302943318509578230358426115375719696900350988074060203468760247249106514346163430554297574877607533999470380757160869062672253242179297287623898581752541030831146053845185095395209279781306321088507958516569987144327470157060820215773340248877473366688590586265440841618756308475146812140050554802070830061464418589828520956792787026739050713798105102549152813257422653233145677604501209184331735451507194840968707064445601777060580514876006094254515266173384862844865862849091926688348378910679832926786149433402106148303533401345130549028876919352310370952916260566691953210070051802592211197320804509602927796389974001955951429317458158980072037018649004416778445136823217655230201874530224784601689226983631990017029929329570120622885178066169181258218118865139310013147550311157691041359819267434776639046114548080525156874575834661406807434601533727000304103434506249667658600039812604004385254775080112749193302138642548891353302232713902748429960190538089223749869076940603517016109729095100232362662110836233766340657103802284578456598541648049524309668167793828003218878626948815183660886936229687172695888220818163430001856049888994684858973885721636227902203812203658510305779593588002322756510582211098345895758208552886599241494685311191856947965471039971640291507869336505104550495397740759800759546356234711805912650614391590652628795462039600988407112682106855037354668708356460030430946969285025068563157075565423244289002809580421666412898200734216203556619729301216173013444988110526020356405889382162812861287634899798289646015789779064458737209846942398565374301311246228755890831386489707814807725308640148308023497007299596161848786660031994687628476202506777685203138275313957844095358260427054778140162499662359011157334829026947616521830213380108921951901929302075259615468801096908961221794748298435098073053567229418632175617293462625918565700460310127106639093233469581356144883385865540599048644133533228329653945796183749790956619369144952819568595735703058827552421468594141363589475210070928657630028300128480453109750597399058615693155180788107981039275162723647405057798981870450051343447637510349658869568428285456695750518715162597282106521980197305590300231605784228789556333635960870364473191784994527792210081985671714005583115104314104443804707498693602723490801153922809516171637529245049378296774612462414887325162240851718231606884918075402475183868113564078821543519133862427512698929864238725635498336475223280940502717290866300162000048688952275564223035447596428053253719013137302046854212978712232441817172977387710364447503876622951989157770641778700866122905468328155778304917766356458871618717388858690765559681102698562186577220033689001042342666865795852849276909632326247278228359116924999844840470606609034807353010590837099974980353166887489045882824090016964077215483738355921911578086645340885560195253549313200432141336045239701317809540218110139344164320176403912712515068555663206087007477852976472644281119428674275345044866210754372178819915513801769185659593760537314676325780720260539671173235338033519510247335936335428336914593543888993631004000664253744768036409591072349675449745739172611868569219113751388624254016997659083973303988453962176731997748058304610157610032265585208580780578713467819826710626967342652034168401519936306109079199876024062257689190069226881078072382307198290031411302824391916060899476238421927260284971129901002185253437300492469283078559018428896605770036707863334597105941562987019079121289894635714440090973724505244412571693671281573985787336196078842463945046628667706220676423074398026791161383554528692134515826919213607900058169559135554648715043302389673122856142656053088059906448934018567796630252652879571353285836419092616535566717218741908437597487230561194936698921602813384019057380392257522835667809021824575285781017178642719213986574214280467551136986579668734261980460341815200877098272081965095464350061500993328979539695844583606250737874503777731581043724442589430664609928779194914140808925884747629698197022419871487995822884910260943861267385257967356622387812200586954954479635148661232887666817248565520610178668219732691318948958307757133197044431934860669721233867567593847797580332457454460810869314417205309083531932452373170390093592594448055548285580955818636240641956181637668172935449216275291631086281970554336475443073851437022185179717113040065626731838256155145235357965737612896068995651103064438463590502074623427972599774124552603296509617866285896300390424410003581145560530024954056114893842431599501897257776857406218749756082249809543038043200082211576491886265061238611094744822616095562594085174148459978858489366346148940949688673399569883609919884869241657457955293909130969693056847734766942016575698362864831389004086439111491839326874495138739677992262612651565626427626205566885755773808992290810103192764977054634906974833823895942372819565038979654390335934202709939532644140159355545797417775851862718367105369939309683172299031663425582809608067046532378585165359488732124699292074105051196880373948847446760043812433738687565450619196662713336298386116499675814972104687065070824112855069027861603725166323912372631963046796485702205431036286890029766859738441416566216609564750650478371247049526148035058807639272031719096244846002879888951571531565021188397349118811488484770806102528414000107133512039119862417305978792589017831262701468518999891745871794316202485759586340550026221194050573533535832683475097858516566895784553391817271249566856001568525652389193856696154099109502764486307124677269105936464421348659164999947723879128429721260831330597021763576653594867417752730378752419940214443054218464504356037282091049905144079954358178609649946114315123490659600649732373782595614416752938289069755432154602749118791058130306233431893698617826511198747546305059854333772894803725176652256009460984031610996565608896295662943516925140830391246448880942273822690709580575753430937099563903498913371021930128823479341615826080727375760210238105292190682044747787263858484151989860081703747165173572773200735549226148648730491014921440937841560829773524618483694128110774829539160123414505380798437640606380249163429023364323347761868140663791508122115131476866587067536181223256730857909415058807012771451825650165788297194858380443954712465835614887975088787672446415304712625316756956770624204664764671180887773305681874796369116269872236665952628920937169333635932278995695103366202147723242765159524742996336828367181135773423293774434390882903887967974532693959873061449854274011755412061904626714704154855436820023422719518600260981085180370872056154164900669233988159394034232823593252345543891004805072814320018062387192652885391825527724167365611915154736113100588929808061214757787284227153537891668548514881496431491514167558203584066652619419533039004980525901985371785033263316411810894338544621600786182847213781330524308533098520009440018199616169753482060628505023188223543841938859872400826684921674531428167252969184015075257726276566248185862044601337191347895919406187226267110597362328007214291706890164842841858528484153671900696104492401573546746422070291337561954497138598777641794660491959444389403941780518275965701328492235953421552280150785307412151268990552656701091452564122027609140959173066520811319078436488326472517217498087212884314894876090258624908326454451975969788559164841882910902887797200689231185323698071406314973086885094959909788380628146769440526430823056074436363356855264235335234289804686237236747403917715759961106632685748880830542762532788129614775426759025658888331742328884741725018316477720219481289763254382561818692950329263737358859399517811029423139893424777711373764775895361445359039463043750657743420656406674023333389816503122386370317832395426424782812802381342289344208299367766106696816403589410460080789313108927086168841714894065974486199582638420465194302768976129484121696022205307413289811981714431598277321073599235828826593064390958369971031485944056540653389817800095308370411892010507474154915945779090785378560027313701453627732191774745036582444298528854538899926310061103145254955291271654762737578409192300428029402893839394493370066326957236662833193236410213337649607429563632071122014253418370592388453280650813564655606148757434411645806410023610140195383246944348005111309840985544890417963875692411488652214903663695532008408635888840810132543257434304932737907895671627124686343452324401287352661490550260515550183417360020830569662360819335871606570988429268236222621248319668413760693233331296166819002542865488161171054811078664521366651538579895873522800518551582331574459431472855723400350705446551508180800702060697525565068046051520273460778901797699394908462051320827141354130111648092383576857380012938879865413583825648981861547753095238801284276123528698751434634886975594255165110727050274783745506113530997923485212600882889846011311462991820825802575302409152813781757199814403229335683568690765715646981552514069120322605362319440004537554668097472406577984382628743134946057722191115917714064800771281180269950566022198096176566227777409902978549222924252163528889991207526339785965657844160337798026491837073975303478468071116438025923968653368337034566640525978623826624653022888008900460004102423476262366705580481526462608161664023332287172837944696296141090649963892610905446420084465562852579529875225505702100569918993364421039677557408949638015118794153671983788352427706319442492792066132912054917900005994243475391744489151775041451300924440169567428069973643626558258426264264414627860246299452704573257921098056081705340010960124445142450177215032510979621819484044891295923040353595916658725702313824100819896443310667504546250810145451007324800479510149722027818221777476874943455967326278527218267987363099974712212974095019643128797457707182055288463135421843047167524531716244377289895451063050367607664785946762892144621781562573548721132187077551744735774684293743535673521918996006411678416228931847326914499053276092919064938869380529040226486610320915914547071959363828112986374032741896196605528452532398253191412091728446857853529148256850025148963378741097403748273278214833331272059853900118806995171823681551280583906773387279222995388654508438486893079613463014210734898831738433077814322837815299305753530502661263489696715785137380974443994895033142317792058614703761741265142543519788500337383705521648550268473702234431987900431227394323337397786075343398444183022359211388608118930252302784393784182924769530409118924713387363375753683788952846871440542852930668529660826750624119895116350125038558691223318721401022566068754659079052369566823747546236858200318812331268213093264591975182854441153154664192356402582635104652662374265586082389470852973414218089883999892147266679626016695000119888982154949586309523562622023532220771847505855252181456964513593524061213811679913019214664543133674493822421653508474521364241976955633905463537980180173921901591671071296408169841532680527461936536559149421307613860673422404629170985762594745422070097833051183679274291140933595775285878553891078120098117065195713590831892863690101734294389314502186164714161108146266950848967135557543625736912746332244302868063899044328041431235775737168043517622227599751572026084114675916953650141549289178702993913534683415346971715692702212176716658133022951808003818916608305103267185794906943186539090131335987091528673930921823880113332373709339131181832844842660669741237118282008411582760352374829830480099714072449263509269606484614378546558951051690882648299888186077372246766269109380223941825180412573848504506387514841736706733341957871895494918282895543634907392067168948757952226873279347044759774395166921094224606923440395345230897161936045208250664319919396911394556407333305811911802696305682367090933216586083738907974933084101062519514183150567829309423334556148002668651376051680359901665757307407067081275673316634774858248150264735202889593211842561931910707662717939347294699082224090648977884070291788590502306243970640272053618966524370248479052111461254147386096245018830952529742201551028086703093335557638371517159642777377739689894409586465298453994475731628777424840021411921685099232497152633931060027947560096980584811241233075024650488856457831458400359011602397936012205347514607281624376834751839727319703738804615332957350917052245571604917125134995674391037779005510107216823980392405560065247045161189302716226671236216170439568555510283996970878924817832008686109609920564670575814902946827038661647049500483025535314129954761510266907848141681020407960627971438298734034956987116781656659587733517041182659067399302197082436425663239665006210296226903287394373088290005253235441629630356188508477786919901553398474025929578347642796882854697175005833555977832819798897098900658639034461346592211238132296435305262677340634213936044349678438114188710848172720635765414792744602572891688369167200629913626594523106387583539634664959750937971985995263372191597985885480650944315843629966234975163932564818457078828163272940623365519231083968948887073262074882252930468295068361626582138935235615884520756719359025406027252067148685175500981641822601194139011139247520780875705069046504107036591176312420106717633550683591297323548263574921427039991566093245993877223459824750321012581595749371606444848346019336104819424919669429084235295303887348152342354182130086646386960884340251152612276373957409334838380748621343766832817534462795937663497722009215881795969403496865912019722949313327186672067123641044207683005280132954357709773908632211737848937651262132335668422305653604215994346891390731103992575560239561247770833983629088557792190844420338519266875672081047856596434121029502393224620195761396462073265755716812155713633280586303053884039485944337229637669856927082181447170798499054983951870584447134829750098416547923524352359493100453946774847003342997294358050582732116593032906825602476845415988466073428716429998471659571478297862659955777198469619007573371564808136992103542857850138192098033349671141945667946662588490753114999366581380010525565581311240916238589141223305106604787788445406946034686362618871551906659750278076370965243595144053730825831874611639753880922573061741391636522695521026778679298512144958340751887864804805105137635388893741041549491863324455173347516746038572238371546798227658717433399754099392867980763854908713795096646559294731427272809165201861889267781431837400433852550649763354914830517183176628170000955911934667380056966157733598218002804568177593190516804931400162624175301509497984348895566762946135225236904073949528506880142500529871722432042580178967609219239330856946205958124887631241089559913644067661989338812339216316823043392277469585862584553147694267133528171318818087933830575083077791663675838213546766640084628102008254533694951758507647224528410215439682298273664031572736334785360877099924089068029497729223266719619732326653978288707119753818727779748863209922504248986092574037918971992388790912323179518429467215846340222339663692962286433191250580671131033758329167456052986765537263364549866594933377692074971545681846350060933188018198693737713723647971423582416160311933590788299514238555167964918054037403553884227947053878700072627515135900202631216318448814696148400295928202824256473752561415344970602751947900181612818113012193036642023435832376649260659668625156583318700887528611784287757261607884979366402593090058342659690444311677161833100437192315579423140712236905453532399070095018679829314106768130103891849087251004674471181625010511925238536645117610034149827965753856270386972435821688576270336511892726214109572588563756896200400914713738347986770067263675583305085421810265692996833067490035659131143737707243548398780669295380999913920419330352422228510799478742502115638644518821141221346816776105107464869716063563345800651739414713061986280906873083209668655562823608332337989024692848533902164182353882213202619423588121243173934030149995953748055092011975044859264493853622511125645138612016620486670705523580583938558532285742066787217911793899134830701109709551397187388139458632069344019885904398470459172352462266018667783297321267694253886900938521861958483971755127522128769884874492795269369376837337356196334361011143888177176915034326549678913353014029150851456823085479839784149842247419246515913277803385799387055307975615147151244938903202924626425542867934567323984419617605493408654080860399223476358596248662546641474920229211062801384935846581736770300240662292071676953236430182063021149510729536041299488182441015969992887473289380903309917056954443623319290325016130723028927819126709533765829173167946641226507775338109585161634794514297710154585932707082842612108836060605820658529120090329244640968765904578348976945113745793915104834231292447309605977226363857014321886317509626526841595686607235094383638227753200825968348081573389371396665047600186226986178265752937824703652231836290306244537394177948955403393696838400752744704548322640137776082309130678093694339842244344844252273254561049146417116069560905873325812167173736430551050951201712547404182831804150905392891252909617127557145839454892653507758616259191933756162464403911494369473211493384956293694491337327011253719532878001715295585024477717821646671869437104177056915961122742033816202731269507681775689337152572595849842464018070812086181555633676271940872969644232848751612454380770257337603870281814972156765871608429641319190514654789191690585315783298709508955048607566170855972161238155018504404684695453693249909253637437935261836342418741555078702800408348761177702942576468102831316605358272964979101445485109089597354938688320475091815443871659662039980117393236692915649862566778616391763832409274088398452991009601962121520607123001406060191587696545100262871447129018548806308326932762239817793328160482382068694119470397766032520603563831562740574052403299528995746974187313223755609852753026277679847079935396501018143288435702641568633289109079014798130867502195873775975412331781663847938284590276768001910816395071546697494361016216888505973746685689866637430967266202702530788663606176130681267725571157935604501786350834034167300486352629813885984134092332501503739847659601345837067334016150427363154213015822733071816034260618948627402241333438687749214510622840042508731234759119784315653956193840971775403505457329982934007845542336338003797280808455030256644767950692134083734415007703323838803007747175222636414350896319554414649186239716075135613321781430422593189642541257259306537842223249905273182971863782391489832118302242182348084737151167073419789554822534625877646639421788414775426842991703507140322230869339356445855054795140740156855005815879416866482663816820530220115487464046126552251855985732295197669566638848495343731116568472392147831825804743361936545376552759924689064001666871104941301762841822984529301055401373267298648099209571613775011379246570088891454053577885535297193994586933223011870969086427555971824212883250374763052173208215509040897895138522673251837962445090315347585706590961919523091867047894589114708652016792029333130435815714176260394750494158072085939979727904506429917925846916618231040609577893815586095223449112307877791542200838097242449382079100187679841546389825316544541182998596362607248613136184480751548096921639325620725971484607074456060162284749142574282967072250910614271594900528144220852398131452729838053845535480273189403000080865727479211502888172140782305993342472969717892324585419663662967376990554493532275181734331871853190178223649001189666092812551104438008817685737568757599347974538011621448658840199739486514982304667164078063747226740170049431978763516887831099597111108947969382133454336054926049609061074999849960563096955412382312891910836889901678087640313880839595772173282609931530432549627339874977627215747859089124749364053641356620555169330694920746270687160088744053767327050574473905924689695248268305778699336474125172768006878387783040416140274480613178087603623634708904199588127060261896746779101833782712252126044429491472641112190620351326228821918449946249146178850084929039501648777440192883871477295683569069186725175825592745158032933000574819314314594039581915055393044101045913333099294575709737915719521285093780449057866136299318852855167583066536986804327886854376545966793219324719509849675968152351642347885192033547770518101552698807296271356118728030884096307198751885259831042721045426731364119348460946243382532865099863441044638292785044517964263987119965712745144468288778110646874489312359066546005053134578614664754630952987322116158229216593550478355152712927862848431339377128907217607912111026806159218517046788655297468471558934590175246610871107414126662929301519842590078492428113630953664171768150553689470716985305925397839111851287100795825226677525000936231420487313069958954627699599489438811477200417679296833337862834685765847374635251873840253492410982940667251850812307322326975861255212897020890088264988733665794520258424972194983918941802997410264519003498905355196512337928751186003439340539028512848542895490036772154322869210587638780032008918159573979679985882261467699098995168093990711176654714544601655139678723224480906784213390751477609588072473151411428032472311093620353822720312242514274972834655775914924478274083898626626746627128526358946053969068592612637103159537034316350904726955510056336324422316751719761207754623822603935541985540911724153238883346865603401253905975432959793758951680299125804171379266608989335448376014101597419519238304498684242993852968664851248481110522881368940654944017708784197471569519175456942176063076122879994869725838470539792196471779994246498935644926422391921282865506288226801191490865400337065312388811352724378989406915499737385539271069256226599357630326243072982976236020440589652786278498026027094304732238611754341920093777738404328257672212537210533493568319109708319943133406498228056384104317163609365208188803194971123343915062693944946805034039457225418762652557898347231622061422215100812446039987158620364476562944638450639962314027574911629239692602436083462972708405796498863957508164019580968051895906109529172447950040920283979630487343884802299001956736795622034315804783409045430277277876533342575185533251314325983792096444793838731388300864574206577379639464502408338779927989309294088439992044617334264449534351394127056525959340126708522143096150821017224002186352763476434923823932782629320516347975240276090590875731897896997784285930371358595766918435438783865840261138334895578697618953345781080953460064476489680550744231954566385317138665951996204354463164923298589808429564068872314110921896494751458509822357727151523355384794623741377445666356156022181542648527350477835937223194043888919250350352835842580914440602054293431911112004358091282925562941094528857090230751536940129568563935713193870772195070841726050408689768224451037838527095461471197949541547379812403674188452687015775609667205263663687576181756152211517797328247717105933273826344508988735539363168396317835757916994792856332070629346029349199742771228005569877994637893587929989254783357165572787858511391451392902417151155117291309860790639174919764646496192225490573259104981068658714962057785088409794599335316954958775955357374308499910302622747345671080755104866138806740222399016287334976598410578218961835477445605320963168985411092262193428971740818984092046010802104640094468102660113731048417898178831899648688298197131579960402437797628163064999142928320395040667995172997118105955882373912563440257990126150543383270860301382860130690115457246355966355139290968151584190522440433419033426239445819904138180736357985733654186500172938862266549660724206385366762673137379303751391784435612337204796479232628242192561805485204976990850375463351559477137021446709930382527688067325825017688999082045505113650315375596969083186700370073999838485143029202275182659771286742094309407678574970738310896744034068462088575104557162069151333048615753378258785239587891004993522976688063257382017743380175926788833693771328092846040270614642116007282805715573776389686363354744776982979606782697266089009493614709359413686842922593071225035261988521712520195494193176619337540540550293627386272098275225908390036915978542601168360711102644148518323280653014618205772496940875074940739920081654154352251547746828487594107682736140247014878969683362080235613608632127233718443737595144808348823880798082215071141858109413503415525094219693876057992092040314440165621373422313377041607373359091401705115756522443436005471859723624546069923399449431722085541141841479339548342884063664090758395882131058826952425681201271692257713641189368088877778943667341037286318793689216953680134685796526792947065878523747897887334150981676027673026606835206334813591990847325083784307953338026782447172458480919799267319284611094285196495762283856632028361211849185223366584033901167077116928614748374538651813007115030949112466520822042640415678063688538467497207228335651086858912143719867096738148609089431925720871422340029085255136471509452449793522971227027369260676873261158761743870419218045884755247358356465120811038491374148449622725090011414001627949164791734375558140366933820198571824025103136669851842139332757907737611874272955285533630001492230326020212517029257827125422277210956614903872484985459286804145611502257638089793647328816378949557192562631898070713378067604374736816758893813353961011766876001010115768352502815198558842945568427133900956227881651202611975301386356488877060707179991310430564061854651508642762276494779481916969763738281051450586238394347810483042991263137133423045164411735492464158726678996532588844655412864771260435607300690321258161342131076213250518411128593792751794207471360550487944476035870014124027081803970986378777136692262885933706260621327186450465365248730409654780507708692777353610140691637751907659121493912121673160301858825389371908132583217163442081758394334847330873914889997800869886619585630418255214945260829051207276321923487591453136207092342786701000569878866703898405262017294331612008588201994507759942821788282780618055308405883355897712308972258784823597239318580015235066949829417310160775257422535617466024769825792493472286731486966060061458273011264775225919961944754661602022429172709049884919369163033705498277251315544809075645999017064148167324765874169595512588729370681593594696607745517509390594807330696911645486135912572515921839797158181725013081676655671757099785978050304505584352022983842645249907756562794056235451937924501747497776706343177133871813403759088554999302096808448623449827608115657254648092580203356297579020517121140354224122286472256434006057629873251359430157011476102775228150070410282642649183440514535758418262044551932424013373118459907650016001412916929674782191906128666738936868966218479791822426592650596150808467142857766970684647914451117365735999084791291584371110609655878895348056199646792720579580241099610236889632246622252325161301334295219454842399144178212699278497201553313375654982935646866059601349478426636896198632694370487015151391789619213421465242492332418188438649149021374354973629269698371766324860379464955117504210467651404126295279012875751775231660980991711111684164450571910815070311906861449969417389402054557201924083771195476550413196612727482857755202433505097075605079070543316639877414398865805125759068286618062907652457375932720031012112053391105579721365463779149760205278488282697821280136826455056835040500017445003359554917264487061556789137440894424044697596133022970346989150661355754050775383441772938804461638371666432654028109786882887324861054748850766423841966969161792900069315424802199983647194487750981386583050706064918683904135392823738210749238654034518290367822674456725129230023222174576971607831388164640442421626596403755384771285280219682671646699600171095721877316476962573931477876188496301314311405004554639710769073098695981040919844107402742493789030754183964099850860914714172625087162036981481069061827073215736644591078964870347639033656372708418211536137966828751082172103831927155631312870627298964645745537554439089710964548211507198312264916769662250355288452011070201295230614481214425800724504342348666560523190457883605923389466825205309808005545778762656553865984190998993587748347407952659047975872726910826208927202057283201867267687156024037902632393210114870546526203732968810639823503629937862679000197618356589483611089871758469936197169814238219890559446028277942266492600418271249852184644762143584453066812931166019020657179257728376067150428560026644162542518651937741421511205414370725219097867766951906675249251775730605428630401048062884581958964190921374044179740643951277426705971881193288340138283584483028464037112211380517178670919511170242813059554917275844573945606993022018207713046365392444030318838691869449581446760261559258027542122256617947017634258667087985877751130775661580275975925748343158859934306278723150557042677322396224527018912077684184147117352643641445949122713945906406199668482744759651859357274040106631907082831768402446971314405609892204974326348258548181484936860871764445714384359653341038173659276425314263594252041404942344740743045304868699333867064366609549574667722589563841330115129869025302361851140622950579607234882667881036900203546337880225577467716203107499714713335165005392408937235332029828980756811495839214571457296925907782838595090002325123194531281206731692570864710302909290017468701478559713199874666409595296744632024403901550303969369723096896173904798979466383607214088445827406120738534919132910446653187311767068651805336484314688419686565038587147449338145595456485792765823605514381023153500886330137011534823959262026699781500270828077767270599029087715091753276788337011293278576119356900571927426353818190554822850986855329425484045538115175431141349848424723919503031781041920690596403009693991058542554868294498813939559204673624993929021587393977863302515381028795668651868978923774261513401004350689396075240258821667051692723584014033528029519291676697663539021776721866448223296730948184315822252215483394602813123802362571425395002173889818652538811534656636583395473951586229813246253081583424020577176373573386083125894929213792374937943739345941127023324745837396073753605120830438348349460718512294672051655667328418676986213854484694462693634759708137029822057232709397282715083261458264592446272515904482399779796897102965505231826612707370563899335690638087973902248943546517425601462676646368765161517326708589645982581262715254838714647277005882614616310840760873133402327457823485074673454312127508187124432348965500812386750774118117405028054437853387895398454563896769666557340026750706434746302099678411141852018207024020585913823104764193270283709335189850619284742109403997831368339730253126593340673240426053239187913190329999931896406322885258085102448016176948749741543919050094602101735373089394841856097523213521896781927077162492573845569035795467732401229128501333214969538036796074282185118368709794639818357654556617856945412855643194753304649894794756586831026918771179359836861281438661039799342689888663805444688106326950390346677887111765169991855413535569699936393706459842509269332822987449604200886623116198803872756396425020474102584983875454987857761733406673420609947515555851727800032971865040203746490792473137541443288755781964324284253567422394682038668552331803496343542280742857233411841391386181074330608119917344220156362327842040586133622575557943859138309013177802244197164408031854574994663314081521314972810899794731312584954498382662347467260562654611494443132089791714557038785544212494875062052601877638100987522231596039455643860391731233748060015950906503807922577839544265236864176638754978696857192034621554639389708221543746151311836372011690886205704926883776684767153870007783990897654098008388870263422198364393478759957751679785725158400594063658912953939428888344125353217651864456666531984406856212569312567839331648919415365602977852182916980023894527345914086634106470516597284538713084405371694586879612404173976424722954426711750075097104069814293781721416683191839375416322413355554370084682806701760912694454804545691551401805638888521257210348162392425566189821276727986772659595684345677716231905212764613652595150366706587104665181875732983560495166901673367403596982778218288113719131144458124357938141882582237453945911171741396606495255013795870934365645219448044357307347243355448262806048184313930942040507371208255780625516911279236197517677428451754913397110285515929957849912306542403715596585084907671639279074891292479388429762694705763258977716440042780954305906874434139228017403291002926002812630629879012070731010675759747264871134790802461797761222925557403587886814293560100755136094486247107930597338732513152715960606014364138086052328583518649373391809781463553462193832129816723862919669990950702050955748716768595277035404472631061295214467034614435245631363727514625270916360122980137448278289966242380911662453182145855938458246785934773918904425584648185613041660345425182731499975232406649213034440929618654096526583281370769559226972076843385261813423147516646343255317646280181623404507000819670138847781925787444246400865826483478928576141999106791987774175511619967322047958489186894343981281898292182647074773400286892326202894341345668180794331390146790372522989220815030987625772538349331138143458192113413856672966629506742451599988813492110431524120799676754952325234597627393662374849194854909173114088357770728907363256454570555705503057332687766048143040455322018298299665075944419383837553265843270520238724865752205340978564725513296641870591830839964330737892042657009054135307143217806584512056528555303438473195563343385868873384525178299447336591088570802364829438529690005932257790352356049390147178427052418495620945098432080610665182431807753392786432661435162352427743921779261330567441280108750235486519476123520399757718233814584089242383487559224386421448660458513846788719807248083660287595488439166463092989965381810874350098740348237843348726291891259216690677917771641280279857199001979172566866803338869732060017280273068503032899838225672012496347179258869637771786462614599624225297552108882397710409309512923376226561948719261432663294550357950221161184322396822840711231496490904635427946350886586958110161961716711772450966661448561513545083619276316421695472468939991899944173881168336972661975392828473359650413546842934784958217457675286685209965534240135951903644954185767055709703650314450844324367211778565778903965288435865727987355559647301114639466676355261900839431232666808931680473607170737714785695960308830001248022942496463183892441763053416954848263282158580246644913505519816800922726292017920971404018663500701938354731626708603593428273516633545464790176990865246470664574953602529826792233731808242986134616578960858295371364757049669731721962355806441923278161544493799243003432301463498126010233331641571662027433847236565264273923240245305512399537360709954473973968769892901658607225106622435365987520719367062937223995622351064827370678870681737661832702401136225022577783195762031334354514203477573063212448038337124957331899351740776642919564572082310745085283367550070563691838831746096213506398807006071836190523221761737799755171670365553915208770494768703403294991100625848110015405767803824673110233583440018898815008302142141248835973583203527422163028852257430251028435730152980569986513752439373482235507645419715297033121532789994402011694097742569073553634724837100533575872435749144773175606044532468921165153908970699657519231372310675627418032449378227289054399719860305195893478827174577518068541848141803972811270043438273071771330799851822954866168735533891020581180130969399156508211631738080544381809427150725955758517160565159889035843303802595008067611261799083012070704925909980163371760308844395272357219257708980874482327500620383832473834008199360259864023568029384179909046122655367225225299253646486820275491333306641347673666786579990548010419347304008829884060618226873861811528350360816735475838505354459945537083760888595808133075878446070659557466124223053137008108979986853312155636635849021893247595495954936824798154526276427701404440535213567177670080800582568299507534544422170726819451187668137388742626137810048183840515042358694035497286599554187786558946177727782476423026338366589597858352526110936895247940383482346417110855278587726374747137950549532112091988041313245942605249951842954383122408452623383461416759195909085291812259703127978450823345582753719756340242344416980565059557184799906706471360519362556553576006929993391474575104349868318336896969045717442825695426556204875165263765492157556645352820894170656276630580878278532337202818118293937729640458396496756567079013347748544639074760195313777172401918466858776239746112596982856279024485620904752320218025612781739960858534828953335697383534681236424180758789560986693852517386144800401852928818159434212980101858743912108829532247384490030057042346554676935214900984917219232897269400285292008866428795438253083653458464994653766179676250952083646761035034209478363404782136558695658453917040613254643385230118611653796612601646652168636016923183693903358909493559278092960166510764819868066506346580983975246557927320648216178973083130040402801976492909615828613937792660789686445324822479893227115103786313546254197258365777600325953000457526931675347048084595813140303476799309532312654302405405320511876317564708262215388476231548874541465860636551928799681001920974326747669892836076607816593797298728852545938685545574003732117576178458201632707213434569697981588185061538244156989561445200403982821862174034258465594949832466431877781415334578460889708911782064935631030328049427967234150864234980217856707442223213816324903226053967505557014357324748025064499121681496947425364446592595781040088508927290835509769644344391460027380100877520272251744403100102778956784823719834439408129926173555413073421201678332105488467411892336224825877515112035050210899254774370175559712848431173017478653476199492337257435731473807097475473816228349557605171993242889975580980594604144772483058206238324915309169068463708202043661795235096920670758121027659139534145045038613692728667693818373289049615699981347676695645258682908946403623052629101843980274442748221711020640493402134129204764837217931160966172726536592881109375686987925678478675353570375305143249629751301397047828104233909942992956272642650615486100153088840249127226510798792501908749703013678274397383353039173516325965096904115828432062897097531309120173144653044257756277175606205210830741599125811142794269069303556542471413613218781171816908449833999729040163262666119774438379296422121271496790764425389106034432609140856991919695506706181521025451365119514201286614942686379787121670846936778686962640605670050234252532982370850640789613867214091567777457648730771724399781799379360361754715234436529329012907368963365332217255411012145976467446846084857106481737959924801039848959887832570307582172139040330890908229937902995202702265165988358834409368542834319659682903194666387655624356705374633426045822848797997961247815258078907438603881561294056555528375201755163108028799740476565573103817070098739325270550799119474253989333854344744725134706931414875049355484952265536030621929671319435242170973846021449454522408333958600700764840030329473710695883227691888954762310627847852380663000564902947579395239897582429107607171691452500032276744457329717857532163919970526775033905919107545225403759248903380935605556216033506312159480523865311482693217265611491725629556161384654948684149179450475717646576119718996898705511219504292328490528558303227885946899010530934653641847406763835027799325549443174506131963626073584026512537730991125101617201728668735642954901279673594743740618207639168513426395127945915910134010823892841989798373443206376259728982763426422766434776349953084377073101935689564690096342684837497782834726895504056332155722232255581968203724188319104155743378387419252033254995975800189407027826058162862645767881630700279371161801047551154886071979790600663502540044318771802383228377221380554316544752152456292355376627625610525826048771702785413514195697158145023478594998297008144231767229093936972543666000032351668040270314616023717024560754299199858228961900732996911580499040326673959341868552754055979196104132784452399097972030659804797475744060851893627790007457627008025745166938196475617379557542698165734385251126378966751464209250958337025490802589733111966779953321092747438115888591784113676931493658505919007517039148383072163833778408515675922848197901525690831107142246877357784670754964606508016176918071069879719934171239905201108064975110683356213721644729115097302307350678558300277679461634195522611971785022738015466594973624443314869142842724247521960301831060486595825392184376411589655048759484085348568287949303070531244445817566210143907204767105791699480222218945216945720132914042030370690190127597028264826949332073528057935281317129916458598873186475183502839400519819386203629084232099966517845314272108834350678674228093772660572082801441110675093924770947373225314360033950917225578524688846834757790233079365402097160445911318355952913246634919599406636173905983069109790701450867829678132637763672679487922742118422583735400843334126349201144103004820710090263678344573844146755915931678311342034174953368726615446425398817516771381630282832560765609653920521048737339426529955673162946865710973237490796391965968927508534089803366039486115111544104362966600842403533377448905649404068753541401827315352851172013239081320373621726804526228152685661580723120781245407840124884790439437360853344492580579740152301675800415340322913465512491390967920390390065125111808436641111672258858142451605828109580338435298362434881793350631764092096911839315224809192347184536189300711657521255478970961142078779467010005636183250490483250838159588200248240609322389759702397111264911110374751433617256995102549766886082784677559276099259273582123905997279540980521807384837469050130848357170895100187320382643940038953421714015194654712393507617153252324953578426723773222845637401875474195288892309618772417638775038854812727579168677242763612865125723353544028033530325154080632945790241855653123332532158436104143711611391317510154710514491802351288717229452179862231503624508332586226093891292774832775746127671169156807796642576472458935481854577866921381587445875088535235718058907235266037465077638551023664104252232044642021275905161832107003047353409257993254919033062725599894810942259869648667922143141592967254673113213546217015921154521905680589661860643014166887814899189092971854276177183058047203822283430175448150946648045862283664187679502273210787296042039219641458245123685069271980807819392414867521340891063214853228820913059830258220817484808046769579743613174797982054357147109927528132464634900108758815755325706306325612302616916261312725830232222993334641678271255024001276125864000939571896581084923204170506490749320858633442361145275402003528865899791685797958509266759876292464858565939107833718345724685003321824726050941475547213430969570721634411997250349158763298214205811599833860321633388350929540123813907953076280189854139470856770071927726164058392737858363426688028526738431304806107378685247899947444991900830793820683051037102515598754355191833022550186757183012844344805828122536962718865042737049379781623013405992402133767273360201686430269640120409282519916660103311760141632524320916355110633888851470259987889392997491972333576038252524514174821710092586064354331834409217808562741380290591554642886193395724676544880278836944908005415213384279836904960315543296575983378128777779174468113277825928610148967155876691963152490453119307721625966682898316823285296685349713620574905183402678643202190331437674733878900082698406191658158542887043132259860087934587856715428293580348414867322427918165445379715095884730124121975439766726474425493610159918852322902085189557334925550630993274290235762797189345618003825195052732339055823416959311590519358101357194723831200849121289412174268309133327208069578010391013611416105177192099316303032838509408990170463621582394618151372501397300337724861510157879510050377221603548149869921695206808599871354426794397538766931472652457934161849579564319308013450917479429223617168318376866336550634477107231527190169482276127290422426873252996685225538129101891735544480597210927074201389312819418224066811129665670840377153054059425394274073265014789759853182185579161417369260455116509096869847488326155222238230247945576127076423203723492762896841827370314713390307837958283894197697000629709807483560933352481026832877563564907223471757962678883805363152594814541579129445288821566455089144114678802868122110344320336705412942011945447756306722147904638368982723976105268402770064169533556576860174371579359495412747629619915968060109428125909502759151247182544698259237349761938880947364043813880337536420571294386376390434813743532748442258515489521195998963481746627532450613607608896092041076815444186679697085439150862180466065748368910889935659151829462110677586837860602808491042929027179771291716937127624986695721775879141132523568354849956297641688345336398841631596531995774890878282175656130422310430303819224802889730802313375481721529941345057989433854188513746749393903641183590666659466946681161023613661007132210507842624502164865303741822361990711213513370621794004676222403204925439132131679192599673549460375741914118008381155023845164717479426875426664151854928698008744379055115293314758214708370944862299911889257242150260367669189971323176759182566589872193566667229105971711740953269081745540409676256285762817348172182061855381738642332634442330502216181095281498149531520783374640909298395652450365031572417226700402424001058801996602615385465420637641118331289451306735535389999904663032296759690972325192453773487588506992589593036145013470355032614361677980285805693005920478748446292280980691025091470278187574474942804183789730087802979052579478752215418738240872169362643656410515498539443376222176020090354159894610670823603038202800266577098122817115288076171186734728246057484683168712938281901501192296136110424230908254681989370064007437518299731023289709389032101203796345841561146776328054131070553742425924698523775418412211465595820042682949980481189339563624276392009305139438345778238164581876951815951505654192309989470021562277336421856084440988614243899111763417016946053930237764906408187465396511401235022716662495438459650852136915238655223750129449633041610438718628891766370128045311081552294329710948431202039281067589631415642860716143795188162090170345312831493876904825045811871943301370509128104600307897009344024733750101064143276384630809025661556006974091741257190681652427037256922342351975753927385438701514092751162706054308662157952398062688301347977498968468533441007371003218937326485891755864961133272773962864109515993559455770347264482247204956766732496215462467810976464424503728877368657198883893272937301863406032510586241687059135017371941708060496303173722666552925535372162589433865457609679330199365831869701831606099281618880752512066172068545699475275428492417474857841831665689006027914128328587960149011517912869839454821302479925904226530898681949397103372603411808493345360894707697024350497907053785495806754773125745983151457146337477215081235219430787716198691081950288071951544574964133083225424683232446046479766389383792832838888617983603638943669074749630687004046358231261576282196807558651707731032277060390975800942527028763247864779477939537578365738917700418301993836237081891115436480593761521872200320640332503617948860885546158989384600656796464747286687689199809958588900467768669043405934896117250473991471120034049465041783992676079012925760239886636094487680943371557083807553404245198788462193157515984833570418201276532093302734117997575638130429506212452639576065728253712576283399237247510185494497211697790963067523454841655653955769927950529854529507077215408126612897997789221651217807407036772422076728513914341453104297171775766969440120658925989356645260654509159457047870686687436321819899317932896280130226614775540013271789505775991850050358161242041749968364475485305693859645777620977842983949950076160767288127429262612903409479486413607557780465123312082076147995586151323375152032821187188199767634537551886760241368050817886056989567230010235300669779121878463190611121253342566033663947527476088314901483636239226284393815946824063474660603598063359015845437098486344047421797371159921686297411263414496064261841814903855195757098261003671582216422593233855850627666829950309216637825793682097007926144840079608623617168664968413569181848564082337560519967763026218428901511252331547787130702092305856765371364149547950406111636128199743439054141759245146816142919349854638246694130820423919096747411592197712005488674685666930100335414951974465458781932825643803822018611308555834096955298891057660860227685577728967417092626432869021272768962719848946957791231711725797452537282461010157864826832008507481805111912541372904746037914474582806423353197733155940887729439554230954828095017140912312195097070911563079314946688662602414355582624906047606798294252036360621061123137720543002304289472089803654011514668800158665403164089583709078175371153843461801906228090922385929981216261622808286815167176086572800845559301991356650047420384182969103835680375935081474509871182476050278950701540937559808532102576171832096527703077689200621578699830190062140755525906613944403398870765951846319451895049917965306890578928053532410049807363480711414031344598583595080567569974311771684534902874318598809751003505060846990855732718729719138494578426299553707383087409410478721577446177827147166166559879086583854326830591892684032595277941017353200469152211960541913282075842821994499516990609562341447860374448049982269873345708935212801909784997382607262455116763126210977751255991654182715114915170441878591034556307271742762220604491390305870695368517600163444867440090814537283799178763568574973478640756753923048021060706058957996530283021859667286537785145936329847031638432462771576452517690418249657031218422534575007435565818029445297948750530916879731362182719749070473888974860191972997643612037939459622736814256664858675088464173191333840650156827776406562184913209551267073210826539104229532394054391463557260943324191460868964981671328318377398852936537746279077125235552706811447470129948419357424002065463071268109829828725618521671483777302497561039109662903615254261261181613996617715247044239857491229145248965192841080875310336330837342204486927386500991370964671673959262547296781245238765263689453155516808178928611325764016725807517864998616803641929747118439981297186897229178542788821688206747861710615374503005065236050633266228502284181057704675953539336993056031886128070906138261834439209969641031874529204535400109148395736591513148491052313508363907536552289923026088944431616502130381225392955616971308191392423316925250369568662737827402864148070643512831212783309788465835513596915984326340833197793617910324364710758557437899908703295695427111680601889962760520876460708343291365234164859204828115623030542752960083820420173526742908129439065594444565532206076686931158010638291678122809945960157031025288698727720630543085857529385023373353794550604379156396438846053858517090254538876507342768079638575581411316273424579718703778291512831844472809262449485890742249531322385580520313751920759860412803731406441998391161997830616004552128926240602301928819656815200633668878113584453010457748561045517549441826273930068677243006221960874749776803917175266651822510883948067136302861478782888842223552628922896877929252161709874313623698409248947765016266407751660890517334374098664761499909076824442038253845083354199704127676584455563841476012766512213322366865438858741502460060319225180436929393884405143324507213151861676854658930659390617554519238980546196301372460155157076526615459309718265918840375442751614888180367192919506525221314464474961971339045444737578895721924458280134768190646250103359092977998649121368161367237757727317997115992910536234853250262725663258819655923237545893741795690651064913615110809150572972930577284716462499149682176560552483326206787415374848479183560804952496360220153631307667826114842476041930956403371864676181440314950685059544607393176307300138719009298319062138376922485674157064785736474423094823970697683603779828649378264217521848146165776024542288919596989589843711179930632103702572637246634712827573514372545434196193029483094056898158328516380424067891328904374268853842124083289928117885226605928332443725619708746593818697745068182138030687870181078640557008931871448833059707338721276158212790354488060185330260682343924572123937439123501804183748185522311079202496292418277414071326199092960265152251841986236454245234101628367136624951817388603263654487872548405397584428947878033889104227778242646501934514989265371620352027614975240201780533495923842541063454652029271305946747601425070026949934027322680468826116065600995980226916207906301667404105363273697137887795988854540585496032672702929240293861164373795785377650488388764487235541963191000202621831021027528887767518861482556290698801620282963111808791664248875088358595360147664598216202407326378640702804027944432548155943801534270379292515260619540969018138561927916118382849326790710528060558048937302684827735016922562148092406379017112255242918198196489706091858887817541380541061652860979263078325513636494356996731094686873174660139719906143785076574728069028689511169337373691015536933004495235489643433590314072833670563714963775436485303056137940222941763140437881230485647419109845186971585198189574882355040467605686716011122251306262378347248019242151215627949164351104499145749019270238205361846231437924626975270267196493897282799229701619929838839404504867078162674274184494791776134268689447857156582877348753977155789698530044465664013400719896544593419597947813042225464152378346044777305900509698314461126925993571052927979249125799068385231875233030007632342463139230301762981190892158555270889033673781086382342796705391567531283164777454044841916177827711577052916302088062118471919047634574355450803160790897685696258021466340937262512795831476082365385685139736226770691180010757080003980496442936713600636874614299108382890021486385750793218730706849916989937341823309116664360641797128562832732498593965250182634249403665215756190150746346013703041836231267892684563920117813352112955375932708622775047264140969740080544078555617463170176968972301778177619826583593940848758690275786825901859117214001255738998600378308200934713762081588197311201376457467674206147906105843826885940162235896381207212603492421628044386649080017913902152859027967155086440120904112428228266266198468304327967665869565154293845456111864872757383504435965000411689045165264554086734522376657343012702985335734310438544440823351875016944476554456764560314820436384165894997186440028255335131688717212419194728912759517224872032708939843888323276341533261792866172794025779245293909737240106873431946318161183719072815546548860858202030155058541249475158097227326641600952928396020063051365994273814322046023994333674829201860273980661091969628895287743461711927259252150159100271284910665825823312609432326414518045771731415969104883951967042209687654722598768789614983663177867128191900616003938197928766464803979636210076979370572316142830315682579839647701498434604410120484902958816087877210676442552448950178841858321076583744907736718398375127540249540172393403547749270967686856265051833279327995300313010570705396126001148126733740424882453169703723971311552439491281349443134742278331240675603563882410035614614451628667442671883721759030262576032438028606006574029117373025010591734668948571540236929898452123006911237624537657050560831410655619201110867205465508231717847685762832048717413456204737239418707761965963484906996065461556823627279185130868191762271184714133528375918585839071275239183618282980425873900425804941154599383054387851704077167246253393474954202944609343983168979784416925483114752928441265867896805903604443381695363230839206225454974785208785010568760944237203932951849962014904264286414919501233913633560657691930717192884100448455440261673870616906507008684018540928388491001254256532454044784296999165692633150421130406041798943515416741811186273680911115255255821633679722093814827865446363797097554207234464313822291333327781388447144334371815787006056849633919661262948488477706866569194988281746717425341418441539053158793285715228240265370936736520926658997082825538753816342290022789525234089520670957689662832792707885591473501835380866987349453288880467360286529709495621879427795663552184834318221558529975736410277725489828384010566503734095649265431238137204995075655043049029408506502698579848169642186401824311190212214337397524042355627742483828614887445520014545390421335289676174116609968773977255088112264982318357714605678721685670942570245804118295634749729334068399361645477099793682335360291866033396040765150272027623879115103165748156773960706174815869150239460955114779450361075104834670915432806016979863434959251331938090034864129694314998515670022592821489201881002706110892701239957931983191783609098492466975584105045376274664758101720896136721459331752510642766524293841538931653858980495789962368537501059918326421183399821325258336692891930353559045905830412574990528478177462074339429470564623952405893925822561956232966258572977137443149689086363627214259098689380376167115251635611116563715121932596153934619362923904521786135580951735277420463880424892430070649233512846738574120229149407464014564241168333944010552688271104552166486209031208381157003438143466309151795275362661428638693942638741760879182108790027159614004144684748667618722165614023164198845284477744557894764046841247004575505297720851284928388361930178203996907343303464601484041106164832882043292691380149961397936807479491647220233511657907044923303377592521309452799903040347144336185863282743498716752033161050611410004447449631682018349211597444650246555298748349452788203855070389621200145584291371464119161611317525529849393743950330831042575030959093385109479868065451311206130853697422410725748700734995152513286344922016007080092618758233826100891598834248876791217584892193897853932789408855294559021686085563883870085455907769616790744653922560021540328520689871928573448265411140475256748374778027212507481379228024788010915282785583736309462759364241876333239667033244840926110638284937340068533687373754520347875941796466002119352098843688522264569482507221802269562512922553988048318248265235136405688684581952044609028642289982917611847840694604901236599481564526366420638210493557540602023366145391963487990312557331687683331066589994661776307977083232808729999573052032140285878552799579369118715439530390615776606033164819825041893704938066634471416620084939538959863748362028636567368992383921050469771892800045821524221069649628338468880633160900745473767289097172207119746558229854211190801371987177043938496964688864387187177101458519940092617364967704734735103891048022321120323041089821033244650509081057275150467887905699753952242035540784150548635103965439448755945216398604285131855734834308553922784733562021710520136196865987144834372545601623249672222659679873102620766866239040540895211345442658629128150178594955587374905891692495305295885357343884724467573659639966005757244620332728711785760871168001621730365603578597789155169867122311416227753244119936198571828940146613797600777445267632326741009361086149391990183286764094438332993376142251752076645393697595898410952486980905612180171340827116215629982947480333656081274806608107686677714085169801525406799831533672626939024292994786229080580382726056319147158397129303176734689670350740668862421377102654170600847105902130119290907158595481411918993026041615618027722495600920935000178945371421485615084469503985261430246769279876030881273970701356321655589285062147308622580872196837681010551807577747474721625501521296387807294830509933745234561248970239276987227367293441659572956441980097319142462923807281772936639537806156437337315490786993254262887872057782080924322790080319417512576607567903020791706094748750317610200002708903626058558320384857861687967475887965921732422660483850379041102728221533364674098071079961550207324312377528294857912651194348680116731073042782845848918462555342814846874979917286365666874651473290166087006326293077946232125874740561288694980728713375757811870682877200299904691094228516796178942852737366711220924256763594793464501631797626699627619145561227200807541797058740140200945647266059031971574736398867680526106743022802311257586234522687163450324929280170980264191221022030179638170950066879184325573019694834115546267464781416777592623750601187937196723999858381770072445336396976698571212160286895048154895332382248339945436994394238613139875113649292269324056023105497725684091396246682661998297391878509887412490132182135594341328648323004932962933889768552346610290171755136494779279897810006846648431341001924861737881177513481306926053459040059727523148823285072856125819542447071877490963118660031474579337977424842133883464171619409013131349264600086867211631312059887785830906289403909538959683015579039252807624084213108205461490491799610997178262697220052546838564538573010470576982700087949466334972150778682342237477814848317919330542029931787679965375613050779156506242789500799096182391944099427662843200781778677465763799051573444573785838025439862946283786946922170346356900373694460339420668456739589645471816601792692779569655062764984349846858285882153743097269139246473531817730922587958125826116454603053143087801851225779290228595346450661316466702967289356396053547181398418274577943166619977637392841338464226304834317094525558774682109980852796688417345669924227811546636820462702558326696052457355832368256780926107910712726242094603088026001345896909411674366014698297822227317220439807298270104619731131309661534445990391908964379511807160272234127434166439154271640087009715731191494090789273652632725175824499396963566132190834831638685078342636246985840184078283579405476204632663783530363827027414049687185937157534510855681952781519702518814143307670001236947438099733257420375893973340756743032916241216815846934637167153079415376029282335044577042568165309187924862210717193583783444476570601248620837750749831864124286488301446091181441443914510745101772566635813591911584701223592747549400157776198725102018097647405827139960350369994737136057886013354590359080307358790423011429549315322505992484588023739779419539254560695365455729306235587772799295414630559183855048347571076285865152634975709668768574094143632037332162652931535439733721032171404776267818303911303069115038109393518100985543625437963978965623325225475196057806444566344749597147310278413725884095500850357900294173859724891386493518375400773275245452255530321877633834298618360655243172906414025305541411770253917969502237563471064741797225125546999514150071582564867133479639990263778313548490087938204168908653374820084047939062257792815444172863735740884082030581923421251811031918453923911339514265719355701486540149775749733562558806583678194977400439544988158553866881715980508675566513970562404800901538710201938035379846251742069765198218690836541207565963143681552202404905288970393510997956814388924166684962403188086704403325616639164304369923566407004957887648303583580287232520290099822647269456449838959474353664068552837684607841506662560207236242993046495193753769483776303680870862123883866080646477766027253773712375982654781081401465526539462986915928206141940255828880685308763887326721780424263137014561534100220985064508401639116612916190611935406133154181181044432286534930981419169009461177914243304041422796370571884242839925473684701344996151817577528197436232222630525903842592253024136682737882087080712888723638138806891356755356349388667666426779787222127545087709887436978620454475261858756985164869833043612876452989738525205875369655898011008616247782854658541200839925713648073709693732441761136346504089960326770308532967938296348250992839211578650893705954752920651390573154262447780383746293860191596227672292774727544723901072307925857713301227840239151877136926004833601935781481312900978053773243807624692714828425402040356818498553674111143230482771429751019959662179883645027431149238691742543762761506009167324437908881752666373144086571709053841989692617217655860297207714089878610785880733872843408618221876471577495404943443247933112927262180119048041810541156545086143420701447780216021043376632887899384355241149718908418171961844618448314712757056731887364823513503980891750437849910223768899192645254902123630351270851543593032493943636525687122508909359970065699681220755932802947243124826987515735068457534560119735622149602364910151432991411555978217979725836521565898837081002242188304223377407780461869527173280963467371610383370804014805245776140650217414948943498514003920080456650405686905513987825126059545758250389322841549701196428047204786033259308347300529861820941806035407214072929402660162038968543911730085979847518981569773077870971597071648713093615826220088036382944401893123019583926905121415899941844024160801420891451830397880039689893105561870465468797372842979153193318430364655084020572760668271838261733562597763326505454680621815671214343248521345179524859075385279201269719599964748213841431101930659371368913407200248069430362889102183544757584765397156402359535617535948070813183641449443127729793103302475899543879109988996138406046947028371676288995851307233006974563237683797323482166801832854635301086136962104922074126998901456287753150555449819640309643567214856178627396125572734039718255251277934792569107350901830244270522072910259205022974367361821056719228591007949661271676420507846484898480229130274302645293830136245777631603385699949032688848107687374175734881939243676304337054872861953845827796994998325974006241215550762765470340400710268899510810765975952744309073074353141633177074054016204722341486817572739380535282331535678714419709570205410236457093713967723377709643838065259499477781116721981075320932687286395977627286302930185251174241540713909897018151050095595362545715915975907325415631923693675507472757033656524455171129732666754838049011305867477422579304000899412642743009413811458436200525214550336597394938266524327440713821495868240233218439369616687583817952634267129570110922068183667534977077821133405816554786735462386648974732107969127042117073633242653350313689890245543402148143861369068547526147847062435830828262681539417680487832756880137621850340734048023136503073796143820205921218485967367267964205689199589937716249384313739729978894972848889442733724680390301882184790421286996199636666603619240963326844689610621759400152731223470903238394584684168036664229955339124540051216696291062811920565154060568879044744058137151145058355611800308318517043152670430471086621192564091081327208352921446869599215522616177363444781550612595684458264338010458944536273716797231050683620244696206473466851753582813665693294116079495517830333179699543664914800775994397405307046540657615305183633382623360785272270665804405277614409839198304779652136897871437333897696412175985887937288389984783836802179306715799235360584093916124549494687507402989172999991367034995693725826894003828573089631610898035464968335927921397015402163845760102958195275283838107292496751904911563947132931411284174885800684331352994012096166138033742324396586082240872216906519531301383418687328161562623480430018671481149430108764425168035118788147467411262494596864993570295493248997079199511054304468339752238201840458066907244371849937459529711884094097294795683188232035359551980324430741987158192981262536782335360230239535355386558799263944324474214134934029137075326838441500068444406723934875229368439430119203222567947141593099079703293930598042877262504570163701647178515602056635966265242523878831924889524051762539176660888471201320788320924931994230917380968016875504195163769641555754702552067369679441306515478359299864950060555115943414058184265327820606338346309151603743731631182056158797967404304278570401261320538389658543947145140048770209681667035309527151301701902717688184737376901998791044615986796195500048599143688675007657029775577222416997235996997038103653626476269114185088774439249628724133537600187626130119128019621465437401526641424175950793422916356777325525557087314340361180993187781860694138472502018945456537927050167600749519102801530924682428711045088606027522244031790600350480989276214707980550284288266523140583301536998953183559824140381158843966762093984362279187461611663178964588418567296144729627272490279229785494530241522540238773441260623824430883155185868741735307140714498282070410540290590761319078353505899090389135070535006676774517951461855775111361144906930886088558609881285568355808232154323068184414803186694507087210137183216048287596243005245671765393175023541391472107661632359738125113237908904174166188202749717313408124544644246778855285298631170581695357542922980074193450990906480731473435152107003750048043222612522357713339309257324772287931855819757542691333355809567145339334953939587625238258990802172164492520197014332075621979371829663204333183775746680434009553698130727469786816202544614728438059278976041878797875111137973801735134038360254814928960997614885630634444271389526911629480047719055483086231936840609575429472672621232938579519014304290542617994816202792426592359283017829782048506250692149919927438774575789934882596586409334814698358564576108846317180535607556409597115492285667531244545538404259753835140938729825808192217624704911752308350379042135184177608193765950606298981318611492182681851527807499268096388862706970565474107787809001138824700280919427048056488572136072100838485548344207625616418858373204620889051864279187065388585970692445584388371882665116423951980038578060381453292828002670733607215922374808452235586193283995258118182555814607549454746558346772614281382547621760385703602074457693963419080056084750937787329259840622959511421477196758378716051427215169163013582518911626989294731403546127260482876942436828939030517654873316118915093458327820273136366914391292718335078758166743168960393025753182016747631088892755312787972177059832851459741493552863246786285703464131109893499697261551104004676326160899586476426170602673069484205228794802520452128326281554309470795562896473054220895876524554569758978470280392135344962550301721811436328683471810176118115743956881460270387027354770274362211650004437292349733218929874226460059536078331660722901897769495418615145764229791034940532368399113889849732313340408927801767549334573181905432170870482282115243955892137593882931446196043225483709969018233613605137320113609749463358516911864980346481038815130439451785610658624327613528250206334120560576635491857088882320539678588051849438755157543324263660029801640191639860616006206735688436672952872681513808818297126207645827667934811897645331349789443124161054999416696786007699692610527300660097476368977562585657587934888245603182397099358826250600624028130220848405924703502925224281133692057625167241184751466278328981199118907060263923071222528853217754584574156861315087937107465458709907556539391615925343060795214613934467136612917924027937912399902042435544715022112788857637706736948088991432895692941252769676859611932301903779203438821555197841682248621317393542696800763240424430439713370126448871693285193706893134372226484906312425260432854637740245463533970389141196085486942084526765444051955280665526786098191847374171986645300544547410006602265857147254884079000304638459024851644897534453915339245109031113550843360604326156886495214050274604711773587271852958839415378490938112651631662492285858985367633366087709386089399313390368355782166296599488012506445377109944133938591571524846474140175384870992876824047822429815822943158003206927283168123374029822210585013027740543501855700189589671900051617100809259037534336530289717134587123865687832764511210727901256762529584314043743724636091420566192008440012477059798256403887530867488727506257140968150290163135393293805997606679826125924947259378010513651443444311680882617531467683350118208855131196747023092912008478284310083043152224872166344578857215512637877065099738883346541781375321616843564175383411920329345693522887479899342712568005462749558107257371735616535779099673693719570600630567431401964654288455819526723677261022193068668295166131249230029108821969472923988809072508594983764961330204734248627063208612592269481233795485332890301277092884727641365466668266540501717467775453915280313821406568041265757898273200673285637666840225015581992918603988489099935814582808312775521454518848943957168013514130725557753051664674926766416187330881624571846441013566494269923036658401716883439025500941514663315646654246133066500107825539719208981706390861097896911041075761195984845026929029844969859146695338522514107942225465427375248961366849868245626729898751881585261824489214086662655608189340568383615138547061473420686295159897579804495164996372041166146376472202599372326595455644148989853752183657478712430338239773514106710397500410883957706278116141191824399873091730788959298281417169856410117380256134333885451256117147570547004021763815720012826045014281382694601752608160166586371727650067352044349135374698418198942163853725136122894680904181914467156260160146421757035608249916917693222726729593301601508398880456837927967639073002506510419005023937735348941674258363673050595575184405705226183164725944962455827654682618463247524479989692845411853837244820676877047763061619884593355484134542159097780396844578276342941806700461774671016775928044945745834608404736519448713435943308520626609174611289355568973023691635184531470418103490556256799240514115363705996671660584694508578503559050068766744967402027992170315597597984091375975555947890852251482358992949373483374529280001819150292662933738079572265055996712082600721299936287346195302654317736026350733849566730021805187427296763992276162744862968730925042214505572616390385899068944358455059514407509420499111931782761686004353211043129431882822560600997309579089135510584327225551303056863196780554561224196039738200780543004580042389182098560871713002801693577553682998312104669070011161622219201958606983897575625072056771605150342904292255776761198124550677663321107985469550247047411341451406642766877079218347979607876303116260086824202126165059965763553440006501521044573908931011683875716278943897048307818402866153303422705735929221112263229326711869036731201303375456143326398371139296044205850525540515326002141031499589953793079994130582128484241356023839397250749273157064050585627554110646855394203863352700359647729371627181992592607413785155816027587633712020665645615440787541873334529011276081455478776946605410655270482553265158319329298188488309297386188766830035616858871141006063614500918386829003995277920576015625314914144867212786399446733688178873329981679586589459618052863571316918210621840099590328306189658829135837994725381170364994396096217469862793014333112872600827892906748472281966036783205864003364575362917744369352237305704261999272950654538162596369653786604308542274166891308813382341800712511202438481396283427189414624183648974543096047423318742522568344529493343748574658515027955853418184874244156450010825386347054472891012971999484243600237643635635995236925782692178505135205314310357794936702484159699178314516650744450224679747577147502888810359249051338917729455264506451283197175748909810483508627824995553286919437968716269317781095219754815314109687903449715545738353263968861571765272813151599487897414985791855899765533800632007337251263488190324240922401382014425465353137278287354337833101553874089267283250795632449949876440699822066412541891266308573184308240800649135360731052523903758690317410357038625012556091257381925380629619241141378408454383207189634219159662498416123751736965859169501486985871917851441425777985154624958600394516742903104118304790742951775732882905692047551814488582010417323000878731979034614403038713390531461049454632978758703154334175832446994846297941749202390622554105548210496185117591391529859939072368545687407652423732286917337937523281820154455003938394092209364203488535317261840943561084347963586264628137845330030452827534501918072619467645385933408899243091875885585180616763184709746633349911964904578363784928993473493188595503353444760340996882705529400485959958954676785737302054503256593530538037731832148554704638294578654365504057195619487153602125146397753727963109109141081821490232199535422209911634004363930736223935109160801105111256427148132130027514154858011183379300631895454121086433077712948698517031362953849919071076385870239099506630037451801975834300413252615899655423869849154984502789772317715220034788607153369564490667936153517212528249731445551014007374539007970008101019209354484419429539625310707155083460524540799881569905216396416720335972496259229141923362849376223656460355465466049425661589508514834937586831792332745055158787677369778537324951817792367550220894053855888124130638974170489394699841141357688642643798843785313875872555493491158377797021884469681901469539632823111342027351049546528235245525787525307311389634657208145365776308749783716109984439975937483171346053105947960485591421531309455259564962731040045328588657049067598834650167260577633711486935343598575435342032856743625086931013129162801271269385651142303468558233796403958324946722899269672358876961867756902439555585057960812461329476135385103997728304804365392251307342847364882937226460201586670784075920204944220069328866359105214961654678820593337144841001095661672008615109332008510856399248537294323392768206120751421978895250711498190871319910748574512865575644277870934372513727042380231046866253446932155305733749513056080552098172469351997072974611319145839011641854903649097152958860952763737390551843487401218813048504131222284246384669043156544767886751825746642726236305960788500306623645426217202918415241966167129754584710087480132491460470377950476450080745355458286401998998409289365360657945878099629301078840618335840543570132407339814531500745502729920491309092161354111738946212394807247945804792494207891821044430263725009676724106362675958564475116990165611220880507583824286885992208043259053520425729108142589093270850726857282035251683117229410316842562494546750225342124399179911404678128747303640055223381400421162950849820346287910191634532573920283869472241252466715334693368456890897355064218608697192002069116177731462232275614909680112443666404510651134905415739355126583951172431560267675991319133388678209747417295271711905327647545950569491828975634967630050893055307147190379936466554457144629200498978692150804621742144282800848411614415817813638797786419243531387568707442806891265624508286350066378598092270690393285950406502965560209007357985173418673536479561093106357216532547309525476197454687123800679568383682558875076527507748911524183541486312605754893384250984920654353383870126059006739567480916473143024066335935657343926713288185023657541433946457632662604372266783878605488876043067846260902671718022623455513227195958981389705878284419183982335594613555932429331404805827085947658434877735864657675926419942493469562016779079545249979520642168718793535004199554202948372271254374376510359041946112186932961406245300029925361651457128450187977591067186964558365748115194677997276610993114399899588013984688188881486240842958924952960425454391830080447181668004566734166445831609249919211199522500545280383387674796177528612265970609475520925546184407393000526522016389135456800573710372182179050465557235729575336462526506232837268784003870516277867758485788266590656458334030844894584039236304521395128166005329055461608995805590151092504732628531244649375195991197133429283334182120168491220982407852711424090138104697733706134890131713770008782623722041918715556913331646173296850973852706053036605451826921997881011435313314237550727719573391105411580247403948869099486528996883020417645214247277135600315323509694716404556765391474114508858079006438387493384642181770349845470646925197175121403315457423077455647082245108732955756447193369876009669344156675836857972863881495156334009376741406938092765775433015082025181679434073754338974855654550257188475846114977877628291701082504441886967196878797913933395408547914523649062356176513187938589264959822624725591666912699580496592482834934603954415603128083688907958798922420781034162020595540094167140648072674512277907656741177807240907996344104222922923083094801047905927118055613718642755263238545174011983211115262244740942117822276913097774948999540934673622331651406784491871773922341071283041010114688886923741440506413002926580154195917917348293076129153024223057911818122249387453002725463282654332645267965416027360083761853963822511618874609766454913674797827380934834373690583174668518688338035570201676755395492474918449717928267337066446765058825642237367872313452636425004663765601939140137563874670813907122392762103289522092184105992568341168387297146644561436150563817040574252420057014769588489063886447066625813352310049848242723905951300603428400424482505626011057395761629783722492406763806475709835403506741864252939282148381592099962789396777311308872387638706609378725843131449291126144290613444243828226754822394350527449394138198640184892941244796034015809215237002870546243963966079583107299543130105784804261786383015145060595997205796753046188865643220123390600330505772526798309181693135226037585642840133148557918765793416495137888243235986362029266964913144650258125660742510707579638422790588689841825692262113550815545581552881243653404751319423782340255215709538462431406117849933282373247479458363595451741825382720544478502175556219477518249584381215838193289303583095818733503933763488042794432967691536760350592484366366187145475961879454601271959845429322541448028913386762212724174969361241732179754449995227642101822488763147246276918296600113267807150887167847865144965522597498612749285351337706857763780594071506231474721541779145312376351705812427046159186053711614615413462036585143027043884393908416967707697665243925905569121987878061473717788473992893354834393152473541697865261042032811294045234592424088837049881096455141513166906203745976682486796400001077451949294650576634668580060750806370941228763834373022666201676812722096090077274694028654356611036311352202877449011570421364837245564976353397519815622168546767232025282248914492667815066519040619667332137586120608588289038618672130018841676418925418401879759944488609991651859032072371867011159468993853893197887714334864338134004051519979767732618921950571704795229633080659828909406538963503517457051478299351398594550251491862922676665186050504329236909497480148053416465712883289983145645299178854364432211284542643771382004043056910106113778724008631980017827619839744168787614442119104138993053732824620291238890090814021465278682268888880702418749919584349025018113121815286459856082943526123262098872209132095177267430934366613411286110350159641146956105340989462593102179465462273350450496270046943385787562743336072039624753029738804986904730212732336653971316035947419539316204082069301471209841917438958303493999020732378595501707532502635668371106180585603614079576691593936214063509942436120679120052987384134253206196284819714919329350640717814511120731097578858446191420421186691978542580503704976430467915912520473015947141163415720809811881868909162784809571271958382693701347946125776591124189200025875529448759156358642805566238580949205540922943377885108872162255301919149508623285879240301380418356121434818520412970886062199027103283452342862610301388168788779876568097634782693765757745009301316491511392556128317095735548554011604088965528744475949078029817143916495901078019004417712078532344163922940531884175595586673769011897778522208987002531000578862243737715334518098995782310908934726218372134381324012632495050468483332014208604678402937533223795189735805807909238335220881073255976501848607932321908933615069887638232863434346079977410580733372158328333092562393017313935129423892905887260019863189006257170221588757379256758911117708030401880714787373187347054139974809391561573386060935971324703387200651577489937261702565106841552594963230347658956959232011245819157694444951434738420978282436164458199264187757761473690198199413210241142027334492952465875828279872647965451818094376443361126950794845143062409544400487382353982879060386438470125613297626835304250614804677490609439643707929728561119262529633909437574665409600081447385685020760656290237037071086743999534611843369401420172318741868583166344408309174508235122922420425567526605508480793192357591672933166272479164770438127329416670867007465256710704449149184586689226320635315485292783023248772305585697339215462009586647815500061178305577433985256132775492054335254604057528328767374317285496803936802543498756588964063100983628451438874191298155917071185916059615390014947327705571697930142979234360070843397000295171168332949748457788004940031821789456479716721159311946730622383880435070605350664995512128848377081707538074136622917868568119818147707213156597625229765462620328653343154447938143062880855182272900667416354784406407633967463537641414219669577957756779769111322154004114741416853214998215028193134438924092498257838202413479974473522270049029668278711907297583050161742104700619823019176138048236005893834248670757841937009232561825952826319341194483809702995740241504621812535096121598119246268985267061720425917007900569796323668331078824803909260702214625916444782404789794933950767536511377211241219932496169659384054060194991412985109756814468714841552475104863999469227734597560402033033684496736885573198615764873003020929206584660528524328187695739644609513117273672173729017492637816636749550044797755468647194613102775778466077843697000980519727606143781524957114611084808753914880431847604224299600196982954240118345999025947655462667514771026993898145785081442777931567138678226231919904579531125983316724493893430203798941247338894863339519588794825432642325109042384284592863246372186385614616321484945375422943521639311260389812729359891583793818988261913813073349361549749051851287649379913469110743134114055939727533105683190119168923128963000091606279583692642888146833789975542230492381341287558341138932087663873901769093449076408087375661131136934075446540717247667993477835434678977277302706501450267012042493670158938628508909738175560110634354890189822925816858021894420144656460708894489084298995063252254200592746989484414198082345864264109156798326149388456552545577724073911890049062560847572359308490991113245702987021773378121566908017043957180160867542254146061193486108867218111834923168434116693657967162165014717946060159081246377814194775050417754944950135453604819148394518732759584411894422956867560771022374334349694923654953086348290998936211726573364992930061301268506215616798567117536604933626179958056009702469323439358408410961703742977920311669786467538310747398421008878385661745734859530041015511317929435366759575410041143517139859085495068184726798504456469791071400860225649910791919629616256243828368940998817819236665784093123378858727455634625939328527610775601004615307558787385239935622994209930244224779063106881722650042141212589326266338269479213269697622569913434636658643509983639921946561377836824560090381073716966666384865882659293936462546089129803150532015617392356591555755583956498392785475624903254595979891410068676265626167285855548112116652354030319884791389877593039952106692498335929658014951086670962073384577013185774345726007624860761564833983010866672022429346452875165387032444673183996576126357896676771468967656235342366962683114966982550655661592498466104222491967910845845366731428934454833679579250358698450340878196223613571634223083354234147771021628936912536079921105750634010120529387474654110438767913535027677046492922055096615527073390032143338903420538639952707988384325452463230517103182746530176778929629869257561788518241015923293201215946381658615232159823327492596656799658684080884230338369268192478819496535290212183841361405540971837664129295991197901410413593578457281506044708973155241171759179090609271450459963486557329395046924487198503367580091139021141955029706452097068343001706554611609640738530135588561661342340894234669938358281372195065608957315666438795033212656025203527458914819653080394589238513893972368505402429666838937220883107008633801345485147327932175341043823152238006764841585866297196493376964442471176595903029204232435257906068990958455022685595071646571774247656776419005978953879601722539249740860908604530119715673074650312463426228011308461426898673169761769799746958530807001302635190860942921334482443109290838636362732810773779193453885113169700897950362044593431230944066091562635150784471551093116821358524801956198112144053097366283201400544465478391208004090994882833433755427828024941721211106989027796572365622367265014870591989861036091255546439036725048069742398402720418115935501747894712624077616195445114772230327814842060516209319998229535650521911059723585642098118784698591175930649575824948620233364590511778802978265379552224058861208666934927959750074014288862571654518675527500298768554642343856833838629580900385236532416286210834414635770905082438185294882231709590895113175513471286337945296086704566943375438002516491626124158840461249142326700398609671772589848599564381532399603014060444189191917704697456504593951465903736683733040069054342311421167706062168682909789817412041255245016179703266572553079830335182108970637470021190057842958944581147844444404954795442584190046039300458705024955660273925360678773870202660815310979630053301402119993485606210177907560194605587499260716583078935736167889683015733515381592166110810074541595101029177699412235502253276055707295491161420692472787964911665315649194743749915225228778929046346527859857071493808559136923406486101239350381403721455564605715312227951202415525297259204656593721651841781297932453617765942194185138814378206615299294832864922243973432596704535262528617838970206819396351754422829690627225606260099195909277003298507545722012173352766596825289983268613296410139320522437499750699974820536842033462134370698941005198247629332896215187188514407134837130223841793797574719252750966627080405017661539398451978261579497046312223411841846191447364865077602186750040383863717743778098271536718969382520576188227664495733490506891207774240475723307935926466163819609806021909269778793783790387479255020451675929530727511162282548761639026890643926400453996437682209719998562750590391646849509460809131047576727424857094017061196013565533564231323430911874029640494135798681917927551942063637428240579882284626330245728807784920419383608292128140808492323602257619423315897520316850029140753539912262160438202194278798234740985373864041822749441639272127782904332654515567294656757719823848130938728612179115010984451918873763797271577573369705658783883127433285434130780019980774540715879979191606335746327093848570277103338164759801911648807766227140188986466985744183096798465362627417786567203388075987803090127971982560144045716488001267825779716627589439455893226416826494549983576764475839314200297586109254685817094193314256861005186575691894476567262540693502715493764544341838077522615727126408159727178628003919312681674206013957371459779588711649582608011146346754769555937701101399014728825483080352054659889206024349443783347581058145014399282824037285819499413923561808490132789921766958464764053360404949910396163012754093346595125749373261552390468969960912271975259423017971111126654416269022798037322235826025649559123035460247975147722678688830407771941488492762150716992279860689746534895466111101490858843793634081617632528712337161451178916275879314588284481693721960467410443681879628101222144875910884079072848550545504511721546825010805625281617625110697014040039079849083234367494122335621144626894882192534970201491855679101951117844850319911982309515798590082771489613708192015666013838084464663124934347520408137788704489141572381973742874194334005007130717048736260094102878206541568429065811385455419913896525251977842942367662400678186492307437068886544550379204546404124892783147468246138646305248191099227999931060788828487150667091598196118612568839486211350119683598901175414677136042156378892967704385629159896433825651438609235409630066360628596123865881256373743884712155742192350433619106735092724824935718789646915177919737810750554305877173536889782892912541146924725883198641943761538827708236954431109763192276541881444901792108985919199411250848449901053917933731981283773391096523975236709597035271100809224363736387399719804616267891883640163654630148115991585195640561120805270411237271684392108575878247055610791099386532248932414521143938179816597227810302666614984673532612154813248575945760201183985039261839311330064221266763756937045950267109946454857379091327630617312917974695571011017446764509477678160621007590797959617278122551348840157417147937293201942550499176213862419460319439208344952390222111098914122606659212393859943603591684059911017573552123131516099629343882605824947921374753669894268885695016064566290683304789074466697197894702807922723299905836076067898867749155434579227942988149376130999400264951004699182014216139649984925804377980054769117924135275933751300399617276438608166918143381714824528421378183353668533937640662692049876473286437291775199808781721582159869639861573818888294293098566426831658587937915323672102305912725887310748954641398364934696179264358867099851219258050658712721280517922652609438847929963243076041282193095252498861558257253734671638093105970713542390352134946975727461323035013170944186235741483354465461835533504495779561803401671227140164792151823677479576098974211641662129789977634384166175280139253207027214347381898681997221724549727621843432265738589323082954925780010786678364378363788715488521861002652996446578442576007378259974456744012219364211245543679556882401804873871655301457835051040500410145533488588317126452512145476953366188910080346624953728661834643025771804295886859260947719740782089540805959910430891292091867653562088419430617731286217571872832052262942742058187619225306756152476948118240821400306938798301627958624122864821642500856213009592861648049102001186001053670796559637677098281552570588342140705515016120355564289076772474716291190971783055802544931442980398975364265663254563007628049341856434738884188268318758516578507607879977737940738998549309466565093736361076097654056951093133129896180494918448449769687002581280614408594978540565816989084905321202901970897566091464333283267097672518543998253817620346226871022307477286868128904336681357363307333303961528373082691264351183250488399808623972750403419720796924245977554852633836434771628636489707522100092224964167138688496402133241586838002434963673872867159784239676347559729557287600378875885798605689998607676154428214958746364990063214703391279135521751118093548720452782556504217964220989632308680423473184868497864020259384298729181390280671557737511197566688847953090542431757025712966506180412613049215165242916247645628538991633315116683938734630812029905638404355263214502225012304940967515593304840926814786607286938659975219577580026033826299388689922236640190271159564097235001334014082272014567200761188274337021288444594435615005512223709475059352615936526895615862729250448015537117915831830201185629381535871052827655917011505811132196391320955715403543406857795428390948374956225743147825235663983406167012991242016359851065987442465532084439916754290823163933507312620918133547773915784280520631195985369367323373700959591184705780059038100220304464181898391864719860541667530914036939931683725962165157881554505699127411516107420560701837787166214632161715957180100433697515420417939843235361078280052628394820221707782686017021124189612882947840369246876004291787527557173355275289104570904593094079786396203002613581179808782088649644585507217049532150914609563501719776887071973222111166929863014950020622684414778624674637530336463859716594051312303654910166053643547655436483051013509557201447114171293760126039983784286960874295914758110302800731780076403618349425428687833191153636048892823644870295483700547460465297428724588896406134334715458519653140827109928320350496047945888644247046778720007166055252569340114814593427472195217013490711300344272241059509390175245611302179577418909555623944747787520951037584879998861421702340209291302941802015665554196578014517670780878431503167585765948114813302969650887569222480780440577114822842423608112016351406208053931686455805112953503380661522107118694738911712891612138715475410738131147174903573762432009799053397674264753701867274067780163374126328281892232445793810164912076323827388082776758218397276562405157362087762368808210953916668330392943789252584883446835339437219720919345011473335047442817419049894875787810217038636108124576196828635496052518221757847119988718028283195392305569279999798638291985936372991214717675276124978318864820261876250273578406583572368704897885376368860637810529320147510812479278196703021716797632111602256768986201095556532461217809378308461015643965591231632718626210700072211846456864379459832857873187345499534832440103763452582717726658083333295457074746066440543886257234877702987632098550566163578816522797050319139165609662173311706737562156039430148035518507650188041420004107803727057084343537414304493711316184914886075693258283106690766381518144482697846424570867738452119669696272877828940877184416055978307853319184246966894884462968877735222428600009284185712291143144101012280786712398790117131482680090012108168819298522301875570216041716975661023691405784706550407093199420249983909760950267159003571960167493270185386407846030668979310539765307726233227611509046331184412400206618223814980117701119951771145672917880836589928734827021824861228784388280399818980388014591008286849453961391852462445314108688042547787338533789200818105805886601815732606377719925994081887706664324330586608036357253031932791900916504775683244321201912484269728963539214426033605565155267753974241176261878367644097360814142958979098045166315702302974344429395453318662600958768979260661214231065618272082853921930601756193729782249021059471309238586490472002317836889943882403960372593241613965504717707662978513860067231977779772505638059948028304876223346667423201259740105478453964073984171348815170267363760645355749725837088814858745894335783171309799203354134059533620746455758069427049442750960743772349768446044268089417614378731936367278466272170406490975806075189550933569437244714802838994106508502103273249767838235724063822103199401839102492693277305955643416472787889494085590939595091599655640789299115249836748772414596373871891129353198198625776617795970486327091147914398788425940609643592354416078111043558850442651119995363832251563615861855033933387023876906669302575165527571171582614230089797616030822522292593385320003492223474869798739346074383818640697190170382153596693970881672110617547342209706869559157838133055116272166194604034233132776280597641979328540144193611639831660838467355346799248622188189707046786846704047764168336908051117707992069033968172145797593503584295130708427157310481881262823322708451230916899680063721129157522238377541739395812234493063570025176054542345706625698490867181875568179492122189441700720999815704816957266133651870935068579045669202007184297666656212837413383772874529751301944251877247062413886846186521450083671440823852046199581650749354767296206477302236676365471341996400790626994291632989722918224580769417239639465337066937986719527102821627151058422135552319591710392527353500027109016715142292195695399492945292915287315961465336422266451181429860211857512265696195500703700762062490236393775401041514145583498304581175441010370978326088708987747418493362879724183405243373034231660695295953578180076624880242909779686773677513252636132711744641619036687637701208635032859282455187587874278814252309882095805250286107292198848431436868803282298013918856468685332133626605655822577051467300528358481382219707290562189017519283159630027539811443599675966709527921120412370915915994714606056235063703719584003780293937903393583091833260864182609242493544338677964046911378686508638047087603185045773370287004816824495675402837804236919920405274320356371306335114494847104759220621207355322033786545673576523793916697629987253548729105062036724417670749718057733289514530851081198489192457731552595927202242806835045291022385718426808130278398844390289174662531099992593776851297832863304567839629084320613560937686736290029693989664553781081663004269176957601544786266245534639415652498133525913147434000643795105920215129630528357419395619554575677580294716648315080384390892596920079401638523004603915838671218639110419279809638990955920144234173565891386496332652402622657271008961175371767171386797871994973898754629080748179726726375814573116790226134828399245766641788632856636692867485069381430089518970136052365944462785069497973524676639181344223650839798381316880640032667891967040562204875556252966875135943801335565029817978773116909801041451288696708693017379344107946912846846751844946873992725512597653070116834395273854590037131352364395102643513585472896521151222896921283356124271427399791229168459664716508874172537785410021202224974105591729893439511778986644779046793853786349857947868809459950165949743923391893706692444149055586579092734242579113580852770662815983071574225608013139534933265579206857683878352468271041285396528799757217514054200448327349106788633354857103570534101284445405769693457291237012282325818174215875366141963537361609150640136260715756907773849982506256659094515703328678267558330863780432240170030305935827772153048405053538987162537726160032178385804648294634254474188909713840117212617376566058300183490025924387570031242912857918967786356201601511357099164040990276363037557078995000915055746071727504918416236019352400785975441328054810064138842751362202449312620155027453267855534399342991183133639509794808489792393939832148203796136230933449935127052511635275229740873385559444290294283517918103353686817557188400939719743469747904277100924774077671876922783252832507721836977003072057526615622163448343177129488737592526494820107477174350432467819232984462540881134797008865411105174837011777386091452735478340806114742722977729387168094807949082382798592584385147958234758373825719754093036589488961319200184160940746506623475229113808104667458103391357327746495523068816576529197981931096696397027305810616222332607844093204564998709099145590167368282531338874388428510132146477882918146031168356517814964529002331092724127703025499079631746560511531135187467615985686432388132644089076541710938882561674947699713215213667543925322933228644935367383190391021232683002480922281393222129328789450972647362223725804960489991145554095487354630434816937245780419866349607789404674124546187175775146923305053926565480997391596938196722796068868161884306171829959180438643391501095534076289838529267699919777801203492516475410449626949606485528091967259460579816628054073815814765182407325807308045799525339154751366533020913691791146080517415502243128244492004225241895754587295724104238169914288847078186186361915706154978919099496330725700566923529507394532288507846275560319610124040492326560784992354725185266421388254155617920538253789366579079244835357847382859329082753267498000813900073502302489763206479518539923841719827415925085162724064333828941469087037642304684931378630592013384526699182984146473084689111037436593361576470786051253548328412798924656607377814935015532631392035726577746758703334499076351064335807815078280391045614129658608746949554799658863724216037487170948207617472258723359159373686608653672221508418693255388464916295202402908752087444206164726014360779737507619323003209200501587691292766081108579233361990704590328543762004866426350079679488074602029468824163807904309105108079295421167856382782336717056657336623720162849172184569389011484952236655679514810041944296396085611963642215971358906245531943948433462085851609036117747806705840372044763015525958143982698063399140663605922662234859391532810228845040666710042291725533516675507202161795130852007118455869942182485104932732997961191785732034703879871865055608376641435884933501237453479107322502679896504606513849939585860722742872164961908440837460564806697284782788999913288963702142159758091505740805715189060416748578422896013058762301504837279102003130351448525065568397833887628918252947157411747033628876701394856742131490371222498207502360753632067886595290972713864957885558710920954143641576238556287562421581728496447066429994044784215228416829632869107603146666170855185176699217704833816060123223725767480977485429904461813852403936120075196228334391573388289040017411344511197415144479029852341908293080562562158688186480042867607713255851329771293769871093668981160615673114758090460077971208999165726152162412549349913041291730095512184433224655495065077490825663864898634081803009161450360436126443582873617117920566955656318968864229148753567410772898799859395665287652847699914641369145534747306836578182643008054368405767886227191345335041718676253209032546239100895656322370525032466343530662423119012710743344171525046629703213396468923306127252409819072336638534322825442448732575140667682460791720132358579683162068872496919338110866717148297289437647495828913668108201700960820857694302370316896548999152765731372754269107216399843831010878482154655755708567468584858361786822218845022446276705533636475543600321393595698546850523014657371630448811371008131422629602385452620401542906480375395486596747222683347776580828362306992224611215801076362432439978878346989902805041352590554914332018733204599638056833597155693873349719499300819584619732522442493334735160215662914560823764911804117542947143666234723665815763740878367134312401321728872650289309478865110959206250039978121799231007703497683941348929939750522032445919903514692484144318387540835965415440719662002792214494023729143656049797205158584597899992140479346875644537434929540096320256080442442334859274731403308784503065123434502522524890038563115730806373433394037874847658109785062190014152969160693390170879919832281350119335776842450061689732309406261649709743537207314584533620734550742736179918207298863907045640674532301172354482799987100892598717396483602860303969754108221073401818413129977069880343736857551869444611051323717531954706272152826248636673176282196088731538195867020320999975346318406365483213515374834028172560600933113751305971813490140304059931077705024739340091583295374850243708308290408113760743028545621887990354119576174937224780459759830792432249922138951335308457215791098900080926022759927231812830038486792742582148886251405065572039844556508113453241547774564158913647990087382176323030754818999056421159637368479301590110796270000370700308888547399417737243180794323386538434578673379728607684737062296912563765107967246075682703837824418755620660723315827247565836460115847603681719783502074284754280556593731788240463130410326703128982289870692057581757805674157163052193217652262542103760395680366276279569968778725934847127638472412314920682537031815725972213025520433563281046294392075159108857892660636789832526831148813001639235691240077312481734024759759353431048090886359271049550588540761104367641179743368465820915667235365145326688376228042965672031778786942329729134651701622049571120012652626687202769042669177286866221069788538762198734784889506570007338490244801783972034005311153944670865536466407290225787957683062761760929461114307383449059941831984664146856681980160586313199010415941861308627559281769032756792114479537146632599673137485849541723807412201332024716289213192836548678213034262474314764515811573999165118661268458372312038394726778136407938257268781146569186762401873585194721374819088378182297277432260638807694474159642278585627998990221519351774161112525914380127204943446761010500645914863212747382289616345737686007593728941514355540441888632638985362172581733574487934400821172435752134589490835311907466723817479458135671393587195573830010175009764397407882927322376512223182894335207451307715483326375277615718481028977268876047481564698576288904925763243082375217264327114161336234015708132022373034853402403991560328242539171888057023089647695672649561280172248291044146499259438131522118715950017765604440340295859819146015847537574569475848920213971639765914583516546822829486598617089873540558049434063076143063122947923733288211637017763542725015785846692083176761065864031138992478912651458910063265432089182612345446853164836498852638773962200245951828678686734274785681321909000248526070268921699553883068397924021363223859276682207293708609104845095733137605123352551235827998152749536648846893726629044661376817315854567164497379687029420337277845852173471077020625527328164855919516422809306085420094920346924084674926947797602214826609699732647048116588282969676131542347550964321545429420100077722636940857070357936240832854079187661271338066820487251812907040287995608661127905055946830657313783634332450089928532146493113119231076014705598396361273582953459299709727736160582842893995874175502560976308431820959460543484459149990818036424224205569785111811075723804223736987294846945965359168689927586890600450114310962495220163162443364337387284431476709175511770168445077443423509789198456217761159023806794305936888012274171818787347253530427823758313409577789078922085435224763976697342959310280625846924220720124170034885796745215437325011485374951513014381865560172774377630523416647494706001532620148037911726384323443805800640044654317187286426621728724397283477999871915354003179251070253925131905039941545508427170261708651546910891746122545408777711687525357619412226974421503510951805572865943693586916223568032132492704789054066481858721066324385684770884014300994645624420064132205226937097804051889183805096608935761046557052412517634158507721338833756710479408555748244961202971514482951081880967423519901454930221240411301715808355552727034495189560595446840415932833293312644217043992126268712620200389079677061521860346934262304537432775650808943910541977846705711945692892151038708308068625845690565622785956104998378718170222296747856063398422348541378123308320368217279085058050161037660065073397506271821921417818531991734772476461071498942452116755454086146970333801755451029699151570868534785752814337517672845212293571179248691960233453101960023799401796402066892578730128056002422081309472165206724440908324763327171120363438902320447800559535779184433354939627721905100380727936006515150552217720468305052793017939612907187905258078186341328347458826977139916666424978970003898971452412764658162197137989737765032353240302150118501822882056834235929500191413411146709781398018407255497370948175096199228772315331340958286747695335549834220824450350351623667911008134491146439032796637817116572744463302140685968479074979993728647453997660084835425762497679531761859226605792950941167959962385826600280491516401864925170843592897555665456306235252181838472544778563077844467457659426217913340103445774564854341474048902799035583596176286843417015921039284121867819929768657801870968241317248703856939410703669508139312860993900473805632912462436714660066519657938923291041784218195461463537862767929643188086494925141301237817549255146863345771222468630635936007102108737369296764612610544375619448587133606800570899438347755305436906511351028016826610111639159779017501291623049999951476829770224245423384606888340255491860011568577370236272405465061526039261722930078666372379849348855408165777361301089231677627757333880491039938919892565412166771027752718227647824444844759323955662803911778012332752778492481879448879783162473849212523898281550105285971665639730369755142538851789377319136534168286008290224034444792530229049086012768131279727295903111121609906328866304855552408156208031785694062001405730102234546807414612653982687637032691222791356735645960807167938609651729477146843173479118901063158715833335125053654105766023955203541906575324718081787978456182435192695984100493422587828307932967049475605028555710851740008195112577844990971269185440719565677128951494639807375106928182501232973412165987977275057105160536234356471891933293178446393434001892440498117587727247051864297189951384844307059300627924973456582071232157902137056227947333228736966120572917337279773279158490231161093947858971855654339057458864128691384369449751144643520629260037546567636345362235727219695108422339237555610170311255224350112112792709548828363881359983923868562801822717622778748233487096569793681231733366207936579287067394889395080844876540183887310064103738256468584947475532238255772080238453611112790183015539257251527758371970044346058827024839137282805224828154448591456610723775231775844200718673003808563413559580785311679532411686709941731910249487417208206246660411175495431697119795651773629150989945003881421017865751062124230520334346088859353676094679555728904089017062489658385097185945290965618385571587489644665134167568948935196080447581237295691741047609780038036909316691506252814436383073104007076345770868198995754464127571647232488020328511556844471713532221839593787252106333128647076539906749374422373673329967136847547489174497333529531576245816841625391013565669335556942546124291647603983678621756154516864351445618538260781053671085113582133715109129429289375945459483397410515726110793493196788059136952370925661653103779921811174531636924478735893344435416546357580870752904952334310735563860876248916762079612434730782028867630001268624129064821412016008039802782231737942806845062222704604498549941250728436950976947043292865620560526442421242217906572004076391118750041763510306602211513480426801465983976585238723814737861165100507992757401720365042493068764415179103592585534202170686013882316993910728530577113841403919279533802852244769261357788943468901482245141053225864295969616256304315690777895024529017283227823226082971757549302351188784498841687761402134471847360053243166723472834516039815613931621532244125544188099497853754545224546992493741383479077471434515011405954216612624810548019579878605216161234022984731970741904506062372357075019979479423913121390617925493923793671370987280496266634839348230583375834345133086519154089834887986441788631335994042201839516774338546438103683361834799925804904805342852152042572751156475898880092579656825123452044621011960771184654554134457878254769029662735100754075280194873767746246600326526551574611383540546809048341464814235942901821330325952560317010517120557088713129991685471968897334705587064682960428392301092403267418171828730839227341230889351829684442755244933867557134131180910100496554241203693998461772749665896372925342340357288445965585705299017392201676726742861032920108303378269646158851434338482309957149254957315625385997946024631484098963337640526091295525589434757844062530541299183594282543635514673791252595137654097036197306183448073346610028041265840162274535193342293456941430501358983352639427504199649471921402174810662190196707068210752678939263528746722479374399099958946872044548602057902978765453871253841240113508798206825320299212580918893808363012226086948445615699157435927710163238450894593815231471528881002365841430919977956897130731015653507919266688883346021697023838649399821538554726789468784118163969781062737396215488622220891442710430075430004237407312773415254218132582511842283689642769385270249409002498193012578634996594136748219583027792470061553061274945661834601156942422630903924160628201996748029740238578276897556815422819005180998715395322518242166287027807562053709689121136319139760436794465896589635532762643399436569680012858550728023479132517422456534940745844362620624223712785732019417103134804000134005678599385145794751378901363412957428176823558974264731210625112909738385179649111278591878552248547055890978912147631995627647182739672010997430880195267295408048484446717357244767617431852771431446411753750756007297389241907482887603391709617125343897757009724124787640994179288203631682027000973712863271408992053570424536878456587242075752002154054941000009258975367392453813987743994533559075437645486264879336508471820141893599369852334577412725741601677575811292019969941932816014632421720268950370072094600733362667432004049932333382899823474980609323620047133248847683525920803000041005036671660163202511146312308301079224847367498493629821921123965198372463091839076964041664209612062440751646704453096794327629718179097372172263802131741798888758227058536522181580609025191229096397532000951501726124404258241307321573844156274323370841912495299348654954302465359282320761715166744586449359315962129827345413191864450488287088240440211894356815552849712115168079576406215518047853092020892997532966105706639307995622450475967984246945090279309997858232203304375462854880161807161065425329807537046083844287540920426872606778211756483948732854660368627673702612861693867405603589526522843707140721592358451250994010816174731866688666872828227579412875165553809939633157830604588704632441154173950006355621187908463931576212379289389736813203315033909763956758748733514292051552639980016197799702318228370864377711319028183551876513803457073398808279073288392384034941521844259970211615422113823109269958631522297269872334422123460718453390381554375226833831033793174702458416747449749773386766555003952993528978792031371612464639185790038411086245450508331893442277205310941436340288581914743663033278022194105462242711826543581935655937538933096103441884740392279770325171171281197774347941711427478703621326036511023486709018178061473373030357664745552226051357540693741663460155638417072233629623906033977176180556535341122412391743263589729946237108980616056068707937602047657126164709604829616588671443261196011460642359329511095798312442076043304491009847100386910207018033693942091811161323787460491585847012971476306072688635177087349329460620679349071982911547284795943740035201726270615129288942886171066680385666363548116151628048226689839074721343160696110000779914891022282364265569983186986175469354085095260540267955639559484368135493178763250218723869181838715762722360844467453868650673802152063465375148177815796831323413403673557789006477578055578420666506047800933505344210121238966088138325826882239210605125378363705486491829531104757588833311852469362790275777939786045563507355506805922999488966873434120364656820538839154409699508921368270734862369638553851005900690155576274207992405171286836644747898184610503942121628933780407583595576233217128226814867112463472286100824576024005989579401277541070746827218790565157169138655775130090822106260399289993961558909305889690067723380160522381956885936264218006958394995239795915372447376738050618144946982072427892169842010630974206078067402837092999946525485735698930341288521008481771561209218069288478790628326963037845705518400802516509573418227540328812765223719489382668997686402093109686309821357605713044825148467800842098593088268750883160610990399936171027558980099792132710820102457205614544833328713540383331803867500494737684193203058276883406238063563339030475328960659504585488956740672498641951966358840798114018935270308444299370912006237215344594465030393400101361751980443595362398097095137524350613171564829976341104724281280382911011084490165186208812316893752533126441870820585004437888625691507829023412365944052302089870182706033874322943806489201940955064646030515836640260017898041417374030692101936291634732357500951470807509925129759226311073814076067976939294088555345933540623333319071981008024639918853279268865455080250454838390163303372752499165877509045345537234632254376763724012093875798001366580551760507854459847862545373293809299333576785925436661486512099093565156328007951180637443112567608727057504175770502489206941011205280998486931940657782964748632245985471943332622046794973379919223853688989389719950185001367009365991895816521174183825699048402973268417434524755729876786676438117634652574454239538024831710842495023291445630019244773676335502516881488736162539572460216989464305781263436073810293016951425831299700295020088857612756148669140429180391838449583854979219219443821410998822305590166745865314858898198964080812850030522973220496740914239884038111608745196383613009391325442457952689582023754050925528814620728978369723882193298740260511527819009219670475394959351843379404194233086896301320912626012066043302673881793316075612623730010208160454838342953528537180229316531527626538347743618204035748091357673057951884176042869519427690305267340989172105122893599939624751018061574786146799377931451625363939172031600537071607371329700720169604873301303627323266018279574565792762571318131002691850509556527632621512698060716419376354572682112112441683454919090704300554670043156552139974148854610534850511234356806862240442736686779580101993482708284621433002071572185361835574001732040420855305020374423975850027743693611980121066731473905418431156432084076446308532025348631912490359111522608987990557927331023918459221177416459806411296506913788513677422357021740351882371650159198279983390170311015338246557309633499353330725849783912131451371568554896741695077446617419412748262125321209779972255590096356000541006539903666195921800231257148927639586142964429900970645540390024224519215562085478848422808846020281970728709340923480117691423991767060352706392440785331439532181458751774116364983726096018092339913383934929664343598757880292833973709984143813477777905931639608546672302269304994716211380435312809653407059534551729776527287834322863376176503638338474591815689244156627076565817414707477126409306340367639444493564510643635845650785810254457278613178898360460356979867556931216333187686013031225390186019930666741644351846700779735673756457501907090009089278842680749311820219763825631921171121918186141709062861306959712175586774024521920975794760980526685678227282528606087960659642262252537418813943887989195900479252918079135134887020330166388744251989906298288433017727311766365858230555977887157131031112406375799097400189056927468978128646498393045868795463286551176425396198459228567070324531384721109739563155753007088148450399790582676734296238827225296393051309127542429631390512000940959676383091886710548246707243776523521272056494666489682943456923299133358680068119376354266442278634635610422236759211163782600041406812097486657661223493905071739497365061961012962426306495473866717077992369921252816857273992761980610678019774843448515454295253795501106997034986687114163722684837242882823709415508385210435693380400776736729931300570759372015737061582354131578520475818363898659601910875482768241610519468743162754511363572347904368964929801111355332494347111220295955026284520397359074617520279360230415386713770784401880313818197822131355475630510072876172513728617280717932806685684528969055976132642525659063170374478624994586380635262760453661009749437822007850983127826367027630585181342371050630250273939332758281747782177538782088668027556384057910975633986283912325845652322815536677482988541878877498613720178092065392576865193473660603840469244607506039719470755814560667187607279987216838502115980535131450977339010086755545829808900515359271382822017728665149690502275747564849940409895455289203388839489868939040393023608955555356962567652368108171321921941331432128342884967371280168934316811164827987151346909549653039300463770794163720054004025705195600315519796274146517974640215498206837269103201166608522613940096560309186793385728707810131727125363744413236784688847522870885170267557108540796831627800222942124696478695560770495620625906953313760134640244047237185382745964618363738322282093818393505870323199821439496762180005125208354547575296815914804163123995356774793164326142290341110160090008131405198240905466876431661006406328904900711630323301849725615593971718538953627549951027756288038160883669684303994783952085088094842294640865311475372193087929436867003769553971907055535850879240194708700057711396372364474962897294862086776592283659316071326092859331792452896169452588632580737544437325287810026754898596739967186339006845352943739174436780837799051156616097209337773375205985046491546854681376053163670501148412661705789126339482393764444775389580679715621279943128974839873589443632269375293283928313171467155717471155188760219492274218354173302112219247209203530321877357841079049310618336504845219202196773461208734285539170186574360639646449194473612071043216204649352655110269523412787396459992743953358398459742122021753716925900894760428911434727068036821113415302691481201900783129272477112662952236212554930397208704546313562416386998936307726775959192718639548108141040476920026655576474829612578506491406129853134232350507050983008566864639819892839055980040313615468503695919819175541579057580200803144438866246709709363514559618928106654753060896894567361583717745149180530133781658324801403299784138731947460582565322017283545905369238697006293937989044733394593128240034913823000018860461302105897644085816731117330066855768059038988034734745853456124435144658597223264991749486771627688637912150876333919152276612156576931690843119222795279101097490345616008811796699968054169436758907982969333414669663195047297811885255099051890630564432838599034626577749591615888450679249835238763819573860121982963682029873716329907410777918917657300389594679318984236000404751461061694766888085462254475584748780006667581429602126746355369697084568320994291936594939701923442713818060862083551821883884034520725003816514138356783508884076676995838206753776480450216738356155404781082095371223248108691945189573428731469186071692161243566107160535738034409086157388667222571985353583890527747972538966491391245422387128939783848657834236182593732422748043212152309676989214519785832653730676390958888212955405329565036135612581573124674172182658654129278100038214003921059932285910314227685250937741429083797635175257103545314280835742440126010563398046849772984911385122591964624017525012638127611581032241419943960177897488997444504060209374103152293909888419509279768991678410834106471844856525595294768821516230512182411694420670344717090923599047764548486797463576046898845495404772932104960584957463806193032319438581085268613566883827118576017705637941059909666756127255282553257680293166446840720727313267208954582348894371356011332168078000961310832341173675593361272503105102434054794066474775868681144298725742809642740105129037811392748238137890171723164785870152007674858307877912937813318028108723779934686404566800567507111185181436995890385582436337931266008575053957088717850581389559872502611156880935269147827756413271280780299290089942261491111956590356905612506925207199690857316584207149437422769180978305860484572245983148643524933649080962318480314631801654129177209137582484259413973990675174881315141416406191911913236995363464568254132389784040729158361331595736278488794172337966644405381548495256226340683284707417686138298103053281944229017450148442949360984920858106454566645116353404237292828153404241642730561940375616358013721858252037295119220830771727917526332207956911185452794617538114257021283688089523949334094638725567683732535618262400607052699264030010214170057812691590724338188194828563430969351221757493475456845120612387962396553718881950101938478087173918483768084172421512128231185598576265172057409713986273721328575242683272973379830542845755967505207711422314331230404827419012952498465629871565487404188184059805154822159213626080919036047670334095228817096998690114588461488009306321979719324945723389271418179115089428467696714947298093505833774173574620758221058148403549938219248394859569844669317995711221424819880636202347212930953598023204662799610741098450545073186535803343170307825613781451971952681702311322427684544151804600085027423387883334381353675800077865851967092034788264737868997758838938983955317119758679956816224765094158182863435614576853827399180045898975045052606179414299102629942924320517957081570979927303335303614409239521205328835279067734447325001606084424838487751243236122469011780984001076535156121656762588282502893008198516818174122340235300471698626453521034697475276908362703602199365574485434972366890775267107642344226006241943817568132266593431161172850413268349501494491829370894478620862244161066042873247310719630889313965763906120920716658065478423732405711895609250680058952893066480824343855218051867495862632364895247007106982353219233695006228791563685958730621080537923963880333774469544770162629897779592033609237085213892991443319254359185957935045017306323984805449872926935731264173983798216578869038403429159941729226643866786323746879395317424881493948231558602032965009344161055315201782038451240864131704261936923653254885997338757714796897095823991448208095677991920000230286652673382627927065096625403016844236399635119740864807085438060085699626222029416915704212171208926843551219404198965937047074799304866234673918232323815523538599167636504262532956844775223614742098950445771903743444590370510943372709469773314370094041410698070675829757991523739126709854191749063049673550650540147668225667573703332104932854042200024834037497840713294834421730379305329174736196453627321903677298473037502078272777427595875378167348559585245902847832746811710779912989642929782466133267977023122129496587730947513293306627270836011565694000573451801497616076361017675082614071100835987000657019473195968877969401158092303685594336337391183820191047194762782078443850769071858878150297476862530470385830138836379644589453449584398345941800070833638258285996960014293039474909361802501348704063105786041603186823313978525238912244039508612006949071416702293411526016161802210858971274462624314391864225046064523984491424439347990628930966589264420498301072265346317524369486336206715023384302408238250409788334176399578669520429128320201894468222672782961714405332095185966423174655352832673055182766465834115890134876802051061556270513603979890800920656632971045684569792442749943932150647329459086770510093288562791691644181936687661937053925312026297912168428616122693975978895778454777694111355065137758675347670691334276590131711824502964232535545282153062555962444758417995888927036651772916288638299105558584689772953132697548858961864354038561043361605138308082844707382479900968637655955551849996585966970049953659102867498785811161583962678569488030050930985639173912684450117080361890754079324169521525566973369809618201400143770667950059417398775888741560759758031513809024195790972219854919558897553379121997172473509793608886817578833942930719034078476952679676148176553754011170262501219733907117411846027478000887983052324823923593498642597582963353021914647490839683523485101789037911627665412539614619825507149148781172367092397546063892967417075117383789901667784314263408975023015498666012506916862312582294058907845873048610787671675394199466743114511537977577297516194442820255633130231654783805966917771663407833430665456376739440765417335493001627095660891459190544687293121183496159273469312394769643111095921331505023957054238938226888071169922512289753062383804011672834733917226478762991375499150459242426416552669842987790689201524529280820404250744742058341771077629777726790488893083076838337075154802543379775785433320487703211863959122082376649714106821135954147704032720029210580776591289779544519473325059380357656958588640186583880371266581968359771402174631923067899506555872055796133895615629395783575864936339238860385575619576586586127622620722209590974256420839301703882306812308419484833425312735590275049487087132339697662176849679037314040077175640462073020283124741560371190586397324662163579390471641197788955511300234591699306780894461120442330961329493124037676382477580916496139152851021543232510196694005950671048099103425763529069738178939591978708052602471259046978630914212079625641840236005939706427118250069189841773617508301409751709367742300976404571170901539922788994055320740076549663903605298227078975297366892247251531800282122659487139236572689890164530500277318801088972869382561179167474062160482077167532793000961772071663907239275083528760653637032168142045470530375800720315630295694692296981492191598238380193038277360702205163801931721137907304463193365532357382376005049654738706982533855405098420577692552016357392469228000570207080984452955253610163506392186304917093603961087585811405950430459237877256711860032751182685890322843718293255385225994973875077073216115449473350674356124241315448639956906257631868155500923581949358548503793908537145815596971556608474722114072387833698132166594641533785914622252896185401518412914313779794377644415893142777149261354408978555968828916118397066118157532653048132655215982099516394692198841085869669111485996371255075030671332979196821061621886234051851491287180499817930163299682958680770287688808560431951905201673371594890130558095876551938903521290899776887553194903218022718032790265650235150400779339701369203323556414491409507048614073357341412980616146672906755335119545284588963720230120732046295039119870541024817004692136091246983356575943312226757235806137831885749000090611286367581734238076296167372211466036306263905274786292009715321052912411483323489621515242170700531667888752017857291445211286211823135226603638331398991410770654451603660578433440111567258279134830872379419619040691195993299647999529618611272054658846406641317256441256095211571786635328250700788570897709825727833901363198284256585219614083515338418608671765892962040766788453088753127757820214134251192099298471909288736197031541563865842615069219023704851596679788207613352729438726100060123379855159692819732696315298936424356648840350798969014588111280442302869579095770243407615476115599101346197715426206700693864289925577296045358041983876788290006211247949724850035076148795205963990533975244484470678056531372304890017132813493228207041269858601440608833036364952162067745452324571045368669868359180600277709159632001376489754007958960507662899117535654445987351283050164557388288446707444962956364322404639376675340920152012531039517934914926749981908241167424149941684302586633192679649993731739111548994654513044093133378519232880283635119220276124339388537359502204267721447588409719791986319055288413426655707892951958094154220324012958437164109046852171376452478093267290788879533649530820812747314007106505946852264442223532170497038011354835265613184590208206955441912406952968046854415621521672466435431482633786157022673482184121838707031165030776314399969802477423038519680491361947868141701312249950390180350825018962112002662344874011468927798403952885428333180692048597612821521404689483186980160549369680727643831211379717503665403449986852366213991354085467680343938487753801159858075143397912901058618976912739822647568504672695312035259863940978235950505235760359135835404784763268352094980223654035900458810121902749062144820821764074377410062230415342330635676061280996647971683600862816756311045848099226427807715169697157636007738978757832043837873472882267669834629096704200335475379014609002917212311610198486032188340729871423450773982227252843358472232256660171366467180082296516056619996123669613303656488848907092390766780911267052177347236283263596672896309037262901778382596064846527226189377025436911866196107595499423322841047874419572269143736247041566430290468581665891177837025395487763330895804766634148007555858504318058484652815676378886285341800404582811127434663921299507500257691675797354979236589354181880910867853500837646767020187531047328163079091317141432442172322704381913751621787382320819542244906290100320531727019973438411453123035988538014661310246110293944266172054528137995437265343342074311925985883621206949287905328352941880776995082130681217366249033978115911616040627689442908506953691201831094655809865860043671551061243548982172606464762392245442937241240514333407272845443533400544641127076782710003210174328153920783373417665579935025297880488766786324161761076617633945261643955346893744184323751971281916572263656072944844239201959926374643578866897224781487010935449367727763129806902744579370519088578189567819373235791642285594516363950759299188457850509319707150465466630821336498924161148530934320236240672739813030480745535815034797727672834038404694896402183593696500607013747038522608845681104211541800872940201686144355593850767207533782668769944679966139550177092115825435216359219168937295276471147129000857871037890840701702725227516320650807126981961750874040647180510945235631647513401871317158414017826575897868909763196660751002701061078790663654148644738941720591641093636457004674200640090956657195389448926954270714967932634202775674853698317144739171170227304448682450558946290525090040644357023233823860225442112884173060853169864831742086473872046034732464668054504961055938851540554158690106985132126585409159610933057622994263234141198331197466911889661325876444770109772974869868644870609500329684540764957346609479748084613104335463052688247813604532904198131040543849153316655369523102959942684158487548111583432846700801301197079721710377867931026761572307054525289701411927448486438730544969260240881225869597589580869817422946218897527991578198063033602863081767131438202229897868978085754936853774823222476661755304793271126293612289875134912572659195415907858414912558451749667754300881048794854531642880438893507373445183686673811856251294404967496570334445769610661722179912959615165784066784602107473428990735580764930688287161685403594954797355411270355453927872466676640948938428898995810976507949184693106235137882295313410283104556524505955137152009013896422447008316750897955118773780380406688964509355867192156277674442530359224593175748769516398716175223864505201379061680144939953612244883417590873848041429757980647159234905972164756926405993496410905497502642984866513495730043975374287254825404870107611194656062876155155361381808428218399303872179645821496355213725873378563314594490063602018532599600394532921629834723694787599420551531580896072438152730299834232786844600860799393092566821911082187314191298734760357889758671236745599856191830752040154850720279682550332874507958122974071699098839759353133674739574110547500789867667272289140290687930146888394926187951444097296445953292870756384412360605171087103525819750303872236228753756305200162116576920230652313269316310436400228034330006701499431671942292854499357595872532171652873345095559700842765278631550826289106426789734418178863421186448022306164580861456530164887165538647912434086390582013985409582133230434335862595532220043918616600123389513895432080478288155825210956432653558907176372778640913916027158167761856751820373078402305290425440018903196794552814947427486320648260880581687877492210470985186491111732528938415385818054925284873616454874294440324250690588006649470830132515627036689338317586680748347661114524142935494548322854524441067362918283533891289478699649426687698792186676640599679156974787638495822276645924830050259336148736958289377574570561018717950131479159559332463502945633106000871422203506661701725816699666116522531744321966227923057245697445041805768895854339640810960301072350252402213991991662947961817680115400056876412623427828070410892652381024679101780830500273709115768382504586803661136022055995925187554093026505755454991967222103754156635415615149480195001984893717121780571729320972298855131838256734652081086837276080073687120746958664012200801713426489421450789192562251983872745406699374328297797162260482024772498003195115389452025645405312035587548605451463400497717529660710684185204158636203530281615497435598238880589416327649662443743107213738705775656939664940062960285783909422943552576917369236686429105700307867816090229309897581785224356297978944061727359445792955342509729680985806378512845354114011033791880777903476954150611662639649950845013667138452349188790274342594137053708076206697883320531701067566314996236478950372703344723501406839989087887528320119806245458543647301605615575261873410973445108915754789811647655746968498486999927506986765633488878066293121565907691872693956171482729045762480738308244494898703701457543056475875504707354345146040561734810184454871295930674548342928026980306364340139129739750590509642950460440245933684595845041140940874775586646720972353108838921038823496994277518712233291031138179524353233105400334087763061512190648841625714401373868832951845689440177395134824512443086937646481301190511478394354512651130314679561653821036228467457459934611740638631100238589721277433352884744576900051487558078019639387677616015958582653526819304669230872489272014554588871065788060795350288079574153660691288241493625437528761838198014130424447286032669008481976096118526828027998187481369774867483081479517348241325909532459381992510283249688527513513719197824799496078724091168069162341083912726353940662815997173606330629086009261026441548315418440973317813183573228431336326209527153193443115152077486938864838066665507167896558877595084090029540015095617897787463738428676448391073731690421132828411759437448652688500090518764918058936167996081347413260279303209942781323726951496495109212908087786889821166129881403275246160547963728910955605082332430555073917017264785262435845046839513282019446823560960517698873948968229052041158410325199145023679618553004207326008716635406966809400595933530403274964325963612965543430758367073517644511206731021470216034795374973313540405862835407325861999595513659923939747298735532015867158688908486446000234686437875636073119729350661829999918281671652310238445973436227749028061418822198401655913571569360938559819452665825107462061840270747426705661376398644647055359883709352231955629830692917812701751982057065758471113193325147595264099245661857089826259306131405706681137757010930884537617659869736754272747070512344809862306292692139734108277460465396356760303190255037843101509314187455079208563188827588806556886169497728845124567869941148631652777659173306029911649530863939693793412866782024229894979655662865307538680723238193094781420035924384569615236457870100660169027754120301228744250152815639100891640775461036833448267057105229415544147529408120454846586717045606658923654965045215979719778256176499805720080350179773508270261807884196671120610870265443963667188109772379945140366715997665657095914258063013757057253939987938264634273578991259276931636180198731384460773512971943440536960000254793054708064948570845424950313406798182877287763774423036182208590297435891254470411933052116392738006152784949954283851371589568236177339562939172973742321008048967380088166194032663655574730167128854147096736768645091308525477110943071995910291237372585215868856449163020268654549780832358455042001588386175947266129278466553352547556980709234506763216061768097473373542664079886613114057496088769336143712654919585308658699790786818433675754050063514286583737708262353650627775420908789230120319647674696030856285147167854914664678877545670264854050089515981709660626510228850643756592156642991056816407807161431383685275075111206715704077134656220195887661377260732548088575207387989516535147073658822617255947046499272620945569738127107607081850228558290345718669734650900563243674598654796832725510025793755793125746262056028924691309904922029066084194933482514723608542658759916210874851557874622795047366260688255523198211636819780761963334386735459666281601818631738327822893136394424745640977255295727741544675076854188807853354732521631145901380946039764874995423358895514482498458914555118259492650112838983364840195304349148740269248825694233584948132640428976923575500466383965638160773958176392725093131414402777168925130317856422048847027081248661190673396451189703845708908919025300819858586718449495330911819671560968264734462825398557746251565249362104687698427428305285942939822410899920918479339728661498133663858231778294737327838957472667278640264703714504240881552885668294328374926871102238762278783400298249939855565325398702846607279623427655973746922955987871454574731555298157496843349653315912812981429416264154943882768559218393455762310944853872067988677944763122189470521040901652203401730164747921238928904659535071310051589976540237577411304451292385966671788224270258327817996206479723832496505536745457886969164034187447937402395048148978703327010853137589136324106204709742865749295991302504996865987157874973596831370357707142207141554264903030441822126180338075278232210737795092385409366313851830018062418239572383274355050669980191058717216240266807877343863433884805773619182376585274064059675467247608094570411527966116154730595682812374633438648544095843325209555266605352499929904205172821960745978744781532602600954961586766778867880600625103089644170025955202154341931580617330094035722644037851323055764816119322662080656186509146594585515384957288591351816037730968102573566555481486532130498306058033293110949828889307158086979719756439240327158653618562783858502511127437101105979462256495754757275704192262711116664844654322303894156735641754546659151102672300407527678404769940114755773208359566750255308284471215092729638351112861880708153321925036734993448304939278710471746080647094613064796027425777953868527621128427068727995648901534633082472832870475232613553120740106994444923401898276916453119594170345387720827405575462668240897857051639549439691789336900202630920145393743636598475263547440365398601861005423206357123432654654899112254236704453634894879696610685976949864625665505225371694996777765722022626897706097344941914695850091234438987434776344557379058311969830242031303461667414278113943463487540372424854299070030743402502426267476161695659131456570977825984401606488951629971745986924149990499658272800964147944392661932716236924141715928457779812832282074213186677691940538999987846288806627350990421200507459467103427934717219279111692538658734233969049251611291071709616297772446500749968158955484026786520781883663677741925651831843286863406138631493534239348199213103803269458031439545343903064478349917332803095396180496342601900987552490016609499154237703144641224477485384755195088465735246215305834911196206321686841568118966040273757487701552288466768680948152243290959508416207163635738021261232990410838436926198533371082463351383863944324730203348719369404308720295980507119861037283274112546527906467808851161526692451202201362194783085217437098984547289985738789662370529641278238543265753621021807828493331878314806181033655211910407278961573885131620876841782836995654464793847634726983567409802478080830405470690772692030610926300538676606933227941181613117227354166482823331716017859615373645887320839903301362124119351029124899806475100617210993709758817586984711092986380501377444162738067351339877492932609676734540912674437222400447172307341321654596333051849675688406464536952609046935036132834757796201072952847335702976572292751872833766624444938348195039558608315933972946223256835442370225966345524828270575760956485945598991907278991887368633094364253703079256335680975340820354705026025860175121621349141670439068842707134845705123009969464048917610677967140489956748086302687777845101421649274825309804173604723926834316951478323422830229173767276067015056023863923748925703697166299308322708607257441070388896359644719205286221283547637222936464379071472846336015190222001408562726508003292922374608192378551221736921062139870623589390037452756835723273430765120281254391264684228818961808331150530059535241872098566907308840434565542446957489015685750179029639197170999418065282144338320850966996921462806657491012368671111931966842393102607868170393001994474105551387258291078624368717024594391461536999329532498260662380934496155568427542290717652356001911981065591889786397121931229004304884789304938776036883091987308012443699497091686238061727770677342363957950743363873919644178498143474008757261816531358169094738033339899042107676471327654095345957124641257203303295396518648507878370415803453120964101029764645842807345879008546904579036372003162607635895311855699269918821960345468354115931779326579095868239472681806996260128866123912000864969900162369150373640893164366954306944734825422005628829748377955531711599824088620858180428488380712972196394582023138774937902057132727393072444283970979656713348609139265504579832695617181458472611105270416192037730050709629327506059814671070281385735526359987303219688427656764030542060457199435893448782816568680190899165469752045920828632889693561917719559604311937327081566705784661363421973269241950432939354425095161623646991874210451404309935187173635224889547697800331944850260296529206768670628248714943880871355848880271309675453942419159804231829209462625644069716859309491877762913069075305460202991210729309110430449806861616147554604432116924687341034034324958584131373045944469066537224306978515312138060155528827745300191924991311231988245515412523208199848611512647532099973105598514241449639593289707303730738866400597779461603240283734241362642963442123885501099091225239626084200352076113798603091533087702351487850702315560488292901420185978822699281431839155404954959466382454601309631797763041982021413836654766103610780790118212866713234421910265038502218391727268111475070095827951637234465679315956356870653299934321965909153193289478669980584269204896207283136185526910887080258452527804256257459577595857600227245572182325769550523021475262680079953542447261029270204309558124333644997763367248229535025769538958320129356133626168439255009909425248551316407742266071749346376030386690723524138224181542950923207105349818688122598085487634497339497967858538968808092638984843394022788972229167894106693936252272460898946755310614528084983333581123938930130767093408319121200643274949408137447345428333304562410254465236513860744215153138315819507297349270944640285383603606915898407604244214898303295023554800334733630636260070406252922667072926582411421096940329888665864794262148668956256065292917828015124419213726790932290275520359265045792123996287649614998607022048020342778271941517128931588175976717575311831643210837121290824633757187574606070383777692013152927200274118022843385311057847933801828943692243085078120669220671512074374953767964243393437933372903651065337160190728514568464127285145481554529825547563463652229571903745722595268513164294188809186980512481753728960210375749821478046470416169216197319713345781290286562681554255006629020749122079274450663929104161538146513380478897188623838509656423077181453323825615438904141193304122318160516595643114006091307921894592214925387589781236900252067321581007233361758680244972721464569441072704687632375739485403838964995236039176612119164225973542269284177787788644912329434886319753629006485396726361984691059097424691983550435651635764357555319223010592988033404573102353794201128204155720258429444667091261633982103255976319473472397063409078521166006403753843775862758624302933053492408344881087481719423904881625488077705241441653202907037860867994166576475764590143397748840592870122705417792074292373875605819050422812937745135943334993753914523972777031380773798834183215416452293917609571710070607616755363586272111280671611616443889847037087167999882798978703492189762488790978351357221276920031131517451312728390282308822557778493367639963913811854275861400202673179209497252367187746262760096290769591203686879814128841677927519734221872983381641456772056680814510837795675520457780429998288843919637536261665042332302029399539847739662144108156576351082282689233477201487707185183287909568214242398446975448904889675000002833617214750452547248867180158746062271284582403376791440049792761764260834634822416441398290718241098056273686580769696765748697097825515887341249808488356917490781437746002914996757125935766679461319953926772001942652183681008562419889407728440505561556787036369127994731943620774984455073077944781127672164056181591595933971847566821191923704572076442077032449876553146632896520703449271276873540792598725851046596371938155971013212531190042477586852198551991894348969730915028455109128629142532720179887506423493748387346577779593207601402428426811246268986065519057112698591891258629991820093196254320350568382806923401465847016762927342724093817608991830893445917239774886204045298294299070639415553411355334146821659576784987574047426833923904367302673782557442821722158836454613319494552229933457372619104399668505202962280988860836811345353390775594690188679626247138324368006746225409573687570772798718248114208898178579695082980063429330994331082048867150389998829377854688200601017756787763707040171400032452737638320717023685715031306955041706585083444166424635833671633050075655966419154122029076762382344826311790231456613472360828387237264724751389421208856399582493728552968864331027513985483077149240101030487220475414169086813155136362439871171828492278126299136738843191240553016558024727055344008268360147135927997966054771304315956119466984412175765030093367641042933838211317869758713001709686842720562400964732546123157017363581846531809211256866087272560318990793818601627827651250073204117078313040396066246857774531938767845240814181063855354264773217351001350530224171802957823629795846744558014879686065445662604631496400864660257285602495580242426754056926139356889020519217550081540970292470114633950184319871837249070412157952456088835605587484677292681016827467735794191767645532972401023230471798739222207597657595552416766167459587258750425730296489608214274103016955299379827648179751614835745937931286397363789985607681316204181919445126046923194941952608905535785033492969943981225192343472004660613400194419685143761576280316198500950629966290564867998140679888555314780171196675386897508644934297621400568263290952449407163033963129103475727308368148555466968468130920921460311522994670891166545318646675018142318594722561731132732289762926315544647508750164878539154886569993902992260113422553703203274562651588133617797121550802572768103351942191555731037424501297903316186913836074429127404793647748524933026933826792931180458970620727062539323141097897614623341660503683205271122597718365267950822666240214824579153904298934036739469011671792785279169715191549966062771450943982053201792814204717753962999210813395592825861891052376125857179566238922547862227188050201406779114154436918371938222340102042290504580461650296734411776130788481284092842754808598117878973141234269082233406417665572612306196710889298812844586188117203597611142511118521628258754681210786181089608589115275804816005471908041529071576081512793962274883750046806842137111088186762005643739804662301962965110231144622646567870787554078365980099149332349915738704458211961865976952485470119705521889033302282918103695440760403949962379828663169510150801884203752345759288894285219055893239309673616881691342532820515988704966565684413475396252676789923589250661914609963001577078634418702492557073099826608236510163119869157944547114526918744775025201663019178769785418027589415353175557132867712178262366407771248593140526391380425194498211993366678427801982936898274936367784728162014646277061736227550269929410162164498741193096325145165793965733063829201462644276967273629366807976071298548209965545417020968493053735901873947392124455848002943250820595358798389982717500837636402734652562170565597510791678732836051696032679513104974440632644069026323186506219461638212247606277565475630562907881896730098770316275614252011926277490208728743846132178862220700537403547539474582261163877753108309086545582679780734582617154167654163915468970640653800850574736330763144720549696897204775880822448286993554945456983467600913030304521962028650209024630289463067443053415685590236637093878265622311856012685613936345020402255790346281086215343060843934720001192216301766046600307057431711914779560847753746740302653094098038425667965597367636618601480221413979168138188640181964754395716828313086882116934396263482189745634808829174872861027173954123050526645435824636197769335843520896503789626937832270764580414073522960915718153729435673661408091493921608997209042529754694272557625823369486205729381036423861861275165637301275266955910356363633805757345405903863765423567099608691712931192613326953819954491388718583003350437801761546179840123793869907287452309753370006146019364635400168583110876517101202879670391914529825404814261037050145556792931994607993357293458062901489131268618032215889442703712622617606907170847308285944919103830766631715810639386744766973745189584039652691733024572987913394701092308452839089401091036718969017975455763701714666329069493020825169428100888366537032070302895706847458035409773668341624885982622682738918369822395788096875001782226036022174637565503933851433269780823501143758901899542738233439362583892826503031718035490415624229765589372184930679102221543251969244775222066971244601254713759299151965976206479879216029115541833914019609767028165741299791591121024055763178253625666056303863608917855527175407143598035283240773178647201823528508912400033762363112781369689449716164533033623470441997780225162384631357933653846348519918395496245828216457706655616736182825368495602965289685765501669574428264668217697007727730072469979596307424206269921892791877740284794010083117837817196784601485623237163368083803778159957502768690379439980144765990323583970501685504176669891347077767663212346736934684346398637280701078334362600876868758806966660573286939385505210933963646968668875930085483825387994691429946428709219086937404887119483832965361542289304094935864713999896016679787414934396314554004902634450654271907729633012695850698012595618701966199766174686369625247100264771023340723011929337413728803064261112965610517721697567938242287266782414546968025969230243572051550575243300594450529602666622833094358894314412901747964929430331123334193967907123736567022066429365781177112022500818930800130986338216472929723570146274101613262146684247471358171402845492942986971395776837203186881919787172315099287870925946555387936194456247513125821776079714898162082618994504803266674867776423258979060132348891930744746686305495582528008351960384442165021532439266503452650307809559538221019343878909353528522519149540579979655647875305667039882619943894590936011100253529677985050848730163132668395000656846497419979666910803712939345507571159957450271983741650349955202941504163015614711121391263410208008962724781290213787245154136548823837551984953747936920953388627004635323115634419293576851760865550848263822061182555664449167933231364149119312638561318866291223721792228228306010150954573302267091876037745702354103155232532182666632918970267757483962187913987907616746196142686086168150444746802176461280466987098271469734737557865089410999639364623880780510364371832507513783299592117243925973709508315396592517324337448202713837828452079177312970578607452018836139689517590788977549181087077902880066217719872916455640813713468432046496508825942142793361229872547694535080223910641057513855177976309761328255242106576245792713042972536004901435318139530702792800265314076163289027488240832548910353563491069392606169086050404480032261367004433521843583411999768533046808689388136618917703340139025337473516950023033509335026177237854788640734094829706146360271985047361920445514357586085353357729491672686071215985915408013290352215575521820891029642583397491918041730847320636309497966934190817059577896945432524688712089019006597011307075800716091736250096355398771201827092392613219037892475702925162151284156133695140782901059521119595899325533610855517926857189109830856577174607010224358485026750733023489763741675821511834076543386719906112354804451289068711094675497059863084457722533928323112867939789276285321982818823751548243679359917198471988625843276301673794506243520784222805872787460044056501985934299512253562678841294714193890294911536087768021474093985622495716414767346113351312310650712359496955817596077068128755885140481888288765277277257733927985227378052821641614097551541034325135007017037466933714927565598959430536566755858644560552106363611558888833349239353375006004836981318288169638250056246964937490778402733733108248306763585018613633734074852928111923211421704718339289634795007269836810859778584124561679907882060265100668327243119129716056559376828175309081030709332237908918016267745842409931242112561726948832969857974951022949497150170593162940412993259795126824580884517132905508474910483957744698242012061037775347463291858352875512826326395399011636388801392562322565647022522983376973873783702405894971458544836689165770968471475420789179325425923323297528102618711808868337326478127741363639737768797533330447259947730473749443962787635856683540161373629340530615490750184295028128429451173490922979830917245867091147933404642897514243804743621173778026669382029647264973804925806593381682943784866968559120513310155330460288652351740230105817140948387123158054152161134538893771330398757911313963027857120261172300366639712731449659651435688452856640699064243272054753999533789050470569635921790863743572374345976165304759528527775500508918965527762541036320426866395440725816358378106415866096880253720654827978041103710620171694633583715239814113994474723378601880927650589800465095567081698609911672981411464489405702270021534960851294247406209945259292056088809606451099634389225899705948006308779368078524006845333407098921503648947139688858501743353135541958689157160269340087273245943850667075865179685561765212357480359428046861382978025983583795584349006016206735307516456965282396390235149047244380437526239218939928194362723308628600619838788071271171424230870045781272238368908018562467397296252813851464127441168501267007239447058176981773541737859158333905735905119536716166079317455386120214162372204094449032048810712582154094926134544183993857110179205665513622817011693366297602237845358024007971652278274985688216618064280636455870684765778264066408702884795990001190628315672989583046089823096341047115373978308077754165360988424654526035036509249728274258980768657392713513068895374592462524835051194592817210907512745133550599444204294349757570243955769376422655383256203868843943477571511993124323393230403673816891602726756962175263304076437413183750549496110390502299248905038865714709894600195798126562436291466660325740318797265995147266736297982328624479066185187984500811456936990171168670897587025552987551518903526117618837247339672704171318004703155453893015935417961908430915650207002126181148242055381931043931861987839406683913896265148041994424483428616922365144637775925268616453777921914059396069388013645852362048309050067558824215122726713930169902299585234988295153057614175301836953452523585384996860536052762298636079839815598681321181265902319001468183293018722793603832500145455952152760075394365197088917811905138032699492191241531551776247818877438741316089358928990541321870397435547074311901407473434454644673622948947164269588084524632063163652789310531106044467811125818035133306124957747644918309520755319518483992954394319476373667086444057463262703656812488032075227406431812316289629282571378501398441438420925601765740728671406374329558653435046064247278026526314601969712376294926255950776854064580289614105149897956626960582005628355593882346002733859414340305803994452873461841473707036016115651173918258675857740709405568887116454242770937769698950522401993356199608158531989407569321226321303917657809826871575455992646204110999573749441668589199250846601298658095430809793766175616053752882307970683499373369982844978636798074351641972808034060970128664488664435978744848534009154411045909062641815391063951101493098727495352905830801558566217092769264266856601567607438098595870247746797006811631015416803935161686947954527740133023801617286319485238262200231317138022935124570800195625336234503299445670505147068836912842076787938607056937765148403884026912783761483924980472812686997468218125005519498065802369088350307042306803344400619899827417862049487145053972200241804105150601799670186514525953430265185094748247266756554083315637846768926377749148075144079051931954593520191199219727536298016171003135668976555060611430793488795209379284216709941093434683639371685207646706006349085512259003667674529473901598958705032775979756228112872007215966685334352598328519550323737812670316587279883011799286813587464347450746008354516697455484004460018174592100552628980929823876110506627432460560668486846940142592589426046300040242011655590577136780415395492516337142582941254830578860813349438783284928132553156948199969463210187472809886153356740776407005567832684478524800150614251482617546496421084926136792614927651073027299557353584722773112205699779318697064454043424360131188327381306198630932909238262800768906733258132719485202624807180597859446480356929213112601625420050722944093956266775341313036904646436715784474653217301661072239269791320753890074602269658014623494073912248690700963689089779150430928277106547623472354177988394562332987895171521537332765669102708250776832859198358549309346800657000390240521566507935133205104529931245731448707620630683952476457739331661420738396984026288366269643945259550474087764870779344558995481178509494357374379135537289355389470338112237476024274227510837810079228586087359462442212679435514835246801704258197990445070450577747484465204456125170246851189672095806991602249766457329816180740774923217846332603778013926120038640431030319876163665861818144984460830993248318491020405555748408588145323734832603080565151061478884097847220322841452983714812118931753901983557298627420153666725096350340728769765217991384054029825359279819129883588769843325761175452919550035885317009504147007542925593037648886479860809400956863462192329887467294392610591876777378339666580856033395442179987370636253965003579149683026416188425258244933827061098410557873141219711309243082129604624865767757752292715942764066548109368341463952539155322824378333702393683321285315805848031517619582834573588955535616515626855660048964723977910948995853411102994177706768744966767192112239229139776473140197216478817572842816383418016655822865070432854262923787887697924707896154114029535593518329224542480027837783668873879685923726249532833779074737319175717180283705556221885450084630118211550338273532636253184801865151778734851575066139121666913888926025273576557161940196742103527110388717047784348378332971933478113480015732739979891955528430666126728186487018925914270234322753781802477195813594896976123443868344259859039911411393788782227655493958972954187181911375356865614144562317697147700966048367339217913154314076410895775032647283614317051697082663232545785003067757246011255252169719060195642188761700134416163433829999588640324178234580712265858871505441594663265809093115150893448007363178245138346214111180131025525294173597366676921532076675439101418965105498833487238772583759321128100304676667038060777416587259709529836532270803325818406761845475120951267916867445999840074789584665251155870671066143996840786623555048080440507680587501395894410587353551673777090038786555704846613465499652420709498891711096739706334543818976456096397444050090803555496754882431545295747557208684896061505214712490828529285527837758858320706986806828075622765457068262428760725757018761148757895803044614456104027985669845648508080461649396636143018435534331234153418248919913863369402133795991378469264015668046191627405525784254590030114996456624655496263049753907314081037789008276917949469453076140787142289727916312873160835819470383340012612172492534347909016340683441408013024694139080586325655853015028068478450907639691412455408102005264072071738557862339673441834337058809503655026630507357534200150935281271467815997671295979392028680275067834454598487398108297310268951363564253652036513420391733115335299643080491716395955980034038615954046054909557903568697636970106680222645870419162849620173331698860622264409573355052947689674835382932733753990203962776942872925808583185535297911929733378393828876914960057308817179237710244265695452448955052797971252960846869520989303898230952860513005495135080947433152461872250899381208725338358851625146886186863074821552096053242388517786769345281375800445016823535156177793229488667387967919838750152587279935158634394849263769213897215064384009024041667762244450481580517934716010190719479559709945525930784446438805251161579316295121143613822775648540737951984924746967349227088433660986777793830618262558374110483255935229414401163917111887100387506549679456782527126821747620872049379631683260192405210988336216852833106950031715784378656071279298170351599761944224536524754312091696801992509121136380610534220171450441712850748621069498012317554922481908527507775615684827574538037774145459616072019875519213150328694028707508589150924213102049009518783060057831963731292628668560589545244915469786372688274908675190780072745248155391821455995732672281706005311857925627448540416884328639388159458019011255451457480867456774746281906724925563560441360222877747264063062105967973519869409825434440546628551235528936876721135295446493809106134371574455597186173867041890782489540201706356686853360206527964003196959133236711124397174452140556192204458400583085017156226245438675869868172199661969149571434686844212605414312879833031663870924076867566459492402346817845612234290171319082123876690288356956489567344929480478598917023249602426496470565736017165127560085566455338650297410074688214112946269352304625650228727511619059748035772967111692648532918137594442108455917877215517854570747485165265597536741250298720847765110913456093866684337989088193228512439523636824568349198973115745157433865509983124611429093486662640381558904623214645799049747145537710625940149454550242468705607481333222275271001218230412265581771308767263874928038070573472312266987623848603551997588916310534610054611333103759153262530513627922191719871666022906721624459352616211713779584479386732080200784343421710864556588351011729986079559402125358750869573634684284721810289438428106226615190342069911714325952359166594778087918012844935192718480418791234968918065466488145665987194198337799738975194156219607333435942281380425693034973834990853217492786838267130345712363408856466398862064168066462389928937358663682861419750821153962444198889933241528996944722411652990234246256674999120990184273568281430140539431151011245171026244753704814945386219171263732354481964084299231192297070437709290981766457298354132753045601514709939552942062037802923565927467199699400830793434521502010806761681039180884496957663414748770580469222195639714890493155866041788024708099443705847419507218371018580999469487079780060766580566673766783850255190483937946413745362602061580332944174118918124358252968337451801565245968595116415519468796703219647672272439559869669409712082466527249823205065540625640299602576988307106928810438306515856737413781135134260193583767391141304481125673599644857265533739642231869622593887196521579216509169087129274033723340880350881028456812758869284994032940822216245334276551814519076046649925384584851367281342197987931565660627062940764303957071975545541817236536721699351210319444570284022882615670551367443721317267654635997487372996789639573067133296749612712368901028920180943789588918263415928886294041790711332538136487530960788310213965853718031421369597540018818075304661206995304196096443443824174462492517376962955923791791045455459746057214336730107920581877348066268645474553474196601638721851838678332642344649893708901177909034216022980931534990035754826614988855839584247760027651212074918045334770819352090577806387011142156942507096451023685252469655790952317192127394298735894695873122353817845995271216175942613107148212119601074624078165381082348330051030686189042889281371502127460200915809194782873130276697154184342614161700686922353567996785362413625484017182138537508061418962157235682217442155117779673210043233909240492191309374441631447053386251506966534335695306174802538882995456563862516553392976738548769970023885589260082029642712788926202310240922277312445397436167680536620866313250171924490885119059798376895411296320684394641440031882135063305289617847942239357468688426872452418526715727863755845621000571041078120259568657382919211670556423607550459869166206927456370704600025263502578989303381359374093842122770207912708006748102576201648631260311223691310438542734552953066912929971861015918228979945153494474716908419341873437755455499463046732775592748345007820696503650335556613267165842689502209778621179656025880438263404042235701563508948397814343893224273551474741281385285951102578961857946363866947510405116197114736864714975077654666118642784207617952992708579333349647640912823891004832451236057437248177307509030407881732724771986392456888656239847399688095039433973489143712052854396146125701172791696567262439746676816507682489496339985901320800313572532334798427332085945456994128567869053621888544709933204550313136589890391900830309686660848085387152529089939234699754726443856924935469047445233293651516289367833955731370890595667190669315034651836169724667847497539950749598607572003385586308957490177510955483357450487777399565432484685526546370648311263860744925073694906281640235415065317730256696577668810469554235659078578905737082926166594231578805291369024048559469121295914356323986897602081675790150132930477622857922060996128554176235402080890453624098114678423454972306849568402564578284822183300026434027475975860532017566380423841076206456345120160835808045758624863210191623949535409183088165565492853118313557275545624664443189999970564678088637004939333568811894303265253564131837171557199022319718476700025173073160797894583974233738108957742012056679486205554097506544985364400337868238486760497727992764977717351215833484315902648040510833930433559909315768811676921252953151394102001103901087901458541332504664196773287917473607532872464443995513677737611268933977708005340990467032313237530268039519935180217666033188645133357531086750720650389325071613441765240479154900579755017257830434707300471388978686199238147192409777058488388534331285764468514605564895832101626604989855164927140423568882896609319971319219544308405377808944244108798946612315941255562771131620685002423041572089685035867442893722323399840132277675668527551647791454425500152313867404992395692144920487874689165179840656398524901678461926167473235174338061465043194896511356054859298859528189559167559355664391861658058717707967318963937317818734071269866567935336672104688749357961254977102416992725720864702536035876199832560405669305777376697820449497328238599819468122921457490402571746281946327686498445767682013882019179845731274461797017828915268688066826861183762864538383584512864132920500754575521036852220698851443042531124826804592954120956007928684704072667996322636743618688929309760176810969798483836168049983285003898645801704623423192701792497940547996421622163620660426336776127061890003439776456788607400769338282802237053091176291532529643099360709101077277381927248151917594012297700645452478926071602326577790733448618665544369078711902217736665907991903989990112529767621336281903515638001796439554777185054658912766572741384546975279728906971996790101639923029865348119480564401954698354852273633836476836964254057043526497541095258422056394157978897991685496780017385738783101092224332929525802063393020206267357673366249543057319840063678153553155837964603018267799706583062909408403041962781514087170499856640249220571994184193345717698750382238278770953690914852420436632260823886561357119659532847501070139547359326060721623037937136871031266628806218798625202535424313017225645078978265703324364105960892883444048880111513305871030726885784758067232523861579958724270394157981641042285890557015399553065039917197234282000989186184385043633887810151014008374886359174650961817759329913360493614889288800086048876983519097249153875391540451842481865638742617127131825280405752903412489198229378304319590670448629560417178929854797374866112491619760539727208143147666475872762929404444672037140247210876387779849646964742982638460290638963386132359030395727350801120599829288247704785192175883163794617087695355974656623492087711933404887257920264297848880620027762015231804894068052504909342292667973431967314272717568328089546898045067890958480130449987995629188553433245653273959845709372104722009595516463650967069504867329517646720814372645639459284153246759190988004093622377049841993169498040012267652748428728206370230051024023361509888176339068685597383570700302736668637349767875727754451640506627729519821747947117501056617738393800011352938826301150439922765338156646474286915454327253249289526476028923317037120334776708883568136183548804287311463202332679154034391571612314569349825411056356328331123297336442309768819214537070973142613601023921296842029755497475632011550930680299384146603186723890608197161571336269295272277048917057418837509800793274777367097809798532628162487747248611404440500788076866901693202217272957960126362850309839925247806932632337827648106856808037073456307632439444914778894366386799068574270006395878760216766169604489192842422126327508606882748570739096683385697646346598691115617968082452443739007512254586143363210819518990163471051753790370091610068683436606549883010118564009833087172681905104088343830473636807766621299220746177405129138974636396250022449988944962880635438527466314422737741272190688881180385580169657401206138643159282957040531337853924629934793451146961280438902751691406758364842207661284190163084242320785954198953062632239846956300820130085522464450611252257549000739544774401352085930718307365834064585001191964512794298511937000844768832000496910551261850700832140157090452440640946063542592653057408623234337465427240716691128958421615110829058765743152332443088287601511700325825967940779915546788003556555274579342673357958829334117905796440990962077585489732446548074574393607993806657839482112991762430057620276867410210194872801993375265495010629195418043727906697218182933620332440271853202194301840996275693445523046056582776809521298293369321073581658051402587115517944193295677543320981547305119284448895835387993782646145878141509690596758785037738552222858231796254128787789527119638301355592934679397613608261586057211041664454169235519190331845302244829999377264432984099462991716286289997957296116833359349655070402545785541030111186505534076733289828719404839390669629920891587796502938310039363898575961337539616576545929490665997817703413978150593824846927393667203503916643779098295216201532181018739820531486691551985017386891629990735504160193800332062365003439639226056648588499904608278364715778196746447995151662350647548030450370832569221510122383432026040378670056631431434594891486943315845555378319577253766121429893305866630495555193121428036028721213522122979129586728992298280210756590178263468285263757794517597926935841204988266004439147615822550333445938759673838781513191480834537931237676449102759601517579235357632231357042806296449975389546471674619711833079686951624945806285837346143502486472048109876540495193644601745054259996996956232312481462968418178690923807957715297207663192203404504010084377184373500089601040952716042869471783912971012854361609316408684249496453336596735598252831727213041255801480215231625426845682335763518195538182838242132348638189465548031887451329125004622713599100410084491802308104121067705488236984190427954934373775193595013733345230437449485160889789346146484804048592940120470854473602705185895259686075143518744302901359307525303152274074432219912653995334660129330139733055007419794739155877531151726202913923140638547855647560424692518526052461332084836600738607147672052235034233356489856219001143078940347496908579222252138707315468103797996353402848206635312366952643138537546183501918563648657712945633781778715967963763700832142083827049673514685007089680582317622847018206588148546584750301373016256381460023120907756988946602459652272291567458467056816876010809341955014339964899235899841816951132049770167365564820335769671789356170937708879097068598928781812684126675210648323990583522563906057566100380716645269855626574350186427092461333046040563201409860483174952048101418807670795846317527723193358744618518957811671019163146733576456787882137561123816455857629274717511828124010540703648180458191040631549455162253760569015756536322255201795657782957371746896148442509573035055000570041346346424786840305299274964380099523237202574592793791978542750827956302495899819347823859808858549694446647772223274836129590422156364348840079353957867366557454081339799175234255968804157050848549045251616603184245679693143062817039793483789400474889789755053811804075305692112418449398564956369738554824812117922722933716467151058183958860473399158571761146512743874780804088185259248552699389214558456911448941624954150657213569398319480502837567432415752465601968721894671806246902884005069718208048386558955775144810569361690972845269015487265519749807431912452977779859013006965237507668442655954013660985918731710493615168692367628253820928439141133682007067922197793498080746756995221774345580464812753919806644851175052197563970118422164626270935770576390080437243189898160739796106348736791169281917984598570229029809538050689290607635715864281587210539186037525937652831591469590447021647610561220891283184884551051864082243811083421160144409159261632770676964023712731447095325026233200475739591928957195727514605285148283872840287403557063723167138271007354083712253045207539103174554288712218740939422658519651009456740591102346363316532876540428475281336002004954064447057995186058442217123496166823548006847347039907349642442882241005377584756395331832031211376151754601390635927623811472068533115624881296827990663247823748793513554897228071427212392597555369687793853833588668452977947134187097779701952240199153473779536970664794309863966145435041310016406230494309795075719495261955548101842082849375919610079002764611444732378890658175007410724158932130833393845118654627894498139393055225090571717309887288055529048633977922781609089618979614491312261683828881501878113156330169880621479859566998703682405547999195124697497387751497795122395853778760292895259350267661157268667048843706943750149537303969639457190415120007953436476999018419813036894545323087746424707597008444325695805876879775260284743650290343057192311986214548177181240959080565311309326160612641596239735095178500716989639980856437946948377180310567606388202796678323231535867403499229462729446724269086486601220191053740691158184706409492451333671475390485880680234183270650293323326831992104611307798131545948619277818890724723988282568959693927268822646982495892494329042660586989385186616878801914167391394649602557887208723808800768111914206690431310176684604625116002598676462823595576500879337958557672374445123271980012373664321270980724238534157305551604586221009726343842567169698657885727264667211006085608367925581586843239735286590614346580410259974038486671962258996459664642516109395324435596819547363243705492592775483791222336784093857681102035145890252407959247160688889695113813884291054153803361051629347014454167005413972607465091954822156669814103717244312978402948952503041122894124934636936308368302004013459203122430734572175998118609257630204690386421460753804223605345957120997231147858282673232176856429038094764060003745755780216888492596119081004489092987866764269516855480663584069261040846731003900178710843126138396392884500239516749147379081254712759676942697007277751132452884074628087757385995726137391783056654504520940859755640645551928206139572889722388312195044801888273419171096786874672574291506588801067963381581240001398236257566597048152675793711916819484525425566742702683089065165035871111563680703380286994607589547261604255475067258319641770225406293913404065651929879882169414483299966293406072320253193556544599471371633413880556928996089308732056390855039465492427815887507791482064305049039979378052066588942950339070423281457935226659823202576658924079937687021359735461822357843988970658195650037793985417632903934463693608987597882877424677796946749600914315205445339394421070444143087650116275881151270688550179349808099418169926304337348150650287524135059986612700461670853705233816076087831764507141449295410150811871635995977345467569484825943863595346384896334515615125659888167484731297314356728908704742123332612488384090326417648072150100931962810281073560620870231074050728196446829110566089129979243888599630726542601955273258698873629138888140538240067407419193437472138798512432316598570481540380705463664394631356059731895516231462489499209588796559420287801450367344240916549564602541780916277058650736993810978411657513843659200480631036545621761730311864709915359773068567731575881369641803398318876991383882775433561644738020308084819671283235880687615800879779076640982769119219814492076822929196235882770057295556454281540048317820387010071963225813895217239205076947171806928526184247122359363491392744714292201081688498113557919432115638794752473828774565766563901690542578137265877551444359487081792271883422007197654133188908548922764374107140475364467619595038638629510107160170751813199554120033049063361608018701126806124914168712161317154581770086077773212279446374507964350471838109248298606658292314677948400732915912630086893013691938665872488305161149462483619506111510012775007533248291704973039639358173714313936478865617625840750226864653767551694970063430306662088193468507058470242264245797720186929866869940223656529515471420102089789077644497402233473203936521556733417553941010591546783480162802309954738406394834055152358451645219850315449216120959720553030712588989404251764143270132054628145772903372267961618880411589259232974340002637172644659414774675025184894551411107257434393050422571656040107759581737720263738323057735270760060001696954524355071049080699385064948767964366999342195673172655994536279305310459239701079454610206401602420293304316217503166807253665465203604758486391028202357498523872766944673370668282545787101118400435917795973829683834052549523263160628466103308744948211838144374127630535802524463855076792188326493328769319679665741901901728127372355376378679636338937701246259732890348295381004970646026545779384584131013349897101666123675717592485889799059264737561833983396993535920406562676999137913522340991715293002480057994389616101032438371167159321852145022443124693201980672504362008843143411995830958785007134955362625152507237263716775429890798488819931971956220162419111763546273940562387835945307975436569748562013379615730893363549340108827954518505288517767613465038073312086467401481490219003443925306915602858659897457605775001548552841157584684699856692125969731487484299550073700239981970722496265085886605734732309794658033621318137223116290645992727666375338489309834119567982860543558926685431506723040905454242522142788873123257472751319577189462769463312057322534362058489585496278759157306078686780323173981931651031096926531339930660513901454020023700420124831715981998488848024616238597990714301974624307055514633487737379834116342710674398385304040992305101626709188048953307644200746125082539985384014679731600728574165100353976076793019835205285188138777822780067067875176550005840240133239950336389260487529260511013966796884449162194648624042447202219559520529590456984803553497843813236201432985126010327593934909064957755578387884491477553327005241207511964735260474968908543758783395897879610099975410007231304143377353474275351126726687653027408799830303332740777673954851568631152366348782648078852855398412651987769367508263753803346941211930156544159850086157130509224673042262219729953676644534137404215264176398974547405270982022648099420240987377293231688679307931428011295125295570866856432749216992581773662114928459579731128764666949633188684929277690487873641279011889788506785177385208743148386885515052954729174301372772685999211268450568508345000916157947998428590908652697262593161179635654803379265652618477857073343423439726347825019798665066466080514252137458669892385716858396971432895195614190599531788005382969578225861023980117766639274103364568378741195158247016273648446241651805394515465051970017381769842857365771351009326112955658503026864467250683483474010623506786464809259608170426855324723323861783753062304756231488126032196045813474677408028762918416059408656264326255561099450797058485792420536362091651158859417768147593829169066459308826106541482485642930334403416592845905699222298076642093413245613932294298348738272473255844632337770218959314555745357322895691262447185533615373072904443243397509402186648150576961007235332186169156922074472821753338092513287901408750670391221149615414043452333616516335406826864566920366780522453215141119692972834104946523083052313189483373128980065911253375642128033000019492929912667053020660547674503637202069716769488064917367791157700704531666528432126137841689547958437739466762106856699662307759950106465260171180092053208222488699855201053525891885931010710434692979956522654605774177561974010066500741539523149984566978831952803103289326160075095807781228285895494140222567567114603070777249262563482751707876839333351705826984414749550681899322055756698050368738110443698838935439643713185656867165855786819257179867997117925458506640667370308261137556103910602222274752091478537681903468851691255268458963224949504030953725001250987152216785239743198709011000517425406443132618256651916064075753309546718124149053288432058160389983666139755542623758133737672529427940524997341571014712235627462936089757077624458456214977703053229592687581953066836425607987702038498166715088400696060911847966959890701271339284328992288770792761843215601450380267795261684584407003711189239882001729300664467753261446733439167193292042895765255838940125753387523462836303722341341587764700912250675285510950152635535943227276811863275934317641166069701883998143479152754616233632438142712868957642010339014788096924676438864707444037283493363564639821523215298170898891627804932292523266400918556729492033503456855642569931193255756423836867870520606272181093495263369327738482186822053568783354059395814815326987112522626571903932209216635133249919459895095206706999970523234742398054361380632762261313508708851527010666911137428740701708875714417781723167668694089943694396112420256482391207664144601180622426424936410548807375889150994277075143108004988945530123044419517706920940503192702796914249691999020269250325575575554118511572138569880215244314618247309442109423554957600596611648451064521437979838096401951960282260286157168064579563995799981305599943670278259417268150485857281379227260511891440060717199045857662169391161660273913773608510486455580491050755273419021669547120524379206867699763285949330736104374219172085286707671238424765038421498325964247710239860271387831045064302413793784720716099226528193370563143138876082275774863554350795154797620738906011441078857307981174913123167468768782835127843576672152681329777624267833722234161010039076080893821211383331219892667955523986043680341065871876311953928999486006134295036952227800172241156983191753724059553473928382516651724388002003781410322761678412511132677731655569370075946108204321540018527317710651546481907944159222436987378736545028333656191113071726861166151772845046437737956341716410218554911193195141145708964779448589407600560339152071094419021908152849436396418892267858896449683018514280285038560866637893225514183203864091612021917827641069532570201293411875240300608932214819284459975158952676101501966134540797777875556813367832063942459313954212595106327758354170404568068617101613868227917427084801990213865180645361725100356019539906486835803637196465042135961960776126804507728467298079729157906841334123446853856432520629352127654509768157548268195712340856814165654434676459834940108773770159683086509162060010417390280549548161878696014853057438584768644872522407156078199947991531800625248153919588251095329971015298085141378242144170273772348353602520777132505310862248850984429868082179866725717753447497516560925709138431524034507206100442540989930472503246291168416932689830328049551576790416437737728700520884316173547902871972349193420691141068454659666144519414931754051973793078563201908916747647948803275327403516951065084117958919934551001672405891715273226861891771974182369336674657903228014399623510477270192103425792900769548594941704695683766518759491431283299574984600727992998850275956667911730881483801018110358526649882742620201733504807540146212185551367873817404796183555712625037632749925863661669819509096917994920420988493375577094822542046922868745216830199429402391548527431050906839466001440820436551826078319277936616821812074463202592825037178831649312828262318280781490215280411287576557512518856101835597695805998467221298594234500847172648996802770567405428069913495811610572753045647492251955233572525953832845418870310976999145054688725989055719053234541107765444088936025791757421952314363298616935484222632371967530760237718358151262323089076641116638566389127460842222219050610041448226354703736785411630664387502501119352247956021820809133447342147468522260119814902107955815207458101121649556685772428656869697978391566056463139422406233444502764854322487700110893268558719519170889303005693239312352172469331504294176141257765050337290863448972490635257414140029115266607890791052511666662388934246220692778868692497434401256620024786356142462658603079019648345613573848944710834511393828291076349198890664364369315454582657530610175966427715018914365016406525638449507706733073665445840899781254459243541411702402103193206981533541947931817885681446475608998277694510892209984669163771732924381212814750885206118949901701388955949068141219455959515942104917175250224915547726295442908979843858491806138984562301855635913193569938630179062200217786397416686244882677963230052831869508396482905989705342091862829735842215606759007423457435548768463398076769520478146295575416186566308886268232239132941461083593204384703951552311300741203303548669617172814246577999001546063632993015423292687159727942889648686368872739016875148869338896383290895384899243883737375694635720962185653443672803789237752198404107435142521766560624455815449023245255799557701485651021652692372062375286305010157708368987414244511808162002545551446105162723406571780199389203425101680692144423394128561866567269380669940555506297125118088003748322092276618089389326770474396557369802636756469873561503270336912601755388311189527107132464027927206903277732236478450278197432166611794951786343768578968583909444296939518752598256903717387212075318130835085144187802093009960372594514141623807955660787204965835974120446415280410501531072828676006719763943270635635093517525583329173782630196319873804043075195927382846247515591443892357823183999587564608908937325543282894802005611501645405816691711486647763017832320564387107214722612706698509021960507608905921795454846169252070084312603268369674068956646705110117792178425838047031258278809617807342797325838828214494524730348414314994993176748945664304333060212976978283931797942232213192648608774674960770012656923553128687453714522613942957235613058003844222238922021652952590924554610739278386839615415830757521642751581228051017921705048749330955509916133071626040398287888337471800423884389937853264852568049034101375022932016000984907072047330712984841574845758175959731145167794549337446828110186180203887056741264124648400407186178601292738834040908885382244304069906893837460571099040653699921153939606087484751505553475335651712999908921575448049248138567911663136665311069401641364667865352693295584841643889481408438859167111853579221768455297626815020057515324375046442958250470479212544497538828969488957417309241709839532489525905230577123447979469719339408259072592313340955115421638965758071893234822677170151211237502712727566080986987267740588395710161120320171024506161601066406685742997355849767950814560462349486195130365620024738315199163743802630239691473630022389442626290925445128756605569893936258744207719812262502342041563532572494834340735842022674188577105424068593329440819242158974142464692745490993963954854736729406780830613005987897093851576579580708035599258098085013919691722049477330433767856378637048130789560440188002109812704935245892414410094906776689905349715069720013692590725825929145088018082462898995637451876663082389952786408216019497265177420423358880209987903304295409673798334607307151031744162502879905613081308453121968873463756353110903019733046084544591478820038672155213328643618246115336008701777963850709070261135388142260065165278161735713695324173883631514576804884322046946476516786150895032286557880261251217074934438636131784574472837091734182204399640363824969141570863052397031966874497128516916574549063900057642267456663940750448148026360229582237087425911362440948020779262906864012752169979190468742050687575794209224045117203416927054277136421260934159784594510856945555078343294452292835193618984665357399349011023474843278741887912810001018620898618986930478937553511265011546155225269867809966466975754698217885146467653290932839095038680104730578465212818096996904024518882480694331825917932824711979971432076496534855599656005180015201246844843111244214088910083087501515932209808379707755332777013114808577816900906703814842135390097150258130342092403095036500931795386724921787365085147121839664189893343671027413710938073674429491117637988363722604017627215008373950087171764637925739274576174356506649119234824553096364907390006506163626273198236463245625147660346892044079246417535592225711197473872369008186646079331286310164331685904815333700259395057120070701655500625666174081008260275547121742194591137617879273537276266125807111468165365522472424974216693190276044244436542449496071444503644898505480374020690204705053659540216137312823204657537099134290784378197383889389389242751059621905553070585819696027114652151290361262878217380286153927145678899984563063369853924015604906521371171295971781208986703658584131299782464085159420345530250113920206303453748556986830504915688288319463903601392376459009491681922833007225337271785435915870333302646558959879394986583623766798702411967897010717497138979397130920852492365999984200329081709686950885326091422490235388162689105571687814190489059821461936584408281797900948407944916039492936274230194232981857390265081668187612669670150869833024488187197802091922274544235349363923271712163681001113887972556424289291320461558858015867004659887757546541701599162993361404563850791419642981238281629588952886066024632423725138054274311350669002089518977301132186209476706349571075218304115170409694448188955220384689437290059739163971629376865411342591317539341427936944706838341879547805733266582296652733126078529555423698778148696057076018995647939865846878550141417878951243505403511023859607425470094016451849844201403074058548990479288518533736993686513620731087775724390215286409491852218120181863429961713587312642970239736721640125054444895506580170241140047791753665952607249321612172851779013025606548272519177052149369210805882340762737109582619255964646461606165686764504560111299068753603270019969030655754709513096548779842096754184827680938965777779846242337068922840439843015130373072827785510613684240713696946407133635718435194809471680028837938377696314487457358214864083114987319883093723249296776333490557667337413185309941684700181707738598921004451664426161430129061877418957224369376034072496125987946392953924125602642573947223141639195739930860268825809680947780718985634915698104862140763938053156632388503079721558040929713445151365290752390924303030099953375826888349643053053224922833518349227890142635378554458354172464240067820124319368674342981386124143769380108668639229410191666298704328352629498901237845182341121825883177004579689224647191141867360826012721620235796789277419301850549776097032435154780186939544733982184426546558445425806216874466582830253209734611415024147975086536322628368302738203131250613170531805460845768972851158302119307589007714913714516748757762437209745158144901930633188801418502273562461577659575409701268344317447174232690050124927486132925482660915866303620908717441326678463821071880428865080974773532507898058087765963552931657645505856287065860069298852841161344719465902381204300946339723622309712771938519946900385380630075158361088520823022823675177892430540053864104408903363908612592442533098123125046185310224569542176496674751448126681300279608404247108224481715584034358756604604376613547183815782682418985774100920727841722376759768620391624860029672950675708312920389057284029234475966851189066815809147129957220465800123650847656857577516343344414508979310269309472347868266160524546277602470997407238042735137054439364433367818182209168876182630649659012932021533691440886500012484235613057824425791777015478271962607696259171758813911897138285369179466647977725921523312457526837084968044680308831675079179008760507649490300452224859891228310381344685870561811077524265219997079428121222454509507003384359176699883812027625389269601693001177199580168387529134338266783782861193135911300648787432967887946849772201607869514762897649347154315966021675282785505541424053834199200445380421095434717047057471803078718563311287002393093985293957667439993483768851330375990326364856026864061669720348391486194940832259943162969377094558564344610579734446768282405369862272359804901428742592500731721649290589360873627560791448938768083054340464537211503925434763454967712832990475535610158994010197429372161351959868996362028802156526092534805626755383100591023828683936820540190907900716911782854284900012440607389286267200121969310974143840919577261444017204519105229012745214229321754346055626594354454095891735140177177794511341541370738805748395333684874187985790378779975705408722967387677115493790598852462657185227820115264643539725514759010817922091598149398858290696543229128077454133961236621808420149324835044246020205521767918752815630025940051612621268716641191813084838894141999726047646329560704688623158624722507910012421171266829643805390058493352740352073691903952384344863250540461748552494386846642373859822755955223449332110258062395907628378973075117918767511282973143317425906015740886649449635455913580415870381689915081922010737562395748149124955603060541282140187213475209592153267439590145929167383666628599500540331887998238336816121602794528684353414942604966509805500532254831607947637281862194723685332788995560945090735810347454595251948551174660683041613596669790937170270055917053422911634416468353290097759623460620084225743471567296818395040119182398887914396299452320455568934238159082213201959894338058284117023801346904488598090482593574305178407040948309241441588778892380452549370146158726842384772616666604859879098394990261930205546060935968496197107966909596697762962794994545165016014490024647194884511825710708607722758984750795921113930382672007969275651534606557877964221216933008246053687948498638504757630760000784736032464911591485824030288293956557224758043406228216368125688285170310199533613568405678528532193602018953990360371055711595156586211338932182187338732001571330734568822246843761594617665288753803365137050036027485152314174081775740898656027008355998565672405369871768331911505718564207959053355372464770111975901431942585095885498195007541432020789737739547156386073649515005007440286066421658525410486646521698050790174595172332481158681891855293145055524246740677552199791796438573384614679411023601233366766133037728150820102462255292458802100116458049944720507131185174701194117596413394794538407029486974477766272973888332876821559554693145154191055742026937294803199443357951164651518863408405087189520899432008448626111859121593229192338135455052403205117505974572075268211732669177017494637346303951745438865991424558810224642010143502666585540031659417176455564274559020294027961002021635924388032281118136529839834201498222141299913192011141220990082719626053191488248256677435411335930194716596735849888379021406724325751511212229762497055410030435221223873190255043307054737314816058158827794218313373810570586802509910715873741369866556794845109598012131602717110905746548138801429645405279443850220173972524903031233611190680380531958641334155318488656072560911739870793930834273450340506016482062823015562448711708183242099267683573782521038539565648002340610377618733889257785470235032409884750868895169579157679848437041720541115690899774970799506141376102085600978838857773949005279535239143319258396295494611793972694512869627090007559142082848308525432287958075373164011218237269920477095887548073186769232477225865922795531374920522732176289611834181330435126016463581296038679205919622159904438429577991882227818559629753002724247500741148649741069527268563583762210062340741981900818416011839049486884439500104737442731917057237466641186624044188009489629550520783982682643993588298013111479991067973084659499391635604636516334580406581174132028148460299069536477581401530385421426493222857223206899990629513537561035662537492916852918862625105458776559566860743489905251525971841544264320212419345032674080778316620076032494583597907980148020656425309428767073112252548104693782561940011361155536784082659088187263451617179525469725910958764095306596416902959817588170915629978660105446894029315870335693788261888581587678174896966271156917503863574004125228679660908771681985320182340268067430172569510232553458779228059181721503405401792887720072734695547455845840443188493078387603768940259496045060508312278641408534480773713415608368663971708072280341181173254136683672164126066761839496478137717766779557465187522193000521824099699876152700123552520963884276702079564201091270840569500429048703001278578164718357587401748021621396017908732102613542925917090569880749556824833892028252461540174658088513340766102276508770523766515976038054866476230181109198459416769588429559425078691250868033745580799286704864785659868908293300188411000666982185002492560261318188368129468102368895250464388039877750677638480452464577225008691607954142482331995955196212484508492890887448804457200855557552606666588885706354577699586369539341282174003264706587009463299691011094936757633810488030333667681179685301895521686186289427382562846380455818552515081374916233362940260431480247524244386018898254456725805790546856239186551664827997462422780679579207330335121875132813362315699762152184652778860561046033203320612226141196378199396703400768911591737931392557144953438848351704965249386118488681654767926822666658434844226161872009298380434312110675080461476734036748138842897367167302678789077681025922635026646378558954308387101132480759906795955649894850170515245521686991308461737885238315497366790791912681255347984386026978736327207023761913578962315723877922043691339833020484234278359775105352200407437167488787427465486332409199950548676671411839298994829783251757664547467658302355536064734941178125428809926210612547891649791630439197242759977763542718025392009296858219396125127935313045491038186935448103607766295756132193914172102450449815577331929415374081670094161083551203522474195384716952445840594703222197178815750502589974908596130137142758044991043664460975473000242955713956907841116142541574504889101349069420804803757782453648928474392597776474443449063258045702350137777032827819941018891314231498305443577501673274749509972508427073392478517594245940337465859050392566490714245776887269890562548561608622806522160462437952452650593029372923227002237424195278365644134637450068550987244408268814645390476962350280154401901678594153681294087493782194803117517116164354793064531228726171116374756270970188650495888176382219649197107760749665825616402153955303898447587067623698983846358652258087366398630435908075258165037020791600774741464248808441251637760453454672797337399722605568671904261119327815044503259320736426946409074743105019953959833402738006653302760748027651409329578891550053398456289218671491376019944331137653127047122912369825057050144315621010318210386706014740594644254217457217749655290293705678523880812372647158396766423566686297568116879999966978942941108927536279175921838407236436461727943930617832722518283527434921974360866401229402026771364237590038998314499686608572069908570737403625258666196795960291886230085403788763109097808927716133707398444358153082828796030151242671642930002258309864497104472247170515526392977210307736964860006231550811537730123864529822249570614808146541604016425597985338690251701436198769772715519259723047833973895474739422276902581312989704245678136504733136946753724164401670843395335293446732736767849036119209841895242037593329136729571978901573576023232965042264050572435821116330756251861528731544111719950901675904216405357751786315529635246497547732259878816231275968593617638484358475912696753789194804077411601689163053590270227185976086927830426496453926316933096073247140385233022986788837811841724285441551364074280766749519581560355527083244793814073011783369478983081194267430456426497763875029341887910664665816193235105057827995033513344214255092655127500525583595738049225673717252914728480773356119366985878322416804656578677863782757382903551873628912289665506596499047733573666011646294324191229261991953220918508474096071822279020336963367016514833121340699103955720743112259476355155074588157144625509393989406464630024808104476648809583451292734209722739609977519789786221394903848740343773929969258869398978448846723964064425213100277493736531515129617035313497541039657909430434615218744268688948470907192901352471125083609269832711230762885922284373964020765007313052937669594841861623515226631719375892034139781982283023510076003712418566105954549863342278040424032158945131558420859786809512321423198223921887690899251173468530188296976661178815547895606241164722233406538822850129392961693678845185128294548595899900589132583116915648817951229984195746946099687195919915926029572772363361078084239077109444504844158674247430173724879317599641785652372855928972904100710765698862785616281204010209608188513902082529819225251974736981776917215410962286566907392874222446611024925268169983367458612699872658482783249610987651980234520490350571485352570801379065485935978425069372097748606735732827520706667182003774315734755525856035455762190747524234054403979562160184421391744966670499953698882681182891636449996514078114211287291468658822403756433868692072360116813025568116067787126667992257752089822070169141904093138507780878394096402574300919897090389872117851787408679941190033209171653926530471556474375395891766055300716083159249642862439336659303937020575943482736715509025576188255830243230501963660293204325578985891515546613515141596032931425299377669677117242027936337907196561646189117499880000617059973337693315234935281206383967750851653773069526791683266057699561575115397075335753659090235530410734877504943009536310834218259965355967596712252578900015715503769195757040860708757393679614190680970543949898071024277626663247216100852610501639794194022155905700188435147094736794999621847421715570591938996672156870445440630226660605290207695191941301803976226109150276326250008786240041861484791373580912362218495461281531293232456091307466573775782867548873568444134719690345314126883987437571389069010390810099738689909031488474913104072773006337711605170507351931802397073490085329084854754078492764116511911028719520747018197257992957310095959315819516747816579889928437847443782342686238306925857148694578333546875439658618473253465319828686055508185877778398426055880389119722757423260874389698831849421491667908830545597445357108548519835592252903224817637021483116808093955185395477596178101433893309444872376354505486154082467472329275060694066401114844499261668245482672470541372500923578994185018623064303212909862258776570489084797292405245101223753670222195691260482274404183852479181198545360707095616579858279061333018774791055574063346097587988283338576579940509298418596470284829229578969273450046751967613073413749038078658457758596159707403035326644648290286172425267897681614322077854217254548734959613040910860054637469963104499287446970491667742508820430354789617308560092822634397754772008070519412790371563955078564462598190021418524460484360633333109856028077179331114773365872684692524599573823199229992992722216066389880198462790151964818680541662657906611815163490290971673282581889771523671036798730245195596595934870476466462157818175473295606815715848721993417764631892311597505211776539797417012688914913306269955804573295388074558851450373683168628961099270241606127720587144268013488259456731208790983995244160402398427357806895090167217608121544645315932632615650808569749516941534864373175149281914811289780723907230136571488039753717129298097265282436871320372577004577681770993536260275774131645145947232765530776380588670682277659590488265138708655088332233339528042551966663994960491259617467490634802240509341480611282503490399654929984204783376030618906242205002732530457842686574440127830181688897731840226951570700223176497676980089395509756887618374437134019537433749711064370382827538206265318775654051420496612028435562562341348600850361783361082995171350708509794272578404654812807829721022533262991311899555148094097990263436158243021098449508220844958371423391664836903484839967291485258019220522089537291306053392259023050747164864901469334054731176817429000686147655291947509571493759848059080325715166485801410939438557948690878002459311690892282520071776994762742111724100199387914915196619650462069622853692840525002881002687690103932028566093615125114235079417390363492542412795269556326031359710955932827534084894708387416120410683010279024735695846491363431655594557077668929665398206840021878153747626804033974969746011661269109034059790855641731176666119159107717852345653510210210155212053098345016017559560421194628435218668565171627076570454360358456242453589994821405134282644619786621439757846679120547940225737678754967927364563819234586907245185794448433360522791988008242286873656864917470006904243323534615674833065361274005008066121701807661134714592417506075821144319008673088431909102116962680028635488954406813751537613055050214578233363395378590012327039843340338504886310290554115828433991996404932342883960414505027139429664832505843466819852254088134118708403167189748148057637106856628236227919547503214722883375628967378923642356776629414622698389402899011009417419727111229825824504943153283311249788097158673066197359790142988511639576475677431249997894200880038293404457929909226839815294562286277821727323360243339328195496368475682834387199788218966605085432237867589455326647708900935479128597304490002694387691673446605444608357409883369958255305906989032673944779353606243588890858016573207471642732699656502136442862620033985398694835345986631831608355450797568080060779238832447877838816427287128175078102397839571933789737903013505200236993158070230656908748017586736138191049379973719976520554740200742744607258789223572684122658223373087219542226797717774446611103327097454805396681673193328954448744607576224188541312064373184273613031840225544741822939216572288802749236638478032328986641424577184918104727830749495736533946574487343004388261748553966374705541937111653233926202705272322293775331904355400236198414054385850380063726778511079146270228340836721924124413255241343395120477823039902374658491776041783634455591906607169351167425179129802281933868615682524241099901183156557401113258431887809975024611380988629565602407083190902100440327378967946963647803497827963895146567539545343292353454396151178286523707714166217823361342463268528913136579863007315202730574827045870849807717425085918767593286687946989138416650393994571125349916240199515204529255681554443828057496577504025458153872591613447066223571299799354022740478164346858370659853021992807354933164111672810630166432401892768678167773932194710291703266035910790793383348818542992159511172433638620641183036927412273817467485322355194356466733506794784984926386868821547762644337982556980450252860929511218780776935501475209393657744493075263894760828088377974229621913702883210762278997274380326519970742043633589949557151281521274124812340250529036477493465637735328699322473221948446157051129199964268278002953796646517986480299135593466816119940550648026596803114674146845551903529056733502841995110891797546703725637258603339665902947127128237045419203812957899656416102800161517131112502766636614377260288079185410078527341444576462465262591695931595850078739730431354509900423970671845148038920558170678402883104715045148848850978268582459446488306234695674248181222163150631161934304035824198219900304753585844425101022020429030897845488424512121645821905029000703904287340825919734667600380054154668629919488498626772683010404137624110081062211811984958275163038959837212076999671294022341271680270983909996087004888281705537567667983603041763679415377787312967156310807360912279493720575986171713676131483574605707206009846021448447570100820767116552060507098366413793785780061153937732775092882115829267088953110634369378644093834620377464789505439669578743631883471621072228644673597928153085333808803534107405220971026629588424183386445454660922449942494218379311702321454963998651884117753546042054718810668991412187421866226930602063457998864225624294483203840894168894506955939932280148860678873704234768203481632200275493074311474695838615083388981262294409224688448760552383395320509921778883958222140620451483061964738305745653188314348148315890905615235762606809891031450321384432659309692170073785068517078124552447090967645591547349488977196936109293295276450413158309560450229722659062813613294393123803912455737396075251451884078026356593253560117744671977218554704088711141609484422239253710538649745692520880684442252747591465446202004536041485892375080697821946141246902233001851807804819390866289317964484906721322793109838925136677738538429564125744401867355373049583553637285318216592276445953880767714245465176324884303190049610346694411345848135005413236559179805949812112149460766640328855577336165094768018316738046450207599130987739015288351350783932618266393022648577900212043262676326822614160036392698902499691593193005048833551473964991005377593362644601146531180543612355527398355147184052003292543416608547845937732564354582752373175863769652809788922202105798732822175862259721308740478325222951468479662529739629149876938959463869751926383488146836599338854641588084301710925662508311839267450045622992663532362613481478122955465635916536584582520545116436392066401651543534595226151459356023258559228335334933060778685407551251153005067815608055538674820437216716927608933577084161646548172184542281066109287469476812293614693070550548510782732328709446820298559594308065869434561332167541415512511770097731940555256473376196852651175562964363037065660412895486554892029852192939854968488494381890996281136857798827293348613127118167148791273507382268807188265513087428706373648476587674275877329645092272541558271604162695111577861452689209676079026469172009572158397059430754635125981440572544335601021525985436006561117343380437293483807660667446490307585028204888161375912246809898699266861313921612648984774837777493359133797634909862433986563054365864839600017501144414403002357037514881314908950547689090751336227202163438260759228977638776267974956964995880696749192331741967773051321118169161984769387034325449092253951016606488088975407554053867859055766383654251275357802086108717752483719825622005778396343433335968699703754433846781267866309889285763087834319654371935898613357412838788311333437344440666614291686200408710833196085719429028125858464201109473869342677379516986638530023589829936692472173898268845609820154834559813791126130506693005661458005885794597641471080766066548751539596370594744607708716697085203450614940615090729290146294410572640480372561674240367039766155037379465433362920587222808171795258886971236276911142818357498706123621185595315415294168903347722150059706370331106324484476286596635106384930091146083950042201509187530861669757698863834577444703895187625767482632116097840791072527682239647808364362307057374193847502370263129669729974068430343158525142482660606885931101733972123070767296249332958644908588663329904031750523077488049052963329718145789502652304734576960989790666833161993120665547932331371301299740138279935542787379618967383389146833760645548730581194022725693425016197812691448799600532884715138818733356227723130662991700689694728156611997688842439500321901346331079275889395814092747224343208244944377800176885124786493133932509715666166135127161927231712276013825122404094034273861074288199148006951201134400393613082101902465482499806797037672466930428525832020923413786852523960043864522727327178495110140429607928608354527652744957488691168624593402316109511353526338880857821295037728574306831366783537744598036368823059515382162720549490257887469225840373168694135045898959707340971040178066304027846978521714570341586412624307433526051803078131875818584513209177709853250413915785843803958113757822946575284771928180777750484563916449647977035081442204845369513289100506956983619131822933588207378110932800148491535277501266676903778926642639691110931781983608859915641995720980877531831508334021990133438595893245783726409007644003574553410507862028898684470640098644606462435909438329213359900792869954029608708691394014735451907850039644623795772787973947674746717432959374042277369009120308156871399346995783481776222537337532872101458133968059913107569861003348273895614858150539262222443765602755009700195442284610010267216978909811152381810375496168417531895185245656560083708776757958170952499538505199464914884374407822747306424002873144058911287931300996158779475409244813765983606089713949020906944176043959878790744464886858962658203660016547056821315432109452129746984988767519741621887269940604892383087815475905262506366887200112860216099543473916520336090260847311515431378031969148357050001319997012563918848244666979191032493402763242039991330220179054198823574470969747785515494810220555452139783726751963606570800007112047205499770835731845986503400831418028953531214649623932209654016927065468085466620059577375102750146421766639901887572133517830696417152296549048678442447071880036183174353016518686869148411195261571433035845786525641409097108063580537866196083971381046145174635660510388601873169132936024298317894001060613808559823181180987657243105194693724637340665114788423575817616380294310508246355665785586751237818728142492988997997821935877661713234011335130505122731694263959893266783380542271151866068173825226310800490505956564869799763996077083715481785279977165664580760030761924631812957872366912142319448140649279658093355226012151559196435437141039111212058852602882471993612591959725449297712147686817045041648952305777494526566113832674858876455815677280904179150460345797967571936648997666167829583356081904171858837491427313359185437879322520863378494607143941538261183750825721511987129943081637128867046884455581498770991572052498487227667085102504146156678605787108579792552576213767256010926507703548497627621171909370007989869327409751412155326835386361886199993624236505577898920764623075887634839261688090546389508695293189427813216207425729406928057264809911565094567535428438605260291878333548930506662148271445710170927522989326598393845230979697761271447538344403206547357445810050806425002037928731504220069176292522227613499187907962539639552239175209216377324731454177056032984566096305364742814936152580631139325511432269192251162931509435858959893328840508773932204335475081989385566659744751124263720508903576425342730256590878160179403391195213919675127952642216434904774473349430829358910835915789027691463824075374743450801487669798841482079448387971895532116249222989191431122138639285984633936116691979518221952747606450902720189229017482518357783313718387193647193757587987154618757647998118416604579515786974313735658471558947266788459778031718889060373655345070121413710410813759540443256668022952858071235913905237315416305812708855021483542784081388326645263899174026179091778109548100613331432115988694052177925349938681017359956314281095007414202151533449792144357823887245335809622882343582444369090207041172444711968704299350616229667733600721511060753839631172097079219747827128134536114279356217228356351812327593057184322377126342736991279559859435808538557054198659790772930177434617251032968342524505012624746355339738132325412684960882762157941687510125177827938115656299785668377110333379704927967199144030067280631285055770975673763658985999201439878242307590011059854007700567814922436514878153459842972553544260532407446728560206916464693517347932205547729753432693101485614132767295933148362078047239995026712874116044037701107385374111380686588074203085068455056367666062772077944305396665273583155283820875371546567400717075128478868858592703967101629312912767264885948536153323564334496392433622813854477729718197235366984944853299975513680013004553143516248643452121191097958941237998149963408576084071464557903166648450268567442491668560387780139763078908949452510929677915425145517013656357877920790817578772673287781387021973674898246219488896648050831754493093220305712184783174204543150576601019979607249270421506863969365591606738103383478354594355578415554390036660010591186994844752928007642331251373045781399382983388176669327269126439158941163968438660896798934448074911557284725969577576282765418983848749207077255764407191662892547743018003780495061276204452395571601023363665002179303918814983595392227244530993544780442534292107821055760627867076860078462190764560469722105087262789424235227210224624598089120244908382228343320631031668851588791165051060864459489673095338164695218172198271428807640597513806775339693825960386950299082128688613244077499832136941318267832054464077409781399063588755669392241360219642258760113252170958930106121940515415542712364567687175961784032553627999071149293686403937136733708310803538067736628095407848068219232325205252180739549474303425265932359521506185452564514962253334521394989337168029449872784278293962044356774650544019125133691442957740567844423115757146489843026324749839650352712703676146701884974056376727981026935399825674745544058797237499805874079131762853847160639079080152397143894186659093361920671201510279720879343984292069155752429259173682186929613261461812726966825916683340834748074581752728763417669164169932798586022246591131091838385198001602019754957385048289427667414865647094447252067968573617555069914834009946140856615557342716384435544994160349938563211803447332973670970591088627333781652604792931951488027872721264349007816721446253520008074784764545224695635775608164399136190478592514436756703053888628256300378753674032544571671367519116957271956560060407974451241116464289092350748807040427971399034639170088694520484104656002874620595017636644948439474380226897466005236816345744354082775680338936935664896448145760540976968753017315908824018895732834058680151351507506677063243945467183206891539878541262017861161676728245157156486330780717654858577133233299252893485372967664193910960243986958179869182926776413335759202040746886359488745173394994994151723454145591148907272479312729113441897604510227889668081308580785411548181580196110229383138325714022794149600444941611862195820582960218921480435684351594319368879292654466251541598644248241927940352531427896168249238286438633369873196405835471048804019531560111009436469257882115341716741505660779518592049722301164204587065929193498834584675653791857158839147634665647461033067673793865712799043379558949982378653877231265274080942834475589672351267316096918830077244809479803589100946491616531661114114438242956150623248196098794335156732558421917065084734126792215325024309540828064204486433037386133930964297367699414267585190182481154957620291216358901745367685659830458163594582063587392417304830030440555982200028896056962626575658296245619784983379538236260464981682792303224715922860032395954918089232840186338176761379562086322093797139411874394961474255081557625888012390764571210448121428137875492291761244532068647102086525061423632791379776585478520859315687038418194957837383755681144846731758503056045211093806171366175014888956974508166793146622940193994634481797885566310703637611943282393788128555211921993888531639342938931980409791422359533082509647489180286396568174388490269687070548629903068248318920568035875252374077611700949937017208684390035447708477455043405984967252372381641161931653989771566524776318016004390215858956108357813947947165687395870202823655778792497467107933880629854253037708034264189204524176024094584042365055758145776679027007872125956112606401223253744041987082307012476238925256074672119294414022509091697872066738168083750217027011450749435174044282154073800549572754104535079055900392394403524961061297237960156938072482829291870765583703650905244570078724314690700158362183384959309431795827418864289498609486901027624600933584497283378041080076754174759391132430436312888188920362411185839247153956986436641843221384331969430718570629831850425405573590145189614895908543157463211529877287743821536664956350999077687628440377871639745844812821105845949942630759798782703361725666986660499513149428309430038033259947814254726091606063817213616737399549596992887466852948936671333339233778879653366940234372227978122780426921285798451861473624240170972051496337895032361308348817881234705081681241299795936893263349179094371819670716482644262362491100082709442846525966023268580503110542784007436139572877841695029152163488062362311822781704570997476488076038200036982873932432455904018879380080411509745042311743192934381600554669546003954032039782775712488803231474682317386103179727005577626093053992846262686531092143955956754132924665383107057098617720724306909102679594963912812139673568334007847704564353987380561293052990496708801568205397896860244150686129619314058150308682952981847049927626252880659015922313711777669382132362575097137549574370447137994978237031628875421225001660172051172360449865948660084522712422454772585913535055136331880556016163841655098782646810676382642236005126233226992080022462340712307989159124362331725702295522786465261260720262398507660664808617390964326727503944887928429320212489832499446262096311382302281831073256158090444832838604278318735178792172771222521292116229176955962413220230106946742379199513028528712988708300686971373845798279146969016966099404068190127822361734384111212242696197680189684877444504504480818936740233731704700950371073772546113982913644797378402980489105331098624083946274832867211751219113078139950911674595531355199179071899177696589866447670746585611383737670552017650302385465816363083770453587485658916411040005025537329603986757813021094391801085989517370239484775816554181716244072541780009951637743876876712041054442256349025468991547527701837227786222871908886778472657750658791608413635091217481472147268579281842464702045794070420075232431140037951734460228052231071340286301644665133906139545089192580535630752448121755081400041025061800575060706179091208013769512910047157392018875585348019694857540680076895359966063897584682913835167002330194386174267929387920304233786308560407351822618018505813196464592407634158583169622929467766916937236057934370921304857818000716783938165520037086208828960624906292345702604071547939027851710539242764702236567184148013753665460907089415191664092137284969648000601850790162715985895474702450117799489951126379657688435871519269137357129045695975815629793844422741836777447583076703397324850377461811588839262759058867958463532615012104679048499262900104585600847106158612916688273593922690302269558878211429621070039624654504808032259682132672299756211391430507849837160088968027848718700624438395050592505289607918271560690114094642369962123239123110315332123014344284800538941220221914547935785992186818948237468508272454909115852951818980326347277075475353404889168104721690128904127642125733535138407553826389245802394989798066265515415059616945830439505885291933888031762684808806959548691759187452710049030306488309585205489015944154668030081069710686001204079164060465920264265775501979650603860708396863531209244437354436298089735702049205953690459197889415733630069198290386126928971610676798171349560660710041263440269089723356383545993919052265276717752071145445295879789629312369473175086333239066199541242613457254419104903516713509462574158707629219943668716610280289313840151457967969671789772219718294580412376816792151828457949189034814453329159010652714703301171606144705763484332923972288110907661500014331748217032972507091171997108943417461281656100484181351609363952163914440908825729332100103396146657047196918373260828952563030694352677960463857754095219140597900464800645174470800250018507421225529925685482287271097333312884141024632592210105405833372884374779947856729922455976043254556186775631164865389795960640103601606973843870513205616928333717496479164343726351046686383061916018050364088126947975972329721859963241036256433101244975465965445853129094088007986215072849075491283254281159537651641360564995203901969757508705694001882500624109119152191191914042733826008052973860113974395356869715080955041386322035004670780749040842284873965764824715093417493672303343549838703527513988117841151972821225613277681596866566699271314413332916844572985589745854000441182276450106349210645683551988992185847819385256738408590047797262579872523776011140092487683965260004608870465907347408602254325728056165230507514317383260705990375853943461955590810475639628349355502785259348318212400089491266510277824242772054613380279061056786901260327052373825819773101418395878306110712307773595012308727649653243207852138917076840947149624165732673519835838719542761255817976866602620581442629337152503466944106909880238748635814809099394684461619480375662096809007292313633046847344040171220059886423936959581091030889811290723608540099583666842771676144722955618249627009474593059075308888603850189943340440145209282168671518415443234586198882026790220295861249037568585967641539741329645299987493560518298415894031225916491693048731871591374024185064303953309481066274153085472446639108824590617396687968867769723188504905752749592226993489867402836817430025799212551051159299846881132048980906816752295362961534825198086351229915727175883787346262080945111723318633577129275204036103215828239835327593888314284346903397826143563398567643744244985904187708957615883271410615502987201831728957968579603104797483595111096815931194448888303990813871634449497922072741930923055225053619886281461663079674984804571245505468042334614025188070872829106621420013181937358294780302772018658416776547344894550605700148215592177642471869241836428743433036959836367510355014323268707267866900346514102764899340832173189253673230230790854651797440821735907617864849132579433811378668484052984497500629484518771081885657938786430863722092632070433725729565843681172453586165304810081824865815184957770453120839108990918219325444464110236299014154882081977168872749831243635577457840821598671592373901091469637949791774460615560211156357032876044189537201448188603422736482353791750241367941685582666662089734270230942444051509600974827459157883954620217689247830460727350440109494775401380097776518455920518141507660384212929601620047625140134093362644851733422938370069849062897760691317254531419686070657709845810578811657768539277373396068176350749364066979353154941886161960128262411162718442773963269365757785693046220938411886987673410401013987743610154396336521718576623316715562395236642971318172270953444979722605906264018183621693442811255529472697504390597095993732309106473876555036686124962308472376754013680565809831539128058163531672373429515360920147871462945047582343931444138796954674456357975114287359413788592844594129265680186450954858485400848320148859405124277790041739266720961938000329983700183958414228571500971696327148866431722134676692503515215511262941378533630281339766477403721943807287535806777804430341613778316299235605120476332107859585542920708327221073511596270051907761388037444056798712125698482620242974665590920861447539347305530986822578142109128476874307835491574353964862913305269298846211749101938183058903186536672402490584316944303830288850413786495935266545189589935871866495872130559269834948875714306566820080264610988680667522860100464674701664093843769383031142986650313597390113706932048354062046575709420491038592518312706640970508765514036940791266751265560734984229777638271682600534594631274815990124165584951842555977363867473094717899523073696635245182733543682671553142929580723168089921925281870020441502321959658291197448175241181574880602788738538935173505488664790878834797664636494372216887282913599382716271571918711160733860674664347478731042151683542211228446985700380832855999280283249011917573629886841966538014473543184438608124210582031361612402849005476224238734526415638465625150579976340524086789389247802109134835307651779754640544880565147876513667643171441629919492869887190948056092088462732429749304765595218774676867995308413607533639767121669333332742636037101888521112692331569661045403865681186723158895476428923127774328363602448227498654190934453702484662973997270453367838664262042575436966983570242401404134738293767007332640198593969083537384734221060419004243427199253341705717969773327083112685234355599507021197549019266678587505811343404242064672569643856273169809147717456155413737511357414021963843118622899536660322472016763064907862457152042193051380195119761037631772487050768758681831048877316430253253821403104641652906578916828729627307647725055473971970103935080345609276095113598321019355334158563453292433038561853050764944462807099687327034804245505127507063715835482092816486667512386062292180897234182289725066904720764801055121771615615103177492201885012830914207415003872972157302511889502873172727281619490096889375677317433190186591279486340211803139001853364376866439168499591080011343997381106225417061671803012104451586483577668973019876842928038909938320249527294334655692821121767004354180495976927371016265714609916584571034379690562786945604229317420052440297098929950545556117306145622351786947686715107315515629755183056690893012316621058897710595904992606329690099165383050854524954879838601786977995860828990816804222872007778036761420136099727158659608503314963404431619988046591719274301846460321693983527849660122717090956475387543429445098856554508200817577322345327225605442183966112919685669577403894426001369912080558911684211379257092855394146281980301440945460730567468722610611006113753539860344598415534750952691595394091566437022730486174252173432389111701236011336068672988245219614809515259906499854470852145289072645369178920672286026748013809475000931588550817963598987779644973197147245682680752012609284625401514597923720380437571957679676562446798764994998962952827602572261927319536543196577246458803768068333013898783081697347210490653419908597406739974006168626389891498419732867833562632271160537272513315893284308323565176312502379472853484712079579837503945534845889804778010037399852329101348368029834061433873754834922444347898348121740714727703699696739146696423258878886491105931724817661597125126292897018640606693979068045797778106133277810252108282180516753284376378276097859695972269536726825572712359443531475967748704381387273553595419631389343921501687508116376239048691968344767400449040003287815933457003696463541825649090723598556930053434571674178121560632458272408864964741620543402809018962248603441557370234643738759160209368138193523999865622027768973835058547534195637740133330210542548683678610695974422946667952957130899848032386554533306342142661834181709256377295248367085228192646696600272099837654855955954579755079171922162188675596009558829696632088777647139127603163817644779186986441297567217544209604664904188686152525825474802956560837484507603878252016082050084563776475504895619970844124796686686201067511226415558200918402960000528148486119069113572659282724314971661887527858693379696411170836062452337855303273240384687226886934282889765941588305357381232336064076417093730002671443396064335196815362354853958533520507521540812325173325114849359183001054473873936607830560775685466364152810726422736326861877259926261885051440600021319534878705540605654535819077197660248236474630379574363234172156923409825515750913389082279208681564559847084346411775137276254560987112462079135133795735919425692170273078802721473876283343938365942132383824278863751128406177197826765643167660788429079869228119043861990115461991328972320843443879525270387560041672348265968271590171905486257568304180332866282589290613455281237339485132822429406762663832591795923205492041724417200144851161386561837558107039217629262344966990370185245249789990798253193798670500710826451812456804496096230802908773737656851300024694979933495578186225770005253496176423460877971765040978555221974195811663308562359573375178730105688408803232110989353922087711161832802305324029617801223722341849197121746254160754442035540054168321039572449252175150152959964702318809063418748259464969055195821467319766391079343876537193457138427327225850048557596686121577606315760302792771322988590750423433896978108278741412245978523511128442641842142106519124836891130294522907464765551559319878851450764961105185533631552126319513202450268911110597925361188876928821959868441292312164095176573803063456493614719693502351487144268098548363890697289108833605852454084200464026823342576434217295794458071525669677328591409795778434051507755021336726294041859447871263435153805807081610207052794819129070135933819282655024114259678255334409211529206515027255422071907096630415826363186220528270205755621893006463712566291940802733399565470818497472054357926341459999362963900026890681825572536130061070127115095886707065760351640536720668423722571336217562579816553154939188601532061379138055443028103509202416177657043689658267365063388919672452850971033718540182386636556206838402077037191393997461536713298492847824236334593852386293428405766545448728352626786459279337295462437052762988530528230682456310448895083000188043115153150470366155787263060383413400112991271242466967179227864080934000874782227036492201884222875887174263995416938394184679622791003537582763586526469383877659019500498924467946241041971884917267593972083540995845300181744900203506999204228970867331783637404471636309774089005221444806038202039753234882445428659991615016498545823008647141680306885031836213138534148114624459499961540183849821295140192707998650550034467580730709228006572439140644159415917049194381357847659581039618926272314332662699934086553264609591915161022787231793751676073433679159226948368268328419651074949291393027482851317501505054093371682001087462010572300818606162826104670704345828533363419802453527561052127270767827408658828856267305243345705622685328660054756123105245393008606570247109967637784450975908716138897768023177755388156397619036442191594439314651217590922721209583586205445808008497726024072280758385274633670573858204279073837337156922971614169509718068681284885647897643227582832963385458735170010147710877137332551641824854254999495925427164119625590762340273349871752361022992154344730898094730099342097617283674904916552563868139918637991574026140462820242993900668353929498581594374662698282585779315776697525067136591584095860795419615931802097280018965552284485446328348534098775483114222856431639710177098560384460122063767517492889443298358213896954164962323899771101113212472428448056334510209926991142468168864322968819925813173226446351819511519578083182583623438144723720467322836843626703008982930820750692611827925594040147587754894189848522458882284276837524986127644950601697081476095674611227452200760674344797222287854896217426024820072889276315138217778975140400722610527089842746438683681898329977785081464036726654214922639209359761270002641514470650586745283594197705097142670611615868755322802696027500877478669491949130179259866880286245599539544689878174208136333633533876965692013730309492238241426154900315971980068425019115441100261388887211084878886263418751616164451432447409844679210443170270572427325289961187170718789401389562589363861234081083775109217682170130622282449175129621678999667623030918119814930491415410867640673686474429332861380985473881868171747675287652322031673870259419755191603969427349171480290984650265630701463514391864316061809960028060513650755758229562920352714081748361820048210716445148846835335320407423597519498581492159327557188475666646269923027807869554344335594397172494173753594669004437944986574055715122771157502747542452841239400538931165063979765052434830986903472467158859748095115462315824116198472162155606850359084337994920633035372467338659534729187155122074871089573162388607098553133237502587405740749438566433871282001137074707062602469626696091189920041098705137732144021033044388056449119716449690377836055043105503046880802680599804922670961184295379659401683243387881590342961678449198527180963785534733356947254279789190065891159494431257892609930656298469493581624935882373122563051738996319805000178751800506236622819400710947387958448816955301381892279369104564144768817859922147867364215072035994133236295005102821333560806243991330466775347878369630474607274443275669008340610102999780471372969329390778707855536195493914445293039566456244375408359474553364515298982488946826286540282039457956047140020529151118612105405296532733961975760819261461582150212407214658337212068807109408213029887674181169797881212610012402877020952141815093203409947026990241147983641530797379483482180847051137849589916172820832679970845891544252863371338547241571145898701209758212843449524939797427463015836085170958350943664818294293236675769694237734971348140477151924436763130273270037207298753083849071333586857463370952528125644570263411223793954260158380522210917897456075364081229081033678197391331469716662255961260106045337419119562363170300180778387290928771357877081545412065080372535054095072904324529081961850630410059602095663189269003187540939616973627634096887165615144199774804409924475407235292560265792392876497849490741750016926074598108596309879528108840223665298160389632318007562641280606876579332047492087522213711805390423519110135673343478572131838150486744608646795547566038394362486629766876002188713040170749566047933637247828224634428824709581127147899058859173707878206362403778273324247932260902064667837148898115667443070305896177669119530377260431974844453224819819297845267045426528723013226019335684469443613759312023319759051865472221546020203053602510148833056961961286032066109101941256123475906803506213163796421517091039398483777921009254262051293581340398225645295405023192566671525160587162879575679730578281550123676299381899090660846451604409755584066763380541573058667650929694087619460196384089500443599186943436699435087146137542648991488923621118017290300825254037555637961322121195434925879283683816341102183840886439430755942973578467305886912918731199933804261521602633074729680729915531330776852612205833874777137317026091288478172912277961314236762731695561959239330799408303324991173417725127129652775341727205572470631832575340320000716096420169751089461182069834876702812070838479351325277319292275508269199562916950579056912908583316736772165801946046326098632275848027543850592091672327871956515282649906941842609030900275059065917560943848951525756930823409673182713264814288078992415068455760845315417189524547095106614568250422293269891309939237013959272578904848816364214808440112929579410821026291667923939703079335228056060252624460872511924133797479502059326363215432369856523468245951996007196732612939586772072509642710239110348240053451351787724380563053839054199329038670553855813415586609230551644139811955086067371675215980399300183960834189948358654879650853065575197820400578101447483018197100048278588226577198426574608728789532196295390855899829135272211700877970286161681797259837439800567509871446397730687580405380818139129333364301375284154507857724674694906714721670209598227076582734208835571749965039938383409025147284410517592067450865797973682864028814339291257022971421936283827974099417784489268569906296294193454064419745073763178537595781117817405423486318330723211374421659099558331996869678227965549402580736630060474598122119263905686531252895173731979650060083793049237168545251910018778972939612194969539096456953363215188866284207390535825932293765343671514005104585791637214234549138225077506209545915757667738084287829429526705160456550890042291035509373570519387026913307791418515975497219441423143558110671854598340856472681077058680546533316060051675928654064107857526860586328915458888001144441253970527065608750687680666704404228929629742064094204193409566453648983924084062665644888132918969172359400556541859171167242558430138219150564864372052400447775527293664100025023361562690245283163467318494597772919440796764780241564254762930429350132896807422502919759085310660807437066109680935953638075276348836276587182592510668722584197416142609418391501252865876919939780174630588270311914540340487157995832063227872127903696387254876137752155613024284479308034622531146004913689719713354131893597351405768383625507681927555021334710832869714007551640957954908155217417429943517847156664126054295396403760093488812814117679150745880541660912748300306982432895301531007020560133882999969370294693870480126626920430663892650731677540929776754788666054922898841598336707672198563469199739144435468660119868404966354055954053824620177971713672531735038922129542176886293778240844251213813482724788905065827710955346030613831586775148912199291365764654155814758884507812048859146520185460024407828828445082922502154075943482956910381015670202378778660561901755326731426887984914894156278340644238790482377481086232913853424945065843489150367593492074591013767292837743997263218088533523563608557540486825892398290594605271842617685505132067927814854886726488432136904576766725995986824258727402171772526841419569385811118684744382677665416645040550419571983197578283824958777519248872782633619637439506711723836249657383999615453186503117158026976417562764777286581783196881817123578072791169683776504128709296525585586001186197860255019377926804878084396359391188277478473569200843128289725867205106652600045013873022507526951006358475502267242841802086481397268945177284138083136110296153136890863887101097797354986350796245948320419897515171733295878984348210221203885038942629837166259325725078765473454882561220832376771434543047458473979184439745189465525240767225620178937645976365675013027681044099294708226287515900693414590022953034161161864673734095381506361577575877489788230592572508336601133966585997368879410505039587848015807913654976894593607735071415240071220187954804653178563927818310553966005519399517274602400049094036332635979473639045933636088518902066322320744905018614469408599510563676134861808524236231357581339750856475120816024461357505616699752167793485965783257338954893441266374361307627188515623338826176363406100340943368042107185406838956396144793225278899868627663500021780233172664460998205618304606423579644470789889522685576592080139870663211346425803388411086841297885923890655067556316014403243867780807574851284808413569780329270116888997636721978279176872423938236973203315665647083020968416439194353567474048217250487267936361089709777149503431703788549102143604599964583404542460184318360954920320825142210235402350584501717370191204175966385997236455827525104721085100276493479010854967279245800507695102559493334894784106183102513788202950194772232362600253738826974577896434527559905730756503962759951490382917452903100586028332805739099180169880606733576102402750401335918739469880737430074118106335617357126945828152690206205289440417761780691693827340998907504003759493532486941817923929057773878062929930788203352844953715886160986611096096788072636100945174977164500969870600964735397710955921010299010579523924048715874297862816179527041797762414603453239835394415734836104211607594093106256008737592346318743097886118563682769795883385559306736348052770796036681457930872417027042691036706075852329969193122818506368368319557694901846468689203258680198719882945960730618466038393867631745677805294004657095361854978438760882331847635752372603790477389220834875750840745373929661759839111163674951482388217697801379828144497172128435398333811973226247052420740948318501287919633872921778400430244951698114882653609585677041108292024859384097387146223697696661137825908596913289728211973168200210808195007183073448362158634528064491733779418686502455802086312441753580030255162166106063910465076883164404968218864464546791722976637333346994929038455271649122946716643332109106760903577843198847631816101376205065334889527835809837939794747427248934912998646720378442384583542471861214527069145881677030919689756846774739361946757391503589766620329714729746915360233040993600162183488899265366823473701478536511533839511963228478425716340040704999936409391689982656609771561367669754291859221502937633915763342576814031324146520238762775590547693963377315242503714947234924711904141395621969831104633990750434801448304657677388264159133606657451753533517833997582072136778713907269271458161359735661198433620077777574986205610578381506782694912203989204310622003663062313707842940481542451344652806665296627957046831559361148162914885258505093417510578643609224636360451774892050640760310317260486920877793423988454629413580697405355577224191730072061690867691592109801954328416381953043594175748823840244999835099445049220384555066388257086511787752253156305895753167770998733187850451083694270970125024542105260934165202964669352476605780903016246528345586840995344067612576408279441859015546204963911553933105292920332803518322250235403767726951872952420776279621888500309556172359952254001292118569454290818687465128482003634203919273734295016472690454206265366254910221405685638117916726786852469237712168443125975842963559397839667468463221558471600283800835038663739323387444125541217465639466270078248088824456587820490908189321612349023607573924768443276140315148428860388295619078996102909493712304379303876269822117081409520537294623348751177422960084851552103887579584797111415395365084114105184921988181734303584624088414941780865439669953583055531347102400406214668271088505621490722690250643279726388241021354972218933535563349792788911998688363248179996394059428585657100352029641299515261546193571494065987038545879375567003518894973506776640046113246671862573303780798300209484351389589114697776868681243176131898279327766043824565870236812420941838271309847033627225834468194164733833836480781226287356785549468311859769150627469893032567982162543868431261592865893668049457135265868565584355655267776498182902734062769639777947699027326024117514750631350523347275169020900244532282316653028541152948960006856156996533726646059364108236198279683996307400508175126239445979099369408028591357622497198815390286354110828012816272724295706936208629333359548045003697396770325492890048270701023392634761656079423519461232400265386033628467150672786248403173850882810384646085810863962264808574940017588463364506478653472962952143080001198734260095606570308693303993604132667285473144507495836018133227464470061598376374767121505945840834047120728248330624911469866644599247907613304504684853820427344421380602483813707595323423049602619163332566647432171452449229211643819747280411085605869568810909463180027005180875180840330644018228514462952500512894751834310155884070487467772405924781733901029007003600257101012996670866867957072316111485073608919199949023147670774748289587035581117755902862088705860225849030124660306844089947385691026257742000485219273166571217874656160317426490865305789755337065203232672213877262109077665819289073859015767631314718247121731137569570353623862027678203315970081100755497192509144554831156921370194421900600388742318441403915027067164169447884071531179930149697367644807027810306919211816412831498130921973117290764575785870557762883039376216785924038375020224890060895835142859788189764351857315139428910447951065142228993043585616193173610854395613112406794653062394810796747130200549979412925592851251326207483397402666648859682019559678602676706044146513501305411908269649584254407742651841355167839823245444727793264593373831788019890928050020627684470200841326118312520124920911830736679169940174497241843740144261752774973132981322447483398886152280076386941541774184589879366529968647290655719964074039544546664474037968816707707691116668003924509162185750607172073865840315074156102840946124575895056473912517177016307066493877069939853888797264979057328604924693104983661252570573199744729920173126944953643102956988573139462974436461447965076292405803446147856237624684295670043112529594316993472512472588178532009169824097500733911004182591360296475067683250475415448458802629684222844329651841715612152260682345981546208570379286093386532380059458504784986272325512050474876582285197105056795120459955439196755377316884202043736332639436377888843679172366819753260428462529716873568876339631079439402151759970621004370632503399024537277716898851709837074363370728182381400736380748015296858254243035898748824770386575789297627327186785991207127094468045541340697079656961290676265392391507454025778330012335143614985542352795604016410856131439870916253724015940082855617301075596742994683464924193054821965829847478764314973994538456994697715693287829821403271913339081218630327530622160240975264055569592401247418326451889834961615295046287615954818627261089737213235151938686986321888240956813747291725657509694737601932034637429852275843126902672844119615008459617955542332814632713739680890723055524270592069445181003466036585964250060861568927975678374934042225924482665371557526320942983643081072695662565016350107946499019723329291788511965406689665992719509818648585569091408351081614244358718630752982780073063015878273901523592984621007889415074019410692212205326659800033208753984240967749007233258483705473765979206510164742211017458361654232359462600014559850947004888609289535357668313077765586166372903936584570914082694394712636185430089906148485178219150094595460643624895513092459800047035467511309228642006388848434688671457143778949005123456224082358854730694351118552154616207721486858910504958000373369857821633516439809158266541757540421084087462249373803412142959901284492602277112121139964474133624807981723565666207856556477915996494413172004936075294310758935948311628371437326914593419602911001778144288557790408355270601059447238808214994862040469756924994639920435171447563570054364748707287528656299636194568690541702777438653267051786418435375003399955372886682387530346878184268470947660218265964520691611662334132845273536661890744699552697368681977426414837935947990461045452074428845371357724169203281466604631057598291253746922863383833257573769645292179301147247802288968101991290081597776719309430729345026575844763747534125155679355709635376667178389612399935100058240790460782660488438813267558162910853070380394995679312487316847327759091369532481886363766161777483428887222316855280310465201444381393560126059863223113094194088701703205264142548114314649867867020906503858290746312244910396985048663543836478923107066819963339933700989545552573823687298310433536724844547623573013801602426078797510443016601259689398618405777439123897501272305330171663559391347158886977970433947273011113602647177369820828006594457958249700602194088293801758464672289693831559955267187195710746842866766981390875636138143602585631741737861953321537058560183072490791850148796705287463533580644200840138171467424966000186266775023678358321614367123080802155599346961320412358945969744300416920333867238759084117906474552571802791769584094469619527765383163582613319166881201400281637680951572949915715399607270087061332270889008906097609001268900386267197080865721048406654228645429087381593084715419513397147630977868388616709765535324265427562264955498864933552100191988611172706978359603365302112006242770123870753426264706388474723999956084197410025758086757760170120486133201639237057171504988233638992623842165452640291898654077650872829737305649106343711351185388708342821624812640757900914356040725861732031201794193115431699574003156856640984383306504539032132776664993917367852289322671245865652935823775418170050905868446167045834892988582801043076765711677108340795584638587605985458423728607310136819923508818613803189285347648282839802610364311826489108114460553087732667793291030609378613747732623785433659848629792580505816717873765569590185196442950581548324673710694315266692024588984894469370375380149510180789365851364193471832005012293760219792188720555183911074641206571525778959396211136849457105212835129517254522965650708569402359195182432493562417573794386719666334227754479862379840661663067194763947468444294372187161918472289224575721681173040286529265085189724128363424190540634305008443726843252456767036780125790257009046085222961088785438565811245178523529234534095067528775242823897842828304967547834177026438105973079190078504666013752832941728473824099537440550116146321946389219421811261674321636319157167845436231571354894577078870108325582667037187589641246729829115137969632879975386988214829482103309435420809510762639091602214240809862757090115366106028903187202081897919914525653880443988956413608589055542595041029260804143045899248890282366359199853608326384352301394371840310832862159129670845059294379905912946349468993041909941792610559220507276885110847182511598425864939111772069546228128979706817151162343338518946619356926616742366234946280289457690006831577271994126794738592288768361278472042442765456136127174104879246497566476496304781642242955699199207067933946939855499497537928861831323897475973686124140722681329900693063296965296364720294320323813719729021682284782108033252459819756429665828494128418391263044107806899518661274855405306916983625252199759510254606229897430144908326336694780702679445657473307079658757819060273460016435231796198520191025291015731329910422054877618616581436842554384653125573613810680660624615774492574913290310086560630003569676643819036986220972127575552230679327842579904830251803833860816586948668704778725627849282692802439957401053611860523821496696925939098857551786787756956311823083953823564685454578946239338400190191659431873709759916752698927183272681677578071388526223698015847091424664974117708772717998113314048397619820088493509704007616938588609871248996562806139196451343463756012976547639931179724216034932550491518245266241642361195212615588669085310391698849639695082339657920333973958362582240451688991439691475996442312462009383185111266778758765224325202521805490904573135319785202188216324788478621731584477542091168313601534496805955088470875688379566002194295494293927024143867957648173359994992110468164887141704300135600646648380643085503920335249325784230650808942563221256968890145720668086917034779201188643518002516215537240998988538304218803548177673133768719911454223990657288657962810989447028688304288676854623238759556294816290021327198550259929888243315134773333308332900642836392603959431188883285792103142079109868548593937607935694122986697764214577814233655436526243343476732687234992651484886689475110044383822353735291798129212847478938115768074063667851590434908923393442765035364882202453473905080674591864853697940659808468743662738982932833739611584541986937163737430255916362602207013382582399081860382348291318223399801710497016128511530371120406614831637100528272690115564619668721459106011898602374559341251039649594508986902798192044356486337599870705148370344697804691870178443698590969731936533441820284530797294695741551883417180123875877495250935277125154556281309485682808850856078244570483939747518536246062126956272685711419254258581585354743691745183090867350224433374840489279237095106040254316133722328198975218523892993021959690995352263923879050862178685053782770898064569131439755983329949326873662177983618965464154280749839317378714880792194590934200268395727986908069589959075596620862011127427557625698336711981147520888428788056615318767433344552791649496659128040646024125355870272683700105311153219833006637449681490465623519245419372831912696551824156911081169534735681586466564336665657622807908044381347062886734110869441499746234202670873381109230265438491045733232177612993183104800558580778982755238302717333639670456130857192667530311371513903771446458952509295757950958049633457598868217399168342677817396425473093268614258703669660067107805395068996612577885768312953768465113520862522934612837245534328002687099435310332434667818112076267909901006642722239339353050701958970760808164816848262187973391068951818734919096256040675516301558281294376936592467515726026132860911683027847647054724877050909993935545618209044438259384935985065684917458242206245658222199251773206954987584869323457152316059308457391065581760383579056992352343535535239164288238657400747029492185178075127383610222214350494547865128392432147430707938064396085570781384434197602742864817461853878432120831261363898469707596909473190968908172922008125584647924178092638939260850570685896391003025906909375682319585564955208193864429584025158688346542726557527138741731458668743086478060934024333192628428361931966684525449038406717236991533906189887485322717351056422373526991132815353154483129752357999041981100433739066123638652088545839100871415612395804978224260226909591363975316636263652320980693754432183661188848539174536106871258598310923959567767152860916638447646519336748281837370169064908858591420386727947542875160431868956813985709503041976590430434673478935771630916100950427387656595743233966981374087850836694033887984024762118414288722178447586270081481894555339401865998646644898567039856856131086648517417155233531927059057233614433916700023797403730818786392141573185745130099049190667311827716946773612057033062907291796534852404769402212706154863630948294194188805883335468813318094237624775077780268506180250252591198138102176754392102221320704150293744102157923014856751727172144545199023420328806609342047016940812997873763537365267549826482728055716861360344206207919587810834859832866685288174110693515770149528688308156897309613045406488241095303635094375123962341849796306862120784038971344756973750608048529395099400347060217336659923235572367831478457991915766173282347626346437726593265004819745105837605825176174423071119290819403049345002482775306457587479767410532431816120655174947483486485815847549170230237301858869597692843281122710056358703117332962865657681977389688940596708836483899183205012081273862315365180156040025750835331638675302192651960857192515540894779576937563128207638435443040402529255671047691245956962790876712524523538206770923965688834796709182802438379673844053793442240107767788540010891951607737179770505155183103926563672127496309110611228680355866277965031485152702632765867958641508421970090993105106941595932233360432342280046452455978233745272016078992674076987023947614884814545986368930492805264830640024423374452316962224730851632669342130304444742012126835756573095731778148293382184617901742583694382458297709929259925298985254075758659831825914729938888837998245665189320284489917889460996563718676403965380531984953996592521883067225156375812034124662772532751816729311954517422428053148903137760319437572323081704325663209323143517571458665060627693738346527459889320737561214804591258746569437971751239784326544784218955991017058778863005940445361294249247651382228292437333628027360611493125868132837969134163980738507342759935381854346881014301771017297125093914702214502217977760410465510789775709842566682970053248908262246663387826841450571302867060650901719172161571026462060954516371118720095628458627209749703789613863940246091400962546158419147522941432734699265339708594284867823227190191120568478887701017999889836539325208807117219717705350100410686618710941657816465091058598390744486110561654578244687391440614541513672079915842662087100871952288566806514737064689377676862297863273318706698132526951724999472978053290497212065221359754674818996530848725587975155093138138515816764420121416668397074868918135096602437708495120706615507748738389671989274933149003938048897119449151084085578150116695159304466163467876782139389001907421021582372192416687631918503061818806734169718991565569451129022753495640146989257204087927321198390024199656072742109070221116068364924822797328805803180567790109073476364489443948499023217718536230937566075475650419023855855780994604064512436674090153937931213490073419714408187423359712954357195983810431924434206310291655569608643468684400671311777142878193021583449306632398393269486391247958042154589996447972182848678421789119363165954251839990821167715516931700438713342376154353546441881406541777385679148267571866814034678462856024566669988978103794472000715851238644306931517903636064252683790007728585187306597662757853174869952014839416335492660716052963283590261266609429694528332134457661862387423848073283615411666150653538421344339291233168373145123674282595986877097194533680473687670698917805508592956915413597988415159273123163769562988143712013057967481709001881683215353725096980026953739318131305377050771509916476951619429566910382090245619752746026694041769153897402332444999552111409071042998196864998023235581884558132224108269586100972445636041365399569513673990533809015823986399353679109646929556524641011938861261139664199513714383320616000841076970657858120946490401051776607514718858797562566269140391502264539971901409164960097159767900540224641990894882444882801443261529183533721254490978985168116346095918849157438129143019108026650650490892163385010962128419993292506133069182078144274869272298720418770701025774873373236577017429207682660520518546459003204399134597746157223965275885075876108696585369563359294401700922472264586987855084513738029934565196178110196359596191378551280621444072671270156928971648501527734953663461260858184782967396369856783044947052497960496164669260275316883100636856023335442056545245046712637819389777930786771525780868512697405844239070581831042782312910725033744575126484888662609222698482627734425391295326098442043402159182574896966863992231681962593509770348243574995545744445439889596744311499722241717282377002202409659597858585839081236662313802110003399813091212266961553997959311558704839955282738265057680558981314415120849238782983391764287287651445325313690688837068609371369965103680249604354075777560779574185230028705201332004075223992501393586540937601661337064667523404582990560140496383338621221162081007009147909651976622526236731263417292181151071787127808189829842064555938754653098469762914312770715936309746807321102676616556129969794056796698578774965321604564131528682639596126728057233038965340223481736703458576327493676250835080601097305157207440760913919856617811300855207633348852221455521558267159948257920732418939422019374837327403919930687728554425097605116501126784603570830338932299074364220127252997421262574715946364126947919763721496891656744123022167283798880547633580271209368859049019859124168348336360671591492540820876407480420576573158427630499530280949879838877116655948917560458750314831211352232034625794395177239548403076633145564951953649608462674245722376663354517558589469412145691775625444369975581345431460870621256090886687674922766420205798932109416539265536388622357727000018229096626628471893456379588263215646856788226891726569290404650347237885173879911498876086547520798777007436704165380530103775530429722374353704668434488780212877435975647149347638963323001397918496109542501305644040938070414916282063584984449932399148689357633095186247710877967162506226553991899349817709964394297151646895558119190682925291872284828099697884410489424891726703128051531461787715493138462470186978699182311219355309183465794112554107100781201486963014740826477505470548390516668530659699379651159715369130834755100216394454190728278381330335220777799966831312547136583734500315509672553964156835396694524563287209478916960944368404444074756137453303446045640468995370181378389760088446141122024451182306483691774063767864093979844403661182455815577041500119059816802767939302812268862579378926220451462795705064828940507401235506811970725536527657148657762984586540684380629830190649051098877748097565202002736897628793545075671539267628684428141283990710784472213565765072731081088583111250041014795816846379009748648374281691020455634273332288433265160748341400393618566460193085140160078407706809581460371258827188814724441656535453126505263322058728126206288129444775474143956171250693330029065887232049536686103213030291027127281120356754492710163956845565797374439086558241338235715640362000507375065047245474851341663754214619441512479927528205434378367741933741160840516957529015642362347053536898399775855443531274258614329345118352571216696244485303506879953540040554462112250558216123081357669952294274513691653106650515298953082336942527679924468285791189358719142035045298994131897792009732699572780698381401477704759179388334999541118648514041837519532512335229434100702561330707651842029485666695901027448708833589367957966550278466053270095918452105362052694458233993204003049421022941059908192929835980544569613845359171452776240824944365061526268409930959222916624994197859931666547491056842839207392515137163002588314798990107795233692364725112104236447973873993986861223504408987283327795149124187357080965974630838412279738041670184302061190850832477739947047081657514519101690021870690738929645965982725512704055711782811920468085312013223219696516351367412946482595557638492002102387198041010669328288328107882884128619849299081736087468728923424878258754021651331257646313658261409390055433675021527955098554176648718943622215608576356895601107552363122013125014868234873403251801587500916661255966437838157638640318820857969812083756112652143720397879727542544999588507229090362831223496612571721100092973239574266227125339709257382786611383062951208489674178257757958272573561211356405179345960403066734712246812961530518800090354143806433144517979443703314625303452558566170835099949731907741055499529635933990567355303548396605399013551481896660780665328421632942281625631740987329341636645885265878534897716343429904282627823389125459490565770733349010720927679375504613530099115491728690748414236823955568391343325026486255747322385596359775993625475586612605275346749240384026389274485245775056434971983016748033485022647221066240757985259518391732942469042527281882506383999937275655921282981538908042412235167693238596847422268635720050680056570732442743262879031230843921236681903716997644249360533087581494005280164513028093367894227972717814092688057897155174590725825235248865385838425029560650548635262689019856524324855367413611704092256427996888125287367089482380312980908815262637686143554206248335123283388675803781823180625687698801268276443894861356556060814520097535918760008865349288936023367576255640693279799953572257424549517976904656391318959018138298099349349523353556936181175740451446779200685644543530133491073149603820203371741206234686550293485641991552134608168846385435125524262011977327096636237106353200709185391943717614150452490430596375313168165668951968857247028135536300353200024189634597221647210344544880547306486568345003470353428706267106965630780506625031774680901484670833894724269900476820078612944552474085021321310253102275641233379853661963835901903221155358194326197716411069966224781265128478216888897902444349613941917092116784661795776082490819367131435442132563992664271841947992162833191806446828804640005774636006196136973181639255984498729319319924262167093956100400585624547049355569714331256194345912453453928861608203619805982392626174623450084584183601055260976427572042495204300780119000747329993425471019227175438217635507944954061452674493535229756871942862443700543791177127371634733387597605598120155415490555342485766037202424100031011380313328718916623902647471257547676751104704183586184311946508925872705432256684032785765334003241292848196682102105046067205750517700389086462179173392597600932110252047716811779440702841872130884850196351779924556043000405503861646131342772412364800148176275708891831081283716274020368770492045444322009525873805674924127797594988962355272613563289062902761372794553081126417276575349402842035512614639662296835526929085091232329301021772945090397822494867936660724878475010334398826039808251888298004248809968106933067733548590302791982621947752668458210294054189173675013985883322397755477525080284896652778549969104851541534509209680147559250507867493711352002062287531696115803825072941840030494757834002991175890585339339761414769230058819482233382163147178793260381610766004065091692114975058399010689384708468478295105335535377224655796991181539179432305090154772947597387609318058538517066579077366687423701155501969989341384934620543334074774645108777001234199578762245249593686658671064194074676820755219616157906854566644892476405797666244432139899242313263311722267047461403044155022127856489727326890459528082997269611016736475748015032713010033752929991720970531156239582390959635635294582965634640758765844757383073531228524124716525091903292127291249041098331007955926932729810963235825473446899952285199679336618346897405865398889913889176444980707788153193481409227562654169416935595883682898767043139322837316809531494877773973457879252159117939653801964478934365031247122016626613111191102625250468577795751630978333453821242673946530938864531935546295214983767643562580810079773719755871752666732119917466708894466828867196123981019076457110027978298440085116779630673889936558054018086845285512614415590298236886599756383308751696621326645746329983056290733889672111481484553456344031695879923531205305434618620414007552020821852494132839648483291127894982970335016586774150393817506205782340078687617750109376112932666810190723029575520274594914393870648208764714471680056653740203635669437218006115875201335685527880761234869360185744593265126640737725763083800811232027398946112786665898219132533835196720350808620139693149992742053026643760489435838253555534128518836598029803940805054062421778600532885945751010854018103028191794662639736884304568645006400519376851513779094048066346524708721286608225382903489010998681124693016052776907862782611356657817736701278758223877952312506507368272587510377297433040105354506791763610593970199047516790103334248560203285683006065953015192482593165671594361972301699674074480040453977633015477397224163337975402420961771013747866028646400586963503558851233472899101437955709230167916424383122891622330334635621815627045566168144395067858212072695885769358347786358958509319900207164441610868329814640561561941315269289749674872687766966060142426491378722831338564672364854439917620358612194335450241910659915544223941463794892855033343788361690284231064749718933913324634281731041670841621433842426249652591170959604611601588666987515206597986912298137525999813976885510580338985835094599075957864509888797392256302850109848401916018935521837078422500746427467327886707329231442474320532940359998857219019898824028702589488899931479834871250448219737569294299141013563093084143290478741596857800934125090686614662966583301398175516372847891392406898865492665444275707407243381968194264505099679902353544504189091864701826181014872156877948203436278004295935097001445465553100668654988554010673582477258894074479554803070599397038781601773505155465077408405044240689943714766992914229700320337587421192817048692283461171567412996544001772206579313435421161280091752485950972985669832988131767132343036222621799086862236474365891652882531400420769260877330032629727245905474146879267132780947707634602961045516691811177069689831942844481043190471393977751174371694923399833988639521750451029192442377895018374644165878054173316455610064123590813438456036981858439437697020736521709725388833892764591615766649770900318552730336928079898708104416353767926994395915454060054791478768505527946109927463104422396298985169536477239954713490314690379957400563168858256360168689945867632369157501989271137614466547654196309152503043112028176610164314898581404964906100440627086746505863257212792628946036741459405795261891914619644462105504349469658113715503625597938473359409918077265192283639205074493273112115631405451539038185288728776250231606302492481946605171656796163572898134500445247310656852844128965638331400976595636515000990616884191907390179785127611786964636803162348991394074150577074837140950955494315535802121819767206875798300391773304218670556598813121821984358159343284174373783012318390356037995481063152863035127692711294284600074130652826252050993382827473622298309117426898887596197180672142096063672361818796130884532729499800995644053351556847007573913755087902881563397266121912544772475328808679874976410183554702437322188055654506294474868451624757878531642264720550006971447487714329910169382093751439553349553340461689394896337060905572139760968084367004901760014917934260069335421258440822950150518546619010801960511503400338241419832505748598058290697643430498244145832948114306183447106805030226450451555611813157509024457246539480413311893331235750053416927911828413209550876505043100727698868901074303884357826683773040534169819524801067075416009345982911509881479095380304376113123365823738993874846100874083498090358529908654990751996645052016498111437109373245363700441656184141752059083761192655966722923049307674669237272592725927633340462849072108154996553683401260969249922579518082679027812860734779681315216416820830668723868980554958865068335115229023915435368825502317444810822529206269988335498528315444460755945569378618673435938865438076057633113259126546935699402734398169777655557492112635326702144855676187331743068117447795277087694939624409501971296121981233198225217079631644256684323749026589170278351896512733601695648891351438589732871554149951844607174019237600027030117378493487551140811746252962115617286623452804956306011748846751792349946815000427679528452997512606272736079146609416690598969048132410146817035621476402899606748803750445407847760364729626668539449600051359287919437295870009267571803227907425559764238535695583761791919307823565813787904212288847740034933848552596814162745562750132128695416008424996558405099472522736483240077025252248104092628423702510771225252922389053433388528877588336389664971796955320587535504631727656029903825787098751008113220459173916674078500024667736226921718759138089122646241889273515744999648297970063320325009242742172761077471156054601349659270905986552532126249713495249914636510947150777218529831458635610286763393391161301929970440392196685012159117310753687894025107205355128241453916879359095248197649698897392119083157999814611371055036992484036268467750058564583842509135913129787475675401533240994110298263632160515767094985389582998849376352221069856785427896172302949910970589792586118761122515122712368391252873831399204144536641461930942561917212140885009342938235501874828434873617938308556091275267528098709421114579282885289498306229378859562176256810560198387890965107411433283756054719613376571083286095758955257091128360065816383326496459962789335785512383106111567978360857352535388762155424367293000943798377484511269221123914363359648013760261683658494096549065706360707872788915540687830994900595371257445006691387942568947062722938898909166331689920333154856263647149568350441612433538028100253530413838934766807457579356457533079034897372805487155074597500976505250119081560748929934835697991102083504730194699918093441106036767987708176939449182003485497719170278251489824174000610939782145338423157467873774042198612661474156416928169149654014650843916502035750195693029037410126514381024195059223543484575748303577880627598658290379219752156047204760599954952107265957246805792702871439810735464515073219492020954480186100593980413920894836031003430304010087338357350182461268388135535963109802359913249627140243556031085342821029845276306114799968366950265663023478978386535102670745352542566985507868891899211207333959461492409101360064853481155842695645309711728996257748710964439881821757320935035254065178735000440076390905500131785278841185331135087369351778059549513837322889941871623186847190931962966888231270439847398735365612994275269052585389184091833122138145823166247228231748811956309218661271271899570272388491455808017613554069425510698301660699222466978185407489863990951579026912120168518714387885151086816320847820706603767806201677926177522597188914324070808415710865340923332206683137305088374366180832279868603571020431055110438313680286864200591828998593290456778165638851485421186722256502137155764326428339568857505800763176341374550859014409164319848806984152931236556273213231390024482189081346007532391130630849892422764656674395787093876480860364633517998909057183145257927291363286610971414271526483786346520906245107136969583520420846029559515989028202923632193990513611726200491718319676836940256628260252092692151731308737185851271458307432587668209698616515054615613712311536683126495165065770693682048762047025009494582044563343625566979268979310880994335561448186199999023278241961976677772099384643395559815313009885102028850232886825914238953387770146474326262228811538114141725913141478649489511845074362325521863478002493273960326414963985778561576671388368586526540524296277999041619669839069769860356587705719611850814436714871930890205909151024950481782806242532830674759799173530762167990551844947499677175671872993013610679858018306244254128737712741050329217346270970610882737109287771904049735315519502084201032018616582854863629962461796748743377769778652183908578121079023079281925354421619662492307251466230864926569201209616308483217986642738393700935516972072060152367608515667538992647736067859717142443873254804534634650867342437321417993729133963668508314661943989541637759822229226163530667713036679811835050061685073469322483900050088326567315494264426348202242656104800519514479185492311847228285732447703267758390103085564612594511911406602409786023395316596942900721897509725398558971475546004647740811450098333870571941153020384682458576105645922450500388053114114810057498117672357344455455313357465632392973773923224821959639987274844157421484590908196613418493631088830980307066831040634678572432726000152062749159535411124476936686986088632866933708821580188197065909530497648534427025949998437898591879653153086791819448540505653106809312158057985091887467439470596370196986239777646431780989017427981371889353020915941725671637645354607390512688988811464251941720929891498912256462139932229610362665594013765718418266605042109466188601336400836248125358330484234077524734222827921327551164406656511089748810887476271864290390379467763591483138734113456749618237466610800907626944600570796271607861659832954453234737385029699965338080289118514156986866026699288934103707620367853069016810557321340191220579460266829527852744871006794614559607620706447955322948611556635583601286149333334071959729902093421654455980554144655974380101272939119668031044447196145268643912785841738248977011093745917339715515566401031857378175953533447550058029989209844819432159778097956697035782444143605444299957962054870395656304768572271386337622102349047542341822768970588168989939364579067260161282684115992650210901477261898321994122158398153690659121293881239760373665210253496046780245234203111934009884358814635945633410999985785541452298574313147824647495251974184974170260856420915391727397711605647617250275717778439050458817567339893354545196727675715927723996853128193721276290051786847112291745344703652004290361320280530205789920317363510288027407469695167692310687425927625293316332425283089826529398394332783351096895722031445069163077136811305751211763991853601293557330735947768605442653460252138108835434536471785181596254024075574372580180821607135234168527424053413918960253479118765870457857098651325620436822918974510252485312608073857352156422370560032675073294964541199191539134029197207317783858910049089088079058929073763809147039680402251717008595680955043294863360632890325819184571414208804189786290613170072508842842520741007414267733966629124902759009569995220409025467412320590887589639862744241406255807429337202397525801973683134779094459930002015733569215004701828951116575620961984250566124590140210803275544155843336039065138710608367199818602318375758971317903311885455348629736044441750206768195325609558799996662787535862984761819156077388190783111204055517491369890178403291929689138358148623338706476601284864671309176645130798821615477279288668360178521570626463985618662626581880368014778711245060080748811346651684441048940279341211349631299968077141547474676336944686746743152231264390886178375236753960194080776054538808748141458335424629261229476044786761156143623151539821051922946156164712675457844804246970322208684817807417071168498536933437355953542944762181448133750034509450351428905637078720621666042186825582959306372362936618968946049058373805996865425821038132424476206555397413142897922011640226917602417103303935544112429623016831086271028383807917890944875680252574542085947466758227627097160031507306655380767492725525340654991307735836885455736306320675559016577223903766598840130450757462794018220376537056483193289193484600360203671465718390407718436545216374042213446468161492085524753304873440189596255696150283684337768443682914952942911608820862495760008661044631318214332092626316940105583863933983695254780566217406624047822529050656060426528584936440768300157474364850940429267239568273963360108114644977796701915652675900977609041047539404153855821400757132001908166082461509454760554183705940054311335964619326757525393656690491594659598674813258856308862369786945270982248102883697622924068841629186233720281178491498118163512015867423885269356847372786182915934777908086581689502040629041094195887914850564239651267067883650735393887611829018144976837502579198392273334011731600321319511866296500698975451404298163864316169800070846823725578759259369983571231246664531455609296850985970352095194644431554840795214324687053860721952302244231751234192573427327044212924918699378812697678417694147800343693908971978592291849148244938292573257103920020330756596321404903420267882130298032999551657927061160192347734068355207665079308331994548381807639873575397620320242022609610078233938995127081011802557509575941107687080052200810349678712429801994500583620416657315688564608134393858825234153438339569795799017268267305731126575525449943329145173933249660014350998576602808070159822095831266207892080329545008439458871738542242026641969163854899490940482836166538230648164061812236383274029075710004358298974082423750714378929053738371834488647993711188174983951007949007894249212761397330975484944314893980730987148410639123985137541366777584811730054935781622943021175947572771640422135929284220925989127378901204915133276898732942836979596519112956470082971229113660918319057688626737415555316134055974512391336750908003276676007421776334508330185764945401231751959219517520539383717218138496415800791401485306003447183873003823327478438442519371850311966792704427926785515545356459946535269172095529944979320206997841699000352571312558253890036063999504625647233316688305634678286179323431720169588978805379596166268040295834383060617445840073298925686412325506346767430515667781230662990447395276957683656425213328730422464089842411570534051956574004906450490428387912130601450027885059392499761421819836499691271547868073869244167566180050881484540381216745185283456241212870071365756904239453021783916341187465574838237406231796681660381528699794338563293647284359862469598051622183341145879018895987503458090898799178251906197366129115679320787947129843786713393930469204054180290661082028300315659302954431859434866721578972285279957264833234191761370732922032799113452145319083982371810100775333781591970327164627505159491646420765882747092222779414533301265491563727593568855878836112325244703482844026506302327779910792055439004286601329962219108752465973276139820344070805980458525967921323330276907133653702772277774786664953775777154930618020279729285943423621850306829256817392579982973308894642146848688056954428472557766556388267093315308365239368855158550998607080316226690569575663544141339251121656855474446115247115284779930683141145868696539753653771723524104427233417955986907683902383851350302683432669703212063363422264686460439050104958229521968091357702575792718455611982389998309692537388066896463887106067076844069215880296512980726050565264633980872632269871647641307015777802759039685892541530986876649476396285897183794360766148805382782570124648777512869822192253046420894334997494778921245578620131472567030080879096694728313257672789700545329688331945643170073857719858010895926245733997019915908870916883852478850993808690520700538201804268114385878751817436880922844269961043331945263768832276943278301381588370018469378258673699616006939990477594119370320802040340343582199468504800441869938992679563679919435665498567298005259965664792773781067618589705034374362429568533662174633391045254494988627336890213700733974800064631466093557274382467434454589649211575866467058597302179191877964084834659176440399233034542053993346123328366614926625242759694058447199254027168925410544813908613359811071448113175100052472533474167103743730030713402969706494898316746478234383830918466066326835046958278946936176002168556178823128296451564650348462314096533452687521220012212404505435516428921481243586469452956253696613386473464250701636006078093974305601232573839719775936305193484224690424283769328128783198510993750698528878347669192092493248507526487284867306159378066954211008096417903565367691103008220803646553449197590909276282897717587561636789118387779633274378282208529012021860553042677297500877507202846849440155143876751747515649663877405642482493324767215159500334274193334794927031511921730459829596293261642936319255294091153215150647118034826713514127603902649199810322138095004145055807917804242628637055206045393793161214358523998473783198670348408476839509692109882877933239237770243402778080464637876461499349021429252255823574421507523219363197551399737885519595126145573455364640308354570743859691797011098445842864381411841644483302631427865405659506619961630228922158865482176636592495308374224143350568211323741360398775550403736528006227004466563740497983257554648565917922057020507554345596115303013067569960328131767216148850249705261759781304458379369479901274045037651036431631665967778449622608006499153118570982345786263710390191819113626419386902423407817280946259661884980713853938776961719460892734157262521680049714872534704298869844600301806273020350698536935299932020937242849004459176998367517471829731880160243432373707702175205287400228255941382928337330881839026075768298654619115119884893308144606748931012407734455036707512083799631779268250083594768984741785855302605017712024180074723885040050147206588832654751805111545326629782127892492685356435695039100035370792840143662817927824829185738130455207896421556940226069854197594290840200735872458693985476657106174073386559211294169480146150411987283536244909850973908636209651728952349453207837652262510763428245059302802352987913939709506034606122440709776299047281691574684164575724586266762649374013827836682088238920413138656939959086475361513750109720600522856943773351007661150418159271570737097138094873210888590134492028637901504877042549908418954765460718821937718377699893505415859144284938061865045457871957795154970755293518312400133104906254151683932676749469288014966258028206958597513295261363942039648525170096754445912261681341544723416780031729199545438426552870547759137860112936846819161680712786382564203175154552963108033983996539743548931754684535008304016335996509774053131821219124892692120521902965381188597185539079332639234142004319632564169207831355935449917869828945936557109389069684689946350890541667737491837108556624309206211638722792062170428560157925361721569891999298522175199310352405736525481717421353287692997926793822335663392887783872232333393310772762461032827023541803071152913446750770766674966041628638841400612510124179820002797287344770948408946433040888209484668548447001705380208814226414074412987591654334549681452688812078999310900133068136573175662667516489778328671938879968311514636194521263465785279989649744688987780332478433801748389152671301901176083066112277390748340687537715801127680078712763129100384695067616389450976100798757181410793839729163564635960280289645193083531112958369513951902850797270994140034974105922321294683808423433166729117069761071848888645609759649121137366485302993625236715435396762552810211992581495362160032937375952148166382323148280497449425139694721443149005524248738275712690209890671969335866171323166112884437697477308213278301100023540991904796765558640924437621505260915830915983721008663187421142622749215382805562455690085644588322814534412043052768189442667869033472042831373030534214245413358283185234960017664127130184194897314741612959105211948691132796435746047209571001744790547385036142058908740964236057455024746024394582871293954129104978807651344580275443626332971364401854633087851871166117963695568529036748275313258007689829679499103752795887009890001449680276853169436137845086162923118961785933083580130759245226795439974372463912872082597474332850785839022351959877505205272340646717631055748203206422185152997487226319189083404347994336115230901179893821248344111800898387039562505304913384969165978487661822220688121685825524093948888751312952429113419418190051820156956217039645760673526201292812825458806021988679598679698786525069337486185923388497696903451757016220656700017540985518952702405682458998765885442725169550683918995892879150588420564243343173753285070017721110869633410831611332756291957594226197962475824455269632319718993055587603707852921418969722802894987108443584855191070135788452944580426711645517362628800205604949291184766596277159546359997995969171585446055859712610298486074532310240409037836468848273713956963620355876225731195373504574981443731309848347199769477043014434146256650279957176032533857343703612995054828561921707874589729950048715017899553886306236397897397485879704728353755917717966378509875492055209922662983498245712425025657795411348868519426270835671519457565509906287866904784327460712841692835629266235373939967133190663877938691931212133389066844674287261597044518353432832393821249794624493311542840989645194627213038812199141564988728138010559301061113142346830344793512062361670191473497072164127564616785438074098089629205319061073219360779770712878344742876495507876670021764492091154613350020126710326434926467391018760471767106904594919666719143170038203148591655952159174125931823103348001548403053410794394462817700738880445726750876336660858709022758443683685497927146622077401823976038246356522595419603379720207903069940472575023474649526714020649116782195558348185748496440621697300491914077498003134771997689886176148092303717649103677784193986257804285254727995555508990856611250596249794099207563200933982827805932221360282261797308307976944744690225120781547467624704701367697828236728775102423673365787154122285576486272750508072889446838833282336306311002988230086707162642426293408763701567066277938954816560063008713877489990776431452146727670313653378956384110386952029159187335468945633127445087164878407932823651100537278967365521084405449703763915582696278850548044768469643489083020192707009944129633315803783676099388548515706303527055801785454986237498941772893759739782595947650828529757399721784913054964880519842621771451136671592365917861454572800022744651707943354854923047652353684415060697300811808679519051753303386321383257968772567257625629430790043885520207783893664959348799910780239899522718249130305975816290034707980742819536071486607394545698794093948449729825414110765562787163198870900166599041075939287108369988706703055482147412099885099632483552914746509811242250756060882036031736091748437945128118580223818326004161890897966031697754821390939100944868910273246861069478637499883877380228951851069296517823276014038945869747926163542459527680858643468487443272139916952095478814512153008620491559342991919525552724904326592030106953170042018843053283455641522748240803536949067411834427221260605474479867026645989389856938568165620212531645692088598781129819632285097394208338776207181694238818542579924048127256991326086454010866495435154927347384253464001085992002615004790275851257474372825986459624880871677072774648278075739197741357588424262462587683211377045141702515780674752615106357225458753194395879067431695074653655080599596669271453080857742075890704059372833683478352207687185123560811042793275030981166848238295783633157534012259867806202305722089357784277031680111192267644372192396251146415709568492495052823026989191823564193639341636764769956596981029614989154759064983150720078879774701983427263952029177907081966463352309252127941169985527196408600276494372959600494877695777901266597336750764039027431953891433509996720236285697676912847184293112491438760891757901080790331045961994966075699113620636898297391507900199329888809192442128297224381121682266196085596234273805349200692026769531555109817661314715890249796438743410191920201849801297016373586095276104561679816409865129682726247685813781101172042408047199346863016800953035240065070852944422814646421959277256454799041954946116951213836408992271798323251247616637823176387839677137920790837209918164276239454193696842497829898627390893130581389286892958599570719347127052792108921068383766133294737449784212171122154494855521618730438693578869039237727695882994693801137835846590440011233077718746214241833288150967198672606958038828709310159307884685916790244298242896258561068509482425249717668380091712424942137726600138190694960105910701130368761161446831056472493531675648770327444572917302290826982432379887252742851387417108669999188577137539216089288964180739719372705422023591200876753071020944625570991495031204172305165948893682512039786208886786460921374900645204332214948515596262964296720246095755986388181416533482916643756504834372477537618905969193982940150630528761717281617031711803243476779392777302755594165114443085971976658543491738764114579013625561393595212039421333026562123682500467082006026849631737427193184975849483181687275317559534841396317336830209892419059472886985643164545271999217498151099916216195159543416153996876567495088361568087622966444616026023341029742752962453745906164923424017691225868444969934152756344128420585502635894185904920958456549492295501275375485384580076275631605254013537160012983827606420967191391011110006673660689994844919710719985127174817172901981307015632743983578595421825358426226727686682781456554158085991443321046585076484717222134111979037207905421778973564443015643214201251226448130585938331865065293673701409354430309857665411081805703908389272432357083852140124643215616411667940319217513873008779861651764739742404094046331284667617449700000114525304010590328723332912203632455405799473090066618504899424262776701357106961419390588873284291470137626519132878490442756421591913109181077817670403133896690066455928920551516621082945172621163758420660530608719058358099967787079522874032690187673546261073758968528090231851368661896064818286081445700256579533797154446925741722906965580136691844810565204625160910742434642637472063322565121394533297744218480549998820865212123678781854482111874027100445522220968156154878504331280981857308587314230460151903125093802770868205006645051408607920966280667977267166102256013579053190455704279682040411741217585884711417372542926698346741375257047180489190226073854118696436338554985236596072188787387632017894999947540987034296396286965393480966336060803817375097441668629113013698005423968456371100603747336718070113135396403344749379933555727992730934240568179684245891147721130173998757164254883299360727025299819017556909564325552389155742915870042007605628933784968554449396579860707290076926535860025667125318553594805259603508449597357078481380682936300976262329618326363622645094291273975569425323109502438098183337824268029441450339932599655913053718467218527605885030779128016597799105036882442355499427273100100013691379229028558634948937739517149703835152102495228675145973364130041942531466509093505359165203995312588071958905914729749302710881582678807400462672587416886163607223153852758710092578741608669662985862857680154801156226740438551093723345469029973150564339013281315729833286745885641111247850555053333087712899835450745314185581117024182910006231193717049399034905365808770826050715438343026408089401282979029684560870778890800172704642727291468593668505606747199429589976840042526674362050927505955097349290302652382880709583239209640992419874233880761174635009209082826978553538124966190267982480465448619681680976625648708597980181438104674655207170360252183684612446153784029868020405587006984436888282236331622989866475760808644956125654946666676446924759732674916713406681593828818966370759694058372072567988236457574153240283971351894570700436220645977032665111483830776126858352330051919483673057737502586330989812951436857603440127171192107239866203116440154045155196026276375647398988017857681837990832903144416362178406031036571121631536252532816431983204499995289634729059027476851224437217225648106295996005247256824340919428447269155178704169202503951406839439001446155094096808909870014203899971248373220546265353087868917697780193638398317202215027179437707527929968167680900659412920361268970757991107318737417241704919875652350642032525150718941271300400285064804529585506377365221502411298861197439960491534928680567934168910044434792664220336962857355307573332483043813813220302570821641134586811213731864900650241940732308033674064544773558051112155066301666917589167686103226477285686223855641584419898420866095584497575012499470558940629939251356731648824296340312258809776629994475401971608175132791142377219157122916133650902496163216485257202788669357374759813008082143478084611264207604472048946148861104526660453937750476398239935770985700405097057531916363638200794780952987549282105118750674243900159489618076044195848713404746150270408687916139329568977898238842705182187289207683061048944867088929559753491121569573600940852219181154447168657514461663727211735880172896775828338434278833080102568857516101559259569516543063365422809842085336056346975612317947499115758606090542641333346320263879702013470939004262118039200711349056648615816311141547518654388509284896088680350938198586541558395301702245172649044139187751564029252591366412102441440119432370134469761784213510838022850674429549539031930540531313740576911898744177974407800462090807982799300204760365701630334710983273905608503576629449586186863127123860242288726763486426476800844249917225589812397123500778138168840636441557795182348406655312927984678867956615825249923712075154328172510001758359736501561725743419173522727518080344533348421814351129185041969334992167556531154068024474459737580085856026635373224500800406339600585631386223695714529912784423527424668611676304575170667883411578726727734736771620177630936454288788692336425291759592670780599708477101465427181232986295195824310886652026575692186966227260693574436416815620930094555573398872461594490456266524332704399573871676543261054003382366932668731795789527160796144308258519353096270966294305348228743732942019876871421849341903440638720320438918617826903427165868006709602694835988233744696075343256170020143936990756306265537648823091362865797969468793950434188959290910068156735866059278239689166200404894624497618123516866198741184517198506194559222354618540473177314675095428527843911664272960353034025432250200951785048709533770976161753139080596248859560916314954884579624571409915275654051094177424761146243413733249676469103624504184953189917559287529716548142423756693188331266584154729891875972046836715004266467068348970329134056940359882235264639726244655963044726569870021278510431518719288437211787803245393546901129143887082502689389811036076207049694982931748904050223148673725372584869098010835030316672269001003842508276778600081269311115806653638512768794837135241639551712970257384299261793114546894000926104778975345561221426923365829417456659541561944737027096717307142410263157553422983791850791938274965551418151800977246234468270809951504856448086248461966894393798523386513615480860343339526755933500970128162183852318500535732512577937183933450420006257463573892316033474555503439390919189970663968921262192755485320987545549248773754438452203717140241609947469117188202833762370909605481664177722227765651553167363222228668411352715412695861396811035269461949073418245274698191019068930552896635250441084533678537496812601143925014860659085947248667225841636875552554356378782270380578702236775286553511408185619420355639579906095343457079343100080146738226129616724377495825161713053366446525908874533482795803138896865454366717886284186693769004849525903887060027445593262583161104607987671316365638546705566773676829406277011648495721835505328068624074327049641945720473900716210182307175658605802600644613362551041945321016993542235278760888893625764587708924525282482174337147350307601191253323980852355090978792945941985163107034039964057434577373291139706656656652376084137042181974930176168077943521139299276852241501846382825514974144023869468229697811548131567143088207451610809981676061414791390776815234875935771577511195673825956115284204627275433848543340509411746663519612760753874402124718579554122511227849908267142244089663101489932862677158931611469509274398634002936591266842365989605510529896843955342196827140235789026134408001000371626285237413002656392613201132654983206272782604042430869859469433077804463858678726328338498550962098111087389330139242849929417573075557775833704650875599771298953158067940773770336346538397676123372931054339577243690910458234774735519155990621529342715859007676160777255464887122337562960980143092205312097588660042455477217169227637525026449450326265413055496848661762763933111441089358752368557528550978371664063156234503591950530677859137601058181437422007453784845884211164560586611346087916730426277977079040759806385811831402989046152787493849038627737917534516113614309839520225266205177715237153394022247890975749186913817749666491347251339508474924500085714007962179806301735367831791395990395656277735174770452550962718121544375024065713357476838665795621313790519563066484146723115922964424795606536943817002780118588921189896758311961965113808714302270080352417301772920551817137971171671238353393789501141981928907338371097961964876075420154163964421276181281027662367632525081779937656819952736871072227943665430823997579483752193188568405535230693190875897738093905400121777385146998471790601947867736677880364967428669911049264419119893687832583535521731784011208094805490508677417041490967347509209893971980340267851018418665540428984338719771058530877932585808940249644471737009124605890008432145401110867062562794959632737799269004655236447477861730890012962145288009098434148362525874489205055327161731417566352680656597681371798619984573499560656026836546287201875711087664099542748197467972735978394442932194236660881169322717882801775446275475583899527459924319181128935597666993786523758109911568086324047180761515833985442096719821830838339900173655933784110084278084663571701329788711943446309053268921943833984119284490020596693729132889742906538236760707464960245114949356602993362430896847265463027428520270453019831938512681009447219780080938809926396254730910552958792374851822941061771730182956102807594007803967450511694982870478680818070777676403835174265963904783746268856021906394575125271811277296618815953025168990205954118826884164155234688386879522140129642557345484932599534128735531822869040897911114643315130878907354601520579303893824982708992628507903043754462016524772640365291480252061028274148620007398443987085242776941549667653136600448532353195751384696798386770970670298782035985111604774756052654327190777446857709229292640457108111329735006452199434413235086610114485003026886124482881784519224385706458761701751592844585681144007317920670027995796797306846909710925868931275934669563030721400298877278202301889448937045179344875094578641139944474395492480614058145716898778087818820007929044216024904096326513450107749868745435769776334392514821447963277815388241169381104488807480467240982878694857135900287749791521018876798860587159477337682191374555570760290454875862718638613573421936120004468172072421369928274305868705547996469583966459519944309586334757872918731884483252973558293174014520760864754201667137702160919624812972247105965890061512849564162165414320239239620521103326903854981254743695172710179853185546216520097596439694068699502178845225870230004092026443714627664546046442824867924743005968464689873247930340572824974932397148121295011247209282104648228786156972454381794913458181376712085209621063243662133398862259766845452864400881828540703820119377524927207562887844498733105155482867277885826065206318144831044865082066874581023272435498006526581694464930208023610362511313437637866302530992311998052562850949477099434530511546464135596278883017348766660403939784470345826385857526368515595307874269825896528168760612984860942955458200620760352558747810166102756098141902392531496539008526312930415080899318167439319390926907132806396117743729282725072367655511798189872692194456817969521776465568911361923743296345796148587569299450393915358911120899527593687890923902795080523254519186432680826007039480547049036279993647969610482282392352434670860034736320315633469242633884747946300566849222980782158186881961335156930244632513818435386840943796629813195029756924410386920605081743193351232006475536944416298784582941521015455459381694706297239408661684179174421983516347115974549701861481800293706227019157011263262299869165154053084847864788873094916817535521339535433413337265355372631950227296331602400807645629653594093828190948961593648736197823943544950741557986282102750624944100752377920015497904334229428449702269436614616643186371594500297905049880586651523719326157818366580525335052778623938900743749488872951825047736446063073149627151583934451755726798579840156728484830480456280047562127922678737248457713498484313618924004413894790205119560245859716824426896588682384612723729371657451955617227958251621981309688823054309941540349712474190846314978374576711468448132626332368350259001850856997727958223987560764162713294076537452930028547647307981571631891217346084360464642596265884437630522057973207835267999079324774495714280916476851679842420255793609382201612879893003255364015280323284984751681550493586712153838797810955159872743311810839489181724594514596573370964225991806800771259165505754675292136339590989361385859119602945940959188680991201394879528956711115964591172639340988973003161146148765773424948855176928421284614394562417413744577008910023500984122097704147444036663298131205709845924572375781893647339686445311802728789360159648434588407866789066943539737579462087344907647524157256197686012377522059502085113764070652475267481155310550196183647440305032679978677116927752977791667092009204856601079506634309895921520767160438573761829664014957787981527162208008412294540968881871435994764753607351431754608852398925423377185126332502601496642396501810902570813941652705257103530114259330671928760147991949543520442187432924133339143122023348798941047442953977019120965784095671815498305988292273990025917898610198342445036156796579147550399262229626260776663282758126024583605152445517425939119656806742010520858367069267493164558102561136329793679576483468016686667845165599023426215379556810017782553023258852461362583260377098734991571599375981370375734922494711057287576582251341827686288956654556434047180510530891786381423878177090547209939760551550382424773390588581803433465120291939424271641511563434413199978343659776261630563916808233628972291092297279336633456456262340445301375848918394377331871994629352439690452986541280425073573237631911455764831820964388738809349780949826338596366376619962629311564893877063879743551203494836093752600251787595802407513575408614821336067147711240903310337112802325781147239900185072267781826515989973771395481019643287103354620835196725751705428686821942659222360940902356211326680736304577449120615256926928556982664426710626811287397819784738558413153659194087349843491968888049807622276483950966814542849317126664142401904393579994740922565207587427764963919906199418390011895392216397143592633749918493786191566368560048668524668392186228569628886207715222828173794581321546800913935471692482413022535177203299565684207882794062359703353153893503590319474015849724513094643064269162291818712005624951201165571209584288108176342570823723914106293296792017908599950556184838142182822045463113334241967236393423239466614797825609051272436901238011719640069330961377334847573146881926075694889788208650121279115248828174265264715994501453847593011092627931688410235394919606021236318410182940500057450281545279379472084053220095265202643353116751525441458584632385522174628311947984339521236265960874132672032954377431009794189059627548691110071378723338261802881458076136122144199160927024156128882408586121891938344580175516344639222224452092877448899750693535674873896215976336838473996314192333652754190133109012758134142914986052976633204017830707635102688224523372343653850217709436100929963600139530918408428301379059132103941691395861025955421858933734462041587246639932066446485861454927429324178291051907109729417753477203173994833042824364671146310885175208671623299031526947366948556388906529763218847733918125728447744968640056452055766627810880914091657239443542471943761413806629150222930605459195942409057394745015447420280958001712413778798441906238299010981112355298151450203383236706643401312713298473842503126561636399355133572969752990324867637053149635294184002984457151503345048266801481496959734228097258637444848496051180335239507465427429768054083715421515841167580273047148870964028363251147617376910856168254487010497861435666558261394098491195401195948257833061747443569338216464810272815820745427515676987756373467108719601218949294852448815988886140265780088639974166462686484023858673767310793413914807438491414693345546693762912591631365606234207542243668186828302085916070918582901832258342532068549305228461432010518979582651163415209961516467891746397538717460426295403262280180893781215363799643030077466215592320030411706612785588219475300991849443286049216642352214011001425034207390530296108014713328789318649929919781646689567195971621766717144381314617077986376171884271203188961183426260896445008690099632970087933909331405028990409178965201733493043927751799831630182399744481538612175505129109355159375879263064925463407175104523744983617982543926053383073059561180675118022469531619226507226668591537938543192130719036346968477738656000906768557904610482709653874302529883347184486646649051111826176286053927729453294569059082514378033430419340737683904931423500035014764517265515563202634658109352164822217537885204227514245094049380488290425905867534401097097335233898962394678394456540897445250422569468727025644067931365226683322084008467200604940337634420549387975151268887473531874494716964111950023489121212954760780357935149378863638610198612134146418395965801185806031187798131600497452213905080645827536272568522466328682035121149226275518870955716688003371885323374731726785728055556536052354870726638098114851273295802444453009730361542371995303330839190721602251150920986565780781702233287949094686465049506849644066463254297424415614242973844094307618120936525683159567541962236791526670571884770898944150598146750418104423233740218473461146520268479760612446259255646805271129349055518111883255746605782849331022370141161516379740519771465857416040613110171893530219412219413938938000602020144564736534544394608571114155887823745316600413634974753236954339603119597349807092696865080344588745714048549980745486774491696149977748796639084656386506007443992055591126795785606779031213015198770984543387033025552980030111739265824973856357333642941585789221676420103267344437685904100551381637912803075482058136278046143178140145118567074899221510100844085257323982534016161566567229400947103409632137961266763901129887999258820719720338783837380513458024725357036642144902160041920671689576008329415562262623739977217922541138647484935136029160345887725294942454989494758550985276165754465608145252348487591394659024841963747135722384437012044950571219950933049446897588605590399411425715320572551685754153474950768168542987342495509050814952137000725854076932355608929448728486667964969134837271395914913449383616962677192894709150402537808256563513199037903809976038022118721836254154687530142792182151302983430343695276194516901187298671230220783910487693642189238440411631936697677812597808771271241636782427395275921795286120919401884745547385860749903240636580215335540222182191787829664450808585077230401788776828768998065793690584947945679650368159684078199515661024683930157137100371578185638674115461294836059812299668835158540137026630530225099620124947108202348979164632417576868817594823170824328106188524330790535329506315913035878911346086065077175871781227552081134780316600980111318879684490760732579854483339117293694545483487764577120716780202378033095623654238149389516085878073287489569776444109570008706390818357415207107900242116703283382129433171279468914213200275072517694458860709057151681334971326351966249787485250560316848160132959322513316502484433108978661687193790719961577342507644074123099743229588754769747835235465541308957731481104996659371624589997356913145446080332275341293176019560607991915195617517602137002549956548158803843195305624608114550958992567957319102830513191187674914974037556243091552126532346331740416967698936718342817757522200241088151950736069182505891359551636281073527133480609005558810847646375251033561414533393519859934167059139030818570695819778609251927520044297319793659127523264597460476736752759064096277824321337437812364250991267017965379834693626636059991202651728896004396847806171014120411643031795293814307470496015420827319428911805129572194972972979199604469461192958283779055656959311178982666365328105060958448915202222117963987224132664401458449076803849042303082565839345124102901098657388113407681627436515450075435006083134164254339647819431346615044708456129241813930056067005783010468918051643813969696636670699840356150194172188977098737276844370555644147744124900250622684215347088659917456775618065142403943414880479724644797860465336183255809365751158222385331620601757805772650366319429902980217122746934943356971500282966779571988789965128848661662078808438435332174232603691190796493716742230373339183826060380874111606760999190201448331155065146529853459212197984804455243297182496171440862601977822784785638716460154915356951692756687829220863969124791712834239641652213904040428672769000864740122366910162356718375081973728282264068248063880575773338083027021388535096452404521094263541644510990404758170568237523486284210539793352183189889711177165105318847422718613144489489896849559107468878678660652620814373515503272184175557615938626040230831916371637311993080171422578237375527245307144173609816400937809753211282847560547623686615027416128148667793636534450146837694951529385395602794971090820540189317382664256384181120924107820141239295359504682497492834426042690606681289187198834185828809402995902678967017457985614644072601074444482161917617690141020746618282439651362869751915299884411275671236505257687140800203709359341569292625153966711593881972251439847243997315360662494889651915293647396219989134827628291119567843688959302605253707949224479140164422981012361413119700478529483615375845772705485662568295021460895638394174034811168669930364794475906634625456346754542383401904240060114284261663234534916335116401491772238741172958609139557226737715436694396271936548608707026105663357374857587017422069171272485264200024630255700885635219821997978589645541987055663444546847824154703341191328487276871444438795477356555015223468262741139293065531738355658350442781646783253831924826731154166525362659749542470730748394011234895787572748057177337794768104445555346526317865268768141204158410711713535580035909692913391885444514882741324158094333178088477761390581130599103234828828597358989569927956486428511180603769754532508437010019724218724105313732447218532668275452013458666515400932859211411057419738500471447769182008626567180216756991994826614204340341943748506910047816334927738788370036246922595000766210420475625594164470285637713520427095790178995512265607181287871016872953572375031040472180643920412689038355232566860890835882672656437035343396092999196375664070249108686169076132163982528339377395892879868708776585945912509956007966236158520230163236429187224128419471196814692171739398227596729877142224008168158806575812763195167915110651234258975621882092668978948190761623924602898278159407294486325540342644896451512022486638462800217930849348733267029697399658583135417858450699170641776023289550266310160432439934845824529107102564574463860944575390645292639004000715160750241562178619779763805139131426303791065787580390686487427078623994008639049981504391632369902659809323380814334726395135054103133698154176589793912821982529203965488722788947290133887343495672467635278357904649558271791354762059419640960146792066778743292751205927974458809131475609508523198246775927950746928096716932609775096975049979402045520679795301960951804654785923232785705318798620555763077249252316859108401554308987371152701053438973341396848460057918957842316087088738107748421751792272093381415775794764820181776398401157423202760496644701046653165813156261027576710096168826278523376948527079063671430101678510739007630810268597318378845485660246905827078943303386970644610659687887285815877475916415030737984736891455697553498087657268673388663274691298205198651136707942374503082492812517743960965036906204282100555814186200874138886711225667719950197008508073780084784947400351246772350970663008291349434120860030696165869287574516182724572387996840080594243105155189617970204852212537010862274092384902291552014041237966915889506269280512773863782944880328723281979536807760612941372991058490635754788588887667183861430738494893622251420504940987715180210840667700124348969241847036722616568412005456622885385018032713212665142756330954778768633664261694700551038135048159248366694639017343390051696281131261576081607388856574389917829502607906369280335514957916642564028928140225533648178035555984848304840926948480881132186960863187561294781464951644856180265692088495268222379248098198542451395964788756043158631536430824968448508546563879555301594156952545010770967285722612873422581628841520911890726567883489156626002217657220588093705894028294924750002384549764067516001296398112034531922971014914042861360994684079094522170300039627921735273952128006391086038124523932502728348252622189095507311479737641560564213744656281729071264893234244960642703812478987221492083293571704506386528251660345536561901444857810760871314129038403933483346477141526475682483324240415478614928547396629140942567905781393389399930014214805028522799440253638571079336498716900269712921680791103220222124188525061911296433751421381883038054457705557836247075322821520984915661127657973374982631754033140570471857548224702021310117363956355380064206336183675221576383330331774416538368086775834004008478461293988596405665855797034587187384275893610233739376709916055094872786549427967464333724770522615081334032982946529292742631991299225930670410679461369649712849223583095184032626437054689288213420186975160596482459073292826515354496661246334272704545353528852629312310661730314472716125782049233035154383633639822398125380734905583608568701373302760534770809743962923214336552801147197446218944282392761250517034319838877339889155844066072114780066366836996161192514792909852248255412670808424235961046573532652472439531916193873876542671144203569859421754458152757009394562222781612929778401630852764863037934951513822065123114126734296151022720967447703397122860817681206513394574406687802720685181792770589033631758841584641244830466238893580319972367757537284553038587836056825875503030124515367438914257177885121724476925998394793989479011026570270480870475945991809342232942088103802031012526393449657570534281395898209340525082784491614820263637195748613140755302835219753228996122688759274425478414417947253131823163665566769229483417133888473939538712798198271606882715354964897863648619692695478376937394203921935237557107448563482377846948885079666293259500672052630841786129937264325648509111292709489071379807865660033214451358703762028223375700104546081531126648053733693309241035483360402506320449440399152084489157338035774317855046144537123323255386583171275729446279322176609749705376054820684702788952876667814142875211779372587796946345462460050684856428351526113055501186328091502134258915404641942693326753587347185712540481632047297004476344268011592519959335290113267367088413918947988874353830175808302263574806373337174888089223474804282174037618454496563325772022683249375319435018385574985102315388241695534101627947394741953812864392015027332874103755635367222022316174957806367389553831615950584862081209402963851020163303653001861858214687269237222945471686747143091070878815317856002930632087713614990666822011223274618370709220855483594437538464187189659137859304592799742747865252582721021490569368688121978180074961821650958151368116002993236285364785774051671168705376064548893628230073699420101709241514231874452718658235372312458224982841839108646673731064078112479262014174645869408670567605708765276154062061381176851816940254916805213979134641673057176090481037746302258434168583967734598859245913533757268013245968228991938414869678604377744899128655484168577440616929490052416039686487773808765583104789839407024875611687503339263897121529105677425800453417280157915289858160355908047122701309342837778766601353373737315597451196404399255555184836942780098539246025669539256970395961800279425504515712514037377360728858773779149693957922098766640159115618401303628538131496649829847788168144972843678342164765136502845207030210343394420327948383410593721821487980489631336898039323405683145639908904694091584125353634556736508878009909740793277928222846045533646640498733335626142515107792662717888906120514789746303858313100223759549341479527745766764350748092917432228015068157190342016361205086334492374160596440589883740895490962344794863679478057183908451157424297171224836264246262600063755898253487743747801297239281500990745408964025337010684128387098827058917057629734890565939849241763062901476213381550773813733517509759205222177586212327006348507617398019922374806530202622301164593746343885296785247801674530716657528386108268206105397330522129168248361879384222960505617280002067776432321157884272077948243676820338916442215988686242822487715151700256492294166495143840699500350876789268393825302665817014995212407796421824181378614978619031262504233097192538867410653832438482686689256274435708185575747871706111772835933057030103384139889821064881774288058499897817310804112435415310628082060886966655785626505550490249359687014846588128533044977147321158912931699311760668113868136433992185421945950169304522132715102903175728261344461952674772751947927367447398950818347427686700441093260841920780969993917250629225516269055515159491091929314477400137045323252183915726367829726715341819325206749684206680887327694095962493715290763298684818140286256663823709140927452922960238950583263615609360427578833409131607799170866440850887081555019106828246738330959189884067770408375745586231447190365918465753396019649724407889245386494746405613620419145508832334086156214290651696327548882254317833792980654276129414666753779846850247116397884282928884759933244489508630870574183717990871894298245069158977370425910518106015592489823021252894224788338099104832795872978548912936768209666474726154939176744583322733040127541054710199436329555762943677422083182722481318296955362710704675655893183683731887680365279911505876344410340500846277731771300858209835898530773249009599647064263082111902571524679108337849925062247196876537560143865402929238421328691691287798119932784697576973528727972460432960128162271149694238706349835460109594715692181375404684029004480721061576803674114751703038001023401606507991623223205852412759767937750240639734853418662268422493054964614554369373340967300750941591795713930544953341901602262080654437870722297076423065791580382477020400316852591084976626243540132816880420130538367947422206075508924695594066943662608902803888463538516244660614235539619331778043029424299280315067224179829272806492441515193583621907782308809899783409052576682027362986072735183579776042803410234342758032829135910332898465114345032010456633623047535583496516590286710666278851750799188171591958489015901637584859489669345915884694574066225378860796964789997812504601669998197828904956592232760299132565791441678738686786711532057487601532373446675016921203795619431922160109227181410911293362081962581173922183507798832930225186131279290919052992175239204444694617156455585691943546461417119517106885565342291458077073418690541605095237046277016691656679026003204316515689166580958844152284441092661726861404694243423093947294875257429378119505477781068275372506684398291825110054911157381970774855155013109713660624345450995840027581768549764870522701064885092185283117348967830976166259986302795075861379752404866204428422368642487141178107908482773869379932132100666995398277592727070222462493186832965048321388863305706533780673411882841624698678953015095622961090272003148915488924287724391614278286005700201827619942739315713566143046568537064007464596395907634890023551892611020298772195344307370812014394370600451143236662073745776111643761175553255643606775536205917109849913011671155053049234048880283480126964252351880354754763852009942239864528328149060686266293693077085697041248112115820353589717452173250644688091412346953863194232706166519208818554202049036943055892214657258704298553120491028474101221190773946594721453420698649393758974235366936004157844439701146225032144101066045954721281585945920246445340285970663106608003209840299908460571482535302261561406493147610756684586783121083805363598965930438066328572950820965223724625947629549323478980454716075120669631153664023990746529840620523892874606095273597573803097924331466250680576465561647719021058352261177032143890368431450501031447603930160153846663535520173434039658565091648151752032644001428900956881525545963800628272824333437775993164400133450066104495551829409783081256809266283327773896344910710547109224801290880640006690123025570968608400658305863622402359030566063849858338252321740400609162283250800285640587436540288582200346908798539569268930050854871551816330204922455574691055816041503258780068584702516408633565557170816077444684734288393785450603078737355212005987531880165293787804770069625592951558259015462620254670887785379076894333383854160027352258231703628642693160696207199209044118559836163766036851763771966402848032678209722798941458230859611203328333153393583169389349834875012326494474698575241193539683676564115413717019807852861660478717511983226704513855754993086968774944591976890719885557747037832609639633017101673682249094609290470651054333884950463422685822014480427631415921271418926384581553347967880247868927085366721223435743150373093573903621863281695074707145031958570298501018007720284179371093184769575576136006451052695445828525899708658251844242859909134398263898384441947797878518357375960752765714685347429921612194254170580178872652403544710865681625968807978863215631540630846670249532301909436933508646552585366132920423666525858021502755628239630762019929871587315205404839920852508145742883434599618442375705391773539568309964493083833818097600812657710536967033533466315201483970510368505561503860599635035689620525012193767395137195365866850410536441768279446718267599465237168480935074635796582451319249541020783504929550972715136208000612677007058282701258162275832425051477165199690296719714850245973922779566919137971340334181128615946663771798807907173055767182840383464008038195918470201247932816325554857759038977881961988079377777577246018671101548271838457881752366551504978702044761182470838352408512841890653438892963081977720727204506322059671366790386413267458696041102143474806480340607683829358269777614369745173391683975184725390117006410700189163200923170882206939190022820675872397929433887670318020806418879534378258504839902118655536370182812867447146462088453057329729675522829958488314192394688937265358205208001310994670202843766172991912969359733055215792679332902610171712377652699381728987896759333484719986840030749144536623877327164486944828396685513147752912463336603897726512335890668089136018126248525937542282451475755092314129375712735091960238210360202009802463792665421892987090998886126422272497363512840333286545581851660927753300836111123613324364125948950868278132734641259729112232589117921982384349444490421140124127690817686965713064043933523312439277891014358467151726624044253851046668922875268594690252373316479876131632167545268374667695965776727845524364200532827920779740465459723125404386984681735064869233221613308807079978543071865233602287164654141858194943343631012103703176649256288995681999128752518833915684950081069105425689044167557337959767727041506570749970457414559250330574367913828873649570844527554616655298116238630468887851303130366866213328293426717546166220764869123027341823750391156628118444309805803664106368651905173788550103104811701216100682196584906875335874108830248628307411921391201423821206090199862540696507740357269951267183662887172850945427466265652116360459771834615937905446565273919266527194933094035327164666351861058547505185750143872888337773777443031767861885712597375114496268804130103515989047533035793923920873134571334487185353965347406703087895765928152477602468950922892105006992030643373799007306428616126739577678798659119396260265047369439767164737036847823567855890696555597544872178840514238306629362905718943199349231263927731480391363192794788076381325004898480125552027796329161499371183182043164766944484929031964490301386375620133410490750719830441254786417007825430599169371360677288389530345018240970178052208618124494873205750575480404934429985649041292010188034242281371633491402872835067155896093858525979506202659385918128800917699414103894877962078607734479983882791279439026079930007313100048239693205680160973800486644784384639355263345513719810105793273676429215369846816753257368114953819620242908033473147166404110898579158800427398931244777372507030689199377556728503996746448936443912163151436670827602479185109730168634454689424175474332499950791785936435471341777397545392011699477857548791753237034508479470393069674300241077857134668700113386625473365820859265594484042331572046535313774343624244746156115752006222648885520334526663416287248180700405141769447550866978889979493596643950808583376653334958399691310327614958590431166299473801888425999612853396598534331417999263172456623010827848287983896938792052116530071725476270460748824970801558231678478448013376733420587042589975322964693950012080038812425040885421271284744038768069542327578811339988326919469110862272489909984172492100433376572489926017288552033325718354030633340831382872482071794887348919075565788170529201527461538862766754320364072314627451451984697781697982448964588504666313429013676133692060693980359011304013640684832718876191611325977598298728036284663012915667266050546007688633836869945447281566662836899018927306427942404438615278058014381823293009422468432682674523762963662932541428050101885859456944437549798695849343470583318366236050325500176742460862085095136560548720390183857483798654256881317714678159349546909194396401810946273686179571540473899194420164915209809285352176721909401990334068147634472994958367972858876822365283403384609377731737498411009995759376731095599859979148030375085062776896989592404146919732319850972363763543299651049601133354073351545712632877265112275803811136858176674910665124222934695823162557921770359630410914436638635905663581724061398577808645033003271425285732626613176506608837343058541472542611237995032425559197011291766012584142589272610490294627329564002812721403716316210394458898959373912666822532693930976571280614796225281083368282635557197079893451837656144133096563866309005956580357080276398294299018118225043503879600136908616344133091051188340672483894263202691626327719548724377246039477205581390477651535424260153253170646277700864714956897862624944499334881106385211029248422084628453445379956605187167722490353012155722441891688728588326600662364483363069990077360261732780917371759106604142066290406413114877149519184496863589697931058825187232706545420104638311062351273637058210518520414226062003017437249260305342744748279809006441029837683426865061384919815185646258048038572246990358178074818127408948427576802535271439005432181304604401948141559474886594189706764949999833306180096077472015936670667785515275179938775296282756723936776857782895982653404732357655511858246891178365748054500279364560912547217602944604372572967371745617230597704837965715175455928303393677159972038858081021341044214412194782436153129887714248115061877737172704052655098504670620135373279338988278510085951703607488032476272040601399848369342997764956145167207212256502645294093404894577983757103926695160059730260641411696209558049694037684929300795310278417695363360707538979009369354866572075013963001756037657006843598138118136907881973487235957114547375077911912558398209911212248025797254995399797352013416131764118317938751443949593362059102357700046467346304959170159885710728449303880612558428347418152157852049944846144179504497496745301335395355039233334605417339466230692952509481750043775358334291084287865432579740385103347353009780150684489898558939691427518971661859849526043263871771665787025042110858555499556586094353352145833031422953346130836683446094502008859017230583857942794250806661615105590720171250972220638933826464186647972106203558793741542993370139381827292237430612013075587792233992153845253236453283561097212086409984963082310584335178298250819848158507888016626927076017530616032022581098784085044560914000340319156724976903012476068637316993954444731859881433220886217853048230521908105130696202475612066644457677750782610385850368526559893099970996354926583146514421964653992567540579575304008976163771368852497042415924921583979316678436812857221183886240666721516228658786846167395529065692401363209596680886808699446614066991752602470287312552723697942242138458151215687948818409047799838951515596082539411795775901100533834989303342894379816660178090081150583709340024240968265515340273444289533013363200800159578913812047255092748337865297006685393700588678493041647847747995806038108842341464086204244036332257318082511495144167827726300013196518024388385950703315875529375134398364493679111206563522029951197148664617064788188661972185926562924126324189024377296189397685297021865895206268068329097411193268141243243628952645462191431445265250931003055098571769152802822270913283385505194345811862300779038337846925307331723135488605106205018028962074027760093472266096619151670884168278376222664761587300853836093547873535483348596240812867970257345470317234159048224938188953321927779593847415335367017233414774841851458274020891581308969119891040635374491986167029856873864120824646983187495611788383122099257777424162862497247903399876713778465863588187173401042241087434361941182214906573159219440574051057996196070161062390559402060233847575423521749588117016891768950809455612455526411867533765969811430753308597160074146161715020217815745439128706717201242893330809141097983723491668486118379543603933076983113262762760690645125818490956916234343416454370282396370334957119040676893671674383451674153672953528346166886227777066725439851465184545816541348958778180913132812971629396526446489850211355002895510497081426689637432854495498341727575143811377208117823447327080344923824268419011924674698149026872803525996916935117525811134265530136548555413115579504378527628999551055148131933060394397600963240139423688433176921716418543358518231631092227515985746371373312500119094059919070058131386780497198877050447115427342581531265500334115796185134303173292941722548659959842282445227096680718711421745993764177860168798279977078190482260748777939660817534308093825484228303743783292415356529687599431380547170533601755256101190757537858057605259735705831178297873585658198505819790136964419905353783261588696609308136920864134035497411337375590942460089215113311520917104639947078199161555265958460284935202646553583910831785420324270856865603488702832880983676559692526172887457377145101710275967487027718091121703664319601306377801213277335923869584342714040311820745258153778256817457677512040978286062621902380983985322054081367617060157411962909345574158912581453677109069179788628337776704700064321454627221570546309566597026310753021381501526983383589255736592748392896993014945700923152820311500012788578181983993849401968930337437748412890241303733956000642058499997258062805616630001563045005457258566957180135779247498947133271164068000410391899021737314927148736455377817116028286422193251043044104993900475280983901893078947572136009226357540300664067297822020113960347651065761279981712825001557116911592940655644176256187814060927046320594132441367538431374942464884200503846565297095272647732291616965449920313368546611277237368091957008558733395234862371668794131907636313974671462246463736420347321598213804926562452008831808827514382316067482097972650677978569496347543889145128971553756687571994769994605480140675945221170877621202690233906587888700171236717329713952133707269297196649944689605076770779193618293659608129001233128324731401630606362861281670923295637006825212323376465338894643443840069051850945389115400444432445556372477848564811584329172575477811649319570907042962586235367583273255649517883515101604057549875871210821154345436662021276464681152809470838035181682051641453761880779884818044020097868240055332965827815569489623934087112457687276569169360362367813917276706426144010176234603567427896225140701440586154947644469641276417525054719502561163933434932153533775717996036632268375607040838278875743859062552697158052547003131657787705380912230809244407002218197800865744833572321199197634183018299641735236310024796177279204583528255090440859105827885212015697456070564573254220864171247912305669506916026265572743850268246934352249992714960389432651147712154412843820735768253116999565818997180953150559270688887600683556719418945511921731233750143577360134942865128708653120435998963492803511946670430205734221423583448786798910768543211320925843856939430877177178170148822343047424217870132102289103513762168209357311544818247533879491538543708638791281214887963150360565386165883848889605230155188145503982752585791219098254356429978092547007901030381990969034715535123403965945335680561012114169552042246724146915909925661207571051408360028848118509996514553978331548164644776347050510257375777278450960749147589674614496647390184782925042011425366901093036421123185602953352136047799235835316466396884120352535371107524447800401805658511028033741994318990467153773075806869425919766078456692092448961503171796532435217912521760106549540887973766717610620683236714623371431025591540147937936460597932523514425320994444278853203146533506098781597517505231715156530169737914386230813297109094106507384680054167864176905707181124543818136265262901257325463543945175623833413269890245881674619952507697391475324712598136518913227686076632414615009709305104602725639569253684022821736352585613569117389838917418738379385673378601084631824877290265661691829067071415659350767096429206901137308077208180712237642551049332828566536936536841283824583633979211582805625158355889298337936617359993831237457276515709567023802451563747959942859894078805479322372952180839396909383584506591786024557199472749897686844703600865725136022840561134338959242028396979556813370319879046841116746304640242529415663350037851515152608501796851708725069909510158656073535866647724936702862749019345212947735347386878717124648763814618372272933153678045898408190707579888103642507262776997275477165344282833513924961023965125792026486129467179564053550301636900449966667676778938416433410519671147095620254752997375127768542147548811497101215086654115454709672158918546915160871128651986043349508387284168209680304579909133328262628368323198674512385145617459150715598272525406355941834739072515066248102650384967544025427966473931348340830718643577846879857585624006746549185354866957189250110997161365807657421018489757776291199355952915352209588554499105210985019238154587161990732739501400200338753367516720732563055114124924673737427103476376653173539070308483214775503272664736304014218209098133926105042062931277571439516959699015482760570133585451035463203353675913367459108605556805843057027447431776638570785638674181282613363835458151304843578854752230728678187836498737723470298968603090453196317305372124525331041181057662426093515373926756248637710300950293176073537185132779111993379844134433768305496816937040876788422815808973197002564398975666238880129736351253190510350706569256668549880515182054399061631969388450607839072115157658431368025765524051038375630031212595102854565010962468327358314599639428517946462027509234045136958915338246770633762001814440474855257585162656007565788781921011472665588416981940039355163473726042925355142305962782045202118126578024859096546334354167356374232443864469249658399850544263894686282320815633951108369939904086790186430096401899126056765471943544126307760857571679303759618592567318808370798227052481149173328322389149148309085116772245254690639009918383566568466533449610885243761014032679654027891935517020501868592955363863910585911393526746665456496836724557577854167803794937002573227957214250584275891552201709886826609621245693349204315295704588192517453755198244997730846766932282407835128829758571559374822191473779230643665027415635630348426412583240588785044475393017196996937491358980574013979899986871081286557694732277808370846260366122401257768251427946204004566428573186705657195833576304092445521857841571686931934827788992447184811268665845257118252719951122291124373701600642037151093028260181244198509662487222565067949538362180583044065827765440680621080232383577653976666017784809440011781368577365621366047951400598958928273447858893276906686636269601019687401576880528992975811410209288155571395940275881611826375373999228172766774691755403075175304915927858536767372442873100787321988259067672017997650250756198033007005009300989130541524825678789078122599471384991897397655780100089176683296631697691146849779035721767549303455747674637172943109934898801888113084450954901425857834480394034961488816878570212599839923252622967734417844204043892260874049344688691311237579581746378725369712063696498945808436059725012392879953142929903350464443088853663188513458725958570080407816027227493264278002814095047174145467239207195529258564342830666168047700392323703462613926908822698182174890572574865761831564411082234469178721476832063699012547388497270197557510939482119668180378337395624364369084531362297075913059883721304987978473347996653899434672875278789092426683159726331927436729608011507078329906128657748195854039458531730838012594009929460684294221693220690456530267922212835592247765494379824313874904483752865609937251433471601882922448238466053296374672129889624481211037359657793777047196410034871289955236094427332223536370376027299785525740287331029646039745758412610840744306287380692785764015165772424855454997734996602560398260126295487897572451599879239602578571374639944050256235270956341234200189044639206462148995603377956566343136928834492369967326709169571581220451526491210723194648178332313109240134763782203820294145382930951005848638575930031374022340258411307590918089613323032755314383839453627926031639903662364924138255355213958741169626430776688043885318347800501297334903241681486366488373367913338190502334368505663093901151627974104683916484945685498117214365223446623700181118756220975475234323277091277793074938915371691287273907889519046105788812782631129391290629593853926269652387406043573417924506639266121438913233380446006977039276570632192006443299029446388130359139329113803165639280822889863870925604630016123290905759445479162242122560032382182528234762951865906574990442634249187312897507514799262304880417406998893629530198975444460296075645783414826515916044661934221124808481594946366925372327136544552995024291067327621772106858949231783118947948651399645606319011963119805590870089862314281945255385786615558709216572526202468458784602554857632185723360730702590250865721596675736530134456837624052869163154779433897786295985728089322237010856390531146803893557818725561449610088118498501129687454015005486030895480778651370424699052397890716420350495901534095805018652273701274345449037332319106155608319460136593476403531712575994663423691034811086778535200138748882413196759153289894829447047428969722237297794797007690913148511952195262567736900072068861807072888043075788651641693436006569804170949006195970102133300138508714876972632772884567273435198665622581399617638477343514174175609637056411069344103304576443931660403723563169992075673892402523866368279082047081012366452449810491208397859187504216572819486146936783710373179706601131925118459868054912253219902781894407322518698499271407906992894480000194916549380948752217958585422723307907592632990577947186266631621620784037797139320373070645734995006237267976086572847925450733544946080601629026161951021200004188537174819490974717503555928016015063042291586458464963829990255224506516614143586175765246094538860110861991789512581547060360980211329724754403009261899275950919678508325144732412751855925668950158020489856386839261205521626570325179305615411697338544585623810546389017008126458200785166729587074823264141739924142352762642466147309114141291161512392396845948843742886795785546227520028531028555843664446040890274639058714631702145271913229144427643560330914847149361140720742169059821156599101189231273667807724495365356798413904185891920704796544604697237927373535377375575311611002996623959151654542329059825183135810730830525443557700070790471672813721447676902579266971567377775401118281390600412139118839118787944182027892270113348334853856626879753602262571642894891344595044706984106953333635516160982015391290877430565816335249680810364223217083917815131247163440340533853257848153261820708160861256084804696875436228162851580007557582095285538618105562940470578862947175870449216628437734856793745433172550585704301544027340025582746322781467601201498225919763522277497811360206865763884820647249495319596612607109527494511206792335973156864587229951060100635786139329978117691821779446226545141901913316567809340799691677413081245526521206596352715885094225752381303334799946567466448111338240501527658273742099609868160124592427551698326484020534334678128290418346137140781069615490455763206427844014187415421066684368777782071654017468668569919148034408160854454565393281880476152360788049675655794477299331730574878523508502431565801744666296589138539504371328732174118880929148196760471590895293521444108298463862515904286924625279988683540052637207009871105306308158530796838225522904435414843321531323349155581008004207943705771520507612283526533945653608080136369389329797329243941926005543451217129557306269667302995122922332904293406140486287724225416319166552415325256393561280411776192716196659266112414837270616694329553542287068769128243999373924726100257486460294586692461435195127131725204073046608904516817293810620828882799066228801506227584168110601108029952070350504791990350855590607413834537721892772668493244610363900633141061351961194386574824666348058348968723781760441489646522113979539555619168886582044707016502057779611083783458408329684434124188228792462114978709412122765869392126142776134873185832256174836114772136828698165113342860727068007873416037193496564282402933892555143835746196481226798236593315266405320456338151213332015530544713673869453154769831224243484649278494155398429064330294107101752533245897003882914035949274111638017590150274427918613931018212757748894873641372291720323079086392953299956051470333236329990323289700141909074825980542084513984414358903860648033710267161320197099563854015778277463089240398222009135209140450831856475032624816118153068271167850404251529192099593626573605387273096657824343898230305287778021216595729560380137390192480691706694365250886125646836170457928356055979871618750631255275244482557509989179001035091515044010609447770532881893484707404598623862964133405721758123309364001223789346453138557852684880964831090066711115466558285522963006546221163202279502612432556569120983023391509336890642209439110127001160619833771905406748216696958776476208920131202705029631275990331206285929018049358550286017489502706231113764969780824482085654822777164504860825263587318595747485247391239170394801071708567445217023895801156385514804977518936622206892450152703793642476457613349320230347810629583421889734279931387541430691491597807682541962763230056013473195252003330533788805771575920535316535734787015740127615509145496098979347935862513966792291834207316519654314573371173059425391229447292453745878364450022351714012972603200235295068712351647915410018796382149053602360225348747403006918185317031597258807465378276568535571323903935952930293590472234002489203262879748885068096906109934817710242918206676338587264296904272198564550888847923278809271187540073769585026206500779153216347270416493811958657894536719826709567849948315863599534434157824785336301029526194651573746549996537605681615363820974683094490926958082676756291385998490044554516754832171422931801590797406603298343135275278220441653726513553317415069195508177302038280283090910422496752437049312430743898954611237982398649303714324238987685122107584558777672812288414750041170034247034348039829596579105975141800948065390217239945635617276388163041106290857029668147043530963177286682836370898896680514432552720188837662253728079387295084667969173281713723220663979317509201632431623663435436433311704786922203019839148624079391356062641490579182720748151730181787684514947371085600090285500013779323029492781373360360232050070966634535706414116232819871611609809068815095377973200610756923740370289856338645790683093159007890108561435433404467943680438164120041471645930829215480300899867737152358517377747385775354718870939755317577697506988206661358556789888806151697021365857447310317906071227534089173139236167904953062509131863964745325885518080018992994222378659380503429678522441094668909054215121953267872691772891816406050408397786123704771832535957964448336755747937972292103204393405308011204684958874978018207618562447370854821149220743522280409602486674752553878968691987815580270435137065663595671916948154574295937075725637649004741106323033016798557103238802225862571588961832483001914786002279992101698048879017983166189346084740917000740203657379404566487122390135795406545465933419985299700994971597708846957974857998571674955662560676221358428823368686863295987660407853507364824550184705630510472243910476331598699282588517150723571628878488766486952995576814051101923533902440623230421819495148586346536954474497573822111189672936895388902960954792081946753833930365284319592268548889513296362513448051875175407670322075059135566862230830318090791732752284933147500484645903402597922114699711540396028844517634420606399227176257704968199887762560692886561174703468441413529306219852264022456512399632353368957233837011911108145694250329328789459273882924612126519120454608444404620635907667066417330171228327617529461780337687013139356338806549737292539743554750185594168309437279242454089302328472977632594112041507969362235602786093763645455330166901013935982396728615410155315195386513599904286643220427835105571246026232788847080826076869736295059831703798786356914444131496253471991995821522522921824272199023439024370960757333821059149356079728739106107096229946876881999248855673678557420993805616426112203214535493140328834649277949854659940160899415041463188831971287328978337799578290127930694449395124126327346294467036261374243670050053583930546198722831552317401271282131284901758858993635590606184370143756205264092949365564937136855986530581444840635905954930918485815189546210529121280590456221541988919432441248326032274632042551724197895951106866465013645441951963391827064812746109715643883973688772612872476129617937900417901321778592829268621284940713260994186369143507540349249278353890364686407483491758672118959370295656145908259233812528991532480111019777014175418305700758369578523097440660119507394413178506758621057703033256423345873301147746799777723505907615188781534515266943631535243415739817358226926041608774265799855085708297112564463284826937374381377492325787996507524928529844939215807313311672253039929147242164468634275796232661694990059700971081262316773253643245994429304229170788442834828743467575243186792308535413627254969877859807633907051832564988299044085364694584364925955180727788221343047384561614269348493679708302886665779047907007587803368635796969587429449613227369479238679907396829036436272600655043647600935520806034155501342895701461108096440506409461275863342994098930549592229618590180426371121038835178770676632981009677753169606853606516392559827371388407469654010533664545931680406216505945908985221088957763070888467959531167303563891867920669345813864294565778643958909645830011131709446860252272011877852515620989246964310461046059603985419822942178904892543865590520776630102317380729169088867065548192621697531335082360723394746856964966158797371916336065426514144622596823689925966617044983750963942476703053711593070155754743127303722925295111503941155170101706941884115250512096567662198170392847257323925642379912922464495269132959787659917208658086272193906761431176026457496715178362428120687088336629501858759470991446588889297598387682181537822004788303173273846187488439916196062194486651543028369965507038907715908196723557801793757383482660147937054131982097397758275803857279878208282663235258069390685240662629223728977169285896942397931209070420580997246219738326586001745371425511757804422772065249820520999331398346335709030643127363004741554541713076428906542077474457856166752269235388108649171827873611273399818039580219506943390201380073861065515341944025046836377254899162353753875488511252432772045491436398076580462997242391066552636125858598241413547662225315511709629933181739118750070529894454716938083434593066762279844675978638656988532682190930385016873938514675946155311597031835464975182772885518060899675959387146022615517383450356455295885341357969018105935749041032917076908770268742668696896708215171066057218047447025942974471042307598778525777457448911382916018720790646427902846448737567550591741402938407270881540689166796434066400425939482530643501219346995121868450941016745659773301359508275083938763216606105089998634630663160252988230561809322183780660820025333979281093201789975398259721362574191887552991696390549003286421865590869986857399356753608022061964928409180601426019319295684764919007903810564057779324961205603057881772233614525931213405908997163780209881618839819388567885429900696165576025813035924606349113387218437042455775938878371576187486104187371568697582072394258382486407564088911779697890105665843498499423121764235200956001500567291668946405035241629088567871485997674471324553859527834124541844785882699702706954624308381877357632155224584156670820290277463909469625902639248444618699265627098629713635351183778146025398613053428382479220388133570242018022595846476311629112548037696699429944115860859774881191874294896616660672702425564497113838858696099602967072375768764893289009743522180944062434082171664249475563583542190003534797265757661552946465111234474526083589975137391236035482292867110592016630941046333935114302051110591870949666736517763008088230617578036878092343586106195668648694305717728826186811503915863704200919337681294125616822551630369759671411460749614999671745824710482619512231012036612110761294000929502967487282503086329477126243929682241067588379756111413636641322674966238685579690478326178795057679113530226530396210865251238007733327138310334818782780182534351371214014089638688813521261293045097631547395116915959085855738907665335200735770104604096961827743960708288161048400595042503600759675755476898178618807837728772656927151076308472894243248489630743372824068304893801718279180161941288803037614473516260599053017914365843627182393037326839047571236551079129812121771571969748593387821728568627509680554860997305719074718250874392569556779297158130541672782944749791669064115485815440880578509321947944781911184737462851368665074665363453362619770602665225589911216541731046936253314954329124026844420973574328840349695170246048309077155253874149419830404139242225406097083819704000960602989050690242748401555024374211381502140480004897993392523841637471667669411261380218925641514870543578811991248189047383250758661221285870660488336135901115758964257745018612456556202853251083158903290631606740540180988798064171733565580570173244639440044366749854322200923767447898105771228971119698677148907378188113572689717393551479156935857234277999111207378638055899606147314549659518491862773372874866720839125976602554529506681907264514641137591857100216261567108228782817362397538574607105898618290413859246850846434216274642551429368797404323015991905381438658820000738950283380505925438799481463900152185195021213150854364501349649166381782759105300504393762470464866642800978098573109064715056188850795604025664175634428013717130865256532041932884031279420854242375564982391277344996192390317025535796451165215481204933584354684655842326634507805728411891956312658795144050956171438484345245394068370884176537402281456711805854662736562337755804659150474326451830550846013593702002422775345233986566811811605322818956993344439597328645681164091011394082478526736861648088429925679301239879726156457482918667166604821454637082130275277593681736250658191296413113006634261148247869740558451709511010323227936772376262268105684559487895690363301817452055197316036995235537727672757579904543446704270060042494940306066103979929482538152191724076593982640453123999709884479990738815465087805077488485863179501625858795154337528354991279028483164816275118943406082804086784183641222442089887905494877350587468793891698752264144283674696739587769487055250182785691573698016729601931015407425607057534072728356454379981644609542674901323805668463704207468550306765521932895792856646179193677780870199490420702360808677380815167062758198715477731188381165622389025506889889610220709929390232373335107025381322577452667977034452158126955570651378457629118137618747394867429415075296869964140171287455408162168994449637214191243348065718466235536225644525074492157312902786986154297728010751310227651566190998286741666359541183102706320708680039568738677590827416192074067627995508885749323246247482764409252126821876143840163614445387792905770597082753660642607840447552021371353648401295719965415395263164263789996356322062702450782458170827291163524262155232229639086459063353845048385956510087413355668545483275547609275283055595800349149491954238545279707194619838504209067121864822954196362477383826193891810403919698198377912066673829220153865828609160275426521607149106817526087284143028655807924484758848483555720974423615514800754546038791431768334312204624342590847545146522968153560365868176524565743565552172274532311461788522735412539698054819184670442974956857160357361346802128311377452208670388024245747665494039785999726603994976435476964379906250179451331442022133441068683933054924267311832728159379771679569197963879983579872937419965957801085105674078523067161632094213506780181080124971472682363028359716769036525344167836072687655124384155811833785067198791841099969581764923023103927565930165204017535008216889370788028132883300371106175299737102030513826069625532604355048075785821661511508884142907383737906164328257912820713803837374477184422321019315285998356271793978957204060221864226149531225122780452824342324999630806075159194732904748999877940375274961673371328787592210940617264484904358598863520037595049005676377689600390175933872136958682525600336668171304030075697111887029033335156109473002453574303137874179033242368822638413809146195374014374023396955637776019875356167583224589266129620949610556027821182881946164026758315857197327782915426180827830968473083482728527937312284239349261694998200661086785479503916829560758765256670913648352139880177079223453373072071632630000723471615112878674813377452589392001105277625515442444527616188241699325786376046687257970730378566271666152885334433733619533988908700604266447275451323845911957160709300904635577408024389771029527798958066737529759472895107798149503418487156449542524412164771388773407045668096694757257590552500712287084295966684665394535737356366048531242749948043557823532122657001296296246393091302604696822591067412055086444189403092856691849448479291338426851128017661751608345126354229148599282765133056290074665396657070879432172729514898611455555229705896543566397001504630113372268735483884271172098414201503976991337276322549686968193533052479534288400356827730479387520879495120833347093581683030805449185861513946541193620899496088863769967550782237682534268965333944773535267003138172502730056906326337055557999438343844072690126307966093101913500963679104880711985686825175952726250283566139215073529955008620274155573369463457099452181779631496701006152839126945306768684044886552413551537907866371281203540555082577261289223078207102674326778283529217165455866203818835067568434875571428571965693509963846839441622150293652564819301074243907218941362152089224271916978833733757141386424155808534961024634192721542881461927974843944609764993784503781666322970385450270790274277379749573388264050728685639320800357000016628983926802278743746355976417972636469778774555133713688878988215443028798962376902257511175798593182755575918419323866542084137787851157237951253082165638817521587399949903312627095660103818699741385764141426633387986767269577262239520119074407978078977496231109745653300496671128295769239244479321095800735596420636436685681610276960472478471998893395504395548049635828460044801139785601234478836945508555320748943874387858108063956737379397374619626225306495172301458150943176130913867284634844602253757373066210591776095238411912293013400541250557431171728881928977630756331741773039182623698897882350962384438892681618318587127705045851753519722150760362899326911904131283974770746061225483679046998759656553846800887216116680388247883681900295099574239028743606217190574218185507004316764580259424148115205252440111490797137139606445633990204679306634747688194048617290801279284234973015776967947962026687754625115816007665382748699116763059974923946248821337380358237474170264263826528265085066181475037397680739937564574563317320226429024391656125457377084694221528539214696789217582409836727618010312199581705599402984781596864305877664848481674382374406780886870657790831133299071444417833654852267616347928491137721134179179178389384296544714013667659502011430924385044311093192029289302086904615900116677640605639060530619856491473110339236824457032690020396875550342578538218620076836304966778179156770263341954628693578515539706347485913570959736181392362873744025060271887478934836579405468391642456340603985052044034245466205216392420033384917934040293096918911277190265785986041166030224286708208553064129028075968603764496844542884979920617880762081006375474045984115795747073242067471461701835159048707104813708784784813424259637326100615339097255386743839769710257211690942791121849474829466350539765598361393762569614333789950448702371175435681849062356425233180183690386875422787384513237812477250454912031640219718292325672238585783829590904176141526798310837948548007631003132916610747276860376750658917551173335872009171803714382697365163006566264299140899601487666689642451593013039376067765669567892836734269244737944148989312647276398048380791353943653109228067892297428414479683570555180065037371786821198156576477976423142440100896085113620884271503688037756017437481102112433334007871685807030727564610536537280514245120565399654892113489494551693061553574771504821748443620091463306633307937652206558212879429730592611971892154935323190274043872773612019312235244859272553122790141908972449494544073783006358532181284382013809058956073394088844887588252920476571339633664508211192374600918314868663093868820196645776904658490681454955370107938503389130253743424774038533752314288510649409202180319575937009785061259751380577895875589085618740724188785884955042076761672109972366026483592995923655978935650308042487711627926896474938216147330817727575523335096317501596459916718226018564653584397748925325878337410767925361039928278204140880792942290534972314459241549473130114320547848371673877551353240980143331235167261305391706163753805245455987188156770466049658488434762301082020662349891996616749798320584763119117006757702315183655561932835153134009747119685140479107057218825957258342486571578310661204042025298850346479563381656219695935827523620597527493262988955637845034780969266458406128787516698773613218259636179315677978393013995384428378975163839417860837367837878236197859569800615713438945059855930064706083924410659580252977688056457226189441444176144819107708624314636161368470506993372830791199161917506886966147999614738696610235452627389736340578223359132381047612018340385766366531093157222295610331530810907790822331559140357769404806551309010040360715495099769606616515503933276803911846714732069423245433424956020256974941576049702842719353819436929016863537017963851666453281075716407034481601521434508999642697307950069902313008862906930026864475509879579365207830864967665501424402567620669008188690707771386602553400157940114643270425925651030461236241234021560879304740904880236298249575638893646477871679244965676503382085941349386998470142184627274754017652454143377236102992685477432034422205766846473591515340330695118520267478735738545331118694866185968745084644542048175972048721674801802669021758135991763149347538253154253705968149646702830139470349578323685530525593461845668998346510579059522238687477269017627274888315217772331900961513169799072655127670852737308338976595450441985072733517848034150933376644202002874521478973753497234665827447244951620240924049625244327915819976111647606058723188579565149341289781919861373648916479273608934931744754889668311574292061217134001802481693870399462371011935001453708851347352090856034621880461805860197970203522562256679592772416862049863914586999095969510693143675589924351512125091999233018611393731685139134422647674420935827477955335012879301705081647692968824925674915475082285763415546812046067726166395831019254878911619841388208884438037454113113021060630364758914951372939605676272014369042245514689815454651088352246061342614651157544517448106745954164782907942295288207535398308917008251743047321032011075296446157326425106089358804371043928574594243904573807609575155963684356678852143962567906298605605959647307577560566346506266993893357142175682100121227769834493449580270486367812179407195075435278219051291931630229251536933698866328357918738860356414210374656943751597539874907094733433506058227187969092992073642253844793538457608921020971570272551056682340366518945362928433378770447241874456697504876667239606735182241817142710899255565312387587178784581619206178654968421774536136474833622957532079061583209238313701506251099801643205157458255295061629941422529602969769790030075076125332417335350851723404025145440199308107911809035768997375557753223038593808584069215420634988658312570537472963108409150868176197610655238852756135845474859477596428518959558364784877463705248901259474879394975898628317079478338499256226533320419316684248528241541137897989791877530043163003882196746207648166242187314048434604535847885759101060875371079419567612884244103330595786506019817446852604087080684750846329395170076342231057151719995576446972780915074723935503654546921379523696787018777599894516298751824949560474902944606975593687456282810701778043326665895011669864752398243840502952797348172707886807192233730364940265482256128854147053155017994505147019869764158735875257982707568956359514119884416797511105366038335487202738870778313500383650295660833590414156115491769898773946137706121120350099417835732603620758126727532159241558524409813945586499633797571102961306886221012012649725339795317538761809440397300593710282326656816923197895427293812766555140592423327910265698351159361368311350196209106710017139932374973372683115977989211016503481147989549374944039375819185252214385057867753399475571983391542417950209357682253878815590881791585232409748461572714360693730663851002608109355093743116451547808574572978740710478690007955176242080110160322356035349828204155478815898307879863355623653008871006378275617930743942153270840458651915499628950551016359885788125925057687515541977794028683314199393604032168063085481964688831726614277648952116397306744072201838392968475796271962528315212753503406394782827377218634421786998509669029411909939871135642013173138354792276295260733229036009588827354213775031729046295671547854365152639614841616773375577051854657971020973265593689920841525737793428812930200233095568705918802609205258884096765700756197920382567946364218972270953170562949090220316806172742613327715017519979576457773324215673965594639004751282086895621086461594070034985952005735282553310349654369480368164590165453081548439061698675984602254307693634654315793558796747066875849861203465299942268829157291173542928880399299984351514877773154151892379103076033080583659275668599388374314951591974321908672434748260933131177978304539350717875165596565498243628351571782206750927292316698545138975293257974746887933295563684370649052399684786092604576935171234533377950637522723843867615480994010478004546843057301256673860008656198528905057323532113659751241458825433662705495086353859224801914279671706823778866576170226500451597258882409223327049903179336303839116401035016477054496985146714830990656989958687852814054312310456356006000553548672282801110548376609348381299617668996707411406736295278084466851822823444884057213044600648255165662329540113320567132039769577948638239168589041595143021036239593737237705091097186810330520273330764149538045130356952302131020741628398738021458852130680530890916441405925031277595523757781000635056194562905956468774284963404541492779441890906279200383121844180333261467404021007007081660182564275832723942616357828959631165763808910082700996875884137358587547378395085740278223101792845049306609587260491284894945523697936978712362672693994664747232295855882512818502074245979975325981987521836386417371404969389512152774075396160611755267185147525791509874533815568256152542011159668634384852704637600940524042310304150074712303669597435333992351501330578101841579783748774278233085661493057867566591056899936727517133642835435381944212695402094858571979373342507301881659869787736855351537887803732218099987585334631517191379380638636300743707885107253745783063951802101640431347474239291533328190256282087272824623382732195152866299500445414458769877278777184992674733285454901532761193626265062010435340857654143524476000844971442945549604772050452008097769633709258143698255825299869381619829955617914588462373121382746241098160695078514382701012414556962865850070888049974922246929854807436631553940766675701940475109452123621672967036568586905189706768065320176644890411668381575853550983875817398914332349151840852710942514984405781644716757296000871524609335828686649599109231294556017197714738256867360610235322614879099160251066512785625930330756383846623312901418691729227312564091893504455513764785542381874939066618173682494339517466911893829690586836481930088562353206134670749254674288581347888922915501296856016331138211191505478920615022687032657858861447894889168273289034461910243359889790005934266676043921263477386834829284760247196032625737848352312826605579771839150906171774244727290764902390698429103581955404117732469650659625717152856084826697512320146699109219494649620933306492676134983897430670954233157067201328102149514066695901609133334184292202633869929243579841547716734717619895530848330469774340716246248637065693099205778923417123622558914544232507632363758993242701345753011344971065364576617757325660209139133958380629961668152274784805751957064767490628253633690255417800780481580332192194174319512455320376399588880215924477995067374403878299785852146779084941124824262089572735972135851701649286179875751228396777929102712811877346036155126584546349207910436178536280566972593007098079305273543939801521444484316606759061136739632020463115326861671971418074385448245067869244962320690309402439549098327979729915742131925315108769125290756411215022225648877409713485676085963268588444775196226155586522575153006635116443050949453908161460529576731124956202506244379726592582814490048280708343716731882175223330679709947958401608242951302103036438642339348553091379887099130222243970144258370052944985567886193892988463766178750537094048867932641671944221884284319046559777268563505627561103922890754004157446687029219724254800742263224355283729691264139402636863299982094771368427605612640001296445905545676669316255713495203216936221352550066593503972418756090091069782204077841135888762300070855906182061109690414293453630313774685154938847035309693998616418049469487193276328815299925327300128702851425090003289681989222085015710758218049649933256376210227922542254676772234064561684222967566693814114290238139149272305631032979300773635576316187004585882670113342503588432840550827462176929578176955510139782331104116927317622371829343678630172721059429367629360875532647785096266603857262106000580423590742397943190710996231668021893407102561766288763291841594985744660008149271787113873107088233975285396386723682298769788839019376418774125508266542910870034901694607446288421932965392591217241522665282083133257219013616026955820465627941064221950705890688124713463336112092917337845424708615682597290299109505045182229901404732026097524400774053364470649014465974762413179987111947797668216765563654724433064243772004291181450684241085694681512876769092770540143960751497709019717685118792972163371876035588857859923781907923638895238194469672205041395149141720913861106628906507666909895576705418243061213919216539585777242973442660544797926928898304498723644632131288436408963224150900797532137565456821929809315207086656942473467471164366707982816903189777118421006863734311881048734607081808475026307970230541702882125806435612094126268273756850049081943428449311578797615522590394315329191294051630567446729000322805153163494124923064498316472791082212780712904613323165607859793712902491014648384877973278371538211089773856365005008304491658636051952723199647112195040351297535829504135637267488822660418792832951066375016505484285077172125444064710945082735964915593530434842154046646906168130081558555176364915723177664423917204985303824998648417323955682947484347896136625203412632549100335848665276472813420274743188136115609332454598291068026184742901044634944888250776935285024549166214793199356053611342627843472547652334952844186645744270154165087829628502463460623958405265935625208449262568738192224785171383429683666391025218951004964955320827187238660975598443271669896665754272516331319144006942685727597340844536140837814717913760557574223267134549263703218247444345748929518840355474463425165268524734368578366029754686952340793239614324391421721312442597951022975851743802314795213051826941515540028725675883919864866295110407277095533463100377487859931067849073901889427928611078689428246589480768587977509545475285953305589065803479663392806232260284660947786836998909741043793520454257006648491685632465597487113740350013924767408311066030689606033803699674335201114179187766635830228662354785998611037335137266109606360034028726207534069014743719202026512550717984983126160607481177951456311247265559804788015852306311165930656940941405340000178957325518063502424933982863057868698613551369524399245345911018105600244270615938237342738377985335997538750124297355516568699739505832252252455414927652421641651094726959661738158015769613034738461461564147465163503038489335719731757926346943319468194771911306430181471167745471907480146093766316601431397424090878341738118896005278708829418788324102679312322526024548339599736161294193528989063078164883634783777799232799485325491720569480446869085675864603858547957297879195606505644018112194603980948550778920179669632346290845285787919527344116219889843909692328713717295284039238512215775970950235355420417186731792582361551578059348292115292191139827891636124306475784932902871410216312542581971177951978247939125773340328792324652661621151855399951238356309939242761684279222695088085173244478410940654611225972514258051573598868600942670105197538429890921928497313905684745972838057969679780150350006640402497889113965330836198936612816638120610540027395296801289797387432231677024544541299178081739804356503480882719089675924631111239429699019543829608776691552200789188845262497149508178013913724347272029511777868647381606093739135208056194040673513146185443192020389418918420499640376156541931600542018090716160289697206486100477303770048205256851254887433441755106003039585656849006096569620580735292049860101565332619648187286662105450784589340084408655607477369807465743939462438295008652356651378216205346547554949146266127742909056462044138045319784776537227189545865443333503042326397746257802719134638167576364437223877499003374722108583782383734147473050340819438035686106702004331138683407904632280899864566321437252936773123043490215079287747182394149821734899230642450832953072416360111836628569100328161300854791058290544849053766850746486404326464788650126538112740876198536424344290536616149533204785964742116670251188919652134325472727750171204528589521636814260824095279674013712838611281273380894490022525910762496153620628034195440236500225347132312242181074584319110159420038766876656058880203290522610517836216253187203717046202686214689657791671182209910674220447806052810679017063049631296676841541796721324948088332380049510672715480270206712998486050342680230171163650189997799052429713711521884602521650215946154011372358489270477355759739699200342363479385491468751899691789603428968490252031432081014024557231066310956347217141976640913103324773965247244625170298038196699830340878080848003690720483982757951665590728820118615240525307668706417270637141490114740691994251254168909989129448456784949438624630439528265535977255503457199541397813141968186020342364915104673055546133961162034395842699820383681687730154446032853310354537884729839384555338057555951758017983694458984783604110765951398599684724265969742121637921353676017851818743736799351124372791614608828478843779476216998725201442268254751338518668756790445354072783423780699337386928950207492324361981775221955121147327906818461236270335128260287291531658020779343682793120348642503207060017569013329106885337509538605538394884101118575453389784658161856615397376124535668589332505589959146645559534854469905616920476295320207489977609395930630164068001482572049883755421342430824862260436098552281820525339559784073832477709233898141292601995718783012360158738663506604027114054160106251413782795003139182986067409756751820323068061331129203203858925083789018927248060267073187956705608638715563022491181029051431577050190595080381343799934954087170136022427704717550687252721083701946196475144248523359809409473060293817533736101643776717242146915223024715174520561093106577360084917320697123467214043218145291751434025122723995263597131983344115836235897701445236515882669659821929321011489550015755333933091466943574645658031363563300789002676511625189857060340725119375342865443231371351788653214889967320751251953956136634446233496484645833356936204264976065839965317143321751168430520582716362280622898795038049541191474929708859702831735587243433170689315892343795624781235898863713525943697016527215757222243736675751627564914513663269176762842156026740966784907084827165227390569697348947601845645046831576540548603008658073774031045205848284717557130045328160805503199079861571168129449545335732672636723163369549037631337417416826152408448678855366753877386288795242026185111992544266271959639166340888474259733634527089041928650867643258961540684555758577402972443856696344447737257627078926397626115924936758543194143589805980792329984116903468185038738754362662486237009686955379797571716135125032614525707179952373608183384086462352187851029312595927759372211996533309228657427124363163674199617982368832380357074113510548535895452618184710067678152111493083649826784831560427310089920117009035374941536681064354240051028017639935826746363128888309256365335462178871111158872161139135947618034508948572718734135283823661396978778153743977146814856984021024434972966930431555043899344432588750705452787571739188482556310528209658018737654527365618490737202148132565948996627574481788875540181010917085653898829398222181102914013030361497426341559499767195370655092790004177857815191904027639886412612550555491566800058272582415568487773504126337130706193849736605753813710964427539258040936996528106660168686026099413584912270945962508804018086478952477192802145556738344090655014917726899428174946674772672352624183690095619202053938215231292688635859119570025139244620190982791191504579012033390663992283651029567524637197816607529115784916161688663952755376335242475254938500340090631717728996352972738577356638410722142895677354723211924216171156842814735131059096201737866755444052907493063621975215486309810740878723193476269494524097832977657837298044684749173598515138404993322986524370346188196290505205883859647370306587130007942642169603014496880011026398751245370570660452245066731721704045870351590236614561779440239123335887649529436014789504525678043865901274903894026687092276412749396410990690188230766797934159373812610505799071636965451374196127125035057347816375265036091710799687356420493905855374824399352505545694779380180729221588764668911938368292562084475172956130764898814002285990390847155329266814715266461031019439372134696713119338017102788975159892286961151505228638467358199945151009483746398267736853774211876818345532308614210952414267427025950669898582702971816671946878249628049922929898560790251340145341302592740284303453037611648968318132631729609732022004060512913981827755008914621973701583325281515053950002434595888173931124372595797093221839277824517364283002860234548356539701194279412853325636047455231450240470515904499237866753019582491457798539205558681141304726235254152403947497457631630025870170909241603807646875130787204916743737905707429686647988614986871977643703992327230025049446861800151103223225393397001479166007842456660265057671859121554505726736236519280095939592118881189557225556460613364826980081694352968007343820049707028865854149267534836279770202508588237470800115663269535918531040785546068170026371169819243403159884313399168776606509856656319379481325076998294840299184793336638678844377078460487974316510959272323191722888140401126600643195725704846006751490501989908689278910793626362892003038562761675578993565562935387805298352986159589008712351255812014480551661621969576023446599815357488384082900989723528220761204303955029719843751169595749651434386818197117278533325477982780526070287146676145469549571247846571707762410071624510368743260116904706748736276936951307314568177303028379695977660076603635334071283381934865773460826028601744806730860816434724821325992816107997038914692685499910585664391166748350740825883177117017403788689499920297200789441037433095941255021880537604785118461290193915822921858021758712447924897785548768057013741715277290571026828486770632146958945289239362064998608641932902844007665702524372934469734672703524275904548731775858234535343662038325283712592865380165382104373907882665235713330792975308957688039539773272438126998367730565860630202286266328741204979710326229380461163713002425524359780082694904490435598158098811385747870997608224961746229255685789391828769410065001067173782345595285242094288656274967218448165052397359666592129618008397887171037000768233981974797886463718408268882401364536010183318874004625731345448274369388327199318249276568195058029945338269022449390900696725233383271000170134556981866428102524165832736805642548410032231074596848672658691633377542324313214537983618847723978558217274155730165290181258159089361699016896699205773108712807226068694936385767951119536123700603618983628246891861303127861003451217742770021297326147437507223985913348375032057979606982290382526851600614929545454583720532410587000673042700169266726743647069793514675801719947099278768834804384661273974876452884695953265156108093170130616698981085293608859596319393371476026969504877508686318979573471926422672439771222768066013604287479426788923031259107364515052329958236982278123675138075546852433633431212292093390557479703012041140697186627093147380021694767887879780357221680648627247062557680756575400731467915343123296852402909285772042931780614994080679487986151807336433356674435873660790495922145631944870213038005439768577152549900862540664860569780554248714581746349644123342834430092421934268380722029059548321598577960749564044013629758824499273887404253864066532568698164186714905169940814030718650998366802438861349719759323048104553566233410818890305578519017806150143825444504008724598105093936430182237547199225858889304724368397244345822045636801684309332528929440353394718139475383544229235792210955546336811767471251811657476278987971841383530895307094972148821555758671216548808449862988698167458746124117628114710128813430747101429799904756491037348796780573853377791267466503465115001475692131021788216126505625019205635790863563441327977053033972104008623872611077198838176898425221237709085527159056249031757151188617776746008528894799977188321841734470803029616186260920131525804649964903426844604222316871527352571580686957482497951915014168408886804220730786013308031912896842550622847098350538513225122176000625742176975638159441717221519602581229742285755655808566718738968545601151841689127250518760531998671418743836826443554046353257988647515928073250709958369110753268262985799526979971560695035643851471677382626870989827610217578979951276562458224238846826426400472208958018872925701108010615215309288098001064045975222900139238208764013778026746884945859631067683372085953695447850054527611272869628678588337114082959537964181926017597232101932599853036817344405924482106367333520805362126190799853157251275586223480805234276187739577121062637760763747641153315728166898100521255388655336798873434273688567903275463891198311763254998883779613639122002940376391596789607036141260111355339296850141513046075028022504713474660130730905807583513220039399239705771503049452968796904584979593093255117470265538342308873407596727305323437567152806053191123800360364571177041252415702019190868981973678975819521156437820897129036805191246609194171405176165370249802735164282783925153788135997809243192892029107107147197426266706252817447829023939007634754557217612946617256083336753854707654199229728755772385130273968686117181871653644259510499664183551809354832219732744207765878006431322518802124452266446479540026170384270106383997002650861619668757096981493403940694026898094065839882023308602108342345719133294402943974750278775165351155406108324592999582293330353288027189189158361774257851057728381910026938464081544979197140250799390809800157501593943234809961808369718826692123687826943697858931909924127649252986046258865876843825967986832510782817304318378021986672227686427451480290795447058727930838978385985170428296999076402291007840238264617266466321141374358013410842814585372317432193183186622259280854885962066497954503179465090374188310338176003402776494536494891283642155998171933942771423055986640395211712834752815864382681124338636116033307851269876921405512108054258983111424224425854596789658603726971030291664870632289885912168868877498687434746558879609817904082288318999471506853215011438489818422481612787739985820121627350005105008846153156085942101458454010855300645776569031342832513639102436017119877654188828050371512596695744345252470009813956187921877718563695638838759490746671552468067295655604962770228481062766063647277910638769096751901282490184330583990731125595841121612598548690580107219546208140573212641326963193188723208300084237612794238958773202779034911717675620410288828451890354011971187749927976741964093596279809128275033666492543181060635318414586038081944755880066614135903978839838671994486040131068510380791232919417612543993591593486318556128021492954360046336008671987208915452108478642297214310456555975874816332926656889263230484698467178079798342802885867814736156016157962453057570604843427578353806961084365661733837000689940123038190551052765952657316071243770603993299681495795548982776731547214198924491614232100616513896826152301312670665563565406697961770458617384434106754636916158135682833327531919703648716713086471400074188345570008564643240352741764584905130210849530450274155402429234989889346727052080904114124033687414891997960460822584534512061299468701485527176921015460941072661342094135850301646079973084522277204088242508065946043424176504153291521348491385448228954372292810160703067853289070101225491894826280017446597204006763106740472055082448858915206480008024859287592233444196873937780462544280204042782510941444155031760069432793183071221262066432141378792055641500500044201264393793889734395225712524256323012997812229986470134307591403235345097918967873685464331906177791035929381496575366982025436900583713790325161285289871696078681472586008166296894174329386201850692571592293407036838370542839872010910908746807987306958028285392850804453242653154312381103489431931457389266992317191994386744307696685826194600134604718063356071083102090161491227182031501539887842771167145265781883156199909668872939736134343982836126292985708366552528552252510346599965682827750310254153340123154828575368057402745973065270920895018829416301313617806830356057142565934402525458628989690797315666832557852371567132799850575934340405065777336251442982917771297836654924473910977604118895571832637898267207183166734685531112952603388346322053086178320288558773372007636778169685859079316713258617216382887411663072821161776417353885383763037237025962238486868464569070897614950049839361717220992130136461289791540638453255169540374871597119839971652053477554727450411735769447727947037357814796728634278337522370276409065254599923444856440676051589613619764796174499744688980541613189123398003631336744088315320562340286185086615626660987483529182499757343985219238952908252859772108931888564098325049639500368277426818283442046797037406110961695478636159400695420742189060620453423461214877986535209337215760213934173737802002164260804468602344245968781203868010583959802035842192585407822197761001724187667768193896859201553714073822651880592765857471207569072674237304143580200913183339875265084820961169764893814558264390885871427919842256697801844646754772650885855676807171345679348037838905802284418666470104957459097685391326368399145907495997098028067380888374083083830855033250828866905131077499040460021589911582055429669920479092134295510344811885024061390710675287087319639820417084847639015108294804474156530118395940542105096953451777502038332737979260231707542267559875070379045373501054458152166207442873235084161675000869733441274090380472820461693239885832898893532387502922893105054380501852296470549457297041184602599948302144042285200184609393648550418898647749900529909220679828741525948604261354266843412146570582776725758522888390156852772493389846186948010391260253719603793790654140918431779095740113053252404494572361871975793815445512096788469713849204310254338738004174652482583277407080825453339898003875964888498235884478180547737470599536356736671563017290624119895535679184084883716405752240221947331031250581475019279196985018053045042629383051832656381052167489802585249242653456855973979216721363115761438462629915864487530242246877099515620003011567821114607667153220761120080277772081837890096607009418538549677553984224451598070141922884606561173406336018786150493734389341386730705514286744243997104781203606707928616302869135548163309690089555080888415647055653798040317541699860682055198310693598513614745872840236410849431673014320664815312777800422076839513835731744550443826098399089002284728614137321976711642057462136816130066346922775850471513043434870592875094976784841666096669512193222466450423697175377665559670951955815393541737392743582262922483323518471738153563044591549484928312706933836975551832804705084616075728107846445864214899022691963992228777088665698635134046960751463735652933145277975451025275645966225550363463811396064466388311430053607349493951912224088939213184981751754461576070643897355661419417470936360711131088787991340067025962891514635138778520382901968582507655222126269694492214688141652946859689873739575066135236285583558349215244337984720395241651832237558271160678254796961728463371503781962294350864092061007446429134241278562505978900703966027407430967431756242733042832047052078712389564925584789749132790404461099292254876319144774769407628796573469564006383731870166748757017864006237392360332447882550398293814463536846996377119685379621884618803271729232899959507626347299837619450889522704957624137553278757270675167505636355874537157267878718504381569481138485098439901778838032898775150540570975010323238625754799715566344642729863345357872775560913851974708825513338201274388597163971703189076307825681074646733683901859356568726229120362209353073268961081028812496764798186780519117699006502675593014649684987785072840362099508445973614538993177814700762639907950230443117633638115199885960805736230593905258794907599483000574447207222554131485566359029350098038184273309277879422293122890928916665096338597401167709688834803316281431226450457045820100639754888121991110905774554810969455224347882555320347509572045090976996801501006878542880180082425595285192546933280764621400948369901131413422707263738890881048818421481089442419852772399092872064750737213849676129747867064540460063248545800595775942930517030449697155515564264658169614524375688409925775601900470070020354422344867151079013673036432894116625674087272605119607671938781493348013851995265146490565871316194689301450216264689801204883861958582533831130854455371450587551701295160060775964899211289091574938935949219786566353884499820451113812676031608702663959234850831149202703974472818612079384823968394031366280988997374703753461457193090796014787294693669145782529932863984758691531426665934049431930367260957749610145675039588164999712131803464304859446967421710265040226478898884775064868966964939634870402320390417423502546067673621771676503778212486263715812812855290564286076877988528231760773777299360362210372031191318210667945137887057717631450381607976778763170040104087301148756740849521070011345850282290024917112691935724778860382493082180415159747850814581337771720388903853571991266959210030510139871082702220389749771715801304337715046462680018162553294879566733992743099420212306599239137917203035878670318558561009416857501987157426224458954738031805613070037513054244737366473027247518897576115329705192945137999466068917759341303436841089847299261767284194628658813176346109034027627095247165599045375846444613549038693082522490733452903435337072637758758812402300613154074867225754903315212122678719488661498678118136070441633513316011653359828608646149352267112890426035912408571705765457265001715201896041512189311671805686221186365070688950849355102925073994250427784425617391149355299041697606135155835289932495955903920722828500956242249909940177824756216888621279888067062401709450530023308184552556970505660432669543454133075887610914932145172812093949485787432158834141338164489418541077591068328194970953604552177759875400356271985372873913452111760361646473877461976816976063989630764525323646217382488290067770378266596528094496579557475040573345645385546824221252736538623752570240938571882574540296911970668253977005667647767033497923296185043400444421531507637853998741415224846631280178457575923403754909053803222132431770032792492717372086716161818997257230378747134841637787549139050658660317220990977354823594473244283296606943311917898627397728545889298619127743105268132066839152114399730752492703004576206422019792835926840617678184245602822585314241277667600337297119021676805002587637684723240148285560901019755941315288419472203279005864051307577992509967906128134784698172118859070249975203400341800549756529380561376705204741460761396795378555040161261982191432428047728437970981026973304307949964563069721148845176911534725398698063600636706993371286284727306282371093876060290979534851212278252187181086153140616688301745580786710498197650531278416150735108641976357938610328448115839421587393190589489231329739193708340193767332520223548025875596487361617039550071160559439615806979877252376036322307473002636610376204271764028266752227925888197909413885889623904652340874365099487255121193829594087367382597564294846878774019453023748569214946982666236766727799615358464787388134466700033420748996282750134578785340680314095329848699983576430108579974454199026069741950426719471178365510799520436552050100418177334602349443721331783257392681125076927900892327537240689083293145113992834113783194755904787796106833447482618002139902000038243675967428188003990607669296608518674738049842154696518380198913452937319288607286733932735957121077529516650407728542801873862207469540840823168626399968365653627081106292816146855888092434073042042508708796547863627756575741599533594292173792858637658039731127280297703331980519038374629006399585041390325928460816093815883554964911547786200378843796459332024814675570242512484184822373433542937331698347017008744598522530516675659813657813259129816335438015727696327898663689222611749987363076343049582221561498141958300037132426796697184464411031795431067703878026809624051384695597198922243931214907789997787880101689970570806686364932553475842978890972446525917124760127719228241915747464126076580951465995233970130144383043281600455981094391192860704063495834796055460944569136307908458111265787681962530429094207479486234989670395499656876369270474561655704452523276201153267541454130829811685896704615019122870422642937920486211110778495681540840269360010296386645305234402692097979308251993188574674423452788479459728398287863562538254472096226968049183640788954482195982594057290895646507434110011107942359602792727945454204987935479959075995768629661945395749529768165087624354858022947108774066737069139684164912012135119861264608269455789223866811212621294585813208474306738508145759623371951321298021551973616156023312205147323125667628375721940527601472492336582316933290622879820434661803900681841842392352986506920104830356753530508069209970538948224529805012580355511383264897164610066727953719835947698987031066177271198123980732386766160095314820906102324420774162400216858365726272476544437871543576135314014417941844892911440148582369349605817302342457654984348662217681586277186654718176763215013110265932236856953474702153794588177729168456182192618996357613528827940076003158031977339429738234432825943102866828049615305138570233151596122114830351952297926586777739144685075396964390365531114501874379880675324708793334136037280506628583943405649976642371265842322904747457441032034118444011933908764829657408438840083447641223571820379714504703882032870645584265030645436727139583137670005056514511348383968501604657558882148436205694108324164808166125462714004267395896882397596723434089475654267685178620762129602684725955277328814127073394191912157272926179802829265435954672307437276198454654605959550176852826942598186625664425903711123850957351092868872500661970037558641706403953799022631097114327968807643321440851327063828311284860946771243923174399472514019607088386709915701426573311544191291752844854926741438900283837825180165114745527246638207581303576094433667255989910757823467945504100405146610992597626321950684266605295117463102953296900623345175386113543541452871688038232876064847775486327373613794259281613935850984083641558234751800987418990022965287789282131071736642891833055314072780283147311389113681017070613317799711868750138901385355701897925115911592507708622881927971699169002239582685924846073080998331839570187114224972876194699412631837237023774059211952499141847944321344003864607033726066678820644982980643268483320302870584109452569160227250020022063269438536122949127686350933863982397881330296596432561327071562409982143115828218889693755519137154864917827457854390919112251757814709500254671340701606851371569165023165233117754974075734069623063811977245565286807058583578072245384705497024409713222052257448357833251335086530062975326407481180314643113134468199951139531113190163518931621866677862424348392649711133484198567902217440097330406625443821317104943663893746387580640759378695736099488986180028570267527283139287757972095589819608590248476537056897535031944772885993756400762175348856833672128555109254538873687380376383365769500960504259143820213904832722248587648258020976421956805304517180086021174349342470019907807136394150080374840269994485015734310504896810294623482342316051353325952610687877147669596613130345710596367481516736986775863571910258514135935328854513943081109438301539868525870622782260867151118672571027744069473373683083165361818304169547288260511212606477651366405392972317251925439468419308659114468532187568941095101991028369910308823274925577699651947822763989424156188172040849560794368581909316907200888591025099837651497800495768399096633729914574343021397101074531944378924729640763704851574480193650607837317815689274118989210690694619810375414596057319877188091443668521526429691243973333425702914191422293587238905120913782543211673738198627293581374208650871236040431181495598912073195396250390918280824648022331378718240980205469099906209871165831239217144013067662415913423459362235820623865278305740469809269229875212026607446767546559516369517106285280408206993481306737436450063569311192875755020864352408340302969760770357597661962397925644714722880327213927918884566833482937795293185929554889141092132643608553704273914314806868916444225797961417197519037856641572921598693889741043408307768826397108257475258614503124743678359343940171571654032675893605524782379618482453528856863254857733160591173242787702448191482010248085074960415445716327395768635097016648146645779627273135430624127480158859988777302283101924678962767336681304838216464609141240536267890796995545742353257470412226693582870657207038137728485716353085669721673547155562882157247472018254689674574889502094836914780211129822203542772609807679892064924283504420295951781772013068691873277850545904902500379827310188453935723159346609873527707846760148970479101104051379903525100727536222963753211829487217626990586166939719030007987642069464650703403063986623642730066632890161731833447071674823561060203664687819010321406171700970646364322907727913871055533180575342769032546663801572071848074046891123949939205154631522024564931939627828693511694692742620512719772554048889141443183650608875889699839318990031146189347458910202847606147121645619864114159791123595023549926156926615546958847114922336002523939850039068504139666981791544439964805686356451163711044704742836983412533753871112256592172113385815026867621868009107243702663887227247798928652420152731751455148790030215958401759929021867070941089973956509453814531799295334574510178059199960198708811845826305664771763374776576749262984935384657122035809350008509992779082411149187274022355400193235753238811192577250544457507139519428111258085508402360272449296045573049165789097267408741456005208327307760515206085817292150980336495419691554385456103026331071617518401325543013123692655127402544854640088062162291807515938889408299432494990618344490209285624937981832534990726418885098240378578838959240073708402355017094830176834951704100221462712342085404472360100230122112003947001838446562101692358812906788652108299807800300109872937814954678023628621744618811870671887243144070977654953522871411885986882707690517085921424305769667620129095143275006146761374893445349276482472660317312324604150290184460602544522811538538072575700209335910475967123162987341144231601400236365839911479135078923242241418836176318414568778665313062417448369077035092496120180359494207154300251505618363868868364710168711442628926994913255541124868262827284170110554935696506290167205055719866622327509409622833212106509135945190292725273794004769209433449398433039500002885657839998721399918066237612649496620833677747729574905863262156111229164285791635836030450808322992191219790482553419927571200845367215980810824609621080995297875474250508519293480579869665094664450084742615207738562002361550885531225257937314117486860735842357713288544782403589419334912960151835836307498852432411232959331767023854333522026862088155862282095258887004525701684732788040337527235243521941197165651172025658027990963727904365827902872837436303140765054882106651065058664264196594643552223350317400617318849395841620496762038455687354368427467603101829814741400806315639129675949557208447500800594559516310057650989930464811511565114268109429322589398448130947061015840583929900703926802600651809738363520452797208966951452341540813937840668954529750817789021102556818667383447939398334575976563895222985778556174275792603308631636868974715985377216487078941108802786653139989461167509486967674723690262016806693955008980867104355375055251369333002514325771748406134555425540667977643042859978667723757947878609271000581522176784336608486779082097716025475674568703539441174828938128257507056650263535272372408013203278132479711669471176653117057511629593328197897815948254213504805731913657958244820373046548193810233661092421293202106396446307420992372304065351178890910723792286406141300696881935540314593459623547572887507385907456019353024725848309774240841410340009027180359852843143351026831058669622840728814502521500381413232967441022832640235890229805964158386742611804657264670330131318463427287852550855066314916126953362556784190494966209925029092827610121019963742105777940812444945603354112540716521193219045962810722187867690528354058922848935402292532942476615307635495714464590686224374947831674019374668153467126963947171436477933026183545871807836650990431771944899211296102456679669563931449057645653267004288305084443795503368530163466107227224572861666941229536117252827059062927735344813652839604917777831286663740845560500009056275676610866098818904853234215549896789594728025149003825303446464672276656911616480141553107147880586299014161223410697087609274429809717286862584296840001569438740469956727244043687730293100253899472825707843125398593138827784156606010391786115904028820942769350283481155071628941883906028602419839250242023690389338916364477019488998220195586390709226634149657660327019250244083599642145738872668252929506235246603633654628742847998521026169998226457985307728635508523879702487142996238672127917187803953979709281328156510902629204638010185656978425180774232359827529566711742929871470677791299773912671613935736163211922643291958714254007000076217107526855837366361226465931513681792615208930714529697258166791764232960290754479385867107737233384645213102928558048459875547201128495967062385646586623337764036104394621302506790449403809181139477661190452304683976589713630758503512782640350658418320064646395869096304654139157526367361450274825928187770312980533442556415207335617572458727310212725663688894103969051902119528572827637026185155414865400979501519732319900043366480594871338612592770676766867505098033120339172083332707532994266555884268144963400501899316892003064338967536153256359901648352565075407638353445336940260000685970255521915318241037160248065347821959111384791542568228770959894009518122223678840730764778135152055348998975093965826559206976426691791577389055844434948715252545196467488552729032786748443064153708687063928517305510947300130078136843452163946792123208377708846831018705058903154816205593012556700777721649780364789173398064523388033266278989506475237959463558943828562670482682088263903091724124610129883015376088986463501211402466876252218352943956937683960642368119878914883102221052014222841160897717612712778273280984657971685578333698648156776610136436754760269230907528485969607904423429308088793061985727500601255805329513918183858693960429528724460488746732256360585769543299183394164664929987708888057509599567925407239310248361871249526749649689229304059991108355630916343564124282901429018890946197827834219227736063958128270974513011936269054516010104517788384267977006532252101275393981569295661879892481722427153499296324058742979986036884537451764498653311032706286038194716793630489322899246386201756893085656963293901063386216795585874082266009401908177391319585023087380103534067709133773871045519191566580288181105302655201090526382727201825225919861009094057262769743424210083611927855153866432609498382605021127987907637903833019262525517703707235786510200446659617299329157293041459133533700029720771599424649407701670280385779589598740739195191144137117685505138890393442987223440241554521056347616389108744489078380292714338811247672327690703066950787964191521886363959471179485508101253908196183062415176298177129670298090443430596136218625844372932797735462369061732052888485769990949501588457668151365105851075573011358227624957815703914952629629773446711261728731221512209311239078327513501064517005819533005804852781973548974361425293775006513487299918649105713442917059841286333369443464696509785745727053855603711388287478080495148241882457864205881845618210664590225216650213213477938156409573640964030639907983352900001903309954258705654181435450550762840015767188047415240653457365196039506312888552864107849652906656776313908047383478089507789138586589388265034587894905684246542690620583822039425743126851543761246279091898094311155122883818299506684281303310427102037577207959474135210385545908540291764250921910296022482466782398883033560678981585996248529554748004930244275547304677449469280150123701493835462491227361691087591550403268234186156940086132345549752283176884695098119171922517190853174486531709627235732293099630167532476351909222858320813053916199771120864495950873742358709098677669345050105665367737885506339584475510801568775382001435231425630331836472554651158797522028163295187376056929888985748368637122102114206384105860147042447694444545332386190268462949644033241244442352421331181390562848705174472021197464879102407222583505346072727185008797908179115688608298324499039662943576246203737065220255861689081468559799231679467062143961620911984067846680621336319058381805550790819966189704399319524528100440383580252301265956462942826145250055592822035681524083686778840167029006958888455005707449339047808181602899558474291085582046568602875382196383795700990492176127659105900410996961315467259684277561931327329134269906319092116778804938759043908620387092905616436700234325902800218071900169128327742595104306323044743654376967156068088502600504893531431240325899505241476678474858188283363773249196678843985968460560735386727138901225598403627709117967229462788074439558658268399485225947867267104107377104979066939599219298827636773411111183202934697535501632986068258252113853889580696166683146509363244191911492566707847080271528663664453256234807596692024088259647509796330530719520509145660630600548531668885049272169167412763784236680792764911036441889307334122959264262852955182072885267815928544574070851706463130103841898569226767690222845896537699984603132164921749053056376537524221460675606395284912690606731066547755653588322883537146947344478519069940963909951745640432615247867212625295433678277495050936835693388788283503785768694912426573549764674282092519795815516296574454578409025171460360291814788284849328960257563479826070246493744327796475455757702288305968772942913849229052280668672600761037778014281859933732879477643093328653681547935251159112302008669342897855372800106678797310016511629894982250892600299418471681007814105950839036135251939279325116702529519746959616112557281364965840041349829678865286423803006517978687901439768579339760602307630013186096033399656813912542899803679049955598676040863265894909486407198989300228137013611439820051845673184177936844895419493830299700386797288480994879428214740446187891009589788030632641058411112604556562653026184908741247608058993612927195326319761360771581086181056802112693339203756863152392230330859540579593930295728248994058227806798319833623538277178962094821846907787562896499474574057773932144475951807490392515588446941833769973827997220308927591603561981788605171702863879756056996404580455703026304900263637222424113279362560643682496783604234777270418311747859974831352668647903898396523728341773108411849141470996264789783915744855418891086328208590691579851866875581160094171317254129931101279378338398527432870414468741509955074305172941016742906102266148931536268182874024729373511439719923721012827695846250591136596778153276761026000809576056096279906967687632854956265226113256523946142579365897760047094747546282816036160356776426015093810892623592424395922569942628843209788515421184800248401999293093795122037309792178636498342486701987569434968825582128245794458304721197561910409993727580180888888187310004704932506181040198922455929354040786815004619580862512969345320261012851458736586696277386257168574901646742395929842054436019673981607791528655915357425062673878858906258363938973660200945027675775091404941638784703950821849917746779241845948628648551454818628666379128201555549897210951326055800367757922067628834036888301099652184388662429889141027084929160792146192948773349325148418648279456598933707966143324171679352904467124454708614804251014109959942375726516898867386964554579436514668926179729890704221626960706658492760644330698177169527606273286740546172728737780322936328891313066429265709491271423652872330593855426847722233418589345749731905084082456091013313564924503329790352459425157856951275851729335959961731128621491481354030270957117168313250291479345558365484732510770817357571699320865288841123553326091314115009613192496553625224618521731016785996821000703280428847659837118212444640939763472043611753359329128005338645617288604143416597248071437570883213270186719843796626657070138574546434743911231514868396435310742724666531610344424444860023631451821026366710818598419289807505027919652860747518955474108358698888977622090976068768661962117203008685906315738351674843307682178043700879059400335469675101872921254492885691514892953842123331858568133453971823802779724016024652920939617490777292965548165609964082616596729675902208084147293531994178862571591881016574178790441850967791815697078535244236850482414595352017100373199041760833512245004520292758356916558377693452647043167268066561069199082077922167048996402581369885303850759808575812475543860584928566927336465203369538210523892335597204446547148155554594395170016946789725022938415270439379228921428217644174983614812088824464736113470034971651579068640554366915989929753612099544717995735414221114817369872057035507566641598778008708437029032394873005895425653360433074635947908854538142919868959612820341547331234931692430212278748688305845127907237285268550199531768690252314456315421241212273467515322711359138957099643011991417346999209913191701257574384901933586888270282080293751823952038065853477234207583901824946052057454708771012413793028308496174875226707706879531645331038351341788627622459151438527527147797216135554648622939610062566102820509809684728989647303870958481139237521980870410299826937987096149584492156813641502113089244726453986844985126384803667207043160422442690194082367586242395553768520748455007638288527602705380422075417383217483260508182578291478148138800493996248027313101442167978109775418205700808700779759357330447328675069462336603662472109382812020526522027680449820489818131481785877570069698301209927546726104004080402791640916902317485099254380019742958509775161525367895163715069710565203647386787330566344051445572491538068552730265993946263260593481384360209360630959928973300776044331481194330006946328880626532420301388345234257647022838696081041246470040340301782758598794231655623626636207903655393531413253933014970577673357131545734223589860659959253108326650511793801366534632374306983438159719394988169170982231384327277836520558068973623607901499145022871962157234807505617015952965886551995743963472531893214089824473823996323684666108735486840922469082126062028134793345676898953707176400089906407102135799936935498498502487132476021914649403712773876011536144299961996178539351791690372821074789203529353242619662448189525106560575339100391933795868094024524156001120495574023934292548962557584761398880559885659744156522295343474411160128510601053056154474126669566355461328286702970318649450080608324426174694421595404213710148828794665702452377943425923904033268565793757954006198475275141073309914016825334692028490116152417652733760158915045353109968946260922549241817695968972993339503544486465111821057616320833829478913264614622837338425709546159137614013375745604613862160868970622373986211960038284606021012620509984729426188180410033321917405921774275374249116375145170049892291304578491558005275046684183134233737103533334361049536172492532429502482572982049517956782114795920995330787572419329811781610726133740863531529754455182980869480466423409188048736246966711370783839896489434236041944655571984987076509720717579668242219291528630131577547083991004824539734127660442995131960234755074908670002547520250297005489620907975127752410506250334055262594759823003547215446719200350550176138633720008372972392737264638976412823782975244259121337813705896810370934587737491936671165273065912318850708525919766038247681124732449268390830392721926749154723747246977982195488452160428770418633671597900905560449047726344543462855859617497145689385267577317934147432053242279011418980194628252459347803735157532447574425667562346849380654590793884304120111989765417435016371802380923899670187060404236245711319713306839790484128012127420901649778529543217049296295970801885542494337217312234264950907006719143547504810378043741985442545279590839385307909068209659837077529432261039503222475727477376520916339909465849867563749623539808997728959160512831522457910678377974248377583769943595779421765788316990370190441099365074831704204925501991098411034644815524114484164857782140256818160432737881857699724194345808884955239825263380072263231084168828494432708519038608198245484579390791691626385135123945772401581366641468022887451789446958985769052493081718949027969361104109088024457893542318907559608776345711637099210052403642098670827474636981528960429102231687012405521600243216932951628154471434212710768806652204870159626310396698545839685824980676185682934830283511440680686284652446549045089133985065284074323471622631406527254108790973899587766420963016004603007575396624120237945902765319213930485495194539887871673417361456460307019411676323395570886026257127465922407112561297319425604307234552699344828601039828312750730106467726248035349298705804034119764162973525792858492902376461985358850548863012604916446809794600385356838996870472084936511009170977432974615742866168544685920523946101850437816528607903724282145281828822059317123066720520333175251075217613023390431090267720494189373169997456342465921115840409565629328260831605833287349633661777912936930762111512160793754215980462168375587043678646074255215556661073429611291020049721035201663318011851361807384168787256697187312769895434131376068692948173729968833459133964008788301857464587684022537510313105599870604159518973665177881488383891639311972743861524758189828267582353322249408290143834527889099361768062342916395991356258305374175085864534412821533609594462884435393435268042163742192667193542515848714373379966167435452596279567045369015690659413088671546504891286825541420898239158594604632030126263025373812015436149843331146446100135817823395087279626693982232062543754377453529033329883438719735071043707671006687389284486776175111686001796330645790585887360339001208491889129010760197216458888807635542977859351154553569896604520974307913128705156501528108957151522397183932814415106906677953585560325126066901795400507457013613525745703239240302998793779114009335623026917434738135483773226685471011489856554576915836397623164763391142958547465613271897117082089831131777763079798678512731462929091724097340243542533763264948692327653590330262740586417606481824210271586366173395466746477187528530175969201421987956949907189489850262049897549900995718604856019111630164006467414142571165506029526764060374490308069107815188699360409141671631990574789345397199335633385811882890078866720730107559065615239897808672537751686858345622493822809834344834551501752853851071999231793762852675527924153360759681539822655190211464043753846110985779023421908190954268052494493496399838097674445782078162631851079417299336289806424882457111513003153436946567574679901693208390832145375378890120179408297889804276252886085783015701534410725740880117367243479738855110056198875821087274041593549391191449355863292438580546382941417203043114364853822933797370912683285566422024992860391887155387317859614888607356174368678713840842730855725818035202038271465923647262787872381687087754756943533871909764711766736231817033850663577286279818203513021420459831388245046126759201685124251097874828783558470844644479566707418484659353681127170144332550019072006673339558371664505824523525001531727341693445118111413675065872207664508842361868061877936763671771634909032215411240418045754211328240730729699985342166982244007014756874170625566066060257342667717007441589528840923444188855515380881751693711629289069372912435612192434741398550303622183800986071330519384583288086859212304706996680445590947464935971708150438091680492560657510095168656520350605836261042349234394353693893514240485564873291768725864235925905601654784426634964466010516040643793410902193728601669652811014774955404494514333155828882480915080370191117361720089998523111180601981093666779944518249453127581202423235329669728495511833642213005762307689077976552741482585252766289362472407073755466189611549080073534480079982111415197977051566034779326626307066922151343965293783830294969549925149568013568686210755876630854414452880513325866990829326524073662599916583456684974081146386144983904504154500084700880351318736755005897068498237988057064449369848322150922948307842094025396857730059465719536823431853438009484605378337471095797263143680083058135444374789370366111667290841941519170023538755266335551959388597697792518243587221674025484016941069055930127452170366651413018535153024020680784423763098583483157018071592348048711390581715965732062737678425065772333889627622294897421160026562458844001265005882268563443475102295156658196738977033114102150120805467664863020338750206146264995878564017830410304479676329743124676902826484750003069762789384296583593873776085481355133809164735934444955663244254616818835023038327678098254756636742742634264648750476609652379025637489956812746361185924045834856735010268054375937895332267757488326186324931089112641189804221860948633702265192423738842104787597862482138023968571967733280370236591738462073434878647872459139952288861775489321761055873554199600092708056609994540368437652416707387856130883822149315229153977119401347803386116353089016476254970216245003545404170709589528598029607604377530925661824685877250634953375617616451494724639307708735927565289278234077292945556161194283008238389401289613497218076484953394060943500252825057928879577665768915448158119103269086606671949732924144874357728339994915246326176031099615692260881815445913389142325028982023145462337570417892586705644448325714023409962289708570543231375230167972167175673315925236298023858277272854515073437671187790034202960678467200483863612438514683377591779658663915771510000670521633208549140230094031814750137643610916103547475452404646935826650603520908137643570094324441245474578323314535947871747665137053797652721530574199712417603399619913391872109033511368632505132423248068528298276837762664652896520255231112775071461543302287328300825746189161575191798033531690223522468619766256188420315852951412735857367996472428672856388996541166225229182233864200020322914241321746368857664423916068652325757093985592631390376454374724098534591789967409720788953882605018938730484543090344502222377260100202874894497611221632933432327835205289777008915051701283468455917422117170854660597951117603412630360809999672348366161783548364721753976989506376212496877545903234839565089050384954827839263128192933153061095448242597651306339730416439495475935118460693037127939484921604295602638680725329188276277006958464199516911225662884144194101453817310569045201261557859513173594262752074202574811952278598001408117813015931373845306630084661913455226430261660703224450374955780896712915410037693956884567012144046090243760820150213460125499055849897235563757535874414144433289909810174191622058146700500489528677229082209888285579205608678901323811038009567493476388762485823282276109396846952063389199721406432553445397728472141992350426542452295323018931981161205185857520892175990943042700380859112110727195103238381368718927201108991784939133139746172166704175481618313457786659571965255356345046592264389017059107763832180634860219910188360097079127621710710910271488791391075525755400886548593976506621879393107266705186376918032223037833147449442902063503106072816109273475979343050221710219513095334837478346932837467175814836376599195055849030910871623855413264126047700670950694700031437393220207456391254257981561722138922525926284155753987754931648643851904622796980968202646630208484040981068389791969149825177045246833813216333486615162779794188024900263509035586914928610581698814729192840959361809152483554030058749625190558106965180691343051076360346159091080846580279436081260010474751037441840184194973552081885278607749105849096310865536316021747115811151695870375902350365798472254949509789612065552477879390158210546344134877139503399374100572161600570348012462365930166097521478343209771493077873832731965456416567781056832961131593275907876645017011806103429454925915919532243326948104012222941157264595034332867551090117812472922973401989079622862438408219739239401373861799373165375604243916366219191754703900591894108094355489293153015430957836715492259928468630090728924533859688431395965292370347935493277040274957283520819456311422622112889780356786802178672272273071765381640500222469595168420870113443003195437256858184545622764143964936365483783680441886772606772176966321663784163349647410022043709236145516915243079661347524585432347993688582243625536318108095364830085038291364398864549313619784941029037780129721300999615847025741892515923350975728793841031645689127190500487011098416203190786915996402409579581987317576623312558922571284190512197185795756823950197370879612699540255759049972128113811983327067181274608949808372934398522260246163624588661554332889937370888875565391948976839699393041123203194957008459947914264546105849648150651115677984087366512795172068583991213834501141905117757223028188990659322208221304824191712939801821804278967456229493875477175000975248510960093362895334217151503167099230983809584418553386379812747049703532851610847444591874276946261301648425768785687566802215749413738101367716790226198981942761908884292745303273794115040967435886981765162329001280673158049523149984950082736681082640444794356387576695306669967362634325686829389447775044142405831601518249111403516608219482386417996562824945913744475982881594918991970881244948715155515882598442558903143499314162496342595868851304934244273261174648212182470734522377633968439520766290344950898056069131953200869367041525474757509531490289105974186764246826603269268893999473612123669929484380758496611564184068484543966080735744205263108746083880460419797189114633719838262420210798635366024353323838856263264365223088367708543926995774481487775711803733686253493403355376719197205604100252258212226157360828729524645312969910241373046544927833647110088719527556006238125601496392155507154134265382365896721582199950691744080100490472642072608099561696126853758374990397028367082040345768996333749640823583113429518625420847631052934078179734564426790888151848812780485146307282871034376704373228197515831230344536162001640872146216023158506254738348250747117635492779073421479217632265266382679845088446386274393616163389330825813363019485469463871226441548213441062230902053348730984605795785505710628852424570874422593050534077583236219353300760456865440989979759440878930004200805017226905399707948322222361073850771575314343899076825957497243632068081586948288019488092359238550235076380847965656637407749781012335469016003708119335650628940777044263502415357578433511655246645219745008792400786101759786801971102881021005635359691564607689101079849457653064927877467823495219329477594663041273315094411136542412688848842669853518801470994569912596554572789518753240708819740184919519711856495276709772846971504209087141620420873268123799040228545326717066583876571131290946294508314361731717555793694336493508187884105124958030398173029649970002321735712835993719407994140291532753816273575486963737229556289301685303350197972117085113461931353228874361062747261091767030995396117758790044939926535053833239802030582395614991250228726844248135719419445909532774138897867415359740619486224585862408091483651749276761792319845661361233763706600349259301294190700109357038535593616493580236038339743374528251358864700271093612248903629517828655367266599424695625126035604541445353468919951154575735927653168476538003841237490801544643404044086687957288175067026957873045563801542275916462137553926634929644365408396278005776276619428843067607212843794716703582379875931673324089360173835497670956792908069903943475591938987679731329697674438984960714252411119943878604719827906572652727479913018094076805304926974790015147139673384966999906206458593042478392500465016431064317040394297881145421453640067000470397767373111651445126695227429911667885328036528368298672077538764017027484031436572523155356996343154474709887667822718669949692401988721209489130899479762862435869772208640092087561073836632934780218455112589536746042361316070191026607315522343511315259233933039729173981768509791497572946649919625851468142490199947414442000966041197659111260257788355945743797860530095493447034892644223885581052860702791342486320074331481150848203623383232113528875041857470296255027511507856369880644508812218776463679311239967104050840795117528489080058619675767042071784526145320326296748350138852984489573011159720878072115427537093176524199197085825287965604154328342641649285727628991116330015902995740090890929997211144641668328715068390885457960969780230427427388548644596780407519269889668485128159845867850680796159917757620137483635851002534955036924628277884657905305276104999459434637317939548001778449140159976940301677555054580859607228264174590408798428718851250358386619348093935372451627920865797028572798694390319153394142919152355348353947462531930486982935169064457465095182026210412872477651134485838561245572973083087984258700185177350225067272369420407613762645929007278215911488357866019522562578921699951148043190514998954690209157866694307678743921019338052896887623615932538868777692314289741488089831972679115317880449923549611282708166544300661989216013940104255960047408691837066635802779986309938118731381099460034388512087595939127391957146595779877308550502781082318125061395631118769504053390292570629972816543161191246248088032282092672898701729053897591984252095209620627840234875947734746972166189223653361950545552441965586691307625088085226975105601462191324494254152651529254367372657214920461584913651342106930403745296372831640660133221405720582661406614017030643572039464843073704925996672288815229614656335806989157413060265613932666118320547481786392960849539757804666496636438070345414047596888170184868623652913552100693382495775882062076704676417451916811153365788894500995761408356718666900868760775305066939213774620837633056234106481048980291501564983126939752785117074309575774875741327036010237873652069959971534143658040904605998709213268505073074608742897200586718368160256429549410805482520102140820170935328152018407333843069446053854194297401177977984565344400175315886619020374663801198553600312027112931465752913706720340407310210955797462980313834179331138052735628812063227698450748839576525023341297121527391336050283216710820336706138128190115582891476054124440547370121497935015291935551153607939222489234868436741066475731968943271592709330591520503811323223398328601972298471050768006796911125306976241584439692108859576194293820416533854660203117598121909518835606302980700040610195954065602744569505673085243546720657572201904333694795315209678508043959200421194014291217287308715890401122737992770468673528016191926444193666143163129860279496775285852518465735199126480133172324754541800744737251559938876409089586567771585604095581724188615731935688880459026201125868259754426347503685181109154531563722904972345594678005701787458846675271697622475694842549503386179717091214306413652360303567001189547428090874945791646198646947941143020593844647315120329071793412100029499680027484888661351324382606511791702711358832391366270078949016596596115010055101265357838469333118371937710400958008113810291739299588202102178978096326072523559523792928103800396299339439817861199424197936383586659343801837845647026024217408670788603377430213663812391551940242621051573113866135568672687045765185514903888175214306045970720624555269350606170616612448202612018647523658414737848568067268793730353249587203699522809344716509053668007584588411068565655489125938669928114684746651966745392963098211503735259427300580706898112876333986795329616187216219521359409036909831355793215803732948423911460549430957704177402049178612811953779645447673533922221773290989806917944922114831526197109309437122627101677310791552481019154955763996100336238746487255466261368154869215967065611310098429007949966706556076442246838695765170135383804209819954155029965098387809250480748350427854140647435596356127422772470510466839504592725082194083730563127899545825544944919044873481344832816597210346430673094347474953776733806202953668754522549325388460893015279547927907442104296345749187605364775444588450695074243932678604967921168277026070561816721473576462396901891471702119686166983354260852946204091405795522219053769609310031932578859911923470958605464217636792684543674226386039403753472349301692829070547208340570734160570413562125001228748788228983482835712887188031734069155979299109457958845223946149450204861954601900089461424836194509657222562842465424789226820387206882955162823634461257106460417066163400666937412039825285219326797610505169603016719064802257917355820854503709585167248521946411976341419589587152963897219787636768974547093107191667401016015570988137873237533294867027408169130755411435846123407736145195776995855358561918208596460067260228467953822331092360672456589865520215923791512834617839353674154281035556415445110244557251667797464811145606166068284411996739019405081131223627121916078457620654619361879574005988092102029139812665993854798677851436651158020478428781851570066462998995940380130377179425898733954122726931482538127002465674494147238629656835844242823176911724138708107896650248866055273857802689873294517219014214433083873965931974629794350721972010998124484515488867876325884852636954452461359962408469046006974695574073574592127532135461575615994124494331013563605059241662498829263609954580943508773889847944018050893995869206498991601851452770709541270445453678333666139033344048007100778676204299168611146739712078740216752300859185675475590709288955963635811288923845209936663396777729614583680457806574225573226600357736157380478327852805079675500962714876000878852713374113498466182376996322140146553223050268219936273275823516828067832854136189027957833597349877960755206659349259461509567663104988520735572028100737977344370463338907941266440085476671172424008727971005731826423104031637202774528710941158394656536312358787088134340122473548120602788060185424227987649112235692027100480975878486888254537968303806061478685868740007071927725736527525761142501526905768738700857692059674461704828036048476866031842466814243086580857674788346134714533394174639929824109704964708564536432929984064361925501617460977784108652394005217713979769989571013522774034990816868765801922281839203420419351608285976135124589762718386502901161294268347014654610849681171012478382985056973909390301765799978773385552287798354062678744826880039060584157724060860253526363802275837833694849515178797467239678817317570126980579926403857783290793444152172216644912442375239054179881662095356987030784701279141591492184350382367695468703744177114539703719048297163414487298040944282499942218122750414578234804790695829288004206199100535412609917948128284419909021235861679899670319874395997676212116359772384790308727076650407762982091464286415310460267843976512416554319140898406256341479474805219513640705013177446860394019480308257413175212088347883070360013910172653866564423953010800999838746209486103569223490651452657052134124395377240162672091469558028327055696452652477186418282958781931069017345379931376687794725423093237349991408792695240481571871705959808636079448268101382082724812237899465471755030284693945763853895294257098774740646167956185377420757862843022689842409394475439756121149171166564578561158221750995944232186005323055526292718657691541945084790343704715766716156302997193619919667664546917582935896257629591189546567240864976005744984672049754382536133074273073345636257330675065575218218012294047126212484116520456211888558601434076134839562223504385357737323695952728729463324475338163583915376898698835927449938010706751372931548963689057328039823029567103488061349522922768390349819806013219324911609247490255892312168838669957704087102273867390742567358898585544123040891691868733975828113679503933200091012548752204798863300631634594461348388862514599134538639596430736078674006321181123726883172669199650974432778620762917551749724199772194655452828341521351605282185825639249598902949172272466154747078108522655797571208449247603582931952637920898080860275808184295937342111736762949792344570741969816459439830166732509052877919505405580334636134279323030985746413059650278599021868909543185774673461653601514968855226219858977984125122362710208643376932491042710960556580116853637389184295274005173597682639353678248860728553518047819715183039694780501817828285678229684563850229949950081476357292995199934959912200089824878099012847381840752019360914463104106447807684567038777878845221033963596843840676678537828502292066663756441705004463162694333008326184652233932089802219776844422405858351380965599978423667291545030789223150741972804569162724001845599010215366035024912621826809430936364786677691617161148040051332019887574428544366764787962902393084161286513366906719421419651259567438777944340267787306505325059407871166571884917382871872529627891473249538051833292791616795896156359566061529345817536414223432867201819507852240926427517403549849080907035597511304387530728381854623180173107837498483241688642299498922989672374072760738865165245719311715908222846342817280360839720558521562474187517990310174597863137023694546942242520770151106462022342365054678285008239534796558346172277388322230372386722244278274897680440901281365227514943029653402269073847470174577851164171537109374285253773537169335040934236012626722361719892695072350487424936001601669366867287605762373042322921539696540230036292513598442601404399087640868912677571350558417751536079803219117822356716773814106065294280978418264735536294865488357381572828025945093732474762678720473033375354840944851114693829711674768667048183745946156995727181824629315820092962427147608687178749402808290811600562245442729663021119413162374499513644552298540639337775584705161625734161788107319992087649484813265437202266768325208048402791462079294139365473709365753898290987342347145365671841936432205534020936381520970628430499558533429971450571295461307686878004922655807791964869491771578816753086071486663026402213415816707301495636715658127781648143287329683640945616051570009193251190839156841767414325268600279576589676923274077896362865273544752186606101882045243772738065241538801340265134974610477390584087803443386455570568452291250278806185715534268643841442653918507419879968377419199724142919190722168904355435695130454732270005896860558619513528254080764951517091564521804286941562390635231210343545780791710964465542678665809473292523213621849617588825428542594967261032552805082328607930524655123658868465890935567050238088843757162985573055337271265991829843927034983037724369817645919512203314637396282018258488624511827086088260969109856779867394196463809877305936666009414899809603717501693444668041603118248575494469594934470026963200967138230972635912627780568533314078166243924903573005070557211843635242637425777175445199421573965630349242694294107751451600796030149660257769508320031651481655715805995603605018930313640329308360479966417570313144246239690078165539741226198360062170743371354199728642028551116133079286543852500599392836226302060812317391907788991733262208202634837310465226616489950210395216019551600986921235445200405667129115499494024067706012574765953846729957686108827349778901550309212573959516619169321236580684938421457725615720661792286589167664876143225084987469073212101672054230954035074552109382758932099257496627246202482235972621097594636681732277679520813828500387197832629777748134606831663638638361191058335855892282508107942508829444643843810370725731627454461288633446652591613928983026821493191013407872798566321943525615454886957930486510690966359665678382966464244641012615590892234890684620472842818972387195613388405844293725409650511992853772273390906534310249845862635270611237418217581375490061240646693207966706603494330290539198688038977225508029440064260074634755816962811600482764223047621164238296197403019850691309350541087760374613293085062407735076996823701366197354030576254674812524441449518332137884757120692952541902374928455884898280015580289488437596522825943782798604437084959890216503812033388682289115391520543062001460444226143610458673747882607103910341214449570808310403983905422581196239568001123328300901787953229987281367082680427433802951603112380585824061640826404529220693855333816108266652098179574006299575503795714751880470069341746833367922857547561465174598969754569384635598359279393399252952801248722998850005355098818925595998452277968231378331901341267025034805634478773626116411378364960693268699931907526962080336875221691385457790118830343673374649181427474396051715787808174623773501294196926172375241412192726568724810233379193527168967964684314676415984995494509813274317825209708904463115677264633675102139395090526010225021451059006464783852493971366717084890781617602718126706140734656509312858976733622485630331373215747248349929480719019507065134439709414494278009387741631580046603916046529515052884972329691290226940662064596890339904128506622570020729431288291772418113095964656877802152870787287082610051912213310219546695078590554435934394086006444324671698691171602585900213916618536805593600016827679316631535110713103007074479882686366164424454389537908223398579085187754413075475519287851006445114526167717703685301619125856517950623049293698007834132523162167231383201545967649210460558019883914788075272911413476780874664294959267981575262430304563391149505392966555249240587149152592000538048101507942948736495368319432577939080913626263280945235579795113046575916938828305758606124869627115944148663920457673825709896435959805290787576246276536490373401128074376593127265736763548430084081467036269323515959717461622924978519038480665453901876596734349350191217768361684200142832772463513179320841545035169658599108224633015216864338210336959811174058564760924754010819012541384920496064675995495206526616220968729705522303642559634713583549516973346177385782443142467957604291354688211654386766648443910128580101348006880234188042132294789091911205183921173867646232083040285454001421232977653496399174904516808572418051178512607023062528438963833883211350335799376835799968903267299053468470890344561679347026448545565655044913693489325298961807596525392624021698424447952707693046752989316881124954273357509096561610240501810697977541558394379019912101539853553777580555167814998468146503829852503861513756504478946685577484773423876778823346459571276914176426676500963676806981441771964817774218039629730430158373960135221998283976791475346012591039351489150386870235593537919932133201780458925651508987444443014182371980972599612992274122365216202067534585668885450071718252002299035654582824655909084956995248502270771236772858157624590578423286794879507872855071116729526172865992845250059860078551767404397683420559803648217766419944691734596385738863702305727749376286333000710655257227216771834293609946189877758983306545508646614367452426102798231844987338790443371402121428299855237747733131095901001821470057022931185903103941936871501268595092355357546389727412141204680809777136073964017705822127325996400218618129561348795806532849247508911621115468837326523963115717875987153742411000366984495280795330049395258808925813601618435089916400774317258162363239287577064672352013456803938774844652438361592891157525285184636772979004157508360534809456161472165478082291610143076714598644807058396199462688229687786190574693534419894130984315695358347705588139757173980020755819356804278912395266767083764374143961510893335574761234434543606805181560227239619159543190975963898537649995361407518201754822928979828281399755690200450723028370416637061937255590516255348127718006279390646178902194743054330369471122772077543528678148508809714089490955625747007546940840084386241479455315938265011177104016952240573807468927286662910965367437290029082356424855709148180120531613555637151450479953519597757764682562349290000268725180078962518167911560936369171553950370586963988639666604676539124011439182998720540161250325741118308667813299358598511265330644354747516707575215047962078852726311177308446123762163180712211875910944931442970495638144755707856488884629649705026807486047234721223200264004039382702974623582583631077346460270023758849818359893032523648251980860143623799024344844123010294065723544815698437644661686169702253849348722434088986628541706390933714169246959842224982417661463073844833703949157683687970062082659722061792067519769122199020954811254885982704001866967918323473580421732476301708621607801399073428883604835970820497436992672119091920259888005845119773224454394627173597279813637299337248350418585899956075165883847457857151719781585600490130497801237183037949629694727857480310490302598525845434354393689988101502631097742270765870744898106697410770905843164827160262455830989252761832175661039459333386858761481826876175957782309481575138485432853894494695995474224893663854362403672800346773899177539093292746700494865668809296405311874183015993346632846163643392484148221116808062715522674991629543704684584852215724255838599955114156020894061643371229033662309204216509516534070720508104246920162128234410041882676945244400617869298471698754775937567084032210463407837285243419850431945014517502935122414555113834518814020783255533655746358036955061795083568590615767307344822698430048412025941134200500575160910415461802382115374388119300714134447498029031723926325884888520387332466509795556912038110942806073089659861569892941825542064097505728356187179886327296571077321016506632933923034934165867773292337583420697788897678581386958255991456178244553846138408997152054546923612925178281034871987927205057185930544518243549711995013829123140544587127125288147600206772812482868313430632403588310308704466286492147055736591890458081159695504007194195293721241872675901818956454278418575935893079024860855709709722785330720295634249834060423100550075861349406246906770134030871536527645707274984754397111271335657429161956534273350073573031685992024162272048557717987757910717502189398983410508160846571562336069808906639206207846260860368313873097190448635343497766396453573879150508253881786405682392612956991577318845696563745508449661510008629484839776063256796470502276182159387818235494964099976151964347187790729002705492960672217052940103409182511078888122661654552433717121576216937830025295036183133762154648757236352073126137635233022178260150990962816516804823815037268124148122790616256313505976852690244193978657873648960300573672933259596585282352334189267737343150353523056235313504967577249889530676555433031623933057791866878720764974136767574643271790066084572759411816464394015122624595432009634477534915117127766126226256327532784093201698790437622698380443600388985383775423234230124444538343470817914394054133316214790960939977736061972439738157969595541344384469093326745003325792426549500628698972901498901545017763804833719046171912411152519451274922082515032355841732604907750400873755585153344032184584939253603438471266918943100126662480229851266847551928032466675975815610053521932958852597340381907050817157700372453317408092828301162570336136369701872652633386775853859271222610598733813891910444560773764456186628802675023160056147728992944980090150045684438439356551238623318517694255047962446398750956339494154421203638645696926018572886956195854159204739291815608829099089904919224492340028849635825736809035283220736776388639984305325738879959479596100913121698827971915722808452365927660317186358612734334156430359011890100049897248177769360615270387186249117636310844668184507557443565864735208605249448125732270109199085172545380304323365013212528120351858115201059061035140283127017481031447934549800219641243430631460088302085087661709065650912700438308997906518500420550319011811709348521120859012204816403022171624582876318382728319025770182020475866495649083920156707362974070839501022294336998723413033655120315780681451240682841619983179703410316656262990808948553702945570334856806040803860795612536207786189216466613147239456857001209949575853858697611791616380122900994943904104844050064083035059629821662774216432395451675929839460434618952267645001025172138323797730032059117911522946543097199974398281496338025774315038865180451723503201449318562370028845923076041522167831927139214585269675886271916377756597824529260371352814234589668252982884033585701533150669443584865910580563799149453124631314603120478929772147615608564689393712562345349124875774591586368382449153267466802657615521743468092635271915055243546115948295781600049651867134342039873235128589722618884440567862661942111645181185384306659146582779801483294282991416901832489373144020803004109613536605716026830387143248374204224511603833975461148368666196481744852668225973367918091591539063105427833435827783874953678957699129707792098675208944017893563337694967148359470310747917253779353107251226774084311323036367398214202162577955188343826600698217815628553409560782140485371289321582516708254347625605814285823835632030890341443334456118537300211159048178125671801727923044072961239758340573725948043916883726784129827864507460947105662693376276745594507506225528756999856823938443918961297387624034114544416344402746600296688960482724406307967599875296039020684440250824414909741367822516971825119503494901741347950724436188114014786429593488664083976485491753176726120663330488071329893426286044710412914009630209354654380034865984461723197286468413287589117412769384176938306474571289451145866996954492138842361024285638243327608371311297055778120369437501953342371474398338132859890421189337400624901070376712594737559201277402164250266573431126097163163029952538037974708443129722574727714312812705588145108971433671099122268513362283175487409853184770989210328286483790386000282499102085013583200305847594704217883478344616416386663699339152367256311620326460447908159652699332469005472539629167799571749594454169010724633280971800921496616613059526126194567700428003859795144260541611218530823468129626908214420241101208347339355032927260775226094228985555492960147816996070250999404145770349299012943950158620527958753755677939178603911999196827493387058899922015260104306156181648715179697684399064134168469373241174692742947145314767636732160126064218658186953145064835363453685982054399165474764895637700355843191666527433197007316533416066460346375396660266641907616266608105156935460313972218920068965575774993751900986702088439237008574159746752293679599366312122640099350078855943338203701240029528171763755463466872431887546621540373371527123668553330892132867913737169414519267501084766627003850502260571864821112612221672436452890259942191591793031842644765204437581171268755008799133011486149302171796931804811805439158521418523736836245659305773304736470247899119397686349668530518545216138926908423028238251467591191372670649691194561439637460866508257823354838177272383218747336350620268263732671599031119039179014176654801660384183704042985215746172670705532030612285583451044067721190828825498185703347346579659480021808560957448825788097588294679270808409782780313487677596448144133070197109849612066272015022786775314087710335273164917922594135674655352625374025598342347802407563666109168960372150006864651714213736515156230948636140043502148448422423381015805845687751779043737016856938613009261760776974585555500595233825296170949925332579940142769815440536437348989142279498909761724817107563031161951581579509131687631603479165833011799511872848411910980136585552005844631080126128813043011523028416172055657297541514956511539758707906729199927783132319777030919577497772779981364302691630381392370403138745688403407053610549974015921245803480486458664872778937643951682250130737536726733883663522032308927702078062323058010450925233287779019038922689954419484026807069546021661179635418627176439573017720040099577835409947099372128380959450849201065098407837659987839166694131068470820988486609699927248927780506603997185243460040103133321713753507470779147911985919547699177943706361437445465105878328783942197925495405586474750063089304903952683660035115996629652957501368858706291989542819783748676880242767458137103728176890257216307053712446745922795235990110190710955756316735120416542163358133164736886790825031549382144151083211662509256291647893447809946466924554284881459559127122869080789001479247786986586883898560584770357243081006168248851453457617837336091698253263695954026978831658021106395721123164682687885898999743603317508260528873398187935501119065034310057970043211986505325878063060277731446887166974573165831874854822495938002726213623020270721835075186945735518179839328207332722302497204493184151099214920896364395540384846434870568123098600423075117886288043279621178454073950326380399941433858499905575400367581954800721723762406545242206226827027073748519099666530124677953152640689196453026431222005094373449814946989366668979414154218815276163053600152362359311168507966875251253409835658052193226481376606967482336299184629687815912550312661758409040988083095584983397213104384253016628247742586126608266361211836666903456927054363584885594906825235065071479429216833750083448687370593713118866371509576349565068342854609444734350116555616169538984667633159333240101866039978576992242357779302452740384359503074210858581961424690554344126780277093231233931111543318363732712259659769649090126707990477499311390332954761989674689324101031094079675604027772113764931933768082822183944514048684403866257089920279951706604744632999811372614151488317141870130791710342984327787529470643264254572874930100398195417489423330296815813296901323745724024629288764503705025689132292701865865979716017547955326583877405520277627862920515353200575567314734519364061024548324780662915849108367040097222779774452362271358770680878034412663299564809384980577041485528663404896964141353743682841546977028738242232335395725451043772547619094440690290991050835117799763291761980434206858021928258636644091005565063761414315717781477094963408204063668379602542983533029973048761987528854891691961801922723772713448048039086150415632606539805305544175467262707167246300274080311483470549614875978738946241840565088527360227825079101612910920107224605233848720459212134286496464348501110402433798913294151026993290540686950709914965830353705599047885759246339386044514895128801922009945269404090378909831389613918524863096266816565136986061617549631984216677844508057388129304857410456335872193598834130713415342423496745612624182113236365162366230024496098409942653830830339978732498730901780787358868294143308709450496760037675734678951827219468201032294442421492434731427276580478707357498862463315569257122066668060068295390618388211420311045594806374773104922989814272625753036670954770281133945166484370125759147552539047845109534827683404781139061317267793672525108052335968903824393457468694643665853763038565384594564872344599830521065387901509438852642119094564667741931301047147967180949965782131215068499925255344405720636587396128220024170964221490205353820224596473847156301306913987787947911163933097887999167901059660996392517654402887442959058168721250356894034809379002137508789491495235371665622765936160576310845315288382946998687929964137924079148752193681880523842625740071115935485910126794716517036649053190541499969658055937372567899080057175678398782984825834120046125344358032569385081967343439207243793084805942218446889343007963237264412817367382705525476287508756479506006077438564491425335714548423939585663465549804981433514468582580156066294649226103534038992330736344121482353654813578312942992995627372227821856465042805815922960241750749097456149814646732904435426483608200539343266585433581317470371563443857686141432040881674737248238712290442516550913017165592677551574017093457578470792843139211586987513960972633867929287612688415567785407064724038120808123743386569227129863392371610783157897292495051868990588926558760561060093552119589578217090766973242130920124635455067213689310801761817964870207029050374845843569227738947472327256193479044031339314393165708006154695531111868437933368644713943477506357821482328280331057207417586655570186987127430915761689861878372495745386804867077750814995943336719304065447782210688325618760166981541472911569408537851951138248997608971286947624496605111466408206595937264337938582822141957868309471902738946084768856264994951426093341247882484550826973814195762098611328250196201851526429316816244571306653208172214944867982310225095323451040480450632273095346490925498117523094150807601251148795229640966259722340666891304791773234501363539920730627571685934405955169869380154696923882847234935191231853823001615227292270408298219220660858004174534473577025241057492150674727222091445754703954944159276034549602303815820641237318809794142463815449126156702552197024787452329844728931245359799467245868763702221676349195176425711116685721320389989373366333273552714047173824206930630057335167667996825819224845643926880732919293891754849491827113169470352568869081265238314876225120145006662920606183777442743131468837031466171528033685602206755133493856113837826597396029953233930027227042895913475214495209453882102314675191374602098551823712568574334917015367764077217472424115608382197733980076132320695025551145876410996861462139788211875040633656071658155253180116934752745632595078564965554657560392188274124440450461565246606556593614748896847830387224944547291247508702932092276443187606311869818843545221695788902325912180766529065452752351259844652721036521282878868646093694280037693522234700498071516231784692316121880205131331178300227426783223262142699487350817048215433354221935339830406909599140050157595433646577849800382443900901917707598006124913908449251477868401422508630340412958379410278882866156708697895842767505913197928552503542364556149441779922085086603235859939722443218920176556818029623518338517048518531877050259618882306142588687941685943531143547959905920657765199750853728455086678846223122639865893673483393498240795483894240107505187881270253680829707842989952790189452999103878184726056401382329629800486715217265982621679704771103083368385887370936207027628090430731856903768076934981536537588959207344759312681986410062064027500003166180608908663757825195433216721878905129116523757886002075025252992766555873140716652861878876556033003484316677442578603552277172623717521695365057965821028882604293357165238895174780160746144307631986762008814286787594085538002493944666294320447653126671893786906906438140978654475928129615388181199667611714622519088055375791262113325806566108023610050877409209045887665335170396120696802484379201811436748189901978443489992007694629912358824205477962534539388467312579260458615705844280236610542046777637853424731821531836531708909548493677627590528647072651626159940963510444579490098093064342229647410701997285437993930410169770950451684121039762337774922261675497286662603728744694795858685539662144589947890194117701185167161938599132299142395210391173196054949013154961457147800763924140000017695107144811396206666370274640216183541104970155673410095976149819248401887358914155263450984434021759384620070593358368477501204205583644157135174026905341931027214878682615544158543419100809699168340518614794978140752006556881660768205217767817065883302401159082702284346407809104605871746410070663904817162339845244958796641556525605155482455628200200355619844304515616970415710242804252516779647214228743073837206286753660028194837036394586949778286494004296000769705281712059814717739617786893443306932670292118705294595395836040483291660839031221044457093635370659393580317982419891933522551335943541533947109097571231895303916090285985850458833588326529393684162529650988673366608831690592564565109044324908807855842268399775942960647337166693092548605956042760219118942709860909491567212238581943644486720020198000476226359177306030152916908753662451478985901024218677403383970361023344936955624617193823184703682106740468606758391170084536002821042149023466822237361692172477074246206778684475035633964628459182256840372582029581521517770723742936773313177426402417393767130115220360116840130224801055487351826840259756228354307896472979040868257702121355058060958681181837575993043589702522050665532922772219166396794228269184757923717332270858680385284246879583446809150517205430078667036558834845503606927461727107812513233703536558034535351554898685361330430459628410143570650612121200703120914093215466839655178363366494236970348254716871706084104706550826614603215956915009635852434469780597049411236255850551311218232249050324231510396123930801202089763928702101875078409061953445129150461414330901441496077506718629277642751606859769271664859501687173080261522586673887824974868432084666049720073027903174910828118830121232610243329524549699824254765782553507179836185191500041496871981623482744550707145475109400099456668847714677915032249762489106137792972462771544664576232899322088264338198416536123517652000289267878328684083562188815198079490184666494854720813212485545450347421343153851423655959204613068806756814217894370338424190806512560230262566123359469178681967396893621209642451058175888168816535605025717473697438951408726489602771107940341806000988653917036252480801780078772920281502354997229729532336728412937117983017789191092269160548332721154530793725406712631977374718725908130743739776331800428305668993772702815103549113779682755771306152937079362039158976856890592858504374724181342808073383706061842141988391370019095210067696989065512023048835911579582373089151832212968512577994491897892596076107891936310061169680729199318719324764679386211263310117431211400223914514306095768738951705924640307094109744728785172727854298268330108964736650290683191400792468765534743080461550530572750507627900641843604875386431483843743024975432635586325903015455635131542375273285568143011795416595437841853759256498479725555152448528054702944618318981677729133560540554843533446643612814622963737453056970178602356382503703706643408242735224113124336070231125191032379694267506103538972269223682707219240960878850710949052191436248920670199764798957191391975490046310596947698310822149327985004483337259272636240821012666487188560021598870447509221481865391178512642761690569144850247498030436627476923460968485522087893466932658167179226193061660030713495334540437039827010559757516553778154268077500249291231207987224945584189676622742136093687536600470246342701845365061338843909470032975808596819723148809491361246377248234502850608617621680339158099482400627516775129255070892769430881647641119670254352054980518972957385147760596021333324790918610548763573229048953388512786558199075778112192971027274115630650455988617884949055963639982805177040715017967207725374800936848711258753267672200593226397562837134647313929152551319457295282339809263881335585319731799557298604832573572642135913549270374607136846090157420638410035214895308640046901492072311711250405540510453460182101046025111263619542063186773519811702525268236717718320839205767307857008965810105705789345218647650949168406847158460503124462071803706018325833858799477043650801293932580305897094726101589958548476310672552886782836660374170572206038970921532579566093939338922148536036710689651918344916653142010354064128766460601320603830782383161803794014271235719746186654887158773551352298727559698541057485135786841123458747533769383062203703415613250371320941150522706441836117115119424455323701103178356618131440486932104718432115401825002969896560641318333205718957493376344337819715349438362620039851202455222984632592928081982224101095897691519475208648440905051953155329579328782479659365415258908159779486345552100313025369121488928132223082554837698750118034271422704509610058445983281260400193373476016966168723560089549610017634623275375006621903418607818741812377216131712867530774902853742674080724293517672635655085468586467790685942064896258707872839775164802906882548952054690333506563103831462360362642472358039848221270004731674642896213364218252799956602929718125910332509140676793880640871511757065028432407592667623297393382681872091672860063841486097446325835422606184491734609490695115248713666680587818394601847771225283736561961389498791065537985505664150691713407262205862141557646477823668082113848051683719503231572182067193225907517238668688302546094846908431990022482858921623552231551259213012798750245124358480911015079228846752477001393441096709692003191346047590658313864464269031976800897142451485778128604026772808812009636953222282942705607942977823279508605291528707333252175660763742545922354156318153860699029502199419625947998001122209319898754535986172383324404720359243392811802904992761331922588115025531803187734161450450074909618104946426899094622667359145591149052661342441168175587041822662617828396124945647104287576894664930149938018089880304931567317440444749819758819109330056249139261006694222376660819550923542580198286676136991246257260899339838546780468985712185636585103413564532199070354069100999489202163915208593044134789968410285492781738949302645457771844132910570663534319442628680342768934773851576900209743073536598900782241215827614918152130042887871282654828378383465686219622246237187345419081488631811289053092802220092647782905915136886925243831522187991930591898078169707775562907524403065844048795914872079361729069760571932749564047167644730363907598585079065107965831982655819465677903265028258089566824190395616507309048045334532188353004513761424322924813831603862823067292076104030466783114580737761501483404582107977304567039051529148601813944040602365099731838823055350683873027099574554247266270402712569442223576606606087923736971747163633473023078969515419333882837260176043507226082406216472823088005798466576320686439567899242688305658383834049617802517451720005097433941218705648160719956272843251597284991291507008106438425255967842870359566333532714925262014537695163716341516612793990546858661820616722914264746806156154586748782480107562528938362586303271992535398471407539808243373831781490987224839223719329584671206432969729051261815980317320958008752471596761344219492856035081723205087719566876782836066268770159337344137824408153691070761927696955026331951013389562633288752534814358012588980928485413056181454479449362565553168278351986034259007227803429631551226849903137489114567690744637699570503139275598607992409041587448985750446210817863768386904957795193197769114424278841615191757665095545312723553032630329838109784255295168877985910614639631076523793460879364407968127790802460959216035523352602712325764086259293817605652214519541325980482461581175921336199521256486010642392557404394184511121277806167146449096614533229558362349338073776305803126673683467522524325706616708089917994143088862894113603544447555328279262065664901985926295878864523304765730314188217214720433420067095041452181969078569383700381659856805845482827717520453510475137592785281857524034862339269177009174996242983515045382188471671328859310329439554169498219979643311607512482764043223431654085593677266004056573490010767206725812030106748884499858492908972497492314399275185875511636700997982404261374989520395078139917860777986253862022877450537654836035218914078553822938011133951793761503706328506221065167452193711890729187526945419160449374285168864642455034346211705696544976431938126548004832968732255107102516958561373386419585599401654443277324730827756189204273217225487446649985057256023628116770065555761470191930728340961900284954698909848163410022723188609651100100917689296961967751281284003558339186070336370209531996315944430699360357833615192224546558042635825349254160721043406021328896350135041848268879243102289378148891169446640930675964428134387820457911256196117024431434460173475919483204696152669078323859516277529572972409042957994745892689198420561480756142974889966557255071187422613715646062038740369606687185119130243312098029382953009523658923788306162564694729802878199317290168023372384886282281089263069109374780324926770663415011499122417537244099308916443710749486496895459315689896513241787455822495438761535671643991415242773085398753188059312825298122689934481914601258571272455255168049217619752154916019974535176421217863883270907755535106611171272246120068697276410322173460173927019281688996452917879798718414710990470568531803956774788396816231635963917046696505765470537078485551045309985713710660298553962140220476823379904381094842471847927166994625165272951964779794987918174383467172068785394574405703098657119267598606482199222105919896364421758747547146119309431743307029628507437479452813337609522191929880051424944799008274605494191887127516169091034747406820906420271716860425167780233828646758712170636744223926547205817719156417286248738066835407397815876432074452297825485250440474141955439947347674096528505173691085805415783683875368575986534625859976872799360164154736629268644122766649696598582533116927400069656245322929717588821388942222218862588114988861493649259868539051523102081675997771907212236944871879092975928899586557441400927666826209820738620468804619008914257844267609845063477007604284865523285908205322197185941531797843048756751139193696378182885346824142897295230261063427288406364835422407922939530075908666998954811460424628988953880457445711928531791107296412024291797062759679620360859075515910115752247863954955885570840013938886216583834451773244448475202140227838951732309444142098060166382377318875346863974311671040862990718362056983736699363200367890139330066820344530082981209781012048044942461115597470055284310995456257960454157686674894313462532009922313589372873810028588154192833593722592328306590092978280743086108362404549166005299340576664701708239910814836636980714688823104630007711772655238412298773560568839270477122646605556092576049920275091687468886079442848907187888268201921987561272968739743692772468750466365330146835135261473812322774730384492856087840492452170654257947489842004259522273988188806605040960276962485265798087000074878239563621690066357987161843988599418097031409893343021046720777586721112233624310634063986933037923171968642688973599997169885572638758866144142978726405957978000494061752402489415360070022253522351194188904542474602413808046773699028616348499240729032439297434713305199900987381286031328549700322734785301189184192571470647833078760408894437540311476196867117618697038611554596277201891749578127709476286771274290703143099546676664483092189351568101698737681166773005598223328280009745826964907755721422060598247551137651376501953612005519254587878088511928186526962040936237280016805602267326207428686751727685968801492009532303376099250486666199501899426624640496881377308434075398076866907780021328031544013830905286431875620092123464758757806609664293329598100618248792978742846561964331700674771742705124472501553576396808517388272401316847475278701361181263352107973369599017211880998185458048622577228143526648250156890757483384881844413695782645935810551636849387735030924209844156747119672852751302997044934210156378098886045418748193389939167745156073060085913445247136034779983636090078168617005011124984614594086435191318697853134577669966369700940949387749739091963854223430565660601530877372414876861300067124631871360182785608155670711211582296604399278506143644392078323428702029057022192185956187201263243843044148354714411490305944844556442878757191752375061856460059185967874570341057548164698420698456890609391145859032719873279196283343782887027455702255417898433147278186283289383338326441467431935920350324094183008596709468750911174841371875533352578162180678353737952565521565691478824298238204277544505410169756908908058394162982434868147973392559340341525880593250702954724400250009543322876292044601852177765301076393807087359189174013132588782024886841763816900562245010491422271802946344629536132549644333450168036483312112084465819374137974157482820530339231753672982965018669392836674120071378523839859312894552468742037085836619497300395135301629475914976663025713388601132484825825551053403265807801688905161364786920151239159207772920488830566678628147985440031748182475365425003639868025310672934633492731274439665454592545931824642044017070713425882103310154960579478647685459443687374517562419570497971906537509028416902030215658855333753730175510214755043873759078963639608912157813846888256647742700865976609550566648193312244436725115199110302557427833164625607405818641096078449083562207032815161742554553033123433270738522702871511023693297900332965975349464336130884344384453416214263607469067848059012362949106619227400501437263002738681258577244784474247411943727153836513533672565711527336057582413928046354590672305678459739742501742112815233088998890820338379642162838362827366249956414243078992329353089243357010244485006806241278453376569158772315101576900219033581031542981411011861808573981410178981842317080065559978723133110142804629837695559266798971540320498800832559843677396598347536523385889460561589772506457487066563972038099938138031465304689409612418756589521839626479009274498173397845717043133738925231336983385750367579717503394676102095668645076413648214487401978433641917204697128140508470123822289085560548226544081235792873000689806398015705754941280219891349374031229386648104660213409472970692656656371971823703472557455757245101881073405614986567620156379205590861465499106935213580735003525146381442899546056000887450767716544743525967760435568811379862637861134252537709710391424297466877456451159570227573229535900254314777428573299630665167919012867306017459024499481014611574437471575847682360195201042802316865474470538128072084942935516143972284532793783165790602911783747465328014405959835231972063297639083896233263495723337853513988194549460127763847724910241964615319403586518884452349667244245592427084354893412389339687925531624921054668134989825486358788605463617328689369013106134633326217653642919061040616717404233147903238199855094380489426971159019778356986427452778182365027426680216731669520983522277093716176949373590865810910401046643133944999970263021070925310121449950811598519857946573936909674534939363748193027878280142651797984559579877401425877112848588937035760627057856743405174291947750161973921646176793118820622448217562771390077813867922628234199358425234428223555801668241147387943441190610405613552929979207756703646785522125567334670180829543639115878771749887306566786753947272702697533318239850991707138896799930774805463804461182166908945883355473477501983458607674019951143609329460120415323314336487545484411420758320921581807036957318894679720306860274414954690406370811515946711172126283698853535940516290233901117479124874335766021555291268194432535740154431080322771423251810794763121282748685102855298624559234357249097384496353026415188950060005055489779177136046944511888749749386228510619076344720592633210177807271809437094455837583008925346054549675000437842803393390874098322212200204371540298900976381195434082495208971680834133036334134981518685778134943382307098833629488162679728314724191385983650576117791534559069664522350024026358698588457668689930588951316419437209995049627564989393823894997994878691059756549782030082954240358243568513353846930319092005959631030722758437029433881292136487944251811549710652180507293774768838098474500130719136596855925962893403329116025019637375521445473931522741991515197506048589514431971725979437141920512023276981264949163904323940213935748426927378409066319927123420610233500994217347631499460527195065855226817314448426541720328694863328938654716205811482937024758929730144633155027320787563008946649225527319865814593086419395011854941544681264965768400289208722877430241251254108004781356276907652256529463051786896404444613939982843258739739599286892782763644789160037624021690905623579209533097559053106224115618356005705898769150772005162757122493566933838000513830840680865760491017969597294188498048613228118894808271208262215538160912271569880778828014397330455024367181410886752054771007189669713341552376695263162240041657918299291739941537562331502089590780245040633363872965373400737915060206042799216886521067971332282456728380068729299186946677787625655419150952447897097044145752917559119351310154378450309053048679894512814646674717223956196895142579228850845473712845748970476403468210602420461286904249325668839902394052279376425793629601807360604904874980558590790621837731386424054991255700088407093873815462427922024826474012532314601999629074489846973765618571437100842714855458464136107572445576618470106344809463544069331223685878270741457495047576899777918983255132371822025727799904748770303196178737047991992965335192463663733980611136293715307055783130801843259545711955139841844936268439818886517621711840535136132099094132166982301082739762201716329646655644936173950511764986748643165603110413509081893690907329731257580204799261820963982530157152794591791701852250094522961453711027867972541300189679162805137269531167823892166747071870034645775539884926478083111649333147057935084065395139928943835204721359679081400596359263480512754934893506504928237890592560495648613557921474733323416605643730862055968321038736643221071378248924792844433845919594338536151098911802982941199161278845578193416250040888816945383365330979797776794245513476993061245226210119431620877705841768766130590198175239860052945888779593473497757585987601239610882757923562163050327785270904526439675191161723917711583952029365495888325951412694976467600240008362445090101501086328978941101459676663613969920813604389388367183898163287458911433465798774334922599855415268812411171200437022457860768376418623177512373895963483242671543632209825272647413349233052149617095822310272614522586202046379554195560309018068896687448895862658905297593676736323304046498491221319662878546671889401978895603750140954368895987280956084572398602512300124904323393347273563754484615779005096145534350009332123925903888358567164792217729607262293822734401871064301165902645872260289665442172520856150830712339867529086298882322364740457454733963323343965873086786053105814259244223738358238272716610358635452179470669218611073647597559505284424561974893804936510518440873058062381913220368340083136797450380350678215123168061739677102738018855765791411069793512654788875817891783382014402892764991675893243442765107448239853137528057818101019527462750505879815737409935902819787258478144754339561838577735999288283860974249474149661787104415156882916420876832043568571571390251590736589325565458022623441106202249515207719482262040762448097781032397381139067076624775858687137896934586775402072414003546779703873460362002191109997878188528134327479335695110445111130980000882492577072984914246063024647572051758103726315443312296735212502986607217422928544127308046900297994238152443869173048128542564211482740554720604627433146938555070279173583708221960331001740131223624352973081046762758010514664587626442371138702216830038651888361945249924041571475035939471888711984979593214557822748317564061584356065240952063020546534816310580703619161809529024020735463448119815651530901782787457722383418573449535436166935330653199255161122098293870591989364689149334834478540012220182896553524666733289411233973494643714611048694617977799984100919687837721335678348231357314976546445855404327921959160485542795392836508474046658059100329219999145764785707429544402277275777171963071800367426783950589016526766058628756962998693889468763082346748516417459887087177191095658627044819522088786659930268887256034973317786646277745721974608415459927558515591320152091617706342273552410207993862763754974437691026537487205763683566358019294864441450740370976691557883628228650051145497550325316911188623362821769906135970378529023170104737093471563665237763491048744449714398739797905309157980049847504608273338127274154639613956454111150656721251306318547124527361614212517324101382211121853485335200059753378918539203596831700529792470641060942693024287492260439914278898752676167255286523090629851206773956583008380306697035123073402645076273518273993011886986133644560371301893382869126810420212865985790895549200353498452763840769930910709153286567394589253817626807359867861721633269125337577522342828715073531975099351777041344404810407982103277760640352572368357153977078875169637930049013909752792704932989644092572224334832171889814809378941256333645640262495091875568137481042040772808313933471179922041775637610886415849984184475875808523396127405418141277110095670305662672501094062961771031890403908076522753797150696242176784144761013484001205280573750351301410117459989642912005461766967243981157516350512386886154225753387898409313341557358758543565141512971138291272190293845858851374819396491294453117360452758088372154079691079491523573381828423179264431856174886924404972507062070285529653887563390617901051936624594169337804321426644564625043566692542984150069075102789672627280961334657553438148081906026909209396262217346303525580472797583541643046342565573411532084562519203438695984810959421807363319997847695815638913774562425073306342658724669230352503812400893377372985340534819220126979622965100513624961982150377568725048337162004541338375747610161734069932250174263290386453419011129539727854783704898376965598106202192327203964794326204631317290318906233932323864051160596050582181174380685927565168332127515606991911286733616568159903353710526097093967868914552011473335034120414774813645803163007582951165182873978127687450640021479233414913257079112799315643492139808984932097787049993398180553953490965847286153871158428723809256286098277440355995740711296133473911701436067574717922868933905138103746714211245955202923721941429825264145351157222532291204693658218826469365583883964195435839627634161452068419980552266306298926993112249825966352327111377108380559813946713678638874865048543777462037030593560308553505828068260536721752552552499319809488517096729190813961252962003491508545912727410006276780202854834886765559093440903664865436327072430011082130517424806368147179539124580936763010494263102648393394695668710168928386060502988769699184311208714730410137874691692560386496983429504638885023515301362654746908269178005206482211361801846585419923163431996151142294505225372664076069251130188100007902612036593225809380235067847902095489337260727400549449688077183996322641053815517668530885739348275048569181003995882113886580915195784392211179358576706233614657119501626422904962011836979736324403319245847120950333088960528631235894957566218786314939454520699290177028638686285082258078381757696056655747149351144331692021675783574071432134926365925238804242421641583234791556708431519773582551835747218247253856895112501651303917118338756501178986579729940623755713105783870634373714459642477726029205283577026306675413780892289535019304697668434333384598801575614829681860939551780400705479913945344873638151667529044728102301595774903405835712647642814057225450753582083072691615950536315983828762939164330452059184248567266739665788559713024924470786409193144064409002638158306537965440207856722356863643054324945207165503775361630679780800409958647757432888233150350208670674973810157580714950208693378269036867992030574340506857428018345784942731043759737089495409840907197438918348906559568112939501373139215423793844429155802548541647225918240917684023595519793923545734543873361046939210922792506804446407341252250382633552808597636581538567419550947105593701771010921501812489626112894880998004826747605799168391050677474232804781468019300375355513057791145481282228578192237274644930063768659425327964332376473890775781700300686956880541266734589133185348136029054391661753986595015952980763990478887978068006956839285989854852816254902299999847820210070745904851616968813301091342288260252399923639538326819109550760348094359964460496809589511491506641902046465949749560805880737088353897211653905626380810594226327085602312367930629815037604410377476363641171612251642156246065613255073320079576320795749365323514631472301235490866673275694461497059587088782960580730579650194034573534106243008358547455823728956238143879811917351383836215782256450292289392545864177309662591709124635706814287720705692605108225360243477239398211033478159780838828685336416565880850388130696209196540023039822614927270824053726489798604381774032560254593811428083391183411949430244177952398659262670548209537099833803093815892062447409990489671895720176425291811930281660653319231116246048238489281117430266600825061015904888854140816693712438720198670090606802503449939671361087675545389402586901588218511692054381397057713673108381050931455656966565463226409998202583869342591839702251585564362140504249128534852364900228106146389725047991384838871994067375293686430953990255183880221317225004834711343871643250994551044930769615780879233553108935845814999969414539676363588697564307099631479683686256695165901116423422011977572390380111899330257930341674026605748640064210151153357511385111727779260306227208507740791519343974907706829671945296680066225496364521087266073987703093490506703019815749562674703702126431652114640031914429626365245699419604735956735796544917191339627924159416568540762127246945766371833368999965760397294103624694247621254127493806445368028436890277942184973279302593305735919163807944880258978285596795943794839719837438835635053839513881850109264187133572626092297801337579643197274374771771562107036970857633748720742318606349921032234576231448353052731527127887460797326507276738952109422559314143152734796802387352636963645569047570008778881758546777807722913928936382013181117744507580560405738737812353834885953372616789401973667609925944072942494374350238630533938605885632982031190197630412461980370017238614924577871808031057748887921357126789752027551057867503830073265348720154180515786719462821427645969239891027778421314399542487684841815708093750570872796170863325807252582427830018982525860554984418875353013765554043401403068768810997994634092492764674053345884982454920770592656656582605950919753855130743642492517591539737029559222447526925447422811755267397068613345857047850045931330387830575280366953300099728260609605662347165614251847454688970938927820284852849754660758759596311422902083848894006126817776179740164457172625115903306173481620355944183110629015142316282659365831232803038077020446151132742011782868880157501491972478989919060403100757265172049783804266892954152486043189612254553171983388767244818516483201766505968718199804582124798658353986163478365159163006683152528129876681634091693352922413639327116465939402811618964948564151283879091977409928710020775001211852286544520109611782478974020405065384510218227104062041111807943065914335035476573678038316491763164037949576132407531504914836670513194157499076738547275104126554106112464626144280766674300066193870124167967337055065814421134775909627109049479444610319186888775311909455677329693833776149593668846664255234579312276115103538595042473578263189674977851059245864015727199103909990340214941965146214354889636431583857445064556617015903793630915427489000787669351849838510891363621654593085375263336425441253935482307387583252470102277327972602984317934654642529639759728025329615311468513250944079681238054616464044488777749486735082472792358832013763873909938787248466044411932300136422062842228443825260348017023978700189262014401168182468881897960627300568891670808910293648668585031986315653773802683478702074485803031306222411682335998334334361690197110658795522851108175132116566993953073130976516827729377811991538523858529701871877612738955831219994554612025410915632395209204362874938320021234589884397242736206167309432698864134471308213442872696779418805122330352649894113980227334987267432074304615617448615022890667184697624541450993843347225629815411977087901478839079438826045403366607236137884382467766505833025703776205974436479364531733152606422919450428092996522928625535495375146876805016797484808283528585836168651949262494253477434673586068062603662798934897773047075723989268324725389517614013973774403074777307038144440395607551615547228572356687294350143066327349811686669098369565805183094432613504130680061645895905359313891041194308594461690941509781909165993919686124653523333483115228874102126032041905294864853033806912101032655366495236213409750883801817179790427111620002239852694902077438144030246432735286810207054080938683470486419795550370212660207373140299976135373678132245376665767997648471687165324302522855923441204685206465818255723321781730028030088213623903037092726952210907119956892590311401742057960078162354723375899033178045081463694891030126060435888027747027715995101753047946405114596710946234828868386368588049829688715709413110915965647586945081535716660681587009506082246911165427697873779446596231869218382986197092548487804582362101494711184886098812143385743893647492856842001608352748967986674973793478269427578482511120723231241530412729198942968802408437203161770239574273573822974192608801817241714993133341131056918763811343840900128571256395166764636961411687089739317681487303714854972978472264759593978562479452344830810134169497840382374087250992425737541953372914349326585205089328014742990159058035854648835910002555506890301244742283296208940325222691322910494528195591640085997462472785791634023123944340656343369125765211381599181804248733910579354560098191801338872014920940212997411013941525893143882066349237372827311061587924768766698924568106678599198798572480067240252046905767056739218674877139993519274367220276048707469443057871442782112187832464064739610757858645449151319661782864402320966350576631374682279452709637409027336764946380999464188024252056538659607273235512903975181566482080348881181212226580329005234835579821280494681982935777979371225112661391086354294150844797652194039853862597306197464186632353648826781025701394243665567125350305004464963031418057304631806846896286407892447472044134947030104385590304672651392414339561670312645166186679946746664476982047094823348071106358158268427542156540937884343383995885185701585663850273987047936945018466534903843985461727823123967464995320019656699291995442562819288359774690423474294441662185383341708483243355143025696311215543698823610856023316722283279828981991783743309603352334330384200541753242890348428414589013015225647925930914097218023438781608051108399015277420902758422719871893976717780661940703404832379333965064756713446136644813219800046812509691995926947030995213372850836650045474966403799238751891710400781154214023812284925927776010195258325926525758510138936651725333239572981773334908265310717334571441223776846743344879375998268096136680405143643292896049389184863473605421997433369457959849538092666111258705548847707759540240204143195469292986592879719638772257462071699295413197906547877681270224456899221048946556519458109675545576913262575142314525031586890971725897264877461499333307869706199244250243297065796807700524777018383830022449983141271617070095792433396100974485770116607411411513073678450746636280426281943871393143233419535468472322568047656212495667128928431154415201765217910832678214716665142928007814537711554189974825037635229531275173927175452458365776353483287451100809416775261088390630479390318836914712802732917205850315496139883247429119148657184626370033806774662320306853014023625424254908778806807352761181480627829921450433535301987884587344593627410538658784997720622843543507656205016080181098079138759387609947334353869039790653842890728929654349951682768137246865595829974915711482617590874090140706044453763967646194470317919665353354137617092896106726823009642577549683854733340904123587731907246425627497007227436446274281651256315031217085220684201883568107445626233035437707330458770824184163099703914057788254288267765738561334766870339396220259418557603023852921239885638499695953438656056141287723511270671247725944291810917791292676431494010313813772896508151928292445790594304089766798807485235451838490496390098846194775078455692432107396044435943828274275299237036625970623421339881760852170995581580410701052460194229896891669356594335922221183976084947792863447438590390580586986628065561359002926844267618178342995126512926543773020266504600671946373756600542451493979146893233963391520296921008687599191983896247505119274912545215084502611096895929336034835036832447756915881379332191188203269976155529859081395918462981514547759466599841028190505576112123754028773128645347697953801337697614393274699610775493666200661028138216627209608691653114285180772694118077230762439985336916785779081189813715744251653554867453939119460405915587594617152384913021170244622405024764503048014487534943417322795940364555594339363499369281920828676027224443788926170675438577286912134066106763917730794532922322058304058816575586530065247048701578876090526441794320570861842043766946951376600766977357815774614721804263924271874223679750416164383868572096893306123797138642101004754159470736169725813812660578927807234346055206662929427128122760900221958826217951030315600680912175096357274072232656314390088592007962505027292785720424022629959207652067256162066473222879181804454914287778834323307111722070842804616328872701191303131639289075429724619177060379352093344560031536648439992446274536702796654731005393870107574434620523731936952367244093853366937362207502962649545952113482292126639061518274753514425361927285022471253157003986357740622910427851808870481814261382061396030677121242397005942877897228101006477715339683849765754521267056472411470785461098256541666484491070115584972108433882084162993288910133767512596230922314011716815264042989197660311441552951410124722391155475763308727595118295114240191117793647276452175562722502302065173338691275684180380302461911310218191749784127447760265907658692315887932827205834232279046384761595268109892769985468961900320148347365281923145104910499766534825849309151813133452740833691098619444559369819119797857628984547341894355143867008716399334797822893459745330637574012546488430290636338851003620012971394444219084421014713677543853377626278261056838856894791509789815069655570848833555109478755839760484484976772559731950938268494852990686682407959842030206885161883649494168100588706752491078858478093795176156216124596061793655436034773534092585406622495245134084397829500738218184626775581770597452923133514527492866488802081890330623911907496364210816790625900654534832688036716989494032529242264210161760961518481368880899900964899479578351868409329834979727869268916278312423903574039811770559935054561200669340713675541667189007245647029047836568884878118199564482798315626787816023392214375975749525805490524058187136121514365012599765035669555772931809480599511085674991396289433540183641222357983406414785339394597670942361253138411094395230843359916076757024939017063835914415221710126398123280999147800588405282693955773916703884286439757578862970831220634921893640879117870946582997224162805479125097176810692210976198785732083965708530384443184162226656948852858249617369400690741708942323433466075820859015433779703127292256750082724169587075199562246830128182523434430517782715402186314287595719959570037455636478156865669498443870598575242102076520226647092690111599432187522613176077305176669080632424169563216527756742858376790574944058147829527533419055062875275124015705769689113330862602516965119271319278061088897570903861643608270673956273695882396867310856599044506934220834797331957036565401436842016242839415119536342606524081079596569068997143507620362196656593361007904584875849057997089586368729720322537067222751466251055561419620555307833631457804132915014973330564423282953763785476418809376675310091431237707086991372654271906860395876928120438422916834072124725929341310405910557109075888244801553406821337825649755840939603054611341708896179943027578064120698154913658154845324085876462382960138290239472911091349262458100327685398786202540189731425175224201749182488867448879367634986668749463993476412937980203233495631190888114473255564812234859305891384275315791984045931280047482749238507959477877045446752517981041859325833289724991713262560587726670610593600600273890987987526692840197337333296466246193583058157553859530448473396226152567792695210298946232387478329984887341039792058816772890876397767511838650227794706258385975861616675066762479944938406818509845405461267471493754108946312461208869541361274782508777682200335482617459818638219078848376172596218995518360810600677404281001237822956211832532283651850917842295333743359066953406644280014030733277763818887906699199319561173146183699867365980682731097741967147737389026986101632554093418465109395610122866471633419790220435678631985505465234506902236805775164080789283996103263386320672761168764647990795452244946845933049460980396435486536798959488458204727988771833727755717174763690178265469169322226665279799048814729770317725856838815559018020314089924134613158938465930564020418652651190117350087439812470704701642334001403107309657401540395111337643364553084794113775653068981317633147008945841642917492811542638012471451150800826825981718890059778804744924814613687729792042137578172520106370239346086461029502938893356279812995555009070451781877005562044597418497718839892334154090744741494478820436350596008412579881875666041151234589589061024623497148188289538724192769492943120111981963526990304359845929730900433163317129002273182773957807550717101122893986394927913879842438229542002052709478940708819798182098263037612149117847989897124531537148339470456163535996933718912627099021844049352683088306958280688654104745158374916571407186076819053111614679203678910932312114321239237315211481996531191223938110285363421184543613673687014934313367941054963416983154358238011964321815890756169194118105979693968597545174734839743838421504869247818042548220127277684541835062521176917074447070698417441728282090342846988416473156224965497303048047504204291933082297717826833281194683032725315831835889740528097835254178269629652309574891794616323163850490870150999520033270193996795447713593287304860877439571149486113613576315285123912537527200862031997911971535203052171964549813148466645935600507649618285515628672001522661415706010459846517864286084452034252421031584189861076040251784989747793678678515567802111647903132507863317700024371261195345712070272829811566295929576196204968437925501880263811769866800229686810199862540558635753181317903241015352690506698102939773230590676842223333886602638060757784584290058201215811494084263076128227747529912320364498266163154129142696627508994631020597352816015681477292589223993373986442385482571271552190431192597893245537131350615255639852377603701108579808702704099299529013008070560470822979738144352691630186968911313121983026034777638812129804117280569864444183454936953532702702440068383779665431879746965354235616222366912261874408253539161626657016074570591778551454431817157424502191906841989882782818878775515696120794641052914254550617254243314079298504619352474704737808916191913621174081451996248992414807336142921354123931129798214901193341324987622842696075989538445106079082746569077307923352638536390193615339626769732836190298141248064328953789993057404901917819421810806589479713077101687870079471311640346834702683854767493435369348999863002847255381880239854115668030836116288231459438546296534817163751681569087892414155837553972028880361281257103155310675492252477111242334502252985497654696447399892060870427087235609566576017648574433579714667973350361394018562799268089619997962627384990336813392809706532312772996769872954076630060252382147731124533944913758301961968051350548699151909339796223906459031625233370846830362441218974359543246983584795712292117148364021942778066602990774253907313536165103549666214288683037334851940314097254202347197162637240757911787689559678443543726368208403899851707956196675995480571567812410818442301509198860889261754519691526059658879689161901417225783928713511953966583683215077739748957305196405741888738983079198118820660206279665989288320722598179451591528124455794738846192455159114918237290199517826179590432967442785759575410813641600834060944274370039600371585168616286230000051262358399325945131373473299785198370620230288309861296079701872347826932002456667839981356805630159841493895257163469337717176530496790987394927811191134152594187114261312224640015735251877194099715727236624460562993367635029996949081506524281905123240974862906788791459012331916817468751051623928306742726988247006026649671177566297381885547408944846307127015518047963656920404290979710958526420429374789053406887110129488388512495133122603165225330423920070616997988508653362469903787388200254971555288800716193175971190031852223292288423031063684689309895417645501614508798470681154908856752818531544556005471506728525826377601417023244840430309327170093307342197336840383385872069991093621513605463723026430330062514750472877696628379078145560740609916457469538704088938306986701408418902743797360657568766345334571055841362033216525525756143254936271569818806229862347157066624059308452727892516022587509495287522249280836278423663220121236265206030551083574529592631344061804816330330862519908301624942341331527769195920030437831944357555559051130306394421740535618842575777481774391027164566503793853700509025288070519841586280264542340596294826938424777835827271145445751007218320275087513839442796045006417616567538149441879456315678901770668345083056554125332673633760958742555920449176887101562150572948167547386993809801209815407582216461355947691961306205201805907098844585025000891752476577036134097229052475981357766102105609839386469147702742503232631530308265971197216057485915183806808334307727860764946118055812839676936941780085482875677583437473900421378099691583323756646965374379994280501063911424567947683510615499981018453725697417292809083205404152803484650491987092210053704803885058462681336031305638371201984530392802008367419916040367312374380719421647335036258638871292782004606227477652426550991638243450864613616724487229375358922197492089638815672641053289190694374897478961947558137197076538596808794537117238626709100996039904122150423454035289938172341166911056564371347000585485233038413295148435720966416369081326096711992846103534321277313464837214582876541624535561989969221095727341427948518404282323038187867377429045179827574536159617437443261401920530899865602811899421187770596292011323501675445609396879300118445993456304882280150304462991204390031919986494631926313643777703339448639925444361050775377443217770283846542828876921971923646667988141619001646112766051824839528292763509849224037951709434371336540698221454803642021111377078448505328892030784325580001624777566562137921431549191994619345527050464649216736179916637981725330151128223254493119408858427403252112572757292928497673335907386092759382280471651810441708510304267366580621556289023463929710691414677131710463665967155292419765595887580188008595194545094672843337323887350941394938989500901005142624144807247552546420560278429294608329381026412312892081618749300851773741225708129421727875884386042043344775814013345461387637825634673087061305203777287282388020153573478404212627023773448865133562553890053796499351028045612503976324649739638861700367979227253838004087259363467773813710684240352002095583971068896483774163517176561116697174522518444308133548008422895026500087714862179419988894335574855610943322672359126937861971797524429541693058783055488650231754179102071459154191130990930468144021457183507806205017780450713051694891061809872003745230647369378803993617061370237274932506123791113937737862650151252612005233447976633659508516657487669977127377625536063232333387711890620489041094886482668763069840073938125181297751520200876072183402263186547657854746258359689025958915453423654950528329559728616332354923806804092973058929861030260010526224546341206371328801344355772063291563089669943801402185552523180003435812212699388786861681190851280269066676338930494644783928476510763180662398928128182839213341502964993506276133446602786596714994985512876540990494373813761345003298029196630229639751891156156376116237951573689006968351347612105191917469298511646572804109248392310565927567710919514980005165711592411851396031257787228856078279397880763495868256955750778790499181298725613902770790854641631577158162548642565933424625070309660927148827193269574998058504517177939597087082540754316410379923617593621968177576536370734454511080201466818276647291163498920206927015300748097920808098791472352306360292626935019117886569082113078973744576170328853213219606172257556542588078950905673598516533277862905127186297681777087713390566148679833498617206902640221358480302498466825853500010839572328810115397770776498263959863041050340440595556792572638786115181036868616407122893759083490968940575538490436594677540979486307013968791246367639563664383368647564239523091741951194245143319328340811067150062700924322652996257308677454208852698290024263709992982154498772614008684431671285755850064099235784150680023960254264058776128201027817719249741547673164682562210510621073689015689903221175250258911286541488882214541396522310881437848379736977320838294446304480420973794555703984400150976756241477900183029160549549144972998021802820909994657794724349354640629996125772916980628558250009428788721704879732883259094312671213133147204252683606652517937252563290196108562026604969552815475630928783796615437011163884050771432703673609994743073635483697258292826330220516339196100007227021373088496276676627409164352023783367031705499837434137288747267792548016106668809595560889012026887064264477846855510431569695413504378374007580992645890527437043816117153096647865871130868557803112346224751045268163191665228857034624272954724225215527854489434903244975975084039746900640817350948222330027376637417908756380786092002091498075803186169797385091444477917058858415386116126834102794810656157543249291246330633940260442773365665997033527080953296712005420855320443899849818113748065898971599053545381187686758082967997463960287198651463167592297410108442507947449925410961325409187343772178788334096191520092441459964190542713398491722329724086642080641352263492386271397017647504578129641974969233322760113206939483815967414894288517490132716962049282634167067486225499092785096183945337050303500484281810500174696621288394949305361792666368647083409363794032931162374344810661889232330284344681016778719001481849393236488463662519103214621963991925329785752323653496679155914895565047910805400671849603035921352474354676279860328052774155527061873879612380730306905636963083588202570970405501445535570973000695028375048819015129859628447244631940156691111084989247647846369471439653191164267223121661529896443745468831375793243913247746523035273251436777030088424059294743921838697648433938444796894756796207372656227036119890105810569547094705744481879314551741474016239093882959274644481859368735200815751450272455299770217160727957789466674934452850429825274868428753283004555378253995925578554512013539063430613509264060782460161369217302838542370054953819355420536836877653407413466906393304968176405916346467208502846577774455847907792055190622923037760991588897429512491654422222660920210904786098555404205626650167531619667112198569396145684410003363280083035639973450503713570474441144294072810013457150340081163829805752025133968109464089370099560156939387153354740489751926012602507863892388581155269476958160837349770730394184642264810317629116331694868634689122754211222532789571702441534500019690806297788465207371515724320968316498977099330546104693645002029294028595038411747879748630358197118961978863824328996851147009570498486824457984530708987338324968443331374611228661128261950002593889152023198486579525439923297648987661429563494845522537765388069055734619420873175801221170371503202505588775774804988842242447711727031806783936657255995064825372245820757659523447181217831019161630443366507656227317754493586201765369050966583855371691251437665398944125144309258519365304770473006898867475406209948294319574132587792338905587693311931764174657596227633025375637489523280548846358545118178194524186792370686011017360327338232056212218834404493134405303363349233324169764430341891388810407454317736698133444014134976361275412659315663181207084015675320008191817656354138990983170678742920171588543044721691113353478721238068961479439736597278792030436739093950721898869118704480474963395544832440490452984088390235682390604628761372022629708912924529582623046336294887518917164167593233291425584024260795576496490653292087619228769196702152910610471465358782191488753286927514261496712686309096017917601893809891236922477076983309262646888122218663872148753464631860325579180994675758407522191427207993491660041215203250393429031164983484812787399827274670536452676388510272004891478934869229178810252953138543278935867565319207450275009614367382469426437846687709395126275947560263593440915928803564731514818110413564603737499453392723343695268206979244860307473832208670521324814634661213837153202732212975787491573420384292138524346777467280334878268972919034009912799188842914781504935048471708958686121335037751278626106996356804667856142155304104229081342396717442489524182923056188745661041915083210042047515966692512084924441947772831424719587216684698886229171979870075921312441905264830672861437118413984282369174334856829538591054837030837672851499440918736338375090498183051575843095678615663426004149787324808188215421002478706904752277006341630809223370210619885305208506963967343371130560809399437340445369483424302645561920211248920992999124983590392837710664373172622613816671370752096336467419009863207614575718032187836876462739647415150538364564823750918994111175067653672615949394909970012909833897417208534430927489215208431838841510515853130941820335320473365759561776558726583887633818228048942807642661872338639714571533228086381726846801439927406128399189423194708916493467138453920504400096135315065803649033246190591114661889453049651812046526075965225292304054683493185739310800144783890171420028005755701252721093314879977754944583426959831547552153670931766673492556629562781382627568212062096611657530051324635026909710062570082786649109650041024065934517247155009022656753720401453758307505552661011374462316310976984384119412789368215951792533010862358303002822594301357660405551371781333028227278880902606730454243164415908902721135656691366644777189032219865081446794390242796196357990098082836090141338508541059917148109488171859837042779471069952430733295843498397465103861069796176840924732303902785737917807294242357075994318824087870573499775254253353321571383487068301883207583611427507357253507824507815649415082932527865149569683409510935916251821800452952494813108242940054589832239601823575087185074269545000625369582177614938602953848214618342318365964896820340944139501117450919397108826615547652916117415012207733757154204470784000703539231016899929506166368333792834352712220586222074784860272279972813216934395347121704526675016091518261206319176544705518143158270455298481995258268054589058380807408778335125147256657782897463041601934148599505474054270979686673377511051261764560080927694041409725577564880785715052168910163736853274535918579741295792345538596716040785947094961068839867377238851924399111473028973858541862139920248112512074081519646632107348680934634799390085703264556754132710365272450914088775753339925842001631279796426511780875080004887797783413714782626729210904678594029806786534101309011936243464808168608786638043015731239087485170892699098921731363113804400641601723402308564641740118487960063720600138606788027318155024899487556906967546034838795087405040767485987858903620983529998875653316293953476467862565492836808055406068481339981951750039606379278270708393736609586511015733990859062278228523748567282008782245469584677554828924994875444933799680528224904821873029229209094423938234112403906700953264365535184306391589397588007866164484547533359087751812878069832728244861819702699448845742028309231944520443769111110670145364770043652707952440742874896369706873359223236397844783567801945829952531912452923536561836370134041139662134893348187219351448416548548232102906207391479956525289618974062690514094193563209416608726836090262745645579811197897964819886714250481827742130655348782189014185065859215558715355342116756898035222643006879662626233166598468946161851990145389121115185640197840279990568369836644011317523342025988432408141514705443574109370086494331115340488628614031940246479901463274448519569555025017432338052455007569165517088954423065551733283825651191581026735212165744113290435360261669868705065936883063707905205723604854397342051508863303102438131351533966043140314467177924701450786482356665751019850755528212501968521884241592870580630381965316981547359214714291195948449478734763595714876909720136248769894173128626374932811350657317072732846897897145943437771886113443303187486519054857668500633707068977912442968621367194887843266708986936895073071472225730070866909675353895923488884614927920386878754294661957052363712826223820816374979288681904667400616652225923973051541413794293772598149948080941523525485239511925221812292906503438399222281598965921969449902354901839264767586480284483637981731201331482057856405475852487793688420897517021816540500018358614444314532638373049128801951571467466854964296224300822356380585907423709458152001016515925154145104254676540503962941132133959270109291545434867636147503147398644544540665942367634594177670395045895049016925105610474595019109899549425554082519935817770671027996120157837284987185801383700048458707080187097073302210878372711209854432788714895541998578280416988352585783807336766820659269780761809308721937013442338984300888591638803004596870094088873458723394290940504940795243109848613698533265504411928050669037636204478984805203296854291447057668812150494085808249994090244317368347807232215312853232089544251945339675395107818485969572895020723387023750848513682526783873866188683785726575158122649193936466297602740440542315190446216125482965045040852396599425155352495442919927443746044630185022699652278703901060972446656508401047695124466133597680497384734590956356376480043390409005415937056365537699828492399467578134157843046215886171199310573892929163443624777673294332952341515422475492071202061119903232971395760047823656815630924596721569432602517691713940434819944812860525108866342162710213184277911841975431377765039916608645943288545077369109199403407995538189268345022665857389095408351090584896799832452184261531737246281924789720494740134742013587739838276974222307876929336063191361505234454675053111422154576815716266092067182104507560022733453337162478727038413470813132959580381687679529843893255748268204390221394190839490458190643115278809025392639041568009319304975459316988756021917118705750729752404755432199427066413293550075527283197189065289539446695020449392153986981623726419834760345083331664309376299518425017834708061744442781026356731854911401559635444325656476974318222390111350270490822911593904063189576479118433373003870131502353683410334414919568205187887934424354349694692083208735002271886189924150471460544494522495779173394037014057840822851890567716097080433601424886522683069981732846445488070078493904876702134656191565867401547452849388653275092037991107085492110931150440368813980968622890209140650149230731822314322516308756892380638622170453732834896501463086023420669553860262814768986120116236736689457402323059174737096744611557654930630346933063480237523820865486009474247853287919173228386666020574991559467663533296562685274581798030094354341824072308208263279499178785541229859107272493074268239204701863847613198598076576265155951972711080428364374959625010474591389556124983096368540239966704357561745166575355504093065018861177316862998621003256238169860348758468532196219616883599441268029494116628433602984576744471718702473533820578989829105534532717149242962785710009972831750674555448158939452552987030136510522905295529989891086524427310963960394192353944489177475336622988667377049102295007458427205026103251686826402431496257129677461618824797727713166632394284509396284694599018889309178225195388109816393519547214152099353227816287654732498172284093802510017071544401614432244610994903888190992244981990590803686464274388657345827383263564610824695687684215124695665260067661086262573763200145508908273966156155041502403192576040820599127476861622112385054264514797791163281188300031459149442746198339089504771866921700520915059186415272664472572182016104005225580960277902735661032289483040244086579830529574627457572795334397912329224702500792950709374229968740697085747175455111933644608646355828177760830762306275158005814016193859246730929407713957742347888513456686355351757808480823999611194737457463623871243559770481114818483134015678128575308457663247179243811025449110351336227689666691616176675441677967902840072229942443391849251174517101728581244782210797967051382899726473097602012975849980657804705019485124117408616528445751276401539832116354563481836432068886264174522993427499692244419863555842866470753015258622450703199239246325695097379224110863898725106946894587292618400191873287752663364944223632569649888702508555702082749474573186455920995636232312592719481470856175103911054983471792584916562077751574688221607713289507577252101846507450748343287487756897868792341426873141066345595740662698565818736294165515433819963036100282331906157486807962239830886990021766656920738815236142116631121133093202677414925370987742958407531784483226624343116146424661853391397169639093509309456375941434341276350976381884260751679876228239381386542251390346799081248048213941163070427945614873891255685736154822375830720354688983924107319394488256602305374177867216720296020437574714894570488687123176142063488255419742329854803867034273644228763862844795295107851484055419602090384928395221052968047136469916851055810758173881183456071720450260564092581873728898663589196191001441843887978003218501426246258513114644226082833590957281220039361426141310174995165467966180763059108274546294268983325717356627163957766586888888583375726548341609011369611150307945812377149663823046590702681758848797507551437923010449352394814128283257849246716789049366870076302912451072374883570239398225449212935875622007782536606205802618260630659594310468345228799893620580536581831682132348596789504201378288280752639370088876446825174520840307678976292267654068336217844770661542048992121758251716803822195428493140498191345037568032099611776037872162371567085736524812091222655771330245676269192094565660788391405681599184702605176387020618888736263250417374406942808371163108289992665871583764842885647294555426775314965297148010037199213119245694130997880574811038423563103752655171262846609887168876466013748538976766357415859260232843197694869612766903138108671638156069694475295209297192762262935979928421351735649845062888751037692787008086053131895444512337913580111796943828499938154101041811187362126215797738375684525641818154905086752790792219010578269139275736006387784036566046591522809817613555931369388649228412568657439100612306070401133017170791619335610615265627955450026752456186356938133741435292270127129506285457253190493858276899877729530933145087544211661961222173732242364665798243002938581201546198157619705132670297158172262913077469510547847968659536780899721664891347706167214252866628011235074417959740314438840656571219738030913227030980775442680343115540609060618260785993634055124405001562658576719676940655124513048902348969006775200382978042989513817758330280271127905959096292561654093186330918694527665955057832837621137227300748053573863668687242958249036539669824673580561091434736738116325090782997714841299994819069098757400212796624923524525912118134453602717765842461241705092375911115118647747180091360590002455963507781217527631510497942908709963575659589348139116563445383502241056132915659213960179272820543995080865845358562216295888263538733998837319897214767078674157754115779197027725997643678508257625231626442087677016165040269896088070756046636919370218723283825499225144738904026283323784758251769399702965171438513919557131305931412178566245300722217023476704939307882995819065472245487487314216644475372227903000638611606235979059859096659681085087736025680940137900984202996481509396939847304464957605072746631725383487845980145773976479026964974500162913061577883686805803270177845044308433071802036527623824881681323852626816217974296905288253074920641893737127152910162014180821828367291673082874909117427448196096198354884395275352328852160197930874184786368289776855798127206945086419377217828054412803240110402565870398960270869544723876555897768462471565123041020762772864225368595540382300473715118761253191286722179621401023627344350385496323779651657169717985559677844421593462082177325353314079719468004504170861763453197186727591411302257161604904817307070228251099861369143270651911949773849009726019649222720238312216988810136647719647941071902942001827196407436800354115891052261742276768544614632930713771545338857870133781508465694388000867289395025289431584999605016935556112192694887294822409870785445905505876897914616707433843913077748380521303570565153786585151006816822343167273914541407931360998506418389281939956179544327724940234167569985497326932525995355406338743609437134119569079808124265112034821269135898212976539716296321422496627764330831538986152393479977967902250439292869263489053429015375681229467884953974564333992560088739514471936753156843235809527782972148046820391230992764505701035977991067521443644395817016402680710680279368368055982126663895708953033968156138267694553403797071394779031179709469007687926568639960640544135646309362142139303586841555203128702561223768151717800120961735022526773142495855866113842648768745248213151834793045663078924705789963092456752144351505052499270236707313464185496675890753712439690408672149952179417668432080075503340804925267990300946704857245682768015662852836509535969342416393809111179920646298321012874313650128386459603137709232943109942575753291361380842652494018967637846650587722838425208805979603024689815202689972790550288263205712410186493195822257729319512687588555548411646996443274793761252124795990228375814600084710865367836708943714827154965233725849965804816592867688503643491193817919769689835429487117711461722296828767866497095115788958621441140414838777850472133695678946010037141261068123919369904024877965919519237973212420511011145908232663852741499927917541414355756161410509127966490815013436009628054844200533970723159179204130116471898071877694909427917599013325219632874300051318293035756052295588891650515022934074524449374694249031103896731315133009503977962832783984205725174592649917682188927465594553467735991329526221542648237559356672112271802979422613047903841964821118646122969521588185166191919104702709237111464616173552968104373423135779219548146620537920683657207144622545026497715149287088361927358079982137448808921294459565980481498680897833566293684315927975610646485088880639631713389869448384475622841782716545501611769089533917842807038397404726584205272968962005525671446445955046361754619161932880364600905366343963410438036279761511057370242741826829374579320407235587014869920389997383946468630143601409848021081876763932001804101537339702659128872290873014786883130518966468702775041511516456946081292970371346172288907034193348499506923062141179780659607704485196635172762738720367864850770850563816672200875547107987418701932051695309516797392372047857008198014913026423241555628382686559679051804408125440989803978634571445104220696757330247347060280231537072396082012503049189318163111217087788211747556346018004547217596860686821704354844922800625755254665256786043351485642905071213462584326889536110890916212897753836967487392964619297205314092780019170234474345642748238315214347677460032208075230988397121988698442169157132985600164885547656893309924433817665259093162750497728422586798405875474236867351647200978594285738266101291572885983803275977399621903473720656758013917404471582207196132263369115660691595132180402475833225510186711082199205204616219977581146901603170271387885755436997044821307061864167423881311844371722336195870717265851934120485832322523770393949057642252418337026812150417965973804618438323747911369068502992444773384758557946208381504541652330702943521408263615592729423761926787177875872869594842054139312664687377494624118515420909475650782787900037090520739136695908873531119632345043304461150610251316412346885035135772474702235784770119078657392197165503794654698714201074382107851130213806774620742638820649365171146103118156878000115866658262379327371250505409654872816723045661241691134467188715369644821647054036119768046157140762936262653237513013222084642376220988911616831040576346695807756801939988988531023911323741278288276366743770893499455487813710026456881037098080404788087171557410121835782126116414909087451942842409655482238013319576303130286355804216088227229699856084542550089671782931346479953951674514617767227905901215726107011975520160715716938944774886065621127407952681936507774582981495755293617512090221976447536552844515435326154337177416162936367115786539879660385484875591444844000132026833432700985456398543775909385213912332273065950016831560403001869023946473702752774380730073335639027059410338353392609116762342941206352830341211234995147093645495988854000720383723396808735347338210655308096652225977846700678008256550533499531171331920247493039226604193383945680237280863753222982971101193302047979658897884693279323508762844133791169343602568080614173007452146554594567099744696366832722203337031866613490686892522735685217937904682447360627969917488389804355873865868034986815915177845045931778346626605256052044822742329026334031474330803897954667058593597857504529975196170966553116315230814166710709906212387702230358716954528560884603292593517366658938815864330239244801258291558391535676620248353014475981040156870668103267503897662799371531232960498779911905093191936234980406426657837559494541121714199544600216697918468396199999374570439176237649626794142939977513578107100710103640874579616412213157644072043298126392395650968969941738475175155779347444654409051392582583807428164352864365863653236889669806008510223736480614114893337391670165535631888675165035831392089979652570530892556059173311913066289799401056538356457434887828616587217685845837555671005819616112988913438193448528074026926702118129922485080331370829613966872386766521437091247926091552021730115376949649289428920883836457803252511676578332379738595619660039502957253455188495498834003947177485529698354648441671876339229159040472042253087657319433235142605135645139122946856163112674487076536483028544613769320977985773521904640128663244533504846823599870801742450880631310087044727902569600696788496312592189374227900362275407924658817447917373956097997071439755976362946739974297319150093086840241579582405287239803305569212232930924222504372952991742957277259566415091167384893329779903970440219876359351905485614993147951258510216547860147736971690682515444542660218222905500695813484450956775071503205617034582770690749778231317392543608330801618137538476689587639372045454551647974434037023375715731883144015770302579409802565737386843349694311999644537874951157181271164189533104714038445182329882257990641623455859601719915069403121522426688130535137246566082443724308791742414425971128525631128300093531719837881554513887464357515916763902580244205534017436411547775736368005784743025051150858781741229988851571092030048914516273505560351674243422433105741238592450172434434955582349147616172470854145395530891260611336997643665494853153571734867437161666144011392110157286130087207947419720271124967358602466260296890492096326764063576887718806099670870464351604785511581328974438502830279609283262836536751016989786894385592104472504502275479086900328299340102792964198318269139335311621420289855217510327571081749354132601751716596459337949541048146741831013674407218959992235701064884557790249333791239037060649734350217157050825917083399367110837575690133149268072491988266605609630379040873322643083623253978565536325743671271928848528665692771666349796889153553071802558023785525862066131132528741458051128189356520924945955684450513189026001096052440912209543538357065066309540287090191327031743610840424520258175050861919599961581249259113646747096278553460565527431670012680257638607166203800876317564390239698405344203473005133352345964711294001276090578191022293065179278631420336020778570735143056164911867748427189045060226097784457465556616218306370026548567057352628700056461881313622557169748442366807388988676650491276354315434707758669086543946845144085741986242112204112452295057228378524227695662296944964938211326564374123166980990913684609365309674265491031431906767064935061918089293289819559477540558277351946922869793284289682035547391909533776203217928244534223498726254009333103928064721949435484592429027417256762769305003774350898112276418155940203127615394995824724208219653790349385885153921125833660604405399135108457296795141082895413806308127262927239551559993879630068506138747119004709760383888241143336035852014519661193385066364567380786209920685622933841792970196087448058940985701677049685003974274166084005566777965674800003273291404476232597103020130055133003771993761195846429980604732473689130816482888451798362795153945598649823401134595693703140999926974133591509031781447741074205461983291885361294215601499652357699347537181806353071271195155415875858624099065540595849895011742505274829580426280831763009597612354053278608814402511465782289079675681450769762530925257637339376968904164897728364859057400284910715147407574028052570960412468516466869586572552675137577422994773424516028235255319491360653056588929047488241756542301273891387728578050940466342987358410885108051249564882601982719120772258634587049198150204815362834191595596565963662360623172868157882007916230638116172425321829866890496097404636669841026137656445226815683660971391374210914902287060371916889887751275256490012578882694441804114036984057716045524975444866471465148218636719884233087053937124780896977237255414048993279817534894610384778898441954972469757655379144946822615781279395602345113381861902530265870851575099860084550724830447565059388389738760791133270012607227335962638612995942689216231943439869877806988203585199163171049017268493073760306635871498122722285364990652131240853861802523814504572782844089557857912433669643208753416045556311226797241261988011527899769498546789077838821229422581639090753220980649901584624599182140994639348684133518825456526968445278758706285955516113064691195835528731677007400199143933791455817002187348514751905271800799807248899897298342984802913793563878390943878222572175077460868573353175421964997428242834690067175678490324038478643840923648409491529299699398557038825702992048328907564284252148597249568738578705996367902941295604357344506511415601278532796313292260868696665749520319933055938296453538098480506277211901902734562404060196568599487742395978305525807472685272710604377316067473020651780857687960175468290700873453684541752069607231331370420258239519989253607572507032595188988083272399665630125927938294333922843299429772304469178810831162887469807245932245237089297036269461017003835057088449026846785940259067769149591139572601446469445755832295507477504829401418881955333596809316998830689434350165258803768981333517201573440569986738417648574009767605101270327294997207807694262155406279960273744709977207816219715312716772780789138144530805905047660069751048754485266451990541068430226562621121115905286232877899786384249863769064003294385215382626089362433385056150858315631065205932073619096776686063444110875220471883212284146085934619268822523991498224582146938237053284491723939656638532957755667410951290638034023920647791664784904810745683384627360395676507577487052909447134851024956955928490544838242898672483267040672196970784541895074881128199186233877715394713402111841168687578983210338123418106298909589717886929646162595313912752394470606252736173531522507898371817649243177080412887701900203451475169612181781553362072926172829960269948059796967371912420660569926378692126667240273681846928162216706753669408086854463266457071508163856786057038327518005630137256789676026472337999259115883621495469757222481194110922179427393191027613300103642563531299336401712057702326009847844561547799677309885630750194066113370446792515875933752789741240652007931155822826152174452147958928335762751692001405341037012418277797822692302856997367659939952883786039476153733608796524263908169876747968851668473854370787932258505395025618441612458335528458566639466985112101122395258353866512630231455986047002922584834618075561366523920496414265231192189231578836782128168271799843774650319103386586171257202798158018427220615285824001130426740600973173969476024318032763308526559805644678470530912114810901928232821459898928742571760839538011726131375120223881864492445102120349544278011146335028132617606887497793363908878491577055249695832846562212598938634951526803061032164051107369416924256916921964384626740169440573810047810470633959330375174975145884392435783398296102981433185772447377374005494540517856719880661994742696044616582238076731126453040479335320111688288675757789528250955256184737361817099259810846676941573004634468934905071019822119052171140502477571141486875465480040868939380510395967345815612383235678950313770897140686766027606298220265849165589220033512768853518870350121485730205893053075964520361267210644632626065767661510957970144015696930282887680316195323837221963770266601450283853183989956001808832142104522563237180550252978799477041602118024052601303989408703552528590453171130922901281627069511455374756035898935397436785757571341587826167026915199794219299970392070852822663282823388022564103306273228145534850197189537896836699813964795780823846571699672945440217111748102441927760223031570085596036392098419970160225260925349444069478127235171175710072361870840193338432060584922830628364802232860098513909535494637395890341801639449616993151374488341185342344835127925136328396885591112244122692481781009740526376578659595580353797706904039967688682271938582178750307807196255662574290555446902634260628815732676477384577365849428862698777582845865598330241093456284863024074842091022811581078361413786736024505125542042442595824913145987767076787379674116390136055146671431237085701688941473119283369435517907516307697927199485999584313127275531917079232105722128083663537766464342288200945092563981958492026028854502587835236248980345957991687253382912008625280884051052462433184860929406634705727250967337955036461697893121682214792338355307637350266542693462355452688606864882000258565640216902422343831430425325748099995025775952820973587359984527451363531762019756668563311468746931597539889710394859629633572096415725246431344160126127919951433702889665211885798670145266621024704052688180429891681303024765851847764841313126093478089913247581462964777180856619446995541753675642552012885352283755553646551181746273719602272174350309696475682816837004977393832257452492710192290024802646776783047884194038172885554297486156427324812947761999155139764873359488689585756740638189279588615233537818641788570064950293522750384092523064331925977591928828364902625471453838312398197930152912749683312694929190247029191646486446766162622043314406049156337035496792045527590108943054289406642992861405303364138397985442496796260095500337642745176682891510652017704550761139824446913188892654090647107928458681448601505188647674049830283485303687715325511391209160039742742111137761585977310816274766678522718580785921997375409580075595994640329278988275988077139138374816917620390041467719119342122924993346786169090287569621823045054838911856057740777161998439944559154821297055743673897560951439186492672620300893108154199324317649301941027477547132487021203389504704573406811599234775322544168179471829202190251947031596502410571036773736081334679992353637170348882715047295494196029072506729395335673061948922322489713129937498189230145515392160240151942986017675375222631787858700760041689041586911447912564972235096348615444053019107642817273559627678254184489241372910377504956965800777320051459942378088741500406895309690711243524709242180524153218005574276889714395603820277961430466364258422094999668991652547252875998313099876938367808545406778974141182910784865619536655191102750463920272244073823539952867387116403447756185570428431567060302440307319464523208526310817984313148479013915359617706830722841262925690430162522871704146367286095667426274735220520101852266191407702239020898041978113293328018150752457247471607756981012448837230269517952446832542783734482539475746380599668402959698368931896603974563787650473394395428986457321029616682407078525318778141714754116956326406436980168216908155315753016663726625122130469794293023274665436034392715892339984479904811085144014242637358604262248124985743909405937286653255070216239854998763653190679150542049943493860760175226989961252048446128139404593362133228181476045056547815035498185857485489428566755111813635624895315269287709166345881630734631116724691678024204589159840537428077035328708980084423553864923233164201648047535755060111573634644518225781851581026284415886149999701617366986463679469116508586603713427564794129071535121490438686551468395834365684996392073865631075435381560812740616875168081350384819026114927424630111077866239311375131173040108863663220497239354125755433367042662328538113428536898205215931993728864192452162600521093267377839698952826288229166300879328531924046705839335760544067108451014410497426066495370735077447568447204748493412307837833168259810089724300871859063101782479507794073630863761947566964187143852580723396914891385995893513906431223674657827520684988686001244033293264697848324104091609253545883276985559185639629821180215155564853054735180352255636862830791448930430533901924729564762414616353640306879762090654175813234793564777535207441753950078043154418172070720520760030147745279216260546760780790818867842794978128071017089737041771935601502749934268328506510706061391422868570812095441363204682056065135252103504949943553392957050706443399770045086149966146987795145890036222342335959362768167841532856799303915630063827192141833048788621333706112021913269685038061704788655354447115714779595792966584728743425766239781618599951029692802625522833703755872924746754163950914929295748960904025950225492093443868104793245928771684883142906110307689740953787152838984362560168227112832007813617608495311857215219119216932481870825458179081766549588415867691161377694287817909624333964097054255676203880107258758757749087762545460102070734941195034706387181678553248836042981444803118564238460591150200624136550535644811999956608151865941525793615088707260568248948441916940232836231773080367295689773723835877991670487230140963484170132038469590483382362066229710206912072161712650180224755847259116948248271421598037701626962486291864848833775626145798212151656329576960724300973412240116966497359210179801549080953203392473357894926183485285168129448572769538682416808733063678248311277092147099835694011614751213594547221750218742214374436125206226960079571993982254540965711118629159822337752726345997280333432338220162410428070195880418846818968504487424352472521425415266318827455939245252971812156456806731639431428582689666578674619716834042099626936717994753124687861964373635773075436734774543772003166264691440971265738146352246447784102427898139067337854129170463568410680288208417033247630092467965300498673163231933603401154251070472939989748041211695536841036663977998132976082748049144113845716627486675007310021198044431623909596578645497806663577672209415533208714117389119015963563997072894437271678204182555288160870729230487631773885121013829916895664604110097054148874404476543087949922903854404908679139530990242851527970857253864145498302445462066032215236089300428728285399575252967474724641846270838641666512460040620242226839262007733042343831697295643646880792997764703935442631295942538059794024409279717624671879217389519101837740097528800863381764678281386927516459245610393811146977882305214324341133534194417914799949605759450673973543404332684849927438169429260795320193026160123095977584311500224706529891145396163706438184192784771382747039630398412990029078948618950574275794711863417708071923430904238634852741871012921209091018499450505068641252696634003768923447673759025898171599695477910871253600156700419295985445254524420181227735377247461765513871218206011336968603856367999378436339859873482901387564499039999999664900314553453842522638198444716425680547322281315616824884971075904086295345343993328582369214399501335666140201049265457536540304128140151959424761831676120283688657113271516984947305008801978893095883782588568247608247732397185956010418758038425988507285243316367818271374870934976380814733918440760760389483409439458098713204166161156201997200501953450908963739481509706030665884204406357629698299131202908426849151496136230207668942068426376852903699964840194107488250140138705051146657138313805377175076890356426203395841280680112640543244342515500488550055669999347881530176706874591340954573776912043727984452173843698810600252998744689048732806518529915078326912265241463223612576437720657038136609882997170918805766080443802784090931451341368224234730418925785375561542444636588113831194394799175688161312076766980023056978075014821845774736111457257276549818232791437577406170804245455467356805084706219574755429222743090572150742526510092893453148711922566769736383471993519707419446825045063859900079082449509193615948174594870845049476846037597741938257734544377937025842455371449963067856727265264240883526823362133303035137766296446864681301702442676820962167551534570577020717866997719688659227160594652025810965092007235837167430475485970367470510841109418918986912806067432736244913234125196626148027407211260348267608910181246955151993300429095951917560111246580653227533690251097367631202640556599415112089278748374277608778175322161781488263956001912692001510843784380884822093004344455597228774807704630010804139202558292368413843800478531499989768468217029256299174393774790901980879806077526308540753962493302569269546255076001221684342553645769766100744932883141601688944239173677799833232681594473016946567965588590989018939981654317990043095955800397924676223953734802241883146365306112729646944402381432633549965146701065301123390015115651994393423518166073778068784240276165010228085022985395629378858418707662228118081692228533905311981858466434527004479540420891218875505361548588843782242849740782182443823786958563172949874011197701695051966419434337563256702443358690149687078720491242938182621336848486086201227484671819490250009242902347322216342686674722070634747842232385816637005308779072305830040852957764521025450959399934944108975030987571226986815159472820468156433450009335914811504117188348229903691921823052722575755420925636560232322184110959774429692293665843770836811878331328794897811079984634963334859024181045814193785443655157667936212932426821735201898654415013064669681893936695146461203430029431623979343362387852175794777079481503818610323402415679486073201763707470362552967715246466753277831942260370678581899615893686492732171907525063108748729700763084712833835576627258494205770415914155617352691958860558282746565404287182744652027604269437682482378132782224774604763703083025416558718574231533327395286354668907823353557570545461012232949532298236242906457463829059907249350171887392034990852064196594955517808052451719794569425980523960431194789349199585468352244401262893228766745571003519937066848917409238443277072169985479833089470683653319911704922485688965965949307954552818934630682961695654846703541438999685355704855586200981596401673556570065973071021001286240705136495479270693529452695548192365238877364806604497857007270730520992758474546798134850279482379883206306374036751951811217390378665928917688260526172096714514550387949897774768251269958438464290922362406288454952010989972435178600529761844624500718050416249296922882856605227003571744064061256043445975227404510204658552050721336950903415528312725374963777662298556342465919590544159977085370241003650830055574496118405445269898568554585632209210173426660280535673972879991955865041919184707644376480003450952043737540301715962879297622076466295936883938405043826828217760962270864793556691898642681620943547701027518800359020542415561319876867398522925492400530160830659079202134308591326710847695415964273997949699681244704659663314815378430565758347200256714845128973166413914240456280124998029634969009134297446555790920265167810755981485952109836207313035125531517591323904552856621367933888353693147585918129735699813120771828364285682059814022400418868273827516685453063225510287727379112287005302548046158998851069821691779422520528919473928421757611292541892118189169925145934984018279088100766001340591021461119090325564975193055568630912810277301025905698427876306161655876776582374142440122848495514232628256723601562435548482458847704903377326467478997070886945095966305062677071366969232316830222169902046791875414913974230478138559321104882138496306210025987369815619509782929046911181363807967645965977773616626410348455314997905864350157349427497581440191403471927647344065791312262153104502476888044126074116992732705661632930874771897095760950006821992750921117933086985343798186352202609374609767806887415664265830464103388563314877633122479777049019384605543743357030861553030459779210178031356222031009327667826300749783541869270033414844778734786218851598449439465747928765940004782119724689569863701020470255323464003567517495814590585810965556199079260953831006085548294368556135895726663641254738392556989144557349420921070034105052340362000328120579691232525434147035352944038059934766542093660201131892872885679394372819858201048478390588106455400492874351420815468208057865496748856265818372683767365100220020501837649305170556408594736922439974489458450907174347140501767726580585751431501574088123218759711152883564432045854319892548778182299865474823113706390696222075891875266259405674154650085280502864093694337229558828044034957049122551000885620882884529886786126207675658866425352678648372848830641107486394712858529191252549376477641220890677921313633837935103642077379937022214199122886655070069232908977426040496046683247496396628956226089956848639493723161424752034816260780933947705679730203479514436425840550946154401571630733118316505860170100561251432268291260172150964798523551933494311517157871763898071111068516194515908044361709745901210397329683246958438296989954019984354310614339274909838194068911567108099341044590930305278319949559006063499436163694012041292786612945223625031058069233176186461657181348195336743680053593172503625216742530712869451700824911161828690489834090354356900404847869068088657311257870436933419851856838933287650346892247696696499511917911551125896620739040781276815580361387288209614945017643858890856569234919729075251605561099170160682882241816384474101500253238397054528669600250596679336215064604848094070953369855665284674475536146601549842973038254866746046587980205322380469917993998609047043579279964118331352085015105905519837483622514916641381727490241159734556403579886609470662765084026426300284798427846479098064290284244364947332610498688110158453413409383181344844780266005559196151822003065392219870194785003272372940137512069547012437751227377236206161499081969546606063340781994169087410371399061772980850990329305211111521706168017730383639479024746708470363760528933859416624783358824728361822530281443942673079293467231672705140924577767773815812483806901164407219065182564613350649470381005557126557182891071800131206048922487378614191044287274825827641212695252485886662052738153592541296442898252893090299238783487981256464898204364080901821345965386063818219676217972314026582432472512552189610070975445933839784944722239836474051700943396182476669988041558077794840336234003095512369541545513576878996893161016240432160776938529507820926583121075630051324062491851560795062899241908158350636864887900284263198031378463022003763585172396159585657882609850129913840963213317521439780309941665595606726570341484866748124678652262662440968689317632029028275399077365488105116845703115474926196157007106730057288086364456201264416823589283452186306510537782392427810774424625213288490772704187434629420598553357312224807967230191217800987731458760888288210383083017643734247879013954020974569677657731411920166533594800919353426577633549174844541187626155468954172322927164831393892981164277822429283048327111254546121871487651697531517702365828672452803053925867979990301898143673277845859471784808813437689045291058134593411744781676621974053882156425775207434903484952843989776021355856272670592016196065339830380630681489583570738380760581533471839600998030220219072723339242336522425569956318197274091884864855977287868890755345214584377778206043901471662337498540693483857929025094738561851771319913246381876212283990580274703350354659675879566239099914454189391234232207954633802960064663187266580743234363501205165042481327103601996004810682053058740217363941059754564496164380355839082889820324550166527897147087055815862964178857012647856479940223475116061803773990053869376109768936867046474358469809747302148829010603861088665500527165523746671714521904332099252381911983516365764643744706606959802161378265978516751289406061351048581710281021637412964602234748013261794199545623767869633414245684941697474952131906579357431959621162404842122622499243309582470376852694992736487935391771208176718356743649038066503110635295082481921202614383672712979910090471546952927811102404828195938678246964237836113134460244239304087866879822864278967043350384201376783665880902796007660549322692412107214273643869328934751124012396738140548554020872495928424741179927755142649384787517106435879603339724711898754783583500097303104380790387332468614664225690438978334080039089636935772638274209043409886790985736014957967914194219892892793548842036829241896020267580420197063254346106028398314305077200491144456325461815215860155540066383977383246404275145870939069971105330923496708804670440628669364344117703266639885328281828514845781838516132286842518791107487042407725783735208296884006836822600918014455016366592288520335022150241089193223843841305717571985317370492148972555079981274634878573001004985566461651288390293499456741566773088978919409711518660632574937852775498637194177914838623466989812224062517892828891999628310991864609065680446598494429222673431967798685144977153910155642048998113290420163942522447543358011895469649616285328265125500171839010018285931457976276713882754709389550337752514145786508095797763549237692414528824091615396719930127134014455524643519034554742441756670597352948620351105304746360549630391790158736709944757304620884323949448853545602035981672564092873836422689778591540608329299151289057000537399295286176976392523928662098098452264744936000787952475648332236694528606091853053403471289775141501716416530533619567027798770835090448348513901090860233115435193965050759672521431751823436779960943423704858833326798847761102627012631922184740897796984907329641101044380258377315909211588843803038839810092174964400036107824408030697496885085768858702531687288352698905055967853299368152703418636240506757381428513718465538390326029756307547727521132169836599302720123805044250839567595154771516240606258386064226831894227340474856774539235755916159181129778263073213197549674746339332183127000308272649485597988446456502169066783896258684244499148348653335958796091115237750848640768821519797819257748579158430704996951661079683568120431103333963906348155861019718318692990886270862794553778618932882992986913532308034560620433952272611937156732409435304648693354402063077411066917069572867810401625505709405890711261218180587452165829226268820992920686409100459719529827812140774463666330506717754229361809635800038793430669818344229082859933449958649374815277513416177188615339499779043571442465717017437207593692440296831593505432705819669956123640003245340697465999554671932482732002714532624778407100107879154115250250247814690459037709472991377799812978201741241700575697958870671532119467147009232021622918007622994431149425408391912945398942650941664068533781228582262031056909997701072428681583925189223755444950211769441504228459171164351368566553507110935591754257032696113027012757509824314222236082877527878839756939182660107309328228557095938631441408312442514603873128546353945872678993116899275516113617401790257981176448602450112631804331104362473762187615738493001205612495228464237020009165726027906545789221457864639707176664352196712460539680421034273406678771725324717796530111644045393260151014097913032954564819897159309806624728076937720042363636690349169701726909707327168239421430472621944600239983937634919734972578289400500511143222902353558128057129758480167972422929745398643692228719445181976653008328284124400811814293663494251673613684977966949769251485398391997255519944807124228662353960588918883655106651185119114365887330153792070887845833378792055935223636186243568762891029248291994102854683930809336068973052653430922134093737240243018995357124265538403101675238616829156568398354720438717776840910072806653308476322911128804077390560436310404594225515371562725628507688148618090229054523589985515646564311773346500685508941214191607544116499964244132529516447482250231953318615752041059238702978414889706839951561070340166727010287922683107291059958054046426809726062845364457491634161594429939060562651424652344435459443005568114258489615666855839597117310471706146256826748811403376712016237211920528421141445572981713809160534578110583175861319780527244496947990542618542143795547565671181639289299177367159844310642923588188687777478837599139527932825617200989126737327436199987346692715689279575059464071431548907958550950184608765751819500787445551057797648783367076197378220777970755430804580344685215670976453422649794773331674093079741925376845733604839453604476611952433854706830053763907422747126661377897821209154565236747426412130544665870301439437294943611229245840983980838857284482959001971584907888269832108897656018302663627306210618690308950260999472289129770604269503637229243941944380929205999236363962727131028027324893079892811344028612495779731124874147691721171640451247099686337777004993546330189965995628966867341510257389742456103385635748966431134688576557172694741250916116965985382455940423805191792555965200900691156568874522815699010919146358361460930742377937184946631552824756119674615276026812816727044766623239058133035046473301690823451730638896429982838361560738291634606867817607764039541069375079687850694375298276199582749964735052595289792204354815934693072412442600802238171877097802467403601833705024094360112206333144675101047007618183010445926026869546917641484148148805444412123933581993878671785768053721563550139664233109070977785759071936967039423906110793667165396724256639169024969298523970388462467555476577059347119899088792829977630135728238388974428772942984473964171910511624021376059903263029067666105663355873394840483033423861371464493691667047630477623020591525318587170316128654789549877799879863892984130658375521294668897688839736255006552300393877593629252854026024849461980198217805727119878835332160310881375864694036450582318577407619900590469201378748366897121073260138235808529464176706000249492495073596252808349937541174853834559298060249261985168303394845988676074332374480467815895677182965925170409972565991836043746193597737034322677632809567891011336333935170404482716628409945279044667396870242239067080182132382697730287630727027702012611415833727262342478740438399913041834376538468627868229892169567742146776932861494474315770830537535328401406856530889333476255966396052800760617006774971755149461536954322429749372876069537402707174805333939120104672855940170689818325517244300083036844931377782696846927856526765211275449840040111845832938379679059866535568191039756707809084444151802501144741806353524191491118177960569905262910420568506288607158428355163040019133909518970576559090022814749657266567366011129697430223137243779201561058160692260453851352979210773211053750610422774178312549342042522319522337521868186045625115170555409974204402142762940597752362016838478478330172527280310616698209632307438854400288168545885206441971099010503427228404545368408881502225439959917579364553515910819919728485474654175615796806047465941788245704770951205447337467639181621385814432791824202488479756289539315201132840759760880718149227141264262009091083567905187458109976048397862987230019770926796759686593374906485944995695907957687186842804705097264418713926347196688075342742725466290446295029215299374089202187850499340119411087388093086132100101602590740343159137725635025607996148947895911808086167499902724150738843636150078044251320886236017140361908715900656107821080643845695913718382990264521255357763566719981596603569190373997955013238434033313111379446389643298673465393851965438599837798123431279849700222587336725597857033309205840574227358579387945577275092254170317988333870332155124868744072095008869376265611626063431445367883797944685986612910438602049316715877484382827129315895952709902406259217851311100014352612068198407925688646191853813826935684019017056728536027939280087793725251462730934772833087443936994930319955683522375882489497923679483613606376743815191097212058230030668595311675288770830557608673790152364594461452177285310948151852085847488804608171200458081312560270945197985394078639812626703352778651038693834108698674884466891390697648894975321464469564933751132804889140842999564592895823895042467887198145492029674923321202078838543523638398765954649870698386176115194173945064002307575174348240223876277786058080419697292971580433800660924788000944103155701190449711557098820199383052703473845921900707961910896459838764757443377059447484396901307919887368087217740893210983068012970757805930094179849375675127061629018207296783644869822484281873766339931021363831716867639788866543831121636214917649588677891418338382407677892799976329174469139836281795037575676668650725453255681225963936607736272549491121551744380265840464746343067654262253119120327981907658252695916972601293536928578018635837262584098054591636516908101735174787628216732416899866499218815973550361317683040418543569919949086778696305332594651759666499312794438169626632164724129363438004556006084869765037292273571077538518952993436462985706665941150545393916124275696102047509326278340606551921351960435737718663091156489750159004115439737250336326948859884842469854667530583559672721607097667386247459973772000577660602065652659466582456443941380192898465878184052635628027983237063374006759189823657291489975050763653509104187187593551779752969974650988399174921613019227637972653176913481941463494187068305427551678728418139408913971745294343235981690773006364042251207051361438226351901809685230127444815577043719305309284131787784664526762791068817639524698023161638974247679240609730012642424036280007892514465586852053386181247187495799954928575019095655868170782633025027436551775173207951699832931596746555078445456281342835111781125544910104109210705314135653117554412151123755869831532910702509347578599857034320401769778507373524151994317041001579040340957941825740890317502123020931597023269741650056532699317423402055460757657262760241256511225617131585806592152467146253106419308449036488053406431915084440078230794511249655773222663895393027543183776993054500875206008297732937208456825367872902797158700417516971449418529318626489625235178937150499433690392922251591360321014706826417245326237547890898411905588296431609377510792875635465037347060438552041271000896807735019948648034224824772409972371108609651230155472446723770484177717689713500777887552441377375456260495690232120327035299299041000761747497947846863158744037432120727895032862030812160286657450264305870507201993827145556774380767198511561275669109400483261767794849288189253363878952698644308050421640170593669928452791491192669629430772420346176409247008564224544462431612591541148581842324351774678064985455779915502020333424905075120189609349436499376575254443005267970539195759041618849645751919497828912659156296196611159090779951784182021716571975888896125614595307001909672342600749208896274558644345902406823084932179289628384714446648055915772341022509369319413317407533322256052029025880448907856359340790715239654906237235027659594073704869659020198465362180842933792799181367928363605316692635515135118302842243436371858487158876832247253102093717599889824963476422201624774656050204233910223536523947628864956545671280282779432226635167045302905593703914914630241300425770999040138822186786124336568120425608466465874302571012156850518762552873706599497864049880286976339722053947205236302015767548955249314196895898821956132551737518525634800901412612957207402949305600418222030912427524500916234087225613441566831900797412674216940808547764926299576728742369992801390412702862180660495733590123031390081905429703570392049495675259580621305196839436345384206359310910213788086112099758256951855041924897379888990902528404825290688395441214203289764137379118721078855088958386533475114230881838641329951825054243893067316361568004167051773493394787308864980762792364281258798361780725879108746713575966874219971443493729455657485759280396094081801746355725637725678062509625830142578262507458601108896585942394140197625472845533361380530940674370429907814034625968880686008343256228462470684380353762034251086466200828551890050099422071244870406396537106392159670646357116140055206242520424787294666299654061904826418904331279665557502301384081324451290494910369714821725153098257433956385529386560670716228632311458637161721858623034970462448022563768945422976908706897146705244420390588117098648052685003310038123668661428947972790425339822309591819621717760938818015052305106340355317449201281162006023248263396021284164933059335344785912797091608238361570833523272691510897655165953269600224995472051626757679176667998916144099023109332218095088383219934490543657625843617642617821330262722938100437185000644462984695767494441276409652238193385761098446794270651706193857889409677794939281476635705440944306886636104532705255899727743436769798037870955714422355135931827232131226390891316236853733238814085893359070261504994501883811116353454827063264232391919350046300737870040557238462953135167413987243132529959105306214854586138759736565365485464253844804791266944873127787779787690269837015598148668919952824655267417070364397759597167159995718415595608961819101798468703658456328357847562900042247733242507099288021620811910662826968119211263173624990212176752540471623920818213085330440222899054683718482000994392201071019885610525617607045057183367883414498343811395180535858993529471686785578662616918744953294030301860248592024989018085584483469188936701092747224670664378970196163671917710280755025160381879715796594947678811201169256962645302589431699149332190872247943102155149356585276881238233823680872943622441516117694458832685345448354891262527632862704383233499054247788478109412929158696445379616888419765212214490728633573390830787077653922511938280537648109459197600231885432330382172483964942500244479516497980107654452753594786018881414284192297343027989668547548009650005078707003331336530294090485237046224962684169602224371771525087005771282071208253157948558547438510422020373620852543365490730080445349803514253847220695240597679419389491808658464777091043839580889442013943925786417912474143056157428777131770052002625149174900806338797541313128157610965394101534039138665670781340292442610446102613538502955862448276167801105874110391186412175343181140598981085729917598268113716705419781421282440930293032057930950747893450365505217152983534934212971709017577188403362893850156493653538614566845971318871939814055928865276170187924321213404015114432402119120440809693952764605156837091501877506162878319307562176513170070629681190850547887697246513085394560782157073076007304156070122679774331344538086074093195096835288009234984642351983412457301752880433495174098065065361302109093267776931397133580433753756321625886856819067052036288167454189746588915421843355606131659798926870863596656317264992504343626209792916020519178999446436031908597829088485034423305728541131117391438309185331559176517800425619225622319746375319068737592522532052584019056286882220946959536504444806703677731914720333191567592742581207141482563631106087938010683309287418022621373343551095945984809670184506528606521318874538844673515394703223570560179243311114818225269302608439375107816759928990670776233109921494882690206121013726585697263971480191319521771765268966470044127170810897508340889709009163440123317302379769329776021477847291141847841889642686484355071213878415942442176261043041466054437696316186706354601604676982952764744376857839522418999408741502674202100620439330399033216389614292648166588326409427410982165382736758711437382233283349041399377917003071328736374179817344042255001383921624301098908790619557319510570474288138905373344499348703984657622098443613830901886770624027762413067572645861534136500707183752047560903337645874071456925505504771490674145474375933163793798740632938923424145717625717282123654672251704987854160678051360649025858104951465626843411471736268500044363950179759883087234374233759580820449847285622483869358037656851180941888994742837388667221660844020471707028719974893931291294017555889678019927483999527705544783981315569714468468790951720461712372897219671367350167168974783431036396726866389665082371785306059312037329547743602207298168306461933495867423085576619501657462380241234030192776428362792055539023775282537926030110411141508889643651431920485731207473256896820577787845299693524154616933738669047053183186435055575161643611192697177162239724043603881755890602227434221237583732942479628799126239425076362556485591972641018224338648619985258821424326104436902193446247281679066500902301387679348190685205424889268851172550675811708982918044748228420044644885351275450872176225872668812415760234996542726780662753810668309830981285438916098935397270567660858446364227937655270173694683988480427133899524041265669425533659740017220829511802265706204738093382440277994661084562025117346928900849307503041202193949344255643537526652029931282519167933686319819259911608173278869393940784319388294807360217698037107615429593651704737754917065733680390687569104808180735369392263938909750545811542630343058708085544258226188347542900080295429003120554894394593079804376382807581641225990595731677680248770546458912697356305172670567069345203341792573159542940346531489317380090618918885300757604592124048902280305454355313710185914683545429766760150916924713968597716688129635709597335625831237910491295493487236333368694476197020320299083227101625422868101773453068911156008968877692473359875852288802856663612403031825041678320002454410006536873984214023099787806245647152054039840627028623370769161031413260078367553926167838950815425713246574741284201176204237330232875127468828713846264365537831224250479068675521849406954393572786929461999497814109904370665063065742516343760119277380180555498160333561907098806520724894477629152845222225685923142385710588198907795078794053403258458097474919420834211136761455476863842071528560872387409645585922182703397277977965560995824215774530924773796182932087111271807003753628374137160242507331092584810905956304835806940183097330555573022974653049552018339645000575247199739624666967456461093132314626742272394603458312041192467486879130426099866158438673454123759905584227144310373185396286451891423929555003663428214550032564856521207992926636579418848987943582737721680547708527461072604533967551738526733966068557147597053434980904076581074291843038276380928742977065055638902705212479713933947116151631870327553313163655089810798541927114043144570861042032312382673344870268487282033180888030163160005934844913942846757143065697166180884912111162399940694454002821900418128748968725903506878808276048507103171995292663921174116040364979274808643249026732094196870282525092235299432771589977083568163336951786872135071674883214851875281920455838652083002675902191057300353364310478706130330750564294396411748192449766109237006244107503430865297854361311517453843098136369324424636340255367425209807167722895007919231456047331887429581849257359157520097460102157437498903015989469776279201731629693299862903245568391650304081465373800711779322616432005684835703083917471584081660879528356575777680080627555432204702517904711183003787231924418792688306332227953122745834364917647726438128187582910908647189033767539156413574892685843950499534639145932138059506226222634246217879296810142528445475047674885777050140098266482031008848961729865028319993151881846619271704138790149190682295492769984432987181484761848437327351964113326155625167432644104682113518760645817563468585880400831547962191337158792782603190144331383567746941192797692153247955532330354606223744162102978286698129619687798918019708450534414787782253766527992887845915433485876713166387221618457601190822451087747923825238839709816680653603729385224289304166975281049240872376917016071191757637751973943394326224526391927350050504219067045534957631830062158121502566499089514381334454526101696318279150755404818360012777097895451978045329097083629793526664539022190718275662172008009905729229604069501852781728959290904835107997011243265312462872267245288744350514644465543925490435789765224213117941232514500803764361953522936929310321084765037474110951532318918463945883747623493166089079978994940408701718405355846119175637418076095031100747870582493034393322882534588719479675423514856209014295686021499227298276450858100627529130722319206874228506667450884325489577754789865904136811947919827355488494716508073530388470549567134882523113218411131547642144847002797244560502497380218376092690298929162515257774685028802459562034560058408620034127986821080939114913575996539373938155700814832508661402097369524924418671268538496374240921858347890445664106068370978825247034549487244529380882747767993383396177191155417751074625856525702652509835313409708018074941755332901170010326970997425298093188492687428971978628022227073528274184902275033584411080812917255661308241544907850333358970438427641157713542989073612475266634000315892787226403067943104798351831306367363968219618564203596367850507088113708850101257945846701641374498281056920144516588868622028430299996179497332919656962328851281119695102851493429545346841917504394586045199583858836820515393322986065955374273270348407360369266076496098936608457248866413200722839862590692980570492995929763658327743478157842005043474521377498449045843429982314709550153935987159447338846411242969965344140990851533875208943638913723701194760325471334571185280066534929885457619872700080591878135704821890786862984062479067138070906894969216709225963489317264895708525940121499804050375146895019953653860219320295785397118783994475166880035410695577967541052733784261086589498626624015111168263519026801172992623841524446471937747826303766101618195528069312096448349966602275718536554878634625654947698685201038651241482803862410112277122749809140228484388493066308068621504203613766531348799895659654809714769784390569464692312017331476165388111401024250444745479807116145566935080602151618686075802356923186500678094662232594905076945523712797643618431330308771718236865349061392293154767102732577854297448146082722075695743346592308846323466448460148783335955721170647177583965648150995246012528730943490784992604863714329727987135786576453888381030907447560213486013208571676488814438809425849845636730227463613882221216881280041551193236390326667867126124765964854701155926015345944963696329386360419112666342332393198889561318811279729930843143522468881544870301165532489295766244612851130781199811195268651533392971396863045024481287722477276272491415684536771292200459984233466949021269627376414077136595927887250803717322329281319823138355051982110014864555873656358142665198516814028484978132837441133557610134510587435369102707103095126744783804889570386806323333505915160470336743434158580380591227371688076256578187329292418020810171350599824860646168978191787945597653874459802798254339422411409006511803485574095390833204748323554762778135599019500787821887584265538680033732846758134973199304585859706386207318667879278226983005953468022068735474935041535476097695113372565577848619490340619337996091901129959298962226298875321958539675209875707023905300379269728384489479001937154811919506061647094516964367615654645409408805154710758091800956700685871788141686166886180809026113750229640592985883382674094504900127226979334336602763051537304395416050588134596808406648552124737224066336864666058893776518370487567436132849636898835729864828867713289356790547443541324003327794631672354038070630796366654472537206213679054860717567351471055647734277322677815520261523385038505284827426459405933121825404421582683943215943292178068008197355274771742892912454685904627855721051886480263911515188391731709408639665014189986490957359301623548256171233767502931656657554475588032805789286933390316285026456990734416800578377279145016574389270872438218395276427811652109234727760284011562603332612962860284029629421671318881015176182120922374484297517934195532359357660492655267521171649449069498937260788827791961497296045854152477946906116257048698583236040830715432648166407978436878015476538292869481243534161824990200306153125521909992704149611202356645901087224902672607669177612966904926701256075902548320919910591140029066471076105512080978839175569582507202716829990201852882794646409667409487121466760391328796457740666628347408098841702304345297555831015331878885068063802635668979622704143172633715995112057447286939880717706835329395908030145406997656476713770031538106711730746364817030042544867202195051908668296450286826140309008724247190529176244110832685126026397030095736418105728262281827252057014995276293138929347062066247322547444846265561386284473520088611940295878539380419172842423853207739302766233782690837801597006070012257993515584058851524537573914982028433215872986556143287657540019081776002852364404354019011741819615302255884509598589724024675377438417424271282582775198156133512816538970762153034329287804875865718536847861911531695436833814928671493674555773413643678436170286695272758734194683710207428365747483067429068050428682152006687923087375933335690166961669324461529273753890240364801189760461636738795964400752294380694064499511160755611060292709136496614081345017655204085483146760983872553414923280808829418157368950648947839628273494946528003206674111473502062573193645875406823690585181406819183759247494727473892615719261090965388139751811163871867738903827949382618524854006747127727662312060339920230421706958173726665462668755894662870513382813966441853866978760374737139205026209160027104757795038497301655384578638256924260165284037183930082643301422733084785473424961492313559472145638774333305134829588789989589059822215391439977253151931795803438657415822817005384157821830588725796700474593805827496658192251008570577503168964596859909562866265134820775583769502949010847651850907475344990889016850189018163905620409494981979440714916310156722550008801108616311046810834831777359334389288157926528001703145731841029686117276724276121021893846021241931231479050183715465596809372867039331107161075154074265939238786577957343056103743022346944172669693224084104702393128065347716469813252052412455271968793319768577280534277701515293816533456716644158012711087101249881885667103772906826939029748074363130905088284830729846497303660758390711928037146844436827181491106056506536256864619866960814746098277162692503563895000806729073864848579034458886385557816333367752758594914435279305663125946433743361827295023389172229907121314574560388747327866293016447178713389757462909649334909063533317830056218938624460900948600783602411668585439238140582250777852201895353475558537636015547612562102016105043438586855435414224711101212720879018716870275919254032917848432756115071787842538861310047214347023357317576902835443896820953815905656631409150904052203885595121059766196251518905572512687409169103933110577910626687163765051020951409636838261419372833293710487926668678626102348282041058325047975612118090807214855350563430774079627176148469189056552153941563176091165204615098633933521178194562289301978118892003908948035439475994047863226539448487495660833592610030763901874545778490286743239975409693761431996729993774956349036909703178778183809627979409963487571359533989187177471213383798107341474861309924057944689487546506048236796018815621684234898545489968218506548674798577332798916398660225105275393970781120299304833844931190066864185817076799579826750941503642962342000163974455530225120561205460905163461122195404819701838139066687082510829176169157644377079457501932573414755553806086889896410284870251131297667798348738540775664528012669623015260017306218979812037461402571290493272502305658733592788404303279430296244646266743168779411686577652791792831384895258238233182566829698514138179152908340528206812362122462776118049429333853264227797303277608426182494104692319873504510384620981374263462504926386162619582869906146891945423034299516859715319385302824276964547034160160168006073128009075873713585695951022248647375753194836744828908213688130801074322594566054004910582216728332493252487563148028770885382629657703694771865883814083912477145249978413236671833662866936036681380744416114079537437595717486166324543591895951116202785251606980993031340724506843637452448616416621024520431709435287040179317468185853505858754635981293499774675312619340398207684948250541009553259499725960228134177954108959709106056263407113921667160245594503967530059418201718316176083344267794927656373472263154955984879682355151215447963148842467410764353021814874832796848508576823034503222593378294562849773447826142209068120141205753280885969705748613422607095546662362320790550703042163563205061442360147372117464132932640233751551977943521475752742439942461598924466076535769791866075623729939427915342073383082206824017335911194979392722365111804097178123347804464927733007446210623841315577363439961459340575464174559950558908651721085394559719190390871744806393147412585258685148830399534191613197480392539657905242374793598000547805391210488578280623805548939184324924692290472053711718884094674104033186419603039259616607528732462454211369702019556604335442855285985533942038057975650680221351108709154848356421225341227216187059717572400054124696183482315310910794108218904075587921189728549593434801274091338386152831743892495231784903626006965600151985344865412887291184181966988855377550330839037552137356608616786693005366845239919719018178834430186377572598555659880219590290042275531388050539565066279005676661131913393059551713720010154958515345472456196182681195809801274439779135134952431267156724863903609718839967564628099260490898216467952368939248760279759317579607355696886183487206289325168730883364326363917781358606923308418071204643571180306039272548413640656188796827299797065238665610439249469621143152450847311035886675140856224859765494059436455351351923335580907722900471341555932125320993631302469926594866123746450009651243429490456720487407322424298545685222389837958042024858319788918212597310647703494959725211139142530648056963946120173075742155944782637544281092836968699408053360683587406001495553085636270861710597854948883797794076951757238452858818293730937797386689376448148109273261181954434065526338495073266533110975506760902501496071047609672983125912496208893299863893658500978458665231384368837010606791236485301301715676828472673016139674368715395327757555028325295615481485047764221199115172477442568234331410323459700228304156232021280849199470423475745731277178150153044114282720894602030728245780546610103620026293528988037330261419671632014714496098938969473178093764910265403467189018218314724815551395729645017727156679280857860271606086224518902952057782001713355264798137101930773662451754873460525035223180300592334606505472005481590508956374345560104220794088866391904937930909506125142901840264057656116048560116586099787732088705760739577188841422421620698159811761935745546142739471759796660635139172004574883246913748551876117528044145463081464367271268795273595498334175567240907372567281947974294717866665052386333124066874138560379483742396281395542616917712525198496977816948950971582482604792974068756512552005864685991232747625556971040139399649444748617073532047173991879979446312793731141255765898901140186551522716290500377519597856840545309655615593272877167410570801770763444689684403904816105989270780953846401985804518934866652717288779593414179783179551554716817764210085628557957905262802224628014079999099571619428715243013015422092689634325016922371291680153197327218978039136291436899428752794772043123185327404788630099670258254136997307199722755077033101767396953142249224180777945840939703818050812192551876143348622954919779603481890539233164610749964409847073972467695994899227578215303632938171722769405085410456387971646187505564032000743784383683361784322842157736909932206084064137801432196239684423187676687098162930419619878273687660677524993784175520997987971159712651216143077245976597366300406693654627039247680656350915198819382231529139529587324610529979547425935164723332612733916445040861666866722169414597836419714292875374119790559321633109588888821931099077721401465433306934534692199426953435088329452394797350669176802112209742630418738225924268170495386445263548385185278820594995654317983598197307026320467473384238102786238010728404245765675600010125216198826659787441245673057958854658107189044174601294242421758538722948414530582401804686011412654373002212550916317199018222014142579525168063606643497512385396751433166519496840906863114923738897673555558198974363787912134352345988499564361039567968139258803528477145991856010042143638615228897501627162436209056568860854734715157551293102988685448373788340988198346544775675246501030063026180405633116784514175963059273119880581834319871001044533538680683135465528000018306822821358612312417229230070059855567030981701385671817337223492107784828663680451160608328414144536838776943131315985816590031056972326674097036857382443930703616145670260206218070566253946855301125048686408450125428049264886455512021004908358906171395705337957349416515859305204754754472010314603448824429884792460026699776819922877412412584573086975077162597167092846892893275069360078687448842424678783352391669807269160118025928219733891642889751812684374864050817457366196323812855609859784543586535432149275843362831881411766743577763531144846387639117847955794002555466320651350396190705658454980028942192114217022717533995142621045731510124571451677504935703105146062043151155834604636168484159514015067959605855182194598479415804977654572303949989164022442223429269663303384001012959856959625932426445676289694739568674357522898178393145682351029508676428822591601424553883191974553100786694275821411600244869842179492680918227925297151356320775465494592535028642107748824762626947562768506844471735886928939898548054198387198860245236333558472524691243596014630727576555260414914830475065234064546316116290620598303640945060834235033723159512588525603118583656241863886931373093516979313905365123332364371732116964527727195787827743052238020299171620146438672078876165564719304844231369413746442354522790762582703120326059516544326144982837611579809670157940243283901666966902810439368828928070122109875656386844785070354074662951004922856405189902186631882345585323916732861083762942321135577908037493248911281845898875294239762034342412830290246847823937431567645488581711464270743767721139511710584172361918550506748344922328209635444052852483795516426723384955161566869192133465105072480349414177071088894181628717855512803617836947814959360873333143016147613635208857567772241793118898476680040083250699892730424363223018177919965776957440511725923648135577507068195683722734762664519589873211087268908905897197838001109084116653668589255853111301341257698625334915344708049362640830280257784588174605289608284271748471125573293160688855657636718222389740034184574771875238421083899546617152786644101803440292091984205481321737831827371010495891018022973055359865383838637817059927869149060240619579294254465005041564736653416593146966297666471850725497381525925258893672063048685477399979872769145866520877640497530538243612380897639199345621010003473690169013610075053509391189458015210032818250316407199088866861926381579119571325374650984197515590829583684544163899709279303656113415410243471818928845287912287220952162536436095369244459583845291622624175937184186437519419133915460064593641521057313980283656407094516021888050655902647830959284009284299773674220593880772598101299999284882368884165732432831147003500765974038266957995084280341249133201598958168875904616863308172495102817025040832238459924278504488680376769691751452411541670149438506343136396276685545808584066305542231377332902325060442490947036168455250389893145445500892608308848264073309961099912134185367732873805481499311318829460154664261397982839949616533950716069393432585058872718319715750823948571394278140558116941288761999143787609005683659896186549557889422904049662399728578890581374963980160613342519743004433063443923650743419247075001482758696382470440126626920011622123082034735003995673976864321785277454988809779292247681098731595446115142097058354066696459365558870976455858174888904816714983750687384291121619282719438303883798916362162159346759740350656783029922099920983670577714133739817535372490300620066760301716553728657363989669119342425712482215470621512987341081641730407683735136584614020157454115138473259742051434202291875424658124396310157145446223217023562900737094217980740780461131828602109337042355376178975343366889525111521453056792329418334316383872494486119994450055693060483286560981003817751353693529678289585722862700309231944097009671801722573122128162767806740455568721889708404458226204230840306090348133505192509297703013031280524828608709447425870078539513332310541106940616225577837199642857811505279032627400912359141206739801274106767932884398847010035060815804853281857597121342580574495208698436465910247759317067445483379838827417737536675190173686159650845651092945736067637247194137127259900152022471253803367298864313156799530099445537276061775221605390554994311238667626819523324213054724484011532137093867539092384348304055421435755188017888236311826965321530582845726269037515858678603965816693275590511908407606185993915186638036810138118602770658051089997766278112465901826053520827933312854988223664206545136590481526874605597662145894650450717290344470494342218921433400653227522766509402432169502285737920576668463055830449700802452945400993601372868015576494396440317959271686919684765190126128589375310888919322311531447362234329836905995386359486213880558688391648051418298609183156896010187863824925870980485079420221981751211560028455021868125312122541302688945703451915263428303812451330488290171912661062012494444433590692855041378258019445123720300692896128890204309398953543265014234340067691344978549938242475070997893869981169132707572554023280210098923476720277074651749126663468973116803977443754290840221108784217135469875110976655544815080377409138487201870807201449609465028106126576943306225591508452220182082435895502214528095226904471427064646239310425422747569229853012846125854468122078137573114950600629381939638655538088171789659188769012741143629073873531496336431507181320792826317367322468472855507681403476205146856709834170665087862700285825466297283817566343442470122786901143352154520728053318553391111070384501742942885604861911729452113994449952011196183979426168909014755124984953399441350222442376359667534356635707208436850693780782934938274049963416452784052366981982899342690420553304820214657613874485521093623134764846854572333603093551519471873576988066667566070939452852133241106785292821474058539670999777003626455589651954609580319638556991284963978655586095810723739573719542403083471285993390028945228312452163681022426229032417235696314766750721443195381968261180429611039546801350736272708596281261102155800349602711650347125959004082414696020421787726771624027360140638829917659107890003153671110705743340663177198917289273332425349996413762764222274131791193194200243093781803700593538071388178573063524672029242598709652346308536261116965415282666893621150979328912245723468990962465621969527184345827674328172624859668725684004505480590805082258071700452099245113041930143351911320321776161662425918415245418250231144383005496183937173402644828716589884578179753073676266951960242100325585532550378641459184516812852182850609145232601175827727679078441806978333840615492792897450162864161452530271704260902991817644455426704491400374632936604384309083292735786349381043590722399296672335017720743025808398342215989231529952296703592947166361777829572987999197404863595474181699190925851660275611726086759347914197749653891023534919122523500391212155758884576486879045082932316892214059443971283705042988022859401847258439336064136420280110197254715946983951439246410646322959510524971953634804009374699506044913318453162024597939004979919167015486693090863970676511649591311372254518261876962555822019255406544423284101081593202657856162368856937610622187476760213105152804297941737926729510112642784897939043716969238472640578033343489540282148613844747963297226351958465785771977374926406956795117743951557239819776186001583582088878307503477619469440240740647213008946273048340896845732236084784331688657241991932442562419886156229718185705159003715435371540889001086111125559126836939589987215551721477265018710414831306447155017310126713301548787757304810545914722715787501191486264713302345472654350966682019270291337729477045417081548473513211668703774822609008084529592469254023315447683860034178453289171051800557028900284406434390247739922742153321530871394060493051236415490658428315811900223296167378039324575860143802233768858254762479029707007443657002828981200962127252840815162909697873607351040734048549355744288337504774468858804575425586608272988025222851053314037136685734142944022108371542511419830256767876187439236858370204705100324497010388513566751407710852482496965024700538156780697358072314794873522516687734987921044759958565555316871788041890297193450629424730387467164401082382821291317088087162934316286979048335776592848833890515257528539546102971692941342927430798264508531857780555644452713366025818448553132492824369240027407384571784216940797681923292553632679737956119483370614116801832802980382390440178566991080873203988874655005755623731650568532299483963178005461440281578497191811530352561564942391314550683725422444738290027918124584630403949511379189700439385735598365469026920596633316811807003757125916934779112303427378240390419925696614258863119526296409030153675930032193630817544209280824208268823369969081307977563868171532151164730486227339665154983029412806871427808356694091872625993236477832192996929850336056684748262062610400854909406769097717399874627003858439361890142378927384251780523883365006139122740025343921905807182247135468363638371542464008639430073832824944075278530022930559383597553484952437638443677463199582625782469786095086689315297736123011667993973342412343301198099642578336526738341195723721573033862870258206283347675233022094857180645784901464139602058556034467818456534025417863512234052535872020245910523403617565887014839662205954936928677386728387093448944351571234422021539193570574103107214722786821375045712973608884808865158769836657500544742725792024577308953235207127918951272361640977377547791561003904587872587097840222093136388122996753540395525688593600205120379836834209777674419693005482920480001634166696157200721303156553767858899327498577713352848108950166021271085001425086206681915259105024259843090861989309503570192494492800706990276822176239337658140629995406987985242109121603905141723208768719714161106816982944302996921020946244914844112483344673213294705523556919062651265423769395100316445767562353677355637894583269950780934577004598919851825187050896790275159870042620380230495672330554731502867924587766360253528761083575438524177855619657275577509432720021343045281049253009922656197360548749902893232476738057236809255502086114292570626646907996606540531849840098488911955412506186745313086518799368700935055457630917333772316066873991735138650925062757952488461900874257245157048425469326656834903029676485252601358670356997885758196474281351889159614157021756100180070777538676484162226336067801433996349409357605757125707838729984900937399136543028792178001359240706302071082110182429462309965153139599393826612549381410264612838245330007454862991649014084163302986647018479965603557744356738593482391606504552057518848519103696727913611133815097796872456215981860402982471256609275241443592681856140409751056060842415046946691066967763295282141227421780697438919315546415882030498574804436661661089524085676325709299229280939326034458510498233607604455249359199909091126677147142244508786755431860131041655008730207491014841784892211720856772032853270962486328221805675068965416969496641263473005484327321505777462112219670502508596316770124082422782145915177613349359661508028832035483024152651063220547252934842053626394708978470582272149500058326317621660616599429211025044311013538777753723338622525789537249521101671337753344894565526013583799817916244070538154944621412788132942276601961031394863842727487755846023185405896244374391190797345337547002532212327106521211735724837221055236604500626154671120349787715244735461279610644552829104660251325667609012805560973844152409868887574595632801671828860703857488177685430770313771738503945529268302369903240635255736023708554513476264251402005253084250923227986148584472200142679562478534860407764157171125298758532779180892451874164997697347443014898542398777213526796262963092300212365582732422079181327398510523721622255947335193422498625982510865396211087086149656414248398649123367888844734041389641299092338787029411828281227310598305037665071421378367829829811719912972982529003691882950105368277320758012538170557736345418368483065315591340765671041474904552982022247287194294042424341107747143701837218287749944848143818617262527718615812268338718781651443031629319805402714301567701809794333488569543710447558801718216695732072347140659214240360276805714228114216612654829356219039995369364615194869514447555287029320203826343359365226482943955765236107447542092455333575368374420969985831639074940699835675251609128687004758689191207341346949801186278099791358094336068425524024816095818472975882878989454183516303599345060040598406024449083512903180181152345316271745163715412158343107689989434334575938658276381523377454411068426532255680045745328809403540682259321828939688458385333846851803752362638541627451497251529992522944193904717760884722113726446720173516492050422295846112857295461762019597656064652737533613371525043887685531341995236169264462943172423755026032937372894133087960112943793794125546801195426340781517058137504061747434812912559570007199854576813617818461568748643462462287657153596533066301235876041353448898099226721203897277868314517062840378050107038646440718933808165708786133225812643445658248908249669694285586907004007622849655824256966949488922092826692332352771805796178271137533167186832289777363433805717023850361965918119670320735716174562321078494730945959582807050250808499793829625264431510460575754514051103151340563238577516690087398970833576445965273021782518678501726462634851587139664205122942494825141772743897547754391449910762250430350328867729368523519118825575642846007400946230162184678142750089284910396626791937185631521334056948055076117545736408018539169866301786220066861211371951320387513374216124242114448847645809711861031306682871432689057855085923837920991173051625334028348597873589576922107428456054522361085109007440560285913029777517293892449972112526170519615725601915597842602843090689967986992626940461531840038789560797976338099854761609133419805044032519474004976932245280862371065357306816486315385980482454852411647352754377791834547721384965154976998070346517569909223047716139938522824096632319750094518790000792812478295638887565253716195859720632302730101845207269836219638298940415580227814571936777076616124266577687165557305609683263335993147312523489673251602630463889462721628247937405688200266115422577578092916786864236212303128153597322629567480743302302808761997135526723342828622871750477420755307764892979901690419702414883143388496392415439015377583717462929203060929836673046740994817093488975709981179004717556682511930885085100719051169795697712180508003013486809031267650373733825386342450950635047275502747185978611727813531980842904197784292546241948748921994895786821394001310839903870479360049244790253040701312371049280641077163547887970816369614873423436977880276109598421466694151951187020098291764781302288536259117820510975891070800495032695056295621299216057129713385322655033850732494823257844970825194475833485435398604339841389188932362765117214056941310119138871250840093255993466166920988756991628829656543962981755848591675721075904659195375578428090291751010271264293466067893589317969564649943150909606035110180712457996614574478464860862863064807457290524017264053705563286663515563260698720126342996933310905356620964816114116541258487766866509342084137930415922319641145938331222477065843066385715440631084943200277786819066089633853853866403928412153672251971053751046487089581858874623132049841566777794917195200250277817073892836331462149482434497594548952575164905623974341221130923422682132056016893096601095057446253971423131742357318308410409109798474643178789101072401129829618387037926635330985453211042007139527828453085605318458813442860920419277342292260904269797281488959974015018944728796480502474270864281587695222980311787697197276253091901992141075934413922229335932230064534570432840718708136029438087117293052801217560884702854023739313533589050126103240851159885762532948586717748589759719983594385119707084449828360170685345256446820686810662290776206875295013140742187413716580749230468420571962669213156121421518140974794784035841871724732278564098136653916233958958625381465137320613819927788793705995474510678252318351370326595630037369929441639046397386561259932301085383400426417234160510242311561893199049814020707502266692691489682540192538621770597818689784425272305171073016385087076605985418918864620480458498042479367927936695227028390446002722859434072991165255510767943819441726200708278565414118607907938790819365933191884768543819815256745641484324866755994021379338774619584702170972614843149172503562952376119322354580749130482756764248676262827789973679324495564873327077031531451544401118022768070297426863288802849177253465825651898718446415531316817822688124885065865595465933632570040489660386000269778653636829986405145908095204107058146453182462922343781132940586058483846917309203375149396262632074861712058098577162665279351091396980774171658771120392464824916776046109850822346119101649224956580172888489316316925051110722512764024132543989339143636833280184407102812683665790409377057139807770352539925843715747082627758272236028570380826112775973672095618766895677479326028559720510515956598856494933466430111430627856640515247811178801309995091037082626887805962189433085658559841654395494933109798280364331517101007739012877136564736385476446471499002118651500934225907845846991179633428256904216207054091788597711485318478526746294435328070327810085801404611925055299995934669786848333331391874246409949111066823245779232818021945750938713026907934829974940176240920869781266946013585853048413412936660610441002210981718201569513697734930981342877700627373011013054299079728210074730968587200236170259503439464723853915815605893684686375836973546451994874358191329767470501207932233366627657527710952181741355408702505710129585665549579801350515527649797291328577834129557257162162355223927904318606458090845693464415630763283818066614352405317388168261251282463269225634431372736987157725731168114571779874976254731782255622842859852873007396450941431569686219508602056764038366097440986962226710080338420259341666513971247942245728878007478348537213820485306128482804003994809969264656791299118308161519439963850066855167758516184565206414243007449985705908285971819573187810450871182189376621467360931984358965249392920765882068353422782237164590714720113562068340153390675297619537099726994698269555569918555550004095215148963625318944005332902880531946048484458691087866555671132576833600272395756575061615309414221383241828642722692023140768824252731334952446086850196592804797229818375952445025502429759241074267214898947407982546959709108335194408297914279852797747445207396554648515468509707234444180792366312110286621084283250877043896290276013358823293393205617439768097722944082225870018077306240353837229262505322634409276650512684911657286130735675342678141691793132690007493623558313601187402176743541865808364553515499838717013881403656736280646123878810551978805188473045847272204903928775699657912210332055675433829063435223765287563453827606119197973569610105338844794377712187386091259260678720366772260126111236037173301318752979808407775633090655532175123423103415590529310859794133151351535949710559497235683876142248998449571951194026340373014678620411625033185479932951483522059136537804049093836911410180124351102190568779468742786403928534803314636407357788482361151989532753144644756234955750777319631979437206715107800157293157079081657803520617610056712673038566628869462719165450183381563063215763677728051266570503409215316622154206996896265735940855966421236298043595057265803930449759988053500083626883748508771245662505670045142755538092501216234222019978763009162854656759449418565703667149568320259768078403337885235861856943294795453205384479012015350971289705209985643461705983652051524500621244191897335987148188415315676245504011622554267934793182786069811449217306445146085392858577439797895467945559244087466273465804840426382928085138436078372430670593235652436996270217136215686204086732323423407184875934951002769613255184397514730858315578771458719740877841786283305005428985991225814104081728828971068828623801747091525625177773198332392540008859921729051445047399686403282138108889893167048877693470169605875746212766892826140838947402712370402693357838937461483217722203025993878080246726898671835531480610476119532483926171461314774090466028543127895380859180167468016089707172114770690609291316593808866612821969611427853767692903173482876996482728558262455092677255739256851984398329844772118129344610697190686042729866416360291174475124664295314218059127091853166150913121478902883753059648390293773660680422876707275728684000885806844618260773903212758050045706348266549966914705652059584146475598835960863949146553999474847474488278180968950304058546746403991489062146913460947967658488784468231807537079027910359333937494671398719830735843745918643833588119898473092572084111728057944451489751786095442649646962752038049403007923533186736366757748027227421413919472643623902961481676536919226470789797138610195248656785752470275401203163092944739902521321742283352386892700525650638697153443879455793875782906844489272946427741670268113407556783540450568182459265220719519762244719751501811522476000400329819979075863323014987041412383453665479812794117830730518450199008290786518835949201509176335829738559732194353875674128240303857359340042528238888169673408776680370026825509874993299665552799345797079457511925809363505359874693333364255957079717634730273483010968060962977029655818026814004086308795315635484609878790323105045627386168974736413600217496659061656315266397151497726893427204237275227630950453092047063050588549600340095019845070337115990857997337020424144107327197418397732915852316710814444113329758792519521221527447039531812426670595637693110853687373430881117573249613709125481409361520675310197751932561698892772976754876047869089666264570441111646768246507440328394778233409348406188737472022551904185543183395455865419109258239617492774902126974311237549080517823873430248873057124480435373307716859512653881186383468960585592245376632857448866028019674607963640702365951906431581165745164631050303065405836157491982808193918560300511153950509058304280465541413967740346515792371468413444168919300942678217846676680614988988212647054098180746326593741535710780483464964166134478416352498962503865789867015484034958126650624956821822699327389944680552496169055057066645753747055528391896933680817893175938914234842851522620358298639420688440872209660895147490287450497811715073491755032210265625606277807494617331566124525149183518134532348734739395519339024158131729541327679269118880253910811185117811658202121097073849694002585280279454928298709253281498799819603372424877015559196280830151252875641473909293296381198874292987244514102874769392304402558024767512678826863401321578028085386136520549087065319915753821441454393748718217906133507591155067628172912887519963543210077622045691140796664866677722340934111675701379730389674175393077219047789815486233576341950923406508640394943098093299474453143883797528445013554001519773041566807703398520605436280770098781387994825029128074130339345880385550100633187130461372100439429513555129743173245720078972070579681971611771540375310521387991734321787789599663673012100002407451920714526475467146944755562305375359965255764665787017369890784058617013932889960349729899850644296501637031084829203654687841019871952719147938786857839935600364549715399339000812265935436941394824604558341698827106332180366720093388298628480798457199241838325670414097374585415697244923036579556868664469770935730457662735582721620355815426999521513672925005170387449153861245880373842911592439247179024907526391253074359039919062312906741254833849017800411868194269976291953532683394247173058954897404666679742861728945491407629116533229155455612144419421684254981094503056346797499826344412888933517266198569927113415240301576206889922517859179113401195175651624953979188798262995760817931809866518911705807231034825814604540757015239308510728983564209090975048395722773056642552485475190201603117765038976443089644759181083613143485189955643958835982908424086708827196619165377798194573010996490650965047537675080915858471329469598129907477387550805056414631264355515866579916019677449521698479711690843137114065368755540409772348895085199607007502340775367967233890266302157315435233498483073653916723558101558590010976380896069313225708953123375527507386853012234879043725034032041667172090855100379083578829451322877178470399226347943305448409677811447051871251351995721398446616690930796869687700890087424176119536146306496019167456773958369222595496412777754148892240939037509417095319024233425846908595153963336271125430133677877320784720313329993519895017698579831170884463989896399829670752349453421635453423616683920043467819727784660841882675887757689347752023410575329861471153551248860015313854107491238525618778609786697739977144599667122614412445049257883134109590619025192289373905226085805389181790797148290314806246824109564026328837317174277626202768182120504851304010106614685411109052920867738304411223452955993933610098885035053972731886948947697459793357578108443693368428456442747545775222195950265150939269937156780029674977107154023144720023456137869402495736855118495342148863379241230779293439534778993539210294947641015288051981524735275990813524662546973900653343929718080594681073272536330812879194624915557978999695181505097986043729108274683891091272047706662542056858013470707385686797370637064507047382089429833621220291013647790314622654337626629313530961369298630545253789305220408510063214990705918227594716240185245916746660281343695946550027615058619889186967497318185933270945462561964139288889315307266829663080079319492280824480628945208982037688774077599619118008185320584306808813794270107773854742156650575334049079207491753371765456850773633348719060870091013386469894381880672172719409477754637217277301888426597050940172766056818789272894675918691837953092238424927671840411612900091939689164915473330995396153458493333213347738387883075671341318367215668003793803655009178947070539546032420016562189501958868404095634558532269551978040172264543692101176146298828135972579473702859611855016398771089914622386743097791985661634609584693198980367417035260679028185631303602105536275855331376053330265715175338748474919910454809615036176523103678028752794790578694184438579889765067429131783587642089933426523419143241636978381055748847999362500017768246782875828806750261518226503641464201826589958171218830170832260724062337872717494513219388751265828640467070779574336526916390306776145746385533034758398593937776395076299219751850850872521138823075242753667843222213708127946499969604312894805757510344388419379596736637456930873237069048231680477359702287165401183039294946940573985686653310986980918237350374216737446541739120003718853552484758376469963407801529621022513375921341664476670544247182675314281183116906131365683126337524268638821026014020315232383128238298630333198104864283835949585029575793132890300876502649688060392439804750179041090615836300750788493347229307089403601372394837208156976906079835684524969810524483717035797215574650951113136963748824534236516014599244464749324891267184596160201468684333429364416545997030403398552362880980094545285645898594547017803811536636138116964302456850169593376332247195863947613276619602891841291984259271366977331932849737833855152798336849557877946068167330782074777153140817911092405872278270866254572205574564502300498006318436621729554712512723195962983142878074426054636538161153358216499767596868405341139236902385862319991983837998813027015184564889051610949817626585516388935257895852026567336740097032830260812164407183108779797617802122387099258059112950299368414264033116884185472390406277458214648608208457963777627899774108775552487929232761139878510331936127356812003772627021227467571988288206021133222156890074432534055605422207722933403505273204616944267343512682286286925164735260725190861410373263091002308227389994337874874686563339695427185372700593067303638659019079395167881575872565167787491931946308035679351213655896396848439190986826145487859789615507011119834833906925934757617168035626114911335770941891885992231532438843073336514344209657654366983233314058730356594121192579331591405357139929219914772992467150091062586068834974369144733222429464295044948063888219796780584055072842808943207068519863081660894327575096513994932783105923753766075220229018835688460457218926444514151284058180177828738148151448483470838079541197651703375796416051523679405075918998294930150685356285060849939729512113238703590460671510370729037491184333818786056858438025004031188177636732036777224457861696184286251783865622456312518511488303729014661623938182107122490701972766321698064909931193509629363456789239317229488051993116823564093600442102293800442470895634970465652785708595212474490175802887603306516843813736099903337043954420389599266852402351047873734777274899965583256016781305728891430601070466911520163781929555692559808885757590917090275670663996429663469368142635238311328383545739573763991747818656286878693852273112103063712655198892482736271829067238726184497787791170496242638260558769235302824536438251763874338873722471831173603245849497320206823206872677541993346475496403459607066056558277246296006052088422531367219978338695614378681708820316656018431825375073924483777501620925178729000144249118415778078172171732432943420406122597034153596764857860539897127838425359203473925225868118000839241163566762028244018604714618552809467882683622290228133542164289395747154123676416781218513954138655600153692101881074559422842572780439439583467317051988967261670357100563139974636707477942039888794751712045846653385885143285920787749980209120224802112221644015668908655262989079816561650022438934228164749629009909451388784674850710623407528819534897601270451989631750804058936960991683965179602946451387630127217959213226183357089462232076858480339028428851400148745033609300953309718526604965228428701868456149205621168880511048909437097022927111106172858301357757359454733305710774017813246861224781199950623745380493788218599283934940791484009792319907436416374903676473048500491800060645064703470704172206706724638537269444267005801954254308959820792351964431799751746110554809850266447035599963105650405468200503105883838792369674995351798439319016240711728299842586899001477526187772187459547507617047393006204813933214532625453240701415889587628134928685143051083160651130167628663658935514272654247422532924371770208609970199230079078827175540782981949449769245161009132799370681956298864353298063693199719202279861183894024989809441085427640487724394002400695184997149342381581090669862324871343588270414594780552788971640300366745770141530306069569865480760519958267741313816751327455017689989534157662038035151051622320476775920766664183342091014830494447351009095828634763454842443400916076115581528677776039764536791169328826137759824162919127350516496192034448793534360861949380858384080125961059816557662564174914817780695424896218052061612416837175435228970570526880438651062476146920274538912496798679999366338967187992693237524564943404707535215365013071051887533576467102366166787474205776038301577261950521881332754990969597130089237169768836615141394051575430112810666686775390958829667622042971263710907697658598184032401249910598999728877409411841772064957269577860108893122280356351730019927251497896573610195364081660484560710616897965970793638751402537788917209040977206975431986000146060401773263960971042361574375439970501228822423704163716366993598989405770320411021916215783959842627237126980560271389133172830602733082948315879754846886627601145617340276328407078987633719615490254281913261777314442626566126326671873827448534963205588394296590751304608816127658299279489682345907543073104689997164807467544234305007865932462658671970867907429942920888948778453418872074285501759803665959003488794737430173477187561868986636595702559413923477666251735743088690379770594497057672252634648278979546253148129131400823452751582769805224054117140291171807528439609932214313285995888348590031278031012568689334566937575620445560907487163172518971941846915772931749950692858043289761898817454801623520933503217462120740252448023276351347470755913361964262523016643456525866937664556605935259760360168231585925674909258828523414600295293272285258125557206970907147595115212949828803493280151901959050613617490991100905730176148583237329963920004125707741081011464430610992448908585798380533174325977410146361071832003383425846458939411138707618961267623761151625932498361681956260811676733886624036618410910005218663446550513901997835461337064719858284019265686309502458947669839323005141428682437362874396300958096814603643104189753908202050603011789639179674691004456898121896256696375707302344687992142243660523047028496454275228572651409959412761971419934586343726153822090271800482841814548497619882650589033303618317877480388197726820013101229026278502319761979761527659101644449451743844725956012789626186931840824189786794555067664748018581476459964708740741668596091417769789782819673282751794606324325847757364678853339086343609698742796031548981830284066520163923305911585861350636614241505419275370957912472599994666613181045326156149473328405010412701540678233444590796348060424092358773978975162546344489349379993469805577397529473776221922814245869610898815648543156615099765427540472899123144925296740468064973481559032064684049324902079197030082488110184131206692925344710100009111143522673798579795085573519353439728909313480412640818431592511133787975448629208588194329889307409466021902483699111724518830013158080463795634055228475691103507985551669259899939474891715132273552820568911072294216862989833217675906340597750535142897378171354912325687778193006851783232531420054840390146876818146091517225990341675563431060181437534549518540970961805982875142560555008862054633261142205521300936087845516295463326836885413786645851912886953556518116776135950353336289260652226488497228549033236330368405417598922569879226434986878734318896008700892655127133730082677704631491026779915303664908408953118815807808822947659180943734662737110111410924465552807526278114572192507655406021678782555077760195103231017209499997931150468505628457843785775093789684862610277149602774323184235621138054168062271340498007610293186744473518410862890823674901435574128527268324201299554887833821258649572483214931426282069342131401663736537750865542652437082964700355372283668056426161342409187121574826296968087290619718385474199325180755919063163629451472846544683649865408176481004142358148288890647229142099813683837366545445082559917537807587163672880778815065022047559608494211580785735242634130811656351324933649571500939819586705142652493456669998674877621661330283626507580457724431208097937152221213932491305722564861584645989917958604750866922637044038167736431713367197289314776053979326948593164000474398092344876839132974184344727653542644164371154407010244190457170801611466634816047863517409448635093188699442751636068459350408205223075145112204265434945099821090841928570653540253696554726969970857026221280785226902910584194425736279403620698943358256562344752755563245522854163818208956434774421561335181829214421400839456478494779809579868705032887014572630403528156591743953979039262039339116026791495153280593811118911818298594525757858248063047741168290584630364894890121636738267523762484608962266547085753000252458517005609990317001778889479695822989622035250880103203740901374193884452173172246195847302244297471087787901209503561482320942586814330519992516354974384159413980390905795993542087341147493957628140561605846152451037835472182843429726256119159388979517378494697660883750276900904751187498407400550679177835600373986284500793978109721041598624666282672566973398525168196184898141714286044423021034522108470761212319697751340095860529458387339217792670859611935219521917034997205602099368560469446398163110446512925830870301046134852024783116651670553203009822413303060471974142626970596471623682135243626410701863787455344878089787373110971922698130451856255605534522739571671931010179675250801161719742802905586226304241135682903301023098373829118602629887176654091973965191029472267891386513366296227434465061991832031802673353028894002123422470204631416979729338284769826318730512874976622253853620090144838548635594748798268018268666041758042375760933484959914965101920817199036124407289434873067558239889581550476956756870481354677220162984219500011736940973582821226539611471823689278283202578290781263435386437119988328589412547604986160405124150708807853701870206631622429359897883998635878271016343515744482675294824900432003049204964967913192257424656045060695289165121716182732462132997780525688957317307006496442401260003389386108471670754307817087943226228465117389771981129630680131575626065597996135978178554933920198852363529268779437684187320253585749454415431569135580048471325143947298405126331564165638699334545264394851077534539409235559402472126739975697627863968583753902748939939137495035725764186592929177919365614351647658568857064720223696575367475566008777864647938318620398467316888155362732080729538619240948534821059639127888221499412763983423888434686699263458157911912325307208621186500829880686865141265020767396050999632540979978550059536805940670060945297600567402235177866702866874412414395216600422197630677008162458466177663751270870671707171246124742355034227281916095716097377408528686888932521432924404463666703791753721970573739057388707005160480276147084221926740135453243083351244874268944881810333732092208477186416634245434145763312978240818135128023054622223123489984954987013383702994113342563194048410715173851034351126869714171439651499209599769716437576175605292375386415529778369852373723588241982062177374905357838585322206590831793750559099808002200603630505956682287512917758103506890222164370927642796532443513377318807964445654074491249313804763715282869272757069870500437245267253564395871564291361653242175644980770217939221526258959102273345480424927523657453329007919478078525691294849327386137345703770113035847540989072152561586768453617034182148112318434566912449012298064973050942502570171919503596973675092170269694181776571779611636568433244621668823193105890334430198090646660939636517677717970145364825526317121551418714138198946285359716969183710672506832697326773108573918203019145163778852833765980861698391303141333174361928186792901776102205223258626087905044707197851954716994613091679981168071099830159191291077561342544827096859577630512438940555380486377559745459463584456448345139732622935678525118357278225519376114599624147821791109034650486074815275930816949625433386060162503635635766109499799048117562841212159657004956246851535869872279245536110422201865627135841516760286422178668429910687284131803599823701652217949141059232546243283500372146578572679725980484842693345744468232674689531096463867980211300653153947325103515039164605788681668851112633820297129238890878176334875586358207498192370238978808346668719916560242941549435361404370616847461598424950472728099896762333999183969949118145846422782070632482622332185778974671273916970393910705281902508838321259008898194781653353529822557318498856765993434122663735907079849067090832307997123044280989641262020059811959263906953048287537755801586194831982350417952920435475812271594525496436429444232268355499899662337947445984529604570705577716103823483535562384530334878286730231377797881415470292549243393617790873948586811722695000851608431992258986967230943399433893015111706545728940639594501230399844304861063547700321124820195903955849164091676226100119352467544585660570251071344460071289185588615585650905251717866237760338636583902286016239510523873244910112968854630089810247440124465352434518401556882493719766736128308378239985850171172204349491072331149410194838725932061549079606504616035124260153495547850355340835730515051618052297086919130065534134790103293339268064927129258986388802601497056858877210567328266058228913637322154151820920538882615755417368518995491488744665483854209723790611031423823127492312901391162822576735588562959432197657160295590022506050002992107505318259059465005575698415398593142434264781189997225663640258634744332781836697174146928314408628055687400611142702714188596727044878424613878635379937883803094835689007032074450084620835839827165023230333360555926922034674416906030324065458656738182485838374181691747018158616437751021974152845739540728913736070592288664167250317657442980649349288543468130057147667712586555056059061654766220738749333462121001885204482790343915591887706317266212238154550270213310013885328232991210668244208426468309664861781069124359608077644967607520633148763790321600748419196694433731908335593187327031859327857086975460458446792341539348595723267584630454544627949973864699764053722722139772804152272761708882377280955036502110366855917974359789402993127746859610745781168782388710563071976522801880213527465127118164381840585236147008768665444829317595970175856514001328384424540459319286930814045412237400565074896804231953339210204397350131601210743974689036300207571521658027112918107786548276242365731342676236761038415060270836149531700431064735945231438474570558367455258506164301334558243003546912089677122619821786027595450865866376986312751885871017387650398741508605478990547074025196703072553114617721644292156327246314177318343555404927166307365159894246070924256102577717070599129237087764095746413570545279097393791903336382329891827835266451584935403096467091380070690393103089886970016710779748245196400056322717441379082206745494590142505224466921963649829286424381426113816936474196154896618115116001306046079978752405311472586184942016935436251209471693931831825590777313493087484154985777267990874406682070069778858662890847603322386727203379829816688847054014554659819330590910116072438751505338924856156177249648927348450174926787932891282695738124892418561828390469981181680216711244487813299334850521215476533572838012129189955481975413780566382516245877834421475298704379445667854667565376931937184314846506380458582781447440393407761535231289548751798224950684243599532303792589060137226047856936828032314340008721561025753055143056543231558793740881217759123845511722396509204545016436900841223896662134452211704684318400859493464312087870657671811563817208371909582812076049364514379518766080819124734527032174359482014211357669039766719967326578168527777258832282354724953231618472971465319529063175144418194430816468398910129903385252980365790621938333044244990568998477098586175349255931616213690314802179231732888113658630274768179585700612323256437412360735168368999657641282087851218835859974072288366496673014428217221614436479471331274583776164585037609597399228715401025814015111412447089969364855866648073080085852912512393769375464757827626742974940626266665208120524654344242579103265120901597060457513693141630403000738727768753870894503656681642253868397623801286822058354322676560459244435847803643909782074479438964074653709998514410520138836243784262458690958972867113402481785197160465280219337717141101509635184646605294931129032467149659338328836301033656514917185736642631214477847842466530593188760540945629211952276705204883243765617599552371759525766878755286602443569939283626506982791180734095819028429605807911495722821900829847868521844727251210049307024939792765147978882501152404001431079049195407904072564334008613733523712511431317299076723059242433505084387061371650336765763228908625102826059842285573649585494153715126609679270804940757237076691788777131878351406290591375698562874396382653282912487659924096587271955308646207507836150443878135104939352102912884955879655742341380282492699935943920670912220593255589908018710879144676476247623839185898597994337520181058822691406124579637317599505672909971367990944256459445076395133578339817008119812253388095761217208000732402132321301113995788741118714775414819071995929609488454272475936146651816240012952424766011864790972429896449455790945958812321465278539335864448452667461453569599243376005185926721885259383506075969631423587288972678488105197753582443729787707958053060487249609351998171809142052360313846954614589228090179338018702553706807176523662872353093042601085877427989293252967435201272608436745083793401571752852131861475187800970362604718112234541597720830121069884371513720043266307272937524881038075182252789024034946647627695921806814936533821925714769586536321540801095879827143312029606725333164803745306060064320712662600925410844011227000881205386124782938954742988070111732248254313054177111642322625646296317247777234417304211103721955500778522972464666296867573752732376530682502175308429201894532178832356800934790440333783268041395152004160812644168941775089374545060582872519708517416137629253986386025949853847052051923062391512257604332013821170672419408999825130115899145073781044192641169249432336260519589072844745485690680843607170296420066129974009113069840979117813504829130947418810566098303496288277064153635280326013711193834193875254686098252833499524612296219547956456709302738082763802753324557618798320040876464987885970072810188592560752462711901172990870514683923516947638505134472741184938669777359965534934748210640647220761195445768251226309336300743962852510976579697640975285037742146942633264939081324232583625668466572016038581354616899828167526800381406184548171485266677282668017458409155606531795510177927540367423411374747796969940141948971731281024656157823124814270267922650278112314475957457819872777724298665434134399655970816249477881688892015856432650094853773639028649430932562285948199423582816814749496725368315072641563905621476511416754174452220030142401784637425254252762250642805107647135063720870921103057787079975308787977443730265585486811737618104455277139846548109188855395113374677550125352444859728983716203274350658201309673853467832912761322816646919970761263426931313440884504742664574601773532185728779208150508749712308575163044563403690098392338717351743365957709231256114205945117983592809735829110982849113522057782782523819939755566192189881224392015723572863751454869275928059406119562130604520755848904915780011635992879530284623739980200412225996846523602723203659682069822796277044670094932264968022435033845922176100934216581917915591988408553006159769301043375301811500053127026465426819741086233654429173264176703259524256201039452713845633291749827445965496655148885143002483856936517868989272090400517390945338520433243175635406315120674715369140992839618736822030236604602132516366412117843566498208989679667097001789675822834643233698972160814833202280903976916769585820002377541645626723817961027212993247967811902886614682370110961938671660793690265781001316827640201161157069205131544688042266442144642448853571043556757552684053538459742079132379368612709098170107514522240583033742436808764234626074334308237655905088040792362934045864641219627424174192398632349600995144381525773495696154433568422611112946468583288261452586758452166506162682264601505863940640295552222248583652377468864119487775454376996648415020309805520339198547658288790332706571421717842612556141875107435902218366721282366678311838509873232255201616294285770168777365968937235580668344557795530536864078087229801027655359484164999158765210710324834077983035969864968564865987032174812794957105414698633747404369694710018088512672845384798275376372226531226968457295437695078685946181417451376056853396436478428761020816182327083898404856199592232161217808467207677033732642129031434489391627039359060039796711052527041715638605747079819225861456273115994911694113916528114547166515902665057813531847315392679849179622406414523447908100912300373331581900029074997572546683758314591288679338135762736919451477410000870887869223773189103250440066560865382077740971571529503929398642894777211993304552723166421748556338507605190869478885320823263112779320573257403477541756360596552402661918141365680013223717335170238166368967021528457714929554609675282182203888346625896678341008905891938842171049899841759797873751769864190997199449868971834559237914011996025194767421546380521057555929892765177243261576026418020897207405456254422971096881966865765432880214329605114539868810956864888180865152131865459495770777806673536172691311535088026239699789887858179320663249210963923932491985744331739022915615643445640840444198457618753160699256705667463334268060230216112713040106962440216712147823924573643248792246045699926492186867544535185662962399691424515190775211247290363317813734092094932055431022419561522693251391226968120230842934534930826705371975302372001198986129918810019348157170038130497976551565579932527703904088240841824731278627617171216012077310232216152414712804790943975992439221530359808534235977481673696012571884364774865769565654211856772276196540709465658381540262967922772196467100347169563477243175099354400128039675424657208645079492211364465005624598620209956442642217412090483056404682666086878332388848504875078783516328332837874153116795383636338940384120783706362785863559849664807312762939397509987799943456217012308207385942633782262867999191268633176464876925136244212366448233207834380965285405091477501651111078115240210826404283527094375415202792546257363555538689486445186330526023043236972914316682596672103765834051274420375694433623903768228626712665939810438739369084836706759741791397095724334842956609820761555187116167621884873665345245867108295498256590181696832220552256714766075161144782465932683871848886497344072994162553157772896436909579405873468717169355328242145480612305373514649627786333565006265444718281803555231980277863493361779061981998311969565472616915251722454095301788211200024739420026772372600504841599747346751862978150999363598496215884557253004969194354956552941191403428404236408459880699423313391823916352953117126734597931915179561770509455456707275513747491127967297228972705020782013747779199460020369851844941541259782400079847443171561083135592815383092892348910599529386650217412365617798856499711201466523932464311017754317581393851695269992420322438870032377289584710821456399955760932266651935273732566821001818326129379814210307472411363231168587969696382736060536108546206049829976962224232382307697700081960662856353344591797797529703417763516335187986390881868650381870718675932274723793490081979521581304708852853653641075812557449310948832557615302386633288619456649793829176750970624393516242590789422628354837315703049057824919737124968396408007445115628393609957243859645088342525361364834076425329095046110360423322993674978199870353212709261395843615400728418826354854984938324900620812618548265447969021845367890289007320217826165185174937010304150626961386118112386144351454889517343584943030590662399163096888635930982385164815641963407263493133784407143371745268204351231439253632322707973449338106170702244156581773850998663959432420283388002615293970280967664362495236579312591496323934985443887964505753287601129262141376170251253413280859590774000507522364180311693447016590040898392029195596670641849130403229026026225495116229231313267612850602129129078245824048172351738267990046735789335942296833142190723316998003524634699124152297687076169282095979102606741264864639128996893138657620328464050229791583448242152651530861305642500622902528221313253822250068608287029163519058234636801636376366993981738527677765928820680639656362134576213136709978422091907211726198678538390119819760892737758857182451755858633356651420673111709236568406412847796694335506225492547528795407315416788388443393471459274966286524897549905459767115877714053312130758260933407404710803672887096063347487446320837604987927972369880948606647042880656267130983464461628496505943948178466697124726175063040839692353331110934753442285000780934737286391123775391792906668012613102659714163251312829440927958593158586734472127051000553774611878922285301485247232765222573462594425546114386590643712424651682358816986957318934602491757471655079398540545406577453922872999502644808045102084899858859526926757903302297067487343075375593192555394352031234575587490022729185153440763402087500939300618844507916611961665633268529222013050277914865410609817856975866718421081192141720426485850105671579270941771406728350240562806211607588664139208631065511117548986703294906561517651579704556215071092444356237466570703417650642386510388634336132957345841399102088786009382386401519355818910420376325239426547759259994464409686786143682742612119210707067907038999521093080599219189886635042164174220661230773295508070562695901140950549649002665258380095468776435894258885175016560856585650566747417006292597069749699186797572389544745894569251388933821387158357636553377747750481561618560288677202589642110841002358861189319018346814261034409189427376696550607100388106388541739960238184676062250796604973838111100006935449475601517529905418375420884037896132805149484575839528516673793033946347794951078013877931611313765909906607039434091668066810344601308322482856255645994589119852243876405778853247074766578755409154655345512901725102450941506560654742656795151965128187940088505965659087028053165572055575360922950359203354971701827310833894491269285448116194081405743356718566049232341983592461358897473947406779463942581100496484995691441327026786931972888469839582791229300599397221256786216579695460211684248407035096787306225439153146253718471552638478745163061854604042227630527394691330334318571742712685866229945040452123374280426897085651937070911398182667699877287438050242199586147923814413056773874565751816334004717708198377921916222341441254629050083884203900570283877244422931482450277201592118267213150327730460299897252896013476057649928042113790404085692083618039773590942916251938691308565815209253202566672732182031852651410062627250383138148758015112027855422683014268560583796222941344765873577771560516720937960099087792552139223083470488697337652875671916438305400756453333314574996885102134489485274467586601238599960129854726260548552796749205777017597829491777976278199617330856357805658830729879034310605250653842408439165405493797611253505486388468057654753820395408004161274179139276387731209489171345470991146432124553285836048151436854846456467749223595331014506029160536300177984464995830608726348865899554690156644156492455542239358816315509834050314471818431730089013952305820898314096195328537316186036809171781300612511808754385848349171273258209753723142276191743438796764975756635422404819012257237705444530493392834949728638075844621460434611013073846443912030862603832792920813127586592617589596383227076198123885704431384209013970465207758729163768619769578333782109462118062155149352201808236966039518699570096426603455311993528977682153233923895174489650320249990380907328645015576324291311859084677694965858475926371317642728668998406982469905668424652083447498265488867671970556892544460019821310761436999582200623842647766214584740736873945197036394636976673326624793052630846087496203476195963682725245617433999871408021876833286449455827920909726962703143372814608068482566018527664304174113145593711683873158617864433399145482839566540902614357295245303984890547384909738507758662757959405147823498450718462077869222734490476760469027428629733540146490479359127950109459232660841045431813067285756042562049614528199723596516787343858341333873967008659090436516264246320584217642667142618656513782545940607507962609868905324877364742028501225918491821143209894469240349137530563060483581103612526774472035986029222760565629675082516051436959066921962366146220259660852306369790860975293423199035289036598888729136875219074118691692692647061206392206356147398109057986235629100072122087290929235334662592062528756722852590729474802700547841828578685418205857258481594443091322827889763947378583773456975516964535973283984115049737855254099336321163160817624424969851319714960628390367761604298986522228597108557643459620193420714905384353418779689955590915789586017065081499012705731837722538149362992534322689667968004333330196101155876796082371885967443919102268633386583302420085835650523101579545188850883424484216230016133462189106576030621902032092000213444763225093784777148901967774611525984704790011427706777432137438792847009061589954753369509472151774811180972689801900773643573670092749141281700624177253869563857692199519184642757053041465053415702624546832303361040105419307012907259111955009475288643076566605246772719951455364425071251257673067764116374143446614503894688793824911210372098746119322904439549075973665657905485873157768067612293217229790500913409411486092238586623073407920131686631484887326000148162695319585629453109263320322715361210552823125377439630413217008204830483408538968348828235227767046312526631336957847130218803884060886352472763745723844653864029784510215695242239183501258812923554045608483034691993782579396283041139987688964110279816930976246052326627785371061343838632373257310000315016070714601072545246733648008686467469941140708494524019452376808729793091945061594568484815740438103749305372029947392741918453388938149359850429851947309835648969086332827802172112268889231718152393894959674698917389154604369382758911593288074989116800368051914358717578939743833398329485449273142938314994687132209114646954933670240050322532268922243096446705427526110082854025738721611603184314200000950114644824317111220412692303498398947128511356642185693575955342079410593395896448297296433850455727666900692807119998417484523458034351517744942607479931352686308479245063772405698159565242288565644105344113580773294784597758139391801630693944545308024898843126269245655878546473408304512225899405950766354225290421654074716121006572974186692309852928602078101898553238160946513449691519745983397214584421211727513612158728065553298679956088326725339015777182366966118794050519701844714190358643143157504633210743405686000460590348081103385210738230547752782641430167810402677234525721975894258772057311848120172896280775129760309954081941875187062306451745292592058932885724745964141956843478843943520540896134507685027953162981868994051659892126956379822847738145061918936598841275234712472128198250711112095278257741711567209555847948235779828570478272254292811127017772385816510437995170281433261640927830062791932865076699842824874125219712578334659987878822710465888621426063885877083148864727424397633901577720807005697953919208514872467490305969448198294343053847092070793245833291906558526213576372584420984377379975865562405119391943221038815208368280581037631595872415611672493031912768999361304387213230070347783887213305696979528401055052868439997909452391213887245466598807837560644975673659158253089251181420133770525061992756311311079374176736211779846861918787051175172024463084704148397108424032762165836640517359227010024462274377702052914020154726122241744885671228469383194478198492421858981527196004658392143501010384632873194873284669925351958227220893594111263345628340443765559973114667288516736955202352896840025278449335070510492504700150696106581087950946555037563261744727068976270242025926326500300683907219414444056548038579272410935657285279119055300092579210610095523844456989341832789313200645760893139713037866726203214860504975408750350711328978759441104626401894952140257658080308893708606688364008141767170541032879747116434013785408258518645558658949532513865079740907100129376388578546478400105713244788019716197824918530191615341005693387760152577176737703119620698113004414506010617448402436474616295841256073625783837925430704362811956181453106720034653344136170066996361871441892305849763372205102585216050091373173189891811455171982723167412667147598085264846947941572497226890383579683374290830336060749768949784222927443655190466773574597674051173021384179820652755758822229008942069601329017119207425106453338234577588887764791172310968017142237321380846857214168738052655479349034554339259792851778148755642925255635619694546841163645097064366102418483408880507690334644496800138310636561821598831990393390939045557114753410766943295872846430175272439225586324079890345460113352219053145997103784061909374339134258197851846342887441238472090081040618261736022533116157795893555203447870779092394521679589544038064255512566742497671182012094661497830869259581308125339499208052207295665453935049019018708525068635945655888591126588422208453980028352914136924324781006040741857889607216967032972509341936683800486258221160594672536924227855480051463654887364170659309896249463727247495107788045756868111854196979236206718851822204550385211088117765902218853010009847424761101909601526066333225276507049267218997735250796261782779755153251051295599345077234058235812431851569040209760571414771797808324341708093725406680101037097469443434484796458896095072310888146952830650989924397445165762495569066797756480685423700704888141734926291732604207236802872102480385209520505593082031718544029447119766636324074210659950538684222527524301204461542650926861839940305569527827217941021315131771254606006085900615453107716981146832532883296132683357045843623902191863711731524415673924593470911272076657028923425903706553733736661759052246882561163933906424083479451198434585362194128932058697497913658007248545081204992005493010624919799949364214573688551587821777868328330285865255844364444242697228182476514795738634132361994818671179946232561554669046956516920353837841360157688010689916084167383366009221578503064418307625782843028845241440518060522711590424170990827672574288710979025000618319400183554049926072258510586536441478152872045375446365014806866320330766705377631511701678197659837514031628244432231701148086654164253631907436769348141922357659889574405462741263818208039428142441279490259427025240360334288769243117742262256985843645342088986091168876316808237131445138212215399492551254281708062343690957837373807270262199199291867529881155127833717732862488967257175484199870241440767369507494105898056450372191140846051130027494066008551519952731307862776035015716156364557095412986052450136903540235142053636692860475309235249102280155233895036329603877629070644511438188488386833048636294140146173728560740528458636037880737198955788904865620524011209181712656464056747190282781422574929709598212501156056843306181143956527229042588541297020073736483176654802085162172729792639290924693615602073875409623715809917651453563411325826225065881284881652335424144989759846676375129457993309125790952258949882317617874662926533111201281790322077198992764542564977376885345150990000467279234118722279425771453777735922567914566547791666396957974742404699245245717610312307689756195561924779680706367427739397505410199081873376805689173659204358250225615499960183018954921831348841707141065347341264033101851968683859205871590290205044535001149887178252100893550867346761832850355020676593926861067862579894712041728693186748949963874049961067698752960241263590282356080280990606837539941152110242591172926769953572183716087072939593061662058137416688033498335483030484067311562026359871227825961988566995693553364839763659403974728114735456227375827898386038478330414017098593747153138376945573668730464516880373940995346926820313822898861108824137118293167436991182942630642656286471623524235316682910755831410526396980840631736158054670448637514684131490578940250304125385551886464448562014617231200020269151697817260858244634988892923359830063149164943468087653711846409803931597720634940389536355986418075672502576901265168306040936342353427962869255404678132301650584012414403637400120796145708445657890119248902628544782830588598471372044459662687057472243884118974342005831837147874897918474624663958086042860309749818686145902886803637321102329513231390222878462830024792078165836960181854396482975228554810430196289838951081200706449656570103642907848673469652274535382722032970498621739764655488950355398188190708697336423553158051459159188571657320229961430543498406189814211702775928065354460489400995499358290334363770644541870298826402597653973205830072273885713230050650912524620172920659920140664661003293150752302904771030036802726650672000395811821982313319899983401292630859362481325890123598015378619797850316613150792542471156756744584186919617603804292767905042980648069432956865623057065513185565890291411351130857221429470426505482145722059842411616279840808673748407127842976891183929925525228923154326634952738994678427656240699195077052231903285001235614702101126255062347462096601480931398436345003973755841820961533719785589694736830996518788316883931434117860684278839640253916153243466833614859378851385711068354346621505306849076997902649424419462000537207843153617464333484997962117945811805406985251240977395277234637833148709817177734148904584666925084138160515109590756805996211412563122807636045369627006295158653161194416994404794783943792848830285544838734155054151426473646540447061356781169071021275714455745676520518411041721854264966705592606866029925528998641068120425687855764179487707435550957814771584648502591792794387495830565829718031807278992288647775193351045794194890751132401362893772066290771766545799215976246965622789551007308521585976206845294717765895435547329703476693566056844167201712762361892116446939040769196704687619945217306754715695026666109111623099006936709163639935570508054244976696156908737380531884169342895880641117066136605440515414443670288675258962923276116782501420573845485314989244411565062446749227676479866865530538523794497471324689143253380906523688033350632793210221859030391113912314209446178056769374442314131426146627788554435933475410649131963823164308608909731567265452349608422803253383054771433454794144045159906971090357597447221154195094009311717747918812769625901950093947459153310289212596994499642663283971489227751482806378058968158135102534683442682923065797693540118229670538585433010565692375713115171664640758182573937354915178384400901032476912549616842406982420095895530191594685059945503632898038769558645846330803724348440785692426736840484486178892177216344494701638211618496765633212229124243354066643480171012706023303987442520976196944154546992612906661325122445201911472893581417513518690336122153842403619731651554471295142271407626841406980871357363652784505163148506504717221401413410607464281257420701073393757342598064137634122415749785038825755283243058167651675050612585747617371808001363999685420100697283162062672260546995645082726437594663973855019385830540491519853149846157092466644371856509047250292097035466665788537831872366288445164698585919376048279528716883514226224396348380233803328530875695421251929966366882547836108636865435296280174940585068486245955281759850308168159277002125354458600950314462218075623147977530372784466946143687022176758131515747873862897436687278611983776018772472988266256658843642831370279124454145040092709843822569764008840664064697843130141285733693321741603950225423085609666335771636824459860648443774610739859681461225423780526352040383839408012854841300886485011893485053804365608232230058593502161650203176020657194366778404777101212355536143211643687041534101440356152773900998707074344923016125377534439526872251596290341809082974637848368196831632593590599201556137655455623262849259950366810359901306770892625916742793606844941583043089424625114647178917705094549420873759313588863344727569366329194304596383631878570492907636396725978567526979547562481810542770482810589537329757100023190180211503033279565836282709268537025987170733182244825962872972810453391752034794235021915392667457328443585824987081612174647697306011438179748713284717771323047584172488830526654905570499212164091602135877544550878292821014304668125414112974772875308877355546559560443163061501593317954447951283861020196332426160295845495360042757172055794714489604416863205592879547034963303148318812864991213072262253295854073286379898629057501849489949504163170040796103268164866397223567255119973885206499284175668965277912302518947754265042961890442326230339741264433854717985573476441890143752278746458146346704737609039347570184335400827596976781817974625768511098970258954067608660889464899181327572474846745062953669216355051066747198408819209250147236952330151899799147853061525656756276546592696646759592763230173462983353926009335811293454741474878331609221021759532599875451520828747735578371714232943522766190492699740613615763529118862362406069653817709656136408914225818318154906959615211591492314293902154089556688679855513878941001924052170514383653110117368898619445445776447384512556481735937090270626821141179628876554077959955763182386514962079808742076894798751749293341350233336374210283042595743825024533539098690867769969013276244523331082232798988935064079615054938914727152323005925040984349847474886324587158161806011892414687856717598522286943634925645770998415899363249160309154284312375510191008224422454428847866102626755144089749630964944455602631957810110601874517568313903762253382774533423811004197647506289601339627127795116457479608301046733799074294804929415733310153388645501437675028405988335849391023868566408971089590354405935845672851654280508744631244002465434542679421244629191025436755988916390872656212160192913023797553751688056004432140318621201847800227421195984615774128335537125814621335110466768224799956011441469501275375996912888995095151305750660785073919959257830665066891003448434884587257552558426781772041535285275223525182827834009025075619799255147818450019747570539094256958882543359611219617523037959753137173759688653938891881070832343803305092785774754542137942218051534599912822104321480209145868978169745693764654723037901490441750106651063638964288110773391492157628395246911930665925441679257111353507147351501169737113812608851241454571203636511798267128259834506241623397985713439896507776542298022162562686966735076256125979413721168362632084600205780603760612924404513196121125910933091948361051072894674757489060455233917927904867740178790425443274015570915400586242632019912551519510712759402231265500870039305264955391895765546627803594820965237190666831376608875308430420882463166420864286204139730779276978890089576875786840207492397727225601611642758228862758198511839556288172827191846591781275469779785036794240658927353460453346253873638022835415336887773301519994547573127309816871113814535765799013110003508761497009107024877879848612081697313226099609791628511424105318049170675345243220525436814328017234201392033071342816003713104911688358255347308073864372452471043130965660045039318563536838144561756124749136589026125450815421588508782233120387376300926425764274730024850256004982682606910966048357082613010466289614219224841416995575568890176591919133835630671927364984362173348120237679436297827614275413306748912557387858110431992346584933588944354103341838134886859139980881373330042478771642177762382786036132067919450202299293311909684769672317919524656394182013393175187763029847663623339575591942506302081059782927206193288724870444298339961079379822688764615015848809151373507190716246909418366914253064550524195071820802382665729843885343670076229160797413617287502356605502699961807312773522457311692328871670447802878159305083473057375576538444141518361334072298160212731439639302962791621575116146634043579029528487235459660457555131228337177419274203123030383320054344800799530982411338504345040709078514189251175553934354510869673558812746024507907105294249600948280133998558531757708065999734410422294640473357287992929139684874268942322498147314662246357655218893334581923753040838879433597898003138677958003655021476507163443396061638728356115990295450917232416168130330955852733761696655844693585467404443537960089408684224121593813479707732161249981557321382285464583097822726462089782980104269818122586173370600331598067567845256156512511856004168982119419400984534300082906981345456486816944533979717055640772636122685917461125890557472761024789378160377261655670048166433648295077349236135398608464699793588421126556293968640006869630878371726679134591840568615192684803675395693187746216393515295245008598726180275601519419836771003628164590549946884081716714372575028443576882292417798358045710263323982011724322646823833821091226327705132334966995005353497032775927646468784882898281825437813063030555018954310010141331888217444453837471992568128578907545329365678026979307294205018887592634410952539667951906611798515918533234165445746235822821861378229396777525473502550804996667744573986992936145239678006781918361064560321200424939818195461490853180512242071256494990965046778134274010244903542694386089470035621583982749179087701223446837726778640478992518924182200162388507813074302524252060731134814789684201853287616302250896070518063957924344283016969774074173365643275536326016283732467000850764146815227279649280778550201475210764779092754636722577991796620504759162789090662093217220558449773785394158189012651630270337737253727308615961491788624843545141520761866299700379671441667067170647171201788263914083668902948191925684724977570512500200361658758942481944143714516192388100455733257906248271309872091353579273968798419742883711788797963796520194758311052377434722989811971129970788694558245946217106199209626067991756368279037007411593280509451008004368244384816519407862502638636530107794769169951441511259118676677033451079926031576507375041362900632781663255880871280629573051045504902729442890785573687115413069962823946196936818871792509251301519514826054136121278334971336702038873149909487920891184430771677030817640770094816110795907695838539815282660186562494708066478025325180679446557639119154283055255433689028944523546175970896681907750525462721657552878145666433817526286441802873040816657643673995939867432236302995958472319430240640020267794684685842016364699030986402519470033259670462221094065535774797609401705616404426525923810106436404277474472746805104495436781617738616737300966490604970070132668035019970029322789474829211171197241897380789296735515770852716768413480775759264337200990796473340083613665302160750433645571173969234358570369000355357190238519764046009691235001785656561917835018303180148854753220408740850380914036478625609096667290197495480564624239928981876573086626846350434328944612759088559029869055641793945955012655362619202999350592242541270867622411488968237783911658761885939409375974180984053358216900661950210045826306529040716539703470820322624587472553369990472460379527964638084229214738386111944963467803761449353381728109286581619158040296646157355051318000985592775233845881083340378038027741347736918693783767591415050148782173598782430518330849175612034569705904530544273583320526608040408904111430706636328835574117494432729586500885839452663028486964501031274915114038921729133508783745510904992125644133393559025642487652522152242104106644106451317861673201587104246925902580744386539537000605108628698034886203586667010264581676657028356262822945990884088093343753219517392791816362575083993276462793681399388426994178727043842812967480834005478950011601890422800352829218037039618517036256280647642637705258088769568382895173914871580276413171828192893398388475388189584109149291987875294751416683903478260516405995945876604186337284879201040524549299163474229174927316329329496646884692184769204216122327015002863653065438809110934291290844579552972810672254794139395125459179918045719370633491445470155892086808638138800116883041941097599091018269634999346424120516732756663340937636400906822353977314596375976849284875427944393112342023750753364817574944100933177329324088263886106644368862639701706075035363632148031428818904831829440076792776033918906114175684029586526066012343447494791743463050416244277159588122045844733709523723571113159666613337796999503820316091107170474054945361502862007700462402508617489933047826250690247009693072300129822941866267131384790645319058428039080354441877839999941282453334258152965168024422025625684891889316191311008909300924306008104341542717129660188639340916021009240041450154199736145067635093027773154201097836908445823954944601091109146086984555267457423736203592046037905108196666584723760987284259815927934419205578196779575545710974113083239088642011762952127803440932747796369393886838500426511688903560595494630761940141448918086222366397904704130243144762218252201023732409492788947173252701819989488627640620798883648778343117765280039438693183839914017348471392831186418519905033632328837270849838667577322029554333530626038266620158550358904297124690104758187150178396698305049180142022408053115646958183146438601735287750324544347220630916866716997829308699816176506997801638490012706078343253636135425415857778301920555390660489269437937966567185723520079360108428122440837268384680784499782724837108422080837663055948608438989613145815083529855849708136618099918818549406853564726860546393145925567381046358736951592951370073925502248897235773922661580765038121139551777454657225392714891237074559556941216037519129433459756621627385767897269213264630467562087208311990114698623567312043325983811207442058394283351704504813387637950994752772892099417705217899295502207155211249424835490690240078709362161267120668010325575008434442334098303973920925697996335009635864594985053023020818970876382634489920875835700880720025577381594515339092843991212397463730269386324283041836108414490783146179086681867173615223452298787305826733775468724356589588335069794247047062386891339906856345665151466610234705257600111323561862056018396438438568163162274628689748373670520975730985626646094337922691404323758045589547626103399499478786597145841422796458390600661724067801483534277614703085264256287592436707803790223760243197627269185477571404197922828218042869370559595251632882718352732775327164992323819411647492707145652396538359887831162008857407575798538764775296065626535227092750535219056782672136495799085432471649169459087898192058041953111990152265169134215327029863771739905773705068918497941497723741741032057407102579855383048050595017967120850335699662104906951265842618461272202355788165088427673602259359549695481706201936688825527281257424966633798333875857913398906220587338125607195466001496008701242221000320852699784987020354351511378024507754469682331030183569872765777957467890609245953923828718825225297191604817713202006535411312014142499308387855497912077557311994426216548970787799784043914099402292083572453937161937091171915592116584389863089930209497615433897385741281708189793560544835440870860557722315746843585113941876919068606291664550452436217824157669836318565609420272092599130577109892298678116335667983941058914349328141436828646915512695988183102993161820045776085955320770755146219344953601276756788643188172312036580661127785502470047791219042389928581258596688962546540460639721876180853215920553541697519317212902540945054569405553280334768785460919368415557463205511129418751117670137338482814745714419597075466975702181462964599476878948976647696026157011892210372107535841459313544889374211948084312858213451537723897516362533917893340743133725729326331513333778604295189260001306576090848576652339067881281413320925381550171955210680156007986973371897929109251407831561096898604191832561486627489534367756537183333840505338541808966519383769632221402316209786010475990813508009207741913711630862103999920143416410917412197343487510055497201546160626286319783684104990113041507008771914457712070096718733467590873744264788011251631694084530072393167443759959074935989290975593578818201645862710314511906912484498196639682515669250839665023497953894925397343984044063200483652441498313213597650635338100649092475656366837273770358952287118823750272515978175620760277782883686774679458431521290519373546273694324711095953273380093931042448241122297610030139418787432775411322980011608316438052817526761947906291883284304104372410049878943636040026453995958961338372114945379008625536555548030496747531634724741471257856412328798888025972347608619100946033879236326655446731318521314560835898157752456565051732528394955217105369402286302311811168371310430684741861418858568158631079259873949984504919241825564198840691981727991857588047031119762470018131978811126732913648855040794811342665078098304933693556701499283108859831571853555769367791864295527779629806513368987163611815899559192670780694575032385645971430108937793257845759506700187872061848389515062639527733937471014860766639321745607996278909951178570827008788296494520524517937283680915598243703765473181098381306752492516277549175945725149418167118632600683942523694072472371103317163172690896244995936834670498313913119139390254933053929750139067143834609799738914463292007921473622468914769330271595029431378959817493334645135754023547117212880739826884101929410891880080097669085525145660826800706484590481972102536580931011001315795323705698197189371039591494194775491359882116005088430042834476672385902213286899943062587037860420614509905539522614286037431748488497137687632774869926921012382046411581891724946060762489510946104548107130494047878885001695265380412487787184010696358475004710051533438915355737526447150303555838211600047742344389279536691085048805456687571732710294631922738599616528257743457677311073737851442513619179997890545832627842040205597635485464372684796925369420027152487108374250693344416303532594737820298661575881751204047143230635215151314835422199636756238321412891841544597115652523905300204948844059635486495131738295444168247110468596568137711587431200160333618903599994876063510659822676454023656468822385812100203983881391659704165122089283652479589948871420269584136374170847909501989573965115168403203535008852536742783202875065939756927854422800066676276977947045275027472672051138606472526910021782867484032586945356904530033186446465174000658306213672833974127095448141910117606787388966811871950272812901249879899584180184887674524336321528575137855862128659536583659096364406347108397966688340005189382036517436530289983951052085936264056626839252860836475139002246653866013298736012059144601210098021100537027226072392672771733503997186869145453025853575118160439322234366566156948826777129242560603514709659989149922978015637834323246231134490351979657736855873799200389989566738075592565051185557220431561171510810805366685882659453585174879249000868810426513824646122604623795088951038626319842393331838540662803292158764436399695081361103353660254242324170879568736288435245407790232986249514348239829110204309258207721265210045175123546895836883502718444658332786262111277738997993394608455169302378444083841648977017958611691176598399049092387996070483837187281108555597578876458650117708318910065397044060668770291611039263533099425660407451566525808532296286813648606661642264291292835621560405851191024187939608177310729092059797408087491338480279637676676311987431522672725167862687595994504963010828117643569242782092510863020459492015122985058158610416427401147839746269577875433231361362370255704676665239938340443896235038944743169412861161513495086698134820090398795218351176969963438356515180553620029081666378312585262771115157950196296230869838419567954240581654809236745697673707868544227210948290802235729349597363225670616021973750892624152662681789724941055246194334520973082591962885695623845829830749644331583199677829534897859473520233744002638018119454261900491038129931758802565126101478111690526091683988028236961883585495787180343134093580268403086758600562301392285744905285571546918512879095564131125154567686969811486585196914215058499340747180084313794003380233602308843974159010855975279002191160923317840548387262524771538884026233756407028171807648616500794831168891767852852095558120731215268660156870607744104616906672548533968650375717809406278284360270905486787631145606809084945722826480581249088180629763195853012624236424006638634480773116814972731700748306369332354596724193391509786785591834425699061839933635078969075857187230735063747674486951237606418638369646298040625775886132001525872117239161976757655356605379457646173842907861527336342876577352221923432321591776866385243057090580000161319002966109558643578467606441520086208321030916609483214298724156452202848584853805434814871406791240797252921788093179998873912335535549615896786933191294735864157534529164859454854834035782806570691922678301155599531695311999715247296581947580516797485871874635050617219585812976893463844213771458793489063412515575595298162574654055456601785863958233341328120975899942432182527066933099112394124181979141986234476678779612838133349949938559264082385488750064368420745184502745415763824214698734376191127126985128651100098800064414706538075274520663251248916976122011041550869463017849056820092626473275753411883155573149634129871078132492783408087452971028257600291044254473583027900222039780490891793807970681986564423821504656004119324824143945803375172298993883461118217236690604331299266409683700614780516436397725069077277394906655277119680164670229355236442592562768909374392953398455991577706674502538051448960532922562981104090989353668924069534262018462652019049294954425787762719985321411264383559576958201920842093294471953128061974393957297318715012046394228288842576945106616513128923239899637386630854579280098888444080999945473407252465450276268679733866953483480653493646585067982930492142015500905923779906986624184293648584889773937172161943402413400424136690959777502609218545935844188972781995785081132348971467070766449375020556286460514466331930137070561304315421082677084143053514985814440016209725317443217912329371129307761660658457688756998401691221689809493139013553618179806208403027036310080310986528998507841194124441416573956803282476422469347934031433595475607462450083248669377028092710119049457634173900734350650289685990070535664803888186183080613117551732282328442513765518756219698466154030792959110196449549231881144461473967595866025276493716514823415920349371886566826915136426429784288332648444784308485014318595373598596115560900958725920686147562057994141572244452159432275639583170173145480657964267473527972346923595492607376314621435400482385192068981033285789153466887761562857508043174852240084237318928843553037237399284456283222022165281844156416704690043495362030692204123765658891506866271728403295411387974872457576512288105231040108427986652493900542319072567726083797949949519733846243509920945855784491728226529792057467309047854726687905657489180717908086577437497709021637524625594396014699085813336567107567633467540062969679419230881806157303326919666873749338840003592540798263139876387494916338844226541747317866634169922995798404015978992335374591340754082969890360437925770417023555840098399365173524774445406943508497567383017459989776759291523918145524482081950118540665326159613589517683039203638795829617712239194244912850239419713779127082553549983370842054094160190141250867791148547739518533791754416352955673649095977372310908331753875584047772985684714913480997749211039203504870357306019758567316983254189614473928725808385787114754531972653504888022554959761323070860244373746036679451113594255646377135210748129437176045001419778583312417422686750324976379166518545375001088549336497933494643677483724678755500707966382135649955248047580788353700250273505518711865733880353542037534478843270461423692799053811686048191669200523938147512512435425966797995239661446818474021783958691820284549435286955284478890124867460347467916771294502480469449850080940891021986433618950795200527797414874639695927969570395836550168344468299493377096803243297325489103329790129396000615769782416512781630383506938009605228070614836408464704162895052279448470230088801346215025748787870531385520793460909943370097961400119023627833852474787159630098899663951637827279113377068242156675080688851441420113284711817572914866958957864027309064487163599265488740073758132387540947670331683126453106293366410483633988437647134308669092937845081866629604337248869826883954113798552798792752463850703982025268775473564046904941554659809452899295836355155896765095975574807828876325234727366631238626677347668636952134871838152443618055860621261168815771701464467224035632740273074071301192947586792927972207390421242610298753890237232788670101741168232731788065426632228584924553399225663928452953053595349270100185644113341932185589244044698998081251022886238999499717066521343658557393693158008109413591477985087106708165263018958133434649106360960506805364589255298784777390365597081193952207185129643644422726835300818216208120417927488201770995353534655431888944108940513064596190916778294004925953618371299130485053338368898457805439219767629935032892544284663786938466859379534503673482677081914795035981339426454441791232213703586349056077969627927117508271412211053911061150871388707108492169244433816295245583379469257256535847920092207789225291676954261704278759205321995747753524962088926433934960412026745187363365390444708185759675935979704635652723454048740335054097681001331404905512371945568660087972294508723108424718314092457724867125649645447219711295255911372135365665803221992895574574830915187183064768612151687096777671871098043264221690173078642089089037476560811020042944793075067095681343204124676439726742178500690152723290094158286213272544449594496567759123621601605680019010127056887426073106439391962924482142255643409313019071602027754203212532852134452698555644030803667264517431300894674511300300177049077612450988376259698183784471858897214838881039557750782178707386842251606254325148611159528880896140769872539282296590670333183985549426239835905138277684055411450876242884342566751569965455786932420090266302284786627630705428410705942155650745804774649689068113740795748537301047125949871122713916296286757623380052921998082851867703169715109035351619073993522817236282294518467418425841828752934679894548127712796571665672979625800853924855035227275094258753886974490363703374689001487466768164562790718938025928778567078372694379928446523705829861819705721258473258691705619851647510437625713736598790480367955545310518995387455053505427316529299487173620579767186987887499237125414613776681803904887136515170544277917342190374108453051806418465047035682363579408815993591778752941944579398179304422042270757156374492374684981356874821002850696856071833981285119893407225479776273393170993640451935260659019881262607341664312838114079054158398444285435749682856013600312135512030153975601714429858459301725981898461437948315710324839371615679555539104337227315350867508372780419009193395841826530870715578944820977294521953952000133681232571402025647986295669160652960334537667843182840960061649817552456483160478287167235480120138747188291710747907766801793547562229955529506508398356058884601683757715272991717048259373490053396174706933503192632156904372767543076261715240427136072897813134323277690774508817452223024711549126625654326224073041569743441271757407729288279089578723034850711774380536655796660307872436053565958136876743667070133625744912585849481822032285402682159185007489694012731652091595189503473593058826001665774560798875300606372928558920133643147824690532617708191561352409337062672411149856625385069546077793431604253849903671767563364906828275643051583484389803510973922415742561685701228375614156401270825198605273867188596714099723692541175513517798578950227393380826329933898966791130038319418463012952474228843524763493404859720430497384090972618947660465339974753569870923441379340932146330168395991310903585063748185819721879734628886631496696997474970960366457566973916484886347287358846959632162784450445503544942509492389648238994606087276314425091456676596752836379053438868202775250026195876002886368608555393079785520962824063247511406063458358746840978847895799973219273491199527497816877134939504474003987290967932591606750747913315227397983608864722032672855000576715849609464033773588921787616130825520293824089184048953200569386205743609676055954485797467123117742992375453252131980947746012954122378994599892974948035764363544347130722834554271284593625789728986790750945331215626776858602357293380754666446168336123082255087231973757127346956789250205008297951861462214754891614408203949793567370367766951029970510124352571725085062853071158459942091976995268972947529709549407203495161354531683368535114559136187570697025629507863647727132878113459497492265387992418455142180923429291384355655652676143185135946039747605032888149244029361124172970554603359913514536765297235060590610472814955205131233577581240170783271469704498890412792570800832718095562518269590103041286895393963203064711025606943523473215064709857428762953673758260615830614839708367595771188355387330774196321923320959080384273921349209405614794783581666896538652539948274095874592693374953876288206447440900477408796393692160687437965103272976744568213836835207584180030267862422617605492331650817265429851646420319565308187780905172097891732111822994310993283647800030246059616269706328900110375709782060205530390084266624496225257225242005094356007259573169904447275478065639196711806809621819204853895528412291596898455835813141414272903135589866407464152669998544328834117297257497058304372425551632550470473486783032862665560842693463453203008348617541937965813600612239237212555798167069647880003424447431329633267106396418138425989203155651574562045170845412667798698999137996309689163103194878121332400403552533186352012835051126982330021865346540224404268247025178137634630454740053633030257969718882994224517229148270724508370155969868561687908283864496415443935080256139662690988480990745986250890753878096024388855417339668698602200501208105933847618430885448975805556354935559806817687002049170472540133637369728636555701307474550069211579710229097468223912697974502318858792107078580084213932228336515373249657537120707872694112867449086947125857756739573019954467031662481877909014397653923179135024283748550968609281445110370485751180296918090121949540595541534164702739248477736465489995856404521631454486818849635711102316464134487571123168985532027176580425440551747438071006238168575632227119809656915412889716194628991058416891305140760871761603501704018629881127956538114105366090028006068326025722008363957016327345663419636747560001201483813735942321767497762334839499717552177483174244133914110519858567286037648962658210260928783688487773938642825788829128785798473690961189750437836681659682791652263445496794348170489081571069689155967840003274411536469070750566549120410216453331687391673739199963285766932184098238959160771572278874243212963420384278008929643662555595210663310071742089796110041793532423159111853479445165584926257178432885349361888073901116735013791222547303232101364386826124833079167352366774816068920064931131527902894766593371968592737444733162132970076255615412093994796499645965062238918706299272381747211101426801576305880589435978149476215085255560311636316172389902146776008987455204481222710411170869555882185906459273057891088564462635014203526656877177801069134064169436976720250745822721600944634848485305274848418471001447801439189294694556603953780215642692463506681957259870269646227640991322658507144229285526969586067022644483136399049215308861283335258825797724773715537285458583183997197169727625456845651411676024367159737042266736537357587771304761276507829814236838274926290199849584934985020004077228118660924627544443629989669844974557771105088145586555654704837726140918452823695675320451798602679437395030783410949493862685251692465254798053369647930570774578904473665722799125849193557625592662518839447287009596640148403832868398579626336821935339040930640339996486659461814791657674954326977255005212350904566401981774542509138057506180398396466538308020053666283887509672394506949276842640088371485684915619887004784309456697859284062976987636697488153286589255537035059784441585862815691957661613925527461387931565203735689437302401574403206253975641332755232728088523723586215300705552988364647257443335026779738940074304116093274930505712105303215121452840566418418534875911620241174755055885619225047184108691694876490680844842073619114001331492392603367462933496811542395885320174206591367928775537646259696561688963503248030524261616058243479183510846479590298684635701346136374816538859582389120986443567571463480628439516782078867579521450027933401190025709201707839378926066507105320621420116564038535251666121018133820060838673701742993880115804163405507803595209600572475515647418401975321832154268482606232853004271589875673936461986944822765414950716393604425660764419630779736062907274015719942790758135237022291662776508450426478741318617055063149178983675496802623945153257212743780801106823563971616068714643990981491513232321844753983881831873343664886946195136746176813572661606548619300561599066338699758495024952664996979922009942024010483738608909706037812741713059531855933332799284174759651719753030797810981003270962059149517040821050581871462357043647060058392870178353533511577740318904820037426902745516723808336543335757295379855985660880836248556910112752862071612334651956088609205665971859826864101589066499619366707071893149069798842541062082580136253283338902016678479390368944676975021731744060591625994531531945005192931336126787710980406942865873967900612676484657973575337209756996446569461047078156656481742797770867966738861093884291672049723793658832710070405846263726439114163527748418285042620880126551670095661164439852565688106427211358693919740986286206996301620039604666424744961872441918631091383350479199334288305406377339105230332115665096963595242113978146134345137493895497772734450231259246716085658038049408595685610017850307180304977828102067889249557347581369007704312148173467945083907621710510667073422740946646220367338018770810461540571291487420974670229824875717843500170941681007472410818373347370713704672268903382375125099185664211724837101097401060482474869536017387964387535212069280183046357171216369691913391191984669570760079283711894057686451843844714239093988704845287343491993166042530839883029490990378047588534787497426417840069046907059041610305533684209842067128796420810234059068759873504696659448812476945988109199203000032671648327045066163259668916299512776461634516031655802741213506533161552538293238806526083442605718072129994068678507773327087893129363647088409794944191864497871488255190043801159636562396126351641688754170687781618317370912159996696583242658213813375630701843832841043998603614735517862489571007909951272710394928526357278784857544627259042597024202098147112543314336182005488203771073065805116162523408995110034870269000285556072765062580335053984330705704403326581305517897518888799282613462638716274404475491546907826162037133626806492975749695485148190395510701573507437676258999134618710194661356724301525814180035700232295859045725020278376834014730294096484523166371103250663456702210724216007188780049161780880021930943109231055711444609305888384137802515946049760256656398027324168276371217355108096247794195104494565769480346585105021103453521102684349754504343888740855436911591584018129358933539854661103733108666314886614528173407238790887037268828151538788243675962121234785748047716325135264458044956832449730144291414331829535865694223039292217091048162786253573302641790417912074191197927098162632310274009685969838986593487300451666738085890116578959934348656929188465940638462065723342537119737721133762087061674931617985077272558080648211891801838739821191706956741240226347185678828325208072743877726741407265787694164319708154235866170310229076143628177942814392655937792631377262064613787255113908835343342328518909232503473921725839688716124755729654241585875204833337053700987358169616153072307456576867852476148337360854948938606214058886673752141150750218911660213880211704928790200165257400942431024884713232719315479855823186204260263703948750843272002748666059568408469509453404223612267268117148219113773773676798210895616408574280572613280430181294118945521916940940169684407557229970439603532594422784054730024113676158039969658114203536292851455727680396914142138897952998704315841356459481109534785863451664898360187001578244360054551250932438275567688429590208767966463967887958422607103668967854147049519566234700738118676090065033996305770514241709651464303795372374790692193615440789845803705278257662604819937348452647030469365803286901009043159798738562130395331961874183250213678282054779009925958259224719079610731614241009615517583093512385377478571444503083477965396449820745480861637264900614104636527208469303842462841671672371667036914693017024780389987181482783854693597428087014402498776049187877842627558508022066512115744491406243779062165418906403816298073625715985264123841589709699206756472420164497968017898510229548143641116490385558053383896515382244975814280991339053674619651001781278505923482237327191407376119183950312215988004830469925922291923478824231606293430109832658462800280754348982104156143205603774904436410513652980779747725809210411462805070684399276749138528226960348653477149892846479980726061797322576944715154292897838121870605294532769500491615033217506463013993746097630315141603943923452116350080447760923556836859999759615299467066165593846450398998195062508207888446928577225290902479227468797083071368938486404350208193702357228803655869607225351457227700790343523749381293767223359778995001446776498610269061315148383157040746501807761970437780947805221351701765109599541550738261869392059930737443978639940055325353866075759748914652057526444564403688132328502637437883329315229874490394320820143572365243168165172927081768624260550454985088265006499058561866252528629941787797746041115122928924690472765687577726584973755254478575927655699760624897989588954761143675217811142396382290669898259997489025569437401567190446165614779714417221240784141463033005104892936438559242672994143165992715808345148965266064030513409369055957995588122504837162895354897438294126391300498689134892046576217721031784581098740730112805233872389230121319464023761185177650628053910094841359515581082063677711097300983345204416266014689007473822778986447993025322507245507344921259432157313073169504764461529085424068605991773632788674500968667476850417824316681570961678465171134982130958138285198486421166736876701895591597640409957007731594117472727581503749578232031894876820060229873815415280003011323838233776840057853820313939413199997526635832789372775449583267549330692904245877787089808499900291671453393573757099403206997226201773905647281495353504713216150904522204272754077570777059441426183654164079443967837357235946722951858767029530432894417848976240541044929573689976070020060002058512768821009568064584664337892458085482846721213833712983847057163727713814688300432696123378947323431954542498535320860111324134726057508981682419254662923910536640730006111668802611079919161832363787513123284800223438342245574643502921272982429198543813943478236237881136203937748703217613630967166671289947223589033392526763045645134893782115601596038921014371282668163429014798333505295076253112875850325018040355385962215365381185900265516017455223716294524647130480207526447401719675782717694881383154452126647213333059483249413521290742986494510423376012576607436038387870785186263645177395863401406906013410450868151449827404651586952336154032022549471889836228707613559770264941308636984564215019396294122850773767206060715096333544248838846134710869726183727269796215904439942793294599842639571257746182129883414976684945682389194333959640835392234569338096390297634666739249538157943797868240132344433406859399023816844993111901895496232854775653632966614010197682208973081455600149906799108679849037546655466332614413720346213187211663774611498427637772729438244709586637089154464660004360439882580472954178153546667166310705540841536911378838185145440146784216901933827339863874158688145682578400602713619084303114464224327692965373845202596493960397422009550465595884172210918894163306415625630248252924266695076091694395669941359760333307938895025237085493379862344004215949874745882071499389949929283872417193077219290323981392882505258467429412577712070898353291841251609912017907305451135513907614607601417929640660138505883733743441659119194002175278255271954181295102083586274336030914293305287494000912723137381889411599489487300782875866353122953839388563054754105475776715256094778440806588488618552140803172576117190405627394948961844495829427770818058749879432215363186731372377738190378429066673831520243053294707755483738391447941572936846462166894830898780677118535043827558267273306377545960975701237994687127314987973789373446984488692018156131082552039257393877277300889092716487776504536085258699085452623925805704741306832171340476812917137630503869688322958872305431324032437592815813948907803717184940636371490184786719104199767413681412417439073497508259425991275536580335857919259836475300705740931683283282753531753970371284686547303462940304367928954294431023134410740099962705688230907132827481979332155802269725751812694493915624449785332852599064839639563862362569089929765473487243056583742630983095489908696745203140408329726837727405527004680823327136593088728801707524815550420761150556988320248015829660396299123122378349955260795987646632739067860481607696903762979031026225362800445568683210440912322087010528192488425727850353082058167392334575994896679470377979318059905139849513724896774500386259213355504591929432995345981267968029017487935308715471113326234365321929793358280562785015280337637943754616994910164466690114793208115241676624277525333463478978224948443860443224602688922964197655284277488198080723389182428164720869774209754068875506534269738553437351184495738273941466940367058357580830392574143008199183132231331827398849493667558126548829353993238136922473802386573164947616332848595642845479038822536783668373687948133388387896106302466716844549958296672044109597203585387649888467437692788604452429916876995595790472457340807546818273881406332066591940546448065152561777121861094963242715512178692159989830239783625601167049951706759379029977783905596371958243371921370681220225162205948247457201131907962077545902180605734504619105262184786194323021149953283433408285010138863735371238517236754294294462326291595088365050942460713364903198583244537392265787717145100082139131832417680259235781064789276183803936453118271733466012164280879014251647141668319757953716213975956978977917215961271586130439704389770154406605328628231492412438315387628376039402780891932223576127996869780421905907252264609978001216782531502796388162923762465069506231525256035448532940576842520960408878386430382647624512179561836390547918079002984000157290144780664667010994158718457512231206241067212154905574743125012557871357811404693755281687787095666015150463805264899263471297984774849265332806204411282258373461857920623368025585508645525451773529354700870130949248172652666745620469997081609179315643217814512939073366943990677743194658036322836382946373036566407184326387746888252129266206943045456916204109276584873956490723158873546528918364532698785467693918193391262732510419682961391829979441138802770312830093182023428784394684520599547065828159185261146900609218001885776556194333949694008559160835777845385720293863094816961640119846665857242777154932183581248565520534919382648377799063877441524455411444324386604704758723430328098116181373224856688341429935611818733612122808903226094451327299394984650015220922958430617691623931159820368695470039166163330699454305630920824661054613192763679561480439529756121035150332136225335152575780248963925749475078953030023726314235502365634754704146350663453805401524921711273787191850138121082013763853077993656501331205411494482179407861746917837269455970950215064211574392920902561970647105196465035434429122327928945983297639526246083752148239801309200621713609159909187479631888142504206389599200436114780073086007285212716544324236680661746981527086458554280085076912186389868488358320494641727393799750363421572118417234296251936086294156709000480462947121675035469822908806315707622330789834982858007922914876258846748168380356731397849712736503008458580672180319805700744186548271884152900141459603315089633414039473491605692767542192870157681135326143500807399808135962180859940929726551619696615271848693064658119476175382826986279274652543898130884218389034945924876638324240855641817441633392040423700815234952265213653704981484241128438205122919912677301998475391067291224839423121079678195169421200761918283318205165405758899008073394571800844012241052005843486131535829767154484001726233940740411522204118609016811893599863319853358293339892735846872210237194055228514187332606517037156633174299962785442288807216583023332178174223559564576557870181128518888236240375965608469293941162326563989174531536865072216052463005614443444805866631784995405541027111996251632225713632276662098852448002124252645589430137693128539560935172635896841193882352590290214396691504257963935198112815654189437042582731114670365943036021112702527110268467991487168276523603466065565541129049425330474064880254540308865914724378917208376141312541415493716979450785618161953163760863292901106815956704558289547078260921286669003723445027660737349806425932857334780834502514851180748100506245632080675724316087514791908179795933811987048607284146630272843714248594336016037798851149644193567415087379671952933946175310750008335590589182986293203515747006207169826308273415844370172322657633764233866358448846400558388796621155756088614139037649431633531692989304586572777902001723491439494105302073468206872694411894808117434257579613758765755517555568931776499529410596958009403940678411429078549434597663075623246886869333487154406530668613018264203388453721661740863601515701338545112067813041210664653818239590134611639761598516630087135318676729242729884005128605998576783978173343168692038595726206796107532298116929644836460380870716371504323558986649711768206143084834514018795009148573583194289782382014498024208982888810612438607222959333066337980960479564724308708879109713630269613748398429281210119641325280638398352310964473850188259303566726725167419959406560600440602888572822030992848654291119651997694112164573811859927059974783504387590220279831765997051730336330024338422803826258215914361788922693268183990843110256655516801804349405303983082071208905384573954296146877689214741650661542011033954655653000612508688845991348099790402114001423063715303737135263466929402807294462258691228942423489879285535223113175872306359452325305180179480111327177589081626678947590986513177201426800751929487655763501234599010766578218499454262824503760681507750874684823908216200733829845630992315327173477217412589322878969460618043109931641627419203239293498406848954845592808512193717782910240558482175739750398888563233423996560664486915639553446440469320667678390919615973706391316770351311642383378282870483343098144891367931583329698512634031634404240421602759992203919602741939923521969679735951724639308628678200478690615927334734258612910123782830560094091166356111463248934102420461613462856358737621967648322354614447459018569678643006550334857793352289982708270467968266973191460006628355266738256174887883382669215135114124180222458891218960620255513591193080992170796277220947938584377513310679152892021082159495197731660387504037769249074325235306870882511220137216887802374812310912152694265628798907169695148666343937596924741625332379308814222701347109536381113546122474641479146239327411607778028210264847224584016939903750166193455080999247350805531454337597379549249460542031045222114230399345561890830196501125489142148935980632529448960495845399369604751857891959178389402709931532390363223161001206518477625216703552741400607216903263441144959449204743318396133760812318429019638552068047401091404621534929930690438224306736370020683864288602728592427346109900605348437263724734513350851778004820826715513346051903437645329839906820460377075184301005131787151082024065953211228703007451996893813140602171019206138729095828575655071932901480497753416608506724873787907610598612408056536499067204259526104224406618172714437636556587176399809257742349693273468663880959565741311489862343612667069047368625032820103655077512065881709781671959004768062930148095205595522868789339824943367271752248944120677108805530345134154689191401746396081341931698186067663557391803120239095095409315986085057715245037716049689672815580863899741529827168836552336614234771293316198801942384205123022775882015739975003396914963667568633922659385663411462236366251168449996406416486218908980031684476613952179453427544576865715331326755436750932221734981784948056675283007384545341355154318910426670165910712026985273216132116610554498376963561095638219226893643842291845785931675145791464593877007983464647880957791427057856999971315532898705906645589455035263217567236261873698983413557572149812875940893707204636256266049142284635511743391086242888214940081460049441900470853941903571107183553266344697840479087174507624676207997972030752557126255922610627494914459878761802926121068626396773156549911899781045664397601836393704013148132038422593081452934439082144271896444620383573402298024021981964413075965963250945157637690832654979248673635813564422623693100576099715119724752177230609841145303999694605191593872003772095196437749063990572947897243686143218127512239643668590148870323380094459968939630593604818445536094103322739326980444312228255407313462292464870048567414378379966729366348584185283248599720708476059553616443134945351554657320697409453760762430755640652597914039219479607480136763464618594593733303214685365977233976382144826768704373073669855252419775103139894576122508607101123938191349065806521528900455723785053966668865885666208618401142546121982411608849370197364357388515726919545633609214640536071184288223530494413251789454756085431038321971871363906970182457283308896323813947245840014697128033009931149646665518225240704520219482964684480902516072234672017325025001700140196447693724305873419410676996687322855592073337932543571342859706680569695986803511240674637564904189561770873223625239053270562594712404296070623710949756484308992077334294026371415988508275412080206551131922809674547206075926422465533277519260775094286736656849092881859321917528185970300996745496177077029149647994107810725859096703884548998315607588662673217873863423079322618025330521840836927455528273930568346801980800849553978085240112421812942744900727052741639856112924688362573572774919628049864445137913342577795725447192879539590064318242673379580682353645961393118917629026432298250059455796973602453064671627480994028006770198170474307830236285529352685392529287885663953507817480650734751068268414567266019198935521334518773565445806498071567249675037365149677071472584913523858358829426722518041603049586968305879425246527340197439748139067426849031545301742823399063813431419603523033157848300824168458047188718542613862594206372703422616937551536860038785379590908745240456989641387486801407872513248596061574379673419533969163263799351739411227804067073318813083336879099576493743947681134706632342067516309996622207402187198240693224275117686160969688767956091979025312663818597224929607588237189222675406085558824802367946595305897454594901803509790722689496361676485798607442031911993872707863425981567181182673621992573126893980660940261640555024016445935317509394124315582814168693101643463096094308515342559862913059531456172046859403506160747114103374729003227843983248050633917035689427450259172369200777200845538126059591703168418215585821923497236346264803177947741205585890756063889060282962096434398033758779349645260894428727111705130013961318117689245888655943797379460657751236365813631120986812509412860257942143308633569764852326523218516525033881794607630396873000469564153501015923374893010364044289399455661865738548500351776580822403939547549227325367856061075335463022648726467015460972786668974471238989247479175273564721349939470224578324898112748669097191789547883667561581131321591502828552494341386230765901999989473477384307539426820750592702956456921045634324510489871951924065284352482997264367099835827415805649171270683365048033174168224926737247518146250471249720284436884805321482065179327653240368266143299019529544017247992478582244894372226371017208133773116410802671112392601093306264387148740012094079436668251173451322012398056319118149744272658679636463580762670484140072892027766932063305894667936931446901728696431999922485995085723717676273229525303265735110568271055414817099124972471900188703024210516671919115716224695637235873456437152055593474233853865256735746219428301623054005547882302982185037295592665691086111428171184525420220102187246329086778609697334106842134368097112606612604742206736782310231406456851549372644646612951515768432577240765872479721939736883105396080402311261539522087882150531054259391103925562232363848720268765997673513997384383111924311592911390325538194191934784129596641876936094922396019253368997514432525477943040066689661149884286988886828606098837435132439464924816583046040180979398291329808174981496509288720492203756191336682215894557751202506203434481283704117671703998519849413929062489668874787535857629091706833662338112257177138356786077137831041474282846453928522610551053619269646920066153651989006177603963500334782874921252455883391660575661452388391031113875458109959318860557533546521987072488257248670506545268598325076644013262552053269317415601352068760684331446550515469016828651543139218089371941270991964033799330932025854240959324072289636460400821395721051926562670302165099470350316898443661302950046874523133482496536674641311582576753735153503209171988002492245375691620495695243230792505319139427548040527176532154998595634016485361740138949417563899701848217664112947217601009851809842331917567947598117114498970396972585288733576634669450941648631760155433404861206093460854607975649773483166024504323040905322149155204510600476526234160519058138552929789465202415617200653853575817060441143197983856531408586087580401256783784079958448201844221381508922517438263224721805325487519588215292045584664739955405968737108120832628194281822904789317810333027830093075973197749489308611002149474197240823530710140242465279523291095065760950996302606070177235137678132923698372583565087077663481949373151121647903019052819813878354645819328899482141982648651935546399858632863021859319022198041817038504970929149068658618825861625085509786112083840376600742661837292567738158714938997450975402688411473635481145328214025855637426772776954949286914673151539101726744770103884716637305406714139929615509869212374488556123351097219692379148119595611185261861377284469555970090624832854941379155182117802482972699340733099760119966706759336669095421806448923606558971061456199878153884038846144906037626099089705087590284125899103675624370438382775297744747645433203015830473133733762748401313818910551658338471394981448992928265974097885205306577445509922958311825805586553412561067792414105071525021083201230379640676829271481156368557378157556148390867825620093146301807336875365131376407866364724778949400671098934701349935962228393158526436365391612489424768751065660758651563703911269430598318896255164223802122487984414912205635143539319713492035054906864224001062333781146748447342359623224926638895411609555951477645502173838175729116973778735113718657221492706463925708669195699992508937722228090200246122285783846126507388278772558363103024092875867390989803441957788548604114484007984874901497887167847488277903344937018596276272309981894198674808214564040785278077540184186153811912864573393644849777102796548212750073337528930261507200252802353859962633481016995824549994882052078286096996873623455474690762482103650858905795548712187300623859624458441866337251901708991382374333800228257274002178392414809224923927250824719474559840103343020763109669059510067365810594661283394294702805840451907651517202370220918383396593182429632870202883573066093992210840960114515930781734547718875235001432764168907930421580553107825702417225562866274164644894044570480550914287736647133656444923456901222600754553169889501816449762130274510981953555585719870839071761670725417584208752878224165449057429055957683067371450628302636127015319081822182885388888618998370916237918120439910605440358638577488007131642364596177401031060475022661326781871734119008520249076053240659291463251279814995755846210388811723309555441572559987759000008269585100441826552081334545136906224932306522369550261399090386287632743192579081267619353975563367570812844597249765029716195350175855738871434434908146830197303569241576458196799855782289240544359055565098423865518876477638479826430412003470492786484959948888643916264414857345249201950904248780836620344759619066163086402882034825349542631527565842082195754424748571793617711962819531386185364795813020062093186600957171857740210771892613520755144439640470928977119851276195670603286548226266088676073155037505019148059687827428130850449678414218629728260275417982314255819112285794088548933802584667392580612226445683678485520405550139069009604160466642773544842487490326312444908422702457910905054607269174895675640370240818878116608274290164769900009660579213221454803180268166557085401402025219607992087496253593425197556968710997402061152374022796920206764449620094096741844558357707523527339295825535336853863724657308648402973593434544446149166440003863541094014391180425502208759485824396206089407719882831782932439202584981486455773881733447709178924422345207211967302560558774827174100805713158689973201252646135669102600593678960924110886920780779382043445347344864902572386020887390004723656024603674845215176434475032837582289465254710003224921270034850117985214923771947636049068475652314220399615444453491329058352879473320039312112206403033133427704947360101462100176303043462479004735946722825846060323598754983028329244923166859482341926443117793487069865459951900814960852455594881264702571148111633687561192812466149834571201513049707261250106545250117368866018701584477169724300464939047764108024782782201925431199378952647371840205686269918267107125931556838975317940898019500341906782502208157390347996816503933785153292644575651714006196915828473518041257919215569128046946624367552141657135310753489007087798224349257498135736242053369541967200212673256867045577849549601495411737731491619072339764194564222305011806481873018404309524224473026011467777087939305226740437919969805830605827168800313836180812769062282446936472037934086901150253215393823888895806362817968742744961382810306479811690659300034211596905320790173307515551507988967272566418024825975315101485030276915067366655943506088426463720258736959389445452791162893822102159266895795069167403354648838804763053837883486090720786675971836600972190648251826110862456817311238118251209176468046546837857831789799391685515852502321816874535365733781034521989444492806220561201982434178294282141931165155247456075777061425919574911067457560744828530718861282724380120072142219497976267089768245748931534692123040336720888939416836398341001848955478357866710623633209326030688515902490099643461307172729337565776466926569834549300540224278159128612724216200243251920542667362760940532417757621377933459058859907798393354251019014115386134997546245875162634841064284415986832644477012141885687419114061005646940971906910691107391484488301496488733659249100624758382666851520276435751719585125248814543391707352735990226835336698476841051148904303939441977345716036875757279288381129240702179800019892328635402183010374709846735329491665889854845521254957564149959489179746907123176472298545063028620413260058525300588187063409798454992176131163890373791371803579865638267062712254469537581879197833074621388613354150239225462131532809889692930892221110538859915633270222609294938811717655502217910819676116971524181139891490978180766811883202329085074551595005226888160439999395675597187189606133312923908166159978489368771899060548787627035188090664888589916850769330716498283572788752617391487693258555540247313862706427144461938401676449214488980598635907068297053969595374376466691595028843080948196032793775784418096046846275429551064305088724766667813355230759602234131762027563019622833580859220829954682235826039944866425386081473237994615600445719214705729616600590845083911398437216234227513175700402038532180316644244004985366972928347798853860828071413620010617479014472465372010211846614826986066371797312223449767133731694747194167373703002002412765229926675813281049885387230347567258416599074398188276259910821406762254514956767468224422411672397527288720739917231462811475239508590743735280553709659462053253425788974170669153122066983318035047003663036964466227918753023565569267757261247057817330087702799009629677460565228052098129967856274718464457269244799935335942775809038567896965522112712096734657129225570351702301117498149561611025293994801675875246764788007553067397784720636054432484415959020979328709772485204229672685886105978393441170716257090280939277773394379967434485553411359798974470888871916115474491339881900906411506210232021397068188757417933309176360621789608459509085098373731097405437050711722988536978173613489011111346622542036875013612130430271721618779040902531298978696677041295634790210602815276319868478962495259390621278260881821430176429082853309009763125169271621099064999822573885166668263893478549479368855404663117028959251079164440991378178571009778941528201349714007572545282723256801105013671136309035776233598239316976143862314638389734101438933531399271606376471263077610485846090291965978637080264604489273153288592571534661356290448730064442936927334350797678265334919156058543355101367094563198893940820961116674840686785910611689748238404670613740085637962212395745454284168627432217892751148360912185391322360277376854589562905028803821900421704506429195957109405302261564696474469010326638903605566233414171409232773737546642637037932932835826545208752110972411739432562258847756908254869779740738873836683341449399391695398462448154679854004293116929251074040624610773436440655824568801777500242969788464962023052084719725987263284781308287598916821049837480296784939164172465627879251785032657690775342059658828927379405434240463466695789656146229329956430029456568579363950144966836990508692869853119777202811271318753210667096048347077359637189835235125166721979587914558843431802225683043488827700418069177432818350139633924282555670559869612849216910408984082822815914396544220994359665645973671217984246586895547489023016124758244135816313973125434584039908088949870374792783241192477970994554681401107257725336835512414404604589470517338402455157244364162130909532051663423315221512540471366037097793991471612274244486198768634267441601690589102443637313549549532022532108053600773617609357146615158707759864904741338145668754642352613463404532448333926435599192552832135040122433137705004308169408811627917439601234879275487279493615661400188957826562132835750274471070280529178364636250079744266128350232938058114033305052599152888044329936722781042072848008485423808105871761034521678408057602290015078788256078317763043889412726803732513185602764939271872332290229415283419047428455352794831611868000986363697564231037652266097434615142880624978704932433710432518104022056198001264744697450384305248266639983826005168165312389614477552626982932394320479334488310578139559281512942797461483956394144694450909700894984675078068927004624153887653648423309412180894815412573313278262050173426892128416527518401709533875672048545809836022282561367591551301783055996334551636285386945090314394792417488247536930397919558061557365751029994344271934294585846933814649970164182964753929338199916208124050025843186941418868961912927474503829005752477629826708833763792040758698597128980614363496650803833243513647337174223166017540522919428938505672630165834711432306719593931712289237512230345459169700951879046085877168558807690145455281328044659849566190085956644435221666050922789143812698828839985985617060664615789113157341302501091297022534049697866118427605054391842224992057157480754895844247331032829458826874744934328788350203202407286723541896469206565613674114503357865966199710780939746036665227227044873540387962156718246808058673227697098611457510456462534113723848839161579450886061149526452225922493747014796584632508196839648361538038561319931372190182919975776870420199960306213152804526930067478955708414404120360679894361590268011422177851986165829673868362181572159538343640033093240074923475003526446024576680577814062439504056021765837607120966731592562042311893456748230274916882118277174953925375405923519797188982229806555641218578291044277439685784954434007064579209414875924107380197265200832270733215422636277197430758445511972492513722818564443767074990280787442653859165922896664405943291228945364293862856504695190167155344937466496588411258857020028791563743400221727284359785960231574318842813127069900868839743434788211689975275040687545806701406338609266478982852965360826436495511179821683666597359052528621781072114602134013738445332233770578250351556759062709613926558761863918194291991203363082026907407855491347639315057561632823023390038272842798660221210828362176175643780361430687388497177294641391735809159815120062463946613273127104348867580590130088782860707695711040864402147462985750924537462982574481305851768421790373756650279383870010890848926443620126295349196501803258824121638656605036201807586154851516945831786147134026166210327880526086072078321512353928513385539341244464515266464566140227322029836221933158416528803803801511276127996279000976044240646601713496172141978720913025670697293275214639010623701964624998028919219574178673875038674984898770648142850212693936846365693842220844270858093406832586177920127711429517053916316152595237560328788820486947018565150364972210307389581995888851457533326383427426496113576127301153771265830628095979658032951505203309556200831926687057745583666165407769762155790738266016975708128362113586546453364901732532963891620128670459531736398620890417850899874167174617561041792327252507301933226489707294508791131392989198474156789344497871488458504653630050082229135789319181496628462194857251969744772213009995896304801478182613916512832288913115262451574185534686980287773830200635253890618744317681825959060266734263898397884924490748454837184595622677709832419337370443452018039647094622750921835633084526770234984423095220501393222304036009259324340371977664047828061002638595522252408021209755262395340973853527641242461210548453269751139053999927125116388959309137441549332136368914679484126935470480921323797639962289580880510050391134414808661324786610643143205381785608400648824822260322976320685740117103164370326484683254487547759452796194901675386874599690136932891292207428371087595201112144671442324327869324487871694202255548545522287387621802468745755996441313622659353572667029453840895934801020141534850932203879091186241294392639899466894325791882522459681874323260660171767091972468151667565319288410774044344309059635431013452709505265211863528818289630339924511857480997280424401256391462569593479222279898838037813632322661938881798192894924562905074309208145048218397166051023779269867184640706887758427404137751276226893053426487770026042112955735723447457224174994606275896263682336136591751088417627583286851532708245631632865057884758511560785987205694600328456443893551688577196491151481435672170034715432255902703594548007941167504264768344932066454515591786598202138070523078226793906425554795588309080246678388977892396997205059586824333676616887334155514229722072455584384168886744370121610527675544604250080324736000966775067959007445040940547063783795612238306984593111616062252842659424206111310197549781172242118076274369138014015200020525705541297883079463479354472183120563032406840389614625767297717671524192016861536047576309187454365768681961837427130923082125496541402667402027545065395787940264580451228808531402169565008582062173081581250096069110626458252178923365257746775869723904286356117414981713356296028760438320867314732824582137440526679024922512673424371653239218106429471350676464830667823352922837115409506341082024858714045120089478776061054579265390173394686167688649535601933094082965467646249320174999203980142168550998383082717633884424330154574246359447345900695120834620846739230205571145272672558351180306545116327712952257962569971682302984926501014302639375088955405069391400273798487150937629082056573587649659618181558734002306854659796226917182086131302011485703012944144433011919181529507699895042057012228153064753276448906791082463646945894477459014431413750960502939792345864029399376324211079732219491065714916569050154612376968527046860073328048430784445872897584020387233455723473412315580324366848839679685449475219656193974046826373564211661897951506785386781918572497080163039846662014056236130998588692639744541693295907004086127811966584649985414619571967849205631327866157584712039401835223225846790982379627914052496979234748699838811849856471275607822232713495581926424002298107540865861253879488674244595105249285716234386554108413601645905893249805804560057779089670346349490239572133128449249161371904088884415765786959749645748095720816835556872945496944499234178736244454006702811369883416121386067367445948144648099049905834289319057698205847855303913978558780458731259188787547748950114576103977504080501042717064235650328818557387869212017830674162583932268134789323857932077281467597617399078061213125641923000912574684707497469174806424695769144239654837698361693181814673304696870029813070284154910011187301079180788037938128268430276162734814793831670749457829853182400165881082805464225097317196474091528432407221834978164956772282199842713943683082273015883897718927066834243636185170243244745983435677687597136069040570235272500925008528683229564570984745122658194982811557330189461209811578656457083209606327052849750012700362725086792523636164972338292277274642862306032057530394368525744147918517875004524618120828866552595726714235739415273013166693235894617229842242448216662007320937630511909086914951799383770394261310629267835610451771749826457773921016991443324461712333246443894780287255751052252055018013132585097895945502157464668251793150801107636404710464622603720131684722019925466065232488445661356383327554871878295229399797498750124840488408945784458784943404702773107615598260693904943208788934628813260865120792772127775060650018944254005520517864242757476533891208659772357094182111973423928391509316766875626154015114650967272426887001051669997084213316310499961830410936514532751952294714794612769627122512770841621004044090237357300933374949244383104348543417929215414171947604615667109434222994177559163951896155123807383633045095728888344525551898003182271368103473393544869030930026906783784453719746920198397552264379766902840797919928179271960182255140421317165134265627509617780788445670367588614232242565110571182781528488723230914004895028953333038639957099953055229793131167936095251373857690986424784844061502697304502292366537847928346405837215477016963603775621874953581174473846399336573534654564665636194361064608812432976733623085312537901655354888934481146140156834925671630362759593187469541646731809823135282172904000788233451368907154923487714072609545515367288714737110164591750256842544096318172413912019634634764471818876579675940856577854053666499077779544736040741953667291500425875281071850961828410531464550198885097670694370381797029360581338516581401628080216369434211990632883976016094205853264614124406553216177646872479605086521568806755634514503145071801677853128608186121629449562367358177468891425726038792129823614860366043565269465683914068740430642190180424356356887636442344760837825945526515808420893277455399369613104912745744235085491904141724211086705857312135663034062337369752368932675023581138000406479686228158721999454422707993227090891212218467655973241879521968874950379381624894305282247529608982564543314139587916330006824987573262849756330983480633542644474015800677401122502141886735781729985105583103744887389972870960827804707951602809297591638613180672911489698120111951162446482700757699245322776673041443899185023749487973765114606239987340591525505045633139631113775601984612588296356270224845423869217577377877797109073469993313962711420008341220796233900603027590660488345100384818677076361026889588434680179027419213131719020105626247691478455023611891279701959186914433871592128884329180780585897600361575675488163822553835700795748851869080560751588332868601489550220478971788588720524098475879967575600886045757022949364168982888398204414330803460989293899347001834173316695462935230278070376479203710975314235548271502867828556113247449649979807525159265740172206497149148949361441045241681959599546272934030961158302019686176231052445464177318435364455895349848321952930751597483228924806770864578494919946898751943012414659398795641698619742586471510522140833540981563974093369245880409208398966155035147512982448316463789364434765064363475337501189858559626774962489705753626898926246311631950028177122516365294851095478899597057668532448224207266955786023042151391319283285805150320684594454115647415238902144630034307218481205058712831112444620901776051015252087326156621428052491583114983451618302792025428690829324156121984445001432257198570035393650914371219008416489977288361880786963320389687305114412067962815190986857829442163744615121372450346178553829123628377446692980429863114067333572310464742937371521573253869450665670445321326076682890526189287897657984741858950798181722101816898626453760299912612461768634562406336239702995059269882735295075543609000376050164602833070392412043340316359745589415079353715508735028057972502297140282807047419735641788785192103588204949810872848348829469662888510023388418069586715721160531888973991056687496834865283046873902275332231658503244733095563163084866248210875827274088366228120558399154283641721035189698473828017130992122307324915557838503543225963692211344417839437796740039371608516589790939156425699922892201051327115844930532699878019458963174890015030259290099561530217021123762625261017741465480380205597844194357275790796874707433972642468932279338891078751017843309206538399651457035927521516565181705520548317772503556064037032352532108292553413914936724975590732541060205059927207249084493742483405792641833262624468752452442560748830870022457119401583063275031119772549817961879181014461141100723147601007875374644753995427814872483245232129193448226010310671311244043633737748032559325697678446891025321489657829728316792961466361881850165659078879953767073029981352812172285566257117873006174666379977577658398505920061560408067543154740578370188664246243901968869359533060754467304415456462096751644442422910478134976992747202765050966326334191587265338448946726910895301400639032636705803549494633923003327399670338059389772746451165539540590850486433830824094302456393773067315863179904072451547807315924461147847830713833402886459726953032458645818216081195082705990279231112218567643755852155859648628673148139314304422796851241206887309914165326086906718231894499648338330733610364983501422728520043069287069164237462934272003308347049122114580299843933979234439616957602732936457606702562232196548580421398228642235240865646178014820608175293397943212523261140690220538634827553685252133866615042626953102051067478220159024898128213700717627273750026400794151207578172117014388495364546824936032553511792569654620569871415780785418662890351551570978548882469039035881714266192857898042486400885689062116171630431678331220981076122556140407859467020467856971828628875070692683147065919893072138209707197497468277715561967270037884833671013804458410290223748375605596541476301317662437678996171906010501019068291181835987032538641370218295832293527073810003184215426580212335054845506123319121969717900043485747862333417319120456634275448925591522769903740776403863086322733285357773129475959930262320249537175521978714955193993230183215376858851393854074857932566883839156604087968876932085351979464238826724043437025685013863361559828065217093937740840197451684988940858047450838144831431187898689558550195358345628047665625025341401614052883641234297081389999858084327589826721174276947505992260742062625792516958488851932658750497877451647673970304960267750376607368207578507625373463368907362272993058030363826003985639994452226168303263440495506767986364911608939053393767790380474650566190494435822897080974309536140339818738459275714221032303784469713360899587289085518926231483246087150897537932243133664869597770776671357029393792565258808731847976397831012690347984971203203357274516751005973882474383670312504817168921483429662607042496509821772366348910777239287878756827050589728676174955267939415917008697250254039773748797789100741166087153550852528605925349833401032682772205980135439998590788977442126690099064505633535504282114896189149935138035330961264613850261032373716653158035435074027757877465203871478940540773592432109996548864292207770267864266793581382067487687225560841360443779735290818091012894198466638705604877827500011945219702318586955780960162747840427812847493199358682761324890997157224401365355831828700815509445723511695134278226777322967185245984415588442567585575861510836508267358948208012535624973516960634032251085816614717926341747934223407734069857922594386737875684632322305865780656318349331135614280957513556167840988569007517702888264594277820625684294895923638231015192837101833021846023460382126994334207502922758163053981738154585471221535133940280284407689281997711220426359938448196443967808107808192364012721954645944035827568630372145442940045618995004330277070499160992039120817819432720364093734682242132679039634730957107878067194663662082966465921510246148790583108037981473229074268292943669631527100561630315618117919352268679971649682321468046229632293906176432350349334610237323167955926471642626416898442315547285469557700149995400490882874136671877567311372097581779277549162878326744806825645994615996491001525888435680058208860221932224044767680342936736215410741163461723576006600430485630708977411424170270793004745221784303367480357776516401419161346133871062010320601870028746093556819786362521851753390372962355491060302315892690242288491668364718302406285613000351571433850367685843492306634043357157991772102474533530440745418716267907358657385200060948655191424097333389905003737738088778303959229392916050103539075909514974100133640110924149409409912841093000219297985583902071686895089415938533673759203621272417355425562042807702520775052749224741754685125486024635593644625455881434004933838178539072680553230741455440685055972999108290828205232579403903206230619340194938337735318721080166083936165582487807495393389514016588326888640200903063532914499437030011319327812813107779937495748874290084158535366652314054288371844702180523678859473998635592920486042201078925222355840997087243269183734820419775453975309641250029620963516551524532818999864265719474348033363141062197363080991956784349138191433255122654730391453893415631513330145410136177204435131723827973012820443344093576962909921406259143291060239237465529821432127807474802638537934055082017899827912810719741498025937675756893325340948116775236348572941661724394310278230064509021916764481271874749636056554942932010719970604116178997953052770739369427576439418040656678503310947887371229142901467752789168608730678328925599303537078537722122420695462317370800583620135358573414580531227354059582031218636692465990114639911835738786105044937786984698173197273131666864821098942279309055809376463623940675730406258457896578357457060761057079800866007308434938609377772956271175170317453128672670780392549411500348496442998427448066524220134116872581069393164220808793094275387282278859430985790015045986249110161741396219879271151414414038399758548390900353324400510480786629618050668796703387443279128404507293262460732160042691696623464830826623277457411706300136505767472895413232664452632528340085880441471416636247504310290939045474757668957676287481164885697498128050409915648726894598777474133563423876587606302503276891412372964678231792633078879490556425356681732202535691150396788693703666754431795238150634304294005138205405957893067596256445555638225438778374384535687687403559682369567659591626429358982096660445470025609099040215308048735782926817899624188573777519942714939196728134039959385391354849187132711527390831471586899456215604692364872982806147376822044109800253647714419985912897250331537063788609082877506720232119465234727441947203396580386499407526021390127630584357247911771535485258206322888955771842643385894819443726709034465104383686177581456956452089968267905299081274673256463796315616495378948203969629786490146988917446140737578469055101941745226092198486607909426732791087363771438841272911967685738549053325020781106933903639557546488110111751229674214226637833627375381525395617537245230976098883679812089031493556275422009684620410144255333997284220022883078609004660787944622425677862770377288196804596524932583017307564043869674575622358278012859313511232991931583383202268815900973977199133549725506934185299975974358619085571229645156114740115441652870901698788992925720115255102797222200606342775209686891493008194000031842552164287947457035042707404225960437799963797084256400042137345421584519976399380891562275348066389378033720450450076126027585419035498835455375367267162674921722937996114023421416135604795721961087604466924764460019307809065289975767678292640398352298993145227630311392590290920086665120642063925357421715931418681664273103328963689495152111432865635274866503154391904800646495566952842640919723035273474354549188147912923396767201987582006277940023343853088439228762097495326710114992549994444128542141943047005287735019976264713699769339866090885748245472535650556350068297198227527337764389968705793266912943368555490997278840460418177272183622951819283943371818477797705715999878785631574130916206018933365785951542023458114060199215558004359545537209194732541208865811881064962026657256668839813655996786073386400405788266458482732476764406825559119868364388570237592524119418906887764983696488846526410489188600766328569733732906701414977558684612209569040294678931782168062679317430604360923625519385910084847852927942791364070636775403600546890535307393100366424662658099855585818713422774138482039191402784378279275943120957401125095250106432455049948173443617315894511154139644238945640709005348082414139346571065401361006244683682663944823714491536781272039231610969475439582679021609415937856877401958948094102981964748404891353834368745264801261869650669756286830100114987576752070638826843576927316056801760065860630213909778206236695694160703934656933566575977519318448776792674451067451758883288682757209917883672486274647372638087490584011444040673937075711568188858825929648706516934415625791998373343007536599573414755089412258016892684562820776136602361743389709059251518357955107795126283939629301797907072397077408938802301793139016442601814118569085828131716886488287579314506689932984767300167052607619424148100306259428458497597674007124288678776253289154658179685288500431727473873590832392264697872107341246039151049217941467798309895778302842869445870822281606712953696691291981645019434738675187114368892841537543923733629167373489402070958796153466595244201886285796609177797474834460621447239888454204486572827445982464711448106065488118286601565200882062585482520151327088693462153497136663313660638018545783671031275606988370833837916306664276180193683293664548197130920899869791742868746497251716186583877111400785999614300876131925629706536500114137668479059865124475794377720191053785101876554379981456603528493753789125352995544664825311775497161091302873547998070424082114108764758130034092175232870889519446420217394859473444389857697090039577250666256837766777311591341566053749499142841968015968008375261046689192096801574825161037738607623369873084740931652767470989028958006078301658399478342865610029315123546546607583576089250772869601701469505593058790256411804726659075885289602581092721723586929215491672171124603301698605760582849803684233391604874364392765757173975551998956987953933725217085947585514655855622718792385751574067606234769434426895882937176932674184832785644463294743222907386482597556897118434988607215671072239358014681734910996414432905598115619046333777244640768786082410550658516029319514928836933774841775511266747087057710046683463173355897718310113215722504949323137179869423143678174904335162175074049042585669318408805021159317659551492254510824203529648950920183029007039616919365558682448106675520952054399441430405858851999641148658355487170023618941952226600002591015745670669071045642697546377513784761152971153377966335106223866612379102919374188078019745467789710903222810022381686372482178343596849305909354121477087383348822360347638009092317177382848970787283403688509879743983092925888312838802694668252097241103160880171655791617521911609678830887766563480458706199118578657334912853322681291930075823980468591908376734527507923289298165484495433385321912403629315515142586920277079691267005639409381644223068229514365534380295974871633698307693104342872103541995426264750561286307836793821280936561119006711899580822938267597173066232836446551306917309251172436948932485232132305863972201808326801709906105180580562876711369077352956325350102499728628914887409175627555557772303574976787672950277882912004805498726522957301016211537703769236574916641977222992565786807282080015466155896452130725048935524856108460671901512025499570551988012452448913678795089775084729601308679656998648295706053374872175642760453971806174103762537611265986553662746853663391829659279244805091190030209976141449823703248490228793037651187724960156718796500762198474898836155341259907978988236551267868239690948678336758571930578779178681692385011684742065194042885566813963702595889749025459005922735169524123433381369524406513419633884618869565475500425323973523442099611925844776818016133877238361137560119194821844966599868234436041015376461899008155923321048466928780085578801013614705593546971205147786301781611121575306076503294917745642027478091085553979914892867758191803812371852948780094479319173402235540289839004781045041193764539313145273507410797949431077948888403365593525091447070610774464258142493851965351995756178775335072486578726020669375112527416999530804985537353607363908158584777804318886344689279213468315407639329955721601151583318093387590036087035912081624798858615199252769547108997739551443997710502758407745317046262544697030199226136566838030149281250008519155776016039298443399222900348637654975033984154771933845298912389862378684699447395781120836207433086911189979922308844695950308207541939775176374395521360562480098712437678312891093424296030702510205299686829464461652418342825469763879341822969287053926591541112664911025252167111284064889536066764501871265042173567318014532679039926250146593403330339129514885485348617087345499212495626375841974553752259487768889539127976713002516023789559779313987299004120840405334585461453638938534111434860320002516993460970154422285771607740786227138973820576111707171778334692485262359482943743990911807867057083896044685965056159518426142402241379377667858902958928564694385536947264575524641095618285261092859892167622568064584259634001613279415039432824597519486212944957489305547455508391104286696154069497607545647848297713602150380971152795897627256601410797135510368144985609005143065808004624528736213258506055787789837436682454423711667332490264859822658529207403401344066418337180123168238067797063787588130070925750896558795562600546222810893197044741252347246087763105866036190431567401029629009783645092557385478275186360577240918629934217563258160520996794884864183813454845119047351047373203994457726199192260456300730871993079477142661834508024991152911995814287370374806090235867431031715463633685185122461523197932682626218910407540131588152860494659259645920149601750910809950201150654972763821512697820812360258219171969538906841991708805693980572325297090479939490515958099670791736720600329996079861401748081741383102977188392708376912936509330660042219876609240997556238369984172875914227802358468804221762196885065424494121057368425587130665490974144787729062126830912145509033061444277378822302241341865547355299201408129952787197988881597348367817556579206012888887577956646453827329128010381846336729649624789867940397532696707884129105718182491586965182610495642373200455129105859042687352451407558769340225086792581657190358792481263461035301255230822937768237274257072710801303470286444694721528391977559644079227243855279402407796181701630990729994605370989555751047279156015023494607354840702216489405791458572644288705393899905964358331457347421681339284416420268159288716577570712770203458786100386117354078587376127807419578618988680601598507331783562738692509535715516988080932493136450721528652126843896441736627720980660525633975720794777486540008105125462329402813131033069175991286542788440994303010265410363860492831855059591622035029210805905563859330367089646187805073132047649690832801860862667464952036205357185210764666570591792094411456242843597603124719872861920488054936764414117524345979543251521721504115661819910171642558516030159934833998270203876945997602928592224827101886302399374249526635465118664675415820147267159255709993803142457976032358094313118413128805204219355817746620536101985003159832270974954274778868908635584411498419958108830971397886473177640235619384944438653918069372526797700109600594741966350639579948557250275022772579399649500126251387835179818140592031978619935404770665876144418094893916297313822107167678290037067483651413627906894863536927368963688618036886163628240801984276062016372740332917952976190718227510110602256557988072338427755424609798314156134734633309971041952828989534535167532087593155613330958398121679336896374672628927605496823642535598940077054999587882891598921883006083303434570242899923109997142835175933281831945895195152052774680438943087457955913500956158926567757463695937008940111444303274015417715927589747765975472822192129405568092276730111246333451504246522580326337588540020927072849617288696991083488990109408521248912058944232033561386298887405883674705976330997691884161006241277502000542215411767018222616920237953689565542568335029839653375300869037404380637679281835206332094911399475121010142254190875629902393992022088253176832794906502061171501451698550389091112709996462286081721535091836841153004128138713485978359330700249533270336270883304031817238595147636016148715195596851377735262113110419881947754166975258075077662536638134502616313178578244124715625447176628895735475641663871828558155523022748994843753765380763920822425554983431324188642181983073655728830709309143239402419753343691107270747395833814451373946556041794000141854973909381839362193551987454495485969081725945558966663252606755462356533490149184341477699131274424328898370628407190705486019628429092316168456912226529005961437790785435305821815789441072568692358403758133184186163673735056653886074446109139671338744303320730098291967459537230985444453732584788227166014506559403030009693396141104053232664194008896377205815667077355967126698600090410452073590095933019064767553702996407247263311971870090216646817185703888153399970024249026902388227117230621369440936357970784414990311995459281498899380336833924715983830559789892368417769633961992428679102419875393457370833560305364812815906041853961297428679542878414013642857882749325971833569646540149608381451944158063957031628284626254760229797210119626815864698164601025709120707089155880697645521138829482481847994959609113594748444845290469578413108574725655317048975554274598777665611205521732837649475984992219899142812833507131234107723898493671120830270032250433389320718853246614897302255784809202215177109449181201078344854364805153405796799409825608186082098716243467923639311902256232817799636630740702199087406260102956982950419805096477822920327218071234999560027992847283958534753623545750740823967651130316618727542776408975705303974558978422713289238399984924505583146060122770572191490100302968068472261515840991355513224147255197162049821443644664279397556069009937423180946233510731365022354385375233172823844410490401224767994185879730368536528070554208814160358205071225343997637239355279382454962169226565941798095449957230616084316481917270475660750734357093002947852366856914235590770494399234369968729080481206902983253110426650189224222752444040864472684007633883160635792762716336352560364174480153014994250135601460428992407913232225400050336117961884326497155316985725691377123141368733133009839001964095003571375418359663602630324162142190291405874649708386290233040013804755181631447067762342321104749921972163199581753458829110521689650962908152838932007741020648142821454484129496520337751826669888768513785155504896990635441499072248190698922579844998118774239194166561994510349744251469589141040403652406893821928230917050456838539832768296971427945831544096327166007788195839206997865247379267570579011632568176527125450027785386186329140230602649878293401589085048396264120633272622265440654373047677223663137500914504020143538586671848047572690075458590539732697306027843914350612075928967685298991468358148453058625615688805888186182098023438676844383892888548145033409909478841502759104311629448573264870920789743110985030416673573359909088005466295399147738301364727815133868308334150453936775021242102028380796559866184840781868892488805716399492895775664824284571628260815731243087346375365569451035652763648655769641375025219350554112952816242278474795700429716018999201749764194509686922813032898085140721419823820873352900827492075097216942151257812980322035095110738339343537477645833990047339809004668314634761147831644890253641018546735489731239869937674573324766747596335943401399515246101030597300027066273452085023683986086137823771108659909219012482462120819942666543203206509829588606613580048345300933155606946912165231488869876730969634733510151266149408543963420772471608251852583232160157026895782980264917917700558048894720495151310034882214087272479364036240809095682489736505186984128842643445605002478977673308787822832027904692795405586472271530889940479368911545812003025465277448262340844519545889061616698708038967811719031263681389623216657556762282814816641071595039739731755610822762575062514599357097132255919169421559847863707054737784303096931893550374533609502534713751749879732763164925136776871927621225360930527907414871665452985671408904328464701232689893599352576511735834094555594763560542912101938421604379141694759794060591242211998112121869107238193699518618376764176304728519307550260165951972208501480290935601525164871519945258946571063128774773933679855531201691769545306411057787183245899889437973448502049322439963397250546147818995443942197259041144701626267679449836465124467578307258362567436209156555771975801002868515956638165167969332409416676068109934265727126333938473979372997638854626669610334029634146955887871386138859613708130775740693410138028508180642875944347895588211872200480735742559309448364295714960512595609451655609363797904359730655241033747238886753992944239494797056412759241499596475024694654627303448917239180143898643375556327318372364493281598261591359012513460038930408539431057146367039554490135750100150435536005051407678003587003246997378189492541527865698714009156482278646538637174596337098678043550212298623526458425079435678151861122464829114696769983251042850298381447766020140335289231625264836001299967223799842293333126854731469341056876372727666334024556577781348503624400228040954132481216796754869446052482883625623759868498674802929498089438454872189621703839949403466080046344497869590856535170306360013951858644937740874031705769548660485264642421642288837083618568147407502256043141955234624379650126000053977989285873379051547812631622853755065980193953900948907960745533264097679870182921611101988485285026818445247920071779301659481721046302487058368595249247748325124091967447407023209412293415780339831017198103717053937848435948801906756363542370917262652783844345529785465473607214475179749191800590217428795487643728998116473635957864814296755915616089729869475059586633678984284154833143016847567543674572676551092812136399175273243236008956398254910647106119257000785681924119289935063797441204034840432410449144711449836397379742539206990384517438339611990213341599812437296880593512752471167829404964489893513199244793324548430463002689257449553486521250619839931618123296142588739005225107903616760158615178381001995445424077240196828364122358112512905049480461396858637180700257367812185468693519730703243272417943963902883658021847136535265358661942109361626345604203615256750179771750501192551535201922197183185655839459261241870715309218048945657633873187698836274372218908954735833517696054140743222244591052751116067591428882402703442982279013745073397405449612209592524643674839545096781747060255316446615481212403408603795614580421858931712542569534594834252175173260443898719647180931354648344060228980678582040360093452225487961650734146319457102100709909175149179287720375440846778492144442444712460523566059880749407435154879267214185128782760881699367845309038643322717805239124906500035933533728276299453121616122307528430467792071876170535477207544116208956541676999308208139382125259819476862112547549976492767819559113244760650297752696799343659738182968316999477979636683611044667542675552824977510565202265440877733015257706161680427132030111671896449261185683053211666510696197138109238469145328703054893617207045741062250284719446175930862467941359799041543402408737551733356842674199601313096310150434360528280568739810553784891506897280170257736168280771027685693497153134265590738057187946822490759395448189388042960253313941234629053923061323790675592160526817540222480592525483565554533665234536589042836493461879882079848519906931364103608616238120359608511889510774318793290349457978176143296848932666306526696651238704289161965815681716673125083575693745346700592753285350229647435191414815259483724349773315784512768414886681074192601240447651414707518439175609167820423230614932988124226870914550825566796312344218381553126518439680356917741657199137123049089807779404868979680039243060824180061260346050196366391742719155328106960549417441175191270104412564989563534433759601347359049890874605101696679677845290305846826912115023618992871709631178353401821861479402609625618930379898597712783615471015287885997258351317872989851867709575200183930352302432044956871544652420766616341393426178728426006088757442284773522325256547493427460625717976084021241364451139149046445875435071851249825821482613080756661142774987102689444430366134516639448484736970708931730133644005951065781166763726387075373602649395323816328872947342367758193867811141443986501884434907847356548989294233599953300484803665651544547915979338313668542635690592345178137877004193107765729398752184697098795050910496268052300457623560822764927844852647061096235894610784273366671053659680640324744500427111624916539067410514949963518461947818253412841682335252755806071021014090621035248299063919615312046131226752546384490363548004839425359000292548314226488290599850520044279300487996661208120701920552298074192942309402572944956410754701706006774646009068322384556122206053173283706329442267471983438168135350640767873011458616973240324180636260782534728375367210858538440148388199360021893988987783022169548480703620075514018337104191993386715663919448769575854716058071909652011178108538425885376066506381800098235085596450349575004567286559951661808001765270448200816410503129401907895830566007544092300327916980201594257930228644562925903651000151526569319363501040811216092748315645134324786288095755971601055765490153698493359458810891703365877851395070676304121637765591310857315674096715044203677731671496607554389344542712637397532462715922093564038640071899618268263841894715455848429723207588526606856180945218458985582620564736809826862434821311598612708409683815557939681724021665869963959556615542612423680247302002857810366457450489619988561074152542318217995913465473836052184470433049908660459582219775685456324905830886228938507614578956749254169161382113600934491776671372932535951806148156180271561142450085884791821287816592399323775243986327738487290532373402939210045984834666131421457686938648113706640050251652052188161347392670232270934476708337998498176574148210680321195367907539396962379843320876050005868454014636569941054599946578052367963005555777159869479102577511208179088316704085239100370606520432761943242224597176562869494623163546951727720636437434685905505501412592921173018454642356350403373905442515113973782762298444416199533873448503521048270181767935676373357606356662925882325937660269827915237923256355854170651877516029206467544671649299024514857266408597706024813262312725662420872853877526988831652636890668515379463393651437875776079679255516951730094388527807999476044645193068631167420391342245668907147539720349575978097543350485266085698744969307527392698276558672180536161856725912425937144772680172794067367181259331702029351673692703300899127203074764731911512010625835976229867190281287678616827449689119840165810723306682386054942646037616751063341472797339113973324155270041043313933191338810379690329524222758725304615500319790709520560261353236789857671328133978369476774142584235647484136966122888047933080462055507206860430530212610511747365249569963039493890178119723451805178773934970482402429479423630389956133862678953076680572049815339056226515429205042278950041817465909856508887769747413841465807059670315001317573800009792469704305270897525086486218987720505985036809783333479080694841562459232430799594380522004068992300274128794855214639431429998054889184399794926240822087215855534850391478992743172210303308701829577474797707349032814156102288505156981979549297929857454973330382563602302430116889519331518557193468888055740830537417171943279027470387134239412739921658148964286596869444358724097174038070887609394204802363959096948408261723733499125014725344346080855333193675783111775284376039654062909709950456992534202445228163624832070502820115787692785365551436294586183318225450981879070478991512275067960017089035166544020332846198278143811663385134085750580751492987337667963229815640418729477899566439778214981233329224059778587641587498762459579032618741073791340480906516146336080011596516487513612947379374808299452127906515763070183946917337604477086402867060751893856835356602107233989615008927079610986707654865894431757021229120397425166803022363300217000661860790913911702379974036587552769015347184338062194937299626464774061083190904118361841459955543797448780954051790370385923232522407450674316527059855225130589461070701714119262830437637988134534695615538891657585865860135305732019365352213918357931547592927235986770017876830309900544155085244856341548157426732971341643330447669758421921299979871750746543032520863218824201468035480914122291886627791067951827044263205703174803315830943711707836229037974279830379462718023454539969702385919508736053590689705720754171596242742881627172969854545252297130172623784569215279815892153724450590272779610963342052633214628271565493900386732683647750477590970233862359434147381464506349298105992352136158662924225983541319533128115013103056932881730509011152705088392515431060973934980027288431243113838460383131157420555940699986180608904159923446862911958665065504111446360811744209990251393475373500431446665615859862948142706394032042979491641585434881224501155426416186249821054237436701402472468576363644591005630648558105020606179661352235613178870429853091508742291893108043944750397067742514203820235571045944761410455052593155259095817595640515919308639067208501730693731126500663310363248083332885920324783692693752179264306719629911480918123479184296529752743012842052475575208458410030607543526572285548011300090421007482828955871278469192543980638574889153603000566296955272667577869443626757928695142001502477629355768784065107226465187522321091060127895826156070901626064039754917130841188087530691319969955398979450909243445429349936672239342386720391586184930198256734248603513101769829785786714367437555827354775436504097999228792527188374959986449761141475958573354177861804559314216124897229683433215043968138091573268022268964379560610191036390936999214463464341880518639815259800193402369234485605026103471977650884935483036532373998556212079981920892373238665601438979313303179957328732406036177189617938447831159507487142380285509931086859470834912466254245632835205141123386596182984391050389345609610953296347432753096836422601307645127837510489743886324807585977891943583547383124608418637348439376616111258714989370332005827134676711102210364490469279702995578051333916169994983653461015314470485051660616420005005362644757957169410297041588441158302595444788539037058711696158196876552086739322184721886458549623071236652745571606738381024663021150587199525613712126681540662610334668189475132770775763090205986718410806047335764531667355043679239744760213773752464209007450312464019384039894990831390240974904514850890145208345406679827753503976211707927353576518244123757824711419950052221383533793694466958452609637752177772867410996975380799474050694793793953309689846408809807641015063744318528321662159556425215454762932097046731064073420199682753678904981729693936833878455664383869717554797474172643188703320214434723730688535307235332592125721395445697265543399445780749048448727855699640477902847642029047644844113185897802466517503383176306245178227351231899847965991901423316559913059469761268428053044938210289385735501803712424659276490072635229950453328070220172230432448868121211346101942508336065040385195181694672217892254105072412403287144905210398434961790734787464593137110978638455626529489287043186494028100875927453775928206352339694555642992812047668016936239500221544352624598489029622856875993744932257648684934859819425399400101747530819097501456558775040631498542158431062283248898560247485427923055359910128711865050689706484673080909213418322323653165293017365207082696469440933517304075203225487065717595231501367991997491094750280816076863214271787092665296708304670194683381129300719072505567512135847609145856497438513306818050989213743787407798157588965315780340010537118990736950839958647341210968607584693918442796595350705496931904832439690217817782889360310526901517776177583131615209986130844774548083682148699899143251961870932643357768970166439846657111323357112992088525806973445873570903537833041458720687672199231932857864114667187374852611696327699477085013424977569278654007328677981469929365788133307220915289144439060994900360512077749900309350665430833143221033147736082476467254356469301042536707974690608405991662572513714096781876000123870793431413643674626240869338315007147524814884261432819157766881262198222361833281471250950917662343926889512733839398105218594590721379151148248745226518715351007263637508618251015099956446066332102370955637174161413018884045626106450428692806990534261951200812577941116471530770672538409172870249663783189478389195538356871557379285131761651825646884877990208061184954181418277918827924284558775610649867312798762596700399373182773120129111635169297190286514883122382237061400918335917448425541912464528092587886666759376620844904127954722812541209427908509992637982605744522640063887877534384847801492283381246359309281062028376396297866492100808658656736628284278435680305640819327254586534422964537403275427643729465987420484326764145497857253266133886156528087743895053853075650520094370958518679218702127349776642322063767819115127313856115684617226859050892761318978328971139077610757196347806324138772774347605221399901991247241941184377192468569184181444700957792730773916131676984070164720627928675400913726865920997192010947233475683855615451814981261508038911511195723966202147842153758444732799851868507520386543872733439758156946378864964523559477001363277466591104713854583690797274018619003493701179295952383501719521943219606072700184629995678269595763539513671683821740994890574857002476117710455294279565045817713113933819013382780592373889966531247774334804388258519625381044065268488366030696027958832385279750047086497876507844764113887849845849304528272500698685051683742570488036771216734157240933022075628812308472383731272074738679964724673950430326936242296312376618850663879270266220984195472918025587949651059773040442002539642865878947179415798651496057934452867202858459816726165524072674261342691708409958287057941329702834880334588155635801347049481211546444338480651724404490430587193485293407609867987666452033158127221123745815794251270629850610375146196845508017477265324851128899195139283243007741283532992813418225226308397229011643770649296611801423223957396916693895472026257105843228579308189054784815766355882699855137297689177436927891401799998163975497995640693745053266734886001419501007934903530822032469397603254604228172989896877441359599653651058442106439981210622273312762429781509541996155607303276994419390003281299711642092715701622067914613355067385452081113685587688021583171517775099649956129639298088775655037741308819716351348590817513321295017185217025206172508508785674187060616873941090015029342688400033389334526208009793289011985069924493149561556142921222966236850043312328823524716407548428565454553582464774168238244188009919318576193083422321795892373642177522787580910118488333278871542132620107450847578177178193601429473832829721318723840668317062959049128046466518453832334599095943737337339935859122295241879752551848210194323772453228947528605641497343582607789508945371308051801001535568302265357720804034976543570392716228692366016379383108786644209613325576623689405180274838269894645986529484753410798695186851266403073914681004344130927259817660520608008310933091184399332168630499955119809910966259414523291236952157541150308328473943655834156597418437183591232817076462852904386417255467329848082687150062846146748236592650936815606393977333799012155351273882751489877673318846597910064870056113258528812791705327078493434901309185104523234591600803531763333585702237030963484628745790754276518244687728177415949879047770366498045950545952392026364201983571797387364234068039925981181902000865089141253085287807734022407237958173116348089135092747114978730122000813536922240307106333243311814802075360332254267587456783534639212388958817426480304124543705358969576409989292500258263753744330450333520924771136241236326460315644920481390171638890906270763234372955058242868696607219341517154601946951542374180591238362075018224520879613912184253808275297800998417304887727923261710223443996293385538916585278201697090305629780040839852057499047721945860554612030511434226157703907378261865821409330536144932949635563695373240976283383339559965988658840258082525266631494095560920033952511769307714946239344382651476607323099555840509841849728653440784308159393018380782681380714266270541538805571625841101308671804733010350256540907042480335430852499969882959403806087594893850065438102265682211464529930118317700722632586703615072075414686055029393587763414692509524670364428192086868395340578227440727683483513705943460202130225092186821055996459151225060424701664568951373687893217527934943479504897877153527628180010350661375507953782707812444109296088118401106056400517260298490320211132055544496800616203927244859127100009645730061984054451929305538264177347082886268278021918444603774412402293422803773473765045716612496232623795271831986947555257692658151032547180469893856762236086273225400422203066482147118626058426079529574487388577700222492440801157803016992585792113790982606458042127155207117083131273836263580882884768953035368408141426819255568881144469393059646490843359114235794987027972010907932563741108591655912765104983875684251957098178767521279128034523776790675026175488757976733786251096914824898659271356585917765980199407827378512411021287228767282001041560112194154848131300057093566154083726663395773868175083253689455337900222088319411203945734148451533615915579047130736644717436193530564237830805312013386806031210167874946462140040425987680121533376898984667619721996682608836050199790804792830184886912105310714756423027078137594844172629169297886184889785878010296161061977911626266907505704168999148880830912439833320262816257489213609215307676776647766990133942422758175749515294176989317871072332948744181260060980590895866693776832289994055468846666504008918453096449558963874546186105672623516576655753325411047271335098852410899732849621200760500293925832840927653340131208836763571539470101425602517686585721384766192535717875144504651353228871554154681445537752121449876684739261669892829805841649911230409857962404576155675765141951907033920018258289437303689250483239242106900126548623371236724804969069770442491266760705182175318368875405418674606989855435096140982404069143708802769438971341052869822293124494644705354451101457046987268184124762465989628332540264621175459022162673651383168590092876444991147487045568360026266117791686578671734658298033381240388948673899845582565352754191943837369033883716043984327860066686157997100398353707971520847851699744625889186503039989646727176613723295602542839863265371957063950402176600485318803689523058105784619077498005420287349214634447221808653873799554362389792569958226890495826962181372653811609684335971828652165736251418897425105283104929299274088159123182606903163341947461451474198737972049853992289039127815451745643415695581239009453405827775093461431614294045721601809341065368275345886452105086060205436588474878560621593746167418503781639511697640090414164555793610037676104296895605471677756293302712401283849532630632384873744545007524132919049841951628844794967802516319808792732056284784873141280978863822128650254948062931942143470809676893067960345348916978867521812868468384099263140593540850449775127406826910416494927654510704379046282751713198782960465372275300445523847872277672796347594009715541893079587857288149106120623540153751677154749169680544598441240494989406520159446629187784980968111204300471374914926093960398407233398608579844443487734543852286345509362969172025613471806127539058085641784509199836494966626287643209512536024016785316910725463150427696786955536267161475088159952798346239850757785030259594122050849138928932274382522950370483638847406429956620396669206786922913277152407862495653395143525030448449905608605356887093710436045784012800827026023763627013348976206942414098541919226697653878558636946864179627824341454926743427496553830497716910743615146670189926081298558545396809711788713280315534007622715226129246008588327318286361370419678536928374508576934156390936697199267104021840229287490499317242545245957750759781059665342813498323491700495116785768012309825179165261520282752021638426180759668134125388945188113309970339687616260738213336769700985774723545970239667848869051103250151747423204718312214329743348993814799577400073986430684894453089348414459110153703503958097685620947395432273034472498726611640535664927674971674627440762306571935016595878197346157987158906607363944248568198299768136423409187204693796119358401389989989532942135248200913917557009533423361312209600960925255221652882257314590839673133140816260620552872869098023121625132174357346555410630112071723445596113787769374905517134737575141508371120144217725932785348846179817485372780769100991568311182328203850320430771589692753669726460287254910497883680671772564345785759117231699737334722659216528713843513583241289067260097898871471698204200661911825880062039711953924062210261028886503936987051423438664461910955621446241544193995689029701437653688550564205289571299448668405536968728906681226971101771016212660044765171308555366813316826288950229546622685216015466763979053884407139391554948880570575330230933896323752513829406123074205506925016756148554764114528723551665336816309391014810601319817269420803233311656643605550412479571287037678753727877210517972508644088861934750824623975076114338815468016206174308951547709960133721859334477873175394825150438067540232431086926602231931519459420150737146179238913987478418735406222746605376420750017869284309563489293885005798419013044145048229525103212629275296259075776362799040302202274871432448724028329302165631176665372683127520984048820457267973552647410830508479195054518278628896539433779149669926374982484703674193023323950129278440659315546103124658740635620635726876522348320042109530406923130222797253456282390407739041046575246017370144755532474181394714625001131829407239135409054051673642777310447076289023424734166179970219261474321340991694844702285848104599019438213447888164084542841096512090763066786345867790662877742528956698286010361067685761382574019059358071269918595058457941296754515362317427798601183391555078286372317447829652666180657655749810420050234311628320649970571545224363987360931472113921771465749692810244361609674319782393495295048720336527939062388987053595498827516939183887874791605659796892390308112560779370178849959704087683434038842496746764049699903203318809674983383756712330671344089038975331466589503911800970555163816885325467290095603549992976789504853415065449262628946201346530275870579759853467903826808248649487130947135013455960091859595480781151031239111608190727307243422479975050723423083127188557835306706567651318483078679241932944708424873424348408000732041806246187542357518481875686285480491591266644746979514550540170011171857176375018689228815993142392439791492132783311998687399966547121745524799625416076437433075258386701962423393637331110366610146350099647940184228159276454631718596234697015971020031373394655720599733376874183153651858405968512843767543768174850391709143059489809201824084860029822407567697147845722038236137635585262156203074518357143419654513820824518934999481556972582836176099195897122681339266279155414385176305177266217324565114621077231967670070937357879020817835044445604625174978396518151987045601502795055399822538465733759370816818589022411625251344843894756238957604254822018311065758518696762742643694095220130409022816074389475859442091518885547801354520407850348837818506567713579990998036660160851580550535245402787891872394744389626603519850261627865198608720051963182132988791102139238061540882149776848160340909295866217320724772401387025031445933119482090308803555054698636519460260197046620830309969605949058619819883731869081494247616178945965638257872667288388784712521202558378639625530631974564465734129099411567353516084754820133276065448682017020474317984203770066286204052816366823274457092950715566613606454387425978084085101492654205703146426042086744147744620952359180074060194288898551824993789749815632914143636867207464555003842482688964147574116509032019626311262325604436611080463281118198607413054568848869519201890624027649954685875638794416177534149422431486419199829638140058856024740020371485586350056341147753826695585600568256551100050285569671038421007507622903482705684956468205136974615433624677008348757798393352751929658053826613030040600036154064244523562915306333342716662607657478134278969674671586650249601778454768334503509169668207425695583206393074044544262436546888158768342800077208818121257305112892067510340643845947825911151648719947783273663562939895110568940026490311777964189387964143831352150026326111625936258371504915432910533337916686395997896412275257225460327499498810719690284959985606682389499718040851887677933370622866602227110733742212385673924644112106584505032160818171876404664031125345795483020445744010522939750794704068987205616821798268313509080729661338878311090082755159577930090844840691172280333032781907798268862576669251959008963908242400652260318494655026699727242062892734938097114662364651305001554484632064146643453683996724368135462604253433101732248017230079664560251140593768347784845651671310971888826469717579483648712257315857359971159575844682590702119818921594960124987506936244444164355979656077795293962402050482843935202523491593888948993900731968103427490815979959874481902450358877659729649189513658646971359087497320847290058382834693934175227294671906514840824209526350456065503834007454170773844168285925143812320594109435769908729672907198119710536646621698549696903831291872326585691941183818500425037452991673971482541956338333956762330978268170585350101848956692037111637041721677455707196064872199252404485975344817836557413614324377149346571570907372426941419181187495349466153481699112873206144899770213774547157128639397353182926456595097642888575430095245728616434022562559500579449383790530303989427767364620818628368568563455977379460525738561519218397663515545208444801373266127490054643416748393361284236067731798879308412166337413968402854188046362955876228315405379047577203473336380270238236173183179408801921780355419442992861030147732563222433171240301632944213820431603619069450135296596207090071411588505536418515390682902159448928298538108466118605688510015781411902701596845230307162254573946143970522997756530494324961469100730007573303894570257495489176536322718904903415510219862056184506833322507954970945069509569985136336710090924389868131065616996862793563588364779254502959354542480882624485579039225095154217611167840242417575313270944580990208304478224050217738276978430425981921961661895035670811647869411599711724527049902368390851880093194837672600939916535443282260547455458123969924686507952346611496742567532444316856329674893568466219775589507334168244217596140747023390396353695609586819484372872641491981423556927889695342566966858038143664555721968774746203977026442059406454087512732893892583808125532456030364812608767321477567043621281416622927032725982675590341339585853543246117885260324382850564231339191645711851864277090723462380203762480631254177686793241918269536569511535412727891470948895192783601968589673636199804952971326467172659788533947884040283936394397745727193822977912083231757068764819840795051218734482733734697769025790112812162739583706264749721632036870872733234402707257683633858896951513669712674859050441875814344166950151722162432239875443367786487315947328927525203946239988544584728985194907567224077113688016384787523537548249876900260359645653894562049737040404594863242387755427508290090153075291098151592792777865190146327580606402883780541887777394622791169612856397918931415307005011145534930089937829594629335931115918508255578557077457628084543794692018614269491762621240214799767055996666418291756567610773019180003386527956624411296753502201095606927786630660503003168534833146945290376764906038134877945773607670177822405977241743948386021643747854275051682532505890323650909823573378315702754281570756775889657174469945365134076052776913009866751655331774627206608227543180888314781521987122343919746790533078412657800119339028297353366897318952770979515358051418639515708223757136093378429408538511700432647773743172686064614022350928285720982248503787803541625679316593591949220551716854161469221836325438299121356320684891001157268821347357765928788894661467544345621734586101501315185773171922316261285358437751546400231593253389530745687377854732808660361108990571051679332233515551719785034273662926745727804172148884698005314223093657891297211634036701419524329216967370626744027712692925797921694503240628774967129831803132946401129829787569358027210711904573342774429226688291545555448444994921174377092226981370946801403263850451447461680845512989814134891065810872644492122560856890798226203911456270182732230336753129639232585346247553769421172117721433747092272163915209366964800147041591575955733212258913347466518803812230004711176457059638162937725705296288908002980101494770878379387688513830540789513733283127046913030355926913968410722271912877605218869198946122839500151114104946543373513377737340780629584021272552252152214983485848202471790063710892530035713313144219536230325020034483703958203327576685332570106567988166984926930493926445632543860703959740899917700879952945411782425016317666106889355815708641033368575370498250908919625610689140925723873243113550767810490153712169952831610645158198393490691437648936951505592855599459025487927858100253239549092692735203076157711950791451261843054519180217154015849590177340942278525128192459979088955662666552127045715880781189698115944129403437240777533362793122525182390495745430491472665347859612601637042181081868014358868753968434672915498791512071758451144641985266930586506329755289052800309852869094399942987288106487121456408731275891942348908217247776544161006726236798495450113896675602819204836068781708880135090103253346238966334664143102527487444196125696598139584890319319290666477350047959923336605471092695479094218212367119818906146927665655931455279585628146526192312571038788506099699841316893564271216673062760095611551797522033423433350659423998434395986327530869255089913011632979511815925584542164343111796526784866975291430617147874558474986526844240297420435235594975331299980466858521027986501533594812397254104436324812795823104649364350413157335175289234065205110381683103438203213801088969844119880814748165728156915143189371803800710371658977792787627696378937241667638284345275648042230652189835005110165520421844804136501329276208492194948401031148834000775211281513363089830544310558913437844790498988986151863302348656812238739666576474555620082359157916466108537262373344053062447994315935777772108897911853290357169232641095925191628576573086944046109129280238032420667289713335502572212819778911293280427288469762157419082719387208417251916757869864872921991471466767053120544463394979584440382491835009832910923088753458478321405437343331832127820231850076601218209225355724154547443864210860935936393042650308536316030501778678304212768501251772561899075096927863320708861937135646734219034077426314203628009070049696049264127240335892381160813649127151046888688299883505385093194417344722499236164790871965078658886175095045747174964442080028709519698032495648583410609380296018483107475567831671834934096018675827047664356491387929080638332368756690691664122363624873399679070092220633033096953572286459151781626909380928087246985671741876682789633422702101520468399299330171503247006352494903801814489150093182670789485372797127252611184223240711601328637467110114478667447781429848959608419061322822790374390951108552337794858237112123023550681802438507802775974680929413959142119833808460373593551200424219856157938221039570375642490528881277908763675357653393472071631191937893508034324294328323586548170033778683369751977871965110513484696421929924481194401886231571590440888345269596304412739583189593178094963460650130768063451623380520673391453313183596070505650251180007575993577445769176692458219933823029474234378411689825646891615277334319625777337957085192198512825887590437397017145004076943167979346991023665000270819900605319857417086559496329939273990860197275339125626157316579531987479984821614950873571515325138759759411221287933064845428530185738058741848410058563556319850229808437482994384012884082824133816169839451258670126104963099505596871682009014475141858789511509900890786555329368533369988386975149507963137535949146289622768200892263664749674100566626180525002830434658042615099165734188594838865136018647551470470731823605590909992268067402193923039714658069911616944801086928649132914374474039493612158723387177097935959877863977508980729034929190543330421036756467326131811629851989571261195700101442405902906399659779059794698521193096444350773150332344517920235941866678880889530063447419075663900060962621905740697870751389381756475769930942607192710797807647342409923188207266562239309695000879077738995036995746700080589175138377650773694621974307706004038374001112993112182727959405384075798769802530228450680242892708548176540468042956977414435068314773473746713661097766171797018523626403200734374290800745510894722899372162670514262443017917164623318626384211519957207224420377469610767470354819721101222664289344280959588592080580473243830813023168829097793903682113205495655863995281399315902367918606107304021196204477705089948113997559834768810730257848908501422986598263186192437696800513970780840249997530145190331828846545848949349618657267755303720286138196140946664505734266138770491604501392688806024413089640580680869116455393181697581581179953302433125989253827289154753338314660110841004101766295662579321621908574553251492734874762561592121210976388273450757248276555826881128549049577199868366657465994090122650932815262546415391904031578462536854664048811349908341555283966913664020511337788834650403149885658882953243529178443251999430519817265687980692671328534289250701865208802142021526945834875590781806585516233241751759519391960650891634611936299590549453494662302295029882344033229075359867143145730334689646847930612983200575600632582683154307203950661371625106652237528779612203541919331007515058254476296859121514953547285951105308963092459418041979294345205960053618839507513326618934652620873127986443685144283830059951619410662838355443826378658482963529196746251719631676154603151951933942031282718646563422795315712195613031655272551412596771333645646567347868023869724469635058350327944584312119549976929447104332970167677749031537494803566689613873149400463316808463561671167828514321854303593404041310425787434054690924183874853839568447426867930067694973928937310232681195545770562401282849611577704176338067297012690671481188576703095468410534703525134832986914966270297595648344580102484031380778441418150625169270688769052976014519077355817194470816353859198866360340299477363159874523587896726925658231671710518283103343794519201833730801530356319915331535508910683379408133555052104113960416943716332522583600767580437420614006792623014348572826928027094414344213428695812939935713946743147439328147127774383246190071395929218561547564216214898432249639991629967485328822315641433035763750853277798115777501240956325769478917182814717484618521586106561765106226459761997058388963999001525009506089247948027321643454371067253145956236859362563852754767821584883833137436015724947347357483921171551632080115068108969947636125201805463921322304751983051474423761557284446565353448659354023011831144739362057856628991138642827283462149916646613705330005001603101621830397128240197682132297633145126707860618598702914854390548447655414315147958475733654453222155596017933204723203396848814168328640322707423265736199442453823511780534130143986860601193062345379529795453193693273830766254731114417883224559015709863129915257179541943338700419929267225012184139462482707367806939257563282196311451010606469092912027583191483883911402964936555156002195849439950728971145121606331078132950572139799258379649460269693583320077915837267819764850199217403793037579129115465213757981671814954271569972562372455247202491327904204824512483437434040631233121235992072727192464194513939310247785752182138778609767868247971398898641256421351238355287323974170874544044576678227656377292760624442764940640512978030893898516138671414718296741594432967299629735720306698805394815745917178811581651069914566633677121319382447532771818437215507299000283388084491672468383873952542294997581202961769315894240347408218950394130874396598397508915690546733460316789397107245532937292980164741741683590865968144034350735412166912332393800713237423360220418329462576604108127435940198355629263327519227991459230526635405648248449913579623864662751484290805689803606573369096667104669878408282471559778317070443319759096229340615680627048084929019732614571371900662873725447819301370970939913486071718425795740371217014257626584962368555017001678766509968340283590478165247027809063181608305443880368338270226929534984089812653416613403725006391913574581531762701184990744076461273112878758939746902884830793973317457657212530135964731889461021535549239227306358298582202478682634874515777540787731087113583673535018003560444001192069120401903799806399094145932466145761666968999214123375586087155171838983240138150330062012336181168352616980332552726332598952192679592875985648601696876778460706816927688514069248617030145530400212140884529472832414530136337045049415090608829250593955330186138260691878835582974119886218620438326196877961303709131926405397761324635168374057154706446819872581075065993149342881752850923959847581600796919789452880930257458757855709280806214082290432413329877939282470663701483380952047148265437311549874755486007976129615266679429498012997346998319016565725923046734734024377589567550269259771501042373943197964463791848544469060873574484368582628247871247266851499460452874871446938670569341993505533136212492674992753644349863937360009402126957186805865845228133726332185081180454479564767584637639344730178262553606822583490467431163383184095884656395264298357938570527023272271161675701096455291336680904072528043987522586449679008906366003063169324045008379760263784613814045840813792205349565013474016261939333563770002388520540956272688744897453984430528454894094925215053571147060553899954432369091109046093147696578840285810214881099559019480408572181061872512826804599643718186979589058252462326532141612060525398665238079038163418542953352001084628674496907244008689627753595986079748427789580026345760103315020524893424770428312159644828517900327287294640316941135114102952312174927961045300038736526011096280651713525949035025381595980732616947150577444648229153108497320101294599837355364823724263935194967465830739445634295244135607594505182635068863530239083153572511783844550925264563657099108277683945303114694930768314198503271883133216778617032818557662944356041560646818762208263473734716988641756687713625658169156278252784847238110397884194481789008548115149241681293356193072986554588634733202525794276337010192855342627932694482917250130533548299913445352846744492445670585506478705392441962524474612996051805474484085116032756126749236888750831790435386861933217244051081273199803303920170956938580287283051161132323275862941073700572659219469391223482930302468903226536171485137995860877183743127475740871452748099606197809749067643197215969541397616375855053233605249671867575160441524198399626733663944199526093638202632181422353602312038866401799135305324245756392487415946708896168770804749520558331020410839797519552773613546295802385562100808782149752750394995555475418613115526353484424202808962931755785356043451343218980706996834500815718079883853457109523077272285946482844270470058092925480270163778394299553813644983113302775125936423326618345276958309213515454567886362035921553206700598743573827891973976412599002977723985822377967844194141270685411266003586157600610402142838509291472788351054538297487471226384531580856216177633027005831811312943756912279472102634536031968233006074630117672941212135553877601813091239634767530267781490796071726956856541623539200569767945706913088494263825039984153795482464849314591369978908411332865879199854928877977024260806287866440111705001362740968803711336339868500172000098408324962775329948896248912750082757998532812186680781155935775347973998594337157978995000885098529211982567864694924802172547899836566300866468726299125589990672935266987135796032477303199733124678738077633948043472751069558727353196392701445232827027016950432278598557063552410903996868763931643354503319010515649669848930691149961479128330923440776922141940290695257788758656288881210560434730804771883308763398175808058432412250750060463452348000403584624036688600411673904537118050115143020899477862783546394235034774564652629703341477615434953096484828066687399303736456519339996119667707272329918237163852707327087758912912686195629902448136177802560703623737753928798768488263853131108146212681853206975642786245466130816571204771588733329902137751156359676354472476605561388289525024618617266206498976835899594993628477424274848718552575017152448379025049529123660799405309745853553078919883644732624756731593033199629860219587408416519284401225887638940628605287359352928058481536769606057299974596592585192291130713531781059191573495660483418134174525808942666387354243426777725793483713072709147538626987074403731820239218583774945034553910431761700365864318888314265234020214786339201958560370341449610397126868408551381371328576288371380777231607962003362564513431307036005206472290082992524320437770462958162761084830111950581701947552739447537044528110415699516087364289795365804038857219497201773981664163765316471354304007418718657446068711292331709521294712090937836738125091111401284766762911086671989519533356945838072170990877243227824718324226149882886621021024461381829135660959687198529034316399048094606418894564904204003029021187671845798350441965925283248554441775265665624972552492397189484259023586099423744766470010229770230523275600177423581538611649385840751177301729465155186107938451948720476944625265108811280940294968585056701782489597968741452663505348007203170214040800032831385045303307570901442827088757766611210563943868132112433445193787662134068796807608960552749081360611382015119453756705395923190868553914015389101596096304587504005313563661974173844960807349079310054196229690513013641659687083512476575332403064270499907306854584204797081617518587543851560490397030015274954225043723050044271310185429526031972160933620290298575280000924197575354966668943929895708969736344101720123264461495007852137127392222104989840379639685047008397771889604331493796101319227655309608841232637129197775973860716701495651530176729125861398223661309634014202684753387146566618403723025139995492919759016832815184894924281776188856379025151472787168940716405628191937230534120958833319752186806806298381534582458555424304978095130025076041810165369850838169684522382696483994804283008076552590437920969951832982415923156759431193090295633512648435581056720754253535480080798714382466662423666816460493789501373816401870632766200851233253558971483253829192117839742112810153009386355805357889503158397204929233577550193070742801136710603210653164648270036461150308292762003472825692303933934887365308213542359408939185776427384565528781885352763766150078107986496297382504154170118495930002449796211343445345066255888964108761862585162833432295005356286307601347820516634994061296018431563110488925629877379880902792839719600119953052306924584532018191730587629722405518274393968745112828279983550442886852285147526153008298539890660153137213324381011663534359714301150757915376434916125025539553640097438323288345780455322030421404851549435914486036115401476112794869075699025341159406177239181705694095290114484688739976393679160999415621258850036599728327092024212875034107057883048884486715492841491950258272703880420256827636529457557115126469686347969882270498517756421806989307587950902192025412552193098295391305334120004411630498049568577694891945844132464920678382924937754016028002314872268371639838156021481974886959980491749832862221528466691265820300926774384787636983667051521477211972559353733475608716312840717090040148774345796811705473929833333427950081415056156689116003510589569059212761969674025188316795634131132880257419440001754232637872345726269851584360385309010193374913404587307404618397705881526331817804235959954856408238555285022178621481452431554832241805942286379490835624476082424205889825927323574015908392962829029998527825204058564477292224489307952248551340531621315513108746960413339489961752170395134983318070117891101280763547777306987136466545244346355718918100138987987252187022998132504547973379685061176988489330928305993552519330819193585825521086090627099378384554458533515395472797079044850664062657666492111878397429059467046176045227243818482950624375700095941251402457602225590993389168815270850059733613989612280206637674184868270716672983983448700028429435464631837225548337214323405774890420142754089999445466158521111550513732272415485307974092257068650432761206561423087642776184530717354468832523669368924651059585114380756999941855827645241065164160743945665101532054626039259123116047038328562562785431308426965796734535557459234198909262327230382216394609994397684154749817612080381984470736155139013955447454597425805941124539265164044449843253149374065452467407135538971838435955085182861793266476219914968933011719711328641893788162085352128278787273930912882864906977403500649106156770232086173438676170911493739629556910246909455212137044144558144465514148548054283355780646405637203390707608189841208128244259893680179158500795752925585290940179905537194857283601283075802393458512638241225220208657216979516257202349720721221102603927958943639184129830841692088837163597587369667140407330955427962942478062247073030752597971915852340938092659676203183000232719848226530215768316062808282593414798384638941795799007816989530580033556000044676369666888907741566964370485739397059152515782555956735206410505278622576295070231079369875613304611028174690892174361595675086474556532025780445866557106679539548228392754413913364348362543180744712721247412741673108661265483679030665296877796832812871264463097037131072334183510733014444661349242332246654267206823728670949035861070977503917272007776975340568374153419574350601445006683133202532708825744333737160576828230244085212989906488762372736755151241025376482062624078208131906812583929242198942827349341866613710787815079042497138386297615925679642876770523398474188545199341707842888685430210547511244786477219776280152582800102079057351844343137298641886237838042057012784099914438737597183035975001745115647734954809142150729860643007787308160582997342615190508631283641711739549400502247684546608511288072688949316384261031259960114208998976410929827679076503140467213473639892386658394772427122671063628881395058924496680648416454455947424599366622957601182516962702638898059140819881593558669494538969409773810449803901792607629181259835260209452012356009792612895814085021438702496543010812069904616006314990717224384314168101264784681418290968896266825549694575856725728686931411917769540012406696944804652461494797781364837573088325869970431692633967967406408331635705806980628581706353008739940357990552133524953117805855096197072881096047675328541552014319538404119508139033580289787606388455716019693971434120672291359397398845130375061297806449494416960721824205356482050264835933996693177033969123310994427393545013663604560194977346498900610218901788404796112629186486682783696032916113362826144029192926764701103105963613486820969466029948481031751071399310213759557480739620745931244433727612254246207298071847321928294302551872115057630314920825214870761517859010865453775119081884881328753246323743205564765741768735642680275555430006190676948397007116425011665340504451750605090797749715659890300738713972841223538618817053484223828827821337943916292737023346486438586138031183081370965115667264836895540923087032761674753388843240746562095623359447824218992228700029052873710114492572542811249208855195061025040764992021324657258045741643834061673545854154051409337241023035130967601226439978957664552221402829919794175212329402424027768154696555317734904592923904794578722212855262348125943495616589265191500975236626590069624885902737631504454690377843980624155954507494463666558955653551642607136628868556266573677999302636297920289182199214632258312243108737297173777025542452498082429161547965569131053169486767151580802814047086060560285727348720204204955407926474604190663912833991018670528165820694585525284809249225794638101567287952757791296736128188214686743591852887368422645216538553281131070125179779624371869300146230622173354290985891128892316849392325694003689973827953259447187561080502896568793065329314806637696924387689504781704371688852412502099311949532305125683694405780609583827464356141684019549156413254954364834814919900071918438620000372065323115207950896974205509387031128018017592270733154276849721908638934171675022492531842274588135746492533438937889450924856391764245491692915767006261299155515752447751908134257275862048588393895144109142728499188987226888457730040961799780048384084533146605638837741476750673847562139557189369353305336087850632123516538407200684274590268339732113266736916981233198521087946759582199126793524788783189041032290468165274544527810442689423482315854271455643024323493146843771823618320247407573569339210052829752764983434558305845406564648582980083608262161105677316824296072681893744818482836809171619754858461522579045025660055917134582391000595855853013281893807226210870564537018457751957497468262137261587413504216971323895266468735352683131186716721564241843177401191159748274634602924521653305451588267298130536890088250635947634660338243128119344473140640242427378273230697484858129721708361885095565733962902424614239529776764604764268858834359412410640282828887364491063831211837860124977968650108292696303100007746367948354488836000664462866888136169839341957098480717796078726372384124902844665201635489965873508397083816917254721665601521301519334226389300316439517524100747881310627789625910441552155930956066575144519581187651902632964120012283772515006672933329184136467859353005927471509364306808558009728647907396472312599336661348643027035162994000963643299087025781407462994323813169307685420918033136271351420563993535708098232385414014650992559784662513048313637418627431178017049038303115048886864096858994785242566903953125082873250527098621298576349119637903368842858265980972594834008251768053895171849689310902943067606429279015649601560689337588080768332157692646494345259411858543918496312914180906808305233710450169697608363077204954815262485816154376311591809125740610824400831261796417596726448614572678927274516760779090015552097149213342193075340832430868447246572670099138259902014273039027207019575693589996572397576473019632876070575952909570635022654410116270453213537299892136146607672977896675308027024520158672694670112222491525361299926903277197224846344822632495338282814078520249289456549393221127217247165653144399474563933747145551498472818777853969286033246074524416137935549554811123684981146150397763420655676215044153324114245511925390398681322258951872977395370612686651994808111962946029710404720743528834771011863348462674070725029074833986916866270501487917452925041326413932099174929718181851384426846590337994874593196731754048683875874313253229725691029823714437483281049837680721242132564659673727053155434717593463586495205078050383251107690805315191279932607047553014658778053115611877029818825311377781119025931094437424204841525856686486432142632545005410202527289176311634720515042554773714216687565026089492513623799044050454556935053532156044273915286403593336405081627950854214504829821511042833668534480468122546977700700983113728483171012964041032296144629932260229970835406803051755220000590528051613396708800470775845244555963966298770530876417841369853582472329737777449294799253666287163682082061591525894936094854068624402065912898119453230664108280090013665120201371283679403630378766891451667749470958019030871490480862366893499113759435836783619076599079802824496688909811801141370152972354533975581116740800993915010533991063158688981732114186574351563943433451436745436573501134228409064785306170826788529656738077813104256305396478090449660877186108634507035698979669514088829305664380900864209823468287110595547213643177572849134106281116829438395659967738942633787800803965703875159008927152922226515043426128419688075329256524824857418699957414236456622441577217024925331163348833355931086178352941818957587187739443841781028416445956695725134565582602126066764787559274196288073088355375226793601613383176156402127783154594566944274075597288129701875750513970824889784105340884566002803674806821409748731091729645447193185055593986841140348107787840110137038405488499772037261090122053849681173827827891754517193123137234958157281495832782433217672895856830206080256025958349323302690961546315177181184554551041065076903699780149905388530995421680338856540106295261437516496651811577177484983209957048844156050357627400617772405790438828902578519172151072937134034231144954585520544240541804877598638932525746623770306572863446292115774474846764219959549157865703125868241972719487736731646266841360714660893365104474153926087084380077423018308739844094700567212331421376615025753198537437284452338581183076541967987787600051679913897166738133823819005977967958538444300411643517809547390873467568846674233315170378235795311118520976445734131929126431913046079448692202738429631244582138450614318105248959646406961677606345772955047661813078995777057157634904747384847241175125873083705521961533754464166232363795043157171056170782038965336642564393637533896446167973747776688581804014989481478103890615486327024888835017525510125552297001652753728703771493463175037723870407524783192659511361827972325138840442047592812261077262126956768684756120454207536520682765462439351367645434072362147987463825805805018702502933683143012580471224503264740352084606396052900333549320738594679940481288704478292925341227785514797023922307732001397339468409754235510938530532714336631143082699051614694433628925318782893908957206977238926246395552327246372359664989665210860029390386198940918551615295569320205633913287589987627237897285941416249037179619325423422139162119048885315398406514210821893717005852913014517072600637286850154573303882739587335958470197350350193759375617661629109533854632404595458649071996405456644895840391020004452200216536071464338536143257510441025146559077982354961436427188074028207957096524976754509660996270057247701881743962224202944783854898567802804393443376470642841326344306689734261292451664251695923355472049143922781287145899055087925123417963472364910899870686656307225083827319170465289664748576200935482117412083498406670172053153143781644442052605068369614637331807219466016195300384260549497318217457031339030659940374206987083001037548630426088925826933012493509039343594510002895425455282794886553335418477273824432143926840291277270043324201968270692261224108328908725801070597266996450145630529533118661636325280621187873747288954374159767574783345273941967960467149255983539453052300616437816130706941248015413161997340926463697153711479654140482145463398333883514134280323598805703913462330051887396917999996812465504246308724262498188523555259539602014757694559690384506846098326343120694773782213836835899889432719747995351799044206239786398424482697752691038015775947693028241667026528396802292681911782117729328934327005711691256549901172435997455961930773538343091129654590000331676466731594649541991997562202184226186506231840713761172399098253025533180510754920670874795390083238003272929634925928281083108825758223768891994989248574130999467960605690906803852457060416692771722691363681365900440836895853865382489945939116602787889407349485147619810525943346316273109724588119056383636231364100750115298873118786315042610587499332428383300696191898633018052625426277363674640200467378831474496362393210299434996601220066097387029368882769565013638479911151715387747083063899650279568667987581534559129429301297189797624729212553164115813547969253817200762472917018813530113507940027204899777974289276219029297998916704596156294465992889904939446669788286415842227047171282406104418894463933016189206343114874824724283061355237718445702934208944781214116986344066312750387371040943632632468615723595376336354959171882750737441874912252462286341552126918968188848968836168769966859577477621317772484845096573505332596444081016162723987520049546073193716337356420863946704219777797475020368694680568598445429597543131594912394812556940147244300695210900010203419173669985042411169492028695696444454196576881142900975069728860747320761249455675985281440775687257430739353235741081723794980192140143533691987188008449144568977879790834133812366337169777843258736768320374587572937029120761488794724356929982718972599053585981629327373610379344873015214334767530710382060939277944724787142143296488481544704548613168022511394166789810805273176324636073302467290397673534295521333117528469637815177730015221273502040335456922479558212299124157845338913258522729148633091722864693326808061217228554630799660921170904031370106457760666774270084645280188892170221180495540482623701802902357892902076201006548450355638409101582086953593585784839994795935791188369000443714152690274708754254566119763840776101836896285366408536747357109199018407681263312912837418057008806361684110263385879207105015260128567875926623171601482919335710312062919918339905370339632747544036247730606548067077014346190540517401056013091496287085575571194704082123546802638779730428647763064939191422045196654726521142967881939487090098897789341349947872675118567266912099517106058482989784316684381393284383149259638031497696164997026576282062979979486648170275410878350466870823859546375758498509631476898049173353421471904603065342469613496588597896173144979334268934485008479010152041885912283110737301648091876041829535975144062985765404945788985995136249692400700615113311647625843895622403047789247182153653488251051685346993084742395036560505491549564104875732023869734744856537272772763337972493566405942387571779845892117009797981326235744356913964676924185236515321987559264497256038533422471178350253776732926873769012963104347545331585894033222713184837611238142894037111327847411372543821714692373460074834170523394771613586732893986094245655509974119692787930692328913119390984706885320645338677545668701351343323236895777898760634836644957954307773945775067118262120546863071715713369771069245010439887230276461810140025910706776623740965607376548371488500563368258590069973970932795002759193230376065975651105533825951368945181054058968549348958398158886234065673906369285951193202286238819264489920347286378357253518362272826971548805671328734286401973629261543822548091645578203657647732875826520606300927572845315450081705467422648538659379536539604948042597221149013010379087902467152061825632798235801082488189210999804413341279467743017320228736517665759708667251036142138003666950259296303095126378972263387768429381011916894255369187779280621898929858184152690465401657226903468843929920866976304435625714381462913928307608123669627712795713379916203466296896446852895345682346333288010848353254834005048159926217336211707564339087074042633748890708908215667605233605918291762078698416241749378360267300864786403129957300178869795309916483338429515231077278844549721406256313734028477012657354494313075291536041908960324055040788062472429374685569960848773142317890918049500825028941514075383912795688390144625374371441719301890493860854657286114771721477039938861914927308783110298817573043755498660014341431204747741890856655756640168427284075053987812354008169233180409359782810019320672391700432947558807330242322811817691971917097233492216243902402302802226566433770368618138910626350692993248795067900983801483093132223013402789239175034382881852823577120506175212903699997318148851962839129259596944387912676794730848760113237913449266888512342661846226069474547582284908020851206104487057781130763938546457316382626992130191273211544265519594958845235448720493321756904650337669123273934236128480485873874768350067883046812418747883751359698501295911392276919198881745972810376959493440996247437403356309177606617951032004618570960016286453071733174496018421080874354781554639117928309857274260603894004492930559699678274347719660594876680987850423190050312655259407140578588326129485086288621136392849410779254430151168497796785228349037603011580086434623724650439605320117612877601279229755829474129723116697018119552004909034366868082548079928994728970098203203861449471074749350727807194939721258779283424096514804556183589098224483115692855904365218820712214457539442747432962644675131609140468091945877237269115193606960917696115917022429113941947606317146495082139486639572222760274480232167959212572765202372280521792345329749811707924819542442973521496086469677962225909622799372513684351948484159793863607846265776431113971600271010904269715294986613850843814752615126881135363581794868041136807420161985242814204519586081890045285649412605910029328696704700732970522992803969032761413982045997179157539715286875223727203608032522784375213459132016593561776106886925811547373310640578092871006810464250209282306587418168403390703531664770150671197343311697367523168877251040954132521355962747721846700780978571183069224793718638990463356381688737014730292370036752112473842860598347196820857568659215860216736618749995128902634339648760924295096668512035437673276103838562303504260913319963719487178310233928612702401521859829156200869317338830336351613886950626559822361722193717233688752625347464869641619808971525889385940589042031407770575792244773063581024273147338525770007147126122661350642467864291968621158991534731517564471336157166280461761577920447091994345926016380394089655472705546848857300968709047589465348055333787218059637622757827332148151370394260921221569959361931553718586505775837107368717524137961998027345553386313043325907470242873143995690072589861454808185561001182564449897515402356124181286937910001304916992442900805558615624051811259137557706031686681536440918681076433467168648934559715917199641225888472650612354106176155956059328147364968530110559671758312171730268169679375372191909292012770767805384527826235516596303892899092386877104776466674740100009060543611633622712958136244584857811062042921635402156154482058802888851821089475288613745184378149967704516781435214329439482700071438407967491505528559970865933367819317447587466406901122794981556673937627394451118824702441916767362041862237433166392007025133803924733782325145446671020329103788497910888012778257177045972825391889679636693236391429938310904324994328930019154293355004197631630349536557320698769866231804553590247931035338005036218073539584000196585351703905135652326283515068756019692093806941365108630379764607023253879908285432789802766710772941380578478659541324631667821488554890609809596261375190679466494354445274293233763240066665658865668205508848299302872705172401045464410326795371017768874432668383764974583139784630080110765044548891267662633660910582507331228212928954653835809073653906435040211763379572740596367251139092533225555302923091795638912000873871769244082542578649711548703703314232940645094200805517139038155966393909207763055263165745178840985375274118176726051114535943886481021758052900456039452707539446149708587662522030749363808557485763949775827059611085966393699404748895196902036903394729628895070896938415627993543413703008889076135491565883672933292976007627444366759505277257898543658714521221862591643062784934274858312580061562785410242985631724372882126409566067362916047870563685062756010288888300554839256976316475131020066070011334542497893689916862982490911294976794047482291455346301162921318549378845079575200389894529309810517896557701711142544853470835865932391892540381140604929956844429465571511361294139668465273227461542934081417944520504175447720664786802446628884410830625772431536137533883773986341415055995897834971124959984013183356748239731733498231494775616248836000353882458227858018916954866771173976540478552115682773970960247365491506664599857432902203103682001821720027497873539852178839168670126163444519404624915314352326992250053742877154235323068774604738671577126819561433915986414485738755470273570091206043131252652442741879409246731474856709595538709252283178681431425205539501012239701029608860951721745033568140467110870458656353388137934042492510230035749420718694695440154401565769541575955379918147194205917970103439926920176715988020706031157686737936866900680329125194809583453057465917509700752956358363191578988042843286949567310486051457718201577302146423265207745956792023424906168665753034109049473723727300787280102938736978398866177018759965941062582486208213302882854951678430708697895801122612801727481562462272493844886741421896935531591730792114993396904058278489048592897410406845143666179162356893197112564231742561894935996701925407400481008759488951326874135609390244609888079329253244473536498511753456089841050484795267925340558876903652905282601448567065802357655119327813905100761153913928937961696983404550377401328627682216159851566160735593710655763387149170627500293900986525077088103734549974345824354220713469204473551982961967055541144766831239137325346218221726879689029297044304427549881001064172254731150043845200172773003759646522019462653501195678909261641579521500049411410658062629874702788739704668499340397475132609500031424721225166926077477574076914425843686103931918313531597338639097592352528123859097434879004896067581327119389854750169058743035647901035842452692134620415467955238701318247182987785683273175066536139677541581045050203752494504321545862041937396970765775578300076088996431281363388023357004082997817537518610010240398661325263446782583784948237111005958130772767382236790514092110400732549209807140295621001281641065964609424366888512849857280467543240362232110698441866292200174403198117864924434957556255647929516503869216132871544740142844272797153848830439582441020690068492334485827149515865284984566756617309238631723238439938675652167160518603507089284951329527069630221529087534964708708664421581198574101436552636203626576791312326991477172737616658165090720896850452484400975730664359613194423782580389477288077615879409234017379792809476618479181528329403476935303814433755534047412430305295031004202343349768155088089889446264128804843077427254393184005100897408972138190709801893491245369283946539454043451389441232305488469314060772211509405310398854756806562579489644441194711690361588554599878515085097535832896367437216081477059077493848305559700537387270849024795934392682334765685278605577521413590205564424226899925870667523074851406873572719278029655532787980788264424683640251062806542881697740510327688880236029310514453131771388519558621463979199050917035538821978230750325043474859156177773183442874365405930028420777650532392098174609735340270198306714243675058922093353720540512213000132541096766313445688854241793045991243812367039262908786360336018081886926804656409519685171998516545823318824104893080578017991832415162817679412615756853923441445641072604782662475118033158479636789488730319795412520630023462094304363326535048230446281474720984600140355831955566138745805461180980030904928472385110675875508227092975159531185968356896216022562160622454693303457161165801275147892200828531492360616432233945339622142160131247723001518541748524735766248831857367565123230930513263645571262768824775623346912303713041629852613148103890891850970294145787048267428462248583471629258573114774335340589483080219292271544584291179965556799274117951005270135035081381327301787872506505016140920250873670874864433200895195532837927600456400355741065299517462781316716892769858554138403870084839467503801694335306021735292149277591811333661970705030738042082079849809925037536601480115482499216670429460027770785028218557784153556006263474897882079984838746456133611055307683869871015712673504835648446271733785572735709909525126071471712687578869378645492544733009878264302610818017372661096379709529965042436417772190472911177066238108524360222031410905356016360551387547257519575193675060747315301327220299209009806646227003473803560014722955621507335003602317829938587982935337561325379939931645253628062849545096002427430996775571717479072218994173538173864742314954780064704654558934242707797037840398621372649738896582393715370405503259004620151795357781484854828872805433018860801625383317353673469265174398224670482751918599293900644884644401579810467572514555657034659348182359164869101577654538502678591956592449380080129724875924799062667859738876530003484428073183587588711824793463779913802338176770990985599124864819322091572185990963610294100468978185013886755266931778669618717712027157275331762561402993572503083356163783622321653318765132920944779194698515088438302649878798842214924620440472802475720297747195480934533273300769741930904480569160815958323429484669175935393627705003165688840087970888924023035852638888004330387898931009125313571913584491358222709772167752701392482421814651708517783349744756313144772751286692484131044363761084994769354324444528510754244317309408881035305505252505027206837242707155635550040909000153513320814645661437755976391000778749685244511956500212770214049641154158689414016742947631134570255191355613360536625114582635192862436467852321063740465302475850244665283104174701702880607554872946453410050890201285286064747026646104388480673051273158055443587617884127010360233639710934303498336960280309895472634728899890372327859725949949140887602473648531455848183358227944315186380285133426060381655900040933457560445392540094842633405270185650601364498681068101816180645671552470626421461071941483033497396916493018831495532224620702133120542745828389440444317413550498108744713774439260158525571734070791692324875089224994212870628890678809264589439292735837884359886785415752349545768352863024198907514320820729179373712896874184671522074804428272156003958506698907334263427049612995306304797371544020473097580862262236444621190953992707616272875879368454113829221722846455312604307066062123878248442977912167516750711435970018022173178008104381554540350408581023814398016361757397249512100369110374685429278766086382730726948616559994054875953671564341496179722768315808799037388135855244313369027147315557551466040257922818464869134035078762348707834539232617783475960856360245136693919433009252900876286738870985802729327672271147569069939934509753297471749999249558199251025024659855587392045204615925532512567960652511246540058111879777156138550911069381687631917624911249069697610015014442116151134232631830366232347900666872141776697997430077681165387003546323713356398547059053150714629608117696450034369458519984925425834342536088600156671050601263459885555471105719007791624904073670028588795246131119226353618697880018269690332357216292787216444646974047251383166007248496561112111166350383574321468349662577919274569692904845622342477891693438377813119054304404439157486541655418881519078895802657149564358207484363136920519929872345746130280579852203140363304152140684660211540688759169103460113701011656054951606302123917267594739568544465245823384497481999907791521866071716809915862986982542362482164706094982289620096307327523192332073356212001014465007759638705742031596555733039021235145318100080917950889132084052748183415269390156616763286547115888387819578748724646885122877479626523921725569764778174791745776165544005413695836191972692176060005351279501495597603744772207084017097810742179971181366187758074295306552566964641537056670672223912049208774090844867120577819367514037858544542152511278055573308778382534180851044210804810498579913164296397655407834935871644957120884150925391424679171532644977533016620013296352783395288168105585636180322059065248431897687750198764294111274286323432395559760500015593677362011896008784717286638970961713343847247897431640381017316686967575594897990499988215251346545917719434473138676588093937997588469829358440671164390167227569251682324529505290398632792590292471860221868954863878934455733955804165240761050544871426751781052108480585644874653338551601555479326548180550534194160187335652529089580204087956014874229496442664267539625014199106712020285347683701196129993738178102555937602378847211221248859508808220860695527379543008160147178272735040788132661663592682471360442996062290145730880880634539378653027264407136757660309164486581673735618414796636328490835048801552856111915326847176760433557226351771627494675806056952228938241348700452990666073254062956618402867020943417215914612166074975470646474186617817293312811643327392623526430064654173673153651580003348971961976417202672700929850753456980409948428141549460640859395751942053434788443648228522851024220485738954439535861645042318751012608815862945359848228271997866321458517097870815879123083309754943310622424835763986332608844120618023574510379735818732596578242595020618665050771005763002142988698722932843579848610078117725857825891157565224870737453491898401930328800737549510135560297382089196529118331474438276514563407086844668106287771523499819650019046813533228811531524116841031344924102793642645457177832613103610625822625932458218057302072340951352115768726113189019864839105937343391862130264073886375700806547375087350249262385386260184618715706771461333568677139542124875076553915514724784125964056095246464882001030225861542871812094772878680862318663446613813930628062568741432486837905948947688947047666764203237916777252195557967336785132558676998759371070232201269477906128318920964973997938917715781557487391618429032956831886762906407809308599527610229416364307456180797020709096756280297210993311324908033937612696250769381473726398656950183768134483669710117854681425246831449576537425943831992325631076756538524686170179526770947539047281393019428485141350938635214712435381432630717507994303944506556456343248016512561905655697081456627412125811728766276710052593155923752187715903741483585394800865685057918693194850561551460212280730716695313568401602610181045079679956192717384262699523365442393937657108813243548427913636859142630932543468813791501710976006758526257658871783019155966214926869378068930172414917647839500571573213496483007470801263731222327355942730820560267033438165233727367750918131995009815731042791671862579217830374162042494936699302649195086897110202558746654648443161522127608796365230653939467544808492217593698209086679643576629217737404675746210091907696232578258733049829029587694823370336661347472817781499673382574824812135691956270749214211682806741311196098177412073665757685221424286836824590721611817256602948748362636417140474441980735298309104228981867824695243147883571160650766182876651488884784351387769665770692139904662348463591343220599040906583497689539419316591835248519270320761950930313388845213413155309012320711611995609277358353825521837675041159600362871238345588399974269672025541022108712530196253867597566673064677729450867950572329295472033581911015498370869119981134418056845004020784877170328278361912770691766679202782857763560755992553443462188481708744887321507880692050325720386408094866944919368972449149360662684244808299170362107974371919740121469851444417807215305600327748788605144660093088997524130866471587618802870485028108513840484449991070341990688570815904546064388050777387239652931287518831862447208083068138438128396172657527835535776060192353801363474639560143048201064377717897849425258938554076532799625502759746697247393128213683584141355543591104113800289528466464972302857024987085895491498747728444953687762099027415833341777466914423428361065294225009452690456200566122257615511281221457554551214926477354958341759844080160962046923051175682071592555306345497338168074706089140532059521064235550923593908929192782109248598968429668108747749734415319334368621220123481106021426979506507510893760827231636715138354055063386366111931512531145120917838381745675623434661735529405306183582463002431174352864085514205655272381226984686085107271673390774580740780946444513084411927854223182203678434167900175724054643984141252572401219821558673818193460233256355604490120271636995832598899454690436855805531193940622456730612970798837266060327695083423501663454749852498568798496483354290314636272148926534062270428629948312909323604732471260627654328358591304720241435189469916462973953465791055273998014272502403318361688920410422280689762764256305078645966857608743610746213734876793310796231263320609394783374368725617123784578577646143897416952457912888368554725812861517695160027127269115610678165288494965078616501178447284398661260108883970201919958647882632041379381336948300639781978550774343360145198358171440001423400299447210490080948795846511552394453157562481855022155074240495587542113170264927167305029144754583364769068519009240880955985716642640709818105680519319057306006190041542349282230177330390914040270475295129360535525104405816941788268999106385836729848444283962921482293396268073802519899903015580141685922002802163897845538904806191131868238257694627247333681463918785775950979631755160880831661692042343378415320435946738078789544394193686316249527292708494673842374155831670546256222774565330467941215429877404096202746105541736773497916587940374531713590313321994753647743754723172116214868941165126085798372589581740864591833555715853449950027883065823133489355423895893289491182448468952796543119591638012760478490453237115819562298995480296664753432434332115871687681866139044234629166545835509794229214031775682750457278550457821729615353299851457506193975024677883671689271279524033863697121517111147477061704566632312587976121510886179393863456632097138346696790719824068269701747607146910450755518319400383157912554390151162870441673955049962968243773889738818022985846173367304046857646121331877852889365322925072574469409052624974031706754705378380427721978756791420418302015073914305896130668015646019982762116878749203385729862569921038316950278889857228996053637836761671238608830592910829889524029264550487974405076440051977108064218634766490321731699132526682203365034529927057621607283750377751459782047822610302611974085684674079702974135105479614108004228488710129228771947556836857992997686297274901514446405941667181653332229621656611091893843849109900046676282991456795839947100154068907287464741049381649618510593801824521506161852280929969668469615817772892437831900250331416276199388698099008942785333416875131954025622327130066262074070928416328277440861923292086747184245792952183938993999357943426592276352276332267908012183431760591088282298748680947303740205606126160198441936580861237415743288249710335344915303539768281999262147430116955596366486790912750343017721011815620646451004138516466866546518413854051038967121837121404666110059267796814844582993909774715409731187981985247402474641166867004618730510178342311308575474917731800197211209768931908214151469841019927615089270656280249362605695470002488949969946266297502728721283451890318482243352565749707196878575085370076182398178679726089088472727500466695879704210042925757164916220990158839609403634909007896685438075538405170986560177204971185342820385169049983181178331576041882892654628111336972974873259933123706045151013389715326528262076616153838568675146165523590056340195726789774339097649041105836393866145728527333326231532948764152805040856206994688419886210561858367908112076219366911593319631880087517729820557564937204024977563171993565558708352023920864219200779936152618355131475406026268998229345269932365450380976024626341105920517988554510463682390473763383475931442727502657763511410202163527517714965978140049946527303087497641764119466563882872759577096875756234440626708473229173484200743385299016137380118476050854812528157567295588767294841867299557221347127140041135841317073641578022160729792156000164004326465351136960885746949159212589304676177584966329294758199736752453108520281261898921749066356234385965404605788326169581426053909954643562937251304154559880779309509410113730351163187138576386103788513894829990570635850652132617399906260923168325434352780961128195496661832893861662677383116149564575685044472027604658606370320868333777390410126690825201285767448599501463708828332044411393856577360650356366039385396667879701007146706413478033553232715741149035300679304309268566219914508725565263526604191392198712967331606534233631821774416896615294796375027571314249783384741736604926343038382616967951212986317533745583704199090965108038954816869281183379744214170153537906668483943212784028429361806214113097602184130440641748373968048322547887814478726426668448597443548330315165338931405247381611425118333957135252392078260901713278513484627279391386768808269262154760285754785568019983509710135886148040847316227512026728473993178364903688431816049906304746862030959978130365572563368052088635360933979704459230918054351948582091129949574358920349261059448152927123942676171331342964349267277832273758087535942756135075681734207567064934668949771647669060741048167762122824017532770155932197471326828513512912611211333057741729504818825089169628571558003855611681244216667541823152554673383808101204167690429030986172938332058333506089893736721005351230109548684913104838110787874820076317913942915060042013625390875423709340998811784485479705482936672460757361391090239762803675552073213533209472048622875703072722482726209993167327878285543888824546978688636142575327615985806260815228447719742624835105769042169990808551484048629384516685455252057200171236194767028434665558875126269364046074691632151809770038270797905188260847117411715457566781092791362690924909420879864004953841967953467991712809124005621561649691337100354211904190783814494743991458430207203881989297228107487082064601069765407357258351806964241890992414463249416105243211688131511122239512949301856279151584223184706431212874457772906608180049938353201824617763470951336804266890688112040713198471647070166766138681685879811513525674244825108097613827182886980139261710516288022276387965354769177535274029498804077716429932125867005354488745279087152948774715587018273866697540990837690838252247571420510158711141611451507112499594026305142629583283194246149723745973992101894557061132084078755788899085652755397471752591068612907244578423286998693246474672480414360249975974506903450188122611799278449071249439819081505365384841429191940402328118400942301205151672178924766601025208337459239436196723350620229749199760798989402946004207655019161227447254393013503352592946876605871791832131876700119184103209294301184430334426767020431819340416640746641354972901454263794044898416878467806488784928778116555430469752571980861690135509452477267685196351827411746123510160325610554394405342043380839524375352998610512882242388840449790082334840421789317217095644449210425210283050204798658337988714321947941550486419298735148273779960126158568574806867041750014569278234569310157993385446544882558277721247212311802779455688122934171206409910433584938670126958159727986485747781355652231983104276451561799057235488433439328642346696552138252821033258964051447789949847262440750419813094175752853287285063932576690951412767913852609908353586048603959073790694665762050675632093429610289134589072004919861355760514765295821164500233658899740075860021809079661186195863026389543544596425082180877284280679868522279271303619241033296484733755076265899477194383693509011263948365744548669031959059351677950586672315410372863498727833741192006130471509711586612364406206631460068250574235575996956984292058081227832175610663824229858382927337719478440210112055141916626275282573305757637402777991083197813070700824679392371931236758112616559105558255933624057695510265016743646822283564965168472492253607526725366451764773842376042891514257092783742400412131683792274043502311108848693721215087293317877481473623271059341826963287712659885579222375165069355541379244208859021112795246054509727132396388232825267118418258095898949253551639252272606347128532743193091795920782740782675543521748590532263981719222982820051772417025706769499358518915473431953346428578908074377762118482108079036687282881880999532506513370169755215482466245391402528835705106495363708685525234440518895554390193760062904098799601432458547583967709276980544008445049871680854158481153732604018122303079954522392600187456852914113906303908337088832504032994189611707013010423124340167438590131346929146108418167385715949667074566807884909499772022809388455716155191206096309629174672210499358960756093136687996834399813140493374401274465871281947318352308088797280421500729983667519018369339977820559451682151226223221234050418327318866149559270179594376246192675488605138672990456529579417471676999800394125026459870635031644160185010078362621428868003370044943440072107499491505490594026248980964062565216769375513503269053086085284056041389934815982171356817768175141446327161665724928578945797400727432321343059125664975912490280572528076665978909105590897613038058286242661023222411775712276420160228268326165108436280601565435613434265360016343827205869016713055050889888790359528026283683626446243634461079347690665332686226792920053995073659285186014500220174055751261804164201009748274801939420663289918388990215104509793527896002208454300465992468552131768820565011133528829688854984753530507460619009217981132872160737785665240048506947890395088308936119165460500983132351281131257139436208287094487264694986308534542592735357616723176455733822969583331978697545441449259093563879518561641027026766402632310536556300365072023849594280311128065236697846277116830121990204544495898765959505545312776923916273113078159558989697667067742988626976167095030196764246138932782603171509979572612740280806124011156260053135172739839850093299147270590834723645638871516189060755509304079340170833914693534617114153209657151027571987944739540612527662746172364053034472851439411062047568028153271673935066917277405441517939257279559671194999859637992730428371258753525802543715810219157236304758748430053923402657676147802282425434864527985658734263295252896774601548643333914098735986571412321354081503479756736975041615330561205311395553350323868810077861901093245856467989821793784050813811534394356383011192530320848227140198507980297983064027406101966882853669188350991456777239406612081198816246505183928305248386209134999304927207329373631983486850526321885793647078116478863774802125397553207760057357353049008110415263497520403618905538227604906747102752128411879611419092542281694599742335891207273332439681171315032837339358630644941897173521589712801212117178626637736069763179364236500993716545343935837660856535105202752845485445833978432356398992294790381936130799322958450654991359861405334122172798090916565592740621681809431805198828729924934338033330132711769689582395606425677626244480388078823601388450934641893881705631669514101735620337234737936572273217249899536229483655410887169872873969797725247046348385511571015597830690456821982477390515248161186737809052334649596485659530100031016098974131249589018192251075433853951591215801160099782665014431223430868894170133216938147068683064514756406960776449638183994492144306118992509529991534641342295761644397211774893838068725057885096212257976644712637936387438648078417605862917566345428775579260154328609457441316972098643942363196990220581371620610381030733521768123057696684955799816682176054934149976983297220492865281413549666637850069524572889968309267878960117617320198320644140818217954836347710176986016369619680793969984328206076810975315291157841395927347489551509059753657224478712390878523102890143823828479487933055194760533698062352755965657985710294034742669121523649000450195467799845333691441776665465898475556871561139469359065153071821652370054255634435922354746672960139721751200152830968655343652350514828493691206188561597939251342488441364096301410383787811042295782462777462681933801759074312612125777901163330393445197487619453093956342287961037139141963656186302721605606948680765755703301922531767878589843948199208567931512136690625370487604189546674414502560251799831910934549969786017888468131441067381936152774973001721955826215449377317629580413155270543211069232211269443678797420447528353733844765752544105255848608434291000032176128971305644186860408935581834137723750026613447784987193380527044744908883203887891794696457907907085154429776277026757711566263531785731105247355869574185628784170152143196875110460569884983184372093848541049222733835081382792848985963732216129505608367040440176870148004471510733983260952876796945285150108845208824519802933511417621756561112310914262722425106091477147338291351368594186902185144225542445641618905321253403282646642597453501898040811362537465227179754914750999680626354170081659809536751436328325044522664861241292324399944589540587391265092453661067454901423064182965627586276452967993994241345438860994132606605557327545201724489844587767993840577749463146839352828360848901640303649079662169656559332141569875944595083159934166766713857637151292024759030377283373356124018650440884731116593062820397054203786090171198590705966548065086901559918607822954919379792304541574625923742526907882397087110543917241966862770553525103036501706527597699667824368410963069724618894906050499340082268644771656176669135858985496075444152651589630669335302113279287555440202664396668663007474026639588541228568744663661808532429035999264596855392903198357568305373189222130589865338291916323335731253870341785055457854923145457319072612006783960139767355213599834100135150312625316422609724063079706152058501189692030227977880935300216619306666621504437428083966460397549678929422974160467005851085044890626617474857446010093219715182342481229666048949176387978782913946786296385936879981543798973069357815169503323004576527054878958939431659548424997784158805005689432186466003399162820702109162231472083727569659819895189108773612598119690311917444986448483605529899099986460108939309909736866610728718446586525882123822341191557823146019021047994593115496360286195468866993644993924814814302974682700984159667152132865545130613392265144745181185858005119335005963991569183429449946421860103686971311596073173582738695751228184574915933051084040580429711186842329777771758736595806367222425108053708532747060789994331500814822537713819159312773720396357737588128121749466764775210279155551667284285294538356239536215037407764758460730213505334095191997138482076977981747099762925974780127658801396022945224294043531337922540393192589585834541603346782387167041242990843227196862764685430947700657560276367349330906475757252521912537082673287224877024761677125723109481170288384871591339275303859891325902704625176863042261555501557728577711149289971599419828945611063594205460728929790420010287847334433132851618338992256567242776298324497321830451587766500670852638301669636756806232040594829956235248198196522686618430965179455301737194314122068267945173096918569040401930260756292668874154011578018381262639657799090066616718584327347137078592566093014806604043721235229884473226282192448693753558777858331383825036010584826827991392278602584036690925970565778596076281473760193535951746948179201778770029281563521910554046286742520973918976873405014868340400613189901095681286673021941031243961954625409754552505481759304509225840130424963480724286288286620390113854001587604959435652921910933075620290210322955902082067041817520407478140447636662924060798706325540796954784156757878059031629353935361359640695387630860252253549412112375242583349369967107005750111710905540899145400713743287155848576902457500740587560010827431929974733014113020876384250186605184072250481527069205114024480145951760685249586383025448160733169987296379463532228456231678135106852559010505598679701560919201848142851203140168481276820559296442380146525593588421992156130579203348680610964269308779155454781705837512109062396019228181178392653316403414862965860634910372809488379856905820797790143004399606610678215743847578727280000005105574543447331908539616954639744772851078572180833962841478232149229079909486630200779794048019364905606240141899872075058138676312741065322827037179719068466626073702141926147420360882232150876972599056664262498325326250712144349025911230651114694862921957699779145886377032664209612450261214753274236348135404609505601658005483940840270809528345589567423753479087331778886524896525222609936341219866632460985399175792052547588551019612915608519275136982046980158228249976487019866941556492691270415052357408697781861757471522051130080790853996121062067214765537512857873712259899362742304357228164609900789179854627685596307997017699510324720680196929819346347940174677403747142634893537144593617157255450756250514835705406019598257185568606332352863032662913143164900914175756737532163399398178369454876745458423155474005795751085963355883347793367805901897218023328068100982714863470456884842448675774873801993524007266920343267285954281200155942723076668240461798201711582329354540054125911021338473504920297445820964885326250307549117135182396020145732237296646953126612582302976181418371215175485321180257705522399384567768119278745015884708010325188474961958678554523259560133688728891936537042644001695462869356007396689259239912875384589822549163622425222903375000759717455711177734776732219298562462808728891743878190384415519152819489208220591882708372138716081289056071206865070085260988119536887866964484063284066392216599292805969557118134074424417662366746662127018379369581687970974663355792967493529726149099202559865156467901463615283376699322043940676785897185569122633900216250991468710369293130648398135215824021333619835495041989372305878483730551231588374055110069648343793399501320030217107074757739433919446439008104889726677247721741374588658366572977005375941869161030704052378452771394562255431732526046575087298705226931666846461890511156831770841085129005199315537585581735460378443118532471214943119690221179965450883397174398301765362818465736415787628583937235526585355114774307211272798221084729018500993709677147845860403939971566982619936765719631122793272131728629887998581277936923205673520566952186348279007527878776079975569429375057220310395533170606875276852771333909761813788670582298223465690865775466498934085781411741136868246902743905563570206988918823748408081556957212461816451637313575731348334860592652428013772867806403049930493722151361258661663412357314596681385151811800330128034746342172515219215416541432322573944712238815258822337766747973001888546384514373752492861399122832837218738274381428875386039120160741918336462855568920095014093031776585599305748818564402791553073535680615706099633310944166145262495598110188366926258888826879651358785378229322840271887105441007545171547195321677867470980271843382388736246177165730269705705584541844380498199207547213291625750812747984640446960473090070482971269029961088928766663241202479282982797483927906908384928766379052702204221001352761384828167872099726293202224173982079715161462719486841119268666272348956762993280181843942412001126756247712926786502522786088845100215589982404892149764035215987331391826238992935725182277950212669816450069435942688521579902625551452278992448537965154140284342876861467855678523677639023513659980066470910026785515880840536272936721111534553701357803088549723926634479958048052274843522990229544522677733243325299591651441913971659502913125453355420123567211909081262255914727015078482201569006382382528373849287347868649377109549049584781481075036417704551121592697422793110963096031697617794394916179533318460485236355244355772289068867513218255255303101153335749871241964080909018286098815253112548458676649924320049715769900169461766546468018726961827990872672450903645488636919387674947437786589247596104328603474094697902239618559295735826853654466895891432555107341347675991608008906169170050082623110606850487354011000429425936167446068175845945326851402901673059016282121188344377135211772554713434163158167746590009304617635295027121413462681855683442269583480498045528663880541435469569205368770992397245063915421302964692181595899481186192930483632588258215266303393870379244248353496138542408290112829223034886895752059414142534509065796510137920910002109591913650844147037170852691500970114458777523474781004266222443107401940623183057089710837645695995047334026876834772050342900602438797828549786786960575103306641846063885894429837608560474706788303283740204334649049435452551994945985594678758139600555394467941081303751132421066469067467719902315271136370693076191746001961911768660215780428264703740869427096207956802055853730140407898319653731567947672994128494369013102804071610783881311124012305186735365690537642775291597176712178601920175964236740483863326905023263889880801906094355007487241552006170138314320378324405750335784761752228359457320079492288819508776460322342782857742874786754087635870967366556276678174975512440258473236413902148460089227249773766305221468124216450483088131701217917862521419096001096438437426224404082355180328571723560559480599466691000188936253316821208966477417012973284300680135884994696052849990750327509459603534183659507555454133238004068125077504062718173233469363340681224365374540368933505482031942048444128465189916894871721132609926062063850843301203357068637744777157235175170878956741673497308260578404663820758245691485476816046083693431259079417874589007618727001489006120036664027941601035662575851965500035856625368759152596821923302272843986045971843792523361770975276150633210234584049751660488399629852980229385427305151018081015616318657782962486009826112315963826566297903531292770801171772023662602250818549563888254627810983781731223634337317490916358783025169361987805703610800650928010625771584872038856853626946423320419533270751971308073982997557857931903039323436210691031705714412547525138077425579023271651295885382103343612884094880290474795147510572536437027146716176112778670956733168289070196124026558092275192118317923031309162101231290282911976199874706619580059113805179667243385111697074886817055300333983352118807820558899486650376512743244319949109517327396245114672505900324325507627348666499708557987299190559560317176027935733043751183857763765758575533988021845436867575775539377403976226181470329425428017963512910727071396314877684334526475372864388895804655500325501859871631395942744207692869003559277355248404983427597956937498657786325454590670498177627685207620548740150471724558482237483530377850382253816107907102974026496108862347694768153154808462120052325672078797893254990140945986712977687984358496704472566933071285044609620496907309885384459303094676762646468307740387090642474215038340185638316202448046498695176331354213287442292482162039090954747983773907013334651536107467985108190870171739192010460965416344516434839810973812145189902655992031098886708163484039316587686654104835779528477579049171678705499174875963179396901500547374222904984654289684252475054850174452943685749822092192949826830005780280759984991072136244736992371555489158421151905656605845630017560042826044485679743967497449294794123404988414830203441923519755141125422696464875698330929453515849568146141046614497076417981841937896809879729404454689060997249577614251664384527112674687562809287472005167059859224645857369711021294842190431448279614727633723919204530837890047335098694344161383955625651964472779268759408892534576000403075479832459614830437544130024549005331642956316043992421667217338726074737481202471590566482752071384353083100664464563529455796500681105230748858898092855144788740425704180532736939779026674306628473939936307465953217154557286701937213040190620299337790641905104531110489976215216593216638689734776676023357007910729304413265327223064416262184052261934139482461351544188539403575997039070531442440006482949928459408298121914782037941979808638913362105622435083902317491064235869028647123957494194386046461694177785369273849376049826413586433509403781140681696424397695239396111691856063394660283026723759286993712416082504426211791327986128446438648785758815497877544962569444694982403621438593022964509053990135307615278945359928165075643114040469333650052600956699854152741818401732402287828046843985470124660593905317415928897913993180619780394013245292169659787390497748158927037574950296293136917456820095890725509703141636951204935110502843410643927153977563331283952684403905673914197793407829401726919314352439020958313926270286523787939818229629871922745568147259637531652704332136772314148909469161414650035064781736222695633289033249338189872250566161189870435612274508120800237414178083219921746599351848949369106298768605685878802962862359804144287722154310646620646777542178315579953888524817851929278709656683948419876268896292963540968550125717471658465465654562094450993505331238735110666136448821610629279529214852734171816209321966712179074527915005851505654644746889331776175385095511525447186678439120799509354397252052955295401331986766097622451977001167493370537731331370052808803846782650703946549534852627852760817444584344664737054602569761055311339019446447227436333186747567099053101622353787832547211047284611730777491285193144843972925091666525721749486004218403180977910494848735599824127981664358467859862443324342274330170970025562889514284956730248273880283011377930775991408633331743072829288247226903396090308193610463096788981434365219659789323803646174358487980281628342204656570205317822262108916652301767245549581706157608256934251991837472855153214514255972492987119695215456559268825381010821632743823785345078261292449648669698523093244500829090741547406257474833870233492312388259032758365601151339497381835642039560787419351349250429563335252142892637217526951939401379518269702697480757142272059354515322265501199498891269854626642561539611965567635526611647208840904033772069513867870958837696999378133458372884056754560155533803478969137622888426241326368722047935512034975264305801732348792172494988625564215594228480345550439453918630651820519662451316562930802271975486346990612899086432876725630660890999532852323888272460814405800592200473464276191642232947602387479137243724655537550994295451492601241348077540376780286392694166745998907694009668767762631142490240133630636422113124712682764307736854432289428276423087037623292757548299223652254932918478077950233005007126798175112932988719588985630079532824817427900179871298056494390600210702659969260374395830241181063214326104752554594249100096271819532776007015569505175514559917854138161610053554578806136620395329917118944395839516619351073467294056607687132311086359564267266631635798597864798565038730631963899214987821621744556165452337519454921768190725797993282364429199841562274915205275546188044436343706051435000321306890953473846196514512302710837907539636509718314583173793509215664002467533180376564249559821287815141645266255472882468244888096645342005599630095759631045255992691008672664336173069968639175194185142358261241438521832813741561974626616202537166816246779633393595733842045886768142645157976575808532492755696745757179769302917406993171632842113893299939653014243498468461627940518768656929278920286211616326447188135604569679095517000930320189311032326848904013794053990589525477122298796743042649368722194358600867305109521168629921762206518693637900740798605817429873170189482740248500175259354937118708066906919375380700150890107890127096634687121183990130022227560199384023417765470756907281598072021479047466847559383584094713147555226339714473057636248873419586023150123349491250131505883840803464006751058789893714553842569130248285101176780490724845208332696954310344525255232997952227922435802183731660158263493736424990447083351359939627536209779795142516586171517734361979773803494053027065527427068656361091649847922069055227490989084531246698645843192579016781365023142572368758195350134174778351171794147286853029355459185845624154728550754421150056368623083377054568980159271505065872975925389522028955466125620390220593929973358472786866382273302352909703332011590677757487120256343362583906553236132269299584339980027483471145318401773505899070854226100976818460300888712989684644561048937824737225834170918027184440693769194913173791022714044184463174909304301996302818732755481094499045498099772500267388920734455595879178493521029149027274806663191380766170733674300639910489667800923124984636956799565306640888300176820087593946335638287642452910152097053010341788478598573699351542757293511878919995236512259563878742836871720800635924443607899727157656988266978617959065269831869900209582737281485606613232774594855444940045210911689426305834345122189411143336021281809447502338566231782805649412716618353155088394039594187809117703126611259722479507664083204423698750529106518220464733363988327784621940306526764832488581353327002856521608998543260213498479440053290544258380035200816619481689339330957955162486020509427775826751226139052499288558526103819046757197211163182211748341723260086560316778159872999652239521202739203533744028178602447853532700777413111621670403024242409179427681059323452456044999652941014318841345303190693631055240137344919302226484955977525309031917294616614785298585815489933932974253939263015559810345817632169090354130370700460756421001876143685245561177142192617981073601271857803462072502756854372887919717338772435505557676550188644418088614275355849701893918377494690360536713981102104430690835288078081120759386888042290041359336441056301153235346512078177987260996368444913157505932677764596467850919909508310168088949216336221414314631479749408221933569234717833164708403462807978966855956431483507758441442426184163308774491217782323489397533270273746214753154488404517019253494918353139405128938286863920390998463369652758244823641424545664933819565714809451363998710947306454433288015859627222454585194290188228028403838689345531408840808888186395035509934803968073505823088123046680211755204138975790057343134552999432828902649743743194547847887797304519941614906049634517421891054744759142580678061015471983947497402321460061416227305378954679069625366805490480798768416791668354695602998410808783959872205348589448418675425255433990531896591359567303768357640253398000126196957775437664553699523835935940841719712273016907218978727667086043071416793383674065430014505969126339911997403534193929467541218708028096982695287031119958618729511149392947971232290826570847322628498726523588107984851952597280426836583268321127515545352775964940364737741593854448767942989516037767329374739386100484247736091462422592798294975705459177807687137316232742491191412615896510205588666940067314472726518132142806975789160282707455253238937501675009689322518000793240710609777607551576688819614674648341969783624960165190336922169310355488767200452493853484911236599455720922806595368424310892316341165750172216595052036783676949748290112333943505838206489880089975083815516143972508168554838374674930055533629638873638479388604048340463997795176220058587102129535076386100043532611679680059673937459181664200047179134851013912163462087292970817647452038857313132409877561233024410550468574249376031176926289592488899955815403327822788702472961896454427747344768904406178784831469543105896766770193508362027702578738592784512780128551750155762409967906970996699635133409541015058512545780836466567112384167219477687874326709289339038615467909842856765716152471818675020403980626437858447965160198537492277831089319336260463301258749129272122596084474071288552758371830168325708338443340634193234446908216564296816276059510523663535504920565641574718370484492220980524709219285148493775026344927014594977936997055954357825464443094042423642802957795118999923780972238084709511970233004180788693112894356194161106951132628530787377403271212507010403723663581277560709565155931541521098500657187697817972154174704435545598425340358904141923431202479052810973202250937339685842555394531800966246582224080817882214594350387285827578663458793628993360181691514921095305603444960380723726369038686674504266062800248239399890332775569837709029525917344319416918668719720171220231579946824543063960557986254312181724685513854995310217729367728179761881079696620013320155016392765387325149812726836117001865089943373244577917309656290093856706521692304727839673061372183129684637508934130498483038308006153889314248775710597640303731405585236655798181251084160081430881427830328112318009805763058558417613415059956732693813687557603624407536039403263146825538583744160927644081203945824172508051073434444806816609610167354019295759489329063041946424301266339347813859445887424569396616954030414425714626390789219508636250660216875305627824330699889342764323383790747484659838926049393486063655880856636940266242395269213363999955042473161317148616939751888022878877800483020906615806259008261718864794582078327780008138896886028496554594541444869711613136751738901399757738966846262721923128052464018057880337396878789524641588293018917355210480423978845608152287973085202350203603658485997589606506915823278078845051896915481691598444171838012404823536599256540961407366343285554629402687825531621796600326490558034165364364409441663873433179924957747608904750380341472799849311261021687567043059646082010960982016016130899122415166206246040653049803187100367313148000118498090042825648187427615174753730183674733060607320262509840538654958217571549318794783172989064936486067193521256802611902538834394407217873585771074402743418752474349491850214120558860569106165370169419430513170903162182262735622084781751585855898825832197225486306731674288282287214939621024537638256480844725341034751184303644348160816094572736554686058256001961788059826151579693530493150253669527396127563508376246081839251470605776902246118950122088346345856516939292599265669871418379842255086960691926553448832198816955340692910138851567491635484714341275939128126262769208776240874226650796775764331121413613308740895954401474173857555640682379978190363893045491391818183465992406669617267665710477545946459650256845353098156747643386584834581274469174243177847846357380363055309577809492624911840260130963230406125842259110486202904730296213770313958307750430638163865700579846863534457739022288478305034805232391601670862368168004748223576538350768350039547307010146834764553156280784567226052821391286071710321252062208260049033405646124893075890798498320147983632205629190723404773780332005200624856201115093962618688417110930273921548147189717840975764404701166539497013814464881189728318746781800615976406801119820968552006985973382760358921654591831287595519790709447191436092357125581718521030989674608614426025454326282098551958787708563103478430901877881655649538481260056012343450844694188324089175648864305214629515433155930004158424060316119250720888909438120412900630851713681332573211967136466846611950929383083839888955791999874945458203451270121577435313050709283747705321052656891607825154666734903996574244490475769307785776926955442068021681593780098169610079336436183202235984143579210380116419458410149813122883912672873365219493325152367314413183603972304609208634313009326083156103511134441133581286652196723750883213368770761233537443738015508432541695790274748783419184987694340404802938362778498239418518476991779946328772148958247151901425086766239893866827813741159352986048792278829070853664219616961675863949616810499010228036492779958510206717755829448574033083359943420400667698103881184097251641071624082862684451129636884039614584425031938477983083579377657503205587839562959161429921566472957501717924233924479698429956613246277445658358063961726547648959612687193681963959282661047322255538575748922378632734215212478057174125179195059867574990471800813967437845526905807679024865349247298628893017964113308309081503910151969694769872370700990228765231672548543453895984811867823989675732554818083189238031023419202661714223900806233487425213531936655025550752724974168889631060266360589642135150269694760625397411564780326537877302115543149098278215530328320822691402410915693338814032645844382809055470498143149989919993613326051485028367691668007272413985079712281216470413321771918723967794591820019255330767704586229913116871995950061315543652849817987296881990369644217194407132413460682253851902609969666625906080048762042321814160016960136194707448948429585129316636974301661810292757304667686042100481093458554922891028863697229290895789221453068800915394129917675031866201230771454306006860934424788633923069923581898312611977907650969183461911722138474084454552270496028572460342176773497494703784522426545148713377501576763276350646100985458521371810265596945182029570917977183782356486065470394995136930504565184540973600436698863292114923279929187947852384394110345526951590996231657947357439603777936071356843987119755393690299044262849892375299489530795877174736876293391428216547788067549042575845114567471568440078492624373704891212998393520936214316898691639803144501883762708941963442285199076356902674353912731406628817016906945797177521189696006870256285049762219071825505364491132811912799630535596416048292827678286962702827361612011980256907271739352920284162816971253762727422124483495700283666455882444928682027781143193969988494553143240456499958936724288962363272324940677448025827979712993666948043904562051366817045545572548030491495736559718416509625147094341937061939701712991079019357861042804113924515331093783910549795433460601737364669980628875477044581441156720035919118961459685555472789361629125729946155277564553080000231754660936395541533256554127017304217513354347835136266507049827279494039193225568884904838872772402234353166311454415364335778763148262716640400233878957283698347382098217066265346619302555539494564674956839663873128190862881312517628382574951059235247739677564007339603958717892359481848401574123363824692255559013642610268970413974035527588075965212825788982159451937019820483669922997404352261989566892478339297890490117756179253981511898586654611578282858944330031963828491263505068845646786251932313466298176716704546733689990146934289950579636300946124937363179891375202368181794978382069344568205866327353719310220294693552355881765747059027519343551524761738657009828987924477439409054143142514300174723274520451764847747693880411298366041755460038056480235253931711921516368419863422665566389867431504216467120631612730128097679460743967979371538853550576229093640399356305877867706026987870975914918911404807504656318773870752750646496431403281959800528804888003330068654272698165804244429764620698273161133984758121929574362191316320778729342308494402206730219242179187326297908958284062886948697188136611298209504461102738167414690321904712288516381111322079479106768999334146716632036465299054836828456908802651748451123302317762626449813136991456461921787512544699255090097891973240574378366445326956515809505307436571074275632831081246048153782790024063447078026767440175172719617736521132298482318328477036984989970413920987094755469138025881673326665640401522715034582350513134857877342750229932655002347962428059150689752328087556803098372077607927082588989390763380277056885638712032695313094569926071152481334630387442058152533535488411822225940984558409302945717030160650633994188324112766134527343752081624128360113819864433969115914847377527748732282170523479326696781442616044140444980087782720847621934925029181729808680639442739418810416238798743329695844586662706636392846979173859405617248586203971673256249418339202524070707159136695097566612033627360470449218095173391314156865196290685833044497102491966692541398081826921968527046968122525179462333894993021643599774782245130919508822796328241853390813334414778553842902946006474365970547431586079956665264334295846432805582346340823994318459220569942446782645948270382091193239097426616651585391597552098824906510384146013434103767866961762282109752755785362318461056418823436259577986413927750374700945268200751710027220572213812206214028134902117532056446462770412318869230029356562352406267412150256394125939474797336905076182872231273217594752851552310129297645848267680418179163848514219901532879875621078235197307390346182671355544747980589003519323846737805811594609851732354024391638031476411661252341645499956538688713965856642799541683132982658392726844048163832944461179986885206823358038399449952681186614170517426386749243000718435362340100002654492004977467000371902018793616182919268617702781657404337132497596592345773384706938109662491694434333523792479435110577616858228907813161123641321848122264979868033899828853680909529585475948369915547970436353387913963288017923998389926455396279068073359145659367362208229889193219618456958610494784314186889573031997327581395458211131750497739178270973288071790128273854497507580318433152313530074595931861271465835868183719916749944809059095902974322984772075347209327000120192221691450896085406032043020709496268480570175308226615867806333594493000237992195580669436796614954152424145890895699637421862969221373481546615028420259590515677322325127179022852950450260203132808408368960258834255026115229981209006726868327430649340608415484928423412485351823770164951670270052485588493534842123392643536224163678449452124259765600933203361505275632742740632910837845458508561674162636491146883746995746158592955942623207071786504943176405311735815307831059971982992592319595901934506392795527488386361934903546179044069378766549141092863874969436284957885046825112894992559663914792133694125839516182785211520132383622851679421744566173283613933335787209888030241970501959592684609226742675478806556584093474613645042979962355432486611436068922527884818003996111394665594102057388070541876622568375474007782894733563398438827344415248121411079097847607370268263960533337791931267297629658343611138377222503296569214465387262279322254560012802759315490723722485721817563831791900218133164371375036165314533165457810893740658249711660306828887763383283292400327563436797497305072638642619243741609475614031477651135704783954106258983894465082365160158838107933749665782224316990531224929500467048029877068247837605081293228666768249479373660818341188310202653462620449500078126242420093081220282594388583014142354612740188276577416753454128671665559235629795586109327814779076310493743530694350054867760133052929476768322410727128821133369447980930589680191791730642997146812930150827082268619332363108312962826139506336866593724652319967996930011522318210721559356620809540688993006797153158230375428625355025019778795513913324913949873618929777253649889820579478643692924629883275404778752791707104293324857399626765811699542557945561931836116731348545230674008469049375112551247585266923767217635494589647704673286293250858233767933548925049911633502734853444191821793220778248883758238349732722296476642926781144656132776951542250309678490052143027061332509994041967605387128575960834244942901381315087954274083546319056477280387010546786720594306936589014978809654685488432093353461184932747377203925671226054176962302045453678260273838408289077067490197662387384394040867561036408225098701008436169755780527805667815012414815429144732390104940166815090244406054331246224176557674526080442588877696830431694977617605399824397636738769285731998465892961091833954822080117231738430214854575714812131531416986525761826900236309862315384163230138198598157582330688486119323754675231263657788003308502600703959910997760168800258853923356111077089866187984205376841048814698377972208150212521767707878265034350376416129032456372371928715869155771237188214168854653423913095393941712092619093331420191365818729972590974479877597284447536138423322550115492100569726410746982545117474719035514244012663898357331518351201296561386089075594321352533003014771414299967800277193360687330866214602469718286333177083866526355546967235581214404548393509536048898147891002667619354273685658376384615005375411888802021471837384514392404694784587507018823349229173334352371704665337921264967382400440697323053075582991207371912535687355518651556904756724284068809339147246184619000427637696487590684401624941021722029360185920570413127739344101942378017661634052309604508815317168714334582928796565563316039148360804434411755122907658044091848402352233039864313567266597657783332314147760779028224390668503701036076143973190539208466068819931834343487221214331498148100165806646509118650947893167958052027322035491519839255267301048540604625996642640030142148933061801515709966845862089090363053306121171152463631674713094738036552279115414794154903714786139365973797962735247067989891785584520182399648312335288535517340709319147970027432773374893014208952413182515586420937237774080399909526341747529241311932954447002017819425484329508983576483800466855237355313058788674649728085321514646380524510701994830604223165599918671893593265618833376187723614226520170416836903232731039582940008519155440800049474022819857992146610814841952290921400419929589036259734988126125754102092541203609741497022383787286975612425661757030240522032106570887852744583999217148643204201639019280746119183252676811528391151256148142805252324464822517417379750960231975070088981598774487104788972271758342454661371305925449815687910451624740669801547381035016062812048467903357708584716604984250057211207572679236686899828994860271160854577658377332883494962685042577842125746097626681279326054113316547949261958201310260881059991991035994072807694923355178870086410584221063303726110204216387366021544865761305962647249298222491122810260761280190562732177019180376001350737238805422247148984994252695061234287624087079451321881834271484534982828265465151945839077306897323477632543430321028359149449137681214579418422854579663628851914034769528468093047678334665290369529274515256162615768469057276332260000864932114576730737717498793369051182278188446907616751531166220132273002127593046454721652976090589429866712251755717008051407318541472222618187319819655252417822401858657087422893967196344590881590135528664045657430442412759977920619243069050435846860076099048942279731171928117770444213342993599491705214061386587819023676599894384615913482129951785090588301455946220578405112385895768651542655793049630223705661533588754011460971200119151562541887887742804180753766930688355452989188705001860707673522595190682594833100595787840955017394116784312061102822672866285893336270168749940495028257563258625449720420464763891281765717026722221591379428425877761420578623864188655163035422903221209726590222800698615728917462627643569574336622346922219251440578558971725633386870806690127580507222728425167258151461079420019292320318186551756950390696085370354620440693015571110681450032268340319680155184295224499354337678688969451313843120999392816496736658964802026919410317760704521419703292286098223156273860053402996836187376884521153891377735510996645142769726775759621604469808254867645260354577327024506201981181687563238613899894936221069042449662388256168153591423637172597424872644326148934307991286115091084373205746991289309850699408228341201484910373047249587434261706713863067428859437815256488132871567841404477343657999195312993085522993223764795673144503217043620158088466954701947203038578001160603948864286084365211352474941393154194125093383626742584377312774593170352951198627383349292331378215600637322134049251101193597232962949687490370862486532189639190008473648498163304943765134135115423752664116124553193220312523515353215077105621170308457066727762530709359184110906330033913843393929419453997313461636989796362629126448838415729217401748113922626949190313765659304157844720287231230158394724393385218279466461842475293923993054408946905167384155105341053654302542226536142434532189260687071456128491070886823168977789943144690826257209569720508571490963940757550954151163501894780069132171332324053059141237543261969903599265728889312639708709264645342574665399096145584200310250976450492673216282074884055164687392755055234679603101423854314205320106267862642880587428323807865568656515504202570877927337249136028631855315251554545289295665306037077456898169737758262171300874583182756589619912162213056441251467721616508701429312227650245825224812180903043821754885830346629119006508755165583462769389443171430576440010464758879151225670563534595579710174271535947408848717483475569661745998939243256381962284347105288399686339439023910774119328334758624711278344830741564655520573043670475789323457264894014312063193178252391823860500382605950010962205612425696231933048208924847754122325294118763999671228596467608422621819501728950763500795022792421423669671940068255214859873183169136713235203656591471312439897500325298663154565888361098596618727490792549738631361666354057975747806604010439736711975856062333924629354188385350419021619015640589389542186535131537831022543941712971090207012081320471659665011087972807023596294908979166519741239029314120679017330288445755583385391152968364825998013470516802358702782779905847798417010853288833901813987807070313856573043888333727865738541420675158247628319313947651181301027240810553450351021058655451541780110159169992392563775275401027587644428649593707863622886322580986637936226818019268652286085359044344258362031759094296215195612790281870414527981538318819683707533514878754658380776843715459058338502279029234489750334870379199663095309793677739295486286192027670884768659716797685468093835380057323455212759809791827788087028850307115363102617211092406126998566809419231367127027072576742661502574480118228549959024829029396955941805537837353016803492676548409857936946824441922471972024870070270412720142180806180606872380830760304289743822812979466674028042824463421180514241894004220173587492906056876560547757383499938324112197658298957659169359367858954812589677979894334394578232184947035905606337665587073718791436555887034106154677504506437014577458232628030593068536668171681324207116349990995435931231057235444569804765410318262229822119571270798594930003843102469397874373687158957011304987424672567300115029196854150444933614173240597660773765037108637121483297663435038566760024433363380540472310658122703231521018469637290224454323926053453100638619859574880558795893893083045546191922870842404810902967731173035573954516932953212128515955596343986084037189006137333471471337730442058858048534615799428289545419625735890359292351891268133541945869948208360303066503834290999600633695351548859459936037195023478476772536543670615103647150293343405572223558734622575505294726372290119731829630036044802492062524076701779480631922271188335445697139025219624375410845635812305894147784595119547249238724909928485031871837501683077605088166808348139720900738085848368694717170272092543617858414352926193295581355262195738748312191978408656625024254059030768454367400342366771634928258227486163481954343419717683674520061299360610901697590797900651020666192344758154372156452793533705250772103465085044918872390280669109651697690285806301797009302841575071457233535567419942624632615291797053453202342274477929933739456655889326796473532069110651538160412362051932707964155516150817205054571039219633329927112169078468099840111435632103730485352200375074236339370279680205343959591919651110478177624390232619283908623130844386481960405800394660067467356441348599605398703568483993880277637652009149183278013449931801249128269721159165314434251603847624442155180125120552303143013302541055657383829391083342708632309650287134866571894071233866630723987486370673083894611498192171155280816571607996590490411988056703899244348397454295214468552806284625619818705893078828127575503467388545796285646195093758107235524117601186571905023337562624461973684974546905746208510198826105525610917418951463228303048722365762039113025547048600015853549264508562527231320611095394239833351907248496002621225373866593163422734248493258918034710809311737486796248726492622368854170113968034104670911706122837840323004368581157994126559757736160293217344182719646133719243001601712258424764542388403984923176099400219396352388738276261469851428910126566689765933863340368948512246839796020839514595399315790017358925160135600041712737327769135293612072268404261172483305663985257108908261461857151088751347753220622950467595827013981804473279357558099689412619022187670210106707129548663540921029784362796035686387608646513565939424671189047991761770425623830869621157164761982007289965392757056116271059769284670797192097326570914145395255976541192667524174891938884421502815695997477762570163632872718309093768663727029196812628940016879132466391767899119320653276013256072797530573762986635936665146604350774760847587901279158401501160077720140131138928720298978722621251242311248923025246964422291006043239401757821376738334829555717186778103274322266219259661351511919116128357156935972455090379831304741985180460886153817850334425761765379897843287678828428334360106103379047431422536367064276557739772032229334882647123202409860875277206221257271006212171841245044641226411328165841977867445476409938457235430625364462240756915124149693613952247823929419753049975940720856521865548314423018201703843661103600978286903288325330929738148484698925445769236865186847545509848215149982827993177640777590964834442612258451702430082287212787900639212761546823287038958957620583198631079089501302693836456673087046304996307422552628795557369952311230381416337908026791807823293539615558822451440657855359600435742871870509176936549613981703551363363054141739867309643595859443370727624281067956632288476099979305373574027163858316433693405641173655588040251653304689650847224879809703696646907489312721003569065777057010835396380939739380169022267398472241780185212119248448121920809344380361057225859248087396975338692001570336508987450960168332338396795699850460169963362371730879527862523967029880981429052214754257511701485850171865027977460234089156682881468468869555666186041733958455852701302850529283413021895002911927573592846278559122813183412314652419976728942152016930447131192073807050926849408643293421939968830159860969574857195371780087345869421061655250777108228359398400419969031762331439518074710686522228206038723314062909670198146829629364596445556424868128051116757250438671353040789130342503056520002093170109865239703359479635855036691387887592752995298365774647899721723450118035889436778682701156519009543074662279950406424610529797103864451694723256948605334234849564350135114311089268450782417964764396244044444791551191117768138213637515302263590245440311273565255674450546294275363179232354136334623922810535510614913162166348577841671878449457008885897324582129444731026810677908085373733483157957799374060235911892993133745914249283067240094493827878387182351957062687211352243650343485239344348240848919432391572188568580350750316578638651973191449913936643070426699863700318915226461858090896902160522227029731169339988850310786257315605196677571494814914121965221895710081200152740506416383771510819110590315547381162581703146231617487991997434042477520280381103287235969018245621343949207871290742682692804170885421861403730996113581990405301916558292004755713526474780961746410820174454023307104473085121859819667661039984586083824567445536705350848370393565227113538788870678985948572030803730910017723215663861766441820225247735047260389072687937657621075685450855964086026759741142827449248279248954728270593804801329698912930198652751058216320669378368055744044392192847213759982612275093175007700362915436089718299895035193940413014703122110465312331392266859744234331661245648286188389342867502514892351841189378930232359927188223372461838077583504161979486840208010704508393327115755813756203179472476917458381717769077459766160378064310773604333544530640590095246392152416860287303549745492244734158073608200343236904366333097696564964711705104736699800117804677100664699597661689493812148604733529646608134980254026047075301026082883870484627967616343826881479196459119944145522763907005804535466091627314693436577458486129541406072623125749560489571143280964411612475169298723232299171310046276283087563345813653920141613872578851762340391318784442998901354915603715986772703829479286561063717529429825115827300801513424631305747940019522332861405729913453246354478338869738963960713451092876950426137666283608560448836571624128922486022608381124267595659730460596653682939886656508669981802594844631107036984929260743296313766540444077807865148473916956065192189220217845129326811659130317495543288466742527203768167258432571754365474487137693792626270493676585601286354018193794181928446897856820248061106016812528494381273387349544005057656619263184049375943225274179651446630871849433080813615955053999909406410624217167109503695970620384730319037940968922995287044497587166333529736314299224065705253413704943359972015161273136098289528966471913136900533374296749339112858798176070786152682601321837977963201738196300681642445552275439264695558464861341445086907563258892269314922256898597243637184191256673091949112917440873532266326169444728873796701489106163957259672224573165254841916518292450758073468739263026730577782671466619436483594408788861026457197270585026061415808886586279945504701970389056010125167945267753854628188876141660763394680812730799453590198346527760367175673645257532146064774121667580795336299009495401626267560193844460394597314059500817263734045638474989305908578201904911543144472962650183568989961430131891095680926174711651018976339165983427160683652334430262944484104776665530518678094481849142581472581772679904496407638876663577038041212707827145689886455905363500919683209815875663231950373678434828849054167719131222534805139390419945242313267233317788620576896949663197353635587434029393822855724357578137051609725195123967112700604522713093914764361612677221285751828388096753097603538609302448680610072544803144429943563545499700911641176977964228414417292383713386604353226283210599405230723413875319439278662667642075705245583872628796080989877487609478812560596614301348253309079886881697614147060767578237724290323830746457963499954571372785638718118030266223534321409773064406503985570667810888387500517461526407593295458173620059446995099033235189113836166017318165527531149954912188127231274480646490317382405723479244463721149911070211677456056978877845718603767633552563673197611962814265776755651088128124835461041592397542419350947944198010687013990952793020073814985195386953975791815662673350531056575800880564691590270487823599203373960896751121009995703228990365333688906153931209658334979660701701384836316229844597997764711378734551705760271664248130709486887893731535378326922933401555474285528468430623007354475868282909221048376474897475432826014476475393340266844596028372189221634625560222571027726257729524255909790234205477659301316938829739007970520247694609462605511598897878867445375118087623049682364816579695859230122424094333995732945367826552570901184722853156756915729847497001974819587233211989816995382671480136600357300930321010278105577655587621644037511695017458802521195262567619507360637226538163241359066477449817605670322065978436714489078049373157407857052429448251704560387248246742698625560418811057652343343108572012302740050691270962142200584532566125349958766936322719864862619084321043803552452595369638380767319327178105150065093823840064350109940848291386506835677822139985220873439116424118468815431298551640299899554805465015565052252464245772737209984284995377080236090288365695961546848100167910351097695645616012403270207187402335479393030165374004301436614510889494472524669311877004447925531775701980828802577505170985501057535279934402884979454633371050519328119536677976848582148183890067611040803613025593311497603690936408616872485294123837101459783721939048879704166915139613847116066469144400209386213579206039842543678142225216661600045476316513762569554807915278262158990901159972905799685805133369246475791902469782898786608094969401936483028199900093416342745315807131830425147865203748946807232415889311273605335925515074655395222578913826000945390320199834588298509485581857949874383262330177682721383779739336530991505882656135776545002000131802647637703631684833199405372777032064408045613550668936039778775473436648776058284644997824461442209414366759369263636967087369344131470285995651711067184196886277282643144202297021889639137449083328794628903973890214919047395723236837569685573584457160936682591740077705041009157610973662936758770664619318670756931370042295349855492255667542592787118188041953015140459348445835215941598746447172485153144541747821891845837207836397719368559984911056813247458425029144368068391754793937642128156902220424977440676273417158160038725387117361425549004258219243148523488187151717196468048836648705582935181001721795215581152161673577676575631651981006052429320824517256772910591496108233650960023414132183448668946808118897204452426021455402288855493160960685478197789815312213716370746023400502796518354119160485379484525942679142890022323986608878366618244026464537894056779391959656357715268178692423206957689943111441234099222193483825127801398703119877728843087771331815745884694480370801227005885683110459238852587340869466013975704372094062925597977048081983646983340325737141709309431357644951774606432305283878226761020876626784167824670117907796979581602853260263254228506060329169972556808577333751859996719828704736160531686762190547940435558416761444253305610672315778012612098591398459814926039018758039230865325614010392337353320034759304233941034010699565908463158226395807329999271698261416188337839164798656147293312757010279693217572335468341106202217766979239629996826507517966073379353820524382043793133335121954211835587763510199120860692035322169860554514331638426236954996581587435966312469451735110746045797219699484199328292666433332301659101314165577302914361570701237077694439723880035924682876980984476845657911350157434197485163439947710169501332751163254153187062949825225843041638379162162065813386446104001550818471184900659569614023001369596034118002235025231150225892633663402486744516926518236191354691839641066135685907217579561607497137629922766263341586883583339690852937621962518040328238453459501759290338704472179571147668528532328725401836032881106954274888619817926894024109540296217562465007685033562031962838354269085159035929395624732551087689968426773616552746469887311397652762574162389702048117461333409397763083669213888436408281823117942911981883015450783963301347779577765323941451226677515842954910616901926836290949910089070145586486724043644547876966499160608036943719973959054569499859699152132519538321393355713311499962700842045966958709853425069519759639379011998450210024421285564019683795395378060851553931933559017751377321810311876455272338343083873395159624454882590720949175444260764677147584514051847567428581020782073632431989647847930410801972965944905678158691024264217060134987768780483188967183755316840419623570172931506435945116944437890929985041494846502765813140352830434541752353872070641337356010691070006175969330958961819088210874180731420011824323118655426294983764158143377313414091411059744696312855537151370651566940188974664684092301110060319345554242814498177504175337798033905738325261981988419571266558162128401096379416306867803083505824331201954580044711885721206170153832153090426142361833946743113898766684856384200160926023049799209041656740569523582750825390470273065535130619861389249289067983944576839623828458949485597543170327068660328603217054741470298128311916653711941034513964622717062263123198133662531526270253093848938540303540213250779026387596725954205439133329992902048343808661627446752540856147782328409075677585095094944685317900122069731460573076313797175934621861318368264138346543150319311588312468192238300269427936213521200807556458171675204412463349813321739597349412211175461074789500871807426472457534068721548739478415795236658088038056046747424778979189452093968433776905277876668035843661635199151549725178960256520361881434099044829784523591936797354895517913360104776233524691440505091204884757884138223315776122519585505737234758287097984892571641124920765544974764828061051897664951077456423430979986422540202410351805503301989462043674358462979540607827881022459782675271072551826506727260959875146483162388059485884611845535312827408320746752594903757375642107650038813889430231844277252411030021636267646318589688423109297517012901677180342648104573181507908879604639726828357677390430070060233956545652547019772401617221360777732893023072521370936769222004565764135109531052042871597083970881509290820339710025473270490099031747582996048534790869346143386393337194156068652945249273577046951047340360165626558123000780938160857173312157201054870075749560935630859190546443812268970093386728538286894867506605530067524236322290321179488570696290234183917683739569832153283795078218846157761579430666613021128070013344466333569526258139674399530727604883873949342887938580890685440314455787138283405526613922460810175347853865188696752208481325541102594661100598638407009626837565384974128551425921584727201164957234351987573419038739255042390146320537416257724246201077303044995337124493560919388704240519579348639149227372356532691356305858841984766975750353982683901777031066973529155198800691846762444644994668366203558181153874388073928915729343772734770679773402514075580204315500334888754146412087640767306462030856724413993418992180240968151612301649077853841790107037832106632771328586665170023094988097222990403800379613020561543225983447735083415403508765454735971633787280706390580547359817085744137036014947049446959478607412543512501766781107386491137493489078747850514026834965040236010764195309918974853481735202739795005624505808404557569672382974712538353824718610264402951727992217139278259702460922112717139633202962491056479007663923046717939746400560452339622490584672215213610490886457777391378050202046923319666434427083654328739541288871330717381327019766711289971930975911527935002018739748614241951389044875147433876190253370596450474983689121851966154550011626339662572500902769116421930549363928938915961476595674158938489247998894513012738616026730872377853304681451979423453525652689486020338193329334695533512332372871433572417523938074542468116136192380517222295666808449363959851152313921478425361149403423196722164942681759365428531700661822238402613215545193164873205155568550499485648640797169595962347577975113406915407606723314917077675977720326318508269403028171910799558377786548494873625612052638539726458579380627219664336119811310068345047843189704889017331174719921201423255533551662438194059884520180350157221922744827928855814065093579265058354411595412648415367595696901842495757028858193719514148787281966334294196063980887120465532031164909669991331379891919183468432215024285251793772510945858680037651497450794633185845072782005407424592740559468002006113951596176026522748947852575502658121976115386256437409524455064112942848192967081027259258970228369045875554357869342825230037122009473807479856515140698363197597046655522794940555737765772806903333201630806408462587097088000117111719161896526613457461489240455861072166126508940054841170437709287473791488248356488961356405657719570921726604654578107046265854403069243838226412573197164597093420334835926472331591560142986570038188657069565102813596485028583586016560798333647757153085111600763140031957784948979850281858934697342719209631221965407680551115945357744848935102466802928288431448186869006402833401519967423947003764916104383170190956047162159729967914281165588329470543401150957022375215870328320767814700989682458729874044993282812499556952616595824077193051520077807427219578637708498605009438565124205479590989344922675537366671363139707522327527314688966707666060661734615547178763838151485389648086739573838390765322734988234703455590350530976775455222118308790843816095604224125751179138713720604331152714566534480112431000157682903926612376283682735229114097734955634736672140140116663155143669684897614118970787762799610298449495705275453318903822955754638963253694027054653995561352512361262219224480520022532232044354867167108584244651120899230678880934171625349072336187099647237170740528957821436324319336011217431718011615313361766480164924299822388016045967603843586386805035598520274943540352887640300885024616341428259492530448155482491177660498250082035332534090363092705908542235980397634977219176084972450759937298201857948983019397066879598953700395154580041711603294423117670964616242412207900520951354466480444433418482449205036303536667775010693235072131123293598951067000188215152974816861605859924515156209543633920259899225357271530890048636635621717205950194901298112546508425825460220021304060891434074623740047852052528520255530837453380036372927840986811809191591577320430171054298512223946905822340116932726598081275326535338749921380986791808293290492975003630051453771158959711272450877610942144783121186017293823621491826829811647946253501652827459598592369303384294949832154501251668006115501818401335769562734770019332004580487133086922177439376155938728191241082811187025649590737168243368667093618021419127386679683130195334769248665649173485133487311870451553281799057403561333327213952869888546130152375458392202329901320491546511851224671926715864370227515940837537197483854166413384261559511529158174687423968036210387413465639051758254231428577448379944764745529709310967046203707339216718296623054522896155732202300963143183495499492340744625246800629413717484290681880156520042023376731570846853571892759009928420202319076592826379843606701914430199199765905209671113856697993849849973609124254657734006548883584628544875686834200089046974001254199109668458979265820827900607831375727426390563511878948877117800965384740319564693485506230469280238435829831273992184659083309827181758338630643115507111455531023737778640871392110942085614592199901776791230226873934676783681534934718627591197184385397236734166257613216791393978914906187516520403887626619475802279040432966184071258515784458893411668615389359158798893531923184930372705328957516749075387624304321636633158954566659084588552971314225037867131719686550382367904062026750452098513281862048576623317071606371755570747440443430048404223792244456496916094201530731412945788353377669640875300154439229617792133404793074644873298014296731376299846434606682301614642624396294304957434415082073352042679690652814731397324300249801133031511867240118160977251027399817634148065628092250934527653416593993840631949401833544799962547168102325882897828987826216303960745315023757067877715724773080289615135032572419851266197005277942447511081438033399357670438087999689700350700297415555444851681403528041082942590944012211073190698562494674249406779320854218409422810592943639839496774651322245724484075731068856985917727269701217204068055672148189762565023788307637851902901534640550084307817825308022277721411109901663028914516936951688846636440264030702336799407805028447643916785061983775705684225657782183857848482240184744234753960449337626133737583754497137826337662079863864982556713909938745598282287252220021325862094851337156688209582865218245037651033418669504862618943086062483973254340066412118737378205619668612144606450662818192238224416959247218475909079706710873666644289256861095533712156320411370617563791103046548944969471181341827099643747292616538361882502432004356666902553596921941223206114257256195021048891202247673685884555166327539289567671521887999630521680972053158425168315438660603149663821062780526782448615202215067332830607101093689293915400097495169843683775267913415142019487221631849473106834023298856601621260743675345556966031639919602517468347778984437821602310860547968338418685644002918453952910244667656771637463704317168666651287589961963612288991988226856811538171969458946651105702393206202970824685347638381159895727709758174345761699672574902916899730964662628592170886573947232609805886593552921519230883087712059942511616788969238211705708484646733436617345665919871402852637948799157011176774708476606239511766539216902468105307079622395229190604446472396250308079168800009421331584809045114663960096703532469463971685228254915912558227167979664465640520579081967748820426099270995831180329781195571138745005429399806403101909118725469149476587572791541159744146743713097790356188974561940450522922252005400423384646791930970681964709516035149863504899139751095713233667257816847722633602324611562406284148949319783575555238155524906836306020877564996382870298360016968048368052798084657627041998557917095188830242811508692052806096673660465487108605027671383827871616998621014517719085253145077500974092842215009249089006620109474658099032749782770212064107452513747084891726961362044428716988871182336159401769163019293372645955828474782975047295666691603274684902899790277148889224051447194730036484089150988763905698740091713972495334175263749907704126155660210435071959155045276456512223572353830982388500987536765179992698171526886271767552218830652426742810192976665863007702822145998829288701358362592411488111219916494198130156977855205182098994017304179222458278440098431347771691610021995070800869411068632689306735233720203519056192384451656024560662150688689313429069764327373384766862160751119993128965722498154579839166971478406757967915528799151964079423483813524098936019903086679633641750619869371791226899044517478552173834540422171136772163352598757640059917908893175648695762834408129491737978537869697507215974311805053055817612566922824060192079344555835304246964494329844084877718646190541394001913398017589557533651448037506464895211732086232209337212966390742446433462074132000724487859077683289819024815752420649114105449879990807319782479485018451854561170305425719214859558357913691654119982514309275760489341200996832145334791938069162407904328986089985126127910342882321774533204137354385753157219795190339606743552417046017721425478478359800248588852023068112451303999212444138001563032582072195251757464561750226320986048782818075589071853147075938730057865308121016606862565600829051971368972586156391487199352962082367596665117923257814980552925951479249403566780297204902134886918185365041783476283560110543604272468773589553698740019114780464549396952928242137386580693372161370854637075528558680259737611173696176888336777028322948417842453226469136006591727074652243702947386210365581867461558765219374669731370376564370280544878265176988753074662937535875090854459327859783449403939254919582339178506739089910985031775730730647986245004643752186119908245258338504790564406901228468195381895049347257380989983951129756407086669498899119634535944446597806589526518928546348012859817277016297086857424467638827403235698489554429927838478823998451841403691106813590984088210729384232644843831235017082035971906878085296028241911077673612322827465324479375770639015665053555201251220591702505283667464461785066936582653504763677197964504523932336244322276081378041633097433630799100757485476140625240844339677282815864941185472632829390905778572517060095592154090290794057095190171964139249447971257026516969204734019972820483335417581978214542628259182617788103080980461621463082515106531447206469290721925721151873618902036588383616575942594621388030116900515582896548131216929104210818304827159479630855648492300520689037150783748685977035725183215703741570523840056870310751080282129499247279612265511919319465588073590248889111033948777143140848234948773625548813896596194994777827216426061116366917634590180519580855552146398524741481854283329149360464023319919286725795128582017204510252882211944310348651500364076445307052047650430419695420234148305277799718830735519282697650131594670058803091940778357038428584999068489882233369007484521606474014341597142574271726472392032478479722036616262906635776102246603155519885456755595784815616131395892129287645255732939225385518582116822792825878981714408654928029235212099133809002030552976853578236237781281747842666594308461082411762243575161963131368469148374284071731070771788278773791240221257490485797103222249828795467369336015028247250469008515509908593286466919528900227803104223676060775894565623030464054537118197111809788855844596642184351551112730017616236894520624191623939245694519982362280844663434267454426948738151024785268332811421984413843896834949313875913548292699310570435591325749886043268178237879735696327031588782141695581623676577371908135808762613804752126461357739512617871529517084631880936934369907940672278231388939155362033398620051986165517854729755212839868994190428178594792339832230471818084209921038493604526866084162225102200617167087912405788314864350824516515306822387916248231318315423898208314074203206110756842743048645921858629176758880465754554720418561570667863984568622594759897431384598599127418125993280782277809982010272754815548607821036112142844157660319040262052539242258445107633738169297495099848817946635700318588172563143985426475116209075876869902005483207670288052580452484972546802607039004299116042207082332125444416889500135176232824524561574030174181805993751625595249023210687844401242121927801029720540884345480147649698197850349411012840374279602406688882354483586133685746894089587124394158154033629051502597338624316543815678889525489455057341161910312948364323379515014169911753182466655628608668663689172906382715639666978085094877134741407797027198594434028549709048183739453204376091910551804802558744527800794971598003612441121360920908357992670826497382621782606627956117043377135003787537192269838098250445050437792607620371776920382648293024960481876250607597236226193931402521284609578086321592463893461618355388238651704861710462981306759684971689643647148799936530831274309544985352410343593375018575012413416537914714462083325483388643034838655565534089910245579986809613569205525347618743169560565058623267853069233386319353841652361416072505434540947164894577184478574557723201628654236224040300381024326678021375796264668519899357832729141578127197849334390735318089434582648201557651933289278060487608510176274328626966069968494005673903818320204517131678794516742900647931712970534767166627832343318085102644652474496378849972347215267284397715646527177774693775014261036649563867102700611739096432129668011301806863896301571813389927761204309081880250977508134593743755626697822206329793735879721827221416176116282366414046269211808368718878147012380111367484146834533417660056603453730678540432880606831574095370022409983800513859434412533058933399463459900493251663326390452262831869154063145949662780525071903667917165500861868167528921716847193400254516631033810592681459650394730652171205081427743387723677165277587397181220636428100709759134010947920247228097165554117672086849691413727546136384310774034273343690838148998796129417893703243869364414851970078485179147790434571124019196852117266526058866196675199853842296920870601644088717995121028151646851201832444843395806376510909158190858987329693150069677135632233424342757497017670015938377284405119403799967968920281116734254549823701274672121909865805991401442662891427058546900538916497115455824329261877691930983992619703119148235277307434625412155331971007316935718890325312781762707897737993411680219772133745275629030349590345680218576067391691011505703441877906046581139674705231451221440543468671839953900004623928466772252054016183778852709582180895854479967685772894271227950035781062734126568558383980952095058707177845317436124611979537478497783590124536171065311199869457953962544405648049337645472017650572095993411492033442497398273243641413362906932442236462222662146591635480119942044749520464065810450213137083761336883314275398647213310366555322327740028631657557502649743495708619204686495124587767689176481712236020714783286031478826944512615127848005386809242076388474970557021832519645109551533075786612288408127497586839875159837531456818400371237227176195363234404038115479598848004359593865443051158418326191147488993247382644147176223385686445844495456486786781359403785333011667735548098046024232808805676664813500646862696013299807892398822856245178012779293388457688824065057777303947479748129971369624510603639699891081705043780644606886988379185057866587091849231290860893860655666795958436438056988306819875439835997506208415817494399465929129551874861738150135417633305989693410481718724227346079652569783511481961630366466987847683063219471191970047730148606638582721168947680287080018633761680572354392681882975141945670740872324877969058918869988249775398409389316740067918736316380244585249686989858386383398906960536527917161493106368508433735780840396573377763384504504093327821435731264132732276754211333180283306018198351411605211659595859947311227589177026360424396349199598348426431234131920688181202133209933958509107390820047785409162412362418705578723277999483005576770229157705737192623642922256149152497669658880000095082987623703230265082382039279111733963990098735443116425231682694023394634668104464828884636161605544664069309853227274157841955406930890280571966960314297561059289148043400616774387219821079929449239447897828802708042769785813098427042654403208811850483152851707710112342560775500884429646575097722178045206644660978753453134907219386554729357950769353341754197020179804543421415159198715381731643162087184982194583060082660491777332166810020101650191670954472651869451202468620283438446997106467192118601895135910688178176116639921239830746509647535862091812236952364218647538898832222655533570267418497811318528125809341192094015572317804783424044032908112383433660034032563964594034774601001078504846806880209176842204108085276165839726012049704713932477126301367924190779737484813967088863009478832658047012968803826757182535317477248249623913382490320142139675760279143656060211438048365088982983466942024692936623557199435285108516116085679632623961879129204990397351254569332639406700720300436040572283020128082845796127961355510395816013757055304199766623596286747726135836164453689273306226882707773921264896993002793419937818271581650937088697812360946810342815377998283354285922674916696205208154924832987201625299930440266405428336328657651844191416536044028817536915261857564317794138694312437700879914651139859446784741153768512015353941266428165273565799899909517889025079261853287670272560028628187377508594325789976219780998384944497113943485457435701852235498421121664093239155026710088210203879098947271210268540636084115195295340086087300872549502864039030726886892297631611414424258772213995784991876933998497122064011198501274175541630359248599135196589070156738683674020666660960084661452458458927709714653339685653794734511574388604776812149827881933955177815115068683572984483639287906395977299968603237000941261460195241080742666843699328274483234975026522276539824654079806869578545452152697707680386908011677308277266141693658738325294975030797690782053096874468506348236193493738518269152429101223306296168364710381754866435735945752710048239833842371705137931185911403820972612986235702810674879992798969274295442578399488231522394942311602811601370581205889982343693427702404483413352883736843956177917438160383035435694122539686855222648659950565659074273511329916296189731599092878595579435680668805521872771647096206505950876714092118327531429178484120783909741313310547069253538359437192144062614436652597718048124794490104643683630818721576214590847052214364520255951344618099014588847012385210081594490839303850356204693579842328515217424028414417272757619094089258577521543578522654965060439720947075204782132541092004437808514804971993282600967788687050215153814370284523744877373137936595544236954192378256901592665810330476659522890887058067248742282572887210327182290724794255008330754130942950066341472908385505149565093804281160122127856772934591180673086974862561738308004792769221664553039718855911481127631116671161677554574588097711056639279023260208037151040687194011644176064913001219362996454475330576015522185964162844770962792195661117922287019019569586300550153962415035357601216727020590534059107827947191830436304817576136601172867801601879909190714826728692653402243700822179073280592185205162606622241038889344205956511121163814298319812935273057571322259384725016024821569334427306119166656037968208279962078652260634284715795270652019849665975864544904030473322741293335754396923674559811157673669909149439941430393488565681233348716511375940571185764840351018531564519716640555396187160968160091026016952304228130097984919821936686455948346508490484431006077971507878932585220792279602372457112819765006838043732536826108248793284219746932703536663089578698631775626163201197463010468381163432054630074332964741823334462231904623122237670063178127196189812022954186776789511467640770325975089551292433125168057182193326842177683796973074334734566689663269965835225403072290763524914979737272144081229976535358510941311044508416362502044493691057346347403790898727807322763837731692204375132216689120850514835186020951788439913784378435502721244385079550184811159275033598118185469566479690156926895169651674683391768971364391336296437894265738716545297481888292941486186992951244029459772036115718079518602509327991808132111083721468562730253675585388109952325088036282145327148618232370500412667833169680289180136809124664144226990146066782353534592567978032202971853398878445021554535685774289677995612343376827720848381931126975122650129414441828569629135967189828865530549305791065052664995626935948140762833509397767085487689502970434420096079181853821931065446904753000967369486827553569347005473783913087385424707063130455305322378312802752559066698486664149627575042949394457169423319994896698024776288455966058560580866102758992645921979125717855632617163247458564208875087376200755083381064859138215463834331330641400001941109681780415915467866010394230956997847013254722976827427130336320496869118830598696810464850575224655535175272775431771188754033918097526560788991022433032568654496760114187101274826140507080580328286249210887295530223129576218435139904311275780212682761555973393990132158192639137354772044253554061293735368227220851101133964518234825849450457842940955770077245789686508501299118127430434400086326527711564664964578120720392273928065052761657904187882786512913342980549395589900233376861871014784476615818073673744394779805587451692017509672215907419046828634388756676498176342998007423372067806628171761686807847993758556123286650076712216542840098346877769636110288703696939404748098394335222829766484800142559522299097977863845468687100974596679098088706829640734999380731168874234807775521741660341190332353805719100952190645111355568344802296915947939073053090345848124006556305021795319777507696830322436095614341400221448581666419805288421711718301262282776602917261037592768264698378595742932024471131623613413111827007915546685262418318241652613860686758314827918146864286796499241457263408151880146348996029496916646743723761114514645901424358784947293447527611279524398997422354038688826275487737432028952629032010072066011933811959030948536594279467818380643453836828641904392472983192657270414105701766420430597562588351042337252245608221079773512125588441751010786402580461759610435653425810296880520776431297439277082387424076380368711404488756777611936192579939548469957908029746336345355873300762064893370918629101756532137999463220504187706419369284198313811522586326788592115165507828962525676916022416394841701347228952951769906103186499932318259055439936051371132791465682795343689481826250017917742525630349938358175565112308991243551391559458992020191088924834745742444856039995909259913453312778619296816165563675991658485000201738804702305196977229983051641689810224705747475960367502133251793985750155035375519133431326253473611727918435123499682205694150789108919311415243251081453727474437893603470793264148856509370735368308936760735784785625828771907374016269637491412851944423185771442749100913772745596531207150255999374152170959955504602619625641442418909644467130238456308575146523991682532422977708189467589675302055243325972039566876770467443155269277980648999933530943329928102716040109061936590330973266326706564331460535499743685572434623099849644754692830366015547969327778023214088371168030925192546170785927206819316947301206049731608547209063966468141815519200899032361150091402805062072527261671272584399848915844135571432009002200191590975404528385781759601564482254376341300124222992161022949317831221815802109152502118935309088151473299687965899120136985532446952230693908587843940981114563852386339395540698178618704843566960305346108610061344644035437779467657427999118366343711843274623198788887912276383156261611269515645211790823033646910320151724429820185998610912377318106634112839533981337388941391165631574408514076677329521236635635465819424124910748457196417338666478767081402969190955715321437106272008046919942616247961331731385528951601943284583262074932572038570257441209580431564979628667507044347149045708732738842199218338730300485606470728588515531472044631774511675084299136430692863879529587706536405778104460490608907402368026840907924313044161298120913965027248650771884785059038264858808911637672921636183487710826523647733100936495399995334392814695554398421520295649503933457484921426775463354080780266106815858398152260529083925257563972377785196778368599985855739268148911138147709426309190973906510730474462384045809142388082517587237639678921063039720348802175550839315447077492080889694809291890822026787830612693481009205053844513437243047850868377055228949593101454169942337946671973423955207936100498331126550975530903577665883180147499736468924744730518450125926241771580097641813889890671130503551798012441375915126126800889467652746422851074741376988437177683060432798524356247993024702741342657582931225921949033610311444200264531724855418757278827518521152706391826227526713690723352959351446895418290165057264091465598524112597350684149856346177865604549016052405876104433082683958600173681818504834300818841381982808185871190490964072796871820174813316229463417576012021039935234858447867434730161225019950326512620276413273097130405522447553699408870900879102454204614921518183538953513530575232114001057246316953888074023016969118991972109353060970346754587629359604724654891609295082214242509026436429696223688919574024241528046574160273561716520493462619836335592084240144577904009914688667319332057696800080930591282336731886738801283107763802177633189870806572995347421883246892805127359961582033547670836710644033328792466016901232953826946748639235655381692969557367490799363562537161098163430741058220869496558032504887334924778383026705570136838789138939347793869122209891898255297086082835880994961580700061206289599297278481969027626058920150010883009346252342495126600302177350661033595107850627195671465388992133884111019304538594654262179114369540442303672219329342777084472890006909833958610215075112107380672473606949653563079006212988425592853168999124029385338220182534734145461197247139765940799874231596379226355421741580554090729346295998287833633991875420814493177652399066777140410519225482138196229603624211396183167087751192013566569272029134781104381544698936070913876464679685996080356116261121572462743978198597957016356969017277931979281699216965787827314951506276008121084282295334089608568459187289005467299264979965071492232633350028728935178170369753599722420716443613820045341167995779100927549834813129519589131594964152395794760937517714185702477196235778410997636610825853278206653111248405355716750091808470013973347190406298092677009133007024978153984633666970226831215312765945292343670202781320985406243469517727663422186206596505983901609369664367280409543648887777321926008529259183002078581783021853391838641609440908862452648967722938348847783948162065273984393816471217730679339532520366473012989787011283407075612953075775350339325260719565394139703311222142782033847863465532907772869559766606501226536623155309050539187440852714595879660022039230231580198235731071148605867140198424713679351073195614187892973936475860189647918025122774021189865363664543278221920212679124966300036610662058287919423697755575337888997205974297914243642925898531889142087344389910328611731506899885401801514042609545760305762920305865345462825921401054629777400987315770053833892072232375972916932892896432869731800997914696646428599684959682505901064444649772615367424243419395551714561360700904249352718562727967747840006386701681735866621636664976279119321118930088384359450822973298208800446197441845873428108269813518442394625403238415681574659488906595388504489646914275747474944941039291042989526645866580611391132618606176030321338863900882426025834948748332990160325048184891925222311289459690185640305842944068281579860315724797826725301957131552758924715184540864848609705927940286879218635913477745209466852045160782638048102896550900794403995088991825425507460772557177994447094383486874504378901053706850832621149246013536082517663636373729744139853849592925509594711219373769002131019719554215760861475039835407875230237656611779280346332248785032381431383228921771941634242291361404677937440221467088991824400737054545624256770857774170488757589719508076269509816158928068518013790617298517947477311232902015495581223649414765450564567834442518909208183478994877519801272843356498813953082289690055493295331321843714524524288438266150801586701124979782157251981285356388517479562707564029263368387805414685893976332917504972637907268391626987942017502383752544547093372420081228963411463893901064682774881263108659362877153417376887276883847266204211128838028667413342796584591278025292740155920127314316696114487168580372041976053189145893019071055673158163456771744686732262771651816466433947707583146697886414273075319116637169871781945002932391894741488931152291879694456632250576265981157017229504970799954300751974039161047044575074621042805866334747059240583185488091796012717112746805898782456013623239547212323126197827880155563712813299527338823342228933936624924586611821083843216249230484980487911299796751385314211938113031560338072707358810403935304171029647572265701686973862764553323279111236449478678253895010529651807346800635356383759925302027139525929009951838240844709450739438313612021882809782371465065588717644708146071473984655383728814030892032790741199392819573837208663500632511783289530620386065437992006380162320329980025256416365545738790481252755585031755535289364343155794547193470410418713119781329619186753444407773924214375561539860734272811111418048815105798343081468590831517912955648519101868232661884251641020878098127240246072259373650991779867299159136512927538718602113359184834956087627707424299512768499327654556192546331124501371579569261200415999877372721615691434559117314573380184627771709674147250390261093668130258442918655600565571658257990584121436530991549961236068026776859216883567538705026415359538787910006593187530257810357117273875813314524996350559590668382176224384608143392327477417196222604236595917784414116142547235411694669855743104125061344689248676162306276850349132535525004199487582107510592081493760675430741495827403087711649702581004977553031000587641615350986943756017067680966771562332539011614596818086889721273786030013437183588033034744733056416192646828669106340292024090617663854158839034243278545667565661509773973186342919888249422409186086793119475795089711524520998418012592593704757216965544315491165054995422692701906361804241855551830863759244283315586253497566984231912807794229072177821576573139233664810410907992998804746188836911143231419099329988942047028743389668147958097478330857957874849590058757834809156252445190307058425027928414130068507704192882672318392670338417424902572272897130691416776297441399337057263648998889119346064061914541018364793975388893629669222274987774412014751077604969569156750909644792973639341466254783233159322270862287902335285625206561127685202927843117223312934282204097778754430071825103129069788691611060531864815414778751810692059918205827541928638904077718393592680191142409290944995761179061478808299754614939007887007438788885565608721477578805209160288957598620549133448133315819880106985453980944382787382606622930559942700691709328047256571505660649008205790320764458250439563170521383649548452034830047423429038758995584585807720224792465400891874155160692874130931328764167519808175230648309920469961093931211159918846885709429384244243911363001222866123531148958408355976065285400659325969207709503826015287451106633637267586137758973176415763764283041598480875419772748255747101722646412860077525291157305193134551507679962007716791510370878730392725674114322038496931733859590378465413301283894503365156299136231131924294682767785714622463307038876931680250477417076513529832520890931912606157776633164209937487636610791282732149570286530770042614929002854764767465223234114850455038975693236921185322610033544869410698697663499587245654336643518440478368413709261071699280075655565119500975941581767110698469513333598035017559431325478690225296829631016794397968464649591895075151044251570780345083057405010709304387137299761205554160338343441113603571766568875938801339511856818670445375276422627994776384036737078636260307048015458261170891475236118268052211975220648701902449519629701012836695232751431667753564828696007794324944598641213346495342822976382800274856597674544140961775619059507565379334740040480738747557017195457392466540768201514048515719706179564732504967275535235119293385678514702406582190723151312510887962026853444941508661774420008037596448637360158687047085618270108302440781246895973833140787536030295543062674199835766751736766758962138154472670302987780142835288047352614093921985190656085439528969808816677211456267305742956757844369888494824120345082956982196966008991874632371892155639512562592882739645367957727142088755382606445525726402568688620851580204942546570265868296456719846798637752586440034692507148915972050581567813618800451425773752369985780305883943828726238756469139576460374419408187479419988606263339175355618794512011288103207984792349020521491782316629230093484260580824978144374608230941269773973632960723173954274863620354769246992303588999837832008497044710179655730255231060246786222454920903789566093289740125222938198305017157035961846273963091864541259251436482017602422627232275820778608519757329180508745842817922521402302216210827184155805831354783320813050274310908513313769385638570337542966726826096600796363773554328061246041919099444378724035919280517319824490268968155943842143784939989996102943875664403979369501880813224471566681987053376793351126640440398469420006082615317361746009152520247706360564245595977240927679126552975075391484365290620847892710244726459388477124634819110492979685935221626057599477622274953156933862227024816891136911245430563307392277672817386014978114443296640854929097188122033152244634807410062667762298746397566573805904122294866295837786773100495942187728279411617917885004638569234455116838056865893554425234796088920503719627702708932590065622335170855502751136075957967741993924566691176703574929992858354198498763575731316443907446003536252460209363361877728825214820026784240073281471661791388511754648694416387042261845273739976971143928085851032548923017528097044937674606224683635917144586260197000296648211665946162943293876529577685284220597877398799144895909824793770539892727466299987578963245363710362529882667137283211665448053486432251584975588036851638401966100514944269861539940399658243214028655069815080985837738726139376262203919057444904757885493282612422570854040083748157620091155309348947222484601950229351840288695707450440666884897809344058298340359034387916542332805010738280402437138864468048198319718948855253787383790426932758069457749052566355531470041556848063375107367339801401627750083162740851450838266009312106792606559357287714118929919798696848765613310094580620633721549428395787671230882166687336475119038281239346164138363103377068641523293287187049252478839736037084576623560917011873117451313398594976383774910358001445798677363075221305403487999646254068304873481539975932541735021313582205361456206390975743830754012904080728027414869142912198921324279983503550870696133210782968183054350574675883444404929274960304664432163879178218422432905062074214607204047775864217827748791262014532836957161157257738786081382228274480238307272477474014389154158566507669123058297291095919633166905207734464676389413176573850238408695938084665825705179199806983661740753110857443898870019190743653613923704295605140532649107076205361266046340509344258839047455319672937452524308791722874161321251093454139703078258386432709547708143278604259779113039386253266563244558294708641323331567307948490961303889157493898401093681716334163724530872632352628317572441916836579267955516590392101174935315859487836600054402564124727558643111990211140398698808578962959265119033711740767438265199474927861684471374018899102110026732253515314119490324630108605155331562143293988540297937702533314600162880192815606984789960626797814402309933064000147587227918099653547523514691494800354293309330949243671780414572952488552506486774411304895850704141573887126051320373778722781690754445365465610338202292249180793786213462421429707653557684223183305319119899076135630737774579980838136070159998440108809979780121155752791188892763052746392647578048959065090462245397653888223045793742326629418237288350048060816238045863852337454594342013388628100143060699132580820902301036908730094599663687268711973268157304170507463514155166004228087063367907240672487459187028088941750462461527829826663436376538193686736882895493062824273237259499394765393809447048737924170789512606948441646970212816702463295316466974850894744829918297976759737818921800271696906326490499664822163085888943475563445363551387170691003668335550812872970891111144060443777279027616695773093190729924799402026307905470971485765082215045301030778067245079619277267003495683989736531297069867903375435920374744249937720729672645806022136578312125017004550550940560374202070861863382104409576704293613128864486878184285718287810161563217407187988829100245262621592750837590596796821825075933021156718876514360815669851127466919855185475510367965671235955667807527983726548846649336263653816480562573736723739203421529962995551696967261789090555506043910526393830947603961515619358405116518436912933296551154600033187226061325316151569905005427523261903171789662100808798785413892982962892055132777711224038518043020646884193113305266470017678811511375761089463255321092604056693864303799559638755070236223224160920042090769460207311014269254275349619369165731757571740251480413540540922375831284556673562812848657268814680853445488048008959176564845379195412416827621282809547060317770611004789556791182996542038254416692104821818636623057353900885651185734184232209185956561369969363308173563301811635429359355527171092447591384190421694271313726475838656587841248237613687297834396690205606004209944030293410794242472493571053662730796921037912079472945741020191198563247471544702971292791648480882729127637634071700143658544084498855403913943075190151875260884024487897196428425758926006625692964940101375928288025297432888552808191974233529637860650205461814153990016728496203248708016210218381445434646036564025006084716968204239404730243432986324607534673898266422613570984243153433743785941209972575830995239435180881682601550360559580180588295683755644797154098300727080755941271765286403820003244826561139731261390144528940586179988760670747078192133644438184413440175898918827337212703003126856609080712011374272609547461646067863272448975482838579669721536291441836582846155039475992228126253178483917497223325456578740478615301887452908168309942441692049490228514197201724700308358229742090936578892080609801737151912159205813289806471756025104612380398008451522343723717159182353538076994524017933261351423783889661046447977497702883428510871704066157908735641729159170704025290781142401584158577120516539184120349407961703881835360178067949463488632036622370132760956239872282310098680801524469791487169540670868964510925569247583262028371711125754046601199005719097161063751560501701511236813361088109380537615555696062426020111395384777975376517336380237325622163865967949203958123497999496921692357036346555370803278607520119845416892795537246557204282827093423357515963200902128521508211686443094774753761855222559618349705278406801027220807454576807486723866430901261753278020381149625469978156466149301190009309790854358694650234100920352293074346136084874362451259041742218609657929952761349498125962632226926327745002729733014300022152063998447729291281682859706907113236928569553979658544582300193218627100463037057547123218913483090763763941622741173454878779808197796426549324869906221730661706741139273002037435279107731982079645024280741528408066438070821667346031254193126784227016334730155793271862159636121367759177186699377729865993663060386183087812450626860516574219237536304982534035328336624490669802002857977557153814174582763703982416684009202863346974399372543277798566198839169751017776604189791512877398090075780325965872645554962778173763837945274976255918670709551007075586701800282693439003116245330325172728320520147959591833843477438060072779968868927319707931364667245029562732869211729827447878964483413123719153794571478833111303545522912509449827102891948302232678533731418610618502293712435082969017219403724066929400761583351274213482739994590670396038807402050323972829735142100405983799426923359027617139565743023342722806911197509037591041955083674132260841091425620905530953048780205962594766645642697790895465890906095565635941373829060438387905573207807481236757636572877061302170489029333045393862206744883108719502542033233182355113725377072423944126848882797469803154635061169161133708950879618494830960133295783103701667598940570787444217420282660497163537603162869696758761791092136650419760061387586852772573605966508086692457690805625703725426548390292030045559322372344180021860270893172498272382247913406328318080094170523636226023242336980217338960308746551241188274264601466925041903993519120629245814547732349029319358893323662421166986444781937550298836899483461241169752042098464891056070764073231013687232716737873602426509265682965371546736182347325453064941467655858859651305237949576561703271858372809357543968321632441712803886454887482394210469189570035327751392992182839703863919875103894841815264253598412933653209006489101698336422339894004221747800634256121953997595703654816050725994447228226948511512944263235920055897438202388595294690163545878686153293685347396921952352995581779082571141595127005520235696459126001751291924407124942044305978063355415426760827172101981125461027408178011129090656105662603732547825153833908419071615111846042947617141492541994628610230628459446371772008289495570437607616847727984825353607119351906372234907454803144822513783286962158467597697681921789231126223009890123773929003742930164318334662597229577058527743028321926892743672946913882476808898745778564782268966213739922899006680747320848658034993920634529466285167808036853578418476914835778654308973562041110948250732249468186343491625634328783265786521677004425594368534129568986732867630016489302005513735359515071960138887935928602265895261349228859055730809919169576391862306653059428750960316446729616189925235318358667134240732020250479547025326951061135492970404325833770596385721797488719739452484866913092536862861679423912614785794025022762825728555330645637216875551541534562936745486184431827813344937968859020297776642171455754009666233902009759551383208043169513654036595701078856547293575347601313062238560228698124637204288520020614213324380961713773048834581988378492981002792157144832370236905349675965398242065304679993784492065235838333798873156300988952104832119530501935540624817136771510430167560158687433297097352812464148444668326047412994854268231877557355257257948809827386879493877008832224078560658015019459691182558627007541822383105033392247788125615925485680405913016713843944374371383906169127283594218901345847041816398055388250456242458213999001045326133820229046545843582024089058021811370162059679252644141336717163267418725876227061857336118383132731130857816842157897117420061233580922041861170038799375468652737101961314615796789393025481377322464135822072987718022911545022242315106181687591056593115193624379643009718073163129482221507785812864389181735687336843872480007377408768106953935898906807147613744359745410198378398131953190075883465711273219868125293730362289943491274872374855663416649925978169445523543652025583437553591107361806662303840094182491826182414570701116917745689165437960065583250058683619958201400764898022547018787028325424103910229373456584851377918689104805117407342673988898991860638748451534168724329291995515626454768466757590433881388537468212723839491317713699408945520579366274895599329980234420843252710241205339768270118792777486606472291122897866360152076181944805852618155964621260932431956062268945009016999470662544353901596199368333984801536805649304311622145310476189392024740545199856349085735008553890805836237532951063754397816756200344362259825565928715323912455445311040710166002740092471268421073012342351862877716701371629361318741993632285161406554811985248013451882829177423746539917011493610297635526550278675880653107307355331539780885517288121483080161474684342594544557509182352261846759824630240039516386540609478082224769249060539124446551950735788461266233369221384251701212153343780554807150295661735915829856446660711085080184226186228052233563691407227901369823522545840150546114228727936783824665790284451092695073164561170483658341921726961499583248916571464751872242150526707497188460784166748540098013284217654897216105633900044662685084007103067008607713941695116251563942447785142599442021249080932301882799232072813037096464903421607591292695970396331173753196384425360914942813152056392183845478797762636646144250295327918050333543183994421183773528329704807396581652796794126943351538418412335822049573642474140270988356991827144217547781448702601573205201766333821573245601907169948811579190294721131746549692643090095635797411219952864118682276507218179279396014555063495006289083710492169237355131125614846629410503046666858694962350308475467647282547962900757796630072912870741147128377698648236488000585857167294542041411998224342733357429020281439566578578068237509257683663132583232939473769725932660109738197501696579125031640633230746282465376913112424584835860757743902777520452017607753197278453407895882856372136772210637873101881780046927559289525608709905790974132873223395142421025288842539838105758963109452231384213758862852331082127346720319376049539713053143461204906826239282037295724901154919799477149518190199074091705117528146682862449269378218924438122604351005062723935693432015618532471477644191459443312414735869054474233059067147133987800425846708471386936977431811196420913069693303474369374542805150585383671026006299454124818149048028140147958220251910782916929254841944804158127408287402098738864283933627843272933370212626884476985091368221832264087436574647033114208191658950270294591580535250593946784611495332938273975366736072948863258409068461165911345613371462346867257188403321193255529403768404253295254778202550193104560792716497451649878542347904104970553437748860535895961546474331790639823096337778339006121319680774376589567907949986694537855915225317468485823115861755676066377416951610200413639113160730709409461379306734821341237258359911787752930697942861456312160692375388988998648905390278138757379597300875368264584946102094754683517710550356064119029674547022172428262076312709705243695349091462213069986618630187104759028859931900823194927218373799712827391715034516457484625555109797102243666506874846074725225798098948825183160677844805003325916340918825793370627817882239235491758260914326562454499766269837091898712676684451973198883088006796898384685499464614536127478211922744202299393505667166382045125081265919295569610261026122321130766028647513337753438214335363015201750309985125443800618305374423426475306935410449711370735467920757993742153361006735395019743660011950119371189249093757737346014511337852721686994899172780829966329826601998117517298616118022650934655904701893005136832178326940901969151415466354109844487042170201339036195289974729412298789771758407823060636489254970557336730435419811796207190390403354806763100564292893580878538932328354870755145816393811963955647062527180890912532890058940386872085791126892858744446331208104417154910292956091827222932300150294922498963994261315533777651933025017705885554024752226893986093124132363260528625791645493145147711403045115823920851333119300483406244706894168034817153435698416791141199681542682065417648413357645196198413627734034180241884237085394864427341952866827820685095094185302603558846163660488281079132370312272715714245835857307462096357962027442182182099515863709538311382409717705269580598335756525352521616390870255450054231186383438188747849279795608777883964743336682548364663704113256818987241205543560697337898017631784093545933488090683775368612022399499830235093351068787700523338642087743382210243355017513015053130024105424912276922963365157011418899946465313185873029020635755652382476468085531852914881843298522405354750300521166660688038350139635523300247739613303888076339802502379537417249155895800972090962297550594020440784676446875644140684041753873580113657625400482584086306024412878821710442865701388903748408685828253461648392930632046616007845324632226726520317112199106567039781605495992796511837884623711503535012358950710599816556635518721806272117538074345996386980237671336512921628083069428538262244702528816167633516214570669002344717402026404391818724585979308466857504057106443402935937067066066388915582981643114968719092120630081865866143182534557277248800312617078736494521638493454406971291154912403302784387854155715083610704921796940573189868877564321341325332086995612483198389520858014476267874536508789727492700951332292167029803957988090207424087451931819780140199436739230425713763016182765809829878615437176509659092695414104210746311082678503024557155723629974590557500916852643627410851450772791295305042973008406181008057535597478381480632450464942862863866078586212661915344546275613242314093674522371016958014269949337743380222271669476504361659841494857088932389146625521956506246960701284757289964041837323870649154555245882804795806480496512523647201721971701487200109905111327602812560974979433077608570164177487525476124808643281647727322987194629323613388825907376215777504208271095810345815148890640466649426279161971447619194499999414075749652315663278086185164548584628539157184582290246121768124296182037103732649565248775346620895585830287284474098587744078716071553035682481170987284260507974145210083172703111894393424160809149765858982811134093882903210376539523881241793012694508494251932054114237651047662044405117616311417146846028167417275574165274537770274216995288541974709305086635031788222349221954576491155392564997923208323853410210457832239965205544827680321989551874357951851249742302431173334714012822998793100465020713535039985919760997655452341032619435212153911675214836507308368580233723306475246380839982482810280062556410151272066146639295915545898024897139500250192476090682948390143575014014324021250330676756217610065396103631453241368950492400833973738394983133053712957129050578062922042712807594559216366715470250261780504484698770529790174377464742531758916993506311565456755899193008187238586376041393185734762652569671959538981792540391926631531169363292684898901638575405051165568314363686111018868266881476778826730429715555428196264335668267699820536117289111215146912835683840281194464338695326501667999835302381294427998459158915927217042668555189612383444149842373763041309474676724870502406602952583977584344011879062435396871454656782659181986822295993693551321887005500236924918815271564229564685927918890710317174151433981864676865434551534970907703249304899170000214811486867460750384347911827494228991922215454857658658949624349656434611448150432341719530413694840340938610875154140098652883457668517186013633219655486619297503300184568552624245574311560374519121814046631625237726789841680367328948620387618213383122232991803451985451777894210499528797074064992476762632043696364957393420897831836292152442918371499472590551302743039732161832347142168737198272226086451835547192480134999901939894398598529382070638674054803395511024188703086122895852308023788719336484247794050070226832639505672545406496285916562652222901442742362036748476178697863817175100885979360979955526706121654177726316885838484607772232398648309638923288576104700238098302806029088868721424260877912247527391436733517081212381802916036010048313763670150765205740229123651032386824618195965044603774803168321479006299820320262402518232647829169014917192494815570407757469471244279417047874628481392834425203248250297977700320142306742556424865952496454998384800509708767505759139560114331965352379171859857369669330584255123864251372609988666667489155489056611754389074752620830241473555694433324802432693130790355757862705434040479072751145807102853326052910347270861706082938452175690449491845848085328299075309771501415390138520672168333470977052057664754151561932256235101519457894850196015021154710999839408914845294912326893338120709367233506987820693270087035292479411167878409281527875624412585252432966742429985521094468364913379522374248591434790623540102026693154080464141017216681790443846581686471224971109469267412602888300649691875819301389911681409021403858779042765652062388730352360213019247982025224137239168001950262659782142850400174739713416284656815436732497714347304495956875115971827611915580159170266234933161527174938366796608204036299415107701352991573419741683418635787483010201071104112203854327329256485211399507913681214265100766437006669679855015606702627475156538658975157424726779460132066483406944213291397612228569324192320068296695082640229299824206939935877182277130363262389277436964209365122791870362476774779608834388859269546993362151429182581311809017979185485226201140953247641636665837334759961224982158304307622641684196878193480841092777365026284897385435505479988035505559276727820405370938072328765040027537207069102890165246914962821875618834214714565569625326774954892912560250034917940235073003477384827421542849176362441968149796260337470160191944225517186678001855637209250362025775343091564945930151963104456047007653340525822637423359115971411634841284631626869265892341717511898720178871962441143511359471812084271669856749041348819799800138905345059462563037748573065764478635222508828380359256666808660801712698192521777649984501232878561943601321636379392825238691551591700061782123089633159332249870991702286685127051880365432125857180959584426550248132830862542008279218278421449492121523727602608645576056571478420389684836539642894444880056482603763838007497329978142357951220063350537909542501939048124507986876177213923866401488820028739215032425614494762932502898846005233199157530685694307994038374124707017208860713948921683567221842462057246040523407091584014217416906822773091283630442201022667918748808076102248407657334769629822892892356759068190931983512626287813800948529089241117223056822723198768393910311264017284962602903802420879478570258910793238848800344893067255810939802929577786228202554648348141564689202682129417977714802565750496033242879632002017964881623888090275488295510711698499947546558126385129717946706486906776310611970365955969797988482469091675436428245477327256987788848535653149199342817589798810570066899549268631598837107649605774015883999992796424919049982881272411336754115195075624047633191332847680496688418101602038882743772125995761825964123145457645335466034827966125989809897242065247652416643068839002007006192712368281952707558960965118429541943933551751566194260170588233729834026181414038762296832458030570075946628556720627856486719219953290561187606991990477802854312205570385476212617164124610768054686381042451318803218344880819153277766943973243696985310174796864960157299287276311712365436241271487175725639249686698251356185831404960215260825610107477931639654084153872492096194133121989775780596450631321597171702503047013771144790650013806630238420417507790056909277439872332349395948438416847119327799236481919932066072519603825982260561968234819188971786712389689423229777664175743577223308921022031561631711121830431442686365557543969970792345278332740605078802593697667272080058230309800553375183272329706313553910492809594912494405865945191474346522418399509418757103236994094006855847373145222417222122257706732489962350149208882520336548135554939343433157323249534215962458371642822262949461279584648186020963031415083593665639719218175305898299305869253437480711026235721383296009846166872835690452654428484493344968000775379643171548854281615423035032042101766609166202758258435780690813501510796977990831312298712745227887916586034234142271173897780907577570725088723134029349173519247990342885785742448707557527420891859558812974736955738817653320104452374735535337330063918338253291461636539378228234843701609882794118557790867425914588677409442194799814673249346169570093021392570302344225811002985128930590933527343678905508040589023084603198891826206176460681554769183404788664048401644955631304591041556380123226958943611515262793650775198456512854594478947920944298863958136509444132071061615846101503013774566746079507208128640443718813704225468970884440816153796409494408863084621508831468352895081467745359413340189157717256038710999777962529142753323988223919875554880408685542352829830422259657643927483412148995716591002085146006586467241998032685853635455349427261270209656576901164787886987269643249215468810341899953532257084407251651056603314172337600717258673130467806213453601242437843613566017171708848734720585831851977336847407664335795596891885929930200174259738163970321863584003817726321017624928539191216481538204614668404594863444312025602596669217608189311773565658917552957114307495628974966843096541825356228171869802666805212988442961839677984949763683487871923395984007152947647412457542698376856631721492499348647251956311348279463854480674708825957085625566729947764432724714175865218431763792337948485442643776751153058069753752583022876068079790010382728997874548023093660110904448767549372346343141502196890543427564514201236690478886482583747007157262850640770008478109506561977131136384339150038270052057847754817982453427673346319327625794339834760804552292406108397345250446895935079188166542117059511238857153328991356159425494075934166425765660176877152770020261239246355606816625827008384782611297493491088608708890673284354487932498595016222016729633385931851462329134619680553148806017734598940389938229401023305535857279831800333394284225874092434372399796418383424288438443406094311659972738549991722872216629244592992207523946723541957789540036734266723562117493653493091398953998140765075413539465651303225349243091728603583765527734796298327980376020040526218211104601020169652862717724080903761285604309042261908431050778577179843975892375583934824510986682356869019854284774892137985475368778799780437118260382400909657937649572552008681272402301989910994382170491787241785322416153910369270783255216888160820534381276856067384140763617893779855362023458201997528667366320465601011441790399107438119730552159610294713850033089897851289298588572261213934490229148749165030301027581206694827497290080603622212628698836514739692963375360496179509871269563003916329324695467025600016392737763406017999759616511378637387143883537024327465535162138985005389919862615178501306489148961876654910341411839234262239008359537308156110815202804010582871672661859357642940390491475953802485351152916193851272085570517152079012195640777792265546206452829442267874015590637511898582707822344493010519409195737906559122861822830034868722431284465493610782094445555636784287266805297334686258410246593525432806043944730700736677968788045692043142687446861983510556675118561461793381031158256521515134287455266188562266734250964298445787901954364267431184811350192808484838861146717162139749155462935282000575502727077937324657672764094094719540743256788492697964953396729796867704759489739343250872238636548277137259339171710110509310665645526794575354637934833619997270740600286751531782761003734083903096790528855062257592835831101112110973733314517089051165496187574960196325678829802423589930990108300796053820760303014890287160439876261414824050082553012386009335872467478914826222338670733366510433629477745549785177780610274894339892286750742676426454628195043559640796645471989324471087624593371651198628494924873606601740477399461299652143709040105676608333790561533256544177592672130530199893216370312723411244696807976199661724737401206578145257667187606278584524851276455616757008773932474481226959026813446558228758915056203859852614155163108896449978430415777030633524302134038091793228631511482862749025727151110930638700684266827773892026998330221776844267321555245986438880135945640863006281896518406726527954468268710363864872299091940129450766917083658008940967548936597553779446240035836640692261294303716102519189635800144002418798790897656245150998795256265912756163961518293410868380123739357472348378402485755837229386889613142903062341098100476811971231572849825602204418374372689986358295813468714277540860199259170368005848273307628258255060403760354578620095778777430218430299186456052100444656301750783475931788862324373570221816654085182771332303226303558050996593461760138038746199836741715129065078317883573868456515003387353411807640807873081075959600523464027787804370786929332006522969774085770500620899738850616090157054991286235797741608379438209142435790874243503134893630474309505046326247879648264027454789596790464112407280501671741067276292773019298823229343204126069961740347410624104582786522268092558427728429191525319558488391533828760721095209204460383614103784076409482884075692273121054540830153415062027836957559395371908191943339179543319428955634750976111939742863237217972603085720041483844634767608629561230212865284762263009139666721721622350544170143637175662476133657206725320549392921366942520072676246553129756517672456543152909004436463844569234078959720609366764855683899297970822467025658723533582705780306508137736744397602596002975481495909330495208399477160975184916342755284101946992192128652009873012100509943802679296457803615959027909610492121415532072397583728590272084290201089771121322616734460456235886631964915200927348120356284505267817083678197719361340569403407288413057294792994206175790154544804266385056358290885816867639921271200501663112301862029248958267939392200067698330382293964520946248014150775800897248671964930519299108493959142707658586471011002565803510035178531119354225906334267346533761359480954346343029339191907618601605857275528824976517247546701687256477560765130579955147898874860957738061239560940028818125710458561083990205338521506884630877818839338807179181474254931011499888502021108808542999491377098857269184989138067806612131285211582287559791307480764615522164164866390877207777501180758368804004929701721227030555785552651101344377845113636747791857151472988278788556410410035414180365968179810833176881925260631893139429429688945725644198337562241754412343085459188678213626795428218787092083501556262103147678995344485241458411569143354787121872337407345191880394476717562827374237239355723333307310627791821921951707780830493921598004248970188995353497363419732763535902862696215673596890738070183223247515634729539723095234681246237111857088656886206900629526720816114993890071053125529454450162411250655145248467800838107229503657005781134177537954926041384594004694432341591661493003784976134474287576297417141176693163169358429175654811299608728429650946156166343900727840112489641104307933679730053693890387490352392583179313999564304206973011896983156356113170478758828326380024391128622699408432658337120358977267173597269156905907955536605206855214572465918762802756686675158090381171273919935732135724469301367743888775271297382505687533680393373152327125669457445188134380033658286760830166476505699220603784655658667036991747676198072672083425871409753699734828040539975591460411149653706108367847780163667380373558459237141365728732054274302877245728813108398521796401786953439462758110698337064995313787530818300788081276312046249770700094352777267118514187142465208080824967556566696984954143495752291352972264922331862992713584751437428432098788029046838215956624599946701339925886792011781080088039490738376709308976453001456826807523638954485419126620660191196213888676905542253780051973564041300535174735052655043468983597120063487439019474257106885093731548368679643333950657969630123639401941771396138180483699966793645825435542231718913710001671711871695313103116926131872602339039234006430456019677350972943864589563537081145155256955324814927245714659690429527851735255900605558934614247611559985881862045540463458581835533630291667013560686202814836947699650935138405719357224338372144368963655369401718938100961245142318509910785353374921607755440017125511586913822537900291670961013936415181732872268202416613243626798518557589771177692817659770801876189276143139708225797574060667019746744606136781231621084995552709581590714880519579566908548566743539497023487513235484881787231215472031611800728751973065033401553373687872721527389792542457571365422638826138225895423242293961773052184544997072475596857978463135513117785784434451762352090317249875444456237623645315685270252207418320079776264358552852113822263286362070611270924411109186532325574578856848699555867855904429355904477161621961024372337926319579302336429719218696371575819725764796599740059020592563762026141015532796580562769475872459039112783746498371263371384705697782389057206724664449294634932514899491850262240748080382041957697122642853824400769108457867570770155005952811500566959045141675684027180586548672133653693648876352896801365424222959230066593677878575673417137857301129193408691760564824791747859816870322103603916030977945702308611010693879080074381621240231368957998167360978441678172299799663636257496942270848745255069920633569175109557139312475769008228147951892197812691691485248451561382735039427167969174947344527682711485464582563795872463915887294483238609080376528199884263367006719058932845015055131687376991328072105809964969599051037455999606382702035196654711584063536583266327594866014137178887071271010221316138381009132116737127303931359891775394688191152359902308644889787459175224187415243979563095627705974466725579974024680344431249249504109302264245991496046125755677614225094275005638859944767548590359487395278347602273995740561389562467305851439580799039848630159417900595392338776974860284168398322997389583748632579949648491110889135519631604028047516406680978682175384321947304598945287230041795893946349577678690651509430625210194871424227639573792001789974104763384901446749565835051078809484919867334412390049232077956249772271138658170124611105403564706112984045635366735640470122043707885139790029179262416337882967184937094721871383776522068479540978247912480631346544927114728106153155110172036443794487572662373053116858672664819933258583454533316315585191200624525389440039952810773072962686517079664757969554082018935723809746671676485588747414063565005974426154180266379829506010835851376682361594333296154037211718114211385630489468429798494428274581392713580802035201701453525512011991521438084606306948738888089119364375757240022254105134659478079544232030254977168343048856360482264953707734105678933768524460938778242545536171031000301703683104067003013389672626039737261127996877631891791339789426831133845298705084669651987723657828648217199348442995268012339498969037633623906116437292189000302597586991249559744210476110125145813870629869735744501824857619617544928185964063876728248820900550721182229150420765472667309520794901851575033783141846151046465346959881746702975878496737730336645341021990887171505508434740326978990245240197406872489678153000695734233296626472076840359383453320893957447597816298002921481556904641045454681268947321261301247262537676963703105208055097525197304945041551222351189312143936552295785080575891789775553392911812856455944285089350942836592442799266247822777971002159075043841758567623458219355276798504647367390674496840171547012627998798576211438469996631047621527033184627972376000561546832325006750049260798423966279450612479268842571810665829774276251764041249110012258059923007489511146573727605909739081323566893863505451148852180747490453108538182128077074402181211534346938811908069063002502365692115045822004416986841031127917757576441630325369392033599839569707744013271244646734897305418546525378184800293629379645678026060897070376459584164460105310759797655502876314925599726820307927170672105337333218143377530829064904748739978615991382968115092719396906266424457719535253439006046073562019815501655233984845998292449060780217884514598417280099358574561210522944063029708754813138526841952683715401410869792803476699376023238140962853101340169374400776081456624727486497235576585308469757950224865501410964203886321714149059379046656890271141176861725323336158242843956124368413125707482864220765620603406324888175386765505062062176857078750521517604847743321254257608550667674767090779892445116313828581380893901274820631636392744119473274547973371913179064058468737258157803678322852911865184462796235560608146711878369788289860100079748101296564986389315739287415829232006270046552171438290485258286464860788400502166321774078979319294816761925516731808188219848655183166743936931728651414445438113624338528767709521467468707296689653842720022386566030755602749939950182425520922062981697212123509715513564596691444640404380291709009303817114366967352173400612653011132604580509398632049355288870015094808434427586506734213087806403319006219245769486560889315313092603800991284560970240772206352673955521086964693272635872270880392760105517903337477538755356263001253277569132352056636988681130108153660423963720426807950839015722057617773860336967473799187905912924873607443282110011635009084575522468762902733758632312791636752118252914950654980932973638357488973408783281325311248868965689522382458244994715868119837454864524925658364167256608469841592970572820893493915777615497063643297936652860322876662017196581631635905116298283759156479770758056912584167209371728844525304577048163379266928094148987644566851019099129810189828551793620732465979368068006371597657199811658383542354600340637890931863325837930633975405063358070446678265246951806299377341474626234604222258488723113758927252165316015204372649625081910369832363750082627243759722183482006044063396798101613704146099656065936542669381654446527649919117269919424964225475572792395686979561457267592369081373097402766747541411631141185937839514177973712820402422164820118221504023984738518794242828783213423216456192113060210509777005634315901020007870577106248950214592730454674632260939443030869940796576688893424865093025976954025654210161317052896925674979092758451823645731098732020572020342426233982687735652196529478001110630555252253417999027008746679814167143631245174232864547480330268284263213436594681222241910237438755757950201688951010307050419616383782284395083587765274954980680223814390423011150453900939428893278889738973389479818851719062550986957035890892296371944643230161061572841181577612326210545315370034958211987703870017751949390809665291531622201625416211763963704897326979978063848846321695456359111389362616803155469979036302668243721895337173909851969747601867414744339419306529700363735529974933064198955673000171276515981558525165206868670996030340752416047914552059458819176335801143292839654546203781622683806550275322952932972612010954502755257199084933432434557590330398000936638738177951884359258472291811794645120129941645999538408437799233900348325534072835796043924529044310745483856386351581877719220093720853420231287001118537018499297334573700214579962746873944247648884508146649498883999174884304613437653987056966810607255792298670623390399039670575722755656373023113559589314784316717550288373313690716554306109054123291866845580370048303098116622048959786110616525927812184737420845876081369742224490162199913370850418945947562235814997838848788668299218500187891748770780149232949019646326463454307386016435846247285809416379005303687883969915696129278678082115904429459453782080023098315439659184766524831446756634047997920714071012619517080948595229928464372524111030566387933131510083450646378473985054705917412440070980568331718789670293944982662357391461938160564561624471442711143690273685519734005549726932929791933967531280814399050631244215375892938827908490250181313448460246155266157058271968530412602583423212539048551607020529259108399211731823911493585980327338886113453995443935682734342040473247697759045969763076250251837920127043027756022749772614716476163328758768965971772516260312300713280403347628819033779848237024457944905484080416923897390143547230015815152911194768789969210285892127154218160409218903327155795761828327871728818400855991849481001132912429394535049823681601553480088694827251478679118576917019155353725067042000149581153547177457901118554087442325060343097071861661105343279879615166359498749786664137287157081502497064875200468365976547469871799848657275761631735283976248821850091718086430976439408730439411925079467400190668322409041157686448037506600400459836830053316807819844063753298079721304521189998971831881456443468012391640607279895662441211505377100737867434108582300983248274074432481599145711338392059597193590275564868133954662914974346288289061130639547771947160481208727551442404398606788198919582091470764874913313843568475191882366853999421025480673768764396862584084534511436763591038548801095541119372251020733943146436064633070998210491285745078650127667040606579907089696517835821963873540687823116409481247571259024719549718549916243617213206619711044700057716406820165367683424233005756095523997431008542666303343167338084968890381033088901935747453922685840884767939532111946173456521672232495239812672602973662032764874621967407505792693900358480376414795829950660752132468706024356262352859150403236993632225751299503814021617449209791421517550040439896120527211109702800113253646342153816998244786667276745961942667768332561918977893242621540101406006267294651830551718332772024347580347730877137961845769510205675817704955303445769662870315133530542612541427660740995161024123980319108721898046089728512572494874699923354901671164362782325234519858131439929730256663430003111910861103654840929296149494421791645050056362572941001240945437462856225396682229749123995980184407343706429762347461944315265194117431559762370616500615812343596164390310888050102790159600208687374100243913945436172227273600832772085235224187879645553386898915520083729092070490189995287149956536510984675070356062502145494818676686919451080456035323627967138350447643402545657992613772848743229687775611992713484368769606576372583118437367354650219325379197832467026918628662174204885710059090667157950817679283973680504708732199988012293294134447551992054433422964969178570609571839693653047395581162549185355320381035781593748829586661761912157645803569374970476608693252583906564621864273895724965824966666167549078545293608024601838016137798194527388169590743411952715290416594445832294094918847820281343607068891365694799589374096799277208946491466850711271772674390479033961743252261905020962738063409706437969589077517274512483158663689811099971245398165579355665256660029880692870099073744533117662548000101043587625572081670390121339216923817555341162552598966511599896894977400958876074756167164734679020261337791213832429792380614126653869254186116285051811877237012439580259053110737726831509955456564648914364926960015997862308841297184444577715932262185708932163432735759667727007519113811728059993723599402646130647612047261061369241657505472754395558905794949301690670060945475499223468843414460544784632686306527150672729865459387092301042074963594074191879524659536984742535413765994765744828107290819339465152279061165662370791876176278327279282864920845503011737525293960918583013379153691516723769082328698032537668670545399818411874285917801674982977838346677135101499193663687074237585092636478825259877144801121277186639945654096729821457230672378875394822496348433667971845707980723891022181538606458146099310264515908720406530778533912525650543567578030163989216553546538604539051493848362084889143845188899941642629377199819085375473584264076143547235064605704644916842367096557955468138624325560705798537695675592661621851574207380081707465081055660973446195422953710031372328773633051959091152236176095062533725276479374572425872514502787928704488145993618000116276334976662349496942336516228401961767149583548989817056186984357401203813977411413949214256753906734007489768640436172485019581558282570952591073154960109783005641064299298998827606462331658706427640601117389484312942221790341589416711223735931830422787959446374843597470359088740641114341205142353088899012407875708293318459750175072268913118850846082262546652763205726935284753682891778188357868988834466609854464783162951268124076906119405716080113041344603860269532137848233716234652966927863990785627762536692055455787564731736563626643949386134162198634013252758774394589926938758872202266894139070294081767721664787431103375146337566747968313156191691204357422792020028190705952013722550612192968876973151451914988789742002503753959429873386881989383721182225304578919464585789726969492568936686170053283847321891283451329905288838171070164973884301169252476115154729158336559422976550008708343320055177745339962335902938353194631934318347662968941872817928555847588573103266910081641869922153212901322783875696343011645877556521586560848892348118477536216982979095070911028848488148627530065338277111619123247493060973182291755145377090506858510866578110516602211266249621496150937930868678931662906989122244598376429559545726749855686848228512730368957771682996418745442850144764204963660536474226385527711542302240161407998141166464528850144327212044398657901429049346860132750668391289226543179908172317639396923473209370003889715282001802285960197478305679865204855623655325388558196258784614207712912551983644592435804820357999108468649763167363783191632967336319730435070406505190173593956229575761698426475062905883584539363535450326017180285492280535622070427487013902179732708508768611183959295301416866558999337129845585325839070748165489905134367242401005334455020983479709087988938608992384544647662827408716316019278942872892655454934494827309302227870870956038271228913118568426630851061499178240567546025959560094002905220935358287400974750673723178718347685202406555688148868474757435561199321012471778102861187132656096510715061944227115486241824019984783416753936154586064944946642926148896259950321331430250863174416331690177423047927934850655348363913351147280157880505838124102887057390706040642637175401992620383013546610700917038232585023267004524395130420671058646387351329485425893689196072589070118008219310316854622257993105388660188059232745093217326358730267866404684533215757811663734209392529473833420743893857235610595975926597702448696518554392597012389342177823849598218813278662759393694862081487896280992163056341583509682744445343780224079816455791642744715862798749473988928786223434439287743137977806857387779441008264172058963283591055060449235902571131250596590334036920449237969084444686003669717267155688515147266665408673702721172611321712496209553152296572017491059109103253347097866169728065377754717101551991761792910494603840962125369028945616580037668017451840823124835524669597130848274322970599021667760694030816247101266376826082331992805574168597025185403647981216191162927097215127663652645877073438381295534003463984732034497085089973010370808410134365443827774197492357916821866503696187435098384248908134956217004523196907009692600484284730303189647556067680961341814972070449048281683234092922574607299116073574411382358599059617301278385091336142548949738510672503025339294065358289521823067422034895160596545567890933602233846938562249949134362775574820851653953243995907980358332296896725552193317446320867712727621343997237781195343397370170598596201030126341681515494315700097099815366882086940034704290539831520898743114406351984704800485065531121709399460514194391909767304953312612038832649795806712323718459716884050450557377415599875359997087528257919876913320332471393799718893628300266076236768006557642318936321747857694876367889780215535093824981059973357563999515605819932351382335746111700806917236503699997276413925104901201292461260566024384630597671916810618616887972567676688601750032903291932787554142032148997538865314448951931593003193147183993798777518623084914056372987486174416962560098642986282293391218829594295974904504702475754373270673015087488684920373936393614323073883815542019282253147171607214221363370902284140223890241446512257261350725038842866057002046112142010609914777760127270309942901771541238045361788269982419181151457186940249132911417045710904767336579200425286570976894912287527661105114428020800101699081581741156103485298145681900882248610195500278236728903328751012264647203464634174013634414470265563363645388592407736421602904573192693622272288440921812222109815327846792004105853646446088330864709269243903197949885083299793510705531922854388591209214390640760783389327485586040449080815806424980410757412869878879874926052468289163212953726538746248118300453106583770085093445147042746934635594941933800949953535155432084119168745258571765526940179187122273789099430364837842099100916975883511654849728136890268499001043231568503334487983878111805874277575899782337409737677009078820427649709562202169911848501792794388405245256476515801996421110478750786000287800111453446159327264356106374984304985955849968474449979527343406143849869088070823527409985954150752263375607028140223704470505232153411339919503388688748614188100120727102349359645291966519589535169002494644459589386362283642787744299506758245333538528745755580956631966314672682108020792072739369145732876471276574196930353278575165907867488554121900896285347174803316129577912167701794677831193186718383853278612459571035832532866221872594086922753214294636524863299056199483681216335416233824912699380424189455144808032622687896029912732709706047836682582998525186919101301340977063790232994592968709282596394883464711687552662616490189957317621254254743843717653187934426686116650081017495182263123997014927254692841597216289699267246783881256786057847511274168286557279362720887079116664591008555441748832552435053382562742233616288525031471738059851436477448873817014001428135130826065074193304658921932123252313386529402244410753990464364510850590027332916212001262461746395487852399309638185041240941797008875623026933346032282777085651963569854240051622808798236288129306844100233303950913050388490330863691647597221379340644450640601238281735954552305089775941878068601301077105278010672235169110439982378666570554959263900210973451378320175473005195246577274997835195295470410133983088205047638303348384307236580508579889946468468264875946344922029115768661015652801401583901438289224474842363674684148593938708866409299046178335729741937842913009468831405435709584704805915123846445273756078091499310886316251721336033804718029973691051210315881291243916545047750826638241483406221395863927844851678262102851391679728677517318276557147075859804238484033408277047775824150475852706191247857596685255293314740107865946255403465631530637206581654120054791153556313552044026907435894845724579112099803471610012155760813484731276706527545813796972801476829295267215406239024668848581517665174009617849409882369638129906492475755588620999134803673987882706618761180297532203392143715133915516393747523016807262275570365512264619294141224913124215850261515166112224020622456288934251020305081538646661078787597305227476459147004548094137133743340221480355559995025803700610969109043461074889174809445434468415296674008847158303009666666564995542226250832811362152483331566006010652227372215319055703722488859003284933098663895674145545856073740388002621496479478442413556990558039179552785749948699128355389298785662419432498368129085831090410456902965011865144072673788091789300484015220627476867766969189597924595417846986057715988513924724009051609036698534413145012815362094756234115921018866076396784227432800629558198027866048787371980858334273227140754329154137835230094691572383897172692356624630348922779778369565989440340139446266273994185441200171431755324256924194281858212398837376197451069325389921815118737433793174517323952554058656181476704540469868947639839826863812317348575617605016642885069569745650078132680352475406011714350955117195407729072986365356785246108114795545383631196389094768896360443061394953293966867527931642568348961785034840353000715434442381996793804820321924798332285405436371752453681911202041001705607748296232870369076007106557503402376720779535943092942520647322267894910253313333810234857097522230825595691620316392720832611310934244536678762086657858364580803713027610146158704486644679720830885627430760061540563573972776128022767298446299886825676247862825243422406910536760704036431302242844778540511023944141153647567541794406051866716730465634663953462924430035430851768562007753690996563649459531996170834247208535221156027278750345132921408798817487550334997268906811028054365527188907173226631146981459586851810834222002662635801867708261955820779093523437258186276938869678442192832452190768779851645074655775745179286130261573011302400291886706911381057479583934987788323689636793157188134599845200839259469838205585597715429497996257145345279168339089287249431300998737026648483484210035375693464983797977488464345359612570257287358504541095622863990187960175186481293736098107522310318504808718149298779919386602971206811822241128563517932786435738971891350667809496533479333920092987599359467045151685759177583713832466448355364184006847283652451903429857292584894868021563290893174248686974330016018398627311494857376653567557668085036692785427140686005138273752406909964902701047641036797423618728494380779237509265625354579272050373651292839307756611275088348790606993781511145006992296253601089840326729224283861933813180198441887811269963527282884270588802551721722436067015493560466727646660085279150139047622524681441023680902103458340594757693838301408072935824691951158256331777908086141680924895314340995843542177021590695649226458075621347077249572858302433366130348340432304786532594926065928675778736328907094604018846962604943072479469060926408089250371489491287187662615986073735851653749559509009392576020889369912223965857504332659947201931856027546613447846024434903356687394014859666942825059813465434235208691585067937085075939681511556977685529800292484384907066215494808392067947594247508229435878385139117649708075947475513733771671600833470442282002150601374205339109785324211529446388351835913013696243156674217549349512695031851974249498192758672478777659254666287132346823813839312059177018065967328257421877809529475361865538969633033207218983188319016635481948281686408256148149024568926901936531023766468558720231861286581666034899655303212469736879322149219588263719752652625580454549932077549706393316996897358632896508835629805942880566366241637096234774194955010774997900726025356098983423519323264290874818679441586412555533068203183972291693094322880897972100813337889538334861076637243170535195443697966880076425814574057487596648086124787936185951760701595178098842876732720702347003122817158315156874297908590624207313809736483014538828933672604425764277025749710904158107560403924147965841404526670971666866954695587155017484507642742231810654088278190441250000251967582124137061773482500749319012460377962713593019798742566737698692844153819138169994976830899434477629847106897785960781682977169048008149601610369097785918451068985812289937432706741777045809604674387652132092542476801142723092704003140395594892816164639836004004111761379782319325772869536254343107966028767626550543440351322210683690993931235914342150577321202360182836313866995633381198799074464454235788242634412510949977345045044414468156749897959453329237825115802160997117030285194971446970545381965077755322853289427154237070608791412846824390395847917419619579627644015961930183199600215751675161367553056707490879470281910444492025001551660083549823782530167111382430767401508938906364956119448486072074295750513526326872708135333298860575062902224481485602888246598806254663386625516922933236490607619128993168931469217774638804087793967436897981287183797713298096329972403968706926076393815050539145084942904404037919669287791969646744503318352941399915951712638095291326216283948361912137407142416423554594619327748632765510161234710639531896253831462030665222218539157552020215701774050350921744218006009433126465691984808979850953888999039426766065041491087445894059272896585170130191043729088001608925110707133058035158592471769868887758984314746746378038922497423797245769839799254321425304812244216049397831519879540236109900395158301821327155946824590447800080331558968637760561852993412748872842311724542668548196508806467215497720391378193664130992828848629117102404817041215143400996373197133558889492946527201074995812538349858616149616013400646624461655937322690810190513479741019866165022637578510682655300032309039355937030516200307042648168430579404573174528635308998237139407186282080959448221064295480459712475901529466770094990972989926661561520777749151007912802178504978993506527982699940881109151679765164220174897360152054576524165884469058859517860448679541665530095814208705966497457686550479615003985832330572637967552148866886009683424515805842971441496704783493463335648444258243072204592852636598796543974478836992018131747457347775364577995220010482606650935133897446707791875874235082890541393470967491746284020395878275312082977945602278280935132832571205574308739954381009595740784608241645977563247580406862936055390233295636642509138418644203791949342538607264166162661657971067564436598779515605525372299061436462510907323627380472158667973975724826490096263016079602942622952084492624464319386996951020996459176498881945766191004630186119960705080594897655182289811490571719404092179759987196816691423638907614251609708836537992430011483236376397718988027213097489394671740129830963429263906761596986402029805100070175117746529945073411800280327249016827128710010175724432948869853588020241849038492833342069612021941806501518163975687918752322309436461054299555107464965288354333880170750896166173511628851300428185435099897095272299399760498395200042239289820203169124736626360223056154335312841279156882838065875137226520156716492252237591263944778913524830690904688732839059516692739165059998857885874894115281120918629123738012218555773533956972433567502244427183699561531493431795805947569702485449242490760329708240801056371919344521958769940814372715763294731237873921192066348760236012604946065327503198740397637173686219840379282819554634866246011940992031893366687047781720123902961175886580998253243326161167855143407658528198220765368502260118471446968099554664525311046541726654816534514611108456157580848685897389518357430563608814307122912341957353776622073296995181783410673839229787403206149014740103207930656224923638673611399974986712533411859814745174386990488125785103375405581792108950852134715738384223534895970870495791794155080895625539221018143712300996321495468274054265602209481917097667346785154206887537203887409524503377697979310457005489607050190782555119684812228620691073730396168064688184037324939889846187797061165786840141794547545031264536552813602343309612034982115141811049295583251244580204029571430745587301761463882215578872265194488503980790411128997467762056919621627226364892587657068722697657260748400114140670819923445625464935279320626136192304754673025181989634959007769172875558986748358358676997084123108801339502333055600048631932493733670159410975799691591305932545705830661540520768987388273638945468961371034459227903348480048495188413567050154200178123998628481666302977702055656936000344083313762755678059174967184125707561556533142900083678242036102830120659193149821452168068214662314752494108935042618854231169906986906637107928007008840244129649426929659332309231956064676477999370798423688207827353175770859265526522545675338340990805266989575545642807213934863185288169928133972775729481664058702240012113068755075271931904274196392859796232623421136380349792029572334775750571329819175487012528684461102417413488266942318530928290396899433895862234766391283550682296229975963169039868735683150788138876593275634774216002046489746930870990946296913297722340005346422768114556524175921683039471407277063624338566430185609551393390419224809213373332570532581309798713881533890878560121325581270658047808958480832415632011139768308341510878844833391375585762630735655948173164689656128858831966275473445484613905703280677851609352703031304472374880439298754538404481188173627005395567935258366952082629573171548202967024882745086696546399879459646160173418558605377517789916357273154630828491360268850953830952815285264288880259831821988539188886663816371770754931822682400767437609129529451787474482849453824294619084515816184565410257958590159164447975493884615350180259680202909927401603209855785386727918530186127334460071125309802363032075326430159960739772239734837401107006036380573333816923473457527338451531995358889202603959791224031601729869832303443669205265982580335723108674364671061082954676220478329191001497400388939109169189266711304010894297825532635425346665228381752973347373650963891316608453906383443033705295739949767156591053439564105661124800971834183791841260191732791966033987401566985554108907542515929299453835792260823632010793721844385905986596535412465660082012333920883116281530516083360686013696411296354025654679602421636721067375295158473169284894774500740897399752224820351110530979585467296359353897489327150128592916698792885212804166026325033806715448397187979460033296915161623602313819510754223348717221192527358405681198753933974288001967999548610586839506961616456444106411197215005578727983540341328150555067250867541126708823758163720263966619475695866507068625714437801594696615331142605090730802491317558290264080536959895630247127199126228341361577966150558575178930200557449144079844374910634017216439999107295008633415535441173149536091049818244496350260185606851847101896562663496923386423273690636566046916300253919548727105560442671901384942246609301788042748035873540913587576572557873922251583747642278006418668618547282793313305803896453707377553444536030220558991026148008299261376444164836604597991215235220594913350438287295987490052112389346940906442475471609983285644144080831040508850142344453068617776579956143353974047677713467259301428095802344337776461505170171184092207960523188691104693093904128834061474711732554885674914644778455948815426977298492879736232143639568559909931781623683463105801549233690179234290044915168866392183522422743733666806468135735756333468065507770833928197845307046512818754849341335424803486087853969389315500712722328471914930670075208030461304584956877918441551387214498160310471432817715514048941328363437001564007568541161209812747227280307981597473611706927749247346339062750547054346585763471906789432616018185500115742245001646562476164533480098058648231524156325469070885326491078116114693386846757674531833342061338311921237135690489128236693531009518886368491954961308236016034211683229712877654346499019182850830706507440960894151269342226356657901566315983453916786142563042522516491633003415591192558472965808167002522416775422634850920693636611676767405530478755572372234007697721901602020849522872059857564404169351594148340561355788753231814333663346773427423160901979231308179542227589449092334445012722681816019658663286349286572499490554559895133063533219636040159751746370107980749420274270684393268982528906193183929952409137085497504843316978642910302181824828288781838683219851354945916035565304508988483278901579835411657071018446576521096275409171957271166319629418602939135949382344661750023493979899405923199073526321146013210087307876791191755284880124574160500694175879831037862150254134445045733958226030349820078090160829899464760912321210944263621882638130265797314281966012323081641562342521771069276634918798920244824836641385678193377413642162434787697518840640148110225463421778787666783131275925819838899030697785856672645621486383254333486955597521718927585061518761318829349520659370418858372843608512426731133124094102267944661579636030741838586485719445479081359501000637093666748893063301277181727253791393866657674446167959559470143251204271874641869841352720384978774703501245884799280317430299700095454924098396528184751342989875436701533927160994230035213662707683785271608989311151632374351154434175748385475587409439190291320992444232937285875741641391531179910969225264657236444109112757362481345008309448216593369917850520231251466148077954557659734618532147764294026150723881668849480062967032553373559186345046601850238714926372590432603095109215122339550760259893815099461541204194873358595604664265499077231990587572281878486824164891997649414167572733625074337826412346122164788027492919726471897536259691935494177386726453005164412709395181920860734786476245231208067409027382362246710068856102389632194307130740823512276639748323477405926425435399375079265162020793857596523274570645641713152983416029651813599886128309297274157313605809998845242133356161239013299863253372643551056168016070659943232907222209687607429566665888598765643684177901308227726862900905703065639234656227380497184255905930087928144065209711428501655161171517692944071469090613250384005150776046712812933904206180551087498065009455824913551139350435466527217271506133516192707668637285618415322410388458242992033551313432224223727243605128548600675144223551885829186914197810661871359414835871548689574618223610086848388365414143241661716886810659918291372185779647730298446173512351224849855250655606510789721138943943875261800607589088547373628555468621704335012862877777982357547648184937631244322743774609240348541338743997478190054927794376482375011242479058050757399377862469506504571771996526604020224640116907867783170677991038445175322767063287744105288606527697939004654053653692128884732932951353352109999371069039372462800807398284524720212866254678517899513938515400507072368415111817634891959728644762149140644924908597606663740048777546997817086494949223342695628292186895146445445518666139785574689275795620688305413495552799586605628783817487995353919930416913706513996395621075463854364265728830825088693355325890515678826885432219378541660666036007444558910889090976341204118464659180131226479479786682294068224579040362530758402033231576170194404709702716998746587196025233250534525567076358910894780776424661841030213714316405534211580959424448783373472353236926308840997946559134466511885505099678594136899608084342530879580363654685219930005209052633431030501796452013146829500380080285274888033154828002471917996783234330789420231417938020347284276515662656972705892085481365526180318460873347304298029368144084379338565907840191117414626281885283502530162674992648050441859146538218492943178793857208967033598419096095333669055443142757399918236704797073052557025161683206584397958918149583980286119433260809685569654954331110418955038557803566712913040394132476555187896634220643803533001080528997744064931439251056942522005798077394403488631771794315714232282537817385572265874192857990957483685344162497427794247661185668370367617470405183781897629684579419645835849736265985227928586114239562460322624083094854036012399735893761791509924380050112837628146895051113211263122107362798742519194612764133648477472014727070788205741164726895832328446483377721236335520207020328931180206054124016451990896363438629438555495213404331087090212020688875610271694992015628244267838529023811237898252316305101100898525296546239397828485219171055911289583599684681300693359192543364542342883990306899534945072307859535824902105674833671551987948941755340239096374470308978394424911283333657905375546868068800985603770223032851505879537757225893920244275752809052074878159550378728532967104912482758657171229896484875145625892905691876317011289528788920299490132850622422304416774746625288571050048595334984326032824968659064176325980558357105570833234702760062516113969454054192464964433131718384767994091998044271080245145351333625449450489313198681907094552953818814188776519499691466988475323181460244777718249649570443934733716493209831707785083106341125299934329699786569363332258516349060579294039047876763202687648016340152262506003093934480639160853660713651875681541754983589047246548970234137286395513330916032620308257256460164608930837482778349544856695804471357937329029361083640804785476588741769430616007860515090291571302614434047009523547193497569064051046076752425966400004517669294252340003526843250507027100400129271785502552273874564035827471602950627371055531203236642630767573697373024416470095053436863836520985077712446900037678300687955788835517279278197865196954885804231827501091672227239952600758935662682336714411213627414714920301575753837649134369247157714069787246750587807219653090227717130280959982853202744011521520804170893893290927673126709694008433781423603090285374696671093779217627324361611862642305850295479442096405595353386662177904870763299435165853041855724611876429544118090797514564954178557964403108426682267845367880781565830970250014070265204452576013026722463640019088857014085550753082443991225331981336722141205896166005111109943277684375550951994657628135342820236096410727867265651155462733654900952847942281948313163573728277211680252915641344032546152091660072837408188987741942582358693696532347166268337772938236706421266327483501528286866701251225312150397335483883901404338930498892472042358483543739946531447943922402623369787148320220805293593609551554797557317845624627148264595412364680166961262033920397964827296501096447788957602502410802093809323159341054538763224353552092538925854180601923795281509234029331837840852147390582488235005247600126564806420296259471834806624917984371990000593397586926121238492076647264619923099027662801135084946623436119520964178196337900797874711962353085813694631199880349278718282540549852816071219670038656005181425449253966542602727351964633397014110860794203574536525034827591749113508677566797774469576401152483119362051156165009864140343137438070081610377065500273369993935877651748738065260888322269524377301812969661575708059619171013919216982356583562091391650155477358962958691241077706702588654065647793435750343756809155917695941772182467572472166538247330945062474098806442773453379935144380543506817837503371718883309875689214715676544551387180678351554128608924291980755891186216656476122296722260996012352211593180612930075706420868978636072908931468386210149779836762479152363126508450683341985791427076013957249384734173875009326655075954410721934145136431020451487547893147081941854656980792249258992497718028916098698880148875864323355663570410807971769983607788143630024981109726974072504124607478879803443264364100857288414183252403203637708280823429327722513446757491589655186238700089322467940810099332511596678464666936359007999779615817862040442036303597914488147470997037047250075612081341645818959565591967867123269895278422294694392041694352840834411496727814423654273766208084971844887506407990837966077318556980599189916355010627470385833333005790452943037782019440203131501692949110846586487327617172615222228415224523417642500396117597261606732906745289515093427669078345123129327640022798423215396752497654993355289095194156102627067450084231365012882450364264134457738650507243224523576847022062533277805719883410510012061289253941781484075885420354756568276659040819573037687294336472506637895740263286698580637124422797877829024776190681730409854392004528587018677774807850870120292257870696884093330339457983717887476374570796811159934273417149734859131146863891315236522961272883982130285075686998719976606921371463294794685323206641125998592833836434171554147586587577061920834006655971791898299550523675352001467341759806324814657680127435901361688191140259220938029014431843860007369701340515624955354224470723406613217287989590100259377195622051725806062602634968063916669510527430056960870411017796340735436963933797012348560558338441382367086484458927562446811635491066302731230698085169662315942557997882693258508787188688391661093488058903975848211335725645096538587299623608183881970590334201971183646456963345820601173599304677824972120621369714771293483771256950820596929708704062834472555403158354945905008129986461938561760573277698142145769404192923672037237278213932166057197489749783191563130206723837699506690820007254873549193963720191305990790730990713233464784409270893583823740060204717964940795536412809079378296672517661662929829959524001263732292338656414763418766572948046632485824878225387409540363439243019245541162257100565286498745911227203126864165640993498344070906354346370147692171665468892504767583197412543941226023409462330130079939527411367538311426029813662975877729461564238583253541094074870428797336769590427120291013181849878969845783771651132655562973944139158916437566049098178389897638154111585788911684239510918214037687719342100468923047220622244654258239419706596575127565810997110030455412193983267668456801496926370931499661404650978605419335303035517824535959241454514506041098635929268923886198941328259543231139414392760955806743190338343962900723254067936109746887302260249831308785554188178047096294667837557218640214543315772451158595919806926881186659507574210071061184402185814926857270656591420934792172301603017816109196017435718503178609876650233275498796838087037156879082619359617112889952713100924612837519738329965566135377790814638318377446301949368749970507135957005060792985563680946477195121823013031002345573913388773369367087879281084450210960895891115941137842185742699560081473414838279853017351564450335626270889891717355362392105464101541415474560591436795571809940752668184161553351028003425610814552570034135303976019204055194018289469677694508492705431250761775192940991202632300149390375003144947515581054048838136105171580647076000943567348683243555423541151230610335160924447827904957884781826125928139582829202355926828105644729633506993529717312560917205757751333089035530356555705391860694665705344932868963170734872727952335228057436107408894762512609773163335186119685493700171216254272200817094165985823493447356585808517359982547621925177450108691146508103564021098233625899929572419012426794981380524088868791191889385785897337159919904606342382863913493960334384228136794798412871352246114908027579591824940678518125201676499324301771693108372896502337230062008300320558792789571488358492009397964445939671664143349406126362931002050110217608451336472800234459675386806375318527128412234720029341481713449173548790202222681743862690931132546362183527414540782345893508433070223227316140904479777007883345476644123690258791014236822100893897605375775731068154903422473439109908713098946837265902007622441495952516398493381658057305896544566275087926745764612718285143796897843656042557557054474870780125845446553413965231946243681220077055484463688570579149985907253224520451747723992380208946713873143975219186702955484955661810121934655253237505435637998426792485054060061214807663645886672348539921098768041395140091074938200641351965674465621314411613661708674683706182558731183980462043978184259124752853304340421403165606371955319952486731190153740416568954708286937884634764011386871414314659488016053847880015505944194296974457916975030121710170373379045327576587451694176261565759025251424086545305011772231790306216397779283198298566799890270081821900930160236180430733186959498123370176728408783489145029910807253650485053215348323072814351888647376606438422320697713861777606063276758327920048694885934885171947683885972749801639887733506573852272837510285273644823536926238966686624030868542259492394038117286186489644533414246355807269470344760908142672592759777201159071077632571825078444316852045079045742260870829324594532308464706828547424149873026500847523482930707121058544958745176186709536892776889030875085853796831281224884797694492309580108839513979103055754845674148541515587294481368307834496031580088802485774450226695823233572248471453267538658632705335203431944490179648657742211101834438288426861042432538283810988969616313238646253892027647848780849735100033921160003968390029157318533350193245408487203637834429661580478967833393870327814488078324171464542062477083739130325001616665422005741108630638205639533779896283406010306420384167829670143167920369308390480842559445023049642792023219000306510446939528710179669726666009991553625886410443361767633337490617437753980814627397561212281379086371765882998011148594402570989602151853186052890329394059102670478565605625032618712343330311944598969428768399689213318572598425320820174477528381823622977264073510437370246938938578240445988545303093078420938740837655200053104323024455339763400387221639751807492275887622607917544758093051757642948369719598837072713769594629958388057147909267317004965357054317492278303297709134319799860280757911407732837709669533218497079086649407632262176574647546709337424698151901698325031302136900562790997779518410670401115975707959908480547426977119443468938896703333097061392895772315824659024059463702568851317955872435261896504939339387508548400198988445325837474301529003373821989661921373265548140010267970538061932847495591920258150993574372158118990976257623927111470697857237692772079501839684934807035607762042862103847111881897417100664006773422175255463196692965906251597294284399160642939718776946096023617829755636905223125974552371593317192418076678166392623986049872791152318581303219322924293670771342386208151345945002931437556868118062829066770603042226477986424054035184664265554749323970373298458138630413523604865186395807535529561941400834185742519043274515647746998271797985411019419053437408555146843774945225670557892893746031367263998270570048145993740599800218012006346850900669127927444786425378387997251189512015388442522317032550768587774166200436379561779115400742891857557220117597545406683156523671853071194171716301749178549422147351710859494856848249761121789245337099718462135551825432380115430179088025221824513167936834683214145605403200014224570113688970047449995652541936710743540564447503423643897175622739317575161631513709390213635669233567166576542428839857189202524879743866142044046607953473681378155235633399836755331039700619968650608775001718820420562612882162499144552573462078419758538351156332925895666716555272802573536371557093882671913511755532029653945043043163759923559901452665781238095096271993222447593781484856666011445428931973370705218031653064096487857109316449596447896104177706577437757942868627834511483378135415298463949442348517566843372978422497631901601983156277936335065319118132090225279540621939157432666844452203423325090208889827187887285278534082175722257490533158328700926312471235732455172428343643387562477838677078918602594947712337035745559502024817948562383148652521418919128498509573125614937946104779320618665587705173777945734832551667434642852123890653029865929239819564704883192525181877432606484988913894275297364236003334899335325564312441152135359272262702487067692044821272726699915606197087350511334135315967694032354173029599404092773832801160406582493162514948793312025212321108273148794286896515541472729353217112236449197638930780192716956001117579506548471397505635141230340597649681868010171758468833199866304291512460575388187198748922218723029953186544182172566878703129133635589583195211285297080042790451654251376637480484251040317057530071574468978632060048567954587347050470055301605540756584005774224835319516339916535602786595269162591220967044981986177496052638076579564785370509000748325239644024554853958416757050785002191739698900759185671109007636954833025760298830340103524446086760870330678143251253692007210190565177877368930303495785466453413925753323553322918760176465776257639444808510242058986891609319120604488725649277733354481016116331171645249017031010223980448528750675076687696689405482414108740744112476145623959323144443323644037588709487553488777111009552437400912890910289282508676999486293977381183551345982274885723762914184678575325576607517628043310763499375181438584999927745243850994609335698678858099219645871144957389158658778016699890805602343363120461421697533316534954848692068590314687727620814685060053269821467950399526028457561128182926971047967242056653117112899276614562135497648743561833639064860750590404692000439624472881642133287860680995794476025193404959018674042685875165588642482255278292440447454013649513121188497416184785204646310520365450811637882450587330362968370654497446156085248955122790584535971361062915284460718670316977852466520926834747610943003066270224300835703819436054949359005021100331180859861732714247415183084406569687895398533260667562198648918964797716422193853972584800853736224123838288590603566460384681246451963523103250001667432893962810926561638270894552456277988708757506973985774388356005604505551660261963580564821557150514414801350537976342173730498405239807515202087671291060706910536212941430068352240787161161440197354260383264248340027992921843129994071585238434239325339069179403488607693386258647251051146976049109899036710404165655352523705599492602816618981913112659778788228298561960203978686200090464670651725300485139835425927947050099412590858191868268417070508709535181850310345666607070209812809620346873450756225512147950845127078945450072201359328356584055655119543322681546988247523483870286554410925575456493587353460686588343687030746074569650101473827553504358537690816808635342334635632768397684574150263753101295431986069144750434226388128548919979422798717469741571229285306516351492311853206006935614987814016812013553390667766132307195946578643637653156747163530109905048657532826075579252661204335031933017629067007743155073213992015218629501940623978119647893282595960939252668448413175718615998150709527351389586202355831621591633497914255182398127797585395175643246854404906781279042108814825711010523269975065973362316773494657906863887399419482556185265003393983441738740974772695423674639146512826387102330811147335022338227684104971884804595184189642865957183803415347444821558540091599065106873200634984100025260834282392144946432620381268281939038715972228309157356329958900533048072411907606932346994936358797372371074535534482708727167717643182986148208854567758083991623437862328001982166075452761622581238672440739969741874339197292281211223843876470279214389168150999783888655639360798480474877882967132352043099942483619033827720001398081030102442520347207478210314927523114532571998474181255235044551391705268602760932085362708094706506131623943095242425592077124501291030766253859474150451338460836825822643143813582931827066592289276354517043686822166010515348293767644730422423382063057903989381358907407065953130439436930095854039154156489705807484928003899497535325883124412795428590770280318139018123768794139521963089369546872478115158768775486314402628748655485365018695954287454285015386774026498762190058993771635484875230051376508265743204450906779075102005009557793855493885546098745691025774156066713913935256197639643459584040981129498458314877080605688080256949439286274883764464331927586143422513446843725454072659758780524631183393616636037899184528250941536868380558673372431024247812271382444556284318261564252989254207878580674809072683240457933190616420131494315885786048875235103324437808511938612713333206412702038008169555038600937834192394183560084790555473977391682407412089864148374065447203353608872891003683002252685401900784557529648433028914853478125006028156012132777717543654228848668236428888646319704032943462947611616746073337955288754121352242019776967502362130752372392677031084766488378865077218391446825872203567499908825728130040918596127194174738990414390832134808772737431820155031981689343963597705377924847695573749935015040604014973611050010041502103026441624491455922625381564737145843313302242924393469399319307386616228129833339339706196288054059173635407423000923902161286786912982615723730173885896717828667980679979973248794228567711004074492556155828047430122857972455330150086517178759099769623960853203741004026039363917554249077830167152824670665365928334068706025533924924286370329350684093493060985567384345373503325236062448025803165140284855105761639466855614898572961822870902350166915817502032396669126800539682387484649242457747463344022570406775066195509390397027118212499644399781884206752121613967120554823757264138407790500254854858337919638698483695968890277992686847134321067958420181986572695984881167105366737866736376345172327880814789342517138623193471919355164095150991170798493224090636091023431174373645511161796134873163723371434361289445238430092812367974853631245167792465082690020962683283459977997060345162864013064786556264768888186787075912818960630259809159834986288953014282400039945042037552471132211550193837807339624088219508236476589043871120374393221996933143847311178482819852277168418477088405875558999931435837634268080962153576745814123997586073108011986059078458579338729399783856310291443106057704680090043252927235005492249440408683880501603696295724047794846988906060708770326320264280308030570858215104457758920329229728435423454399468430939852448285403053070180018853604161153193770360531234215174496383151046394139446591744864524694328141157780889355849209645702643040977924614787249336684679180695184769746113805873333858562052965161731286609346560185214219764837902371553333857158910187707988251207659537521021038639918700277657835336084412371359521977488380506802540453768817194004761630031659344685942213025305437903671626848345658827587999145023051868145808253647185952727725424252759312518910778889179812085606507401266200926854049987717324252569029879293367138897415444321762186514921447701693018993785311379001528418626550317709218018036828996450459093159014339632730607332578188138605328931997996088790983105978860478758570679298199306504754130355849296588728736908617126660776179981022674135746161098779846879882554821452327347074863489045252985888708541801690446402518466091092171956158158670277210268039198250922379210594616764925648554542741790622368406753632026606059381357536475188892927767397390855298244795881317276872335249240003182015989893761557399434736034814770584736918235016579784461448996004611042359989869349839874579734626396433304500084485345802734870326847694804106580749173027111841917037363750391340722653195680276535824869608065230733690260122381040602789636776921114693053514641570974533650536320675231466328263609295074772597382208558047606795607580092799520423980842665201444756124646206015749409117386549113024923490652827150106314107866822838889057786502946834507632420968675088279071610463915933587993790038971407996748365865672550264478172078528595987654770909919042599690224194699744642445144269919605428707489219419986821932529118442846944800646789977318623609356619142782909494236408501916308005687057970649998990087789669257482782380763296817536487898106453406320944709074540560216795845178982940019733326971619740522779577488110951947938804904443060742673131338150346301135185615660655328755948902815198435396843422202192967785161880596779501788073362310217237382919786250155112338755319404622408424439708998267317023695202477074018006330338843782889978154424590956504405310394955534150195073824236072518622673417622502317342874466515714647834168069785136964001936058636907114979957997878926489048072701971120719735087958855485530188584335604959149875349507812104837632448623767967558785418582260361767072056187961837429412634278437577865510037082321258634214799796329754968844323584164853484715922960995458657360170456427155798969444396834339065598728977258235578147950812585465009319896632688749699196333760866398099928557103106978870451427861311003556907505896110539439289461210338863686713240040449301927192196434149443261493487220348534338639058604865661332586216599082214069869689169095900213785612114257907482776294379590993304248341366029844455601945535793230455663099083401013876377310099216616746249460367832253034689640470898978527077137667028559154383207380050259279896175637001589463481852310310877313226311868801718671604565946991436816872490932549741173297214921153841915930311124038978138769463012109345714895347246638444540843775327565138428885873705550168906600286697499636338429536109262618253161643706096323169793755104062269930814770989586837818138517286110542510238671398890503370671163038434863437588949897067231833638280382490587022197901422588501976774108558900548241204843474006281170311162476844907107783435509418536813690270975032999269270448598294175563875658651801927226259129974555175354114306596019391504507132682703164977418409341210531195939179703566080584507591667742786198088943949131367479550644215353217578457412294137472106855113773041803277437208035472014881498281981670272541486726115571694174814136784830505195938730723483535023466759952855973192281257878980424171062243591735660470760924304124443521324070623652506262104849166969502319543510792534073355724807432422366484962699451910968203024639299443094019548705834813465243077533331603655850119773500694712634078444450430577650010428436305568562422702099103375750191148528630980469296844358590815056799061677241161483514798856434510544208698876508337111341265356928528060089312321655304494368410355045142689815358719994977963653675787589008414639548409547306579168631052520307641190419975091736827481604529575086976952535820792612356708801297572159386902140528277704961950784393021172712499967083968863894398774904559302608596888860047598505737224169034886586112541093666914895794946045619678880433460074457947327975357519878487776572470364170783235416430052136445984254684235747047527457307000460573174468480916786809150769742803925589235574615844120798060739003777574322139929781459641303596748084952187113056259283826425316139310339126206158734665441640309804532068699416723140261541888025096417528777069241744336121460706347031044692417679369693363475881195581201435910179550911263861906499746149486930764637242019862048414292333710332792163540726217475257278520053341466652312056195471922899119390773406598485991910210400298050685266264786735218955035052534375217827470401151600183779636213736699719192589245731445407303657910318601414743785380274827981347667599279493270225846613382452553349258816467745118306992000491694284725982282813673568701364802365853030260798686461338680561041194018599557599484767567214308156703859561938885034017001291744183847828714321738131885722721450785286964969623449163131318094002202778930529450439006708979110341398255401338318959495354369058648271728746864997175994803092893516413124992731328827807886365377010933506470492352896541913305402547417589367944137140538633791063859911414183704371280071506719258029161676300388198170102438636832487014027877798068816257804894753886350006792678068920461662192705948526931715636462588429661357926418986238645283908850490388739421183452449224839720433563261011520083081309548716223406641539579535305332048999807823507853864714024866056309643613455601399020721930567620965514646122305135457133379744579565209909997748458725563886079835817498938624713210614744009204143519746839411621255012803694462165364337300664587765694460153894705425900903178531120833991209454233609652279237106160053204114644265226783436532157264160915934665544245619479772390318414845865346256739029595957134736019184019778725266323340207016883507915234112045931978520626163994955214135701791870776069336761680329597214824457182569973256174959310806409113869004497568128105272311803653011115468467857669093344484486196551100141445838452883401375803307105402729353249647324522300590271445806509200466271853600741567977418908756203356801439663449746153667000467243866414312409712957649507226464884523624449478065239628020339107685914749141138485849782791659760415330715049509756442090214767698174939757485462722535446048105857837009352666747445017701916139346064658421637197382136629542409484444035647386846532191826496425937116134684788883355715989013451319269920902305164990097751375296156923099297605513677072278516701257452870424224804702586752999477022566737255569196789099909996457528423789100639383626433586192368112688754548923565361941351377622296096902372091406133847720623015630228316391356159800681479917162018672355640751778543375034494430431732634784133281392111507695200660806418419534933876675081237814986847687061501424944336389701782045616939848575382503968851555535834202367322329574786279940479958620883255279050691258099236422744368774937512183802120383789252262906161200406559124782221847911398965428822381017472530503972524404577691697468982479344779709083946079241391305025046525563691908171098004234249479420461565177276435399287003590537644448686530941062276384338458914961282852785939502892396543130128393747733100176139884503886271473982851579759321591721873291301207599868008587521279309934866619914426842147327343165232956868966737520801607250789190659586424594479086919553507251101943250270864318143262954845289414009254072064160479525494055738503600177749084787310907014977707055928401061727069468528339848097456167255529688759655910345778193701426981651142970598222880955155251783909742017005714486604960303204726581920469942611238817714663119776840662383540389464387340241418231139442454800256764524612040630645001569234296102353387613371289599844675696686738119240969417467712697042979362734507051159007781459265172956366903190819133755319902564906154040401308815533904696008102472579178087688466019819989014981715530326524676533833723399289818706139883827926102763201512448140723966677036496379517229132285315199493220365166008663313343035837048287520298192630546057920806102119402347189322482726490614518968493453094977353418305107866590347567905756063702867450667856133383811406258397541642115965857332606601699004673916321023171034184082927103174167064194319211477401742347310196749102732569514745947809174583420681998791817163122935323857796248210993773752160391811989695622984741442522406801438875591540163350174258186463751204568833116279103463621311215022461399930578977047965321425836118114499940921392861412172177477336211715634433778552633108148649176076335480869587378664850758091129050762828079536697948713943579088703819292187927814211780877252534749049680427669344093017811044135774880967386894384393838535442240580277255226575628163988138141934639433180307192945815621560590634932438132666051847914956150913906197135558545194947073012951491264808660520799258339180868581093354752174508370233104380659574513379186636439115308479435928154161352554402649484580190799328517943571525046881531736035219221092783625905603160481242547778541715661750582918472152142620240299269530834467716968527822725690301214722591878388722537952596321856589953029864840869464943648692405741800550904132243194946474539223013396812948046465280461050164421506494763701557941680257382650875524303570435252612961447993763067714061755072358623306124455558380323192963454133571107211658353402649655693710372147520687705627241798574910833510077971360987211838841693824089784788227203351110238236078849390570588858921885981548382932439820511587586576650808473514624769894663671700555456409118877834587015456211600602705751997436678156672984425784227790728798192260023400160190800774170613733241271186763842837031878420461224650412555974703620810322718362548180297491059623362058132221591275120014087460409173253602379972488212984754744319766017748836699217205159600474445357556009709877818500290163619645225206064298556198632594237150176655938107307311656939160418125882496680621884007214758663411980094864785423190328001485184140006557019383034521903873192689724268924186302647830618185298332822617140555173465693512302217755502201453489854019379936924307185148512366415102770139439102920577563477413520188658367167731552852789031449895629147671372512664652674516615197088581550903823357352468280781223603722018065414018371221231235470708049654890432447490907436272528934756794294347381751297704317498701375081584815515771092601702879086567736222477716591659303386410704545732286681649509243029345645839213638610796751415228689612281865021636971352917365047025059713543893258091204246887736852672998792907401546453424249504529980402473570753671650298164090959420141658498205514063302668247053789412854583628286933569960523174857804028018959800244926863640764437791460430592220431317406014689424484354853207324159788101277612998035676179163350107905996907933822491144250379747446840698107025140582443849834556629887511857304498643331633112273439984983964396158729774868220596304632815695183391349479197051065379177682708043984158070546961582030009989186973818562739179320222433777905415037450209115682256161910041770588832885429143362229659255347779529403488694761792141996400212125215534919700356845950461791037365289265657438576931319142791366853227918768020806911039726982204745885181254527228302009897388487921458671893204448265918604778845524093404439768305184998028116386380802415518739943936626574470550606167157415977774482805091960738213515588218526272621141824720308111588620388483590648226652117838965976316964014785091629381364025213340767761202580636895902470008729565519494411264238399375024191293085303243432512324935563914616735284790797295078663305621929483575072553359916239349192957670293619742336158104794518652964354973416518790471012690293650578895849078079906275007669915117545493763109653672814666078342009463562779257605534903205248088787984860451497029526584028531689381025718463404348166754182391538845781738931594410773659288930552982418239151927511832582850955214850917126626225212923635804299448425499962790439434248785178724390946065580532003345963091234910044834592595305901175777317821959170161966516151612659002051918843297176001513087925878276508477861922431048353238795091477919837400596946702162586551416356763204319707714977019190744474838641409033684102219202243876091680133051357189702689902383583278757288998646237882331395443981215983531061211183341049570140762696661077962879458320853777022057155573381570280098484465183085712929189817006079743909695998866757463260438818068118695811575812475326576624120019635306106020069606398302802741642562026665396724660963129977835561808068577658325919462243451753517595652470814734131145227435740479639586199737548257140504657046524198358218946508009126389448601819874875949516187283804106072786954180023363111513209187549979240410246503610248955192274224219069751891311869186784070389138662821770261856165139623937198458453727297581707439046725258908898214613866078928527897765673287630016911631573352217480947534181263665036844637350309694708897342028002022060298336436970623179748022751608969310197574791959068888759596273201161277076732304549009542347358874375432977978399762952186490928952157248001895552192051378124043296035304782109862076778625700209153608481505119351755382593392507053783894019784557272875150422808619397283684894127221343616915018137103545270752343480682146465449722583671561763626168321674166700960404127122743402953702589300572986635135306091915958274799285241806402523056093545774087830878127658250689460826761234778035886846668994866910811205467130296886532719731341803159854816498637758123226483342852987802406738092243848661804081294529128369243736627206313430505003722938657894469086389694652628434194647123148193307151650930568554918425708380475425487452995251918210285370685932105096835545916931056323395879790397783749337045883606660242913479553070319120398036021724581248744930534466198322489135956176968431198139636657743934958675924069766118397716228072556649744101002947963538868320618411174063183030786752738772758500722560757681405141764395634452394114613058004223174287031477485265663488462636586478655054015625035951631008345439312752276302124538304513574381997558282424293137729284487872929863074790859061816790397094889533879981497084685440416890945132904773968635679546941070978393842156958428594657538285046965332729277649027618864943048827789133516356518337515013645196697344492793852505121266238142283358212391923623969773278984633935945116301576318961551189805518249994623217018876858216490946668408147527586801205197906221888658890438592235487928155053993940384785809966789092783654804121909046380546436265740338059454239162689533605278376343856734355750671184711639152213101224444539354190822272218777440328398322700234369470656088721899499575861175809421373037846959833281081478910593625488060208996563354392609386831971890460215558308976598483464379610215549555564388926417076031840454146806182661557331044033892924767523772517792959490636755820153498456915759723648362108254091476776319493848026138824567225865744696645570696575069732898777619778192542778643969143317416876747421673562726446179524608339111815118635503788316590888014848653755024416625707605522799798741998072273038813538047523627402910672161248556993507784588637536877713343806969868441015357963203169636970106768447064850225187050819627579262494454230344601707656477158456836264452111470582961840566558965707171509998103851043594496316074199931729971208470399606332770248500506224531074799610649981240312793870329235228879178582139311584615923065983333354415109369585242663293554799177264333477033957062719321301436185127580188078721479070319723158906467226685355907235343802424913047984104952151977772801656090331306194714786132213714618771113012958660182606709006475304166360495710823382120067238010645175363060084937883917745234580751800497435828850413131346112637816129208260310908604591121904967815050170895338304973823072462067415101867518543375688787320742471654474258914656649491503920435919666985558949736872571582185926058978740111254666625181397450106844659774035838030849476355935437264336835423692452230530509761586528180184191533037648888596594436439053763035338444578437018413257165271835390123471233877801743059950175283811629372939281768965026638615929680720088633388233825654936275435022896297333925624472853444414157390522062197488943207496660673034926562315476791009299279440407417435543828220517858459896474329948166110034439997971014595857655052913110374062024304151264205722471060369043196681657796967630304617616079284813565627680846843780334942840106829674523535414979558253248810282868194698258997114847593588311433956067852749012945191112608053707113484776314855230767642897822054550908926500693929573077622016683443820279601721662814042070546088354264858672672103895090626589942412634057061698626303997214174327449336825258170707247061022404312223653636150941030463224761345198982855565741578154827985731179369444017434751021515810696791626956280027389328967376851222298291078725363686995358314572124468926432631487958556386601592039246962405756373466181352551068748302413122274371255358232657682391730861478010839838754844573968906207483692047481009685196319246702469799173282552412439982781127408491355928791028356881604358618254344117193789831176688180457086215381802700015593950788232232930954267805420990125506653350487596521306665177219837079103455051299490871545850060864879945309228728373181123101272298969347841857383296288053099446222065613616077264147070604873549992300167425010337572883826671909958996629343443711485188126759586026211163145019252506000299393190248180579108513475298868950023410345027329571585964258552407576986423459378527382640742336668269113180700029044770495188389760407990825783015188777883254427091449857622616350062954459380277670372328891450665418136790646413997714467264214078356585451208518311566664297791341441831082544302831267578670043244206445729008895251610108467732633372135875102294722448562619207520839088884679890331992511236959736428827922700484863559777538063616059693862893076538263605450548889051043564593976801880206863644374840272197285944984539235064172879650502552580237306492252603254462540501105217611486732569508949209322609646190128587537700948515594152966527983383064584343180195598684825822917082110551850367459507506723040489937146729871583571565245032122437977025846956204241628960938708179624040128781186721329391870120721157143852642017064092744408120251913424173794833718156819088490135919491328270530676726487096301397041258550682856562912731116688967471505068126515131965700818089917557310736439563722160451794131428502331867076771192930049183535212227313456971451136173796529833021927860252987599192178436930930543074289312677675302705712250095366688589245676171245163805327076661582972427350523407324190980037685216843061885957910729950895610033512791948151812752926088248992531901878660057826124403501267996339367604311561062943524370740524088975812255353364534213381875939204277011942559171800773602059256874071690501034589195695751545571201742841860677099514203177131274930359501570684327695810559145012382487575923409289583936695386411286397633085434265340226538453898853696963522188086920139278889134141677543430995253221028422626143391530442166275326177451891700298165094905385894015067776663481056286938213180063498063002635147710436440029907011681276008464922671564393058911670727402262494782423988334159811581695162655389335603529932859546871222355940554439927727307774988589180285222948655515592721244542835840572671146329091113029933329901964453393089690676429191885103181122358557372059129742050262871522673249238166472564238550822672029562520294757433370142933534411595142173334480958547988558400750423224130750905770113270474769762331321862510586480551005866149104473774103719720217204489160116949277472116024677255428591674405155140411061595893472183096565343963440912011744741286401562077035812314674701397225398941888522108962842250747085315839742099577971946604862511784971837662122960563077867411490304702533201660856589963388219547396889124502420964029677213839838351052132794810248814373310442964221361971735732630786421926719231651703196411358935499256042325061533079384972268861999261350519057502330384722656309823566476454997630585658626537189822999726008227876902738774946137568239860594727402721808687795552764709991582355206513014982972378946952124429512606560363100615313592241778346088680357695185563063919769856412089631496071051676450936298896163367305474723208303720975454496465456689948349120412263271578086314988948608803853936707871413774874018056968299823078012884858181072837800678813235076875172606951692865784624792541588288958517670241587591566614131069509446379312186867733373526101807879058551422107403740834544065212682671820584218497591160425136356926259139349236877232066945764488709639513187513689978770369182381888820953538036619442492736744809812953980181963146637877980700285296205025386587309455240334571893119356054782756890111654437077172730404582909216032373385550666925036247324374001142497094596769453192100439203992721590225200839049304962019443786496552660157804263770772306140935962242509072911863914101607253053588509020117359514829795859884196416542900052490990538414660217396828029542369228919384001792543031637594441155333248665162781333248767841610368081611856129803791242852269013463648260277864189872636531250538055851410695858716184565986163895920754056413912643025462833108333794668135374005019178537324933954995048453025198949809614012726066743916498220796594099717678986439281559971711635467302989075531718560562834515141440551630726534472922494723361204346323792622934861513154683746706050937853727441731534690942907259617499647664347041077876487160194585819452962548074506000096691366863646467755188874789745391195846619596659382570215843275742077940157096124406077140848810734346813510451619557752889823891627222560970772663424043973594338959632864415688521102422264075251652367433823373616588347071836980219156712177410359184342867626539421448617451124784774930384704039844193979935370149516476132325800638390166032255591829119235133744657826065350648567165675095923339620616615538103969503543189525005926787474503669136575546722308444806243373146493382022677219262855565326042434334483643885110896660004282721238946689111769247303493333825376084364402246361811245020838294693781364483875330586530733859183374823672577826579318384543348606198428681926487353204348955474553263126797651900977084210541387811104074749097124909969996984050893344102655424655097796528093711604081957981075416508818089103551357766433933606913472765520283579562893203439613207290261623459536584869717371498022024120252288678382480912283200280251492867655337588874119659532946534463461957400303339920601290172222293476101556555936188500325279442442555529871714403576848599987279000695717602562363459252733684791784865611518123803238213455655402877618630806777206818781895798431031630013090334955388510652033378520684249944393164576699266379198109436906492429251131637341515137583359229715057776933516042587710139128941301853173890158660250242419398581359067065593068608192062723799104956363107317697167620228516729385919318556285423076686840748375482382341544053446048822859384300319914941406474368394295252450890172063848399152041702728588572763587428938733876745259482159520021585968600117643654403919067129130364666189072706241790372760673887948307214095749391300098939168819420568135412433634944521520796120020812102278955767875574496911319066816320704326073035314887027887442389313786987442292484818057525306642058790445882119583656939967968468620513849621395102669854570762518741452201944055249929077466577768863279858309527409401533408435517780147889121043850984115126201246634322573770556482074375987647628651660717650971559836625440555149928040717927702589850926117628718063336684467270163064075234291785930840280303520757236826248762527662711077489019840121709884804400175105995402174305835720202075870869492679315238601640722347218295392411765855995039850033250720944980261375091692996027268680883637712924358543541023395322308416555045054002664585351794090972188449230543774271859366182639741146647879438659930180427034696265761687797226092304409149961373432658374228318834984508192837258967085102813417607627525079529255058484665631061620485194979319666410504021892554115239712491532319847917758503227496540476620996532689427981351789706334850398051705578598129891487144136401549480502390110011413781505776723996013525602329769099197383608358901394794784053624894193655585788144219497692239647171071181857908693232557615095742365893041704551953812846410015443347415858807869986702118145421929929951390178944189556433254494472990216106688419514820580756827296608876843772224231719604500267899075019977831809862530141892603211318960113899987295492233245258394828226967339268436833601835116922478058954528711737744794676647921886064709483186453737141755066717809076244701319323385976665304115109202441806581985601202350288667046780352492308801534246494913967412061425340266776893000382337199867595444131577064829839837835499728161022163875331792612444740854668237329731830235349648137900026231726798771529051400690809279916535051452982927265729974903081496932863811431970845469353593460920057828951980236746467712073764687601043507925145064510745706362399861177090077537682586481455303772144696366127336322942814445347085370907149137905362390412533296139752699948177639284060997849850639399074150445722612468313507865271045618351335031932120965288139597526215126984827392354088786478279389503980157464767751624921997323656398532106749898031516765749546106974197309107651568913295635087532498316705660681228651554999819610392970608778979124166304312275647483209415855962836225657962157486165950979418379206495250762745678016517024522942104002956747834145617948462050415987259854098988130022333485300781211078348321288031571255037792350400210264646033204899465731048500157808124694376566900181297136236127410384242669376468717098290358904496456149417904654076249522768999109720240610418386073527192493358469764095448331436884899390763347175257236288724620962171664324719314092664947278021772782274577227496907929085619931036300524189765556209744436648840351413292527083815515636060763899985262232721156783551857246068673919497517277506277220880084649003609931716630256264544228293377544690223560858947941504565565802341787525460893761427478868398237986293182679322053612123365151295645546632846871611356950098345815724468195754500591374261266361030730042754503642744705367974366255055962918242616622171453097900513879215649640560238186269650131020915114919769752059068926391108115435678164535567347866196050400922501514104705651195528755170710221550300282600566736985635719847955752273408146128582291939901946737597204816027736823373907798773371587862405485786506042743710991007836022730835051227237853411155049371385408492023461761348002628037326153771545576506873909474413909937217575849577875636038634832741049485240235094804405572087905519369495992405038956367484599932846037359798365985459083758298390515236436547564144082301477895512243807139934726135874988260207373803211591194457046805478732848860657001208979615700869500852782778180591539878885015237986536729253050592261591494228728216699952302579647710846455464568738565038909929463868658794318854947428220103656056920981824679567010818344839559000793831642404325818343565855265750774074413730735706150216072544273996157380949115087286961395496341441709645993649476231065536540826474463348043093769957234293150352110766436375954340981810688336048940803502986583994703490856943451678681914090024311845362518465579783819162785459110558632223279217360320028146983769084175255942652218104888287257894104965461948237389982356729795793902713002398668550717291767226274397547628188463429716884288827694099011996167023285472531900496074960556292254051462455550773895262474486040715359498592576673297155328222864448870734869577181878189135971439675451100789252274929158636165129678749464563014455045158847789356065077642512454315161490787372327221675836940201450098367711550075848726009795392196912895699595771545057397891967447566892788290934093398246717113887799370264889573264083433248247149444087399244166035025376575038092998008142952372866646958317470672786661431179789550178551856525938349223095831991726334183563539112701976435695236603760426541524640827366162186047857561885993688045909854157260729026458366270653751673859797451363819474539641947519601687168588657140378889353591757980880852672638315217895789272885939229277810947717725191011646772597006650357425204783188708916053749375515815534206393248046417001118578578003707097232400881791445724163487188456194449553723228961912013805444498851720037870240364874265500862790013758431583578045912980597156469496816812437617903008668024061908726774050712468014386516557141687046180183910000209415273768864201787351082217535428788970294806195595237192468816863651183173958474771464003026004603471240154856073733940583325879842213269210562955436227976134388043851213565044718405257555228035349445954542791277443935007123792039536179614996275816285368384150506746823174643463471903805108373664224679504346665574447311074009657417497945312964245414665599957321992258679428699695684746704835574892283168020696782368620983361659162996100471507723816748159323913635413592374638091139905819438876079969361766252524480295825166785402454690693845637648338272931155199303388867820910378340229929581087348104079464696123683085425999056052261465906786824092225828830312559167666482350579151489228180516592064660462613846031604309165833698393516044998744373900926531244859372140146592143386604535191127660631262612342927499049901208720639101673312935357637663074467577058862396769300844238429928331171956560995397313758668468497174623814619251692034024744442850757139444900763276383923475403525093502261021344849018650387957311119934591546110506744308902914323534666881403989015548878385118551309520238998062709578312347914366298251758383036016247772302802696635401714442777040468618733798542036043492780459546393108532957082497608702313864222212129862180952946929371593369429251579668975594261266439158153399517211261924103069097024340979363241156689248269899331160415047404800393367235619448434301639061793929815780484704354161760942092683834781034915852730597643188469879390102935824580495816756601327318512440609086923824918220960962493126706290873348568722878484037150158396368632601025161791141683915225189346676265299188948163559294477601854080633438090632048747838045898329905164125322059600587546760539517278301246708843847354671686836348120984397937578245920069143848163888574245298338594070469736769864129815809413831259680243875576403979273836115800870976107936667761774439319355274357714228888316009087182978513419548198494032744291424369889221628430587705685598283385454684669099549650687912517606520674906855701744893274087224105629524274627961777052905253147492694434483702511159404501294191007028094112542964140170231597285329194763268520535140730079094343338756418910802775715028406331021830583677173585247540294207724754914958328998730731187712368139531125584861458010006229110602594875340834381502631324249957425838017327858515542269695207051606993204028396332497887184113004288768464261660246799010413973623365834742732108616877176572769620233786143490801455221120395533187408614521860598467620682102721592640869192938169596741857706499650740741673545371008867759731833074488899155230796019908071834840689963417132404336799924381929113899033807654733944610607630368469069706102977256118699396730332765068331290751908964888399034807231984953680421769865566245483306916712834988844509167407626247047975908144044778825841246804838640352746878294953471301656213709273379348822034699148628110177089052946603980653610874126278079272615232781663995957720127502399235018856643067385612623864682886635511462461452093529252991106109486956464928000238097575251277745505913273035990338326522408512721770934683252296666928309823609286290409253300814292457303149908200757947139534804384020511565870163093531725472237081490824445976649341459204101196263436922815948971283939445526261253442412500613601075490349669238442020191896350445436022528395292724957388008598368012576969423143209662972154708799517484305726108589365093390200908389454247613511878624813470054217182184861889585301746622186842828654257531719003225587413609614060631247685448772226474071283565466306587622616693603891020790089332144923381059722104518434751807577505670832335911435269379193361419980418361179117827253764056042069026244781205022474001417381366982794413669766991849995283288535453293310135003419738245999639231801612504818792858754177684142478870299100095217622938683968364996230996603790700301361476225422616622150881277968840721070614794644836327324279036544909259824984933023938872453490119516244047043060231852182552953174082986790247749670583020653903971514882281152749081998722752003607022533153749343458369136844034419925649302419193634927608159254626196449072589570430091196529980908152620791603233060728755455929736761656872755140837396364922069627235270658873026030702695067507593357621960820657213012729582314152084038238451745624211423973798630578779299896848651756982594853488454046621100741611835324121264534326643783780745752424256311377287223775861654805018783965757229469678989074579297486577474791150788698200829003208540703690410667357930603733772199721147496499426374234046720438391616626124547304473053637510274751842927615769887110464659823335599407619308057216995166390804116585173826628895375219956504604197405531400882961395235206108828139151484705071700740981723519015663334051889630111862172886222000340789348757341269357036876540698972425813214532260561290461312646314923428408760757796190442368914173784667502852678702226344624487448184640405816274323026039255567826229182907503744607856497909664579567358176770680306268793002601718805786848606922068220586989452776559949634854922787590291219343199624244258037373466989822951778254904160991989491762993767161602808411793085250981022334145133852761177664400435014417009761229326793212537216892695206440932261774965326119652027645924806822910201163493879321090211237299844752227770525374270846617983797564979941370785354889227485723559473520982390723538581592866556707531540063735518342595557401359133102783996515230415959722112716118919008797804753602043800040245091210866197077553726408695565708106881855630881966736602958618699204065304020854935681424089345544265264314506015237677138822842103519189500895007171277171827521393978356241395032840885425494602463508266774010112666209892022810816621449305870868940755463592740972565446949958795837046554895371835680812984693274873477105683044431123734967824193457363012679652149281527243461362704306183409050233142445729623423390076049501220858341465307270447814314121711393704283189135345120961220283137071051233931796988596618151253038625355226013034105554652096171295185485897871582623863018063873763674916524503116626538828780717615341825195356525651353182419173713817232162872744598715748908588376093789056399770804758573403794482554877016414157486040398176291787495824187805189684895453415197764939881209582089596641744147304197409309055098109550389275543077274274677647765969546147246598356083026383398328871979542964932255867695577818455341557104482811434902295469538907541407877058037788442254209646075908515820426712037776676418547966474539924060084827530103644559723215125215717509347800725960679273418628693989659824699950061530005391842546835453707622080094747042560933190472144807641574118146636225388535146702126676272406804877053081333857160456231782314724530749995732380981667589841217608763595260596801738906043744321047954326471508272924773816221298625388510490884962673655780996451106621761475241593122723392123048567359989854357368887802026475567217924305932290024488448578549604561180215671877386531458977273572762799803904740907518946843992112616750221952983723622176931616287075943061103448790050575858256589865152638106073991135219643618549977897883630420818955165121100749471804180061033946802481942008252333701100111072452308760688020600691228907241376550908178558504528473958975064785723057342179482736839541493036166701338899680809480548324508482733260883407024210891567236588682163458744745971344783461568458016207956793662181934196613991992580871177581286565105913243782111911746557919248099571662909825101997699764031713791237113248241480307222790338297742065425392637452815010353606836296725598488068763141136937010187247223671636306815650082402261537564542548828133436359592193093588537133136178016803356739652283797378130786524840946250036056134660138470333680126980727968444643680826152969446431826518965531050966072284907749502004057003317612618111977078196108667193567714362909957296699941008817656129295043982240063418230646604594918447647471818761182662795884857473773115723096873355872096899411990689394735885550381721571355758641221652728745941258239523848864742076595322702918289003255100693442338676508808313584243161707694860399015944066195750963461550087072037530423040909316483760178459770700404778278065687778483457451368591261322633423389862709024222990920926397241028861763148269694412363324454784629394182078615483375485111026977789606831288927899325621631265458201790771921897637292132655034903570595950276564758624024235314621491289254730152920105201412323434076613829009443109424977085149862721329218941528062892559452490434737163219067794527704098008928152697132476460586966996148428270032867104794283942314744339951319400390240631042897915541006188015183001537843220377764794518975580873108995568768330034479682012803096592465524301333065518567333455431819160632912907864529530879393195929134103881712551254482600319121328278430261624710864303378629545987999701497952959507660844257611664855471642159783912686728290959103423417111461627440278568384293504483341172343910339261177197561895189921573595251113396766604969158818487765832166995220904891428546882810887449515752792872890011042437234779671695354706182983197835682855886711438744291584943235298347308996754367541919270118224513409049353988579950392048229920912640429432510987360337039326416233574800774201622589212788556262008816044740707263043870374550116474271301392751005355394660674619589408582143817286841490939641045515112065520037827395567378900483400411876683314149139720498280575524471282399773577646732902166016578044682070489245747086972210930658867409755896294373643278298885893397192702739524204104793158541207065084931045642380342909751751225099002384347982904562506886648370887013194949538991961412847041818705645239568658526302500516662384921139775008771692023548549068234156226816308005381809075057670027572007220655271739619215171075843968934794963630514527434471923458143086332708764975249811526493065099811054076078247494624480453030255589418733938413711375228915799898373072701483509888425781469427943468865816992498685821228466851136173010336431676725705815638098939999367914419414124297972716728179728347694659146900879900491697132405222513619013032102555206143250370243895314293841829128602654395242773895501059236001022968143697693289596535744274637743310902480944923808612261818767179608086700948323185235599666815853479289234845793353521653045332192663402433431844098900933370685967087995045144609104210845508589801151171821808600251741708151603162110555365583882269903875607612744094922635590714059336404264619662401951389911124846913555983761828826420586809575495646299336064540261263859858087521831703422800522330074354404749874775580455658937270196814185903290251936216668624694012309799447133629942202614539624596628265942958827894942477598191587923235691124742097201353100375749740924522555404891230482442692731602892159547505254802064942027246030888745067735239164315594583465024791878830364608986907529350085625201601788971885448030107236530286174214444815154361579181133608771960174360754731963355373633664050863029210423735720937750310878832723127174265839620292651211059828876913778110904248010974121750961411609387584004348025541680518991720226013836928745941725283043217763431127458094429286048644051032554089899034855108524515709213543337216230658234872220756153417940995080497226902521858394857151434754948144739654422398265376159893764227465793534232815560588659147221695788736150559650382558914552039274099666113620098838182640345750878853130061096450643419767483708685595327777868236292910120080754474440752575195054999815386415672018468333345709112767216539527351662238200717353265469305570402825148166380304857193788222241059057770254863736533629029329689584462310126473451796975395871821223907254210417716562218177948604990837775932372470076593292897489812823761471337421907435145000282403036391747554569555838065546472313398893877870368576437539460498833475232764334685740001705361602757692738220167182760384856461004415809782836547774687345661320047828727382475594499541403608368608413544423548418460284811826693333934628652091391503590128616231561013306639710568950827943143067783054031914633675660581127656647659470070694437877743059974673520613431380534046092617705213117038749998845673666520264828997711500935461949973587214204877795922563694233123590375322556252075930455827485939838277869286276149327834494013057793674857201940351964730885208221179851829062644694672129405369189115357419274365884484452017570505191220326993844583326944398796551319641511799156558531436160389430947841163883430514724036297014013608509559428277205340384234763528172339389248769524179088248077217503174802017749782398733935929166008394984672820221696651800618600351146735452959215341346451404476308729908591724912069773758598791581032244103253821131098327416343277318126252733969445270697009295555961599190943226044686082249242219924032750571505298078690573539957325730054517946224014592408730373364795746972583486893807744509781582596766334246770479333679296980709301385411390949525816660685539145771057829015711076813575728836343543330551605123091088099037792199948011638325124297155842126418037563714015645756261613868665314548466995577956170958122934714138050415136318708877623273380120808945747352535255644801061261584042712947233580081948474742258382274704066755403799551534777744479214870533887237936962110175901355020806420474508624923005665224716603181450300385938552471793970782417313906092091382889235181447778508878985644266029035233577037811608644864066249594227752855841928263673169434111991358360600313415419771394560103950215778295306819798273021472950977199655025292342838369466822749115272453473258031931648473575716438616629238689686584226752800549319020324047332315894916398592057047269399977437566496602339163930418320512727605603707562322609980042479183830998093722790581164366343688237007132318848572456949375449294689027689463658069178391114627780617046566099793710191847342982567744389087126534841929826344641729628610479906976944489038051026768684533521730862142875334931766887473193935731947958241493872969156461518766878213248795022095381998096641703974899845974273217615121787195392846748903795802720998833327809634656697126314395827464947608298153997728094812469068416469133591337864205145366853313948420037115938685427707902903467099563795797656164420354294045854558520545174995995122961018258878299664212205368540741726959513079270618419342090846325879214635931645436918863534701139370026641881386461218850459026318290841675757276181525285503899633311335048906084809359578433787734835410331711428725445786937886516852595430150778162297586880830838003726784715900763157272054618249231754960736880609802955831120045316708679874603753777563093756188483993095590944222216424960459052120366441844536717555766342386057536605045729524412922852875065244727594514240658762214857720499040180232677088776117412103902192543551372547794716528341589937070196091515912556893111599339115034422556161331821416578499213164271143275826981530045865846384700435612867285458081943979545813260880934169779031119132848039827469341747797709514187639232108006516266789934029752990146197535241042219786357333315526721776802307068932925748738013317467571389459070097290133875310001538146466352893847501786962734025287938822482255652753957806922546358065181977115397112415751865089300954469863154349954783691823961519110653956696617469072368516358455733982355950683771844914994754378263648735868672075948939716964811676438295520633162901141618386874269741309070670532145628915022417767276722583281320779331091459915465929542980587689836320546986828125644901065476612082808634070570754124902030850613705311000471912004975972316883044800145230207350921127458828483699601962917698399365712009260526706649384469814300384164353468037805485598426408311159011976490865310486357451490867826246659920005389472367280889829480549272753133721004715322684679188760599373315516079762606334236048456508036098142212336826490237415641716775990076177707270560687732972629418233228953973550622496484161152001842881247077141673833301855425450648844748810949484813106633374881969091376937705201213090699119302789609366145027980080734053782302541719538109991776948047120330312409434264644643807364434569467221915802622778171006659070165608664966323248112472621025376688726274373319685381679011757621864264384738318421840249754314723460849501946386037349086114699558491462469554149076119205074437562166616825766948147039916533524050597087826536683383952138893986946697509333352553076518930288620039265088789835727623908124516236780767477393214087613308797143766271731039610152945557132845615845177006779897578571333362412368969855847501706264304161562068555062735058513233758317163421516029008393467305769304146880985878527966707831536465707558074129406204612801008330964224760309468181533879024343065652115922871194891165800099339086340908432014095236020398348444743895766730608642692911872793328013702108087987277773601623591532042453808245464297830766940323772572611666014955913562774823952981726309815017611975304423419873410678291644604858829649380069011547621139642452773814246187479358151314576397036438726098617202657775889861980425680409276650863218107595486654298911227027067953621190421022867988342761889989820684241814022828745367123827034503286634586641042334871399289968769120699740367326649444035706517720291395917075310299966958138622989011820828360120117610210854505868028913597808587032607703905855537634974934267848586912255222839273955399565962382102555677896689337372361158956526497903553189510016695618962501752529200742538832750707659020303799311833616519512502380513643481366649723071702705753386113444948443873635713925444730372513186401028918729179383191336177246587322053929361200836822062165281731723907058469489518939923264498870177025613702057155673006698718583885116192008963327002853830597801441623970496176369501255021093192459739724375969067408418415741321561715937014882494765666880571072442517592479312917699169101433479620408406166670544690795377177105370935427572730065082802363517923557709726122369858530761337734788399316713812547298731553102251477045762913764434525740206313145790823393318923492762858417663756321630225382075821838881518167844449627688918244459153936813937755548261968462581797636814983273205192894498979185542077480148050549185714268538076828275199339414181890854101054863592958829784158268926367927757871816732169904553450702567496757312456291159765915763340596995086983709546407830895796455630069932516606050896479144299686783637878895103770703231500496560147760903433255623840725688466134837909051599772321885061461315395503286091342895662741679963539842019272370987182035862605367139341678115972220428744707362601055930939735196546106956623885822705497694234601544683977428482743372546209330666188303713319638637475431803330332157203484079413306138031057320448149902376922917250773602943977438931653952335547245166865988777164769973429362117709893283242321381152375776364808526887165992245484268541867772560928906440936946120551848364653417444195505503302989516672829518763531821591393754888748672990038614840775728568684721038466945261434908865602537909330876125405805050469682521713753524693561722944392751092195970853649207954571330416516821524609254009504162211469425559354774334259516784311494250137316575122607133990233821221928145691467434051956081592160613691945842432981532914391114108351131322640776234652321007632710707044837861439204074540768756713755133710845057846309633867594933381348086330949509237846144134696003782905075966776700196446893813356535396845533670300987597604847682945405123994099236971663553526278109046726135362530929736034387630130203582668842640698045195485142562505238878207166585418216425135455415723296670501503204842903484211199051009761831573928464798514440193919215864352790955112565182262657619689862881584214064754728885960364731319719576415339630838016036923290092205320631036711928776099093066052944275318227227195079165665148859374092505609668891987307710420787320603282322287388581864436262639802384853731812394055864057023092363752459346393838716411584009246216170513339067120215801720360105748196107888844771156239781497659032788945395944987197855543054989347131476037209602810126199683004480885198722593049382701872643621534822784386512388599005395935585051180588949132785602657218108835970936862990080597099356867275311816073600062062866771180816958676244034482917846956284715924191181923559544326697257421766401430975442580454738711307864263152523176892732008647882069292671521181642947834650121476748651674072772460074331483986803332884514100768985738836081153517889382166543558177649123776019925299305368471748219088623777576071741889061915739801132782466819993130775998909665271209415633501116433245560252760444624698223706199711885646962031560523263968110418959198143798139420102121438701971870533343741377637586570816475689936607542302565078094860180945094414456477177728463845985988212282164224269575008441858592750822603559501879541045413670582744226584487668059164766328672508210244651390662342351794727097712176112854080933098106784838911422039232878253796029712338900532221493653714751739048479194525353895341429672788013465106804748728962087326124460015137143788140207150396285210022804017489790957031584770129986288375655538766805986613685757071289750334648667100389332108895654740907289703710276882731394401591317213019827633137632593126435390006735587820114548264342191780479166201423229316599103372029911267405858512880622701293877288679045908346603766238311207398483191326418049380692259019620901949573419753044903290843349987874524665469154898511127268160483275816231623853690520934557024624608352894818498327656297446586493314100590327602353096953772493606052405603428633711589325928023505578552205294182290481962836836620901818770350968696880610707542100578501157762813025855111584639191460103663132821518021127810556375447585977117650319432179562694860696233304379130900166771183317379207766026570206991776750876327937111531489452483225950892815559231236680222054182767549853120079931827960535042607667914015160291290846023634100312661423090795482730255844261504520394529135363604286210233400086268905997910605867834456753158647185054591310434458820845081513065191857257116125007767205835335475011944450664056506843295132492952599607360032763267369372330688098962407457974701228448162374286179822947840223998435360805390737177267521572040035928273213666964179173832254176428293635865589609670538639040153273489955371424801751237273282786670204757613692978749282107046198107714364571162096787021604802374108213144193601327394346469472640054839719908957270207054757277451629226768829539224602220688080083303458675025783347871588246158768628094812695375295563061998775080269643943705142468363191800472742390871942452711089108738981956583215754020184960171830526332354610393525061507657715843696509136454797192449796651019224237218026930788174329804529734130328982477281053374895909794257701758339210266419109914163828584415511131184388706621498904404927424538839823192756334162418920280762610351838307216409453520450890373680322463905323533505468206060898483055966859511353769729512365405079115262683781759079166752264691496395958542704236563913319486314703506431167494237500627956704385394380185946741209811004379132640918284677062085554230582845146899129073165615840474355808628516564967763609095704134943956127864032283399642306625445084519716674517627515952742077240616867495503104786345146099300871586844545875015100751856771544638112035397332915436106578275288550315995260704678335408356902468991809202030850136280464501837799089556530840879014860108434326620690358953500034351893563974581109362446839507608293231780849797940070626672465653969343015212004096137647939888349158684835398984177140923396135935004417246438101082755153568896208619056137179383365906662464468453499335918860691744271250441282414683470682545932459978797782986341583801947167616237177363115056493603807569235784402539724013625975366768434632406258963900845271528922290533432704836397146073251668805399389416067767467531428765294410242852521846098002676037253449619334169055872475209224374804555344878034304726588892327557859843730936011747562934760406816607072629010941094294575275331423675349725611309462238228643050704936271098643148140422095674272055093945114887822410444419896458239818727673314823578290528708427421266511670545819154008869113174615258791925640429193923578691509783538196650841541902134142974574143620183960052345862621791369784399121379202753036860379018280643074459491667544188577448894095064964918185143728275765264454059756349566159903491383069531369054055938047410737016321805343486195135372201974917990915327164408157883631333720162862172497769147880941929578512749878515874696256308187783417023575043950554563088535491599040116640523630288899426642772365660241851330419559549063392601026393621363982761348140025533247397571332864004649174658387851400827584550599511538977281822518877053953242385979719437448160624852842259179956620345448819184957659632765391588248855957861641260796054681965233449406972104720030325488468314152428744059226700600259161728262575981725909092888034930780113986287626402478187567513982285332503459371005030436298656032939156023280153840668506269862898526007398661883117622224521561094316893708344603139093695073337064710379282482091208021419107937207093087299670091680911816054767803092351774780526050846406183433427540586289281329884577484212114480758834008359389256248568999620496227282753695547496253108580856094411581626549207070402316589450402407143865053828408175709435737947660156759679609940131818196827121895824258992332103319781022790960744210506935142019719231732470056785852955614544229320936315998654794163089578297066495326627934319875696234200583614338858223356886518089496489876720527620138822071871694169618917451222231588145802798491903330392553652999741399533431108616593250396845667037128548239308372704653727171644451404701767349810941483018223584015430257974954587595342660067821342635868559608119103477348012220500711594955505216169468680616079728095062528279889576074456287125040307638873421381164084606506176998933104466216740096072854903673096958232474348412698178823476822724227396880341639431073269026979465228679904299369378327428701312536873912199101679540434664219195756984058722439499187631547796244059030078833011035626263363753894134011194161100646477884549919270722489765988757685472401190380461034740087587134299957049510638581777138637253370033894016805237236843987090189501294090190163655715803482602371603494019814866599738533388042278097423245782636230957929534163905003373403709265365635438389675150088773969370345016417975300560093096169427136868268786245487421886983394556714645051782331293049323706144318954666559577358795926483604181662128644927368196231221825670084642923251082598409578191208013297135249525369643602573055410378240719447283098478048991994485439003053665497039649482622203122349793543785910755010361208056946104010418839245990668520556726850486453479819969657943698598454339472820424466738694126480348417089853222517029286954622095717115123663316952812162429721886125440952369144057543551882440049981389251755652404336010957124972967695372318541976034500393968176974392488720159171867467652948085572880949703677938298726532335056104164616648785882234895062978051471136258161855464162980449553018100039152169491895233106862221045614719326513556849461832458454311826142925422648859202601482618720227341138254353204985486631985966499152864342211785063410844995293642748706760621714613781969398613296993763263445371414505903687287608042191662525384288457763738213093089193400708431294308026498406787545932209374953758213976896991977829235598838827727723135238307366640017617540105818856141873201252102120640135810271509567397396645428434508168146676535703029502059689693653182408025453992125639011512347282644920443084768188974159127382599162795503409568794389859914943139249982408242877982273645967941215440753131933044937410883404093179794546249867516941105627823306600505915298556156811846828862718677770491158087466410542653402536071630033077681613398660533993869998557918059217148661274777854837683474720435288209260367516825748283008028068087175686269471894793029731330684325247696999340262799284516073750866479323870530558092027555527121337936915375621762049234022487242622620233245139205124404431308320122103446308554036444507917829829001555809956431393226775103848995015955105119240064777341777997752957568175391444997355667144823945341805952733014959774776315994915606832809655443286312486464695035538703571514430656788156808426482552415739123226811748230286557528516914124894001748895840959025426683949577948365136467516106504185065517380186975916911532741861615897924106476487767823187043346053860791700948284031111091458446050827082218636093471090044955923624533065935040990918556062785194780187242398511075488261129457397180452094017887370358278400018869423111421631170467157511568594761336845743902095908741310023248736519766278709219253252291982666185029995710728221768094818313129363506595747366246905698660488803132875106702978057229796873096273874080990640597123457148571489947136612778759749115352578017096089178943276446486618735216165988353136178854950984075266099900499802490237087209323339028253259814970822882854618534143433467437188054627929315512860839993129075060810074141402544158106279756412647104422144324484426748918954668293517705574680673710552386387043310596685039044845481890414052346973729849517795440892872662716135749802286240592487282853621360914343765060563333467416779251925528503072350949458458230585865849227895835940215789436397152677839526201411066930078531650082223592651689123429152636494436444101457323890970689522475295752311581857134349495718982541018731366427018891840863881583478661022022001917888222971129481272818169225190638750513824827500199030668587208229616022267752808526353686361422452411812377543232456025579201444250001286975957598975060224709335019348236377830586891287939128196906820833044085663004961968128651524144256806657034591759605617984106627718134422089562835542212867918035450407756377643020438351346172365854336724615639318645405316679454411032156321377565215050838052023906632154088226283777264299385309999676156587121897312135821107213531761689550897213156122605729200525844463003411227348249440711990137630102779812672716493981815878139721371639079942048166717567960619028114146317557132582799530013816506323907668813138792758899135585852875430742905588142459918169623388421727984721957032625675294425407749353627894258265243493254289820994528055053100724647615256357716710518218448770781418039218954638475738335380534842485618686090988651546135360782807448984907876518409701448296958918291323315153006370565167695998826605123935899909284947681682384736662088025888032507179522069800056615754565329693422802209105266856141097443523369333102911671768310201363938141531433779177896394361723926613037046941909550908830503741222391374464126762465374768511460315517058421254767804579647811026491528469981771205112665952185100601312808159023331195517461928253093696190686321068678726976396876381917768460870529241751291522117007483399278833666203677030474244219016842294962528965679086510898420671218755026795505465277294598982358033589641393607989288088835120798511264546166135978863946714379845871630526683406796266106931077661242425736628244311475436616184265502572961611534085062967790112361794075479757850695957007900316074121599640454112224886028962009009639974075603210103074343811469691352023467344019929863787240393208777336368448531083599536305689806367854967808044704395609592324143569178853862459503688172113891822787762695324397596942865829759291793407180682659030701146879093857951652239950255338099153780070621310865364884036741578992601094512047575001676938535423435134981587074262283621572837191053261371473344687641358738602361052807953815472655258896295605391774014471420628306628885734312472984887095719663922838694695716636731791175599290600871688644596322304645262252965187070555282552572189866205085683848005746772123020948495879099304006481290872450608817090638764528962601286822129689579372056634431760596851047688141329579360579124263661934504597318361265096094433117641933494811874845049708273504375319324905555913900589565469956663561850067390955117590261617656407722502320493202462742493707274133895390583145704084955336782310782914722199708798713541796749486930935965237649686147302483784165964900769958183253246061726433070598991309711607579026113298777036425426186420037047259453639247454843591811840397802705946014493713504771861490878058882484185377626248760591367630948977753626183304052481533704606747169464346976742694708012833947423739691972393025338042402760190552284669038393494225650912020974360360744335432229772703353666130055615682736253598435592236272678099179113106784417564789803463619413535786401272469198887539456653131941421726896591885042299197148015497250645291109623798013877362382135625949541876304923772448885043965861880853613685698517777711733921843635549135520909655342992194111479853107359973196146581968982827316360556354021194860534656528478134464649599854339479804276590643795441920435524058313251057715201771491110583983747951615930302958577526297515835023350565586868115857059791230838716709182976204636475077225074435857896490849125018344955335027267139388966090739125740489122463902020638998831378146087973151519377880088661536458262597505800868427576943407431268815031587400242211851802380054674446455966089736045461014615797257992674675175894171939170884256746572227436597012819315746895922630203013724698360645410193628145249439190881200410042885051276237018061856015688028650365374058155756891647747782785338793938820500745502686912608223181444444807576613461253387418372202819012133937304551481460368651505907693027446396232846469811889308479907527367827992411990293690600501581523379908936540427903045468439269291543746188108717265212221481580623737831435133104554829981829032973363874248260983571827247050172746791023478254105306540658758755186096912921450595385914909804834146361661976618563821867400805000387529146013402178067554960549083177444371643236412285329592646416787390254874511660011245300532722657121124440454998496085731660129833800456032378609611426409193072187317702052753535412466837079693837039282042948643350441292692618509368333590055334033006169052362940801714015627038444086139769490017125759259012263416610179629587210558341159957389176283836389141681673620618350372899565775092254972851247316753637008940328394075449518196260392911986763693489747877007588445195599395147925163092871070498791895261678189165075345762831727651971641155032515019651587295930028352261784000874784360728443270100860842187154797912174670982653735687822777123544885448378910539910804077875674458158175934274335949279690186035956137272733521959317323010627596025939607039101469198533872236463115143037278529152851808980069448558918004237726045364556813402426199022779795314054471398524447030143607756483377144879986066099465178338215052222483604159621569487727947927715553303685252804254095902623280917440165436843750476734416606831545853015838967851775244219317379924833909650916598028932189474698252257393051575891136665616154771780598920948933095267943589426016781099601808488727983848616685674146067232345991801120902984929398874461165075465695692311197991896185103144631217547642910171142090823867693491595134156936508531824218817078219658202573099958133625835812812439639684741066318578362055134459833491743696139069917995067378623334987861555300187559491192152443945701925194276745926291782696990531540571775427023561432638546862999295279659769453766232569253418072976828837655648413380964180020604645150302919089793635843576584702535677556550071788534461266789858124200302263322087167419158881883139399496975376708471747320668013540858618869166501587385358199683254068724329366309263126075159110360166750631030523244025170806936230649401454438282502928658981806160856175006202105036084092083190027890341369567870519778430853862668997310831311884545739371361650337324649988425778535855506682583196428721350176652946618101797725878265324255694114831944664735234908731382128247027947424167715469556848430065374249117715482604436055778254494887390167572776263601419752826497274776754084441463428447485033522580068792661316058811765127962913398366462355010176299106582020306160920342805818118319727577176345135248266412845197195066154660717642142907195152487107074755422112768018344658653488643860757587113450249463135132914389657191467014011071883431282743782298120671345095210330166051236793457816302050950532552114204865360478151283942886897551582431210341092596995648238068364932624855716420088331435722531818967433659036278613485359226684379576793891624225923500681915422704892139651029364649453746181190201255411223112966242330687789565114733678919516703185797095693213067490817055299290748971828935945723140348234119664588196637792907467887712375434339573399920748596274725611628948815355661008912540103577920845119387372744257688912023496385881912403525045803090841985215410452160639994667142921896241427234514248632069457430968213266571942991676299733352100989253380682659795235192378367885828686466454721405088499389243102652607525649705110576697024661279485388008838529647494746930698229530585554767267264593376706652029781055372602956848313632048339382661135615227441514248459388002928426843599943424143855707521093430403130767882633546577579923043903828272943184171398253294566519318259778238318446478098801156639923688022256912683364531469928205328190990139283128977813277473979299298636282006233041800871480688398229426997441208135545602974402958182945856919220591502186969471615790826021698960482345477664246831942500298702745372764133210211475885483435664427738427541503497956592741670015741198296852354708995175711235507010501999641880690721821920850285062623320740437423292135030205290321954602305264796963764634032823238199131340779982080301969198333766494433958747540091412446664387791320075754882377556699877282119806049277683906188976765595500029580066712100604784668516656431918121156463969536024489340484564818379930792889079667539476415865081874467469807152095476764802459574051248725880320370434282509446621455581179530928605039727533950529993222268489927752569829548123293630092295964894544235435505075163318233315091576133703422215478166437905017655250078419933142100904735116519209078270240142560988248114297038700305474825340085463099506012591731152781588331504326886676308218631203940346438710854223303628491052366234407251027206659534881316577499611576720456603127597507060272306447806419409532847659051817143528183818777922872514460066807198782263295166235812301199730954984271931292458360268078011582409763571972141795810387583883701095564712827626100104290598114143061872710396661678691569145960159879455994660850856411618599505139842295045744702551370945758734112083886060181342930683286254513922499724827540955062788043292396522328443379988994992564858304192324413587887836095150309136793467049368999045655654781776597037330067867007695002540510577139341865983354033785900429770576160704280301259619798302722392273348208243899720036217282580074892975733608235529636245256249441725681303733965552003451644468148387343134690673478776051803698152000077159618386878971639462205711701904973268466275810769855178142013188340445535047648296067646136889950085607820706299629267785506015976986689328381409796175922586875430493008574296261956892977071397210337906283186430129692610184402351471071218908755628524113580421470030748133401762667588261753931626196893950609394420172063576279937457279145194074026191555316916251557283899262575500816704455000688051766998345530322329836218225385656131803391206127197379528422577109439031202886746142954042484130949528170991028321864363921836264775431718739297974946528890170734192261008739007684133859511745230315648885872406721622461131072741772816412941193163544072235096944465424207208731288023851987908741492459677218043399479871821385178425529011106798074905313287631959195756934710364681287339425376973884639244423906056160421336031350190263651128917080480549554603318916653878812842234770412597391340644856431823496120836344729183854418491110752160130421679462599657750950579900246062670731054738823190876291785025082249486971363898935042860633022751031340474133384142857452468589703603326980783165382039740931944485364412161773052542557254494032391745620491740424611311469594805573939262412636478275522053729311696398717192852622322543780881841363212376335412549470719727588662254637088680056366159038760387985671232071550507631984832826844788782083952281331489823517904654049643660372302302419162825377439736277496031903985436420721443610071235426660476213191529284066442444431336350984500605303514998694182026980579618143320584768385203942312094479846028764486108093636508930827890757515313646620218970879699514316934685985013562475385442256487916045386963225773096412598988524353811613572739809271806966051218713265456228923458512209000843204790171341037311610727959197411956504221879027659374577146856938911848770575842335310837968648522688439044719280477081225750850374304590784288525376310353294050611543910640509727443257887199796994806027245763591315659606061243226965023448126277300721022148697714266266975031560384929421689930152042471249218682778280419739704949468831143138896474408124392527503405717252231386629926464314651920790299397831112660262416021371943647508234217523245130205069779134747105265096519878646041701736470844251841996376983137109506796622192571841058248320189517736014654570745240748220052947407245409567891270558209829986386448354371099829854066030390022999858005165503823063160112583262732989106129463891495261056284911342406844372697671454287398559138096601229319671060371186370836911534785403152278666439406669587805476674000284698156737423562478565381946004133920465974439103866673553814886480884681136340932878104739411967894783901894491864699189703656383140006231302344806065914354411783498370496267855920309054445719776949008909342610941740435182745163551981060987494533381544266306489478745480628431543777005640615432021403010247530201607358584279899695391960738771284805102696603588783376616624237939969418864712923352988922503928205288092377090403769704802361941185830760732299611675014046465124332138591292291844914936303310613656801800805067280857334216590562487954272550698811907569677945165863617346802046349844071992321665550909761437092221844399430848461128908225859833310433144809680151081154242965217778601996151896376572554861040410489567046100986336201890821388691488778476624971218593022419849574741488480832098187553447157232893409225573469690570082060728477253903801544710714326376812672146343871383823112576529669725115804172920346242940524932008429619040792417529712992509506816153899683364301878033712124939328388701577549760661448645757194719497065859715801498288685885704177009116836036483016150219481408607099898213925897920185736908198554411206945918442405568026105644494517429284905824604972856298306835566359206903677319976245657423882941018153434276242784970878261068832292721855448360061606331703185966187526010819403138010014755815895097142277409720964419717289433464953433133712900062169909564536400703839181878127140510381133434740201516390703518470524960704851390909389773891722782634698159920100162523509341575628913299091717393982805156843903245431752660724324148625920057093897419134997727229795825563565265303624120780088939055765067396095384520026469264846014224503005578238574054480820813454278735762149623294803777614617575131177457414145183164689714697107755394582749651269833781342504108676151072802688727135622385524370385614377165279509855267921540989143206036042528216246791646395215768998238557065984684365897473602738821915115136505766207089246207081777010038347881653160371383873289816109203034416980093645919764062042743431179458264098386297028837043033983856014454396226031299060977633002747356062303403862885261071044187668987888982392783264841762225077057450401203481224917788988833486244806363085147776367414093227672715051297912444658674650453649604263828909459103333856590484336812749119109597881186183015794810245198536052424079817135525378236163284494437272368657594342502727442709376992803311417361359959851043024871776938464187111714275312406492585441286684377032502823082206338276779022686868361188791769673902603588732976108250860273064074519698416850036243863915787844812995757867232845775379727398677645455475723927570840475359144780963644160972551391331053206755796998957099220009683365313688769336699930464666975009678260846699897539799994017550768221117721142388018944434243464518347334826998795634508299789349689044087423738398539148406341046024663234955710711560860677949625234054634446961642113622739258094669058579277353088920970778335888543635366091736244236247269161408789508249873805823576390206124486434756533931381065893250259108315117951613712695474150913200886318068530721013608420548651056898625909533761883258141247038176045933515503237868912153464858975864736699401370236152704308340688394243680023710164269924399103873504628875080527738328135712245969818432598532646369873817027714851002031033427565569501270625924235777824311915614494268812698220277575371171863874842188335329036242148552430207469308043273094791458933066691351408551880634925020166134644924622600035469858874645714600313163396159373343316160478646769105378318419353436486339087277045139245250121073779513130820374422542537557180343181048768857125805202227739149969651591594423752720623456027282949450415062490882996883041591870776090153205299106187388223952532188441321460337103238575209993716396800876699243417342344969933520397972051682058864481970843809946005051777845642072051170745459391473410222770076903314477129361456538660130653804574404947893092215263895730951653065443651055477001654911112572700628263750974024080999801758185499570443882924580336782232648036009052096865794115650782621038750682602999170950796819588458841225994847967046818285977846895724175473671457207898145186759155042305365390837557691201815778975589106638189477089582770013096202766627412015863287439528394787341573008403306249603194825692421552815546036951184188434153115310249378781895678838306626076390836438143682022109477120849329118756253371033109329501789589436795039873525093268388576414989847862340055785197506257589066676397373646809148099101460691780107730612525528464195496557369567844713895660618569707308315120392441400985725429050403670887639235409702259423525308668225483039615009146024787128466467936865240169974817900252589930333379253440675344559966649110605411104595612275881151504897016640758134563472412182506942764872249510029288878025150796517590899769497628020318175222082528001354628497758148312353258849876035962922748813895985380435416588637461581390980021581478258174321943443272321589497385255340302765887619819208828079863633952618972128831632812941967660658153870692599194366644334410901127839352565348480270087394432728750627574173118734516814851938000206046201694194721067666673849430928079940255348395910260443564657665031850893151139535021952908211254794938454750707001646127735869507972493917528444395534320072651058733966845083801429197409396503618037337670590905021504134140588543172562437213483229732332142215529764312411092300483458838053240730035441435208658409514221847806560402654187512444441506817628409918370783193917195769923522480505280436292365555381601715468465109989107773124238291969028638251399417655309595727575031480194073353599797369815566714181935880235884748020029662617609295752570109421353034900675319472954553265207063878146859008836861302443894555568431836815425919895142250063753131224645814817007235585872974652824505911118463233946241133673018188466387007964500886073267225263524783892220227613385575222799314070505226486429957749555538907999075545494830259219330542214249363220056031749110525260031287257900044105828949006079892971100886920942031476613101736081689436265996285723511583431060539658460564894775262414100864021915372474505966585441655083485583490876987964753500907789740545884064349946941376684606671099298129368264674501369499561762958913439225471669527168009352878261195857409617979902357197151728692934299544659428061463437798593681660680246453213151200614045905144955002355379286712694270763798604392613018746105220652582532955807697172038697678553194686908077971388211417765178126951201481162463928563269486979445430703955857223726731137269001039112201481638919361018103053742112979579524487160476257529203223276112593439484819433536081229066517745557260542067960726753572807911549067431426835200836585890244300390671781876042905492393773739629556723574696215810121798917964704309863570947136696999639792763545771244525430887712679826046062436591685990822699342848991361587167809825635242708148824621307946332122439831374330701318823701126834823164932466758725496852320114909603303043028860355517087340274287895018813626872840312215906372734563896312224134389950910272065939448316660740802576103978996152194298151630692361518886791897714155688730242942640200856395584023203303185686660774776240908165233833201574045365775900259988361406775691410899904105539082372094490278952676035995601239914113829181875466313757175043820562621386774985968385263869995475937766992563778201836250969534748594825253640171463184053008419094333961916517477144782771996622658419221541909167765109642654006760289010859911442101228512277918802465124836007193860378438554988896054704400709260654939215765612160663689913179731053596682750832219916909788997914903479977185747710731182753194953410018001736672429740163312275089803090571906321010654370639241381772412221641097404737764267127845609825766666982407068674909415144010260738177949002397798723412490083623198373535331162485553431219446071669159223155942194034170826224073982480323347512804109063409990485671142185498155412464450524766122035398527159288236720947397189445324928163858501153788755254405046054547238522223779041316065074481723032927204977984038995583546536001679020491063640395272735841126588610786208734458675051943924346497352068871627529500314307638205364388178547852592029154002347749062203810809988202735984646439705880966381085105503744012447808039662278904183818155477961932078389105934499172657973388381911205418342015456270537745091227172748896953005007759800959413860546320849790521198106256633192618859285668217780315388213852345108535447535999985420509913265200953531662265334980527344089573871999823553802648973994337583333715054592612370215546116037105500889980253179334121998757606179002855451425953541992677391913066413439146371640142384200434747436667203592360854977442488840034131759914897028731804281212083273771736791001338187049056721410272109726409268512363882345053298898118970445110924292285340385265543976879885042425756906433079599253952025603730728580783762112485557533844003075437287256684133608953744971406519142308172993881001567785631485349661038616534787741322250857869148552780168750061525278828311526166502202795044928810316981555377609341747198582376240577132248762055876135312595510619079114485888525066827280663482790282205523301568777763054958627784042667919532568167846525966917735120930832127626380707865109949251162797476542427400418819155883712585878709465146954219547792209784620370225038780104664399534071731464086949424169770636667744537024080198054396568383294077292045070878730447060375052117587722268004065370837501296090810956241348839249158069850293863206606175131141472525817751037420654556493954439488871622565386611460761126836115857723885828087777575696494869518430989871800481721445496152603536937818620153197762110859803558609105372433141048878078244415687143050467353105253963436550727356211100205250014549209572252130045199631759012677769797137665519386996364836028891719222326294714142273137161108335593947956797173100844193080534295184209153903974793632824197296701334275259644271330363695070734712936982140748706065236261484751873210850141681605026341488714619921360208858478777574846813632898149406004711971262500178710313698506960700146104057645576562498612596136000606831339152517891750238622048880809322987957237969280268759932954704563614069712898450210168326586878360134281171796956735464718730898552817830625629803392128984967170771930510417347085327183844074688562553649830907256933532272095594510087384766537703548442504450785598782797955688572992162596601888954294035804908689884860320228169661197949720780996848502773099111713527983635689077176915666950321807956618697734864808878141490538008541590703326837266589094771673224281528233267715559640485198488305858739298889882137279173113448199371803057967382011755632763164571305054356315559484647214556251087802618631112413482330729442031523810000011326691938603660202248345408847004738091476267874584750631652868323574855790946293404650802524203435738033081216467223928276516637264251318601151624611996313847634713505601631887121402386714752522091937341776487640393063484968598609296476261322734903174867717076492721777195557542956677888250034934114118190914651337424108359214708313220948595963242003745531492193867397561812181695751261014335821364221518657267453784432736620948936434821090248794416760318709931886917418045668484487310696207730378036572955062262479108021923070718981688304463460531622466759826243229770983780183431089295508412863476720565258841198260084391838343025576713450002788476236143273956769110886648461769918049843772846769233162318070409140444881295850975066959875995331848849899781803419114306636714451605968591559148255484028574923256515231819321740227043607736669401441303641662699237251777506066790727884507607472184189658592680339473362910423385502961250435421313692840905512372134397296280905448262603616859137564404710014420659706401971710281904971898698184896503139223870038644250950684987077665013569769023559321444678729207398348667697661719398368371269243904821549675234406693757398382258301727311909299550790026323949001050315870719134842204649289800319854491814917632969353960883933091186731519865013140257018575275509271597335175379686842869782682825148511034629571790694843040664319430177997239578603498900874593519032197984738238909582132266976557606201941913187200713190428926904214672940653941039806819458412200881037092366011607751167136978808624299782801429260788387698526888650179510013025463040363070393982550587144751422413872234570929810750254798634055866524675017763280368904353310163646981350097521827858649551478397545141699503750755909840309834804948726335532052173502385259971868025138815503239150491863171126639776637585735224195189990588617874919471365997590972660705791803544018805037756338581669704376378311255635817692705948096572091900857201283879063672878683023658537136341573679025409064856996336997446744826937133197436685742376721510645508774196060457438896314774842127466656190645403551961002628965837807055908293541736664030381082499846823540876359115487317514514298957091697376212701321990765055887067825479861441127241769868720155696572372236923165765281011678738568418501576296170862895743517292364589541505791909396189129259550354605433874268769392011397638074774830348171751844903776136436529591649365222274291760662745167584418987909592282941515887864314149242628318012827138080989192039038423056995688192749792967788735832327311584699231651650723433691542489656006272520014517072656668337915705883384463374962624526632397868849022467740264944571083409976136704886359087394647639905104494864685499101905573202458394667622964778809798660342196722874849962769428421757930426594696735217440610472062259032169468514125255961121285376277097432610337288896126266213528233553946935478366399138635292871763361447988242837732072857407711336052335749824841719716922588939915528876351729766502521227819009948523631221633496344963238539118174717566723111878077243318035194823253826461522231398427825377381728739380657585624573838246481387402350129567279835193200554386511510765013722660329512162226683229165791337948461688429727276711773020142615847571292674938387865196871084836686946043359432758802390711593777215551010646107868896451113440741577820648951977633026326842848060100579705015758082013398364237459887512170876795651665985889716692627469457509044210963773759914450815251981222705223444660518244004312411278562196312490894013813908271443398913001408990465058097514012430650547053154284652835160895996346945599011517349338607772058004975467668823929752063897371328219716479330578859594150585912243860384399814874341474385114258842578133781968906276499645292695560109614923851209698809767126553996692265764043379772991686089988867948935887485858387282119569855760074456265063077757569303058878753799498545410561744313296838746610467353874199923775787174379459010160469468890297219148768920725684242047385109670871986607287100156170875158675120091393619407047206916879490066756569267780097218058862013248990661585890771708460995689171959874067431811640931558264109936658699682697644739010395075869775577092937215541777908945229947257458693085268266563897613119720307578975062986406292319257812577818200718973070091561041893127555673222800862460832137397992259468609378024293586174113401269439028917520882710005273060998697949666643826400879475680530485118607110779666816129608131143089191441221089659064481830733119219182197031128831636904444458493842995145050505410913067628677353883372480516139350825374742777652186383689792041773666949643767972863653722085021081967237687604076179703875503794844175627922292717978830710760275157889256700566305340521497320825391466720719717329101723896893491468613694165841571294097105520205246706713685346552707328105733540841765117591486996813032047147690042077140403167042590712391760087878433847839799046348021089848603350511754527486365367948885869999812205907599123163779339533666412646219431407776741638499150597920230199612750455913982777597923153896423424433141221236032657234701276185112465249491956788006298782158567666263000004020367419244391391011402601811254677658036833566423699040763205381064163482159957468246287986535434244915165402405428793865530839352792115976716401570559584486415596522345888067878654944020555508443520883241833925232315641922642849638738478150706980524829685926472515445569821258820246753531174581120787651186806976189734744533099749357473845499995965824506205702642961120817348661855359764850610830497563921643566594587049898941959390728954535460932655825163937880378302549640840734536254485638975954317287711211665076165093918927167954838945798063206742973959846889783595944660164911231852399495615965721778487921893971959866074332499762445935790975922723642349843896544763114416681602742473357577621390809776421541040919377614392833455631374377197999842477046657472298247384113423451537602441395613955586491006892671139808422049263244835167147348828651153304198019771471495134642462427142446015178635139605863221713827133524683941522312043463559651074004133377683222577422914720281092793071016481690280273111339304852615006462595408433167213431513202430066535505365080278647770354645604897522817423984727262919448496126742211019247306347543199226484613156357694540534600523733983999116652681469732592858337943257641600850493705553261050781874465107703107614022315909788116358348975382272136035998789187865214093794269732225162287401259738117439842843216679625558681193160006513448913016851167267024630323719059996612273508005725377864982085007130540027190954234358119388196491511834105807736718290016430092415400395110523280451951567277333289314146789913557938829096919736595837566140732694532951746990317333302581475462215495896052951091784490490405742968216165837612490275381428004163977370758974325746137325352046912999512040442578583249635463555419063315861964860534520553838484851882732128906758506072805659002860943248899718545105493703061934930883262025963425720655046993027970314244058372708110052166366515301978724655211372939470014038110671897267194678148863833735912888610727036193336164838555383227291135189668987055888982832865970735322212606123129875224282939026988683626334058889145695376788515198060922600212143981086025727110515442151579494494115319930301990724776599376260812373111318823124254325181816126917015228203090082879972033137531264186216927997076134289484992244412088455092523072473039991597083738484932225952203274967773577637784270809279345897961484430182271727418916243422026546682532049451208755187687566150977713792806535363966111639153347135260546605039750367474554735154874688448150147878218002805020922010144040837252783847545070139701838143741818742176292348978858445208530052088173469395252810475788615228253133525503570351903492227973229128117350221425173815727518636314205826601204569258063272010860507908685281964227038764782671632612675592062300290388119413591909657701937132391805318582035889186650474058012749972140930122281019737909844291340844740207119605497599280412140150040172476729359994907290929112150346779849792050264372414345384055422196201288636116970937669244780023404988735021826831311537637679364283935462479609649620663584947002564789710186244479581522837521906696233192297851078119810685335077601903799561103921196293148855408374813803754572775544434949481743517864030219658123924359023317594139979006754183352807154394679426295484749048367973993896089600860848625595512800471748783985785679972998517541479366651937543989938140785275531194252484052920640923806618952239907223356002669178171357160802551344950002250142723350632404120304610334177664413251178195910116414983124542116500670050644075994991492490873119004741547140567222994384878694588385627668868224831250282729030473883429891835998551995158825857270937298996298198552643337905337398211347596700182754498921745874508376504243931277692878311089770654681548863435416759781703177303469676160052320329827966903655590419303250398482604564188238700579822161110466000932416105589505593117918399592571430799768119532039224754830333590913493452924750046192107248638042624522002478100519660905428017069968055014660761232917981108319883131433142427311833066144157387655347297123138686728714339978012033686046699670381132628953217912420043240115558335417488359650713641076331760937580704083373355741675248406177836919041356935968606461742308818097107633909055699497025536245425832316807444172079497883097536670569346085829878056300606396929023323312869627080187535875883900537580918456563708081555041510766044614999517701743835953584876664931513825114656144515326456843456114910221350476578116270487122368847219406214458996081824542287624472461830014708031712044973048702358765522911374401088372974627111711884229672096941293830250682477623349585340409831403554724062845047659788061075579428955106621622787844958886516696834956602750208902002769650185957752514958560372816808156729857005267987242170780378178779809128625580061853704567032142018273828582077523544419334478427035511453988451775860123939023594511551645925710235623270549131243792457654200357250962050562421621857386858054016685364849282643174773438525291457206234839739233770770412373143763945151311553819686565295280603785339161771757203802535448715892799306945975756911461923213265291130016970504043810147528932404801067871538392210238852738791826538034945738278554535277372506200095500829832501050577900979671670693669210833423552999472026530155262772757149426039773131590634675357959099448195909172352921764937447944287602462712193837510851402872675112547024461198830450510974904486650903466587836735878884234888072101700543588017324040672147539369865080764871152094822028574490752288580466925712151226362522114420537911097788924053243542693472007989181073520349035667005924937207034251521483708749992277388103692231511511500903377672348313117390853588498140749814997087620343598672578065232034411792453748738461343934066543646620780339441279621941741219696485448065599426082346778524415302034400230535888178053917006614281077293675597960744754901335799877888449467476491333169754971859587314670695140910399792474351524838283111690024137683048626657706514569736855379635875702197179535799676382593678990669614210505774278022466103187577165165880374795363047845246921597173847020655399167109699157783436608600110561584395860925802604714308230866789839093782009201814961043304694507919392183246788886540308590546045798756585899206612505236162526714769218732456799800831610490958286324800820351950639758910397382984948525916220398116842152999347682800978431175592554043408352356993297470236852812753564865807649110833294412193765032994210843759309041872676785393873155203527567503234694948749380951130859000448775327841882855236353945847635606830109376206045796985864949931004977927053260257970311311308887256614293546502347178925248682337860751879762976628224589621215425090223969991206709847516764199182311465371773098030356130516850661571486404307159925374663056064407816897941925826350727795860727869793862725408162277158755615842442583405255391365972483742347484881580386715688836297723201713738265553835629098831815863467410154824289758046751105670215709417840695069168930244779081498925142143115089479542019443056338073561625683626607337041695295463256911407447566977385035695006273229705554358114378117643590631303440756696389714296057407611243985073133994685679507597156788684339880929155759111612672079487935536112108289988618325759506538038619812558339543361676226888517500040111938341137458868267332358340330442294785778655646992214345336852662388298713685191142221253452854061107199048296601471044253235340876562852878415657235850185090263567454839401408147961741999376262249604131131735049279179349770737893377595719847241281027996195129813799801552060285593488128633936936331753445521751936060106618840319346055657832458624762045036082481211301543982805287089858234353972040026261245651998291254448934858376066778171854375653343554990326676482733558531242647486908278510673542543941832243275404609101885414710940932506003796591856620334152469612240310607058282755454622515128996459734908609941697629196186628542405391023407733437872431308697405845950118760278042444548925869165138345289090562493721115628387460367298600889983930130497814582599658867965589564935183064322882151626744644048578492450375271824403406476522247092809850827720492714028227918775170707258038149091936101463017982317630537068272386758112233901242605182496628095359744126699742089459465578491222990961489872248819024513246808943490573210095236879021212004553482636874040551376288305243473562025551524294548645795785959687952588222319171786005281691598030788604000161243354217132301213303740127295862804072370986841857037784289990404910579097475724953832548977938520988273663793277134884795033499599434332418430820249443329809292344240074410031835406195641297709031711560032582961670464761757016937502173305219258130050168673920604712659652398978157426653413989947942494800098967666564708089533034944875113510609190808989270545334699676680816598136782570594658556103887383369372786485273417414664386637810127324903453268078041352491020303765956834243880165646102899070259755093705649986003996430457772802521039653985883603129380789495246127625552794445256309092299099915289474004823155563239181831776859231764501827296839167187457273381341234001982638007875181572151300225326182938339712996413091267215596821147813864281567488105310944915289178645237586998605957798402741794285203390034220452342766219126675235894899544424061435207576825798990340328094159423761644739296198552249946361350126298818716477178821460636603077830706922503756006879092103840575065610118955682586466947403469951579613884792001831961521778176404698790581099259305299210622782365444324376362252870859096175679735808964436681931984650226289460086032311329784743850882067212730246984566768311203281607230810451332707327627292663894785352685985458935557715507092977647492840153274199691132290661774333518728804670655086535763062502283167996608071780695541450087403937893689584075278069218082142148181885629187393159410623189034298531615808115111435488016560309307031711298547452055210422224814037292461889807696742532742258299977322181022268481412615033088201046025398745797808392516641783966291873009112598325127131457401750150080245259654843483137132964082884440172594239850995779639775498067922222396284143918983024212572959758568152688935413522996020120467907450802420773850136415118312964003439200629100080482013643658064553616475964649560220739276383371309997810852211656669179969599084755413912183914073335198126136993589854593758570834845861523240022227831203655021047064793766953884005834964637299612670420004641688825146745061745089796970465635665864220102499358350114804995027372200177010149516045831056488747100619095039556923866578603719340316963956137623608299546961447026035099845147691388833132632334320728877582812321650693877323008147711100392958418369411158382243700228439464291979967130484308836874456897689455287573527755177360033988629973057166450769662265405242139955558267687270536330007098033094418172149165040987039229140402951621034143143163775022311761380480739232941782011496739201070301221246328223367743663914128217853989363020034528110324923446610029303534332119028600157530089282066624659264987633097867335898968112639297922504355231443280798103732335312375617804744491662689304718344076826541746271109800636083788599741640818610737049760444546414913235128421073439569663932197745671698660073117457368621196070984286933882978552269046668141996960550930293463918491088607339604255855543671735328224617302783733608973139921321593155085107343014244730169812921328585347165027019293770061969571725343051796655802806810016498684205763986903638414230349941573696542498407932949841217598654890664069620499022631305213564711188719290805848370511030221374416093991355304744343893768231914580666169319465647912573748928558496735459136669448440337403805170113496261292912653487955106907331085008302607898107837848192611584412835460303506738085654608554783676648010798151517565096558463584978260964465153679207311004332115136183612983251603843426632682002009757605400348259522316920333790603607097346102247769679551432994363208182574312129851678991550127537548438115039799711777902400306293254009285539175403775801955776310933975889920339014087410550769293593436917169711390255893649326239428304820940347397241028465974267418031638910441769174262503569086256236304990127978058156507026369958912480458803508089071183146307804242820768163447245894638864215379583387782412002191888912016915866808795569097141519450000345839468434626202270360345585844533915949789656636252563221923255994095565971771409212672963194833406309313648659873427782948054036558134926519789218307787229651638462937387963747168647663183422750157357837534444901693763250065923232545756576627604571208196563534764952746734542595124133895772237099507445522354889778186080320257190064318397680438027451284395918428856756245124482270473823775703987355252607976980107099995805530985981379815708676467254109422789770390741043680230034993201007094982181365931446786854071066144669288833819788574460120662345005127158589668601219675291011823718681754950075958582001751706097585946283972542932767279551642330823388358996822469127004873337319014513903437787118267005395810040887156581443107751764051148845816481551817160816350665713832859584903959447636131925108932433772303909583991498905487673163978310823833926462092415055502362662792000705137985832867315722359560660503815750385415696626449829733441712503831800982193909248233967527222276627066645804631537702895978466441302325888286275944966706114245453244355776785111477430838123109153025715176446599158942119210502151605269892040082002516731840465856357489633262663339636173330170309598073029170773163960312876053248886367865010674891893048973954489070865559463428072710728843819522876132237882701109125989832370753186760737182634179161883621106153460958510956363933035916590872218244244625848639263756830947122984636662821620275863683464872951672826221666592395552823262366197570990200205831541761788426830626681554683144377522949487839484002829229568360571051307931845265606912223024944363509842485523166524763009601957515191513473946882298436340027061364592966652679688171157254387141951107947518638646652265261753210966399523206793242972475991371885458124715522996291801276191559245697336560274203246632032897294388424271626535063272388207213597531871201471793129268090592456825981453032792803959359047641483347573832985430017619702806210095529313027027816381004396462736086050576783420616246185758975542470254424223577172989481490031492981186150785036567916039398433299223069868247619558297085929731269990660214379622695812214401263960393851282715135854784451367759778755314307798830471025980939023745151859423633664031538579099723013880766693724148101741173867376267600894822597082251790379399222919959446867999276044493802912302029993625295998808659360518470856952951537513001548087098878254308538668705140311045278190843369336939813518749812813901009722179861694264756661582371668612151959039946982295385985486237782179672626799766570638431681028862322657998023077315729938040210074938446819063282553460882960641899169486110896836780980526719230765113037383396246270016002179079238350402134661543916656332973092589609303727616663774781077161713353454079733039305573596905895643287554290337960062655492066610115772723449008806557169108351197211781408659087239093256381576812357851148648826354604660793488680664040431151987749371862291328772150296358005169549431152686913325116071501222315452595603917986322476464269811290431720919864880307834912920213038462851329479715916117141389070642552898915475493891899110783662167786099037348336723110289246334157390595797907252734771644467267039351794236838750220828634974506387436335402319456776074233143350784675138032445158910826106884442780261626879630411017556654360982654616536046563837348928006237395784914899681689800746431856157947366605735687105192684439350033656332196172053825471585831259694388823895546696009086856315796687032867002676802341937864576737735105120243203632368581603584964448547374239448779984778106167159476694003275577082310214946644484810590255560019246737494377266461164226255608725048684747389269760383673158900380027163421619731239207511250250713664346524813679686472794359879073313162935626646599421438260222109513727094315190853478060397013076097484815510922214254289524321038474460732343302301413798234501655224555925557633244844976390141788170725923906212963239811144857021109121737000845119280064764536591710203067397709051232702907872358315023814426599177562581509044155233330548157970246766786713031753899829349105012728882192924032503145084646629157632151493038789920869410079905260132218751387507351562122413974474234907464390560806724154479035648328374655482935371265064282392341966909473896464141998735443778339904374702499968804680508511746017532530399338617327391621737663897146899486652864872790170287432090810209118831590702276491345764073737893227601391870148020030157655687598155311847959993666476090996554701986850610667454830377886095335371765600042642691978836780001674449562845721627663329299803167981967628424587473379194350921300422093739995419435041839954158266167512508184114888423574961750682817743955540486364794771066800774952983773912080537674477772625887031866502866567911331210414630080625507612412541080259031679207385514582699557693009012183563387925742470553435786052360395877852951650233375544390374663650039569188057389341036385815714569349158041990510734121833783882413541062969047458786000304760791456083288513926348756537039850493119063073835060618910269498139582719210344028547268915109810902517673994157799320271389661982973795458715409163965705376130482100245708426972879340200639669247822544715914704549705011568543049817946601552954701598051833048619558524430038426806889717113705172562292027677921288756012311649414962382164060365434313629808587032542021218411724061362629990375083002523923837801706916246839743817621772976681365841243378597149611993805125133745418142076558954157417834361635470051032949253157725581696422719519656536559966715017810037057462183992760984629380734907272432321271812907572898217145387802436990096629654093229792027370248982629305433230895006786101864974888955905225676541171626386017269455380360328839704534629564560773460146102988836750921148144360440532475034829568029929030098345709805216189972516431562776456081247557124483186878495595702466559390851587569977114476823780508878154418835536659118393968312222107354249790974017966417150097537803581142551318274165533558265623310546615054770556604599677174718933051049236407644899861633799642968515509670045474882357233647923122392291340674528220589029656006638365610981832509480684245069207353739615394496309122857013198032181810482198704773580232561867833782477357769719886040111584725347070663398917453768692566870450740427715844129164694072491794222770752128118372828883195757535831349883269153776975221829181237548265913719568859510348865710898398312964323732145355677247320477104722364773038626553978095695631171600530315379571625990981235585920943515317798618232613598093042519468218496825088129557050087540113170805905849666869512126966977787895406841366849051806086357921376475863089220371401253812757821700324212509589012919513059233090242051957360554612161689063416551099362919513243989012508658966887556100184279786791835816909751011439068121766130758065975193523293287554324885215435404176698083498319271959422212685604493205439103185537188087469254623209325144603341099461699655259609757414547305064192349615180609909937726901966320154698077370914179461564762213985086534929657808729732251317507920271300134861529229604078519788223834020064529959718731600666467368395926364780081985709035279250426598802560778060981433901803189369584313235222960977818316400932655399389322072814332365563594371279660600050458700606815440530887151076732397547597436409909010813120744146208595439543108611379864696418676680780003732517157887632065665545012984285718940344996524157694000737065998492195840707582271937597389438522209342887084264192043348676827493303070281973908926602697249937200166922854573358214912129656094326518618381530927318024687168821453670002961294852249521818658970624309207367065271838593225988461417020429209766995613075240322879965251953660314398564892298343609832169689458702310171647148638795317885657410644230829743997190205042750003767217371174347587933627566995162042963122323163365838960382836902066322606051236129036366933310952865134646772040264206606083410037952723390941627137792093814409782990600535082012626649001602684288176468772158271841165182081741270401680648943136217189874038022947798019885613861709614674565666709007118484260916649798661944518656416579998355462552678417106296939238889445741077552367551289260397070387879662954498922988708750618062123108987319534322067090107179666353636558804998857373280538027937077616884376113655684169958138796143528412220788544544263104511998064260716176194798960056400915939162548891412643790501349513038306234790143310750299559855299726841692072569006481974345321442492469360712714784106794837951918687850893831168158972087312860261010809512079015731897573866082844928386938622318061121363652943071708919058899986571822474714394173976217789965438221502240825571604249499735991950946814586241207869698252761790705595079437242666512194139538861274321917373522264755942957159952894256508088232414970845062978304258122205840385104088871843907748746465891236487517710330262672825561464746356032154225183860932757115402646581109585445397989767327529324224097873434946033410000793677551235525324681802610211593558737631198382920018561264979254478348237587343335485852739365766788034368361294698116339522071369458121998125310253841128407825821200138766783914320938864300438938020937739483648850358728636901860094588986232001062376210915231889943939022146674975980939446324825968840665277144354145325139788188359076101157260786919443562390131263053856134118631010074621357676705016974305199649775132087909294327973513484274098383993232604106304562793037827239413089765453914109159440730143819262575923039319981221533445903015307769364204254582072128533723430056429182025691934372497174483444634282037730640307562589823084982924890900922033319800623041274529585833274954999049713577083590714668698908949826085676848099672701572770804740378972429062344654486794306010778105409285404750376941051159373385389123229282651748239476971804882954503909101642367190785829366365397668947784514116435539395779919184500174366747231313544979816571926950411256682113960970915207804936603447569111548681174713021092072261036078628096009316042254845535125890348228703534199729979153126894655895716016123111928232315467231561232207959640898227191021446366658430978830914151202751814511944336185158304386078425200533698691211188793653555206110171937926238591544040797514205349966326976201530033773061147084649733486027355534228043488883563514241406332667020787161536770747251407266282205851251791371920953991303800424684691616402004850366157660224661110947747043305236009462639090240770500171519071233557575262204532994246291980609866184185950018361970948301853741209228718553012535599618315731260713190734402039453395456851380188940044077085503908674408427527056944370833199096370600757060525178929659203840597039778741776705029441506432708668960523776840358382469974322123850110629712235502255169470915086339553172274442836530345175127437839738453098749177306543183223067177988672038934474101218683203463153889096023694820419061883935978395204762335608863516585329985330863401221496966105096745837613451971044884758403804440008308270835312779403914915919114123948244013511558331486752485236182903361922048137186234703361043299472840177885434958128984827220802922121033588464830206897394208248551003758448158690200599990008761911313767794460806150000263956578090586177986591494408544442966413550688627964510759693603778664760888960205582048136220131163059335746768264105537100976791018432332989091390651130428834596545539592019789037676505964927423203499429819463758216231653423043280635328925770247852449662236960251267084213989274751321669882639859278333196334684953075289498946888321376105832487867522023953383655789474448350341605171669584127679656075066608337257957508156511481503480259072111848572914225442274640177908599874227414081176794646420894894913280253687728238596453990857265108714046169592333702869695836358875987778489145317993985794267124450710166962552246119644341309587080954771636861000545262439712050782012150465103164929428791347656915114559148979357004460572281847666448855767593263198611931842662979790822114438732822298078114844647206167770699310812162556473179585810541548435570660090554686108319672077286287371930659919338018976172605262803904762705711422561762833393332103606701409837704366417923663554825150550258391281821423965351504251355674557231045965243401871564371586414876120486247344172520098685368490724721798186159826020960864761630998982220725942443723781359179613125565363864764247515047446667550537161547414529342106331619830990028660346526351091905896299740699852235716582372253446519997385149285750184469540399568369054523843175017997587343436267600154748005536660849238539564011555567147073746885298269682362098144106444816030313538112162710385393876558447069832054526751809047553960905961104851913190248893139661603550560435306922204433230675474930457452969564372237846988635110265909606721020149719138620641337687076287173469022560739201694350691624665633201556425941927008916423422782943923564620675859518662607784134470307354224238173141853464990885896211596483187872118403114389169337083565796354128427442284986391229483487906955985311488160109616709579597706026425201706277168017933221595426953444767907030103232263538361669355488414155178378564858270034693019607350309202317965910749574292873500123316518365107519188674809501396765421051992692220716936623928766710412593827327534598538538133643389963122524732865504741421492285400765955086902008736003180531579099497553263673034961452991560722963820579756073530505685824364493528111007468130765387164828341480753599514638875187412611800186809010784267691481948154472131411026636230841813195136154348230415981411205694428804953263994842974958554170427328421147750847569986755073177662591981395512687653184109091636862458787816405520044488221629120959581904668501867382593546423668646145069913588322755262063237068910032901930953272197416076854658614321648048358803304714554493137196249252548880264556329622781376358767312527219602584694111763303049754860014712926714534799675577322792583073754197626997193538401935352693452883273926972700298818323901680062179635623346532295850991697615521104460680947815878282246528997801966710712608607508398139860453710625760344663616902855879243814903101121236272465075077255551060758650754986453060832677373049483315695865279785105057821905717621866397571975661079229982510684777968537682658116124617399448346415183816641450149984868666557958978024858148210944210430421338380031448837842301766477515866206634152770934921971020835522809420211062185245903886064602439090669516615576150429619370090692963007034584794544420417042930590973795066631242749325770030075351453071797113959343195247643213021002929523060700675298414818475371907660938064934950997175098966332011336656509868379721188394846519041865459539980444201768560154308945350728525149084131848588516827403713825523500575703157871654379502673002609151166707401683133603022039022018923415698008584768231551812955546624342314055162069025620404460769072269916915094730583520881847136945978471763803476546879523596186101362885319214310051085035799353474136772207314384835079029118643204282750888952034586204859723432631341656730110293056595483706024154395469806307338642969109393696287351026476331500856036164405884168711210194908199227089169726728204712412390175097631750334345376379537150026313505079395303379555666715332777073934695667666502046546259607102963459643973496096005669932149992020160522229240751508969418376156378513528528284335190919896383764523270620139373172647034954616728401918660894838114859833902754323680170289395349061756873624167936565834872396291582980073562435956392491376031775143907662707788107623980545497567213997967564573632523262269212320095038657831173735306752126241697824426085031575317575659054160961804215398405468058697193075354967713879865311287321043822946184853044942776840298462995389697844996242137304834896852758413085718599311174430222343450653047270472859524719341591062822652206146827866350628640192951581648269269962023801971860935878603357021297412130242276448638954948626166933241838126666161107933196183862396045688433722973196954589094830809544181845444587612824708765631439038426658362627030687019052247571063857075765525412132526122918709729324935500859666234078478219788495429201622403581578550150824279456656788584576530728761578920826629205599940119368593424381692154500061743715524190268045250361483243618478211392634872926543893985003272103844333856508167851238722899357932967840040859818277357749163120751853500334759252946552211323375299474945582951776109714302147652686026781399250163117813329279989447291660121432701180540790618094087528728348994980908463769015809797531020262682584387146709997248300013903382394499944359449754818607823634598959458529534306714168168287047728226329184928025921826810947172693938819950033875869399570210860747992415898906621274002116539648133124407311639166835357129581321915116578747544325459835650842582289396175527189744711765388525831810670178272846998336303694059265451678168120696034921219348092873701952340480899533594528418756059189023218829159083436265048254822628281778062829031309193422811792076835000832552944593896669301734140231555255293393967044481884646839598808868007827748416286848645812274806718001529889055652949547719890951491609596739565688787723406777645840310369579432438200347145927266885725754731972116043315308477641548774280444184275679736005014536591584037562163831494447914439532215808207170522979205316499061459292186016405941284489848202443718376224846802374123480548977505644479946512237312727872713076921799918978455284976995443061714090470333140985927468316495900876089117602354790104303227086214518640664325180774647347884701666788613510260831622755181496438306829376413828007007792695382446946044552608811475479126759893724390042726889001174735640763865487791295029629944021236536966495691500512460551276643256672113214173284994862034301839533345844102464207557623362509679024138838588677195450662264042850192829039014882211624474003328159657739694074486538915626598153448941016225714112387194480313060702940978312558691160654826932914177738655614376589080015370812278995119919104954191806461209188665282053719750943801789819495064779619343650930425489427271953031689494785037304878150629843346298314813960025515867691049205227149148328402071650983703277333777851830657208992138000013740651672667967974712281729714062492331797957209148444787413417116682823903342361296830941776385422301112004599008977776832155304410848930800234555294542678241263622005116670412895707851988502246891938382148681500320274615436360078542280500531284237441995145192735982162916812428932079586691803095198788869327745040589299637817310547210672843908634126345704758196225089555341374382694369361115058920992667599844120471604940493111807227023506232820200934032062267544664481692560466919688907351372756808075156773667424332455358207855463881687191696279200238958034154182409535257590383214246883010244777790674526717489093545628506613890547517830959692627226391490864505687231056099355852104456174517114073616050695225101362883292224650472697795015491703456547358456647385847430421474821066199001781043229717252388046523424693713276124820907069304983509754407089076627195741074622708933708417665584984276895564194591297189639024465706279755253191098520087519910003825419644116181452348666589103446915441076053723738153496263255658582918248309962807570238095752581499060949725043983976630292371375445991302249076886329091872396295352576032401556918881015539766218403388836046353001450801304404552594694838231501169999866816794838266426252468474286319166621298625118534385107001347659925036225131537263614489550745150637051076619249655977291231024324917157656204102182396911260329547010397138501557882185998864029547984968779098759654147498964251899494506010653919863885594406453069048858570684163596700511905074516918258928433865431772251020906212428224478960804916234082681541566878482458039868004183840169392823257560539078212585014121400240832802431782864418292859872801304045992010594868823627415569457351956614747821312198676703930024128178123487733146559564139197519372313562532273962813441764456961146219897171379547344050600884085565353889259836367839991093207380460958765258243057212960394024588081753906449871256557929102892551527526948295800681837393715005003919374344356565671349372335300598246198386476199294814379102278157691716955722594679553467976908561169238981893461126790351372405025102458387533553719478563884344822066285907562802052561815937100392711431866657800935797233573373839257738056491117894407505006074809680664731880629743277736445548258156529185307183470477255287812946263235607454346766976521752085962193601148659968751545660866118927973971679610240272013818986406251744487755223875082835245777595794284875946524737730162218540457828416225480274372805627215392041223140934224198626569557625538279129874336898158628268349427134949320040432208019375636776485005319816988983292058927957041871452535497871841933850891893037254879537198957905518025407172922381418111117136492140835441883937127176039190066614978107603392087233342872539372679683195942799357060375387249032552231836839839729427842058718052495264159192364430421405880962791942405262335013644045088656285397130563992566561457493365731570366654766441295970969185909352420551833378201853698798856954088467605785810305914691567198954750072758667287180745873413171615929221006578615666887601512114398218261443442566776315272326604264706453273429962275922119350105613421218346407747098649427794216941271558608509500072774424734529654126053510327728506130813319122841220705777005493279275966112249928294830122889367445214619080934305410465228236744130449729358833819309259448827656644985911443918288223453272478428814188229944278607839340922842013399000517887632597551534617680579176998457382594881865575526455344657147766405862640583368049786330899273884327986373558172684647263461487824371487001272972246212517233751100052178799476511421332420976232082095225752625234228369686179014909516896468498951359751518121874649947390393723773935766690893553459572953899520345339234442248330301570191291687712539663932683558139155603856426601678716643023293082311232811539325116809233627479798368194733464966529392739056672352026313212183108519515112972555353986135719001457208391193489501139918352639001524145289119724054619959958251725879607135440267480738669556521953887788262835174558571071112456591439382645575254219281274795157183905573235979400951865156920431002446682085636866700187053576680626942663553440301603969881790731621305763522235600483695696706913313735842447623816531480976076620908317936276163855877638388761278264546177052088126131704530432046499449666461766912389427326541720873963842817304049680258675415424008867770743749190411835024410920109255933178510570400670153284061006676883158735325273720867524577507377212003159507707645137088495333107992490699409125556980880633390713082778749873015057795425611175794358141813140716574937779823006326300020223083911946143868970951237908071262028575470670727682228684611502682878282175014253999636309347464926974876979335307187837556744296374508342932653854046816348860306240322199316022809958112268134318866808028378291997038556488447260685458008779311516908605869198555364390428270503662369923598733607868480755025876229305527125726095647493180657445807053756051700270106374715227921260510313099933122474103211493810639240837450448081703834521527910349085190358434482514313325708802132619911092791107105373289967122934351733054157742279966858712779939068680923874161487150230165251754843137504782639080229335514852802916950839220375618986639742782901950782641796253326959948871063921124121485111246360678787363366459933482479872149509811858807481321655440874334828942770279858740459927969723921132794043153607700119831098440801575787953821409006925589725640400635138199595329345439195954947034902047803570809432679782528170293492077129931519444703330273115453939604660798580306283844238108902117934358560211346776829399196173545266477894790378189112507736576234479942473626115791877884517307010516615665282518405899820843941138677272620206913479442976090401063768596488938280389165485734242145678092631531356445662015590935693843550763767387370035109634487729778556343184007106462101975229238698746496182355394382665702059546135469770695567356001218631351566707798877695617409467064212801349645104692725965777669057850914625056126434695392137058025341298664862388274307841834433296522638821847993045711575144176892297094180250586014471526399683122685026547392972796916366227872389072795369386564984290539787974424251264257633392913090551416697242864827118937260628292683788946563121577152740353099698933754340543981876733153052690097003999635461527111828538669712807981151947075491524929670880152996430424095408605396683044674725850771590665364965430829358087291711324284463522452569576537338501752478733954742067512463366124433880501375977738637874460619705605793286076787893823493873175912800458940799209430291324694215323394889824183824268711219457437221971115571153339862390032021174267111288038195526821730387063639725351280905326112064290737912417197365938341377023150585861145719287952705728590234781461650534185096288922885997985695518773643134378498838363367954497258192826403886416695391852829621502533110299791473410809199189999604423007286741362385347571042108278415909545733335690387616290432324071146205023128852774098182898497019370381905468055939284893340775957558247978941362993847443861539460774710686317942682990962102524271238817122339871261833038017092829653904783416252560611631001481885820445238014703824815473871075732051911632619462973493658280093037632000272670661486931205016706901311388271061251592207944673917483334258540747809453833123616539427429826303759485363925269927773287319334318194596301966757302803060884697320208634020610317182966992561129425445695867283835814996046576475758628668722269350086570280724343004242757091465018196575987540674057529582093953999920221344429318377227239636181246354228004971224305652128389605378740904651838139561432769389716881399260238187093513929845293388669516168275453460360350585250872508005015518298203409398306373709503161181049023642777850268268414796908657868353258325290757616372317399800454708982151222116009777193946798581194035391446732234862010544032962249328977372550892203749727780167609847087781572086110669269353336454436348922659170918566879722190771398183596990759808406469927759597462607398520379562882381302227676038753215858218964512777947161561329228784248647027275374474352474787660254350114480872848997338361769158102211530492518135702781871809914949483432848662046690792099116047309320367316041499977685309080385585528062761281038223470548523301037666261262752430221943261582541369752586159574362857641176877703185501083980479281672080689259926354550840632784139920182163534536216910874976842864457194645062489162796543132536867557540905089133412769478118222406980972787385947653481324695763047055209864618094953770408261488949850159625061314293936737327545147882028966940530432602509089118150594388851636701367029960875942191526247741813914499089285144864767724936188260241978270331883040079536481567755324583938041398533444862457950870870833764855477802330399159294311365363212855563791763162438628430972966430308875047993513994302449786931917800303977865897610298436911106786534405434791236568468283800597746279391950613184270656230648155255265231715690672574546033482256387501595487813433000566746944024951108552396618652175129718204676982972243868406444124650815821561644862789138066168167199653806473658069613553608294116343638364915266990278597388380940219068657173214411286698742537202785924961672713739769245832727708234435423051622195450355322168906430738976623080428213362154548634280625246199992279941667162453168171571858078695045929109783151510916423566499115076750717944572718826345342769073270615926645542116064611978531655112134897135937872857285216122761443346130678023430286423220566327653083696710610286045263128012989204642014742278609720999202969245407491879151505231108917330873481085765833175536880332822686100471224957086200792942981736160395199724056390194590878426485153541218349350025084263110663063444439029843635796792662282783413523577526019297892291239996581795472025709114585431846152752825904440873662394467004531906846054795089517434591774919963452765624864505871221406338596510989785872470859233700895103011143247538406608040666038880097671773749828033997166649705986542853435107827121660888315461717173275989955504931563904693935069924229897195723488398534570360806773411150333733927470296608435323084655091709735151022363352702519667943514935392531944767747102625047061055360487569775911353435104930536509688694584878785199341759870346759848517829249194354454174467742618881755252491811641544979990951296344966971989002628286434852451755960165351267769479148035849971617977033777906358495329341286101946100493518922961033824089658238755913832681756765401908539968801324309052566043804908620928134279248771805878870922764689284867825236597569105633005669713621312008169884500243559018141073762358870050444925137855044595469083521154299457245863955258828296570085534330548482290366879905185840309489048104660290481867470510526707417950721444311556983156059750963530948717339701505086845082452624811779202273680606648383951548274753972560019609509249205985551804427862566382958268605413974472280736641137826267875745944851784414411167506917800630159251233607330903657760706024890373547536354317630239397681160065170834280043051616918932276223728630455460723320003564163811279932180270923178710732743397866720251375470852365063934571478152455233128653562003886758531883754663581151662930476506180240306269409541654936582824331331482752441357278545082855568694111205445673267190037617312339081710292785105082479936729316082801868021520401471842106299022984597478476255486191664706716035986127211970545460557259931608332548130447076119176512567732879182013546753566863134166900831423088545709331807872607347833426773818745804820501565893812111000384785947126914190282560581931409651828823210045682791284662026408469178078929123774379442059815828029943893424839064008355964025562467541940230489818005293923730504042125183083803672709528332038355673574410751079740302759780455904280707123855815747078960712001495877716043116065776983950915393402702328828818877148685551082464761595434073775619371417475176042069003246513907762504425571761003359221660501404755781988588415810223698089705445038792281024692267257130996901524509122396866402396731720288129261005586880334253535806248768689780382399002090400067429544140864797677277143896510864418373212537513207942748261281140950819540467374662314622964122889466467595269076145543732329030449057524771895170190007102151979813695962301786241219058544520868599316783509048903677228945393357025276642840160638941265713052319546007947002967551493904855427863080573225155791126390349821192793063997444093377325627750646717368951838759902894711992675142086386320202954670668121091711520699609923430616312564895578678118902478587690833844677749310900031455253035839109872097217158243444564332878413299796816043780089831452524782049045249972145490659876561530267703774023231285162553694040457356493622034956915611583220775068784306523156679691851606655432221343652059564914544188377825238109631602433330213681932011556744173094917864910478146552165343401936446832606740356385999431550799263715701272876411774860790103606562626131538572515279750936029688998417332453849296895717107680094985257091213752596778509708920456048584510207501876673703206630614550216354975352531881023326811554091511569129473735902032850813222802715106704106758758583552924056925161027012283390256278873491903090820343148483768153927812483968721940272193494677326038237021744881003470206636626086663980199628487581003514148901126185062072247819335959721144043564147073101542135703934399537024119820421550498051613040678517202265180540831465438092226779853311837679947077404156101814578327548497184968575357469110720440983908963289621337217616919492277841197024155751263328199899059373801018422566360265592770902623988417486848549071761050751734513759229461401576300528755309150804951995436251446931517558100367496815776941776021210001797826891964719376606695344277314792014006914759051761195929602223194484437608915547934477421022296626779699194256097314726439278955357127772076625652280121016504865398759693114860176086393065793003362304785572004343301452623761912140555238796565233226785130614735014860809731657801316905991462844292153306747519694047340384762136704535843462461424342797466973789378006210962710674357956339248756624799125319333834739236825236302759892318588464117448747050939970909977763282580039755388360373058937766614111936670313170769637277576962233932919868430901813184080617262670319834215323331450405056732210700019319923171383486425315156849999479725391888212459166036886604128129972229607640036265185872541792980409721987563181617164118948802193043518619024637137069067644255083358795943888206831651825794672352063190864378782937274596235471748810179799469720064185438008770149901760503593544677506841620996840394023604565491604482742845744652655704773194931349175666435679574343110758674175948743748370446488742344747613686177504394239402809897330302990393747472840830993123769400708015717616694306921209453198661154519236086821741320241342258611996477107113559450513032333080096890275589921821338155308458961545280699228318639323883968066126367344091457795468588178678635021420742506715812812031795584999823168761388704510487861328378544808402495002112796129410547787479214829558134053913146340350088680559865470550524509076292290910011708845329585038048405403861747771131774515084574435839902572059716222858384908569119702101372579826082881564660649303127356361323478579073870952811978066061649991415854873834769484373227508082669470424900892354296260985948469583212517481840581598491300893172229556671727256075853349854916542065352706136011930627050043717235176253777241343672855364813760063758114788974044149449351638630574714373595330699504441462492375135539689867244627302063934791841738869938910446034710265739279923776230525493648022626897829865600971954823507462030253908352870079972982836731664823841970965594960925748258613384302117332945363947932661263300188024808080839444191981580258466977303629477817207742446339530341278764338903362094734827566004213368664730610256250346315914001652721646846013631727950798263649974114609955775110464856688524035204516953190960699146798625637560193355703852666778342561434692875389167531337838706309097970722586878479633824314799193477691373251843931919464461676721363488844739486080486668442688564690530986745158879091982198774345852498456500576661989589947424899499592788486087395326379933988011568253722101631493622828131351274350558786382675322261376357086734791355589269711902527674126231669246303542292776196604925611053003535277675375050352893403141271521303028375158802713721892698849894254363235025312193948317078737028885255906910572429547551510841052329953762169031770193318854135449237580957285817205329808311765053307515219221755846256228382216155395696025778045319122918113393091367502653087012719128562356107452822074113931119009358933826273978009898792965472330567234578702371530735287855285713490997549684385233513603419313618049621275356148340162775894623047815095613802831950629445379040233954229762952540315546041650786176609478012375604476039991550938559338095256527651366382673407852874317499463227041931049700338317459562305589727932330366138793049344422460488671154728457415932459563770121732686268944563947267030435958533258367709063798263369699477071333456593528228205102023519129948764006598116153499202990390492187276703209079860873510357514781973862439071783742527615729616903930965961750581751535338415134485781488496402098851611589416359490226135157560346029948008391745497049473673394148690460273459764167909245201700779423003153530943373186035099048442106329126520278281131480544077121291338443833036483986530509315864475434727079633846352545681461514073194855397071004458915258076621269498090445236007307344852689164820649488024458259169166066321592942335163372212266033784336518940417216953652969655739686933390249815040118786367968859091457698111570247485147422396827070395390858472468887904862599731863107663434323739727192296256659350386718753297033516921549477875063741499674850164181861086542291176699486513533795487649104398155692832114097117448062833254673668287345197411416747363321691242004026933869347026742023261307487195973583579017982539930324325995020973468277684635105021638803153373713770169211766663988465623410690380235388389403449130672032049969076398588410129959945954341863837872220334154113500385989357955547999531189861688657455990158071534270437387462661002775669813864346702051541199542257473931089448924773233812073013374904866223917145124786214701303123773928803547906741785116181372248175660295966395362138305537912115508934147928134097281057029388566487887726572129138137122342502771703664109344564005232052368892983705827826330041450113070051232016583246361814676537607891368086678776574495590278226569273747463216121507359667543460159860203943692254342576237668454015368047569723244146433414888575866183220225909649055306799708882626869207953868800378865826728192922989308409525085022994430797644346730904604092896036772151846837918482421858347158160669093479683097320775618448137205105240720630192574590607460540938201887747494149069280068609712088842204788811948563035498558283473543872482286411252934343288173897770838505031486785790329067983164118979573005791473916521164656193114744031570496308044168181860441811878843956276402295142669942939671595021985711936142676209255890853769213454892926274521806186491414524116044418043362643785360624657372675069201148214915027788203569806657868733756041121647676164293392184935058446299608190936563316093551502848556547391105452484559480967518529809250378355962571836624933279613876785985114713541994074530458930281956278395824776771743758881673937477550601947107298766751787690091492431159239581615911258809886650762361353632437199575639601424424746316884206348409816606920470380683710310123512529345516692981750152810009298282311686063636203087056232127801035706203548598841185142016353893470378167013303491247874334455556257133088551195172066583993888711898630276103477832410946169973164383413335592926475944132466257473954148606582518717943748683112564737522155194976374155015718148440463562788022655067329096830238627352315403745412566774218427056305885869974484369982291637766977092090262023569611289023179355882476240198325680636829729868920322587590630663635261228167762679946500813897128483592375620732576501575737053145438538848727984507533919313341115858687067524661014706883312993413716783349052263283253163145870829101252926750968660431920872287394185598905278475601281756105325970443349219920944932116514405299909669339480716804905355208930461479092109484424134965494347765971710454179065833914964979740900206370492486243477812791740182050223910473736248486138096861922540663003263580581607044621937491219613679964829083237946738071877845959434917782848107157617259915877099777458338522536087316488089344857786103974290385370255211510061323720578782406222610257712086225064772203451301840083725774883301695974925130687678727932631152435297775386848425240209427160999715713882187416857243797754937870927471891313008846342634699293406899210469565193934104761638852885157715428307467280351884354798712796039203420887388855571540727764257039675014561880010493263526980424596400508407074459178818224776626923884432578348142989415737806891425654002019427427126186447267666964007517549676128575881053238803101467946958180495082425918307880532099148845125059773541638902305168028899035680203632503900546896666069223851440041361666632879654106265399580434669447172277347399226428254243136997166229254495397283373830247383696366469605732545104498798061379884256598687983794858121633073059414454176037945767888797678836873544903519483076816513683096962433838669901182783335582402321751704245215267061647788789324945849373103394750089923902904786315625775020246248510195841798540635066014581768187711910676846450531430741411478446001397916924292522796319796204691180584487033889289285243298294865608042645370398672866237312486884999797364753730806630319457362767873917041413769133733493122212407495998188749338717414580493925877562648132370870735605451307472501418832641520890973785884245890905241977294634639138159172209574507231104543557840918328699720735740730118249189463963534197153834989116795402109879477905057519160427966199973407790631946817818217275847308560488398679347204637034375110956571448643594344720552589826889893816356111137678341133122925389508958644986412016550935693827426143043396691732059308811604730741480564741323928754188497073459871729614091401081462856999452991934547113343800102486322394446975097902215409835574428893070835413068117981624660708274353252393313415554988756783689761042602968068227017612455993430558712096677406598436708637502274709808791648414205970542191936989321681108796497285077214747309985703382873066752396456781017394789525341999694696148257632677767990059046192350125375201093251929851012272887782653286622930514044169243774817470470539855272906435786063999645215633567492277978500435030273665693847006853043769925919595373545980550231570371071193465892476523963238944086090381939987974849237021664459690504723442783826112715643638907432800271044581901530247823579870688062938606062465909158955033825533341470417145240016680861435827875992143644668205076691165166947822881729926034914441626399207159830229484625409165750530826650259615192767671710305887719273148861024291318458708043626929540912201028326729332445797093628169063525684784040627322968423063928025332929708758099268625204943220132365112388015514740714483730950033029169026521359545253599041855313139941372457617421682420802050118960624723797220028246657732750773817466855281703796424341535802500672317151670333644621844610024155533883898816797006230824198581681011939515889858199348027181133550025152987603293110602965605374917239170332253646511022320814840479510978143914360093247490819585423951559351410216324230739302995224010336059656262929193157022544531787646413207494577864671261703613357036763357199901263762458062895964553377146964338529066831434862029425469346820464218665466881123678289098907302677759636399020033411807584076848146601566818123248261107335016431611884218047670749003436041439227981578397451699136236051949474791527723539256616793609572255035898820790655315472463167453527870420134581028563913080776789894766328032598198062996655992283523669266432239565656037205529713980130559742675781956164712255473914670921473951278212180082542569441815030624442679902326608544667723575039274484029828453737526119123003050110280178870594718828550761670420139457245214659425073226363504066875572080799531407967510810899586831104666303778659145678055677795949886977843153751808851449651635312352588260813075268913487327652093509978090104769618925350105877874388964499299505353371742854263575763074710203413044210842268557638797784645811585971423235117094593443046115220468149080682293093891384408202672085608565963099037544347038553282889563108849343688695411750961700530740496214863576999561518625894567440610499424815564564494714155257879113972508481671818776320990611221419114782170864717951127323796138549337184662480123734109753178616917329599275415268180334883820857690785467332032067557255359048973084954691383973733627329672823817405445285971326869585662713237614501595629405908135991101341827923117683314876404615277580474453543696892292147932115371284122619024406072592632956239999066969878652365154961116423835613046375843289158886309679827485585186014552553304021213097552772987625848850951317868685439683371139425494714263254101438719243466533324471185011811045284690857227830030641235255342733298975241281775975440926214539171444298813064202240617558117654393442341464883548159392810049644409598638129928967358398968843578606511193018125310156158598291864610212996863351110283214115290264512503112798965278470661564098378736222171507079052675929482215536993501427010453273204636690220679675442482770518193320260312658641651356416981838465676219786646698566084967573796260925206054196831248952569578706922822232577812420970783273663421439004996464322867439916386411558447349796708807376286252704073772313217952571315253800280441376369320867392953664147834328320824300486063994476631622664658150137833498137120951800101864808959659216207991539157418639332803487250306438355068828548820058428946693170540827586883131416446928767741259262871789474966508979782828759078893290965258787734895321537698804479454279400797825467971225786641585129180093830555950020430241089658716382678387449838098867559435227598484588343688990561753687030211928285425885135140500028249463170936079205023741614326661274158961876253640200351450289901322716476418312507547223330035830994270736565940320711187209622402333166700718947057925447055064653168185394032560072203662449282670123188984688476295004987746606085519568254082477337985927140006695678911907905639202869717937680867730765658529043924533020546325120603702012900324652472746501050479160190676337355739151159465240051180794373811161633965273190439805702252537413595862351781698513218383342194088892610398885367307147266329020148967912924994794915075065864827248693558440160859696646825458535524750549802166693517322040559753673265991151712196700591135930457874222787503531572640492474125937282148446010971402082095771068514752788985405222657974633463108589271487286367254061260885273706513125875642282271995404322432747431321566529511100409608426928186055891919780310017926108468015785718189704895988910005802301277161533604705116572378412400216876006564164580675297116561124087313892060339708007513197787124942989157896556201442830407989741888748708406952820853609736706444021655285880940466380197316271899909164969239296937154601137189415634632518396481489450307797847913872728646289241848608582746733607703486803022903767310521895135332914134795051997571860747323737744064680367459304400912605110119971530370141073612230154920245695426738457696452625357663177214935882834320395181156193577558213149492134873018138720333932006869089048263347102539271905555796458204481311555304367572995647354818937787549735119062734746876742418500181151879356189620894871986270498774034802088846982756717322269938371739108188864122076326746296899709298372210887809521513910905927565950975010883343207141401756522926449720348968385885407339745577434442736363562181827011478536906978679806978099279750377144495274269396092503652032872262295254229763517027298378207214890384644138312413187990238986092654707569801287581164086151309714745115281051603061049229282437601560192904379433688231151097822167486792884675178447752651610661376427980571342408370144735134177382229304594849768246737226254942487850320480081172701268165766851444478896282863253639182409290289691744361836733092084169237485994399552532927976029931639860547747058844406558784932533887603309456197505760483375493779154045499634478882309362428821377440963450564206117457161945461585722729530808556601294479187186756508059961844238292504320931220627512721761858466161910405347715643000578648900488797018991711665603499817216531918782190018017880769309704170766155660475918103546278052628963330139494796804094749168006909845818324462213761834140778020083691832817691536933534459255674145235729432622053357465683074013697097922956257058914761857842469756300981938995167860783989710553212101590640748903516445408653051204878522083209196987577035479837575739152433594993509497245484779900166926694449334912812851991876707634375916431099287383307373411810766959021471044315333213156013153979745679928486791163180929290607956178648549714817140363375541258350660721619576058278932515707809858005180093097278092096489522265685871097859639031638627720372124562640214909030170577160295363857644654175430420014343790485570900158136592873391502656561274544120840994779468408044254321189205914920450686424868926823246980118829013731814687850157499438186924504766524417983459108054940165995727234143625952380587524816914984028975406327175638958875475083422184399293441206128938013394121317047342716395328799345702183684241778224753099278845842937740697935134470181923359307554297680682558805955434189090710425555474660553057504899675681141458282719965175820265225965964144099408780036973741533746550692219149362946834043954008461494037403557740684987822043629585526620357266072166823952343968509273366528559320161133714473930944106135789611724728745926663234708763266318200086276528202651867606649952056633486364446113005386836943482313697428723977805081947747386690171390876421866845159797862218824240748996455069137442625395307807121031154611529194141912748401891747259003284410257082000741384006904265211695844937640826418206832367645227046547229836165682989748998072875941379500504802498447260123139767309918625129555503987196005868814618254184267913715103596501622229793467962438671795454891837837585354390594289821453755286552033737913725033653088633002378571012614060596354930207791550667719182488570832702313607185865252595829314047760814067604667494254973120024699068402333698315403511866161728413299579542845019252596365924660493260256408504809816351251229073332620517643369686989049616580631715580271987619651777123210036527987359386514903837516306987025497085395654660947572218599355113741565145239922570002033211284102920124802813545238437710572093321129006511976227945406816194577997504409083418456908306783424644423082501365298762303157431080953997578170093957979052103654314504924579779153393701665389330199521563653601386278780236350722215958337380311062652379944854993558097961284708231862072262269516225834174869001780635548062664289928560587400313045889146945357005338674157592349101268937939908340912716066856181996919106820982714580677366437558425400139686354840827519983699004316250624163231239363673049661347875399300838060276847865772560156955750563644060416285235770366830349282388007059571347351877932028623601316660312282972823251422897062669267928179273699828531890022989274356532573996068142066689091252578791904783787005589117129943821192152824370832050986723236972126567103662685255515531677444407870784132947653756223078373029161167212666134827252637004630423853012879116306761300733240884382406336430389022874369723233360864540038138687425765623723085528926039568208082454828241154160249271845598633042434524229873288387755390361744885282859495221753935133543329574421551999466394078213064728424112433692343886563978998035714186264940142108764461884011434823407592014721552677445483007819954887398314761091951941008194183555474119573378611463672574682830824909123601447173560590700689038307085936095332668061133466525965092806066226470496360403110943917265837266733027908650763128602109346962805575542806618339240745997509156928373845562857378530168952825378460668916954026661058693121490126434953407336766154819579864674397946047877790019136290735821454890026040321337245245244165913600850352479418662005777017473886678367053076067495745370126862144364177719073791961685244175921435242823115877685713289301046733535220974300388656099515803999040468851386968305815563114542739765334738285625753120193893320528352610557074313548324736194147184746782794010044900273529279646642177286522545883776026731349002299280467167380513053360839292321148355195458113076027422736604793358058406116598364984755775192201332389923934633545937210496110913461594922461287114384181785702618432261552013035584329884446425837044616728041372976418055773547697253731176599361604976605871276510169801689669935734990009167679846201616647040016500645416071741805499123060561705970263540626596562311298291594955027830363345715110457789227854717592248616374032373566667588246799250615339983898310274179264571125989858041625733424996279361286354854692906554089347524175190602770813811790974822181740770907160601661925278155615702931393198899757481931786501441911120140645598680556596010434031420478399171408889668054406229697778739868140441214481083917082364393953082565913022865935559982103871124316253770136475823729426908542324829011703107768445019792382172524103757409789727700926862168396403747519247920721650181066714175780032318202278294422189515697179946444677996195895704902411504214031655792295879378483863703062935754538007709625523073959078987530438700972811132292620472330054895887983221497986772737714265908129256756458881230622458454718629915370578595110532551684591644531714334976858241240558853513429054340285680396814736579381873691379632036165993834596745338359277380964020346403249977886469331604481162518418899787000692925140635469279753390144408250236542824947153726874122873696396946992363242184258004845878237601341095321925050306657891839047113468530777082154707881583512937955162119029066447140688098921147862524637578993651918145547956478436968465149904249992004085468293507270797676421892299061796529345433335055103353530847620553753322277342225913261891562376701229953662525664265632926093166496773979195205894396983363937437861880365550342255591277737805224265799144290607122752183972038585171852749718538322619109210746746623977606786250400448929800532409758231817760680509784387640637355363343570162787711563008537692103073640524606041038014849425981123661016821561195232426473820670502240599854774385447270122380753695838522737435468201733337558568977530149108342189429107945848592916585642542675782233706982662610833709619451615615212545032227335225736771384462952657478878531988808602699280634196699635670086331955821054622784711067407035514066026217395112926267231832497652856835384117297785925114816770035675638902477685960262260692420174722682675423382268849990080552165730097897969185639094135118868024498988822333886486146018486591792824907374465261068592626916897305885513428403665660906246385085827542544347222330818657753052125717686096095472011098765674627345006652276525798997450497956899987060433946786032667345225525815609195821882659405769571825261360466265011279297100732378788189549965065402318742971198150050934948062773956967518706109113566178367911523720620520570372056534539494863113981522543068959975511588130035816768069534253535864314003466376026854579451445250924825678718211009971176691343555801715331933585295547289603763642275329254385143994953248966572206200988040932885572800032841765466836936483766461225337621817772174185303232901191507585821800222067380065091558438971486602084531078465851799029993372226247905089709815877970449525128194893594221122979356468313182614938212980258890045010371950935087530503091303923502452650271800001827151278098622905849388833483708652159172563178562113945838968125418372937443478810127432486894846196378834593432375406662590672223886026100364475735881168781592871696206392257889024691583215879318027809810926114018934631845494266775179662034593186191356290079503712043214379205392504796808473045737392975035940894020843323163066104568892887996899646451439023207827695502423616944038544410902319805717332731162746264883975307940597195686256872116116126258460606253196899407195930645816601639787440619741968164723735894792156810260602053062885722258322956390012076354469361259794439481535239136552000020434982934436410735967165779404092223289879506881255895662285322168338544582541597913011498922984252697815296949202696894729689550132952855368513684534841704434170931675567276985620445868430548462122538264435693369316394966207300383284662475611071757437885671361298210248552045286471019570038704713390346697702321571204546216671625390679509284936599217951615847926724293534696324323306240142748284182079877977203085197887424195654827003126266252406274738253217155690726213889553503049404491594763617027720940277987624573303814265651636506461624838742279991879030514135329526798218884239227539482630783173421430747752096917976857823708169969303497023507756204132541697327955887875275380174201983055487614503741035912842965560181646531333619626029326563836263762486663244755555491587185426615818453386303319621559061846118735437625839131869437587340267497618810867934271069637846799253414182269958835972308198473180038276159678701708474896271691374505584279617095261096048068684098308831225986836201480609837491897247829006820125788283903308589600010372400274534861085858245266758927157611313954050312954162977865066180163479134132293578375576515912932893569629073848014773885534704409827369007481831092439153528337779254701317934813976573772477285404438397804902361084949370312224737263513987080908219090503055132256324760130584573866101466332757586984366124657963658024107011659700271048361591022339766640557212405728779538180175114555741067933037135861985952504574061881134541888109161899509809315633416796781486130178689060780947733939626709616110358627343753513430047236223638207006904101258256126581982646024491451236754544532891932920034413868158641991270628383449225420073640819512702667195529719416823750431196601094508230021236366798302436176146888968197386227328770007350696378610784376488007998180441134734556559729690538428737885553931257181672342874516632821142807113653225867008462592170635068465283742422874982990233980560527302061412458119637442163569163123658723848299851401979426732980341303825004416772052663630432955339921862894932922043471501518171719810438435141489822820261106415246225425847636375338671776768684994380955946704387975463506330053318696177487368054448994747324295675209526239924704810853770347584194031242547269506710199576308068760317083901613635773894443073476995063030345248921879274489269714551274926250889414740782946176680865670620236132221836259644050791694644389390751439232159268845261504281366136273316288603781909619905027218059402797475867567979841622927478523430248656642298791613132846933146886918019205451613464526263941067377640957107689068116913544809539419072148994358993357043516720105085352235290718570588654879954108363891087978116951058557064402126098113768567469649505697740064723907044116059462551201312599248696376394184158201354351456914727504366723505899433282322142741124005101842615363724008138368041815455954447440977231774561207095314322504397925943767195986738747512852961727874701857364906742859767917098880539889416773730217976253144480864915963091487239704776715600024392401087276843685661009641574392073719306099512599205245281287537441737633106608436725321385765586893351722809227140706909390044655308858414617459639979442064227469578561707624027207102999748243840067221442241015493553427346196512497507661019523561737140709235633775010365836392004648331195734846000798924512931047558964306513196472278093525364790910015101656838839973811099138916989625398337994790319457295728784596395692320575051907569963230370349539262055565977539189519773631440031673729576545338079412301133732961604254823966457445917754331925713043172925182383395101430005309004584364692086360938904108394590737666884172239416184286724167549110583961613309452166197261634631259907564255151874894056298443427370614622415413374161336885892469813361065183628698269288681399258915432204903822478324479349854286096828489179614871012983197716837826365014666287485130772576976543940606660786286810010773755352837762874317008933875610554758732647193122298632763676181062540801075685340026206991854551603356070087703561342583341697811255092574644243465106951465819728084319233122948910789014684988909338871440642672140823747541325398093678376417150579697745606978166843247441927917206216600644795482552724171528995773042332280817594057165179713666896623526854434254965273110755493477259861968946857929430265953822511583974253760137642132756612260298444735147806966955895923393011091097838731590866964661963697299001715643948579247213120636974542994254406973469295615974741071958604236070224004603762346927673289706934788252330382032365132875355399770113638143924320858402511856021866262591196780259612451197554765024427085355000434972277870197249356631462751827226605981361803511144785967121979238191350866760818055951174481560442633532538456246940949917088262275775522385226389742795398875429983269052579383880013745899413318617576971736327556838788326111586954558876071639651322592342092652615981534906110954785038429671852417130183228015764930436935216301232386989384601604242516390776946536521041512703036256946605575755550137564916505795318183301226140447886204605639396078190987324221945265133579705699886324759498550861768908867099018976099938233528443898937401934388670165952032206869658682201214334093474332591993946762782865596472032058713846237685880001799675385752196219696782949985730595278078297218309548370542927360552954425262703162562772260456353601894158771519053888213044903200954828891313537994334013848939615517549502321202031152745860126872429500828027066618018026640242402912003713215937047445988477251879979941258069792002768698235809238963390252794312714189925824149028103567944097260101901679064275624969970810918950794963639682668942857337689102596937925786797060440738768088448121697934145021036879418031583515412681722784159834169045889891297005963611409630356312082358318340737830366177763103530256136192065832154628764055802130727669325113993638701658536585346949930328544888300465962754940596905551730864284893991694537816143706294056102385232027037099120381000656853154167932627370537431695819037512668064555724950256834421717434964369136954245411281428862346853767463507287216877968822113024550281274076122365970913396959489260064535431389233032975627968386547847543376737558353353560761538614214715886575108743185379162040081107174089234865110461243984107530960749823147006685801413106944221153995576513659450729906092815565961863373977897715414331274996430938506632693641670866496216793291566683032911800726976658242314939227407344242082957970138266733688790355637889246305591904949492956804320257510807818972997080418128568168431980687352252253006243717221067095375561824131751107669430260059556924687911582496407522866620977507852569546580216539966166554759273198032845814767478225829307054238801006760944778421888138251320352727391354560829837428116489286963922217024412434132685823406439360874557578675018156828490307390149200700081256888585885632135486859790984506581413956917578180437424813204341734743240157656162560640880510777616895485081921672374006716899749871737550091234578350361537802026361587119796653441938280335031837802948728468667184122468631479365980948113618973521019159118377781790351093015272861967507712697545649679216574131741802629325627711964938388426420439182967115885918012587719396360072114023654623492063348600430091074084655921938072823487098984266339421046457511863350898116340882556504835724489863725525028328845696534435987837487618544273585890677038009710821539061344589394271468383454685270063045021473287449006935326281856491421681950276825299747421306042300550130373698747547402375748742460576054294452181790903325088193888254960672164573933408288526648636277435637235300713425128003444627662645079312922676535742392604763335281941111937545324688374291223541831029865843774364070879105964941929638227911399896664839432549483822696347020434032023703026438027832658485154389721629244395094431305298500455821665093707851798987713940638250199786476512673501725425710189885332663428231678852614489729141209056282633109422642913321038804305463401255475836500284669260057871669436936763147708036477201935038669259535799366164313660520207066892382949067236078887854444794898237483258359327455165411301221855309400407918074705544952202012760284874971291693018556876800966372598013854903908829702168986717067690758731438549283722574292367813977228889081254310926150757045610419845931798097017860417764179830767764621291160162482609880583305978989787399714272572074204656420974601600733920228569222240259366981344040347509451242266322133899651266854197642576931085276945311317443917467021572669879032732034526606267159163272017245782819217195880793779168869384598818404116753306754413403790027427571199097477887018102291799946382956931932086179522757423692172176177006579097958403819099714263337179670151616681190652129180367564053518948738519069547068123888396326942852890611315716995799994872272002440196697512065819017724289899640624722235167308098208062074684088642847164607091750749696670541157897949559344902287199100101150084120858932741932374089919453272433670081098672915352138908418233904194331300057079866176788380385472397683205563406557653082627869056761889955667354528923725849782121397636653466683743923572990713768377245885260378331783914650233573912532430452762106850899113159561540777864569825348790159938546835926163760853554328729800742404317954220640574012828486769923269776415697546794074237200861147218227899112070344614867094990509187091644860208952887149992454970830560839296502273836772195175827993806668576088954701377680099259547979352797357555701477470362798646038239262229957618904562626319681482300189809873206586115984854456977495165612561557000825803731767774191786408862863614782545690136720462957684433139865862958662441657784785054781950551533756387776094915457034302884354385100398063708533464872176801014312918287981281108049474103771155059430361765734519320892276348689736150268992063718914027474493936272460892909444803626909665990692609910514195904246141218369702893635593260718336999710416529781711823007169075659831767085544576525021321853113348995017223539894153332995010039523423136535245731817391698224224590690975231672504278559900698797386527364394658647322325478498557422075922257980097523281965917877613420880290034160091958697886088929267150297651821444127417587935698411570527799735338443672083569746249277141549218891855495176883151242863849607420981621488053612667148997864688620342579342399961491890630849350584032312934565091799236068193945896357394766184641707434001478342268690511620729185555529920419441987884752318995304622680769867106035422890540291550133726741463677436417617783238073995188519605538243571580985620921921004524450815248791219942025607716256527158169815358287417577066433558585341658777161684880093808828987491685995987506031953944750466823529835772890466204598988780829502731657816757401549675638822989158412570422596095325494378396135899209986699127399598800033661421054361856012877870800794676798760743376672704398434030090226742234738307913884439110047903339951390597596342246457076416949169928533743822003839497991047474331959442750664795361942612645494874873661562462972347452009082161023391237214332984200432766706594848258950656943746433607414498017495099019253639329682202596244241972558293691319410170397342751252054978917910769868323568986749062285457330296167401723296173991171305101242215708801010278809172308770693555234433620220955768473619727820548279236347428054010070856064044252873724096069030096002636876476961887286067515608362697798147845512572670742365467241982090604111701229567263741017403310202223455989953926813703888750141162540275472739204206179331396795831426636296447101117162450730029686803888693179910060214841689355502489831256867422247485918032430871905406010571174720051117722820079528434135508500593507560970283543651502946044586651240569929694880086294474153982402649934190865134298504130604095029307816734027589970130643905091214503628808683428108417746401810756279591743634545498120318718457508099399256640853421591366012018468562721151177436920308681873038749291612125776617818898971969139519358832925336949530001540765464053135554093224686054813940890905205656606428264969472822912333052196960910423301730359843935354126531580822918338343026550590619514296420094877065076177405031544078560444987925906253281385224099535800435828990964811416798150886677374270012179745061659057453246094141476938148827006541355379389860407591112625975414217241177260182912837561185703882969465348625223309166693801230074119834084543547350969685303939291030786056248125810507619941618035520072192143125141774938645509614554713905936045868467833591405829367769643982815165810929214419931627681556529579719346446023475284753939444137934855101369361201084197011493869748828030750796700767408974443357654970109069072181336366266197413112009383201253578097178948133754618143185861971050282837428740010496127853349752030504437420035159285563931869252844392503409995937107081036433253204978596415556173944083129343703944522695636950702794027982131492253529003725932910850143693401955884684889490672023074629717204242906223007532099624933634642238401732271015724604639053376382699680555141906448182022148048409993802099214585769743016441183647977996055173913859384840693902478902966379190517400413282164252835944212484577818801477101635469824378049190155918372253634825885357687092557537279431933419800377756725449310535060823781622818100792172095180542612606797350885485802011760045573510600015903933144779282126958611443070540321819466461736501641397683543913304541130304293069947459032111912636836802408190835499733850187113256232224334040214665758385605186288487537847408925404834212426926036382502522503502224761655929691982430989963279568106140305253704322545893024553038000818257806776091501072563740690271260548500937776866720455270480680796872782590467190619646179587169115960388241301818597109893993950821674432018665053622842890170033403377212026181938086711408654004350624363802327117206865146954633002535522044537873243530985396955936685086252991184138820055152418174704927169822663234680371031605172562803940336004230745429152139489832826260485139201857461991479461043697881509844651268450936612762570159876246311499301028504522306580836446526909703552775763880538515144003184449908168370556114354055938328514394537929622129135927543097064364401913140359434616979265743815936319526859020087766117598709678595438175350454698306176504585582574491802412040127512187895072703005239473091583444435009394796815572148699120881019143640556070738241528120002817812577908699391276298895581891000114913730066601191330743043796566459909253783401397524688912903620318520460584400648792714784413315725596867154177398583094791465313218976695643576680936671987454503868520262838360661561170626270445060051289430508217452891361860209996680264309686185108748677031064095637489534998667283867171375612067915478904759399380530539847855032691664027503176675250719978462734853665064517759511362630851228446246203552783008146834673456039961820978395314714397559531502668053974997157106900482206188553368830551625083553439111957180907128800880051494979940604089082106419940714290280009734973029227543389260181318098399013163600454558120118467906693467601416873247796272535669929859511695710831343451526015369618669627124001289695242274246293153679184325748390454830040057962661228664658116405475597974000888990141055896576744898335922861948096125174187996089176739536736990355872203553088501683646779470165258106950981164212568589358993416628002294994722280820971496754425947295438435324631144622279316099332777313570139978638731295598276333636499615562056680701721660720494395698972219296590361887719888650516107100251208767602972733133405644551213453546514116655505636339446920306905899447987221689100859167836876342686690032330534188027213861165428809223579259054356988263227019043410019433684765332634394386001697900725437100953039338223139788080195767248007548805002127985608387838057569925629908533990587809328431160073588955374693132333484534059853946525407815389307202458171879442928472564270356727067462450623680503127644264176132629349583028768996848445356253007747078744007391697995173586814371725464091787411496181273034163297192418886118345871126708319036474838833808286701822487440222273159516281328800766343904624072407343555104270878103868794581722158183229671521264366990926761500165522035571576064460477255142802909698901780734714300208133912858986293874625512152994674218299448477597110188933823068515121011712567392506442260407253321760964633255628894280883339950754239784926871084163771139590481353064242788183133360992368967321461295000610564939339723386812368807654212662124813511779404097874563397096336879081519072419642832307813072019027093470579903983203112819825458151992085036447952545502551087085373748217581347284514652915446604219588928374687151404732530492570702642604864347869583218455901218626416911129804400666051046155664517479123786793362705535584270818667638214901604785623992459970666461586752276321798130395331128445454531581932609569729817874941959947798520543565892164463471603505437564791598263344281019044804032454529004616991169716063138038947288789602707792743957584377553754996075347732507380980807641908118172668059337618667120015714324017204591496449663887791890792307884438841471912834317556173795070977656367043160793707729176537452475452048510346724706267162008356537293835046208254110588327253570931969919424446589919466921420928294019483836180685263005011538799604011223863558132694214092990226174915756189096571643222931866995324494452692663421646985734024760430093313467012369810878632474522458782222998461867093087992487520440505252464502494370992789925234374896587134776546239323172563816085880247036453209839655530062722300372495805174114900457424806992640756175326248485140758402051556271868456528575403684814575314630258630629009338056705943685168607279801350467942140984949793296866749829681377706650904395142450524251702664736933427395181739136545775493728128111915773597072030243800613281007162892542738865559941509929656964419881013632956576499482323112370230677107894649040523603294201157283822118557982463464619793940728063767580945560510939662865379931640410625874735626939646127844222747975674396143667132914840419311236401809372799790390042526347039487327789669875231693959323761359200866379308864855129565340967598729036802448320675150580049104806348004539782705265500956609866476909758853473125031703766454801697299860149046161769585876556693660670225292790964976409848198048583456866363922103561780821618916392750330400314116805095235551609033558721053783998552559201395115017002479987396271197265326970218947833346697661810289693254766255177389967918131812114151051334097912314564733108361314157589391210129528280103633735062992931827735192542951239317120896969197010072838911421173352294347778923971422029363387696574537516176520550218593678925764440494387452597702295534331488073252586572267654765875226832630239359461693104101706949741703232228609342951825395139340302909242689962931870138621978736849613534881585735142720766515742845670315788031418982757914583927058386395470156511445666109792788789090920447854398271612673775090053098448678175099396065886695992920273075857238886249671865436092254079839497644212363575266889779480824351369856752527249827245832235890246581373484982327673938353305752016730077304243623346126199904283334289120150304365026354382421514783539932767543759245732645291365444536703924448095555683891828024350422324269980834432198139138939870318508743167016919243800325221449118767253046354695874448302060913643680507139710876855278528404844660982298727032777299779056127915141440598432269430752143464087159919568921737943268024100957929288324998638646985841988761223459466395691035780259404927633697837215905272841624881034245728558522903084090522942496326200537207075037342024192275351942438942053699341053469167106188665903748132229850055910786466523732341696388024391003913754207781253865165624611350864929828072980618978379911526150029738704085991985181530006206275855699189904115366474733650080653887681596185589510379586757707494749280504001078733270249367169648834566552287521456098578262161152531239878328037341809699594016230037105078634073503547410372142476877875343079517656762907547113551896580404290416626782084003188984091751575754839760205105711505658350235752264558213029832548277817651973085090502370044050039164654300823326927052120873683270496814764092553995022680088750615112163135852225209779338325555233920371373006400722567126528003213688299621232181303012994909314996367359254209892514294240605572637790128522129748770179237396074335385309586519625794786393400566972306237367891163642902955341040843622027670860892306665600400994869474550440403761567877621074833204021898282669115423166740750286127881758334154895010457383777919067792812332171750746675091467274816824375833577064244552657276234151502052991553531186074646395267602274717184047020611280637128485756726610929711024337275690423303779963953310188889245167291470539890107789108548159663981653562371725682731982055642013559140787854060063195833919772687557761269170150127629472776012847446871506624335945595713993559205589562175145503511526032174904602127596683206588275984073465934993134743173004394652481286832215960548251366016575859313293661482665362269798410068641280620467087200812186061844996826665532458012662871644094488765710042775547239150418760656648840968256132825521724869355137116561531297519169458457475616596839839226066405411107894952825282330509293256970037020720030249980871714812121644906364488303115707880686505936371516694607699801648578826333551568863926067906412063299938712523392343130381947688079000788349966304454893757267979647686470272076045707048012943756425475905642455801720045440641638798335807465863490422708511712983252949772912864686488065479726425677845422471520472881406519753929990960607491594292207475045448954774493858283088366531023476579602350713478095654529344190560502790936461830266877216099283825162290401311909329352369910065677005142950479794312705117245987869686599848512238951537352851446658015471261361499346834428076283127090392563925399503429267534302890701250869770767276432088532606130391630788898654952738469822085705466940899698069107238461989661123690347681026828825291006585505048771195678375179328790056670446791144462305874132985382543342926543568700394941922129603951174149871692075062530144872042030329101613819992489694527161961854694225289409408663220748888729278122562463578399403429780885955434070109037501452693590708865555733786819959845200517468449186556715674843856337888489730059711776025100613275242270194885067196023904476680543529442417627027553523673596902127360018944286920481578012034278695333480186370510099334160689959018629295699706713276583169156332351105924340169669666400423501900136006950804439798318097722756785600567094067552743590339590105475683425354712445997503868581298739166401709095327095430833609261445841422899184821448624741161775251341386928443516640379448746475542281109429457124527529981031798119980152935420045482868668892746238775041993645570377858611299289137106253323543113141974816162101922779781102731394043792601666687409721396083984314226314570453684041763944839112498422564740841294894747219726809926929210933437130749514703933546838710399758904055306848136880134168738955754869291050280305813464280257726132566535918761299158090868681473354238684002614702275232179715021620105199745544991098457808585509935073245958223722928348615934752805902078184655638058190760500093347822273016946547584647600196948175218811311113835063550480298184842812689687827009141835724383000222349600003745323100659243486061180055388533007372484911689934635866755322625297402335533698166061159344104881597356606165769882026704812801504918402584562440514536824933951030291728764584258207960055835988505478789137546376316545311741429548853524556042311768865570797563022186860636137898842918862761611009625413622019145712047454590409534345658928265291431952363457086713832629245045335555275520054171309352618607658367628821892141209772067325288368989998482947762028872557811557311081507697224603809502127102876652902612202642353468153376968026298296408836781750201615439223304251733378153635495035629143155430068480035773183590324489230146614632513954384654327484333902745076953834156113359712029181609918719303544176445709771776108996216343141211389795587014198307954029388112502456582590664637683333877498829827288918816749366055448028497358005035208312585549092631905863775044841046422460090901747708465499622521087013112441297923936474830145309285853273116883695582329334121081433339064661517835049257756661239013371044494956954384297550875892497891390548017932095853477972742213143122477934074227459437518286021125774706744796824995921474299001100156226058986608684378223092469164780705676302944393539202090565243781540869432076743542141940682924100642564671437833776151725501415352530001066804020406095183537955349158827308373235009485219219493991260359370904431694959380322184436672098761346332464215633931396488909401336292713683179194770502739223549021838481926207151792356254266827425847513298747686670851195234583882277603515728275115162809309916052193251343478953951418002859310014487161514415950474536524254096829279628982858986060628348360675261792866143778052643989953736452538976405031082932451135869683814138521275437889924903640777560420555204934179675537204925556061609433526101796005362452940288328489972628607444519582343882347751722033625477126257608857793062870078659092410307662356330261321906737731204853794633672103630896168010496057475938531822273247504907096561834180913829463457862848685041324314195350155534606838346003873792948174296915317435100697999819967498025887406935012566648567190888596060811401419830987296394709192875928166243203534882557204485074461421295864017194071504266684988871855306925183320459163032654073638689959938183172784813589029243146707817943265200714380153073711289131846083605108209823486877284827967779564149764517750934387629601437256160946525329053314294198223904785394191321041456198991738880914076414756995914632972532580086448803143344168715078623349061327803728775089576196370180463582617031220133948700273635802568786002188575961340338742003505672126801365453939662068092283835628380281233132244774585320318037214467541862072744555503249496168666127438733169531182848595334289857333101625803018349717126623902442392936444434718867133316229507722187802080374051317735516420312841577829035821009651251705963195607628739509929273115715852355808713024316497214852077452634250159868917427614894447334729527098242801869467022469197324022543322616565122992465339626261933227722302993382638810763538147755747854587037792688102030399214994242014510374290592443515040066567937062604270093291809943676559375507942062729315084303944168478094421073052852897559917982236331525904078493047379567397717757167973902148771336412751470143578883850420285866467235453862318076508875493020799168251443299849977353961018998326472007211687713705872757973828223189614221469747324509022935895822546536150826618809069627780516657048983407620532908222690991005899935434243547304320858889979381231670052661613158215292201469225764077412497767614424892179493722577211946457702702227043572473685521111784249846577488927572055587664036616973491012655377566058849564097721937726078204645574737360713191206520539778963005498468336504029406515093682625635159784087337574547658442637404943163191175303606683122536495807530886598138814639390585617972774904529597431308030006745730148385156496585815504664021031438116836046902741210790766630109886157727104163719030592495758589014284539261820633532894088823831689610710562213276740881992695761479012250737522913884407194240322716688932426203334620242034106845450617371959460127228886345222637560316605071054778920650927643470688874572671316767080701445082127837844718008933926405804965722229726122981408472003139446266323612624968944446424233178709198169259974238440535076042704734799765211032852100034929034425849507966068887363084131603683548863753506692924679625950058280459030354598137853820498906147429584195177806526893505570905173858210845487879717835062689551694493885522082315184087092233099649192881316592353243354781041987120864721632351572324861838977069413730300652044051439319080055277755257680489069511732536303954355791409775715947062825572603425991298782404571986780190468579530540243606041941372040546875876513759293756690561184070951683953168045683901624750626593214027284206007340218533633795856093798360183661449826271187525000137393629837352034490266310325618344673571460355507999610127668165884136694287022957430604333015224505095563084640060161392365334300203361783651889888485805408178551244096924426423310423222291553237029014101825435298558939391126694971637565805309147033292989566579598901737651080789112185376128392879635301951987711480033832893328110421596601846880477437007536811932953365856072691444274021724326293053051128468192458463078033669136727196720657645264078471707024885559439956996434559555252128531276345189179110094299069037666218718915049211748147701175635969202578344756943015909385387113666962083321041189438966773770547381117473706778423745863536567216590875347865452406262460004053518731750766835608812719089741915448286782878582725867455913431238195894203728179878690251036905261190750292354925165450270934371892284827453200206397539074872205108706475068961038347096061394152993376592815984721454558900402377422975903329852853384461850943368161066059706501924784046006391939572267877557335633086368686353303653770579897857930722530157199662245381331336765201171491477300464556011265399004489812923268665389737169305504642633706554516446895097382803675859183151916170318007674394295949937450446658205240154354884648199897017671411656721524394683710958562014437813335706929974684423029595286573218244537341288695122160527985801912286952296295851760819541645288005048328222247332482588139930909358812216739668406904600243034863256517534886337100333199145754446483818769717684663699990190789766212199257162759230302360228968676309701876000465297659643841935695496719377971740663669202781681623013532278967571147239823145407602382212323852722581136621539344136678981456581963774049220693003251925190810152042489623894096699413192226813682337718396131849605001927328648837637174032330049387204570128730121327395882764476593086076121402166471259854331685963240278876640544035628485876529696665306158568952211327657242066244447211444082546476000879214323149649934166320447813837337175103790906242577207229857829598477472162291838181041341991423476552150953347270890161323391669188787611711392141962973936379414718393467421266786335043004842113580547061580516971105201789757003871942596458076511530490036507596019352193002694740814302904085948718955101885249164214184128391604108919293814829127007655421138501888547289978961709611591222416717710614884448734274819270917488501160434184090450931916680139068417811239541316236270930013796832502469207493380250493557996931835267892899173621789915296671783698585612545206163736699176314173812515828166494656759769981436236456485398009394306661879422397455199771907913003385767780457391925560268844064470832104194525223429430645948149605200751433754492781487010581806342060834601866200059946637221630421985784975157481384106596243776555338591001265984224141060416500672551582012476361579132206096310640036610263429094983087621001057947176857520134684372672633988653864594396001962968808006398024797041154411763604318522753513197852060982174310398160892406513718370449020636154036160095844657934215436008834773543202824784427871878029597610302367110961754381381446356318972700002124453967699381812942106133456453004009588442483545406344771009080612110878942612867182483682537570442174589823779324145490319578354772738444061878526397740023903013617327580714635237477922025250062853594342862532515898658519598210597163766153563587447879257644206602994398689053603128602918127222133621647001905813956675523661787383974690466789194931840896727301045042007143653157226827425415314972882714583435319754376643326039949204656345233521010962264537187879982763792768487119959912622646884613295245550531906609533156704939516220233927192809126734209320043348043829498723754682138214109561426606274263270193930964512501872181354981468113532860757922440680884438123235676990231248656646107912478488887208597141525921090610450752099363428025219581566857858220534867304764213313971222089429189933982660913354009580354591948323515603662481093756474503217058773011638971357655351625238430834740892510296011132810249670642971266609895529057404108585498468243341617664982552302551573038549076605975920379177158819282817835026783974757159833169161071701082979157999885944299537171394702292527200208175601304865887672958337388551108280584568442166105853261605860899322141967493867243911803323388805382250170745676815636824785956161379525089133124578115667521733571899171848706220948651050639948922060671177762591778089364648760140878681550942425089057578632470452158547154423986584090127411546988647411632264069582998765785281491764601982513722856900271808805792025784237686443872031336062319705628254284861752795460131527801061000861460394540369258154170711308000731287789728355729521711872595056170379875969094446846299017179189937997812311532422289557856122677387464531529106837897375617923539253196454068234172938558023017277242506052032265062951084624945898816768286232468754647485542306092920871285696884936379197354013515147257417312425626794498463600596960786980174034255603635024568621532040242896624059731952633746425722897748626874104503995723458001170429320299118238781487149173575048230870476615897836062092678280805183113886096055236446459466726148242306695755087102075525412913785223548900904628215457205348896389862830754021813343259038114314781940089482331291943955059691710559408346118443460014895337932526941258372904117383503935354167552537095870115659673555697001538908447267310251358355970642263363125165031230872143935825908390701146448620860932915306775560318394008074413033018163876332350838547751409746187478695117707192348752927438035718796347505833081840054778370668855521473213847635292667654281046757156800584064443969500925491855291163749484892588623174653417610384714712352855520214728281982752540247663790692333504942820591366726600818829023567527983280426838488446326196306326332584109750553014003717793691275516683014702239148126820244408553838727481439852740886535948289593226041327771821297717237841201080124003724377025086795065002429939490962322133012072272963146919072118487141465641241185789305066919819814912243038988659981488173799930191650314103180278160392225789354821131590561142186872644388387038781111504156829026306069711826876907287601094488567369169186508790383776377732275446996520152555575455004270621533218964829058345513157901407466601024813499394881505381256563451664807569531383586677569229479920520245767645705975538379069858726937921095908605819451677334103180736562029172042672612412595959307763739470609486057501194156426626868705950610971084548980047701002513550544030253432478197272822196648137344634680997087675750570187304485885304190105906880300201561845852456701876842203960827212843407726869806244960282100820584327272323677955198110570581339262525701076003269883995436498366557033844433738861261851135206085672058333945941663411927302238272375218960951846558185632563386315902238547364030067747711040165083653988420410813411618041639125070678746723859786696742264697315452639375402759923103009267526332414190158054389396701588554242601099970613745204164788663088104132425636580580024321406951118753965104760861208926243315566861362206159670589000149127494536214889207529299808666572738921241415183474870135972280232344667624943319596970293354274816569904523703852665174534638375910110570898002478183603261427121460947851325023204422012627010819284233696165883408840130144596919533356619986321900463065281910418791535589495121731032902226434979441400872399238573236525570796256643777830647840369750038886099989084308568116862252838674001258870799597447003183127684202095861834419265960425371781587155049974350457719517463675697940090356611982125518671262662716970601082109071006686011729874402024152798227328833302357017212958463563879219951585228607547829168266093375897140399364083399757781905199801667014198608299041549791603664229802240342678686375519092796697675218313270025374956179732156058775313623136585272979735647079952559325103639616481774583298064409184026936842327463507322132982775578793110232076289285491880283747562965848966651029106821593091157672608614254762571686440216363104555300138062557444014750356077180467491034127480731627736072966303441687307304916768882667640820966848229727977290388532513005462457489223039563307496624046909599309206035205642651396032273291221720257606136598068188942588485854866096200894248585488466118317286540969201979816982256663810320885110053348549208814013265836560646849640442310131282513703528821364407686054374103504519331797470215859596278792500819763420027791433946688630315060002915297541861410766988656894736897313851442566820481045791326545397501058225407955192504495269844145820840472038316647698840218145422827062149143764424262672383818744803739435408941964224853850005674581699788956948817780473451867390577379224225686391075264122689364321453427182308707384985967815052737392312308744852919646207600104453990247967310302011704898809624449407251101849609682598890072232893214162078934757079239606735089694168525042270543030706072679978911640216252634776089882194643023144028539879222442141328816880276263245911828622245079638563481723620077442078196141537055228135262222451484854599790825959241075619335483581571622785736485798296278695021873212813646829601631548231348817023372783829064140385774274695773809411954712128051779400068487831011122948831262729706811876080434579900576982577120645284047852810176351060259812543500772043865732576308421485756923129962113108869043978747041685944056035166496212686402209571294596369890916630564294006771341620809622139079010912753372041731527085033738280900267529258345759191239780071586596282069904489010588451137974395750003549730277880884831418067453511494274229695665518717873425565453234063030667033841840644576888993754959798065638130850030805155807037834437129319997917800585043358874864878612890947795979255978225222103130295312258200092873434816185982540626340878057323652120174910572904916261726168260976051317442268462743050648505989872088023641354579720143870682654413407062898662695822350836856305960839211738709654541264233720779425284195414562370092841316724779817765932483297941318495448624126586544190876104256883422682275803488460625595771538706362517057899144752024027233130860942253564073348852852928448907247821112780801553297735081434642964008306318479472137998472351494282482256403564436316297570928317362841554442387129716852077203452897678770149084089388335300117141358464027204067178855442439305755535724491119010932766888564967089565912256610193067337678085360135575573233822605459256100561822918424002880354734219101181648145635743891118940053648195179290559479324660877210662829248382891057527997043245012267904912419113281319903043373774052580740563285426479699933474386511298482503065219339056905923180353562705231731981182119814624488193710430857057131694645585781958635779609280993350352710817577084378602870157298939077293404084391578756246942824698173876121848226025871877022374183120115134480218462827435951861055215881997841959599885697057563289836804611537461137324815670297471170629515794173438431971333632183714782235574883328955421753634680916293311197214895083471477145904552256758516753170637291375784389200643304996908771656907294187720166040556505367735604808505724626556316438734607426392358493644211602177833300961755402174592598080163560611541879793660088787205951075620089259831594568292742480594182351990932451748785614156540368444951183126638001334914361520466693417209323226725087080824404638449884269899778898097792144737194830263461266626261943116849514582024301069807636192699735264695315901604238727446338013228914514749221087610072690520462941409841689679641714128326495284712592500020104238644202691501888723550580278003954176706827069124255339829679767041362515703227341073593477714725218839387613112830368774276195759562542856909267376386120889100250106749494044106599900864730623264387924895061010428230798651082565070521096864401222012878842410203755715065367247406045781484801312801765561783122795085669644078818767242673367922226901290368567927553415446536565861709637382442513376542040374555526341724676526473914260277248084915354083980847303537193849975015118107201806004350353760567270730562957813288081268930732087011439355817209405969577024681252330426223307382856911669086483448546618001771143173180573534207046153977046456547949132673731901019569050433865380183352087624392383343698751973565210493598202856842758079392678983414561325382221920282854934969345489342402548726475799058032855348768425696179968793810105036667768336075809998156762466525549237328150699776892830692424485138987061283582943817180472574664773306817501576496415231936051318170384967935011615548321179478347180493921491900094496086007463549328047725485372372438647136176920979060147532945635039654890751764299865817020178430421758307802696199250093934222361737632633977399492554850424629017046724488999728109158186565607019997670354502096182884817573026506100146206901100989832774164958686325620748779610030033754403526904145168982550099782549163984049764439164627673792670304111095328114312711016550406746332830517951362217225189532301057266417452357852029354034307962477917706833346302259698321582787626281106846278740990835267531038633904240716730234609419371985567008513727130358306373277197637308521918462381123236600055664628199074403780669906550812115023182254701041180608142453609292096590734801610493634115058309084693863266701413170785681392721240908666761006487848991156793809867538398142930292717298241796424146643268414056138847869651847019831885736110116708458218450464546950024861973597278527557429983178698148344472110159174590586550793540892881508823800971675548534924191250847797342218815146041798487054602757855195941253545572105394795008182093387877552028047047618275127656464983717846185435672141751740162353203499359302580836940576527696223660311899715228790379251526375896737158726395901982408459962365675462463472395375537958468661028937476234496873111837096368315788190946169060392222801275979688051112717853342444437161118938306996649986675002523942686788468665059091958583182067977317273317583642692452307858754611709046305355932370675007382215618932578317603333985325262365574140021142825379536584031841098197465855998485699300268354012163589662311681589565431248957566776754213093309482177024779907866066880290381827073987418931588763671805193194324756905493572245536034116279500028226113152316570149807750388401640608869728750146311969479511225348869626258605091223037213691453096885529199946514664604942579186414661820373718404266902107748279850557345871303264048983431088383926225259576645679840981015826407989217955046617476728537616357264912593418926136657014948884040329914769876869143044958119622201781738927618569023782992836059855195279136785757594586092081910778345804100564304225244310374558559611593539625022081960536808177699236742348645408906965099901748628431803066837787577336321006459284342714762100670026449076167091530463698294671175438686005324509419869733478900083749569310183632987315763326597476578927453491484823776938449123656694370545729146431020178900069104295508074148905913810573815150022360185875079046921015092873705945776304435602022916175774187228889699991607543394117900476265134046356884718676042102521499797712420465437555048907446525677223069861525890124466909442040536603663311447176572986800700055113421113991166340519403330005945183871252438209995278986861938575595563738169155624290552489305152980656012550465631033256601891508986544953151081640125786808853550654869474534548988534195934084833773259174604029792344263413319569542815145144529850810465683764831952272767999450289111908433808132051450098957902579474681771448545724674688263741010614540192482897791951583434355407951352889814079601100642436651266796503959008324878921127230607792053290852089716443352591766856904403317444902990886729908466000408194459119516970251105839277594674744379635198631430495872528884099273490496243885041801795441415938703100037094406555043633731162736777608040863522132711156783678835627118825584923253963539385116725736294053462533361295557059229769928200085399309672445840379811859580946286266808479178287579966414786311425280127177679939663070244313341128922895050271290051815834356749728243149875103595441950282405064448264724359370049237703766255148239716027936003544122727050612226677992868919027160092731941305448230902809544944032447523675587140997794184850650976685913133977577206956084909098511118330830459461878484682187247549470659094647287161448282394792851607013406227958936487672625876787325290907815741007396560967984386796551195199860736409433360792767159175452485132750748905121409639499197545349217747220610028679960541187262330005790908220214518272068035935192195485449926298375449996827886097520260027347895885813744493644673102332214716619687891743002449173454286837137067638091104149267203372605182432413866136225338256150114769224479970224213457080943205575904251534800523011363075079797494042013941165480129508836198685498263739697279111991192225857308215941559398776654773084975034652927071155662471635319369578011501946764396599277948379781345793260967762243549840542542796933647408894568267265640413240902383074749819428830950267546318296404860780376725718772440831398688910050343295850324251165972594697242595165911936513789535322902130706963183006820097273812920952857710396708314070551304354448764701662376507301281467667114099500316501940876344744365208014995290580563102390194487600309576747710439301576858413105183141054872418155242924651899261017318736650533823718281903057444641399436158586277790650999511578017171992972704307621707297638172323082057010496166330970637831534487967527450630036764578799910787202058717807853115261411508201790862898925930285094537670772973178636148850388133131721934338470995162186646327408925923443350909740570366213583810340709074971064042594260440892983083949749167336301086029993515787907693493381852041148909050458264025224066550452139964826569695263361822261661101341838150063545545074483932203236748190864583353355405809532034276259941616386597713331148408959990840072597831916589993952948654474878432220425087553028086490332262680665978507298540116267799030551440039666834419203829615280106989478974832871618916139162278353975117161790540885034056747303736013142028297267075605483459255523488155232394366036757678963385538586192951592104316113159002532705555118062113969917631228970480739273668527042979901484316354827567615710007086952618548013616009984678542195705275072992095265137500261187278334417533541031655083682148262146272207497142702378971562884786366554174509895879932918472657411978056543792056354354677231849135930616755560736399307607479009513741386301639944245516370777775522190149084336058884787906925551268684928056345596391931884779031664402985464795300678517905331314710631235944498114645143193999514148992776774456429299480447622474426622936326980353572639679160725721771688578933723304866439137718883568353351706859318103528132338777426743393034716380372257305887782537216350404204262060674828140031423155982489796311761475211799897263289232738902967954826501077437807641826609792258707221421240712422224008566454300187156215132334356784255485181548518286623482110214658441118301039634780872849537528250794651825276652427041072005831071999818374147476529924666466109207808993950438619331004601815682374826081415178304814211591349117296538793832820687623377744597692154878874355563604281703273956815165632189048045360908755515835327319432641435956260274444840749399560269396926181493147624681906082630358039193214842961443614370386066697890123357565747480898178076650430614898045056355532729306305237776679183328631145388873717008909530569318361295430783062724433708433293235406491626115175494958312578264626599581379953271983560816692506474970364908583915023158855541542465815174159395242900231600156285206904185879123062387036082848611557852820984593927292989288487064238985136676019457526922741288283186905390012275848773736620087629488288557702894219389089474452291141640224673482098462481158399530276403025139474619910598067923149489049950182858500339159303949940258286400718581795980457200384215949581567746468580355713586914280572719536839540422373095544799425679012603434645758536481086025835324413578066440407113564240146837916662372415086360335465944119902077808361773868666181070730839100189212361930833338217992868610714844635507321649625054432768607855326524533752267314627669536962378376819395465851744308505037485286163563031696766105764011705192844611389235937839753132503195409769128557586572476661114400314461643045874141684355100848467208872836611015916870676866989376554780625144418500400695327334577937153096787855871993619058979343613794724592069084928492950907130319477990526428081627329736591871962303649820177331738994435832603914644440454748758818965839332231652328327372114869884548170592591132402745910779061261490964447630392536476054613116882521330010908595232561184453176622578672746673555444482561042586764872395727792423986566371089604745762909230778973529033302107543945706255557344001707741457374733846361894973333707594392439041539824775848190995415692991586998689182960703165414965876159528143309584865074251733109937042310217632092284710496078462619010252462246948237423626306334321471843545605073874095589313447014649369708641410925065541032641023934983726433019699523718302640825872715382036223831256449270613421624502300927869553209441761221564080402499489755041021245965148575013699051699305737288292866286858887750052338110623694423267802731197705398866299638362213082066799778436392217180371060271687334998855308065966255956550430171902290194358060889782817510926340833462374232434151659508021706274063026450647281975408349577826584134768119641175897924116359040524000690470882662074274692853161678925052660007558108924845645723474268347528761425273076385450604759513693262823767848406467215999013187550032935342294576131183195702693698160883940949876135732635167168250943954858850727866500910882432454782754359521301000890362701627901786313639586093301078465598879425809039359051564918363505369710672912525176708284496701257493183482857180407868095037620522417432979139468574970485986343151316454640596774297430047703864868876675156109933784600935522815719513130198606863293867351291233206116879514109926226433430407159154711208876000570051980947865113523617087811843263519138987891086923075968668129619898077063936151007453161294559026035245705651473932764692147119111913561687629969137266960680768051230199296225120892509997713725884822044740185189108453232667121927674285110710680671297877197688965716410696914107013503967208746221936257192908821973853944002272640245735403661737664252054459175787329835467339826111098042071122236001237690381612985683994664288262330404193996129362960617028960207346895559635544350032807435357828236086920520201025378812237514092785405718263074198522327699417650892346173315764911288950107480156887282264994524092355038354607993019553352394726140585758233449241515418752531191386881914519748985605380246271650269001580092853645223697366190069851457681615571820341028295812835123816769554296879836569691095662041178726664454678610576310376632819298633637534685060503287025361034511869632742493761209254815953700646964398869323095555010873997113520641122615793810453180283778174431703957156802741458201127507318511522450358583594531089834568114635051161423622546146679606032274513755341218846679905719069944032956548551589471475177049255401816529206274541150167238127663549268696805692867663134657270582634437991049079289652125254656795901774451736616705592136346253978260323900818990082276442840152945861525777362100139259083920250666087978188941314321199426490086543603046206608383987497449831193418410470825791268316824161380673102361532222782165727970640494877517286530364479953608856349370975561373125563082228924351685341168646335173684390930094695754173650829453546897595647285339799102733187330033504275024086195546601849783287657549179853776684684920338269799553480967582020311848469568306330702912916051514714610336617540098434722659010202722036438581904085237159573246676534363378704066426999343525393550548839337454048560602226565134738209238457072565425957069398144115219775619598489807550223892776235409421518204927404753346928251536387146821457537833277106953961110842670099030882769789372485036924723543840696361572987159422616411947426098834536843828340720425098352865406635361968910471454044022137825729611902995074161535375203132923509377228725428497758338765802773992871273411223154790670474964388150342830584733215735837464086787623485420099276428272818252742171213956366569200079193943720205153185613171529378481004094863961846507600834477919587373505066971360336385904544720370263840603061856518555464436522951183512914724940528480826116202815829291703379255915992322351279705762719971247132160897007866841150182686660262893980697736803091193171435044750486701053640062177931130810601439217356738557409786322057064816343709271100432215245287475738844718261803559155923906535391002435145835222625199770373378307673412747939800691153798546111495074018482935232110114853189909357483457599881054559109128219999899427263519335179066595808557210050479112891350796005250369528614451537394593645795646416738293488058594846092131907834050167796238941281189088021991300524443367506506567901766607757510764149463377272464951586975506333587783815773139940697960411357474914060397360308827234603783556688631261191761342776075163058292111607831942527714714224073830306885381983041329086620984601519691240820606592522860194899239921551630899627952744886102939912660955353804467621827498163778029921968773282966974559427808058754360642949576876688823676376707593311479462753331984110313330541547355501995422177345568096816429433791397696016838283057496451365343669086504237557126466133252271783403399194234754551407761833321106333207737642832261883169797192760475520108175684287369861133944106893695309532915855847476463605805160637028980617391806833517379106732538642031697294471239523131376292763688450356394233380952668572932477432413504833706386232609110919179437997305717978282989369835903298382827460785066204492425092613889510408162942609458398957830776055857478899054359707331840326202205088518064226393153829562839841263637079206652189506011195019021138886167471742901437119248594392288499415918741817403686045072632340552382894794612454867113554465834772998643819296653798046811422852995364102333537174275013917410134240760861177302534013948432050957082523577465666936398856569383534544394181854199530990452946633617275042995134319590485474857261524101929280135135964416501269600092284825607312137363674348919396332151154560890162925419136640406294510623428841473249937217166812608767838708589184269537075770712148049304843403320624881227402172413670009229345383746345260025915941291886196162514138823149410141824727805438163204488709296180321307731992965496979210245267084378646652826234596130870397080998967636216814349827805462643903632282473585706748521256137305075015719668540889916076190161822627043150845982465627305901172585388754017714305436760954356274775623604160872915329452606844775067370505834905139180892989185399587684782843592111105449574562007399400111900458023473471646147339694676334459540610264839304915417070275375857860103618734104861631982461556273231738776605328898931223675085987840947393139648703759089036515869978205659945139847656619380661811524898518096959607387270693813875016207156021344867082995597269964001400635357606963864779652884248018600117276700223335080981031336753449372557936583717289303599722181796931515305374285557595687935654449331219978015348825840372709402872397473885545634037319263453278057229519648135105648812636667471818302595335726585295424426150725045019070140072032830547086964596771119639125428204006391841560177906717305451154549545815024434689081691402099149912624083665773946587855119348123469397863069964546763979516299896998586447121700994037226870993459847790440843883850966608696421058688298510435729716805087270562753706987555206270830148403692269057343533285147487686346596451557722759755176364889255317015538684833807779179407710195013991490387227925194776033403393804133931779447483105459444234001837817421521488399877778323352930613011813791780877714603639480970901263427293928848892547804999159277478660903843981052380265035076120194508297198844111259658624533980140169680219163912874709045327317996551863441715299546628297627385142018996535062545689871767988068517928854936603679463292863647505630308009978557928541527561845449518096149261588062012904345316124636290016752010243485637049176875946944857574029076917197987742085738735018087849921445338143008575398651009061733972469101631901381813601305504028599573840221680763287903834669995350115748649057211019400810666920657237705676467877092454561106367139778818242774489646872555098375612676785256846256062275134740926795212563553850706328848158384782482583712345379558023314584700185938107530579621028464370974248483838759564749316259976352173167597975525419735275237437468956561807178373944423996937278987379304195973518302977611926057604737858062521972829619957739575006816570419219187459476005926667618294817910243184354582941000160881300424301256322566258292540246041264768192809812496844131960817573829687886911515807541449399676025481874254693732975445638779972872513319356523062734707877770947514001140068463845905145510729016410550846543006976301046488660839551781956217177310520441079346279840074147016165837669204934314096793338774867511953611212350624657308167265645423196592016005679845669539404350758769117353169993095580065814216802629944936503444019964775207140480348813293663242604526716340773907422672705174920350394858436847844445378194171599980310976991365024036860211080702022236149764815693659520047740143282565642127278473770710411680286418046037956512891348620615803075543685052011381230161280601432657515657858324363974912317794931804465429543125093450414849923390062007406515193805142112791403348173088765907774749639383757953401852236759392821752292990698465847276494961452305867941316066322257198935799008242171300063931599710458473525906915401874677605595823312533326809395070408890752002163214747488662809805523998504855211047161198348119888682689062260611446631500951732592453687386033733948446761652277422966660112438571452482277968056786017259314091029514043477284389246622255027622113634593618886111442480613423589488189045569095012235858471388877204044683104279373463965686428225390225456295144442245281379678368801670577018203320173101333864677908893412564890615031447817294988937033875147883484675815765451054047702102047805243761500772523088797286245793802228710821229443371275058343271485422383521185088184865110850980183384720702656353183951667181412276547856851885957468338192574963731705445401524598685658539091415043473293090423697155914569841633054003592184049283750750648350864064210747047864243596917483373187485969703684623775503006437014764341130622933600435309704945559121672482203096371638196114859252336093838560198637486965287201190678501964366864409779550753014860980389370626725720888813854582554306892455403636640970168376110380116919946365498539707346525122744766826402592473631157437693616298301164626490931748334759648057023487116230539448064409950021766227201229624152687869458590247820188010570320832626390310688795261869967046533053679806917409191967425795414020619396752143983550487988375305881941314758697305225409741947781597198196198615669088736250123002437134466963673572319942500057626810956728170629877817307974795848151967433001855614867608243003235028567734937134195919308306973905005697538703117653769036156206569417149949480994731957377020272499109629528997096297932744493693019363847566912666309943876032691685391667530196833409411139926159724278168341503902152189690705651580594904651940402278235578682876059577649569117200106540848400452371637643242419443805823874323184966134427287330541112248217219475668605613510593701261604942974898113202684891307961544967264196506775545673680264276533092956387688739741920376079297352865831162530554242872723879182033437730653730825706555062352961821163775488947369597444272919555526390092570381105802417190834491081275172863319187889458294067860277635112815504929736561233450416677712285965512603275978553407518672032914951944646619338150776036557869203958197570975956181949013922666840651944804460639745872062920375053115039418096619146875668100830683073042972157315095589410793647800176897893338033904277527532461025525683737325286964431679738689705722865131614444950051448038772956272222967230602306789881250853336598622390947685643204594789073339769528161303604904038762605691793911253994960974662272528908525582834717382630166720715427012710062060169639650470078344275259323894318242564480754735129608903245310015570673189392570353648140355976278643305630297995448750774504263472028728875665473315424141871666271946187322931541018685816466379177955172522606123489453276988422939004261987412776576396845143131379703588873754796434192321490499568625141081175763258343922796742308285299988660427786458142474369071343505317938980080033109848637754888038415525551215508803048196992487889442876443852200890453223603385371993096468997698703151847713862330573755186865742842281751254011183809085619460999027634475756479337566884982330119581875288999211370699994583724013437186428631037720615516016762921614365899276286848751604209707438725078579090151697385241727839891964043754729698568119397119217280150120550174320963049762361433169080789492245989654781796316923951373501246412513013485954985729724518215411550366037238621257412386166603897695316416679014408351633487890685959189338268157372096123267013590882394087290105042278957005310586862311544682303629260852691305028851073410387126470372889370900710693367865805874884262278488350120308856446433737374433273591696747300073667449893632362507658104605453283775216249465102970284931097814782491813888644396693225265018321285702756479033311796111827924713142527375701622430969819924702028017908925506258116557992089890200812365448980334722480353096332765469455267949902148162704952336581223371678605645351578140454328962344471047766931740218570227859411666620305510119934974422783539840946410007900365531482562789059782049309769886663627556381140613719511167964950762775088666193859911400188740097314089201279334123224217921199619103776341150302341933566499750267296158372646214636077621941261273406040357214045270824819792273277371316330782075450945674365415285403817328447959645176383262729658203624065002875752918157904863283033106576549722906342347742744123152579482159358522170099374550068715412663114819779732541933864108531392919720995993011794802361640238907296511324822473611776828285761333241971069699390419318446100574636807222271732672919635078519631212253356518308181067951697194989360826627962586092401821305040337908548577443986950296292694734995100375727727749438752932475940391360081532436299648969648294422882230079840690422303264126757081647342682031101429869506984787799219507655585723214728300255908577636564209952912133666209638296751851344270859071714749476014653722942550864352808000308691376713738985519873341404994667547080337909695132801210590711197857864965989957955624369595438951166353190747144846541883043952015109344426048574426257410845600446219538152745280810540729083327999841877532312506835250562492133342976890013078913922866141525979455053805076341295538742104651185501503685843698065283923755527092084041443498960949076868850444706340915320886520403481211069738861706445904129134868587417919394361452761504373841304244609906989962003670177804209530729100134487974084456151766434018957943351078035644812548751413011373018878710273377353608700271580235875581622641125682892787895755241740508601879147773066446976415774172279280676131311574991226044816718070693359993234231298101160746061413175102821115803562827925472288168045514696977628751812974567897336965932444978240953269754254484879476334645318516002174390001685397611678974967725144069292060398224813388908486479942084174008295575129469135099423149714791976806419389125460570766052047937854182982061670526406329411963675015883157757616639936417333586215052672553462199479084671764901117723520501848987236836216730845049693229194552671480270761857172123628007635240601014056811398850980183289907963925991089058508559681361508571888359412422488734970469810021921500085367454946650997889673712842095406398079889267459872417036798678060826200340169051770067087159076031974705236194754188835863727231909366274641033908557389504240011313967476905798148006019882781262220390916710778392857113783764550711471631487539410797815711668291843872030209074037579640432753067118876556768984076784253473710840597121752293195556007668510598174350178286244063756833192250887906479899944729432319967500177518764568179380075959895160596170580754361993614115942760903182341773781575667791024226674191031561848926934140451736750791356039344592478059470256886943748775738701225859639490327098811602810986454142662116837958041869350794702785282287306537907749779056386535818238584292130519475691865093868014779780994171376891183296491872023680662943359470807845769749616183688040127013831748105448704628831502198380688502157532613349024495804325708784689209467834914954690337143145986893267848245440467547815504740925184731573763129134701103593293058119026027145745142473871041366084263049221710941202795347780084882816472712397681067049213463901906546901501610056562660658101278048484164042388183060877187346818200126227300749845472269072782064607877897455728820569970922966351539926213449301613499024148258016500941214998808354567391080070272542569074524777541314960435400838664977378229565431033169433924615432455065064633564924304688322375379726943901244459921919017447155087928682233933797135107660431913600639922404801544521932540991600699889806969711981817946630898205346148479622597503556376580791086374731500220271947094539341904997919932002844412450242720084481439161474522115820969628048844720107628433730681399147054366530196130999019887721239563098729479558701772494965160979228129690649553807057650419284650414302769892342351000759852687090266856209633530269580114269618382779964738748373872019320926437071254345460149664388202946195644378679763319209523898888161264860534578941728556833118182674602374359355036868095973114989517959993733985129923171408828794270472593372046192286637318269999548537489710136948044334673289120334938745113798611361731239802701509262357767857723827189543615187449985803591860441909842307368761252294368041246705713141109575972965952503840166047936905430244831945163037179641842842660304698046900752850647096932694797596032772807461855291800689882246283817968510091130821297085769155328784789022997910190301126784205681119225036992152189995385438277706442467110842399460086788213397568380850324871703588885139653257833540368890039231051964374620159969243860949289657200976059141993856122751172331079854859502703082155189480314029053170025623913621302141512708930111288499576976169188646568855261847425377153685432777538589749324592994246401729647135181707318403774654560956164553194017531236931595929141916177354134825969940440997388723008185656142827237424811756168128323846602892445925490520967135544809653832003796024448243203271098762345455768487067155506735482669577608560157643854039976673924982716032562992708047297713751004897549743686204548393658540707271748254057628257918755374105140538440653512047438391146611532908948938343924337433739581061953508907736349392022182989777981619132589787316020752223828980078011064053981517783263182428518115090223483871862176675260897870380547482298826897237929433105857116293311955301709828611975959154311527145215023238795831425888934690225762024241248194945859142056396756494796364484940945565420166433189014136386419665730439274818153214549640409395056413325695982873720726737978356779158475710312034523182268674333788555388913628707424384903500775444790047191944755450471329813546795578900340583590778244319404029327486979065772297388109894389283112595774688519372093267125887210966491757210044723538070491700608865271872822304167484929698860473503876544362616734142124999887254220648743359076256687710337507620408251365183975541275045584399133564021193040373481976479439546866683391749274791378653826795359009146964272596897658548524713179334760400442426403151863961665382465718524492128647413092224720956828293366682055079533929154865710903383022251830658553996404760205560267623719677223832129981497250869872960337534187975623970535402595329467110943366545211388152248040717458386372396574765790157317900481148682236561457677730170188279900690105092348126454209831950083806862702372012844620775511350714086835608776339704370516782878000499977915667761704574381223445122125555827582153986937719325726621867319406399456054636770128937373228547342599768906469340921175610065562814612471714218604286788482271248659367694550437530650666519219428938184606939489195798742056229074349453801722859594949997985743203129552424193941449984024371114380818531917623064581866605183513674875259084171070113956092487312331283796744376684994616217089901613800803558127507752240892366830243231418590780278170836980069833930704557850839793298632647460034244100515414026789639259173281719678929562575343102211631580977729258814549900838421692653150370655074787395242118755564708686004027374006237807157928326128982079984817115274871403142822002155908998493921294126975224274086100664955352935604776995497831069073859378548606405816172910009720719073605213987517868423854806480335954373526371412254752045052617831136634241076065352725497509785595826593991249509166535308093247683536777979732138243558410471391911888547103935268646659775530110141986065044229374214591616139848480770894424804326073374598974549236082673472698764980205058035221134174834186387548658029878860736659909494349757113910799260334664749088776479497317822907793774613839351612444004644754736797985854398534969973976186550204354428139640665631819448853157611155022037186317732839247156974838066947160045487258439291732683176111281043674585388108143534920377238226824579306473643850276202462841115450647421863834850032221164577758071790324192145314345773991154328652325736411491077065647539988139103992668789489873948400860544599182150805945420936402030746566318500443900427674984790184458054971154742268712802780976076709665030436060850127993722498158311854870738345827781426501992318504113706901579836607616863034368429812373479283406622645878644963680931247701642101148912766296281493566774887689082593444341760779091642531672715606361839884015016488372631551583967918974769859753250585283529138694502935985162641561325983553458840767367667789246858966883878523365379743955526229712308689917343693991699071973626136755042536909788353269786631889930163730669471473441193062063486003352683962324046768114394223577985803855023029884410651209276857034194868029188098587624670017734981279990241760095124122598141471858299473947092327834959992737428132028321788847355663694042707116956944768977691563258085363675084150701265478937885246891789428427007610523697738720066708605549445564366407337360698536572392206481139006080078241826979954591120880960353041411835876484984966442681952119394488158856681965452764151562232577656737240164117144051103365733836302138497502157931869324333988358341133806291506175570837311577532356571724100255205256854831766803602614819559502930323912495208718433160247992963481949047647647366423559683450013061041929026889304090814510770206851774540605806364251644686701255605230807266630465895670920106719373172927302910448812596836187148311143331905670795032044293521821641510689642083904592740090545971185405717523686576347209384484696723669851814469876077977654523009259466037994104887232841985145851475878149370845521631252319375717674971795659609610115235047367966965523055242080800523926022697990133057432990332137622652010393608866589131817409906627501168787534982882910859067190468076951879900691164060204433911532343690354298417888601130584524001423886308343142008679160673353109978024235591155518444081671401698643574999159014594643632308181014158329099131509933870691835850383332104569600692702186985360964365722563974238096637132597051454576859344347628032156283486220613024618882270923729559162304636938147485053970323427597943599271433139805022584470463328122277016537533917324994249319814754966985660973658780653664282810277207461576681882091837157721921431221506057050861617244842662955073760485939921314265402517820436538975065597951687729212511145671256834136287424430291195880172521244242860419763513086816561310836640646200261371036423686851612571138967780103975075441908398367084864742676975740371880511154832494126312331769048045070232276571116961327396007469752715520041931217872038015445964792446609575215458447727388301513803986150282842367403709456484668444344774026038693524923772547192286078576189284476297755663225688699651040256179971467870525805294181626787205631844578666433586731050670251728907226879152432593595296022762831254509079740673207405427814436151331966845538260890558596006565733336018563840375391481715363578738498454172644463478172111307756828628822777218682230247777532166979540821329570345209906593907710191998772929323610733109278828051312038440864362522111853263464015083065973193315326945141440422174365237419550656490357925265953303466346183883921055209608137279221535172009824278473432994815188184572996776395318085529724110933042423425694871633975062624555515262231975085856216973656339258993877149307446407337771021160212014869005058340335924049756993431386353266553653459818627877958023510728707394483664013985598959103059026318218134477938234070138409536980425234639339023610233308773068678466026045327120298314419529210694182642033992010267677728543952212200744744456320751144783819089454785268087187538123649847677213166342031495923671973493781423537959844574496509233192314825050090279766274095133519268027177829472197109724164934975883198587604144946095501732115241209629327061155763829466259391618676315096103578229626696241758418786237830610842046061771247232352632270392359035434754517294279053586912547347736545269364996021821109732427246638057107594835890221099617708778932832230437782070613852658831351163232240211341157740000787433453969382151962324466487501112609654119886205294479765548062496895650602770081606642500088418741351035449624569723196216718282628705020578991941409239212880792000722314851486191999317095507559141330553419491299655813794799255385793810851035282299990016875626516903769375807979858501900535297257148746849061029766236666356508812745355690723598479837265209359419105748992409392282986258853879973272216126193270128913789281242964410714140512243992203982416338965958053401283327268578333330676351584298160398571113655393051034653427889505860900079006897780594670348354673236036205853372533733708695131227657374909181200089169481390738510165988911112752837506442582062882047798686016895846751226734962821387202788774308743465521909824741063425144835282794654685991633881075916511663819075535280675405294789469354753429005543715551901334273099567065809522191608692122983736453789272288762926982389703693704057712762841325253422507839624601603714071502149785311782667925166476528133153690871267688291938292995219433651684582085854455149561017802094379915564323112867036279874703016127481546970405845772144502985955778420819074347094253908443202025403070638457058645573949508788631934783992688762283858542476791266585051519477979467504101160993190679555320793293538717133038954077761128174131247112848540493282372574904579115260773915216540482810604553200007986895134315728261950717925851300872528921018483242942602463372557346988568932299923149419288173983361085697522556450701569430514763570552647005042028411847122336311683659585203645530614746039818316928536652231422332965103042337012363602441391831009302731166958387794349223994036932947415701457676932361718251401013526715552604413486687118699919374602543021542202378682738403059653422609357043271329218993707251424030080593787131648742071117884525134434139924139788688792450666122175438278530063494750213301746036788791944466195745228507862574825900634260340454742535412611613375409821742121088014507272393013487969910280791317528039749391854506310456664980257428256708862901231641941275659751897001561374235879841119182015138279518277235977332241299671968958658156022106746153293016775149893093780924650483884803341670238200240177446272421894080870586560110166791618125338562299967885122460378264725922448865039572411921791719866669995580600169299886686672639391481316878835544669501625894532229202710588086592864171410294116526293333627324972271201017033651478421384822831529312086426042795788287151908473604735456608252322969083643306723152036444448748051967374730723258641296174383577281354350131787103298912886831039064372499542974381264656383477837148957477043210638545359399121726737199835871386263921549148697403953483610465628669259820946520453885479100568254757117251205742710430467471488682061922374049641672401102257848560757634480034401145097273779446537573367050339033979341407728495417114737776585047029176682148383640076387474436126736151315069547470811422098239780479984645759224884018745026883424209710472226423303512562304933250609704447148490075296499598766860812163016549893041160964687452775156998288415887524810168138727082118977811961794422788529806693023452832725549800109706152572547872017253326052540786433276044315513960947500324727174722607722523365550637229554045061244950514925163372080228009598039382630387130210093562814812123556299818466275064707574342763662889147638369952167928733329837392568843162317456261244815574394677794826412506092840618442219521536111884982427234831068850338955745298015848024544695534130501528339335824665978674286019198289310581859257443722394695955886165564220896871219359352798494524532153642990359745401870591940427378879850237846042556083658963982716001113543315991693246524205008343210860195978244475573081270179302264231766736609483018381952719023692064709293896242466210638805307912113328288067551972022720192457105609011581590830437777317831192665459181055479965037262659357906410035191531622442328988320483430183853364449220911666301861552267819786041232403872713737727701961493421970331919304435086327472359382726021259978253109784432885021191632263336918467135792601661997138877069872264514748869586337932759667270365429966185143725898579508763063816500002885162754263795557981903010616271701285431350233479807580751223581486500826829673882684168566535762925598364348733940506664115977573233611039112907274641820791790755756853039125250996252445749790615390988586785844076356165645206974374806008374462553218571671235641217345503487456488961884770249100579502306495716278472212741920577842392504697317352215207689635400064149581209319799675015611737569559677644403471916694910152011823120621470725093456728453551513145361687462794526471592954930929760976349000467069791725084875626893919355211792395723940245396107925720637173393366474221024506511038297654156978677748684120909403949649502900744027877982605780262243925883834556002909195743818060446538219524591702201071994785438825960959342655054557992424520317910776117519062468614130816011585294188332062832519571994636876808688979602832378753167384556825509027885451424043699133556869009602982022386285478472767976764557926224812631908476400344069483883562657743015699306534773797654272964800009518232723109963650577533247321530605934526665695936543734457914503452574305637428325370342808982011383761811533364331343722306000069872211273071808499014279242326936932131290961696213286534622369914078012484674437845918557424093314241941395135228368774389318884477743453455183227811592231553262027265938234896138551514821979445236303627221429327113027076498138640235976230991857593177799105317852545508849760001871571824045926045137202420392628163746877910884591516936667926996444184655497904833158144546241883458000194532735515401524789668374568593316525335528431594340308010619986840390500748901178810977024755896227570562574841281345888716717571429254397113617454706501501268622762528037284261761373807159807474208920438615922561661351240507334492528275730202853137740692248790646078989822285497287370650006821233832049254372721743597661286158553565381650922166731376653328294854339087777214915015889986406720325058746208624665583120214527213818946371572520934022139864665089327938322413693402384983352382900621954153199290908842731780758868075271170564576985221251821560240152769626414637554127952907020375831588661438541995220230260234327669545277564118256129460573931823878122266292047309017566844951840539299242507108590667781531354385644808196453553834383145206627476531577340567212433233897904380611159247056282536667487936430242690465667792661250125896886783862844084798101177802977740239296897771759837423498389963437089453161568132122096610097849373840474221458761230020032259263482499039113526811562236962472832165191024239444065507663693700204345249579778400340277867359806835382163928970995331593828257698477434237641708765015594604198162610984168018982376780814204931321920457284188315254299795565097659518549441331964499671186889186257952568306957627504478960942557682504241483977472671555397715946171953083287863327909249768796142547216919042921172983390008002469529994150570521445903345667469774493301634650371113138008677711393519754230225268169591504153227777032248440214942845860698907835110275207114850179824981613726707662556287054525330710978009924304917816195882263736390161394319871479461358214273368672406046250422412610362588697736130335905167167675911625478402367506116200133661910132248678764614560231999932107745153403561757350622843671520976531569514367519485311772901706997858105814093705356710058035719201651232856168270213122724502457039823017648928450516508350205453389689841318340367469345634552594485536816862978188191015770586471783796017154384687677904610554223993188899365856427258532591280189839560378852197888730875898037940844215561654809913149836523063803499868686485461845284103714577500839336781555406237348625147002324173484564236286683644571535933997551384136638796628672970308518216802961717745511755806357440168365389203569514947286870497280081752907750474279783230852259279662855896127854135861859715844980509846885475514366836190283590963326866981014015967316211312996436861365126345134542537268683409587079165103265893627711849359005656228802358152018897406106908547294202696758328414634459108727562478925082669157791060136722449895305145445330135129359331049310400627667919663261932638507587113915131309591189018366269268489446760633514345862753471663293513060336247082868875139017464744293256470841178009393652029428428050674660741875366394303519655926155284703330402435340242255144116222288429507544672778707763525032154019264332430394345089551176954024413099707080919688392473186211001568783982991610905798775653769854912304330614737074437109173913604824664336615598936255034111317993206542286556818705717067577615706869006689211715821349892731656698343403593054465562490006305929919296953011991001047046320045058963593176347123604907669208181673131425228185161146129455076877940419812916691543352007215789295544862317756822136170724443913606849133781639148045535712542741462094266465806872053462945428185734789478482699687447955001429387503064320874891887210037156504468868809422880648578426707390465415791946458169910838884558406666883895479441082934988141985462357114220328167222465183158436812981625910989871759030793923131150386989489348477571182595381885124041861086604649967763737980444469484654964987954222439759391859510548563551293708047744977327943118895194633135674123836464297982049951013095800454110147416675977180155974808963651408645283944487690704389949860347798137636121959560630686367990709582036275367883544259169226914583896942597782913339950426574320202948230307737277084207353184516993611749853503948887384091988908320520844568364417128131370618376577579831226358315186773923831455590866548968685605785352946446113624861612005846843950559763614327485726384923301643588841201167633149331428918710954021396554358413820562602474798065332943495779266202984010232620150586555677041054601053186706108976135736217146285873445498698743828482403663337517571270408844196497893958757439404997189208808640287982837937803268600702049444133701315145989250745290716524109712443023274062982927808396578083695100011376816733176295996858031805599934077675763826282685927284329951439807573052706332349315738807044393169060551368064546021962697729223680343750256582822589979412562237129522991008592814949904574628267388586246921989499679866037947877885317694574894581614907899328893315939109912160237029761417240108598740910200046904503874247172699426472422721761027938712395865517871996664307340263646420875021414570561423522917771315913750270887320128051141133608712420839264895150731363700318930593042618640515716216093559455062346941523152908330300273798255567916103652610444488913046287086495783901858068957764579561034820252126168139044690220111378242014955479566470702375533055882751025945161871203909758915293044853858262096974457338996261880616094236886483560264432248686138971960887012785748739148100305075916140864283511494092012674232153815424114037759322167079767919853852283603776220059858508955241236411385720078688628861070004024484120802178477102863847255819223906983997437910646104771321567344457467578581714029668150429676145900481792185508752176009189659164119620278139785302851400104774922332970186509883329766407979899752686189064541898346686249997900296641934603468615720963810416066843570069547092455400585739153464253731517645800409867027206973015249277907281795381127419444110056177606293410836720359014037509948687169693918885582006872900687791356106454977396332224379357897620979233465371853510684794560223228890643848954661720994196549871079317855172319113724207060713029026616739166728725523051467317685053637505434310278384377257453323162273921974887972782891681968172850675561069461087318738186488258007169592025395801011145919286423899807345937676577498977170249616836285184292648547428684742212631874494559653184084943704430252572477149644312570104769410487813938146963243133997850445030547572094214426429016295125164839105292321629809105216157436976671298295333933661187831522698244779291759329565876721967372731010820450764250622772697241526147004713770092440647878862658865035109031830612846751222060124505392813209441981607453950698429078358861092768482959840651305882147050230906260563799857894172576069844363612045009421325350994677100401670940420274524808226392106444031850422577426795682020329757264100511947960432042275133361529056277773342681733471984381384151308730304494474583566007576118769871902346276254782663226940874688843477489996957022992754166420533806172004235415942088562526912564367938247147997046736725005942410196954821966827992740668417807674487089576805538553714414273386540310915232735093255166601230914763847167088853668027761170206499454273299479425171070224353932893645175537365002186028646070000182639032904278426424429898787384485436592590180732102960236318655522717051460707493583466047937488969257525635562212409642457582491627659637901283970548547716332110946073038595960575073505734123046692596396237227380934704373428017862028163598465702724640775283070876258255005956684799366928609115317353780241827836536400555408403536959673687520832511651998107657040803399566861116426169945773799493919474257537061698567818123260581085984551870482554411485465541730671471744602380142212180934069122907627831645303429433817233787772457244193238815274609542420783111002022046299955733992606639470216201976194149236340613879827548539993639194646965928279287672495861375067632930615786372159648742288699466462821598831391809958525188917919470097110022146679190380611854871306795836844676350293719958087816224605852746723501149902197653280228374400491424856836102853972841077758302797527085943302615519720438545322019968773042632642248073184998077160186574945790613571262606076417262837769553932527951605617502448983200043559926315515717144149909093458343717592909714625330853268306570597962942970139868145209838362907735877026463594692936224979536755528686243489629674937985292595606888999908982768231207749570796570104474614133897904287479624564496725019137581458282097531995929229014394640505916023179186646954597382814931831501488230791770934557337369936390254818330935686438198913615637114450810539666835938027961196719946152114231514582965394881801924786902662050487250213095158897690161024858123323411379904762495359306484729244989487772360011045846288997922232270339863607216691783987441518347946367735605643243080540481958640947430087387135101316797296551520182824008145447758113558115198516968041154610084075291523448698532651892101652041330478237059901651760073017970650323050525105395541059835929578208044698743485309291581474047772165365326793457307402219497128519185039856607251061256925617024462560549031264148746244355641579772211903645815816229286565006543070988674309497860093949260655940746261898497411340625727799001719277653872838371839469676633086123542419375773591636165266468266489714841676707703397236533257952566327569077023955538526642723538910373270650097380257022500515694431584210362660356508297606017167476315808369618502967795624362524684227477558381450366525940563147332114641757105633362062715326237416297876606622463384416677508047053602147496301007276121117482612465297910871204945952960362658115920841773508289551289272649967178554811495446065182862942469123787089252807269218274111321037720031084979960088349268767391699796694046874784248553106534655936135499206480886358625991868446575947326337151254986314296343228246194642227232584405291275284916112114877257521784397914020893484808265379253444224958010084762610407070489971390290016871903523239751071043078869639999412451062728183963851691562912316280796865634957401778430281538384412223003957404337797222914377469659326243994843653259606150721480094610421300426551669683207614319606392629407224230546984754865406211607433529435564369295873648683359084614170592133639926681934757922549653531020972707282640425238772869257074248865812148816010833441102687619539766775825965712617235134926602737996925248730517626511034678067946845694277134419212394986219101370455521854748111082524388857325698702679343138460827596996363713037012911251281273935268166144366732585078523192836742348817216090135627073733927834384063481631997554869088492032716369540258389664135274867882205250557112739158648218232457643693767904835361585921670518343005968251202013002329025287182619534669588815314401494752341829503973214141961447229333781130647467484229972677811653406418832646437370500335425983439204888307800026680273531930228311007006922924259383011030109373649290156717215949609260630184445504719150945476426339381843687799367449178721506415259157676617206905716597096346155664629037182722619279973633918703902133072970883817453119208622537840505272047844569597816211159696906291786863360034471404928119595143293765370405082864147606303154773347802636955911668747443475513197008270020551026139040450084395016692811784889555752275764718827030606685405553387240930039087004665809180169131931139947295335798825495362623088341826001632271354194035164572895654667529954705599686862847484066213447033115363470467619348221818106718087833712757829432605911643314519231222472961260594818402342347886728107195637195714413460844280006286597972776516805179683758728857502611285120182109014426442949415656296025647292502742778907698544630558531772104391842016699957234648823486360336389251147409421363530316000278941761191539630322583253219876817621263199389039244701453672567154938818475115624980409859253746339290702813277893691251550976136949377080568035961526592598396254023775479080966242273915640865163635289517777246306040525483448472646014406358014811351369919905776356504128683894180903250879371258534661972011297474919028180342706748154199003232653467102346374235209897739117707611448094018124141050177306169616383880580498689227864986075060303581590701342015360573937752535297478038391584967573838255872446591126168295324111986798798918702036629560641691977528076245113323393683270805099764897851962357245135750518340236437856868202348495357869636761664603022510945228546587732318867815501005985196026415931964502798029146156159948006827736517324085346805151028759315700065125464362585350621685627016413110677352387710749859310333807280948284276933744751850805272545481527691116377934923929636229547841921282820024230840054174780957490354924488278397943064063316245345375724872336739150902155825653491174925309004721581372796268374925541938701845012521595857705032756084199461810303637143643105549927618745246149267815748045434662972811359922542563673491092110399859613331105122399359591475273340921248823690320573693276106131122864971846546466212960665126712721166010229622205675613335991132932359500653786656054613629765658100303000447682099688664436958679431244852184153466753109600264515573588919246380256717930597773490547562363108804513560507319264661941316172209422950685219603279262147360123015464977620536244027423647426787768720909705870797946624382257165262967179206926808497109607319657465646323107514308208211333629835784904487964715853289397031196621879037802625488780477026545796899839575056230878990743212833999586432212571761708463206244274808301302363876968844558219976642101013129822815878132198156297744700550595239938910201926146915516998174566987177045376564677322523585938180030878681053246373155844585453775107369784160773064058271376799331531517709709495577946799532610269291630450535564609793323743413461553098031875906821776243008771669871647330888515305420273247210124113303835858927303066771144439997311959095899865623165915145953801876434762225035757443446495772740318551429829236107627750953554641334379688350697834491216372154743443383542714978776800480996431046495455446281544123390245436399693104458474171824643967960853617990949293285364142698128892636996343852351713716328326387448960529097540903936131200272964579096610501428048031250634810269300666799710357310746902011007063185698073388297177058591794581562875917167354893205847157130417058836812872804296062694771477184155697208726561283248800849993802042409457412360275709668899252895260040698859123809067706220843967521359325768683806754403992741853266898276068683980684916561365533547946066388989541723164715446442420980294099497822902568247000590737407319433018148985420805992226237440030490056510039284040442882989526316434375314985024292899195253937223207304215642688507301619482415752719683354502533367331410789359091737774074123042250757307152054667026403591721713974199979046868395926042720290713461035329815636273873165599002341926277882593960840882171174587366701281670567474039158592622028169721978570291554287193649299371589225426512884418917745017290076386205655824066275064762524584983482031113015680468265229085697186630982258146379613338037344036494520235782470942608260740110886954038802790190895436679931173381102891899239754843586200037400954867195444594940260629078106332172186136809931462010731754095494032233861044949176839823381700602073722284982824081357839953649633527350896944465048053738057404882194618249708382872607925618763909526232787293676831701584998716008464198635353654317810109899474016866823479566061497764303352371129195784557065399265191307988306116190410668889665868633001846029088348201682984280435812312431865182204945877856341455173750919955623934088637407927558330403034667525838391342695399609307330383464622672043153984770509939188996499212641466085952677397620241588463523931639708880676481567657187226527154224754625032982358057189487619277322777533798564934492887581655678910280446839802277647289681929897102599117202426813944666762865002602124220707246045230923191057932231631696272121121794499672863684000080839424191068555757149227610435359298780805421192332779155597734441537109884868502370646481829406554140370848546982007832258447336270252759468850594535216186875232286800226872811931784169390354056598537882464708751575903095911532368009422829725773156066924264515728373354217827514144797891440759027599901725459308802444781506350915463742119941939490912113453337404183664092443012615243062112221403794250612396741839149543003163150269611654664492384455352818380337828732923367097302822217721321538408287551427993864287212694043029287396246406091665641878608390250718580421192505235026447062250551945644419847413822264021955965081343371584611915116767997700436552939733921003799927833643936307698922496248454945609200757921289181930317460104880345720121790713277994760353867148629661335225914063329072486883405094286619470686468846334329246635288251782415684110994681449038606443916853033820560333598882762492157217312427358661746563675650832781147690772420352293347873973035468816639324992993093866626096041895788081168456564238990339853432792974323311671851451707777148521936729999533972288048981561121834505152590133904102490044944199971079211628322249231127392082603431716290109949069456484858431048644832633472312105789738963929265763452783330481371574784004018373085342241654933682234996925169002245964394467740038582253309287616651018370783425299288225442348741030476647766827673351338640941935837765593937354158192520745545074192982777569449870954517996417985509310261380914754260532948308103807166256907463640364263971138411754077347199484003585212496723000312445521103590200016091368894517318727077496008201591510268999216851613727408649508455119728860992119075407354646076579427992939631446125859102341864451949649093963781558817748990658361221044130779985639991159816905224843872876977631292469783864896275342844321390088775104352641152807427395902460422628817271480935002663389937574893545198565188286128319774291405041052519641553592939969288014110122556566316077811768226615346700735656054171966313397246182558294571645356741921505169331935308516375926138744662491081110771250493924838034232533290507624163148223223186868017628087893536108393636821837385508921393081626363308522054790166272500235293164681709340633226673066131498097423635289587472807462644627519105686639512888400831291415391279760247898470352648255655204823748463432194897421159270242147012672183075428897557905993523072252760498147793997281346054913462965077837913524764129232264765015689033996903399136372663906400013029949120519635865036019302841003571878653625542684483983125961720016624417519728002223409895458567890122222492968719263569845281679510996992752440500223519146815152639353937638171852257675885363361555725522497301120778656167396681601721879249286559910389565020595273217786673323036901613971305805290709162472209938986464022497463889578765570658773619972382007702057184159534831963339596758443256006558908023228423113914879910089733719581809742835634134764946788784766220318577874790259664478393701253323237894604361953303046177871894339092374199352477137408182001543049841587500136565980496515138528323305668807640195714190385588895103625564681531550638735117675071303046049600397142171290847221322124661552547717962895571668938446599528892485726005544322140830083331834746366112937039872078728869240036607689205382614652371999752598580312989437944182002824036016579620471506653242302355904942142156733076023994309408572394503980547461788725509429067295812066162948738637242625124081507054668621971991386714866493423965997932730180998854874781205682991449017612386875406312444069482152939651988367576180024797246819139861754300068276629859731622032960860046024443134377596884107367285019351937888521539087946673378247154667672016230771026445241487566040486110355810736879676367278720982077182178063696867952876446230308141150299669150911181627560828523803457671817577922802884853383581713291389109195753481462711793170475730763756111426643217190746182878757235148119613943937203609491414734014661039199780834648415655479665070514065876160535653610951731703431743507744400226505522822525766935341831022885356570741944003744639659603712459259630558518969413888088139267151523007553360168154042038198345330360654502085946061440823738262750411777058974413478599669897657984467583097403040366133408205509788201482766913549159982910119659236833120455462014501878538424785745433031576192416283132786066726278310680518082180077871336140731931020384727724681709293982557183700489338979951220695237021466095424924388190218711398782275166134577886806450720659921654342890119226623304866166379155783711161452941163699362095426407741324009249571365177299385587783105808612085245825814606823578205361324910760857440909889498251920564500852221010402032047872324734281915056913400479300039060128411792849214242887264233966782625900099603055377081238058128180942458575040504659775779421306376205412646410511801436652852957505132533694695933649385726934970103643328081803491534219744503295573522729876253257658294757871006190175720545086401482049210543727154735588861499162249204338971146822685694227292925996678275981345349510313825482259213473210881222213249990525989417780511754436364291776442893119976922497842401229702828452920926133348587381410761875167146005121352859946348450634686311107443847497856562184860136681268288791030377442077320661739142818391302047224231638739360947504652669121173148298777133275481598891425831242893011357744166052885198997207381831153519812490138407634172132610746825082916473987965349343093169100933805761724372403643669957413568602196964837007889894133841461281041299916870408005496510163892778221924123600741355422487832694684587186472325018947500172446092762043371449649639865371323648599908812849501516961946074285989609440799928910795648480317848886755961882328334848384039959337693223629311082464267067030985729925429177890363796815531349719698018311210240492496754265663069055360333217516371412486316689996245972530084488102763072770069078643105689231291282398205845975721563304801548065517815556844965221984153529470517471748610694588741064077666281147220872313782658213104987674519251273497433889684106732786005783547809207539010226320711006086076027311350868242801175448187077464793614577424007777948234694607767009752347384188059170144600652376771674884259551806558649652866740248391572786270059048711741892680714715952222634445861530995878286362569755350731641058598424612314720505282674134325145064245668080806201531209961496096242354558846183975911449328131047678071345357074947405100395861761310324082097344373511909391271170015875103287855014424745256914672290625415395693598275327809495513978283506857294932823861944995506084811695057983521680911057914266281848488102592185338199453213582839303859064381566530403302500374012546619457401813771145613100769480846239483677320598837987734912846394447128250779645400602697244143809598501153157655875725737411252233986215214540434702443435084716556847868737880337157774527781027667548547074018085410156274029513656262584646533527715000492166272362351633451361712574855015153772209925778327753695101381364446608551546236848775362554392648364551770975427022068914094226357380519620865917316989317600465803390620187178532351246361101642303169478893813483945731488502221291936689908045049296645421551807131315293140413335682445822579223449732317991540415420961557817390990589282826994362298241641451437018142145619626032110055662157554827011011890362265623025618554127516964476260051245207813860782678087002247901183974424103627463140259076481464366664934110281911503761936953381686696986339495907078797255526811960908694877895023745578077505216552855239267108230459979038250183780099692747315014249496837059450961017378598851202409769217586401470569409458667995819516312655221015876951779740212179659652500985803842457607167797553934366715905824330172051427808207765034462084637144563381550036069588387881640858714204862430847453934696392923796222908033975082477958182905731556663376790042921016249252688816477430443442123251495011750670850831779599083647206996565875553837323004438790123754226743540596428496760288210163577596754642948623457866965547000582411583081828041661534900752475109438879150671927981819217779901369411690492705411590407809135737740222620632312179328496882649274248783688222574810259353994958863269119958737764543208124754177203454520914813983495391354193785002412552722399373118559918608628966392527219472320747842731833054541191926209848856379590240199605463181115970211020369189968299861326799581808748350407751100039366349887887745498549034337518863848863963530782690528213314809564005884684965904762259992979808414678001328450024777196214066419954454968825124731391947629472763040902431973913417435346105177435039795920749352533397772342370919363262589520056565018369301918384112645265852542618248931303942947788329147934026421642645505247233022484371268759637088042526031682110704027025933537647085180077567374866579719997391902241284852049899200394751310870181797096964018660369786824825979565103436083021125406758284775192712225555970315420562030575832743149964777670997673589955883387299943540469847439981699441578653319487674021779750605005235419902303073052112388852091638990925598390689917415593353355775594222502663156811554445858573103313185594739724001284141493991961314437655286179269851953241690698712000976492332200494914111675118281651527496724167959293802179257862380107199123687117697892196917172048123009742090316792057080839844889990885457333520137382372643180591078947930940271180230735325421928725458330821160697733976896286834715072064737520372593557337534264242685390719953420689085874171712538297431135391662883859929187151322778032243001339124969962768359478286801992993812440339626514169150695707998615231202607564655262968097196497312892193275911262036661469672023738862397029949446416253882662876572209586771864313508852445457517833889860065885885123068351661892432256127285182270716074685688808688249840705113139608978626111993964414888985919951288660505624631983257160595614015353483131449078466142821270386701853195253565247943179050116910639519403278258980058301521349148367328534949574516901296975777365100367846710295582028860289300672261121460411240255719226883959563384331160758452000679223916860007305264584875373078146138500633591175555070417457846181157795663610001996919395311840595012770386789338022142628366633184717971232967252252474983565026345701247571200896526350609097887262532978452537057162876469295187584538186792959125453744490303449763835669883775004094664597936510864494681966991822383122981987266539243450656846876418112070506897055573139589811004317672215013111616158180506507795494170532330055426941891513781765797733190090384372021835755960811520785437117317129487508790162832809735817665769031496823639021035718286079754522225364556252968349286179387893052510457624540715358850662274405474719892841259725881555561556411912318717477530070254772184038856568372679375247912088229650634976783501993250974044809826533733296239182975652105663613670545152868153281144609148769219713122484505225985002630198865259323863532905181849186043841482725588285531405561522931699506618155980265037618200183603431762467242077338738612857215205229224321657958572037114660086746622357249299952041317970903532183346511694443588659710840821319819431007978134588162990828902118560887774079631750012412612440674272001212612768093423203433969982582008393206019576466923795124181608617113172564766420456279266568193599144251477791202404099107445043799614762176422012222574100808174994788485586131383234508036349751750771335883907805312818808450779329506986235348241810096209442971177255808424137506475031474923903915257527760352852095592669584135004520369035347803255225033979281940107745745818761078982091482079803740250068658520400489028387572898220498214255637504774301628150482978985871562250058029463605952382699727316741315729832334065543017971302829370241792024265151171258023202426674139732778195834662350411258668772790428225140468648381615476433638925397473490477135974763484453774077407942899958042350756101964426193442938942727420891592713524603766866500556425462155631958178020988471419901450540089850755897316724243003250031850618912199222864142290945147610395552646936510515289427042942812414963505614063491699129829509570846332780983378388753312844337453974083739740830903995202764868799387246666899598433038502997845575184059430801432901871494818031241806932177037112985227156116215363946409286318542348135328219997432118135918887394427035237258818597676226065574902134236125956206457565015537638277805607932169785484673286593925053712024863386708490374347203723390896790334500681375335155452266120460961398328671553335361639574227010390837126691721110625738042188447496887656134809129598493183730749100871315482551633970891159554457934672734991127043832351657246091599468566304538662944828758357923173064890139479512242857124034020958768643676294811429879999772120662930182259628191695673126380469232792734887917742967908352126996487930312579074165148900632973340663011652213633379784576690023875954206318822772725728743689720700584406297310804460048773855253842809195780586240610337535980473478230638635812880045434682586891570488817152427465544727482431444829677635979147280947086018343093396258261277685848653746319728214244188792177412840194213557444946388762160920049658550442028075377090115310374323789292142401911521515398906593135638589204568121698101309747575982121496223670388679699873242787579313429539835965696557009832995376266140057064771993453219124625612781569251037334265901141348684824482947940188522060693876541081418538514646392235466371764795339748926247036078562580417282272805322867018788145100256327554144080250774204813794187365886769592692803108275545762420391842013742073507994153682022330775444640965145954953705485824423041785177246114381036204567867769821508967254245302658278070254814813830930604098909873714049172637665143681150576395832257175542971539309823511778091171871652700188027630727528673669663145942053081170615185018402978938067291965250298503082784221280918197461828514498717974121178813209882366170145478950839274891111918554909049028714083874577720435054395720280245139274373854090585515135047936511184377169840870822281815351759317836105254082148240705236827624236935069458874428539393847506948144112248806755561291027180791005747797231013610611212196441786631137042565603325452079069008008772810183807855321622977558604914091614365002104333816485971533163098582701447743669649504145329263296491627256520603352606856307729533147130269471490925726149178797627841667389023484715412570719820378610381951516280193656859722088772716994887718031344049672768349613982904812950706121055437576243455159168617529795537858386040892876139305450412798823959430174888011195646814775225747590121698905675272799616713190707219171230453051834775822989037160911544821508375308822330460711367466528443579496741922500309694090467302321644236254637643082809088382640026485016029150893622096098359261006778972632287898291741834354000818971262485634532754817253618356677218695943591829818544609409155259338491730206304653669389705206567002345622586528825142079699551970853769371852437086578647335617228538248337871539472633033358495722570968358638994777721313937719384423751939435198057158863098468772234023055353128509079208207892603278944453104704389950053870471443411304537838947492171360014447223653551428629913506298935542452630827321106343247493164605882712904676421719303415673890773629344591403637041699264681787137495950409089154601486058286757697137475770392104552834893595142381588672687530904943069764369599919337337940301556148879525473213112551654365538140901370945050222374662265497725034550525705750008784823305393943287045377133495081735546465301938988758887848125383405756711229698319608378919900719502669820696717995234861470674960473773542845455378588539877382306719178396114715784420961450156866032019854088194585757532781488033222107278528332133721138150971006684267996441044346702814649150484394453760022660580955254735558430341999491209311479452331461253181427579597223264511298009556195077993810350977237234266374507457801711339410385013504535867737318366441434329847742933815716680067228870690111324667306055039645197702969933601316880596186206010141381981888087137974248740680583065512868825770747096974211623120879868092895514349437505951604724755947878343028208944677479070542982809095232689765531995389445762329520257147968464709134774523227030666398500160314837011357876110236532084706790579896073866563434650404772733459297753974023564779816193975657293624824239703712089527110043046023962670667553924035993742637732370933405121952835006148562881265938662699900765929522841292756241682963485107332481978729754455073301000871909753390949471074237331581909466168674651450839557060728010657845951690085751358492723921978124289383876729050845449769079323280924958611254968058965482430443030217853622463127426761629667005068085291367051890016979973032413346066578465587180329697647631596406162307758505121101893745214546672163956755612136493234678052822205172316117476346826177678508996605336544213934197321047046072960996193129924435917309738402079292515159717297070427277846451144320145445457331389496041374185835149926419870358025897990959210171370454668168370703166743431516562196031036175770463079955351647630177604870918704116988504546784933554183309706944332344597012228574155509056811803029476187179902162888855367713945493981992860203220983212461459398829781472581676481079402967204123456997118647186313779205459689127032832502340422682599412891457318160331682903440121184651386586610298482966827536103020727609204269329416534702094023423198383973457741837634611168536980949037991287706699593161241487749909900519266783702767332480793748254082692965632020726903553213413229231425861252533068087221891882700590613071368015451279395366928337251163222272445749352015917585421893401501397473323641054424689221325278033438783221249940209604701516178719831823175127959177377518380505364442612471755799183429117415418444976656970962529553214178449181197849154566092436595819760045723285811557817083709776196823658667463048291798123237531446876490594551208565307287235589851940176924505460074863834986345044612501971637661822649922668022193042509287381441849931674466826491027338444542572102141597343125661975899654927446432821835404773464331626755993485240845480022423802106325443267863349796842771895987486291852866290605866192657654736734885024430005193490212131658768049950731198537606557010354227145089291558810519195021071083179517303836699052972066924929668141389158739896359226385218492621514451470134039883069815632574549714106445938313563676308014623258517143724225491445015365501786705196503844893073095457944265310530675745514885935921256533592838509112402869084061428110766850248674900036279622286642278008806557242565164121179146458986590979847448105486641429983464355078341352397055194388563555836168032312284858530630222388103319291705433237125324921645470913673711743566787857098912396447651793039996727600259961931056044999062448504636789080599887462649678247016774457962264787907932003600266620123834346036371513643097794403181314553070122584232407741156039094015005626009922878250017822179928672962878478376619241066986331520746348159700335290980346805781726543338072958130285517323698965479576875563279403257192184780637202634390559553685501291045213098934806240452231272499025866552615220955407430424808234936958216524740940698469934701123018643309448014247372011200449586173229056915468643235424797544127450557723778175622397748740888892236597612659907679049967359898451083355871157379897647928409501639474714134370989226608954539570116466094880114914506335253373121423879682057812412081807433708541690012846646531067730285379015165906080905212364916141969441116436340493985746758111332704837880176536356065782614145179851015729646374459598647516963919546281443069122311261431965539440431235333548328837443729674409632627582967712093059057256345594069433703073692511773786337872138253100705525130455430461584741548299210189734467512106318685122926372216557324318492997135449201974419282485137314745767323585702763374131385944561695106003809299369162665141292227483286755375974259275222121903490770847644846392956235036187594863133993214340144249847348524963081252825574478363305409268462949696365417792580134058982060405077196850069910171696684845436887139383936397248895139106843938444828838578245085752088993738007856143423395051771453401336844569156287711142779098394250903178522726967372947216272219365839710942967692840141166424834102178434066798269340187724230963908429805901923717279602212985930200203691064999358322031729042503149001498446381912518735444118436911232163118342416474823726478226948702102511841009627419757540126321645678124936873633211696929904526540066141767087925331922312398927033617511794171477949290488159166269884531841015084013417987910707809272430503868548707605173505896440264977285100691075456147102238176678194389667125664913017334197665714510615963448613277558986870480755804658599930748434052740699148428421206224868399890218673817487952766484963898571977975697524207893286275725996256382916201042133524834338107749290088130657354124530547572573205530718718905158463462328491105269555752954717421161071425354884367681452974407237820995957151062299385505739724463724942967520034933442840804602784052267491203464665884374451240483909683266124441317878156188616340047179579855626948825687502197386558479475865327950964641959834942823557873798736818523997540367940321847733858146010154316422528890881809424001539910092342062878917006799998808293854209621837115516636795715317400621232507296360798540534124879270313907195670317424250863758049620417036753836754584012979968820044434074780887036238795812531742765964555781664452308096010354345832961807518887990186809178820190369949281061324910458384542707716176230331263551891108152712269195333611556224601778436061282614405508072432472127872325274376745473506685454326211594055271160906338331671455818652280045588057431469402958761517648459151830829320812871523719563066510283956856201252714295659986876215462688639416731589602734654329480568537572226581595987493568928795266289581558280775276367047844971571128861342914820543650291294162958790539495604898744745929692394080065791319948935451201888760915629247754536395387295957669604466230514710541629404192207000576497008763890682335414902421482094477637705596685092203019900559939143582169644539442879224302948267014596471758155462417136844752341897816546968744032373257700062812520536118902070439231443434846600725247894776065496431127173121696356518581512356208769566375462629724777129209172487844541612498230818278130158330407702965509065277401483243543621349591891319354043359787768922142677384301493021037225109255336993520254414389233673599707230560202754145520153031047118420954831114164475012958803656028277433387387034374713503761862804789120222749691157707685325402356845556915914504266113895595386330010979078049219379237755881481934431473621483832010490672144035678422361692667341988690152401609625840567021532591554253129441830219997426123352907463659401406626359865826427302719408743260218518705807909137788088573518041652673659892003732558952554747214007856226379832400005707154452014421328221450007236840558299523702584515175094136110982605341391434923338963112281852112113776717061377265120719347905104632478958356171044152674192803944958594777453531617900028473319045119849857654522473696605294583053167239845324075747994941594259778617086410391312299600764929113169904346151156733294694046788981882519467423508327318748860969910104972971718167268657706016716768403366085942014798349469073383261810448585444664424073686728408560225781607420141788244863380188202769738115278688909589992878659490072055734026570353764686101075383220348060641566493050432083552695594242419601976517383932087925567961778016237215372668845306300972090668501138306497841566124207596076289345025349542293325722166100421145962313728703273189200218005731219252640586656676524038207486476924346907416938627254779230954462644503281095613354358440355937381653983977258307100004508201725730551611164870055727891415976148222778433517435771262538454913927137076652913908033108716407117350653007691947424096495052951872153447909837208521726740465175203282124122896274353244677579082006661772255052079068046539902933236230751939730876499906182704136759459165403585936161086523588243432149874223713594933350308836275419720239332908644614174954185856737175431328751595430445392651484688263972494800128907633098650113775211131659061648408340488625373237803608080691184849564968472889921013660309808829894239448843454668135140559589797557961704261613152797217462346308032955382713317651866064096065661683165620379045935784361536965715783464711678415824340951518936574554734839931375047145498562426461758718006064703619434686744484488913068872642590742683049557515954040828880146604103710016216445652411331361889328040134124043407651461840687934064486529000613739618999043022325955735587356236476920202765054140656422597631017650551091175524423582024821837573010223173820183320579250887537647359590640354151920122164612901227356780002337265028886892276562838904188821254113270366801091308953857711808873637567924363971466105142878314180007802988790267849841632359059342157854945947588819536427917078203714076352975359510689456466446848194883190283880822302774036386246664016771922244472454501517705258111678838443629535359873533101545984000160156896610140956337233092516835285167686601209504929237957783489507804189585827234144429634272927278474848036573146927878521740402427555256276346771014914126173075267412738284704914616580908143255189693225936982819312575127719734802192713270403503117286726720903971231131663652644610467967233560366829187176915396732236687727627608854886391811973003826176602901988721056906761119282776269863390703232391438817727832909695219667579790598246999765176303140825722862313171674615423004573439666879050622490225436631296925959668389485396278273464486663397163570625145757616094074394394668296564373121450708747859805749327801588042840525368023927331578758168528111289001612137766957042169153376252864582051026150524012717240535509651989435835168856446993630353251842975995545432652681721767886383218870645907617935010493919293533765515685116517349939124288078588277195856668655052719781414624092953106464415884011874691064804193220032708024387842326735475678106237763626945018784331097759073417939296480315148924140767397606720239124066991549127555205722103624515265919605129753924000684859760719853826698358693285002328978286110723911591761122724515427207576389026157088353447518844307784542405961977975242816865903780715583235965577069449452665058718568600101920473116263864836293131610027742228507574919597278878500058685340666420264739253953973900545629138651986241642110126779874969878383429750707775653483288981247723413026988141206073519112862208688526206062256058484991069551050632746624044233095271701246076610344591680150630568710414364211291490456623505405074581879420414234518427176122756810753496779238020547266730941081116912689753735011023177203521173711999756606690222875082646723059276928362061171339768650630632320643835168476440004331804511379646671681260764820973276391236287498268459356840315540449966860382045347145268666056849842695194386502564182231318701157144151643031023526506245912319266183819901240157774452916353901400983590023940924421230899032150189274761169902623616005669769982096934297569560052320692701776151146014099434448744393085365599877256180394022159940443230034576638602913519634944520953439954009160038329604339166726020530889132626058920591345338957633210352735183790838179630361767436300049361130014553294545838411444946229898673482221252854480599081877219657861968499712160892952079163606115396399545831170915725067351940143267371441803138600854079690648150646154811315008705186691255960217171933314471096518667216635338503926525686271788558634683334596546504117803664376657004787696341069630689912527788400349733366187622965680790515660901950926112524482063757744505028880084337789761024585788100702363444439872481043006064288073745920878313798041640670047907592657202331854948553545739153333234597990781990210094733240625269219980299362629312031823068646338874666840192386455553619768959526154557663035899384303072322638182222106715029034191248662371158607846308616998153389336691890480127146683892077609512014293313177106111469789880470460906674445401630979476216524007405679230688241377088735508492887030820308125347882584337912805896880176191656162494572029543096092391299571294439886662401366864507056003632752243379542126591960999789295988565536598093800363759709361087149221417283309152728677056413569568086657246207224906166648997961443045990317900475828367364391174223988544052662332350388068010344543060615045125872393337636796580813015317619040961508906349605432586253314411740218512376995528421659448211949213862436070387546217375310023885061508602901102050890685136424620910362152600551368257345856640990489711938949711668519366984119825296344523627665690809905103664357793564771629072096550318897184450665970405413017997487378032196763982270458534144753607023522378557364444300619689838307145166942300340445277031514407733689394174457770409463246798134950458444336532093462459221263997203308939935463341278209103898711272094066372678540635974854318569299376530929807989767058215035455386381621765734751278863867605633317604883314808571195795983947184901334878667582038714819563790486703251824218817473559987788534809195392393332887627877591154617138710958616622041127831476379183090769930193017036357928193741000117928278898324215859641496473257815024900627374510049084782283605623465896572073110040044217015921039819078805560854875614158756068535275845242269677349374338711864113465186066278617919849644352483321758747478993342285355566404254686339586391596728313088725565434272943997277729720018635080510912305822515124571146335942264027240089446958959744632182167615500348299842502700768746030435033419042718748980078875461236383204299979411616329925739106833388104484156267365653793921036719610223623162709226112740602039248534828485258072664498814242897796236116395126173612495631454737627546491728774898995870165330806418176816174700308111598201641981254366309817888677885966731713884183768277803958137465224075103827425237266013279152012135273386881237585501432533289893382744279699587509524330624488327520731084080584316229034462760056555821172520050889850790806177638851197764904218971277428311731028123337471684545627244983394102347998101289652866972783765078269198110822584543791218763793202154268847893225031025550167489252749770155204441353939723656928881007073401190127911668154190356467255351227891425849533263879901289316010788802701108032407855672821277189238911270417332159281384781113961487585224602488788804296251260054708308754832797040581786272988847520414300867325860081449146530419251365115177255781433976133642124848962338636626817367831320263939249996388462422450314655181457923134963244461209180043571167946567333324836881608689437097113530569360217476575428508280391999673139026696091664505360473116955629767080297606945509610071580021627172733441009419263294879173552699723782564851219193364315657896464454841637168214315241275412838172959185096504167721276170822910385041453890623749174724820237395191616034380031690854355394289490636107970401019262218643370212603780049677153187786527315520086130823743486253638427731962765320627011624823752420109175593583213041711112630338398788184398170111014065063204515996038091257245262186918792266956598933279667366868013516538983773115717178827164504641201118464634324078296627219379615334451239093683438904097292023737964033958081002796193924774580964945932655491331130136208308289496223899332547001963440477833412225683056011290300965761820100424991288075811401628985861083914402471889263358118133017654204145723414296525796815141431533434788537316868819447279951393048036216292110093780597490238187754505601143600548191213090189295599687051609181397768237239415286966339073764346225606229615799578283167022780784057425574960833102077497876166084482083847637748181357377713662202447775086798437072644386673216331009072924920099459936243936135890234935803433743778567830959933851159879527356878345149099939253337762348824354388824228277004989948020450476272712744458864327665391026766865616134376734841136937512214330480951902070294731964556928013682305265364108458665360901592404338177484878663027893835211412534300885433509551159717235848028969554891972445654882770522189998968132101740563619632232688624234649491267866950733822458056840048459419657376039898168781253051076989479780378035988496647138767919098530373176381320532082793177462623390725369556816459709798187698460794766750342176375187406174690322539508258217771871620947706532446279121196095223414386644757848203696382985432153874396678384151701647555802645966914172204536255929020162596994550974850803085559933478786271352587285148767640974482017434867532315730037666091912732867095765769187966783232529873341219530688270019105228545205167588130728594873853285751082665762512331472387081902653879077615791768853384107687888717919791313419400150075491534373089023444157558800950175625084783441906698684783586194045724029187720928631185324275633823686570623005289741196622522377496388883278941132794547566447149291382491676895964596644856869015103303756148154810861319236074501709380011600533627342734638671396816797317799561183216024959044162484290926728138460628240603683222988996544149616604402685943945639652128886000118839236845234366735097164568416339953438498941694187958952199251344992075780007239954536496686586142985150926325716109307640142599542460492720146549671472977400875489796239219082436943946508514413222008350860135850663378444473561910056873141917101759309546994876273941023987502198207530457600786519722830573358793152286017665200359601324363906838155223312444176895436709301951884840464042948937922209581707358465264402302807132555189901213153838937991878554927187107817939297264167388098891407576009263219054878628629647619799503907225416868042328118253977871530164794785043121323441797615298377664175468361442460971528816471910497793217279106609797588832342247316576330260236901562089014328853820185300385915470453701775488321115100763425541463607168939740532708020765499234599308537028968561578867863911731949132576798576973078506977799343673822084761274958498926256329818697845856516009472519133824330305779917238887006909338662710959963621668740873377318859467575028985907006631255176541789299019865995625968210933404225135586195087749458028453471995593099069447554124751342484174435800560579976295623564199608469384137974843101623586781616020334646622013993535486465953031373609183828762736115025263111205639309280358337324657575746878565974676551880104302841636853584248873940850755424367920083472165148724877764531690209188344190445442587897086511482892577137904145542188261235239935204462855881997927862668590733706935189346150882635093596699673567619196517918033481967247816796904921618895911276625913713788393551354244568971951877385839887799512153448411867727884906834289292969278257974726254196079153205330366292669559895327728226586867223579981130172029812134539929884515888198010737898998808858337740180133747504041987632308169326741030018326429066132348873162682139420427965047144108454184051355634365328130455713290591664103739982187777779197625970349497139461089364860178035503371383455837087536152568628620639583147067138631117624634852390489381460942216305634118750645525291745870754414278422439015204681880842574741069904820129217736925334505270287678907360375500878647566755295538014287920420134362270175497900065489640262958436790419619966172245667604752293009778428733572001128119183564095825950239487530888637862899730012034233047579569684062935105321249558857669935230148016127733870690478669502265391633028801813953518334274943496121072387080846497552640942194498645406995160561931351820199006401495275913257720099903904811914792753105143628149163245172249327623597671875776516175928322317242055716617201253325800137880609519442837290245445663763394816096615692706784956438371644306963686848719078279903561915268246832046499624092041371586137210185262651310259596701503020069001677738054834869968776461067016449761158233075336815378187811834102344900185033678847963685512053843203007349005158034596424210435350873434408665808052174340016505230963606479422284569178633207406719074403303132377033131802699838978754782324543047653664878048654585963006126328497807823192511657489403544621545137915095253770991038184249508064643140206714838036171574618478893411630123471814966608032653066470684197867423293333974129751034191091187635871359965387400781834455672880568714992959557072331692381392177409296668757406992143119138922751033833670296986909976757143818007897859072548757751497608126049155300748879248536613046841024997714421759307736647532437061096514323334806408517622097802346581155736118546388402180508723696326169699892660983076390480754108170180545348220013798161563633309993641433513212849693757665355351101525404486175778218595502770797325341295504225639641380725725936472016969764406832597644475474154548050655716631811362219961611396987377622510417879461919739719724051027055801908003358261415356635946857450739028773750030693756269971646599340995984426751590858337451579127344452107421835959390162724442337090747768480892661097234774996529711180121011538113202672250521281321715661486387053516612518600974246572919783301700092106274717983683558066766467828176593973379581530468025570091865539823093732242568644165233429306317520321793296099930173498175769247703981566560398151951071430838311554773440712506854947406719267929089583872027387838471709122408986686674296683785307921835038332830811352933412467028966333338942655441391414064278828412653566139867316713399452585306045353012007403675073680972741703637522846442269402493496049307613198510502596817534663894281781939029225626431302422629311837900895864995754334341357136469378318880224571268934889595164433201409325875645163091857836169532578443790848864900877250876141630848577427808370283143244584986240068037428824007697822266193723148357940395781772406994626708687536650612238391356300779641997016505843091020301402170918148100161117993009766294444421063928624789125751185940789883687850956732356412163245269069153688181554405524416567680872372279260950237782796039755444257471821291434568470323923030376484766839738319628733041236995151816521798706820219996257792966849720689627877512462003647867047398803472378039414590092661496584988497423698399795424754204484481620746127273488774019084190429037527251350314278572705334174886690554054789417942010152711603393023093699059938319941112924635478334332267866362030904764289951364773387352817992317219664777365100293934479731368623728159558863713306267724379230762890363795836017165054334137721218227689743089666695347871363570890935780247533870543847662264277086785710105522765165516394030823411993335678256495745826551085943987753818136116320268449119172550798114923748434005799471654752124148395524115842781795509748428245650280197916351665052109886323603157180001680377213719774821033383665551414382059965773655334299646682695832002290456692842238822410156867072004887398684552464682122073006022035498142410409213333991932691092878063563324359585788336378105117535371745945461293903859496874358052749135646345758314697669289661801738517676093968665142185912118758350527519777052512470172371552389950242784406906253469438111994709425277245839820451236153360169196150267958874458235862895939834944914333205537054013143867706510341397514131816715326439818184869266524404361385630209419783604725476702268251158193502037155984648261012641546079179700002100588780457107125475387445487445873605890239497694350240879949067911856712305867399388709675406265155627645289907256961843882524221033879245316525677693866299800491147629229846586336863198963862176356452929354723174270243975433384808156690784608624162195736885911004122552388920190762019249298917038856080183963080197579388512098584726425930890790776714773623540067872986931065129376025250384400308744661096617788629016201474698031857519311326821670403051618698703142171937024709226355942098889956245637178337652695772157510114600148771365855420259626532059552320982217354916422119267549490216368622138513679148071045491087914527639235076496209385295849575593591820167881872643376697761002036493778424167449386533134978315194352700214347546458989459549720450157223754819344474390712269132320715261268033586568031178659474411948777861832056688425406760865569358375534372136630970856840867445642864512040588786847717332407709950798222641262051169472976431967862506643148492166982862260178627599371746808972592356588061410514917552649514344408283217522904914599679054321472413689278989396855565907101901257799155514118456510651866255198160336176132648853775737498589666360375279236946479272746110452260113896569103255948889247939818606549341671312258046677721472299291255542751181308688741058283441547374242538361505565102153502926146999662105163818599687787110443431002222459112800996893077938713268585428512316789103588120466424952462827153084230512724704526659861588670941535642183665518590357004536666201116492988480616416411344611650613175872920439150713411825470790489805606597200671717529203437825337199230971262635490681180853093330560621854564164836806652285112274454343029637602001556948228946358684983447834748276565983449209594839296374432776517243605437550801053018703880652345986186283922748722598575145621386021025875152654590786220269862610842496563261548099246484251663148340232637507093583555502496628541526123740706123182071807264369456381675508847777980288096368334072180836556549676256413784212026422427867520255314580333116174810693089361843909585576506193540714435725228152530160257861972476388540610981912976248298780163278681550958398933814165122209644088215466040540700874233213750463068230953805289224052895258812041743010364082159914618628400103109073495306376893557500867792436923286009336358585317188037653267519977908587533368831799130897655310390891892316589084925668964370172263564736635168688296260658150436136831295820676471479743683518293613048832074721667790520711947419662293466523220326782756552450495124111003492091034923515141483396091361947427381505135957111669635790047568895826886464578516707600423964420122166356722640436552914041229412330139235862394533011116874396152678663811980335264510763072877290707952604412176816923431969302901623477287636395006897722206700256343749934869534552169988064091958046342137552466549018809434253058656667707541900158984181267285588747903989861706876285797018464957140632398487854903177246357899962749218931253295686276751822178637768835432333316471630431039649734223696473693501147642302130800866530959933738467289975824267962068539945035678570802811167347805626441377839307681575746303953985345070554013031609716608984261680182826491063394084628209382592395903796092411285032655859995479115255547324186688077219931349187361916997661164498808104069735777168446664917234328830659116722023771597250044068624112186579270893503176836600792297983487827915048961610596433469753317473627106351053873014928867532201655334659288832965797153756857121689502634567241380333361336442260575766177102917827133758694517096898641866432912352183628286969743656281682600120120344306867345245461358682248804088863717951032311929528078724657825095594076731346772258510453798474820969742488454327290794561146409443671697598070203159827746186871780111291786428040493437939893997617652033818149474803204324722000839636165685056206198041922518118086589749572142826441032280899409870395204981024155539036949400311022902430050106297428160037200412308192864354975381848197163115474896154687408424363897344110076120235316149562282781829655937748661303583201766514810852599751337548635164810539103937092655962801457866909632193615544048474425644191516038242875836481824347387385582944174571343065778148538673882888125598179619649687856365251189873321717539213254384430459898528160329059918302751184685690322897194595012707071354478978258546123560439792280864992409960877902770898313072978860676258471133219688804132631548395569602603518359162922159070582381790438721338532219171290107359816285036918648100649151006759865874509965998798587829112990323557048830370294797304912688719747578909638293927129128470344724161384808160403942054105269647579337973730310897194153715100762801580286249104177096445296897521012065817789832861233521576992685431043958269001139452774918163227759679750334095175400167261774537957367842610008030537257698112090297199576927991212036858622287862864710964833359960576229438850287339119809829274969041424795100450871639365810361973199757618172377112220640355329829264346697001598167081589175751020865275127541550926591943813548863500484748011675029779999009377712470018866759587804043535795336525033630032992896921164599897549538921383337401072480882894077877909681527212365645888079482848797862856074134470596740167589390954537118403318952926737036582988157703379016727632384544872503568266725178614537638126660351630401040578160408846620919024224398861331622431015459624530214262350538044827020383314649977991295420797063312417551115723921483575705947988978146338532525781032458674633686629473167240362675783480323182598359193372591340368186092944199512780259888527005990733731269699480472589225001771752822111542557816880643555633925166884795034034287249284488206810666662830823984725276508349187148312633511244306478488468879428278752622149462666051440682216858807726766557976742113025891022579094455986767486717337279908419021886628974985177851039915758327651714033775505874900552392671033084743979256674674289777668601458999767751172114387195131590819087168811034976093798049898874215220011038478724749801715053815872512584366661863007870808120155892409198698900651105028086336596467034438341136004065125622119580585307386734583553458337068998194935086435700364032286205739422346299984255808013378389046612252164308016191637069925678186975755039718576103361330591494487890209493900461350128657456394137712055866444266023251467223310895601850945956695876205483802264956466148860986728287997750141222930331600466041146896195861901682984131026800208511629885480519146939408395214747796305579296984266539663046433128575642346568761079256932591935429917348130330319329251542825707292488884022641066317547840607303109899901764053620758004489444598998397339960285677313038118065695699829976411455687797565600710674746726880529059049902884129861030540113001323641460783854606435179468667248180453750387654939538812021734508210633712996114774203723662594946854985588255469826529869593826441052210654438737597571474908293446579455657206586156867295039650811158588129911973550932324825817397013429773357012304418450658479521865678080966954243260484827673450183651055608781190776613581373160156065782426098722950004904156349697636757620908646456627982663244556847873374071153834179353230137941213530772201078925749245430387944610714491090261721070385681808289801470659158537214641795416918004098712573834198897519237408086130498468467587110677349662558462249975295185933203824558417329456996106733328617606687674647544706137548189556744097596580556347468378072168266345392340075841484642485247950859771710813158317908971097886388926421688871567985837744860022700211511851158400667151234630027839751081884633267504068443659359573313616382994288513191053898335739250303699386095656546844701889859762301229874098154752349559793531127046281496551828867107559192840092236544354407148267800325689773823006907673218155299767909097377630182183878725432831100900866071020124231566425701417218619781537347227438493838461094759680235368657062503759257423774594242261025011597383636423317289958240979419221652713826695257294760118745722175037120219989924595004390721407387266784473031000254888560184343058270658296513885980775505241213861822107072194266111976822855526454745138158027853804868997920871445362954294723525375530296779376446209931145918293564668596757422850683294461673855433800427315293212525267504598006661159442746098817007481655165082572967535535090406470672115863680990017164005515865928741274639879497653833073448475787548568362226364843566869644688290530748125609220311848630687089444616525770476085341436006853555983803040667865447550138494521376802889297490384310722535519861804818684866804649837375892610713499251674936685835781264043451981699962500550099590308361589850018366609000306250596383110772346185337170734153902815025576401107804112366652028760614391966968737416067452945798975780837836082732047360364743377636419468659507372733318369617756770504985715771354135292618975988625870636992888569897279220596036619658688482414588071352873517865830175249421863899156715812360575813642740967914551997162484453086759939642911753336709151114253362660631747837403218938506818774329821112345274024747052463426130875770159405439272641272996101303669001021021610378313660266048425593808244495335669200469295694080739994769713661076356439412849396702791181550235826353924665302781521319701443139349542885282574429369862805580279313574300566899028311566398847178294504169863276582396673269689068083041816739905960693868514268795983046578627251582164027886766259100618080164721731763205158055279189906742550672304772152357378226738234914962878513679593022639193147920506376212063678680172803018049499828950458808835920712929134367576572591532276667733829622151636645162477479653095666349676853898491350189947662920453212721156019084504677366432911052851448600061841191176352751304110609192763952775330709139288051761640467694936184681086553076379458398257141955946145933642071920199216138283146710357086966846630838007107333973978784230565826996284232583797639758211158587585333633423217611351669785382026449630110114870624838040836158343211259943272261668328972370934831431256344311575971942573543177898329571384412893908546843046912565856709075632377188741221592966901444792913075084468548345932550571155399833396850330383752318012562299175877934582224380540825020076345745121635838334068697391020635441784694200028944130940893849488291906368709441595427774356770373751003703198182225548742060230461430172579527734726827269430311281555124471794276508534946713012398031176781684572421058896070048901994892298579455101226670362671740163821907508572029884032249379202603443885602788136193016694039224247391128687782401401112030397988982317311284349857451735188331711806924240589009085089019889934050149760806745576554281215533582933748827136097385124893300766112451353619564133187108940562721959212589924655326671912349942367692623088976303152575180832985661057274858888433284037162539078448406051092528724079619933279513945505662057194985768480151299316774582240298423678660317452881174010621031373310979729244011522255855118578202432042938200926039049487100715780141202828773297262040842900106690958921205698029870692071412979787983084016704898319967709305620890459252538161285250375242196123318935678340612743775082520974357683532723691726331149280816369333366831814888556850393017307793438845186059994078037889893804016160895305501181439085055673942527036619438655502542102132918681571758496777700883676098118986851522793423345829682558918358543565849827124289141837787416205392580820530980708134731511569907355565761489569826314938184469967666370860335270967539798470062499442684204496693154385460066050619853433777873069274100102861970931346873684378902758483387437007120272957207419792483741449046201885219586494569444613735113478000660979026612507457584414849895137390083082409720906577600911105565710469239848157253891195763410498784930324938930907363855946552816272962974771766028168988044044614072153219265512778451564099273386957654455862645728666566993599494461608934604498889774516779782810544927868023110452812191736134875229373053922331963789700388092025734139513080169849814214029964792164139486423390115947357263415381912808845478756085147609315147227267946112415171749805697418523200872015169415921815679500641236608526094486460808848640565173406019071253077267597232920151139878095974310748451542340541148890177106091365384577473874867466120985761482089760748043530941406003802294840860710953820644518479123931693098395450027417946701488696003856909363485097661362731525744849178593913589089604037957229389476467126860722946703569035720632885106264862490729240263825666106940537018471088222629540352388779567278242974579592047321486439978562643955077306277632352744599184383316643086539001364228931027093340672553222238914937868544793023490727174304339098664614249680376273474781821650939803578533741147555006388209957392003661654744798588420743008802902509541495689239621706277010384638135107756990499130526285530004184821237192677756058143819016371136775167807021913033929302283280120873559865672818647180509195596644556906209743732082222883439150447550030912877911480084929845672535963371287261357078339809586266127985092762946641162480039701575156655272849016369821055634702213260954421151538164310418332566135271637277287532688567966659508359654167894480690042950578626915111324352923556859395125059454571548631259559926299662545536016505532640422413000233446410545642412839072338706429689505911523241497831528329841843094382021363539776917363090249017143949247143340039695632336381342568325190536270767251229792701039255221657534729557092326743569246445765189868840103647221846782808311822604632174017668070598783294448232628525068321834871469457456854099677446574552258225818205315990651342743566404464482369967902733638309846375815300826153863218685266867212202810353608665287307924771550000407921840176598244579205378042586363888942337630127951654090474804105758930564871919242717960229385526582539810743676827440193555161025958955584912819059288387221159822810212006554754430862225387141568748273208888104708336126171442431909749980759863117942459086113409563060575770372376720712675350833929350408191564424497955289358356957713532779562649073143356349648595048372912424676230411051661069003336368801558098351799874048464645701963726374142593136497149201631759574850754389127071148924166099809007787225269561365339915502011490948057970315529356395118699688990819530980413490973932262172681364976932828818624807821543254278436552589119838775588734103344257598148732141001076510502040370802893200072792494446769662850872326995992100039634148766308429487754723512696566569529864061476222046859491865142008672677828416200169327841977117385072751058053024247964846608125791453563809529734200561572573217359103667030852479648567340035146305603040893069061149646911047703562123683828607861998809490092248810946943354960492895865048526718370632829584842747234050246944439089917439396336440726154140582731658693913614693804774353349709969959727903515572050706549386236770451007822575385393009320561768598111429704868043819529550686063830203834142547119472346512413996646190701731164330004427043938706097004776558655755768578550297816570554564395269546272999853953644296864721665564358276664951481962091011143108192170663349915217456721939863131194749951964297731385693224478050377836638379865352533982394427868567057889614727867070354633101252642521971014012680261318831435735507664802129464114428861595162888958093224049134208438204090316601129907184554681335049902927819574577048289100779281791356483182357964387298348673822555845454870508291905663571567955570556852138268419065055821058860800630572080993619201702996493927094438013870997033840180532601802806091899995945023430726946118315880838635714633144582713490932972574457975603204366320879225374635502626514957961819728405879975662883418256219803136116082022443067553928670613733154761179862802936660502830306842328285865419975902772103695701312307702181135769592318803565556067741406354336631477610826881548514040364269706511456105137495176062116917392000130291334175400005036135301882780700346828957907156909379269443353216037634345234803185170701203838474446033481070483243888843579385860043030993596807561044497590005538577013684504463930207228397618579826302338455437790485151273305088688981008302439732244074967744426661121524884618825215979117728945113740687598395017298820535702490862278304951876557413498670547647336184514961167891135895892569637492536739101036495632413084002925900702139131671165976253364241902627583886781359532343226783857836164460690914688580680316148686434516075191827756911869937369257401346541520921186584795848665719419715881529497947014711661742172216410230425730155896025575675609760686252991855556427774353824870159574738767291545949246896263100402741794309096952394164367522145064296866490251750595374231763465131939786100496539140771171673951111372068888618168501754083714823889682332802809780517090859030629536364614989871773173935581373916050413528843448532626656835046251312202705318596509370585885674890477632001794975135797276185751914638756734317847020996163983701710574537386697974885718360123265692935938920395430058369840239575122770793800864830223822633695435566189045454987260892730098867296499608523569222813675326395591310001039663438843119180235926319876497732252393172445096267817322417700613967941897355688631863107503438848768432264864223441158446268073840039604032613802343145213342637868380977401726402533003217156861970071702824378793049896336767496347907574602563554270355041101510179596458162957781132888817482221507536277139601573267203863911143643388049534329470948504518471195269089217164370587858358206107218684946662607846291385052371278496136311116019648592317265722891247752223091065049960222103687822891572387889070875640283224523920118916241495817879637160222784737460687461687303372053496535903776112950309672896431802249573664750526587823414483975488587894171066403167339426416243760290873389041658696415033875502828469687935487334430813778569896148963069214848070252171367381593328410746319386926970244545892449340047989599328795775747063854080330006306470903390284697504148254509935866312899056410561333856155760444140903041670961442204121185069815608364575005143567620821606171306913180070574946593209434382997916860971421973986740608291410651486576272127343866230524368134096209914251608037941955065642921673053365043265410571607461606939453875788858608943741674603805713018273611368125323299491448254746483464855735230743217932311470817127884299303435725806494431670187728331313261608405149758590093451917758237750393121559918977314663293864838957749742909602065397592434983324147991060575219574256088835237259990723975112743599741938352694874365959945907861540800558442881982200959135160988567642010184348554546584923360284428908581735150585607795705664123933867350057289306311879924588299378053001772213151448385557042110717974868830916244634758836146131758782319548924252337701566991329847974129367151665820016729002370465993642097731988906223543712535327155745561547109712326362854622525212951729607044476033420176117197400121106442612808431955234200310727340082128986384038440160693562145157741804552428669947003526066180146481451341444685526031770739216411117368688203975665040742274805332518786692111371460992388284643767664078474414850685614036165464208103680706893471864487572928937643091732700439879733377505632287238984053627234189407949032293906473781680319952007359563043370665975294307254403781958222079293769844992392646239163582769053098733331557464091639905518904664514397312676529885585728423803180809344219038645517285170317582058064330307016424867750621542098778295363997306878527881629353143628921971726341399730384224222650347261868876811768961569840654289405871337312380892815843203294391263318849770653805527668953766514512967386009288634601203117191609561937303323057728632359693172337344423487085088937485337516052273991904994309454393264274623450193335759277022742161772235683924605373084089916991540360074759323090203791519429299065606834162540113769474770215911448523371067155577744977611671528731847057942258673310315358408748742658032063502828427738987798351738320590022084474620844135601621494985890158206259341606791152291152044655783842698984249649360082686979365033229081076004647678792271208315605215878702209242427617058800055313593162242870784462118884706492855215717028817641485107724716556881454384827791803244008772663717980652981995876095548773168976429254166595882881807868196309751299375332716344068934953545311710586744024742470146866622557770045955950930501567889024654963181413525012583964242709253427211657994618727814038569594548585728476136909805545369391367898939082438442777102284535493054051602754594492679619320432897039780066379363510266970278890032660698464853637975854651852535867486305795147613115584125454373356381434257703701322815484870827615499019619952256356023764433478344201179143883287711449850300878257362716991364987862135553856653624332455444687221246937973020241612240706144030169903017950982619591790589642227719946624821183936399063056422588874027901092027339958501949140892383775429637772505048829681715267696100123189613221240838092667046720705378868698744954574664553933448143975544635861552075268771031190550020834571399635798134807251656890279550377950695945885747339162469169006472491031125455214191772768974077727463044952738501558542852890745835565566602864025874486751798017498095754321473248288439164006684521975500722219693670777567285999740614452172236272601434266317200615351530442978611013884024672335665469128165130239267204037574020507594824187432413539830873084288302423014024739431303795386459951059551300216654025437151649424211732467251072732425160500695040141864194107196871451178258663304098090782320837547572076361035951848591583928611827730797133052885457618701798130182344301932414749296542991151057287967013386960308598840034871735521470799896133262209980494775990337881152150423766294678469862066463775017566777345200069019595394109936308582972102542263098136572762980945582543590762336859806148921252906795466347890696183609265034157358282301564869121807242618745215216966735816833710909004679665890176349406599409957676327301815278655743901300470708507450599568784653395415064097360649767083949464295664880359988702800041440298101440763219863903506494073038195281066268287776375835395516602327306125919250900685480219631435381831392417037079253735868592140462820141925261421761060435086515119740240138826098546051459776123272951721436098810339571051205966984175438162532040173864025065937635334105764750440465769890996780044757932990746379157590505521967612757668338906533269628666450070903306854465361109053922067106876475559814608381962364207666258094775927979003916030057854437198522063684488787002449922447916627109408077177765860677574437203362479594251978692753416621024620971230725089254653082248313524059701251911073955041994687000610267178550599179436375246662040095201504679071851810000874899470505215202793003018173032194199907536412559204039554364071115544000748017556178341502058071507817271238007491464712095501343353117269645009149502601414357228962665236745877597623871462046975787435255368707657613313968819597934561225189163694775942207624766930890121627468609712769948690457489363255924271894986436674013748791076328056595555382230379460010089421233978078304446089245232856511901869154715352739003678383590065190748259078400850590778743055970780851783682263419865338359052422062174401282818046958703222956655859548933380751572384746793845686515803279547809578448225662808414798243096402427033029474739236704509987264828391999928185615967348044714679629363620626578322850542051602316596266886087239596769508265268060773769753836842665273681792619832214882832342225435150051591539878573675501853777046833185436578720724661996644506348013394104779063070199080279140676002125068143676019271052998189829492045723575710784463689607005706455729170741271580507906712144724629519193507128518597003543993774486400312793290660932463023973021491298212636935539257383915813102909281478855429776804618583158147652207653794763199575851045859133380250856906890918559321084483315127351717412444859078574647651219423119919182726230383160752251215960081512762459707868537357827926377072723757228640386249566263818861516342102441539488797161726693499523943137893603768687424520376110568389104411744414929561339729460433953273751800342567404269144685314597778957415999626266463076456031687711053342125799573688244791084113300446934544571412401710791825589851531248192437669384077470599174619812651563164650319018803357022139290929787256890468161392333788613560076486845482623623465686889775619841082723492644487547432097876611310018078743284005639492017704625051093780239794455151267072503267816455224333880781211643703713207342710832287061364929065104330431149657640268179085695699749062106658863490880163719816899056904025240169356507126391555702388333561831211560043991711838267768555351860425506780384679994429996901606206743362756535634374938438632783719050458750312531771522486326852703505260005631850857657905837091503296300285859055009339312836578278425020092405796047694245368909104614127118988596228319899267071364482849969148849271320993915004132711247658588322201877745228419498544087052508944136671240337652945911553339625081117721750059846520507257720464053622124996441519340979551147194012277292744200793807773261338525071151002664565438829760203960552165466270697587008712022797399538649403567263404080859057089822575255430417345752999618629922254566664763086698532801787465206095524944058463491578119101832592304140278639899726381241804203321814176137634488933493689627738062555462546752695913553085188904370891110303923193132966243036588662211801903389170597387916307529223848802058772175459591607126310679088596425942754826987799528786975310398817013061689913537261854401943706906757663407308351494014710344014078782704691764237297925132793037403202202587500909550649888225427510106316796677895708772585947439918222334209572213440794735161016963616728662491066539335567932472498475690091364437361605595757489250045954640487577997775160613245771185929469241176527920050602146705474398067596567023693978439835493825818014745425695962116194312793745059675329849011104501965736023652526946025813356165713455081829295972013657782231065599829165799068281428987425599427108356454184942682917229011834472890370744100234176136236217287572539907129698512859463157197578084826031578774377419304584910026173439117749200754482997734878084743887605848617444193727544790033055829586289018224460021343884000435766699199877564493157343667661088940280136314330558874881896106444513954170998363436518235287778433639356098775040048985588561463894614278527496989478871651382509558340921515317556454663429082057863491276035002864649910029649731861540044283214377809914609732384362551091007899933124474850058367797822299504246917740379647596008541756709972922063375712841311459697616870214475562042832418727560174931699278278107936348030303470864260975510617479306609889518244781390190208519035740988881776960481888332567769382889635798669646258361676730317440897605623158281257899797254089182841033962300212163801333715643452031669076539405216556437198627392799709173223222848085978658632066021492276390399730825352837215498089291118552242384281785231439822513320141527484617882618078904386945047265818367562981684275773676629357166502338195741380475461201401084586092422479521921054110328434516917257032237974880363818531068774659289408322026882101919230599194480144927210482449671834323413435865183996394745622722541674516840979908275122537094295332223492490864527258610046261578702754262893956131019549080328895081954080026477060055889139139999249198592360879449635937728916435827933365410620139552581024248945916300754118378302820757686531355694521577596950261595960889792673862988570864239748543246641531182565919775926378033286939843801088422541277981542449390774400231302545868342782450417005601712008200033008379021127353171015070612806727342271624606627161211489623651191655245260670139048724058627388757313494707027149208203355952638945476504927292414992469989283537580850521077791563846493099003014487858508783806190108056165683496160559148675992394282705257455806263071489593691619878593769977566106109498321498463455232521145576241154726070788913057600526930677891498774732652617836687178650366163934253593421421840531427365742934750274699700249360537886881811196792867323883627153207635054643063992241513759113204257361339593556528208663163501264871958742944777987200695035166765676682892972757152899667859507987553140268249276688525835161896734884125833435725474400326628434261365073512185535007480035345227122045112067582564214838199036992139148207011973245604775284424983460894544440474173389431864602575402646673289769738425684701245485387226555959571124977798741869132359397400523333961242785153767435922281902347266754397814045215277251929751298076303167140510790986015666531084590767249333106345267432908814068261150267702376612534978789968951619969120291780604832530759757889607991531284386624379925718463009480318363954832329259365651354272423219165299259535394413178824892603198802120743024452957535894318361541645445895185345663977593737178369248381257915126208852964893772779285101418680786204013642812043942505044376039147706608735164444747848274157052019471624204882619824321498204440775872439932158351402869072790379985007443050084010079423258745541439260743631453476588230448023013883816609243559217789711587120726407934738119540968681337153901024907795899676976455236472088183929926559418026291344110483325964452539710473753052627017325948650790525022211011151120986934994948422808372778939203111521453001036092130301794384644873626530303866346249608777997624476047846265853796986085409824051874842730118212432666086063105597107357673748944667818149823794133905201744595619301963725557493895090171440032522342929032915868612634788713925110763995384454617000753233472351544394967210162159579191774631981183971583046844951086568598514675875874818036468434539096747316645838044852162585473299660380823861795236835340988425507149907329409507452748919240013358838770411619554783650837521129708206231889391960919709630802716943949084502189886673410382474928430123711783256385078837017773056922232374979109659717142309428499327216643649887270121409894754861418437886593041492327903186917761595391918468760612451272509020824560240041009968578637272621513278210746809273955414341478365692491700723139484436495559581301892137403778008697597307933771169384023208810059642638213928647300463615917213490419353823546001817668234209996094454288500455325623636021335861230649308944600332598712540256371337260680496256065717328272312126916200909454592518734326607863316904156139885049037652366852699003817453332567360301025054784295532285298783036695454075550265187468662361061780112505745856064367658605249349718059130641022966736990882687201470500293451657916905537193731321908812327334734451235211079164877531176575577726921911436818334440244118138746954523973186416636779940824972220306797809296283286369365262585394502106802369744029743934667023213288419468020636605330012689201424247134428441519875106182152183958529615881182714734802398794665477024825519161719007916393860117602602573317280321028358837856154455729712812676586507949563698294967888376296508409180553014288364480867316218803775710095495008443490844379292985739225568535950326154409289600232248867168146116891553311884036017185338289691454443156918782351252103388439239056831321234854862091225978150855895929609641110854493822946610223314540582606830050034396263750801190332076967044293138037006775962781846779811106137207129542525393152161985645862749669886170625452842996437724029101185648785294285272633981547257950235155788149246444383977799100414344610885117771773743966624922388396292909698661358335523136639592117195921995795519348294263519281255693351271484268349936738515628320991361126360952795803243541741453707845756337135028664199204802223681224735530752320317106950759531772911406332130885638461514580214804960429041268114144188601293849978607844276360018904203060026557691035555259140019587609973067312038894561398125657361834788607755178367737220288523422306790894110084841220838031637305495699552172877226201432796055988705347403467208572011271568381861933030629906423377506414144798862118380458455471861043518043162299586096557283988634234932737135898119823985370535628120040557484981687523239655249459703261580456572246247077330451161586149583841116745261404979991298739094599234540342924385001880364490257933435072085473862944093372590939708029015867844718077590913061898704848621715031060303349339557438750189258411102724924659030432634025195424984177592490374412481778868762638707750423611730930117357740184321971300237172145068610042934695633221636542420247320792865320024448006939288480727907591192326897329320144757132925308321103472456268683475111124067288042752025515294675488772868557763068447802444275969053238558530270100614236799674654670575921926379867173917143819252240449181027189584791956949849712069335606338079529938488839046727720916154395348296759911186619157282601329182880473402945216779467766318834899330944769032126390516171454775400236983403424174297925752144454795135485864953240716076042695969636346831558575766306498814017378709912406148837476602070442063641227160160805994902190250585263517028395846377781042603051210406500409181274455316055336829748407073424717239794553803764405304381714159790198909365967670506705672661864344058973330735691927829172409248991134065401114259292229196336326492462840846590113915424812054999307637144050947715703049103899434663068438294048658888720337247441600424386742821558938197695559079012729081831764267995552962625823333718022549877727644318667680562939890361132573415371826164835543358857910540243140717068677330577506263725568269355822052579881436810884006098245818940397328479614224731403071167473959813255496475345214930094028685896031779442699259068302684107228543999775786516669560423737688938028576114865097356506266780228538621989927909524575377452748864935552910421206511195033469651776629092453160793501143472854132828592321573790701706794152062681896551628223963234448391996964239815347870341411219028746386284087587497292880723638587582291666439301404703258675763962756292477378493334793299002751902720360452744602473716959890007814657138519866539353602990665665455397624425078772959210268253535501973169916860323092774589982274480166499743713569396640344166814599811248970413045201478601841720710071803367610520530562385893125595142183120096756171560012965686273231822160681846774126698239424310095068209029855017462536374919434038701891051084364334552376532062609147119298001713934353011532020359582264694134374216818237048514311152224418452322601539290650848573763390284816930434973837205600832794635585264996276107405058923343375912535634354429626939239005175662468103738479672340880446223200747355303851646769460238440680638373455659931675204394085819226194023478398875925702666633193242500526315323233700395159435020341878557168367927745595962427757380797926119270132063143189529463243512142765097386007937668903692477653806301395988986975185342721241777622301138202601000973908953627166996299884238346523440635980025785420343311712125910866912637008848752307419599283849692717617081111949197999304092227839846836590516062080431201494995623069959772679173519707030036680513487099460607741789267315898008966250569844550924265103514631860208342358945055605398268133014438463991118653167793690989846812213466728491867773107836907847639466909052747608407426232305613632512880665674620582393630812719181381589803551414459962873532930291075230490581140470214358914096513034320809029112375070043794634004500315752977172844349554179958691317133332552763042894345367156278077091899011052381544918832528756014826383314209219309394010171477683107196115487289007123162506153575434425994995706298324315693009800327489353525096698315514116641946984444533057121899941258825705745539012314583779540047140237766350263405530659659360809016071493105910237137305445707884049312907374729047015600318188788994689411680536591555360771730879749480250762825644371421628137141133320461020534900195986313443013305356195102844774374019983000013780004109261705367878504175659124362488315977894690354736392028127442658235920445801137313111692456992139136318882557576065558746960440841926668397682902755955628815400939570389465482254190343140633548283722745227102685171438990494345531287719551689179735016743627940672641237310959294794619845754401329406073943805257860735478929382364594810850876375435983911522679561039901730246076595222887131328335047251770043462498874218680792565857931728384906331252098189960814210087917700832653303783929607025401444336091928348553108378327752625417971146740084084546036987532384342836373830673665015496353527618017339436115840794891391320162850021100385657969500144568963693754937327932550496326036172559822346512425037046748738556625290623727751773205036015299089015209403859868175379725465206601006407725670710513620927959993607639930025965517068532399546200197665521824582911274502489388706448146024945798861994217721387362590710414088342128985812606513225943509343236507456564127144094624993134048355566859590026237692120290095085236675281543893000677118653003016539302275952401233647787775713541546181034950975202899719374009195024458974010799436727794106642731300454613501469257916744901575161796423535850780221007708170804216552447311795084948694971774103234775643573278095004896029305063442111433633001259441700467731297828394015370477465930443421724910284118010500271075361910055690847939465111817660374179542571401667876952376612027583601115065558990980764218714473957654296330866755286828733003077772265608041764842755292183132696173946502158025581595220489097799822086032681704001044508439852321386577754323925799159782701094943125321797382444983298974736395409693998679282247782394770279758408026111657949343379327963012053781812562242172924387013507166198038007558865235017146531950952362702459664865747281439015458390723771737493743854872339633806979049202117051546565912379771787374165379000177323234121419456369923421877559505471230134991632301566416124604144876551799595148724764646078729156990618418179314343975467634990094697973263430603494911224322045085615886841854797881545405901386268037636329425674143746446388880213596997297313696833813861657311972754787595789866274137554690608346372068124908183941376119904090020803697439421338404114721976466195976169187234521104494819956130822077010847045546443761197646854098554881921516719936378567260647826938397706223995844406896065107525153087551838389334572175827469415662540418241591241682460235163080990182822420789167706876016150029345810232989526752481076721300806203220604394394047741221531117002278411199821631612944501793102755116356201021808127639699216444483065505584177513779481157021259607156326505416865652290042486508929738877547357718995393332548453651504168638183346366247073068310615263491379611891590060418235007919740242471677636590126441024411325480156662773864399927599509378027076543917124974853364183155902453328787865933477051375273461835673819689395467239703303555206987032115090357887179821395534335313633224033911115063499284468449858846171176103056679460830369157844303193878631729866715112800684835315699352595835404109649857059412541870818791008813159843539287505367533760575633333558651752913580951933588151847404291379740526663077264004332171164072025066951341919296563678094009066479314899716898277672465868368293992275195043404310068334287646127735453118362823664277404267511790196507527474409656734997589633605466190224754863642600691614983126954399858294090736353113839661587788110396046239738368351281788330481932706955224611499157635686865827494035680976750568718783952097416775543532668237852944895290446062641870300008098236001073180524065946109559331202483294428592501847388448077434056602912301266146588831465713112910205160937930548292129609038471317720498012029977497341565726101856751007576804580885403009469759812552677687646872223524786953091795746242950531230613416086981073096648153386284598932470739749262910612985786372743683520778706675233730996121781418026936946104360431472447222098457023868281234162327178786062151653909761835012324195853790377196359286315968746029650128828591360159940309943096637139644405282362114445293550951758835312220155802290863052468036282710463863680542020691420363732605968534962153777834844034436951508803565467833713103448567574652075827294332168860124678872542444822943951273528601402299080657947607075596588587938653101015355051691215809329848332861764607990186624436679607964921160633987375704021465102740135791773631482178253480356053947189163918822294931263000815428690505042482917713345619531442934265502528345972228161252145166306783655557110092016731115583574447945451965427087304224787182985305005784675203437808727957587766487248963741078047521735093402356346855912173495388047520624869427299058527685132084389135358567285634067828933929322828853157194333767408452817317212438097941269427581622573786192809256443052833173927649878523633730335097644038913489497869937657795834193876103340936611574800144191826840892937944216386431397976289286417746427638871714159922660999000493515020298687846756685236392629647849598957734450600364745351897582520356943977481921448191143010815747842709248150263675432554490509395475853500370530668493777045575663229306511147826719823168674886391235057540315481535368983277251883423157615941746931708257720855595281049034499971585515479763938243751601666466722710545216074469177412825835972361881646801864956150693758771264841138992945367861902882380569102973136938245572910943884411984068619954281834745102703731409385230462391457592723238606315040407454915486883506551205229131012392202044797337153617913379248400946121616054178418281296544964685863274980744343440861632113293646991045477234469496630458480614056267848195682561294056080203621481414500291355336592663092913683650196651719682820125584724666368357938318719015385311841277212701424767312163376103684524313562050668896143654182886251350384732291718325010526038852703702703801644294793328824229143526542956528375017594545719685552203892223300575545800040083072661699067792215429731580966859987619038869888405557348743784955240555669971486037201360874378427731301130596597843501333465314636759810557912316542069454965364759384007895692195008991332266596309785640349624685001787821993445050183319676271483639854828219960665026665219507319467981029071815075384593565931271344157085132251073988935246951029534818017446307583570147991163737895001210198196761857214748159464529470204267831677672789964329505543333495386237582351318159236052220851979452647336521123200823145863967532430347839646206064875563195465832888646410394825458881131727522744814162795128489979628663954962180216135658957861390415800640667834172902037367026327847878489331793611407953680675914143930713837633345029517068289500535157568376877069004152473261975370317129631308468813017825964493697243519923726345488571496275436758516669594969987617206802888003326141303697435300772510227015611581326764433325455831093377165074736722155199858783482189372992801287414355817764495413394647767934948498846417947795840041228453620823707428565145057557914144848787941761017879842577349210935930765482054776709116926700023877768210777152386915012314868864622325656346405921568109665597428515439671056704809876926536722917774757082070847694507558034799546238864642065742599668273902127259147577874806135454829235144444463310669582001990281519808894092914590061883307993871362326606781416166485516320574715163486434524875161290249314334159060663842396663312492766201629426905237881762399250548799635705017722200437432935864460981079719580013623721090380137320508620574269541920693608201426200631660158522632798323691531783787648380459782825354033985424908732668738986715081940498029533338413932621273348469819323386551648156473043788240895509903251760560605243740729952625549497309529440454647641791843850681721725107869692130163355731851408847792708435514468956702360907207374100683809475318726635059838783393503359991070714140041817495703457084493249441686265564585484470268997583651051724884743721141851138799099754201400037844647096701696718209277171221227545487884064145395574843430314064353102511917451210933188922831719372925077409413082937001960895682017891884002505917383764398496086208430745331394117784679796207058520040607779609715318671268188120504219376330600506793647183898842919472919258147145446744476405556430224621280418972666502763236797064318352955719717382436249861532722183837467176092797003632796869237528616494929750386351646127905494015271413444431085148448070866369690057970038372753041428869760225458797355393015716364160126441942079245508144957852738499255201092328936350191683947553233608147412775872747702729798142100601213959815664750617544886209335089957654787070794820274118953782304300676403662726839163429558133599854004865695519447687089929567512171913251610667134289696557543579761376758704996978494852570700560277494160231343562578749333340485605384908411132413455000026282096386750204451879266238068133162296977194468007614542647507430124053754981126379815094117481430285214436503904567528414460388421822183218947595724894896149333502799337041309043993536589221700688920361077598523831935435389770971186162098228082457787506142725950321335664179311024193728469459324727246103801201949705484440204501330904168591832434361001952628608252045109518109696551808759468628644947440089513939146083825386081057140319975402266449174155840131236321312398869486227489295702447810028232233289174061612181148453018683841367021599258558543000860826223990217786182882679056589485561405842382834212629034836290536883503742284943972999306599992972979636248849849302937826103841667650067182420810571003907669147809265117876348168708261896253450670178256739991002671817938351125752679182946163876448532134100414911074943138114884059394987975183993977254609136374263640091243650676755682614958754848171022018400909621025024873150869979885604604416280243556249731921300130915527338132361772665492589237007315001983151522497072544867062214691677567816905432897029752860044758094954893876024561169133653151955119199576000061316840316104286039095736685268246306139194610617566296227003850110801778009835981868976469336651884930776310714980444054502578248545530664434843859620544782763747909749604881343879868555542718884812385050485352813331395197407011013557167385983158951775294615978580701463711998702007766937521232479068760712956775726057961267469429675474512391757849843886555297888199710466663638634631078187470117619368878088447906387861591221228591065057259453693318261373778816348472160470448656239058241740094056791856370925103002508176407388392720029818506014664519689200165409244184928742051825502780706806189701237761609593414768112012408610206349516567569433721618456380813879213087972023851159521078251159913602903512448541713769108932975146271461467220474933505435656376863773093169329694085939635504295365601516190832153767378539653072848824434438499739337955912678336862479071335215198163378321655085372324151867475849840596269945821813404072391286478141519246514998073654445509508419430954595862092654978379873073848855672440490179222422988154600735684421676211048276651162337295019466574134135415059369793310797588496216569003040564481306605473396954570609798307930378624171202496123051210930845089465490234078169242290161259200293893691580198351882835815220274761278057129782211482689121373898995586691050630386519195693591620369020640819463403595765114759150021773834073949689795768199255861362910666969879391856916493297572815094522421007956749239995991892265754955072270376575317267572622697593195540792184049627024266825706341630524990987172819028343135244220118260218464068883623302155517801995594774368830882027930601708341765244178412305751025409357285059681013455792613750548435777629182239718146589914785272412154188397151650213898822180872920310483332230084112608875401533622153542870559705139948607707689695832397313951672284299686557130745606923881417235040513030962489812838744301213686743101427855895730696543228779527192297378401022438740949082748260380608212814661775673621561053514077703253430551272063411925594235416393173379310872618388189010124465666638068534849499555921765927988695465949751440106157523971358936271138943128631615405269085213978764618385654543882252322270192262426778276422628276784248944245118261416108034470303720638586581396445414593731377554505929757591883815026803447346246582541337881361688210692400341638734166503980139400931869388244397304925990564823583355375994163999606024684194022127483947999285713937717980744845689089667155230840428153394321833355508803299856344980105511087630601042043634889265764999220890894459398270807876340655031595973143304847262516557683549560360815602323812116988845594541921978074454959957123029524626755118762009987211476981908023049881624016463166874725264829038357773920271972382191979002046884927192999320249983804463331813131320203802429539197268965287698172499003354849955923563186271921519387467464736193183727197179998436491728973754329917976517397799766247084461637158572585110491070169838900627949849496825221224748097685038256732107416365827583905757028510049799651938937741129309696267762964108356594900857306658122365733303316908808448782478903529663058039268489881446826987036114831534622689595924938531974295106260095829250886799172148061545549447268126319014877457692722015578497948342332481497025467573341278902516452954619696962144124762981810337841332912533395810648448134367180638203895627544778633781609982258976136630622066524647636807622748397033472650137903438411031011448869305701411530839240175784868721710658882109693353390601779335599421253253387785855903040383972622526717511920834266983522669811832167771103092973612597086260124570686492704529703675178015560217587429392597899062495824134195525954824179916552116706452934501131528961743703315713191164268416277111310632639215187905258896593189382108829086956781874418490556712492825458118238103694880821185217244716951993274940000529936795390194552388533020037772115364879606327160529384403782890323743118636325228047966018173156989232855922325463464513376123263811031061375170558489210884650213399832561359481773780604963604311137480728307747279661794593618148293083332821425139551678854783175331365968152179280521897046931701109260636787222424048229105691971480287622977088064113983507594925525351428994023941254310988279269893396339675452310058370984733380663713222268051982406589427884379853106560960681599606600854860467845569879153228188228104613282919073867299858847329362648365502847657519988132776553159427177679013934908022939397706192606119242338521055901338168067073119848729531184510325898461307671379565707590016920998595188471860366453907400649204851570406218393433141696156133355557111304558094329579269326807058032971367518455429670144262857198080808240676743842637751300788556197201235825191993271846834630237070793188507962603465358922113350436481524466058010209935150551430348766490972580093095705923590175701592269417900522101210417071594162208920224533737405654096553963727832188246698359370043668025705972682046475344425683465664680694604488268110247333100900559951869956112376981176972298053914590802106596467493759749356901170985014474918147851950958363117177960017981738749650760745325373372857928394646033887454125040423533565403561268628877433924067048367976147295408825819464750957844550050815566637016485965435657002830581236886239199874093115383295783965737282065188208601362198687241303419062100677969796158213782089548706683589592658058550971630027203791757364270516791148231123897725131843773736113774572240273329763869950765611325711600026810776257184468594231837792251374445215292191548304964469188821874907394130553339117143335294563729484965910132779442988146080526382969116651164222691329468927731986714644009244725800140426175462075132220215175531626269565843876933303032900457465146950369891703621121278801600235303619667394812802337609269466703690775443306153705253501953208673296355765100088395105158499374411771677680118115710734095492339342938746820718965043895852096178820301099933853870506242015072204061930894794075736148903602814720181611299114944829386079224987889583159606364606514404997361288490371225092690999438724836670302623643151385643440965654336753834171047233897012223224183757035746148807916233785408178174874407536029171550607450759095008242220415235533740075193069768996017720006093543597402511743387364790747680235232966114077184997775003879938337434946055538665085291512046845316276712096218569770856205988648392337909872535408877675277479075143165286768344194848494194427223831211670927375656285954957274383601886092781872672809811614026990094753935460520750905702789617567058758965407481734066493940631560699094033004705871125872453683888359526749961836876135195891612969513004605908879353244931322334915337811184483457427558752870698300126695759402405913635915292771640930363680036603150145541476789898240255979148311154237001788765225390887532037293989021702637766414299827151032510760621577494843397724004374441463111164751874040121539197647031869029065747136653212149061607678120589774675761578723746262310269611624666473542405102195333259815276439246071286559580972235319579369207313185681460909044291246679384950134659705076314140616308677859229136357948405568366743851953929049970151958345136984156213915211714818919107346107006668534518174700581939427731248806236421513824913678650673769312235511792601814556691738634106253602599518433890124068074091098474055554929483611969739033071718782877336889489767589139653578142132374276354480546837339407503837221628980018231353377984183260583757431279415413972791119667510546595252866277721180453940900514826127951009493695211620979365065490554520987682131004928981039783732138405549566778304212354472649860698933518912092669032204039783870998508403010741057725586031417091467006204696998046978582904431382942565364595245796774299147542493935828871534423743513315021961990184599717400099555864746592521863288270724827487092901224787570024727125689809582306783660432808388876602306651121996530822880534703030346245696276632540303148232839565347039199598443559370996484269674112003109321720983914312833649306176466694010184006251220780062668832756270142795314943250915250280474073543281441947017118288510538081830308172917859115667498633101675260940644375137601810702481564474136515235353454250768754254138694524077220611368010880310751785145814020481501886496988903786753007780403470801973527422275229258683997451225182825733102918225325217861354880876994573159402432052398068723742668354937324389345350980131100450777176842072464731261625803928953632556529101661188450906565021647694358046901340106952522645314214529108295012696506174980254913256423951731671215290158701853384324709126872934845767627236624676933917702778606002972663189616880913026035062994962073646013000519492323270280924952184984360286177080079518979463466182573408440558712462887991295107097358840079999918392091438486103752566120083767083114960711824243137100120078724026325963287194415109161057455669747511031747047616967959251562718999126520556568559097928369873223553601557461600568934111398803768115544514810128552625430974589727958681537397364110301127012012998260871924452582994494113632076339876932425182094918579496017265891013315337567536629550795775126429685638105823749288305813087012853516933980260676024013514342365909921651131508430580268009113969405332912754672338541760177992261401608258613189176881729187656982888432424602249925194879302087538210067078700757253140276000846434321259666002631638321142636296225891593195366536787576255924403204314203842276770405729613375531898114481858788848345647125314822445635569289708151549452164833810247720302821822809691210975005450841759218773969089087219954233420992111818475723622280776632872081416949104565620190367001042243113263114882969930306693097031213699279166964065249886122007862454822349786852319830207307123626831763210383028352986929482974713137588285758582832751084037984106825827105762745273047710808723899788855562241792371356045700334877725711174327160216997263206532197230186277368253407583908268413270602692774363194108421275041335310541875336284545566663085979303894926610337401903474110175909690394491221720296000551162488446622440651751440127656586781844922554929051438597868677006225467824302192405371441032329219017877378539650655693324878646364437260902032341604952863739282465340403182258214060406132626571490014934174145755116506923766384259786272949685451686492150350469153536289427400973752257621110622649847619210083988373674148272113007894471278280493325280684887976213354281453288850028594162159303402489833105999599845534783351268755975478637074009970646624385885473785551319024013958232617661337858822233620383397251158340455176222877245445306738009567952311283453787882724992669459953174922655598819643711446459457239783116507479520047593210215452225710510693344653150153076049843743806444511939565012607925952312177283753174532806159624900677357319994459619924803932238494514589960093381426381256719903416570236233920284642455658821714596283228238384563557875988171136199776607531845417014457169191269627853078921226751377092134144499111584760754373188561964291430071877353566329713256635507894541125174166361070191834732676651925924817822671554687219161950365129657074135874530740459986332703290250122464596653033272886636577597769753023985041096446226754573539710586591905550206956036167510405846889948729552325598323602227694399407164893891880898496341135960961828154993270792358927206667684540387988625572253024725439238624277438153820167734669491757236416470988389259320919108254571987813114156123546415860735171048414847242150905798647933175856482168513328958999510811386336388071004586972767631570779614390797272112781603098556451743435080038718683637698858089435771509857838886678749123403704374710567860697792002201995929429935046515933220921745972882169171428534389546426307177475838135499761377324490963450156239632129955347656239223377107175698739000069566785679702051812733911525577480175522001613207897687883694301019726389410661522979585052344792984718089577601660507687072701703711243861924649436060030227860562792823148977019472100673949426392992043069984354135764277146484887345059405390509437668796405564009104200606711787862787522962006654857601354337807652068387110004022527032422918822882945126705607031198798340312352012962214288423485944216252106759506900784180721539241254389427001699273576799188566558040137573863549894467064675315971009481016299918001883964804811656574513209234146755210921776605845703239427888739809602271492329092086784885097801600563681925289633253003654287543911650936388082086026915261584241064061104504702235271316515648326035512737133859686359614843982014351186482043308676869194284108927699210397177270867305755038110166390443213378385212107525816035586531354500582636766502376819166484285811206509621039782486241489241962479539602632751204290322958069163756839797071718753384113629429926268233430061298566294082277792276597784846786540450307260914840558429918476877206565739700888281901233162836784494154980948965702091435130993320572151522488034165904137226152851657178032060769791155239145311488999606198256430363133813195178721722688016111519316914164685719699138867292646320701044432063070412295613646161106294777798901127771622780955503870844902376009559445424215035028073671979433952673823648328566230613615147645853192378452397488686530292898063781275466272006753463027608120441970740511636514959304766776456449193951045547633401574557410323454184368889439681751856244677471695313941366162735880036841994275918478515969227753047514595602034110874680429877206588911683695206303113395028158152601525283667192466103041512598321731863871284458149559628878464798805385739325207199537040888371321177244821278319859994921185708647775202748254341254575768859205965310693416786413055184473535129399631060737254144129200609097296283661782345686695589740977775384458118978574090350548575417043901064004291696817255495149570637092620450974899643755908703909129702668993682204415139192955619551141337816298325988942656618551425803987851371159015259532868848855801514313927294122541956245552202140071986287339394457037928978095012233292173735207773243074402953228015140769400841361486694207605080026182568733201244527007073689477743717560988783685298732037290279956464273327984329929550970755373759196707364239408959942638085171794228125001152691949633737141772719295095063930747329692137628734731292003968515011219153759082517120220636227440078449713897032077630540920729735180723861008212239097569917316106190570843374009690619530916730836570546099235329717166642919514617984732621032623823578969468141349743387137012306488043177107068270800440097266787673259217461961264651436747646626175861727122953939947130883861725066650526357850205305143443168644891611731832106073863708482686655994181292266638853541895129344564760273574734364917571925996037842624341034730236441861163288457263731208681225147099423981990522031595722706197097059246969825945940018155977746732433881522621037706267178862830338821481879101463044730132126435321283079224246958452147025714604060479501860312107108332637634657075521540112980005649781588134138119913484227928244004185223648234736100310651204275614516317289403267502670522562298594199117210518887019189022066333116309558800448364523852932557539876560912460560287343389764829896244356546616739854946882005778826655628493749641972029221864177111260717079415295198838735118505130183199999939009192483124051251835176165537357508395150333307692297904380300224678421818087631431203036511357573414656833223305502318881789337412167019108901019574313976998356529312232197365403255783200758916800680492308908039099513765800680427125481997139514164720002328288439825007757948163232430390358980509431395603926292464369247348679852360429045419266422664633023207483858433161153205734112652247087490168588751207664284309569486923127608200866735167134874504975662617883943609898310976066133819065804700292708627222596689471977190185064506706441809563326460958370285621892940376749191500828046294451983617442003270796234844376195210374480975275011374593994026981277401920657118325546203816278800089116947596746745370760734346807211584136868981701087584083151874177067122026363174747091996422682433965322937725813723294927266134780624343208507311599633535126643594919147653948871111278802622726215583754004437200066505096232995071795748256821837040258142648958654962947340367072906422643394183990036064373322011229575489003421506823452710284830574576433977652396530286886506084379966556578253077165740270466875579710170713418334352840928176319384367454553443256363450479487774439425420677722581801108174839388146630974881853990293438705506045844557653757331494049468610900461885350329902699983653874406671504466640329133522475519878116224502287478780597997944460916140533008478763436884935719425425082698761595783319424648916438543094039192543370194118589159821562224546559421371142975682208854766523059178811424060028579367360558445731831816961071849394522330234693299401152142243612680261991856537807841046586214954321680162449983487555986801733590273548948127545737218791284112027792990895565071147408718221680689607245489107980784034043757678812633727941271441457648054176154961425688862753702924066040227142326746670484626572879083279663569265520506878541539713196678264157505906924801727946507963322299991130584962451071705640321557540228356551790626864544699369420868966805975441394577308946278849342520701312838070545920748190212459516911168583924685939980726034141282593433953836526852614165824422053683413440582578568647931423074223500651718177308311058999111687815840574493507400917117660347253727339723633948602969989634202888216238627143210457213512623817890256307902512559628416098008087323410076627449615946178181376902493344670449868814903573968601717395385239398217231481064503941386023185713378108860793262910756540208980140799201955213870960910106727182915715752678394082193724745391995221155537193610823656240328976919574484621392510770964949966063343301429314774860766434281659492550637578305676865665770238858002429141092015612001952725922411802901471677238160810892727794166045262895516035135613228834759776281922123716515931911057778125354166824899087153280756976878869208242767066471491358098232275445605946054483481371592580642789944089868298194198258798997567706236343541940270170606037949043972068328460233710617323843254316603896724519386174329013025087773602777726744544002291641431996897676484813728016997089763574814696570526679843592164649241128181034562060900340790111451804477502365889151446123113131152293204005319358312192370170666272189317996070019751996924477625749958891814015356255614791420947735839689675094787722106632095681502415501438036016727537616280977606658258597862617844099042509762239468236909301248419765470324446317901814829898968389881683333386491977747027601123737784474685483488912547044388872121465905992670585046543575880628869458921149256765935544212789239398103694130855815968957056387688480945075741158456581549077881122086065634599374115084888917125418017140611115294577963169475372786870000508727661107369931294345305937439849271243001058258634938493726839490943281795663616574156167386235906498641468169617211515215062726418287903199657961772558231708139772128057099772764267205975861276582069357230761137750265901623244105328767897690232812321742682708100222494277726733389985651169795321040654992891459837165709453463293859713871538572092113923152418805281258102427408994457064024462510514798752146630656378104550828078970070404215936950424818105486812182095341599080107596815408526867119295461678129459952864962669943230405954619172169888320507643343786482763714813064500760994820428983094169767993294104273198700674799730929874055584001671516277095492841700136762092786546284719011826789922738831161304845176580203172010229107162013543809453347302534401088687367549728367912283151883323152142031632011971136848885661314714736501373902427187058868742697683642931671861677923068569403621495341610282961345820987715422290578214083134686493631120278263329985474020681548405734756921705805569930166822868231895387629235728159297894532199477087972828185834138046170366102338944814862492774910012199204325012566279612197744906375116885391542772616008191555697295641555211096344259063433110960466441658298499657265568698391671560394889436039707924292530764648498027297569205934462575145647832970843321984692836764734275496011753190599371394608197080868003689793976612189422132922935340211628383116104222725676575501243848968628981879330909808200028034511184292056079087196449780013364021842719437582615556219718509370416174238768142621902713079445351742632207354795844703941941887048773258740202864988577488765393438166953967977306461452148094496842387581413291044932502426110325770221827574321793764535112713378191038872460303264437290025775812639365684691237013525626542537823885797604845083121318428082846225353839113262060307342209744340771667264416729206607379682109304659879231243255984865355362026987270006083302664577356962119832088617413925433716522359260648281752740377718950340372604611869108982125992362700142782994381312394141650772323729036923037308427115165547376812578837624099532080595726741460423209731810984939324441685887344740710681579447330098442808249611773250223565453645226695527836435418554029154065522713671526784317574094642899067584875001838784732304381904641842277382272499626948522992392231252293659403313268351567615565222784833233539159115036421923113262313838703413036747592670197694649735926876935027234804405323354032717272740276125684352412495256906785462536211878270689416967667623761053872079381536551053369407266419602907511214059287324795631815310313883119192641599561650770413758357357550196739906302840043951540521590501281528273661672830264286258641482723938181947446475520103950478239671798511773062371816467945689425914866932037936055186059640664480269888345474303460658211545866901834033935022287837243658319371174382475116281094704583275743748777903800819796852552405641400190029402200847997124273226114236810192994825145779495948655370140044271468685755701565424744388260982907686055134595794747960891311176075268322888839191613936101384667250043627709241058881694939247837185524548840746154136863848172885518429668818083643373599330682789720325295428699489433287222998508265734748245022712142883644418747892190625297436783085941354149867127873603249209494776632456582091627132495518957773702982680863573014327486378816497180241440906742198092763286035049121191430038991254656848800494633834269442098056153304746452662068865178134592847199773626970238431776550485536464059217061887378310522958716922563589751904828502540331481183445236959433539757584298010662348119197566826805068582569157430739890361580908433046570415693437270573566173657181010395092821613995702497624148008636689111121837504375149567081559150262524506631226298392213615055224965653634388261509097079484455955563203162001517357951396890944189743110453769754905918693874475816094737803506024933696471655655240997918418119049603591864772434096846165972000771384014396217170210638863546192362716336164677069469064938801863425318830442843842972358040946505653010113675759401021565615402798718995912697728953385602807998883323821101228499358727974995516922615036780862852818136085290882813023567766940653216987533395588818130023300779903930335045403900064049701040566641622895791577797936684534598145719383741156628800781058134171501565988101736657032593301403027606487797665056848166694353342155832447990915599927084093265426075396473330608536523208758278941358986590705236134212613227357993709295154090246425582992150137194021296203020831501393986569647013815834068458016185115848136710646879194397492268356630185145554739105217457368277655209873541887016142402680694938702594523582573207289172155641846911512423914098189257616833183582334004131876691260612719635787798805402593659117492247819940723081880409105523304896065033086424088196876842378116657007186054448634313250550041791062041685287957355323621108419050811665885296206385485207825704342048491689351914455167349315847906289570240407134721737484568840635647072940081728820980788213970680908230912265025017321010894035789819114776583995302266983209002610364553605524462272975036786532440241502764671859143820353566715183973764849781222486815068737670158630173541978167612582412830454340147873080698790477640130684333530268732644747658204530083554115533899688133025772068397673840916832758723786353110926941923517791578335720461383563275585037541662562433203539047145514565620764716113560532385931136322260123572048174395648946530540614557978145262897329842175549706118108396767286953903413356239755215692557726671199112982042006870392041020570879388603875863622664588550301676330923649674419067989146815696530426925173554030595915360940661983445722819121116054363308147039690331951304486746934365723456354528057212491209030686230918663563638717827646713976180928455563033384073128024039701340463931879439553946954197341718963506692045627686326356465074076328942381001429525817227032019630629927508613865239760958339483383175533681381737764893443932516066834191297160918506220182277749368331127478226923298963185246491765057190472596082700569632704661734722273168728946946031213018169450001763421731408126861269079633084766921949554640629610781439407134388991913143711193228901897748161533732697727515217769550017047926036302897936640898468068432499016446754089124255570454771317837934654409707419260104126201125255111182078217642177329077286739126059034714177386825313617568815581854316341274984199871247684097986255119997081495429278409171193953607081325782137975668774048876185151862634777192943493472732717355532819102602815732547706574059173699725099194404062671048009432586527427319745836122907174947429836221811343140842145687437499375237304254635341582487929783121276288235168468085047999644473097773720942581890044879600945110224655107095406227137528893975586264523626849117904333710750964543338927272826489764790156998995636996524810911243125256360212076216783598205426444610845975942350336532168065156190105556065172090959558083304035190372106624782561930927800895865903649127535881363000222832064282084004464369673319236256019682341715340457089094148364631567486339880926952369302082102703069568683639787402151700285054810770680653942444410968582969056185992112607124966279269742744385130368780128218819837540395011112083671492500124076848654912454503050503325607778394362815163043112308491788100442381211619877543446604106441688881484874422318256318262841974276199980121326153865521053167465500381822451106369028330837927646674337203448531208118719982940101059053666566566062410054805032085313479592092940985257720859541802875866751996438719855063927887598490238814355763293159108664184050412129738576679183588828733382202126497038951607168140702519686040348130916284021064859240552240711029963057831694460275749877041467831247737605394350635911817648036237282067216228906318168553349150411083223936151544242193303448383808040807704077846168126460905192669649373734851562635902068058707024884273121408564854001417824662472963480470331846711420768930451006653865735332215343432559186480736505003155849095624849876630811544248051953825522278756204298374544597807650373022232754703599070870082335432305872809110824925431310375605415402254712980441452973835926313721665465941627019290505307754083463037536287515839633298372526700097600800353931669276274987510934523879685224447291787286369369615419604742027820649307700867276940331706719045592464682621945186656032235846104787169500768892181390160130543949954447870376690294904110317344442538104710048466359826253901371301058777204636681993013346161812139370149126298072751696689325129086914882850682686913900015304818774680927600309213195763401375456253693996633144969357945215006760897160904709444127710408767669974245321208200480506731316462107949585147222953517620753263089261170499475551803881732310195381771140487906819000990600076093365002181005957308758774632373727798194888178562054045354406874373802338384870322962441118400278626936276783778086100449634604402618742137068883901409881694439009908678979810119859780987493587254912827001232106201627553075517318280631603513580703010790947697047397134605481004182028168329911659725488786835983496676837533037561378464543346553034148715351522685767044831208983321520651651098225012576322456686910883858765363986103387886565411019434269412184443995176388845256796165106972649686495026528611594957315437599779005476598342635641519734602298942160939009123390021332475184974562378931661991305095679882569148751896118259119149559795729277738112726241527658313244504409627494797596803496793341404883190917784959636290098203901939765854639810783048317110092202921189687837812309310017053343378028840431426444762675207352557890124948631795141508001690744465041420279384468832213392064564686538635376841230200753504318107678434621050086396456103311638807534184193635520323259080027503822253135153480398154886574819266213315941388247233609809356534240463147817014215943917578248320651417817494694573387981278795501410367176125399405795488950938804161544203535071694509642726352551420613382689189934456105134824579774988464581934632437964091826681624302827885271028190956673431624687554047744376586546856552004477441795442738346998470312721711700149253156603034052832760976456374534952808427747315799018814055490328627490349834663557869960269422407496630947725733979653401619424534562971002890781735857457499540885564716246912162098933961437717884168759474174674401984309226648283071731834572495594181712573341429071651282212683803366074535742005705376882809047159166815156607693510079783327118861550214828610734177790543078128386625926469332375775552651336534061322575543629264357766007954203832521214126656003615914018210162900771048278734461749671264193946852236418265309066745801004555676144683291128362380699104656076859439763002890721314274504296991146075223624338879324221689395924845323967340355612255191849913681496755965670032569605911980289982507174557186030798840506831506013652346206981672829332939348978629790422823791778259514959439238457694142501747174496889400043613301032033118845453587575110906020586841652692606064981640064375940094049027243472944107509970417292748619159360073762207149481599755740352808672556710059807684563015987798123303806519870546861739279181727786226316123149967139469748005264600235045183932098579886235079262864512844376109771244793483844431518494181596801644590821136278866691647403196699680092405356504704162907777878003905011389919882665799566960495602483374978219352838769202508769644024114341714933092009365362912300990162444920810239358502528037095532507422902203065314394261412307224483439576887072841704245981442197538644837441014734918289116329788306279583024670541457996978541307951562688281145713839301031503169234491707082791353394745065615490976824522428063832765872748869872920115785011847182966461312772688831542794717041226419214686709739849967997714784223647629436804202348202959952920528369867276152514867872653385208247212647994532883413762050786124471710886873095736752133464658255546124519092603388699279304983569839297692320436859666166620510746121937628743985477203962629529751799302950957616821327707399640430749815014200148725947724110304815339662083119429137928858691484314244397850717059063978797229013119747651429743085499529281445662063174204798356222845266844252376022685290192466561808337755602286184142606228145544872673264999758688232143538155652180284457330343941025027480519011032947026144272618587654693424664387601694252900118401012691701131338623845591321175022831192416690797368597396996166376295006999658004681010228194457124896473981865416116836591948340295928433562116207874145024274241798625663417910603375837436857734419254296533586739073766983139562584960834138701944314788045324668594969288611087417980149182644559725092128929219846593975159373518739867821946000038606503069752458157239979940520925048001640362680910858419912537799538693000562453359544770372216568240619437814487343947560675475382105587404005746394848984577665334803996157087637531450483083475963007834756792789244689948669681993344901689155496339455133714747293375619680762141921680164139847432695252710444729961091249741798198264669842537135046423968455264819283838580998078471849767374706406119331803866019292014761259293165359005229338046177614866134436924453492836284080202117601529867251173152429827534144142721228383869948636942794716626989374533603403420788753030102078096795522432665395712550811252655092224819703721438547694809867170282736853436032535460790865825847670687200270999136981310738627145306815148301811904955179351303294454359595567581399609384992339815326676103924642139138253566083836705506080480826022885775756063902940504854614493189369561692020471838916092318545733459075576833314612329606315068940918775639784421399951965612264534361822469467389560026472066045915850971264048447690904741094702058968130337140878523583601004832189186822946539933458638947887999781112624277131023029723859851333048159174145253226076300854992087492293552595777593470950384384510985757697263834180707529218915507941587707478831354720563297224369282022483482835566640518335826780367431519288765924855273064216998301709009448219450138747305987824107958328094421825727927186246461525801712415321125586909617438816371635641331461396485975848104960529991762833485619639494893378717575290188656885365633938884306464548285834287463027155455889130713630420231147361397657900616053841769845439220440786419404595662736080956245015328157808326705060918935031465946726411156405758879311944675497652533289898888353041561136216992495461338156417610251690387879459821114962440146465486572088626065064309405028795768650131275268594028644805736379990150978267585267978952946516196351668159996953661000102177381430104825182163801709280174186892301801169645254386582899515903975160800711790905289087262781085570831422851771602568561457536835600718379827863589831432181716624739394042692173816556904946862685084505551705107206403970441078025153711839066970443279942345629865238505395573861861839969438738953503074878808417144367260454119031147504699795881848340086318954141078967862010523607188656563129545504236097183952798019750940429436902030772078778119673524247905653776428476586754627788627546720473975102863061624325282564161290401233844634175142997976739228126982080188494248524096349501262807723176977976626772110535897691588365379670789851833732482732943612783758860376002418412670250899519564743525241267890685040328339315401328199471511015432078658035066469376660979882374536673462058043150286973389675559992792324765124124958365805898439628109327346887589003851059402164087679878837816206278052266552591689825260198001380509209475028513833281926010533538080660788426709097509415510919012274358521986071643703780866274406327542075911713031673236643206839446496757982505573115667596931523072734805109545409411768738419404176321965899944356568760241864993373863579493166198106016717903230769356159403888820442875945736714736812907117666645726412106619203322221206242895186317807622404670554660880699495997228605820620424852367344896668805359489685580283202922936524084954028211066445718302130692056102937980122054194851365166853278643833947225997453684078298729566712344050026429714228845673014138592958379037651929078899728422433582710161255586208715682647313332542676740036634069122304615691302553607864536778630011946290348310679985938883613271454749298716856200424403763439095439769444523806999605673463985109638747346979350589456551220464131448509674950960872463515364468874874761327018405343550341598813003987369067918924930494029760547596478369227705311309225389334905977676499653521045279843396627924413339811775224082921999000041642727680914907935185930962261206842599692658490508368381165802090585358417700928933699022894235735508939545600257127284007351457851402851190415746245987718009210623709287811234144115909274122478828320707611650924462694429241301811053246876577612825690613376479079821288232055813079784978701990414178093061811018344429161614532028259459214334155324951613383257346407050492294620382201429398318401156061456144016705668191522942345676088681423250807648910376337748380330044050922992488234667817561581828822887972331604548577333117010751450959913474799865385132604919648655969683380504370280163246373179142125011534873719742990467277849747712738549047889800189481826354086902285790559649667755196998969684420754233648739572180526415204130171874973473332406294252382680792749038946561150521711280491153674297430049142931503063346657049210565884040068994204895795488480402976350891267323765238243488162143593782378507840404026737262614754392758679531919812120718512576366121979866852643162380762225219416251585696176611366406280173643408441099850895608999838931354577572020753188350475116836885628577789806936462464057366447262847057810423503529857810922691552736306164775076664358320512816882832993361459189069960306569319805012186539714398038086165664517174405546369092660252620033808277239116678855679719648434243166701372853424167917523296100789583937799262227692350440845812061551261224542169755977123382029510850881840735243474001690304464830008868787049498180465256036832030947821842878997069146645976059727540243353071776981979529997855534889613444026840262112607439464732189541088253405497817589326887305182058726428416736230704356345182639544633639776422352658276481483422505967863161346474197897204129246603134246902004948492805235800792516421348549876342400990784479010921213136995253692586579519614592642851557234432091493968584317577997392189751156496386403167050088208267586892127052061729642670018419899436107060506581284424470041297717653421613376451933293055498543374889032531824777754444166433574097202452740981957700826727263472304616193634424913190587184020632746462950483648187336873455926826262945444576297699305363878537439660431414881796510189721947909322664375036921046566311833027818863106341024881256724189704656378422039680216586754648518134637033396834626366405884288771834928735305410495715301570646688335913816052515281607630719355871111586494804384502068784225323465611334065075933399868791832788867268191806529660960654974524739111710439695926779160017429613724961632548035047123118424286428425009098050904381861172338491376731727736848725705097007997244321405456626950758431747788795632525458870766887880136645379514716927795856547901409093305027042023942743651164959541404010741226114557172634779494792188407900615781621487501570166376972592410239357050765334680402003893281307975369777148598254641272633147730238035219622840385017683560769195491608678379764344508353982322979960712161508551677112316692350693961529079929846994469382860767256675959193442015012564168894907785191033117388497713544062231424143904667994409335152052223650505031329827002741732399329229766196356897034634053471439390604257952710589490962460670173762136474360782255216448327285548551523861246439058102482579351176544975585738559601748898026492422956064453379322087148967251504174522122471079584848105613941638566795012358390309146322238623150001870982094408826424685715325393910952787899899768839590166043711455581791248277603303160181860874879347553565615447002938494860072744626828019712334898130606376898753163891929406686625818191974767612697125254476339743921362716410371792753290115971604524108102678824587298286632352558243569760640778630786806807613261290863155507833661750935650452748555440833308740599136055701095290989708797111917436644921690562671602190726731263403874584149599225262686013400433610281979519604143124890556391785469395309934749140433960935232120687913842961843581707161271437031569455773821725387137290221035173277091685607556350319366283517284505307356729003532623836698529773452083091811790714464327936778540365815890774636884979029489054849418237380759989134380673469157658313059012714702431241540817604576228463868244321360558833210846893795372511498170161400287540774770850935091130652522198491953232699458326847213359564908692488119047606002720816397281989420836193014877188646827298987293122114819340387753684265296591711660072484856881647203088040891294552019132886546513399641485241993707928678285678546906613161298851188800900665134963753991969827109142871120719359886317382337696780768576653121082380268451640939743151561759945158642600106202631360363591316281259874665097721183980340122594627421685223416745509317571445799002501202238643722244644592500805009208956090244182338785351150712050937578143390839622057543248301702255409713398445026728471299078218243859341714855701573676720005321548002813624690847421626662451723948200193727208165039389186517504800796153701520738660842858019614306826833908870156963444851357126250089761636530830674779660943611590475055941470095318847719829247340019333496457647649895964837286868535660988405287173545406949908749702258257098230681028144639631715816829488054903650256495295209824842245531521223871097734332634116310965485629844279875488998878635930644844478133760044572710520302990089534016479701355102159479600796982901790388576413064082636350985977815512573972756257870626830571448655241890883797730892683975933270010309379804099391306905938947418151840202964469642415732296095485940916424288637270765412364888746532899171263501936862669768854212610691936420771131577911656594396126614917299599346865049727855799134469473181529836411787682744449452611785065972509929886703322936244246472257490599034525392416647396917199792286789167865810156417978224276952906697468828775613127642565392480676757970344626043142127279614114290250160482689451949918478018262886384192318981237635623532560838708205472335978311404984175328711340047033027504828697201816457156549710603852762663848702200152036431882551946462744029717001767250417858747948984412519977529055092032706485172055935574573475939687914264278772279732288792816594594557291889109580000039894537437043098437332897204694478852722074547988721674039780577678207596276578122861536363775718825257042507880445999775464049808603335827175362228585142213939505541746430213871504658937928118041212762270066135414232126687528413468247040704146378241424978670096205938347058520979095149344671847071493293143586391922627920060493953134261645998830008206655058951973075323980835971869425401683559846073090624283441410441602019408727637353348271238509170567094355962547210186432211415541367956580221605621329819648737704126567045868099509465021813495749901006575683352826474579994303227215544097392484969361996117834831221635185438315980884198972456104501910350494952786323021703431379100784514862840692998901882969392637072463725263626684880391151385025257456740370419295313760573433783753085736842618002334410069032285848141596465489470356583757821943373882446749489644188745292306212672115443716071021096169289395066463499208831952589994148568196934050315219680369644246920574530225033312332460587619558501425869701788935302775057078573571615909120615789068975986182744127434938099876374004412663902656679830450359004483511273158330430314929006152674577973995464441594075745030016966820918631073061141630874313034916442863813718699757745166701325960680022912422704341166515447086511876782320896430169350184073126331068549614888161314307912998131307551315427472805185793509362914413899282385344579109520183688685300293053912288864577387300160781114323630348832159055666226898904347436476982307577791896608629231732575716764030968272406104090601485314099531749781633448669110144513267089947620131001967127206596048315602364979801170869085553769843735900308558590168106264203567094486637296330184449151848071695832914561947737180525674544236475196461120477223600158641133823777854912616037319536929566489857762776565421099830562639261167813083773031738685928813298420795387761527802221259095543343097027379180646235733331122530747351479278978284161667219084620932903564031746809672736002883561127645098874438878209238775299762418972909065152383694463330183500826799642031177773463253841418601280531746254697284270146566932094998136799077719903047658266387735659891542395852523772316133130520141316386890017595585802950146295938671085471816694798224947745925659062870659818757629986678473838653364755367178844380112153394041523761759403950884429839099858558310635738616951196998779606329959586514383869962604559998896167846746894980366350520983855670027840254919546048503548827377593889160815506326025153166023459657571640253468114415717462900083645396550851286142495523797735061143069000926110392148113511948423733609944273743343767541852745815651346367396860621729546469940458289885109614123084301054507180364515565649840380663990205117921212693571589350618283148860207250447888126521592822855639957560449630506257849125539080454642530838404284182015342093138774711328515061712294205207053400944594052125653587403738039525401492012561926320135467164238507188696697038086507444278416589731417406587649891597971874151001103519884771333839916291058207402941979871858904524795134225241114805753400082297855510285357636176095066992164887952289741983367224225720172899210461569882738431366345878665542427283853009411763371586926069334314739609040692436239554104720517777588735215470662207672301138730150211602279070412303617513769842776679576629117643171939961866344588419131969688299541427881395790105554133516219651304735922037608128573417125022520125614135104703616851975173113238597714708894157848131680784324487250438493957838988581865099656679301734631250922304497252813685316996454332851046677503366034617772738617194049290835184826316634567477992425310140429390853341892359899353549840036683682386262429316338131381994133294111828675653883502795859620938730760587931000128024978600601596095272456910472036098382463388266397131140253513303483898319808174358471399774665539071128390553472648419847928783394065517573752825719710496686510899163339792001257569350358919395258234129930066262668974140126203318170624431260938161304612511022743413567398485007960099588508140554061926672348288785073448471426357484615798332366607480113710769690906867213493169312188263209391804465351991528478277978858350704901347587797912972868159387393004987019218876115502190892944471453959327455557253588251283337724464446719955790913576848175303199099597291529725035515642454511551895106472996079553415551218649957890898064368089981380316547474330236712464204727511725839999450178976999844190624382040489035441854494798364499637193897725095204453431838216728144031606157536901116323693458074405700029064528750108788350572138305359632894937143073333216382852659807309309971997601959470426009962987020379946988317051784067470703819122523633788546843333318636653127820950900840916126330131605410266849678122170369935012025482473093160932496226987561190814958911698889717333218031368635772263321211161905554408856885901232186492097393641984251205192336882640512671664702757109566627584005084188914164978466577162118078475599752287492252853607669318824721921941733255373806679775088785632066756912638761488936832445980796257397319030956947260513566882641347111969877929801520678532356332430211258017849375265274472654209093883504168957229256976498848174300029758483799605400752060163386745828881067067044266991440526432005047144253087894010751527045907186308837250512162272731731487258471832806878353793365536523477711571332943526000419938570676494616967920830539131658111250687844922262724333753093996676180612627118636033919135557736976820508279590236235440769242491967154133360106283928347237184401563252264674755529209011791173116556604866346682658613478350085713059102262333129298130064937013636072112616953835869692820106113913963703358085862283905005385541912471968072724320095873757993100830269423560472269313369694082383896862040102223373137785303095734661704228317190266555714639844543810619393539316152939242508316394822274166679174202134173720980239572822337313911749606495981196826423597799576864733913907816963370889377818150773597725001969085258067156099751818619597884684772782643960907092168785999610857980866585572874097874284010187472428964615679311757646451953960587382685274189867598347304165943483967868383664040429222270557024695878198742143376297848324856589549511610550201971797162669516631547464486771343031809916360775289756364799545161051524823592985483791875951162577023260985824976230023843449977765814127309866688258507706523732454487548863787534341129728499651960301386632611429653136858886356184291700293638538727351291550974264284598583847639225535110095306449645200308208732507456434218422816346094675422610220588702697587407260209174764690850611294079638007211580642795566292815213361572139221585040479469359416606065323317669051230854352104967729589145714437709292082966899038192326538608427954617416000166336182214321746749627447117668799636719358685921464411889679717410624868030477671610823955876116488518567426335198181848778261647427056199308315028920991567925380277897836564712473007780551317236419758219967339969221282137314475614291483495871243404966810941706152492597651306595034973155165197206064699742696683293974546614981912451612539876754533249144273533128530532955519847757238860315103239110333761533487710692438154462393429041175236489291494457916193351336808956177067698874155330440173207286359181750527064000763468351111140390628690139903806199613886432927869399574508833982402643941270650310162429154581536352547276433324329286824377091420583911262191095443291005970862952849877710385418379398808744043379667555573395453328669163435381885824842793022026057196882556131457818862190478192288725524192545403627244790684842764748847558635497377477542074557805999085022242247890097978878463005166712541961102244737884488673602424678643504975640474723466730396200453909955629749092284273713098663817579835926351197248294491181299916463555613233340277831693840497755557905549484264492476750531069322367144925932176829992126829653885090033780599005715585338683468427494895238451029907572714445063444501966955718550727070072951198448874252356302757253577167166740705459397693405145000360333304850844208716909606902973764605679173959575844103071829166460588547945381545833425157964134729240268372119217695099054184409411464036958431931354321832123383785888955667321113401811475518637557004668886651861927239499593515237942729282742928512207644369439148653895886296283695267381906525192113011896142019306880192820603522169547790091499148423528549523812367333466862196903812821288203261800985173784016235897648680302750729214031155810751558067779544578879215383832830602468362991212690643939345614077491404479966922122832268228540207467937662518357527116924291719458892696395894435844823883291750563292861728623789014420335172748868115077721804166471485876464557697851039728246576979897113407828670018609376197848498904319020277201037427576887742300423015315022161551505562715428009245312733112964792060563754981894121178671703934695614445819079752393620985789249249285677598737715291586002132535974818586096913238287459497420909118693859711715292794601969220938393758220347874872341650900642474652203385532341442723899850614175592780714689667478363667128316873306920500445265130951586737700444957824048470031517608736202304996693046425769356778729919239289248921498355605748533143014909821329005127330044790470264680390523003679675250695482234030948331564451534706509701448573084671775164315501456920731737200485357674003830912652476769356986235382337754838612411594999631062433583057140884702235142600571210353765784965297305790024693700177079222326493663666194454946199158886085235180256418342798398602740481836675985200575979637682065489552021567164337403233702429336438314568980892919547626057738026380205877441007090735871566631640797336786790583974161088481970626814647324187977020624490777450812332333736185325940395293747610028457825503257956748368803248298041983771253942627193239581999659236318064694477869314494285689314080910921752031746560799149630071394983719882774543816761755954931665702542493455866598715706736720738661723219192136632567901946878026273000798651565582521942310502114555197678043759060104703459196937760448446170097511640711158196836873943314376224288301238289578387824262728377076626388678028800155479224779828337077166558453363306111665336037772587497181100005165853914262931994619172107030031257399992934506500294926286803784286930900936577816028113956757054798466298840512664341612690264268020153896218660603021764352364623723983681310592688495616626381447728346505861030134265731132888345427800152496048494299734626918570674110970978170901657051426585758801986581974276057144426937791854635871421523491540846670589511427123969394166801731709127849333458827498017962085679955417359968411919087946325557297464935054750880825130028230528096318197633310600411757425055523141211599023467827818400666471572941603264755193528392425578558995154252897758193485165594741065258874227920753643514996017294936100320376466613934500168941562506357841004220037663138604254673769046573359962607526604995122736583803041384066571290791949046965090397659364108939708869241347269377247461107889676773234957904024879361544954933422391192706265286673362414135442098387735037747003863563278885202622013489094953658657772658744292063191349106919052196018649369573187235749758934834214123422348926182036394435127592369887454348284180014897108285688838411460763246916015350239816801757262652098114563726232642207325416873080902545653854924801139495249525401186452835688086452385069490990332272328508224018728304210152783656065275081727490857058738837547700162842001945980714483430653702186339165420580963600797968528673986588911780459182802506541497214386001500342614827753054527380755325261945395611942636398780067798446253547804612458368081392999924600489638408659489820078375336855272368823479533265935472331475897513235756590329214543782571889507931555070364687070180319189012208826927333999867072601395902782617982060023396685218347412744408639706403048959398339082098251697129007721151433549517029823890953263817989604833562195569252925013300058670722019125829665843830883622112248394660596358538301767647682555922825611423961026859797904984696486037369125436461459172182064910286349899053051648570345657907158879486826545559409097954107038618224161114413125513098152913849951051417682368613457043914082029490278448145841921456094810430427931676467298165339410226674544341980595512681420334645192244394145992763891418720900926648890985340800146616864921209483873610314011112760140634611527766103472930222889949313068443808420420670865233381465896650277485715499377645899396478041419506842780033360802551973439842191196282553368912958691589660345852173886122719702874632467860651530916629661567784666379582276067807234455559146598868089075672144365735685853426938975933630942535734766695530700124987588826282476932243956184292273777346594627131057570475795249197301568324753200052658709283667869660993031219718103090792364706671411054400177626039787884211084758550401605212274646025456490521111515659214201422394643067958848046260694658316573790849678022382984096204391053328591146684030743936185880812898249398407289723645905991135573269596984163446957046464321383081024476557089599840344460762583392945854008597969141306490652501202174240023369794854716366029744102221735064889344594648570030074806656911033994663875631352053814772070911508493386300457433654151068471219396906323618771826324969900749443726100743995698243986214992794514067393997906208478123292731748210180525525346145077589801667448454739363323635581815712446342224732929211385150062808129202000045168411961602525350918634326352281249473271469427355408719736215915417523176853708951613849363821760424935517610497971531287956476122736635139910988852625613232342645249433504282462419867425211980718811627023970672393459233028873656605424293770613699550688561716929222655648646764440922299320665201944804891188579283372562329970564775830830193333408533987429012073975170480191899479282213198657392231870551729934900744704083354391073285662729785312315556155153826409565687154383485208159243224253611385212583997493665695404319797103562488764486963717179160527029389027494735285626758728620927742995436785269926665914647570421508456188549371999494797084079087334440600922783261108275003151834195989883323391144481553286781088501094603164814548704341875739902014695360857738133803766569770258630791349668792802800164633130797870627015676511025146137740478326404745322038375357329487916670059960068200027946255896933112766654147409501886325229573718769213703083130473297450835113521143321755835023293490456943464178527578106339850936253731191741199882310263996914432388408090503042366082681771444271226055977171282035867430765785117883905478208662633929352450167377588744403655480484318844611887580732473634533460058458582286232681169346066131753977812009636820177844356471850672306181414139452749843220111792365546490867129911445298059170327659859500067988933394255667711581262431993130849649138010666878339085428277214484964200327156332368770216549238527916972269420039651179286897033996693371799103463310475744861002958817936467937358863919329628805401345627389916526119209681678229660245345869861067869583557768417774458937359026726575207104007379109146190811462376072329037108032650506173485270669845002145498602554690481812595634887082518070206686677929196134756893672210927414799695546624156861076835911477194133350034737541451169964448096233662173947783051482567502099662053620157716711610144955762026102356603619806262203437177781055119157414076119618317259431299505391599415834363398793722399355971010086934272774897116011855461597740345316273120817238145704313155014653662968834601934379352308139161253603620726595140884703388006969510409625067731886514703189370048461689723390243329016195486523377474138294764146012757749388016683045254068557752970160101688833184623632386517130801930414369756750998205497273527901950296292968605332941594842559225120036319090603833343365250595352802173297840080206574746951697163503091506966809304325537875407557036442558343312167870459357567299592689135483324376540956132800591316784048358436265730917522329250722913857308928465629564852505203288956238422619065720538618949359095053201338648069094121469944130677878277355496662457758743681724320782392429224740043280559076866138060038607819972326143147810505274837106724108221878904586894966748367946923610832835598969381411996326183161680019427583943373653910902314870680777351619833718984496543079969803093742945645018880401260826058111394113180027933040683615454341702026985932863442072961364875066500242372304943820539021958797291512058318287601181909562146649334010751825648115278559199392824199488512495653099568631208053217862561333640803070155044545839118642978681747631615582768498588814740625521284043080708598124888624221412709819154973947931736552782666097515689120607816404993875191107961419204607574031919412939689737707927206109151496865828546201512003674274550859480595592857584721737582933151822831521090698318692630902824353701161573690397194169730504220086578016576103753691925833856801871315861582233144348392161004161732949065823034065261778970124418731137969229612551138757628482572499151372860790437670401106956844007873826798352248690713922938325852548383246545293562094736036601959221168226827696971855191838283821236892355176656948458066749489943785304246360006193756661992169638463160215817828746053793714425574867809302949727847014043719476235206526795132739462876002707842780915147751429833243516281900843628311404678073560791808627053661208091228757208176542869336884915117685453540587771018666050547045843080568752964071299481876054603194894960485689134527565747701911100856030643095412327722374489770548044449851601196675551793039396192919527895293834710341181125459556371569325540514281960689018606672952007730423159079210032322922037603614971223740577244920792303339291481966193826796533500196352467194427746889704929232143396211066522751817910655286756760247130656061095686617479646233029396337155779703417276957411503927419290214802082407864328149954464939590534376775903145109779012923515288229832179697257447214248611911642926341125278298215370621399588240722303134374428958468739155516301080719381525441298591801774637967617276999708865886529729259730658853857928286718632130664732970342883903104113250673775213027185807631058444385458517737063566654177184451379833264143534491507204423099884670138727007286166644008881297985045042398146084060989004189765726611059665746276558339980054502458336489916136852395171476126135668076180481565676730439961730639252593624831489405770252841452624405671374325723510111467506218414988991886494064685867099893571234038909387588529638286389337136849015828505645270862115848523996287350182107792886675012368463261168472966760660610636487236035144917716793998624716265720964475493192856452217011474500165888566697672430378450774807040046422411374451742935303731900099750052905658495286337743368229030989165851878471763079809596435429604261680629243315907887592968579492050228421380772771728894442146188112840949672707927292391670687836340348225930017301206372347886336894749011902516803729252909977060107463446241054614954301482275211864216664447238950799675210045380002639508276144814042211037317967562899101892977473117991372941767048351869398889263391558664757070114079767472998077855170726507021986584867441287162942577118614680595005427615882324371179927791942954270638599573333570074129228994049787110959771076611055891489492127476191780910956590433281925685272743378421625554475241927802870417100604266066369091203105820678724273380932933289706699484712131984177026362329943991165613641304260992369827758374805286018252994527155126878662922213175570940748101277805536425091751275858803240509442020689297662142027756104875340026485921876506900083437029543700958414617186247493109438189002241161910911922497007634566948367068053796694966294072211494345720319815328573516648005990675551120385253558180679154552726642107783378441980173396031205279774494533910770639625564408580202319502525336531744044774173421425345579367811847047223999664898266583843413224021229171566871882400884248551938381975733500191879971582071337324504579114188300627274148773169717803137645526937938332896793103500980399742250527097318419406432001168956339769113560091838537582299520997722718528979371602409879194090591328363497424802948616152423485509366131619849969557372529763875682500014567699751503616853390603463442367427634041424057670793957353056761300126503397190208586508136062586362853620702766854391828858838007025235145009727308872150615916299199184620219064417829310566359434640320965811182331884765145164700360182820293823492111649832716301080293619133710745493850940875839528738631574137271533381947539742992404712510106023269569813513548968487589387031472288450367317985480644772367280079488934349427473025682615927114529014427791685590708786972230831003780621939291063451233409494155117214205034659848002554420201813631192192200141346258241304412588725125040353870271740590565298157886099986153209316216650935691179086369807258073843071966836270800794917573507190237054513205956627702097910804457005949729020357298897514831574883464770597617845799379393282485536497576721912299589121043780217235044737583229605807973840908323652058243899269926214598897124366688905435235373459220908344783197903110426907407297864149141818088193463716524036372786984512595039565107280740275577894453173516191629949060975742970960611689893647019904826633897751187603354859333480784348346063006147398292858606213294059121901782336062253861513511856668840807241071542676896437626318675110751557462253421869787771482737369576982481430775449258315785472444750513233310530656642035655393103861530225613320372187503989846754460094459797565548949460157535312803256895813310642751870473026565514949549097842067167885869309706216458238555100778224344368930307164450669687803893738993252925892608506877681728990888027028589490302765421610197514210447014143199259890074759603145715552806563065637379843415159946552235836445992321539682553313306240962675497126243187501942181385192945710806770525449564196061338805136866882655576543030195922654084267195801885234171387303807806068532888366067282708544420284674786015735005295949096633572009078946816990548171727320528872540792468346187126467087838361122611665043037544487478441788763970339259410114908426551968024383254739411160601222940390837795122050877811389085610818074078686477992132673567616076907889620823248989467514714985890739347904735977699403201896125187840585501353264369230944307059136440166367478214376101250737814567678032309897608970868135645248652817061015714216470777385322245362257971447337080549189060427570477085386289430060789614331974759120116385367391840016160214785026414897269161765758273823764044805052046535094267935208394680023772439650197470491823478603185121536356665582018664185145557564254511997142111081361551561133113307963331032896322440961994992789347657122115269407082017252834076871394334566574055354218126741587663982144325346918376899357715476718425155605698737221386689483586270512571803458924026965618924120499788946685926799911022522773673858291021231445611270672278207491832963355376980078123790378493428031757782578210032562953304977592532869717082466965905169642759081233959223405452346918462094639663341837183585894879786369975797267776727719916463783106845410369121076503753606875178116352264656428580020157890057325373688010087563960692895694247257446597109721864046305715055301747102613020991954951024730763655254841077466229463937467569898387661973720556103969172371880742759737197143580012117112296787419315482432994684102232324481317369595761367138948165142868674868298163320862187150675301850470701487972841375895552854354685421325672292973189211766692403041769548164545861205766196753083300198418108931780197989125055508241930365416322363248488059583496299040759806178162825107204628745226391588000158741628256204170330911491561987112472559386714166217993677343980412134187912127361302062488459626870314606199005273558370494034121460852532585833259930291852917025233988765507245474361220979834739401893854121390085743449128323838747968425945077229659586827753183897322215284735135994226336973146106423588969376389112031206728498336196754622219185625224987485006969107534520417732504422204524503871827982875535770139584789320990872861888433781043619875529321087941135207373620763164435871748520730977165127563216571686893856980642391905627651517020708657118178221479710569471377005854591288671339742244899696756032894957433521477131823053639363305533751302640389857752643757576132959467901352410543479114515923804517747046102228036653086846576268927056218320897069202830357645476053187608548556247353091578081502403909988861660058874238505055968674123979072283178687717398220382517621132386552564787797529628940400129228644790421927041255325453961584301821719992646028449255695769077095655193555703628400622035162231201251663701040845189291367064251529087238491744127234548862565759966452885677630951715660160350403489191097806384114970459735984490287926012617507837094613163449143625380764331715426771044705267217152652266241030472304567315163166389565241443766924725271590999625520008998060079849411470200514503989479637420752813106209808863887574402637474118124139859286235919049450902693357884906871057316175611308799729691032195555943608275664710225238435906028248317854125215637691040057947346786983054818995410624642980598357145879527657731248519369687158891054330234705887019514048341427797143010746766292808179514150914719484582978334744243564897061749045555170482486016632577584227444149095115350701751136257809626959826663427944597395614864112418330384932491727542926185591653918483210558942018773151146624958748147805663296127903067996258354462236444820467704698581113268629985982673746355204030422522499456863068199152458361255580615048303493791893493894984733852644426571174307225303778148665472124172374575227816526958365935587751510175973790629551908265913986999407810697947908044120906735980127345696934261111003860104714598649367046580901617839523121805415722293576512378976118981716107474735733769422124735077184474703383005151073418950053699166696727420144284368059828109353357014682301556957183210064739547695320546622489612894182746306860953327447721702385061871764088533573138637186308134078220339301654450455078754915709898077762265798388524392123752830269592940819444334492024411746337803385522402044751594886121143458723463829733456531679760048035792418908253929123279761237672478793948701381167922948974059565182138987756986626236395030671289082844131768104728805426307295877920615564014053002037557698337887590993480579651135655301289328910747414792708353078733539024925697492664244546900349865247514038326340503503497066784610778928994307808942810317446413485423484829983930083975975801144961429492299712834640546037205236026336518193682382653806665883246750957703466871928755673651181321702440933695277105856789793726509479004981731490920922927350617269257998460054046181927181297710546970317207105305019779116478552834819246307562850877605707116557951286175120196697829653672055389254441468844539698429449818677487776056394707434315608042314044751383329845456609929663534843319344519801442524555354334419540441074805744113072446558269030124403823015233500610998210642854682660890597421122212096455979782593825919753383220089799157196680680070136469016215746225349270517887563884744892134851168897576529432582470964212633021338141446403632306395230768031117660206035982582134420878159521674220226869328399639754649950494547890252763075618061978674074173741646989184876647862638361006330954320208399758379265474807396684981837400462711124383393155839131404696064931114583940576645486533431994400984212895046984965921768687001957013208162577298487990697688712531996572423150325396666917528177104114355570945520447168046959381822962952567095002256749890632881956941593882131196271483646639440080070134350038262849715496799985675634725035406760107440058428050889100223374654103895920115459500249326902038813229062960270970720102595115981981478180085056635667726278216709717927097674982913516306761777435837140145497772151903282033909059990237412654302246110573659484878225642779078037410009909666050165342682220618837449229893034622409511603240742577047245926930709747846572048428242201561480759107361655302685376198769111119247436132921913766026822576257503505083203067699870800061959172587429057304095918188307276720301496306245474852297303503448797696135388556029505731066100364582991477853564445928580393214811728057440407776417560064083940930936769405651301413814063286901795007276429734492638624422590739608814416724676969756360194311647491615776841514563393477261884490016029590164850582152489642830936690694660137620988550394888412636802139184667248363886089612027450280867556427007402122987060476760455055532747299136699388004296269518796853397141057973653967312177907563154627244384918127435730104297336333452845419214872746002553508849135242656118985677494434050539097941665669176042180915660877811249028045883811872761794457282310169479074124299087226227308706627071308471922635937582376943464557653968959169996900731663234193136917694785426818216926104466428114514477120082643198889852260853498404108834697822487829256903982310801072299199678008684596100412337579535854950455582422067611652481957816140852198924363325083111414538390967425849535596179637095825062549790136247459014185323794747842852080316204046794485789568572986577805845162497562390106104638671147904254445605757184038582394191263645423380536108746321870398199070246205947091843074448396154696483157436347750867916628719299733640949145389184205374258665311851589907251638733957487206369875580132950727487857907576170921164061915591896345671135131713449811385323183090993348364956002900806084302789677041442109175498391045849690262156142473651501504785439949293190827054455251623828880187774181266356107529276184218104184522678496237817508990737839199047937918947079478760854296986045397227891533473217475079076005360128102983340797807551015187431206378515509249900605297004328973145823706370688253519228252948579095124889724001293750712530106969126542684917322911157263131107171170413792928347769989050901432028980340259718620202424093631833022280638218440810420949839874136522767757619459612761022701356534081743586826767000495586575789276778011881895640527745330931038298613684102493102035514744366800056121323897789013131309104371988065202116781462398727918654281139466816671074044780440481159698306328303412160640317677704137181013694535012989520318266787947869177203578288630771298216473197650725058836810932221895060573763930444276959179764987032499408511148147934181511679632981095495998890321753985177578517131037194450638089580631397246587240738135581042552677883316197493338758593975220329052837380208283589228950867480404533881445152766510039934411975963969745166217860807542117935026839135624178122079422883491216689305546663508402330096443231127851118362324066141587542915847936337918209572088124723423411736107531135660676788201635570110783169796309256300529398681605816281778824891238374893018428139238312272623604115737430559006162102371533399930346132070534062880357600623501523908862403692876467730034809455825920084022149197157841432563974093616385974225774606722919211841441638115120487356139491095548918812621856014701592165016360263695145287422925003389541776621643369692496597545612904938870581525122293872283947586485139603291237440435378308909998256013555657222179452732084246058589738030906619012519979913765931793784078914234110442675351381148148566045325787154241660958259698922819532682402331410846200215430031806664353711351651679340613928162277410176434432208070119684105910047110260571395997385335801680392481263360893173370488112545320671055764355509848219512722165159065098136648948512065641234433021344029728927124743194233041452785561082212222222421739856321101726591074871865008942471451432335353132113140515106890749346461911653843595209704786189070962869808244614171710100948552687671662388728988003056736498372656472824068344640819940486413534430717226049304611663233511877041509460755725342643371789165112266491925027794466583681064354334145130455979343807549702456244846256374411361380985242203130503422247223372076686348747176212468184761695444069930701590657190725081327467796518928211448762386253563099250948698077637497569326865869638070011293636529167610623374183891380561504189680856753409430065816967003765335052712979544200373195190360604701046076793272979813078116427568125089409255201178081911849720973797610769427652251957049705343328621117005249715392520310985635280578220839974735415871733837013098166528140886040204812802041470214028910399387491520904072628706486577807277161644738264909255801841654899781550246031260422136170890351635894727000021101919978674242095368728596998637677186590393168909130637059007164824976315494786639025843309446486401794464205888653133148685356288575118664154750665905124355388783208632240835171604859600723922882842072473068584473157749298117753914644967885077534233703766520295113640067848927457875046405291776314580707095282338688350619984231379462328477610340908672322972043608391079616181835007902138841304538531870774429906122155471242158019905772805324801277594262864501962607280782699360891894234586248810580626662845824475458433508126508631120169225465448707563297111409316856390372124629126374735921917433990476112730478834243445330715235613082114329714708147618800919734428727874958347648844223165765450410398547418015017324748966443790981684759284479619280069827542254486848179536044501786726804125898843788463126991972467107184902737967962002987374664001296875831131710949795747581257198455515220901870580625964500154887481971048790187699850970512446692926132902425516998410314349938623499898103323851632908514503370894104982913788958307710401170666761767285428873860418022402099994290023782641461284979140520049957955920690309254243015187473126591070858874984966953253124802016094630954740806974480519321820158827127941412802418829479214536903068546672220150372899574804795681370888260423384452966778588747105835875577884077360874721944355011272879186464778455954307667133954839899455991443515118488101700163125493357579113288106227403887413101157903412722316690138211846095174637620706312320099307493817883754870528761968162097205528817932475871556988458330439982902949506557791124980857844375426579757321910159431097709733470056535276324835491006954225789569946617655442106242342614416093302269898998059749058475518681390453006347867869870616909350095354071666345895068772358348271667648167206316573714665021707611377145447799948074801496783461320519399329199308788000610384593230321776970790191832366563256026857927466027405133339529789864283034000215588914457737289480715895303466769717059734922617811254443699231669418521019673040030949306084357092101729939742084174540617397636245891291477298760758605642309088284936534933538857787886450581003539115585105553596088138969618951817723773288902705745641102736648110254443949552919419856918777200921045530193673337475369579541405357134358404342533800642479495989572073905198697967556498915971244717020084059839708992092690763439718552374555969197235108015303345751599707576039042515447815083989186826948979184368737225719979482035786574247236073594323201258957781558693616911069489806864544424962391494686586032266904767532722852150195378340720424296037647538691608480066213822470566872415138545608211245854700194020061777252232537237631660848494328882648712502761237434060230811709244531270300291300601474714997523220891806546622040914266731216307014471713954547017535795745898367109378739501256268546934934794282925573880051307049325860562770832106179843873960123722779856157889479925315138619265098490594360537745688039134260921297052712572438078220959039141190587642711902791291958939693974331487940834169121668380502247326736491296662229804752839974303592497132524348476581063171243842117203632718549825935331463925169536010844970891332062676520084018200693207324713973092844401776731093145676894634235804366933412253835912483241119610930905712340610605249120916036019031053784924802251082152548757717129982794753060116013160654361997922312492922020022144547083481790567258904851408818559175394844178742554564743898123746876339156023034530511987338139061232119577854385889319288926980338425137933576131499062616262175809546680801591196105893272214996144852854414513266279246637606463083712132992076757752815451959302625932650262508368708667556586335686907830539035436265396675017492389158901061961938641036490823728213425515299449136420079035146568568012084708069385004940545859467662989400557901526062257477682963289682217170870336506934887430559647466585397996450221103325808460629708165506041177459051303008944253904778121607121275003923986824778701908922622062091722701470384794110924972910383056821930567889849005077202299367928005118979964052493704242936402388538114934483816214691593119339913164798592343623015106009320374040991279941427612946978533028587581816286628389812806335442802042778380458540629067337767542092388201173045141969552968113706067218986814246014047254457250280283916194141593108958992320431283692630199403552265165897402817888579465250921644988694518626975836153037650167129014947592425166665621683977100430348880083086060606754901727404150430369493392792771074181485224486759476157034978743677209717173613597100435188008684950955910737547777679869245129697698714789407606670955942103017570870815641173899126080942873083388115261075700170624951867245867800544160692441356184183820549791580819404820677337167260211851871378152063686331857633338790731308001012235215664086651153448250508771486940673690183098417020021119758227528917577196198073764323760711033958136482675204562793447096603869093751493103227528514971317011216464349023387107487523731047099908818009291677723805156725243148161691180659543021995535458884983364874808634881778527983450272449058165618370738002598316745738530562733334435372838481260219204015998896963959120293506934330660766349352206759878525942095545882765685866778847127976206749059512836435266959593791955621255728939066593379062816091310487124436074980883963056950569176035895481535573607918746800731238108739299236633622206350779561329059644378486881181217822190215526173078749505094470084478774910754132417896203563074846384329500448343386357940256134661479423832802746940433087023013769439043723179387206936117258102066026474877467870787269375370749936632832808663135333107554334337268488920191661152476626982754537267843490355571571250684923351077879833553603665524475330539259740692286271757869453250776413009884105149264470594515450241097030932232735229971192532114469923648691610195901726936824478098054342242307991935914539497103539039278471933052478128081601541217165663906159938293054128519992489426990579764694386602922963914965634874475329123641580559596362253711870139921948115094053393852604745076912631000277384155592745457101272295753462438911315708880507947876853928599318211587877670267908615634591581386660737232527142086084876880731644961239708342320701889701191867092113743310047868133820488357835605786479803641871076844833847405208591493235881070960105744852198384722719348652086146248209895472579756754076577523004833930123996101029206791219234047884816883817271635690405014961675262221028858155289918176859003864140161609458376662399036507370860518956791708140299698737464738340684767716141668081381460655292734492632883796595513760758983772055861108954359340391822202001282620135344080375951904771190526316420727627742412065213695907659689514517838736562665066660518861332475710637677102074659390543090413451090177688598131086834328875677014608974827377934447368139406508862996726635577481282440882173065635266447203385023849433331178557028882348998212435395924257249707192362749358448975997671613668442262195853752083466621505379998605991423927999694512762072805971132367305911225616188833684116260658318586884418280972098379506667712349255578194855011700602926913142741659739485669186847585092846168547124625559518485496266901830862264759470640155036210022362172371033001607714454265292809785620621230377053984694003649720186162725704935612331343666891581829390593330055531140073426119769109638441078679407438531758966565485605153681047678561931579498908085901979827675727959152884481691974708132483295539176848484742888597666625505300729718967193712621804229738509893071197230949214704236474393915219759615250692977029893138935157272614197615720338825571109399825758639180404907284246176983829590362703926877403726578295050419334527757790990411785359443328630508407432917630858488717245986358695466064486286938744418505683886726185169907355008756815078003151055491340032834175788709975698695619104482315533761976974934065394907655170199266905730151569634999530669476532094467510965164827428019622998414806148737657612246712085644841277849580490092304444372406846604121670377810036380592761266766467561480456516945672238230803689038428948920066278657619874043976083723453826714855273281007056390464648055829332596630467183513315972023931836456814799990855446503622624565929418658593849603409889103490903349182606093410562359506699110756316723564270319427259019815131200683760521217827726258715084458135960657158353021801623143771634216046043736594757946314669421545504273029190677801411046544822542086707311768725563919919463720859068075271105413533142495978492239166770347801962028477681530712876898296453069423683623957405346525268768766454888705913718763089114516308220302329085571924403020939957803709291438819166550142824116405839930240435861194340888839606391457358534451068508528341761786894418205179589729882027255116802315564870371956045509258646492945296062873727419087557215330588057045158347703854433397326112143237364240663753186464923955930405447221973211564974981481846307626998631194637939583127353741000976265142969661425901984114314832079083601792971966210262975718745766994344897942208153045121797222709445949017056278652587130220763611544021566944783887680924671375367877076245635794943265765295672643337993285929952718817699645915206800870498740376663494313801813849586812818279312052036009015107756228963450157662031844069987858516498333231417852368121667787487779578581505276409374917968501468770355900178269388292568446785242358955844182228336733084608727365620330085225574052920174955643246409487744968295132389000342848795073121671063253490908717349688964733599774586368644646544768882520307285236229928398805361327146978737441165809455663799959014117377999196513826657836346934499858638159948427479089004677346086961998818908357586546544728469118841933871837246841068517788536137322820736547220502362577713971507159670900822860895554736917636537292137549630966224961031700599862602713381564807577057864601008880892877676944359456891532757462854054481336049028181009648367706529162767493124394739872555155861163149100436475752962771313942340227446207397995414279800952689942584618875510071925940636854614940264768538356839789259932336924433739294554559145684284935143310248676488781899596846819172925992275940807788869967897614182756839035168084609574751170046622160052513788503287955250662864106399291909997055475508981856033207028573018833437813117909521755640363324865721773838330508886476073347684568324295158051773809578453891471781883995645539051539590090465773389747375385970218308094780281400489656882295912777088581449979385264425785830429283891133990568008674349264807976780319971964085129707460152091389120448446582757328734215812245945346621923453055623512320301252492192715090948540678136454389241908036998920866744184095218498808845884922394415569417603746824431292012472424158835025270689211424484313661365254169608503652193793687659574836146059266581580947533477247195673924398558099216896233603780210288628259731650337241904224531958968238090508739846826256210464219583961906476108093043567811971550293648967569521054146658539795841982101883736835140249979965660139047077406435579906618877215612085020995443782719847387703436296813134443599137809063145725732091489723943604725910850148584406954199687375916512020401080142450952421821980111078235444967304574120197586530208571010959731315758777559496213997781249952700968235590831958120080593977215706860359669001475100695648272296077539571008415510246770860988562331134741971404100847092130787742781407524177651475428607499946431437149534642838438269796815220286509437803596420637891588736269537298174509493885543896098246995703149501178618576467477369137304065053342545222893039337669189836800787638476385328781088432745784665337107335740251057881129398737395368632085072445382646336584167411224818299553245130981768967586700103086419916165333787935209138798379515603898372359687798173798828575381923288990534310377076637805528054130801874528384302064630985601266125371368720115146098236668439746297690396212713161661689902910292170500276663404737480336075708859582572746101761361496085639538498793333535691324298747243544447236462295716850360835850717246790523814552880229640850269492524451805875262708326477143503719891610669674119635910441854169562515667174070522343398027622578488138798555900803210507822893943869661207232162790850590991851913123141045190036665722163515139234490635383025155577024163139248355086677541354238109705104349393042484796722695069641104012604522981579983565057399420797755041551793222671657842934749074181211805939179437030660223033683507589540785636736927328602756309856496090144642566777400400216159906942226108897270770233136392239690927496444066157869721733455016016461786136478467575951279713627525657006162171224312700844152352328978765316567375134553092814495293588106817405682477009626333862506495497980946943241818693998273758593434623490722772231996569573313642013599495606995895086496964875268985366707170879332411169684584561932761844189847019433837975260972410342013553415796576332833382359798744524051114540736297400180379553100128238273650211301928844509733395268642179889296805646747617100680094799939437120664596056424788052188431314654651308341743787241505349424090821584609940402015359927573920752612934860919603916494121427188542871426040389564931155409889208331514885454979575684111680777085084469083020026758747826617069657348852400459661502962390282563593421271175663543114920254168381141439809301734518029916218119455382197831166949432874304244655333992461272535223185201351564714044196966233366921452599414512262829985324573934853158826014171866541807224988892497971715031297069208259295958824932542329410258270927705205990623979413612068527827030105451707120577548326474144896591598248783592049323010433793438305648646508076438939929427154419941694881898277387701172215313930384549373975643839057140450052515564767215394301229646667692667797688109309673982663535373044059845074239792031081377823757407915200096668130879115434345773733937886669976743977004924729964730505156408996648408727035284944526800596365039669404631786509118120124069971031827300321276346305031511260147047155827698125161872717173921639006428748583709372521027059971256288678830962888915545279518463639194927568650563914682190979405083909220098327012364929665337033468368486215646838360116485666866252554123560730010096385765246543817916813581924789196271953113173284561256090900468638092013449805544381645247852427030197691432281647726298388508005539549097547372738104512774958177608135821396746057386073004175674182432212441705348236154032154384059813363706170020264756750336461290102042275629496141913102064522213704357807416283105439245622999454838222950100140179156703386327655330925336943510457184256183384285665188390093307301936722654827304805044210552610697247024973587472012025248614640412248692114110574697333159223523781765926444384217672091521277857457401651919944703273618224953418327491993824019829226072979348238594895444982184877155324894282982481784788663050672878825397013743986978030667355202085669021960908712849600065261158975058330952101310183128483000231217173450609948628422323432218650509474718960291650930817475159478764593340180270318461791861814448577474308342124409434301582376845683768481393402712689788897930006139828929134243180853223666420410729292581097218885118296881250534455746512543842345679183339437710514061275607128272793761847949880416563325882279272520539784120896002598801725705988548571144200406748528488162709087824179376815446743494446327023198660591881460324752929859963999614663585599214146099142860420654512902859425787024111312709174326885478266615037619980988004912413567528933201376547442230060832053697734628559763250557364105484506134378504888896467326795956789348958139210137308310753301952876297808668313165324506675784575635095735434088343074205911446623985218782264750314768859474982626592452264647029705515466044007093568383971666453447137347143032368756950954681641000321670707234088148141335699726142512960236530799839427721884567908757686221850757169409658654878300282207602428863634653298556792821627941041404506405118035152394202669678471508937747955543823959634441802237732731185885025724639140302986919916454917599222611949380713163797628178580760250767784039874716244769916061546733024748221094654816426520395114446270762745033828272822485871044700730066101424149695839543958635950104424320971077349664587981526161440275557224931386235548015740048567656154590378820002611184354688423575921392652802876546079755337309037273068593423074582193305265242190116980975677115130187000631931656157673350078636619236783723988910125779309578687654210714156524871140342521197234425912739873051777129551999041709574091896619840175455904953366698934304048425121189674183158691634556693324742676725550629257377649324642855486823833662520982560674060899854626885647971985769319810074536406716765390162779821522647152995060229122378674968830699530336780869892370561548030371082431024253466261022255891505961734846216383734166474207392954278393200233022298493686389939484622251746163832741334566982960801134668897674518396408621570748422619871504485961854802083973570077334783348740492750124065043851134750446079300290528343576626258428684762907877197682957822139361628096106285462678951100879838464336894892897345613645613681523172824904703808095385858497410210929678894071000227528812928741848028071134309680812824732589747829550835666731106487658333833867179238592319087093516844273203194231405853651322592183982100463883031744123304109017268445607837105359673635964880321335155173772561800589814391111260806592892049878221655202382474149850594189305954311245479709151483444547003491715038656149463904681009675333603737289881872446929794637117614250089139024764350486163361432479287831163722833562747629314058396120644289982608024396005476763041426543007568879493291021388460710307588507145051410174252292116702465061549915833907179374424661531389634684678062968112381204481126254152620492662786784578984673193507473007179035734667255571919128986228987699533504841460489153810063137069294372134731133266960306757817376524011515926348535223024710828135698467909956171021593450846557588315073432014447739211274058777287838695442423686395372536133107142408013427611459956029983884565563855646304362821263021348272704796387211115600479147877078226627902227395404353029981811230275189311466919380811376122239446801923607018418976503681235211112015723936022255899370343161810298116386126030093926657029997716557476266045793676955666893391030664019569840512173422149784174237481559405944758706992306463708446263721545694940868465715200205788033122364971518089301404715363271439698649916609361022713527605311124671283129590660828766356202739865445538996057648114729778947972696875742312833763069243974556237016887216439074094789320551152128054322611142288872108225602585798351695263499797706820223039305846659716461462593001729946976433224173721227137352164963956803602545528682561972774369715046239582140583639344030879958082311362310640047354042406090755042526705705905703399838650267580875390238774333581129990532622966916026108609665244788423740291941398206684523391631660618886196661773462747341065503254328547294979021892523493969412892443947728123477634937748410940998548491187797798268126794341784019000509655739990238324147813129928034968900192536254734134446758484656088423811298601094563984427274427500019647961618234875246269293734091294689459450003922549227660345066634020879999327331498957075168234739666166895659559743210632283130768978227158076679765316565758122873512113978935231698824572948415873882411032243422735333819534361560435803931837702216216196071757700770598853279071199899045455366473396531545148924112400246375923088857251077740192626711174593824644706361755184786130243927069197157104322819782908265128316404185001670628962449532251707226496555719054823463606909180305831566482797458257343965929973764284711435910297963953140629968168863846059430670644790960158833897534293240613876972998012754257729052740637981834772407858281572850812579682788060305133713193179353147114605156933489976947654496819578583591345721329057018402914981439623393033340713924885788266896906238633415121203828915918639891460013193526843804720447754552952276072273004467400707289230924063658565823722733459876498786936223189173926537100978477104026752073384939267578676715199482830331331676907960631392498979856523881783099442284624543849401057909794283407547293410803968657041925834957431819802452781246647531194518290959264201754253821257645041827687676339443864085382373423545007474822326689082742956474035616952455527805724496395562755627422917950459257558000701067116829252399098239702978570848563073418537591800513576500338950645857771395304882386247469137577038101280305275500716594211610752067089964313871120493984594247994267154915979789002767064853565752933951952373935065547433819622714114453065664461352852505277940664576360631701891952716768856429783700211536267326931552994610524615753912029245785524357811538308909458319105704604774166511095291695937787115085737549323684104171692038117624907213742246461954656118684461047785987752892496278891751012400628202196303214989836413347906369301286925954001527535553393713931708848396405214408557846178736668003326889702177765742703121167395575949745041311233288785799434715183178025981164423504941879539824228347531982586361702808737228602038134151374609611128255797426702209063383893994810271940488043638586274534446557627861752327898619984985031518931441955057783921623088886795037132537892900376668533323841129993652653733231025273627612092024378019442912032431829996417957668758163747533093031082013565446549772553400695262734486299950394659461627909894290282207004510327486240246890505231747117745191251374333164439238001408738293524737940251338976361011373866884796028490271308121252272638551436955578719864610225996781124461700822641321941928574292065532419164907796924267188146535646042837218336692635874742527925453565239707061587876323086909476969881650394628617303874845047313477935853047176070527038263867547581148270439076114283192450157519128738268122686115882251061691999522889965626774182320883720529593232435900518067033793553622461476902924623310763880673006739653562964018815390131152299977852782136150868054678163494343813587717277923599761870378562882188795882786728991064165704929783413124320269568575808817418174222663755242502843062700199101813670021312067112230052348265950420279263430158770450395124441576312298825736729814385297286960334431306128580723670009657992191004485642211571351539009945912300893036869372667226634098761420394963266473963047717800496131703584307281110234026361511236342563941960094776136001471863210456886306404838470255664928417639025233803682245506678941516629194330119233674869737429494764392541829597914848096596658595824115655930393970856109958019995248462844052205788009325940131748096431063115844759971833003566216377603984474070037902565482496578508879573012936024012997378491973077027481677337702820989876980244910743170191260317239188757465788955115661422004924951729385600176461125879187792333376356860346629009637677696665900847751606855049419049860160717395498548845868217390016183618633539828712346259151213426765327516055528332305009786028978453114561741532426965889701245792429918334378489625079917746650031380077791574454620245189931476736908314364814633676274702146585266841840162844712996759203078690313666197978859742256708206920922071011183568693676723323028907957363450500605444285792377134297203484790206252993506475120693301569410219157589892293794048134761096006302317661277846872815944698094543268461498179163430471130781063691972532061640046612153826412512470120099029059903995729114642938169030629468653502719888122894983682196370442755455159791435790319088989805600966237387417777691853907276473237875579114606260488301903404475544239992821351077342593960475386344021676156739104091095186515135426780643620424634874474358796309466815663784388524092991350912137299749998657828805788105564097669561060444530906784430459310014542063865372656114453819430493844411889620722475239392728034324845040807382882472015947299291879973007995009989923778762213565543995738607957693036515134413632232813420238613280825023727055108243864608457172399270854007650244605796896027718890808445342187416744916400184683498569816671212426765173435882827716950930797878962664937550863188450507641770980202441615767494441494309952026725853154955117828685137024729218841828177660753003938608005298023855449411103946098492973255553590190680737150553984711441019056654480537377094285288788730794239692533011337299933588890789660671554079535971706742040048182282751084383258166928613461782153509993588523392978695730230969887485130439933962942690976896281084158018831642540592021612879176541914373879110483502130308612555576150397568131562329631432493595615352461303094437711760203675732646505122892996059691240018507595270694484147350950184658463773912262137995726381361990615739814902051719976139202780323187519448508382677985105917123960192446769407324468064376243427576146175382307146522733419203551439184878614655804186118177009871397315350758008467776175152621785097907520678781452628483386232521455473226655796492703419922353107689965715290884398064648932743995205656136977167072163115607966932083281867661810482568171212636443491379101545450344018847757797505700180096173526061579222803930009276645995458293437322371693254572770300191860834882746775364097027476690142519232774477793176302475833697705828313943942699576489275379018196187941832031587891910403241449909381535940895628135372977658891482513847497233248669487984970799983970260963791497241527085862870953783341285191276748676792838893185376321964900485520038906068727660422530289104959698461671084252125617901549917547165128183048939736731759623105626297619187652102808443226634259180796486085058706359526971250700952344885422137801491852857222971548483984348960074977797043404443521867045011251857644474595059550098437930538033433904343429833273496046633468255370974028309637775040512503421339911280846225017835877447315890735001345362548685202851475377270878068961404874725560218751472010599154965380762158516258946451107086627659113644407260544058090826936056388759270052429759142857887306868666964086021136415996402123242400083245441947479894973033443837329672388743713320218846817731434383373128543339545048038350503959518167760660447351142414075638044204226920240806279652921234856068532268987460022795717523235169468620257580368115900000430524477504863994835545594092028379158662154091167952479437709217454858107828929661094868263306181859328731409239379524009770042775613871215538506270289928423749534530405667723799113257175787333866593123741679792629021067664240914965090962990048743128268409316843231251392674744829856151279130391042268996737135048459004190249311526393729441296749557822607757254352998355471852950314448091458463238769368624708217142497980659850859063454254350223935289185938259456949477655031311610191489433182265050650715915505828768144032652250022945853806157616897060943213288742708550493519788106883577474639222299964946000528588817527727342703655764685566631710120081695426052603675297281232100069246484938081405500067341271847042128161624349358121149879653358658366636542370945442029058505854200515187975853271207252397307891615034942935153719959061666330460882479485936720710906103278255040388520650825165781865254950563844445309089398162428223490727281403583300202320337282744707981761443294491322784521116803852456144516626397770896923799860958231866009280940584624383101811323772817773843539692070302278286736910524985753026541841870672554781847892005734468948522708859395599375556170181109330724284111087086250848265795082433074160231228362572753432869036697744894275800053146190230694251071691155984271945691064153616661764949432664414626349366769538924896249425609070513460295062926887252577527293718444994500197881163794661792565185202367463205759678582682570502759210817562680597037065248058256667379109764213140560558088111562162349382643978759146074613717063589757724713987680016328038527466075109499802148944306086144017289989742628350097769291754710988276834014502433456720031489810060057700961766305645873152957835956326252776035048332737554736088660055465185947763084073669556167272933216217291225277914394976859827599474922513898761926029031600069333714526058332887803509310310081961544584117003829248032973349456980415932774315450959874565916809055899187138048937917475984260207083652484843152916089959270098208988457484060553366171636323348068804851796774925389784349621211930878660090639869794309720558382687223457212477343482403844170723215611776198979515978174161709346855991415257887788737525278081960102090899014623522204499966266133394291573717322936043752595670275197327592339743822083468357774194109484760990551444564246056650253863497574220232167915766823342899713966396209522918973536035274400785691792631297061095951638553357149686282844257633193109533249797725946419438203298133367419392567583783773666102460913440154847654048075591617014376747931804296566854573113974465691907723604857563400831748453681895816371694315734531660804709748352306206666929535920114550672593986230674269003726843687665328196911311085452528572230114497418371660197060488131461031257927269731902299865144084341572936068307347372914575409444903905983031153700618279128414343618032802900307272794317350617847847751312130907994485224342429560253037884797667871620562321066291012808346385171667000138789371598401810431406822046690614636089552117944211634584449655236121316198654339376824571970922044327553124745036554894034065702014151493946492538288165933773805714167056982091308419823614334862762898756632415831500008993754042912202813868060818374097774508052444949187267678106391921807973846100051788787356844350562185675621183000963902471374118805916345257524009264166144847705128896276148220634753929235748955426481493648443248513796954072754067208766650454346863015578732487864387380689426839045618415792658523260996153973043673534894593175316762708537863216045815414675540760905148891084800275900293329193042806711318429191290064817452748174057276424444367429192863786080790486313200059888081681874876939882324041531000608030439957588824334688176465327527657048245023321188342461832314298185218441747746006107580342835042456718014851661112933177953897369308184802176764734410738080406015254716132209717681417471820388838753455136713955160345360621954293324383550017161978464389021317338294715097407857728606438471822739262845347159844833662166211549329650534529802793669683860863748497799386842168710943038796331716482451967957526917903503511186113817419180039665775044253178126195292078538296019240181857116381808618971404242751939472322850258903570039987813644007395582982696319157557774792234981969997390471501836849921068496117109741481686824574037602645054158807824868298376068906633436836857633736866839525411680745123745006600696894250387969310381369180256781078281753424670669672334641699229085045227419226336777075946350506494672931770372227551429051604931630259755523165502517656788126095378007588533297500481304029441350491385719038868033127465136833744268369159016918673074295157839859977984881754433709526322936437902185717191602235550988681890673829828305709473711823116461248440680486014186948890377094936167585738753660762099134193393593139487285508160550342937183195170261649014274825901845245847811492589526561283159961037205111050991023404460552042064939772803734093162755419863977081889520561149092093031380891296543432687113379819870567419754892872627002713051461358764880324980221259262571829530651076447563055412524985405745511391264158987377620788050173649826267582300498484192938964275436732255570400228962116493211924647818339553000392084330083802486400473953428219332176476877698684500015180131411971235500665052616374801730843456197897442841939081403680307103826068918902325766478225416057268850158093860999141854190019369033611230365676035008092131419969677970311031772171214345489135197672453644111745280949660379925383228979328525155400857729142249759253566668297899412466821187055876093057576700096581660517470117079217955328377893706219213171068734794409478107952614786653444377831584842444798905326821791312193151520253874116648123622897772038118608960885107883008459904766916650990050294959716036086359894750963622675487530159834877616889472166201136371528614068566962431618080080989005806820265217023232092109251578752200926153468692140312791351622467432149147484980091969965974329998928546667151900832942373554389141101071170923149312436056213315507917308519916547124158045491241797852509890552611230332290899459714371986354230177697106095924526809798856939280594963536317699164815442908326779666020318362114194084174391002299474049523327567577618698570828572229801787380093345738520884984543327138088903361197560341585858429605831050978182097139081649752827442124401880203707760260637717256015113522331821787065663220406593115902337278074701239729459404168776610789954211961521779415975464659948216126071427773926254078976015328073990705079612427694378248337208128742374645251756733154304693313833543426790715267814706949096469271091441060899380640890042591590947639149037216453780732121473389530922829570820719622667417967484019072000375427848394371178306009836577181179846679710517934357911682071001690077952262106857841903436971691805074284160544391876816284572944961957645119073573983391864943009149603854617814608476438423594711032575213417664402874326632738708021096392415840812356738125792510568974634536541331257317785733279990928765680240263982313445614462879745452685902286414297856554638918995342812449930502846218298441334024598400564520362321664748927406126357997340525659285771369878465719435969320965407577732904027221547970301870308662240132401639367681153661249204970984035177953920081970474754588172989347111790195378084391751755437504005115952923183667623770783928090493221495789653983603232013749138125397806536282580416783644640919856010457697197787023048960007422880720018813150166051081802819048423568201551736824709948983678301449762242151521274775120849065948568620584195879624939934745695691602622886795028380494333392907782887601312610169040267096529157211203733566418170032713139617603891509346594537214483521018893392373346479003099170385784129552716197390300253699988210991713214560376312507357612052149326499201202938766234268727874039073635557616553473757088087256095151024318793828043162539298722170896423186245030731581415187078118577003809219976259577699964693085950259267273410313733199420061934441504563843358499195152317160882749909578968710352524955645064340327645943084405348799272351054695543582657716500556179412125552738847480355721405666434241853056895941624261264227061968854440139102323538886862674688175042004609508487137373336924422849593355663007583033132714881062503903347964533780239980294215195125931458962192095243571858273316345853818274084308284527211607639381881282521515405949680424831148888660192751185233064363518795544301164045500144936662833554248672401595711799197838777637257720457336208578160228332244635129352650312550144183705893946613481498475992982215916135352422691109245862316235751738661993174886780128348073870983904088401626421848078485801203155037920551976615030839612577659453413934442199416949959708318915925177365802589787983873647963203280185074895194874072198171938481664912742084210627312470801623660798594261469449233434153309539949588641318651032383661241203966733805795042526676077386510848121699180524809602741891436338412522726321792928321743515622113683246742295569580622851227407187736273676831915092641604484136063010910107610157474564395653085739715442949846926894792918817002168073434184363506887921034472197901038357478087070726684223316445640093704452822980254655970690506280761335597823979433080573246946136087725112466211131636048481356794136872266957351237266265783724342712598931863779050841834126752651660481684178650134470841348847426867322433529058185880233490409581714983317918555394090758620985124906384573519708293061328143933948390167942685513627734227578508541086917568283110053312771022377029298026866539599324903356465280104997103866217469244986875693606908641309587755955454305236658134907593936647467343620799367477006160133508522626334787198241868332523662554963525562534396731499559890658115086119549105266158062606314031990914958981890943780590282296095725523961426086275675139939058028697349945338183257630084354124818571686964418386489027597085523979058700154100617248497891739156946237996482950042705847893697852137495208459457217062435061303799152007624315369002735992460140965422232902682090664048977114722334494193333103687109042282223410778506770209770471152702562138988814983379708462207239286595387147118730126606858125791019767047616835696211752891000235867646321106707768287610411558319642054454224251075917624322802013479639878200870056435797827375854017127514400249816440603993988947445422664903841772142084367984989622429718070351368167372296038023011133285011980048439556453194804329195553699606398216766296422791364336234986972360729562122784607119467898266048385869181438785701136067651689577064123938798382552996280668572954126361821435298357257278526981329829031561014268853015634753798734118402801177408608115721831582596747365349132597632407203377754430117702301825230522285366126224629171638909588743844002047917841221287600468460758814938690865165977304989944710746055118940345015984506446099986202523604520516843567440646930196394298118951911709657371125561197817098103456875569151187119667296601320290988179616091294014519971814961670289627432396424448024055925365611918666216167520726519665545667057417326784456310946378535088143827758468625551682983493111217400048440973401263552887123460845227674436087772541618737381945602526608597687643130295319523425877381294645725554411656198696733066468296189691362381613928194175045760495194442928111405537642191391122927377508664698814224280038674444441455535754626473424761579833123040983947986312050903940118021671868117425937031567163186031886338093027979410717117563795459936791805300169464542901841391020002856285881617667572018132169042777267777907177694763289973658706703767183628891736677204895023130207768058257401769320850295091163843527469881224767910850684121081194966731015172661260883164367582907407150112763475176085844209117971632294295283781076155102218829726064461514588070459075300787946436510444169475163096636157262797337563431869431486708794297678727272944865086450783129173975096206084752693524316209711930706356514031666580404557227451037281959140536321811868292022317877614621156055683733126467176686461032130594033183246809088870204322099513780076640184583447885884061203951622898920526058248292141444773969683072719133383619384718237350730129214490769748035950335098959502120422041636432916914033472112114492948993590908171111879716884794912607471586750099851302860593238576803177638191524603251531074959289928118313700282491325814383914091776317896662331218786904473173836155339665935596258815222038069615117083893075033301030495468979985116212185124530797663109866384348088960455247910004066964670063256099514118277001950838064929944200033841914284406349780915036728561535886433106636300313642391796075629218996429329924092456776661177547689064685753354145145401503600555055616388466094100690478586108191076609001186020131133673019007515399088586654017967913152150627906809382237260564449843186062651318645452322154722199214740138908859425976255064189247457438515634819655480090784142252071606648895589155658752789476729882732995524049981816081451898534718667082432278150326920867215832378639804039518292463002295673656516207045715427767820585021437408908225540845451584621543053892090485027342149426870764471167121403655132170326456553900650483175527182804501583839619618656973738013460268273087101050214174251738886465186547989708719862899708622649524268873714732611682542047810296302433125920848321374529370537055078082245804531885492627422909281529291656066943567825453343726018943049201252936093217788612325010078003239718556861875482167271902831703615772774845048669643835663246428921836268282089757228149532032254079748840826925864995132425996569622827523476660437475390913484962799103867055219042093592062171569222464141294437101306042267014832602536487613571020673498105505173274214266764855874849419732233709097723550478697168587468018644921048774893490143821406959103741484174985296287751531417367791022425979286489865243556341965780452525367208301170193041436843279974068536080772920278245149905935573256498949480203363523417085399622767079132844661069101424237812655994105089090263589547763820323523133760039178872791961599450013224421242733913739081089304381300575505785658183290819864562837422504161795051936615168343191163793907701646363816316287651930275594610056951978406562814277788941500447040799748497644524838235738285444056250217281310741555198996016981012569091269648113476720292176675258397146785787906318570424491024814944834295059265874293148141111999073148971839527465681004003500912686642639305809441939367122926239015460537729299980500202773092043246402669118784139175296207820738174443795953674872911074736404472902575304639920492478602299092410975285647840856779396952131364840376111784662268901076050184972878435950859225477507401551917483383119265020231182746395382577128306107493924330281370021051682176820336816348192215073421625091724317396450681294762047022330430330744281086624771093727493583533011477217827356601113139951739625253883962314846495735287467402771933185050836314976814824266547665171885952426055557538789247689015071519196827723720776871036214768063205871443864063126793432960678176656186508538738387393164125558334543029536237079570744020042777959580454512225925201943322682904751686432463336115645190448310221576477685218417261813098891445869095373996377905983604896504317617154698999642889664423447990073087620138844815805228538548304439722704451899871367805071983922010052864019624114684204439967657317024560324624654285014948272763890204040512276587050971059899198405638721349514971458120797796017121329340801030493042606061020613536817873163195434357412787936739101822051952127942847359112193024141053118334491603524160379715880345249845966405002028399099177806293952847064127058278905724666050348648091630465111436562877281597373162420099318167999600429266871381388156833270843894859415027403317396167691351497795675652029086906620244317726177570701963912623104314337817046742409875799144877967328131175548687654951899319777632197532826195898110902881562331141461761694330879377420054555954163958427252052270973067745087307520701258617957923115463774017579193545746216786281461657562036444887107073975374082871638669552830444163982711136405111913702763591110072076065018963263491481041466967847268106684269107589186494333069188801189328448887929231520796550191304375140297593899978247951493907835075052898164186152389685948604286691079949648251778551474295595122145189384050735687759904891571928281657911590620226527724692735467225439846563818776159907664993545265652014501599486990773609378861451509163008560668937407151922365133238848889439890938509408578136012375628718033284135267640015767809032857969418140951131968383760432465180384798993635826029566078303817879916550773730083382497458664761494621658977655320298482683451105496925493838232485775796338776986588530107714479306335548098245221670062990012900454946291331376403404119149214886490546534101159455580596336434056447595242283009784271883247353893765999066711223544655614289131431477852171922923730133647855262466872547598820883736203680717927727170517893456440090280381548912645351826368542627819548295473999667685086108540639906867887514268226465133493555428215181527209312281448626497295661919543193810646616956331933462924886777797047151853273103610857976679434906961339708442604000082072909416727121966310570552760011938758903325291510459260530872936293268802568200899473114008306520876659299117025089281754556526867059306558057176140837427737831298795857945152115497057637147478295389281382381712054264395148596722255768768181295575881525229669000737674801716365554440216939904990292792664148202749779307922034024812418929590210924379507663004353297847997933715570093185715314599254472504435151015550961816697501053135853677784344987478902223514647945545097772602817529706184515000732145189225488970191877206636475056057156786401251772279986561211585946241438588250703937153162890849671735196141448022939422889030043723633698670156954219583395255347956719911967511542320105663402084297933151362364090106412959695691568728169185565583193058996484779857499350886108640506981205857941028995972084939056945196192945323965583950248891115969756706519427382766258743515644329070158556865524440998967558255350323542514049486825988756227181963099566815805988503330121796363216016436721416322910132736801911716946007341725850257210945289779788119177749473138037672951776400968626587643956009948119748488005547495842818124374363841953152089164100054213808257733659152922433543420893661995943526935747081801137209856039095633995530782454173470420868395866816578793621057412639059177227558929090576057956038414258112109881377143895570570176420084785484802519589376065706488708935331450933499086977755156016416711605107557343566840883165000986062125912070191902587672050636326410762011850712112945687348467383515891398045142422789630518201711702039564317687579708473617487358005585344945210524119550681450304630557251773047406247135454249319309439447970296943808380369562569089922760618800314838471048679132832165318430105496612863640137552157237066026583131158955260674609749529806896866334747896708094071127947310298071340557849713616832699389703033636428352378973918507437199443174477893560928756454245396822181901160489585655823704734745103191793411114046787526802509392592215693065087789429547175179043711253978483275417792284262297533298280482813154566330663075118078885325195676228783370070382993902983444216909150217495157844142759420997947126667261228404528881057828196314396616201683941903859014853298962953924176256290163002635093318950506530168570876656757752947063966131156222685255512456675990869685163030035849654994309992299408441800592269210661187628625682116034454944247212870258741135135839715744722363449948670561004777873147970910849737726922921747834708040308784144464984517465244804467369253868448558152678933881321119560374293145359876599264906677121722177644424229871907083369604981849941920811188149679625178665737720993072290072746178613157080358180768523194793408970741902465235216084155565627467014713719370131336680708980880088691489392212076777801504891779824921562610327583808622159476526596100043835300183296196204242837514013242565534856211692476274380739957198555003866618468049198651385149440782114015577139947413762288206011577609781883507442084687273307015141336885485174771218405272537309133886654640546185603822462873130707404090554051665959774871680441340884729181962527038717685118489258787935897388918756512782561193524347916453074456445019786995861338296695106684875298933694228712135846970276387551444442064115098405171503049981977408678188097712118456009924148257549455365299976868160184272307899507226902175163837300650331759894303181224656126979648530421269941536461460903832446435068994675615436308463175302250782962151033388358925525815227850958851761528439104220367086163142471154697220384397329206455479767532015665256067517055651447463507086031763429278940168756936631645988695308690893355554317149632475100084243530561543472687306087685724205151300596880212393807111724000264003443747075092637372317757311151167927177912114044420750911626443936934209865551697000284809252486075828719231603206070158701812968755037307813158502553562939927872904893987764806820743081714920106982449045702937568802787302934418217058511855375374340025295012010538183491478103389235371414745249432661508745444666684688819639313419057025076582862378236065283721654944315742947978830479977990986370701234793174168534081307490468748120890330089276413043005951341945866616089788008758752525920539169227567904843498897355072196772539436548783697046166730522971938888164714543272418332163012327998446773643178307904847990714863652719199184259234837883627259012639870013583480288012113898385781206324587778484086195015292279710144940343770151561214384797806192368307337652610678665497245480328044535701925457002874269249798591387314132929483450641190010301905183432747258640387826644229106819915563462134231260712580229198527404725877318502567891111324906356386852622261626295671138499759384996480063296839023985912219433877375135921574048357858754952261758510111404216405217182585164247973253451932954373661322981549988875659315951873203541523695837653167816203244487500503649188097290245119029523937846882894873992148994252562749840510391942265773147231155008463981449986769970251644204480019900353492127109750123210481584747466228083077348745620322919250526977735388839262911289883499789349016921098042890793436988331249902587122556159909783421801831097195601171055067145774627718597942429561488451140943676183133098761452256931684725873736478646453446557374522281256727699441867444474155763487087656986524964384416800602501160869385520960197680077879421866698722594948731754994347838516963483414875759346774652139305532050492768174731883192476003404377976602456517022542015500819658998905613349349007708487388688030812968705484113508109075294461444746609695202015698217206658245531447830880370664897502151239494978638131521520181377484418605098357668335015762641398317462005412113851741699129346661999356095877682177784335225254814316640477885955508270754450532915920226273594560807311729061607351975755601863784655727545031519268558298871654212456190094074828132805797345863518496500269861054834778757146962281063207665689503443388642718288016592212623862664814571177805432247355205818398771413212507537690675328085499897176846343940844956621219275322571605675976602264020699604765994470918950015188087128845571237355771663550469595922792144041205743117561378969331228472239245077116017487816170077137525858757707515924167728465470624078232676132003308518540080025623168000967966538757822739752961448215115832446366025586125585299832565730122296691347811904156803448986539206275201143142720244086149322124470510459541655183961764908799288432339147071634753792641979083487941855187994817401486572057921611573915473475886332822986652585996225008832324412900278505118996531666040901545063811050960611461992336568774646890191543999962893064890525520705084685957470203955420259938252798860446503977419752289802607477263234341065188397701242100028787081086673034888590303575324402782081420736081165164086877491981746642355897406862128567745455602989981213018747072093409246571848632688068687070025208664142878051170297619641620995051623858113211275774206941881685833486051182617263210106253407789795036374901928900372359736988474179224763602565943820427703335302202438546474524327494657461327777815252663852832752232674167789674881282713082255166078216188523984837518351619894507956852068325339345482290094028132759718188927721911665879802501290499997476511686067225387027664843275221814005731821213625494858908000594837245180452385263919116289504470322503648207109849259795273943241428883970792150974458758974959398040377542382257015555547901190503558983828720550614118421776788389663821767271171408017176878424147485752834662387610553665417188892993346442279819632946139429180785439025762175023319537529127386703931836331793772262130495236452270008719052309016447042259882066687620659567525388600124397013046786646571192858669432554543760906886049369274588611489689650141418262334446057995721742799042057183162101672383605455166788503803425846059984811526676979938723029342122319904692466698101147915118548369283389342834371575127635500075944769219427617800550413957479238362893279154295420024730054071051969428303720293288774871471234197589145097450276084232121013012381487721699959838126992364701778822902603095685076040119393419197361816325333670290984638657949541001819931629911766152982952708690577984921608954968674260344752904121861060255676027016188329156281191966177889953036292303650974416475014317760765804782602777860374151627849959249728905609094747976967497276154062251951525125506978081474801700217262058472326704241626105936099527387143477297188112040134786926933021140652708299612873984940762164177389233791275234274560988583471415421720102258566010728393759999895290426375610142914142244004784054144016940059136800738738060184824199171585192371721323136131250145081457522108130880233723832729505318224977993139928103409902268719561594177194826863651638301513927893333884156296885938527305552443364678215723518510533473523002304788402253665956394700973925229828932938312536077255644535136549204433147686888082401892221504080092295305415301279545527621518164147704929708614993314815712812474065954916532222483842727636104744039728944286681127252040742804200431395899048683008629404414644715948022322253965310005850661282789872461036357980573782871988781659029523089453965353692809326890570003272626034593644978541671375570196356681082139087711598212083598103552981070898834182739518203235141997577246630580068148266597366442388690999773765914543208501208269998601044899773566155934634074985172657699303742989736766881526880648751659413255924213864013396685717897199961798974591556012321002859795776640451454442975574843887915845240640443892515673509703505357800149113048408165885906587916131104959154782608592300194602785710656740557050251358159849843811463921822530023330263932245901246802872964119617847989630070510147646961258491667173160928819873479307829029892717425176723634569973769930622524099259400542216936059829503812605016631666705079222776184209133591444443242444775777611652515296985184672849051731730505495527866955107744352200209897964626487692043980779386290360371689693587718448026289128305221936225429975086810229199031834047854159198413443312341149339864973663911647772001935038655278280690872849390393784639828779885897529567980005158162200981068266783820341452719010905831327870773854632122021708113765568698835209729177852742207051394294371872906842541878630347011535757631735423102682122980759275290044749819697078692111632656524360802035850240604763001659527274705616436800554884038263781923873942355619374861913438256877753024699041929126040438169265198825667831651102478358837225717363824571089862766270245818578292001670543331214709817453029574069517195214747077022660481362004659571597862933770983706737967223206714676990562356094714909692189727763514252962321281610886401335429751399650778833204609726895388007880652375095465115746006782678454640586011111315855194022150717188483123434168783730073145802195652025351767220691984875457325389891094947350628701404260463731892729122547203405042948722554150486710219338131580169567902616873594684876766056559642190604709837149410043041387590135127132798054353237603725716504081003550211496251914530038966451799925680843074695585808069554824054260971129087901763283623671223098298700349286345057550961071761562358002913410739543406723982547682173103364463763177775600593120000790595526750751263258204778598581532064872884400077094931247334735573087183578456725885688740580269505048410567191299387231937693257932611153523641978561897872944561144639813395772101756629754098279914429691441531746998547882537596954941391521906155949051810890308293437910676547878205656857630866637866503240757757128703944086582145046496276318579008723117997843720508639586525144116789048170587831250943059528741892153979103543377460767440864517013911621147362179148871893228853702638310765456134075550628045917958489384833647772349075537702706108948842613476598665314217638517010155928563233329266231394122355909613090777406168680047782925997371745958101313234589450272339416381413738770678690064983912434009055562610181309986276853980880896349844603303884436869116117212244270170851723938962425460389207402600188638171037010324478897119326235683079981378281824704843833014230886787509969334744571113847037384476715531186813267824061399859739948125936956937686953797643696133205530010968169048295151275635051707742801942197939423698203304143097739707828504443609894645692286821609294454920345250378875846781539278220875696429394497111116262808917087079518978971186772506811365409989284154135888275710288851739082777817376605369033972687341852030246002316451102673246579116393133690030739229312114288614243168562768873134889507733831604485209277192013583328894632949110263053928321517482110592105605545955370850375073591763285075222018453231648394434882029445281484612990452570773106900503730755822593456277892308429412142996668882818482399393268976166121021015477050574011779161453890127500933917369254515998696585363129838511635708206329756921297894915594609244886892043962881918094672858516193079814926721162221752467160079147613967344135716286338721839199248179872804209027465462866141816168433602093854873687638994241708885757851384225468168457460677401483813535098194689362024534738880483728290782070758406532299677789750322170563907227686063023997087559292817033211720243136722080602038092142695831409648788710385457396393719483156944645110201956593283766338820490756053449187595380187203808416718507401029152116868343889687616432447590338369402105751756761863780872163826707271636482136717984036229781926931913479972337594741082871194485403978934892389799488329260295438419715677170713311447339459329509174051955142934313797208858690211371120294495122139996405227674988423813653647352623013035846878808012042833043144451640329245012273167176102664271799166438615074650590480020794907916833119956286126713267877637191886323938707399154019316611629370805971491572191830837659697738734490836455161956386094655404181545461897149235854285595455922020133776671276995853444424905292593126652550250730935144277745491154567697079339783870401329923525754314875020327030281203969847020696889986074064385417815379736265819853211170689105562652581659828569551501790225599735221190230962592840722151736231798512611798702941016526316192270209513031910046001627840937602487049697812684892854407447346772368698428510950272061561853548805443774878423042772202533975520498560400566437479751900319569692287495481744989900791151621860451467293154254291839784585369430224137786827776827570066748478762865290057542244745892559926470510247736910651427869266136233918823601882270916887272454036786380840910340827156493411439228159608598123674799940122891442454462261583785998322221443445972705657582603563556449076332733689944851010305477193036984056905272864892511259922820480680258473872484508358994997218746179962699869822592280377520870599337940103939497558141547357627858874197329743601032476872780336845609761439718092859826927487043701709204765687372739427406204449254658788418097005967957235967162351263033224551263620274655805376320947009580368618238900356028685378917847924776309162921868737539931365885109688813731140519385593007665898677048954645352120218856365732533509385946320089055032697463905982602006569867335510902218159009434987915306375734610824365252086857054920607037550694379449198357139299423248115459106870862330440844661118033473758842235289348211919668641453951900783975416605486600512757473738165026116574907593614305955378382456793125181206976161219710172365602408023071969989594863430631682064791739171193560753988652367729186450113850819923590145426439687037927563989748983129305684722943732222103081489360849595585946552851235733309423709322225139163385820810796040973434906787326883382422477516356095754202338253469330628194715927585147581737994447586021950873312763285189405433606964706059949000141659323294409161466002442954218361398048520990899003409443932840070502906885415287657305791887243034409816929818475881686725455465474683685552691314429015878905247710862791729453915570032243667230774453670308437849710275464516754743432497348298254576055885533196997418814231151464031946732439490778973684632028449754539961690491035992647699548824034853555179196032528383755242208132196604962873135352390792909364137950799268365614563609577391074081873289210449389067799072977121127343850128480805217025925531933090071114513780752120246899032791122445816155007704501876107234359927544620731844843477943788767942541321132358882740395368406033607984634980217936420234842230418369235086711951930262885424380832909065446856701128079860669424720116823138324666056771210382321818854430170100214800105080968191488987809913611070552389868549446676906704165468907374509226817788906049460058940596305124455069555221556616028985517983524360784305315526408780304570380792905863619814521565983763387512117905840396583990319136082210093174644339654457759034415530659385723822110114923782717533777301671727036894369500245984816377978100997189850705521576550748149485895441460617727057140429475844864376064437305219440887385286367526810387829246046181574091145963230316212571266897824346887305254723831891417739560323983810037882097803468487333473972470958912614498795576927035313940171125791803085749596775684172811193564292442527607754302871931026223728640484836501241599397506290486397891940780216720290421845069720195053258656431356304046811600924228065272620865177496323550429809535299452165798589031372198504028653073149713862999564750947182719660938988899132209271091927967523135578407356098399686060277184561095904502591605477653713525721715476304818178379307783419387987027401994530975362225066891923175337095594783417753774346361497526478149406935290229205988649990727727470365147803744982856268668750572885092565583645488691063843476031941959573080607589337527194086547220656679259837108711413897422031734885028779000028955533469436703908635058109976102390976898071573109811176028616756158080525708851577948630385027261403036073722303638551936430017748688122527930983618946477674966362450518729250218336972535974119836310513060445481964092965238285463799702731962386736842516887955679650622467637067649465296231280849261333446843965347824472899712439114627162219944057418483421861090270254980057559196107136062466736602365106076383219349854639767505487503467536475193205725055261319024498555743774858820425980698200325198930470430432202302584204483322341195896651090133141362710504958149377478647323531715132581722501017138087943827166635426079051480053068285617891974698796589166815792960647352925265120314223784349781459539283750607572627732084032540017547036766632160716819504593684278527732121324972426026219273708105535420374516563232230801781545512481341633989647338263328932024492865726600008351786524915444251779255595264287969290869084706035507100582900634118218755751584175303667657796984246257798280849686778445798417451137915558503526534470390072215884478876848774597006426592346487668265379420142977865869838208038724504667647427138700231303745739842457843384961034007410827796108681450767926368458535286046153174113009249357238856916313540700769858256245471059362819224932721510568700437230835425783800523685019427588568085404948814204119316620711121417780081529451431015700966527904012223651366042914094012905264965892754608635550050559431672265963224231215326970042380076226977946747712116215936752563604531245743828712879459774445386390146229132990670366535150409550375574378121173326055908272169350131039464838963920613343635075733551572700631176478672144467393724516090186684317624510309205519464645612592076999134072026641530001244613490828219576407549626610233616389877559022287607534525400051064670629384276268226596209408617018146277589808489118173023271021118935353004185166876094970099566518711632499019690300890259273578249621245451405460979507564195111402029137830708205294052969593839221624678990753050476031095781848985090369370922016635052529480449846031392115017521807007365184690667681995412126187041777363263617621145211577374037258250895849043208630863032455609733922869826327758803070027906406215688414326713398523827782059773375610777901176483568493912854484825018366815022956839278197419875762569317530574214620602763646884369136897176569005628030566840361404992232091883140399652422082359645665015438031741823296942452008271872855161071480611087327538944140443733641290010781618991733625476874224905459931725501413912946466687506300557694198129441941500638543740346480196076401421453611839659677769297413889964641838918301568925369307165781446016219848682937650634255770827403957548544109667730046544953464008441766838002185879644539052309354928345926202410141738664330350203735297683539790030212726119218468951935983976841858393227550701726387561119561984870782523707509323921559049792739953896330733355216850536900831991738836811966012330182096963868553247539114759396576179850771090717998758650878726433572419209319610666969111570376466746229958010169451610611043351321180786753438933999613116563976383294754682473577184048171650479792160398850429598026093563290046242473332691892802488203767382517967183242738323396017482671296601633317091186951723382860610947943135913620667177256987096595046429998766785585435589312090179054832629745164720588109325464828960233115580850936191268634014085615967601390552949563515518559867241870291689528055115702236823167453251669531545594319287303071883569153956335170999004803404661483123228274463629139716523846725570748215519570323543732085138613735695013970219503420054674080200637542644600020754200836871875986780923600179261242598737475396236734863380988615686051490038508122417416989250941057931907038010507071669414949241434155024913570892604779951970779043864912559844357261170847363069107073798567534623590093133347876182682202659762056680699524492934667045423572378738947441965449904649883665683447330416162109885446190732233877735256307691711225688388182125712573762303333924403516059309901163414686614444260055179561946503973828862362909489345258881905453728954164067595602644264797089119216404708990647128801894611700525988385749991269893514817038909850652030854987323828300170567250374790503694495301868025109046154642617822700871586888346362501360705848287253432132033970284876500560875904431275709683284372095317779552401587939346958162380854057768584243990542914725467781949233854986939509958878940686979593182341314586144824237299400768415472293900828035394021084914180757744718764332238209814559578434866833909961353227068084392917096291865226291643195924004994925826522065902775729156092880153071666757801776609290133080543204720318457036299391868677305518971313653476554168595994881755863756057099104598512200617083471996078269685672511204592918858291337462497295255888694974111722453547400005386010717378295578490018893344978075559081281121315404598774361688162242415895970457597466838266572487111828205697051634481673277525959565119138413762708519601943677592460181641945293666814630632923678472389510076144144031339723504803187959547447314353089400160731183693999062657525194829693461145068236941443929679517270490810117874021460526598378453114747768173623973874595218810633090540892528805539026142548107908161532734934461300982016943319744155427187886867513154905086707548421665700564197982494758926707283323360806331457470900601871273870402734233379854645934301853874183067070972393895677932113387801012308282743372980271446524150159634297167464589587850312081746772332234904092148514661158145914065911430290742634406232194172281121549655566400147292589975504002196912411174390409558811618214655297018046570005234377775337197192537850942581035939019226175527743746432306101045135689572005168689779711426087849447039203292672775468896947628044645260717985701415765818490549559426741172939225693738288638520237702421252739608839764544372580584140077382681542835874948787757465561088102228874277868663972369055652782115292957634062495354116760089317035590595940294633819306186503074275221414323685014629396437164843887639285147423993996954746830306323913228267202780817145218161902055609726971395140676124189767152071217388932921650021346765355796998015246039640143655296895052652983999615222970662657152088454263789073425783308510027395615213198728864786294921584640633159611481561508269125549754024917026522418449858954678134559021746790396708407991629358550757599692863156832967941510112964656668204255746942433346113684100935346579091434666232969627096870077654077520356084999917811117688282727881149214901973826038604857197317719444430591438684240101154345569537653719143805848479957199165336915907317580721542504181450468522516944121738882080847031880780306200358101739143322707274632599130400813397491030537099698771673085330744139890919595724079212688199985171700732117608669794942568892844866983544059439141272091009486578353699928031390700867632818378208544836156998866113939009757524574523305467883657914800092272666485054715160641488107478934982072863964937463144359439047401144058269787082429017806320410636560711915038290627000368125409091746381202247490911797197980422820885512396837861638075972851870435745270054489121210006889192381807797456305042336613422066533022475505914001943509456830242393711606228826804725919706112066755481205866950049133998902991892841778475566579227740250341657218404087395907825408348581355393944184622599796823908997728957454607739814836068009728459266920356721705240573084698424289767592003620649898499779374758642569873293237388076204821351325091520263002920943353475773483082271945367078181583598590862215465623686346042245878936228948522732108989270555988345067486167965707004921917271099632809485245785698922491585323925536732140334032398345875477267912989141454744747168529164897515034970470297965425682521357002311491485153919541307569004068256669405149371614016069316624876272524875810704604165924604500202099004943911616869697495781521077993562814578936900791545112005917398286182458296243709272039510737347975737426016500685472173382633608582655264692700398746768699963148037266576406178289033318194408509516646377431678826356136339906747536521781246351742314824222649218574775093054152623436678760544342421560074896782009259836340567387604845584303927704287819650104421118899242552953597755929385783577706544659209549231478050456980702189773978860491778882464201488722640021230408101834682709748366878765069194241279132621115906556884264297176786754202886907621830209370513844027209212111985263140361522669380170021866765631387213583255783158489099357669031702549015179292172824938497967812985918120392258411476012015130572619067538987116926457453798805879859487982308843461331787450750853596905427666429517369486832220472945514862532910731579835654663069874047137157159265801211977711458645031827682338451240164175790645327733317215074758150478274740505505180270083378558345129986580648561966789698471779857172486478813978378115787947457855050302204935516805363111018357991384371369588887746723357775394156230294291461275956069060265298438637047866326744443061361198619883943923139418554144686242576202365755696043940006023572264292296801693286451028081305542631848869964776125285338379904077397286143435142548485388520297893236334153757946837814872649585519763888538675307365496082079217171485358324014730029847222119051366372416905130041254474795436629335329199822062584973004875865753991477985635744397956249809922401171278836565041790433552962734423011605228982073685078852318729455845588201490224966922650200347368940632872828043030055531247169857247025491773029231291123247324169031735851183189578058128235787805304047690033870646286564768611611910812294015423744857709305938036023164013142422292622405255068174788913328436843106467112769397361202948700902180935295378968035621015916181947539095442947828171519342639571486520659107946605733347387268112540561724939695541366187994732027185183934255632614700942177688429343970090401611894149858004161562612827935051819108325464867953339983661112443106782485019020359490015526776000815770489541796603284445440573741894425881621383185577056118457501194609781933856568476730620928189482822746947252000540245364371820893951329029768257437018663645444941274349282056967440227872103651749421765613247465260869972357906071445870440536636801810882281251374369638756823529537860078339369312373638034810701706907492205120502557079864693501642693677572678432893772852587799961314804341426406802802014368553662581332089666073753938157864931355177359478691820076732632569966499295044122608540640351570484936694049329833361997427758025862991263528402372217687607751041997853046740393908331498429732453744722857778321588059034314305789324240673501190843804160813882088714734192174866964936050184598498493502886169044420570346889766432239717335253048313880950195344537845854704084587921773854170900761159165630779521634283805261445479125694831035296032593391595403229501063596357947033609238703676328953934333563542639479995856239198927672581555076256429991355955319568748482144375180879562779792739947574132461684372820752414122645119411798820455900115509593058925358496838240619685778427651922941376576465663077300853696539276583372362121659557882933641390818602203929051431055304381227685649064465971428209109973346338743258469141491312530247937312691468340785345945738676133338839648178878001431622784310423514708518512672799062025772843369944896460627925613995234266189292408292491843392138579447947034587881407137038238715892302410233209362282422443708963042559994688453310848286224275405419753035022263177862767676187027010934850708689422209186220008080326876351228064829478250788757227456873583960269789418414522014671851971867708925934041762972282934021595467171211473357131281746453020924169184133641743489534717955959924866409461909942579044951168308770163182498223693490256342095182297759838195619789841650345391561897798389334489995488453211165285264770646637177808113976114019048054808485021833004294788272027959163763391346828825464518587119290398558688864435335523454317936038340833345078801754994050743666670423150119406112653551571724959096284009460330114675843082318010947142339594462723107812991042119148979071920684855807744685324616269827672288675211451353529221645932496783321836918755736402308181143551875021415940841742034408852429251035358099714582949577523653718696945068961360435013231034152107133835697344208413905490806908166690410539905379864881775363918713240317474067827305311696056321358456710820776575572413390543793170861619339739586933840129227512595887600682331358140684002453405452649684938708311455480115634833141852428445992198255944884345322860557323648725544231445002225357830340297703649521430194718685598147231380250906137280743125145900971040286836295584343041585119536591714894425734445326752666950277801634493863855716109068874319128082264890142138026148987331428589711959611130382115875618928384970463236263745316234754487898816774567355578651370563714216897292256315337829836497972721030970264144511072608904110714918885814460482083840520119667825408115593715772087559536413076619613627663051407361068647588511458786630408879319151090007752379417065925219269347509370863008889394073204232569711578547994944889818109170671910613256164384113553299644434264224066965301901327098890957955982353910624574364217950910730755075365452423066207101319518179818676441051472619284879160335177310251736799123423547963233468961933997131225028384361451054878050378779862856031693111744171990773735616795330505880055461675410103377569573960022885738376184357839929788054806813126037924322827182894232346431333096652502863312572335128890060561062061912615301619119826265345429678553406020266696252478020978833464515764121849381689457083819744589917180901808808959862211073299810376273553446671042553891749000426777690979225159029310857441401669829742444362704732214004599369417195038365112404162635609959332386064383082249796041310486086544793636007012637887375791704083137361177307066535507215400306157112288318291495461081738001584308121220958402920419590488777018766849868392505093287261582188481763272889764651643946062371873043027569341710058900463578179747449173827526714067498520661019981957064569100364214674539295168161298739084542318122960329792588820595136512191106660315909187549891948346339045468029236667017565201365242563799619084886723751363197684660758518427668585796069777209798231304040133078859730252089291131377569995239902881894610940866462960128806287094907358854035412466557191384594124830749892126564698334690391997322316957172913921457109629328696241950477073968631690325424141461430158785185394204199044329980649106313231037360954322889939099400882896355472427318296384060945656512814267043988576974297770696862347579586234515400981288397831539844436051209052462941483076529056375747817468203917061534728337298642329745393485224596405445212779133949831992815160991449246925359541616129421743624729681094130284113798098548110216622495944833613007205325482101605732219004947650762457067489927364721681081951463933620669465944605756576239526882582840192517345829306828617028550546514696972670492327204647580670531934164441209547055186009424800178090265294081667542094485398700055448312649558002363086430095734120514165924623272224251913299002611679492346510773980534123056323847818115130370308663517884711138161975260211319828845555275709978791842230668813865931405936770500264300070529821793178558363921980485325754965689799485535525249626509286484918126824803393890086961566648667455390997246014907388083780495599842027260857193853660585039977965675220763570370226116153067702140237656137647015091234271413988494329788336668315521976941550961076284037716310137937004644376194760369144836605734627584129233146540312410405125903793760550994613215903254522252834039444969462610520803030423184064418070778958415924993001777538157581611336922611042540605127932992431454706985012997688324924761876797598849850323244561511993274073606398522130722051109060874531208099908930651498149041561119352309938431612949226767587859889602008396053530155917413039265762947919512116552810908521793423301857560505963749962777207304382224239258347051565750882129887911095276410328972679383750332607877312559735613014776499398455150817288852328120065338755640903285953963337027235947073341682606010211463844331886836821417114414773311148130553361272889522134859300389290861848158349230218213398370432430798304174562996739940914215626326274635263035583304639843215536380630495790149278053047885220740922931732413099202611218532167532168172278956865568309383677406944329463481392509136611283366731378963009680049574709458848598881586492349074000697133425471462607272942064933040787014093035128515456909469757436030193548094636267444880681668792630606741147720092774671293091819745270128639692891051024008503984137913418916045698960822184335347413722252367481524970956215092725405984691385335801912888077468700866978962998157046070403609055702277601835335503925527901629455156089571644537052811125508987083988500504489820730064455891890182432230905286492468295208005984625960179226252146551039834747427408483870631168528759409436482977474775066443061073508916707650523030835126158497337077022717796367792122627408936887428933468912949851737676389442769076767622590892354577594372818844944029785145257502370156081099372127632457998261395779331413077696736419534396594673059067654922979585771080153144438924777460907791746236699926773247263918024665341027559526435506888479077449373094394805327107565862114142440537939925885498143906806173055077983793537313113823067345655560201552095740391535907842636950704442942351337199972881180264588300341861117238499150320394666400492331699569822768137659575682279827551587617291058029416147351525051407783115780523583032679776473447215764850074230759496224400321104993087723393399359246360687222445885232173953425714281157268366773050036597351805274168409524654466302648117927731703735756446675624962309359718805562515623696344360655156292490337153310407541848811895393893869765468581843912127986398040773706470629582453493132626170148454005923321602726542203781309807173161941723295194264995861688794845961796995429767540055490954942070736202956343294692642395538019453844423165887958872200696139917054856999027555523154545955676481023784062295048692892290955737002054823017674048883030883539124651583399570333390389845228568422872572103740939847202944375396305356671646527750389968821528697512580603077167365572836195264588773918659408876428127973569193346361402906170546059595241018757813510042343134900598775234010750858965438593336399890073897758901158535049251827808518001114845306861607486738321807013840477613431094884477773061914247249847914219028223444482178784231710596217545398740138358750764704305505551874135682905720460928908501355768471454020090821030763010519858241639791611737248825501340885510151752456689202603386896166354135990763143968497293350580457042391453287405027805475790942881002285567914612233851441226093486356123057305579910145066920443438965352489609577820483576961313372235885357390051275274317240735764203062536019415271472688678222720738267198524806809660972996552257993798289195558288763740127635836428806090025365014370213513538446107769654143351953748059028926926358329455499222361372490635181237971990117990711665801068168650712867796017066892760447792325125576534573656753657211075775814177265107199920785921146752419281992624699555500586877123813137205803907784790290480401247161414160226567859516327672120784908336616534185987078273090307356450323829511871198296843407253779977895153343754271940215285819737371270858048544204691226379696829435248290311806719467324710616689060062341661082064881623538017299284463387602370268805141805570447361330662224097239103033182417990468665474731771441423812738631268723473683271402667096910036263045137502611926321016440594559818441193864572980436578633222635887760152050211761903686669617063552103656071177641880589536450312694026305953489183423239233069937195556523189291882936371410011132262159378396555299234453714085534531531303806647011343221879018071797576926072946323791117111155553579204490076052206027350701818127808320501521636147272996085378080034229971871061330566687431078242283535976486020587460405564623112514767242780334784965553520485288873721173888619934375702940868392137204221918356610540465305602017507110856675452572763636743980512070046677401127847847746928055964121370635483582126279462744280143686962547902830394442364991480198108350010272519778667856321712390005173577188287905659842515298809488771561807667710025507065504223663330138961402561497848571923446230654150889086707309820632710329054643840840676576902977887992892016838329177819905925101948147987110064965391294516953667216141239266311749978584666248679897355638589221836635817551318272941118908625694171601506017501357120513733114701959611263492314090503866583385760830458932295968211112942739870936926258213024630449711213340592753384808274921024192435106411165457907653330054684160005209514376991941636249504294571799469160079977848954832031327584534036465237823487493181764287409091140616355847645006641686909976857826485939448108517348139935785861065495334468274901473614917206794448584158231989997820889800938672978602569423278227687011204043885799108066049951335402455958067413952949037150797949119529870834515990291678627853904440745395429189764322176143971809258055107816660288290686750117289675675887995420210659522103377909517938656825277042802146245494183602181076514267642412271091369156748545081524593089413597962566923998146648106701952850249526760162786692268736594049656612852908950742688237062798533465442806896435177249810331263297734625953969986775821888299002405077605877191295351652781555178973299037888815133981207411180307191504787827403318170343404727746617505354996773548410200156134911218270005128590876617370484755457637380894093894155235388164422530424342975291788251493470802359486567463053526634387705707250749101239057539485845814523574469238651267767055381509626372082878972154728851862190038966683014874625392436797166955198550952422628905646694173075629945594323283925729349810449440828831351262935211446899177201060400912776775650863812235495334801704989668219314957195376978892074652447820112778159521518509482998369285639724569550942572157746815582440554403155978560283602355001151936582705642556890569609468483056642555345650419008462408979768209333155551160769122577414431765956672065265560959188216464244669749202257694288426661300023539701461634692027139781720530161708700690485501924750806120969544891531030987962683164550504940511607979835331046954792603756628117018341080937829952701624644760590996695496646858204410966147209892378775347413117750408626884974190150174438365235002422022866204180041920782629415166776424232064548936445128416234451918931495994325215006547047311919992139009703338807738771001733700211668353507043472267954679543897218509739598285829127933072036687033657551721319030613965150554546417508960254187184713272963465723957618279351826171533768903569368078298874205477079879857446455166577568714170354843688639624451951717394819914467137168220101674036151818912427442112070039667662248094111674194465005093334038435749087224574040858766742624078091669886532377125096132341031394613711396373728744116178278614715470253529023080871393414186888545321167469229241007630177740840750761484538316030199900679431707136749763543236712416809776242911290035837193746077199806239258216312052656960413154333854804207637962846996564350081479318653792626486877067511232520930985699767476959026704549544411483132248262464734663033998532397890621454827152848340332937399357394485707241246230766891663614983833339059205255133695275711802646532969869902332802447627945792525827029331560741807438632946310536448894659971392114366012162587561888194478796334195048790531492622992296680010844673883465248201824185834522000060002751804778612525409002205180638194970543407891528627528894372159953401891349565889749783111026104240189426221524260764765078001359134686008966862443175370147776149730420444101917873914403710498527066862917297022011208349307553322804720426900063019137246479099253685304154115487363527869807799531858636253548656796978675433244240139881166970703177257634075027279823065801026193903067351073315682426694243584166871547258834144099421367734761736616322139718206438978365961263066800258594451552844216221038347870671566080424897480029623926421043395342249064356267970293900441802025178179364867832316577403940667444784443791588007684991939138137337739979596183506926364637742936532478334831210248248400028000607247339965233211367107300373718894676468734054044648397085301400390019194050373523434326535903530250172698740864109317595749411293763703296825363676661988443033078440905255369257306665770543457645246111305285135549047959630785499090109323817469639764703980478137865404166433474889114828082012650053580233110544850274127916680358962291490411508095985177493174913092861650882619536811160550492441762106662030654287534953242806169139663708995820874163488939589730207535423981330683158862620303995244004901890206087879812447225700929871336021098249475183619614743101012545605671647465358439827151646110079778378703242573898951927633123545522149062559858087428969107623708014394185991634711788582817396898336969912941532963448853578469858610173306224993857095125908028793091323023107902998963129589539435347042707752975294072872198058139668510120776845203482182800347343155088863300259965802825414136112914414730282651703177666503250326248141806198440689612343208103832570684156735514549681585712163584425665743563218550296439124785816592222616817554811418672757613526094321359454835213267218815946268470079461657865028017785308338511206975021153513212770455169361099746167135654256137144248934139253567446405357212776916629213450415213568351707833587310300513921141841579989831460232320985517265639159321103272423985618887370269555846772109157593923841405442049598310264411192331759213723441652052305673775429177777781156623965460528826814763221978106923131093286996142031323448121868508070115886156925314574833597257350039939175630484362019452371124386149703457683172240896025167638565417532846954986662292331161221370910979369844297035547325011873766191411766693997429413139797471420596727069791051010191251452172387546291167791930939223719217147185426589531984353660044601950448434219237323178975898695566406107876655114519443884890765616792136524827824931613989587489828637009814156921574301140129286312195154963909300186672194551323106810705899525569822237743167359559273702171777645047521629401263772225372736817415281283320507132404475321518623593598801003835240128892137897416044600622211704995719788490315336334312286816028508503478430583464570494361581669343275947044111004194355867630754832100746465276272548090919563211574783719478543590445547922086107996146446559760332198323970682475325175761748575561324463512627376112365639500749887275554847533903215899721635580473712432954204340102732094988047229082721418079030830885955693547188459707842956760784462689084860100507994099921981604382852679576369629947580928146358902757554969084769703551732142040132371759204306082052380462858997887361104175805287165435155283259475710649483405662095773490867938745841398696258132154281073923330483754823423953337730608281427795190516454956034507134070744970642140676440691753714725960268801623461412754541850623876036432787453660923479427254713671892075776975560478489267015826099560228666579908545077451008645202378433187781292061869827572579606785486102575636356424156127508216405078106188355459280698456356819982317768065540249560276047678937500709117954610731215927868912117401526312978085412761026973259119933237200524800932185590865605098929405243855903576083574359284502538427596121064711945004195836121233362244762312673531879710316631030364916938865065120831967887141390925960398162590746382391975369770606842714021269141224399513846074271053973853562916370314857858689278209743942810685863138985724287968803648031824829041888060629375733394113402409472463614546587209910531133249375038563405753014886617814991832563557726312227229865861639206031582033491640067147172707626947533760579593003957565015268390701742299079961092507303029778015389201837036222918761600318918660137662290522329834125082462458919701702441747911136616511558053063025485513270372976311287755160765287467109684007917996170464161713772136324365931393313898201885831676468328297284777861347606117635677181046969503483015940049629034360339066350196958131609544289122215195767468505446619818748085237038219818285062568831935707923364382534000704844569575613072660957246858042781098830037026532784129133633886155394730927591012652201349986671118869483657456152020712511223046439756949268652924260148848731027665661460747101424038857175122958582278049019074427010896364874589043180460824310022180487638935796034753061672682138300353078719699697332689169604299763899345239819429560422388859897142991428665217364164302440845102827768849269440505806465021256528801652732159472997072044261535339365817788973422610212926838243110959970340261256313541998788939504851312775433754125615876057241428367690522714923613512866327035372333459239696715130754647177609353809744270395500725033983549637911368631600138010600674835549059827459212520142961644514904803879133136792009287884280528695693862975006777182668741122893300964351305352911031228881314301696236788152706502739481012073724287720826033985538010850600005282322701944870205195333557422087024248676404898608158026679428339878947027566835353649720387151653366754515630468807721723613694854289260061608979431164287678138221535429112490091414360467010670477417420494145069032400094846197762829207405964348179513805351700433169800918277403646823940640381703050397976740879581017450520841843664362301688122516398586575200760029041877926715126358570729676260360189552502146026411477164091850501117502659359394028180724204622609065593637141131203576130395810561093304662202359888846708898369325547989935433419819066583433996804440211186169572980256672208039636039874640165969623258499766269107563199753341494319938444630146362431792908048730505003728735238281522037404371004248554034152693710543611723879513077921633769983688476415842369717924406393634428476528962888148313214309104206797009327198726634766214144910994782297704182459315893139591687534962715436992566544991915143932636866465054779051269486711802073518903471275944279962483146111548503724173611938975028575008344899406967490885344536671556844100224021264800441758299002745074480726969680014692808294925218306099664019220658432927158047244133906209974565283142093061389505555298445113704290136334830480095863315046351196637193178644730894968684854733809231602096662035987484346798706184755822046666482837153628499094196989397404810467081749897194220994652176087806109241689378515896860895514874445332508481454662378240804938771417359534330777003545828752820078689216361968634155849249416674372803765513383093941221465843222922902355402591975575662700105656349578037851962843823153746242227645123946023658806607848989280847165319668002448341930765196333405113321633729249170187835961397621738246589624018212359322270253605984468473143933437280658630162139345191329685358718869426992179453725175761910923677631806722738219121383913914511033470012272228256567588933610301465410061336841346345082312472050659709614825092304783772602469482483714002067165873638210407543145538412351018359877050253978819183558352801615888976230167145849968062419086959738638455770616817470271181491597778195832415322087335078685622798477734937662962336551282428614517413585253424664887244281029386521330696880557022212012276971257518655054751011475390569458167910932552639050027486615015705983866040368357836608394967881687914963028809038593556215568796640336069344602328817097288959057298707370317578838261883335944945763372532584539123176948516338655370226769187592589141032057123859533249216259697474844742926694745718801564035343397007307626630166852713238103724307089998894470497722781700186772637878138069835760706735487839692123957709572728928614904561460080235266863127780507391875839663911267528813143969143821768949128001199859392013944805377087536871411363719367019493440281700428265469890632850793855079485366626239137935263475744434884074386415350530794499374027502875340839990847391045917386948481315487928817000823692660091751552643194437728671015745910784972053780980343458272517766786838035984237228489715085982238217280011223853391143645365864533694408473361606730276788972326652577857169899682431432989219594663297248531419283681699007044609841580620771166689677682245119054719620117009155537190873058642126072490005128983775586691510448956410956695375836582224239652631431969433557385573371243118130537987447864717878213010430419614648518340096672654097441338821789890447629264793989916367528685938295197084072697025926233656577262927976740474213069257657835820923284707702348682434591109429357819183866615511351995141253389748928409185168563073379847387590233039414055470863821553569780852281752611931850889969260945705853520726668967288054889932997322883608764420093002064713182605913662757631007175760662522989530761555402177864708172413191928754755198401664771516635658762138997767586917805732551887895480965551026941135107780313341445909284888106182990012103531465170649327209936921042023920894538558287346769186886893310894686965666352282172226250301639910635602652039154022882837332933800708585326288430442380107312311060992124375388333051954972156428759231392370030176540657309556182928167376412220081453681325321737299494753755870513484036783269119832753143743115737718020701711007540948708031960491195925777611983708373919033867069095533358019498386523998860054387818655390123227335505977687955381308410059523351779579598210954889387872367262657774263227387917115537187382617808484961166424302534211275376221302185119009380421130042912773009784193020928879622505671192192825244784331909719248245073883456781361003233093312604125639468203389212631062770529529696506116823653981596184428844022021174248228931561798774185408019823706833491809902616675706514152819804482986164451296839197119022629386647081938222772723937771002481070030300651803853028292179919447797403305403878496913468101831792514248463138499712937856871556593108185592323594001195613414091300280646191381998096422346717742960217639049385361855624731826374049137235094831139720011125803895344667450713656033375202714321769518410739926072692036864407898241989837822270647499544400801684739466106357945314843640437611350116055250128820034135991912755425643921270177975190635013289988598130712824912637592417179537490939364832243051980888978139147933189064402807521753899838015894115397983149591150505687578580486711711190983978917426318296303808132461449441872672754402198896433011757933043620431342658487041729733547487124241236643314435336548418008130438914052438446292274869394199510103883000378639472266060777436400747001866737703068840955577297328750125250722983890609222700205411659111589872265303177798294332731530621882126394311758181328188000122115263953035454554128046450698874425836213494343288664463446640211723511955185969575047877440638796120632218748225422753867555949375382553030603081878537765801052899545610407604813811921475546604957028650061474911694592169998057388033611986313783896582504567640940595388862037375551359510660706143201431378160059310281878276735735960983349884310240225303065507895798577697883455901152451045717358206469550921820850354685630007484178838736164465253092084228995924797947005231402636084075432829222858613499602115812688584085601619437849023642973738295043663405044535882413139539596949822508202411798785722037480221480760876364601660218386523924512746602751959111297046520288775597335319875595110239059495382479953497000442537507329588770672927393121107445593603209174905201308112666533017045466069237602697640353589181124069030470414314905627970320238833151133561367813456347492589697677467376368908513374797934187066624507140003316690164351062888112183850935244145872618925600964610691812909911469133710660779528934324203066122756458224876870560734901894787798317020014397853954835083464148322295682969579714073325403728421510627433025979118166985630453391869605492924070096442562010119674038662645106689729831359452125992314884987965841197452288973024140479224107542721525910166716551840173817609102261779072119336346897033148950316117205816022598575857458788460945080557789271970075916247023866312163438041034065503549658982332864793023288607062340370417036768152917961297831391542380727848781640564432701684827609682292739211130048031330374309635718375184370072053810031843275653289250897040460490616743686967303586050645691992207904912070634671407555580552438830585981039469151694623067892629801017540409959350544974872018760665159677547811626306862323701651245885976352799204696711808814307541266273036441757183623354064964211427197735352353932211794456622738505071948798132259562189997837940438739188199742341605365006211942019579890580876001482192287098009300591873518816507477178201794888185373313153308292230716196016441027550720075803567174165566380774581515539752639119314529430407409130559309347220469846933880840707734422357643310353248412882328684775022424528008316715355691070071440121058429778569486923076316383663322900383961703501080408632642882093323331115074476226722973612070640584767305697162227792116201819880969128225642427312081320773118433313912965539445334102863628989933021435888110586469977823800484931852840097317163423566624233734792781995980591128093679483987856386725635292593278907783810921436918988447067652933377893330836583995147985894625758807201714289415148556179267058286502308558414460617674454663756520767884854529369687241451426931546565752180384030763307972733220655262260840999294597043193011948526628767615270802277462347432058687987893573948395403947888256202005703967022838536701290252965225147772754830617928085896690262155469706956172510284690154151194727621249139392960229139467281356415250746894237638039281483486565611788719439934637798884561948177194971346080120044548821605713475327620117631436794735496933621831013754450062988988547703892440311162939815685248246379595334634904500885437903713996634725835784712454959369797850633304961750055899793728553709771181458888471005953777871293197021373647467353268557889367709056239562296583716055438523968293385095931935611925706195665501903867315088792941009473544390373583196442697651944652450889462143467911360493199392062153880473697258211260219817978374065459918651138556046122676696458479354792093678558120608130028265264972294091806059377161237689790811772061675545569233900019960007550081444196424729392788042034279274142384560757084205785749565702503891302076323009787260583682044721595370203520041532513955849672850191868408813416001657852079586568498476010018980012633683569762272237596554132003360093421524582036748550266643712652739788897230073367663075770424684443703377433121256802300982634049684320151338590067504129137374469550294161649157775980198174599645908153066300059738133467067362445853213065440381969132857883050353440838728258079539346239014060259341603052338175219256345128207524645457073567739152127196654546271609191907840461768518964988271637304227822516730696087100537680060666687661359414545823859129096192688948727868780220270657506003917963076384281886215980971730313812262060456183969043459995217156599060319832438498336349831607351731041092606461737433116688169742905383338563811481671129222264533996793477223148206478104002657731731736520095736217402065040411728210916094928618895087858664673695805363758600995214678862979332426759977674209881625257778535930490397794748923652962737884123740409876916441301375846711712367357730814132935359950663539036849825109317461895662181370403100141994650873734663824351878709142806168946912019714571866275223329028738237453050520221717943051811084094575172004093160214185039354875457049575135726570810143117716379517255291229001286339132854859530927693845652465737189334840564943095595698267003815577946793698626500200987654586173261227350151793829749739025107709452725170457063987149463277140360901102677295247886818548076246417406642706244690566407147918099983930761715952412953143799354482715704712631485404062007108264126881683212698450310164437653339277304136037072147750083075576878860307826537885802108898070471989121627074479258853182455421273776063729006505730157602327267449193799845153439726121575604622365791628832368121122698326371682816377816017067840677158061386830452725446643232010705240629418103369555632112637739600907333972784856768558794793388005416193396771587683166212238094820917813392060364601451111707885310833400492452539033787705914083447748225666661313705663709409866362354144436403011166985847943957849264177473163899159267594283492016253415108697081863463479882871880710060367914363083368006872287167163145343795813791138519245912031075128226378933727416915072881326971175570047252053280271047413660820064939485440656029251928402118335122240291830500433672293615763126821049469266738386215836288562612344561333247190318360035411126064462222057373924826865088486283204122889939906741589319891198748394306940294875183101884020545292806092878641031904832638674809352200438886699979455422892667911046141960347465543765988479728341927299263216796654908138470387495707919558258657212871882052657359069980550121020568125245511074262041476530044794223391231192709449575622994025416324966467577558047422389608942809610917590769814249197248465926852797283606680624919517100005105485685560941848631013629700760089354125365233456320929592671597577070988342081669168111682961090629096420770697166033284708468370802987752740690417414727128608693241584381878572332242735631110856213503049799016016941359474817851647394491152438008436428601886510164894744109422426792991146162093411506441289562119734090124155669296381654470911768143729012929420983244701374330247151270980885832627570248703517920114984469976335663834599950364432160090929330484254004803027775495286890728822414646005245864536277854983352919093138949402784700274814399174682418579463933732392816332976044182346427339599077137902752971953554614012163440051104120212922070692084364401783309278506695279858101061050599237628308782876634943516590210136287040099307043624042338829683482220181030345087215298815233400839549815371195616324592777312414281223315553014371274903001999548069201061965943858992851833349993149612996472492201291248352432615951613916321049246220648735468366460146035014555956690753316128379935377247218687674715100449219853304666152169140629183763678468275918020117991405959133800450875578819786362814708551964477815261847374847156500744677547896180978177478094780008198633883326491359879427869260953399306215093713109638753679127880185891223931632385907786886204891761028511644763391257687862639365181793309285256680916076652995893424175221800499563633355588321528686408099560251187353832446677530215578378133730376933720506715072740707764046908494139448628847213393818459985155167924110210702810816947222096445503398574529158907342181578809192327174175768619506413935805032340183629366377735631306839023080715203078685314279346283977330671146941451340093083345078357873154472800290144991106693291067877005513408665704482961475162201720186021898281574819970075781508054979451036062760488875175134039176075316472268061752214906289234673530151934291068317320025085028641193665796399367739583812958815434714942765754817373179402201116149541742990861464127135838162976250199678802477976142948838167618118293040471679653291803036962604534079145944240531523918160185824429238297683853338621690676469340329612834696899735021668488169827673681421077344061735513652127346014099605538993369237978357801808889620310486875351345598136771301516383494057003366252936101998487738231412273643821422712410144393308390685192511593819146963809053873746648919163077473585255484160213044376075708468078704786815758813380062145100248206232340109383477809757645328291589721106495868532670752921165750122897690880266042708326537884871825535303726437667085791442611616505897594408868902075659504092430437705504896104231087995105487166526876844011824365545567923789709076445545231657437584597024838389723284719026847697959130890213628727080456532559848428759947685504422017594935034004964045371667387551987726690577857707163649389686580318080236313526601652534058191279017421579433575265203726776824010682877169083886437925292571106622193257673705287002370638952796916603214700194475056710680030135019360702246233167052424609296580112835182888506689154497915226958800143106912521761197299561494084984822394504243941913112007939645268662946684313786831595927038986639272610563777446561958188933328613507165444313060407051647062510584811160615444298874133524295930703487976660405437250000817671696080048174783770583742944185905925957603658928197512473171392332143019707708963603823587410564033903139842655596684615894068877161583947033447523538047708087645261277227089002611067988815984247087281551486890816804315491545099730603308843101237065316782970430187316023902309557105279466423746838073704373773759884194998306523213235023983859531982619223253039945415888287030046908961636843408481954068751989908548478096459276767401768460666447969123377693466706833929284664781060648738125845486646555044594199419661313409707014789787315560305907536034210023481477526676326309502651410477795555120970172079469096938316732396195832438603242750959478225415198808002192401905437749065462639220063405779900649124579664405702586856283524607439789855630683283814790853729340387654348568760706819227586709960982692353862489977119889436333674957934736933376115562803347651606527735099691556747048850294973373473125687933076697726709512316451026533698918481898463107707335761638387986809742932471060929942662071632087437019547992351680290695582616481652110702416483996555617477227413286131463246370499485917087326142981816699526961026128427550093825869579256025794709441782011062803551810060703929397795156824691987225579684447815435136659202586381237367605513274624033171538118068249307406308269789585772679067937642539922730818910063883606903066314666436043225819870224818714819955248104909768820617614236103291416346938089523395835435795247277694813812629757121714741653003768329496026822613615698551692687359895944314681789973404641488932036685892107301460733790971631260292698627418296980137012206633648286840638170047956348846132471865403804563261320441103741810931041852876137670197758915417001975508790516886856652902969518082750550400560950538266557769780968144267436913873439003227671021866425034878558852141602313377034582927417917339066414151193119291992010171784063784614423373363850414845787760784417673459624636268101739292987569259091572598251753200122469958883194386472804969802906454171681798188592217590522709038334827247256973612514297122501811557223615072541754143057808504415288441253088906507108525636258514164858862772020783964534029645851688810220902808261883023323477818804988092941393741685092705402690708559807848801610790657921389820054869021249087287206529505972577090414253003824772526148589587162758469715432959706649467893074945027158952811147877293579540216184235366892619376485085189388473948769638540712042337587354205993186413782321779947356648426709603825465746618720284944628176569979746494732116807577505346573500857116646731450146430263482842134371392469848870886944484195421754756023209743901134066908477281575379852157090284920608059854967468735566097500146326125421044174259557989020959615964670872153092022770650883630172214629576681911035752300620377673103528262827975366735075252128977932894123569501936369555362928266854387202753140984466603093161872889895888358149745582476836655689099021707070794801677702256302098874001258355450744480890980903211686261949663734995599468218514411502641766219725741093723103162133784604015746424170169079714247142258722505743683777644104153632219900033975137050021998355381686838908100023579571121546268077889045895517496872470423721591214514253079879752509326201905766483849702663205529801161766646746375824954932210066427658797382885679800033434586202127790752459338604326759738150191268518269237142180950411544380943190218887400868507721356482592221447021455724764561275495150530315421374350711737014977084438603076657425859298582682236562227830502943868246667601585398762448169346172488762343916100585246653078705050529067727789226560480395980748515280628567837858774519268287339485262752303176402260194830541740145522837652721495178611265451231072513468287635183407372486015770164881910358835659322996599410593278236462954601668458983008104390169540688516567908857141932737605787116778154164621026785399911537882481588606190106878988188311704648651882421204665891814961649816685890196529894841671758945003991950056588517605323508257970223867352156853936634113561190828370452339701407619298581798154542037108484237543448288977438481857827518273575129289085614866246685936223947645081167524577910432138087191118499121507046259778904005454600847543577025126762572341212485092999483606169848101962712272288330469203738703347754828555342940725155891771525208468444146634288504871510647788105553109710412202618419017932654120264327847867209589159968657265095026378883532506645642241317237981601991819753081238802833448752814832383047272973222063922043775869242483831042215345548643250872072143816006760583761408772736337563946654118708521993525418288089130403212769650062289567512917346562261567059562585539890478889417130429314749642036420608830661003633835857739782729584207731061525804135148386054810598014807512378004668033944185770055229380127570869838706729944334464373465509041251149379418995997617854803929444526988565348743123415387914475092292466112766434726864137690000560327542191677068238898104907884792108550064606811509324229025485469606694082316084645739498407908553182010463552741051759250508533615756137890568661249408694289304066080260164976782257007556884087770623715952971555298287742184149939302405669036183233390422140398187685605601907785006935668450425351186289603649332268044152287970429516366985599881364194141836350503305159496591383253441667668239067217269403056219625833508582477954370156586721213690506528128090613735778559893991085834389059483588233567841618302017211415728664419172123335366069268148747204335425197726166732024939910842513019094025066579954808255639435505358107706032171281357384483688793331305725136793074581212513198460123473654860303354289702515500876259219696457693558291450538029303143719573054051826929024137223589693686065770908317538469707699937806941998770643019998133277510671492103713164668817474579677327041124472969079938251948818933613259496207707557133510371804961399660461391812569810159145445448610658760636379060693668511417043227371454445995167075812337987128248229032334787686760430629536036895182578747217021287746132524951257171635649307678826346593426776816375316793407084798938217495417339665390102755072350401215085797816932335790883353274246601100778211956968872146931215201281928470443695972513440898287075466200615863181748403865657101459723124241081052257465109845448213979306529565733212879541152035613596713151410649848527835818592357930970472662831298559620640995939702595265890967171727531375025336638399334356439251923765980043166724827976229319470158785829738400875337847412152764418107612581209254877669830054677300548093932621995994761074980586363365226444685974798376092016942072062715211565895533733948912092614134226902583581760639253080008258176497553386378120863162247128303001679445182182055988948586576352034253344858929365326395492301834144438460488846348770818367735545613404927979492410222593288269787267491607516314878139995620618898973328761825132880541262535596412672753697956084685981908971554680556900807531000944737165751552499112885947363573953365417935855933146306325783074488369203552010555315017953555669170303264690488445230378831681049034270636637307071755229928534366516460748607971742589979086686239051421183761206253134321562299790065871157575691959660613947352802202288257302502804892622319089886627009911248221524373123595193274093931188715194066172543582644714119141294767637308730774828226880822706712138509973965345612858594318754417881415992644287600639736201689585479992434703537829171990049402387987406682269977106384622199913855200660856588775036216068442982640350184019923318727383028473789190288592174416286872900778257742780483711211398472414547662636194634244005169652580144902131120285397139705799149516242782443664949473220742715195067832522920449000007972946831121376557212891168798024849901928211761592054116883912827172558608871822741783623635057294761355746550225906559985780471583109510498202009070722968804150760196500869549398367927871961017737463694839501988044128905496509492659835631058781477984501455293501993127346757135133246754760352503904841516830541805589442557607336744732845575224410272953255593632841372544078589776244424272398731127673554930223539575686928020127905714215013983813651869568838465261820003286642748866310719265118672325370938762030527785266079168128176942332806543385363083258811736718462135551454840335827865675477780274359155525979184736082515629612047172131707056376998545168281365357059138252510314641765965615207616017814988407332736809587148238874324641008811004264451270174472638303927653501452811567989339494258906905049718436143213888719544648026449864198614321871015787913671603243387128940904532206715671079107208314294636800702266918573288683725688650098950823963358303784301719896090337586443444054531583577267063241916539082484930054394955805804325646749379546910471085617216123722108187314282434095750902910493854195010146454397025420246587809835080609085580623410209456249153731663388055677792885671814504715085554603147849951465569610396494895953029277188179688836050976595163553002082163478117674697587316475295996632400690994728808531951393838072942190982482339684628922730305686938404031404705538192603942838683342466089642949934101094120237969356108135803091252656117667437206339587734730671562716133209151131114113223592253152600356125595035072343915304387501512309240461207463202193329889685720892273954716992693166112787149510690871126972919238659001341307046965555597546372814414965219487238464363164110741716603597677353631957343758102469502718896272879113369114340562613892890291009133966305848502510443953838165294071334720141997163164684515297929426317756260637523688843268210128674173288472653808677808878439231561896972882106091389369404833724172193233983568395775015197857802232379222734735585422400147109637406964236381049374126505226474662222964102242818761434173724350707961649469448405988595457584384587949198295420451304696931405633533779606078847245043619227922519271441433695920539934914290738077939696035666613447967650412887459199503757485163324585046810316758708739780887161630682258328286541698798896602903967148596038528243669849671184870329629201060899871291983243221942876708176517080658964634130984141528738607621098939625129122359545944361469686888215840768297327498249472909054710236424507600927180646822666473551185865620314916449925484868425512840397737468928661341103594823525416400699595522260756360845541415526270996660739235199792391956023729631125879759512862541653771249087015645642875279347361446551855775697290921989592622642793759958997903551275292438412525070545562200625067919596536193129736920403946688041416643849305183319663279205715957324163171014094035745048620289205827517210405494779750774329739007128115835547461973573598778521114545473109221211459160665826913741890177417656631158714048672909625511262311943816872437809551312850636792944858772527464062831036169340570430045411622306083206519680871221291940434677218895355158871680126596498560901911299598580415080876650196238600721141574471755736244351370856211029277993164522077098541299063322934630007216452732542493756661840025886975641305555194875224596806322759503513009320736384711502859401681234640897269890409174353563892504914234026895897949688001277662071872678463434714605299568890610942876322213017809389244329339893732721896820453585442706182715980787424809938338518849388918762351383100690941829194736005445911245832237632644423823737315002464344623547100988882304197763974639844619822533552473186153898477514899605995250664361542063916320845953439939247175978424240257412062882678604228302996239194532677390746905866334020131884133048497200221770196742170466950216221197956103781188081685272829213292101066852806471617286850858655602036143415883582097709498601842933694220936429511413489375156629818225530162269245086731711313030960923397010632636486800152306500878214975554912046744049302594424934791501990945212405917183788814092284398141752979783578450841259002139968322079022131239013356490710293487322061622273254588157763671451533930576499616398523115481544795992316401872185796050297380127370009322143923506342934270865276650573045372557988389340421249064328766574698012853233226665183303463574403709928755041416875963494364009539686121376432840580758375996031447685483181933439955503908525168987213941793442316966789298915155721127378326444647926784506316019140656113645308868284053891501223382096025340686367858131874143066708527347386668086302199590499450037723335824419913042615071286449284847981272713624163730526760872385760818585891753223187580864042181133367697529399471150424004419991132346702317851213244961724133606016306129626061401537705390570892864257221758787111433612181819517217892061891949465812884353204746327541844722788622081836425477634012996142139650721820675256118512251451669039696802889678704443962228744494386218953777071749725447649038561650331044349669733703712080736189493899459486192422826404304709576787961692230791969713889332426974826102681670300166116509618499478076332852550022125303904227475454860034771061478544156532950895812044303242315757646222864577284578213433414480901312173438724381797040587099667403678329256980943850213826889597547445096577664274681016556453084657893170000688161358612932182682654608267507187600830814329261066651876331451835147243790283699609544202248830595784219943536866252178030800941719057886565653119558865980751379618505469562685237102064602190113580881900011705571101083113710659007493667640873433744528948833241562623152287496254418166092717897713187465919696174410597779290713133798583927037617720039505852128099647534989631671055255429793853568949546731344812489390631848600252056605009914366292434953275630162856855464002168536170661651729861021108969564618444148473020323524436240663736548216133991586715279068723288903211175815689904408423318307389684034162133962897919837519958857586830599852964601305079938968648450990415155233732974165670284418894783870218857777332956849419100913002352954006913438601766602845824936780133332099684077050958813750719101041962776535783417719433863820767648751081665816982624958540898557608036261571715336379054205357765666260747884273963098983393852871383915060710412766922069576393785492365660329786345452341123974031141850637668382457496194650938603820985436637455774613401580948660540145785788568123240312599515393846436523526829073628683873563403904865183757230399360457482373376002952904685836051355956742325911798834631580459318177273856376036170618063984092226660707054855005895369882685703175374576689591892733290020742616093171167898865953770750540007065058666210830549247700131959246062320111957269392537734178209660210576806408878824718255655051135734663388816146327026460527884089954936526721320787423138456393554033080077971619891495435130852376816627829693366643014536042009297386545592349143722511892792302490851114139651754737779519377219788304258781201071260718691220106122394514716314416667643939355813702597627413780702658231065778567069263286106747270297707498622635473428954955657022182440858789664450236374585211395285115557953845855876560486028174257873425402818344389406029931772237260737108131976998789744458683961123340367909129138320711710865977313445831458035587384334221770516847595223743541749050262145882596734811302428113236375498859076241305650188080872718242466763857500320085255810207763976581892915773219940342816950033324027309737276859726602711426237905818847978057317591754572963629553121847123673565531940266189962972002244538882346499292621055435101511164608005744756114821898950112341640452068495715534288558844986741315011482141586313534761818805982005575606937465423469786812054173334318041133359247888677288468893399650113558282784038724733411847010706746796757644337299414588181578535412635405955470295921242382239686430159417059197490150740106166902335530690286568673098227721699996174876008031673798046601939409569933057117876375734008383134786076389202005888359993556931441620043748327781478854265470023615058524828086924912138406598274013469290850420776490245519502643666051689394418785428519451255946242856130940048251555220311246870970467151452493180412401814825799511910354267688003756276943139262479010865380439187385866683720300629690970892989724582809497847738016318079153645305495547926197794465381409767116314410336557476121784992733156505976560140970953647383050804741865447657415145672861650520053829616466451655669614138739146418799901985656055152739395136319551063661772277059999811388007641645263988980717478815947984669211741656430099175819797064429459427150232238917723575042526702792608295851339103806265354240277619835493310275451235816058602590918854727338588016212849445265596379364618516247564746538037637448247120877291314727763025917753004718702530797563720695768892376109414133200013295943698541596462210141216771197728542258298008635967879598290829607808804982383891994360984483425999087521911989706467052164896790363867476007573535345866052850224599565873037069034041733754970934802166061086905221741023883103279877412353297631317923835894391674703575621893145104951628415156226667003464074751210628859223315568274094676967951438404974012150191244040381821016616194173603636358066554644036006480255690617157857105421591159186819415402720896625785514571827311324334585161216416860320433955645758203900594196071816326724479990167685808529884525271593682561590271942621485341639443918454351673161439650990014931038393790296796658909040199483679147127579234633749895093257081457779915726635753499615808989608085476751301236192317884272569678232250895897602390978223048655304514989929728621939781849108511682343213779003296588166566719175382748970219133015748292046707704543846295569161119160908034314441868060299344051732986878418487526834253962453471857768732496015578542221470841456606301062658554141232592469113184783781072894996552785660121610815122406553348990806461758289989276110089049519453500305462026578581535595151865105704349013944067554441904276573990319436500712928085166466470631767851917036922439985221179901506160837157008926069600772339826112419317323676091617218141245640573380010693071505186920576843794985790419211503962131304253826744059497134952768434507769858271604886677829846316856275040206955718961495431559055993296529268545564352395897321241664738324643297004782896753461085258744553312299403031217376404327711473320393874227660854273692815491969900025702074477566438085849288723728954732958080233844519283636756668387875215857723675398141588616473805809748570768727803554305125020011204737260600232927757829501426203098522606377823272111720848660806372655641065719188905014821490567721824427537146484200808082487304458010555486419600678441592271241247598922634573708488775476558256995062347603481237501965577342290599876952670602319609280342975739712311290912359013656986528999717101256252219763730180409925432496769590190360741135744539120545704113261234484045575423515821294855116387429394677824658633622915631545712935878942262272394820562618948033953364826619081786889912367991723734580677366380614480054509795493759603359495922146295318816483834711397067788484695870202175675605386425611270754607807623660597345337974532617328834318061343921054271300712631664171053924809064321102414153867164103894199079092322232914134413882254649980002221078335559208219519366206539617272810273463017589056577247382354186870430718537757414228396396783851800233012565867166678760828222747119085922634365431901153586117449167769993608336527233708332892907619675826852260155785513929602502741797445544565066721731671028159541924406188065952657307326583037230491828259744837815998235642116407741237188135988010209737246046704161809927673725658121956112853678654888572093441218099658084292648618202978755819943896377706571938618576733406285039121556426377391368276666350294813122838567861881602016277778443259222988942797849220649969828156023331626804951413970007185369874097118199510214831456193102361271327054168918560576665730073552458245601607892104954467608392507508889642622182112880666438010547666197126084479361278823907631086837870413311102984890969222775756992502203093388832768566005749992830694637322727452124542114416844155071214066081933654820146958072081357888558039005130622045986910618279174701374793226226500864377810058446685682654916269211925578136126071854108506135589525387184213029957911370136730323822504557758713547915802628255297918810068700202684430683947181309835942144924583091041128881144351884602865770483193788713153045718020164993862240223629218891377014021298177627212686345460081722939579100405402965037290643761414953664200650139125997053069378661842949811020085117320897226727947944276741827849987488790779172155398120344128115223884778650395228480137850851684240849905279752308182066113513628375308620331403257153877216617346746524044281680155077221127272688712366516237208962611497327898238568602349147590073600299030881446648342887085666894458320857126374024376929634317034413912414749978239761142832780644343522344188386567952787666118638771897370843997642677964072184913381314698987409324192479133104907149215434520697330094258955320232202757472235229303148986561331590668524729255162185338886391591144253342813214203030195882113773071825226760971495420583252308267349310315105283060660966750349323704498592159595430648023420728067479653521509814278241186335200543492547383077644554226994765057002609528359784412133309427062389461443258185763117561602250547434767525357056302404646842893746263605750310206159013877940911968906435037634447166738327767705471455755666108741180450730438417447690018009076604389924437317059460221806836995624646606848394805958964315573991127635599240983842579263423511279542212537413228955775563409516194748603322038888791343834854056161842264360281660360872251530988998979868962235508064395000539162541907894178204975488137853106727434005454604611170865781529279849172620088683416845318079291260690280390202030833021197518601208278242453400014327992523628083613658750764640175258955569822109505053383047410401065379498799850533726438703753987124626962016467188777978372438485350181853148347392617513774423245939104878340789830164128576457241552809606294164568496794456248245896363496326179328789081706099224701745455337379846988745682251744956858332558760324879931635908396948259490104901739254786418268843249699447467869426467722126518285251457807263336783458580090828956298602451130796873819591632686854076793974206870661984838498254761659278183321118973874795706605968864748318465221558131081720475721857428934168077970232723374773272522208686077195419917218350261863102178392667345291811261164058220725439853338137437889211710711643274545896549274195629800680058825314065662071039197717736703660772819272894816267877871427158067140427559435481538979203210773094975011058543695181727059588085963655557846588116263328817527607875844662268465065364450431446138193985324854728510947255629413653111160365708128030928671041242542144419228629192423578045197920497685615149052930361444372936727966440516868081393582097515726304987062943406796047037823258648781455643278554117633018010282009026973004364611108048663870069208869555865125577553698915487319920738446257276889172496991110117026357812737870123689942024455258041437158962239710255923107499203626083525138012443762017731158757272971420977937995870284300288827978563023786051853589568518565914472898265718742920605951481026718132344494060899176997217112640698095291281297264365120713639065643527197475915524960066985569112867793124799920807633127161865156590093918718671980622524993095191738612035387936993114435870272813905874168814882589716410817043883089461598972600473239174365109869443281663863213788124561325707555453440101265743372988736174727677998747142762578409150982591915739230647327278931318699801969312293185482538472082228180740971177007695812646354389611931031405296355308887434809935831323672597490024947383150774203210986813784868612920038673243005121368738866664355880921392203091212418990561205598679589197117542359242935291579201219646059877008640013784293850070922470040107252189091848055521507726598051587507913013569035854542453142675184431310026695757239679661426420143382947798464607830303812605391191355966038043821780145044836444165291694711716742989798175905064329153110828987818211859460325460249195989693164216617430666548619105353254834616591710598469928126969755981290077010011294814723692088958030873776762688269908322553839726766465455926075902111393984088490553414232147278779923795431726864622223472313659079802706017664789212416861701833308108337542690919878612574052303300433636092490453249399549986229314805110799848902114666236866128878240691843824004437434539619704255972603829667878542658264414989294918200758999229632420132075024536088682085740329383352174226376197883854957552466576729551997068844724446025159948619575065640487247456429985818460168544674075661744752556978355519949092580877859838501756957715444132872460465236529828291189400774956548991968933830202161777257991824975374265493473561292954853676417133970138379431280995156865506862111295499372309750089504762579221517092227762626582260294746446315940569125508796513966162262922649027292926638434365711081617769044405202217464243332011211480588950054235434411535914611770437015825738216661533457432070527926908372579396743057412139283338982360454766115037914200197453508016767836958128254758656367996159238252976228165535474188238657839819548149159211884562319395881973294703589247521706334971510294567689202786333789790888846704526933007335097865462711884046614556080709512510711333192729512754359899799191278813007467765426850248475837499914842661659359794049588959146906556429097444369130859109135214721209191408481499610431959121451312988708583127234570746700254038934199790564348269724366015460890858030327386969643885573157201548525183291297686535131964753109504378257210349305196166315295540789283423750217836805341815519169248776286724510231880096938917926904118094334379565623688333434787529819029046946140720896808146596985990021167386921546054210058099535570589796365201100291945679912071556182162153941838879391860874538842340675636708026295368137496273232727990715525167357065425246056509009272355605017192359201832949130803753807122308601912155320053869740197281670285448509313055092793844274142126247923852647499126278198306103848100244203316172395184842401661214139413800882292083257980181386201289988758937046529116830979391844667474019563410346479658871912195907617177847831385512173044207774874650245690118827461184714868510146435930773787240438615311663734311851054458689900361611721556969234873791826026001555861387797838153155083714492199111955497482063853237115173489491065255360450382031002746957090832442915188287633780266037065470934283095521365238469202073279356653893315413460491252599062888856810872511368982683659792704637590177146097745545063117327279702659115374709938014415213173991312382106677565982378518901874806388204193254377624509877769590994703799129020128296892326012056360691237663223451450656459456255820953458325830148294377756895415574572981564599106125627464327905217315102028225774395256863012128419668323244207166054183803336786511775753070224732549034925871674772001700459083290545717819555705414649784692761668531887970995695952646806440908549516878455034600423751741390117210274694698013237121415722217018749023118559019771579941100123309729297557827292888814912850358966405418220989132915934908291169395473600784020960587434742061772256825391996625671354370721681318279416518375571553670171823215784962325830126994996448159925823300709542514421406815038097450485517878085404893512417050856101061953134556241792963397813179575318222102780105862251594979695336828057036520464790714640437735251942724707674177423959261428001009115347989706286407769710335104555305777538986667931964565119129250790572887302307086588048046118444164764111304482223290823264169972311849174186383017920490584028093710248213710434900066233575569835153920863524987776916332509996951672497689044496142523318398955949486598120501882787775967287636181340508963784858608872622101491417287426784287496664397948868268772454714018722900826684668703555523456349948103265213313313085843699903662672168117701433989033016537785146418603560530575781764651121858632410684303115194171657189717531468182277461971102356090101054378739785185245837119618112283517705853364166651902071151067219950603981480944925371778621488893191199893335765188263142893202552798394729313674717521320193655016391443952139325179830121170818809094041413404196854154932915735714923636380126731101555900620206103305712032568712961416648578991345279901590164925379343606297440432850579805200921835037322591999176490181615769381297245814184989675175146172234144799757275452904466267922772930264218926232039444177838309740578957730052530900388246948672959044149434623729330173740036905664526287032590814069654390630498184972864186822150132873561556421018099114127590575800219058157835247388762028957292914660800412739120811650806973663935384765326946258875699343403911798678110724903852215956243025275259123153360124788313910466278565453181294630762700268510887287016602843655897825377837303195084024496009222335823335032636350429032133576543298897000736023769697708360223607477921186408519817576576197975061011631101666471047247343650314816559787532484230772470163786516375929159027757290117924854154883400746021130715639903457497378910981271709479343121864991458567275040746326351392083176298628694611609562024923734719987924363352224146588696838700353695484628569616419473077107204329432500563042054340799979407212172440282902921941915148966874756133989174308436792978577919638047974425300052046380105381545626873246689942506189008432811511504204061853418452390759276463214219543639742651513380906534402335644153295329802954397094647261122239921743776258894695900141340592703997898789441420322938551210746163924610804920807132150384203678856029635332520611987201652211130313310932824877723326576809556574936219044220645750383783777089186305460530981119315101632152384656870869895646064185024222925558988333065216095522503612006361999907094607193698597404791209719604535665167290226389846989103471273526016057916370964671591897161531399015002905717193712252023618497958392094837937829068147719508803228639411721560235516009106546650088795844412191522337182829648525343544296249586829203240279324512269186593685687697208247123303418569312876717689306361164842952383630181677496295861303884485295248144701046711900125360160214191129163508528571148384465069865100041098658470268724020759669233717281223288871077835893529184656486086214926815284460816870263639411114129148223921931190869796393547742444889809807989614178402854208179240617584883511819115009318537853063201501627029578729174612350845093422858625574432572930495951504849286632680075969892655669925581286643105193553558628964770158280259724080891107804864764043295516850769921094628816224027917822588742501041665672249409034615435312416727305727811062019012628620965242442067886078337498164716855827658819042070052457136780950500349790836398817767555341377397745508692542105648382211481792888987389469995043454391879222359107560040487360070534217107822931306213221118947894037149063363774383698795774434892808268391624458322078866608029161688971428382459089127767157748888178716775175187846180678370628276457641344309267094409101072370526429548835587713111276519834771790754127472933036712340450404406534915955582423544411891300791446016996567834332892633403880018150701281374853486454553831362894498625399324935473334921874939486607344141001917949140093399163068766648815051161978204196661498773722921644774691808950628754025842021589907429113470652015704173006549786005955031901965741768873988429930093989281180420459247482777080284003925389270202584497521706178717771730319015574582778081911039390505374131820197411984063660897827093386628648657520598163331403141700882192976685700472888408109375814900018372155361541028035834070492448850703166557710521951677704560609838649347793462847967115483140740047690300790510127002976667987984275505764255155305274476915865497228008742267677351291386485759860133124727689715328847572666247542499929498217012671285458080749486235095214163565601659866897880930698579382697926547769684318623039549903953626846933948567572765471880049521016531008827905374586511650736108707542485866031676088554478532360492145612674979691657764343151440198762778596334412281597393072234724203037021709964414092103341459497650784220362878831280106141791827159039418162220305222906331384922856398883195419626415530194972989451083671561092333970865201014026104127077358451161870431967040909279671301847956588937044077219658364682525419862004277525340117559412082657158656909077851365658549513550374203237128556126175497726491288386776752891307088006642083472758424237153292296559235155070168395634282061288750224211094366629622164195421886768611722346543373239041020151472157531776439261132455206954658953258292879844036127094669235044864788871102970822041147077138984587754443076070569810152769838324094794208870845103812273604675385971804773421470947336178380630598599607076851808115091442399680663950614024828961011471185764028929727997371405809089858816902789810602429132718252170896275083297325251190085359053929732009363386243235350186787914897436425664112244142316385945446487418043659859816835910675359340959055850418436940298064081527220265024755142353331522915186552196065403207821425909358725007051622679488873617637601794548516914303805792454824568795055879958299136047763054420613577430299812326069711223548691716803999401672547327940066363088321414621213974284545347878118881006976325309439950902537342740745553246146908975883345211402349346087863875436827502673263246430830412644232499456688654143656542522757523746599466791430850824525947565960486653354302184435125666181881758772349814248257314335745599030738843199995716185839731287580126021454296178351890897063077137694584778758249343055515127460203576847204868448844353821908197622736222776498471238217383599177005341310825449618667868190670868004759559398583656008989681756612793047691589053356966488730300452795926122934860147561282128195349271425653329445252066481666795371812595291637824698302870904941460654650981494205897089765275383503075723176478048155331250079262092268765125907270666826180602309312056895698062131156043926470284003823861170049523349063931807843074982844123006715932798203890229669958663024378175379126341526188679414393721727226902953263113143727729822525765424067921245296070793517776448277193189306624175219446950991923805634162597719768628530947828343252367362386873092141912554523973630136375448994962047045729825100166595251766670902146266906736789938331066789610285007178709183101051484744448519211469206023401794116581580215664388746171930903434984109818153235519437303122273933789037044461550024997501267804094804087133262478884613143068770962680681581319984975583040464925442159950917129570305187848458636497278467960306845946612078631019626158337763018254121785900772972528569977941675139729348228508417053163749939368360702411428700396741576118585091319258667201246634864715653355360104262478415384864250127131885980397176234083865050742296786934593043152291142452674605643680990282253178235596180488533984272756425283732238302838134632926746886970028904434635099286971938068023028654985922410178421256761273013448391511418320738967209487356980585493436267709429213126344768790421698870576142621588446854675476357317065949128186279132885245827791333089003162136563594643909757303910835160315272503450775957961712489292986062852607865315155028986245466028223976525474900999175833061897064151986087972151287597721926510114010023554291788560201898762151944677482986495658374799328497694929552642821260529639471084782947283852274858696257056275773177482303089663379217168432506641530816359017351623353258310665781557859099075796169239529848183304168751911199165046111748887383571114520956534662126735781779175339214643154860375734571281117616881902179433903878777430412276050419354964435661384958910047250021066391486930633736967010988964038038377873981194733338937044288048633101477195890024850595929241791848835840175357437310153540486443475781513967772222512531355488038169114933757940478811238434351295390305595876709826293289217624082570481512709284682569686019842117325432208866115103570465596627337623825444175813574934246048309824327795057067192952352232557532876759774189508738668761467897747570698415217950311280060447730140846814824988700602449317501886916581054277641911471143542637958576862758467131162974349306041254867304621158725372147375154140323464884308527982189336898314220690396437627523227544412817634419622914018745678675390209241145642768783285928155950949967476301022175072858504260060210943018432848781818848855600611579389204519930126413887923195696120992219097133699534545109817752298205725083978780768208289201535974717925626657947905861435226481998381452830453275372482033144479373188422560971277887012045116221362106623375882481047025234847566801086221705788946687951812734569820661216054505840259896834477270398885701028098987901849539446507239728555743772924614097344724983308225266164917932680793259916255098658591659186937717101154522280353761199579578769811414487650811240803951589564600034582350719497488305538117495598755000000064703256648124325760541284719891860606767151622270365093303652683332284509320388242459921652485282746707514197681850968056321003209839335442994584178691034248675396843468761027744246440279947448769694921387095877668225264707675532186683009600761580214072023650353332524169745818106902107867171103473467780925023920925814252266645319860294137618076288902136464099275843576654856550995032206613836035639638249250825722139635897780130786180251645506112531695175877384743726711983628177027159479619527602190722413692637827497338833359092825566878907582999594906086142185801059290931257055925638267567691348176854181529652579355975033663946878863513529289290432029036189059676702883326043456126143347787126903081763344699590290625903859258421646288520876138726404247640158927350969241518075262426694306625531635750657534539611521573889467401851650442512925715581460946716639857129121022007848284125209897149186369638829832713618901245912604996879337947009138491021703890401943828028528825067918429759282295021875838943876230345096980165387001406302284793638451678055303733328479423426555199024610337701616215417443644180365953191280689808471527121007688495882447993032198985516851064358398970098619164813580171996851281990937472218966871779038218601301427140405739620411973519257307431390929990805821133402094442307589760071655010104100283349036118579128763226970956951213694640268710348215288904569974851271005768479026675110985697923396421428091887250424332424884542932916277916954966181051670904159868229122629079961904906147938096107606961549077123621428063912172687386298461149778470323187446103824413106350202339631339225242246537738407287650505294231089043700133465756390190579979943107571550887051449440686650259725173192555351713984723169446751696070241514097714600966631257544673827233227198409447700700485140263200159876257523303706142582300254487528647891498119446865039296451373700114822360947738518719391094233415959190650133805104343050721724608897151934095367589289486580048093778683253087265508467404956440415281592799980353925921039134498194846370053926729596965702348668608851743685152908133877084221929663241411661514454415817824872522213481575609179404565105064580646515480267324288115237496439872851245917855937270724326776813498688784187594763341416295353407190815357064813110441700779528748407206645073434781622003521848916562398893196408055605801280535315275308644173044316537977849870670883285199252677494845400661131387588204793271720597706061605174023058168259108197745626082652533538409476974570765943939140744856433788913897800236648746232796602220133006741965721929929252596685554031599247959197863292434865445625230371329972880287285142580182830772853734673665622941681535213390027079793418260975783696302090188731104940629636493689491653192531748947208403287657810641011419218577037221500680166686826964814166997570606271679593143250742393631254349695450905014954627144985923030121016015235086589622517038465285667084081309807612662497226853933412356313290476218529931602155860102449882728060562346107112723975019296114551393025459540188846005257228946837632590546148324972323440027474851894902134965338568170959081569850327004227919986718900857833703257420710756864462756187685192377957290445613184162206011765981415404764695535843324417523930240006992415095857170841903159158938729582462698496209976496453348739135618591942102122680983027660422405506634221495959055474180136214514781853118484979684591411749042101878647828938954363587285308261341685951834781539202704755121642046251849680223931961968198021024832530584860309415321881070877419667486541130186108916492179166337477232310103082279653277846298391263068876581320476595387581221163244632225086039888007532811757378556770200569260890480610083970648065666027760178268588225825386500623023928071916890218359448212465852143896288068588784005537548784161884302197356030464783061669994885981480959221032209704165927411963358465015410637276484338952530963569403185183351544458956974970285334670060716252136192690945930990977151204570133994841635674852269770613167534713035241492347329836206899232263832417232681560586454399445011553624559794067359822181198760782391475459036619387434812625018483593373387968840276621635768140501429996465523547825686866696938195176705554912487552750479405058765398987870022320085261210473576582514336684572202461829234863285648719358960556857918781750528025889426431782498835500290164477087085629939070010529330229073704841897484286204708655926524994030638982680868163034580737635681188534014691664572927548059946862783864069468773327558991996325643159303162366698147050786203717100052631216509116427603181491232004528877047329388770724839940241802633593529472694426123177476091097223456157188596149037996785117433934246414952417909411705081169265392156866699551463615950398256084403437594232913529724586058129156999267271765124875166788475091759551360066510914538781983169770379525819126567606590714577523101215664356356616267063895859397525306684630327413359068378785155206642035279981618202113875292534881806170675738390859535671439773675039274775905765421831505748269814577044179412832953035028329884460360371979389538223923507511470390894534935003934519296054755581480111921044736941749633290243476208204102595932019512117032141075226930388850958216912381071731462919986193998645712426366098707611735265845038209148843724228956743735792434901205599614915216936267002232150040249929123683551062026884429766006750838634265556584995552107108399180621960077134172810117451977681627510714981658437830698393307615702425144269196455557447172519804148739740391060081221992730076559548437679987137841025887017851667099870227159643410737712591947107347646194069982938057496797722921982657125748371257211810796222812697555602341940934886290062492406872114677441230781844921223445998345352202059992520633584996159382834162724915839923060132134230050195162734519041253217004385172976098411598640768267572024119899955306840913843447336362457523164300356537825421339147652854705822962269841289454410691204650662704681446667252483974147115626540492591768016657967519194994653349568562768715040630562055118836497802233630134314653134300500199752997593171679236044508927994530644388945047688699113356036407662198288284786348350054570892152125496076455432986506007222021999592587145338319924217506599642333837135671841825571923342207736483621230873975691400378515972737684174657032245145518205023120890304111043533780308175272138811504736402646407402356993086652100991993693569181094751360884511284214895830231254860337190607512525239867536400222787225171700187410756127743089950762621471336214124062752471618266909154187653931738208450999428373923642405160453995506233230910841936434410722808195677584709518054175513596437691152734422888403658488332114698660832980160750501000340098078675645402463895098553035107153889800686155700306979500430579482393128410095359305371813410516563769967763573753704863591038708998875266276496329158838077327467936305970488185401574665421781951645563863249481635061897169247236906203048552791867550158113682790566616738470407976418489069675955460316753136195934237296492238388053690513554934195302512261150175384630453387128043426655435769791862047381768433265290940903130065489740328097100739999170875831275699462842093955154526357807661387942739250826082544636473077193348248777142255891108577299961975658992540801452461714624183945866481571740884758529983437363104582627589013896047325347454383579584339629115301501419630895799445098486080627564966838180196330083187638571345442429186473189526865951190270283790959697844995678533036819486662364939697833545928786983448740662716146217947711162113609606231338481154617595496587120813794925261774572323602865618592339336362436592349342231798354652511944577556556273413201377932152153748426114559461785320578576490274447471547618494943067707985637200547695027673673723028921158863361900060478370938230857786285885775744888600279020835435327112623607195778110386498895355418918841771495694434829979328051406295434103855026678030606361873306359443570482516496569732544118742589696199465673023978735266866686277606794272550772306821802151803935924187145252040696371310800554368865650724355267392400407478763950730162663634715920251456592889649848396013668452254867084448275894966728112235646143669801670340351231954737058528103632236310638349259090145951348239638456239160133514088606901027991821003758232207905531010356190552300585307644475183682244649024336217457739006239693412808614981738229535444849178126360770942652230416528298279361926170527640059306156036541164004950274354594644083328175799923268354917960303260101853720031413543564976030146727667391328339443296562813003786946135043651676407693327499707642257790478743453753638737466232649583301590752607490875036643835182674380225098627792946985655488251514561306981113123210356613979404580404225574546201926882473702017106530873053481208757769216931123202509461115375818393521260197348146251844935896704298754830834484889788984298171901792308194363407806760471804537293693500715206452628417647343374996735744250660036960011682082334434705281838022142803637418326898443055279893949468521723684750156567425140770377477203113221081658619286650256357405359424087180894337033340925574150467115253590524308759418373331271215653596286967562502374293230141953916626469799906782435528942725436726630681643271790857339463723690891626596095469627126936180605011346712915989199771189967294725013943277001873025937290170295388492523914368174394464260762452837416624435040610138025664504246814157459421677227318469690066460797869206667452056173758529455161880609757661867237927441478073774193978597686235240123387087254694775021892306689411383021506676226596047704158948612352399493407397842198585443883241466773862263442392693876490461935146992001552175591808713785397566184839165366320802662865637538862971713461572088447407687841117926572126542693364827542902404034923321698340563198266240168582607364610867849337344766435966947300250043645600578583268024983293776563751357447420030574729810601122852869529096927923393135602452480451370503984889272334608196891050758037193498834463904661050094533319904142690051986643631997099862140622152692043674348001275601067589132810919925258714502419420782922855985611530344378874823783787384054287695828537918776032048303210189235536740506062524661088564060585949784139264341513920252784696024251693851331325868643302826292144816717352890783737980030817586084671012463882700202092839636614030335169264270051651002273496602952585830523158986175794437605269495403922534147631750132186818860612290986877258198645210469018804803850465831234529901443910729958334764131623682033154793144857449753124154337267509707760551338508924932173863480070394390404493197483468452292395947116594397742056260520701791907144778009895792447761917311795421311003955535509930930055927305321297297176940492782104695655251672756013447353225934335873678375306503815873160857010490786666450039241344914376224496943081352698429717904742838570906960914629437263856467593942297167777634409755555751119633720164187303485967964281445720209899789698478260822380377088428848917635532656457550767350310373905234381336635074559056878179077646576619888806732830738709851654325447577280241719260747055188276806274811436616431956178203302478464844692569706937132616301881911105341652373294846536070367883582287079886324721587871893997493240189789302676204282124395467476816720692644000147615988121745859678982824053751733655662964910536993794435737624625647957622374770552587378448725715936715953353853036317332994597089033887852765091935337654451547791193026510999513217999746132824513604313556915901095418029216846386603178850113368864406794397642110747487457501687367787032208309630036815618812333404916732974957124080405095403304246738172354610885254244383269308456656121762808586267581212611927444904697149581871743166763858932865259087278378060330732508963174330661718361476068572380077544941188359378355854092671950430155280951485948193559180902535057241370086792951472308456571810728194470339065611957269434497540449230413887194286835586649971612197747663517544169875090902270655904469190715270627613260937670835681583405593510129579694046530268530918201809960228085966352822991241810532577638450988100386101373696056969522811223324476185351153319343874783257999487331758223606870498488005123805794456491321202597526218525986108756473253237773733090450539329718362723970647520002112606501297926880099385856031569363353976376244507585905882470782826349986122785901135531700460562681129220051684866065276955946529489008012746275208982918633934708838617200901676260772856835760344781918532297405821407749585841565015250172375326117339681014081754279050590201384585674249632154287136146023731925911401342372355215585728092264578971566552406922524212373653649187642219486402648941972549109571057120651189925633176467105886095238397452167373511699807437959047769585111015788827155459611784590273146984544092583649265231058102392616684003421246828437772357480325314348053317311178646821924319163124213246629937859986395347281333019445895249896344483928339477079323674111242732753415775157715713029892554817161994671038324891928862666422026678711966091641961157199401456693858227869715247808862129552611993329835897577028004780357654011713562864985499491998348261124674172599693850855067059020240757385613060945803233788796947953337356664875985577809729443146261041398359669905633949259179630742573150534256546620683241411506184612319065551530140487131279287071457784806257736542024223434510028064039645452598355647925650713757549225554865886221960999797130622052615153529333179370320287993225408424338671952595293856151339050915687432642589452409614559881625690647319122958148081288013406526394728162537010643201358812819697051036457543995025035243331209242224135832493614876146164353345114754869611352295102276453307413551862381114218961944754444094521222966846911644584172397967168737253408059481423352283453658410169892836640188126652543893713465693316332439347001063252754124946221221222144126459441755867875035677708190425338230318774670781351527232113588156677210271678768724791085720500791880796471444950610815637072661746389535857031900472448581810054428326443908443894085320961754681100790124645718464770200476061570619723911659774513807511833521086959736902352023937669087661058408490250876706986645681523690665077257861791441964725089089120046943334818671660534040309867280733767820440963763465704419867790972505865032887947150733067015008333994471772529019858841982455185177363521668909546404884596768335004529100372837464681270100197304292425687910323796038174699178939940662680152351945357345208363347498968817234257250568183225653375058539303761438042574089826493429568430718218336395638608623413682004072078097687351133248638634330523695424834714794424855935313231545176917444208185962790931242646224621788298244415190621512756603304315627912226357833619229323191437137773064121581929327980822221934717518795304628772721772803127303230676778155493395244466098885748121878147167130585032720988753386181416921899296248708302106152890519986103672777222283733428031283995749349381876199757254358432064873604509918501744266255296460839296807737964009567878869357604261621559189300308292812965853055629805022590709123986585161060054227917864458226342688507288362274487082542220932031187477715044216538628899321869541200126123080833572858344531543719583728293310332169122514220453064309028600576633637488420723753110158302114336051424355546624707717318288027820829163616614050713236774846253431819029409119487107143417089709159167640107257963364207431686332454050697790268136328013945487461056946072093951214237295825627000632700707474970974509372227262979708687489361536313436919324672088554340839440935463148742153833186527248771687753386741283863679870802785160058246250212843526881468859836274374615051040104460775330875289296534607804152486124450663171242003270685371526417630661734433774028428398052716567151130403082360883345913100527988542811945810919449152691960372242833236619039064516688355818852061142323361162133254627422685866566544119467383936654850012161014904579829565570270286367570596265400388839591495712622380593922390569155985868318616560409120548426320296840203387603196519223951251467900664354766612461221302901480490178351443305688076868735447743375400134696154108145829066564342956625811470588013650207151379613382062860284094428432116277746236778905110347750472608314743663958909922229682546946177986553994903497066987332563061328118761344955002418981540563490089279954549835837105303349260362053896150097814092552824456106364533960918257236050843279791009786038467619873008974899737171995418571852333944503665037844123911678402811083480535918075560556354065099224936456096140741881464037246379303661336171909961322400447378163973777872972830137282721608143390863807871598801604983364299464771210450103455818267739245513650991055604037621949379599890050336304159002022210734975061561716889752650104000163832490172030461799047887659336351594869583119574747330305759078537451911739318253286232376734408023014321715419058838924786425293412244755843720686105992939108739047798358287022861754923775788529785004328525797251786641310023544074103653791953530546823545765540060232508584184075928104319749182224886179811404244244705351119393007564355901828674085708677121903253231908870047581786322982867739278796931304693277737347266199350650622230595309388960140894225257422145558024747343208196114223112631436225054684902052766392811126307901996145501743911240632698497882612977800949313832282738428302175375827194602610484849318722387092062016980789800220590519928455910372596652626021158850067809655506843642893393496954844461205432516918910257673526879420081213593786329076221278096086822421223410351298525568989225472775595400550710755631771744596832037966316792448878011416581878430268916575439021778052273358418752378644045061534785253017803671391019139402289796729488906423800954534087473923637991825679042946151962083062156313967427050918471700438029610966015913299394096826554670094135236646344459720941444610376832325176232476437620298243504869308962179495785083947675513658134268174600507940651216667713364931560015933750271781735944741950809155516421130863501872185488100093479163770623654401443724283219881039381511900135118859573201508218827640588505442993579172499593659400068336323993142841138694574170722994007333868989954631730125441940619276337119947735653243673214692791792525689284300341786844335867587543659125690609158171071854195877391982715126786258206973161779591853890076679693154887010811909157738672146493678495828498861859083000184445853401860328627350980531855314341247227592218878698927272234329627769660947535237947190659947255763613185497110748169279194147991750088203166435567430750856325261733080777137235697438702006421824570256385594013900179120580991502697066486779534334159807327856841492028126426045942694099556782128262451275987715731575514846388761926734951950064918795984288573901818953607580667203392370363691445803262150633946872467252237689699429115036181209034321664884209830905716345117983894677108744461728863175674118360411156005027124303201290181550257651914765376161643918935809976542516912325293490728397264728543967664257131105328851521825395171754211437673488483568902111776170344697655353889458054197083083682769602569808757995600208881472380951724542271154957837936115823249866949090133065036621135387921107673732270358209204656933020327395753769985624728276944536597193059952077798907650581861907698539655094801765971479514469009267005013332040440417204683043985488185824071227284345686419728560146593291572247431154341366568994935358759993592981424125565067485126748642794412058951006665895220064621135392635136309541672266848862392003697088500583620451345352263464392917930097728769168599591995768165297268621276110698922097286269661039432207141608342728185053162200206731864955697664078837847209538186637838832984646676744613739323317547633753058249622061777821647216028725236163187595371255162720824410387142651301739791611119502906834337874347644490477598467101344603334315559840146291974619702384249965622154890913910068100464274374011643225033782763167407881749829029566875751263656385582759740937338328250517455151454842144959988552177037698306344013847993700049155759686769604541826383629468998379754684325720419104324500268170409947624335395256238971685469401581061089733026480380855041812661517089290738586526213967129237639284274359758922036687937367974514865098484448278978302503831247108908463513562505278210134580818064209101857848522299705286490932848935382567635864736211511476567724529790847955539179589506704269834696884976723154924217295264054289413780317659654939892235522418991768820678345449481174189118367895701143666156314931690093562077533778628458807687486989551792739493216788333667198251178365760283020692407509946757338826034103488049418757783941340802888033046078418457225189152711918338764650048926612352547309743548521737959688508585766304500835423411726479157091359437136650815076637985798392945771578322335307510124443108614243187132688881022083324177584393062291330043026762077270192935770457951347800849570704264769582395080344440752477603099502504497713556321013030839419379207174724735450588351896937058009905197095578186137415781141649453968754698285352158484426650058760628802753527619743372070745943652051699263343609210220239790337695586796064317341853347228762447576218413545905225598639329226313637556867397819491447739983511170163087501081025620694931885016711988468876282548834266568227773515029256204853094988457111076686985651614181102791142333045607300967246206359970480579172998603264200804437981756796788173711200808380868968059013783236680975888921442091216647722580611651595612499629139693349570076770893834452835755678691961320241818344800028323065428447847757806057428128864316523444969066509618611608219181015044211551661051237371887602238397977261441900522112806526584043083380632867052325220264930070104183666728793982783332347881323926057021614980153476421282232862886246165349181557757556483858002502106428704813761352015244759336597274843822476500636082223629567834976013320828093977418343960832896132284040442757832236078719188780096496346178998133845568307168650024527380357231498453854382498708796131049932865031881882290731945670386006537497370626719766067909302475008162523378589343825360022027558942236444616925784698827953233988846228327924706924342614780544032331366860812119590943495774135255915261282557982660117129811921551476447055965418112574815615981594440588892357769822523364201218778823218619007005117790965148769717017919852618883760244727203332652991852148683058890195521384388684042576111165375248610784771091216518653305825025432938025675861750352482462193121393300863387449339312146224325914927553689575862224716346724200933653537880711910699216356263875738103404332047342710756934206108987351486506775113418592309902100205860994783624986850757442683317006360790712287229898199644437510452803288936796474901731366114678429429754692649176719921614462961829154365391698492799722626982109755234933261298805692814866571368454376868249244795705251928240932700137600080662833370258118926607248857844532091204078997682433135469505502350261898915410011681882920510462920490162716081759615442790214892949222728827067879092040711741505980836863998261061601166618338202073191938860399442401979620999712798915387210775948260332102322861240427633980061989945272904913322944326607760620681833902140544494037297735373971733928007913339415283561347367297261007232321195509235372794443019093169924946730681353463169280396539284380229929969569760994324218281610927715000770392109042621757019809440010960131381985907983856872621259724059613743042863443607756349386476636290439783758661512487588706279753404206220694198026995962941359520231810781775847111450484571671893643306282405137964133436726074447449439925212703702595124037276928100723170485167421136737467607452479622843172967342551541455862086489840592015379968211064425067281386164132876271994447139368100028059044452884618360117467224038179545053484833762858769567857636340583120858445854083571122520486211597387746434921744726305226595949159322933450869873846634892798925480155706375093624250847414899168387159587856469811774005443138196867448652579669482530833798515555499091739558561509162397818579776731783666066981256823953476147054186006717956964486776410702110698870671383689568280321979153222331375455715636142150072036268090074407202208571815363150724672000220846346192820522695116281641913894892894706774168038118764376173621647059812375920517095809091059190577826203288078773251293083989262064856633551653846145622397133905497540473397881195301228680931501323266886867639288275966235407161295271057519200479598884985594914996292354154582473010100604727336798335170714039785227973276082510456484042942355286331928487111859554365772174332474058811516738167956757554439111085378739787028293707999838854128314587471968990098593156391678616547255150799818798529688057977186464630707387396770590954784596242623484541508944623466863436239076312673985527915364176654641143940866676703867395225018344482216004673843816743632208621392094690665066048065949215143405228519059510164714861036210491581631276766300439143402527082721680357651877539462242582703636080998328857649212903408496389591998248048544636573248746123080706935317540814213196595524653332207557582860303567784249505197290738865672560956604166896188375246059414740376525059949911569171146159863583313319877899333786291717225089484259673691162685148771967436555307913991736853478880819257406682792217277287575928968799671019133222458123036009611837418696863551170322910346546978424605976663686542352998697235205810341109267678045936749978982939295686439431209213334560026688741913530185025434053824327805101391027966187505736520609607460109830549948131297448068084915210887744771681054639868546630051900230727958640495029527106681878205824074697313593875576638417665464207569011471405225498723236734582679055989463716086984456710358961981700509642462535340586040021267182815446530429489270489195916908290600429234205564310916371332493664282127044102783479087018628254756671830793058733261439359445459781130632046611877076350388512029268789696048229311472711153705484574946645119633776179510396905456140742450675176103734139972763993789905548066873815873545186492266165122478864465210271217789426397463259878698115308364125190420435469678587910145538950272535663562770677894348772473387730383521395555036248994703584284458298383526323911249452547123428192986717423932491292971713452965746055480613613989633660254027833408812633507668999443916239019623526885302111397929810341698262772920516583997255495776900122406853655197808244061220535639943413867012449080622336443919619136404055145306812795250650622367461994406082866505567824171200379157351526472007324975628816614206928897814338408870097631163995654856180460732728526657986150973260008667436455628188403208831841474169489288643226494886896316602721834542335200839272263716285240865191900660092962596030372098425538717778302584437150524004716936445839981403727304546045676889435022369850770276340001013213463348955917129547695305222150309239300289107351906337666581859101226858953406015420856710097211801307965290120323725949306684340550768276181429197946056318781325190523721565790901641554005782544577715901013913714920899908418360574926362932466906966385078018721488919338724161709583103635882353040646874561396994304947366836165380732058545785457779903663455165182742603555531568639171021676663170193246625650049235838716222324194798052913868693305077829369375645526454683853040275451144207202709550490222142946396605711702882407437232520462068480284044924216433133072107581034090521088400772095306860713491255772949942722603788794875688643430114588342866583311394438309167095475524398885796190868384518629804057476884718391587258132800652824075549762419657656215825795087159610864113045119830674926301021268414109459109064438467127365349713607501078991309506455673684609792121623872216574512462009343128874673331003047838195074942282427733160398701572655551979978866342684182375120272351158612061942375473702167690538172372089330083351516321335573929669767327803108411796959370233809648097164576976038180475304596090771089093560678826636993984209406173867670189007648017375279577156518623089149335140951244006615902689373947624080839638466562108249935571391981098298032503186858347778409363656478684648403841852171677046205189899026108333265750519636065240063640059907115202292360241027704943668106163134098726286305877695650170295262570254173391377360030178163679042102629203866325547758214232503295532024849466347064505031321986177740644257987729130611358593189794389384567999035456993580956250767622318545491089505519911339409215680905604063286018082296900799014923100702481178448876663887971214831279085581096155299564946803968605079190186449205526319006310286017029105678470763190077205453092832231089892958651502907840983630438020710706985412715261165187915226639209582348527066493851244469156856454595991317474470007425386390112302986487733362469910037863556898272729905929983607173983329940184826653185214919168582836240935276808310217189072495497262356581122327930699803921758674352363667831191026903656336233821112231902179618983626411583827936044108636135774886046443024751113412355294078854639164522967039718770688005862729704197433600647688087183221372939528890385599456651854656320029547859588529491480597605932685399787983764621897950532942573943651549613088594311568328579686788901561597180375344482803570734613800591927623593560190980296307783272886886478039060090641623473189907820995328443248655504748557573745984337079680541716862021896324446631186578108967898765237342530110882704028549885402294389878180014880244947093377707114412941298193873931492090674731537774447534192586673554842222662759666035074117955209847116367283929838481985014105092812852743570779153498621483768961215866688780164079225658825575471159646957633309912763262061712470158915263943714898002425441185211453685337399410947447736642429992340892807891114754083039085256461261878763310938228136033781686383880101889739916757567210873523227306133577565999627417753209029453254621503095846413515698988295271203117386800767696514498884661153415879375645741568843452504861283923304472407100854997969306584341364589745319200027689809419358049687088445669701413511693131291084676046960726471594265001400693582492248067523691737057880302921188492212001269458923831267306669410005875491681480382047585966674226165671241249544207394993621628558144387458772649994689409559689688322461451677399309729063908215676069475020325044607858219013274693083987397084304060313876780738422277350451024081526163915985918215421870645746820822736401942524854036941555555098558213820737740185075996435493382828305416661261459135323425375645739868210965140746854061583658831497961246218266881169355242642950552228604851747300332538849264524626334457857303752141704240280064419377221451361268397778360120566167511249173700707717406609410876002483296228604254776970860389378119431074716269139745456272706703075807833152354194062607258637330243175705742114525146583316745691108944558121018987887221390569330031271978768634265376465688044193020041834987269220792432424931988410629794976328807599913871976053071693008447885062928239231128100395655675041092591349561169518291903576752268505326599867992116744352958576661720948235101740140945581853616764019248563016422603607541916502497627383264181867055374410295892039877898962485013189879868202580640594164875994625513795119013548516012150692342019870714566728088058234866151886947802248060140612680142716064422107677801586333314834682163879673643638650240497956368442186438600415716999390729144905694277474127069120816802813696887923308153785678773054274760965857594349479055398428753717512724977070185363094299807645416734300162765017115900830488939247996249389581122059559149606473303247278138936194847689178041520919701803111219387636721737595931952580769136944001233258217495845449550358526718457791927778010123900795943186897981419804185925866680498351861020185937462154654647493683874035005669937098556301489824020312445026387331642491199265860927846408916733743588682707810628918344970494461063782226586717105527839946317883952021225020199795793761019901525654600727547084287734601184082175516299940006239809158442689955521135512154219722365592479430570767970876767905922437246477123854655518960925940377126210945946877935675030095789408811438519970531781468652083120145594961770777596388658633545972716244227601707994688149245390607889205112174825200655558665169524000054852591947139591473969403907659210229153395690896211924391302287634368786444406938562438278944082529447179340475998874172831690601774942158272095935087817349834020266042301959989145569465802404925596158674916514975848290237680170616133498318531302861026500389864644072243877213451890810470116066005127078938870717252755622930655338728666426537639070896766592663989252155966917693488523731984404700642331078019986067873839087028313241416579532418007190199752255989793392682526844468359715315918721590836044724909265515940427086681747702868494863207433716821164736110635693229178442024339272544379125290002514559006345398087982140449704973777479752658118421384479543845763669320125196924842679364472434601497854991391940075020736404397589003262504163302451526583440220921754188957479230525965443564295101534326089946059830540517986865976378056094380438675286737709601705900837022144078686710142525571067862878526853444604845802879917664109526659652916200961946159379910815269886293613155448746189254420217406272659958983291238300995100485916606843698978619812495662193643751391501670770426752252996315268271347861912265052691497465528591704628957472203737556858898846386832706904122021059659786642444002926090772268160154822165416464976213045649126516982363286665123302062037354692921437507149439985552286902015960532380566710655408635513143822656729385482498434896600090650729771892830129583531759458906165459793037819962000233656853138097304457668446196002199120666757198562184175669911569691079754298213363295500853703857848607072934219149155883016981651449751919320785438729878619144006449743076528150552371292702603378363993532234769131377496323810945275400000903783765568141666586334226017646234569308508509711108879690720652897479456463269303437394489230745216652739834132068042456124383822650947883424265300042708803406348994108312085395990712799193843886042971723008112067957940130790061427812081535831726575771732609219692531899190041476025809704586986756649865048754859319287259444239949795501249847166716796507052241972210180730710524978694134717746008247600451446283979778275974770325286889696855162084625608151743246259301721927400459424274660965966536954174492881898623155632485252136089667546262444002132962957066572573509978564273766351427488768618182034721879711267136959722664038799967858833115792390882767855457482006700253536836007729931099462577968869153207146422099081399340504551719726508218698874683854912881701082902342305951118438135247787883771005032401250982431904564401770025425360498010671587859051979693301334405804846937469781574908011118846863263003466878250294859756914653302749385832603303018190109959862808924781616036673526681455376838452722039760870435746824842830787262687554150273809453866590469549762862275220063437878376351738700213490536965479997736972762890550204418122326922030370904624534049389579354166514749030385207553066821027785368087187879223489303453496359443900579884254749131540437159623038187649130469548989826304980803470133066707267662355451341446272963483761044699696317976190215837443892296543281124129887138944667945931058720431870049321932845429103529986860750636136186534881889998345852862697235951642288036959632420482852991408543282743140335335423932633322201985947223374261904915178484070074459594984737935756015385113324533392462732288997561087445286021696785040587577428122388108072633944524440380786333453431373789163140831393698570259631215287436657791961954224051556940461955032982412799007791283032608371161591119116213705368460154760602847048082058162229033731968711093492146290984577527937390319242268812009223980232651860290547623562633939453992707428173402063313419732440056353591984165833266449802348078356333806121329431628612634980892455415743977054341027446332361349510235374874180280659236568199470317815167758347090815519239264485959273351190410036163465003244145543135110795593091649925288901409582065910598051703066596939038635383569197422685915893054668253708292644763726510811833547697750022083667685415923290211503952425773253556833311482963160827818579210653760965247890061296224868195491803121090330667150740206785777340285805250028453835338120905014521419083598578471482134958309581651693346505292183937494042123365323764836575120204024270689060978067628997228216330968710247986933092227919688984962664576850378646445344762094194197997511825143378496940610008280451175101380039404345428160124551478246323501669979423971899726842647839268263271094460529613481218913470008187447063429816127218561650251840345796655156445336803154177541099040871659699451999726201888559175803911346137114151810367433887201978822598997045619930161256700149478603309506597858866924246702507403792268369828867239073398020012500899664417294582189825756433081550740223193496256590370474497818257989362961379646661191252007040755418555726520194148390318485294348201067125128853461267995067685017106587979580838327393364950325197140654229900354199518119053351521297144081069083847359466682549524466504996369278692417018254864148595324357977078388788675021797323929557461029401263895145546367319543550009113965180370369663831395588296987704850457232807347071909702736084359519191765407424935366980908723040781389447275608827367782352711855668495371925476995225855679066488201915920686566438753191435160473067877178822793496085234846996667828643935325410311029596568206515242585843227508785040544043555991407434856147082248818235140444127850511355344563582346654398627398581466423729174880224210218452112250287526324125265677686861353357847661308156148800520544316305564966838398311607929561779742661147592873748946985146068996798608939124956233911848151762601514810947254256160079616020644855304880080623933496967499923157025007258295493147419267217850977874695200767402849329468716255017496356109212042484957461588332889326599069626648012830876675597777654498271128812762883127313762713103595115235567121501450872133786051898756976423837655667377594452456123900034620214787192519169285382387165687229578875783817382070540468211232793478293890455524747259049404879267518230452587657188762337715716812690427200812949149060597910936393372950365010525833774619003802764587103488992281737676116265045191933957486152570242258112017138442468132680988836608255404309880307326498486426694240603200755519174072181738597314291201437246963941270787876821116199012226476726911453260810164301074777161637827240799508686624416159773837134833495754136886372229226498585002577176810674096360557578262132639377902968165734824950495272564068930580054999260903496619415161145161109101075232826612583616099718229665881307126813583865770822980585128616475512857276701017529313379594073160875722335707113876507246718796012952054489637633408721305054590467703092118711773708182669755761194990244162321229136170134001712333476367678630250351076967015255598014797979545241205423028230773058998221705949845423510557249572627682100164008059902243757115018924250636641521622245238981593487648263520048963968419832248132476422137080608060739914625623502253591831242227481440266017090063585936914039080456031021369545008154465510926331758323993638444437186845023821873432637403616833594647664715988138118073911063384052207740387827282948560543326248216724190220995726154868839458881718196761602668250205570266669434015603721105171209989705698061288314431113400316871747912340538737842759592771431566716165533084202286283481710266247914058107971640714781643678028454733326888080597581961321117705285423492124173398612794026702830266921200008628424548540416664136085659294214875484793475691527422710392601855008725333489737496581475494806353435460316719948387584767845517546679862784985964339857878223822996169751187132851135625468390338533260009322584972346880193133340385946953379246574817624304570620314292169166968767787479505929369568395506494760631710663028852665053266388636028580428778036354289778522652463943183679413897421982383727971531763848043214540343759860645811264208499367691303724925852281627354724722995037312666258336554812266314445214320493790841506191878572304959150166252573398480839263158412826448684258912904166623605101371990163132718720603515752737693949836678623145426549696799117856076969286295232299139027600364266757431362250725323778390193041117819281915484445979669179745745462701660629344870347747452238064545580850985275013823277650096453123993056233010641287429227147081469181221865701682692897363316205337004705157149149335455547298594268712552994036829960219075730359823625905916714149814290049258489118195254871808983172759989388544211374959404112779827319017374563275208489575830364169915808160434799611627145090460689801477595715696297233795680717318122378679911613452125618121791737786333879465103969517693819787743405581417742494423190064427589581900989660163221230629407817129263118415400800583271736505514524041322252486802220437503434179691207010151069732539337314019628594681806969974946706659290597454341458789959703888796880374781279718919320053912892396113502744653591034175037981911582357260880990075870114042325154719372571824907670029049737306768353622830453483746490464892262146421522101617520290780237937376410443491071292250314342482148288562857400649374127755473950199534504719755615982081873856308822900835828510321244559397591888558997179665946193874184333374430778436081627823890052498825159806557941282168555862883331745949577405943221898141059220487600660774884647688402186793458289110069230985556986247170098627317390778984333823434815863848626697331142168402372055902523169819861180980716292847092432840069641093119660475214815235830457869297164150175153004833951419566311265966941599424636135204901346984302884355454665666965276759788613984446602990234018504923829274833005342864861576226648419765212007879104699700529920008107805141392211366155553462264861740770021080231109716117817882180851378728816964205369795005888949278674639924233709729401950249935552831644281147678139496969874665053803350160765092919260888734461282734917272113470374362003574452576303192911469651736883348414668982978139995051280688937625528757272136137929914501884795331452879992565303918525690524213919193218023817638694170282109531972259612178057026937760975222411716701071979544431221341110365452761663789591468196397641131995032398223487126016986553307625262559796054906771588088767344981359335344451389838700908911311632662481116449795040670078192499726483518766945762430668490550582751402774877738869354514490268177387879600129339083908492678025345379372611765309335159711222022213213855165807312865923710605933598668876887880534113347288120606098431973641564252558672124884782753408112959510661058114915626606154088055951958193695988098045288131693254389859361747956378012447495811278282798336797886165835226446103790454462250430559319087710767802200768812673843499312884102465728798545538595215142173633973053203190908234939545085238670881631648738951678779481717952075513987407125093596741788994872793651499102159199426706940295287032505773861237373924019908889212559409122193856142065667413376904564119137168817627446494537471963919759202610817785461692966227335217314665344724187629196029991529234892253653615691269109600189137364588408896174875899163938443887091474702710907253662829992886501070761906067526178804016064319432641836371363153371056588120438642467526772631267221615657953785756972205882491509323491877052282016155619372376202967563389608261242772020637882660195891036746290398834708185188485533565181337391219330901297504085296897621464486436130462128915567298976709486807116817165106546951084067948408680137419022062005135872573657746668411154279551566847831863135219271682744116193206296612769194615247720943965174049235179629152241956167179752231243313450316693594286253879490147372633659952540119583532594339821934829573572633641503196660669357957704977772462702174035708188471543179980356327893456724955464125536953879598644247536692324871416347609061184418108411865050656110753174625030047991959046590737648088921608060147435218817434040430297993450522171060956764136592494943413310596166574632176169871387038279110602400287328107209700607734747279874764622755674062589105514123808955504777861656955671310633123521049915763977615863020308391458936278433718087630911921820181741574949307352339040485545366791113118945702329579256708966778876166981052701910541812966815988099953088432704910266457022893702876520480887445584376768139579641555978930133773103248581583508883723402294441041970576396728385823915969685381366027126494752043324953345875009764414610531750601206375823574591172466897231463727029985628389032356658662209303627923872944260804975600800547062791651316724260115233490756152493635695111022231323994097620715851952735092194456470185140014606137060102950795797434411148629303618357464744921633064353045087040198502122604519522708167969565557051666182242495874106197318138432136510635905273306387457174719555916148728301075851738339554871692526635601726624495245172658261740233320569829049714669252578030490888360667822942371205514609388653408442865706860200609030015141072758321609474250951996214447959203744299203696007049280835801989426115121169465585550400757319735600321267538390729141465907961026725800041353536928726519365018022311980578195626825783365502141713841561747319032116715319740911265351342102571386157625334540289091643950943313050865480818997528140710584285659454926076617801585417889437370843591340333848961283628275459779643003611010319376676872288395095535618100762792791420584936530521442177172606249332223199556360278625815482376511207203807161194521717994899644566128796779376754645861846618501455228046503374738258964523933811722307737803722420507705346239352402568696495983752665587988783039786573931718749962721494807773164631307102110551811663708737424028969675878584093644266804613068119851246722285876764030949710448931878878448443678382199747766718356547941575581170588823665532122403686068613962413468428774901359565496334346699563084567076863865558401289316199518050747390900626986333114487871231790860797074968465526213815497097170571899934913593748941183913054390222199137579197733266315508022860721316538614806249020237560875298630773479667048578238153422769776624528911156219499285062194621373297524084585638352547987889472767993986607261967323713767019136019014492555869875564146693368366232425088133675966140466815730839288884630674440059895450145234365456808076388346130397319124386785121942989373048708854360396408387978444933285196529181660975972608751668842084398514385924308350654751669973024478256731825406660384551742477792146305000729023804199586717973153466184381682881509253535564502950219749270478230423432096787923936527617638255751387430608006193779600985461420863168758011920864512941565957114173578308014734079540558146296768207160970514033188927611468810046063002054519164434307874241121352811548486821664791273089796763593425473246180298132477958413845774121957914460791030497343580804965378799103430650476167993422306689574286905651421240702031200153360559786333250185287367603310855111889081202677566559086792906872309789535007513232013747416366512928835017681953548330126844414560421421100696378132860984730026573341493348788987586418493408072030230551494044945542721177506190787302043427838966341242527941858380543169275100343372052012775909564845248758609668079302770360781513413369382832484014298192231555195821866640863950351625912486270695771649506054616764234531476688397034717993356418566906037520088069203695412892740336255706152925964645887733541574299731506500676925451565940067887555563731876291792662111414690718511985819763374137384409118978626152606227346453205840923115284294124185275978710360397660374595770975423694980469965129623914698721682848369477369672886373866166611937887553045307938904506073208433175221664403601977912733197704772112347890292542703889911455551934435313302328350937067883897401965319325309144295044878048312653798563045590060519611869095950540632659017069867931920005541216075342923420566524720938517859002044256054274211359147681912960796156460196951563113063819461536783093062317555582841781012993569349195013482426941224926070502079684423891203733354025574196949876141937636756272134869795315582871733936610198947565048403166366788257639620493980987783531673943468123851028767216709831399078067339942617485764233673523209842576575981012934762601242079826974914419184015531436023038406198472651515062034009159913161206383504452478703110938203121075719963157889630254476017956224194248155133334352554105017282669762551340678183137539504290093895564731786711211811722784695177841948952050284359655918802899013903251240056616487085324738516597232582385558717011727324225476747106265988383274138002514394859801241892667769683811875353680026554726284630421689044879968893894893895720957789783843844604337881202640397889684112702872582427303161283117992256029968045449082032585593464921418138493583864841454899147878252493852524556566242647169802530379542513626981707455950925031876994731217795479344269526094132126102000465714175986716079241795369466116254126919290646282674931972996545608573619727959470715792573726005500962210664729948861945857259520588953538627522848449557578501371670964708828440730852232033671313864814833157727833100716560704769209924067742153340051475554074400127940514687462853829709034024951048742408341545539875622960078445337113479860433306215946237992542752056409875221801017921694764767442789408832501633928052030019946522744211112361848020313301455682475315355282345446524690812587062907915911754951947953790986060957705989142785404361777943021032996366910059923116059376684700925657970790274239312895510493725554844476844804963112806736882828106579166086009295710698327072615666373675909485041576934234231397453688458797777655325181470286797729937113682172115924477085955246415470664867670188197203202352616731909830690300475857809104367109552960231293988239637598907551747121618900617021287563550867014330211765963499522452466411254853327463642188631998511341505566302742330506353300628262303039481989966041433015528044767228374054879945270093519719738672254154344633497256433356807206097611452894527054617819586864080455480569847862408323629890415874188097756582288797201561099457105417765622211154265962970512993583119127351817840575836112676533197673536007508841948661851631355452791197541555340328784278609966602674095929956088778509109716847177260370711013265542691538750113087906991010120429740095257455459478325676118447045552768507968570240256205458161252075430926275822398945584479378877893422895045099102815757189625314818130245664572088967447869997019259438338187354287314820237774760070113470883179775020708282664226195158379425763800029625666872153954511952972044649877556122053050465835015680880487172293148075350114053350651248263248687213183810806326100565939906369371078948634756756778550923031381179390510817642104471792907953912482552875516713843735994646893214982028239891508093138311885925261532760654728349397276957964234827118710318482261093357921299830241661185479820105309497429352358125489741434616631566277911761118143943062746792970533473774190038432668950727909266672608809313549400926731440467869845833206452321192716814439391275436707728354402419875216235558524725428573505781002758387662227885468082971828861017182022054781916453156296713471248922729466142193745706107033457039984618082640558788901190532877531320783312136784641571951345930183471580855821686718294066198054743247976370679943930050354710721755947116671052940114722320259802728873778042722045545847944700157645413528540018836002946192222434662368696748239391151513981533171386135878141586348632741350990334047018238497398674086697110899611315797808429809822189721284571627022944136140962832551178953184081908080845477784337180882136803485227257503897750359719724727463815997216785746070245991716929163537442743935031042079312445513465541274950929769223445958115959782227419120940968396594148826224184733676740310155839618678599393312090740978585172432346950455095861303289731723313012227397112656083281568261798675563162301569633332839574412233499403352525515453384991679205052655866128343595133663061811987566855085166756996454691870529237159403664252940721706350072478270739489868089034981101402950511536331889198212504577506443417824801775857499849067786681910661764756997046350087528420424517607603847962892343505938192265022174747295614389004943882061171009190919418034593908456386734905762169406208699008435974834110635988892224318413012582844801896529854558540949008593328408865285803461620402298884706740786340838821552178902667129138510325221860748065817855182388644252365334758586695691026454842107798623382387647600881375319827123948903709779743066797465765476257015707011678171150596783722641034478811132184350122988502943500864561072472689824743887215199076321811799258141894831188803516282523914277872626083895986515210564967146995270613494637304991792345712168883125537975553677853324761435091867225560664619989211712578892191822972503092663649045247740312976945961456699618135467099744041286257779856842810926407584082434725979680614646094850536838474315361141886498382059664397228393784242820522154104331984018357634811786136605655698725490757709034247612279407780985298958139949001254554293144557000204910269268352454097860648638075095919399792350029550331777511596104284609382228249787127157171891860052942595662237702518321560360653572337181122501164254950685290714893917412524137222387816320131334426892905796353227811905773920042842409670411429711153949708385759151016974483138840154006027364297263518520728706678551467151489583014235171158500885214764110214162937580431036015683703747639666081590723409707196137745018063953269351358824803301063861295697208097548717621287271045528646973102121344599715260223131992300850599859648423435712177050065100013887835978505502619842481784292851559593875888395431656137776411054782562843585235178752790650609027516932635930374362765969312339626842673868993176894890339977369244229832048560870261070289406088388681894693450707637452238294862235171648053676374603555407034073188127675571581358592013112149207949576559443284369306390337689273154572902753495924364412108903766519865102609231683579659115517410277608406704385080270752262872900784587001403754171370192554794853383233329926951603309807655749132845861449793724723102072368946074757885286982642757439978640990972967200312192638858005716640881711920932481960435184536017896642119540689872870176913759630510029665091413624538359226033209735594945652021857517971600124022839299183474566282919332217203895839466636549616673648627059895187747294510202253243455777593298327416227803121693889874810466667855327508706733263772583104744390458816432549543888428648208649117406098505499798647578075371344524263087778664808982954513189462330974297338790859625322499279072165303847338522613183928547181793997519319259489290352700307484987861749535284563463643313721038462969795659344371702561934382555798926700964104112037790714401617089285223359117852325288950048462774707578732936985002044516818633158428763298920248352602498723848500842542539511963169992387392234087686646289187414586632824204635745190079760971410496138336182560986900572965192578394481911525370493726679804756597747602956254188408653392033036747964425153838316049526999488811050619605659610043879515643847056606864212226095748037113614076267578878708349361783968348602580712174442381348782904039124280069167905479209180741566265286241876186792698466988051880187223994746186016290546258542977808814463724748728130366970838644692405451242209864744494084258947228892179211287910165845163934564133443332825812495784889602322603492575733659928421173211875155863042356179730875866398544536709186319775756704328356479938993564547852234492522009211503081349646154655190101468320691491979065118018394689620366153051423659516516142317208443254709471060005271334571351351339116739242561351369440004051523497203392554657503674346791017548830572347727643440338383522439052627813740216556647976269172621164384287789231654648242190429004976330766462455423773498033864776170112426547529116115101470436552326315929324468775103580521435946961481308559068428070727739242597319427850134478050958637559446757698823890520237981000488167457863970566302254216606433800645854843327655259998470078496331616014063761726851651271059788586078962643607957352459370289493314300724518289666577373081447183463671888179067965269521142295155557885687206886976162295370671254579858903411244635906735583440634097547421333881820362087291688092472012584799939382484324121535962239795508168560847471651507840261075580085977752633119829791600661780733508705874388222291132828368205638486290203273610077817375314145690245625404058146579681926605711957817559926107085103026783936549342383443290944373334448672491987573138149966226359483236699249449528124371662832905438589472270590902405920631174222261733106836691455618180208059030724909189401007113135667656787090602907980847851360807681699782641984093439215484747537157888795719680245734634420384303680886270246747291959240797723256081922928212069470648788592295915249799718978631028577824319289327371724210120867640964928203242422759690097300178204134600713216557479294698448614159291311883491916281583912993162785503538585994480590930615555900552663242230266742458282865850450141359721984812986146572059027279953860859057877579175707326677531780745240244731875095106961589055305594609883700890123860076080662563778016260836890948727720928602979727718841560274363837401717894591442038618872313617471850761808650184733365088878051593301143838780286637349853571681542868632423004040980802666045216649116816244042534002316675492087918732140954821547779702867179542129923238755941799069357314584577099827768972212159435977002190776000037757830892972793513281499327399568273293146248635506977958857498972549769702308153797718283566121748176283531884435660578014221326847895368753409168097458909673598375155939437849655723459877547574587964596598923587824236002381641372357707583110510061258085757249261068395489551494039645699736017265866708475601129436036837845001810611583429185311251167169545722780848513906000495311057179825468536120635102963599029772606748603932151048016830348275546760799992031311885285873038434290327258840948195265035052062411065939567419675295228456431796246349455877619389980906824116965166185934659580449136863398239857637003385861983329785225104960066703710756184990909286878629275642975791292298697768975055802811986293358923329187718215628242423439620818815997740660338750844961323039489511571659891024131036792735962638052678722522405865231161706416156483746141898274094073384504402300142992845448982641258014073462745412731788471219488627241379960922071077649654996219568535271145566875623622174878949096647333248746852563864408638731538257462045212565610704442770694778782967642887866032416481237255714273959373653730529063848885725444909051810679129682232297699581879233970354342794234543865704796770181392992793136658283309534408492422863637969868585356818429582557962271816411444351585846967839078953607756414789309045464941267513081946490883469658617416038248093835925878687161831931394651537738481650736416721365160790560022386305236065151098080141834315166420801349999260568926497532585574656534703396528136572796704719405099531352185826196542273595016944284975515823007751059927427172255084587518868911309847879728112156786996285786767727496912868509203840137806562855998431805684197360397849854935147403638576245264852396949316748318866166668928770158020656093900258939059327674047913880129365322031626254432323559646856422168329916843047273016295321404740997884187857395653570711411425062168551469203476041733352723306552899686433235019909232583470619079460535690597676760277577669571850565089960390795608545448011252027575194408185700635271000327316542775464826818207519185301687804288265426561198286022304962485711584460337308687293048990223320081165915007046114136921748173791196225017748403221075362697073544312975520029762798961997619719175978014584099469589181369302572101231690872850615633940459667264292793576478055233519972400218853254395167272191285572959979738462947602960661672590501797383526355811823448457877711537141492320991685739302856705411746051330017283880050601203126686753428703505866432692191092223243954795978875045070503131787629995740555055219029710589973221176669049493331939565857032271835972593418021730893269532505397555768919417115593443247971905399972397244491913831220104522621287749794309235306832362739249845893596085542802529225770147685865611611235317483348637772507349629485204322235825177454725608051351763886537515423117277555040910164068383801391871022128573116283848760323041899692122695753003702783215370774533374935239918438610802389461605457892090798267211841889140544417708199334410026905278484362906941938951343818376042260934266444337545880901094800795472730181436450852006963079964376005157947280390151314183933674530406020134211366971810405715632306048935154278761929480715420492428562184261414624989193488598344732439691947832299941981202895740653998548555876769847388366510971453770546528811317600274378404564574027103206608020116700406054430835618658588500428863992224334509113740106535306094499051453039606581227845975474201817067394196447405673053217020664579244450834451290094595422090339475210018774298569520125717416242615789474481900489957119381477707160145447081483894083790516047295038700224324636339062349678454334416190051172724101437213890125729247873586700384364955421326622990290277567366708325577281298830158548617487537237480271607570863758917075953170619277290458991461952168966674325061295335062812224710070708838165096719443760052388293385284254993257050277271396098098564451555035639847464929757653501632908353421820883944747387170535539123141159270578245407215565909031277305360261090032278373699620693857283571052032689982312217235171079296577120383748341597953371967310610372547462270003360028804330652522844652410625645491349145592821333550643466883773865850786260609331507245327647698640307125301356653396126683295178431398097109034446245651849920531518420721904963896570941403181511559342325363706880780437076641713538558730562279640039007520489053904331747349932416474013294594364888524056506934229937397932185715732030058792117787762524687690196580541236222138680206340467966344995262360101053712206040464973196451442776749258572914883581373165744940429054994595324847673871808917195152630013359636598893960639928532425226906163764783965042425921157461904030385915839928730800592649087702056462330653243568523171498668197201893308561792737847788094187173833605883968688966070835852741616662526972145209592660232071437437326480626881125440476937547033778780912013974253094884119282093930697644841811643898265495698013411636303289024930472510740287314700100065267043002895744188873227714483957570658847106036072998173375263678814770018908357547842112073819097338935190058209438809901421133198202345507137715198369060781052139150713834547777688490311117482082573954527712858739125166486869993071921599520559256147040606598593542796268585240302338874036427314804551487739194037578650433007960685848424903659991043243879874295527704891105576245844300237476707764742503275523414353150369556540773835985055601264991563579699409246376152191439110353113849341306336517663019318399411502347379267456179522746783471356831579724327523357900969744364109205069075272928345282377563716390370650520006359531460820434870148707583021302191638524950627684420620905462013387046040931115385446319305476845529391619293315425816410309295776321589859158277786785695559573409728083411082899648306557371164143162396328689815227789389596766586403280982311343289987194917992638883760550689439455455154615383760737913493005982935278054412961710449635243530757802944834374240819254772527689327227643664685354238330687304543480342864905528360599539341684698479366623026873423649577945582925844742485930412379667163206313277070087162247839825850038213578392218827111414947601173120724486189831646098538769196408769201017027371021209288118069073761598615443361137191658999852956411549026588185671603485161329805782071639844065241954686913256825880754497660390982726543523525608109918037571474938603042782992429571745321078937590230709122137994282969496276950499440458261064679160018149026595332449904441024387396715932974675730055228677585719792252951863082570004958727160794185709509465821426539294975016313392710210855452916043089063506898804569739960562356130737558218229588938831444458105633745703603212315373369578724441702270730246054586811915328280846496010378396552782522925224076823523348398072330439966646098753374487182607435949876979849576087682092069551255734546648321008686378892806559444573276606079289270511995747455821401243523580436685615544120994572784634294236404362694789995353074936870094861157875386002896688612301827106372662731880609095210074544203607527929934966091308914798963288496366357855113852170696050643532195995333002619841005130482802232532068783926815241741486649099602088681372052555521300451372454968254480196363333723876026772798544966229719786254898070669537156033501835414563857351229875582947170808844156535438600668972861150040281245989741229031162375651540542822717292861850870963821204528004639249036041390940430592328808344736010563177323521539299092344123305672305390245129313173088845062664280266002757108559191565959360252919216975901892774602355665386746414426894369562997522424082091432549572303888264239931756205812864767900110362600839172096554325787013470023132769328842994281950532213963619498317612325768174709346821503206151809648592900910596491258682520683462941225154329485451640357732945030039508658469512092387240853593485007960232022411463795960208013677763328172924400097314033562510433700761532632428841981833361007787141953737863128526287852872282141449050697057610752122239879327061665750650113472870101230324450515577969900372304953683076808771816573596124799992760687401943948530634811150170540684141703838498016064840900997963511700960953123812441110085737764270553852090354311137910800408903357050013228487563098741638800916196547129342726239490534242837584272033171085241942550721244675400216488143914373700902550687322896742231737192610006791564071600712411864381818324055725161958894897126951028470653544317185504250668204842892070119282075029765832794661050308992297567800131288006072576643546048344844530946183236266254005122069796987242655061054638944902038284601990001680110952426885599104306774661793755199176067159890760783048454901279734281527074688194517467491562233536621987775009738300216425579868652946828131458540032162309726697549272403921890760751995530493301803595040789340514311789325425612651499460211845186055251443207129944942740422016076999201783490117170808773226857596811757189730586676918445150402396664382184458397745033197951776015487213509330181115325221278547983280811013423217243948268103648619389046091650620846975577225950822807586251324529591705624862494835861557490920429872199809556114619038403112415545843048110378270141451622889179184600044117676682035451074286989277472875077162169728551419817355647024552989207836157299936926516163134755293234308439196026679398549050371661173491429848417041669841517797401709044352405673941952646355738456066489714441983083063551364789819906631209947568249612283761968482244359793564790497132348362160382108202635691756162851093204888022013439932355090502642825629608318379408879131346184789596324604618903763680399796740113329618755164661110096337501030938296380952944502345852691072093196377275111166012216679389481373492201284120897811858025320658743833618512683679214190559569332364462977624760469502029578195110001187435233145826188155646743607395158067137993304655956560849390712640332056663888971157963986039416916380459628651357793596187844839246625549189729400099613176954944587319118090764833983654982196757069173080245408420114588129597105689956554854434818836191810505921848277082084654699031595628549586389433773687460805522922489008715431548307980280663867971621490895093351683924977200780973841679024348233093995455998005298882807314399868680772386155804888127077187566860351137993774232849892272110000769580950635999103508904434292996690196628178877652093428576710507886479872189794776441169953614711156804408344414424251765588450863692457653416344320091466908604216782811584898643850596026749995271575584897515394297196147075542780178745808354988291552981166803284650224216219789391832761709796175945654902123241119250261814068583143096065228653070908733841875315474866561535998077773948014599147352851494854550501556249697187720071364767602168681624327284674599123094863000633952816303491312141687622329447475237743173459908686695775096188742151206980801767014967996559336328182580640313414494301291158262725330599799489360798266827330969636270596493530946634990316711612270832755107014849899830451255753321576619343784033201182114671296740695809821921423888992589208478361999165399409845250762247636542543305024622662969140567843877848621663332149068365534180992577131613577718306191755553075983751497891081966681530010069086915629806915650689160609006885649903118759832011583258227248963162869238189986570812512972046197661865712829781714323792535645499527855881552007739914184490929228673445447164434966451971693898997252258256075815744365874649732838512163072960418700638882889873979719569846035584030818950798303028598970360703605218822220336691451934740280325583057875932509915641004062180596858893830313698193670956140996138251788878947093940834360843523005748320941029188889875244744472001388286248284702875609943705006598269850576302554033343581608258653674541235811215351811741497435563938469880551478061861956566926559233916744262785123773326258774742275037363711665390195788714444596285159975896336766050025677299465403897463781566381706215216144078931098890571304394550055857013707448527055657595316065944984304910346606683764964565443425172787865291718940417440413610199236025259618017941002295114934303272739024367084037082838683001335157773701748189940208986743981739079954115147310228640563227791861279091023694413165503925031037247486270072872043220555495722288423350467879381650891132676888013540402300078693494011245184979710847823909033505617966102893686904650642651264600232031246512152627144298710990930344483813477470759445372589244046707381375042045867334055714474480765798705224459573197323399727053949622913219252702718598118492657293441038232962800402657916478742371993691438387051582377975479246429184293724030561211943423683727721947850138418763745223476003967665901499048579426120295331459162734352146579302561196958649402582522256242497292183568808435481149988975080616269775110671379229123313418451913633276263124620525228061059945767802860075585840166123206360376453520781045918741499955209794097617135488155007751629164167009111257999860296475561891971825693319479695653104323642873913579941235209392214864407546314541074108028241965179695154115178044119501361881249586684644009107422341645929396371157418379581702548657903415887570570379250293873579572295107489025035739289899517898566823908284146471658901650180455583118108301237434934248488713859848117307148102827130065083917477643218455521637356341929126424114978416025426586022009962221313807606257316054367217047864846755008391717552930861458447633489381359550317509199945407738150069813616858626210838726985655873128879851529322921990184503714717602372433517135231142053970322712922461809917808504592110610193593610691837000114408462475673553567172448244659220099529523519765071812365618122176772748117910864172085714441604397414915035238649130151841846201690928180344232425837206915681532949013634818310693965806877935822660310111517423617644174267589431033117859862067718283177143464656240865514634246753702740664741085083551665434242514764509537811144627558396234871394758061464215452415028812352366161084169928058096187017091863934901152552585395120202789051001020730103168904617995157577266639251419496723473620736122741853287329243888992528661472041975444819234132871651726302948001193041500190574931975544650734277929943336609332717661104096425828651789549167811944781632319579011091882567899872969633084160739656459807292414134437554209207924020009183433598783874644492894598049931867564185798325365864236805779220761549495166764193420519297867382112565623149615097832058982329119739994751500990641619550944100817516606701927345714258102539282699945678259971656262917244620415157203925387804280507768439106604754460164679583905725823106257650573802910034239840239721962778816748745810625827655554555400937242329748477539556290032384887769858182958484620800457443727003001252473886635571070589905790940164154618974859459379104118146433748875641739438400247077297826014915467598896861651291078976253981283187377977996257286380957334930904817582901179912415582132221131327076095394415928950481701965585303841040521930931982669622440012195632025553734613169972057949764599712007795285202212452208974057238736871014361162292969398525546636808158652280305804431748098703017814638921615084234744571496938779761222415211029371888416263649978702525478644553449969093237253147992388688457967507108123631269769559518580791375574345874923523080113271203718413882715133749395730167815654793707322832488227889780132651578017026749477204903098509898565371629450807495928953647070080698556733898369935117431380902302272708252176844929049491633347814817006476159740958652989425908086190007277449159067745751942555315280350039289466224702571025480444735932536227937347256535465383467749447427948599345842368934995647798181549151313284061281527162427416015725702751554310961858967699841670879717040465889618215633460136420397575198887139195803405969179941186430531422386977999656978314425074415562003406785471491984576352086979517048500161865550155940323890260872753168661527513853814453866510639971043734439828989878144738000525615971097964078941126446203582187519959530916294945880220243461574461166690452012365810200098186931665470190783657681711049299032001258989199343365551557096767282524557125454581302660276049179356171209522690558485530992312251496450170603413694210136118721453224397724562290821987243251218616567128091983503822991151352468918143880230158044637531354718937024619862314930428742124116055874159695988606869288662265656558184228688298362814431173254937241606937621185279945031417064103638937930319078264369770712076023911201028104039804747372960006227466412522441321964793953376688888127786817699891785101354626642864979294814221169633485940239952614832954290437359888453726446463287779500476967822325563700510555930897649068642438507643155879739015701074159770037115311017077707592835098166403664993990256341687527273730268714025869484595146982831055721801155632519899254264723331555967972319452079867622533370889576036468935166708776539586897979766087168091900102617909097081038507600466898083838262497276253837830256677627614117358158575958086545305204979072676951152606390144827521938138665460801684508242140872417935531850875109509695388784573509625409035723825849784727966684851179208658222784187277927913689712166571340925993033748303395615716656658575397752306563904853778640225039479358022661784138406939598022153223611535035606301098601762597583521968116077281832953503657093171506628043719757678603566315137313106442799176407939165843945228686054725430493967173179967356434904794714469158226464976599884749490495199840725716138306080956779750272425089103657412055305256132503236488908497983157999350612675524217329736124203313229731642259017731759434803051959528654048078098660375416351476360010095261085448236817993059186755509381293771757893155625836405924846882765351680029338926099926207827834717925709979120327045548438667037355360586152323954041040190252667861539990979458835870174939949557206775350734172557157362309846461753285250692040298015095764986801243582723239559441730904557484676952794538348957224941948704007311008822013594106619450925417953493865669295028353893677806441858496559404022026752035978985449625540869657163798594912929857495601354485826705092552817965272864696046304070588537041508810210775672072994362917549934493077569869799781903131639157730502126682398306589255058898192493137631762636249865534088688649109382006911541553168874806477050634722730427586234620060113802329842934170920560313713516088677907872583390120393387406881272422869262864407365087589513054790944831631253893465696367257003795631536760217874916992738360537661846000115182541271051764911465697050198356762639569452036919721305333844478221240457700089845809149250541440358234879495169986951761644886781372988053202148106202598904698949109197987450405802387046052342198211628941639222713625999589156955348468340679156983851062015838888374175879809928492302685975130057135479645788128140008054289316668567786224448878298144981186311058649218928753102302282266584726761902636114295164626052765867470363882405738388718761437485524870180824030360568789790636674990325623297169430331602453594323220333349978275207328961091129933255304181120668939805524543247910982945372618946949919377265723867865229196505927152040491786518216822755236820242270352852419039105037451916766233859675380366470693647170182572327472530540683394212877101471236919157257188971236806696341260412016958699795005625770775471032150094079226718797815776431797938561099223392837830962322877818519726550367786628000397072816813930538312606761754296819101810205035271924378690135671561730022463339677341347127395338102345770732828210128296538361268456972560915186001461425003978107072910572578839658004168274019084413335629133282069064295392792942148755644468256887486797183863751657919318668974349585819736636647478241822402278350954379088685537700014832665267035796319337260169194267261097829672285552390358802817886401247443864493890283588424563984380207953850063547732820822038539899533874346105103619472840727493094361225043807030579295554126593496682376858080139622865947491699971989361666612272753194071567964636806221919441620880037113339493850189530438877430704138677063067977811935709564586582440616430178012887958224156541706871005213033776270617822629245874021594315142731648610821124444768859042608501239928496867429425322088946369780281839784522304775187229358547256357821946952254791994319092013775645935669780353325156111027336527563098741295558525035778430886980677484526722361235813639033109223672266197749607501579932414832697359554985181489145723984648401723033639478013992014789888401865806006394616842859885265875063027655778434394367018013936534537042500022987759349676253403241482067609969048748322699265767861174620613660717181354754252767872280750491196114480269550501346765115788842309679602368533825316986549100980589900378644736386573862710131152137942777175432672804181984344027581518229285316788825494302950500842739959224708092737567115062895516809135956206812621950245329357769709512185056148893193450513671034991226286944286164144835628172435691029694840821053318918025561736962255019043228990688633503418359110912956046167853330454524057385547997956236783727471582333417709713067188626838347523091109995577819938199617792249434359454998141699369876779648157542626973795440538189553293820918808565564501616400454967986752141802779867500858238742879199411052811372228241627534134048026396753208224235236336548355306885019601037326228876901075114797600295458619344956243346431171465494045872887000489939078234677579145975492331745006261074465841398708147834032047200951823599532018928230249315328385462840919167697108596151043479280120730854048600034853659209006767320275357264690227229663374055016478301031847310454568772152005760324825962459443049169973462502294423114366884082593398013930878054780486162105970089512945057340640009308859645450396570473197725485767421749940989531236345684906131795450768712189699357896814937208769801784428223464331467388703976453669967518454683189985594707541029785037771786766366730379294060130319587804399101974264691813924282233974139885468099124305335987927581564189094545463394705372395198125284711076836672819305784928689640003723643067563795380549771207212329230486319886122507958393484627782174403065725199195159015444443388704052744991544920784307557256155987494405181456356441627904991233178381690545907445382380316904643001462023485035785846026179854920568793696079746009536895239166474641375659281609277453865112570906459543333070955374808344631556246851510709079471418938881435209782523112746537123452493820306529363990051778338025507520795099740123848533320792466472131088607253663120532808644791931817836886756646118173153543954233815140726602423596481928555803360489651618659063633360208010328206468660407470157055931673311259886875932155086878575520797663242439125573596341334032661459725649572409146530470078514850971666932385782917908019197962437291418543458847300370102173791808459492315632640947105505975583317973674703848958196729559752387486300496815345977177078131947427031520584793570766012732301283581879892515328425621084585441923987261171348915158809237916256378534174299107224967986023763035851605041398958055653570085250105532080013728611806427930067713830426432847793962434644157313924399930726756703294434755759321838195236501887589646580093826980490408535605910021401632749900920724372237273492933369041690626184593892070410371050458423121086628801225409421856612873399739371274657291401477060539049211776839618014486603255292423755641826094018642816084007226844567026495698449324354956454288836427655624104391669522170106379522215660520256407776348782004089385697323312192868325710581626389434445537360537101829714631748592422507083617619616889494760086551348181523202704794980983640530402963347296698354116956615730220290496374824489839381556643542968578508395511931654218642492140043714455639048496996790705910002500680237762641142791708913497412993076093865790341568604106884397572480822231458446676818631112029296234881579071600673850108960440142662788604815085316622303633507893102130753180590201713168948607758546356632693008106925055858102943651623568370956529986980612496380138181063317397643860414508011988256334025207485960087627164940761860180647022278546570054696095920109673784582985956844837075526902897974184199937167087497040395866022421332982044049772153779115203021626413293000240994446956550373888083591918078158665822984336022200603645361260168915939421726344922820079202167119739851532028378092859835514517893608351938963439302989762237002489664157494560579457431607160187242263003737236685291403409720296501723649467998654010098539082735422092673800007701527159323013712237042798774234752327938330957453368085754999167811451694526259365033459368463442069766890473736912953805431162891372019222336995619287815774191531048848477474691778021013640369121494983120178916111962475174786880813165657634413056361168198616231125764081483985011847441682676432882070323162242689379629511925782022300160724381225828686567768714952800539786096687248003743595762071208192476929949638139267762418881129702685688042831994694776831439131486473471185967437075109882569073653445266642209361385852447637389740687613448835648970331711051212301972170170514610533744136428091501659524218924543331424092135911026572463481144342422045271538146530014270432191229694267634582617128741271223984640652190825557395409248311126959083923723630489910701463389398077292561818534525281870658387211200361536537510528337267826942827924863353821332086955421400962758800762794615362826080289222459571383914610409262965868215084471474266287262522956840998528534797087509159105628715794940197623554378511915303740281382824410843342315272553940218291197598136892244333274604394646731623869560242663767974754381976559429129654185449001709377728531396990443070264995292242125488501431761912733622465958613350125615817175820132982689910591222391802704532269613845519933917581550816219616365159215788293822279227913629675658949126351599497151473034257704582393832013306222260470154771037664491253858600810684933787341941550976912120357245198229437106552160716960857741019022114678880120738111781221961288076478030639388310252612906330794268696758267544596005268086921637597221300231644130443168205194346781549494173687767708433892509614849888044179386037700051104805172807738068954881004524004305790108673026931122536954881710941071220297150906161321295802385734367975622091284542787380438171695594654261754068176270903975391521732059836098723560332404025480756840252287479425646003844937315196501967928985633703116546364226692766056793589694612634939220391474505270927692477339262625700195226237864465226471974016458655414258496982468110079962815222647488391591015902275511174697262580993790194994364532281100253737870684479431814388753218512778033787904816431748180442549638256472067607043406681508460606191134443747228560587848929015894624331264677836238931762124488747410180331803288869985754984810293048548306240855686653853864553853723855041424997706040250995349625108542755759208668376743292929838150527661658292781054950064580257472680812442253201113461383864664627651496986160558697304021222483711763421095385062966744122491026424752768101245751695232774172890836580824990635216275461895546955412572176527896290441138354564643742050188976205290178532409714640750896392165305953805817971499042505820000814253967905847180286448992031612338263224002807237465519162518171534758632946396297283229729359445572584296163995741582918290137484778044196940098320069325818016587633598609153936647851016720901707664597000716057382535133243371322415514253160231903235567391956175663954281852855289091628410047343876657521003158890550198591038407292261693700940171821411170183685415484982844910104878693933477467244482115401921387171275071516970630040081147817253599529342484317439953776652962839852280032787848376584797264846383807533389253840359626754906334264777616932043749724213906230586462019009822180208662326587154576564061858702698060495907203230569258389637165618226927119368197162120499975631303753033607752934582926053544023218987978525488445625074754643401841785899246250561575804637145607327107944392862585540315231436884135341888957665514611129989832887796265724621768278764087534483839566030319549429198144702471239140593248652220686466296886550479813031211528914544057905550798182475729124275247510720391606391104965073071224489943484582938342949647515128806218016808775210086318310016585119734875996810629496070290042419681063991188556283294737770721930768268274508372851400381547678978529414496195815741629129935473704145277572279906517864768725025143356406712974479079561979977688534659056410851845683386225678291632710394830075533642076601323560365153082617756344297588015511827981443864338471607171457495877161644737115127616191187758713539190112541897632247691625614302538678132985693489164607584521916097038599950589493101679080454497004067928309566422790015228202045086896860741762380511445881040061872735172726106977995686548528137030620351038849938903350299198743315014169756650806640170681034289557897510381866891611721597554167044562927007559056006198686810496939705346614515899650021949297807090568172856664458200971187112405326208669939024297221694468874152409337306035521628861119351612740501865568782174763788887176221475358174082562242156802412649235969190587560264163697260679052203854414595593085914298755114772604229086421746922993656371805088570661295335397896857270774679887881942986494286782216182325408025313081883900481038558106844757530991643850579657950009718330380926847463659618894727784094054483324355809349375445772709579505428057012791266237154482657069441155948017579796696486312249877558592434217737126335648301266897579369623326364826457056625957794626550782890292650511135892522551241674709423487660364885624610835448200873103741432959472594447077055729937401652057649386263067921583758257360441456567829247812188850242120900095392051819145218419523173644186091066677742125527346637873818713025007885080129603451198073144285852655948259097557412754842971241302750870382709904791192422576720792622384903749641098645255176156908000739330399671885533096917759772246018085062883363633538932733246161012583194142380391342963546052467445549960401385624054977886933086446221405456158134569965776627346964694410251864353321907425351044101621107140987261512434528279641540352885153681793571158170354784695619211505023029937461378609274896337547867076334815149493379593176261694948626852879182093081977578001726309517638753103241456998796941978491578878877631881195646834354387795195894989612881911713122196184685400031473768140389668103538878040792466860020575120204355705548765805584275179904026699007106604931911954161394900274130353922539844023464028921775693024802021030751011231145334778212286294032881989527468594798898860146219240180157841212466426917021595223557006863052430834540701596994277872941845224489567268439498557640238942496468073921385768856207249284004949356258715992652051240738321948143805297578064327180200235988965102736468920293622667468911027881989607460763534137430330950046969790963955596809279655938121710197579225757656235974955121356010118382177641029777917761321151787665563000748372281808816697975425909494588250368272945320614739066061069682996199848310191718666858560834521847875553261807670757156022955985841730701171656298247213210579977794993308138275761075427478255669973405305200346579990941655591627010677279932896884125091391776420601234772428314033864029471775523091189472898253753247650534900848089712005297683531687136890352409883543800191226814950999851671143396046338478617389065728778321148408563932383385069006725024223997146068092554150042691324673551088075360366398769609831020794453060996382244317862242151943059796838370974200879160050323722957883707053192398872701560956976828125974145574332095266536458848846858980088898968736108822469890275923471037186409912757726807902297835080169656897985954347720764576727444230199455924975215370851113437016975521839720506271814508336750770338938550592615710030822850028558848524080653543205350365621861118008326122457346565056826960152464010682994306823080521875294684374974780907425987979554012453102907301252516962727374470413626043408068036994449035910042506874123976033749225183936161064925058023294878949797048745277299714087960083023834956333679411301766674708537857271582008004426489291383851310655401379811698685082496967396329849629165169109405148406825500707801306798119285324175237339153525731846108216385798618808081979820292831972674317001883513564808229400259605802944312090887076986335497126564131936361033398152811034657818725558240504253728161379972691242376534161905383092218258081525222435603630330376061160937648348898144881277316817345504449571696850189835438618638277922309551916795761860356728658073231364885871266234507366072746537652198017166128557326627166284189467386359539884392885452307571206923078139872708481592596674188788220111111346693867044739193668078701974680743717926330417436610522654716024203445285076122547189224985374318778062644559917783881790280389816644708756512405564638633026812985545878681889692428668109285287425121980497598798700118223523889388070071118193798661778527543170451963009008878818287287272769296544540269475676740935043385446357454755110110511585921801568848312162025136540563205139102212107194251262853310297951461040203271829398469132948350996777555859327013886185490586373244575203632581798992391238300320790686114198711804216828926999034577161415974545313477233544669306046262149562047482614526653815771690263153570379376955461256100760702141763230175092850492204008665691927070980501097538252338126652051223113279570615256928571276810678402502054379013539777386857716152972372471865602933459174657138523905705213703358614094662787146983881935027606398447777846721883138076864048870832674863396418031812162567328279433581937500496747178829585278766598656343340272540287679181777079041663515173493449250147079003317437660617022277801935024382791517619704627030494579386815749650560917205671280310989406190074288426889755966161337246835435812558524270956412521605195800833944129817329802706432979925336551029260745389240924210894203213365180417062897645943237515928904406163496787614970806836355349086417108031172669523206500680128865093446474853796898071758536492328053242094511308357086265407639531407390412250904581495959745257789288367230531410287083353246845841004142653002725410091333813128483897588728868806796147133123380298628385201768592771253769610875020587394742059979656415100145666562453333042551934508418383536881336810685483333584639574133900366461387920616653989328412806602283770384613657712920263299877022981625306873244556367569267933269501331477276559360543877839114132272653664303479901953620749326896234981609431540608749576170799992674633479249216225836271373732657382757050686033821059471621584939424768578429112703945236354407555332081491477191857642269284278548521870590061160471784567475431781421168240109278937288997585446190149759207591126553190530136368402038778004719684950860799872533805232162982513610644947511413982487979878589997623943392622282108629236324884463498351903104499531871656257759166154557816731491435751551561004468667485488621672625901469322141028518265407275771723596810691009282663482209715380269339483706594604739649798041423823550755343439475025484723978502773965697884505341268550627786207973518893193146608003029639344307610398974929070950940335365318392358224699280971272578588566319916711520423245553469571062433668388552353717694846440525018445621187873795700024176795047942078195177837388564735087884730285921982922404820345972638797072598802041698200253555270179327087474136188617068270278956066099304644753352703342759780131759790770987877223937135866580849876034289632444073298173876700201568545057752189065557467185910542192295004019354010344621265156936373040108459319149239715415662973024303637222291428019479307841446018114131900141066018719896132434093947648105623730860053254536181889247755389020952950038067833757957496477465843790708376719801882321569294896211146728082190910338843851863087077392626474023404759982074175742962781773426310253371660943127251229590933258761635807907336000937100618435990509813348708514773021499151418054171191741488443019953180924343141898915045493248903655377230395301528794353973600549810766447702871174266613059601951989312447923867370439615387305562833633132666290901806120245398614906261636522070980136457848138727843343968099705941733600840907096466225303435730279245903374145804989100807773926527331768955706962158276868113173581886079148375876102709708058747663451702611012551831696226787248261930034658169688555189128741531405785270207262824249287790371737926221301274064195275677636664089221169695924153612746746995979044139880468122581456353269455123207051101219427298520342743397419245154831451959221618268002437016682398194891718051545149848514844328770950935795257951006107631699551727335967421101277782768467963589718200542146660329657996898892164280361117215374206554086845015740539930727056005130421008334249462736269927438102960991895323305365725192486217508769003105971917788730804253578875252313885292517873817525007288545738105282834177615581331943233414820433859172935697675487893055684244858273584648777939370243517390939413437588250955746952856009788823903284583113709903027842617815339510107808203535625411026509596672885736588302664916716825863456784291023073971449743211614441091585408119285957513316640424944762220518846001648162932512553826473373794351239201257590948031991077760016156331484463214101598872811368506453786644906621288229157223743136599185345864165469905370975150788092716156282083930777977462616623927916356404155205818663801161021270037667354866173530075480475990791838324504018326393350947199845955839558785831058418396532443975084823852075868300605234411639366237269427190780217575511176365128160468797544715606893495474632459957261543432453233441570285482990669209201287867446493276212524615767863035046576445822960591824988441151354358866920380194016571140745783362336141302149298973722029716176145892840180058184624389299794311414095530879758294102190860635212993327261087373069546177069768534638384333318549660875323991941848396519507775947674656683942560360119888371496022352887562788934503516677393994190141419739095855566670148606386246148814173931683144473979903956296972335401173797390194107744106788825253624170610230389777055436026892627471504889397597189929008472299939938052122124784149772080579160180801739863157566039152136801052457970107890439944541531709397424016594935769701844686096849446905737459527405234903405628686938736965575426474528792786818699501035288126772564718416473909103375218533999978433777002797611640240079662459347304175190771931372524679911473220434520920452867691654707366250468596706067195021898640268945391982897814274050655352323127925784208403668970578510549754907249970768261941836474693843259552707615504467714538605987509233259767073774510505751559496670636474643389475022405710138995694287673675995797100430067600710710491918256432118150102178378093244575489081170857574374134417356642195164520924149778683059109470066046471483458345157779833862539624712487817392235376271355123601516151064981264273295337365895871288023143604126501580319478438958303386437141587447590845962722714277819729933358906871566897861516751691275933244583123768471600004852775197752706693468932524072629397747088264312424136338857127345477192227439715892851885797700087422088735518401152260642961597078906421557937397592023049929192997443364767874723430608532156918991009915641967233461874949170481061508843199634664672806050050177818558659596789518354010113393229243678042035295023293220916884322242761586270639411830051596408490421546319402229277741543559816902622575581078456961590620346022872880685207102581627388918029075570902473661501575223990855979880663534973261235190099677557063207423956129395918696897311875285212464290488830252927828160148520644003971609302899526876231285747469284098140679821285910967664968854425001645839129521192696656228249543459811614127858673614697943272386287541398200157951592654576198570969202484214216481676920991454011239818412885661817491672636315008791331226742700309825282246459143457469784888960626963433203705564431077297731916739153405383314017569118946325222897553283995393598341973224060475701361682633160683730644669496456751273101690852738794270582645919149536489072370216977652455124076136302879144767235683437371862956941320402820087678761860884530537200912004028288154152408019703630010159539366747659496732281044467583725549158190203886255718333185569662541460059012730034635998570715847519698636720397571277011439383684649921546975422427613980526773630049487878802845024460200055356517768004393707642529969420575306911199675835212562333883983343273240611771625439806747590632207400767700358611107188052997455947237364949527593819292398360089857749250087986115388283555536062554537901965971934977336729857904521525832342450921029968018838159505361581894437547605672147872566382735232927294140918641918145145668214504381877914521451091452234757944430245202278748246744428869892347359797369125876129629562715824183709495479275858638937448354904422819581449744531908866771759664531741289680915149725231482283665809085120469461353899033641740564960907364048977340619752069816836429076952817921477841626170986041206798595800259449761043850956179927106247722442129706661514217892656918771263849187094936038407423322286934264746332592733592181578282583780197371664284900134372194521511797857227637048429964977994258382936486011107521427714055240791882427018092548573023643738837460087742065458627842372936904550780129733285996656140942611736788571010192491533913709312949314338626360045476042176866376051581878585930889982865506143363581657475878599893425281282737334821727763827838880049247983289975395335234194544260233722806660958985332491234097619033316136674693070822880803599863071269513361718856182656126566381510211136759984079843751635981418118626959658465941863515935462763475725908821434643255662691581180266040816831813444732977684729404254252930492467458280403426224032066969686755731146061491528368153724345840229226015398905992877382903832971133866669475134369106252372430151023531550086320457643083736676753983061747425566691694755690534464275574775974873584525717278028162928003932695936485531403001534519335210624850560061280893572673393867939732430810799544385367280575094355745347763061043134438401033037705166740303496062111655378724974483009246297342558263780751931199393393471991299925582554832438689869433117494250097097468046481155745173749285507538399591184633228522625264845158053025443378820048746015934585892074483551849400956740510600051355486689963933076494033447093393316702146583164068500027393451683017713643599172729834148566558470653784236741772046023664232616795810059034466247488722459461959104710865615755051348172890301431794575883222134764745932081665556253550920315017422306053511352524245785154686208773264184476444675668174823094509354704912415882009853877293353706691241009332747289863154920670189293125747106774406063496199891427407134048702867552357613845968725693309569546863947558718399112602182621293055833801318245163336837752406273733453910621924965836753083606975131148495777628464304025680889086827364873265925461884425058620123814599894855138031830443398326617086919485592315243061944107740576065235722290115230727212227734118769811997819854927213194543199466402418463269190550805686569564512148702110241878826198896388540147349814900489429152988723548624556104672666878545344752562771351542454110431529432968674392387140906867017368323352398685303936779407780824856440965357672558951360698201442711635482147590030742027455567074991297452886311529782951895763390443935277807604686502255358945893107265522623726621498026400827447051296854886072376721752144377648569801908919738111911268099310071202117975212886877556829018968279977933653147860572831181119628394037068886147593271974977726547193100855387288693435395389387968027617478420060915241031950429328940905400142229213561037060792163428853969121337898102611436927730380989395564026608017501566875369852648427686948786793964343553670182266291891109708482518328531310155811367741829987021730931618155589692956558249132080692406708953881742502715230107290082431244296598882857617447963026356419996767188006901014586999625638126918464233235615618909852458966995491297724008528104635822494324174463810253617023271006116625473217275960243764407861949820980591600688771369186804988937096961266545746062960960460881898205137552478652800818751123356475658237614636297371259787154009019915174610577345077239458746342219955616301651450187636245820342160403584235863097660673829662135393424471256042086717266343716191884625632629080044199411621392065024162639323284620185591245284936573321347327992053734928633616416289619219225251247946255212656852840353885281645962217439228564655829267222360228576579923816514019603433275035596325801003369345771745678635827738238691102184244582660498339698680433930062567976460473745584247095470893968288473009408190217347400864649388137500982073032865577472409918621471367259306831038289973757906644337157899308249276586803306662426863952122054652730812806929860672263797279953160457897966659501015022097898089169958495503252933705869635744319938503719413834687317952126448374753311417020246594241985851019610659691188859808124811548858121322619608244311582390965788027267529802250596630776281579936762821436293609827433479100495360874154245719056163703515675678101443158503413640327810111985301170571360167828935457896403685519147365057357114405828627884234609894658755009759155355355999176766708770380858983870713198699664247380227405723203250905334024358579223221139548606806996806183180701463157065050595874942571089244237730204361479285733101793462144410918901005593228430984433315311333369849453371542340920971258853266127858109883993734235134138538822118517716313210880319159100293261179871488240239959855804271435555128917128091633615600317381304449922920120203102918265041801169151827849139544785253028880948855599288484226028922033853999178853654041733566202891923208662550189295550177459801144479523946718448820667939841300184828766314090351519977901601538148772459880370406291607536239779175980539133386217392915500249610521463599509370757631909786918277944323138258066424413758231876886876825079491640580947380903860117375742513154877227652723348247970796916216562618277471172781093359292033492360268476420070242718637909721268465568760649347372627400765242269060197990377625708144149282575881984617379397926564776736250736316194186626957338432768767443891988422390721177728637720831866055395688109042746311277746554084439814852248800493784288632359236989380555688839509023999668173866297523724324420556357391176664166706389659645862841074252662280830234097580161861867352483690425487579474065896680729423534105214720447918955412385152619176084283614704107161623409278871577648259853469403157851755950329390436937539362381617340923285319031589565549716665347336662407109184258068760768188146313123255751912679872947622409655602608035195759987582453771643900590189108965266278045996186798928100732504079593762102673901011669885983330048348006824076793436314705366978433590308994807972688139316420146140528414959084536573288284787967388480933656831232866894412911655850215708685950051544492779039380418135264310087904334150583832763141281013233353240023663551895690662403639533195498065534165225750574799808256683986493737027648808976360325690915799242918950655347389024058752187123932138934601668364656613297934991554479085472679190455341600604182912462187083051600742585779464642046903368521280188499706291394684931664614973864041351599526556699948875471975321685170498621631997218511591132517190177744035122721132742577993796330052599336527345495049843497829547694862123834504325761628358498776459050563725628156875343565931158877994444320686858404613510258068282514505843649447848556306893355382807397470214405580088219055073001926101703048887709177075417204310852044814905553988872821332707123543310591979436339689739327191649335780621563853417313696863284365653198342299991167709433169725870374939694091078104589275025952434719625922224855934069023522760686710688354612925528899619864203628981657198206148709372012717270393601227619061694054017753920076652676576495890732899774153274640709383274923271464584669478625037743206467537269320025816863762601784763164145486362704537664954693426548916550575101978262568632942374290243954118648784009260434725601727238376640879276454574824047197273035002581283711315404674060061609969279239731388530123109488679073896252014798930992865109193619286753673324911011769020767497631412642634906389569026494153819109472623750329020988718498861872744208568253176015587978448331428887272147451861839891744041985191073881968823360150506897655524091607360343303183686436876570618929626986840686673128636517780324088596356637637939570074794471362215270077582365769278351683753315885207763220541913867740988235230107238875762670229135728476209742452891550710049676471895044842817887430656594606626523197390532436042230883117418371667861014761359252455471289017205855181856125440650331471310728853879541444814046823904165442986772225805791935397504811695675623322640769605070372690209522953938868905536550086550403571653998148336929172893522030746463503348937651851302459301937657896725737044361254020158228013733451786220620668307894944979346914675541156069208232581926687905243424043083722040672481896483286296668910927075765030679050023437244275946415037751694113376432260357692329789677229653139940886336239478447393736654000816567316940697080654505433296430912653386291021259790433142425310479940609759408707541934936304048836263910216942908613581311051280214839655325293321292644876867727525375991719541857919773138980432566628676696364064586762058642695651827294352441642677146942779355819666919008785004610053049111604017496840979479724844550255302531136305844604031742077726504734241966206915030225212610426744830052632380411971672160470020118012706929233371094159017790407002090393630443547356238644086090440664880329923212148911386713613172772909943324366872920576047176136600635476519177884279352151075749803430434100076385058392382451495399300592542114710236561770721801673262615451291659623877993490346105988865489090605120056773513253623542506190004577371258664567242420424394900292338885696293650576438569988496679748169657163261956430097493238790494727081206866495719816416448882846287188995946307137056295882945420954666055802738031180281133319605374637054634789218714335988267836153969342676293423451823964856581265384569153142731357380440155771909440768381217393075255868276910351956785826988287068039878270375255168137676929474996171642741063991616878439234877153042321944644940071639954930915528558960832081826033431185921520460079289973026285690291740795727878040523844418299119728235542732581642561744249228301394167068732282828682713102932594845683848268302773322028094187240135134768836645744580142796630447529667528448835411064358325912295405825756370920662314318171332380908044129963114325856328539896572203767335298231140672051371568637495659987093880432394326473541286935738984202007245217146517620272812762906413143930349234692655664270853305591657767503462045687925618398105859047062351918888256929419070110004518592756058936461601285119150093449169591821506278876863917886563920574977029025631712206962072268581628972467261355822325593270137975602302891625362821803336168339691368867894477631592362307016098880321837522399513404872093468503616047980647007848400426772439598599732165669067261320604391925850688004053120868056175346774855087249228869685481075278664645241782753805266377021240154622492773370049524497431412621387410462277250976239352180220770195057682064424236123438557006005889924496006761030749719895687580882063206968572044371905182989229835437917478448578838945937411144137450367006299588403542695727236453788267184888105256143484303919419319999931492473692285244827950269180026638776188843707101011835722774254116191865662361083050877658074568323213316899804467443141881569000709174245179461763083382566857548941202026806922434673782487013110264201932868247957212528026718672694465723550768970200012407728978649601280177723602604496606249856001950664106957507794537610994804563594770946106658719009045432804418644460162550973353866912936719239854440368300497416087659455655747066931073006659659570455747539620410604583041229397888496065022744911139072291462411896047971070487469576716815798645769432889162861507340150072105934566658411340670097178742700876471365481040499476444959376606473894805957679162447786864144547022496745226243526260962251146340702660313033443994383226386315858202961388102323740921442389212596727166413434996688626640988423398789111747565952411961076041462143056992826242671023851368741878178580802694027271777500052533649960385835049507295345241365635374922449732364152202768351358325306839652765225949226668697614718546367045164140530495802558499874650859886422191601126760772090780437514035323470328742279714082453686878048622570558077632722280242410799976091444109686101073789905653884844619411330784269728498046899139934802689951773126240813257686967989706769326774620710048865466584156364099365423018275543862154286504051460475796334306425861492076974411321193621520460951167801924342431339459859787563585131924162339182773508525419346148627105765521954612013519038656008694114914994952205253618066529661657535016958722937666304739114858069904609778978425315821273290314542857690868143833766895501895706742880424285460742788254957979361476526130142945353348980403400688918027344964050228570639654446886858233546796027091031938590263969423372523309996325401240286935628091968474398799637542894583068989864519879853581546497500686322750057482666139620278421653223317660729380140748416106645126018217304914955477733324529121742593661411432261415766047132922910015480788299039216725944864633348579605487001296920281400718122373015686710966495349444513496713179874504982905502283503621972243322443272151606280123004650940858101638084438408467527780030037336344373362442359480013673800758885424102702253271836778722869683272953549271325086907462902576220507741476568973071399888388588240361215789786744932549270635586287520203211365647042700554575850349211956358709204783974703418762434661968338518515018669004456910448563573603705347731857130714186546401812918440675079520075922179980664648240764204595685230885206767697721247399016270449129514593509457319156151198719182989276804198003547390655184308011827494361420898598051582073020305785171226611026175043791941679663435383162992721668501515628954738062304237906872598995593221449976163100779506661395720316068264372333514640233756930343792481112738788004623786956567975515382092238177596017562660389486045373497863769839488144848061441995324382341684334648885270765721649384129013209050769955618704133062027651165396556774169999374546115640905657393332733446332109893248679323170916100787662735680911609000082116430190956838876459794042294032925312689753054728134030063701316151164100726922310088101343547207739292024206300399672882224904625931117840003127527117231842256358638726015485127034066353461794831023557450041032981132640870657147886823552529746539132768130012897269341876647821393668362715569434744195304499508847938216989310302773664550416644439649527393342170360613858344440553835261845594844165481577433601510178416834277707356299838426170049633593018345204131450450639539114798271067203503901741319183939074001656719506805149536081065166708733905197314867722219233444185844182092565165641795277027403292695974642525024236500509287801331209057763796705321069610632170611766222683510225030674748466555632300897106453140255369726482755519311029163839455639900636205708530767506491306989083513357142060150946337660065117205242686813635593490106734823288603194303988540890566384427929989007118094242123999571821993531593823755655659117959608467082499870786466609918842496823267372714744052768141834253305456754530663048647525100749779301338353276254019944312507522673493379346841350547591846931468690865577825000630208608721888751161388107395584982218705069293210897018086076611117731966238589244411879402113269757881496104557198827148212563028801423561953683036213863874674991512028856732779951913773116003699451883933263375271006664882010298255327843834235332184785324999694341714059087095817351014705170965406449837773246878094803199790352235890603509724529170150909810793129858345193189824119734817076413538500255753910643398047678463619600466168984550831807127850091872850704364165883395144982305471605128728062716291747652052878091690584631593210435557058064916662784936943351394497443210988258478292510421551446679773988704707974542738803217194528187996983611350821612462431694288151778232981338588852638468267313595738025581342161552950911280615879740523367693894251513961586000317979340243053641171906578375839912386258446658328975423453780571289314655602551440189833406619508405134032991182240556751829125441487275318503228798663572740137116387994978559277296029905576772734106413950241251096554298570514945539712734345567497656377312385043289251933560242403961908443563670324023467244613844593029576354639139535590775013481106090552574612963889276542260580839188031621510547120194421915797291026683085315895567200955995015026036437946555452918909134577338396405886596278139578761466369601273092515735312442851450348495819526486887767101702499894298996607768992660470837139951574705255045988663005299188681700569540344448127469722988147556455401761924649137225035892488544960232022245708267951857049305411387613239368052358095805349306539066741660202009531478705377120000068937453437244563059082103293937491369840180337932887924391030365119898314152144662008834868183484117523576943123567204492344667675851233835361834496449275634904490117157929152763991656685579868414440260146567925943009560527765084594096826374158528830566061351530566942199321605113338710646678692598258465168545091303653074173317472215530272496487412845894366378851832160856910797466503969937974269132282428442060587460593281634377302819713605747827825260469790664384937139979730177874069069079545186194499717042606688228213333375544940971913765936386247899829794367674835251422929206326841000650226588584817017353190043366462525642922706915897987044366054834964126469559405768493068238320014987565793654292519626633481277531238064121612389829616067130564227136704538281209754880606695802700267846221287602216298257449389799999258103514650209511143377330298124336213788666892525839089683177405709294483776741625296623283974970386889353885381186083209236767075877782672790468967610139692209078670089184683550559026267503025873368787649094043636090337211711942549507002942710680235642121974588526252503948676010896191100165778492439898249340224159253610118065635554506522439184278041512910199030443381099148993339928778479049480976535008690231228882699205285066173452010328902101499655026889468394727655169863521488779833341203748645822727620437177782177383975587202478070461528963991008430661866486851980386675414317507247977665161231291559069656127071435373987338628771577613068487037905915253790197443621033917330322392642288047313245478501352820958954634251229597364257489953351835862308763203895237985377004399240753301202639034358287677752054101223617135068381290209707562457470886548298192045276526469486702389862597015378711712090639336462726042724867449846810247560833942653155944590860587271070156752451468233736521861753866054994226624771854719923098398654523610286567028430517366815303876103145738353517212513961025044683846119203650697398233592342520690156173759388565994004919234331877868773712545337695899717659245516486152388835469012766118048763475568914116201624897125069738582972334777268944156896338165698540172241232041341210532331527818097019387973799084280675055684426433962667532684368811468093368444819911915615647111601204424215372231691117302614058643887072957188518843371895373320011127703235841749415002610404111337512548760110235170429918216097491198064033514348136513912091371518105529006130108288578780607950640108064667041557392677559009242932389175250832593272588357833465598818097895356937950025275676366102492876152592822824976322037301461082060214560769109052589436014640465683151242079588485301922461457404021180903022407887138396335788051265733883988267337998089000808747059200778782294519157167508653303720099842913709800196216998191826730681239450379969522257836730913989626377444007728677170469207888136837247261568297181004295405982912520380767000573104342104083205861388058183524080941365552864383517259816758962953142077045247629718829647568930157924041680624404775307100399756464432035426085564517637147098775077438192886976766986264019749321735611400179533207372714258510087390426188582478283033211737089528027575002384425953271074398478396174754491305710000230775238429695436208237353717321091745140628652909518246115266753138006973996787648220337831517552968731891123649439714765047877216771831144820998722270856395281502469305144239772502303439665828223286341411676278410333799397460762165211495746709178132132973058249933242904002315147308861229918006728441404149391007163866978430583438215154241155584082358259870121580529582508108833384872779423130296585137885589852466648241300939659551375563185058798492884907057330146672065835022166056537122020057154325604286213577089066684113201400494008884697791890269559889258650739391864161025384202649306970028516263918443717059895232838047054927137655889497287151249635623505910467695855602212627658458322281683428186591482405198211068707513657230890930661027738182975426064890307446289160735604713911619128824976567309293982274601300454325131845258443407495681454358149931686473417244689028541517414100834779340841893433911739894266468103777336981991626709398241747430784831549614295212927364678857652884360951440534648943928050552459284521964281035746319163229887535504171165466626010106078626066670348577319583027144955084553338599388046115644185957366825021746081079066220766546641797627889360147293993287369661939813583625515086399558641012724234586582644281501195193547977826114199390992941839082000528159581276442155817698352422440213800333087029293211291404573415045570548338493031057362345905529385104336536779924789309452764895681005330455592895827121096933627477388252350743739722226035691793345326419555980197022220064268359460121100802272132466271778489258358023932043402938746449248511405693354468323047119768450373136887100432217408481225269564017236881812934732608840954225975623880647159256379881553550182658576095290580408775172033264762953491352473577599232494246053503020113035000910592171701546596452089390203371126920826697215570131118469147067267810861999421769315805709523736145504859083254028977717140778988395574674143026603432019325078270883269461698856437172369190967801400942472395988592817205696570544029390752547137039958745533451444180210395329056543309046771550880631523463033664413476919690110838518764044402400206154596517505988713026238097856422163607827009228547060024959711413376220097230914413774463884143231624412558699883422007954038081622590290388720548693212378468949100658198445233958052895626391606145066918262892913499044172177847370660652088301763674331769521519527978044044731515132685965364944361472102409173672336011053802571611998370575508602705105669221811201710537458399384538726553793799946756202352972882809738329605047880179971281295318582755038809241120737485652203293879422574363651133587374330339427341702707412170051916006395427162350884129358823169093636688691642623822877783929683744906737496904774898466352596561203424295331263628422573985354227165718940705820609878807852683016293017274327791826068883398946305619264750719267874209503495075629742553046519829015499115078074892853719747695854180100977873774625499622114318199237343506776671966388807510950945017685313021961860220931807073015481689670721041058161965648042861934704378800319076393904398721323082252809597426781678018985279140798573911809747573460472087420187887489887239683537719635624012712525654339285104300416291519104546031811879723949569852422170647941369596237166498663143578605238512034544148425851337457021869595082712143658181938311485708024202036876255598156047536906032176200984723970385323207646255387960628852006986315374027349705653973173315416203155944456234974168754067906474205720816606653622917386626071884098887568194289285725714205730655039253338842369995121439709504113430178973996987154631288614237067290611755120119161127159327871423108530302741801381309637347086941377710269425588136091616365633892474630702378523400283063284245784168012771866584859868837903856880173319434488596003277917711327578138583471349695250169998110174989592020317440506103229525651510164677435840077403100312594802431355514311923575940510087814717596285160131411786274612642286401138243563265717037579040037154075480020677278191254860555041230858944255980165142118509858606493003466949955659944887032475007946190289359965570735718419795562656297506132941151908991191316148310389089951491691585124014296195962353792854085891053427172304512914185727098949966184508407172074586220436949064374047104510378938021171797002905102433881145032440116711940806222410316442655264904940014822592755603622210827331040878558093961600650886667763158209072064544777468822381451251984823288391415224284196019542971602428312768228180499453033269167750250863449264780670476757138230746239357055987468790198302928848707055151254120855596780715220827032013630937983797050547923374722892981616663634999503931332399845300393917934850525208512818108341350760365411950174641660654613808170208124355123860908684208784370460501175576943691240661221902166711107613211510288724289253336861852566645573751867744186486716873638374152063572741571834143057588166046535431844376667834112785217205489134064023460692299806267356598332107349449827368862483920778247059343301322432540618572212726220732171248582023773415614538200941908484145695761786836395619346268536415855332715328939717482099953676785107255585461754466923514270713511440687666563035528856093129474323689462614621341688311209703041433553673556560035272194515691261094708629645981167350004265386466986043178350987435203927689071372850549497004842762996872260644200720859908091147634758516084686052668517488770187211072296692782546926604506104811714860655829325294155247917804849331357710512971868543290709729691313900225270999211432296135860390690879137277736849551179102123363058549259604231388097149788709913431645041775887674494737428871343650030806963562856450447084961142535506652280360025610685291279092268457565258556586451318912331313453278602805545621241105735675349746242351597790231806945118368787288826026926335367435769154923798554348199174984004024650089959093929440949164362483518678221328214823581185846102173118108359290403425354414578466157194085162365702839816055347225284789426374449029365000928353576725162654160335606547645693420772561836676533725307146251710195828341067306180479458511596464295207799861703369166435017289511439958881997186256809176543463674820454645084186145658846916273514880205931555550078724581620279650839235130301803797417332815671929313246415376799550225806208009285562480659791364312967917224858883217455436307978525219093300863066765161496348296105722872817862997786596109021852052779313679009055013272295149560357060822298076738618560025092139085394072068423377290162121183529171915718474684277682996638913859883582882489019517537562982750850578478197241681466524484653100483721020798069436225029813757900448203551153403105429548872446931561428115756778718398989445016044275772444148267856815419324280512344162569855083121765314919997954507373967671547931548210699842334940303300672208414062382642501941852658707254700406379333395477804677855558028932295972380390758648954708452841353407076794616217596910986819983383219696919072291987189286829883663233442034552939104981984820349819126637066479959886753260078597056500103759716578125751239514599233402334517690059997975860427372194750029728532404075207535514843890417178104075205018191050599191109491210008693707966097000216397133101185852294699908108653403671785455445021471188741352641094536039793895019696360831820152842191824065354330894769002211658619746080023116030893074024593847571018797587807173477765253063808906873131654280571332667287911951588572875238968017643995044190717885589392526031295367416731152497129759450652674018136130807712542109382915638685420972311745568773437130425321448704494396919710428047264046622667385697794690378056017305669636144541116489975525703063653105382201089737817692375835154049800862008899021396720574084023875900116531140522374700369056523146008469289362876218930264633188468207867341322984777955553942420165170330045727456047316894102328906887403802849611796335066002973354274543141600042855528767239003024696877309986918525246891909153975563655934410011947131919983472256850947142061204068689585740639151683353357508519259955059473281912036344687196134482743146860231019699021581857048432802128925842060673803303946852002448740959811360256750762295843503996448031098921402992151471596279473527830832212738529664216791827308985533890372219969938991789452731161470093748571813068014481838263340685093430581412761039766519149887440116933545461642919532003828555485761270833402036762078471188425074385819172767591502624161227146637623045157896037501309903821505873915706693906767212628206924396515742574906330228202191939290811122316549549867737299592543289177412109736995473001659056544232691880181095002762865928228208205454196094960633693384978886364926657427575273243746607848960521674975005854069258046295082949895986523974126893989371276961051964556824599790263323571598190229021518612469484471503404545228541340810702299615877317773469580332620460803495090251406823418673574480374295537837273095213054697646691149784656423311520634296829283502484446867381001157655216434756816243504756890986539928566463196498206691705880181929110279204741691556045243999156179363937084270775604871222990758114773658447685932349867580649100589350628000351383597368285655583015561936040019506381427701710485746814047789565138958374993484636914873916984841332898509693858149422368016816039135991967040071391305984154618355756227731729250064770492544138830651895799832533728275766727312284052558061787173138625488109772953210177730812542520363896281349338071741703495839271713602495215206370964965465413616338988872513670613394355937808761478035891203122130793860289335196135131915061419187234291787438961519625655571751862017848084342954450731344584405693974665111209209492576272440346464094056759034080580726333477706455897992357069681568429875140857847887179602988522828824428768594406064814147968150623664162570860018661462522587226172482078379365434844338418625362248148608250584485413497258969709841608656774647787623835906759012440680145773540877855713317882344590206839261446746302823711419866279098456071243288991721983556290758499995290228084267761324764577860931743745125178442101616726088656484734925227323903218189594583196240821816897353304063093661930394826135176077646054892570527965076091443550902920012768737586729307286198670518000429771967252496522135907078162539696535001845105069007914078551370048341726764270792070886991783694975469696373783272562087422617732193907513878433954561562492993716679331858806878481095603522073909800525167548006579598536767249060342426673767877997794408704283085212138870200646775219525936096249581892505785041879077093217086412896601284876492465832538515144426135826811506791905075295342407674517386268796792647896118222423532788282851593894108311731610920614294788416340418700575668798651297198521677982695741402376839150604886099005704562311983437652693555490698665866104777779304398349848060826092410273272830009940725988475646462371190797028168622444090253682676782621172995294887890383712272509174119651946715482967709340487520636753404498877494042756745823733129818849708660551943786080562406842721921092151985645848336181843693434943112461383199585955787839709566207711893626038712348545135364265728232031136261063347906500858723967765240962995921575301965421686426958811970298262736162568697970860179935009184631403636660822243485520576367195931677066176010497189708267078312162784389093050394874604206929637767141071137522497309584684795460174533988112432555884428697018555185957847597358705525370681596463867305275046097917327713071100744148233633068417951477855088662213684940621377058808419543485161770143299694190486680209113780947189316081459277353236562992935643824745188335758308619306105561413909076527179652022442702484274183951523536725896300831712538596227992940697354436004074344900658368625221981350724315627224704214960547811188129364203526718943108473154400913092028469030782229721063877349731361443159579552143783708524543540858307322526173410583811242294076486695280727405186798176036698942873240261325049275529139619185387288760551352826377781338971821888797943645333074044763806137851769238944018005932516938931544718837909565370926220684343269887412375492176347390864396766017252591467365842041481397425893554417994447847042655077973614656912195786096301248667804681965660984753906041720448831671031650663073768842975499529415535976678264401212522879351713818527046553922382778649893052020249473135690046940128694120141950906635711890620343375511404211786796806268352154530529623206624018888313087094756708667403678341990390944948969099206722553045973508979501448365350937255698757223483256376098355195759910457172088231832040684289780688309821007810733235275416142146845875220408097012120619909100883498420526973907340946377450881907799368460522251344586005909727102782552627079652667354904265646318945808159703909866716550200386523915277894490818616229449448039149977311781404549402551491626535991107312277849698442941301058663702101044011661244311922272542223880290922355229546963912237718210788796588540372127137324088482437949807385300414044836115299020145236782884633784370295371928316873600853305836619483199862628375553476855363092230369411237177970975565642639255852782444249661202795470089728604302226698549175950454777197775200552502733019195689482578966762560401538621207238775009174383117688695594433169158628713424198162950262801972411445188160117906194493880505886895833788241723992567498953012583809687626812301202516662332911292567065472591350436303627893933898323862315925240557640488538924137104606723799827813445685911585357985410925923623711340686144681051730321389772660907423032606921235201221912302412857735338043412267917584727591288088036993422525833160473451385725629129801110336043240823125915640323780549248193076812958089362660651772792093309616994930028926642589501999508885674204662663099475165403731244102163166975614083850794940021242691167444720843629522349538557414910856483814386827291874444570823185657792760208599291067811766071686853848064034004212927069505734385975507620800383090561575225085233477884829305974223263917489727194127559864489413225526957987344537947132652569272719096984176678549336957768700834558609797565166714434964022868599346593051561052913588421954189999545494660046409523683011215548260341567834637843899051822696380995595350955186753623137157580724493205573144766717271741565850780196938919138303728918651489455124921942290237316640615757617775673069214490756974319560036024903420280132621543864967245403062518524531211388422016041368683822721571420794087297774641711982864963195048938884191511103776086384037004498943817645773919362084490623529529203762218203150233584081989020439334575165036966106851892622975123687302744620568455930205406832403557936364247916095861383661696439768067553920886251429443666404490779207507056527414658116869775340707497905857365914383195559582940950374965744020673485290892121656306423668813796666576510919994697982046229459876062446031115533859704772935418361699041277562034474429590415689836892863771233336568761363803914743256043910248125541767752846236075044264818825548138055753327780181312997341043522763931209459154847664045969361446924317169965748359789877637909601813522695716396358273854198014170069603776877567823195952098358604178160818212803032298201110118397867964058021860064345556858959880434293336279372449947803133556136586827356829288486476270153425310552835603837290954577613130276688048173832304496630174117885167271556628705920502944704987622551739556065164239606031744013214057758370863648455164457932923649819194199542445246274115618874683507287640211449069896341749324736891299253554198247588631908556298972053055753890843551788721406096287960722164773495422872758279924851240182520559484204022530926012808732703015900160692078035071822122609349128284854395540734995530346072624549916548405169151412615235844531829258601664543632098268097104576636939040481175013218700356763551769998834186567058655636450843150812048299337825203719217735694043804126819343132305448695022448104834290499038691951817887725707789588401000551177584951196892204974336927289274539062393081457501371351491942829269721011834327634839162152190964790891899635066187669469213932573671507629955501756853316123989173769816857459475029705181093649428911020221953315783429910162361771774718296672114402586285684049900119917817498964322241076112883520567507121654714381558177643476495215261416291620764576920278352920738021297801623578751540685789596989575750177964465688007976000104973134655325606898838121606409281938892215314660076163110887187720692448819905411150803976803828758414936273049170523226372386739969698191123191095695589595851702652424740724786266928677369798350832885956186075752909751276274605777026416113391499247173645666923664153779667793764754647288980639498421998176601095392131201647381940848941816658719075902592226311625695179876421830328769618394841048203573577575916898945326888785604015916757291331133595992450196173992436454380856803895194013023955826003745103289695183323632209826410702438158355552143088138272405668638633118820666188410261465367172745001435397800456428234825608108173106028174323836535078727703908979552011608939340997701906971205300923560821103527053995642754408149362438378206995252662275433018286912806090038203177098561245836446767913972351564347912987651484495022802280292876299974174562390908913049245430926523365557989091796838041875659358228184511632770629846668702058204930184311497291981550995662846608000468707325757298724124816184179851999904517370646899311539881663862977427142872566877699676079635094943467630263902815390129485059781979479634718438046428447895878194327930505835010929343278555849741967036362249769871507049106607924942467754127674492398814785163625099779703824330010587041106644557175124956422376839007142812076023794801212163779324046535970767440431642744555857241395878656804442464051436473658034407769400819819813168186887184396533429738737256523001369785402957145418368142822257250770566845674383170321826827031097222604921455654996079748817828493863537768416556782566859248195951712517915486121385447518477307546383362056847467039365502492944441613558534060632185892576350543737453831485375174616837595993302793050396821372272823225415717645255430057154465149293961262650547347615898575945597054770985659334757391490482610668088898305146025352356093919323617580581647447298972080323542587058599368854741531661327330956439632817031238261140528998969644276029138395934206032648553608886454336937103307916598686443728074948387995828871225434393688554744936761776059795490548530578552147698461131566416384781691281410794864184284405892014008196198228352699940117698473175742128488226260280709965721196376581737701781534334869628784615759889045263171981494948734826649325241274851282563330850474791143360490682058823096489430871611942491128260910553680697349160333493266942280277844290815915751051059187046638214418689029116709427288509937241393234608527557707647435330920641028370304271283357921437367186369711082237610512656358135904789350066917436670021480141137253544302286311132035639995259246257293345507790980834528626380370312602472686563458025183583278995668944251761371790926273382799113241180009746068041676272478493129837314245857387230595689267767195406570759965039104673543724066565627428694174600987499908223068839220735001719520765014329809874764666263780426992608743194530223870640780438565842997297317534956004715661274638257583049319658946724679809117698912199987303815268372387097811816868937160553432871773378629838924227459761179214184811831054919812520703166269825508078976904127294272338050688279106312327197897250770963059464115496070602790472668117481249385173789080871283820852120518507397584313920864466213500683699033361396416695721306453838285645870592210461826722643077930389066103224054171894654847393931666351059591291858119355652116450522721404937662081784193203086209224558368558823830768980026456607329426985517757434268981548091968159185867088217560742311785388796061191047623011631888524473477804567437228227519132588097038929984419746425449608110661046333193360350049894453815729027479041681633438426429829152643841603936942848460505269333818962663988004137536602043702698982711470055647874127748652347965241616740421005277771907375889790935758552577754246824383303122093732605731063612857542557347061044446004452490331742256030583289158384180087478669296820821096359908835789066099029762255320869401859364517667522734485998464553914578220509128747887336681121051794647065221537633920299604656786695413752607554711718337200324030420964114855433643645707354275936744105309452597171106669080734273110303524280818363704198112682350982856926320675051407638935982714590326789696706394629123535182604980807713759481769264514094003415256748750133675430303899224213343699086127199727380362892881764069249962991496409173119024717203665469574127740678434003158791123714960173970773047511526935598378811137140071896702809898371331207734032270571944554580549320511923274093812379100285809028078462718659224530766466239867969631872456679139002120043033677426276639263644311955485401742158840260937898714757440239809727823051889680033927479621742651067853072921566505649164089239347828986363441797757521895162725281957169246281005313269597223355348210885140921084942380337160289108125071611719850764967849629577009429686759796709051023709221035582956116011866845267962997115711195312587031173127230183794941522019078399662793143548062370104468228068912370410592528920469763570144931730063176805898917891896612570439287907457437773934854069422118988506671208414351537419540233104021021116003701015078614798036059863692953000436052791342038592515020820465505108849864419449476233706187235887741306341601532403849774818424552512206273248252393542813098865490557623919143263784948968382217339638203863098235584487950845117032019180829684576826633634277898021620529571923659535208650553910273468970608307168067544539718058265079886695551409243095788695004383513887994751952672347795618243937827466190937044639676903982815108306322162460149109266292435862498176338890614528353718560551757389324376725226291060347073580706871820646367119071525923220705178133206834956639122856572622927827762426617665444305766075407573506599510250564204433661571857901429028997345649676620732319114680419029544889116159718075690321916209534811807907356816328890586964398760177433692779023618177593094259393614872723540936534387487282953012583239875645645363800313337167974063695731631875542023085001423611131485139096984998678637342001953413056255218022638752539595091005670246332317974660899350644537788246233393460736390289035706669970990019495822025997592882084084101131871863881538424365335039258914487415978076679571982110709569412967366242769490834914048647594396795455447291354308386095232164462507041369518767958838590968251465238604421123418618778889707766018004866650068273647858600519109471391710607962599921649616475328691173268479422500769203170573793232243076977920074195776119616892019372387036121241412957127208993296651616357548981875941861335041507158123047120008501876652527178659065656974651690287860288892164268995413871947779788798083688648158365147503346823244635851115832300117980145758804611835381777478849754725048332434728764441638186591335168272632538360778595167320589029677854850796208172322005939185400655717401977440613058770768085910182433010276375313153209903781123725558485407213080424519547010893505565994416231040895162026479694902608197598236522976857304150752049163446589903014565335097916865811240923446327789962594460154188590415728385826494688447318833726995105218085332760074768939412704124200463714868186792298802671501977186299797689453170828640189118095230991148873024232406064778711452097978185741669493674185744865374518070175514619503941058490111883229818500216351167963583561115538803436478173508155262732423000649314090645255680764311632379898653565809402368444737126923190708936684011673957344369882247559467323031971203290296131753693085987238032147802227269081184906517617328352277637958260023109483812619075193996563709965221952128511815710231511743437370306787525214202655894080286867249878677770979452358822799092129090180084684607956026702618986653270400615672830767208244253020881401431113401135271747133457908649088514506776092596980220630894019777133208734611094342941732092070173708045231620652574441715572733202383325729257679029701547452994788396055139929592698023489461996630521860509318628151208076481896312213371225460853471248793086376387368034915337892898749830220603640587625757318556400152990690292245509713806665776923540051854693930326311698516126233633217474004133613459717076056354624333114066828432473323618207958690103992018127163206492983599582966850551014181774981385209153024793478838335105619598142312484396289239048782846976559601334612733318726323181057906539192356020472764572423315581504902203789639758655761290345531434000353377705536623731969850468181319739288839951705979799543934521415560571912169397625964919265289704981037049461000792570423397284051497534194003379040690136068748309868944669987039093007334090043192506927102715957763149097704205972841988785694603846139624486341823183258595275497769586646025740858133878251400754690885244861053643332536802733642053272695785248013629187291330954685333373377516091384679818928874051526728241995758630656075497129233016252600705863195952988081156191820027811298634420671864091997098252139946168968388532668144456974669005813127046782661516379881685884426419530798099958232351722633930375775328999150493315910636700446314452330666245797315372273257126437827652820867134116146796852437554406390640344341393378056150166625716374187965908151984761545376197809914797073552673073327178184007902155716371475079524584146869660084312811582425727148416276367887702327522506862753432365949069939534237646527067373902541404695768236961361495171342080512787556258496188234453546479104473303715838575738366903384948193146343185631528434336316660454801795716028161472149388274690239970422582672469437554809250432530486437493227340083332568335507469447631073184656473889256337205355258259337132707586105493179727853729282913746115240845441393039556258325596177657018145708505494106465305181678067598004058779649883889011790468094569042103947346950787339185996044851249407025444994674959686920075594851886552085173092983406349337104062174554792291499648274959845555720077594249696951362639308087239835300987222078998455808238522921579022618135238082701810517625064975697154588611788161544807980168667724397426825567045301753521578170914593107112430335556035553817910609643100920984919766465702126723590486288346619285678949628173987553780035014347199299009815978217915688242673972989456256828954612877061902925217196946680589004852786616483545411105913319560485248749810169439126683943785448286644178374027633298944919519943816623819719591530232705217560905673553283862920750689975941514555323100768761469004877057264740964740042370917711260021276979412939643925873261071040910840211648897367556957301995916045693612567133396867918315580964927745045471976198693884845811101122846961178262647839648379113442740968671608007150580257121079032411714473858740177574830689521134632093800296843585625274296894526403714478592867161076955973273314795194305846240565888147738838887747711638363229513624735245436449838149918331232761707778911874472820094656026431774397402474986927638153618255939709693335111714548240043459236255714548451435856152431233516547348681040158488086549278262521034703963664079524789132854720850680960542332102654327411794217690145948697103879186589704069894570225128483040100894177200322093499696251883627957289980264545506929452691373129748397996648176709384972256582827985938088283013566769917308245462948898281167637148525364503652330838678836106209105211985129245211455272699675021731132597681015633851967962115630050537757976317803632705555349887385242303403343172222842857180149612955347511026330664471350891084376866922420067472363482509934878432430545871245498953746083245766568687219546779120872831722672581865331311636766965147075490508637717345022729211418557171766368725380070487988404155259075943983862028793753575793321908300430317639165438169063576713645316971147438627226201421691385263735479927798290441419673395980129359231946228765647426101014274383416806149727197091760130406868257115198801305175812285050717862214162053297526580162856014521230870939063729643609907101942104212261576422043057213762665823571581749871439232879008623420234397154894645989685965531360792064941760032373715294562350355751724787157037585823639648499658595867887989800487295646112938964224880516391552935184407814376437392435455162880664607069357659733150103556212476402594762473864976037642369588310519351743057305343725266828130641039593871183098383772980676364399929739492944916851004220706488346676698894830782271943312986448823016201972460056797077515922998366471860174294114112082960418030319682347647122010071556874732462603482106687240795565802708363062501734993049809741637435695977803739654720616048731967225449766680569583961942034962761412596262540271838764512824852165782782485084013048717184387004816660424147729535542967073430221821786751300450200881702189978055671875163905980692695158915930933128831327330887017326842008942721868525428802896708395183361104578666892268407673877073313169389076915956160419830193977992095194710085596322818952651927523683774545124667267440896786182124783522966001797449753238682036821095078281812238851830632139675973416042814458124465044837672983473612209155606335127683165055513976915340904699652713853049253470864616425505115960939102084472730444638044297097037704363228753099246525663356110914516073226096294711054936707306114793524073892834922312954201223317849920705190819480836992826381301257774632197657510230932309998367114818745063890547695297421294742068221353653398926663435329356351362924809498720280692034884229507083414949958874122786733274580487348457378228639444655705088724330439998325107491970770585744338030021990134787953764430837123906034931709289101120054352925569962176066844826066250772778723195032751696767110846147217395147099831040543489667221863670289769007365836664744538189491449917025953507428868071395587580012075714166960491406272390105903103732893913196399163292227609189246687729102393988796981436607528335418544353051516813045125662843518055466966775307891488230147485649555974520995360398894175697819771641240565288445642043054719687728523218045233245964498167725003277078051982440225376968573573389418966810655388834271315664287468316107084672248281653015633320032731763268969631790513500095640804300478781471797328973458521372789695748082606709965644741401878888075824130145669374235985453384211011072130134932856655856088256933750797434853419501247070093276568291798938672266272349255966077270828411760141676575679809056344998137104666926889511771166558785480383492540691826606019440398167740708791427073033848270068141271355539869840429094280117905663250003642406154546843589762717998637862727587564607256540333451700819009705794371790105650426447132293849447090307905384021211040395513860096763103380414752503933298488221892964541458270745807544731023135491956999717464057891906710855953015577754286008036453106701943244262653077038875909500282645330501765966778213780158937195296162412306177316403989015809513995653726516651048302989937670002389809206325671654930194378387813622903152194858418845587500499333619634658044050162502021702910557168684715965780564030663562474847642703930405927635712528114518275260088926006635215536496718574377986385309310908006332305023977078464297399527459484153822030510801938553901862370430075446693507571330912108822275623119226792409688776095603458158720106249127335675508797863199845670410823299164707030858191325548417735045502703625161320920526129885609525282373950889146343695660250977981118819573658303539883301406156576886548713073071587293185934568599249004802087678164833816981363715488695231706977636328984097949606871618183149560353110106955304808073252818763318809934033288028637248065050981804417985122361188277632731954308781207914088829783412798549887242782051973551794989629712665186729633556040567685217330442813501897491407090804557478670416265907004911048633474018018471135404716806555264538879243840266788130981060999728542268049463170177558538147037736084303173789609791163603079948581170537535471907140782287644840516319426160516671930772561555020702837953792406572233151175065838784694903764918062854747521000660400039998354129442246050159096540239487478358524719084326642038303304133984159788377440971422890546960410465995154495764389384515255574163941452655689444576105526359002575389578834213998330275074847532918990505093020979451388511717119462601682176736257264366600079299170875302914990390490331119546113078550926846980629141376233303090450135603578601210539294773520342010370828328522966598707335010716758575644599355174377912064677856627778618014939118253669630677059822243317078317126197492288505619827319720975773463656445354029943924970104056855345539528571578243663382105859171176102818674494203572432780361047262576270169281569373474467122615885680698544273882656639249033945463433602172099663307002553104207813966697116667489307935220541785725045818203132589107420927814978289804825161509379324049614978227870301476356078643241122573615987381090184248728901495551060129000092357356327465671822569999980527652459290148904329423135013742606685720010909489970956936410244578474895440535138728849671597459585061177539215320479923570291511983676032647262632960181160214859199351716336621658316250659439254528320243615595028117407045969042671657977176480429234629359323116491787969940171057175862809454524012101452395542360874736102688670769138811140739453668943025262786944927652238359550571621586273223438136469525877451291334244298230620050696541134640167248752902308412246981358810196409327944661714788321015578762736476363543095276563733000169144681956939867920771587231192116781277880108068037966260815074457226354628591068760054475482563255107747111899433842526510360742100375618089384762848784176320199983772612269283486313481756743053261409994051360157937038799834598698563615485807174646222639339415745419233632331798367307977114713350352172146661643348133933209352482510641596909525595513722375652664110924163999680610958067904430743177306244768306336834516527898346869319238908339345367707771172647031981937468789122336874134852658064439961266559685192692086437916024014738267356392044080302592901272544792541895281986053522710494503313605203739231959054344551094888313950404810490087427519906113427656048723130102241362173230995345872700998916271979963446344006127040213088176088954145818384076479773343983570439947178936889977723770370670777612680140026842484950201640160047445629018585823275029234439762682307106449094369807892330232498188697688942318230294153861258072673443483409093336967806852603806003867151479079189634986517375150201405859174693994737781519817765008556755665021732302498345760622980935757471204132787485097379500416692712449114814408353735803131896341933325303797397945421050239554196433185784686797793462945878120707625708027639853582705352201536456946647805437071816015051224132834269485952433749102477958501734410624221092063823827307191735687703478200869041429469303794673634724941360217438365023770756396407551268074544890168890788861968208916992160965517845689801862622146684513410434024802359971033515553514011859966916136417263483500235283435298799143265630420432577516137751717813519623451592017643163801253250536592022635091441975053940816195227087191864464432705984591048310381157499705540823417146593021856498516898621171922807901584454334096689110476627915180367458021680943366227365895203027426402837862397720655986084690431801931879665873648026959388424058992773302252536570511011835736892499591097496417750908444669933733228814903898606319092393008072471449797447928892554296926796667810205116903342935407463058545955117594712383807924321165099750472475662532157168066663034876806825218045795378703978998464125588057562327110667100893488798118200496891816422596348362540577644887186677003708757167662313620511174840681424689989993599915788596179943258910001373738441521237324673409392463069043449903690442431539807665466630674992070555760738635828252405323463395862963670780319855526489254170177438281449050602962077233974958028823281226942977610147790901304687380219510128218504613889096375804420291363272931970002980683479061684313255439366268027843699039862348351121855855271732183914433569077478152176351491181050598977859473866528699771026622521459183450052387198626310127046822806501414158278070071208268637142116323272920050601285437517537257813957944362057876723566659733798140037635801752034197904780202388641809494159623427211555172275237798754786573934114605016193401027522706026261681482308726656636049772548142738676704670502373353867463442224627245445430237317959767519990634146581280735190591040558340369060088737216549021406729748871436057642631728920039859669323484645859550721384938426811369930328322905670539555494943411600999757561423750340935698963197691522044704712646149367495680903820983070560673260227178228173668914919533954717568259571948712088124147929801621340488404939728751562925675107396193457246389574544953657410811712465863818983575046626671924913803434340774499741638327027106682857489353041296409164807066764310588579776261035698421251935292752703800739894626436788291199642008803047048454306328119465171978522353867901547127897249878996953312605867371471780640058805932995963198228387190344286855105054772010277328439975393402783282827135114099079182954078287645328091043813711979611372058400631801088401097278188629930801399412956712013204749082002852974258860509868337078185572814146419265556002681752301855717947755635971956726244686650859966938595871848523122222892868182671891324971391757736575265223384799793500419118586140954461459012848952199989933823079022260984791102392775214138635793248114700516777801814736216581487280125969922422386935894664637174748216960389138226084382392740222944370668048570536230665654269577820655975241066188392459415437988434459477670636550625968803834005928404351226367315284527067607471447639645388512866758831604616412471639670709380886132244708377981460105147339523399229152159557167795941947241192850618307720462031883784577427907243627800953614626292535389634125685132026280044155288238703390096923446093670179112910809234040231115305881606408406669078502801420236973171603723450707275030784081180028141229294147620320512727159079189700297669405064148897444755188972099288226958217519166389772009521719930011575626271691488043719592004443321738216760364819811146880731999284445977596254421209924258720972934748228761653189025590621923713686857248035176593783051794314086624316609626555180197389573343837638703564592076030499587379360502624311925376413450474322313138346699353014469060185046607404228969279893645353283252751292465491624656710892202472233567055479898309856196443454991003234798215499550041163301639261943436001936589029071658613428695486866797180104718096431639709051913395959919532919010166357020447311084731658582199780519389556906578931255955372982336529092963249058563667473615804847668931468941700978521292960149368961661067788750112607383992722235249125942768819421743009914094443613390394780579097917807910723058179384536449865669246830498662759353397037072670565812230103975601580281805252474902502666576402999199595888350461425430762122822179099102808879792066351007967007587616207375193682127487140490831957303491935666063944728963575931708549410265345091847985056674503943178331370358898210329674564999116084784149835824578336037457635729245639019531073705359223697221295128325863936663271614330254155598532205976721031409850651551501581552253850758215288963084246139668161243591603907218078485419455835921338162251998719201995898999670404587183043732016210824558272771141295537747465927942814097528811253495873326683854517641007612729745894499405249519239654519902557171773244372120393995155725537785607492412769940419800543773715653967602035562629805289642569330021753751173213825181702030135978471962648532309599681764743900962502774237487921599692038866677046548957775376169270321643592450087639747621542210643282876461293348311113997135782567028994317168569827506951253821792775741167054712271324270638516553196487802242334933577480080495702145701565342804803274773749408751860662162461355190141119594590212314417491933104680904186465401360589564554278716566722845572118534611779263540455676427285322930567081154232446632330039005071190941644646044399700077196356861567302691909054981079417095947878871536104584594032986796378304425198456493204652524829375092252365112044807830514401189612738918138535838388172624244422030461893425384933994773735961686425451866910821538465134322950757510651644123520777900533435120191343673024210216219203516055386982566588366646865791740883172680636216059758312841122833418863959076969971582497634314857398270944798084693623374563411273300957954671121251786407071155703654065004187793109456049486912087668442525632969199182709491630135738809297793220960693264490073675182968172750286657805607533954477804781413382468520261607848394198019451379873856497684402048668351379557605130909477389175881145203443870564906998589197700247808103150212857335714642386826360225717053234226063082213839700181091353600474241650663745932541093830559587597510805884291457501877403968287343807847262888222733448077353705179534125574276498630579944444614459331499001364282408714339162170604279136530382760117261533098060260098056803146772347675311014124638701345598450679568388262153899295594734120472462055083161949126587103432450629475618227354489900317000109996322049674756069534524437921350550847946722601759214561665915120490433187358175780378369477950866135091587480305538606410014008174813380259494949366231176016544613525378270176186969441218879373168736391070723361655880035833995936086337661991807630606755612662054755115453373879947748906204194694850590149202258617340926460417658956640202496742415131085365994237636407007756975582684855734883428087654635690038561075099994156353663882166763866986789938481122006977192556465764868802969071291596820863874183019507665034205690815764761039292923769972712814493146498475620936555009585517969064638899335044532002238416946932266948553221890970015474540839078624288592262991510754335764158765413361919401510646511836624191422714644168531581975226034703487151310125296576107026926263032511155481401708041460555126239819946268592539102989161801584993240447134292785944020346864548879429822621661709011346026408953183042005979285177568691085026439453875559376194990474189637712120875829398316469020272285008842035164578196882930343133275865102323949991937031084172422307133299710986096507063140861789515248092864315381095900209320686964910349259328071315885354963408777433692395800275530561760424798400893675632835334778135916847478764006519748816037554783607772475492028819597639946777825774691536166397597704160422811210633232562179371585920222299266154008271611323884684729786131708763306018912250701728126955461825679430959525970100238682438059953053264616146991435388481026875434904599803655552877629346741587515265301976638791511689476999877584886666658170751936160687339591140967557960895163113780784327637462521913820791449521971689707027922816688477667282564327747368515103956108332311378875843217581022498595850378810057521888787550432167242745839677900981949213264545371709775259054592059176140675520322007414135318016169988095696471268484885847961687123383634387474097159819245459212242065618983157171195467606779033429777398888413645625706472958971457985740062244241838037425210103011537715492387405527880388068098391822656130676422596963666398397443136369932401156320735293180511615684228321255276758566069226853607134144561679591034974129710011991270497586714876407245587736329085783097567581803494386855726356980918466642990059358409111919732350378511949637874433882791590667183851519100412612920128025814322486191470831535442029318945571019748664553340492964613092617376771179739568665665399766240057876678976512701084868235044743609601663682612210552709325240402056910805226801012890347459374203084208238073486207337695404932342730448524225011596763661279800275870577169462732177739397717056548253616676932693990588096861004857236612518125396425705550014696164502414279153753879560628960794440059527984216810480389644530634439060373678118040781020583978529633263995386435906809710122852957868061374008564780355604048821665015862523666520465272322317872242140497823737264278155892053435462992094555122027459113767345752239898668292517358574519770416978263940553691417709066720722974234684658895074404700877767938574150075491084308194529284086658906668773561726530597033032341963833230154277580797993238590891495124324119356050479003646798314680079656031560238598570699791026399984724368086907536013346616570056916638896370229339410038360647862244288739819947356605352819366517523254717091423497951412928345342369723873180987192122130809734305340992123480415838630201293792191905864025070261074176391543428210925561364944622107025441330253643124270034639333820739355829043279404714031967327447924405380177429001511604594168160520810000301632303988883058130968408330954987117806043567165636495711272344942779049228479800629861620687646207383462425937798152479193688195987304360433714191019278774038155206918337032193317240106717094978858711468803179899258032486034745526578589423009658336581644524485259401395408005932591885377789817872704399313962496742547439839121108688847087787774446589700488374419175889580559304196958996530778397575952366344741708866970988379044441857898507058571384098601648772588090416869503679716132807650322456827483840840048165994462345161373900640592752050791463285452051877323605816258616908234868088766698727435924029739236732847023339585074239451068370368206173775407186560561563677867343481361670984046910677840959672784559638554336323688980835039145002924336638689601218380612244492212075313926236354442085982847950744056986961612558674305596907715582546012240511041409074889786915378870021202134386894795437828621519252944843579344913571402539679256710082851848404147025434094517528905658538027032764079083293486203446719375517746101747004595601561453165317847710608160947754822717450503722732174374105128868483626973933185964775976801551000949388943760218447904201372048065050457228600240258362808575223729251892733123987904213099718988665401558623525574086334727448284312202344522117548897952542387212101214975388074407038399170098874310964481518632883796650606918220523213831095252114278602041596758486772201797955077247689658959306301635691405827153904525252094670769374510215411785369960460080114790991405960612246226225225918768132293919720471528222508026105454196516461135660078785682002616437111121890277348797266806800806123055608764269318260276061834188377853894615190423670757108863043344568484711726115285360690171866167351812514962791149905713357926018775396660889114089796051073038891883670301060179342425739021719234390360048546822621730857927603031692236090553164373015279645436457767662007988546853474237987952475457493373645011982185083212415610585906484048493786302335509175790579500748732898945839496642572707693343473810310480832099870921154166167667551312751844896750898449684516067450606960165451054965316999952143112921663722139059156715852736706304510365567095792033370566813504244180145344298353168383606685008737515702167099716802648387142064873332840286902268418684185114443126735115914510341914626951925695803262414168555374973832296981181402468288430857939675185596385124075154163429321297334283753196346173545134088873522324995409565696671925683363008095688663759251695414566022581672244096120349421754880502800043323661720607986937100511964665676103770989286131037757581423271908903730776039216641934411652529660249379133838940135214453845003397635846988785474428291850035820792427073235766361360889181105293866795775445547484164885670237186774148095223803992222001126651909583504264078099314233952334016683275936519894964551665824393588371546511821795835711663494188530042962190924462890244215137194150667183171200405700020442546139565679627811961674121077206796980578716913638941652155974645416210427662212196928879566832895288298910147730807469292955259153108095426087015122203318302042040126775533843736238001067313223170543759334938137034141812428157228407397380675500991326204734618270732197160402352971697027277073502746807954157714547258226676093901104007556378580842151125786296369000971279465624732855778265610248211303290693919816810645988871207813546576634384384566684832998178398583455838983572479588899142647349166199038951388779732697594621353559220391999733123420603291725470607085059119214145026404806023281749818824942551751602108727068253570029656979555920168592408097561407899777773399622303676103119707597032632968044819886958664948695191319215683276983428065251741758395004486035620395791396108219359847735643835659115039391322287386008122893441431363341903492781141300958040575088413831367406671632079764628679907183031666460319074036115193162282347320598372951650025787204360589256972037494764532516402901453882117316343636088700980625476617793890110996765766825894192858471781473951660329248158705969897952403585647584879529174832372748002170346023827548340154407581362862745505437609016867046868156852905021304844350834324489053765882561840775241907110243615840481426060368481062718687256486465187189876292253713829179054917949968000458856412354485227839158907206723944759261145109659287810785605406554671500465178578795312306685261751596757245806286478890001571040722524322125034027828983704946553569401312548886234554110882481557787392871774218082478678283247259407459673231228866347146102121324594170165674680397888438237806412773541080926316657313551178800980223237538901644675182182169443593421793928404193720549130921962849517475369574376522041186422118156991346890607055401998163519336784182501572920378610222413082731239363800517865467394988268718507389254158412372612126137685689389582803533270621740955667827355698443960623611569062592121283029689118694192057094692332690936950380410095748048177812794623561727128682365598510270412278728016773780389911923204602709271927955982120467894437644294958078058689932030988300585081827848485729630136797614576177270770367359407704060914487024765001684336042113320908285424736247056181389344176973351087812619765614302045243239307771958928465095393653016370692118527119321325193995434530574720714074634746415038985756805481117897451117534045534994046259104443466931752953142486684058423374375840044616406895370628280048646282395371651580243600709999537881563901516363509014401765740006452960773325924095317309716923280924774592097915685343323202761546596963833096270671352209530072960627919635388311821200622217943548993057959417422861959496392052986953945808653523790045837614475515512442968279838339606572647215982358285515429518236029939462168515750056916992562437935805139735150531747440386083621273292154172567970117242429642617521331468449610573543615645846161420596488214278883793985785823157398118336206957496416301622242895738097755265312761825973708536116683430540920983740256126569078834913487580756759035424013978916830502117401942246028711949587711950200242177404736481882570400083126799732707732044793588070357636413138203533153987450337389297022707368767568562681497148868729441258765521224598832185884407731423307934814018539697589428796591880233494895887639904302419793108150146365183875079277405245847590806175691278863653421963529088440556794102925123345476832312936336439212546789540803255285450534147276990560099003097137626098326926652979223838942719840933969967920957455636192065669939505750807889266214875313468510484223487072585421045886646736020168724656419852222109155811593350123680847077334198023115668788711785482790959518350704705555482880686751999525764946481443009415107351087404748874583711118585485189094887945131091707211888400587389133131430841182243891261007369426564410873059404425383590295413575824474725884071510409345059425452687191102528940571216398587453556757157241552986143412450374977626172929283059603893103618889035617811730424682619657385461983500217342285176163491598010438626566383226751549474585369753834514854750969354334767061167595045570136789906262138793366804105298138137887886611092179649153971576663624385007348033656301275673010590624180039579081660515112169266468688287501038443943601030757547943341704567833645002963190236351192614962825695381177965551403773912621042982339291288843521320528150365077662931646977014739222577694219246890408552674048660948472458503072023404633821277209376641447015159453660360641344530319956273922220120767736351045189400938195907207923595004250999099234598053241834374853344904669169931292050878000642123829866847714396076145391033269633728820390662442939134982431616026624334601184279670605044250578929401004952806420899697381424822953895423139449333648756929414979906603241956850817335851038856512945353203387508152223664491282977082760297619713806899075299996438392268576580079035496691648882526333377051706582635263062917845427919741664871120240506971779424827228886750198791619336759729184484648949505710955221497333097112423002593848515476770604673402785797514934950988524613163760757227769348152597146109669602281622112470975980201564448301527807905605523955181143944618434592616344644156459626335186333136356304693353364915687623734295750942477679319916100940732712108495633549056536292178797726800531737418766612962508354450203740137019739765090188192984828325727335417014136426461354620548370947234945415575782255305946888782800651193434210031785681528511232994512784911403637440671813809044920026474939437764979841542688481505287090205047829149810860182324140816483831755808527003184801881209233768508768494522748960321925100491988924707766189993325616732820497544068152470037464872395836975076113654743253452774244289441845625264293365796188178845279512033223526681259140342859462770025867929297515113834840752423182743859210493266820343051870688706564211021607658298911901310419256272801257137553186958390023746827977644210832722818659074799686292567068611710619536638241283935692490044636561733874942001310002037161237069779003599946603321588196758241534806154327375497365422879032178484015242000954114578698196352346767028888305525781981952189261096595918829583304574002262199809135864689558221934317255735414817667807853676958589421592696318022540823748145179810850889962191243450030672562053860007474300421187659835576142865015362452657609466886119315615274650100630817814178381350987662070479243454338112293877839768847796950738825811194320258460466612690133334117872853413567412082168219400171501580388991359518660394987817213078598955999635917912292500780471596692698254169342445075610282568547335524112051515224954473624826024091592819438660141789917155332032436828906193040241630912875253133486549948087900580659344220950658329335355627324568872612832931988174597515369470951798810786403597922644252971804570816137475682395056541362916452634966787166417475435548699094620980959255817236337094961915189574463871373733557785948969143025528747201022672896498706952027889711807188370812818878413034239051905808011457228966132915284154616901761233913385756862122113806924105761042695298820710299725022975244473686498491667178456883608141293700512994986166366137519350944008819600535033447444472858223046564988983594571265602828687345802497914459425470743647327852124704605409660099547912316969810999691185582702885269185906003184807474736805267801563329128070133689208933886794741851009853145346182944910618840940423731918795920939363668216297900283336355517203563905911727623938190673704329395201147216589214441253762931997551387094694331580198107980122722906197597374425283716823487188483320925563167255053261588405137848601474491694470250725869005980240251675839225136237032852167743025412859473834077382895902402154479566088731990812865155093561535614066533218470373355629130920525452094579452701213603387245433166096029752278853295449858771067046481666954177187426632531065520934073630729114748544713571729193537155253603183826834235807284981802049147267795172863335580524114385765662399257211924584449559322516131889102401248297437867746534783945572994834389981366989711619803492436862584001735854308683641164471943477135049607587396958961937739316727057388881283119283240303010789114215008244216485682531217085153811410536204472850444739849117820574907816723621239688871072921149711655413724852687200340520845853316037875513274976835773843024848561953148034654662085130139335620576251545562042536224351068776218930342854094364825159252743567309740674520211471960232334027213334350885113248580041999972874374621015780514272616294333016957751314664992079730170577806535635999623012978719615990313073265739950083337303647869146650049284607905643242580096448084296183274099682700665489686357426923607249595687669554857827500715186378641929983837215183205331679544091241317549360138676963864299238795006512131367420620087010352400502069668012920226371794537700367093535574297552222835567873843198632998645682669058097343637660974782170043617796824460190747610803746157696921594976761056928938507176893259855658351578358011479648474277762035173440641347660168027391002640468654777303175824509045832929941345539459752157998321036556677658324240891798209529529606984317407098538744095684541308008827666046646862486770778505891806578308057368720106429690413457333428982744591264989977056962229116905215817292295572824398291034147346515858399682771103994722413074268828277327480088216761771045890151684252821380379999969042168305830315233736331744460089429880774184718176480310813254005911698128263166252767210038546998082644206664768573977757160622521236948962975820153470363757084946982523205914624830006319213361484202002007444964024379988467733844628825057491622663989166868799830868145439066316251273856006235115840050998146210686727189499334739995424636582609918529116938454982804258837130389072347622007493604026410451657241254276531143207712440572693270661531563337219164948377214274216157157131081212260826393741475332355654800384971170413701326915908983280568545418509728432360839529493161000243181503936117915223769803159214411051197567048316617554727234553820235000987311281028591695735379862706960549486363848466693684914136621352602065528049626220607468657088459975169240458814667373264590824656707064354728107606719302627048398165934514419040479118951480145132089749560532737780350214852138526818117470429526389741677335705274043948337279907204898235104418612172054050813579007593633178060393863671007539737160687958502708299760651362101764167128875976432187579959329440032169206135881809666336122976877245912782728260680466299666496242747013844611588772189831909338605285745210236326635613881317979711390966632705454009552053242966307066595469555553182412190623449064709825188272197819092461637028436749082731236388452202199922396750955767723962519983500339995043332786252245637716259181382991859025045319931512461200518435399251801023924428763106647227070946300555956659720572940259703006449206089454739536091263574030804561459035269742140844601750699776723262277238399601437604289472359141900167387702106333629420390355386257834374720447442816453980577610139250600223190616974275324622190310960528652153477097464962233074573210827442174725284152171910786342034094881585450822250071401489781807412394137155649945694480268526647976254986530681980602151078938514963501322700620331008144511362520777631438432760868597657668882155455475024304457370614137775065692650810234076354912511160735242842440779495162999325618953185360188647110979287181998592101296568319156716572200119443861727747368038256750155709193299527675197780978718657523669270151614515827871496981247250513269352966520237787340547251437630289212211026739449347213338383749792670914125462891288510787468643040871945207598720700997464192491178950166413275954279682816301584670652404801721381697003772372146564148817284921891727226403210199002236012480627657513642992002269830719599631061178803405606860407367753821975652826477356669597408580968176360971015463303096802729329197052778394885922872124827212275941596031183034713738036292967913083917840648245055524832736181556378871380606751988232423316162658111290728740776620309582883155275457212403137591109070884069275075721689426369558828664472542722714954816073501818559017246434979993019220386769752427644920959856532343112188372293088280134330910018405543519109713891906298115704084697442288111157262387349391393481425623108757511476885541562246115144553256379061493902798803147000061773881479978932690247104677308561769195198868584698794155046140893446892960309398203404230820599299058179492603223225482679043934551491021993428089714217153684747523635696864264315448404172592752621541718667973596831378171512901212486945862131008280249388239749240146524948307349330725076035660228413233619561506767565993952863724886036057422464917998092635834445404383157436797175764756567235874006319549874431428832710317499805815956133876858471181111995677338463089705672545883946916516187730990924786763154646740241202114134503759138943436041143470891525581016822113897576698560688863219161948500623405832276234191503200533988605234092486249177587955978779313628871145953697062543033804729798527299195390697169868753106058798542187752139430601596056823138518090005265992078742444728306813069713453516335644799291927451564583014659100109586247123814334791272140858621577627680007391154125708703066290181358053716350174039368969599559059118126013116505213840876059718360783525204355373891956161229828244606385941813154353380981465824945504490017360910875131124048359968017468191505909700348570145223468815063789707751224786468919828716702863200890845016956509202247137900027660763306339829985894967059560719646454406449037420879536257833157012144939906067599900790414573327728743119386352893107288692805398701180891126636707143358302331886016518941892975759070602630194975852947585750861770955308097981926680588501333979788931781883801892990444433666735721796196068136362961328849192695439297252806982340461691475403401220456815269909683161331702764099297785512013279038452649557914831069125368401312139754780827085308852554001764095227267563274311841764667086291004121579759560537134326558201267263418626657332534010198746289311728266325556296297943644785718740553869275485929783240755308141535262480975666927758074816739241895405908484656695002298835658573539647708321328488629680591175519073976494768731460268558288872050125167291981801315149311039008120783314642388593059372899350794963189692868584250360412311761497780701111433117722271246528255947081692452063104188138886123867765188766473154932387996241228790331612499727641910820519784782564658038159963400578354198099838481732016049179151372786747767745933602604068295285340339479090307019611429264472836908747027943578899776122446592432867685203964884734332664581156912536789348912598120361264254344764346563920822829886397094128705241353272589412357645017463076592851301623439474241626727792941041399381687531384873205501477077916947804182255938428284507266999316537487165549025828320565998848373201124842468825786838924078225349490546990781739034806150394907273669509666625794494386023864269846154370705085351462927687220068583290926475823874732003587105715640006491226570148080159975830502329717070214775186043088521491983295335570972648293900007164446538768273202475454586955408826323825195471815048267667522992608270113412223999932923699005208107845450604495168879710629916118199212262361214491446936232141187759619799713544667560575417223306918245496437968954223009842090945688650419356698704780598292817510054684386115143751954049715202567886900133386888000681587136546422894354582268874427384084708006836725530001463339474937519855539646151753719991110804261437277255663136527487661480705982867562718737087320334643393720638393466075269533877181589363930092943867168294825174915285169963314278453832811009172529203620959603472336601543564405422759000099250043338984157079988133066313482618943205797551561713982698847914465562943431902964594132645895608811789764002729659374208163338174162249142789970552626767047873518943223705151283081767728639526216367204508198347103254201738151557976089727548566374650296089997232266746969632402611638728586716506018845611010361414718378581323410708504707193830222833091745505808451341231218822416079427166333149653640595154132854235891565965473596879145566198870888320599322696099218845559138477160099468488580070001077743710314542954975818224474576996063944783308644068021746254988053091069211557550134670928781787824413250677793886614868978310579012020674852214791243787690552896966059588766749994199008493466726214189400171881236199191215128204802135217869573251234503935523870208658515543103980184964651676618565672027638130026704814355529974443881932920449758868442769201966208152476367730477097002541313482400815228161138635784089301445890818451304036466370400859924446137946943779988504787241565380109283443860759495864262280187278629708210685207321311657067771777400671418999054109550652317306470107199801551194171890478344331431245913738727497541152144865589836991726065242605274231468373436763840969976152130353370844839149463147972722282836649423492426085219414880579500004857459379238546158669361139555393014312505194601499015802080905728465176607267210741827781968368992122318966008729406218381330613548188727241469520418117876861105396167719611778343382443859434123276618907358733001382879905754392242346011052236236418560173863746089857310330222177111118959237736928078435004149408483224290820566221213880606272363835818169563118959849195857083436281101443124127171112515753734984771255344871476362974786058373198215327668690487362488295503772134281341847092644800145291662895146396138156108111166349654693210334019600352210632287378068802343994937111327809839928184425154271188073487105713447921759384127696522003610808444017658881659490853025768351876205952529812374348577855188491874566206476219330409046557573440108556357262529794429532070715242961323783514616170196582450022337603500639456823615655222444240458331699465756059187362631790611305873383790852572352639346828841807519982142296075545469849793703385749827352473264970112197224093687153252720259151909783027930729012709428647834375691528453065518305156265457379891601177192420993713757087532056748119132104459545537922283949369201178587535114788519493859463653161204728578153907241530632577720778469574577710095503816710490694188050034721226595289386610455844794093821443262831782399217347499521079199505305206082281812250845460701885546810951934699115502080491145450588728569885531028513722037778576801370379918748961759581990468257161959088796503653435664937620916448892845258595419298530875018679494689240926367918818153681221759722390866593064885082669998487249428255984928689885734462638053154104026958851863960866377646710484829152839614325883935770131209190368000969558322214720441064825525312256001738699402799418169764347038185458267252347039368189794058371200743623878294766881630280705158076771596681481047041250108493201823981554516737124680584334274148948667395194325114160649578303048521801958640847237100493850420282020080011277219734881027180527504550375270117791788727289638436141432805366259366484212733512128810197254447003131861633694058486092391991182851542122030959753657559781065339266064243344982172339830449431070741603754111520812893245009135096619917026124938685972976609644849478672067364280424870947489027677928152780365351792091377413933745073470390286324987246658840589400445373984889715688399271443883455612855452340478346674422964917452023541780712254958793501806030498839646150257445230268140959004019633716768691907538099601428721418467281429225203094891381704275894593601553609740750478680782021570851108963724922228101494969056201275019544207838092721251513936527122532508487187204762753747265113724756591430886133160775410664584559425024651789223352653954787032979675159969838956576481021537063524871084504378485922454639120449538963686254749608553994062500403514325684726819131479030653488733312260264229941343161510353473222936924628451522948406814088968955619119298558839201982744033152831838400565030036826364590229812979864267958532127150604875029859156884342528974981215568677223712553983911458755008776588337892211954042719838957530631115641476831445423417915427469043123181873501257381482778825564674643827212588283669879341661851358109034984076678386517087271285942053099912755507076866641356371941155090380348707031641738230306292003961400386089541404958804875863112457317837562375937938764743351680329671877257735956794248561569884960770564790638020195520237865005004462167797376760257736425498338424988805385391774810059235873020932630798729857402885002890877854383985867260794332055171457208421932498905440204274032326166382301270919551845504253483314664268694979141207112778991725691096256136841892353416212939669539980449231304342082484528498976936608202079140324347693991112581752540512278463904211063807963856786766896632748437571716982090970226334657011274948628663273903502089667218806875258573989810392670807739559975580435500629840648053872519455669031444715047311338713568897957279988740713827580263045250935179304979648816563150800206235305682565183112093286013389865363749571761629733345764086029802435991021284570157565027655974754417548085295753489905788230727986393283569498335342326981288998982462545763549731769971717027538025458771289587762339733742904107475757686188130310525452115711769236806240585241008762821154503726396149092634198521032212158192646254285886924337854652632941286955201192726382160395357612350633017241595219417826764011757978199598255045361218857451421963848855492599826693167837532461501568575627383466772904597014037212068192196222548123290605586796480900482371618416428699984567420251692284053873723791357288627613266278334941860325535704343789172836498930670638528481991045875163424798957613417012413742222444133184709348490906131626196581876918375924006777299437042460905564385514064361776020475295275922895125743167025676225737318732023232323898320546580202231097734870696665902388445242502009302996609482181929960914672545110296265307700358795597920007604334727441551023958025954556663817576424226091772964000797600344289529639091034790950053695415642792856635030241805609343634052891465484366427377429710366044704522226827060421462042810820094026892852695503404997201608287981590131435946441589520097371631487882285854667151898124885163826791942211050580227496864976842295146231627917578207839774830866478475816936040804961035102844196583300949710625000532237701349031724388558257449907764451873477205699153355678589651969350464529297734809529301858846677441705726988811518725004853061262640624325652015809675520455056169645826828131377925551552547641916653514505894803272621007541430298949971714121107502928007778873041230455539139634913152755641326256798901435049758496784133788780444564901603770670549156397688272494928445466245538515939068018932061127259717210867730609887335220511767589430049724033050603741275059004187040156336964565672451281063870935265961023968858364658877791594254169920241789863509851554425581802384361225835108022387304583086293325260875646189880757979286869879365220192773090153080063810359679420525105266206287017167046556341332919885696827716353622577894060338230670148608000080917057176677148300428764301187049634201332427602531889034381430581776365341383511432781823991045770775665355154315247844946026409134028458798124467733726445552399603874474232939207304357134550749498664103241585705674479010546962991938511017552746467882235725353706639569372754085770361864514127989534656973330335469262057589846945625069234587716131871829125132144575082223745081322190225290126493379984644196975065967158228765705681418286345252016987831950719026281168936336921614899692757888396850505301009624252817960176470693935541081961751774812004370728996767836225369191931532876752091027129726871124995610097527613051265127244061098173542630978801141411973287013413826912994940149552166963958009592086389801138259270760319728844332838655463784805376319548286278336448145840289253650175522527766412311068032721678655931876292066382764722848053009759490137434201649462340450209497697014137692355882690609637055745651336163470634373205454964312160182725109051330414340379849200120571735426302583278656246933441642131912753097169394629658950439327050661219728342716176710681385524440379797351936100400956488784778412618756032856342860217348041568580554939182961728995512174531480228799010435332762791230531395657172065011881226736164531623498614988766081915129556635886166038287469309733369878751628498258376220902324736810771256109051815234392590954918974772008497474991300189636988971917114991500828537015217734584016629853199326832203627507462288175468468821564139849423466853406317480219816932552961889124693919821414492512777531256148337730290245073984268976450955984095864965795784438742428566890063673206295829918969816968025367619065108565709419983276890019748397017861006944350003762433298634174952737780436271868083712838249597505018872322144063843002328054482991338480760553191847493727934280683375175340568394339388106561926940961033194076925396984163778447322595208064134747200881300960244327613531208259153672392233035798318723158542277357932532647277955667412006676850092572375189100383111255671703836387353321401381125832734007892300874321786578290925142198458317448835674797971200840001541739815601039748215721740023958875417217980868762234445451461215577860416839960209602495646882387455582026447596230443654394210206926018328091814812730780710649269861765505075248385973834398588390189055590590297436557548982607336980075942404790746825936334909252738976184842665866776499640693345204357265491417520262140456527360595314568136664891544431522752453470258011684721192940952887631761350877064993294346184644575236305675434288490413408223647031643174500236905203271746749947096538496654826828042795113240620200871240101441906765978632509222694485314597004545421083638458544637593002162600691877338440400774841059694387200329969475047638896482239519853942953590810519733328911614775215156118368483738048246829488069102027968899325708167255444950190874532362947734577267325857508688635702558998329197629132261517329870239652750128456799272039681574240717526588171279189808319972624676615355194047754200724312936280390453430545112679408966561756906046931202422940507830799787780087564422462388818708451865485033685633355556499772599255210788459969668295712342209740600228691477856918082837001800878524802587436882528028417291638873850733567300308948893108165436571447230267307142454444747783827127519829949112164495550099370802260072306555514323122976441170118454565441778308709891010944515423595372565219368699775562269834917049583172001013997999362738478309454720197140683862613292502834762764589943977196293759733431879599732957797048052077980463182073962286076789392298562607982839174966754217921323674378105926741898271555015812251001207530960477186823738917503910251177335378838205236127505305988217930757568073940067242683539602501515875510642300734434488740278917748880360499732646956826488077136866129030748350154625505515674861809993627015915005387799743044308673046594447493141067794813723803709616865659433414816231552409236418475904119941925737945871157567194235397739927618687769932366967294484043808490160332705921087068484358663977662553094517391515273853369750558111766050139029358059553564084530152160412725488868409545487748293361362344957039038656843703991072756305648297687356158432016917292219490679115067235643527411390692396311380840469072001599748898767366399363553436950092128340659666157835654572048176230278542163929378942742501410238721000320429355227150145433527931456630211947442933050028932344822114610248258927047546964898615074501133479757502507434745735955212850334575438487750762982269029110469634627391645676971384901571942541729171155445723918905264348491292896025555408395650748625522407099670729214758791607265640701181527911067572701150497013688019010120173894449948818665382291986502000356653459397335087780054680653526826808306225307907683527722086933370620383703500054312285969087969358452825318895455930690924411458888045298879803278244318200519272960055149963455173973532137158107191368963286943532519415329200619564051459645998336484642568288936135558950592934027385295432919923565545688463102775088978128513420045706322391712554101225961504516939016940648437057094089178230319834524745985162579272045297657500195233320311987754080119467696895158265085053043215475709421060246126956171449122399749466782364507432962004734162040671541512687240792727556631299619224732422107495344914143092941024378042867896146886668166626015724905868070599481669288616075922571440327448940608684756686282878175831255084433007027707859786203813410104630899735655307574754670452097010578266282720631314834004995281530286400673641029069434167757181444751289938087451170124483660271128393071845429289859699223648385857508765705794401990776422601966779647805263068246340629177819865134920497225039934770946543889028916465779280759720476455950971984250034874996510159579268068455249244358981343121339317105768659385769068319830177134573703043180432941495188741900688507633432270469417378258965113313009893802544124403797958564167812591375662774030724838629816672232455879604551068851013135183975413860136803818173934082394061014045662123954168621978975074568502098165480981253388032573281701116632522910008192535899383531381257595382024880452776081133119689488622576640708500448047971937429796092099406549454697562238223252706647326472555380475090535068828253187865807904173388027565037390861828664965174667078853864595116048945908259705323293211546839034415612551667224511316840457115683766667316756933607567723670881725704847795136301781404625607438004694164564368407323236475439658851392586232714429512897401083525912050763668386116686942870482912699160753961816030090424555886636182425702973367123094758588003554224743351153954941533875730378198233391261748421928723792669450869281090050540561181141012094090085679794568936285518596185556548394917423921702204972729483378961957225332735701420522334439894016737888920848897421206096464035443583854558391766431997500549955667018130254155676811508635439288373474237767192555450734852676391099205803611117905581809539504725775831435068737248428570148860418393129480340300760210306788874145513910621106001229677539581309362667887106005305545064343465545528929121256087410056859230102409363992525833860369763712025054757906423311869198585164962185685885710013992411453259182853267259890489370428889446117950250909927419681689474238240469989577899515547869474544071692452966970870102051678495899338083156305152329520820198400753467670247577502746099810976811352106305042068968602019816257495446385454655288080152532418578816327473545421985761508453173927492150460813399053444711025289777165741432163442132663568958466925542034631531234085624848330603248179129985561045722560562862238629001651704858828433937544553671779990261793662587529600335021456485010260217448997848966935115548197072570947253648967865821140484699577132545672731314197110489213567368517992238949524622048572690229470484140942218529385754669941178385590886273786763749889783698066184462929775404473102729880024725007747622774626458924385388859452626404130457476387657334656234965967849280646906758955673961094472043282721065547506498564362637834867654595403910691519074105381921784477573228433186953488162184609092398945530805189727646284800213218276941284711182079793944056568601078431627324866067360047622843868079827693745342600980553508711587697034755976076184746622599277452951790639220788940929541293175195882919194180132581813866264511447285216750978023781784069613155837209643374380188723081536341906781860472480914946474166929957542913600306525564441271358920223567384404904291505319021660180278484307377899188276088832162418951331337229078480404015492057492439827474395083956516994033758566820221103686109884522281587237475202096673419638900307247308378449323310917995410723430491912209855072400566815589054536048079728962819586740594286134901566390263823157928485124303193529373346493550754631115894567955294906592446573869131248851525901314641213548825466886596858208815008852405717370766709546442572750411540670620078393268337556850135985801820482729683316575928099826865235134482991716676551358919917622497756616589673945418686561004037771589957946972217637577226804278610605280786274790351037974059876988818934711040182540145169306190377675334687637005213534132071537256200732112369663404065754017076298456339624246244284248116979342368634456972816375565859881477804594324303232021078679977785955582146327503730991189098996950518394256066605271709684646750978485673007574485259308541982702203600086820489899474568731875025003335377204415224321024109909064745430490223483816382088104334636710816356362251925197684869659096333716630691242618727491767749203034614244923839415287792106534698713417987148936659301201561041818963277959124649025781390046889974342562570101508335808729050365093246283354114226861513795618886799402871185028739405753406394291998487027682528481861551451719823346337583226460505126865483309290192064930518938568408864479404318965370590634224154786316390093803261431375626389568703159420761121760641889618680366651582528529742949835469929860514006255889459363739553250089785077911765929756228190374221039972167580264513961123244876281490691680133190716202614908547265084497329561396434694753653991285091718628062898795139099049370988513085831777714276350916585126624430156253842867220008279146904116140729224992831743760060195306479759111127907773574957346110104374299351136732012479081549463675790633263996409279306846100338763648227816764488554051112466314793192450585208588262380230514409779065922934967975806155453639856261177832861566331686710184618658396711111898108607524211062593697028124168161170965418816285874366628641038496720979753321329488888006749320039521020122847492469404768149744525588868468064398138039560762769076714014800295092422483898586454909766056544219817440308028041814234292988503779813547548429676597113627119037075033788324803431017805870963660305597349337682793498093977950275117634085414851189995648341061882490761471586496207137255582678750462441989963440260342763851850788611601408007115719332517726681163442039885785934204747771657289937842376839921618487122156182098974781619670278247940930566076689889878135672313963209942869374789471733398099557189134079339667941531657352387046005444284653833040645226311435703673294694484310569340108397079073281460968695376042313743870340155364005365313385128704880232331196334225114528808885722067532751955339115793673581495287674194146379409003825259408835336604308180947757107429624995876243774404533042615202454438732488850601549137747359145426235599264018306327277689432727740992743667759121453338051055151566950679905159484116709498628321680182132134285428123951869386546322801372694186075943604346415338034056544445872082776460376195268173674470998439167467012394904132023998898882082879570042382258154367642784821562937522846862480396870103435509389538684702951417750783858132803116679645869723287544584896378096068861709627250269183733418989108173101984405438949690996362339805006818454914863818065206561218962077316158252640224141620335689680675198189507468401373655253612582406252736524023202462089533991140063996673291635630928951815398385490150627888014398366952956954400523844374129874795856800945806989323405255572503446415388869784670588679613598865803271837943727237639133245452357493121983547061082540891275374036032894210357555434478297741411288716881824027918174919792993876436713361415858881114709210108869544693423008813693400232336431038467495029626158381493608007326951007075002351025474992157180869606137805213218787267912083013547062405563590584177530019211551033804564118932437400277855766744202768122283553923435477852273676375023864213250730609765451307782706380363491578563897343084779149706525124701131333958896174291252941738695852541071401360154492593377296651055066778196315663203585281189646760073106793337041435944387294076089155731669902152283734486973677144576028929422089538936147757383738379115481391955254074290432658546305927265374156176208361790569688841575874342231682101089322969322808637123187841828883389735955776429087764792817868550292974165986535684051309758063269019191628924563330099779139818074022654763102802179274208510100348327984617750792552496470571211382068681977300273298353770765869036445638332849716900764261765576025225076034209765895044086311610071195718573787570529099033667834508890506843487055267048087394762964064064109434863351729433911003268701012279883893297029904408973117851532356103755385628460701531572400280289680507605221336662575389718799058904846889547953094303832458773292773120564895638720680972696577461921460926558376296726767339386129292045949199626709202202862084959322976799457871002700868143037019075746264769174162056423221833736119594328579478630948017424565781944344321308783144471728071098013181780868042955858109743130899910481880882413713979345574589668842376698296332595649576345143169960596238838337978390522649806205442811144960258975496493023736979571513362624410582291709567005339835861588775169291831611539639061635594914802668466773512331956316809066913481247512942918477698470124205908919887646290597419544981806294224210904597316646145415853079449546361357009777578939059520379031457466201171326960099378920095836796825880993186029017349791538054723060151917384914221029570399303266510954901317345865969878284172480756688666111989180618999843576682759289710738173241185302566336885173397360617040120719266940308744468996905785048969208849112356422042814687934214516242402561355618439200271305964723358238134707414646777524489638101725305379201637621294480341239031117588178079377011130099574860421434396857363187121992094384213141198669547583022880447090681129930835590156091010726989337513119884109318597212406392585963057870582263316948400014793968741999333104670289076622577925093246733053214142371085684057270660565063212699507313891467193320405380314803460141872433659501515937005429565253862796709127399046580763646465796147815516869459779706141688935971865569243871190561586992685889142836427128198589310271050737162304548771287791504734901373420293220964525554951171426588863838482242733168273140481117645862506266293429377621334118058958652674652719115360091761906825777329369490715084877849051006931998346359556755303613745076329299258325299013757817046788284455377859344706055537007895217787051355916529459084130440700050643723801940802859043449194094481218546863058184179839190575972066978712734947595689724019916502784637076068130512206544991874328005226818400089664607965147778766234691718950866683761055174372635490528156362865162868500739641311133542161983910723068012222791200814411633968589181802050645223127666888021996881796228044697214952236834289934857501380042450743419588721434568655468420025568447817858984990216892867403046328091115301211296783069288268797701555002397210689185173948070735894420258600346335085082854466264423405164636069571758100233749055759595436836631988734868147206003691458573604181760186395610328546278500084246304387588934076065273582272933900289086861641516036166141653709684846871377725408465106885459569038490510033521160327034494842202142722409220894921708239900943632056408832469150602514226753702181212235313779074266278098773919953377166650397311904268476133000097654373546719992221271193834545008892521728005454158065144623128750138895459657953713341560285463431543374771046578024011083486207696010382364191625620084455991718780479028139119605637345607078294032961947886906558507236058007660370853221183224445236279172492644087016759342224464915248118248589132538922690845454168194753625623461394686038773222751328182063133119810240438600242066037244486441858286673163033337003754360003819994168080729705963217835577364271712398666708243760037244728319510890950302651289464057320433075990769736041022243546542876841384785289141978646870708373137160982655457127967441297332786781849869454338906775007166798952617835016286050318045496212503635761437916580878084529150589648449830790528158758067222554305610035543268175453501671574385469651673792585705013576299643976598232860394738473433371924594034145732363450835503036354353645121786496126796839366076485572954975228387537231773509875241776091029359307172492570157564006173816383166137349375751148044380841024842154916247475375609335713484032483671784374483423561476388414526260185480184672277329272869931913283645480137823317528581164344076279174658155119408181034080579168756222821557856365624891646485826167166399935960912145598475457013371249011830238186968505981635144355343805585966131985060454088346218130158421819381220093638590691695665529422820339414659266958138496836813362320045620624360730505759631171030923524805540148085859543473679995868064062051324073444872834037538722017231142741648095252032566113889778828244891474495826566328148102973381530173156344987873897279687095422743756653108295206633129113420648998283409922069511345120395898905171912103930018675870674100455042543118251213283496994623169732096428984743654766793366048287893307001497640652983751899018389453202326319835398280450391810851256594807530137003427428660912601573996755600265490187030180570343342931230821804475012464525131221000229217441190440524196241804253232220937265551971935662911871395070179462759345250195028711124676537206950827977633008747588882396592258835356667501399943570913478962168895033798958410935226681678747806840637103657037422002609899784656248594937400397298966169469578179067249828043041615051611741744320415452519956166976499122836391293812574941765772963994282658294142250475418317335023117250648487836666786352670586552405682949537283595780115827416448497995605361463830688757281837411976548697258949263440576845623501712085644938066704007255346845461375690276084736918952892664023896546188697832882687822840617783561380571379553164362546228518854822682713949291103571208684820249066672869828992892715290304684647287659506414472342781143616477591659923812651128940021919776687324159688438334486439240401941382809995770891612216222754075642529315480633462163558377602541968493107713044726398190156741232197873041202859735642191420027797515195288696588689941956401170501181231081044153576697038264753862940789068703880443795556588038835432930468389962145002304301651450193462765803272299379916546314537413408999547762123274687734922936864854590850260277625042770842896697113482237589649490104971517287618178149037963916352941771540589929628285108561070456584286685161130657383395933974701426123488686312376485017997169622752500772049954069830212819736106946597226604942519287398151630460550656171222889122429579316909040885330636348735477854785855940904331727256028044104193239969633222073497063325072330546455881796253636455594728722461282762738944121457262589812173279200869165808005392955030303385786876173771541512905368332209416662637900664391939608075284358350467081855049797887244220191641319532394120658221033912352083332304550716422394293210995536352893954793477739134674080876186353014121981735405755292670878986933840675914808252132506135319054504403239778180178518767994737338842935922726549534787842788661993781471995332100856095705221543776424179734711293379562084823971992802039957049886408018874024142388018626193784299457418127175814639851584640947849103895083148280842646083709267907297337479108776312750886394095067942849753458777626457296789699474371401742603652678115463921639582752737403687003034939583283900683322572997908011123002152018226816265756512570211197055732777776397950164904230973071540190235647156025198331211496345193041181255602469883531111217930426187349703400863740289115793445342872964357134528750710460382394989634001888858768852207117196112630123904592882525759419720510701600244833510805432506703051395434900206548662790703377168474801974360642168296185014807061450084626828012545142058923423540495693791464269758222631660719060661065980326828299631409897623820812039516720342402899016130775822622050755215177527498389137711967871529061972842107018191553523504783587784290849444768614896479141079579029286922385600725604821309084398859470300887596791079569338955679059436736727735504625690132852282103690701235741568078609819912747525313386337090569867605406811586113922423859436956486319448642338794616047115571240777776195565948526375986868626444282014344705335175431189572979881591749548697302271603389847578802949493791928883507320977701322031845793430142976090213081723888892328445779449695929158643374070006675450534996096738981217209325148566934703648971676491813060162246467790205004910521498810276577198152389525415801855531449945622160505660827997562919098965584765210382715528079262438125798715187766122319637886077707032160465716176703206885991859892701278365225558860467999942416080740990007785218522364067476348334461835478544462167149774299596962967759065859757994148407133445250750189956584986419798908797044331331518803615081682783343917488915103095017879058334807927347927836549110940892513692564552223609207123594189407322707033510964322423927718253329906374117068883410188256786608905632555496979623644863803676810136763052515003708811848688854745951184487261333626146172079006476923889733284166684861071982200645918020467529087851852625350505190080838696586259091662903633308004022469203020050034025432663809001659996107308938392017736713687374164373051014537313969984997516694944889776454798851396706740101345279164040147256457262152381675527264982364742333004395822558105463689002256127791422651780855634997758693080345179450947767955254043103218928757659307032322854736459746272167510357814906584773595434349843478664280126067377401020073561880022612750052808392359763075788044349440703654295161089390799878597267047044095196936118303099629344571937755755839264179208271007936658914528729681961644143805336149823654214261252410363450398963373471332913022838810918054445406181875269727555992819897489008941442809090818929655926989143146749484180007497297849412936011068113828515443946869795295369958945990931872292251519812561507592116591617535112968290969621212831796163713896258607816216806890148920800310597655363459802693664977666086799913250499565258979688288137954531156089931242683291782083008691453957000794678166021007187957854927831242914507045031473082566129927240364580652212044163885050713621340413961626886877168628203122898615445926606262428620456513703891257996779173265108368098664281817102738289621012291981116866793584335902224177361610434379131921023819101669809578812569356564035067187310616314294660512314235288633081524423736939368416748196966385926578961671865035796148221313466191461535334918391022461704597138278259906447894003979312124522378862199804418615640036259523762563173037635675672830578422847411123184909475131090734878219332151750638056684544752327041607156710508718638446261463752244435050797316981779821573770457409370488233634841903680533355211072404957677278246488934605438967160980966534783334958182019499170324150256876242326832996649273130551307177771975922346771643078435353665269919687333837873469640427022929609485045503970160989743501789971538053555214983002555817558185737697279721522459096306632674644685922017760129214563848425653792729513398820478297743080265216823395106626153823351896825218241578034316265721058836427678296916289974235576111067820805323745736380764349781913346205179918297904357131160656114382518613464659156903910544456753205783880480995279930744086851514778680311567617680986897350682162266863130482787073911074825457859400074927703912023496449678811332911957352667260778128430491364481440985211869579268444030864472009480127276322384994925829255097859881636443351533919177797742128202493802336362440560343614607375288724655822775448389026934372619971003941311580939634468629058428316817771546642347593050095892802501583451362396332871413873110546777642037964977323592257133106995833422108389906843553351715136789531409061875063701053113485095223796947587990181741589040424972114376996258864802486217399567627662177610742950279764602894547729954829623501709507636856878173996970024686183583706437119813733352309888696841158426107148533922152024354011872862082845007535982931962965717043050692750274408865074638158804496669894334328615805482203884779933074853817380800522745507461888046458317374533811273851003370791522169289180944571766523164747829578436007193322159830112768462369453315165282517903495273522524155647767022685413733620656730405393143646741351833242196974852294201514033259043405838263689917048813283833914106777721499231078072688913296416087023368184847924180879337370672246395805435437165036228768030861755911977413693630073201096068180261575810768072215374435871309181450888639559722845757601977829286390034160641695560930094831233753247233486981605000586754735913158579727239621606952924222726295159308261134960071362403238571558751874177378855384659461405363208830306517963940145758112301475883346800112444035881309654754439569597477863481166593451064590588730117472903697700875251242327072036429588736687595138851943686100744853580454937248723385872832748869007238061709881418505664702278215664925407676991624849209885538951556755506317152325158640361452392766638744065526779119151852325465549788794330707541523267180213947165222660355638274802033714621550446562745667084938249683583978470813766430169281891197233868715803103404319435661463044283995582284522131347004328128254604292760808778262576664580706951525425401734128528176777367991008414472196723642749829441510701512446901845982857402273983289122475876738991558151428701833467856925074620145012382557611410549288068608251244705306843774955654265739817595637426169102997195227093023573945349787046219261401656147328986550900447853343631872485844794972766169895403454174459651129190036312515776078865644439273483091290532660019341648593250063910055091439982485555413716241830203811381375502339491408678626479204258489805026675842681947320959139512134546631499233079518096418469241827281548807358776399247753391757797666305719069116813538235232506104851387929223107629706481876883883610752298688994051263836118132127539071915432262521513119504747325523161369207497094654389675456439880497814900154972304506463041173449241226204062403907028215389676010702838249190740212298088795063046654321064085716570535894331746433165444425683507115633635205294811162240989365899038004481052578575761881908942506118993280224726546566468480529708301393747796690666839376789194514211707591572568722980180137758813493335360498134914023530274938405948214680647606101655184009070295128064052885954296036122317935921450036410224356962253501312632967632649451539362992921457619649058340662576321584025846354348149604902564215086262685087604350560565627265989037947819063725562227382230129348716357461205249044236311895594544998821131859664249240689178784901006090816311770837644845770128724986304974753710177816678081938524355714430388144322010772669181396734637643318845111356500589978942452026966129791520580966478136920834599096741637194985625404595246635036881981096400688836558863039575601946792712920626558156477659226730209836003007694873885600764450747242500962573231178028561108171613174664091093170087025639143757688849194495900208902651713085835162889924363228638120390595441810649731743928194057032759210859385354083576028086970715488095647360796252085191301471397246183023455803930103281565581718187628134945327343663253090958582074275761222733479425661346991639594402750394405134995108040390711388416562513519834744374759002387250913578341010039066753449929530464367915866188493147530052794270010537682346064949695624587529732935688306651848370907746681709071789253612520904395666537198181102289944785634862133568465116353919767734184498957365663172783402207941457695867794241975355887378185483345375014265520015457053967408661479621980564651322143253693228802573606844083895052027820496025528165201198321870349773372890776058419186570546832280567519161735524383217299057928477462069743798774756099998001953701833254462699965560259543562488330724866489506942319550038760889242766308618085216197530674615397316627971938350530218401562867935730690760338709188990848579786880014305256394432960576187928450942773839465173308945149799053065719091420131916800129344714202714031192784676672436734613901753727431735368425527044195797237205154384550567093936010849071610116126516651694040706755598204573423569169282298828813552727305067987551044567136490897998582334913147650516456038685293017119905871443472374085627515455031033556986523367738841264375916596441326027773154317170925469120190648739186004117013751751176912501136331756319542262339203140371503801561341684573246260559619331034789187026665970820258608451644064294386204262124634097500125866668639200903997742326532513610163199423698603271912133124384228009920058155597874567551905282142973965445580571967182210220592196588264000918069820921321648850838609264972060195537380596468012241725410555965437734935256059606691257034003188518427036714560037424708766553320948912921445156865350371578313297976454256875813911093661457651439369262669508466176195803891062317088423367721513295721702575278848106220457078488914558845582640321299827616039994213322766590790152337053325130358554442562368948736117127028981968605823476672147865689909108572665876724547311867810960769868698515862349688192510157390424713822167183387977071135688123342414195790589054314182935468237591206151185592461607670414728308900553270024457152816117613664060301162905701415246577880053329176006113026887537193160198753246883539423668657173604614349204298158634544614229532359890862921454842207714446730664665703346835399037365471370985608461511736437521400628023495906152932140630006937839446530288030495766107852560101672822174296797375531228859947460252045353644345524890481687959572973947415610686566042487292472308443177882663514325390189388627177978282249088155225402245399640304751414336857492105966073215155550569559415989307882093513258886883822523331793586858105080184255390380183686569512390974456793472454520451017643504816865130769055734792077797700685173424620787448592485835631552824680601681915152835407614887996220461746308660597196319683921414488947342194831366475503751294697706828734893387559170212288385593545692867061378985487787272277235892786389079409069050725984002439761364211777561880614872498289046601693406887003334847853720778138874188518547383679423897287303077168142474993271537065355872645702180412606475664566155894567414421260573059194804503698138798316214414756891738081781552953604630659139025439388321290842980793768507857421995988013128489514605522765029128616058870932645924216437688968687055985254146017012282528641603800649292290200169121022439640933177876883236211772173741222149284902972253460521693987900077592347721678027497916916908135933295310795844142880263259054350152707891947856809601866598234297211713715670733939100678218657432395169341696402912026020954695219792458321557661939349225457567800465708006094099477680139797686325312548985238707605625906891156971364419512627199215311223296402522303844129788185966151089193772234126538600945800646415310237975958830513031886699784501447314499595570018392953964060377885865641329866912623659284154350580352115758559605150069090158544159305454373298396831699008988164327959448058195631376360011040911043909874278952260296315309752831232279109935926186161829032218318928392335316639530399480641084028297771274721199605619886604596518521795118675622260161664039088299592063652405359343704921693407504338431868484539725274819935004866906868614473115765536682205853148354580239107876044903372409388672308665244858701637115578856046191923218331733759950434352223581727371998079425938078119122698715563465954420349945407805098029546287364238924212009317636170478494062386227666546636054353554746177836750531348092302643879699942997271133816556922148748626323520299345137257811292743098587403800823061826194449371177464260419386207286724485001376532606839876120869814599085806310819901886356005925804489950016441727797284164067749660849381562258115282082725073552263524451820643040859203696485808522746488751764195867905508070772552738712734011822995545734505125273393756798516108276748513514228321386843449845444336912132330211012975063721504269143027362043907932703892473466641497768827922295552510202611570714049069775369068798572224290403958377165692160502593507893870163254864051609745001382428522129208194535171856375134692157614673017542276393015420636947955097487073146793247790636653314301810198038731305901569312578210112433135944630401286269669675726336400327014773273370367015189691167428677850219990711624554508882956828253641106603367030047109330163706552769520225188123843386803859649540213522329286521587067733680628128017399480585573673047317282293011250436904001541532872262688725049875996604337362608029804049672186092149128867887008852598134878186645134429782168420439744776007819102318620998036458677008720784395865615552817342706671388788298322967331898190391382074404194171388534935238985391822553549861528188523289243247046452284142928157341281827066443763509189014755522776472498431140651056234019478254228808206921559254229087494374776767906324858588824915424479373153200880135696501118442518769525760788276861229352779969198152182403098895932542847469437331030016250985228900486441759545433250768584102647937332705018361254413546626757531271801553215509126381474914374797083373162042299536622316523539111768557056126465712451380982892767100965607034438882745460215277357641752553430155242183784383212829213546563765482716859944367815189546110391512051853579839752757218653695147713274415162353233105426244204905755488917039083520109106034799256937481600465210267292966336925705995191035485305438079550853933728385758860714507193345537501722409990854575947659490493364853458764061515043708719562732126911448959463684016860475307022154572938806159730073123794375757253706861509008806342171466336556611524576533127769725484674649176983129832949961463928407663372012889418282787733829549839151688663988115965218151964977776932227550101391338935962246196739186551634661721793654924750850883901257497733675404764405383696899732873625539556540044120525605593553967397679866019464804625888492690205010727212163876733022257923663306800112162653069659090146607053525660133977330515431710584411790284744778416132295171377575326619915417180741056350415310846452487143525101932849017078530970467239438221344136994946557857414695367740073443576318867980522978319697207965569987501093272190299177032086816134302120138820726217436715930119632816518887980359008154333381114551545191325642459463044945137184305254272748818736200547688373151883041891314177353013637954104489531459097045824268100205300079596600413931575204634309884249254303177663895337099665730132273609059112913116707281841609932220918742742741681843154605650404741501240453632164016080572213267167021709926918814191665878042849187524181266139410105480671254667719098628160467978960168425837235444865163933606423049901382648000008404813907471352757821405812628478752386444219755135413522072407836944475882094167100376077871281508020587309614356957598752009099559966804817171306560071053766689101338135704747055299362823105142012434020507216447592136531099293709437421972130555861569433577687353619257156118512394925343258818616256961101379720166377933896112740989320926964764804461273900040544205793876669552152159146204689285766195717216767574024051039130377145585635238310736995490963325015733042222402998007696934400772776868531980294804721227265658620956487778104226018390437165170204803063532264509505559724624383343015502255682020840117805386829155034976952059522522483525189652351145747737707910917511089117423148340820065558208165758199688295972281036486122364340675287726380040003586389689727297382406884189495801153598115736787093194082303333229100492553059457717490872329302202555782886029279798071061581877453605956526963134008347680799888334913139946897175771547544017384502056560813506999688875448804680303800668164177768516545714242211667107897244853809600174618820806544640273951141733903571636022498253585626187597728410485609957417843977879161828437351277491068292215776801672771028727401618222781882421559781280631837256720873843128682076966188198830255254362175546313967330945653099859586474959027452269735930017072088393833554044958686581483002903823787570322507209146180874232207296442415725840013170685084175552136728609103173375154926829974819505800887716555177176700527845981719698859477532025102192000243572720019453509294421604049365714882289381390070229040605654052916380363020198245330288684926049993390470958183635978213100145022518200779356863785958378220523469873472396572900483556168837416672670522093133886472581739347033289589821670486908672200064095488140491898066494146661475481932304499248901561180134055338878966035364235469169628363941604418647817024507037113001796283195198042827167891342217571782084789215519540159614404875550967619492925590018386479104038092940217747217979730046019824461330207031585704833491107120880975713829401606619786966647036809173428813448014087321379155902278537902112005609407138447625529625196618869710649676649242614533726457365475985745255615769040512895131961248463824264489593270574088056369069137091401702155220853340307854257598732408107168096420443181242429734220907300872118112386709648133802569178259159099332155001153110042492831270001897705019881390873258137177547042270632704951694239313680763147881685278539851860753888832094468177579656621181953063595557220894189589459931580476023200992820003666912155012577829553636362313736932242729156709858421053309247422490321529850759461069963094888523516468441212848410866698405253311070644480560424726045589207295882827818311701255595382983099126987765740239940036007347234989969191703077822615618442686572114751869309161618572366154598353831262123801112080113806786620927165959705927554296696188502157921104783051224868353039360622987579337311733437179890415306042086519381798838787370320300041199849208476605869022637164403399916512318658202135132900880933348536510546470359353004666765043209362117686520547670450845883893477121573694418159229824258300662848321495653466203484180130807908408677828279251285527603774700812753166364790822295151640381203922181609992151440334093066703327875344213319712307236097388943345052933437659927078308939137527962413631788961912295461280126912444245416204858956871192695733548117581519550618478960644297496130782268031208831083556302636135138573200699172495070058284990179605561488785428758180362859073408473782346252324181053944366026195012743733737184778656454429293265798676260011485330289391830024609051044429112337826725219145316892940755143215083067788837534752956575354140396605573502162168235714144206054134808583768164443261400357147570962319993669154071405108709619343558587001548619947492656172227085366975767679419700459902481964316107729409703906497983072108582259638619064665950423537073046968052487528226981622510707644148356661689814867618460344943964642901084026343061771577793959599794161913043447833376787592589929948006487104785453202077617364235513714843063823302039725311947311914759184061728890321582196955582582830493285018140002687933169540399695500257444928740412935011297634417469701690678005470206638031526215664613250418442480709681045855000355883443684766535514977452875379703637165745406250507472457494252128857978254126717351480036942225016224539265204989209698225416204043437515747821112175917939514317641316504393565998906518546135506441354024282337526213948547285884178762215481286473280710576508889170730498208729793974462707306609672342681239839123402791506401763783036197450657916840918169105599013202339542642252859958825105748275318920755817148417171296217854409321724466778142801420106296507929015829079425617865169077521784082094341343603335603116890180655588930971578468671401795397424860952611164312195586365894511288365319160660253597224858965400099800822134887306843099743194915514983756170963354551923322191589921964528261713605699728279632575092464701103192250943504229169355099425512852768979339456585217448912963897216200119479527584731637938927070724306924767951724987382281095079580870253828543960217414282489488620066450579119347231107377187093227739857565183029179089990848375116209419323986884162134327143966316886472895489759321155378322801565101618052936719812943078885353839838701871410489851339388654388592982381827300772086740364776891687163043963621398620610459505548229867110969286761196426327254509188434687375340107752635616453794331957548448083781109776583305940227455528043095116860469195230289492605380456254281658658725071506179302267701608310543269927902997564605228262872625401040501670211368820409724305202977487697674417150808540328635981196568046197074998668934226816257660536373551424666873154927862814456490967048624514337156963837800423561288218440754051532070944188945104649828458905478636211625086232578491019044377583240074987797623640604909614728008548791586384616915107158451901357328155411800223754694405805521735667092984651165507233188523988342038897492329728819714365478444929742106693371066340320876631700362135691122511316931941733447594485814593894309466822025590712718956434553695211176397437937952430457257580169162677778013964787314223818952442274849587167996297451354104697403414691829956159490390136799467636045881997396790118798451056791475463492916890968943004091101958643323491361155215157759991125228951352456135023943166438033804134316188917982671440518526914971501848691990010201799901773551877434380852641214939701507154166756226061555069403929588134566731505707776843427799655946098770273529355140036165717886163011028214050917536659484148687906111958456757765942890098131919411685731746262757910072072059700069248796102092101987199117258960538839098448433020610431150064033610249203483996470457276088411688456142420758580977223995299217477599999638336414232316612919608331520939932055819456519754697369013443678069230623220830227553739079619213831725935739978925983246368214439409725512600394896657189833835252845263173797737357355694398798480364738291704100613231340814638396160912221072732282259928136794092650106635281015097551220604913739879827474522750466659084110708547469033975317008556707480157450780831697042914595014555481009845903712988012832494270994817864098302812545597077264291446550823309138501688719828238266934539433790136380836252310059273133279804793688990155320283654840870589657442276003864820538033992260716061624706301487662910658935891798565115264999487930071777472198415672976595932513999313225175289182623644989090424404341854071764298020910083540999029517892848634512381591721745161731465578601141139658708610519409089786954901879656128052752097656072434582782089246926887104238476828116722386958846400144168354733307188513554585103967283088154104288939239652827768440775094605187587535145199549367013684673150855820744678895109815917262319849677701204504104916083526396996294072991364120001011667520864013983798106001017501062202492675098623828953757381779803576691676615448562273740771388940974121730301467415032673449569949864547903228395030374469321916968082459138051869605385551533012262847162237626486002193439650367847053692275820936950722577901732088919484107849394575762046076373060925834517689150839956583519246151217581922019392793773201948064933786625746351451314463455447743260669112726280990917147190251664021847785567937772392524586437618161044834083751018179883291474064571514856566555352328379017904847008131220469311067774426390867563174410794236109693638113651841615484647132151962367252738536217987453935412103899501563130305431541970731247515548725840359169963220188560871010671583931333051813013589956553743439668135817879832176246706302820574661430797208938957151804733842642630899692630142868095537370328044817353898567128801964099095694334646508207481823874258621268330612070949259729237458955705199729948419876957651883003320519459361282059387236531303438297301746876016581128040662455146125399796603360172921136547145603831058922254556402592036503582898305248361095388549658622259087573671759851202006999415426663336408407417111808053396600634495172740720575858607140267241514850071699542739857850834117951810793449885599070621149597051418253890636344414504737872275887646264974964562043981992886097629566388972257765544985902351046295234776879233448109347095348153915664675051082346230847415501314359642195173478000523284523205448302341566908412351467400374944219166035766792938746948721710637285578057101826676156382665114245649442235207646849651238946106272288883789039885578491008250550964707089502795456063591863042985287140491025759438024734646701815426805380146585986855148341632216024033029022922114188415874223846151167190740525295811203213092234603385832340391977396332741251114214525083037229390581493515937990704161035969140608581638908686296863579944261624973364123823088083914814293262826355755259887995843049896416253946227207514945990774090731536778236817185981974887218682014574275339953563095570221616362810077723491394402899348006259753622014015329314604518859438817103144570950855261219771039470095240370514828621032598980441840954578319256441092675110361204629413356172380187370840926772019779562130854180463384656781875006368346933545823558616918798567502362861288280136892253014830291733082516355661555059799033304267864152012666174782871587665166463762177233756095079003495128401090417302797420995403040530794326258468687305113146241570424129182375091089452726014833682129655018103695437434474763844578062955597541255536252673733291516103556510962105718426428290483738716999711283867086354083125576457434974552726887950052117707384299808201038854774325353963627150083368459814010244740998880376006716581077886366616176029424210978647459885023014487382538507425842926395998524729689547542444810476035470694293107698124510901458484462417334646373778715670459475939180853962247861929329879581270458236402918347048647017260907777788538132370972058543955274940287517604231810079103823290005116388772930841488432127289818145932058941977994785105270090100721681318887762494796961079140069680023256779056610374064674397507060251250146903955091940339002537598379533597443149237127490537541194706452535802385773085555381437812403511428451441688612307010961271218571072839046178407943464191263731261953413265368485979620623982860970711643217200823070708219526792873339840251421491768505752676541804431856145575833793116788415603726413846322018479835080692852501256167580975408466828996659645628870257399393580556963816298077563369757913351680544346536047419155659934024917262513560246918741168651903594767430044980279871366062916688028207877844837210706945583655113644925640955189194610846123637449891374055415944747514624758904172631676045874755115412673841556842093633438205913677952628892017430076535188010717819840220699047824709335550884432483077735438789300173082868459762432790742681222365773262649862176884334934599719890448844043008293894540976995739248303605686343045543786022606536811511400600838055113107716486816193254889452222804833620912552810257800163838726222357199873709286192605654796508772377753626125308182992053891684270429584759931324830087256128135377287740446927421168126535404208486893111162148382423888504564634353216322485285901602827600655613492480221768363573187101263809593755895022354359911914337611904491692912405640167156529841906309938968797177868717140857347061186645141666880553755889659555796428108109604719697328851929722120982591681741050028053155647821314073834026169868441443565579323860284747553938769294317569740500605634804374386199332727578790122051442084558214482648552176682203651960368519044251464832715284610429414187264359005834567209511765687689746589124818153105327352630819672221425910915887313260124152107314804225332358946205934388967960082536831947921157441952294145384089423712720423280768020353704108363698114115558519531952018865929415231304508677133820201290287228178186308726555185181424005738335411055621638589944878065419276393113565636942261008643779730321010311619670305409631282777230678593478957165506082531656094083304846842822275506739426675768115422764557106846094964678637809230370555322905783364377604556303527928173858338003280734416159025148422074094068523628637270628040337450868917115322540632133238683041427834469404728195562304611713110520517173995687377415214220684549666900362624107769685344897613309686867090902726186596419934682935740369648192781441483465800838358908448030896441569321964227451079701230434736212967230628553013878857536128592450575157731076299888038552670875302067810914763572926775975482038366006100416568774454270301581449446638097815036451517005531685849722383896351424103753243545924667956586073892258590155385461217889821058110446256750996576165396105112920605825919034507459559473976561468013683429891831956802806514474614239887507867561828808631072831245678759118413791651292476657588239372136545601558711770526042325359573859555439232497477910871835872089938242963639836934558119004625906067737623609968411044178433135464737521833842618664610933556621359605751475652527961618379525642861745763021088945754487771866753826488510316981913625046538490188682308969224974784972686600228950767515759405951985289338586385665874676792813332895637757749949810729448468643198501214660417181690878667049639828608547810981140140589666358933485806642904114097051196660481042228767374262143418404383706135558849497482313273861605585670971599514110421580330588278960619210326307297461864370765483020050200220694124277578166984340078832331363623650982843972153190401545504980292598825224550870406919186583522319569513475724153791965288855366530715764190691983007571287638953310622406650603369775869824122479255298901891413345494588252398614952617478312689563173188156413781492620759345217126318561507135492688719213211858731324571151058314363206617347705527179713600680046994095490909844148894041236708300876229210554524975611726801973577101726732793314537695888026335949073391834783035191497042915735518721897013330595896280786974306051748463726430550583011357451775044667428474525168170942200467463387579707327276660565889856446220131854291436487244625287302075212286537805162452793548355490386386077942985584845950427284047897371993169281181852962595781164240925729851930713758411436096281615586588507415229451480823814626288464667122421786554471559342044998167554587848593304466442915839585794256016849845229513570173590248063266029942318351438020870519347198576851338912498157741743215593332625835522841422648031411399091590068584669401994865271658658063812421253960069065404239705785399978195132250290834645276114071528272111586578030360578278532280044628403951793967623760640803034133591761385852859631735239087642708320329580396774177169995395162898357273935584174250517546292114969510119622510342083430674403449396962942610547594541259508476417925655517143367636949522456309941927569087081072464252686816808548992482709805299886055776682738649643325759694732451745844445809500489477067111314354167206959187470919958976714004197566073708927821571449846125512011200860848963249062822128240516235492350081514089162180686270735810332303795793333274605184565143408634628611059205437177413313354470985376844936770992963067099827866652691293276079488175369421421680393754373516330662616545475083143105918984757177162640685615805583685470778674654586437133556437774594498699306950405771238576235241201656240140465265640318123139556459991827819417568258907333642590013868585271470462504171246927600927019849218931331320882026458383066723522940956167499227416766983140754029426756624092663651028775835152488094309008273615346519601600133471579760524286496473261512144421516516384435108265373552955208746424057271080918771770690250699813225190953467374947949818048279945226891550290308577750256456053099624589282497450433582612865588595665644531141166537836188301130684691989097597671212781103646958725211643503878346407579360680855690911794865073753409073025295315064525782815869632089565718306313589719387608709278595877320406310350628125291623770527991065590327351306630693727812890772214846526075428786187753358255473681548485665440391575570482571348669086278620771164183781806312257891330672198900511417050692844905515871584905353797655513275149633540824544026756066649946079452872130930097903552995513858437887935352886690117321759557797884589646124780295870233651039432766029207912009960616239327397970391339604314216209318334567675694092876991348964602481544302559575449675734159991662436758710788169763272747298137929081593450437389105052595641386732001328026432394985982975904162949939449413770152915248646243809828786987867725341474143121178630539533463849271769746191363428435884593084900502646126642887884826025682633672898957834063828680003742195413637743494581920660606518711534988238462026217835971822793753445078311703743662366987056136435387016773431390077504421451914997910505305304127898585913943323053223583043823284810273111787947449211708341995618824205170810310179106712651476421943116812364479709753676150224021732568038634043518142260890962460744964197961277841225355748524164830981484867004821681935559911034903822455793833882880243564151123850931833124208560635015634187292460642604707809968467722669593878106091891432280275866768077372102319032171166246490910136898888001009377235511233698684430461254969869531334492791479233708746540736472753343867279761725345761646854494209870560562911053107461435388681970776838791209164243664311450668529813006249943281676447586634569453500014748840755983437452603442596439076953020713648165118187230624953888466553095124239244748127138676895396117207974777596934601626689615527023505532214134819673942850500731007486706034902619524660920851481471420104439816310672400761464756084701857249765093691463524755888551502050115896933077353191331160348146703458349230733394587225255003383700922428386990188576173156099776413738743465616340641606711825732898000761524164176704722614935848693526723011772820661648560479611879703828268342606270837670907179772800837992052421286942730660840262201535738671970470304223786402656059479815495992308544765949781260490827253392982684150409753259170786511244424398009896392425923939354250215142888489474872554561669086154588603349880014950983335919688494439112525087819965864953721362839899515951717147232082662535298189101289589175446690418785882071679870484513083374396749924468888329331437198836819116308244057246158963326980758136530110398837132513328205969528054468848979772198358842968700307651304481518967128647092974738895344532379946703568060973965112981264038391220387143402878476018704060218831002888824964116471666726418855147977464693900595876263148494356997899969965001468692895326802029266765251211600334364901191475503027335713463499420218544345938463532909921809610200859043266636909231548891954530307714630030420307863060790979871635029559129678796586967574298972412290040416813661778725356489201178997985300047239226635457407522823521577768894865547978850211316156952739598567796258485598445448881323059184829758138064683134823989104056568432736186107857787419162139160589873861579057845007470280140043451450039224831690634947025617174179654643150701170843177188945359821097611503457275810265236583486041301173565494955317830053098198956358823140315561531865777645386783668854361495193268669155749046728581674771228376520988094905830385818684273953720520857132377202275671022260499405517267536298953459988197446109443123916851083002296559132677076237178729491093977391566028603362760584096416282317330106007315717203854085115629429640099383735182841629936863597008661641018817933984914227547640738179291741807355897410412560848063908492104410090424843953537754786573988173898090270633263540718360987432245073494399985507997269194103430060646605248725790638035912944388745558710180852437702709274148555785284905987111068668897058323800634235042248485211147582011141922010880117110615114937916821384503672851522174023286577705751060166276442607364696250893226835091590166121713064433594874829079681451620055996029140394354118559076879053846586630422109291615371675459326219707320660200362114149776769358928519468502374735480184248810907471087752928399884147584634411050219731348845504333760914716421795555872657448244448497103323019021307362524348806042229313089298278277380467443646746785956736711228710793277109061660360945347502072136361123641452253149089223882199215947918157052122977863078970715345536174226024048326556898114786268741236990414837691990824053638291016997244484636565662270446416604332496664178578408392597563310031031847109640293930296556459061530704975184391390391969136783032383580985530296111430599999118936904570556334570397329897725087751756084718856412168342912762543311996963694264726896288685670752575079664434664003847188582485492001012324578059673034887501777745553284406000206010199332745820770864724886634204936660887164696441417450994352737016120757238581642303084504709645195311725763956211257224927781127810414277430518458534412339936484585703604739802545374185761823797689203881240167317041326166431255339642702901141232636338500949261356526364987022345006863307466217028726212669658141130861450005120519699316464251266869049507597010091883596434277592037674629955131721677110511583898926268941796149066419948275697640261621941677043433260728192333193857234629255283267628957046685416474331372760688775384170777321143249277822506045675623047513498620702616634400728752343169003460844013970831374472362827415257180227811682696963077287875568940827521554879398736490873591708141578214217355185835372993506205090353383787472159207921026775180645092722581218969153141407299314876180719077831503743266098973791279132420041669974162426640771457546303995465103611561241066904729847951581047997936282832522574545192677034579590429744840389555001169371113650135071706316366284071714256756402572149705545274473585398280153040797950594372752842271938791788011193678948714494072795815121606804336963593982060606914472679358968670175304674159540397854863281867310460236772740826703423072853065472057599861551064375168756462913194735379833643885586368658675962458410515627567260156342661831936189719340533510310032434786078838164805211347445881154642314422821467409932361281531926526257330605869814333041866072906246121036733661032217483589643831291490267175488396082790161571022969220425470735256536279731749297979525523353577006328580909577568125452818048256049589518105086995266103541564972899582668693442094417833489062612652356175077389227821685601874016719157348041955370694398643802053459984697197688561021879476814750887770888672737265383893398966467391157404860996057696983651012133431868054622292515138975954544659772734840063317349887551651980372760557563219562061838277822151532960195986392664583404793330478979126765887188748593922151396399222165118251591898855005249163698101374891580667804815627261919223283898050365994529381539351451195469060798973163075909917919934215155738926228873869699055305262041478595601389499949792576180148928069873867377629301476343273225242968613413591964687816061613776439542678780661789069106375336265635135677109406874957778801329418764816874677354582052136101088626758218825882066648824448103905926899709437136600888460020809295555073668681518783405830659226414418917963909543258161304712598243529136130627816857153702516995574580209411309490570694898226237546980691719729423024563416129913059507819372765186165053606088328351988889769450832653722928182897838491626556017262431163889985534293923745884242439491770816541875335185749016962944259699481608173509254691874050013224946458196567996723884653301787379879160379897854951677716519686056417079995315548996770099666633778274503198156783409039084583224173042278548960248548436601875308325867206020337572092691765583301104787303508698831287556114705323700804689896442999269689425956631747179239967842830646141163509813290566153833180434360335115427255039084827609656914973019743506041688669093624572418196240768785359646923150443656900885222719331915583623968158832011007526838801409437776485510558283033033228466309834637078376950126557657597269028028698261804106847733013700365918697538804300303797228744690656669343432034448583979689834730867960647059185103559083407521633286020179107824848442588728301269457023268508387139800129859680647872284865211212587696447937026583346857229283418722883801002024766738138148653829268306030374505721812548366802469593452105355569134967720087745880709665906539264601512556879763396715487655466633289198372577453503795593290377502602825474571797177770794038768136764217982060903906579582643748067198228335055651602581175409182695409062576458608800659039532341315686840060995093438011807000997182433398163181451192604126892658267137642788128422410931936548712203076391647561793702627892870812274145210157769645819716889706455327110800742552831727387311634506729167823363646271915929227193278590977817538111510451354599784808004017931039836447207328116864164089502710122950266961879892857145245509007183093916635915394632384754376102154786332852592710178778959652619534830338333008347256554850800050307370743296824217576913251174394056755563135853832773315546440361583900276064623820231100519182200429641737101523751550023134227506124752561436862855939874415597025156280377468186557098500712885088667517953515410728623631940135626880833470488854703827841267909016672036840546950639564217937892437681492582157640754328632922879862691448990587371472290246715369117893931480402526625625348873625668041210554528527518112101868600103019500686371028949377348559413826006134218277581415153976811633885544503465277261481492003768092837938557886595291466538703108722888838969076898930494789301018217933150539052339492806037625857957111412653459964292782643896080659553836939626025353904709614278725603377372549333387660137178962996634025241593981613709420823820627090184332381107665598285069640185975124417080229861953919679328047248878782346895208793887513165049873284256200133359021960048881751824056315756028657446463537874690648335914964856094890263182563470407161726576315263635451131108568790406283379889080194038329173479603828189007926590338363438547288439757542827917021586061910055642942610147617917695723524748269510294971812334394806025170777485156145236842954234180960432021307835036709793329841809809720383849122740378905793940956801058283648825837312222769215152982622609189763449889100409981483822063075823759068006462107903899414853986333751914664727452937412050688312221802536579649470638044857016431044826080158528309474894149536341978007146429674895104089152894677957915464819608580109445198917199459972107017532335817951160530912323295942001305107319650739960414040279494998050778692188727046757682996041565058942304332852612938103684295644221378933586264773323529158626032131423484972300691680902495821364907777351927831148827820939876213888479278196006778152768297439285007651023924766834893911280206117141160309534680620608183523435892595563447620622755144143464014291774478317339826041542398375278276171188007693632409414254215188295926380324518052735634544513217491652521051843540553488410121223015559564267858140255423046932244892828469946686216539608048730884124581208947021606130243658500700992377516170675878138482639026013297260238874812787499761774106050686985470052107723268033310514690588306598968472168882549170242352797074649360732598414238128862044385160302213380945525863883389622470618123333099263046616283965027150641308917486039790871985294323118876054206040532331927301809567500968365078451414835336588963930490974698336723892800881366332663667293118473841633832041946822315464277790499622040854495097764755068879887192420110832645911368265504593260703462333351546753340728067797540056320228346136185782036903036851122883108692023600048633396428112050418602332707810317528977537309678286825854490140768618304339782025209170685726843592737272539240266065018116007458291025326770708839637600759574451869882726813060646063114120246327438867963711265578594919402967701964211661908677294294512220453585374945559500596843511324540117619458138757914717179905907777548450377116429348960112199151228343627581445693589116607312177294253246093597911254574066913796423045492124655508749475686667289589318863655870910440908651364574152862962887795183431804353151204070835115820954227354609571313587907445812907776076501173614037211309986859430679082314114180532782308202221371430539172013768505936029637277008000559483136736356592467688670300733466942868659210079138306519166416530789756149290850912073680375945415325697951357934968250449642844303953617711347264150870646300325912398304528392827579229983637071024721253398586603389453597443234889708369078629067756588938959677617950308993962140053311390036935012063133996120380771887277169106124755386186095646447188375704357825464448500554412415370470101589586766815451572851907723831281027691045190920882516373803414471273950600837238134094972068182851488136364920369018225907522899247164917024022141426196993899721578993777125196795673611760928035674219903550783847954789742709458101309330678134876294697953370564025459854039027651976628468363260936194769607194865459531752197313049161326072854726811272294320495131993675568345971337987509861332188274638187747531512730102101351198221902122058109566336900433115403421895190675012961769649207866928921351493030682255729745532373732215942915951118366700986808623174771050863498850229890542222606854147280667238446630187307905233944921276504915567679320755688056858875013989233992200488913406573544348000294538191508118065955635834580972110275999120427508815562346468506070880585632558791057510964727688471145907356666699313011873561371819709615665910096284664338885187613985570351619121074336263559920139241181653788900456756824178732474179035998749237870648051420291977815363397255655859314456836297478614602688728304068104860044306238723231715839316200934259632350339068231883064338042952342208263946254700751659249950269556464466428501298496961191567710773482141585410944456926067061211073561413897490820472539443521074945905065010175807549792818481419490521446871793402748971620941860874643462758576626522105714259225271482740755403341746573764660497863412804260786077244802092915024581129163882262622104484573679092830785208540808744614132106908423555680156319875100317803154013289134120955340215279090759431026040915441131278680163626445192778425249603354540364825248008008393676742243914865283242780320081798074370719113693917956714339913465679727129608950957480626720717660036524025717573733560361791143962913446602786479263593570477724062199675481895519435286318930313014767025857791173654207276567427568302342972524377728055778301096425974068967729096053979906895679545770559282955113283567992155669223647221143837417651313201277438914581326234886603677393821328734000840307020238210688457985459706453169581629718411851741643242581260086069784842776361397793308225191995102591077254313215987053875850872126317375622617111053638075363063761963569486572411159383486850594879660771302012225606999502436197487031242224388335165416625203214394648067899922740958223827896310576953774466061926322225749251418938874208673766234149750480894744207930429547837081878991394000067341226773323803368598590497616135231107538567049852131092662084040025691382645992162730906518054150367334975486749325225391453362991716211505292594320816770146999913185447383123757720179557575513771361701148241677975828986691266606973399647873183596032972314962921097649717304306661258926758969997801298897202767171496502167662384552921899712287269593636789848633810841934414527641315465612379843711762460130814349618293541786976340173624271165757661565938232507497442897634209477188890786323991102562783902589167408436413367257575469860906763462466215224530902343124712115898220358022627168658564883575696070165550685900107323331070500381188172591184409143366243076868136616610294390877767917571574406739392659879359079263099294108621314108128513762589320370675115815264356333930737672002110968044755667857105080816703505969322207687430577862541931833186138625806284197949148903794866454271807101548125355689733544731520237433287891063469071239203459353231625748387954164804148580741794125896607929681615540656307864928288985551989042675909386593844416933522431170490907050003866548142999507651670146401061262717232046432589361803822872208036267868356395229865390492561601715536985145299247160977393080814637867830170717425935869932237359158012100790444033974315617305333755167009371169443638486819877090610512492392907166036283191087630338485610295338671667491887920509365106969829179713141901164425587147419051632920580622943461528912650220936136519338530979534518440283384073992789620512603121160697553707217316901611887055985120252160358270797367638898534820671717666805746175137715956594624418883138671709760277254176810444924637094396249691810160003294791819496869878564387208356568127209586756080451755453722820374651996391123733730090509409582438482103669785506338747168620169708919638367442107268304619734485711148542821543837221581336127127616765671347078774835956313911835365477626764494931414036589358989327992829150897364537388053821918046277700367916074850032963958369431353154127145137292823029759568660063179621780185851853122210385024500673295797329816588429495625531423639069015870468797184655417862362222070718414899065671683014838776602694479952525937916167243589547661372163490532035013961018445334707791199016465633139167628495797070983999374847587816204249850760584831562421454692855153095577383677876448296984097871293765935077063732773760160234248245796802125271889614281164354409143160846612607277959332731644425063438450093782484426328586792184818087241435658101902347452662589009760946013595157967399846975363667001858229391987267066870136023858834000561916238686343469053822826609571682444799896623634430881519084942611358159068877974053648207103328030721078656228720768747937095438793558370249550153071120311015259942986491095683925868802839617136205715052845003833859029369995747485517845904365977693285992153626628194651041902329076469608815048198345539826014127480393198307797459390770300997666878403379462854262673964354671719632096938836863465727911105095596473597473698076290075019166712036802624002582631377935844544097415632825988000725192226454276958018090572706998977638408072827352675994374738785395163337670602504267956306505147793248796235975693610415875653924889225375175324173385230277288900852762391151295730956279574831102044786995138090654992330251684876137910431798898968707322399483355773621794826494283282433344523065926411489692904082359156910708972201641780649929074134429436115943537255877537858702961265629066129351133322853145349934650226590798998571520579988436146053005949740345946266431762200498364073851363338162712437332865465764987894452134647428593791616182846806584338571649067419120177154734122212574588077709558031673311789996668888842841497631094362992522206111549928581071731800471455479334411576052632239768454503510336769743562684207112191687170645111799547101349510355826144470093122771886630778024544235224327203062997227408208242740959673777323253298558483501443827778184048234262441573117876776035315919272013540381971147320507774343815118656009979267614255864125383342212405570532193099713181432724446481310738970691257739343446892383062697643431902106047698385607516896392119906746931277462420027212182875096136234254355279981493242450556039746418171700043280324815196583861295455625100216565793964965621337367500417108868092851619372478338077289781297950820852825554101101911505932868403145630113909159188864095058593931576088210762082926881819258162708811504464716265330948769287980200308202633852795449133179910136582176382196822031569646595172840588554453737935213151048925471171443785185378742925539886742445501767000875640799024916532346437134806213658453350915217715221967055937005488072538020224954411126431934688841981363135631483805260104212406218646770069122670968342784084118676273971651411423798134581218903128609207073689953108165922412572575539476094265701517917392951945565429768112885993267002176271464443831211349534530311379150273956272519254620732513155279455311902620134213375049638490836978437080352762346837976318933192815547662667346914739143775407239752132546630195485182523518281931959620136167401394105974439106641048593203529120268729973014520621134634185695214759462130497394971624485590520984656477558195351809879793462075927141417272430331695317218955456718737659446086132887808350438119823231671495749557256987693903486357768916407985512274401432208810410013496203752814050756630921475057187073849518585629861402326703979689601202593822502974298176107870773683946978296527677314829323413373033370485259914818262319351044992019417034740463830767903197541913925392220958570975501825819498577946941171709025906621792228548411099495582368440148547544542622579662164320784843740153081149515220476944935896128050015351497494794258726612612323172116789574935023236835009076488912258982774803040939136495327708135115662434700700606791236487051693724079178177259252792530922398110119262389028764958897678886818260716860457258482245262753571768780754117451127248801986425249894586601674292356363995176779148516535727834481138516064235196031125216540449932373961912089462015556260422397321844442502352533084038718725764292246441355484556798201954347253953163651393377211028453186175685830479357426113799849446695663666220467564599267916660707650223631205301271203718905591856864998579442036490071763072156807575771987561423652174470706463101586610460169420092037040225617317594140329096073258183982849894791333051278996833354868756137853441918704610931490211988078801730211932047846553159674398272429290046376125448293594393208344592770932341912159148085964946641341116231890899267752147221198063926866767691646464233217044574688996317368291489757338736601563094761889234515250762387580309807794576091851412877665827707641183675509860330044622800592882063196143579087132949229291356441874236025096235954012090567456222823814778471267887091496979446604314612619585208004978053855429999802617483876917776544063176297339136275411955334463294146928795517878497960265759711995293506658006440482448832758417005248150720655634680497909635774759200404561110237658525585914610218529053843977257389944528677265336583390406555229660137019307485863559580839048428911813971474320737197106958782497507044153602586279311565748110519506093710973017625159757973910621105211528020946851125240548406205881230027456155544691488713458094971386231460645505680405798360206957848480541615828816256091414728869342121807914773752026736280918828459944734984432230051828878067920265918614224290731579397508426345080118414146988734391834773855597518517293876830761702219529394371018177614355997672815857925094284156764413047307160867497324256248572155677755221212417338769135299061820700923698033930766339380869932286848763309362322015688139108241062497078473131205896599778506572204566629703169105288772729724480960595287433179901354925655573987379822706065765352010074060556917848026766521318948381851292670153425292098532401476745025359461850186414846977297501857634088872327865412025944917125535252269918263825296303746276171374224359580160291548703503160997395289408127402847944422038674697807799799629126621216670512171859999086230711875814487705962629983074208829175939463011845199888351164135883567472128945679691351230708541283505796782168761350896782329809072423453631144410624605234363219875933302476237912356769621325884263091617409085142829891195989377221626478221687315559696272461108081734889866881908616505709753012740065495831349991093444139114769838614297788756315030808823126356690526977741840319374012582447546835938457236806464865806152846297700325659847907404774504180308378266062826192205538821834456530888696368762295549707962949195991585012530585046299980623564762773730598719872174240669232906110305842612566328000334199925657697502358458218608067906882332697659864524411488255451562315374045207982930693483102220338521482997048257790412642899282336852474267184791105521625503749429221586485765107666099931662924617897995692219646928258726405519909426904016964375765149514705876332744094052886400312599774264588093647833392572704919717750943227713816778953362833391217854167743035630381530116326261790215695052144656222820684815499740394575079726463549532687816489920623917589113309517740525246054697924035461239763600456600878044612420526412770763426394577336706863417598731325224825425892528161702533477226708945625116155054306947864094133684909275423904706538791731960267269027205806737055602521931032944344370145434609357038961153682743147327657337909181839948224414258883239762578419886249996983230562187417256475181900765113155047616443663346877758677039805265225343012209909800753575996959391426950589873793711769941055174593371033555891518148110183761794321344264088567992581923571924999453402131290509488958553169877444306480327581851678235152246474350671181880513205225136644746306604574830477593160988980636718872572095215338069471602543305150306735047025251429338133794547506288309041831369341679630290521680303237773845060519081479564961905248982790777796698530109009535183855471399084673047612342417494105693338455208087303268644385158596590718653083754022264030076083549794743082429979848172830462233926767890515433678756792467003883678297329794138230391880295660706541055152654390249162453696060542832902750275993904957414612408726627705057042802993003316369832322212798009887435017182189334824629905258465718510939294937601005922420213678066911325305616321754546864201567556930867460688759185496420198642733154518915964524130031475129364134038240230856603919345980869665969970869161306587588153606580693096076541027131114208846151368391044831173123677500283774545713770310824209215803709893682780312124876817345924317081702073209730755235462676216492289884676130113286288987820537944130419992056897956025584630432958817994186240912390100150722794839346809788074766234112319209023361534761872852264880771645479722870889053463939818448984063160561803151026495988722328117190428182034900538936999763178088699669346482700530349515499928624139851722506622790993883048096960801516263196725556697908283255455577139994116650714273118201789834219797595663023792699220751168177120000714760584069985245917426723016103442700254693782137074116380765160656659065035709555276443332194206801665580602791153854800964505835939803147691130805767345107120449011453635940149081743794236236076205196579385697246145353256352901501143258665297593320400069320824746250093701592590474723510362979940881816671336493732775498633501720192236697886836851664247389368777837651373918875371547032259329484022763666590380813236684853300997495014038878861519114652103650519024467333421479517069982260110595595541736095430060033052583862910606857154754289697504765758658757280872057702740587854195934317667215367678315035768208156768837739336884529552644226147820528277294824137633560203185697968992615529631832424012887270655928917421461167460063622080856641748007613851390540016334682231594346560913603043516562708297050459972836533510905565645657775103539122324005035365389991464615253454880237779262709843082481327938638908596969705665863326303455961330214968788702699867071744119801312812116866031993509181928139683770130867639949743777335211453921192586168341613965727994090471778703447519767983405361749428458952312823200053631269912660651052929128620361162825739983922559948384897279300157045570122959515513739825054879570553836568482905970948726007279732716824624869075632359191948695885781097785231909322433745541992974340768581839994508265595338517510840356322821429285784289952641198702398498199427208557018023521289858456556621556359156845595737154203577797299279292628643526749850544028585553540926945766136492947702574356126515287815780448401772146205303896933613261374339981545545959942271043242827550176761828632511774327275344104911927311256338913787604399501689229888546780112607098082720084287786553545012041558705330141574448852247186765901613980154732658136946632811125265237795987305247745077091653601668387815821998346089891250198723152982581019627016505481794111624999269272284133149768568522875019277816813791143799951945488361566354465151908402254365599590667045535209070931272503466448892127994700679949675946719982901260602626986230102273428824048385781056218476142421932455101907320733985373251383338955019000635015687385210553187100588765341899159266483654719449645736327156632210112004126822069731851520597160868200311885850065255180362299001660661238271239632003144123429208908667138372216309208956271429624092016371294743361923355405593677832222840537065962322067385547936899073454437302826846466072853519082046042674899501161247203619258324243915652159956558924000715250612933095267927158280764585362857108784824913861654843476800736568525969898008987584878061100701669851014854224284356369641880029558099374529118010694596149710564929182060484373644321068843672113481417024804158356587460689161800552737679769812195465144128694600082340045437338144715758873621124982618905915896331871727327959036946114389196231930115288247608437177510559784128946201506550968422235358684867401307760466163495709425534416997818827420051822234927505987978572824820003863250700747066540572243566405458053525253184278338036505825425688020988081840225987660423891678206361996980816502365825370614192014716694638552672753401113453696330972284760188220196116574310222880557045620029003511601513851279117049432911637476774466593681975062010546550400651587421836427436818554043499506895953987172906427943360533523844761909048648669563304383549220556768174170825307406576894053884538719847155696157006020834239807046781420671983540641128384426164483437663525847972352134750195924545850472303218900004149185755618263053358204765025794477870029398263644494717544277413468415246884879876901463793487668816957870524536898585402678622869076575349241243013033067214606336583687384769472354168439453426236037041444611324836645219391861758152691442636417346674340668278216945426834364113893540993496700181123240100432182182003806738476858427881842124165564178629855478513786930401063258009724913633961686237569507354624047808737893177459942118509372240919591336395564198160981873080619017588562834777918159446080017677321663482546030190082823246301437157273172040778615520224238661355455949662779605401007996158803810244616770563650535350787350170343887144617460834144955037444120127208996617460821736315687549623896228451415044917395580117593025567741574828570356001035729742350546012765690225572106482551879401775100123990748497246976624408434461730629464664846463832751864874349107603615170718392744275782393694017050859533159333582116007326407521231705402500382189426506215491487455758870029414596693892906716290340172032802614380058258420268886726250219542995836500068110103724187865363528189100662909536829971955988690968017045247314746957966083476321353868138431184794828405624569000453216109800936407932171644854106126092119859356549114222810698750002512479347048499570760308743896199229557278845312441739757225732225599234080371805859760597659461682455996276101311783977384613815371748596645818590214593770444395969658855537056914543545026926764174233770679467375473155610444850717411354924966826217117830041752011492788978469635731052382300794831333892287727471186301175187316828950472281209785724772884638047326572904402090933119322429232766064834518548496932452110957186310081912586506081776855256543354356064973682644609201179151208157224413447787016598775407195291919323000966047730221512105666745374652276119470815124591401819039552824176803326122148839271370254733820194811728770216906965192597665815075019001045945918703124793994891447546240122796068222038567606759054849303094060689113168653337742759279152534440011663973762988727890095475000068676202279712794207782889337019584693825960625277788472368270878646946796847020508560115516858972808135997139626399526102512514662127003627112606263870409113929740186943470183640815261210293382055953796826944698633305444037814384052205874684416518994699983372365779000702312657743026111833632010400278432631053651265341687373939730928355285893612981541711001874160411074464028113464963632767484708336010221940285087291602250583575178791823396291441527993336737331266638771626532637342942976886159110082642172887799882070643791514933852304357774339445746928383768036141302811477443740688607494157854009792351835534697103351378682613318525964427887957591317774428635730351861645175361396774716899546657456791700888000002381264018063332885393636945292997587912403031728275165173496350603738365858400604594322553860506735971289337355801592914402062830054953491280316484473587400561319387368048817970165706616665111129583445343401469629181883203733837465917828894405969453525892917726204170554249158707832517613241227217435267760041953173560896781083682907760280133830755900547667102186946861929490452187995324264862254475286245297392500711941735102772446252891541736714108205675900055277342384110484999683346731971150137143995187566553357545240608052699230516144287995453352690619786375448852536709172338328751431107763002247388075704721460327685280282900351133339202825894228851756206963431278856345497975861127528393732066995343103265788088733181571618275798361104852498288898898494077617975443017959884766283492772783787721606563525934308070794873035419416878446632082601043599214882065571596073574408948753433801803191565697208190167943915565789711716360042406477033889441015167388729084538240196519601429721472626875515871484685948628191552639260881806879577617010815905816583719588821279582534258831644152157059005259927438251164491676005269161086507424513204441651582352613594249654048530922992219664419150788988798155128712852147592884746406624225473814604675862324714011614296687688770802502712243482422123188561860684644263148635780496880065641327552250381139276879576391961947223673431404060286124213036747670900473243578427795178558350357641437366713019092436248924474180415472163293123726167955769702950008796347795582364423279852159700705776018583430875567572694468416068251885883016923182061219104573356043047877785174724300661183607471990945855029185758102526270697606776303866890366453098931012825251976740574965830414241804293205812661541626434161133540931777034413728194728312483552131756561382469725900013217456118835695370191299670212551177624190816689946383373747678112296147560800024056682664377775113460055946585297578946913601826195535119937678972809906863609709590181541793152104732093409698269097756513179260979593340125108633375092318623050243111120271026358694888680875501124595756663709397169173219043550079879535850523640536729053676236036429526033451807547843901437850460660581156865210479371133767431652519428481639035014624578994647529550967914906043275309708720428712656750861218575253243081637213994760211027138540714119094377620823451135524085204806913423176648414787524584405424893583926450618294652740250065905469946461731629532926675365120631524930459722755044842902435245239889377419849894937735494027886215880180476457930947988208205482652065421003174602227924195631229418735532932252427417569177375648105541648190569256989957308304926776495564271216016993505666883080073361793401332793583197031051362094116985124506453821158730898234394340363724623085959734427143513692052083925768189145664251666770422446137282767697745890678723887995174905599045613919230244326259154610384380009939906298404115365889478787742469336752856532420427646799197859882870858241944607922970055846202476222137212297518328473755542634138522907086265691617171443794058145193914040480278474795862340065360285338182166099594762191554008440306636071950841440129319919002213535341231219557292877928755756570523305783964978619004379185419755300598238706307170690440996194690336508702587225422145458476189324851430968358409008559509649550908622283258761783664096129294366503351648908664571032120453624716277218012118386164867273826795441321591605990790038397064107416993705290304418438811125563951082016920304134529269790129078620088558080770147069466045375787213564810388733040385139824978653142852436376136386299252248869595855549198239279764679697964927498962344051707800098910759549158018681679591871479013881924903778434701643606139729158196573823169295067258671385765977602154060914256940097657965500514670265343343014743481890778841903817764713068417745718928423872728757454790058763276141335425618640581651025948253878873927897463841913305944287605842373322819165306753195192990647786090116600016468764115575792223066813781954618692134741490215350221327906533600118106745654626616018074429556145424368218290946988776067942490068597800192633331563643269817980419672637102801792717641094876872715821975214853075422875333981073367692809039917520946473346945058215608633821000571638931832711068656759497757877576339349196965276104093731520247968710668932593091172235616478031496660648847759920207843889922196607492081635049454505358757363576255385447014712107742641539498193410422250803051232367240182234664299963883319123120847201638823932337056842418754437812447552639735267902733224604712387316765463064602991447141858676994607337551885324902115775224580779586448461405198712228925060743362544150270179607577302556012092926836367229227762935365532673849404702763354803055982182919604295310281779554186488242357178873177139628849418712489044108978605149831783710165492759504248883978629475864079838575057797425120937484312828871667872044675377860897265385486371543205156415455578256471201839363389584920458005437987247105515261746596910665388606890027220103702268329801745804108204117282004231945344680949867684417957969634921851069802189962252546004634661729023076565182288709456927982222594744735754759683649992561163083116956287657193277663746781939464651771943390360812001134078520513116934220858919280130686725619500460757860261896838630206744341623577873102421149953299900346022925525335810424734613426234168308938325721469395986917372675104105208026327845336909784687403899318616987745713843589316936242643763307427380108572641573856788287735866553697792581825809687044240620817969501350346828251499496596424617983507375883754436858821429149950686935870689891105203500077027922049796623224776716265692226943246585168628112131818001589461300196920120784069457901195948413997886900160974887388093839436299098770163334824282998124341404985328508738453605618461869081475111652779288778934482479051099270918071877674220406581695771661944745222724942788877012282549827632452385788737373442824219502757836363910421122909570920470655911496530778807409453738519606403109599149844946209819477732936715713584504321726723225169578502183839604718973828745687999514655444559358430836993840207663011343220182104956599536271241552457992737509148584970927438990222518686928382145055835183993085868070052859588643139069623205381994687638413812048353842140392172051450227557203625145987347299167290313235903545187045751928924441034915767759567654693232284592304311117218757549148796237657995424174058226516428043086075422950159061240068253154754123216431398289631455446489708511984128983176177569795402362512167922110903528210909203659796561650594918627804944498961945047202941795611089944487899273747173414167638591155412822954030664713689542509170217507539079295725011457850592432373005233749896835184337916038856043955665624184738391723327170441845239348950362406947471168794097323819873053210415042566920038273845356598159532140819165013497892950645112264295938923215860438832864330931766629183508997157514940346295978121118312331201979005532657211627936081827976983464183163791639773604475240550768617001237460986965035365987550351626328363477656106034532131544727488044504257318312650731337766530234784085880887038668423471189575491648556822112636568567198627587853991595814800630918016696213577188836896956593218838574273667939269555402517076676518994260746285097281145370670940618116370663561554386412131888573869376658459555686665152477340232992988457658528002462647586450726666319554570387283993068234923036236327776298903371560636737640064004427834310013553617946190360780217184476637060909033991334135595510867344330020424565361138708025007057102425786105578608152007301810128283189495194135524104260729463521622203358650061998365368736887013013347503166312305252106039503731300339514769305265752096365309854938540949485064195231271163663683820764970327491216403744911188649668232281298540546685371485437651985636991691904575364220742135943453729569937672230474688898051627819286578605465214666987420867677368325107979982124521433024228816786377163110594009380556659779727477019754886060291149978940453616094002265134190046374082771733649882634901095585481686695651492839194766291842178973954601180077865410061037048025169419672041416142110053475612552541416217313399909840757063394805851951089593076391130745825155289462253705278874521452802283186752466687343615302743217410295106716887747157301535417723899390671484071881120431215552001528657674005829936517035668768313165780689134370946993698074717227448368052604701005216308550312169921098053010909832083217113275697663070292748542955283574096516884396318677547785332586470105759460841446233533702094994448722510071003319711251423079006752316130390012134125287100545145689231682719827384421611955784994474185617020856286213051640647203253663917936159336381822785633574655001918622374623304940163241885097746843883768151942853017687545796449997109658263456071486932989571676372523204192411934790447186780094756071896300682372859196305961928964519341492625454541544662170736434644728590187406759806923890079712665488928222427456149795875657955644935750804538048721302959608919627029953338072795072414907049269711621447104906155192990913830395096251418272581285832829135341881978452887544079357346928953636592628065565609308340174409740631906893138822841200403223715392502843518811487912334828499451707230849568169516662866619304242847890894935023707745878100495720883360884146932172090227689328321212928192630062202849110865111203260008864518520040729202257922285319840862152276310418016768634035802221586410378557274843043682418915107616630324159251593890497385280788131747445636224327989004501961641533025729084008458888646405803667522804627187262494562712306442417077330679480146020739409639083286477628451169497965018475763761929672826503680678006942947414212190501619437963924736254480642042527805183177724888274229076895890022936281506509501145248889101021324410446804284396947488181069167678949859865574516888029986209178616842044403371934631635837629972573354456886428694458016964309034582837079628872336839887355934518136289997665990960274542901609433218883495634888671464460400288823534434272473980576271545740183625769029796869830700122692776495917731649217165539534114336876209182120949974446077465182728331439160098892615850343240252325991259020427539348994905160240709708178637243410879887940979018330621215488153694347380767881164772356309600945286685486037778939526150531409466238570666712997616019341743680632414726307430040703252254451797908725027844465012984268584472938739599756199155851412178069158716909832831739480905744829110465679113401227058190591586957569463088474943390109513018465022905912765781923951330530414597832398110732333960090845373087454455574134670202596676599062349186771739983395129341697562903439894136288327444555791724599988310668323477130036247245733215122002728257665800972159651974045399506425787787612762931551566423366140448572006761213260916838730782713060532844547004626231754279620690302133886332259936149276969183256955195082733507992571902661671268203234144979732449467592623365430730725055768889187229007537063765097362157017723546665161659438336805671017804232011159482699123484775473704780358268082349195239324541142853983196299844999562836813634712571738176386096430963299696798396190703003913248200138001183450087470978489619465821850662441854377036539597095979509388263457333496772421892775586317727770706458330194373007126734328641217007675267073369865629299587763314466507627855498003689344041317529415784213814970718102004976845365475710225131275499912887742356851218471266188794923665413793676653989678691338758779495911346473243523838926231880358148524622523488733775327609662382140092868809535786519879242045105684196221883259590929968892885578729927965354811831683284408691747126879457861740088565632980625441453831086704523081835316616138472006904920686685683878234776399924817498427295690856983732686108665768594211232506585228623483186607001856173939758872838936426993108054634104570877311461388181683503142249057101355447184163196701792934536727796537889163694641229352886151841969001240994493162239662782170328402840057744613060590552314768514578835852749518782994445687430520748135132945829244957177783995523475770264326422675818425662108788521712393510961874353021237192443502446962231848579044322712212649924082855247788125116137341876124632835660377469707945551640746885411970672674783400814731592083703982136376495353285578735761754301844291325875715761033370142305525236301659747636372878531360221804986988125005070536737100235941563560357089098653490496335062820209304528727581725082357293494694513529060309163690453162095181998964059969874779538015984873962466147095276575730050717546007152486144539456513137773032475929749438184160319025075677533504589038783586909401064204160110667717160332392227924781840178311868901590169742813863735740480206676800920554489867960073298327451219375692197517347023328241245420831376240723046089756949714124099642536285614559026975904931969822526579145959768691337729404191442900088706053884314571702200281540340760499458799178916252200559539157360367772722129593582764529963332913252593905270579967578880543624135714827165983796003177882217645542295733447933074219210493737623554065780171718183673320815635126631573810627341105163891507192649720660178011520854049506370381886348502225795757424269061809363419086244663814131072009611727744025572836363521798884896260407793892045225145848388722861342420623140702390586857266540452159431906164492007529863811996783649499881437908989512319782942572736775681531569884392292195906366556722688150525740748992513854851796763116269136470284856921184335495860634588891420959675074738535005615076762008956163893649093150854325278053434452815852767318394339527096492078108347596641386850143504690549700972676125999336007937181452754863453731648241104278246155058588564047862648383717895440070675066878913493632304336872956153747456475688647359610653586486622524820841912885791791463072638649593953573328247944457747097485077263766440865905299077032405513057246095745545749594314827683553847930424398432162892664023596930601646011313463375328111189300660072550456262730076295881881273256662025815711610229621141544816485764712771245606186994012678836377753727129041172716378562920519464745230869310638662823969638668458711941107342536197497088643496262585065562865177530007233828238540214580187390827196633993240578992296079174177443175895293030332652670233182355029505664736314946776430102240612367648930092584703934137110262991649284407821092760633676675520044376203787934554346076274589163934345002348249172365189452829519302309968500695158706380535227048878215868002910171243090937446732649669074094023937315704868198323301518461442450330043972930895146088460328900111903732016337076314685875754230682785361291790519202600610405911109902356887405870362966422055781633165043588568718983112655347745200450217650919695538919062232208888187697828259038581533288597108954622637469482554624529662521797609744470859531843079258838649073201682338089794392766079315365911453721236414983231386631172673037036104144318452778490201363698045390925917021517397376847620703881078508261552802539485899493751531654358746890283288898655550519485068386324818415961642738501942879237893776699816724389080398217580022022075309383441586129459295924157376922166196455701210062094646327616723487569875035051959882941401399968400056026449767793181781864701858557559730843049429075851581714817936468661679814868061015769672582453802538121629596456785623901096228582402845992767717282966527367901469763682607446935036455386830456689758227457844463317964850461052704684129771247987193773616654732735168614016569609245333193666670684303329682121555444178115490572465575155474412719911593875296528200182037693111572179891633698522886290820552536339696910165891105894025170729778281332193112842617839837642416019315644659510944087319798011923621620271278637886960790639225445414824991911220879720045740382065847273670251907849750210090421353126563590397791135919821752958955571509324395112267597163595035557301140141012071668026262615783695953349827109053338705875948591199335953682998242865139542778924486123157420908976752953896177016956911625809420362273032534144963041175055574190206373961173224288954862783870661939616943375370065506563924210297389320688564195068717818360593079560306113429580545190100951184775781233198624352393483198504766632469580823797061306689811539734563762779812392968287782800979692521871401017025584978815034634487190174686685145126086666129773162226122481636456431745784679743727246971386308854928610560442796221154854042181864723311776270229105710285150198256972731651226556507090064012331751535405770456197234841414140420196269380638920404367105084954884026125734690669610879841258559132730107862221821822973960390429823459767355148005391033106793942266817305450333999100335276406518792615153329604833326916276724454015687390175326363282811075421256292712128411369759259158899018537876212501647138036613462970525959993085040625925340078467907934791760838016736271495433093306042911608177005840980720462971014842240452074717080612781729285365373789365317271002932624259778493723365438881989676930784045654628936618207472289911020510325694960819365741310680073059317448453707126423627523068510483606771030804128618551779065565314814606730841812747961533250167143831950844727137765137099608755163389301407573759559443036849106287963880320894780826401507239604371463518644855338685453160186350495749368286127477247562007829858455925582009611603192062401538173893992798085040596752243755479237546268920377768283873808901311868204555854694685344727684456901983996139017066636451474896541063827958526614166000400721710846434855994972592651353218266826336144454616865325536761295570463773385773607048312592559781325661235018624401419428537166580208505995109184492679190273399548791641333575458211637418064393247883896546525836996335633089661518341977069512213579788553779809636598152314152498104230382159597824798208637574300789145092326371692923750226036566191230222276016233904266661554805975546591754216145877625650921040133943240205327133562395637599069215128455874552207324351505621454991932281423208374821049783970526600344469136947377846541000704711477164034560696830393331347118382952139762768327922005453300505620156079348644747456694293013657683885819132397018724516632899543716654085590180534692762154324367533395781157008286227183420331766775322374538117420154049036615799843283798266697835105464841895557361240174938714676676468818656782353185963871247926348831887851235642714594224175868111941096110920868632101841488294057546286851133653010910690352003661641240822204811956348561284881621086657881341757536157560914663958594422230916056480894318708769802944387875205608223123783557325812224267805886784904362792313763023548005725206466860584945127732983041721093676461371137088164014059129030185876638335593576304521218258867997412207813163147161526111147463246369283735545379495867983440979640308752733509157798103516247638799247875577579319075113286029080868068116435216566955918557403173526310248068908465733892424461950679637328179112491516806810305073216104069107303895607176006538995721355321699396807189444613996372687637833346492219248920180975741687600499340105358620559492239075935654230508802163088179466251927013056232117322525364638664277808499921069573660438071733671443806721636492206988307163976119267269142346198317674473050398153838263466311042808672799648536671480266404843439982217327951241386057542926790116348295332844223507478541069922524314154436737251610580990070906130928930413799384505761963596379750697726026596092757812550209139750531188757416538402389703453332078851014326700811799833367198385348128703143052137544797090134264696820311199711475920161738167324631680109017006067037898342683151109208739394297049240976621918672734400405625438118862962766613202811689729301317622944569771304824306853071493791295785165481807506900868575315169038773682290460747975507112230050109174083815558511454065299055476022041650935299362884294451024810504064182047762035814896786359681255033676724663041219328997230208880992467645522757242995034639825933205067204877923654146439156699724823666496715948212512465980552226952172863752053805862837771585192168010350189320938653231835367309925030031535391702438891560317476540732929794572231603033323017761103711631853811375621924350121012085698542541697610823546372449881983507893333826424000390177807333600331420876156905389865616958827920873602887304948127377187530900198966254578398200813280304335679780621882575258594462660959928641235168820150842686827167244172758817466078073266799342385784615566628722923811205568070655231687792498081687991178705542832785238980794444957643269772796950100355616916400257213367736826862287902923697148846788332773456846386282841787393272024019651094400915141425741895546713246747955245698284120378776232158438718542775362147400033698175718678046692108806606430834592988723047838893139666913819490302480677994725101355698768402754025302319246832799353732306032926633493232739583281019033653605903643427411460875827357432733488056632529268639935387734719754826193274693938804023881005231816167740340840925000901203220035242092659738519572757696276825848039247623044121240142497780838054876944368259531832984536870215325377210939199445270836831029337360452707890721711010220859534223322375294518766432546278475048626755025290918194394354288892722862778778827007570982252871579901757733264675940387318120125241913741845590911049227628273336842749947813683951129807500377120954494731066563432332144899860299756957502758545106265048846755620262493136185106441769010125241008052142909053274091101288923037693458355353654051613485398844109316888655767664795247896969283186802833966370038294255327842516431595160105925104929558036517402159852184170913473525225306453211175579573492807167423337596018891819222973030266937986161762889310466625165229911053917740287078006472381896381753673174791849949843292810234969193917647355539879950421178651524871357079121810770208133442568641195411472556976956719677284694347209062559606014742114773614550564948251649141474721389106057290264296644056816984403522476982674741311765997264960937473994043936545185845074594809604810991681840428229651314026036016441134404289796715310243173807340247782386357300140106408092626969656114076221715934643116444417844819132909662220181644854808728277653134318158231354372732794448363282156580792292527263932728458035591594240053972576677692191144004030812460483859631407574052354465947578134030466271136589546507110699217205381484579934165611459346977436165802548332119322368801050613456517289073494814730174402791427660450775806955906116142977390172654004689304701406593411136813854654444835376001552662226332077195722708599195717614620773073412655578119506043575541558303058889218141836675333811972696351608661719931039837239465003341866640875087633719128131292575014792269070347444940435161058562333779985686650880369428631069579304570801915007357068811575495570225243386272934714637523620828208464216348923878454238128676717940506815124898275515060422717025160580614977390641884116843392463068842762944102616912373646145063089135907655838168475952863450915055138752362366171425718539818127179634278402580167813490152905096335256200307142776809093465405694300278456897677661959815626403615723309564386323365798986698003389561279628210023133353389494862750256330060453198786358989818287357968512307923449306420120205654313572521898843461384719565822196539108225396215688096729887743022827522992251685983574106095904986186931825732947093004213863165727339077113408872865463347980044852002123577734455561257286532100972780812397899573136660558447948420015862479868964015309000091017060443380278829377042373346505001614673340480306204884133858219398027889910521780245841838778953598771738045614576367491601578293737078970283218440043942775773421020669766161851912885820563583726121895988040219226198736285153088025457542670191346655174270622746717198964509632608869318278386806347866354916712260156635081982409673455804931688951589399445115952210435931058302837663149817099752722162314846223936245456237518398746537441232613188335156651038499560374628645429554993243767128974448699012544395021006664712839479651198750036537484026217232595487567825095634329574929963548998434828167813802064964863535831353087163717785940221792339114203178525804293470327005247131266006340297188720378290712568826476850282396347422436615406964392416563608426078225902096123627778828172313604816965594299789744043788372114174983868622152689719322682300255654248784774364908209851990846304606000991691294834471136731481965981802001648224961650280742694228145759144999051835328778112853712631817874219693564045797556925221447041580363063381708290211430024283425009817641660068234652518841433200365460765466991687213378116701601994446179814781798258581896994197123730527080746466626848714373406417041686759340353395889525891473563525895792523534873599514396192518840371135333983087400705319622775006517792916189087532263719158995340294393446039602260431719298279344659061571091374928941271863111934527172452281925960170341879580999439756082877959599027571909517443687058344991763751610317694680848687401497290391192225175055745913104166140920755792228706430768529254071293211310694622785267589408205546541402219198152044394407895014289026039538130746395994509379780996437123590809350324857757102315574931832811721379090722022373606962592168924168255275700850698910648227796303700655173320738793288454909287747005040331464582415521000605795194161326318205097250882937123397985740182540624453321328237311118710828224056165991505515660619668447055114751962705581259161446337013155438690972835201655336432743461196371847354429366230577384732979744576740125117132553462008856985676928864387965658632232787733307788481515693301066441973493718363116018339817898077564349395429374587970433227197502303133002855808817282210327444317738180381291502051466053984805174971484823472389063375914564561077960480238901590672333290634360790155278405878255631700474623733058740986342584616416974374500462685444201885050973819067901680885832424707331307428164316758893612302598971933113363579814098623637963751113618940936831548362867045689411395801610484451579017768168020046259799283650035468382017976129683524253096550849262514741955286001541532292227583811752624812693919157863399508962664454595347986368837931711217273875596104739341972796528122679022970466458745418764209828952384993617397947403979473701205511406444748890627838060028886840287450970084138041840289971082673045445625065159322275293082040372243649753024395677503808074074482538552065354537419859676672782334218941972648362630170932152754446750956479527451339558207119244123880135848107667655874250638392515675801622574563898883341028675521633441576002736756336446028508985860931757919664049720952643569005691304706582135015165476905086241165017559172664304259194076541350743519788366248393712138908205908323014670467644134881172022289217848581525968870693839027904844630383027866249241613167505332964056771737619300160079861667276961769425506491915292833480797981735784072907587056371839436755622789779211779250008840251210651359439250087111367031546164643651393564050718995696363970294562362139594322407159836400065422671578688348538916160508330377324402752737231653301791000459410244143336916194562720018367326659929875380190463027678914933572559465822676456658924648938165106083682480241985666650592953314358516253484605630336046427667398483579010235330311464617165732076651871911998561667255636343746415119917658075817556698296660951774596990467634605237927125813888967492389662291691655842802150528599700315420331672162997161892322881489222439864193429541261083158148628074862075791590511798557734294900026227095825805367766993031716959406605146625965472023425583958272127966066058998638232464759540714398188282414998219542986503357831129150305242771983500194851235830587047770782181773103941654878230178987056662987753247167199869101616720446149040247375829748425913635967495944458864576070067412072573305541119317315625663556191253161173114632767162930134089201249469519585694680298633018719857157803689138632836558847541021649037233185185830644477309627088323288329544789969262092274323933422530465973943956587125767889508689542469474746394472229742393731339213914184170704842932747145159672753931013760930704410097278132878459982408635551241042680387622992763929799269077091562617905572161075869071481788500710745860827178489922553857403504301701088519676427267674635287457516352743291587287187119181214400432004334611389343189142362325702578780612512990337184273572372070223482941862798442681697893145879136794719243226205273256805177723872898198703935484806838449460053585153966305910649402956131045724001157604417040388000891297040524066986587598061847250644545930876912325199299124564249651565766597416225130026387821816887520346474887076196068643329697800740221294581706370625701645564155169547800644739158890527492150977538010998126202458260039335346169995545598841949123650644732957581373160631663821676321982036457996396544761108534227960215898034347319123967274207398316725139015654739639457694981196222258073780662027680746381011855152427492212242989787307056860772954407709570043440435482411552253428200254629825931654043157077983103019068038777038688812983266760920822303896763370047397995825352002048690345733664492004492843157850776410325091994598420984061400679649983945223667929593622865642380382471180540598191673909911581720427417703932870396030198422752061832052432264795879063460727881358706388905162494071155700769766931791662773323166119659527626515303527317718836121086623894361499132355458372026494907662767574371428393641511853782833080148061507391859490294340412016593626171201068440915119418112738490580274076479565766851883107497121855476315995683148752849633669002239997640268131076658655470809578205613444011490186898844624630411288529979937416665054786849019414259232408158305716778875497765906132008367704473482316326173718628612322638930487630394919388077501353324319963272433321231337153972263895944701501468804111677227043621753380251935984611165186948737078046164102270920239560336342188443197452453664881276511398445970079369380650409928992296423326016860018310951706330254390663484104862050894396092944238176052188807552733758737496305854591903685888088369657093651942827024906170059483186921836199788012633685042344308723886234135361426284251872595511822316665349269394991278980700128602857063867948604767907242762636978431464501578731426822098584707498255823175350234411411180301981907031795736792626123575674073338902155010921394333164404848802057815486391828608576124442988177231289352504747959375147855318567283460471133304696659259884170025824114183125892369636007350944276762954224977366930614519843317700867623198849489722035652573946869138261700727933834316569928718903079894066529194107445219001627892881303615383028575750398557496648741320933804331954075876627937321333950919164842809009122255570682365873466518439691329160853897105487488713993301005693902046410185941194884261852552405101290148506728285276280268517030421511352137037742224949183842294459058612056489771181960630709284512904198116923372698391561566413655115637447034161770354743737782642567793912641185441568150757333449414401091829172598913406065484085089497684181749921302480409543178481009075374100676530270192110900351574448891361742764455750860921360332359777860718058115662401168238862478240838336864548073694612114020639742077163842427183817998459859939629529332406974217688412159313658466571983358215744457753205634861007207584934684815157032361679954071784482547825473553392158646512187288205482190121132588956046234538954431972180096228475684703679611992687775880846291508074172017592758052819446882552345682023774532321742530805997666864989835574255462467707036447414043158806858693654812697130462553646954739407885463100782121737944293224371604924848901999172509422962823860318339138762043125172813595624055865499583413928814377757343762689253566886317738287934044358541907840477650511720304705991539448796367170170075015714173213562749147966745942224971940919984205781262487083068860592915708305632814252529821064251979745000500823706907297353692442232910931081467352710914002205251855727335122852201267013728774590736638925443426249230635156446281803873236461566283091288753013986784318712196557731358760150686171879398624080505252432494854979051282573558693086667015995981761916990738971020128544593289712977762156964229296767121081422801871027231844554740690485852580384577376009899521719513069817010594916363739347924358812826400838957629150994055877991619910785459540503542619839707826675668855092327968373326246362428146901275488257166954420808340217984657151393471300790280808380914711628913245047415268180477115487133905944904261815530632882673211703550315185931367471819696051834133069333744357715797989291704719731990236680397605652294323812662964702194514811312944160542065981825818349256119193329925196947126051689571757796786773470257105596620764447030641095625294316164763819902032178955250626399078717588107964575450544145922713532869593210376801778734398881398698781681793466546691071391833873085557643977650500555803426435091183241377783573006686570109644363247703993270402816249693320644752065962710585586767800338964848320578055951429172902885823779873206288642851611545930555722169878394449111159099220021340279813369592636395686465092469375096550719261740121487326443499856613432110271059812011202728611526893140184795059475992672450910496914100462266898272998188089751363260150392656884977518980290330316793074487678364370779583114417174433578577874709385186425521877244403748575490959799701694385668603478507004194569101886929964478814522917386077729925782544814294437066503151378672883344396862217910260022343441840508285017028118959483822328847954229084657005503488169791647995338755285321682620976406473101201792014592218141051720813133012367130055601508156997307436297167496603256383193360292809550964970709835248383330253508162948063262546139235854958217752441851443922312170129284386342218969708325166392465795347003825926296938597350006416105465418963480756226546570533140118568288980180252604322728700245482225821188490983545385443470130642303328472791583523420194149009478183800309387780266412444288562589890291911927938440068521998128667647664828362825321596510289727081411974107692491927058412876185692760018810041375049201897783557705087582689466091400609915803083786786563618678900135008247540008403510882518937593855101066373577386128816129226887148624869573647650301612362706561821477993979460412216048997465268297015749910776470448114896552931569050897746737895291566070243285216465786884710789018531959962973483676782855836225597587262555893418240801778530015002519758116416731021223767776599644371378191002399195419101104516937165887130093462854848349056866047494454668426813710818547917808047364070294289500693843785619880135442972576464709724588241203661231954325930859655775353239376317592106666822199625628849438479860539649523740722642310168504317898086935831066863918375923009791877704156728605255256941747998456764584646422269905887666142046357598892483960853018401293759808069483074286698331851947776007498886708023693685993694138605479219655021093876825763631382248444396652684194535144882878143668651758903376664874964402698657280433007021799987770078112604292867651947452175238485862807422074736478410366493064032609565831250124149772447393113764343866058900270822279538598920560178523545790745672229572632988870654929176672634728614893918346470458739969925630540251409973383003616707278043443053121785576027609065111637567044201873034669115600027982564255153050213171645372353371765232986597184768812414287410899792975615572819348085641248166521738287800220259739719351925345693656948270313516213382712905900338833934814394290008350763360644339768612504800847649177145688406727652871169683100793299873352317609812132100809100254073914718027097703840959714366533712084741602225176704589466995063834449213563114295641780359205900209417822818161716787004096601989401534753190087401184731270500826414871325339387543842841817147926103956754719978184423097305239485403601081522534483098336145090644250082003787859850399813668565119654889528216783943884037636084562618181468466068477465366716831563189966379724756124547077614002427266762494173116459747047916480214794325092063813929189616769684980099719356557761102819617557452642916028770952287066461933045702503080617483518019921574965441471513167328710569824410339767956047170739946940030983124630043807547798853881397548087850271729136696598521579864922594558394394760991826540286376906709491478382563666243114838128195076279074477837765934171671800105462285183161988596132832580388800696674194638849790423001984777251019756660210170984745435195555743724078073076194267161755705736881118538099952895305096385338788126416444275216712124874399845844371482034329454232051590069591081207319906025122985553263993289027119009172455743943196614134109221899938834843080608746687448556795933237522588731309022485449200027443260506307383002521370703657246957689126236087210785550100249195371235345389803519965344592212906590510449319026596668965024860439298018826310191463971717017083726063197788896495751581682150562372580013292636552685061583577367110555785292092292601207653720473601060156132041076507365924109299598411063564320454958432062226609384783289091040511329382319201502090540362192620119431419679594854779463892798406091933140231980446330135988015610137098280304036623681502197826563575397620416051181309171526179062580202634930083959172248108261400507890015662809149944116154865420339528176759952140271620517997215950985665401221199850757976365410779723101207306093361398053355697405309229587022145409552458684979960240952098407155108382278279676657114920589710588602563117999775549365465326109913404239405329566189396506238869988105221612499327935838650141583175789733688773861904769070465804969663391450403767169102423876071291549822340242261463380737036416345611463633867367874341863018043829177205602765338529897830303198002094070721189560498373806861294758258026369031329880029213586216434009132430636764153630080906501550367903860097415008093211934276226197264996921430809192805189204403867262595331781369113819671444246385062176694100368665172100694814664141144766248664372428834803621624486535176199747371998819683091898835169679263623551485689679444798865224858756095321951272709663104360981624931704390366489903886942262573519811139164827853160166333528538170899893104159197161302943452767518060766922336443440419677159349762865952459338513511554798324510942169951623020015019241724057455019007553050522234228492714177261113697153039582077351567207869841620821097615365827537875672854153956977914281655821709096048095551075311871221097345801919489457535321271931831868179489846687857797226072409601810281309261157240565754195737243908954251225135821372174171004652999815576740052186694764024049542419176208838689602727270383211337997628295670838093558325458612234870334210870422373294655448918522614133549389944917997224744193232008371211998534072045975968230720013424987886584247526688159929171992330910712441741209810102955917834248126102905083524048472272909035670818073648786794028074189220206503277532358676036040946036578747207659214176012485290523951068624031481735640400019525316404399759666987305949631422720214419471576451381942130835277682585340331230756179024668975005915782207125676181452747528063492199529087026258101067650949772947870885661470618432422085329763372969119704313937439048963145384714976492796415055286174175109320913197333114562181381269691291354024847139877769213667377304428756799416135907492281803940162375975189404149356759210421032319929076875928505340912336246731026869158386224313657606207520303452545001233166927867326033210876766937616795937074593866518750493183787886493961960458018705248179251185084625463021238392194850208820376325991705740458042062935331850621283280668767925950919155638117402524445006841917425221414787297630028145577950267563363360654720941455713228527617273191527440818961360517382841431873177265223741560673567215881960681935355270705734600043490293916646102546229896970050729619131416945075998482946957708761235863288368252103148340387348025028769121485902202351581993324279691750223706419770074432397294634849797924804028447956640981740456975226403466732615475361829698971598538541607382710543657602167001292135586934278108362803924863161107458022490746884049301406860068695803094511358145176418118336559424870826560731905151211741121453128723768747019966629465623027383564714094469614894816854178413997604404747242120414777813768646026281738105704412573354320901907865126199970068022682258496548493666216552887061048541162383416214810699450414241132297347290988453132246667669079765643371027590259380836796013765305749279301162544915307926072755028829898208461780613549853367828970882300347262398222329122323103356652680000167145158914456121851170123378588088731858288362448806768661240749948723809140139176560944081683073646701018555378558444872491071121779317256372714403188451120440001698897854705298793812838613723071699158005811799085775357887280187036450491959677633140297525544356891942178348402078406419683591006307855503590298994798999932228056585385103564848846288859109831386111641985339425495206131124365882277602334587087048591432251357034079865776813658949186710920997489422087674986161489685004334827059309935415991200504396725987565192430286187210784542260846688039432323911308838141818501935036257935372248384905545390333396718173869785635537095756150463280480002248029732389406655143015408741493811626913391768904818159888135161680788947975511004517336356847251362938865856189293216047564705056962833381984441830455902147699065966104301599132442813203029352893299688627112480106894169907240198352257631383442731240402044872646107310364069238082847954922990122046233327567989075829147523520022874797357965830707782398821033225958785012936796559337195925849909617171895281784706556504890095973339059490925909287533664775024008582076505890921192642265707954380369364807769604612395930823683212070570563877988233005997913459081669323298178744497115709849855047951351952669063913659432760553631261841683806859905221584335075965475631757941418222536490915753418030380419659451596666404907656993948625977666738997694604632906229745310362336155224048445275084181035350236874890578681477716524672701263282249229671702144064851692568365091150764552783343958838622237246196890634519069102688740762866149163149592007299075093421090690017251570947755769113206496737553700187080323154980208547908709296195190928842736100915105789361204501679506526516821904577347160964900669897552138266099590324605558287617155961087493316127463823781234955420429275400056460525431561003023705763006208551966648433095281679582523176504084363424548288343218173699454154319381791829868823864450274036268952563642111380806593127589818903786790221775732190575270380086565467251173722896329406413583138110835669730520334100041270524177450348783718456466696384234135280031425399630196597560845549554399531423577340242439111024392920693745902954997991875262439707892335058136143286469634455622888821034694654289011342512787422177223305653915495186267520532097919137803165827857700783499964782352102778444128111460800188465192102908551606457450015873210072720934314361231150121140876108849485458463461407975072893483212651514308241917807830244754817646617650863809790605601105589486560980466404988446696707064377788598860736446051097228616953086638281715471231788602901014641162692395085577793705281184676057037630531766091653668969066091251607096586097671456252656261631923754043698493882088173193669943392916020334028344427778750825133522643737459055305991968676322466179941922094276475543822749914094552577313764361569270314548563482647791117860536977955557411580403468581905632739821278089116083805716893132834986810784021149629313787604652258165573760345681033613410452766899822376706379719946932883348943645384624280399533300086107555936146897932883670242566593340950320590643368812098794891165473819805589858326308290593514309627097562124170996667009853965267066539759158495766747685631888151159899595558470826320015991530666917783222725833186162300834390869845644381929107786742925594361309829104925375344324083615024032765508829187796693820354529583229757538308105092659554111409691004174924945304523877426738487748148320941298585551331372047545897961265224704724911289429206540917280889583230884920665054300517866777472215667057663813055900505298693304555857638481384088570292719335223526549493268426251399993935810945022964997307640076740106435029850717329005647582329731805170557066128222661663972282872811911236318190915139157805520928967377687188569012058069179470559055653393043058994773804870077720485072008503840492645216435363711597629121590910249692885955455182754736801487752627607434576148705379386686295110192888607137796042176761503701911301126361002951570947272617053694630341806148231144597809527209755464180654661965891861970440127450281724773368467187496725511247815782871647983752598375151937933296933440691665853961971501859941892477987647434041536917677683548183597897782238232486420235041250721430423133980145702726050581429284243540190825951811989092734973787533306076118712832549348931380355593090068416472387984248255887477579163134280083941329933072638159718434614238111358299109457283777331092206519197412632631003324147080591473436493835734513073204115393794266838521083636818124846239542996836892912634611517119707314186466706595184826190823110258694188042229853165706815492893120908489097362229759908662605573111732569135403073975183657357598586291842563860592591292450362118554805280493130463663474369905897415673047991957656700924790764015342837911764222460104506750586937633711727116499967735120873494455998776927241729260929453892861156531087762067924762268872616352151568909390413397085774210413314484191593552166805122907286922318436682607700342653809654585116302962143852765001004094236740097576013798111642220593121422973234414401610874363303239512308838498029953563589009369928647734361376028466891905138137213591980813416605328814587240187534177832269981087166437569798831028996711979496317633509866245600114613080201945259829856215092307097906705224359900580515531835345453778206569018670090325609399599711036546640024317167306102650885421106158504457700160613655905531366946093617271668209846127276568925211683042772254298398762030264671850704926734260019222898858137393319495272372921638366269885858037175334399889090932589092630898049232466780604600958909487755180961109108864613862626398537076656367210354605701054966208635984171649870603322319103540808179409144214208939401030930613781809211894660603071710484377042074874616731415102050868708486297570689880193445089796651028458458333521409855181937199930755826925396595683133010394437358273176370068602298701348771743281014153145702807799979520638107382366852209450089862290929961061685806477796557020147809947141293092328914830762419235658856700767594887560221945226324627292528488314659937061723316248951272860813721398873984546118356968973914733816311036919654046686169574856039243981868571539379953205779081380930193969715940945967449983228919379465139467945632063739736187141453540747504459289694936063076287344475949358411049328677022250998807502652818461442532837173778958690593550270149956744250529960612993639545157120125370021500623015069439718974859777511151580839727773897269196604072370875694361272090504048099223286760181271792374087322299233028982507804506289141239581625162293358696613043597341425432457727851295770760826173982331075642357620304298787199138004931441450914956368932335727243221603862759791345223115518345487319266882955085372773664760146897128502444334289142154038700658546352955168224201682680580495557655669280060581855610199773859847870259175689281625413089974923700938042026435650226482790329970295157430768647271044895658655407719230379056169096412966989767924899580207037694460005895589072391466154759793023127213596256913662032920589353396333329975221564902487955162352522889649120499745895929936097633392607530287165124691678889594895417039915719644876077961198196871924680761182116628513171987951363031702773605818066318205040994801172003003630825304205285860991015855106146191812802803894796555843981435059937294134411333770841903024352931511419880816625755910641591470096781902767568028456065377269287133961959141217783252487496610104844938104326788463264703753475802866566528523176856484388586331924804169478428509661654924194896979186109466176779693130954017062501433437842893239827541860133410969509668780216762973127574295098436167167160224627926316882163988740033909350769988590363414546866326386365606923939876596733455636344569515000467565108808636685589728813924141812504935938550556529974253430297392990326944084639081843819874604128268277768400705639999654530269816559478382892695964971743812228889427835589859045613472293008126777310502193911781115628168830595684923675720578563769421733795128264329521853870089266923965076971855575849749423811486719771944247260973586408261177630400885775023875419257445883336179144139571236205906173400088651126873258650673758340028656229465118851600022009165722254443519542325940993074128719233074665216976807453836519404399422089496587364246452903988158856636611537792680682198723145073386191297127171286882737986536540858084350028182899867866089369258149320498914525924070700512245596288787558917639332292531045303291694431370330932228551139532046773348849508991468300249331562560975616558911331090434037654127616642154323065899194566972033648787847727964123219017277012972183770480199729473002494862658556042639233040749259891298109677968919502996302399024541392324525597375982704055189615833361737508686965416263279250291606095218832586432824462102173365278493161730954482826487064621099106214328334096218061492834243415199838650237139572118715108799823316990843843968512601217326503478505888221764593289294337287433810492026962785507790030885084581717891850091296436580045159409682325259012235918663072028461283240570097629563297276998464202740973185073063311709438683155786302033477956845637597648348166512407869774120635557164340474181753412573577981358954401198141016520063397382591246328500130478129458148140103977074182087789230706489385275169462816527878077094964844365803873290739911516815073953496576427343800111493158885603640179282433702568158339372579658620867459770951104911491234573687222793209480618699766164092914382409575444453531365103905870020597350691116612814639553793632647736381125374200497829753875547588817509365894749429357403150632006923538932323936981568938755435506586455080728004044675867468212192312505059861471788024095312348459860248248556435126704369773660747665078648507553263645169366911249577001403280301849763708540045732655791328529570462762157520854350900452221319908918547012304565532903195910568714567738967369536019207266471001782327613275930802647171830021487688754269266438481241110371609750917860087937471541158825253969719950052471942994972825545002941662997694793975126045711688974162825944340992355429955219443897965186284449429855352192737836116269762408826726100407275930968355862715065209603010445880544627394597417831520450699654134706326403643721955296283657374096694693009911057353367961838067790252727806148391217374169637821254230400275394469990659831474141019875693451711792130183909795169755748810188766466538201852387611459212987299496623688520178536492007646756923149017650952905594074612526940450270242109785399169801209287417641076410923229384692611938657392054145231450246660025652435878078367260632706631645506515707522499842316545146887549192728733845523264768585519632106906428844975823051337727558088448333723072659585835113325724574332049525189539534853189670837929247267933470192421372926008899582911607638402427107780553480167592239755661727765600259430315226784495364048747938455858256441210935379109272897976985995889894844250653613218085445100998450753694687210025215480920081550318921869301031204917641672556410017614620424737426188044255212556953238711408379468718478021096642019787630315764299636264678906096135180853881237684489037849646977977874343687490753903981754630411482621786810867827094999359127643026843097077647977128979953102738583156164323974438641231528259887928396702284841854825456221704492143194561934306822120686487662997364952114755209246238726216873164675307711411253040645071848187954302099902941140803289168379198392682925738318544483113560189717418210903272781977737744657755208849777049262650157312956699898118207950357070597384825678411207707396351570934087393714274062664511537902325519634905594939636034431400074688233928195652911173253036661504320254525861897303971757784252181871132796119094464827154003644320515582041680468331075726457042919543766016564734058195215543499161603326949910234913862901003380659726408109095245230967687655511909866722509222266655379837500538869843518300046250025696902734914856512705721161543605193934020471259223913519172078145848394837268523984933014788126652266971924088003670410316319637561605531815285205614589465383388000991855328224141567516039358815332164370542470776641622079836567511421183069393841059605026045126532393772871325977850335094328802865825540185734296537335173201959599923889629486333357526939712134738569079050098183277678283521249353657017101901195910656259150193516985021497348467146137461172846569793715621386950146066078564278566648915967492504814847488523649295821375568292803783669462132045898429782151901228215460197067458919188542634202234643774498993339376209458261817826280692726832643370035629183872901315321130776652149846598028132660054008853222868575816278392576840798430045996789339483882591732915200458480116024198990455859385795080034624479732737534561018023628857121872779787720846571823894302801255054800563735178117794659254098472479373008205667811352602938418324871819816419517342716084573856649031022509354377064841957095555335852068257711321888956337874777081617200322829655342339231115437244668542386905610483092732392103889470156878146828569730060717231251411440843391302744945025740189684671620702237873376151055491316725067963004952326461760213359006566484620707387925820958317986197509597981655267028274695945586010494861553825392424606030675412019195483107050110127746573243749346978863481135478397251902784138501843609277244412271349585653123306686145057307484587814963446097122969512357345846590744200488289549550817735826938687384007070042330530778741522025571875623866495373588133665377212313019587530063121810387560901645196385218218246764921439162997914174293675897265840940743258843814333602973188430629757468587275407218960471953228439942085956982686246679681255254637210268352472874307453673233543037642998687813577040741656870106760891353388322728567347199267503363434072032591714236019398988788967360753148657161374053595650517581879935086190547045901859494895464427831004460580014087505700222641820540449403433431874058950261180466001570140951424310065667860365169644699761461216926580925918957551522642475901386757758724404504893608039722267635742937313403124146384006056417290839585224936888066902774686183008708645853194398621596589550653923030646258145773105345318678694197925026022801054063017158065452273584225658763958701970817974292252075578918752524910268353182295148661686895698059186421747872579227095833089978827881230259553452451368941776442946620398996820184073364454629931650066072343751264607982756873192809793673211769003993179871387748571991357930050040186046251111031064915472352330535182048698108981984427433467232655212939732637974995945591698507358086027951717025962362223137207896828295866577859720865063413003087109267519542626239862081740589300733269360893418265651382324439102956059675031139872512544075221008398523940688561719267486530750033674515000181934794391894874112377414519324221178205998287614997614785995105141086199627426413094436211027418367748299741469145469107999311992933598496436756642959101388887037453610020394240719402437686061378812928331361022004591339809785395703396955046229452474566240609688852307977578231291215151385691053296113359549044225938109295100211873209434306632083682996536893360957245274844767571861470225827725346476590995415193787240182444021372930575072647909755745269282159073141160865288346311753861631615174095373859753969069366770456830383272782023376273444000913896236317240876377735198249621589239121722244945456229067720240122724735592187146724439286153885509692013514056483162837982290772101028744393639474577465571297289773452857811769943987462343571046864510274987375998215330122793130649216769570885315500047107972337379125680563018337574399338099919971808077396055830337878774855950636959623687049364317864685288999977611655898036765078612115888254665799300756337914112356346790825038415698376771692904696132382219827358704489275226689646335212036286184657795491581792691354582774196599018248811491349408908786142439540658530014338640190917877934597875490498284206455897990466239380610495256959866967998158607377001800674779204092771512106827560964381510421088336553361731083872578604386284099245595060070738091626916128483018840086097989898874139337704814828852000581449170854567714780772363369312775820889151951700401724055121561899670787435710005585269908787900148113739500501785063328165615502462787020471973666123354436860607060566266096609789586509015071158199169718014428852828308061161878440440693700725935929052713480578257864056298630314172571594347185550212839589677945587811228593901411167297840063577711490325504479644739414846499650481875479337471774563683174600969263345287114400197586753924307671414418478192077956037085791224380074566790151370045826671609271797755958160177468802273521543529946768649124188706575236936960744105169706198118947612641229978997417367330287932481827723756303585797892998822429715791992145030324814474369774730994733910327643265404267909387024327410244463796207107446050032250971703672352426217444060623410301223800083045725549652906721969408039607106636502984713728288449160847755022041716867055546861868075452105190267231419581227040677568647477941622494586174826808949291550315664805408464028848129666571413641069280389513655978370915944500996657008984503697869662550573213671944404902047650346926702873570363455257050195776192952725867463283329498435990131466387282919928625480985183295074335796138175717841335815697994802824326800171605073376482674759066623974943324662101410339715035119090304014352943669335813772067373816515121008352054766547820255814668743075256519146847724536665677443083896544941439263172055493028041130820455479890539572123095896423602103469239050361341331068918934722464514999320016917524095275668277921682736015142580202253701560996261641200405465255216180963906638932528148507247633347955139501251359249258209163540585810308670056148844857415269665125117533321477912313378006439804057464115427231317838172917370586881805503158567810519888271211547392230777641120539703569252313099853160150722932144721291317059231892246682114085601589695933232858694370680740059512199448640783791813778339784606696942675277813673739761620659966261865681568520322310150925691979826462167426325904276180021641033712304808314003940229343484512213352447363587251664682551091500503729524684783195181419211943689186782681047411279777629117047755152648981739812580547116902082189288089832177052306748923778220672131922603028608353441845092007082612993249019708796535605928175952067021827136081086133482154777351507178740793432981401917841843785641551669952717792921573718297130111132154138135614171073648080015747944460510252811209843956295620177123756803148191548732840154691306212719469322777791842144955661759281183831563373842530722629338596686849901310506059981706731300960509804487788675706302393515303431571607859823501610026174091199769490645459148141777203639200481820048343704382144711574785378813387625097256981827458919227681142375927012573343440019127570489295800869709849265088223623923074617125750637708912892400230123747445018613601277716750872796351610272706318358021116377821427812223130114150844758229093349230746223434537472097032427875178692885262877349332104514988534759486406850871948292317534169872117530160819834578661858649208377124195768728485949063256480705431909448927089092556141720413644344446276401349579968802906602087313066081766498925813366220924473486433247371552737547184660036502430047965663702895645270155923417570555153583024035355991702551307208601061646319583032283725412068151482718376446307654013259929782386559958759484495836196151163588034790237461559059447626642562175473450580337128145235469067426084959868678170313703727042387476787803160837771735882457122164736660990264534179783096165007471741661084934006719362523401550546478597412494681536671309812133351628912265536801674881466718295383469712195952756208538749679960759706420816473767274918762279837795737752771894676491448958392892484867213269987714514402460167049524157672643365481562319571060968058417961240255397057129559625794229538999936005794816934908123838686092460409966436875342278982197669088128141815649955263072441614251661657373476515176935205546768575473142828002611918298307877195718383869420622462957865575663769858235771289293201500545080196780079415644812973446943108483942401989487887976796662597774354940020406833884029592757273630184683350156227565826155831003386709960269674882765132169825041407999359583251030000114471644780959597625675063281288937347691480070890156958774161835290332708912290876607159598608116172548088123413454603571654336161792184101978284923169770791791436106731550990177773720965707139645898590818024905903561168350528405705918165265917576448177817479677541020362237308924095657436596093222577004451098785651263536543040559693093843158767717984360764877183917859833679369531680277635182859857987676171694287032624470809224655275795801790643596507610783069443110622777405826240225372911672489232923792260541307313566725696274417145856670346262809891234424248569247047671215494623546614555090220063691578977796896664886657727447917821827495806412524779934776781179224468358435812547897966089776127733381734445622295862746539612161627274327962378599079878008353281179771228218737703461987872096852990854815167665882210805333111842405125590425052645317723706145019515210618667496845429304652629507307876868055171252980600151894388044461523041555352876536691952637382555458390858130761264111721010297975220266681496902318214647744388700552652116510253542292484551545719961359828406961757160633655499629500309523712355278216639756373984810714459300414517431701613169570835443351049546009114227699486262211052361865287988263438023153839533316005775248127096233161467880547395747340823689840114388805228312110293506964906978592393346636321969007001476184744851186199190551256732591346139042280959713922795528333081377793227306491232134721780903187254639877238239840510010672571911726356935376959289493131478099966194790608487116062906439934413190734703772095841971200952880155381957546567306643521368276103683563189112842294663492495582293658404937904572225900493999319436300086676840600513215457412755086481033987151760793440332445932458950430164883601100042086683840578437084868269310687061016711961885379472429995407185319663651707135601574902736816102790903610946216275211385865702407356955656009627493912198859432611677389242690038882402118367735794338191872833149680080793373646972776384427327890931550755932342662942523502508566360223176547449901888739905780957602144492743419429571079227349094983661593037645339311562507457325385991949378655575104211741593218625131150298943958159907966665888306370809609578004490805731691916718176945831367948341595639157773440946773398075735152327766911018963227979289277061609600825975873927763897684760880834320535719035486682293107509604857332191632780613950715355912832741341752786975167599456310091409060785081594377005487937202175757473792359840049584894722711335780532196730699980809472988710643327178417123864380535802836396487024151087489836219982722689781201703442154460535966185503442813977483585035182135244206816193895462542965899551527664908642045886036083478430013071986615202655898393744494032667919688922419924906135287433154080092423544026377010580266573247098295197512079961896299727085073439172290109949203092899429785404707872841401363821038934325852325571369638603068933544321374022334173619027510075391026206855081238996881220620495886209387984195061429235145688803155101672495880257428509541643567298489270124393697030019220852816117521391415724807904004498778171307718790536613760371198334652389183864398150322986935871268517843743650500884264003321007747757975398301030442126628169976376481061644113026442152945433903523124995074952442491003668718685992813469336634310860003626945159824598583322084787979114740640153903308094114732478868691320819581844548225060632886499420405922925504666038082256219494692525880469965523148018682321396384338284550835455149092870096354886932991255455272947741656340343520192183599255657703159414770990645428765229286990011034046994514082718934317694605483375876342760873812804464242407930586545180134365397890908149306259648672551459665401528803221634867623241255232323266096695420626289007115585499639083743602523732640604049276787715696637471266629179682474837503545316332827232088901477299362195898925077934888310980484262155777784978832316952614182524065582465192830079091273353670305305773817184184071605302818468998418110550720387759731553011419930130409316156564464717191710939268213638790788353754515016918112437764315048848219542847117129583901102671410110708379923118179081617832233801257049009456608893417441782216383987947311412136742917650944486030426061239068383443630505196734733542718446725222687214916573942624692387304516234646495928619094361820188062246390102881430118502222304527038899544394218087453226939174915051496495602505691484812675556287632491058811808464896027505076888527495210731587959105481133083810575205495740447746010158638128329323716587565646776279024438685705428430958925657227710304773536566478787190829644491737231107444363839644623277116352079924693378495950376406887143582737972093019946818916488250342523408648418903304633819162085235056662098662510915799236519426077497941506906604111544965073870683318764498243559544882957567829300392329891145502891837995787524953071103984579627620949721930728528278613068337018627732368497469210159316808171625371158739288152165535132228894936281769731705249896815720428029580096529620799190629365766438533232793606333935569078405352890726551028907774490868848900610454919259625626065208025493308301617780928627410187828347178437865170498024349332038697845828456585687293465332692776029100706653028984272592727086096104776030981032008475801772777807514324306909768490802607033349075708351362070792575918818155895373661571731557389267441068452669410506526689223815347750557045245746721774672204401068488214549006491769031601809673193089360580921041880524359353865022216717640143519054624581292471489295555539571305627179910828714087304714539779233029368811058878875242452676663489124268117584165648119880812458319668763349349578641327665779951948043372998302820903990185067522956230207599273012997062133380048029354888349086660201409835112444713779681490734542350239093925832583534068284747811999056730301556781660060202132777510598263328690099840161725095336363151635422435640967763336872024535373964405239205856116800528867254840617324712612780114206708882195680114299884965727246543730955779458634563869512793851702454074729698539256022521830849858469830383135107372446347862601115352339103291060252041098198673578047716753269671466873022264772677587265452647267476174524625122966769493060085220816866310036110149999635582379109047555525439103255079320034963944115880769432718452538675648109521497736406743996805894856073659563629594332203488845302323417073019203353341036551138212695463045846838283215746165999050626914575768249266673465920354070173950578404458075390378097957500586986431556972678411895704680574813220632750037466282739631955377204999489320602873499287954590333720708673325068900422208629801014462781722488134782111022146033502204902053813711051299914212213311914937466816046100544648987819544560850497268077698775784497080078333644797502778465226457825945619932093376488110622357797040547473853977722345656225743329429036335277917367566054917802335834941004532540469921577200060611538089055057736241133614460624439848107303209416490783894908645853623353827697171750898820361830571997012414236741861731188388552125191810599834424172817832323246234913801447135473962712910543584487288490626494979890294897254812071808976018033531966407842797200515813460124444865731928947539648909209956870868875788123869951419829712634609555300438962961106327949201888565496566492719971150057921860842468262580880132112061464692223518295039648919962208990876168998671920749493006643041272287159574325508036297825966647867430852450737942021697150914907239548760501810643623833347952223176871196101294324086777967745440796331321849111822063943530532150041097112830330091180105004553852984057809721820590025597980932301636748513716643534594906203688535371898939211605037569342158748554711195672840182824889783552232689990913836646309374915913616789484719443292466523983676423391407013474345946910108946879698746680175639181168557423153644539098883923516041738237080697510051093011711010153965895252981735964210464092496051995053189048693648197272307668755243215351926870084555697137006421302731702923665365697226699861786785186505432581117922572570536668939652633516799098373317047982127554458658976157341335932555742539051337273287856250663150598487280119743062550124251930597811151020073541685425993689214902375810235547745506803849538922321419650764752186138880709429036328256617863709550589518803623382423543165618770238664899076011614638687869098004487226765101084613413053794990521304013138383008885193199640834414233487275903352280681325903083399610904442238148436391673325710839424646740513006451105893239172466405868028798840341412160700718070886883734089888835727611150964139240905074954375326968823629092332275294474817933233308753962046807329259736876986593137926738291950212376217585842899486021954926252106318681417939017875539718182055975565462370590081490036126243809426083541730097832279585639792486624821868535225272266932677347976082978239375160867619127666224690615058791184622083201253762010970300338008566392851217750286897529247539444551275026562782463691079316280696626007211969231644164464489574898574716102596884234580698111060369881858125160190227754103111667475615129648073254548785426875072648838825693015195984428994026505616313996227493158883171987479934429331503221347232634646194315760306565560377958114285204306473812213758425922162800933425600546587240975914626317277837675239496204539914017484336098868832774015444774978884026198961401319270813499712768145344318340411658818232722671226714744908330572111646579007434391181388683200607341641537455616776505415049367167556335304507390350195699777039411548377070189541193039975659838518166512699081751389345477762439527051401836934925966402674650669094127890692715049668240169296350902030770243947013791677680007169310563005076995571860756079213112667685100374640732477698572226739989590317478408646395928429192213776092540071100385597941782571139921745483687890162327587222655883427129563691033348085901057603763033512092713039245494201384988332262840177352016937252043699650920753623134886559874466966844529595220365720720906201071462817459811031691300265490785484835615464539362073979257448870222469506183869550629763185881655528983753324341757793115238591540304796875303156674039991651400271524232231798187587866554802523987326296235958193892390678642112053443997211953164808632986586640319638705267384602331093726044407867333486611085105140418187092170117326902214841089522430007499639767628887760820855568545821646410839998563650186545983728252750516451681901013427215509521777723590328337114505932924313166498788949713551764726025426326536870249171733752832018883918785732605621083087595400450307310124423452305619986686868734917935958258969891322291268991418372629351055459868696565686946152556400290777226066723709298990801053042777769260833453506784215529461840032005659361059289619712197633295323212395522023018135408123234818685367544025716446742621774129023348742904513978131857054608451279444440807967121123115617229550314272533856386509145550752204477863687552845739307575409978682515602353027064323869158541149576676969081343028077594467769568091885483001947508015155227607464445008619061132883013926838916768775293680720812180665225978262752588650111556776383328137685178579635906847693491734970149222116847271565886714330132459394246665661432681706300086770622740734236617111015288591567505469221087191938216303423784379375423450841949948333159334177240544847008215761564559577882943748082883221460591996823190717309965923755845335087569306420303936486713708213204894639045126697780137677720127021611955936202120161374195461657020241554153804129320274554594620862685030226136372330762535589347783858825757201913925418494367693012438634284565507607960248522096813928331040067900267820979202448048560947692115187859952704387244671615158665879518876095341611943684182022252508084939850675850780937327936380809960474519752524182195438038285533619992820785207021729576988193410790381882819033732093992749723356796402106647202815404258987670891050939712821454832696501777089102651114320931407328988884454987835444893654900702953624118877811671422798575854218064097890249373147203032216960313842564367715268876229516257257089481994401942620587752658453297226689033413480232490967053151462911644088483436774451219564893457492942039074338769216295503815887372748393491677662833721162542827851552990455094547164256501295767298834579290704224522745689535358774348075133474979531160919287568809919367895742093212509985536640217572695956195367672122791085774087968604102673949933303837280247506649717765063099531746288078135532057301820146248267955127758381973410234581300356627743249612148119054750536769115562067245860430597146341889108806119936405280742146728532885670949077513767763395813540081587944778059129968103520896913743608404148388875993096566797854456492840291049869699007002549127087678702453426198797386580292854419437877257292810215442843545185297050221207585450812598971062886396298718910674000998233837171641275053515827384587764405534924583379028139059761441615817095266885471058191153270377125703162711532213233904685096516936125483702082497538413302074114616160683029848813036111695187836302237518050188092990522850961398910040621312093089083629694078422246612585916443125885160453296568966037702965395102516568920042041141348425606986687629564379720388700584790409561833345807863482031679046889281333127620816809312038359772051466108932933063765797733138010592208267367688270850277399983702689069461443092528737906073489486805538002428517597912022765551753817396886552632362208221184244575344291502383119405615931087392758369222226926028573401069221867961809308150460988835976070825832057715305822369343045091598271004871612725640161455483952079221518714390041224405490715655934603580102978716413516781430818499809145090885939953551796353319723301449857975987045413343178449003830533044549013082246539187746411865762575955151373493164563123400548792474982545205363870408753014203307934198995494846576734418258086244235466889442140051270067400147167406496069688369474049287716860838500050929917664867258643249409166476876175007250741386595614665721506091733949164103498078235551324167772116706717789023360269487562803900759441782718835292987688186862310731515314384866991493391791683345860893556637855207843854395973890769753342073603075624719261853193664565866256856435490979456282757735223173719315552122975677638850146699222143191192069983642315217682645714976979284402433559435725238847526009477123732273997847170086355393279711406034720972405379652846776065994228768557938350759384239564573709753605331364030765418482656536196663414164846685628383752117878063501422221047074307360080842907536402195230206829434832424951134830597133756345137228331070910871732329811180051181693630147380549913462151115529403167855552777133457210078137980589555178687838448485886849690135517841605481585937714099643583090072109860830055493134416712197517582089787400045095453288729841597946027314256271233700344858640347698096786524894943287073494383502172613777220743037056172743606776157132066907805372511347432601727567492433883072426033830707790923845745315906408514380322019811158974380783270108937543795152862098009887471911995496506133933221800528831710781449086894393785792370848635702864953977709461993450331622485647832750789785034128417320090026715333847112300293275608917180464238121353865325919072423980422600098457233993972697238031428894148419624828644262286429258809437641260214189677275009337053250461742042368168407681723535590047037195138324888297017532276351459330224254130272961370749820020748001416415020403733523900333168823071199956610205326979244496748812717006812948402008318197178370009310492939629059704323731617996858527691861823314152099430193301992288935387215347965756612894307232114957183399970265214573350435372503030884570428035808843480579137243519010141869515620877672871417836242716836657736692803837295455370008541967990565292092848518983052518139426557674907640225380180544004639573616789225230796090292363652172955259033047447101140599067923043625645370960976536472816032326028428900769240592582621761418478158139206190656445869133904322748967843952166363049949851529249452316377119295813650507367439357630164748974208892248238908777532444279990369599284159362268729350846736289670487467220397808443079968789886156846741572091547545551975355656418916435609096043078822326620116645961244273537105494487142026977791411411697836329819526128985133470840157661848273063095324613034153988027704220519836241362781813871715921718752872794072454620041099933957052861433423391928687039312868010204997815302113668819712374546910016344456207095149418961891684053495018058281517817186347909771249924657239413549726818254988823234595768960171604393925661472792539069636927964259338688179828134424584500444119728457305468199008456230634423746877342042483242799907690937424756683273512113667670487394645691157831584001079758137744422497395643538709758838361036584417818894455416644965346200751541382662321772208054926756025872383072170827434700165967314879722715368580149763428330099978603152782216448127712639256177541671628622938796462687759297659205795396068401153515887547618203945077823716399184664268682561441494739304150145333840730901158336704600932751461577868635438515417032849217549560326875722495984837051323617955571605900585634492057992469166146313388210953863236053490523455645178730576548056557007763765610399786839368427871601659485436826293605117828811261836038261895767608513202600452215068647140448795952796494508960441838791871254616626608500035694340144705747311489133592361380117518901943148726699597479593993653482291092271996027071180828371662875161243376930221049727967311906010104515537257853507568927273972810662675394596312976094356444593796972505273221980120427444927658787252117275378894808743026625916676856676865998160516696266113878089313140698446209544233958509957411555488895876968565155628109701861884204504599089386291502240800597960413945167700732685161975430245890919151558771949606523217240869047208737523162441744070265611529574967818651488835302851910055281338809557693420414745955832482090615113117784892286247405445501092762011608711405877158460390044859930030924045564552463853279464136978300995931937427805836106241660074583220516815834377507581151521346341944329899079508772559735958965838269099980164963140586425417684696236547744280329990055970983996951895422182680619199884822752849196406887932483429628448708571136675966260162857303366404407185901171522841474830036486566544458549365496367652070276416401819421178113504877294104441146278418527927441799730791937350180880732878541166744144847659328552711977505028944847972388386652367693668315555752250757135821990492352898271598960591497487158035148464260186638471873741071994629122576847674184752408482341258349532883516433500415635055566635326351390708844357217656626106216599772411969615130190153257271722165220428658170315489688154036880696628331111641351337744490656693577400546421278334669995758617911861141312905216798094396693742858463684974755596934665693204649199392952563549877814693034720485079411089251395813781166109491789105374219222416511464546419860237573480175020438162912693896062414990777532711638329847508891502223598828619537067571850310221398578586856576953987419499130076817401232636523179796193152434704655863135714171138942922637969292938749533754882077603025558537604243804098110831206015193839226284317350140801202912691660995688457737051356539291268453078147630928488098754916746723251963570866882873825974816622737907628106656625815977426074278889521105506133837905480501596413164388318559708927124095511088185796218870683399454188384718033617595314121136959869402693890948145141098045796427655721770266627992665239479925201836941091073285685518354104602287125533794303614644059127874242669826360401694567954107837608830458690722019398137920403901262130727907370566623589103395703214857010366701500011206762232232803339748644475692910195249154454154284157167998517743503401267202361735537482659990538777531555667635367005377113674244722538517092836365255598330298652161391398522639576546695693349602691402921632149964325199076279535206207814074181114078234609249616405777374384718050768942823379294742042953994634765686947153913113008842095108350028950926486641919611947312939937377383426098580959108757264185312617541591440019032363136538985607969365606336004115162556938819279676977906957448549033769194844162827001374420602537052126823626116438464920209292558978001483828570159349856163493652771981925510039012109322078200229201930682150500549086708955849911349430924953233869584805587695047096682757557539510520647525180226225441366954505535674623663053292661069964686932861272885205435907740124944548288331903625888891883875141632652490672841552099149021861571427444097259826476438594816298009947390307402219665871787648051268886871307358563145284069792563424730982317942563294916075256900042830190438642671539387676555938037217923011450428263224986864146321426241378920753275183374958926724902156553935950543579697122325129728543699537850587735957559883211564745692673659106203712390853598198508053878977896755188994921307299657366247007231012368675060002421461110262936070597146497671169664073179613889445243118279884551875711627904817191570005034034822369529547632369002880371580933659679723843136492958804000764188047999240277483189565339098374543508175783857570500108959948886582005384358877830435949112863848171921364525896821516400441506256824394052559641830819572610978682863210111944231526794356741762783009015273785643549166856433808402171399161027821748940986346727756793793675643097903720595286484360121134428703371113519929478593216989258231400006298836521156224181421139289675602247710492234035013313194254150523772267068792441841441704266574520557034456203827653090764865334925499890090702127657544869187892063492533253057913446507936999355671978971765534253768246248826775228067950899198703033320489702009674125621544576024003447492851889934271894095413310882922111161073416324457709889437636383508361779999667717125471288961199293164491209014844359021911135299303885989268399331829401610588488764107930106858573340436294814385623531310219767995396023404414304301116139732840937431619474386633131312062471441809986446021128725216770734159180763233227013243949301008493663260407910878711121765938619509056522192902763087967337167009983849948489487187950240908170421178311076223816190158471591463219494216709831104811006539405943931311448200521126649518124144573173867494398029201234967416776085698644259107090421288465321643473232936849092761818905999436900617215618724582975423253621957253510131977722485683255190573999984986653764526154827136358539995415579299956471594529643694759475812605692620883205725327763868311042748162060095268164466190582669659761483505409601026526447030092827625474001752800086160334213013643251340602440491503469095112455188202513041970504720690921400954710656987886946672041395572466378434414245843841038344251392124651264091768275453828819839968620324292032061222609610884636460577271000713863447272595828924965357415073983891928593410238961303815431534674933375294523094900197878491825540245553114725734749296641639788828675754473192000621075297894453374510149454904928999907621369783422546269327086618849839065468335458267687825757606493963921443115759023264893492609502882888452765769967467005314115071676348317157385039407273395681835213259163958931171465959949499332093024395049566225958058415431703235387626469289728815488224145199020287047788417632553769056852176993254090724105857589793295081440249752010175512902926942079710775980663076442671298321008348246809091027399004849739362578570074162100417804514870759874173892475548634190344555809195764460467544843246289310618091522355537586865349631286823537847739548959985287551914337877188868520291366094800297793627575967361904014876488553271851124477232322664011894891320609691899609825718755691714121454891212187368964987619053480090924311529089261849034844573625130851581385499797926608334474337912728363324125115935266163849028312906860691610555419835757578446474036082657553377611687385553614043815259686751857443829547599986801995714222783884754051352602317100436967114165176246432235631610134537553993745810920039845798114993719624858123888648086793128796335061617637756756632452843840337986523601243267633684209209948913998839121276414689682159810061696422624164101308454640541094886512786145553309065660568688568390105635022604652660599260263266476764939226773901578957941557886188968796160448153050925067916817339240942184036043515951705687377908619103052116276264733839986356490634600036827355099017245900974514959366231461921476023976919662147800162084252695480069357848257662697142941544911569971730979886255164525481728965291048927740009066458799903834428385670583264942026125858984982181036076530000995116658796100337015744905224794106225014142494106291629685646899765834151760071275067319798176963672656592032030674525147715451295219837545817501476157549950200237882897447365285951553476887086589907353484802069328785229409516363032759094461944207870899084684099842978484744065601232983237397919709126125506647620202349425297860534231451442491462558429562223581362456515088682847374127995156086827529303260713259217935559104463047891687088261544536999351036039537951028035453315162926139664898071403678891291270056129058086267174794748785854620336298194533196637870226179477243935297732547513152317608611114716613245149568797671883106792717966902499555236318562916833564629144386242480529470264432341440877910794793121070512136703693181211799556498712158526311857548096360999317227538868067739118480870375097835304137455801740908118569653259534030166328384685076867981191761606706597593576863747898985004237922082381742973680579551421406361325634444395174733626994836501089188731219688194063514957208682346630131284371169106947598785966379197394650850987875751178021768614451750552064041793996918575637031451264567406494175487587584828164989284317916994206898847038209590462809760976427045486983922232657725563268335926580708498931446587715050725991421431107097615175565438492386556497047346421621433583528588574016023806435102572538809566211220842175676378142253962898091845656235845487595781131904147779246552754912350912417923312475317266351886232255002631865083410780825181930181704557237173834683732885977486880128313723330911677601457557636023561088175512524181146759857447135628684154350491495886451988537118560406470755884249657124618949469722605966197145630562456689967002901241048656769605111810456942738190357548735315950798943230612348073212990240555559711230237880035128792269342230369634522261685581899988222245972837477126018651183486894926690776546678365402757309418520045864520026713879155659932656299327153032095916885506587741122650994493734733645711661620849939056865744496001450524920403148534490295360590567978344439761741028325399634986490032190321704502382346484197135859488674887718240420506026066461454126097250438597727258042162608077588875393847860281794775971534070862041665280026766143129796841925213841145289023962673193499991759186733810809280828602689565400158424713969952457994136789316434931722515342081130973817165414656585122842115596905023193736247357602703336173147811719213059322324952544605213246568404922083379335934446698619038326893405194645970428984167273503498191560016817360471539725592751360174729796716029080917001410467649155527558547390600868841846268795270142514675966675978239044545098346698939973107562440581797405742023042830799753004453502094577849654189943131541396665747855218975323292983531695602175785600030301456789903941427328898032144528550696698294101140429246010316891203069188748421720687160499084737224942988039498607843332167254019084139926041694687549111080004958987900512154678541080361540587410408086791299765997797462029589572341310667266904480003040025044164969740716712996822027902345063157227079974426497251382480906211167527314796816199995890560340892250867758710954684594003328573121041999520870232545450297108761661616546876447017916943422322264831486138087660986442841531295979070110056702462191531013007808027809848547700657994432247281669557038776300312295883847212371042178000508600227923367811739392713653727490747100238749905012054077175812282803493153323395238468277903831451338702955198784069737757109516821073648026545314957303285105368243474611264254314180348369162071287502063052474373448973445947399661008576936651553765270840826778985344711590164685094448316860171567778804158098143806042516100151158166228374681508392669246174086068241539723754272340392586632882244927983959277181440462991558531116898810027772720414182938822625374717749792887066019178618864833441211258117080968429937967174086684377606010231023513011809511275069908336436980772983948457929519815246615816331254138195017740924198871631636061604000665859380315376721576352005866526252286761529903476666565828587607869388478060806982371988593742413045358150564007772498669864364263689600349635036893784547903520678796820949308097501580689529287583232028071733842733139484338030562956960793679988560784231570184502163666287552380132488178605681113785487332237201372248589325154957448725715750087137570355013404924040923547885062042032630594005198867954157789662802592867538159758949006907016165123007569192961720460634993928238389521832835238133546030845149926308281393690374777503141633172086460200178260351387020251898968585621059530740972070312133610815810956223290061330171335686333389387473692176630383555738892147539657161568857131892504361935035135602672067450742150310252914057153532125199810145179753713704576730923848751213993452556469795969595187062450904708129779458444010742831625103656917829618761843792479823755351909452876264285914394530148432383930750457241373432494651968626129172168927499832438221088387519071654952819998135415502012513202598537330093584305525467165796906614324764056545752860195793001886854178529387883804875275820414354799652846229879956107828881324193431575245071969464190145148586823529290515274166275720449228879753274133295368839220110285691364859014744986085214292902674365561916457480549884853710490146037354498943798639885041862603235670715164243884740316473397281172851491705005456438372236091782464176638621993923769444636872861123716056305436321511681386961519289707508161323983469081413229578312049948303271054460182753603242336722238231623853259400954694273589243684205707720975776874979551552753471242134503719446684914677694920129654003145815083618270933747631418293660281741180040302168504626609452211454221376312564140154246676887024013777965608261350997532738985085874311135433376416708911033387197024824389241302809639837064540515036959129265429849317865790002054855735706816405169000609189851332332092999085787157773773204893803494701448145723484363725527907381239479260000388060666239566559680134696430722514277969183771116559707371989166804139035086293156555489187973791991005439182114376664958369870565141997101579972750674770769245341996301823132621546211909051366271092447435663858904334595012841421766642684489201812944909889614548563788822880091015404456484540059041359924983979402341426989176291924709251095469035128291891509611210645106649426135417526249893270662767337664301679388480272354705861776222253573651005700287831668256774091561229110947903454260320076743020893200962858103399988852264306621431454045827679177365557171702230430174516731812321563655573576091263919334416904980455110960435152699881430175994501986783160374394905866926494256606230731476757431294039825546752938937388571773181669708876673777527288615935489416380753914982479665502487133774334175278633338664586400836972901517436448727926210648173319197162644105549259351623743615708380329402660881384350394841789087316917242933809006006224669056343316863703308851798026768531689249620549946656674511371735132328206069448760788300034572008693413179891998776091099240928155349575063464765131233125759071529739813655295509116098406083731677986832190639551011746377636094866352310773644345897004540809605350485925770125848345771162702184995604774822957178810741909231422040114284626152265683682584073451688940197858019059718099103409391420517905655148820086047419725108719969362789026523303429884114539588749656215972432596264271071787584980837561524721269185957794110513292467594853575662203751845098990916803612330760626245282159066259418076639025728591663046615548360733846131312972315820773554931529868323180488297922632215074798526416100075521489831885971731553633817324752159077836609834439556584374818880061575662046994460541364084802288439341035229061912945355402426930791998680532926842647071943170549187563778708516816669561368431105259618518283526713320901624413474930960183603683075328436823435585986509792764257248149280137490058078215854146002891256625679650023362443657099768440647316246471837552996672615727957494115588347703499237951604458591933519003633181503445060234403110887738879419540016825705252304661828005832401778716455499024761688103303493353003928844478082777197909092937784211115477235063805186939365503419243862706795170805793876304004859654220308210958366323369895474114430702312220469888571902433024154923979436727755314119660184336233968605306013055992182271787150778095796204750983759784658924304648769960951003784701411789178918213169740560391376838359529807031757986574285480410539816764896463038265891917485129054387445118264241938543224488236656271870530996659702454534833643594501992001473718255025877170117676222386022801963920588934340646177776783581041924979698587902661105916438243573760781607233918705017374988768171879083626475396264519372662561809617589932582390184693482308109026212793335148235728253132852906000289124900319939914480114083846493885521728175303009731693949605422551117968505507636857093278161213639203027200133968155588227533336237139141143299504467693186317271913991469480679253322266983957846315967461224631305754051495719072412444672664772597952148864970823227566232237210400188057527485878020212363996542330536121254029802907328706974914606157574738854324966752989572363768236716893087673149707446484786196250540276154045037501386368617759510560061744384425352974780692803444619892741341261377564510589069546010939233957320916147932807112115659290356791305874648849704306465209867717951533845179653912217730139439742838607249313813280305627012425030348081489292388300748357513268537531582798439501969826127254376318689495733496225911921291849256434851898703857634577203441384034090717917636263158727325448214415750829099940841852392783405161850100149405164825397454249172699213780610829484789066992389272232874372886342982569770041454965795441947957923580562270392558007989454021742634657320753219309947162939251768845585296870111938821814028116441861393060428365257272091784612456320848518613763363189736358869790768245057400847372887372541718093017317742013229301949333512733355858427346384113521905663563527524544995735016025557045336145669929555602191162190406010636055368361170136452578224556906445356232736803028130110504607645563222594268948516715035863647399889810028857228183012640775859820318194097698406054126432497516642940538134400124250865706246162951119621008580817129256476394550045363392220659140054186955025883923807859714821758340470939579083802841145678248207395552551809353158425067793608308764644680779529850227691541647067112089211381675026850279707745225236330537488402614834491381311699938153554109145812698358876143631278814760594995379619282074360307147524747326228975710017003581458083256556987954554117956679352460323279069052904676950533842565526061570044673735340344542016821573476302295055894576710388580940191294362483421001761265668708718435641724370552640864291263461802207242152126766592568741115215346276977629218060321964620626387611741166942643285721089032873664979517292526932732966182300802300111630389156535512101323670893870048958551802084952773662749207238446218757541884403991490648370339702113696215995905508622458212794158331297836054302992265413307550742525391583046800676994957003398853099146740807151801289110655863895539589038041090019510040765739581407684381543705011350445305460971534441474921246764317006772292571805853738716144633823796793415053116897366185402661833106569438654302708752626789623769156861790801860378876870950065860653591629218721397200403827905310817355373606812349851526800782033008532434810151100989022823712690411589866447324369757915641593968255352626926036187912812342705938534199653867125745655863092283004390419318847845316891250722253142093611881946169518143462521608954336708159693959520259408031159757093674885982300269124048678892033304832247507668676759757953645158267505107141178117632334163424112733232173103543429293972744644161228295572234091194739117462844259212064625416728617453298733067786280678598462225478706454444248007982025166020890102688285891818796969895729832079380854167473054563162214300852314567773921079459776542008576464168936289941546466518399405417675010289308596689140421139256033064919405736406564128977315912571909871707740326385793576780202669688089277534378137589951634452899855263172801993361131816730114479496417123723612626801418334251457487354907042731751112141451994617800580344717418412263323957582083244403123482180315330786534281347023713533497849605309972825574179594614227613082771953177685768406000715380782822990893468577843667807905405017464657193635289869617474996008998269826008082350809047034541343014717023984278462035794973716106253420298769069176527749314760930667629916127030964428969044660553696489911569009985764074889092548756168870912654879836168796595975703046714676412986817727080260475843203015741681602099389012476236551661429634067355683493039625246965803852306210398279568699775641012407047173245879768712737254833378138591308429480033365916046490396688349173295215383420892194872994127696826094113704620036073063312065693307802818906304095461928465763674405164519639193345961673358306667821068499757417788681831817572572656879947851415137861102732650109229934898257352310143023636619483363946726055770657888632388370382762465967719459816301293208741308656987962681944403349483427529721181262901940473338581995460562489770660260084762270996542116928337580595413345281055694492510226869144139643622488366983404739124232787739036841009546353065924654113770982649063737779140354236289580944013263262415489363768785752296351240971174764745608666148067363076525597915741545235953576585089581680127289910995613755316884266503084841161705543739432048905672654312497454099012354022235775679640951758168198699813822598059465938081706852629161944929680204199339348042553690500528950939385950085138458402771999808588500509486672504284574222372107961808192528675367254930660581080209918699946745732127984921516530346361458396665151779557207426026480726323064994425163704829437670612369473280837729611732927705281399693229138782381648100462005402960114735513789152477751131665122879558830591021696431541482729659325208990445444447311786933975838265014800156230387856442694028134088161001530190826340400396927554486445758659495587817050292521058524083205276409776205804411745928518501625953406643962402460066400343508814937636425745896141952804913820570314564022160513326342804326191385392653998930026864358471599287829632082611457922872239284469797181206588264880189489961318263133537427678676688689422725862482936461099354230752356781050308436804061954624172835842581188282895557904122450294905547195718827102002739613603717697694603072016389294993391931513127814332631619252884560098233062155409888595856187716516712604636642032609582139280833958369702234710184933154531523544589898228644696150296800555003306961691950101102899449787813556115013779552996214512114259620071008450011080920976138377884443248860721558446329582148418267423981079024859514647141332173550863892081280264927205314951725116324055766932466453612618648053448310602530525989317883205138024666811404596539535669743757932222132719014078732299045185079327245092119700294449404464776896274590849968569581368111332638578572972784311041478049765383982670378909662272409383356636120918103155175094877950946705033814256097578919317983810732171864873478063563145686560739482618621883912986903778693251761830313999087320012991745822571730058352992321628990626842756227562194517574304728730775741190559183037060902574829642824273920917534281900768041891502275615575644511086305179334211634218989927758007737235754946998193367218172268446612978758169860267059251046559117737703407229757023803105596639382001172549875552984870515519568799716583979238127005040114298602781168288321107755983017873201179642726173611258654974956111941343486109820229198718355438682647897496119500753835950786047070412956216882900518695680514705668327180334054474197973564071255119242515509799937463494185300076493538413401836342139600587352140194464188303095412057777201401780827213312412819942875469246620764211820157843627219152441748732735264804400638172987712484681982251607472544477198028789585693636164617220228201897644770600384435274258775772238868986070034223276280265275840031910740952213733823778003268943366914205954122727275834670834292179008823733243512542596732440847807654173526859493711318091408927604385363042352614416319906541517832445420551109417074479353403009047393602012246923519590839738098568920321056332014318948472552919193215147831195331503381841353731805715139861279262085251813437338786295371219453362334431492462948533341880495516473826186286757335064756995153955663270572753274319941645718863554696393126626148772865097552096175887405753060779640286889376863686567271288935353137459765688691096985805945086306715892901570320991153837072918518198611612471871255151723056272631636753079549053794934479868393186542069799902957247282495927722472990616235611295382698649740483234049500967943146643831992933768783787757945625742840141462278331388973970088910819771432029220656960812201848566883203231047123966184322317692459863055478410898030092857952665957111008343107842851134804810352417925390881226433234667601566626926367060886559280812583547483160529120768300148750077197622716746834028992512898869109788427100432862864674508673978949033200053749594526728704662136646334734945594380749851840527385527378253558995955101255026710545191934894126730043902075258294518261401452134940820774337848947047791945325362126278668874688714718018751092777860473166971651202590000306837523445540990174934388310734817731707999863927596805792141516469335629104146219355518693142757652134982581597600894925306021307729316938173932225492395533522445868604229215691495842242732862876855589830865441239509886989051868172426925764588438941156767055004511725674374640381577470506721652918909960016221645075247244562240148993221090780428588890074295451508813115548210946552147839296252393436138352457736548954733727535053173047356820184701466216005980449511601023099558723754098908130064442524558079345271808188318146953884111435608803028758438209659302786895194564343083990655738441641302643411757607905613544635074272492844702212029874041498324091425670111054955791698147626949717112788562580809868977891439215113453067994080819566719812239210859206469047433867522618250157349987134382969927391738715693057291231372210115536316020858382621953418356386945888330374752306153206842699441912089930800382226788900272913719774837875632270560798609313644835369176639628092873706726121035344211436503686511132090939778779248229827148571220661565195807351995135319556567906457011645535695240058859747876238266012001377942500024422646012983972754539191327529828924641909347017083668946252464550920536007270377248780738602401036831002685516250744058406408032100239955543113013126135479818805685694791102275134854717617750522444695651493543399284343247380603240324626592072692419872026920336606331212525247924941034521967853925819548854401390753022133487963417948835298600072503814816671911931929940290147611170204380260898170937223993480782838137007752530087546761020856770801339875484205508772469404724047077630797192692544126484298910091481786564799347617882360355735160508794928748363315906942176351863786818029137690542038748487696509288581771582421413453753572406551695765105523728731920521919705470613781757867832383964498284655653040130302075486587356885127832822898369303645625172333122771315375936498495804809936756952344754244616982694418303835858151087577573483819234436738721102836701629985101061127640275608097031228953913563706829496061667491940069425531158699465321038238967425959311635182375828102753462828947976712440654061808270838711736187458127367572678595014677899021846290998537466489624166348566171612036949856380083926084516144848727564793426368930329477179300506792768221338777285630923047063656791101153919813936483725742047051116605938514597330938951301281329780189770829179871776917834374620115340234416546730007311651751527248802189831178816060691359057660342464745072129154370033027936115043241767294984523350121512507780761432356515558273020099408420220263877661171458778306784177142170397842403905678053170392612932538647525788583326470866866121570096930277575583841809827505808773781686341591210647623270172598845488802453750794341671509292255817435872075133805883091803336861213808509446915020046450728671193701348721819371392388383044327638130353361010491312572974263098679880576214210714141338405022152648462760510200069329365245889634107668687546969219443426716099818955801506048855306704328263678563663001128296281314523302207396456171786533845894734887683479548661414917495701240642695109623816616513533894707234928311102275008272557413913549103902990568159886211136191106319275163434162173270287414139411862013439559381180460935003520983280812549452284854697950027856744353395571918115792921309773517964279704782558010301174094099090539636092500467109494508513753598556509559749283869588308954399611777918164382993744259180079543254620754671638647843386632202416677931151148652737142585522330968682861473397649491362791855697103140183442562935037333176443482258693631327294039038253797680534075454817675668082330905032443996521638303187901125992286284023911281194766762125035694893396846693339811557543245739714226106854789037042063875003558684717342689608731752253874252246710557752882574969528455659161766807689421717703902225808504856166910996929510351193985432969079483445503133540683500162245214611779987190438549188248156278100987139341312850240973913148678449074308656438161371097627818665741524229683026302749803034565584228245810106158171672289203870933643870289875765345947019164041375834007084716667765937294021436741843394165745053361542288595642894362679438894041156436873743526977686750955660131364634796153937392437006950365427373513005976455187961019921584634696592681156113156317959819487429807162915965230281302174865899013454126253818035641586621571413393264795814419208268357688979189547543988626182893637906687708507280300781144673048317033929245097145121889577365075069870709817644375571448372845343302617507250847877763607135801669141388446327915006020259853970908779547833117254044070687578622788260029430842585850037458165479969160070982718242739322593389835606508834720531721686099862017696166399189330680951024449234458073209364105846526698579830494075676165544806535415466937720062039160154793578139302380659798012619702843824993580567147319057321039675785980531771570945622883453150618787195512689807418618962607343053404638061218887503895976337094474576922518037748295107149431691872813972607831637047124583521430092018934616934044498793299207396214202522966817398614790873081924347980879579499682079866695951728003764744658611277031716775226021835587299269898873379871898414240994408305512015816878404584388916361429857185916402329941048795477077679544680187253346688923203571950817134885452539149556715749239076372009261728864298239373335998841646966368025934224632028759520703394870277811141363842902812945650541139913325328537327484854498856273212691691812259597639108142889442825380158960948849368182875659664873176316978305277128559445466553907227140794079403771716482402099732222533063106412433145630043592897796354387761767282230570645800422838878714729083421955927843230795949715998987476274657524607987341536613500553321636987172742031129359128110610455585556671841094916003543075903649124624747955951772088293289202918308385673213567559741991066130470566110857988795835715318861423056980762729501227185073881181253681771239027655080173442050419642846742211952222064190907012959802781601702856604519735611282825424116855841442044845307883557186000138112431179005690172659874132095554695738562880827878783322080058136315673827974071910308282354094347221129125842721891339697479002889380768980998420374645142992262119600492987123915880318976977559652222695413811192231623094775039268952142915733312181851914239759701280186549182425728501857937433942166602037286152141409766082222881307764869152997686010215732639094213378804940858458216112160624176526521884477541540032474903942841325043214037387655567718991772055657232867012046770652166827521081445317324467101434229736423985911811070683039201976704908179527947736569234784819206064543683927961379037442662230223585789341195218640379255742213790488197148823377967795829596479762683577539737716266711588203430072504815227749730447584274426991286542807212173480542780729167023022177092689377151403333154908805250828493683903042962945585816056308941150142155666857101788567788542557071510584707011759076612285895148161107518391952194440580732258367022192552733079872880428048789657277668445829837487721657756129313472869126091198298205106668346741086434248274159861852668734358947487709532872757030669038244804194087948377088391872186916666111531216369226413614306157970144822983112574479661098759429020919682971586233877457789427917083251830536140628711917121774327294915551775876170880257998176462479869386830983574135136965073244671892922657610850833097184221922403707118935295563218736640557839477812445409245070129160632186109852265144797248758345301002728541518290083842142107918919292640336775590978642756825477801676260712774712572855636096082646888558528663211018194427337160246595741441339434911538090967887310857054589605320306755300372671523823942939097293043250457409651513049876316587036242686325815881971893743642465971618740103939920694558436616933108650584059041673671687506237046290985474343412907412223848926412500480135413453022806036375515813184375253404707056076810795223769778302933411226720429743696969895654255601211385252375574811454956896690825855826890281004011173556929898372873990544287185337476267757960979841728230781786919930016611502295650343932841550210726642574935012731871077198832994356802319630741748769497169659735241070773589675133887248464956394528274950957845651858594155826328721492246261637866039290806380970203963236630430175340669846308924945468571148970360313988224393904691899637508558566683527229639731119769834060742256259700013089058974844082629607876920335307102146114882764113396143676226122458415462053084337171079277296522204214948033603481887994853100713113193903070532724991595160987041103998200702535048064880291868788468946387012299341939501933633639815829403040795613899012099951478129681845890644036534256710989768787745506537611034987873416336854212556064016335558217722718021552312189257379591682035983595783091597833536880478667439696785350697027483014442386372398011508149849953127655959941870852985684769701293229115673885571200028678119411459710626017659635632991536870798050359324753579523466081848019651915856896962682046680058065480543141707206523510774610676890478519918871320668805886003392507359567260870164952884247805030718390685996911792321540091684066025496896272369368733740545001790743111081627486401960181175980997565306661748072864596903139689034797536810990635391094102363588329606413198315649113335308792917617650253777432814441111646740385369271480121579585151395020850362191587321996586025797375737102767202376883136192959714874377731668833147370348530211779889685095801554671469886352599804979112093809498336282152210305419682487262535944245088157247831393083265686622710001307685013399120035803541300418641749775909467667253704054862682044694115160720360283567977760835305920339652470351336588954420032572759201980341392834902548204625872029752494614986213076756337081447638362717493436032909389424440081938109915869750218372378221835915810501102747023615530422924052534611074554873971595840913633674153113573633926382945742990014718938097461434066037591294985154338724097639355739475591534913022528907576884092661402577992969415025871315847548220436260930733548187322288634389407079292555144653093454493441372917407973107610049315088394927102704884482476217583696263908304564091584344719203991911072792839351837495592427237812162830697281460360375460012163761352560276054083821356158295016152067167344348839055524825446993423435036405645316316696655036012585428379979772703776252868398355532743551558504464038506216981896628762130581393497230279929920535312774105228005857007564691340388236325920504453383583608954893811218798620139866510110703826613324470570857541444212707854124397681868329620338765904537792619400859764162467797537524423156871473498058603609653164030723428924878306545980583557155867482743804077912415370701780516515084807505718761111681035315228896414947766384686201533939900207512248960193581072486969478150412538120529290489353228620621132310880657605225407964619401142397795729253225255587440989030041918668395398969902698289150069077388908105242668766829641224139162294735550601234830671939342188170554990281294831112544457498685993456639690222339602843664883954750334069377227377189583363640832524726273311111471141818086299759081594241560910281330893282190655436303466675350230758183712461481658177692724915306564156041230959842067085747880887721369742815259683585819473942971091049832605252314079720658913566447417471734254680415125107308077018557413495453713659737057564692576000234510413303976332237356448923061507642427022578714664819616207803298420418351753802633523645885245956283840031691387432395362092817291164849086557126148984091293650152689910108707111222662412341511747550237639393971049932529571791709472158952044697905562496110272097121216387428923892975377230236414666032563748134532068451681196293420411527217681683580320484163818214813649585906191783014319773419624020429280128029367474216486317781626298978428698717964435060928719681342523387472085904302639874060745997000443783780324306437053788203418067298989544904790121115756115129742895360515290404246405809636444493279553811084503952499056405881913105379365444685118578785110533344339021604363485238403085309139560168406486358558071139925974011827301729091091620722477773811688439543980595410670165432077729957751932143786509005653811604342092079758872420670806772075199723045031203929324012010409118972996654686161433620588484910693459739600407631841516317201009299590495059272788663431610456197151009580663097869170618407762031585684960914638448771099662235879262488484360200473116044825929474574126820366258374113091949045582308617252512420526774164070458437395462188704782982417465992763664106653358901602544657682089047157135199613726994252616175357686473279687534267758431869387288333913419103166996221430111617458284189986662189758708533356956528446575180402610723776551657856768561489303609578729070224312724664917652824535136526808253202202454338681263325076313141465582504969200875279662145973045105663133388685188067745352557951417602902629770123859535162719736182147829775696588069346964468125317300133095289995857608388964976154318731117061612762850374140750322782516731508028781981168121322776309293236787099624354530126313752003301048560181749765652615057266334118418524989959077018260820923493607133307027251838274111443821883120604062997080719484390543822026824872052136899977918423993582699094879727499063057171480686979849359616476250604771180232784273749814485228944047317612799508446178723862874196517298154149853571551051478072580497412114049947435082951628195951210200864017325344811035652584808047212782675608771042312523152323512867329658750028853293847628450431229044394709553579154238083699402669321031631218792330036766532590501328505277266131294612091023476044720858123705430044123381055170105292081355173763629005695089988598311017097614198930127979081202920179994135657745696449063029407882451490136986299369002308728548551142557607255941643121023313176602271151367414961039436079001002225108649295655711004599781467255655934899563407741293985426761479052458676325067272725224448056780550660867564684711136502076001947316472930947251496167855602379107157114279811306186495554908274748724039077762359680309287459776110563950845750977620998380790370997787028862894819598889112053051840422139146124100092398871255353795043873682448693553656016543325846775433365791071225118217926901338470895172719791568759528562919815177993600955029467739537125132922998738869262282116515887842406228513137690552291837400096119523407407759600745714084952301573399115316267984201043553432667878594701473156639951776636349725336482831328679194811718054770750855170446327377634127505283720384106559860250358356913591006197998739442646751673273576513373349454904247792673206350068771294937236158810220774181420591648836815803591935883984858739275579294022663062771599701245818280132994479906977760850104496881801130273626862203338909205344147695491118515588839107276327181321923453730034659030178815634871030176966552570266725582642755439549035689682033591700670667853775510865569010640454927915290913404074746396172267612943954770483083821790576782759658728076257161786638629229129383353058855439973157392419067608373237227177237187810411820031263531116004022235100450262904448762254811380184725672018083436718031461437381837679756114910482258333582887618742555434203815828851764226411476170991013502962584792930725553210338483340858726888020781409274891366808315270972865082136743104073067044168581062492783154611067029704428024580148811168039055184025850939779170410509030647585598436481220683295600296431730494751766016574271161392519591670183811086340947489650185013116127888674356377346552034913054219371006551423733982835328142261357287189329386522485717779110079148885063325368717490343962442408866623892411198707467875690118804863621143880503126247465962042856333225578601141424118945181400149883897542612705684317887029992711135249887968281989404234035979337764046647079305144682064537420036981841978986831330203432126366352899799884668768753685244673315782887520748953383064872771052540254532743877493557082355676382352930545059183737973993534228854067301904968788042369334973729092268232332303735297286179066236053405849517744481598408089202739450843781040334794812573287518315094088757913046309336791235717007101927830319727878243506812250038207331844208877149701275715803751671358698749209574992770811970985097082800282814188208845733509482498055741801870279894319175319502022028880014837729748410927220138442899136149897993615963088380077110458778370554738990472058577075020818910194682632394766113237972436143565393357164026682898186853406395562072545268610075430602955474868847626581627667188948018967652858351930514549701706498079341781644873475910895562764079131795203650875156203035637740540876423223776786780997958801368588715729873901677160064803557045929960726576044867893616124670048280014520379129646982729384975380015043722195886931787374690087673367240926518923095360007955223847091159384173568492421324063290300433942069368592954900745797816099016003924793994016587018979721553281788961677633023125273751138916213287310998706914497637191602386918458418837986414909466155422646496279519234720784530450661848558605165215259016165183103350094815037733668542621737106816528249607970351041902354540797902073332156851140390295645638000953472241903557350941296711649089493072436808110961440694138478115021612983676297370256996492136209426166826526156643126572641372959704482588271909959451160807264214449251478755567777878834931069486274599183407752885417080527830857999823362612357469477369165744650182313922434693358870761302976972816075666278526184053080579129386615390298322585477365138973206905653945827827034997526161744418377996118528762864403300414783675593787420164324835296902982300925622618301794697056097143554281596687423245764758177669372805031840126915849291155324587941709483543484144279238332731781219036736860048370780560489424543717453482530971168868582732135772667401539167311387844759614470310683669920648344874725728520832904988521923461402991841868053869828433391277728510883523112061790258926505519377181109300216236355963673576684033961448538964380757997935226586438756621694014043802057915295259734732613722259318940192311318600913516956080867096386795760786061561259335649943271449719469143241779935373787099371221787362426630065938791252161749911894941331196891474600510308208951295069742127093741520512059574910708111863755700606416185502345383538768937220392567489989232488976568093668823400791942035169443846072028506826481809616793405635899437022195588702131299953980244422597099380835423927363414688100451087632046922432438058365436320449270201272532958513599878812865257339854458401866724396082508748723708525789308147246878832328608391553713955860608286179492440864572496450364581239339261633249842338757836457774478296712319735567858293325260335014792455582996472351180581066399916053016334714234215568448951209664144847943938160433248948035824572565800681361963875441266937886007562796778363348397314709302166746631216209705796135377871341527648598920794325192227685253197673421596692734135707230721823634221483337948696101633705214754447808584725221290088447336897500674207360411782795441297254395460310887017406030495542298926448253755390032130293763088098173929645087949687684797870977729127698605666272351550484534670010296115621934692832797517963947335759536440762957799526446173484174059132409417489266223831453427073984899162612134717987747057721756830901198873821898912960666960155049055898426647739888898016179449026484065390143407161407514405179866099128140235419341187820408364032387922224759887392498755686897380485224511635754836954594353324551848045033843616750309496151440103486551109687143253502564829146630798289356432654787591413366522456539370676952261723609045413396667832074435047658567283976704635080985462293899453341172645384580114848666040933943525602054462687479113160827583702372486054279741026909415381760858332474953953096360975047466154453538635973552868633360610224288210577155889262590818937945541601288612038955257539311330907414878014310870026229501967559909037399299168594183461441160356183326027358433309121297183686305671174735162198228168037651209536665477416346146469705450660420188428276213219739711858350005543756092066701197313955642374044746352872641956068522307514198539806640812627240892369274359473244474289651420424095888821221318689143072756491895195817783461941290297077565831973557388496587594718156290199738348569654874465111915778738980765847081561935385886236385016565764456179879535612059088017558733864280535409697588028086103861304505697557623136813863796122364979074838421891746638170710850036070690904554440372726940267389557784588846133169710652956767089006412693658802316368535512505646360947435232487083224619895945177376569904879536732577122467633974917931239477062673307653058138464126434579611574211292468572909498132424747761667268867790007194952930177359101324908037416831590397566503202323479800688923880021987896684697805942826368970417333350877703485560630431414611054315407892654793095248788123983052375502764764741303335469931538784843543526484939170599205275113010695272818994755786674107164564194753023099624363982369611980067771179606089286478830995063766725867463260223843837777602161601688168707816070526342955299811359665935756849010059260910214764241010588325929114085452989997533156658081727414431888322765297139088816679173496053310860357858045587757576543172826827647179102237959019346638635457990953080622116316114375802013701689832063397834316866292266720721517301160110320958636801919622030465860545448486366970727610323132850106996179507556359176328724657924531835593548120286842032883121990047277265552646118976648414378614007089732273444961145566006428226647786658180124040726140253101102300086375371194544257927460109862711741701227443259117178044297535782381299237223508545212633922051403118207704149668181033174638533875349004179438206100176059472268797633346771017745852327229235571286977269514674064660688346999323750776624215966843007021253559657960269787921367371016223952403718307890504139974737206038097549969934020106605480605088735537623929832373898345850497727683633372702793505502428751520856870809410064438362595512536628471021940557733200754298563949738592072705718498120075146932714914103282160539670539275230813586830003250204774476281505272614225762046491581750001533809104250026588602042235716221552047784549390013182666644621674824858078387485818835259998109092800890183729325107243632378325055573858640541719528697795414642322057782599015929186916985270141695869043875418126427600665581622913376797983624085389538518869639012935808697097178520902746639375510158290851280248375050834345605850661754736022374472879143835807769229601826324996558404071651087413260924428753658627277623503797996572047760861390538363184505626407421736891733277651013116307952582130783178748488477603718413205315322955657992352466207710038860494766372395966203600873317870189801686409781425758681346294318874806591026164974222825597436974471314272782639953709212963192606016818680237198361924221943370900925996660773029415799198940754341123501869625846314934342123364547625622889828447985376371174392153138361284272400733475662216119910334777301595226898739706846405010445863945240494065304297760742914308304489119138300586723081259150777691063453840550434681803422299049656003680686413396550565974589399638707319629228576386760381786307365218028195823482430757165007910288487694730845996988345403254421170168122034631393965028227321420247575973916889663453453532215628327822753297091186599411652547970963697429535356144883880435291029249851154586887030122745441240992768088908020752930691292112364847057374850900685610697204551306994959490256423279340228293247750965708852192455991557857504631249118370123636456831816413489202335386408291517277850926872147082628718065510259518821097166409971953040279050190809308934323829780278635451247091737229726880866612122049177078074378983367517599547414919474290396079306439249969569797434551049285422909059022357228308963908313789240502971888875230105989119691792335136109526843852319261730657756877861067821368608351814752595191999234566897965018620525257619658341399930003049249212205845985546263457613145040544700091856602333093995798676360808461398529296370114029684931041695689599056723795498585803712328752536493170091315044622893479309589064328769170996172600762136310051981165189988489472671769463122238703945844957896755489304020392223967539657368883402892609225964792949766093706876294890783431814513726127102898080307953101860251698712057337709679928038644709411259265328354702534701960390068440305971346580032224127768182050472300523663589520138258231440141565393173363344541001986240110596707644925426050293494137832170821389737204796363950116145487350033163464953354887012251290026375008657379029909765485784571049548737463266446169655372784151481976514408810138295686465182252634321567483514961657034347168253041953266888135467225561755127474652183782333577667965009301663999220817790968144495120661898497500258824041107315153630286256373651496019364274554086233038054084132452901104857605713972087078566103843275732435952815400495213027519339235028045840099343320664760988524726215656848473550769410625526938658466547079261247025364516182524166951853923427967007329454207101790524607730025130658159735202560880302936087605890319046062883330810828335629005022796030814701121125657261155002137717155672675560744856766807441513738557107073180315573870933322323486516708662193150355569990780077381028650888668929425731391726633297773661515054666088906195102860001608666155014338523642869156876755441254526670845068026533253386189700783631270342067825514257101502566498123026894072429571950565333273780370814804356511872600870822126240626359010418769986535265895257244889339883043233775587813198623951699156989728508257870060232439883010433791899444561682704931926479016698196888954820362885973089771917077386453339940642965778895087983551410861075088617417486962136572610780504654576448808910208880037425285083274904125841676983950270899150726007617555307946557914461654560075398068548505706437188374580246940294064225181337617466784848970658883989275204822420898186170392354442148655487519390617035182299140292665369051377211110584546101111004429297860720932974782107782098405974169831155635365760053935538184705018760933632438425238691019515832074335760218419046683753501075926204505070985439331177582399225371760332795992906049514189793864041258964073048451799158984841169473762261333383369014709196056062999316710121572565157341827281083507947925564706327027009071320377073103069052552308502798823485546515257935658346169799555212375147224621766285301443454426709843734275142240097772241643526464046127923494736970506446558478061291390658838254622613745989738831811364733948255315524930059883231079548307906147161901157204478936381706949211375822521073419939876573767068278836690744741187985817001645622737190285318808872857283707221779327703691598896196573080926391072916915833848414962662817842476465240742651287267999600714754304655305796695474636438857601577742545649304746972788083067239534189630802004506428275127008547067597157177187623341660262230996088221378297536276631353482690769926068783908223497363340368657402725537965785758525472722314180928567296339097132960437863559494486036603586508599388837759776111874258800336695228238402665770541218106135103612110368999834826425838161474852880769623354725193237632159809456377463216050739217706795280191602842744768014276799918234837487504373685292541021590993780303399976534280213581727320934853797666979037167081378903652591923722603537975689179689795806684076196567367304499208791484375983940991965440102819435744827363114981068511194773566197998670323617678466717810381442121337363373812004922307360814440163215531934885518559100181309765852101464755872027897912762528832791988062491151093680137175948963256627148732533886313743565407933881738343497008637497189536931242650994484447017975522363552077576413771018051901857816672567975287643490043303415549413265158615446884951617687764285481964355519642422922161539042946942309710481257751975013151866607130330881781862825483373060116933410111768567706100742880746808862652132796749186415227575787956945240408534149553496153880951015513049132714643785338685738958605633703897916656869414880567237953917807655379904973881303234673861436388384379505878931774269412067244464601745125251552149923677986929870481485410771444853158459452504887005320836395421234664427559831211517528558016793226118188929021641854680171361188425272927025464204596578954770166393053848773093596832879968789260836151725372755608240347581939435802325324437414135768423216639044895604117913098633607374682377339922803003829705095031265825797864636010734640952783670934270232345016504277045032196299103798298307099832971823292025849790621736328243964248574028079430471597663807764152997802628584346277448542989067433652434956899998750161710342207014934759278299095196629147112810917573122090725642656058654092077348943501550798984621786341166131454487076339313517772369573894803973123188795480860031321634642571315021730400965040548784052504311489472459584375150356117341430695024393098819203336420712894343863208905855833699282753583661428017099812253464198186199997368925477656242214875526095465256385028407975511538622523503186985941277489454777221843721160902361566801038008361986071985399963749321522453861945182089621303961452472849606610027907263412375580593515537261817361681427384186811843122490974835779376976118109940608825450426969710946293826236177149403373810031453208048374485365688396831695540686689549834108006901618075862190846781876314538569836559066608031361967892224732076597184029816818857407188170553221411229725905973281213531267172879841423497867201348834844711037741988103773984021347607410440174064743011602793132856929266762296901919926168172450352524756747212959808404116103030892717458839682174788121785265252979869103129540894853108783336542342539817537433645727369894884025028408275403203997809641470475301023730551698600955644692343835229334174508734874630326969221597224651661640741324476738870996593176339966317926789420446286028725095685381436991958466983959639714718175030155610320947746933607562798172062811174435441389632088400152751917687237680962121635390296794004749461487834068345125018866247136798113952523412073689113045143673945412517118973390768380793577770300865795880854788405366007977356357938445915518640689508076925422034737213397647579056975037064994257570731372215317433971340448995586686678540159597352436180437655128599880574136117103517093640893472738686495828416368233014893014175444064696636124944563842864367299974527953617364328244312531170394774828120630785737106433439609473664421675884503010947013652320881504787250654933307168664944279956239169618133576002038828706970356568566350138204251373687760754767942885801722383762743612591035580336767865027155480773264691252517563237517566271367917743845928178193783288282831395795460295190804861654183041773014573862625892894851124959856092905064445816843535577265601310999300336094629926607013057077038009541791867430928591675726015972773552200882373644037290811091957407136012848448376757100844337919625530931014973094313458768509011239205507059012335974646685064025715954464837018212981612208870508740495019554248327533377745286115644084094472933286295252793957670295644575879497872554500305214797610637596026418328344981503428958609874910193817643884776402592634755501239467298857865511443091011516810187583810006759906844769684658649886038523735643941885666931898249350314978609197989149565171594959785377857407893635727325506613741530009916273012618738721195253066309524211699934439539533313312883648301192102349089530011234216964137024975903582659074240201695638626938239569208172307753207599109864426384673573623427906276748359472022345511428559737528752143088521859211347204020796837973871827806799083845020142339064483734947027192072748303199419066570738029714676334599482317734776234414797311024924676345598219268769063033290707076619537059437478754659055278568751824726699243972802688168368275823970938632572514997736241727425265747748829489903582754278584723571419371834653886893494568418043891749773140347144959478963830377078152496019170575498255354827671390362412769534773361362817589316712277559816291400723564471398001476519995785710920600071058319492135350304181586285093873929984921672707893502472502718499661900387982311943145140009298111179702341035364578552515087514805065980088977371560625551571880366874385932993230559115561917953726910638177155895076151047947466292235434765557416564702645915500522330607783287165629006168544685370489147616388207636332290701442424541837215908371662007243197989149612424088538569615039516297338671369049303231204265136882793866678179404438180563215301271997523765648970326426075065344914357559431214867151124644901990059644246326801168252195954041186989055347201503697350184086271696406209989271574855257814403260208788290459518171780202804610583697696644431417115540484573966077750007443505754910243255049163448293690320781454618674854742456557886934196791819470202567282389016104982247471258123024490814024400893362990501205201476792804422710551685991264777063031759446884467984901646373239597794970338405480412457824500074739181574513070497835943583294841862349117318863066359253591107741402891504392961687996543736618506610231148751409163221542316595545229839150174320379703524009090004264242754866115547415092321062416203352494047809387099419502622950736423087621885033296791590571168025715715623333813903829384610089330374365889040202528083965937451066353146713027356720762891724782671241470605194997062540660203031269100628698407622289025978009314606394606306812002348841167560365757287758141465975307947993205319968555286106390322419873219522515764603397947844394989172233894603214994411430510122673326316224438356889386877545014995120415057041499458678630055159843935586850174980865092700576614951146953183738016695244636466250755072333143046723893560948850128739232134390491214924143033181298799726210451469371105013258385313243015214442412639917180884555040488537379598750702734946308881268069142830747035637533323898541609431614953752696304163906202161380650292582663752568246599523986355955010703278707223777492551246444981427509711158660600399154215532508033518102472257009654192984547049497354346063351720413650110269576198652407173485146901167065995311157064418064315090681437108383293604513692266532592351792024563476317955676666185742205791014446584258857468498487855073062962642724147201242175995280903062151598100918117617117875664953785197826370607140413685952372755605583563512153786825737120682592478260588181637535869561685836419624016157853159228488745475446352557791548769891436312897826727604302223969550274609426849824952774532780173659902046735985951623281691477774930628687541026608352888532628644670190475910580793268882914928719960852444019383217837642387171365492186431314029174201459524245170279211670304663914332825174054189197778618880454535142476761702619064962777644088665713060666041564586754459753040785077873633946942515665437346296848926557336551528738887652828496137509285694580451586507819203258002996534465240440548332127597751616518832043952369299947300952163829665265859292014785657738108540504890178224598061851449110455236075028319809008288087124484278975880827253888116899535288875828007802573466290175859173452446884300277802969975927610639233890839869203389231804248210337170873461221942388756501856469715884745801919345082554106248627406276167871154662537570768994227840739502738419571752470368554976769989462340526254944018092148667996057742093584329208997654637808359416141129211057840971948373048944264934964579790846704161930494782177018947095031452632205625479649434007882481760539324841025201408420997966689351507232515194793781229870696318877154929573913139603966819464986206687292218561234682243981149283669254130485144006942522208225534857675062732207277636510776364278082252575150120122935563287462149067644789127888999486224232213625778568322903851436576201913703012549122538436998978866643881076386827339942726726999337682439884651814456584140904355348426973142732839023838178049486630993138749023850891032388259119086355344483753663624635186032853257213261234873682333122172843439447413072078076474570947110072127850057246392304617651785621568387805747073880820543115804496812850639780089961403389250331184560301029177345369913935466870772622563142234558118353528184441937826730263280862157486151208462730148477901111990071721174761198446483853250438069878033311881907808613274264232984130082803946402255042128053936716604259321248069956118848646709425557594785420394260113035742852255975868849310300956508905442192584637166474740966613909320412410495963510069800047125506023291063854525059759060433454909888031178037063515458713484659097873425279246067774041808664513503511487196842122423465072531077097242279004773138637560788247680686301496602806864404211057323779265999188102110052820781411065983265208068623718482074037299653523333230795964249155749136114189013368040559491795308569585824220905776013508584106896248285562934026152331200624881940497564345387481341616416123764847624530788301866125577856456958218138837483084981581403346126113492753460727023626054927838585982133590827408144843294653962432276225498783954549105810214681102132158731699245443348938118409810009817931663392778738323209390268388095441029271980630047732842079922452517813205679382939996057407879203023501258268312388608398681775762790073936174334597586846414483535563798023378639657283003972436688810088108866078424540040551725119327943275322223801805966812864542204246796301710584877062038368915733506069515808145074424460618859008177020532992931768035771740588835739659303512389411667551999991327890032066604780290291647865686990357006546361474126920522504511255210337130291009768930642810614135628867526191990231348460200097189051928995305560392311506028964075144489637511158118522716509216214900469950514301715588573568470225268704828479258222405115915305281355427471450826545845663053188063526920578903981462473360606910337716283041311194256693534693029848459596896088267587173284671812067281671233414729810900586406773458964448362398388871634933986787379268314521500999746164812806713966314361052066589227418071248052464716727943251199073142272631454067310902996943161966982828694056144548261456057560938397459568948330128826789040132346036554001674465963607422592087567608178747040155567259694993625809829486011592782139226549969692600989193997551518471511318547958910110171734893710977433596291058839979726753308622350013282182552971009190249735947627506710320676412553756115993055115854713603783358762469938728461028537373518185837560337336741514557834292258915769897693706178799637984550989136693458051201325182472065074243682495867003564993959219906983414022816877827050404778254779843905886255339213089678715015754460609485770019292357980201954822624936706384917170890865310311590668113668577787927252874033120677372378172936159897807666623189323205836363749409069921374825536354474584027409665943297111261453394503551615412858498930586221939970898129336831039717426283079519607659768683518411146363296574272950046178013895788295580994724297874636713663803790221953582698303514066688370107014116608749444130424520153341489907216379652257035746073923386461284465293412760479560098371090499748270012962689677604834515270253552677302975418283974037023535053088783121231766876880089534519378393155590872205322548307784906208769224414389831868534972467322968847504122380117682462613354552099946975450559658633425735161721929719130579712067297154935813842933342235225413249199470042789215096366783971399240571071062670870561322006242107626387079355218791164587798951835029131627471226400920052177697386882896778986948522541790919306347877895265183367209964603944216138311967583209616506573911840313157319959221652158442263361200721212694236161400732481162695830563360557196448958185006116774390245760076512211787679165138468450000689492096326619113303975450680651402404404196698154189026384738402926492153790942626873648100501062811306815294429277837805301192283497313603926385583939099635651978850233426262584225197945917102392148776614978892658988221065306826877267861300805901787513341860776003776717796724235549653107589545236652142738695166634381164198695687124460218834513780117627579040150536567678675187350088221335156645912377230513503670547053699686911249587001960480543525666075649270596933516736292198414707342368486253278891302919636276916727843894548567629806523471718530750393911419001877314994302166451666584824248786301129282879621118919435308545266215001634208952130098186729268960310745112236851772102036481227043034631274543638948028760818429579268483556721919311337808102002184660437713398688369476955683239328643522055249914948403905188744785896740612809561542889695628616236078953790666728635378129150312724554176392501390714482594253886389022866624458162568958350463324048589529455892715302107018913458991855899064277163780313501078242202875938753970148447712491732312218408031242383088303068003316745465808220322763911252590786177391140186890628547476528089120357696509741300022404671928679279066915356058472864003823867510509293053777778064883341569867107730177712484035353989572708618137252197608582478694011024098616569886645600835075150979728406439264659590944201967553770340542289079594166368491709135549782078420707152434600894710450676515723474949573011297158029021712991872729191816117304654342171194382841656677879180459782490528895555814838354369827710580355857708363888938113769645516460883791209032884794799521507887717753757501078765201758111646591876422502773539178705291024977497621388012890763806339473034751312905845994198350938316171066833989590785953317284564502165877456081933716277660762762956604110939512603404134797652236158674598587437865058706184302474405668306896093704731699191480796371840530607390386892462012559567821409900606836387431050880450725513119375013716685716972380915167181113308737168721303492513154085133281451773755257950202759700881843532762634871277334032698526764341761942240670461679289145638537841982414061175258092172315703720917746293983971694702798665897226287102943713375990935599065387983587982111581382149211033952892054735873674985406313804431993270279112188088056404687476065049364236732314822151931053294056792153615359125702402520808369477057140193034759611690071087187390979897819130141354013932414480763165585658438929707333306800849258548774781719747679456083456325862776645423045658140451100765824944754939437939465655914547158653072650951849617000405413225116909165980329686985994278732965902548697227475387720248836847532920311987027747376366380346573525443498287235604649498968028707931593167752362490818378772328931442437954407000886768588721713406305712140724693028102519473227625185948876056632272978611916069887017817570108938054922346997332277116696345423505579377411330754020519836267687793610630198426462976955110756367967640608471693300633892107035046247651957274384773132949527425277480632238521274798095726512801652220631462982257899382310447274593515540123785324699840788834733010307193795984917748866436379994049056648362664468434224494074668850993719208971410700368320957937701693080922850441320643236509992717063398741887897549521280468721129533708009105183065382586769922697801190121913472492190290060555233237774700911382999855713417500852177387664077658205482970858142908603059804032427993928338500437759292281501687752082626792442855544871914829743212259863625334534127583029408452681100909548391428644911434833189613736955713812017655112045284437315788980901324928271482685588688909560634878419039683881227361320158714445713186087470103549835348743767379298660511399326904844902492562614519692678329572107054364766593992883232290836005250507402785233965558483906738062514620327306174934149665065654530826059723252711225104348348259705747673254562948761328882436128816002292253945533377721374736151884668944277951778187496042083651607928291548061532558345854033000082744699171980620696600025117869212215679483932180618263814030481872708624041219865249126492516206284349695681498846771408386567797900863805047925346787378742411643692458199041572148781103127608688328620272133885741483374225555154322057238418937438024514934382823039987495628405800680507865432179680078794319696990528785255832457429460810086846643353007472476213849678492823271633020885326595153977810784919943742341695861478477239724089576834955868215727137242565586567325219670779877271414799724855706851878228868664532400752981968943501810579556295081762362713557136404125546780028106468619077121964457411991128746127848767020469116279562174046947836414433505539915406864641912395563486193051720752629419679337918464553390047267398845939899063671839169376750326041256412758218721254051312364733423635791013783690977594209287218903070198967734058649626570896211643861905640387206980536113501559594134887238674322503523148891906962888875933095304296462497541565124594137804311139113847073199587448383328671024772941177093749909314804344120177253283573226341251492626017888435161185048583050391838096010408689512088207969858617336509545084075563204493218805615994039057317189459626979040907316405245518970999796601867557598612913048441245721593418569573132980701057182622608133219878670951779799547455466088046036262669243175945040898158830600678055386943915781508140420232715472310189538664750677682261507089280644719802841976672876429083382759534705040314193769131771892735929772005641449088021040460216663643107145934325067117540733155508865771339499175440795981064019265765162505559137368577304002373362454807212666895675419596303829466773150353909746993222178571658943851236390085873274233078996213842290730486805274251427249104049554246447067523987104725063845040874087820529353757135607606593616215396547692316560254770930076883937461051755367742425238797404631860742741440376370401763256950994419873168479806148663285054031848549203371744248345620563165120853463699370486915148671858869711414459507552305373610987850851183873723319710000913420756509062889011904654541938625647034740706445546139596005178638749052062576467588207375881955769891699989702214350299472977615608380525413719205916440458329633012619273378501842270700033420104724411569732545142094845549161757043397193045220858217338519589630569926910306855747320234013187184783743785645027967052968362667327384610818481735826660244280188298113697368041726123902642864585621049250966726292422145027352629233395286706661492525558138165987263911873555226988165239402614161069709530101972115635683580897482018228569827404621779618783833725642560492885245324028355886292289037553470188205236775699755180583090301248243098304883022936024604228705689464060857077108543435911283734109543744919701694161520955436954743348148621084375933728909030650675239861036938447222560345994810825985104882972494300824610983699936325155170632908451745999318547016124084538517922210352146476303551855255685588816287866139792277862188799790901948890666313668902881947528239624695841488141024323531322988781132747965935531945348897303192991052301781618628184914446453282663843656369711471788610022096598317544079766144834863773689348390774794958979245228136327435762361500211932498971207083708217621492469908233879963040400949635496160006374254316183592370682401227489170274254656045767016643753506707167946152920326372510985319132183938474699943396959081465533535574479570084263277448368249894547713141769953677489914957152740047980036259946988212469392401779854138740074644778964032107179091806809932321790151817894206876967045196181732367072544348719301983845191777929627178976529902158229982476509999178604811532082029744261000041420520962282009127445811243895850355778964185551458689567456419462119540726638662939307829634951488814693487517925344032246163948538214276296256473876570405213593643722167906308017387410795017959001772240876219828171379558006064511573201452042342108202391126050986600456743806685898850539470987922383556366497784317222729530384526210131026610473440000958296283231106829109709747805599630197941561169743961486767558114503455979988972129007941538084013983413259804407830982770565532590810958513433256390964606228252080825265062828028796726539281983199466264526104079059879339606251965394997418187840016416645302085931351322608793692606782427469474105732817045307524491403228927874094625747225144478221975094919686749758016174144387206451113246905134996852066631488548410942495014897476459170818057270832141664435124683099206286604976752742624190148647557121149918215829215410197504024165973599661931985367324163097808197852696298632132504420357986147541572862310052914278563181571226477297795044188662940501111221260752504595450523778448051085329600232133129207339973757502467934589516892576999479250415818539618581505119531182439982120124105896357815360526650137003810936821054760749182015849454603786707277946081185546453223890960226381714941914926325254561342262882730628214892160270408698721547674670626283741561002339963905849586129500345843443883593341434425967990147863380074790015281217670952703528269803742946848221076052955077786539165802764809739171128680523184916314554316632934237433774849902114743295358110600084680633607705269336563264093831770797482944338572782904388539687001405238840175607362742176329603191789085917092823660437874517659783880955298738907683433673944004513620902937479747763846173174923092819219900234785860243107479858852311925556118442431366632132991461990940721094508312159558548155031350451208283247013230986282271462870043799512828334150416243415447922417612253041603551427816824117484841007606827205713350461155053366369128335575220844784078423196797788791709169921555419450353161021894926237908574842041918495541694925813876362387640555631328387270922075698828278591193750851834794358104783311602733174949847789521434740950378321777889333787943507251937903544467266225699667157915866108320563821175285472110905732133951660349163969770796585826690811459013888046468685093632495497952848023567420473189776529366218595831207979765711086492103205220391961254681273019604712169944315884032507579541925907828180079471639744495087975206882260158623116947507533990008458255896241891271471515971355040019634214602744192381321629953321509550246906275723946419231173200308634352019163879449718274966964439932833561950966579766149806166240838762709997061353223742406056964707820028751865976166880918267694428005943700831863333858772403142691409882513530856768355238939080729451025878818794138422268801897082031103632701958539790157101603202368609005597267204410226580438686149726736039431501269895668724983120774122597919730313537511435264250480316885974439352686714725665358822892919673771319226786070598812520928427693409419019861161831781245254614475474446422626788801354715543708368856107784350775355096120917026318784000643885601827855545174269877074502881012732380686274652727218253806748629616548733268471879859311358769124658340358444422253019343207911619605265346901987622500527357516437663260427853217320089253758770868500746602102449049022621405257060689713858140574924141997942780396776936906115021924150587723281002443166012236136568742901205047400692803275584485869668714140980177719390724622709545273157944869321433300327896710587419033108637186300347544621426079317939326846667843191849775118296348223370418465944194296752784483178836207343550398386242900372909350806835673224238482986214616896192826271185543516337172173209416292016854856362563981718428727630771009878682264104859385793312844624845143515849411660188308377664309484712424713739179265688089458476508710728491066164664784176274222411621822115020173153146286386953228787191546189105904174103517936189660899283208102545799056404356418032525385162828592731819519507360674013702835935229130519590668838840924431879301083911345797653744306383594823102075263687718740799858331497165773712466992442616114360451792520927734849953205852314879471970931933939638173503933326816948317600581222621475965773208438211184595533171350030436951579307825606856203689318269219784975086555488332676572747896092735085664251134208552657472022798241320739334877683641642323288177663422799462322589967616664232842601486394347627350241948782406745923478471984733627958097129285686788776741152905333740759172066915130589002046118513104314552499961032171295062748259913942634437183256214920257386466400460429621321460559684772588183216107064838413032069793337210933487429244814223663545928537128382727342088221781390710091334964438311469796976508232919409803372489098715761210764622263292913069011228503314497133027687562157365908634630124201957205595801022502756416743606802594773069141226741965892646358416663133288870089095002993630310489975738473086540407428669261056789883477690403606522158396102629521204151496351165178269839807354817861666335439134428236942269130409416448219257071433702447621486232543977852284330256336152883185225063562210300719475024090484941492199369978401929973353387302703979400087307426622672763970912804104770635774209184707565416689134570341508019741667187039399660943950589755482487885610435847967494837148007397351561299532111912630870556770146472217239345944064137426828514999961488196905091614113332425772005098650140616723825478404881265683241951993112867002567330043265717340899576262537550173636007034345903390509239881912340049789718104268853871912861941883111651598050203138132836812318270226652681989505752667708877755932008038187895989012341201579169928326890324470879440535600822095945909669530108096006399956455800686159629351913493776425232080641512726851304169344278828289975089210848453751425053814153295291300521350678309194860809864492557324188982140799515261064664050753666241575871588227522455313805769364200204331546220291727151555342025330769365407607454881141006513085288494368067969775536979155330771605002660234041646536672980448880762921065110543941242127243582459259082819468583634318842753910036558507068600819108067044497891789211925006984236963628724674692163448773617661221207795564087331623324687753267294565224521396924887827714756334708302797117968268894454106136445067789170336654753612993525770650085491460480936730718116275684961141101904458365574855455336504479614949465898291312869964973545737944777290666173983418866332750101647586082976664474955090506905789007696413890033607617832875240974474485927214021131714394177372473643809141319901338879108264523450893074965960260115424787342483218326485495693494648082205632445043596138314986374104506613155458784191059839546307793244645957932216345943189031284855428368797641470492225753433309654452234735610281626723211993843494397611885040354067656641839768943244431401897226401941718914067273733979097088884268398599523760287759785425720690545911371975631730033600338042478675360502603803072255929332258285591865824832009654187018170833391663486943141337587072782021968103578671142997974395055522138201695982919339459617378964984203883738581623679908836682997397697298774883831011966085073187126090559353694200507015473957665531250535867582555535949442831218069264033692553602452938294980767988072469251869047856889474391984837590555389734460955543971298838185453643293031897821060244769052995899533776390514086437177304577477568427663792553368799818031146284474862919652255521681802226646703136999732499335284196635516877306798770935328679926820312151005134885474962258971485821004956590766857289715069630624923545409425126571439786217553668771587845913153933617120701215297747406243145518958802787095653746551749079943670949569975609920425499139756242982890752049903123897100644369537844319555101720445754647574422672421815259614528145503246191577399764698268473571722539470327104230682485463769306912621087281286196464758762758868589994723576097880869828333208450961115433664073336871175269629996122176994582332819878609385816926627831278196375868581459951471320873413836765253462632944280473130464049641507728473225534395701600628745210918739201219714975855644835785755469991101026651436540441694320358556317063125275288226346324472251003841762214033354865246474479202223694585862837423027977393680125591807937803308888769270295698993097785765572108236748252098227716395199160493682101272549755750414112143611716984644019425266724594104086442392224093609405996427951497272305186154525650979085646986363958386306153744463779827248879597300555009964290259914201770694082535289429253275043593542581129084992125501894648777972996264150354188301656244354946900055147723722140321474864957089730282461529602638051122302309207192895982642078684773060532967824360594967613779176640759437211595895971721128022162193928499597220209397757023842183752601845381546911082959494186204712580359856159025218529546302127636371858960367326146078663509823710418403660226886976893674959075575533859994313438836911177177181384019216634106872355646452154968570326110088547485095033230712518552867797042151545724811219036158078497553051165525249244728068126577185162810578654060003021929584924800325908522449018285430153597727195177176626194403665734936963506007998705108895882389077124870345819843088267043202644146537040828601290224246208636500008550101173576990399811373280974058133994450748785353445373140119478136738677494580731850176929794833165646812433792652375507567943688261416131239418228319914907302849792931667849996820083995218829507439146911236605664873551659036447932896830101369323811900018563108356369086545500121978811917076476899888479878576400336948277637900819534528543477907315278341768631637977060260275766561461403194136227376861357773055018580502206881741349294956700659185543275275105905739647837461565580311115997512765310205524353534126919856130488523138015830015763112897666564693586636222939443070885987980997830225968225083132967466250474870438268938913897010304708550472731873916266477974626876269952195177353125504503085373811677567751459779939387753819060689775063621648998391464906026515291844778696177717031097573397807377757729762773572016428953760878777348404071806535766068751219696040015771127845775248925325015503744706006907770903675348967606199668457236207419293999614963548764466727419157191415427585160189587465888248341027033005390572664847275281488331342315528756383159165072687181832508787271463541419272685653774077032361415691920068257433030383407893595407766189156391337741582018752710432399878053970249698405506444132764733675450774660975247463098201486683110087899600424259625277652274972609143754660411228095608904674733053151133698216148443888780605029996167032926519902198525678353907787139502023599749045863507488998110302355299221565740030434862217247334702733530387745371114578194640800647707696068642990978467324104950913754614935351375448870246645917282425620968159687352902606903775549579952732982887471100870131548391161012538822425613119295495217794566331667986601214953584981765095691415450984505991253708066902380098019587570726303149270559589190241028117093397293937618774954986332530009533728705356362015917300557584251189304874606002570192453954033798747041376032099147019927779276144919174024750570288891751817159955723529936384105228739699377053939299895143950432210269493926451689011591937704607949166388152090128537531746399889095763519510778008148931384162692385089159311225700809481664589073013388919540557863990448175829490639457103194198074533173393191856220810927645378982554722888536643979001204697648238024237603564206080204299602314008566240428307322342424893939987872519441741951392326220361240145616128426209395979647457908749255092825471782637387845873679574445408403848886175612070059649864733244787709662839251029596541752959609711502821840915112180905326558805058904093920691605418368884751940524187807669998816056684082059621075077144122709691408876775361387887751333997616036973091543972707144615603985772052455086920882664933382305025566055256204273304462462422662789675628011550979916703875173720196166529215266291903079141066441047144622381355183730855948801218662609390740764013219619664693729012255601221779717889465463827441058783384916928134309746913652865698362513311229960256008281672846487028002534381854879631528706091301968685985875293307894225308115320127217443699372189717823648957412366611627087730269753189086306654313294630343210529967685783116763746282856828362677843933854877641521704133303010090312860988552737605951889423366039381399829748795446842153956558291524846831510875632582284246295313564765742502409149358946868270878967842001360629862682566773873251587868334643229877973658511599270116833876070987280645309751267006881678834427201056335720107711988833585430088293379982245240831778411701022777171911716213810381529187007584744745980464255414881132631187899285418201205601547341301841781741366536619587722295737871728154951098968573611115640303196965880556980699638042845966918242604111987649210921497366691235352587519660667464821917073084724483128556974306329769883114154202179746069751879192590515900233494319092726801050457708913288088067758660597834390864766165677661133277137549742403788076284685392672454090205985254534092965859842208213936031523603493054675921268856232137981261856809610722224373956811385703592057068887024768571962193461118704941176750442877875717191115874561200546463130923978693893003742929074838500130067579319494883401958487267141310804124733214088677411668448581883812588746269979975410824335542684284109816436824689016886042611467765402709238674920980140872787451462647096650227121416101305665962792086993794172645520401928267583653150994295161945400572496154500864940804804433299548077328032541442767367747111349182781070349024395728416016555756173684455728748834349312353605983641254688422287673524685771419766798850315748136488194858220221677358517187789612477965439243318895532374276704359187817999863793050159777202404784278430303498389445400034068154542757838854763781988268729632873762487255355920334955116679709258503857105281198094080606036754765409224230742941294729389107222303558752302226729171345450619142029921448120174139120843948671530466920829944701918545733437793516427158813147266725931128613241167497080728063609511076420593856188663714780824917286757490018795175928410923428751295298744214943862032000297582498354078196229743014168206244430109215798995039177034241410224173399655372768745720384275323108976834538789580796264521875483515641621254795576112821724233304589825548926972106306811001119276616493556554693033212002182925544002163297890537192964181711738086863051968876303231554837336909442231690766336862715514722233879898578302180922151114586293944572973911797727565537235799889032800086246428676691755584363945865933038223844337516490901613878769207458252790296911670401807689103501106443624024871997305403083375532878682196785661917556377535146368474350719801578609267975457691061493727250174113478249793795230336939639414022734604560623850620478913403417768659693378167709522444109995119081349866127202308987473312074573380466774844333121004686926487427198729808610547654108139857266187209536092107999242642357150419806715588748005955388345821148880369929372395363256280721132275084999836971644747598987545261041805572899137655044194081851794114391831169635870157345567788281099441903802139898047070931427715269626358433306588768534594428405553178808131616430490096211446602467446602741336141087226407028128419462889269433845504535762367754566588967435752300317357921476398070968708955783849946826721499884284428112734877994434992672467990811958192081915982626461370691864326823949509156134188154424094046054972183490782218184434316432038042502310179929747583760101887743024985000918076284385380006703929055058360885823868890689076668189005768176777405887375478608384997719626258848488288144412078320290838551382632212301134931261569934496848858913816195727977302448742812140513427438686289883275639002400977935149777737930159916620227013373012631431227000676191587043775447370813760243998983925477729703128760593159247917027016076694133037820068679743883209687168970939702698701276594865667072478181518819247518706218287260331590095445763940864630454302052611780813012514251877960018604709496320564607240400310758270978407469814207471732738152900336384242152031735772438662090664839566969954702886569432997035238078568972192156425063200685355465605246233862388310397041748290362095131910032123334813888602349816029017808374165908782005321531674774388366392257855996651579871306761844667904924438120551023563341081303036400651654528272352964031210150466353127246587046291367681513281670256720306061291453093306499347362307118225250198269211779090301585871141930664465653573282281656915484194078525395097786675042662136760047030751106260762605433145991279670778988815897279964099627564434872764581228140295094687586473767611959461258719704259715210820775272961327295012762520679839082870640491953777568286714861327605691437970751769916194510297643884407702877233145217382826602247509273345238641328513669999293687648968715650530485682477591082906008504279682854188281633210620881510181000202602558211569457380731736694648734758481628977761313423673675820712411149021955793667748023475869625795127382035319817376478159456090653989564399330128508891905388574964268444374060242563740420661299008274742769426660053832798274422544919611961812513365506188413399460301466821343349574827391720619602117209601930641278722659249932710086525317990237853936908282379133840993537728736078374685281934593255302767127944258401276307704637382277793255835064943756768107108130775213461937611842826805969149116453342003238540693934420706762202517158718286223727196940259946400654425036905953431719716604161982591585732926965237718644360744923077295790499467972701909925507172488365561422770405345516029891071060952646199804110909434500777323146697363759317225727961904227199405651717837972447203554802123666787250005963259382942501219321327253142044795440614169547729491508967906551908958965584675883752090574879510305742565250401639204153668632755320001338211177637358643259090080275847211473053947318191627838149774373744917300637480296718103561442043937046034484696748931728413852513557358204365357403153075030404144491239698030420722236994009440132580593137701550072759714583448677321288859528013957901532698136749747069710145045084725530184053273727038275709403208103052324502748106204121887073626393443465225411615718900884345924088281660688793199577270296438406383426600465917849104840380825304181554480831928812834749568490526450824848914849437456592929029335142409367201030072097639431003241625729780488557530861964300514899609004908976697961623044388483899114934072390705440748686428766409286066307466380426678997628437515196906317792179299353472547053250320370702404717283381293367094707978274829490479452601741836167603170367164838609056597320064843204152392445976020046352670304599107234084022117606400508058538527641174570291615146817399795432335514441136778697749908825700473833302841973383372664426836009448062395233059876400860993058628423960176181346050985576383974414787956752919568253834936676743921141422079792354456670431436413859786965756262136167981640069143708076403680357331895436117868636751775896089342478018769949475984414466667241582112034406265936079743376228693566943123255824011057711396136214512230647121393595700046107408205276806133660228151329401978620563612963768180711225260773408482759941218016286584395613824200753509021977823235377794241705938785355581715858718651621830667260799876124449381339848811094860447355091610760172048136660611634218128944127962824990222542326121925636026289099730611547248540052121379274517557373422059701854335512053891367378300290791300287102585190874645265972340375591399925557471827001512379664734279746611448543349057272896708777283436670273081304204647970403563939935049118109851231231537122569952029746099699518735081613992831199812101523523021555529168595136234675468542293699927886425881704006415021448670046216293278980442169873476002528278371638354837925223699987697793012909945312397530045955569588507418726010025526447726797173465508987001682143542063790055491030784487085808489040940784939909972162456812782039882193812333199312818333597758857705095429750556660936629594648974087177872011265529079120809834592567657496079885387653005021853468301516948207720601860834459766299628091838844106765489411387341804709851977198644302740181721142209917693257943364799920784603260426053665922655885450322585506483825559853855264716256791923708174349459622855651447169977789201857886089515055085424308832992373903523288005225865713079823828184975690646662478225786263306801634726666907495727144550222970858012217040049107314216312391980656052956273515820627081461964242386544856690194356256059389569736796134708239279496154094723767172367490048367404356885982102804693207499518777061193064504886316025594260507362195751999855636864320042192121524724443916188943010685362356307322423462551200640191070038207251219307748426696843956870460494235929292146449409199286403841828209288139673773457772754502243941170567022412399881684427738550098647580336572581495477059991976654598095034151681244544413918225277907002129468466306089902934756215842534886509460196907886439579390207390871114483991180058162920975295604881864336579891559718066415885899259928269949531240216397797438264933497487842521703776472849789978366383723184061402906022997453079108797782999591688853747296444004880116800874521634760875391479156136307385568953976721430317503727803529430727026014440788854891516264216617133509463933717515313590439744539655223196085221821090214061720454198315418671427312787288889507123019946012911717844600984777845917689807917653958653573484839552133419306694117218589927217961399839670082634276312916528624187925602331733635149215750578451495516737559195440486640478954592333513871168773864148587535575301066545474814311390771271637532853551746028113580658011411215794697646894544749064611454530261515563321230403823086764601174989595887010709266543569694384925584466790475467053089380643739763363137571165986391793568934931547034583664599735710661436948531495804265847598598864971397664779515004814840169796458930907258234473958336591396701911921410897264875732922159443737268082275920808360916268271752375975195607750657265425424760316339776704186064379028779358878788059811953103909283687323435159355333086058784591338499060829029731161157992301999429834580608758787164433909067799349976648177223958055172087010282777050308383482166310419563378576173136539863812423400939146657397214821375629445551668828411562683846563620375755374443736383725494424392368554616930110004808154148714339009483959852091654837936841729398568252071897264223143013554578769318712192484848763972047773326589604444076652179070368437936074337070452294267229662590906681137468996905468295594769302688647405376365169250797518071035354471117701027403313917351560788135583987358684785427362967900932484859370271492108394516580853040745159399645147932602184464288674050264501596702458537994659623739019983806092870125555424364764679869985271666893350319064733890390256221319739450585989561062052910539552690862672943159915836384346636167007178653522036107261178490308517723950128288627703560820190536807648985088546818622284764167469319564558552800502066455538287367093194227456015575586963631960012245968505316309405771197136472650345182021068272446563052352134716980183508618841181566579610242203408181521633195995633845358452705212635708443241863835300732872978879839607104507297075556999704941015854409415210845340694644755513405249971606807320105020111325796070001508532667029913303679040976389982945562935731168793158673716540702084552195506511755961982751601337512135541627779543722966841996392808670895147245503330268915281483911174977676660242191740663355091300679421088581391431193230787481509079586585007024275248076460326178964068002631414655764468538818967634598221798923889503253424911789626091067428817022742052147667807378652958036115683410791664335456481081638078285381859680524677440639491746614835923443121674012740137874175624818332115425256325030977402726804007912618460225245673979804683390478011571003344690192511325108917626265977172165100847178755184521548398284089935044857767954925865184171442606523514634439306394934428362185695400806263355938547419690259547780316289646695784822047957554596814903720282468646041066985079804483315218390399385945728382625723847506719444439941017345758617050583348149174333277813518189356535103798511218020462790228928267782851649790274065060274737633236897122242530145553264367320824273904741497254009002417290201263658136573041229322457963029749379315249823692727382440071412175268104008611856455292077220716733646472174554456379855353335959827588682058539311818608384496173014432006549364845296606594448247365293141169325772046247897742002320555872792184635135450241373533632231755060514502622486595996504565603852608961273861493381046189201820699742478348769164692612208199739213660728100135657131785910644228478520047861353815494004431198940757901310700851449055974926744481479929880348063825355196392359650063365279646790747167909428041492047306555928747939474897813447000523475834770178616752840623211405647412369441354538921158483867586206576381740447344985672319959633408622630825761518790158646048193685765890100162102335994782749434081925476943057822256852410246043387463231827322148002548640382288723833447743707737690706822875313048601276625781486053898867034888393049862911586548358284638716547763978909256654672711164141300647083573920828108594508916986253159295461248055379968914818898610517832539952706824985181195632412971194665367389659813024892034306743381656685953811066439789139223584208112143462088689018328861631155454590800286100610611693991237291222628836685227911183138273121526398972354648589872969095797016049197984514031471633829718461187546441154931807084462886374989730723264077182422363936138674132580316657848842193288926547132859630785729356448797746265358214495992352008093481427559044230808388783261516190531720227722872488875106245861291147358473187852858457511869526069644018689335402859442563308576924053151354758780298252231840237288962385465440558045274407407278793605969418568528428607858367331848983653180832796477812081301226433472377301262678114944282149654435184517992813740156532738089217007923367271432608965629459333588026503304233197073413315059096589644801484678957416125371253455952264687024914066591248631644393284726243710581716893593291820147557642107673359294226832681764814690835658481435810608443381292882077621777375740232979285447114527332128270469973055441140015492218285805670197850655396260026687104351353325907877395738621766311879933954653023253197975187375026321268205947061799059550871165258982069550098275216824670449627843129246661432527504375365387968059469331614458776781256493767090828989754379097757219085264363779053032542757687375984278398358421206824849689550174794659629207572019764269900926798966801555223085619742165916168098266097189012233403714681897050743731715232641462508892078694468970403209730435728873123043103490348341143523354819330646327497807111068704870002026183253619481381460290249714797221392744854375734937227846956555016873367326759744379833006239874116348873605278315592207811020124349334705988131880299685780547027259519571697344793949953522325156690400182907984187945108085720832790044238674632003737856560278412446686937887466529620305307392145421042948689853928625736114094575129308759966966277418393396030839951107732458416754106790011353649922781215222624731635922581200720486540705041181967191520287114993656619805224707675895106780815000934516218439279550537388271296632414483511806749567741683087955869861113330029916722423982754430881565804473036656280514664252190156745933069456596691936749996153276376980834938272210857086078236541388660087617436440644567129095510011494924408632112469387941568611101815574084794986463608520437297022566140996516131164037532192669950311009121907724518495280733423754441680354668712104889914088236866136819725915866270147933250081454614161397609440655819451461641247452162120537276363594968770095782529900680414321433294768123203064946537023968332027496614813185556560173503351262708522050644152030812262846655143353178887658724112598099146707211581089203769561064136643684250948698676933893809662901982592276850650061942276080047622649593911741778894728586767503877133270431130923148918495637703475577592180787068488718498383080420650600428255800080010739017077594581809025172094470336754721754269645941481737050736932423860266302807570467537558683536756563949894182936466867128327746234147515956112892419550007987930339156860251640759706411410785067093389118516109934609021397930768228373204475437283045851734900252878632855770618504889174983235201778760498379850622454110692357015155848704063770047703856185376741730763063202353847895854111171137465906684375678351978802444566626529756574023048580910216302630167645157217957970294050183915680708987975744472758993904035411127708112614295935792647029748966073738588175709317340999614890237043269331908904559981895472650624575941327493034787872464642495007144849031994710546577793697548300068992012767931542883090040508716928622214099959259027645113041053526815692896771756471560833752144745580291715289269610604022254339593793004119921819034316253082497270214068546658525488220693640108570777567437757011420738703055555681357528098501928526948104437558633311631077917915960710330535915334687388509924503476854778550214509146189373155228532055962265222447124389066289816065297945295884548389440868176133465589247625180758578251561849841375747499935031986406875260518350207403417945244811559036980326757189372566503916810260289553730279484699864475061415026814390091793202207010869353461465838286749598270078799940320508180544225387912968794423496279331902022826703241500482665685689094950657165569036797028910984679089322201695887701423063175084688869861462381467803126952702444793923649276053648106444851845743094503158850091867519790971429411476127530052186941327812421944878408536140326352227656270063612158176318308590080595170512008195452602168993955482444439269776821708342769694654862240863539850543579205637752333268501516990918802007720044551784014117402110005118882177489537128024377751489621282542507617759886775590567911096309474484132719595211321976524298219015973118263941503567465381028581050802526709038847315306671418238248114180789648195581575816016635732723269845288788261586185657809785762041998136522931362172936514853867172952306770701950084501635861356897375567579599278124471421186134253520636059202465737203336939395544152208278384072768132499725041822262493234137633059134504071400589611803207483159620157981665391135295049213601583714918141315751119857486802783697337913524970505877577713950962013124610009902279577209568166364742499640944189580428161796737397092917987837755632277622888518918575363954685830680285923512405704736745258226027863493904077834137960245827213732996470226361040069872577323518644921561739271642813585324398908053229904761532291815721573147914322094434746822316355794567925185653215780374688818644373588713766768260041445973537754741752422188705749957281043482500713048630891395815909009828301857220645768375227178336590454119831257514626048727284041447724210906266438932474508728113333010655472629151680027177226643192293880478886427666538603530487650681791078852852419301096461124237644122886786756898299882936146268601600344637354807380422964614683649198441177906623188103440195589949431266417419620733567315861431010013382545319239963238558573510373325042657783470200952504608852875164750710863618573771297640350261706664294600779473008773914098029851837542669035386740161941725911226962602340650528306089387999462253200157291596114260807744815310843467754990392933871350589824520287660647783614271201293686338084941285999554943515087484962576126122219239774656335999552130521306020478444912980537851062971312422192826949696907069308158763339010797443907781213031067250210384152383563094242228908824203005266740662021978249760881680335668274803253808850455153413497456509069928921578883920703605539901319609505688683427266245083602895936572901606632852957360165552597415410654031128553453369968000539781225222165342585586282194452809807164475827457120215771973241017900883033473393791245849279080525527515508618316473211898935761193554371191235905148211874189583702833419941702900683295686066833204938383794853191936555798106128013747442083665827843716866375605169737997658846920195017978004610722116711110980539806969761641788613019982107166546348353737186923594702117006498279108617679376785722004273311284553602261667807609347951507848490934519912156055426998469150846574371706509907274455936207966560883598971452342078720297191353130289938061017009070250869647191864132151108672855256268458632007655354024540946875186630371307928913335915252284237689141126260787194215466029541733662349914201858832611638537937661179305697504574631465827612948592539050215780643256788258977672286320581944658089213619098290359048176700630316326291141692017764109160871287347676924580592086105217332698787122172496406485167388783578823217906469215079483717563636760281385182540541809767149750774783967716347441586274512562748408927591222464340031462582525427205567356804935555019690990123326038863829954459113544042613556201797624563302165083072352209303345305222860747701635488435316676011340742858801466172891377964060726584834720349749704626704498793560012903671567615333372482826663165329956101430564333569852044299743685774589811698915181691658011964690689172124474766685622801726700524696481413044833896019140206036943627515514068859151637349582994994167423252836731106048189367947602847784760811202194858101979168622478970457899795885210925406626981364564546897879438094152900146520943828541718461342235661561098810158252432070593061381447186551654887797891067532803330786933975709868898396358400519733830146977232246363689777643746562769858849805232441424140604919227928146953893815116371567256449306979364901536168364077558891813321021158386991913138201175547692520724205409753968446617746027546687272700721968480950547961083515033643480465180030864032962962638064017146522107360246639729265494442229967590128514304537177438411145523270846859612129724969038559782967999940904977799102254226198649237544338383745374732138606073893292776054061698875061407204514570444864762004918663186007039253301134989650155118126190506316435454610484208407901377572514521716251113151859385451558434285108062308415811474446306810702532910228052676264171446331664113207178108367408480458809800843592569109639010533454579502763034541281580272190398457909667513005879657537450116315232212180077870063019982146129297423440655547281182662507969686890217781215865983358706974164720556360011571997851735064141563052408786530049617540743459775825680671724772502715724104966184117845539937269984485496964516807216908770476499525811001021711120004920929048623225836701883343238556640804697097765591372008121742602983799586358490720899693288897467671022562987980063180492112433522030535737009383716956385841965030372446171551698736580362344425174815487627357201716060371848558351046098500582717975127333259993413800416740588378476117015055780418319806423455092254275599239338393760755800076443360475086113260746162540850802010151072904230714080939561552367006440669793014715177424416049478473712210614294241602917447511318984085709161958345445488032474176007694518449240262264301925242030093452565342588344906791862702192697763574896235314256610981832455772327509437360885416502810777420304533393701586008004429152951365662183922589668163154564662497683149839033339253690028275716125975811907998797154289310182676270606655084046907874651392030916355715082920665313139078596627232405505515339174868924385119025200040591650176072135178458784517782418575004469307013666356103320999253756731332639112551095710717231124373437479587541008783553602638874874109895941067733044119364046789000105326572772859928813887653924288580755262986698066181672233924746894431203769559862149214419804274517152435969309664796628836582384855525742085852791198078666634147058913829752464454943771120827056914560126416157301826492391425301770286642359225895620304402633649201052449828570427063615869159288242166351440660094024415208746381391028830833687093687893787019098033480421248103032386885695760789326085190728583496039795438270119246566937845161942562157716984118052520374782737832921591489779364355212820605666888981015493661574323446791270144797872917092835013392907026761822432707758388377915886867104873797430348797555137567588437156262676936458639581119005669527621659425497313921689136884205096172658508839207813058498818227916091073151572718759871981992317104170701616439311258735473017747703946105017062691888388134084714165333098856835180776170599593822176020565031951134534940050964494307372027920409964523349456367699684911827344611276484975800316581913303793836551221305590630192886940074901972831503708677675950870001822044397533402033146025115893170092987079404625648304555411819131005657588321978241315751201020098192258378028160001492642572387646033331794824001424059904817024293430813613964134487549233242304087788695354614932699529508261236642746627111151421406045485064159686051429800083504397939362986827493768722862878466396144571581076544649616818938656213842435867078962353610442415567825987817608375479876223454132319052908657133777519504340009571569517607852954964831865496762587508975678324060828658880806790845069959531646585395115399058863696810158789777081564358691558386164885602670702529196873625181694949958913334539091427894043439993105906795011941290666582386855987145485837519047519722570881792412422982852868945296616270110685567662565938361211185332383618428342650939440331663968076329147455416387972296226977186768135143696561117922251988379751588346360532025283227210098053309755946984463079915799730909054967814238360206831402715623908660042938231932851898859436525493663773439229728911244829402172315046300510416753633841825288807020030890250599605061214310247916914745880914845875290503829482766625908804632108580599053194248153389837679058518073651184691196634668177700097170322094956916173056202546472446411733555574671314349443158200345145233765422988491874705594435090403701746093635145883923901593456615443368891448848953613223481500962015252526132853833047202480846576366096217596498743775029251729648035252108312749620058057872914636143826075118384383287065782933215774799459860383606879829377795503481562990531443059887136591414508326005241764184271342205398562236314131858091509529251868036789249857149867195186773018022381763615691695799833784011817384996323995091240626030541235961576560446400621705689514240472584508534329423160320715427578581296101470022675293149152459951961008606665351712879140334157787703949743102442113299642123913401277316715034277566723751293767499730458624011273533843707983185900862323187895130425793408808851736431202020628570107015160937822599231805993813045836222892164151801626979933057111625220433852806470034475529689948806762632409433964522570069773307923388403629757735414281821723798061185418846362725825058143407760877810612350514825833861594348009136640886421641948895837936270877777792884808609529661119384055711678345245617908979491382092601985235330879928800236384926315409200266558715661926790501382962581988661014839204104253206650505000385268975308923024871071285873512665539772545777772290645422028126356024917540514131983344353974884682989058478283654016647041024723778462646888574780842271597259658757081583638355946128018274264617247332050966996051515438660175580293244850265265101311242480122437734603344648770044587636903721638900748978979411224952437822559862681633858526174807822874704229419768000464658769709381379452032219778870092619036398297333393739944367502023164023446923751171611482165094102065663210512214416320500678104897137876285184339639442149701976067940612488574716447508351525404768255003474357020617682102194258685074255000577325895766886891184089702851332183181440291878626263538196830677360135346607138198384060699507511000665141907956368615738759356853948790207502340179505150426462218494646642269967321896862319396664439735603983294387105130649829769166922246577741947701914977354460992795462059815597361009057197964881025779909819253656661165720690807185183688795474877882963038084943850119099722376545450439226435831075917218311224557549115665010824965192976069024418857149138732677883520546947445653430506216562346495036259087335799549737631578676184811283034872317631156286320601960603607023321289648632550716321952155650185932476664211838052338141869683286497811008579932866748533433616248384369947220613271630666684954998103041999172658131310729261352834015967562354557352664555311535063397284342113020343563200265609921505776099106447251201530066728308234284384158891344183548047442689986704153076683605418938029299162908621570438032955402743948253486315694927919709720611471749200241967470693603618878709853306038796197318078418393071654092258923512650798428964049730143351335905090151136069344767494810111983914859472493787705473997513204856436521898114629692422900776291195888335582169030725494018642765689081988111805266657702674248554182313148429006353858169712539947648099327633543060130975316107560463004100913458028369299106248896832602567195421884511795404954025631897871376969066736512434720800347413287616753301633220643933429728209147576379344963827356266173458482039147954080444434185606022678125332419400161356134742998257559503867687159727935677278179151445683055041755580055136886917051334780421182692312784679075926825219613740075323611382308773754071875539479830857737761038900303491439992896221551832884702151371292427113180613324524200947440836578761332991814656110944853626966701212650653311791790066898551903921924933427202509768279167572735534262970150717212645638477988969792388889623733022745072247379591075753163806871412499580586960152568692651618478281987770983801027467456185429623752694447544801229790528251267964406785347472297498913630486401161958329545397869199421456093390232440160011816177048187820400224893830596407204095191724667454520102235735344985067260156223288291676122819432400329232504102258622223023033581231649097708706004932068233367310476914972773086650823908492927033043656739864524332685796305165314680053500238686411079965783089586234534288311300157458874050234095031067676622269900066184318017201149528319093312285091782865243278266649179452800198620758524555440784178671231083748164418326188573092811504403477422787956709276384885501390749219190958953426338171627822999754088804636262333814494563020073186750727979754532037306204117736135510216879898995150440606254208990974329853522816124175884608570238996652895021882770308733276418322361178203128022457948603193942881257155197244304497785119153572650837833307815355186735220614841854036374688236782723617440762094895604534173147860646846757267144533241545010613487055930049841115840664714476705686060361631290858559178158513024158955253928388784554027490259179353624926841959991865090197889141978555360178494580311524209594898112821290675092543768600792668803545339116612979211901296699036525478622236466724690923115284492568678848983038838636097298144695754055747337701935511102457855331609105324613521777327466395480417104134807010684415349506235559126035598671369202219187189592043120419840389861382485752313108804092615829338936340556379112642819441774777353813887450278271698228664683315544270488077612355504195579209728795675479546252798351752557872755670172342764141218902992703831232430155724656918900106794116983482638358785460512042120484848340121006524494983006940409050176731301615797712786534610035693214811064921661710978887433705711155174127979417446892437077609009784819335273315275563379542106236845094040526641046045230510486535867593608884068451048466275099878443180380729216814964610888692102833091079448432285511030615274658884780893076564390399008178241396098887751218942836166415424026523775051807038772350901144619871568533587056708089534213439238868854924046514559242335040822798854998004616635039616064628662508825211979530687918236250905538883068684610039888897225294823460586981646149592017778446119766706611236871947767674566207389009470387994547521125800348916993452936018562120393795506431070676531157675214448439353306786680230323696205860309315269359684484819901538924935935043654834136927176306992882957116951180340612142229187417031514819259351952148907900189279541796809432298880639950030049383368034240447334012959834877546815768472262924172480599491454295115124703537136358558714726404475861517631409315977888650987350018631630938470468232406849576843236419593548529900833128656213247205661378707897694246950997963284697206908502813043010676549876914247464315822305272755533651050853526430458549776876887692670988376842934206651384522611772886011642644662985928846757111761183566886530787766778860866733964228845490522506464400252733306319278229235922891881864127423005240273761197388501224746906482967139103845486686014542342471993071723455576665142406812541928672936039124721233219148543025597182057284606212727072592409210100087505268964451901938471209259935280152707539524653240718954857800866184384573223080632506378735731898716752095205389601170606024844768911226306243385675773789850643853186044107163498451238583964857496803368678243627284182678022999750918822478205223990011479432679085674844139719836142122430086342683322842774420569025522023039233684146456178994789585617000128624311999591830161581507256345575533702907287069024921674459449350535317052438745367880580597082257242961621774786775526759041814734588418254112584382119708141744462402114692148243820118263385332810280696173823823363973426434254606919120339300456441773580910887880491646766620471727414293955130383755985864316221619719102404411219200687054658000651001750668164148891083606424257617691629546928102073787965095905905132086690657158400571663606542814844917342224831300880083496220936530035622823471282701836746148469095371845958064092470517487724959200243863981579155780510427531097668302390338096766699131174267175709903324970679160369075148535264345970647592375519666364438395986558433874366746788454791925546439840835629559021959196150442646777739085811752188705968421130012911641911980990775081350319421991362723991454481218611353117076742398733409895887843565283964131828696806242299994383806629830028710730404901398851987616648549896884954881359792550865565816160273852813731709027653380413983630621209025771732795656183691977244189699405873065065672774490597903828270258898570558577957918663324899743988528412909283940239361958393896632650379392022784481189448708951354631603669814648309584224962664091516833009575376621343911999700593784320039057689460169597035242964047677213258442419659153048153695785945297792619890488905652992021424113070604799673157318527070413159742794545588221713692447617631951709214595809025078340107373922773571929249206483642314771116519783994206615375454776084264726527589865280079262636846887689417898191007112930615212413367097020029949827730884411841862413069357484515001998951261315646520980421022539267378303613098805919069569960794467528817704766010315172551146408873982285677160383601816905336526504993042604849307895751966677844904781185511503009321512211039260476049440462133335897106632250628763479747721522313361240064247723313528642983610490242951034869160378627086477454717846876270501180730960464179387392567276747828784649669937813373903487716901156736323998141581472832474189406118932853670764218075211508615202116312043202675263197185277356056364321773333947212998640467882970220008356861268548815562823558765702240112494274138034712836946718813718935585187774239145235003583878156799694410557961217066709654735011944033600515051339279954651600840041171971357191835481534433550165865152041104118932380789002303581000491762928469707236158768965562178952934270612557611389157719474878738252839627708039824113509193431437961915280934389973728440970308560635731975865881281296592929885463780015568186462993421197857638149945617249092901713745829439783648905032505054334125658155052359513133438634305991172492397891663088682067581751923723346147733070030060435027411096133293231892332852697675677264149996578558651668730264223607308056545604309122227596183882754729325164236179482239936996450251445071045167066350496796983315692778911055518255992059930158673610987065832145389664828713441241472641150623373064332555563227020544392775109976783858585290345543964167396121937889122846530130520986432421084384295453188670841810254665286085522399619734416668832656646715096508057789393765186155068403124022121459598403025030637757362102947836201209460082474524757737261634182439687460039934488748870131778145070134408074956420554577715603895344352017264419586794668018840800407900405808831667410712068510105691705282373203795239188267709944786171753321050119479881806506948717615303199769734494917658600750315635812731935075802819682610856478689297162893208131944374493693505866170208701449414057766118109685621061600791549920959449741200125252094131112956510512801514122196399219528811818136846347522883052070215503305945021602899235193643294423126317951405317626931717596247764970350332191114827524664425100503201591335533935322695550928726588320588403196787753465346823884565682522273916701507861173797327745107652386745785967698649654408361399165111390221749928437919256931183962754296312166916305340549302440071429257555318978060983303775403920236115978603666133844603753359807973092438228664321578988853721245926579868737913197977967023001351636253595544637046920073960496254795634980096177833945089975321467677866681788298995665024074827310883856264398240489893096841610605631956764157902281595681116712328904243171218164432623779025594131511485913918177104692262282642995729074897471735209562776578217552463104413507003807728163818747713121776607271807896396492316896302462076514376043127112068619941083317225896546046376020289578069005669585101493021109183002038071364605882415969916402210449410700877275274462154799129092243203604476707942462970242432454180579322679485973695858000776519944313113327994677945679351489247732804509197769657534120427214469218645716319771758768827893859104613299389851966980157486111102698179970940787355435552813234400431807091405819855758253275330325630307681009676111520391628017189392515846123740624204555628285580538480698283162486665031172185581231092803518351281409483315233433216905822533351592351268333697123108835699248467941603225542436746958338596413207301229531172024239873125722104130951412723717805230049671660146200303510112792999874322362824735477576791197599958037727600518694061535218780212643715947062748408341103750247878041052364644058160853555855265475802574275599498532233680818843690440204263332233963217576226398489486331359662122723924406260210894331143930942104067599277619044820090276268940432251705611741415770035732727758770745943419121863801598214323938475449768198869639880629929975680844491779985417127608932980228709894599395136422646683926203159530915096462862793572536153266692231614976583075687809125673033238779040843826116336446434117556041280937293356536388823375844250673466171564831587762474201475566621117409009328213743325591292006037232775458103859881159745149237843070929944618549717943972246013340248579377565095010679698059570672165943220397187990923550635284086588824988501281524388663200852870718289506927635881722250608003117240474089770261702464463329357619005273249459967916408627996781846553470794290148916775715598071098451107702214975450426717341326654503167884872580874769089333724235506342677744269611514378184039865399807153246479773144855589522130845987341149228001513651541134601754387023117794924136010495369809572144542312259515891328108450543362597677042539131785834447442558772905854198445902704571675903044456239330021199170668312062754829203038932883061339137837584470689223779964816089641992588282726313566672079718944834862598773234582817120019352886472580230577311029845727517016557893339627058139466489777563914258817976859514561772330258715054438612747509138866904113504546596158640296555631134116681303752968822189964283359896183330870688494834321169381381457777747030644791668955783744311031537606148931691153805613614149841237091910930407579136072517757637326536551244998654582822122650983175339056084430620901949835503230917523700449277306624362863496118947022011428457874162746064119409927679271259245702701498631113632278556946043162641437822846577692032215762797462022214972737372864965992874545744100201590469979397666696678124258027462439058557835141338752034901160286269155765644680514747750412253657931448164527381846023977545785942294132659569858502875606769334734185401757644123599005735473644972601258355727331392355809931303714141903320366914356969094299980897131652728260226332839667026944411417898328233760469209337434186605408652622652849622678579354583696576480829322438803243332043863018051347320319611428442665343736662522370332696310128533888144228319810865503721895963820169685826256672541755894347906678991488199688575585011623361126722088183042182316841252639011727556599886327096946654601138901917486812347518451311127305490566212062236620197405906290804492644330610750324853777725337424119851483665245406202436059287426816469882104003533183743427561806950599290601895569424375366932860066848651874555351159314451684858949520376805899411487139473309163438395215947542599486500942539504865425708665710359274018490553131776435795678396972807930224984769757158279786232593503193243717517195249575531064028350973271147742163539126131986623176688411309840372612574817915003687954760108324113176284932431356155943585509867761463527081079266093663302104755859421294796660268550173500176749984715448963084766115139426502798374456170695606582846641643005529875892581146984724397434207188717676485907421575638563697644062874399502680806884931381979150364344271838317167425478680074040652972999462648244078835560491798632321250943255655633142493103168855919216998330384444365363711371018907272363483814122298230389370950087539347384827561019858517498267123542953711838671694226825318971101408492190102000738272745238474039834961300116713022350252521457448871289392329902750965526667158280982577615396624111328082298107979421768390645201874861464037522247364561966712382756983246891294085564376206303733903747911947246322181970846685534750325880642064263120549046629189147128567933918052740424453167640482892963894979384911680262572111531359732249480378912020031318205751496785937910407914837151563155171268701785278928481590134716303646380094082160435328441706551262912699285090437808922843157040747613792315742569657642351985763730667691016303196080100808556761893387915102994345441876705026602119485554333404742764614084290675723779398702436925981117510650572054237849986266050430032898017651516059663644310166569518284104676941464869467617110731567611424065946480333076741933781592990094916399028492107452036012966632568707857330754263645217504657453859665415184059880023823901973984622590996977425108101177095263207742224238934292906243479610220944313840263009982746950069552829398234744322806922515587396839607975577749234970040847828977875471129061093768404588963787495678934753463350103762361170371468157819014152279302133344457133760639125507793919951947177867502749468705021226726854110831956043098174991537803380788979361791524522251894194650029799904249419892025696188782199043094923813894415371551222614515038495386066417668147672453410954838310191593392193789570136391882729094935088579814706163993897410753782414656470502245117261458382017953042921994161266132821628899607797936700405786922611565588647658909193389508247920813691804856061683883036178017012097043446256785869536376578959077279692568341735949989539000434409821611306537260596885897419233086050742382859889056095791811401703313375837990939461066185196063726538151808080268564573982263598294987024501408115509736122070704831809127805493682166588577618622939873327324829110225072391442765826226106583264188677814180848841500420964379755174800524925235436827080535367632372476718805059158724310703856765510106737179815323845940891786892761449517565945005634147813962912662578732217916859619044212749368556527605594376178227598835251222838858310719136151472091555803149746988550316205726741966387613348652280422774337848283166121200428716894125808012366310893184825111259523970087474515555194221189313985991143925732683505741467309392089029261250476205535431141121531446474330209124139805047545893674756912946048265502857993325648527056933470432084083285829730836341759431801939791202666706862427328030592112220535724752494065683154252630785202212597819827258533625248170931500331461296001906121744544610253709351455873411942252086792690496658367800559940014135386345047995531548048359647504291721375488720219123711092191574663116101214188564963757109575835289981036461176804104950864970489267355746537904314282347376814300922878952200407789005967527386091190710239085652523308304777555970999389300853217821290022195531704982497551283435941095232932582495131298759433821542911453964508898259695071548322062767262647095478301072277702181687252173433803366659219228079808966639699021304882225846370505374176282488542425140475629400187803067945963493265173473435622003571845185280419353688042041561783858304328847042136720720198038542170296086644702673162753236552704411480321457704528347817598798948906604430654230886769515826894629001640589049417756782842854261163164544183171327670711419550040495433229926564987269698466884530414332017757229259537920316787319384123270606233538247329944615178637275626369134728411864416590604576088263708868622707456302914979099358663664207990460855700032115592798263623521617582595492297797095317414351867705445022914245584684362729779969769893722448213260659409649055883561953574416228359539298269132935659373205962193213393816615390041879550620203467840074923975948078684354267998367738162560483278070895762701342631724775692687350682814034967346026823365212519428774541346205440918378904283642844975352197169169172786984578073878060298302083815769522945626205717934702286146450479459786335952866084459549121540525065721827859574603722920296117194590561407433459889102254038271358217807832829296417281294532801269622058091909028811333729166785556856881700717437825677139591595915833447944252294487138143317832711246575099515111384712388910930988311252702603018968437794364546218384418214619944662286817559031808171907086744114280845532351641754906937522724824876930151650587329779171423035680484039057436596872999804470076276002321645895200976431157539516795005908710722341432315578067055712167315535746461410779545401271785639473792754495704706922184505839771161279967273276735117779545458542241939074372710528607714133914864740393553815527384738928689122260571263697408749945514994707544659568006783729982524833550270940321523348575451138455072198377735295995180688803343731444298004757044693820071016577824740280913459967294838494580613751033062229025982113741444416256263808094508256464046219946426278139613776697181492524483954500211898339295232256333965667833900417328977307859635490514204915988458795015787069822318987762968777522496710343696557407159286442730280214192944147243068623565883641084181056166189808037083030887529323134079663245331597060740062052913721016828184069990622262429039653009692260312141647499924276539252549344498320184798550942879332893310066171015580074656755453694140613563748524679859173408376178903863068224828123454996051695140777215302079066302112435280759610963715809990124610823187315355789428427737914867823882688891013761152665668693244714055001127077140548780150629733706763404923412609917930218339367774897173738224269664228377381672449858868673845412774708890123006617864518859938754458785303649081546101795394608803713965250323668072602716672080736134776304855744004262819383544506697174607599291054673897795036554154212452872738760532754184760564738999439291653050883676805373516792873219500347800819833355403294009570384383062838993536579498937262759926856848976483880068802517615873406097739308521000647995938305592859432625065009151844656818432573987528309458781252096968201256076314392078443727926986212982589631312697367974561986787817385243463837043479581864975663770249116330435285370096845432487252338021087831286240584962233732715630206550961696205730215425994318026847316533363307865134732185942433857923253684003057376062105454731595735131677285563917413492082127175542179968585280712315619282777423510504239823325359741915664334644460248625278471717172481631653479441504120789043443290113681754794124738261282233703675933883389207156343309235539848954657754471479537353672153483005098374865154786471165961901470495066485668571583482400179360786461478534936996965622323454074088880525785392271745492027666722882932724843811896297645420766290768525633164970751505172474194185898192947852513599912092493256260530373681480120357326425238767366860515062398825353117355774472514932128351711220340340905814805604515294911635045805185723912295230972829596566155516873529343473460736573724231968015011257835259448888669942130938301487584301960389421151364171956124911807793877678327037295728856185617169337784070425005714311448083922865461016896273817307965587949602171792495923337679357652017035479715387443655482836203253231768022804566012954353294756343949733226777499188753106745409810304773979677194784520407884587156943944872684136597812389889870860786006167454019975618568423078859497841517666080292403490901334632200956585607581219818549743203699026566152701662058311151055446169281190930827603434382665212855613117499284145392220005298560122430761870563100332195868063401089306495832382857496727672920179601550212537400033030239067649437724955113700275212457517537915301077573361971536827167628484647281650391392392265361114892643395081859744904469384037324565965851433713201658000074924055164607516461510772523611832763233180373137795752610787063602675618523727141238166739563303086659345797847994257326419288537360453803196610985815462962559212480574931215607853852362071729602033181500759898342009829108718292786258682687319331165368561422588393079568120832129238057324574236314917663362765716404838581430365991404318353867338831482203713116987046388016263832280898896313900475403869889685334294296988851515213071114640816029367540185026938952955338730857318909021438406368707260318364432992335036512084123503208720760369891404221455380086262204394686659343338596842767134566026551722433507129515011749681469418644984193208807182611557997310031589497901055528445877038141766797690920129414259502154566358146016673771970157977441619643774640222045543959183037033515809557349024393110920872658046857701676153394400768649047555452232345139187740085099532738001577212106812219511764692151048009643049609045041943462730554269871780488556892170923371966399749143464937319966377080031247900635631992462546463598340498235513118516204283227832583916233989818600966409893187215489480253223534610618058480647635621368035379218288548300640843865551762821029505491624409928743058145646659226693264502570466621195707404158075939958609040932459677464788005749990805835119981642411642806109365363354377595542025860710922083099459635614362069084305108065459830795146937308640028290553699216196868566197492735214484889568604225873320825687186264512650299634598511863656792741591338024199924067668349011078643574877176606284910084542137077600185427750298101830941954937852774540680328993536928963450702302132857901521004608319887317566415717798355731414970417871458044098735861985885257444309478558280395288695078100112837231959736522278731912805287870002182010185968713776018667637489109562724364984561565790103791151027077838156382987852892079529273449104116372719263693330308357940418034424880331322154644077108775374486067524888534374441381292856460479719453789537275850554940850848843565643511772188482019440581343932245835847337795348272942932084335546881960159179790915185324370551849219287433817604185110455826548240180583695332220627103892461234855464872147141430614291928112099655765566848012215827911797164634745673426677467824951193621990263877893676046054558650655090611444223789492763947245761751960355519695017844156167648447762147939492917121620838729205250633700472909571203474676477984013494326480735165316928080250743734108591757770142952433146351732199469401182259144695707126851825632485409198931110002755890707877862264172066262219666437991291998145029081398799352543440379749503069595115092435376228277797039074160746753467430050751498518659023090748745895612885086067771438865081190270421121718082694057445752810713396021513474079309714602119525124064905027960745892639810546317972424101785135568211116709513469685663233454970502639994591443100624676136881584180191487034662293895740556363600833297126692162087530469408410404613359768858261467688673807874132420607928080395383830769175893376586182758300695238431695574408831076096732942391540544950211469179635091011958379054132577469070656224605673038007657024494409587082993976672990818151502762377631599356078603802820751381635125521556120781747342329339267280527909943516146360276014220478329136809254083507189037446091369141273580478542368173483070522121811056821408741788843491223518208509276801358929714451278570595453299734254829400526545560299720221246809369517456580931011122230181690051381583345451790314885345080768638429418834257968588090651486116153133605700997463573502907062196026287832427605611273118226053630387518642089428295149229892989568083231642317501177882249111692181631096064088504040421375789478732529616875549322003810008210403919219478367146965974835582099753867525525929016870178897629049538021127400716224232585180153066371990093564352180699870330628570540953893329906712873492307238954259589291730163460744869059658963848226432889097826378540154314893594888099707012986435070831604601419748954583051003574372203962128809933101473320781994597741669357998095195129408511525913629712784773974292775710894820274195551658937077075884755504970246621071351447020289377576650989120719323976351226647028145657458363986876222605065549773636637966233766665395924081819901085492911191970233734890742933523903776481732069843350446643904744105344565994376074394568727904920121850488451405204151036255028101539703489727548852023901906574952858972526460820890819795382820709037635230447554563697743787339914666089098472795491528800040709443185759457178743460341557575886608730046835476705575410916413565671751281200045565594992346889370303141681874678214798141596199506760344889964167234283824962851201817939889271333270708800133681323588706812456159421791818567433239282618648917857058354874971503706736483830614406865250500095625380064999975547556028174198253051722958412595449089950730013119754728887051315486644270049179169241708516310400641972129836730077539809902140775929496757460813349854181067027436548572757791029295231341288537944748153771983512627779536026822265026383576492469632075679895504252542373977782734043113352647638693576677806924444091636240797028656381242173465648818902271637230172628923464280825920869098372488969258449126557494249806698198085449788400701109619935670108784441886594044023689217132954289901461527560637734575791313890673666515897239890085241097890094595948108221184515675567255389145538286429736518664118835427336925473657009131382850483778013138609273115058096763082805560604790760289835015836979596757780045285590782270459425759250356658901935555163111419113616084010755559296347221697478581185671245182017066158808088747369642027599134849047529993099394087265306686379433385714059473152921870596206033566299107794438336341567417030639834294627605392571617278065353227976292931346748844772985222660436140929278539279662275327701291862655237582873612805093157198164616963074830531473645316213634377698166005002524734806866203020961254379310709281666746316670528395467300787465886672379263396363608556912789760860509922805593267724962562793810926872390768144395573768874415978332278837588425242030474943588343707470902984661968179516159675370945952181106781751723509330259962531372076068735085419074774718309324561927296047204818748724147263258575238705001854875855696263771025434435210196167291876893586357773314959559081752671407212925912837196081644622906218887307391185244423268672752598267277904165075827643633700863855405673801547559757860477732466963089093625290771784623969584953944603736506685633113432462952796543090262856132494542207318804247379200206749810020840211861327422168032311785270855354253051361203897959017924820265003414831772788686724233640166235306626905968166901654574894750622730973782074933995744765088316359506439985615617749714093020323389733409811254842554015241316112282335696173093830237478761866312072922074235488824251060610064426738509661222926206586502055738110195297503082030448590905832659304615068120100190711710975897805745313512859145493260162783488356706345694659788001834488620437355863695276823500772011229342002619854770682160386871788506000853857620282570594398152444863863744668736437553412536532737054740518152774856518855262080599426313832011665725459019960037374356040183690171752923013886585816948977637790685993174375251798158287066556589468611370254415065475482575874431020574111833032557975107443424609656850256504840971787635486654045004897767672160655244772434149432677227532116505712787443373696272038168699462239634423395394513967073626861165052767126762211810109738009100528536618646860150775267893071468029869955639772554424231863078764744761313145571443427734509466507712465379990713910482598177532661023662210263248374096539162468577024641296322356985572601191918236253049684845351665474005616021178529498714640532845023233915548855274046166827914224556098315186972828201613049730764036675359708082784362052669498559229043110591475158913744716120179464693259460219973578075389785998775539768590046853501576507739342600820802005392563498349077326937127732850911385033883939807752211022035812413188466640816792947520526509613430787758010902874735974549887242086541048754951938647559597988279816761136983918351371327023787026611337240569077968787896782965545074719835934222618649931869675484193891907844663641814312953881811367094264725028657329309949175465857047754383108351147398695624170253843159393219660569334228756653200929071110308156072498136137515931163456697354213330448562834199711053803177660846931294568509458221702659553010834050850345046034172774195803989062641296418469791979211090816665024094147454381757800029521302643298517299841005095684526965846416310408334557316385691667007575648668982681734485832613277796698830194373435868884279672852939828338823822022222810120595780969883896163116380474668254210364545480388844515279617038717523670586460213900936607529164643331708037019949040033591881931710838941547101780934891465089787496457898965127366887075501452801209252471274601041644760820645756128731569082446100504072569790331600515658067740784943927059677501424520365664589497314715797013126126399567365333247929055485693203910986669196692573925447084007334043016641908353254185496422748313161627587177324494437751746696954024719130368287731890198013263449351468448742651233123008472631703726200449546055612430660581796871546578208596238868706240716740100577720104159595656544405630087893394105272385141923831768692065218561445042560167096072925281768959898563607206708901964867676126270210106517608634387966653019330001594804630126540423516129965709156948143776600697016698126928415202457449727937562978624091009241064368843728592229808099476053145683552223686598379009948648653432220467464234335309429852569465145819339691035555979193296326544259110313511825555497148702535876262650012446920279734404793186061278127092198240858028742716280427652209293615605247809471107150067567891866229300259841427859191447100329465307385925378020951077151000596950758100164333876889693682543950206663386718560104975619038111932398616182839805820654012035286063961515010477629835070216043129663159665095569602251936034992434739735768646854674515953469093273746132071211238033463943099181935752810188356103841768010039307731262579553927435519707043270043034057397395555927989029443492667530032879950896374570300332337356587496929615568148176181287882357941996895998019869572808236966379069530541937618353829155889619239972422435863330289224461480998759093558510245501609659117314618136690829903602306230553156143946225148572746411919483821178008167484596397581387552627570105831480265304108290903027441322980159056206192329983238689256965274804127176336223582673412477983844568444064993717193213360444933042339840075490188678111355016173776271456786756469502294629706423038579042291706580978355985271778864862763493570451677444817022581434554997699909481407106381518640305395313503581089581193163915968100077854321820773339986257362695422875650114076430526649416741505016235709126453278359765037981563312065153058015584668553833720572783705853009868512425340456632738824807410683070948730078231455141804055181287717958994999410313684109061444800295962248187400311850277206135514360736174684011807821884878794407369975477145653093154715005618935611093736620919992308208768230571638964129976551698250810791577225067585990425822959561270676924728419011118933021497774749773725159308696606107360482243726273145354238126744039948222014199805870722607715087044157419023830074404277183153059448931475409418213505897127808554254536954275313217832461972546260630407197012700982451941864216359455284196676577556466665274513395800891282707731778042756637084262796426124138781620665130953495095991523011805503578430007420310353566454790922791313406852749752899243324464758374667677223830890135943439142691234152057769221619143702940050751866690573423981432483834249364310304454331333065283292505562763256129450907828082605315135955036845119261443004766490262421739534729533609060378750225686312913838415001080991596090101487253324030183976590254987734308966570368411983473534750206858997741883410458112376733171820202655624549221777079744857165311170953659105304183166584140593528115712277235211280753798433248292259805277014198219376541110680987267461103519559296446679671515769940985315777652472101499076734406302337573842568909565463730905864449222627512901552085831305625915838511690036417484449144058537938481148952166722407545361412959110683680151162056938254220246559615150405469282350227885985285948658376329575548483673742501409088729966764650299093906150876190521251186482955163298591522144072575830689995621056756070797995915056655557620732827660733254084694686835296120935331556554767728043057551753422386134478326815733506025356706333067108119045182957812923920819944655464890167643863738917939588053366507574251196191002558337354396240047136613646352663400836163585080311194667534890560166374314876513596651988117113725795333254913061017605070088011982670190319265556036863443280263889794625086057854468155638125581344071081510203953444702904697625801541932972827392647069606760477100392611568755438829385302305272498078187085253804703255596336311700518428754546313962039093400629129072153618185166388055139004864121853007140102890153282183874690452390450694244618914937458413825361836698285517640748444966209827597559874328212118309043249439390816162267036762183051920538320055280873875006774434912243377088218958933244855024893822380104937403812554621043100898177104923399286204860143432272096816147903907084803287596176757209219784478625715407642799740478572317116670179161869644849950151924498038380052054835892403483341488307162411009603782950918409064876745466494137490612878986384384607541743221078104778341034980900045261984242329503595532621241443334858339886618893112830068023185956960677506954956969174093244766207572197483487215006977081765222959690206173868651078967094045334101849894048273574265511828052327109017039447123417204637936785492441839746423187458466483762591210762843222937664507080338918854495216115463908210163677652271572334653076605927517326631099084950784754167533097675133513648669585409112491334960419900505725291220223608902240531790107921714110000484564693259036072176387399044236387749974227259289772033547484345229073158191887723047830539953898101119916370605749439081402434552386006418428481948890266364385884199880799278416900662323967052668449303849499619083446385459946364747951828666986362122442501808230124136521919334083792565568332091422848251531467999128786458385009952447554938334452984667445035095922919342906503201257059976648545289553367196439618893035287091971609172157808244456857635310653699473558874017792914954244225080746307632773828541934343954058670406248526517475567237734120924295668427835952394436327535419286629239913588788626561800633711295702760264328825665695616042460218718289915912275807218020798531598067234865915664336767953545828686140997439402188051229434514015405398441386187852818701351992619760273257172705834926799843568358110486870754750470814600851758555789500012997933732278961195165624020834599306974880436160562070713331559194125821664471548218007254647972387958169913773318248002507788369295444566538511219896542050420004161131353671347120533624868124593346208438726422785632906086527694121455326121006232326584424901697693518125286488318437339199813749160161265228003507955328281120465059380083561220545779237571996332772330087503804267427004645483277650548353027628191954741228194719244727958059422192640831495072601636507173331182711601808863959100295369837483374904678572569034405271578067380359852694453581333160064989427543968378253752505171837144544779811442838997199727901206302599504395170313028862265928672394712780855386257311103646604827354834962838219920378491299568005805785456858399188773870871196981885388777137753862905343973552176752760462928946005382456243163488142323164748995391918043350496371431869173269985734720048535812382290420796290718480766398621211233722856989833219930710325980724981911423690044899788890544178909060582934156011495676982427857017729156308391085117848517870887586685762255786930042618216848942356717275001572635907286950341716463379522448884542839138965947023257799387093306866729706989714936692124840187680977028064301210987675930564629118121510269229199090529262235078927754583241567117278671974448046894574721737723985434584752911011278307516635710267015352372088231589119482966876318459346180556000639648326588852791885725810799177017848637613946593640701189833845278765833260870968438199960821737247851503177491950158454378279675484685639258133267345401143504611608037090267019833167421876529841019671512492403735675452427504179737254969323871424977836593243348644246967647282525109874466475526882635151625994048353050280123743555023507705253417024622345536146123488691091328258551421471299746740414385357919962397055753975903654460446954524323382765603193789708582476192205521414398024458057095029180371163103511236609850898070535701416743313045230587072737258014668421186230925261591990063563043391711108505740526210593506387741617968682092198954766277357098799246598337119922203195985472315563466452190986563627357465811662483480387095426735580026417239482161112166188731397998241457032183839081555632140974077033868777165561651231592416970793149850437603261658736317503176053371954468998644488077151134975109215274681570938224131943967515180783786438215492944334278553678137973679257864026906468560741910101322289853653137944411291054552251190573001309795948144372053149545791188092395390669784054799189494084171434644960708165634917588104052342512476431367937647921364919690258944799014022679293344916473215770214129288506674483122239157574563558319665451462219405092818347849747321784755577352366380123270596562310944340866613262147077342796338461093940054823068505788548922108391854828459951198052900303516431650508507257604540440898614150204746425319358952474481845981473677666334500081023013648342684148584750139171152705900624417319551221803608342867403897919133618509099881882728639149818075550148427244008660558784338762379548008781632438910565194487046636260004982637131431980185156244972005686384233390105922544669335324994674057918282283324669766748295385971198096915341272728452280835511193185724428804065385944284476985084141005878909072961608265207659004122440085434162236834977064201210134713567613143930486206916177849276870048884598026127719982539613966126861204376753653036506673227876244494287836264034262218638068316708720479451222052527216011753676503051385871019049729702836074094146041741422286894211294824504179927242194221962391106636471838647940834861651835365028135553194550253120490850243030748145768832219627543372164529101168104984793483571103130584758337012625290340066724933146817768306684593253060593404512056357159067184238778027804256721164536972299888790048910619345922240506919376055595895919437301277834874123110170362415913722425479204273664179023425383762611392403050897945322028120186249172734359629992484823190381588526258167057082408105584240797879363418391951190310704894878435310049076964313085168771750774354828371382244477123466001807662277784993617976974091551848525523081097831196756412773286161012769437817822189378496063885060041833112455232960419078751649431966946566995377734075199020351425288574402886812347659977364761057742655593683803968924610419565720773675141344741616012747919686354420296286090561937338091014037700440412238059303396365155937684851528526288987770713796111860568041045980165460793782151735222784874737635700268174007712403072441358049197132847788382032911433581073738884146719377020984156946660702011267955880067238200373295970245072268697444109652433943128899282883773857491189646475967240925000214895699709052099326102287813712428555033399453981215897303124948374170482571311941633114367693929812045533940463237148609337653242102580004996545862616272995564599536468504056280144287889997012595094313743886381152243394482724810469752610734630890650512739786027566942797726384623531781759322942566353260178382439565935108967746259810959262431157589742435330824302627081558359406451653940962825264642769600080592594819291882737510116783556053964228331223020686670514910951286193126917943505225004962568808427236147642375468398326259047017704403949593032941655564969131222891035904242500910716153175166157591813895004485249077652675464431594797791743357403968199051634544772918980034948233768203897915630556756908299133157676214296401099767001388231022293486366873554446338441796017122537177507800957143394711559948021810861252433038181849268054985341201074797594118920500326162958151438884966416129413458159399799922822243643363635517724742698035961580428851164959955205009439811383440180727360329566812690759250481475972057233241038804512127713247174395315668482098911515014970864729784969780036386488773255984749080921892520362402987281826332264402241373143918813564148509871355504898675150779771092354104810203609495140644379128801049682376346256399967867122953222881464812856928161641615139784792610450635414830716393737473567382981880977908997829981195664099590597480806182824505185647031136061335305327911948855298084882524245577004243242950743307794462325198111300225512777093872851050112940172305448670315958869647853843246964364104635757579770423165695582119137181579197550889805172851686605316104013716671746816581324780608492322426433918273384156478658048245592107276831932089853735846775664303596149913784579680703085903691464503835756626488843486214227003816816111124719840484039243825864177240682908976820272149847977355062144987698819607462389981373717493003733517340803562670950948864012819049010452353546251327870681251736364433910215394308772380769713813696707105212308892003646675769504535446005427571405904692780116129032402151071545514248056048955750283157741894008976097478813736895049850080214281780469006164759559165935537441230621191824426552893126990081878154830909324701785426189308088781713910106684648737683218512473577909900537820064375535108389430172847621797086256528731287232723672370109874652393101838619447626318461872751116425632689033137606869424263446951033599779036596141394537170879151181009735636623053092438607044698044729699443979514649371394994381575841455107244942755821665558891196222240738091972719572021424820645750680739726372394437724376080854198453204805403061759847792012828429143979824315262924724028034657277986032971347488269622386707909891284664381435344586060492806832009278902455091936451018960284655257869396281513511029900364929254775810160383213140155184188833002401165340398616868160063540701467665239998000995393347885489744015129055139503183196779858238029289195311619943666656539912142002168623750613285737429273825846291987711519313567934208929194514850316329870549388934879101369398127271007232331982605997958978508199065010714888508048681809917708880540430548079385424329712852446488284787532154762764655207110670317426036108842154023406178680128919338703392078184118568458864596912982934658007245314835779891506285620290432460485436417797273967015761491882878696857550897056335576222122241307495474198366702385075858157498560045248488533907154002684285937538623890629898554990023792424615838039953821123662175206725909929950376580507684181610600680332307376839507331825051525828835037871945007653789281970273247336782809723428029181584827597421136332524152401708696826473342528602606143097452800795141343774301830128838628722636723635449803034413564045884824684516026325173283231578213746415321508902362801317383942532037779249578663568461759256869092507067574160346564697731936514199844324092677459175037379550276204981161908879906824242219306711885888174177473403237916067543672875665346377022981436622773700782837030456960105660438100866108206427450112387391706200083565839616424316735303643026956283956925235505509433705984241260061916317970958990380968710848781530029175866009882232867366695077847256205526337702382468803057321973587532064208306034765375661368022591271484897188556631259636038663463057039469009242348828644823880111629254858748338358070139387616640280912713151319004173243294687362861266183561645186017170062342241106901314453182196876050558404392618736437319893423258563454964934519085968926730465358001457092655583246986405338443695336246216781871204945067061572811148499045235712284110992407502945920413786681553739075535868576796855804342701604969697025222349586831083098413541095220698751448393133854574223880924074108978276887967522813451829115958394027827132249701642516240262153253706989794538170711817369291920501771080942061166716018212598183831231614031025526423946779075587856104775836793994630671499757688150978854948320857564415085605264804472698910111289368833962764972176777253195252654954791701621349897358106174531109307520001373582674150537864699694351307140785561685608976978900991416930706157317640860853685511890608504360363491479217096123038751640004831363404446047405448662770929474935203634648329611284564312535730810984307227051274688358129797707162214561738681940520118704163574520227332481432275645489861092933446855921218445938309914693876991975952330523551241706634439078725130273188383350539140792587635328959493333819292126776972063415023808672169745511584145797184675414525349266834831283147553305800003635317054515751266935570548694649747212008845257015411545553785568053459715596141948728447053124109422192111816659974203454513285667292693701434418921214278558204688088905369381056799142773123530078448707766453396340831835798361640853294752611821035050180891851580193205590888567878157176516711096868678343959410833540717659067968506207904012552724684601222047474886551985750549118479373180811242494364386494098656706242187718376623315850260079408429812017718366402790092604258182831194741591895640076459513728108588589131472822869961633251781913501182569941145887067472087181922274532775341566389968398998306350637117279451317293693135716887093244577030464123541412334449927661901569216594686206899773384131682280624573374187480295800918095268003842170438990858444027508607006477413555954550484424269558830004569468802220026519897272978878954346422468992306552147344987521906196852655618152998955956799744819014177730876803613236363723460989609439928814624245403455395428448651193843850348536349637051588040841316856120212499041869661066154253345013851887241165239450807816014420608261953655011397201693205348747975779726083792271263070203881572330548828421027684106637536917671544721564509259535379161031340724174179643322952914265949988519742680529884963626714160457575733675515581648218085078232725275672050078850170381474255917219969090332704503538041166158608247936186282196540305079223550519597047759240068035179290448071016159560939604085621393115526662421591362110053813323547599781792695703587897596254785643889420517511924281332131302562908862613317494106448864515430243752698228903046159429747781120307490351666050293315137942749060843644366245040374913917023971964539590599436894490661289036490220653334289975746309332925006556450164630743518002282574677561095089595262490950879061383530635269427591159537293924316477183995766990203073567027930832290958510833553175233879246384394623493111536650085955812742886351192102520791177801153327193122832564147673976616473353141144430184126927389815749357155017220832448031058798181041288789198789029233253375193903035299647264262545081861458698649619796851734370114201137121320498964464247628798722792251749695888910946066671321132753191653943210247171327293022002610753735300558562800261034780618482263406169189002697913190570889935557010015188487570397279244183529917996183989621336386275824613033257128466698389129920788018202832344572068421538555231297165944342329057491084644369408071682213984265131953154446934700680736473770870923460081984907751179483155561841766817729374874732032590253129630842686558557065996778668324624759400741360794211826470332131353103410871007571205783120506844449821282567463151265852726358586758418364319150853001230187784178183534829836698439770428802993168639651531612330906988287934056997116021175320405099475956983395914489261825645265855178211988785435674638447154323018313588143840482420585144875624692515980767082169353778638545936367846144132546548558032498238313351257747991517881043565459464512511704219919768730032026198845940173255403630846289157765645328164058485157808551656015175911109269005112063348539734914078086961690173049206191510924609292384599600681933418591969982647592492561749925728821089328164720154382015433555288547042573812991461483348465434283232535012985766936499225657959830652777429630259821650727435881040460289389833367527651684011466908945187978892808993395277694605458854387320177908766094497326038147161099596167438310717338251534948190117712974046724636234201631148878318697785115803488652131447304673948409289707198659834075135300051662030211251520883357411080792375299311490846818442455398137530568189391875219768688066874495549933999965025781872615402784892997513427859664915409511350615185015714833794485863335883839564833341995334512781534625922569120802186745596122087109234329988003960233281483442002918496997445080084150485490537195244281198157889650930834741191809553349269555140847423024035209805714815128153005142307635142446100064981466529730395910342571901649714204320430897534250570420318997314235588132999172298073458383864652170617350212011027136716222351854683236738941773465739005568496360208549174565163837588463409025913509757312015348065532552784715171096104572562706510334426688521749099656856553469232562460031263357388087627748851390170740976974988185787792165872999720693989332108487625615983426516655554632346747269355642357259086341183807959283813144879277613454134057065052346984320972442289056823009606002152201374881083371358884276612985540995637985920811665418374617419037178364352358947819291331405868432185484525535164445257134339574456127194004774099795912476028912003151384569750672226417634671282771359457815736262047783401807805379844329299079394326218051454742754940734956134359843321176283273081907344151680814483176720533577238965295794359302937488377485464678113234629623784655951610098339534693763400696639465398382378013245932539933925437300537657164066713642175494251043762342931910981358903639633398865819949851754315548948745139432672152681204537220459781299838387669411194320637456137551335368471626038767121000955574330881354002645547398508430217219818213058011882852890926927503948524008271307363224502307104226679535558420240675795002629738451008449129606287387083162479379094430221596405356780097081536300948169999518145608044696247300096931998170062136146477891293522751995406774804206610298306161822714456048551173951844803843619312848904259844374211088994062783915767971226767710003489061480351258572501742752634084343448596535277616286618337224971691551385498029263435266184276392004842986664696265764119517910483485948007409677092642861122840798174680000029432070092911775110395797689437599381826015007588699181665667060147538604550637506721820667707346512317844484084503311455575380476213668482170502338086992926281197170275175711208391143652948058182845351211518594430278600306941882892042212556690466651697092673038126343702366978898600106558669537835373603293102785568605519539000060916071207886589225883492354327395049321412112124780473684731929364483770445835790340717870756243895841622434729026649962410682406596522306752629823580094521577608115979369177893043065166862623091593066585960822201043829596751824839037117554297977086464885872554762828342218608344158026942252184652984267191050848136220697642484539572922020917134600521950715652263083891802024809976061712780032313581956678861082569000000865329860511634548914085020177008295339699412099032131406606116994358463343422423709930994973919631488626703858426523302053861635585585541732854431505027861407908500414793315561637250997123115780890296971859679172084968951377615362029558750457753595239065317559517447013452371742528621186550867940473509321642137562204649671343205061296322503726762645224631611716128383346179551224709411471248869986333876432228320480121721042469811238621678322507295313013393734045646632460893639155525920414729345198616716867952485792171405024166532037316469073406469307744319753397959051765472252104617873422105729884911181103199729092776825398054239233022271421791236242768867673764385995852305552959697169295529233189464287442864273437661529419202999079496742755868441958726916216822975434265637134692688801505584234097169726532507729528311153386411959193832262779650207464403133126932103014287001588518173034776915230025211818828809146284106134331043443720731962431713400899419399755408243531465516672127995669965209498488840302262743278156946611154914632898698648675047875114773326092293574392283322759266335580622048801645702516554317744060844488100382765778556714761189988595133993498342473001120463738037078674205174751437594191018154838033903369399996916376284954309650224283294879806394064566165876396788216528037975487441739068724206903749303764475466287638894920042536956741755716286478221487713344817255280935270426959372505074496648349415886105917247612039388653170319023051467523983009601704171628508692040368571638803022461277111631034462489116668759388028633807636104867641268368780950001109922841942588048154282704011962597503039378636174598009059367185331181291556881432225103007381712970723299040170712048159958410644775738883033621268375149605517597297692052880189580552229576550759132171912885754644881987096766320197561046737330365192922787251473809882356804128255697079786069349741112317065223380728258023799312191538883287180389893344302575081903380061999482208040829109317740327948975636326283687154499092509025096954186415870577292215709548431048760922974021194740600812158716675310177016094218636549494397659244524768890024040818479870624739075607001722563286256408708707187539720927868898743255416495525693744631564691823274389341095872111460964428015785801171706431797521968264075850158676264755501397989324515370190535949874719626928640381190057372206685961996639657608612555502228246816589360130263957763844390306750389363942032036740870209661409415376823525588144670060402338288043417045560425946479552982138809008768622034635687821826730064281955583189596648780130821161023307899757778905087243585337855119624114987271821477241106760461697669121589144544608797945423923334392300717944493851528041472693928666395232060820525295611746234094846362507986376071680145913876639499049495010470975919684299309721003985162556341085653327983784804279593392669188811494580774015897527006645506003514297799754284146304838943448584813069117624088687807476847450141652022385837567246279478161828213404523137950855082016204223635185905874109972901085598096101534064364945952604521156299570916436820189306125762653103648751101933581959437921610291832752217942748274521163205597694678275248233971354297075451817920712442485644560591680519170416435585973754005321115045182448475343734680895322834415547053435413221592212663961282219345704547384848773590944858111848216532126306383599595633722598833483677556080333600229965615022425313449110775779711903181600967591349641360198810715230297639420597451445341762934869766167321853007974947702518023478475855052104295179744516977443570779925105194222195744514517639660353352367330238361157754790251907437131592731878263492860192588772727242759206598037066054489650745393252022989326225133002564965283833811183697570845410870102594467716586240145715864140659146173184117387946904598511435411358126128388491683406803764359176406604973113577497303216839728022810374581604731144008911319350389969685604391933418175031736652456121077184188426569814346728757613925475454285016804369759239336604922090490043345520479255773604477406741592830572589554136743821190562250616309453945541110822062367126980099096913128081127127880003333408304780226846472708736919748655258518375594680042691892521274863396563259584655360833889966298354211617764957976636932058850124094893142433898170496674804702300742695076520411617218124790469398554074899020529195437789408025856845520672429989889176679112588095372072770918471771960230621276141195259743992055586085066802558688976031724711099474025212929364650727922527525378326091119887884785184220066469126580253549134941533923697720336391886502365150871801565698251093181480228618253670802346472081925243271412446396112539123200437994546922468117976141192406356097456387656190781258141481629460331338431241900744252174332700197606035677303567448300459029431528573623695187116567656092315608127295420851703637228534929714105499588312274431801674546861281021013445602482385301591565405181536528958322885299765760289357585526177073486957624020802657889783087873659642479633623312428048731470983172544669508476291467584794716696337998950306017524687889934450115585095608348490414193094457731316843532159705920404154426265680018870907381861575612097866234946728212966078033218366653847031735811073562584343602720360820041198192967788143059587000665962816250783056410354424232447450223695573412473868810294257596260991075398166602292957910690591944663816820680975302433043230723828949420980400850417253225216929191805855769543488894619847891709934982104890462072787466249925740255453904443181847365479440342071387207176403960314030300046578231525470054420876425701092513330063861026727325928496731706934126244128342173375148361027783926745761508818059357227791476551092023251757881790104623145583877239030407058339569954410600399171387745007878162930024438931642524786815309264824640892527688334253734125774548384297420927036036188801363598542649108529661449040929167786615736825257153614491748446474849596269354469502953903511839488713732079549762696786933370777705005232423432969839744666733039037408253536013448219937293267493616291728477431048748794385986307582856253443142731050476271582877154123096135842567765500403322649375956428292445787405300937320093744449732631826626238243288779362260306578252733268303120852943029269155391552562796477720045928505973723162517873010733595130160424985324702686468493735477694875870915976808927458390066276774801520423983190332139588452773541961996698885347678968108123670900864279403344329455445015511995654390042304698041148443357381269107324992114859942455867797866553332701441919907916476640150461063036116566816649277371694912238137006606782192453731888990330266857625453996583537626226102451448889043020430522597765407920137300523908948175078550843436689104363663504384658121048364722230684369935691044649150134946298036612270859010828406107085733778931209605694618666374182923599171298528864766611426716557865248304532208496140465011018543486336005774907193880361688091035506665906334231057639625005030637142399883159361896284113571754001070803137317350855563762675149038960213809891005004113925007431738993311725496649917313895975770104459506135809978172273824432283667478885412454260719498496937828897633138090526602517880180850633891652042591014257665812968159590320781306637674019921030619337207200799300662373154502307911229358287444040853561957187148271465386820696556431928662745943189817351381779985273746929011310337835802885566395182999501826642172068183272005867845317759604517842891257130402101645678843181690347361412683999595861746139972821714608769385648248012968805242584613992715134507055438070232635359949813245687751226120335194274013124708067043831665683766201519526077938174377700456616372539417209717408501974105939832048610031412859618448278307553352574579665948550328403685707480188809809937680023800850059097279074202858650291272533352949415328263674048880415770306256723999291059890895311461256927107197502724369889140050439708641051490666939226447660797392438500726416363138286600042267313474289877067362197791224895323774946220212993406722559411934909774626794071887478923438267402299067325422956510775649372352500074104114719028093290167102470714925645804920120941332322205177553635420091540228670980938892442873839829276486979626382968829101549095075777940200632932599348918324622466101373833217146683008404780916489147796719902918754211434110384213762492474080613970509943633365559212968698135019831888783245356040298537344575458965825153377799062340467326461229897074402653787966944825734512810663169473595600657411616723900186524076806731659721502364035421866646927780870203115109248660602646242614783216052381223348332448349147406703879295456837570161436131555046416799980697725400895885921009021790778341137693995629783753076759460459711788111141808021543908778489142451169820228016379645394390868758018590437258389592151045411854637582952136090295726637158416760791062911265057031429302974021977423214213334701761894759923214939844448187682336474069488776352766762247611929718991267103683803448346794974906530644023047327966215769510786714930893522769912808042266698534767498834349424111058523141182915388874225012632858830116904189514684195633198324741048358838414082385995151988436619867046935298950809277274766831423147631926583678483364445201696730939445129916447357023334373940112241272399403084021974532096163854353506427319497500898671123958621144292708036674435806767695111201808688122123814178316880130731953687403205933150880697800577569150480491379500206690401028054919992707752254203616146539108371620798005868192047066289861001151463361779910863351331952933867072267512618057287592755027401079095369051085974576953443291561633762995462986469379480653286986353864133133805137272547868412340266467622396585204333549026225407969793389471835233202049758088443504476661379395156868006977050605214811822951181685184610371729485628933431976508691465398301346913195396213845565421136891929892472914447964799534148852054360408200134003518669642912492251437356028733380577456743498782217405845388041702815301141550109160307456102183947010306691090429605373195582275161866729475921228464069355458288337345874405250525704796926650727546533555910435896180812132755029451336912054711082306338479941469471723975129230343774893504710364810430040189067552205892635263432298404185657726393689514170752806157008506279938963190722622154951438300624322664740984515363746160107446861642332538377417860320238967856212506918678090292351681246005967138338985934075168351296043915350173128049880260420496139932031711264531170252517801216145424837376009585620910067088282730180813764304959430183730289763144283748314802321936077218625101161276395461064704157115977681470882192662773300559991491165597719579797690607408221176503728692400927936444150624213607548812585618740866804200452361828811048253486057130172373117961183460673691884171037562479460704821094060975003604633568602523642084817294956482653758324339711132514305581995074668343572843678496656951259390223614273103652942375548988032352681326397027648403246043973722645452307647554917674770107202421596644998810903871397400289913573478955472567089737579326404562094851370267777050298890989597155305838254566922945558586313609013871068995359937461190859137691227072632689260797856611776007905900942960833577221693930337968468773999698653344050893452592110120886232206212155617827998177766075475362881958809180409313812584764621102150113290041249346046424743427735921127752902430405429819900597739261111071811638469278874936274320205655000620205519545643897022344490571622843854155599770352934381524321005674917509035849368614595183905373806492949226763036178167514118671329828109648565434226266085211078288315807234588376330351742095304565188482302592749631956775452442192598986137092117449787044349441880055413600691187765130602894880426459124140767911495981555700520124661837062901554177303102834066208275362848942339595079260898086577991195960177561710139155319695885883143195310676493400587404483816077851085724144941294008318519796587642553416156835194667857957752454241015877613601116191356527146268853934863279755570849103178490833379313388328949244435786512551732168372155517134491802383144807600695814573807723226870718452486324370505179943337273631185044909966650560534956445849832112405320235343149587244980336196307554547128774566571247339678001871070834919938588636061811413982701767271251001200745649608010509663708620464264640061603639815930484533160736899696985582337787007725749188742195636995728332691593953214596335103742756849085391271864845982378340607995107497805555074482345858962741252879002576860108253896423950508494273926991188020208817878275506693271999339578205916458910865491385347044598391754216236964229530883105908543014340886659203247214296976550357954263039273248108865855275306522296753885074900962414862868148709945331913766685739407879375134524016095991110142734983154563636992603745212559222951965346381000777935842706603216282648450040357854922911654673809328372074238109219415861275651572841059315440140444302074361050684315914675448592351098143178424327087244196321520672154096379273284152736505469185425736032530019407604486714947464396423780803196551649280982953271905829622974178768405530893747906161936916787686275866474159320595976631854331921210734320074392157996560101080714301026188470744562104048658006105481653213169217614095388804899100401239095885722709083344664619629343625590964513526022898479560889563425385143411666290775243314335129061296804919470307653904752580083060431402059687290321810278563086913172718855797316402650084897173600703819140503889038084519241212912730424835871363990968773155411784490833957028781492815416725557135741628409744877502846620424189786554400674512678987964329439504503598842381449327178809901523353300030512733681638131390970876517206825472679027211995755860367029506920906795607975187252220432890265766557791784100473662717675673637959374637983255695034740020534698145103558962396810887004199041011101883713316974415994409231290983534805842283108865941462937851806806688089249777911944737565863910593071988017400845788446551056373052895481717062656516350559803462778492089938258954492345098841501322878161325511095161355182573321463305112391876802180264509026223783670006329898331455052144275495596867064591059395135588517938315297703830449770778175592887217171399778210633254463596960326764421698739864463242573790868966071727262272984012466060353513761735168442604876596181679038010422581788744548698619382796945210641412299676213142999469335843191040235268722107525809067515673478653527131641073678236366122424569128476863982891173955509943192797338759316434450854640716964653539881004632300195140778129800939506274448259133585965625678403193122983923892865004156929053488896598117025372213964808659922091889583404080172778306311498337858050592677087181778891708977839938184074579083634732081835192300859608918330554336796713844321603490806419165767047795772637717935307727580755070013745450658279606606760776602121745341260837214959925431131471799720010960794582183840768828347145439600264146334293810099864533968399576260915199849383427536084259024323001742925252545925205083290824871964912581911071947461424532708722865457506898754240717804198074370378579201526815767559448049890731077275041079106023162582664941192308166461382793965395872177396083189491575144683439453810939942006537671148303494234355232346348740425395857440432180871515902255465055101900917508245574186998793417663419713406428084510500150405767694286805892592406690381002610393150848192996902065545341401446331768339358860698298524948672988805127584592024923171196807802974697898989014592374798088229883013271486112053285464815437322371633957026843760624545824623769264749072798669527692350273789462477120972760788711367057962947253477778977986338194458483102602892246175250277907491200610869046138970841376178168935955752842806718189342075695411137998299141700894743100138383586858648660952703593005291279644075857219677458899861315504758781402631285056197490074285446256972560355982477693955905367505690912271416423426490174184278667011448082194056503590930660881681417040553200400033138927382246197248800566922900154089015622164087810494665011317552835101471479186275084271844484321613453190107518684668164944705582105705771805075191544820995235774729996054060681519159444072307662634621051810668482526330827031013134735383161288864773803669145346642763800927538096810491997185103819897310913088633853831249610163635243353991283626862035882770236514886776394291231771522494078439721363508964859510471948072934775434646178766608087437866696987271220973724053658957351759004454800904574568583433417965365128165770447261337442148503168070140807189707486586456216785815789277319630740818772346741266087284962314704113323878753952947956166962210843056499255132255865356598443027629638826721822665006264512478850599343138975855014514509407440052484313944250835311008952673314641784278459548900439241200107105307569063965113265872456232493685429423925379106633905278634919702201912691155858971253698757688771790639558957865772735561443787166498847305124668029096842544063733472282012207960548761855120031524411730605392124002603311852941040023569357831336786409055280664412070407554520315516862801049419534501257238574883652750933519303816543845138456643649570576388785479790866686827425281507533802240923799664213940067895917894306429203229439863996211172965771206709721563086974786801911148089995563255618611910532536216254620724841351486093006727677554256031137298829362387382272601689625206586706023115561378697023382752434834223684846357561212681409498560001742911798018892486076320135467569573934084918577457315413432330697727402170923779388960951700715857749199539999563969498412259659392186426952297442009421898176683972301643951661675937374371618708205898707067431227667831170282449265768275682851482089846020976056874882130489721862909679784228528332177713786394587576060424036068119874103030035829559109650150573414116019762156144391660151250859341687143569651563407420997485726576599172721243980461786058525699218865334747236934346799140060694817884163771916468410190746323561413479626712267829754572457255999055067582300838216143715030923366901173615147896443516528379782328742817387196639203804547372837811524147746402136977024362226966464451245956580717744362749502096105948274804340696008102871707943478392520112343152266700267274452703784645455273352114984246452317956563266695353988012477553890648554174302802936366514351711507766839595662847555023887877639691422256753632867215994052427545725268281327528612004630587206471391947036100930081739240260949646045952558000791547335419387591763283105918949204313237424569774591300226461233590807856541058814359273753778490820739393856307038726350434964517344353460957539460761622501197637630656125304848736815361895969853196755271120746574256124002508235705032155656786483547617819633740485775667053800379125361707508669734836498002819739887658066387627767972681170159391586578358453122596469486962191962716328120448394519463593188618021716430349927578409342770755019520731415497443082641006442596756265627138203777862668821871614455813760709030455775000874639261865717997432295950178020150446647321127390725547194858404471275351717482583793841910172130556953043956759952124070458174553215362712053484501937069306842273677518771518815902363251346288525685775544866732957216884548066871702170235263828729327917194448662790887355321115600498263904239452779167793890181916090672801113339151307263153570226434963426776768543513035983069086293993895071868007499026572088562116715173765207138110047866365836967194861196108062945059073491978305253861085871109234924769665741543385342504875148581500442977012669763097069486803072125090910828985160324529943853771403906414563106913376399133352789267355670002293810737061600955986470052557701671984076176958282101675463257963153994911074319004298314297882711159418124869391624917896306648902635419608755816682870510994148672407454109916504624639210377169619642120327590479257939023444329126704701614243818030852033347550111330015520152589228029087473873098603820333123156465608009302892296212194907722453647904773870134979561077256132756002050121692932202608421566746603857765819954549604089292373196639760866852142288088833431164198780405997641122544906211793416187134562160776938504148328269198795038265478125462603331704921569168758534953306521777988893227215647130648906682328184010350097031146065436771749298596933139348968304055211332640313419484423017884397472617410439198665357765005850874010759174362705000286893020986674154691644604863301917856490715896692562563056435429057980875171221901410234895586133112825818582385087599327476491285986407238144810386949698003791042527423598294755117897758514575749513773184124068455899717747981712725142285147163436671922087331843332431669351829970088977322316100364525289245217993923547866085464742675459751905018246020980262737227438254531299006256362724732996600585498739350352635575353981814330522857606487309307495343867394827430778461724478084541035495499227367961855003673171607117939683671247359504381276037993217986123913382783992380941305333215840369999205464870236832782350300784974484956137374108188709979991834605072096221921573238873556787344772628459082471877756048929537172155728451001892520710933949836886977515139409028434455544707029600705089892221157263386882143108753749592942561202143316375004877868845158821872037796428565874132997310057948674937589472868208962806013495862485041235791673962998359708751132324744639935374043957219549867254821408170146060980829184015981991774443455174731324760233275979688443777526688318226167226158923143358341180007479763448671212734505295594883661938764544367602864192926907790350277893472275667445723900366136573680415314938240870690626636368846903046129889184870357029136529312543385593836061772602047476953215428560278967245898544595579885001449511346479496901450668773080035981550986513837787042355849252126455188018066888545680880271617926288118884758858260467928630677420462487171827281318121186309880919402504728182210595916287430510761451089947174241427449070400709251502512891227803826362950405993020476193550360695789663390827613884966853855844687660278000608081405888022385976458405786239879893382942209429376597451927985699042186111050695887548230496332836409741774680218906458389228031966630694724258536738514975701421300478465760485405117173433794049079476157748038271086665238417050993724873473084287461467173996082387080713957314478904602749715915444458683917333474883106584548314135916601120726688808657362248589733049159312764570986719469066935825922688668080951525921104352310854823902620832363389939387376464919626888068013475186398228612239662316090631875263371615538056525340325413692566411988990429026893061468092849029562465326320784599885879482180993830567149008283441368605374975613039763426416283230816289689519809361712481193947920509437310202991132688042870367762010124645337057389062496000816741091700025355410839745796651922801447368649838272156591707100603306273513439396029790347214870922664528933379188359296344013962936882802883599627843876761412619420752696928891322167881763077349749945789655933601397082052915749031547260814221445319979414318325050718791253845718869898987040734391288975929136906976481779270986416490129486591427428626982888461734712401729057269508935745204583861145054987630568614058177180150534942797714470820371624717931178565188055576997692802270933318173030570333772052934100633518813062856385315290511834949377302871015413738497731828840130436058674495814180337853634628645906662082589219479713173515362561568554737575240590974099011150939319571218951922002335012707591476166630230626183004927333056683503444138502041739314517158520423405901537954357934910748384803959581432505285307551235782842670552864038084981780630188405206463348035539401483583353741661988697207363699973709542763668175519588618889825407111271450875790370458167680769018391997491701065821570138900733622237329154883904457328946090951988671414056083495394657294803041303794070392417866873823250093374574138482912633221089937962863756290799961326222479322076185867318876494058527433784243716067828767133992294715100294001841641925668178524805473810492411827210219949456941000838787431985913705700041152641162382156744502973738025700495486574068741255106891661882317122511866433909361829867340985556101360149775942540099266927950388677933044280252805808213870639589616930367610259344048476150621453851633208978619227239346350762183487444929059184646287317036715154887317032229921748370790772068580486912653762845046246066246187420115098871899952732459763021734569412369968186904192787323010884234271604375586265213956541053534429376036101966921896525994830516232086606953178299561246325851269967634272833185245567067202933877536396262217146286264987854537182811355411253408922831326540732845218235934601901870987171598421587167436401026234782893915825942724909739319932009601204982464331395999153853593541169674120930587200221664022647938321286869139212120058081154502686941058643635125129945056891579663839541308635498596241372295120194883815330602563060454593411500609476120563388155183435560003035895534857261103188062350449312131831467046430242545823574176946973287097137757764128819599203221200777449707731385674595645465978683478936395678134254417202266976530072982412697051877296576997546776987118837015243089808638460439436384891008515541832697466651440347702419877115253763980744990682963209505166212147195857152754152510774993251858846008730047453077602449182229598142026144919656094323122868281498812486978675084824123236892723797587847583049701133457903183631708872327059379831654743220248245141265758287515994117514942337603685434023570121161947693705440067239038232605775378777231787960008002941085126939095627789491852213857877938714896757559860690682803924271583121316863595371428904100799290915580447347650008806356259686019397393839742078077943940090906077897154928034473978428521626884450008601444655204038173074140411961152224592583652172778546978545081997433045446354359739021545067619788108790151238967353219731814133687426186701966881073714534166617323491282600950058721196051424626072607393694813749141652207984802414844183438899665257467787816628059052304931756199386948105586080141700694587024276121542322953504469851492662482469919716574174537227697836206881000534765270353772919801641555494610282854635828354313424809712213668729229986547481257936040426722706778039013315772966953198327624096280604191714032009274432642206745734271365943527107035624006739138951593717922211923780043118920852227114767074617447286347573009533094389629135742397787407845353517786972199076328322569466055639168385284292556311123718544081446491676523020553682280187763836253547411697592949418235067235557189587805368736288448595885299969841752407985929387973003289596940605812806355246692994059998573505450495799707927311874316368711754453390737075921918771461127215508402507240130803163184522806318473019160485664403534311466231453800019263490012779424624990981636218735091115446550662754540895114540597081026021274863800145299183370289334702646199220569078565399720773439531408460512389052924497124488009798446354812590577862747103691713627897274985356089489297897482528649198085867925210643778750987206912912620527196534797180103117317753746688123199949276965138700514911108444026519022982100032358799790753068461182921157978720931373979196213328861063708579649260359766497323969598720186207664456478301297709410881720925534172386513346532349530334976390141704562568374822705331760305093216783092722149741723986773190148317695210616038507117583545941424181982776533327266928886840548785073026123220214807121411933095309154618506084234959927308426413241734700816284427379277308549846974367312257856453232863673984096739866681035474712362003400840744990959427411747874717768651705806128332482224218620541690352718219188487352391622067407949794957632635828854500793261069728327013829316111660173952865807191678178419994856554196978011509946471821954416827301185589252397920371721669304001129419302992419771012875219224476978341077856634631043908107770619915803720190549699670821667120190744843663812126438745516642773510143766123188419025059720186960755850618501989793677605968497457456579894543966931750780307624711348271338366533392289154258138684413554821583014019434774013281947694893153320436953995067772629136942533774509388229978869062211745007604569021059477045774362312303919100248772574242657284616291360171080923406199411949833721062150855101995109897116132446746691013727372833807739339179358622246838266222822446341399442422473617979190044862098315651223125797593276553366146641019415700860430466111980728721480909529840941244265726509265956435155304278348628476092777588464755391398286479074923653688284613793874088176672405180545025465070539084946789210588060382774813620306370455456280214657113189305635670585515801309612683536292627494672614358016809488644643923865918249509566128274969505576596732815084031487579523969118871751204612340967747258956712823693884886528299750933270112739005199193428458704969160459387066181973339011380853581850564637925173216064712674701311594430826263479997216116946106705932789315816243598723124213061740037672597262771270009794851990594733396903084559363242672568111289461537832197386871428201544098417785662914410322316078227949242018241075100912351768575959729921897773750430452759892735276703802438061453633637001681874309144359843534135961201914876331820341916621299113455491277686818220656618999278978566705342653717668463084955900301654182474509597940084340502844897543020593622329176434631198679849476601754095698581808314246530844551253304394205725407873312727565655257858317156772538978978401244663716158135986123434437823433275465742274165340238867566629967309386429843328454616283833486815526694827063076304990958954271124532725551139689183498860994132302604127672455269792949799075169715026623001551447473974165641630808523261882115955499975947892777171784542218617819688700256958564299475228283101167497291065817270650560566074043325207999708918871269377669994541434521671099584764597580747330784674779411312008182446357822452454443573226175851149987009247065164129025645801667979964337549770487726051919832160592519593943513773330131514817438754029759339696669446108188683533097980596561072393747008477073160884208405212179730724274400567114125806857186574331608828035468684475950098953369366531145840776635973881623057707034171512916387317241158395217330703599730338840159505509642634985943742799961741398599108900933275494116488139890630061977282493323619317282828387629407377467632196324254533728789986852046142881644864728052501110123485529571405997369421355843011062881517287687870856293025423125780163270892836739551729039825556651598189709445554202086402959060319013790583424062496863809972714490701011976776712634051045981180162857035065895990572610111196289262041353601992238566727205704644768416207799345232614531109586854454268604755190191127718900072597359680741961622593227359465737855216889689548553877327939420922404489970571548181083706524629154043402511026134944924124122890745589858788357865409949161006216878605684775741913796352876406139750406783596958352535261592884085462259052800859521641107377131627222397868968548633597597779009007959518089855392924438137379146322822705089127471839218241469451482800830297984813522321700227246389741831486721286059468376522692776120609394483236543077308221720458375212739691071418448451802893362820625995276591371256630659282383073245853669748206114057760965771374312553252147713959945840845381979702088063495395801553181747980731797865322945290682119076158136450515490599103421874571810525325817082580343029621478537840684813066496016096992467917013667417493395280840241611817245180810293448568150904167729241032944221829012813167795168236195456746597119618536572227249231005436137904385061253671938404114521649575304289085851059860509787179558921248263824738883381974560312417815644150013035413303156118643872889247513112350643350569167478903626398961694866431992886127995885467161554373091292028582100967802503266773374680679819916547481131237424791557977645622832278690099738196634485319385601064062227448358366561121521552122896076368876838763721501315690884274689644642021318207319444314452808318236150986942708430938887754368043129501595381157285917978667669970587625695100239671279689881734151285584697731755256831881577974987111878588332091493177504554599992536589523940561495745093144549068964722531018459645979160920143464465623633965434292238001337362741299171127242437958739063721132884627245115328806894192327884820175752034254274021612860345893606777023412677681909573899397247364784195848929937568829183466579655492587900343345032672322175179203621725903302537035931715534935800012537726308806465182722038994084712828707132015038255917122602515158396749089667751541357790848301008411754073373205908812709514279547183697046355986570926193941330091263219328126542395613416316644502167479960113551550723764610782034942295333444764417683519128318473291139974801850195834559696770366198479625940462537964721309769645693240944341393769992185440695087317558472179694608825089898206975263020403286731969943554288272861564528184930736918467132813197873944474606345712423959431902741865645853389763751096058405741170755263001827137089531172804194542400914265374905811792687308881361199918338019137303872645039161389451892795618937616249179150195168368651270295545862242328426381205744421001843440326565730198058355769825005613419073049006030981804748520534803211363236960605096464099536294450367546849508414499478766872952129033171300143804012779471828358534769560019566572663025207498239720797211380699357314585085119148774704940081107951508354563766208422591427522585668413569080721901678128898602812181715888028671593111151319216517485048272661738520703947783469498669622944922315398396450920184778012962755776706230342017039462652447092907926922663365407769343033662941432577869695353542193575886300356845544299393225166462125537559885372644723297098767647455768978567848127761663430108362962752557397334168058396690004635897811117096524090353374590371679873626446208078903573692023749767610437453512550611794570766806337562358201981777909563901337539279183940290190122483705408889640766994332866486817640118073483953324557579391049285450084729091308324436436701930972972843033491944949444736669993269166067138867957608947096340453011448734271713591690916744613581596896299177404559864779613948282164091419067582495209581092098475609955361867647811085319185584387523659821254680286312657212695559756246182135853242781174257476357246520948178630295616000762888035696043644388487511504488289515535452766465966160573504152888312733236570363098047996070065742443569103723602929843232290949128522949752326570261003334167445587563983272501851753646608859424730621994279932058137462120801613720945904583686683175132357581792067872335728195551409146216509621534377730265509861556001817235151066342926589695371470004949096338020129578846587183851501793742494500364534866330574871774020058324721353850939087029149590698898422652844935210350672944109887884533408669672640898134458298274434859977574929522548690641814280850545094556607597705306169832633953801699554447566290187143055980431475176110465800807090429638167624271531455352682048231866428868131499160039136592668556117398208234809852529878276539891820605949446165294404689482152914758227061849139827768968700998911460958298012986834413069885121060322076929968621023454230298844664811747146031526237451671605229712497816732498942840186336669932052997111906178889154481684891277389030592810525354477417875941840783341545584889354578208003606998184915860678248738750093565636699947391687492322297387382938962291494358516855755556553889768316077522304981797652251785184615406647073458549157953230472380237339577384242616630670053746434719313209926422585931656283599929884060910423870333143731427750997223482168121730995676181532312866034216460152063960631021662047990917211647372857469589099088307820091642300256808598324409145628214576982296008910700033811291151901972680623109795933634595504870859832314359723711593828889287883740686193606634119698349394240665217615054644341593989360252926718632164593821110442989285635098369782608157480753648411673148585999609493722339166944902722567768637322453236636415601259995083308113814379925617322888009252618644535235924801748026468955957389687670519820218040797131566813743699367805792303014586983083653608614182389417500674390191350021215281167778052555819500310419403329648767493697756511706447808524347949521993069822496323656387497403216782002757393290344260177134564222136822582924817439374505929207864768131721241174290210865059950889960951836422635548418318358446204759024191080987934756949281983392590818227479423861201014143594266025515852810370428280161651483196364423381484791349613566940212848860485971507096112459677942092785568781134254736411740290586178701741319925035129960840488827214052334061431520387262944797669380726037623264898659928684315569730128324058353014789157887757997174401326169549009809942114057534839101463866886210350468610159146651982309488899707500213694284144552724190485340863789866070449431803494499121417671618442390695323660478896980320917264155570729223569568062627850113188897620039266696557239381895991599232983038221417594268146990446112022997649009761549143885423508191942640597320779572264188314476095648898115610984142964657140172606682008405316442550223954761842890925275452291748239663329310761054336006515473481989690702464951030778506807575725706746169573776999283447188729967320924474305444939788643380967165067072702833091279136334282114685268139776049578394418845649462333411491747414456255078626286355552127008815919411194876314480478346170841610982380054420342059892637566473038257471788954892710587382593633095825636645476643893195720250805704113594449333635546145479016290446444008272428709278002451427302684280418312026544717194874953290009066747856997845831601703786177372923014999752859878936592758052925168055228383328776367891973131903386334001462041785432746728665473626399327531859537970949360231806923088316776859788675470894326596131776290900510784003056652615515517195250224586514384245528633527836007684752093010551069893163276926380401035858467724977957364026160225484221305932705159575347994830430287903252127418187197779206041153052641925180135198694636007898021087681211635757892731139159722900119947500618779124320120113674243526339727986340936792489832806993745704043880346995885243989617303307600820365812506372011346015210586116410570211822799607345892894023036633971165100705078746970751549017016072652640907485604367898449472094958615854610939362814439168972561549354109401420485741563147396313199375190749735304592929947714346700843487089117799580536935958748679447191756099116930040534163344829482485955657438683884897796088678942430514324855971605908012688275501676338992785244871002493216383216554100975954681104267184465264492917815173001157376720989662151489339946239445980850957975493245599092796645419345859149493611721409899524368762636580184712884148213301376536803471434800810492884843372468480811782066155792253764248364267685268916700705000680285899091155126690541082137003730938712193201982984050602620354192458971796614410555354320874939645951071122530172974115256974224492596160062107603174332471468243997684122714424154495377976788275718171699106749064690868505355886000480065150259203843757177860332765949668822097621072820729778807492091492119596632617113165029780721257868975114136716359379352446552376599246095300919044082068967637895154712905494289419324336040518840719330617419889193553460307102407042102176305932153308182807544145317853750658232776009445025894649309808884101401466680451770667633820462653620831896232614604782885027960108916078456762445401904282304118038095180762416919916105797337017274407822659650763147519641509498040300736224879643241534891606184013297877496628224786000818343781078869538635784511555675313488969078073888097647671337626480947127627412397130429190906717725067424723781744641064311157106330254398710221135484548476981090583985943528022981920496365600961480719981647306607351290942416916897891548450973446814233965549924098903767415337312448719514499960604399786258331771675251632945426105391099449163893762747067719871383476129442580585262214963616451319919577857583276205563208180450428867387972046990223937648076483337734278994745609798503578403280935526836076305457347637776262824176883164631898364392595712559343052188060040191909717037984279490565362070948795855040411279457518570103185404371961220032327909544868198280399979444076684127335289800546169676018517507399952473775347881922319758173858175115155792080516411795636664372570642795795306540671825187115415801121155606424154603079781238228171496608998561365782548484926315714946735915987903019625627183125531245073408045131733830404972760526171152165465434689848869034229818640880321881213308455138238947913098699454815731593701661917336729245436570167120320930474097135299531564051187239246371382231764424794795665936899235854013118573642807506310002857488659484795741196160405846573600579306371092128323625558413868710909683071518880036756134773855816847484032339286087753803023730997743646499978698961636366545521783699887103905015031117429133339943412433228897132914530081020457030706991597436805313382470659592888974050111999010627281484355378538058407554987849365467791971491208018617614717816148460105114559901412264789845327329891797878709235359285642407760741727865805061748314406829818232117134534850884527013492757057159041429733412342472425958802067738905658725437999561127566113045992248362553761303490466874904874898891593565176764661812222224263777229520660358139073534915743772010249139649059148029775459981070980331079485538714245291195444088491183431437858680781817408750885086043504953119418179421203482869227665615582102739800504972468601586066617836236266865915061628953391879435992325471338269882909789169030810749414255871835289322522688375940415365062362144597107360338036870568094024951787850266187248382410903862371155712903363977391777394280510341866979382321493529177313316151055421833388490669905279792911568989620289673520379767310242613491699509513959140074940339028314128103322503671767389551958586385016756859497055200962787933963543472178856792619662851080486162939547909719223864664120431124924184655952149751010395132343256236706252724401030504299996640771014605005502079923015584743157653715476460815218652862392826334641320619497994330328764534320182960536599214876814600372033188997732671651436958243230156134719527599467164028865916150676766423593159971750598877102469068901309388932140036907087571265400144483635476721721761772083322352543856130772362760298210556991429339169175002890376271779455414043524172041335808330179821118924177569135096116415165400348563801306494993543217274058337637719300673185608608860121973324374050116387301828271434792782163505078265132536636147880226334850030829242092622337888272083575340643998735895169113978357869392054653034292967164537162470638177231346788908490769675129022329989726965943027344330387095756252188454004923265255519026737507056230426970915285601964173425344447677507880756056391482627043878800256084271792078992600113935315893299774407114682580525953804537610936330032520310600742382622072021355641267053972260629901539630203703504626611759507429927051314051358258472383475676950106355801108494118423780491262875018456440460417439082026632368231049676868700211498784895873787479857958634018331882789647026704800075283355471165924779860671315232157647613328062124861274751486303426650631462070669529384673074149540509214297321724366535125083618913223392102481207730004560782466158523110056444986894690646595693210158631873422353261901397488560939333124123096097926623910759113443066340859501472208587509733859368266378311330624441749746813862872288487397216870237609372712994093671802358411558699219599401463672257707680556788020993501612074245345806580067188548922103914579215529887520162826446369907319936934962220869714098191707842925166459706167033094433482964476009228527633238691003249917615317632825526905451343788533584774822871788983874366740959168478406982508961559079037810728366974695106094817517596021226879869903220080699463049008735199983786578154044994279267019494355473606607791968284400072503070505066192407602025862694179390278143386610240678182815794143862275786345904936726055139163088121394764307479053670527332572541182344882591724691684394330676529552413368276861901858339781084304234789447430915633006098128872900402924058823322625251095188393461312479807010413252635448415490021906510877094147649046640133679050639784938251637889739255578599825739764956881053651086200001640321013130851483116150463237301287087249243690057942430754724473523372227869261107384142114732851820435419971979138096488969721265494596160668717109107111059176488861720081005778596173043114754110009547850485925755067264031417578541803008329913329984036847288724736709935038349366186040852299238541541281350573258111241688025960754806344519813279097969375182598674861597975865164204164987888722387047614066756608159516407066502201183317276409256212828371330274319635859239013366182765722134700702346643860936506873280188295789637454738382878923416618196666427396212213960590543727899769724294436533282724566708265965518272129081262021059011900249234844623475464264228945341149490101735466803046577010415171851934197122679968506050660695639432864130768917969375595158542064625294687744103813752183878616685472306957157560028465123246552961191106390703571760735580363640793202557870891010879354109335388899844194914476135629424381037284790832292360200666498654237762115130278748259433304459254834496261659708471675038596179039743238932730962325046196218804033236929523718807106337139681659311329278125103976055423715545424984396313140590221120607104863710378280030721583674801883186664055083576561076272241309046584309637236296996536185844823650450903188880596725777323471490089413720196241703770729550650537696537760029792749426517983941810988425818340767564127355068174216944017527890279144584200305037369653445017261063394097542858142599866214321483137610407540098738441528376624822276666776077531452582849596741276127289184283250631362295546183085090915418016143686009655183896785880850564072908546301298883843788555113749890580526061290386781386910203213805898481439218454905584834820323399201037430101756263944922033326961619934041188465910443122726327048218466377401723076885308814807282852147505546700606787628536635295572731033967625104056793050180587010546879086809075201157510371982210151645774119172508672697197694430718893685891058545080317855092695985276432007254608236411007924385371754133327582656468426371088994012848367199591891619336882647571593843494063251336135847538236558976208875064581340765883314828600596226136565740695723339740166228715357214567539859092067688201151588254602386326636199681435702310558986325318577592640386598341748596799328497681583399011352367471434188711283497773158577815813105980883725333102949118276838580928468941512043087834757209772093169482805022113327464765860504886290754582505361988443918557288426861029672304975287464726841544422217688779757958344036089911596730233202011097653478392505332788605191345801628948823795524441759674614136795482025052179968975705257881395953985556924555936097485056041864316014102196601132768269478870821125120652228591074908015854177804428309759193302203430617305121425870851001443723612779449256435659160677635564245743413120092063693733804736328071509150354066234306483156029896131072899242462161200973154479996309560487548015856980651721916251084495604935404475120133206648894957542386440551317778828834680308763563737193601870469296760772773382857801537474986006484817788469514817777254068960489634327625264092000242635346337037182451554023664329172852862595444945198394905482804834760080707825822131531462769083073616429687171790975915079590339926203619602615017627981239483719863940802970692507824178443444395071351368320170626968424074605025121368856137368858161533682746938462437643132054396271733552207877988796615240349656186312745853358323518783308221218932145088125571554805604481582311347526847966569495862848334502586325722238221220780080856082462771250644396309037915115540221863789829002553965235460723316417177756642949337978732856377165774159254521536859442578470837302919297376516521473436621326919802649366151499926809612368422757407651948566908435204159419751942986822747320875728912212212167781215648369942092788239994416737279203934230366496319462769801559108658332050912364196559324107653068036058244321588847179940941565061384431111369884569707983707807836601338940112682640487830309814417068310907926748134799037266958162084084530420793134684698998494467533196994711891138406310388039669597008728958877008126548864274107030993030611867208135641486392873027657655199374219193824607961541249727708713987922229113546702113824931366932193944200882137836768785287857415714963977211076208140485816958504129444278496120788263293364452422667647265149452793871521273045170136264697682303859401172781636604299038804665301668723602191482825712337019397504683133702489921728584356186507121565200505269132482018506603829350978480653212828429915806192710712921503198960086952660556958563687413445556596910536036273201142180861185920181127745705287596150391676681493686934283812792117785017909818416509957291620711420497559542365737675315864690963367589219181420440286088253753964297290726436398889208008785272282634030928610036366555831784131488300253903760707558214893635641749041737248180292947101983352236799198136852156412910820032750522985767941693178865535793647690581983344476066890602145280292646072917073915831511708478307258522646517188103392874106865580876474873995490377940821021693932517347473627638278938288213069079904942127450644801175275732730233995046678700221757818010654375120364656374884840839653255549018954637503207691266893415304464283436288239578686606963993161331214958830842408055324764074339843425081990128719052385789172165840287942333454708044992725660716532800866647932822477169743399942702416724864160231821116942249577277427305753304045587094079299288213993691705334572041062611639254804314999874384058527449735504483729353567891683731319761410517017783721588235317119625681592357891587914453494136425621568418601710646449846333767233156786685483444517873455777708869069256240003134169786174157970916853279599968642943463426494031419879027071539263805215673592073657203938588267617312043478385862383764616133521702401006250008980410488712128990605305168263157332039665956210039063761984039942840258670287811218356508064547755648679643452898951321184336046757406847154004788529769685833625405938906309277379907288170978708893550736026072500769099464433662465439316215945834781169943777892826364689786268830450490823471120591673644912693322595504980001316244082907832826308484352059107632429689035062391918315088917941506115835951347003383160353831062712218778937883720134311554829496945834338207194817183701030230196616729538966222207235320256128604304015181414201883267746969297749084994588753708626779895549193016841803081414323419206095728440853733345713533599953881817999274387740269491709029956814487442578160634273801844950290395526824898266547603298743250893807730916845926572321825348131054281741784849944191082259381633728451519941172377581008640738295403826160429187487364111292807953973135034867029820601171905427268810064497971458694257482702496544027607305018634420707292377991724068116142835972491951901699940007074304089136656411157412389002421572384834822539280917518502452793815487208824182391245503793556227097409207198172265984215106377669584836451789526080761803852607163191249019494703311171023872619557600247385591239832251129923682645357004421746328572053303258685109841616546115604686839088172515076493278658681314443748913518321298391227938369690674594841827945072082175401414372455661179248976224684092760166883409887477132861061305104971492997809795056335893812553993094739224808003474896389539232874726572648766993023284647326305882120385516868396884794483475448023722844537643130524216698849927206599734323491920063070045839659125209531579291498737012352311155862666093708136280364751178633607081047393922708474658247502885820030415792398364256623043926979693857392119435080344048432749396892619622688745781529829343440621398426477057607614525677667942327752613414262494213597466309096219947463928008501709714300992264114121793519504989804252902724625049716515106377707742320128823720360841610860267015372883724908564837558667914687273463021400055784371441869261439910529011697369453979745621016611812958265877633920205195194365657803533266969962958542090754639645805119768249240987417816066801823347881648643062309503276943283129424384668746586105670145185928630147656709175087139360255736881328584151263190988292580975429886148142371766811304664100631676057368018179924316316721263927883454557316996453639665702246362055530838604606662471880421482672388906201923418552719767906975248194467841548475188525996017208052423837197050629517527591222366469710389025831384617341777695086409738124677778031671375609775123109699891891176075107079244740225530450504272105744316687705478713740484763861509617162110786490488106418387074354996660643380714581609967723729902153884994511647300395336214528946412206899659751860072523300564028970585650066237281836811022371766551101693272552129783061996029128277124404503901569298480829458174680189948523674909144165835670436906467480690973876905110444988197807422399778213333048760195999135750324039339829467387889765548163610887805252913750990099632638639456489767417024885359726587728340009415780246951490014080048573532805848896200039039170510576377344564254157890599034080219999799652785695116695547057958586671617205997796882515298050057870162177840200400356615823613571044080001904770607756026923699458487401356660151960346832512809650201759186398125708726192923533448468060495485502512593897933377740250925914499173011572393621986698671328247526375812237327239943381292710845513095903042756898470674074689017783892200168451979729511219488469650771263700583191430551634493807003909160703711610936191488346716680916879682715307877591417228675534980636782134659982627198725124837405648531580663641228225952220939855333503481991201989358192154361571936381092702540612152835633545365173147497392089312112144709961684101848164963769793936957015618832573767042667559052314392404543942784133649643221198644835217116633181306487667571393726549285564186693100717840256907846499439137454557737753175233526312662232479447687614696223842064896395563494996858364916773486133354879535051306100878064353545699035636716574799443730460112402060218272681704289927021740398892371375640241666574401309517506762707794254286390543701794768303354433620664824952365061699318796090750528170911377587938651081693615318679937833788530391248873639172002980994146354070113444265747140976917839533699224735110262417964636012456325202331024420603037301734689594094467457382669988482175167260386905755728238415866085498842232163883528257393412273087189527643154795675504077768930981218924389417340725338594632140922042464704178390738677113194451479634354539435506683369737252593845789838202293793510068088862486070841466447810351871737154503703356750757027314092614154701870256492136200085244314928518462068809221115592539211948725615947397742215826352849980684578553697749197399852261036134626810684008020084664237935123718645932909590943585731228122519179063483340274461884835877126912130263011171884874525730756281441667932610402699235385923728689335511797484664254832423048487179923511753001753108884919463499769625620935679666337576483289007814707008467374913699016604496931062691545254830368969367662039021007160421231311884598603084538417851969284635151577949282900463766184530052416520005008013783757433038494565401104812081006125611003578377672008154027997255723597109824851401966076303682402566452704129474774140367912067131641762081063614819288325691801727124699049236339930021999458164142931565641888679104437758233516946231650466698787884988049535880955094224756008805126058889755622090572045013416361765243918550399954003195771872868169582525096405656696729494607690586805481070251632184775724834072915493299894042758723643669681375294857685202132559947424701932104613517788216827500551763792325444367726336046678070400481108658686071948756655781972443158103294435749608130813844610869097136667828190580234259691022833459355704291671864891917269492138343156299499358500481218167254777514064928091378790394772904859441226454807843651795510056160823452651792185318648396012513683217684837166972982710421204136006360122664511271849784161318628680964280795484114678472010143011055322015556930751078445962074215317724896022004983139635284643348921320870455480930233873927113986547724798900960257446368649243918002034645202054373183294594478618351635289344474479701872225551167718936583016813954803455991097311556605835704010379869552514327078951798432017724290082604099720004377502253106922343917742670852443354450740682931880555235849470997443568744142165639948327809331216903913202899271416635223695162835393863457723822675046824993091571513136121925809351453809625378497664735918802203061370798972349277287697480875975272548576348681866396693367587807696039546189516152683309286972889123252333172149449162638991989530104888327654755378514052612110116369911588386569825218995786506503663232612748207975332669889308377970327963796460028367096292600274522823554961118397315413930840515403943620781459938531379584010848866869592878502848125705224673765915232452026188839244459369962260863902494109541217443914525743741208892718700300862007934392811289430977959023891620796448743314276941284762561219136072272806389257180574645939982184973361985024757642027505565777036071156320598346605603404605549564059433540395743520999588108103733008215837059762013667148121384758179181413806980643050434580467590017599239902885090545319428738500899031853451075679396745973530338443945603459317465212642955756980937775453363954633873118035943669184157519200999801942094649514851073629377171079922182166815578965939311214888257357761366976680291537046695659760142291107847368112113463368115391086517444725841279028065567060958333004366268082344774962197349270802578675988223235475562244911195844746554661646971194494747587313083605824729697270885762214402319336473874340296698801793458002100576690827740394420459956333176580705822889923963143073444314404470278687646281873632637673437790328017628570087749109918964398421495884310885852407031646992585361277017339099500312096103293738812915862554596272627396412820410658627909735636407236195660920433212533948157448871730449079826794855165904516384758276186760893299486510249338629549818722411015749994629078126347213652857921901506230743599113529885725687593215559205732820701095308973621048594038175486759228685766836780854657661403599327063712834307438113598790353125658857507251797158091506225688505231589045049253611399452405990993576195662123811234442987533716645755374924323996134324985102225331319737236852487724108288594344451781443404927952147224453112091312137732594469279961902989586928730317267897146379492499212247324113628437998446589339603100274184707155923106590360271470326320692295248229885918181244094476988119661917105526680307721547542256338958140781238024052993940772095292876201321662967157412209862065730872181725252898987496535909338174889545466523958636138816647181239212792122208707990574478383092508149491691550916231869251164869896090773260472658950586553016355598270702985113250558963737419797063767174144909043197110174866068586223730658217845352619250216942422203568114588334204659483671333356618554822398007088961123955108991050466187663775550872627967201945609121658571271441473334627850408697496832770232546632517217494841349553831986876999471492863847877056059943554153379203034900647212558967376374566696473980370136533040446983993713510054798021015640281291502032148525377632070184346155028713212231479954845636435337329694127947436133532694299495874626779131223769154462302157569536193165646657425470638912274036297351382844080696698414853635866230631769465497246757387428028125533904507625623810600815405111598074546750074121078038130582693455819741535104852363200038807267028536632263161113331095492945348520340238865383465580788399888659837927853899315376832849331510034957365523530169740033137102752729265995475784557475053190322761038587331786728695759830039556406953509119239513096347091715885053372223526951157992831278770380783252649871625634370860400827441664150443976448999454721837522133504516399863411347056760612510396117001815767095525638880158923738891645112768601157732878616029143623515561600014074932629121074506017294616790504705428742232273436471563467840781265270777778332785161158000791024941127854408883962322781811499989963984865278765657847075420954844190046786484088875293557137953962387553476305189401303393161036813934080679986174220476621374175211905661033521664891644482647410509593398197357520415354141450942353158422956609972950056675984395003842643857257873870456263334845930028110543460788395952902725238384410669807285235588222880969892293588413995549400452530205197029803830357341715486418346658461564161854404562340986096189908060114003836939864237425590953756254957001704334248947047575010421264928210548034747103489688516803163165238639842616395440249639693255356087562788320406939124012002526895759744763903151008192367553836532390522484779140162709887279924198956025624000157020616533882333161697787258989059526052645043689164092235380769203233453787587385745038201207307591716059875592923343244596406827729778402161412147629847429937108525265747204194424034860587108025357671739032199234685268586851571663900521841552966249132007326875418559707411818799215303166586600896242582532090055812143160521827857430332995734141225230040562429819343589643807990040777446504065393884566499166730479137798781374408421689764559482832783737825136660177906805646094507612047271464070536950002688666734913191612119220109637685904225586763557502173054635319352840292649597159433244282535393737334607020466919939424499401500094436327176952893722396339176379765816754757212334666256360117040126161401360771229071736253893543440839171166368796541376202332962838633504898993550749800713845203754403940540125470923866049475560956070675661631613792042173488984833062278263716265709120812498599191823276277791950052163479552961108199776469750723616960146784205440374025874749382557025734889005676290376130054479534456245368269979868451426212542938838102775644210183591340680018520550572936900772810000363038493679098465976133716983033772784427430160136348281084970248409048245821527537573546833024527862073165263163265517155507522921947730869310190454067280901564554977459536780646324566334578851515884368418335114616196384217402101803376221097739872761010038500149269851238550043433148486025076837664335563840432844225451235282216725181624633998620189245899910403967165502371086777369636609863677648511967339154173607974897596742213977120140288843051519795639564265553010917962786684928560279183752818403068570168687930031094414856139737415580351528942164198291429273856691996065365720475630898957733905922670303476732917077403280383273343758814721113614532745322681067703266727141372336941013901223115281224337002980005059282118536688059616331574173223550887459077275574049079621455543252008528000630783706763477571109731163333594731261407678520410145175581954595477193644804903450284848654730794707080834041379114065963608519688435263602314803785849258050253340292238982200635115280790870352545805698983628153241656716241283909629995976256112702788666385916801948429459908100955031735980797723287188711092651972024689189747455075799795819828230034560997660255058408503826324408771984309665283550472565084044446727014343350197879260715228223009567308426441394800072055298317727175045360461920148131414234262331652698859184646154836382680634857152695208697172548054868458747234711723357935127801131220805940228518480639296065113621778437260162286749729051558814454575980397106161533197395587918553199605332371919597595530270039679434143165267908182332543668130542734980082342065656120443434554963386503205549765044069082386148953989734942088815226278029397311865309957436387031678903142032818284073539461946948159154338987462827757776352575307952932461742110344574829209554026362236615277918086825536370636458890484366644221454374458295852217839047704567352573190871594001998467461063587637838510500846031288008612726454464580131366026599775460708746957345045212824573765185713265920240956331187353417990530000116114323440074109681646910953969036361734456125742684929818002133769041295579060428041840917545957216201843128409551053526620686637072248450373519097638769162386281422638904421552747338122686837150512791936709169110573013781131843450751094574066721161358359455147037760110775086805183483943480364112071899177961254132662292449948056780409597723378191174244008039699098123064981877873718355884314653474301255850509686232896412121290702701704454920185854530748384193210820394630202681080042028469631306414886529603346062392582623903680113873215432475384425401812785500657253820660957124379176411420976758611340612897911585605074526148753188095368557485780297735341275237787221361550745546530561131786839465171408609219639845755346639691991020340483258350347303316693341965716897490175987971793850341334225930818341599328333426569016484203980981741937268866796361445312464102087305395908401100722907974356071205429504533811116524404762785672733160032085484119186421694666093734628702197711749647301083625735085916863417726795992325508009573783092039970191825945978292894050735481162569094194663616257799720965466824728118984133923637638055862610428867132550258018632317238826700850284366434547209108680708755057789857357763410933894647555960142746386591753211717853458958866673630980902228888691632731402565676480044986783247380283019889917281451325258585038905732110022986826081678015576079277011553170515046776697892658684539274720576987218459412374511155284338130541747970166209552413211589963287168388713183028228999371428663726629821263997049407975315895986504688397914806322981070122274249440593759255024590861555984205878331325508290150557532519023934566551453972836478025765718429598805968707968114891006346720221968147611115216250164049491423127179961632697176136854386629427731383660474761370094207169998797724814620390448471487409599395726888886477550260197024751233616153698822037568661825531343660191206656896797368118040975945629004402943514557089561903221066757330897028830446662323689723550086521011966174760980209633356076163068096031845490503219324659260473436252243285572727986869804353635020032890697992687840756409307583918845597336352854484727634429573336375973984799706565548737265811416656035658338047223413677775763417763093434875430613440544059547480712133436210934281593210019657321732907180909671423020880639017534025381526917325340397408437449734851959648335306967766783159763205126914094779103777067071000327867896587572236339659776121350490861333338487545033876473533718366961524605167258958479354584026290465662183779251207187448649261019667260253216849703384885311653656413846936924824294259926202520016275793803179097807410691578747348376225198044781117045611811980943202903795261606745787840263592689489203172162808524676628645134746297307018914788012908095808103491431615666979079736923925415491896863760901935093910362508930511089953196004037840448579831238511532826081044911034530632454267272992341127608362118936862467896901124660290209871762719348766443360605295997664472725792954146042999231834369815996362542104423732849048929517301927784709098273288967268479060296039334852059519003937388339390928264182837794293253670550525197243291293341738764663748410390267239009342299203959637663685916248249290686506498001040906534870621319822324473258964863299875036777013709874148349258018245479101471403826328248858405338145653494841918643439292013354583517146663341718582973279609469912568443281576710479068039665358749668367626726792281187940311619640593872863267075445812645648433247128458073150033960217648329337763048985837939711758488211060781582635163493226812588130721073248794931653032652140186304410772281337464584182145478451997270947448591616618782766760261584595635447627456060979209799902832015113676716717583128352033950883903905185098163341963341030530363330709922648046718310738462696285208476093068622251832516892039462591593253110325327175622396619981692802781559210246186398976528003432248984132666679587734208360100815229667266183776872403773996191820235538120604747583576793320555055462328456818689643196598535715445774911495095832367151767966244999146745369629913166211271205422632751846830158861415794477490049290032657979000827320565965004696374021512408597258445014063220776009169650737045496885914422301419909687173599500299298832960041883407638260717984179547325142080519970125741541984345130253401776035696663866564109215669062949029918966724252454370485505378917541444359154191973648925514596291533536000493271960140862408454618380661877381039342195553168253376180978352314846993833443166309340532370759110111293898043327713085184856404442039577561779260651130670131269231078533708295448642646502366007638852469154089798206729887050573398487510641650852905474064767068676837859641897749579522308257653327125649494830089480921742989444235908312947238769412325473555113884931991304083601920559227139449110781211697651233433387831928590897165844181303148249695653147796433427418318699644800091331448963978629755412106478600585841148655766339849750791574351298598617750778451750881370652353984205330565601898731587291271122332307613346106163246508121504528461778064422799569513473109886000981743017815414856048600902852113339365662731822374070734643552702362811802510399419712163643814774408468154534384022464878953239092626917709674546176967369712804286582222392780949764260174653391634346078758893788649243919829921938058535701818751359611788821844688381387836383787244436802270230915252748881879506458557249330472847112751809555356144643278053124822033225930686772784464876318476106721594016275161417023159680056457319953528917523821342430091432952731073677731573062938725183909742808491591728095703601449599509019202836546187285120137808916032448278646233226690282938350585410332096626107969359397297237560462279503451812850251141497181126073921285920351170054428871973025669780490864712240307723374058390558926841963535352602103111121464489355063503854056375296750945084906470357671757515230780624818916182496283561556339166651830669854822364404367401473020746949893915581439661349515756791172588515945519791429345431985980135532874831606046872862960836356718812080869976075719764363041100256500324624033090866543788030845058250643778717788020726909270087686912015681972965833021145914729445591645509037523589364247981308674133084930307017066934648388469775241632719028077044014909284013505807546403032663428785322501211483307656111539837565612636610557037990111074215688885070669641608403424721251003341669279538681394275396278707550541294683683586033276062624577083267503413021335792751161619848503919168508804328533566884184010893802865519365880410122043827886728126825646757323596895003650303362848521703416398944754149920109752676916793771634527720091672192969052522250369620945001899813847299814369824676906884716451436421815966274266774571871415925025365971971028460729469555630030384750825297909505411993460129804969062858224922924402616504271677775122659777270758570710750478021882331523422239063463513747793020265733142657107425204999764538828748702290071480393462969886102746272439538604058735872196945717057817955723761932129360453826766756643249649610520505876292193122381556717533365656395579014460389550027576895849871172232599567697137175059798977233170178950863202312770080727660119037722140864328068194949428656771886941005659267715647431715145316017203629396699135270609753041203252208241844652013831552437929205903783706058155924748778438894959577888214928111176814688041318843486477894830203876326353229068283334415040296899027796027239933116735319767962634109225431305961268484017084856482959801048189031677471846904176898179502853546617714518321686744143948153440874125811687334019848750742009562739775132192076720569002774810199001645348991409728905697257988759494484607566708606522097851333732668131543457232349198454857783579875828284187204157632962942071610978356280706036315205063762418791796165463821579781627143295390869533253676186354361471864848115225598258716607202128279149482505547514328915410635486530642039110130591277492333226343085684264189588899067090841651215349715727522292564629560118923915254944142581944032652024029074741206300053408516602145777043717660201524073348730084166146159657755790421750782056268252314405457926976003726171751659543996076689954953962672970910168379051479733697883381711609352235715023997600281311722332633704104641783946151892550639213514871681218031682814548579850163801964340548507596820597361235468387109540361680377391879226052007786828696322163589150819831199875685851610363942024390818744701184855054833667370727009803687624483475214937126345340664935955850320565416563865235266280148321311368837335143611623335867379974414532186498361661765008808785979928141559767530106756645410669052497796578956055527333237275866870149930916187401047246948158834005888111826058815526631379924431253573173645853563060611002065071940820886826436657781207472473390321871601647042801163107138994001147440378526785899966975705241811754198511133498553704780230210368602733612938041829167460525963353103486129947401067181684968149823503759921195569508742006796160362775096679985366238322964610642058656451376375460422066294378746179409449388127979073670732194635794459497940310984845722800387922690828081304914109283107610723692409889205691070301583085486089738691030353004371655548697811752338710980984212558380418793473721535666149770731318174697870843394056497782242340155409369906710694839137591900787778625248056276553363469120865882658700538077895214624646031823707258501877987506905224296542957636441566557755086883884557572485454662357857117579103694019504706735161640358182772473738841970210110294301333828582691096636077319325708026820952312078865407735710976591149712140203256111728115181523138665475500110587973842892987972705827876580727415969552113279120181527306570879626333627512176900636257464004518274120661293152978015176501277873352930070858758294416732525323655375450884447840435321212434841117795270494843700420743212980803043912063730116999193294030785792809578410331775774387787270935789545889790396823501569714058527806327425096788155941436427656560792232501883820255890993550409158628476282123227173736566922698233060116616689751306086470925599146549262788066160273197242120751230989967726090927087244415926982251273762213916481091771320109835731262987414391425251536136806994711822910476713768079037456244789377510372593261161830124340787052577862345238956599402450732892533296827662443901888143149865285086302777515501781562341541517760936706586229308735614546515409943898397879253537359161452086079803178642859431820273182356173851904186352186501517672618970105673227722059795074868015679378916903349823149384560628057995681904248882629872387560722716222502577960406423261731220398301792609785721311515922015349474418456497058211481211362749926041508215489996408714028669045760817128814149034863320990876072307700085160632049217056327670476314766242141099440526729540332595904897553415032606503287003036583229074210897529534439390607211042518503198600878362745909966991236799549909264192294554444186773417531649356292683374711851921670338631532453303667041906227212989848513128793762695413614641439637311838842637030468065160566640480119707634628455337982566968388284754864534986662548921506969116751830053537081124117173167533543533327330803367393236752733519269050662330760171860050787939153802466496369153249711585543099478932435224663154710895923509275368107275184195816628225762272806617126019243593346644860815836427586059685125832534842394016250106295663601092717518424331916472669817002668943560683207764308412083685364931566093525135123490004383572290980274942235411272969112950505942572824724140680298107086979141905300524571285157592025373019291342991882506644232580918813964515652494216702433494179354614065333653165689370625993593404559514698811589780790896346779812752517183743987141318195685184906421758949017568916136999532819504937563730646831715845910286997548787181447081308281004408994402441623182058914021612775716738253326383499891997826261268189681784647781811334130971913124027501854037659625250658588447656301924060426411058330042731244052630991174171534267760125346153412132043762001167150101465597975161863755481070810304487762426523220879754362189862835475730879728434660991293651906979836260932896914115558371026460850875209483642700744828490020351652151763956866948317123187799115454381638256556138415477580964439829879386308222071252686151224243924462053207457306293990072142110278058919515251781461180716384099797915375689772192591976422949538669759490052141079491772627294823781379096158801556616431728240933931421207983357268482732583198163808074329162128508940148073369057637879169971996356416338578798128195740322577699727557187470504100633791260370997618860924695656694706623310952055701502286103831098550193999953035461709895713090721199756890695642623212526884493309256599503592030151297601650430292826502727488859469220756095672537170638080552342804216236688201885896943901460969353136807426387352965597345962969959797926401062407469644939906637170755647038603895977689546320250033103441509919884692398171873507376455203240179915518820535955553951546597450030242642365100797201455304106249052389332568318036610488012231615513875535055182814835072829763279713776382364178497210327624314518074750589429901592250888113111874819725133707444122498950828307132956347660491384269742663547297335018939972775372865955928992559410267322316270353014642648623194201218361366138133338066926024995025955446452816880880218247976774803495896909713549966953829581899298886821395789332028530182889744727442233467069892447555847685780832607452370248867076346723047304314233539272040976382784183724547076559546561234780324924286790113999503777555961781469119064989981747989343206443240138577931767825083012724767788846703859174582921786727958764454437460420203408393359898980253611603922490431307362952119331034274990534896484473690084432413718774854652119581469637213572880823806283340084705695986132282305994122733588316595650388697774271676698410007659757388034968642847797186344818199421733189151034977128272701319771287496910536863497355015885909792869568274608892332924061034751169476451111317177969124558085461583976066598873709481216710286668509354710994443903973980872577727816431614843592526697509056155231060469939112332531276287557142950439946334409907850671818092749872879201320029109268260329790287119702234098454638099006171286162117911776950481133170918064678590657415722614438469945045045942741995713336505806089465615273641105359768551338820052465360254306195996554840723859666756535954241115245086992194498841664561148502624464080335126620426622385416073685089427053049468269058787302086527519937944853132204607440658404772100396199693506173275787665644803198593911336376833476164223821072113464870823499090878124155613822277789836831541363787175915920395844111328024975586128953785158158365513387439144629969158241139958891371494768124693032297282522651447208556027104669597750706568182747133417359270718168896210402102425135332217558505655828961375363438732591617786887344420918553045885303450738832293524548966363365138884434790587239612139300038395111369592233940578993877274899066134992310658116964393324643578070246779073527831302029678811013205281209158070908995514406916126138966287777650233226780844858418105602161551987941991958232947186609870300993286165766445389769599614272473669732860938127894461226716040058021047171551380712527115069122836981267239683610774066587756979504141938910472169775807223702981189018076039006538944614039987617417941206517998890136485606888125227244289730336352554117770985006416655818862204037711148790215295411522755753022552810145271323375090171378068186393832007097917207581704504238556547191653607984414758998139294117152929979244699795566746590868585348437681741879194441380855641237485100462753270533603080063226154543402285741351937486173370498763463556300182789053930719111137325991815716808252817425954191608104507712590857290375512113756636165998113287924979476069000799120639493063289814346019662191637913220422250440193315862795903231363990205507867424630975878504323783040519277958381524783401006741883504074735822146718012292929355772446324868672086070159684711128915202231354731621172382213905379806748868558780106671450341593455470004880756502543216497665950024856793929491428181694923853093576423226809210014737942493425730047089205947824698572583697958881444867429090140422770601513957904462919228509352900228716036841832770441325833565633045079663249078785257532112208486999778663119580651724982634903401175970859601202074815730052927845880932412327154515402508301658167236284451894395532809509976657593381389903349646900343836208999481442084717606508952211166908868559642148574631622708075242557184292061752919969488242757345748951595440464214255851800444637657597244159359979642240643794877096144137213807769813121861719580935899319773668970690496136051633529753135319677617556798188496028435922370823560679611938813760979709079349663538045311412416272850989181742294936300706439101677058127292948007629596747655718553663862439569933723279568521975143523582855219071918259785483766763780255614250298135179405831528787529054896683087856670415813539509550734624948922733483812241781586100132156805500160672535245238382548224991703864841998607193107795933473289033180229179420526921171597886360942092086423984411818726937668404974020742003403545365484614396750146635357968672734140389840147595179884972934519840875581067890843135147786588436721355797012990053308902762877279023298486209611208486322343362832270070478864534312651606285523030464015074076924705547211072076882285237649392082146515200935607433385089564866889414389919550249005932363234052852291293072819331037793601869558648021978706924990258334335172611963002423140650823646648498635027496762116887278342573368449735877788509116799784099979091613818049954043667517651450867687340167361332262908059550870643078533332555503134951396532210036509163407872284494521972841800785487298091328383012048231946947339878482813565392284710189392088109269633633708887278297292443575006751468350791801835407795293803739125280540028651606010171580435362432115938126101247549791668791233538482833400232026864530894693523316904420021197580393842230950351057579411196064413413639941966267838657463380208920839638239391433718580184747276891800568113923001713374209654406791863327158167438087538446188399966960213780494391432808521348596501920037634621985368420331885617440903330647177510567359309757472227498662579745056602635655714616958588284420725709312122864197996748626729239506628231604978641474703523613289821058500839480743843808441996209561788329316633885861888517004876574084588426452700505048057671806834604107812946348634886756766868602394012473820888563940123850637188789904402190188895017869045753959069060924190484297682468163910006750755311389752628707946777429735348181932120200199380411917390355672140018800985435804085014031696094355194881561523258944120248334491747028752234239365587271513376173352913818536080992859051724451623930788984814246047783891143593406642868443950176027350558821680454255108934278933878159248664840544720122190499330862183208560106997186240150160558858527200384538444285809942206279467157145162654158120240541761212628952641852275978938782429171757178531518573767081108723165169587207316233396886355275589388200082351315010300693434276507921266177829095666257897258399111835208255972883823190066223117111981594982478126389390159421132487729121182725250420110996200968350133559525653517617218083016983097270440022692111421095968635134461652600325947580595976743376289841481054452064255668420925504680235441793348276785429930435173106164881150200936970612465324683118908649148783900813211474132429719535578794223645118115152285764636970828660344161516100651266103389471522815063514022773887320671647396651248795991024849119496015541006788805100231970885198906854073324267283191749893995844723237503375605658152126414156062715949010660920075122692339846414104391464203556882219148276669231274704002174320207256974657750975490225503596152882359636852433019042929413657175873173429744254189890728958124731993817811960114848688801169520481555122117358776506836327124168816573166475665932635136361134951347459248483831076072862465348966665661112633147912259015648273296577866817111024444461582532368574468965176495516133441108594860593279152799318043119536760196331204685419416436305951510263266208734663226545482687461232329504815009301012707213213319866107222516314265151058087346851950112526920703678302996431927775499847471890414539931217714544122251946669608287114899450107923493808302617428891428483775914432270523925701833199803941056053991680136939276445415010103999841666129892657280431597672333903112914206731945398820464124866268516402659574799803893582273821325983693075519098001540026763472658774129864757459134463456952433595927232062605383646507611266566200692707141540582615920316044561949374143666311868466409899198679579407388235536911346159348303526090383150955345427472764135351621915565466079740584904435993727984232626097186225113758840512488169776243964185501691891234773789472660725825267236473498306232729069459563810775971116212850462569742650433816443910139354056200986436607618351827278212997823723050607189269685942801981501963656284576421610179067392170403294686050011959944255396163491354235408884148975251979712445406756541574816039586899917073782634581855536425828097037422799602561084274177692983744127648241460138177606794792504466180113889288944693440842027088390799821680075909484241750102107450875263103173893880675727327934667301398778354428725661813632900206587041687897168458817311259857018778841802948342077117154084553589467090608888794453956237935437426169815884065544039446293878099672744048627681536566067596063503329636971792693008160103668875374202854380438648463813466616014949580461586114271980083418598273090798136360917537738171566976396117451035634127066137949840252650858930472095699866414035406980281214080466522888218125792434211955822902595190424571648882816240314943038529489857288116485054128896471424730401988538524540704757101952504421540408538721212908943850253192135386971925755189478728430410573998847462878817752304709515602516595289039964289088884828863977843680683016298587286179876084765193540101086241869474674621055182478150799184535452387591488854897628301434787573160825623424730254971858871706455140439454961190607450465451978825246972631270519766828331139746085144730610493356112202155570935686309426681614353926188057168096551736703109033397713155394114493278356317208666257172585523478191975872345213952932390699872964007795214564608478489574101548324281196432649491337296695204506027738896963546178761777343790192783513772534970291045459095062136098277399283866928199207283112289847192248707264524676156676593054524426676132793288776188774031316345731000401062031555855987655858339026047110499176073031480666770448382421828557879746999808536394640408655836740283099640633568083204412171887096606543662244035144237452720668275576748751190706773656274852127151698777096854619356984170042112121604308980715322248167837360675649775277868675415128292086301820339504818734880138400637722659019443611935074035394354610063069767973844713225709700938017517277815866589504307085086371549212726962273744750258127019940810222917329184185385229257147941164007603649792338619163409819643204142155700796404413899580011350154622439144119685058691728612308464198416904138635361852576547837043872997392523977053899736814414827396200591730293911207233010833534955956524176419199234707675335227809717705729377945884474411805649241832501914243904938646063779392826269942896200168764483318988641835629387325660291115069468909699423507919231190395111440096919529616122918527465047570121630176249166713196040223916787668515740550403196516819995569314592490203405133363888745549202932846232330276136285284727629486973010663040124833381574289052106919863644797932586303531479727803318786122616740610082787179635734218223029264373024918688280625901878707606116922645425230576491179919971502904977969807706993529033409082398344504930884470530705507049618267798161484079396521966134327702827996491740445835915554001235717422681468948018086399010729428428572239399311189766838520662712390908875737115695336253665632226452203565329037416743683253087200192706135283481898781794588695576639891469042084576898647925024722301470392936764014315671884488392865093117313221796216153936835242951207544954463988668557203542339774818401591063098344089874934396099639792659585336072919129041175439045069710625564681312088203679182732955556638187814971475646347383880217237653121568843634308374961591488001913575171403561953559872857054074699065547354687189923020795378198226801579165314026194058985580653777397374396173830481353871835172279781245073698658958140564082815375835018993625883755227366272453245435465140877693478459326726392151338218353802066968048247596270677240323403894860229143900791861633431327775088899889476854483324268448327471898596931930819013727916694574332859342876051102755752312228065058222743566543613859619790338378851005956816194147556888330096850018022992893267872646242012008741733444972183362893399375286681574856522950240858386522918913548423107959716706843048147095930584217659702127498650513728164619899974491162727649740187277784320426834263125117608146281112696452549324863885136729594913117335643161167010179068231952242166791658441315078901187157654762651611650036120566031480023079888861319774015143550588675737437773604731267818191430151900743371722149745179611907655386253570566551271491938092412344091608040723370607916667515891289608426047792988717181874782132779256439633371489176344253915787580995757186363195034500894295815772812709947667654652700745230227328199637426301466075650577923764790867289227493773634110740067088018528911089490154316548075108378071742361076128282174263363103449756939041249569212571694460052885844644665107659481004468784717890632878688719046759774628309359345081184051155541448558249887478412369463630527405523945719528439728368340785056938196770177714169833312382627407415445000334243616720803204187758821877848300558917846740668207855559065219606793480511529829411640291741044004404930713758036942197481713032681878199992745807868115871770039770227117069888836155479119541001917671968625524537222331313855466430864772282185338238197066775710261988420418371392564248286323133976942056156636471366577895844946006122627116428947823502851124178579693876881816524493287878977231076741595308801055360006833349356070057152780593791614144331909371535145932512228889420903533390147469820494371714557468938607836234168236847281710973546998980852937831405903442634399595822807640459045996078455416743776583597213326147101292373982316101453588749163174768601314610069399473471967570516078701543935146119099058855697975013404089124344183955868022628202040204289428017014320136309765350609394921220424564112522535324078284933039876477221805056547343774314957621284005263095294875759135145384774460286489269310018422268938944741595872594082084680827452514487922509460710323107478788815648864258086860272389584194800934629665830984448188204598207235298392957765088385910345508862952045239237459422496769116186470033981516128503252391327310189470588078201860872244901356999288076903608604367367378763979887412373628497259387417038809572392786979148685392927536728509060281169333833479870434856591910226048837658588365317136772117547019976634891324124893917815201921945762155576594437180121428920564606507126496367559212140972955750362605231716351037305941824448053191547653195629368885194150894513276502964771214760920905027280577318191551488491818297740172243503566953844266977832909886771537779909504446630684918991404507285038941606448251303868777815259336923526352279186658530238827237677315304619890248210069417272965394753231862950408641171656635264580781447745723954236790784372261021480930046215195074043066532449765628822720593531667161969138884491322616614016230308435187758546405620488361177777911021976844102703785920963508264575889625465325027384185528742978866511032530136718766603162412101421296528268949690563883381996984381537981510636137891572727489410903902268473666113822914201177351613709869103865843346516455532399028078347212845132948710983881228170516176026659290187954493964212541038903699225488258619758955656655890741483579925288667085720913073708460747536717558200033436605044356390796810229642588079509700620700891410204958736862457836537262344371973097007138299908699023707263439901013663226888491816149531368312112801098884262905656447972446351366760852512405577921151792838998652116019018868579721805260597343230318347015690609372412353075618008238799506060864690790042897730385741843758861686508717803884495318483483946864876485616963817084807449302678718234092961326914438019371996696110131898972588682060556634644352737903590660041244514753873647687286077258374731433933722913291071928904024199186422959978863439321313080981942535457201474025166762827029976322276586254756124432969264687766245008454007138102493976342803477796958137126252923047911408051773621129203173206388242817226139541438920393317990326337351611151789864623241931843151057518923939464372233532466715590752282729307563319056719873800750958514936992497492238603381110030153305202280825977535548665264446112829414159615002507542074769221903722274762578507613903173006132245733411627587591391839476697955190838389799096131902626013924633401366988614264515294631178216868629010916603982330797267026072980884204863763667946364713463976627569280403724545887022551549006970651721118698942632882487184240394464708706433515162089186884034913350365446365944247633389763589515976831135194233651000850777448075931041481867399837964511960055459124535166714852485567053918547927832845033704374223942457323980076874322482085038266190972880701840211351981670074424516758927436859888592237670606950227511378913579512204284611942183399108062092538827015896498699826060706027877531665892180899488635559887713340538195628220359201746228385140869609020487450823996765649453666816128240817311281531667954558882719471235713664235729785280569765943095149240997088950060822996301168247416670646473242164872687733393628647454243866601184078306206951093876143146053123807505021170443493095264557087549333866277921884267308568931366539449637019002114652540321815698741679952180669193920336403427787986027729611385582724465636905387167590399552663314986627371437180608148261446907605874692404061157729955085100698369611124042214498251971803012438794203656220463482021386772647275886456820704551497210078692760320412534077144197023170504782226672613222632042729227806121641450359106814126659127193162562702348049365932815287731276429986224593130772833426986081666962779680124589722108937726046223394909450699634586364211671249490639578098185765868722522713674862091410656784989142913259757096438070404672914315535820630203598407642986114673273113881575553952944388825296777013315422405069140134938340218784483845940509794482177060145876793241404008032011980003086638794159897707135889882012080395550598385643129727562347778097901013533908308555885840740167445057563625867894850876897926714345714390781045948041999434562605626991278267756518820323836111835572194908436783625977668952092911441297985154202664616999702276378849852268408868768986756795832108996040837508139351804431238346212012231374870888870845122307481592033938349243028403183811493309213250346386918313485199946326988759502895879937720534554657464956320207486164140890400585665587330250884810324577020527474336463442108664379004989626489984476431744484802407338357495348520972226694389317035070893663427678352729967331821692487977358093014239641964383946962944579525382326113147749765195713154193473507722068216993337158639778751525845642633953690229608252468192473313757007860504414618304078429314340730312007906059028646442570033742404039817651042499579551536034126771667966191897122401325433721796551963916729594967023486034456861243987687780171996613427776611062337672908610000939773781310739358289291661405211438524987394644542589516773341161374607865257889828679789988213066460413834884086250679833735860114798259374690208430672151573875341131068799787081095488549626422310622391448747037738598971802891566258966585290350595343437485333258325869306667589754036032088955866305856349695359536933630228934796682066986766821087118217570645256106435541599473710779803294262623213763012645957778127557331105724955256780205054671008676191804927449298611136886558103650790379940124113281127854826020868195076221561907268403667395721666511615893994721243270474122760689172999041069553235209562069433606616501616935990756745540596915736043501357087444830986137253463751063379082661196873433143323128446289176551730344553366928713939224498617147442267866803135190374186704355767742600604216178678415646580938898245476601249416647117897721247265959512433571172091302968605575089887063322356536282428305932148673508691196334297383599239459815121817296656088407437086503510937011966873585316888797039767945337701914519221152490049105009684621314082257922186298806356391013328936175739075485157876579239220630356530230712299630470888451750573683419572149196716309598516601804098973569158392050338969118346563036255365011656934902448793144077758413027499587938069263864659586604064656035801582404299106570360966824473699516919950529650273496150837201611271775577516324845057147365697857386870168885856831379835173414880693252274613955463949773939606893075865997626978703982104624122633690415448648441752797605109850776980124563654452996177551818391915868155150452939412337799462937831771021666277213957225164042897235387572660023683799136539350278186580383529778715884192634648575784946244827932906829231493414324598777992937699688450226360611996527050140351078892112634079827664023171095901919869429150816887508543499103276014352068085589762125751297948045801606046951183755590851401486950449305529157787405291687433040756016835962412847379580389385214109493609217846125476633033875754448902477696671076481365969764034664002556349039790086723033737317746729690822914272490287831381062287816590785730705837099607856522842638678522545078086178866553556800036460830861408279255190813341723493066414375561097769580176731472433067428873181788428834651375775622612167184784830690288504373965543570796225998720758277506925017943685159682019258046066821763946535260013302697662689621150590250662570386190032123706392653524995110174150891052529760668685980839521376247528497235388136952327388186275691759948684014903817684795897966778840482535857169156803300232276242470480959919672972617174488197659002675252213852856880281639642250413957177173025124648127235771474470661360484828902079127271513685184721869405586816070537808723476180450598827883230412925457191122492349129591904760627651159172871959825656723283938892556685135311427749461074275197348700453486352922102816451345609228465963744006390979109911935145547138701936110202135605717188986436667055670763766380407060926986920619929907758962949171571938686812842021155834525245604866559055119310482765427536607531033748114010796963073038368561738585238393089478484280601776962664967765387813491855147899196348419719467675924990277407178182176631760865006991091219528138581309269596503208183717775261415813014292756981945740533677057816319018617845509699944606644429892808574585571491343012385358607431989025518592694031545826694113321319951908915696644343588869107583233448968565678470496297086117674005132449976247140692590178977165119981270613693580107908705329473699944299332115236084833394883685264348876789652848569381846084623673742280635131391676052854026877030808949963527451217659260577388868531318619215902949713728571367789496564915964613303966962365988578076734972648490634086032094469498641265782715577311062965931803414349503604502671783368511461494714729677195763040073149350942602548466445971921836394837991867676688795304141328475270750735525436805754380234568413548560767801563847965723765144659340636217416054667497909514001868189381091662056109626140421651776041852550619750363147623354795357787646539484858164762742968016869600254772600381324406761395897390808466327615074139299952537918491030073027536712137616528930444428727274034346959805698634388100280773211144705923385821518083231469525382269541250887942601550396571975773434299951705714675897063262854733291845404914438877876806869623526121988935956928826471692620622271817113975957857170500539232375338744480342562691456432967257212482552352517005823486267839537835517080130023435535193414577374075758341235875508623737757189892945142091758441929739535489387585820641005912456334849505788906620908794457589534579262185419340468087265658548843787797715573521346388377449444929904734849178313992859636786332978008973199177833777492753215399902822463491109022973578484654111781522331975052305805093741050829198782078613442184821796988371887937929637441241249152479721997678239418798876773489222137900884738529082499369943181002263652156193428006708175319814617226540778661663145919148977846970911702360929570714482878531608176251229548883918466154257692331278346655443355989381127477257741869181572837022610097244279037094816469922946909770145322275811448850067957688346697217900859207078690108842769821803902754521774639161317879753543998435270323236334736925784854359406371943301802912004327363436730099720977078379540062001976681235698375842669605744957077798278989915729424034725351041507884342166388426010076947832512500928704182897733567524743364442617032144425299293819634553196601412113155433861396405069896117208284909083551816732526472007750890846666388014595973053455565135605653718292773013304070339346819953800136096053840921476462060699927159151809229100622396541699837899196278504461053989791580638443475631922622216681946130143987925973349871065924873489770284791627663005308025644216678942174289903039804118395160703428595003973172080748076824570223902510533845488825614478762351614726110796223846488945338859614033847838179700849691810941845934974084083622140523411332987240861080547612485969529109438849775048414789211995648536815589552337374896382019390278558913285875600154763985473930549005785165120428261490445041468240166262746131362861450986811404997911694201733481336562152920698509698039848168678923070118530813433389838469285408153938843093958351153089098712413034108357438168225545089334732191763685371790861346119096814597042210713507750436400402850344064482175432912032189841196260050890433306722774196105949399159112146329121123090411402768999420586825698962108695565729788685409769993125601808667146302142811135507796866005120159907560849827478430641412892919334011163961239024519899467204227337639410878660315423676032135124014392099313791010867649304255530553891850277295228301707949184867054714309835704906110589347986779994066325276903122872283426704047187288908997274600746060074053390335714674574294296741827034828156584368324991948966257913670407339287315351371947433911731311016265966865116802183059105944652301604305798295379867654635758770223331151185355457682123192844346727381451012868025423247952940636164019875186424013074919682094296915634177361299831552440393548788994725374307234741549662164885331438609019555731914851126273020315643907776037982417891735811301002610869096447384650411545779916832576565457578213727396715905544458028196769732470636917294584491671252649839732085138967528662078019281179469801877699969668425439977256270534736423216705732918407938805643556069644633500895993308959277670094631401463848406547364547511340280474483643075774729451784358816344183842088008791076777554324406535332038660061399879913545048764943171229211715136368895179060529250384566673048635548005341970896073159113101364484657887116412109855645534885788244736278624001004531756563295688862322864014033484734176841482050984709947836781099563749508875522042399606864082928304016249583173781000625310128201428504058421909426601368544625561567580992140815541111150741924419811422004775676265897405439151719222383483927022221212833583741908918501462868674145934809811839941862212966662952338462104469308597106797509548537423513594225677420558865639936067409471469524237322672533531753197547852428529454124572575082036955454046222640763827260922280019760553133156116235448940657788778808724589739224110226143746658984458794609935957255640412411749405267506792117296117597752443210345713950850044241224811651424360679629906604635386711454786344918996417782621186260409998585282411591032379074819132258389783933519580809825863370935888011272224669437185196340897144528664543587685884090515243032925086686469847366757774421570762101245190663546689263804591900194163350308947322803441193134865274731758287020485611212115651839651378881136922111983104225585516956808887708822494901353277820954158325730891358357663698475887497425052272329678356414342236759017163177901077308515592568297794431753879404714061854456307262921982892886678885637805649636595382027498359885110040404810238797967678654055194042605484657389468649516147031467861096386082317156149973863025425739005728228983011022275741048331327893745883349154861118580884610075781332850793062222014424931584752510060330909386036365627998613825597268316898795669627715935789250328628975975350905243531016763885660965196270891139931108064726223814486185780489037805983924346826386631684044655039461871600649176152159073489829427455239589132559270087615254680889228873498382201649998328036839450693342703885084202372847818918701019277717564873240300092653511461032609160961758789861003646631904121408465774907205742958928879915067946738376052053275023060899852821255547175593314558007121549360019974621178489192497846202319423326044518250394821640812547510182542023579397045983796701364419841745979495762634481902464575220081654549278844440148850603908188736916989860429739876044927389486522071979443618436456577759607993916626796750187724383819303551532697508471502308684737744393330150513881529086864350559835233726917643309410477512469473785706812324394785092537566212879635237946596155053459849411699655107672891606803198643479214196886035984032729967693184731247231646318221058813844936303734406927168041188680173215359763940956957075493944500127562870311080680561093285464949183545876647759489944086665021754191874811493472068942146704273004600583118619194530035254161533968937153127753012106798486570971551862754733177416748445146828352563334134451531163355029938773089527837235677790008979603622333626795897026323528877534342366983714742345840391740524375762527343324309519122678346504197952194422057110348013977486565555725899982110081698616935978021108609630746340058054356006811402225753408240059765768376561460420611911210930099562668018596339775891236175532625639259781148092643855115776360521382647650297869697883011560849652568797961155327550889374884045361672984641657876127300629316546765908665861730086075555098934358760459706805391060670283283122749949553914296614685514210796388765975201311735742214441023669446586327949597273315496536371095298179160976477282808678884033826755223567444071218555136357357966286469615669812974572471252779307631725575061491422091998818449409785668184676347786547643264874537880190878790498369501785097861165379204007824652625381428794719599938096132849850799957671398621238550749860305955425583894726347352611753062917212981324631622315008598096103032546817753831583444879615296090014208203168239165781203784025044419251575399673221100972564499102472874207487434502253759543278209230385162390019754282761106116380776128471779977030395053219287974637608264947445482912179700887815181237237689930660876071084747546424203744702586883280482895979043021948160726101740120062975222609373346996319764106139322339720989903840847290337084613569887873864202803716816317565417407323242238662879993212701830366570971233916307668705803487907222467620280568560880270979235484077758756968468793662045654813720200880580125118756832374615902298103762904861732628964952854561821886132384934207789589837973191333476182260550082679107717250340386128223615315299025544429589372347787401508953690557613393640015463022413693507305148550518948829391804572723275522026385525032304280134730894957857479822422295073667510491874715093221562076034163234308636272406260317786775748806072022408256074310967367027649448872834829036973159518428958741032224539562717291360415786895374454027255736902418495970828480396966893045046234058423669111971433945779499799955680626110928026509679103249101706496239588982447920828120857812034207147847803170653924059955427035714849099782397794281762094461624857066313504486153158329032021705031403765606288654300714613669950493792438967058283522390887199518247611684581210078959260001032232633116193437789247960193523087785702141354163099783249846651897201256154951427908628559354831687536135524990114653451861935729693968096130599234933768926818419629326044273269730355568695497543148635230505532718768360858699451015807796464276297424205219329702250286259548435326477109862647627583653690955596392429060685282220018568651646106042704992343611880217274091085803212159995538257748587759200570952981212060252456085348511286958648871004507373375673085893646266881498012058861668777352665797194737254106920384366459772212629932260409828394914692444364442891975791857914388502056601073202389419704668278755271529237290795437963244086467526946902075913180763768910738682983512585127360537671847310581784051280383828209932818318741016382195938973955363368330067233776490366664528679504477572895201175525998994253594992225861961451969955939975697463984960027946885772988176840740270220896544828351719261145652729458224132305540159865156173022366372124732887595976225230968445582574350001304360441102946133472301966616748131380672608039970575229652226050918379158095239497780078339922845754357222844967739777941010680372883958690249415736367976530578053585144663344849094503476879543621984598126114449870434353640271976103051023368580428591368714342877681324317657338358341819589424562634428655713354312440525661303431643890768021684879117042862788997536792931646822599179141701700843322755114981977779575295760922648132819979345070633248926988902540760661771158027040845976003277470642078840897875513853483833609363623258538447660729731467787967078127604369619034854928066727786612690539615834732674217009009331166647716651480910013318878148513443314911141280789732440601211468442486929104741680907852461906067218091701206074988616106882768746381315479136863653433953083982512773466829367497537693012304166253670408070409458701629289649234296455920668465215055837931349890958754633672405772527107694435240836442256071145897260226392254540637546362612765926394327907901104629145401023217118009083099765377643896824861906004633169828780324443613260478465623147803192361608533203923490772245027332967445687289349131983249968647285883404720268645456034496861584260103814785332193134840760136266234513513729713053835802984454445413350349053202035667471182589581505372383693593006576825511448533102036874369624624149350840391505384891140494332936566357506919289171875739335656279063994035272066269847777858135796083619867949810070223634789086359870684529213720740969415506941629180633986381474053550268742742428090313943506943126901595263385049540125759131407765890640837236802284234484974091085660715043535071930324861843759577063745760319211878523940023272868949437499809680984263625944609374473662572357099148972345548815043561532383659392322513620155751348046710434429258065147385578819408226832832873800926684495673035014886041283841895289872252472120821184311132560067549755602785328594606300846445465160549890336824508797821648473562318975170451070629039521593906199421835571209883030982449870386614850252114399650287913629824432829202384361900150859430912184803576530257919991340210333966198589424466739897843649566332567118443456990260962092719403717731536471260399364784977496835810615883367230260206545286988932119749059687255670804987086691534064281678326172782116466718594859900191385725996692685995945606304398287347383600627091386621717483336974215547301148101846505445062633876666154908199038724656235380755491877904426794813890678171092983330190698877285109675411366074088428779551192256214847861023993814209187744616195409351295591562983896585768979473331869373105850691266622283555809790232963459922577960593231048210146684951440856695339325032899068196531536719701662610123179324303525282387341720495648842419009236598572220764089861156477886345211958868256203836176163159642598695010325467190335737360855835693087636525562942821069726537713940096168539518678165102168002496447206172812678049828155750274549938434409230299433708857766390961503453593501669019665673660214312303660669070378023534110223461892805206568064447639834611333549579819399611129329704639918840954090016396628720393136661307987029497093239215890686948701980901065807523210165887010695576926938775945910666064821447012853833501228047964319164074284229759454294411383498194319079650141325097245697230194596125870564242906101854286634009792622993451020724457946265977883028474946717670542294428663687183578725313210211165251844640136702679520086269248109587281816912207186371496766287156261748421952648496713042141870608435658883838820188284619463421011987127571533482621138489580997971584821949026793684920967320360268988844347922910864268960449898138553676976562548884223077986190938575694826035924594487102711006049455392804407290540889309126101002658424105170825056905329478479896221216961444482130369636490570259831281513608972596799495475098465732019683538673309576378046362495532230838766832434155425397729161491476274945118210191345812640915118743036874295878799592220795981937458729125372995363169162473178113715966833388443253659994106587848759595302359367444417040402482367422824862326502624594693480254388621428050128959990059939522291631000951858969444495446306103974897026156433643299623846683837350276576727269330641841898753003014423943518067047828368041107429138720656196575220736533572762264481433990977704024862142937740578760815746378856008300811872670436770704056814508572935737433138276179741373944885942663913779970633049511886656212757916339560361420075190731221754494964154276061236244605713882293601863404843014570962868077226045314073211325360291576234837960875863686530766621796766803861470173201001650466034949944511971821902585050710809329157536129046583666305726829389903578781512764428793136477841317526085821621844506197797062484167995170262704047534499629273116945456746748670490502367436877775379312273519709899277333767161422136960293934321479384532685066714795582338647603023652013489383006181839397364954573575249367142218863969752052648847996650148635582676244214339850129584139071946321820914115976094446413406408086852506958448425224508164597482680258663203453265025445306907693915812926164595496349116076913371899497640879002404080819613431654849889316912226099710576002853477464847486082170977914331180543568121420378798950192890943643029458704510241723923166725067212771781283796426741398417724760798536633244126099202950646592264136576338739505510914628434278413251791261826091997709599569851850137018769582764867410095846947906439154775156242983636772416908626308674131746371659309436754078891438615333445488869995700431837989720904201140668387575363453015820273866249040827939165065665488931881399451042877237272962797033709785957742218777143482931036351883239043961819998560540892535869182367547384495199897013893041342205251914383048090293553474105924492920661765762132452658278483351606646259581440086210374635414578189285592154230816777927288848172340372464675393040091840337333733162074305244787306950020012915289610973935980209168895205267259161670621680676163513291903990439559119969844869481881297089057875503817069204338334341262621292002311254694461220082687304462197009807687805374950503802098846592674684816941427412238683759892283484406973102608710980503368555867182083923968285337254044502290100237283896042707142417123617301019555930015707672401376115085951272098586328900876853916948229779532810046290475467584703689961318431810682527104406019196087013551352060619550541389195388238500824219597960026057486194541887111791020077470494094593058170395085454950109700244334401776407820048406568627314473016637279464479552307298831141278642256551745258673849068474175726473376860919806967307252877806340009367633875043125267585512355474954815042944194571685033026956040645948793019435005168898877220644919590424507841471666612972778037980791012375187242629897621824167325620241874326514119736726656176154405066241621605025404698306554001757123354336662239207912141675162197612703380290579385959673870034138158899875784111508773225852572045438543398516419816504198352033836419052691499168779699636150341930865296897133728905357603383908578169652417354299969012132971350487877474502878869595341304446922418935164838692057369233047340646590316598243306475989268582372828428260144218480762798923805822677581622588968042753930687696770549190406687418357938929090025962630324522119163553285326716339378677175094368419536600532684022625832734002863191795209145734807577283254333609836537848102378399361411204703640235616409372262429603536435737336153100783437134997584444063878085472520601467828096851140312080563026549304802184237820702257899099005034284836717413879325010798453628966353758039808804411755222013493992869607290345148098263893654955510168390829851467654088467757256415559799226122399731748774563874272949008196146889968196597528511348236157429926158700570265035923229009208509156021032351792779378058217079308630803335291899336620337954986047112801248453171409003791890850342480411432084774618721776316900173979734416782643698947592245388734455326600164837625554627303426563491367124538808614392574022531531237996712497333734496870729233145100385670492964385681885555659282583758752408485629530710863014914209862399917945584092759670784630555594116063348936634553322318075396934786681947405119996449844271234621278879899404749243575902383045570117606678127294529317289120054501972736477363802433144541340610506673642932054448709455042682762190663131311872435419754595331415376935751384690362079122468500140502227854865398743408350951212659212265368759456835005812231751788993653370526915912894958306341155706579725410052204700723976915978058443354461591016533354367850051168408194319921487937036064236630847440323336898147291486104457437831592724295132064953718266928516321767984236625769261884836067048832159965068615428792116203713982617284816698203015032746373726138324279692424404078371200471287628070702251321512748505330244432766172270240920712565642443320438031931156759391984822116790950255477007463653702140048545464143360156891270792585858697878623534297207909131013364019209658621732897981820856234666171438523153612094895976437008011286642123869806118903244548310308384151999508550233147172916264882501300808008661180552420211160042423993326933723446494633862419132352704440602959085209000801099701873733923509325336028304984935774525061423349089196046396777990137255934163845120914610096935020460312096808311870409914406428149850983591175306717776059609652149844414211190026647298622032787174295474020744669593527597079175806663971896692987679075499336314459444420041724781201720346795175769437373397969774176439131265474498981752613351537544035047268955417299162826994014919674935706578073582819591475499174995248322796042437087686094388801423388530586006081651894752649858534577319230280917340914750293415137198097543119440716147005629080759428560965135789393737943905975599662389474622944931571669783550992578943963037780925982393801730780775772826594185914577388783433167132863334223170068718420022504789706430459460098368261109961224797940388802763102145521569476019575314413531102035081870073859826874373579280863774234673900605448161232288669958536497943514632921314136090951806804285761363352474618243658394659946954009459887711767794388771844187057639245663222770226737918163760223700238265333707146039846264578444621392571715405472419711203261089767531418039681269190837312389157517318743048775412231397100637952531177074640303380027726751461451954871327822632590037415397367763648484669281783695403107760231123265627830952245912429711886708530764178944578039447321395120392505913208412434842049099947739232783900316433635159394487282150621649555728253681517539518145735178409327448909505686906585144764508109557668941578263279400275508169137303244802036172536648501847201745344296499592764613401464229981488056007297338234344988631042080936251777480222224633000529636320554119106332524943062167966826808042259095686766093729949995958670801397834865187550871463459025682869803432239705084537781520504053046128106448469253851429616738218617823462288840755403574400387394946277547445547758461429593919471719998253398211573578600403778977246166168046567798594353748616381241179762048177427457007633134825989944499450629530260895267014886465757045459393662453827548735979162911067838179145414970394231104986159201260049468817699152042137355279489991284688636953173349191862925530832184425448421044135846523530450961244474934575617228802070825404990596502629209391177853009334838385434667963006384975380803310032388826049383811574508368244460301499546199340702667210283572947584869518484628626042680138665819076017171555319047643092020039239696083610143748220172157218642269055906597119582763845254722480217801378077720859347482585043153795108267488148318836160591116924447341812625045035421915956100061649297708339556550555550418717329227129885053045622935946268783443444182804221854272725694627240216778862073541726250819818576623029782481485600838345159299307181515152352714334346350373120228529383344942845977605305920247365666452461269834842470006218235994108843455235771381760918992947546682425350208024822120008754051644385384275358700606582086356501037287932973256026251424123867891465362842143116483349862193670666729432062198183267411605690499876663783641338588793606040660607624915093374349974092543584206122760828336403090958724849473744870146140175458214644175258950039530773450058635820685501796045286744995088984298774654970549341057921233459672966946480182035318217911333284377249965990185095880940312422993171765483999966089193795973581027800473369311548996806861877220634282942945591395541827264846343365742904518594024847064741241222082338718335806236334034133340995936544753873979938265787060036002346707281497106676053784480771497437418628773656038440945373550286415149561495332947515213960392915538246789322478138281011530726168227422614270383398271660191383962247590340314782776208211357483942224966232651146509319665814530128799748611904731328806693293482680423025646720388648336200329528387414909211551894429303237865634040454601178082739837509052565170196225790800274402092710155300647849539210356977837009274424077954934793658793606441415065273877314164769105803398174872586369110589076442473753678493558547223963413059940108435463320548955452243621870813047848429273437375372594824381240087515346203153528954265841427146999548639521038031873954296074732626336876975905501319936577910432491679236009967620771317212099828040525484367181766514974184395246357486102445271807865301083607611657579759489228151004289133398020291259086777925113386518629560784792003524996608057465481987154195676408755963301441447710836892449499987750036748881595325871299863508599083887711787368392141408318348568233370152842018720896315516847638492612434372361681164765730777906124385774200944219498144215701689316021657809070435956161113674094792204515027517218175969479863501286179451086673482408666341581135270513572285773058180074263545111444768770708749389231773349307489347630685109185153593743939474786918125911307754149129592718452916227080081742772644532865486460629275749814096943174882233065737179030151721782552084085473078661877574218660320312012867038632088522041068838348349515046426465377168428999516011462237785359949907154235925495491769867942918217055830212662727774240764748708063408497754973501576991870570448066369923025928147513940015335105783661745847792921670625449116849439198100848343936597612467066236307027161099731830674679139661772559381870381185116051592558762660351876587989988724483723504940570886660075657330577365915081904671752179400823123576194679961409103330283896258759840400392513727229576705723884463360991230108827058844593072090807329671813311308407537234551239510341322030956191329766442601930118239594692766838329024715702305180223852595528486060882183645004513066048022993974289792936727324015432660903911702668912747606446839606376536682624572176292919734835096163914956408975585659396769199141563501656742891794826780285077861512127322601446220284146507234955377586385502266314179515357392296327643349647119110765336516517126996342928107376627274330596105191468425500121609528346278957181170122804754221218308966553453122258362939977852133896773628405652869064340539152991183367149747722317530159621909998352095141524190399123414203735883054905949878308243125483974432380129940806897335630477555123847993681011024495594167056285417855495054802379512782988278145510461884102853898920181209511683081903287667413078776347811971093692272576868149543524955922233742502253344419697247324326170749041203106437771653113447240831439349260753668451400628457227196424655504593701947901186490803537991780559676478556518354254853034258141644448044963264668105563520878428696031289422337967662713493331317609758568722634398372675525459806003599680508411456491894801613112598897164621461520583569837124498036919167086483780879183857012717178853746305807292379690145957528686021564269530570323649698220177211687639890309522052215505361988050482502937262062362399462489414704197871505792469535940992823830434608660494026251708796948831743252557951444776488136045314322282995149201792492747507455814598897365638588647189975989533424251325711310320289065485696831134432161137939182454169108052674159097700406243863001155013775281499604410158938339213737681704762878452309589395800371104387446570020032704971907734776119770191091309114528164464014215682640068564667567872653685933636862805835457294306911052586493262748935805047693885191226496967552767391583432763972402256256529228833354790449839488357659168245017308685904246348855773823810414251036322173106250717932041059586082540532384330728546065636115898491875474898783708385118436285622084359326441554136770744475267103460327002267579650562488790584469329674398984008518680008276434430283510856718540806952931032072754665325233937526876175315023376311040151688464966243836490859570693591891192636089675294573125751432686686068716015481961781545577125899538325954165544252856424834033119559271533840142356686098332626153228935209905605285356870088661195434990904883220479774999021557792722099627501362652162387641462197271576201845307002869662658277389472401663822723607710099870278827112522648482509191722812341838027245260907074062713813600236470624719925808983365426364205941490959987603683881256046871189392374442030024443663171341368875716429410846595113943227686894676546862039086829462059393078378157811355584539630971482324921953630253662098187028792666731563282080601525052257251546545214057845361133296000331831504020971561096309851092958176432719580867665116618902392538153934007756900305274062120042997213358763437574779192329616504711712800760112587627115159385834435872061653738042107073340023740147026457540792732939582315596803259752154100985156924197016545234805884521709248318796915779917288056609736957443279509997702357794375533338478822584068068068609947732042979941913055485397194282589274616452219910055862898169581594735109966574332439572869880924913791320727005531216558053170518239718828323014472954680735238285157978331721961099965366136648669184867290592486245168534061791207955011324040851136285865922600730146535977439834094022777830783748930729930750014716839904748442216790659045107477396282408505268551380879469319463894185999720813565272969352521801348745009784398639671375301087603509995047295603361301130213008540500282646047296404355899609238214800503776038531588968683415280438518031555904614230424705054245614977229197087696871960918733142707622969213270733808398414763941140702127641299887433902960904919304300064319082876843420967776154063000223135733010527480145886148717315480011210442973160479915784023957732547423225098869576179002428482084899051113635417368892768348036655332936341152252227845696405905652259384094347480561348888132956070945817352828813437122790065956605571067499994654945641969670346101387030431581714345376882979829658183611891680971095222406030581839556439424570721646814300120052066262367700378683965653420140065301260996981327233273428444397210564543621387507676952445561230894811144674899197316792040078114656238145944820643059102887268541146457932836778834349808146084441655868609042528248037405937728254226034252397555808090869137354715282054810923658779608568696233002011040312697642013982704413239340768982462519905369686224062027903201235065560757799203033389009076994810246862104731452148230926933755065147753315359366332425932756451424059646115771737220254354525306778403277401361441936960548165772046794068458295299507371429168385833281692790841280131804933928875097714980118319198630725324863870621939440807640126120718408487527769351346089506162984644507888193083645430544749378927111282489923298760586969305320731567879887563055885482610388801156706713950061054791323999671978711606993392360339752793695120704137718511396463944668797777198947670418947056062527381957852199073283284038492250285007590988913198690842949609318401169398744114327523036211048702387105252888550478695396368169609618829251580291927994351436907897988643335403156728397928743767199875931395873820975336314762614677144555579019213030062816091944501763520363875759985564383090396151522268118696443704476386808863228503416158610830427324615425490561292268205132817527994137753535552929435520918826081455759019376929597813133813279399665596934371010379630820801994075542726349960705939317632443599674636402537352517287915881122825929220355031284484100222038783003276805980622313544105657635869378187991557702297386800688182706584096920534473854330922506232069482677357663921273881663072962583235616856912980369869258133127116560668690816459200069016748886642441379420534354130985838622628368937822499806106712228611167118874390995007292463201813821849633641671488431576629419773933058224452837553209521644422793441109223732766394743979177116826232627059236211655886220858942963363039568953106588717911682467460815656620961415945214912767358122749057477335147862848664485256243371511049412012529959910667956807348430634648194243508049991877034485114555970912908378818074319027474509772661003005415721338134022100219436911680703856529567250820948931234711732783640525564908644103449037627871788120142000398988262572949039501101599234635808052356993813722851443585234657212616818834977786741628744150163999534456905096946624033839059228840439287434072410879124773304488786910472470773083349061252930692993499525172003764134808349628013681365703957950220154391434695875263611275536387736640148598651935692618647680944254899149820950882773477291340827290391806994618540277024393352233942295524637859008037529943484844637272272940645813358739878414372611134687532282407241775730505750889463435516051645182141614866837711391660604466458290582942272511866505200655596941007484022478775147145688447839008855337917584042085646931500336155373456492814040619886648193400621659764492829726745407299178893112175131558908114872903554089709147883888171449566884325119843203781191261501077667582443288604302069292871476544684755729807043853351942862192845856660667373569239549542015646048072241893355405752677478040563172914255562199454958346867397822807744020201757913832687203610947580174445869544391802883982796942286979408490773809024594515457997386717737075042173869882571134087865859662098829936944447135181631274586358261364178788560531593369133857425107553503865926883017144242288957588053583744399594379152886085827215792407602879374395422996849326863609922701969128878012894945993714210755948949744601322917741235186274538510550060779452824857174057307764034126831073651919070346773772220594954966306753408852875202927514202344220437211903159923178795802815940085844780068087350122203027488921490800173082412747045555962280698443153751266242947198736128440546350975204546527849287575294192775129488273065395914813543750165032676294057626511643493930056244483975601997639171843869024347003372781395700052458672933846741134437503752003681208781870623710947331849343578432056377179520336895641467861724314089615591311206053479850873704139344044159873401077889186512767505160390377002894877298703364550485783000178217154254142032253572779091015821530796317481220341069027405639420856422514037597507134010410131067294312183215632886940685342562002344559966375891683887439658197664786024167355054401205800877069060062832180064617290820348434163230762077124735713945396457042979529541268802636113969947699854128134413903524661095862966572188415132898257921528955384826951473469449912709726414805853056947814816863626130205885749576597964104815544397339026587302066175331861661882464377223422890388392283199131848946475521537075698233652726154818157970472919950617692264184709550825239614236941486136824484780563642467628273214748614125602857267240599039503572952933005533150143829579016362230503958795728809372413608090988526728496498994179423454654625182093222597484033480414123335488974139673005799109649009183722344040757637304794836078570256894411609578326104938259802627862410031200522158251541426742236521618262454065007642010605089495936533443376271665632342609018756151322434707867961957874394441158338301715578921359945471999303067353266156047954731677406716898768927500846679121638622458471004708002894135587468669530611181527149166923668807997748667193135947783950481114044949665342476642733459078431180772143662431080912316896898791909907764799009041946732991767188640260804342949110436834442932631100356165477206385531779059807963527281359361706559170581578174625244646708179832901608610036029798854219574344224291779712992694018909926218000814471526999537993090376226338390681377430253772586456610141336298406561103074009076015791691446754023031416571962290628331197836477051427942942606416457831375428399940187977478380289943500055203726923442871628329536140002943177265321334817110960629203585787973003566286528165685047589997883217423656446669287358126142518932128707413085311032539971707176478878689940639004430348372649916761277085528041990331595272259617833137850509551636767545062935857476329093833962347530105772669710574597832478722946047001194673884178331491615890731692922649826841378516941240499186490254852422542073654610224145975055313156489762112079280600003933598181683759634205546760668527632229004842902658104705476339907034850071877521675136618017976627024073544760497324175238930677604785317914996519934163433819623903669560242744935327761483597708525895871098787303849274046182754696638474074222860699327612746403100796541080634590419146633411570436776790948945555712818972582242283389427005884031267079939666984071908914987502992353372516170239716943212476460015385850475196221633966725951449902048039250600116676636012046487452569295727167546808149091582528239794207470825706820740799857883891858974887845461130922401269526957705002545361919480589430744430424391965464275949515862682266987774301539211016808670252358441036496852538651418019050998370250900035340745681684815737651922764904336247466203070083849518435922371954302323884493675517966885560137873991667783375752674516159933189579329661664570584702720881401729863601156319450037870233404591921735705937097160522460204989071867996755057234025044053840682602895543395062297054036633148438010485881098087103374625241015412575813876196493742884603262519774251958757469033117356350226656656295425848377634955832632644102020552941202056152046586860902319672999504989134378387214168093322323889144590642514171461969431696592986567900015390301532305976836714817112655853354416401204156381701218984085148385617375220556224489237630032127128122198399708383534324454953238258758357375287617930319661114362767240540617883780302557168970088350486697886706484963728187929186276710694804263950344130438266127880894918640661472734788418725743228409283449567069956928511548101891948027771000581682168211356208743720246700767918746273884152704194536813492209294619349064215519970253976587645790513323049949164490322438491321136958786414143491550684049899754343584437071824006725722458098138433148663064652748710700597416053757363072182888620133807949141284457203234172630647530399099995200182175351408533549250541690623558120043056964510008509647222932131208076337734016796164012284968313319833310933173628236380937849513656970853737889806298619804615646151043757447513462319896620654337266318953333271045900764990783912979906080687180855110136395915108167751257123611017080366376304352632078896870512454099159905961056390840036005954185488163360361160680761439771251501259721048066871680966166682805779429692676964018574098797771815278755947148647145894949185234495041688271770112522450622375534345343681464572241707945280357263709777624893076764859470853790554168465060522816223989349031316863634573644023111957687162702114241873979932683053894457017379738117856979021077490711691029423087963268733593227075096085649366926133987255155571639295141680435704954789075415453066935738938802588061100338732333219281818204028949138320004214100916819735185283580893537730358777909228044337657898112695411334260918141026585248389368082072098422433208661639689858416258376360606302828051925180502664963947901178705247251386091627145362966808110558904818727916243726286274002779653016042971856728521308094663050383201339212400061218139201589365810347064332716791387235766189676150103131094846686649965927113968821984960046959287353873898498386488818452964521869266849270998758361515416213718786552502929235912673080061231985195796737994930344457927386703903589114597734055077887596349432953793389948905277075592096663167416938715640146971131922073090333982628974565996934845992704767498701044661464176349003106839956798502044821574187437657130564264694810511753710562898740382561882368279643209264893194753936655195153426602576674160540217070309501393741298507560547101853417531842172650100956826871057379346872249254420758926487811658373074285435600331966210414016547548427139036526894734351102086848535852546423515516222351889802312831056932575929876952944052853640018689518114613799855329090363471603673195648398627620943528302580661354589029635931563747226641518883915886757555408402303906256594670218898092305511522021272897140720851657196764204097502583007088865844964875464124769510366892199819920137695111496338420003327293609891554876151506898803546784540203314310975610204172028907718286124801825318502067764476939059269718118088697461842428264456412058190798156062658602098244783905672476552006851537156494965207085865268301107108272714563895270989482212994597731925130536253231922745069029435115471322739376978616508529821514253353328707132650064899169431713650656630387489617654982245078043751834214279200145555760835100270026033435515260041035097865456022027853339087673861429285489645766374871997536176448517566348922295121877069140045932991308933998633696538121430844095571230208619615749510153681408346669770335778374712645794557835120471575810239519933512587976801696149486888546172358315031695356553240053870748574654332803532263248200240330638141984378910112529240312471204916694614083194330250461189202114670331800469380417215802815096015860962563058887046068192272335100943733731976296307873486589832558640856011715993602213873106557216019368100885755672402799402561911214857073633465899123116368965125868617198010339938982642453560849279272971351263218283132497526713661085238564267600594722476162894939071108687021653576371778378306553220055018838273836550822480823783133274674728502318608407918684814058422520533183186368823604673398416621431241483646471427368254607662414757005780270827333609898585390534001119299541732525112823808269725299142758373208733673145478248988712900407689299132672360185275548575608487336723863357865508347047030488891395510398095448194760753682366781924592795864838019727073399273106910153980935863743725213976796817743715256785430790946530653831607322911408864399194264905110822957176155944386005193230984205286733134715309399049986433457565713391959860442394174548580368690921733470208901805368003093174727220795921323193781191958260986938884123837444172299337855974557962568485394429497630822283226101985761388863550656522961757146269547418269616285753067823769936547704324984371027314965964241443096070880834565023220680641629761623147429223514146811902168847038926747883273543394401659995360221729310512734844297027166983481447930939206949917716351174723922628292525910532348473498628506179502607501842909001735511508640022174337162413337618969625880058368227871052860567278657349547232824230819762284310261858500726244087365184659899667208442184825141840746920750276886013698241295916666203923350865203354935149250389247884616004352052477562138371112050885146123249579553592621112411475257495355078478215800670583064374981099169089063764914572533916165311476967269485200217150879560047009812793883962495909908084755001993887080768238242356800817456233935671554944810863276326307958945762214032458984087713127907292941023532573205626420237777348116508332690137692296337113757252460032772940727879768826197139224096353465032022138553830924859414570175212790488606714081243600444675729345258289284598967028084737757161936437879033052390048112959814912468266604988489594827037206769024090639837988766260668981628094677454703621999402066802895647957732645921695788989294727597728527871330343406666453808629283616321148046758262267657808835213455309799592154920014224638784865788561889832575077909750930306408789617074451845540786952707578593241503426969616647426307941012233318395181395883919505531947570186632323655512060545117741451846233789192636263497198794742597555951998337399965839681432534254780817235685199491131414981714257210619152678963927235507929737948826918916102083289369571976058851194445949904915768856501689921982202498164936161068370980636253289583689556866341532954687594638422526230535300622864869894793117440881310014414851115974487998203696015396853135229164133456508340534962357224677763510893461844453008807246201619423198415966439856547626074266601578698527698051540828288924338826235507909248038006780486466871329439446246177691289588422127702747802179807092701109059714753972783616477887567666322682912401048981058145864982991067919633906347792627163619885446890980979044702169147671478243099821085041330035697659665282022290974061106218959374764044710578181564453030373487104397710892584904586133194858102642266635384660180474619198356904641148869031707634159910459270040048029458067297622447703283127740937272453049962256721982317783114380263784272801255981744826467830869623890020023580089541955711030703724510119908851493903177982011940585959307086988034693058023193750677801509220400611446197946836449592248645855699409145296603922402752491688207781068001090903715828106863672242613083637173105799924701027884464978771078146221546084592774778683903284275496311624611114900893973474312615305179195221966387821843171972521132959217328453828874227698369673170154623279709435594700155319110721258594859608377710004995958915477688040802734106668379510719421355401019673075544290199710643735157440077486850531236323705364910833323242997559276350127769750931840615601567569611395330030584485630877693300291084528890225840879368472584210296499430039008833826374831151028679190676125736146571041393849476123471368152215362553495760237192338883454220597728468216745921444124782677055676576487918376082159675256791680813829582630323437157136453102311678194737596647099984705357426637799742940204733973385680120594695989356400346590305144742710525159939463314177599844033249237460124271658394521401621138693876976950176706483799039274390313723753409128961525065715441925186261684131688599185731564720631185657948732522740949204780726765044053127471468526621653736672946487597664766923644206041699761674596637140209932439642727169356906899880751815137030540582118793757646631585734069376286240227205350926136246933998877888295903113029485446130745535379645147119991978055833807105629158780609899985054602696737282380385856870592847628767076826724652023444442635210942777387199486411834929210610189137677273964892306141350079282584332691160028435109472642789852407851068313758485000163643384011402157482015483437458187967446902697534966327962675911497751190152549742633670872289998489734601734849337238782083563521008152869213275602095699787314122152883352221513382630276067304929899680810041509033344709495072968667664854322227041118831549422803950513573684930693093161308939568401777900067284326490070758947421743072641909797274116449908897554869232108899109047663501939659106209431319569910256834370994666380880295422812910864220153316359553986745257386640364235910009475540965224897983252704867719561319299600302550591208299765325074530868503550642725496529943059674593707206382649727961002501046090003176336390996413796461967081775167370984252540898398428765047870010542418209435365754287489953466900890644194441005584097416731222119885384694997232033262379514693342528251699306743612471450809974806650993463673867632797704405010460187239309136147044159767921667620405597618185232526729650809181255481274221494015167843224827313853079115319979101485483204448848616999700160594378145465161354332115723757104890619852200559588718786863397532948980541889553783553259030721168405613148022560216107803790959465499948254737664554571932643939967723330004052283254945448694932707402615955357886954213250042591933733778118335534694662961465590320457623141775386206791714585029321924601376743814436222423003237981427641801407741597582192068809274908508142788413082006416214374204841577535723981328327353440024650599154693797504737333732893450793914260882307793138597797608900277612836049626034621909014822040894791064850439459973075213569250717195005294948233720185345615530811465551740439902507000851684830844462128534778671511970262065466450098475060386737629233540581740238810685874149858780487898796108123824014239609598320089690924402712304282388621541891513635249759654585524457815261354601205700127948562203665177564779704216226905471274445917092417480597159821662289196994803393893919701925142892148406071270700015860609085395215786604769788086313204766278060058330880736600347243455622588768415902141315583724213460806860096631200887714345690659497344599731918303274592259492430769618670552426424110772883791415685591341822970484380414390347754644691152659034414665707549499094417985748620798005108291905956590495144312082912264554362414175062080283233403236671279756572457010861509548989337383294899648929261831903226299045425677646310131209028648267264625021042698202817461160458201642433206292216509880110013162917603628750019176952311045693784746512227183598548234591949162860471937767976887290405397329580047558847311664973421433647247511243383950965973982004361217466573190062958958389299986828807789223467310515276338055744572045699521880661910461804197543650796310898850851096534154063098287713861672133421170045021536972739090031921859271131485294621888251912798077911940467676097802250017178098018411239075950713041102152556239981249614303388408991774233331737795986978383995059434380476040830658588305308254690321647999655439872235963813738574056688738773936822740210835735282168549597812540857793789796456507587427974017256429736431207362774133178025188367023443669111848065224831929905799242951082208536620913813655162750999655169038031627249320689373726256947473451184559901515650727001383886216235393426276828281306542000714511794095218361095787492677412760204404717187120909851964088286752856562026135677670444472297817694145532149826612256598884520606822677967914387374286545510354662717124155185207023025639669763793228018123476776313570253852441519048452492773310123847546717031950565407105974805919349787737896151198726899007304179776473667740967198277092759717902960593326577926286650366302072174420149870265479375359812233686990345883362914078104328994933257172947482830954785686552575563889068973935933074571139048574215151785507904808079004847715868673138612630655002093776144012476250572651709011884987480405203371349896534110263618358645550664687943920111052583546795492869201159257682740535246482167218236291263142149677607761045502148654514329946215086235213505904430075044411402798627147316695879847895689527817502095208249781710539548547625624081353781736589346680857539920466638386474860063457356816381647211779414122113758930831423694963815893403980397021423275206217352769251303284949942553388001759226116110518274286048565967529161656104096874372963874913982824119915882237278034857337496922147035925841821490654027363343051286487285960291745197032456696452384686120033404099649660643087614651787056620707123230960992442415281851622836862747667322044974857153298882126610442577962091064250355431546414564265802017406597614771740960717260964715285535249059602858280186315689309081851129675102450789027858468508443739774972386927174125266186960844092960298610400059258688601106665579933885406156684156025709052074026810926506169515146212348359060927703282125664506273198466877784075621597956703392969832279925694857138956962323644062659546790902573439636780200184878921673052423222787679024957528357807609245418372425094924122815301471630393673651211403164848402127034452067876911795365735367063506758449884080700780010810351319757019721121880340199345316681388092822479598725789171265660115338566722970191780791720670787953032577758597606060335049244053932402089728396030072860767820826569898415112442773357752598090925519774248931416194834754489280443188329859087359652049729477838728255104580230794351617570691676402148623855282375565614958824487828474057466923681384737328703551181684180921886506257887934625710831379917139134634217363476628463418728658810722038471676215060259429344640653460671600109124587296940180243240420662499325249956036929186301782411012895875976488098782740303994671501377624058726219051394684285117454797653632262996954431224758002485340867300425297147733135984113064033136880060028325232179785245798026654086084522581777021074132410094672457170711309792385756148217244372894867908816606202568635158822913142927747236058611325557327288475874572724546779874526551625646474907180710840322811471905978419224865305222853216541391363555360678174056946681545775827612063572887988731242023556326952703441272272677873127853091285394786385110130501416723392150482458903413526347093119747656918023543887614309798382490461467205426144735191498696090183289295041301502676622656124645854738492559103380250733852042121355035229687375449810464008915700783900582063314285352116831455899266470895930442866256703623042278255168832821458642037814654637865668153926329588641359651174641097073559480456760431000689580286609371589552175487239632735315824944356457627669925753233709279931087538832677874769757869182685061004647357404697910848540467833165569984380668471500843660506355882226984386818193675468750008368290630795967726498618540581833247082517549781926266701151646001999639180541759849304225341355555856876236655762073634148692998781396203238952948390542344939046194025743927544901220645548008033203373498113206740013384208359968154981876744951170691610432299519706472672386950188592339968901845739544751988901705934415520453322701725145997142616590300116042239612587656543647753823925898727325038896342048430106261278421981216709416107693599357712773846480978957289783946030797633716629591178603879360443021850889285756303519994674320912804462547226952560979188514789663920966675793559035862158242811701955005332539282074666121265611373626925940076173976659390223168085634437631846564089179036727866465627704747461651620572517875048172983182935987018809706563396710571383323539046247733216022959781975992362971957906667365486987583120754946263461962020455935226021426793401579837948208801754760982190698566229207121798208013280246454069696680507815309206214116479208108646299909630382738068868488392709986212547301772998836015892676963250393315933618886717907978994895540734918389581410672702182362262661072258813828364881175421771593674384440046481889203766467599317236879723465391008456676209654901629380549794397765658015760242763546577682848363283753831867737255206379625310177546409085261749458876326058516084117049106696081452486362855292474839074051772545197758678288542168750002154750678924465897222030093395546299003184520753639887202642752007109501701944163686081019836303381231006787703502730927257393883231798475340880733440142903900110688787153857631449393082833414086324425193877643843189073992126081476690474607238924248660125397084247423893610532677269701883546483915734079043905722926159275310321198793451768542665075814040231354275796949744059090212299134033918694243715483854842662632597891281564203079441028234907212746024482162134074224688784836088566311120904518772926665088447115978728877078201252030645745492501685564516283028183926442435434263663120863401327295880226588120085605313826464082062537712523203457600861939137761245174849757590245792207836306303217593373005912610371584801774207390291705682769167406478767222430985428139797008303878515494630945032648250935197049556767066307934387189578577835332183001466503202443921923188077875291125703159689195504716022191641078233600536235223330253153003690038575115221027844379013415530856287537713101482337155277021817532065647960617607897174363137160230342701478475211778455239779946868211512096029835038877026763217207510583309321237988317866581780723897262703403044065429343569882587361304742158813532950266255094158210919685858300258395324747168722453194020429860819656823661677290847513113727978264992578153369610483923079182953595064316132584223841089212157552839173385980196950928969418295121326929895743387768174758321041233500317689034417053521372568873818487706749205736442754746511519488094296123412990710551275502194436451624051199940440022552469496147109640364941701179505893225437501381549344092967950899605857107397066108391131187673221324031382762703152953749218987538792034716536002244191316800305541761993048039016899593435853252196175123881961116801952210390145893316870612446050934275234497245954479613746072198619281629783605614558336445172785648705476101066928249351685525865966643899151215931041957838862198045986964580628128953870387145485138845293139932215457884258810406606828892542852780074383109047476267647423558428477505769251321733083627465562285889431025897510893319024074945926291162659572822766922066080244443658852558540690896726428846854536817515680991962386210207621407445787184969114999816020124055557907051749323374681155110979953222962640517645822625952596123174354104608952717555429275273226140601264570206042451228727441257230314447299752652054528850232929910350808395428245908998904714189237083867330502231951202558002508592691940136122565198282153610557051328571412584551061774262053438937652884893420491815774682014439397023361501168573699970190798447541106350989503552577239738339943389914611063630079867228695444737467864215719264798041086615343146692818184862755412753792512418551374432566679171911713790861821964591252293943204453961625597541858786031490591366379750765549362675305275632464950034224663072384021395391509565059384358471695901450068041704250358923719373528470583590440599243356579324069137341391664041835965879286642406283568633634798373475566062636707605168120051562674662195425076875758946852193111686967482362854051358314237920170355459050298461284352741562621033543575832327078767192433460523184437859959648528759195525594858907334431994819538995033634703583754573658067212953520487347682295311898452867121226169223569000464775318679173432536300768776196511345078369309113020193584376181937654880856494880105788584437750468012439192152906050276712077170169678560235092088901473376866585023065973479202820894615699585166627524797365455054059910195025782729942302603121201139584853664013296543886402953483768646052619983221822776892414732546261883744527428903949200239575563279744960522576350924877238056246323840681990398479717868067509462033444754223155662538461737443811686886231508666353631901977469949215414451329227139665520943100201832838588634709181647078580728245092919342108751090667808779046371439911232949586731057621303672859542395176155035312362717830821616164809608034282054523808840172654923284500017820398674821689267503500817069439681963447429705569225719037228030065366860942726550297238221409915431770866915596596381383734532999144965843863517094543657825214823786230713594004480955884522698826798053881133081603488821426537203226116870645893261312225870465314452785133875625755391491026426971703292443871418961012300685199703210498694154772105693644693852952304820469450609492861224685330070375892396112289830213400386481579501358489243617074144131663579937748603778134301958216147315341384378978345164305106252010490357641265396547392094388843533576309460233576033771804261306714028735153826652875096155111889217123214988538860118495701662927397755055627366306567054846415680621072725044639777796206744046772201657189622404756067220041270317782609291126132850817047289652196618743161238916169782941903161745657036993430764606084224046974790662338181568472153326890571555279214422445122226761099814861541653111039432392215185914607645808505792963303945774874031605023922746868272393634415911303484482855704820438030760456300950519731218211447253122458539791688548147039969271007260400756614667008873467091539624770209587041044380514897528301178392258198731129475966177126004786910142778865646086274383135789700949020777149173435113359323611845731843925480140356016785330337548920405887814474668129628838392744754651189559953594571889532652585059838218043408010778488091912519863246728068124561298480716796129771399611560415935370962509204602939213743589154597290395101497514544197955986212153085621822356629426617735846148526809409045278850233038787381559875914055488205628631670668100267070916186654552532261171829663869133647184877104031371200929866883463793775207059425065655166804995263332355209992677368033832490113571109257837827350508231383633824096320043996764165632307141132653545063862602300886169579596619775589180693895949419896646779958170072761116552562658711019027357281599145099242696235213083375593106506164480010165879526964268460620688709299172872321086219119756497360542322358922624908832926923637851364987634652551396995860884607420664453343910327680863243238752562385773615426207508410403958033689083385129817617325920239519231872880567275355003772403937667088452419408792907206680988682241819832052138607493779664164682347749675210418531150693197865436220494391370474625690725447619753422676886578129724255848712477616378771404291159566047080615616607003527319471345684073918890315098706615291780857073339746778958437245557332266552485926182869643555528568457858593907330958343085607861193574213319800411565670931456722961994348064160207854050444002759998467569140115354646304628745237863235102012457399924889672462289570580651972825484249827770040349660622903143521009560493273178715076797608635257066912221531088446829812987742885202581160191881981996584141704485692383344888976908914197284796289918972831217689021257874765226379896267879553501597470742442126585909565537549999664693229690751470173463344042996774816322808246796501421528704264540475597937985616277465585412379981896974991338248410052783500056560030278941366287199432154835717455746470100352394751809516108220513068231317713714240477695487630388811157435143221022391941474159914277316057558043980133758026346033391818864425118364141718836359120270928634765603717077292845970831579801052647713768593382370812240624129203867392140074411893171214598104935733685227813065533636507770726954295519311555580473907077289884782047865424021368882347781630137682289725324176589242715511256904623051086169088879244960148459648477006294981673122584010718973847862530735180445124595683232867079630190215295158190041293618019821209717900094845089216754335102176282665012239079194197800467974386091305853226881106425940180542495948497849911346154617878931890674438295872802781634435021047919665316709901151124555592711344695231482828467589789750273475245148663199491019247704103917691256086989053823932229878626731555653152029910983564339454825839040156730751350630424213341910570448701309716445099127321607478336755022165873564183226112043910534482548077982666640014994069210110604749410767163350562612689016361899701355988787474848668440692870737996697991157521403463621749408909673572747409659657881710773393481624461139151082392635300820113287117757638686094690636987315302521803397516450140121853149285359793061209222423663176613638308855089510046599997502603084383802594082982563148920684469165124527596604865988213488501384337367900729057136748498623012052808675063578416261654851982487795766501978329326573405217632369560100841028884214699662176058357429811616543257915282453921203517275971082708431936602030175286764160267490200618473776521576463044960317507341353251802967618338497153290654932776493209135655733999390759153399280602032738961610005346842183528571348953440526038413152066396720418586535929559886865934722111645339121160417623766347727357234344755928158085795719971392224149854793176036848628695065061175464408224028063751674775202350557507474530693038298366378209965448968232903626162100161980277197688197288183439458068981989674040988505082494988425606635724774897309192858401122782248387120743736397469822156444834654924072781907767727333066293823360014330536895876660470465149037169254635047316040892651727227881423910618164314595667421014195822396895802248852624693695639078748558035470018460735316339589956469177329515079400451099545607031769595058295496138179868062690325112564161503824175705570166737066016565483975610589370186375597079251688426716005838449811785730761198810840997239853280955868589439551055966655925291153423689922514058075589035111424754448331797053881969931777022798534700600175396440478912979436735976337764667698532944603348395351841502012422641880287309727375692988057841768358479194462267629347742787280633804314151586562071479187947472278444287796518755834207398757795039835836266974722373799393100262913842146344735537437892130999148004774664745942988581085552731837286163018213780447567315810072893359502486778664301279591573094273511612452736887422493071742099509953497615146244122690726768664592637793581590708060653455537587194219181654830958560779307590706007041447644663757784492896806250514623275852355959984597539600173710070025207100544758403823325773294923042356857332665376831988346545729533256968282307989982869015059432607193820068545955704158231048700149660235146224151874913014786686873529015594115522855299358086429961717784930602306538712359600682832011857449054549902230617384061280328356683222640797891862984596458923078087927495400682758194263651432331562731467259338140055735845006331568854919576166506118328586991498801409684954810751517884689288561343697782938334666890590614232399882260474535844174107454106504076839713627658460441539506134331242081120267768472671609299991311802786840048881518394808458061603193800321962982958148288316907860212169749995018288247785777775442783219561358556956832008127546543878073468210456216267488216383849276228177339477604074997572058072356520694999232882456068125896884514558850643508374861583502185620443245204743266303495341854386447758688813434954357721177277623907185121082490340206921958574418309627528525165729114286546481858869627095627850757382457536201546724412105856640604918646441974426423202725887064800553781387998362431701547360654171174945483207703071700725463153397847740039332056557201794968360414352566089993490766830989603297445678850056886045424418850029375359072765492917132675920636907855977835617664076176786705841791144423649810060951922573477085662263451557536593298585948238953933597495615854759184478627583541015041683362707165224601035540030001595490338771253948222814468975307055144240334169507320055655885428943001863000665077040120513600609963415672132929200245137341153531166858596418946338339429666603746376335465822868463764996244000275274729437359276472911031022437995327189065941435242284647603262127477759840092362507800861008294497911024443792375806204025207154657773124634197294888322474178437735675799459130785521239524349469855937998946770277378140371471337346443704298623492657349594869553694492058239682737211914760400711646028183200685866961340464704384282553213917286026416033268165611369975848868580159408559418510110034270053558093301964395001046672786066498962516984672828303165601087901412868474920622857268975913572555891089421905207835631956809294731124522157277775191371745733679061871461655414407484235771961888671180599561563878964029219727270786471414913208064508358678008964418285538787298982392716469465908636564233585335827430501528735665946113928520231018703135514997901473793825579336638635123198774823543389898083982778419946075850198514209830380839147455690806033439638753805205892970226047163451512535751911782877923879320550075525714694570970060535386792663973576788527396058516675537065028110072914666559635714087427073152237147178813663398035724941697452339837315496307434358317293905272502587380966602474435342461094662486111914819198523984371113842758094374762793145435035243718719818355821106004551709609485477549781178516225281629871656258789182986775914327743600731154675389703642692486254960658746505201649228461337868269660924964895850933349003475449921801997056044461086485417898871076709698575448579408849058656753114557599210494011901617747235331815092470713682183281099700624451677470460619183369089827215757732171193797330266750266092380407669146674600389412683305700180307858991643170618414915939765074347747092372340368330835009684469738350427522163953918262087310149409743913459651021459487110222729369076978668379859340452080699029638820942423717474581895558399909841072667705102137004676793494570075078186032399397400519581478499937539966189517233756560702487077452684222556625244636891363390122801106156590590181476742751967941415285604052577678295793946742588678024583286374684369367119210245007209268615857147819712845440813974672886928830037764489898549923045588638974354173255581569698300688923893772376373478510350596440008335852763162662928417251445404398291335677607327269857473308611660392105451047623465234653008608994295150330845228812340291369720996742194220513378386679248962454364232475160795944941021406054992415936382477750259735143355522661478712738302789736930229128572464612198441103456195390337643968598329219370923356626347496529633357522216206030315944800278365533622287194507166445009633343500684665147182522040893252018185989628751021054800666940370610571433872153657604654170254171990787631620183065895181271252460020027689656144257652299184242727387710794850858727646421295185294962370078158893841179149955054389272134275754759614957193822169402964453219422628644732332989412766451893650502993090691326195476661162640203112878616812877404742982251870678561340919794048718663524200679658738216231406020929464317321462332155828791764194969203130827852527042238913188108984059891406100718839385671830701205232310813129327324731760200814066570932614717106852863414327364635567555055508986838182013784693204243712152394526734965375134385589817090690029103606561561483878537584383999149314285208523507240889931546318728888047384610759512600782393933289943708427064689687523477425121455948686673298907946423426876606419774094352543433139060214602953572980554555643630273340086424326014123172482368126405281193614994134031970236324784931415212184207865837145475394975180224183515634112861861653320994633575865658117172951843017920114667649019002825572417112966512773009073217858277521004990892806015973935256394469905074723262272051465204627888609841401012700293376739437801823942689227811678993912719097035310615501825545526968505281109135269505063417332645420623342026631716824994261062668678891181809905583577760274004418235602461680478723041080897093772265240917143720313764074016291089040722321645213216947855025976251168325390527398224506041561067236716147752829481574990206021621550007752252273689101765258501862829566691612251832493062319960522176496267975446416515194615465794055646757809657097652546369363261963593225757039613923817728504693658561258298391536717597744540289687357803041893098201733007720809593064399140389848271836007104247719708056990360179909462576819266848252946450725401248810170023714551619573889021827313029997345840403694864325471131480276043054492905299898241482180010161557313670373409459543513656153827232562033585715264808014566825586746356680494342037172625685766094422597923296138493523630510408096061309213984885323614700232545350258802877691031212947817092626976993736430008607327550569290589220458844314312354049563476516767712654230745951976752863182067749044387497207574066201798839557242123816022695457527821311234855379201908228741214235053755748400504965321886213337259320901877071397073185890140834491352519070660777093048297306406332954086819292094359943834461618807230324152023008985211400726625143377855433209594613199939716042611968107041619188618131741765318871573212335176864772347376774075390831060048532760077279521544155289271277071578131192915577188690745031033100624379132137396733547409713303889560174982455813588347573696085107620700745991304642543838849103803341761583781268902586978596489661829683668269961358399741957541999680014247686035419098524394409273437701734443254396389986051682926292821407823153192619972702946512190747912639072387329580335168813935032598991019122975700281965881841008127424126400189356629072612346491352428474882929024627335211650976466579228993482432394443606650431345777929849793176989163515820256868784595670063380311919211487484637963798821311052834594961602975727560152229557892055512537709687089498155285763884347155029453830452970595330426732629214351772399541403706399387897885719860899734891990778013857711513751489333250060357735699759844246761350850414262553032087189412706367264270233141263624640301911146622934274680840359992081699711337709838714632618259726553772381479355832472892706893368349597657675553748178215899319406513651888139230018574849167063447944212184559147183503347690855838985789510045128513208982773361913121835118974522755732431499103926785697133390873456789654384223566963080848718217500668761718522678229565266165055183265207562333967909173908149678431062640297680212925589145011993847118449396321238407779341129845422370392638918984696573954194613572537800456083955951308365094647043839345276322303877970297712871556443847573233415566664450640401365357352176032062958174858671413395093818328975355599512229427538664274905367859106549382710004878073256235693089654671046492411858130474646927483775654204434682144068879240245793625186980098226728297897450185911837074139395362005602381393137896560874972818464511247846666203097651606840872013971460081040431228738375174294586597870032324671880635613674206837550100617540034880906124855037027382719975927232425321991925516825512900773512481977885155918994915302941174587272234621047968888313801286922665605364116262105205744352481077572460409867540011363017698505464818123031388686314643385363365044667923646019002106724113369922249625258789624931152349237113057284734230299270399833006641636875374823462345400170966208874082307634598751140161138141134885490827066666535814319077948973080145222326959755673164284911571858509807290286001138395661926850365028245786684741659384601002729567522003194841959241780408922471244917491268648016634142707574407011330497539770102340385408051423223406052455203862724307620447100335987404099725469255432249596094539716083479904016041096017920353217942819138520297363029656069387729080101214814983652733643258827574278730070678053823770936359981746238618364343296253202889336870510140439596784504085545966373025564349992911370034695420722483962673082404344347805040395499749712095561935708975714673324576862194079621235315243259880286050585101032748531844981746735585028795117042787635791290847154910138937115009025110959640599484851951496163186165498684578630005580677473530352003000559038860365605233548812997193724062100323921268193180405698922402317822117006048039749306784546945218793739101448585245049147626680905126014934156535078284896448266266876056968302240427697335317866129450966475204353647688346416008918806395113556997205306423737936911609755716925346542356026482575561339108333631057093173032858836713981637692577651145024458240740779528684949297139258941533013630372694527970255347029780857219471787349304826552701567819924697188430600262056797454318557539846160341671792633937104093783354897127384757530585060683207040831754482916522850775559363658205735107302972198216212407470763065342469037897270479086256038793103856080585650841207409028308169027106660291265138997568249539683220552674176026359459427453758132227557647999991772638027846725976512558030264100712904543433404192353861404682421826208266085835403926977938291187009474752760018069876442937311375204772254153482112120526204394241753872635264723008412366477882891212892902188802312798152844106836916110907709787018511043040340202783830403925766815778065500367098997718327873433456811575549622969790029950016778710677167089016242467645409865045901929739369727861713792370284455954776510591468143149675374320374114752953978114383637977647909916288856343499458024421685402602338226704277178730668202063686296198451748275249590043851455686720038776261868876119772810375438456303474751685860799414482641793383510499619209787560673296171148432301842479592390814456089788227545526493441358388960350732230856197889538055264286211647125949056366868905619342738131125731409636586581993171094846666043746821005142868494680059934691298931867908905370030560095378131907835998041717175664282258537578783481818488365525356433626860137717559984553971763594457914732594840698347240300396083560669122913529226755833582222030215245557590608875899384348769535031734652864281060978230020050516659096023014465858715376446132728094522311803623156896361184634654646383468083116673560026582969233721523827670940129632284570002102346943028261976569131006300103331140943653212977201303326284436289593262395230114213946047855717761124798682337440143546760185891159454903759784205406021781534624257258147684426344157595442234574561489867594652785916561922510353004081070105748286958288373639212237244121143861025038476336221803248648744819471010614006506958547266541359812108193388224276068987605734055058109632471304578409328279496873358643393331288786166067072122515692476273373862577798654862139557128561907297293765675880846946158797979963210769820743217093016852283920382575231640701048190172958561307736678005321266284605702846083616153860900700319619315774176863567005035385070180176448512384654518413314573683049349963040088127335142729796527452326055377133625753538791787384607312614168338805921159972758448769075449814221671401926489420259077287822998214287881183231235698557056607795643346168621795167013681777026129110985107656319349423122950155610429601310437755086930136209497298031914357764040450653639293421513633397598179777013360629368104929106981270100558930661527899472300239688678669060303328081463494430413572556349254392161521066540612080040711356791736420644720308267782240132257432298673014957615169422589232579724415622128121049507055086158944911202436141559399528334252349500743391776448632867774061801367444780253063761441319443044477969532938600314125231533985558066391216087924168899179960076447421236997432726171690265039969292615295280128362490575651376186667113272108027540709539617924193721433529741471400111706442817929363847091884347305519342852039476537994937989013230590624725186888830806672077406748896710114026510308980622498943448090208365370230838236213377457387482707384221412588118595692906894496168343927395842568381344667265126638660038710527336387786731284660853096292208940985114251935254447278569268545815685907981917274386319527222357905412018626424538595165238492462107772791004043721601880336270865569313966422500612117113170456137506467354643367318808229620845014589933833750070465400735049605333179998470433451051822181509901613932003582305650119032804735579733179696751891672860429817540232380039699312465645333256330445873506885979730987993247239940434381253979653023639979978776883036118915899615209620129095334210970091610493128199025547675025085630812356597647616870117600031344577420690125395380727816688500306899695555545715379230852078571610631922628051100201008144773938366745200121892227075515590699879129685484265980674374156735042127416896092444410945382391018499432550258284877149480447801729373737998629228827839396816228554668800737930141929039917713516617008759981700293350123487798423898433179645092176104140469861845968124843611496892124722527588301713171361211406055612472730281614229648531544879550926440313868274892548261522562150715666923010294498895934017991998658885089471093871834230447224921124898374120608656287908050247291773072663463845768899501378996305960640082339121319083272769867463872138148738719030194953167452313227769842722628486643768650194484399925416767924661539790587408561800478252356511400462669630847041524447152477215654330918816069539964153410727297067121689949681017338577220655848240633478181043033051151887734744817395493455999818980201407914289557535792588805253368165168486642733267375094639910325869799681956634436423701519315144483120357571988244376595669921522028447087513317852614465190842740885385043807577208015696907663991951915052350795955658120446950339529349816709113347320811765882691852782690051501838898923881721722231832688252864976221773137939492787954903542907980083729058484103841883771842158292804966298494570646843483553159556965305659923058297469913860415367103118295756276535564387859296759064903320814654130913606279590771972409873710913351898779817039225093282742341462845804509061707744127594187069496362463712294107020097109359055698551630949450487915949571869576926654355310299142007421000153848328059954203702744708598212748674371609046091685355914282716417548696677689412393559651080719504737227873502473359297129298860060368110981584636057683524823026534534157578989797544796382232492805983059808042328513448791511795424840716602833467051366071676677774131286787232979559785258958794846030548611616820835238999278835406745953358642523231224185909283740974617199181604788276237521978339444253789341831744826404402570728095180947178634677184224646956829875613203351565618608375537670869339004132547365233582248626139364037322351792164500077581773749897946977647337270956471303676441621091965094212485131614507795837804541357531825241419425204749789338499630291719705208788298742433655830989385625304725470862221470937421440550630587191839243551158408421625625541575763076464079288956932044610534675940379936403163119076866964618635772055604935182782683223466470714417255941604761007157713305255944562349694961056966846338296133601921157154761558948424447955404668310952082044925546239948223071614715779633514980664187425475165037525555034650578845543223278715665874193406270056403579929776519553230484328663586118001011358158671253498061519285415930763107541416833911993419326843505191693967825615556588964926833594300235083544363266622021485270806451573737147212491195228342108715118487617884358211886899190141514601687264730377777851490025013443019633989096148906663993650495316285023022424972080608876767063297413767045001060976105774031164644630947982935687050057026999292311089805064838347575522592065043532542256373883879382107068098941385499303333190124702610097789671858750441969911079980992749469258046901025691689040423085737744439011399942080835049351020351551549989289649670362959137918285359805158206969588022337694793604748553567342342386649203894256659301181403203166722065011844041259936372038785822265484010171021785406317090266061725690887012222809293642750756498828262830332195728619083369706915049154689700259783813326217615437634947007250185179872690588081583268527070672667349834108838661817563133678396407677723953327177893885434088022266116976465956676239830517968146146329480040618883836841735197049981034566283591872822960485911154331461630249810163635329157108711313243796064623173701330159147984323255823711175221019323740411252389301876152785854055908184550863519118210879503754125830194724913889157280128906285978707623849362686250940617854203977929404395373851989567223140690098330968624319535638812045762484036532598801684793049235782225306931410454112556570869616635990181778108056275796070215647943883171678763022971981127451676785218724559962544495504583630476171940216376249799266972642075786522474343304048006544913573005415496792186689814975063414042941201546041608476944490933035973187734517804253593708115686188490403548224017678488100834261785530047982096011235008451970961127911607331400962012068902698981711535660954828520375047654855086632123364806948835159432772694513977646011780925776751160244633153005679150072457585452584416354270543214434086255931263962990861796884778681532550681274382548497491728390173240134774272649437613640578812457727194143987717668457539644463472133994197714208211060249684760666434544318241218405523862062083630999754566144173208926853770279397479166277958324935096217061767646061634451762566469416180009647645652277742418380878724685990382054899353355991623758592912985971875036115421475738309693470683620548873762398751381763427999292953053527069730078158732828883153323398397184932187760290816139501404907064194415333488266086893629416649829643608288806977205445064286915782988521808229138387829027504818267082952837378206276954459798886172200550214883695105652540199988644560449402916843051211913368850299262670718268280972740419586259160351705502455573649472305678684038093565618740466226608952480292872006823478623529186022484478382235185306377747478511197159129131373393214234512359501151624897046027083379751301460836174836953953224728372915819003334094789940366293686566098561194624742330851010896468813035981482333990947070039380325408385193342808862610472078489339210535858942206346679587444801021088877502067795873338501789463290530923916347882448156125408520629997535710896252465434635750202722576125562033704562414187178119433262357174737296838463809361506919877715855806958210939262320649866539724200998457830582675265735855843247944915578384172162267413870670032091630905391483917836736694669178443695323970197273396291795521440549842021139309459690375073017296507341347981285529868013121323682269238357957914965622162234436107948720432750140137318616729649937688292584150296235722326227907346261875951481505260830960765126456764968445461111525788965618341056676350956406070037938169717922335853142895866849177106596013100855113083077070833157145777839264015237837857670868674776631934697117652186900578147570474095502512485742392991718071767961962744637776608188888611844987338497763720276414717645236513623843805804994254556395426172473057158363115086845618142316206638014511755546325488065026982212282466628635903845837423539863380106800116782097978019946741043896271296885472902870093396115610631612974955454001206092183684428998859301269053160814545726434915110779489940840428031496158012246869418438084363440621304725924732129851727196746230902448310512860189530583841190444778103781301667410740841303479635946402200912047193698942312023436799285335391077603233854756867766686411939739687233299935267880841894167762835285221707119646998486934612696502680352594482977239971247624490749761302900524173914220020877930467319416832191355662610125874138179950728921481855508222272587859868402364369766867425782069644759672152948639818475474882273709935852781637517747146796271375692138149789487015695544172272921250937779784405184852329110582945181676159774866277056405095283876236792391714213846610609889081084759725702905045623100822644689782086398555522135864396414843057092527589347083060930340119627791353711453196912629959501969313545182180173109731637322516801503582199615842861077978570368151282014498666543450536732427793147665419561180685833144770343512037447960220767646889768052071267676929122503925830107874837455628113829043708353274466530618969164921273030451213360753714251602247247864537662633130295872518165487090500060595401993324987526023275881184544870374178435816476476027148348374958885299777940986470776266580782057301101097630492530468532841757965754225655156939530484199471821069964859491703043229081325973863768306702274443740737690411757698748411691429308677994017953452247340679346312694377514625879620811454443139576365496234693734759449583229514031037620048503520387134373202375233233753505591037615691065229189772874242090511291287630615978397838877183772460208817926403079777650730075166915918355335928986653872223547348352112155123029290606287756544880831248993210348183359113767810061728531251332998388639740333613576513074828304961097748741532358574443323076979121495824428651662956731763856723061806061065371779238366972117119694299131790537687576477354681555715325935434370974148144177955844514042504907691770794202092073323092916592058641854134779644116952680959582525239967287760282462064399143456205083298653013092599624258045197999409999073667130218144543090201490280905736707590927750377900521362209414804431685637936988836105839248787162728899027095255825538492372967614059012516160950875591621011547153360621288358644281793926984876039110260069815182453062010725021690469579954828167555828575083560466813383804067607946775601683224431031119139360606099742037827373637743790141954147957578077328571109937206526733185202506570389681938423862516376878238159847085799882385116529073583233986659241790471470196152142826535986604739188839317179648494050297410564683512502653701895776731321483800508777727605578255779481066534620984290946221057173084242326645780138306822522213789211426920131516423401259439587576477176092922115962120950107344584814612559807081477315339188039005593675364150615399956215538661749730564219705082914102818423695444789667336679639490931109774475074047399399710779611061341592199247250328036353030230661301968670007678326925108604702585834682194835108433568804252856935450145049032597196404487569076867196147719118108915972130066145491833930182626423304229044598704752789999421215186584133249766516575251026569321800509588731696473591926387373690411975954296540456126248498047166170415776065527521268795975487694900889892641175593743446099907462757807221040406593801283653887505356437402988163419679705151829510427866208817787291418958437949966658442896401663720405139228605754262659415636068530332982033003859877506532854443172774476462992298715928671535842635478270264720445502907521764121474870591194667033655268486005294727479536404505304843008011314090488280971827776915145227768455961843706711763756007963517397160610792797230322944654307822935601051722013172950714845288645855616814650590120197751143672164087950534402016177734832755290898864516320048653118145117783435135689280798004764630873156141868880939246457384247498801973263272192241970691263347361574013684829786804005445551471128363171887399304058134677409161128506339317558561991353660110803678552931852469948994578994939839698724290299289259290955837160794590958906204784842775134703336915154368332406614439163561040631587590860958628891828317651619981505289917401928815569186084385061706157320803025849943151643107174732300165131103942482733053635788993439687764962273439185947672233423231634140743079329712994181929065054507299546268735303579362106614242158434167436436439784393545796655862036817696873070991607332644143278815405819111493374925936081744266404063129535278504359103258858768099235099080754843128556860870343956906609347556430517399674329604275817975913373317238474454413231573726236115347186392993754574670331235293724613115504432405630383306688447493158963377580807397038115269974547729438822121754188802626555288617574228199819784398737067246841760357137998357286896677406905111455628890925153338475742947529708854877474046838492266678325867401559323077006180094684305579083503808478420991360208672902752361279534860756817884187352412987785152996308369027943637920259785932245067803253711944344893590052372534136928825127652680560940531030083794223174982236590205305153775903974747851943037897103508223211324405662218949726929378955335885973317409444940613600721944414279257656028439295651040690103495331837943563862100218862204009665490358766385340641696617246952998086549313421381720587080576873537266169769936340168115540363797298101197763059123886036972556439789139380885047672583224653012362457650069824744637332917718266198993913009569806598624824376902558580353977924623089668222717021943960900270134761071001396084318994270302583105626767902040083157071416027730294550315928151981714073763428287721008187330939046949019769813222544758951444740040572445198465279103870983015525233888862928496151989009633768264091324474347363972629487399033973087952479678439093920616974507840672816016529739607839026178761373047871647732698621291110766392723583239360269245171212375570102986157134010993508049491087257095348291782426628164428912041647475334115097167945090758910555404813491687104443461738391989188071426758371738793540941062824262113628990472413211408376933968438786615504003302265723903906173473659232769228559652701511965130938085030854337002072155778089004167246468017596384438735000571616279376531153914068296109844535637126996114366212493534450888298981053215830465060092616856321599836397978111265050386672573308065370760025257958870061269740911340999151053661512860154365435912229252187952971734847071169632714150211526345779749874272330759571012684411850593970695101967565353474421731842992509945463639794409433737902017290662160284964983883504838859896701998878492004842250911694643428295933004844932587363405954352171685390276577373025402610728032437786946046617349022204840048193657695747590069758169023550428443628380796509698742586914940021178402065465683518545602548607192077663264915171349094281799726703934869609152236805249118468739235503503499179656881088846150823435817566235150212193075161842108876559822981434485038563018568219220751042014780825833737823425729913389248758622389888257521171860881769671950150264097908999382386889435989907336714433183318798217248425187910836702987407437609719937276994531502106724506316935588805182950566188634728600990033889415599214721657928284483110991436479120576344870402322441665604720072999432952930669197348757333743672485400820056219910715529734656916622937531385991288665085639459146127857699468694146977794857194342673712947295805049018965775816146930257793561843469694465478848966892714606982996371363849119275919429686909176629684785232804099212926255742672139260131821851620668755920939903385346031884329888018285533915177295192235643499364433695894535152630240046818546793785989911189996456001988322556131765372329888535131115444515394904662433748628066302065897965815862631467010680116253166763024096801457286461704096809724176622533330526461614635853109308478123856611070021368933590436161730218707175712648656097860062584325794192863891279244300812324143557103786805624558393118336709400250334240558425443089762667439517298202490283040587723383484040491770191103160345167540649936140063116764717881872842456847445652573894721334590117252325209749734742580527305594713932291283874114626459816174232438761406109010843233730658296930514298022497519170675979743633250715691284929695813515738358434997818339479284896224610727206180427695469289603532744481722969231207992868058128013149186417446328249952090923390115955511969870343958139794330836238708804086709774369313499927536251239949054459151169697703685184069385809841507739542673479436760829992534264762343382551128618499011245354569947286361527864314649197461436994648913768141464815321569613963437283287350794174733117606737978573586917652835051379794004409345803865550565566651409269518080127197222088182042316220707964100005246269628097262726754034945107239417117255647886884175016758841590899959669285835741110625249271811852924810976053156599425032963903115585702526747091200074356923430255755366216985658253381005375645454977197911478559653582544325912114890954782088534145002544705184642772544590668417224422642253223959765764946151467820960091891777638959696757553359259771492660075869021212784501585450229792976881043839075320526160145695300206501967761154711702742217389457111830802617028170298532095639187108567707467479698506706385261683661035292581562341926652356070292604264321149191134903714862775079909441863153563664799387881440437343736900307096141281234966167719851283802627237285080919800979996353805849543852005169157781739746660036480771856713789090226905502544212808100920164080948906808490825236933785279416798721980656787871606174863927053134691024627328576709450677394748972136913966899304391609957465786198629688483534005823310680960611215384021711193982461008754536884542009654450664300917154832347131530064450037099980609692427570360927799787325286040061340519185629797828439491750471970749805445854821571799281585836324922251685268457370742530994727318187838140287886618505411436657938630039668526711102535086314762613555898357469948480632602259018443075012746017222866749574702374931553178766231143906455452388039056300374037261881442597898800774544719542103169692910972354386277534636125542329518230323498939312410549295629430562099370670036384282629296086175277672912570399344440868000860650304785888331307747905741219964873927185935110257052199343564628158195009225498542712264319902972205882391742036559732735985478461098407411727759739208292647299894268005840488100209920516187128641692621700335270227557312537329645171444593655890473844101885107504990830564461529171290662210750344207598311706528906002791625025667119512832965598354938820872867677737941452852950169341164781005510046424120816601610511143181978526818596654059652586563023724061169244418788595060182621035256900387660216834418131086657104349573509358898405826143987212145254244846077437937434719965954052568859029307609879364901680859169890699686284322017159984860471830782576090778176052156395668717100839613896099032778937259485612782486457195962071128834423829305673704608772322435193014868861742790116944828542222050303228141553419739443954057278581175078900778455881533903871360847091235084580884363768356631763616356544600583299510685564744556112304314315585309299555780490296021387471478575613471488663459829084671738647076966095119519254061149813397546858250680790629933600658642101330053503651261902860480414586702455855924822787920697046842786425903460977246157875295959855095578472127312506761614049304267562328836894280270018794149311773487521438944386680789195648014662133512165048331700504382970432268212717865242836181793422859661697519593803204523955647965625657565246227563769732950304345276474558741876895472165836832346117280040327683388354369370717734588328967249624444304945720291510517892261550727344870167127030818930200151323729470324127498747324676151482096555558592470140467956946102209861881451778586984496613172233811015767018209489799376921763411182389965904486185039794777669861538581977774428191028479629881133430724987103569998158379343146821139061187026613669749558892376815364898938016930826547115370762661253490181025866353315190551171935397054878861572269231400146265291934814399195311545601739755197127288627350961819048276716279427946123122712354046096270677014461604274548452732049296187851508175794043698214652061972877632645238289394635898969356896725011030443711163545443976431630976065234673705885190750502212838627077060043574134146351594757863981207279813683818272118525852953450558825670636385006456208681312256440549387116328061170009030783544276898018029774413783151286037752916813724042161544930598687434494845779081684778155092654261910732443102074476672996150320496111070011316192170199855893435183209055241121262571449177292741174355150839543042674548039642444031127133630584340822587347114941806918713769785379439455301799887213162955703790445185944066188454906911965299939658845379918854560035662957749129740342808570569917271166907269056585138118602211781246468452036344467496383123876661295812314453670738034157672746954577260087286098915939182656530239165716675248932713074056471535110732803677202801054896852586009191295524915918507686727400251410349106240588203083503477851095243921956810765172990293815375471621775269746414134701863485693713176323605649127073973255833495912452298104509983618406545741645047199881986528248827223861095824505763246130692411440862004525090956163365688469807939585338331422812427785494380147831462322571473792854961118316150120628125423421912860513297295343505328335495987250474486537796450449207708937250836699735929835139309750658163595069325036390461599441848185056341922215931094739978353736909964261125945517295439268745266132858783158480184147936846532107221444623777252919419033020798631719806711290526243460582670032747893909582834543110488460591109689668257827788113367699204713611318545138391160764075902344506258627458771958135740785050390031045482716477466941323821157436271130743909750671464863823385258119804164837168739733655238535072594884607860331908876188917553042733745047748448758205863543799731476978027699993612975739512524605115242638624564975047092763837060597931047033679894822842605092277022543735591261855924597529120961199337280599682105996751034162298312754160946635384322823386631251043321442166564677083727411318142852101639111965369784614922451097933168923754062960434891913778284796323448762884885864389604099858526925283085826160610127244886344240636192426483243704288367798973834343884261894573862115411558908917652808273041870105159184242116798842711272694778030184534936704633171019156868196791945046634684446647211317455856440051779816970541409023726260129988257940431131092176497112518229438282089404545871352331021911742098102298243492766865145205176672071601150806616145547749688938333237573418115060134296700322181919113316108535308663037308201846824162175014705529476643696364058617648471781184467070056501997416886168768373027941106019113849852176498434853761867905775242892220866753327729460276600298918743282880424868868946288689856909747642870155910972415079078055529999343353171957076031111652328240708425421156717481396656346357100853651377594771396098719004699664016106948313330348922344383514020748810145196356539006380495656065588560715885893773071701891423420338461470363702376016699395561710136740279434591438924509346501580735480901998458625927006649699592227675287468507475107875822148290531712689324412382944698937409635953182246383727512964226156391902771392973897674969749308015059959613612230053159166645435179445655444947313675592349787549376622303708268788980056183488651069399397262232950410430685973375336372642421820043732482867462050198484928164970680098901545768926305509315355480433575681033454762386072982189554888169918793972392284938509388051061564163306051387203620579174662413335227369980173441538857592395193256494595879163906421980322700400774671039475878822700148173173649590625764426660464539052721939328423073236389615611089917605652732803894521433622522121970587891066128861019926634946596851376466308012314816435815030090720539182737837313374138374141147785701358987359027471998699853582096201245601329868308182747685783022339282220071366681850597218440652851112716941454056659018509386876426048331739067731222020646576241193666996078658893192599027425423047455574061655696432448368874663614221427140138462707589417504033019355227215131976391149477066386198379523311178221206732875226277884781416197478521659307654812740508654235329454212852603179282488968511253910048042541410138247405680754044013743521715166986387849630620539463864318156097076486375838647356159606984267206768774423092213015991034132985180402810613602996032859683348603335572869709904182932313724631042045463784850047883965088031438751423961662425937371483182586552800554608999657562085965596396044930969309998841490359362768440022325307738071613130143104226548031889051506326108809298215390558309885179983370779209492446582896864868558707865787061810597555743163032141319076048774284379244624065220218658182427133998567747073003072280750254215182513406113227468800374074035530863546374549147578312972369697752675953918286963235432556391046411243810834097945098188493204434174210991404485610077118408102961950475687172501749693012076304134266168110562573706988504560467550905702096221702253613536873652006203852685118953396220158327576268944623672375428265330959323275962027035462944832793402459528802224333362052527099174135339926969105750106626138096550645828806293380870506533405279344423221778328678603753469521929336397402507371213825329047238436471300532974452230344013778933897635931671635616933799599648961656859030625168375581450042339787549283184702254562561532847843952840141326405140591372347545007476504113298042484919381697463088774588607775240859508582742592196430145097518751326679925242683489592507962163097970576335648797846602568729901734180249594855376772520880876061994069171156596787290671545427105719122593481889395688927865800568739807509882181553026074531565932343606155042326349776049668137161136633822486438738152081430156733853790468976667349767632131502814833362025806906713015335710569363200678799199094893582752755693140346960256739723688573547672761316609614971600962824064065205887753748596730858958128080651680258441159788554009421670247738292762632967102532745670838263415870513678231104601462242316223759565705711066848667364300062468949900983900740169331489821222870011855422975968190409651120858737018720049317752371976499297757083518772558719510585028257215595695353839000419852014880728369001347927992229936712791192329229360405011207609524936359793695706096695627478555655248321835401333214086866641683128806276193306840206180366797884076002851800640184866273800264101574788221219885563216636362450134476267344124441945026781589603098088176214678806086616727344272763223200670883249941194054100228304861379086120455278705534733063079050182496157545910628248294744063166079122264830960755761000175587367689188444034678545575586055405731669646397061294655217636880999655529182721403192590017795137078318932878883136794619642181240811261456801756870884999024807105411630325148974234437267027965758740194983955944128510977296598222952961390363954799747177469646656725937347157003224669458014468121408250067072710779134357862613169253352823611117732817228952187720264525004117526596943602403840592915079060359416910709580117290533082810594683172674586918969885918662779088462259216727384791335631939092108792024549082556626983711623134432926489017464193111641487736227338762268882213346852907244815162639906177928261698505642804290267893834453947112978268095007964003913120820163095839883787527329395410219218776468509770266248859926178020428792294334279907839553828279644357587299507226641564523560534381390276127309642540087618078521694590512005917497722422651598230637423858626525124616403572665951127655337256806451193394908160173745344323122804700239831856873840635018947957882907903694875209760586321248267455944706588632425159897914307644173299916111851549405979610014969475383823258266914076814709981485738404450954277144109451290167880629962223697792570766215431845802467632073661212108729704807728106210215199872407112881535016429444282356774345547262896782240587195406252033719454456211562334167191128007764855000133348995347062081280048754151699445241769101748919264422107681246730958008346032188252718575624813173927272625018720358843460916804475487103630684570281718639927080746291281619775818010321426295513301905664107434852766253483538239323807931782630628882114347937269991617066716451697650520253311687875817087008838334744366467454247280589049979413340654460026459794329994496070067746147620365956943293411487131259056326117805829204716885548526043393389859352969806505464890177970235816454305955291237892070223903900586916443182788456993508262361533923824167868948902181090223747654612996962009022275680439289497018219048862491545848517299700384874482482358312719244348189900375954708449413237879352142282828260378406975804579517832009613260025862172891195538619984830710793228219991208815094581020174939141118033880139667169555931653095790680779457542830915795680696412065648450525641694912309156173972302352299937706863948356638193587640283569013088079077094589495948372413639149239816647735979614393386595345559535881070308919930553839502586408976177422045216927587276992487332418754479034587305778895476197331530377559376225944691557742266871350199429382014909711933858233120294327500627904350483149358595213802092244427877762787011091331402179664272206461867396312739356744854371291786909258865282329760509811533662738622458601062588715617773279599728824394019305246586146087847928138500886980260986117119266472244647208820146904872725914443196441950124353965501564264193796064724739070371558388888469958562799440228110651339945238228522383202083640709616935364483721986257553427819651990730961722531730697735667367866251788377310052844766084522861309736565483674189697470922021666009021764204060908994367408721044473676753928712643071987499159250298639280627960060621062628589301546087798112905459292203759036470362495885335557453948508950170370584932983200528262250515095182677941074196082404212552428829629323783840323272547028398922680657983948274714967227766489214810170108090399499734733210385712173925758116980986104792897534972307616991119660449684532416504936524725874038395885861424028333012578588242432951618721128283287442703573099017525817517628404392296285903388519976962920494156498674780256048583172385231376663265343799042089666005209498836029611604657454067363900457723135361016939650570637377840313878995692271077034377401508453544293359182835454684057341827199820349018989915890563831106435252382314589305638956485179314970181231865337392214273071098403988890228297753019525526507988032420522073349580243177189360441560797594048484860285430520713635444876995278329167502978935026975981803911594160510667809314313682171605466758429221968072889480937949247922387590987341146880405973097208025118531815462039005266022130787601691732225707482393941921247615403659955979237129184397627240464043046732805078992883829876195909556007224878842613744360614326302753102220385770242002546524558505947190186935396152424907102726378243172565981103307093289028564750031697116089060059711614403399348710045781178472348306527238523194151715164926016527321922074455189744134201745692458811756221967715205365821108122709042427411457345296331195516958858201706242555319161783447554275460140192073627512050434724203284074172316089669811116729637367782341834714375548646408417466649166114999515891515646974109996969701824141122436595502185972319245160811265769612540134738398865691725140818649434807065619202963182874357076212114815852186521042505849233530560009020196637213074703822456299074940265254854634494401179724401512091008076312948115531603597517638054981332365222885217829915061381165597126122006519596935611351854626965126356736821030379753767084326675665217409049178512807655374983633327527615385880575906409236569944535762163513870876905236564564288011996268014265421742692760320556443457944526893856260715970551583604956594728105811120034618869454681799609972945840363496856507037647438865914421992147529503898472626725409627987819679839406301257270381890758095653519930562873509066753160635772577674575748611027333287407474417540903376578847385520625445145977855350618663272919348784188475569889947113319715527674882964861716957192892796401793908965561961584601516373429850289366597211644353935745928685384522506763061150034988793164022009965499089149217527020647664353470652910072381476903498924638839234426197548151251270002313740055364207399698997364212297933592114062912273604237980293361380844933419857847073740296212523031480701565775237540014943263740195687229632556654204909831286091922746607626731236692451425350819303075712103565996086671843006970195712414841131469889467728080563018122952265567851075820473279186012699699024072714438824245867158131012479207946185849969379286006558300546214780327215176207070562188054532916824343880502748684725847493311319270058616456615102659377971810183950111670345473100406293823384225075180281444629674025953285527737382937951559055101287399612271118316894612255142225123300205748916307483710779604097289935389712598224189486571717677089960821215042072524468943460794795988486535458560747030858918546066865464448277062985777772381549811842174273051442640795162473886653698299280152321471625725780310701267636735115910553884144148001689609394173834438607595505839325959280613436560654470165311485300147207168831723910057501367943555439819933783938962856962760793277194441897793768241008142027263913865244400541630500799640280381153383337611213514403035795538377211965021358105558353341895091231122085357804903545808408161401991024992576547570277300174269921788373945626988844247902638505065785962548295560075409130629085335860826200859923449551834503990053146588102823937666756460136548098966817120391011727861601493582806565038070341254147949003569803853682269046145036275441314555882829820377017145584061304323006982334949535640032448738380274853029316901458963105343454803974918791406232798385567467935800619800720883143121031273767115886020997445658260730377062653324320389562415194030730031309427474963957754362561719954102667470600854943591733649963284535447784609768613364390152681898525298105896090146467890393668750788879122810418575675433977801693288081799258422174110751420775880995038316486531367530209001739302697100937931486992575427591737927098832768296091287113243048746234219969528213914135904469595048854332974410515216087611379990249995457185414169179690877850199980044396833164250827843065335184228814506271887100298078529729867457125297573031870807182153128732451116594254590749614561669182347551997820817537417817445854438339490199638829782927671454716392377792729524345147319606431646093223824922009763901821402536209377794193280096067351938762172865593418430230948122407461180407824561954796603630665444022475856410804603565882357299711257885978881841545254541521298546225989211478524876086253117063043370665489299606719969598799475286795679194276753094096414261146186861503021788658177192548162547041760310867711570319640704041218885380058926601345082559582808978844309837343551698868430959549624266804777407454731449299306964188365689872530461765945333575463753820370619847707313790758406603255967762660004371447568825350904952125179715017186799049043451574258688271539144271824111892449746299349553187203028923502387725948658563519717308481699950159404813285001736905349760982873074450031230854043770437083029240142512757885370604233244596087975022891482774313136655442627113602117481656054695612104021916318287871916323156069197472598203601404735440645448023981350223652425019964533190709697357694645147248068018311104135175819897774405265634070265766096469778389757097301363023616926424084880178434775556226996658193180972668437183150808697526917169606617266154320545077965136837660326682035817738131395787355360022222765047086810068312105088868530071109788240444244088526649910679143232793546798354370513511731313040437235963616462620045819901729673535832908007462300825241944491759906256880693639553404245048663373207424610262871309256335804855072736337585382711874989998439302379949291890652778171861154699027424955561576000135789443847026462676491877161013227248741648802183292159443910200509354400898034418883453566538498231130870546204851320778945637797271660997935971351640235770325423103685297927629641236246285693675714747261809131138391592152573957896901290517638945679273401278628953382006543216260667576476082798318492676542348155326223770495366963524063266249336932396676688917937780588687336697484031837972692794837337914675147549688216439255970509698640342249893796833113303319074700588599784624828565242960030453746425268146823120518127484548290317768774595001152164035702623049279107387658751973900262927209695247354236998097003014646416857983581295626124204503269489660773509187361306194585864075947197427928408480333743631525732910506997680667038504153275336179020307337224763171918283271203059387594828228216243937339620508741900756001266135906048971430088151635769235132041044753143012495130698825556652682656173935673672963281206743438711385218534913586133265945925902701386802476039204211844896284130188124068248717232716787991238045812272466159034135986514089790836184161366934520007359824724889529707416861529551223393141917672785745967037183745370291970700347383231558314004018627552691088538050056139585720216818147500565631442806361650674137099449101273309414224989279145982394693580562028726043784455485616530446167086515255535072127998790581124299699970139519622647866015344101974438212123543024181521620439174292942914460633814257629841803451961776931139032064551511636586796416837793562260272402234027420316260021823830502537976559524019981874561754684096978737710980704176905649300312674431747188168569792312621415272352155254309634963024245022533539218154327632139519413071808129234244716727626509055219997125675010330060544630298996091664157270436070293106184545172524713855617873709825746064118249223023320910696247800680607634517625695301948844586171203566573330175922279358578050080233742863897587950004509200705702610907231973652390482516856413221527189316292272674226503289075209978426060674434576197905899146502343416968518840386054865255242881988661994720537443563551550997801531976758896299780787252637254941923091481055005477652943591443580955222737021278969786576315565623208524920329529840709143666814094385871772783797247935370631660211585693697448103520528777389713433704356687552289361010999590091104831112465430494893110502277213347958206810699573920192192212643027881839902716119899680627500496310800721893119351929119713972041441064596656151252585290055546148381386659500072341354254527621532669802038551632217280170666559973098262899869188877099721706792456189802756809301838696639616919460857405262971234358801210685197063548604084978533950425282680210171890758302384408260510996804311681582903749481132660811271068904134613320822658940922223536641291484488820381015432562608338832274852967329700484218239574119544435038741924502833449627087200644536800699813417073670006728236935821242471275602504018305763675452955844786437738166945546314338885429093075910256959147205281030847260119104102712029736759123827978460538259487170566920858410855741431897594434937314093332881590289903056139097532650655862069189339455073387173763623642886138178835106768002168811566759389519875707373392660624308089377296633846057690266476865762016950196644404420468565342000212680484712661199522978592671614789001581108118875526763942499557368812767494511698601137994797097478449770244580677402563847464898274538559127617700130412160708861601361462604326380277693602550092920550297841581717451976451253401843851148734840361779196666120934474605189277362363660344290136681233250640452190030762613049597735258362792321918998757184176434451656567760601718014400674075451533714648653306342347096071668724723435338718117492391841900118178382405098058403426453058845964109776167286379255228403874736357970923123012538394745715699596675081991751156216467783736472523839162907510861172899566190960864035206054478339840395448717392414992806440797086171417802968029955922728608829324136542894614235635463651629579495671302553457400166234992381458285521789402337851196341303530607660911900730917459656048458653644516248609425449654544089069327328081005217503608423738392103171806456150635307248532345498906254552103117332531288822008587089598670412098814635612868979505367573536995840155420814855989083943203562262193588787526966921969485775672414818608784582949288393228400515403890877594322080418803597254055396960160751770839580155929342975009906426283693265512645567357432086063002690962864744858024669784731292482120400884296777059221968210158867983190321846666286003068717313879327109658888770607597277284412979121636469626452267665282267639959610024188911888270990428627313382557024011713097946647578173168535615217957604246871024417236124742558473324116140667525297569712545758072670233583945982879017203808491470726322352940546220127532410472153309167480012083635433135883665841233316327971230960779692372277970486973712094285030554235830937923108279937092131113528253642370294796617251532429448445335488431894381094382654371617017764195565109668626111409386791836203216188569427234450589273190305285867373838642880151891507585736338827909378121235331746615654056097689549807189376937001560351393833969433956672719822252692190593286898150090421785797711951960530008496914984420409952137786277179264461296627028029792418205058875312427813069180595129533898918216185264835308538934001844059151144963980356579149569378656918936927467910227852386064864458939192136265693346388956179396139545323424445761586632244967330693261071621988664729940961278458718901552346316984278566793438269878834518784241053981162951482431833147545888690317683892199486534738901713824343601301251866117510460449702030246451180879498260239492061709887519455524229570725710828673638422211290677030164466955766746723806314002147435618271531021958803651780088301296195898314952595660329151120228219580695886912130097829297139802369204547205066754418631919261644364227004062392205129074849081323216023271513814559410992869045714861830769167144977370520832923794884688192906083758690305312952546431953751561752388947032267610512861745308145309906810407695882392644163518049372130727948828942780722966906896837823598692575309094505461449560308755235428312379025814633792165844247286844613364706419928897200201321854602398689637314876224356984993068237213965486867032085062642598305939687996057857010371920063804308485328689555704273340367013454848816226483449253727332667938408563744544462126328095907965351065819960456216831458039380922340514075147448643457380380712805779017918910642147341236222541212302841168522064519765157453398286588563638965282621606407381058178057508298869592859295572094305652167844100637938463953343040733156814299735907707122719524429215211586458592922911813742796209603165385284891807789912104567863157276810529348961087904222417549284832104129139882924809321668933751643298537807871585620767226077037515313917583375264676941142400097365038524187808193196402048711715951199708244807636691265100187267704551252995018227781618635769152650335600923730738882436109365310935070562474234667313250042695340890556066438427507515565537197467425378092787616219878457235590632956962100865632518611680143035698287679156851006338429264894749254543140607744135683676641072508815158241617649266887410355282450632235699907338757605400816916253464094747152770663690276751011490441829084252592499717931608990705465712633948540403266278690801848854724682323649405064179565787399177488641292821143085089039193299914494297193057379460933020458471113433702192996246239955416084543920414022653877070150062701862934007586975515666181860452341255882156940757672210746753474043831890568853122673969823224784981840499894205648739036213817216698291563390766548410329153340802673293315838850820647868271627971210921985846479929615713257491570623023235302279124635787279658472706720178859989172864784909227110105770304961137599343180426571956677874978899187761310402006490256528795870461427418010159844671817832919005145452188448023817401563282972185655336194156475504660342406348956319553867827192280837389869982585759346835170879132829259212618348588265095487959867232914747284004478709170366964218611219042487075969088696184663054230477142258829851989301316059755596761203182324665355721074263285773886953554018311276975983414322086012313836002270134338331165699628228789754878596395245043275867338101179386885244827239638965674119521145025768542301985384031296565864195704941166789141629984693018908919832823926097074408381628802255211422449286702734216881142967962295008508504348883234773636836294266774028809621393468916724545078853761833767966786673916186234169692230465691532871839068794467385418209914869792712441638437194929726672296118084511767535181618836650691984625132472990662508622399637232897407043876777993280462683692715392264282356513690967957523084427519856892445173973269299655048014757571496384497478618986411929345871613164447605997653864613963325360809042146165968245757870516223559975995751755637847838742051836487059975511963906407877901042278950524339071752450776727913357584784172890510091218907434214225660341393401841903111863650019380232973662478758266316590972886272064077160761126571853980055045945662181636617766397341375958467530369530150110770362124598980042901174793402593850086162430120768246336359367643212303664112609214284310969756559473030120015692922182731088762818275701807444819616200439173515103815253849075431523742730258268503619017619991893931702729800637475052825811758771465143651377222269985813778422603939025960979708875685760212156487913702733726557214037331084137475635644782546831964403763097721106974932744931363764081512396439076239664431880715465529268708162626343853764715511109671068747747124181670889656329314085203819608634161564031849038477444989382030550333700109322584335701749512232200866772473700348476936981326393176426284012197377468774453600292009606676167907029614184503289385126564175949056101871435962543260078738348412226745215690176901952183061574733743584530173251598402090267293758821760569457332425395923973099751402882170099741208357873119257167634735182086480772977496531815188259324836594631474180910047259690192728331568848457552549560258291741642094289830180800277385264995391632760190733373594232583124362278408705625978650188475218763774736709360839979525817073276027803922351294705401860932270200465713522972863752405339624230949752300565162160443497357006367417550447260658307155618309754548449203348223857923870808436797826115356325036290612041303901040903073561001778188723373534190337680125412039940299229469494750577833353630349371319058413668052290636301955328070556953185268089075198483760329411305287251005254870653388532019453256703998673049730465771208923963246415692734317041882021859900115603306456257945499841902306100464118679601414502783001883958185285058318630392702127735746678577680199061444953392639453215231289058377674014372482614779403139594922737145480327325649213226082129646921941794426340308605322215160623038743967031733160248947720091442572765237288015224763756725376944249474347362099910748120686100566497976240968920232296700661569574478872849210524570778116536263972900937855005430797045645054174027711055891383993059742854861391262838882590522533693024676647069654824073535822743132468011196772056103627842284900022460599726147956872582152792506708529055618639754219109466456014805838711693503154953142958673541323072620069184849956871472598827619166363637229965778110965040883258382258555733724140783952378277265309047909495532049775226219651425536634446930548569926658421847477648315996993868182398661320704820263511883711243013978551703536467474062837053359709080227439902916078439221598653180929691630175630314767988647995063372690178396797402684065532626410384076497182269607495596032905465107205278483106180378085623884837893644323599757434045107070101387040035846027793006095919264745565511777882780982217705241152674642454280758856210058043663645978394377440080383606850438454127330253411948160796172413663930233931171834462794165901289756213727096559047936087651961971929209430512103045502133225946130038364451583407679232796825180875590025850774592291739776032895119326482559580276971540203194505280097467382186218196114460752969735528452445239413940493697615078201279522680957526764128330759728065758510981557067917639485034485971446851361210998627402057699806465836539532259178675150309873804191631443709031813959564887377856102437608333933171555318141858324487696177176996165589653609364262978432276985266632200272425984254170523060057140956977724803082699561503327184353329124261491043534519705344320202381880882903069993011884592024174091772927534375745659866993016968865337918256648396409714792623370021510761732745893042705032211135385289023486986664849092297530607869783302142161392108737361788133855621994537438235283628857113114276876276248149708999926086255360665442640505081295778408540670994862118869255492761727494294705925889712800176520254172808483912135003010311288664503609962012417929171946213721190314735916063066536206751427150682859181531146343076366425605804262268636148192033540534643403977643178883543230184327825059690133763798427229940338944566647442226826592465921947635459480549465082601887339467928058553260977758168077179225150401956994365141249683860429190228869800086085268462045578416402149595478793269322538192698143881537221525382774882297727168096035898708235872379458583848814928118721135278102595137472949422567459637418411130686777824473030951274253205702112108961717536048316426475340542379585726319549523484416273802366846206586331988325484814180111918073083283510524268390173204664625727616352082049418161560225945807069432838158485341003925185647735836147820251697490631392212447653204709118720389159122073108188061432173109836666171626414814851903460176177923368608260942824819900974654998742187999652301319742254736880249568699843962055316682753265390997213975238001440896534937792536498178448558538920655313146389528707124590383038127546233314303278891565326782950099328956475397500939836872792443061192252122035323504240413691995266668056513338822757271857192137639761192902017254552710791677699381546824580764142434792750370338767901704881936196674506000363231795277585690100283563443683108168261447216082335808078642542614123370233916397022532035427384552999881554716507376037487275945009345543567314327378194249285335493084887227423221375712066788019869948364422422191206575695186670469582649306748844905398063670804714496812262136976236249808684807485237424357360596882652321823245174465478995821067308094767937174059914204708979168426533550765429323005134485620150740955609833678157087054521767722511780431518861922027829259690743459773830813008624988502002720389731546324170589973996623030345737283029512368868294219274841902116814924914773079801836048463878149229806247935402591936470355307450323232370511905208000151101209292534846222859283144214978662075728379594201474119823835674922369674578486884461182192281742905098371367999946540365282957609781075040878067330381816548261328929307783780474359391891552408824456062145673299795650442281081196377702654366209605386192353648946259612463810734460926433909103305121256501279072899189370560596723135201408930656042091607292944028531294298064122060863333625423567941271288743263502189604958680408350321344595417557310079763257041659716529946131976997950633524898659800671137040109773333377786786709166836431920095597800644573858875876826748215630114933783671777404366669920368271059653040135127926892645302741140258117422454821930216060299343955208987936527405336468001040542788183642276148392564107821520840066211041752430799303804549280405618882611218639607581544680893970215928388954225525478690554167302080953253688809313513452311747471975869318506178171669702367580301777194511756126695762952277915532922486303899558254750357753446774820700763068100148304267552940889277693942586683362352325121781349517574886895964220663147593926507351948657717880086705954965289332529671167464130627081671111160331587475834093594959171471726857207387518531385715611642516315048879866603581382745612936760334845753016452431157122770980603229267350688760347831423361510526233924463291606308874859956956637932662848706046781614999176830844887846447724417517861880078669576702906796119336787829603359785379635967314010943498370941505068245178222923385230736282239007814958311472996428040053446433904909513266372184247359725619537148053526417684447274339182757367692921788451528707322767031318640535848620795798437615055120156493606006875181607817692215482147242913957647170351567281471863044346583906610418163622985568763893285856000497406026662065409884942788121989036683104755936213063526331507606988125437967180440299624396635676109012218629347527928355705091493607484330602946610751911172222257537614718012414129356373884641856921296755295658369324569799673323241603224419516421910237075807829132521388457772031905509925315873323973868377486085804030651649685949542438108045880583322858733847590398174482022130215848192846916557841361513744654926842458014782144399333636240392031776774037996881229992073837570723870733749429754948564043363537436083519280057454096241513693695457912859107002793153540989066580149342904758062162860566252115706094760620269410337699610001743252219049357123120431293355169394337256619474877705072486865736772544517243283696462030878578302831904436298481801492500433491135077964104753432357939494390861523234783375527053896440045139154139457067139451166258008179555000220112330423999616580202294969214124296995287054663162713882746189641299758334717212892792529976217638093982188204901298530813613488576261715917734749203377736545648659614968178457027718728493554633494772349058220159562421372317401215905026031326610768219050740318466652038722782760401376480735401720312543642596036241336925994932647269140556526185519540805889334551774760688362293209876188499924092391886252709930607549693655090943047087624470932478373201307121540326322467226003330171098437347887627347288589408972668321846899066384131337327035199817146920809767074246240866482161564896422429537081824867471979714280371343607643154832847438971931001061831877779310485026590997849990425313367598838400622137073736257629066081748165022801515819626744865372766108728312470979919158898960533998789853202110002685027126974292234612703015904192310414892524248066609310635098523585551329823645858525333672193982845343250056921647409430618798811647533718156789891019723043709158305817610782064157502238540182935131048963312771097497046757403643315850410755794194314724026847262603708771684383017288993043723402596916403437354043202805408527562611892752807593661911729726457759412037334079625427675820788899510543427339263877173226982157976240712956147275739992716462199485201260236138322144428564071825748456969742373001626185814462213605545327136844640696958537490991528550212214010029302542177348813078105297351881085950899669470545694564353150249291771728730138293036351088039112849965181438721502948277201484657280966280829300553945306544364523648127958453915042969473394137739179993721019520491057031748394105397766378124755472322137596369693406877868898316682756810460659899601173696090700845416869785432738548093357618501304378270725371547280948171323455493100231658744015398134110768333980667972839819194411418728828216377615516254429339466803648328315384612257752183691000223494097545379863947824333291875519202075948526151191175893810101864409878936262627611307699342834716111705432717362905299686988460493980353431459001865672124815971935211414599971406243683426235359704037857889257005861190027932023532474358224083106898512607819481501337360629782677287327859445816079378190702948006765307403044206104260916376250608893605189417493233657723647473808441444160944792708036991738537000878635341821251281819439836079761595954768924975588183482933376117637665708753346938967802745505652286207902195647556876957483931350748567095597867525819476728476534768522427628690167333623556324838144079860856714306407782266785460037219740703946227658836830946497570199826033099749437654738719584736577356078123007689552211968332675556904612232905314032388249379312766278950159002859230164926367819019204191314568519293108746592520492067013459930478211309974670379771624247913142432871528489917959801403542081081001241087805606736808650536722239086422685674491117675586521240259331152890923809607157959441625242895640426904504496350420443481218825509453441922333487205684945602732064172724522351992376886161024889999644193959197339831487848571659165886639997926941111117395967686404068484925497649978707345768403793502466164133057362263644918291761932229675115238634218423239664791923299700497918286522423893410260784525324735893423912755816093083458965465225736058047957607943957018440660235816401209689068537598178245552593073045684996552774229663544908242050652689642427873932240474094844633101530694054537847002268866126236040637371545306997397163229975263279623428752189339454795797000503658899001499184472228818680781507943023011000419153257002915217562430199484082375825417185192876873167890931418980494414154320602264134236269108995505411087411616382215650118723336284125792265784789184536590579390025618739342298022725790441208046219837499058906356407057486836622658626718594988730879054686709984804746633899239982650292993254604575710114708554654656124913155792352538119437825467641103477081824311935528328833861064904028783553361675446835672044697354455363480337188851979022424249837339389540494970297659165577185385149079614315929641017951627924668285266216535988238255992531066934888546957859944871434875623755383613598835136087732907318535278827570672397129510928845034510352438456053705219494386455913402503070054133622364145099794506719714340101632058991909670873425120015307400351517587251180733498783728054609533333175656310425433917762331252783901731972208456818342153605106811748165927551130873971341464553574752870968536507716382676549042800515585442172636061372881141871142357173868719753929594317738248354952725921095450362594423576238824611454967038545881816781407121743208146578441443813475515296843726192197338665249383963071263864662476292869854933245212469408558160631451580597435686966248871423339951426393943267793735391657607633820213023055066114010142496629011142675042528787089635904654515467156376130232282599493270719641647410054375022547558587699880642281831910967271442597999184981432199847182351911414547307173557111738805314009673761950772248067027118319659392046004952691725656022839012448283502815150372070240018428808233596687671640854369882467615099914788616363352725842701324616447209561621577040270560250785411700286543990658443421910338556432321411274871623427035654239524209211520892418982760090187549465287620551645406005660587980391763475329175146596510751826769991329578667434241455099801063232409626400428349962075111527402149498191811936723868916066003757883550543861425894511371597638896566002901740835931442546398747112823385025274465669343917214175930662615810713791586088006922102939630037891117344341661530968837878289885500317867564684615056335951386176699775185602060221382143646077399956928630555215730627104995635877300914851466625014472107107074281500982191632393104329717046245676285229230758758934626952102311413902495646089565719286235512346832163281945410722095995470242097364494770858756181423680971182859122684308742861108883800635746649790135671838629209383901402504813079332239130130344649730977048705947523995708997483553088329066079869166761719056810343878595160996985841054023371275707497516876762680216546139995530527036892484421618229524476378990766457470686140683393226085452009305213001803770799875901765056038785870068946258409154642135758085204397985378193412493498367344012552375946898988291036376927012388733006953042385034530902042054882189325346490750475762396834943730386549818306472885739112451333116904129210248967033301112160636024583783427612846534232565267385560360803535950407592710665235258778174668232117770864800654013205383747081083683865274448157215945512001792322938131758429713262335122909097692470053481875849462627489129756344309715317371054202254148559446349305240871817016202397262667110500963234128709372153284834675685475145427634923151046021572025405539842599395628943045351869451153794620741485703396660593601090902454914497965378440166841008772277110274857655169375599799308638247821616313504148399736418125695916436779310518925250072910862193709258997070782924587589652818761690322167001872439878296958830457602690160825351907203035092664326177609141538526544510554695667730475664258281152615837864682687149997086294896940601019488841681618175826002655120906964211300912856263756174581358046202028917025479590532672026573492384798201426123216272759161999940024907541838631675314693288945196996691502371263260221484691738637809738577399320667954482387135174840748810825264057204547097027348393091092021246067995243599159266863388016162883144980035741475200601053424322172491298003639229877367915095932304130326216293977861468413277961382355689190661999137451335087417822831920136154094335533844463517098675731772923553728616953735204715942138832306051565643733693406739665351811243067737942277658232862404465283408369222160357243505477661849764928750851553306543989962365678846882514440231161885500543464553047518717598482767423985921485465346812425506338578899207013302318982837995560143813039101976328680472513248832158398829707024038842892444102798114475582536620123892848491933836115495599165935770342120831972951145927307053668138315485650778880490616647441008944069346427665561634279863946500287563899252038626466019989337226193891648174358303099635581368553989583461722554955382508247637297716332372188550404948660068067085941243787181101952201353655323080916891153832216455598877032709077863809757324984638409337514111296090497291737773594281836101351733516723442398459466409012834358051844159253210707187272284532295027953252488912338918003000734579977523680360809118913007229299531833900355782671300609810720602481935477033432525692275810058890590536061854293922614168905358792521808599213251087719708312369647675503936574729874853119723351414329188289593655276883357432141292240026635373833150431616961679813517050598806911080030367285658087799044062487710036718894508783518490116789908223304568756810284354631372397324324572858449518528111062503446220197558577818063122354993375365788352255942666431708769653435851359913178793024501089328969516898222908913884993924269910547056912988922111875166441775699118912656687164442321973497858342229598041625619852720753809256942428875895379385132890717057198350247667709387767967170199174584992073905642038198551662269277247827753114694240497365016233408807020574281162045039994988854223991670816571078673649080693857506345837915856631890636254830229531917646329390004280964845611514742488892421418446747618431506271882877158384751316635436479481859265283304606716685370865247786965961930406522417331256113340838260225691267249664441417063911667518074886326428194644254413001377888279977667873641625041223174712594409878686558476291149798037041252829852229449479776775550425473735797957701696690635501429007571519250660813352110667438973344825581062276508079959103306546601946395794672502518383567780556159894285605218890125968503271468494035016684949453556583581407047893396220824704997642161488653625445476108190370189076962308841810592898665525647202376294016264957416467149892422643289116234001361159754704024742898982875006655798451116058921680652126741348345308285019327285177940305324885713639749909629184250696371746067902742370802941776787445015666937287452986144303661087519246890324810536424098257614042639397592408797792238415778612037586387441296793657855089786531003973493205524935864542344606019536744788493366952840210266613350208432855235815580485394014876111451044240502527025930844438572446620367965699909403777558325067267169994015009234000409881017643933852965366657284052627491589322179533548736955508667739992177175311549497015514142349677414670509138746777518056903880512819460344511848584579354694730044989512235315690157090492152299475325956011057482980506253106960762071217248621277313767155602516084904621075619488050938159728503864019141896102090056788447415184022957487514226398793324430927609244475377816549210915827062836835485523967541540713302705017350416909910289061168076082839558115292858787768325485697975734995202723984979190813827825704983690757443444277855388501207938976473605247233474951389431894248174211987118761576328746804478564663483537262146060141982054948861036986180147988119117957012024163888649199168118826819254092927014967530122740620092412915270409643002922004336708545637273931551388216766448836083435377862558081627730727164399951000937543517830484012283780221787585011703671737550898553203549705805990421642721585513146331519044095352390910669658435252477221108404429398098876555288093524951308995316185190717384278637244632888105087253975025249889364877853683992622945541405881323951064826723572539223069561115169370656887216643415987104507718235969372331704367245003545848740986675210800967153652387257867552167479123120168749565504989918050045676437788584590458322642511476436441183257411284505645925892322396350932760773237358898140042895157720473110169738670533999625402777412794463384554576921224310323090199068387941933338703200226830687423851903224175647610052240537853311979625771132477441824072418001174275457390197970654974573953890136317149920101683532374513015427890340841644121870759002338219495140336602903694726657415007800861255875344927396646649061201848412859047395924080159616331730315068187524573491756735379106843321761767056779363391789796070445398729690140251376683717688499306090809685243931556426398391707736049259049667186398344172647175022451257278488161672873754802393758010962414723353462112750796876900707538569507048005881183582425257675024418435421200520529793705381692090677028857668556391177432388676588863527901412789442483127326042309962232498057144337943464492589403349742639962847529904363637853658162580649441811610734041287578095968791198586781659443897382167530142901254137096614504318341358104154055703574207068140949645315287482974223206234595357596575388027514815342066300474538257906785119607859827802465673204931277528506228164841452728666354116946174175595472827424507645336265795922886614163428491048169574438166838878268182605541415865753599908015074396037091250278130281481528406921016632217017479486466938663421267430419660387004500915476051834487047608603225731050351335317390115771483094232991511512860419797706031791716213982256364651607404945493952526647772470142919475193031719163990779235741335911211640851223447325680915506518407479083467092351619021832113076529378555971848823982842956862207145757054739094887612939263000483328953650964746123072105004396393105114105853421121954962721476297228723384724054866467197007664014859046921944535879768921125896313812424909336156657015413717114069190397851330607849135317394535778565345532773026146008553831064351097419230428984323643362696012536270654943127980836349269134366451271034637580428439785272197122867759857419260345174340923914187714079731111210649231973186706514313199746162139613991084112761902296684028145127945514632892228161498260687678140876799905093322014835293850457676662958149659752022948717894119595560109196164974347341681181010224301139854824095731447295773422900630804815188450124341143705344377587505935574776004402879563698060941755030863700961058978420784471639782733020059495000615893764464190259722348427292861622728507746481017251363753155111767522632066929685922650242115280394484486275144006975496729516097745903766287078028185042495483950835678312978368271487540710092628592122835304825999354778112962597829033746218626396949307580566761437806307534559365708202377261585919550417154633819579074514388429211667204848607544564476137265420517813168763720071702630507724012094824172081745861114692022826569594754208983835204842766039753420246252140271885577805178386779514922869390288483180766587903424237673883881383936506757094951075449571028892119496209553161756018941287627134444742040409840036026717145713263537644747384144302167874565135210931585409104338126233292612025389178876501738080466571099295735421795143868142324486956319049364309017396180545599597022446265383055223353022438227831324717405858188341112518964535347657319953764570721095280944979403774658168948649022765448069261849673341375084096587385361338016796261264686684250914108997760198903239962591549552422745358287779082027409189356468312720854397067108990860961455573686835380983423216761582649067044844924771818809354203264941055255350772800174527474023472827132012316967827609772740515475959331739280346369156528217424449860934977509960660846814039398851172687032650554169385889417511453134240329192343752131582597525642332644955144114779126859147226391345922040852249486468335456327939864336323289218148235969085424653346070936866797380946439805103393923312751104903226979151773082078311098059832093183384686274508042635101289394848078575091145283910589141689509969452236073583551143303548966640099974142044265876244340826300473353904747810604507842118700800056736830660771308336523290994707481755638494138296656929189392385293690192616733463054137159112644143654908425435613895078405154776298627887774394322941735390138769783839076796062889214749036081323713680537678524566492797880640113354858410798152118928986113394099465454769437528876141192223463219436801339064581216396395598671669618020792320340107181970559533891656108405907260564910043056313750622119426269094330321168939718954765233183900497417764437031631873735042442817293222246167514946237853688432650390271967280267512608569327142288764858430401992226787347991280180085510095137275307450705408169450408920148919686322641073759882006208040659312162520929182373513933307925228809830188289340118824001758232683791344698120137451516020732058848196589646489253043474820548999230047197442465978469049433127085101614654391131118405220831948937276262203034541707093354251637062128247544717006385364732202842043501606972391034463671736999570952382640516077033536992571254583771913647688762904788588093546778798823329357788824051077903081771706511728007837878041728978393417621467990340812559944805454301131316142435492236209512535181793364697372140777640658899181942860467995611291699791027205674969042353267373605429199790281473732725209861119450923713764346020403377679430297868225008951649081065715175314724661216899951417721408200955982688386175859021524907251473842188847767958858686814040415122447161207607869115435447361447954388915386109919994676950025983812704599222847755163363017362319715212498642484245742654763950341801247003520569551814776870856362011256408805420813571504802700987863659676458602712832655577505589035868183045996807977537141846643320278438588993021133957764665031627952293368402093389379053449453814218821541429534672387156652134691122418309158460779776001209166989784702706090162909662267171890963435722295759617926358229862625631939282341126151677373069413193481639754417679389922040453239222375821021806341939482908472012318567630499501512440928241594377123357233019952853028122506827657068476604593043495173743910888342616875875285504421890335238591425333176292081637059653284194674560533940791599055283180510006417897906129527895285477967513772855980704210950350261902737325510651846120274222883632691927325888820515836424271535443869255973030209256387703701478385357943002923625908128265237095845544185820865504489343203710444332598145957953975275942254373271879554767658822443435885566225960809216007106963159230462160745598668916567837593928975522708945740904719031621856351261485442776453680152543739069252636807508172559177359953497366358615220838285016032307864863691898694102952115802788331778312387437390939893034899443966313133429997242255659321317330516115550688266222010070576776066538483655672903077755211156611416843509548615812455489046334217821726350988309095847624752414722260703038409652510583084686143886432207879781394761964212647613266820879059074404412405291746915386105194991962805492831200211126071895737430412494271491497118295431940020529266060678939918284801170164521134729104275387803866534016381768032567296531210637540719853758131670812669146241526229081853621161736346496459846590477449650336498282962180793202113674792001668368446555924803345726035080948697911085561033803192465467231540486440343633298243551402139224320364048029614013463534805082181535262638383844576843342236871670631145060241638767061424704003155412753378124041827753384618487135571337923268316080226644069657470271520009216975378328828283230177100226653996121559264994731485603171252158429307246788785510561541551873254387871658485110623724335552250038552996051460521360985467890622628191862482586937543763090554087122336425064648008952300321151376061888976611652521504500887684211877625003364696230153115034088502957898670239686860330803063597448841140187061866478297293770590310715127793391504734967446801090666474979457855909861855200820670162719573328157924267419757465868668090498144756990319504328445409433664528196298562274253494651869149706949728782834650858633260104434739028618906484120250867218286962714445702310023813402684076726030118014101804018394719541374946158405573097918129984367510974837323378674954654545560006497211166095276983508679129661843130064009485483553809002625135968788740977173932734583163346798203144523919193040591368147811927365031238589472515058563861755789983049122903973325918400660447614639537724703445896737939879098148196120893544119771958536432337119110677263931242259073232705142179867726973416759648639492472121991550092810722991774080298767442431258071797686344783575709678211036940577685184177346640139075002467818228188488135814022215817454174080699814000755733225234063906970146940138524534795660608725906995785512530547818719200908084961178503907137861869261800824622246930922358121258997709312890401093265359592641555585875198524264198357217118089945000277870128206488521299376549912031250460481095314760558933244848042938924668235236529655619693448782411919265644639186207706341810521748868349117307330209778185401874362823374883469402710260632009097222122797939440950265331359703902122276667443133460681119394090210860803791631232414126972407706760439700156649313080824029420078403479530530742377900262874965661453498631033372073296271205408003305310735367033429929588951168089314229990840927571162342052894015583425369089017977959558171747276890346118823270051614472344619597569285471901197871842101726367065277636908872517310823380722078591715289857630700109060154060641039484467213478729696679827453352444157351676369853692108613113959261934828125748206896039610718964015682747099156693110908470293635637914389102444996232757255490591880109885852033017674473627309721970705501807554046349928146281566845040974872543446000633777304748943887492922177965567320855073739623932677439654933855474003690457626425115555165034122515926338483876133928802423846522822127016549384092988191266857607900029785300415290563684791631037512732444307518105864369360655725683725325582028286487520706764124003102373845019525639459304912246911822505587288275650859666767539048919365263049343560996364161097244065688803433674038250347605232031381295682535686070571130586546460091949245046987304439021089117149204978030173678339081007169173936712856891126894487944084926423298585535880184062459758268593099280809826683602434968935867315687216884859707628632965370623508842255649715263470405592167867786578392442472965991157347591869741850073780508368218434024534421610690196890140663831791482262324292906446645230185442617663183442303474944142252949860435699143099139554514815691234738110755139064761239067067059493088716900324634170496061046875508341526413945156914694976501453301591839898617691802343370582425695128135783440242955883685341075025645179355303275039576140265984169547910900716993099610739260412166389780823042025142695360367775081136771522697051973571984123130487899526723273500573691004315822749360268919798185134427808080680488452285380488647183833746954980906264292309802545613714044708486086818694666071782822320170034696824042265341377889334657369287487327288180491280762975949637562075120895980919620096579882213575354058869266280147878709691727335670931564742867225245900184505239557422883529183943156055621279827009602987851541312892186193183341169792484251453982181319036635725139279678853000951191448090102444666630960077431889691799860119180825906159582662272635909155523755026241842027420098605970006716843129726719827555791788288460608287500044018339639309570160842991162143358551118572242902648873541529247962700165448106355270706868215875269802914018051418830480863161844189605517951124601554677829158119848831609311694088118176815360335328572189753640440623361216515386039861620176591038249227915139653943142787585869527728615252511716426840977133653186765596802180956726335292552130796582628301833585763324063225697896748119786543344731960801728157763958641336094366248964264890749469832409021789620854632812554131898953290768582961699138960009005986573877920126899858504315361154493212901950778437468376969202995972919872945100544272050751684004028968348903293808683869088140243219305586802569179939939293395229242545014351991001980354082659993229743353579500650603138687180189555386249516106570398815388610909119390368744385411113482556270119333038695619065036684527053333439017968070117463791140012439310097521311465881786079521734158123792627364800664353010569049154760605369312234803590766043524870116193597725768494939007355009266283357665363962141025059310250635548428207104826393583435548504169948426586483623512292242907490459361105320671583765951744095574778129643378484412668323307187337755836946307128266487194737811056318461123135706718310524890177167250411674957356157379438887454337145252337674350668249605573276340084800239203433189860064166918760896538751477955428008377503500030414369289711957182562884893722485009692517780399377252741164029908373220769331290870589077963854288417843735356504487689977631445926618796225178241782137696938319592782183577142110164938885843513411095316138534238992762868513466909773265374987755275701375690297474594964760729398291927201270503550595118483632932364065944958116799467981143992038769963688179017393032364986896043990699620771674433886171231741381144576237036915954312521480547742282493510230940105880677262378654577680306281897206280891256253229903702115986948180901780444879407650458932313004427940957443573798067262040726017416074856335155542997373394061472403048825718534659492785401577971092909907775554449491569696598458862553134057842388593930939246777259060134062067018827896202818739799190785925562482917014357510452331313519668266508728789811596519445667258515300920708547374995469702100532804825270895001624845613209290977551592815809966267433147291286194485205244701180624110797595543458412451931741942534454673988979071525676602809630689308377102548837733191029320102344407089293991625370530836135033033647937987047262631684352877938078738191982543901634810725749551863779608721870906905102274638309323838377940840273194901735924532861030736038978927629284538446850180076741217731315913014957830262507416857848576475952858302671722892303605836979918803685083989994834192491311215737817892509664585948383007771329544681825050448259898878394967977268054019409300930035765666531299850202446785866883783455262223417201127743967441093566506027931668256698128333004649840584677603595674398901190308177437824084486433581990455061001843991264045064553917383876047227149251564701439551498660823627802323693585134016470678168085265643431725704900384777131221523012725158490466115918569435917246031104263950900671902584917745488008999065636503867330502074480430252048091879322835102319830811217366009006864004668872865210724436520312450272637128373069818681732416512434131437138001673227444007621829790821636271379331800491824361727157415279662689056415959827364422519612361346503486726109349293955725222560926636620672782718506065465638352038415199235249092038356197464810251722507995437539206553520887207470150852827134247290018875440704362892656860561298767173601089898542315456669788419716445970009076269592659076673876789532374511796801178731795930360357335845663096622732476053824152290395857966987019840036476811183215105749789387415984615491599307001451442102887467575780020474938715569802854982258743857556311903014276785577211967123224726035985564418019356871191528461071852117065188548181672816653360673715371156977219207642547868885624768027498236950896276982217151326191781870442193844442510336648581344615697588507412629605873113370873235902090042755504900992365141845261083556337362781108093874882297362639767379184091973495572461960507440023503852478754166308366630410593438148365517139817402610273211936022428550004169727093805918843094978644152296255631905051499587475660157646899787758377136237837324984605805802963119446985197724365920625718930726530299374368553254326941277463407774027884238390537941139433199895827826671051223320443382521504383230975335909120603796841970450361500363492516598344941838548685085772427098968021208699848738219864650686759693058366750106650295496995876397408174488609215843564643992688729425050180896791509537584706358659209748078035344336899963178244716926965007598417522384440687477837195298327166328787656401643943969488299186601482096478040149777806008608189176634888702999888014049356712092745121576766993507836744813712601510898350487868759261004069851306277093355063534411037703850412394197210965260785729788100511154415444740180969419408332910729389640061040892493976902313787657903361515857429516123836563170683835581076106479741351600193307904963816590058001733283895004068497573361151067447766561037327754497818905448978270055280126872962008511192589533228156741881985443088949406239956316382648227583587880678340265304700933550945820347005315083978926086716402786913698287996958930806357389543139318726269607644099454593984337822284203247139114605106917597691243549884506611308433277673493257855643935690967752135748028749320921050812808511318335398767892752370832193720120291396980246456323180263572911358662438799241206207778546520599288002881787907838203137190497929814125834583195788205960654901600475659268720113207642174020407360611588452828679698081343105884337234634765507945198392914062084788366051061494654190307061604505110083561911196480813933287292698527141415976821681701722802017622312156180714020229395181324552156369711694061318583067794649743978901656737131240225205112802589116284744187076730809531453806514070159232206000124559775631516604538385045325929442314163064806233310203858676363251879975544814241748373022223873373193453627332277188023217185015323489162563371263851737198886995413563197293502497015020870310536961562243083472119671954953819868267992815513423262258329084278706958377684688382665792819347255571008700020577345511715313691597395997641108152195485278609365530931453798305499381904108375188181757745867903137947615524840724865985654877379769076033749928729953775897989041222115934978448097802291584507675287376755220168426966555511251732030845986833976915045458994411236939930542323131373726618655939532017897371075285810647613385905086447363877315203641776966851316282197192011469294175940037290815345800947280885238206663726892735386965487749094855710640811079961014001818640619739611735303648900213051914916819013500645354809163991383670129974240376594153930108979289322529909345826778538708959675139261333582910742827326609652856937992028370163781136038348404578868253274084302301816151949800137736236735267591566169848538273675528544997483942867021235325423048719525310716925100081320872632150268663339462689131602895531798031569349275147058075958214191418655763953967232504499005263396222594661690362136736768084775713822308408373859474533695845689658463043638207052117218694497166952625709252106394362801934310852896582438258076250466782156306715871510447612532260288985846552534373881742459807653707255782572482630298872234427181122906535341743615909412366485885885759809607909295841259738160053642481906240399607268201163378999508688462358257549892353670702361828407645871997750143606183443055104372950533678684553578038369654589401117717227597046750259848524055445975754101251476455070000878559073588786268243969276967922230991450788702285111492590901807973928742669927215887758095665191785589370132509575990089858439098582470399105943322783280431703181565671673103677268616170828806558316573859769069227233449104656412175145396893719007637377220713564912041662792222739110732640008187394792114672898939878378032874983790725646379764953182464732864155941117665121608382239646023401524293795427653481223377782295999274459910900062615497706006811729169377137693469683355176597576781970669898107643190726604921838878726244247494345530201039067659146453500197019724578374649844465337924485348057918981907155727485512255077807661943509163716144189316906797335014089844949579703312512567723866222290488985218721267322720267028443354706360255127617732019635159376383999606381324848060279676996103565731971338287042070511106150068908774265848622181688786685183599838699119746764923804622976880940262459220946832674057977009364244945479973036274212458624003888458366923845074202977322847213808813443259153563597194579040905856699808560879851104453350467423218252463730077004683855647841824337222239606595084520503317789378418475268426036780338388378547009719278219865893032233273652396518312763501798750034136686557503285703112122682999687491522101558943400624916600859361338920540961740038445350628133881415895555592170430787235599776062381542840287109066974853906181871617502839397013753641574473609145564050298642994318452224409765466454436257815633011285203331121418664669342446472372890814069841239272697962783182185684705290448212490154107404069445674091690603996491099276648325228213754450453495121254982666643782199963834712404260356364891509867110017620631611290206282564983253539061183619069556446529648963023746850678435552958249912067219285097261097094925565787072109701773871603114196920184864552640516179079154462675695257804212440295639212233873077680141972895836138937668999866625934532067271968098283966801319515170394329616301839432992685953012009013853259559711697702839027612018382743929351214982713141711586655430021889240354562484891134015718115677424034285839037681470822083873974936416081680999461222278516332471965410967272324001453077234307446783450383339337745523911487875177283367209714603520618107752563418762317159631640088372298566538353003378800977815680871362785099183493847604219479082442256901620885439383269940798292681233043377808410061078426072864683175097244608967154725184538012000683957196770467349784388321632135438296829977690636688416845510309766365053697693216847067092177356023187929184257185185367841702818167816094323023830540479000983377929581511306035720812134412301688949116644243838900833047570427053986585419317411233666898943242510646786322424563461411091857526334703445702670562561475305722929215870303676449790681592573640191242995720341294372266921213140403924721030419388555324901042435571977377565817748571377081656553757254933415478102728111616111050403348999825308941758264849758484295717168223259865906430496308869913841458944501270766214471793839131292473727444786140884871874320873438097709291522868681862129543404021494149116278516539902951140658690151297313861838814946934551241432420446012382096162579460277716265475099404739186120621369348516615055879144136546580954213944287157954530031706194223617726476023753045151025164883532560791229649436134679165607940812307238241882460010048464658229210710282719708831613317589901473003779977976483051649820604994916489697567221632195346776703271237016191404531418215660845996762379110764291117611930209066207175438470576056833346723038904415928063931956181356257306319177258052664454529508831226003249919651237111310134063269103443611559106951215902815446023794285219586987229727628050744610042460689047742735798590771429098292375448880777467313543766822897300210528991657277963825775983153094397822506360992455883553998289573694107739134170439832185917497029674356158731868596227099107878109360086957111104753060436148786480548124291347176026623875125647660945039611309731069107820103271554895976947257565946830476179275544305191929788021958446413350951259927193173468683376784610668734095422563273129634586425434598747213050548158566088392900282489671110564236232732013235849542943247440813560802972190049875441564721324371417799762861833508110294043978156237865514990776839598557763246411442665724023296447514105162871504439798445272015961640969291495137737815240789741466542809783430824604082010079134394399561521423964312750323723229055876546011054123946283105282237808742202311899719343217026825384158513397272062092227821964999534033351587897242963828930655977366737621684203098166383724434421261480050273140087273498434053883719396195836037574707086112108904476670828852063343359385921850050136420814254693204646894333172961817651253315813605876433933684872142167469256066713389149861236028140358076581502550716880608368253383662743541956399984997571220779555516571770460286905293044821793378421650537169610095218105320688963188878228910793659007314454881958473938589198506404767856131454025521415726517441669073059320322436191386386355606039731073295029009995164574744629970427121900327795786189511544632100918527874184021784812999434391275867928875291099380440815874235295001434875103817666637164772581481148652135242117931257161222974954858945939887004383587268917275708731436760086269576031071759012968081961306838489976582411523122656379618239503122800227139750704387840826796459956128566642335368429215949397300268490738862973682417004342579430587413976399429901795661858948634743637496099092644107876572006819198114990457170250515569939240807393531781903597607024991786312709848959864570407097625514086578413769765786047438823804166800629201003480008166833777419258446392282818129757653135668355101047245386066011213023813339569612900796180772938138093811121243654045663272895943179851723011697330337918254411602886065113027717194594865316418366643552533510578451965155366237273999088120948601692383492660645587882870456787729197068217372170228463986558710868385726146666304933686164382637391558183777182768350628452712836124878451035338491686694898055006997377358234970682794198894310434452549356957138819656568702561823647424352097740866906599431165326953999852819338298017575077939219573151597321488885841306506144250076220230970879933838370312829955139746169388603788979792629693842405605001762349320207778330205086406199507769948447158895362026704446887308136148332092727313012270171203534921132606101398766819556628810339469433701115073861225778142453241807401937350769272824981164148291680559663592080007016265768606299054608702499657551286930929562397485909301902447397086557558050525887375896262255487175849842949058942587757948856082576039742103650815837744733606590451569881824972759212017672811651412906831365412056172758225474319694278978837283341803353130458969156906700531654259919705946194332560845129963022428818810333523458785257943583626663515827625446629196079510492398100794165001795099155026365297993433205972258016493227332343643785537435846051856154919088859932195486464057621274561133192869477698362289704382694954700869316263960104459369531182320746409246365644919000864084609495034119327140254588541405810873501585494535623945127923926715988434119306711151200019388208270781575317528614841043798500137377600890201203485674898690437135567826081911924560210134314651736359770010088549636002230113706916159841941252292609472140449679065311079482528387779441691874715535574947541363092573878865493792959242086443868228442346495327046890293621650451330517360335614365084697205145179534001913864715489808150000881014461945463575138881799581915153822452493900773843788518108373205913998964030818492454168066645195797269929193427834253887083751277707314097292158843270553073593702513308429754918976768763843148075312530065030731678094683235551805025630103960688859506264812743091708209771379617565468745427340470732567405989319467746385831376405524066349983391323440878535683812988507508906606889173809903871835783063953179739960565281028910473819462389735081381465174513558507362924541458942218693187009896427778447664187792231476654074599297284581773153273739383578377457617923851447650359334600499814653386459956840612058745515667585828960073861460778982523065587619617097410901799690028364811597789757241179957477598894831885564802126250024947963590466510614525791547150957792506072932077328056432626783553739358126294443051515456377093466742647888813511349488364302838580243888509714731300887437742591256508063762620971200016227569842026814207990034761786805233048828030226695088787007717568829931565083832012281351184659574467692010231416310294130623144022378416556285049652710175679049382306816868001930297174858007584379781876330007725025314009098000365972039022781275891921039426630184124359452708633926709713257953732331127607458296765107802406165776428358965086852751196452412714519899628655460513338068477583993348898949772222721848692339569677315329000127339169389957314385897753362318523087950472814896200466296172640025936191698129962568273187272775163635386887843134498632142792142377708434677481348587980367494065739666862455562548686190425793181000200133625171093018348805281006669613964341924056057625051938528809593861073256975279368140787781715810473822115493033069201626964173779331432047706202935875068807453764998035111117987895304970864423443314291040339367652316494393117959798812731425976764478823695831487252774064361249024529899527062623650859242480301514022099387182553984450163756033698730228838444038744463506375556293440712463884426980102802116160332899572347397705860506647539987366393789542620432816719538861133486870489307116260878439787186625986330923765148908147005824043785901287234736190235782703733397998228171924157209933946276812806141365197078814796853227332310297629561213530341241756292927505683606760951762268433801680970657763238531595119839921474094685427111500683088826673633097560110979191236264886350821620115290815808908038906215931047483874885649796405052106381911259845260452844379640695560881891359554992376223061962629141377836763433616654954106541851983508197369613628262199463481290429478423763319086707019321957762536025180491307943383558829837205164485656247035136625478130097359268123022954880391901538132218848629089228002453110291865333046248451986854336063260115681441197439651483432733367570629565273260249583654087863506983650038597498151189986028046307285425279927235185810903617210379427331834573913136269090035478137833194853868381721235928749513394077563882805951524204727910791135334467993166397945770761307280521182732738116594513258559713197979852205767539907197352682620421692150246823476448124472601763829184632225089196978275901613764064737069545969835795167358676856390553976313728542706368231326572264681455630663967800533319146174843595817883389410234908007986020933858869088938031640295636164856746343249378085990496484842832690815882497722327275302342223792785233983592772478067948682487880822787862234158689874023758147269611493059870322035907808035024678918635830798163132836793329640059633710551955452594385591027731380906074691281876950045035681465091313591482748212016744402457629152905118514956938964451296967298405829996830511238313142153907601722521895393185670241074744102571840096703500618124592399751430197914338956315643574636022100648183435101009675145936347967059529362395737327733457705754034361779918948873352834560253275104398494014410653072700674258817236676752088325001689109672338077782001104614298631775696759602599164445184485038405989286203220420198891520581193587811623629954045457310175105148045872611239850191379086080043082075039006675263536051958957555219478982466807511750415104342586826977167299684477748199951123911414227137301298702758922571903762458057454686331361844936327825308599477612566891225226751771532676380698620336527291899785470328674679877408555355416700199039480130644330339116240354414847061863028917932298629382123792268702830448957723127470767218900775063010350850303720234023513659933010541072034751653923128794772639457995380349949507290309098853206252698659064526151311918583221566019957537416216449706520271922903225544002083754185539813367205630008851942325970091329790913568609145683247224253016943795345628813044605272670311395578229541116055876800304554916671290523958550539876699528651917149399775078721994232067396327819077913848716618105513350325272573894711017349806872639948244393106253594475603877865584817800143794102719105991862181852004731535545070688175913798821527873551931519540346354274275814846375697757820455021733295684409563017542333695208504131520241817025785504302654889980494734410930915625627128601827150119839995364633225148144304353702756231997552147897709351437892090421508816573126601482540906123872500267859379610409054701944977220409294148263884289979865651333972238580731192234171403448002835419727010479398441129234923854885317860271080848994165400876295147281641555490869219957955955461623405609440013138039165849885940123031296316806223424036238599269267479168995944938014693537696941344796636234732302121783949347351020411536752435605743194814605655458021421446869242076336545176639839569700122079479733883308210364294953184762676205278749979707369668084363138797741253414738654622691121767410324262237563744269429238353218360901428709793820038998870582709783195534016297767638191257582738618196648091764339054373115777982227050613573656026597502338456687144124759959323170691804494403413197166925072097262510235305380430406528365210073555159766263668831456195120659869507571440612515808814839480444038504058666736805901987673642862712107711867917726848044833699935584507974880882511306606305744455432355099852220001841960510349450411791652989182023683924280959180605427904150739732861091444547324611914701957590450078893903952401114879075529607596831580217800079916890955481851264646183129081760049436231757880057067595158693634855407774024934458878442317594267619807225683926615872765683665887952427760399658311838709444600621291331802624734236446221340685900721737752543352692168607560054998044285898612054958306643583122496049886402479478451803386629075533720497955899311932524254064125012553644491283968460532877554288029507382319157226344931352042678031721756179915641876370337484428522595310675494337757562270245228881584615673156923931141909564262374057559595053224830621501696221781812167499199668418401908221451894259228524297114243092905534655939946998541421729744150171283675118335073678525783052582543231519368369469045014105975539730075060180598503600350782714952103176807419965081047741037396207095510866772582632741002218673420325406838087840480769962465429294706817633623164608592027798623997335989582159177516271719726540097872279371927001071684546178672766525888658908432525560741962019720954755019996444475357684185987785609179709872724014059876790147077951082810947430833435514324154388393296616211886239810943146162811372376281176570432567031577673356259487928289134036278183501250243617265946012942115569803528237148645443004682940971924968029214484020977673633932959798376573706667230024919132011845646523669731939258617610347494565590750271286263291091697538260809480262451314327589982475939445441122222013483133921412416428759851494435416764406182727853079023149563929792441082532803776055083261277603935817786897743296979453027331658082577590898593272736119951251659558428731615823186516139007109871844443693536798377345797720573144979194859618628143500614963046745044287715455116299009384119894575658052550762104311157462862253274376226086727201144421795973468480234679300587524559535214821588920297719107033971463046403156663083418045595242855230789298254321803411024057795930665475434074844917410683514286877421806025011294136621997675130790564229774670522388091470870352449519668025331874246551275445930524733296305115260491251729463108088675573296010676524255056239809303938625930608607681492388387707637205172836981859607158552047609826745306397938514298600123368665234200692703928665371678828181771354586268956498388783852337508327117146742561095236625467128088839111891409930080349177190785300032582368273741122930395271750407213022159005078733077608846687941302867155571617954610071952127241787183607775035615812871053868803365253790951786524996667898473802832907948319459026322028043030256871159352134989124489879969759586193206461902743239259167906010306785647247486287884760364479312545912706993261720608897478027884707700533605362007339680519254181705225011539188543445642151896794250571250106976902865314370912164365012171449550961396743853748790679296364055957239276825648197054956664165288569374714070719652275447539136124386326692259440686355919330761784018627206803155975675398395429051974431148177036830424190716235977385715236202243260724333268557236457571746846668402305644807753758704427428109044023470996191639847639398962243815832065850107943743011038504773377843159773504568890801857681563307321663008734239674563582131749410950619703150477456400380405294936269044184130180743053961109236557271470745983973357546977704556673006354591606607176915227000365140483538833374239280507299941350127193524039245155659636051928803618355381128366191207236877849499209681156214963930030121953611830009206103744869957569527664220053343534756324700076367217476639079862825990627638395644381784206552830571264101373239385918012659306784417460486540490213994885717842612372833280241831746831626576867988388956717804811929368345504478631438740536078789357307194084944509699244602770937446823655100174587970753493975207426438440609335277341863138919145420548778451645377838243563209979685943468919723525425657975386493093747994917934543153868437850336706169943085015962277070577442255806260213868933546742216748149108984315952398522397804748867995161788861462314800376613950213546074517351043778099102562387738389793084488282155590275565021609494030026815703132330075773451131614652787545579548981318771394801580408013436777560741088701292366011435535139529577655376138544176619566665183550154662879448603963903066878864752398059216691960773883809831025835979229663481039061106344849576478218086438346876538807729392365794852327371085880138404427500268872125236913056109776281304168379670641748190371549583584606437457349495307697708347817932027497388144469505224626098922222737957593776439694641023914281746607468724755112805040273023943614040823770309795035358124177840373266934366653468896149205562904586206349695070022635787675672019764191545053947582002228199404178299697847869066903719808053048016761764019309209054663685199544658392782154989958993578679609572174631367109009431175754549669263616199147036297379959186165938447338409653062201643926138281375549894660752482159392550137845709704740400932903395296175370816862723799988847968562259427257978614826698124634760648559957745699912857882274871153125679962727753892636481502633237085007776430534718667087758166603914339123238372344048673952654316125694353639903213205455238027355235071115222218643795393437312816379370440999115962947961294830150765406993380217319299871754143608692292751603007281994985200234716772331331674289745029288078336507706939388741345054518439617912015648747597085493527548909865661093747156995669772455532793524039304141665409546593733316766947129674541566486157585626851862409362841404002399594975042641972988160190022023336380467995603664207139314944096568255993907137935654013614374667962514280179738222150884450983281474017816430103356644685432942248303603397519747739894457183796811233049786257103942206766255779559202203421889862661552776979305429698892898916865169959462965296792636135631252807045322805332990866803771897529149902959572773798076692398137410656351928855783273228287252099761905882499859493487457999279175579504650132383447450561494731974508751258764350245794358899487690923044522661810185380694788157042028750300063667219454751370092435500274035619116689710009038115132389753064576652150030918885608324824640483397106281272403127234820252989093776263481781704367763777746439899920399778251531106576625159728559152495222281823241781776914775508520793694920810662090341056616278976514033542957937750230822241074572594654095808214590916873312583216983607532339299189582101431516143240236429672205689432649997775523640999300407103204328317725406906781745700110725143321576018643555552610488231312881375460275024781788612737771840255164242999960655835800832006531928852373492794681372703301241072535940213363966492567135493108517630564672267483235020571205850109587742261589168522851638275226975044731963147126701352578538818867367224271520474086332367552537109246457232646449659558357659357179384056300587904126275386302902348173635287637592722085579697196278005538603261692986228564141803618240436996430229437034064016995005323084071039735951362520402831203565260731411076139242382620410467424132838543804592166109757183028224516259795531636281215869219421439316937690297437806188671416258986909960116615099159202277868389997861005068259789935685390240252711110197668760959475103377705371739894945969051002272043712082978715404345223369263861791755607519618095223653279894637913220549459148267280567545817387350514454575235822445971321943265711821827523502033364900605484104536748857483786618829469348783556456370077704044292475410712571564251858750410317170436878597881303765756911566065512677714951686571147202503894022879824659025334623931214994784940977930929731754593994729276815038369622737861628566457478009463534886391517884926006842035201538642431214247216452714605833048269732514087801193697288298518861594448659128657015081707112538640840549115437738377085987531838251791445163351120446027856376141725793139647052931887876319171071969805581680728048047935331357201217564356888816676674203938004256161181732728813558923272315525010594291713828837066832419217657722313680938338230259514499150822429633502585844697565715361753073641838561420094263492339687836673578952837852090977331450250563052773151633469560050352318829196318687847199862254663235450594622761045115577868091112588202615021638103996782332640328896228276943562065537626603517966572518991475494078481978487968723773407773041017782895945691728542718140971957314312736714909916349084177194846529591022099397138751073340047695981828550681080529495897051533046283690153126420751457236832234239449402556416152683461125801062722568376137846871328110392870277459912701156298420192009080947438508522565925600624144809059693629148982269537402963429013750516475671043389405400577220550078870198298188800012288530031360866970831578623119874749777740389803426965340361266797625275384191101461105286720958817579788162444793207850893322233244321934941948988206606990329716286944072868886050784467179892179062321582760926041593554519837209470877845981035146614428421487641875104280725861175063082055297163890315638064078565204912911219624807200365929334185477990847511612791985375493144631848653334219272655522450071252543844128186729858519507596017257019515359430043582120286192407185468303349113533510951307884218694396982654570324835898243989318555347484172619512182100979476638000381226299978322501823165903446802794022247892907740499122153798214874167397170021079943368303824418514534836466990607773258163962183097244129653961900972725306671009115425649479359732752686477575482578958135663478963892491041079488504824770995784357189040158815790592973022747146349765857876066297545010149153728955138838991785992819873801881212531549631322052632312734272124316582013153654793623432827053707994961981424679029097218634483986154107465022756645332830407070620899878206317368713232200874688535755977265026534949867375742508292312687978295726257250865745563904574449205935071516303560589611438229691329980528929243559670976264082116345269771838468799462821465501931293559690274365591411130637978670506240334988478911763759662085476764776301533062848788294083164558207115628065676877455214521826034485434472300857958763403943156442552385280246974463216554600192378416843051881332930664586520255889118667679990752874800866158008024895582085060536313992059978021523302729428799139396334084024757396258064844759077958281171298328598027275010910004716829895807966370120680379478512517344867763210820427491982186797403654374331887432798110067634325682986792760067447362461208874654649284538148067484697371176874958067899706503591847275464780368515620140158209747214528734563384430720132239520138644987045404098879914446857253961844139538814733416887122126684981966936746002513081671978536500139470647359880587053438786561106077100780473070005591081800876377013620670873002028115925005148512167548577880450787452589096514473712620099464466154847019926958223496030223360810041449943871855714840101468724807316282812331408776800854824260862287402447828830350168572604916166062861964888513583051989992207625316245219749564204299408192024960409065793435966327683293442086322038671600163201894242009910519684415235585931492491647423161561356084684387245292999450991929756263840452910144469784872644028609173878997014021152370075795760385468401615906619175681368973998244203657786047399167067484730860317733514355681996352538002610991068786036014452150568472002584765950713043316016462620963794456364200340118464988362171215510570140033224468604192971667674544310891359785302454477237307386016294944545184782758971942537353927348903901458477941447645945367130781792835269268592576436291919444516668316580823176822386443677490838682820921339199235746731760518666307543068456295259665109962396453747988668367799784911141896894450191597485752600115431347501256602709862438915670908683504706367819841445696992482884753155556854003012869734335413575530462177119386812136389737601871605940456969601357035827589639764872675502497511009414060149910660903274757290982508904681819898193054663771149121670373995742520031857264465375789331220423112106743580467328577602163371370547647507345973311787611558673530690627045444984878574490006775917451296009822223704812602474219785077566649495303122625925246216335961485676411069439767708458968084708151816089224674072723111222010032371516587625379613090817533067373133710776684619387525365335262769133831278742592103851196054386813197582979374134867840365326743901897769017447656513351595499042946109222307316424054454040573884335032334004379848616089905516118340788409888096042654075254759539644342297222206078904425349489931644014141271347588807143465592950763325156540146884926796950292096366800254949268438942018087644154086420091521169021417183682179257356648345068674281505346451236419987114848328823178553103165758892238786693768645250185298791931809429357236731344286771411968617325222961037080436969453544058720057503647172957009994135513682341521314347629563048040672247395617718918104137480741201946165094099768988902356445517773684876553638162307228775303827693104667228674775068617307230407091550111029215201835843230251438298278635628094108578124866576383174702301748919504165292462446546236766998639740404932641120135146434821614566619582668241443278164867507433281314008864790964050667939812548069719233990351623848874845334145713412026617805127929183806572671897893022230873867448830478075512679177008451767891468500364989460779975987160716217725300312536497456835565695294297553098051675036390818623664054755832679200091299310063032743270078582239149806472900209835304085286301493456506774212131621833199953567256038284934248576553030614740016774364327161681775897966927540183467001481659486232934729266949998959724283778329237205105833224813818977036490500070472836887369916381049992685268411770616401917583522933644592616447864152701175206723826590196934344074283182395761896462923230526508367222448374883515756182227459674785270385602806083740414210982201643627823063457803744229444110228539905472730568810842331377347710486006300142793485667268143433143133662955395490527674431976750143073497430341886104893676600679949577339031809339304301423847064904567653400297581053961591470924087077961524418543906347872626142312704911736737938225871229449502671159183206008954592805363601256848908608101260985251959320249069758665167830209454992137751494706817191840998040290044188986328132064730105867335893584543587333794230025983302993556670115260694653990955743273051189511999789786611370935894653873583425221282176093183177405454587734080595109480898168069171993382922438372434578506353286244502599618115977434485755830426545562281870236044058483982748795305292208430348857403668692456682858571256156824925075022839159542225604972537167957363495542181933198264539250106059495933004858077606991666227650159512665510509606577170691731521879773871757845996116374982818719426096453406785849617142557849144993283951368682043625882634756600741722761725388819900457481364296679391757164373990434378804335040302059705523341731404344700287013340452426106271537474321226793138203205600762671768155381790630966491881476962474469041823232728778857670383619623545950648077579734618971259295041139091183696026236730329462704165444624845439177272170712663149769907417176381865686666537700903164144942220577667776914451248226925803035939919811453194290840451832802467712182285979963680262471553868655901984672906957586306707626828002319534889775877511667048660899477202510361275618504138865933429846447647668135448028176569681134612130619174610786994704065501251026398695172698599408031245824377496660938842788355369999472851892886078359589370168849873870802136443016391666893948724032187073817833338869246194955015021670586543776861810178359092104097746318773432638133969990538192049078084720342794551953240497247491888425025359064560637695443416359841642798718519233869015503309162833282355870017070438302059521291797328135167351313376978357554066147202170287141617695475655788420418101183223310298591555503481331703488606366655785284408153450555982094888380441834366037402463941573108317581357986975233506040207700076477044356969833419642788743486216231494007414511252144968208813856359483199272040079713332400447293265620379983729376941710811171442389456905152086867167376072698122093797163236713833362897837771833128469251202125262378329103909250838270784572090184299315910095166804241234711005468333856072164589933648443485227905418656767467943990756802354243369981197334021793256666305483139547117953706672654708573765067222316757981842824516752900098351603132965444003480016155198108325994014038398781008322229586205806111438947193504744783506896745878780397012129598922493014969761353957505703766675212409517505124723558555171623375169606433477991485322441696161233723447053500844286592431441838744503622389507222441856505223578740299226602801990617350972422020559078624298877127406910553966789629700732833816812839262739622230376577816329868132688016058143513604011635746141825367764324563673339240870655731811926564099350297121114153757686390296040506794714177501367424093491249091034026278628338511790878562823623026284314055069458743967896294141234095143060571332979702516551812602398624128792121894107892701187467106331479213784625471686652071474750081370704538696232484007550454868006068208563834057753425831277779242496392269052937939332861568652199010835995447038785060771638488373540271220015155628060032466430550301951621800772075665042916411072216420943829003526027983437349468748478521682613649356344339539196934388403040306273034463169135321344026806384374057282999320459683875518804367033385084415532477671840639000820963365773658184103916562824614900171203434078268859327936474338774729484772582306840138903639277506628220293926940924432286157855373611184935646791756743464054360032531131601827669387399003954703120720448041308370628308294831519792317479872474365670512247911764389461523048558674831987117071820116978753258885294377860399214147351375275250823042014227281108224725374216563671288204460378999893879492506316811211264856316190184781768731330038944784618831507474686431853632913808488484072325579922994859545020519132823378669908860867983202727821963949181677885036876322584976802039670866489016849643799944505101111191039362129623965648649420051677872555708064394040303058989228506031823592511671860503219359046920970007709715968093113666680693119401482487299735274924398324923480570632407487046712210917110351996807212314111843539760020429653017314017726849227273280669437468130407391108614024747796812437487949967553223712797616752548111805686886701652503339685243726631321389014598550853717845817915461285326063763874251239462702243850245594871576159149888089870357402727381955937604765350710933863547160773547696554440492053978418899225307955341504518690289962209607668388429369796158351842644250795854054934882671051837543006927076715771310026957388368477792500035555081633738970732048698250962378919936119725247301980781714026293564276028950602632598425954838044661607074283869219658459394677883899818087420792348453197118624637794184320594880599955363385498707715642476786048631534483650348834573551364395169860282660104698371741032137319845747380230139706389678450045126179563110111438686664754279508187656361284002589549751041078140980887649996069760422138239165835750364581231137292174537843322424029354951302082679342857346739386282408299409338191913402422399801364385874785999388552962809966398888880732426344796975856126050033773718442026194487807059771493545773234622477310549096023592662547244837781996118973023925020291101503371497742439384773262564175735019176677975194868891119989710813654253642322007528958271295283786499612965946404573876863929931511168896360378487474915730994805789377329149684939680643799295191028305632307118993829854560565309438847115675929950177417858783969918764610371849964076060938594968169499678184752714432493048657556418689651910950682494262481702618526540440342761666389033865693333873905284857326996000818425462108198771555898960216814161624464494190295001487378229427891843190802582971973554449506448822424474316492274612457840133205683651764718527399647575617658544928017328475935812650942812917022229959555542476469936449529399072899648120874356547152162457217255846402027968506101871219686465209869861683288866419823379655215311189793459148771957109742741628565132407840913558945898253644219652453639078683400839202578022199160120569137312203477374742231446363724026287748141826645915068972844663374706389826281890786268654886827038178763779555569910878579547690648844462393908039680707603584313245913991445186466138550280096831484477427911107418166955008342340346005036811832507199690572791715977527369356704123395576613368257111667136845391303884273708556471189072385895607716933916683502985294714859209777911419180548511210022486723116369921700432271412243867158014204476932621820234835907686939800840677116477304270116657975009044919657209191415567807657129194762866017264535361247391986113535910783256111304908649784280228754992524765179530265776496818473328502216317178557639466821395823934571699359919056067989164995945928864152428623582491961145843507071772189147170080316736481551335817899709479909746005712429671522439222917448412355540830242956831816117136757214805471256506469638921179831732110959533761627726958888261730966015753496697327181657289355178144054103234596636745007958439115426703542964428576209522783359696523193330308354924522030361404405528030563327021449507585749910042348963388023005848076427729694374814268034616302942225947077669324516773928807417603648433938266534623906507953761689470134479002163342291708837347022671729466254712904589672170517739418674222153138554681435868263384616314625950566887962183874338952217563109471710076656391434319250652690756027751723156596637731261332039364008419035869913406582820805961577336254083645198419658428341188247793137746340602297979668574330638537684136744848654698792779179927808114423405938819870055710633490886882933048698624314140799172711503701375190227378051792273248225746835847484896614921780911743485277847815799787416404455557833059644392167002543142148103118877750768434668677874552697440733020705640052109847066396489665723643540463404870485083112221057183205126664805563526319689986111897402959083213326565069288657526309715973641766790774594224786121242184054381425689513088630712832514707976466948976613661149391948725777914050523634124523511490037672416111190619583616009322905010133156464521409706778694650605684772654820823762120846617120551876993008710174779135492037339605691650934222998285860021693589857181421361461359771900070029216506288176206194151089614665909312406742598633803825109642266670534262473696082436284913311804758221954026295660270927519986438070752236799073003938156154744798889756723381177884579934995402470053016462869047926268407508407433910811034108575459234893333976544023774938055621353994122620909803184471875653195980530780595460107906477329932154556159828850387979606431686519024565707083481330795217645844322886873468985429785456695780135880972206129721346135798946177558276750473895271958453260195039595972140218104461392112331153300630042951707030283293574162544853168009996091035735634742613977596169858063726547111343567143613167311390140206064668955692305812373607285801662206797174265092316525821556265745854906270635745999773621635938038387632564203371256107319089646323184762787073354713224432812493657158876595857513730451781757787702529171784249949214429442203404258875474079465067860107394480691012963597415482590167156542055421378903779629887974808212290281102193898338558995400280521411416500089975583855573596473573707019237884571505771003102347025281113641881699508241735026726515773812281922530391300040809900260302576699346500596436051595130218560069670648855457494906865944238749482640054891728673668187229606303231519774281026359164237877810293193969296845930986718551302750324888111717810366266906292642486661256392929180639062236349946520954541887600764498797157484974980254270977185046644860649936074327048592605290293983929097934179321578865162591966189448423583039677929338315276077198732812488731423645441306822933790288332740702298092755489005688947192936505437696578217790153661943013651629643076688893226815303035004387959142115076504239219279644202867102844064971617256767195387270338184979122023577688529919399139453275275258600203954264716875102300873912998343746256088709618018950900747087006614168563980545488890550330055824992597946275973935188568852118986130561974884549316083781415861828171964644842749445053470193262191801825867740947055917697699826405550480620087732384492413724811594171462046700820540835411228421016873040710110985506274387153329649471379104544412587448657035669222238179183588013269378687822906288773712649327122111568834357259003095023368023538038934657415634337197050173612335143009494611286246269846994315000232377026629882240210618400751593385017947143399909900729550862976407906333032559657962210515570268201011580077101119024512112017209788672178532869625079845553614444841988205830205725844447923700257511366299487310692199688351887489631852373786123411504908970481758301951550655024867515446933039017908535101941384888809897599591327085984166026598505891396299119574538888633854823650093704656008742319301746166038337300443438538379636016972063474823821071800768318922253651873229912234480527720103557301284468495302267182916384234625482503091080510676614833950251930020878471218274264374991538316694548288484207092327943689920397466297953551063693525046486941724345008574253167564439973668727855958256050234944305948914939469576499478329876572555539474436604688691269457357184145736241728151694081090715693786639310431780820803720597163140180954971699362573682733731502653887936053493951643818561900697758978993960406768942352728452089640312083523965105334179451349100496317753398146754008265242852064927233027768159719883025816435140212117784223105443234663146618200733180498302831153817218953438334340911105668846001215525542963854903988624655270673551744689102477206004726298636126310134365800067098588750117885181127416866765994188002505108277633317285818761990988117221715018356649916766636981934089235360091101137448606892406150270044234851695982430464639039785051222498984995980448309706867856261574951209109327095824286848612072876999926625985797022002515477373648888722163860313666362279889258281735639339789912498183925712603272808795813268632093934594718098379371472727409399747517521869465731378209743828968444769668995142971112471852201148556424203918718273095340285785498882356744562528662337466013183852106141268896946050501376593807706201215621931115745105694588287971302684419224109013592683189837698350870042273874007663967034520349974044895120572388112573571956638836052312291957934962507156763454029034070993334873646155057564840531973172337866610056872103844634993222581478370373560039136634789371756582793233494418354601602366291130128796965639841226217237828826441773058411197321718610163560915444613612010500705424906993958261066794401455245842083034966079361039562148937680596807295847860822872727805173160662562745950479077767705050417824636674730132951033286134471573433159173470970051859919101108532865011641585175545079421212802725460155256740613658577974104233147635764842679629081809545578213893273331955653534347237528442635328148836077483208527037856198795837528497188656660530146295892114628208170074017793761464128807724574820900959675964930118700888520070814251597059621286675517795458870176126903519736509660431779994133006948927335641558381775471919248233316316101902368262907093479216583964513683616773606136462899313953286301575611771520647032515872212085434112188396496244075141998804933221698704480465345394668251749033433828606985781688860232925397823321386095748332336676281357237872354680365168694336134297837146920452742023246558072891927853488697546366019539649161803088372904371101419605902518199690181671618520076461924615580041249948077450240681731829097767687452193440298154247760762457936721806763152580915457670302006032823617800264456519546260924579278915475806436571623339780819207821603100907074918593947054619935942022289653411375441813644523834563497640528929402312336108892103516170846704955259676966293541057050408526816235271106000469610405122958151259408375396288437496027752633832350309496034852716025170103456299427601752363939756268203754240966403200548076100156345786419563464381576538900125917277305859125776323438753808376583871556779321173569152661632430517636340094854777465517334400273783605817838481240190982559336522643878832932183921564913784258114217226789552422428506563720171861936528854847607373196014252050984281504530794330342540934592642516016772726683250135409746467140542941570005499727916909447775294448130295928771022281408867058366443838480394588486313218947516283116994746863841767181171834685957927394098163004823645689196300271239547451314791202577478376368005069662908588295808745267395271602614796231627197686445117919848937887400201056006454564012313879877005549581871425980211671350704694882918495521220162440920970294913253158122035029628904239258199065598380417863249207596583982426953894886479338728613276693463152321143186457887461998402678058320096685138554393366657349829200063873872482429717508202928138653564836897779298881605281346135741877999745106093773304821345339631070847814446817989071547917108480469899374727511292308212663680287436330834625768168493643520993618340911017564585313739425077612256979803849446258267355854893985141989201939711231240265593176921990829971101549603086305701189306958357658801264767194639835844773174028763922159960776116811404255613022685681182072277022770479083482978955289464615289370564145329005550543607842341545361259271402656168286075784270511607090162176973924829282005307952364696916452419747104946255020875811420997719780965393003338552778502759235191916614837643173081500399536414849791618279175048051214745466388431652073679325995928105784698689783847421228169353240240293498007023075367409919237714096586230685763468189561074929289012110799175157867746977609637019438631949261167926011249110717223189233139132549748905455660342551002183781452778264398337620523709875189633507617676575537976207678853182530419215723041883407670578172977050130756738840069861035781683343640611968676137801580038118029178800342679125393713189784343099722934525645678946784424306915547264657123093391305222454218201315338214614227367325638873302934913069916493832482534994434377277088171041015136065595173920617181135845738227350360412820420281413185130267616664629992631850199815698538192663681719867291850792506728687956517502186970812859049466375051594740666246090564134842768987221139397968149418734457867782257469473973559615818053425526740105022655641358592027250723377389991606647402930121664952540489123553994202065259299162453614691461005250538991562760351408323455034847188066288937099676924931152352614741785718352549621896014972484492182294975851960427590403803000118989820609100485351393477150201777610534497809412629825792736466865390431384630381874637981144412572182672859780497135765504319776803543095258177533091611085224074007843818001559254238445333812617539114387453634946368833990323561012692187472779878397026557598855842180408062914767018591982754199248042195601840195521246079233466081326648998106229883938207077994574596861382801287010470801960522240289424857657461857438958538229747620977500769532628587221354504591342442321713719451505393300405773085958902027980812436134630082945280527069124274192751892661627863052897108466183112229394167352755845035821982027892739209478775621894841932433204878478072226575534491114508574313233254704048226712464334657878829828140854911364413569450860006176757733623333797965993295887134431301194230825387792622444873416106285584539400767585721965778261964876091955246591137468695720412985324756948480349228560937894613616930183412167275628766107775700088110382564964483378543740110261511842789541903317136389205374598583878846643333833319009918541387570976689924280453217365336892980307036535627108600315883374718918902119619646553212823424090307889975423649851748912271334171769425588029128137053803105035018296760149903260215443639142503575742192567524993020170993737391841861129212611547147435008393341159823226612025347604386098867706747409371182247756394173028517230983288970184505619132696908905890791171378631265884850747193381176118299134894875286633234967136355729249165768441331020112489439272168045633631446731029719144428137359672942320704029315598459979177765485791218209206540937044430864381393982345298557205158594725510347684916222592675475956590946997609258871625983028628629467898614520672474708570380113290129033395719340058894123541346590162770135725741381287353461756231666472719859799865824488995942715084931574356181074924747059003727957974979675632042533525861027119535704640975785949003867436348980006109535275128096791110445159444383464080185696173748932057889752454900271220368222304968205363226962142424540081457099618243944892274626839744861968544674855957376820187938315039821190846020764097315348927205026012313033963570289526789420883624605552605797379680977712255186709154437028128813548786645463922913808827115403386740411088017844087712604284641035850160481789296393684183875311491192765901716642920113605028652895817140067355923158021926898331385353978388380852716096547635764923763783141765494130636138086383206332159667665148888867012003543037243973430734788672930420722769763255032475559630744800542326395526272942138527142214546124460256347398588089584710382548823276035080342569454278490658816292675875333802012028306634081580790375586322591179920104118845247545895482062608950662338201816178072563636666132642619844746904508717174082714856766882351316875332846198956429171036373653314917809310614172361657620499045843394058733936626950367660209544421720114651187493949078916513199485884388553593616452229719788989047186500444977448435993605865236869977127409726292408955640950367104119299101439113501439517989695900530292208459841658846643400480748254979407889800762748680031507508518959479025021384220849859246944591982700956274995076814223898519311011725425862915886465120457384141512629098887229998854579801124657695673742237396896652076883041513190558503999214516829611750940878701370160746450606731014001263669444545231569525954812107594900357817271410643819802215246902289858431137126673320492145937443350019294913416323623298596203863914543690682869837097640005132662818078007011278283351947029571774484206673398414900855193901705335330069455478029687056122984107734842410633251990826613861042804373944411542101482418084009385625433904451083065048466603404872286276184502448341852943409228111339854767054544262675658890030627764931462648734486451467799876852456181669318573136458309741313251983995824830497760654524904837682879645189725644378038017422465736632669170360834500464030227195070415662811618017521773982163756731939243534833145674685085836919862993202188721053678173850917295083881270669390070264139487330753459396068974176190984542313183586586717759576194025470444070771927392604528932256309265892485728180807168335250162716037189160991122394937139150901427915024764232836185647184514403125579171563846140514417338568488307110110536809675474895748072585894643204071675104117933724796728366603358334088053144010627042738434465747665511840775293288473167617721451992158826332865465991193292744063903460089871764002947526424978336632630687740914133554951275172568769790743889909192808189825146360900137450522781883084094633851828434054924868378728053407077304549005409714589132765951827037976784519421800154316788256476271656455072343391291544563672363495265939734373130342206784692413728132255327334423934595736722489012682681182727643970610052602829178816597546577989913496153130782644623866642116220688665495263243617525107909296797938909294405692157515454023964479044440647786597344593757395662356687498810222763195272586037752075141443854679373213026734672912585098365963860249654261968756023493451153109270943340459852400395295596153329081022112059096019905657310307831209638869261657310344989751545568844004551773302476939592807958373778391184839197821657413574466448527206877308518386932146675254290555307434060147662158070865309229845569131999520929808068950564079581689510454709324559067512643475824656718744764715104285795597945471392977808760987805683720057952092344177585986395556138495039740773220002098297125354748166471390668488360070164243515903435699093861691607325551057249320515583015554780001299574723369205057998089983836367247348252165353320731623180390791361062732709284142921663148957275549250235168224345249845546177007049165586723128344108823901152298222526437934110254626293917887093196469330225295783465479962852348102419783112981412799160268170902052798578031531536399222494580832835899373430818280392001781789823126980745362545988943400706578641648963012791228916017510056498382449847208364646430245693335617837843037179881383752582988201321063895600771703198447661797288991103382197831180232513562004712194887467955054331547140154493533890848941788430215082853413847571727183402542619228843855638857710307692212374541585612202194092578978515518604913170318083845263241324947852025983050883386834903947874968159827149408090171756942337632740007353630639085297788824263438351479849757938220933834457996565784852873529268222911437922497429174124048328140893643786187822962628531664134140286934614447376330789595022939439545750588491359872336876639102389496005891673614583571706523902179410176580349788149226973638073356166398428540931875872185145881624275133115460166377130351876588045489922754074579288380400057338682461569344650208735555100969204352050437065947810209467048544117692638860603179040688658007178897810902644820345586863292243513566312798869526738502878300561840277467303350801343116496826483743155463831131365591346105094741610836690837472732726607509194862994513300536786748720474848393149924352282506703726482311146063894677254004366328246602637494937631866027683758305019506156180965888773826414591052559354421121118331956101849039421112538261354385823526882729558383765397701386058993744162678148973873640098959439701367840102228321293927834102676349033231632561871163744367782911251611572353312203892265379578295642787017337474493435507183302189040492433498574684537098013519139253323604386328954836186366857904388949284297677900098065040026344041170467793086254931726320482087691060384794638007131021250819699628197961264372197046529898845772677554077153911828157870631932566877052373232997494433921076336982256244365939095172193667460443768065459940607993760782712879246436322955418345479459323174463451683907369213836686109603450914637836935538678287284172487723038312492654478920893185095536617477467686054942005183932059365137503276181603900534083266543086127141787042150392737738288851736033515317203939094628471879980969979540646017829258818774800556503434892309062380662203520021610098769021213725003816977719539010334615649320801554837283374585132665016238371353278805425849799545432899536470849680876182282517613858873591171919153027668569190568192877107802001391604654098459992850459346489295886621420863564926384381094015648254296367190216348557817074138212318873962464981028796598944252189709163260205503185066229089961009321037801674778908318710283943820945706043528105112636341708465788498162630831038562798692640969638563868737887046697951935056638740623112252784890897081827923884220047209284351632636034084861196149634107956099639245755244081338802160917776673026775232358943816564590182388996601408555961670568586093014773814234597457706536923404275003801328602512300455018680821449160443733835074499002985805783983641839508789184834221585641901729897292781107080080104336045246770133610437702998512734858668743350942214157846455897109847516902973611132074875745665534836126498015895630541813770257007647774598867772524969921458476216348884862478719951263400380553870590316770444757615599870111341598773800825369861714082056093135431359573083139598170509990704991445983180595235374073332138179306632366988580426279535479799414383302890559704809824103244685744818444111250139003832636213832689971639579705512069861801274289773661876090901203856304043122996763907797816299018611065234393630168738197632220713234939913135247034684880828008343768109534528168606853309852466163892195480018553948649197001087977741611224706468569659845101080754206601672270754195492652663484387275481798838985780172142139572652976159714191055854948965882698329466468110167237793273325262628321292259077938441694504431725875392854337697503842610876593743158758523060770969388576602650697949913015904904143273312748227559179822310701582684698928938963817580414129639403043673750771810339470543005729369206562841318333208576918767795754803503926733783966878843058272805334266594780526262935974252651247260649319660782323957722431108241107999978170793946875695919280850221013209640138093356833200261406728972884739591107272417690715596744688589780371637943273153451955594461153171275513782381457200552162997208277384290838966968460738379424465598250284063990068184446038481239674372255805277480657316713005237396950288816235719139436056637861634500158714743663882975526047685639286013220985585975772848582334763060036523855961845159234124398683729069905446351930309522322816317712130722024332262717090646336191044694494612098641696879391091042110795889587350396873700006413018247330999785305547631290630990847938950584348082175128244376409951397453651270409292399938520656530398896375941737647401219036046882526626348591518437085863076749189633581568390076085368269680817197981328349684832616475263227653876816060901172607971356023286167086568365581614253185199340028972709410805051986774871778171288321541995950461738110179402714101467448678127107853100640098937287447922543373294833387309006304042564467984741946899048162428011072630235585007342579364959804693957126094980865003185050392549835339421742773865145438358779300779301961276523732844410277561515264286001476186294061236963138708161915398875110653643470443072955902623339988547804542547882328939449978985158107630305956946132109863026607249078766290204695593370448289880687477145282849964663547947843244852188037580242837893400413630179163709615517847360671849850671139835697119057073673433635257598309464200258807469117321079375935047603352987883224314269055608195967702910557700763011401920665491627061334398882795468655277336701021015003188234705000074447440190979992681014508461390203679299182183014765038521169724680265130674348116758093822175147698816897500719946651373130663675104653586111835685231211642386604139079570338742207348935457674923510206795462433025794986935806708045091447378072918558605234765569707044773260749427018523879336842516723384042402506412709334622498321182536092033950644764219191274770725519086631611073778957205163971036031943902978374660062596918468732347011223343252528818388132449896634347670974464062561572779059303015256530727985063734812766412808673662235384012718835244439980710938334658183888363215779444221794430623591555803441045042677389486299703139370062690366668787275039920603784806706153952690864719956055358675738661819144536136576225296784048583433591972068145958255174509575619361008141378274646276161586530764600161253452908832689047099309246393916405069529777493003044227587840932839128674337631953173823947316035514958328876005181384590141194333958821219664216587271307988126284374546698691663725842645256789191420916677459601496731557188833740993999804214917293984689874264005213729854527467351709840939929636259525976008943759251905203407692642318172780705835480394387761441316461955368685510707896898733015165726878590018265698751417395139331568226777073168202725074994757411034121554287154347177544765027300808049294513128656503421910855932511686872610779858164895514327028618650740290666770571723171237394652025131286062670995388814770074268777991000529461312983014242068033580690645731381683772502372260646719747741681034458431407999923608417358682495494586444972243143124697528318038463254485982866621072290574676259424487663530848333801144902403282370369236548451098044922146739791134064027004791509771580537215331884168318446661482558065789904824502561346570201119263856331709386167100367028737770977173390337078333148451769330041983716619800495309148561079961351159228574446063193598327492144398323085399003472050836572083610325662909938262845878874709071561941373775632056733718621264603298380891584742429418345494496895672032671688946160191676942520901748689458392948219619380006569832150297872438802891456850894644094971047320223635105284895708183836204582532152770524106547745093605463380377490945531121539670888788284498205824586875059113611842196163962556726079545251902023019310697973962265129635509730985260832819443921765601994299192493588138321808406499207410885481048981381587491707720939688867148124356327445645075826759909301920167458905444916455120293429246327440902275521617169228286388992861875643662247362518125837134551265625147369353278161994095478762955479045992241693540068612241800488413464122093887419468253505397488905123670866745675440328772140335664639314875546861552123186850916920218904969589917428278777800439989315681831753640434202674043435472624949016198601413757194379150904027878792179145736305595572135869810156402741599792226213662389664327242856193041752228433814920739762682978077709896827039349981250853869829892533787289079189858254781592054779459194917403661034177011614229292254087612041288067473810806688019310537453075325958929653266002223907040704867951989148600326788526889561080436130331352759130701184139068520559941204974106564508486735925376729955604592357123147771786102576711916360208398320817890442433276832476934613759460453846929559439230979474587825601364237103704037224724702761597470390821642065589234780180915439460664720203404144987148340432468432673118915051788138978704415621821453229787629527404637197461565539114751831162229630423268816349622498732272263650840511206201148189060253475486817968387054226074604348940930258745066355343041482744497818317655302383652083963451391943910020719400159637439885843724534750807765679103597155265434853039591579462674602032217752809805508325966069994405356886027704493197440737880250803523789349098406215783693569841603151860785314003672003975170532626514500872825753842797606230861097968220411923190558167889684445204007877232670350016776097585434869452943790391620692178647887638969229498693869032783324777282872695648032688391896480417539759750671988819850739083301273110508564030784865782425553368160080730152640043672845920291647038622685034815038361204715914531923574467399592566137715493265104152762781844216603946446370789187850367296249304324202969243795727791023099778241919802282228253367835341351370130490235405484361717606778237533649226860302535583943929500116448764775180082577643534379979268114005944694373277856594206745023412254147883446776693273989280804967243157288055555718946336943079670394184737259723116290114420630269250130147765436993971443792671630939504890263600795389807162130000245442005026032008383419147937331400843599498409249158777875383253771653784886247132342922326138011524276659649594954177640142286672709582033027198415456705307360093538921954851798958980058277111558478276000761752215092103006687899724453507168488306071622951590294474160795804338143221103251367646785168553484630010209107346753345867134830585956512429069750647447074163785817504258164949872688321314362172562813615416207293447961402855310609612133622268161497091217585864936150337972190811795834153672342087338826232066858809174637614594137339239841860581680376631906531293451410216109058979710700606804775436177750272769277108400510269022122766567378272998406689128222032023006803118987515592291390824884568467056615993388025509254286838894138343818630304399899866066934648708549678581332292019076084580653018614595492480807417271671271455265234230810777056015274222704789687473930206398175117245012525846781193775454309539880843492070807794525641291482027737496303929382186517076782787165815638821779359687883114620483106355308768624946206244952531095584207315653214799704942519698750374220532657154490944513279638158744071387760483587497211941734076877939558208827104448060329829910311920015166434930660870474301341236028671101648467445929742080324714589870359958655418989346124077915659672917879948848473780492933845210923848115180366667718085002990641656607472622639169939456667821494869640228356663486213655168559178414697641873939199587688916186606219219481410832571458266760378939889132308546251947935876414646817171926847171433312044737605392400720585116417079290854381796927839224313632019976143658814279615864171294285946351840875393523412563005271713340854407280210278180449516423277097593500570071911621799656385504759679239093226726396953716850336044848147955162581990694979294844364961937410157037003505273012904997886048342218784619433790611039632268104306762984964431045838052479382565631932343504136360073192043339205528175099799265712870691397824311342233695278851009575372550235883552328490419244020317339341582463496145229499005291316480639731765980578995312894799917999236266683237602786926508929873877012826162453006285672011342465655102761793023618925190355474656009647808420712119827509703822774424512751941015824869223123287935374314836561917159500118686344500860408862152377998648606755124003237736134859426689501798268691111826933812169032842740253934666176922468833986380221456352438805092264125104439935811433654440602647746396294722781135664153707675461103351332708121096066196878052867593742191420206971388546730917626839659995354122677880205025066600646867190193473022840840169160587205596350294118093583990345172258893179369722146420824903863358871202722972148490693549216125391055229419940424758209700099691830838939643902778040337293930819007013865599103735977156835881386588774664816078004890572657111854757458896615695764209229591810923932725579622280781017003675174884904542668020247546204410703671364175058338641226955197457039264582733191588671332888159918795605811986824724139049358204617447682911222473268755032845461806991380476462617759777688417533471995267749564365407679491928821869420974625872482634674711267583669575561594359279874162110803896422535539795803059912245309498989977239317393235264223924345514527041741191293654655605558380333625438445975192757721329840278319958905413771192787802699500770889219699888183474674505206583597201265530907365687559092456953330116249523063432947624635259410641275092158384697304536873029380447567025738392212777026428169393801124369049653140464155894892030192445155673324045896731491429590816881621181720735394318461780499001883590779121783122701639105232329962864187948372605335710030718266665377798693833898313960668379529862962734505189421274016755709260660409753254485290630409646292042567948174710301446684346513887408175291749452004556255935345516711796157138368870324398014397297635719067751245820933933899354911225070611189650053832612053517911546837830976733297833568170753448029033379227666321709594621168234595492195857455222577548516389392963379986110577756304541915682309908171269334167760162279999551695248189012538591514466678407754186798851781970626347538663236500729834245404064314145908241948634400189814867223674944451085702963445168013248220288487461911974557351023894755988425183448303704822731890516349071552133727632996403130555863155874792552138055035688905526670073146378867254957721797904439414812142179281983189387554064632293217002794153255940892871191185503051268805830732618933888185914477172432901798161696272558259953801286513622795418719836123428865960883832022620261863872276379157892676185069456290578190297623882543535022479832081327906228799728436041987694535814819647413796970366299037034210185818443002604960372113225141466305864048114129400733893869368191026290273792226415479040147777473355486308284515825457725263403628252221217041922272452423950724889908813226507433772703938464620156947237412032460397686831649589333972939006063717596047551607942145154002550451898125238226010778371521076802002750251023894981321134481249752439981083726430306554514212631654358749393052921809562085550457220782890238004588881113109880300003861554959178256734219222274098094376841693188246309094208472183907272394060477969890605921994982514222090354252827905964692554102221411057405556657313263750010838080059724444670841365486844628307047240810987458002315054760081950909834757951251477752536120387812546520482953600382867390880184235165841316491538628634276719822340620372016865570320214383432494566460396014037452734920670562659655899519505145181394335804819199599030832180259440176553965701101718081711003758854359439470982096908985048719526078188828430740940234360424867954200563175039765731016001729614528487847366194590116754115873799282238349503323107507539340001273319668592825498410957585574652420702858417421546904020190166064286223659041952123517991720124016265819756586079089875390233165436187424574482894927540504506621185329047746097136162235532203114281578894023999627721624904338160330326694820812987639976385460156504935047902527164868421713257782371229943764840850866244692473327360560733154101620598724550455030072968400616860332312349241198633472841931371241488657073805225100136064430762304998650243387361755445637447394286851364036645222224629954544710055762177674159313931287128447957390127585976124213624618560370148122265172522128508099754176651093243594682942975737894036605055058293733787111739297822344383570904863105008704801473237033572609524025374123216644719377215105531946205369363492782531784219302905482438155959091342550535277431736088615858576519950299478934498347955148920578024672980890707606884230882608289898314646450494794340758744078170284047146451532581027049664843781268602776337696726875980543730956855457035774625037202204030837159343442415819672373490205932061193584109575066297804281686166207474714339595502235221542042306453815781934233212310837217317724480409872227752424361711965511491507946389347244671966419619851398224602327654688324240723114287523748976115433080808202021764377438967170148006944329797682786058149234814978740446293211628708839066178645594207044573260757441894360652719705301471604675461595582868100714777343162127151600948964597982944120941771515439529790140383003743102794949869087324359197912440573842139631405812515423989286430517467557305919053327436648483171706762498664576981577603457970069079580531758801305988338428421138962591321660481876944386634541236022868159822889427821317164673731151927343441820419999729290523371816593756018577612448822693306922090344922396006131587232287003944145464533241603153815899410247093251361424542012436737403361613604649728198250606059538605601493609394351570598610554581683443501590812432692207847373088567407674000442553091436372544789212773636878413530608388070196535980083675116184244216133043361596487099938227073662572693523917394781493560172124338358845402040113384534570235095648668243294097723228705613387966896463278281739345579097249298277839160743727989862459045068656096537529921840723076350935070392945905456920022580754210375412873540307348336806224807376216846893704199417906670963846426352724919479393057516948940519693262162883802602433294499825842078372199162590111320603831468415094721707424325339680619957970634653161458623807089630131618871525500012761187678936734080758363318573794371391847407311829052332624788256081871510235644858175883288173031162317391737830737333005878027537526063191622829435257346397459425427457482624008011620218639132055184140170456997440073370226159400303401727172896290406627970953861527925359039027738699013173911532377462241630569518849509208817515714409441709991647444056534901841321712705709636626694717025050872284699103069787586919709453901135615688761404068825560542795257211955060463691349670605948912447393318104972914915954119090292658420260838444349629116082274012996877023216704902908005592672651578402021858647212624848798049064284609936645467191321794843192142807648787642181998125591249171329876749749202616424349879779462890584914079350439389973478444191138951151598507000844739860380491816024582338959630047217763779306545494798557507663580715294212059973856679432009763599722694839134491631411166490259002609042369264392588688803757163881615522246923173587412920417042861149909242996677849429260238952302808409957367051281038691848879403948510866409245972380505858974258141865013816209885113110970954233987071751634173360805373567139215443516756360854079701185931967202386719813020377187477308254455543888689638870119861897822253520260115993997223879542624957305996352897100076104093446575274863907232791948593204509106212771814016672513171504845697849351305080733605135811853229665804812840783174085291068464107512852916552435295150059625153580903796512955239775152855720090392308071102181137105269858970340301309693068199207612376211972223379603385537298342271195371326832339329887565964318001554998993616058132158570150311621025589312555686947955470161340613058178630636141168106309993058478505471457336751462468688515333470387199006089006240575926234140387830437225224280553642045904317554516892856934971094121043593886218789669008972466969806190896593645858349498764197397643769818687778789186484562690207361812659480839897165829371534685431160004615555587468324263565281341007260339157996302003932063775853209598375636008545283889328422217435200442530122705719575856091124034800907243405498583586632453882558576606538428445691578713089862818374693102958521467379567881324311326550579102174459750839975484024594219064612512912013466508084355409747130953904663448239757454478829370973987214647457529523561252657052778281720045796424481940961645816271485411919176799623060371266515061192165394748892568443615515552984532428550337248816499662537623485371076599674118952828335567297469148475671662458724437206235074055083449563022619121633622295231670955184858679525544769564283312764064320215268986269861334903508316487741698579949443016821992496479743884081684147453076856463222348061901001250830102911636283658702524499118666827723637140542466734248018783409133263729762271172263611820071626426280571090939418213133423338640544250672694859588418033871107557501714983357632838189338974744897867357420499756480894312077871302341237237711315596082657378031379245273662282814002653076830124252652067570503069849836376376714530023034496900108490287587794238731897210728186466859113918123447728482788358915556459127832467704948460709666741454897175719196210291548856354034695309312939461767962052589212346882477784551231771036073343379284135308782781003448369352523194478209845465302153212283877647117005827975693207571768504513143850273702295075327829340246143746757251106056569515349736517460403397844651384877419312179383005074687505500118346026772865591088392156586924814158516664222214945290316812020670124584785671530129304576986689358462933528030837249362708494903027953302676108561450949695022034872180555394378458817954526079210212342197228870596843605060753027083263211441082987241978722758288717787378195860843283591722829228770468185403377774798447509236354470728205180409884198314454033629731091942379432385925204831291918162075919641825340953683598756824863761736271653545005077789481183686887750911555725610189172192096993471331829541234480400099762017173888936634305431459109131724212512999487175840869324337729362433175689167908237009786876789345898304933392353676811469643530676544354007832230315828570342769048909594088303465278890665480610210604759665066670891022174392644804401110108180986784421513633340828592356238162203955251067058149162092098084258286908150581679791407758258767681798622373381679504282486104056198123678585280455860076912374188121457921804315630062168920315332414661702123761949713623882524667112269698587005991504944457910193987864966900871952628136823484755650398407906358620405319709027275884988596339447326224234870100503545650118052603059609847007034957087325142982925741604871311215965984865745604898585532835343460049612871434675240265088198158019275699692561466065165266802102577888442963887022835809182621658202194022012647931449722081099012020001534617124528126878226542959509868769775661469446098058390928985282150601265880687616246885172798382336859737510434477292291156062369183922931046296392022153255959821683822064035360700102189729829838936206512977028005931625620874647615402512051388002607632061080163230457250321443337569663703696893935038341735767275008190403802356662115187455360703213498142428726979981984000565873044148104916114826351466365977178624039855531141157593712372022377562056769596195771995511802818950226431646714499215666901017478284755115646288213933722306733769200348466212523884506791524785123281064823415848762335146284323941209876224164565752165088319675180438960930932365614248188567978620732509447319133422834633956841337574313762984054911960415320939713063020545349104019186463683637817392525988780095282240314481960479565277430095463303236130416286287876633966345920476831376645547650399576801043470558901434971179199399172215686149274831729392996135865951928124050249807112041586263702451858902324247896352550986878480057199062558137386739029874266954191151909638038787937584856974400926644870807991328351828135469183844268093248102750186140067716995879828038538851658839454595941937817670614124244277022390787649736279941559586118076534595043661526762967732417201266975456144703350068032412800493097429112077980321160286698439097834244757056310416458902394028047421807333972797836673930537105035290022205054765603177787427156258563418188792062226145425178940793058042593665393763108133123893630644657770499794536637496821714051551978483809486818829216264275907486437915339255586910575198530242247137400629172881185949978634892700941860720421437965685523489645347807185098699216461841478127907174504762261012502135889153976115570635192008128937085890294975518174372767077035080191085386415507258592974461449634305915340974765126123982826463028761529946965466109077208854638775328962739550427519723511938263837155883405259464781582886571035798841880036869606340323348884766342970890185784523764443516892382078183859316098310588808153232265794077805059586381726450630692249242078212858310022623460637289610496561842318683391293075783834830922372906783853020003284477542655373480738583808908784630215887168456892726858479988827140330188221247597379765342212105813810218718139237623182272246438806511632714087435513388791265615526471535672929594428623622066986358985365492169206717138880609686376512704489678454729037311811348022933977287478249044664905080033933778353338452707447326436520709441374130267486626850741975927251320939017981623493594432781051864618202918444760927757577027105095697098293065375546868298787536966605879372815568471079850741529313901133261695942095892597114578384560577886504570591040471194055590468068355189493751065178821840003433418278803539172529945149323392124584958668682938200960093257402888979611969504799992027770155827289422746574290249529981854926539500414030905519915393693167023693489670049779426385155055215967459328060633274142438794984888615861265007637482822878241880718347554656571820633447857364492910840200435341431657312250851541530111798287934671030699067444112209657293312896523302353377571557680740736061125370514325530546683820903241379281752007045485744950194779530389069490011591910731976715107290582042283302455151943204128596292993917281383424183521885300314174207240708592781742807921281102227107237416107907705707561675776159028262122217855608029130181028689977131675070258194545360315245364081540391515772312507917226229724283854381748134041272430549720138711028962971854483583257660841025529208249846839136630406295454578036108480841771875157819951143696322938941419033685326674775869635245796685611885580757371049984320098885982512928694595814299274051883757617728166178155053748404233128790763049829279393078806616244133220562757648869085201489324774289372460498743957391377971289339449837576192280596556697337980235822581576567396613119073508826975160361110583169049321699933331386113884103514130825525856859221989725124350916140264620645741028700880459027654261049083772968515123605742140956719525738218162879172556438370754560486708594081247405211740661290293621507836105942773174653608527624138569598312219872365913685211613996572843275989155845611946118623478371120791365234737289954286779371082484714894677319525484179823539119631824452087273198518890079889985788630147406339759935023221615257438306800644349035702478252729722260080862199064956200966730143429879318199907368735568558322234246293316595895513472745213409264014947300203281476712759478576329494140807862663380905574601072173683473496886201110476883732942539504070908811456816848286834171088115054350681794283620202206760939568773221508301129711239696062223341962094041099509790395506664354999194426140201965703560463873483340812603634366053938702501542407994119940105511805580916700478936399004565871382851219997944801745934148609650579121950547464308637036208148841880313943571761116449398290190289973993463669848254108305035345570894272151561829850704173664613578781974939538947975784046503971999242050404641449184822451717541923879940057145598093847903476133573809596607785620460930394624410527247905143609359156483691130522130484361775097067755169441436860403249796989711862860909201624717429209627574797558250167352923458057463433300620600976956373384022961830041085880044029871283255339939707465694687689486889781388071184088105997752475190646262535455997954452868431856889132116906510654805960265685253003692082504416818901999531822667139419808499854002814564417009128837507139925896865034755277781319774773240419160207965960468474425565701189702838227360892459408676219709053604514411031320028157639287429875736426772752992718780126763527448868311145966770781980712354713968246410160916888638379906502238375470301249260588005673031020430174878847814704668715424656143583965963486360215827044032457825404707512946428521471516725792869813636427100137567041678166841140639057598138096161267647451342191310682988563109156152986342871177141777016249284429951637523893793683756100836761995627817444721894856215918847814435156598749617202339309038410810584810461738966438224661338940453468315187078249548877698597469358816317108598049133968631705949813903807094126532963712064998669872225554842776705839686976642794098856630590582034630130174271784648807760207087820259114869364742372343417631612902202552052688299685046007398237090618326957635507446366680857192461963911062735241188777129664745508194382892033428163834482672224101234731333490173937441915809900458329800845033089710644250485454453412304287389879026764912821659072654256154771096306003077274320809268927070718762354791970391727313478574496717486955147372693159860818710701626256900405945549639803840980715490035860304706303643492244087256461174436147555202009633777648449833498328318629185446887690829591423808229642832815280634895449128761829093522999073187546692448144486043071115402108189124528944963671968118283422049625342145317136785193385626546575427101471362229504962265833386201410943781248723435945173495388695831995253600056564709212735303688267242482973193416536911997974721197715093539662121700277149064596615129694634841689289576836545702407582669228957113164712043261043878739782504431690665131846788635551691100409849712723174740695634316452972605638040866447276587082439005080062049601740941378698014331530352232058051425159593971589674665570362232521341053381646089588233567241325961601833107028745123231299084844633949135793396075227572624609142564933858337737073591988339895555816938896532481031504121563199108830719419306920558795986700169569663099986797278024228579453641184307592818749533735059801302140664029770657605868650500920209784663241024972392162546036201096819487647104172550366775510714530763640526411688536180351786305182338227974210319943784984183141304757565210194097227134499451835458663752937163307153035132496461875910801166770499120612974469746412780466276702185100457487648901401063592418349547890050770470718223356456538827076609052547098848045236819955508790326455256579027049993685321053048721661351823099654012552864319940756483458931427594908405570109467588347209909281894990951096270055963580125423552379973340927441416794797146169540073902229237344791724584913867541201181681183735754526200853166364045946088323369137505569167668183820842530551682696712051047400317277341604627372272878897319930379276830948646076609369197231497005048441487421752507073003371686949917333133240948394685922701923801933804157414039867987768945211465560018813671810860525193280867683088882782362379673433534171686088259295521801838664357733612214333521125121794882677731158581371974613401078744210913561209133444727917438147700449012578991433673208029623627212592972208394650706662053944461160257523848432075057259127105646625405596600874087706119432140060135581473704523903181002297078352783223852911087199467884442719301986374799135339788180337030879125197681626651434600615641317566431659639768664368128825435707411352739822795337325528825485642517279792690302180526994174633768868616892548515819407048058640660541155515783674091067182052644282167720430052835870192334057832698280365530811585609628073242400676484785176152214272394394506478409766720353613480361041505188221496105770926852062757471553223413233283552388549815154002896387853111743283136207449705026726139256847043389334031283511049406555321529231050890921668784016749973214056028575163646291482673001249788529960462603824009136571717545438872696938640467076116683198660595223672328015030509814354692642177042189291205181595272701881559805261148663135949008156776941994025965014074804485400834618813372834240107200738931723346786945903062095285343668251222260148197056042055580121349981631625969468262079438659605680724456333590590646204416328527022705330726292843407581686805880231825072584851195518773225092552495095931196073846794458888589497582715217038633681553956674763616444632307763207581874070657149721707088530629026309293216425015449979045405737382020675498314952613899155073285024405088071908631444798247630743078823722519921787822879011684521188456793138980159453665466869742191419338334859106517655427316428009875990040486746555379694668898169667462319047759287284900403358237331266431305032225046345936605025113311274916533187248862028735008900784942408476910755180532801477616955427938198969304581644688790668118752512174337309528256198472256600266704707443651070291042225725087258640912804845479635942145752056426732005299145913739570073782737404926730326566975361516820546189061725615316336938996975892086524038538401359687888343823882943136980730182992467562634027960498908414159795893120706423013563208332663105864916221790815774395374981774409841641843506557969564280052596178262688225946950949133288359811518971917007086786383264953835765087888786103376120970676545524641481184304777587846644029637255874938205474567758969697637741810960122266858725842072539182602633862577427305664553069096065756445375918704663188135470496304623339359017277415749430584260233777224666357718630603703144221439926209172383467012517061339720997837870073690725605021473667599205624184105952319269412421736271615675661717724595917031857875330268792431588448722511397321523010676861508967288783805761078211300486685982712366146722311874571542093163255358162146535931208999859910705319682072931914249483449683869484561498102813092188610783504170802441029686989207418626691558739486650980328976058015405193997619832517517410198482474957391464813824322348283331700366796333864728312854125880364072733510489526823084888566335473850597178165313679714415938841370388958004060991255795339785704587803893364138277462340267281597026985007707860675868979662355198567014972676632914930311591196440507636263720562176380925316798291728356548708227505889877661782647053494337070603628194045774369016980912320691918298655206127102508909308682906323892436062088359430656643286829576231919623350382733984722120923322296685438791587148549675609304112665304608686130151011798913112900473097310643404345057234835167166069805835717342470278430463402987669577352266611851055114370870165784857503583788814126518715416421472218496294386366773614705684936812901727863675911439793336329708413931040817653479788451186132366498793148128444976988967579582333523115563097312490067057414289059434747063311011186042979186619412152906436838338057902969923033994598516198648566538097276378281220123983937986326116300986377990341061221986692738795025884914670860410277170390310399794304809034652546689300924878765463924143749057875511098528791742831362656128641256894771367962509650998165687058360966748721226328970494793220996224116807555846729874424263382796360872835446478496924128597796384495832911755520353713625428188819989579268322230608712519788661684608213718216602704103430560786358000228632169157951071814444604582354076759182124931855082616071229083846494448189422202439226848311053445864541755497904868120042515989551650484701084144045297001964787770135341444819326811085357228508532918364855008020756298826566039037598468373741200498583901876560240535329637916198368266050635617471287041402566361651363521738263499814173878362776160740458311496764245227916203230497821599728350616803782824505868692541309187553636301207052944245465630136051102816158389228051778252468409613025235693417662222777467896244824416414736054480066604052710629147466380421885777239053377614921445876421600693812700687527789686419109559448415036432285201751864627677754460660282505278624439950709870538869644842090223220012836992632271047494012006260875019783893144696078756936912845654637048473734989568138695815762602981020712164377982445117288453243718953468631485524067935537604045840086745385569418879318894331330693359463396441223214179054937387965113129882705835785622411031868611679833304746419101450844117907103898237322876149855028965243722803739649046268699676875504218602448020383489402068789731997222073787802252755159866314613398117995163445302008353064514433945474400592935594864129684747001210457815974104804663977198140145920907311269282762201741958752460789761911884124615400741968405928686450958243056646668800167836865832813914836340279422623636691154102175628333049252890322925834834808860604370963519095688941464385309762443620830479874067010715849819121511316201097124644599011549555162005732403235511885425544727901026503895606611444433373755204497254491671874714562038674398247599955946483996495819181858888762901102578266674095356805744966468520131747177455438235670785318935994471469709514610612298032152227081367232840011269587844559253766022784378749542045782371553466315236978838343000175469606105832714455996700555015121369424312764080500969368944617653504560336631063725043687958224827613968460902730673474648948184347953988336510394217265547356617888819863302117703093301367644407638844259063468819313071509856793902246740684176597666706951674052546391390003370936646859477048840646952060116975305156142742038153899339823477219871290966745469839833133400977989958747074419468774415667863922634001260427038801090652457741554594313436357981362389328269501520295133230743604664415615783221326638185482747885895265160531399265106823198148449388150957622069170993985082375988870744015763555817873471345416237274875783149088269445983376432966123629484981172653494790263375312350372849043203831182375757562663715208674749769962089372622448892806794513838203398998806479124149513290290740929416089847000853497512772201508392183903570052593884036938684922997776294212434208132005039599810832655456137967206575685277105000377973550739753643974270064948079536684141744595416926200872932535413623787655525446394431626588127495324945451498598614574300191599662965899537223516445476089690315360038024686807405385241802683715750991824502929048242970619537145587661328240157560164616296560791786395029804308975980597864844089636143403146346343852663798787267015722475510559131665218192683031867695298329794207813167971834813949698649728010543869291852210818063108307652039704291463605767754846370547118395769591139279280518125455610999317082597820174223174030774123564341686132263926811278789034003475197996516812383965041552596197988001915250010213193737913862321573237823550850229366530461210674639607125038661782824981676714697885808662309553073635060060659839246781831885783921665318938157472328696103826545786745449166383406445022207985632766767156390195955698875745252535993732709326006309065319753944719279690566779942877748908444617193152737000960545247268574763420251695128314128473359507257205937179371217708855803866982434506757196220775428233625954125486608809349562300802016381576453075733380759215410152369777047154375480433392369011682168070858500749615400940908351844096213217433179142047800299660378948839295543243779466665125308023842839576939310638246356851708715297494031970413117947454070140517945944630314775360106396858578338158062362457908033452275208026443709634057475060485357253936166413971859511780938119660426116977109495772097355310178866027548867832843834963371174386537025269420400991906281977928948035295495121036692694298225231309134235989259993162538152349201778079878527856324111474187481976017901791677134056941597276468793852751912340356573607399069728456945361330205650532265051254813043931689517530736226811420154297895479001723115313635463564601197363153771818252211520780255642185721331713973476008882431871394583910686465656253027063923978051280801803331428108284009563839811160253001365988623072536813764211358675725522353548331513618343901835202772487673930273485836158389577232525142126616514043427804785896950631852452819284206376090912237890063279106246941452950000657413470123918383017111716691844510790044617891448893510971819132029770888809319376095688137707239353398607762411681322566537936258741203211936558909069670333968605736834173059116247662347624552618786774926199750031573962488335507958341121996091403814705039003950244544906137406561863852984631903850602753125668794839274499982052923268602340717563817615085769486404320008012360327396032342897266848916283971689512533438646142658937370991509219432112194834108287648781005006029178469922508345703328569999881027567736865443711745114056134296251851713376362250841595421194694284965708265726515326871110997924840156482577351186271779416835135719150402648796218904831027455490621615423642984116228858646138449728063862681625305080513008964976177635167221140114988934053700195185281111801885449674526192756704362968894743452012414543065778076616166083350887895458853185077696113393558139936495932083139122781388285349140808241499324956755912991099571133351627165917432697999579154953976485988515424116640986995336320279356827926944739830946740541363036689691110847134823396451261525969622259306318109174846808450644955021406788769365841800270177891883854994560164016178574792191672389600161281433320957430554093597316847035330926423489396145255372831264617543982055426186476960501461148291243117431444024830046001783881124966165203443289817117120732784981974948637908343383514921985827018148342072005689242749982199669090230897013671035376916297702756271905173337298287944196844552017684192433463644917346250135476176662108970254734697249368358044463723492276414766797847238491350784124236680196491583289967166505591681994783187019072746855450032410717736726576424509651217850819204215291163296977251691264094669128742893817231536183805166249794617507754215899662795725038707979840988719853466821611593028578554895248747454071950161477156996727538061853016007847148854522401605063950461478941673069942934598338704897648631873798771689462698068070404083589785845426159740446217312826230599542505835786588433841393954756301037853106972130003291374485511926603628733772452817795598694237533361934236074017903702901333814009968356002048280057729408671715297153816912588517031601961790888447146125264239933504498166751969364455944008609534408049074000730073428562719625275434615792334895806378362439165001668596054995711891677595815827689880065584834440632993271848455682294374402480324230637392869774305134094785635863853097759549915626957014597445416036609675207229127784702671743232043536201241806495119606860704643189226528284269094943500153697610635486342478526568867517156947148804076849389856278307289282509112118449066009052731964549504811746220415695266470281542070430462568278838411751716234636185520020291684596338258234321012768499625391383129832821243018576666597564771056797608662149577182416428395944124263138970310750543480183595025014709718258412456782059151714419865919135497642005339748930879930622009118753708955726843981459450651069581395318833086049320076077935535769024886522355082733106669657002887360053641605280724520780727983859181799768334277530660916952028288091443241768747976239548188141028955545624593223991370561701047749660190580464575054172008499373109968347779049365114359737572927267408157927337817496734396307707442729502788945026339416201268863240462621869895518002544224986031825960387946723442243239310265308617748603241424121745131025149181030349605927858199319982618820355751175207172444777747081347534574073287695969780915045892353197257456825190252630476964114115288400548281700397678148023312430466464188971319238688756111981826418290632837729456905148176031368244297397875863542556866522247736333707879070240683509935064583406875759662503964949133097220359554671037712133094031965248246811012007211312339197263392610074774657173285388400266258680933974987725289667914637800411479973538367897982225350732731536753724434139354838285482843712078088936138922919878308100141680442024457802555683240997085584403448806558243224693568356040867593444055184582400214617547002362754029148627702941410725630038996823170553639119365932681687497333585861092797230604834989234365793902651303347872070808744673724661986220976755108489715081032847821682205932228772618050777741887009204786985368868999703038782009316007478864104629265733523234499920444851715324225045985237034635634138947265244873537495937153424930089813186101160473655535123801774597765729637283474663977892694547330220888534872062645394305214127629110233841928283258713046935900723478261634977313445963272103722912601977900238750729498969302784311769782299488611380272359154082010597066344369886531261211786547766704684426012823092578661638553653378878637509875292300283655806297122838232296675043521542440866213326617245720449305353213937261361557656012394260152200070315059475029941130702496096338178749715028586129692974406389040764642987590652823512765926941380285532307986913706021506532442621747078659259362749201385339873428017762526010599289425822182999825893496043348035788830636374400372729824745289539692927611513742721365305876550430353956168845154504810339280712609843968171507769371716099320403416187515391512218156241982757193076332000911355889741273059079690669866144071962753635623003247557928112587397659233913550373380741511053197528712331386357959159590846571828524076150903948024068076417668178571616759696552716351464313737118881571963269547190482526408650408750730400045723323710824501942116390007500713381972290744977030920749880175519560046313548723332557223751090234133528472382579052670274952850873374500136953677363084624771860535945594822758642255376210827780703929086060405416829635632001146181411313043068189032875954693745499151876115710195936974647433268414326092955026281194687390013747372388887632073647153463099943909779047260669217065600968205725647331320669474927462344501627569939016864133979367036536569155515317919222916441939872766575370338769312266154024395516827459021480235164490076031749776963635304246737861759728153080422559959954040590456457987157696918477495022967167429321337764423030057580961349075448633554024546073834776292993921077540013199430588829493449215214678286586584447474510122053896049972962953565998817035069500026743885977411980222949434944819391392723970962788724294850478995147317581590451179917797795042675622369778260458662572303085878200307646289994473951433018149362764118583061395590801748562918802734823625758352129249379633599725660009727766933029206350129785809156721356233608637666791393674060350303439936395328078423853084436454681526704535705505201643769420251949998933201258798187793856147196115618070598411371147098077516345366244766750388890072923080952096784825192835006605376744349734008393893350140367147864281545130245604067143992525519482007225437375058317146974146704802100198795159790486617283043221930632284980937254756733104687602333873100588552928460352435010262194010079569651370323734151326201932179682276414452299548550885920998485148702028486916555602560530801264372286975964997887503104488837670862385202534165826565869242042257841821084886571653093211173917704359410690237612436229892058404394374549705289278350487211450258264855693537936906854657009297184097375057300180455286266690177725211060565138637086227912803268369938253998179162376598765278446497668554392270627961120800355190872079309786401294661395582897197583878072896388650743251455499122285206813382178491777803771541498841323191989803665059911113055431435588641173803698308372041963594843654456315261268450096229659165607260834271926143799166762708561512941597289343154498655898781044395003295147733115268432406605901516930468463293476442064530303549405225413248785487253357835518316681286168610167078992655609901944644592218029435285152012652873744257145163954564047501821513805881689860469032419359361081534604558327381134374159405999461538141048614527940646808940947856266602666037010953942833899062821684525409769396849390374132254958444805941009493978285914207651597264835398449237635809767557870610336158110975945553941505737274837152505320976994964000644890420508819184963081593717770544146052633778832047971492367929154872981303426233046723519637028503752163331459704654418218962101870688809310047292539885312547516569906086760012063089248397600460780163438639492667659787238060379970191633855567874746896977279537930517473426664461272714056329112693586574886645181968071719590874299264752040651571787067635162152360797828706608132791429647513470185257088765780651055094294658594267489453682248859576438229412529585770525580793600053909109221246943944557591010039130968405373099465497707038045422850973305872928116136685136660562623120345930050258890374189186373460640820114369043633518646880646385168644215200363068391691650592477581787570522800455340891525857116741069033371350858984684768963395727741449226927609241992710598464456036092801654360137338967219976766986423214003269000885746766506411723400490505651134468181168682658281565030186293694340001294802127882584070870843718984641545125216754698240375318407534850049965553436553640518886510906258441161235888722181474201505573174080890407820142417700025946216209383275875087330432256579506415434137093451166655365447274244574322578553745316252966673270215934924130452376912432246380022153726067051406096027170671424130520394767883060801636617436360774390841850565312775010538249380146520312939033183027665916904845791833248696537972399601957868914214372644532553679709655184185391659123496414353249295148803821279294154621955048284513195977895116775525014632326200641643882903259221947385843939494517126096418483082720106812356286987848672158274882778918558605177059880545484512147215510249964535856582112899341351109698160563123888403409592881042000305505544741618847195006569657590013811510943922513520470513676475486386680483679407745586699244914018989465806840640300385929857172728805827703360694290127467791261349155173090724094764721427317050109279992846269708342527146507482665344642344310399585886378808374040045463034603394098027409474644106777944388921112030851394591501180662458837251160216876344993964734549229938062141901195544866949908757085077897885886667938707695857817856398271012016689342651100300560703268740655256577762336015198508317161889103376860850835633047944126133816280122872726227450464437335157012524768269400089663145949982473084859960347526109532889685876451168881625296204706043598753064598755195255085206429107166566125406155728531879319516547542186211656444426954474294446102979587215778503695105336455739013314332237595685733056067621585924980046245118279866833282533574593143133819676622847441437265467202723201610765865226202678339432867882844351335356992744525818663915307214314198311172042320546160671457420592552125018473748722788458800207632282980902655532554061056351769610848811402529234068621370005798729144289311580152405045532569771678330331313937910564124025274937861227804797503224149119016683554513861475602234745662356175265328757285678162793313884661250018953970814829997871898181934431255099852918728170640480850798703511118374449740175054487359587505159201663881320160601078502566774794235400973106659592039656339617762405216469853430299814595439286436987984426602408555568660050380333765764947068656052752093168356432729142675918452423246011308169403874118572902028447569515025144098837482702254726799408597762768611724813070980770403141656878205707743685313823765875714019639851626400644885843539185034827366237736265471938895734622726634284969780990611651772377969343195352805307197651055393145875342424965102438697087255158323445219014871644000523538771659573005115025694138862389406778138569370335209469400093712078000881315401577525620056946557377440672480753779915230966605695041036285306250865479841455946700747545450948506585126936583213174158870477940792404788471527006317403647172343301653422544641713527094331262645120985065628880822458660011093546317326589633663084349904945978607700811387805425255540943919192652984073038784100285449563829559891982258868599613114576842699429781104345972114920668121510880619761664441365332763568800063730511979848722374655409095592684008409166132353163911896923113011361907864589263677696483491099261041010834674451520049772758801399915725496027400613402617254254550755220629245160866304585899687127377859743108746265262003665811308522409124554579727477980297047765813588624681980399089824951211018827890156409523529275838876779240670108927310448658782539635660721630667921298298571403961414866957714805659046908112116005990622621295382335056024006954390540372477376960274011308830387036247073912715343592591786518876334184399135283285463313634255461469628779087131222289958551126761675730866447872420353423487168486289192191382416566627202104627521117594289942734023502350720358535564841106120100639092378174735006266722636208832563458544807986737986045980663607526404827951872458173049651043494159169502487803036204011907542228220225497876253362954812780679242140717113517391726837671369891838922709574300919627492279746202132535294457550668163021124507276189593075717878782543429175745409834046336213449350273288892365472571242607010095966445361169411208673502143955151774897109648605393205356548376149251395753344322023584874331525297101960788482434410315869701954218393331822720177884873056966410284443032142342029599652644273907918296965809358984480262594166117243494470004460081538280861191593278000824499832732332230100710316791811201061981193240566743611442890080044801286590236197767514684924147187563906309257294487732464109425578072518251691060018417342454470047095819551540427972179671765635518936651880316657003614515047994330597212420374150297110626055626255563190282100940364714467804087354886705672472728350184452400678408483898972472018056186645914359253453229626751767582204390450132562118052496276140587069257627921360545960922467760633270201011687651034112613352983501280081355087298627679251792121275732901742933714766075948601901630261592285108824982179611438459518237949555821592267718862024215242480107420970049418961163855558373237477577022408759074428554546968067592938755496879332075533175807586256295124545046176579095001622087604063646803186117967717925418820536210388944797338001272121703329764958432768058641914795067645608767357651227011215014923093670173984115076362510327252364734954131968492524714025443726311476394632179264021008384214077378471031883164265571996947798606202815027496132122384539527336914328729369840958680251623621270733490739514395252356543238387869783440137720544334869957948203936188015223516345609179147237386835063912903045715837382091279278766341848312805344899745264365440635827843855180444982073347198536465379030937143956871935862659583714824404314777766566339491820896522279173998646095183198040013464141275777004071664039744471160143230832671624604618400678152545490703373559331728226474007409238956241727648264434294012113698371762190396716948942128028902419073951228727410867342707071580804680650084211056328057501840666153409727233164503032224016662712798520498212804982876733441017188907850643133626919391218617061742443177709876903819876247813045012822256695518273808520745552744127388344064188984514022222564917369452971182815834289808164866380028087414330469106526878536876803302540151559355609477083881272975393896244868006123067407302646989382554876060717635000355051195144051610697339227998503424491912632198401303149490592397797024217721535490940774398302243696040146858207914746181393076555240980273299524147201745405835182166678841865113707813197116816833005357833302960727260430683948328427891368812329057472245104450636262909150571777274120099431812694283579852082662054022142706791238304431443747766054499400429276517757268203223707247308061920595359573243028142909305655706334547892628827206862618684733069203762348798252305860157269652789425074075435688709599779996308304924064631526144362348955874775361417455136376668772125718798963239639265053160700742669809750973226399785499375318393277211378449681995173472653323855036053125192007190046178510033642310377877226909986470844416135361788180882643738704900636834680012414385042369500062192781862844666684180103900947322096281822623912263891285362600063387989144840619694354958463151469209831630885423553547141051827785676726597278575124841809392613615486395332216624937989468131135837422995730877784440777871024560938291321548390418933457789056461768481545659240481657726272266286013208833322399641943080314366662730272189522940759212795766676965396771046835460081776236257675426765261778007215690452390073064801635500987391682468832217081937093273667054034709823770036976592184998074885937929821525473476949377727689430902691349693338370547415281033593714110673315543877869214278157720452576959719201717274642023850729117785475906874619596782648534937771095329832823099866829731727476724115845076469026810998228514060381489497288997938920450679314358319213787063252559544149591629615465619050461196783167699242078571855343442082783954756516518161183066489217844191086720557968268642975592521503335608082839483107922328811548861966855055749495076227152242460656124976355250527383895984451118602839008736591870322437356390804960091258277384830617020304835459259595290505296821127921695191841833099473120371567114542501205276862225251518408903409413658057727119560555984788350990980840913020830438530860185745817705958931096235422080618926349850552317074903588993381308924847820427263675398472388994560360135664795848834870078012541973594866948719611420279283967320585971478706692862565981814369114920219664396353746519069598018126667646695764751591480726843165844864626198873345609138574170089643984947386608467671489252185173431812596268300668085499182192223462381134133650555993330948397738959455749609705258043877775175005191397862631364701542841075431618529652694550814295951790963691601151810025170275216965863610990491223365785628844509025921149683852218840473177426984062134301724826302890360351721632384327324392738603623592130794141145209694267356886177609581951584948444511069295813776691687779477052484010308080673342225266456392046461374427312761169285508373936816161340837427308754774066185351985294468646680336652244109178925156643260598273603585207609406006174401443005980338229410680598754352936134212090144251603469731472961460048088660750804908376595871512231867193120719298253710172497303616787813989606840374282546807336049363734442319304798810894788259934993490768710364687026637042431143231250374683142716226711172016588514502273330631543891001888841723000256464631419772835513524306727673226318444774451916021451930797763428166221989461185739336237895220158583928452679752595447617476927363006155278394867647205564828803287850694945281262286198221886361441587058321786500788520964552683281066782936899667488061105007056523452221571639863999254301206532061474809234266317106394582429588446827894648846872737751695327463298805455670382052524573416222648043526083934693404506155277071221663202267751048051146017612571774639880696168642251969173090767462813793089312703113197198256914362473068490152009683564002378791567276014458224654331827019767117529700328190735243381333066146088274265903690317089558132953516084168619523771782267769435552059092407751569101059458776666916214112844007545819015164750874475777794063032521495427669479903564087992995629683775075646507967978870414516568808250879521117906365531156802643063868164900465409374525475121735008570720678908033364018469660402779570958759160357058659719454070464333853320586526929845575125235488181418153363690839526676269882668139176150112080377582577521210455321476828249107078703550975357267819185699197744283069087718735539489830172614751593125730818637978775512496610326507374387656373422124051107693091810128112041681253275095070104881920385116831599347363511301961983867825336754238579593540718111829060436067979671994780908856414473067153200306563593087129820355396815337616368589249231892105438561298591435476339131627940782613808467789014771399100537723963421174410863369868428205317532953987996832292185312644204311225981505693232728438925370310109598781280661527995019957273857545574026929080936562084380210918313544259548856505251173200694208760054704041090846629622120838527474493737041119921780085879398098255916602080486493381951806949593350312288088310723717527280491768648801788048838121246145253253367687476761419090425847096689843247919080119364475329551282179602258408516509655000531656433636423771467392861479691725393731398348849333753272931174734172335775340561400233698577270227306503273987713157746240743775063655442024581340655216993983069425629801328936651737905886160252277320547337228421374571484452933431282930722430121563665782440190329558590519540661862411618989855108628970764696789394810732085214294811123482795523181894120154291760124703039198788676178002533941536813125256576222963771004311609443449555052084665815831521111027809561714235541401893741607392988322329147552794252018790415455210394151832795286387262088462825038110570008126543966148186329077372395594017527521382869548168717433520772296844638289026835421992277271540004975943758184028774653267554553813512364626493933889373361414574180730748785783846475941592543063022860221625806938904219401777927969513629885543398288225659349060601061020759741610383046940079447213232764142522113157556977581612815287215554645078136663660010913938033594610713347483848262158738991198545157177100300747916132934353093670662495399369515443936775150119589005863000388423906901013307161691463501039085505865676820544777121474766330062239067214959852711642714332595177991832076800613900903875682903249662462465202910899466558810578755211917311391951113163005060725210084306837595511420174629896751558220171527836828018132777681260503444848252020165471886740118509322978408222062515090079043471035650022240135813937548472979494724661252059489181130271835746103720492014415704229391597961283780617720973045580622244029341817776728807337734533229859517143784970013315773658247949463035724756015332719824597475169515314371662505674346656419532564581957694999365387697011229620410034971810059170246879900471887541898760148671612701226704647263627990200171554289897532803021048172600798072598193667459020396194963358910932319199685504046435023792061905147852830016683387113403144326514367526963761117544888597037705024564476155387918541201865412010482501217870583803663507890789604037952160487970497402039846472214084748898856628523507826564832723458527552610956220354651185752181738424991656299777508003904846813471962159794288007163426110128097865322629836591264876003417032733112653197090064562094257246903772588903680607275670802509254045150077747427440791650032614870430144291627213632250951164896209930829337062227252122811162574795834150677272888232767261437318839621196493709443561918089262393559762862244505770461278131811348329024703042510871893220135942959827910540367649835263585010023211719897164962979083994741425645397921567588489265942878328219063972528055657915308568624665397991750262399719680765564092051944366352928671962976115778451488275012079135170057162202989953644889240721723095105129237844389770734821222736211507734934835081198222843785114595428666985714858583967651326099603669361451481861903843430229906165531449230958227387141828095377027818833698149080346708004527714589242889684353572901347763964890425599603315768181525572476537834000197751789707242568987430011865691261273412157477219130116348739715343253391739410354807821089395132372676441014771664399030655193972055448701590435592675504620477174473059985175207336826730736127520567046336044571770484353830051859320075386500110534465139937710064164322982477069708932622121653416821240691068513457154286101501147412741349556073029720468728839200654266154844580837568279370868016355078724480059757173111903582075106676743856498881259469211957224451863580690971973917525919698723062442958810814493737664469436670139312043816130898251915914930100893145312436479395933138014297487135957853615982027415746716526272275408521146106806927654515881071207091565173323912158761202278930123910855434433852646704515792231332848076800904452728301653107662040433833298978834728058106985433477965794601039092747798776644377601581729559009538142057408027820903878884599766440032911317876443907899743545673185620379166655288446472825964731808103666518968888744516149306692939017819220299737708670799591257668088462636585189295254265456474620450645892941848191049528744066913592737120589429585441707685077484372832537996732808453912298564963693896668400799473576575206893634489990350031374431739694112038284997205624001789036624359086694763047170356053246444346992123587542009502861264418018105953030214168307607521764779387345474235331395238807854967949369918893523103466506534843139185660755816402784570961020406459979722912782941579377669243293324340219690527971842454683728333172526950925269046281642204046934686708660176073925634379657529335725404324172501006188669111552014913961885404884599939204363672441335111614309514048607104409838897824398203980061665246834670508217357893467998879855083563819252485207102224701656915980810618288352972671416534980826940276683450696348675180197462511401061228305483579152413949989388864547761728225342494279860375838500239579094798978562571877922883245220107242888304189574364024320394476149080488435965363987491828017945972835448801322439101348796503088009344760648967636192020768700291868185928693096905757277196427492478728777034988657783316454458254410953111192351574553274905074845105933003185359269629986333463382960494968217240656552138523143862205391768139210919229044414396394915007393159783427042826553157746128458238168089868626089311144195111812317943940780224989805567826249847578983861659712891047580453150595639122551445360250748470770859515353255278102845818039669788949207118248087546036406397438336600935779758466009518031441850009231039894680630492852226239467173099056741281438305937131680945668053711760269507845674061201539212350537401486782672938839474429831726597230248338460228131478972337213714937947840182063388411517758054705989294120960756302450134098487607493839499274396199721512580225031769854090804760513219733104956938880251223314153308673608269726509684106128507536994285316564173855010390232271797955627107796942845053709023472060060428877202149684675009120756955570571327858471896888450674149758948402618305341103394918538361910131836391724278725056747719401620642774197875101639099443528972125306279143017057357799517918866495302695574007883948509607473945321308464187595907135213081737772291632888745509636456178543898251133102584498453326546544689098601096775765436500604029911733774238666784333847254359715070261059709655454028256759632728243928380623685430883457529771257561102111263026139326572205386315983108707098762900811825616152783523666419489029204010961924031225125584695082062981339147229707856040337468233983250264917830199421777268813996688888901840364999469129411848800309702884024798921224442026023776644760656495038929676589423012246114857224484052033374480317985690132265227505391973705242225968098480524929891088415463163744466446957186987803913590170348003614696879310394314076319271281845165379066108119751440043079191106701397066436056233241604676370876346851361948253797610294872265236303528826338432901166234585299290226442285553709946156277811402285147016341649448322293481174537394808846333987327322004894489761104923276305228681417548126129956049506119333270421355296571383102398568568365177002810233975192315055423017292221920348232105070761442733915473216136328037220171645985897479392798282261650466584621027953731348917563189402257892341736211397408574777864103140539509536191514894214346023314685895802270980177610028896282068896700223535987489956817277282156314447314321828094169388020215802630937816010079513959540319301993610584644874680988039288444166314840962130918400098014131530796733346868211141257868772048594481922484007837852141575126677677894252138248504729363563563375895582502974027843226188516095398795456482400274632396957641976111086585501393258593939911701983037607656105647785499344896054029926032455479976068067404383077842122256338604667911512309924374174089041618141420895049184266717323843632868858293910133513802956533120987792749869717456049410373790407685953214066747828212648709777771143100021201079508408429079570923290789380832866347065908151382211576151926540354094392440707729772715161916912605791098607914530856851200282709938501815779846294802046705801868376587520739323050777419024784620974509187726027071215974056018299018072472835706282991190742632745527405530918160172171573431464160570223804950123646775765607334798547163240720072726341806792974438825391890219087141644973154180163060270369155415325464902319723148088473247869836846968764981072023879348209143967837641247878048750133163639057188144284537614345233410211588011808916645156680463164367203517109124193606701550811750690906743430375375381832178106862292866078832115658261796625352545390277842882194053318408667334093365313482326227470433486549787471204500109758221015277545643789684287026654480347180611696201460800867641908992043689765919939996148828576475187111008248716766686725396256528380984591314113015672086746313057016135524847906136031761057487546859146623240700787564118916826576677320667352151099665023766509750890218524379469138049174479808127679422949783689076412767954358691542014115230062289976756668593380589010418087903478577125842696013205310679775539353175848337406867410955014154031749387315812449629995305082285464205591509320399299878007224056162682274623183488811083586281122134498771766947809725367471249511248738793129415957649245786127774329929744403156923561045142015491844110743873547250435078228637136083646102171490209626981136843648796164979172843506384046745892870917819373171508286232615552612940164410678588990214491604544646848615995450821435497616455207006212107748643395072084362230685710081462505464630904324286523429730600873986850369727967345782948864059389009389909768346300449604105621484831814858758010611470030706654252972351878253878243456088333789267282812645660088081439363919196489142742504036158394179434169368859582390178412572494653049595615119286481183828565096021044331075881269835341429774655952496338373599934601978488209777741851693459323362532090390438229924156848885414813786661874938836338551744455068339916663793379566478256328900133793087556142341926841468028749150462494029689269602190730141913604862293966051739618647295917122622435695286974005207826044110815495197733428887831491877169259653632325199643258749860339882362454693832578712023674005272323786361751436231047151821234199989201266932103121248304260585170587688369761507257777072993974820352730986358498488887305905069124046183865166431512525653516473913662619170014407766070049186394905142834004003245169365065846184655722208677340005715114763391502138010476888958680946155866666284238852053677512466615821585525652503840930296813024729827824948924325698369273145782564939194180563646348702647435525788442579213421285897908044998412113192380515866980228344998340124140944244442131089051065521597476229256309888589187275672309331623603044132720502684257849242005365424235045432158792753628207137698230652936388967271364593448093620490532196285014120933769944691412641934448018517635645577615578521470321469715216839798526603451363875301346056475516861905473932738784095022075363700378935315524335877206345441610499696107241278967183798635543275296504913371436070631459336550120264732171501560821022569811062311542510685823278601986118675822189074885763107249486577843944103937593067216400609747199044152969456198737279826413780008095262654668020747719757809068986839629118043406121375712924495153631242215838576758205823907310965028164898447175959553374464195784321127918863991432703540131939231698619915105276842581363114246489126349445025808950706482623767999917207162530122061208822484220251057876894994426530590954741371777413963053885623664450986658949931537854011994162993030076388339216012969254762768606115704454307874589117707332294532643703042054955770472390763379653514281674983935477597751108729003570936557232736821778881962939163188569174623908904596597172494534077084254769155490115168165927354715820554380847528036119416826248272786776437527645138499527592450850530577692540512090632440216914382462784800601875418729962790329884934684168941168470515834469119882990817588250974950289598329620725414841788950348305738136745563823334039836229360996743844489030839542535306005544248521545923849582242584361041106729047305345077702296699355387225061402558087190947760661213910564064230741287556508106567296226355035448841345488395085952742755961298791268939368607098736350186241226799628349925691878587761226839034306276358692400246718962507328809547570982690630711036253770039179850879808371300462693270530220444838543764779685411650053610170589726927472778846964508443204085848385821946213875467956113258114039272011818033818750224230401166163164531499052898472283985683900828965827454719575160498769102272461998063835387127624691256058792641731555274930211189760051733251099582814556204649471311298596298163940328626126655592751101688789420115888859703607651863389020599398037721770278969901595668775081217361817143958536872404682540582413279277224638919852067606699316839135142925902355929828424006479670154962738872218617056037603013656115164398235905911981474652685431091766507654006967160803192435920544243436401357904065587711267749200232445961293920349893795011471884063622801264977383355002998070945244590720110016375343161754341226023916921571127835696803751373409717534505185486299846719357630681264070966716343993203521412173607362246141669685604458292838037734188624692405186341898193855761404612181324020356005760356278903142297563191283079000063894210162978701435084979530857361424508024252495983476453473201176467148913890054504930555932313129323766699207207650947669241027904380593906788475283927124655101629997220143687474323026984097632985479829963226284796138324738799315400365452680837181243365119174532128259528964399151295481970615563934181587147527523811568769811364648877208610654145988152079578161679992235970520014522119624786236536033862899085427045590989859025649728965480048194325820918752646109509795652200905655180397537637071012489156929234895831818572657534029233011485652711358526763475052389183754859224890087567865226364297627576069819196037637904081217455748645536703527186150195060863989473407908609037828172731963358271027411215221602902685130956911639174261862217482891070202472773335601815311473990503845477762527830708662366896381996911641062810579683842332472952704228751469521231429785143597150211891788784896355132427194288717321328883607899094052006360314097636563846348041230016918890868126326299527679233635298633735044367607321584733482338182331566399525507978324789380404826597882613734630074759453487049551057480197357925886841995052024785404209431969929113578317386055053391711370264953458730063598172385992975336199980257127174283094581493673331383625096929738366509592865892548122889722934102234185817172306366627362615184029023515361723715748079845963787020841551553343039784648128682247011048479170245446121519622436094441436695985721852012875912905211725392843312001972595577430311660962331011897272613563025719194138410983371368555350202707004802929536859536997289186587531682057838249428154176306785929639887296133087472639926809682365582130848119311574294922469797503560197426318838921958435299348905130076713129812316206918799396066201088318581175880660781996241199674337081276039312708197504969227387325021181574814145128820092322218675885545811540506349460530043136162344662919928451138508000490345022206374077251330582577457442813407312045990137214892426102522222737378110440375030054546896801437629308115542898659662960092279796751836127595465761461562905069039950806680402468504967882450946891374960699024574166143641456170726602897781707471861073290062153047577931109030365454785875085556772793394855796705190135738930170746833642340751241048662009088763830510550367664267160221119293748110988560941089375553981434992512600256407482885363741886765403924762630726013152520281168283164805947203470522970818970432355267527155567268783122379357538069872254793549842646047258233889037711277205041271239025767300422072571047780519775922433915393115212724950336075795604180457241051530609002623536478818901846604336905596614101044077824251536890618476978917093449366453393228871391116302674239621612108344211739936992417023790354259908358613613812303105857061439792969714251361132893933280298018678561628088677491864520738989608740525324228482210095503191924208893366600432550279328567898747817152563785409515957803059120626134581824958195199120039416210188490164100487038246095651679143255070947885540736372901038878334758830123974244689966575777837537037805561641493673102576623954591294461635856064966805379054837057550252643903908851742422095235498056178665308580412360639143712090249781625415908600429502633877460678779453761743507308291570048675414580909355794670961583093423956012246335710678721199419365784533337450279275095175299622367738682858051102806861578626200656003939078376861599861684204455769333640645721129748885297858019780919741113110281381755543088978246182175883689784399257804494589906931754870673382942755431802858501803102616834745851764508344093197463287150261812992150896854508430191659916645708565999307241160406672292805160242104816755822306774529931490133072630714147780925269328699084174780522818986440947689479170690870217110622534475625657333445787655119499908351480823371444455835120604625817758562757671206750319781005034712791770103258157992602268761788759283985155868252267418645723977836379132240859765002842041127600267150235602541060979841620487453014968673258921627290692586969526145877617565829675921156219996826954704618412264787719929788899040532354376316707601948751091232566319959081979535496407819339198259280843632699327693754899716873296274750077364119715165616416164801390320196474875430377815432124118179416681391625666836211277917594679753020865168290978493091844611491658121977270547330915744935991587192652292814704225568107354901760785278745814032827430542600339377423877375825631929995275721802307978563906126338725734750100327869236302406452666351842516215435170397165570524426950817258353974303157185300820271132499069158306415685726972449398748191678434179433791337844284644732793816608853478422868303850855840574164820439125826295601563263088415458508826120552875463523657219971860796074687196276132087837494026219893139156331030821876897073452296619554489743821095285032459879795056140614087066139219171989345418825605273664601830762452187045411157019275162943783224516721841291564569731291874804180656567354627510821475041085572951549817144481738159437354216051872569650849941299285084793360440854951746495656406524444635659863680015358760841392085415630090021908041824207376437927071682015654621118391835343480707739242320338967584484979687982175327578768427601748379070742487577283868266168735418603436051616297133816509319461797871576287308435079325402172129143604214803296860670776463502293471619636426017104573917209024218037004010838062847563734282787339981837853296078282255166867713155302028836273484712128048817845637487504398823076190182923532607422234818273950273555185819278723878317183787949594435621939567527162998125974323825271874325326833761473998558688675127909441859191194125222334252805929207663564800121321890515060678063813905006950695773710088953287202454338433619992981053991799503591856769986616683063336695392539372349928596361236564867281245902051137706860635466486424587346493340011537864623227299346954489010830752336412732163654652043278936831385035991983035368964008385676642559951169829998037726306593236124851357296061069452402299675793024569710856037359416092915637011004126823458616943595688541987578009281247501526035769021360375160361663812995477120839363026268465728165970850834435706216894450674828274337768004460276675395660703686313226701057143181266435354057725531449510999216481227332181380273807425615713439976937082196103397778505161486780661423281313392737194168318829289294097577811269771724112241401044493450387837344321757881973226922780210928680488897472789557687438786838930740301770688628116099893085473347863752849245461507683087652386308011839818448207734169917504245444936814918903393055600151053776585352508373550976575385739576722032143922533688691910235755197616376138176533553253251715350672874122024341303159103791295825141734717617467824631105109034717686918151142908154183211511258529482926093082644634023154170061896380596743555842680389614192354307445877996994097818838467686455785285257502437125875657057863559703979935195455766269392232504383695028045134424385184474196196851464081036790050229367014845477412365967731388380155861803471260320179407043413944736632584076377106088365109308101194113163456283874752823162967756632515072962370116207097393228849598784205778614045674237671574452128508185022549951550845763120173534375092173076788206289710774403362094129451115943437235957290880188934539867561301428409428891877269943763669574966596378722368438466848789251228329024031989798150938695122089028159912999883987643869994926770748343059986922138275031963466908435414309154265856914641355226632972482718083017800271312352701950768039292221487457094742546864332026180799185985773554147813738934769317125496934022379037350619791439552002379387950137589019575457477931341767210302463767890873958098320986332915878197800214310167983446878096000559609882858905906980184026990207163074180992556050527181642117224000101451258605596140110164463312738295792620974001785427085429823561894101367507694662528584385078253924914294361201124941582391340391677729920004499245477283482160571364727660077122447385903869531991145968504638723184532509229761154944768772498124582080563788609451763175410976420637425392539826023032431127801807519984398295770054320068124593280048911912562363265852287870560496967963879033855610559607857910705764338768177590747217406791439212268151587092441912413068952426857439001560299538655001168082185907128672379365755439601215403178051328178277682094091636978216835925886988271701392563528252775602078745272738329999303914151895455216582445069092240157609667346580161850767196848881825081191352750514620906075226330986677692319042685991008901758731938866135397419570358399070445386647137883679150222398854910233293873028646306807216275833102777939300426402685069621622469056831177192893969975247216857136599921090162161952574445184360493797114789205282532316470640170663318490559676129776221095350281138026642503370403914402345313638932122649917020469961790439649218951192494936222477703565113155374185192527852722298568516101368864446577455498063963328044581438400318274165678465262854291491867020538430845938275346165739441498514183900653337858894487199118024052909822334262548856025179927900639185559188791993865724247440760608755998438517107028500490717993808775414753142717288093595979720796623598010531123988192276636691587711108400244491527115769516309970264121382713736551545872642279609829819510192356126052809920093903132657659000598325561736947604682915274006025444903910704765375953634014673869170673650529188686773348302429328911184028297133998883019841076478716372996647548574053595282981374937976238386388025880730207677716426953964994744426223168780624036062173931438755743521727061631153506148991716946775881704219168288605724054657223760822239597646565053336001191123681722803276627323862253013040340886114703496693092836056681127611911574881703597457366435095371896722700603454384831475447430552750654845226328602528578427531527846576161615280532448837588765615907926973803730640891985557775020349593995135115965854511744213001938398464200659813797049669529919859793981785153121105861084084333279057604004072086179503114204849398349465148383147170597658927282183080119762200497884894145825497925777459748819882919992820830450359553828653725550909460431474817778760831853225109398048457643092803414360636271444287224316201943104579728383282512623469791518745315167416099219027734793110034423264685936644986830356812735210998534739101589391380502187869272690720993458518544439075337577660701096445083512359808284986341005443895316006687192488834643602129498177460345310107545267294573226111266434323065191715452394047724283050259703020404412429315910757691739479890678724664839818003279220444902682138877791268859529372578165892235381446696522568820689938551115184363751125647753020080102504399337460366553573895024673866643099819664029208827012681336025322605326577308093972501813875620352859239784204723333906100510368319722972249906520239267261584893322111790376363100090556002871920557505150983075587501198514720313824244329574558156710998648474211618397009521738561355360883089531998384583820767408848573476260001405173939714718150255039182293033715194913616917003651451636189157170006704351038252543542085016387414868480859156723958885905436093237035060528642181783223093639461637178840318394607406066669298624411913781012755833205979231396641131941043376141395624358958208206495476809662145658385267151907323112013989019308240443294117159532011029171532079344766688256883513348709756902887606030492009969208529277366828601995112052897818557843314759606088976150704223352062137322239474628682028809072445206870146209876267318749228624439614591372475110663558626900520640106546151310790545167286940089026904671517362277833978423605763892212339578373023464108128076760301845413514196852091833702891990681728751658887482573747828604031655200762560674977404518809229251792370856833643868207099130554470723025749058940706806688094947805011580114897004552958555344092100564440152148736104004550830981919555252625039779922867008328012954034247759206015429714333594247203916436522455655254191769674237887930166737661398565030940811910636045293462110595088284933681234011260959987763860628807383118694731077430618794513877034519406995413610227952764444008082617769322720539759828541384530003141953589327995143180531945654417726245945762091915838586990640025661554945034694129358856178436983356878309290423835653741698688192147869240636333224517820484093238798519208451399758521808806413257231484163400109688026454792323055654384647515626885871184710160438155897008383502097565378599373955419419344917258336675587202880210689743918518224478640947957508656131054667191691320902539774922072639441170626962790009872879353758080625933066594119654140406117448717306586433215745050300409447289482192627279598836738213835289632486257805975282358170532251031612971376100319931956304763431340699524609463317944632291723463579921495827817060673576078446550339964914086575128374984368639429512607908060985313912796938764629272349570756614867564101877252704949969985338090662924919033443755859581581761024538471558771518086463926032972162215081099115917485383127927777076741004002237127939013200383835453754750351785202567605773669653216500200261112113125738609622299510720257707522661946898006890599014639038769383643018162284055098670433749344174248015277125816685197848637498055868176144773251674639046915432060958565194884113102973843728583802164250889806525987471209221933525052987977371530804725255067313836636126697995886493194979907233861676548623005847687603071234026481515738519109551699811636782995422176119804338049538777429000360864953320123385039976567534243959683929640871405742762036776856571469933765378209464167656112659730651008081946733783367930064656224062309946851091135165579497428514078100380268566449939721971935644148764333278513752463887158349076183774757408790514452747431620842951036161746981083553010601110542045086055937919000340369073089625579428283311650893060677045979655882176090542702848260272750903808050203471228490376848058503503289179159824942042638110301218457475979629556229880123417649173351649395925236165354455869280070414662389583871501771577505281481046569967079605577024916095606899990887215205457871430749785876614085863421030984368255839096686589910062779540684129858084971965202003046770708424971212941564942443757145632657098875187310266534482812801793619757047583512676574418731617391570516849381849622098331549490356875745084698597663065947385686417317255495654906382660020516715352600538282533564790345087926738792399192260492498766108667232522274374047037117395788510876379644671189348398786064989657567628768221428327044136455520580308958966769622672887345291499002397203495113803687346273319377983429903819016667443502935406787564917121113539665285334839935467461379054422917135061040078032387813822943175003273793292910949330405895035681557216532302607173951035126060189882902204853526781494202908354080860818601841193745049340378665526555509915140183909985039481664650260870721004717201284015342347177931969523130607948381035906996459404035594056376208127466886129031849911052519902609265386125544266949733504077881788780253522152859160219026671201988815342948302775835551879033974541116164966578181107245919291814366237432924555192273456560302180227052692619152176451671983413610725402542970637888103388835962136588613696283355948963317674817504882075643074374059037725326131970252548641535037355403069082895114600493961614746432386483647791803848783477749014398757601122006334119469112301957921284196986138284572417129700356177808282964986294779632862593200654199651886154944931903896314666028540370167357759418688807366414177844407773105365502143921077023373291890225648899640050427445312558061941266875462275287558461151109307888533898550731127468643370523232876627507928210136105934537076567284685119700844031938869327847568095590866673995935978824236585903393301192611051336395282385885545625404584162836845617937540049800684548209482850405132817547254501488555897267882635420159154506414714920546280344953701679459999154356476639978848186044688621434972623265393582889994880201490011378962743904816262633180034462637484245097605429387217401140894117686536093374880350336226485729828139400226769944398538312129807452689979800448795269361707787286920660944713442348618994642780177185904515560962107534845631096322080731265651168746352309218779988564316725770961271971246073755872160038200591661410261306008073426966739978368481850491223855055464875893618958300704231594918611617136864640994679053349746187503480050907585478773586600854774454900986837433556041270528916749561544374836807249737648890307843151055226126146843955084041428809558208143429515821214559895173336632383922283872043471326276279189163004251375463244565317247615647223618798736156985782547092029826187757615690377085443746399947394006777488019611374206059595633621577916777410129473874940128558234954756956099111231196001054535860412084819529275521072786893534949869746777327297612419333223100526589727200670495387028134519225254213468315003634805266235961813891161509915946974518964358539943255351419918647699006655423585707853916792881734541139021955105679203770224761447602168605078632822648353105121925188587078006436780855800444109780233335180441000051632269836446766716904055242411611895503835189699630768747896761083213434320641559443637449602339594247422131104371753546578991426380696121575286829180170054371706970280000581261539274044342129990065424502843028827588326453971979637575072433594329326581050927037920653196531342620286663041330453116882311810056317499257662253227525228293043666120032295456821236873173839408917275214441660247417644008269055152553999185850594876263091484769138505457140169647293911239968642784107857167305220737510935542926395573466269114652027642728604185704689226658495926138564490452720192354295308699254428305984459113376310052132021341932793589015772623291590678696320643293428013542025483451392446369943725619247752729807397812481636938103347754086306239526141812930161698121567333320538990803947224287491400375456662108711431994106147108836482191278071544131014986652432652995221145716013758597684305192797275786942172669880268616489703455175824265235912494154105257733398398462589584435965338180081380841872902555087203738178154204782766489457017480749374303076131631167363892931651943082178010375029013921336547043532111932638772924936441507501372722174290210990146977568364192768001001763313086884681011315252447871127575046617039120727970598394450945337208381757182411081713495100659724621555316621288014410778181893146021742318153977081447694477625183450294967948645212561784623137109052125204755501608206917279229102942803185002532975179173870376183381449019053730010443968987252471161988162484714991711675943578007817343447486860690276080933348909980314194819127956360879146350132389129575882750948348352936425354074109247042689526757330350523580834314043036286171373245022525319066935421267828645468534551433057378476518829870735554246652443956340246813442020941681968988342380172382311536229062343167247667870242742105379415128221966666680967292847293413039177600274368195404988487470700816221242333431160777762713974807312914159900907675884577874362974184821618572025099008983664434947378083717484899995207313306684461668923172704190748955231462903746210609288440857073729481916259734300374574848723877229049083216247059952408015479045019003400141087511178687946420256127858084989504255892872586352001298352038642130013445621035584659211154124443359266621769382356580151462247508545698113230076472812412212982341216226343057364876889410047816699215668203482222487510814398087275018184134047400062195289340559563336063482160821245687500378033487645670119575268780269217849629332942332796682940244452575702335720973594134584606688393456442672700953523728862116453402510906623975243170669326853292410305402799233886157898631214393448464972090860128953907948272630737630765705219616757936642280065523393563686350075892237362894641598924116850582792619622659494735397666404132793612139229318299821850131376228976857949781735017882054112034983663576042089892942255161698649855697410898024756716032313552635622561690660406002029927954339358744472400825377584308656153725215361541798557603283034512741821543824056696254646719062478087143278070109082265329771928790556209698637191094015660821348885012897343783400430913701533031407906133980107868174791284514403779407688906190183882429238476075067485038001162644634884944978947085320594009462173847048695167466946273013147020479521640698485668909690518449959611415956546115462101561880159482095212199455662072714810310831257823190121235770077196231028026147804082588663977400891859126279243733291577238474423092695024085104606629518382824514511159112136160357124866739668853403719487128801364474602017781576959715561372970779226985632096907871403519553032024604636629707927931407411957778469950362263010290046099891336585314741399328136644805614799262550678332444083282887618309221558766773700980942964517838979386717166794825432747103474560300145749711618461105845244262293316468161649640899931619533018154747898184080611688109165447095012396610860214548422063568411258263159785005345562299151986865621548736029037460306562429088053615817362056694107699004398522698121049887257518165874004019859474107971076958091302352832728822752873263341876689448949772468549615758675117759714213065626068695647524929349109445072634285036720355542415416013878860858779193160561403304759324568796130346271369726803585690553588764285444417571990682026017562661111852167130432152207280070161608894545264175014520688679438566933998631912143908703511807519665046917644625218852523294297770922706156895106205367994631559535903430358104441844817002458834836261788866947496003180719144347206615926261152957917244953924913048143855540004108265419435622896400158114831893735083149825263462779904256175363687916378330984796123840725330907514490055324092779738765336667983118321801339092312353389829741023127961652335054826923742736545860358820862870655483123413375599258205499207896709361865718264255263591381319756320051040267624907812540986303412971856438655443585628600687038327415377177881328060251654326937049649296376065440985589970013984759210218706736720397859927750943954833075205373694695616959325298445510379390896896614504593279688891918292384195449697601140664474587511253254232166590295441803770687346038505359998247346161652418234218852187759956108173802900930464572700873179346906259922997485947117812555198795470174619477837087669637545906837724136670275707565625411774951974788355475781376102844472316057946537324345487974074658330777445361851993351417630556702462796207734719521500020099944225710144787631497432644702543230286232628221038722300216405994639681672454844573672008044176445225895109298247096495849613420175694869806596613360755759659778718993611185527936235410054915766771232261991778512362375213144790550124784650098857819538988537440139984207803930768616626791208859626046666270375888084914196494445608658807301769248558555172120578876944001402695100602930951417895634833754442037941421889296230870920663647954568917691940688580891562759397362833095454686125267266217827790692988864608968190217163224071316650433674871525417391267585608710322144329669278437039502025238947737068913881871270020361451709633639056095872747294919875128614830599726524186463567705801849231114915039060414092539715088843483543723186932792684518603340011787211639587880486327993040279797372269706024576695249918719524999423013517141471953314743255775667547070742988068075056191917934521014611682697389719945859884323447901402181288235475517957341511384350168021366481630566291071761352543985956314816645823249320578719398771113003263722081902879723098881610759019745172436902094031061217049689758644668422263018361164292260249425148043234999915048597736765416477606720128514298457686094379167885685098364496066968757061443543887985816019380299363195377994670861016613171150279899271265422394946340579274076327338969692958413425169603462258864650484969489522382681694395781986833875360002669321260962506867816043414696512944752408448165427951275515643289601296059384611572762453037802067788912353413178694811089599836389885502484209785566854985723307725985924111955942896387575415583101289868428568069655879489692522870797650799067187787051628246048491216539612020915380008734828317661882807429370777603598875380754385424185564065671589303530573684295885397777231849740342422156500280682639379976048602862558825739949433888871795765922512219597178621690906493416498628649308193645913683773384658210182574297861941413495332342317192460742373673304825900166806682888572290462244206907352082288586681395199844458711766617347028025611806694641891197366468127119482056829150782008542962198286949595599984679813840382458677380766028558865909888736436040411558997854974534140524995337445328064990313303884206193826346606890091852289597060045860173947928251648318787680259321262850852608425565036670953086083709907607908605093313897234812893721791774349940417110743975132341111014620718951419941465744978454444209675534442236701734962635510657011349552141988071355519483496492292440019329434238429918463047661326416901084427666967881858415910318734092817762802457988761889131878473845557028636883736358320216230612357149958294779683942524632681256855361731054724362357817948865075514551687586918580536837770798489572453518180880478993391269794128509152426041403172149782837514732213838110099582873768893293524129979413378238207642315491811822367106965542097727302615956442770464483918993278051326969677933423462550195047131373823363366026278258365425118948530253751424846366443404507916900265572738020500622265552271104084388856341434064559467375826364971274975563738040683330531974642815277814858991738966540292964404603157826319856283565740186750188971823815339221696423807594924345263948975452196525240707679777413463868720161555075459765385676153764842802650797377163338731331553378806107830306039048950961267494452594871062191209416766516460741916287900228349248151222432949183369476437429612557941914083367346242766337059526966737644219713482201169030733595195222800897696109055375723982767667229371028013659239918721186019656862687887348588460055011683031440818578826664432213600685267899101647391676449444074897057141949973122414721176454627891031758233490202212297091909951173060355738142510510927688732876845225561733583470880663305663929610153464912804488520137248791177627328101280196724468916718437191468186823181405409050325800840282124762361452467323387821734094703722145243273998458018856943722525496974036643534989985053948927955749011322175788325469873145281560402768923027729951952404191099905530129700750502316063156685187221580064694883909356408632826518571981660614620093186655889642622321429627966883384884122617098660440862290537459631004433867606325800876469447898098686905578752154248377125003097250529635349957462036106372709787482841896487879390708960432433388256266220118362947266530949380979616082133432959185997771093677219818798498062503763555300610234764111239069453348209929753394341490755365492295692807766612893752862550503494081408353439464199579236111389342556517477666817035423188095841640964954567404523046291515947623054780950320465687095775281924886909219470436455747771954646439366433751242479503999732476574466382686289764336922054220813408054722333254666907840203246357974293882079690830060797545946037639951895612408917996692162752917609614514326285513582233629620803171171371462129937066292082731809882998748914996279334359620801372589168226678798912770083452192341938837199159982370592297609355464564108697990857005939001177889952030930769874077586134016320502585223261220916954216126737295698399187824936333566948248778588689232855346700279546550981092760455562992529604316177179855307304499314850894270678773434625038159755680568167706571771936046168601813134858771533881159248315163856597604044016184495816432362617192724369964942234208328154036462785610095371996245898203337369669379878644816040397120293909351739255074487875356939990776049317173297032731566700420762642158743716343284966600199647439472750666748622872703902368912707084089423825153807923969523862984784462825576082828597827083918923536562508332770211479626573911490407185368345991392327175133499342369393111748473656278857691615075049696960946035943266212790102308943928456959589310422787156600037321898196711514274041304756093580085176668882087394886430030716161914993189946806724636141435801495980185046805793906471358079558865313593946351683442981466637679606854028467032755452877013936743895674479345419915648225050638746382782731418234619713352680094123690584025479258490643237662878688296827009328621130410058275240225803438014823367656815131750951501991536627665659991942438151314019034448343780741444607589852713340694763874425088618963299356825276535493684532385398662612032597232132712365730439198773802661863654175291855277697222396270441352449891597938030299080583218268833378482503450108392654649663144519822652814632157255770182030692876757972867014087158937248020948034761380823402739322670394642362988612875081781455623197552868468450812619105909316756800361506700832825730086085216563838281879612683888013416232708405563535960115834426644151025207220926195389205436323215925835123800497124340542579858252498213248146982587066619974495376644572505622435187362985283705573879654560766995817852291654692318297616909786519183136086078668177525683195452129159218623268338196781954616056291108046731142240068731402284423331961078406367573690839229000409676218864634237542415608875428564769045676828146296312293609304427596169853738838352221207336960925468103367632435495590004074469095284429316632668497996702153187615800810056820045917877445607482767155196898216095470143737924479943861742594573316298594544989892178008551323411667703385617333166251371013275639896803923067997497207689440617529739308743935353792907488519482026655170418797698429578844306007967422330042434966450037978888260966605761432505874954923580889888236742634130317322068805872765989926999338071965239412087001718651508584435272822945507851337530495881452763559996487426098010489567514236313968656822965793014419028893157951165185060755191047036839024209636283561509027454855956064356777000984985321977116544279906414901051699483113604638776536354792477687317243787579156983518650714386165054047991050175392690932170318181384111876035390656087767592133603002353281122019933361349238130414477071737450065836070975156630077473056217094135293039386043939841677369885135117914520702338606278463170031155482282357014684212940379409664056436733677443149862383547403100307399316753869020643758318903291829774757180802289874033533220975262216136956026809569241535957697488246614836476329472289217948137610301218932912406307867109436871172147191050594680992829246942061827510745361820949619164286272866970885290533336799221656336255550825336427022956184327691101685486490004201974874310780014995255314299539399113209496386882458523763720658209338651757967054217010515248039744780684773040141708237291029162004448967202981663904069091450767530525013759191737784555679773005442371648401412062710591030233837255368070254534956724315448468799327194943714777321967180116955943190516787030965230792899596129101272753077021196421146780030686231245345758214289149576313833095065531755856702532575839291483554880519360339865844674654609476716773369270217125578736854463556646730035770798451919555397995642808599735696051674435747795870287168071751008322086757258373216256528497460002215742891447305974036924875879780033759613663589790899487021570882715647707206661054245579060047063967367770078827122296641516148222010946888509935482026676270351414813552238517859676347133577608401764458552799445580349799736070152323348858590038231706839453498588380028850155843848246827272794232544751337081757116083450005665868838576409193689566009941395094398015642972259968870389902653849263074253897721544783674387472249070316261176419694768597602418704576198296208218496763427835094283163593165311289933693003668452666863755584717833170741232368694082936383391647325214035541614795617817039685921351242760859108845222426794641222020337304040901820942265343985480790141754069136733657385985125672925308244865059397737785962367465874982582180577468253726138075849741112640419144388085844435918914676672123989083423013496548030475892182134396647727829477606385876452373274981045279147505314751530454413065367790174329529170464208762821706267056040729302885787736085288506941536912767924349474449425088895133585075593605670630835118158665089470348946439796573999488469832993186765757340157866393467768302719377671210457036003694353915275750240214239045508168245671281324957212992138074710821802616237270501249525024200776499712269502106616059611210464468800509109108616745208973513692084211390880033997545341736591101602158804395511572778352329866548649341030266490782479267515995516784055888147299812942523758858029763732193081958111347222270429375591728945315873821846020593529377035759209172654123695970035137102475563469738743733800668910397499152143274585741492247550861812351225963546692293483559275325419843506706568162874849321376657556193482773661184511786737822296616606084778237093423911176145098748319001439178978117493193060686143899160737614876339268785765051480046329254348355192203238919824290902971676865936975062473742218387257327948793135793337142644423169762652274152789580243125865455705867116736146690781574425835976173785748786954663352512258969453157621957295910535347128251041801582588493012378867470494726556130777439777748588367430759681056042649481641022149404215915201366656244034976833348723348859015635272109109272732258016991362188679871875561823148861950617349663668298356143387179770565528032167472946311789627845134917653635610505379722722713101319251694983106868239822031072015184102102949242423045505341663223843577623950924101234610322456383684764188609085109310432693171190692759344413060239721770019847100679617037119193544600008401651680087496428008573018221229010895516723560105200774537793130158221519184405844530355884501721566625020427228993415247079697024746155229652504009300567938170175621110691690313083775945175716499730028783689506399296422968650652416936687056518180539921038424753382860942208437233493688605074345838627623744001948373682216800430304998915696728519989580871292840650439070640340061694152214318375582906321376937586308281426997998620650103336050313248993175373374171613187781482679278702670673997058384975426747257491502755690059423090221732347069662296331121783173516347852099825348320487277869310563148217958159353671158396213769576499255961305659820478927523978979536495303246161765142266739777855428207675442275218397785806279198679417347058493732625995627491169979793739445622965972512667209852944092211008106228939298741291020617021039312851334215035759716414283078960345255686825575488120020718243301818124794045603467677475271657551597249147019532720057154461067365134033059551235006707876270446009447195408444889986699764772299267176277769797607316901154014752751088018013895950648282829299029298154812444934745942183260200284217013720134434322158472064734732642262932984973784072077093681635817379431602132211820579036926228154326879129366500195401023661900554875767976275406289674331925335560080441954212079931492210575768929480426032724297109339729686101166528559799719469193222003400220051746725556078524337690005115546994448851014334739522629693960630177749177219550635296947969812901990108729877528025869659189273747692553389025320472727544455734436937145713640415189690672641967693785379313285421647342687488182269660746698330117353813618171141313855507608386759982444833232792548280452728508361967768436406987923875765232435669400998274412748326431833311675244043779746640260377467795964008521056283428427868312501153806461369254191740355285421008182788929125537846400861099904965140277827796513832862923106738576553761837726903923952009569942673057253328253328138605248286025560105637734772460709140640480167361143977003387683285998535673123905381453025734350557509805378795589102562981430522267995507396750115972873709026675104923956342721289026028273601615619133617627377489009670740383443489601601504762422750735284976097633026598084925802956350503546948374705239598322408825323675309024650306240719200726817115390841815932421630301550653118804712964137560096232516775305908174703383274817347232198667642897058459498437535482608667732558082373688261724886405801366335878229082132112176445188601356789886910760292266378255086462177499537814292869429891790701182156398579446999642496233119142456714044541491737893634741570214986253483997829570112566961685608153624681491408217553585559762849506518865914519255051110150953143263194167404300623835689764100682523105144510677881475333498848222600513025241559883224731050224610692210399993753365559862881883273550622401037474619824060285670146428069948460792327198022746240014940352036442101057287714104644664257895193071766783344383429984039033823311709224764230887451406275540356239650446067737620038381371912920648981349155109345475418076057223153600347316213978731207609455207681285827742844456205178893107757816920674295535009266536181702610053466788961704435521870336553569902607932315475849092661043246334816682760039014057768759532293741995392238161241987131939024942559529676116683971829338384054235529279662549299441074862903479752547516090387210236807255076412994780929799754133553446742202367357915126617480744181972540673887258978027122289349714961988446830176170052411558648270328883371946766633317428653290743462716286376379978368542522620403540658109025527813529015273209731587571880749118505587502435178322681145477115334263441400223904723146363881520658994885475366732998603226561357397481380095383052183060591618000507323850836458398838558985501866183479866216631112456692570959718653561423642450581143275145764862409612781154988609230138331988456622308832360155584123847842804223926346943572102863367139444191606549435041164079956572950533821855333633960991431538589582360957398116321982970229996200826781914927508759408365325484238718948986081436117695931315103631971950974662302930033388493914001391393765342821438406017243461126227203994292404582969981198553590076933188399224612317664547208841447012860270079698374973531038464442282365918977864437674344226166340020899373635929349866171719220601737681169731010964977845948577738825705701371281595774872863731617414348652500848574599009421007830215736507081107417374248407328451443938176467301640285405417620344466572228952705573655377172607880589657650765278935825429806148849004771487999203606567288824089592751608359279597359970680923716447271781161881012566070949415722383826613428273122908392484471841205926328035887482134671663186172468046704189813378779301571591274049153014410014952818375893156390205056125335831619127531278838538599992688414150511435335591720162271734008249445631748837714836886982471204113233621630407082507949423835871516030630349302815246229444794077422642817399718292780905512883876341172898655594607600470159704228883380006953808672718838395100691762167756833784327887968626141497436946869774242088881716529140687831140342586832099216356011611777961655792742013036327772756339270867163495709055975336524037723247599828384329527503302793583072695333771055939246533470379674712556946430309022754523634830722088216733375484607614275246943482143608426849814975015194958585782379038323434908127200508238890269749834377333985126496428450407586714255208686961410656364407366774535769792766963494810840674756895975681769860904432901930172765257733653019020441482196384989709025811349748793829897548770947185777115548035548720717784499432796722039817329096673518908047752589292614940150118902752808807423852188717990068294224826544248202038072371775806464470637324584568673097784051900696988367547170366713474653559626095371718277961433901851984590714656632111144766258166772404270166956241811902263971967348510441875193422976727755514405816000355374453233310164541072451230365485755769641735657226836362353732420626869862660946251656916395851584862771619846121364024867515314902207944494184438655997379862582144326222026981687560422842038223019565480450989067418683994827772136716191482195751794586280605963554424770081974885661276825404198059271105115183638697526426631570043944616784181606006163231080375516922488124174200638161970711098903132709089351755615979530817499788702711018537425375351582561014949349974655591686520684702655825241568355931225173342403804029157953766317054103834838719117271911047107839081299142175367185209418114612205503315860619064732786064517281431845856663590840192777443884532322058866602786074232561013530012383162755408642383606719900340081107359513701880841495792352375932847736134919521444533067551866450767753383851253668033170120511952670592193876132769069558158657429002519366535555903972895372992200992969262986434950699844721486589469342337150529845776499340947142847032587243779738978015497535334468031802398666024278317005190481640771812848000862884906313505260098964550966304757414072367885121219068656788280418927344110723735310611085824378149045343088551964040967758021426481020820755394253959079004661042948965178762154333222605972691003504824008124545033602641464891191752949492074980623770225228557551965570920682792092708657154089663385437411112734224945032389042501814608167780454216378459042899639420211663325589526150026036810208441757886469100288559082878589247466648915316007275520412853119558921186913356742787353379961442908001466855530377255803324162722432423245900304325760556659897313388992088049398653005645656088455142006661567716252314153860570472607889007523296400170871931832430997589235859059524282791487702815361853832686654474393701906168500364590311800471786763335798625520285009398506409293763302268563074557006029206839574521986867780291695727258490085629723099321218310021282027035356557378214125473264811965196859475402847632135646790584261956038263910836393346471515216930277477428636464213688392837867883565626343938075389792834371270419319605896372870087365259399710191799582504814413378202414266730115298199359775482962600575671846744730075466507794844417575678502117233486294058710762780081226899210432525417614594285425565823089285461669153936230360587715838649388338141719919949091637835392154117175378563298175285465748806060138015497050198578713244935960683863644968840934683828833565267621250825421880472663900580365164125454496346990170294326251346556129011189061083462282947776055973055278345830802764576703668111436911254657782179950668863767758066063018527293724573781956850881102912944342188247501107060692403652010222457329137367755171243074369304976739723161369294482247790189398923677465033807720449330188793704718122080602595601912167090273239274770036221898265011860276019019676710559153791768037781418606624157903034402938879039083597462476023311695116426805415536552297284256932654685586030727539981817008114126070981822573548015752675567571252132915480258668835484650201308518976149824596126459567518035123157096164999819556824737771186849612135049684345371752201848582977629916648379624972712679891414437164183677260290415022332926569600313193344545202216128500444068374563532832827153049828209966603897981273929088799669632608239003167445667884659072099767722071300049077643649094423069091262874065954665317273118930130684410157996065656545612203920680662368793938902236160652260543554774671017037638535079828624859807071899096082971610909392869563603051421284555458107108565004025835697542251724732113287221576152611423688000346501466629373383717378074263475445040254154774271339855785863947701927361322458288286677940983360832880898986962830969254506724029364657868064924080389743972519003746430567199128995933904015457183871173474729795824896928212383184638090865278053570520277960400606755828531086164409806503196910310263321210677343310865588246634345187685928410648810827225107378665261864720864716329108522821518210491107622151970845881833137568780838536380091349740590133307983753449476579323867552534334742379267837305708173182373212772728392190631718733031948284573529670923206476826639410938119839931540757317000478623239421628476942288003608986459417827114039568354850805274241069223736988951361299344613546786660893068735472120231470466781817444380018292052035013907322498913412787765140121949621945366374043816355120294895714995377215760378891241810054156970225632257026934982522903089618785222524219412749213330023430914194774665460794826286161069439691277527699619252834894517671995997088594532427450433295243521254562115686755668053979954394667857892033630030544206893173448731539682512206734477733981717941583382066045149702156521697107121853277583505843100377675383251882512955042874903766360170687004309971335566878678008182098775636003011777807060988735130741788287992040786604513466873502896406037522736608716838413305091435716983286840479483032730960924629709770058051769642837360400151764361789122871954756789642520784591681507559437144536625990686183214985239611920246091126859430294097521236761121620709267231218418153122800272199161245423216620719384926373101599848747284610272616529297770312416337409853066840140161236741297273559612972403084238132734354930131736831182245072269445160318705511805395095858179368179891426986004903668928999719575218421647113187134668374550898748532890892725981930481021857165894332807888716800370405182655160849511925930990133139552116535604836218856370802411606317033016226558248472027687832248899947714264769585077346328150576192925688923427773768906098242529509951497336893838756902098357984324245964260290767251272856436941950360690739712049620219495927014223709565427238044039805418457803929416014552915800079079916288925643066652167393623604335817792448765063471437814760812743774272283511620780032338526973179776212593222728937511353313529451448238822249187900297604787645760885468848256776166324420006983670094888041689215052420421111839617151729036405752840010962724188796711358652900694042156973056576649315686178651237169214533745172524544377440659628165090578730443741404671540504605546634416376559974483014719801050094357637094801171518905637038614126214035057693732614942805190861833194252627657692529641836346809574418766125626692376410802740778821934539667733663992460565534796441233750585894701300342017621721804955762112687852808935911003743114605564836221876568848441329777972858754897572376407545960304202816510295034338868500469240719781789151542500971730750362247850389504730949107916573413504874390945301136153364606473560171988934978323480253099579422638508032920534078883365931096267193705695533229171501540964129325695355847213472737672628942812297328113790617072171218401704160255420532265310410415918505990417757831361772953893911934968867173231682314155990287089757605650673565388500123894251901157485873648237450285171177199151541163199260912246552528747768161559199263169487000274469979848275222352276234227446336594603225959240354100714647086753537330182394303864610260549304009187221858283445770135067450541658738776211160808608097078622002576327734395054651802858768483717004817265586943900117844476712493193435314735146127206855413971276008619856032165289765410254093431191959101206895876939552418422428643184044407899311486397734267803184134881338552104017934896084098573723390904911434571457638073968967142771775852064475170712344220168912882949284180328315854840956011523487608826966735294655286291915408868748083915586599745091798703120719580331263310444129584669485127219851479025778685082719291061339436221251759409807785275751926182063396530674880652905709046584173368169536867696542271468273516939828832998968562659249904785371995548012892621277061898854354260942479620531178061708471912358498330391784042981757414886419274100590929637619100635639440482185028460458253379706258854306739562960401573274940132378595436764267877014253431689784039924253561166156848453626036659732656172597355888256577082441299281958630313456765102617341897446384463145917191334071147003585735261761040843005105809754767712373748422989563550869359994688442739936230378502502677214742464983130559494464238306743085941907147770819115326160649574392000476864062740246981595848120672410678758081422750991432372763278583979545810849093003361688455904568634640321183021714258755462539888714376408375036553906155170669308651405897684930853006406200611792321297203890292661463719311342213764843436576168713491977602093869445904175259982678925725615855286965209280418542308061958186353791975125792033249839596291602572198125605292794338698258580462494603517904355224253180755175863564403008600154655680336393725798110083672487141496522359082333014463696420080016093279780941880064273173681924638365698972902544994661187920430043130424683106428134016608370854150732686655067531569374301973229382678751578404861476166388636719149974346398739064388738622786154180346188698306417506472575813186816040554294693775068022306986613007967662389226918429869735107129551868765385579468276599286296100090293398875537375496659771524230143026231495878267371237476180608319333909581779327411715582315491100362911368941674865153809158858622676012179698083193650899968376207218673639341342881966590872156004024495035436999716914994272107726930853707995002056656516828104234853333458025041218808921477773339944200578330836756296837992154448389635460067111350978930811820661631824174391126608351265273796374041078446490640333023446600705644041158168774501169788775481017629877652339501483301826141780057361028438494017489543722214476562240518244990188919337501335481231746040080273525648387142129663100121403961045910640038430930633759963089366009900521533126765638538165253442829257686074554089410713841563627023820977242621837817408743847285754661113457017734801074379178485303603887799044331866790458242936764950013935770850479528350900025328595749076123887716255342346336083114875311663717975517906772221423351356398185963808759842152210756585275571049290593739395405045090154932463878587715567510864855299737755636928606205299698956153280703051434941837901764007891975110466497524671053628050674393453073482318835644079397328335712202648018704888104266877380005677072012261767796208981505655106019488197927201264712686231336092767172864205094430992555045760006477745115490122599770252071763422141531270941172704557993572055743677934976783558655003531265662722657014635800437382256588342343874899793182925372937796737831604232964341732566675260322183133357083213775669518941151894227795382534222626024303232580265487324487754685150710209719819979761281984825973119850441712393041936453528366423617544438070178020829906814032601481641662766200925778855097737531390919721729688607765374274868069821465399435086964201542158799339266782684193518326346307441724096880557614936827229612630689919169962141250767894799550002559802248238930598938101521693635763853944317059219410480340386811703023626385004452657357210964507617304394479978343825701255378275727182486128675935630414085538322045951001022670660768192232431124855533591099819291159114519533394241122875875903748921786025327598356738966352086446598352232474538910307921517826142915352498394783588787730737202112271149151422479066512736757259728742160412807838417679212563439799633389186608394619479159231746955317681687775167390952513760398208107022450906239874210558737422773592722224495908682139643830296495898097285234747476136790927815176372043374533491494363388002095894521604097505692281361064180383384351517121052037288104929915850334833391943282154951091063994829756544683237464652769382525490244566869703994060780931234151056746899006614395091052514540369774112048650876394816628587204633393888835737553390151537561196806771106797343373547378759684113581958687238915744969520976655002717227404678051631579552512122620892108597214802767700935571808340000612972865369975978944774422137500924706357728903022530737492009766275686685808801768850986709004359424508835485242081912196088734415555096980879021978816013659984805663583953204202448599403326373715762676079077425281506509013275089639774766877512364517257065122273810052004304452075873057429280562539131076205249343861573170412607204862899051110561496895147585316616060082968236577174830487453512811883088837392609239534160292575710128030321155673677073333856122482721796405465265979297697117920718517562085849561534667539581979509470137350686011309546297434033948006889515380251940933577603766674829998173040847234549838392327197286693822026805140729249764055101134156147904546993444412764102006313916018625570894873420256273397764089877990960135332924696545008713226149912649945177817038833318072455769613252215950773119445784092383264391570167668672899301560816954323110272631346650742247437962836531036427584591699296542760807611290899774071287808139411317321980803831407708529174141534819385239203339804374603640365584009545959610267745801527600212723584442511619526932868992841305876001373429430914415298427330389697422029349406999654537234453075014968291893737241428713773521343841819729350739866324803794894793003865695395487104037913698259287350363008062246592839166439673371022488275490050004302772868133283499474977537405541104077432604684373774023394059163974347773426638334719055827655390384235276932417894560962392117543336079793647429648521936633546290151939002126252003925802056475558411263964736205890229997051328197351572426987903273844741627167748636992236568021906749614947051353470321419135651069226801376890047705998419401691058771081837873774387165356314309109485883911836073957286865329661691737466795644402331426451097489266946136762345952977286441826220613308661698223665707066390344087953810197778738755542403862629037830300584091899185825355251758540897118195508120644408292178780571344452299739075041909809630172164216124308706964499665975531667400631272466758908989619935397855934638356844413410884748595210603666987008833792133761848961130209489230148474121983079561136097025719083154465278128725568535848700812390594134015579833378367295680875692926897395275456043483886458905003558926820071809399345555820782183644342062580825757782918621353698922385541627115734081238372302265127682581932601432509438252720931504203351883324616336519773766854518699047212406423072957755440427897509650065743187428423504315933370215396576765415379865265513846734711150353960088054420340903778690843810826355062226291430473804750061884333916318100027019047664726612197034711854316363434100127084580781682861035439026894034070384786445565631822582450059520790345524823729327196444693016167353009200322030201324333372523259498957452810788362112286780827714991661933984924519353381646234531169223673624459967020177787320829321242770370817207351575086138959887328972615764441347863545244568057560663494893991032161075166873388957039751079771530963611408540398522483931520148725732879645335245438185110138455593182820143634570496656487579197966407696206631193581638049514347321434988432413670193420912195466196729009219868195935165478702642911131597868068429170980848124378824090192148510179461168884587166305471667381388416230104531099302525218999250869202703872063688002027251186778689175253701759592087188163212956211810265088112549874318417805216990009192363320494662735799012674518881789046271873520082110099734221327948109666289687000290617465109235257553389935670446524622294692135130279394127858236862374427402815709014486164585408903959237078586695262234475889879195594082279627784717759618327330803308768594466597747820988050829155997962728275276035928682922451696063912467154666191078073746204646206752291185502061487395515350381120129920849723394006454249332384699437206710890244478019093066669130912580056208706811512908408341760268887824912855575556087692520035125198147805313720672876277053656717259432651510533154236644221894841363956629165673891285242416067800617761101658360842005428437504731677231003100830447470002285980408086162694934120995152971064700574769135523155785633991854541534591679997849210798381779122686522204242682521843875080734744675236253302583273449928535568542766560048760493107032319342723797513774990439053296595083493183272550528400657506453914413881245345955395695809368086270941755041636990193252425032052290643361825513979269416544924628877613727177155652255485969877512751124866891318627611953522124516129631802778287356689925793640903019791766181582730281373334184356220593435915000656277140022888240812373401392942527422946435416336407963960038807762664554865030979415387624843218309223222793374478662646791640997618432174462634801400764971962078810785067681471546469103388932917427988210112518044475550618894461589415087756093161260999441271526328946380942210352368204319193679140116313422518143713980100235704413674177219244001377899138830458852638585989369126600367863889800455717324337808779221840610125573786272714891877226450083231417798465288692898042235219746303503855320508385834571208142069119732991541535629168694683347561003381989955327879657137089082246309202655328724079594915342670731779582504578802635257795191995149297825795443725360502027644196233505957970052464479962505022102652674125825736716071807684004748930170587916002079808296437997768718863260946793583536456538244319471537734719476681957690203649750208118545560979874219594019312485376381667838358610275723897551655960881223274220500092979493655089960559871360956793265575922364525501824765543844259328228680309423012882085386734238919943581498184522909837438651596943970593273361639120054889768945862201563957323193241418464326348268103795045711104744528126275275944735790844226601028600189459889564588811854302023111675541847976685842426581674768471615671179094750446298231657230130838051555410394085768629728202709582890979341687293507120485906952796127352694508927669164277659379103860693682526866512449055326318432584044759509883922460789307785427052172693272420815533106404764649470103394889357605757264281102328612235023051458640181310957901349602698014465114148951248369803618096972657682655188887708082239946621478017544980275436386902522469938574623649349926076811482309507891427938323739939780083240134287793741665763848371822841179539683077166665115567988726761835286815296940843868946230889874955995365609822575681368622180496540584233501152359581406983137970362054652221596879188589381634117652214989702705071240333004347479652839268932953937373774295173989289316944793496156783117526243641951957148401282839141538988390222007667921645863296078050759471477516522937285228146867649141594370105464579868496546075736997528100611907112258398180920644246013275548043914784991280269223317309059542691978556617769192943102669963298953213037185227111024886082398679243316457618513207475527508407887323858388668984350625253744495570839100405764529724464184943215037575688213406606423061278381291785639016658562714712145528697168379772553250344899743723073185170959395131359130670434788140165661795963962712865074731703275433159288398514416451576419537941001317059322937341326565782596362674561491654775426454665659532069702577915805514375077681661146803600007720753373036472897835489326237833420648929525077848067975806376818461647583039193081326859865263155367506415588260640055961973769011793597852288494905905038802869156307469240739909501857280148454170786962934230415664095312655557850970063875136849237674460472082297596676272001561759138481705957656855857897376145619230882097085664119197696099576731769912112448731034796163643761888340024372483356766735267110702612940487173527890835597529521467901593931083826279447691805578802178188635571222325745869675403468944175549606445708236219142920717060725006116437878584903533288619849605515455251012922810819480176253310416797315000494235376567480577400315172690405937333111067594367875958303091169379041439098517019247261427785150326872973054393404206254112619872554776236844058090802688405728237429319358847684798179491180062174574893824394300777767229651381575989133086222178637579133498205710013231082935939492107547754937534958279011808893807029346131816713930694241069553071245087861128137839609925312803773493662669772503355864709459876625233845253315325246761982714430267612872247268559424520440103383807832054119364248497268649236648236551227149503116342872729458548409998544517489605176362022872075385096534184839721161605930912245044965337565928768419619069462030752657396736445355902505180147834643895493576666208123342494935114172049286921271274933427321928930217778258367431503502150805608919639895602518623282893159846819638189582555547275907598485444958805983991825417812164005581963047473999461701741940567018819282489060311234129552157382276190255160676566476650185429411417001780846573716887733736460101514423896095181783469728120604692824372642417266217748798921202119922176148468205126140982372949422130281352041518200774746261026896171473833219787306946372272201931291840567552677411116577856041842860134151318435034331045082175678776058795466566151172237006619949360814690982115631266814052190831483967964476052947642551463435147571772723682471469711685578937403980969355397936340295034750898685242560791202197696535378606717440616811722236857839175196689444846071472572309845261217387469096137691438548642389524960892177975155675002187928597566004672154600151053798992164010170714244119663050277685080707527852271430792700959902651357875482579574591143211413737701589921155779663459738799925687035821394429632155949692837878890258902060638113014778100205861655870108619942281192610904651928275038172869365401248451541882453351143999732284481484869844383752737650143720617433691708537795556468147552257074978782389466987938067762878085586228925669910472459484909091785802884180096871732193492808865128895448893852405072203301182706401476964701716979458647009680249227158549212882288676396456917879130430601118208139361033204015046747158394830660346210937235832458793578711034008067608855170766978728053787310729109509938495965148990283833270135766027452587825365812499327659021871901259169468911991721170813629913334117285601237153120440183020247873107784082981288073981452319279552220144346199716446118884104525403817981819658257683645887968295903234829635691337212070893987514140354773939003293183196308765227890532852410328138633798430320692509659257638474869518594412627725081442422796697614430843089447049766571073953208959490672980174737429169585061454544606852975982665802842478885825363164517012639513118316338333568841851788382595716555892227776612257606575459677067508098789287348845869481508154864627052541200948799575138689447940051823471270723682094487620994400607643533620383378510415546878454990584215299066093002615967125026642224078266925584238646901660839873927321263975666297697388471165758655122558282578497755746035625345058256448642630088170565513291434112645765909198806666292563420231864862587964411981300211081657401885358214767038239783189095180648422368487954969797821016887867360841611925199691243046953304181990235849081130113116879471669066081510352909233050056431375427103042724589638272189562504647702985479215690573346428698562257021550713568023026125557390358857735292963678814308396626380348598629550403788807849856902898063798366668269590366334259381526042270751887035701573768369195376877260913167305355648630837155951486974499602101648352555321381004423106325820621394865145489544143075316192359410909316092424671479805810158178864773201641415766390351039352578354302995099548506980903234159381729240802936642717873108080271430725624639838520284102926862365023750358111344200156080653453338170886152941510564792644556504941608446116866847409595373889564801581571476180606247800149641024099580875565664541430080613496291930882672027370282914818380337281242329511653723521318600368291307250677582231611844039323553417160877806285722881572459393002436329565967585243352711008257965561689027129514679337705675250858050030118794881779452220300336376393692603128549347913475556105089319532428742280496338980393755849470421378903264195155871280580023207549601338634595858278931733222336319649743784771054868912030607018990733853066957441580600202316800730570586091496384116102891301232367870017051122471925344040275750396736249127709293430152361313120124385319658389706050201299583216176629736854399870687759794730872243561010357026428085338073494836051216822439911004712806238910158864873489028041476489802035474582390841078910047149634916047498246519615696937746558469361880829351413114818406032007720057670095720674374640695004911810510782071430933415045843068966796421409762763803735901940581353062895913360500650442571616941215173113404265727719373917874747765899168026720884915307190257345430779851115961286316258195068884875571985216913648409537795069576732118707704337299391318505989535939887195354668517357534792246813600276519800923739881289700525073335737718293439854628624721869483393498662118678358646713298083214937130687761752354822993121301750547948569901917831327914344745277199906773981529200417213744960220030857271334912859857348941462390760445941820996118808647918279775028286222819521334521499631457716180469547318441123097982619849065933741985194908059011922700687500389306661537957657873013215264604482648443628406973579701907170181459874583785572668927265611424052891212908804739438340017893218968721761627551511156793105989928539858367569570910381571536530005444771460119614311973077579979755482024260695585464599141335274934078483030145361436430573459104427215875131748408178569140288910383219822912613546841234062126383955304763260043275035971390386658216564209196806208201793829843361562429717867899332774243771427836062688315003778466499953449364383135568777330385337840819189020127641650484514959911713556813955999093208154243850085865342892426139316129666673414520552195920104523758039521147189557448708261490324490953765585078375372861656634205121851699875193972327606205958783656930736394375111655808881909901028519282925761807039146960708992898420193700019203698345213320543940915973802708445173872881044067311399044926839413852861480541772650884772469763732132168960638096563003958636893780693002707256865204723293114076538195394439467098418042181758049688100518730594224091045714839913614681111440480274924925648416156062259924355177810648462858260786951507733929035285447833170999535149432732941422716511979383783058708039560495951730252421640789079301031873519171984470290915727578693693697235591453645447556408647666029867967960200534709185630933722818074648510705509354429860174818833431762479717385758228210115671342429182589183560965119193779119334888328259712494697831002622797641063325029340896377116206700329738023614546039360765640980619870291385778450915595536924088259893101148799861730181086278065385613652341781273166656549026622531307448850972778568051646996742520824039796025651306836566603889398289542341771729215102498234310090550145845940371893622612494754353754605005334755322295138019438514277319065161588705833819088127283263461848355812302866955973240029963947017917609029646216352193792375111265987532534132841051885335763783055869573395159971524138011263941113554519080686679676243685463304654942297871795759748581108317582866273749892494945887105117700524105080121926781800607949262974834057267148078700419762088333787143040499225248474432751540244579652070630104358471253790358006511914834006890832369682995218873339359437886575805638296331313394993762784719705242651223932786535301044285088888208721478365059311411961035616648339482600650934948915712218738155043144367486998000751728960094725461023009956604022214994393530745962405010530325824832407983485053851872751324509155872386356923926935134473461143167652380581420460577255831984958051722014384752582939596152196555751482710132199663394484802343464992060839411436480646468564836861488971124796702212307227049530466303118328786199796123802980935780383363020670291872601579398912071395861804410141672120119387333529172201123450174638799645588763211783352861559251420407831323390371783048640406972099721887210225809170869087925441587490286551977617174327743882240920666724472739667132245033546761304934036264269615979160077670636349593512169372264016908763268098790679281830253233869959875409641109830861417521028922237438350602787303165217626499255833450664361335698764127001108108276023583949135772004208308341938842673404375705088054238950298534946970997865627388207968956866395103278594737995044819783262220771308903614280019333932617689119783452206994227990874454840786846504441706360348706848915447569806230126949185462532389979574338047305710646130012393351561767254485871497804539229263978397637959769486205823371953280299306649465089306346907412390540935712010046239971569594469593592116599770037086716285495103960406796359902562603369972345472629790655892097282446038561802920719942596609328901578690545193168592010776251156290580503356752112862312822066973777227809709550596974453087414556031846871285270911427059680026447503890771754205395357084721277732469059952629343907429725973750828723017976837086420403775304494853378371936773757025476324023460512844868923842046784093014915436166290632246371234010853030089208024636278256216185722573334549160471427697189027771156764620035687749134928248167201545001375247872219548674292650748708422091533152448834821537071712451031665500277479353430480771600029474203913857019244498468750493573661074001152476796866630527935311552831894732565238999363342519717785941563711169438900175216120166971487025751650574954225355538684867356260965631919925953856321105561986716784006964285164520614992399282122250267070412859015705088282653795836867154384812993750557654224601880877839232305003144093678461048565171538687982213513668656003796591601334668159050224530040670927498259752701763113405864704734694812296625099778478185401069735831438671226711740535992422472790977026256336470454698110812927133068550973009274591034377288929254558564276261775290377272657169606162321076401794893215444176148428954921486239781799671812587738018062962571942449216717442542839703845882473666642301821650968797869848596078306989809427041598391337258815186243629977038607133557225713989006571963773486531355586931304383546121321033518974675959086412765332889772110642766987218099009719232148769242668710512892037947261563734248842393025814471547177569955664744369050877537902758828665217325227347927860755451730324599176061395979712298715049724744784592268584087061401641082939693308281725529308906254970697429183383724476949670960004847326119863718850439985547224154447800123832933608382725970690516716936571078204153693440957603099711914868670390968878140413621470347542002465442674979008873514224522376604889862492897499508289881714972652439260302772540120880381083457475208069469052739528666526844034239957555516582042477578650050848901028573859984722388578407948853190001977215380692041930991765687932011758980274287087406722387734500550909617750230794690198137406336408065267327724375979340231095942044324784974734251001039917119894332704561414220428447097246870146385156082845920849875340316243267047421702399145197592003111811196775722161921365065966843165122515004730215129269256070451156836877420511408962724541745716624438190194870844519988961366015203178471369875695234607736099999008401569376008615463887431138904380627129383655377035245151247545691989155439132337447406134559406386344236202449734833642391721652156290978829442167829960733833480799607302507842277711286968585858167938663011303266690381588732294088045898525453047189917079361531851552831400960452307950515431532976202607393668032781380340898045846771266064723095075771843791688307715272163204454709821822472685262136924483899995388629397784134493133106001529581894116738322272649000521404546922950578810048756504597397710582365073279914696852494293273440276179182970534979993755916179466627512031427537034814374109096355303349591728032446234840698936527413912904186935960831153888289106781909727392471471010403691211575500094714734027341881432405007767586694554212695064391753657567804529244479579650636199911437286140503753158827822474169241233698048254155819277672223003375464559784481687888705039359529197142160072320648521013327758794278259162941869483764927743556566955427412920896215181476334840247316815623191079026498356560589772959087623243609342882243188397319618216780597362185258168871857474205940608531947228520828727298871934337477429746482413951920227657423783333399541060091216604600472174803756975126567360814635279285590195769706378508019665398223504347338799810998538350631436194445447965481942270108845845971893311699953651951821247838972637951770857004353584331606298759351744576749789016787657878158198667032521410658613606690155739349790112273129217223683501861489477308670843900867680358407415645135705879654678362329373157508131828204591158136665481080181061431965040788869197957023657463713257495645584982732499589627661378803419688789680601548650186453782029849363800473456965642179468837801099507602375146222706836969744289834634789077623901212680241309181377639675247078063579920299357821398405975071689864643393250144293436247359889918910847935386159431451131046131779052887686523113107372466947077675369387195549112241341494932642176826570949709461344605063828208613736937660619426427266054583516305596955073284500868308164765257703566329215919058259959968525992879927312948504961370224264568362114432698669409570816183403117362865366199376028776733318301913020258498455792917360672388932347145970359624962708154744146801528271440672652369458961802782293879185788761123995066599924170645721343586491694974974869382145189766379436784162468226978490821575131004058035714952084114659480320245417219402658818543686930463448391565625077419723832973713175739245697494909856653742495124744438600530339734680636500150402440630906095334029692655392322776075370671067039883344304065938769445752933345166998084122213249843848665741670371858416905493000169307909286460768683732305256187463060780330395165635475919313282998748937744924321760006920432718177673357235549852025602822935172165481885735929773228272274532168025787634175539324654775242251644264452886699797312472893704643945532776576762198094486758507633259134887734980373130785574044636352809455870912869142297821455598393389325120407696719761130603958292752067664297760622637765904962215077617727280405570163377116375518234042067224144422047754148417721387770479921147884413286723541134569318193078905233712599694553619215731317419823054245855886163258118549678913672320634285034263983490241860777903240223704819716274053655238640224104967555276418074911280034107663425847403330591431888300389939290893690417750951762650766589420798325252704731562280504193817999084541071483661490689450538001265863819561037130179343408713489990969245615325315966317391818988286526112564783440672282822158106685238393425883254366653588686852976707595372975780571699139099032220284524306461002429316475534804887692370867318368858403120829440601013597872189539599031171208799498427584682602616351620990857124049360030383888747248363144957820793770441166685286981548350295136366077488354681442480846141033209549351308519665026596456340849898346693051234151778957881425146428858816334261349417319775823984457136566958040337240857796144663635239303709156231526035396484508190243483188035198352812927041608098574686595562687837661389423431045463748417442397865624895023341491471209342196038861077228220582181932195276701606654789256674138311246829058235699384212500108695372137292391759017513759023662490329881534831430453269442495409787597891157575456049830585754928165665343578793303997546117628682246346763004794061463945883703080001949248798337083295356029880175479099858696878303668923668713213770028701394984468016217827088750137839587928913922002799808065437974322131862735058249117780684122111410100072367892103993790917353045612129085855516575894963050071705420532646054483834163446322104801359000258702294896034131378077368525758537928911811152275548657039570757530796368785921986381067094091751217682334094165996044311651110585267936942865293576430094546238599201312443978268918275564780940739196752597223738353574480547676302421012425012283107055565853188154851615550541967173210418169827551962923731036136996167019013061733543632754189406795315356555793960654845746506504366315474424803364643219525293666211146274837153722553007112246796622048975182834816873845546191410631038112074780743644293562949084770891150529416224650559521753613449557600170857282327956734038707664630680459359095000572620387414286938687925255304408344133945747212937987871862796006602373530948451695156101621868805150682635402921210398792515202319387281790469011909296665651650090128483022116152317969975800260558482525515542981935714511586079762722933061071643328687127091439016395489726054571697523529600502422924783062500123122415324859051909741096673811646646899552313951858055449135209265582442564738987881429965226614849940333294486045053179186738386834912687772678783303660286095081741463666629080603932365146270359441127118162187898109667056409547980307302414470466283196493902030927934034229567124362327304486805541942717305310253240715138455786879654293879086849982530044773480152785189472995229631789413776141767179343402422203488129417481021317386836221036628999319762688351635085942386765561497336354666549878457814778955966457935166880064747019967239243011400663092009269822214451829195108243799251870640791468683080431914663690708315069532849366591472889080253606678655930561302859321446091854525212919145458183901805378841770827692921748866040454170825961194679087235143419951117933257931076567597411289323659785712950252419364489037502847591040289954774550989195810978964636163192611001872386282457570695294401584659792406628386828343731459387329118250277475786660527323011550988906707720661020742231427472088355598888901423665297646552082285462219917424662993294626276369176752552003761003091344280319175574750686127970981451645452916966962145457222408798332034514137462178598410108413544882022518155617322770336246668978074397455833264042062055970126768374482798641433248238758490844416689088182087977360321193510912761134162474154795121290835126013067407915167487606245670473303448855992746866242462501414392486669871447387098540587282559176398445333939138853856277492761824691558455350282162112946256221071032977558880831924095927903763675743345990409883673785621396285336199863014296354681761651486576828190859623401928162680726096361897027524686963038026883741922526980055608558942730144318502339118390336073211403690502705322096735628358355155670533387865507884197662203258197612562325710165822423722724388683609690846749012581751087849354820561951197686461042223618735965269739984637360652030202064707306415073224445909837701709704461669799319681934052766774462935990295119390760649347280870239010064748766361042390503499305430259940154911517472517593772394892456610993586767174195894016463946120018873399012807486051703735634564248798269349156873894307488229742088917038105080589078822346848681920037621195152811803053883940019884461969014256759839439957540248919047250744748933261348072849428226008640539745672421374431182165362544707947754552407602602938412445752833173841045730940870086990498433982156792385588219112474600511170916008143292979917699912702444628488269235382010366516820644002961546260972768430412760039174126466793701301988960853711699844479767680503347353685389620531294538796274926059163254467001425063950126669713631685645781233587565839545800645488684548796438505326993376777201278894856917546654903331944441994854921799641558160703086657162930666629609032990921090205576917750720717350124573458673744694731274185953288775263022744068531045196286107490887728666795352014533830406164862361376623818342589938133107519816628017202215373859491997153616142261173097807022471623653204621967945976081485019740029948967088978195839329855108142008497768680027881486928815788612018766401690275012994279826935023218873951878912242886270665734165793443786773890402465755920005041427511766979148857223108627478460994615722146855677761784737003427736424788597836442357107234625681138214841766299546860034723049680099028785115156215094900098685183863452091632890686585647425743119652264926769311344507081811314893061067568143706060627742182678085169742203978232606674582603642504726152582155196648845693633248328031510751680307872156673822162189530395343809570493585455645879784878090407330194890205163518467242090637574153901278086128132231950198703355676133101639185566189561829096692707087503509904897656777294220387721963645597835057437910320059607812440720987650893535688809449800386289647428273979597628099644007719671913108680797388921207444776892110393230694531001446241580658643686053301247814510448923729627864099956790614006549696353810812431840007583687039478087183203787420165769470827159383354004842476494896157070516186763622207469101648662954778270132479831695473613125606802567545926653151906578777626626235744388381197807948307382968233224916138190246910146192054973191759432657850375379459469552439599452165930550986504291833348418173755092875907553082193029360256438822228446687377699364552590169875413876578252017294246077102076212468604866950849851849306953535707443315586574650334904687725630970249265139058075075177976705415878534518876536007101572116397277377454232058787273195509459470953382369392365717704090148791001669838451275531613454856193780247088723131975119878507760942782210356329147549538229502904119517704088204610530539103425546261525737284573431199132576938996588284373906050061342902501979254476600903508303250574862363882321910354400713604307518092870274742414558362280381016644615203584573118368323310441428736071401071617400444657013166306257360057021568144445298700645165352026898034583226646151711740794965063372494589412993026024249456427396228421654833144259145421554912335317473883110192400174687951231045297979010660371143885095739948277470875977198381100188255480952476334071233325953076482132137969544631707160939031836835622466638440311792161186149863191957700632735102024969954231119399655688259548676218570897173635950252597777590814485051303865402434928701449064461328555878633936682473953393422851224182063577874418116384297093224378007627778263693529457143303578876877115547870755567668491157165622090675644347325216392358791903732824291236764908901742704968020898380351324393107985740027488199313407992028400378918678869995523162815111071575262967893981034390320986119052597314119138386183605771199153568025895680088918822790015981760557850078021221277786303975613639162663592440828781000456835862722834873487526080384393278386881317068915109146031805711770586369937408302009857025305288358479864148085070263186497664595407432189946087693841957418924719567533633052931146039784337328975204744943777156281944661266956666101858641121955364251224244491775157891769110762194915160021562119448465765552493002371220380727298733875312705021398498231098829025263401071536244769450636538291733821439504111967931713762038419887748684800372897384409578696622341203616931669510559729771558359634327245927574224487141361603867572972934188084865611532706692941871950259135217915488144030235778788081604204986990805254634439804179468704523828520389159922612576031820441934310681928739623676725706328595717606856730490560085719981004981427408716047841121608497814226237164515581537382342960998170855206426760796621945709651546073669599785598257699765545332984918645551463816243647198056961633979990255006926870953423005101118502475819474037199204893979184804136959347904843365197607255427691483469280336654279655556958217979167988309161713518001849073117343814311751948929648642219609867921706490993920888801946353553989562589687250534961702493107674432423640355715432652974868886280681149312275856549614697462732239682591031147798718394003251610267168573529864152354350982681540474098913467609310515660620593603711113536208646221365694686240702915388119193191072926451224963065638032766284362982658745225094946964708867101113625500732208050260414341792489916094236437442942284755670094302238881574346714124768797799156517484634586413794940729015619468472277384531703087001524494914524744908554015141609795674351725637819960907118807683061199875583366908332336444398003591145371728670937238922860195970215881304052295684838402123189512343536327768316056143925658791568802028110763674832498169054407627075612728836724159104029781388758844096569835140479063935610083048147705730658642010034290959885510047915387445018996164013302241638019507688447934549707178837111871299310576164232494628986367128197158537099292453594246913962065727596775343678823919793848298467171445144731882763058931679851579364662629111121448308217218298074038057001819005420419295601679618564190540462577169699075284486865858216000177238996471284912972384615472846471456737172953373443599901241230850660768660030928739637356538326981865611556549958372645459524416503794087801779926174263153512450132546542575073174033738043061776513051590699282384231577831947776306471829346842378670650555709536833372276127761590264345609028592857120224151433751255378861682639883687840667946460924782231409332401358842818713224655622784435188288647848579202344511777848606379260930467534457009429787143176749976355118400287800192141021771778444334484501859283385499488193185364689618308974907502171391616190563027570769249654635984946568751017754697428263780781063609414752133035879636684378570946669237291166635757228934576440687286590863422421726566332371582591053028609633187153833106647412453372171053777720443103203231186944254275438111604686329422396525169182370800522869345178478281762114214606110633972795115279495093009257091113075232534115084032039881565783084885758221169520532661125077550086727786570543413787570255026509173079101122271332015313795741370042357620658229813161241646148001515781870410183644881975987834825828086274376790207537237486782082677169983123824201140841152236543954218230195727849854618592403030128450517078331484671698011938890056279460544295175431859515277293423421993666963926103829180713217833172029160417755300164052164591168632200213370478837144747951015292767356364192620133489171335057777058434194142583680215859680913853609672746089157422182135541453784129306711927249848239672499452309837685634320195360321216925691316810681693281160995083196902724549214455114821530522454468577356100495138690086786043953198203657313308504261052276159512604907410905204971461922489807914616003323617162572077228049011037094833928193372253733957431222745550193217763815599554475867981398455289377722484543056560764504268555410350098098161963535846655201342962237499066662327887460637871871218346183010259414185999997147656537401704578512879082882086102445858686363967461120116051730089348823494274129022078126560610969193095043673680450428924269825607506214445979136821881367085955853069098393878812783809011276162190727187306268752019366190967718028362248482777102484879117954867536056708730070576347567126219126561989902360207898417664120721920910708220401449940488275858317054850293620770343430021089251530183095407572718090057306721025927657884467233816854361905002444019068911539010772501524888825877289216452614212707272154541132767115689761817591776807812008791473690867754846142102730411843864590286480725416314348293890671734955007986914631836501668112719528848229571136533260736226773932909864020705509662364272876678497713648190278472787021675267199541772459098059181901555349931337935141129975647797239523746869245230801432306429291853834968917734594073700696121710516603865998242553692019212199723455433745245101957267965612100601478620677282878540481318354279668220769575835391516076981456224100575730954644395474716182534416755810145212362816780144856025727837948738202194193681689210952624425551448532298247848583160417208340188506534777685141368987212063669529786625234681072158958925866136266090329618815881118048699572947093988544611157610471491332669169863572280537059554409496687156767806846688882248377094796371772257229327012924455991569129783385504013829016065015061928920036631852082322403541046017706109082898530618363403457204676319917506324652174438854534693443182657740955746614102067718457147414724632147379915549365977506587716055671737212056846603422787183940853816272423027480549739441195718928842061270254544496079545057338305548134752379290466592038202692278186458385493388196911663260897252842510284617818208819241414983074065917539441793134287036697390728821513523367217944462008896964339348320193539051880859541717220896026502167137960961117031388085239765258920090002685727634906615338996516856922050690128715552019913023855466498192135876310315782998061445287264047774047447704437191826649855947413438063944640370362483335224925482346277091349750234805260280879002779825728118408680452935934155343965973065659590714266755291812211030233624875417858536791504560417041243936501540297018653663800629359216536035277586570790721312311288289447667521049662804414631110723309113442972555152855126797984742483695488934508102807178598188100400208581342102819773856454113430601282751328553063169088719829495322798207449448575668908321171934519437454535099956742521621198114272690701800076057931696475665214148245034105609936266410781913632775673376492654726205289736155544887974443126348274758687868753683343738417670904814891930966260125299549266013157876876630899874572563541838344222162881368173390432809214831506596049224695270972223234108222066906126944159459649519962487100889252762605227234415469451667879961257972312680476894480147672120705564588061881941178167156062496864719304425009781414495672841054064423622718529151294885848408632490173920045681597492824505896591995422557603251113307928892000637443333696096797330465061696261486529245197700807208939818671201015939177989773710005057518472149210997080746504974749719076657816012101143118345961486228676423056894530874393021887824199824592323725271971993331876498330633105357238374665203545803008854789533238467022242466654672595522178455361097054546100406437455476784691446586624712764684206985045396197609331445407673089930894525462100190295429433988917124052808496323398216497342269217741246257237882438079702353410014907606029072374412412446685724101018638094333545258770398479208914057375676001253010017587191968211443017201368663305947353470653624905502829331493461018717173527992991919810080392280988420214472405290411081575664830934088239979427718831069849850500051515718123901400937333604192212067043392816149127167636036583896336357416717475537185294533331321077125960201892865123989089403688333207917881295300953759314080128147537700647798881009020844430098746400834503879608456358588927191424138176597031978245969770328910291850091498765205860730458711108512854048967496735495868225835720902494904442275381863099179906591698857038785089215823400842535647101853279548762135518011626564386247437131920713074540709887429665297357206857866378729765095236838918162837661747772597098648553484193070990750247592940142573302016756797820514581046228466459281241144171461869506245445214835602295407916027802873852444131409703675800910287626676980411717168949111458844352239474958170381335897546715314195199775122800909537820728601697685274686617681777238219722149568317061142580729046193556002155745055429782616161256606955762586864159704661620199675046952863472765648518556771582612123230971283615897821325046276660441968748708539058157999405106012581920302637785754226744760528249615079567392676437310994739456982143373954401581022437646057499489871080889533680036031368643161157733342752980747602230824700968594403620361537995820551104478655741982966775615172430380921769226737583452263990212793886789459386146654367983470442277266518451750588573019786199575293317826728172108260803023267774846899037260991062878995667250300284538844317484688707190553715166972030784788368375555109455540825731687803626102758747227580824747228282904966225037981691218670219699326040172501598188172273813728799022682265909982032582162582658317765279868506411474800868915980015129687072741082853332730110198301055824396081290838186013240291175233813837502684171266773069198978312108101158492727331393820748388406764291901991570317631575713534558975045605622460388125404965771834194942988162703328438946915871105647684877988605390210165052537186812747754977804691511743596072667580885406210037205363052552415421757970820636847826342575461347903291154169592139066707684886105693042491181893344896724236456320763636514336409728184898812604066979786105970432181312146581853075375964638167485388774419844269744119016956043239132028150530965013815317652746390966209137698253469532199370464720489691345085062400011722374268528370007826894292462921385652975164170746835209286222887680969296510161751765210042315183850171940967610324619425394399950453428265179180130289704331416270752287985634695432689896915176377661259409270657128709665850787654618573545198437096163267220266275502797017137994222883307775198395342705174212211380027988145527482492629593025827162755614716663037636750518644043195221685335476968329762751091020816453625956840141318286372691488806045520268957720594237805572168664108052862279008662139709224948793041120624940709385685949114467650891713418972263219823335635102072005185623005883410139788085265336195755481296087760971536709529052732773042275771355393027533100382541815438927857808545668505936218331119091900248300227449166987206672915220828769565200562530390492043399246350097721075406177504739401783561590174338290873675405935250123349232654009640207940581896781267428508760695826968143362948504162618331579770108598296243367171978652686272436861513217035344895399939185138912956785575018686927549704474070090266916458599426562787273217167809479416500578363810882345809142480289570050445497775446497071064089685213537386912108094223794807307315929955365461966944816832548203553050009288645042023942072995327814949162662331220425720430502916137971893404915770846213618928983671769124460306293440574142191848416884865748115770105636679948549499489019606809621579956363120300947948356994290074339236814731886386200764057413742347655980004615560117066047741930176064620649242467933923625791090160905707496992010472621417399815546372233485981988719189667710758988548140050273633215677403582750510776250333386771374311056975975387755097629611116397375702593686140052122480989775719681445474648581908666880727317011026731519111664007209192118446264090004788427975895329280717019436642990874315426584194309499345804497965808145966763934134571683225079208270073342867692913412704572143992187095434713323293222531319523101904393261704067312575359180871202456065324145486425907731098512010869166744387037359098086846267406025179314831585147469787528244931068392934025652744489509144539168704804390397025809485331860222408926811464678284773945633207909068025291135649614233875342587419717080308705615497000529117550685370462306242880232933850386874339339039021446765165275294418464546198439619186214511000987493094637806750188375730288555490406596614618452907610800744927663702276486173870838544949896798167323090290025489426108577954368973738257520032901536961002542349059018375859956486548364576574057854597925156403940600068466919805015173600401641386492210091450071146891216432343284469219690823465264298730785558927961626482592719866899104277708329086549541335401517858510100829393839637568382520184075675004520382224112449316615090311463013927244228486613692794811754631738313281507130086380764088496087851644725907553837328176162321179980227198962318712690147936923469873111355481980914380061160772733301050905492211887409332991030621267528421655246164934759433857455587727611618598712654819191439547960685604279176099675682428600175004459058009300216196016252550065474953261459993117407201307245481284285358423209702055652518742636179548024631368994323172646728182678032396974799667645614131508386810653413309795556265926254822742832184126070106001029368236869643124495357371571946442440693054397934284709583466195216762258615903365723405952627329029261409214575974606919477468478963792371179656838645171613931727059412025836251544598408135674180844482560916075400865271975898479610302376209332984802435448237026422731717294006829035161556231436298142132275541415018610926632714163256388784530718801318520199945944218125298915218253675029933131545693000083000904126079406024702728446620079251169404818216319558965864395392005282203530465872905422061112481398208301326001334194869828239115299794431579525651504523752629967320483270547839418524159981876178718869990295708480569452527657425107124435625684275570355000267588505339284177873776618681406081689482065283476470047852693883776455566325773783047033247172103652708438046028802498729274632283527735797056149073530885610775914865906193800656012283957882629934610030255557559080565099611710539050020321328876707564862974771739467653463211720610451765762324428051598625192667711726904185728866751832317807722187962838220319608034889175790200627938719702958843422553768149870543985083759391376068699407550663404520629134229047036778576933881887944362096536091759465640480878071998917724584705708019761664611703785066623908630055301781041300147567159167064184164212258751062821220472842364527584615359510462304897561826838590697827341677875420131141920157666267535280908611949830420366895377827835970677398657379250271261469785558078885109297368507326538679217517293824387231571364943178407225185430340207488663706572991384339434874872920680296667602849719543780153585259455564161633516041998718185129281863284398000358113704565943751059435845589216289374141407051822538753914367853399303069408841739064157040287506269131537598268235217002855840991977057543561366924946993903641493821085781054673737317340479944921586792951816707013825319290430903206871605021814086495547538150457042150164187913912006579228384280461793728345631937069940738365558937850840514360194355149105466423418381526795054150537875192653497721613108709823256483843957319787629922418290119648552369560200995114755232015570170368923482427046009348752118162006137101338150839284686506753473916713091133428544923312825542785319098640951078476790483439720564895385866646149625401831994697854687914389226095540859500048673500686706758783896555451090558216196756937313851924114914745435018400040084568290809803504833415997613478085328089088223032280768216502325151780245777966635088904922466483565381651987492193612952964804359257817633000675763135846856577589739271155761772820328857016406074818130633195707574490017907563574489826803392309304945971331022914797475516815990035860737513678648724131419848832599289055964336531826908011100060659175267195548901066368241693195543335963276221048370192275037593988166394378361622413158403710294002016817384409694759426978480834861138105344564537091276256177073352033046007746680629398036447368187430103270299293713088192785360357683474230835015781767296024883952737140508619591290769768494547624583593299746080288539031703597629624954793031201543279951327722292490788063841744076855025434113003814200076115202901833714632437903401349604400992219922668491415820802540393464947898906820707547654668417760545439303766867898086530608323089058758032598812354827540110991705780081563339505083891268491382533431945530747909244801719780952860104952363903352230028738513786345713070659551429682066611624759464901241272235620998651504981196897504618476969318986650252676512293946072877236741347803063184813436502868811926954309494856863138109626621463036796361996854810971782289100625806981512514943444987856229110268111760251982690591015846598522044657553776027796270822295229686119444125291389046128880360232108729424312269772665071481325367085997807691144233291718819119409350630681340212407809528689952799085017598620833015367857649945987534992182179855779375963944064652332398652757334319247426455022725264253626594097307014727822230217690385252324799274966582385399898126089947294992634683344411251208163026334067877135160495702895219401217802800324558886463043250101129256864681500640802445969941168297012556103390264287032333626842490475313011806165389191597356612805788419615312193544209112757318382724731662613493724624754772314808925457724393878045008631680960863669370603838126704777165788972219293655022738335235318655622153299881946567653971032781340664362576912795043267942384990726970664370375015185737900236614994849328626029553522526460849446178027439000601164150051119383892333246024715136672558616214970491980202130805696833106161528443254467149372537050294598326843902732587591348627737326043484312666759426369974224825299347444181176045661231623446227415045779447770165996753523924397349981836593997975615296358512947518555171896424291732683021498761179969750134195605936359970119337360016705431442321378923141333024561842201423732273953862346417355387940472196963802419337125230123040886709413138888816096473154525912875746903537515097941620734394860070989975141256114463575196611910746551470070501144116115609798448867607791045244302410225720359625464412308201710266236432658842866144435240911115628129821664425565533395585517871256261197666146532810690613287690093543879864908526427334584166735544462197126405042271789852190087195566568761843588078561568857768091882361730017878017612235084079069606567922390094698270443837000879958933729638099957236920093620596024539892925921405307053523789106693268385196266418944481463795231836066712014951215858646662646290260654894618048748334397815885650399554759492721980027759926578528564394248690760182351817766149880995572344435011578297427840794230819486504399398131802212178827432012512484326713861177259356066879532655086348770632676948754141859941303976642698708484908213928285113987414462754914922016592309858048890500520749715855915856727838180253600047886901452046589515028189847911439315481526095330032936973755596210114670126018832727000082821502057872798499146459737267695818655901493241290254547008346227841410277458530180421495340237219680833477137530265977825228980682420381650185985026073322560757567776854139832941372470411105049492859155649708124258289168444971337973175547124801372562835269130757933648239297642236538601727291647280852028984569037274719532978917246062211608557008868713858314088029398044518773166594163510829354412197626590063127018807905171004515003301477862154635530312266304544346242490419746205064567279412997541761497753404926885613592762341226007232347121160613424142667196111343860095986986487287954344729975311643847235984265580389422763153069546862104941126260392300793813682086494160848554783514074296128795658679471985247651540165094067249920416628738325001190570001347821159909212461243369780317645929453534941520868817584785141425740787133512987489316432019768289241183432257316503432094275553857366960761036755221248710129935229211927256993054946442604434523174304373057872445962235032273248009591968099976930661056812011128644958413016258518375299017202276394450376404478261181027485446919878015871222086815531197939911058062214784059445737023176598623704656365004714353733757518342349259752025054269621195991452142337000790576280978918112469889086716283762024445637986082843428226412549479884251075767202808323543304680299452141398798782246458930909688774630927494583390545110639921490316764847037893388249501577960057000002504413661489338412377338883331439381749435686398996346108764050811182387847645743316626241177457133160353607928628930525589632998099683634829710967671311584198277283280549534399890591433484293503724046845125272881727277865171001450159706104307700680291443809389129160313945248491948210748076785570354818803124720937523005909638082645758211269660754950953762150178759111920437522359253656265720748306788647506064267354935288139388653493542708624321366153910586749785821915346987615321447966123239831505673156709524315782201853232690389515630225694936013317515688885156430964332647927541096400155814380440855637030222981183970512057446675203298525328580258025393481780182183095940445631134789724006858526210517261590351026059388505417519522288806501201396903292955985865034111767774947983563074565889793695451339674952974519947930322863603785593983413963626516114303884662218782329816771352840502719282540419778312202971551977568857499962001905853986101105373479131897980478176605311114084156055241549974843224391217740092367364398717990146451298978959107918709410829630174050502057286921595728512294889419726253162126231433213358816806460410786201352810373449662423639840457608080134233186652754599753436486119946311328261738465050703547560867472389771887328079624839245837546799329475558688905395092821490347307678739915977475804710339608538587462770526337846868463613768494636678282237144239987696837409954576280731823756709023821794290464067589616614590870568056736122413681350641328193465569540899241462280028374356215492858218504167717447162417747145130345845679032608583907729981764556054068967139340058692701685889388341001679883090499384066819086812022978059923803570139901020161316649659056803204132718640589852202778671385259821827939101171742368070553246219432074446949721950291636412695704345956834780512295796435386515958432411690586602895905972152879795547124967294063452119581857594244186072971101939879484833635846594946608574042771888603268340654964110927672800971873912707423304383596893411309426436910854973892451895440126316339397646372054116552920674935576961997416431564861372288302299995626228440476796005818071310237492925071757442498563318450335410478669904100608619129542749447355294674521546852993859318760693885910535708237143023864850910120933409483755958876912233223219353507189613877932714703891029244597249964224416407988982663010000311983176305996815465709237525462017514619565996985479457310164426674418489252747785295533052246353196147702620013812434508882660867148595296887878200248781304573909564949255291347443172200219245123099690459845601472445222623045837885725832972974424592684110493067994066798029352750537358884412644891082512502715836511643154271076334827230700692491773478074469549229173712766800491955665822992919876797933435462408218646938467896755627901813932053253663186079684400433907418946378840931026959792090319184496333360559713632503503502491640838516339246164622064659518450330317438258553584258352251028729294397808313800005447035978055983971563491398262029129485003132820282306077232761816056667570304227156567156223415892723645549386089494460486447055726010014450739552983184222862758234835844124905613095940756069912643953767588276816413190807600408038483655599443331783126459551106815575249326671590300363618645753824903948629114412437934884298779575334759188575746654032918458774991944922851816829826994894107772213656112103650478513242274952458974547505823284759555089725857766975288346562361988859776631333568575753776446880346471316479160987289132245479712618141373608734467095542683481573677840627131013400674424474818961892084260048258583809292296477187031057360818169396830443232569185638640063640419766655274832257985532302801572211340955032191502285172886348258714407297816785555698159789612390995062020098576431677437355165651448641203953465973317592970881836051501134558189282571804949594442718941322883574807498185001036972796588673691794097291736608724240737176373846622087864230319433829103936866402014221145930881035889235724118747267734995120469658782634552551055929011845354701399507523576735355217814883411043050262131695368166252276042365537451251061142020831886644715095096696186056923043706000495721118741777641071901056008586560017241005628431974103489204324293808874402413983225146742125588171401947973087768531686378838068849416323723668278517870394557194295109916219189001958286937658500054828581497810518026018436395335649794614685505686999080848180751376161380026796359311363479506403943899169445888087821699543431936929169886713873231661625024821974168886337435560103092089785827254875401321084206561289890481658062253418414697702803702014350141370427993219664354854827777950956213416208871195652181597258773188977302392241597906028817377782505239221411444640172243804897018740099874304838151816215038369086397139661915202388906944663919708302977076396398241303782085910918993910672691966013764569201711442772426516007027092136345853594451969531748760467266437992461682543712761622043065086879999260282300762899051110936079918479059222224896037766962778972815095100005843082849083801589492753929016051469360076856849937403143706878247928243392902458368778692294787065072594421492989443419891264130106483941360734345765110400931454215511845545793769727557390284444075526042802636834790747588994236839184027475110972606537760158736135120838514636042150744774770673054989327819683833386921169753240574407261013586709953076093303253975510321411018872695172253595243190238429194367861977299574590841233508202012949859748412988425894810090196151345223318677618950016047005687539246722175526144875792128045681353484501102424777000362929112454695662657540082278839762326482300206690296536642364929052107498271456579243211806826699231018155298165290059420662290748916363804319391102334110616910032979862615490912811174990042573922848174601219870919258653807828212719355766290416633577895141234114226551500452497402091990754291027020089253451814733887279994916405553696242829962118706106862587174015420570161898385991636122944026797210572640399464711358004473462043817326950566647866388758658714202768723514501698313836435159757469380024867936746816742120880772364226740739475393608798692014138699746721696236781508609325858659477123460696390174703422160411021219024113930192717315530800586750143144788811408530225528602948542364209573860703860545791736969542761438493340127438575647896045128434281497373817797492293701561999548932936376383058936966235830411584522233361227928494583260865788954573164984957921131802768515884882638221425858768303071593451972023489053756480220047445141031923705345947649042875459484886773641826201314264995882382687387609807625517760315755660168142294399352514365475647437667718258613295721368594919192419982003959016958764746603970427451459459507965151702611682193886809594696492822779197092227007041210650824917045697929744730630867826462847738238528290378937082048402372672697116115989883235538598151882824815884546051745548176269004721928014609442869992301531994858683171982061926404970684411405999619834832854983177223021118194544491817787754924587449937200666348780097332332149123318341951610420466986852181657995716021209555525019395708234674396501729582367054579876093832428167376875317635731606410342687211030458626944673083903132275619523000441094670411587695746740820601601628572579167354948136063028144268892584095272275268957474181946853372696596482472091961426288141027909344604048590016805993252158406420605847089520787064161322285968103686998810551138930348501746914885895027052649233855004510363044336607509889852849262526317866875386795935212714946707202742067325639116338578718466987866933580709936070877065001999102291008481923546529689029550959808355148055677695025271659820923860986309519726064615816813453412690761188935800984688754416865596974591481985873956930939718463343380505907180727627843838383833536998031635103291669006664052801913754729918953731233878779522334757520333668132489275681676250647429639309697338942033817782514987949507450883859911584107787073037663718619798743122337932614154095487270783126031449518672497255843107718470267248835406918332124559822431619984842060381006383307731329889795713892212341929995589949617504606190098251169563507285295917708290728295118873544811133759864164832276935002064424079989852641141244427013780305177301477867152831978363467848443595901444326008810169350464717198684748198784368243056051105747727972433732865736382311074188616003755384876998120701475035166959295884424254055712974763645905553434549114484547170778418069828236420614973079423392861455427129772102161016388196238041229727336220362211334376217441924444942376381447443457175753709361684400280884304318344779840651130309947535278387051174109696960134471202830605513414750739892587332944970003220095073367753733101339038984961114182527280902878947899692306468578932346794241209805998071614828257187032928995705727544125738311535814648186711194342331830146721155018969137697771626723666482595360428637999759346610213747221594758921085651698503438015003117962635045922997849857936780223587545167422869882743790043880837151484733210217855540205911026430067755117099568446592304036747715424440433406386816398095104641100710851374876755738122657896766462178080166042169513099366898280910900577718726988169472562434606845581712932399753719114250861568508314205128796518499363966024103423039805434220323328931475883733112628678258304486956474708448659227809094398614073367022914109842653159670343608722268609838873780827300346683647503194786971747128472910868082707346465508656130458294448746884968214295605400468832939573288461328867506040110846738934146591050906630935191607556908862354309085383665542871528772064565271633906694361990662875963040058037644572991381448814413125964070906595431027430775938839112725678009182996565222009668810783795294321514412467184416411562200329899141402055711894753252939653070086008763243436490333484884423454043977208305905619261423577191653496034425496445515620352777048950045326819314878600673591284400344164158356546060641547026036887532337521503746915728967552707842535554693598690996078762133132743756813902917836926724974499521944297115245458776283243466387143973281769562229433191750814883470091030171960502172369702296159565970364415680307468151085182389861337476396524944537176294201030336072537038699788060318810001608177966245176000600021270783047226707465262259944561624723229032677268218872266074058692363006757655872951265178344567635269982037401237255121676241081586393113656396404696310724222133814699865291293732155428903689461868151850645679824402604324752531942418279399193806756877569607071432138324384576029475844692629128414357299141394423337417610415427734830936480758860969206381429273810147996041560088232254759111596469153644363678311858677052351913559015400330695490580993968984894281154850132149474799903491604674710145058671634350332355402964596062465889234535037506045990275521323444533006142192040223415170961499717619883600506985904125033794193880543428487148169041216287412388051470999611533808097918079957400396335193492770289282143441913296573765485883550752179499962978064299651341454182510877233354236481595314376471445177346260539156388104627061231206584762347373863079454106115093379412554763624011143328177481546910030147634827171807019275030903390038613184741102172202485086236408578607603131145312140931082982833826030221776949008929165786284873079838983194971512305763128748210999426979822784793631473832312161844599782034111244819439102411157466845274751322000074289288022973134696892578826373568034676614243603421013194020872408693274799729423975662161022820921947347883649062765965349021155293063742610974557673453921931750470689948371122914174069715885351623266538535047990881672087868836519573263782142015444223101353585135833269985510462312690049529488871035513251505735482859560115585277765944925084997518627962443626303070886974403591737371815686293813253660715102783369091876948131790893088201330619826094193352137248964679333344085580492960342139302891660887359353981707739952918590600835249159513498581465007230907396020479334451693180116214367325011053035922397683892348529181961731862236015436405374425230289116665879985711799611939802025976072347961354717677102541398680601004957895929965308423467559311542622960209675741052015798553514387091535290803242140474045454210530638377243946139300787328195072270204022297762665807593837146694876934001344258491398530576926506773146589093360968931149853528694968502361879979825495531849577193413320043876557315722145048498677922082602633587642066345962545287564417486167856241846258519631452624181226755389431298542073097901381710110536505246386330041724827802392332856787704084775694369515734067512041915091524769871470264114320374736444252234266092364869809269132552563597891631384764152086588594884987757070570655056770875093713023290821118573594197285314098851468155592576719989688278869786213040176635565563835639708586764461409758324330935917667036050501733837077760994611076686373580321247631629705948610482648197032107604355148644865244301788825162992594518652181022322055121835988089142681002695412118014857753639299175905293392909879383672520133891143597179710994230371886183290246983606922830371696230087457137989261850313566063066326130021034810586074699576366066567440059297395310547805165360918613273784007860993517004698472662135263687998716957335147156247985048473902333529780508988635071441887145689141970678443540655582556155964042673570220804406668500493500064050375009037091213418463340947068847077428007038216278376868888268133289831157746793368689926755567783510166218954521119793176467240777935254628074104746962015144667115211773669861813864933242475294417960027202577860603355560736300172276526576992469330447805968925711937289893716501759927116909559612649961870532554771944604318128660181099306542867904341458700654611149250399366275080063511946497714067277751425780265297449757049438442979821716456401849883373692847101576435083580546742233724606774159760249032226851728227220365930997031840513509671137697167587314353023514561087967460068584817874436223824329353479230072778602046877910579302909360521194073263356014171963221697108853942329097261335930675562968524861331845584763246445575619035231209930793408896096562856898957480425313242139176044546172624144337896592790735290896304608924866533743475510304287361688099665409149639290175953114472156417292471508197135294281063331354862742079362222853987401591429436378065046115531397322477680939470366871448887805346264957974911073118019630645608746179164648563674897154137568084158332221963924116059521867737276478980699600248977681301298121625917818084889327664946190122179782510561925008290970237026340553238149330132250057017809934272171402408656111557582248844721139657089915778791309169830545944293158873680922323155447046376562300171764219091000585444571446798135210495126291526838601376475824383016263161517600681469546543087535505337529036526331361148991812555958665046965027370467954499496380994818590630071543668735952832352942229377981623494213191397597249434134155663120988351565416073719351128627406477936845957617059328098794596614719962597764567575723935040383062850778467762409396885557484358479629596496182656617662702639578453609335858731977797279232390667172166906569179933350526414451292601450038311323913335264195345607589780858186126084826731343021446308666114858010337977235502472169217765136529134622366367082523678189497496680688945238955851233143666431084171674106233355070978642327071516303183709582347311363312576680319322297388414234225922850770862095484044824831712020278935977374479905188409023861285660680658800825224905049416300830085166197855125802996447019266614133491470427732632987506970230553685337673903102963040439449244718194902938685729140532267210094129836759956853956739885198977129040413736372037160455224986528003360451146037386404525346340202774423236374539932032986744942666673581690132438481164897736985641965747945924252187338627885801817563340044461836485784960090036901117206785937849375987283017353879705666778936828460487339069603250980490170384840935701816693491768083850342266712715228047164417445804586767047785879609676827270257582104659893612132728460349245419233984717288720752599171981510769585649749322911967495063366276878103703465523613726687564461223872941078540491310887010627578474297453101572375050936138163174286446307304323525355629862642792658259674616755827008792338480519314765298648717062896993073283270781599848477587612918289282974597303621141837763891031581049391219055874354062200909517235409650165473682338580050845847433922579562806124451041016040238274280983448733580022595409352526873611201418650736377981414986946643968968175241060221800591918207442997636172183949286321609742361272064846586891129489980678933212306754844522983906351924575573519360703040041630646069529963370868819922764275928544666805850355621825607436114095614115211284606490642023520542890999249308969289214276070901212911500721303984666653468800633272711815121998062261188726460312941227812979411996975038704699430668880434613487118916125391603288105406448857101580349300265112804730860734823232389719608397923516798550553515413654720831449244129330383684913655436634582674440211126275168877588047513749395423431937979355839338834361030727740590817409253168420105118435098570129733199353590777660382154450720246699589578946235444835419521111472451591355219602273379013653676704976840569246023808249405144371185847829815707501558583526301885926019338029680869128055980305974374576563209659332107394278744428276257023986518347856823263000002416108531110616146215740896628708545421655003166922105600730754876291608645994948014162041966201383435424581071476109304316572428259622172993638341881832454698427609979117298045366868442924357680141315062448206243458933269865591930100379754925077839765131885022564250397568995450099184615195736899226416943307623634430972479895202608712161573955868526407482965376147678459776110385244434701315661970698876865178131517760349142151909007869961173252044454383474619412768384020656595747333977858545049559652833290636322312702928543799798523884137700261133756642754343044532570141873228844422511066997784571290269412939346987541682343455172353139148292801448351901353589272396614322930315414946741361336801127777234815155467468354479789051387168774021952438645328731502856512756371911169142465244834725777431463756729112915735761756455781945636065074834842035463895747526613940042021572678277440886445666180850395014827310435739782121963842445471474332704427690064622853627147802216471427145817252609125721857268602559071025125464240373855545673692418573115385782496607698275128183240979927087563288282078824593544816038557039721916821203168007096650353004758126930240348731308207704697724447653407365087996708305155432796763646112141992234340353906089962615912219963256333194239865256267629108282054547236791944326356541048789866441685443450628790071020395404462323267651316543110995799984633149032068946134082412517028406157755751097335012060186327742277664987900725869610888123443537923973965094854007202964775650578951377550021433072943722839189514165904892044237480029076815114302180775294099152171115373166245857621388714519939117038376163405287297705521142478996232572857652223621204558697987056955810464767871118584656553947691557155317084520696543403000193606868985114691925460776554034713191638044053260303948052290800523302032727248620013649277032267733220525199959234583713900851482596841400688276358102786246884711846906643118693918510013764124429925597606068653230112074827303256985299810626145669217297760026259567463639732012482184104604786350770160324069389526587266088014041118839949448826486844428836284560416005141936965756403024765162770209865546883942473088120874229609564885136558904668141619024891448837743043927610768382887844247284665035055816885280388103782775105461809551936669250251436486805193465817436445643915174125294744432513423616956438557551782004317105884507296386178601735683590666715434455538093210738154298178703318048715610077355983473249195222264134729397801543486508977319811598814424652715580089578707534706432638370724794726558875408186296087335739487074221126189069000621662234838346201381985599806770417413697296342856906230033804138750705535923499881432930823209553982876277658615691654526286538746160799332773855929989687474628036888768434994397645438174378631532125598689335623020484512989811280214710606754058098150555035778761589628695332408488142266898514076977440950702186688913753940038795745857676424219217320930121556647858644124184400033867570982809490845527656970325675436919519538365727476530637026768778658655720575912370122500602248613174142458475664846252179045041411045112148825166380918903808715506808307890277968752170329276345990138997887692914248907444836723886967526405884166642607467267146133249858667338872129444697267488026342528625718794377092076191439726212611646212878274171292997110703292046749849927192687885323621107567448957259818331696524590770486981539714683828185018803448848262224998306758781887610621017633878651721011162710600317130487475159163888542582490584359433874757827776628281787517324024639965678893986912585432810643988084747744905546487609108202103583770204008813310999472438053475639775991557978265477551001056740063785328077346205976678823209693767376294568421795123545963830824942960613551358837321509317070589204388603102014241290757580438280404986433047971312728433475564310913050295748546153633356868590161431059774304072020517659365532720580281450663400301583701708121196699059921584319344150779246574752703646031888673608606520223352322674263344163585916129999607147502543317267314766626075999346570348501422589716690599860481893159310284684399838961493886734405209428064614799694145082690897145321633445012869466945750257773799743923922215111762031863228344658213210218834973695402547746260956841820461435459418135252348711262641397515330902005358801247563864601859044677484573882676591831593369506013706275110099228759184792710676128041121377731471486102839603542009253873434287173492991112352581514017744153420558543240021365741435595736520707959293313069696279193247559534621621220611609133612716524888996060718033921745448066569235546843323171605304987457311643529064181279798817154883159162422581811828574487395519002285141229253363395133895372372821894993129507572399779450347659768120207593830505965502312898774991753389970742325133382009940378723631656385754131404892691182234136660406270675764562789972607847198295966978864935972796543627085702961439960877941344417415379828995437687321793517391840025182880272349707695116960373606559118228466366942296283551861266135072978778783487969998251915584291650121792607515444284616552720476280840429327036740884644286390978437408417817652531631310922317806534847984767996467090973804557862358712794270124658623931541686888996359486620973928561104965823851886345035535919812536780336035193470500962036265765564903091363668871553067442384018398569639877700841746797473982895532088696713427464104784696436275281690032543411671793325950393335898844017943393735638239954009176657770121576305103275438500844095621633290405244082730320887283304388486189722989951969050572385790311189831536805808139505474595648377976065840124495318348616209258718966392350586186055268714171276082550178341543064441057039553184862612003267608885196329632916348797573948360616948506500190893461948328647398661046354379784208260078928332551659968176335110625956106588052667141467027329763657834529805215434662944046282584830530277865780659168504866925608522163697515261461403826659620783767983960571444026575535623729840627560706297965929991294565541664758955206407629087880052762842123308802410630337042937120235723152979801736808831874589805516667472220097801890350310407495229319721248851750766557702009887254050504483681329309859532234311335101757511433328027658023271818016762900373592206908034114772077010448555993181125018169740143183192157580721886740679348926956935314077836951050794119747723252222630839558989827281065313380213864276859276904684338692376427782716246459321041215421306547944003086972565669942699319075976435754619527032870772330006421898894667523710120728784690846620779924949737532206639882056088008432403591296959557612175145146553902190282771528781398752311790474776620642154228715676871277643926870844254226522860085534079871183470672076182132498055009151092078180207286441227590493000650497145537384603126746034144778718127560901707399690955528902267404346401152002427428908811982801695831274465186902859165239095305858185535295152836057228137716395505224245438891763551163205528213382642919300656884533960368941599380124685296003529049495913788076264611796600120941254592294995164881708530333326370013206222151404483554708907357011561970104142960047731001208936883561640667598398219965354502056891068201464928699326639871042172963866628791904205964418677040961130718223295347279177010035749326005593149053414994034372432302727192932944857839904894545099765149623863836190916543667692694865008142333511147462377533337885236789295119733030649719027596320756062336757911124379487211701096353038876830418189498266916438100294980888510947117088411906507574367764330767672236678418926618971375962397774014661565244595116287602079745844673312288848985404800948268976350221163321497057321602117258557133298777448515833442272740537986153162820339597059832669478770548569318865281392952373750035510725750674642476914831931196434236845132983093621289856364154580066398558997530555896725996606061597486925612890478694526717684490772607585532147589901012755550996325281780496907091701373134865429456429752190927647187203859969598328374787059006028367824827865363543776829875053485687476541992212063251473210504473466103711178450232391913717310162129085516313711019936751613638662220782761824851351279798081509604705559070599366466928926843644129039150867410676849097360218972352923634914779128051048700058439883405074355065054544812833133836830657005432487732396408800823329121244484485630396079186787305907553060125559050692372605750062514086132535738691885802700916828364189713316724818731755929630699152976368253240882205313650910119010106590570797469006096844115550658898589897379661931327361642851743823283738303697319906960990280477971018156004044187349350233177225300715410736416750409694708085721877902498455944117517665257908945695303951749903026726472785655758636285399976067318579436586240580185428596899724336646915203341614309937510417437742201360353832140885156722785283202102524886970233398894159045168763064583641892991832705012304421610009467253853401287591722226605955712678123148094702602460823925413840565773492743034755066241469025179505616370249352378966727590821931813143906913630212314290858944205025107283821578934458122299622110263963163502587602224019658166464526150901531455264364913621825080543195749631561176112260690526956738090801189048050917266173183267758218654752350196894478789034744300444745422153234137695886580965684234693457973930603050066445240118385494630823115524200536570229428617341539081449030376909471955248685321895044714285433108333198900579230091701027885399776554758063286312015029120235973687272601579961928552553853328088462599591658126341207327917342226981829313818237162379636178917073838066345973944041143901694669540824451820412819836278577239888159381468859088280706434163465028378428906973171554020915006785429334414651385411888645964761492009715044498071574328001534618876020930880727169471823314293763907843186608367757543352381053137802046987356202240803734346954016372516678380982417486934292697797521247643435102833192033183284665039784644977495842614025332308482894048228676419050193772383042749166234716801933182891629428392093911411425713348713278798391048058890904319636693838213915029391147301214299562607629272433439195782038036221841668673812288210762006298131295226832189680532561506003529555102991663699042227043255176376751076979097047346843833626121391449045092670090209062978283988260881104206387049299656113731723019224115093075653005240265882726592632824249596004552760980732332093524072453030100883032627688239226288294766691197370714046665184042519014908682259758305924377621812528225609642289287791008616452359293365519581115733388996577271075364977047696922866727727612285023271338192332926440715351040353933629712021100708466632419593849231321698263607972897209245150638814859536601473720028833918683348472138278322005354483027765279016511041978092706453090371128506170098807661747676452336718047109802428758647421512187163291733528515926356335938869487854855888637734858051691250773956176405080443308711911602437294375804498296391297367276220104458648797897304213112530024964683004369742184679840939694115074136859640008813160221894665943221207903402691938652393704230808619222118671770678528177986418054202813312829013082586127359265931442772660826968301882457596916337823106377469616079735670900014563611821499333867626868555432155933747773883141517539437451832166893573152900100058042212206130669972397458740512526501805938941380652723966112889537200079691848768583501121825013959403495030023472849819685855507778557899364390648203548795866807442676999886177369722786114061921518858342087862762135768466983320554042248562817461630418959709146419729959117276476134046263004995876297440963905541539984709621328610384415378392704104452525223228578514830256427092295802303827979195821347870958959244613102566179213556695804162900478828080782417614182996823736614459153492333639431533137824228777083356473615690471307119649854800392615441079189280613229701551761769330104991759846605561184391762875421896062761692126999253897600662192601450947337314156504192574627917970728313234474860184987597805752977179793481378869216492342335603015311207187334213231551713913794857744019279472926929488501469879674684939126562171225902154971004692609710185270414749611344264485373075548298093560754501948680872890385733735185634257963186195705038067814137475192459448596003306812533764663581815198619191173935582664795765004348498277664821674246985435631556393326097627792092325351368085030715811951472217620581096234825371894484092792219884981733105359305142299552641279638247174973626577665424073177390199949280981638799558948999527745920218547954922904127628772394021199909433934495105508844315292427745450924997906035307009897928370890481992482227309996496457482612655988055493309190105218647541617688433663240667214180063867303814681041520726983382431604817987159126448313381201078117569162676341080384696230209908005912539025855084851675884953873668064156549866173195288181115237113548292439272666712042009294762282267067277205441953330262126226601774951141527609530919867456433065793975363768419596369287294783616187385770996490504074368759505732284759471666503285116023326099289921765255869206073696090848269921522608862787531863287906191041818133152099063189265583726679152526838286545934523416694025229132754285892686687878382940696704755971329521152631660583095809700543479162102171792682140207562431919472922878641669861808149199086742042651373644982361872067452898266826230940094540394298796410364136308057413899581323990504881979701366041693322504547928397013623291451457740079398889424671347490909416686974478933894692415783890973501145652939994171243276531198961880493835638540281897205426587825131235991403235372176409182754923381935951819943178406025287398918536059952124137907389346448059754389425760542770762734764503024906251497310283014036853230897808604856627125307887446532848619440602276286071773490112026184854912336648789648528395088914432999955946299629906025609824756227913195504616793285061155235780663592600064031733582263599124367060044791188973171688230683582111280915348484135669453464398669498043606966063987325668825804718058219338056766683696288375454667188810829166636164144462118697998006395181086370623345518589769430998865889547963513243272109941938955987991916252427588133631095034550877226859728144544949109205167826438847550710120895977840524231466811925432679082220938491254544602788650244076260201170564709636181257375470282606213213291297769997484098187383042970486979001829369553671007065500947979564351469856637561415314443495662019814152069366440513110484494107552927991044899044624063561882970845752420561061704434598533097608595782535105662722317130219952133271998220371533709237556471832950539702997268285892872150159844019395688824342712143364521160124361843906363350302637352719061268595745436657445866080672821488303571834257226508623592333319340009932912214328764860435259257191794111704167781206634677913946464964776175846417499966923799266561157586277498075687078171031387634906722759310634927627579511717708291129743451250687797585507165856206740652397026442533054458694608307842208247706845059404906109705344495095371502393816515986692642778202584686974669391689223992705559175574812316072373080265768658912643495508542326552124137494934069448679075551096974479214735005293114159862188202476435290713128204314653468971788698502586662398828458293096744456546138286063333300505414016130323941942488776310435317144874624195440531172924323188667418723647639690840996254071484854151886944757392325197022940194791012077140128503767245215115085099039178505634837407915727897472811786172884736654472277684372111502434694070274438030641289194443266544651137244525844341002873207911264809076111551192032489447277444922125520647828158334109821510040976782536705528635917851856663013917287485656804889362298817427222469300150738417849283897837620715448602199928194846428246886602717581582161982775465366169814834993324616355699463981051292213852274588591591257522328512396157247153871315054674092516210117876458489194705499873600681268029615005218476858026030336704246888730083309234499250446648158863683812617444590697430758732129815916461837381371401650019352282592488767925698049554298867432466980011157209339805877971710688795100520515853999602376742351311129899215630485037083832524642764318970366293330682667942341780214818377637613931568326408314930228708155242721223263770054712772942140391038526421320804062337283885500446249811648730995422061335748087232143408059389213728947444016656018669522138300402034670003548800639687988310079220955097584025546029914159814024434495649827091247704105500738309807299224502144086046404835872088562444443399226539681056015935823606604191292279856895099552236337623549096474615767081021939371793591819691108348104337419870926140161037890279318153206480663063120657477448620305314043102412482254453752731264603214574643370595137083088922096458527269023302137591022492228381839591014932891346098775749145586008646522080662187957457864394452881690614000232862807436952096469453587992044229228339895624100343588948727173702105348757826749319019810734407645462303682532388880219860594945180614029967297796048157497516030116458290883309070861748858737671523737883556135516941488039746521906799071533701325333553661691154343455908613234998618320232514994911954639555591925953828051743473473938502719304388288010953858379221962805558726273997289715693247815124275002483965954667485847053674532273980501096270177126380182170538657995173612908990664824323181346155905190387523048607731387805909939067698409845453754821272043311872680458342823441839347841546136176967893064226547927083521955448497001912188494897197815845168628509191030023026206196831294965637307809488785636976690024584194753305278308842969207622640841350297080148651650118857597476650784490026654961275994031328754063391301248439144977351943205701653226173624460967778381564144314954000654262984064272409906798992921673539021991939271035064001250110413752907923847297694542188307162079950262678200115842140382987715481802619131700306680975130541190175978677973531809772773529364875240800090493904497837866564014734143494941854080023138790808522424898754032872734590982519006266154779124264846046234865306339493014441231257630255180228516813963691857255226066351884100355883699754130448249748146133555424427774351872508365037651140222733669190297635449295204859423621748239041298708888678974898717280777776425195016330986071306275064795075659924364959364918629304623272939806074537531815080562183085511664580018061143441347538496178167806041565133123617451270684435937748676349212617540526811987107803946809475119507578240734389684351519710825113990522328658513854037398580176910740534959864008246694411191394398705957022935448735423744581186123668600450142801157788072155311105728054074565613184191569324258454158965934672092845931962978869807344879040258659471979543715348660857650934854054837056989945912781428432726282112297206006632397037494150719537764136952226106231555003886946200171508974096847582441772092212022947681246359181916010423248143885468122925582991582107843154574429449462636706248832838252932927140491650218586011775106722564601110258959203549854119746810331179267013393149661206249737657841897711580026672739245416944843652986141325576939042049944222641751304283636387208234963465201931942397541802777451453756883095707757075887074981334833602781633841604882058810723025288491131571040841044360561458415821506594150281663330878312469074664433913443632445323900150802049578917992068593104390926829489485078420591087944722656816949950611863727645223517033530947682421592390663149650572143498414828986527556680183913276320226345695885184720992282992315108556766895977502247437174530715356298746135120435423451786064673306534430041568909566307963872885595225623504381311049280148738103101126203027700113688509054104724251690958326990458479607013246993787245277099898549254631518556716612115671442867070180162321679519187991590501596670371164735942821548271139428092873245391867608706209067400256480702416000811375288601210907901351655255409223235110461877350945532145185898842356943042141382510424080802157515049004153962153561595814254274953077826927458656600760351281473837537716114032108107552804391687280493998176560351465121708242445194541861142857232257774543550002588568312900976068669930626104671634377042908623314040829830538673905291522104184745872794603423687546891978104549523288288477198307570667118127004436132843073516020049844013325819444174591116405134573853055712275231652130870474419004847143591595371219099205759882856001811615670592203188355244262525379980873087674654143055878571295672112225998554728544275107300694207054345821051436904589052500752197558946741608871136544701918171171347587830510911674393050885408032744838996292887285232930332283776590944838406282781212437094521670200242894239186433169039394269790761662467023481499897383357461321122301297224099957021380674471001551340608039652546746014748259556789480723172085506631625412515063767091030453556099575790055160642288419353094344623486919619651470129389439110079806490953601106676081928931139590674079073212261278310240193456832749944233181038598293802690493941755879479422920083016987271941633391372699736081526518734482846092391465504097507451776199693650959417751423934351572498761696919572447621426820815694542628214919666911775425905655711771665822470064318116878243040456071631761173596311390891376089312166321444189024349314760513316267569148726657164904566847801598263736514769643840879252960134409157088899721966456698399785104549622461597838350719878806820810271838809097176585091550299581263862967625927311851358331110233932651715277462680857523343283751367111203796958197619831370495188425638617432215919776421364232009983389890622101138540249731056828703789838447063602252702846220989330209849194753492997079725891759363128904416185397600324898788015987013769804926562941172018850284696533977454523605338282840141187527763336467313620354563092380295293625145683308135128631348430149907214137947206842007666529501654221002887873076801250074769529991558650036697657056987970598854167823701602765552056260722704763559365207407513101030334222318703290459432496076768517153184516006399157523303133686245495484495122137382306837657563667922556175624243824538056839545647121666412931673827380126888207886115315716144587569848357618958708558408321356163076288820576720561131557188742543256975008291235916195102791361480609088535829023250610468037769350477172931061805558760766471951929138302224962498768429634115914548047907025852570882403891662347444336511357014650844290628799798218551736241927222942373029592757357697331705496826648432821928517951785541428248502052835861507478932662853239985264481358943339488773664977105154644414974833919598893762644179722315988827800340417551975872749899858516534878467124601040287195748601547004339594989433973296111551629848912520935469417643595376163874343472969714993034559951415154987225715985033360577308186430300275203267040305165505097939853518327100331461094402041672132257586020847066770242339646606855240741982392195082378227557458506134646653652728319246702273379278642915802261851017295018927015809174133961459985637028976234143415978742329991780234644316425253232466043406074305207161846565267859376153628799604185016569682005775183747662691723297676780834215804473898063749450033616287609363166541472137606363272824284144938955649755865554973030654660210550244102142222149960281204520426048888407498517642048751427401356804755050763306413655262466698018673608339703310599152562524909283552986772481071911705465901681006230354423687910672690561918791814941561452456898025767841412628534632219022153899196461593330595040686665796426827406366432152328742804317904199427269690318022840497530203687727087517892634303959432560849874821011927196462814466315098654656556356151036562187198368895877101436496524501534596348928615708341313757496914413254315428919576196423386515479897686411673901138187465236232531737858436962991728924411309743240524270556093658722225350034295378161888071148929636981191672983508328496580838713991942311294402522096742514476361544716152780403148476423457207996719072602555182772420447015896219670991186741200928362814956695528700447513458035147056505531928895015054891088587424193089084459515463238523241121013055589814630265223170350380695911744714643002403828904931787144034372041552101173281125607947425427924758489646171781113619958131997183349971776664228221952364797420552630183700935207728289775785808106736896685356500955073902890927443100348389616045085982173045256029663283882706412204917565301576775815566791123937094025121817930179526290610959213471751277829156826373675589763882714246297216321351705673377213962041593827503318907527323798997769186009250334059871303954225650263752812994878553539085825070618851244510108924543786411552521535224617279450216049213961139451238519032413785294689550972614089456023514099285730881717528375068867628813775637828368939633431651793925669723357784965672492093829224151273261426666895254252547147958174575417175732131015384024628253990713594317526363028566742173949207585193058355950097502960491833404535849997928444018343790318230786796363940296882888894157201860081298670077454509134206138934323821444206980121124368555562949617620453044059055466888277373060887809553279179835194301161833749799600954659588326260210377428957902918345762538993478340438799852148341506272091138143654820597049874938720589270505207063613682602294530818684363890472533679662431554077911634269366499492198670685143385990009047315694882751671433712816941269097680996411817979186555917539834240639257198519877355009883426070478861467544181524846490730100649847710235127349950736064017185449707482697332833098591052509101270042064133997954804802747079031842370628718865127030315346817256656279120427427071602141348994437747474484347132444886839664565209959902444885893897928910131076165114907225342846520273464588709546363552170733742296588192419602419031304091748688889195771953595792393809964326039386944353334032506592569481787164394547043907727379339629339966861998457497323705974685668016662920949904590237033870594320994769227667596436670454954223205767319999026939200660155219298141890405056152125141295255625312060672600534318906027504365812268223008636132267600018801484151465219332544715260772078421315923104784797160796670377600088229391861847445511842715910604295238073855012913852716481101227462660420742293437161618541193684580678663952050378954866821342615705639344841101516376446731628511144231002022657198092217525933238997478920000055328492293252432985879372177855386901617248020368327800496753157616729045604549232359952908772580781518911467853118410806730394974768307308007230162860124333128684653941767138557773398169096425134322193873418293425738763001329297922628221406413689691462093918495131586966865454253480248737275100186455632807537007492612552533998680003409246084612568885816086785017996924460472866833307319872312366680963997564956527117933297810341181270091559454386966163654886999458886931274081136402421673055732705263650817452549292071799687055479065215343922977342793162684986140805071471330662720284038898282202070421418710990001349406639627971622453891126223304774496025577894082399090409086573858808749799885471576857601965684412641715210201130694027193268204501114888797345373549184961512393596981407409462214216649588421495714605904689297194725455849914026616221158949618393992499390412190577340914607715485639408207923340100195085195072228852452380906148906015615994510810659020808309512852291673891016582371033313907674414376447747130985200817166520483851007783738219285994195466438046796665610670772670082704042386579418922563745982170172631028696727440975144769799605707925887035380863721002313993813704928654315242322294140369239100227200671162087062779731593719762505904444588080014007192826984456339931817856105968191501065064230650762113903189262921199634753677472001804086721836930334766646353069685445399161236512324878140172993986409886484420620789567972807983257271012302515537542823812232504018385774844372123879461582504875034220671475078535105191875887771359959493155337656854175048909660922827529656159961704920219026317026301248017034652880448932407718773564368347753239047283690306475204364373199151290976535465862251104670631255624184305611650002974772593857921951439532500104996127357287915033571930344051660484563530608355033063964024673853807935663417665620096221611786660084389904545271666529752266533078668129636961413060121222880867828317023763385746692475800971637229117063256925409994210887755123250135540974033286905592305358171365193872581024744035551750495853622341716446048081541812267694482064347873703238062704679389122239008636740160064148388040319907907813697797816170751811508399891791328369291224774669600616567144988985095112847914875707182392656001247000539754239995940883061032507484206966089395650569571400501396342478015621207335332394864159431657462252687648564325885306828688075309086012579831360207035603758479575748610076207936568051649122757018718465323737700844869406095832135732254793672473367629049126433641370518556945715614243199334168151404262147165936992497723791367926804747956054699524137060452440806087242304497954712605955811143592388295000549863956960388117397170340635698111507360377757679615289231461503197776745860533377311651269764588085819918842822119210012206369500653203167871339620018046570400294907377051326858219356956714971329152204032217545077540050514755314517571246216486941607335051736865184409117972296077949503666464942756140171941810104738266278046408685705885859358539408772430541964825500710611815856780034342578101786513503182648121583216381307096505386003043175258021622165335790584510236495055835763694644968751995741710784192061127616872998214178223239692837798897460218264040690490722457211713581327990865530101030176748846730997475374877505217407684971995401469989947643097040799544402663027818673631020881913180995971097879885250305746752956649882516613841430510894061295255661895691685646018823030112820078507014367531444750544442089704304612612733534370577487180110604813650380549671677073211874580019880820333309726678189038634573711622919452919273717300986894124229742861622439282996643067579357715285247474769658143454272076814834806229954238713324498653141619703497563801282035082233157948647658635792322229634107169856867921543807811524852653581413889979454914615146172909096587335306702824753807691720896551937797922908611905162318593509458037579775923671236563028083451888633645633006848260159022865335715671089397420753802697203753170874560208455179801944986330546958045849415030757987706264728715517119207348320217088910477824069535143706692725031560351531488755991146102450074286829267584334246979930719339576052852801835525983942595443561903635621030522141068060787548880827066522493438037989983505430995589570172449525254816386408154430277262177376847694573551333296218654097113837811183889604671973980191355567070413185187141972633132412968257291504377756008642928741723671138337245097381131018464779387389202638318702576028239182325838405177347378802365720094242634592325833756934906781529878520171318679800515996014374814620363486843074628513593436288953961633109259592635819104382553713203470258752584649858453138994275803691627363628132133738185347357780829003830303817786716796052910729786449064011662924285442203437301378467704246513566122326703828277081909548342791065985279725773917975743126387148110208280121208507366420001708894781375329553520055178033201658256292442213676529630153507592171337520007343683558664949798385212379966699381177688859473511929620916135687054268331458334124419084052480071385468558920436613050105660824297175722911059452215496086703296271184898113890475744553801786232743167639627675767481841339718626629217345528970504687447009863215752007860325290653617934333202060386855092814543361499855291295170104764051005610811879313159721111038556379676404704478103534796159875992420124576320646715676852383101567455823433290414719887443314391358372515818608973508617110595581286956741889230710286125588786778772357925126049960417790659784440201500997450103940161954930381352684444966745272425906866736920795116693168734370969259608183488782085916735597087090768050199858744099800884991853906977029657744009664467689626673425850102815223745515110919015303723137712847037453691617354252658584767403561140093826388355861170509820801322458086536482945622397177343519693134953576568089108556023038621341311158859797138061452572292353519837377306006246910597071390579873878676307584742823676590534984309047174018910765254620368706208721327384692531331366588002385578745923979241143489213347545364059418653006128824163491402703519161701010301791532835421993619472963496001488916445966704107645372134792766870032612170508347885587755326050914493705936361596908657336122697254719853315683039709913781054765940320821934506110056769827646684541540677895085667187760246632722271494420485320429922584264154266045269001652243898362722350799208516361059359469677063122095395518671764419833542103865849025244776312316338198008652872195165733719128374382992972038459888256475487975916371506801936059531528427949246339496980872862469527129276507889523566423862430696736002526306943591933819371755078834044382241714254776416040794541112277920895958213205421916581688745573464539202700583380739431825560287953355823231315840667292980992547649252627261729668454594880944542095697166574485088361615847740764721976324932702240825218037169882225825576924855924943790742863054306175581023204885802967997506833424345432995534669588603015012347712653689866437733607728960938427692393370529970643707948045803813267787704401859222043213155598907519204077784608213534802324270126542717907984433523909999166790251978598571504880557190956335252295111659485855570613483773326123119911880282608971543391453270575331268396189928873480338631626128797596653058892181186217754770041676165770782265423845672020915025027206832733299186175342418760854097975625332738497282650717022897163048157254281128391155311496109520832892991464380482914650832507964722969582703842015557879925296753475190597143834542456865498011166033894152780270512286688449512961371786816895740641771050097846912469773851715933683393621695293358315455706171214833618603314721433822542703091659093845900854436805704662070183296456248186790713801351218937463231461241923309092283302080432694764276888092605300112769707963685624563256341175335696625651513155063767038571906471878300357121317895520373276577779236194857632765367570514480223601794376414630010492963978177887487124036171413451569758209486414434944568962457878784880042408568038927097387511848083021028352506314236837110429344975936399008833613004255304095015855130317684662377540569623792374665208139880471923874010740784526723069152032033204500758423133633901131761584926821035753742928866446560079747563517200442766844485317257029478665650744657215371275359251589666717628095769978293112357171730014159340718135053833231558442460953803824676186154425798539148520280206301673710040541172939958248967049277916711375343521375997486414003233645051427315291558833062784184266974232535596371499830422310042436819659166951941969865949783079197208925561952744304511957714016028369020359373022754566673459097240892552731818492083155382389594377830361934317982427773711934831169555414015660486746666025447411828044230147451693057919609845354947045111904442010981371529182295529616889320800325508346822242180417631230946926287184670385619050548319655096038996568850732156030708960428944621729025181294560421743194339647977743192253391269927595150980285166588904627632832411828962473037036802706447702249665508499874166724777366012098975063554677109997847445111601411816976787692617012874130132105825845392611837376158079614567141230785059146902463600624239563138123035357452765379668170010385187459239470017241754359873528939656388835466590859112253355819843409041289838383521114056835620879490550708683230781945906845742256796749170696859837618242046757797319723648267428612204079772884155219976665886892201950291394514650095143657989981629118957809710060633929827406878761867449089295896013225542244566916884249164688458386490684134430222840433714338518015475212411020759717145505530506633875911359405207248871676248406744247010605166464751699084115392407722561264499135701251986110037620610243988606272910488685606112531251870545952827473654711309127920326017080126344744373362244106789557764609634406491927975583196360023096118740344212840019587739210420132768591214919133446088433137454935635991277283032649561295427483067479614717582065427799922404067095053815574695649478670936188875482878286353268182620394493787306894223507849347948718350914350449703920290043074447075143253706869348948849142729169739233384354147538411735455947788339058678754603688726651617956288966960415876204170017582091285129322224805074272951556949568618982759067793858729278197584321952419748617687143861709439985318081383763949251410706967617422708173350425814536039004384384867934770905485460033172778875374454403967761229737029319047051944211534434376578818650998826150196987873300679720586255263356682854944617789888705731446574362025984361837539904560634106306431573706216224762977194911617372557880353456143714731162541172546231867166871650258414244014140090622101597098967278715250972249555827350081827223693656215915141310928278184602689002194782051814198844925303599747526280586606719753918667241209053978041438430928554492646012466381974646379906014826574354957165206520296227933173039349274301979021994718965601140271154422704440905854281575584904392534386579405668014438784409397220255299845321416382215650488918101235537943274864008807896242532835471070609824134619355782022753038027881979155216738276514266359839670539301122239171214959357709830953741193571159140472990655065545416113793393294888765498997537950029080021311438739393099874961806495161213348356286873468473606979544256398847252880291163148641023407352699037055064394568789100156756713634580888232749015504181401971581484161692027311695892736570695743289196702411976224777971640047432963652138016696190267013776765557986259131202624844409612187354837889346360284847349318245878808826459369827691330811380720987394666670908051023103469349501359432904595179171196845155183099745763055204338256286279261590017141513828878314102312296212057583117125873530524681026839268163782203006061841125697454809127006414072443027297470023453561792449504429721914599161174613874362932634537125130774643442273664234975975377006744399111133439101226019611217311121886259261320014852884515894393855082164466901497515180729776612483320832991296669695373779077524461374864710946337993462880406235384781658387338452956899743348177965220903570192218794600368218564866585559564029423797463787805448822997269299560879331643914257224458364386819415799112462867578164917020018534418978289372889190287700786518571782413504816389238822560229936144077747887368954572244575871710110289935865669111136535105736919578881593019020232583553370755227184101027842966819748154617834799755834088500608939872641147323476566794033946853113639112158696557209485108954710293149298042462157028621366883782812338894458726687563189200824836002647629816530066403440660456313931818181196788183832687448414361950314544588035230534558830897185485130395779452901382159410467507360533568788690313310965423713590128826064891506434721734501832899141289820801834073346602760683982164565717462796797013899392037610819421684878535510406622927547157123035479309973505541572789945202548945026805403958350549839543273007352753088202556564323478066333806350672583834512745452678830152659045854100800256679283410486161530670942935337981343515231559812399170721422110267806968938902934077191024688136442946767096604769836955507934546676897242333336564923970230327063813247316380903769715238106249143563572982071062351816107788088316718293007611978881403040287266315564732279968045486029528943536215842572576243191460137488111249944491426927172902518078904075009835386110654066602293593603468420411220143282161967799163682964533669148779129145363537469643653509151260139649557863185795516359954455431914416467092709617992068344204364062104041962466516508039413273125212796495574585618706878351786880466815155781897358747099179166929710716585284518674193929247812530397066613641701106415293710530666906486875616337253807743634766952212778142467367437180516670443153977009488875649447166985173947625676246386577252571020861319694466362849790252674037615881445012549207925551962822838514006790611154244715039596149193485521364071468245312518184545490084391911798706158565545750727496346523770660614591041420464391705699330161876086459115070193297813661888660137729270632953907124528178506537520115505736714208150661241395023480543142338095126220187227583930356356455352967022952886500897438476511361726997523047170144347371184683782803602948438538685023779520242343404674991484697659912604886958115917005208124043627265897810723942251747820141957628080264128444190059625397242324303175156561779166587962804596526798408467720700660186333705454019242795256316791081991741953000864134771671649315212526449203327969966087400504841252418952893901899795092298038614678669930083073219288705465750456788164439968124094739693653086973111704857791639127574096210138433917009322897939354718204023789796718919130256952009768369309674435412471962898913216106692694176707814302146885919666788025146762937818187141086028459191999744107082730912165736911880090258290293302466391458322944130963313669566412351740792242059583198792773861992365160224355391095048353015734476633385996130565610566395134027844716335391893412433755985175749513355363090996185736727343799877458627357870823486311949151309441747597733926942699374092396580222739453326637297951371335455656648230815180596556736903711153917241801620573066271842220373121908618049219895950561373801869546747142594093928699747438788343862206750251244947804762159483402908331910872146141640959202105758101451634252883361442375057738696252374295358532608385513066606020664164626095993536234226085837395236262523814904214209208218910041411583798287305897574137967415492739127416275063820747987749474314328791367147477834018817404676456831351871094237834655127983109589609664406148887460640861242893984330474751218394468593356687111065128000890267816501585294786666400999866832016664421229868249737693079661423156106131600523746933490781688195848968669632242653508360638851743984737310164522545847187839469730573516665931708105603345162757899262566956821272411831095133763382712803224928108648947418922904049773870290160071130069264294323291738025802088800872305782891274266993165727704520123226366046591189498450637907755076683507591194647836217651078533684572191875729173980961445915075441372881564661637275265568950299141172657959631528595080877224881653935904950940264976382798180767976227161015781826691425104108566318740885987728876408290918684623952044732525192444202906883439258382321287631712467486927174645224084487272383793131964384836736485874170409941613221877478569544813255613062029838180936463065884646979410468785101836407634413569095679144058391277642412245360767243308262880059070249782467205811163997273217903310813496173631845369963751520495854399816034382227736386134154288628003544670731631510243462261954636838641464146213126224460787767655354147204956585518336799283777709372105750189193554396542637557824303518862096166937271563252192353094275816292180080047150095348733256421369204811881169886306296270897567569293158094049418678615555382801618612845190891315069717315592907322108634013876525506207507673115448840514431291775778059643917804437480098475437855270287143974237432617457109953552346724642332345502075687080084714300369114799730459731737669631122732067865529321337455676191542504210380343842367437466144743504814041018003786521142610695454928342947949010651117503770919335762893007305427492107359858066234432332222595788833423833343244934001523639513981029420983142855652897943744420690260088051787432671460462536367544718798633086220412062110284966799686181097229091079490426656705729123477455083327191104948035744704777523138338049141404959581029404185057203536645855303933300475647828411956171753415255675809855877904342702210535183206003890046962718817674872488579193385354676213805698707766663726500165016537171540724417661101741242274433207686291709970905395796856112874723104296599446282597618715601343309725567857605875726345546152559205842731323209797238661357227808515030295762612142296054990584550708331319806363535850979598280984375328127432319834826560696626340728261729098097428587637099873139633561970840035253229453517390318768757878577357831883555185727617776441706675359927265527675037652294354195409554228057255202269976258115147116005845767695840173050485505319577101996784759969672343188638208584355222551994567438776718956611885818868973243939611856889770263056722365004673098680808536690925111780737190691606898248401775157730690682340584015056498415019160562872608969945163240076386158833440332712141352650754677545441779102503314487939017511119287158734299949832188601068941522063756406068746400713037755191911346419277718536301007865670661971541340532729918989973134776320756105670202332199131045054758591911270924411806987169495351077143990839393677351616697402962489279441143695021925847886520805959201868069356905148014120778281032472435674520879665180607689818876415460434332714175237908093224144830341137056058762019479571935277829422780701067119050011912599628494249548147486170806240029220976597814931996791670583780743074528733869802983667802244698636542669280717701515448918415472877648013988063428467459159078283591476280007597956718542544331976749708778429765364735247905222419026580040222224061364194478737477951027073480634974146926956156356813903027792533158280434746003604476173381392866537833402883035606535250162797302996250607273840863136159486695912035308021880377291447708046087288683321505075394656736810614174630394739043519933339568967340246419070443637202622625967975218098743795356689607624164078300761749755809290327933955383378989486099279391666160674178482207440358665917576177134268726948300464356459634375997265307931863433113178133712013172712346798144498668433742759416233766418175593712021387161949397913163990387971733606682797860829916857228511657960443263803074870274356709879157320829002621975806947018804923947060504996996481254760597369777095627490398327054958473007885307316135002231343828672151086892440731363820454860544479223986407008967862421647586460526226023686686911111026782209668118802604035997918887305208827761820812148890397980982232222293828324200709507887408232216972226943837300353404727781512649696038487146503342542039047611074016021735108511201324483127852991952422483308658712043050755783527769547063235225583177389420132409803742160537358263599309417388345918344728194271733087200030358505885264107828707054827936414299679122170639753682141445601861634743047743096881358874281868549077441575488388111689611309497978606377429325325486183101612396602032174320892404621158387981556769958199660647954751966185634919755076488949327779832701692557549959230878286138951941566226961118973594430315034078255214293541668758785370020973583140166126541637640991607537308357343204545658386709986728314191271952241128566302917305252495112640463746441541134159081448398031185776577944438721903348416720121892162924645069838088657081619239651114322914374572083244838310468856202046555177011366251518233574381003148324693617968624086743323753135696714780245221769018363556634787914331744110619954096879321051800344116374441618604228296518658913978349480005364305600832533478370919903409197574363870387896387801470091801716830193023309917972233769575378729532480287501341794872106367892750612572348248546872606565324959277011948076783945031462679599465048242131881579290063595252189746214576125068999228565387768025741052447096412507055169466737247916342823316411041968864470486906653163525589270809718961848620616912337332998965207168435778057934286579815647139928069593263955308292309784181361222200515062353513903931095177727929013885285743770970765103941808964186653195576977471660623099653559667564648842183578773471021139156019352046531119698768605219865072036715098452902953936999973623848221016121264413027845449556091473910254837385346694787785511827360938596911707772002878656479003252206078242083437808679774806195416259583585476002642030743177752368532701149127435823703838427237828609878099408222520527218496592900280940493238578093204129923076603358413551615996563496612234299977696325544122754089775996230061024791274548604812886860764502212601472049384053003888472167412427897382758618298335321322328068302978736390199033981457781639968471611039017440766648177383968471758701557937656432866039497200712275217174147747563367395039878834194062776209483569660933668042119579396510612726219426494940307794803285896701870395033055369776220703344308806199487115790543186307310080732765436213442563390989585325449727868227425118439451945286155030715959681819375537383776645974397168046593214366320057281308427734260819184305432624141749395860532846166236498843116604374380221868764230572560911411360813670463487787432043617869133020223996371215535359117250916244274235824711235497031764978453310448665863630848874895326200239390343491038295348601832851504372217880115860798820312913185052090031219666617194934013596602394583905882983256702709991294946213123339327270931234414419678918529173892192915269799806939028136149542679428523096063468619052338262325469220946898226296979200469647752799577133032251978591004307480436157268498518651532104963768389320896393161727723471619413855523513142869321267940487351215534314206583051792675258362914408196449287935328475065117051020547175154397573554461004159782897912384342478879784653853316800491485354460470694623093711822838118870566084629280739392855624319784657264983415513329052912678952688689089037065964739946435590368918612088304764339990471771666222010248697578450193619360546379955968066908610442846473649133523951400949524856616377577997518396358566425172069852314087506023004034056767827810574143082850428494645446272117093192806915922776241115971900707104832506330085132450774126853576612877668565424433505424749808877735251513899696620940845918577776915210426607496485904649411854979081460647715636725224867170108189208768721644908964718839847871695743310339880933404506430015570793435290062228436251313495116319742676940776575072776549854351804831903064691141547803869432239961119124527369782589709582516632232642708403932575111270939175961263718739051273339693211661247773712734711292555155475138377444507083165748240423501409725335058850173615945880588540139221808461959962960345523994594618518560877936575051323101502850108491999710559890021962268520135323869453551410792024095140649986299209049055792790628545098416242403665602143793897335573017391620399438779448859497794028973688193758009457885981916531540105387753922224506789060568363749751919000359652486644878904808400660623060023106853596399814913808018449369771467945607492324444306539964608475028595172044061045160799644093348559526310732351341273011153188998503202565611136973632673439296856931070357677730584043805025384146431293042973113239397969023647209520293206281111139949126713541443398427068103579215265341294359038606690438842507329470951080146281248873572065685917541784317276167670569058853860249995365921367432870411326565613976345505215067047618141637351927059020834325425470291170880517629012198863392286826503258567230961307858879378438102322893242987502947122795529803707711877460402137815989421543434921845409394552880412575762585187150542981500626292158707206474922244723460335468997690590782402116757465225714798835833295721150917026082135982894861710506513486332932923523166978145754169969907021086962210754907761614929678451718672813092271885189781836174187678415209721067656392045966485579394248060439474422759923698368905387415754700011449826201208350649044424699858748718940765155198109484765981221968499451684090525309248290301409578899330835748248793407332247835976651298762466340291319932685820047005307366288211036096902165681940969914044227747379172953483159739690192851924385843942770749356679530321636994668495917043098574970908509747025179279098266539913563101075036005215481563526664354380926835140772378420698082989543377484283221574219528439866770969267965842387030593264036733918564860301342573584364426246811715207062783323229169041489020165915045041699771356199237464974348524108930679805278340135734617681435961445460209428828687240699854754715136684398558696819982643175640223154748664868549794077516305554486320379716687980493365872542845987524741019771851600523160457173185558504975829071321189580951409917696866301823583528528755368424582908411543677363902037455611758326573619987583140770530495140481505434549487926112253094980881424572290536017458689316747952704712219446208730450084132141393893226588840924337096939523267451178174291678728077744938191528884320536680467471915140528135693914325257069238891720580992908257523992898560626119512583312469067732204824670702547596693935079368902709233045990993043974361104577904540916590399547428750124273160443619087511959558472793216276771199006269811365412706889359557729603994482907030181510088001965403125177554254673595581827568217637250875378616347827566095136828859608586310103205309396242382316877514841876537097722212139351631016965653597920235313205435582659912284111755406502026785628741803373785817399336809341362010233212224468142917613426640999327243164268990993889021487121585391279374789390544282691081189328639291226752266498918357261824931591151886061941261410077009776872423304628437851703140015865387123909678958979864033800387777105845468559476152151755567956780361831645244336135232814648743665283260001046833020760523028064293498215118157541263675576205307738836756619988973943258558491849935408837280836564211054880333309608388851367668598368023896372469289734351143559735067779993624826746408367655840051678888487665969236889153677883498687196655776553116116719564732745261995389026737785043343394100395786997951510906142014195499801645572864389322380062930385075949918776224919244434958386732447679858169136818623785066334079330315815203908876830068622999974980670587616035282635391891204852578013962378808723354188963217509597972062180046019176767837564365799978794916716434093447162082356604619453589297287136916960434738347162589569271274861540595333118215001311413336394762863781441321922321909072257352988370901949957254738878043550735150392263543266106036503274983368936363197613612747104130464369526924511989007014599274736248550968098193444909794483446826348752128368718849084673317434535515775186323674993659021859330436060871763624355203586241144190522692484483157017949800336388970972611395350539106462035210415654843636124411507256551030862447974683482883656492232153758525149486774665410287358249197300601381411018418370410033287318923000896811221090038268792521219491891902831240408161451038272343810036729073303645371093057432104209173329366763263795235752387981889771829997322920497807583698205718599803262050287375764130184830899407911539072873896028954668887533882341247037668979509164116535768514545817980027220302269554128347642794475721540544775218645231683168902892587253138820382872357403260997011859493450769096448069722107737948927943831329792129496352930766705843730912618783236327873065368291771140218633834451546443007675366398830822314168861608935620716967930353698772671933415843155840509699879239285696756889761248269491560310175197158730862106438251175636117828835354454342062478988216261409805228732120687881903015350869143153017729108313986470835520721440973895935837305206076378792108250362191652051864567852355935112007958575090598926765014898269045182958348307393929441694184580101393893772614425519898939298600933055197485875057506754699442676580219421192959740892669476889511925475082965977552714265913013993368707544104051985308085932822505916513988783766786583115829540100690987322979228195598798634487109220336483140978772058008296126430135105442284108586908942720457949405695000456648807160388270077390868263128033700123616956479112688252275324543431540771488770311365715873806340679685714834827817648699993910713268050475633168683259060197661853024927070121654367495223603816132436915262223397861056533973842683682278472674505493139762551419588078895734150025305336415841491914485765220246102790408484684495650802111451522810063770110109782995364658003610379250605909465797494501856477098514707730303193386124085979623511053224906799820545716077083936611741731365264643744327459679968595342985902127696252979192464564532983434547686191047431836073946258997629361508300567454613663298879482410562967494753161916547810640577614429855331482187391517285510161751258884152726882060870367863653587836721708046067105457583366872980463220219250226763676799488964285839699708447118109263457821186315660877927441202354855683732174073267293559339284694455603577658327774292412603158581263573804858983554739312660434638191640679559698167018974994913678307138009019695581868365827937680522307523561405688394742330999571739622803202518653264566930264623423131516829385075405593908803229676614469799966622749644827583336462072230231344150372733400188051114397972481763302698017541387413704158510864793133668843890201950278359503225552578993025004249754602576635780863062695396518176314675526630325971913450807483614794460351037285268289611148567158929808927281478159830912738774166280818646047059512123532171345229914714485787226526649569797899827875566389247265277505670537159612196900627772268526350753046966466104094800442532012912627646524475244690651524869187074991275757103581867547279875158531678798081502990892835893180165552662273118014304894723191264296987255158438170567243859184959474752654051560812254308568389372373317316317137769352409929178387868894060263093048870844044735569533546999292769501735948409378036341735968588083686210259571509785788151755504694512722883476462060884635642036731274396393650996835270480852331752792184577447954165375747679694012976746149286786155861551313245221421100347180945134547688726224629015722695865714167241845933361668132848044765545256545094101553644373515315820189630190327352206170975786689284047548447744081500553651728323117501576798555605790341982855592096573179781220652243775040224456148008629042442425546701771769367802463477135337075406153390355948798503738320556847301687291731169107313289922572489756419126648895616325088826644696470657139201982328045995951704747853324133839345017071595815408883328620637821877115173301143190678523245966489614727279412832649139810184599097629627452759189168533429465325440347416684166024651970846231735206346302721688892957529323358148203912209447638286318988977464121224894567542180005189794782661371553160820359467453230763014038018861247003413118632507016269125158383791760717709320565743672901961993135777288007034879853484167809737907113492241906322605339344015738110693231056270573275452788860413820662266162003872215162943511964578769009748147357837329828564273605851617052336576413560869732740365040452558080442256841489715523962677186984517942213293041270966761051283073384483173849711523722569250771921261576602537099689448566754757849887240902063950700425782833077890819322920056806280262605287239250923677235111448750913649695759197978700722323423572089429287098280922059447527803378999791540238345251658648332953990194761942750153613497782605634111208446405700727241789557968977756014295186988232115938533551396680165655168657670986023162769046973051847138023552224149893841412843874226166347813124575940591758978602346578951159548562564986150050494411467975080018526431613751036684413114454235124130492908717238232799175022761165167638114637724023323646639481252878894104131085423815134200739221330095926795313063746918984403882237877580809780444802972380651117775117301480500557055066858165595576693544050642139197181245127260022077997055877587885250807976831180905395647483501996019085047439898231326340094685398812764381418762694143692709898220877503798982751919449858258092470019311050895904145148397339419049596077500124251620424186306021507113540448462290347508757639967657015264787476377489445288587556591553744553378857393388953789610835621924173235023622857814150191912970735908997099884976601466716374152922657219330281011335511829721607464080776928229688959368766973401504260830015363775631570049251775835505768216131869812178890361829286302835435013928182063251501491762786780347169476170400181379610426360690259363505423018853316959476913907820807387949143169815103041097610919970125192203749028502332757859039203780429130410896850370002897129339759434712106206753581413352620970503654892211003272421966220288241800731362878303162214946012306209797780437937327507811877365814460473369810344546024591600303988770239619940336305736025828614601721938637154905796722724764720308985633977394814363817411788883349225682783730737475910057132613291456610711662020128997887965070850808086400787134492809339172014958328207335646531031650812018196630988212603001027639399500204624568259799860892128971195890646220907299874282297435657582084519466421501632514789425331345452103844918292682190279994605168323125025030979827484988599064291246286954991267167862151703277080595746886776289554961067777821609111657940312083136597568779056341630336897478113400092430399850873862833557439261159602329700629809701774287375168083121498566366464264343153336253584488620073292581238691210898441330992902362804001638179126215156999416206049356565412406174074108210549706707547760517974562835027934642373201921194234819164910426333645321458857187600315744344619494377991601576814508902265189471541850275777867320295578144284430369368119734766835085753048088443583184579001007828291260108898351585781815348754940830119778228258506052911745363694519397144780571766409003840418692472060336686280153979858235269796215190532736168826419959632468028844597169863567231734185939851153011209460056076889975526432911778572569830299436751951919207834229034365249472890669538726662993621830268803664623384595647768545166191704466857913616532964133973702192341686496901911374731051139954585355466138994470578044915473911136894929113127821003326130334598458212216295946371956625825949476717333981943946079945939602869753556138665355096470190063467334664877518217646524793649057561488544507601163046522674051603252068866776296647311668232131875212313943349007114464800025888971162126204990038369151807764553663864399831731552712413457036891720133651063401132205840116556241465817568932687214391529435995972712045793412364157768575903991969313286929856863162016629882322647653882389214282002883834390796491484721978920034667393931319564505164814362810794158716186034010600922170317680261743561599827285903933686780122324828019911810752087174284065735903748498119241614440224606034118386268435975189779951362206753221839010794365793491386897092990761192844165204267409370616896551890528897129993688132777156830783439096362429043863201662358792766219694962123712379363036325733946212811745251588683761976195412694337883741976803428053796373925409266488628919317888649523500062376510474598721191476137583767528356863074622026223296410825490197457764850330778645670953569455388981912692007653412033234083493596896684079171071956261012544765866981834931090460465549851606661806136926510265841017599097629082124290074201821611720571363029339693822242428673776015114724565758743741031751244228869195078453809884423840546046285833046836875230331328424377330793147713421002530765364441970143553224393242360598686351001968073671728020057852805633400207615174381825033848946206650746656262522997445903960727227641687482753724697069911234277876567997789612316641884044373966750222718063198695537024205908194678141897859764237163732819616755624308626242500845431851364589274096190655347484097056026788917761837295394528541727440924340320072012856747587072005009695903699279983515602581190268089471028216242871732341609947112015832351509696164585240140459107251789720732830938505584790096346304370025362606754569673070576429139501943686570434717193073164243825306012456686427092881630107602131728746629495434803257584001206478596939650100660987106149770706293739500320595452329626752973082787251899017915469417900070044023300523530468620204060393738277011540671010758610841386237562717840602535292438108071051798191706970527702619072366449179711125672282633881718160010728235768957746841682338860083501761226730676900160625177853077789032951855898584543167845409719865253098697932161683882163668710052755971298311800768059804718892425151742570406357407033158756326884770821804782554090588795763341417150636791591197281671567473851471351422830142129752412266324692787280638789007487222096336079852273904550979113481830489320987538623628371619146278286154656340020079242616597761692690811781231447811308204709450677178123396196100712074565122755930906881195413815200877401381049949667781064032894921751902235700603349768513457518882334466704191104757089557295927467087182988589578257724275133400190529744904842043310787222246955844447314902316910963192803747401473767494803465346494397879510361291067113672607642779664980242608753476202892451746357885505786634096384962607710276587039050932066573621762837488886122161307534739691700249067123958196234326365366989628132496528185662187162467647720244887394528734832515072962054106717185292633317790667579808179314031510169379898095735164901888071397657343964574622293477013247878689550432143229602046884538564701869403597933570767933082290689956533182830877370915660454300775634988948872282889151221182711575116632556039253247409924375545737686345725532374557792639016137203016819196685248522343330893981278899046338693527799590937210369958761303367413372338089633952613543567528016133160741312892161506424411297028884697159658874010203954533438241110951264985128160509337931824832232932092749085626150365094371934678270830923935414687220349263319801505188068175177930243530051830391823341252457528945356071413181268662454960600970516795743410038898208732386129270494591125197551921331308955148045644207340216268988839389007620768038193303069761417841144759090675952636613348514667018904534711638358159479620310108013229861590817517821043943583378670122934514997143716730789851712436757494099634717999672666817167068128112039232608753554785217830922729295669649843678182605900871890283363629750326133080508336055437509545297467445455497372995590919238025607326772583231525519455645614332692873358082148072531817269115580731383235878559734844434623105597801679252171004640924835683396841892825095063698995661771423395340587722742538102172547677182632082322301952829387552534114837197832325206193112304487502872891527938849873884849609828591046288387600553756982279009301023730115125959791535871532395695205248132275324998640923060385855515061994329026896831070116112009516939799179048993579866933138709671813664207019918180890541412406273231841259232929484347884428117222655663590071863404663263990244315726806603754159758516108582307397235979270615959681368778098262827017200884880084743955794038223814533301694323061235651266127802183051760990939750028954513964209364342377225869460610777670881214569001593533755907671371392158024723198552741427501731545831890801926787361458606657001858246933249249237448019890198050508397638682692792436960348609210322010346803835970838500420858621781969620390808193299968292692704041998086226836807883240348043465541105278219542269526808567096477109004211567182643953553817409899423328328584937207897559734590686468547879879788310636258645505429108390628735281922369382338370382003652136762610565251331376372792404053581208876980500071703851968286614289489846784577360398993740267019744791755861160531132954525230655901893598895713567439162263948432135560967848250932931758778027727101977612013702188452879431556381283809330003126648715228091880718217714248673210264192568094684931999219124256725817130631002182578713884722454623609411065840924075578786650013070283923236534271522187822537413554925929879183306329384592376976980175829719541801954694753034289484290818796039970538805823010497672301746323948698303926477535761934424303841434879732863815120332810807639256169838660726589156270993281322624127674249343226194186721658681913663337980341378844525117465269063753865100798689167342432833773892826698588728387518702740225033448785327039538193155378876742891807622807120099353292264410286010162342503464449432706120412684068885745509676243037005955433979243822671428744736250935987876237585325489977002974970691773742660873442733308553264413565371362146642707328005770526328419846732194689467387687771560246375554203393794200775028093929082073722686995358362665598618351480234238866588860403938573266151826192479178750801887052247186668154466594260408712759466697217795059037119215191534727040399796999685306148119340889161884306874383387973925116937941102146499856667539847745079498653817877085787592255510564620025490870283464160376638983519851096962553246800790954674092548011172898424185402370192457563501793763284017562679172368883943720252761469852374809457657188575328777747137438035573926143091166690112612309083703359620144299529940032637299050347231265502071003757738714259673364690828630242990041808997717947710646993504568202806961590166586956785094668029702932959631265478634509063962930197815717183655188255392527976481937268813447562858507172669892511554267568739308114513702763685259722993184716603301653133416325902953740936019066246872893532658849927955721208814884851662081491199622949120882590806725858762257506586720942352012803412472469979913186566031151942584575581542105063894539225162872180968374644154388789939872982935604329660263874130884175374526527915894361908102939389126936370348389310285410874237320228347501830581242839450808955995770613661308341175694162459117854870810560947774541891068630931665737145854346067608469580471531635961501847695080122089419971556163006251143284337981324357918178433225724524399738618451130977225615864697461624971268505094698261936809708731398457538575380398052937396029565586907541032775419166002685284337397367865843054179542601541003648386445772564735038517851219269853096920832818129535172921783198592204206819328517497719365566205363744424538810291289927378828322521092646875635217329840351718617153047409846115476416599019585427717547033161421483291130907870330417649804842345046650739869301408799767732503376840431834672969986657858043582430279086382679044878024492536674685887899416901019567423786656838296782689299341289843373771246130992271141503717662321239565343876234470288693551641759925145985003552464873423233330359567838668686034775040173757744049041889908345350513940149792703094743553741292272784068925341012866244500617943041372796841047000049140961307202677684789107554666236814187042818298561788966552030948050438273302387355567401667713366657310817462241384662559948720041715495020250192628432091585384150467238703571742731844719644295783255357141238362073925018128381756026343082814547026972254765527518010810312339340269024454205731127826199789956376518525011980615504398245894551783774867019262484024156289146572195350085087335626700131752096461610833180814065561346691137951275554354532326417998640782517825729327291336317139820314046834323806034015149929929039804693798459528759510597356551668318321884970919163026203638798850340955473625134662548005071988382203662223412812217047032777176014241806401187490286022568404748878517427518532241219306337432299588336591699929659026390662474726023697295395976518221519951232848639184414179348016662087174210685746599476949954095702089605205791631428642895221026521718707056706554650245133228678809639189788221297909731793191019731005156297025624404284866860133101397224148223304237122545521566348634814147011914263514418108997689369609661470861767086909267372529489934659842623171133516009794364931591252541919449488280209279626765515596491614697717523150993863030048245969685228679894932038765644288888961706742924786147218164228576168361130915078912040466782472442016672398583336257022981325809675524760369889969453276606803541447878726356738447088092697884402046677852358285637642863157266695647711262387178266813394886202223534212810884384911858906596703801582401408155142827850591554340974713409196285105560171038106693951045020331882431257658152409298123084368671851583555105104599066655358325716926951990562343426747968648481320733294332647010013692248198270396663734099665730707419992459682102243336997126951308355065261760384880590792142954882158295404260733650860026620230122357992708457940788227511410991921618365673571044481853254893151472515465517376460713862845270276780523129776492177506685860036878344503982745090153058248763848978518162852916847184688106294791319759119773738642434895330635502803922249543328663369065210541130993987599365664711932293799276166890242219061577040987940060918536647335320662283547810124006470463993424991609285324242923832451005854708458568518687580323276995378128560212797882771233730992378400529239383039443118497599990777691473428201332806197769495727217936772501369847852546291620485558508013527171434282126302906026475476793890613875710022366740501387472693865663003250815696018929728122569179911492820182127904746423350516538033649757835063761646850771706213718242339802224924653980739420986705980005962022288689380843201910500762500455946313030005995182611773619026720632236402407334114019390115201406221679721238975256380023256287708122954154345676196671089247784628147336912281174513976971941210963457971316685612118510813925416311963066871384913655218255501937159480818661009666021084381787684753543081296672543120394214865059214138493044696218000195784483364220502462864613481734960036092669633656571488036799952209275006254998856533990723413502250002976587047027965515705005980165314562331364265670306374128530880663999708771581346809488706708079764952242929073009661967859602237651560370985727606970412165741897920267299666130384151802946265853261860258278899668670164103540131357331727005210684077616530257536854596881540043289672123088012323547441180076590320780525289620440657017327658675232606736484146795713215964559752455402880282266842978862338451615651491482950932439962030444587268935742423470579130117898074460507611216124883916200510207169686864539421771017430326206645717800069638417265601668285605454258588743855163694949367865564649196589612564000069690448075603268355314020795557162708130977294961608347371429078938989631208829817850428813754708497674888936927670154355756671811706990763315307920506776787925448642734741192105168342641096063216958408122921168679025382934970218772671812307590687642153886374207502537168683488679577323955062509883373623485960237522858415329357577474955847644204377067907219853845826265305601394271926727272615594536428286014900103758061624840130466008463274929617671815474938275948928329770155263888866886908609501304946100894483630282858308856175170089332466607856854147876230644904315171770893926517230800592274234490296254570723362168786725725230697125119890810389197182520425902842999723144200044816086997555059114118362069511228552136616341313761325957306139114727275389419208375368515505774866797101493055561592249509698492961930751349251921862863142878944821290455119731586393808637827603031835863925331546832962998913938515559514916532730285862561356360386982648190595891226328442976639246981809180603460661340413232171832816696671760352718907700577631765060368192807324497749791146525142120506341580705907352086898044230640222227720397955511577364890144373606581824613574412712668836669199609730501893300514158332856193322075679316392066518616670336256361349151837057230379877897646543499566918158091092634260164568670610056188126599226595210953910324313340794875808020260350870532571919340488428471999410124276563034317718308159228143446405617900029916221991023500322828615548844269248564519833278669126857988718384594778224160834303388162834118662741465224979213400597300813701574088345864594535081138001057709477322602173765337498202577841374405016495662524749125541934182286377570193922808435299552763622156484666544667630705247830240435040988961459225974640698849655490890012439011057095432294535195169219631628065276834144803056270834094246805646139744532692601321720354043173877229146792492883931371636269469057600390227498309785927265641345474701063624891466060579860154379196085881462649324384661376556156327133635892752169215424610601628555824484380187893974999387837364926566845534196150387607690825329684638404104261128598684098199971859547450521714309381372200808230361676689244912339483162626909548320238831572015234860737130737073971387882991037247975258770864126088894495965437013925569788262487494532114854694955487592159945947600758336096747765899057512406380538454091225164658250133334434531003137927674402948765236612072088461458931215873388573837465648826721934460563837339353881652633333894374623189497562294804323471476907021261534183610952843680279566432017857161896179102501612583267507986473267186786975615590120339560431525189704243058143388615384708189559851579403534597354836488526858643927097728260570287197800622654860309857786662514714895418163045553832158011914439439739616107975775401902798588923265636979803710033780814001569447917066871758395446829883702225124945833977360582966877568441812618467342488723192171804538669279632257982593413305732896638885350555652558493283816571405081164949354393482783738276858118338283776494618976516630423533887686683384597214894076185775095704171618976989083729384807290586520275265732992565040601475294991162063993764168814692549385775045716586437060418409344896733320837733906799088344281238609364692431063716883852975584399926580368304494918285475467539850799287335660684681711321351534676856887770966336681779101536898115501768052523525573222749542142947321511124910745661243957595896499943179560689920944989316005854408147915018646251584225922687465955494362501463307561275820163232977038110675711775433746173746557905765804132675932701662657784556706365318199705202211082288497241703657234174986295624683378097815068313223975497477752309345267288689117957286535642067750718748529073479944300260114605512340381691163102724604303226396936582143935734142313375351008254148940998559676812443757684431148167094933596916215820688850634170801562420266060606370246569925624244517434967868389822521746365704618276514590294451098756724026462319544466711459422510321454328559570912730874467944621984764397211258800742994948991141380359993820097146779999599518375603447885750729230132983108329970009632758706972683545825394990490564410628212565410108516376702378523243580993148266480495773291020646382395024742590523898711269729745194592722017505225122007621731240634184108873253967851042428490976357798535670454953869507810174456011460879848400120264122732881578223424036060206865184669455573129591404110300731729330319893469087262665211975029554932394397233477803003140185541296612865273136121269553566217188125539842574555262097131078749801813862568554392630553705661578732437507511054117991339631115334549481885467256010654447385614936459863625478950854524505407507320288482288854781556778232164629798247666469299103452834027983411363891877667113202066997313352683744526446426595917521380246458415762521639127804016279401808727089697963807635917095349941442639104102197235967128136187344025297475070990395509981332620565489545729353415197339652644827915850741562457554165200690308690640004308134919247887023923378732074077034486218936845734592637348104530406830134893807043698681430495269423622031418738523595383837573161537578752122085206002930729293160508938337940196677404272720116978543690920284632346275227319056895769198700972091623340070299197432295717666076280593304925386912303840852634539904108831041809560829492164029675516296567665688218698631121591035758544246265060203205736062071233679284104213840980717586742418710281927516569028204155660370784059515320151129982010990822452443426177096395549792371227000159950075776152191558127414355418034345914083249434929543437624496453668338050543380099500913426302046295675969486717719382884598707231164263285227138513195870370374099844320590949582372278852612343337577278435356897269023747839227548811644873458344673106660395235460131473723792503800812514718838024216925316361199697989890345011673949891702518472781713495240807491886938377459228128140567169329016226010274148143549073666782476356936764949773985838296720258955824544938931368976124297402548649390016160665341860165147721299584270737505718993699427215638587077652143654934121270567520481885556161403005423069240780499522347417787532211218348391249834968531548555136345096392596150129967734091203825796345482246895059667743284168633086071572529676856309547520106114095847435845425915590131264811144396612210425924389476438069255459614624274436060173465207359410696084845528039612002948900378042355668858745719277587867447137492253095948105610561396499460017626989513691169198896643154784052317470401991636869127677980465687038379845678408032797241137814332947713246705508334232081405671502578623332498284341281906700725761269578110933010587605876304297020348482152593477119504264219607842038882606799162556749705879290595336839811290593239551213805528668990248193719331238095139427569584024413384670344284080064634379782843192511999101668388842089958019095375496784154631394986520695679440069394781244351667873775226425997831793796677761626626053010729226154619170739942059566517644508822027151528151501113546948268127517497654208262127581639793784994829841735561992816450994518836910946900664181205142519127479209901875236396510362792667737901222814576205697674373981619714154544595690049648513686956139638287018962417536887606150969772820729027297723024698484793474042182350728623375367510136146806148871908428179184569433624485795424592649498053166716193725421382205598032440478182392279169504742074333475482656121217663242964065932536005242814782378440208224115792239031478766979700790978114781940705693017615202490502799207626175661714874760792075711300101498736437879994892130102307347675862523894149350960725776778056335644128324514224482167745842212386842411264673795448885101985303325840796266855152293370164064976164585952828293644766737537566625092990357827362779694924452279859879198427869143693878552865810518485383154247647931845934065570625847541794106020790973362706853584527053249405204337777517220071536163113309890111954711494762854229655938846902949499914008126082603720696627111448846575378259539830671408147427497281616107633937640294929328607964451248592034512214753283918005872616247775146737065860408408831278905553137080979801061826047185686102286270944769365512681815012125003331392210449969240631128405213113404671550397649972480655864902193431052379893957776253754267596474722002220440036254664207576559481987863296309881098729385446128956656696299227598598700507431504710172416365773387977407274213914323154808803210939323896004969335826160827550164846909225369271543551275233594066986683959960179010085200826275734262422876757332571145391282518197247647469884497641516935485846033083619173127882654874001497656036173517398034885564897410416994329642873318271171063979511687735755551433356091301692007830951117868527124122512360414368592626100060029246686390215301195266352838376180300342165503862721874310107451669480240236000125470190488661558362482867125202935763890696666239053285230281935505647075806667202226595858067248000751319098607931133593352332843005602389189416422382525149557081728831332150878809169990280937388153365006598226846786514866432967137517610299703831412130382341097129140060855991917924601884914386679669620654094964710332931635319148732291318320279933400925610412137360431840585683436278693313760380604949758870960513222034343635040899297809536226083592904563760819517939204620296469536973926289091878887033954225606507093023027986256681042447807956734996250414648362708335143855939327609418887329032271655321913330374519382379704103688614690807957271027948122159465661307345464815397630865161899844973669436753560553356283283569597738108304434230364633615420553629615830798736437876058189415871125099100594221932659345503089529073488095173602538267064335344010212456017971235552160473504221533672008557488214173097055021224378243175784106478702761425191529343449212637223218373784287957453633799881182044676793639955160058510417277331923728474850152092600884103162931995952626323955716356384207570893479080022200385450350631226432027546547611963065916586976721364472556759325479338881960763928331066820279189347750620438416049674541700376011109462657267146616778295551747409602848019882886240252353059722048967022365212819108879269198443709044519053805967910272636967896133833076080895258470165503743086804513579777873721997991604377898465421157525511001583262261814306027033214348019952074795445974649819081821636135270992691908147450990798459436080788301332234494549670950586028057662860708762221428419571569465197705481947473842259129882385302479619258555420599610448691059038277772017874641599623616697797848639869017436317182766762141672185866724617062445715542703270725091133181816006461486130366838242381973753982395112711265459701474807164593157555646846550806020269158255652556842125053263972629670534725148380157861100610026335035533175369323408972422902225291824976583985223880332422256996347125354483848304734002061971812966350889391029056900129389384185224533010505316267173246542412520009272189302710014229804517014145634621822794875514223816712709976880612107142310860137503786151204494628661531276937485669364481086402595833458619222721603928500897274420106748093889005409957744111921829491320940281220007859083069456078822623863634537755354678923965019728873811502819307074220104268663683656017415361836962010473157809616608949012278137495313780426059850622237182257744999390560464784572886881033821127994490937645760432459079607840984267989117233086009436149354807709599872319798446902632062671616730418408533982546581756013843040076332671536363349433848564632370682052395532916893494177586591588504151234784791273100763433217049017513441133857265044387917634841528671799933442788931658927739097483275513650384659865852248085452242256497950532449969861327466018113647079226427674291329452342920046495191987472125975855100624876212764559588890047237386721186457260675329880546926700922406934336949232518107189472310446163962818065196946211444765923887839501321796881326580875884807450477750135037728382455131581086127946578269725220491630421029136580480241009838380005706851107481762368341933624817804069087736338588492647416302217202826309733432681442665839003178195823927465910332223853311903215327774843132339349646395898263177618639237877663461957530997528887297791519937756049662811582416845293035182469275696978879287882205088134370996857201796773087168401597119383365295150439301207291248806273657172029294480710514657253060144210491142613244563693655386350485280823716866695273078494858727536210431943188049262775657153078445660957768930566507791663080570032064240237269912353000348496757567733008362262171495382268030134213767578266379924801545306627089748137850635567780699066832717678922747031548636165457080021768961303073494063059903553227053237724276164872734364247069121554712998310369569740394135036556879537181498455827419964835419699490172849180211151645606386311537689529105158451420977218322542299876911560686999449043141816762915574070486450319925902698823783315263373907497699083701770527519842918620244896258320904737862744448749546621436453630320818450335806304824738134742778212329331354289886130411841557727166240394981523480639362661849787526288903016953188252179499385770782040446353344471451355114655362653678728953427411607613876160384028828462219628997158009403273227019324724951751032675625614099281133331527443893253673103822255770420956306770689019467882306586862809061121715509758115306971059883111627538692090609582094053616310992677878260273643293111546395340164290659175399389979673414150016325331361911096644936364992985089427771420969921119481709016739365269664277814927870213848394488398826585268671634561132924548634063927057969920803199744656973887518280715230334075108820376226834872474686370047532083241544735252369949389485016812250348244308921649017075776339173188313111727636173773262855146282455703328472815269622939330847569364113438773198425810059234810845064195062643274409442059330091961716083699481230754957284933897149146024560795387951629012027461853530982200037291853943422126502646428608414790882798859484067701172175949441902353714889023525133690101272904466572821571747891933075293306833884142507571862360511201964245314182777175375898694271708157143249569052539290419565344678540047395443914877954536452540627712614301166600754394371593981536733247592253155806211355391425877487239358655271351576973789525021006472028455722585505944143793352942860137246695457728644318999985440315603262364760891326540617065694322825644152644525789489815601932050132894107324458529260113074489113200376300135879181082118666627383848344048795743426806793356698428025280653423234737449543096318630970416470978745430513503770852313476709579359734742960432552255208603441735558039251261981426813895883621977529945747693566899374386289288939033172066471577921046849815009516592641273545247674654081474924719068663006711354157934127046444392945744777742450988133500645292686201118533737130747368689633669812002224454148078344627500511893353762102507042297950973954728883258497425376217738011392549977808809181080441120256408239218945183308443677263938443771120422943774419340096511068070916610387256232973039445026532373103323370643966584341061619456857987870462145146958430284449773285228482122430683987005987638285043183915534162190361689810383436247514540826776595772055487044216659951775791856231921775212772030575445973519132428311628475818242170479570377328870448007832305603753934226000334260497189645896635791713947002981335956418961706905632297680886835571389440144407488049568908486325555037680903346029203984609600828133060566628116408278694712554418313645623602065277844746688975833261474163704366902225735679701468274414860361929296011410193625928341345711272613054213414073851914079311996841826736844176142167537170459593149085805611299991918695287029777260477283574028921928299335397526656370691352289669602090031572929698180472658431242984573058960173601140904282947739005203061298744481731812304751318412539814759585268974928986898168912922667687200616963696220106264953552275478180011201985403944970781688159880228672934593193592980865302057155284608289330482580248115764294778001888311899586650177564539035130947641307460595555196127785804466845365058066799870518760641192703838699271789714865211666663353093014438719650367124379937068683404297340401284112190379640892769686066816422093809869783208589150392976612612513798536164911536734180553057842183430476874285935995345970301314945773845302185128671411082639474170460560845940728600385969988982176024489000376352525390399367555014898821737543873958003305392576386652411780070704446558031266595167528913319140625336320653052731079643864943969986335652805850340048070488761193011209791548138021880135336340185034902509149892734576880705823958755091050225984659851809600255557273280375123411319074834855802616166469089420887759631937835068636131316238404662305581820438579416518668562073119851604797579765902169865548783418688257507881296820633038114017827225786117665323197455178846715735845845439433475896372266510018556520922311088054624865137354725291258233352802718725494372497301059584911616996484239311303320068576185380012176576374804004650361987614502481475832033059316101586240729729500174035546765979600886057785094090474336535213293069502510166993503277992813510862997762138879466014068735863529129065748795961662787763536515055596510509712714494080409042044688184936025860155330670724519216844368284418339945300881183778660112097514719410603556716487984339614293842660267452136213789354314308444373708709694545583356443941212150333291857050779314537180830439380923218783995549485466603806326428832197931247848915261801099830828327114283112885789605788808095474000444584415996721541996117354510424165007902976914140372385767558809287719859549160673252473070389428000950726221203558252197849147299642456929884956108206867071431703932625489892894046050969724547463117004227891310827796000643959750040763615940547989745260736275228392530848770265568700922865593789791751840831544478523607226723321557433532634166954168322886649258687108949682930378341838161909913800524030558005940374162359018722231427607962058797283739707141019149052125566451974817864573689736536406194119188060536574534442208970787445743773799913700114376951548294666446391610275008648609813136287727397007225837975573618483441133952931121944378261204597141664334273484177011782808886952405748426882710286847065926347005662095236355188645311727685775700379477664408678649844607370970767154835538585550476701689753954739105817895353848128097519443702455055694103793263500249725262054188088065790723258296749561669415645338649283348317190785797370353055071512640916898495247614474569311435034052755388034054892181252397288823802648070340329325947820687638731596631561546818114907990492736341235249049637074958176131234943387764215683028291800186913740420983487840662968763335782689222698858767065988475334771189247860306614805417158202057893897846970660862846467836126852140273631634716334835140496060153755053160435415423877065364950543038044315111247534958312194688191838806145053405135647064409833008176565253259618605027477960785654109771546112964994911383841584759585928387325504260445349857177006438863824966645690488880415571026808156577971138976269247943624504866307516168948360229097313986644633897823258390822970959946362678753216254583864244663854306320587217887107523710611237360319366375698739541183459878346024902948670968519812367638944020850283830390412614572877719846730555570458036053142652545691021099478490042945885643394738927672841490605820256178238027646839641896588141750761835026741787174643496907739673944046024460400614639399892451427168851546575206275542732232393569725864636436081350933742207541945152656044442760026227179639667426345353514172355462567727114164101188131590646498917365800470745549764070367410786077494523353613959067079548030780718424186899876090181575613771941452939636891315962989757344665297941033310658337429467266454192210398953805012655272287949275941017546061798223995636711218119079029886362138858002341772253673526880069460979163818264939243387694957757692712303582222133820934069711067560524816452880247647346698110350041539650807054231598417772254453979434355555656692185118957933821134949014581612636087674214230297179084596132374677246603298489750533788749776932512942596450750851870215117411090922715486281919701194136742617744288889692721745134459548383927642960926257055043302717673230657286251055889040211434911524623497000791790939435094084268834890542402958981624361918900936583773732130014840879445636921400492528166596819094850076003406320572348360965436627031440580644922247741350459509980262436068611767145095038326023566016561792698363684568816890840059061354743779836521583631043407930471894043153033515624249051408661937320872106661853516366552275441700088003632779401726236029809442321266733238562630182704032246756796280164758875221890641397357745086881312539975024737002853463008148036753844065082010109569223890488992655229388578693224907062740172402856758805591690629208489808108738785666551557930039639159887589798320679249799419615384602685980464846887652075203937505631559103018518252993793028533551238837960386611288232479902509691435988134179131196023366174749451639442978577212217292859998805096685230631693744204332119078154252297497519169425495725938672821514236209393094566241617315632168791641502643290889533121616537080298712211965317972087882409390810047910607438752570087610577471392523405532626725251931253516942374298007867231076975681534638977706801662873131554606945280483947964291193269792344988537137329220761060108730220674083961554987786880630580134528239950153067733870058161909091784138181435095281523337132771315722316026133921829848789020695833811580924362984945594949980024207616284247781704682742981322478663470749264971669207663777949845844980714386917488141429826179315098834045597445692407055776073187852516218046310451493120878734474894846521429358345376957395970310247346650684194458420904255218737101414450160381329931737960684829132512967147550403180865385960817617339735051672250890639352501797507263906130243699543151771531967349017051156700627956469475618681507657886209834545363576647569424305675488004377832011099401558849787526626083122849423722494646004910201965925620058225945906014591294556200770087641537997374835915703206433425834419372445781268577722585342718792093277282306467935773591498118987539597947538923287837815195282762175626134969924159210678349721356982554246906051179226400503206352112194474086935644505723901873398563130429983241269447568881538678909677727548086464976523342567688758305505143295905484647977174945237212062740630921402306965986464561362254057571109365433210607434479931649676109459032923175436088142141641856825315817321465946059572441687642441482308157041601240384515698478947779447855536597227700220647140420160745150022201352940494092998241754896289583160478298350788906921451002727217237519780625022703809693941320237884300961258582820704836369015694937713509607391485852502454068446449066227197223799415526793981781426728103862975803536188946556442635407443902888256182994001851799546820443774465808518291555348690782509574418740298254481903991568104014555704110218435777487227512842111330965430511385305517177675038439949954163853280898192136370951370130571811163846735297808463144074101782423237800398493404337539807995851472656988556895124752229377571952813336781359297592191814539614665271850204137687629708163075488379015130862513149468481866990391361281473164302687440966541605893496040211555140031777038259181053628920717827395879502965325913385080646044904705400337065113119574886724533157253684339905617877809670668348871539904602059375459239314202280357627350155355489976604249362787527396624395638069287453587635006400034954903772583240656535923063560497473908651572154814186600570211665598507009847966171300959639412060768182847769544977145666548496665500604315667190380659382169168899384113804360226563446728785722751075015425524770204689685803505547933447931453422605804723010935699661041306920897544475979176147767427677488330946979124905849997050259370655294799485371902353163335770181935582360694597503777018769246305547551146443498039264611185864661008468963173660433323648693720282734618006372029993362563367429074874386427016214495167584245497339140219485378009968726603280230392147649444178462148289385728534054065421357598439014341045636684129505833377214032631405370643509631610472369591728980821775346322651180139722145589071628528945801333625845711603033911683602997726976785910435278115116490698871271126932258740842576649886263580143485777800102953504335162277684210758184438960843893721259870230908780798304795940198286785213880637701988606355441141152311773005112019679737434290751254017863686202996626607747677889237606413664321008014099457579200065438227640053410509800434560843292242868124590373248945380584537079297327296100003426487370120376989754924636753578148483233402497751714558014853739585716002385409581240469064098938654200698734495290805030209066132017252505393252612803027030684182087339148432578031160894239209199922002411881915767902419533332571672833851259910750031097452756509752078328773870963619750548874810264293171027839904389005186996333407720091146573350903005553493100539907280735479569659117292009958048336713928796916675981000213382474240048005908419986652070336515881636954723498043767412352614957626845941076183985948195993729241263495107415523206973877120046800069766255210942326739667459311276252152547377810966061152596249402033826465256613078742736719984405853696630088718642118726147949342685313141528423244149848870593258029524087831780561179520896238097972908761086605167870067522160909228568746734250295154498836114241275982531038387997635541813538627818133627960905717697518961040186435137535288037966674583597303697115784747565917158613771532246594954987356100997423588080689802765501461053423535989055811341899694643380059398060933610534144643635822751522367812951595224955409663103433027390491581479213580956623885192921387131398445593205481507285935294627050707303936351710797031263839526510476710375120198807542710120288601894470928914186197244565529560438932715875437184459713438341835938234694858999871915658561318753761675671114170712282267802036413962711829696717611304558237612893596345021300852945247599117409091126799438793598235657890964029906857498454072865845696048642420341623626070615071518436398198364019891627694556178122622586713134325917674064083257637001122342894852146133335219066707918525094123558169890303362195473041237504572358954212574810390705355747160580145082631666810099530664078289916036487888931932998404253737947473756429037573248961210565790245128485018727873923537024586699070359520241092839757330540863987255233154783212793168049077985314943007509874474933763506462007692587842865502278838431585901839301861758175422733307173865561150899813419959430136936064589869515973530195553743013089859522503269811129421103850749824838490859843723909144857079813734132894699133493943178660251428980914586325765733184133778028734081036190947563139646390708128230570889213194406798551327054104843915171282788777851398912751302084980264383145871674984610910590004344567200253499143043900080962768713718472155078137772529666732271726763198549775538416221161994246518501692168842737456736808695773111510059235216528333781069855266883256332267259122121612650969464127529784741513970737928667502017328484822231423231086548474171975977152742944508721911486477196583432719813517037475573680305933111508702307038294928718217006426721512724430449819953543032919105222966717975004790645462488836282087942055578340123311279742607411016033772095218378794714053946759245613822641001674123690038645674733361241741701344860271176561258106895102506624383244074394193991810729815136507079259360840707420011045107494518263947440682761234372389625542883754984837240084673392163294916602860959684724513853112613719415815044471935056336662923648966490469384758988856794468597994771135761547235785407522044993074123565598189646828389203241029428689871401986227442835532982747124446539110321032891655843441880724757678933041876036174786878133400146521867685817720572987671939352115924556429043790459432014837871683283393764062401600256735631290393810540615155399511594148937781808091064247577762516346550337057794124808804772389693742407073713115278584400137748287614413113388557203537855297008805910381662397193106575533162154504467529958083063301755278295449026238868334766071099567276995875280122256501714719683457628093169588595956542045256991345501970183144385762849452962019030201723514748681286709908723112344360819059462506495072246827021509168663895371788771116640087472134832126817149953305329247140969142576833239489704492075333190092201330853922066893726607500386167151118347632592450261663560816406961438034213798619103396882330402963529695160891071873077960428518361458051433929610997341997577691162027377006301630611152162806866660198270545594637196224321205228324740295868274846482781812536041617800380853940308708720166561206757345752235779631367434055820878830691019895046409345855935229597315854716145668594779029614602536910449103381716678670165766308686322823013360428746787692869180665261994909401743808966248807367183485545397384593574290909210041205567681012346328049421176192376614955751073606593763392280174389249672239996151552652581065652290713407148647047419498471451194249635068775319604111701704694979723737532002960208320141452301435172382781594900515457448748207484744189767242730703267412753359443450134988883037959435930649259038939991708855231781205403194037076092770419146674545877498527596715192638301491615000327454667842966559225373949858637296982839417841956336643365216665118729007923251179803517905002611412547359707712850884609961972933495122121432266112270256024817321423960448360499224594084572587263048304558684082404810982431252666645785632284275568318407043976336018831687693930341228566563032965709563372282525993489723108606848833974172772595024083682509639443785202456163382484640805271934043867254815162768841169329080884102567638576165531603212726555902059829305317748842153965349322733993255958260591702586226067549781420024719925320373956422857680116931296593230324909074901457866808502664870995684209515461623763687424610351072088573581877163267409104117277342806393576010169202589544192640616999753474544519575886931401887704311052329201365528402661688792918619799023916480550290255171083227488000656268196793302314713267418188420893353319274974710360561889685876026503302909019402500063028852107795213423067489408982339842244228928588293365954815143853611735450065538393864772696864865668259598002799197307852040479920988340198631514610370587305059481941049745949182726657501672830493371943597076487712811423282146283059102519414703767368519204482591189849811791750057715799444316132473151104858592567947307601351968635514341129919870508522352107137803552148194243359477991766396440540547203512645319613793148726067682045883917530958064314577030386772530046065642513664835613777434602699156635483139256163358306415505174458726807375367020152606631281868475632691046239214581658461194606336691454540333806318490824746637329691203884630299717302199978694104242292955452752677319128480249384818297746695132898198154658046906692067899372351162444510130679457503640815604528922516240507695767073021348698797113786984769678370414305178373374934892101735737321008085435790434580018172771362844296407673914853946253427675040258698307595820366209093774082790645816845119724903977469485363897748523619115704744030963192866300481840429394053009482274155437558716798654959832747505678803961818926618116207453227919648231587470786509667182030171981458074993860232278010555319771333407432916713168290376257371189694004445565650807309583331726656256157645857413727828621963542942145856486043713872768966792212878720216930132716222133553437125009298278312670914110543471934449242917501718423608745776179408652078942524820583547408124365502493474026488805499746249466145865961392555682068304751206005202817260243836016103713897178225149074089385395994486740758190519276922120395690999782883540612369606918619105641648602061012016803172948704392253166083971664036677352493756199481228950829117005081019222737335095382769450674672984381445840487203933734351296466431100731381598399379672586613982794742544321004680363746308110190221318249745225141000541398268142606164798510783072636339925571520324471506358129636639214185468122581308658761578615699264857678411726303476689964031655964150623537105050784362311636941736840220941844372024618595236988456087788026666047439777463774633461145311463874938936636187003523597620771279821792003718916468236754625742972899808000137988975742087664532572480334506596286621953410827940239370139692783024424228993366054995916537504077049012660374245872580709091526077667225325446217032153845456745646145237829364821292047278246509700878991501117270451890417613087156957557796352214781771989127422749548790698292317515718323107831098580948672909049705385493903888525505923779833873728091223228702592605098827811816556064694912415066664686935040387045613529782420083932939184185427161679318593002110896060703555062361656308199439890880737823876537330273986176361275945960188534135439647544885482716028166777618411044583238341211995972656619076250751917896215724313571859010371322428286942278131179796505156529240842919155093905785356942527283900443897301405241634448073330023396376370794420286804662601597438490419513917086446667885268816837712204256254804035692825357634918330859885440741150082703506338314376250827346945849089954130168876004009129952076012796632694735325302572926897753444424882243274614506158131867425245529216815139066397338730394116748093152182717750352329163238091767739883138209088898370625809204030496925843584578734695795515366294700331792577513578881525206154026020263687593257330274147471329039877083996915274397635972638751616388811608857261997171332493076036709339008338665173522883669764984998457518347938920806704761197144033178563601995401901549693538802441348578739323736083212191254630498469602287841407241637979907667477280020074915603634296215109965019489882330231690872497957805258232854598193119098795045357222500804193715404706016080433191553061553632011691031134968852157460086272468226119870364584334824916623726159409688936129701976533953550031029153165951889288896641948295623594610427570824706459727516959327033652567300676963169145037377898908231748432340400012543077023909704186282588985533119211122645885728379507967703977169373131099063398509705647694359871897653754235925299776389447477691870158236980644923098022083414797639320206999179728980177620143162998636612542407995558801300283222463655962517085606541651101205640535578035596071991234769703676256540816582224044790727200447946032069741845655900944792423908032230674804949135949866699902020448515182405131440872770024004957581366940532296372565350313518854393879026216749639468389171607992098315673372216111134232937837320030583359603135274464425531721673846476830425881492442079896779902112147311792541848335754319656590184238095347803844180854066930648916069192510193673340592569816433946498641593452676489099780124273838563510711459370110936222496100664964280310103957072945373147031537635483340782169455847661105243985373390453946243264207543262929886203278443789093587930499244533893148599753349876772400638434938724902693612152212310471190422071460135843615024011586996364250568471470373678848149752620421246428983381022407837449540751642449729974832826217370570597633014162799406774551664226888702647484794026839037153395389860439541552781355483249428458666406134993580166709247850235183915159963028611066723126356979933313877818046585820391849307548453647983070935765032823501312439513324469124779387431775777143158536376569553865579073869404600410909358846311647792186466577076145678125002862573593836607551915261963165090997032799523229174739838841533657159936430345639663433068618014298749900183277761012740913718633529152692631531310461874114359935418574732175950446731645257318840524397150310553224042572848720458770090527768920703152505523764744890266035405415746424153243418029057646738011227070499707288522030390178214585512056043588041365650580843169277692609637532387207133072266636282863026190755655358223055006187072613793470163576616822868240916384271108947579986967190749146164427538147317672843586218571523153603022113247543667544889111638617152668722984605112873563104321856820765328755036907061716239122945245871217528423734943523248469602098857642876333748790268642110281648248940278457977252896025483350726036135282389590128930648765015300344022582364886283953312212575092977903057576522048039496487715690846839890549704456419184677529549557739817349781750234209088602194434648589259183107633321568691562457091575882848354850637185546022642421434439202705309377474292815763471726914200536167516075801337451771856396938912046833391244532678972687620377675924177132165011997333527163332486312008866475809316610537691422742015653309648240361073150369411325152977539009349294766103817994787800175872556678508554140088165062254822191146670707989157268459060095396643793065554705226464156431057318021106798603560943864634650671989961794835912442875025576759614283989465028942316814525015933161296665364392233790871055689354672680135938080962172899169419225908186877172929293389159992451479126099631889716692201481415274337369027863596262813134483202439370818882047032505504052847731347019626235665058025155084748231043838880784367780284975915227830149445590095398325825549578217606268309092693240897342000697500200696040436040146735344403331382507402083352138957521707381999850901556634217506586941326520688864248303909334044738905324087309110978318098395946928244105560189803876004489673241775080685581937598450660564823982380589785336239715432675175475839582746938510685541407439309820600047495658082072209415776235360337109180982031686928272375324984213902112984834385792924723515021166554219589933063813314325667916823669243865683526152478324717821187174909317291116095219917800496339269673436081704022477704346459621841125540191762855542662328359379220135371053189613706193988983010110309649019360964907859597283808163289193054581029579877990869942093133558154010232716357203266744899731013608952468616823169638842557430476115375159965585583541020487215913587527015251444655082019095590741025325188303100360792749820101973153857699947434256562108560688313378215308370652829214277458063137197607217831424183822512476254657127496479260447909137620233000018515389166433988983685348908325312442436219933304674234252158105140504336185879653227128524338757834493027143258000293697715758223006152562482351713339040434607187632603605203138937981901160561732790372552812782742016899271128305925596374313863043092441301227787870545220187956178990118196570178286677012026109172097461934182607399345526250617420129029630006408997430403855698695579245024965785224362267454623152258200232995121944590996841711039710708123833198038076076467702539722739176871624340379193926272900538434558572180117681669053613756489701172709211209795439916626039780671659007114137106989446934810244625542432031118331247843372389577010690964511463572689028997826057488022930273286159045078898233721589563230150114953511498182235569600957514603120894155487212842404688549866517204119116579835990390719746073614925380530374334600457174741770461885282646572020315766716231854272945572790331607154530792064947657694803561479433018415258222635072670185891654334501059175959095335639836335237659085393576473674269737120183545682298889640185964504342795585799463915728906217893093195477922581242920067201287491716072857349478048939095786723596033323900133707205669878258004251370671484762538541888762245609407998929982012521635380921457003309513279252095964459392451458213638194824238435169232953617934739680777653095052463348563091588474463720212089383889754991833016512479414867456420422797683611573309964470383282653821960355803284848494528548396717149744305155727441079223383692398201386217878611204772204316341030688646171913776790633661469408980846893974342863439271455316771040322022250396491973240147878098106744589029944261057698128447047850519168961602678727411538089893672382882417159179119496045410884429690087944462609051249310957665367597988590446124262335192222447344982869054093382267526825481245219703656943318100818421180165258604992783845174886344119519696937683356714646289579504995646831061145355136377676235110808213444827801942235071346487270173690756045500902300477301167418600204054088716181850776034664411282832414813743650250880208633038488623431010601599730799867431121818486572824105165958636577864479881676104664123258462057104468584228645478035726121627908154231122848028656985617057988779044871314490710016133769135121384776506377173755162002397120557720495126543826554473312789551320010587963406003159187356278547595554389964430132306487144742330051561561535396402686595623911995576776322465300430947138723685477923590787017156981367066954656273832602498042551964410676889728070942262534373309100012153308913773575170878477942318720608636364223142513899936585705609741515860267613216324946377722896645071888425103243305436190370150601553899212343674301627058276674443647603829343596995044795363417541298831582351428536132911856908895950774544377241054988064039697710491402422117608192893142023120919998265856459232046645938508019592604115923683052807903766301306710127175896068469840090163037377428470718208745241193217641920892221662296388948932302147957523566364480316742289908642074288318392480081864454639240605103968457792581681717885449920534282405149526806926599125527841391716101351860799997706196995236667034914157546397424853541365199774381046046449685332150973955883329305875113242756848418561091590645648865119510255032336688548429206664388728083933115406782642718198766340228324969670761964032017117573231230470440366261782147344598724909411213997360446523502817966723677261469053227814568106772533693469835785720138735240366982992306726057234603491574338183319261789777750308487859052701813459274501955610339921723685233348874460906453516333700923811601711888212405851047768473017122556718083942367176765349940402679387834876173283246223275726673504805645314018357485375548899905723497892800757789703532837362977417311306437369036519342383773884503186023198664663620546179368818060512159835896980778236688859344868988135576953256208411348646685849466560130208400340414003162442556040061856708405240827753027718734396511382222006517248503381947112002524627119213848205853428364476530717429907170484580765661406325958425050571700212919692734832427927794893454016467176925854565106000591741529018032017313445519916102376369096930857156022027875969777444439267250088979481589129663997844177516134137402065189843794174682899955168071814845097976813437070511939590304229684105860083474749281204491254504090790342318225848705953716250270981124678958665937584415912344421063477036932051821313541292543282123889730479580210513476836168303645138840142845531805083240421278439851324217414567874765884308133480207133612814893499508266270347585811256758533041178740197886481502531762766927368961060132456913046501321400879931464152505403448828685687646034663611769797860953763008545088103196520964183790186845869675081427134935909747110232024673265537409865503634453772682941514347994556755706831995768708249349904114913582533658381795100116437893364314392648034681947862361130383527804018993472074778099228411674878635437065158409275490241058291506010413071359867672648154353397995512658151962249819532374974736104878771462615340450924319420235877140434648191291122058374057268111430316620745035818614503332295230679436009981009285002280588000989242145665887767291386795570039425292770663685717650269984986719623561671707981655982225299883945583122256316492963034193993666306017662242962391165062342510856241430212798511294538768983082276358320996997420873698090592677708850142637009974788905913660788142269675510337895357710435067231327558286174330258104507455252587554013086787671107811321949820725017664349813111716275838981275049457748846756467495023280282590983114382268413011904584383048994134889327407224469809400102606720669674985717284468923952490184933490974938826709737243646823990322092398450852707496536377338591493449710640819451956772550728080416479000224284175792974772688448233095434370573196017407946397570001741698158812468123133322454575287712555043320198485535822648832943238775553060409127248026299591911922482404436270912383882112199868561137422952347598628931482245404148450911210976796765947756760650896166806377773173100989916124491123188770554985799664989946761580943808801231188706065418053249996890515882214237935443915484224922344104784285255351459900533580884920916750300564313443426096780739442897393913540840106118589411709938730254714787510683287338194499359740947652763949618686239593648695609964968328054885741792009863429909370003871174825886073362197423350978929033786941946434333400544735077356615483614996249200960070413562018637872832524906727474261167039004652575818324999527602482684792291919158463252509773797996827409885382823017969090549825841837452449185303790253634188933782922127059469827743504509672562627870895069146277055516596649627592548229436705014372584319814940879917113668136996055053581069379645348325535268462140750914425906126077548935964028962814323068548746221592321037574935766804381991428998439863670596397640611712258669655215786630818894548245755307567430766240561680408713917722418795091699307213869251231836614392865314772548790897350401998795552105845015142368924712050967226049878754302806329256256771858119935799770467996250079929083651377440228082434187030678871939761705125632791995138762668051288495978380999333768062901380809904954337025742689896263008444627551912619132414735723006278546020388127864886550319256422400678416684483500075662661315287763131431672533366930948989012049621831469248934051691059084776659316396387909618781909951435349947889351390646691416776274621224097969519864833233290940738298189227456170064424529106939248398609746588570679135629785606959173314504025302871962701685419181959749465313562494266674054696969122736427349663308207301176931607328398185982246105874079165113748701157385433758228880145900802109275353214879992342173939482218795295114631456617575601408134330268191988029474740706018048803414354941040296363481145584872642824542390160163980781292222514553716622529128827946153463714993977455461646114946551862426856586484596921111985845208031156861730680901783793478937216533736596706874167008489218870637396544517147557052271662208376627714168329794901841017939151413266854733848303010805822293168981789360388744279638642422852309822456679721193745513729533307603758643077807227826995833465778284438988971898034330354331602261915676036646290184966450611768485535506882180438322291494939834062298428191987342112576616788035529793295845078108629652976178788351690230132358961324615140821339746426465166968422554581622028202352194396557272869262497556688396486278594923593196406200404852863722413289347465095608637456100849751885660336278518400433440100825895885571669921108580262003354226287467330950496246753607018186226972065852361372083593898517750419720722177908759845399008953999172275133732514535398941269779230150095813335944767153403032518278116887380877495252134751075254857356086746675177733226552555110218389096808190346887324010607824020535956578220971367318575277718085926250327186299487814922724284778542721413350582976770959379791172485198135831698692341910993110314210138498918867133671176501870232516768894475304764463961073146927248728290341289412536854798131430223233521207642613740444881132372974627692606832747205389278285665672101528253239437901260742986628315339399994770391906468896068642536841862994704497941811564087913219361831689692560106918500362686969664443100724986195415921594758831560581389906534640619422890341457367934139279786572761224976466044696734532104256019522183612289535796097888379244841195018456817796149179339806554009880040600132775944342719356494801806765276798488181301737417760138096604820745502436061695839832436302160601970303365052080975864193050110901075308047658317804647305545046017650990135785258822423070437463485910424565398751375822039314210350196642020875120467273039238063899112237551832910767474068491880807927588276257098843153606082357774159146640244204189336996862680684338101511453325589142024027925924162476019541598199942092947585386518428990795636239814047914351273784367228633706140763612966135398526078578701358452971233521973938665607669430558454148307068934634365214383130781316478747125094959382417451261688376615063689372098154205725307577436307288182506261487721500100817049917922111040632315144983401205116033965914905179285536565063660509533588449455611303270752223341090110993211585574756697715128279921993392094998873756551078676430346045174694865406897982639030485756563528285874094025883851367810584616774271019083802766734247574636653081158286035082694336750040303347245778664236903257465664699167316417376145781056930515845441664557591904867262024638877576996514868486336281279805465200848542531057341652855522208444600411182513439066038569529513936861735804586878475980548841702304753836990652580731509609803756414549871767226820440399113590402761487013519352888169844665693807619723678132987007086268664662533565584844899934933203152652985123914528557799913990618132643057544224651845676210431071377621110207297428802043347218281057303536851851041491906984181092441753232639620818322274002855923083987605419970279995568782983271599208599933468700234707526858172576535348472722077170789239305753789309113288704412030424851523984644346835240922573066751446481697046221405677939252317561191304541940876196514960651869768724925060195895567134224378254875026308842900972350243626446422153180657823566883832083258023538646012005307864494429571973977400318373846342789079872215042673088641618672020479243762223420978033881340562288336189714368984642711577923976331238957542757128074862979773978058493236096013402710504780660568972340348707559594994692548206151754844576312222161218475780525308860700235560317822161155584222218412100680311709052939932419342937507773929935327958894539990988057476035408892605582763716556192886586614709977990413779942349746957548759692005679919925977316524712428024922652833629267521238706138653302206303082615818540322764382691833742780853771496611864659000485257586472282185265524772775589296985656772888512335875842345384271763497844881207143527782357240598926531870150833601733859820063999106075510017858823482269480040171498891980741971670583209554737333830731992858553866496857082721231937640587158418868291675312096192115772743140038211802662667439724101903783937331639736610007283798417895106099014392506566143068227835720923625959922446926071564684576274049195824206225076296223926828425133933041090438458898935673115287794639980164324502026375861265894778071207943837376909107619819998086111353216911053122648236931817976670794422495147176059156376976401044586474937799590629506204005955735320778095536951611930391838111792524836242729087522962153653709888750474649938380490633241050850222294139403006724663272602237499358429832725005857714328161663756808786619339731101503444088086141947645659920978904341913948266154715349619204256054827315558399544785110699321184286706423781890189322207376708602224991875335665353536320908066284038222279831641328139923240155919602401512505117210923009350795671493357324562325315777705154531872960165445024737955786305768326880685470713320829730731787956640989316008013632589569562352702213586132531256530987065450413554981520495018660413872088613155198743745966631700515161664370549693522379999001401436674968052566614277131907182955303600843381668827983113444478791643803566869778249081588961462223516626503285345427471600229061340798732175006975596122241898065608693392100851477809062142603599824604038120467359693381410703446361507853042404124837344113643015055271687968797794747771339607119418308755370267137338888553666013011323366266713147980533768323233769264099517180004276566279502064664979281037850578041850355262034435526763314457228791914238719348461784131127820857506273126557752385238049043067222474192714386192031098220752806748902895606854635165388986343046433054620770746287946792244470865889530863278655348019606815034941068628931635887734887070940693454827986888656830929012899404738491249496163996610788016253750784099180182841034886400765968349059795591602110017832675978396411308051214794197505087419672451633167463460119471035707291807384550804079072533974829709250870905661836989148578239667028310289499315613761236753839081615379760851028663605899954558654349566791753164776093651709221436787907860650460682406017501783846246422007832846153329719166844730649065014374520729114794294289734851692583134266736686786621950291715831369882845725937875711096447840073460576516579732959220785693690637165538727348263898376379719408594711355764826685466476450623790978724417230577329865627423716671807482325801387798844534218716693026539156856584798328597446118055691788472126002813917163640766261767611552609002851181645618742156113642948243502507341347165906236079699998476733603354887239999658605913225856231647525596313416797331232939121902696481922449997374894109949165517040920199280313000975703383774440851742272878065520812410518767713058519728955300451526366589194664483840946438642851718131490330994183256821730534607364465866376111521601502610335389928873169131437473002820119925055503671352747112057641465834590240833670012950057386608345049037016243674958371603148787266923656895679755037025336966604446923188518354784941704677006161710206570747021251081274406045442684899278396515353948000034776080544425633911542445714037167916491590489134547358405212330727991790869021212744644027245724065335812390018362582741962979330339390966375074694487995173914609399780478493159056189987744878023929553619237274303916513842905801855304806826081007065554550707540681396408030393313443429339831116561705573269326123865450262054059843620008137111126840235344779888898295358629611494864506727578456440105439745265264534239910597675340013126941663883530932939899917324026985469256436377523801076820538966601990900651509350740768224952748614990363988732619047883621066453619358292623571666783948605939428743395010323812014157706068229025859753599285578083893396518199092785545164046236274704004635940923912469466392233081757307547430901462189832714438283888079194239250463849716075058376212199077759964146534075969219386930566113061461215036082682871170911810975843599352602505689564558159574936373658054167301302950172878531690785672147208701600648031309732781515975789935031781682501480546121830448838594365290683467757821728208200784793696263515191174902000737828240410361839413268098718562839358063205586499302535944621085620119688254707681785656956852772922407376904664139844465302296294576248566258702461235746951678142515418923807646338248366322830610207141152938256726938414151339653173725582567435116014975578715004550673894009285450535401858038272013407598550887257091311101554819421742286257031312535573711994885781056038970911518471498711093989940604264403566070409583502023345234791322375659402801988152764937455093757965034825539704341869226706945530538729385709793305848119110497084330033995948765260568286254585849492774660682263315839638026064321284066229144219491648205165316100619126162231469139643561764550325975965013938472301251186421823372585354998402974678285049314174116418442265611323875669655474143857785919981522906448015067252987807996956502860880976632552152598211093163387805513185310093888941026244701627397666909612849860444817241306758817247496203015273899177742049619234017391180630936078339830583230470599349246746601747780267064918485948008623396823078860796429163921404725522481776113663910703940453749890998165256912141705780055036883720316031827626244819385105980290075614929097144743541661381290079563904851448460068527376060871873221823545041323505342032302812901792336551801546359995615995674073902429397118913039215884425722819330678070700277102774432757490735719756760455851757287105005538600154858105518386901934263185654342441324155373655002861201267680931220300377720057570214056402882210287249932344291412385512112987803092672697656663121028480414495310915084114161833426787789773047816171999996153090709726119867802356629574647647248189476580039026129756541869069692482621562630856121400997373117359258212081646288740522173259282355146827214773920527722870754484743467835800129924169289578998939249897703473698920526259082122879433241227891788144280303707357994396001531995602014297060189726634789852018192370548404590713509980738199119764729376769368496736002718813523065555814164957533409778421743963715697708131044793308058179150329827618142628868820952223307717340772600166421024946274543256955177809532766943780089518923096572266251030546334550679145099633548978776317946484838268747647672647815064976897878058474832972918389313512326212096707282140278204828041945105450758866493855997033265243962190694939559697961990907871301276134990954910803913177432094953833474323638463038055917859446202364532331282122034802575961540830989464599619248197849844541148587443514866814139954118757110751095878078360807894873136714135880059486882783150643353777095978708820195510204635857654991250955711413706254818367470000882959829463928570196163115396828323214003457683471259257052744217358291255499260918286295746041596849441565975857035993171417202027119614853087280479068771790702538113316119634186820927679219542998897764984179901368721916746191726595347560328700231050143490069424456513810689539794133483890529140388939040017360656408247188179526636124217687932153142512118008965640591798132581287211888553638513732518119378367303135556140687856979847852994305590930534890907511777259861170840515712575254027906402090149135409914901748399229866929724301408121125727544268203554846083240120665433335372067832973527662133402542909899347829370042167167521727968522547456443804539725093079707875928327967611459048368897097167188924348969585877171641405023938599401839887865033565474112428616130117953580571022128601493725656095580488672437857126830048234135789497941728160418680430916408387428299224669548002133690905561648349262580547046987273115458547365819110930413399316218489077069277208214640073479289488379736140328566433149299306350631627253544706845491199002630785519882675625223108059144815555065278557545178279504151166104667757614035425495582823151054296135550236793234973604901182020071474179420544289881266494011809829135718058249030004959573573403390578555827028159752136399551287269443727246518376525358672959478516671571845170362346587472316039480993721160679794456122462442839899717655997734976647882025340658555331021341360069382479314551083484236223679937863131924464814385860442990206744557632335804050939570213701975349455147473879236733538160209985769206195263000568545489867109091387178745492439205160282545901581100106302209823894985116428103164437121396895380430849224876414795104168102759975141186678599765610716779825119048816198720286183835348873116517329740632422966850236705356587915375789152257140497666790295449415220980797998353325035376811250711657805211302673870152584320223150678656065176343050093017393629050870442973945287434045862645419386637661900546906471295427929070652931797123989169502924228495560331387631695915146306995779823188204276926519316051529546234284346470245750284009030601118394794393796188347852478394656013908805409568752060516401962833877035700430157908275664259723025220029744295027501491862937495619099714070318550048582190325798943089749586654569782603525868897669083404105802586993438699615580779712958530873141210568860796655871886716929090956189839282567621102786846755936724338563234525244137616702567356134483147863368017552497621637204177702772560697414174741465090717974973042316810421900772718611881770565214030002847475562678498191888572195749655233302183894522466171224083898531331051961104541879223543895410980248160780692741842563559462818644127768408749047248532957045246301910872006807913142458991715948921295973773395084727938768207741281096001270629904991937391450569599806119022444287319182369516959885570543332912286688935504610854920514627171849976699076860626789926549645314472267660080356315611258189346934692596714784719935118573109403882404538740765636364718181518082265190812097031667145684331905006091899156862519000924433971739719910666337869303826286443946560486974873227522335736006626613140239644276861061232187833547206931161964041944669682116635139725427445018941692519629487940634417627143557683948178494015877814149708678026160161536736825749173889394645513985926462764013990435341463880192867652645912714703676827931838296822338384427418463032028466060432771235206584815826980920363291568504032866618874541979611203234902300290181046108675750484211746508270464588837870652818110733006298856736790262067431473240577708053226162016419783774396691448354688053896868139390962744622568372320961776431831655703307015522154524585576875508637125239693772133742768563853874493183488854454995509231278958395812348835286805172944593419836237839564454567769759114009967455478809383902709982963741822649817737028282962916314910956614421300653230214844192460747115229756564920887578256004747611882481214301259728218338550855393122361938583128328484047146543741492836154712018732217629115021491908490953899060422949549394913811637406412249106203662936792879344130105569164674571549306958091036034697246466294090773328828556750012380196469126290332334214257947999904696532380710327021283497269612794069074331823850688930351760084809677582083093831732052458726636899175061880069227683694600951006900443531784349285545442817439470965861932506251500009732830211400094911811408102353744635084198771168524842824026321372502005581503458826192110761476832492608466697346299383839328553013859536270380630019275606388654201970401633861129452609539435082427141794947609284071903502800997186980031149304360824679345245489176667333418895002753809590190578490457006116398622667644915867623392434132916900358169965063841536605763697057625506520020866503443991733639679009781988937681348264310984908057625232118655379369498435158691308896019122743732427729663232518014768274316245083300908889665425193327768453896946337323056978168984693876472603205441960923259808941005498568274426177745754999280563827708065214574404807454362686606543992384969307292211811781554811957044502374672286539333088180919503173906412547606618763941092672710277564759113202715591565915624927266998830104795892682414258316971896915245002526736516446610183122223642778322558255094834066443469020483143916028457992886872464008535247011746864795885213540204643930342343495960316622748859399029096274515491986266002853664875930364314405366783045993959442370361378730774814617284002671346494233351645187682965286791619625913527737746595834504746804241585565614606008347062656284152928343413820883086863208265466316808318206684314426036374163089912168327606951269980774891572712680830195657397214946173612401822781862706514179571544425514716713036345984374132717523139824269297389700534754556520228938683390097033866506927490197508930963711323487977762176202871472081733289034864178506142082693244393588395809201534799938463975809810167980762641018748221892456639247085099675127119689401847146142360639339179887375498504637723015868432094360932667551560693327461040781541132017331541413154081841463632648171559062854764459368731489050549312454599389126614381771417890038753761644405554758285005448456061315753755036600311630150414292402431401309661521640121913502250771934254092722145823982388646511942950257772512531989090913361262907739624104820148679962888668507703497438280495992464089785522356796683845066795747368757772055144690185509826084366793997542226439533852161242545515914080268817380119405936080285339112689810672408445692289036562845164083161048719233810899527677276910031247288767582805439501646116723401978594845648351435622975323772075901708177542077367048998148316801776186828278471930285481501170558326524669452636665184714489538062393957660871666383790663294491195915265585765901098965369239371790192465156081593024005416259998960484373523540922252939170572922706612029055295182288260009002954308983692886253708839491936453647183839363666638854637846984138330209587635089831418194227756595626353149810951831117229419803961386491005012473317438354477549938849368240161253078775987269612357653869926024577817505953296541986606700219368318379534948008519992199618380570810914914827889135998077585861779511043458603404376280981058667392810255033108694902983457989188100345095908372970495523482946093812549709675943812288410638986860054677810368113524609839783683324854875126264744181898674070613176028533311390098796086822749405371242120517810651078515997526977046919209333693724125509719564426395121651456632027909477828132037663663407830109530493681941610568419743864417159781808301308737196404306063739954547219737922680266923379333947150452097810181433057850529117983050552522267134539397927095214148898761717217311366864000887513100244701457646520072362377906119075368454752801224390422519224666540544588508930605652467075678335257335335797611387462942953368104004827794865261646842364971914894601116920958553479701059123738799944955779933899021105983073539208824257966334287125730204700594453360221466323946232715689703163139758888248459242476681288336601828856044153233099277738627434813944142517078634641121004045160229444930511341636774371874627975782362676911812458050963763537439177419145383534404154467770622499982176000556850662543433037305996838839701321107438829555808201614872635651162018553305271826196071107424546722894858917106329637223003167522601491423604376241737454544272051221399882778039537707564963693224753364615318713620383486388771424966457517982322831267622538856438844967009327086277991670497243321087626678814461774772170817271934537768156421097830434305219051038380763676498560700821235634826445116502457895837631996851461986781535502885543223865011959874031869965043431631528300590287165503894522493528099526095175397772119465459703402162296915526646238128860948574111868835923223206416691038295162138340180226103165351474057213705907986641427562245300471757413715887387568622536482846015872882476409334218594847824015484051352000932337793779880041127457378261647759591274900077427660000238996115496063233266215437437002462597168154472963409671138993561351215200197610681285908570865397422692681980098031776631715738740179839821714923752563601694211161927517900407291011530247929503365510267659842158057560953660996092084247344343967917714360526504309454574085079271643940237922264730358628595143197884257144221442413540433495215685076678698040081866703728259691868885245796363670565395078513130299129430845083168102579528254286782951955396625444974920117287663736484935612473680891488818947957489873945830448642441054783178969527212545816445075077421364690074154927681610982345566798456721748551553482777753072099631849388850067794170421669673555680094199563210326051933097128773871261283046413888055744640657408686062038243310305299942407599982930156211168966895320364056883774728119953707311125196683677848932191122856933003011653089040605141999035880747273615875919595258352068925984425034117113312705440551380144102688493755229056183102151150594303404658718896384844705859362265368208334482960222122644424256488565159897124228596779410625873196719350211840844547235050267823125410117743535667116591425955269302673396403240028367453931792117195999936359026935387811074353592922296485313625617017000988526637346612676242477732040327776092906540797684326383719878105156888691350574456563671410756678877368967980779540502832433382396687524370985825296046827323858649372610792256152658880007509470990519573814181381415699291852602409475794175768541805192134308084186053669718696419900246238856844925935597411200766688741235014809924660984336539739891396834388198986180879409906158840501964417520100798657505283569880526566264227340061474257163995069839230367418765279581431247367442865616928171082014524744602836262657518319287179759459358421275821315971602511150388570263797884588120826433259405061839371653033163080545553724665948269028675549616822906061742684763438290257420115031818928200626108230264380358075426238899482179277917157731020552769615790218553677531461112553065464538851884545756783624786977155939838635272893922870442922988831211525626787992734075765437439140188316580710798922144507902310050583338993058449013537128213039836573276395076939897286404774140037136963218569542817125404659387810573119235221726039398716747971739074239584917280226296031279118527160347443164856207455235050529983496902640586684107948350512262750769088584625767629312164998719127363536538393120727685023367801858238228255802675993191429936963608462439894989210891960415041049047889524904472277245456759473091561395898901084173282303248334666731514949791703212665327906158569912508749946434877351680614294988996295742468608022567791028930105858241314273210972749838083365934686812206124344375807777903735586626132942125070980678446744035654300378955116005500232122059570049600662830031008882350041452143526567289701146215181374184334344928422876671369775747641277530027299579627809782371767851098919352415694909491315193305666657348817527661303247414240408894876943173061103376950878034746864713698112831978229817113156376190382057978900598765658209593123945265911947938975786663022198917011310412968603047326371763411380175272692371176709633976276367140157694450191500008064565962000198134670843461371806864489607927704518951292905087921489692750290081650924915130582787986060458487684407708883848689241681695974720003869992532261448498644201412292592802293819252492685264356292167539579029539529635211211888129191789970732259165984974450852875256189878770595512532174126977385908816183163803266952534440820311186447080046691955865064861404217338354802636586138645737996044631208025263239239075720506890319781362515038970952122001809420061787081003580798553367845325306844421158501812691900394987023057475178523898352304455311384529017246218220832678261751055576777210612477122213682099696464789955731353165299441323594375534780960419969797325032340556898786821980485140179224681241718273024027231659225599172863799827912703037625655619799071746923351566488898373298005069212710808067605452702774938072765307705300852539630154414266400670901718571511913640167715055246091435646803554726740983496537693045544090811923501574545221752055685745637435421844235622572709713608478114902842103970187327908893357746522672407107049516199414090333829685713417914942850277261347193853888579770665550934413192623014009115078595123246702842586010899825356148457795541549439413724629641060497691316420802488626014489111034442367701670729898441829205208295300667425510982667475502978466489520551071418478354052833305518147490230372288242846289863191372825496229570142418721774219508023049942321807495011251153748666658954476869370047398402631552150188719431450194253200836549288179110276188561262452280915031224147275856735074078249905759700053636681263562010676529061845168309247956898530640843937550059044575515459505393758125050021982883168555666711435606700309812180098216679422998021433532858286278968497764333391596644635928114972403488640574999278270864308315142937604851595067555882847045521919678346137540804922118045922962200239311587078538777048689730215669711949437029042489615968018405253054704417089118077737763203251308261677207993051874766526999577950789483678730998457864857343298132752608659617042339490408934940644737585250092685352041669302058143633395671914453464307272453293315460188034269774113608895746556525665878193696864691551973670654893865865189893347347232700609820390761132823952803091115884908216616954517040771513951663439233158114141904367488407916124286634532274306215372525584403896365162273664111259941220910894572512685205666345926729250613882674569149234826784069464979596531085594780380967135409856527273149094768724867888956577261862474366954054763667187491652463695915814798875799663125279456806133483270969602840515760882734931141843207817170100539625165000582056000644522788182166066316969042754996187784712678738751246526706711180271318835184372748704960733380609349890655384051827172336710261545592931325535502023901030551349086717497985573913378215150957841060498201803228614022986961238870690965998974495158728599494369951190878872682066744918957802347459511157105791909221525915335677515561081170416055697366313534666130120378550821479393840135643156692799180848934934070396617055982394115152459524007544758080171595762746721943873305975769656264056542312119899982534738174689808072383016661089126796629292609837895347159718824906538427643716000754121494419148864630241896315579249484839332789156806737658160825468514808156104848759781409628154816466624920725015380420932534962052035990961001836411048308069939217682068166834049507045586990664644085020471946721963758670832477687338285019992684401023625451221088661728448087953046167206710494226996952187943842250682939226265618587381907263491168364045773474538866160160370295982915667363025402519530504018336114902942395857828230177215246808419861196917504371529525291928777677328852313345898738552445904887990074324938980194032914277169619515228725260620326699235326975434843899616642528553188833508603110819355873104044245388480186193291798955979665562612947931486302193485266411876200163386988360607885943413914276661506912036501084078109235288170248261659903535116544145596499586079011447264384954572054914079756089890277152606263539739113046625565885822761804739566178360837508761894572041719049471368555248982004557329159010836370256498057590638278974436827413796631362494222152516656798196015030874362719732138659933620789957066875998591560345951767501740056689866911951030442888860751938363206804482543851473489571754379656113662330706443332209287918492527431198561368955222296725994229124374518610223809049837332699140987764584157772560975112723061961269269086192674508348211358296559573186456143408694507863874135331166007136263802041406800582652305798642366061468863566339772361624637872937227027459201180100913106672331934078639970585682957697665156594879253878068121786647099181404591264602673160438707659356123848415543057882598704187421874304379999034524379702786306445124304256818471845825024324994074205969365316792610044447499722242795588989515469835311889719768302180750278378534944544683844530639546019349537485288757097213814754266624806688000849345706230637461146495904189304145065939012192630164560454868385667330145449568009668985128163259408235964863153663161000439765709111982196008477687852892812289731984034504449076454313580923203906933129431207829945949493996886082222207541661925884628143806355514679520597691495859577553684256042247213828249136335426189839479010876380814209725353974863776822890037910767827874088786575862055477845958716990224904777235225764631868246500728009625935492107023468721190786489586140759082199584782197896673303201769823764478034206592959921279072403857803510922364799983995128629564986805306738736461091012970476416135277591000436537240926195205254678680082716533243293583664684511229376165306612603136233162245627297132521912658983768527555364551933294152783391465242534955121152226153180455923042731226395311915007040766990440615939448484113464638833660281297112525139536234011645324223893489661103384750203808125835884639235367501734208769389156255333316786856810893659651366589535771412956206025956529355656562548105192504892991177798371340179082115806108618296011361143213604576939820646001425420818184366008441547438342964066236057254965000437506555041604705371960070024375758860639301449601542857421686053127069049069919828767231250046430568231053685471317401634223865250369218537470608059752947134971401091596837127561330214342452376761794238893468339162427877476824401078489479600516860380089216308971136291288203567578293975063188926595657109776567458738283269865045134331122786474886018329274141207919162883342250533556047116372236634804215638244308644058907861442380504732594164835823645864124528715789879094294704617753522315287217157225866033868065361625036482537576813871352038981189968753643500956403637639199043531113816949540301194021435569234587704741361516170444723610177583414486758506204776974583487297553623998560285600605731821757750354142341489516014343901685876006513399469593556272709836107750546932908236194006602338545489802843560293827490385185682402568297546884515401038577611674631152099922014448611610679551301773198234715982262870761151792057741717495719989701659564014632531805861947370880176739864529205363394142999267813550331926558875076606262106505229278895350495677177142987143806116776086657161729599656534457199430222938409406159023441414414364881712521090820684692959862113814172712139193222474988836556543180877518111886418519099931759590773545615944917020547511197823851364874663553824709234816584870732933009748410684187173013026321656609154705545653778824694670810165316630720278822260694725297257091152622123960983947901919490220679067645752828278811441229964377571379101150867946070570411469029196318127585277930696326391433612765479683427311509593732681820535257936506035087283715786073917860313794475078270466641636027679603434080086903626916464368347132571594435656586587144751307492749972605653513609687779350014912849520523852820575850296973459274330107618543013482490459085964829640099967148661434921971567728566363396959394811394406957798811437380389316785572160610302952395088951577471522971498312684066164521855420764232722772560622317828400363411350877067069201080835800749269427076744265679381898037060563526529470433320795137280173609961086784902244916293005888347038844452507725470537856587440375705177320831360510876998877065171366394821759777152295350088043984869190280521988949383773060526506168732170769010496305006022955663260847954467339636810492689787930798841645629620570564654855065507939062641797918780223864160668840573730687767414068228855581418776022072858890385468005742323069404321614907442397758814288512613753011765842332496975264720679218014222304011248785396493731308523071419891408957523962087525026399183171554865176706546975152969079483797030829358920724255221311075124742661731556640246757964203827640389882405894562034871382632141910428060313807434567135929357944403134885002709634544583741691173098976307562424194999824103341771299092714636954933815588809858119707132699321870596271886800231763452135416566283292410606448145245379046729574465811904268964372662473126099768332013649358840798404461099791797101482381861298961988582960474555537835161390498258188374050899224679925337936524984369442297970489145351823053911758713657553632783698184480373529747167197194333775131496594002773110807323843627674922176199097756068161726234897353777101199705906863618830205425824827263623170102716911154205078374637988470219130060367364999859536319013962455303097317716424754742211722059590381532667511560184811272908136435732275683185046894591092681432871281857676023134607351378715363117019781354836637229708410827049768060050956563626085107381429600903080979215885831567765417940744503831963447179623739911658963750621844341500538046839666725904971767914233927961812313416615025778622922747727189502198095377630439853927546437437902228762486808737364602266616498864975213008345103242024513375399792585727042485778652343316235317115154066047724824364207457981496156060658532370488580106337989801655630041274686445950748810012351408320392544737877022786585516195606355274744829335516527278476780419069408265619422832142484322493904008892847128217205089997077384967767755042617529373004926460866108923280027901483626229364207903791427518364267571189155527996898966350563031136658457236782604518981720886380759077160226830570631977955018270330476584398243905682274395486603389482534656637563838853812783078096207347967943807007001629251770441627350271015516648171564133984710800373858684743107935393969698837388222122264845603017712613753631833891984967735800350269009291251446798556970968153590137344652347080263181306205741646211683741586923075957720736921929294957494233411527741386006867914510408007654792087101591356992754631302292390664539142033774224586531746602434223430933344292017678204983895807562575504886160697309060143759217610578883343905508026046263883698387870196389927186352361035592646925377336106080829475329577277641441760707402544793025483531568208684914414850574585584227333883006722273589502187087325665425318276394218619785157383301936022085425402016934402495238635554939045783079880734732065330779140975127226042536328462703320225335890717123058516590293412419533156055020440191339785020710448185355526750018826838485156538870917962100812743607802210959589190355358925663976526805769556856159984533779952289968121064776119913436158151623173056247064673958228677823698185627681488835550888498018449479132472719413859862748426261088558838671388019180609045220312950048302474744244183244609434487067147141349952444083613404650856691867546050351045607287015482128396323611434795135399965454744529785042899238555100538803125576021703131000334409243133399296545250134070972431192409826834751951668811050420366034154355328867951342483551971695389146651950206877904216036202600589407604318075302951946300149524671977216053548381858658282246481567856944311157458120203812804262725215649992714428447829403563350637149020539733449572276199890293412962990946899479040778623021086137253727273442132581074866649403089036880937054127343374798467344252154970797243072677688676862925953355516985304809766923372033344226174709911878169154015260836434199421060785366934450464705729799779668466368577136940435547534003359738778605465844706681648505767895260311200000661830389869211995949249466358252066285664946280813951148450993349350377735094980539667326573245081407281986940068305974077904353463762403252092394611374697704729162318505836830625589741882788789963103334274924675393988038969093230790681464048913990109623409844082215291477462775304928607528704194962640486036196262588481795613699020771983466125103202159832656027051721099156114431743302888181337362629071282196172618583414781950721546381044718967824307667074841708054177419865737100635389156757958315246345613706083505693506040293291903853163695415095084464594686888221485147157849619302239850051013412810058655580413131897564281441185359962479858111460774192175505353763247785606189925319336400837317694481008052972766740441317149031988468914691328261221166520060740609760976929338452728179906319203116681482661239644389778458378365329954449705176682987570150155746852072104773116220766538924107575067448842093808973430894690507612528527166715263124674569140887731976670529953946497306773066601914812813353859081921228419916277279491911189236927666341170253240480174270070269793079908379175406166741078376685267197311743875244852828072812378190488334892900815784289403458625400419492987921195554376416772310993772193146453716790158365957072486147162118198128795980899058550421194750123149590178490309207004687184923062483005189801376797162482774123258998824640382276385465696241996764385397850344361919145922448465888781864917893486324820380487737327309017902611711670440812176361417211408624899713328906347545639678481835367860382909655545026738800991203906092611216342148176281651775472203547546228985535054332257132260185890291361301298574823289011347009693689656578675420098038577550708869740279469600889905808965516943560306426094106986681723808479702546966199330648375243435121271844107932243854266585794970347759403560082630555757290936674348242281328131216329323669504646133385635328780223993823168478913852461253561358851888067010490090360245857522284443979679538113219455112567727221504181085433186216326586476383987772920420686786424187457965534227933708060150550729489192448582433116285121659427807612862628672193755239158121670624957845570511434798812811024265431628930553381780182013199983568174335879071735919833750906734733506473315437834399071493661005798766478978289594821725917080431087964303919979932310463842871517126834579030835680238239959164131574961735374466969888715569680740482773252688997720104896770526526858776115215933302361703710707648903750051079016249982630779512427170561800380808314574684597328310844120623529707404424205164234656353525148986436504578022370018277179050974955965102611809485952787654237006374495687889662079483497039759315144795336405628433073683049979650151438513156157361286629354228478472809569876067398909898879490603905822948848305763890689983489411833276959709149983843635396797528819618704014894568014894600675327149542728349922055619946563081032770813599067072698465632257835975035322842305988697683949412726708726356223498375119032947274651096798124044743117985851179685061795742933320111134826986987640787074297567101319894060677643432371392140863836807894480932932527767481031280451224418202742679894190273340184910618348707931168665798702396388665527574560369321514128727692138147507471115786562499462188644219779474901250422272828585989139748671781148260561341435472149695498230265989466217074564136452811641257439598080453422390391195233534070460642186824707895006333767171932445987570575626407051125027839856510578560867522917708558735092808775820176552252486545682743305802795748165135410368797435335336697603521833605045705708566669233483737267542090715711398052368986021876455696275044793432113734597674802842075604202415310812375510189645012270047727177900624019468208883768959515611230939747947163993570122224276186443964485480120096589563360060775516257585304799981511945747017054238764877572621719303488103036524187750432643196752579947720404817930233124215154868005653750422628469020517895881405950608848912706747766101858093848842650996841774139325362957282284967651294812908082206076731868343851956664484312571805738322225293387128312788591830611123343093657427946192790480197482405045678755344837660252223286938065005925519959938112789473924699658923733164511351858970402326382496882235726576794658075407988440737816592735435442605815512081366457627971666115146293690234078364928633335448024161822760099783388705115461183255494498793396668002681745112291566033466876526566353617260298149018961368937094198320662669706676825275529240935257377339383864895337704013424923208796579201292278656198971888900222608426087899499596264210797656448091292195842972002339162625240597004519144622587635810811401668349888251445928942097760925957689991263930808626724278963779532226839600771113245449047630538193966970706273795379199791225360763378287349626497303151861674907937226468828877178936878061305881883663807897685960502432032873528554051002802025807510616080653625288953174747108919907325944973761277804976250070553838782489143054172099821856105818100077755669362019884631043295403093734164834145797929590491272027961822441939448395530383461319347822511090121096855307449440204057054254011423020612963240954992822633436220124770370071670246692318299908127386636422812295563187330846272202803559786536338400521821796817734344278093968669776905703932124687909957730620954311570655073039345262295704250143637305721843869612010327101637191282807606062455909032028162284343351358188868211254623360395379475534994822112134545432445740146200986249905027930397349758665908896181826930664945404609986873303213157635694962789823036651908232628902507482219791543897564822093569375075637628975746971576251063719023162572931617306627324074912748608488120016546964942652926411144979556517612686664120360246834291904786890797259546086483499790152705086114211621110684232312840868046204490428273971883257509117272757196034834570086090247875899976008128302311989990296194975755238003215389282481523629836662608240701449341347661843612405224004866055704917770777928392974102075069937923652722001913328014661693993677621121805137584630730622848581164939938803544937562274533289953147132549149088028304754607045446786702908791047780722459963846986418789636065168618408553324256988288680733318264057659809875994396461508030729025546344214950200609137975775646140691065316598693439819303902014022704661623274258510453686698794944974568914813389414582498541972098285874828572927695408399980405531218461028778755200995136508225571848069469771915930481380966083880278960288600534879509217042459476497075116527022788380728002076737592376839458111904455142253188174749262412715819459969673942003305832203684629010569055074921508842631523772838409691435963183143289164586657487245159563216213590999262972726898097829057665150305532623968522384773358434498902689832604048466684047166600856149286872920609858722120585293583655085235050179346999573448443827439072726593799370738221892516495397849360729328403904503562952218238177029405518176837113244169170660755448164528940075220512426667536413695546819877548792313990698117456698078169994035295068536357889025363503333135862103475757222179534310289161588877107479266194255876205632462458821276787739217674269408562310292414855678982553646749608647954101104178489567970001094691722492342688256016781382608333138026236159412506685575748491311122516115828244253113888445422631581764982045312152789256119290762300553410015124347912251122819432691321150033714763806213811504086450293051688660707692182677772764348750023919542015805714048382004905956783847966302462381677270146027695686318273342473242719952620148220904581845488508643662025669821830231256504007399673546887594759437579712776813340751647067739123641017798398217844855875145052825208257207753243633824916361797460385076527019186310239464653077894723412094492434171357220489309561078283971372055007377926345213239425020989322692218290158853145352366203236426147787083660694098283823608296147128773839510593017573360532135085908285331411889493716463480419848348679711973388522162916723502778034144633359086898156003710912743491547730389415937222587968353757404176002047407348933735951070568722947349421489137706874409603875656840376783329887277887527723827400697206190815253269655241383599243438499507162038678188659480975867794378021764185106895232625383556268937548784004878538626897520475349480777399871116301706870966514191845938173927693557810205333006544348978941662806702456224289137655888585393912809296282042710632142289875288260324442060350439752334632272959040352608178886994759066104486906393914583918747229809375758074647187895484211950771027491883630131398250157631370261631444247398951304671884566025484458356089057013917605186229540622332850845990672221653698558454830972073522218013495956104158362384537106630077427212749079735726059671204800554943742263689472134238206633641968529535911259760729315117525411930131617340048839833542239987873324996045298360091817904966025849259291550437371213123991262269594322443289817928256010735163115682906798870867573414915797934470522265307044237279117178612230023727231898984197390687630152338655909841598963025587393025057444081885595515058215121067611778698675376815088461546838958154182842176942432974056944658055408518072411631624059970314905324772402978608056706579923507338170820298205131920393522984146589558394644315978272373863346669396354432231998321274152887404079081446162742590611138975186790269726593317712346030027905514209006041592320080466554881005602215059230475695864155797384513107947143220821492227532961974682021919619452149806389221566512208798025115395532812318788848838885964926498909209243615298378461902864463348114095701682846681600231145668632504397843120361254404996824049881046383022128161346622997131856519051890798116770825963795338176069982208120103674634608064828478295577221892655863793758877179571907506904060020507504805505154623083153381210145846379034773869005831326153338888439241974739694077739098486913721751659193199805762961377484860737237133258297187646995060698247455197063803442531968301676003628091294390603890376880549708000789223947591411987720346861371475095931726055214225341544583722412296225356665252258155861228681625702407604959960813235184441092989566122567224779832980975802359344574509475091976565224568007948153477503510876664281311573586967177075952269665026002325894106702001990922623022540714464695879640761803601393106315519709262207402252007735162395214048230862619539863275615334745856613898448926483430745700100014411117728902540938654774319246700397780628948070183422546645572954790805074072319770095670085884806485685867478528679604424894644205959304660574923752277365569852074500924303893785202516110887194841163048262977400860500680849691574396075849696275832875720285112152909737143756003865064738603870446838820805355254475070953919113340484202650936185564797080963956794691591316397272867189214755167030195855944477812159903180006574271015932316763972386363417384117797095813894120586896447777211722200270119613169292250569072091997880862642513258310228909779193311447301080517246886325721960094974914026407684188745269701392479530374819963892416226274479943954622910237394628893004680257696849509157943002545636089036513387304775350995998603707622774033206030265571670165492962974833795745932367828580353715565548862199211259000042165292445530545241553778267677904089539878376715644870879879897587962538907600966642190501233473470267490865498264413374070665376801107476974135423604136221667954197003887254887646242623038546834514127914137978925316218636902826895414616092901814393811434085986304256803622536139561435782158247321416672339456375071742633888756032574531547941784573274613303613397653167945888976978777951499523491737592129749223944534698571157885523439431286133880684846301022950994777263465811143108898664599828151121544569260995402596042845653768384965819941533895853704079063090760225020277338002626505613369227794483169828416600071949360408620381401842805632283190878302012009350646584883861263042784053420419543567870450358651954480013019869673789025800870245344142317384730561926117202363615678131686108755560171424369985693338191130003032458139601394227573391850536165563474506636282302994981547429280035953399746073388147854905309683253574758409969797161940546125053361308770524085920269485774756637894782076614773158167384778829616137902994906620116686840577112170986644869616817362857891576164409367253389318388480239852668729997578610167362647241132460946425197923087799008863633624973669835728606594367483824254051876509946255406171880179381807978523197849647298812110260160330903714215214374473729445762290682545892271740322825655776021987506186832543572422950979975021009720292069324121954432973921168025303836941245406793772281524642309952807907305743718091212973364060691460099270610767577231438622351439249342426058585505046258721473736373088654143392063340893417772939459020380087852739357474415030621308908732021287651795249671008781797381249112815715030680560701578649460117163436779371782135700048104474763511643458888619336552889723636345373904938361599693485824213244746817314109710331312492044460064639906946532838172108559221863779149880243877387429566053431391364719740952015016391145027788894229195724955460968903375339032140262739004773079107417152602783731618076375026381988842991669939122545729394565596523642198967379755051338688945473297748886300201730669134524835999577218502287301724773770128020086868397524649820149488705402185675187136507329518424717262906077201217996008855751569504061030815863091765789631115635264551684762789011850862531062419828852983693594694595554013175789003571531495142897725521723994650081764100700614759698756867662071959328812305842370762339272793273094418278450070833641578198084799143320887679165939888889995983703487765488928172848431747052105825735202858800330093305696867256939650504768695721743022414146921024758558677927662590689809373970322295267407730822732327665701555403420811616612253072140476659800650560838881526012000113218670086574095662465596263725385894446748511883784385844947127761681097222229585937690349453658679854311829238956426717324930515090585196032966005359112098954430904866214323337650164325170595193640660253518842449854934066563721295343812472813853821191239215275556276278402519250264197805201399319114393613315146629024396417230633523101490070548722239004472923852903864653089109894091093949531891867666124381577786952523504997734827589839360623994172298195260167243696617353006440808827998943977001338901820737083434995736540220432212138742010318236209044791115178635339116563972337829354643432868544905239214238519050703699344504535098634845525317811208991410322379783149491982200690840639277916354847196327373534453593075757945823863270798378856901481082236215565288809609962350057153435476549986910387576232429973998650994989527881875701692709944355270692063572108164582404939241416227313248317996551081581658418544899085657908230100515791454923723934093884486543481174389558122099437800366392023613704989411496848979041035016962470656688069157638483440195478402553567743736107804316430283676746800227877081026112132610858730702215764988684214942935262124654699931737553321931571403441183722294166704351530180241479446501662005143531916015807184745543263819912796389842604329426987426035089101497982323453512249584996745937026182889803574648824952442929212452688664639418520777191177207467910448477097173491155139848157705004033923706956857263501676741734259151853866348962072826455189446401398604714001960929289069186837858366290972064792023589490145915076989111203684568226262304851643846551925002518773244194994998063295190238554476361741917393244196394763510038948805953635589765720167648215134342865654605032316773130718845359142867943643258335923219030125392511653130136086858892114836642073790295019573746801394799814210896580045387856072295871988729424884630434635866849779005191984223729190312587365334209862413132676374073969268713580170075147381455311323347445066101718208973332657645165387707692417781835141017603225469395079075239111196393191770946423935090763272425851029293964075956232568734100197909222199102628217428175441418665655157249680378226480328706129156685825749462972954307657846697418758330359887480299937669343781244651802540761783848493875334528870330282400599929311992062754133629597875453833266970616675069112955577160487088224783578719680443722101585542979295783856985123386643258144374447390106014741093377479021905009236235704332433458628690699140035346921321256741915749915590847692326045667680032418960139339528286868776436436254957327141133074255522174416376846803058358844197055153044636360143899567311803020864440959036627380432502940798579355127449173228199121532872269127796742571179544717152264625186787445693360143947711290455277520805430305667332830509547692152923122767071423765330589943977822117219820776171990244499334692658164542894907110359728685487257948706096370524298874979848443076839275617881250380075839214510854933504571587713717359560122869171469462880162074867791176501338172264573680476785019952534436812208227695985027114783333143296938874496135041940450473939897291109147791566731073858453883231599040766562510513201113456341440204204147480164513524179321402180248809673966773286953170341004203332496327733892833558068049935050452068782310444105285388297617068902030649459214415354995020045027304035140825647610104975218098367914260724923172854437350550264340886771062724178224042419915451515303538994251328242057187827053714180109378630316002721638288297849625472862647242144909013985840495439699548191880370145010923498793766902575854004745948865652353023480975568593134505902906785799932321808146592440202131458080566007960719766456676927074062753576499091199355667716786031973244153529238560845652078450253007179056185479584087835664132872841781696261894203757507641920688030196618855947606408330635625061594265146181660764292236924165637514650250752546903994959370515079323203435711056565007808863603775610419385574146795962526254240939031198885712646934184753067766013813952281992759958375749539764366274239315899213169580361513722145973845314791672068381434564781070261579589807513511643942683217207869268709502982270882703964233834014095549374824275134600752333037915029728655641853717642060589163017595817248886426768466260452205652303576639713298113398316763099560704676196362883986471564707455824129020976083115623578907475060146030552451548696831755447180844192489325474192208415223097967411533534979318369489688020410741631597732895879977711003248949854683180156003164820034402034272427817620803946181520918704964771287529304753749014878475315098114189162677451512307862431144748094579890955231368720004778526671715370723486744500495164387159242369727844576163420993349225373549299483724518172983230348770028845920808504657307272014874675177032177792415389937165131011429590533087287913180586763786066970731182877883266318848943203660530699755061768707397665753888276611830847238970996052116494141810594879130506430393341666211895538893832144537719177698636059156793019042501576938202787847748279566937461391704424122365005593269932117306630043014313120754405477291213562038783968328255935130688366657667476962130261668698117728371818612790096260226465789658073312814400710245190568791214579902157118578951864018804495839375157193823774567792852784897151752219153974652196915220808643858071863606160949630200143939777136691215156702723384880326497009995117310461550005852333315738396516987832149766404703310614065234615156102562135109862188002366035366741813370689791008290358071904493106035830755158907654519495070205358394564809781696229302985708149533543878166667768975081025581025037509967243023982795063690299905162922680859021755687775284673445973486458031916689130676737753281305219468375968653495193454663644285388834771107190968154325362816714397485842255703229605741388189431609097795210966461601345049429891093617871005529449885846872837398917735797542781756198244770406080860950944381439790216873455954339223591698456968801260520949893221283555125244796249540531651680376662520525575964684308914585987593807023408453371471610144850246578648631432295952306990414590173740500150622188842001031308248679301939278478942287988704428420092971413954526132477334527324743011391295308447210904752063473428994426573027172958686312272078493113238662699141347451718506084525808005327935562122445954649874542729766369512726987077879859219764324860849207526278352589606213060607474678772016162124022151024997678835496944790339471016127160024295925410045258440056126087197476546131677150420013969765350286504435171359647795345305382881054457761303086476118360050610724108140519139408353725972977216140346110074372794308654766055273142998785858432124585872383908510200056125878966894543360421029144435416380113993991469656922962823789492614247676354226928734087686414962154692078781931171818924935699933492119881920388741131354307666759157873597128287122030393919484427132746849388906573707762952615287445190802267706202976368675162343502882124678444287831065929486369918404696078224318319137486977532500678928164592595747023834414299773710166216993546218561491020674180817174573571340427070732091880011868338644060702877786377011175233036176488369634204984596376464645763608556353655675661356008144044733812828967001823462746123981475758798568362589552377224913231009621338477589984162316845095648606688743867268848883197445469089327392614377084121638481683488805231223086978895237941699377413972660061897176983770411115331104439865667371146827678023290274494230011279678454124820284270229488821858020741235451490008136194976390959600466143259624570802266913391740506181648433711572710415402646637911139166148772223544018379652153691063137105095755543176151330026460915773484431159026947878474674012493605122678544389152669433696489907763546387019917408418055818839769826613468680282849633374712839108754497619046398004230538818888405968617781572236894381664658585178996287470610707564883125859077321341974867771206917385090292878637414840109931711597001738734166248546042768472917709455039363020070616534672200675697951121542738169105900128835051464402438736459255615217827259377580658020889081072030379025387862528951716687012306149382860266600730535616667155951553758159248678425442824258301037317353465941592689019784388545324127922221066349097021968823902496804172197573965273163299271235098771177095418189914614907917545099961182910851786144823108926612022465953245511394054179390639104773485309126269655555081132917467813088707799354483886738159772121575890160448761370542682290769389217964143408077983335181251893693337306773439031797738217045880255097772731953299334669089216705377961433351695279150106964030673778690579824974150467955952740833101100747900927405233380727301487149000458111264563702590172883156822600593345846375371786475459890969778531512034044264451074450879431460278910421276446315146312109850976016529907524288129317453062025277661890958415090212767323153713005564890648230847396201612600495084747646643299650913361522913457215851516609186707046382214465328972682154122721277272463274156470337753348110508545195237264350488872808648553793773560940546574323059471111415513626053592896588489369147245879225529026445300356782803251916339485479548137209174201928432402020979479590137055957098193785407305053421969915806513373234117734466786369312643162865887043241435621751059107226724343162205284399412505172199075953825602681683877747183538165958102262559817929183721004634210156330578034931675153353579243989855496800942475240486996647474499716556029259019776479411618142825045205870713293448141537267997819632018894079050781152255481836541041756225441105853679978531784061155331798616932326485380995050312116532272035331412048967224011541422406549283916796503332823768795990942486042488376055945092096606995802453134598772542718646185565984019961742791249846209139460103610662724824185935015109884953275545784810386868350915641637770551152395681170606277605842858042072360099442754105619760751380496795796540929419010930959319997325433237095560117072235258638895621529218114743379062264376661392982907811236278276993202621003754935198008932338291343846967001985017146293617145976040713609448833920988756390953658445890243655918754959883488320962959551882336764789862332862070721398885997891834470397210131535520922516382310752136146802465470653846183592101215159631595721897203163352158213347022412500238231316446523243025883918126419786153785582028215096560863185814346382390269479472940266159568395289575253532904770374232013204311264302898765735211811685734366751197101535209782043665332345947454925474575529326918418828217139895910635480399446831090000411256683684349366998966465768515375967379553733109713402604403966963718992669782911470658480371421321561639092651782216243767525348855267795298601778186970795687674807885678066844571623591058708224554361923212962242364133826967657127697982934326754741164257630504326548244949605807744945705025033039354039667429149248256274678195401342696337055858229563765599528307248419596614961341629821738336031893747077241020348364023995409775711608103308893911952385768994928133582211666378712658939549363578764305073082114520342673326748305255645964046668661595307788617978667000067423933290128198119513873606913528464800498462004160123561430931262405636443024763774076820892776578115907895486764776438810909417013736973149872171346293663576745851010148779063304978242940523083101183245282442966354708704287748781504637835009508281378160064160106946594768873874439633935146401024613238690509223296065811540730657231074640948003586749342124308556483364837451536174790054904819009814795666301445142273671291444456520360141966962597718591708015505240080414929642677312652238125828876533066713849870883153159435240787790303853740602821695176760912715831431039468768900060310781689804355491798482501867817738155571535080710224181998670585964283241360491521119717532249576698853234861783767323394097246420031558908533638310211032259301796327308716267486938044045671375453654777883632007135049061568275861964330568092214508210783763427266018578916081218400080454691623771260317923480684902579484436937530642496577791390352264428410577069529068329033581466649096985352737353853253047948036367088952364654640734341334305555658780166594846350956161807020710434910000011210061642835632111187448232193305265061057800507875628326572176612044910570644907023875714389464092639916402063973065515783810985688078207626689490211497623958648191168320824437706851780041304936298385999790888653676843750075946044898472669177494197217696098905194003449893064349590093829714997310395260855708817324026559242591805532164720108298809951561767717560502529014156666329275864328317131306060425231475792789786662327345529236903001916187050539229948047492006356333865749090039880092246673616337511761094532285458940361955447583150371365888058575455724209041506441352144468997384664774742907860546383671289966661785371057421017250203160913656302596210308192787711577023000005407446006492299713278987213399450651849934671242530187737683582696627993209565701978734699981936552155228492768396356844176155983115390296418305574812547451810443235869351453950023982047476098182624604061727762551464844792687107723630523752607127426072560654911996678355824033515222952039005711615654219973953774483248490815289237543703090232337787828144696274310700852555210443888152644195556588751517734894127404883432173524966028276348071751964454211076906272404720131202792660754269509136115338577405294221480507918983382539401765313720026553997324355567659186042422715017982257604095537601817104871984907035015194146103437811119377983465621347352592216890969080349240949875390947059412836008778797220110818411242953255538039043399377425214078143983360664368666930838641998472468685773599079157595969018637827197958538022913145897832240036632163337778728290760112541361084135586787994686369389388711629468299644765402307300751820078788099438168084723445479643455644745865033463403520900690897426267433418359469527537122342775830480273464139220559459876531704489727525740965680938739968367844446783680091325503614877499277570595068498161918146151582463153228021953930696080544330664060660362803237149880693596301656048873529302699120759085168819096015041314398615521373307372949081977344659289068995425431977626869992791823879540817897557965165095821794231936063572883404709960854279448105469302618170219202916241288437340866139676311586242520846494452470324557379929376984215692514511117071988770154486735530104136643458375394860116835798713296888260017425171035635599362039938971125991961396100762631508830973376295471355946823801822673213874110175858880935811582173218947819118873321883537369233082386237298319896416415450074512644356876042587629009467925698687996102429209543780614463870257393255340812228926243252694867943090294775729605233829778849553535032100460313095034818758611722251645350746824348634087355225043559767070567143406505952451816322290522019227362905624717732485248291096958144486050281114785653557842247205004291166371276285030842717639184394741568488035015864435267260997615598061933124015212599241724318653267042162294432002144946887709798074613293017390176524305514872412353231762883873938453388889073592398389563327318839448702861611249223123957890415766341466508181400186634299764650642618997481189578754454336707543479631221266493434926977576931405389640556096154465097558545696119123480913727587659355742881258728759933093568411582602373593473832168457677555994950442842837505260429313389879657388092379750241250491858227879938259155896392367826782822553407054971411340855779511146979702162684716314751681154838805306339054616472195889020415177456565884931875875548877952585291024971052065014924430315468510876710697745079378155748436007519553492314109645512973738869143707231585403201820975383609092306857178617306084433381793666033114893315228798563584495683753118353636190815472122916361672994976858594884152297234423953029103005944558818315781277284324929180537024577840281269943667543538737426947306344951946216187394611119996368885403293156314855700089149483751536658787143586669924323824296025245923254412733006124898588234043158098846604555780895509385255588079704315843951171731558914470062260472410624433766928270614555620156098233128251960447595375382885709935744937606319097177017584673350864836323308099751820461211415761301294409819921783395854898322416300412859183875302301530250182566678678465852319973856232107393294852976360622163157649452004904027709898457630677763064813887010355297439999963789570501735307297396591746488304537027765174437762664026085787388280737616952460213135994146693051495556786962722662751449392723060977484973559651838495622579742038427152930347295346280636612967208185178552479138296793043151614015801641505486028087348872240885070752143332006814499344212716237387240555932536547132934256315205839215566685014822020130035653636590062374499352701152979365786443691107935225401845030018925637379426862570396846698066536029998789458834282431920609312454752300025452174689210906686916915358729011043124541602348338918015796136756877025288308546924070103548087425734899064489387458209719015385397158330535322935126951973930597863959479857641929526679500410197913374559837364754296675139878322544758098185093304314407182290740585713761992574693211435235716309759365927793933160478324394699592487107073280378429171506191153423594912360213434524299262900689137310631889291203965099213825202971196453742096630005165472352440838350802038436897085830360940320811464108120030115553636949408114645741907861965459728239889495228015789008294236344460064792432801086103796212062032783536900763660805822868060602952747532639415987711717427766300150156717916964699260692046269081325338677669487251832661271808705399525456485189702234837001198792988797980559244108905695193856546927676163639506603185387628722765784806364990822020635462929034723669086103943232637076085889021415669595702931252025979566070735776399705052464755605334275669544273010607602790952814013163822810170463454163096630349613073039603048512944366347321472310541433863232088835505457133054019666085884887650001705805694084705431589238591022699454661963300682904735769234915296424381605630622424575749717105734262394564349642507412410626683583804253130255778596539927687175005145432956485657700786109854507576974514318079202948095607951639874489898500949259817319858684223526575764180689544761490855155299998171868126405313947392456485506760543849228384487751006204301562520538581521594056676370481675298212790034312226627533618811317022303708821318467335274190625081358638566561421218932307449374066022259615036586646112023681468442317693450413401278149292119264230587438435132407999928638606197323667604083338838015448029021396021140286063658999154480121047938528591212176281688797353417774454281502341612098551244468825209988564425136056535526348494003562341122181480602237971665789320680254986756060528016591885357102535817441779452643745505712628123908077744604637520524644879018086331327919448332399333633363792657491193816191402486716965117517347004721205201021373099556059685862945318146783787506417102244551878163051674218212719541687454987420570669600664114617398393123874472823087148114792532768122640745382295286749349526544749440251855679384595531706865152231612420265395294385411543159335029898230287687265075229997449090881556118318841379132300445081152056999833108235832653668502302027189327028899442553617035081535123581863199847414682818013911430079071765494586558797050826930991587497197348445107928100617013630975774626539584300094012690336054761662916947785899778698098831627617527293341290462051911375801137236661875403668883688773681890744802281105876142053523587461904952086793620710528783961460696569001136828841107959379961404097353380360581323041339835837523441442319392372993961221302651673409797057258024201662217814946583919571936288789362516932469256030803789872100209626324519354024655291828468825303417078840857528818752323751484112651565770962019318075187942360767605237861411928296445532419173593435989789465103083020286521455674314434301120148361370948543538905001500436793926964973108701484458835757944293605172289607190830193464123829179166934029841486568570964152143521148746373917700776942499871596019337061526996510353710993323348080681941137420105359873413609264224265971679454781646615309740998740959552183258485511090898105857655724835805211553921237852225024252346985560660902593427686361565084914804795248555898026649846935593644134096092978098042595579842371089765804162198319421073809406497226165391352125382098235464119207449908175209673348859043316642297524980572831842835866620828584891725480597961546517088286905069743124494582298179923455563651570545673354770315019903034721173586880180907382189172566358014095545525292815423151623812155304780335195207558023423133251503982987383149891925999680700098299295954704296611599974730378781233434900998915576263417793503396599721281266924679667860114280388014477438530989656347162346055856288212581579346147390989218820680952456455818299010884540133140422393026069689675982603070070326351303618837367273152673790225847933121992139863689396588294764781562327883532010427906828543258331320940369229175535895586717747993132768550868533535211302331330524248655311831309152543693253446815173651114995651373062892345641407978493840247494028023869879879620233730280428100961528065573560283656893570551591992260052946618089828472506359309212448089104095631600917650871534645080888409548339485992103553439304798160049401337353610364270927122467389930701195767011355177804794859526963609744447186596628087498233258149481733621921558670957654524472063238180269712713614604928672603812879738861351682235536022171785141963259345436428256296301450533251802056634325346750532796327885887312537266010020465620097069458164648740741208425560963183585649468171097298567203610575404808585387580537922828764979966230181781629663488099803664664850164900492940716573720532847764444193943205317430052168426081137514596377331768474664634014102793150548555112240439057085094135661565651839730538449797851449356868685807407961671513860769929510070105578994858596344557201349435638981069606504050798227461738412109065740317277691650201465232275884723595615609078306189246204067785278217075475632006365084227561156225599653038327371473865410056827840858893361975966818699646962816333516321213693219459387532062024042950578831156601480671424079274649354110418389601725410898093794843885101299720283705073730276555171539298712788674024195133577978038313033810130220620501575400790325305729068336733459021168243813030858559538224111044785710079544218370504977640442641090392998948346771724874971740160914341825236218773460763658467167359858105361569990546968178258897146566474875206084020979344491937747405719719595130306474763692368466474850136227525123021598176379455332727355363435642167409707472829736221943981535496412106215320561131790608415351955124628228898638129003786234511634014570191371128756327050225908940813545844760235196130923097000757850511300038917447408397877987061199976493285801483139970278510134581558284830039748452448648524044619696270699287285630729962484355867190316703744554911092328149716757525839043038554006164196506280197510530593276401149760200040968439776194213589357422465679730282368173295937827898277487848478292114605377574137795154336916007287408977958719834606788260330305115827509290749762638130098554120750147185700486778278116419518705240334594188317558559878055886918003670019470905147688825868877410467062144272374905730103619454831239332682947291951441387076923764832755084663495923242189624228521479017040983260300596364498005238650639894987352255815996466974828709149278868833116278960094701461722824961417458179326249586250866756764958834862194789910852459414811408781391080740966872658419732005389441773255546858940742879981056869755456056179350823158396611464303251549798150731043477222337189308094995308687546323918632229807132202956072900526723756717964738429216341683670077287527066865578891510222337470161920411329756777499887784507306977323073931321297312861969435347255973145540758268204978846568959646868511749692027364475592320321418448858396681460432307528845856462330073893873499994970553522914395127633089957397394846610129641418733507259507757917632274733488731595536477512018143848624221574402912975051986749022295872469350178865915609543366125842942993302685966608843347866352569088057141953055466248667604008403815703205344769101264959270093461501478597683424003027186348491229047832383817147066279824085895205298518662701589385048485339104257342695445659388120561432991127477642093734121082101585031045189003181104817783466889552399844526344155842414534481187448688700940804903127216408158837368252065850575221876377986479932081360518762607997707303368307726991030019335034220465531518822914429405131611913027680497717412345954400606496541285213419685479593595421610369253397749793090527980109234960700359108439203078924520422755746637627996924638311431380874304714399428298041765840245029550876622263902779618992123878275249660831580829534200206973836698995314195109970880653492931009167357982631905597280978609610221664142907481948270858929842520727741053267018557558677303508453114596406836124132761754413207900663824813921571658344629688516315087393933566349158749756019000595788677053367755123030041671292351037616399561524973886259133802522338704103185960857767451411999476437217917007388921055204988811323624032806870131622681971903398042960764357545997986968253740886348876691865298193169660479052199243990240002910708138710388791675978495469429374447522458468702267749917403917635071059801822144036570889633780673165105684658348665656086790719048745346869314154657723260987763109266462299500788314215465517780012546857552491513415631866307869594266051884567518950642882934391176108655227409789394361208057334481202619240567175459338729101174460756803567647527568399961015059201101854013163609721359362609425405658922995680678633779447419825548763779548774919681230071023678171233301366531895446958567858940083130141652054849047800316030339853805692147919279210949208959565968817040438766955114480916416210753733198747938910542633231607686274313633118656633749558979667439611780981377035770969871354538056055727943524629656945607933371905657178152044454883965087124394048455550929960115362970154780399537264974986493296575152536298787484575346401482966999165721572353996611530758190840095109875150563191694880713974970024901104244367941861897668147727771599454957844037943705684477572752062944780500226124662570050474419381361963425399289685171272478255539870179908259865138155509636618468776381657729620608956379779785812340488555282859334229178548893371173490268308807334661343817813856570570566556407183669466699044154912252494102358768682866546511248890415745849081715018847792893750717181921415256062491512415483200154353437299363455686028558273184453482119838326206057769073163388452624516774915385575945869515029028736452404110221164248349691492965677066636699633743290944722237081706310490167823205775549931150274404050400384556676416585123377806452679191459768858159261144640105395438862702681375399455617056340964814794871217868615447778185488759609555106321461038063361594037846261086015447785092872641879931359910831567336637702126827521815959247584357577667721392365351554868086984641109201240311767619519112687436096541771657994638559310829342269971354124825845784150968392716072713143848738135281685095929679320619265160433732190681251426214988005074197813726596339158353223816748066523009619147841656180740816415426566940817033976139272642284284487322289655657986016352078094698429713600673033349290253002617491011267571617314309647566176906880628074299803464105496926898368437186282123888983956257957252954900825479032793374660441255390415972473353154833425075234587311473274645310751460389300764519153921265053700334470979413967106788039626544483213904421601789162938074028802343958825335316530766600632497439438763225710717292476019513795050973843980724091771293958574572314592209603931201628154986205304864734044833648433065927900728619087233653370695442525576984302786519945201778192943410760692629240963651959460401637659099267793350863456051075563700693582902399751181182654841847745139404338690889795213518938048555723568489324541434358968038403601381559276076319899004156306606427517596029843020835014759001979117085141610507312837671510588089666254492955062064429737714334887798356753528801947040551203303200245605955234987540885399545980073755784810620157936161532628353811958849366800364376162028328269013524599504858691249460853573659916455449369251704485239214824078767096602350638087629947893846303062988267445491069612681483280295160760100029168352073001315306533927659931394705747090978598152509764968472813688970317053947999617084140366841363190766397024879539050118299273212970197286724808188960712751843647785348909883368852211637334645773537361442335423776470901622622033276325081016216320478196592103425741390223975744407236287632879456962437540212721315756743394263856495260994038026492353975004022300309227711563247443786837306087625817301390663163632819139448708079180138810822154853714450670555031096622981055613472463669915713464671481786145356883129130557853465751501077424922376461637786211888519149859092086291664382408127658143522421897407654539124294986609432066693195074861529158926959690435300126591090822373710839037385738006969916298751628902744773126349891229218143457870425284597960377085788772618826369178376011022593248900936491138097843686107331118259466558462952559871757584940787808150527546135482395535285587579738201436706180674211849117648138148166019869715225858459201396432159234007150126239494942416526151574402646927346125454044726199737499072462546763908258081419113753331586821556673037593017312922558249000721389877990217856158858912998469531261606022344022737055130048754245171224750855239986964225155770958426335072416639591392832453915193248910667862274885143988536555478399306849722499287458644147368837202498387390759939019635367929311675743742902780313548870198348933624844526583062777330022092775951647024558808911300676453007793157856381423986774598285509977898180663351660478406861009682649589420935422365000221109350405544576204417494266779909504919795377142300192703908526356128858108304476870465521051392607351222331168878816275902139962996331216447534837006831687469582744923480424347264012062171157599715136890916476779114183007297668286975514004594377287460293179384466316426355034761376918815804717205909215623931477326407918797052957514619274450336139346061599330786038913676596317186555342073341613010551259761194233169442794466785926417038647285691627283610530687071667302669307764561711159675634387576382603447777476330079391995990132687693906362812185886818358623798121584458669988245454611349522200881063442089152337678378731408254078289301443653434217333599863340662713269890528225455494777655593815439326429475722257543812282402647427515538045951780229227536741656003779215665222760967290517152359963195178291171417739775380947649966099454236265047487924606928763391542356719291663507215819078457119494448596850044674404443892311459969283521572614507928034497936363883558876230476252312718557402961586933069676152744341080658838067828100539074965758929987473629316202652098322403874273133524878537821933241405651656783047350463241122134267400426432752749237947545519107569563435334193901403440527894760111397372596934489147139784871161480433774857581673952799038387280124445588170566338847031132665893554503718531722393695126401902786189241579067892428950950008901748331727546534604789055222175430367226149318144649907862421996087269992837164806597502852614452579885166737497210453906016484213578965587603630937303934703294752865852443678020469199097431044123966032833015677744027920753712666086908774754936719080616366909979341664889604216693876992508705267606177696980072328189405156245472938256436013963311575936064412746463294443095242461024136749594765771790675266855468651413609115599154737999311793898302398756449230871856481829567969693643290643778268403938888341703040313584750621130747759354967579049690711803514882494869146171993167230122552762681843653729157288555750052388702599993860172455036715094984031509606041687816335183362996540965442814166423985830548666262489725733918567406922728930084779877771362980485899491162512432342234769291895535917031842904494123523876006866135953577114455959611999710519479559520192546351846525051409369745796763758121733972252062680271288708720037369509011769961517706849774237300474344292869552871544311505304915007004405081912014892305769866694460222001639550552799213452142527482533364093470202619995513374879275026738573227712221820039422203346667122624276407048423701189139286396085395996891229143155686738202508026725721266618444125352677203128288843923814770061554220782843323402655737924925210028323777046628316506614686212239192035225667869376254257088869115157692768576946753463012883384010870489203587712757041583942086931383916703522976400618196519833022815160680886607196108837994573104302421311913019332892731644096240300062004354668741905902504136230272388467985467208492837627089631283507039686283679810061086743145388567563398099249777368483946864883911461913033614659714274773210877988409635098583116249684321774722374006785952142506888930262528114334077846959479045300523247012600996229776454408223021045987598831275393675628297176031856309534808210432682402928056227506512562867854240126634468334956792883338758645882880763915212443792160187116955246799974036049669542091744765935780306632029175711741719657387316881263055818565361284763666238786725993366939594240559888854430366694485622090381233056731230726224092281207532708472251955070306274053626502651272352413849580485021098479757747872437886563134927940277421525844934805768046815747890495754672261886798210618714079700834109600063226698791671247399775086703217330679024256165453287199891229063886500789898678412210473482049083298596119789380010878185297498538002897578191025704516038461107523531428210932909175612074146832488190114533740448347121466987805178330155146860696714347117400749763661457180696196465777858786613439737169642894354816702446372292884293216728816888127862918296286824246236662340947131645145544510016921017660319154256868160261262104039132520718932832757975081078182107458183185956846463308756368689509193200275652476706479718690516980291834216481749537347170686120422676548002946967420616070549259417906725976249773359651594946977354553554815949157840126771355899319834492376335045795870602087491683866550957026090338652658764119758652200313761331315006311656123524519995786095873635776343591222163663465879531019634533839253751165530152315066985974809436481962840756497775830092749537488878497750453107849393890689776532045849156521900220163437815042400735337058785453772096944736452709493841031815147968161712915279280744300026834217512390901905687406229932243765541337732663035310649973823960105911033677815672966912591383381380349493931417032283506276158338402004128242847897545193123411992425841890642203218250434637876225764623957297703649567417380591896259252180102688039873689491172220118240172479603152929149038362499505917621453469285706929203311075001592900328452407923944936438300230963974918863843313719093591233949418752171165115776225003528399120131838155197044458949482056876553210699510234670597829957862947961947279114586273995738020654115601816270690040282025927055478094179599961643595466613805491189590515031578482770881292500622137637847984298306723429882656681396142636114776010505742514184829816344572981931368068643338136094508079231974860470164449611420165809824143501063256315364037776230124041533385570572675695181813527961031044473374457893131236941237186178848933393882559171549803159425868759400814670182331334814516150211099238222596020108563703082570422785423998467880022061273009199233184373891174421297867260706151039047783058161560446583673141033524977599824197623796308518672648115422469231079652189285506500908177195717411001247232462593018437164797962420532091470550422166427824197336829298059892369632991230745994041489434116660332168214137261680437213958443339738921585693793951166095459153776048458006053802633631760867210643152133502165653723438030136820260999175522162824261254326408905359853489155212647299442747087962444688526612051876063132283558600747241130278332599856518491458660269514728972672160681583359508923717957496578853184850470047607287556547894649295623398991510323594205578530060662109542313575330707338449310648463880628532683095265839066090667592830342145913431746028287078690807532928828949910333138736663967635565441253707732931692264278764325678397891907669086127501708048341162562563126323775859104736676796227306429919904251685829614793779537254241516669155536123705013395277165695715387361146465270959514924759641722871455669027394603094271754163741067671617909763870488659532719215071972144306565625815509306026886521438396887449644054089372687942391137723402022359044789528173233081805116728388638968528258150009427198762605253323156373497235632451700888149802507717148776972720028733751669582720073759095257920123097235107168358304290293133993089555306654131676702806385964218339583871833714569301217286806683345082084357353894109308954674031495122469731967101789454920569380402748044777118321724433686206286307270167032776317031086305794282411828760910624308826677504319044617914496482916790533453562950493465708453355357005859254842112397058672018668148132400977421652093978275593436748081885833204218028198593262314493815900232101583327255251985200730772889285562449817941330409098059612496318258745445294796730307761090003271728588032996894407221866791478445339328021974264033650320752024067499503845877983244240175368320888127401605461375598518090330911440552777667591961347223084599613891346260540701667945450678554659379503389092646675208340975719168537450883499809694966659980353742565516245689565504943182036133806791582188478521300870958222847501883057699424750963900530742142846621346813890836928604928719292514721122844530169560598078061321547419841983496022500565933645159694935131575644216084168730435436378342648891763168489232631365230094874087200665880931588651487050923747723497127918762093864360757096949310399681314148138707864258023375508873879039087816362243615430290423075248974572490193832572647304648882117496034854711944630679148648106511490478555129797159661741180486700477977191128639258997323337251242309240996129436060672347110823653267082130610202698617017513170739148345896745696770462533453453056780107355644950195047573911359725673437101004656032507320845864351991137466371089388211379508915639417575006076129447187065941589602101052249321999048362301977412069654486524145888547987047100562866609866432022268149355112764745351423723522561433201165983473138620257331688360468267859496882915202725882039506368384631540533445204581849267219823915229356918636803959859619736155355184627671937477400761886198661636540036975644118745096407316036713454565603936516402001987123143285360916329149059815448859453167452738998887086617344567179813892728618092687638651344634977972869357872538172074604575152971807304881354845025508590879494643865435927418433812321151507607041161622270004126895215156724109338899460420057667220928477536846325287059849714186945948964744860901214013030551521908031042584761596884848940014358306586344333918334994845932359453888710396412072149247337750965764675979288554949471521558589986070034721585540431993702520465668214261480731260547555351019980175074357611659730066176170757008322172276160598764672787587695688880556143401407752165843773193011815112146967203072487784827260665151032798915828131880772553380465461034369646201342412787617721902321758439478173906924373266520963109446155759142643921613402857408878253587445655374534949265517431534624659129931295414328367156866943601009412646405557019455051109799244383101627921968021099302588728512115394728663714418955230487566590523850035959630185516640671018731939555595419997532552836734492731107175095628314968099868233198270430315997493268450018890436084529880692016921254411433256841385133597038584300816852971555088390380252646077644724529208878219022079824009334101914553783617361219357056162723512684957011066392778263652308112360804117569087145646804579971817095571446676042923301346543021989263623545362213301014092619268799964700518837012148966815047860854909350773552265059832817461719113253415986758047278039052313389891194939801387689336546812511320931603527745084744214384731299840450176260744536142687260949787193616771804448592465912347903847941456751249064800855605246001599516923323131874634295652318596698159906451481500400926911113782813058348217243585431278896089473089108551423588820011442157041223312037947713819989874644968286711772069553600219408974839425658224775750731527775553388974958254506213083086726340664972388418829623271006298338508375436155375089504412755968872293362770275174327158378243456937957183488583878538836323378619273802657191695710275124080035497025294132763319360315061117201132128869281021737885295542774932446017157717997930292362873289115426436517986315204986763190077208271494324473169299962526000004313676937995826667288311187912336405246536011563285253245915066912559570738923340306235556425902537677837991448984015285739685989139761396310308036597790578754092924434005587513574646760457643768923541514236360338145375330272687096816423329255159765802504592287837481633462314558428266648020910143560362204839898268480282245089369085781347515430137173998010767851279871079027194365403621672181456395335329787548113110171128412412600453142258568888703452427052621923333005726171116479288494978550417478836784247147480017369798496802547253158414416830073608678892286843345446302465370380098534027812402311265555816894548474852850441880212832033119898844334198265534434335254559782860117016755229753808964382682122543501496699908995094347735275956207835689429970839287897760684277405563338564115832145801874927648954548290730594649674875866517206023702794187460709490293860157742924931422362486105942525236173650734117061752794801352770443939316075565195535098824287121773386675983396048641921717767625556038319500358655083522932598827112200321398730656766220789043878939936998564599855668351596500789367191743114130258159000960011934112900663405429423665292678371810714875636262356779002599058499236688412941259709020036982033345458701386119990038314607326149049795087758616411664142123063752401794289676312079690052119159969486605028873782432362397897664185051144513516086742876254986051858285955336024479985908588043212248760318840639461714913566119395759337794555488410579007872215560270505637748513949565486676246693301998032323045904195824737761007409281069404259545737818394250929843656899630171117979505639317893708555718508180305326140105783895569932043458424626111563215551278322865419056459794831788167932344638262598483694393645345538284559775581101397313809274032308536504110627630969160803776537322530056680517808636223748735884708039309352852535475879264404907226331273363729513457902642482959157978465884192019788855369361267942567449794795213128870062731696281595316557214415743181470743488198729009698121202277556325799553460197199607633056276132071545870331931445376784227427138198584648848609563948623076941106194555650661543728590060959688164375794711266243801845281926235094808745087005414595790273588112811529391980042197655724171014762978782716961535265932628497957836088066746610415448355361701777093046541950048439134722511575726199710208956111567935514984470441347264482522353916468541261020107331930013236306552350371856452436142303314434137395050830232929310116350064682638070972152383644404964798865853542251631444656956976231052928131561846527954797914138508072245319824231800989467283535250630326594716700337901237003042509733262078422975176082418777771413945219318583602710827743389209035433546906497045010376438268483374601743108158118328970339432318814491222242871089036411947353199484952714160263849079730605836355424937776965731674947500137371306897428686404752257082677541499147824076804825102222228552463818651228510893207515709802060452517945561768038704174172241500044834088991083275151759142753194757182260836333363759905168762633233268704406529390313592040467804390299299069595440115494946931477751543243691020148784569576328257353568297131509515623460722810723405542804283376607681272293120913306133341342345740634323941816561622162063528478844306554089862177399782760183533484766209433117812282938452792081947757527233272814420184010573944118276028979487320309228370781306584489964602090789346422886744266458230660978611379485335232369286169892017885337541498621528698572098135347579907335673509660858628944007713098037512733111405276903593868658748399077936915283496739862330388307501881524152725120829905929307263292095069181580555076625065989683081138631029775168181486388410233883117123633882864806133408730451005077085669630918016847254272151095633543605383400885535293243828655096046739948664682073633915742691183407986555963528008185698909580495986141660997043771901430142064798688864426551087271821173973493889820159559791647003397254170988042614637787798474720816845606452951405595025103842156364052867870431091581667893733006380361577479800744178255768677878574373886424172248524472955846323035582326471449489357733493662851594145497018373164857587341028821482879743894216321575434729068872640217310436379410459137429523575555236923139713345106019955435083900268526314745870461214599145503776221119348531196315657179679329735128697247543547102435401623434305919148780497595166391364122233878583981992011584859699158571344299577140410023739136383001907460077246435161989090218937188985299095690449850276757147991577985914579804883951760524154399589826337048299124292339755245050023785697757745817083753606497473592048836731013930646372727578050224518171035286275949832387830606836169305056266272665388890024697021673513485023544109371332943339635848854979526814423503478266501455790709215336835368921178429067034737659988651763972677126839105128205905148225733238028937130962538305199394830801215070544212722991537249345219970603871431933804803961379139933742825961298962121936190034557017576266999273172940128284644244262412636724152158898051059210819180735062210866778911898797235227268676014798007210293566461234541475601508331975366025589583715351403185056136834080272768757900060290713487662855949742134020234366080703652289846746783389631745200749920037252903873738737169035951027207870320459622397787437794848828411196220798192859418132196709608783900716049291699613220130453127383479183465185169020074198995694610645307065820739658680766372369750040056793845293478150101105351232857191409208570045935122024908443790050690639426914037727293043308935981854670135935248484108535627367273812606325262286884515969105103234334679420515506100736946838069560215748410235766674463254726961166833251782742163463092165347253026381609301961205783942574914004658313193555747848483085769375161760429148153748731462538093082764186840316401186336905334030438163379229395180580250519096498766149895396582578006797173597069602436876554138091171691812669364318322246177300709124598524162835166425504286046752357717434516535871629682483686072625308336302848355103731369869313637164457136614452885693773402084361202579024796930352187266948118713572136970763288607193356721870317499613179308006021841472299549118965255255838195666280446268459000836140514254964510421294959141641744926845321960846144127362351484521916159100819700287379624630823833998798358755320823331328322255319131988058127886806431516719016681567304902758511290264109070705859599155966740491743267963223392662249607727502761238166319783501854273504813500733100214805453133263986447487284286340818468565383363185174189706713917305077309792092547145964621761417309178317064357631485572165555748445556572157379949269576210104806835323070638866715249017024813893619984955566572947419894003376992952995141883060520310532757537014917427258778939045185508543117285519969919411788366694817648861222759746438228321171232542270441556512302150457172662890764703657214507323439861308282054640132088003455472475727941806405839558816788456295494450112871117646525740208083699615869453031347759619650146101458131861338915555764436167143782791056606015697210604614274369875869038581954298067036535917795356995359780961678856139036182390781286249834125208162573024613436215603960407425779978302023736236789842222581386356793601659513459769070387253429798393904815226358360630577807638466196756488224295231105410463016903448767585678218742072488451128094581902524180225640511487801644409343751936785067400326089481193818338816528808739885492428347084365514455355838775273454902321779968898212758226951247552791518918914295248549103785989999356434038456663959746821948325037844255895440617996511452788603276304495409856095787676562123892874553116329032327328504399268003165173725616616008074869300930234445489632033539046822311275401527071878564374213800302429620092660956017328220152574370517306332882579623214486036134626172034561154792133817978100094459770592606691415460759943646296809091695892556126160833483128084896649155015723191711708112277585681624958107731155728035789600537443256261018004042879985888527336241849254812054933401798773645095158030214541820965415792938511986570115793626256766896611186500804977818336414378998323917223275400430475255223930064339112599996250798564607509642723495050163273174306677247768406081311623570786498778133795129107215075117429480491898400655333080956793168724883201797404772070040437648970674433312786679150534170933181101115107483898289194451279478325000811748126445737715885009125033569135392946158447214021362602648832876507014176042598559137004490656467355472503111109028263942587958090945711044250693962293043388131019071084332068275500316180095768276839927566995142552184846451827096095530455070517824586129411037627247238573794699047122188522008126743206972070014417078850786764264015812230284164766762307981362953468810366665277136939983829752525081764448419231422961818997265985915705638620466133814453214255825495606982010134086797515606925152280964318852042044995113794259859149601329650011019685044710509460592795594506053060808514196295614523551047161714329079116404549787768261045708286827472656342491385944105689712446243391980061414742598819920421126848225835957589452608446823581950740374620108730687486996545927287139785318360973760769640082834949372985430560854019397111580709111207122750030089248954042725673099409948551991906998538178854304602765196676648508774851477504261420202324505518834456314428322604033656854992033176765516140031160292386286963348855910722667445534997177502727651456825081753427672259321465418836098412402171362312340517466498277273678885155452678728226842281159222013732366442399393382812825004852817022642078595873756725346999606230998481100678440080873230717152092161154486823917494792840538809832503122688200709476798718501218621413194222598355591531585231839277561136486899408824763204512662784108346039203823881432520712706268455688172021289582177642423821884465510066436658382371870426196427655373537022676861569818367552083831839955857180134843736791178441254439622091146802929119274377990788948630898473918865467047117751050664075458514837046819761443099119463475591171026424585131888027746513040520607388642770553986600606315881593809693024484761557431270509149039832469874041112901046726343953000863149300143548425571905912545948143459486704777356918770456804780432959562346083286669379874813777626853867610694592105091408199017743975465558149032355988326894408884775447125275520227992908612035696021344366760331824036989712347473775726686829352994068644950819749696975571325211468312057366348127718316015197235542676888118097808936759598912318261161811350300532914876336997755663408924972269296895938943692858375740577382206940480424641243262595535523370304277983853353989946807726528018731893091679916231474142375874318530378392855308467138557457969328837866868928766373342267102164379549275558480286124419178107441418412761686902463438857497285975600461668481381294707334019099847425280211505802961263802595793619035116524036202574878311894063300413136811896932864314568381537785199693489464485313832985058238522271135129879661269420889916075772261273725368600767906377130743237401611468217385690457446944380757781970030565360277568172776238370662355368548604587659727869296379483060979114729800455707707328646653412890018157426378949622995175129220174571920682054962787872580898147880361206374438047008813477216803199620911864687827471104853055627869679799541574612926994564367128737933338534999257354910266113499035724101111289796710614822618633661174844579354415251960647742253822482804268808424270306007824944925244758838314355144179867429536621219999607495573309187103092226651377161602594968405553990601110732226811483213190761737419588307474485412779285881561908220024715394356409517409519011998521070553169438314181240091935553014341307129682482272573907479615393199570397742341607437083267401838020964784872749551875615046520211333139717303440893073182933961475889448845598749225080928743086720319504122332623546917796075054006778810940767600005869071632601999037105402060615734291650648078351064487291372275014066897890910827239171094082701460138144533862691314846411894043601576516055538726464042943431755163075958365148567422203903122904122913923443264174156064131701848955632439643962618000513322642969767027255720203375478288617418697862252352619818766676500571326537816680482648435468267702355453966428339792636586899235803136414064450978128444225781573428152366996652322716015308041107048772129604193288759098862675695291592135918070885283019023945819804739056025014061595371760967313544915542274437187030502269726837897696013846365227714650865876322820718043168636626363485824363904572940206136606039673177290168342874523425287145591308893625796945965672805367209300459426624028286267509360728914027533160581497333558585524220562954412549605669691999945705887274217722968193088433772015203264184843189750683544244922832021230004295561379152552281829599063485121539608556181273793663784089005280954510296219305507908800193387610816001036533647020560073491992381833352090206783592405759571089333364194345988578473176117989804102960007452834466555047193675456091092838221654085128468844103411353909757401964586836619034322764881005586654306428431645654550138769924253680424648013358329054597768588200181264500338760609439973572334419784361700873673652546836406576008970273972250061303545594688927373506901378918529023374170140826211312043320636637191853395417371564201929280166973265244336065253398047087215754087252106545550532137117000807537267854395337287883058831761434627724666167702817023367867973354775503834454019710082574748975843828573175757440805427984304430385731162303147645037117252864381934154910489095276538865691940115670897689171317306808559043206038265579831117187147346685531302661883288928982432565023598077418772809663472679655923712740788358194259145344133614609501568420714498830331470993311202429158674258285199640291809772946190418903271963856286220106847287858209597570652668222128149113780386072406733743477975072417340580514851601126951678273377901174777114083287915592322373021950773632180945529339093450567737054819277183092755489953502265752269604122590755885581011112544124841124977610124665490094080715740428451702666599116259442967305975700812394239979681800973467548316249508733068008745041021998433912196376283576432682604230158938974420712120770803104765921343315615455302503498172461406318987712335780500600001320103627335994897371302605991530593621694728241094181128038810361315512290209807222667755583096790030315829669875769905801302042227802364283542642148492904479679579570793542509018425111489244096268158136713747821269755421329269787433773240598525974178977631953209484370295628786088020708145060871571920121229240051485344480467554458144060359412386026468625252315081277543785519805905879370221014983220451833536094048353233254644946542085686513197423237901508727936536225185339226375448309355609123154646593375973192034402981390697676249399894659128570295549964915709380873658863693329468321327199763839093212553787968417582395153688177024548550411728662465745777892654105976760469092694107907653004433163000798657939351228976824202848473915913061122510199238046380784677277910655589634936081759587284288508407358265046595898258172941051384257514967619539559899177189611320308114289510462009628566130446241579651392120436596255588790397072590739966807560333605471268373222560285861033299436688398677669623971218436132982047417198328195569343675038055955966876981971819755836181214345847823243224517510298854117090636135203025572083951178915902999423614045206329924214716907855888722065641999709185753785660731608009092843837666141949451760830151883874150878345922961775011345741082166495263489623815015739765577063887420738886569409493043050644870607695426669248852516501251612758448003670996076687186623860403995329603925827046926494019994494587840593402736154490749582545276090530974859553588096587979451336807750889120724913670904189482584961023281946865017612913512886904183874750897253332022931853313118319599076966704419298021323942976065528199208480126676645264510550473351040046093772269856096152999654926723435153503732274404657534077383603833586287867454010895535823694671416253979664538827465359751117529229567630803490066048355062154701737066169334239145075425750464217539251803135968530525839461996939100408832135351931357767250294744071801120095984622206500824347303148629612768557364931551642534822731935204062409683357114592457056982958221603601939808573974662048699805092494923273799554664133840532153488875975991609676879339818353283998516713904465458214923214334900185038029502662869097439432153716709358610240906937941493513440041617805751451248685448990643329078645181873772949386615614166815309261403014447010229912596244584512134550744773714442357864901609953243624540778375860512628063372623555334896596636693140780267974557987076289107219720890796233450012799393840606392220539759800119489683072699108409310586872310206266799165526203833501805626885082479632657131010923209581522134743999675176020603919736611835119437496477241722260632576613690158935199495015763205888766344094809036847060503481595417985900384708167428073963391396174654151925941097805559006846457644340657551686347711461027154232377364576315942509223757163612623523835170041818648140715180302367754129128447385157430719590686463686823526844546164113592533394873988578746116449342260595857208147073456155176652981649579168424190387823698598159116778465800204700243609077320857342383359398101893360682139856928328305950735541951911046686498070787302967439202875042379940175937653324372844613579370006741744575066049478082383394214578543241110900689310221194290914380893116863611214249821652135937923103471455267338890519749671177018442837306783370768301765433956359476457597274635754008140610583800788808691785631025077391412901884282706027993080209159858074769066985196033902375709297608738524694983589104982906462191511839390710510435324014523086220731762582493889169050267985877055569672069642577669219207909440952008027587093722146798625515647875003357344310951546917141311020865483249899729903198151054985566106679165123043886128870763735058196705219702718869356596590729645546574455907403318495257825534742599925927763844542039345386083460236526898719752622111499545046720489009822544856272235330069166501860595573038365949581462226217432279058310448877583154420802969592879197558703120030666042091680788933299391808272270329145697968572650167250798493316350065419752527252531376947525904668300753858197438290218300598013943399528697393750613228438036119809289696217734341197852965633389351963017662676659137602998151248998409818578902172765666617885984685478028621604339030166870584992878642799704380826456639587216018340055574958190260153164683748248431375560077517794533579123289189042858513531135694238241453173246629551180140687146872494129093670513620687524187583831897658737824181076071140605140333614921947427927971136184163204891821006103239785266811738925839356416347669636191862294270926947340537105551958281656199058772119775256667462313894409887746480009426340931986718222040513015944787957419674628000150765227458728788346512117064633544544035058987459546965445614999232188454207178657516025162350186061459525176344055177688597143866816110309769532030908067811943243282522998014920444514079007407882772806996263234971822929861524516058125301695803442155940323351159197966887131945241653218720935110691490270099431180230598416854760543953809610421623099490025371015124982064907348973188289601918337046479373531935844853101892504608003716365524941422422103877138747979755831557948602329543490774196504332430267437527947991749074905098657886818620864098152484008344735084388585161578926517810112115386489768388291217092218908520121188402633165463046136097348566438235871428606523799110500991370652998018547399642552402230256529944684731425812769682198117893725944874674168626147069779227983508809898417595689905995922548088435248934863401022808124239324013980530616504255844788319435559928073361419547544162667835420827758214128969082154233480619174131713751915618592045953656680280958529547253106347781089960571626837053112287633399779336781818381349346552181078982617466088112757529304801070202608363750802587108243891822940182660348959471116290039281178392212757446614155165562142496796423636155873251896042792995995332495747511182538327384524507412514128317512360753220749106466098518875193292468793838518447988225482658456118265072719747642632748151481297033012772384029162664766804796604868767327313857480342020273522878125898397386840387120810407686741178552739118632645783026787112864196697804962423597940315625933227464362056919359059952950655610733741166812128877333091512116878244621736949999422061699734297956172311338175828015711377536562190392566735555006127891360797525000389822782172446184621015752266520000696683686848655074265926292007344334050808172366916716097925928772799616234090929500024135961166366913106494946705046116815461801847460704891039418920059963775782803299332467682432108625246898936168293310533844395103985956606178529585653024483959832473900897688060574251449134721130971900008828651494677261113040234242740556331204612282526814834039386823113105330330437918751205401585755603637667649329621276885630809919744777744871792356013599979084555002920064691249367398845984800207795367978641627227388187051834083591298943228871697856378046094761521388353492089504753206768057098587520142060770754590799577599541411909454645512708237102645395971143824076605035460872927380594583432520222019571275035450585038304102569345041802863564909366021480914931726731561548316825750551521528589271533022434942956659134924297444177725839653464241081820205431017242425120670367726482182805891511216209270692512047673000896175403099386272103750272728896031494554855213137208650146875352646193562757875427495567581000144360602101390402227578956550940481206129822476892115538924006365247980176908881972138760778438905773890648406629161901403726215019030224541929564423502187814206889301214476983593049486149562124425237302588260196805276468436448496635393895825562315782869904723821381557685987912895715985578123115904914098774474522329574879941637016758243407385301982978810013718662773023613615126771705390869994752039414131345109624033393473434047603596062374240376709042093049457937079851086160801969645932278830842779292727418532811765025609997792059944542833830806907716278472471939896713626716392725941596839089756291074780309106470174742603964701319746277671018398867510871132978597173494991240987993744104216095435536896827795865146784389723028667856724372722912096861106834642867786312311050098205797755933701404014007198542705399333986306212397553092300795807523584420322497096352069338983663127605206819245418543351987640398631205231041806425714347631898835239105510750344679377818619586875924715372288863728643707187604399285586119022750014944392702136989451342114937945073323728773028184196436491050623464907616902318993445003812933236136055768737204132163125955481596677970874163580768077323525054376876149042074155087524658112996099915742477496231279137172458556168160247024274471212512392761364949909990455326797383125392611128447764172614109557230217125754211801932095650646046401284299994906702521128408962191482434017803286146789872645852210034146779913111837311243440154832485293859700783207585114752812694352922931767784738097831159941826155076215617045633098808244844949284662099154296056436298200675732921162802577168498081735228142423285799140601318055521410957664105906403888967703357674137209120999381827303603331413709468309680175557126051719121302969644922209359862419952226005461079875468309770675295778188661844984487213338757904486899159855402636741115491699026701688252133299495567101617661708264131108389397871686439796932922253706372218180223613055588905377342774570752874401695824745088792805651704214958289321971881394421000234372186707761634788156391854902005968879671753763625972102927875456780119388554359527300345055415065393599555505397142139611554099201521603947107434577387554150871460583790593303632919171664906454294492910046244933162476784673369754731679618097089633076647561477378477355814180328406916667407350681817486934826700544459711325893465972518795682162056910420284763226728404607685796716021427085545093160093643260183607449493685559105311608792147147941239006683252310867807591914347738147224030232956891341496121819388421547287965909011051846460701546061231130184304876603262818967387034387989228260786464521203010684424394280235612107998316036408454139191849870182978457354510373649952747089806426093923593584262017825850041142287679172374760831615123784510119019894871686650977025981048497008287940202031005074801332253536097832441065139002828407477779153342557623873414778556663871420027639360905694297422280892749146554423855081877997651279388812836166132756029507552973321603441829643615330296578962499417258627242745787612082282516831229690711281834304369285449021304882889185339237192611408430514164936104153405533041927967103721997767839495516303036586661552270154068744048190264833848589849844937571341768464551172807318865462643519776037538667827149873619877967413782432250025019749544231811561734898426674477186165504380263416572918738653458320503940733894203451612782108977896657699296020181298961833260175492766681335622765284129408608764130825294266064949423818766175142731617652639197848596077085084860170165261833269917956855203180645623963232457641707080907591675714081780612238880597278703370056471943068356408113275254425945549695119422395348221639443421199472810424785185032013151189174737337614416731370287496595179920080834567544555399685478461540369528184041517698260145269776252119880024579835542830510641832954417263756072324639754094271898357210424146557227737590455247387176206808825794813243958454380789453242645122724509374409828730375561616872614752086307720396375938915057063205831636183712589374905393779393706210251660412576199746886080137831928621317386957341872776779614133693055625219448305192309341377163545604597224312159643838353643235482994555588836933269411536185724257439172887423545748013683653281817628564715846046760227855601178507368280195823046542331507485555711294980974127422590350696239566176285476285313280746784955836968244445960866076175190103299215061830476651823646829530778916626291757998884794009942014603925710208986930831769666952714156384836849388952864621227776170674486004965850655391925290552617950582558564841260718867704192591924130480901809054089483508130199311940678033258526267500582450926498688498141714291229725944367356179176128428571117751325552653016282114222622654806855479899690336050863031435149123227414731259603207066322910669996272171986758175924643914772021191653344264008706340207303932472761171161670928395259501453823047896093334957810839102750071688395580997756258400708921790481345712772318833722920570753071074613952267433711066438978854255979637833683893648036959629347294256308950890430438959002607563152334892767679234846180719244045424528067879264478872592556260220402327705756637706613611446374774759741809110897614194909756195219107924574156508993863012147746338247381838139141388045654171257068786047913748748750980807821298376308852756679296120987857984725718341511500787411015423109867258911114245717413848866895418200232147630550099953457126738226482429905681055687237348908861769226606921571836524787051277483784536334206097244908130437592594826705838680355310174111470637147025344512131085283276834540962873171801066837986116217002757022785111953291755078566098133272052301949201492467958186924654668275873526654272419874409489510875158175451193877312770625098018776247794844419233665623040948341167444908646739864709156327598164746252074013725193788046953833118862659224452350502920124246518504456766040545249833149391467468157698060689192204672194889276187432619712654389735247680086575113171632442603572656986643817084797568185108339154495537480297105962042213790543980996325360032609852116353534651982986504288000912473469855039281689387341321243043860389337858198864337483793497954296129175011018468338970785509291609917014423976247049757751994996156078145941960043370511965385894889443934809055056702273818102495091639075027486061651272591750554973571035246258527126079096351726327866189294873997900238906304343784824070289156625614423196714574266239032589717426891826025311450663262377115807034806522861124681498770610658371557575183235784763594554178906473584545253460365412460660456090723682354959502731767109081341026267958986417270848277133703115339698656666909548889308034432995033713126055072994897192671425907536270488098678188720172901945920383079640891211136582910973659442271080630792876635017829250412441568091991093644392685651926330113271251392197768358463636998595582803755671072857818003058332226773765769457681396048044005028022368978867166968206850908200350754449865666952517880173208424315908754148340254710854570601740633209638403365864427252704996506986641388767959360044070420521215296713810271470983751988753336482717838651332753052962217314729208908650664396466609013974066820162696110988136105909285510587612673524332924470672926170464167887558062295858580072476712101227074512068011400609030275242814725093574001498296509411137083691097004008687928033123856008597290273957272283052257882408054391809729924541871870325355485459458283581900877356346378431445539597591754500983527617355647269373423488009919811086819866737508100347835925005893321062704470933375282442013925626754100703969694095703783444251342133562508904736765968669515316926257837975376583586055755827632698634217650058154745512713850381248412448127525502780577984652469391029047947818715659972354848137340270704220451834997514393882959329849104526895128743203029954354207357699568804820995673618919550885264094897607287166434343549354020663747520144388232805432454552606053688910486162640686804972239299225100686961862420482007060196135234739861806999456299170859270418478882172055872401029869485503325650343101304420762041312342497959381873344445580965098113854874257258812788752617141903974898444170571482205092124793901103304121295011843261658558202242256903157875953702398886073171475464182540499105563439547633981475141860779833408375010135041072078108777059236763757333308391177948088903970666337744296812405935036549321100931603238817525956483226323139804318740036937603285847173451998068354855188712730999373817380442124137234432087512751155185968576224859287509922891831945396939884708502520531068647184643472236792813181508148263275553546093986356347658342422251035847264051697543498458654369726227973854795187994295126212178669080731155161199421010036706850489627104490333903464673279818601573158016126772264613113281891684835075942985518285722107039838377968636889119155739638607245313182649914668806512584888992617289563060241057976030476119500405537547324253110187688146025427370922989674637593715496934297982624918879730582447118609583894419540078096802733660227589164370102665720952914363991648950705577973009530671334280028160934444195029336724656045666022533652414655626536049354568863271893069151031556461101130112523465593077744477189011936117135073507946076240695590471370160571211144327292099690628742416191720598412870853024550913588691711970644810023968463600947834833010768176687696166539799297514587836934264482016859901662947128536372448138531942074369344262198172776497144486409126519861850061424390291347393515877843729702623186021993755299239863410691152731404175149169694058622186102328446075715356750536028541644411464966250767592939201888444340718438810017163618050804751630317938377428797140945631869308151463977449209287299440535382794760461141093311409662069536231391715311309502034353797065375781876447357640990569564281143707919150720296572821575688442020494268792079274303285544312640452473038880751903659239898609161479216805193275661965987209952019578485923668649778008453995361178108644868360118306712084584819292942299275631211222569413610439758076762645892205066332908612666957470872671891510837812839927513627277757116851369031981169385553796401571489780198426199200356862004364054771411057880383762001317669245025844710605765468527693692096379194945683740312641784781163247473947271868761232011038659231236258286535118450247103641404563852550735307051113885640146637373533503676578935196881770109205024332920423209945482184663672547467554257309074149811370838411015502259770969134114277396745326219522200305393146165035623374144039055469786781195266370301188839692958741025389807002000773470004025075308731201805420654881465234198360886824005662302206542142207800490452133572035371652045411300534952600630458571278971284500870325846237880261535057251826304401433598992064584762913326037531610416964548509783062175043614830456370662402617540026288313914801947031789826305481023001144216148523147873292311111763590978302826001415148898427238970262660177228225657897581675143358218526336787630913285176611304380412865947032354197936317554975961948267014798197027620244839952341090418687237070826883146763143817441720985071745633994511052572418437403621374242918126347286810396602821039473585528257660127742114614240544804180524815725973361625970407895778010600317053477868376295579003856279013046248421741781597745144078135943861426369510649170472470206478164671859887381238053412561380755785329414693638486962273690811099999384958731980770830084563514688166998157923899365849331176832653848548892101787982778833659550853569864712778826664257414149874381024146136573377583376345932951380894198951259663329864900502317898706255546230507959789427732009707300323846524241552893308444305213976531293575104186575008594285088813958987253072173002980044066343651724773299545394360981302333252782063542268913525404185535453285496040829811292725193215704538770991024687887998155709687531151063396809239262323620501493448019018744919256294990933742761232906932791115819520851701134489490447598308159408363755398955545449026498306788073399602424610638980656046118077054100525394864215937483181549929997169684274277171879013612000691473993749559960489669614673898775653576175946421622291442212022027311184005840114847529316246946704705923729000859375426768066624612531169759880043334157292898304574892713646793140299941740716298922093860187642630267343635385330291111523760600829144597650379380194103535646949023502145877962655411988184265772504817311152532779677257173339999236326588398907804438003992662206515397492852674536830246813735028491604471108760952103721858968224172125419234619466067014098130277211214500249262684893868075694933416753703798386701848875706807699175892719260961127873837538248260498713974038005950963264033700199864467895676469610283455606908929862235511124512540130848310698419910005030544687824800912883737647959536453902216993016158299109359722616413877660496132768400358292583331571451010880281430189012060783380483675095301651768903513553296297650417435382506309671296151909618356017794964441700588401565954524487076627550289342837857045436594998914413554468696349823946677067912338411732922837269013307646890867179531236389299902745827517642750883924328242198950818022130904934650075175357539217825418051375568363972517117022158251078177712481290310868010952355020560013353569771008397477584205632330273686039590349846133328356162238673631860227773962618307817313098044627324126270046487101225581914323739054310567279641689747882874753741573727436480845338624099717058683866018021729855440380796751781791459289811856150817424650356580845059594538911307846273444798221204572357531989328001836540733673005740972211085941378624087631020204613658302503498551689329536541252840315504744915705162373930956796976536997253323080527045348599300729479839322520928224750071229872909062034863665266039188786669325407036283749721343627938866098121305528851100120116581649576021412387088884267878503998780023106930780366230853335313375805684615634538197802395514286512413590883528032427463430484931220314735643892792499014811690444686754536222228115970165261423376885258093782344435655781424594341325682740489615968560918653330002895446438015668134812070157770575283283432659943211182363105988705317920120238498001779365429081934296049882829136437078769077827613699003764456970526824268845548516737469307025513126981001638721723351416958189684466853626927818349398448266215520351344973423247957885300353751140832334614840550785166724115995984509902262073102261275695124830112044123440424553178473744750787088462974248803839956401141027204202720078930296288391771901380445211517478697767600261003279929092659592043429989716377788156510269692700316534416836331232277713826927834107130827316062532200091852310757257024307637763514959514210705289829752198819762520148453248600055045796508235278122366432793174389246327653356958137297520719184878881280539876622740261090574506601064124046880668875945372773595610584498921493312071385388242181108864987362454051008279079172581336927593058889358824639970801430589783497243531321748788620026603565006430429003767283857587704950318994847241168092154118483483870663787945413699764454421834812579753337025961844139491696488792483242605059687436880741307034964197977587339820758352448550998162388739705088071781703739327872242642175060615452886818687556816062723862215388322616948316002093334718257358734793118042226945238426016510067956559887877385032859878779450636506340422544071848063484627386600680377575611592119489197413746564754756743320432402059776823215895720390899157537121264521552562603970975858314323656879683483916811245200087448037611740629549831005086664014325644734379773913650664733842167631527474819511484864681813765375675865681527296083235402902926893762465089874035977889741093333214803110121434060850447910827541011280042689023192542135946053027822085448406720346633367800003098822316429552611671282398248308989406350661583387206715722172479597605603656856791782889271753896223899685447746387979961060307200900960444752515945408274994709017276156447011670312497898353304979086056702917064144290771110979338717361107442368347135397707599457640375272720908457494461140313918498308324258722431441929824709873983742345168703531716232290789930223904193265351459723616803135886899828814105165498448328516972346006227864299738024095194818659382283045377322644890272804097154147079135220671730221864544794932549775340172606355633186980465832762510041851060781577680205251588350755692188220347696491042142438578234777691443049448806374128079832236363041466580802663762898161377104875476012315779687334304684411485873996921496927584236864913477169831057877930362660196990131194302553948217443142791161616020932289075803281233198726800595167315088186841974649680855039434165358779628163787093428179707019847674292802305684152008291700741683951334890328543595784025700184112426433523489452432415328306528104696203744454590939301803194769791492875166583283568130993966242495004523599726807961657489267137057060707999560386811415204372924128623829506647290802689752133141420237144462397961431986060289268707673331564645586096511875038498907215939241519036062863930587711480803955851541874243678879650439672690330182666908030879543976023545785338360927082994281346825811557614848768907942531715517658983308813772222946787465427478243508218217930344476445613992487620075304566530724699585517296240107346998021368501198280986737543180141275681453049896829298454748215183121861130601932980053744929371011675411307745937397107404650908022213302791856227820556429237424921906474730878827999548957997600719987290393322520349570363293825473213475214795193966174425733205504937351440581354933948699393067923009478243221037488625476173509925139690709006588111562635240947525751883682138603238962315733547271028144767309715664405581222669495120749428837934308754631092436909050445761654867826711285304088140251000610381903868050984833905745967161497217485508270567540652766929905321546049213297570550267938504290958564030272242817610005503921342387647209826053200916733914241675180794191203113911911889993354835749464304627952107063241680503230605920990577851090439628700341505550818735399273051455130593991499816684571900897959473331555089871955350445122216425520098702721713143461070213018140946067772135794227966053184297213071510501860884113379476598676994861947795913591812170968728803707152251231715629426369519174801178418291924789228884717280781831527918935878726505129434934698537106367339898737273361389289016022274080869006730930288526127668694073605353226351945765541673266910240335198957552786700031861549485907182904586020936113239318264114484614921796132418975153651281594339220770623173006200552068632661163917909906813157384711005070242356272077734926501009330339613290715979485769262631858374108854833033912090623150280807304901234686994899665442323567647350373147932708867479463841793121444616119337749836032832477169032674015686284082735811066670136034714170807274982253882377022096329914017579234452862084080959098414813682390003254463849635957277298315517681579584471521720238364630082068655718400926289074919653780750851391319554633452962353815195027146205118323392120835272206789884492883338980701238624907413438046309110655339324505325280459444667217249436732742614202014422424636656493427412299576570414481440293211486376067326587000336670877964273780191080205336368693905500341118066112326010575910168827145660283502531198321449791925942254284039653539073074693739652558900044695431252897807705879434416089074521541866923696812663352469254539131846103283621175963809449591980859740449385991339765612926224206584658175461930142994020030581145925719216137036625051541088116608087099213297627641838856907599436076127973030894130376305348471278561098395086604813800768856862219153068086760858646881792275611700770389330564330705880072509586610634770697518600559357671814339106622288354276910030404384642805656444983186358601792949780559883624738565957341332098428506609952440795360201474494485792549444131456174648155226413471006467548796441832936050588545064756755164608757790538821476860720021436412484075989798469771575261048864659351064299381927346724577726372291486892826098130659219579691657986126967016961332602145014768982683740259257667451823488568130998077321837242254907852655766901455824301096982910599008458759148236847097586509723906234579805042890166759153405881719689922579903039558152418307986278231043308698077656220744721456831346312860763308547683512659244825193540290588927597985997695639476023973485328512590177517074254011834001909463618223631421318422270001497292903594859734269292309793667727772691519758481788796216373619195197914939730716502898008677986480899357046914850213422561831847451200234121598453894118396532239424424580063244020054665425752087708962767811450116311315888376205103954956460111459016617709426472987918490415680691781598007250325011816997860967764356887189524451545782297934037515795167340857123361518918941396400508178438084432295345227539032368350558938619217137662433073536230669380793777677459361978779284369912403450643905290715490608859606027426825713720270852449107341061445548321486150866513871889659683178602308556950378743886084602235042689033104086973139990468159367559710879973056051425240803374630396911996158420590854537651706697133869996245447494002812569139433736575385941803848671809754888939944879837097838366351907307894595511274832437125484134228315119966519344681604099177738590369477995603887620011912265005513874287857651036333244802309513932621659734899866282156261018497593337015044442890955149568855374933961899928094489409163525069147729198779053658266182477679932990510138887913953491329388427037357359961526906745638945220373022664285032728595031059918670712348730563445036866299352750087430049872649828644647239322631192023915270930087032286040422705543733066492128581316256800873971907571862879299033595554045783640637527186375537897099838299666326778095282445823931718299063430974172252536868908187440398808814758117811895297874788642434149879257173925210229317149824851438728091708330269359926782244954142775875402942899525740554735317327445578314959889946658484628980529314351804615581836796887863488255146642835102140008570124184750679403251920572840972703155868210121390432158461485739428363611392969196391117398579877794144248306948893579054096301291430588031215929399171204500448009692753106845772850199331719973206301291386678346131035609944344147015989046836306874737734520584295856593743943813037459679579716708772580999389459940886795175327891335044437639646786404022652068410592854418864105568241918068276692869552944999550318426449413900677051566245566516068737932736827945066093379466439109463200921712077094178099133668270803952621572631629292773465512857846690736635534860609607881764965732428407668067502156595878314579212184802841657708384984702369619474065535837476532472799688996226252769323924758550947558245344587784971146255770087385816119683870048046694856359823723229421121022071582088003759539215390172618493809714359084224411408058296621860445696349366290709582074381927616447412662987551179296475306526323551591853684871098117154612435003690656981520340748864020790107652354742852564319838189389762994171898011847843863493356416942373261851879954460612815191505341615172676508981943647676261412246973538279787471586098328611449538652063475442002846605087540169734793605029438327611500416224090959168410603614619093110649503062046236508288988631990609952444573059419891441968515711873243986516675726776085986357761030530933791146728646204993972852292059842951388992803002666330239536280469947954979984986636093908757452602571544385362317225443831179489846301341550368933810799426912924185935260829130612052153829233083638867712020136964866071074736938833513809593504433699681275718232059691410868575593950565048482807372026346753831125339676299310807062517486991975386234626362018386088381804899656338003598037267167582152294913901519102714470593863729302069791400300013230262167202034192068070185436943142745745598468073910850827491229721842294919919918920239510575477502556839265368221877465833146755758770482345953211688775637286360365142277674167555235974962917454697913975232139769033623182624368327606429719879784628917060293908691281001498710568080293081817674616032814317294672858449412193004260506173831245016576562065661238975890914717754321145384369723813022442890698761848319019462283347447639729224848103009507504903005901563426173307789855220540417801571818028435441155644520525145317457268093965023307511630903603401940888945526705443155537819201865431097688908498403309507821120159106286234600919783828186158416059922557383394537647736654174536867879127495952567247700590361109632732834531704154346250634632989298676360330454865731973171770036512494415087906798220004785162493422864957274091258458038255320871974587994937736802244857419181021139950888748457572764500967764793374872618859216397986394189749355716405855973747640963368383798945605465840351458982318813766374463595973946127636418611024918977894762025704304189106595102873187517346463398076757342084307410315628003438940781866868027279910665859115969398871225127923105583382075228344029808731300221102299689187415977605234611205781728477297500099042810286043041979200189911215219596330706303030666103706252530210625560251253415011165480253373169209781985020362956058839657409090204006756946081031667158544873254798147683027443403512930121740456907598514857742446429933702002551465576379808176944929506845630162993340607134637081904288024299154228983594172651267344576779412111545080635516728431155077280009729127942404079059459994122937227092920052832516755947815049267065666324825265956398406987868462015591468282738197180765423522842238903819019157562292711311190509413862202356927389212641566524247985042528682863914657650319853130288155619223531411368111460853187100900233345740323325053717834593518652408763447400886092101049367336646477930618925122670289417921060471017569873140450584587877720367581919292646715392478205686900770905500855870279105076186086035032203281090051733506651509779360584765934317586659103753879455686019252967277828175112163092068545423029358735736008034306199388764216703873106465928886820813512412414673175030320768713937508170239386999364256691281415820133778489041816175510991232515824164113863333003274150756189965634047527914053766418119797147088545210202435106535516181742827991195628809002576308655074581830338840822200208335138496722329139048205334422558739780436388398257682516256009718625759373312730015875123743157944907710156893372873909389593806471432020408239561668596009283355798441202625989047314315263396588920942145847913757339203415631306529618290006120034723988548946655231551699639961346918177152394333213154338855748136543031853677605453516929798939033377016606461244454118626504062654688737918006602461652229971376255403328647242511971282302486574227460683820797001175482919549952716805184442963989905835814127287051946638432538554753364456063479602657255405101817236160851874349494617379386513000207252341993019849289093234201100960958322672922358088035661999404651836772538168918666963644982246805134771881600019883130131756121194428976536457253203574045175871457230736121426177179364404373276101840492948872133780069091820848622859282751906503936971780868507083189491642747002704325365717388576256356796968893697850562060829728360540405281720120519425389364177271555870536140428348803207011095041409863085930333604090356326433789903393806443667886639222113461473700190646974991749634853352369357891208619580507199998506513607141549524838784635579759435146223675839409813459197330315157914633072374792726063418050258090018916440201481542615171936875023111670024765120412214610636678108352773553244526411164801990494559574392074988415531743052061408733244591231221312061122284071135843637848948252222131603499488022267577421698440845020227713138945629478424426005943467654243867895584476171316556564829755035660647888406982432484835202079200976234288380313023409149299995428562560335716123053640125062740732250704959644832619626030681234720291813705686902635928669433897222604047822937257641874165521828098250475873786408023311141547723617695289501950410372243767866027929967477398386567151944968228822982250183293879298039900248621404887093221403036551413925112574491191484040750331868622820128470579950661664243652807277670628136380527200135232477102078636890002859226392869121203554050790713889528604934921580768294943159920213864863909710431266042072506709524548432864765037445521406107003487494647576473603572501927525792436382645060547083575818707530654196854071909254649492645908344326035446334825746437418423953631720355488531367967658242790536510771155787521016414457726052755533995881169428498261482895735440187517584142242743730903120265923101877939889529859495049693625712877169223922852311417495688462900883671453037735954828663074605985605802514782443877409353959281772059024583379214341177749782245924061562177683790280775911057713021418498151978235765367985191271831219160338993260775289135701818187006962125556275980910938747948524768160446064881559846783949444921019680367340036883323935238937119797967289277415406184947940529321819319697858952379875331810028474914049935149055887564536293262429283828167095936605569956144851988228471869689369278825316528126350076329059487058823281763983189729471010686281766576263527145466038093041986668554073808418988674081866335853579850634950605924050403725092933771408786668269411600946550964483951640956805402106744673005477255290127745997809240381276069194284365628501960330449976344918709967918886635327838100951635285229364953112544946367443449396632547692607224898914489454954751382253245448548038926774474693224101174563770198879199237266672361336859172396479973637813865744338280265866966610771738758976590420738424145128570225539143778213960736792763206016859989075227296568205830947414336778811211547245671711997878149317946043441357095309508883802180017169252446036017935743824507570165474773431221287853357111077134018903305220620699383560554134089331801087402015618449434936179242616957445165118231304911966035009028006817806393219071129327677447138157386015626343380089052493097197301254386903625454276932883201384393917932326295097437711119920739981266924752516637115486946140248960285320627189170627286035933926289376525274722373484317237972201576224951643013628941038249660756681096949369623376653271295801770732699785573950267385310623064831464640229831228670943443872089738971454640899912875258795433187120584688919525876856034375190356044379319619108704861780431385805333047885049872821938500785527494001210435119708543882146372761946839473860566248995542753249258290189347714170978730598038220743762459321556855625149441678994492578172626877575812864942814920652791241903096633186260627613312179793155824862514546655048573860483942562910802816052153844603910324744862126435589841148269836530575289247571312262965070977817915756630032032695737262199073124528314773880890713729712186779065269868004185842371948610295654687906710160413172350040175024589855055174803971309250471803716598867687237374712579282192949321832000350170911536567250494613296948006872531365319462677572245504367405142147618528560777031614803333346494777539640286431378794763110278005882851476047002136817855638720354000484794670183339776814283483408923968065593199052947554693428704597271016943114827532725336189419266216184177006624126374217208689968512992024565872365952443901101668933652041221076793614640302993240511295618828616155091582619988644299411123138352731135252081288399960600677157608852633480911211784317199407751360391523756219203834593611244195252865293060001971790175475719430223877258173898101858405299306576026602957258503264889872044445129347549690877489001065049636031828236014633654060502773679060830969649143645122833724176404489824927317566205222182788032181146318498450174462514203774509184557749515603035830798031880362903025622192271472495309768092197253838129376243528402124561389137029467292154202745597731207936536204993585644541862108571537445222735021088220489263691909853181116830419081329564883268578022678907071392511223526914355482693801519401092952913373194478863836695378801893883445047884644480725995662564059223472402725853379471173310401559497102890899892003719766955230469493804551711767753323295242881447951278625265284659842245796713379127751395077979687779313848125403715417384305294504295702536256543463715251609162692877637704652802732729626770293291693522125983381573343330414568132624385105577427230887615896953259847901878300716529044827567802598940771999954788506673180469015988173066729982587485040788496224411612686470117915910525427156820634749364509326915809207672132814249381286629247119057197104314871705745789094188923841916769980443360906572676153608588546644656721460725531033986721603330399841288568115848963404445460176573615622315811571000189715695519365063206037146240024544931415460997999306010616115898999785070796581157542370552294834988869276148880917132250426302102427583056807126184671527559629352566467097043382739854367228583628849379949448971556186121306047938039040597265828820640190129854215199945794546743554625245466579420094144378485222401808513777797541843168670068965959402993598738408186232489901377847459375995181760053674321564525034007687988808611162155799367854304906863579132084951585638176894821274550023789321185533913237610058052297498357910005481240763384921584982650357875354277297897492623042836253666390822812165952654326635475762483835687854853052103277387621339041174056345171656222074596138027388605644725973888679934832676483661276972225442802040644002467236724788060678691373346675685099922789714993994638039604700946298891968025651681715282384698777456038807898138280556553188559957764453106852610994839775903513632551413247754878767736350889507940644444598993049851731986989010729586301263244012629881164614962135629718006655128031090837977505167394467421954018575627105679332001026787264253900777868092433052686690587115401848449302687178236149021466156051632683619318158630230437106665716504968876024355564536820223209074755591617274674225776326704796405565055964749829999015882803759194856096515128348519278232280327988834790166891627296736648202549087381738837064533697866402905070695531821137032560394206189729955741766490944573758120804783781724147767035401149311654535278127709234514518691098381003648396606357108610937151752268140249796328573696452424495495797134076531236208365168567037737048003219243897776889940504892911575667207455622315001304350249680315817081848158594619415192347240381413151398159126029858298544161527255072856859585874159397174843053930487289310119022921059332687668017500149829275899130449755284611339454344579431867345817467879010291765256526404039132828592823697961976278394878329510903662695403536951968130162720621403514175384342318253175630094646101416432251332044086018907031082219600276497021045127973455833543925490319062585019449404000208417387831500141477388748974894434156376328852545970842876411600909301493949181062881854210765003929286768800101637190360807252444087070695433153167920126545793518776462390534014489507136901496816414875125751674535983385474485674572768592386478490998477082665229825222810846844931956899536892798704729506873076391309774585785295932297190042037091744045230608183201985791289194420721250197237963707074592912758458363286248112127481216966342570865837541028830866223979121706958590057003055450188553485742343726164368288899780259994413815850794295479630364643551051961861998325600601086937528351914110445938032970292887268721383789647860829471343572284201850088710768710930778805465858481170206210276550015974822321944993668306052281011244041312709118319029854249611031418208877557678927580596103570884296597711593853148123096749592436691971714723740621654755677454264997389107212594870624214843806597102198868321404361370588487804728797700218291788519370883252415154458101338393207507409128477429164278962546747905475489526968919727555308496284833717520481052478582490741833020969177305655776480120305582543127846872894021627102654620740419269383364636080959198812225591244330223382770666814909817885254568596002783332425409449444045821038603636940872300119854583223083574441279928317008671182199334271713124991685929307533736133626533584130478528695107973191057716767482436314216698972805514327544980038586335841735899826050308222630398265545087027702497823112362299929175740137966107335328666716158581831476356093929614560415428613630593769620709781796289020301452533752074273257303138227646906579042987785543156301327679232705588150595092530731495993326429320694319992381133970686001620618537877181508749769797086635521649561533340203616790302109505741822083298838679622732207587216052935483231129795542358177939419327852525320471807608563427060149479200886033616552239123705354280183638912267211042348855624727825975229978218313688786642066689551202354472944720837908786734410137272717647183410059070555097067159029601908678225192432093698783368181135044124306959988084903675685485398012278777544106484000120341255465350139267042926015757375652020253463275937583281466443039736561245712580981122136566888758800599489082521463769966852732089163151876713016045695133367953995879809703735563619359166443191197480543148856102520299752439906718122113160397005804274467222192021812545960583056421528657934830970457426901094403155939454573958355111450513317049913531931212487722707760544764908641624080171644652864699630268314671246527858410736202256281431729754138453397020219784893080846202018887127195380784439543846674273039707916828310949836644888716119387421259671214448851536221324605041221876107667758372651319383737312320372688526167888383645049071661128175236669507995019407632086236881123582337306115904118262606777857666853385901116492885373422445556631607963057250549041352551510503930676706092304349237251959505515574164265873079324451069304001728572530715800449754184836744667933923359707720731350109920487788809019309456313392532758844376600557304700810892834281366836664816430669020196537474827072888971914507247634818092141994901357788205927992851119460709384755951730331173416289628665422687676456338302409624259917518599792960960793866380416267871457087736947394677206725484056682192738140980400703597750203627246213973922776132395482984267533407440126289049487746050636035437703965456294664033763295107050984185549062329496089497571283988803517721507013447577297758576423280332264948505272518664916985008549151797789218485996125645833789191977622416063494891199708981122454572394726711690020128926255575069584611700388672358241239857189393751584322323602080211704037865717082803459329577213538827823974556097052595389080988289515599237601901548220917004071914436111207547750335490385706208779071436348631847201135200337740557868699232118830840693809457450159801439351578424184465065864827756937493198789189556506029773451942509361369371676999369713662290945231741047940483060930913856526338998823941485278400972130356780070886280655721691058065932738871964686594750922095247206489174809782817103843867582737465637296052540591094993024807714544740719237672500461477628155228182679863768190781068579509877499583122686241118301085455526313694469266337958772886523540400778144447079573612238991246340727006761544499837548096905171458847160354452310225650962224419426394599841379364587679030227628164496435156279040260938368907178844136948995786927270037662567160657051745169091809072910765611427001833589940024306601830134531940161326657918641361728579372333834088961386494443158100593750599772805576658893215819588567183558415668835335866597905527765357380958820077947423370603323267122289860004504045948029142356382581351137861783712345591443593635046758441874911705115583986258471406934674686555017734004878996771766766090576233060162092352079226657768335082906253491665769475524287789393130004423191709262687731328710013748982334184797624375589567892778198279921287842262563295679130925320630700309301988747104663604481978904990427975037926390449576232678267485785837388622311388856219194832847011573523537727587718525464751850730308769072576677429354491907665356806292464682542892066384876880952987808087662442905617350069373033984917906202367839982443233193505770180349207393787729210014913437630552291100181012304695807867365868735643799707233404073663482076083978921525190833997861796740044267266441684643235939481041106101980116957875549106599913402896407742540245253007211212331919206273448112310170784173553583512670373328457372829930582284165884671864859751891399191705349102389979258258579421890055578439849520977215980955088309546025429129095585585323355800928768570214021827501998768300201536674395933264666189221158453618444325186848960277596180471421267935284042809521699816923354168449149776855492150303980510776512938593126554495012290744903262162579646156452379357811103616356847463514984349953387786396529851653440280670736275442498233480821795793532332495807821249535075490033485347505272100618034084211217152357616949245055444701392602386001434371718311858644621234986572881429566827299244148485240924571766892561760121391806413295051692258581610304365229669184705559597565302245310674424588113641054209055229970390101842293462586746478443706818966348527561866594722540893692262367377690603339301558380112812394691311703233254500685722539722845986755446277420267514116876058203749525928142159320477463329374736669163154830139262095635430986454278836944281886033984989861438651059381216876134282596059817028409414978510073864979893257315369019416829133433713017271851073515202489454120239309495467742964311839877667245845457500629631662291236322738305062822361424293826584825649957858906801167691221372573584837541345369201733240752283040238105751190241507098975643306933705276741911597864969807851531047672234412590882231021151435943833562607048289781617247700346600255824428813672430952244852021339084697955870581658410622043657037550287275127833010672638316570288085861740660667273317506884627367893270968241984030945430122403506422482917673909853511929373771837002219003106547827643980067199500317358750918320999902716171349856733388042779982862136227192671483840166567760796374256392848235002547124259127218008466876165066924206426091959641698181925623338717866164794540051036899792861915207216360504238053053461620149403140791975944026708534923026863483130730056927050092743723657481733320480805433227239460972761554188213066561633828192743356850975739009559352438421315474296503942435013526948144078897427873515865763310691951693629879897986929897329617198964119527691968152693178456100002331063058567330612820155965503736388197101929416783014222868948538645740998519651634377069516097240056704378962541278378645214522106634154539677886815661778024002930342679353812460008214168149571071615470098279996274344512590428856767464439316966530993359519893549551712700384619292829664020531388002136555636119957638137105980351482367876307742790132494406700613604339643296560052725243077344258865808020171477741348455650297242169642020943368827380132585436747511546703220850523050523226472898357903490288925641885762316388022212121053384825023782073617522593304262603441877298083917248721663122899571955638322751291954760351660257286378339833095226028476714505318460460605993435467284745196789446719382158633156145199123159804908208596798887068634961391324527732788526567913303427951108928586195106495040200886845677008094385732302632991005319812494012716607785076937290731158707053120929259354940515420059693796307343143591144015454705297354374729446332385411666172704509612799526169464523714158475086837516216150620100682582915515567252426957325558924927641851552096348304391586004267688501533374837967157198945356860648657369266630014279628221314388923655085227824536514797165298683984191821716967160389370297678662726412582315784732178714160372370860660673388568868685329381106598638182877086703498573248298700568780267012488780998040058332371626472389269732795011158925499833216656786437201041930991365310805346628728707365296019207930372505764472244439453431874138157955541464519734504539989208712286147596479255296745976450802961289922420490744376594532430944335195492232723914330801412216404375998275743092403840634536048743944469392323423504743717954754083551275167436220523107490601515822233006264011470866721300570202084973913337645573177171660650616491949746005807222695938765485385944924019936196214964472913249670391425371025980901524668098855412914181647202351669823837796360068059003872390721728015150385407927169991214380102848246513582149920256867987633907482249354040187886823655310149312384095918427774356660436556656526445415205750717772025219304887622786599536564783730677310914552967822227480643643436779410193264067328530134190215974119658872782479441448728268917627969600056772960920140744340445950347650354402429850640986431361254583945742969892459566637277560093469280893004608024891647135919976539916312464636242216918164180711674039729322496121955459839210520074470551433769931077535601489231395130887424761966010235498303534588136194854833160678256395873385477229521023815552240744621538946663640000634617695856651935443109027611643431794617693090560027568864874996808152194492251308272491040691100532145476544980072131936359264245363343904146431893109342287807081486934186186629926550449458747699751869960392870020161054602755493427907766569484736959764623853581887935511124702386059532054175075863430308464628357607260257041471581741272737728208117148714410804842759558430747175601671668626127171839974574885066421308667543199601850907911601077014989481531214168903800705165244864562585059103245049976260517248436851995537368075342304197623405950204359913546695543344607579621558990480646125068183641531275633218359407488167046114677359593611498384596120245675276651267088255818201911733472582571294583160310519485566101701404460657586580498297414409944663472697394186652678043812303079928812501706879064980699705154006427343887356249366570894036744546570487213787941276473534374840551127383469827122488071894896349628931192306634374494859749217361979036092060561190302611214084246840748051952303323064276667365878311786291793869647941356396878673991401062852268294580622766914867283340957837857391033285158264633052539154606795968099812893698598565319346105895988774726289769033519048460351758239233152932619258802122071491850495758032012248562476045048347406967658374612425276628461736565385832292708430261296438482236932659744408109816911161340966131858291795372957606721181698998575302175325685322884811726994237111504353741212348860866967739197282551532781944072650587902252770570443081249542993251016186267965037171044181114979209221773047729899403224012265295518002376701390889965775199096762192532860140294231828764696280975266239521551310647697605771115623947495668345333955175971192959864511923986063685859685227273266407468041475088500936136891442696728353653127855168459668182584611756859364150671991342069139690449562899007235738043567888522357856627961629315585769172993254711910625414373126445412336551369674302812985418789130552792832773772547718078973796444895913697021421091667770981608886886422096129536731674773501704964256169938693085698818662503343284654698147269041532355576951978584754328207750809048033828059818996947762045780128840615228196248525027535138824259427657216143914871239111611579526652624350688390030758419301689313566574989313388731941690410336834409482017070440459490489905837387635434850142683044554899437476138878826637633701996552583790272488676044082935489636892523977721236117543429555774964226273772893103859323466268941809726118566332619424157974150157222402087691479774982438381107941648857523408258326881851215160727631246952175084543743195708914823541962567938790839687394199363086301021913240045958506625509685631561215174671928210259651246007206947844936719095334848372022540779816432176959226417794519378671913061706042785223521857658956903667222408432870636770594885005454210161884062944226771742577115002690362842648487522848389289378508140324333011282433504618415492044004548483318198299045181833284455577133743792050286450716744470717230552892572000788606335571711612568845270689167493265109668354922733785806517505578843571108720172422664427442707569108319834240259509491241539085849535434405008364250008518866395257479809487912951463293346246245326925249765112357681113915668218022737936652595618898330324676365658740355853914020423063326400641090034806254629757586857882022746799556160937141673525393627187556278650692067497915327676694153756763665629209959699836608910472669747543444129258000526118397712361197192823468321481964339894203085631326303358203453088994241827230643110808517300065200909476101521925059422993300015734972259690433599292388031344228951736650438238383742061310210474919764860416374359228840320142317289478965002795685021464669653134290675634322782982467119708050669073881982388836444791082406054640072129366271459577321227081638840301973923603919624206031938813693934402297203289364254496607474556892360934837413775713011958655227509187822506891740931411419373004576708411531403506248075339191823553464506602040030922583606588319661983382283612407947851256793643431021669302491576533814437792544341650545936805229622221056459672818654735346527677933488253005977961240343679795678415710690276908407534406906758081116142112726275443902630613371173448069156129266619756337634246501202517940806851776600455185921945686011081231894950229919447699841357213091180797252304213934187173171451664173471688456236831339441711596402474716602731252360965242155184805413867351797849758060345963888784533492230085659410577077437175608949472391215275903488406183074557156551499792841233820043335025718352144291672820598428459538897759545937037017453800248601982503444977744073363653431626013462592094227735560406259134075793885641735352470369438732740151526173189511127124547151736834529390336718524531431719652486749083801964825208069998088144503290589335284740996660666905297742942226330381778110948399568264214234215247061832998858433090011708312682170299439371191822783717121059716593480420741295881967361092808033834724987413124809750624602496389689373000626194896606845381195506126333707740308761309096801783841862763218145197223232438274504595860275414907916588830536741880028739461539466939582644782370825408480498833164137759962618294441661636480326052149006099249936477552887331742491648301641592776803968880312766774268696473032706996951115118140018754654426206719236135877116624142031835702898954099686221933202965268920462960432196691941939928990093915011431842104796445481557578038902903368215376786844649976004976688567314147612701855557204281006349404141105182389669110669851216861862600123284988171283825616341958530678202752207712622071719687146736409365209988364870344530368559893760305065696741136504573162451676608804234789257417690474474238357835464854695265425804146151929824804146885013545249044504211479417692927893939058315965189172671070329416559649990034886273269698611564699929179486753448987817524193653811169843716461668641514206674113532305273271009373304912208908936784025459318026250022513930995227260392368100684812256428021231643743881259154363785981036743086599191022805029863060051997479552320839677228692166987565130474531270404207627454159965991628666375867341777440524425947234429570283636968802657322429187752577390825708240503333520724023682674436336352332944257021881451596169284002550884506133759757481414224917765084405581998466199941625437538664454198537023190557580834511260049236298521973455048898706234355561891934358899923286125699254409161321537326429709603694654828864651058220963534135498343269297366481648667381229628323548887199108726600952009335533190628591576367503020040934338881184580059003181749310773749007661563664557969901919842153679737414811865661058625840851929696423555295960838011644995749823663796201902670357571478041592134529194089640499188763620460948264973848827243901146671247137589261085518686959659573867818209279915133479198626721930123345268992796622755138244267692495956708299247991054362749711175813905465664562406401943156009176043497544472910260543386271906824401176462278835949453444420914960593161320785749126449651000028235238559324403215599783980966359315004143215246764214015366563717860011727499227099114266456746701144837423282624055472691227004451707167982465267946094950214241784578608813657495574506021672725766186111530473057172975701986069164890350503005315730922579202288782821184972000947670158267518001198901321097670675187217078742374007616449372787351962851933330453460934195363515955295119239111521367840186544945010710980638192527772113202465683921935182747632023318704652015774659202512735751092130351276306222335366553177320070426324015571598467950775376401297667270654230605263773892512891381274569369793352226690091337033809700887749763576913554945086424731905597402550703530934067551933066131101877175789539329893628637054127885698307388648867905049914915645118608540213945910639513803062425382625143105435485506991301920336440300683122431351720688432846514496624653458027257341388873031553997525461618221495716121639759167957791618967205049126402516538839789158229505849230164097634863704292373497794127399304445405684699789657529990748837833174442690876007072552489953644520757695597914035542406262598704645229781411403226195872213300013226621160419645220150340668798824829919793709171997588073303685067534949488385586187670461097841470885667476318747592591711586087695020617546781183169217526270338839138344801463100417651312170327807975658513446171200243076349583041504723752545529391305128378458110143900091948875758384123691811620233379363316322591194834769137955398228299559656752379989749922607738526755943616700233113617400095443478936908660410929365719519435446845007193697101026879495699530650280581268259040448148299469275484458058878507538585486394292913930971400493388851208816819769133404304827929117954083108401789863845307856483689418165492118285483410560123728745723869033353528012754659620792292535766304783382394812869925020028537393739969380837410041745445300058445465941149452326837230374399659331271056186244024853001423417194989641329594875216966053937984714599862403415612994665951882306151112161714713452904301901620743397662444273233238801237579455185468410240348695395718195400117781276287317815626708499666259448585714885557521182404060389949048381043657864146267413158999933912727990916573002565894732206637465409746414456502890631390640981832908268868179698438549399626389565689634037694450603353240468583862096169947951861369888210513889847881503631153075886566195935040911651806618530402711908964222646056078218237920488121503933609851388566869850203042058874290091119307344694006980365214289266021318080928996986044973437840608673262973650153855278126930362634188686121904157109134181475287576640506142262836694952981087945385822620490085686873660567446690747343720772629865177673519094551929891453672369825720695756515401918440855012222666596827732003331660446782701272334416984678334899817575907640353579369836332932406519130211716226376152998404024765923584667770898017868322472429960435354898387668632032479532324701324330466996465750930707233254494160556279492414607756369625630835061944998441407812239985040385004845238110083427409010965015416785126781384228744383092945356330047701930342639637314648643935607589887134929331877264918530943681393940621649567113182183690079385857377352650253793170458445485205342806920796345342850976687315313065084405544780721631421764031291123188946468970875799835430345522620159588326538688145618844426425372038366674650810799381554539988075727768178909469952664397471776408089545731843386924641952804166884659283383723282055835954264563801998704262995579760215102661188931324729897526085692847115137391691686354299935543992598499749147720913037930610002823284817001106104193869012781086623582559145848593688193056639649826148628957730105514266486543647724470542897227539016975845878970825523338445097598915245537120889289012250852272568917847728151655478343825029755243352745292697597058149846908411714665339485711070429443262585733924901140079737502378622912832379515065868533046585032807482250880161188124693281848504110273631188208728191800786905954015663709641679931016384078395876418886790394109281382883453084336141846051663333176514686073233073112222614994949480272388166842599063763160287479386989047490745446658938713630414744448830252998737902537495234640966165242361410950732463248796773112931931975822841719618883693410379707574291767499349665869968794661084821195992323182563592104177603417140410601315056727512419147662237462972657118078637027939654945887638471135018639959404222517964926508874825252601198276259109362264231016478502417171875525882166756071499310164374180439622828686663474331343987014795463987239761897729016254812772244919179820600397499146383784534465976803453154800045810671468719975165801769092941949097332342273089359144250456761395814723196886961743851037427987310717655028359752742500944544987178677277218813092156193318545507915496475547555607687210477171865383580607252528479049392060157139870020634153496551782084016659348044398001652398730799402959853193968406046776039490328130551304654585421135669849851586687040559596066103975061818106057811834479822004146758716647813776338648782008267149897352668111127361653916929311342009769796523427312906183334386468122653132799398659131158228131109704113055677800503220036486935632987590653429595565149090338155736284266961317608679348811956681300127921493722115886251859699755768944151758966490148351942247484703317458212424040992551346989380039105998262914926940032724118587549546945722002850342615135255305111104051066350622871589536182687396992394792259891079824630925140531036766155203347747974392395914923940024868900593056191176463076865166665666178137859497588470544595599448909109094068319373299638580438151022054733435906958721857668747201683724997104074401268945431898427989717041240002570505547586085993072300343681360413689483652175421878070742018802851382339332647673822865731117992835153064228839847718583184137887305490337407212378449132336439931633950710353441044200124144253052048531273924165356140580427952522095422266847442322619936517255777487475690764723456138717072109447396383135032461159234060845993804495899243676560238465631118777818308694834276615406548546865081186739212710010536707449567958468798891534182842266273284250069990915233358371492223216643839832161480061584204987211935424048971644750000593244896755007088614739309689175080386552141902646274563486960267017366242882481598246974788960384376814796018110630413010684394156855751116655203268623882530330773230662352405898746429652082838251925512016658132770425410633321145766247146318837321402687035762695405386667310389370666589360931270446067095844111361981466047633860783184381667829937959559241427745018281463868844795148524346978564502477880300338466055945768524675899620697903848333016817886992096398144802789441206338275850949515364937500212471167807480994110618417922728190653473815364664566773948750117709519449182581528608047299926475503736360334323824282757070841111269311446783776280445137904737065604303405538013157974398612589547707884680615562414417632986372175956211038802350882127623801978051028245118401535522258507135026470119083161091238631081102906691174095914480418282946895651456505754375520849349589440434977309044757640152074607293895641534258499600527555509927362836972371897091851602313118652898330888752657464897689444687671383071319357622700740108531734222761164399886899084318115471941481026508989323324877290789801032269713425113680531157594472087633254278625940183405265287885569829441807622154417340233446385287992379489177281542794296763909957511134721051531091962812843414104683887237193772245310227252876591610521100370209533406997889544279727064763738062051836934777549251015494941471306256612261790531104781243392060942428935741080192365462643795692668460977552922210103016716977400991844478729518563531996339408421275428196446571135950124304592961696653755619128526840782655581314731223826130143175298374665244384335383124044389564765549599655050956923554736501678172769780539692329685150849587029777108442976403467754109873365170524140654500507067002274497014911722198992217799638307692693760823576706840691916469253530344429517979735223894409898796679889810662650438345698154114282463871761250069832372194174310098388629519223628377447199155968379348531307371070232211867707724397424943947045895094708094424373020417438972453935874503144757269588952414186509317530681695349076263616136092402948309030345964056859926758479984022040340621471285430258216440708335331879456067540346169558006985318322588046603083726234827342596308454115094804322533191358551842570153735579563755420919915665002244299275260467856924717498735219933410972493622031989435113802396489223164724482049710304654993669100318551178093112498655831147299071016135357862103738950620059111852425551245998801833497290320725599938831120176585752372394323461488760823713384196219639445947358892118883180109596873707453134218530304866452299806766338358207685668203098138649076333253375432580026815310718231815380288481884453295105295406976961656822526557547132624324659128693157326226063206273310271883334413785941567893377732253595829726153123097459833130929300246804749171538885888805462104940970704194425787684149292713734963631704072948853348179676801099475807834281541570448348449754438212766366784868333779425121580139507511198656950591923081510117779244874613247172535586295654288602887339174242928264416960247258340574252868754435013000783923889847413063972461988110303876062017075136232422263138861851994667210955232067360144355533095305694872766027316533802157893971282093242952896766574206115550276707936129965769207388455775028404278159941386500106778464565778327653201691240583241317737810275512838282276253191498293486187080968151427861226553637521718022156678266239616084265396863429903905435161620700887801806352984121522651315515534576712230099012807327189465418876513531078093151772161357297314305775632263759717937771126489962994042811701845124938802799929403004611737189551362869163000769164424637687670628592674094684443450251150222094509577281136109992328741338150047641039666634128616017289292336954224005204510533901284921813229287855708349562843674897011852229086403490019503792758673662991010151207500394138984167945333220087719165151903673599743544409349648835433396357390960982899459901498187057004788405057021217391390043448387970227644797916936851407374728139513705648321656100827737868153157699273636509673140152296009273305716754309580733867463542225798922990770069754717023684141357272749292873138635214410412037222647717312463401238171980570038856611450211154946546623066568751227391458853572270587804544638282668782485563998913589978586635269240870973746128276711659367185311200356255565532337547228644034635053247233569479079521218947213194159336351487768658182893130431807552358925870506253771862766963552652291444005677244851136978558291753934486633180929254678553563801750832958974765049851099764397312817028374739958456015806538417826682573712726188113181413818186124995814617255504927405914988473632465115607303304213526645467607024714047750674642142079306391573251751675216018957939907154480324398419076649197379556068162059808825394377838237603837574510608474299444721071849351910750712614305423070616139953661219435978181749953576205524290437575963086071717975653717544640241674370635925300763281090004588282974710774833352206247186088809713590164681898992373745823477816131361390786115173407726452739119395263213941698010884444344563125767515140990430620787790350962534609488804833847964118462996742443596429116716925688914337345519681544267621927101098517869364745946731138364962845241501448356926597360478345302131931547325726766228472772929703319976511474158481712517112103531837910566927973388400278916261292373309904947047159743020677061499657711271894055798129495464203169669025767045101198697533619890467999396687288419552227323859304458237551283846217129164157895485061185401844630143887696166514241120729370923001694544595707980335420670222634623693247894092717273715379681778484150372085303117491224900887516539310611422114193895431471936268938602152068836174764444366703331991608715018358727536212273404646898804471455975998159079111282154058701877257227604470518397368145727647082097353661017559775446414231660827747085279141350184762231267660589949916247517292701695786218160968500295364225876743319052038685538478101928714542415234513474461435768700852675569461087506686972770934332613727344807929367720525715981666918741115928401812273336649642469796797941503085510755584217417902075390674448887166219375774972592381222823439073516246745230552998676275540843045462886085121553939789459132955845844038548837050704680699785629073171122943967000224224351708696673118405355652526866701993358312219920057296562836751794243613146143603735088917738229479822677971887594495962201610358212763469701202116276307828711792323165483245717735247529788392595018191336836380104520350901544289660172959917370422440046639858353806744421544603490946382915470690609458407213789493137698975658652391657634581677091836227683676803218533338578680678293659456272551832664014461915492849552927147713988232121501788543021126981553073654738286470302863241589046715684078636350562685467565331173125229272113071742481308959925084684725051877521665941851210003525799904563113351449361728832046615051567019738029605990960168121026026386431397458736206089938816247708745625122524754603119628277083209239250028691958014425082533480854964094775671660109884699698203287100038746314737106716837583332559204702106577164484253265010512528622402219921136688848331977527559724245829770378156695010895245753505117293902735425919264109029406062147073909924493301673416388220371169593395414741965055307377986561172724988342121029662301747414507416448458284827492176285491519005653176907823542662791331602973668041229932714267591254760885809463742705404664304686466608867291890875422724633216356382709541454137725887729881405774085030602700996841451275119359051553136303401221836647103303863243200312781144583587918390630479857496177514982772955898850206350183256534169479514577201078518938400645565036798626348335762139267823843725716164867529189048810750247793835439639389607746697429298375286660551822860702304363423927914677124684494180716134934925353282916888810485241240161387366119377228503071666690666947254407632024276205771014473894103845431524177168517786859793240952029647081831869928101053933770361488451674990332708969261521453601623986934919793569724432733927009523175584821571284977684163546982476263819843291345755866684275084206396860111212973876528518713290173490342025141358906757090595687223138989981915379569939205329646321479087526107782907516505383475730284655835448797362288534316819647860613834536464446915350055509745438864479524938297636801739133523753236245992920016262048549846188039073119704479680346462912244765613635333076454634226636412535809823042455204344667223199298332389884162546897806411213335561918859874511658396798869326403414337632419168831913340767362803628855587564481306067104092925431811852366170377851125354023814301331836721982328622017699502943167001378574382115334575385528996731749809838539657456746099881560991677303280891746234310243317028241776782330553570986263807713659967748713283778287441600848141591262145874010584297143478950218373865819083602927090768887257328182820491113541679107947794936665087551712297139720956086490186589411132091166060000988112794052695953629992634745757506266110291665007552186145726990376288046619336265834193222161946566658953088216998126919387820566228282153282119212102886289520269722368601147715111790999799619737324223630278549636138072851543260843385434686778679866761967247152430308955434737833496983477265588340343866748299839952347733009526050852644112828634379912357564372880281081277027002077413914638049104075183090966869399600196384773484692015516945881551414185984708940290327538861665315867027442818743299109349173247068729124806575468188749876154269240700713976414659598775965794372795842162111476727128246815236797251137091429215659673927210786119881118973773981080149189714998316872199892404429513970311574326712454451612752800812351224308798823112847081457362659200237950344993684745050677070045980314445622706672064530345635635756892697800607739453742542274405658054927016837403412346562248049582932017075741320993238141200574382532269402747962064721228871003621643964109979689454266515645875495985682591663901071197545742237666784285127526191603742039190873647395207061624966137821906251763350976560035398998347816641531124761259754627246720445000124059519914164212327669025134635378545231716749096496781968048310032064788849728406196985131544038720590919334484559755903524924192964922387351182811425608324587070463386160006437011332690985289769103818998814809779789438057287164092810952300726286408925442758020532957051832457559127410212279697792619308652092540497587939274974484682449733209420114721501804067449907178086069110770290485503469043365506447529527342013169684610009070097222812217840860591717800241849227309553415818293871132485484717819622099408043771742206229992216865902991258854204061914735880865590190511413956372496489221974194787008253340910808448682772455115818668264244899464850028121600742260054762270009502461191904754575207576210432028571225301574693681985582151919756421685161862335460486280246658800490914352698367351870228397455356361368912440041149320124705753354164303223039055786841640364019401595253702394596659074509066592293553352835462215286964298259834657198705047061006282469014806890983315522302717330695891697883323129295375458885628080621922615505100530141290568306109138007780114532758350932822489092892959282995658491870425097014864817476519879561200864914845123872523057973221169053552455348991362183553907765654389926308426864152165157844306471249859685220158088176003908075859374921768978815699315594487968982235773476112357833685906942320130189158397110151063544196857257039140780821320885450186530735727035040426111444265680307382863547426428784703000880730486929673284535304801039999360060691865823226372858730311684033811368198862835062781309935049587644111633044843033633772699264285309210221985255132408687289583856588619154083005505693704498933938997103138608292022794991321936055640388630972696005776877585674109199445154074147096301368318576828686664556854573523688698589800732749254078875851263575400631160211500143284868774925845627266401131388144413951102695181883003940836921315736238401664290839184925970935056883211859755527635185682127957704146334547702420332770181520863766739224901695480668407340540829541745261658391649638771264316673611168368170041923666687512319626380572608912604472194649433333245453346881747430752199667470983695126323353845299508109850455011452724413068634215118638258821967226453799975257443426661780115214939854529277878803531880820268400216523492116360002606654294823630966121430803930610833467537036800370049746564607985783973906831409241201012295056965200536770035772529548295605470668267355090247829831069151725399400081148412321255567600121234273123748495378163676567563437377852828041534086481021617458872686737406966252415971890442314803980491752628844417439089140840992000547268925526068897140185938566368541070586585899124287469923603297850813067400882306445500523593662368726303688649477479533078231898415646395902313860610558298474113078303096484730778238974244609323035923105736853406820992965669865909146322229156350648651396698774200837994120765670276761660061828242979329074167953078054331148091730869915740808566480626233738654086611526638079045951484274630525035538246105776621184058383271605707978630172140760349055668423594260780539601949262242798253354615922243901444709720499808289917930638478614443132504279080576618969209824266299206848977097114842569903461622870941753365350990519841533560329554726678079710824408385337047716600959073484023442423622761311014792519758646718495249514549867718970132038133544055458693686882312922300121727315450185285088513514352755289328046631570725495693911260564255534107474925926566406919097502145080447943591028427260059234280385331227815483405665549511447582422802280432499471514096853303300406364502987821790429458356059627638774188106437638241158169795033754816575768093752276510700862796138045380686568096177949585972560822520877454659668646760557936926296301640097616330618484653834266163091918748867638555738239224588730946922225218915762079744805581825785221102743392182945877272238362144768347966000001845734262886197600982783492692881589891276231730355813523403671965528847964415649823667827698721763335685546720798400240856128874647084428207255308604350526679434442949607016485481756135465937238481170694429261939225652657079200611219897755698928482692199208525641317137316948545290989238270465837029984039272981828390327594507800408326113348982547820618339461770609768486366965019399892013056135557880945063171536147177384110523474000444920027639058032440776898160648628099184343522814072391416381169958480370271581218800070959434282970968100887482418765513959561649761283547813263502114115191215127520555557689448115787669510051782349940839117545823909346601352103474702520737124945844014891500381467223010568600361530693892812689513021254188148733173844053235004324078286875014662895366151479968584684005565401382580120294847769058994863443557443087448152145146093813517441185441360530636841652412507521637944845732038113771709222687578704805268313895021348232272617952029662361929572514340325023721580682381799170431693278075261032712675071944209607729243303970591600797226188733868857857328896791410176064140844330559871045728395141643947631069740092412571040250311064515805443503237406236838159351993748632890065445529296428118807109483444121795705623009632763893304995436464812411463424627354566804630177699264545146686192933050306420153612852823287139562387819586681016087136181819432011879951699433302267975810076040036362915068038574873454843769157824506902900903007736756190398348579710765133652882320601115970428393196077501092642033916012738563277904343299328811152227585374861862907654938983144305520220706061325446724458731690633456974134006464502978774201477338649543011336417779081764046195927488455137360712678249052081526378141623122459578899098476956304435947453058949902133151209391770502886604550792327775450745143462002031901685897119808829439096277765234045634793213281863296604973826158034034694082942641518204670480584039528528774949225275163133247526743481343959646637989388222484606716993057817851959155594922862742662733405802691542977744961135843930995337493917993094184335586617942102092615476732075256758187127527001144314216918794037721922272235625019482825108497671495095821357764446086009305954230441029973305509089858863298208069609637774748175991927181445705741176947399367596967841136052277737376983607982098530028456623414052108105363012050813877817760516796655598867371336164649893789021417160090847225350120602367592939246632782275750015655392374707839495161279155214827460847339665693959681803402002810926774143903486432308347523117887917656023294831482670000905033471273468155326795162549779795202316720575457784938831161173666529367829650124674552022517399459080237172320252824878492246976726573707329510008399884068715019314396929128951481203792506377386797680487855991492675309122395447733827353342756751557996257942899306175172070724684678320092025071720465290671202457210963992690998133004270551536852910257025928780877333968804605620686006477072800523827435984581167903173631448456319987613711157407046594428147403358830840021628611272300005358850765525433274527166584302141920311225248402479151903110996790733924972604889206187156226388209801254534682958008946610865902687550193473698100251994814918687956343160800440197919847958696449150433574037663440680552378043634429846777771197523176784078157139771543429746619840993664435998042200363338780143500893188633018282214381215032706803060345711415779539125728791726944279361927275854928152735238628929765236148799957395973573903190009904657404207469630041773556985216236693543282458776749324866844699872227130339081936406582517816920174884274104990773204488925339886164638720741366624597737592239522653852460359754118090602255471892174472042126350166395924468582610742428142730365827322509327606685124634229462904397140105690501749459652409766641150129824232022532908871782500010979113943895397002866266932783427279357432839830087980914668852843025223545043348474408249233362870309339017749697651521416635582389749172980724404036874353889087586425153337910642375593924967751675763173317548734989408619929201308509543016099514469694307590165796580401077898708107593337844355950183972506517525163720423521012199595321049335122377249610120785841088309099812033572808076850316651577668206790234987463244979200908906253432250273218776256204170254795932580041620326586667460498480220716117437556500022626568342269047487085059342757240093841506563112259979692239966937902594661410700444520561601619310129452098654946368757131178365609438725948192732169767453356900679961873162838042949494906897730055807406852772319362651929944563247807264580329214405570362559835117938818358146861734720986869534859485186375235101169030168010742419430015982134991044238426158874477447474072452333607130539395683164142017542363768628508910408580634882734534183397050530819941165798299093282271961848488048144866930686015360654499351202583363430902568457373139040055775427374673354578277654481005403120927311628258117267745476798018413188514841408689800188928080658924466036267504979556392375063860969263765858656543345494685208029439357833914491700538236078680999412611629756529658746692796043753762194156415301734232435923967832326782180309189685975698621559808571044975649920651877413394059544783502140308643972493494095071688797662082719971902433444326865762384186261983677906003372890590244932208156362945888580548256310365244694524785056974389931894287857334991031010102075641501015082256252857744599834797841180220732755875794453589968494697511405849953656609174577852539238557715347607007768505307868263870691910342199533675397109745356070248292174344023556349196619590393696822503809894711593421144078370891400542651371312855995668931459099022638990637174191644115929932631097178750057189652592015533793067640407208392115416648982579770303985196914780326393931160486203525748445446125392044286729073885491444594150402466757568925387050751288881076720212192329170165718436092280327597870921965261510246555643441582998365734421211609089525543729490191155191226778092003581832389071565186448857182034249272003535232784481862265850935184284792601756270068649339189214762032165730933087305829860166621048306660283768858580004907239974126548107172168599467259795625252491257905231658266966167919765827955011885074557328484207605830747324817057535416585396752501999228285773760579902131619865734936822253085707220308964615890504054475604588889774337029351460574127192434286789281380805247104659668437629154144852212151501287798172023936554115106532759295503636672255461562255993957656737079166093120224617648361554810719296673009093721515258996293970922693130097302078210739757442032622962670087581060557426388752022642478419150646928723878769654781115258714978749954494056062113045378393346874136833927003593421486068223776507362850595368317425905247062317723991119255221627563780878653177166673374239791542487112161078191368380194733064085231943149197955612194054323976117034429066148082954213631423687295272504483901513693212580364355629471070649684689287887013666641669583320686921889050852114862764673921968696206613464818214155208162979878851817076159634489176487770961772407676523039286991554710219075709463662007916621680120659971887749455241197800633321069680624209360205547707976390559860346796958425815761398179424003883319816681302904655484247626390056763246666276582034819007456040577347975878783472616963075467606825502732142443281522613722974620512895646906140209372411913189418106523070230538098463137655458024914444006007820860509490709703350098649967226434414652187822296882239746040952874795497790819315016455394274879798983863017091086165879882954947636246959104437130886890691993866915296955202117529303125800877074860591127606612247460019190438673055404020429247055913847141419498528000323245650640346293069042352184873323748582991641246040310212184958630741397778820606358025510403166259985505615603849068838370328705440849113848651426158401120097362886337350834165940954443586411202777279353579238734697259332109077155613664859952475912375678116309931621738306799736591906168945433330484611029835153856612976819933482814421391690212376433231851630973267082814345264628822599913146558643072909923628682630935487870426678106293790600884877513701476291028709587564374756110300761061911717478141530786310315478830593376054826332373040524356575872224416034338563782913863952751092572450521378222267361794977534788443976108530717925282045125235482921332991373518727518445582048318986383218721314350861502626640851477410719351065147990327926050002834422541152674960464886510560974105599227213835984402460066442096576865154857875594940134913703122088361030542446680057841486077383195337319834095072354959233019720547137146277047578463240951502451850040748780433457148269922872560132443125280071080400864651314251871508803230331174909752380530970927669501478704440019246129292334538475872044499392123868445424633661377936820064961008876083534176644493220076936485863381675538678886400285585115389370703416626223054732244275812019832758080027976927626829513563598648329844740123680929798443653419183428124493302828585003216259431539317484343349597690644999552095927262151927182318489969441755569674098453039230120861834223393623565703850047513485561485608634986067192509785075700314400684128031049650319078213188990792482179590351354651965884668425063530187089342168368433214151995578004228700739669001604647612494418346886167536954189755367572682062466966327358909917468045490540623731151981277066383687235640251262448897611381628616014629083216947131633877676115469938938417850784633823679751969816470297348420037679775055802657885732124965698777917770147747008391766112769321517367424827477720483122955057883058424990164491696485325639866873454696554963884342015974949013939285987699124532546133766241381580902399564717399831132716436479405875908733056253601777251043594347539688856568900888318355526085216604440144402559034662490940495753370425801950753159771437971724507229519044479584733660388950909347110856353856939375765237315982333851584798726503398794029490019516397548949107479632214083070070708677215038739885739463717925039968590022461273631986747398471696771794887471258297077628597710044850522868209308965725528814174440307746122252836144323459915974684399220186273218481587434238422780273826812843739834993033764718738801148164483562639496767801495001369272526455428315768305287418015958906345880752560700941746163340472412641352727947448776888783602486876570317247185343162944050560185800808833021163766974270369688071403231749461911672264489212880306994907362607591795894624446141742679025742906994244769132814207687726332992925059656464753975337223065471928423291600284807062384283945409366444262333695879265823933621604651012052553970472909317373708551905813590943889732789555387451015538332876816472431359567754222453306190706278378993862805121988583299845245633043859498702987697006868595972630962643567870084230576568971438811702082489079214455478263576793162093713894441824131431819608487016290945234415768184425193594901207251764642371386214393400819923267630748164004797060820645973996178428845493515278112363807860439274759938166576702725717559902810918618989883105306011319900216737492334085454970882972498168359519533332805646498117960731189497228324059735612800059036911144268872799074035093225791686047368778268668383525879171410496909646783423563916828078238179578557338060651626453732221481882551588401725521988436580388583666357751662275091952805020765905348849159541077354724357205944100783807267416181213559946670729175782749668657609151355058065329455919397118110857421737112626788430251398590850568065850745088426356464374045868726117570688999587837345237399005196700236781653162545407497193310522746859519276190424055219666602750449362310933577526169018056177968764252568921378669840804459788449277825842957679626374519157931122445038412603276004452706158356928002074125367831628801284529501934178479832403670808115015565359860941763369626331529202734604954940647414722426258305677404237957001723659163490859668174380092335597721099680618837731397639571592160794590659637845075031633251980385354721238803043641443593701325726097547754448320186462458095385319267821628974998880983762900282329683893371460068462943901408840802863635633026189934763071992553260557022426446663564399557590171770336798531732488656905027443758558857686827188544717443758365761611049764578672414319382343865393747446162087932482232335618012856807307845771840322102438115899693912053800539499229698153275899241964322264752703776191561427788236446404643530569298491374345002989989804790707770787957890895524994165985018210281755389318103863904059721053096448884255556699056247769568592052307380233265335356891810503410903355331735005491947380500238829068862382559730381744835306828895230410554591731264624498030157116587214379348987142086652920078184412984785858069529644567799356343690452458179962586392960428859987981162061445288566072859058465374268086777306057999099235543552493297419441140897249014040122911089461672423046630764745034912971139566965753052595587178735848622543079860184445514331461139986699196353516518516317689046525068299934245593367735741068610266961873804574708650394120980647328628361684582846102433129088962517897187537769605673702215218275436849044535393547541207939374790799447992556995336287241072793393154787399481874360665651076916277826243515440208715831168344537067416512146948389355805014004112473194674880990957186523617124933160938842984509244164070145363193005188673045577788899575782720981802212744452593117722739794708956851183472196996029384328446211545372571000856764172270370322062226724373641452029137615391458155228831688469155379522552093379207218298699995584608209570852966480455015732419845983011091410399710139189968945875170185756338777673340789128743742410137280057478104862811461150752816881622115135843732771175963114493096334823160442522536390313574869449506370593832305337764191290628492569128699665350443127422642045076673390092688627901693282196400719806234048070431539515924241546163238536009525934903590929325461903676353494882529493186689781515468944390904015240442879149937846786104365995881524917313941275059863397441147111961441045559764671420524090889826583848842847987770664980154801457685241238546192356332124657595926595208719482599376633389056419764210401411188242047912759769601223056393684820490229663985807976493386401335402580935345807647312308451232031121344581863152224786968886070060415550973813365160241592457878025408215841813907360198591868791870987876972693034381574084905774873911792437275482591789986566814590710131380641657061407551885135898205894119323166086861183091999342188134086534249522644356384371221915500743808955617027071966886091509867496621099772661772718386820338626649060961203085580796984987670875884637144315670994581847682418782788519337573693146157329919574547046775728479734381430477371348020131141822813365382235892679326630206253184525812495277854404321852393719315281400149235600580392089661665942857924831851749771982459140740898835459127339691893778666965881966781538685130657993866167447873121514043783055230510309227656695949693222256995966400473090917808739784105909315146104412582017857666736207907446561437547568646196509577261467914712827712758898944984265081096924326816277246648849347403867631077270188586227104710434324910096051841941065467597774934255669936019438057262032014456389527993538215974082042116785855696432828446187702020619216598099712204175692667273731045867707439590857640331028116170831143456063210755509674645133609343703707675746840911538202803073477570276991754543928169198773177792951538271427033781715699315682331106936298892176248018347810719434918825851955462915711327249126389443587310394511896438537397174631448123259414895299367135952749674244267178724622935353495811759172546673619357881212634875160958643008716605328787591266226208625348382046519492087073219920901123960187026050190859056981895959543848477245352505712536683237125554404758571594190522881595251526133650160256031360246146288680531079542110273245925832676037402515704330621959898017603823361754856602983705603476217868036505588665143547569024798572896229984349003938390574291211607436871624001417248725721624837513434472724873323230986377770444231896627029411952980823468628351809617394974716261486511502262651413388976796966821393312175951934086665337596984431129893819715264126770981817145020591145531922755167059437880596238121176739843593948807225648009031138959497880604682944986959552781476066738139744234866741332031435441553885044601174789004470272119663918269787698079039540150867910690960506007855632241734083448560493919488566087363109643557023858575426760963324500176272282861012418669504393855815215538019958406686814210975207267315312973127934087193685990435267747479874342622372354882894461074570836540448225015460968199503327918690063533948972171135526022820690813161556889408844660609808349761484547602258020544336394101170448324217822313655436191257410865217536265893727009057810627363004123549905114585501307216393837714879912764736873774424587820033217381143913251203627304742932269142668316962480169729906280960749493598657778538726920553766585877914112406043057728635785907385872061719859428604429644412341766561633703692609276094651426728849689749358582549066943432452549181145009342877962433310614231603488701366525853817266856056936990814124125961909831162984417060293310545930859420577514736223309918856803340275570239935507782607561958893126733502574821848946992540662983369937896639919525037233414320324199584297852975295085407170930165643721867249372291486903621111983438003866665290816197522205532745817336916453729025058307808437483649777140577423198982724510410038448858688462025185102595502962034946958487828216072273658546737263513234875068837869623422408413486433999443738129642988579181860229644085836242760628700741896774043709870026569303715691688525222713569975660252348345980761071645517441229384985163526468668794887638524937604105972625642975238258802190030933517751345178136250868247740617607526257362380100949049648262316961651316153653037829916548856196844808992328644188041973801256230392383119046768637186475529949041346983344417190315569727348687187844435282263633879145024617538395108238847469496984711971094659377559931210991556449696702660334830387156252595847753172629315888631194192049517580554104668272148479869873256054988632936191877710789633770568989400024570896183986301982264217615308047681172794765281221677223996920579985965047449310083267427112645221769686615066568864952424785865543430606706248903781421521603870405547910193616887563146035003360087827700012854707545002294811446323761528623764285807267780197174907603110086952731790226224069923868956200722375405703129514862748534143828633393536864782611680062214468266559878902929330784326722281368260807049954672194928163353514246957893184825697246613729306107684600000190870100251563270365897478996085665011630731824670975252838167992931099533282289293198367111982280036721098160635577800178584668551592057588487132329595437940919442292278288733071572553451667994289048497803894254064195816376008627351260578498236934837046507262912203322023052957265164317080373320620428411626725210079255016183550393390005853184184739363668507106745124649493807104245297177666985830002214883644166030574463978871655727522558198318425326000955138945628743160095521799243845474011411031257679551847720405661518037262228928568936170942823923469619294718416075574393036544800223010994527929532831030523646338399164336994959244199656122744528425674798865921308944570082857255738594468170014689644926362572079815034486135242833129447423509904834405049234105198054060815570177989874472610652264744035509486015644458574209355494545090362570998361755378965434896459796466710386883815848227472656952342928230561129899819196234474284335396721304423697848349879957223918862341904435550259354639992547194258437869405472212899395536982091429350506101607031077386543429012603336275127572346009781758365560120605425031466624321757529780843273262024444629597269469054754967900895228128871309065308606338652980685865104454652133750778083734070611635329008874336643838838494485639388474874966194793305282285263466206890971574301252359670875021042538740005259877772015010097338334754869569827003517388904705530068146081277137305269923053208050982126560102927573826749511180908912082585566746641525412984879970752950938700141808421303994481805481109691084396956187317272550252586044930526520539800013782858793466812163155816190190802076146391033541856348181211920275492220536210762426766948637094638865642282547704431172886111352991602321608612021224956426880303668730678229713517493671762049813874398662513737226096272119468817804219935104763068628286685302887221450367851290199146753452458477983510499852630765020028422549596402384975938462998239994691969904598436650661092503992981213390389325072160048361934915231185623994097833209596669805425618981356829187187993605740681419860583784419125439891151878448279520126856566124625815704966933215718369043659306335915750176534723856580817787103038853071869860460661548917171011772825047635296587652474320595252666372719564553704204659616958138669970962515859246860500435384362613038109568519013704130008645206707464195040513532796920368889706278016813989126604732642288964691158591960008173647000686504960931806723650497115050196402707239303163372917961382016994272217857748223920058083511155273167178537583100812171847133723819083088058440163216077111409982281157459133413499730631450667824145809110512366715197909837863950300401475027547817957371220588909180236506567461124107925255983025875503580153066653456835583972283833531779987174665906991969774312519575539440367780237126515528000540458667482195629972118816974786462761693037071965736270545425257914034095525273570659185200921541626340322567444650772544122765562314264389294095831382576704340859125750386361009653044845149576001745772208546833652720507409271355311700818888226030574814112820013913439257850755399244124784841144428602377245586748364519802291171186045914586988234694193646088084386330226118804272898596590824217845743134837572757812534063154077409522489056052796905323365348715258971669266890670769890933983495445814813492528126223911987139523724565589760690352861920018554230034780410793681092272992585116880117317308170484219671339083534979842234807927158090536745555898162945793567213592157159261198547354828357865017939696949240505042849490731534576746695970084056481069255414587748334451593717435902080308747857861234798230844321829446524069962834108160307052123061730091112188105761966484944300511657173297984996921325328528027068740936550070031459573499052839726775650317777389810717377190345696634254463113829839150858547972009579136957690165023170499486716044489430573405240468513494395741019855853625396545484348140845917035940256452530463507339880533569590306930864443960788754550873543927816796754356820671490826999408333464196432041890279226014069211590572587802363091587712004014339457400579895030496687588210769367174049213370932007136617387560419059248640333392824360509370794593579406827539401859214755150315266613047786909913583254717360125995367433425013130738220672482447429304055711044760756997926397438952936858041012155240647642867584434205304830087892950634804531043644446582714752285051249901702090363691387550283206205208428926959929480861833299603618640357069764306262834310248682033488295377914207432833290758776467515148007711618604041926231022594910335504141392996638550753017717398658776109752945157703676342235658610957369163920461040079395830862310745258257191078130026551549630613272944315492896217323134611588177746811831275551366243931175557024631189403913642192715736939949945201911389597272532371774201101431134595596652492695046223999818584493580658867784002537252104819128275958064223796283095873820292706289675208738531428837546269118043315769022743712100989580477451365826475029062904695273442164413847838408353247358841459086299971365524423790420794269578485258008907420175381228058649269045284085434327313490825988845138245685148865667373674065634440560924632225229809600492429957045433318391670254940848774716027960563197685729193941289898444971725967819426664098746752692117712856827245499942442693273626330815012744071867471285628545662497878291012180511937380334750741807818191377491087793118006955204495463024637891156665198398459009782460173107191878019843450401166499812322900474942704802134974373071404439096607472398545826566199136362696322084323118629112622852705027679811709836165509314688955008534238800245725501145218776421746943583336157495439237633846410474860694218858029559377228782634789756961036152061253149414664902315759516478918964471014932923369181830258994374724629333230079009799768779891910125149074805777443212052072706054525616808309463204830255006273161002695599009342214914720716166466129984649685019992504975547968010835035616878423794778584032785862846996497723433891944268090725191030117753630719939230490065982759800074828738030055282666792114762146182206782571951370157650383761724005489605351877792412258816306657233249844355673476860720617652489528994433674280451547593459940428610534182022722053124903906435651507776187707645436780800486004851776264212870087951428722049800508804841593383540994548542698772110126779370720783511379081186526680051817622791488049352519284136513313263594461227973448720927510748030567402572164314104364797291189996243397715250661835071766514390542669811180198849504989443899752599246404549405850445870154148221362441851231164786010166701052363087926793314808621210596750946131081759951908206659995303337771476383195253772820805615184202638589775897944423135207830099717262972774323725393619171334943872874065557809579008723816720511769558932077997443468349956565954109719696278011671604113901500067938204609138082754452897735029569475085359502446037539662410900840352353286888299422019494307868204474033365623222879724524661823799585371608631539868214984787546268064265801685390488388753575477361351988816794288194358110362298255098012829955733176322956287762544323346069419900414837294401286217502878728716933163263721277247699733180446257184769756418668929204134791082789432790520892669698324761941206108159044467670625103044523843567409487425124863603549699777332673547043268021475698939607453448224281313385662535877533784183788347946589060300375198398639044761146237980300058938776423711177993713273736200738005421812219085552304576559758931040885704730155784627257323495994678606798033565156482929161259604648847768634774104133538373590978910859909474482153165654468384298774055634139500038006875980971564911384220210661420400650142022980502402926368964182590510774513855937121044102179827030665097643859952873877240367872982771521386098007597786468964979984364182656180616943877128952013513574266642989167860106932590824727260635331630843591979337280158547083677396893362376315566739749356475250382805717589053826810269316042747990606742357886144682359962383874414579939529249288473985966154453829522462747822241792960063085523223959877812670194054550067215289891551224508219656889733103107269982285872376897201319247245847793940194631317828460917647917987287370039277658108154861622710452725209035533936130035401143397580655455199527851636310346929013012575065892085872447627312504348371700186184429420159623003912755250019626287229342250951865192896687300043855347795007200925403003895958191573370458024593593524159974185199704396722493251405131825422220109677742431963129353106754449229331897897752041423660279004053212031923016733243628452027258375964905340284205863707024080973191580995212482667069067614397797971197699322554644997317915716993329208045683071323168134960567024732882718891492899434551999392384536959520718320622700891869684900693170337937008484961547714979171671010116430311887828347957083053614922671851080656606814925501983190738753306607407481599615024424259507642875271019146680660541702315981121858756688032043141253730718037343020627435077430710475899534795247681037400495399749618218357769232192747297226044614489720002788619007617845938298610399220423758949667082410204330362549178157572684564534765255618607211346058830342914357884670826964442785849178619424886416401023438523487952050114185897909996560373010635753352678383182260941492276570202916967807399116155851152565044861921515462176401508968323837457222349672218484280913302833734536777741810543703668064997043759619550001780572448237141353909858961089379506955144141302818083769779571238054884842267521413782977398278388804600608062884246568045888265866774583825783876317687306725603518253112085604579169486946070647081250119939472672878649181063573193892221976614190270332169954112758466893022230897669406952216493495669857137438449336532113300850166305799286781182966229283590680963657528362600768432998731979668218742772338646967424224793496207866727290164318836166704568042579052245390734381933375866081232325667339019936281564584256730111270186628245139396875196394559330766670284376130628226837961298296361216905660422071855670729003632117240365407683841974273285360938471725844905104373979709984387800948888227992764774546946417854754286240043465200661179115974183818345104120790096617167415470875914005561333627093821987401854513518437799001371511743768117807318338438477295893967752495235092760118447265399910281086854636401288179967146910606159727271755867845631929583488651144404098957193215034783672000140436958495821655287273943262147784133284658511256974631100429523565028794615689866455255981815181864591853227218950855201385055425074025907880342388318507169759374768805857138866371154534273206894794773953108166020083192516151157456783270241508762471545214879637059699405655292250745439829082714916924765374224502910044229728262779063877026918689051157927065247189950319596804307482013861413929404225938461469114503951709032670162695336714948287440763644327336039996577991407699850670973190497338272719653841263492180806975666081313864417896483482005167786842116179566106256944288353705568621859096336064434800924836404830706695822635363201745920489787718507743108031046980154654795956742051638231608683688264195094769859398109896291448347135168736058005465309878253854980599991542018684027979880863336214683431348206601658014062356815138572602866785450623099538632229666708948908705939294306687345341812377273702291220798175434395231521813816481907616954171536840873614955013358980602156843707480629608599454276365337528381790275466126523786218076156295186283309044540841713934728768610300290401383207200655785371280145496016009062290318699159575829568609224572531217188746428380070501893793123219919181585651249029530239238503397494573133500983520894238282042606091951694811233278807055986188176803327684698905980940675987843859295813899759360552507374147705066005371819491163907219121123347153095742269749203774037166543924510576244274397072803234180530691324415498138517476053295238562039399064967569969557497864456508509486581237800553375207167097857494301830602645248775170152258559862184353911114745409921726970581472311832468459198747266289533510026275756659579835819186210676788493076148977885200214253556768029160040886214166614015268071573775251564881086399523632512693293849768282667867785550800369351130320300195774855082201657805663704774978671980725107248816799440315434491312608247828454087140463547504166641085036941364742745473788727592205371089302699017188110253641957988559960201795118256840966074530422819416100944742756389416678881481776108869738584458586639327253587345330805180790533322928741095759217010128293037290289488459257741535379181579953105922463811526308570026205346725716494831589914129461888342539971099304832542580636114725590412407791062698663468660487138364026221620304223901096944150238252974987613091669195922958274911223022239858963807502993780896842763651375168870687569407915799757632954983658282621291263666136047140710222476814891852152621869210234544955443266519612187195212082310824315410314374294900780883539480216126572119601512409672793732584569825115705721070964165718474047696722525532923514654207077567376324933100612169508643924854316737723899498666688524301902271126451027237016064900598677160621007349298026694790349147898773855728908834833434522881359046372585680669602597315803053498254620960028504522020894878896631402609675126128755389557684306007259323422810366494347972102468075948440989234698360493321886624493981494770031999822242291532173357216864196549525517904544572210861843115481935907769703298869851938849234824394802701247639112257207143508604480134737704043200486878257767014334516225635689549053830049712981341291245452554961020919283956303563657043986340747322407414646042825801945407904825374033604291844665013698467791656070660219952502110915937100059523591557034700445149973361935413505714312640458462125670168350070504327197939129064063793466568506427323518869420958808976896965037792448857415050058356996859267570956280811787650293998329269661848836168557270939439795634565137831738135040114682023019700218679101017613931594981572857799292574734202297769037595310102807206188446506694726783948447153553945210474491545022730640632901635279676159963287609408495029485616824027748128358199180457530391375009543877700511692683283713304866689495638130012020153212423229863813922573111680278700450799812247571582704102029470488717971241139422118626358394983965549279555865089911716380960891796610464963446461769450172835681272826661675686581628558612625670888011631595097079932595326547519145564927713382744209730134119973599936946089358552517667216855787289109643799846736154409952732860576378842606417442444943887311612195173572908699254055417316365368834412879617124645302881997412612345922795418613212191929686038004187428468008426481646393738397373937718533139312657628457055739933149251272655846487411589478472189337704589854498876104389583459240628802308174284098926532320729692677244599688399204047877320160295282095719523967608776779920349682381274554479111729531435706070854922776438242751205649674396268728127170787789147262669979269601850119247956563560723215183736836406689404242717473082194362647200920855906964507027131942923920106246177861602794673597773062673345021685398337079361195795514015427492097664439912798135888653138246201242082836022994889277797239611049001365451035868908656719308759174849220413810268677082387268527239127652144456751850410473871617925619284609774246833270270078008270210097052490388511105965017330206162705508645705233871060126037541353869691780283665821153607329144653101069817702799807907581587619560777083937915143124695993631948376820603371244356727559119464035570701428817443257757425736022380311655185409449405451444389892442402692850452855650403138382018008205140802470417563585402150688284343552411724117031857287998893842414048683242811360282260520396483002275453363043519147567378336000734802442635053167534307543550037164408140497780556830564746138123936844004203150615747756199921803124193250115948242673396056593715229063039729091788019708500907623864628800788319118364308480109580858595738340742598024809345736424377980072841800143463969676203951622081410010098565658953197572489188028155709341381610630454424713658970419296266989649422188169379738957029133178769703723909546016839196545385019706091132587372008593638168584994865998639509937116411539273689964261394145803117280196381038808611414413579824619773719944186279702879426405630658420125779604979158171615477325037776585938561684843614391927102768487074466940918703810942815875444429543625365558496633787187733519579261525313036298030933383867354249333765196222644204274959427839296998584822993642038677242498621882094214850848385293456342809833771556164141566238981257858532903739903894908815316488744915291334218029698276437630001068527975768464869595817031275681152570055212002609899137574181194583444225836175057197966849310953993024992683953172667777160757260377677971481216333450120050816895253980990116822871353574226689782900053041020684014098698146566017244492869588117795815011092588531635416498805243227327843436509842248553571962908044569401441979657288685724102194974385898006847185822105736332122668647985966660816781991691944496748303646581492575251157190447882948385778765453305111619280991353984815098559080715571427969013102727124979495274027251668803551058498260415810936554092058923452701745182900207006021407472558112422416725101463596609019077191873673601730250626451139127012229901307470374584813562338414676955189809038093262476288447522487191297911216193758686089157493959119095018488329734765107056655284454675435309438682274269707978706957360058467062954398107566552029055337606884890196915062601442242485799846069278357219275141777482016917543533864948821484468139050597994126536818731080015546070047755542353779555847533113242204528212739961058308813143038789920159229284069552428851656048942797733561251653132330908284946127607183010988347712857432165487285632009927481281118572120903708854542317262405537981072494121230186810689367476356666210582257709904814666276600092877535572391521689610654309622985141059662610952001246438342907083357273830646021541332574997516877267890650654794523621082492729154519649153874842162052701242034237295906076923024326473765472708754944910205360081505901885348259568239672783516553085246224142594235577019535223006060925146187372500465753833983338939669876667055854621216572581808372223745470310001972627790108156678939810673869180461082700134081054381793887666496972216447233208494295763027894626548043620486396873091589931230993352432565556195359861938880865240519572536757899554825836920173399074949086311233389680653743831526422706252689638154958129874824631776593948375409195121243867574360273265546899591986967959458502609446182575639022606508051306422120288148771612483339615414658622884190454057437676800574059939549909389954946619894218363583334824443750726036322258756793677288779940872849697312563051043845658391169334915164714803638292651186697985459688758362239491871614222332728778014109201039422610658028679790386334070692129004651183470465189484577786635673059491130907015720786298853481521929492889760250381770536950622713076851318789157505963475562969053772031757075326091111082772114017451980276744260710041084134620457377445232190330647307484380964834954723790888555868827818050115817064919841078532680791289121574343518831726895524005329779192702728576128938476685815513956268361953426069819084764037923916930372535351807201963589606039151646515773881269968823657892560621272870519648309971984157246562503287576765916978756417823964858509958941108637978747436773825184640732486122536934372650062751467317389748347553144924161673009063698345605913500103314353440763101405109149559156739197006112646872980008314619650118092330431282667118139042784682781361702920569951417455115947552896020770867497257306635731342944754050328833379148848266367147317963359355656772010187987808979357389531709645954629872920907424261355526200178964180708350706941923410720730930112654202518118132822550608402015334236454516035795428347047917523368253016224896188208957592617762275715904388573214756696574108563229348537713772355509035667319194577732867960240267029661228129511488471714431587449191506626127493276081090853894583822693588704307810885946320928851797886101839524788311934979891600094409895800423902808555895329376939399016036956374747015186742288973030059012692488417308653770175981020218788530639356287662388645221456991514954782069843541710002240234534768635540919172174585082909673788969049218260527610844506001397785339093868866644333584811083749806068114519175528410983865463940337290527916904414516417199374172389614607520351885450085167903594986165181301133440811802188627872160854462006346789826293639714714560846358175863644895442874430615033999460080579359374618526045515018350332605563292435344335057519805698400130578576202249480769923285022818484605363615996281531067264108680751641170422104742554945531709595448579189127394706192341047974367802932937158868355130347875635703856797659389883847165989082752585697307467753925583269561156092178074113645351489404893129190532324225082901790284945137728911518730041190859245864865765029828796533013383260043092998936171723544563755607748775002182076085626386745682268222738766327547413419256254540276894234497235176564204714169178776049310081197778237199246811345125477638602028158915234133330035823485908709521696034984551539572844086357113698326300447260071110346013005591821656276300618132311958507436903929687554994854867825932651830571174769199795601861094106676008453170576761978114016002529965827460835061737913878405620994822367648258867118889236177586675234890959717365767531300568196672145186508136538628962849225085791360007145740405141243920463714524426350075443465290810297484215040967022434035500903868494776223398218743122435875169685080277237163736490710103915556770265067872148089292762843713717509900344510632302896865789796275299360370702509573026034001571219156931671420923596079762394412835694433994381292878505506851012749533815333993255315365283396065105907648216818132288358224570479410746141673182933945250725341383527825081937843327379592737405104291976982624977758154930527122615807127498585579893868856351562849239534672937284227778990394542928120390093618978937778984478037859702594515880249970432890612756213985396555786289803552273686745373326918568628209216444352936423331800535571840455478078741517701228041462102619605375637707192924632394811478888503377154396495983088825123548022654320521128129178938280897403744348394424942396327924933736950930612815277480973609483148346012232555601420326190452832746487245484162853112999348307011595245145401842571054408811017153294571944917151482280761242616906509247728380538063751446178398453827274062126013382212265306253102116757134102979062919384975676694748399975493702588312369703181992936557014020945447179395188178701178540923300901906836567335872201237396320815746281919110094465158756127025883595709282295641553247869464146799763738151734454086544958361663109437717893203062145976876521201694491538683399317254225581768199356018914857652570655937607616623456010261746207767687536190112025888744892925511505996368790459367149734274768595252472093799172560832265338955751527784006104019214501912479807053254581889525194467892462868152062586637322630149246610297995867238094577185480888058311969007046293137845353432557259614451919349570419633701097820295690226379572922622123318270003377043597294523517475974890957396840899349550444876053527497423974711319910828801614419302398355922901924347949522075266963271721315583725433635204928051003480324113511566630068562912100369109615970497966805817360382487980330720546160271901303770744754040065597905650824662695929745117954804862485468346234722850935443993765473263468960681006974438550853774275985610241102818652375618868293046138071461865362881305241401980002271288845229831301722341755720494741047738325583264738983198615729075657870904302134523458563276835244696795567037860748372568960206424428141587619600642248963433524354434918133250911921067734136225180082962572715194896468562082384554655558577534142905198360260457504490051018826388233475255551809723268020422137655818384024023389501322862511269776347015019764828311241956113744514488210914829562893110736067581262080807303223721039828074927264864220092101192557646820652704562275885164331979258728081757630786376119501434062773337539841893730606697363230112688354458856297782988553474458977370869087063945781425760268119635886917670608351430126595996272528053753624276499681594455949051750700293700243555067193068761194008004425513140603187043318839212188704881906137184581439492540081146561936147185599179761345681281883500190970626144685966747175512810324635600800761810760056160491655140961225001785585335069280257891577618653152650162953291150286423552595138839978182150858459850680133279553162057444804443597192769501491291120570740638772519741729658103743085182488241139341071393871766261995732451030631373421750202952851807187457652421936806956268433664738339274217552939498281453282543839033352863125704922062432495565947678502877411156178013899439812268552693379207891567762209902651619533217433730430563516135148475191032468277375276750221694278280754015522635946160633035498202144105162325761508594621788223118026885047090920165875209546936362750482985972300974122921814681890008017741850399728380457760290460211448305214148690839848899983594144854815799980767192976691536652429711765554203658822340925432686275416172333921266185564958201248677587134156744054026542712653311107357107818476821519055065306324760431796571712629340121366665949554311824803362630437462402867460156161311688350346699743063800035711732103464498717307682050109456623791145505021319883946391417583774815663322906221027428807169502629490922802982089079552260533941713126454953118193756544736783870404717363498595305062377722282332983542927546675270992371543626154579994175512013355359400705971983766294570871064086931758185034273946957889680454521959234833406299395713623781969991012923365043242954329669382943227775843942255000147294593528526116348655122349239057197691304774280516634555846751349679502735656764351325743873020564264627322914315746682183924988142029296108598628445974283512720565642660874784307058773874379027912389659376791076822360311299197759405957030522669640001726783556360819156110372471420365870592384902103758495888405309915365522285207502855015826832023027126013139624533441391227583403227752586180753624185739878787692274240359301280183766292511264736206967211156503581333612898989245508383290832124839218905255793676169830936461698965501821271140746592777704388272202706912103823769651339151649613714490907212133481376459183726021308495826045868998290333091294440138353171948288197779036361239661382198833999798089413341120452343268600856082019131042707405834452152419168763243951992676711978659526920427678199541963882061514175264898281977531989848095162786376419272155546745523759073593347349940858720251833113736793644367680468933089357151628927972264648130261983603149777294770012509629606407186543497024702987720628521620786063112994516850936766833097890768430894531510579123178528971380889870613684739927768641923109104665933360849886141220645613891402125636400373521786947177869083781508055957414322533219518451375791406700680512183268594921389266787728001913418628087467583949346892386949055465770441053681213794956899676527902122148201039444263002316889970827292270464272359110069647905689513171027925829519838519551909348320623488919165189896445339483349522364648138648343646112347494883694673828548298247857216189711669504725600757585180214092756462696119804406844084114038580870587460657117812847843644983852675471790303310241999734045578159503399602937842970671599771887483692300066394436271417712939857440676538107854995537246805235664168825121289254074152553959772730922641146565265145694118338662343229424478866171373021579981462312396877215374351878883359970637999130820338406758465629708375135487749858493638660546326476279948742600818005132476221020647135687672340096849442127619172519090717994187393859687992539147919299321405041931541128651720800244747247152524775934498140984074540279003424984816520498784926195852318529393992004647196149353553803105639024853012234543809953219602799941767504921433990878394002684187743244731428039489507353239531033507019904809028093347612035702322509029696446053594385092647905433851917561540798794204442117971200887809401597201592605275879424469984654701379433869378463816927970624773152605906506264668386332651725993285351704355683914348534923487422012791272047579101273010044512953062350412028897159618747221578163722378849408876340663486493871204376136849898886883353523914537944456019652024092021844594564071403470816366559299923047721225260559987691396483192133149808807700305272428991221726873581644129552523835767144297209897336514865339526898467687221778755082613365594403841031279749290784153666707205663894600467801677124122100040020322327657473748592282155994803874606625212427254216640854248911549115530168551136585049485608599017764909208456225268970408718276464545484606341750591420416294390411939842133651695161035390229133016270544374488678859667734119507834753428136505862029124524232164995151354162733195178106308458044441230028240075773819577764801927398470547477364466091756498058103441947267614698564008179826287141974988240016559729367925177321311242579770260611332961082717703150491773192856089402444572530060889617751625246330086003600950241986692322213974054362345640726041169372384485267306775171788812399859256320304013565879485353947628283572086479801126073290545707894374997116328881970023794407103276198607291353972479169860053579290873716308007927065588968401885763829146904357908608781885310149115857828015244979661659043956479919960824390137742202286354144474767615472101771271151324135098046666243152229954371643152144274286344641307121050953001124424467487421816638744458311070509230836057370120160209320453780010791376330919301568666984943841752953973377083617440207549865574455176893634841264614004528700931756226776976123584807676545559830839567177260146572395454056344795070442785884496859479703915008208958207519488309179100181512159367408685725682251111780029834410607800759272450610612360417257516124275429980112473281658151931097507095441261880708811300143005935539374133644277390190332832111701401174567657640542914327475692493061488202106184650486259799378206167851293774147289609669611947951680585364694150723353800575713363986232600777635375015740661074398865121949210633244634879509701598042112079378275138298881564504213349815104300875869974018131418346812996866268656383697830463186550439462653871882838500557139384762423508173449409829578583082848969819177132466441339585796611655074944117489509992124943151761020370925560429677740806613062266884695031608633574730510333137089411124264168112719052723784649768045581335809968194945763278111550260136988965807026411311566522098327738937851206420833786579068281460774140980706678960586740746449827949590516703857174134739972706803296908560346443276087396418358619123740401908563488745240530080845505223414204929681335163851035054758122867392313544809008939351029961661292215876569181850692362887182248458448211795629967316927830778789649521821833135265551591260011208800519988117662667034260728142412500390576046314054397071509337568316640714983418097455726191827794928703064301213350907828057471322198021209251668051064510394543340991794150578110839231114183756423185022051901027762053280945589030593870765978916741478863150391430959160107812291677555331442873858781247323127161234305474953822859037528283561835176524901128239241420611655721579185089971516031300112616835615616350437396751181821524130257869275436780758164658287268997069526387928370038944581963157287791715426026127164541203207937269578803779791626649319851504913756746254209203466026986149601789231159546013922737656157450106426885791440925357344967674468180229253987199027186519673449788510790266430452047669936286048744345210722071543922953510898099140196005647138067541779553024954708460608764189773142427150122979232960420540413304194409270402596749885874668451975237343351264271865811346471870964700969101898470068521367141281873088350329189599059961229758405894141423469609522279681365425753526523020325965343444782036396978038316847590988444008626159689551516311459429199862689682276053336037965242007876999823831441761202655954920190385682397283464245397837414799127205834968167334087976251875622905442293940757556012853272412694206980391439009816327520879690086848166653560525338729583039819300740924004255678088238061842354196643581438500775951317421914947091174818626081344521489251319495361109696797943275318518844714655774806297912190903336530492181963910295134686451342902386686310232469998582030242432448859731012782100067422158958204574300779523956750732057830562386025612295132926449549298693155290022386488106718302027298856498256330828891781995200236273158815452494746206365877884439282374755038842620671024177366615173864766836882367843637455242566089128928110217353461694487921524256838384697467855713814871411187152572434400898332069801908459554469456951390896710740369541277750880524171408069152908764102509564123834732856283315764818277831431436478346700958828889144989369992905654285280617025162757724141564115297402980623376657699191309543143298772302900590366327591048686009002237667926104413063392826642763818972780386409704509144331982771541594787226088101067805422050281889401027475517396108646833065231672790645409975605891276138387831898340538652650788450385886354374652168752684086589747202612160698214545581073340481405526293944530008996369713965068598057035146938032924818308054433470068649402375032012189862199757968869028054217175978823884778081894487741413652563504848782092091753579572078027975574208631837548482488462509863524455329413216545892160655265662469256262025020591060028647453470691741079367577554280862042030480975818916407422333251548514143546760018522669453099407770601478161563436373934532822331384871243237513570523739874668860165761039319372088104558918347694274731454784662682376669620630995534177139786594908524504146697062718003659148675174408665927023349273522374274808612239224997442052764296385664947793026106548431652258195203536292559871062099436616458406173000278056879986357860301247587699081768020549167051543643213359456399446440013912793332018898175293412013872476807993015720877005828362485139787333152861503918114709426571194667393205083695674570682146634950756148075249581632204905385169099540289762130792780233187292410702910342791461599992083085998952898813128725389585292227924730433112256160531334730286220170712865908873055747811800796029037501579724067795763402670610428844572154738114240247821883544551367776491310320457486981466453149851183941218961282206109099464102854649381937275625749267984503154028663719099666388018526882648747402581187825857198427438558318159678558503775253576087852661628722438085335765030595305982400110278186556868589972499366764205226773678138522375438924905738560301002529532160576205005140789677856163432319785603281720790751158545527921925004252559842610519943774153995457103497890110216027785831969379578135568051147521257498458131510428485230723882564354834881918487464652244858376459089372697207502368733311831743578245780527684102211719754707810045147747520029579510853759931459182249454891062860471989533884915864964074438721793391807323091927316101171370805662143330660351939549611320026983301459953959722389206373900244527094347282334250327951431793472450878374350716435599479235440982440677411590709410234687195764111209428618534276275838205760816873684406615522873613500465484168319504116813174105087491561551070638996461194777426892272466875545313137450785617648730058004905899421897264626223505270037677741416808474201234687441228613675329988459227173924292446655686750644938200907780608258742235814945649632202897248638273216987735041645607191841024840694990586700202478126902843789509779570957811537623992066166444982407439253686930136194432542994343735229924431505395454467003228100725307722071738468878211341340290778732487875483179462027546833768134701613034902798183626105565075033048593747883596184463735702921154235005370655795476331507181777384893663587902035001430964632111316997426767809797855343340682812188666721937763708241717225157842873078551594815960536889309185362019771672569188896171440543748233228184427079257686979309571248925060060579946862679144463386263230811922756492095515655461002193114275313789779596142013898932612535436311094195928854322714707949006018225094743301869331667829748636563713659269110129243544125018264251911851722848429228172565694750298002018698537217873738018853861228132119346903209438254777446050946660967754112580003073058901486217018634324424332872850705345459037997513435152099755625461872824782590465125414952545768971374035686488027892738397580502563977653936985545796927125342383698472513889075632972830203945168351269517529052925928698742377787140405073480600441331279985915113714527311925627016924855032628188710464453154347285832730002106294072070306973590258398558885521720227880147241058604729217676622677756961727722127997086722063383981847538781639491065047985167910016903845338102113545116085976708727534309679949815107778619457013434052977447576109376953282271701110750598114965251756012869372468127663034307329668363485910489108174383792436480924140043207436459862197950189805297467403356016798651050416682361246916714597342911345062438808291776679601432131926486232911367830295560430779936275231236845112972804781568232259772591471446111969330939849536914887214740778501026107173791399723235053746429742739206989623925714167040045920890786951317501184848057684885691645902827947322473164944510464326791594433302797048732742548180792557603723926239492691518258871169325563951801538939290052231656688644659002382031641690902921050545870337566029875253705685693440536786023270662409522807671507160703755887945489897209670452792097042547352774549344846861606957841614955236410043033895909082542674355968474669008401033355623542843218698996170144208055315819081799897995179876383529857926900797442250513689039273414200654675911978500213363045626123772917974778726644294623353038694001658759082710328362132763597950461274955825726151805465992460191606763935092183023164838117402627517214296797049318942026399111993033542232597910384182144160985939499429217741330387462076626777303571451114132838812848803384249629374433269769127103640043952198445893509732680265492136792182702517008867109260755176052777112447883140960752476935404299966274306269042558810643640176151984029889963173768248502991673667609117386035016432340802910299237957415585436482767864641245678488662786925638878101333790988312809266009617648638563371392045919334668279919115989533191755073008711397680156470663779737406902169183444324405270385141696159666636564031268170794427735908753336529104115243308640395240509311570702702401673443742120339944105607889744862660091588119219039665916991826992503641419847955970636762468104288475941983942141500968457315726940557574634596378904391543423575504298371534771749553474251953934776455245213513156667836007211384679891506006207498675204294938118881812151363616151324999330777208889431733448103179049364857596991885723943132091332561240840921772325646276422840935314286372380394196653163406382379987346128398826385668005549874428346379662532920967283949100909571357800252707224882629547221458162283626349911940269407474633079965258960536834782632110557026558853425191388333064463619867570722449894737693610024001690068320975767936800963635893895922625703960735644975060402969545443672996980914729678602209338728768417179632290293716398362734894813107873293249537168703501783292349180013806082970632111612490810356884564564748077144007699072831237525239631916196483778244582453080950410013063387360978250383138146693087771508365256913204808086407460715552166778567557642239701439040780230300836410660063043980985249113005558522949815234858003491570381489585033484347626977553886202517711764357812642309719711474362107091961944343287643762278700189298688009573132732596384208460178143532465443117937219623556766643768766553080799721917937813955417581406397537486754656925341684029429646209595815640367769046227875206005762304596118649518818255544948566789772494345569728211842797012445207723088994324098740847988652987518717364076222491777934195109894459572036481393627531240626721346475105462616246234118360993172569163009244744901194066178983299002565408055134490247435939199378249416115052146024339117165903208855903264057250197416185921442770576073148248448220745277086869083601595486561160219695437021287246335854103750214004214046443432385437230641655551683772738129935958840882898690057049153475181901321536085759839469605416865707503891919427110562290346153951083059696966413862552036842616618957962491601833186190283330724969143216322995313795902523383562427323284560790856995029530041616759838528209072307000726977317008189900666255241205204201936289902502549677278344462043768866015507345652947461150372953271181775983846402085846895747659610428531320071792589692969049925731718149944677805791275759957482228850855414537815622704200321426537886358249463257460431371853243006385378016644512346818799673709616327036527305282674119159930125323629757870265209480839893245819161544383390496572324121049237573925542817395477210614311283447788649930260461906248748343933709286401604976650911154968429507911412145982332139456505019224085987663250552052407266181665456060311172821063467972699668843011187650026931496285137533372037012691203091402955506401474358862843660982342038030233582684248431998250466395673436295345133700072623653354294947078026679146882564345453807198682198058407755441430887645453243212726922819630291959330556321750161537311921400365980523838069842878236757776219525791040134077427354459314146437639898589871743566776169700061936972938801296509996058742520799611190960514088718527184281751181614697260397131522571401002963749648079520648090047875326636321231376865993119870887735714247666253689008387198166804981237804541141264625328488617023738126208434785505150720697108314640093382548163114675814833864600231056538936682859086125891247259151930598743535347672255141971734508034499524469668454765040915086041306636580389894090271828984810124544571320872758025194472915531033155924602616642945970164376840065028734270752439542255673821945853137592626283225984701293520359468330821981768580022857501796775107934395213711488212557782593608111434954296959480356729059983426160436465279964464654688701384072850000593347618939928993340439297690223020298183824534238199000573474312082128046136358157849879506792782328480803135121582796227927864147192954999829773561369156847465780631880429530023344707302250877181822115237683565529977125828158410873597133124369600881038387301845256563547297119167906588290926350818358049069264551528543464354226039780203881966179180669799869167089357640769741695696266015548706108773473163090398500823837384927651924890218877068521217612056010479691974745053712831084271096108391957774353264340060557086850572191991538820715352648890269777956072622891666173548880397083822657601467550781154873026570281691460407573874803839448763073207889991111281673321181993482277361108993323519821284641092904872278925223735835516709544522820366351650831203656038738948307429794400875127777806860302024818401397493081050381345335895129868922259631046629744918201933754958572202454515499678524507700706864276495011190233185544903406936375777376606656079686974008922325694943682193376810891547935558959863376487346959620152392258522096789958556256787643391414652743533921068344839536746345002078406890819754621534893998603193919726994539814474036874485454805305851112948723826291041312536172557997657891685077249166077846821605904360875605924966438688081534112325406148811230805706782618700042709933815425388224064105856033422826052853948795835042330706019900306589273703870076126233441345101963469233578429054845325038439451359178178339756708639974388317734417120828727073943725415705262608836255312581643143248550851951071934018933964127914890994853671050402184997238313696178268896889150462147441185142151354816149551538154699414254719352549965017788926958839547850525336061969598187058675627980742740403839730905317642162782476576275575606160615383940733670150290626377823010027007689019166797399404336715077412147354142051307326978727440358743456631492397109433221083572975687498457535987484702291866349896163221115569006764489144659806556249090652944252032347502696649416478153769950547800587399039536400323210641447952783796832991379141362571977103730175160320786107020799238964639477911203802530217575740393672764047068424735660660835175825458953179973510762072334495807757179955329614075568562583064744172813506920876236488535282567512106276669870330147896106364643761386412002159626724268637208988838102188922802661340139821427023976825018986451387378793715192134614870776759050243870696658549448670780103646163757822122206532805840140962918756490548049036190202533723814674599776585482194956858951474338452264147550106572759414577641695384682616390778594076550434641950317131498335228213271115153899128273537214071366816689395657626739214265336082153278561436826694145541190332904699020524620611532137420490087826777411991242434813702663803221200221096750029241956244055150635935440046019494658830389712619867706089096902944403660577929004416211613441944164390754146093406240173667487007715801398998711587777313462805562559951872730820288906881073791053889377809141614537582095290283203246320316299184701806933284451522970077460532367058777618344116454083519053223202790684300454669852184973163886580678605791285032204484678562794143522796091973067722070297486773815159623032877174641327155155077140381874637654339491006455659332587063473385993065606543919013837269917056580599277346619242474466597645957778923246595030198347480305589781461079027889486068326792578201885579317032299099110655390053453661265704887092138116893051393370182708362681884309333683733011248686582796776185423843577014366673050467885162438270587579177571876792880696406016906734606006487714400940907028203582194462599875375805812015932424257591375276106656224295450788426109897264932431183539204018225819180830272624429752228637561576248940451549384091728855380821348239899581507051903630645706838603710125224339393928351227591006196604354568679205225286153240873517597638678465810923683404931929897059767996379075238139003406086842630240649780633880674973772260499010691527939860812668310079297616820819671069504240771903009802110060816987392932392865508027180490578966329346142239964448073518360660908294010548948484585551332453673000820176406108923802303923021474775812018904727436414641363451595070077313069652746854406500938364429186835452162636997025979910578067040465066000708644262018068662480305083485854751803688136305706218573799441933028685741300869860534070724091998811229412859990680945167714769018277746404522977121754764161293920128480783348542095936871694315516423894122189485367405857535877206904948233636456603055610780758073666749892946882496228362209155783064296023045350368114244879426277174343169830736323372958604867555065974817281090867628689254176157483420798858217910116460209309795319717904826744256270648971639299625657854185226581164625861729208173424872319994223921990319942144636700145951091055172612959502404861703585301095297214730764975655172642502145863231161175495720316022339763843716814017739734195375348739184196991282078368943818414400782828066314750331530839763886887527723458749184809490441733864387697820709305406429215522610971557346784639019058864000167139012843153976367895795900451323825998487535888583435302180585317068341260096606799987422938183284037911370215695017720511475820953757395455941632649540757854373526587559278035336784449553353734357666990082772779569926847478331705483652468746744010456091607957431326174063154530649883745353249227276786163193809210916221267319953167040641989863553243025215674557934617212509963814825142988711966903150892569248991160750704534759958416774077090778473323103269314297198645539211357850991903239814216021026507165599783068485500095260257501993456498403012124874222689369543452646261145926391032278186424475641376363816758195303637557125160126542395552322422650162534860706155442336438382189721553927377830547495984307934162970502530076122111512470308305625936834289311354094894299638990028707897923231397907941008476839404423802048584678683271960553678506920210429506182123972277035203944378872844913035997244779905874045411351755432750738600169168342137605822644122822584942542920533439836095834807746664538441744711259445372251540762069004427091721242294787167226145469860350019478336242821905645228205826578170846387187809045449316155845161900711214475757306253595890917501303343425074797814896149634853643803272155667898935819446352938323297525398939597574653559945132761034031059130006693114618247024379754127377474797589329175754123830998923638166959928483198981723213446880751170276220626951608150923437913926977677929489582957394872528479534115924851773718449079427497232214551578027487343374262639001547792008178623347748236288459637372331550832277261816627871356376083456946626774430376143024626575180336546218602032933919297755859177426287706973987851518777795707032275549292225650235416947780892501807075942701175128919448995975921245905129164331456653464622841296472267942257656462220291771088068128559962240516539966568908859702283183322786987684992197454164515675424319677790109619159934040023709325438120970650882783006201656175116378276336669328827080362874176116300119283345136090555809358158676530026720571217691967919416868453474880758327312812744709896829259749230167326168378820621046130875134879525329251051540260894608535770507589529307170171681453941896105576575134479258535503059774755469037997684223949994222445943802494336729306662518761878067550244200904867136414818058629582469477540724946118303818372292059914368058098636972506590317459070517432929522585422546472660319019228734981216395380141821023261400954304836822149153201269095921733675698152579731204205363423710044164937679487526910189832688863174233407103336882782696646209897138140552165791389537560568114711585960028578981694823514056700044090821329924399408070094873032847138078408271034188640468070784260753076316344182602434829479090327100363712569812954139579467952100778118727434474277019142846529450825386525630097335510222830439638876934340629643875688733061528773787803005376046702450551689930116235971344802143235951140485489749790722722362934203434312662826314212937132362147219925002219663277818606596575894091464243118972775657338691274556167430494343174156802000720983663146216242976600276344216826193895317582735399494872954604905029686039359277274541462895572378661061517872318905531133138976457683275169519899833665716392969991610463793922503585804521806144421863052674337401903638697982823229822364441367975968734671602565659834722144821680260035326001465499637647231000923880775044479701961454787601381864391135133971259507152443641774275924317543800497846537428999431685648592017035493584940694822005379375971214000029386103930546023477091820430598004125486108662387246579963819774734399522599115479536718762429608285330247215659018414652095056188774027551468093990346252808149862246052242640915068542469459038541954285455948042226306918819323742170945744465849491608353311085174201280313602742210662651892258534622507886863493275416233267737445331566255567786988247106471183903624018155815096421179364783375289555427463932720072588859574989077731398894933540475481498491038022981433368717545326098480667565224628896549460985420813828320460683567266957311523580197785868681332440324404708622585578412320520068279388789792326376182124359065031263771367163442585923264113506233974913344846957060798090569257474689323396340059557057605887390691710418044730692349458288242166047665087978455936387067409849214516572711781822058755938746530939777049611739734839180901557572647223160974929627731782370260337442431994261396607914933027371183833676975530727599283757421808961289607247937839908760254287743654923851932962083346650536381695181516409404385343092517080108112099006350962792260440101443494939218599061928098938877324834290934370944306654378640716698291287903050221563964657713833859625513311194539955688122531170454119307149572867815574691571424071478571164190382484949483344761967020771436870316070887926260736969625962436508737003187134175015823428053059873775240955998224915312556831785800716040441169063990017516012795162074499991686486122914053327341389833629084474530244654303388693778577705767874631548205874371563495633176638541262965711356051082435915511534517613016842407293290201551503934735488044390764120146805781941279355081542822888004850651354706172879870835463011934337290585255216921348010272761178042205057133044619552667842215759095997354685398020707012055206824216801606179843975434805998743679957479070572173806039058475391790114255147896971514284821097263235131736285051833412669301675826774437381372290365399784858716823226827729608005939521018195794408979379829444831895066552213426965154181666026129788726146639564243930962990445972458694546473710384263631609517528378082098675340940031142299254485312314010768877437881632374419809239168989249235234957685784518832124895761441684938485690937661184820155472713437824817954929012237022604630206124441260730953440977806233217392783494981009441674154749609881567722619381130455382397807989115859132989889881843971695367882846787860550456881579881725669133661848018881608361365826171643740742407180600900821821157833543215720119284556552538201784985142554381510276971999672991596876178170973833331281950085562642784296306246870190536486633804031851824939080754929128371745743190105333463122435980660782208935458271549436632848379840977951534580174675736130525481426815819871271463939655161495682790423775942242950740466686793563408234428896701188843381230514524226655883176893659250055891606391031793933755382560444734287653402430597091856508526034592073696179770318207463093720577503334452899957738445119498776363094515695054147118117891959079779584710908947431485890857576436421635740889358472813238904940444227987564652539633285224445951172489189780550742556147788984696258394981285355376903497105596380025102426242156308788669179293809682285844911146498585094746978694333480683547512589511935504993161791208127600671373639424071438551310755517434884803146335121491898601797271170296166523273396205290154463287673915225554135849557549999355504021215253217444695785839416658404431862948566383938243382335659186283085341293830964139884648832527753567882653275750854229771831435375621674960848302526378297694195878499462949704752956320462693906459619841991340835357632048074710806990541141642634122991789210809540656910237959039521144600972058607297578561757012688197011596796223635165991596737141639408366251831742034619347561460545081795578013857348451789387050723584286017531167072582013699437304068943886517200729197180089061747401910593088845427341054324541990536742661982778186193665426097289887869020334809643345497283491267103819492722543377637734617342420205295498410473361318623784859703187701947822848366356846806228966300457264793846743072491417690562641394908101678532828707862353247347043196683598062651211918990166582089590017388009000423696900310947835811965760526351242192921538785151214425353715293264288518338584957398225988994936591792905432641436711098473944599965492628532503509349075066702614628942776749585654197404339447611536436549836948349904551935969401426554936098023185427482507255624376764448463127945876020127405322001523142280047307721450178913340750048874878969581426069821111088903750822958773307141300169860154961306076525109491956290548100253821246083760896082541176382761707988479664989692286652081225650070502644228010785225688314750907519267336861619169202892501637209820373015143414063734341002778022413421610210789087893798251610309773584972786669243315797270374852550528849803680868962808030217262352379434466193371703361642723396534012238538452430009018451260695713679217513620881037833418291724774775592786331289526530783869628617831332715867760600950743551476395078354698253991924894308085601222162641662243209487387626693622624351272892934817738315032283593821864034289417213719023128686652889253416145624326369340117082086959913020605441646189285979714384781827842218957974245991673203454178442206857077052290632253126358757191085193461306479087828892833805041046169124063430808400749019770226036532631540551903464538953106571327385721116103196987200689904174711051046526171395688501780808444810679703024300806539949764326248757725615123802772221721772158227174255193741738122779370718160020618813300375950566497861660989479530395369977415442041611445903419017888350200832399211178869661666704083674574724453707833454287584741287139645572469964268792482541333541687563803055361792552537238576657596730715357806143668376165879878601061932739694391711790383826530250185979380423577554147970157653610542725492426000590619691653199393560102176935165249072288158329145310373786023739095214399070081671351799912485791283623384510088251187932043124763038520507193356901493143125481056276893243550808949991011655897323296215766731438115175862105718949273960405075182247594080971357192696124645193440479557444332640590893803718324353554459899925825537443816837972955985088982634301159656352066908752323309141884501213281697632177915456933323067624714541073665531702973128979360187828296759354543361403837363591993492464864244985343473689513512368645514663907213582339547906806842886752861790580672217830821286308276579028954685716769910231614403044978312804661680644094189925751701806460090498855897046001834411604885335532012195624596003573787980050926811876927436802553482731583261504468081556048047879254517563696274210361815828699029903234883511002804955546652665775266522604035466381479858243965165546698198561313032366569370594125460772992564283337485786117940781934015142108479913541582344843925489708406236377971584930480409713947468205593134693042535796285162344558510890305001857782150096384895555779867407090882088484166633549917485578538982560906834583140995279250843627093640400738824326533267714245990830415147011513398722822652749417833454734277180558715862177245277762122625380468635981451644622798146125389622900506496956056759983937668672231797360397391024536554971437402588331101998872022147899920556693721183753272348850047651893725841892859526542292716478747376404410885465528969718527925233979374535645813141477645443048397455116074913212012404343039766178394329072375487546287874420807157422085213296561787128996974378546569934519130462853373528709797221128177563178292824616210037936342760545289323845848573396097502549956942972401370952539380125833257370070225965480824365997903981904161841362133177715335378298808478696566764780540871852450384907705412066168749542768419443301540340466636072274632330928458089236874790830563508070961475896079640650006274323636949753954809992007533543965274011617173149916839129449478886661061579871005657924192635259654120321561183829077583670223981940763748730484319488915930204746018852420755506211972427611690785335396286042783225112058321279336661225944498581268240586562474494234297928225641182284121820715262903946693122078350978659064222535325893442535639914263040513015872048047578057918407476111771680328458732231180411958310411426777113891691973176209343633464137856706025500010846325652841598489957965908401816510386215230282385592608326484378781105830420986937388836038461949706945702706813198425484319048452426849940452737330240198823106076770127510539069953090425758342315433213944988278931109998630729632433037399281330164067187147333115041871973755177879144235794125217639885016022494762040469390258335939930279697881559869683516381165573933162200872005532769727721988463552274872829177354774637153879469666053343316752682345210738800156153745719886137072014836997760582023829216309042804726553367002268791056465229821544347524807161975961539235873454750407791650146090804578736988026771321742919343066105779143458901402657144748656606142767551455143345713699962946618915950910151888399148906784412754937624224822877858413000747738477479135424792552094972276440338173171843865896660047424622764220834665247240739722120840723332823976241070197140924002037275972052773724877919972573708491513757268976050623692941757920721875951198103692439188127221794348849501162153555526497953078989134629437905219170973800444408162754977528468513156230564296355716385084418971187087486617756768724435494089512485500192120333163398745581283724062259776510741901136475976712630350368633882795253842210326283291509824851314313203194593408874136765408950543788472946805075582350166624693336337672959347658021211394471560155266619137222770586675587545553988870916435943089879484006817000630195454874828898269883259418726147210657683922141003572400142793110347868810494589620318846875761246750759409308340100763063489695500329994521631744680643114435285449524631239841843716506906785368778091708900184243719408462836149973212410235866490575381090566016025382613955207637344893783290467461674994131821976820668188501819027539586235056450513257676012712824339522699782849803030206545814892091579222750385109703217207743457161144734429673852334311229143903867162581476998651287311897697085225255397444845642052847078546396407483585521357121965252095818447896031199293365412451782297561281720730034308552028204651473336711400691743296061738944955346382165511304525351878840997938269285813421038213978886704345650802014388149750285373796977216654917877129267992394652624276162021967707109586765526948970950362319902237682238069145603590447741703400022014933664858282622794393002698732457126611119378278911149826705089181400224002378799702465160100468730070501513595017965279440252518194465637722810544746738442616128461802023478457666211695038136815462875101954473517896014519637377976838632999332582788139151749566358301302952380291049529488342559245895813422334729162156916027911107659701460994850560780839323153032615124457160238173275956400519838033943998392666119816365178477577556364285712251904687611547792628239531564419228065080987074909848224178264069375731860980638624870585107548056735153555142568320606944826487240376735420306409137247353659127121879581278635386749022098665164189320858464133413560452697080387280810159377649223742699923243557524910513166300347222039204493000150752252429827226095944294037067334491290643545674455394600050118683273006823659335159666060099126636209679219052026442796072003597239703128513700912898126559172253649549733892115274885761455887890282535971120980731447348121155069293092372469838994599579413473391717889989160185628620579639073512141958928241906529046936691791565018370366096913161090358455739834933254073095446979344361755031137978560789710478648032803958074444860238878505324105254358778273769235083911060808696484258166700159494750939764032345816167271099992639525191593765134870294566490411600254424955287635398973350700154509050976506647269845990080699648177645259962888454947497918078684427930780827987964269140325525997739928021715505753278956360626290383874792181302176933675585377724971627498707058503535478766308881737207282955373337464543442661181622637927357051698243974351692486875354614244393704747073950241398579995889259049249841458875744682493826966619804760993192683526300270451344156720915555548734553179263372710912032072627277149184750671653946329817373785967300471020725219866672308515585655895545116464402806323208500138149040935498287650701867738608391912225589297354561849584773512087119351324070544946671509612915428464587729991109208634392472921204834992699613059685281165301206662881096670947958823744347557422423466729082899416197215985473219719518583106270726594888509926601962122825753254575815809642686957683955187266044691659723522751849567905591004510766018446431776832408922522532476365810097960575726996963412260690038908788825563413617778348790883966439395422813790516949735171823691867907591720073594727027313908871169920122984298999836161655418790021784485833309632274541693045465188411128476718816346918289223498990801271540129143838491511263311221311521613437651612999269768194034568697190734493358425900870340848864333654929126956131095993717935567579143299240735711851317771779233097764561019757057353052286767032487081133159512717625149783808265108391325181785142046202546017026091143958900338091214944917913338018279629691239118625182121856593376829276344843510084424212721069141409691986442551396560822327625940948372130383887333257097755045542020454884469360896138967343450772041238523864220094211800949398367424970780642389466921156435677950217793256776927421650527312325300702858615565420649918206901051348879186635930230055552606599493683369547502078485239631338045289000944864939955790664218595625014163116837466457141132924567405494261047742721223910972292844994535905578992984652216260077022412853864815305876972319175927585400385260851308231706933176232960821059348370948771183006123521953149006604832007822934240880806800953865433356385419535073663606748740268029806513192994521398791227647659032117397999650509030922134680217481941769533090295386207019545394482495695088644574749630109011901439070253844237000221131289394029102538744280703454876760193584114739438633339151471306506222160065351224753203102448219214028812170230944441987315017180629809831038864215954937000442918902742066142031814170924223343875923104019141793951613771320678739272861305482606762272243199269130647710077006273574821805476595236031178554803320174979077330683245899716824726258464440524493214193171635524783756221287729380058453259333693289971406889942520279076937757748583524994545777446633741771210551560262686571490590047325392676772901468477749846771475035941276856502873196794977529937259844674205202177655712000981643197462289210391981964672838450094910695754261775423673037192822730039195097182648703953466907478529101748135175431940524499241411697715605109557495770605878845158895762823161380879459260421137331091970683068779659793064650211817882387660013761741950517628391179599093750092163512525990072854433251792207856860303919845854322431277072246658383241256652634185916147704191856811176312132123357195169059218078538302930462235627875839619236085934444773229320992149585841912195939895885253453084231705832788424899709739064346141624292051408704315970851388011293375650267412035307801922866256096952134407831673827882941742623766923206009668285083474996546471186863596936581683532151851165876673078032829450048075246354392585311601492029819363275697901028503816700118498263371580523317442445431123747806699740673414248823165031399565189832351853234076366100143985842089433765558770050810157452468533826755738170814054024704206063420629996771203789560218001773049297618505840572270169821047793827112460592368671617598496751363284799853967550627784960779534036446936560461560575050942873829450819748312710095848492291766179769709553245421801638044460979103512423142189991483169770561735507155263534053059091135511285888693460200010561944398696678369500464852654779119655200526418625484677132218559401670760005874814897011869939525961987189583381313346231354778577870093069274865912861472394969735995381978581374435986907220901197863581157766039450262183871955418084891805017424290544436202158122923077985179419955822440207666843104066569568562964210165056738260641302271777913197853060960520242545432184345940724227448564282385559582878310014189518081616268820952363868543026716975093288718152749915919641508831981955920454309973235023092954643591876730811550824901148354529974669237822022258044741312895536104002111849265748230783346319823736274774336029935174620476011281556335440052887683917294905043604588246022546032649014203214819530164633228757935828042754620256591495695156946784859874838861221263734962879939187667229033800282004327606056402799476356070347283708090733972055008102238066311464233758310855253913299730175246875254363100331756702727503441465405431346083967357711621578671206332429568045645102111400093067846201056428283988034714807543032386313400646218537616064639635428858410853182796510892358878795357772839984960892429833701279625792432338658675580641060906418322206228425244327174620283965278607610988268095348514373819481219902205741041781160743508324910983058249295151594236104847177173949900580628462312026492860219326485515824361592222282420311522196988409050482220238188750875378782628715936941033789509419339342931465711925762403904917183013656268048994643678363310879369983282752803643649835766346738562002355025214446237092723467292685331321877925852282058538261181731901187368996271539563109404553498614249010375051391561103475574630027652551934207392585710349452421384061182698792337419620143177186575228258173246476893750644146184569165658371750553546087908054775391208226340074559544888738727460022243731867493517217519556139277590209182423407297883764843604852414055754051457025898319746664738136549737109381377680255526614807734874041378417169021493110079512261569753171922124245829232108331114560186553355678386524616551297491679090234833521937049664434546723810343074614605287798066605149212632692576913287438170907304523985158813807946364109033374205774008299462012343428564289401277497894344482286316967337039819656242441501576135198978834454941167923447862502170195738253744485497461428889938687096877380807952864867803338803081539984967496887412847605174860965069883155915904547245498807812859565202997073002695907937418737620853643302436420627766022923168285269692130577813673158104118482163890498439259940334675665425939744817106525024881615415661169112513008608898989888170589269916457561943938446857007948931291860682053445008346498964476787382922918073008839726479039145684000737586467742152834117898145164479767576122182671317112109179032893585237121751560335916002237258480379557995417147314493115279339858759710320341038808914971768653157515065151528513340535592049364697369689915417718835767529377260239438048699728458754672270425898989144738424459364137731027311954759304896531521038153588045736252677951203708123183021056823877583283678952326472614227759989925106224893058957401674038740237886853903332488867995368556690733487775187525341943485942331475269781158337839148659910894418789744797357114221249633087660003183022653218183816138403400010454031590667901067169885523061965372052022084550573112640729261350490555429140974675685803600464835032741625318974137259770990243922056625207860996727233811030133422528756238586899130222459887483522378428482738712835548647782539645412947429639788332058226388912912292362305810559937932456080398687319507179746183373769815787408610404753805902535004066637937092500367787483351486225770845589263189794379940164398169517730067676259621118826163739377820460419203329526659366877029577970283890226010006630635258717757872223536558000527075432339758661560968085147509974539666451482758654418262199961519289246452134755034340391342634281496542144837351215578792010888025435317890934557484740911761277293656582037076930261973860616607762138288880258435027322027678955725760992414032784471140983440166555587444883964534285099576323198621499847891918972252217630990571715127722114011974356649051060596565667137411179903889258518117371151597865002979056019554189234799938234522480891249218883104890914244460191687247171652560348475539592745683282189148959952562144957159646991290556438354640126589832075309696494633508123673618849455357096621223600962022507214468227318434475360929356809128586607419936004595702889775599865253884491894871944675419646696478206187264476362347045600922226470429702302794963899507738083297881610118067458434905510177237485373562743741650210323265858809864718015855636427800695401157272765308864016390262967035480003811177544431803327892481755154404696807449904743396449694249167615877836176162945916422887463176846023528209359137898317965084110829155928952643763728730818982530408556598139322187791014140747079048088088470103822182459751816956606554761941636323487336957767734379274947369444588760759981593032264574533847814185223654087065221789906985868608664297447008107771747908263385549376038302515672218722416254530158929169201516817599282422591861865156639969406186285175872209779154928247754767129370830857487123280763219771975638239920439973934706798154071362913957852229815148694160096737214388972545037734148936375100321428129691029126987682903102286463190078237306183940166157406477729531236031971518378405783471569582288725466563215967303085678309113752610773187514254251122514374905004610588803965596991554673229957873048541704262917047435706924806908153747335826506260991553240662651366868808396738916880137994289409291031984905109584919156778623432114021893479527284398236979625138749100732625055244223109238724549209558269513516720832872778855049029722088932923864377145304653924128595750080620739027702500531734080563163399022875710880839859725900088799442912367715248070422264921664750029419791140489362092472476030897366469776999157671228806887591828772398033724815568189829976071671227761492293104756341514393411014978894748134753439619718515953663234170853312499821401196645519854607094533889394551384052326336460631079343135069280287178169866545279837181226421430276817154296303165496212679085777139191070591695319992935685741140692225258485677147030012707053319778121452005267831472070495229176761716263764372977095093906960025867932464827639382335542402963488430729904739232030998695515891004475602068133528041316122021511031819385901264141346492594592579506437985359540700399182631199886554935357493838605512792381774346531426788941091312694235291944046318417080143447878626242025835083134159963464647530403859502020916537537550690316569770042537375022381100937093639782306427076356635217841202521261319989655705056580036580374355240729580737396143306592499764786994733221478145514349520887944413357472145505506097089568949904741014834702229093421029447956236036451372492710412386982365070440318605014955005952004018095292310405098885834630677153590141952931881502842910389037221079360021303664677542792462127278645303488895759008632343242253311835266214783772431347992202049011025321473399637478366488724101369799130265550428572209270134125328007378823522186965347089515708884609795513588251654006530603127589513294276286590508822108782505100417245966541429326358203509114667333116085582611032216030167274882985591955075720960419150916483564721248852818420596015854519555226698542546606741736192531706677093927058055585683077938160382974807486810051695892253222476709085506051477015999264235373581264146569732103262222435014330631255025107256597507057783072188783189192299496446077151553441674181627538869310090035511481910169895102144553008866980053587119616353323185440792454676824410375939038917489127538901477718397569205985272732656719710853083198609403363951024489099941750049156320049400839578487434155146179397021031515267053739152546403783700583114519768117987355727196708734816399775044871571282802342041378169357756939558993896232354763694517952475817941145025876808887402751838307660041586660991572418793200149951181239903872002367243956015186720967863103683650635235654344083375464960755642578096700055392439483391268542462103650323590955023674629277113539954597478055051772187593505920781825336974180061750917433341421876262684849377016655261692354281996224824512537096327580951987290202836482229456316454435573795901693565427783083068620564058187532347552320455556762615700426968116751484815202216922657825415329311805054206251487658690161519071739062430892627131764435392274145917048149603511389454889600849839351810530599901628038120399821834167574475668086982848057683304706825157550084938422276075164131640403617163433077646617874812438293533271386395083212602042304245062100784377370020134360187119029242111385459860360261796531821605367254952634846641524128561368065505557168561543422811454601336415789468035770600254791514668324304202592570834516769640525941721159017119125369771787650745228026450528308462755792335777002143248140264093692316558492982634646586352493259269800500995725027410494036378007341762817758928062262519134128520790761188691223037677954686485481240503186611133767413168300456079239703500987231790902049511958734492544662609040995395032247907140883245767861922542755137735638936330740273046034746491930172791785655814080004025202785822022116077092717187103905055640067611258221467868379424545244267317410072338955255945494775302057814008946563942663846837348425249897300329453518522594763977576851164113622637193944612675605676265710347161871227093819324676666848871941761537611973633200305221825528929041332636012319147489664154148569418787824856342282921396129489042262237670698510461219010091474482559107190246595584783267444886217793984666049616314475379931697397993393102605299858503791651224682567416960511755654916999390254435208927448665239315829737995190822261221185254297468838030642501912811560991958132089617798475924816854509754992310767021263102825321957376834148724041504059455032610643804269931617260807249363824243475568233565315921446887959151556895204374922304425549780212552552298076279211737676728873452041733210966661103735994212528955960728468700569201703826976774058039357358596162157466918907378511598176223114011563619879876893859467848562736841669881976631340283168042982165119367672219799973143792547915488588749073017909332664017776741665491282466961991683861915760462460756390784641898102522417898926776656275143207341539911247374919868632795360532878562390088320887986052206635691111027859167230554908731389196499962354725135080986891766896136000805601471230035793272350700677860876317064659021573295382919135603350155173769820224974231656892376419454711222872990757850006041761909120702164642592083314798593642685835778175238653682503666523474229505439344613475929661172613045162349904362149209237716900180095935627505964240873555275759969780963091456786474300370246850498088034758169588647313599236551435389048700445871583809892825953356726222904261784095361248810451270878422757021764463351039699623112344109413089843508562749696458775214072739677879196513346472915308001945972589746935252210122772925279075643308953462485230026510985608355090018147466079088057687153491750737327600294081802601735780702108857522462523061740194306390021907930514220112440707571932220903230144072798296079782174082463773659423826577490359498043053435088049558822969278204597085011528957997666508225366159866404055040547343251120288885272519355643153196072192079950935088868692084423389775446455003404635623563437757331551386543446270461865511972188183197109500072615960471242247846786610443433025151470405259360604477111166449072736954615782060974921610764697441128713349170401118123083850730963233742358691895453982810025835420405311528604758694754709702156808821118545770080727614603568349889213181337589280796312924789633497088648845987899378554096601667685831248487905258957790840972123811918970095275082082070325362369011466623206649826333402822136329697113623904036525517702960660684733934102817633263700962996515574138617118210966101783675682657321503858446476649334523645209767939159012734535254521411821876184054145290042750685486493125657821175221299512236687586147236443322473571552767127745749337894263253945700014124944903746659722105680144612404239777489099797308056380975419029731584168479269290768540901444000283708605253462749427286668481000902155085645687410525651253158599797436210761300260978278822308913386906161106050130752703586717824323776854296905000563418876151528182494997503516766368468659524300475351639996850579955129782070092139088556678320924021664819685070583470079902661940856823749982970746721009550107504035772022880911994898556669565409646739322285122187808960940818552205168877343558682763135464574758407643592085004609746415243453705125147330820797442081289407808577347815488189993907670148524607356345566062620867099177184971494668277595544081818313958025835857717645947122949830242272373542498978882582963086130325412156254800651492340337204426724578583875431392477598775015838504476237810205299915783034949181793423428103314050622544229091719176245888925688524764597942489159513528968311732392442609605037399683392384049183497002269854292639942421108701843918905094612463460302229923995553035849171660594684206945720105837043645709806401662509040543768519487053945357979371729163750128261603153707869915532740768639852875439147363378645445097474203661644154313859497672759193518553943844594895397902752812085118425383884049731956382548517812880084333012618730508812342829109845347085038617656873557510324686619727270578308803151367860323784310673844579361949432991713577823017895197112497368666051316549058439460907010304140197011687257469374617213906137123707963448591575052245492885557237891957330517658907698050278741006309224920277563093431872472540133701081313075004387900415910146320498688810748590191057790903257707134204205839578098943230214182517236562102455414337500168426070558315838673551839130736687424685394581355684816993806437714314269248852978104246082880247300282674374424498305579281852149138287213117611647024635686400184553291649092115930575212209878961337972394443936479623948699778125137199456030596505802063854348970106539999822906158876527759987198340422082157321324011163986777414424802817817620987414422288802790853813953715539331274275242560987184677581623330166285338964550762793102312620765132240066662019016233377644080516018433712970694473953962253984070372768287479150309459454658614828778173402247882813895696596886618992221319374023132894623861172656325863792651587372891006941645791609413505178978074627317262356349013787098319930039503487093919298508135511601462545371152202746433188260197471951642636450047985644247738834232042409913902045445478782984681760517974130303488672713374676773345754961805072000015635708708550048213707716991631634266974459685700044726809929003503911836828666461780034101259837942163530956219795635071660194733931145326841667883182297737321338073416142763374016058999391086993897593588600776339394217697485503417679802023362228186719334014537284218708764523911630414414605158402771134318951298756794080111063489006349575726030068999763376865939259106854414410072848134499468702481887903039089718466380764646919719718838007113773356517248172155768648272578751179499204042820821499105706957371526037376549984110042294702294135562489873678027220560269576199016719937536637833815872163160931513126059349359289113983160097093054313257655654323930472843644377313832553532025204384643704395041230657093623582330649433557546936036686226013058590412723236711125087289331292469603609293690317684595773072738664623635191601249462888460078123246712653407364723720999106798349317725987872141211500310647496909744458422960667028703078542784271695247407182905324767409557404326562116284845320604162353691836181946398538164986701502689992540830079031065109665477156406790218720665721464825633216810192236603533134853710451761826301683169818941862072765070332353399062977691596615011223445709995239325271885546613952055164765014851892380349193342603740546860793796963806037314801067868452709682544249268196338769992642274012680574226090907923046976666723967324488568266370941671951311029959985325695731468409557518826081865806313638045680534396789801861205931808638045399340951189686947206838750516346796370990921951761413378663483966277511124633180160927902803215227934884467913737643914756890698673926987072749540557493124098859163196156083555583920322361646773177426629954439089239831874975440436489104548971155698550310907339505898022317742913594295497851645478466557397196435626731665701113554079182313210438420768874848071740347245928569219980630912805667558630484816105325352383711197626032111881178692672762451946816265735593875167569923299391624737544268770163411512091008320835186483282891034805463424222407315785559579642589209844983191198161380997307017962336550657978750260279592469522463501148374896513447666664533198588394009677820393231881645694485728050668852999567969532729187622403025872068354245810558415113940654431997741914835987304003554742203924546450109300288897675508633528376574153990209933532734843690073158251666465684680488476080101848301180826879542984752677589153494646264244990979888798467078944484076360762901931070344348278586808817490372632502875012557208186221959246168722856321200728977199015924555803187611216007833315724959000011753971710180367906569553899257521967019164867746091483571138136329018302080879328164174774157316240848978561075073314074725327083451893126750159539683094521803657871824709155998751943735589815619867255517636737086145141292213013050884600271865099723600772042796061623193250000374185057183181045792980791495593325994301864842113345867238506869799009144871767740451194655481274827215929342135369432539821180174233007549574966494325620703719570778316680939861308369856185846808574663270059760098001752572056987212100802411247540410882300437319266551398518563662499035388165488979213195616454586667009535936255599820200044873651306274065335363668266492168343986538308440061562976157054921181927150953189441140623912726550365209133941738640298036572517454720553294767062966639368280676593774218175328071310701549690658725064243019087359161403458644797728990565235669717790053150521650771583064004045113813981558331934061755954948548464775068104886114012316041065465311331573078703285115336628541388755797586181204582548527389348784473656984109117215390411833945144977417938832159292824890621828291491171559747717093133618036264046815652720600283817837375146445977062920491550405783074381868904486820220076237931573435701538086940537843250604429857559976691760255444912626898314911080911458828693473551061072415487436060541024126765989591571294682475075873509848724480555969598718556377703300245658137243681792149519008509775463460168880921165721850691215896124518327378806122787945808929206286845041495709937406644230709510955589074618921836696327343220829702287661369660266212814248917768911501794304420066836140632120461508304668907341561643501021306887822822716617217487182481939064759427212474485425908325557183316421549035761203751612075826199134861891668826306439779618169618531779714122169424741643511138286025167614670801657544182634352306819324871145772598297387760134574528092175534494342295187633338323218531407537517268221947793183439358851186203477944822154848874279852497447363732544901632126175424923241910098296510691375903984194763134971343797239543428612231243403359436783326997254522631022574134413895856882119372360869335811210727908471519610941992332818394539902808473236038328631539932775427033522236239188929616214315981614667101369103840265580243617389809408556695210938091131390581295731892097653475252348615576950496176727576328764013937546972682217696625068923087307654921494060767412023316945303853052427751438499566318851099067832462653411059183851583592602854162394744568530238491805449779579892765285456052852620713278790594910841577430596294640461377770024628585010296479204245930648324182135553145790042003023790473895748935200392001125121426995883566512759441557826478082265978163590510418427253072660947187532194136756795318964320334232771095372193569756825747064497674680275090815214362988502650394398189959895444974225594695992371386265445322523480387589820299749090425711750020973543698966922259542847457636482890618854022581246389620039151902950275565917449451237690174071386978943597852323501022566023687970043179295525196201741428697919628821923580564312860363244736745528681446746106633163949359277658484613123361905139282595146594800064437649139418706744728408884740110253134275943630364059169315250669982034643316719492556618974505539022341567226541038491355240428508013579919357668343625655735624075633278399149324484744759751074443672654217555679877358818535594886823093551364557114888508554525536512461786861605382947982099092018105888148395352067357887185836590043196943437036032970704094149275743386827144138933021390643907341556668975582290580435326988789527192100950224368858668439422531402171518242097269984288903667428576883786619975089476712606409769657129203552318480724714933893847291360770814598257949603164965522463113795742696003525067012306524397420406889765703806484366521502833909667286362133978888512126567759211605163377616476648653986518632182272678747674672784072736110047161992159953702964962649351711170492691613827516994925364702819432436185345186461838584296055119519190603494627531142107476743546739358315171443465496424633935943035368241245181654389383182756728613787404419378970357963248769052576280826575007860169125466556566975370855571689169833873219659285500357935023783294895892967780810676036982927217352768284568297775196946087075983012436152094339969716518054211907313120965397688495113637900700164825687991189859508576316457379189620180100368669314985608734897316628834235096565350315081688851399412893948409225145443839103757423495223657068074308731957320136712019911601120255205477534473645664522122189955890716630397131054432628424059038716770493049802001849954448861080601451783488914481425670196013626064351442281267537996777445806699390739054335140885553796067946318486197418307040114177952548396340998362340534526602437070065379037798583695009747854379406645039526326353943050337459820096040340691642378635039108602569456858915211370927192029093477972552505340621691966735709597185873356980940358946972155990890786108344256121198157180406889599902896316961250786468087732728682762557099594064025287847362261664896349260716855367619818754968429711329780683135267088256265988156168568885757625281878695497912984718875711370960010569171108106487480287824719730920976117577098609304686611105985978410390686996049439782923023668854142288504038170503859145413014731797754525239760881998501776405741870985600671434102793736196320113644771446918584203513530023142331294532889799967811926268020806872334156072380809051841463685033569158235739168846193433462384749708247834606756032449964439139170189775314221774493673534477190368844805778703013862168811635179994742111618393073792576021730661576204366251616099559568628168872168354855224291126723567995182102021043735791310000848416313626999111851343119766971302160787849209212966595143914224337581468971604523582088972938484593592308337333182135103250920941269978292499649761820140601407536411775503028437577890114846561676454279966852781552460268999898636934370097233393016188090890872988371304769216043590234600870400369252394279373761890755527070016312175616428733102500519399023744298386554665644065029034359421654277625185400419116535449663100383325539911458982283699750217956562865555099050890637513699120343443120098821114267535660787298258779555558245136103907129379727965297924064232416887361012981987244455102360644660089488868028225921018471532998013174175780082667828397535992872566554528387936587276660817436493625251072944205916899191202804755398463632442607579219438989468733843206629347618564010825423814924288083280157644557629456387498134652651480550228529794955932037639094656484916803926068135559155799814804963750084927528760354446703195176983850328890998663110110369163579888626452078309320182531808673009802065841137659106874153930150561929331383592326418991622994869976230900994388722346618556211856138830077174151320885808478230236660292659106676730228964913357148820891717031051046509300456404786887433980449826847957092489013553900927318207813855950089011654521328398709789334500066658140459104282346630739973605042661809818022081242428765407359158645880474441552436027158379020450257689568649068959909141121512391503703825064519118140515723865426163128364456290733549278607297578545056387301865889736180894031213439935858964903434355976371399045742914364336931175285889786161381267872191610428186739150121995333032537001689098950986684353918028985384089048430622434444336543647255689368128498912985344643707540660030540667728879577049242513986181704968442115153214637208176412618072138693439047575963463297649504851728398951118224548821622074898480567065974714850242717148104886573509270684700283440392698548600079557687069139273572261759648505438046419720503974256345352006452052125974172974276374528572685261373528918969085667318572003464307023935248823391650123857756597806653326530787076229915064325172587854049419704552947330230166870878650753481381573024960967540763884932009991884462017338553848710419991517130252548791510938606407792028111934298434784622857507438458678362171224617735795698630901045787856470844980188242025526976568661601429190819638475871296250804425296897861978845141385930081111227880592548578468972642294261534099067097544071247590299210481241005562058664859977863494096780104495130101756386676640732947020814420766403657408732844122449730845374113424158467791316648949355687657834073874911594044589455691303109486668900410424662199612345839895608364020358001910095244424448079541450787321590053419481986870059244838190844563723996711192941540691124492164642684475393539905505707286101662326690476680073899059732417589076133911523933925650481963987512192226547992484342976448480137862350351358007507628464022399157410576168764518330861526103674517280473457141874454892568733754744406256230139483807382878766532393593024533724802489769934850210417409137071467937805426724405022867514379135231714431900166755529211091186623259818639054178882787818528197509969184613762293123311083472065217519492693930102629145439383124006752670242059945795065482750710408792978943823462955181180411447624166320042608554485717025099247421299633553909194291993482747451976202705673362476497974821149675128592200084476798207386550198620828677690680217745498973357884535589889825039591297938618312895221395449199941846361767901295651509090396007886728794847938946619085513906743171862661551429820235231107214121210423861736621406759557972146465196909270225611650888186346838054702056150078047215188605856395873020544949577148390147996201946611677206315580121193085378907453813279425967801023055806725248135183931163620419128710982782111706111231568457327651230098011357679093993672297082118907657458972131976059363456004305147612803805321555851585582826098520348754432973676757215317293963155715726192535661267224462125102890204550228117200133678405429333991274522843733312836941238190805240816069136202866628123130863262743754836141434374803940311461968223298188976847997748993391778781295022280136145714513810406556743427744460044066930268411052354674438380976246100982484089615697457127848413918083544625370180999175373843334679158293787637362383218451638644789342051469126960441549516155260200411552875928505855097951998859157439273449234148955682039658434609859472759464439611281487325005255782238881754881413905843349586826118099555650927349088526232598644021289267135299485367267091759180580995290387710762804881028302747600514148533813162306310508659079320330319521421395445897818610358838385126216738317787678644917200197603330815832611984927615822744295402380523747076492475536367440091073207289477329304997601625029485349122748410742322642492299738067839910018640925125060682508908596282301023244609273891498820854026465643740803993196195323747027115007610176242252027879604790817437150246621770056777698784363976559632368184002311118160907418224802909902748551614462241560041809838962827327139526935076865591097168303635328458363484397413223184226215231674372740863374256344873308028052170632727866785877155520203354170215843449718608029888307333750393693489032982831997630834841594762054009606737910066867771654844525265732268046176693916849799895909422443841866511112996691109844114750797674811792709186229759057990592776915698091166334792752294897021532913500944146538092286050418005289532511367610549187675952698150270749563241191739250539569439687791165217054661640089135179896185389294971952019029457128989590988297147290723220772897715873949724121512235752006881638426711939812852919663456369178704083748332641629877762818393455417780677598236284845197173321975089539555035334291577548568766371290525102102257643192355084683088772675082101857998523291416574458285311088597237521117625612226565409384187902109729334122937332288296970316008909171038929973317109090272336835275505841196606752370123355157998517748356928807060343019827515582509868890980994594924223140431045752335403270050936614499735766606388425908416144484531154272833474318887824881259323186608946830042481737712390413561826221838892210626501388567754243620640188282565757029359538684895350865142359324457891408227375327662370081002964085006490210424050856933442819081213530142752797638532854413111216074379586990637940746792054067125612895826245668972728016594177939086416474900169403738163603847343821122074415767634609379456989588217964059539235558131417365200940133113684382046596469576513725139754811508469828456975276968558489947823557309382162303897795292675669437877766013134142092852610972230874985796261345010893892936546385462364121712454251671030725893636411689960764421284911635301881144093712538607065241202514558989770679264448831902395563650368009833453068805969063489577261018119659678947531245953878658143283242108808927019550631252430653210024645241862635059907781717685344735309696218917792019783228265980183308566201163709638918657970492318291501530547357928860317244312416997104545928639007895435371530523682973190825866453083047694009077397605817078433830051424295798213237274496283094772065086852559079762246015772191390192522167892864235473853662942339807905057926599263827819238074200532041316376012210440808369319071189030166203362832452219989244020612336101600416556372060421176101713701721482525724245834262977275013714387659327377442341184283560418761750162846809076446750275640846504664043901642093376124447525977260527967885600028584600974313590910886113455851208433984534043948674197378657955519832665076743732463760999487194569674351545941589224334241924479476528764573200334591208340349894965281649801929546502216995178170700089716920049981521215794036446860525077580549117695393691321639814021815135878459742541683825064815342261782870488228256650750657123062641731153938491083233782908796387821689699965851287235716821148362296735650169874107148616202420742687442894417749937997195286378158831775203521545479296759126211449600119321342334014931542067796364968095871114640508434252347213025753507330887021983869566907846119122449945768167132971117374249398586641031765544675169462598814372011137443283375356541290340330544898324345599348268107714157963072432738957879383068072922192048633713735670779918264625846388846721852906123262798777320079025853369098068894271908209554632561029012836906918430114559281769874617968375429698298047122658298898855395610039828330600433267784706032588174825005577321167914902794569805324733674861698041449919625678680104923341091761252805060270841523066668739917922699717933565463690168071612799474261480175218914038724002313576766760815063010202457781765737182755149174433839133742034892026231321137279800280896324606048455767683087425506225210978673596682270073329852054873646911738299826462301796152009769513875470651585248700758937578562979309361827097070515957493551710169869793502555520047110279648219175606702175323584973512844968609323666346702161706793264379378110863997807597120523936819743815120008058305125208738152023836618642564999047894415238287247363167406972115864141814819186283407864509380526041090631208913972677868544479193940320574610487720061982003925215651123831332085583427024906295814751370656755066574695634344671334473009747784650541195142005763045163771121340457385702241941796678184431281492148974567273606004441793936383606107976043050464835040127296861835343320298373820654514669853314755014911915726482555126217914235491733321318090548238098245409374942783920712057000918992188024620695270542981231971998127591871268383348106250296901863352971728216312801921396779566867917489047363481263034405703681776120286951134715430695262493846898188381473380191167054573597390387398941239560008515676679613919334782715622894989919613379038452753498846471673392066910563782781109427851278302883707954896361451390522157554306232884800955748272550556231243106902738065396045194154197043262507923240387148592739042503813146048080804898588720535608639967745575735932672082622779440289795645472452861229376161824178249578553328648925505467685305114437179700655096675759941264837277956042652182516249564821107626564104750827116817846310400473279937741345088279774950245142066321906038546072480530699681766420106325217194407457552867013168401970360391723388904317834539369169527044988163773882881425517746608095231181484401858824736166708930018784378065509760916525422276693095187205550389846307830568365216463340956348227362033058718773887165856679527925673990024497486433603168006250574660572622573598800150300723618054578117940588979452173878196846972264192364747564660665128134723162848715833853938776039858690826398615996758882942454224950924756315702792965102167474940660121188859144734576826500851477895835727924447152984769178476882135255823861454064876148133390338652187232394677098996389081152052971890511061298796599800595974638648452776709252477794911737075444147922963275314924115574553279841679153877194889046645931277418550356226515524654013504412455187325129282588762983042129701547412319213277424053385915396762662743483050315643786783652311184140834616094291742464706472197541857429893136889482600514527895282963787546512084371393580494637999936679010826211431322740465279156954492443810826896679051412111897912247000203264442420047081260222139082639519505791569623390241426701808602041028483149838819720353708911759622730441637458898606967445620673608256849558849339030069414289979957066732462336666387904336771872232333287083313257654437873528544991596422423939241713886570661054634343018433470839566862637373793619327135911178152986596056836357685714768674907720625112390851941703036334053392215302373432548693914316835103299181821304545619496517315575667725728878021197762564821325984053724437821769264780616180558366678097779658166984505579541823058003228632103436645353640504919007730795672909337933259707997893939360481965439267972675644522581391654761054503038460790725625082700786626066302582004220730974907923681589470172172110754730589829756902061284046911598210642220015675469948976828384658846994200728970759744106806911603642489985327915435989825147727542170810135687799050221777225506139702355572373011794756713758448377556958012362605624389424572716095940787672427025329673019952224136486883715796400940839032219849853597748343209263499170005907755016792172652233230645445855666093364169400817245111794450180356224168242443973647728654927041604793813096748351937337346398331211216083811276305158884977425526939039765860132898490025727695547656180004971597080033583712716590726719297715175299521289871482917401118658112013814608502306061892099895467327333398872069637801728767843339210545560426671894407679226747660458774373657324246820458166086420715630212889041064390598753805679232133683128854784184163505940840102439397186314584830805597517089843423568972207893868621113464552464326109419821958543353913378668418952078713439323581703527107356603142715354622266587362593141034186804856406855643762283489157720612750578559085635044769210969055673424453135911703876072047174542768499238228037179986519176448252660217597089157200121549424752467549139842948908846009372026082678120450218366299206567529012916385397461389542444327955816682508724129014520752478139469022358105143985061861410577149446452603861533688128938077480196069581556861451904219530884650268162722887078456435492495064977019437752167875952365408753106359011959335579372970022024883762812763017056406287301982871510797230099509918947131496799341731924384105646223030875376618386641727381596363245321436509010058347605756534584385970477603334981076087040563721669217085854488547384461238271049981574403715815904053882401605482404569085291593462120983571749034295140047680288109785435008146297242296722765373622531737462381142551502939637914363648950096158886018986597284102381948262145001652730097553665756893367389196233708892561932616640638357594952357661304493421326430383166079464242302318186826747260242692536796859118628861450212766269529739067742154768843519018571570067045304964861858884052920797711408077743081740555403964558234941961010709908864719123515943049322839214443696684213336416859310910726421220440753240546296332549815422000696983844115481505797400446878250039628502509130450643700758707688522442554863000926883054501023034012797170057374452023782858784531641830963497760108816206692968697543837215891867538554352850031706911365099608629637462324981943941766528228636256884108816498520635476872963746577363492762475596749574300274863727018832701041144812233944799367451434910788102658278734242566269125132250840017508716080208277436596649096221355886237550823787444046730294174108221915103196566978329663105298038493669656009532459740735817346292588024691365199130842634208238014865706537122566145615771714881901844071029261549537730860562998209213070666782916560448515228504650791442936297432286715575589173611927307795059280737303383321735262112507469165850166715978624660390094847926573446028646668061634136213508101739448293558440611398508054302504945955590808869843955854957016131210080936782522551624367378552523634453988390895006168141794169069721872408419596409258201662987133992002860702536126541816616378847592638038033693270982060161692005807812166517531905479904848989363462286150871750633294075738299331104634866357828856467390027087433353662626870704288532044887045318670208406181839715421203179264343814010226800086327589709779268850177818549691351797618682644704333800067743750514882171639975552271890604596480412742625957484320530307397545053605489908521000547108892213753947072297627952214465271540563598738145879586987815049937773916082535333152737755699279787114921661884220080304846438496390810164356608892341890632077415940138802486987772497686748882178739573494926166929083125103748929136283477287567696150545958744185808259222308554015845658759034401178392187334351623245017284153809415567570006941479770079146003508249729435585094891089634304329375343487086233869094818700475095345940603261271563667513384412676223605383116512645453629121920403439806890740974630199546812845140408403105690629582125215533623972959164365092022309131967020102257974575417748071791608165836745210114851096882351945024095825948368101956456480344914431066384955763854353425098188454879333229098277712314997533526771545486705732301664940156828725200700508230271572594482600650023197209015937821607279835440493289615865642394442043159548697316558397749140676403560566560158154381346033368766790797321317838565547973769823362041630438867537473323632143301955162988389165657211041678684015042866340245789041257133761358261480650334473905516110584058574326495888081667620988007772079647010754540840182384651596173896534622032636473276738126708992929862316283128817382150804283187624652148612108194010877957848843283379542423760411770206316070999356131180070123755052492210989278134343787355886983717966063169389207112360468137257733111605809908929908428934234776536927854775468521065661539190322916421907021911641214080200607956096602496730812607227594309638725102100882500375718617022283491944217249230286818328363888219458480055721592796140623016228664632677411540764139713025043377424863263583120873136462470222532793260185939555056794844012091865147124440681943372843391221753114505966979598854470231743382886573406983784486370287475114714164344695765835795741054515602599936550266658500136746783805019368077867991351144573768304303797696445440849174550543594035508113571282045044063781713400644217659224215443327516080613317849909393278444221587682821753563901989871777856263062197323907722319175162524954956068493900935514781221922472306589493777133901183653380665969484172239677651231943338012629968277348998516288908776314486336458200220692835407652748749521906131764599617035305252213346704294593204122385614206787834861622457575887708419339193797388544245427626033626814683767882613042931932038659299367734538052346077206523562711763841664742439379330773847296279159610256777201349712591949060667580067948042189780759991505797094898468873743965572158041791811576080469782460050448539349274859206791023005955493742781577870601132307155579995398541871902872531923342397236092037073611159841380940186010989225036838764170559054596442590881440311658236729858635425857415662381905124272937291388610782415848418646935656135234117200435259900069740825857275563290026332929667198406010105369132395326374427581001582211324161172167772922070229816793072148820212096016021127243653026092050935622542815407244532579342798522894985569039152811762637243543033044981763011544837895685544931074789991000430087138814963786966726082269356024930708112083714524131002865387229604462984304391702268150073553678656728397675300665396688698849517854834974044291396120440134870223475884200671062052426032967708879817013223155982298543735778805171850544190210967178903950258041371231385007663810169779417921971107825081568588844674451626597991180135256388429662221136523831055322437066311663528362288446288575122502831685328476214173729623700264339973630227801324220995953538128569359520128253133181151292785591908595891603710409977300858131343010427600232909255911325552743570764369543196368491874494474443108577511952014933422430777617860713230582683051513622701223627190452145097135502918110294583307612541108318028564999605051724832890124894980225237607149081022466498895222037751747534096466818334232153821047957819046968424569655681870736698268209018970617207406761156359351451491690833129448494325222869023200659623082659599483267553496276436476253366827441945946195815775232522925205550992062393368724885442670708110578729434907661540578769876001182731928434022853516978460868121168992002371809032111903108353401097510340795338115179359989466483239283942494231281243470222978040036850234569184868223677638658887944557293592604626048967823757192084310711504362715627034794139875507296897055897877770996506201823805093513982053073730762943677600303603394496468149117307330502011654140362296145061703737373457956801400971077892545923881727159560583609811974108384818343834392027528000798159711968108478818275157062962515554506967229284773683482315419110397401764588981258302170307250426696225499619571119422438913653868426833190605810912482832728061753219376946476576796332899372605063120982999172121197324628966646116443252211340707698259025057941556116000830857867401258177480154672747876423157152583633253086400779063911861016689430801837230296496025559987768335462152723106071150595368393442636979654040381200454624094319329213292467647491479244191377981929693943921413691703735623592646360258651183831319427826103663409018417389277975255890718099299195214072508471095438232524173398339250821458274221103839586897755223863813923063392936707791738591439836475234818814518919756641953345622871542679779583936997573954754060341172861328542811107135833131211194666540338600890575854684200358891761877269188752558437149102245479143146753401896826098322388600403682796786734202426426557249516850614230992825308794706419422937406914819658206533625561183053861370212790345774373554021529516923522071938926034795096233776864029059375317486334617515115056166695999568537579958947654125960815222169713136624728696636985773462447573349406401877272455755781347796265575689011471882674440961160143601202441299606643985789537957860901002353120807290794073008837039812439376771364568516253420217274994685878297899639075259780753601152459904190539242782230563210711446582227149972986948775909221047060593546352791441556821672750949571545868892964519380855718291236356074577542325775313996481350777689593835209180186141760264346653711174425809880930842671819981004151079864942245036947340121967959717299885865903109628925287183434439739192439266528503219235840117407616871605484849436665455151610330234528567154360143734090224404301357302936980747456891699667607202794692184244796641835789635057794366231539954859308997743818435621752750924721361843628557788987982364914143069389901644228821467228507282071615265856364313221725944766334880683395692120369469201823581039233899862252470115574548469910430184484446740511693186111860447721542631284812092225201334090631734479727456855078003982657575073964296073659057328396291499704675905397242735266290168698966132391725573773020265227671225545826285503179036274033617105420457116360503181461621014482672536468297285912443263001618115217778406136553716071928167715303754001517483425857928487081400260225085214578429140880026537460346752425251300570015011753198878743315108776269321995961072368119510464002726355020167063583750630603756435167747967845966167742371660942463668277554324923584876687625606290367285885266498867832233018358085466266276740640014326153516310770901983274714179921270590170758362546256131094423869818475537627176168129816496887430442614366547858506149164404676776159513250294806741286019071537738357933650290707050494231511953066991893931558577318616696130252982565060710382734089839385748557244585223482540498225941705877937605736763314342581807742264938647806705284630998735785864119047371301295209583195039812269185996375476697405216787963044127483537224709065664985539469224561391809753689632555492840596549233268590240949970847004775073556002864914236801933581051854688423419367344144787439868867326353343949783484368565771298693838141214210430556221137838121783580900343298880218427140768087302087922154010079705829075035747852248242442816466812688918408569513826647626947191195748396994516222573114833604242794471178660188255977456964953452922435851147315439879823143488413447110820299698392387288311796189009522888302499692149265323130623103564196668471806900401509724168748319648881369508768602591063741854942143587181228763008121394238722750808107182106492477628974884152453276228863640878932271947885115549550512342731652978774741030670309567508733575379517618671326536636213307328994765510959882215546411210097025846562089843666374955242288065106510508962199548282885216486998091963589697037490849118328990470306511079240917696052468661628962044748454918523983697936139599702249968532541700915636793324616020261802298263102830729807940064797864357474194591528657113706626722455447583830605950609918149375052152450193720913452045813752717872559888081328765951304359929592698657709405987546858024162787084735382872785812246781407372992098347458046541294340035614914573076781428546512631471591829799819779443833208520612810728254562769392157458856740180069559657041221809366130819061935104306358522321159959137309634601551570510107134704043577427545690050720469900204656464446358297958595855315785345577689690204355664029731464821390674444184021737610714523088632245043497420779802148373104861827041034560410245616842700472413238072656733418812433425691713450036090537362810509719059296193284424899960080861694338330274633014710150078516621462669475426257138913203938689861068819345880413773585227158379165012727552566163090940078952205841268176451808946883824701937446516530997194071361808074377999948218819468581687468871224599612450797346925924512998341571762924121435164646583141982949455679866336311036945912688640185257023893406231929252829973049243106335126534876026028069241773834119048160949259009088807370345648530865676587942614398137545214532191220427727501057230289242465682987286273419590146445481236221017392466279893383598853117360629247937937773686697707464821871760063029587806309469543619493526672774287180038924834196018257368203625942551796915547529747697772980711200107111754499218679716350115764179463873726142902794428671167170845591580188100767170592855783458816491046889607103787455218932857199650752493022360997263583599432909932044465438478310815795475469918134933467870622816644349906121859214833890038301396111014031053460866739966639218741803590655283296401653054428191086761010617548105780482256808559010912662522147259619279289765034249177732620460628017126874197297542825343413831840453471247671625453671879601663302633662901012724871493932971286113870997207219440064102591778225372096683510027485459318327201407607323837278625523228530846507674487273277904978623108516393457230748009523969808701862931991239953264624469002424944824210068688206863005873989691886526688103322827426708883040528290391422444817143436753965147163191407032870659621703993569143634398075855553455527394861083059584990973944572933773162068587510478002264718135797720155777284317903347986807539410867659932923271630471398075782798177898742621324321374973433478679977855600887953849937120794934070860937943846566321976358596803023431221696319015462839578551911991808317829857061696149157987896073264328315096377329643163399230772189940070427349163427703264269067831709761311368994336799586780114843291970317249373166918132910034936330098582967501994806808235352986808566365579050555012574060290672774045703267563237683635280373700824854011019071385577117842716202135704671101078748385012254163325552076522902697265108377430542445921067280961010952424973119070695779778356831041239253670820756783188932779539630590864243860792288571652973234224304596973154432113345529483883110665151410262700856068212552899558642456317968030537380339990034415444858574345451040185518797380825035377060966366195356216765267722948549067016729575871242991470168660152801570691380926756487990422416581866147654207090832604951224386752003333958940680898330187066174292521714717981640919255756491787311511142099512615446511839178736318589179608678364515383732935423155427759081936419476077165831779170253335364770303905627810620576168482581497696563848754695203153515686405132416251527860946763082325740407553167870624456879423890914237585903296927351537961383679037010913347915579707330611663600176509805140161101510583833934136064637910077783587366012343402341984672508142047396866951260857710226152352915310944400815128932499122610776496178597527274544415701855198731012447442095635935454871295630059302509274363973137715394362839795702210053005562781514705270939376603726536697150741912314738714026725761335024041240272985625259577274746918789769014095464624725485351110706161025549188097350659381792435742670203490030855929357755158421823696368973691776874666893299472077131360241112121954415132516619315540945466381939227063919933065656222922349824722077470262839588421766481852469503653708638000899883957677577519007741709681530019867887192480438332381656718771468540360235534124223580398785219747003333204807973926551543517149790963925513339219174470579500941661874791604235013920105359826605060717946073339450660150594383454169809420105166300458088272040740798749928973937832653024450831717485781119735782538015146539773665168180728438676613566840186007395008186057251724047251929569905443514738840087561742193861295903596979015527204356464247153884215018377792444982778277973659483823495482873123204738619101705233223964366795966582571302340418120026386075630415293393125862386323910129954565354807669399676679636780624341803481111985249039863992613282692428435124524021109336543143498117218179446181145141831110672976808001276424335711561034436100118428233462249984936393099961966933200153319851432061766052568791903043210026325753261349602904218292929952862614632428849555772875561488997722235088048804126058598158943416830095972662605529880076696163464382106490235822022724713677622908522862278495312204666248576600224200622235846003257172819058397845538120778355526168821456549759887980384406676718804077043002934954356811418524611827480374810618195905698233229719401756686480338060856372901774700434167978478019459752201739424888937340065296007565141835052439620306533132826734407117662496597995999510230674751516517741564323511922400420948558670033602045833674088503532936714003768601747617333979513716521600403012491859347048453212478056308518724800478711122373748386939426790601664847488036568514704885306091610628726341480466744467993796839401517116158772586902443037755789614053754527433931158138581490110363176379702583421213548976846463090475035237573825384558468411962699874858372775668414360000907101664201745996320259394127736527564798159863014291605641202439156050125022626651669042378728969414028625974800170795874801519184481959610086243141901842705333054650042066083981113985632218506203427172693177857199098804056373978604725506165630565792687427257260111027058912494808803380028408733111578898073123074001095799068971175734541102194560658348977624348510061468928136985872255890907014277925996987955510443954836852037597791205459469808280729253710917167809103055945099659158801967281991409263351117958001008824384151200158020646178028112963180269091159520639909536188190405998537823948445857432954691897079353345710055066601825251245995098671216718598454716836019047372930196330459266367154730723064361224263810405226866573295373757009683822701652473879673635624104615411909317996005288253465472297833472457988251865490148901153462467947023237849591230368643341640988853782059186420417254653994774372795224568649918426808476313656829836491042588416056916143516553426973477716163438004597497251742828287703181183428722633692406429054042861348680471805876007538977046357399185935959354456570722676574461335877761898880973570294402844112373097610692056083268047007793232935700270171796697805318430104802125335947298507326348731022359304672417687675822817227935550762775500692335016748463471846120895900118901380083112264593749218129808475292560516457874940713398179107434270545954163964502065147829152561507035619970965723593589377117661191399285466454745825659446703977324386145455732192676761205201373807661856712337004158088926902136788824055186256727963803738363203237572361500999083270265602456400545716808230855591235626431062299197839774868555867684943034661681315734293617302826555600198591987635768994167566024984549576281945907424119921627815948962029710947715934646885973263604067318694460068444039743654837434215553975210228371178613168428612211058935084800248793425170167357623334140338179721244832720384396984611287022412134666060340591783893521223627532916267564968303192454585296895378113681402702298518150035665731135221460285944594124334445365611404379460032665933354773473338383135919471646043148253697681186094695371774018908433806361559123378985309957315305744165683950942508345691290710899003083265930719423691889081497244384025194591091001312409515112090704150422864901409323794220948069829948996117639200289945302923311009329035496554622750667384984971118987961455338969225586177397882045489395009758659114333550832633012024572803826370296421640503874588527397338322211996445583221376927043705630355433441714241508881976121327010295263375603516205199380043965317048979542185020658856236535229821886658681421557415257314773023384706475485386885059185064775677788056741172974539887877327522766700450134967713904527992578398377113301176974340385212200671426678905692481631997324565996158149544613814899940608151025102776715941980958536587220267838469350988905637153475281211090191007001129986722660998420983123430758153915748772212748529339590299857153115059636530111499811252372744075491241948608776574283620295781512838609801006946657348481617111035588345242328451792903233006292639055021241265499170328993050391382329029441169522939382169868574738169522140103094304801126730304285972038235235269695828449559797003313040980747852268989186364935573552684148484222015027860921948850573864607497241052564605779163142836420402431682983993121402562923081639648393765120279306313856778688933877748288121213712788444328845116743530242584975920410828347666270852334154474005750834986002699047116860834140054404119827770688296885403507511582235696360938825979434430035376118046407556217576138565352253511403798775571780469535206166999641192020747174681071879695099422177452847479460808712709173287589618759644280056572947547760588605397390321030936710848274599843428059384712716199630270964526900708123725569644917801859494465286239138796548099567855909302484561683829846881782272540007759327736456394771939764639148036753203065269432953403009239269141849438197932785803589914935766719272014546442320595465139865543070257567840495126875487616584537454181929533242018766669141069534862319701799249984331007521862351943698308633888060834967603138344705406889033924086862738420251155492716850176969498431471167184705845348540756571168255625062774688467789852989272995292876425163931972284396942410571747609535310654826212106340358013362416859630050042587900014430420580852413518608684145449564674032850628567559731445785774420653295853265944759877393545967285031653479093816018321596932667254338897486208162281678097950808691591410049933443273838460317876814581850651634578676481574503021225706172808284167714810904413456816292177909436228201022286319860836114174162057790330029136215518892747903533654443667780758824734580485719650847014169341177202391493042824474552132188062210909763789352478710834800488180261608379568791555439520403508831649548834959070043540652034477374937691283719075168105081280167432836772812224282062657166396057127491392467852118868832278159685379483306822946459237474698208141305732880377502393250446827966373807872888908069735028415608501489284071637658292320346790124160145360047883066311121208898537560780966313861396940768029515611305169752246445033101205924267434363757609253591011379879615965888995444546815700558767908536571446996347020779499439581065994075849610848342058052126645680402040667535827714814931515171195102136791305316856141390071214299458786395003909463216663522430307649102121219686077985699288360779228587040876209252496330861512003337852309742633554271375318876226273974871371535295777795224884315054208427727549574876311581523432466000091367732172962692991637420148539327665159996245242980279467255689585788925147499343855253983277819843918964779181131560659364821449938001341218055272734992461890235241272921615102598173490960878476472319072991645230555658089799185694778942483549650100984072136150202608951234612273015966932847182766405528776086020209451510061773360065886625783902778044101013247236397449476833745265245292372317710781942790549418727059403624396366879627650591830722498421634595106754396605075790355398701381813535114844245777462861972623238496381321850838476279826762407907941868827164801053126426280037997156249981296474852406276786558269145253108253023918343819826804373251383855532030296986678730668657472259530754475747409584782497479079514053765912080777237009454633733545692264376782929471466583690171277577640995350524757938498756577634950067679526991356121174586219984380943616964689289686982924285932711037609283556418939642552027243833835317666071083850151031015688311440520657295389946502096858507410962995388543433835300968702204678999002302915733476253647681313617070031775712683167846334736917095060552764184757024680668141042786146420078261043437923450650364113405690561661430077550257289270827318247421277304965963445953189555621384910363521393494947701529257230861880525508705603375520503324020015936936838095317917387108294797842414977948352342492066582719617099813167088731184103202484213815137274823911865029328599670059452603957120254426369644744853029214707090759815837620161885289081593630373155731924819886258153627760673365755365085728746912282959530315137082553455672756510669919116019620150676784627898060607328404423095319087587800513318414735741333196650974760987535964561286211364232151497058388980046782885173455012303416592399020713267226573741072420459709293306610817831468942751515012043261303363010514751914591321344446220018924084339286460566941515424734733838783292377579056437995556790770826893667284340279608625334882629054760054477013776653908915479676581418913358565290076341119167882266176417374555290221045647502617352565444434129019164365696631217177390067578673198542209389907690202203032548263712543739263772291444594052697323996138831639468712775080046771688316913590723218071337484214809107321076263144099964352281589010685801515258298831299942800523043139084466807420670128809515254780657994394470752725159687889097720794528995575143781318352545827652997788822359963595311062206237039059624498589731650208846583155776323814705976315988121087992024561949032961760587048965282820638925175528826191679184290544324226516032029159162627633138407521133230931530070865071478558977329376767351716956345544173606917483803530953149436100744393536294660555503078424050632475437035366669617670257107985821261999009004870432099791050279053437407798376759728552738755072001987917126187875684860989533942107872725331205155693807310315458766064576180231593277688363601364093209674484171093115508684556754933489659324914849112782525052756344210245384744006543060594369173153234603637639516920248262151936190227335875415862829487814723061885181573318400937460259246005915271994741825248748301192732190833122431508372035811670943052075181930908547348687850155142028999491145111063564233752909895704177588589079900714026800121073263524499926222400288428291788486973392512452502691815441141682200609976626825788827633841438702387172691625018244234084410307886742325428873781162537433456196909991121138186476414213637116112425929198213537355629565669011763123540055451149082840348071695612870949677001973793015010421153640043864220307601983996527150168790589524493641228039057782736525148013039467319479817269995126332946738529640246401698427485838043695839850010967935155262343625956960655027796253479035012152143087967802000596307204982789306788162111633300407910154086034324689554455094246200550922598352063687560034486637618808407100054490280202660367788566773428325225966295670754756838643541727023287653766668138736979913878920818384288350625920721188484163535214491894786801750593360877917627313277986382701233450886100799627504746964225499379135180652913672435026182720330307030975990517351874818317138874223415706636263724672903423207617354833105425282984977276771707031625016631154591881438511227564881362409426200663777446361628445769528009987094867886760139362136519659299310531183180895619720429940472383620102791411387556676716484103056291351092865762444144052657416866630648381046505999244779724129205730054722418116746551252919346086297259246931710852545173315735218286685825929252950439389798716770548219357409860702901678461345091496565719036826356494056289022135767924082681243427381211396301019191455777153568881018096020563994817372060494007586655865290680317376756336165499994467121271323920690778064608384463982346636697788102855934127200758865902955304123542360421887267835899810785098519737288501748952113512987278377763735925301288248788543214181518361493924478596591406450292371798431836867721982406714769477980506237632662863713222846768209977820784076605125161469090526814941227459145023832960578962780408725161663896855958564492685962417561869446533667602140685513673835949110321637751647069116195248645431594933128677314815495481418394773896203344383944615203832214327089385614996389029857716452859093462689170953715983282449261045009369933128649810330055583005561408283647015300580008095029955427539417493747464734810672964223962456714340832109166213480194186256134912443668676575459621574774504555283442294213487625462097561834625513877062051707089127699271468461161635898416714387625556412492317177143112450559012476199878383341727438970331815619869232051626789134508795918062835606454274279369208668344591631383783592311036763879869441332356171223001751119373252796529306303213804449967879496884590599484793510102821137842990925708028129348164448521317658014856202289383576906865220499605419641922250089710787076131888193784433773926225340628390727892163087555171568579366313277170619546627262070800879993266316057745391480722079682230568750644434726957305440434954802819684559120633896731013390661294772407068069192346214819223899438040961413998484701351153713290990561469177706873544594181054026690576008645257741390968423476182422077973221560937088237226542847290791651551417479685335681590733376412046060274507978133384567754023250581093105441258631982968667823205087603253665288779685012247276788252408099681766869647822396887086619679806308924631824262357035528708476369865227499414830682375473143149983408820013751515959839847407205602912188418220449466755898320877572052022467504339651162723184523614568437315388769522380197368176209548548342174245303442534362333602313338875806334561080667445644637183398432419096761750771904138657885399063445384062311323229447222493132309046022731766052422857750775994336425422427197269568123202350389258543656994323304740503737820087821639382164988368115331737086265183590806429923052826391886266361900521910393930705306719077731702466847656302413687339148479054239143964296583553106943724694793785377054645941836699649380836965666925429793305442224382731773381624215740398209405721647216286063191787854885355710351323461997011121315733174152799215773624693273914172350371846780940251454004106531225625042951391454855899048101136531921691278524407927406440344743420103760705583766448154368511616038887907506140940344969124621660589154880519019180021966786006836102822532398850035595835115689929411117472962825055849570677071990833037087949347390085528441550401961116937541067937622279726582139183063238484839333353007801854063836032789675132162807531786368802397353635825019185051258947937260366929955354197078559439572240569103185943393435665496776237043513856148190784596737506000739410964518752121450684880149082465979644468427466166317913994527396379852519659733641540569638283591603653193683549444785614869001891398347627858012681638169187588974725595169473680720627969484708736175320532188763592108123743356386116024041195779519469224132095474102139912131023839381603893000117929804190041275862792688305569646914675235180516833718044765285865881119130522860020014360604508579370050088342651636653441811417297590352441176833700678460855348287046866835155070626577771250439551692884966456093487354104279446404326891845244271339878037819981384826242393222932572079175139066199015682668297420583127965258628529990277083598833449042078641971933695040336012934762668523627451878544889273835505919332809585146919746279689940622703958621873071041265482755129654923330356795241036142523988847534832433149763413359701232207281871091865198326663627879586653270118065793704075253952651569224941217641894182843023924251816438452603325595093896927982995212107879292280486054167213409317642369355066206148353346040743295155110187939580984689083442796291229184085716075311468342509633855396023577968672229299075763937700312492916803614467396143510236877577793428869226432040930548717340405902333246122490052024945428947627796298458434673294219445591294291073430653302157543111311447103360539142531056213705832387782322778945263598690111213810872540988291138290429995162817704246866945216692784874122894239981734271642576690389172611992373909416713020450845610772894219235177430613532278457113623216992731937188954212626080079002000245973107960880128335051262046815200243618873832919837653177483606044467293873224854759439428517605694045646818667215245402867147687922942172907808068180709400427969746670109872366480245181016165813270909310488709802585696940073356936240989908295546120624871373576642432191801505123474559916004150328918145022374935274672022360441444939252695484427874034017295871607017910470185341480100597018973103176169408072104992951569392573886975648620626962587009563528953737243650913845957619484448100255171930834434129863907074032440088698191059625166657131605677499843911803384458677098640126649821546405031927054326837302231788425481909763658811550609156769335856659797707986652489876488732490887266895358469882132452565521497900458472694754830686830251032389196356613384482417930304545081911139509121916782014115062667164343717347218531426002882794807679365794482806752192129812168172914123005155591536249741645146185838262750757751303395596643745633176101397011201768779685115951154923343305255001020248121174287478864905271967340344447106057523894801637004016700372870181254373066306693688996879936883874501253683957533554604495091632923919990261154402919371979186203598886289755694791258525882338690459087945397559770574666934679945093811273446815768304295866525689743686586665663974020640263550089072690008774229444605283172246497424714892459853979031478647878145678924906598526533246038640599119702246845611208043567129706027709786134712265275750118490123252522999460286988076072893635718317129194395338715423748039291713155252692707839070852058592191129172972998782255130092042076857365385016129100138024031731320811317148277418753864312818362311401915297984599441006423517696622241512752306187814957155407473074489093685421983795270886080904487017823526167725591418204371078724138447150317113872938894636596465248062305944514196020139384104196852854250086628405744116140403073468180788088914889201873042810349979834663770835534014347019306667506621373019466283116474851200524944134927708131645059294843111493492440987676111464279040207553249425408866604238129284286760843275546900092816188118708294876816144296633797997159878038452488710108978694724977266116746474851478819122348595680636240206091979639133576273664145016818069762654172468543560778685029432845854682394285360207720905244445125846466261724394677083661262204220268260511679454598351151929555811484806885235921433909223326793581039799817059701591053560090242313528221236395936927717190234820482081728599043288387071870383052876853601958757198187704345034082290099700288388400258383175839853646222737975166507307194347037743223378217612202113121150351828281710248348904866005135178013279713938851226009854968097933207870675862298985306979038099926327932171098248493879059513003878183654705124118005586950921951521178844008197264589127420500589315076327711973281627259953858705425909122226952607912900144164055262903952084072901899090251901322167009106228709362249388303313775276806094202877317114954312027607611155359437202526587103763058847334263861891743468890135447806107011464724904974544045551392557725349954595973037422346208460190699939139262364377148501614663291124754048767991522801333595078271827356551650889585459812223328309949263650175580324615194420622574232348754225301635428038279017371998755887018302110514248948194205298698814245239861105022157083031124049600257163188255959435966777847913372407440488868402356738140905269209184826115158230291388317857743197131253204392543772254807508258572750500352189987190034784023826182571903415463369208820504663798677564611208638554348313576227119184958282566652098131221242496802647976779726702257141149513610970135846578131080848384954726216613340537117780657539984868046662226806103423665691809390431073368564172686880954041617325104293098259885348946389655844949400362343775438967485361201282715013786433548469123931960363171595520270446155345662064391326671129285496296594102218389868925907422723138403211763046198787695508505633965802624057165007919475833671427850442869729797094302302434970152146682618019788279758334980373608536146740877867201169025406323168769142166229598506057226088950221990537696277661912705352555186509839661909702237304357780064431588143414799831587094742031687448116512457424393863412778910829512892104317752984030117925530425755320753849483953624641601299593335626925922850027755638496285804572377091503919539450013297107675209274280327715843280794622822349021346698148101691411674809910578107444213960107090310566347472287193445246840158373155511596788039329978811816769390743780261791454540531418648753326102795786887402896696828528178911605395300872044669927759715936467235856851897322873312409009039092648705017107635385543279010835968807017096214636990798893289491905582740846211237834598502798842188700603609166667576472910995763562260859394275722660795297531122299917671995004284859757651663118941193669019070829906270255725208702103363836120694009734157754258847392991364602110701175142908837372080033309631506904836960851945134429292916675719365088837060135106945422903700926124842393583528784939103322012328679455503726971905069498710091512251115973949604778506344518816103826083316629567673959933369404785271643182263895781605995067405992091660155948569170279009871145974084535447223310367277781229315916437162685486285169232240860918032969786427230393315020098323527736250944498958493201306920269009020314631796691799040991364140807865331537048345833266252877651951321145712691860957634851087234424293281175047299590905732367989827211637308952096773931625089737964077161061352141904291395066799367547968227263514989624834449281484651812459348437122382327569725474016769923663960718587647322321501958524922158855485424149772535340414488411709774686893060821320773387560916340404672914380205496002976666767887015498528088585913442960694438845480231455298279983216536419179818752767654349883412161776645635111852329498011547065521575702488612874588422561059446695917426081625296490847052688143714724997384592809572843025924922921016956613187028232767158454100316298228395777041702298771177543134373265719892504421806675332166692511613543850197125173977276598680724970344496492863570079038048107895192889973745569687764744801751988991704847672482782615308225343732142750427900611096683848319581607072768680134948020319060824522709195822365534434268632439467722946328497587972147871877521128920941709292861331716824816345982723333619652284513725521616548733884690254620064219909592844024444784451758712473067433973654245208968504917211468496741091417444101940984882354254308794611360191668992328281999264970754617795980406278459004260334065982015689511411423762611626482836195759863705335305167929329312477043676332488315244274095156134371030608937269070279647511414841560466924483318750704329320291323868063682953131008140120149414137308029116132986300870069508329462232932042397102883454826486956824370498619158086763861080173304276100308648057251663803743038601908467018939017251057044384577914123208987447441195227577020938162894844474752190989404332308840980163583886123590454633451446320140732679787285805084295896445746429930618724802639492195220635287226492959100842990187271749592353939597524133718799934616325804465944125731427712017960434258845558147838166625859534461787863463988413707579858581414587653845668618465069452950577948669216349063587837517530423144594113348849124886354930507623682533532483275570446857879486403838417875681815568722767326912673908862301420321464612456574527079907955038880073639057035368184844819177092241428359490995881258535345382266084928942265942976389581477404525997399430856915020529549891900344978211701936266617718886764358425214189918772292672817195832078809043293610627363001127625038345484035927906096446470689320833248602024733226680021080482962780017281282846920795496711421505592829133629677419788395985998003264383243780780738145240895508616875377200526878179838763167524893223588961688068723238222844500460375951616523234976352921478311628329863685721744074762993481676645931891663350814509662746413519190435817630905427504780799859437404172164040186226872506815070579343123433516365756327104141005002408407716455147454211768405372318358648461028885576392253430521375677274062147851271461122746348151278255705496876682859263764427785572057460603332189992993269333922631958570236579475139230011658586037447208823472795471887218419603463026209003308312626335721457052710915066543433967123553415111323893829020326868516006113431924419342791112988842094612328141913247011378035761875313915045472770454790041000380959862870808104011772085301386550100168025234116954739852171036679628540386436919298638860734205692676698843983883695980433546713790747425616117276814739937510053387400379049600535729400154215320148817995270190000933736111153412881534895109297347754178460346770708207607928493388033936922885873375537204464235499934483418072831646115315776349847123605285773757691403779087435749361543084998107007390087375094769784720071742454528608199482383761778689927136260596274489876579389888980218921564595433790296017009897123603786328679499772156829803920865853207773389345070205507915042328521851104745873668305806618040953817568814797004986635481044603735472780606373385764868136552029280065976956750198898199761339649481825672056639175654371034403400294762064471431221026985819336912107443978100624596843101886459210258308124732218529789634482824490395087451308674783385565548238859791151832502026759480836354681842964270538038201376520785875244737325972346659365575262552732666686548001030766089651502298843459134502186810935838581159838908861593558167194412602710538770351154252694916278205035087139444103067368849020044937783753697367811723860571691899619833188216690571455528236038361217422784140622947710192592873769710008679154778368811753267385101735083975514417567317350774321127622725745107298394397653037133118124560735594981708167064468792597015319505452370997436509517949045295330770654638430000793200697335182236087914866319386392938850364139347249737334486042814768817693424353133701790156218353116641439095493094767618897663368280407978081840748638563357737921479398064836939604259745954420860289995741375846776535976818635655531931776285558702047498374725357090040121257480888026731624861910889238023890397439364486589222805469258104676098452585124562182812131892909873249973559202398337418552891617120710401719530812453118044959425811665548287644017519193447509764515642222766733304533286371122788888626689201326691063816522196502717678164104416974970037491320891268639834183596107522382712425604177237533537929710066648382863350204325857524460420944947150541010701476051884865146148439467465526737761638995672956779253344027584015135567930515476268769976161716911502454542590655078548952166493027801747309835920052378007574119063585136069020938140881588682328011453146623049603559333157362063969551277720573783035306610855163962730748733855105575262901947995477153944182032713215199162589615382165250290088479570466114170264464352309862296156248240876684493716149581209231882473402001442968152600297598256154224051905557321044010482718495326423502242116370884514301736258087041988427667294703206804798610346787577691856598997192809849382893869185747033645972067896461140726040448571695085647906920189754829723284147132096376625396516862920009077500834071660359788290327303754126245911111185807542620787586497350746548888590480015792014692760683117001110164903479884159037137119973401151035735196433841327120651733531028940657787603392414382188838271426592084616565408067309817909218883601402606371508490363824119629217307298561848276226465261604755352246206053693982253587185466212267961082050017642005725928710347891486318547782814200226415999743387072181601583820323290721118520320772203992300600308649459562524285435237105346949302658742412117755047722036344417458963566805742512762113666522966489331182471791884748827274236474909943956259770954864503498998902373683504864074683342885694276609995069169562134772059168974692410220907611156090893467488546550299435563634840978343335878635360536484082188098140377327731275670056946418020837317690742669938560324155790120801407374112225340868708850029607272341877596715379519480474239008151721554414521013117186300451700089483909710816525633362348591118985652374327853582624125101702446774434181788775369515144352592426464612537822613430013721893423573198514800672020342878279038104198039795054145860551869996270838163762628596506254061967219389176437900685725445690498235539541194487659441915513607699063405107995070855769869238520451293204386458583360919885259502814960201104244254266031591166794603014219476159703574564617927459148080377912279742716126464847569795214610342302450737801196224093025334991182314040742838959646566993821665022308142583818390463539979774803034130217217318058309289388590202667883647731188911656611896903687680979977554229429672801038584663665277434671175049165461880033991725282663637254899292776530927442574959838772108325944604836347389802670555345292131973710061631403916791004425029472391229238214195604444462803136085355368415209851407946284872200053777337189084370379240373161962426286309098677833815281888348600954111512833660046276404721068963854725281290863021647460044066641857818406527178028871886759183362736194182375683722248439909805491755853233393679177948629351895056176261659246048724659080002268581873528647102107535913735444008431727919122395926359414241243834506417030767337647782189342235802680207048647144651000690337504653673953188245660020937590407528929852356116293726581019192131821608960841401749771342142705149896930236518664345488305214597106296767553987605675382821281749828018641521611742246765992030511212601351338741634398831477350548331303844655157434282006252740703491828320183780376590829640962628568261282121975768348884361655200426364819632967981481056716352199856710753731309965793913750380117116722751284122188084847041175905297093404646861396164906403794068096132988155274604774313931040082495746722442753876533080626701698692792535715941182975102973535334269080178621655855674680307549763992323431588270259279312764512390549533112786354377101397170985761739989098041813173593909371271738414261729994753691888775083459503077308068170583611347557982078746993307658099000127127007838374740580212032230231257478111772072597275858949917707059876379861915770140870075632203744808023629161255922332152762035416375761795380161760042380712045482610532948793684787916790862890189461976701848204743938029756041228034854532587966736826667719487883422347999421074287540474613973331262159370624205633063862428563502782524625587824519702701034172329459430798313910540850571516519718637694105095515917463687932875221987023681472936577806215942386535684951316369882275995105308076240858379823007878354056349165989191147122106647788277125637989382384186185853236450502766893486606469967285310021146981311116737254189357498309498700459888647800448509338136289708107976486541036365734606637412053738747705083553665906391907126366560072227975887551731259883087705403557120514885211246255354665682503478945834276099144907485012217747429941293679495007195622647064881834947003024130713278727743492810937567587305193434491194760337878727410152992439706997073561189765130285774529015382230429190076645333119449846876378578851889873822795296363995802919267301451941066878342757276299404581464003881377535984296588414336718139430966965197412221302838652738084782642318959909000883632508539619920117514652004432628960144789995723886321023082026611374456723701260137804366873235493792824413132528283211246230417120383921117078364808508772243114245862222896072005119012246296702557010091893205039968106185035102133948360877697352684815228814040297862041813473070368020244664897749113043182871717793487545304939080650094312921057196599418986306992129954139250372856832757898015802347854739248129077039140588115426407634392317262182083619857012185449510087630381897128302791566728492694391596041723478334351939530620062717994755301962502774092166782299802683114482236890854549937018870550129168751215291123127327563739842084441372125338222280135093612224231702034631824290123340377794999740234081201947220889416138713196919314917097280560899885590878179075814008611092151392769393971188119084959738344192338487889549753428143693365434068656192151946706759733559791025319554303535824486033600455162121027431211362506827844972483128722504262072511430781144345651892295541727337901868273443067997829891807362643190787631239193291341476000314759505070844713145664955096122817972208583981035314466785343421159789345384055608616126552711043322508089289918302745322211718938861881699396790141421062895952635724134346097856358482111542526846847742881969706422941666234073181382734763001518183113392025683577126495947865202208278889794824918241751402687411765369429309422122953030803493349510656738683845604599549726183857758627786995633962664855181283778334694769629641313418124867505255172936612365750763740819964000498473654222254786809216368117447070948172398359866443031066169455702229124473216012510849356707553429937601314830894555482894125581851999163958909666978588682350221312263623809389161167614396508807970974418918598071907351954901405916248202238097800851726324328023141378911173256692533476464960761205561276591072120272356720777220307419960822439152286982510380201276575826207420764475600906921225332382779025019496474887960668933764930418334632476630466823676688230136807218621912463356283091169534174201186150077321155195746216256439539526111542742384138601655007281460469340593019635434360406298214285357252419238340297037166078037459561713712301540620581423574358383467853763035604600692494018804251615739520631155905755180519225629932283873759962972246366672330260460059777200823106842692142819158511224021200913991068715286665811958146400712134386856637958117794636957553198607691166914843537384772905096871126380104739784473571784845065696171333891015175696876524189514343218208097660409750657594505661456235068295705101482630413469272407258486269346062502493945676630771640481070666722031271478288073604120207263129339842273272105827647579307072384664620169481027482828240841596844460045181018360206256863190359492145133506083720403446825514249144808515906449967999921054982197754006792668939514194868537579007544153811960016298700563823892152983012281109845671688732938487451141308372831432785761350642100095190039410607590300709508969275631749863781845494917830218372417295331514471238170562461543331996996949451034275957007106715460988051056114806062701511202832118749528727949918439637705722074566039712302628004375747945883509649414669124858232014112702720775165857350733870561547192761692497201785920863862866338647646796674163857296665109276843647160439225118498920626277572385749263106481899700973792284772157753203918329322995361337373283739197447043530413848999246960488096350008206539544278822256866188692466517131969280304783024724930171094349332025779370596830499321780647376437623684164886582872436268252836475783783790017057180746133083224500894123974860785827808832731939218996643724854758779803452042476010600402042945693764882176663262117052137923447643171012200558452090324471141404004683520002100727299805077848411821609269907510570884876101506277400888627653113808037833527117671917061133700431247472719141684263539283047199229964678261889797744310070696422296825963470728099338198528841479984042093325441400471589214880253553616562609476128843168369171767890341652860346181035563747448003221976128622954074585540238384949352612029825292751583695233821449483701656515372466769702465166596990720840255703243213492201807159872641123004452696522823060882122569752331702866336696614228770401568719324880986854856459804491575972398628281831834548121821520668975273542517351063911810140728036910007525294211583276522553264982068294345276338435409796158761458068504050125616635004728106027166362789331317773405333839458635402692204104078920844928381135341926708389730966101594698695210400975226889711265562960857710817591638723336296397838940046615660805173003588566627530990009867480123182790568260399117367216328135519290192156924272106890616416949152368373897745361808146222573813527418061326949721532211395788870101465125010280470692925527976966052581370011554289993096273462629050584514204339363499060082769358596055966261421152770377033350038177765355271067070048883265925131030850148402535219993868596451867191732066034534745466467830477763487485596926175467038532806540461890984911485448057583080677248144899822697833038912578230149288589833367872691981208161967693081067462244865619668704961166737922356139114680453096990550933486033797259168932150653506047222264640094743943032824590650285925778633027227066249270304876929994348857440150806990353164076630960175870549215120634046798733175357418423579968089058602227004419501634627843578148723857400473802521057562210904148203507051619861567398556140570870419503399001808724734895858148653914449298099207340425273831560960713256176479717382658906099388374000726357256946468010127966365007044430143712477171525310293920348787925436657090636807230507718542855415200427280222404812466954101423056536267236916783417601280189151036596079956838366871736561908349077324332176387430820493680678636484668511815247760038578403850921506059646328611634864896482641397690846101013922695840901543708540302290434219496619475740827199957706453185886506071603687602567425464139217119181006721392284084628958095808226367042040073329218177933655940243076164590834463845137907723621464050585976114846767417256569359108736863963622959898306936744653528545234666525059356062552251106094506926564512310799009460283260855709028323829300366605737554151214299398268806746200749027489305321054421873338744981002681477515983168012865861624896044552555173476379625653686588971457564244839344192957754472802945861076496372995059404574627380561105921244950105856471181133746150082021035925837611534579817561003260458563785994982905683854739554031158110507860899040800368201159413370186851048203379408591782298872018567910998848384599787211184091434860238885203466496052149708151029997059457463616931955384326186050776983434697430169194007204502403246785085034691440501290657782946078411877978252117825219539031199959372786081064017189052916242891987761349495923064891530256678464740282847368092897783852016248559802320080318471848776897910904145758856062703371052466497465830779097395421918967374092977803583324950992412990073167849742060611932464522388661483080590179851684020089355093036376600902748975034767894498372663685738976310060154320102025063163243183152294865668354946289489507433698470711351345939270604681455856180587980032877883690672761972918459068714792647879629128888285940568820752036188945278501981872063365050408151654831495230875680215253993733250987674778095058982804571240780781267853440766015973124935621430368964501840118884719446859411318193311165791204143144228897807719898962706210899758515959847003158111483978872092536200968597184972008775843240337813648186458717957052059310523521439833486940318667579445621688153785887686815859046210169197183432592197088431773806472256421925471471144295766235835330729635711276259979062330527462472289067233000959755532503325755947060198388926516665446795529448994999899758630332993646575745606388157858964998906790271192640534667719110697040759219019041082264566486864209424896058287310315723863728062634692494922646415255720220356175296440170960520511682471355149017464333777496259252261818078049745971712893912754974493117133568501018104291602090269405596557350983364362744205763641339999921448192456684764130284001167625392569403918874217386108062450316059775201371832810892559846940040847579149614978211851661319240455461718492971630378594391321411417447178374951804851498369443163607419906740652021265152110674811640424203407942736157488854430683006912371663007215484952100140286962513014450296599738465381023664978256414315278285908453755154897038220396591546927327564064104433584654994069463898362515181718017523857128607036419084633276767313286761267454143052894053013560571505490754884313208241374858288382571374023697521085808443658708671584327561426501394226313956876037066153619694872679585945855109272625430926305484290287060284326934475465027374516894472517604379554467893953002632508615489928452200124840309328670840544381874697827699316810761285831457189764497854799280102101496355401522064725782942767224590871808178837774799374474850553349625441946291670453619921082051653739023138644488302747286038577275068287124364226337813320601018479885964299566850557866992472318127179795079372333666803930607608445143484429675495282540025973162688801028409419155298712952752179012292228737457960084409872970644296497598965005958041359331032406563130694343647951332438256119178784440465202053523526303833142840700601168303221392280201691249515703902151315798974303050353221774789319176796539248477918071563096452271085840568396260757663817517467265949929700374595583467632471293020229892941797234289090562621738574617824767115665060822862460982382818771157216726009826754788123077281997233365991125393136774242583475825373069214306218223883295974711041317355862521977143308649674980051300968922184875682644721256901757716663201680041029714388611139834953169750047006723026196249576946644584955614588290067392596948728269196301336709031917138235679681355623394233885942183266088025249865938910351128190645017147004309369223928835596803335824488091841313489786041645093888216825649019711982459440935425528970623921465915118080004817156501094591679641576474784811545728975667440672106956078142661290461976026661165231790003729226475111083630813734738976475935282247903816602879522788062752215838977863728365262612986799662802455948539034511514560082937239219170210720145576876881731787358596190480666409045057099428283862908868571441965955786135442965722163428120705228024549305070307996688035585849309413528943286043516798869088626543787308587449632427477808358445645051634069396059614612850738639852153024382879429408124989353064279045295248077020424936461119062602371183611683617893405680594372466098606906819576299072498796597798613554047685281707951964693621925750425453049455807065098843523443096563755607372286629331265501913673530851749562732319290329985043709600750308157530180611368314185423956189031014117538059946143678904877118219208829108339413422053113013400800382065759303062194103192138487765164698211655527319141785120910356350051124959439087511683306084654093057594368662423481341099453843509579594816160293750234398508934030845505503626720776764497471069504664680033223559407634389800949075096568369330907819201791267759958358343248543481490035958853494489027833032870358740776675795132842365843187427301792728130304442290602274207324261772542448724772214552449398903970562955959910149498419688692137661308844096387209000224928639684343467877454482576852079353424216562733692182519945671126769257797049839614043649595477731427080231278054743338296639913167495610474288003983183241316887395978472027675630039442990607607750222730067858690490450518579980289730643770459318382317300843328717321320427437019516132388067960972187039342815584457853952793234957350778467404828537465780101826365893838571665686699850479675071781548292513648466893212503101217278639895342732576557834778336882891700647295438675425227423464609133949586989909079603549960299681396638000800213469323363552149249501445311322667479234344492609865941257192792263927167304323070490895664314000310938728183564864650134232671144832324732415830505101982294146594265041196225109530843958334307653059997220859412179858871713366422750414349667110823479860091706347137450703716637696659069019224606434498351407545015307990789934876383487556864649425425812246443146082497600091018211786405933999134768380767180937122061199877029218691470767735194940771493935729505729070127199926967495821584902826282350573516992007990924921877216159924414368128350391042030073036400399417785970986232101930027374634585107554196135156539508182564063149957648258254337846076225795801988777894264362434857249413357739449011002522749534266505990315818742120428166394911927029735555475727539323327254282600205690806425869776389964423361295240624806559808124904525208945299217139704799414178016644870470307243815908446300507614419615375725595046403752837703429673174698461567760793271136944404446116178062854542715195000297417001521088963551024286317030829031322061441347152654408021063493659502954326652888694607070362387800680952569399077339512682639463573267635464572812844126659513184414865434471381974877172271746449482337575241277198964576316287274916600736496807299736816778695496580862847673800941030297147525622003280738850969792495999183691797886188259225990778055525490069069608833520030627207894413477936967541436459402103175766064571389724927077707714031720569292625330194782857331090311487173189434075273350200720172426034434247119043906081647147823393859070027164328393818503587725881636498220024419026833978291714345580133064004552903511271773278018832043755630090195092892256392919575329062613775562473219173329401043007315084061159879526367737239366835586769234144050532001767145670330046781676213767016625778574800596528216825581800069085058835621155048711402854598961130652630066581321480895962293397187716222140378266270031405157270986056950559782431761163818446337895186147562873864238865812207217378424773240185746480947020607313051219810855565186614482170214771774553821748451125622257403794441548142026516996158890670171849449292436329804103132537111635520130330737888321218144970420396342475281417961200647699745017440710114157976933797661546997889432641463777687644483621022012369686877756989112596282954256792148561313682428802890107551765132525235210702323620487065232249332841741945216369279758735098279064341076195811518362545854070586704946434416619534240455054877512824199172306438888398690814184189069632438812973805880956457839049946513343901348221888607761185267934722325139136800162122388440203301487140771279703907998251677083465922500907020234439843912069678541359611807508768109364667311330715084369050270220229408164263679092856517248672805037758218729520138287980806929582670957135486977497916315632281074832027649685609180537890740244386669082562733138607610899575844878994193403530072490545815964165349030815585236680026272569223105196893718717634227926291274834981552152851624193002876339175220587629940633169440034871807031517593394058061044909300193152773319182760805815172678950169497998870956281783457302851161777220551398082536590941540962448083088423787410769190621991491263936486596327524636077015845493482956473597974219185296815289256668304503997831700285321542311463248463165581965521501192815023436160797712651847249552037243200508270828868060433692434000484970502674139694561752735863747809599836927159358482316956708728772155138105423770287925440212684313094831190534263007263764930463288921859921875601231559990999206824527025336396492446071373259751658986489952964044303180027881488693763336403473736622435678527777650478463770920898984689041686815635068291918945576934577038755330782315962744054327458139790151364167979200365637482676196523888677864927525576600004231548413608935911944503332269486754555514377489041790438063193310551070517558610547081389398125724224881901833271683786033382524675480625101178900522929665022478032964288428383461247203608641239019934221497740346462240918724846934862491041189289242035769229014933823715416904597481636744326813319858543929336669137608683895129428400969416984504796458826075521398802917595557941769717054902351529310596526868817637173062426078641196853127073184176009734121463300028125058597912750380339315691790274993715678138751872769807846524227466094544940405885015398400897527533232524744504451651637480809321012423938305880107853204657968472067599537720004722909929197272001872613418803376652785731476099030000656972434561019528906404143079090785832699826490205880650134447764425668467332211557434323609343820836444150700151259515691696754073098212206312793195495548877973765603717254443144803259434835133059110568052704402256814355212745328274170285095961814272355357155906896665980705472164587776904552642676503401912986120672202514727341110883212641534274632727116036360541536177279537523441286090784588585643266699543746943784086181863797127260047277718089763875378474680136559174731264434857339028210626596151567886773430146057239641175530382532099564194142947682425152844288428967419732622833963268139634477387148282468288174881539855610062105036861470439602890645029256628789464235940095586370813944860404311130283563641365862554293875762610471977031198063794731230865033890432880648987970741766548699329293557193875147357969844808834260022511883865584419670418542865465357441132262558536487066043335801184282990529015107872293063456206452654408504650501924878040238764250402959592356089993211137018514351343163198355619842593094494527287556502185719395520310234872620128261349791893783896070225169664436747635034507317473143174223833008193065240716456347436862669271205264163524701518074021186679578941197847657790538825080523762012874277786879565857974860222813308579224617652240132537928874017187071367572611713579427018812782731916026323979009974304441871430313639638843498070650191446409155989857895274040919805858159595768946090040715285566912845403391999744351690943396363158231039817477631589523077186567872016570698624945094470268935841806541530958704574491842354718168433883834326788168262024648229670444574668570237056720347018020240669504708001295520147200952049825187834707533740477679757114405941855349391452773815223256018611455184979679477818530076567122016998240836599259288204440913755236670755009973104657602319919078862224101706373391430780157707821265752116615369009878701703307648706992735336167105660359693268269483529101823450417296764075995293795186358743403088240717649875701173571614993876665985914421015199856363386890514890587125199912339785696340659073931919386662393871071805067901021056583514674319523497325560542003247274791882091735210162035828961906317738810393128666927703056173165859184512930962194773119629357755379459065623982968364699390937748769976363816313591076790223457212581287635319979122376599481080318781121556776180383209804642633700361662554097908063903271056739805742409494601797237786086088929516912664322413092535702648016690690728785604750545592677004167452817271608509624559705547356638288979075165982175945978044173861113749042223955291535885026347664734817643904729268999848231103333483053465492961012556783483417239956828525799479938672730949391593116524392180910370070235397551209942762499121384801000712663040125153964500229594249609526761277705601136765963628059478214011724406261671772074739126316378486064310906667840736416895401544341917773000535795969087339008704339451774598241081989960473821605109767291890609151600360659604793761108611684622631384612073900103494903870382171812196227336442334036794923290645313061002853363145009612999884690707504824469609674497601520641634868038777922198397166603345445992543925550705989083225916071978042476867680396637515058311109502684026171092888398166253762756587862191489326219818627090508714834270890984827568800585792739765130832999191443261433479689773474226738035649762759754578926450547372168251247622835053234231275008980058101832135777501975510173678028423157246607469814716252679458559769494067486415211581328099207895599875353496833541793057045581420758192612301060610683581239316220921995405729440587503885644901614345387050206772826343770831823525992205855496314494593940102462206219754770378695253400983758503615641742704672246392019097807320313197927500507679926844311183967734564109423600020339162602977573539527211517967013433536041488589025542000069182870920123598420574433866846477937715731081875762235940492590578272860033339699309891953006561816506532128130029917517866120325649377099559480474874217471399836041829624921701621120613479863106889158806507717639507747873792423200716138799982212310414544474906552173528994163622070006304503102451345067038230293741512370904385198153795788431874671211118588658521746738086237978663541760988277566580561674762229113806107226464997746312766966529060267661512561777792753831367347690674408957433287069603740175429033849646337236349643939547650087961970719864305175763998145936313335191302613637074915476704189955356666057646607119925168858247976569827306665899141619986184553683491961887433793014924129554795377692653386918749260556459095489698071970139577465534418557010064503478517158021857243477625384721850603745236259988591130780599161193601764650895580836325501428650865727813938546336585957889039320290452361169387153973355718563979817791043411957682505269270718323519904050626973652402372719325664391814146979615507636239577908211349890837737666492811225760839952981750878018934127209374848874365056297856459497092378410965932402473021840765985779553808328901028607567280315364929843884437281835996106808735891206124187877693010197139661376193964232345230367704260348733015369388722757467510297822335115540426049071763171484372626162949067020579099351256556831554354862653876351495317394009940551007517604018082944219240877242347714242127994660672193855320707824031008519310090425099244598624973407196163994251811449725620714708983682185450962909818675430114690854429555160869267110011736138530486398731675964156574908240833902410162146613932213395998783682638458776990107843797176587867375381391287578076614476764194030940327690466977339349724447321103156932700924202030272453194893008386673271211435079846405480389941091653306585444581964404670894335707388760435732512055881411534507797457048092796068499893009184841363726814738986013359673564628927766532474343622736523534427199350291329640659262685586735354689244876256487393313442639694035202762132108879800524610961714269039666700846315350697872913708482457953852009683518100836075637655046333006521204003992865871939608790217590772865719629988356218138606376934396158762322979795252610726866430738403469417546186631531235305552130431422973003010894703271832980312421316762695484931310514209990193078160643321635083054794304405912619182610209418632747820445500372593723474587365318958642037086955104619111260479393453236773464414626397257214027733179379011401094900519967070492007590918044916204637926481485090620867964389039422479806519600583531984416055891168055652392050915849210486989545867441122588437017727893515124831945082665522589214184268174621195337391252261015817827652727270346016245181172398150640595909329913177565673660661837309713112276925150603604493265937246175580589145357069690295488027079390308949561494425545918964556307494022325421536512482000682977843899348235775309939190629681268214325720692658469189536642089134691877599056667176593391463630196266017760346854932237379108271034455305333854314219257180145668717693934140503547442992277785775536319087890191917006289427565172129023828145533982833137703486472110674456207241661761063881509820083494271539068020052061214564916872531508703106344964685948122442460406652499769562135233800430688543879575631986914723516834280015653602693287160652556713317169644851753854288768255754700665968276214788139925493647203491354693386739831962984488712877800719560794466635595620242046171307083237542116814751693489103432738303974093266805923394617891228735569187417667394396480708541134156128934146936619746547994017825801926272625705646642942970602136343398097312756725301450594155745532522508324718929167663472863796764514775532362693961502411217963593296183448588819185974433234829930614524205480583564132615363321044776991841864612013248884722054134631897443513990156208648136906751200804159598054925202660404577174408401408634466359919351951446159043239822833890648637996832306457324842432173790716613430287790944062078270845726576907009456770198983923595970650847054470526812211670584184881552446323964383501033294648277870907008181963156875809088557223125978267292998668260788583150115970324087859515047564624414471955053127979961214193837301129316128024957899648371266746402588185138974506022943384899006858081976479040923044661315586663112386807670166566624931664560803255521406527476872601760373752235618348517811589772205251400525355701468541869408200122520120510822858895093256742317562526707535717608809488077254316699743416743690263279238072376042359241072056441761270532780997031890670939141186881884131133734718236817189363100394347906970473139594288404496997640930344286228562204844610478179973499963412582939489386300777552707736820659436408587114909080849509379995387510060430403808381316839990852764349607871283270831605616946914540323660808451368712139007095053216059928093603116564673095553049143040496528798787615447237501097608442358037841735814410643624440202908615322215762132257834500609491629676106157722285691397114087621379297687300403407143412027865925051118382315546140117294328399745542367263300921887487543439395272912150567676407673980590766581060033649679519427179066069406329423450671957361496008844814305478226908688956882252844373560759137127011210219343380167762305188231688393471165234944163389127423860319662614766637575744540050370169029350838581083410228214032312898934893010076478836737539492396793827094338898584020378000926917571338233949360065198429583232074856341052265468178138528294085162186447028895266384103423654014510061349998578828956934510370151440027320245695064672170381679859749174114483394673912288190890339198291707435116832083144597774396615146361074596621133682214634252033985858050137112707240464338891708460377553812867592801551533228534170950236994016937705492569787526604266998539093285603761599663971260041254154024047709695304464903166769291145131038377136927898488362063681737682798710913089230952039722293018735488320350576833725298266402518345214014677418292332189233120025530256699412483823987053803080942297165221383019856885815703552985066309757238137902247726755583617700076869505913978806366759588907659291808961065423041155474852161465220192593550060775136556698573979029408079904403131934988040775329787719428518530837328544949664857252323994821384871295742329397976714852081111679281000558793564043446121030442940525808096721256463824770617163356602405506040149121108488642754729833721773455386750065911674577611066819035681295659559796883620310922642105648279503483065975224898160738348913278208945077127352818716473658254586671076330165888032237335801475687233643619915895375620083698996329306315163931965563165224461602137616924974715450269924812072796554830678174666732521919884802518864526724726941885361774333024599569634298149515558399761471292898935197653863575706604849599800802385333454287236483084958320173294298364509194097326885572136041308035035156496871030597106775764157872174788601739338661750610701754539144486522103304681053439515202706442224748442202132019767833627491223717788547515632044420052575473159495715206652942499195848244839821285031196902552903942156576638854661283866400803946034055488069342099404188282584832535541406532649373375716249207497502965813104226477247182041737346761922724235300713342913337915514468575295851126532263577624626051676915844717818078694217806237820029412757010553378145695677683363322981218369327588417248994852811248667945251277426515207688245041681301751329796728449379275533192715180987613771287431139402204865738448516954498550235541554330102269155283221978571338381389649422644397991098339914543795895274279042088235360160820912961228468672274402186203391928075028259752543824012637673706690484954721837744650970225216373510117048962679241343522579275536828450071290847872005760880994943930956138090768222496908739205195363466373051946129652252627889605027949994735993096049141117223936163570590298098916273419803516148425730782058741196813368175416655083892848746414452853975118068988199623247512244804444783592241434581583860617114125145336095383414659729613130305712628291008714161407225024970815981770593508044386255014872689895985641114984823596902006564166866704852221712846971732014224562856362787401787971078350560829966267529108677400026499603113701715257138485136068541114041608988369322683474769804064000645471587648157773105032076964657237574924931239512818165396640214545398770643821510748527839084222633897742806490135879265272107348056635429735723284559565620024046380268554255251612792572173977105041120510912446834101801125352639185000527882782854666294586310590513975267087476363548269423260223048524574343163777135881538305448362223487516000367748205757886759919000791208903341536029954439595254564678137470240001518822044538652137619860697006025889699159217652345478035705178306257157264745695496428885382886560369584088298855867486089217124170042724585606005719538730402192652701496296820137954114580490962559508466531680760258989067506716539183333403735333771489406791576443470285357164944239028096151195280835755935916122294369228414482967851964152143760757869057025587859785102085725463219913065520860949802365331969909779729630545806368246680264572753115570592236853975697683102633528330053751586853605199095945541665490856192674693481765053970183483068824069235457227452339694583846701459297895210144584589638179053364358237592809987368437645952732428035022483266794674000092550727328494645015743667748004293420310593054797149179148857716079237178965952528979636885613575481725700973512997946777498053785023732886070402273751064215560206484850748080542793530677596376529668252659576534923869877980443110425207278536142709772564607574816879544165019057994905648351583229270099820782503740640751455926254272753348936734470551302323055411939360860117640048617038934041215727054348931888819061033400631710103026013126564106287450871258737558764915819690761860738273883112534579983542557814875924910881759068933490220064963700767621759934429365750436214503166824805430686163500681448172603971435534169582869935052126889712889132159824859325491021714079551260398126467246970372364000596914808294161998710417905880860986821717073526447803913651374625136110703590925226015713115706985817910766727414208191143718522398903950833204123001067217312240673678079044687639761458570518862534294438613422810144068975412701013300572877083008779452782622905949054530595518799917151432524298968380397603297663337556211440594430303648607336620282052490652180064890961033591273759847455192577376194333265741558855451800133273692555730246749041891486888250157369918154263451688269471413229351468325083811387441360015718383846208389140567119700537628075702042270395580324132071750028603952803746994786178768953951718054320116715527039488227338636095512626633409210331848897293711314638705537405588096822652254960982394536923572004494569715753887802516134514716891365865815003891017049619638977830245227771853192598061247784461113432810169315076414136898398399489217159462322239179966810698586582159789737270574216803548458054502167665565593161076744096834786409372849182952813433126644728213451741164210397899640139339276258038425002635008125568261248974352436546231998117106797171830552611715824855331390046617653917993108687529377903078909083903298276199077881542358514006731686753954113291300514713270391360135832334638403122090183343932078105465561668380882309047804167957000484520245957167576345529917469221766485346847088324814955459940162924414019799420323205923250502653960609212055996312043010292160272408316143710268354962321965015092422774366186143139487188710630092517510834528073646574744299279902377656402557187217552544086843807495183440408750281308495662027142914582338970185481523175448944409737669491148547431833583609709390499370443349610632030465317799259894266315633741500147575493488355494865706500783480221569666496122893248155517310760442426410963927012270053261519284830709492367024025866197236703564829568008319817193110756896746294899408139495457663777364117128982639820899783480848958804841256259620219138591586456561439516114207332901637874074014079355038194207507865946986767170300142211894092976908342923935913617340914484539631848429214939611557370552806441335723406994283906275396561604763046824961651334178590454277076555254919366393853568889568126947751220301398545016935450251967494659878425711003604683416099958508694367433809882946238032415751098427519113440016149123514428692849940183098789485564636400195960870631299520183231478262471922886374377327392339215024441527622834094670068002638643862146785666935743617574629984638237994794787169360119594863357671471859471931497525409143595534967456807467092814381065036074253786883511146116891326283931294922300250891336472629431751778416567457384357562192425265868071367232295187690325952823670358526143903398230439628983382760741266355076002581327908793365754382188210458307494184918578749199795838724092307586966727027132572777859866205582996239773491301566730504437789904754762398932511158313266286306050916680722818682586013923224853524210829916722912369564641227469560843032349117527929094307604926743803726551713390725847873117917933445546883622625391609118738105460290980973224188687608713308648744641905441974308448969655674264381737132506571745777006368224098488549467271070746698014246093825154544898303983560592250856830536339859638886933293978787556094523618933781234486846767209253254406310297002323166384628735721336504689038062354398008602994043638478052735924708397848513632944579150363938765834499974324128152383862196796997258209116381163564141493520288791819852848668297066350640677938814335146373351796086064839341473182781193342534918093130449165476946799708037619006124422152063264516184982203101009745251309817335427205883310849027268695829092211991942010679553112948184767742924352622409015974341267662905179802468053617219559330605448295334270567900840549794071671023620730224284832660667041631348562065316906329751536554669826441834193972442944084237199696825123530193205770183216104831687328235596266060852663983308950586462541367490148219027296750328134781315563019009606732313368832589002800674854047453777327704715205484190039676181838855148319995873985168318948795363678371963455838696527658707262397518284436517752629455044131165690288734782551595141841371954404446579543731798545463061344585307304018621070937186365128570475719037282144622768048167116690091157975108014635807150732199086969827145363176114424579605595154519151338895603403866112205719384545045697504898458052422533553372677312780521662985533013418011636994778267995693695680751744917926028764228130932985372763426186249720463354263164383063587325307228452636446199482662555117916831520028208303584348984713644108009714554501916833213368123606744929877933405623684873071599385786309089068666843387019834285195302809174161750328168686641550618203817739612433065680562144815522898323657848183656510273646506863353715214490511245507310520156233057610158222841848584538358779396242634117464814844553225075767674411040060525513656724581567064718653877768713933830185732609370333098512465433800017343332517027023492384521507042967750256967837514097974693662932356733641627170092734925750762215516831852016277696886752209841898311463594200680224168184632756192330312043972447257482101553735240751406544536323983920034227158044342155678365543932213747602092675162457902456585762643082522311040382101013684805413793744203577476813942374935351289016985749333794161060710177882322504206561326874267611468956355152535327297147065927816854982064066745714625309650829145416058478451983267784484722320131210417343277125333601163349109278118365458144672618839652472629276452904838282596150623236084609017574555127964489409019419527966537867359135391155377294403159258109997227111523513414179994308848225805647356430156142602766369894658902920967127093308546732518519506797748686235121811892714496500664526564208234752412571159342550392157104260501774352487762904039291198985317435165488947262644772744971560092107620563121007416197410815390087494874044306187985190820104227923576685944216411326222000090520270638145964501342734682966382876072320921642255195085239688577948304230171481925667694305728603515173613790272800629441745015796820034647000810674318373496023300561298639642307954430902743679647085598805928965851097039748477376144344306542757995323263856865500173844984290008302033899030656610930809698117962564762138045355548627137171314117618627576831105413380053107349893171932104933774030084629647980298215766322025249502751872116832055724707551937870912180602607428763525817345870027539226552837043368091703208874993895536143309798982429359574377006154162360555675200816230648147708435951395724313900203617404593845553277456990825129363828089260201154829926796009713554766968907338313577203946349784391784371489534768012266415556716667223517075013294255736059806225966775037429746434875595322997159987780947235075231709380635131495049262437800071739110981795480342699482266325760365614908434909595279441908627172556745035168232266940721166610216417053270345942312292391674007549737109089908674650633715487014157602814742914525719081069347419534126374228765015241187807817997561403645739021206139139436885836872343261869475005496930876235868796801324223640488438156460652926205335580799011749293911311435960980368185717904003451206286573047150383074896764987498479342358606070381082943619314759423629511814634442630416373005521274825950086900759110037232652824556735109808858172266294883658208387064866237303168215676400789740793961728732432681165270790374990794507029014759653957389577804461251095960991081423364236827642732950353583270616468414488483287344836727446120800190924664729200842012186122403369528165839336939983619992841640194989249985764365431518084684236638897784405633883344897795251460355307524282103850507193228592586163215497739860819425218997888037034539934169391292257929797082345131619011404938007682250871618512152455158729803326869517249473384848540826337417395476576643211533795416277816723866728738754901736257858723236370053041695136486434869847962314739581481912546372494380948169705392206489961129525480854905715407799762283747349104994641213427963594264351555690856498522250963289363521014167030932309394001132084873422103725401989968458795125974030249714095937383505124300116220593103980800430433084111924775460577977976361267240124227597044339454257127006385818556046248579756877790870800860958649822753544466848643415740025845800947758480328131155052750648012520039519729656718225880596978653350299260484873668018544020713473656833413824987104569374386478049629460825230342726164593999520977169116083661635636209844759139132040879649528056854506074311706688224260227378805630725124400050695106908341539890291786337689920977432056055828212409516173360003098077685320183043346404066467072180566239109063044244016188263395736956947207226046437809859801083037073839799023974052732704836092697099013915870892032744441788393317845476174061765848913167982972576468730019462408654412107321791205049795306643570830275793451968956581756398339942295648655291144304962705592851854967716445763094265819100585627259537800839419074298741012695052423812856803094666534356250091791185222069184844571120627406259264550532281823771007939496626207870264041375656079270774645160561954605342769441890343467915345542000518229678926570763494617135728946105016491061576521748688608154126834663409495826623127622821492579212448877208867348050890147454779274359600759002720788741249795972085803252501723262192632719876202329193398877973162905462489568196683829329843132184042574691887295423647854589651046392570567207823595816089107787335345488850012454233540399211097470706806052682046978204065513221181439159172141542548310754740373034480239446469212749436327752856397608563609677868173137431193646854805892942145177375353208681645688352102021556990320473996533642426659926748496317194112961413809403752895395865874129722510212895382937597436149377182931423637944826844195865398248036226982937579312716596448696644876103850158639851690907380098112942755864712843478057588969781686305258159512665383683197136762949209788522000516965824951094005248795679531650150632771716633116170051163504837919743182676559913069463376503662851107399047334627765656547999429220662421120375036814091557461338941607363812800630004077130643068511621682581529438826692377388201920162745053430277261638430289275135023082604273718312534379330605526722682543173413632221204248789033236945517841355758061940466676710175174784397257006541285311801214459118593645005997749163999056766120709007435011906468197820484374796381300329523667111007696520526591109820978267083021168186320936283963800154055876182664692539914635252953581718461005458701535333044214948402311891499348766163860118736670455771329863393476218152341743490339720831330683093298574011963498430742739433341724974731748505722713250568115533423810860176372535327817400214533757043324137148095865424290939481822757781846129876638323491652930333719817598480066757901067758347460056320625227928956776416281913637349371819101096178459144442510610968485605901287289889440073914972851188597436718424649918072870459705573537576418168484817042246114182006983433089568827700654961903224507413852024501536214511776152262717806563804297048300545633860902043604474608801453416957505767011780226758485343487296500004914820289100894599699094425865909076360986293345215252579434479963659460143718903733963760155729813612937793923519183890465617128018974102224746520657985911729336032049280080073640533245480767464336782460510459172790556249835324438867841377795629101161945291469702025842837292415365782072993568536564873859682284649409884175880601552108468517291949171942189489945591896870185674969519542336010829042880644383602460496100456094829616953265462503609198699683781351816856412096222750622953080529712057184316473908939951254216661000231351662329850975821281748566035012899674657268852187052318412215744101288142143956050950201212893505635736155863131376633812187641917432263250794055462344447055438441183945468192067255013946004974061921403190383178403100608042196981665072623979069050528827269859314229216906008217192698406270822352332148222746666452549569741705777888735294107049046206197827014532518831842740452271172430042654576806900515204168394053693764977340220559576797029680576627552890802566963716482469227307241594221989309612110862158170946668068931753449618116017744847210528313685197863802400912809177838016103602054736255093672325366410003968403758635641119295999616359602487662209892122138950948949256490618603808416928179039622218519785858513458425394133573552121513319218466791956687101881313120008379735313963760294042581213346957614090892093496287935651784463510626906775024671751584349695312861435143898893407664248965150726571778395238271121561945873411970820020474650249961667631667676861343453977073403996230859770161043882945536149786654049060316844409429083792690020252936349058947590042834830861974433131400293383363035584025980311012993043048804393372159418510142729751564282582600673284769711518946984355368395656365954768715639324545770240380549491260895637375866357497026327894597914170854936861945724624017650846094993657081762662575532622489788394898459425399388074508115441944664407347764678307463937787769542451736383866706947991538064389558492963294591959265111595552778542973661041494672599552654521768799439227838770028207852487489368580813358269528535554487910258147928208784608257767637135348328044079573518137483484161198103267160504201112284658244307236508643245610643035882554503201394500064299905687290225545487228728280769790128047776773410602206858586333270174127961273156195146179956435440514597531098153839530521027245430032206257829934959487659818532131124689813586049381273733561390757823422149798819976784669685916127647197385646239742656940359235109107410267040893961861571048844327668775513117907029217007951621650498003405718484106003373814219267617613970008777560869876750781583478949918825630851153127989422800555202579851109503762076100960270955628458667366767809478424123237213523134169367895696519947863128641879472106672729379850480990491512733613066964837220399318128700692951479934113834921169846482297226789513682962540053608101434266979072856930093949386413500812876892896214222827736347782742578046636348263729673329903460126005588151164216331872717310972174526669552970948725077693546443281284340913815057567060808432934506103575464294709769740157598969993207876770947918802147646399880599026071698381444742276069430393352745468219073124909189341024935684294350019659705366123254869625206590177737154750913717632958147966461132702684327272974421291773878972789169855324520761677645785125421120760536352369531212799770623806870321321993836653353612070773588896751095047778101276616605549424571238853844892830231220518460612820565502434506901758703966920370814142381523164189262680668767041357223605093754119797163561943657088683735287312958969124277028732911525268183053371204364259882532124971532774643341092826239483369075205316835652913420501098318241114604588585036596207843361255818637113538363021747727166863834671312606117157230930020293330602190976730132167177716299815714010346169033681460912389091780683168134959662244028866345161798953610263373084476616686376455871985557356536644059978952531128503107413651209795603869354346498879629404856244715381744380894881885563391962683335514367335940423587014067803889234711857802694129019458586708848966072412007385974123727929397785009196289569791893208570886148184160397883482178265763211387455473189283833260704933798068736807203829110597285791238738912656764473391388292961619408090487113207951648213811883988584068070373817861242320925019772470357114023338187249081150902874380290542548822101467996071616823070642127328716177630290806315964295089946614971594294226408160786081496894500786410196682651496728556315486363625768150342145088005678699414165768978537274383275816847316448334336202996625228415634345572591216081610046687273111490223633637521874339271111589071078555638809730245421596112178085474518645074910171146576100417077249724891660010866971087064628524488066375582131806675010061886129512738134597098490048596213158753925641668409393306796406030767591330269259018585453977662696762247362455640169814424110186120978905433201695151845531719911681196299019265583180337416202695033964354914578707800332163832311120395622880341908189211281730392490188595046906359112626998681139701912281654514952701934330475911707953496948686462689632649129247089740228110669003251858480327432758224509512171969787285428329422411225088444837659850675693693787820928332205392574691017115440875920305374197777242824497286186127511490091647483642621609641282815608754487573103385896063138253656659204629052548048558016242933698875568265372884229516738333241345106344435759331850024332864574635403896207394622482007476383007652931736835560359824205696343056503853140617704023524433766032513147577426823609953579683064442219011926505185388689352589923611849538208887338582679245472523429663641099030372781488201185412443142531768920261718238201184383697616921633164578597988614105597877438596851565048503733690675169857241862638729447644183294994543836342753914209297611048105425063489764069903518688999847252244086553885819384188593544084619216914378155424956914513292307296013999446875119723110680390604767224900540526171126254168535658316722044083272690646395266724051992825361443314175576868083408809056108813265663676008791183766949727811758192973804749994264715797128633542748080580679552639977052957317497700576847279097525517718370421196011109415997027129973667589019084889066690338433692262732055503439233943499622179517967992473501666276644262947330630622066431963157026283479997483003858032697720441592173400438665047927911257156395720813369376168465617159309180513502698414621148474423872533304890941065447988595859182824166796370981075019144855461994403716308898598568550320890160814320474724926080598357244431627856863952594782626923914918445422287736406645700046564710342156715226543639982005978918185575829709939760548747399318383558529337276560667137355108544200917449917792670183350718856254944839291735349364502483883423466405762853945914119993303369988110962779864877767887226774999638869512078866640256030987176436205732853182224840311997600142463646723870686358488544984122297809920711735844672694650534403676918637170798879222454097507686141996702048056836829641601301608041866036503057176060525618399621226569876534697945575819134720551431827552768067127663424754402079261785008701702702577533013609008793593860405019811186907118298823699605987303572254648611873745864178221588540245146921713506430010594253953147676520081892597121513834458398215367512249744504252415857315581480940156478987745863543098892303475014142000687438688113778423448506615697248301479312216125497277057472259209698176604211651542088245213705302452946771391217126273830593933472630828189797857618332766943748796906642397629810604067805780222822854879053795666464479035823951769397090056650872343351996921098483646854580366994119715169956338193569913195177983608994273160845941896512415126815613631459671303740434618960060170282920276213178151727033596528932245136619868768618461339343444842712302668525283501051745076359820939886626882988909686737732934286833234789049425154907472161784755678143489987383972345329360797018110282940969767018651301762738293141178149257203172199495566177525668624271871447959567899477291284454069671293086846137112603888527648911312438109432982725314208070171395209844659620824532301469534036699131688552637066351144425402750521371521769488599096736307077087677310439251033944123834412352689688274454932555126277365011962795755048124792688215665189244130680647991546892495386024673404248709490911006786508245984016165226285836266603986066887055099543671149510569803292990206415667527725407477281443421976055784535359892349562821429401895307126945774061795684218465453757411266425180112859861354368528821824121749251046237981406938086974908714613850830073322750967516247673993892145720866213261518841730305510710513404047703164992093654690943776863407731669234185692882836368169389996201622671397474556715613348026703034066133260086488396759657654733413198319472361976477583621237519640131300171056372108848532400940261696622179092294583670235610803306106978591639344479361517058680808357115258589764094381707980813964844909678006796470394774074404171371970799873106123119604739625068328171034950278930072393554923652037712251686324741771670874155893589631704597720488152474416256862588117251688028999321103003475171671972754558280152139043288963214581669130714370257094313658017725934525269768389965684894987500906031431276676143630794871272796060778083562657860193733328909510575020112248477243971833870823379497820867266148574513975143586268149924977723111640398865575894722714483718006401029007377550132145808052013160921237481902972388976414332653140951597585724205309715645112706660081180726055553052003897104270349464893095847838158909199721526804727758288473556199191417669210894991689553865403562962417511715269796113942565720260303935045619420332445568762748128348904061523686601780482073919039576932765202721839210146135347499066441130937998743778560831226706485649969013273329017286496450002989800159023912258230432663565926383099445119216300374189070348720254970813222680104668872071333259565347237639109739601321496055306886617333920202405491524206445147806636917382363324428340521861197159593458926190677182706191519307954611532135013536308332982257114413260720669270801538683491590208214545917521145746447664084605647124595074587692817155030278169130865932967359063681051863171176358293220763725772664012979777397039025890061315291295317788762074014323181909181782713466726476306466239310816328691599555264350020323257048683462382802011106250338821559370044479909325271842112988269610468127847758802417943809028841871891304544232185315379577753791910474111682640691699697189682474647139773007289349854815312995567865460538053268314350430104138014546591921656421732503629922699544646476126394283922444695057762492393705508225302272253681528804334613874844486502367316864411440998884762724031287405127538710321398859745053648626182032200081523072648920125878745580298368894246355136506072927118449924598781732200848998430035471228580126055344298179007238295896453185574629005107658459554487748592763142137790440014138298757257851845265654487948540202641435198957336625613211284906458154396338719842371873929640499104078434099092213211665490545820656509862476693149462398860398888497409759016710353593794639591773757781943293881485407219202301369019553311404196077726235820863549575032385297338443710374442359738314915879612382627808942690953952138413872969359231023528504461561231182006323887682959729282868336627983318406112933889611628567059129259222790635301498053039755102175784292522381014321419917598333498425696599310494666126031530079719832986087647431335816866452067766987540339087144583699594501997836822913446688293500311139392540216952806601609230284214263442705392307250866418985807781454509129846489353421044671903187189735232892331228287527727236748593457206008887453901744802384700726107035722363345535187402083337731938291110758625079708133225816484652908574027427750276408120191311478662165380783920470272018958127693656668617467674626225123380699999293540730291058905323455487120131491644558093394221184239592283674552387827452045355342301965829246116963434152586466904956523566799993009796781805970396996704839362205353154491330075995720047611661671401737467348575616766468094251991582148167545804983221039136944950419726172708952880087277086187840299065212786282950105710364657390380923961328248422143471025095702330932471224577734911948240017714969482056368250507223021437961602761564310078371924322973678313446704716582652545536168728578616111886995136268271635660655322492391841710354196055215657409434924673115538524077573406373182378255927094101002250759481751387709324144384819510195547797444446895329411175132093685259270664881661832388771863972513150622550844605789614548053994926358818467785943040779239646167552286643996051678597214570947322627724366140987516223321770978948070029303323182781506975183650127615808202658295092301137165248887540047165566592114340245826757404426926870677381140157540569678289725499974117426561411791702265460171395557636530194904813472869870443200974651357726417884913596368447285974349146318166528376195831361312752657079785586250303173184958245971902747170878058585584980880394231288497586149671539187810859572127265427629328968602662916806460877062604227103592583758886712211954486893847740783381487101415037165037056376075772213152548389167993368851560298770801779890426576046240120047197269901437062123543992685959517021060649893689841409278185114545520336616553374224049720786637430331706732386218963490799093678358886563960559200318788425952894142458051032653392002884911762388391406636160191920943715407908640489426640132985045419276482967008951631240905091195116466660632705950979150805119195592999767985329949324252926081592684183100847357735791828282742574224577033053343251104900556332284494675648604703654142650879346764580001765974202448931055883046111997120506206825850676879915584012878825568616612356945226634689701125003971599843273710015570906395587971806038899900315631816174235638132385765278847654865070222174596059063541356211729706186543757329373914883059254330216314663572498312984941502832607420814433103830847556333983247368569224017669030386770915146134480420699055423530159873293833328847328631281914551552791740651680213560936008205996148915490673494730256950127524442390211770358573664572050188607296781568223542988004953854626256770473011321365297173802282571108727104804615742564801947432507343482496794415375973684554642063408284749273271779983607070095627766401671028244259553314248406865208152196013785100747074725721300476041394370935710610132937306689967026613803910703813340315266935223758918545992950771470827709666976239737507398701710075283495849732535444885802558389935081650891956006835226399858971598147695471715878163261921027283589858050149326633847764291903457665419657084856041645341448382500787639752572444575341220864971513363957578963318258129501049287158052478194746659191049873517779679679853500092789164177156656715256656069426616152558303197806220926157296210685448968676434809426435425582837936201334774422544866988917441626167044291919697146240226574492160734800765227845882155740872872063027719765989057343585700983929312541731502097246059446538290654056537733954742444106524266662727185387394274564799179091661473047681909129837763856102231210720192552730917616917125089175889164336525167426405789855989742865054672245204709113118919235996675396897860158978551368013091781805782327164720522273929080474413542929991624831026433844166160333154993577621459265119926119922479161319403301189120538638864124200662639812347365146929556749718791579021193196283379130908981606098452226461089027720108479132088275384983017787658734172369468764224284722118321310443967144347733568805874197833755966802756432665330946950453991617507485167060718528072137510874506055872057766632600155551147856177786443201453383817081674275185390945830629802788054276217079234401830652738346375935025861413891349431801594936139906809973998321970487421992306520459538199091753739748562184826364519247083929650082299111335022291312059027758697945964507319239463666903869175957516801577644094692449239647795275934391794242998873020653673676863356297053405798128568256494516935058825878765777388361814979330615859531336098170477164727627090403667744943323315094289131885515514382707966130578847362902092150559346682691514823818387628044772498457544614428964134527947540925328349322950350631150219496918537048179064081273758695039629027274080348673974129715150619402600035437738148859318065394853169153031193421868360136915988161832907497414122629439388314017280844859553387499569127044356120384717245965270383698586352458237786617493229596513632261331883796884898768666607693132108515374309576894796964886985535865652406417659305828926823160288359443626010477608377687245124715444285460027622507350291004935633404515113437230769474540420316307856301891998805062748847735707448176342700701730389241272695620242628129318895758818353636786608081571603059771260889153433053611473739774225919884310647413728878736471327118834326009723158810332583433770032582195684049728708422813693238829613300643008268028646749661108803056478134237005184516880150869105219473698016768645440656863022782925166372101442988351459725816027848547394743952965197285621652327381708848907492437118616878309937142484623279495585545196350582425633993728357808895870261567997575230476767008778828833404390902357230048113567321237244306904529722046146521908282475677709778114769811271050719417949692398588514850361325481565854624189743120504224316672149680895910689974469788571987450190301823989924933687864941416292100330035657304580432621883007800725138163257261124746986044550483531680172910265793696852363822942469733596876450999617205837411907178465283064803995223507156522727807785873767430630552769847078952139684195453986915705892035727351241727794060766944316415052727621543308987811198907366404688135888578527441933179417360869181144386016525846948949228300499410190293130687761900357457270994945791403796263067241795352170415724469458631475557036006203873054627853998009769713550834921187587114482258422963729046150238472530709756218284016565611592848782447655561362488972165683769172838335921849988683435916790630916732630379623339044702587005985389905499531538185707098265510493947590193524768138674915053296815819986192530693838127127856906610101018088462386862071344740299317073451851529359762003284352940494869881588862237180681883221814252702934374076809469741211330614194369948050016977457908087123247140592867045895990602420265955804508173846503520907600537816999903993825672816226731632697164384371875043432465984762087804780751641700347430075112059499160747429597888239411680331856553922068914795054172914387810811376092803522014401533552555420019223042309039839408162402915799612203358797122060038447188312888228455510728787391777278780794851953673637393773822827365177404999788163006677325571269525128546791541115228678195215858349266577651141265909009954740980040417336786257540620635680365793301412468961643209448472905996238973838323367222217904293013994121516138955187839059853818737797403906292758728208116907074475787497238909090463426361609691203142885615185650152502577765883342309821049717036640801240021483448228301090661893242150586741109892679587262958523078559684310923442698627411753605943651847593537913421709463861893081364564125513979829596087996070178486165453997231520530645938396971109676544693990489008042561323544702252697958641879169287468922008116041543379180699893995287634718757554406758055396126437740478211652101595968071732030549117383051151888946372140903892943340457781226651619109739362298617292139151504471098637408241088782611673671854191401191899192283983358590430104981989388475275132149333958776677875457245523780259963606737739535822763752605178176091921489788741178410449918632996222890934147633892082409847952857141848107040389211164473442875466135052866837973728791472191160347934278091811481970933169092266582863349286782835234065014055686378942882113615743655518347806919028048688266107121508765001720719641800266583920397071713478597031037614183745701187708052826121178174792710582814965303556816857168489498022937176417281905187102463700047458858548832116128918513720104178998929683284490991874296486466818880264812087766791680789324057990035016110345357676957559324230489864889341678752346844695712809015165115194649489473011324253858826725045840013004522472239463035107182677181273017366243386365115607517516218145839476179157783526510680758960605564939162188010073646098547297568230034069389347439926929496665206698815184205921433085179039220012252058566924933918185924613435264468440705898586891099066489382370546049737429177983450205156480383481165965411580273532265398771656990379981162353802143109062461848516992519615721838235247239726189930151110452145304342639097309597730719544013702916437543035751261777948383484628493488312483219495893394388795958926441030120365308263234565528280995468837541282861893581114586333355849426312592404085828652561401637309541872358303962531167851133929995239949813846957490947873661806148546651048975882106493710937556701530269662641843795461744392176370649710430662729546503714531551925455237913620045486019430945086608664887961016011523345611680041312760455804217654971812417909346127327367601311353041081433881968705252345129454459314675172310600116189181412443068667481308000524088685030965310678976554461420845371132495690997921703312986015973088645671120365706413120382577987509231487156802585151753728685950502517226190201735591357510895061405517481114672403419205223320150815698222187929827301232272803629571073731177386386512567631473087407641259139840058449994405280674592413458486880893302476237073066667375985997669290721031527141423794086735716419183711431840768287831336299846733651485895059454785282372684955160714247473461630185001875815298229529252649459793061787689097678066929990289906527111201340521102866478207162358651966430608006160752847285134285872722141480179418061951222444934711359730387525675656204786977203879074852430526768301113789539350895639489878799428947314173081128746401164572990907947769866296988028412973419203180068669485494893838219616768717939983618850906552047357024572762998346842364695485912386533481270804963590516168312612999534661690404581685871178832373153803638097520189564292959413027763453508613084673111115441444077902717008268201789445382929400582013815826688975271748992395136864541429981909193874541709696737010167992570020868103660699209583370060408901232023566780745317000076505016495359324622040722481001315785014740923079663909311051083973547059186319604382258066850702302410310344952292941863758005817376543673283202437769196169773646161068144237766009373219327301597641183955812076103540299594229715048877577808132187451079557290172343437591530582598807167825635190159285431795696730455632187204795970080045849789097096303513637048803052359593068319183887808134143728645351706255230668024150004166879323873654871108357365865417113362649164454343568963360747532182277682479732428259935709545167637004907505381600517232987967969899285203786715523326479223068552825167818061922984371472253165897324503141360504568761023204638410337276016663377442667811834553872013119953624357538509460974704422056516067166151325724051391394460836315633741375375961779108787616477823823840529874363719382220301595825490847086291700400043770129591318988833433442958184028188168770553571024179039938701898685877063244164950009769325247211726484981899946377151085172904565778300236829063593354810047071140981327109810965901201434874304022395062311984940193840564006992680136069848405287983693803427523456401804854854782385176250556758997034734512283913093292646517957756888569241840341425710591558071576289353962583437082539044842853029745335456500473532620131078917943259337937701803944998123115623190344843483480673583402589188296049568201395821498810237311159906861670545311898283054190153221870865774487503154288483441045858215092556000652241474406115665308214558488344111743185327560214752025924155210219819253017900522035308787541076168544513154846675288132101211690870732857505967639914182963654870516112306776505246772760755350482783218077473718936031679120631898830950389599951372939455955366449477055195608447859342770753144713986872042991420001840168442564098678775864098663031100111533221847318632479264667126975622408468489564093359100175850017495908979779855525299417262207063784154370181992006555763752814911073347161437623410687471812962597098782710432625423608134070381431648886894211703565409320961868179011947199817161701715072304701497716423360500373016635033895658211060077409310802813124654019129649108204509223679447655795752524244289414547653641859314777922549941561918572148188466675900769328171176341442731833510561077865205429119798223901855086738588577087036385128236484465053637416286542133443495871322956295972865079904686086641214570573615721297415228117424401675329603188464388577799436893299611241764574819756596761051583181395012578342910867585481860043565365961841843410577228691893607131221196298098612257401041283937772854657829269027245673823219178208708511661798822188089831050515846726238475860927193781291541079425069853050577254056841472889541453603106813526326808465211919157738493244818767386364723644429197563027538874115464416106191479768013264657475256388458256591848539425216496972689925679768986435986386755323015625734643096862553021073958996540215829184976636993168962193835235562726848078626280887596644822079249419049668617560219418917072987937415257387443199321013745536762882414777045096966448523446992782380198861665260239156200982373358339452213554768946143897229721699396844926628444718503357785249992107953481934519899562402928791826401970016986157688777769634588897568932419266239822554310204070368202710487663500620063039690526236930229757796851600536474260702289295135105373725152294731897380906060173098852579679997628601840745301504997100034443330770298862984445925290991355639417717327970517020864898539601912262492637971353521114768577782767962537265253288856642827947512533832611967824064621072615051921581818783734439277727882089791300472661947032930267523711099309933695692904997006325567149388195752671387949540285884897418915949759562800028192317071702730769873345512457804240861538748045268713734037365908021817483485559033802632951694054409665705781581082549327089516473844196274681741092195981996727460337744393676229305000734190686097239207680788878571535595377601834389343760660419817574602840066398648934951064468730494664931108381711811551061072915591906649699341812605028527432845718499437302117766673954656358212587545262994075796078865853520047467338107908040138341222774079816665575273521630546854159954212083968374074583046858226953780301530984837123893604338457337269609784472672305843455156969395830084555959917325593529785129376411196048693619636253776612952116479857417653573936759364522950965648057077521812666247872600796215724221215970132143370872584598545094584110560841291165849812071748063786788603851037709539520084866535059097970147366385938629505308905727410739841571568429126987853113532154089636133388540366967505541925979828392091623600271726271017657420215256691308010784436405016035486908220706980884168160319103309271559207075628930933836536498351782687656128389476476865327500435548936988473367668243519968926874212411469000872973049253130559601103132668843555108560989906016628672309169280919088509633494591014641430294519147712761326403863455531976784811683252507419516504298926381879545730940682619614774813781413888421945817122566707766615271434828251364264463959885741146143419961499124828127895744081342360791735592155866873875310209104410820434277784792183961622630399519420057242951553650311104321825989475048015649488548343882764824616119792701085518730773760888780862718599578561323479947845857336472731301029831655263775501371824292113980787308092083260742324929513712044877674960527109081976614000839128746984895286286460545864093674162330566241784886788460986886619148172319865451350755058050820290830136561356085482259783388031517881950684449470029010578750593011630638696899504147113333978734178705881035509121173382871939199963552718659172479860341884470116172760667701480188894477996247008623707836732884642083687791325077174366943328762466631029687574012318483014174212566032965542595661082169486094818983599673058677278187500378905897102435342228882638706646152474473328489152152937316349814379183967915232129319344630628757117381605202981270799807125489659236756272033052626954762034016729390108357672535115784860628585472796774722071343601300316084877452586763694063513855334047498721547056265730625903801875250615767547232292887229397286082578056366893463155760337701876918440640248481911150079832245210639399446574420564813397658372073839361737634294157593010222888710691396060433510382499277990176358259236726907478772457531924033069463136685397991802105351869731551377735983199676735485615961792862072938070239008254455776541393049766292271835805456194070962765190827876014999035353770547677937235871847213654521244768267415632072349314941113257663268380755127406195424116398311632055325825413502920625788356650902918388718404796999484865125514694473169562759369974846401582032078244616087624192500534513449951948686178085277900924719977675844719910597268872170838985385080767047520081599621357788731445643385501828335172262067016552698293458822122325760904197137370779701307339166904211073312079066126410478092056765113289384453033677203727934435981218788517385814135515661257594153578201995913187668387188240499277565495037160422150852025644139678433931238564104523978398773670278598020551067562835946814927170036510785128027065941978133793207846219200439761755618211190281184264198896257934196131158179091725863123900724562581964031742730103209501324973468596036099823827683017027364336918909419450294353585488495303884781591258146350942005331989985534428237346891321479437894009685308434271357683897257159732962840150819676219757725326516901430456411331654573904319175229548922123450863573813942288645434300387366864440188494015860887034456491064748656354613381151258748396817872188771586024002864640199454133211624066658023541731152526252843879213341209872975641277441255850938849344030622586312091191732819290712361968003402169074689281282429281647417033878245747256576478607521808197320870628344365159470267654263475723719171265085984630081254703937041102973104135479478694557589045575008852837922758738900917366833209103169469972873347954135350949362203305033907307324191868662154127788106034039870106752160421564416655039230116852006547695035814031676210357815488766381384417396542414985587050375926591873219023182724106817483012137594705808408079061394161224840627309192873869854501301088523251843812280916298051479578001609798808263934907969351431175021217625179072611714706462076745404720210494450410383046236875854917330691615341849553015023559370606080419851250158451953493163533594775173450945527879648268059812452743056707695947260066397697329493494153769905036669267634078229773727151868709050323158251369906414084716904239791444883552976529285287017411390672615228757818428196564467369268239012948199470485076195955571469266755087042162286867476334120552738571702821001464360068384908198968509305634702169679212583054895338871307926421473839536821905942587760793700033483027321483416594254292682297505586618972719736792659220333563959040962047715194376063505264763854712359376469854017186162730632908876635039808988027404166988506839960310608673892921687689324622955630820983420814978665908100705806429627973441093302134092813121570399600613807656147939917859621509508352636721866393143940725218845324037393582097568933406666546503193518275064188683073134481313675838719133503095488947600690392651474523389852569709248159011311638601513575973752459513681305933807892675192572377186032299010392149270586496354710920966586286557102609782999212279847508779161661885106110246749377427027344700385105145398494902572948165086204505329448758881244088892241766706071631480612452268449627629018030938815010255993993220691002335499380260855155104212563106994889184856420386572273955722180470100478242104367829392922099358069172781307042323694808355854226452820327660630724448689581985954672293957945653716540571999763006677388696425695617335748640663000561420418738243743118602812863695740236443464531848316978232812185171844166274272298965202527065315621027851785567457020290762588868654110964525919676853775898318835046716383359518216904991513779170237285944383647176072470987448888036712879958525570068424037762024077557372315477233434141066396215346090837293659489267669738705190319130457088666088685731929022654726653300049118935114347981197001328825585401597117897949692685567206732143689344532895048851814254092303269535729384658182174744114474291614092873393150199517037775622829713617902178541375894508127197431248761795549540877904386133664874401930690586966369872487739807187609664409184061432797176165344159703370611184186110024782844553641077637961931916225171281993679355331517114108370298879389121460972030864998015724776581404884135581721138216940467157261668235503989809349284849954863700078049636495995287775042154923245810370273605945537317990996144732785038447908808271727739908727258875548544853451517406657412122613370865105114169483036614437360296101943027347506079134762207797473616634287917109425013583267754500806658180046184327739626396763385042551864410087693992531565260744191725497133765684372470469416441598094897586219789526733629767971272249830668196178576000975242849290930645838179024887283783885762886601663402099705649429710738480758221101627154719179996446458150652942810288565448833222518218980502646435587717571241041186586133552833202304266148260583571129222560059164227322676781731429955740290000507270816600767072957103748823560464050042085955514601309214888845377027209275437922103764228073077434879997589864863030062570899816650190438649164568850334335437989520227517607809327258727501751508004896372828065597202327193833150272506217463591329838254530829011088869251805304809758683274125677491333968413873474782620967895965373274259885359241992591385160545706874996856882491589644895371735554390835557163367367556746337738875907514961214423034016398243391961058860038919020571199896012201718777855518430178457148543380488257794155247733259401216654533010340997407421213172572087291232587014609913145448583241901223550459003489363145995471629822855999985790988037005852334987559296051380272085518743961827198571783864173870719991419353621046663728613365354359063281554652500825764064873848399527237618909056662767198458511649086372111067320598889958197988788168161562598561338691878127301202158781512143391274360558782600983030696264210451051397104263938263592406400685565693884994558430224889714070746257884524876284763703628864532265574075496682174702931099894287505225907232887963375181532800649425410132271529262753664683079659840956658870091588365854284411182023318587405630769781911829086851458189984896677964305694677810478702073293183229069867978111109251026452758200615657672448174652327395942712825929816132968460187520424517495909106012847860987791006244178267843140768487320148973065121678082035464653734435695236705124183032739253804181155405754032978167232389637919556505358385432614187633875497761464895367792986105720969874639056663696345634185555286953912612542791242247828537067237880486286556701117818775000055587173386133182835603266547895697738852172963035552404281659062260066303186789305311343330260780856179328130998093103031608115184144208364918603752031952657102503602814618200590506958432802752864657975214205927426565061520732177863459141062166716240556999048476020746443347667240503755601252856796647930482971951926451518615814501759571278845084855963045220890213442411506350324823595068531164234469885218042106896678154615205574394484436929331269352648893883058761937588471367434187287972124247929139356600497365000211199224252502471807008914362941255840638649783856365447244002986699417773199976884071176920408305047970327094349093756031039981389151496315745522264022288013164609577879896869422428569552177215990709407445923627478939251660780189811136808363130705493354622419466550035349303586474073478400643061873876869621172657212935291672173729911185161227396801623711632409052313927194540200692640460501536251447817222181934907979707194680955359819790541940228176179491677877917025568998074223635804383782162847884426870668185706349802441979081844987615993860268646843210489189304596159262826232072615929911025747250703957521410591907262808766500851152601570695627512199073719131597976655790692035631179109854329628798158545548029836127104687124099793308677410087579964666125555837990058073883215974639873503425939257873755849040283329216166511589037431691767478345336900693185748283189751645671232972437354056787610505376926683130737268749126404249911411595564017814080095191777735060849623158835297660935243528238995835492099615927668272089212426094980453306376226554900458141788274502955899910856784853737223423663231557362747355534555188683831347838914181633303139754282714324300744586150998400207971443610713384016201561673922200521580654018580568414137521425286892336334521476406205223380335662486324909458902302970285495787977644338497405219277609410357916020451747180787906614038697552143035991743967666668187560748328828382193604983874338036270846513353904945886306142175690457748036579445142169617858335114220100314735476091230088503421525180002905562787345375904481787744671923936143523723586926653240347206986507892083602127664654533468492745162699092096573443019712853757372446680837024497086187675648769287455664257961795035557605929001284851599243168720466318425814301733648220054390146522676576522564124969844916137422975752170454122489003935256903897860356306662209141437827545383003816058975956999725153495913607435525204605987378247589041651117884314400904994334192311004823902480379427746633636388264357408173558788331983700804863222548002324663563806521604697035722025002962161637111665148274934493497313043033522265106111913243404934420901311357275579671803504727449519861166023944334045799742779657439176487254586872235631223680728354159130671424843676622766362072763747534142756320229600494591444604310030207794705955098929716736174146166174679348699108929235542518149107793395926923613540477803717755788007736822044820280093588545100455899568400570920458339606308772941673295174256503918801223286964161264203468357761289707381375174752326720094080512532582539633332180615473451514144260222892867808148468190684560013857853166340362890199856603064711303692908963725704710314384518779526131262005509021876525212231690718017228520417294889651200173553373218298147050940699883706434136157103328232521052533328988907434133854380844004174300484334781698019642422062429843327413037151447094645196666996531284650133925379231332859463697696907351090682683100402470864152153405714569768431580240693629837634839241028258414626268325302927548608538463563307040112511692242084218872810711045208372664058850545984411061969180807094267516102961573901099072468268872991396695100681418828932080680592831822112661351957077224634152404018145730729375046288189167227986060903717302933249840821403183469082646403951221574819523633061733445325121538490253087915342299643734440735331252920691091261813048019779400382874643067025220589934612643925756535270049426062618706462043907906096467794674064486988250919502811394798860046677083405356909803986382777835788421999390639084454821596030661099206863036307328660720106866143980348098871482077308253104074070799083972273922626503124134414164442038296537436584525154615740467567651292009382887776200455785515194151980297795797728782447144427881170949549520244821233074007469888045436909242533071508586165620749337341541182644901092845802990526493072179101869686781888302678578267532778775940234175187693232097231819233505344109653747803505740828027671655259362900805384295457651164041170303887991315512210677619310729606747226374202308606130976139464623000780493838613436292078842242842344926744707017648436608820741401810407082352438728875390606534501654161486228397896760773369037195753319623126271700418280917320863943663773403026405945201561782828127997066926792984868425001718228484585165474170295056893102286704223045059547017819945828000505537444886750324944340414679612307432907214902404765476443461703839326666223753523326315782199171676744747848850164775394179080928055456441500011463993666021893150413110139843999519307571073892940448706608800029070864574788787589818086083915466974572296534238648634550058171067957850925954115326892304697977267473354748247588748141085951515851967200554801489113200030944942046697972536007977408217338468068144393262389791632747193059996226422839761618825981780951727882960568895965467664652223425862263630802131613193128193018092057666563533434872129632855219299872664824401800219817005775199003352991888536776926858575576019230837587955733561316529028269503384301740846876384208752701055878933001162584207124750865841419026696752929118859154538671579787142862440036326043877072224510782715847114468204639609024017921805094541117090165359604910706865632708860966640592853241394848881074457131507470913935857516331950152918177071867204499989992509606182154327918431880440591501678485908664785365262525195649425877812936412327138813075826625593511716304334969986127701148550576499769615286529751292863402113549537318954983882358545502930955495857325990703535399289447871915234103651246633820560056913706249877130629528037084689012444075340780849641388243854335759836664077899759235103233128852200485767572619952135450856414380118472223430910324388347424921884296380404197799219748022584234980433313998528363822595365253164056518745758039576559245645306552574369795924804183060646810581968601458639727391378874705464918145548037416088746293712566756193233811949830156478319002929871085639678119541250975757799341031337503748065852802531626060429268665508544001961234102137704834123229345401483627857943334555743292619126640312120849427706364703038758073158932172899877621542262424255287532817683362333987499367529678962964965137842320938009323205722478340234550301347080803987871695318344067821688841064051374321823473685262011049413088375907544009271177898022503111628850459566973680735753111890675875244150771164976014891363030243368394666159791839671604335522016546040339772109863068380339699851396037361178756800659316738040993311320626698100039636390972914962461534479973697243940110777431118750598591786421414704999250625305323223708907457548133793980092123983272871875340967923204524502732785472340584931786383550176082557690764791699004583111887275955926599963782217233822057712607840871602088076161611121649402789852065955927958088042612584291666279434217102603235912045559099324509472682392574017545158424453955535107884968234393298815976798379505789150885418846981160575962419532712957334639028387728867220163622454384144137603017915015882738578554381812384201836690199518870141885225020070480002068526873347759835708722531876997066631650823540691898362585660562223914354451517593353425843625124676215691091221064802633062716835034692029580500285799706010105387596193920785341123207444726321755465660964225774757700426505865086219859659262883035946246920775332174117936851095264285365717406319356728210987936249690871288198298056545837595627585371259959325125193074953648790143493409896612785702264220198051443398307191084276971007751256545927679104865280244373141213739896446864177636263076017819246118091124527909461434861492266790910187199549405575504225341916266576023507983925191820891106408481078990854925081712194811582276101241367874712475029195957826253096063924328962089786925139384610388751759455813239607482893364462357608372150383296039619050452979502286337963978172958260078679777448912833216584146482203436069496383061957033752282589242546628759788689924440364165540644633086898770659347293216457587803507817645102630027167114683912925385401308036794855024293253675090071738805816502871614877755133973594380098599095865776249927068246119790667862579912821214525452017150463234298119867211922056663907690780517390955559202716471885803644075228217382615003415392779718494348583086660555111807533864534531059746253171025277645307397079653389350352258801040115756532375488047340491280565099037023806646200759805393503709453507966597799680057982145880634810156185181592732814459032285482214961493996921117009276919580260417973542459178133619293852631715192426262871436677498302576216966267053002751466545036486823382681126484372772767677540971744095231643195690937873069508468181569604454044766129615183350536861303584427289179704186659906791518539003883058170570727695457445784308258766507824518999947312943010114282451069097209247766735661570533417309503939337548068739645044937853638363874599594970360851739741593111792151234861850700441319292535248687265091976947119486933007516250679913587039926462904850653307582298172140746102418697607289937477807712194967883545049578603747348250256776376037151521166455732951246654583427014795327981485897556740833568829130425576675130535346407177657597755457212618056957752222031939608719282320751986064429973187444138989316278767135164219098974613524360361891265401044542879013569679218464836101293475637287782722632796665556163815077676899024643211826567603404896976113360615412864629802719354310974931914789406095346735013904176829415081674004690538923996750755131336580982955616766614952428650647329079079300055703541458626000465604205484679693530038384062183165850944561540516224480919213897754011931258697408479179230996437406435498335590976732951583075831181523846049572756022436605593536807340051391647507845814757496193593760566392441094143600682218275153830840260487755221166031904701362300539313100718194560752003343697097449547611704845395336992022035656550104082889633436900190624582743915282524721834897167542176242225474985636948984761577507688190072781491394865585043840799341932126516481754369851048900580934818148714664423198221499951221545878573811747835975273403779034860685103124620268719199664063581243004531949159545958303394863730550769350998227088838972714985456049887750931253033658108560879550343082278355021019080172940885459743793455700362737657320160904697724834363572396520969557582190521559864306751307080589403296402612774286933988678970541774407959493585290932509432423402266641668604787651865144420690680489886587495005533539458779542228855183807938125077126245309235936246819042536968563870506105393892205123265725761581871635093679311974513916970522738590628771054989692538301276513240258819570480080854001130777223938208297304731306458766891926579059864837307131927240680331473516186364008996655052878580607468050707475410654571098693713201034451559600814173527195871331532417374443308997940439558196481029567051140257965570979031162544911035601370361791348718282966893885192064347389638429841087218824568432703029567127004622519725907708979406078845024669629194621104203876807398070664559004078136048892975066011608151452967153844087603470313951717359893524889420028746753904555063611266750574730919513353369278261247459585604880997852236558826308078487999590942591167200510589751093456401764422312046430762485919098841894940956370769841864092052742556254792381906364103608689162092927551336542405389993183690103150504959473529737097046913526847754221850383962448254923435426643662357393376778497544587573414920902687534157519808172819311421730478380754888263579464385868116711492778563884531695258214816904236147613832824887896100735105762000853282253818973176396292295021142673812718453538242584965173216931669593114551859145852592672671415416261176422490146592072162455306841126299767104447433857414379465366269052268079992754707640037672470146773137132877852948545550588552184247439902769733013375327545238072522356677001618155534141199704592251238575226403464522051118906392558746660933035546772556735899912331948965632481531786908406436158433675087104742647556980429239127392470341814705426374683959350127061278941766431001873141123400358387813060774892940124515203121773806492164736764433918118055393655961589919110920878040865421468308477826701521088025931200316995071913267153889754341057211968093662661568688502914388483070094934702035083076241893443949218921015525908399683968126609006177947950282998036746219593988125494165150332782077204326870367153787756927035612480409944275547587064404917807830733729273757762564012320186523562428864329359852093476114943167894504714068818407647763540978601120657155563383907648743154937225724910567774469296395169218840750249172056618315831405072419055818025522898710542844453074272731598476625610730333676905782893259634181905473871373050643927519145062528444645013125943621455700144547137918240946799766117818542311060649358472908956078790172630099740534872097861116965893286256554327952394141056777401585511811038112844635777840908814778887794147843582688729371711633090448564585212424660964662884237834529282226142277345393688100703610538197064981368941632975341131011478908472956666507002708535001747799972130591748152553746913553143566375175214496801693973182639550940723255621433501042155753788316989791405127140338277224634318910968767080259002247917437300829422502673411917480135363904368482302066652176142018365540287710104959635058281121310869271623339225378747299107058245879738491659035004542391209409499947595535380732938385329546365268242856054444722322837594171138729335609228699664634774214725939359283247513586121297659852504879215160607959940527234285189374170660834468055085065511115571034572070098605811367337216909272987518963957095232286584607530654657640100796585495842451796886346498472643238288925900626525430553492125825596656319756385735152557677578849217720817361852230390611250701442385710693066473276535106775365037522643021291382810341631383917055835663902857768013633017692417816147334753137835080615437450082947952904289883306497370562389266425929598711268814173138108009675858044132949923010325779829988338289530150168387245214926283338545308011002345302015418181046744189266281825635220659409290272474334093496490012460612314654799102404309166603046793583341079442603728000329908442363278662878645143223824975588867069621186388795296297403585678906595416678306184771603233533377140445811408272977067939324669363949562538872036309475884988951216931387837827947691655644894486413784342863064235483218015431667221356854150775510104447332021533659702345987869472885988696122531119906861918054528771937093851394041484621078578301952907359687070163541911759716919625874818980010758876587822496977364745787766654643314063389231141160800022695937573470762948170206381750496656489096310150616875310839394534963961769115399464584361099213634600434849547758381698756785731373250581850202560266755121477215268026556753221622802254424471223452899236679461205731359918011162322002520775997254918661080296546147611464723230984252407641586107008188451049179307080229177604193961632299361931105808366527100377157315486321444625350530879060553800024795015215905608172206493455989716958785114257324743399559247614600405204042083562303294301333348662608070283697236322640118997447449814619471633123904733499582362701171748443187366956909321335425861189562486304767176268144118251464481174205702433628657957158858002711534421024978906937125428906971775513411758653345781370546219876613178679011076755648706476269820342938204487174400392140710125421115976910375960999092007347540785168152439956467164418007354005959455018254789303070142314477373002912130672993064284623397704526195523125142065594435049672605449656129837894582861470970806402115360587980951552965298735927230840726129360198622408333068162544416167992749782385806099252379926219408706499620813326063804426859416873738571013572258407644365508177121932358517429989941724166076959571252505963484007247975221267869063006489933801356295833408559022255219767863868245598220616354575229404246183875478748691704815036446687993769962021873957389103266819361173870237038440781766119267569963521705893304003287978291554722445342949547510356014280002231161930086806729699503064263400196950026923992798953444949609309721906855585866916330989905628507631485387579602471098318070807646613048260520184640557197905867078129640796907267743770427688781766474263299900107296141176322796621163356286674304231803648811831451954431451625724632868884860915977928790765621304704808993788558465968640067327972724574546602830670572844227078810582184313689100276831333201007335356471341688502335521561586721083272267321502704200517723207173775191489130958358619386004284524682397600976567539335517182543511272020630247806323214962692993982523662828709512747249033219998171761680468896790342808137592624777068333268777305627038136818389693769410770826138248497975622988705252335766670513861510242696291093291481922283129760602505478213922399580859140752047979194664870169750561112667728844067374748030323239285176738729964617407654219405724103148346484130532282005754348814526177546520766173083700040759635362781900628368340117711851693947555622282730988999492987362371158186648884202520704319011507472179351340901262444851775771308175036039570647665570827415420710382103687470738052059188895719821271005159630739578889715865244963352841139195501052994606503815576546099001752447711851250705988956962047770991689123441151097021474163231201784294831566172592343784846655305530361273872748123184939029295609858684576034724834314031272441502754650540893824478577662261282012396034798121204643313883501807653883608763565095180791969873264573976461349767923488658623988387323772631040035392620466559925629748112230587476480282422626636394508813634613140293949216023394283896433917594259754426836524132372414537583354354624684608352208943822119135322126296112998652121565484012600291721921854371470865065703690216278354098279529166703941419829229389335800911205073600164740191686472617784406055074220724149733981949941243157490867414516170402181324132714415163360574893377741605703405196848268476358685261307945923513009856612918094781672159820077325510156323838097150450732164102128242797594234613044487999958243693887548822453524756526767694533370015277909334803057459866507515177834418990542818932594458690506958994677294348420297773701907533513947992639168500400717514090582949823099414533083431086711132195482677293274123963080376185644376650816933267667383999322200638001255140157902623612793209174481955699329820541448164794363567316949353416512326426400361644016737829249192911281272739568699720519922910195204507348911887160096155952672867849969819541093689081672742006769163060156999520496970254230171414267686923931423052552652704051017103054054066215206484547942474876690075877074236786251753850008664477663326599825517171024336400030237974893222410412719071826397908923856959526313826986011002285897764243220646495145427310802952718165720193866978402027553593804199023478460107229100073597087513626568003018598530357500886672307443999592280599364213441581636728362548345186684682417039004729471843435615209572252100085746086169350090444661752121092057822720576210488401989638995537318529080579144399020315347908662950626279594465623697426209869487778819476924862840489768237924326990819599380971556975102570757158826185241083813304066504104067479273541684205822643297358584440916975628583187034736262426567283992897816476610267396267757840310740068690423809588861917466553591403054742866085179164896411794429386939468660988939900310668901430503010681839127982210784568151827439512884299197824486693237153498397857946325383318269100581237162397012322286158676243203164268174735626575994081997664479173960948395473164936212339503044832469480003739720471408454040328548789923108967086124462542039795855128752858582260305101959396078473004903578478648325966396717326077187088967076985745207417956373235060027595791374721191186267641677313538835166491846798752206435771566113815554497576781447110454928589667041007362652840927828137332212673759770482576441719853224674386015233668872991668198178591530048650862972034780672486401543716773579466609005965822184379939944525800687434400162269774474752106455752088499822455458885195049856095589610957950513265046168757274037184540476359789059511324258504942805910683940025520879666619598083188444805311562574644580208872697461377202118908957259701484931203965236209764017650495370473987226432337746555433245602084455637632488569930971765843394535458034825295048553593892740516727892507156651483676670209004571877126918492174151334849831404004300874271795776047470019839949877544500427488851334135876111584403181190583567801642315221807551363116922299998100408669347184151910923835331121223294680708766043004027931848422250028788176907492304448800703952052718040035589538008139717231900131653747414648505532682543896191885899395317918548419026180660579339592819256323170701599842590700118651528118164534988475509822936652126101770413069909805956480971475333822329783448628402586907254872106432682366753378966554953159619412312111117728366830265502534289622740663036249489828691449672970870246419115131394000349617348650768715021900340028745536482183422466326925630522455653834919429367485269835770465154084408481243013592952216143927544502768769965556507260686495624624522119468393234877799360755903652579573412536973231162194899259190438744158719172728944403669436359703551979248080258112352507275410764116718169019718449824395303972834337534927107727629977466410808149131349109600877554555203715039435953188236877323242129269240968794772042840673324938840738944667493888031378767251243770188523355990107919587118124103220480586869402687862161112459009119756951899206684050982767153759270753963702628675390718019107497967852095401347346153741222171155216552074879527996979751162420160821094648310485400093883241765111945852208250163137538261527925754718459606317322597747042655827137163973215260862330658867690001069503939394447527971904602968039495096911631661696580697779167287479330937226938968500637935557209578884869518529016084845067759794204457508788388859603951930101869302056298616377362222954495275470005061793348853465652023156594267302512956174670413163242129797058783932633198599912930052176180413201557460082259755191361329371518484597103530482526911915907032876265449007417129673087851997839970900574304362542394373309921661834426014876826141412023230448533462847520898223626049108304985132416422407855305299573385567692307949362158633522071140845548110201485871791879490319592148159641306110082621056226107271860216538704668887536707323749751310506088241275757082397512476230623397394943976315555175210205907624106535859362562976904746019040777137974588294307080193575493125538207393326311184549407488414076463320984364204768515658233826589977946637855632971915528345212784419822393643767539390167750735170979393645724682900815707117780551649302631079866066496925054474455321838821033848421864467549529587879486119110128855922864624455194007225461100899912724338343506007593185844374544674369691479640856217217349340747138957296974823818003454336368239243788214641622622665146152101807194544161337723614003209772439440796111630468555343420243892344329270915902980077372152683715617693711929813355018038955251769227117635041775599873805358473195439279879338614271393237913386583568920957579418741751814633077395533605914778492554721070780360974949485212360296170706781734079737241791203095081428744789751510815221119723150254774408061140244222166576166560273049318631052374193765199203867136096653436222142962701519862553504041826518063290147425536734781963813058541824748997833335084338371102593354176908843654366632278970376919597380060704957789716599005992250126971459921378664313247490858171073310813893821722736683114746413939338953309558902703855757158699522138475665878895008168040849098242737645922933396683807416496531075841409942199140948697443965154239985628338994289736234852294261089014916254221565908359650140073577283020226240884473058564977350213711831635687675438099556853380201454202132103882306555349252939869944768677432628515886212458037766075113718601512896300346233353585335889409347655103297322738201204271519634517013336948793776233094503695296391319349837067274981637672971640474654776030224665596846437403760125305374508803069312187443028232086687608570073684684885671157876432042423848588360957372529862032077079597166550225786886614758295361990217187591410289015261385741641608977738980108357857835767817988851458529022838289715105159776277764887792705312205809679735076941008570449478982612180631820153780724567447219780122136016729313217496709128566628368201753629446418753153091555355574136436419341181498151389023712638365525917632513578501470482384837927607338288691818621282553362017035965286347207545963918268363801055658031116280006387627197061151029887254965208151025737126397219323863682423434859136258782798881319001925879007621019714446241405533005853899351189425110700413839325578916534258322464922996560570818799797395985400525817586313419294058995599858054367293103674651775396225741230086461895936412354375635522515365419581777771127640188828609099601207893621219651689229356826861848555596557282669334883288928705842859406518261217033981944029768730809632123867845313126537570937654683250191151658055419927930209401747135342939871584312539556628393601969463970163510536389960582117128401200619001183612844106935938404323064379227700410189619158253192405099486776142313699730562471608251912326213306765574218042885965910823580695272262376755868109969579869365978588659810819052918304236171892088756435386353615848735374978645920236105453419832906847996921808518533821079990417823188231815274382167252059207918624290408922221879474904642819789394999878782757806118108951941274487726656567110537283056410478739614992201482606467584503981617805701649663722249760980803681874487371190210964595557999982695383777135192286037873025370371005960149193309519732548288993945917006040355273728845746874533199637343575683536192914567791044540720112810682964733314705776560927935198160779093602504550905559776982201162750711393008399337454613176575309646943378175509807582443018856097895759055867957906141896687771353559893924581359506891366921264208943174123591134648045283566516990229258507935669261066173397293148832165360698764401079062238725301801354938363094114856392833548489818661484548540988895634695571311747397336118211124808974909722645283765715448172349342990059195898359317776811260355572975305438211531409002855027860598689511467019126028643825532919853837836922098303308862342750207990882847377213016144586484573716631532676512925715982713042408123172480869771635870987367633664440853225383325670658960372692752152911717714308350129443262221495302530169660470234648629568018066256144503867069574368414512499123841064045224131234467940871041686773859634223038139689801925358998583162283234629820777247589100587644534356889461216681831627026038137813851167602819924578754403430759162051847015151914578505541317066104272098252884459528223104743745208220522889510117681053917450821946237222878767880369793997115560709609014199158593361374583081658532122386364658393099476205163116916823728371988862750942953863562900226311573373715818808750059248563329041323720480436814027613244020176414093599066536307596471343633667923414340795877342844828308569232313972938917837201631558329154199089915521764790146085286294540646487425663948510099257934077277780670209475911407410087310470920149663059664053696558445565428589056014800628991559550903348944287797960552739793766283800880180793108340520947643110326012696595691723864626176396752824174030302550655174670791103464913997960644594433438338992682891586497015246413298660858308723101230578274679325246986561626502920266898129678084887508222373776870622609225652059734098744336392814060297401018740381922448593640963831633218634826188020350158354919182663343954721618474165690033155025373607272852771849841609651407166851823006780982947624234102112310118905980734093977367709391079627745574051855430417807222244510671383828750779078646273872199714309520938376104526765949328612374400537865440151128570234386953070886666105807976423928069324998741162591189826322359865358660407345829210960378013028116940409520189930086788878404374917635303787382973159528449870790569828341748451272111783879634508801307233348889600447689008124189694979173413954808583030677215560574246085966759870709300842374282916121964912017373282519185287864010979435602623610410492004774650788323960286796491876808858469375674862932540455686416986257721379274528972751354349027336164094932639385526072986856863753738335055250016754453539215729314683564404731847335937962893754503150455323805328691115005053023551638703762221343122379023853802829213980664290107148727038424855149795644453218947374928831381519125063899431115871857940319976295174098559196555353580037167323163891220286803736145796239707208514180822772385681297598923941505527320795213801659421800014743806855587306528854944674263958179402659949682065517289287991970681574454774560753328356015737940829804544965792730711240522138883476262887594663973391886532025874837423131743098439205461593172962842453942260194914168167811143656433610461202313798482916244617842873338441648099247896388393090289574409467938149455638243961572757649559555077058681672496009686713384202618370349475371654135941241217548909596157500260983338821509830877623491717383187661038415767517361682743930836351291099537113576727225335540110937912868358455049627342599941451238634798657809968834157158574668727666065236315017678101096140462983404546945299613822763530688206333788673573292553144586864313357285249136995817435873562301934349666870701625719541427440591321760784708014773927981272261382927524355571529028770999659254667299483043424452676987397961565962812345221033601063744456107833521804885321193646284159720673325933544672224445707825396654910918473928818923863483637858000153771853347858396677196661764425478400755570391599499178135910532138132733219334628378588587687585892525558732055234839618571482025763110797441040426413731291033650075719571484198142126327847115624249577492977972410446608666208342840409477039256408367677758858655806709731215943464586544309177235578147989889123773797164727037126257350336879025186258718899607700907523894767590291639414555384423870132764587322382934479824670007525341076782903659897754262953388756794409765858979834850479086122167777700086972185650304537855984599048922410013184171594449345410674247539945423501060896584234850323635234828058671861025001157051391305391535190630066323335364529301364069657406230644920847462452547962465581408858382760063930746721019195705376047452856357000328141964072818824138664236816734429959475638800670532206839118756813160785042301385947479012857252832972348018968760608137967592608603416389130815301470867767601404972652322096674397993121512590562139851443552774165640999263306803241445158615024242272852102061224690993722132015180253057010620933687698273268022204594704152373825214992212529719956742933872007768827495980956490552911549401334217102300853045737111862873644628199643480855184595863769598793013347489808961636489925443947442528363656411054568747258473235360368578407606051475136547705554411138631003465742146737387177545647067325432746323251119286985924408413269911623583898544511314559990334131436641895918446172365253100285743526380905991617705334966541812785011133557469269080033102970011219920129200851320785096740366488596648878389040250476756791154394772854913878455451830263039795028778166772700769476219332471504040378899319268009332339705588243811760653493883193943420099990852921537578122022840689777987518111794222975044015476680310430421199198884230649847534370654470125178153382884336887699979864568459107980127932610623723473324936162538874360413577611544765685137839482947656030663155567859883526993510520996021445477306441090665881999735628656927335677474056833520008423112071525884592728799819554322911536022380110449291708401511063554391823781403039895077297847741475892084494356701526478601626797885478831962978426243114216342214678010454602600891543958069522778940381234913758011880653029908361534544998165816448385256119685124644320772258728629230905859768347684303216159272281904130316398877521161742964879736473045733176010312996010050205702670756903964417020599685662213016872535680509056007489466796562004721607255894648201656665758551636912803583287627821692566189855201666885369109533101409864603308581089017819925836632025534454106969507289564586887068727872855224437141296192605392874862432530535111939078073687721944219337794399267472522746974861096636660259197601906147091123564177948070155666790208227431470433211722616731980654437751892054312789132080804335154343904967993234787044843011908261451686404476183266002910126088943470660962492740371043993549562043172165286924317163604640382974391106786245784338641636045879807463296151239178819212742824893872616181537755557485294806937342888263637845120150623690023915586003181467529926042265634569061755469199197580799368936024711847121352245335026700986490858499303280352935646267697280002159758302029159369851909544713259485218376499255139041842054638471785148997062898911862397064505979635049364458322391754254263248633823460880521709533374644874019640790806436126475006181167198139515400384488147115494823274640215325975804307132118188999871516834160010244315166128172214082834307244838873541909094212854294844841523710768551558643562410655749314938077372160053916574684225264045303375833448377378058953844692491316621378493062303159527688253020870377663432285484140833438800497172486117080797126408268048403234579474896276789616335910566622812853926127683021484163831277845376700228636787568491431294614840214325134347332174874175691129052739253290352124681051305720707467846894459968229598112754942427656073331130000439822270692014738165444734747926222138218686915153666531599048737203867158168153848947389957902451754854561473279777419792468451012025959074106531945999609516270246575235447666591414582598544999273270586150646962095440750728257528343394968797756131210315986954649908473524028900459693618119357774332487268408524244511137526530992162576481727241526221178432907023523056628312938220666547856705036817231585969649260842510257168912380896450138774616980803380604564544239567562513491259800825606084706446902875843033883391348374443396338754466499205048781499403781649440869666565067773520756250133291323623196215202803558737452810826751024370526585570976804938565496630572591813845385585230192376765043016209156174516097411553056057821908140319134060013706991541393147474276766252055868469933966087727884999571651640879504123714070492763350904914688037137822085960462817598058639613019753629653685998414188141903133235703257446773130149970528106686228074826583033101208207208311387236780392703550405067206616444674856875564355983350253158401870705192249211944600593713702339612000256245486561080783646196141830158817099596943460038353175852568221345987620633585022988694046152282352550212022217376880545584801892952294812095516484387479842170967297871269127748636000170132032952068130817818933808129987745573765981609498348979060311114991906803370045867320524868764037595266591046699232694762645700669024666895208653697639095059950891530032479572502066845928785127283188499979993029473178442657823369554838098768543136196300071970259330019810834593113111373969517181399187581986059937334742709482539860224883531551954879999445048244914515462906283284099656720043121983669145598296129732183410007013105571771536842051255879214333307453327919271707495594488470936075145623274380085377574475714384957015448968470110069076685347905421347130580144575894935873868399527300386035044113232878579029048363526979309992979360174662908636920168277965555951709110921826671734984874777883430903660740631334262059776335837315688918495722261732095891197349741108905768675937819113349683806584565069548833551899212741778575587305008225031022299586743316970543428335441558413369208932038942865267300630775287230876037842573420431545189706595953297733655531521490840517068264267802610422985243295311343902742726568866151330290624354920957622228602631879297903754944540695072469333677418312571125026748247525957704237823068702270965634109771202513834993479623723613516995471475215159110015380393037183356332537177249609721254974301744055994512012447424480177592614588310609327730558060307098363790939257421367169407829316091509989884598933719603689700278390543382003633243128459187845510294069393325989058421698810758058740881523361988498616202847466029485293379439525647413448642691729212662166191578816923526836449930491267212295042008361756513673187992151406712122612091252385219161990383678708714020756029967201020579490105661627725868083186212604474170818942945938940248886219301855975439041361581531414904612428436180234843539323044838951816659206500830444254854839924271563714914567444319114790677077239220210003236363147881845388604323571290464816074967382334230042341392070290527962815349832342623741369901440560847612516880666474846624478063313251111510132192628063564889840696691632637425315960027484961157572574886116224349666099856718459569680507468867882844983158125928306439207754911958635057674588797786365128377060890359000727287078205580393462803212908234515942945846573158318710172472709827093217499440479726308421342691059946347907183052919196156888598483656311181334383534263647434608814969460849994537660238349568792176959645261982029078556036604638049871359140320216716312769203427647087770995785435327770787017706216720343878545178327474504496659539530673073770974661508770592704913193897647878775341687254007847841894288478421216279128286733684440437878773345129135951289492041142548406962978595669331135713452216164266069999255804120929839961922725334899892776148033971693650649793755986229485938427853662845029385264262888172712704374047664675232883338480529553064419726301377826973880150368581074960532536000322819281604552319395779437442718669676358728307991107567905193401407444520311579587333930186705870573039562692931349974415967409921844411725870744225336798595040606404331029929002347892353167170475554857273337136732039322452842617755116202204127798727818440915621247374456392095276303299437179326119483105000697780827708896314673199790803043569257859947738079004120578108122269776907058919833551396411786340499032023427018674818120657698868708840161611962656628220646666605144855755576740560336541578547690536935261437733980223721960511041260195181310484553509201895556699252484991439476542447366874110679941366216538451506487788821416800304661163776240707825843364556501967051620941302521950356004410587630801576112231639118610826839938435819555549934602826207598892449047133830783234349794956092863067799136182741914932727642905988064447309537480143315683009871156729766997377303670705351294936809084618250523384074208463340309282284569060295493875191071941480329545131216659011267700638403988636053870951141456152070210264849226668694483843635196812186564064203331576043104233410206502501687695528060672728500216410615917730928299409720366001381765420252689393347431867194737063832548790728109111320722968758402231612567994495551514895362083147186876949550917080461752000212717101339270688876548081083166489554140740092051456561417078562096941622882129721218633508730815915721447871864742314355037506833924054883161909272427606254116855226520081595239495430314114128869851410458612719884840483683192963322318385413742012920020003830615995103496901493687824362458093711378998220875577942613869681088866627078883924068933599811724128607763424343738733352872565938452586942132377380779144342554210435229982072000132734543169568023647438869958385233368001281429503562842135762418001197721662771351072137152229361989947600006102114776752274773524287224651404982305195272842855053060577497257424963942631807086532241497292149453157448476321438225131119750358388770507045737674181481972682426481617052640793761120691391414388613387361549383026615072599056090272536787933453366855792705281916830085617135917137266362875020282859606642727823277650678682523757185073779440678045905859463497019557619462592625691813867599126708530223469192365413638260063746119969085780050410648744448976183154267541605392916706589353664441148294336654607869776841115626110050250000219650929472998064825371205538973470314775899726983330959980040533952248917459256551266667266315726573493702463877874657403239561288730241094850416093610482730595601232171789364903525955687896549784917492416783440480962755852138802829260053780149726936802228697947517782758433924223211160016426657807220085599632947352431425471447378203540951042294585947419661341279736031773924318922559805742825772034928976938928575350055383608199230923953930063054715085894810749659338160068028456008705238896058702990480397410389643186165352142317408144517938608595529646120395350820716826625137416053313596345606684365023593178244560279438179522937474956225227905956387105056594158626245166566304041238366686540538344602510021905950355286673611190898894047559849006659953367953240587604434720053372510471867048246265442662591982350774166963254487260600509654842344853838564883844370284346721534697965625739700696344694371618866631312220851238784967836923398162133163437856232904381108757578860050775854907051042097557506607247054705398476089510447529290202827616760343937211401496794114279012613174592980304070411517819485527598830031959576508603928186818073452701381106309860051402189180624027895358070795270203341241966858533831494990516082005957188332880906998537913787961276990208576416047451247871814591593677513832721142614524414875084007611920678491446431411915083916201575284316970704465924472306369384664632619129565233751062508396933187121253574185623238531139456852478082678846683565379911356510927143507163257856245099322251276664379065010530354110963623160413754619616266639167941187937314483178311150223981737506123417150262290822183845504254398700206037144702829944828456574773884283648590181257991435068071938861720100236615149930582392201175705195684136600403157217127256422453200382947382318880939075629039079846743992931932924215030115265331954556797675745091904331192086598840795929996278335071483599845660416458998902584003561485964564983349431128713513167530879074184035222662422090385858826354331824890493721743081109437649330538214534945988598238663666041790665255563859096845846917615847348907271966966688433791345697545468723829959377087734815865724135444605354008505626550926717289177227674016824402948162364992368795128519589263032133131979065202560593825728666378998246497649578127283825218170053930527996851398324688500453534916677782969531209628252983960459482020682797109895589854967931831536470731125928880955855567304624559429550876543789213211779048303279569272089874526335604491864338842199256587161450271726619593840062321712379714491758446300776513322095469634402234450275599160483955886918025320627203655489015768822891239838627813168302491986545430374405569911924736258720509844262048924954539060773197048150770708950569411980286671313998913076865620413380816600234194403671802152988382709068925264332183224325616122599929715264874158134965312874222254789890412794349622006901924775380816847384696742991130829200846716355033664723297973867057859444294764995288903788921633603697355625670413122038947939935040930074766850096633695488067504883131006963721630256715055658992499306781350728284075930689755921076740316388348675583793703463301637493102222344750881404188084361610728414765776125391231663478341737995932515925955192823523452434216307780505657816391671796893815763112824274163724039582367652035076492950584619873613325945965453120633612552558728624843025380932187634817872736680705635021148026362272392915724899004953128727358396414046646781961963866513655814511475867725001747663856527575640823199668025600661996577893550874550035040695183445299384975014400647828310912709429603813366485009041147395266346350410875079521846867396570890050803909549428402010980039138982649077639550430860702214712119294517643373096085402962105746631276355414245886204094424075854688570085078423819085998966089671723204440922727919294929730715334599903225952484246199770560487766188661852750477462687770222096789806554380178562979542914131830641578392588775751234821298907513596244397281545532787312367904417165827720824065828351216623519411642304870593761200202624691496746799410651135339325701004467920157405926351034156672601340976355662569333428226015235041521234194850524373519806617443872229051164353589215188179873311728204831359325924693935422638627409722219747241464513134112369518751695306767631270633735891323485961283971903299098034281818592811089368235505583706434179401966273381586716785980975033465997156379084251420407655229233983166193089667050407747776710594188409436079178727944740079171098827127326535423381803146227525064828967567530703611350058436478203780906802442383735353202777896364611063551479530868369708068861988146510578814409853348807211033318494590025633361226409253691686093676393678278884294287570856031986571371656269812106448665781058548649184532241666945123866637953393811232940237905465469804400080857557924949501432821454986501190639333529790389329883119538653339471827129286123255534762418620596295122168415893643246324888994237945514002807305145803354025709067511146008425687411068017332949506583609273070013026539961339827359457144271705757933573000231793450005121803630835790877114063329897791056937316327083952307984057650804895119459519048945690864951575363704519100054557337017834194037774976157448421021253506388568648987122153330411859532687367526762700347861096421351777543933318598559633329196323133604921300230778406124579947624143599893718932874560329414978541950725126066140316860484431171715665260640319554576428491872546509149700189013873227304168777838333826459451240374824007520720462268590581406081694949595901441731476074876176067311046421643254942382284368583139195873434531081904292803103899319976059084491664725707896453161333455872880261000579827741236903802863780443306106090013590712885607381107681040341151103972990251352162639716549417253911954067452958981286335487266278633715991054555226209548864695066256117873759146830715650326428048390808723656464771390298028322370019192770390000719490775208887637928749245292172977548349559794483219367974118724250913316436474612699058202668622560115696790635979357929376372283568916694910997038279524324015995349744220725517495902326879757169297929865367501114762717730485297184522478874053091785605406216286394611637394255483127661000227430290203778381045519340245089447480612700062300465329623665769053776937694725529278935220242277352317949456933777865008557478167774418014738489239014294092656819177424464811322784073985076196827001579876436531036563212390838753173590786302932524688772727252453772559552311254290356152351440130621619807883433203364530364990730572091801538302688476657118999891474772706083029154247369849358212694609954387021276643139262171049050681200215952828536400409547357198485360676421317833940881719902189127710677006076067441165150891527769275368960389017386013029880081789211611437944680075441938765742146207845986734034496381935093778883275080834267333671315283255114894263938223056105099443054247893491160767015694383929013530233389259156559543991539404481775538366327259423003033930688334891662997532998732275026222498599807978380998599991713248933675535601490931721448614874952921635280471978605667183621705829631317240989928689632814659387052000766624029195955835601108711573194931360698825196897141261178287438544845912417538552952115151278796500315647628866343073828519071892613870188846752247798426044258093058886429303719906213121138073459655463412191986788104863519255550261106155294742173771365867414360676044069233434222376235696200936914333939704743953606867382732238254848672960098302008842195570836162354461462027731874562403933681984422801624876062758146656933969242430445276867971279323852104248963577033526329493084014580564493416566297251216299821454318443283786074816537384967231307548075267715906090718033186839883833123852386329242058791782542954155173913319009872007760585090748469678374805141506623785032036237200794263123658446709286130515862733796406859734442056045394076940661400792967599505307825393947731169772548798253462570807098582458046911931039382943987483311602727135081679685688708241770638616814290470311263264240533354282666200817682928691177679280002130883765212004035278504652713883886666065337927311960123236748364283510822129358872316684503933805382354922375414870866209969348410629742642637183494253519009754431353547192031250876234823487109521853275224921567865878025639784086592849914283076909560857262170650366101912848777220041205051824804590501554882667651649746604039173026030285226451357780879772935466241671118916527446631808510696963851450110952321433110325365560478407491187179105708144516449065725720884541458330196944494659945963098659052948385738467869155545974614430214476394906618585138107503028582418171795561746122009089411520010242943701386512264569390201416606649159952955920115054201562090104881262127951741043367469642036378473030384413455795311899126950565735369013890106321675722735158260655071000742289492332342658240372870003964142757133917324361099958670390657764381525156704721392110511296940992473159497764514525191999011926628834465575664927403584162935463808012790696130165484288103567583327205026254969907460297210106910145789338793553350390813983824672549645856509302189850224662214714415108723931389919609330527548176559675617290968296081492793663377661015481584989162541217767262799450367590825701761554839067405949394024241579359251823527426348790661924248302268656707678648032924032987211053318687575606768215765452100576366676945195581352191148827799735032236898250301442883993837686524858471430495611721730897476032013560853778058749191327971184370280531773660858681957288800107311521861919534495501442274338581128006805043078606873287112178333464586554269700155497264723168824813504011067317993872454355506650087398729336893324636385953351868415960250661271211443630739156329328511264512504851177959984937914195460703640097818937997178939213064101711633376947507104232670731088381655406693419042446781008053617042872678180116589723032156898648529957749698602881899174835386035059738272257778649824531306912524426396476714978344718053242529166231988997939621016566553857631479514907654735473340142817770277350753118310201073853377078769911915578822214330452831597253765852430423524242039765967096789601728444905124144842529343579174663119268127616645425070891453384551861852560598338092676850348684067244326917358018871230268865037724651325253691184740521674091298656872978437324749768986815467666080874544817389444346440074591898597407612802170809741923997463951313004595986955677472047676391976081812071359411242512305511856345463658936082891490632314553673070281609607496711619704006659571304969146478457621701187623086593484929831941746662162833266626447439920162720404713639324949771307162415056557583992707018829470803538427619713926169163205307604328069789986413943030773588400560112441632773126410564601039210636481387317219887616588337149453941489915093589180140167475780470321943672971900837020565894914315321276690900999247717407298328992681699398455211333393885372955712681327212544788850326317619297520129241604473482074127537399668878331420497493526427161313372741218418935743268985282460789299003054233027845197211378824396655307778040345047521025510981012446597810029724983974690943659895740249049174053855225699032206039882176853624739792415606094919655766687954463730642715731517143534336230948901338290344389019667941811673827075187450738657631061700565942743360222373441097675791686201727601514235517563702641586510065259495902839799951972449029432283382279112428198587091594625382308074734840741534991884095515960546537101481408029448973745656803351885033873067287091875237148939663137145622378184040866492208572114286775545499448258288883102795388902906772638074401530817917584836534996646575502948951673585049141423138526641344028991319369839382904795543585048777708250223666867651232453610752766095341478256491882236630498932543659323730895998589061066689354846048736298969785104334222273273423455990757382288100026073609837699635339949750412348063737015859737491233657038913871101742599432882787617361401964028839050548007570265050494921398965908509655295433821106961946815702413004422387624717940687925361220576835357165343802831028185627207766269568501956873217198131909203013808364115515274005193194308650654524603042597769421670972784020890072109741957766971192966103343134807677109868364896945083819158571808953424113018495931347815415289316766074474978727997499277133217651572303717460336081661946503094913207294586591725280428584951934170673566767151129981185872275463480566080604723623502202506068402865740307728150033575357841415326754853402064441711261632639527617792645953501452893941787348067389910316292311803387558904592092707996472359813898365387453094288288828973620262803321218899406876718544095184976466208864963638711651154587082369500718193812772428707435767229761717344831655439539569198111982260678553330886007834589627051471012427972117585465832652635066337861862290105716818209815127574959532502987802419379742592286787292523180514357675405057737758276673294186622620125393945527689411497706922007272577592625844659342520256305030493395437529003652880228741053242560551154346126379956983122417884940404869823640170841781795953273156004335812098077112464305826539685317684048464839817773175406225663910278382562178488170502099868255809187057061267196769468140646481673546734296812432204738679897927205481513771142825640704984191537603329865686796609610261484922021138189509522817819544528046812599638077183522184007001900124009112653754428344910770473274036875090818182181508366290598090948898760271844899072019155999377716587252263996780402567227893514377137403687352605669681180142310434658331637525411134782748545775409289488532647932838423105337253265645426633020752981883903261883945257096881243812845276026105299861035539799610519169220421417254999759509928065451240489810060623387271549828206294282566072567305612491202433371520847757069015353931717426247803659037705592394719054926318616687700326075035566340555887757533305211992847660208837455856009399914254760283428936306278788533938969935276257854188462012107160839755404203356461991327665780446780530456106570373894394724818330090140598435087101150370373844561217422817494754318671130123080806958412474085572002080840116838975230734082319535685417644082901348626083570146563708001962502379082090276164720966116033861812522813710554816854250994667241327320738311977078840469982427820277368855075345127266924575481505268189610843947840455941357239888873550940120571128120348695855457618764628147890935397891955242629973124859649789512865958342759254709528828906374979000277576888063701717994262099843295373272794405121581026259226337087212165730175164724837944316201931912888514628939140650141221094640897542127129744101942254590131239158686381430856729430542423278185497351425262042878298714995771601060813837151302368845063475592640636156363474673664414242213335044265683218403195434896587920713739149674031643888878929358982042133079726231432958000374268669553165455299370089522736726546935422808098590385241951704940201592999567971594165423728967462974947329557362236896182180462508320819615721165552434684157287557782466314283711588071952161962692140803108008863080058398882252254454154004683870206108806024650175212455006138797743741615504926826435340460521195888289639034969579473291737988275617882358882989587880492778151253675733020952455293435265412845272642296597277495414723674509641428422192694413787551895917470132464512548846844055226221392657412078687143027633890174824680779271156025968378015197749889860701629934621186774690821613353877476905058630804353458496967325305337998806546343006657411648450139757365981329120645185476652450725763231843372018158691613893007496601147036868678127323478985608863001708624188809244381462612698109093613340270960449128975312479228672710013840162607822284183002189083011035370012628389178024852559531210675905789265714743305542174862428984422827964184270639199205306648564122673373680431987611008519961645372627452035892931855623582672821089893411462513504949921374894597804719833571683076481064202900698430891941664804746805939677291076906570801311063333219934075428169307554862201055738060692084356603678625548670382339564038349637413768377745786450561540003841647709713416854419994047110390725421351824174715704843645092173690137318219573267129819182163213409567111949554152404330927998341439877499370824702305701582084360734187959079336484161426177571922364289374155460280224848812544534877432596204191502968231038254488078471483665651174726534319479521578784603690935271539914866631399267592884868418082576821788011052272797808193712662666966844077121634129385133751066779056871261904181084701329876104924486511630244190298996058548980010348223608366852798382553698754182225348482295110382319006963880783612414348955728605873487948676330260700044102537668768584290749350756924746228174323751737344705993998708093387032925657276644128860234675471123029832696314075055726579389960546099144153076291896614292803752030511682571038000124075889886286251040797223366690228174076054633648150897959469874203774941582316863631568220895363834992668927812733642746409493481731357248331203977110967025024050898835625747432019731033587654655435709128786410334981917045612051784810749685414050461075689511442615411906064824323129683422313045716620667330450890281420208474370787151518640236512878457443786453856102800699968977607419601068623386025459428415095260100817277011587107091882448725663077027960423720465854269180574366505382268326657147626883266689198325453732996839915900677317868033434778592988532705623005893565434482472809344888784569076503411842599880328378750827198943649343354689862352597464622808112051106295340439256840659835711110689957570420116610537104914928065607929571761910381088203582631145699833988882046825903338618674918074705959682964593851094644325644599766496752056666029206322386980471615931226569013631146061235402516792559771451234146771592138874195118780507893058781984163756437415397695705764636990140084862390528808374618917345079232672716117347280273381396459338282401490771830300070921926808466169360308745987329161501581214571719912279628696096134545912892415449309414832487891688036181271247107068668674388425621124566964641798919995500497556888090410221787683398112276272760357111905652381650900089856373602087404396626452448041087518634664092191201986924755498290789320130092565130259883826737088245169469522381365636100537823999430979165663384566458729395864311996930906913736175467288927227827249515738884835191418572605212505023822767558734643143126712530948689029190051178546512355711735784022954197762160529094635395388072791296076626511036708699128843262382209122957964455060991435221883923819780020931531277572001371402814602829940056818995656018298509488710603958804868679694036983712319130577840164918130877013353901005422527463347582733676070557806771982081622095368192284876382036455279642765209388244971953714092163588705834864260469203180005175117183256623798382594368661288444100798726481062704840924778320212923159463368422656530355952337594949309197315964480460462541151515074703398170837378607992317418749519814526466736658541440985008678585880977290653799678974239178659392479257819096264779770730357869353543867123319986148875002922721000567556521105618365487888804606776180419366801137325069312197573900759286290796942650832205011112003928605859879552271480940361386628062877965085467815872978277411069998284327602354221568705749005804327921327787357452229475348267384264073619199113473796649478068658345996327172686362467453468518333603629641394527765584992854638117415727713888967049009487396703367024910026489731461969074571144030295660318187205557751044926925880963905851169648582408490604082457782210781057429761459447096854526996634013232689269946881306174342826984346495114521354057778116593077669458478721962634939372001085002472674131872467145492961747952871832004774598232715143439684231910238329146894110319009829536510406696167270028025690854558329265601490303275894411332809611800495774802559027444533363834680896366402638667260336301030859875255105652790468158155938458174941504689072146399826565498730447920999762382114911514139864355069956805316698545793844109662075866563148069626131968407597580878160280578581246318625614385424425454374717241101857916033693539811872436885667715107482716795523253906348347219557906517339898067868086962382859756946832579199003287386195961699194450429513638100286748487075072351207671346763597977139712129536161532217992685641323284877837460090981717147388456476471719241529954013965009660118682322018335029924403701910547329370249350780252802665997005362533039958022349940877890325020176755535576803679346751848663727318725975913264404280474674222960382406061402574923636208000609509256654764238726284497243259321904724790361504704525741930583075871964706595137927759082932335644783433854385650848992496442078587753005649348323909939071326582761912750292027993147946098791947130065331284915405530701780750885414039809754935217045217335381521269299467510480880652934214268133537454693083659720215458095246012358767858521764183338880855006519413695673903907169980188577689109669153146783259477661933829768156629177398960014105033209583704033177129691680897110810038553711666056571169839318489445496914534299312546362692236349331317895053779975746261555957099307200717839461896306118003639564137787895593790171081020214545126887361359278621782218813958079805759721672418155539355467456419611712970898737454579574256530133877995883283719643984306363131125870845702752173647869240713002919701688361584843023791086687813248366381372655586846248272836400673300482032168085338306003702315686581750258094778898755068471553483210906227817460251232233204455180580796132592722627293762791916243867027985789823897086891260522696135239261555318324443036071081260728125469105862038682539381645681680603604617035619507290009451107851372964995684371315861940470744685559075312390116063324067618793698238119756100034914375722380546585741175590209770085136123792316249019961065630160474614565142259225420156980670236810177985644007873915116005136808665636550517312949024903461306877115872577320971740683809088204381348977960302500691769493739054450276626703245815649805514082485021068455181607509448825721656587074697978247649195632095449227332628133364604445125068150183102820052384971670818513799872581779635294300839831043940197192464838648168208932192624059249403047260300345052464749441372745083602477054046820547086644726550399068907931866721434365077814503297430206847192552584073640166938252151851954955300520730993398885030594627528830455783788826746218045040366595918301256120470708508045450461200828048189962158485751653884651116470594024671103363953094454830960197695272956493278033431496140730441340325926378931751458752717980013393506370493375553256825716839823159690840024356970359809769272280588057631394077303457545990746416908831778003769838165448466221411208810653463517391112137780564972794054311378712306705169702679253432475787983683368733649859504481288496775838204444405720076511660291165945457177638045635590786155365072752432941856310989879145831843447706529211189746744192297533553569215106363771725603320015531821438382751603731819567261637573951521460098134862372560612949714015234850338726510279124888101035713590610592930992674428788032365170553248707775533606478329936800196305863263080856171305679003134426055848632128709957311425652065268597430595045863524894890461445267168270323300613059125699290476136764209101518883060836292568944947618416018336547302045728361173173089147232252876087160350537843992689054104101020010541550178253006517114739831753089392738113790165587224751090076647937169503281941286349355415453763479570834939502349753090378888744485733189679227214319414721142098949404719013931561144135864657562878210448553265711317204271975813513678772929538624606072898346131279994965395684377275752343949640795875268958457645440769932451726525235562633569539344480672030551797092867289189679648104114171803380976989876885286616639880738713181215662364503198447817612956905713190599773070497004331759332857126632026138764704457339211055281563988275982469726222071165068149937875491387011300494092150242649641445744145358261113628461525485447741493810774753254655339980037420342154994726667223995964951924416742591440457745565369125166354859818252790653830904194546005222084137393508296685672128631904022008205057998965654628892034834013456603075176363700986932662699787714019884038022951667847035439758511114520130742216483348544654556642598225787618600860232262267608602748224273818412083690026140956277026580307460208278028790292774095384329735120091416030414907985372400998226058880131987095304197601001178637061784098787974915389130272308626345819404723202840595168383358120757673189203803157245757986369005352827479877120847351275728600481957883328415060822265478204974606250226668151667873250132305727163632791696535336817279467103070452658324979186656310686668601600262879363079902136691768282315855046980928513056330021663012653703386302269145981684837637565870146327795303174497227806766411607711318148811348048735883174121097740889226850789606252738030902944538013396032064688074271104061580832151638592983331908707775002474789343163797858443880705620523610687641200990751525386213682752514972316402021660893304961219586130456717849685261887811640989250965746115291157984243084135091168374559238064534012881155668601607623378181332599015941467765311201350598907534803394984866824373795869667685876740892291680696597791853169610924842027855419063505925777033578301175184210468463224841591359648050842363057225182597670354994125785942660017201963491666757803653652166923948885853958625932689996524537880775549162552964407259508414490109457781722326143377181393996709789058890342320784820567239523870746953946640898440470952690310446570810914898193110359724894048752786538299863961627941849205238337922790428399156171696400993459404568900946770535668615235858826364137724402411152376850963009466380717164012806996861168219956362668239172364736903014458208721481025171570757065568744042025198399112367255120385681787662952483101254801764843835447126060859510888768851965550711614873923122144748799447133935845501045412387157586943302864774259105891369771575308709997332533288090479957733956949257185326346383268884199551397908555482650475216562537887113874565673347347726712295822657955959831931852996381277841665225969611304186976447700517560490656428088224861657267071345795274205146967890529044109967410049779778863693191227950447985805373247264824364950584423705142126855744437528123831959557265609747863680166894522713672312842423121148799639244567094532672714941161488130450528303470868540343090704309820254087392237967975145047330677000200159727426992044292622231323576277765569347252200379214459659631329649588672571430320128253563462585178907183157326781316980103988413052844617572708185815375485374662608787270378570551748691181131055032380804658611711258042631985182258534714176210703148353396018368932736757231051332750191703629119256367860164615755221856096290734000174433423139769006631749802412569360820932497147642666664402029988727794336014889434889002567072877227399154334667126152840473805161263279684021838316762339684371554070663653727975864062280057424734745960877864938277617388209697889509383018061835560301355083165168838253308242778924488881594875279884622097412397267212008661717806681459745553349150340876894357832255491752890085754659092365355313952128165447352519793389449597869905024590576470175100790992840328350319865673714211069885997471378810621912404861204626252360378037587179816460171048541597536183852449308767307090838688202845828440416197828828065521882162643950604347398481953086840908663450062246147451326999323766183182321592603204941506021655242071723506709486393048221896594450373481675533382374698294925138645046802342216025668699852220619465679562725977576120154475138879952452988672986620711812553780461415588013646499163972291892515548945973009321848880631575547234978723762033263873067665355969965315477086471486741578987166824232825689043172625488122399706991135147727382122564475539225842462614280328576184343639544996258380850604699603604680781203471126780667337180124838517239353107412288552782274111396652138654773632370629776113938792685325976470812769792827742059480271393178229854971422353093465519508785030008813243380057847822331402620454804128904009443312335069037240511235297074578282790104695792224075067103854099077262539438059065612995290645076191656013954772019741855093971773625201222371062365458157434889138418195733836763270016040529842003166681682566235069462799588723868373829282129554219078104744005589127121028227182212335435032356356158220658901897747467527766603957002205178766602660885278077473077385474167821854574452562322072520456621382004037693058697011490662525728863193139807520202833350572614546320995131241963237627674759386123050413391590392814593302994968274528999661829258662272421457891676419230890922425831400594363401017538327928726103142896732294790329457164304662392970999802521958723103537948581128380337688303870807771718546224347514404311751329893848764378994632319483460705612609787439382717974136226797663605646848217441367950723550369011405042810231821455325252845812610837476540511848031459830842339964365855580808383826965083263129834859502143528333856684465096227590755849003076913329026730026398963391432500604200492209520562834706902826606168246107343965483269255018602625637702631748172362818733036353992612926555388470105334056655232215308578157074618482875759912672428984546272815808211570032748026612969326874224296200093144953596958698836186739325582955390874633762948576193538443173890755868850191414697165303243623492299685980215159804324656239640183300665863971203891858522968209944835070594269492227356391949322216080161579239127150769765712054342383680116391347312101849679064695766951610983768027131493753085866310929826587391407931552082279352025861473580614891861339092488588405852449608211963836596135888259971624304213857019730821332242537482045826847703816541361701794228293971666652511300987025975245235605031595195782627130042342829917765909745954916531696659374749710344949440222953064327319323212673932389461130395617839208945333392103141912954534918141687126317895339652177351790488966638574848826090302372235711914046296977615787396207251173885262713129755068117303240511197321489089648622456249427374155700314756719151487064297212705652062489545269788615494166929410819646931539387171125455787479951480310380606391691404043794711108093272892700807029878269170401426268943158165411486336966395861089799244313260772097791502850363747446438954100567351192815363687609813695100630697723372915939305290087499827631799340671024087307129243101521204489900439085036480231331379332593179482492044482584188498009524395109952075519176302488879495260911977988569237157073663795129920707316679498411517118490820788797574315684851265868673467841474026346848859265101004776730182614253202456965521237309894679546263700892390186293437700207086914487947237568958533159897331456064587035914671438458469696282682346543818733815556904950835963428476673777670567305585134381909879521598224649714173154418833557229127951882673477966160007595253798788911603284877282257295277759591815283411554721994428142459877868674911344981047801418341092361482943824433516523395789717904567857375964711583521450893988214970207130911935874357346521429007364914823014442544881474704665568033623963195393747079167601978500279290606164966553570058718295493738787628905262670106228474275335414061646451448653658518787833074557832111242367489565544795543944994812345162049740586813764697151140607928483926777868804148942989625214619866393024174278422137245407304110634235185360247587210574709145822808959051509400432464573014277708444464196203934177846921919402216563587255483185397189708912641010682785807188003399136468972878427480006390710276573916539944857944295282398256583473974596821343529319072240412259101309858477356134506530058916981462330284006916245528541976887493071892654815023440038933791248120172044394246228406309387455615570482826840789245049434388429614863994829564734160527393434445497157850318955258358194835368180063819499023569923040466425584656327848472864450757863209592778347412618345443988966510414923880667876591638304925958631515045605102395433270621545982219945928080571309334539640839005396631687752945329565935404934178171207023428477333176870380822876844600372822242263437845906199196269978487953692708433838567518385528727980529039317944109313927290912219046456018074398843996847553776509464705240794082794545454618828732141589731939825256657534044353688395897733161847629676948737126194376842344558282604130377755113524391485498777265504561600545194628115784652035391189474040236760784774531747617476836641302350241938396395538825578608219826470098194300198446674417035141033348621618654831762870955099171689447562822712691174237436213522374614516653084092895750319806320603768689308722786476284234885881132596797665157815534201308665159723025832609460863131652167251038255635290747920020063870392119906932428392994241690435476477007799323932506922995203271828766680279444292653396163882404896611269063506200579392178536649807577678145666116028914411495415467063002113475383695455119707041241219077296792078253527387889599644474813865846427313788541847613341857112291527087583657821222064607415806947270569502218875025301025556303658935558423948884140317816900798587382079890116906504345147907742759147651152787542371145981917139090143694693716136015353244139915321304312496787052141177836634819658181814698772504983189033252857319945663005320396646754543709728505079953823437188675898854358750373201569190068833889135005972902489075701373146312453600280596872989954260158502323926839453181335924244478412335055674457191216612479648880845675503257248244671595502535362199307493365925647441075118820985119973364211551581006262191210284003759694425483802564581491368963272997390216680353608992010332202747689841877849412547903105496036529406647471173463851150078456550366239277247985270166134962414040469826425194421218132663931558572343559490539015056060128408099377774478347509674986133336033912607343572454849366679602909076349300483671852023562535467241677783305063309866299655240320194371701886215049919482628758261242083432812659677979575221374990364612087042041043371400398536844065376499556518373822668001940803125956447906652327733959180303035895715223536601333304092346485301533635093239896706620993004131567487974202980058936720839307276384515926423419641578568468099261502944941630916333354600460125508117857366236909873519780757335253548231900273956712410840208691963063742255068503444947168830283170342434529034180648052729182053697517077068521003145463843936663501941168972757545685854319623771878058500096563314740292771818284756003397390859570572217604630673854682074911770683483382001411850954002002346417146190899518861722484862019139153510518877414528215266328626015226783861845176151165145864601653385516249512305874738377525778132632871275258983262074292808934436621474335620742244539531277454279628663796153494063054540833459275904617787264425067869977918398995769903930164080907428723212683403841976250788764691071566623323796688935322087606073981884040002153099147050742357428528911399167346202594036850782524721309940711292655447156201232678535375331547398055557479725970432570208345086004650499610264396326599976838860632317888377409554947816455305150033789245815260436985384751630893240782206940678170504819335719589356165755677355302576810872551946031100136536866602982173632315808534370105761800710888465012353994751904397458167868919046419031946668273616804144237872905787743206045539166433235565782456521414365504749343472694503258472418558887586860367608259746926260858668425060806703370047414182345758921616419045275963875271812903296528652135611956754588737803477622490191677850980656979943794180561622003626306372413361772012581359062165398348969064180092609379461791093268256851078288770819871516914755369538538032649180560728813301907879255200537874065362414805852036905099395665689811829653463390485971911588781997249898955757700904597151185788889393563348748437928295463689083289608921597512167671784215340844611314578876872348293866674352815165471232915464252771282903254298115795549756229371092270383415997655052479666401221049016113920728605116969179457904916335084060468133175700060353284662396471848139799513567768751504857706588755490753665217356305848425577924681040577348120132335830112297115872238915909421523769657516389777928943657127962404101586672304168506767067139786656932552188232091562036758877484536641290872666027994027612922633026724842730934207074191847752851897990012906441373505474483739434452478433071614708308776356324476725301150612015101298833107607075482788729830483746790422257325177982374164145296341993521281981812365726170772976382691759017780997674216962916859291115389592571155273104150811935309542341686214851812239211613251344202028022164885157088115873441005200664023635072752292044076158153158935308173550684280168499168274793942867302635699318790812083476798330996563348852436474240470855675303034284310573460925366887840071624416774720162548925504074150472000125467744891077853892722264902406708271832879106173764966961858855771913684232086462812977734731319810390220441063238659323878476710944490942890786069990682919550890835375079812862262247777965719586078349679520104460792787302054643901871525285496922513455488067919349208676823232596127318798244236233052040071222961574049395908614221905343256133727798908973451621647504650359476070620038131490310845270886610310022246399004074189716034807283983231554814363920196481202887794019497183356116410520977509206689959165559266993138884802845539665787797805914079605125698172581530490047512997871091476926145098665360881218467676409478942834507331303666702902190138370100168650416309766685896440857391033731781857595791546991080464565299677770606130580096689570580494342503150872760601767908702222158755234444255538191998297193426253992142814950988672447068612501809565575254379886287088310279022169078413828060404388673499018304849665258702920205335311393251946996301019997935661161492128048197335837942028862399670100601416849563203862395345321746895317363943732086582737281582775342591444211625084225270974521788485512575932848980035595330048329093775008407163851372042811073008533180267208705352547643403494203533726693129444633943696756004932807946660075593300833856731179034997245664063923482368165892623225395826209964281048109583834255465140564721809986999398104801246891810553603838403332836117599182416517808043395858763900917298288961172092130915718611265480906333754111740583901858851160214070346369478637347880128787306753302978700735825726264549612046793211048750072471413453435952704150869057802282170228738201290758720766879174396030384417679991501441592309841238066667849375073720761526323930815739669876443620262134450430878799980390191362424885927598303271168969199434326249474053665470878382295629097990725580562049509917562025920324799749201807375978360472590326937357683950851639115449021863326922765757715127789495297850972191853750965511057666337820483064228214288198139471283015296552875305160068630705075240507304216401913873488989158772299008967995285426993468600477947183422503511988448338037618013059575318582002781496649104938718948540242000193148819585327946770094108532718510297425594908047500035325536685203893352693206966434103826595953199947402253896499254549176339495488420167443040192164921194125656573940686631890498592391944128404545839230905091374619941255929233387338916969314826857958709155728331829593834876809337322528799594159070872924111144025241296656022686485244564526147771512449641626382683806422517793074380061372137896654507286558533943613037123574186659212034455509758846503599852123826495432768988090395187520460295583778654161808753106197062403275159553003971058859227836219728634363515947396053967426171724992399602687541565152702402577855592306706695003497182404819838843916146885576327555575236599370708028558610247615496960488978605584954977796101068726051942954738374522816447336321821627284893018055147716307754506872557469871208629067244770266967491337711950639115286224644195967138744293203845909878294552276241089260879870693911864460513543692340380305891307630782990141653446136966389248209945505402504433271411919089961151649291529883239891619569801740497267161163264141264691604904360119238630126395223782237895138974784282839332829918842914284738157548475374233847462629271979585844180042944832165686787954146145810052899981449241418478696726868749766296568953103851993024355298074838187396392434608436493945574022384240278999963575113009009609467543089347949997240951439009572221019674314672479695624821257179562765023474152769839547270157649927656174551959458989838600982150359604929604015531887593606194718249957499817134864861893182617816476344172302997438405545645798930210506773129470541913765037823339339838745819433684202576029193514567523875479863203455303004903425314908654047048292358816576674756859432535510600397386793515393903974320237809030183332808914398641350762066553647876424260139166511142511586928654189105978735902953668997814876044072709216417785057653683922011342801803933409852769805751431061150161913737751782812437049293439612879179483605683602778786881383516802498521319726677800670203015405780826476917115484195348351943645181102868924770957106510011732569369283961827640422787011522784911518307814624168166540909813046735187843063107771941096656931718318761330956877447985726734888725089386267144758446837289912918839342596117797401449223394153700491452783165667287922899028878340141684641834085773067753544328665538461484628158826222368129097706839606203694108413987651516999418038989489427806228186915614988028696903668784286482289959055291181644080342863750651724699229280580931665045442744764210962981185362992587668277845248072127614389862572421688353211774239477235747337506284818649256365557251310679809526133142279797690549875705376878532546302572433246448178285412132507486619587972496873242691789514968526337515372989361407066857869575503881681198366337420112395329285125458557190657244968711071905268656373937892926340126567046346580415868229430057852585926544874681223711848779150952115591607004610411262457221458016771568832228989295179281696203527992070699578237138975756401777964047234135360259687271329924676189343952624628794124114067533157144593589082375739187960875423030515984940247412154539701159551258195615636725534868955104593781934376584970414598655209310596292904715946400547938916918936678487479415914608333141066800436631186710996162427345576139250126262553983378981825582540677162376927254820697386786031088325553551637496216421264276796744754619558727561111900439789309203410574058319080793371060371807123925165720899798193802929702488048359956866606347909762725591248306380558762689004520657641955613837381986009590790194680031835284088693128189156926450267953025764754374858061370480840988366333253686458679590820593680688773540895806049711076709058282009195171139457049488576656581881760824387081390900018303012043985808778149581797243518924027352857364024500934226964553610749679939432777504496580823977959720807093490607024529021855895585445413028370806599155783744808257481746719695984025598264556365843517587909571355239802273371846114818652746775892329655030035859894618252826259036468497148736646231738979688147726166046360642585611327662382442307183061327622850844246529880737758478878238759630701930812937140250945583609589147307862184742309941673744068644313560851648103276533350613156074127335443345664648295230478206693355031443889898063601222763177000416416977106509190348684903364827081816843107870158728266544353162093467428625491842473239490119815143670842742772613365194525582292583458015596894643797841585147738006393035791420435178332775320078851787481684515151077944873949548255763446205052879014455814048075171171235074588523234035603573285082184984070144881027888745022214144803173023014064346410602167133486626536363928559040834278186192687973983205038452126824318106590998164637099220987915527376367949285814995078030138280191347107180109403790599454398349540658754891018072740257692406024521028281096629756966080640783917247686991865499623162556934486227775999824886461429328047023092754714399429976844699334146860157749475366002265282930269511697015446585062426290818624198100642939066917484014940823720153575403577787604730611341927694918972226537079697225912054607754330542497834868474495412720666446741317064992113177319345531444380013928778245019374382034301923432104980916682467907495265254346391077980243484222721231957605654476304962708433235792604553090383611854883038224707027177850781765628610826472421738537665291005854705950103982052169162465965625169134156141468074507043632434142323924930235873113621269982153790734473041872455069705743051644765545508168122782536207095554952507529097315153157187599657943285656160082334440010719482565738793490314211000845338417731805277613496360156523009514559382057286240232989341266615026407613757303028425033504869191752577932642540170271114611718156991999141724207953801328896298615721766772993350958759964013225557786612700899993749715093850860565650518951117050115391328621958965267562199669813158355682681309205457617403179468293316343379143368945773934842460677402562485013496215993427248282339034764458617520298862502180348533015954177311137536078771374037132636870323381132479665615142163995059788436933110970626808332568950900974135774900137675297602658987094277658859317799727644545249536146808298615014971355912428083098550280158602393566929824613228014877305021909215464044142374310098294046000842724116132554897145630683224466390724484445984076710171095861133408908739094779044540594037150619646340085188680540359049707802652851366490649669357764432892539555572571960828941226194387346290668959689088553528250008971857420714986985553619685008723984171789100989727805293769360921733039593824702819664475697802500806907968998600642500253546553150721646813879337076474621817084714766987807011599131627208941310056814562348060811113175400701213572483741194134456440230319770544692747245913838286638662817748660642356584531178946380847484208292788886266526416988446992254567860020230297465760996932184610683468989509764482689241273593037434938653134714964518427134928085445742728535655812961458583372174172785006848723749967706308832388369759629656463669501379351407750071961358501570768725264461983129148093525632406625303419139366623252696700271979442400913016919867790773261184835320126001227347050950754552370003395839815715864869238537341296152597160543216945273921482772580639521567545710795654633235706779193914040856059855752142742448591438425685201574562216873072974667917545668094089480670178550807871318028413018557305090274649366784165504225864336121967171930518452908036050134325374144393718584526204059979455496739528241681788907458205877658693626251510670533344626267780332789053591185436578833178147874961753424767048032448045378230954114964250070955589848425662198266345357278902170357813951691890450972866367815259431969204517427634714255535101978749172823776184317612811916620954826307118685203988741843196828449720305559997973667104152701156600558359943119444303355208781431075362868477649927422270822059244341300943314565389921690614098118286589689456599065000658128213409424042001904051799432575539391579128703054417972759096656175430029552555023538601061818834719161439190569012795688414805797374438650762421016926590688641672637244903729083780120941855993472522218785621749727695046595863574344721411163091728337427932268198835879876830680678403553035312914468178221295782175518809415560765503760365599942004327396804091368616832568847582976883284718883682321622265116427024893531271279945096914965019213110073823406968462634564621471854532435397346763393554695557855541755399099240353882020481297891498095334370433808791767235604901946818633020647864716928675724147667702496724702384329533010243943488859368127744431256727701926803395788333630544779859648453430811779740535009863464582312307300676401698898209555182661757988209334162890914451531322109282644739056801146900726707673004033420067950213067613512089295524065711126520228832951999428274250348888273099399367908132928123141381672777605976534889184677787774807777218564330426411286339510263179453785287759662722298391058831908336032060929911198663890654190324700776012171965829675518895533147095204525801408562837911977918514151362342476542882985349162885500743873227026863654682576033150277087981165629710993854645596513473294149457254567346034262549183092389852309605130139447049963054834429410106111665513261471110917707879216954115609353868172981606831435148693358529299864872162172036906337026850952351475682393332113509479603833513088703526255159416209054236172927593238027214898689091609808577262997665867617506545633053736951074418132039737153793775965210825076452346521878863757149727626048107142687108196991618296098007317967275252980608072727482715219078887846531197322019255648765133167385959134280245025496919685682098088511362352162351852974802457452077659888355500749701713609901867911291472094093751195414886265945438206420527199277832649714472986730387956220958801684953537282831460622122334236498565131686185599212589080174768239329744047954880193360985790090079727024638597672350897826313097779291529457984720609490128753690606309588432793712089793732613022808536083170108087445614888824742585695780383604027688606445795265633828827424638522205493052458780071357358581244343888061559270498651791625271254343450015241128174327171858622408412030943654542761960387136962247686021374497444253411589487373401450866789476670891990429657655348303652607185414023967836524004825266978638873329601348122788370412751084329331073700178822411523701733944266420975153274688380548488301395267225389559137636140575788991518251108805915615296029831180934437281882699258292648380524806762233805355250919895761665824884199677265788313232989931526193871605717161726770129372870737699245575619303781085544113575424518579591200085254074446012100688940463588685486904259222539431403659613229572560894532040534417155323911469298657066898677276559793814519194717255523223145134711859590069194912924822463673506171081407563292839598760168173481668150395720624359070031173217723278533040619770858775072758831797398265077167322007656992432507458895938735176004725942038697531609482811182972969094524180840370587966283292057065545717035750082862711766681255845596094836845845612275280495204257623462264001872975617570910883038457371995591862742037441997097708358903311969387066974865917269154411843081447608819123783384574370391821268178681645403485223799677042730177354059935644620969688472593014907253618406775668874764827743342779004475578959691379523630001612738079441727114304409799632206453534929483477358897593338891842976271453833120436537879132821820941427674987179303697383338949589042056535886289741947985488864312625935264812359690052061087236858942360677474584244614873002164753430425857683323793333075678886354782547587186786608399637965943528254090232786050330702387511129190645540432433936180743626117395586059080033082504006671395853629542703766898059879448615152912609996799096653203568841102157822885851774238044970581271617567541045418867999886847957547758391042569813908659306365832360411629799930519004624030380769701518929016409938519731733376717002958917943443255473226946513011413030362536676120039842592610464183168545634776985109413806369559014339040828207031523272350821343520154770934528370883266358600062704291310754346016715799495071243179603749840288583378654136224091280362271479285709565391869575747096505368035906186075195542224372585130540564762761925751364313442454451792111418658321403435884130653065089917772396982687069978420299884204770603493651856551377687365456764096499539176983708874083227560885393639120471834985855921078164654019989361167413181709340739642376330007704082099870209764486196015750518500287957566915343440052479915527984495305365511207686864257945514760867584790800628161275506555375603789217015926432449359219121525007231925771112550940774783260644007161227015520049238832068288560244256841688956237870432712215163725786223496583291313660124864860606902907707624883468979528747401418713841023063140294039573674519237744199561227834201098462599653420838150377369995960122102944804342970268101587486839334351366896549065993286738905810838982858149289419010907312508200581861531623425313946487631232601036954610990197009043465280842403170480069226453186448142319484860801066602847917383238193528289877991353540466324330230559858821089838844205172665825316933971231782021773168904292579081673963345962072401977560428300102530691771910164702611929681521844079463410350726341377417443326818520001913556060971899870901011732230394777609804192405453087535566197579077282278446016570822542179338936139367829426960228833617865051083994109192595263749616354581252819299648835005678636832057596009545898407913975867577862264142734440432943152806186306918591978804245440352694297226449742764865596626755846568378831902551440421650953850675244958381525824557844138757025482794664087740126816994512957630299912558755578809954955269037709692676034136247290816381338202748135303420694592341438892273418012319116691886934065407070997226296217880094120118842333601097626312931510471656363504394942489133780537340809132131680747558261545026813592662307122599215848153544468389960112762057273827533041728595919221730663959890617534789788739539904348366572966144235390158838524784256998715844052390320490084815883338349068344561671988956605522718699686273163343820709855172440710945215982135813519110256220402949865565549333211178064260096723759888665769967503797618504827340853901808888360467102769302698429003353956649284381551930401271826421762346740362421025165730239134790407946720937450854004981784541566381594666354765453633237648798136271329341347302007847090633312907880899284114693198658924417956631575926315934934053212436296138523154054031971227566796605812611248643500211013537145789096095798921389249904177900853334245386226929073595343055262546598627118815291495412234664440644811669862371521953806548373497043514979281550421083740196765333014008306667910805709328643974368641629875253472319585986621274676735721038662990818122861930859596857711118026018646585671204663403627387216526561365059483634237464436033523490835686995923418540897787336174854286612671373838418243366373479573612511357246210380698089136772645531248957285229588754522933444846338524121825250317238650106080441925300431438050911203305853619147332693640870474056469129951729868982756345321499961855474686976095083400491013827478559916159948745268119905853188239852046468189512200692686248275208944630270867707140999651790184809297213704947512782458838388168448636207415988978045655045029878641422454086311239614002563219378583687034582660242710455308675495796500673681294045139328003647445516532872940476644643066465845518374298973166724232710030059418643702483676673747682846256803307256451065805655673671336880078215218878814039052170071077701389037641515546434555037857062642923699552974218893325266893702239430758140273780063544373897518476294926402140535431849035724522092397395777164644348883294247473409171840536114936372774258214609369767096506544636827830657169854260344449458750321563268254581119754948124569778174356174204172777873435291123635756347847492044504947610033658163404508907999021219717569018129840898420479157867752582314979295780897301566519213661167980142928629398610947267936359451332827078708924723853517041853201230334840730243688067044905021546296443960392733094983460014348615228589179327143235062785198177873422721691288935237618425988481099062790619333046597112044215576175630579285134313682639029948504418612313934776440094960981987461490715336800963365728841262469275076037710031913957866058209011853682538096982444601639249554490350484712188243913398283984487529411279681320195273936008746978679971280841826554669605764459743529851710654550466243358937319813635064930396796864751621793158344737197586975959569978720554692842288604630788181123873133906143177073007814561496332257143420568431249573666069112341980016860256123410114251105831673735235662566361650845923670250707810812229249548099565030788332239666608102178607185077947770912311987617236482020264874847490242378155464611078071395615394032193003062296771173824787771277431909597368009560775300438251600573149807629405041750434422212956419235307742786625496193152007709324922985843557131947916435007349042257066746988566347149938609516306043417076661278668809081355956917577810078857516860745999709669298827094486698530948985065935102801263367394274336809509408447406169981097911979725554759535391831191020553229213507683554057119250676798412006231632358002006338022572672279506642336197944640853561292792387383902043645291043839879024654142350434417043857265781637056524173894475414712200078246338121234453726796029729241466301218857034891595819977424292931119320208744503100712663655366462410907212167099660567303293300541552167204949921518958274355502094580597260290174038282242704380954463637228843778710505359673888643450466676864126803691042386920315469097428301141011180091065719022189338234486998314237004048824905470194019888698890792777209409645796901278859354141706017717239310010608737719080332690207940270618468892812521432000491009953695743839318617952015379657291352609497800661434507421580386252464113490607912083969836757550355511296007807277356471100051573524621605576853725986875501126628766744595347458202248674850894994405945757510160861302229193896370767656876932216260804770844883110537490011220247098835775599934390928456770691236604099610300599590381174178621836267172359103649061254796695209496273846235810247702439213004288860148731570203893275010892897630514023186886930565642238986656219494553445723706698874500309585166339671146934653222978051178046351833122994560010588627214962089644631381624585435040805219815970718635950552427960086109913288256875774404483017190708133548121953451248517730383215415858060073955749470596696549053851048032751300194316381045338505498275755681085048938892046214668863031885643194832511161036836568582537236348555287056577340250361178757152034325017762104668719600019890173948457278873012296131197090124740845410249034619368467381504584722276083940322380973599700573954165864353170441810203194752979247465042282024130786427587783252023057455633122348401363596255862396220656510396938586261154695229835553033393342145720950465996403978709768927624991730838999463608260176548178855427658455588768009121997093425563936284233993399054066204833499697661230522265468295103306892101765203236173017283033374651757287834737800361981238140136781755172010217146836711829338259720817909310881496357456668924972313579958156311514825731841987985632079945283492455788836762571359182564246448981777086130092037243063999779022981276490039906740233837582488802263083592057806690241951533072795759540034313113510658677507944340008884937484741483746752663080676148299580248265197844307789001820135595086196216697086470158187553469279510789404447748273151831952358095957017863063567714372234100837261818256206302625516276174999119122307502046980426697480056827178470590840869086765803466377593312893293764927119964723351642434696628678088525987314442058404387747473625727897291956325190090830026475246496925883783046154616152590472894232077400863366949287463824765463400073527614557593258355738435447082008282283863455093658168999636951451928438470505956334102522081943460717203973149130667397290213013955808267588809024437625119158218273305752036837939054768298446655250170650717808451080805458398309905656516841611268484838114461054253545336773967895765306037773636153616649367972425683310738060881642327745224247912368662367048585884854033237714631719709899784591098876188132457552049411907304024788202751665959982133355127231381479558053758360779394411106161582268856329102743094082425192603125760538818793286617914809341618925952614891038594672659891393187140947287025874156722822660492963658878967408214522410393776682116400554359233415226073095850198172113034134965907255839619935378461529431119419235111093114062437574445425917394330404164155237901013598374657310449596070961737167722696994622789076350576388707760003481597700859188826983002038718359963681695339253949327831809496587023581779603182727900785315608669720125542761125823808368824192610403099094593675832547999748762223511177589399129963240782922431507777975672173453116333198589578202612897033622425272318322595720274786254271786735689968537164190690654379583452474768221702438029740751801932540056296446983670639061743809900731542780705701802227685605104276685922317050771910606409604361785531288482896724219095174878085438525839055715867647201650981362234853911891140236415722708842669871043950349147626789819699319386387086426998520893108454131999086798519616415960481434339702570869207028809942573179025266828564926873670796034766765234143513827232474530185136711489942146874440892189734162476793229747704429883376085669248446444030079472295599712074257399775793874738352062855598036325607519255975487017317153339768037633952683302238917832073504322210993297079014071324516049207682973785562583860757745486150501871040475391057829601922308100294596913917387679269785376725414861423703940989548254238111622241141725107099230439171112496561805447255770350117315620076391050277270564445174799133344007032789513909797323165101880313341848572435977730484638279132739563317027942997741441261342023498545422898711141132362081860849105593695977049217112382922775172479327438321821541022853928246468184572137007637133841862566568081996480780116809469911317977762744314978137997227369192488518140041553547911751917074155090370227316264738836941271163524430489367015573609194462931891662643247695723958067005105772135752769743247337689118917572773173443296056710481268929083948552363165681805201994537920122867134146183174343832951212462668797932613142614081766854474528867826170649177207120682859623826376340350408688227080380969326151390019819531333788803154599066789736445003820230584678952253287751686826260347874620870022427974594697591606914707379154091704444089056734842210222671613054391909083983832567963385327254889103992690682703152092702512840891717217392107145086022129249311703849536784219685219882836210884813124751790950409477822596746359949638389848667713187655051376566954111423520445173265355871005556778148296506849595801683931633195099986223290587576851307339110484153519586698904834133144286103926860708382280799075232485376708305383917736234297846760602631399815929993851393629238736320717003952465140671427058913181985129965018215866827869004234212409808774330124711845251948095674755390038911043855593779917536132196373273650644158056436141424727532122478617420851994440619437653059386086533327137966821890976502575438172107689752138886990475246232749638534826144309412199986073194505036389983652078330172472621531272903899943731832600990773056213531087554254324755461639029009273588693802177752901309447663821162916996719789301283861814800610235372300204270800827458333568896535853524831637020129485387400221910601512255820410095847398544306581588708840045322430985757981404973851066780116384473212528685962450578594295925386951217718501574051301701617057648610881905165745462628965732976915526079002533338180484154622218384490846924317554113328191054521626866604836431716266536362152138682407844917904028954236568431651887569415883342040179438340973711056549994506825315893341574496840615178410014282489454896673925929456801182320858652751079582097550700947695823096627763098184483108809710674504376687902831844421578625397549861293516389201587409342133924267939340351665723670997425163950026720483982406187499310801841652311276932177728560399010395457920691256364806381757073174455656189124826927296166290589725649304860063443803954577727804288536478486326705586400958324285624223294833136028410104662128957822076933617179481714307603472147318593620652598521625119439246978237223018481418386305265271582086415173658128902263355191092726696751195059621402526071409085903429747779378909129677768874431189795713277069107366315598092705029753563818033734273714897705211713147626698229478468581048965189360800061910357810836562594019889223681015979677418260097187960447469717246953844602238288347960479182212787244131578685980992402987961638854226638732902902806756601367447721202311406634312546021439585602826583873516567032158343947564437185049529778735425118363453042238435184311384923784054255202501102883853983878872857769429206846210421001955594223514064513731116565048397979555100015866890782550035520516530166996823644747292523475153785326542456436853442847897362873141293775015243476533958160490967880527957275477951938829182193312519606894938675956333312566429464023937903268956642278883515270322228412275000267788994164198526346497699961100295170432484593106840786177271602362944056344990000456719312218957643825199980425981700495302723995588871570976150560787587454001428987055514170623696292398700356846998690189674657053204482534027193680564629438914352540038324132229235994109435525138219202450443501573845241248358411836844803865965218570395558653204190402500290264778097822764877540034558813009556029693054487084395569363733276479505652065279165497571996549901341344787911490751433673434946947284469914303112499844365679857047422933080059591200643695055290015405015399957886788930253709985452845153849968146019424153383300774060210393605881249966045532307968204582406269419809972975667881148834295977132519958759773357272027276909807691321514224087699140304218465593440249232277735407798490445262436137727104355175381395139360137083055603692959338151233728583111936626224349925750165395166832747522080445151445065617453145085192302047467978615096217796666669448073079035958799893768403593764530818457249543232098734272520659682746809334463064103696680883549448388587772221607697042116142506414310722148142930634841199899466853111673614789739941401897778874047981002985413875273140181881221156334231250918421138518839230181201979371193255624369786866154452735367583090727881927370861088610296093784356327600499497741746691910281677864840260705559281040273023937094827086988719541567354519123196486377851030337231693868659325864046986222459434713860875818555498210079956079098522721250345083496710576222148486537606656423016727229731755113902632495238280860257092914989434877670215148551352536169183619094992428241860038177402822999683331984613240354813528811154828437944710340400218033800836088320323125854015902466827065606487307979831530439703103761699489850393486444788651326135681883698356316648184902521051127738475406580735011566779516627686259266053203039078234841152738565625690689048705249241247389013580555156811878360510930902570158137419530287182425152739943777203810004775127260124783505666447425362394486352700016215623143547673289615628566436246466107561254335374754975559720523640278313967708569219619660576590386411849759177969635679291812509595490727781747021723861713979467655832510320615630860850368927817653845319279009349237860485171743031156622094325949390633508627349646297964848494540114574533042815435718171726811053770590641982630186577737700438000000373133557325733502792083750059363383587732696628836426174229390759005519290642830834267456315886478210657016998947596407901403093596121089187693736616882815823003852463143898529414234829361009786989438985476158215830726430459482342026097636896814016534338965212210943771542355876743716145289742407768534316463742315351857710089796746387335014814410020499284998900061223127964265530457040874953518233712980662387698119879363832861133727254229012349387003759912609092163065293923996594759930220666540276789874903229504132829500887636192653218029745194861833738322834860986576832720276047071940370997142560549345051921590287185745211650256131589001273783697347067997949596491684212426468668028758726998081113417663121561025673522997559817062791463695432381324102406409850771833885998170787824425266666871781628466848055496613636995161090552106621049357098676624304281102459292101160507943488565900588532179860701065878893137293943093472070752079408796079673857122145959279203354344613676936297033536131054582769163835330006563044633535077636309926287503389601697254592288172355933828675741367068893299299882921757519773625930773435482415145156024735730201580202124356956317036488128941458848948488431867237102700449932353087540357757046477040198881466091574020208670047122658956493065234485235004626649551487053300005347947536090782329107288103750121255066561351580363472462696184552933392423071128663655548658101021839144606393552390954825108598431829498609871622414925418004376161456560067208847887334918591920930750442059026912586181652654598017135846391323108559016232198026707323593829367107319614653740545476125005361529298955265711396083914896930776572864082559876541964947156585983218798753629945051683023447892926135856428365287337463227170166570408415438256332039607165490981294283786473606848072337311322263377338503945056745610223956477830312776643872741131160296266989008282634599107832841651845287513729851145838229455657529630149333715795700191719937452446602193816122380977126350038521350494924788465639986203813739550542998125635169696904446936351652543855073425460318206514107884790088567869632766999349115107189205413098738775868758706444642112210649548957767306774521888102762422883944344729649317266648293054196733190581733180052291145572482386493709897248721696081474389278992043786118018040475313386645795766420312171335884430407814029577058321001320898704461572386993278690691431387040824024428844010678631200354702016951898002829130740838361812130785855424195338928824735121834306654210798550427531129735102600952253419741834197920303134953516895217926264300387661780981566511422569791756440238568782326146523561368266632647299437027972535903064244684210071241844223312097211807892476762913408696846732618868703526634729011965719420966809289845573920032697675798098125119275664629074836362700024552545769673923814453345131893012720187388487940114036362972027204522164269649508253707928952392384241244833675778372601491816848104242449978418882760954764165770599120076326629278902736931560791387287178511777332347896439670307844898358625969308981433979675568000039230156417232430009044333276863141354037828676208156351512147071390836523456885146359413856397877311046553714281081190966109344769235373291959098283091881792415465263964786608604358758287823325628568696458092893132146590244017638253454610922779839852941265139600415979218511780962340389935183581828309187880000256265622567670438887475762511471331145641606587944833852881599237532862943457328606983935012212245521563918560048923297462163644278481375238546801770897339524120754585424101179925305072311241145630421200548886795011657111980602636892520781022943787782689436707147654847120690894141563489791632724898945333667421292611399922053105149146311938522386518058238602581527817187261022010748510205961812364648455614708759328290071703014306995974627715999963103219970610314072806982867547183686673144534724338304546554566422202239883474509385517728359647488104860560503729107068538884725681492717755649204630227338861531960395573630807819681216113006002877256756349059924954366561364846867299390546075144929676912068635199509291732775514512700291008974499290718822512001474695115199115005477275637401912564569153235693492057990537221819930246040842840581316893549829282462565299174074809019654366590041445654936128802437020822210909492217013542626321703826615705716944897554117152427977728451154952165989909717392140235180173819163117130004806383014531748676346533046269082739952141584417139586181297139058750026419628572755894193398813483431157336032717254034609816901392021242288215688092535637395434202434441767815982391116701842655299106463019925337653869572564690948675929765452527840000793976614416762124626284310593448339819479021667131132615094239439151659690898925190993856092457143973345985355411202433879590044199528198982663818848985276613236278241483012613742060852922247202172668428851459426604648493232342843035994135260097098149721956965685349314369980646589554628472285057689870935391618090124113725780713451244126574391280474256130940139183311587892478018698906595635277811120300946405830534505841407277391041647059953621261371799539255424653199212600733926283589735968824342293533127530183189335246352034979027432946416285584249113695426132302827743595004258791934623899504260816950484270617334264731669729654542669740463846789579867749792465240206673325931438400753290884724560291992664626072289363065435666180139223317370029905607107436516425274913404616743241755485300133004265216342916848537380245320318216804913450558538784253934990137207589876595762524560960906654823873066329601019845565891740188008953865506832837138369406696443253803589903514135955404243809258865799816101476435345903186582271801579320648008900028718216751203255534051132471177428165064799062930574215874689241405706296702355760300009885111024710506289532839955540276528083965742991375438451932360898448440872976023582631289454847555286010880246345486259276861726338316926351093306943919653416862070854179672263351128468625551964524792443190409763046810852644261383919105321973629072566457410571948305975241353778400643663135132969951924427134544569978715431855094256014542110697684758258221587582901435325299978328418197732719106102753895125133834863597041076933255737842869029781484547402595321549009994767804184961541273571789702249006003445226083669206433826393779734315329240474627607176601626924840521806538570739531596546671948119625046979539592210893390402063732909725620609517475777994553451512043160320483691148500781119981932563797287517342221701070421561548883762209449731373359023683695199012958609068193811058587757945089123659738446001560983428535051032729538290305976171600733629227726853198078558100139135124164120393087643407922978113415369220821592331485627501198338294081838609944531552073306153693519402178633657008196860532886556440541538248339419431199738321594841245979900225273038211310811258495611834584374008356552566936854590094836604671507973648150248978790407711164148864808273294325212329128660377177038014567839180241962937834043716117913556095411710030457231530950361689285877669850954861921144223180966359334308322730687370214425090570879434723384514187457663752950251203515961320647615761253204859481429527943991407431906580750042341805793133214258698566718666531573289742550692433613111961208439354213708982244802511640185141391792090584102012298214069332682220615354714053589383651476006482551905510418895700909186941159759420848326169625041006985848394803022376554537231203919141591665923435327401553874994389397750065418259413365641409812692493804559387729232306544180403773812695258913442109997813811147097136750094273743179139946435357897048990885087808765407800742982969535495078143850700078788996677209828843614604698200050465010511371741252260958988027178127681619577856625055843855434971591441897904679419086357422270341490390096665340134161100663009431302760779886609536646165545590845300068957120029665053490146064676197728020120020148606100017407921854445845718270994548495375995571783620423879617433804340286115792272684406276999360113391438851416176050825887562495149921280169490504963585404699352561865164733404343270262273321006442039435200531609990139730251196885583119382229719334169606812492111366394284685040654214044484162592814659756145235348735815856081522642423820641017728711476492956093495526190158990135198219741212301871387612262700115587518647791466631914647507815582095977310091130830739646103943195626937853146244151366678784185982101842595586958389595404202228809220822128649960289895552018582183669489107865448066806438881404597720761513348935005894526514266561375496874696459603664440043569400588822254071428136365673907761257445399350136377254536899262771655190229160674283672472734365706951098384886484932994982084778691001855408627043187903809616748520966126963183679076594288252180426219026835034684959550545642650833293775922400096764313085652690219837264464752633816107388406982868175777837528264394258407417366259320735988495866241041220535775035286680962819166732293119437727220863073429832754135289080220171071120962950831459241185665337228869917076095673446767914147212049938188767722845986469079803966727120818232224175753885457583544501801276986203493005510813856213384280171217313385480262340059665273470953059598672725039936059290912236178329945007906735300122647147991644704387696519826586508921879596672602430840460165809081547274629829399573530871998733874210972906498547033520299428965053078062257754649078605974112153374631477466913131806351003792699971904008737988890010130347692758144235853219783902689818291049902576627192496200991801590700460053263913761848985881793903994551264447781063741653472225849179083630930936376107499249952839070634457572270131844686682648139133930688362039050871224560232056678212906372130007179483077899757302250689015764936576245614435230735316402689853205041187726883677396651300069927792719653554433818542298871245745347354867096138503206623398614509023805655516068801106200516903306847893703144336085037487331205148718572191325125163015537023159664406929364308267795778484726700222922763715709942600141075628485184655773594352545495622850684874883777184671815261978657541748507688504582196144854789030029522572528949881997042627329068144818178787017088970794864424900025473568179683973521473903531541329640428669249786733203802407487980120762163641169766444076814099302721469934349617794208177911547495277026153009364223750171394823109758385547249904171778179186093247617937134574821218964672154034268968083030123788923177668397603457305145415238430496970942944861404686691722931803886269538727797362998987428609683021095472541952431179163853159973945549123739958253866943537190185550958959604546323780617903508643927335070748133438540921575837632835159628878992424425702119957692281979932719655722436919538685174507151741728787299561431873980910003829787328229967785284821327509460547321720486832812598993237680501147234579838549649078908942387325577073047315323268964971797280944666319306670687762380311247837459343781109676359960186328965185721602898659590469884594274833948569380791303250536772938972745944118054059931876734804506546693184242438006864099398474855473645787247155534404316250193977317303772026009052329106316622549188419051370380046837106079099585599171788607905340372105196408111057128809481102570524214919770107119840730412272664323721648905466276076147674907636711287274158906694732798649242478500937178109355711992234007046348887842315939506508266911288922908194344368293141206016811922017764413021351149320803656092231350372662252319832199353742960907370598567260067818970998056182710238640523839067717101733715147668282443716402408884504926090519832246030726126675173284443790907130624665672628726577719543766090644254689751171060731928676779604779528242140729676833224044599843089211711846538499873255410571687084936976857641991262975135695819810394823427944209267292707661417052252047214188333190100239149086402693880966788495193917752596263288501090788190476065688721541740159598073589692598268486710531710971401025625601028757037507701997555485337159725588062823854004312200666566829682427448907221633956179559160205898133415402303863048160537581726911382157978895293827067509138231024488109207708457303108511600516883111044921525063282316432513776848654073516092968598875426210669723213928394407775685400490496349682551152631799680928726279054101676551665107299628403342860798876698568117758798679514757774691744752607849471174466716479301690649061134533583285195770703051242298391611839519528861193190003783746273785682702736353529562029864767192039604012429885451565103515775222691943051414893833689433916937218793631333915472362994707257084671539101523861881680577162390743439920387958441037426418983256407895773853801768084006563446634136620528924862612162353376527249109394110862240236422671438384041441982952311791017663795147182856611239712164863231532095054161222351975518698412422989861711845638570378698282494048324371448271227191680374805775320075103507788174613607881357304032242493934065309411050129923192319092463982902501978161027369444399956078117269005728335792645827207440430778273312908869696874344465803444610356826048952010288842625816520531113761476559966380644935320708704560255032415321668963515755529463868341031391824424040836797263175581524926664080286692611534958365835767885054428659195123854097542907325788901428614398650788590085072970145726287034586334363255808620685424398123191838305926048123397324639058744827562041433287495401407670171666725208489734918366134087192343119924052407050559472839617449263907888795671673325701865907812635514579496737540227555619396891892068500087722058703387018777895376269553600460016145416204643553801363111585630792409309806006832558546819916563435051837555541421922259632218014843645699129046807782086922409168908182776277992088002766984190981385468029534922767606628184884587511827770407246373461435626380205877228437996656148661786165871924966530647398229368977965375195303954623664090975918643514728789999192330109871899953631674017123354763242865938641520331039025545038302588852023776727030077964064552016701958176485026754353669576720422953136149996386485765083434071580356954561661202071914861641461020720296369920566612649237456492257718127657394253762249815294811478400350924550500747648685025512363883999078270125509355905073686576712127643416909093237502575791739072000624423744109515749724199410495689280016559334659282381701312464829300548091377160368659029026220656784851754571404402035617840318879196245050897956109116887090586310998690224884026743075577594633974930188577754226544959564415463915880924319423096901072395048865641315897033566165072768213864304833721514150205517598356639869768094282947482824579505863821044885205895141247278235795049283813836355182613451909202465123577526523565444704477092604983620742389158608299846539962134532714172404858226367877776894318488558108827228743665512515605240287353395035559012582932885349407232313750820740936256092566104778188706858135810606598664855864216403961593225399079822961625200465460735967651781389250144303440471365187313126979416579737169479296312577982256603555517945968366840748354366336855530450539841256511953399160572437912694427039077729580572532715763371490707297448697764400876922458649837771279079001899824025311167854662777323825259247674788918519681277420023026919045451051624444978702900506458993894872204427153794122390198489338959341904237341773763175320875773343764429181330976764553412144306926404911652045016627399213329748985978443889513046326448884611834693556523614961929831574810357350203382179354042606580679139431596267441509904787678939924264211952791000619091791784479776615908598405962394632229764710167848993203316237626294903218517325866218368407622960477334435866436888215498478887930761904173901910393484504553936902514246099362879519003573609659066305139710914128915298471243440794624707772683063919203958352112300870941438797833652438310268368368610947191423002689183694602887767594941341337390261982563212525776297464288223274754866655301761301386396028946481731084312963093825493289688940709356547686876924193806917217687458216712221074967718130966881452964597032453079974347338647585738561370296285284371644465673888243634033872251710162359599398358440493112388415234074883882429200390271364482913539769584792910270448446669913170230315905630107223180168035212286343878464491996259677969194532446125963370040329987677355273788191580359261860218440648729849844777522101530024260284154468959775225872191582077919668992207907296741655871641669635770542943021231196600343788745117927716237226068471968881507025653410874082663156060091163726322264609360888197723262574532843727224137471675009693331645964076476168510864737111693719486246921996111783477021427190050231700559999070646297999460028271214277993491290662090576826460116565149101623846910124302291686496626166470594731121122241882385699115137759019878007081265828439549189066596268898204656817640342098414335845430852229465468948770664077981170738434287855869976220077643059969814172165891799390403948965924767634234244569835086850543492430652477395319576349787662691568425555598812726511099959543438271819194606938199005468402251084162943156830898956790862203039866399414793752932598113193768489881638176965667736926154659810106278017539874032695438903149625074231923015085521924419803849714826946601580574350295066691063669220969901722255672843677282505670029444798167460162007313949295069319594378370572371279200824509401183292475984172080900848553095272037925145317666106397600210946218641776582327416408254323823645701467706717135369916315676303850748602732939767175955174985621232056747713490123786698890343971421263038011739587128894612905373871100046496119516798086237424801764052300813117439404696602996191548017600644289573595793265131926967942547414241620782764395340175155248974741256395997189560704506082416301323698892033162060874962066927047916459964385037577626801629456878464912481446003238005434593995980556574088618628751878852184948991883674478911475113125834460689756194881605258746726528090990822085667452314109015015461351892341471455057398480210885548699907178035445175293500846990687093306378104877362472256081057038343086968303572192743051168113179265591027292893491290503000092214990931658038393102216425139910177277188402150066370177997006937640390767703795468200111009865068631727037935007248604530285936251489907977803962095364480135700258951821132622763306831895550506522652456025536478200273092196008613416150274080351633228483408652553666684470019693822853811132004866726270533396493821788482690105732839881892991421591579341157275957404435336891219663947594777799690018752638788083725549289913510328897868694664517651057601403081861634039941447202844285232937805989550148870735821237905351893002284056508468709666993212051997106450626701192878462733680112449673565956773933320085493065482137395530407188791516296017857163899968073211145646553358898354678206039516932787074817925201571134778108530783000457688334787665435128943439147673089715548639548580184178803338169146670800381258630645392675164706929364233364778937853819750725034537818783536992855754569677059501282649795530217020463124974407616800067173483048438087347208327125551446831795456990429146780862863314489817306817969828328079824588379606413233903099736438234005011079975943594515354239999482554581266932050876020718408310924405874542810881152574056283054905466685321905533201122453938116142704800546392609512575624282246430614551804775030560198222221000607116845573090616609619704084381617222572127468944274029067167206116789034470939230685217973203083228608538779460020920550869329884784821282447938758458213471756491213324454013313295461608729078178036656559470051004051512366731784952824339286522196634377740143848671879767087512247568563516146861971384540452941651564389309391797625740904963753587317984073286497448170411879298303209050910128509451976317173092051384682707877981353901801867038316641257399170541863574514012913878152628377235181189392304831350290057151514981657465450231853241283336901172372809085893254833740850179520317038387729246574380091545019433143432521808691279115112010834611942179205179225137769428658856645847434874842416934111924760865916470642273252690958888682224981033633874239248798104482736496740308956225343654191444807223430769189957720597974575721870859119714975750345306574320797232796738300980757333076476847020516095152423771294291040770322030311147055509512483031086078067357659124994591659358195443521858424021382024539392968876268924884353190696698440310448925961314309779622302393512217648416761988565991534449376548812438692475368385643385778197422907265423384560210501596673080117281595430615608752260653941774100172832495083018750202680251103703389212778682889199136131789683766982883371205994349929171304448048379742814343784996554522332250751699827538539320430818144465260590271030283957340309568002927034289914207246064843163120695220192447725339872745475512778881236569006027554202388973718439668885911017284771133414827683664066712998700189424275825228125757077016473174275884242264705914758436693587573834506708929813041440287052745033852771481728919896898905525875912270238847249557216944120107047686768038541025042241011434378838607443308676331383124700770009404617787639396479519683119921113540913085629716404287475282241714811914942287109216630961828153625613429552221361630389543444694812030557361475124325303995237276487850521816751226044509963781067491885109165427677540498712827449911041249270266727235309920596784695748262603986433867258640380698339336901210215223891159175616210559930869527802402380384457800352955905462304014606455688410131378142575184320837540598883157828256071843766567294479987730304848457711113965591303227598705921921329710649529635355878678401415637076361642251557800986988905820467670143349959685193964147696870920121610774217106887524706421191772104355823030390167533059001073241639572890564990259202898662965229028980874919558247203756216302420890916212499624095924575101107365188086875971162771260989464146387975790377219218137031942551060881851479150512356249922004260357951029769484003620731427068414080890651929929137828491893056294684404015982770312674160799148580063231203160311706553063339967620692123628049091660022779386519246995409751329908028821890696187608602346006396008290647488711146453241545593156447738884223736216814311087161712458796952335952593034387561445039410096299439248146055656135587474975274949199287817239532086839439170969760269296686836042705759496265167707483356306750931321600081820220214144570894470361658025166213259070173009657235624093940194643304082383578555000504460326807054651145222473583055225639120292706162668557833730426338924912593496640370633830017906463923693892247065848436419454978635661052871220214397114737428508052238247119599479939699443129792518674090538546473579046334486938302749322989394548320755542241276995609530921425154963468304269715442085082924335704710015608999027204429121441835909526788703649334522346082618431981379672872310804306898005208746096930890332663013779773159064790028665547655740896117059605631110865148592127764384528226615053084702480345410238701397949864467287658596817396375840168690442498627644208649524131128986801365412544029011104325133746613139590815866526404215311674457426994902142062302282242912783552897828495149804921943407994501324641012305093544640472782018305475820246398850548322458318755910940821435188228210568331116489331834796076997629657238105991844042581239033355135560744568937645182576668249275734077984726336670459315848883160997865476186608729530301990004858368177595098374366245925106274755928212830826791245324820642136863426960519667455121126822034932017411565082202898312459021138069083406723118726038749781395090473220425351001495801969630445372643591514993137721016516172301532944339333102324318806733206061026540007352664585854242637231891354740139147367813356200771087866115163019930553992624684966703938682250201178227204103733515996150756708682729126256676343874555915077698788128460041816653872129001260525142015967868835456683916073716592705499651169745803342221875799367688704964532074456647087604565531846794098334071127308776108209367187979482413520080070710176270924611983945374211869799096871573769782090748051749481102556816938856743012293066847917205986742536261671942068692260190154738075972812890356149195517697261009220391913978537583337369468062421703872245137980253933424630128852458187214593320521617740319570809430317750284483189659147387242489229637065764715362830527035039248475201642289296499512763167489096922141997184372998534885339012579849172313332246333880949976209847702389427812398870230759483479929944015401102677085890649862768671800103472928686876855204886609660171227781756890306764602830021847231858997807628552257374529642215783161302459784921074713458403214836144390182850589045121465832634833041112113537182716688418062868960006580092492433292948180547417190627540905375913493197035424233657469421605221125761869947549156074448168416804382853532483145205130220111795382452651759812922158565582950213520678968305710372004982664646399605784556698968228999690288428671842142118803454715841799241557794883371900871146948081673380404639409585872817643664273620428183089712740859077255933772949411417535136292782395121892360172856146206726155192676651995661291180225713896694007232499058988255818348846951380782623118194497303847787375714080209988199459783424771761145789110991215592358997255463821188716586313152209526354368363676678250282541042930850918131454654514814406318239595107955886824437417377332597693341542690412827992898619772871481043246644179235958062100204262613613980927518247908136880872070473803817568637479950808073194780877932491473699067855694360430697285717348865759567215727037342020664225547295188759802513666574298104820598212410255368161602095599368000444113647220351526568600501474995671261471403021568624998936898931628987222301577261915308251003272761444504309377998327238663311932521457080337367096184479807341443219852297761493889334942035737564919786829947735769184388429255083045847536505483282679566289180663802817264122751012124401668311602015234971412630142552469951424806194651580334016938781265614478527362973538140323137176688791965777243867471684623575104189913655216175792820362815728865207548764558578922569922147136341583595100745209472022373989700613790255228660467929055404299559857198404848778821974042813207645099001497162358126837540849472788810470387928021710461323715177942218532357669136006011604143146354556156894058371955278484200989588986459503709799187258784706446228707289922619930257453124934920422949583130617485709812013778116249502257257999203273681668022694459955839890021143087393360085904571716167005805259900708290831767128046693429311582158932146350994951978572213074370654584916790019198118475441378932118683336145962690805741308419063171465095453114576346437455206178091182992468881115418472150368519833407415395230211504115277419145420230363467615397062189522300229173096116398006973728871962677242069306782565248900318134084223371706519561957304184364368031677205494061586049592126603752669381011602200094697470089571271288246329305890192090383824868484283139850190638509751882559538951718390509272023879396446859080242543320599564789302183391053429798826919098674583256716215296192652240967765690493662365730885962167611044970399017874133839846000144927659590270404139289653262198226235132717660338465457780835064502361027268201873624388012218007577421473293890696111212296434521596798253974530612944795768249456105587269316138713972901349504850725721233907622991019559725048203690001460144294013820028752964462118791603525879986594081010859882318932991883189898047332088731122105200741342067549166926901237093764974100272987197959805102163876760474131600441742641557009765136827975281466273410576123094436549277306521947302324206772944974350279997949300993161489031443672532820900237577590060624675653025251027797997255417171053917038135363016444719354258310682167007703311447209831317417272244326197588092356154825215077748224938070585368383593797425394961801180336698055009010281395759740723864048521660899291803664911564524494295092443524977456851795824967880591607464853551458080939099283939472159425689004598017356676446915827849368783274290428494241676344029940107410320351587315830823060615379873664628384716393578312556937680305505276044472312089442654833259592590121035242925870412723872116837256238498474012077476864605939155314121619074684143560531725059984481459940028833189919198267999248209151164108346094043112976007598139403619941811132445367728531933319989658126668343467933710907539523514077015397466460120477219121593832227732583350772843685885348121195311520700016319433224739085401820172165329802349581498599731539188787542805562876121427814989838284895677916778122031197169904052973737560769865151393219891822635648938057543404180204301697462450279053834857985333743703973285496435416263866518766027592388046319102926396771151577127248375649175694785982900258379762356778309134410768187235884272426565367264993608001308480981831812221790948320223433848096803743930518947898201516797264717502001304662682060960466459899770022343442288906494598033542552980382058011592232154485539535793274869042604606398632542685077481008596767945421294729168216463028438183483190260612964862667505721811231044078848638619739004353967020653371131661534514892080787763311719414791070851731657481522989811873434997269700671389888681363720962743322835578890564086176043110237177634309659520348734970745734877411547613374839926796509152596139212518528598908116942363338088366769357903576560149713616336231071788322245022088241804114658587472948286552374700290830020780647472023066776396810719110554010862222079757692288209069663813458092011706775744094735878698619067513138971048698157578503788321981687971410211855057594168328136039605264485161648597565551729425488381456528761118428045763960786508898806180606312449397968205885532560278146346167907353072355797163618142066686802461772104930410705004483765253384509418077709414849834763598991357848323707259689276834453975814635810267595689427192223947102399538604992883136686004190695524083491334694101717981969027193946526635289008033749654864965743954301013524189823020488084816262780115909744273255774472614217398432731671735793546611221047220942585415409497018379568534607069553371215878890782585263744216077465442290170885235402507406368253564878713684216713580503184747511947456900433921000200646718706810303405955776266353609179310871539386406115609944325100485433438677302315523587724649639462959849291102957008046205215748292837657048146140881619704124772562075908297029254857393693388907393627743227848625898150683032694401225228149875946906187086387559094566638691640684043154586836255832655220029084926017337062465351540148147861114575012475076274336982495825395113953792869817553026156752864676933018254014231622747990407126374756467184552182942258916654128074050868476625063078721494458606577540479704833388319095882441945012611900827368282925084619069833798493694722438900589083141384234447530294189822023143180290721634843681246868355298646595634374262537739303505721820660349879218268860764085422909013617521744234903842468053303175267480436142716054878048145867481685403770102374358927743452388045941999811818256749771500012751145477752459749113030900103536819017133491930233085877381839293464997601927391489329566431338900015867250860820478040626686342036209233790841680752584200209066195356259285447008877313056876070906528083082834681491795109248447412299993656729159375025310048785615168232845234710561252825714693029515218219125943593247821799765992554311716235667815518749217767487953314307767054789626681576117297584658874462552341993072206922673658508593700140500209943009295548974691679338353882003665368427444334992581656739725957691615431857253912350197927988887504923083638730481013943618355070737775496496707362639613103459961005400544698179645918270152670476793517068892421715644993276443840798898596753460929074117138018482648161652005917897103058017242415396383747864227571447831437969738257776770476421721534464549289228476195080446609190392255698230893983719995615406963567738708494256916584599595589120640851960238719850497188790384080686992777817948471132172496835676756888980666985509728876399927483528063164228762029465327099894502519037198019261778063414518167919353875496102662633296561899827246962114576681707668877307624079134994498144388571626043243169522167968123014900557312711935552801493910713165355516090149416118763619861508030142156916534946530024083737155349996160822469020130106863430644604233698711338464168580504386672998596776185288780644402806849462418603690231167365053265031002732555015900262874036346032403177498170208541423888052426066276081020485559728231601287340168955460980441911894825908716091045128236965211824846304434268418041256232827003436384895075415734963660278536836948809044244975240838537254622132238809044598383163913913214928256898860799947779638151640481411458850911171186033614477975541608978751572125748676053509032815259432364864929115209440829737565818567237298001988523454517257058016047657940982084024624989870662195902627808426546533913940672397670358945110618978406393823517039731409986600015385421959821795479538370819281955097424653313598215081636839904449454829075564659072053723849164092839529038268583636826581963164777709097622537416323800140524466657762327462015155576786867871839153085575647491433718961217302941621767391005765328788444486952379437940110395925172857160125733330470844299504524564725396038073826946793170730307188235473169675977868592631507873261562032885857803257513928742960616492501700830269798180767881435144368556268543133022852687288442547715911056633531844308265209141785716176088539455294047512259710579144524962360827502776749275239795028044347329948463130967301566267324681080754803736746222843164575384558773072000871720409317582154607026387643908273502355489702601961825715792926347577876528899595721032800287149038547152322120789028127980029492904064287546178815890418665106355601877937867361072880357603796865598826729976381970828705745254596563302836173244807401819921334052936373417445831571823926452199913299668579333198985948572203169592660660549383615290386519843115521558319412895155770849335542237901728557998365938493348847721856744528766642358438273020183461127127273164711225667242210617303683288151340170138904431892546689880506348671864096439388363792734947386677991241568459672582515112080232295117965473844014691325707016682213096663116921859409412723079153015148160236242288650363742886348600009715224765181782733495254906137144425821060352965264299724702086205289528619888893803771464721256103995325801672908671643067752566813725153092399150593302543421884081187029257983987816352868716466669483215967683937113581778443558072603608876265894496401541511118125790215528591304023736927321888635974008354565533411478920424460560779400435199085497487816004608438650830419833546323717126444775389193789379519411403362844908474011939718712391408372133706110083819872493961953097475692632656682972848047028863730851620314555610364349141820558799210746091915297154523261331441475599151337195689377297838955908302225338728508816692510958148521083843896005054984013240376096435075407185382257128811231831882210667857778458134074762064152283731419175336567241073811105720965170075337887997562067461522668263202299104837508284577628269882843801726302555280859540613771075782571183990122018534394717944417829785875783283097094644737176012844557226765372752055474247598575605197379871651146477347078365823158314048537605658109916848466283781029076431985245351966057069828486291873589610394028529574565949493033362760314715760417756522284700215646880913025499009155699870866491062252308931924590913003983534075839527366096815603039319976150257801767193181501514764850826313477620425636693911052779121811778847798330724944192316376738520303408563862970590657327737212310951991565359979393294932340150470722606684257348656547739372911575356064121867330332477846268547839037703327336813043295034287968236352186685465647673724196428500816409207034939364551573768409916094299145227941175136496481328129649563599886276101087350444938994718559770166844888945737794263912953876973954176032652463003989490298520317549941660119750651776718542684188688351220911182452813873906798088668288602606794499720767338495568825712603899423710305207644206535142374520021719707308528869318814839100528026021240456798350016366078702977034428513433276630527411092829464997554634644975419739735587552865276164494331607795639944676130718632653288246531236830022645239175476189364109751313368678208403462257216250759570232949393694305248057069615206717939570876621242748851799935065491025439999403350499470638216437678144564846456634026676580306961044890949110512056353068440595432985768053974421668064448330465197167798361495448809219047497142902339996421846835272026774792147737383896002666323523240242067457271222259890611367839403850808989721030197366195332151802209624685520461720732244705646881685586582792858964690525965477738870639320305514401323610504776936375292365700500495768296854583458784604086438034618307665658579990288358241418287545138586754769323004883290461794166939574742756247094331651844292899821808402988554559213106774585527202543113053696504078170712275599695208618435536565749570691844179878001488918919501536471489934210673701744496019857361435817936331079405521840779680347406745790740253898698720544707852354388509452900506904451291727196699534905886093762551854923058191495254645111980557389601257110765289370120048229790755992697736630559946034815274446185865766259018397718077134753654709259540118644207300991866838195751829828258138584412740059866160788574184463037173706271563122509367155223586644580029132660943146503432904969677688418724327014028579212297576085209094196782019184292648209262750236462508304470993486877217304313734546083332465230997161153330137302266155837232449865016824599192658185720196901629010085002367066578536200376577372871317120172440809200246104035492856716945339501986255786484075570401207761302302507105042560778388748894448141190094726863001271818063953260617377321526410855997512164508694049637434376341722691302488398504199472546514158065218684281112560410212549502914519988220545198928617164791416688772764054032395553044772519768168106807144867910472647894896897854067990035246600568010062782993974523326209519385354531948496350459690112460200375753143891507060727811601478543147104684799709440293487066292358263814583468214821674457650588212307659107475623650552166655104494094078430929603541143526204547506536350088316074096187307704587199670529369057897090561236677888863273706036148143637893487528155617438300098933101230546095132888817022316020669438449218864245625050155593360071539233228190788308590832884297314932496390332693240495942636870798059333404593511737458881661721582159587527560432915040406648965543366047308527996477724592851087144455780243906740068617120317661162428416344837408441874388190815139232705301305838099116339440742991165059808657605839255532123747340590421903533042409952342246498477279244176468096270078349147605107125091928115779247520052049390871702094571380705896552027438116943890591182863587908012553039939176285254833247271921073791640211991755505942074833535525863309215654792396675683233950477096872065482166347151208693116665794859606791045231358540864723621085513129768744846074045621089680580925914404861666185619604071621382045011349475273372980574405052347229497466259753802319018215283111515430623656962391398088548316734619614599310299446398366514035096867149258856409307325510754215172773458174667981290494225373543107480220446267728751591569712127296068158534743325413723995006825519788986629666412177853651204091509706777688851147158551295830883773477137940458609274424144680564520792163383727829289196766137728262982948970142739214892294752572322899266264618765509494672001348355315961371708153698993087447950128968943880919531351062587463774460206936265099733953376102024445445042644452070572186323594871137484134923747780795303060830859461484464380917524539680244738102969696586864445536308163887496039453775885259935829242606713742612700414788548087937054280034522371256290713846861286845922315756843041189246940322174824980319142152718842081337929050420796175623029340009186968132117463026916892496588795975066694284728354059671100548020238542974598766912503084945207585832290748748454744640820921916480898312328536081743748441849477116674310524522534795687325227882361488455342328793693211289851631696838742936877655055380367631290027859171053188077776778613741629330602223673914650230681376213947666408951838013178616862768314024851116045608490668226784242714174701797827356832734411964735585482146684774954652707470744477226023827386892662062615753679341666008291232213538929569308255899230268002481549711802015553043893550748458950232703294947363786045247845023483745899117913233385808234359060736958340235502391016335153960302483326315238468157664431149195697018550477638006866105346132146149635727031599348194649990517169571544835079754303902722734730203565097935747865010623180962455226615505336301301330929301771241758268552909658054540168742557692286894111203956099572701887272060962744732357930777431006156203431454614861933645119384856084419938729728843200260581855980544865217177656167219009778366245902107626538353126303030393052527906483378042343551310380591585190792301810817269459843242026156052435697520872824353501957791038533153294109948770336301595693078557817343185905493346173942851171861460550818483610765006374796295816264814830213498902027883928174808749318817690084505068647391435613062807923927764671761983392490858841734341297810875833606292473793563328609861478337622086794918316950934650978047858073286329174614871630122005424149876694176640897290227911134310304676180550662884557097536732688629619217868622577888552875320134324643390132132449716690547955865948712582592429779708094984714417462147690832592818516634612829289519725585246178066543318730501051915180555728205395437460324008296957820106426231157671329001801461883997011837378121781648594771936729841217350211443699738273941032583835536568401301853029512333290000335962503560256656412650756672058737646029217440287902397441585977183170000871165275055006224224239440222446797997751658749187097826131138076269983963311851574714794265594266457756408656929019429225851663131766669298655454689500422147642050134391933236229644500610438922602058753916475305226601684762433316554807470849789822249792270494470985903118893811304723381534211120625185056514321805357555825604713277243373289855376559908760291930826830345087299932624377238574398999082385579377510544109104999614008999559083482319452505546503403567486037647233057868932388818150694407009825162637671006311579293580391701914446807787585714232574531093804811009628406618024625559471313098904790138934644896763853127023037956643508485637071924279064856281151056192823465527108672606290553111364925296404410502935436458176024958704389921629714956530159830866705636794821219483310411055077346477073114394030332291753188278759323702074408877187634949556823715664057258095391650669697967519555283801027938234948445012463993844746855906154217999813298278148767592041399708604711124663418047348191829518276309465878690389044254366831649031796619396617776309644464934124786037933688182822050141667805224305723342479111138317278491125413166796066184588425062280695965553497394738445355097882226504335299107755215631022509809433717726439355089398899542543373456091136615036104203620838529756635256226252228299386021602439550324377950833010449221054689470704401118243661303563606150349700969671074827856342348573049695442877885462132280654769562534879771122870124404779645475485538373500219165601346987875555308523187052268777117051373392888049578923499408390356229619733143392409561321731783614998892705358318372565436434550619443633286204964785101670661931127813315257686006410764237650156443006774831102340745174872584875036062203901812052598260711814801153493874435744621775309688447946742155278387028599434317821617313506152673096134962293165676026408825275384761640946553922640346570829149013272833630885124964503052504617482429474763754894755529920168430793964267730120625434467281045614809052697255950643791418352962603566054704601991630735812304617755567252909175410914105718280232852062558962777302952305683016767559796618507418794781715631762944810405447080482335007197711667765004050725880639356048739441030459720865683445633900015285837996519588476858722447154242136769303875338244896383562532294595627729143161767201429772957035695401390162256637379419010715362086652964760947959486556071361302664048434302768818318609350508608179499018261394382750913879863785574157807059151847367547038717964683873967301928761148945727392522243639262566990355286476137824979581259915100804369243931456923758126812099161296310015188770894727092549512017252471712096057632189803514705809440020332548308348870291285119332844796631037368445492998368184184931995392692560811112965655453185165966131613925368424858412250591882292959767974795751073315597640440545575932843575745072338038895918125141735039389037474315556331273953534057608493090643332269034820436287854391784334451179279511988767230319339914776235198142753341214234207945790599794630036974300963884790114507805455975775768380075892769157410831993093174274634254288627978161990282922799361911853939778555260285093452205807623167227042821135612379507106790557057606328977101270883479800851884070512982850268524708579885767194463828989173688852321192153279037356959045953600828960847682573504244873582571905584858194922976477081572809543964161589906858888060154786917040692916644840899214317007840494031232463450785528632803154130290736635714045100515516135128815997132091501598164302879960384192189665036471963354362708634805117774908166456150595619157193795220050138858596382405865702248119812647132715319055450698376905353896324739535110090331531274907273784151422328494009586941530731172441012934421752693042466482699103633213696772096816199868859887455690288144467647508558659117338851961017953509027651434364763940492201666581569895671503299563299009339499128871755926035287280430899921602193856177168826214960857984338325405311294906435379416195912388938614681134963745431796572357592679255934866627341974737933143580492881179222609942966470023306264728409635864231397775908070444789305237595764350792772137380424154674612656052172714567773631457458428268309181572148866823677012626735552530095383567187793202316252556054834092901917814022080607554276504297159332650683949803855549485065403556487572148531364698153576810066858978380228468694708009813962688024443503391822106526536371279131314229388481623928159033690140565540281562249708815593804677722659802403700880704706148209812992374833864306293969947362651513047979437096686305554653239872384704553796967179711481488746969793212854092570511964337271632652186035973676463463068169363488057056311080230602213597371334329908796056259333976145361520001687010917707035592544946494346901851622585093363229580000755882746559243842258793467486654509377288682974625764822488298369220588035832546849555876019388382603691575130221094883537374994029463444384468366633575250768135612475950915355730618544497094159876314438499461064680107021734190560674125022938703555532708176084939471223165489037932609344844667167576946653889349777701647185575147467190955857382587168605719020388594215563877419256228153509244364227605088337899475310201315607179924030312593558566231246372674794981716075378714190494397679513388798976167545177228760407872462502730149133612644960802039732949286975615682410529209100429800795978653953186730153435041930537352120667261979451721317270782465094102643910215948778167915193298554140108776017799442103466596681657704490437318874544951362590598042444035876619071757568321280294261222701243013500776999295273262675374430515687401523582465964330859479693939120264965201395922195243422830240113963427053688309779775556159969014172450433199644461974555445945614322210306369275206775972388939983796825673228522075202877582510668041537049850875124258735117038974699531550149454283057167514934057091178541676711232217495288475346967577155037920549092756103199418535389942297058988546337166826214736598917246859960052311010335687046233691621874801266079699012395307218116059457918567937912291043005061215307748503339535492079093463341271025483350200094178150470167981693748164544893802569695216544365095363530152157516367973644009253480308588213354756297835757110097461283034353909889389876182157991756960367260414952091855070225700509884759722049071495671570171361697307528193565443603841165327382084429813591425780140771903501290969883581946326598624205525632211606652449280517031573242306858386520462430449715098055141141079554206709764057388646996597155145457786871736113143742786018162949697320109529292279302158537016230022044186972524500582248941972290356734652700716927396472961851292551731055883965632736884701118942445422881740826894470210938738568626003051556663472733945683050485891536423370620167256645875924128715162478109568237449761058292456449003874242606095216894618738333419363298468597448225880405352608511496632983072007135684756995946740559058596232833002503674836983961518854251747578768094186714538259417007425141180077530214174036759744087850865689166937045003192966461043689547950218643158169572800834841749856076241534933747485949726924820727900388713404592958444149025996608438060681756003574968239127182379462793547401497300629753378139251499823818612721289992503432824339239899807363141537589713819378070722538959407268427549084245361727017134511846941239888708199539438364536894761134341854482482722000715459221690526672378182174149382862508013393621108204654079923364467215986906444828730523938796364611513343960047270694786428588444938211066202305065206037534318999372716967857351199118867043964393440495633087173226662950481085465584746016716140818488529959071600884806898578490190946371154918164726138859001020162460062083330970408217227644663784980320193789640765234636903201844200108396682626974930670790045077682381722267292149567435384755728731623354897497841559089149356135121166858114001816340981852091874212716816275699410596124753175670586069191105630226937427752717642861437370091448850045974031308528091803162541420457557919670139108545396177919592754733360085510434958801149477119859051012431881601677052179528116894290418769082294272974655069965345483877369179629428287062842575319026713414178437528630573709959795771656105964894806955498725997282234483316225153599788470540055821289502352531290500753118811508473079700697789853553479201964189833533185639104139517581977844889541702868468342987502298817575429543236306422216402129707724349711936442949799089695976608379264732320044677545446427922999138517283318815161578447930613654031751255668515855291834931771088671655066040845546260669367930191846752477843757991138066730853851156850604608311126791247976630275609801104271268280145302044988284064015957626366556663586430672904377219364824080756707501395633139444479227548153380460403995788355989924663429695530583069031541205334440967031138912310966962918533224920629238877383462240917693883075227091156454481966157615437071285097928317150782378069564571930171681923929232647009609576752200402928099360916346082256771376484835378509329405108770144228436682708004830179046919705465830343759019557766937378927859225271770126386093070270616736343050410883112508319262117391869599913053427379427977091881185839387777269051088651886881944503259398049777572763359677163624135654819793228105720324384611321685778230813344496365487070472614107515755833065284069309816593367955771775184559545185789501096498461695876953921658968786650242851326517447888816029129111959100885345480538826244005144561246508270717134748728915014579739282642526175652834972548018083860222764769654311619370142574548030631848679719817010235386310431767298151578632604700545361511505856155346305908351474892322498915527831882846436493598297194885610279629178613317628876619949635850035661249323871914410572902360717519188280844766198530551830183590490096366968195436438108034465153728734484959211774901581494843874624609557066717804089966881700143681794064045756007008416993081667623936703258375314039824923389103751235662976910046769970481452133677793478044843831076687469538803899283205568946869773041834930850594749975880220869959897843701796212149361212272186116745195815270848300785191044183592563432340905547972280203404375567211902510937264128064324987810115087664780779656622699183039867267599329183093839083685518137501739823350729993435615304471739891263437224859341001856878873330426633844999149578872833475814893643370270413716557769588515670326192018579565625788774877543436642844169153879696471338168856836847394921900344852414340742938128007498793334191228129072781194795465971035771932273832332597688552202584649900496188870244795763853772064493825443422671028362283959194124658544233251273455235167997021138632053309250093013317987091836641361925037468238494140544388612964030184412704034413344958516558719347658747956433730761896788028411625511598004897142956926923315801722485162028763742882057934347713041821091932268241843752839127382585679263549709125881265039125712856002470155004769880368737038263174753128124136246583206498529027832490958142812017195816343700197574951909594126240662311359487711850325061669950926052195091551835220811007813322378904116919797896972552848324853919845624865961721663656766332217525677380980024216246072194069651655991861380551198226175498271263337286765592691203257500808500205917029316991671553418263362470180401609757408491771264535336834678646763101002740136613565701242922605831980823408002348170533410773636898571206234684871494848793312941213496883594722026604301881848323661208544461583632918399417971552601548847249680233107046831880741524712961529618945199298465858873064732909109958888888171378704403900872297185527571501616298734269556428088151087888767703108134242761097204717597169411824986270315508228652570477597447937129603105200213365224227768777762144519474653656959654318280420277854159184435127179973082326364092677886283867632689796110814067121345109667306294268308677609377268255898665906789778922856421131035723113911482941300900977547353034534931857628529378894363838939507981852342019770626389070518559008967895666185737758216424698800069121741580254430399812789925746913758172070217850676251958164497450422971148896158914782330522935673094067150036130880931978002775708134794872537782890086528551319926107895534162250540661911194940037144773598053723866420783633953326611258394071481697953482821249110758952773260342595699024289335399703493442171937352819026936276343390935479655344912303189721640831486730580124938465616516822768296047556006347084183014087629852046022079626016692316824680736687131713286721801466184131041373996348200506697567318060924531262467648243959475881381652058799937042920432639307799616816087102697613512885644624982648586741201819012475683991871939403084103854875046760579771591802175303333848393085931218547150826059820287594857818631763505018345821218070643581383334734849764541015094489596551074606729757698046358226329472407881008847881262420033734498178753303156599983350992424388258033894638895524765947970772895377616442428601873466211844409502080506696837826555252837868811565092271932065234896728096137504587916962171540587819514905797001836822608341584050917192377779280002665648982343594214505268953455953218680777976011737688766076211115962211136757886199062233931150374369765878754814957533731896483612733239511493384424311684028097402405112707134546096886982820271605016640144622089451398449557647223692500848323415672148908573567972244858773229129472638662680772372731623849979509017916353729058233616074381005334870380345513970060073713922031935391259907837616713318763151310700689636031180742580250369310412553158562136578994868167779802102042975885062962040192018210584970852751397871166756994718149108703264855076658322347756784712771825104493420441355010616231379703472797988714175827635364625281900873091681660501228230032830583058771374873393566187805400285657181734764460791614435624876337251375829350112218075295750444759502027086878552403259915516351481705096223254545678974384507922964159259816752230825050407054818435851606894313238890810981840225193653659921318863034176494247289453572926393473564859302400930004534422529318977568176760996382302168738572513560776877279015746016964625170609281404540558871813256928948331523307131773698451469853645499281905782117573754032969342310990027041351834878780621391441977786201001363954864084935357020754607559192869348560430027805202195416184083839256738162623342322539656601286315175087451672228439075630840591859320582027121045258365037801345543912542206155676788291414166782297600428311025222505335861937215126468908377516781808300367045278392166461876474952688216414808880835652988288676206219102113810423632816741521016900774797040259700517848479232991708887125084261398627275816436943569730280743745270913882654813256177844489518031949458820833316441870693822088664484353226049444815788235801625969185087844945382739981349172551125908216106866209593146747847691787943448379764124619315046198127232091058764308290433832520355587953976696921570867907371995306570058692677973347584739648458514071946790785874984018319435107563767702411959087470930190832160543169995369500470782902457060005061005016367886865047716981380529701050670359507070127205675749815375395839610834021154537579770305862130977004577206718155805468416994306188494169884298353709743733499010504048916650129284642536645958820534101501927890059632717036070428871293661632820281865762087028296548721994405557672064547896414790457398137518758529922182422709184261910449080881112517838870668406998400960746592159484281001366673556426159155423281409801107480172743303825125715472521103327056695584387031173667480817039454648765859458821559869495543426619598992989465709013823140777738790335665056974942524512290684461636974033907690991578400981254005285279773151230880437486991425272861673284592031152995013767298999434004872887765872389272400937310788049966243926855418764664056480245025538752357292282519952731320723798252903747936155720831554778570556954395342053996464742098685109343682914022461383177027837460490071639360517243175693213407003540345455140478183561827485647488663914265679940268730900554361228823612677820304670828967297689945905804922109015956672936966273362944154086629403054726936124311971313256627643698763846973693779401910282507856394246422218660332338181992949755334648903097849716629370603084630914280129706203048255750295913530339114750664619576165023112310447525246360325134304816779003078484534270581334322167267883393214658280520155613625705745006237872178383177243195810617953992805202329038681085693019496373053225310766096679017933587145597327661802869538163252027149733649814270035410079349285688801768911066864083911130638400216240841707592301784600658767907543554853654179483759680172516301291655034800281579522996189021407975108000980284347193335336105332836209442655007349724463553763474152017264594960971426755158117562879523815431134519015318291665404717807782976443469343968516586500041324311936828097053595804005742686261080075636436460825886686148519018235994833205877247254015949559199901788294071765359839231449276318412388845798943696845495829907702987288168603434254899931278524366791420501832837707563628246478663824332264708239851275282719453003852785087991893380070274441593140526148507118678206137367804929114489578857157614414358118835791465190199480743691582121047488273358350721242092093547343114000794951841350415504262813225660939209340116067484384301652558630538629778402483278350682681387210014951490101998150006427956583865606455378004774644119959341011994847296462936373517182347830832149016898872966321846573886717507921732525517457795678827979250402141817768576198250046308994129909278460033563871100916291548232764916307027349849445355069511681012113920190251881880932812694205137606241423681998921557394536337785243891799729240184268588963725240562445440092621870051381886983065491518608673913704420565910491037783231588260043422083382380251929553736411702596196058130963812934613644637041124691421417650251899762459147731968488239024817472104014713162619776182840156394853772235077572986491084282928918791535926633677491022843803749823266121300353044621315223712447522250626230444587165453720606225968247788803508536782576374119805328095148295775738196314434397941172456329269886300436438739991914366246060795914673921626555150602297594176796782645788822952492549837047281594315150754206900705461340142071130264234774018206276390580145998533737366085899647931041661829188786366161488463297523683916836153145851877122124632910437872116216921896131172285890183382957346210595306035065071993989457799951939976316388626495705306230038491866745966343207240957725260419481578897208305470453700042814799921372593805391285941491835557990475719728664190850550610763371526818135613054039208096582320136451749046772114179356662615581952873208685827377430915302784547356948116298641269662464894217869861891691971866440346779541726438209660219737098220378249289878955824887056935381157304473219699322393965031745817909180321309783555160901082923403735004802865065291848568674635715802254052838388505129639220315131057946574919436053536820063112698945917836128221489182878552109245069891673238938342496597727704199169917232857074401276933977089914280522644452811112579493334506563095877106862487746392692073078948045276952979248030607165493550335759163884769392252328460129794969785814567558531968650477653494455368427116498470398082086288893903561652112301043457291679966430417870692654943554685584848589791457488193665605024688732589703287218972371973814417637187374917132055039891962634671446340191062603105680689402743292199672216793823705583554069860810142880857924518029021370318110944391231673176971746555240180211202789709018855838698843129525078089360603880943805969667723822554481640425947934924434291088397648308534971849711983013978374428981454246524359636028682011347945055589140784390137610407773475134957383064712209075835447880977354868499034501146443622458911274908692044476645943024636455832949521366761698058025910511610955188612065982390683324172819984351570828040015707724057091939222306575838074635123690323273892039625720402039571749867345578042230791743186791853404340475417339523876274881981833587792478854555775501920529532680627129347882728955338164249186361661545088384553792246385302017259857009942840178261729086534382013911846812566726439865494661319168062896111887436311785350752660479946250463965027365147432481988664208621832280667847525799432398994943297883720567792091629484455502613847837018125536455496514883243916775492595087354167150758407171398881420406147295510256866576933934656099260868361130858053880727426031296636376440429062222642060369223916870055600732121320393237483136066988742204332804172131036462930371263650570738552954934422590537109478628890587217292016710934758232126229488683308319378425416635959336434538023757430170433530976972186201349948174112907799341701612820081032686058969371185250205389053702495826676027255703301100545113078393169269349345105239075745219742959911451254323610283314104843419502980484615566198012133041720954353226443705380494313518877176172389398278642951452851269676712729757751800553700374835746750850664288402633562692802035175875929562645014881639311372841860368398069388230055611762285856971390661085056946100407227861051558438586426849659397244430313535877737022625205070066347510347622458037803678130981893935221315355638482671465143372599229425921902937554667907497208542108513367121228862791500291775742711806039937606789367582443237967717803141303426771745114657983657736880345815720084295928123480333623132933919337269131450224642656917281480247408865082759620657938891333124409610265400252786573249024591483791166672698739034940704067976640533213776755154868268839196315957912349209767833100143979686143606872712772372437418064129608962999458289422979743809311955594916559999058135427631808420478694640137102762705418043953871324659695468809853700340501549114878678240118605618587943840244160637299733161337016247194108872262591419478581556646605238516291968226659786291207543034999860030383786726572187135944967974686944776562327549678230912579520729950077029002240480420192787921267482417528386163671095239015817059339725721005889866362558793970267081644250354926690865531458211346072173100844826509827607194878823211113578235721403111288213370528468518776842655916098070689330566743101269753482144520349481477594287874580173543857799570990084638747884221593479918374380028346665642529692599444114206699723647101328329058374400561475618015842773769081181670860343491274260687768436609559600277074807990827053197640626403358818540302862557070885643579387503532732674409239599987303342695438709524119364792749970134460193472765161001217778409068779709104238014927598585428844353304335305942962377030669985220159477150157946533665600568514745265592188564452617359983866406486231589611583211519872143921243870204009128522453122995319620729315382678458073188161037439281188416491813136887789249399355639098802618441913913862759612438823303273710079722653920229026783383175729936697579254501583083169214319132556025110865568059116938752648414023375928652562409575524053452233252006246357299576368673048114953208240764043537672929617273897918841948319147369953293353952132629731542040948387346687876370897572998851542217346428473368164386769464223585434131347391109092016991853779263910325776214955317983521660817017602701230522939896790489121139364495099840845816974574192035398151413949494216450972999352021988440897747751557647064477345077953086112583046538328630792712167722057970133410839874756025609148063983281899411329928102202220796712312422873232500551451230753907036325992657118011315245036883112896825000370903735214884468960703370742101144835131313250555372878104935018971741089181482246765619600443975567523888351428146941014071732160225915211428943472249722544071819623771864827294390746187013093950253877996585997268733123713752303612171607367657154732364239726711502327660689717626347869422816530823329344497415300525592245096991592689893664001427085663888231893093073939374734966369628370142459907179150984952159619474817106490405389602304804694569792776440390667050904767628344716556756200690108765756595566758180218879936936095051362079722623892061831232192122995421390945291462479386020259754117445291479840522277035006894430120629572298446434698530830352768146340960821962156753483092308313431618384585354223090385914671603014618261445769649138241214060284519295615351074992486374109408578893710347032915890501118733718207382480096887319002070726179021813519100913198962983633942964364148714546307319042845829549434487133452054148533274975654822913805907997958639749892386976290825486868171349134421575700435606266917991224136491381287549080174640643413801465526163738931487695090487494257859370440852125309513525504855602810453273351709913062350676650504357564833740439708160691638025054978891199407899988490310267997172150873963540556562436208963733358726963740981732674718650962612645730288817157771665153482502914196075085097436146330570370957518301287705861266454619362516882763269420238072684271886633433588366336671266404874851799680456468236616375064238317602041355495787427808082504686456471236881732770762340443043958084323782615548662636363443971397340877839402166120789074212058223227157988741002093116685681889520269648805056547700679857395618647866985574730999923181672696433604194865617615813673085683164547333265720397775075281191395754091041108678077439072164764751914750796331347837226420258271932693987453402812772307874580325264778902122450922364485021660655275593228247519450935612433748484163329999679550904980153965927071024993643085044002877421487554753036301399994890936239183485916665291683588974870932680688462656476781612945943789635364518840704510611222512653486469623059446662593046857674861767868816100138981148123233910629757485519934684516168324583056901078568361072337954989028402652712007451689816315820084418033114725205822113156376375834900602570881810752076618839087533757178358604287956698421404313088691781819348702889157165546821154077426942009432400376889139398746677545921854713891689494241581784620424804134189506628829782801611313877882224911766537506003323863254722865858518517826239402348707598199438081428241281083007595884215878470321293538352415893916625699413951557785097476795195840407682606965834665944446849214089993011523592876239805251495094347979012365111476734711145001565768253057085980732264897289302532891089662822663613280802097896604582919800271646942751748976863962619359870430152723789401682456052150042511913463081608099643405454791622907564054688317643370005952344487981170608994173393516735943591525087934122376656089517151654317667202654563177987313686459120958936986016287408346468830991214187416766963791664306672716691287590171263635538013848207099137799245813120591291941471579496433614584623040593947776013282315175419692704517916486120916564147863756147043428543163761089739261312257955229617419281644977919452980531610641516106740095068547360283159459796035518691706686392183686892036254421203230576581608374320415176379808791205121851133688673157979282121286927869062857387250916307510326877047502942659260391038433496049631486550885694898347719888757216948004060058016505052717106347561029922056277691456082713027923009926832848223531929620504417555683131592528464336318406432985392228336632540224094650626435953405470726579533343095100149915886695764534558350035243669325365345497969968142585393358519657231417513160622531978096491814584889823099986267812002556647608649559880724425360746632375677796852065302962387330820321914916449601155768190221442973646733867427071971907466626017058627568858464317796884177628510277420520215940634466857603960622817625233563612516175653948274991349266177748679448516188346703217658684894519556570351922774873157035188392156220188496244497727409296580866756419434238700747018053174145072231810019450468883598359470437847731133740139887917945593166328554510410654405046764516476067068394376597753943479481546149017172013460043290630088334075066930562357679792063751787397632243206123204845099069042694400801455171813361215492186693905614208973881654148868784575296072302559229668820977130013638464500214085747449331122819077795146335709426190532362661643796195736018284019427578315679773353871282025685643712859128372953765144598166852491395748730456543774568013719067070214449748161090428295084872763616934551495517436860787917379132316857979676177464455988152153414264249901850865384150518773275022315055729639881923394267841834467954091744496916580905007049782420215823155828602139060655365587898413247803586548034548222017442530509896896137188454571396894359782586477864233417737043968752742282238647649097123542952743666306868131846024326773806838035109605112691366420304277888818075042241696371255402266057889872148405358976697010076618316293521078252651507336359999653626340719069472461903507977520816757006903835012391272964695888855239266674410115063247407844509177446818737816524277359312961214767960004496853541064266238577887073358443422462833911007464070361494671043842535386372062201423703040933634853700694548336821521339356649564947553576115621291608771002281105909157490588634451025122933339119819246386746555925229235250171802281967015678083233841845209484027520106667299249854063067043349835243000665184310914013810038549020210446174832785962684603361607396716899562228244316923200008963010978134990868868042467408348712840955374580016195702709214920225420161063942605673796880950756677242571754562544867051012594226148279794145240215990705929063030347481051308186089841422256182910593635409103615391326685808714322715455406476185175145237599058549757872987569260451880716712401680381032035204861740980931634697422368357686029719815548334533790761855736948592733287206495463460968281163103433005808922071466078636602302580355675428164833540213395485606016662555262642131563595583087901166879290664896045485499993752351609314715512772911412612366249921836908204375839906904030683244298639534466085732359702323202468593113289983026635351980532069577505222479877669085344982498702210502603221797408428139944281253874343805969701175755538068432990248320150600723830770482589167940099449491160828630332603762118340809173421178562182666167740881603630312538811717685734084115847927297158655906885305646079337260231451943122764341924096666517382406676434386192683430286290967913403394711282146858422414713301699674955622540762076179164871362087385071988561348509320926707845373194784130872814431954995083264424089005592237265478917468521986661223996840852843262169663926197064672218351005171789268058014837823111066795716089381061705844834618806515800891940023510166657715281811507802458597074876983456328832833243930087558527944358806723569530475846158856326202529989049327783158462786455496333043789277973436853337122550273225133116672768105439521576831775505105525776939259892750532895914769378432464353895369922903890727923961738993645574079166646789115239194129225348727266487910582754215413173881723963014848502183704448922593289280132255045415559969239214599156390493030600785399683057981946761189004816222542570114911502402459207290771515912643598635377323575750920412388515503533923125679260542455393097702639757478317953014010882733266183242647545627883492645740370888621105243969158185030015614125581564611895565618015302029142741633690874263850274809129449457346364040784315807793933071749501262427428207570050418457133159967887757843205504540442612121427717007071435682642358323062878594122545606632113632003028238208723603380367814814359375507561960975878218138270785012552787597851089506385517903246883071162429872534786551489357454794841261831165624207645284854665773880706252285018125330834570933396581216833274788854481607117053894097399760511970278976867329956707966644725555518673756697761223196712292051054061594424016533894235659062539040007485648513269753254385233563663699652981646043969998056068525280134175922060660509611862112421860118098555336171355267470419839320196602698485537036819925520096420678555221365780721702758768626558726192807216209668470844447643229545496694505068034317823024829710395520904262595001387089134099869005863154838175286591807299639023211239115431265707563464546099253038044222274891721959611187387066454540299884170274872569509940204315797845416733830481424477927449046312357507329225210756972157735496621375345554005734202653257476248916914259426725823147726726571327628102128609636380761617032384000410066236949124443846933241690657745725397826921857439721184909693567272590564861455816302359120434264972868524205137596987008989584779984938685386907706685398050617514561190132144102688203066688079196012014602948103022066145224409044776110453077628701687343812149428220627655005180739314007647567966773618543090159165346863514731609629772301613823817577682926874196492984868196354139198380796539436842342001179011345678143480578107631231104763944843988644402339891711558499729237342739139235366496807913499521017980206927137142377270126255813264790538394494690335474537367579128362819856906127975988830192470019688280975506653011593955309169766276404522122507584496009438589752880099101727106473495171784138959277590750733286561210758113180604352976779270518437531095072311731335976563187530808489420428521019909523998513474655828086665071191198682413984245042492087339328133813588324405740517627103673982525220246672276431217831507145630830187415536111010830375567905659562568453636833213658386566893981121071241490847779139621580953478184452720594866025983810992144857386888407541771914240294686243031072912872106888970283628761435182621122583278417391474283137899661060980127989261672796387423296329629897462676857227326219901040162692325287905035841706388811498786793722779809111599179083899210005557370027256053281330548290490864565180929301623772098654368710021522340384688026945713480311023591551203399381842815851188590778841764971481527893501109747126217297404292010491616157750189204686753904203699769725931804599023180897740438465722727195609512232135329456307771442241822199384424373248480450203822586908260419714746219219447365038096031688710566559230275487763836803841789024207100310791938900831648162473030166295312452966050347674682918668914080934112686184114047660954958957884326043114794873636151959811608544165759406517615984426530464684606580662525109468993635781572878894502593382520456185480978737315749411463078830673163606978634149267577225344972525033209364564393961040160538755988636971962100484449583088706108421864850918084806943528332923614249366984672746214571309566587183976605988080627432659975015139307954382827024573955350263915187309419038057107028703992877966173007289694300845938960512421116602584921056035761126246382439733262684013440672853253525237090116260916110748920766721051608618460201004728446603432159790029410401877971507249777830345035740792072028906910477514078210432365766364684683501547801009584753138991834996020860709409107409189760367581089441301651465958168518941072169457607370844853606308492190102157968079438632544109146816129079467132734266599376890660779949358072675325032023188889803103999954558618062749914266601717766038210894718996260680678672371323686366036880007542119643532619459119403838128528121214031172471105119628127183299763819760622332709904364359969109885015083127437535599960335475992462576013687364902071524130531256743598458212311641927884343315619700508761786268969819520486738648516779688951229077422624850517884754404883800233361864174079033323437181750588062016159973639296301313752689829446528776601003172899477778114786274432412865380408945647535079786426401053861677044354553475642816194096347773815456460559141108151681389174447905804715004605141402380850896794106826663060557472433780680493583480458645722148680219786616887203249888479764290715654794251058861513875101640749979571993981203877429650755852589665867117522216525614691970491212396852509386164374437684977114466322259263071684498638025219331305555820879724999181972456874136884427769522044357519452273852501037030673246070528316922967219405808631777582167805703567188713400142231057532744715654629468169721148645519306932689743275948914397445349853822926913694107370660596131661055733352052579673752870785309742702157968524221920389194997040937444911684277482885860739239210375213587495178269488011087014632648345983788646278560511941343973589870627137405917735309968786231010979544602582964156162349542608051795208202972491095920996363406103622911813946762696881909225832430029011853645699513215797618969242368252599904109058027331689727458491953257768510788937807137149620615163810073680260522995629686014431756314498557290585783607995649083751158915973171187362964889190545120834714989929022046810491420229646562194892287075384550395656477196938229620379981164226760969862147966691088124030609469779198374144665155371240469507542620451256529038489814913883035607206121608303020377861879576219095208341623927874899942844263265609182893446998587677484706348665486317319152450836259008643801868732915922974561722696307188386120105714252087682311763070231806962939039219541553397518587835225013196929231862752495723397511987298610172903870667737444525441961243680568092763921957851041603711775632425234839144381628505205690003046427399387001549048551209796625488533537470435508446210368676610785482956318040231061696649821469224073382635134610897965679808153995241527206386456007554139427155897697798609955259780606375834379981678591472870090630953712033807504432395870958226096070123537872999232563318883479033757005761126676088354472809551239795087073409179660312866465660007331330762066447534643660688352889738573409338615205894474577843764492693222464153597027644550289193400094090167991734618988444304574664993532599153936997080525681215080531501862850510267860118722724041550511603306219557334816639066151112451852631409678415022779100237047388162026359672806561147063962085288508781897987488044873513676017640090302557863918611294700598419484052964788095628076013098679064753676080493935330355696468930086662792084582447237593101474943174045535345830114654402033487384127269385078956784812976917848758903988419561200548749245467196728401484708821740919830761175940084929200619625257709371731167207818611931806174796877684488450755493905134229266948674304859616625995618414410684489194093665542316693753481633099781753027831027482759273818410506718831849043878426881209658302716881707659418661645776770308607989185290343954428592077741420305594349855054784252471903894015077605620855038780555073331534394507933697034158871123641279919381800154365894324660059847368115051636076740243141935629360533431356173361546212143826759131899607245871915443802502595602775573655659532253648991539151567187428155164898545267069241378428145300520675270551621954695115921037967341644111309678948889659838288382821978275316501110865809495062852932382970158603370711326272758490448649744345054719473252999862303202846850453799364292903736881382292774177051878059329549245837330472984610790623167861129381997435026917098043812167952404796395398474160020759669034361705605801636158663088700986932664969178660280455462324589201304431049848640190008680605632424649586041628304858226466106666120246650267985119407016514301060358665759808825837637364120357608904455981997037245277558928482691305277409873052767864228152807490627342587565617349361166858358897629177118439768994586533020711673667138495452742273003561703888549066262554023451505513519218235018278877129534289590401744486219783529629535594278586343041330794039579336972578895624428774551858357981964578354092152845484728405530046509648197621797734482536656595853159073308523748923310161724381057789646769570415793279896767159902559175659292222828335013450070525944157563968207892026120896935188605856328895426071465070384396703253860880315739927049423074989108212472070008450012939171863308633410796553200823003012813372564975200759464337374937376804881412941965810540236822755741951216512935267961144354324034135673111490198577770546105069773646011072161690956054095619370554486516978578755897234234475092547975618923006085780962881485972285078876223726400285217265477605543816135644833158153233838961396924590730199384630414311445127289182208829242807488407103264447119752168159398753889227227527181835153733955735166183071345103833750497274081559760772834307709940105222567979276125044158943857807910146285795844317302037276757726266471375143489425082749254154765258281000449075128929929163665491540542103125819235718194052582273665032646394141384285923213468146333950542328637710883899812264749232778592211737954915763272000766609259876858094275338394462237308876237411413011576765733291803724173216479670487267127825282891405669540353560988231763646048078836648117099584701815063090406113977799918207678933401619677519232386999516523179555599740678728342807222221042266346816943859657067473900474029527777472585350434362820793589273046965150639526661085559142103465247136825941316324503308222736173998773535733288551713517486332005634524384506928615550580397385473923955415819312550229891013641647387269577937191813860485825661771046104901382089769265262712367843564753395521942678304981395819275246693038599784247567508898569333879627566881001285503310063612413219436184957849488766919077029665058998675536554553306124259141139871380179111110904256063319697978098406106210922022743545373053805515573219773365389697671088623725939113837092146692391965611132743413584749402180807828679483525733333838188276146377324889214636161490307907825073149392271766256700760152211081790661680662772941216219697879403054977483194300175600197155571320049147031244732474019754687408507603436816441213174110528890311208330173388450138102779055020797649763987514460797656999646875764393058259903559950456052576440957940946173021833315066545473763886298146638785939649931023951907930554127440670693759813266348872579899456122879116581928586968197806495522808253903711777603856982155089168014487466099501620481716266993110400541635506732041588607093414895443406868336049749604560792777452056578745045317144888761210757236326104170526223219147912441741350014100881965325546255949710869352410551522257702209944376008129880843580007719374512335847189438778992535004663080529849839504339412578748582857317133336050484109353522480646162654919540032152175684215404334016582706753128473512504724145379583509237726798126614113777830990396001095349966607564908146328645937763900760852539040472837739646770230707201426130353403536436048615999868862694994966399668392406687716246974413822041254475752332521904075778165721635028809759756784929365584378422315622314987308535749861207431937202578062774088989580728724629407741714686355107991097152279156260205722743595863924016352545686904071885588929198871199884031910680399482879252871303452417028565104928480842674463915948023501748812918385807908071869554354337831577725521680150712815207579765058771614896140463217243960080747007398147866142967067848451241988401162303566341872332534374956398990593172693586641841123253579090483496786892376763436167090416660817328514649465584632976356950922026901180430933116604875567304224251123924811837727610728687172546232015500151170321385058102455573459626018180006618939088306901666075651023929015302097594867739914202375444981410976802823730749089203053013066271667340778512706851019930904626587591243975178120138940052092787438066820320158343666798135749900433457698801250075050538014268411303537619442713434548762807465569724307980511548971553327917423794708950160116250157574338943471918198027836456826478325430535761444011300875038534751551885162742943979060124100418743159986473063868747808583483708395974454715614994477523253418180155615366464441653020337028529826062133966173042015975951165406222785123924062358486311324081482591102263115462524265007117125390512694360578080822936471832121368733517286890423251474156117311320043321375641049548935972597146851065707238038014325151476276298621170850970319020703478961168709321722360545101770085573286215639660410612526002200473942107217734808170766073972106462921225453523630410998021837656815068055638324623932778951047357481418739279240100616028628518632877123440582842475394568492972890048500397834839858910636879012545008587819147619555312954101201133959645127901079519529587572212932098033091903301094444176752256818908635216159248539489834450997325763332279112594827035641861435176550855912012229226332257278990956666346961981422424031318161819132772263930321901624782811363498735865577320879148345605634739049543240451306703921002042415578301417103775222386433911602164117884969663599395618281693289971888471905274030778722993531032610042385798709010978576365314154025624496035781960083711933071691647774434312258340412094093715177920139315652698724154087130035043851180696804743989055033563428442418403380200705205969687657743339775973512520173593145435799609432351286862696438452980276340064281852840215496093605591076704470264564294382625138660846265827312227134650141800511310094956639327153782801663706821228769364810481341772153728632666618480961401376464397021446019794831285604299067233986643847465333886904031267573603561941165878848595611204693785891146808688040044893439543703899075733096152175777267951932035101345947897975739214003456388432127488001024858530158383571291199726032822322280961085843855009470769962881968832559994237226659740292414581679971836350618993788250508318741511606185420365285674218242535067957339541207325560817411009670834979149049954662511814679648394769447959148975883627497809724969370622989228509743787642853889632058470412472487356324234281838020326466600221622680199078685184417570681089283509469934363154851240914206851271662314494427077450936188544631376927196446188006857501267273831818763805155841209444915296374407986008468282523775978447486351540090589381611008735166297336557469071568504215216834376162486187044770731271490090122152016721372866538098752996182347286574602979282887856726323375527774896632933964778505220749758385795241218127390392835534490386404083270954019028169216243650952786232557363610977831848928605431911541563878566454524926108507058202264254851098467774804657249707499876080323500201292855514664458341898913880871040868690408426890120251719546714306497679531420512887296191920795231285500988707860447732688260967998813999623727833180939055978191303930780485282456916350778012220603452190646774091803815597220368407977800900334658812095328245121376568390688335307120542226512120609839016969488166651765730566318115406981465086045380224307138321590806460486871975414884288366179567425442372954363232106285825367595429893545098589803555694491605452664801717713282697008297661843133197798834873202863052419927000097152159150661184513131190967031671394443877549371523667928147879861658393756469037213855735457022315248566780310627897123955740579529327057426133879913997297955245616820141541428299207787951672306900006115435866927563111711591948330549814223155338918641886781950017728607927420454079986850140025318854071205549131804143382424158362532054161799359233018058736500828594782100672358518282403630616260605969275295531045423758795064137779326501433266731605119826022130690923440164823790025067360253062120611382873413814852135362438944885074042893430745028851752350265858794924273599883389382833357140263669632971558582226575990684297833008939289237902767180227987667321244014317756306448380997245677354675495344247652150177377346977885641757170312198562808343188398680411464475298030190905163499797624253495731785233315099752143453503182715267369560489244883979031983552527295042887909181152694193458198919604815160236561923491779284943390758433511219371772969946691060496296944735166682859349116876473934862155876887670311838517673036982583187622245598307117814970113042805371218832008684035646400321633317179363181507535515579085571530656045320742264916453114209418157356665282997842109537069905502495882515588623361249109093370651688115301255862803813486454336750495870723312586012012764563733334215202503676508979378735251257305007556199615068707583266969653534846328344399554337296937074370187267708390532899562084035453719629548796270614121991854341410564729798498871385517759228285158952137076071395943354152189673698818002450128627742384374478350148785801499635344464036940700076366230464151437014039793590015649779890087972236459693629921697919313864740633058992675935294009330499770129378686007147488598285158608510569377768723640503655600660452992138906132283423817683570422172808343710220600932618600965145188260273788782383275722434704319036077848021767529448242776811837049658180075337659730487169919763999481213105785818970816846731568627728114774968834789929263676051506228689036666106044022959546950898441530743216404970940411199064116864782957203923490838498122990118209601090583062694644006730084551011216433838346144438673077700404763122959145130442684343747825494699312384702028934320547091627026431991064209488434459548618613982483227556838378323850129118931400776094144999872580458597615041530191748300168254439894837460225238719056817176438788863700105257668118172238985324356282508949484955127093301434198906458143940222891558929714310701249718766983993314969856927015837231122929316040686710303408368939959759868200439279645367592622645748292837219922119474149563351122126421131128543269490367841342004111414927623550824162112402322304900326509349448481508138106436162398843214558685888026714004748805363560083137170040334395689794274143232812864478798991762552940366381710117314114676570299008281702750328663086693208868449323946397168976270700088969958693030610737304266555414267055686626367298443362668906384346101413307187378792734521040669450894030404943545798236134592654179749508868766602046647129114664662772535073431995797233489162057313698016731137554979653985095743095505080517095759749464777739988991937710497366623628942507999535641016999932221131667168938418464466855387047847669742490294466346886412559306192374554461075044183440443781972455393778231009013729695822246089519190875663771016454025944078360506110474743636324087235845073420839522896036711559623135104161131387794287040948007782002269683261037022094480523952217633887488122771947355619997546691985947327042730917459161675020318994192007477079359891931071588983624181389192739883919797547494308832452542545602863625424013376766016343193778751635529597925578540899669819223513560371178867474681709025295153146400179803648729544647600069607073206885907805700310185360121679826935585843916655962269642839316166538150637177584696126605298287385253677341328757425435838045442648820163696421761051597481722787599156958087330296592494031324479805044174178425073796686861874660120816203418929470218029984062705367803929369112081627905823499937601557624754886154383252878346286314955453693766220435751541446572239542669188974251760491086481598780647986470536211979396530703937695460684528441261868074212261169175251850374214088340321074042164805933683236452389776737551579838146766186732488939348955638922484369296696089292323942742914480535600329572345144231743000974923052988851044803370463006154115356286385266144366497088960726478689948485052241578676560512461661801806176501173938652628548764648134819879303051880156366065927922769798799319243342995237871430122147984323092053496369247828559436378595446861048884045031266912915812134262781936079166133729298743832097150043266191712670358470738985336104769459349282890105332704088437025717627400820374595798842422507123035979795198197063169852804937126250203353732274558425070772010598978935195914368269683270039896686972518852713690734644513341826374394474801958832531296497979368338737130815588793283736187877775240908929160648906950496926984127177479673302148533880500281461077412810079841983464703012711902634893096286784281916229331357502505132937527736323550067372375101167357141639502103710374446344109833009326733465729793658807118737858286006680536181628823673064360933571188880653515478204827794463376181377815971665878172838181555382824142760211773429407161544919759201814597465416626421135726239673689934407963630630298748173265863520842939701621150791802704923546947018590396989565655772525154581356631666096547717556606335674858604886057512729325596280611022488895050715254415716465852742755369300718484645564015345636323374680928523823693294896007587819832494271815405948470825861203080964416367533895672932337845382232181872815978840084527680925700094350803520744585266978648592163535826284197726968047195474518773288968657392409202543885545523233318197146889880139241308125573320164911718932349523048171467031426436087423120480136227283412911850361575314145919190471000673367477606762664656598912720943638806871609129745031486069074707654531659402589683162806747670569309161156225071730986269853072867664994445515594973746153646880451530649266989607095053043121099476992702506515320369005990444149082857272167527912329918839612633069828463723866078948354494717660525934423846058148521689632330566854323444849117155739351706998033608892744379113881169906992506611735400073976361077734099165777814851627492906935199763403931323579552927942313139122540190054686681535231960683377818490899926603699568339178173416570740247200752537861009939105876983574282788783699410859477010339874372554315595182252649252868773938995541401479346443645392721267901665225223267562688272295051826788036785153998027323230085343912162633432887613891419397388636394384378123843625304738999225770415928569845920248221815025016957322627986061619419572535359936833644637387463727971810459203454385781353360643720880879312318506287626277311223744989273838760969083869998339288196990058703612582813834614098931340500683084976777322730823347774969614802473560858542091307708028335111716861090403159223271196281287052042348793551287368272172494372393951775895070027114843381819233384322615829962999736544842878697968065522656384522550880956272590192269216455111382148680553016612737279070998353043367971753743663816995002678802236886466561732062252194441214421523385752256848350819406257259770140448117040102104317095054285559222694881627238630871198978686215544845696977382481377494985052690612872904730321630599399834249411963235861755945669732112941403966371549256652166998175649486885543135798234549723923298494383391315991750880151703296711273212944035618754752543674432122003103620304214622455947187306480233637617547601075189120484393816373582361635100345896344045532823569697004901933019764757511560763721873231360850036007090310083679504034409841457041363698398062225603501219368243864413233201775733595228257877477581340228398534865803083938555937944876547365342959063293366470946153456048951803620307492885067275597063219806539119242676448898578236703008862085830076902159034949882427175397931373236698219448566329763057986391321475681064878050929552552881616442660747612866014310387091590905029317984638149029705834783594677279411758983502875896248272774758052616173508583718056563136418532012083727771022637566908247068905465510053968172189285431152217444221550623239223335696994210098346662357373367276607773152638904758891382958332854506447757858252878061495484755368522826779927282582704062539683539789184217680060671249841731168606266524161471708931723704757125304917096202593107266088035515452621220024416626236850325812681954847064889480751163484886250505003328906687034746367818422388194518502529694495224374478169214170578540546383252874647023083835033843368463375103423292016016003763099087082166720816150706413461871751890091179667716763650977575661561757794960616203007666606713581064444707850266671281051658251085187345525257219045448794292466498500126614773161276016067623087027955669061696622704244945911708554624570282381058143138603830237118660679356018348182653989701510790337531409922003058161902378083249257570968673767789805142405004508198033451214783285835563526695585319206814216495802388557380884324100809203353417038946508399427758405472768051342962804982719928555947070024003183733253839630473169285498049262862770792982635541140981585219739864730612877786416593866739604009881468050850325459748922155230546022001835909668967935517977326774438890730756958967864563156484605099120738264237855103436229324553285830390968168552333849218758238930161889892078440795692979188269536027406074225610948674978656112634872460665923329454275569423401502494145182734083586816704898367334501429149945279347449923629486045100055919017783894062065860921814942833869772520183221721165499494012016703888448555833317685117286233135845140614760255816728012060486764175142482993206868260732238691437229817135671242432303110959452517937602339205236729196752487483239505788103390318050133388352788869141280495841737524464528254753694908364416241968636881092513068576708537814370778433444853574289122639255524967201986504334647280020931808727935399025571164175807947675453130175855210379850777266051917952404552335935564756387640927484799403439007866059701969793678769325118329246717592935946564778175019578801373357213384249612245553585878517850482905006368301874619687328592806251101619929196851123671476910487330670418201287953213061053813493728763775496000491316796593459445132718207011323184462912104653251048306471380549215771422262236461447338730529798388638505477002868379115906777141452814368182815566911121691195521184184616890546395406169098564035423369073193403316366217341162841488217941179208711123174887389932537249741713614313700430977275716531155902147502066597380811797581808677520026090782565208641171816645386395089256928080244266325386953329209468160409224057853800786395710503399267106341851842247390277215453354782665546494524527153001314588112799779788621032978559403256695752521322649238595983559213594513753060519038739748765923753081286690510153338439838365434945566160181437500941056504774371155913952981071553205184595384579078607548675500438577476147808778100091852904828900007035614201162915243216342360847512160694419833799103773920086540749999262467575597379286449275368605979509897306333458762153657852801287314068939823563667965112938742659799102678292316171710298493798591123880927062163140026736277824756775962895093052206065028114908840384301277799294180046937952819483283515425196404457085365096700916590110555049687000013417122566118042356371808688618992802548771394177028535650400813146559276454178817558339248711857784594951284400043862035999865206482413392347409366307802560827912375602314449953948035169511721461429624049291369852724700661947494489703322030976294149614567017405734859904009478841971077847547101420068249273973170493421201726888440370542408643289085940803362847369262456136973779589755735825793144884580413108406167221247419876130475061792101805438879801289425810276197119226529123630715112782912518425038074435932046408254463028679307863089310018183255732646429786668611923943074651574351486027928917327511969312463733899242607276943670649454286121696722061314829236437630761287167044461499870657444657250461259653601316583733739721593696903682111274559459898552379770220410905319648317772675141961417617744585183203882919817315921404424820115719831606095059993676007764730309455467878798384209046318616255556125757108913846493029172381866991930611380723113768899523706301196744495174028814665009519829016851890506223587833684997314642478217358888462674364387608491661221482868058087205742538135884483769980092271642753090032215169146260610281674103408694391195414441068432838587477822809376359024597145758506008779380653144550784733050949900500290845083283908840255310483679966315565782568176885493110194851418236799762697812246129300838827568769954942710071804426976025317029468517072638730612637716738975515013197439747000280778572111242181970302225192476162591361664090234565233754303768784643597154158758897584407880411611746547031729825891921338636876708016122216331061471670447234561302013475484799812274790897157408461961494928259446830589196037350085631383876719784637988344540025402006301506718632196533601708054310421860244483255071796324187577634369160669664649692181231252125030977987944797896643156065543313642225644961073840964265508063153519339828669247063786942482821482003991542979924064833842189893511437593267837270803477522746326840168173509043569088731488110543528277026220658683972594011517341783142324461361267779093733208516619300511594520928789752786814354918962896599902625530062728545522957572312197997015594197498009566261039387665872090904581640073505034042357737788565500867488956023938854993865928999701108808601594961723099887391097821980061772619672037633237305220255802490087630444521224558802766115763290382467490105757278660994408466940037488646248464132231384630953889216914320170883813341582367746690163248300492700702773496741604549797352418484635929372471092116072944742452410559041049090791035447819464082065697729695958649066217417978998059487339788605820739308949796808720812641431403415403126997904187802710105808172540132235749241920729709561612465626576063228124542957916137122518984555611613836363284036107166346660643958139208188787432983999269344109687486211730248565057696267197418359942614879103882234820497514370285582301442441649022496540866952488294595448202560920340753832091668386829529459868584554176789402415011371310979889791775641780096073411315121779444581214217757366344698288213003289249355545474634251162463260382829878994219900317203236464348844447935560506481193420805769528603580261410747461210618934755056767237072571072648787815388954952682325321928080598093805612397025176767295276066060829260613547973681703625692261497907926337660600160301379218743186113442238021916894368067595637684371136906560472281027399159842629610197415097192318606076912453559010966952902648635642666531353668844957592636937050819115873355607863687771421436296678945636826209906221867491050547654841142138809442148899369495840682279061276405954575898906418476321576176570074524878303438224270418145507074819253751414268550429645375483152214706641192578551623108979260521819473236508608849798307447502505028257411829509363770823833223653156856581971186258822030407345782612126282110909099520565367890893811130245267699820945566170342193759527847801886727914119922956018041645963293206041148317272325623639715927731529786700524608320041161464177978513705249170569764670492234688884104905898784387254268002865538762865299082552496048909444259995008014807566014989800357256011703174974991124813304861154795773360618972858014434319966903822281158640881469075972770332856958417427099069442920367316103128981874317154173775550324989627018251535451084432500897896792454810048865505256501950689635950411200797537356633067826864845079845624417291538128758729396021252156232772138900104471374005295166562276849358883576852121299593153640406271746393706464582059100494572544787808485238588132434253267021276970521656135526682393680492236616232282628280683577902435449328892195746598569991358901723959551034391017794701555836479162744235570683295826414723300135922530316834082868342274870918037761304014492959463663673662003413720735055128674031053693531996097543678408138407380101901528640245599001202074978702774043244627775547875992978775404939966875381819732328020807423854876015708636996886287626955229376284254607036320268704123552118010621840057097851175609516012293009019596342942722416292239003568371962742964521556506667384944796954505576768041748134791647443610194300168686458505190145334917421688001216370504569436975917789447694612490014240387678863840280196153628346525717900751399958530192062612742862518245744515221326844540767394785103211392383624397217728614986333766585050113933672696854408315872641979899731870366458361423664408139503187793493781624841693744119445007210347029169225651867304053563534884999584918374295240400313761488851184989922700298538699439275414266728185780432397406403728271548746428128354104912658309680967612258604707535865200746770476841209656892449370862716701428583572471455452446077533459712172818153828875293678612194258609466925270556113801779428089686787531879956700122153650373623730706877007843701405284807429645943111413157226014931073116916371385969685864537124282137817622636942262689536414347381485454293331457974496965253259861150553311623024372202119592155218710269107333447342024756347251662205351250360873709704148587497747692592629240296305169597786821751036193676688685425501217864587402888253767450634546939155972140903712296332414027881043147951417973314088918707459649429439939091244200137752679064615746169650314959193250991512381293849650327073759786947157977185061097871982319956926163654879533432444991046322748357120060217835663868800544846945670580131888998478997753965198045199542459281931838588314886621190997962865277370422227567585178450461349182156298641850221861397069829061663584456537170114145054379988000275087192476867305290781653697914906371926218455141012235921995624267210271556358103346678521555171758176144459893078564656900591413340689162051691143771586506890686281375314076787401052794399987383179841203785065484092973525825990320228310921019871705960250475319934062447748290262580615640774571199498643359788408640800495533507676093541945605534718073204703143226458426339325456761671637578356985645522469972881014777537384985086747941743227529594743220429684272373999581449458498078881131426927120904916518649115335735505076350544712826770125379739327855189779941145629668376006767549562746586386359442249637285539444414287832003784287960360900437304810936043593215409634408766260388535354496171048982241799552249863899258248895103514857132410624728471297264430299674095406306178962161720261197282983883842078793796751030075047789503056429099896653111029727718084241216576947469271797316610920757910288635130675489026835859124263263169225881518873118457486664556882098398104467018364496859431232685708789473662670884707392727073170364999922655964876118743960467707344922979099291099861903412419186776791562011037403591905627733316999314424031638025253049016079737560475865998029207910234566280542985759525631754240587999692557351761987661156932700181825491262946433051268152208386164059012884811084291319066760849975917185315210219077243389049145216196613932826662533311624278822885296667261544137777443016424249341382628980414602363356360184825889577064710746252752787117934722607065011617551141366654541893682098230456008584523766835787862002486886560645476587731474465656092471212689808064206780998082474759976182095140598789846323867739752316902282395965548715476067320975373785614837841689254932215847220816404662986821116868307171069375873824550379237916640325314843805912088840135688602999479043256304458609260394285222861255414008745454299696334346143422287007871283555986185330430868530585743065176249345661853040779068615184274626449271511708758390324407668475204365503074909799243229032801675403031277911822383177768043155036955680276895452720458224289238482533003248727566718060928200510403839665921314744555506544514918340704148181939901682237870538863138714981270792786547719362232801659907424784745610835144593780317482458966505212420486162868988823340483279825668745496021706910268612163857635199367738223257085999369788037412698076074033177895219811581386783668290436104650424127570983479253023466520904887357435069681995780256341473873258674318544794861369702380476434973034511776679705768376396108301670441187090977754243727194909041819473272221523202040828746792837065450196577315006339081237468965386513194664254064678349573759381462184021765105434648924117215715879991454156121614587414076870563686590147730924885753327460130827679306038745221368194481779697290765228090905896677610048713623078778044006236550300694785994941303240217708544025053676938897571344608117127995075573292991232318163885116075643922342910978974053693524168564072692654234056330313577819510415369023942608894229805861996638706120282946585802372639014148614783778829733143326397384996971717640239624006342400528466852240562079661718087885178620438859347932539414548236130170656361722978842761378469917144456490456247300057098393310272001885669573745716302320095882014004226418755827435095092179322234241725845866269652812352984790792357485506250517073537127394348546005516970102905603467930616887706361637326914254208018948695639565891341041589275116735504998203629331306544223501233219180474807429195120422674569161426156452376693177797200861946553625677424625368777742690509804630371426875822088050385914696322950907057350801822231565751063559979052107958857791606062531031161142763756957687549556369100951527914518819294902469974915662967026788838058722424868935891471495564848099688448354709305537007438075956953263641605512279697098400665075744268362138580949140149980979736156542978563803028137154423460251225553677268007726411945887137941673278377445154570534441708124187017219360947564438919333110231068899186015070751622855443163143236156287833609342681612123513569918643986897937393109158445315114507870444372751571809407167786758726615237920201856327521819504241160339556612309440852825564636033000135952021658188032514551090992367296477235096056296886172610602776644858612274586932387409982411970113021979733424067384255015502759995891595169268573417579845422519237122006364400229099743109295549639131668991434081809479644973760933591879237772444631281143363841491158417469365726980121185487695547833919110064674771358055859223537931638512239268663712551323284392704403174392204676006977044264985500307762845409197660159985299502007736208496766460714036931179259866776657115566376898303938290875798877861416731477792234926041625131612354275814046474804425541815546384179156165032492352363400927987043774851599930459954694596383729808177858663809847416419880809890726392383509340155804596466517444138668351509340595602315948647828268859428322663277598815172506440283094260190516169740436146675455547012963992556638047529728535141019779100748239829636517395495267893479202415578622883233781734866987205876570853744367489283234082100683394293084468440753828448029186594740483511227507007744396845605784805628467069165920320589499381855839068503823579849480410160728032621752501361579337018255930869970972162945960178310091063300903188581984138349181905859968806582221261061126229022444200119201342831825668719773651866242391617823646434022577136797695300711818455498075503587928883236291343814272775466629328479540854201908908914025134114168716661827897998724142668006223056508391782551183557753382749440055284173794084962002670048834591270247068856296151371621059304449343551722199511929857335027962127471625463603764114776254263242216837245118388099822969316833821495959321364403017470542450077210288204714272861826624274513526285061832418265210093578004668194250526203930640162923397286603722156442865943409074606544299959324286520178384828200447186497374079878381741447453864817231702371702761155459700318501581260316773487975773021836421751108352577268894718584511638052006895624914248973561200221786139339607469595566593707183063976463428868692907258126824979247417217083762575270633795855249647119686927643562455368120395543293616089919497443919764194724419788865928993478497303610010721650320142544608243783942471371516121883724423992669507177282099690836522214920199682814347562324321668611330435439942006292289742489466760865105084735989366746660987598085064787248563177072958796572747766597807095275325135227211221109367793977075103068197303289079070626279639700340178776776218799925445440978223989495370340244435660186545395531646947885173152810770485066086801716549095746171903067156579980841601667238462258915385393639381541139920212046142398194369542441068369513642451825780400905157029298331940178820458468642918453549093991765864957491451233237214581065517869127523084134563479228780444629804899803877590103814417388279989892542822635482828073609787535007971808605811639168480287763866900169333504719874764420886515976026110349227139173566615009058644121342766206554192786347774352444681099270869342795623555615198928100941966916138560185031662899427857679492234271260700125719633064331988966378071573677412900905724631809368236832669526869512032567947954517909676785618222078593956133544275039691032421991974116725408370147700511785732716961487799571399016449692548298572749614226680373927580978356559472633939737961438661579047358451222432751094344237603796995111326045354985042805213687570705898513752794051716085206232980194719630295265737317371824321870817704986041162069070004319286326200101950975833162728033767927953600285325915135251454812592641129075867180904893987558106573276800756221689222642169143030258434530437657260763528474022842948204643543497615682961454994070602764937823522646214615781015876555384784658383394581869034286400174576672934511890026928774250653647469919678206748340913846501708930773404704712190119821115657614907167214394235377878171959240809558481331326382677258756372974773603389144073706617047926268317994494407430210030263863545613419256637178983576625812030808097371591353397304064301767110739403190445422214150401044641842537031674650705586704206361489406914376073320123741069834874538078123219336130529652126011034982915365742268731927456552795240861995194054482923993854528792813833351661392965674442860656890613371330811522231105560591199770188192027439663412302009572629761320415435843063007566920796763222377132498132821397961639425946186726463851846117477037971965771178576749846686957722899760957927817375951176230771044951619271115484297587368562361154056761942501235352184094674793983608647390893593328116188007267031933261381157098261289701138717719150705491422164589371004759915364240120693545738376286714947913042342631744256749049142215143273763792120378581955841967743812832558732085857116274356452454857217518727486851490620900278374009211342755672816656211215994274815144738677205657306015760860571674346829321021021924113755457818135857407598099941768242710242497371754660964501997680338713558034570332431149556294697122832065575906439448234985510735586048612246591160609938815645173356484895884789911747809598769239801311059817871979735607758912583773524126425960328515650633702801815248318622166225643926145585646238913876499592048420724048837796361554946558879728666496754334849692973295084875734471605994845684854564885125132744738520039427382655735078610653099294345948409311669068317752215339450070969205000057385845432077390445909674418241624756402019389519190479245416647358225533069169693428110233384702625297016055769930164956192322449135241113035452813529752061758861968524010812120162814356485749489749256931715556112293389732309688778595019561678450884071355395883301273182954904461566354593584868515910519165135955330983349907840004458317673512686596476294856397640164854330227713396737130601779165880424731766573895216816789161484684798261388130232182270565723550873659014673945963000639121960124546765195172683412075578743860032048463876894952711694050918426474506010143179176742136207810205343596216756931816362838846988496926912514703352204997853924459482149669217227303953766634107984287817748732638865678981650920884910888485787976642511573072733908180745673130236570498194620994589105753817843171890586565501604562706866244525867483583551510485587946346843659775862751659326164049363235596143630429820044374744826887585821454239220061146542074525061725332025040429684175963788936801124156677784151300147933836208196859190312950466148598805094633856378143744633584319637122783957907948723737229130128086151973894075972400655879980615336589713797715330376390814476139475118704033806124624235780830917263873828769128649922595110917677710460063823816733620088498517286261202435620755349812313354109936109491863679893726558573651195166407871254177003379444976445815627249885859540886509996782060892022875727420322992513025550887774882035942630433372234955594395246286783718778051457700339098914158413334190540619205265517540751400131376722781100668882700278999756397073954732311065762353415269113482884163282376547663112156070905563979891401484976041049843874368368061146260063049202485552722940007151213847461151955450429062591448755674482331733589477907724421667763845637212274824816913894418749131855773650636525422781150669675731441105694607065394049661870865791997804421175400362259182130539347301423636104195637110741766753395112979173333863322002473446143610720737315426777137427110195912176646108181425049522154850176885341171566263334680088744996849111936696051672867554927351700767865951037527890925324597121370894566160292770275717548597351515232993151908569638717478651681847743920331465391334942377999713889232860086591371811101523312209894207273669108734712762384439306087207844222942527709430111905875626759544786248058730623018674017134685943865940492551749182242987877911183721067906262339676857458921283390436880911296932264424189313809389346528089236282544814254790077903182438139978183276707458637919344645188201630214764364353937916079862735618628306275245620315739460233649886091136940280625783580900004077908058186013217137810660421328664108371145636273922368520893879235119816996734663505565684915746028336507233438276505369232064179022205578826963607258113489244612823596739002530000515827684354308300271024759245463084132465452874452308182524255651482880321024163753011776232434456269555203177525941683301101538639248854703979725777821575299579678120713671324119665201864882755384751383153265899330664124529398953829208905092839650715888322059107826494563278132110135060992133940159144564085814205968086348784149115690892912358058085700039147889183872658085902056373668212538166642528675015432324085662284819439105025730584612418327811153854508269766745614273295917610940091294910742075958102707835510094156002402124422772716281083739107671894174973544042047174778463730038273609530577618287483209649908588350267714393723963790948829722141647422778020251483164511178621173884965608637870180373324348760413611570384166058981879412540571152339254221552673217312848302477461528537638295630579611203741263453095935738109411110039686952682383649673263437818370345992122375790544047903514407807886406046395746246701107086491554555847175473231177211786049200335795559417391967399971664317043058169774048389838856458187273984525644520293032322065719037600521468212572305631936027584624872926072376671966643276503725289223326296702522288074613911598340163683084384236891188819968429226272509599920485748675508655418446443652116552157632287676127052693784413863097597244651311570093531077246853814050695441827372095887086787307275647057800180690195266355950773075732202226788932165815883557599675948957180406981344681173881355340223129276606707733071449294578347298821074759872958133596650272322281230720325139983038653526125688828897301752306806996311829022047263460642349916101170771206236729101554733012753180785299313408876340077734558443418993419767595793172139754448278710924663737108272556358082282031560141658148096455101781183774540122251528617783804120599477362437030428674457222040194551544835671367228798984307424402275767004113667304911502170957100088402696530509622346177285126758541493525700102452993175650883264573805930841759947992239864352682308493570581509611603129517351026035821538616068183697307749408539020653368059721513118180787324674739583713307373016181744306330646882886997062188981236102939021031665494770167107150288644154928082926018538517689986128097253650168356662563279870202293628334605918574015278761540942276378928353703403304726908822421039406872670546128169516699976978265910794874120545715771130887033951199350177504057222690559856461375088740906344172778165808099328959877523497876840332700534546180509236914296863182511933573422122284120483744016175526564995204484370499574850004845015267020396969747610138054031380488357769877974720464591292044935628406869513732619331935128352763808972709016173134875291246282150995462975092293498486383206867744557365726551354057634739191743139170779149820855397532190523802693034716872175739161538656081904258081758464286020360929865692520084363979858308598952236766225812099318768120108963278317542138274230573774426114638789813142998679921618256702129251881921624717003891696833796987845059887008444932557204962418342252646142845041270471544344524770528238901513766349958524173787091426057011525536214449639495528673659783493692115571273372632251812516037274885623822865910855290832003426053582501978151022793968548010990344335286172619695544471015427636879559032569703156745379879992491432164288332242728065161332058159650317098784247180090655051410550924245274704886467335432446141487630577036161004177320971834943604081778897926702523381028221912219706374125056039781792438842936333963238284946929537751052102567087126001599394251237032454771980221154813552199806287616191708425391767884763839016654067569086322975389041461425621126357849567253068847560684592963391218897637280425228148990216480826137974737994945317283924739648935300508507924581481604021151926502518950616346002500295093699675434918602145821291612841390249642675089996547762578362745820668493769903793788154895768165903532136517106220707069467601046993853724359530603806095283279635240232899167167909147659779869478389853642848222433416131499396968210535002587202367107552970821281310004294940635870270550680344379429030292000769947013596384989631417887886747108475774082989680231500528562385179673387746461830811233782574125664312793819291916800300005141586650688177342848169460552824269059854675825139161370952023445540998949213394252108513206729577490515497111942641611616246869112564706714438909516466556256589086654316316318972504824346645710416800717191250969935545261519915702771992566247019054761811805506955146429318787034272592524989143437404364777512875775712073780571211296290785722331735532792230793948288283413351142603234147165227017206771551917165924419524535158935523276762022520053979993913605105255007108337324127761203831454535231378558215575345471226599736939098599389688387012967861105281395120178292895713572400621357560521654364122934638260788243302768662211583760984188290625764191003755961502315679343531720147461383936659494202340124076472355836311878733720197884407029442598831802184013389933824283913710608873487952904647932554531606129052161164907398093664905677888014464025961031840769269697511561233022209021909772999879940841852969311779505016261899072355136739182788264736079531312819259516688183317183655832954950543527115516333371449614557908593887070358584221470133077378054376578589820987308630508495585869498191975984138977238005956050883692515118282508899794043475686113007118633653528423349615798945960367561968119242978077622839937816361792258197815657636016046822305525157105602192111023198653765136620469119346963884238845823338472832895790468842902046306601194688727028541170809240130566743991675277397091920349033503484733113210539857901421545573284902374488210833354550767059175939723992975881484073603128885445556137905912154583696189874546033852730951626917895392470688356209664296113120890524480475819543752449890441440087416502107951856377776031379620709761793254114267489878033114164339873469989487130341341346904255846417120644999509407776342819191302517542343035063262819525553254743238677481391113796708462472661174706080202107885202163978338480368704668165918044461853089146594871133104540290455867530918098159597294694719805669974301319696971842838522651690414853485596215617106432504638664396774436123357588126895159796333235650954609124512264491624520599330068535637322433450683181079214777706465620100694629472247390005354390105428944958314314619498129317623837018155277789226102317971994967610762557663466948061084567118775350687219097259401040678463610627742272449393476979478686385796260362221352807950822551152107695249783881018876303339408420205958984505989885084852081828876288663315227630792547694066119196516914474073218907926335641416910978776304003026691722738410982573015605775961610363550462926170768455529143623171030930696035069010512048961777005024987748095854866482458880788755684405285397341407379745424839844111677514532228175139453181174566993241936212600615068616678425210707509396105311322554074831278279124321961498696558627123438960204381147032409421734723157266890096244862019892704161717678308852178347617525764460425194525675569853809438329145899175193974091851233895875725567777410547199403885572629671217503660929720300103773429276137599835199356751187423824292395204934775985436445025694499837371491243655899814713192332849401232285785579179418536122323467586046439005219402477952019055025793884484067358441509424299207269673409868754596361305676392784616256443865121694603236973043671363681153409112311007025200129796849941324955612067789212640394258933481234102388138748659220767213472756357383671364358551279526759788787417926027683444048393302006435456815429367740960812026082094629712424853925171220917001620403110065156344316143363132885685159823061355630579721510733796289870584950158330460433154255360223872325625962729330685733342080825385054528230630836128815306500673272872874769903641978276435904685255708710424836868603085973874932245784178009638083242920666304200808408834157257202257628367535124355996702643863210921331275611786289106801269108174177511661942954233021598411217924798022911538095199895052961539720871805680967238968525986002193168756578053027617745646086129816912265272386474626002359420718196517777325394013824278912532561503612141206003576876310243401911588798099968843482214066885780646077772369747381327585368786652210747424307156907100041569878731908225720497345644413745792171922376797293446775439214496216621319423059960682263047818446601451858382063054487315684944797222936589341678004726468701894791340042011112841596211011516719211498203487210983907114192486762445444478791733181688605847521847213924728955815269356300941729535529914592332244988634044374534752174986491482683350298094187043221746019556155681330749400939640650853269613052647349523449619255139361024562861453709869489041097848732989485445172033554084071197448122274191433572269089591822072557797236386062245088976520232654554356474437988193374550475500078591890868713248529259861186421170636982236877521007180758334506036708892417801840134940724311851553323424976556367381589458396902035208778652969760445252513351599281984996660687380606174906360183302062662398177034949141141067298989084850489113075795283735391568759191250878287459447429907909088329355433284807087431317182547559408669565859637585024570886092757724741736500422983524391427249323675523026565184987852686715265337553773866635949567838217022407654174020442314091442826439682030032591480408477230757427064465247731786660664112710921458701093918757569885621825204486433087451073532776203908873734897063519971369888448321185984419573579703193703570989356210341687934273289303493769832700247164210172849518762356292833230334578555969068508776892978640359928375428877667538846927294924601285234780838344511133025004311917566911096520300699790938642719933445733044041439532292005268916539206376652675785237160651489295922457368566133210817952952945485570995555031139609334411506670182864133529584698888022095834999873092298526894281636045556409700134703639450695432173590062379389417092891705697282752942173004297171429176136384283383339896050033587351700160416554302729231117456787485314204461561692819584613440791676032277096295968761870952372332286955575293013980742157612533025227242840652139963884192567642358423840492711866601589583084105883014179870461313085950823180347940545915077826309521605168278605393690720196475856698787982407746879739185666904350022377115763423334521927347810331672301076888029490808847216620093903895630216002091595368555784085776856819670979213113774680534170360865722976082783363397546445098782630009055984835080923205634615982385483805528123607174809332715155950687914255156190194743702267318728395825735850197991179135256969343116091002294048415089180877751352076266607964044640651384104286806483867244869027365120803777213883245632036291655068258274962815761279841625298964650946041145936108630618980177564525716208748235041157956768575939522598577390020576401547643401026559047421372030489762321202250075836973969955096040764024279015024812740642484460227969473116190876300339087696508427455586792054534034760680118826098588851179333405057516466597374060060467642871650265843735207383734266498939691202242080245463907698871231589500251061947807280437952576088526618192087009354763810333456088570021272208249066798756382500052322230640506292718170224881449081455000504059619243741477524351029183395362707501871872988691316660619471805181916853494621284409669285349039529684024180520132837465365652913143161416370608787569136003433003841232299796864985031336030518135487923200167578838232182272872704507739331574935784293107532208225883367517340833093919140701140341186621795503455771254085856346937101907911982551493337035061000056333530555953285910432296428160449665965024538855684963077799070907816052036247054110254204609944957047631561467755027954547112588666374668333234310442309745795333892085033631850419638549436189478555980576323769654156188717819167546308642248504833268466592595947623484087836275994581846328388830078862755393012335063823946503113328596012838860533488457603373003155121734043021178079124261895071457899812506923309994981580710990498500596497809210562414935003045590007536503719272158109697802471255480366910536732055197660303069215981633779659381578092169038615050400635228276553234320859134190523453693750183704178933766996680114411785709117681502167912805382051535717207558030073190145344721143732392550825560932176700608489480583839648465072973201035456099003675360225879882229589737299068494710897492573532371540342984475974656425313628450663664900063861187919679733311564383185864990070444759475148314476093197247945504688373948813234139436778238807297603736435263113426426381690886857632273145706321286921170130534289778467119231215836063310294106538781663793647134027042005542317916027571258139770747542956017163389845771204519551976260886466113615613182633033671552262217183879573173775446670204561785689545020385027308608821855988688918419834087720730931664028730679808006017505757239443783761963533573242061661796391716064845766289916891324488758213873098179662157071059392426545988414063931643708392120646689456255930292506703702388354215379231483901318249043250739663213365953807569956663759800075476475951429539431066601695199630086581649075119763845319175436423988119384771837998834916330827459049929759231960090017265065606491297724919884540566126848987447923889147201470890231183002585596775784624243243692098921861507601625826869493662153114257531343230625497574677443351950877573259721153495497701060896824629832102184419721061872169391630885478158115612965852961923849653772147396759602400425525172640832224759298839504421673527835366321894535425092235385681797798205997187610851930177063034117634947629083079287596286233391058104150158064295150055803668569266027099728758755969398765180597415715729078251492670461523846275094336591388193542715503400343841909417319274679547724073843744454848256992883162745489126244210420182434912619128931041581740973994735969647125724205668502213559955044171106236297339599835229458499573630031855225663192927919598289670029680384534076051693717847402393185412929939963620876644680735164188056340686764639644346767002163028864227816501489754696477772173795946383739774493592922243250600587273228641795943550251358658539511068696590168658470467859647641436756760843161216835459713219200259340563827514703383671781435814909545815160510443813118355056205091364734091105949722295327753451450661016554413945223852413348427303546025346946639783910658343037868209486503919573597580687359967559364433580118338832094314376574483962168192106517814706875542048977573543042298850527619695148402920017461393837955417469477763428692662586301548315262946281728400589422712188080361946663460162148863319503099863597827302445456379368231292304041958053007725575443070091333135774522293734470807747732252836562349073502872951681665314900538690539884280988227845883413442198215198686829007106316269085909538807287667523721391608237659370182634667308398789684852388728633712588404133378839012802836108638316633265156907149083423192712543050490211798845345235285655420494999738204064708615863664179280809395982354135138900048422464057667959519921502091931945908813161846605306471201821812310189540390957727611347801398182464676299794683629525959553365947799053887318688489453925474972970775574243904631689980175996306371208963085295663918603558541804988163763845644076646141110319810311610985972180146313266683897178972487936510159678963701928598735918899807396972830591085765620232735403500887099115927611563501711582351279685716849428887607011744392264195758224410129812683773451042399560536619143202200987504557338330339456252565860936483350644477962407977740489295375702914585064899176626348076015361038430824506856759864221645038638679164491651618377413109443604043493155429595562295781537665925817580134999981466151159689736900528562996819960442316691262568361110644893488459035540792926783808227359231161529161097938551386319804274141263441262723026934700197978037164604557767790205838005117835850463245485517563324302198702924665050763765537309801214266779131938446216052700198516972056587971837644919273516176743159206540174908707930237849204592170115424481354136130590281604226194855108042891453985785113493844866987099046718823976044658826241131547979773529243337437200435339404872248015235843632509588287440814475010246200697837900841816483534392790529200899568070372110235931618474413272951615684049114036254570272420630294950535086845547736178463191595998229640056388974250813338401869040064705503725459556226993632921464310907017326682068058353939702984301148985967511055440752270464980267410701381812394024118740617902733113981534106083588509254737696085281145983737354597891691425472913456012057438835943525940388416398321002750443008595629998303289616041607983230583961327136667658000203858173837075962273357711026452171634674415188456663778280641013751762530695449920149112452131560120463593384240603791099463134851779134642460894437265501348610073407588906436175948649814749331936633483398577228968988454628537094305986151667108281957969115443093460322872017661169217275332853699108303053877470659772950786288252592341940393563716339762475001960524839067595271750238335360160165653345712375752249994730161705368090183390467357557379755253632097575800589903877799884392307599307602525574659223606653971380554568492202170085502684790053416027133881719065718337223995704505597037541213607814760836877721363889153532175578719147597529365345916371542806799916605708480917546348291011463171566030550136415372609800742536638738200294766428011338992864432800491821385723668685839141515118800390718979817047136031433111558718958963990543631697234741896076923008377693602511816334904184054581861977204316928111673156576161382090958796488462548975599771158218564749064424647891665208187031763811064844756564707919005729384478848989728987242612404143219589682528587106522637849645231573173497559277186223222861144468410113849775293994551677125633314320157329227489677742223322496083073722728861741341019534826913949332705172337379589411935357778095514034829817065790332121538118638115582006301364149972244188098499931069045534666011894995956278483169209494805845090596395553029480571189070222805211795352105015268255823688731925471080130742945727699669816108517969088131816226242915310119618371858701107475314250448514627632801724466970362605912228627969246690973548234105691293513213281939526683465464414094956001166905847133930726130683317134233301610085620199074784148989848765256301818833517652764841931202516888120500378551066874518043932896565803425945315782366847067907863677905051061221011956870633840040162536720368626490010005052557707607487584937382754938393843211922362210509070355900597232943855547978741710770838705605705987125278178579231377332261121554605478438476493974605624817019788113193150821338608244278957966464985034295695609118272449863157007218739180839864869592535753933006673271959005693547423014597639785096004847075284834816001301963852037568112145121126235439886242876415362061982412141792841420816660050945691561058527335730513148859100087570817539499545884118885782858242360359041504823851277725095940073544433034367894215836994401325100277216675653116092723534611768787837640591472139457198662009232356268376701608983807569324705661344586626465497727367431349983200065469610271212780558620664314298639628021385380490872448692952492502260692201721224225495552075368374649786509068828518561336678223920173759627394354426084980929395906934002280614383521770832586549918410891586969972038748722065721252850142231312140735322202936790939345280533705277672572830484657833501079939816576871583238534885253094099425928466621616985597178123076181026894418335422395456540441042653043628317170546174532358387027212125809937826272879077363433032296615503802776666241890369087354204883007850113343682258876949684903422490077240474691113188832050284886686760541664841947440131493015067496523178762918104551176427093122007964973950306045069967268311344079857279049867387712448271500035157964086587918485398870354048110923151298609118288951961207483987500748305172704282804579376000026849880165917491385497167070673687452439196648137705986504620430034092902242560054968945674740770472441540192632797680550100960546852402591904477122215360351940435624726281257923498188197055235786390224450679202179739316874115485272291312936342488295417288686382088928061826354970924364351749399837291489482793793325802889090169014762831439032312038532772432651855810990322796772835623910611518330095078828093345023268943829965614900331558277463486015879626637100294008172182834551707487188283974457575283455599524270042474618660470972644758074268185713214872072560063949602853758862682264507851490695884884470551928736896647069169413338816412169505703586436071590904550321617310563797156504746792049901698305070924439587696793484746699515540582078129975052101587598073866749817042162707234742040322026206567272077786147805206593777114152903998272712020079197532454774534564378328775935708220620449579336890256041550696998265380965771699270339243445680637005854730111132253821313582650944141560532537118537795552838586542221158142478237266080357538220279897414760685557481374473327441021959611879311934365031249175856265884753462297949279250269411244049550248274486967159902155811127733543626544553194806058607924280366050268866302818400292857567463189603228226743369029898882890451261082284225415675005929187471650417051742454888157062047699358159560189455749370276767291773435950460125859970924640234056859718223052378273884941563135765321078995521399505392859066852230289367419455613460126070111026251081898798891106990736573836365870237135684565042030644042735026035831406884553764157762741338625836392497104948127007790735911723613403543398214726846188578956148171472854761301926030096740109948755752444048563332124712454717108369564256069753844844839922992745266560651565659286678710178725957205848045436503045939286083843784009627679079431565204841530455657035680464023742449407654204937522769233621550760313724456578219044482950420952683086345226995621179659522197498544350727731476347973260984448327297914808824205564485355310973396386594862022944133244260622037972567641102059570554912524038657181357066817946148975583477771091661677057947674481181918863666136329889308532085585971238828080472728360165269420784504980463986345726977350448432965122127600880434946821513707571279563450658572255395871899801172521723632052887584013677483270399316566960986103056947788101738743110701810241959707714977425629161901708159942757314329883225366068090650056330967435052531846708088331723081129287902460504231461127937912452120735846984943631444992357802034835173563672594670742512838954967578384946904781162728111726870302588169448374457541420395506918395818658157214146266280429450963245260947832885626459942581115093991613727318087897290884733009608809918357399061894465203434467697445706491753679351748573511490022400784550437064312497326291998698828185131812886942554880186611696141965038011366560059515968646055483356754077665815243425538243037882140791778300302720666770651948580691482312759183548875297024697215130318574492327913463719934462696824663075890573316100432811386490705728830794494060393740521914024169178952866476145375440304646317958793193107948746059926774836468235270063355487083537792346524264369126458259369677036515397528702873732595527309548274715605316671621730617163517087923814455021559819553455841516860035138545695453014984810218257992347834999143000455733902554250899032862989063901744771040344337241195233229558524030418135765454999839884544195196771034134703798963287160942679888056014687358384856032710548131431701982101114910734654447356677543279038674779028830211898050714240055254115153081973763082052109259386469250095164920063163454412788765080238282456701520589581460333514093352435909431435140053469519912228462525296074347143963302357975653935453205169550173872110120156594813317595969354413901500678991991013833239120218470286763768052668773731041299221610771804086473193273143281729477346774679544985542692612939772313844771168496225966456067598245932417650231584897664902017511928526008453723641409162326981435780007090220851333502661452252447317481933014845720810793614491993780133111383110652912924492605747668610223503541564967165883361034260423918446852956432972934085303894664603298708482918116307274332577576577213436740498559488675289088220884943024433045672431200771236709478975044802520678253118696557373276531355432251464035859035651500388415070309738350537584191778236026221632715349375491963815873521467475734861196958062000917174265293530641352473314658531552018409929644606426969096635693574284702015764718794612536333869703371011874302331675127216915740205714458010389630827746409334489698990609643156612232345452121608407194436622437203359255806943047988347265554823406413750840138443717593520573038989754316953730338887210096949613374389032185039683107784209346459309219121281995969646910254398288547539649982478077538007644465589791057621001646479966143902840936071547682855357497442481623324385062505401856301710765228604447980964870569558757446282263464357104359125598240635026044308086982805108497743088008827952062289568993748411026484341903599163466286561899098503309155169302293726756184370011241778663949278090712431578769760319103959653396702998689837598183104939813319333231698279189903275442648448700148135631704684520000064616592193620954667380809299892461219275254707080450179072231382823007196299645005907619284006266908034623921432425800795844969740578763664275362755382732539060841810179949180640614099866198262373764717719316166197584798902571465243068169723550150285435776440882271077977838603663174056790411257021607230126568541312575715974679182221394505479459662195469963783655484120269204796928376667187354510443976669443788871794278885919246167655720675716525904415602568746933789542899770855749466752340889505671001714849229309277388615192503392533987022357004404755074963198692650244859956449581451753661747867918827329552521205735577889682997548325855081124065490202890457792642182991218906457912642436724568092251180908172238879825143310215669428366413158736756521057768824945786135828119693135954325047466397773943962388837274901261898582098551747253824156308329819454909080214039851823311712348613986047685455314551373798814235294056631751502038752269995654435776880806787939040170493943949991031038948803944098294906997142613296615622696895318948413608361996394737562044898369510723341476455362056091042331761016274450070843188359317021647119489376835265499330052937808299462833233628179628345269029469220659429731867452752136866040168257899026907963234322718974956254768458158168144233308744415873853695679965132897503002138225233945398152908839072286636290746410101144234308125829560754745498516240113076675471350385821060454348659181602847533176349174078023389878035701157488434823853312380218620420984092515563512119428164171480752216942867941644715477037388653864281883608835579188980154208552222176124737170709251969382805554149330913573010643726333041690053688297666071690065968598824773243218701211576325514708072796635023779476319443717430355444907194040511552613149576708193798340895603006037186844295780163814887081456324301933043343308974849629235481572513745471948916374265900589599033761638634074373242190443958192672175370283216196161838220517652170381643094501557584833810929825668613023229616721052705920636125310098905443187444437752314057597427883186072713794659906006219779565754544778894555769967140169438888242981599141042711257346177047221407035614148573397739461076471171867444808604353518656863276747774675292542223524874709965636358068549303512360952193125993099321065472806971996561490461705999859787249437826284216075787127250033034487864010192179184581726565167330081926600715711966952230799448705268186189815054066188933036457981699819868830766633412320904785239611581557547006584111513421549593896283586240374454083845445503294007536694605997590246968872421023619588090545382933802848455333077916243386939811175375585004292395235122051429814666522880220699440243182854709782512507530330263337640159391460422648025127813493930642281446301572273772474251964995872608504376806496904848275691507781596427469933659614664999324832109844130829482961422259791245156646746180640647962422888679734802272238029205024265035177202106952435802610109472778159785857585600933511960790549019270651548786923039663536116929692986686513278674871194555788229221013886365711478353330319598128008141227647315774261639285973546024474638761432269842072372501508966755534854554529952630673649367437334781870222278300323731167076955461330002944731801672093356713305565156729999052314082259099155067957251268849095530957692102976884181559700212185369179805389883895233613295012107238027764666793380070671168523130038830565393002451528175206136255616355677563870993653189231859685264306882117020322142031288702078210856514513450021789036482267498261601179681000011996263106661612221681541710068552777685286272710429832393607401983847943615614949053774703070960254718202739524536128799832634035365307512067175823320798905503279885891695571780439920253481940558694054941114247948677066728861637910334815030451397732230967891916163752499665351207447005946434340448320964530310541859940794882914321755460734640942360698116616833444617019588812157013734713080737839430362309538306508380049222767652974162388221298035459951577126536895992325678241140746704402316865556328405244029984764898290608126423274758649645125565567632333134119741632504052203893730228444169105304157012095026466512863729154776981047135376121252552567789589190602194475325683058838123120743029123910087126884173459777181287610109460527547984084070924323919406959654911586671761295843380934823349806620621881718470073724323518593177193799243468165178121461345636101302426964877393869033823443264798949916191271584455332031913114450304679884839058486951173559077792554551030896188940429357967952915255455518058634941990746963402455511931131809274464149036272302929888782841674331209587302975296341359836793989151638582677590249796537886773090756794009212515859948377729216510948967269411844938658338076809093769064977398420706847511863403329856723569108828522569626315878632146945120374978378497791081667176384042860036474248760275081233126526168715548805900115886517611133263654850301690369696533197422068293330014443689920925819799001131665237711675365388546727899841298955561861402866179117620095279174768351697834887275694468794144911908558288159834336489561750958736914863782391916276488607443607665061834584615400899437123858191513168160076092970430148505102037351999369843824554413037358974101437030420431539221094559432539943490396456383680143449918217547956344549406665729134532953128385258632169015544020982668849863384986167898383437890191564310644402345691292467045949654581248068786729893622688107468198887119819041695039736356476169296081010483905189308193394961374515842927717956034743410905602509313420683904454523599997447058833197156131114014456810917838055356798165305475574670939301971295242949465130307336066403472852583199445041852683599696898269801989602090767876511544129677794782092936980987009979236684998805256370836405556432311688549000930338371764388685489384169292511994841506844848028445465901058744936691168278658496952913626922345340167804157704269608409202333591915798810423100339558950948653331890781573959532604937066103521303422074776690535104691793157619192607139211781814826337760783290200551074680051671620720326276155421699165307049155510766468984409260360603180170920374867780703454762820173050099165964687238693366158759629378169912201340542405478589218031894333882378917353785060754921810358597768915952301207998878665211832059657637101784173060688494112676924831542133722284914876155520342076871949841239202204293104867715234543781868805441828249734555993631995579727388315262686263876072033900189150902256147924326957635681035231952272727340779064328532552828803494138449514632987491463448725076427637682647947416585604538798295537795166673513577556588685470306226477160531057174992346129629000486097029028251159410826027438842184566093853095687988005026711660616845905040861473804587872611138696863899367593327009564334984815929559664363811430362624413719084041721796375725004983172118385735921443669350439043416616898753978569692789690110816923476480536152522062488975954002554483275844185693132684393489370078204641649469343649573493031287572401816297152434005127174207112185392964960038192618898318430978427945918338653202512780553936334023951324430229804992055068037339480663720108017577848055191858021610223788128986503183764823421656231101285833888511137766133121417857129277987745225994112965687607323990693132700847228125220383143503414487936599360622752666568044976806410971719979167238364895531513473083303834880433341367736428738677066555856031084797902210756475455781175985851731416620256625135667680909972687560295814441264642857008347965145179565277052973841090069545447399770278491137862764313020094960427009181003003572196020620494785965653811890628458796946771337593289296999666515715467880065900116511698827943819030848224890207819786699539109336603894485509805156433215746935088365595275416205201338668593916434613003969235213866615990315432418088993888743373326672742558669150028000742753248511740134586738992878005304975255301362954026457276397344343516105728071863757168869324419310002713963125299459887962565724231205195978567316463152547334682614480666864947767615536106144395099221739270554058115472334870795317886903967668515007801274190981721401800507655755708287638603121474115135053895390710865699839391740524285267126619328989672496617470783241056732250839763029489732752205099191305504939272095656534750072920751530234899048171780308300885733938839935091989712783848260147412349047561868835303809115924769169677513323059540638835704061109354543969628918126646440156579329482872894583252617570577892221795230056497106772323034337233669862573291023488239017476550003879196781822580380367324438169865607263570656920321028343945674184188842394638905591044925635281999825731189400898565833326247109377633227487713665554198644166599586897238885886108846978420457697988169906272730015654196433302852323118654807841740354758836961356285855388882019670888870729212939166903058931343306983635543536820259922029839251557393174403286887661163201032411754700690286539379016026772872428095963991458030047117065104229808614135363296715220511701830826501284655676784089312989417377606731524868196389226308723637149828392063371574246975549643621072632667322987772308538686135020220715245496553721286706397761794667729725154976210992521784312263925867615983240709128833285620712603115688608194643560842342155510346309222398010585849870002445834093009761040957943549449008179201397133572293196718422367519096888162020672198838650834888630104536969769027787048112072667276001101160393343509149208267985692455884422406779286070524180596621879441451390967996124583752651301291449055823011851143011747148328057916200498490296454637808168206521842044494745432388957688021448597363589076210564144936916858404727269511628954065487359748884285746577388792812428175583427060905624576575799741107428182681397166683257062226644989720362450210062724911579295420596188356171871203856835877450330407289926722077327117625114305704132366144997935874502906685266089594071118054262666414663084958903772985633729537660510698069490072600506111209431889015255930290797850314860903460855742234430140375002812380930393163291524119459440409086777931102853132519933731583109418952157144912692515329529103490467267682202510493537855444161616858125167628635827045725247536119308164052117939747037384662553724488961864411915587681159301020489159274291853143036844553233238821078173219462234962478298807665201093850906601537870392682684801499756032895029529328910842645747971162693505558431842156670552095214887368390673695215894253307517375833422507088408521028088217714025361947138204442668856088857539288551299056415772445614392525872604472161623419906515994818269364561189939180781406162262312571109824202862827736988257267213112040317281927490906541729467307575174021926897323410160726207670127548562714921129210504193469216367436481339093974680432965505284621224091730841512866338468789330519127131019593088747700476730103625954236267291937740097016086951015063268057837317413875015845959556988700750572889623606492768511959361034374136211115333106997310803069078186395503315276419181221216194713607107362121592648595393562152648671193228517012226305003620178583022609620227439745641465659334412839374599982579974023379905696243461417634746895984231109836462165667098782430028120760372247615132490301158329043694587630701904195263517877342735184742796912920694762803074687509550966158516857729951691298706501266430908691356398821726889154379889217394362936682783164208483651288192806748868814758715086080366813898645604662336440435960745530023224190711804257164590137934816669972421653553724998794003777493676035180816775432435312590436398375579158037128805588498294299242310931577253832897018865227854936827723404265870223512709334935375208728575629050030890936371201384897764869428333424528679107787693979864002438487373968016875827803375599916208431382488462654616555007462093018357071173766000110261823387430749707845950613602874897680279195354817853662705723149721460001905614792491126635246842798099982506510951362132274424042033431637531344363451199608382260295006421338199517200019175653067261829892106321447255062272098317803397371248998591919748473119204262453801026595569060526424563496642136391547609501907481864015804697375283581934815161893098615802950929858002858989555166718833448955114719786262531382976368857508181926235398412350967492656190296686291511404628293215035150479129070511759876889949584347133679348944039229961137528025260638434885691093655985895692821109358870199752809141682673985434626183421388097079204405747140136609974371913780361015655080660595156343063261220949134787463326676091333657902199985204806607044651415847008482171856014171773886719279950509896171509867090106325028428977717391826183287115995322254582260755403518984110621381274791156929702687369764890053918721101433276799763465441402127592183816599804835553653669149069762959843125330020922663931910443151651756630595341440530493616439612080779639217145780827450729150040203740220576124919309439708088827746782590498905573493889698888045334644905867455623035343816805387685372601627918378596537126987892713839589865354878052902496068106098772832886702446219298093525613025249531901730289882006369853897421693963374925851569178449091002991823052364461508268360250743754153445178690778246182366349335202521260429241798486866026128955839727844587970240998974018083573762068012678953410472802442002943626302744652491800245089753615456003838371947437783402815693375771100840285446091713528118340216651951272628386629839630830583839732312071842768125543830887944897072065964720196714763040582343982534181431994272014894747720767924517728383959213955265778870922049704431573412028537373047327487225916038744309541590847965537967727072408661663836237498253710198205334075138212234622049968528581508051710273126382951784017056857216424997221370689283234872174641943989005628370362164834344514741559580305696724375593067786042267169470870553231752353968122465497994786975117210191931583105844729017760213880981125793433475685021145044025165455049403501369572636697281079920653131085793861980537934757916257249639080231600046253591255442412457031292808088096263243874593113774621303756993768844329672451097629461730701457031284154066024780832609965308750013116883637498953994739261460600247110642392019385445647408911638490544725667836156504469599680094102310561629923081943455288974770779841796842037943484245675655783312511534780219504273590335032755084398969741804734687734563127814869276417804822328970022033060565680763856362494081939518503195043787453298316277797392378272236079687821553606551269328862137645422812509514616335799816963506290342826128133649788709252961535145035502471497368003032082994381059929608309970910241105673386689596519954764576763885939417894272203171869245855387875095358336093173457567845386487794286304634575225917275988956515941137758242463082050220737457006887134513028270633780813437943802853833742832873582523834304370482547330517241245212251667444339315984797429174366178828519233786380018964477729080885136057909823281445813335603757186041754987440655188767671752453264536320426133685102686856798575875979652019979558988386599820825793979725398447160515662144907687609526931783613387964052717459128166123217598076359729613811771073271288165035573634664019228999480519986450120140652802514769807972696200864080670228884538241087202176336016673816279194932665065326211313568735455689209960319977226655104781360968031341714104958926521742891052079771551526809956568376974740604960044390729855207859041983620691416619298788472666001965928928760602074304813835632434148083589481504598575175116948062509407735857012089234281404462870171046065491175426783045239903544961171169828645579093399982901749658743169775768109564176159975015871317752190627884429632329649643194941169895285418361720867190136704521038213141674569846876025429670109600068027562050902969233567191341938413171674848410451146215440895280444687879545631481927322851320623880315063475614599832266562408984517086233719611555252768771036921622154158771958397081008814918568426654922446254914383956665112407872215188509533567756769137259216479349523169451445301915310683139502987244798303755224774975213489008067090138272018900551188507084528080038434466514092151560225571102059558660390459859418094776407078284851707429065942630158892283747590692850466454738984622555174138824611963429800155493494907445486934034529736889922775066850322123787849192692377697517321525826150241989493556846455677155841774024734093835328919487818227487488987771621787672109599160691238305394285225199950084192751091508434002067416535692356295135004230772929706135766075007081864422348095087883409356725000864672059479276919229736654328186471297462630711760916086036178120274688801764551615913456285637303009032990350995668523832569660500244109809398423505875923370324857921486150723571569269371796559769795617579511715720049201799242110455778336924984900819547383969062790288949971680349070679103568383949849613549751280207016144444319494803989373045437834446619457396332463147720997621373905377972813837452980819831213022802655936105415318991970598322369710368236744211948455860239591622671364140205812931840766762054456355002297676688731281816272036092565910424964448949602968832911896163884062208081368034945262339411136705732793832651008529029006151463099658731112245212550367222571199220195662407829684216414475858444158210839045939115339121464597116166812924854771378839306640791868338809290420903398621651357557997470616564975585228256131375052969670195246622436895250643909609696185782214552169070607269152639835512900066522337507215705680556812426805159446031371344927990678177156870752201497972710477800686639934276551753627282311436813489593369566959680974484178511996595754831052324768424844433164047833622346972096455016427665910342112182096241738628535294434421177024444842465275467131279494712800685081774814149609876564990503750921495747377753567967243261516665013890515396331623172012757985730613631085138366362690417411492449127928595423437706705019848498187377943422363639665683020052171127754313237895339194494917375605676645532048194665862991740026264001361856102392035768613073224295537585228181369692451468283984380646909376488282518842552715258512479303629759827011812716929415469013867184139635563535460584264816914602418198833658547856209345613656510726715113799126365670648202341797210826588965400148257056219323622853927496093295218115075412880663689875603974584402588908228464070439422514042239654733660532054102366348971142754796519907839348737284012784864846173058511871858427155496803247433210137906713071349250209056509517274091552224057142464907134067933346467085226244467730491310301224662378819295033323986921747098181043798836886482905445367128300855691158811507036550494593188228769267980802179698716482209268479637999082983976390285262270676336702980383160993132682481463554423492722402521387343465731530217751646756199760759945140347229398223166692645657989546314875606256870936382448054157309061582670342167300139636518630204879027504618084001564087540360016635513977873996390770166880842878389155842313653646284348487782790201684362202755970909109722102510999754299096211815152619435557520840146143724052236539865804948783994661536288995131077824533168731974741241811564666363828098988676501259549697925733699479343531844089252294969189590715459459489477879788937532929986700692608393195547874336653130804656383161297426669131869684629277591346156614478232369641972240599176449636774409900159743873223122954589335820432590629157122103671720437778570788495770835968507973197356820219472467832867296055694794419563388762737633507133039393460575719379131678221726667636496090485847190756872094050247813279742045897093008792300949451649425262108674242697566107743651588242734413196314434996030471599036514182896369780627287620696869223206181433525490477731535501770986632047879411987189422748414178958280033236757158734265651004695531829409364100029575570169394726609024531531644184626618460204698483952990933168586090372303517576595629758751319719221766808018475059404700162355373600920852649221646715596038900522521014328780222593224163490992208372261226023380556380512883560718582827585682186999923301448231226561687247022597246597390459019890848956083948286263214006692387204707836889626330157143478027633660804934913331374966680090341796216504301507092925375462181554229497673746184763495374764890232682461977152195443027284965268739847716255321083093275211118974550173012931027830983277283814716201933157845756673870506021233433426011756569586657397447388022212846108069556803360066502801004264478413127240812595022653113364805795406832491142146598740928223352644026555456480095397251369540530365774096533548150381967984197790098079637439644837603052100055658744091830708920987508164889102577578094455012818925867851328626178458281495286150583174086329705750482441796355018144868931428859028276379680726753554508844980851299216020143114756934442522736926887902384346079881152564126153870312989935923972711601228973899849408727473399673084949984824409862216724578146914749652542698601330556169781778123700339861373788542725803591133198217092286368380164037680618164812593434216637929356272573135485168276864489655936734528849748153187168541671215807507296322184444403156404390732508740613809549782609420175785204515457106307993467633064310046337855029678317366914381007290044260983050000484424760765135230872428621988998277892538859670633766994569018945625148121656005261158769473564267030154721326921275063984479637344811558889386202122435246806373831463713624797502791202229798602343364875156907293637256464498687062157208546523125340357001144306752331864346508705758559897867813387047808070591682942907676553248235008538424638106619406170602824009122061983159245759850317693010574407159505723127579668255953785369526253748117527943368019986889205527845310242034246317366928291175391657286378995447015420455203670140918653818087035511268012254221438589331402446616455438627470501654586465013260675836461688564814817570408978530275918157770131830358809811306875652381770907324993655971743868166220785064971424458123675138868029672456389059930445541721658513399087376193201372853165043856712050929000914285849731303129723844418738855674719964520904086694159618617893107269455895225891017696915361067410136775535399272880577809492813273971784471048747761451720249149462415617502621729509676862362156244930893867889491777239050707408327312556950947018049443022828281439141613141768176077819372877087110956540936886059643239593006241559613074483853352067342352948965509358916834161977478997728443051361554540263862098214158221655348709568572762078152300143263195118080141793819668250728426390606115791650009527359316748494497545145328157756520726634295692571426612364803668865364093886516148142609318184975042856616446080438425184737743220412934079551623305697038719199742923082154750236524483038641289758531198308773741438882838575179801329313797719038517159827596718613862803945229852044652154911607827308060969662242055122478104153544509617121999338423272508661436598625573239948759383071876246953356652098263339518527715618511279698734075651295329389117478193704552228664359391557517066960669818416119805312088528859597991852482946688913300299898399688022791643265342075462974783495278049617950118280703160960311515953046384439208977827577257678533722282210706921985817910475295216536227125657294529260816924958608617409066406036035636855505086149951089326818160718387036255638256434251209889561247603238322684749180838049869166121887985390139112183760965291035242968224547912899299248610324092608342022183697610377846866761547575524419162927701490955237223068214882188021350390268129123637850111607108747451747414188625186584796554439989832427473391984553666766758272154105762677562927715327145070802234544825023348809019987743538452425066526534645947161653553916403117196853938876279764931080576272656876476917443426115859438946762795539891097692425738720131578207712258302486204067468662709601327997381268233514654688253762216878391841842833794737902314422181439036448407249144386106404833216048404684464421115013994870788794350770381297456819018972254895722496490723966692519379893577445741322011731123022178928194511037157110750359281501009500501620294610148739432298616995811124004276872250841946704034976644847742937780402937464675396952823441426693211712876247116630907616242500491851018293372440862264625392743894745952319346243375907508867512147890034563239125917849009746551690854458029016622202162705540542703140422388167766823712535259323414345908803286246495706564460550550358150635377858905367494061089398996391557045242865041218964664993038266245098798914311579121109276487984973705075230532985064862502346223663600133519190125065426532294490320637729814490274834983749963798379646676977054797540675476227848109035500595860764983403439204931619275734791293352921835190487035020465358202636956871241125387963673538322466363030623267488754842318238569359334299820162325991159609711556836290510203540689153854672430814707401203806243992190026988678203343780664783864743502730625672363866399871617082391204038851081490467622958551583317156974379004292205428460392741873556019911726978492548617638086960241313276216994329271970791629744430363795785558671836966327975336047139172953916826545574610327162942618539433239607268370891321712218094742292599041805720095096101443061354413939590200292600516827409654071382398133880620488972443530838108052155696652934771319356221781060840199154361041713050348923287300879454746577146373187712140694405045815621567924668476599397812955021171164909637303630713203545411741819263483588721596454212237291363879187046108065524898563017531585928724712089069959666872899302343825097309334446070081439402211476745862593606064227032627480047924889297978837706406308612886480216308509925595478662311561917593020414882069025452992832106612589864242170452068377988760279369301436450720530299606236801522178916366711588996664704896804125581079391216321776585835384178264974750611007489988235158002769755938005151289496642696172528612906869438083431402783734302489663934862040612682702251026515816951775603740294356188052985689559761028032641008285619400546428006247199500358434024102150120090912099115721664074501159332058808418460641056638372619226566229539117528294459377551710043547169083333806002364207863907111875042554725797206210719926334898241483279504290218508460939197367909077905363314481501762762210668437058398697845772250089997361748456464667996570446988060116603906592865504431629280362103951061172056996726828604236510426586292623068624542604300849123882180445301956391656389215557403027282013286816798311525157880611979917625985666934353990856549559771750865056429189614711695750943489320574149143920060787754462156460652870911478110248296241812221651215628930316647653928818628660836201466330897850398344087025289578280788243679015325905757656219649378928013288975790019045717930826170874432031895898742984741961559430230933201427350327202632679140626854531983613751187006673210802532418284338053385233630393736163156769779729076127171797695244614774468794269895279977665602202897889147983699972706515649031681818823351956741351335476785988122232109150209695783151290942119724277899445176755781836957904744945293644977730710665421836437476465767467131111704414679981958317086174190054753432681783336626750162778113658490556697000802809319680858362183806230520591287785462704641119097475071406892335646942331494768560000899097652307665735828578221555305434592806939216312642816368394006058773453083195526839091846154742204014239384313340485564148365462402201153248078206680255809649370098564759593920563682439790137168605041394685567530064568321310054786230821679957356471956719928294749949878510584590346797386969677686333312488854911380246313010860408409354233017302969755589490747595237763473703453770686823685511996745198341299822756424728288778047145363486775325971120232386546274545351353937690116745480282326358917826044230549274589917911420568021958177924745983402016243428197550478884851038746430076759648038331278138655857393623271031923586298333086825194078156453438476561132514971568540299998603231067547055231315136559666138191786613571022401390296992476008440463030971503989687009171166827597988193221376706553935202638123525006616404329228474645926732755755399605523567902078461587893757997484376102222601614705112220707177306543618723220484736061607007268608043079938448101624126437787690415128991549633814986979158709598440880147311815880508470821317338849736649662176285696095661597097587172985252148614694791074285825469524703379816816455693405193510528938790757713917530027034725590674492503009987981970696400892305462376875782302032891034920991175865811913971936916929907030775716665096074125447984995977469639301826034338829992659709570709064813964037078221699240817757064782909597974985675768862920733912112224303573871765510414789729959162401751223277303923824835454960776430111855627217745600780192274142693423107639772095171609995044324039464544746203398933377230470645677301280383409265442237845633127093033508216748184234995812775612449740970525764695594721355432299483473754709688794479374031945185698570723606960654207698709727285184143856846768564053248633813953003507339062126760301566706424861375180844331790972087036039811928223783364408958468835579100090606187785118198981213523495622831276310218108063392067321685328205788467757167167318389384727624370316082505954688246137537454317217082977394131100775076181895745750911002769807463104253836745640305409965577607892520409549158429508069108224836513431396811213676641545556626598604680025112654361005398165867140974694747770195346507401169298827352228178270717176271099427318887352610678615003608368018810382988330769391859304522672818007256456452974702590517251296962512793401233124806593313409212454966696128536304117636557800059030381592902700478763303454007711617694193114783632822668804046602824786939632931083373131772373839490188666325682051960567446956531586308040953411684898912970566384668197237121347472645753675881468666902806721465131235812816706084609717372259017701362734409086393516226290180720274477255496593281866220972846042597161258347274525378954825311288792106868938251843002375774483814363680199500457370913934801111339003653850394396870999818872457660560966336482068152100643746812250777778298905702089197148223541272219357776731329249491738627245978280440134160382881762171584801187696710799134431615618822969276960873215630967072908853548867483197207369108754609517893990156228042987828897937251880957166581851424804220131923134997441091388564922232557809731468855139655902797027071686485485868079288307956726292505362564849965478460178315478984277981541831606520399979900877272392422912848202173889021221368127423293333915589228842266322040552488375074155175330048068996091825126338095676167573600880394598151512590249171397980042471298526211870258690001525884045790576848185087240073770464368381434516797680272488786190435083888862617259708677021611830877913624430469507056072130624825361710206415774515537749049039222829531826940706925337057660049249745925755140866218627008952785114875075241717490136916686508981959847208088084251822913436548090450060851594690809798236031606219301504116629584908958970918171269358079442371333859614807223765499403318609002013158974859908696154793858487447638103287284289710596720869110728898286077365302411237748558053708230161270225269752109966763706957802698639763121675687604729173258229196476943005181240941124186808806723615605633976936453944705386266257197399170943636927547402454855617213143575890739155085189249343625972353281907019389131315427002706672337393762304819913121781295432918149421405942769100561800716823460636776885171140192665378530178865033719977831157112963656413606104508197561412682118462236487793567802693787608821301363895427831046738926350396633886069878527461285665850706734543844462017624180447074469480206945070897658921170955598093600624221844709965062538278158318541740570808775338575532990649776607543833347191731018456544112529298854875656125305607015744754451434711609908379214950949465771871024802362763969627177904156196821771334312280622924915354790190618642276610023752613531707751129534690717501496094237301884496623989721352954736222554691011932518845622355391696653450318672716425872533372591301289361914129950628245158015681021786265415284669834155801381579328954283751594921991223193492382399404869426235729367524793059881123126014140811525583553263707670961730190929023124019039371937165088582488048296365609659856378139270492876517064696542838816196918615306751787340419619385275177711144295828614875605897263559385186003696008752084934936495730676419668223858737150370317530064110569741248401942976754655482951373823200185887247844573765975360242424377832196815493529354643817742602036730083369818716335612249664525556637806919977020630321428905330459562324531412696316085659279536658909789067147812533315109846733210972008962380142691095139355950356916401850997644934189023896409787938270545686157617446044123272368525626877202634251450440257295086356434444032824514709551584729600063241552000652682533620608908429606897079084575516158500619098368740821324650637888474399964371026605968378245128447517639224054872737204320140265386169870989087322594293157394996867824171451657793703579493805383544045359851271154901579882934588340413906693945382215906370212912264736935240407111912229479416678452375540446619136960811354667967826376062175531469953899492331859858739856630973464989454001495347044049558350835545605568149588564807085883232429710507728276382677539114024671476700968185984303720447172080659550060645120760340261568621727157163937010650218106595390559684963324315994510642466128004180006757881826546611721524547368521380869389060234386375709393481928478380350610090662394900882177252786381825172908199635694374733565070499786856549328099032087962841658874400067102396753113381207492392318047951029787266966736590625114949218997421657702418962488815750080770440307318198454415375373446445975524375539266690012902085995489583153973094536224794962628900927616414143935865617171856585367127348112879576222310274780751261270014363616646893260512806086763819636770022650732735445203595291989305147793320385867977237792285561769829184284577838042009830184781436391086047531017345384067141528794552648783961327575957894652681828116129762581504073734259340762779555002340934446281965353482315094566244187276205639275513698287203367310415180771425502075331830971096411075236671731820195463799211309598191127485758580065924244753781597935755694237048171328041026210267220366551349467869362970993659030367150170309376250822748815195704211925433077056716324428350870196850625780987366267594201068291272066430868936469334734208618428549792822673532987277078542456046841834043196332415747339965867556832724893479527949654177722737244580005358920531437027241964793152492022751108668314733591364190953758023726777471368472880840797844045370423399938360911385928638246606902999330896775878116203260788670611324617754723891362348963606610657375429352692753853299482099078244445618171332082483723214347425037873128455739670887810470036360778843936173884911520438648699773216300696124460186585382869790895489761367574284517193200467501283958989043198975717014615120885818948396715172225196587814964246778643172158317239137975130463158447529939029176197775974517057596806587902800323632006717284474972497990378166738866089951438507556602100156388626075783383223568703378908482445918049129528840777774652842671349253648814150157159165907582112317111835052772221343642326032863270974388258474807052776459331849546189682728654850165966006338399093414688098197202107002964146229870206541398773797507823465411258264388739425488815172953686517242108713190739378746175307239533812318179098346689469707041559804530381690351504513165389200710706968115717952615187089927554479043575308393643435645130694792884820788424073551568138733454941983380236050541859308979283337187646071473669274897073996887734003719058060973542896681455190508824597110838404900420558065096916080147526959535042478443763767430379287998872067516229699421847766723023334179058511455892069745731949456640525689238008067683256802083408935004577429879700605952970691233207934010801808954508014453819358425431208832546867069555897189114870074859618237635267902266081698991503023056550270660007010804227319410690341388064817562489580501393114579787525279805664137028846422707654918739809976071910414623918911272831545656376363699781624321741784897825706171110090022587379849191388523758294372754218691865555448010807032409684905032843559126224748328350973044281020479785183807042364204143580768879558488550192774904240938204035020693614083851778375114161306639445167142209863921487947843911822533684753160937597355547611457407591921754563995112216781168802222255786981307286567391597436174416669809902997780225985444106660810518634011846119813163408493964739206255154034869176667637258326879964314515943778470951485218578255549891161929317711619049628824520422311763705168655235608290407396697332807785980405625779845344861531756994642443232965059355597549911568284263015843345162858758392739750963479126670781104079166637255426002714634919963549252161698852575074773915556471734186250098590251996026147480364937778211656978585549812197724020154107004345672456748063754039472608687042404596428081868594995232848153025288895159511885818953151799023881472604368068647162635555670273990367720876392749960380869314514017875384313186945343787426682255725507107120610160581287136316722150387851843085101597589015488251704817180954846448646504006009801569791247431659609555573314297155667895514110696761084597912931162257613693559145691190545674600473524903458261272629431686677565568956786459036783443174153668492871942046563715207322804356803323178267184442461455254505315168919921828379822151547125390781992580734369270050284192684180634136747009964015610384220212030718614956629345994505393150797392307836034631720126000764484686166697193841225061046737867004744295728822048051457986638537563312354201527816720934734427093438088263999770498168968406522266502410747022158313184119099997407327809739339321268755977518763315258335042491798333123067555985390284133035216953664661465460257295009759236927576941909824218840902072732094040871878963455385947450424448467125806794905034722546002367644150213174152578694792603673722860018250888668652386264454224028846757448783134402532715650541510146026032405170701522062288776240369229856050410587052911835162856318241769421008880941788547876357951704408543534393974367356543394242836918241803801006787286316989416049523682616387824831133164510023590680339071391708862829778655028355895838657778623099390051370898670920802603989647060846167934924612813615118011937630579693454979083232955297420158825302160773877439374650698803855342094036396394542622227562900376234878925533271082229411310825796826951441571545822808931750662371704548639968180461129807365829249385463787763294686582175474437336923807969175591149722943923371446320695162086301356583163276495441590060825127745272212327008200104898895835327041314607469935087414702862946593560840346580769018951259085997680473159508272066627957287981960811781691201228596317920491089146073272233734293285926414693121492248453830600428730626143948274235034546538980705845543348772071876469345682904647450026320866111825224701117439207686339344382919166869249698738558198873308034645800891678856174984340233580094810776836898905311211976081974373838052880349544731149162996028338562623321614081494355764044518209482491165058664455442720223490127706909769208385094314079908978322099636853979257882620581574070683552653191966918506370813189204888717589151201967113341465400866553675658845052825536011731074904813349690717444686343505116810870800474768375233320041417172764800143408833533591299414680105902756679755131757212908660515702524139639877515514097362437118748544069531815417422814686994311365682452759554123467376010042947430476760540947991467237738025512379389915712648298453714754092166399110194759945466302257945550960047778708135558022331479827124060093710727046956766511716599616613217181992749152070852585657895942020894670792219246551007545044381211625021195559758764023424364624839265134297845339949376026799933860287344434159324853719980254705060672068154511309803973058340097549118892508009727800266071344909233721364428672347429184654060276111653898999753641611031387062492534836710512275089264311655312767582317990056950979037356176679786123145288711070166883692303327269469600560858228640373468459843464456684092285127645187997043782248340512967318951792636024025645484607692259524461172408742747904610615756876903301594972814403027944479895529863605108065993339606780735428344873141946358490337446285078623413649565765714116994317360245492797675603281900307295054045294504020766049174741100333426532901092089123494440127330311587299782242808096432202136289456578601174458351587063725286208057967689455750524332830333460868998671498853853035719641880355029182959266023501110234914346307270583357563714317287372357940479310704030313690679359675624705107059019157007921089329892222868516007689332663167503844376835943250442964684277406135103490950168229867086975710017036729669735414380733618437357278069680593154304097396146802492135764408824266418516592100501020589137300320736460420363245617706006002201991025810656769394356651600746102625876341495158737322561624494603616128922532531699972749756350039202829364373905001293954145934756746412228765005842871061456105908554175889744841687070832081070167202999448354092148624806802351708996412869332435940401757674576456500124719429511250687891826490803150690152417380311218417748672590147481454083823382344973560959923422913002826242393776397543829133812823608231046326293892879080727466058708435314171271989264584003269930472355348004518002359071486810229231122937632659856860957255632742347551836317633806410720374344799138708470894764226337979846975490658643589919542197171862726026161844458288496900281605788571972796136603815898722529381408243553998818546248708057536334609214340231827566862174129006387131381501390060033405209634533705169935371574752691535889045160788290825651577696996736792141370259993058860456929642946251128817410803573784414210286934431020519296082544416149804075450763867957665366602284436833719784786861504008819899694457176190154390373160809063624915700671051492222360640245934688006844813411441596746009325860514797508263360065709293305643313652432832951911558302119804877352276906255443648030155391193386496121704144219978236077523887349617251829775999867828926425368690026439123639740776959309788864821982615448277831781418050897805922130779324381020012325463100077983782398415136954775794213687968067436713559097489107394213169294047972381616955269536588729594179118224557357479786047146618893786742663146183122342027826120241647903927236800338612475261908989624432861576333444185966114586737184613854178223812686661155913385687388422192723329387442731546032890075821071805048662311069954810628866158980016835663069683625738076384045787225719362490236039550017709914506300637782168166250365068258640840235134419115537574436387305750260081064696330699382504340179587570881118381706295314239497439102425186143720714491296741870540086140123926510045889886341429252075127689658790457518907144795513583887829198091690782636930749643767665058242389727670877688331740164917483567155570202862986759342599031218038969998798252920606809661021248227044870686114361857973185306302525645110886135940091515671622532746573676331881579427267285849187784617317551753959881552116670898948550945253625543953608203855957840017687281520361120958088182851059371630473946712919599248051206642181057502177850975395747713837100336737715177686514510129837748703727891513073162420367699365465538638948020952028286648557512521408603840410842050183041300572340649918048535192551976109093812117579631393640902328313767536829526127261766303352473708907578408757525096598933422271078493374543219186190961132007558194322568955047021049938294782764900195551284956848508497325040570961830321808428855829623449267567964278848418385198088348453435299655411546468312550826614031406320670439713137798093891435096280004039372896373866272449069174224870829276683013725070834058789328143460209528702231552102311151154958289676495112452897965273975066677142391929262720722718848080492365091799109934693956894777822270013386397513502999479620267711701143734140539646861672826584483251425487028804898200440325512512311326068940989897271348064110314941584610451464027097138197820072736578959366413939048472784411174836684585845789011444160201860035161143081756370077135445321771033840336510298370955310358351097406817914233025621649643934391798696504933492260762681218189735448124230603777677487958227794307071739201756107997488458673110500091572262356366647874879899846523370600102076635098205747750968238908886883889002850271303096384729435508673021955077291892622735941954535638302800923978206412201734786335673918438986502134858352265051979902559530019613984876231249278941678657080836294731432907561851289894066042368335795219518415042257084308164275602608900171147962112307613357252546137582255053661928245565904530064014468554804522176954210334841319099304254901037642182744525980446385030801124182059931935511114687873762381432999472407194203990186486528842440548716804513068219828993727006129329521901160479235089212335044802763382529732351887264781106398503805364150096498207811666808393665355705602473884308095117910400860163960923138987421235606451786271439196137090945137297135973297646191656713251770072762384273960270316838193815350821798142759670352605023214566297091422346022626707022785854739684866262413223385841695717202977414946260034058306619880679424860857970949019376446788668520825691463478499874530573952902375949186131567228052660157397763236262403924599996572488252306895319615055964366523192270894415594616016721629006500635838551042086830450593736318875487301966708780883501039593549751562172898016500098587143446050530547060780196332495482224971506270996916516291835522535451630318584071901456548236734547254790029491640464609093377860543947269208137801303101437892520428064801515458133711201731309115011446648647301004622163146849889272492844480303742207164167126429398569728707305506477009537267792066032687158338158213184977798862254545980436906926710581832739296345242666513245988939712315295471804467873563024686563306343167994763172229960438374864123711495125420438630565029261588242190944684154691322370978419049325102936156368652874078938119842122845779835888862373957705508648536606673384190736991141574625982307645499985366940450561935609311885763522701078838753277304238705546235059800704535824598548111107935518966319122397376342150608809573827643733005839528287392948379619575334196835128811107098545373369289750261926059257865487175772402191509922534096409602683178891660771282468316050254772740980353090942233547616171647701064671503249788743653783581481375249656208094637728322316505968700004688314802369406230171714674575298027002850891493056384347094925462808907730759611222769079582590745598770989437084951566203280352452623507273762971093292858355249872798075468112348135015989805226726873697338296178781618704749635543878173798113461793621291916735978515735224553732715472818289243167936727499747496707350130636311195527737441337850773309519480262441578398035127387946295773199144618819910750265329426806274464271952448291150373907987481424314452273605341499401375068603498003831042016637644848901202271364437487746044818040105420246325587601873154839048868814178792408870011815228308176312081379604753655445394177733004592766047664038378087924300368830581990125901260944762291570223152786678048763010726215649510800961747242831887491054225549090837239868376516118875094299994381762485029798805118294026892762556583974620819990006725092304300174469089762736817886835831889589857748663914732868427531980430659833158608958073577861005840535590524740716547478196535688505594193664944138568600740586622363762854969563907544887814751456323903353086948492375351092367987519939367788838029803953162391382612658188327844861256279761046640365391679620682431402574283392662673467529648190929740303660898462589670247856280178490051972293056938534486692356771651437889371664756128737759325414538641046547462052765092913116981116789520118699081421220106720448340713723128518641571157011575036610124887754165793465542329290021379855274075852800034655321186906479746170815662804614734251270558749942596535099426128174313636300589091449401467937655245903029891643363068689550629490307910203106194685424904788636225674499663501107173553117866581940464482275412437004046152842942142047998511948591973516853740817672745625711003185340383214274214792169327165650459339892023088130651464260751676710039793899387742226607257686910299922385061995613923134298691857457066231001908705062607612371375047241822029686725681509889691524863637299386908801448181515357645600621474184851004556266201237557806575659266715513338701155047659974046985857291061934867381929277659843819264537607849681294830284352263924878288488614744899719282813177263337496897016448728590280681882634026671894264304401085462869761490768310213610826826681487485931266263076671637378362488907594919241569943356879630677188947808675181280689676379289065132467509134392530319513627485766339483360178535982584690727822777190142798518429911094679880407160247025707436842041928978189765018165357159646409412669399030705616992490819482324615140077217528519074091854998415400547630518728692031904669079860939127265471868078464710841265061169695826988487000386505545783958997069315949638780440598117909259755475934831506296920896705195616800682640022262552871343865082615135891535503120955929097616155080707421608080541595140345648671085196174414802158571303711631282488785613957198977987467564224325660651639590660711340336162319258014675704983531473029284342197286535244921081391277576920579106045232275316566968006431510997932633011444445212583854233882417133674391250779177880946885907600086023350871666931864994229157375345005512922564262814405267587622432758828216093557580077406216932791612440949642729203451770597932520207093456009530471016024743495563514627083068705592850949973868673608497308007743051495937410228208731033011247929890806063848469143642094079414657546112862984391369048772049399136207273907109414464277096036865380968480310098581034766608714021270132396077962037619457176339727245131699114858635447656248828915257818707347807685098058872141870248026123112602283068975466979872357734353221237979459832183843316229596920466609347512217830430503445367391713568384896712981437135862512827112251152451075735832480033619059994772908668547480635947707514502710303208371131818225547337138339685355887873171786512986063900532342393126810717627267766780008404903881708419758699741533123120007099135276326648250442495259389532847258256114539405566259569238759514166138390468174170641312182334631155626747995468651253637735355198875875205067320322491618684858491893608300787741777895501409881673441664489703534631218536141328758829984694128641512630794601480337118584339389796515897878498741790114662113840169753979138890303599609264118983627235147153697401234983830987931322110338404884737004394967648612454544365771478477409040189803185790856552123625893008765799395911603170784185772589624298658444382819104465968511601613327178130447605418807974622903478230391918417433347696326716410982626007286476903046100758874422636296514584371226095214527010730552489018740494917155841376566926768127129521742530923698948320759765021462841980565043285553317593982867891804359877289179503555466196913000291720740807863149810141227092339934249932563943015489187549938024714325505375627930963615774188634314254979262521776514030840028259347182187862013125278317503514819368049398292367499469408160081501432179692780519885242772608353910351454573927554584142597653151298907879735999643269493415781281454262711154799797782732248363375724053493598013952321352657511951830821332016673226727725787538005295903695186391849441635288170718927090295402763426004158092730951712327268840759279812581066541681288362374537933393957317015974342483893290793106912489914937235963199980318640373157100429233548638081095076891862041322888756140885404980908221884766294346137119196644275616080085809740592414297643580143610041914413015440616781774886462156643872864222395126951262375358202900255127161139164171922584492392238201005412093050814373063337927276373607244615876622641815400166693693136453947470562099218584072405056398202295421412037430500674697859821469044569975297476221636769688566103219670264766659702700755969733001624275429804887183837431544947204963886708595395873061808181348596889656539582065407292895874066352163610560341508980164487213117534154528001164225765885169256661907510895808601487933283708679154865116179646984532197187355171531137454995886874496338637007708974502836709646602152655169092962469642991146802874911059251357937974076157316295571708152155654840899773368312670754038362877837083055445970981012515540306859904569802390179257301106616286561255942007130051711646529127377760844129156541952742799483736232051396347669169463005028233644536329316332631520487144826429909531446729631092883022983287312522456024315207513318509085145337276276776311240362543931287504405165549514391159446568107228933348247639876537218330510550474254154525392203521901699068917051052227871093737280292908377850510688098980954249689836926217148605619768785563838859153593784581635187954548223041328142771164771865363283661192481851307543881540401600007759194617044442116386273322152850812246349775310299405516394200699509761637396023407810953421412647464792516933256233966344848802526407978284155879250347565986564112801188825113576651118223442724380591494676364513360707971741210932078294599269201570032505902640223603230156159558832833041333035651681071477286633499137938146628736967902919791082577752439967800715148381210297738454823600390768453307282300852873590638599667069854163001065943223308354532116198137962053824535181473485490796495738777422240984152927763286618481260028492352118284567944858721933515626428272014750153579315376408130211704828993456755239687053465635084196060423630518118701326371365681055898639400472513829151353894151343488709819368949152590908554895327234122434012588271014818948140967686818500252337097079660182757342339535609908740992288366580375121667447384318524078200560912070227020914987205438030819838118228840070348060077752102080333244453478156036677988672908512441981567137773125896611491386758725915344939055789160380899216150610240594970325755135058250807078284683900981118474527409143953001856515773811375377717448609543079635238372049667544494360805373083060712152457529326142477248461640565795195906929716204711615905702147847672509625733809426480410853602400767182561665871076201034808500088969488728325506205054255435682092360912225444907057661934244418354125610001526038189161414715992521160308422231512052572564671465663590939963206836660614673802336366791149558178538436690414070842570748210978715743911656416786601269180700134750211091669747084512552435192365058849313493838249364998229920069991733957194541234167762424192158423501034489813074272841549851131181410234395052548697849612175404934262281519905363636467624626143052952379094531085511716207370849524480880399333069436458528603860327401866885185707975047027216396891117987095119840080647643476224049249780486566185510915072744724026470861212191869483242816670124099924805704048339592963085030531964109644952005305924962450140073074854044831739109138515049795671512417576614294856472859686432575853846709846740197794791454052601318224000709257815818654326298309292660562883931087306827839654027114794432361914952721309873110050843647744297787511089097061143108754156190180266750756343279530134040966805363530969444276928504013809254005147180941440859439411974128685247343403008657138129732934215530900596101656943712696131652286617499201715156837692168288753041824206647061219007017795825412020722653002401353525485957311291705570383240468141862317032232729907995114893162904134952110223641396288730380602217196323260739486790606320230259028080040778052478545900441375975224917235906091068398145882484801889035057082925655364362245777410709510413466701884654010628613607104284769488727231426475364480892124941258900183559362300639015320225487530077230922318752433705232311701280175637986513216672267604451286418489011556865850604848733084013583669844720371377532033498215708876006686516681464871250015336524939487951004858402341991347677837358441742670484929977492408104984124577308711536350151855457549267416406925497492493772545611500172022149297703976062344465804779836101459112920438405891547830838031344849594654577375414352397433175930085771062444584995838999761440410666034762170392168894604808461763296615942784293782280914292552913298322863578409781767162979390344407925220997866452774646975351957247654900139987998470761924130486367542308799381613565861718353682962579835379847211135067281829048686891684718856091374936126874787057009255797998553463492382984825247959531535937779861861362891438356999788603692714029686880152280819442155278310072237450454457447926640262753246442882000944029081578527217438737255224902544562617591503028795383090938752390569865222069416918308765131649299394398922742745215177955105729696760750186350626149889410740837850274146304281464501725130536870251411352544675917866518719915273026035738161322209327702265763242430816239268510659646191197191192135969257305268835341114992864955500352852426150527599389707773984110401519648397593879628806461381891429343493774518595450117446332356231115485646149566173514278207941615660390489084257552913611532975895064492658971559211825578210616020685705041454337475308737924357033828995122817092371668500739925217970294975873972048393677701792501919217578691003318165954212206565472911359754887156044533761989316008533203992819775100382746414210946523197962104111414266714421266965336668353336200816425722902781033372807805624134693049773693065179019664075532025474960804340406077595310736916393485603322321440784781486011845150257314081614704316713767294836251919458977083492950501805048428953036865826631977696121457989089323938798563035650318021344340114403838208528529958323929632729297989039511486023134355743414477947582717579522862969708583374272745457859551986937847261850804537622077792045273142278772981217302783649993290306044959161809218745063697296551526019702848456191987051851987653114642564735663086205584472038958333820706567705261842562217735758231882981885558010942136055873361716039106354519364456407192963499184481168673534859663879327864932893308484459252867277880055289491564868370974224016927028493439610431563952211598500526269895283024119260131490186830794550631989802668094819407006550721341178613068204874908354882591091203170963830868508528163132888016962295866764046494085697214254937810879557077354063361658801770434266930467238692635932005342221358496682127146566516636750656108799462769853006527571948123961381101160202013282363268246078136878064997541529538256632644456239293958039573411226177826686535892040372254508718493253225674335602914927017344637580454782584654362955782961897350568627865586165768043840489733364932039294938968420878387195145949218549619381729080603577792117621794954809089322240840367650787120836105855414805468560099261985103465371779735986611031680793751896807323587898353687792435414455464289755160867510230189538548258814576739010175123503989424353447146369315978443666510137519659925282674380411107722560023326586412381763484632363151022267616301960458430801504730093830940040663696016331197091720124734170885219976100004653194279728341156186663117048895929388549318024325093268260164299079694315336996974808871314262636403792267658185026519388504448615221534175733298019289188317761970465146991099929865336042365277778458323324488775543566393846056750427228168780574864593060578238256420508251932117147507917713431281032184382253056252088264827142413736103912564879658298358962412346256840698252686486392977059810836928241940662523739556075543145412764773786743653877132131304191259156162087795471758060366263428393244930085614219255729896698795110461063353915677409855465236438263762914067418013387615171450899303922989674377914534470937754587526689811089298667437923257866554057457277276823325553577242141001401558115415782672382610705196977199295889750600774080661107291669635181781819388065574120088186510205984810618723484029273599758752663193135170515399531916614849351955604049170766273907184590965209742903480307559568042668382530517501452252466902770209190177612435417437221787045865585393397911381310934883450631998925495566864758531744980136057407528151266171185287309458021462154760433538979761012902015043661113042197801701949795498933142399487264769024138621932036282406615742751350204690204451896775652535337546205294656207617442791167898319920504002787353050194041018482698830593630383601639626104839963906861417509924263412472938205597165929574938843573869353107879344636267148479170870062796059776217215399193450894782477458056681347064993089111760543039673333277165425657359981720688001929808577828343633969459274107326299717255800455853667174563808262429005064312933068327739102400779157958189614390763688902340367704186862118856443518538316243903936491501513749230558182339711831115971007546163438759138204450459344726685164398822559817353684661055989786284773701307826907365824569791262537201262457352105218803814732417903062582761762614006894000958527308864353368039519936152160467358403100944950450499361209003582371792037135990569303162013185892186257323615507535378112564267420567598133972138223949122477571690124155529159963820329085423248682519152629954273976943097146054644874433585665337704206312274061078434812742517128895442288825018074338785267813862834284195975607141004938909328563387270200866522580916482106211388261981508308180405126690776816503887571332973891310636046382231027300100251146295218244731741925647298496639116839364868012671385196818017493255567649699854525672674990274903191351697819848474842429025150349482661060543876126495425787486596793983710264532094772191690480816875883778333370433627106253304748360338333620653749086477198596355559845044675330969046525984424128790374980392460612363858673103719940988788190082107311153210859306587711160269674788751582496120669676542860709768796731905285678572324203334447669897997159931494904760798262322738749933111425334993278936501239138737022869015400507139402174018235582433779638714498709146370596360342908121725148796307244161631775793274202661368837719457870495715848708139545447990417193113703343116260029408606842533004329527075951502501136105230411472580880311238383753877039730076131566552271225625689766485681520896518350068731321368105448455745188440052422574913885114621898487907519054105762857795767136539141182598756591739811014753980154364603554478139919749584228791949737979579872771449732540266041995237512933408368280351153994607136700845234682418596477975215092381571009499105979482224753997662588802429577341152827368995199074452062999494700623022415582632681668119442208645544302893909648783739388289279072941317846820267060003397985283880179904110274984095440072572519021939165141984151156637226216015508342974686373086158205209282697064101896893511178836257426461012864661982151239493487913559464796150976402643345337507281232262824374224301775619435241172690242058563187355657404720622785002478146669355611885904506431318984752785388330405552197649220740152657442942515310292740302738453983002239815580589920125872726775387732631598827022606328227592186718179510642408979567651718798013863136727617036034303595217859782477287506751794738497618467856555709053267609621158042952236474072329723528482587353264774982957580411685735082018910597871773093689934692126105105312147488506828838701000042280947701030363946155864256858872052674240678589021183399170660797255522529678595418243476218004925112826524995153809820914201232225588737307494086002419790269309109759327547533667004762211699989976959165646164460647197479901723292451155801353870312216192223854050355042645051569922510106725771451048179938581885802671722131725647994844911098402001385252200849898744783954486934845478289515346146570278210134742355257571917676253428495645695738432986699022826514975173181295825460084375688428190391884308401650258511467836806628830289634419555647980354338048639192526761158439575125548001333076184066040751134850415810573259812032056536067515379810281053357794512070148603466367818698812557629435813016641284238647244922114073303746598138664700816000994298598083379353615240063085725099691748806453334088233026029642800490256089934260563551507591898287962050415479671959784383650529779522074580082072362372750820174529281239215632215089100669803602559743352114342855535762426976543677003756663700171070428856465297641377566397589795939407609193622179804317380564615955891802737062587839357522954708857178031983661686475867497081922154254018352848991925450020287099362192694359554646242343965388309529171256025356740792854132947158387883544243944961949964931592493584834353448370591762772365161071864781529689568007683595093341653193600943760391825124511553671670882759047072119500837089144904639144727584241588807719855444498447752144868290419427958944606448315293398633789558696211697499612241452066816140828529026400529430081246582080092510201301461162694343883478379252829019264300301668323020477240230969647515162644132890983909426640730969222075888700935002924413412467838842937537248119849012276957381463700735716877048214088522415154431368624389157891646033146462876614339444697871495009667870054899629264275401084979379841418529608898419099448840951063418121931165203066708732965759929010855243753923203003286507934533665651775698225673934406009550228641384030413672379154319638551349234238075749886831066770055413390626579640327622265838130688082976245379271245041211468205862735035477977482701870101051746623777088255662880877972958989046765645615697314472554191936775313089455988942533803723649568894840407281031888665619822712780631613739641361965981342242912867999162745636938169501695138363619201173312785646576059485350234143779591556107952992960336074674007060271733440817833624192442719020061557325042161376986605001595565218791215661909650176279909409850527843518933183170133172406863484135216413516724447763976774816802883836534298238974395189613669970013567945764089763053310908176665565400599340983443709249728299095628289032365151822519565720448769676513548608146435943189745736442352581563162377719581410270230283159350081944384564132876403335272417208857088128622723632386628545290864611727125026619845273489233912254661995276989931564684466612118743857115264376301421291661451349455730617078903836737123727333769935874111188255428217975198769378073650490546344435460029335228078398587496841643310661443168643183132828452223971729994632811756543723957795113784136284218068497533591390773847784721410504181764499506907537404878133029120290893215970462232386440701679818292558036699218799987412019958438736387121662337852996492946488226066956423349273688602204766518850983120425406015588083339789476694316671214106798961287676709323154596009399868125379974172603297051585458921250920851080752246681903732599172482695509888625258943433437273267587784138464197175699929595746024180158759221370668830647435544901869531118527459732227665510250345576652232425913926329201576379507459483217399592773045286425840063517501746402583025868245011738324803469033998768382339759674737589291662231571206057178291927127245659109789421557575354196216906378322048961591427255154124497923008856568759428588134901696245220221554655450312333893276454681709408826092795566602203569181753888175912174762944978514196662388081574797166319908230679363303807231476209647619760611683821582573784096542151223170167335432152597859101090435772461501351656250606475802602155427607079543090881506364051768052546039288135789982785366869141023891113722318609970108448976809458143508976948799215949765899934475194901353106422932758047319551727743242321389429045726631825699099017542629136162974671446214277803508392632354073772098424843251056308348736163219687326444769927136863853233737613365311988814026566653111360793389770177065102686108139117622309552135219170776741050437937747572297976468500092908543844176637469122065886617857066927023866806052240532683794263803737749091525589548385454155319101255613898266294742542783042425685818198788434969870750356075018515386771515748041303081208466821287492900874265032993653367720379451680327943168358297138207804579885235705589274899353676628672526550212349271129002274759599856450249308371125262471880294081875093282886459692562137058566142510954145604581975823468420248929987598107922687811307790139246074384191006373655927476048017884162306417171398094926393435083777420832585685907321293009551444477819626398369892968314863181446572889261069601994397404060053308617568536452888077320289611412717995632696222939423094905121774422209154599488407644929231915378896441667565098340142587177975838049642645776992217920936559783330812015871764916038582634865523944733062075812633760271461422073027577479152280150441358174755415903759842195441695136728846029885307145603960757140902539780762145300605313844098808505065295521439728207335103051273858716035618366657495944033008911772770800258897004284804729191869253021798282263980278174030378658276346367080418544575612565534285697153063117474511831765384379020427295744687203918512735572675067560116144458778887136515390260927754235587250173374719744896446462050408381696836631973885290087752018854060956897950123656344097671402424536132015077979887919266283100308893904932626934037453020419001049142196388239063100804304486729986396305640624589534225551843985342840964226499330611617740420680666448853421650683663700217788424996430134305536341917739864979908945133935539152793145224717912084432069034394781259570831040741532697519527509545441890253199281022318476981487427001449651043956548664329338230207107745297723562450840953198755994434007505713402280914320135803402859172487997223480629585811181273142939927975126389139647642296604832248167677653506082647797180987279807078884435590583430965307321767305101686052829375315045572649014411174311013083315858912271641465908558405097457517650867596440122653648635960340068783760136238831052295524317940957253472050275814009831933584968106025476660229486258237820206551143588739147054557149803903730815341125832397144130109558485823290621839143391170744565273889141506919234927400786535072242264206865268591987539911371147749975043024935836150836951478289381789967371245202797342594405762186488875791250001189456834267312861778777062525095130065989386753282457427422634129872111344514122598622902604201431254148292523809351287657412891983344427969776518935043433079558508643317625192375002730769757611484437307784712276851146541397129436922308771518105899769098919090968023293733350118294893383724268580089212904494069421444028623820066375568202015448255445584705817945150407435661080964238943854032999910472796834273247590892529279909048661858314044396092704819657146266443564897746779100287004694003161608711201891912910909746325416267316643944782303414795376323504506443683890310982141089768806420307131747956154828838217417264256988925076733400787532337305467963587985158436710452294050882052462899829262334659435524033613122082631092600597495330687074079004050174064213069555757643479397509717671141191003189732102529759048077389945897256733144556041405950798219090221274140464267056492479612755910337929931347971241064139582373090469384557118099371820203353628548476969058280141646578456005989919357672689098248256830033343447172873940378736392669466287024993660357494429021845468222071551395291639260688392017031443339201234818390350446050409929816816180480183343185530835237925440879039956152966454766072578012246116889880518621475231212289446711987905661652813423499244639896989977911216953090845219867823496811083218758564340831525934057701123994136685112162842446264165336885085461255991065015591105630830358585795235588852509649138168973080609838478020431621418663810811413969770379669259417084068960413301890646396710759508382176358034794248959671480052576978821687760147424487535053290377947439335132197167519689747108824198586920597223838213822171255780959707311503351016930820511394248317985706086350195512705758476637080504359277042849778654733685823139454671150798779018268224652711170508402121510621584220069127225503780576225634801373154231044252357492015865894820593457012169320721207480984542708187721104875923601550407568421324038017933515457276568399031084785896106191586599327601703507352322515683071470583862384592189605977134142139982626274294381095448636766190732172580452735529507937152629325586530333446541602634111820063415199448818277331560305523600110886220073098779097423581988321341735867767310176750057631732804642120764829592677893398978681966781907471413285136902286424783600455555983832469696155117313962807166544587845658183438130864929082292998074437596553195710940253583974958591009598479095056794184003378023076813629689308847389809869053419061963070849148649505270493252399303686449304645869228812582811951290102975910011264042295590038004219391164107821185471033830424070514360835696961290975600385074808031660539995920303544785332674206256335788402522844981000601506931938154044377428788448088304633255072532430710489205534270128339456832673664300366065882525306493122508748401632262868745834640756209243299489266993981830672200597283225700723762281117549035567500558097732651631526391519360476373242243315583138103489351147300585501355115219928017783202566948543584244718270647560474820581230251010188562955518729316113591806760284651082922326542738621750410217782729976809978353963204357007246722974829177127294372913515685208490392246022483567178428242986348497259391781538348367956929788845113694645087534430031823265401936087492750918241201755617986439584777838824740067315276963683156125492596003729716888184386297675083216415749639419358434625301304118338731470652372310131424265626463083585247631204780866339647088218950566733638753730742783436945219567310170986186310212164906650943995574217307052172441738635460910623135588312067345612812210212295564787379011832738458734500488076914307435944791823068511175459560161667472944030842282125822206059655554139139706528410931154072813639771638867882053778623623148415451126912101175500843965940536513385927564937010861000640161880892672582535952208908595601987485336410740924988329275704889914717241708882527883653507032105353526320991988170595657654413682910124234937531505839656597103903243754489377676389032933671452805789152342295734642802424735742120837154420979122495107159698328814721548034904415093338053710586580313238175900363274957747553007326996246594899931067302406761976102210349935626297902535382975555062569299769424720015841900376009562839958811242817194567144209101585638116196405484027649502305238404464630348491795022284935570583054013327525596303379817350828456896361641230212822674807450089144012851472295081547094797870872244643040918485922134332548565175163614487876105322841140931914422169173569197081389560921109493553896875704163725351053962990975884359069359173087878170848704128734499627617536010717076810098293097652653157684024275903645866602390220869799587218988227883995239805939759995285521820048004691472790136382078942974699934002843232743867870175097179481828108540668795296591226066629841431835488584460772670288152553041338849575160005087318820950331116141961902626862918122668981945028247121005212959589850655055571030441472640011398886442663541129550183199609157109654399433308241673410309878569966387926060715638362513996898088481177836660185044719678519885892049119371504214104321496231220463544727190833834440267537845796301459009756750902301981720807351350199598707235986165254730183196402642683759738413557910243918149623535785596852662705187954720165443780789506910737229680985664026495526365776408430712576767967465942062487354967993517273617119340575802643759810194858408105438565691749534599934613913225284976238151675865306730030545713085927001120984674030450002738111934591298638283381223285049337444497789266123729417496861044717637932635444852698104900754300584498104551618790051908550073073882210008273739721527575293777526014190090684110194553796017092584314512713924692008661687056458465288791486104398491135908345877119975977554305697475143698133703253275806185311078782069369854120426645884011321948604158688340432510032389459568578716984427227808850107934923484368499984746030942382867649812479482469417482054128119202645524465198749907268361088824343252631770054522241175859233002992829381445046043713889139174703584368264841884423569362383121221281173623602253124697090064793966890039531913376318982394062697839922330498905590978897190254066298303653359927134008836148618656791964836890199992310881153704451982151056567401200689673023113165915512829794365390571691219265447275564286820737897621923949453249292958729727922369552619993026300991332980163720491656640067008664117942712026539332331538378969665385412416957954780082064705621191062720068764628215280874118699518264533452151066615437080860105048349779531058040307204864568833925791446541736157397786751645843961902855383675737247909197818099596745150287731454033086009913789520500202726642033652553925149680405460006444740538286522042765464622436738907613463046739530743356580981907855684292439978803912597477746366247733956634854824235955721330008664614766526814682114751313497114964686810518579335300786788264760355200810533124975444776651231331855376408825862349883020830724395252409047436693121654386661529926893458376329705911049726174171172129688146190531707184387063057792500502329612130020102887720063489746534969146291814074444206237771018277860755105809509117895089711809300530435744332282433756409391335422217186056781355076320880183702399918765437945052989975937107028934547070913209644338987546770543112358194819602156736179148726316230478629971598160021441128451653299262746458239497118896566219883586536380659406964885249065333955676346067653191677376908724494657703938835244355092136059472355938662596136210358205880424931402835594136491246391679390751706135095842438529697168274671305356925512462066859155477463434653113261739619456364212941569659271956477873560295441841956951773063150793859788830913433526866682944926757572117210726108056477133385310829982152634940675338296906538061029203976621592596578232075500880477412471931717036988327822200962820202155574382184939293987821525157565775355598363869574453617368608624385015033874305504752987383347860133299491714486535614903302035843404770048210377710438521076844610584701289588924362466654225162059880357951640910976077250706744168023397902968453710862436711808790138736602910942000879358011483339629330016756700849193686923573954705539657335413977712551487706674671158398037598468937980457229532560565467215389940285223752276889761898574775258586150283480569028279901929775293540513260371116469036698776184897088637387769822539480279845290877841666748585945329378481405398352068430968960126111254003354015799251119705386484340206839296506172507014508379369043737738592628278756926835855603824694230382038388082854275508413826781915856846407191188781740575082315766228174353940700731437123113208119998673539896408370759973548059570832192981096941022624127641508400560800693212890277167829115158281218333067606591137139525973717170168356931000256597545143782878313561356193855695346484572153052013922972768470996576216087952485237740683563743773728974916088909196321176810685242786441663483717076278054356973454457108240800107199393130242040696995507498368370366507632813893652252422345629988736641849365727479284622063003449150096812122874695479800752772541202370804733287047438408692838706877520147627392705177796452297117428539155547297105654631290122245302397025375682735302226211511656064792337947619979760051543462550439652448083091621613244633609178253224229168306158065484700029981828022375919123734944538358696795809077635378256500198522473538654679525034228476986709911317773955916682246312369975119221676352215547414378618735252012403773845076920530754799047306250491666999396940789163699805467109968816784169581616723301348575521893102328658953437164989764660258653431169363617068910606124556420286958605389492547756719801521452470946685942010934258406049333275719093559715188610882677515516621360643170977590008746309253034495801058207556410509859850013070901709837375687569238205953208290598347298999395045560326573010607048197269288111748394442279860077619898691684156686513819438540278186653271245369167032403571136513789115695866153145035293978575792734030823438908791094349782461550385062546007338377825317964559840336384971519305140519403326534345713652496240998737450823752889666035502141408275162089218439569603517733131510551279380765165311789275094768656885189307294035237751565285680006137386059165430427425085304123500101616777084991700007988714169692412171851658878763291628567653604841318548051208596733476534222463761384641393807764168619872222568336476857201816797822105301641505740241325577250241040472137306103864233077752414552894213463253730673677835971288337726741852205036798777411178388732987497596735771180954684300803507322573887388704072107392582188235041497426249780453653099132372332198916004276051360372205958709554256363191855613445810703364833268656727799000392369398939260874712436252566589514434155408324658199832911364256514975032020236429617539825946870691339531123170264833995632479304788932919976414408471199406845720686244396080898935623702445387278552042912667801353332460346794157032336051228428953866720308014051883817634191718115314895023294938497702132743666763946522990976483662951948948587807148563927193774547423320610167001259552709789538116429043258174756342251682073328554519227213867719130844878116474257545271469149147090646640260542474548323849020963404363503690550608090060122759490119052894971000738221271367374729982929736109383204146323430569256748130089679681200057112627269728296053951518630331607814424173654879193833477035696534562498865601952807826947071201554873983676577841678699449774957755223650912585413656502117399359088401327550957919197726932687317930002876073447126553077449967703672225347850577462489211792321952236406907313535083529464887583327728328067456692478279439060295339422788810022254168751207267781962858351154962006740931823930773658680008538769614056649645293322939877498924990588857738085303706262353041054023722911293692147989764530244284148451180418882254079136070984153229732463727479328087867736709459890427147777405373810912194707517812479079003096811296145804778847998391138281527191558339819359499798412210202497882189751940788301869179215506540031803068042994959823573961434380496963827065475285580491691627134477929131106083729729342502357751407608678814439821623670717352209189240948367544616029319343031150387743660844418215091280418644342368049967576558963962494401946813553570015966228041927878601192589763156112678092198424771571630415805267986312211452935483990246219253258122877287398700768089270244661284226833061224925284599917146521435100452146642140212284142658156071051130175906248810989395078451880246475854506057855354196745483546215534722045392032441133469579262456278950922552609930824899966394281053880451359205108108418149345198853807252273248676058991273088200293925867856790018837171028454492131189257218396112658430329153245523727207562626066610503372990437778397787919183659151700384258585619742771100428339018230616348368498153673717079152880080841249836261481106028961698101303660224315092910849361658888899001624875354899439849386088195979333354631789900042045847708780972067837184004370470191099775426040801276185296542321077687611368343322362819376322721920227678483990777596455462380900649610403162102044249695309742183596165821474958385472030572967983011634402973643504209914107056677837036472873458118442691555203201145625880497348063588929748966009548008051506189911425976277023032509858253067142496437868676532465658172693680883156430502851953705719431522525723904507094728842494768616206786007562791432357887938711255685631853904536779580110538652734369749063110273712943396062538637024153916280585638456189552233024290504283384009859027979702981743848271621923781792400815241555806595736103428214400959952561148814155141966040831313514201704678015152841885960439693366308951037501957503620365444036684156977479420203397531136981001317848023606803988633503006257275596772708718006875268293776865292745099756664101842379132510723166403751691141687226094284529969387425466198299240731683958448881666445576407700033441620316430900865373763382105362097346662850040347084010195741527172442536314871621366501257397842284827303026386862319464830226416311628462790923045900344682376406127722345941166622470654393074123825802003516650980884661056229977826690257760658076813815554768495636345347608905703997161033392651890897704599721011362163426996189746222627863361667628981218919922460526480986362136490502258734857875074109512257091184902060497839283411048690330225592599702739099925325061415323579750586298975643673291998110049867952400725139142836629989009339661086272576731175843132419826220417135865739774442220144184325192423744731917916418725764867606771783417239264480012159621663713067529065488895506058792395101472424120820379252602648874731830026700192608611870482711470550559789953917223123897276583087936266087649268794417384182722349090071600494566697539842685204736108257815783354490310422214893784514848863088189710815382534855632809702171108422255549214534143166467655625951214228418969611506834246598563598944761534549479690150123555289904036839699288381188089086767845418953811404401001090260896107398192960584282078053427474794399647434536009755253014558621824112358719721220139110125771327036680929298131091992059315095763788747109202726311618789994651282386418866790224673414498438894662033873552357257011954602244418072196320668052957843845122588384121733687381022297312014368789645476183437827848020984776400805362024798609801408823307415953653269088679579799660132621033758890515700851653977966534024303511549440660675219915412002954430972112366875683400002055211650619256510689754326335054884602163687939444271197943435520111939810903228981220766242831488720416413188402973798818556124304955295580334945883023401348102816711905077496726294912503891776272724427765361359160621029489254352678681081333017302362899217765725006566377062124256246293542276398808198954448146227165716115674891808531887532114665825749801531336542238665483587898401392388629340415628526814831481566468149616029396690002309787774827789325942460898450799509220272490829377232502019506196207938315753146977001278236394924053544579399915958174833843900458553764958269645997953253239730932681395057103837024386071935014180229367458668577928528532714167082032594964634476104180011471204816160531929051198431666349057472684955858751460510455861930677237419077836302646067868421904172242100959693578929483805691148894463835905279495967725128094247843324561339796589328037832940612477457634936062055843974692956167571087268156139432575867140705410953420310738219723020449806481767320038199073526974471413401271321203123834476469534100709730525023122655524306245978935087250937611392394465004766985482247651313894018231845914430791711305476594428019806103006732253009407111992478484397322016683065360105325303384111898314246969870329686313541339203450951628950993857816295187056693356613698795513016770406690702650777453336053974139154346059997624766945899288325013241067340590782164999673451506019992422294246336223513011633580392774593261703329043206651716453572036844217843908486542971072515608103041671539592809273203918756669289099510432589810370263001139537412535635874474622403079134137448986400321383665162861112761403860972701454072775202244666699341371196432015211170766384622539105695923495103571861307003515983335566701933687111751633241115320424622343456235043731120382898179856364015023265158728155035855766236972035666844168188942459584953058422351943165766752683038090085231669240866880472766277435784551559639773949607657710834442143044483321324926623842748151861428637429366698197521992766367786771212420047803111064595132313433496161443321898021290334713540490241282996246091960986048868860501817682411710689489191891891385657970880499523666003803893154188782455748379648996325495238684590175550412686107174484483672291106167036069840381508305557029434127442136793801220441288141234861586011674368620613425541552694602092088141388790167024912296151229465384242919332784845203567412417103027843792443321174127084557156121525890603145812638172242078310084149880290450526166868482429691382022859863968772515483392363987888398985346270647656695811553853423562903989534836723637161483183710111361325915347008821386193545853835665156792171990446725801708415241831307611699834059516868110202414124430641196631829186165622013395354589923346927502745823136954240226403588323220084750765761160076441678687254618826006343073550648895227752223723718010462206538954613908910252166749506093106100807789927132808053230972717088390728256169554944206366131107563915999468412372281712405952200232838093978917643408475261686335861123336202742528649466005181054376642134456343303991181086318330573904152636404114380948118797246714292029117147146986770179885706748518015258103539667751307485337841710896826351276313865298851400271530569683547140059991246309332459824086373002485410984661451464722936970384114640357917970107733732780660138952702001037372018768556006862630663466963024448924966570864664326347149939602929017314862968355759925024412325363490665292725202056118820777628974765418249160136012157596943345272672948124212471612514744403534896103139433483380926367011723746674941965569897419508056580554173986771661649310864878809488151318250913131591263541362229831726852505083015916434609596949962992381619401370220064445544075155747688293998465595705226645241826462781609440724129901144234001435278271677689571334817225327223717553171634500076621697495435678579023996291137864845052548275210900422441265787759364507666703338174787882560752131548516845145112286489678010813344810810223946380920096543523455404560430331214787819634507510384397151956372635059139887381791490315304408758536374978391961781696008932188106300149685867901832593734518846475867980749106605801530619666226503778162150217598233859060035716161957198977936128788649346912839289485519324000694415274148426804390814868218565410831295462053179499496279851309705280965967481053303205257203646885054100901585835600326117056426144825287889047419382226551684652848261566173742831669580557082197829451922978299775371233517288296098465410118693724114571000423442986990249229957796079791874688680997829362538783981038300810805674349954744745581665934843200948499992932875858056995292310849492707207957997256463554686265680844761483859234158491789885447026820021703867390013860222157478993792793402095683264972834576076209047411683151967586785656434482729018445376371898957152223622663999650526881975330766869275319019339602933253626419297702913547148428552695315123760745593864585530692827410218185546259998997293841868799182592006346872606470969292191433017480978160696217164698234545404923433622848520768718869783867494785852662606075014870853911804793769700979701812887483850497792417554831141081918608778361681938434042436052617616395901693054014177612009382863723763107229695128012083468030601087542475561434660505714567698501928520816765091617291822888529350502495633906782534736798113218862538124634456588005056609375489234877129631299392433820990439910235039704046804012494977953181666062463001585497592531242036169048622962352381246224381122588857967961665156660509449139578487258078819589940824687054403961455802515948779873990322732951209525497867772814094686098418598816845453401288039917081367432548496427616922514764494894827158010611016290044480374349645102954722655076304379716988000063249739658522165796411723541370768557640810974159056526184971660737902910762610941551647480520495612212898974526375150480600300792304743060055177548841009263579793631869590184242311110610473118118796370526389088961027604385759858092988448964294571000749201271368709614359606297353606126390426084280660024440956414563633915711258784113355948643421151671098732957202496452166340267909046614816438476691871877100318568476591022955105288919041494579014467549110708320156866330827596878623011615117850776608809986565657584584455634792801416540839095032733352453155280063890819106300938382088553699118974203299127075669233422977594946058991858641114640089750277376110904625434561142811420823219678100191929981334769047384907016004786462143443140580390646055112163871869624310486105797853510727081804228356343231264759418524991064715889360869440398316155549901759968196172182268750311924595715717864163336664768273136370477899996018729105970925453592807542485811150534301819738074800352019367353413167132391554710482617270296135489677700790002995811708620290772934150831920704925930453371964852359546070867815465439240573727668521181995024245116690347294690699110213702993614119151603473536199663774260326601289351591726728080166937464917124093065186262539193604816445010063059535692795590179826644972283824651987432751370813852216412002319489066167789278062772127949668822852624443438385442023980304790522065726345491149801538046551055240126385209404737911463366046029043911592982341750974173716757935002289186031556146572925292200847770514858800123891189739170277025645064960722880188631644152436629634244760228884293926343878923539846809859058085508225152296284597814755494034254313670116449681634339539954925404801977176527063799196881270527490579713651211534288742037486488110580157377568001989189320279345268814769218393478626424049994992986878194035325552171503284835154366445701612237937583654983906726909808972527666082617988577723928722625586173946515674203444328710265668783254695973997620520261569945515234016914589890273920190884382544741403062144474993985863918664938663837017827125864640649194356223791656715434223279253915459808354628069143083736953547933322173188156224271189770372710928548094761381567812336612762938290970275471616255060845355106978659135202861501062432450182784765418267856224184069854178282822942007001942249299600365114245000553640270051637563154698020768841618128943045209491941228100176163605214649142513767190896817453864601692772536156140217121756400947403761366798470820437209831186195539548742251199217764938104780801189036160862937200945962318603250966826661064702452663121693768022985778829627697610681569445894443045909134472688256622825205235695489133883226764916660716895902270706634632924565018224738514082473200010726581947024523977754402190240387721908786006243117828381873430411226740537041499782429452906493795363466005471588340350628284640703439058438592061085023574505828124707793519413881087748441658629938795778183983021288759544041068362030038997628031515255194424330973559810260183944556943732947095683442128760074381770959853464343762349647170240458746712994365244896860464924054136065825175702477751793852743109930162741091598104391067411076740355328786976508652862075961824173855222833704862787212712063445283498098449889460582210738236500241064943061409254765181445021627708271260488597919276129664192512496781640490839861249154505740270422645189622233295489935184811246092972383992608385855284305715505254428805074921297543902113458985695016740300982805738809506025299273262828484969999409099023598092311684797962099498785319293531924846371289658836612882550455387232396950465665814512123916469930377254036605128296974908291415659230834367656772034948143925679578320345011317294602942038488363456534613864377620564474564080848228919673284789357158082401574550751964572273749954403525552005458303560354727088930203822338495956150303040353402437658050542385895257888918974171460814948377700349671687662537266256645839413203004176220458827950227212939010474807738972643611074579893534042712790117818450390376938516640025045787142296492111970397079498415018509473203738936017634106325647772072862167374224371108701020187002871466392449752456525943024867100177631623385856378090509563776046228391148842848368614869206611091341257496832385317958193092748688190131364354679422982423681794647417500580051826618717037386035838170922416695048940031550401346954789044208957368153619756243470033927992192490648356355361253703453330270499970835277720681377907671366808878975564130582108540360270037833938622830266273076748787152349446785585143365425523600646466369025496420557180333050347576440680854475297462085922211488213745937665150654216485580706663857838518810058912723954516062631814012634062639049639197997137901786313833410736633162534729515533142554547975450933036896469182718514500904479938668307324506941110386730613249741306225233041944651585885749737589313846290392070578892675407937648692996711544104604957896867818908151684907946625794342177821886455574326476603745298927881668887192151240231067557205499490728937657982744868583924892911849674496341361976004630082265028820404538480528717936542579459359143243434533033535667551194238223179254842453368145397153737292672799978974682736789051184255225548746444474428299822684785196080859774128661617699641843619875470826856999551632378619221850263081335749869827368807910378073755950832012240016592466176653135473231590533524161359188513447976938956205442578223456121294688351584851911269508504157376451156644342870075395187262756020824638165344023571263931065913335388980934236912218782630936855034983055250992009904699494522320068450115040404055146945290847124866488265078020007235924359550875744782169745382649885840466030286136449652736299028121462826043561573701947936004193495287797170925686136774795581632610006908129087962977741383265338209722520965942972427666502033259662806578784699562078005804077081036168570291003362172109793870668719443412643255250844037260773970240690665049665915151660091086380126246912031551048422513866853839306419552679525669229472018281694882083034604589849655674345916018666873705880514542730116906307889642059215812629771448369538866249825537289212340474463990203155465674642127278137839385776241945231323695843288521230403843637407058972508407176363453243214914926073003214564984064901565960201252958225348136296488375479149633394079382484753078427910669558081742697037375120265440949665497480889719981507015161186056950771801765011760893832430944563949310810462725524006911219480643343042115159834120964128168895842647246889836987215635877301911474777999522613703623333546131439598379315360443331624511577539558104424302746426589980788180215896631182683491643831402080091796411522224081214995311496266995269837680387305489028663719734025558254007702707304475312455989287553145033912991504749992062919101036159546539103283148863220292624146990516824795755933527257005589913910321767323009846620714338287713624119876105449392656673697860345577431321946696882018302733849824767607069156757830295348921326120597115267104140334378584441950048908955587275892069673894390439129852798969007500687409365097958799899042916350072778371756459101091783996125581137447724670725321113048731997764941386459799355850675807486034625309970573494826042502508248147134482403102316978371445197288139263035272569519070360303020798992156661674065368922480279806989505540667803190756104280006462045748682893955964470100228438667032176490683311330159365101683992580816768908317294653153907321240089654447371620074279984575479616615597732962179345579214093756201338922171880688978948302164356627514030476328439038677113121547563694425723574924122852165617703080150728778665863064995723464436938816292450867915945136195302022782028725991761886495615821644738578805537709502051945984165659884175581204304261510548077638469837651582338383763757484164202119420181663043522271881835681102255588481521887460051818165770412383124643963599020804249837285091971999616284971056535045493550300914479605062859655241047664346851923044749442774257539958415621435761366348834593165993450078861877363253898500516318206705678524272945563841120713880203899003334352662524476628431725501762287261084944245259541175189263184374483692707406154297907206682739777467268778104164391033998848761519231650647408145925061261464486684060522946677024542499543487241003774963322130319167091756256023214167348581166582422639870812861661118229702367262712517342218033010687535191027742762718980176984015413148271811184394899656473995208457800377250518435324097735861276420865317751029334348940870068982800446052073183671299599510599479390589824860894293795985933304291271225344929467082224096297129939259118364978119077200715467147065192640828329979398449773732154272830206017981800016341488555905587146436002822666798898902354737161088669382870277677716292461333034133137445321818111150502108709634478697926515811223640972068136467383008326538343629821967328559959979056684932527625999802447311014194220667531644206000964339958077024271477451156676705267744209083777023256660082384078082158831115183751163073296432787382398674875480036477570385481079311719369895508343041220264210855439779881383764672838387181186379095564208969429503676856489041848387118894948319531138538988708508806854552800979498686899565312103566992313760177540976245278249171801693540443268861401197846434248018920542014527054321900559639923788030918501277377162805299709948405987173123771693820645417409256601881906918068399884877707071077405194575987148698455523457825861859964961043579232726689796712399793201945751560896125033912015073697485981553700216657663456418336059902208056735120522310229648993270410671498398633165544246032350510031542173928050474672645719262918137069773095302679801690059277089862932121701031857408849194714921005888342509695430642202424307987393016518970587196621674137904370298009548735844060337226612314954572000602261194941509078803178083898581458342681026354442270137444981848297896891309548997693966334913617550339374517705836159400333006787731876924579147967437559149508847415620551922120480942857412823185853200568879713424124645596801413033764721125733777046507317150168235578352984341206975882971097976989656721994280103896322616823870483156830259712473195456557335814083327962785119946708860544073139920098052366079158098391541826019012684559196100700078430327044355313129264648075688818092155228163175559414811302097547857643088894446889494291848884009758275312884348929122564104870619304186050158328014596065097378172249457532895568667397330630095921831510665501301156882250332024716859085513297618931532111371923803149456898136498549157779329769362997570753022058463276381750390677174819290576776801143089764222323262260243373221163066046848640223207996580745969094155302973780755321373165093032681110021012247291764433684451329939181946828873481657891309521271401242531713083235464301260009148121624131064430840341701108585487515412938398027403240872516149566614645510781860820579562739140422504002305491653010865358100171026035485665948886161999434797304309795905227878610213718107302021571972977211470671312021472444934305026503835098994122986491473780053753065934022467967462523941541132549195905590396118436845054398300814094518537114638055869892293368862587206101290565623166276086475043202511895450039069435718361655954588297788884498578659193716481071912823512081599531715559425530174450037526904330551854611930847786577667576173211731372620748727818716211242179806094636028187398514719149096854336220262085164747162866659138780404016768062447728802250776323040718132650826006982457873498837644853656061927969466776287481415346132313709963063251775425548426749481129225385099084398354859241352358597539439593848718830975861633017936395246175954052326859248291106824995876895591917055113444499261382099817152894514437206633497902069462606677998292747353662489294844868207440643400014426433434089538520113139211846026666311390626697428820257001110732987729839546581777616975867842429264120390661623871888150386472211402852091184769540189008207988808687862416317760773996136449475490692041600505538945044307684610210159043055006718181571896859740997993613917032988931376141462578106963819950889163728169325550107283567839104716253202352633156662702587322969881052621271323542602753248311464364531344303875445649954289747081970785601887100163689782458480953408692604608745054041361339399555970256471687523783144521388646757173123503559991613811035453463928732886743321180063991920591036808049223650150913204756404924215372440326074317311334098825441207791501367071738672938912581753169851554676169502189617016633657154657202556781948969475781792314735283658413157803420351185425218805239325142781292010266181140635526903922474278044151431012669122928288920858239322183669620119454205741418736282512518760876242444240625047885999012029321124208346167457549584133273241852429934167364139653059853967185614636252212749255704447126681695131557373437946661600328657374960334854183361322891490251715580877640233500046517725854540895901785312317386655510201830550529467035672018247863769039108115384132336900282805213838339478306236905571168683623541323307387875597554664909567138114612039962984744755756656318681429982520106699861881316147961040012255581182777646969653154568178840286794542081310746921425907833963339343333122494759534259575178556164086107171976406574819020117855956800331164908746046358250167090467416548769983971892695559499269192670101736094556258797333333343363379515323822275284852279459581536870362656580868723550916718378688468633078847805551437867593383379914928565287502031817563164449220520813826596023989517693937406765023416521923726121126861616343331756104797067508752104721231766379885384560321167671051527563340292089201215392559948638407801529297972616352658513544283104658272095910944714046971343038327129987570823975579166616633281198965745172209687997593394814625164979655246041718920910282001755648527174892023830168014202189938709284742604362924626859794265823929037934436010368339191005791017279414678475944035761130157006921760584046699832451978089014410151302648118850258509967148362366472405280815290683410071000517376880061987840308374531874343769760082579216842410360433848714148449208932567069338921865312621416706868961098830733732152326606288331847529727955321150918254157332879819922222973043542020041039248659346038961541835355354032976720864503645227637142598990695721195135951099179686891594983508670618236723918704431635573116455494223140005132184433875145692486609122658979144238713679776114824691527396266706278254392649828217063658203626076197456697480916826601251385484233285109598026360423456214126924178464384035430127123387250444333251143325625843343801201324191007228195674828387247984486593140970182519173469230461504134519964875306790959781786414824458609055772498431265403648154569853916078981499000205556080395742670315259435421782589350538463499727991660615831679494192785996262868558601501201595156126845662768643962525102701606924376561086898146006516148918960813153782883267514873230424612339261501710651579023521400687377483925685646186884060897653615737949370744504947525403985523104785791942335450381149778281204756293855721932472351459654691094648249243758296996676202036400283629462079476424599530847198009859925370506734416433885387827297589160040406753253417810150036801868849828926595101150664082787325082059888235152286803445642003048854268657312299652575510431513865671591519187512044611605179570987009483879411783878659215323032872194655332826654175462882944464726014188163551040793333363567806363110785489899569052967500000685811320198928982990304639422588949594137404545602501941546363588950731781139292485012206144418232683530197403233924107199938579498614289257335007911948749657395280629730430962160560984883893851773261239035633993356799796326287313244112357100256899838175994462120130185094530353972942156305835363716203108472009684347749170791030871222671717856629050673405170911593174864241919355709977545109309383030408682316790404846461399969306709700631244615041583421994481942238570902461729147274938622743843788996522814371287482445193178283195852375194502567011146180246094832663077770517993312351058652990437267132011826116983905827211004738579262307171327080310502176647953617139907132407167757765532116048218733918417388592036600118661039058735565762028929620937977727966858309656356580208681697379021692569405018660721445981572272081005188498993978788051787753429894996684467292933481802591815816269977788355928958225646658316417300835111059165869663887464493540761545187413980810502534884229432109987305494988354434613942434556852106011146954095171990694503636890719080918792868930540128808834066405233416213338065885237899707448980585399408722328426970943481473011119071120313442802244663676412899162871049198695889349294688110765918826238425025788734937310489707779197311266555067092386023817837631717055610898590537317229317519082313450401125986062823034030144289378253177631775880403703395345199009711921988009318755297326411804040248660903923576583754677100741848358616174129695248144801236703476682102742514950079302140820024499224098846708257877222637203233969725500913695730254083418328500592307666157564426599957507091879470044475639971632930398053121718527883359483774711254625573752886933392645044096268747874412660509448972268957980774585809064401555048689443541935379641916869165166292435331318689369398259822756089619760441358577504875334225850026431660557982014684235690284372134319983081115653955932368613711090938760592990759311629577624597687958251333806516989709599660333871761261320062110812297277633483984842100318168972949813916223828241565385573710058675590588298474426605519422426490884359133110897260589091487188076692954754217084351265671574925833511376934962163757048928596357668149135689425831589865168295498885700155875153473378426579446439186862963045134909050484171945052887915428361916116917280383339327580475014595223251502426918235927170569644082820906479122060208590256737098450194013438126341443748758627212636733139373694029087208018756283067813317708347267312492646357673915642708589135736468978759335255916056360869244161307593430673044012541566561519809462529260513377223817634346872984785866494706168269038335279229957391641360405973757479280119930931970512823966068806481830898193347025902897957520827995935121209326185424574301366056561082062522400431414361278188933808748045680468779589091709268390652097418550790164535105565909255860402231701441008667590859124968942568448951095507813635645143929418611210328455820693474258800516736560382008654151044569532883674565841954569358315506765346370604413395410283452952422918972410606226136344415808473739121807875197530682583786526146976328882151791261771452721336369420375023915887963364001151168691236416146706313085734537458191133830402832957511141185421174375671529371595661411711595741122472871830548931162181724827292395945866017239493874105634093396520999598949276843751637046745111359717565214155302096399617032792155286387543603010068229191652943776719003030913928620466445137167515857591421865358568982006643934997026974574245988819970355283744138783185351759519822447620498159476602244562942877477575246574418132136823423410463306912029516970726164819125237821068332416471417846637067130974121213792332709486583661360172140528384188563250713978172539057301150483035493581421650083307502918712251433430975048279011611344047551388689594339876665442552287530103231692003764363365611125684699722775815404990606968656910683629768187909410175261276854792967438799057024329214777466267977059770139276649313598130902834028455280342053955393457205500411696087654515474076320860667329021076830458868864204366091545227232800136937879904063466239041241352605989333887787200512858630721736210532037200157201552367810725274844826198791158862886511112021589328091621914449260463504945967228516016332036159038334126685169898481678853327122069027177031877393177502947309258549648122365193805131998480375174956590501463697927343634934346052354520594552192949050499942033111589567891314631132192943630698063719473989575059457071188589230832309883630305897605871630224244445707586875277570643922138975293673499326472338364104375035018793414425722493564354717204172903702196191614648336995266354247306802557571555551889880467515941014262265775246589019104402763874264233184413086486369856849774670533210119259729738272928333824599128721550908056322588976295571823058292580186137591762704170792161274225342344114084869542839531099651392342217580165916573349491287341896645450230560865497352996878660754420564256830683613593278215820144869262246113589250097237277215087226434256626368549343857323337308562689851572996565616632691623148198430801340757975508712554248630934963868254834529969828084432410715204442322435893117039132784015265752833576937752633984371499180724359642525175190593867267974488089454099695932164371854488078431425345081564558857045129185188402134682422753670787635569339950575486950544604156765409524393944172527130399123876854334215937476503082630662145208981041673370052387550419331792701708461481163095473957880706419142807540899453522621280032808177088048654826732086229671893709947125141206918642691536508659401653722649639894178338779884959507445740036211354501675477016901714818260812806455044794827614597618253193348979092533341362910180465525386065122901945739386082241529607945551473111866857224734845122188194698028081079814796996139786804849704210297128621869480685562943662159144675861829464177319402119597843148903611966856413855350211761272656638777770106526266784354223000025709287582028463353538933292330793264572642968126509918381549549238203666405502672425525161868251792683372472876864194178267342895444052390842152242277164921189524620062096954937725668858503484229342733288734474119242132482315020605348477401119607917524918190446007746391181080980771308484494094446185174948396104795847378436972730920544700726976527931972864453096558377172895787058082072400391262921949944525127814810571767844204565109327018750234831440914614704247880810591072067848987198730516444830473195747565393930789885470234876482259644983484031371846671204177413689464535809763532939766974965418338150672746594322405968092274283388573536970146560587051140291520349151053044199887515011150840389824337036112134445904129815852195655038035162376503239227930313984578723769491617201394880564025622055003147011653660140592501736653216870075811809219509192219487872634532816433130675551109952520928360645945998313197241077406798451348059933817616119393681790222477208315629975159680956521537607057030868285640405404425780398825860073664440335540332884718495279971205061154291725398808018644103061540611013864081514715770105552161813033249530261387100406349093558413889401382561187610219161245946243610189812447168271702607362987720717740931370321176015175973039903178849861703053083863268409468533205158487819447308994734729462448269341770627497903747907736924502351669279823808069105873859370467204866857982199056616761803456220882401162286974835050216399699710074454150870890188404243895592183875018642097333841971442262669018257693840634302057014404124381561494749793618314719162729358850546668566400781841453656829043161585874561991544362902879484937114606422050800621219788047839471765581640613066303352039481091341432832760150088853462871897329787376758698675666492286804432388885805503959332486288924966008897235677983505603241806899892923815712772777875650305701776634760634750130403719318494293284078742740009668612722709595396634016444936793512556373995106745711830965803678075201068100425448857500024430638032512067166391151886410937479487448601715018287794875473973298050479983498970852118374122986427652855399468989214872048309332180304425712665424491845682871751311915303599190016893617386381284043625409605493734033834381620758472509071455804307658490724032974982720510773334804376893481421700209535207782989977632063411568284118887232597799381204197280408009949397850984594533969846730015113888799570960578425336059501596637153283341318213548650151119023497438648603003258274737844627623464002312659886627662693418660335660649260616767065270219734663032161329916977037896786338615076677652093954744614932296207761420906015654168132245405338987355733686603256085773857388381553611189239854464498081339562959384565935816867415661163687873522845985491866602348345066504495854336214072188205012430327361405466377354206869002207002830077062068695338886706558521580913385350550158625376582394628845205578255085552372070095194006718021001417218164052581090493150033658437257823910771262370685004877254484179137685462373807658551582376437500656558193693312230515539971390601067858670991940590778720308419593388087597616073818885624036676551347097093204070763970021166631744775767688326706094877913092471602302241349689711845651066405863945956594703984263124545068707865556995149476793675609112752237898067786909410904254895477824689949531540155150794494102433542130198695504184430523436783264908696772270965228735529037351834050968838294868028956261358450423177983794996165254867786747954116151652271658865477298327209276747266079245022176357187580327469645418069436702803369447591934475649601990823075021263211891850918300140318377730649668004114949643884802072137982680561948473734411452217066709931020294017552520797389950230246642801549178505304329557940183760595586786589542524849766337352412801959071322954324719461737969101043154510501438502866147444308110359552297508879524632102339568229067312806267104582092590653738019857477182906589163973791893943665597127249818754662152263238368011457738798735434900718031813496499191449222909878733408391041193128653473662901415979918786342744188218240182912118974363396685560817272929795344918300455785337367595907800893462407855687881881900154523624026318495238316055291776066624106494155376385103419258257740116956960491815919908912078805669812361614599811229861613816486673728680210699672602587450853407064689504569286024187529043722323575368558310919362054529641049889633114502901672352990194221915241420866258990893163723320459081551875344166939598642634810068449038587662896149328517708448644080202569684019659841043057893273778861363241440642157175670237964122986260327847238834859746498099143025226808992890571225115049293418882853207199235407095345934862783262428627090464621426016324044127404010609859057618144315964767733645408885247093250670909367227256297794033641930136718150514062744895680948134280377341846203736341669097393166684259906269267390545415619800526839970414594462307731714898139335459545538413703354284707631497460614709575917499752030701393699380813935592262494598633671522112996548329423144420734470247393626587714436239180828111512587701275895520709722886451004670713981994801882980413539701276001105251311856001187656993755203604452980799511269857837090269688565285754485605614108453651249060005463264508230365966233154638638406228879214934281398839316367151160902729059636592561177561446029731013268840936176031046433942372752232397759666691585687745347998644638093164669371223706173163650973725357241698249756774354731445090774483573649002222407077614687340557315532041494039450943249323906569731131798004822174663334334634427459518759479213404712706097768898505560077613121964123356330109525249464737191449077151547018406321501949192247705338827911925249709263634432489894669917568932865549953511644146606947303761006535684779735737226718844566793687221424445372061627816484755851267468319190549245460591565670489190030661784002024659788513971367516801704597032948858421741365812019391468909153289197385097357291967375347244568078651086239785895049729881635834853153162757005922584509618111502362036095054589879903819228354147879792780548928837903598083238703717237088435809069665706355086292100859112368044374552656908823196244685719110670557566365539564273546750838911572432720301974258594889148266000851714168613090706474935199573371024119627901744667910915508735825380075166862145512615213810293287457349570346271675543896939356998519595453108469807319029287552468540961661493785619267852013631749593251179329466572397729810903873082128103390440249076087441308323897534590226574117843818960555492459474164034332344827338785513134406646460759371266338185400983556049403123800609007254424700130672605091235426017897413229819622147433015833629180285284521604152015956746838382145489318592493685202268276925987812526974400074217046534910977325657741446184385375031688513575454338015878081082312095493734804178530748537436605894234408150108113046709643348630016942870595708245028102815573978230669969504473752856833162920031434990311867464898882096456772119117570753265133553260225960975829699277140919951947998529780796023103524421394924147397864133704759398497266280507489034406065750420009060899184189462332737789919413903840774690886205238609591561278246141865415186581465991296530342142624605205748506504176786765815840842865896236112171745435004309375413495693526019707518199393497620620597227855476452452289403017847086091412136997863959976122866039801610263173822339368103543337404566475814192804750536609959017934241658289658066617634683768099138851033680013752282120424487941362846349358583407732359625581080211723676891932876018213719757229477842162963987403527219475926724370576089167487783794148865216848808881635030637900406106826503171906031380970583242800342738881437415764099439540272960511890630214481814391659529552995338435081897555379953296876523163967529688068006904863848371238376267704573577686993222713799115783004209116072023266573858246057040663428168438171184973511316971426130566769295397386443919496778738433249505171225683197449925867111771079770107888704815808144664200515577491715300619083589243817303002712783738630166704565350190594748837436596449215878891054340951744571004776939484036747220163411438420932745452394769205305125364968206137549415236717571361114733283933936834594654461349740979336500243456392220756670556345932334200997905946836500753114328471308685818515293643684946889743261983848092635769294748080300321207695423346809341232448037094167867779069752528781704886702681508142877012366385509728132432302103615114396998061688293643673281693456420424853674971972044935244797460711994336660330409283614566803516711219429096761202247578791399659476244168066562430661619195020427416932414451695637915007890232890178618886806820080898076364010282007881298367926342443579032058342381311287998474212888807648126654720514210477576714979425580847434242517461267530421022929711998494347044429148086698631578704337664194241795709785923904088064941686013855780953405703491637536327925132674421916293036605064995019160151671709509161413957714153868256885965926936147137998487884010575508962879727268758474425284619681394374047847248955386885323318505119459539264464651769431589040496884356353007679515221490954483388845349145954905760917786784491668473350816496873088008018501033861666486420784583396197217455340647102879132920673373891013967568069947790930331783418004547751247939289258277352020924226675369136455964881951483055741199509195904233054618553943847154599634643317793496794363502018718956940040330868236823032081741484759535825489261347742306721869079068104032121164457452116777960133947328970560945614629268368329354914758292395290870709249158294631986839484525124203649204260875978579404992604528812985132453073536525016537631909600468209222217624615878667427579785810778585415888877990172296144069949177242373364615797244417689421098746935250315530311357648735134549996612129964685028726281987393894831787472823427761707992013979660138484274527931457179496825753233217423530493343604435431979749239078913925176001486425864890177012862665984097833520537631134419234649189635440303626193018124815093971466135566331371436623008255033416290099835793196505907142137265318514012217396841664127323547865757515450149186053045354856782782031638298444249143773093223298329344072078824608804130485036242224077585997636105531947787574368900847066528649423644981188379365896027564110743657525898186999725228731015114878585495772396290747443433067214142096019262018982390813867940683470869288413564695086538091061388766715551529534904866654075197422569329437550243936589185918177066699567296456872949884876490292241497721908268149804500349822712660310603736118679298770027229389466365032338028427612503840122994236742859501733368973605522192394753432860379744642607737427942350408281060222852960881860107353518182501760046106696059731435700001248288107909252626519701027240806465898830917456178620435905844356010419216794913259130281862255842294376001769320181985602360201045529778741143035172281022243115155012736323931543827570640034152817330303962530479489099739865348480103209400266956237929375259538589201859393240059880854190547241897865107834387029722129762971296754777442954777306541544335251625893796230939980114343644770462691662230512443659075007561006811316000565960621601979418129759549969147467547777183748954841666413438788054518322704931599994367373924215392135857610998000718768801764799713634215774132564720111505753125128749819971387138230719190542442512054380632407609444356673769156440448621343081188818199282645330213961113156797497383686248853659100095035063873827001440927203216629954304303592775506055583885481204093329975500136190672395808491199965755258737824910993349704723414697832274195991953709583275021197340032697395332707124697070579043110552643483792807397823861989461216696520288999528234543698581554160790302982960709710103818837785792339729736568529911748836079006889869587161892720312873715607408560876439503079123275929144425106142736424583592875885526912305790862974128067035670270485800997131368022343948392780501927624839080485938003033087268924764281069686788230376998637505969067025792823535065656922703674244763788343546102993558601096943370321076931586331315975606392982906647411396671620318014322499961087009182216426901295462797616215409634260601579046836992567609657989361610465849097068656600739829672033046096484827619397670999480432750454558482188874268540207176955893040485528954285445586457226112828878869694884387228957256220683410480750653004989575050754025063058855520109150648432912979738216485985643019582807373529351009599265237393855191692827111959832125704741497099780566679218001755166919418240315644196810942844476243915742937532867932161640368679405506614726009111439601041855612597853964287920664788370536780767740070034344860149788697396377227713084716154553078826009535282611306601572240542952402538156131613180632971557517880070275922017390249661912891051613120089734369587630750809166534976195184702628044838952306540261100584010936178464971321272424405273316652169442675420003910909917202190242701597975565387370979509547140791802911006530510680525705281386992658686863544461226447005291210984523713277938576188465783246174322746913515514212936109018675858467405617515877460574596606980031575878037481190775474143139440927555885380358604118725023171034158339413009886175712709321406128100754457935205243764846668178568169695463908578118964388294133276771208414805013998845379726114313076463579871307110468600074491076287714021758145123193541503635612963337960849848094811412671558651558144773740476235018504408763239191894774163364247510455983639945623763654448644301980953939778120968052610294089422401339613968896618192921338500026728766874281398836523020248422875632648490222366110315932043418040376652632980755197233800447653264482868012671281617530857066232000973922274703988524695490162888265752462446145241071133455505806964870453293422617591036419100907422479122427172898432976151238637092848690506705247051568195592265324921538116375386633082308784700881161048771344032207622665221060772012690100138566227119203844869003277470019048527310910256428462937508171286940392180909450452448909694306255483619741930730167009369537602320559753228803313949118584832196199494665110941720227286436013365343447129167715154025638698205310801603297215019800764910276842200183855491103190103781844455841908398246861094299382577811495852975350763549471793043749804280531081771389901215531665866571687406651762064552355852543235670275254215453263939827654022286022946222802297106295765100753504546204598535976212492423373615099243477468304933457204854654550691667494332217665325731008669828177645588703060843975592033158174799685651759816423910508261089809374059841408250170231516532908686875965774576701272191763634020492078532038950101492940428600904437060727216112649903808606444992028367306289202579111498446151520663880563496190654963544477697957682272347176387200616480476154054711275846323104188752433454986013194886053352952287599686866825176824702935479345902445569496384858724886138154696506732015616773231175173756427632802265128747276823386804099468507173528661962846296199700581693674217580834805392177239110438838244871584875555794847659759975005657347015552577994046117396776327893899699457983280591971548802036027827845232239011981610840514002749750799045359000536687690607994595755661209840264533050557034855847359547513530378649048991785672204303122399472834301483960131622617840375100371713680614580879630181745553612585050779649812129154086022162097463892077227011362628317697697804581626909994972262334790351001125477617802785879256052031339486589339710271910901351789235301201380321677898217685021785088774093286433573609308971714985032961898641250564472508060063286850645635366009232380194337690833491960723903979107310685781960040319218439374423484241727217431161619537627526277433066949072758275186070756240733884941830891693953037081106331704576540171180725549793451739926530432806026479243204647870262822977237177911169321982711474966945437601518916597406382347472814847761403845142811518628410172232058885785085982376039308987107276364656399159229840393203906137203329397242912130059142581956453022638918660792079530104867303253209359815822288710075679083622581310833715570183904430435938016809135423384051836001189027196754154846222334247402240493270847228817805606665057432164384178355670597446917388783798797759598600318263629721109415185340872241376281786070061677315102200478975957389931138551615564756171596647946143795377008816439251819854523554167588411303397708774544416699003912138421601457262531977633896059073487610537354098835206112843669057577883711938827442973254901926938135729898904774291937464244380466178461561531777559770846708896966139602089311263874176357491902651162189249832145516586864564271531129977896384914570861068633586175955560743354544964586383221956047328258916647632682849016626369289506958349085238194004369838104195513334621386414578801940164120588834260613408948907433629969722813819288408471149039680600566457600365618154754047240618875936511801589024255033476458744259748817209983672138401092303606997734804731063893779099249275349757779814474667006272246650216036923007683574029648484163721644787234436872282476644795745460327158948832733657407573748577103092440317325609237662998946907016040700495223452829463129717669076737172384897147914781897786768023021087964388730568420871936242631834745038099474635701394956075034745764548106580152634538683610728760228450798114467844273954434633553901198959125443150842775689471723165882021043345131428804127508596666786788450517739400237014162903193886572775954350187943979402520038445025064373353110961414283659832796586148267660650619124776071982404069134620213142921447977214349245202460642418633265321905251933614386503225152031490590987446059520322342541295306250753424269580586130369067665913659522107569152596062299428612633134125807597125062099316582322348207216189050652536034244606940942730071289660112963196911046999319395021221282683044471092839335327220804400418829107384471259901949015389644521608569558569440613648378086153158746216018205725537982624472508699262075751517719653103859666852957928165196290302892929780220125152873852654899338983018096679816327478905304511862720174152382709646220985747133574975601063460868370269564512972480071086772462846459630624415351638142285598422491942386596741966633941741203232458850649907817761236629449624778363891110772189161400699566197678429955787518857804909987378570995906418550699207606422198103734034002320720805133031704080063569712835527333291641536726966063286088156521333210712278303939576984633231982011046283669814039968610896488203636145778356978870529483266628359317388127931647660361520052717180291282267531299982980958296730118029861502866321563505755612075091895189538077020430858495593834640703510490815761267401971569704906427090246779365412548200389424134929613494429648963060449607772869427315065463502585858663285510358783980691129064370665303142156173147801715224088868297981503176897970402804756396339759994149092254541572941998046253642327495407202520494676221690514201167789794395020229076658736115187312229188175341615243769525878338930176960368573213410973396862396557685806515541938039540438274358149247511460745333002704649641255801173561675761950008969333702163405536613443852862697597363470006198644666660135434798676038802268888273611864120412469986200921678672683494665165383254253367029820495343048720597521513265564748866073886536136341458140775555538278307353505435775221185828473266875779550962973687035261415681912875023301809170584164600737388120976819594514179628992848766495533697914288252732319992693830104467804893798068917597385149220169416375084739174715765787694996959352383030877584488444977307896987545616301579519355919639785867175009075469659840036685522270895596675094963820376787947717300203256068065159418316232435394350987327083864235397400057401313994105333769022194326486202014467867520834559095803572596504066916847287204676049212076899578359060719119805779031422924294153565574287395657827213665906261061284438773749173323593064314978780478710856688881302143547271242614993363601257679226051607082838401316108263814945908971961710876951541814626900530913200325191859274734612481345666936587365341887710298961417281960043884341129568137029258047062414692706861496494637009966465427891234102677821628014284485731750517289544282308130357718504092567173069480120015271913884584845963591511488452655691394086516716315983067643171455749971371949151854467865713041095944875316139662844285138832632535092452084737027714411467510361612678173981566050082673665410097167482414745491488831521101796622622129025867237884388906930431499000479528407944344263469572256305324499895289306836623234147523966226239024728801838978784713264442874763795084699875297546499268794783369964151293236123909121595170044543014702786602791952995295198385081735002237223673730188001748933964210514748078260010783884090184405897982285278613099734685481484546745471400928898251316425482438959160887956572092019171012014852025866174023672884019601658153759049072910423068645582144547062328314891815808398137071149908951379380802677143073010812315619911310548870217319020976005949957217888695586149523282930012259600159840469784763656741944087467181986286111775994277792780566711122193399019044170089535747300184729750782401565336484251294646673559145638340199506753618787980672426665412217401094122913357219852664907019791335417944201907805478638890144826818175273032691985323854689322959195809264850094715216389814676346025445834307400676360314835353333491843834383029276421709024005542416827028890292549364330094066661294463145611904985373205636206269948379597294515386246106291389066031754931683005445801550801829385191249575905516297885242450716408925636703613617576099136321126082277344634633490167725559127430031395292613710064668963237337749784553418281307105973999283895530145686227742966206736180697063804652794063844632032387415870813174284469481100628985523096970775173604811037548148569981105549887651776920332554415766398888697894483370302485563431032949883225658908966055416666590686521953899050468191218706514110468813028886614317734687730766051274368016274750232306498403828638993483907679055977419882614354229107173500018608408023020992174147793261273043465118501088104122182068329585674694448314904560711077031228707670881605485582060888951943361511577339199410502815831352900211265651481913338562274803001828772410511968610048681323986759716763017970150781981252346628856827351882466960172514035158078268830307140747470836060450538967942880131748842363350409892397768283604950944053980649344563721233720301162939791143872268790097341518997796271250075438290482118296385065329906314459523059171082387595126796497687523192239615644206507602356263176244699494158487872800832784461272982472537758290441296661575395102341887604867334469024635114939579644121785192964434878154730140923713247303683438563282999846436400951534532943614057058467887245338129047931077437745843261061998503003184727123434521536429244405947892052414581930019119719697527462793227370354782673313021433463799216134161578893348064544477126063970572412483535564194721023963114700282691582133707675807974402750398143712502910932532933070089406491494089764108681045726246758899150878360743337160846553266998981889583717879291037938419672918068290004782565532313919526987209764777475097434559977308490940784825962888432498378289572237292595617499663196230334372733927141241782124891825937882593123304178880719501554391346977210045750146522415098725002061112270421646085552478930889237386404743770188535379391003613938940619847447798321680440334327564534557273673555167905035589842647192564311360598374807675444317329840189040496980429781936386923540896838667715074079654814152525936332767988038819481209941865043554634616125781462910702656476046451088332203301419218768268306590663416712793959816063221860495973881835187135967464653891455512040251838448464160671628959261713284569542281952631840418683742396600305551754862466542376088800427504236313482426154839146807281371930264588062413940052689156934756941336378948118983722681066186634669263172847028122780477920572314021488484626468807576302570252647545900925662703263864649594777995798491055050561942392864662747606898134019333150282490792353225652791542198570515776860776812668282397543410415825868745627556850525031637477624344241120946878798951546779356791686888772505944630063933399060511485703139434703452058219649326047161798146360394132960108063458350936325453450756098064477207179523690517562049876082098112963292588861810349171087363086981567249078435551363607091632205822796831678484393816670890058463115892894230502364489700899323322929774177743391959795507192194332993395155107438397202787549327305298709558756032517257215532601934286876978277847458169623871691215604267115234443400111551272516738101745654958784288414905232080010571170165894854573968224069222113545478473202651556512668867119868212406138512420993824150096849649173267804096058626524018378343739445170169111248950384108013519751658471438827321228406384541823926368525777805083455452995034093162910498478048777811974872382744560118282068573762556338902228365774739127934023863190813454612631680189885687206841436994914165065644495639409631995614455412300536507877828214543667158840645113660084238346551812875448427482979596529750400565268171882706893013019697689184659429378207764877499681563386079781479418908900074799193765931907232279620778908979487132344918620744580041639319807409218595005503363678856525689855579376509916349724007687513595383333716901455905792354511373497843241840183965711119892525018481026393914837619152474846500893174582862038107259207867076431453087187815010977299962930675705844202832462814074400183021076690452196207801787445830619396507444032654205254623199520131792097281996055043485180888293006221518494047788959153386529662711436242316430720847176794658533294197276435921768102382431972109656136262026136041649983228236731146653343248306986545053565203569285966525945319212747497494769885286212378459505508420194633507954128962841433871665540093462506830048488285040470945906132823654773806748080336775848683250343329284235371860154721240413306317686522896879648872468994943565783217885471556637567501767930005049739754485842279496661495492557567181727974712279874901332620086723277189323701476923344401647937213787149848605455568230338840679532438651565560339368695342250036863971720578004512732039828635773611331821665362385314486991844391417907192981590081494498952067197726145460363859927368634157157416001671819106966415946396487893333378306860181401596973603056564272897665674282166065836703530786441903268672384458311135050144215087582015252013616450200340210496607259465951439041279656280320949069174684074664550625477743229380856492810157133717853178572349420605570295427733948566749618265818339278387946767108165435113384470748554116072330064224041148447417410375250678852153781634780043916411779221674142667840070222157887337163887993857757285215332257177649128204850938450520051170587995533490729585673597599521891992435867080520247703235942535535448748677965463042266736522614691872527661009686080001666081173783756485568312602646036533054326345459149491161180543156107013194110193665117708074482813814429091547317152120003012066627672586570617437373612294130720826610358557138851773695519155582359157973018928791330636135735555234914163534844944006456547704190130521560716830583089964721081828282722593624361496351765041688890688550331344405550707190962273699213146797238913313714543615022924658938303487973102676245442752853891719628798531278525279086759872189181763583992460408837141084711841419185617556188126644411769465568764412449770933794551815986876466668153233292049619210773674043661821229353262012701943512497635793648964274997421693622362436081726688764583789163971967724411495908205741203541318280012791560001343664423540756550170438574204431577426081615665851015963425943184261091850024169589528453206820800235832088286353544643322374350415890620577365272421644837320261351800115705637869122915281078357966847476182191866965490720060325967245338191952874296783927525973311008952483907714374455545024436130914318506724600889809197434433158185688215509845920862672348290335258946167594673050030898906317439955270827642612504546074871653660088562506997672036781607338969867023065052743041448717299700234499537754085896914069533342085290232119844375646417328151615991336166409355423644466465659221161996016210363215764068958070290363178786727881152689868141856501693531854865011811462683476210483241016522250649027268987914426742687168557169172486316033218813971923313245591286295650236339385780676613715806490996368650829753276998373814640033419704750406498597370629382563464328500151376962490520418395090053473513283552934794399549325306978327448426882370074852108617521355539700998910643880180753833114213761994015670732024682557001093520671681948813537741960827008984514809107582728941827977628852941620669244582129949447047294021324295091146540330622038728075222952143160973870153009020481974338661949247839200354283257672570807082623760265431365318129201520156904212074621105499423151294375226839114277591050314462139647138237549665951740763349702701798662664538926545901141226387339059610026822529994541412253997559513706582272553535898006927737860225187490347955919923305255623231897729599317204585181836324421816230345084231798840238080263019962123476712985362616224702597427055620356775785687730057313338067515319928732454776703715509187114480877032585443198698075331283161955589242130269522134432011556443730092013674207511768376733896282254073175634223517452224597268977839037976551494718507455236329481361310237741022187119375452621170960658551445029823046254114521934342135814438610676266663118793092720418822764248275904815227722663178931301667069857542808418232016775829879106171248794055568399980153902763955868066092344048830108815623661362728361990232346893236739118956500679640290124391484708871750236611521413667861300934573027762216769734374595046156119563385004338201981163725713595115776070876074916640405915850076774626457195266360372518474480693762900499492642314441232248463577633698731937388734442098422816478204128550279858186231624235628351852883849975609119159747814591990734290154061320607814362393037967425710170733415729534535305352768750707608987777698291090472213055715518218951522730428582482078381894353383003879362810960945422072207368117500643955685557525943045807763270525805262834401773128166119561538159363157077050614869546446619983330327984733116811715983347549336570860363308558819102291871377731911380049685854224128884401507823762724273977752218999978540236664857534115309060082036230367783178621069931114344271922147814093822540525051768950374094082897730733258728907648928571977255043267454166656458715497548642879414769104746533294429369162359869990625409122454143811719258412309880030032171918826666728074247574233163833117248472691400487526623211378735716415301430276042580337982422726340886075605444606375827808547776372615548131477388333117709707599075622127955951487714877790955718148850895135902878716683689406644073990707260680418746143344870481814483838815759437918752498040290448798491985994216202381007215240267263737828563849498496668720438925731938170044450561513387040676961390545235563543830652769345027511179974279544860018839354819258122550636016742652934519942606210705094029581217021724414450625309378118313306649686942334138430820518382179697671982375436080298448996734456152958586728797329534065018052342090960937144468681102472283627890976298903616278064936697012043626821657730553406861700243547736786043409357936711875583458386586243826429811708027940942164278049439880648551919882275853083632278221607444195494065202794493887866162447226140117686858688441018072566761860930259211676630570532790448594569631835807928910709076719452989627099074666597349428039803738234413192059300722884292447674811618935280152004314248923059038094755894807334410552794379114643492551081148127605101520159306665455151505302466278994890751623997752794458514753834903669777471971002982375933300539577735104703093239477835769622075163570645844141037947067831464761936007445193658641696240640188368457655606101313514979329578129231025471148437357431020688007771606593227668675257251909203422136518595784138682512745621033568449586578074343586281307621655357995163171567463868009420619243069907818655923561282034437085915012461896709770540738480921802755582164059980406740079120895212710270991466922127493074627143178101262376797126822450359515122227817119250491322070179870335979608473998194565669519165330852330785645910085443420952682547602592625061119417361648738515146122414955685896873886240228423907687971692954018406251412664830511350193367609720023524387692118948484850857647144542274685298388878128302035433585145001814222400069529588924743967577375061774236614953445225833946072815081604292217272544677166914419331943495292499052868606572220929877845629105769120607631589127607547792315128268977381173261925081867748350787130673348418182256256166937827517262442854580773092483294646842430248288577298300126792279246094913941636602475605607926462298957251447614054096492570493070594449726648638859763361197721285124286680643379913835369607567821781548809947169247094203580227976763025909579544536552588630712577192314184435768743100340278163387324562873333386097064294010561390317302611040446357795528844698539600776122437948970322368777893664563036485889329743523466404083639299903959212113265400737870194973265692283936188934400835417502138137239526147568992312620447350780614745217355185862574687869884185694314766906400106277180231275794527330403183339860718899679612633835233151139537065861320301697378771514031233446353564530762879973956081414307929776053561660259330964603775835108309476505040713933319481819757877008734506108272213566639483121239655017102136216007706021695780584165121375350106999102998798547788989724952134518297015054264249320439496149094371927157546181675864719531692873432545036742050205216821471606568916956421174144705447569714213552934948308102967298047435384902294145053334241210188387735320241667915885176063789437206547203372749902493730663912766868413343345763024738060198178149949535863126433684138223008008276284687789603276252539338121363100595130007726967911881876501113773214395284061050703735706130185242328889763588034496399056047586793114437064710259861776642939380023669253821328417032506852498635902724601551174769126236672289864788174032754475071887342811330928240236338111777485369061659295101537969027757421274844895197667905003684036638840277927784593273993511806744679492460860452977879821711396658382363517618931873674527188565125737379226902046264397267032459257953437675324284503369961401222794507280176300478729160046887140781773567793591431407123967796921547956027320136128599064017358569213306420282600019426129059738842625207661151434495679469608941687837512515623667700328742072397986039082410197359595545598068652000249703873056626537103612236709211682936867812283426819461588312587126696580813770955853806916039672740333381220391901249334608400508331344130911525513171698405480076865179945502471405065105440013705488358749735154330940977391910214295556683990763826753474166081167435750639856787779687215476418420859684954623354149181324339728618978697620118740570022805594068034665583720467482292306747791745931004087967369435083838075328815283696178986080909087330190347744618604176187190322317602935709457582551095807061705978970976109646641721916677731120662152556655897364978509374964848910547899031169110810773800026325208602364047633753449404471207303280405248824718636849316928765453668871233070599143083413452527376458136995447887869369121887907278622663426085031056096680089650164488953308986097683408784954517480801816150046773719829182335655670659173363094232297500860737602758987258938618301154182165423942464486694571499154828041450041416836599344007167562802974798354315279073323415242752467544447153651523820619485499026161192688936499389178547564515136437926151291006761056797463652614217898830099213799148564782370810284585129031520672468003743507734739855447716558464351443141066472609920875160102323486213814271928914083944105617391126714219233852832692043473662585099216847368430513572862947520389993375225676642080055166500435855361293186500060422743134271849353355964175707386318879379300984442002510867354941184032477698498934198340880214495109333783503786893154337407690040230918693708519501728520727421912574500730431127558264331850128996766787201501039382452326886532327969109353530109319707811026857263752354344941561109143099055221888417055512520021821233569865159246981407575795182035474728829281750994560804296247851279746817688152944034992890188594855494185867254770315462674548297609124760996728093867053292979212936989789970646345973901931685372204791591969690750280549836528618544228392997467197171314298758103251184466628091789870918296096669731273988766617677637137118649717036096100242849126996151798905671831062213471206475926888657877297705039868118798759315170917623595937372689304146442944117773080774078972109729062696028109529471906493696068773865484999471301079091396041727248289551864126613149042671865457731963553344319808502546786499081971920702901305121876361480052078527088035352073620032600322197210352874630061364020954289602812124662257411276772395474551870921029512050269702787657394595252414698525954106974968796454787518064442579914961171626074058234655651289217979010157325726026205784948895711726993008283840551888341544518756943004741721927522261159392091220721594900809190645520096845249286953539591299101797487926036925874489114189162876315938320809168172722791242670214189148682922102670955625439899185167725282390810164252967337459199615926022837756295081324273565353839745276020033003641390774186695566579065186135528456239189793648852927024713980100158427371487012885762332426061697319799998932020470601533880741075938563609141265815722246704342232395779228888011668477913585244357857996326242195202593776039355648353462578857199755481978026010139724208933318169050968568943644263549712363609006881013175418979168703114682703929481088428299198749749014367071861211402038619871070841068972161358250715891514863937232044931422014470663079743310437645921739287271728751178522307259330937305824969850124058273644278690181660493203223388235008866451899966805035738998655799309881240184347015674181129861350611274262356611588877412321196957940841396863195513470260189016364880347924489718694002560651103133704531900444286816623959965041702557562208441551604531301925835226286180828912597396118970840330746013991377366842370204033145979325211612944744783636202870936853979285762248360504233184524209395812504209432759804042148868977294979043474743243633445428028803660665136657950643544348564239537475064298199183075527001226733795334157343713161734640646156468249317537909167900395546715389590499455591038584811459503201738342001379422640065040163682041126695840159004381447231889484086603551842482832249042116904613617052472259105808496467999892364776865138772618734924309471832699807568331750018283369100961016709555184485359764100878981593876239561964317809829827868235758769294884182337391847850379244752449689345830566252564348006919813632534447444636155169119097019034766218242962452728890006890857330864842199724765742533910072625745006917963741528263286679329558211486818413050054979328208053946539169297571545092780001802028029894356606839068290408267567321000262456610360647366678426883187856623955137099837527930424584794592480273304725752503686374566486560247369638043711953987315181917706280220153236622162586772913078987535775074200007469773083044372108475979115576233990476644141932934705333658104213659604741993511024176831581463428423299669256098684905398332510747756343240477877725348187143666982060737034878839182351793162536351731782065751257087682644369108714500354171158378020571368523264011283417450788447279967793329963505801353638213743717809598027368740360931323101637222182530107365288820908268016394939464632934325956199328616643357466531348251448392048575678650352968481687622519253417953533807902432925732107583457124053889717497580456123061662064455722881591033939598496758685621804203011766812089080290388258180082993311368891175141743605342317598258234798461357877016309978768430716936582139303040433380289798957527962390462974544138006510601304884393414631245349690031215518035986606336965948334035891750482659244301702492447912203594368454629020034463147446612675293454362028393829863723359564763105967085568986821464236599120413252906817883691605818758677703455888604250153283144791100888844890928094977830553230932443239439230002901021690280188339828751494369224865534136810062511940820909192617768398483667581046479086878579928428679652491014808026899993027122209720376791966523542255324228462368934030894997966081977483115906283168316429505629018275282823498392741821935463287338061793541702811517781958015707337612517143946734097573599916512793787162201748593702041064623163450520841635055903491673583324466015553787296938386095499479140260904234013311673569444779544619901338769710523513962253162769933627121897073284760801402638226181287656978356550502075046439067839317723034372786340796276692163712900265903324284646617656852176484070404724892782170987366577774763408638228776485548376461604445492614723235602206925198641489780535818900444311479877895729660392498469141660711930404184642252134657255567551076932109814057104408772837686183366164223949890151882097299119148087008354784744836509988043162194791537986841639643101871604315371752025253921319127429782048340833764644367611861741452089169277389537783308047031764773935423866777657541542781641273201603788984646185005509773636790497613602613113521471846273078052230776425348884353241552147526240129214536307503896563377785439192703875358955942722309765076618352229579778114237627106607950034656009398039263977423602572122221342558178463830304957497658179658292855188040204690143079064141025504557437540026762229608261027199187736955757482048650279445622555266356457149432924251760756207990729169688912401605179967074062067915058866337823757990343081677353603295732815627620714694640066421080925263418171730248348926371188483565164080004864255396531582000567987182302205637296120428144352999196778423816550236468758759158793167066000684617164726961058478499178733582547209822563841030633462052306387388599733975574054623004967685878441511997463094745637226144775852367749851968301799951564366944829461535668592692025688136148926868281272437284271844948077148305175990672630100207958496625046681156162092772015376248089864628123036536425078756984395864979758161372673044257414622088837118730311448327400568709332628823702886321442951890334418272266327218348258559210288899563108944792826193685624769881740026328272268998163800677015228562728401977430262265454369224253011403597705174792526625630982441539510791226808357181782105568196595059937988952770510438080328879863952681907150937400746306985431186261724456831564884965206809924806497909983246909124371302144398243413888483929423187620379252886546879313981957527449681548031356893070962054576271841105825272513176317692289849481639344938450050978432677373050057314523844217717774665148879940665296697689805979974725274959444390216520327110085401733555895898189827090788773787642906415878503865749344720236819923241089454320835318501304661380148310037908883830156064614164143972229761000259093449002328700844867589191154167257379296618254463937889249215952806208757439629560572123873767889191143684296976787551851293851525530007819362120531768874902791278151482516011845272998095716811336465733103058298957298885933714329125207107795374949769731299908068242396744948920630343323513472254225381332198422234001177700844989753499094255007245060774850670461154117837834212635856084379687239467385060481910243758244114168006454106083003446480444695548187066304477358360347321357439702081874608255482497674825798050093822807952390106432221249898363101789811392887438016571123657928546041363917036673230608471710621950032942557912761680305927750480623566035728879554841940388818479173177857099569015720754191991414189786829360166858188512373069872323582921136843312136392035907378786159218011470024334801435484123125792336999728382019831838731646335161622297874283372645822465093490588645157218284752428586616499991913653122112303550787343355287467890241164474378300886697432885491265585709675263321299546316501567056066257282026453249815028132829700295063708853477223766599428650252813510752226873703478657255091081138272634942754219958428468799445108101825497753314658488483280485460474920057133233861767097237140087967862249958532570011454723185545795122621218259012911275297455732023835388569828513374545161822754100444865529760187125883620563469725039546443212532704310192830775732486229298304898613998286943011646679693455925202349124103266219224027652711078577252369737780461225244524830333052426505485773837709841654718831638499703525786284468724860369172162356760032792125298646451413045617608384553548657120101655764321912302118353685814214418862472803467325774606323427334747262782300262688722845914640839623474972250844831467358046937404897674107088273560105412268974226973547894619514321904228495151493241754312663198520050817785336748078598342583021348823175718789550330244723543431017894575657465294790376199600278138379884391891806662676263095594750106120237662728726434944016913904081977368381842273838344164881715047799836951753512233082096772826165047293994626194657684888145059417441199206462313654860327376685506622750881728159657683056669938655381751857452292803075067152187495478476472779865633115705498106449930914980126898884954900462321440300802022751624739681197090042165173208896389873328370561127139461934905373715407220409829260608251502382595786688908017603293133971251184967362076980160478399910315681894484301105106701211307689555640614791008687403810884337693220097121078227047102965136969923561126439003034165004699418643601413646324859217289865688135375651852676666927775653007006217019331500785910677928732286696705225377438743440655447143107746712878753570141971556633064733702770672776643072179791817765319808484591715067597721823937227884069085481840233205128564396804374124358203441332158728734979459720777626677088525653040391390357567945055511527531717036613892767650990250207419530153952252078949287340723991520008445477600386848978610435614058323374112490298237897196778898079636880432194431653488784993525471183044036141042105957513770385405425640371268766519012685896831588570931870928036747110886696799017108072858137952776993598613444367752097543377579835114626663006313799950354568207291885849876369299288161549288250864026963127135668101079237929590401862577174589265162070141223642226687073888900081068888484539930496981333236644353948050325668218126893894563337990125478212038947352017929381978287747464878663950412076217265213484148493458361365627511170388392433221279564085630743653852712151559559837692691177291090516637971060610076530096369529375073404169438511362097351738850933296206181482743773241144570754920881893030596838341236947481643547652607246515557663401620658693370686561458911998423716939019318255351705340378289422514771725274141997344131770761111682660686541180427644750830525224282844476436369475599493485625497191391512070396226734340633457631043659191441071016147959711367564738046531035318396675486653809194077901068415879420362752687973937440192296786762355830763287128379312256076759063498020561882717991083947697456041137053788632984483672768972799764304052795186783084460095780540233596807845308158280545591976530310248474615001484316348951603552620036319976401206006955711175464152984478177678910259792581499893808149849373741182993437930933031095437898551359265646923848910792014503501911052077438775181752382993796035025202671577470832719431370670961597714144242178100134524034465194096231365715330587406565947216202038641956725617902548326379767268740117468325334986535865110932709453521036988734114423493481280239748779993836106403676056484589662590647014992778101214736130723253245470126929298434261174928632190722147612178938873627785457833249278248036630276713039928782215677029759804370321324924275150343796610494627369821398704258706239958092432218792652205291617067437711278882129602710721828413253575914759565884839658943346292059140163123241249364794693236218010621775279642074025533348666164451643198836894002365081772276535996513073820753729391535395876719908345111805158811471122132437143479157354538422253062124213403780201672115610009471352666240973894994996470095030741053079263288735924276461629738457022481783716387076898088322905760916172496161404026992731984529917274279659018474965463114391120499997848269242014640126136831717451293461905751080062920654385664997593364434630049897893944531073646730334339646714133468729218816446862277347434992649195550385508749760507726138326223478493623831049956597108626022256268895966401889707187845507591620266853426471162482903653882517849233366804867437124686908785503944683932097737935884855977738759861144638187976730263745317483112339022459301319211843319538021099538701246420498404053578932710089512187719275724404558708929760840368768272105666246107086668363814962502857519216550776385691233578348041117837775062586656223934210043404273646902074587536320704074887314455518455698462183666706386889767697578995834492006942374460805390263632799266284462436058202971430317942620134348215757736912909801367165875483736599739822972512111684654018508177378455466281747117196007147169557763261124248523745491077059452886267419012697252017671371368916672374732917300776072631989085118218640292714791959397148439612991966690985024118448709037481071598315170739891968134395577928290176889670929779977042762748601538663885394488702274924463631902335751178887827220753719024038918328375913637995625530545011769208023016638007118118445405048564005499041185321484348632349090263852933033672518298679375523811263355629248978902864280982333590486143383371482325218198552526389865250323812863008083150296787696430910480689666647139416048484461347942284477372891359222305947060359199628397928688879918261645595525836589039024028287707432164550660550778274963272742767626430493623957699892503878776355739325137363548477803464275041909976291615098678023342781867025020626688453139149121197064537423996819578494715933789576695499074294438701936111307671713748728918307658386595402027727666694395646663948983387535502416838630052456085343838198721516637563486861157190118918604958041756612142923029907972224775626272923252673657433875275605485629178354600711531731170750113770502172803648536578702049822610064727742263291396604592343355705584922405780659154649916557898273673621530684732162554641192308293807784703780348715375615019560185933252087146800510139448516027398305700215536833878856680214967363899071697779740432552217223502783308950449274729436477658044586955673692456265142323623192720563436665073000823926265955282739931540928206578961679505221496315459594863250524083972043935306453987139479763967098981510618865289803084936910139588011229311928373714027516705406371806386069804390274798672367150213429828084783923539116293104380694474453438842132658236309421704551035416259175725899181795050166398875388275122683819553260855370496031664223858102608912178463830065673009413250285511393022894496426571333968943564958273383714860653296710177336355342022240785310378415464114903233901574226072598963716688326969537614682026775843971783046621735688423411120211874561539428645174792185478237245036175364826410738195574325148758919297642197231628657731268057077010995361150669422058339743696835299621319099623150261163632891001804085699147231214381735207384453560971719403476008606965260294660160953857774379565977482260616424702649414926526559041840637393068165948758486246010803453837423312623587653766141729104854190749584603655513446663141698305773912001789789136221101094972688574999200124182830174558367103823951836964432355381207700393464985175258631643490361913981192010143871870032908310113112776875856597490726997630960291699778248451665773826758490649251936044486985852113203823975897827788274929649763578399106886269231563299723029803178035775751960696292507473668332820822029156799848717630114685404406870685293811335765933107493502909105687014503819509547326553352525763409710529765849104933763904811071049999421155549389932953231514345772387388302909433153269353041691190366769495757871394715758739950618547106242994074327890866695861674740375455538117492460391926145990680163671664246080508680309878139501505964104489041344029788807803830915085207304019664426918024212350691665143470505598205543525938813870908535522531929251969085895597596652096095227347275250093025771487440785519057013125618785197927244745331809513934496270965231776178016444737718004878590215111540114079311967419945318204125056044743260534016023770432027132073633593281186465957156626391447714446961799613687239862122591438059161793020873103830625621806311347006307947578356804624347831473175571426957870418033351309587432555705755658353604562534015398373313266587461350661684511533057679078526650336044405796083143078041856377986083736353677328108505622611672630816981491642281840096663939844256642470803501297468879879266327695256916723212602514731845833384516355437697307938422749061244833013228619805483803510891864525161364118073164658449862973789797081122676610582700016158213583623751533641661681416415496507932252109253108598218752878942475314351341063634473676313751745380637796659820682749744133017029747706751261738802614527065678187337039589830533046996559174196259989801574990590611822537416449666423514442804236056130426799409135791636384505273905198580975626575652942038048468246049627447029563587062213762750051720581001894567456147057773488522306676773985075873836267007252240771011440691209136483242432223725489380888042117922960890850011135835032178142745858883647317794649380655723064839166008670456120520937837075181153306944254972922818463705059195191954113551086906251046593917791275411295761697414867026903616569520269250050135076300268359366996018725413372566805338378957196984862641476466793763087495937786749911285200077898613390561676418805008672745112710008163628826929980352875637104115999234098244223412144182258326812396016124804855687091745299629109751409598522733050086323063868674093564398996097821805953536037525777330212349100938069890865937829851599527053112516327339258816130636626520957435839634110499275522948096327189910133052696878580423983841838763633604696701037962990848490264510812780771677910935713324603801552081159168795138852871510735276800462298172982854992794197525862163473206283506353295014088549534061412410772894644366356150839248724279338878275043065470811301107568267423144603161719043345641654022254555567829233063186960804928171311610137939482018752978339562375101408590842780105886638271800170448416467018562992859926518050467337047796328405011720207053102304217685145208822516007279477453942742407118542182285933232941514320428748607782397593835703513983669795645885373005584012298785408342584251446580808378362776632118954401941893935020940177588241967626114795194206354207413330724267306935364739145915977216959847829066451220969201237083142123814534131269458954024886996744941728606154063521136204241280504463134772964653248038725110623003041820822432846771526230207481487951862436317077402026628806826437590791078594528803479006304305670369785506459929741303532766013605084093403093682091968344206639674936234171578445920134142686257352632467574286969884088225610987360848321751924071378997353638607895284994027106754778414913066611931741096038704061779204727881555069627660694395654965892167884992407210535878595050819877643828628288114003588542846600165086076253174089171282155221130420001763918073093358458163235939324386815723512410202563898785957469126912746631085362831651318850804936527741413595767799494342390411884154373887542630486295998129197763694959976615135833099625676503139969675652755270685535793985016005934282821944157407204426424218559819903681995860496168982001730785011679592582003885049733032626716092719161877597016717136863882193010842137212385024184637724766244080992942150815418975147425159065720780698136404431551501528895199438929857907971422465526644056576376919366413936823754030316374777817246023223165638464371088712777362244447939237820200223125910840049902962911529616870507281664575680019735687023336733605242663185237624714814473371266997862067233480374498744105157806623085563265710622570601280076774198239755474843783836121363168282629310086672268999198866051054180681993143646539198761317798833331009122812721064672687354790584696403420685740198449675660996263286957285432361071990529445783616483847373061725279445490989694283482687056278937975717333323808960656289970864248368263975699374716747876194866363364469125160531559552873348787447580788894827136199127123346640851740461781204442910947543123773835495252245692260963676519515312629830635896641208737895537727625388083373519212028505231305954374723330136469684427268859166989628984300009195107819222514526711557898174598656072409936335834074835945565182811674417344117326803270258350208316494870313384886273787162596071249193791873521241788743320745913437532192444186644468098583649292219932552499995978352760489983888687170464030077047034310618965167228323791605063978406883022640605882832987943526090199933806225909350170005133450271718215260830298803229438163087924682265364270914113144458831950564432974151704621914747599784970937123039903376661409299834611058179094560062656335841066255107563181280942597001403672454061968734909334025817251883272604205337090404040725535460143708108734601665516294864256180595212905146229438087879106587717123903002594768269855034040768752073519176359329114629812142501673723090130316028920566812785064602093754828547449651704783444520095803856589056228418783463363512064230679216492950237969556403062037378365498564617975801804939489037626193972896558947832152619882505597748651533400933413144713487583905404403329381624501252774807285389574361610795664978774149774951659466056724971535670158414712640468472870869006387091023529319459748912347467971203016135917238063194222301932354418486861662557102648565649301736121610095148677997492037485641688892606030018117719058814175607130020097118338523223438206546919524947497420790113319379181845379000766382359587378693134312098925649137937401763910734936815596445935181295640958185436383076054622991283989976349143655198913766675933453145034481468681291650909664168544380835151443601502492512209359213855260774468958934397705030735606731088682599901994690718541503419279429178288083694996020309759411345410823140737140319303581959699652566286589837080648958408816269985382031161141817099894765299707953443682667076517933038812784656929903518613908198210518261670205301279208487229548607541114742577964434608234899786317122978849412543066324791999399898342007578247163686953657451004424532339761404052799069828343205607114817545261328068531313871566945076508628713281765840675426755844754824173274142675661762378887783709268867333917057357411842223360678691359514552356755224848665024923663205826160569621640480980458131613205233715241847647578623250171110211410393642961086694478015965861770902662136021606473518367271378673534117107535964568200104695517134597404909469361206339194297531852770457077173362338282326716251992297385191244841619853231586114224766156050692432829855433257822384098959049138869921882614138772651095656417061889086853938126327219950680098257677042869093431840852533076905282020473070292665053641612381633392855555807389898417241724487400955363232215437921474586621118641088258687019819911551009987583230911811123615249421863775404634284370302404017864887490619221365504500552329797104818080615716215881118679574973003597354441513259293537723549203896911798454650374857977577343016693875069149794643189452980853757107128398717255027396963186754546253105848931254178795646977369777371773557153321078197732375936278313738328289491507571776279343086809218498844786676526349548383849749144241645413724336497363789515113458338406559589657029524219660143154171322442475843500847261822357307783484048852505654361326717574965383487119887580721239228240470565559302306976244121657777789155265701614076833156742639810473117833165067973642576196301985880726031336896453768396798747340486478800236227434553743007070616770873829983907189824685502294868487233966397208542342268377794941896901353072475593676561201625965045574747690249503233109725613529401366605213142411046550482221147037468514610302715019747520936164219612563544465040048116545816827086673384427331827788710222296232165038000497847686409590925037071048159288958165843990688422615464422790651925534624331862922264562403069023244389151287753173673036389795113756706655267079285002564168304173846611354841555930528963070100017427307072143684517118315873168706893666695604266052703883509469551285652172542967239927214306842868618564660404422447936086109233884462046273377229887686576852910297084753214534895812080649011361747305676064439807425503304526339470812059621726056901397035150648216440335749646892451662417556203774819110365454365774355038275554817481811531749341003982639468374797414551260392179480958204793553076571024460002183667223636956586051951229482715384275092862757061429523202090206469868095533014692635607288656511502146152149554893996131875637512929439392220698288687180495352971238072136244193738695771007585415223256677880211877506340728494450441151164662168712767797497429016941092595437463264516467646529529666830580597237104946713415794535333093305403541169480637487046256358991231259030856781676581252802117739804413915995907370997693844049737780617687475143692062996078506161471779848855965569390009678851202513898487286482907161204284427719050481856963971270111349869389960667021977544818530274689656498366024988821872045170748140778276225126276106940147521325773446419588512358724470183875550826303790179058558231520400276504458179971258958603184364220320701965953797843943508492315224392249953358271775758843981663860406467204246648506559520803459949779754460369991397244208492725423746184901352293903884812097232160301359318735710879972932214827902552367495620368630297092539886467745279036923942897557183271603419792712545129667737890160277930854313883160742373768594071850281293570423517172140675860804371613705294834072648687343413657254665693814283385131466139620203006605053461104122246926542758014779439032967202062423567250907013971040291912207433837153454872756962961237291192079122301775251845479845357836498629665374467117034767443545697981315960124681270239097488967602721718979768370861356772505372492962003326016760604584369854170826942599336823449513486610020232831653657570650877846635438987414709921410597756517646783307558853895568352440223590445615522665183229684617451044958318246705502666372531881240490491739389794608821760054029504397515757121334800834793561140059199081647905769857766575802050406136027382598821273049975960669342996640254613327675831230279818567457145633352265602481992595481213100142240461768984727502351023844343651733121871983944528556824063336452448229758884144616151002777934844107579233451912303855082038921807021678445712671973436243866588858519597175343658779418086538233919410304595436725987567401260156747339848669688501128052496412352999714039796030157809228821475677250151662376139997273997631777398936775553662202066230713041275847534900016909259228118107545417821270696956705690420718891162366343047259872762451700742090333250051926360503527207394384997450098471009094553787522930931833067071517754616268814364544846785064814078417928002432808939033521167634358624888143981327182795266098706439266808052229589549481920861087951461519917891016077051369492351840919382545729617878486193910063074165502920616727334888105287068585642668694452819165980537072846928279101976302778191884991306460034478735055690947972660536689685415105393163518328692016424705025448410604848519949413802122486092429955206850932035488878206643263246351907529893069611474387078902854239139237500495960214550493902655869136518763973091918633178228230396343171889463689141717235959964624860036281617080101614557519258984989820289614799800630901923787876741134128695567827354356253979072557182791719121118300186239051040449413816325428998248349251987581466421831747700712749618433806078836570733372839722503228128492299474304160461441452222656116161087314911332613118646952029795405358311115614593221029936278334318287563484907455312988549938711225517316337271395124060836670229988483266842748902043238766330700283718933185914749745323642956341552939408529002539197217056800833734030093508004823247602718590027055227111416878056787245736349378600373247727475726852680472842793443783837623196524016757113695431586632334381557011121019911698945691886404309946132632244391679570744440205725081556870951023426090122931223704458130368188172509512861728586196398288978209109487781159441001460473765323112410484010361225918396979481568212255610651495057242051096707121396411456589998688303406482218390449992816398260767340296273862367515978193541526428822857500339560659666265336181175957839784220662550735797807206524622277070030714637528865723522506961651154572497138670114900842780675180162975967582502372767707031434344499212133129724109278596916940319458333060089315511106063797332422228774215486021970375216959156620079875395607846149468758779425926138147769486199696188342058246123888401550258776318876792623518844122520338413972029099462315338583712261717903155442135127098463432235698401420686532926490335457423228239943359486912160753533824928907630818814580826884821723970167419376281830478147941481486847947117971912925436185187768732077990334378934199126831526286747003229663671342311262984407952192564269856094479543351019397159474396845160146194356198676646697759652602193569658671874940972754034779962375059573233128269359459433826930375107526963051507257560895840656217375768866664896602226234126406655035444286700295074369198956790316870887175986909288673329084327779654850912292788061898539327825496511667844846527690660511171894562342171688760547359488921521190209065033784170041251872110965910058082112026722768622715003837634636679081413302254551101084796854379789307212880103460122610292045086598720636294791931230530318709114938155019309526945805830145580169976987034273456462373174783495567585625805015339366985038654377737881509252949756269844354433504352753659166642720333810928833246783179656315553068745620460009319044982973529434928014679588216117503006465740794173492738805089076393417734388040157364216987817290153944680881336090822314246297483217825873863298023547936606881449707226676015838847375962286246083548304859050843498225541688652531123311181525944109530207525246867578428381592686579600618598840213968973541520245564386051896222729224198010844573078631045232310191568661539572668818511287023638130166120952953695881982044584752438837512196276544212054604257349205805313363392956006858426253487874513811778138005307772203447851019704569071860288606854428307194538849019620344829504934786697267470315786206611157227006638155389860565192459731999990506496741575865005696445814262659595393553977340896518436931715538322019766749576640522971871569420399894633267439297737472081217850051440085605825763272976143763463706924345334329088168165002568435385731728313077056413183775054113061587749964546869733977501143180257693403067610238971697331517394340453105524556791401671518607507803016342439815168131184260459518860178639169870369626788669536912536365390050005755733840765851557206797341987719200069773515081287996303956313097532130492548791644175822283572022133813338143220665749830882808570552511626046385611353641877021112509480245237450574202481358282994361524108225343541281719405579647113514285729935911997399236179579470583586447331732982592461594294082502293430652581122738568793185846743166677968056963172719645815034524949884162791968993284498998849770397452912764605419867581322085668214739022527205363961569597207706559723422141641426708572522750710911488277947899672588255456565793998690601948882968553399110145495833312233138757975752227133945930107890441094776026769778215919537132324176588095025578909045678261764730774942507125443385337990990158433027971655498930330357772548783584610004077038048253300866038291751568598028881033748217303811773144707527068648862166920030479501719186876623334628672102416760619732071733049567017223796112741226226919293853446618375664957838177501069272016189531279357467631707627096989453089658337118022753634819035438607108614894435284720384415472715404542733645275632425607915132876159434524031948898845964815795263870395651223726783965222008247072064646025287827269439911482641190082631261544783902873628504699286184486411939342459199340782625562110046543056625732730179155272424213619980911207505482894640603957420400118471287482413724132991870008767573888019997584414807704790404494736174181542298808913675627421214100207301455928704933946257246339937187843099782531859483093736460619287146948230834602698086880217397334969864313171073628448030017054031793431968823959334297502262885418125797338467456112859499407341890408108365559414473453656114804673905409286668197179997998714553548923900016518365410337629777028172838409164647590615130324779428749319146433632990688925263959924640396891874478603147257869347250147132779496720442290636524689768470895479115801151985371862783035426477119471475889133442752738318996818021893133698788254588417534999817869119490606915997578456799878190932567376570901834487474610935594996740497121037802374995584514581862114640470590418823074275754289322114084242049295401727500175859544419310706057616991285573124283504879952023527133756509292217344035256132823853520945124662415652387512006435626709647566989303996275141136393268619392960767771450855568433991793483829341427214182499724532486975465545346031052754234635964240651534477765485529849496738685044248076134261662778050584582991532667618090310876282287989234132612820436741068610030573431404842763238665477716614310247834071589514519602225995800879309922987843839649458345756539360589692641697298956575119444548661586684632994254273465580157659073863897349007803624295777841011050541490236376630663874291726923328131300109747776995261715396820678126817538181947880268809183259550121677942199142868482599217200479308759535748073627639139515193903566863744112829252570491347461826227234698128395272441251163264371443005531844010058205810389665042705948206264711613029323397612666524293213155838861494304505163445334065109263845974504493245242493140427386756130557973136918168713568876714452343646649244152923948834289416400997731334198141611746500099368740742225815361999836114649337731534759189812436057486761917885153432426435742092193658321556619543243546308471216604346299623293345054858680021741411445439381610406293836711369772628860523061174498554606568169170581597769329602977274113952263155140067075947104807628142079915188062547593621981885899339026537248572139985083111733338307013859658244590612397792640897277767260476742984570963641602876519113678549624366457414121675814986239508745707845424508818751041892972606338079301945524816892032123444949114415774570373244613210800648928313997894618234437191828893639706436461439023126856788346645374690450799576612945119818567984681480878038366706956524704321667621683948338302328375909191731096289586739087574064657152299137033465433002719940586088695904514563373928652354085279528555636224850279245264669538068588421626494827189104278783766981369159682326975899092777707999073005268825647053583622644361921522610999692401808971152106793790104543083617824002403585017395480877053623184390997411785622164153390229734712965491129842349990455948630263555787023188943710319187235841293856631263021771559300516846919686485188495072352149679963195314530679870052346806576280610353422358624862648476991716354949962808605897834584846997402896400116521510632343879538252002952818090831023591748656704894738500917284530906363817174359431051282801178478870288380484422948071456777908291402709937088796588549970646529867210736497631946202856673978475867320065837081896227162135684119545336495104776926534581857908213839600584879788186540621201906689680002642865852303397835751333881170408210584269342200758648910889902275110659091793871692010856202947297448629506617752765558652557478694514833573813712515101824026138930294054428218940846373526573030401202672314821304793443283446287255873695332855375807875759425194761576492632507074756172120265264614233046331828269632066375870337319857327171503052632282463154046594957523618374019710432558393933174333474083354165865433640051323329048022758759141643719390005305218412669009518729511172413431601150047365093795929422702637353029887188251450305470208790466009607784440795356350826535008315259011341725417922226859862220986738459197311775673834814609008466592801458160443913731950070732651037461594933148687519147234086724689913731410427049127943618671572457935554116042383389412344715232467937729612652677361486124416320948704434330514446701811731039949542043522544996059882923714602493179822391079753545176662527068822997307993114500223847259963747856673479521154559077739262512909741613627694760802294654453703591930683612732532406866779833717746140336589941599113214573419080758496982839776588089940218295686357134795689675880636502043393190779812763363448514962793988807527740633037165452630908843438636167611545873284921530108610452755009177264446173140382604571126202233497439262729514206681024536021283832357416825672240155376161449023895778124731898895725412943636375987379846176482752084114142606509706452387033880328326300641066032716781651862124759944492341362066778912684450399119211085426504092815875850184643021685747939132676815003841083058392785659739624827770420841996099562614354210999573380821565309927410691646251753420954695331882380519090013476193692598532441985858760431078583774948756490328056822543191479203429812655670910438221380527324457578873366254840158633420616499329479124319079939779832871954211217719012767659401372598659428328687992674543020785730628408580086973272451199275735086482463657354672652126868121933586651204002115734157724122920836301924028324163744712406373952388969326163363648004121451765866421122395542372395255631210496901536112971152327969584681397461696948497103217458205672740450636200550977231215274742215600219154700515708433729739533124389133978227743825954278606516261916693380161268736887228809810324052980554214274761795121026287789780323628721128587084127506050300308820452584409423969350237659956786108547007109672385614185801223426279880529688304197209213244739729320214129298085479050599669815949814183835400164829948510519673689359328361433375116830189579536623372031637133488472768547937532319360693826308392767547841142881551027308155299959678199663938087527967713190315373224958066094446630416736436449879914340294801180318689652077382746551145863939977287371293149170009866473639765486397578752626558140518388901562360712768280375893740320382634806887134320746103465217165744263896665390768864670006272765676166249610433804467798621674571134251033472393248571123563286648108836588438714874683811066737983257754106584081341757426577034462218629889784066736189676800148774191968426405859605780852958244751653733919380850923171128697573939964901570413873284625252931761450058514854590961586603199819700795999827588424055449968020078483662801899782882517338174740588225467794199482450265676781056456244796260394436658027007380759379893228718116401934704346783413449434335350042336149756843409626741418616324593015564233507443408604465103812467903436815910727364475516805538274166075281001885810901563143908140293029865082849508663005509927280511749158691220077155748529025600726963987863640302538277468834598360184860192268911431749169000426051175421768974074593910636095387020999173048224234652449525583511445826907318325974968387379805050290696103485236408671943189204321927310138354649197641890126966809494453254320933799297508453535725704820018359568655415554120372457190233379477769704494159413812510439701009790595215000259150598202190996214229261010330943988744726191799148992468441389941707670357377605353190226038480110004706146516985381733001503253131347758864621437465000982585972772157719424699340916441241571804000599089923789250861439596261344942347572592118885126105169388469285407887516991976243717565525782801569922421927103646123933573242024959049061251693623200594112761153466009626395303534924219607542225434940009283489749018336959070185948419429864413788077899730981381720018740967537746844557328945565087783574569333077387193073040976968323104353569075527075086367750537565400606096248808694847536676399082417891919851101520529663955764708315305327462284373278290161451288130493159830871230459303588947649845289765744461676573255805664505538312151997653113475354752954135919621183605048208447841073306542158892489868702265566449426310377327688524657723547747225700674950107492066747507523829211526346467265866974106720010229721335982969156017899274479925498678128389588648349089607222864430640711706316485351102087125101737380863912399109495461428641641144139430266106258044713363333607282321995813788698486234154275632061703060219306919503555099811556030194359522456024853967992100677559526187935648760413055222385767281330637925533805789489138071655467259033912799460517295723708768544597757933903683878697648685981015802917765443977525569242967465401032656412501126637123669891141060383539912666887764818304295388861308838133541996660050015594268289898372268766777702569460213142688683797750836234441813593397521738234779205807906252351422318842772376150748479675962391220825178382219118517697550098534119216435386996286879347580271319484795087945868367558317767104233590869165173615944565258916704541340476780029888106574051771796308793705015872167853964466597130728918879222621948316134217822001090502952586866513901608652751844961126503071265111915621757849270986100300572875587272933052191497927208634452872017378064832073282434735452606552001449266591020393516891647032014160425780056885085515326818296610367447544263429836214786288355334826453579749282361936225847818325675156610662829806911920162228798820061006510590489945655934005887622554743880073979376456106288222253233705165020438319444016205275296617976794372701704369857644316371016482810058922784277288984358858457747393839349405553764381796901222665905578554947824774316534230336608969259003018850544833982345663263851700970583586326057047885253844251020405339055693699156145877057355729664660193601369332198708497185020587054716421438013082356682397750120549322632221621369645139361395164026051405598590780450389408910672525016850254323327233715656399176274149651553465176004051505667905488662835906829354350522939280549325137894845989753234217019339646255335923471524600277423889807938089633860250291712824047116442411390770635535328469538573869271892744867588325984481140983215363977005681145484155419947608936441102102372774144021135538452179160390368604639428944005025343265725924841845585023725638594422361280302280627511253118884298507541850897188421010298279618003687451669179326943669484020530634869353618229069181435527104702655254120435213594941784371343556783421020756681971584395478759313381932666597954124015908835885819150290691616742885728891086811831785666120625734654190327440283195514996108921004877729136428696645969652646604745486080964752571964191122349437608973725694328077902653162331172311033381417291579871468736066832096532943561639261077724098713917982244253838314404510281801927769298046061021478594592919890419344689108319130941300631407477659848171516594122186581386984075807529734859196192915167035775057638790688201070828775787121977441918450474936495531555837823356024274745539709570623168413432248942787296871339768987611400874624856568368596593827761595627942331236781524942165822019554364723771357258261622266164706305849757909184025189105383180806851839446920121577505622167995457401669618757694851825392517687018275905512091086629846734182003665591051980714315929208244307810346571448886401008764983390043896390147025591482457541123632424387821872423138652669624028049830698600447649505168866892735577817944464616069746547029367010752677119167821027273295152125094870547868559288234971960992880722947990856268323493583384093122994979571290487524999700663235213992200515824855974665089344864138590961271303350005161154751691011384909620637283084014947401686644182153134225128646917189707819918700232867723279591595374007454482014767886982962140392346252502752267996059301608715064090797247202880272612952817492242242665706633019567561554045798884192422169580828562045416295478373819622842486797636043369968331078786230389906833511713227180851967130122357403065121349418098447347387832370758539150146719485615414169749094354900932368158060884636305161934195669537229770535847601175630011522250135933166680414248572798938875532702432478699922772342639312484836176481463555487410566128966917372034505965743613613346312659256532099016712200875063024040314071176414116227071576047938220205033587635337188905059713120959325091784037965410502661407630026503308639750328805799995151311021082059079420819918931075083455840814161722619691166452452586570138145144978314868282602620765381840452056381542628013060512785959122026781623835814463389742968171170606196181242399695396487319225994695565046789996804636758441696953060454374172273145943421289688147649613110159978596819498842052618568027593737830600596354752514120052660894749026244451009732482501892784772872237635042094758245234589694452580641451740787781526769919208992290249301459206388692177204164451947154155066188530078177269147202320888717379488365437940020652200920064340345400896241425717539665409169085835134287937945970906210072944784610613359142147564183003680518866597415979230507678862859129489721239816539017075477457819810607188589480447401402436336150000654221718413170278183171874065665836366862833422527253385528371654175646058338498566026253695735861734208215670959220214844521280663221760859355444825265630365780999247397094721634348816057736048097245619257279251369898207531506361285098558530903693370147976788435134786583697148996823347926113907505320030518698882328381525307511639896666607835244315483458681796578773200497329368728807220914369068036185612133930760928688876413515027469716613332429011530775380536063732157587492911196371079978340072429963684212406123925408455495957895762696061160196562758453332529088589501388747343039247712898510858619845429500503810741167429620477766256193802442479567666610631620169489245973168656937710301789233011153355448238147802947891295049286732275362734112801113976034526494046165799224553245609867666073771194598450684819165978377164086359187996390651601685193691140761706650707683074526354665577047015512516441152101591662755072454035333556118988644341367606554699706787434574527879708261124128130764828530085201796086608220159504038063548195119549380217307507101615714782346050205656476732597124446225849769790076081707047539399769170653490184712654033395798300942273981500749264276554881978813258050799692730891965136660782456712620123738649885297697368334215827871171499018316573510493294353333306363621939121850127155464899472085519723296616557878497428130852264534024944330332459955683347184304749944678939766454268697411934801824126350563112675222154493526876777616700274351331924498897748427029408561946780868351709985393137526379677346184914209985350810091884023651150876396444041798301077452669221463562532631881831120772424803030239053036626808010606998574327490762121183266123203459538883275233293038153578049416288139325810249792101368696815545169956800166048420705316667825978229161823509393793198205569224295401117429532354571709920938665952584295191312301798832210168306522050589157099140249164279062219472835727097531457049543593080436441203356535779536180367367366351063671743619045812174749775779858858182702108189200084019386934378029826317728943753219594475636706524839440109448340530016649431205152288766653703933951172257548550225010883624502664784332804500774313382603720477430773366120743803471677645446075675868501335839999940864407168681082389812678447786005491649105894457702945663568184419923436126639987939199717261334778765692924045898606985301403069561792521832807811911654757277025132125042901242558262189410673329049014670276017232651328011559692432981303753806862268315696774470160997375854597115989423370059255664429587565215161656542403452345972208322777274283129882017817545341096573671512517096714692553629560015574674497992366248021683181928406376432028045050599427346597837903940005105786739564038673838843458917302407057027726029550387294971674637945952550720136636824747598996045216652443577993268085618195804476331601420452509621483929906002656047557339164697407229094037725385524541549950281253782451453301262799812996641499846133539767692565832348778560161920936489788738855926696889798580124437496947205549078014614041478381590179498320153146509582157557680904037036134881512117321241370643981608363532746263479821148748329038534718552935444591611209066716526701614655347603302278092800607560320156115954373328722932235847666078577025355796933415467722315673446275846822282550756220052273592515586047029924002859195761743889944988211264680844831890185954476860154331949202001804999604179918946637726072094657115006522623273439282890774382127592288876192358583244309222752333405332392166812208866339567012520773207256223210638702817435098181463921048734532299405074500756313400928501858063677393612482131705427691121589402693219917865893385482446813234922093229085030882070586551652868201026880466768235390888176085929864675590745454097428284184071702708190773421739339824114242439912576387659401733305105891132365180507801366489605078550733194710091658229047234635507583927343714251187036096180458868402274841556920501567914828772793937228716299407491446620109120936606102015420721385982254218027413838525697441778198973965561978216464724390579049956034378568578824777164954415969029408183558557888188540340675318973296554825769956022461781418989691707230833065569070663444092893696219889100490915064705208335979147253871659404456569665281869900218762675611340772062777293026056038809619096844331022050106590104965001117807754465021308101652866681209443495121405548596043807522244372581625502887925659554280867139484341130884833337643292790545198724810757817896679126839457343921642402700835708582260686262764392772984864431053224344579731859567965003800319722392278226493308178214887930377943948593054546185262846401407066687117720511952192051741916143967073663676608840863551747814005603069907170433627223988747016980215961087445557714785723703574878733564064680768424986585509971754167845439546647630244703976967351290321736812298555491667346852036821530573978207552483857231537833418996551993819674687961021132468025511790829120095055372338840007402188036788937569024932664097216834278028909161609900470123226846155607424634912054272396682508084142005230433612657084399886497879964495450117938668355205460855875704903677365150771279594354598271554778918736994838997234360858879525381731164609713742528701615824781946020713133442556068627708082068711924586074997412513182305968999482578503578395195866697711989363872001184066371212913513085236996622288916308231658038393903559719059494843314100498312775793888370572975126411773348728381280310893401349653722543668288825991627546471298425444200447013904016759667590524095409729775052638291082323018837799478561610287683299992023668752322344704206236692139668273335071508611406593558743778318210208269285139052969149650740034018574066262824449628449954402286120361628109055114917021480183403597227466084228296782983100798969327593424842568207125034029909284128869961527298908808720825577679466821314081895977757648369891265999049525573274368786942733693952248077647624384477233043966223476881047107077216652193068271921939555073560017866599206373685689492926214155866558380234894153426372386568250776572892378482307237709841748250594126824704840710354216972941485003510183869451720724088149274443132841216903864345853363988575365267448472733995070228441991097073577654684538623487726427371100985554004102477114512156491153655779747519869542740710466330001657280836701893763808292811115927356586178132000155342673968985220470316679930661359913941175605522717827553570381798837852257327807582702134285951531534697393885261296610476310796623752630270339405351806491962959979376648772395899577980233134651186289082908945127973953618576681038783689020750016628457896926961549814455369563975089710785255139861760646741463857268270372048975363787652640442868960418261348905664620142393249917822414474977201763392196110391620177005990320041581025667650284306046099290330982265113490964255049224178947113001342797920561955879785062944338819046071444219426000831926919686458971198565085258297665934586207536412105809463588204040302907396824699449650957326152013715586670615177877701968556754962374087262558981172408680424979830196788947300993767571629153575967181714413612815212510334649282062166937228520716950881658555569013426971949237195318996017168067588650649691921739255478793545995381165847638268168174306216222836930577939062740248153348392321343544533735986902717406620022745700296479334657291614448739901238173593526607901832890904476167247688842861641029718688866076882973998010249640163422851726715124138157345486419663008854001768211322533881084937969669999600979489904328220314043458545631538169848385955527350899348277950714558772604010315178793862611369284957225282044922645488229523590867723319122784316359052144675805878173151576865228776369652324275606022297845247922244822218595162174800327338996051821611050305860127869681075639705890905267193156427918430488276124986753087332600388156423716658092194085266173220970362785820125295411655764009665035322087979298083824700941682782776955066010884280152597146835363498287188992405023270668948232423057152144534898392048486508855009806958447342032295173888678717282873770829436195652049741877316763013277409982391800783286292028421580027368061272899133901272936013748803269917228014117795745889738747652743190060244726571967791372730680947674520066084680403543938360226032320255329204178452572422499285076893538082127453790645468551310542134600270413595840898763589055526799692562056255034278295104846898616626547799154332688236708626870545247660554043769311581418717409199084938741988659386007262810562736850656428224727288260798628908294228308774715342131186568704009267140967054376091969836311121550047087211357137688435657922134072922856093926892068137035576299953754613521812958713942545632885841766556587926646632064541839297714356432597919311665406126840461802487807490912793168877029415423510057552520048197680248136541728810537774898459173502705778313601509050241342660857995301112504767542863941894518353028230590099742376212010151484494213011018380077310096052951927350102791853170843063381888680042264368068699631008266650638411387174894567013437374491614930114814857632873019867694468164326868622527411117767754529809828671680310828643325198199490677082506862511367765152664476865875905997392451511054681594422439110137799451271736150187670604501752133141387241509415892144540041644640528141423790302096033285817592032728664125592413138707706286239614681563000572644140355656799041392001360086429665023510508399254644699795345579074504465197642308225274117679888436800311711216956201901938218182205015705172154195082636272083272812133823615808211365384062522719685479608024993499434792394661444070947047151622432469128003023134558458169281623674257578958318824207105637148451582840118109250802853975103556723625878291223518384949979567593618375455870699060393381290452762629229010410134922638858871389325728843920281555590921947223707054043497870585278443353870800887374887630956979335346131357011364088857128701206641520435231091890511546065400896694424660486140432280759579310577403640932654421299645037374850013727049125757421458815979676929226360420680400036857883739095429636968861361776768547310428393458742750595991785919950830882449860353256316146019070915739308875861825595560502574104525417725651944884293819486590304134739750612973210395373513199368160992300365005187633442003422008055814898427810099891083542400998836117891530583336099010129722891516814880337838502632517456184119362986401243608560782675860186773486777862657430153179484544896082745990930929793938966024930223598352889606059416280722483948884822601660650651710862962863136708477038011164243918516401460075301840406627541641057734633114204053629994158163673902703367206205821685014412783173060844340400132075451033668228656499157075076846864361153487782107964015433133551876828549148853919940624806231173087598491940139145001987734927728109030661954004035363185764463662765683451875398832205676092480513214387611604693593061363301409253533336793150472970675335888462170231961272925993305225823421098697063509231888009840824572887752174116486418672033450226617087129256075506417702651580222348174369740002914732108867500160273323856989935288298306829154538298270997828858870028944753507742605011147950333289706393948558742375819839300950612585423564068003490050168992845517678850631758487338312623040635952674931043806824416020908514251037312524194791107301643927699931082480072582961754072832753804326661240789077629799744291950683392503751968063385513452133618484353789881152305823528389063625787173085516230590474583461801701255518941472313718892072881336679108415990458194646786449874096983415017169000936202151572152691322941523461752586349540698591775316285527260618480920966177861084178465022621431088502197262005586325287262730944483394145478314370624291977244278147040414359367837609691035405276572845530611379712753917579929934207166263370480730830736136926113914480087606680675151260263528150616824725491795907736170911853512383271211304288893616723309676053227841661488536257106726898740754122552552937339107794282271328844699208383951935196084621111289926398695541577904840262590981296962875742043369544479782518385586666005382184151732864025416265261971615709446367322799566280551310371431972816174150376307326340495614837672587685400048063475459646830070763423680041798951223783621841042625545583961953211025454254669342807950136411382911834915257994753939975682759813377769366511363445845221387259194836116189611448659267868080468592336844202350321616809703027401459758428378831120950254195945413825531539588096865416842858490005990015842268551044993789751586938355455457920364199233737488008726786549638849519200601318599552405496710381685313095696199045080121165498108363287704738973756006965056163813520038010359371270090939937569704756358792429391916069718692927221871319692637509355939803660594640672550008517496790122907389597597668917276313988060954872046123829617384295197034081742610908586495727150688475602514464616392871377727093722303269736729400431880423782947351887599671693724779357625888120329185795091926419819274299554800015755844588858018500876430258502775172416412013435157574429747052681017797414474299405961467615747399432148179283386866206895851798184049117146734966231069009478732772939006712126575758049682774703703829718030711234134059452230225173133268675991750599715201428060850549823485951426799648310454684398934780425157502604840460985701201912549730154739073178005965876491362716446012629204253447567821181842031234224833095071945825794598610838644003760694621471556787422815456042645030985466574436741393274002323902742710516363607045572171618623264512261906445579315180871664512943594586797830065688052025165437595031618353025714094793835324609477813906992884011257320255141000235317724378962930729664118692838148069624257766607110891194492607882867131886733051293910199002975204913371288314346980552368961331793979351141558698867485703280041710806703863604710273988218266726758644813463247273339408511273078050951780600931471061134760412215980121135494765148792338681614402373997597620039752746642064472301185362930897862531490921566476455401981468200367641987654377488927601164754217125053938143833170559799136772526425756277608716641787485702550577454353496777787748623017108286540350371962799532193445456341042325770729560178517020792969725608714339122650839310393548540397164412703708563822935752342030721482311445617876796020932266225233956503075165564095290048062370903276415330849638993589575476812149420688925894825405142979782616585256314860479753187147786485604298914210607296988542238976034104190287834322919754133960454972852826980895161871412819578861839375989711540533144854120046712586043911247549901104152900749432380865189544253381776937606953097978870848062699771954870718956079733968152855087612189422866728346045004525681929872233360709024641936307606505942204829273008080920551739536615169757595215740133815355658845737412550777135293510679581333927802559964488676031014060548621116422087555062597009820323776641257758472597718930706420560575566981305565310889841987704763979598355393011016147009484574195502584643268853527735752998868600636799003640057619600082838593856214372179369362855466821634258074039998643542923714967822542450580248217028457540480870639084877459366665873718574215754912902866106212750143317085483532855243824175214533104392995548444579410034647460149158756949866664979385334584725696733364980859072886354386896474335793257808962063974379731413084794528843443399194363553943826277713849856418943507750166992847997650928690602546600140680720678809505177340750214454328956712008938309201614754365287690581694307295541826572456997688569015491934855085977489511381588340614274499774078209665536887107139490332392898033445206887868753961417304822847873675792261075375888590915809480712393317358751506775448690553358715578760448381236781737869324146956431944853096121108098673292034305851252517395845960683534970352822990072497494580797955575830982963875236117591033175565301968274730088046087716493165028284007578027347786728600228090890115718339335158833773036171992260560319148282815123838023019178468517650445012558179328818842048876130841730483748954151665226730812727269291351417661014111942394171155692568172596807887006653399379143130942309844380050067166786684282685558897690914934619208001254060657134031251820520537867475003089042228287036468369939099704845983264129519472793963537770010067653434053924096198751890836895525253627299103887059863760158489082695135135160357456161180453687276179922624031423187405194602970372504789192858063615104989604686045621731677843713364386428120431416463791353227274668477036326956454000441533188824715082035734009316853038319117197072657060990957814580076948027942933734877062027777433542656001680076923925477725714901785914220490274740476186370588475320655713869600897740798876780245070614545680648841525186206087772101550751306039679789948698982156088617135748830979585044032881956220359694138944777312905318181533066675878834533211988452792935611579443219308631733926003865901754840645493510273870825134074305698320866592634296017911594053290848082659844342391518615634198790205369652868444548320530949276244621219196443914466292602193165933373405336269276392632274050103512453672272772994344104061833824079327919629960278468520978832599668126678241078665143131634529166237978421327575789081764495343663454638330464034792744215843747005414037119149675472559959709469944612160253316817516131392449539218194578920368206968446134667431390030181268635425953113583054822652344673137862252750036446963215838095922462146612943463587304059034007461263891345654478746668356367768787756783910386336569938197887676920147294137115704735146572479110149332543121130936803551772243945428334656198774105598639606353657360782338000946684105080173567130739457226395487800180006226979429343269221120367690599592307686827944010029930461376199496437488164343375704938192467040830464927527962271834005523929371468867576044316862168415769707231146355429946368840522985036249141049751611790515097493016930056002720066086091660238089508271569147911829714098021140175428570299324799332588942585675151861910808442886050496067550589407990541297380091918589337950437132883609617338467733696309939497284166561835896988183810724467032898409702305836249585109219667771687066156125869510718814115330399839647417649119257140811077496658445782057533797323476800531392916456855545297604099001737798666397732374830959149166058370333288823818530621494010415783070667472015681818331260187860346504326782431386238262329315973317843589568174246334830658805331422400026112446350449747816553004328417799245263703259599863563195461282091293126598617272001261108672818816898723882790460266897059904516121348253437447641279533716852912494096176986051648224589822067531418974999838217238583767980268857524241808319484642740315783554055996416888810631774062351555066188461699325412292967620018967983613264036206262219803670855507359961792101829827794441108821285773757156129181489760578612530459716802365531188298446802457571160479160177300937141354533377425452847208585207471256952365348751055931038043209504972355928354129497433819371839959014232923047661302882381827850272133697580792777754270688268840826548552982753643018303858027686325923595950341223491041895865089513529484227293602489881704455816852927998533242615654847760955387441494756410395519061644096923105561262609302716083537527745479534973734743368249767569797356698226206786050590648341457279006407470493546883997492726867532811773251406770660427105754662210684331876628600997719431728934851364852371086279591099540078364509993786383118578295396544511600936849316966658244383388112817221570259034250133156136509134119421373068289902926928761962040222553497900089934521822945289503571606683903785419288047239753409118097241624105708136492477997930206554875423746746958733441763605736843742072186054446701938204913979537803838755945957616774418240442016396283585328006046008689440845280493647824142514096352293308911799473038742107234667689553037789584392766940698084532057675384404638478050979745020558187625086522407145580433238605530908494124192693433498653991841583899172402131422953979586875924887476368225352415203247911989718649096886047664041399185699141738660369233246577123924385366081985378672826789872063258554853301469614022065109456525822367686075401310573459614935165307792833366202758222348996893554793339800667776170368152469358906420706788472814354915508221612824155092133261148474208358658392930468684317223927176731948781041259826677800064783143584682819326887686392967917142974581098710944668662297745408844103094793156718344304427289202890601296961804262902606641734800955938726801586415117875561324948279441620418136974210732356042053079670479419090801887720366342857176513108002645810315770461222143270259531446526879346153504729086306671016352473238474553593636556073028146394976255570257050097997999165240258451498421219291331124488510636033459700643531405869197873075658294372848751135052596862036801340297293141458135176060420517311033443305704244509984629753541789894084183247466519371619531300630020619010220602572279502025482415037970550969763659308753357951541657130676953704033243883093871725388617620066151800211022356522072910251318379445391546728284241883531500546083051142818111843089011430638366122653462220740804421824598915906969537468755762682243682192736829631316191109744537725525644547915788076851146926383966190777954260912898764924703432134363099057505938903051510014349208887207780680694561286038476520865576019840635448875199717512694993809532196289549516461893308895411918299985659893752937838063581301108308191778555703187682306131939191029603673830218350578400469205314498915518399270019583586486855663913674856884880111583199130284979863896784309297158710665533315757152773992161468942423181512657248408110903474358128541671238724940377521927588765382178269995157014879496202949092279868940513619323800674102379712334714722281260214118397943361574219535425878733224900358216517589307579689808174549201899472097535383436823802588106861302004588896817324315184895512703184230061436985143907775476694642168524504307409086964958067946662757820875081602143917490995113477215984185516416098424247407335973412849175158166570079579202634546900685777981867776112357423434925928454869421015695092046361452803127316933201634897896338981581502676791799192870370093662925573565121744499641970494258518927032946845611807497168974931677730640674796413941681366390743095054258835090466076790539029121014114878838130616151688904992795590478631242050938208718436294589751133982141230689545695544860428894288319029500691713450014333234862677682580477792614831577153239167168259689084211841122609318020420731241806396106401247805867115659992859493408257842526562856663379457518987450550055403403673298758310847140965740065011849055503072874810738689180244749490737987775214482575201848161803447049536304265661871484814810668733675340709522750217219166331512218501139492847105146411003391015702281025065317493039532207887915885835483684285708823286114942779414933359787261944456313402750642685382594258197230356038312258676937326772987123433912450598365120128785976066734322029138296947896263491249495373404707792942729320954641596282645688133609983045896830245659362783987253048518236570353962316044770535687717262596538972879288410570471127391182878379730967099698098687384964939785267707501087012644367942831494777231029375011519123079999195737201477436959438109969589934165392853524618510880589705768166707052670392355922037368898198014117210563735729241072257080161347073699562627517558765382133223033303131195678951043658774588499449862436361893939790273552402775622271113261718796024114861681702381727055104134265015069277705671919392472107105173501388239822160373557357735502108392581924332248515066804711881299458153018441184156919044153513668677528062207858191061063794413337705617261975620345061700112293388558016748836275841056886373488985650876964637372339374167077476606216176978814785970994880691058223112275181574875637875850951563723684146907713857984805948350764437188474127326878123756900243553257928018186330014277209989284817966800729122777063079579400480250165717112284941332243442791967579259023296705059404099114481881878665705728957211693789663944531514736938876598888464083342309715772407981049728501289837758204603414503232713886823208364124034120111207752972121094745261166286329419861845880027385922243880084900429929775141927422488165901642180929636606768021723751182617824930771235407513003258309122015737777853340378610943136632396347083085977681903330813710094797475635881735875260351575828237856844797340799895689969764954193259693168238140092200764861021341004595559874902268221987965582523641729042288293293950677814071637436947938380747225695439955991573544082644846055421375625784994763596477441055019044313652535212023291146895860069070972273891692239762626365484735807975360399043680704971835864465805941199107123209575182322168603407264988770723422664114612328063948771975403733176888152403974177361786455143581919324287916500055658136973213549507193409176678978093384718909206301792417553767727591182587218324702819742048777485258770554211464132359180458555596891467777860467763631414324986560055379322167580248775338788876774009583629568314289250703358619955436419336679826462166039434236944392570418238249330966630700758425391701862637215306363839308587706652596977270918667974118728371522706203952571321446690380511710231995557318709936434214042599436853215810911053152736331468113932432717065694797911505931955636823547711473837712272669472704389627426579972218756258152745446282593924652572255206107070331319218546199776791618655694343194424957240180800686589677730765012070040171622472064891331957311001772588144107147828826581168543763284888358923860756838864174202357227166066529288427754904722026809272235014761357278105808612112763743841042076278001295727030913906630702868966553020936468638779163974845915342988267357679826820679981126709306704378036206436415280640705342698939108889799332879962983535506642339468748546375675252425913216532110899906840198790793215773358261546022495959919064498712502757258309703072988504506890030318274485954069504129600252302931691716876032229977084841005487267165535931265633366280665479195122317931782593410629707010247054906930086003755586048474069666861881017752361021076170568144303073493433695758911009489678373375661622604352181651996160496687643349261003141642235807969847962756106096206934778981505723444487174507200614377072296244028616734475826800531838309692321350673261692606807688911581705235093762257365037009864743309203128677362971009066230198758296986604285093112521579670099249453717778869974088842284835399223376332242592682006377101969303429890596827597591890294661377156900594716846682565138869362816608335245362851907288820110652255364789661748226049108380946303498913547069102799385963704129732602572297630518683210574312403343896816827621516937714800058117437164287141705495283135128312353218330652649942957364454741466428411795123842643613065405344004784161785979434125490973626242603429993733765858984566551893871872415344402081490152603522896890253893610258630407583544172628821092650333402360610060429688693323294489800995026439070483171060855393168448431012478203906833204734597373450581353150559656489348747184305728715744103828696933286672170516846973302308260180218186662914733259502220139699290657263541062685742454346405360033364305291336296948948705052609822668999224267991956511578978215624012200962581551878582143400809992782266646792767842604997519813779377674067704441315906368167461322942015177352882023341213937062095527181202158284405539231666703226712710824300471753732910126243166113660771319775978813623739215835407006200393182481367635514900403634854262640338964547083101168122642194731577784162287120880058845260193641809310706298761192300370249016079606036194603596708913957533498160962140023608327528495163959039704458008508008613346179855805743755542225201824930580591788149440007597581776577068600983093358242465953030299923098357144043213796559499140325600824609956775373636308014963697829039596422722794451101991784715968251690107622190833538047314681200370309579904492076153346474302603940581070814766000640561988223480602540236069881931450062648846973899243821138721456252175538511797683369510863720533717046439354346228352864010215166247819657137446278117940446912322962278759390487128106506383631767356367053511510322089935881758813652840631018255433257504672388166864001871616055399706091275708116219832521624332421496642052382440279970866158821874831240746002572378287779709692852566950410317995353831115437512942854694959213070799597768576525978188348803777641999970559250601176375714709298741719398321265470661188486731781374612123683701874643602205362382690646821832604355307501369179874078232787961401323688393003531667476313528058831389725870036316205851258172854504280476373303952846917673424369343791781888515302470505004605850674165967701729394413996290012021265739173368562699973360949377661135917643416884441910492906539274190500341508076487659182139474752891418293997711842306045168248789234003816748343430750699309556339274055172037309276374044186584444145390565205211981735939951688430809228537613730361509746972759821837056305779419828382769446501864629385127139624193646643720824383714038317759773457575193089157642869839614783809966599209536824886272234131620897240993410450916539713061774080525103463091695442832758597259918973943579307102389684959314639283922039180105738409007152374391951729691752847587069232818496371181295033769051796093669531959407182924599045931435300634195743817684136879363197815775291575370063548011295329245263913266215219555860504449459082846643001853421322647516288391992250748755706140396599601094581853834485689580759735869637372782825291823143002061145422405213304475870473395420211549939877615557081321389949935413330539093080596899818118107873712398439705180984078773100794399833266557067866032086771472203392910282208005924595178627502022080343989032898467349018277061836423172129355459923512708856023551287051697162168848506061075408942118293454691281767567382049922760218865509336898849091442698506577211080552819605792851790838949541441206117599013785384214547118218097670710667356241540890591503178092260369455133014893405715006547986196134307987899935383098933949080112865194163986678971073970115521782965269546454003303679229748198108499721276286000920091881834533888523637287748151113759289429096864620620978005921943245762320052975802391577358455692329789701996162083367545532177907943696882334856109153024839913413304498940579700948394125000231492994453245220397543000516805776530313782399472112308319869667370470777128667226127391602640016552371500318993864450302412472610210146118207373332072851274487402481464007155231706194849966663031844191438884736819674333784067140951014505607944624047338102513863321513927100139702729015379792164330721557075160231142088713677766873921851646808193377269010231369016458275717858170403311325349807340581417038064782586412923586863826495599945902070909704404414133467395263878161192217768118603949948312758583696924799649229277187915293999922690588548059735764225044913964496010512511189931404299176334356245232925764440059816146207904417876158468459092475209178044390089105049503216171946298555064039648611868182909565626757680628102976604477839794491618386838932795025054917315666459306204557717710559393850803969357897611284360315964485490499163752520948279745787923294497623506714452873418657128908001635561196869382729755517246268243588933072559310842295715601210105512654321261157082750751290242932355203278964198908728843756825758303014312478591609962769788792642978090802806861380203541354518160762641371195391868618823994349526129728794271974523026625990603331437047000087384672121791780417930449264379864774375101672632921158123986591352152728610808498268805663488265085272550606605695921429437827160771897125526933484939739713163950073501622864389379810650095618680484704016165419390208421935251867541402524991646464602401911378589865307771757971836438022669277716221604859074564019531550539055797496708146057524828212752496717584663511387513390133491108157503169629816124216801033239920162505979098799720463999232644968980434659618432679145040760349125251008444722404913672179499528590450939411264131863912136512479392373090461085149795223143225709165427331355185975907497904405203204700763068967559368165969468076767713558887153338675939989016380204247338088210780340391357487343642538254812324713363467349010468793808246448796957665177495435359328314075296615765015535415936136164796079998752298492999218969049340254771907547026758612853398724450139472855702201386437381449141075791183462413631323112110330266968641865442524101852252388934274296580984238876658940873719524352357868797142631550688278477430995539319834124535409981951793973859845302233964575482008089940471482711416742302235114706624053020026512854000999693219322419695954407856577989754744977800194172442932476328689498578529514844207510120211750665915641860563142836202173489447012940937351475365240915081661689034592617685195796034370161372458027580492080206482492312426045055384726482705680517599750471493877114801363948983762856724122984137311919820320130777181097372622052604808036039715504394938047683363961604812495036037199731875260812880506766129478248930272379312258452250385397781068950943296710679773326281059316026136327981201521880001191581985045368178758053854476140570573835946074395109226757624281033553773164977560826130203015099116731393225526415621502475799243369127761204361784563388997011412763178724665511628267916474254680457202592387759406281088865384191831704856180138174887603775118449816662699193902190385533117079434616544255083874643594022610485386317647638165063237287866754491294048403850532914672056351021652124933613341955642678797500213627294610005413527124978815877860894149765772615417448527035225355328655914861745410372248644054786666918325658893366100059820126073310349110273959489778679796108635991533886316664505464651027912291714047267945415442815820174323341291934034772753018881291769548444161445220443463347779820808924089990065509047250278237928248176286401779345729887357043445618054208595485936732672384780882499076379522280643734192772829542550102632459674754579797870772467733925592002023030656931234697351371295168378150008408309744029837042850073062096237499902029480952617480877459657830795542546628214654285179338722797988572884158073787338499855356804162480059547951983843973279546844573727818685612010121718215130204047777002917660760671514736464261038018971372765933731234015774025294157495287928454254287719370404256272864363580366887286663015416745513543735588824232666505396497454874491763735831554093566522301965926006403945782047855918613634457760500337175668055489080594027515362122717706284907705107769826376789769635517590905808061459742364173157235127727152951504268506925659459742014810101497489879357008345996241349522470603137991956112316116638127899103316513075421813818762665047710088352630337880886515187791227989211964204603111602376240401193682449947407477852369147908990888619986009202985228126897219542188013443797232291723937776137647392333593695172360423524040732623555103325154088656277202446939919007713142558200989926568188661362956780131745798224157554641842067058259368119459571231033958889690025164174286327097647678719317000003499384955571236574092867520239687485209540694648229568155520434232882383786020419395651721486203981030894767464043739984826107243364034932978882165364279479889566249875760831132079226136516667680721503932138225449599323504176314943242440849698262963208815511189432761066587825397061453278798818597648154187482234020872906571282109959243743623107667001091411027391758941972690157367297130206583028596300826573840378744443844923705506968886080532709247917616942726118602926542809002977048007626232098209375505791073495361223990302477495006442236618787867156857788014826200867970077939043753337771023854736492341033781498928915313182640998962309172243167469227532807598556870367592743091805015190599930084557314417832181121985249751936815911980072360503227939749541998057204806925154741480717137901322738676578831920490588134402276781129599384139467260118615217111102445150575652726879552091570886061435795998536863198289086792419853609279661126253818064903799793601723984423493535103481657495094855557500130586193708832325825582016529023716845794841255039443452367394645857594776484391694917866444203544421758171091551628981234703167619988201307099700523240997391531813476794938095570937931807251136445840049874554596140503736827036278444052372374378841215584861584182100795334386594993271029312476843608267058911538235987326888335914691093761906216558184537490125369001266857599504471091393193966122578794972632016330007242824698656386593668208574340657621625676726432639497976318374332883449423770913892904646165157213974022483266163878761742827039778171015492242058156004699490874350004243788260092284341708464286514792298161236621356696154385948985204044825381511548756994446152669913421924988971957332846134403575766733287483259132119697696487043185219056052905408084543941114736897225363152449895736078364164966735141144327276195132011107513968760812000121483585204480804644739612170544276710091893162275960870649991745592756595378318516982731275567787194600839254563303094652772067295419126496306269846926191469624770835156495088717889257189876362514212677037104280386004362940572999737150030359964494104603924422146285126025783935293516717188923983966244741167037939328464678740779051806648498765698390705678866245706534132203116282844653092599072208227736214543808780620846832117454896765470012772712143389956836481028458567586910258202867024719156789764546170743782685920398380926860347511620393496135351209772379306688239183988337915882125022040588424425362347215890772812232042630854158904127902928310214381965590753723908712825008056228775834527804725667341625542480882861549936726243253755778338650413757239678715842125432052910783142278746852608229891099490850577441909954854958876704315632006204241784953608785581344955240942395833899862975158175336011795129271557721853044831963440233393813283409594799747953316119768240342779947556509601258677729130203386505983449665839790133789650717392106753393939744917193516836318149157783060328516830114425826855060727075255480169201173658668492442716900152128810896363556256874538457039486837344450146317363998680105212962257176339340523330752710198127775193286982984714063681762411530846396043706271167002051707810817986649612227727253163262242097958822506083960358441068646892727686140748689810614470972810519828033826668338188919764859931554110141642515596106029693380458408098545775853485168790133467284842086524044435855258346304404604856113893850827968643980860183254350051917542158212737340478380915674453858866576932581936649420776103300075514732646964728465559874689910419215999481172690382277000869668563321648913042964038405793279168059411415167129176860406256808156339817269227994547125571012778392990633340321241423410674596663627162419112138356604799895587624336746091392745757334781358673066280560736124258909561677339219461361501850763890571113612879269901537716350526492808944156738715229828630014290547580822872973100915654521080898853542611999560678950799063139092259420137410106463933757166769245987735721419621384867116801404047697971782707176517227584714538451170342751691448198657957213697725316395828111641100292494698746720377198262552968355194444541582743996385598987106344272761708994400732139054822088147354931509712865367023271548402849805449819006349810555310315009176378181577603202240213895704217975140069458819175092635587783635798170971173833395439400859968756534817123592728856032178749526168674487688214164585819922163983768123878171802214649658271582974638032658455040311861959440559058481834733526042575791617554626435608635933155675014730940415288002353937960824018206806811661746724099739926700295946447331774253290463029526811922127411881326503281359942171920850037542889064698589217886206214449101905067331252803094668288543957920495217261155124502970569391047902780695825992517670730868547540008206240671726319003643126512935027380139645592458536110141785277897649499295023392548073385379525458282624487261642037580246146417640200039631721062481965334830788163639572547312068789171959000065611314582745803447654500094058993293102304087548500369741439161596431636250367358897774758051473949398501139829887897800866334742154187194552981864326711779130738157182330774999564950969363719577723301701665867027122394523913385928338563560272294075283747601317496860499255071723960894407794358262807669740179884384546231866688743711429514714386914339491417058640734958710048582221743000516878713931590558256690130221602053849411337588654601595056741047950661611820710290644969266439868744905788604182353068429199176958056658644113964304431433134767473084224534459620112300296538800892801522644498308951095595466868640227196941441339798095542943768968049883987248320830913601782086788866786528079019810245861489433028497089988854134471518627615643743059502546744601582012210498264603348914200843676764545187131872625906179987306025660773467676271005504748327313682425690832579408129543483343124328069522508449133871248897708249658342637260303657258214088004903063365535827054032830120068792219851067291873901740397785297740367193996198276418846628090029580705453423568548898829446279374422182045912839008295512299146733684152274254268778425582321307811567047550371977562642797140045938762341914461642310809205566563500121276612698615813490690124410975956676879275477042416550463311400107479382112022439048672493241707016358070956699042724303004261347032855919149135200929244117714075429554350689902091101783148794335742385230152732364003496651129982450935265145871252709698335612792453849827943870468592687768839768534794681231000464236081314573718780223101749406484881276717886347067140560971931892669276660592935797995375305685549538650488208360270468724132490040727731947754030537087058122891721502899471992364648546504238664095657979014485389170038891250637726496250551918021208469234608625433695129509600751277044923066165245380170137357648368825570158531934391081481215411380506053916449633570581083747459964012073425133910429096898078277713633200911021822230509131326404514933075231374521459568548623940953280848971498277035302675805252469305819329582068118691353293522121715249791214625737338907467563998021189075332739111041212202673947810894763978701350462668570520346747345804402606960291093165209114876405294935148152266685325755727625769783760550540290965742563134289812604077222506057881076989819494595129801641380331017192259595668059068729114067468934098217367950612648963761682668177283766983562511726897227025071315391789297122075199106253885580608639619573349275446839910206696078414049918039875674858556837311096640997235350785675672595645723923652409306529893372970353579826948433918561698108543065015145959098766103466254279947311878994539706751033831476860571748270156791610451439031434949602929054864724635462406916870279440773844797144364847378782545089442933516169954684152256364473332806345114081575809616610359670350968348221141391709507089569779978531433578304206036735616391860021811492146213986126847474903217440123126580577052904454450384219443824567467312687723437261833988907158342131728657445647825586862666015857026669569994533243203713092792378164597164958185462616889845837818590723519656866383133840793228112517355678649188804607646362816216458923598557549091784229339280213830960712666300460216266541810971137737199395701121088165133708182391446915147883293438055248194713642293688206377804297478400230892021213426868046226443606955525875656776585176952566105578378393339913843075644239830844566946476134434374200014378969274924293671283145385812011194364059875372832541522621033045626985395381154140922810582342488424665729313078497884802221857942840399502107301308449775355329083854577209305943754883072254424638988658113902480128944786854866839762024016652828688201627953413172957251942730131997260228390959275015144555019243183539784593577311247084797329191282833461146804558091529251382381462880478855055671186244363943498590221695477058455522092711656924588892523173912379153816178008807458385421363180510125001402773650628649001229950015011875294462357316887916120823104197008730039435953905038359994461033379204889400779147496541259344121276456749608102196136775633584552636407540314348351836493936209902157335540228625504621522632889687448500916442767727607369868388728326340841728506648352120379880596356151296535771835385074548466063668332205534580875661329848879038850827717770896586903785852890813394584889434744933089589103658152028368896349738487654083392459118312435568842096952275499516994688522017462692971255432953313901511452874352528002949745394188064178386174173586537316888809312489703365742224217322191785636711666055852058024530507561420334504250205953656875154156593092333889782880817774367377769556133596881036433071883643815917489801932440418782486948221977519720151561358777305401122305340670324987891619171484207087768545897382351392697196157569323599269189532222181191871561904040770582769073577590347781873578294090114570632171318540014306568130125673282613857711860409889493451081068439265305944961844420868795626030528002212465937446224940594221470289759364365867656705307575721418211020112065286950988396954930579533534961561639108287883036534946991891195338068048174686626340431815264676590084441431081858317020030320643586234596474094020198104178626715160181050468007806058049568033316728751640014885821477670058173232760625289905717043205358834713507846945778889216009612251216061020128266909117744288882458300905907399637744151984560612001437913337092996725369793890174535196619935501634459327604395145930610922372405360931148554940457076599956110674251020631685540460795183516085821379530176446849533593127205616324583471074098289346940007276363542179263718652050736724550732050261680141781926975471598258174595061437828516403457219022523890030548251618774566633175784583013796592101539836016506169668123532291888597042118207629738664205382541502999514043081500639545736351178490070531323473607121146669442153630125533140607564129923302784642119954488921120759885062247555011032721341823526988116125516662313417299578904517636909004538245835261523585126563578448442174004062295776664282410308410422813203298778524775190239935201815976978097833463738719008954160826677579477285988432702256742318538729577033775610860648131331959639582009295730311819975169829345354256196962698232089948428959421900925447129657443491106454657216542962526182520839893086771510981930818002761471521029685367466174814760538086489321106713457750960911886059196644203532516238535635187577886332262132349053109932753189502633630603602710510100009776202001519601424851616167042774295751835097607861133698339254446553901682554880899547333431114040010578502337494688339471733054166451471418333613047689266955037634956736910606486907312825714968490199654176143118730165753808268080609151752104994625613940168370372746943431098164925535922019437869161250930942180987096060218382712691873781687485985239722156000852945704252848186276305867991996247944681183878623823948710299431721732647333810310018391044823022836002655921921057542499398211228560574880916121799224947213301521874701938469508333826037540126164365477172415143483042557910586183950916973533847368493462932653392378085709018071228942245401780644727493818372519125353366106794444576842027464455172993783970100721940360944655576231903216380721563785526094110951900020605136143683256445719729668038228631444511182624808255390514109662820386334725747859160179531308559175005763248988830902881539419926744828394548998439921005258881266120043112002464534102457926112066857604570849211627657451549498663388825098955035598811713787414935599133379346812658243054713001977821914197344666425798011315094593606391716303214125971755022996234267984597381212195386173483817125540369948078003629468662675910040775323944622683951903667150676144476593387103782067831944602741617902039240979515360706730810961794701374120827323603282585427996030215668174986860728079863902967578509552407150284642570126479277532828734690759416705356800816972868827812569016885768925795861279981263218041653126558484348787550584206959133812656772503824382454742807521278071380834135919387715823439451120693443855257457441814461707555376496055607977604227821074203623011005820647372845053815571956293237755546168014721142554957259984822108511193002538087108193531230180383502539617449699204744515837981252072879073232437958224018238380980285142397503781261721999875344511920029228890046062181336534602064407462243446241120280909827519087401116103439831044581225681351079359246283942774280044046497425994546697949723531218061917205290165801143678933464348556037116561978387995094640847047250559497836670475182391710388092899578451316446727937556300863731720208211876564310939382920585049615932342042411274179900763233861489877221824458054282556629968187031002507049654726659084926985945570937936315785351162348819223536428322886579871064787596662244335473440311748126007058360213105712535068306344680452179312944561184960396960652110678708570807623383630005657977399285604297624539791352966480112115545508738299857281758888712579248734546619156551364750789209745423657095264686513971557151604298269485091980024564990194838705469565440016741332037037901994635415681832945056598716053242915667306573514491297401984975208247649833937976686368151028700458742370175930574704971817028709151468762053522495264479041618391318037423573928356922384410108827222902021652654812262599775386790460231618343149255500327828753006577136168187213527943580270686034078650328431431756399512008615625301345002828785180529648100137160184323026548980781998059368975541726302772638821682121044558539697482834917844288330468213032545962677492403136161870182934265321246421297105689257483998633584082619115053889173569720411401306053527004771453059017359288168331861698072233316434734512873059999861554856275567277653058909862581542528577883098156924068215879296084947877503173231293029642696349127640158254750944812254950852078478375398202267334472377677815853873788517083335760176335519603789773078528970718448779522276804367837998232231064730237148648040285271280928800724568491471139745458247113173194609998841855463742160859271525553311021150125383848190998942469675074766721285121222317293841124249837056494175106035922546757060285986689415397831974968634007859447922774192173562748676265965659026462824373541216285553149923186099747351745067816587858501214404597128941665862547088747320789368344469268514355532729806621094617869543660348337670767018179409495867931755487204046002181127398738288364634304944273782237472506698958510714803067089873089526361446347669208681541387278753629244474797040603406176830284857075562819651467803766758248620062170305173871690238330753631825294589188893865006079772691234610803688014765474678322564928235348597073996558273238284977321634260562901807529773556590290218570137320023408853563034249829862878042118243922153456343923784453949671306856503246489940964830212634937171432148400419423386503462012654899235278484279661599403834052467503975595571907601181265902261152263739035371695896405504928792587818584398241778848275665724080769333522483702384475916661447233284610342272591326447653317129387565951867422186636069504412354456228778896222169182113661109709293436673436742035914128974741942350965106480788351727085055621312267055871207350085908035777124741128099345084904706547748232350621451210561653023538283778995291757085528271151037050448455492933556841807781067523445960177930210955586577790903210260295762839420548499958785596719963145151737965619552309539022629493028461451698776627610788342419668883814906358619521686780400784444931337868899473417082175961780530523857293454296370035614249425344252330002336517970850832591217206200701737828722103530940066680353689330096681452945703965167585209154551220605130979220608002172201983064301585310635410131247288756711540589299514390815760153971216332871716534667753198074961677795929184389334848013548827077818269762486767629030351682976899270113403673307462373379052716270298640030830371422840464887783437297604685690589259926863603479282921828501554818548295199959458005289490807397204649689495655156875108913184216017009852540553789440191829349074245176868475926562402243120501427567704330406333122665425207059102820035398928423073575972660395086985823498949603760408941581996124205620255071491124417910512147632895381745524583901080811098034295244921957473202181526977605714078813404923897999298366422244812001681301616176194923341581116585644316666079739751222437942315498961479779838189236746463598998636503035565253067898435296831754196422404703181786129690409022562805114468665383184647861176684291831002685740026817779636248209788281605801731679376831377679998416054217919690673339812675132400642918159538262328925634729601139028852544892136700213004612003903943078693072088734336548103800331611707507340305998641648549272348420927089253629194069290924535577819739277586518415567869933904936202810362125052825597962497382149365049286214831403392185141345653543635206718949538163314139402514667839070740386105984063465797512069869335118195120298187428151571293530604796270057846420844942523241720214218111315806674941971850641999136239278567693048269118802217537834839827375849071325245349063952086916378582527785812882248435177788108889948872950720506267076654574835564532722586609996764092741692295342106885310486771816893901972590479824054093489447095986806700361466018502213113283983969854425181173149699159958946789568002174463817989352975320207654543342592162697261716186678373905364644941710821268616487030972957159535454944126433355699087661038276492485525033505143309591393533635799124264305925379481062439477033536341556375294681234873462200122759041440136139394369125301410208229945186900718189119492399068129291275129202736037850217199893238504416312931430656897700759396109919640718578896514060237847867923801359919347070292825525980354629476098267854535993197421326143803764774410272644302757754430053570752557134285502411082858708439908387878134618104115279437864478581434460803650628549209015875990418791111918677162312673929367303279277647432192172509733020653591557309059732708029451392625736325529246359673380077229356690759637127882166777678266335779735577215391857973169324907973473950498334980378488383548091787085534816298556794313868344866789183483695290587920323792741115041204222286588311737978037608411868827305624741808700853070783981314163526169108112657316443785014791450764752036213684968639888856569805753780009312532129303700185274812831835398383387681838616043666322734329884532952843594095240614100405988594905072436184123544285214601502447096046461529260486581656785090606329361137900141701924863571578473694306066281312754311080371147375310718156702990075552250997247081963049021101485568375120541349751500064488335453925349817098303944710673733819340137801703431718780354192672457829450848065714731549639675663993945891345512985551574413056910817519756163947109884234134925844349458617535449391859147485683241898389860727069656911212388466742799807118674809002018378864030759740151112970669681903329142772774519026473451250301342702259259586813762973299704789641688015825647106087535549374108377422554207757772133193280389309017294720876597972898095234113275613888539800023971862007153144228491371534445884319566643075201174808332365170344564989539954563071551685766132225249803586328957521336096795305522569050123357111573232531896810956728745599543609387492789957866657934091083921264118318195420173344377382597898987185742153584551185212720139112436540010377468003263954247616763790576274677087166972487051826489724716795593003264273142788409824116177222975582642720205554349082456408937353338982395910546325873562299820925897417773184041865461872328330150242247471943172466762247992423634091882655725803604884160401638318976609887893767879743539880867795122115615219879977524463317278165695625162781676559012218762930222349744958477936595285731738079431784954347690230479675786052040036397890104358884751774174004192956420808687059266344371689836123772894723038255771919409381017407834089024646169174810406988342522949942742538556946737848835016368258513016153524562573306098196685232252357328586358823388170947248093383844488649423689267913699050761299611131009351432395478573403333163487409801047095402168975524756767861173505651048118249968250426075878617901840671831034552926423977723353199710533599906997059795058476123092910119389933337741960178253749066882528819488072565839528268099001674912946127423399539029764458175021125985585002189399448108202605101377246962806953491809316643636671891970717697394202218840560357264318245971693246990079472335867742246861577332028735050573625083203093624534976597222858410201822615312633895524988084326788171928610519718474712509063674652971157951938795780342463192027604863599340614986421820267508144185783380650132468280033174684205817531696939419666012715653890278064965652488561778630093628690177439924032691496298392441481513722160408076552512422849055986113263231546286637734927121761318597205921334624084903005115380934854393225456674149241721578865953209474745109154068995570673379039504421828354315937551997028669458816075281129976415982975748766230306793734967206328565675738720782538343998898376431440692371263780570686729538788568591888222663691909796096160926830634126829176799022198509278042764065640111996285644431543987766711753296439285953931198988449886853342531956614951609435862206010954017512101353377398854154028072409300292262234277345795461343480527527068679667743292726598037092943803091764822787899667621446618789529414567703686338891499926863950972381767480101549540053853917972808388213984791803322826786240628974921148703861390626427272192634525188405263574946697357938885112160769837093171375153263273167568820403559863618517285851638948007129809395514151641586487194302548197304591456725838530572099621151533346081802560946929567189568301039829520398501935155880161395721766624559508811738564853912418913716123555596874885588175072290516633850949630245677241145000117829221248918131695946261999214852036210958878090283653524745994778856588113775085575223035594249052343956692576951697773623731319690364313091175853862807701638074665561102460706483709425408476750810533085192323303273426906517870132251712923591799700866950377785668061111683404342858049093570771648876927485494180954286851145199584194666115689207827722042273887354743161609645730809899072488491475975683602870853082392845089288643502475420520854291751118868190141588770761470845043524118683201571402495010419646912379846404462630017894156131678804204276320683400350290755434915635649005291488973256121527355147368478217826304762395136386093133077116578031417258985351237111948025005465617857920748766626067188135298547233863079611250707601341513816371597783959796610805045058389207932836679323708337068731329955640427433960654197633731725708306871581154894746145559799411271151422795242319477402493421026925643856617735134663634678211527216803831800539921652227034710076380632782906043360958706668292782756493565230556384740302968448263304140930454313400262151825131148660282364149331212654368263077989363695205393266220206004300679654236261780752547073397009957074152829504851333151372802744608758869118360555852174141603585884102202609249522442928790046329533205396697789755698685582734587061501680848068312899007923327401667627287643713298200664573591757701225084017642867211865354602288823461251980315314917950646239077356948303264677569812955323055999347143611121705572809002713501834136597199002000465257843538608903636760178411512861047000173449083003650274300327592996187023446206114884865328572749161841799555809529871779609684186758283268295672640713843267823062006588692900651066348136686247057048076599204975342421978218492993893974161771995526459354910382983300591415030646526897591666779016307406983215112193937480533614184743911702478229223071089962808636849940515303836654879268919020691352092869975193116293635642457860403925432438526499580365753479237590116752565152349526740317414468322818201839644623710449643271324693489415626183212849258000352286509644062984847727275282752487907159836105648705963566743146687394659399826374978552452934343986466175140503197429207216416653942518133166756078799093311110144771700040918474960549062600544110433088780631615776802191454745042463119528519206772453445340664433812225672380609079202467809224686181390644598157046967237348165078423330590478622373805273767768517455309830237843174415034811712628145390338755252005027048709169713726926443532339187209121981033952192109006625338335491070388948078047667870312137660239432651431421641204434308003110794821000067274663991671956816038645204261320018442577828860403844349124489484149614195809320658132910050168156174962112704809826290948692846222286498082366420063403282714177307416342481610623220091696620207465856203594952499399667236245362854704187207227406476599299818985079632342104209237947133748050854831396353490893894309568431868029320214039248221509335830204852874582219468037236911670165800063746016726776200352218059142599597863623580041125705586663959985475881009280492186916781779981438996954777176134300835600002827304095065828469824308874035532947251535744441565416523212070581547463054608537031814566150362144467781235273805909211999645858017969187327601938411477711141320271411533913209471977807232453587305977480691197824033424135744457478709896165628528136648089993865005566221941929788901175083055871184684192802474043266690459361764073659377111124176095559765974128594428252118739663542705832125449696591893285803257247533849326826860934563244605258260249376189707673174457330215309658674758630307153254922186613326216458123485575634506305670709531183904285058824713944201840937539573299742684611542912804438472494672552723085516131117849416957916933499158647297948371475650275467601084558937753278950010535950938311726082681773253480325233477739282668838425107956214204305255396905990883813483677378848828293097935328882502533984846136198183748512186419303000682201351401864629738221578291632000661877309911696584172000176002957522043200264400965743951630210581734241111432217815073668922329239241541335994502852153411721767349015564515876579714886677102565601340739861058411866598762802038427905715337736315115618652273434118829297482168827754802822537543766623559782676386786667819635731513339622256701721785488176004081195175647324222178333701799296390999757889359956263750663240018548384088244929049752519742171891566547806154337750950026464833003875552423540305001663610361559258628574387728930566920018239585165050549254186377388809411991111478934476731564219084700801485498826301399200956152047504835590591870066927343523617088135910213845441142118339666249604290111796436004986933276107826629565175945198153383204285269695582100604280205374429275487411101425772634457217377972548011548923522329979348859219980909156782415822577691547850186346716893023289429000640058152538598323329423234283733335438638643507868534954629887670905346673865409460921246446598902312033990833210892410736441259507975804776125502356204234279310208513242410590974188443384309735312286011686112718212550055687724237469676491422805824395126707509506149269696541727051900670676716161784004751504082596351910663841313161982889233780527739778535156186186093151088983880409677981138411107288752585428842828629614819758241693364765060914663354639289306250603373412480151678551506577289411907846498186584131911672393591467141994874314897566930016399734643045726586145320815984204888035119584881572469384999955915343067356039377073073617187232715912562909917096233850881002545182080534381623303583935253665225656236696697181842206049427417081113586933695361650823502443823121132179096093188376532157397722351032254951454506830996183986486288898250151640832503869340836087598726027996813006031907661598763155025639625880495046918678771309852255759486893442698223595898728562920677542580624478528689276001268151924666040575762614717280605989701012394011561918618389931848618678638982715276823378966987144646951667231940244015028528338161385290400154116882342233879700534566349553379404733547525447055389884097346784669038809074243024359764832169404674212040494597675698323694169048477144304954954367096682659985806037071908359106206751756864475465470471984500196883207290510101463585046929736733144560770258676884689327575770165761473226571416968676282052562219160546794003733192777496676516667315707224021104292984642893216349150539063962657839365038804468345540847496008264028389396818565683739298380576726291197599114989942231363090637365003963238744690853847739100652488484099311758136283335891008707698365433409823091826145214904876928701176647978599566373477824561038832463775915163860819733996843669467285867202888348757551839356342364060269077478220384559048154731192629037967945074074614254868656980071548691905119520314799305503542637546504230314860531450391516998427800470196609848767329018552827365101836644688975705209578238705371814876926528519495910813060489722897956741322633323543041367472740439739008537140094334702130211096686586464696980220012576277316325707938994769921654475340450484900967204048312502533085422480219302706943785246832276183987324702494725928680749756463371808582313155131697276220621549739547926194599930308436360570470564001512874322504594327835925207235374224075424679964706849234865589953595456262120721219893391702165570052421310301418457545758904450814460155035423684068047364353347414893316028412456822592936695568106112866984509267994647859918267305305176297265857924134996195361657756365027051160794654370452365837332454106466729576842116676838757063353161662401655200632117690037607063093653408939969912498166426011636603694421464356550051052928282080127163137196289119035761395901786071130181387674328118907106757557981951464974716241512597579009510390268333126140869642929560038814786668486504104618891417584782317814550095913851135065379701613139329850727817414152298363775573067286786482395249579042271799982341652048940180835516456464731294848697294414662422270633632903355549983124161711394834684871984059596774323157247982726348835089731684375523385225512595466575695906895071553536592834441440187974874193889335671064553103791217056433404318930497445761791070679699722004632582590693896376812616417427318551975803685882876615677601507442752851557908197906608843139830262774046190292289138475203021197530602784068088695404292699112284330289130711004948160480046241029606545614255126638781204405688508095626453339055889737781034079487088603446592438687150647092917429297443127299393160416837266427041449837707434063228424000622942093372561830662807716621423255205554510876434581605179290674430985515921973574039900181498695426954628510618940564764510750343139178687272517339304044164395614431403931897567017294756105911797623111378716968648946467814345408227828484170331364683933274319039311000818638039829926567960242479626912075730961516524384173218297450818470171225938332840591912469852979763429752547146418484426079235015264186810076363271425900618963767142897264332182100134574012585356754047253863724011297261381906887558409763048946295603991062876892722401225077095134638758952531359660530470775906431557735168037194624769672720934320158080591490826469014194854060845321444895461025795149660383466577737802010648675094341801082236063741794439931294273405039595229741536547616479223717643954327153522745712144230841506543367729366980754172134680272068194579222155852491550693376036599442251840867734718735843411327121991667512152051708177384302013606648010585952144009410820614305796133254755388540690693654593971112909588655623937086360810973960703462729823820076900870354138933696134739734987038660986979842760277768206182467581192127452456772316227268569545930701490835678880004980017615318536220359454970453616036858960622305935436384116276806333856974351621053464706623033513747777755385604855375896036207952381710474721184473279616507868061451645235764554230437219974825466156583740900612614866320933448381566152899323599204583211673450857593277160884478508443476002929508186152645544713475293864807038583904208313305006542730764483433278181566761707767579486876426010004551200630791085085409338264228807606344393513814600026966511611430642566502800273412867069407107267094088340362244735819806182136975401915547743936589347950332920161511867036808312934080115960110715833956445820022661363879446569438990705199485935225140199454103263903767240425733489798195901094570117152492937678542182922127252027586478652957822495688643769578558841511020242425236772802465407444784231844704371612567971767115990587702584334217575836590435849748148403777534101790380490514752435114129003284504149629743864924666396785838873829826839213522176384599515236140887507097788248650566644001487447460682171288892779004106000723237876486038281156730307843757873701969066515775007076513389049071277474677878375790029003530221905318122614402117736565961511172937707375556610049209847163718121518620787162931584435020975389777128291629021632382159982286002527096092476107564593007477801120053722549112161150947163194201577174619316763970111172089960194470425326479736293768598807067310251867627329867626821291008818089180487512368823511496972532781653365838983240172721177490751201165295514518607009901571638345696685847219095987347107234704934526094193259986588617122373266252020329753798047221003087695156567167678163189812183440398659210675433230918392502680701233059651116416632964967522484526632155196303474508947745347451078954228077434644379503798757119497839174171324933155028269183886290600398703153148632921372337199423548624699984967355780248363266255107958176590998053275613342718727472303775377096973852160864085193932906763469347329319125655125905870366093779385581275457824120660345596341375749417092770506313654215763599925799056819337782629344784378248600438292279700431435924253656170477866358762685809093258927030115499726390153152127530554191437503662435424118501560752333033242226845335994200585906547058783692453883816345922964227604373290498944975986218850715745844459581949510978734775971579514888859885157084506475735347424459245787305369047040817377513896467231307117331202945796241127408126764793675846835467847514678861603291905586258756810528866333863928655601818177384728980391924889274236364190498324017024666757294596368711134926988983583551851749906060600632762316101579846412607057676426647246255232782769604663417300137068083330659461208516941633450172534041250191751171950857010817656946195256383975869601498314801830416555752998068139375825203058640729507328326010158658465665588085291701850176983738497505418786685991210912194041965140360441522187515301601153443849386583976979504667780415289199342847251463857645857740866541875034622829172618814358608539367331280619944090312989833875570514505671014803404573028973228405613071830855804232682961382461492993692961529749495786904172193665538283907193576207035573502003025771503881823322467026954156274076595743271692552912657985893846016330549190513124288813691723738754501541259728099585520283694013128577716812250750065796041077007134681789060989206928606839722801274823922580878887886495320141366101314758026908114378841233316564766566572985981665685516135883574977872978416775093912623949036587787438427910916386161755803179428953212839518756431830809975582862138588457297359655682694610750446093429339662850474687566774468718427421553198037650708852973138657496501655579068388189093805438458135478095559915817574555470820143354073080649768506745543498437469647755784572030473066490270470365727032035786840396337282180880824701022121514217927351350995642870784709425852843329609978475826008880266619173205956213262569400473494767187654758178255573781984975666404039478930311592938015492952101537120969064002125104328331947921539316562438260123183041592776045603532482632870313010287986434681487794518672147154022398621808875488541558737865738957742132677587871840263044530561721780610525199627537514507543933955429130961955430057325243646889907875804373150544895665874046887223451775359203987509404845912288040214328340870508706170444388934849609761071509780105139191431473966120623119574720587050215169304783467321892097068576315532052833630825363152788009618015698728120580168395120044317712256648495934951350231414862183624375209001108510555023261517395573461154505064591440040860371585552418948874227696514412873291876219941143622002589938265540151021891974506783522243822897637542372251685981405036024869864234350943482082094417530411119273160659084649647475165144502183156735376293368760770684813606182639530088640442560621180263707834760438844738363420479989818679088074695032565138585667412956528933926948750117911751598850726044992361853503583518365713093983296478937836117229191654296150382875073352654430341470075372765641965204224168312788407532292285023421715216770446397953521923771706028349274714884229272230678439048284431606524152856118755507226440558028004722250253513577402570168341414777228644577760007398249144104356772422694878441516906005058133345365777326123875992142529767727433089135686480595485205148954435875925536356568295655801362658374605945299927373947453207973524691383506801973467082512497375250303066880103225377445421806253493416590874450364522320582799861252888194054793742983040548219897400316310679350018732171659947047339247567717221462420687797266587538891942622935080020533477459253041140941488144156401025815338812830071304861357439151949009285106697614920029509460748402444518499745343786801237807055564326735549882039386684006555352347047479773634533517165745120908808801315549660327625724712844444897903761896670020081926298569955681731019973204839401298735508817423692348449947673834661452452570322888943703539098024564419011344031543227426077374054901346938894274509667639917708459698329808593690918590795986090113380074069971416474775472314037436255880621228293011100257440555509481047410071653157624933865992186271851797237064883704774143834932118285459557073515674762674903319897252525115882181130839825783574617118531683679792030962018973270262232876208515781544847144084919817765882699790897132013743207727625232055714739825444506698603195126126297603304290164038851660239868737428755322022692430728853892630119827212352751572990414610035553930498746481846907251231805656277545836108309485598024521483556224683134098495746909289639660115209930941753349299399034572279111165629286180658466141017472725977096770884921004442853160833053939951834892049943523048882628830138161511019502941812826587516937290736788062253615541192824445718138204996994041021951259428934287547607153900330604850876680077799369823401421914312648823658993534918516041087631696585281429619309616136152443589100399510108504208472582122226611877559904144789117896230263197787224256779552311086302563550736521498443962704580408697428112777121673066450275727670316376523396890110446712388504481217727842650222643628770884436309730010623423111739976316360021036405524991103355320395800039817833158736663998367935882478175237557788090418061034687045832186589577652613545542386240395262294111247561127109730136917028058111466073632800356440129318840056196239570154553413920366097304647189626127354681241758489501235630227909377098725222515686975784434563635641948464000331954189886095794721206893227520199114875856958919615089475597378674612546558467350503285901261608587368511216890536023158012713059600970884769071411079639448519276283355757087833933920954462299291609933463053213509191012026254548723727653050253807845868474595314705559141579567175521384240374633209406956325194509695620366945513726631171948782236662907377090424615696824768428128900588026794523161349192535413660714246973245295798021686149282236146733894148089275412991863128903312864677249746533141609947161905018169631454351548606067439120331548306922031920461952178835268531041962520795229663240711888400212663885474098579852244020981851733422345929145969386166537008289909360054474885023210890372568167330057448046728179432002192540143157792288800415315216519960901466995277208479274672937638821952561854999046293379898727884436147526016690086388937394040376459307342301475589202128896574355729495891130929290585456535951433442498260219087308615030296693124433575008627286280656020245204996354509252839011980560411362752426971653680347561624497291635304548206983090029152778314986153118354890037147916524735485165035932491357891700398689033192010290951293360287145145442792944987954092898346062263518540665578172326029833397231865677460610416658503948919843094688879584653858798806324740636893024677806526896388287397019423089221885637988880884360705695518245118775382480019821497235505229775077733104753370389700639953424661378733117021280275237137432280460447519711399594006236208192412647149424755050023012419786432192773535748551421819117489257369626688054787181025819267893845430815645824188434147042062394608351084294522612584142061155331312742504415128810272709380415247628904039638757951079844337766385131668559591373484868127672926001168409653609959275903805916410104574261158813133355295417492692568503618439702027914290718759295776316334634238862560065583115571744319091431513027560174771007517080545074090884995447406415167537473677442661190978363584652369468403932940001659625150888573785332578724031753558025145481081763282894174061331025749687006539960528914763284631958316082813134024713740846573181990042631015966077614405671332694370352010891863430041753506448641998467203697554906737140162464195462498757403742222290161536984886364428735935867246591485605001275884826285903967686697258422275939835466755290920767214976477703593788885014691744734375502385069088738694342298931980114252012675108414451249752617035663975192051994372649720505018997995771917691711207352140146545459828260423112111944383019849398375625598042445351686794225986581253834485171523293702779821870472114425446919118801140123974058469026032073131849964924155737613986420157959379325002392553373369498728071305670165016141074206382504947300616731748081119155850320884784892055230965292721870393182060764063340691132509737131366354949771871483766857212808218095432289267777876186623613283501004300258270163118660650053701839873212248645304448040440580282342656096338651968358448023051561241401832839673441689293913834491746848781280090455292939104171885567101144756316050448757630886847074301231712782317507819189269630504111680966927684848639095796491100401469689363227795827115113354838956950225532884753559824637082794208473409628322268587090479124983754255316829169894479997237246443310069434066034304707766332714011140228835693020514005598528419472102912311828849916965100256978626885350216443017354876767377717268448149956959863609529124941640918847706172795317872527318022409078147314250551036903864098617110864859020843020707737139229981752342422080500664598662785278049820153012230459895789408771868362645809493488747332387066866526490133369630786748620558726627734403083829870201872378115428460350577091124902234931947460828816597485968883620005433249588851551984611126331682339747768419211810016640114700577097930731250147774384384305900258259403420277381121703709922084258611875168958904487340847046660876023415599219818304094301958766356016240183325707785864768670799145940123160479884428945492323471121720613673878458702571674709103642815189076874811594382214748200980836951923806496121067248422737916253987973714972660669587215901225373650838088568942793926979444905616527392037981763810203419136496222349344614658257472727575525935149071643129723226588227269788897335619764972036260319978929642225352602573179309164509503464610954238931558810112910518517231399594727806661054778803775890774295544617208211010768470010947920812986180897273423565958618524784835247982184622971370186406835868641760675525084217945742316699497267355242348713663693333819493321288048047134885904726959717207915493697796611272996046283679349082783197986857372242871631684555876557884954150735003982871309838131696041711592670962128408706319388823064328746292403618631910282862846847377676702411155520081584167175075341262237995906362748293721432431822491171228117443910221862030968158482568174974707215519409815487548484596676482113916513092962565393755586911651049877582206350768651817822687641172691940938844391902842106611081004999102260514106901077234782645879704488467532632096143109954070923856768642142512230348707020693934996581058014735559613784341452845565480952703158016253196618291540121583081321787631159014999851346806755270781661219502672883540750293168017700076121756484036278646051039022639315150500553536727242846164913597583976429239689417696964662195356099670044496632619183928409549905045294089845537917519565810820083136405096952872725199347337662037933359757626961299682603874930710804587105707615973790197259499220417088524979277228432638915819009051052196901486513058679386181558840259765469474382745830553686937355434895174774178255540399257286111303346182838436685261951886298172383827373943032397881246575911563592654237685134455293286945760399095643573373524889938213437216792470143912426028406504451578479875410070176912577511045770893235268173632566752875229115635743597672903186282093142044065927253518835374624043086489339296346515018540800018143130394619449558401570185561699845085391747899062776031476828800228404006430531465500759739956544122152976627048905196892868955943630773424196351039355386745282448753003859943981162100328938067925679585496575985041705900404951074136916743033056494179431337825067508054869470859311738805083384213074059203356878075785658071606187952666217488238422611200240645763445764250001882673326952511041641808280270771344448053793751989044204268821370373174028780551630304804778244155771842007707746800290960271330209216905903013008259216091886316028032309524755651952836480841573447656728610273530288972371943158004765467691673936955659667309422889354495550740279769972016498981394544748780941862517965299788662489934641167305886950125195148297550064348990079709098794946241388896281761566456804648574163385098104209792688146617654389351657723649353541902380793690421114605229798054204466084199460761164018265847307046962811346822109149285373642712924572532964443348717867115770891914055086667992533661711993589482772191579803451020338947388571526228854801615115517597735242969880442350078109083934156783106753857032482792865581298860818473303722854443321568892295990333331590062129189185718025646171752179012785415500355333956458532733807356575275099659322924249348881931238916349054444320785362649806901978865131139609380308473902631623318043638282877871560722436656466081720192786819717707991295452027163626028236199758250747282641373111070964893834109510010369145030131433363218058054795684636561226770784872788222264240975584669539303484414613267991460060958113957385198323325514219378622864741971031651192381997437800809849365959935516808184059765507807303779457259127340985900882384057303222505294652967981309264957066729966915032667559391204007807268710364772303484441242976494950896537184210289320798263429638177434831808307519486652019955788105953848159698939403164495385790875485418638154515348485750363694267776168463283599016490384141365695671434010534379165970313888722724887794856307355513729593600826478388739592833537722952723494198219612069645750846991776832401159489968172878007423042424652865817628815762374551689969303869635586188543667642173029641940525537684196544639139403677386039301152947489774724420643299493696012803613213545965022436407702669824487376080413847533520184255375888343877881171282191066553758359397623679825332079927281206658609202609340534109341496077818430076861021219664378124440489467544006667794202553261599928368200930495339836995711976301022409005666408464150210627469652193999849419521900221560582700208774966281318407838595170869270580578643007915614520548185822542902199315453258007685101076508257350501243747333289307751524209995632517998269140112664785854772394695448070224647651094427369753652744698974640414895615765575453977288281944125827682167718848644527950378327981736294818057860721695572354173722529400678628719804079745870533779216229410600253773094552135380528009869214220673989524058369543766284323764750134414640005819993259377623113489166418471154555559767924301260033056530158117801795220650723447549460711843027006707090923850714689004088854512386251971888712211070807844029193656258652150678249202646777600944608263299045001588268103223970445390274331505370941168897648586116642344663906334736304881851595461119419668920459642579372515609724275176192826622344275436049478719097239274637427143476110137046741639356505892858481812013015957571987612632351627178303497716918504675363902525052038785014689063324431494639511378866119883158240482196109736949617397723490642164983994746842276363519601808043587673507065034939568532020474498315245547156601317844997423232461097718457495119083447345848346826770862069820812877760405405192970229444447755558656046657068232325475126351328368340935884028820118784533100193271423484316964489885394721583244803888132268889391290489736550377380143079076830705239283060990108214962530234966942362309557673850668127583957285623644937275641623706977805476236687051261621667794204693117749893108000726063187361025803012660018314863942291371760210791877380163241399099730285884546539012651661193484198695393218272777043078774222488145947857610440732949139250597534220382840361110123625272757050580849308807368255775368685512156936201371959596406851348903214289779311057706363902689604088783874156062320308485271833189531589953012888567860556397437015075270878962804688056843290310317046647963715663885870633352581439864945686310580590797100966503583433672765981492909128528175536605510459855470176004868365002343902543202874761581483026821584886038479053697251944411614762115773094600055897290758249601692515236481346692570760080982617084522670833227618621365702405778986382716699067463617838010738658375670663934488036367286417664029298378257710611598003789344104224289854723311974962539946701643384082076850853674572363820716908937894463332864110539328858709399874499061761366872543946768807188584336907425555918348543651148755707688321374953559556320015344351964777415559675796261909162687828561428555052479385705835037090020452787693092230072768863788109776888206777248576504706539716643467036367275298169535450041121873506661426080411835129418304871722924976625834050365207381882439242510457416796627207123850198434203451702215935171128417288457668430212368359517322064073107829749875843480555756023594310162093852051187968838987323738620695224138822585388877363189180253570725370698201403001661916906104040188344014769970425485891023838162192671987697630827050132169476406301679080654408970947427715565945424070398839718236645194546208682592120118160223309389768087271540017189752615453242170881802164487955856805404126246489121960590480849218175655691409772930974753758104578259295893521789337741044344392081367210169452977869515295025628127458362039822952747290697234715913652071313097177780569005936380978765461723838215891177214500840048866148187041151718565628340790821659149334310660878233065300443292401388432969811464854760529633800289525642734587660943301843868292564848047254002781603290419394700221091358836829110125035051531639885692824014121850042705467513627301223833561088814442260447772867369588412781406869513589621880307484823515904990275793477671549739416986516234137491968059929749889389507860865320760936940634666286262266155120100671156827306770315075671502322117495552732172243807745432256805115197219357684147098125573590910325521396192732874160858249641826199921476066469755039810466094693982427453406641408797249309175306946719253018426278187407593015449747287760138779850116743742074264601772528060321482972568020552380746929452144890404448247584054111782991572045016362046347363577366113004255522591709719660786736452344433822536207054841556616673880145952578226061364307667403398759677154504731269164138438519219078276795312122252247833343974287885067208555409415190163169186912480310600236413737453122862785480801773249259571102052954636401177220188310433439576459112684639195949007257149997856933508536710972871340870808195526101431008624861436044955662092962822892448778144503096720736449650659091240003900527503734038638654727448320413830848127285837084164778833874577975113524716674519137265212402296562159322640669747437111227743678881006276770332052460299782118108868383794961654492795116119422423553341157615000899159457642963983222245775358083047177301567741147889177010995327270425063197853622808796036265172444108657541302454493301871406345319147519562937856604111140645051312038656977841027473091328255080392289379666967263281443091153987874337129847020451834991926579722073003792751979806976118610934888582619957044128350023481519399653861106885164564746928657092589102317101892762391374476792540286525440615209005597943656699721945248773381407575819280881929190008794875780851398126119867994681293576026006748371306066277121065638790910819168271519090692563978211629986017631971310476733969251967007658983949961880348463157800494325164048507994395920005998519066594393014843558704478775421578094985875284467935454285560228115921410517434683425629179694693008414791293217680184395733116047549886238919912295771333394229352057462081177673194239183489347732658885492270888084711411687213359571161076294112329493311012120441700099276511529784976992444722847282268560198715548225366307448751339174745773086148479423933540583562661308138068240696724555419412351275363058279661192868107272370092570556199527936183610024675597559253130925411601831688782537637632796439498398323571947700487182907450874096829359751590795669585247944450360181474961620211003028999935016462137248823187822751610746899510846968380994814604106429531331852659518164371834474591486341499619035433121225631261960229575340841036361332253753635117905529606740765701975090590585357308272149392412566543986962775573493563763091352069048639616548337963453256764016349829103035939409021280544887720820520682316572082691901191584123863622857155373904454039271280604329012383207914237441103938491846915185669731922614691352611761181975820230518670333713443257230991052387014642410831269617180424190208649425076492734707385611152638278433756649716783102058774806473554929033530053783762530821944399505693926773043793812190459010873037625142958854040859251749105701409040378506481047481032607121884562659340824267089244734482351187922420334260600934988111374967598270568604498594389994653005033329748311027626675241926723576954414947682068677572609166916942014610052888743695185947940931785664677485564387952245060581487671048309320806467971509367854464578819204811869208602415325494784843384341218927124690522540074589517150384493784000093426662778026237769325317802086682967015677384093865540728474400227095521675688794901977511637059962164102592446463928100553341654593276357055802527057946271029643839883103414296929394192470773845906252615291584815703043766477654892617714026685542784038611982797147828916273828945784841816115266968990726463441611083035064508155771804083446032791673230601687427646478890423208525284289662301075881589526911691484012389562438057443085627245479825122771588483204376066495534656826675369029526456497876099737087256365001819935805150985892017157209615863666766702909979371596034071362856191249577284108599104289737019393352564119453814777310862781831395701070055864074422811055605999615214915097421020403506706435754780197144038799123291753783009091663877787473939750162987680572610461507292944231560786674225100510363473044436098356640281393509387538178758464139897786836172629684388666564632858801288377431251005957877867353165101311383213467684889574388847528293609037217276223626949869425384273048803225025459274053760777785665625528825480318976917153582888962938406148447309517671496858252960154433585800640200144652866513265650100413876479773553887689794399589371999156742997998212892262207597361106941555805316250707671338978645290948740788426755279944240952629689389559045226144836577193643122407483871265466836370814892195333224183080113335877902704079719705167099592282793042134682257141584101138163318924993154253249137453818563038853922712884964312212243197297238257301604617465324825048512472976508890755841231158482340015111212927249955927975347662696790394694047982462918420821375893275590530820441338987040181328445720456766130674991494837348316056203461312609086758052356412355355259607802166247735148521847494960229120719682316637440569009206175220020071581001086421115096041289809409370075342002428299757299849978455345732051316039310704814264732172778969649046968059944103438904997164939074334563111133882449256271221557222736791711924839575902458413085086951685349835710407224779711485356353528765562272824592381377384808464075334664934511504451212052497766257484073254509161923247020655983910294467517750725227434138701577280828447440756395642112834615911217413317326800679592117464383905497266939732648179211255049783925529316601594880010468551617321477022158244144807737041157634609616257367273904288268878335912666467875567110418925693110804813124042298505728018116673556427002292158226505262357058413970365720123116217574391248262988769362141253983360335015653106791286550404289115649357454698716362987356326716813189201272052748025691740491482249689891673175228150252239872542678322986282900537384788605175321568406391777660772695011794329874110983469225268053911932720272715097111154587588709714200689988045546407485277078710053695405272797333244706106547216047115604195716677281217586610019756041943449318245337980718678789520953595753585556716378088970737523840737502304133157016849959142971178608882326244462404343341994536071810500495286689555637822682059904842257285214634382140476419539945616307669852201157644270271262796778592472288097314909628850975485480086299369235589100109345095284775340810160927116046138195302599361942978082073795620013398773752014284869051757091309813808650855716407209634641956332043957657933671750995296231215548613829500193993383348013321658435894031662577223524751683736419697340174091790705062770094894552198876407647783166681854671361200466324151962567926888775485981092507081431667002346541241040079177441875385674511752638914102236840302448319601518856125132780267805578851650087013093068663924869296244881627002374852114231481326611713026095531478393858282470275003661601409772027597215455652799876936459133015721072648392790351435354189257451982608637353160233732859161511621079686183520175903561706471165504274328773103067541301399816194715129135516643286445622672505140439964862822601063324777226183479755570755685773099637594436302932112729418949390830698891345896732804090179233012453992068477201205367882358473047763762534706982862147570156982037906815683276285662144020370574312960154643800747473251415214265814196139532882857216316193346503905735396458563104903464153296837490378299789508044855984564925461351615652583607326788883437222294709162969949592895742726652505450819949956042320815862995113498843529498132670795582786584142470161117727713274723605824415279196792813405991148262393691911828134147755217340140609289286810552668966143843667114160055351879157060362899932513810646169746888250930911316662719077181541580085630079955324959758811890840078947091974840636927581217997292823295723011292034903358094877254259215504839282364738997005583941610493170256459122081407327111410217889126058226648558705766903231490810245327311621435898596238447521471843037957431254069603604288626673721239232417501225476982739565953085782700882220072456460512958117446130360321529997418763242180176986653477040864114149107229676246859826058985867559298384919601983012514720752967815880235097768487141038723867875780416841230185377109096724869202891344895942072906929439104910821694872878804448766529054689491295904359339407719821988278580715734408352997982872230429989648252365876108840184388838843858153638640666866880762312260377403609227691375944314760298095192445719416013146786239405171499117996920110778826349160059167382527592242963491525426949503524552710339553208323010436680103886981879967416294295310209746318307861806271942870439636687798672007844369877508946473139909850445520129202758276825600877589083205958878132535928030231505068224370914118479487072559401971781449604800010692420202364386918211512352943605247070235404391551203022002128076116246737658078428020671936451161876843641012579836635553083832792566706051888764762488035156139803938264760168759201634242998035684786829209795723488260175620159782832554469536534591488304237125615645016505596119240146298846820422277967986510206324575482464715203939195682854723019376143318793365395874953510990402656719347970868015001176904318466001365630078764146443579587496182182534400669826284794967404167905146602112306447436214343492114510275021156159266357420877225167016232530688814610579146655802848048720600738925721950329894503998594324015766198460165674912945163438024244322663775550439655651245705549652885993755225434403620696433987030436262864151630855701283799436653405038711245309189382614717465239981129461568335522137084252551545648798980023418320644634158197053125073676707942767683926626048527857936635876287003800397391144476164033067241299623108695609082941479891967466037196278808007215900591923113371576327893213814767213673583056569098734106305800857693053641628741107747217258908441274211392225903177783657659715011968535839875797718755157117890091534716859705812425893888524341572401825150947749744405678861448896747018387720654891498265108364852416113683389243909619841832802712640662534049943276112351320922188531769677377068240052211393065183996947784467982257351764955607650188435909847320138099736659336841038804781317456002639803109470351224909309919003557526373767613877452148296444112966542057470499987093570016164500923846205460238912554190663078526463295458828882040566428982992751579989106273288744892707729443478811630590845055832990248944893392876906720858074370247499594431773052477908461087390734659416403162116331754533744934421788351735393227463056393902888704068521884378658437505256818997420248525972156592967521751897537044661967548237063586207698954001031791863608226834243597543240673180232731935695085965893449785534432044690562923048649503952328723280859308503377331394399230413688224687343189286512911857851788926122756806562906977532194005023393850509312664595168028524718453315594880665730483778444935549121378837312381217765881749229073461582990146785653515649712151932894669706027183408056432199270282782587431307371118553288782912648139277817799023090148176715432527687745250320738196116178548133056704868087452141522616878839562668300437334599243462272676218557157494152544171732696192384950061410945577258987869450830147230771738913137353893154123891429090369341884920329797692319013435419219889533886774563779545809625056754560761328504740582979449195219250051704362960397588010904162433655865335747801857456817779265618471402887906444818707429879791803074632382730456064952922287531563714129451053642368081654300922800565946381766590490600634236326285781675292014661579979226974287261065406027761144255851638548400472151793643567050937267466827899951855016525156442196595965927846575904209924886068287910458071047410907427561641063637767562609496327392444531238824313237092178182750025127667808995235599422004159303158843650869748583164734585705898577463172384996468857842885267121514564759384257675074170253877481933762220932205328155475852391988469868805598083639549067660575045338154999364435008776001424190556644012189461744093027893090293865022401598283436047491648982081511789764710250888224712022070169165476928407005991386413483870293654807379770866164873085591023163650836974575222331896687648067020265996735253901368386948070399094161808872692184072179383427457146815614813046638400929210479905584053258081950276312241437417384048502219386131040992471541935622746609113749291769043640390772746647527749158507154847454974942873214817765358134318163575773350983727149831156273349713609961868068860992292053980966594163456591126803061006107982199754154388470518346685732599054150266162648378693219976216607468840449887167349653818515218045869953384174338706458213638810850045619502733921154497783731072372018914754489539182240858924590001731922024705573639453152102057227279365237637843555915115892349607340994557707904716163442972885720234762868501469734823064764763434805467372613813239953474866765719432711388072378934797832556818764781337020461256643194826640898667005621062256189716670041395652708897622797032500735530007862802249516376654587348181828063779078255380795647192312309036147658222428699940088553579173161362174677298243281239185945626164327689548938899360027435987386881560943602906541013216498269859380023554801236139076890268624574494268730020293350280846259000509344721207228432105373338660902071945678025796662591006018890038759676502954771104245401924696625566096150158520392360943268813866059370748883487939709084254919993188579974376896319114176264561015687695233868327057465508838398601345858105868676181702263069816361195599757267627104321500672537325473795532298341432141452922029570554717870332419569399734233332763548472281312603473247360834886128993871534578178541693694020255180852450283652311544506794667985127336946263477336036851508084301744570751246144448127485345712906030592183046475180457513980117575038675275671736293349096773027707813005330114747510175637890551351658692422660194445511735954314701239269587555230191658954820449941746648307957209317587787177559848560375420884998022785137302463966719362475919405181364243740698833140486511871184998214121149883865531265363350507353320936440809012842212028549395124204906664295375398749541220205106250150849543708963305956321257107645159103814508450916292519977550304810015418980613561858636775042558716709789288089544841010689428272915184445719037299775645987515924731403021301244266308601757656178296396451939106882020246624144425187092954734469402275458776904365903469930659904294532218772058041622256434425392409056590784588710832947942985544392545337376121006995020675681575106172922190474303224703383421937053340415197082990276690669765951655027609564635909768343736137902936690770407420274137048161833183677126721199788935812280506905004118219188937007427926531238561185806372337536997117091275158121605830162153911526793447809315722325083814660269318027071714360773891408493519592316439596764106174543770084314036688697732506164215642848976350925137896018323787864639277832963672521631265704192188997722244462807994466366342943407491631569012359264299113856655435402466796252929381848943943610373761552649880677915723345482953918923501257718173075898851636284337147428714452504461205716377152960018081128399153340869414818582015568365991998748199877313344359262450573610198676627962810731242812505218086654842416207398634949149291499534758235810761505500852507523200388664696974218922732623759360225319068640425670229050775905632027313211507409849898327625423348056692480916204272306644656369447698369559491832645290826910825660212432995372349653685095798135982779772469588765263503731672943600359433892321287090221054904951125109776554993150153276967911462833080613351891890338339213984768468107944446949394484826767303987544864417584986623218148971472841761018283731862922450158851687125617214194102439824143307319057275553905501327376910956227135634308425548133165339096328327777487996617441636334575003472636070572929799494610481396583079637014938401771756111926278172963389340116832071525829267564974327439483071253126028295632182445772779100097537935064282178093888583977879289858093534103753508549683119868874921143274406586377512388618894729125895791554882233460696416148000379500735927990417703183898660230374526643253574226855169363418062517579004992959788423039802464489008109893109841542435255529038324573550532085836004453407461661283482820487174775281702470804111816967487272276926785904883104731225740038125233665595604879007702776923460030114498523580038219178560085511505744063036441542673446898434202419617459670894219459335424438796617224300629578989516237792358295967290588297893327444638564924463886806298543971998007943935258680047477723543547199289285053812503276629458253895867138645708797125375211126255842476911682116150658812799806852212415125386644688812398648721648396191149189469107455254266214952645201712436653732795121739540023538079054779568415417196745326817421288004864058333972551736199617516743402850009037778289046766028598545671183556949153741789112062197061797575000922014810297463848951273549233514808629451859159855029197037720453567977024892875220407937666185649776948186577474587407678886989644296869617172057327096409809638019775398631006136676685640660961392847691205601492121819295827115414696681604596972623489732064218008934573594987963106548037390395202871697625930409264128061340103328517325911839138539494211440442992104497530820427848163584682196890419154602594810689345525144578104007860868916820384384946118239188249753120566038413017066752182402212346258676959528956410773862158736217304317755633989769665609321988527818726451917982811909891927532913240562560634006467696270620288285413708759823259048494996169453321595642040241854476532240769169896934168498705770148081360492871565968155984715034717753534635352699148263414554099625612496183000308463939316549537930898612625039400830683849158513945142197335874900105281919178310024443145180531642489496129731222902893240554459369685807341996448588803818762474504364178104834064137727675779202188804971914435293698790092071924647385277778435084607849373661425811244877430480052162521598254791122400140320096894229533340611518428908058323203964891144264523532930750910228490993787374475912927859816486296418609586130771746180673523038644820086521733892857483522160492424689581690177853203043746108307904198825779866661691550749736008280423480280708619453431087924656270890513190371519910773992996070186242646733865909993174274623272564454975975851660793160463091004387514248342777897501897812968347340338714172587691387002730685433165827082742814211189930920428856980530397589051542633995259228760749883596434945322882215110537849684888797701472787353832043577902798142262695152524899578101611407451838723144077440590818479428504094160077241112266120890658757917651434137221051416518455692564558427721058588407504261070223252439762901288797134977912208565096444866960145959170325929267723529303660409000278990244571628386311365345088748852812675055690427936154585833111011889801944012713117701341321099592681096814695869295363067445793387006371339690550703166117867727290502203211743046284245468486622508231249931032787883339236171052441109280361329441891701454809201530665234607169795021184446406979709043675124175841990787576173077023362327133450136665460683683740512796696771368151113582804703821622053782283257144131393500052444100340186650749665850470259886930195541100221410537367746082881749426533102899333770924002718787705984607691835446518374440011923945986768096583733543296996399004680628895026047820189745110884711071921464933376421662790777084256178672372042537890344285885857205956914989315481560567581244450329833558758913096931249113438141265733356764646270037815253896015765431539225385290132440763160468519679635531740072786379230596113163265298369431689469004779162130238332325035864541444080659098991421598644949724266784809966013990994354855505564436128709433977709604937646982860714970390972203369787629224473290813971591748367325688689457541354235361098797640700523416608213037351809484135411408712368312873972685202643951084313264705031949016758013189342845161795101215361045894414400540071759484895001066601240417211199457405165536934870882468852188848977677586939618209320222466513767538304507977699522953357420648992904405971769239766573872643167490021811702360286083337299710020354506668405509219773762423682280807296018943073259593616369124184382328683400555398600895440448821706205121280267253733080065299756784385886428234540340409697656085285674211769532251195079553219587036080468061359198526518359613691322177637702243256834712908610034392909449318139790785384139060949190015735812777918068236872636186491444483332390007006558596787244670651227361821356488873073352804479522128910151472410349242301061063035267198906084905388373135037762379178027227882886932785773217839168463508687472949182587954910556439736868655240795168157728606442239605034226137259370899299611580149505693480343501536961649957620853555226013486919688190633803301783805220428933708786642474195148638194528020825133529760872629509007807900286330165796481931989453852812263439557004255931853898007490067255443816081716156071642361887096982991104794587796569073561778331827979148504867692665920061661237146842346813707151379638939351280204034349408461137142677858384760746262555933504848111816339501491595788209113581193198110717519033121637766682809840469792508656562051530190788192370951028968035565038956236586227674329384213331138615302629385116258795725178272210243136796385727833700003742954550400714573158110527610891074458919770331853168788490855239194975361222591144229790791965373266646014052879425038405049287853358110674803601756253360643754091717651249475396656029561134727749084705991805042598029285088245481752996161803776456600524872606886054847899693103882676041088442958894836002460846611411655128837035653341106166241118493185913133605997053732515086108148537809388904525299441749541494762618201672569569150009507724387888147834921523986639015832624558471932240985859779493289131765629669422189378103297239731537318198982013426036059269787609906248629494283646093275108230158557784080262348075542654957768101568475445521951697370820377217236869954014059177895192143883412020061573211340765731852862375338383854794445493074103804854789522646604692988264471523550876956479851907629506724665448191298875231269278739925333763654000171530609969004328199583345487806472500799984779177047757974122136816106824038409740470323526630899400850747080326749450828776192453664321059531551409832097833156775929163055068374656801882454301360664242861659661448971833040133777578338659999934548321327048555042464778024752554500749514258869651502326806189555575493162096405432526327716886500383015916169654942804455089397301935992421571642794455093572007357247432027548528338582355914618333605880574975236271247140198246502673364732669178372965434856818869059662393967516720572239807725249099727045592355991046780427021417211145478082821577710240803183252405316636397120732771109618797629666538768589139582715984587928227106026407809662616891646283069809646476463626382536243966266333100380241021604283394097764345345180690782545359240127234737112646972050906562393032639620134560741145168542168341077232759105351341453787872152784222344705604527661639200771426476231322691964395250105487167698512041912782393043760227016277683903577291155506434010235630578360564182420018487675577416357193262114140369528634366913849878873416592210891342030400144124647619585720614052771762826791612546577064985807222368224291677595030751346743950442290792175648432161632977227890431841777877310781507251596844479511932391425576793443801335858136414302115270982043352966733550043332551081308105271807996414785867098829910988415889696828964941867843351701643513034879089432260276345652253857111023239224516602064844933078650659794452095533303583587013437548117653824743197887807366663325269223108665854282505018084678714919978051664482343350259683050785899581492244891858496122038063853430641985301058313690437278566029527281642290248721207261598130856104353373479118351680314181134548803256371022579228800536768563760156579006953661233225295228206827609464209397183728151706754361802285231498457962556808705744507551874655438864816522735289661395686380232500949377943443523145432321047816973648653179775392373310159368493898790511874923756800569477634335249520491704071090068397810148360098973435205688019668975126046498695090111773922935209657015968328157537986787874775519415022542048725189104764685443904118779967047098489111910723069553434158587622532044658575326628273106873826554982388008687688559375390881789443084670774457546747453343384348218820951615992975612158996920099912274894870399897173679618777429871103916646710220046049953954577247443380066718247507654311619323733865790555885988464982508560787675682818979937529458124507317314052301826328126512195509074386662643748789716977531942137849205942392114158758170099751594830286684849967343171866129270451070008850044748791963271875996999225428606349484362226821749223233172035089234246328221520616998960951029903455680556617623505907502935981592558384982131001027243531658722596473224894742607469407262616034129762660516772952747501633517353305457060983179217137534727418217746056306346763678761924263877853345815407870891834284605153606192856069986278549436571341493965192755592993256493966742502820476857029206654816595194676727088790760254493604750776087901793292886893277588487738148269675603059807155569286283362234119235374612138150846124831065431789792274390155320356998955579726667414882209112349208697285214100116267847726850064374268835545344588170801066647087884957199881601742472877391057881565852463658304783868917235012340680231432437641750649447677277190245400165687503311920428357453146318892507587803006040176956680866362331516047616521163316141501629050014976476435171373260585986319472438076900431480615671446899992238375831049720395230287117954894436063907823681610704788212380568044545817120036775440252330067022348052664562216763104060700369674821063299925286433846919196449945622598497549561164355018956746771942070500781575784975023905850526692919341767935305421253315433961408870222247019348355842621723702398908746640968331096728715713298351665232661301446869590121392471659593805392074923312910314555977962267636131136800929147070405228150659214323803462165966785386431695937570204879412685471785701802223683506871671578596947088977070310108635323355644116194677159467293456776019068495061548591288869739844733367791864759240311944409415878418458894425237126030221492539739062210912943291386948694762323986143244307877482416600998088770551013715637201613675424618930072060883411834458128115703188267064283041807698962382965524233191509415979694614236092743885488346190366993124998543749944934431365888332279553578718841247781798724898272748182038490496371139408775257628202141159288380154280411588379834603344494067322545139562408576158216520660020023401134760533406123576382920478803424966120825504610500310148433938879310076208195812973055941721136452375298889406362426442275745917514345079179879369942964144496855101169599766253956624090724965298750284246513498375466599123638804058399332517035829792208793386158942433210691030548096839014894182142758219072192625663673529347567787508466966792264195175632377245382176613165843706255486424135498191915937280517734885989705743784621235068541615822362720165342385777870835756967452970792250346558991726340543172450447315519029057544520279417938233144604604536501227422993971317602984487948713484844369887993251217823660983451063458403658121981147093968977144629735396330773425968940921631456447330335358052241572889288957887917495178100910492025531407501924469932168619972549674249291306146251647973382141407622375912996291973872862184250408058863257089487858755940704293858710950758048523598291170852703110303636149264635089521885867133622859447344981398299616542074810868455108815073455929852937058500310274173839183982081968697716840304028843026303007153960079331498478943691045331093200897480311842942361250119782740447859391701979856969474076127506169781423898888820563724206915914753615890898716141471066559460930681820393525957954752533853230843645817570658388488974558095609675695346575305405749441302033273024992088995955862469832654556975204752350180170444306511995053348277450363141559272417875174462543413568917522789643273261443797718821236744638919713595157241052224800195374081491998558282132653573433015857307765147051732428861857204719658742824713830206659353897021406867271737170515012514060044700389947538344770692359476294893326233927346679065230340792417593281574262575600965988478739418423119762620201965416509273547660491802642716471399227844230799685687447226650422253034289905141995148665639728145047692244745624983583398083968260061113401837002976758350035323563795641082144292189930597808451225364425796779234925433550199337620940840204767124182004535634119316928791883307389344365037132281727718603437028278804831059297280620625289092267637591808740279595030954993551171740757845780204850790559969909345693369499722659856510777209296534438065834957240145401740968465214837742676126696155360372868103196599054028827667741526775970035864841825891109075651500093618693194622278974795660533085480379096804832524832339865352344271268121996441556216597382618216778411649325452879113006619674966375957339060914125737854582460280747385908483215351630619051218644994690890086602018969019998881036792904202612467481652102369202799824025246117460575138876548424043377092051162335103357520454236325813708427286910964491318293817372365266957672901739742702987869181732139143808556537907462012985187950780137529244343990472506980858189668798258315224910902128591302457755277369247440367539216516653110316780559631550004190153988189855073403658194557140140078489701247716062002149078878346791683819036894880328438237522507218665647214521712301350325563588656807660628963825643538571877114660740375232757615738262609528724763151123848776550412030889844986034130968759782362123228503115598420069194719550357353718232395714668216345981767143855341308882728477326619114837652840453328102360843188066983488483693620140381245214024497696138955929756107646309703946906192906568243067837678389558541443820548811529521341193893215693389576845280381009199463181686184326926049408481100536679830507660478728556562906212835685807790839576119546622796769148573538811769215947367491139345584540484750736894066113100792244089512991476427156212053428851758213763652911862095368815961153157642435492795139812127972886025302854183059556612314338985127875975375434108670237039418582893019404050958489284315314665264294336554326386083089133339162392341772200927479366256577273477856559265062316889055740169207463202448886947797372879906619534251288377422669341684569286987741111343312138258032410706088438699876024765476142004152981334692132031698283014883453336418440260656760709862751721068280135799609618735760004067423511888133171092884524836371472435252702688023349465296585736179834192617683047910534241383158031822225643869929362468773088726554801774530121848801530142481211445942634489549410143058578946796112179937991746356056620091125276863512853250341333808454715185493697621435249838021290546236016776438512230451344659697986709385615435476062754172919645229236040878716868687261831325762177401929627946827183563705059145460181284673516514931675716273084016730430819570864287901914849285650892987752274853956177417707385652782246491643856942702280087905797208841416159348533510967818565156215072629859855084500343150153164861936360405889641269881043834424047496373581622160430527744304269004907863230666225831716408135494070929261537853772997102032421233235141441241153596269479827332808888305366135082864566139142665171245741555626746996892699097920439233081211661841013476096225760263668897645025587956300363661582876083830442192548331365530764005078680638655527901906259399574796392415197942364815114986406707839626290037288420083813942455341996019003897716042848360707479022978406939024708941151036807001737652861452696216166757907367911758380757299891837121167706276600458817341890200902166481543824278145509748977697148192788272890473013017796298325933904322985044570462100447447602869491914538361864399490102388767560902451941678247097212319325236361578848878402385810208459620460406811045455588558801129630113046089121637609015472721542853651263028538980606332757747622012072959324621816827629970105904526297328457089032945548452942055807141775226272595434168723960289648928730019552901746671748502158639460259546381078227147317933781141653136982865660956837198117673541800219447018607988335680169011781441536798760411376543001897597147630955559177465671995074064216384150190547920568672569212941581728696867989584390846928207030797531572720949449375285582090443052895538527877892145140424753941229027031487652443679508502490936139450364949502346524377799621626030823575618790129958143992753379639089626295281686633308275798795313894391030102983351774934895003678656411627702550834705461177994415963147982266107471521621060094181468273476059828221162272145256906173527851440928857372153541230709634932858125875789528267984641490785665688327285116915992922779158065660637290803487244716633202168501749055126705828767853492995446732219311660511324535906942992318711850926790625567053342856212914403763604750074614449633816488793960959514585810893975552057290473816627078988143971701651436653083771482906961018721996720856827024392068911288080326237421355783797663093863555321567588909018309555994947639697639452215443907765837432606961880933148682786539732115165629077983966446080406395769894486460088208492811291786336260842824111791143117836980712043958104252697983874478231501242027316126410285493044667701578347261103167471219120118997310818463143253806002892256217912392463027820056458358424234343494891884507248130300446139548802078016105389182598737536808811779856890457836567340784317484241190421995323114101592670580600210989890217536108092948425953389884834984411644095934708548879785212952249202680957894049126578318829680543541159523605133881324465389045908026350615421895368963545665403524429764248803790775104025694775785674981864644304904232581455341445980549061657189849751774479624267522766750766955131557658456640938759025534725054250874615952542236880129805820668393645396708328547970160167221984772084915598075740564464999129406387471129475221514218642982704827051920180960563587507633271101648439784819734110631818331907139456059226901754469447404604784197824929996243270955218580230612137057155265547723564665813194548444584394887910062967664702789574391604804130915117975110018516407649095181937708973302385164447042452017617031512336668629849418594894865060624547058596298953691628408443561651649305206950905858774815046167155699036019743996640576618608211651778063201359652386812727307397147183787857649377819762581188921492593658879736251199240415315048381512857927821207916346187761555024374125494927957919815580876852141286856259563518919238375793199803793600032164575012572454577774144650226564773733478450678841479498640687860965419570912991902532716380480930217906399707527922453526330297854146083525777234702627456962716723740665896312186246419231493699934401893655673977280306164339711695893573850564446346641933102170602631951176340622867267193519703760090477127734894312108456650626105177788241295849266163718466255003787950362998805941586545909385454194357749210376691649796130358826065819657430621470291172829168878906871772876954758338225411489745848683143877746876118096043180736366285515174233685084675088469154764017336334280984186836133887049406824062680442430185653616478796578206829851360337252335295764793543109311915962493672615763314666526165041882701698943358360728017938479191488289914849410444198230658682998127128476015386070992966553534960746713242031172333518093471755228402843146867704744705604646467754920495448430812628662726833308734231749369934139783929149867819739077361103132757729923180844553164079917779291445351689569966603335643058773936509696724688696289149463438519733576986961383881834039827461286085538556596845136683803342803529782022673113509009741967762191627800305608402463531800898614415381773984069559997135449027979282958883457304985280753545229757022335838612030708972351736372222845460037681580806395711193274122941529668271413560301291192248017645307450322216757925028403293911864518363192281031206612642815868526268158285921765133450649143180995904553611596202514075343773410014929196965410527624443246532855255143984251175026209530646725094378958905534059620726298864995860308020856526455961099144065743903425335097461973029100580908897987344118033050185930552935761612155714555078870414705827908504890297568309798696135527119028810206525968639115446333898473910726396589537140199009944994429574162885901256538104655506046253469347710779494287322855885020658673174499176900397187186307792348764127517644936454807890417077043859676211114499571627052101764517901509323679962818452548509247880654638318492212376018739143974510209903340799772739828710180600204073279629678645612950733387413755804801284886637999666232796897374619763045871187193778369668849935724591653796701003926573963960353347762509928607204569527869029637638553769970823337892545485637074874426509438807453340795238167686743176084099324198164097315325375645249181572864541655737639787715840205812564086689985361397797054459668076158021180805557727854287616752949012515231708905201359686279576413112687931718841678675761123001826068944214355148392261368497041050732050658746375417348516014414679498696174952451384766050114081849317722990168696839162347392137726438023028047831326493734551998620375719927690878475115445117553273286089772046471419895097846460259078730350863103144545556822742246006785260592027949373113492567900246426904207370983905184473903420344590226066588236076128332652044648477855434675342308308565727621520605052378169435499416369478477236864074814316858719622092164297436923137754925107384285632399559835286123656583199833367756270970051093745888818141962356654914738917250532458047389829334729046948422583433806683176730068309054517942809528412803375370449762990766325631024822208844219793298943341172848134504457146526898799717848135170372611750181902770288494031695787947327942220514417166103985505126314685439062638278403341072474606278587835939820655812981991993546864483133748959226308186087888896422461389318788076689514507957555098147803918835095419886999007649162174237395592658256741927374759620976148790450359083491886087742608316090329287589021334617853667928862289360790964990343947183745331102130420875644590496507211694343976879489853953502432093066879296381281990031332343218784244734514537148120109389565981054732225774905162402370953357929231649113469884442035952686133849107909519169373305284129979861303827695547263629104487855377366396465611312120272229617006029489603527873256248027615666658814524644656983201230345905409002769720097370147387432207875791730818698135568985539012966190447384124168791499238640738613732967286275034203613176801660423653496577545879748588220811405357702048865685043201337206818190805500774794330067858387283609030171725657116978836842537998041316105164865461978502312205770148233661743114457674533709015937847161407764113049837599512825863734208711667796920228923346840825847126952221456794523807894630947588568829912893319178309137875277732261244443604238776212091595057987632655946827352861442599413389297216233388221433651369839794886612220552492681224713039262113117001764704851245270610858999343226511389092582938489034568569694278193613552503451363052883722195121364444726559978109423740633061987108789403698406836197751453585685000957541556341674582489034584522413883054576338588370580017436893576533800724496688869198002841011006559509206636304191201578408090608686297087167907750632939547657821202376187604901996253454318938077680310906166723914957569236938522080772758192984349650772063727547529317228760292329411287698361326036996652835875602519186602772413783012519041240037397993616059217235067525774219176563171781297273418537154780512340070101108647555368155806132642618764154956719555786433433051588044296692900979593830268801284026182010589338460785875418122350315633802394884164243757231782002721376627481376119281505849157748282784942871743316477243638064819342612204702680821393201375796372155165927463810772663571858043964524429717493627012639384750746445440847735718238793640158893761445279890266893006306761408371648459161205882634187828043605340475242169105459341134692037766750155759513124771077539187464367179446510241746216119860135514456745565039055084154810832619356882239998082941644458376410116863522193929118742662244986085518593292231249247167235807057649086087752037346945714778113586651901104698756681082531426364132511529204202850554536850875166914554514151578289691940128505413735012839295092967406577854017783516079625427565949515357781132723536612927375578392366620938771581180374909798612045132224987099461820624329303749239727517016502758064819125017059469091416804041026035958077274159152478073806986036584701235465698748503172774454090743427266769792476238276635907964172979564618895039429815032224545560306075491038506967722911164937508861295034778210290640807247218437007983578322094945478502808489995018465569353918381811664709946343454975061856094487179028721584629711502195190260312833266997819577950153823158236021744155785684002735960876812388519011359320596420112366145954463763323226956491808555802668453408046707356457948880168314259920201349224497270386304723563757009402851833144492782277540189559516237746411729648903626594084151942612795233714353220558582149722397310117801339515526492169318719115155908231680849456492134424850743943771472420281328139143893160064316965396801556735816403404398806934020960511426920450067261196158760319333955490240699892687633497965347177425649232842193101614416536782092777453853855571133497137527933449881356455697540789071294098046781460793302334782662967047789346381280426110433319933040785014425439379505364821080933557419698703115657902916534161200174403492749125880438377339782404158472493195893487338542115113239004334059181265258629480885554882350114984618270506124871632772138182567193728878479290724738244042271662138740531187703867246564232122018989520435342186038726675527387953600262768155136934814919134293832336943829588667693837050240259733669131617111537155014306855184110601074921893793784145341905540099611149688454479930546094527030623481976266469551310855809801906092549223990295350096039040764415933074543407773557111257408051974677788560578160180693622255640337889380156881127597556157626507331888574716870534741885284313049208115386064171755420713557718953662690204819988411897998589527882452833764005799654760478829585930682576432133325445427029940941042770169411419229548681463718830028834488487658105512155670715383279930134902775368120135374071088492666025866339553456071675342223173334301517405738039590106119483958805821068591536178498042967160203230167793776477758833809979043590833127470667762134237189656288369825079493944216396581223386504048117822250009637616403237290553410848599672965782391621499388924471944405008690526725947336793745166053266419962906198899148027446001325725334737291957584191254777550677563350687159824124449936633496366009798549613321776954015540070178066333050491290132362291911968355967072798277537594528813869363861198368238639955776302961321646301602341176172073861988054890610940859621935343244771358146804978259276906315517407418993776047692626657525375001612858303220522199798537599489489287479075948915344628602736229835149112506602539914903244072186407924059552260482751815725085957085839491959653500634845938945283093462495034125881237425614466314814964961498673692813568633040257581539356235858555154187241120950624719865519351642798862553540226144309541996188716949297474837879996286691855854236927451957736164517697615163441390692612280252356687175636107954660281674909161041196059579856386550854567741743662258025652519355107649095747604650100619048269019511496951003718341134973953786942000871894663156238483262362585684346794033749383057724036546934976399164669029313183196232332882117940412488815037101986906047629526534662007442621491686163698816788963449722743988717957543962180246110065143985103899722901471553361321551213466837670856043785767432393862479773438553193738731822610002539583386639338314286870448773239356095683823586427394576011616453272560672030615916962500485957889535975623950900580821274942939986362393879822808300929747040905333248165182364086632318093917116995850262677906751061147617762369659309126951590329316558175278281463171245916732579813796532390487231105248216957453485098284494441690644479162037442171710654948850424261843503472741024334042484122978744591672620014948265993508597844720703572423112316891731705754873296836623679481581352434080894832476895377237383141404758817065650193573558474920636414856871968818683905279195916925835994306756838302971490940425493279031798751359194194772128633511270905816430849623701983230319210504862033478575832913803724116080936570352755978640848231814487203498702986884055290799121383413079007412037992895908806944510097195249843531271653280679594377458310273457932498134287672571100850633536696071396173144656658610014142059380732925838211097470100264017405488239198870172105460415173749131084726613055759267167084059717117042825660595688916140626300722995612390488104882776519973137141781073123037023003698765623953377455443360187490563815446771506713253110225603468350143822558562806566341369776005752980622530432600023880947565100798237815178946365043977212460454308590171732362727438489200309087870927833901557247358324501210017763954557043066332452359901688546309355318585384706879222892596966692331035702753295939818963455119473002679292103793119374888126370175159726612273543147206049832565314843819296092491316731968402705575113866098896420453124511970553636465635947526324750232919914154991019096558908385508525891952266087009028880715906008210202383844712851843908242552483358476502892240368216534119454228510788314354710614251693565462711360471197730992027475237763342727272973419574052206243245799768468425290811796046776782201818511807639701418190449935875701285939040701503224187878835606333834930014192233866758844792323276808808417073274417231016250320091127746028546139846292679963190898526720353021557033904843910666613458983909179094605630375208265182264802885158658714543747196288737968958960028806340242034477662880215073672642314470614454799216267001777926803335669057753396608546883973752759077854389476986922886302396325438378269118122655225612893997133518863803163188686859170000352551091731344544526961278747800820948059412246907936385243991117511757703972270034297396068159621898688571952008617432324763477351723500370662131671919274267930422302311397803812234514697052695851757893976056068808392394852559071639876832465890419104295116388730167259338172369199756565199902598999490642991368329962176388439284035037461678284400590673536040660896700064641713515150818150056840586809781600640056689117034518989528657660984948046673591405899080213116672060037953436632080771365944135424393219526348140435777788872918716108522118130913904274121330920551916590567615445421589937300317924088253572852506158558827539494993353845653552109410755081117865428737097727841129133487719121229189801007880318637374657755504209062711293946072033968835267803594102814129189171415345644551510807720188208682108279013617773807118024915519015377819941213688662875809939034836657009899992154424579883494474831342231137067597363790679699258972947340705271212719084205013606654783458211736515481683777276605249143490808679043681763604627521702960596049955625432021424067145413833591014829163270130032253471758813756428752630267576098534061307044651602083677195314053288878248806876157868322390885609570773347271109558878813669167652886132456505452709869524859200684042858088388261134805102608534225756984399454621476990875693062554907229290427512054432951977630813073587871419531032023114757006403517745605149236211495281265699665840008171170660836252100043044766627081292547047768256845922217891878665546723998909938962522055622372300646253671319345359752972286282733887582405811425420714889610796624743754525384800966736256565598713189325811703983899504094767388303423072077677268809122184768815667604810761775540498554898309375910830087543081803951076192759777170194754600435510049958835415822564953989101912463261859961343001770340036115856825269319902757380854388390888841354298192737852982129878542774934743689206841780971741519818243117198473526137680960259636236772235170239726011120437814872550845312637720784894877189314340101301521504760465400628859861840976412601316921490336994117351224821327811922599782720213012426522028277127029883737535131900841991963081868176031943672963420398777133783978514421638985615319767652632865435080183741708406639681248730344864437654987113811391182786970773285748002197934950771607816059767880368280625825963431609262729225738628475143423340839352918124798848519197064826369327915445835173908224633537859984670853316570400643819551676085890651988132821104053612048297128097368924386040257546395138104678510735641093191417449332012786022010354515733266227985700276453825357038184019147087285691891388140080824493222154600770860960229728538747523186453214241668458740463716201425730595702178151633560089933075655660707125763512018745790058384067736113095581349341388807957352393105377263242627967124395528779581713662581624582357969202113817523342889235467386504273186175834955919373194664562926409465091332621461539696498588218480238397179352029202951676222312336775918377931944071100714593502264566128668205959122115742446316469088208257491812778462282564872965914108767413385536861038361748913528610203318751038807841300132204377350058878152374753361723575172713945736147348005017407919296110839727806383113178419970427974147663708435834450402708431164793358964894472662883324523956808752813097342452253959979680690115203284777572059547758118637249663172653919804037427265825328947497234110085697489758954468045824566813890828020484712459409590577807043807454803369902303953701592938718689479571687351303673563892859744348269587777825884125329495822357318159632929956749795116703214542521604947509415148468595235300250153505885321946237533504128528590787030959976825619570242573843524471116158111418328558902776689192334613672206290958144096143815206600001275473979003669640115191411753585520212989634554049876683835819649778395053412393731171886730958046831640510986599531260026654256800387996997765894701635514394640806040782968263471515731660110611613175649036229681474503238439878999427084418941562767989268782501459922724071813700143602128065539744669153104746077081523023531741213606523020201981521840084337223050080765142468318150091360823778088357332363242199548366494852257798269655590117165509303546603477827943149883239572452303733444614182704222943757312949068507683344142691360460048859228142096173666770556883558786323136258124850390173231322191437587052822959873532266356973318332856682635051197056473654426631488390673230852112784848162169017625699219950211905163907519073279213103077726437198053346994550616553772444724617795832059698167385845506807614222465848512772397220239675328266974261851057257195492092339403088891377323994965095480216368715923794677171342933571871314672669901553872094891499034777457618941241729463745016020490859273005409058393664120903269090235659676014958546872860528047057125272683410469983920848899538274974558879421914668515646866468130968941480208200968514599809749598918468573262615565463887128903929282179510436928605776021796642771064657053168107857988150999613698439153364742834199953162129911256886325435854422107000349410201874975267346170281750240940513876019432943623594462613932530338713458642678234705704826722701303061476390290060039319460935444917574446536917654910515068826984817108416889834694164644471066131365509159725795272299583113594454712507212582273395356485393969026616497820740123349443488260997601623842996520827284619858430872665128000458790779264891264727551162348586105844821442210396762890355667272163641042554439909044842669200583058390249397065052967090038414092365575923034261885078643072104859948485487905014756882435820931508936544832384844611192882083280298992505701951894271374007133952460965839615677309147702558355109072557513134618230539406758189524942871407684475764241394756648596803944191577712318035178536040288655076092710307551361783442447164292267795441391719221676218658707764162607390967435838324653166041159347668146923921342826440330955257794724494767071995954421258848826001266216597526893578583862091682712252047849418835867361201835121333824593051710378846512034629368684087377376462508906306124050892274347162546219399775609005046312781653400055043724939661636474296998364745678969034083257223685541574192593659222950797761936216293463308722440478938882886789886679531033759088024242918911881561724098907682617345380858029923453490455386592878184166341540587359579683280494017430291711746404306322332675635815058014208279769053628196925844840337600504887675684800167639132473298335353016700047517559318473907359487943505958032820888480495857954854792683372987708677388508909946622923602823625405265051475578092597045526383427998137152467015718386670940376289376358799292308053570942945280739783892807992485148341886904279109350724374468191315389943371414729307559857440694824171759488125263944232184699448853248385692322292443881856275890850831892342342889336073918168075964983637721304917825054802166601838712353178006646601019186635912772178790764195124768887712766491016683886291004999114967023792488383412557771938791934845137645979338639337252161650480146764484421461363087449554629287934703529197207140448646905590216606425000587568570279327349100658817863838261850685536664242413940838556112679810508995810194679264023790176418516090188831482594778025220747234333134568585078868411672577740832050056577916428854792396433800811393188449095247292166228937450431292282997979517909377852884241040523518079113015740287276529872270951443473346519246460003238408612674843783911099567377221810814251400149306462799053705684880385193842404894553144444520114402412869104853350761119347420589456962111513465138249972448343075501627761135062791914917046007149916095224203286461550359269582501803177118642391672240730045562317656347463687930583645069529456756226618952675019754516791815558326711683369916686050171046737312197936724598515356446668525023942377443976724123627788195571281400845830014527714873929566599590034047154729473889528185324392589341948268432456031920340395055756614892113462465124057305694634094520830327026785443477141139160809444802953844674872345987593995099077421237972858690394629198343378730280598070777564752256675127138842887030412832989680753414386005998759942292802800653401658128221335982446243412111916237829939905138300690859339097091389144978605136756119012030332864376428303671032870671634784033495064113748700891933436807007637343989422285723503375709744794758175598816348331580043040000100833879828590375068190757448619480221877555385895322405493449946376562354411848586158545518216791025543898297610870255418048549012804726170531571100017131631520625365051837228695769024834166446867213492620208929331711924495203792301950459344944230009755312950546391413889918870375728897891973058994752618160991671160041987068233462781102769080476762266325561147152613313128869235182479226570911910912209510470561030715748939515139920698763163180257856607497983561599868416226035354199122439373592514450145178921007575000586921725088633302450127002324056277394173764320188140484152233239524515102455183701360838028460193637526530366454575547699043623792296020324913669954768440709179547209736936776890603971628692672536071979691946115276108156018241950694078146043443009699976997659494637923490025894412699015691887826863828461922785726031214035317084216767303861312157417904616134257859363671391690932218957757708417570919027858668777449073397226262401513153313765746709645155837735285381458560734633407783598579180774201099595853154237379816883245507683185460858212816999858748317873479216294817100988305420095437572527345351600708874351932608014552504634746602549339112432248976709651092874998017962288484755886030792318106777656366452943029755600056586421112062379138719375193888237280840568661493696378099879543143565482176487238284310524453097997316105119961358661683695016073366840146889716573743072744222038218115089320186593023966129721708882452779957192854425237509437954725891127945450559815313936872792075418421752530085715501966500706767248365760811727536131637091034862977487164722775773860892470604883441234505750609038812146757676659028071707947612462582215067345030730558346070345902401372077858143206822506963135963057432533098441042814119293284158226677254658761468777678166994869388523450210510193787161213228384824826266236212845501737375575202825546380656212243835756929905656478583048700338145203132075812615436308042929133641831484509136667824013922430916253876435293443248964632528404718775900803301914285496652649941974145230767831558245693530562282261043952709591755913527609707526516698245335622145397492552303488113659481694963590970810949910060514962939317687031663116016051303539420023218343096053573081463059089839174447407169056595213445589201910513719636457227775081366455528919119903876143816066575322433960331381914129365220608565227253406895286394068453831823644051974248595924912817980465470719244938504851923381299350549574073190454289744774911413181241259576716210805594608570681542685338764584172709438526923193274380251503988840274607924838350330458355457723140182145991121084914136076801328138798092194285809067873468878937342406466137089521540024511480998821872689666882066062431230437645185492458347077788482320703912072936200807192178710630967480105322937065525562985357377203135193064896579320524937122560964110117196646765859174549888632959081699948220054111163078279714462268476891278053824393203369223987064676223029191530774801993001274888330567454996227605832795380041441767733187491165561504572193525648855730998555136632004008472332064820416097525619424258137651658518415374830295783048912893273842451377428870454996192672193579992465751885361997710255775540621499387523537513062416822274777071043313370653972026315121549754566110203866676833625195316926365685067470680784115793023802502822873443162335688085894047203407710416254482440602195983705346631574819319821672828144887662301944737307738130199293488936873897223940979156151225487332822344421561507839868373640377353729388209584962431906954994897726120052828007297119710570751158733045654294634701722552279239287998532990419764211830938871623670495430519978114247724023827544899986708358616796549735222503449867097337105099730565468604002064088562410847622169612459633168602826545317995242109879793442843918800142016597997978534436653417417014575549459919717525538947848573695897677625321377142220903791122807331662327834373817488694605102233202073394832136681756239291974627891839442857181217504562365439216818101644128255134954719623474173193650869115359025964011874322688878540643356927052828089990607018600652744541232639614343410551521517025229495261212335734421383031276954635393028547512919688646823346869626666639466794401219853791619856362498172509376836509463155212622517424282636134340189042876279293758319238528355312033042778546641081123778709781377346038311756820436015170943825627881169728952643276435290698015171603357924332091212825007468254830495553400373764644637071413719540575637880381278209977186480728064157620957800715054844191619059084568480845592344287592272226897478258871748239223656687582295857772986545104592843273648711133825652532992113212953283545052017122817181654448825143479613958850632305974607238106364273125753370882409845347310879638031116990827867404449355217762045793144306481528232764821842513878001791895440966877969686236697411729787030388213151258305220911243059027133850762284362992393975357516964755617751061368502704129481558571667661976233853588679036132875677539678936339658372889103643610250476446261485049626091876117643671978802797808018827117450844588975571375690403422324017236384877011271739229817635850789487602334412709972457471738084180141165088888406292434497040356298193523437062296152649445718981394113312815916759219505733868431921639570922230889423965245906072283251643125213863558485081418222978133318602807122222257194410014018394694522663983019105071916096375396223728870587873997914251054710501147009995785136838964138998190018312718385812525463644376263832922615827708779404390127222140783280028492364499349508938061905786963252538660863545838381873034893628843852534042819853619152553596264489176295923736614549442093216934800310149076326346091092480388666844936714915074219537126824425372211424659123332421531564221938964046639563384642437004003493793363131479671428197662240302274345335750785206509709462300946940412075173153573565029287004530848628504990773075885065585171361712969256455646126362203704216069026392033478962451236827259066650545387599242041237329872059360249654681952159413892644102873860031883935918941379532156575186129600298183455350347716400175879764041175506077777615924528566121636413855386574184650076711620291470542169618937068255159036661478377401551690170814951119688578329287563270654758524287652753469092297219138770479849474661804977597821047939896918783656174863073071482473010642726442880865451769765833821090199656703869149419051276642672936483498899876914612802671838951703839142717377912293286205921729681252644143713122841659314581462754812679871762931165491343600208351147769766505282683605134064823635660709583019937620513410015807473868381405400088160183129317595135038345768146033375715660525921498477960611428854295975006539489477391375395300775442324914747972234943883964376544019416214297289210576917616491581212854862106015382444984328116303826238353972641006914090329909751721487939135702772553698916995422058509696832900049029828237855525468139136463756926759601487325114389815108935005659946904601903462554829172129145184946964034700994039000369042940545163507922930090543718752192134083220073083795306772432874751401862164143828309518328088503582928282661485890816415425824250521996064199712518711290801572725693117476586589783718696480840268096319108825275872199001875429733313075194719624941645325562514393147756856312954030406959918216865275022148784893511725856850090533061572994606603644384572208616525403409448548877201896165491872590578097123800863388283709222621598077748966451216206178787090820210807752984610894372532440034514165522100687439108904632852685903263469786340523692969258243083984175240261372476423056033039358326461903486624808634775860943177868449968612556734133645579454228854512975313260476370643845192453999320912465629624681348737525705790221687111888861656014507360187832478171439787732220311187874304774905999985609625516140456516110466918315596354661528750929755009244483307422227675035081256089835569430992449447657556637252787372489170637962703695919954301545295316732097356043244075398587429765457051064288643492047306711891120476912412953999707695086528788035032823331168427800360721273823992694796960324802250010798621808271780424667405537369934556405044565758667695235017384952313150762557279024717554579542270696818331438481314528022971617903514562885800250395378067698271700429351316416284507860502776531797358375733540146566285170669041544836687900823013006328111478943155465841442285332661294665671496799832051376636335963090698537759913494070565507105822414475927129261254488108818204088495360243128620794073065595049053999638504268572146360976831040844644190250006356688261786286910225028303850468030096465768307472149753319783688849374422576892378453092421005091491323451072946201794045349286075854887997110657978577846866581444815330821370055986582252850472329407568342433104013396289936360541229936618478742677113244616747122505524626812869270228253919992017926329318143943500482198426658851123356232758456921570382624244532168632909693925365670959424613477498511958001646429753929539188018171596698521668114210821208795292539687479002503871979811890520129201639132801629533339048622122901175433546718662174671726104295727861036979228478593780777093308155248619363517632226346188340489149416615981015479822464905872896883854983950683338769192636188115455372037459864675113049652414165006271390665755456034367503898228653074809127570007569176871570703116785987763822662133592132738121465429667414999592791994179648898311420045165263908322897044608902744323705383839113734392576764457034801484183870593370435541693756328253945259003608661683173253384956420487966347731706920966557311775437361116520642935208594535650856845662488816172143908174662096467126429426372693342075939146173993048976877042541634379430932176165398731658737551653002834327029500803073602938368774804059743953197779409032697116140280382316059820407119188745695909290800950161989178582272156570374352453272521292712180402640754448624485399334180004426607895580388362263282369201346198648201442494158937934672927379531902274007860747273436613166533604025745562501019033530782422071084023032939927909513993763750575478580735533919237088953030033386850619189365921421115440223054635139571920302209750698415109327576921579808496482952773747597340090639869335822242575593807488885452652354306020296399462076945016099791738756143877071849996041917269690549857202868748354287957747517276393222741444631912089126729065532338739878666529261252147909395857466270869446775254355284355309148861566165265844406578662280823294024886907782821119288543754388576557180149565463787072920786987395106405095820292155383113227256817874374432347533745628560488049710624324522254414909709317060886764943195221800164875786347695998745024668660676466172793900538509711628875931506089970684880336485344810078071911060658349523238919370817747250731553423600435091405446163627019728362772066863120031662478213479151459200936358040027545688825071399628281425244278237249021102227154546809891166455068803492519381873645552051930944495269447289432325069683964027407233261941991045634843597737488790306163635692495695329873353807787645164321842880842757664662149958105530575959750252519123310940492401543047218520693031088985839824698640544137736031767778144154102109270224771806332445315616497174105117853436423068017844727045828444090057855950970379236194619642299906693379543799136724219400984075985595133257750309844589499472528551085924100242980928197847071797364280226581689704267760580344069647895626816442591333831365221997628387944771915262601782031681926313968344545319101301187244110747445034812230461671080798440203900233437003747627067088536160709019808434334349194200258682632146433593262887811783207135099930483861126062422509413800915172669125757927115983071691131152599677281696334762619619918012569933499323225382338125279126423881644481592710672052447490931387521864511741112736503998920149831492280369380917989204777276064522088911278035150659482769735160218561071988595498550913178309022813569171958509297275000523961600444102117601492934166118691338193114618948527884542817349649645092226569319269352923325240611001227741361286563526794953373170105460178932198819862486121777443490570838325713295908894420264706137161380657040888652428079386970851907490647099836197609467791870543357850458164561197994829061730795588866010466120039098413133316949602198504411819865690287110309114725168617655815614398283191673194114123589785627892773118316640894933726210278498731915125004673667491979252892982501622347885960339368763006624501108680306625769662152303497367667834281671434135737891385705240311538329530410732047972730587469122648247813232769283150954412804601024323742115095881625516310762273525057379604011641229378151835696056412116845878331269184074981707923471081614797951420556834094393205739233454852173720647074802690906560903440647867838421686644977014791418688588986256467653685477446576995681846041234446619227932865572087908556818596034093350078857811138692307994215411571924071746521315369903375258814056088110045387082400900297960536299603839467662650127371256343151791074176107538036672558522167791809079604094549305892951109091125597478003560068060171055644895157786930388418269212752776955061251374168317938216835539605482578822871052277108808338054455898589867748411170821230834001606856229435256806855609550278745537814118525074116332617576232676418515276775395496843482649699551793020858138810217456838376704272467523878939133621373433848753901204317287227880416174856801988577852829645090790244877793163395096409936551212268337818569411180311027737597654044063324791479644913960616177735321622573856987241652451455110058659381406723762125590037856762950726330576299791868213776121164072717339052860705273967193497504531604938603843264061048886972721214961640231176390359959588383425719266129293134489144295299567668295454607011827852792734727014302435009205483136379961488963839327878500059705198982325505360752304466878291449803047295988932781544703500301993310920258933372288997861967791842329730846046756976374826669246577280424532660491139465041470110315844439441280203418031122041151683594277987854507472746566445882719503479921004027515938836579457205344143965916982944646618632605885067947758753684839136316144639762631126630039217007751852087307381243091384356522304687949105891133490395301427295621819513452861226470283553272747231903030624410923914737576624250321961147794898300580050374821701231143554844469499031713768088380577043383355350314007521672238794712673431499752123909190573300978611631105789938919462681591567567460233544595116455862710020575407652911430225550388830832293878744046517703653334283098483856180251958074371951034164409826626505673735825180610885211498009534556251642269376667990702496584423343686715143035553903686993654038777993016383590603197376706059371005299152712286640628477233033987334827848758838345653591092407141510861313140058294066367499769633672709103243600325018626840020261259974746063544657766582300708305146737484424920247618702536113466918976269740426644432084757853336418796634414486020447040746708281993002963744476598807357734456910655389652689193094102133842011456226481318966985636144890517219087120586167178955099130639230393483247742064963173459550701262710201084554247270675166497017930541184305794875405487454224196968674084977463022066386546045468171021361743331185669619737999316022235863458639751569667545344786414156587003834550476248247230575009798664751786335432374756244980695800988683415914938493565072976031870149474035413464770981661329226782844155532347430741295786829242857513933068516465472268318442034958719484677720773658372853841264867852241900376070895389769452951509077622119660030214419983739055295071926574068542689155720718239377899872716107925979742645285671121818364085462144492339977973420106509064792612859698061726996942631364979260865935630253099808816724056033500995418684268892197689578223521361102470588900368157296280223731810156053238398474135604759890602988964087931199638691369298254783412209433063558097486139338684738246531667690653598862154092001617225298405103739470777342472747641768434207726871852252777718214412086572895028517274873271925899898180901552210458606641578590298291200564854907166293533861532686308052077655231066161003188167783798228579326614244231972370390638829193631991521420772319384618262632731872402177851377435711878291299649084649382505910248087907342257635454991669379404279295069417868104669509364649750516409960885639629943437769611095627006274015002636557103359068943570609690444737698887556672241608696650574293671840805718588097180551759186829478887776214600036209421355435466008435793047664417175939051382662691863974708672449055284071454769968981562590753154227963855816079062399470813960920423522962889024576005217657019766636063794504862544451191351602087290951219799370094861573199903496767102260346373357757803533329834405286913377616099976528211017206719469976186454441255809799139726886156666014253040495323892908464466076255168990695957101468607238452907666160545241902183926448512229758904748573513834381147922781231206253049264451571892228966278101929131251822281179278651259168648663530343123261463073947367367735190008766506547828928887892260645090397622065681738594788491025227554008892202732159614978814695493327431109650891327150335202454132012353793943988777313282697435179466333267086409123041694079530303041777106016738878903829682258684691244910006829030353128383666747760060096696024815015748640070231458452513525254083605128924238414290450662453927282212653084803395188190650887186284546951798550017695445287883061965675954400721177120435168745913855746269885643558634109748102913598561019961301054382944884061622886667473655092468388747671722838458887827474448747113891273350940977518573874371147908555114407726159252724478104498063546864055735287684243464883736297834712402065502414434563776249098908066098214084629015593168474477077037576410618874327022426902775455631676206406185972435954749653113763594595369089035721127734471847949358565237926468916074719803542833941426582529135344191655836145603104700375810143348544819444060555135088779015502999216169062168035369534107444046007204572504530110416767492380365285007088845911994738566509166268814560411177724213708049852794900264748922517377141380306005302359966584027372447220337555576957233874615820945864249103728922212712640480633681596957874082259865268448391883308962808598536996296711302042374382297242891445446945788801251896920772705950641913126456255641823884733770053295795372259601982889887251212762710235214035056792787827019583751964634317762061587882268569677707565979290121520070704103397760301379416166675341699094060164926133082049431703779979440395592974611701052095964034941306785180160323338060402385539609539045769830577407429735610947251355339472600700032587186527563600369534992371689494851066150756159626096039332852250931884402576600978327400743554837103724561465408498743097570782553874249067576974272171871735149851562882478399881230703639170875076580862703572906580031674936925461247611325782641500620727458810867601039554777705807920369843015406548073757977495466306426758762979310821755634690975343272656325224220662300338489213370767213141774671016678122733095592190475183055001395008312943393982996699399487362290779628152382193607951879776314548956414142504323066394991640831652048369807541329556643462353418142253828254143972362434900810434475080521416269375704939030562039343486180928624726305324512231393290252970673613639894265354075336109047398065631543747705721174432414628681755374026917921418997638432930466947139542225286466998465060107542954328885642878862757843533701685400322853857043864876614699302720093549687404106670340507080430973479186840863275250683370400685678369834340681293818751350564454363399075176531131192112045743537378836789562393787079596831346065131927649974891523621232730255552785024469255188270342458780937301672846800181126513411230333043078918363079164383822925385155644394363130611412144988081592400384737240294151178682091847795471254130470229937441177673671769986680254597120063734644683574630163447149782696634038917649606595812680357218487822015280058147397114284562517139293928972982890499678364369688629097246455893672914398285991240389955902963490941271393070360253121121418677854654564167760438294215046760641256250444089577564235790101701841960314797881092559973186174883861834289332541089096497142169932724949908605838783709046183970734344642011975019201732931629195300647757500833378106480163893955953036492921078387434949764737541347160551764427712117406327008255963028379392392840054501012910869289321337414934462766751012543147956265594260572591795313167302922822169396648272048159708994242199644126074023705365150193702702862278290094249991589961048715750434983487997026483502762155132738703039809346080431064850618220556826646945460102394148477872029834953681145197073367688295657909815593037009310444389082945148129002429666147332281958217547051810548015212448524257177143533524934082217308108648269938008628139647634148882345230076158977609747362201834256918568748195487967995553141446642234101528965497255303077861963527009438174351319746957901916067480181162971116499589344310182876860102572709648754072056774686796130765042210003399487157381179630797326835492600611819574010200395131906815506800725375117330584229043443623016296421881200268806939530545386508312224436608149135001085265937486288306170451225514395047089904995036215630295341707103016813823405131920442447772889124213516460952302946129005838764492933916283778177227779432751669493204280004340435885826985407855222918438371304427339994618544519112824851892283048976160470775316526745811015626225697047051588359451394915844139622556023950581165415915799461797987218366736763661133993343183658444670077719721604364737624651909330413549859143957240013496384200093724476452557240431850586865589365516083539545568260177046244122010435880817539028053089928390340224866132594836887307122891855800310328469820974455701878261776538778459952222478384467884508999752691548983161122320720922671502924109572373519570524471702526513131279379139258112577553705267016114977672530331832535453868615925685078005074688130417099648520529932594825566566117520141918304364276446239841895400559162511767889508256953361005229165383490613690841449911176337945628419377704198030920412924561590426963099296180353765529047697437812034600309044959702556881217913217679706898319870019484214735161467773064330561640830635528574130420058426308440418417072571650891519855355245430115246321281738201356430771922930116352224608799837501342777562270196884931104493108558234569378511545749508869681011765887634825984914379404811966705051292683084606578341782791280241702261519988246604495186860049731557799284485775747862304298718016984637435428757595890962422841559677987281054484071274794002573135630821026219124642560794373999953967212751167642652881472975696203518848611354332140835664055751632158403569880593487293885008868125269741855623359449628384275193000164826666500810128934494158735077189158459224238254281171853687164714648559661690044840867008403792725613271744299410886538886886328095221818767767490397021006117055542910476502037297982255843492482140584955234247048145911292818212050327208992916721267460846439400883640647336193858446174889249313312306147125804641140449829918906574310171363568897025833042706559096403914993375766164095716882218073391947712420582744153326397384778119364176914079219422358699174309227313689325266081040222474200588482348323759592935084555588415693246045340872454065819685293688034437215678277041699624187146544606886777464588669319638378454664080238387549564534840493267160020363958883358173154389560228158924659887792077589194749739361200972660393975570760296542576787819401307420111976041024596747421608260319349187886866741721713913717144101693375478718236139963500448122063397950073891563738177993277028908982475382367479588993166017712930966013528220603344147370184077901097915159817840085832160858001381750355074354571523904439192483121835509497353260043948998693620500786726236611023224891685722566442428739269761101297200101546651176383466616790803327318555651068930885466018553261882034748596516804755107254629943488852020848325788143457862041657708918633732078833234428483834964911018163773293891774041553894983185295682149247123350602231853502819764680830803471883373696802778712499906809870056835433083075143455099017439469462231344346945945860731137082515507099215198709743639583552309550671254974153450611332679030241095886733707003859721477877928488598023236680050456215218435893703751391630241101724000185350474921477627855260487000429223295297083088004248300380349878922212629656064958330313092113815475462948961381128122846333108115529749339712486775412099024346808581508672259487605214323955812620572466588374360355871563589041764014977077054355061011888992088544561277368313199045069902808098701038088100411167305995600371590872668057805262061314687321782102957510800332261358279736014402217537340081281524067973748602844241338280654854326894772735266658628931314444886262271307689046896837162631706675224655662776888717876253072837221603244841860081294179970660895777068582213680530106354403380656649677981176069564771373941892792594609116702811854748364005547974151134756830605703302586909293100081534172698388946500250308041767975942834586587159488354328310285471434795191420505445665785069824099190430262172748692633009150605664071910226732880889652500955534989049255426911596908164303276648293735319572944479919132757384497716714666480479876852458520234999285134932067795724880606685424205364379453838823667491847106356492021718033254645178187276510995932126908813449401113518021722356631271452013233922791616088072657382647157130252464474887022199385015181653728921701452302031993809466712587387303972009515147482365834603953999220496012447842555432404517334101624329085638638777621437071871020853926130895363392589957388602026614935457776968543434488633233256738033181727574793268360779784758795670986115943057245074157191363807794354618767400817427818430949705808291161248761462729800071654407244555286976627204845408810021680767620918820315400207259065552898265640313397931173083818673916719917801261809819183118992898650886960403570503929153101777479148272668185727696789563386840561719300425025464357522051607209993417313553041287185546843508544895347387866867325705325228091107435278057985561730707738607283820364002147479128704966724757653846350100910721131380385605350963008051558468474337767439161290004142862043318033541653708331041927654452518624479305308921507402677553621349704036096983281664521169872405791036512441561971898501580738991423906788776786868817432982472877005797999830469999083504530857827493278007007424386551189057678027657269893098834720778180517522562114628644790289812312965292882619986090709769327613399067691824329494367670356794842518008541847630021756290260022988812640548681895133007902813675446293107843883565442651200977456103858888674492187596164385972540794007242458109381632093195466478549768198511146253566163298594766508137987382703420094208465656147726110095187272161972210766167764671841368558382332620249066177506445670840678648963177180307599175883097659883691022004108315459555841509898469440920104063377359047122701616358765917308250608728923536140113718947563044923989090432891122899075017628531077526283348243137343658744202783522556574455087610760185533264817804286300188812865627325623776068625585156843634302612930177033048279647973167646369493776226569833024825748119668952342338360473505778237168369131808469944061396059878160036193042564909238618627656539355124501049067234393377224140130868413554450973016941415888279347348923623580579553892090852041161475383443920526334641866363715936438283967644383929261272192242605079250288342688015939359490309857276213981460131947213376782898790611567190720848417342838004906076735341463692857844496381682812164116100428903635422934706150759007265738199864022283985969649418416569260141801082549142355540277114790081094421327753439247467635470030469332540848557253808760098551113846493079932810556213197740341652534859011236682007362931114755417466968100945738021730500201020728652737310455787382065925830615969033719958832065238653216531515624692699675674705785878026827950500919572308027656019989065991232786549108366038025489944403271618623810511805633250142411438900289296247943441516515738219608956324485195938531443636719129200907078297795646145605023351343661628228389109037159550829202878835556446739843419255450629064358626987893800376246109561677603104544725271092753925658522147280521833923886879462127030050722220612750617115456381318665689507941899046536485599566127744757044235533508058062185971833267385161700433394357731709391281372909040945356701884223831718039919474009739138180496026535160158449495992752574042970971526456959662970758712324415092954755682499160099165140540641936123585403214393829051651393170812814005808533529078945273238129492699802513682555854992830069475310884318887977525142714457768664339335467650294742393337902111470777178190782537566428793690576976960265659401315903851573375600458472034572985021837443395218363548471406222165330760994991257484902489816441142541644985156824677309660354548493728878739145565285191655400656807874689743410863765280712098625657164949889041220996527066274476444748371076808807783385676322435932016543312897147274974843999409891005761853295746242327162699444455281437587624512675523903726015602536918200671112648198341923973780821706997714196805018094151978242592325082493148382317778173964633103520093960612954838346041243394032037606048086543718974162280276780151883065581501823144874369555429051166996614277926650721233696630362810960907504515519244393900870106343741938807497657028730807278743172577785223086397052790718980822065317761118857392423530906222206033807300971934980450850637588039576103968258111585398276590939125026815997837327025697553972655877649600644612255969876053296618600962544279091158652830102436364423374172897115093115371549668302202148064970245884544378404006061427609763892769855983503034435639410904347930343092413746204321699753221105350063359766235280908487458259090014894025322494777147484859157542640927397034932363323357578027393803337417429359894658825449376084790020569850271217066141614586057884145468576235035434046633093238389371717538716403552981795100467256519660611951395451980558275555489075614878593686663664875324103109593699382262521427348983082498302385693067714037251534477763674370869827821973488832729976376989422194729428151616265807891463757474245671250718897417121663139516792973303304794702027263996449818998743419266703919188535459843334577055625622478986035563011771798028259397300765098336710193350412886986693300358232642149564260559604199767480578814005764430687597092412836473036592792096609238212131830247443644817591053717635468367646397497009246420564328132381626508641938201214074937702494173011109969406405284960925913198748424087310432322966622926111113144621777069828191936246179028861481173829248699286382147994090430768063919062859877856212545091056673803009058720276819105485441708494243738997122284302016588135360723519111724331412223007860972039921960267125220652678131122713708519467783776614448105142028271275188386738617924402616311369342755028616131289421402020053259429753486893396626310039865601896266718404203974921796188902079970280144929851666726195489029395940376894919404734047252311068570586140774521829856389888960545549687288319255603805576285928087501773787524573174754682195090911683075007650127686451281953636084942509731332774854435090954767284273851620815554023262115176563113085300133282980080594664735907491109126358262537492733303539885641318362485948563138320679023627331279096818158859517571067457119170799583265552406395565445415463377271822779934767196837782487390260494140441568861282887686004264027930505963234412577894056214525110057585749544441520052590008963980314747632033027253380449623482468620123712547693361566960332637223959750055174182896789972294510195485757067345403219571051434735927750308439088604430538046178401219745907070805045682947992182666018631163139761294882323361850044878527823439540796234903779020155030102033987079682605055368337884971515032776803627700675940937291215378614814568310374958120203858245818634083842424662883850367832630820344623570019773544215414458556231933945425778569745686810174229465294187037956353323292641756515427195436764870313523076215451130466400266159877008322402087086544494100313398193350795160111061219145467490108890628340698454384664874249490091158513872524012539450591103112934424830661857963565529353774529488665712529924747365568781167970286561758788426003041855855847510099012716604929563742291661040344888328621078048309934869908177599491539614124322245176290838366063920300107316590248933924902736002708537620315557265684164697823416562109416268801400517847910718567310718239187700556732980179995693824736276053900096433373918835864590647063581771988552270094992141459952576857644768724705094683904776651171475632403405098433560666995832813524618770839870382016674824269892973246495327058275084888236459061938780223868783880714309438419649881872964341113021561564750685494874166683392929187321505356507617903600179833144834650008583472150918028585374467020556206132885566206405051712977455193149934476090879769239574599430563114919305007020877558560345450372339190417571799457126146840185439207051385350717274311928772744431583273923487172866059015821525968103054312554415363650199986860942201155933215304803213252172476738636952789745700563290642199398860755676580245915725448523898063874938395420159401610719152846336919237494602233089516883573543084035459728564159609991947036843002539284078870736883817695364653892668033769287901660070541715213094997633496103935409087433463777818731203731651411396099393978955001131203448260936831411038135149920004954392250568129548825611205271236681233444629280672329312705986632057715895279918614208505845375224101731775767256658206538742672256214892130854340819460568495040607409478447442566382566564807842892786714444927290105632398687883947505107186478338344961650866717674529092247785781834162785389941987205463590054787618911318439676413568665235263577474568349157666609022090993347354755984380926018179827210302612737679972912422651080505057832928523624253169343660924550833602959770808658692330431448065470545416591632347166728637948319857313965124439474709983910138181850535855095962190364693602767505087407314391084867234106236624677770778503056707452760242665074205444252174792447092581211806979257470734131362808642058864874504807061757794151429132281764599928465450805106641085198034193194401806334638110342385872305033204810502904317864034547939764964392923437121668657596116040902918722310303808212807227705259735116838592572718709673442807908604674165268298137826490332051698346910274818192250512735868966129069313452013307005443065495638359063503476289210834555492572475346804831942826520564654408477837328115497256597194199789753371996405950156525299755306656872236208141963520379939234496577537384494209854208626175457287796555133030809807011967903066702915501043460653856160576923465610671068491026399096244956049745020799639707524166864333532151654928313008033660451562771095574550328651209025846110987764683090215166970590969328222841454187547093894684355750371417942295977817838779735762688330953392995267740908427945615017086971783496147740328887840619234761645143467954877650220874943520347917336012281914413099689251198552173182629098735426939812688498624727848917283781333235545804062666249527636260481344264289507545729239195568526982223606018649398783628864507734185790143606353097988176695307427341200297047410409206825360979760398761984314963977259227142834540140671795385139760456240532135570173350197449104246016688534521541044770770569710471586234613013225257328496732658224102238120439043541737040085369042390865795078796271951274084698542261153837233536708588101607338185938583527948089863032784008765494477209749219813506449259572253943715380607261221774574149005227240253787293743277372623614823229489670391884112636480936085416802864398126682318095211627340650375250738989356187678371524086737801457904184168439041283504054261454082979120102460870896452420339986199389333785807375530580839977545238563973161858491469449445247735900381238166460381516414660374831195051493230058719639239548072979561045877092470507369505972344739169565356813946696720996452784242776482548558075801492947113617426970380000602611460552437103999709825851427061082639580687792420266174296833579190804652194284695681815681918393480650694173868167691157838833666889961080205158898120817173833802607121398805866493979180066976468063408863253141883040565102525182096667729710314801382678992251436101264908352875217783235123378457656446884247658937584252031362404761845838905817404640317874067779424005258789917882907060962931568853757483781161082108107660420668539340123210853893656449482210914270653942889696541340299288442169242265944998227668784079324321470315212391154934508191816804358917680089197455552975490892624958196071542501082430454584098665313420107607539090764109651355922269967094059707301441676653682666106041306935143693266961456186887029590245154905007244592667931458809779308640314297238071475135501910510483385145804839383438952507544467931243069684976639788928720859478319824221189499781382698890832105367606564424891150871540185908206069108519246298365017279104454446503241510861906375942029149705961670201127424223722741445294918957661083889731239308305123251350870013430875253740077807117538353797374153033600747064207052988410451248491659786223304158537513164205710063567152052200090235961383772863756093443485603218852014156480223774865129178884569914638976041573497492276296927208838026856719234206856508312535255005092744226333901151455097741661113394389250599159815368687455808314698334192986548986063046979401459151072834679391596365510481421013147981090294272101177733905698133916116281936418034788728194011887073012935323190329273355337311393130707187681311532698260439961760883436541174476192197827900667284676786470766929543078445042757504677897097657594237055265290741146427083054747746732298351744627892859868759966337918353765019093050599870640518176618841991672426983800138570971972885193523472715777303654264803202692917315189181729889669710463163836763336560863075119329365928670643984954846401476103583942945419883619332255400948457623125366584378051529189697359612693689996786844066531477032960347768846103367249797173342101934271861323229002483002091354593163946920835945574331179460678615153322123389363419802961501577203517621243779079568881482552424666439000054969202107886750602306282319580218058874776678814505257080421173852987291152022381595570284234525934706381537511785166132221134864451258246580890277697128069196630354603109932615592774988212585991925055015885019005066499454331292073780634282838184765407381608078257772402727264346456996271329898585023677231360503136849973940346010867530810457008779304403374284371208864314927160251148796322426774709910753782540163489999899363633207204225148698195760886113341105426379623905132295161016127886832052763290064572491913613863169162012980840874002773024343448006719528221879881264994944901817562946418487361371018685667970275619627879339468242066175651745607168421561101758989622265969752615609591156498564747323035662109746135567131967996905894834484791632998560913445343969894771531374762440020668475120822120724009515413154553818896123343893319112235137870484527021501731527322986917702726529407649723504557364514059942179086575922503635673330470084036107325321996917683684085757009519694807838073421777778833701031459163621069176186057454732286414980454802995559922132930257149975622058806825144531602646711144133313780186018094122127754753058829261183226033842480758702043186793477395187882844359914486984167072228066359016793115008097641148835191342362168194767858608694067828867872321484951509391451873884015671513568790323603471385230331441935237032220443617875981071311070501118197249960079185222079320553175183701213059721138986478176343762490432870009645433383753784177050363421189360102843301652606836034337874148125972246490180455274194228550887182979662353052850079431402514886445625940720097075282788918852007363473382527509490414104231786835970502669196024583762834591382590816935661067060889288327361537385954704727910389757467655498810690997180562220611634689598057221575601866043834395639147572259853208644510462604375893144530512559409654550389213110419458099146666930994746284553195743879038133033781543316605669598160592383232323424381064895163673083214797504242473142046457940217137040859335916385701448807660767242717768898644768280929795088497094073968471683322149713144892356958051700948879723214178961553222205215992452792773230837086549388689916108018512718225426878428770393614355268979377349619696933772624313835813322748363191380154467023492302353447754326305319244659770643928411132112368683382846543231202680659255137789849730466215128155339473251363716944662532262473762384581175011373201140863826296372993446914565987502016680120349067447510786172517266377613950332465076033450809704676199508717251669944923450736795640999374118525614432811545133283819381487394691467814269509854953396924915948856846458723812011189979997099885765252884005124165327214743647175337556989085644311894631181664412615275549239787967433419900707942658889688750431605721686021817238497503032434483327454067949216595320118952940134973982543556040276272348244355140486787336625175181881592171466235577517259383376352217753364145234894482775333489848946225677570013833175933509114822852754846874394304591345599384724905574404932198842657879088648723600021901769259357552785331730047070893219064494936413054798557680386513907849917476945294735135015467046100728513588986992902530900742317276568791418595281154302797470367747467041036304685311922844216862837393688320128727518673315675198823154986479245886249489292212645452384394772240364734621506779106753495003542199424852498966748224990669814409220358195621808175602394649470386223057659662051486510070597159199883327668499611999616115019365196793108363862308325805679362721513625293578604075769092029776390373121013448440671968625717799240183566494365221712023105283450171696779651135593364763602856431232515455906822503012479486801940494960397294276416230932338708611780894593938434525343850234783071167776655238820741779880946063516022732655543286216655156203819212321906493759569630379569206701068304069141611436839627382141978238974109928873657506210292857185988886781637206155579305003426563457506055861630997928212803350894080490431387082084192230114765465132183875718053800292328499363646310165330837887432999185240780292247136422432480111491385983117538008706156427293088567334346599041712834733324455639049843615153870071431603002538147586326393724650470057753705821778241174250548799086841790248631391262408064857514047020370816711280929647726572034379193509569976073112867524752080817487738830907801071833161373779038461779102770155932517670814592537536701783503105196218323147075312035070671733958796077937878939147972915461441363212045256352733270708428042220416441922793234120815709243406757084495266231896790407147594103137790983874119176227356947665231725666244495915124557429387280098439484784344986728286661320811051980250727753769659814839096285742722848212286953390426937173143185913153801467388924513023516544063021003636188986587836454790521325354557283509337669636296460882208335578202438863747306110656995171965974401727634306457756430092878758638874317283980931118998861730583919453353749366019987329886510793267698945981243238280124582184324935637458667063828975243031916206975252413268868925710886239609509761706949785190368216527524552341192752570966501123353647266452928644401964759127663943744827570676733298802612605446675047006312941518135230021214678066989923092888480711545356425662251744070173323951171071414316536140876646338432530213929932183984994904294410215700328831729276636170422125022377247482337445153604300247064586080605648610423796319639836548044814806767003167520977057207648754625236109546473668637569914051626726099787636590558457259183078283461795683666449643302854250098977229093914317247852549172154925479278238133430921225996183373516898793014445339309204121959878584446409831481179138874817828292901736786095814777888431764071919617949192309002827374010571057040580902251034867162688057740300559762866242676375802744287302857096332340191518110395299050796981835077249872283672638247668810922636571962784067545742662747278168945516148937973898129457524220051009667197849556856048986156957173144395754399496927839894534082788881102899475900626970950233339708322063437049035081713772842094865620875562505327476497810136077702067470784534578257489003556473949696175877622576781576821396887568140045974940371042060944006428378620795085423584591563089395598231434957269088096654287243126085568662376694978348060276649186011956549574375151631236838764752411110295906862371512616399036716624478244688966526523482359246487489814831637097220043015939771916981657320724712838315554699771574119824655767111437711472603962652982691558011955296785807301951114339320264617827196690688716935680756305861286271470487370313977836798137869839975977597837328845019717833179398567875725815260020176599632614105311073700132016797336192879789941915715770708846642652505475434314211589156522033951228183053831557695540014463837314170673599429413387921975958912013489394297761352928932648644665041477920134245625785615351347515749781285588086911210684097463593147973997466002197148297092394068204779157401451227867017149600430055738234393782449087093054166770586212149604201402574634472477956839238841561233386945524502247448122560681716176584096790008387125124726879649418560791353793527267021093212039074044307287496582990814970345567816103110947587639121396949844718977749961318975033616128396137783606387547374965604240256838681971595017684877967662502596859083430431531720023351328847720462901040057960879197446567703220278263141810583082265045526928313875970337257773765867659582172370729231054546280530294726088625578373469095617525608799592003299870804718370159201842622117364574366542951967263540707795244091020629804147207688885079850132647253523264565544137748652663735995322510996356306270105508140750157157339695618048565465952840394602228942367389786738025697735157594759553154759553856607132361223312852957722274176506340869952270976685082695376869038124808164530374964741808620208532334902840522307203926966804041815829664205961051745341652785296370229951744790959736670270321349401185034398471977663356952519890020836662899010288267877937105464612518035449268903740008521718954511485352568041237684840473649571071296941140760473254408212252286117751689484973119491880208187324779139056329568974353944004608258492198993891429675292018282505245121398956783251470071380374075301457132182949143157910625778081933255118604076509335479902962858402776240132889097556362852208886936616294633659925788927863759034767312047897385307191060095385901998469085810600924408566830595610962213760608318494663360449267103117617702256373347314763041803709465417742816867320160011189960109419017168514916181619154199300610084409728837169312677771672668687293275204794935867855993114718719513585250525102001426211986531686667254980417631299373445410660090786874563127199088627918359481839158584455168679386006118450603823953290305463743144681569375632660821104427389177833607329328418503987097175632026880131769676143201740855079294549801651094680503749595748796244500709443404935496931386014209644150920584051585818092274772403055278708624296179248975285602621338979046643948966790021850607755120446230978457154341287718794572504616214026789689725443492778861381110427550677276769247949998493873267916532562769913510586362816070639691713628039236304827888656094582723418532457975207895452529570635417140160436772934826039343294020511491716615234337053883967979650932879318714342395359073459590617028365900356907366722351720815571692572064378952741927581460442659125739214541860184130154050717067141407117203651103855601727119688579775108545260501054950923895682432826344496711316478517834280144124073199128294128530041739365943743908677257715419461166103370390773766223512989794917196619465996839861899481681442928368102478924163896586702609270076931316738849709589579056592285382923385397149155087308848330029816294805563073116652390466697636584615719891253214741064838940366453483228677547525859573202138862875879426586949118422510503285020598420477746528382574022051621850992839843321654831706573637652182893063646873145032889428183923141312281208137250702525433611597550022817557670722677160160193952790186814512390615695738787744283966288042553342554358267843570635074971150460774984784238562221342839637304805226311700981176145057951966628278316666126383013792225795446086787378115322964043799009549575393835755314402236558612068047530075446497721243331667034400729507458145894839160439261647637735020539779295305067738741798695675334388560453890887471496508088198775697521141524604740749881087733572601394783744579974976003151975413184186255028318943810361769137659705685643102351189453326294997575564114701573110827067506924936242601281193072249906677395763855709185159595873665397882778960156955684469874273765940218695227093311722359809766927138238787428177678492964476998833454101322256716197268455238187137844419484355297116134218014773882726442939346567457724043081333490063320990478277408287751745815622367435338586331021291478815758283332328821616897112110134570927623187411826007584519603296626990518739267536903534646939345113726626015610517492593294332108872361721442632759140010058469728467028843018937303947658188584511952697139838942724282428089618793514768650460909216969175387221344218377200480895367309533405712075405296878948805960469984138252301900541536578169451497126291809298925671954975505882201859298699850639602434611154064115072974472596922629923014166552240411594605217907295146006042598572707716026720375821905836789038295626717604685571120504709837016219536296452505595555621854308231845639395173244017326910876809732775556003764883340458374751990897796043522946725928512267377436878400966695823491493251242363859607168935095504961931378963384404263532050630888148755996255997564152539446021626040971066504171873742346685948936562537655463412861876832548239712469036714385395357684857028125772693108556440513725709070362304934844997924999161617260629577581426815330517249585287644664048080372946687433065118343897344704848973630706228041980421109610582528111838348145854900379795732280067627671954625620465105032116821808718751223818974465086375698964308945625616218866505562946120012447882220494016891711296336827353018489535732568802586616039697440713508298605042053834014057549937566031083752726929549498492301815046561071600009254949629917450159189352724646786343173822832757351109212299253793968174748366039736468222776007957812811167028626929820385045200208218564778987205514796014020947816284472057948092043524322796544271520837764541699225676021632024069785594681700310747763858363049121300343084113136032727844623469235801991628257252306306182284760111981071382284635118004814855925906917820327242793854222384330032671373622785455883671096136352732490318943228232094592171643113677921762719550737651048734986935250911058059467420969668551605987383532477134788325277623693021903805659521291144343470315845928339515578574652429090725356751207149768778841723597816590182110547342135090885029475399803948000763339124440986637000057760839785988441932591575704784615833262670384359838988416062646972398531580723193076915361909960641803595644910367357971705519241633122920376659912978604079177402620082682432979899833302165845594667272067807278323807200269055299610014974066594174428909416187138598176044314423379126283595769824290236498306283989098674430939897216839065912800917165298344411994796593654028878539349395237615054462917843468446833575485924040341296197711694514183211829624851236638485056634151015726215122489321689295046548557393938653387463530366230555564531827459388571813911314847773918445028612575069284320926022104819712600096621440119813371747485331470622994113715612835323470775457662922789811873685711324255185496054775270885913498195705555485827445168256737122700940576710079156815791998150431006072517481038054222726360704049281834193263058597613285951620500705453170146474331868141336283196625681039524882187696042658391396464015468252023722953453919232261406575942758151000994597593893342914597405756687846096734318138164406457953063188856190767582101763314955552091017587892709391140353088946189377420379769849748999779242038715537433896715565313539679869645719900363167165648617935719192089452224024188331822603323151402091016410617549476785754019671404970847069584683399959056555733160744860706909099443772076112348953421687119305210399371210151988637644574430977964913673729890777091337990856909662493043199898405457392531634086660757040896790694357311056834737857742833244603090467235625364923107586603643454382956410683959472232651379111865112232372722288700357012542975571663260844666302056181520782295429328570195793862483800556807894369876538342630737855074549516289049969752604451744240958452241883661067642248995771599503524366991440597967752232760055287361103620757336043838720748218790530675812961661052992163237493771464573524417522658633114232160301594881168428072989959692173329288965440041330038221088329182066612149039943530434562673885023129441767886908778097103073481992643182348754857845058826171579054586009475046275483790164426648968182653595555047829466025560962764435200591922624881901051515115782571429435481810366582711714054696003895016533985196283250758155727822886615121823173066648225511559950149926162535507577059554993179208070296499497802124165875226278997471668683284227834076177144432304175048153599966211919982248264616925761993384429777736695640162105308787698802007925128735202841805421526018434641737448384382111219712825584511756513741999515525326916568960804934638250572604191172921967871783660390392111937126815446169095819894563768881672608269490786636025655715461044588378061963565037407130471081538652190557664766895228490133673439037722294860158163322595690307092459173457262914650281695112281470710734889784077681458482448989154874661208464380490518502830329581529987856213343108013790958697011768436550639869366441386854342177004903937111401485064888664063298005537086095210040945835727592728242319274532838205989466697965343708229147114383668647755516317736878138388983179927880098091388425794899420276800178038592492519830265251776397949999560647303021871234956313096220408084906571754313330174509162474551760193196243901584536709990109972720012373743801066222195511930097128761852973263466444783408474613330796710113608274401901972513540146237732223992395294022508403378050367445025356336581396443841962086302787195712036165265029039295566514190070636094575210447353914007864967613475297635282140339196185351034966162524604083208161547570684882886149052829699082149016030823364924145582117063141810478895810654851131937604019733780120923138728867603034358307309088604797877792269600972567088327110574992077605778520127948215514327958203279317056646346396028052903326556494844434658057423373478124767835849953178202731975218242296636279747488436942284446484271905150015557132873283929985767534802165251259258083355381046899146883195095936865914217247368779274666116239163945081378526742236613621270103682050848318254997760089840403863220285376338762173372978307133203943782507362221291453858886604785289277679954319938947504288841997099711768390119546003335562090284214411836955270042471815510667698894289236715774374011501543913535722520012944356522414423417556687921495283087466068890535514340331794992918414639737212448154803960729573334608768663378152518030435623362107945151180177097367316556159902608202715262989358117443946047216053286865355036053969492586501505505722663769026973295703190875596174372499032680925343243230283795636809763845697598517701881077791504374857109317769538280485048958421421994904642983430545711076184760084369500034832896810143305163723992002529192987403063577723983896830201419989485295479893854849875425113914358235291980740734321476495596369154045470556809144115167431014033481606811019736452459905812133497871021519473524590702161170576633971794449579706476915576191789077213915750374541543057915759445988290856888268319172620642851114787617361348643931637544240945420171016436321185136354019254351390032953673278851971492884899332716651220425483340784458607111180892108608080335779543291841351633742378882407546132466487806711935655120608534146405297540829457583755121659491332445175848311982279623918252635771105474883333541902259328091171714149216343964984340776972311410146491928264348018215998132506771495810768111616541213239785796663633388960107772182424904165375241527992140654053248610230466889935108667679879576918341408194514925005048437979517904379277898973212332109500642528610220450761381901552550990838082412804754271706249567738654016409630088417030955025697366971410063002862544270504778669335004144204094978958300425484997254350791715015784049937854646694972091651833192758540493422516269224488804832462824416108940411702320968302871028336575032646017003674039363994375775941534620767345879039944606521398705759615992941319902153016727264082066678290831309623608200180459362327383813436433112140720347290913814049367754633240831843534706792096805169409757793410843468076928281012257783093860148010222972941884562484069090545445891008447684098799245654323818379596401870484330624869434376651073039969828535808974604710361990830648046427593602753078228668001981650851540595536674764162894618258166909360093991406176876832001583322924138630054849619470215329313696898298683530160261422279752035244410325977247186014220684947408029354854107355941519925316619689696059679810331877263338020528883666482957271048248538405449627278055999805732833603787225035881982208921923529802797708288782806333898700974702299577434112673644648409494613206624827875618951763219436650788118405921220879945021517759465316930113147143591973950985480123842494193578103135471459675712054888602936608178254978810517825198477422371198633198726146049152768144472641759294263163213263611686617494936637996020902743768744377427898882622001230176391904721121415719815207560269166411569762506372697026974163809202199807503924018151485455900572173946298371380631032440868515653672785146533950518897142039377344999787804671168009504396651338492235999583817098365032412053297944584033329876575449104441014040391222318906607269694763972104902470752644684550483048908095506636162832882687734762848538299147018586703068184410519205500116298887597473998683357438127099384517492523573199430981052287322058454579926805844112556558535095138842754406150825493469796471927330428854050831021321819139012020477435290457702266035017760824133284709716702392060129371755147862480464052936615808587295555966489368951201110667772771532482495875897600900878646204122213360424900991036900716629680391524476054515731827878672908180202747816216331263502179468010147995337325238779610601496822667640468926498323972031015649758947575365356408046195750226971569650516200715390909664073820004685851036609669494056089832487156689068800696036549013273181840723765381159446085160147924242630036956170617057995548007763204733565701953430593658302521139764945776775700673460956969625828191126124297299814411916069633623396612236322929350317330526013506510340931177832709218536803989711587753731462084034703243094032997335288191983530587711572174703721663551237247530805183948337355212820950139403366947755324521170002898549973488229003260166576512386927210691706678545269783162097260333184281670892827074786630700188568546891239530866189008922871291037037412200373220609200862220483813549501782782203554168724138181984090230058349656390167881531214027709723670841363083031897565342161924965615200029800879539500109384581634276898117807167506038658178120637953038133136767101279261077736715710739456511252687698818609280552823028811879965480218938038878031834013969159681092279085817591333277664499496387619039147029820789969111697903971131766958064406596452967045909778324959659972341323128323893179799026554875106011096158999638122567185675909076851364473451031860600248499764607533163423670581687932445852372314625977737275836424798617021821743215453804548007613776581293186568240172824963900061669072903856414935468071497161325324938963039242297834033575122822607798896309520210911281013723347849067257437515910969542304185341642424939548578841370920819294677013722428570209371429465280266512724537685078999980104134523275370148218578842849591385126383661686617944332810601134958800151316336623951514972464480255333172707680494255955342407774398154103760963738418879265494839881828293009849256241651280540395832681721352491782720335677857465815541612746610487166716031054652478043391645286854516013708207242202187001521636797845770427564967649576635107966403216857201040583305047440268218531218390100498231986949625357072261279040245929664125277088696911551600283139325532398175974490972674010442977556114344137007479782345602640889481866693766709338562415944350722038666535111561693831158059896508436996321965240405096978406827233189681113398745015028596832344086311543547971168361253038459535469805405597334654883067318686523209466954280251794034636613921352534996919655883073879435161735015930364891119257026730390993837404610602976779539653825208972926299169904187269462561642561984999943650263280058221309079762304507193417648849581969700704533044077511782994200467420754875562335749101347246253677385929448413299812206697421523612141164596764878661892722434249516954558703785003104166831144095999310621608505928916949699571897540499539082036354055729532397545374094812750536617161436602993345524280295904792961684302915591107950383533661000353175855950688425962861608655008481178223027009268653540092384143802372977327208836106998529743500804832276803790923809034547891890564646100284744144702760094017168715598739475221630461259886873127126522600738330691255855362381414118126267957775772613278066685688849432850888116105174586257912466713071267074403561024856773499749235037374160442479686333247144958403512561911169894252837920853303607725051433481160764925310747157072998648513121558209892128473402549129739926169857164119018372489274329167068874837939343726042812577414394279946483616021241532350219066476675153341928315750591393901995501389820200346406903341086601976423736107301343584477474723320071224823279631299131027319607633590026463488267528232516992890102885372898893557272119167532084662257618011900743669093936198076187702795015263187330684327132898775072173365204765922549001894273629713562547019390819175267189756030352948537647007303200197937879211092029977814150560837279460426536467307644882489757473181661101086868170422858065504949338263736602593729478116764744792826951140163764151791331003492976160055072093380461618557514531024814951746903047254718846945577389743054514064718554083969315654313863189881989474389839581032712737151546060763479849452040652608085707154758012440415474773106022225766272237838935999109621915084459918027916412082948237679276484677664612955430773052025387718482084279263846137757876494411736052887755540514141379275444068569907667527676314691125019190311905644532236144153457239062856420884635430412620625756690266080497823705565853045591302265061014464402571025762068869984477923016616551185293734902777347723797238757960684067773878338289084934864235766833801656839257709211340211191957287440456953336508389483803186275359045189284415868037531136925923273989656352116509880856527186016739729260161407159299963897696084519143974952336309257699707667839370288353536241058482821861944085245082386545657826711765807017795446398757829407345777888237363546933552184190362133655154084482848919832157680748336528166750385927932375455820944223658191618479700663741039019336756019769808471220605374755272390150753354024795817544724160071934839248444953370667548233274720846943173951159381425704626917229259580805228164055869282536539687798439869442973648012971864289139984409558102605080323575965311785854259502675793328748027803609490106018790937136598794569614992349842341765405251075003278762320862611738237020607808421040522336709213450386361222998047976641007182854553845538784471371608124639114630038016148998532091522472466753230822815412555161948365661344750825181951089035264791632359063108379276266710328430512053137724835587534552844444855553848643800028134778076685769130494488559292946175962862612844680654306284790353453996544596397323353391493347418417571619216464111358120425049212890080289272859788980133009171167446569325990841955049519369248888086254905603466121761351726648317346545174812865462902290073334893215670714992724173993556948292619943674305050100565902481419175158077577292352225257839839664088911268865351666074535293644230873159530726473026374177990512745740181063258100466813237920312615277341625197958659343565112231836320842976047039027165339796806752498268376203335503479604123499679616646366182092123559803121208856820745341958728124362593999456192646109658796865101832274289914494442036478953933115357892625251720951945813559133503192698059318362786730619718752170762538191760980850183261347748342909415056974730670647517897050675828291215015919916839452888321148498839204231998151013741604401746635137482591000039023758220131543851430360686323748351455781920260729815648512033223669129006007521391995081070259626441207987754616181565189136380455329521636139027908956213951908896618239722173621855694446576552950824637643874107606591897440065431279113689586062946906585803855079641607662041398730286495796629776526320615868086963170779491357419378554418546828928279837933062291527727221477329195547593784772259918411853293075143374078504075789734589901987260365523121841899126732168467285518641583244552310014501325123006000738161398265686730110197638210248566511714883081746251129686711762039743446841017936050641269547412185580937120940826800331004514219625607726516226672430536182595913432420770221702998741995007736264665143123518425401489520458192725019990097547249813403959625172226314626880410832135508336518581869096995177933550520170263134104905923952782578169912919070560932682298792190833021783634980767682858833452288669768583880323277671343557800519035913671810320697744747705567107380653794464369181612558673635316964033464282180494611949851002709713722797445898719937770290932175778024199896131534105807946317509699569330524081067701766022100616624044408727323890528138254765036035362874189746375352702582771520165022792546677915546952122726964335934220800259486634337581968124177230768554218766936694337334298866591055202417658596654969506954156660150196959641193877682106923250596566391366872237902875197496501654916016016377380079810291001178289608494151207705316159868382013485957141609606337975452587067441155180676846402650085580922797741349812307425723032630269164491880130336751656767732487557322789272274540176715743252619024185342023496786873238958341183898718736634831403550841326956627671079589300202247172694534583812461323208884204998275313015478116131162728860258306681132806569571842530365586041260008329974395477255316224402454174963999222244734137831136389431976772573149362502497894948983721561973560098224787185917617383287840965823170363971546513126498827131248865270428071499587657753078376830110670805859123984019644344798021860334258225427631625027195278904368965931962179457860362708922744530354118886543412683938127937109507737675167605106550340347979872948268267874976818816010247159441750017196620923795897838231584924255550335189354797848756196498898694599805047271344530537196792160409590986152795294514822629783572437780063710320776687031891253569351527666724750256800525767882456254612233410717159181764760155986461775063256783895783840810635806206716845226411732058853985869250185655055965160685006665352535198757353097013768816463730916525366656036837457618864180964853728178303862952370837805261955190418797696526454523487494652979261854353988058087646510656959912581143616463009794885506143841506607786895550874151277141506089522172928306751128469580754550614303625358658760785686865686833871776022911913901053041423092190126190793953657653809525724994992912570360437752701149888660461022575787656002756599616615654405041146985883207636313276715876682841642114436237151429414911813699992089004974713810213391747359020930368803637101279006440356322482378076020070957429475493042993617663389308244429563808613353694113575698592486373265089598919132315032238590671627968184359107336107394266399155046470494304397184756347399344775892501728366523163447346244461821116006638452092476709426134111581439204814025170094246141829023875128379767777584966609903835786862499567746169422496232400608729708390557834614067451486197518671253970513728931219305184442347683168672098693906352501760101428056322172616451170340409122260116950016183851109834863085495689693753199975982977713079036808545915775428408223594946650117325648972032434431206640550283921580923242752834512826176066968272838945743419810092653779429249406191978050532260195311095431122863397214602967036006040799329948144738550008000670327317406317719714635849881078796653941307889915156490250532483420231697488193261964475829828747349917641399670932549500229273543859723848918334371958924515323787611551423959668871138074284491674891241562461355719847686797280760783824647016331616596979575183637450570200620919287568952899212970228314517524904249709669657176344650139846312332245349096171652616194899946706160670283452654316454164162085248395332232966162498898965339063684139038296775429400286842767625853554619728643648091031532489903706099209146142446527761983729336314284854626898357588798682662340049501312058718735882448534784456644733651850891895036508590154485720199910422185057663831819883854896764720702982854560891144054254376062081364311295715357777364546226094743595403117164057598182028355049562104033211542108289910241700226428919648444907822154556537461342971060063053952927082889270142904828251047739667575512485392991942567981399491645732188491881862306163023061324899677555967817567585792300914350479743027289100536070611607307382121716133635734478000693720631058476831002361381144519614968501360514748145974806781183563581334935187493998035462211886693214313302878107567563589059904874161029550882967074730483426850083639784189119912428864316712007126003169874327908299535061943307043018509992401372295944240027128317429702532505784254735143195600698065515779279353897082422282473601307459733606771504187487343773795717823155233171029231401535083411977744998282784738012765854818396983868692866675071790635076107369780802975604227905069148842306649802175071326092537292431442187065898616425130947077045345444761153295079373229199034303051935394096544522575603153501065996393129823769888853547573560710033988594983270220411069661159903792849534688038897956471763891256310266642714279967335737588497691449104484258144475310947670333495337787041926977804182998522903476717626148081368891932080566300678929933214111919989030792066337051615059958081731548495113836978561022037276611411998836233686998626152888082803064067158437736925375247309079809323524803526531126644680573445216892205654590652701470156837162276070485671090051805800158657612546175092168568608478102915139663237680286232923380729952539966635046734856734547873137258695140839425613224605590130757082967903379505565754860199790205165065574818947093251924303472628779461661071530965077696967604919862867423062519107548426526801688072029666459429234188325903593286033712326279524817805452723067902476770446443150326833549122457578397773813756103848518497900193343062245805318907875269029775711511894952342121786841781874938938811800387838024721891548642633276449554922835116155642491983483677546855305791690682771011989555099141932673000804952304670425227048781474348981784071971815124412103068987393026830125110880338211070755023611235228870736202421328051515311893582572772288674460032654378580618820185612803493501044672355973082657827775606462055499795483371388202028963777910996679106450382577941433740330222004767804495186053564809662828040333689209806835297067836204322604150653726517120302931035255145698256815613502786003541217852150221923544964236475803097041874264372332593509474594584596061191214825782659679096378610615370411028235973202840717577363993792906913826715812768436180266199857767607268076698293930178825112656767835737104638215489840501221699423941557880588624300899076550806148555178281772524267809841803584440886097128966942442712658333762445587159087782931131600654529084920190406510721776203750611668691025181817284810498509533649324403423584361891927708623962386685913509944943179350436745206998186225002660036403004173585207719159470598507044431491109543056371713378894393546646777761742806352720245599022988582319005410111580467160595000816227813379656342345764988049371866426755369837734063454865887015991155038238380553651493369464927007690672153457135213718664123545441034920178714883502351811815700355568746762757542926138526899932565360467633192822153183105713010475308898710334899893695753980754920760450104899122191623329323230765271675701880307215304790066650139143577736435151820302486173731281514655017542128225591488547418396135461291189786738641841530211037457333975100890357955256628644102537536271380655086893639218837613512844132720837679219728065548246675542630180245894449075935325238822140174398576160725894956191011919326721859953631885259746386827909655392115801134212073460259904459313722409899525560585205716742842148582035977360366562502625337612669538837710674172818939245272211589179649227727928497350214174147089673915810642129484392064213951076545167424384203256680026853635737029632327687746825714662751510401513635884067639936519516446957882442352953911040448568188058830502171374578105717840366303043804748500498137052456289889621044597034722208626190670559744864544929864397913914927888699230576873214080997052470967609648240005068110925067885233348709701699357910328023632782117164930638930665581893493380752693130384154723066223057957524897621417870052135296853743712136172812520357188388644848315560371434802584382555755309037307226096214294200405379462888518906328339140464791037501684739574985851526622711341388136961423479940912480222676299517422404682803013936580896112287349493858335627088850128509376649339092509381663865127548384316001277846930736021585689850049806523561171114743858780675661400435479220871080918633090822473883447740712068064411418366322236365034852094550211543635060292705071737484233093733806821046148600202400338517613677311028690589622231287034503488929572049470505561379570221507454962064241761917730520653253557939164103754800910537551939233637575398179935711484258721255182351199918245565890702102661876679653727706124683376421552245136464057498189529348518480670227826691895214902201346058177325120890296722688006529914759264913392166044184172989170687968816904872398835261643451869269011793631240989638781073942099711067793227446567723720032646995218561867277726250289836478498881295950541160077606817633418572826306704976727784418988950840461476488384643877860194852266957471816846534948008961849932689778057049010951052631977305446404801550244254343254489538272553396694813410420750166378760391873767036577380224994138269658674650276163651125439238746690249126605550421171568946103926168321980513382517415214969962701072268738634863726371952037597183405537250132501622921524568352191552774733750422216587715359488108678816132211894723593210307206299276386558142679447198464368568122802489908188489624327330202040619265713593199964428268978068154805609346197410250980201935103087363567809347558637511746401803201805946119017440063167294711990083872413562548121501124874743826568835273044134494454348259045798210409519149470170210035670861859810738004218576393061401340381540097981778327394107836734199565348037736585399239519843068460852669360408709859648959423260604404485771428806956288107876404625270593698167163512107680840196116656434978418498068475936497366687738680111195608415540379392449668112459961076012365123928504162136694860421725356302529309260440665404152619255811512863234117576284896877869775720621151778420679802648296858863015742581203243324829857833185137927205334484841372247532177737088643810381087493371008120769828399053365808011871275888064618896573970928555880863084369315248904413417072982923086947030615327986050609600843224440577949104086715503635270173275754239750924976365327422703578709614894658669678105703212756951198821799635664557447543168930470065408913172433937854124747161611074402252015399649577722977851263824984128066062584224234855310353367697382697040293225757270057437699117394421203724310717387596615208855201175937340497082294488655599504113600287298543572240946232960617264899880374502161144012257864814030343335288440393478165608615255676463731054890545908502943065873379983153639840071330313957196280033937359780228134778268886271249738536444165257475761041197803439388197620829359719483735713119952908414883614842890104670515510851072194605937230860140057091745887990961926684125260434826756321874528113720702017945846802844197005818022390622758586016505796806414188885683139324614370149880107348218621304793812803170067581113191995911978853210399669842834399361033407892744344257430208539557692193579186761131828054709102368942473773112072353080954722657441311773416527188488005112092936592014609322964046339378132610056493930656644189403652435641541298789252465090940433731656590738595259966185024570302197637158007813499887983932582492546475980138858898868241391578950885273671992586206888204673401964569763892477955913076831187667004414943528195087124815310232659583592112730103589817090674573919880615865012602268744175623611503595154769241422470411703131857214670674777751848443556808740928623701564226842923579920608665233348018846025580854123762462779296690658136092237943914364119566387649589105110384953787371070431510473603821826622075575181970932251704140728477084066899412110067325282175549234391888392463954774541136219196729996302737208747259311767468338023133218448624008128418493147867518943102139760750465691301500655975713737185714384650483753947985709075327451525902120140207919029662481420361251871747675202396848131702732872530499993673331035978442253612290305032729202619294039540057153380395746512563696356743001346807703413940054518104479290498973640111259383772708571867849824980328573016652492395038742809193136404542549598593641491673469340775421488044354675833354349390063204051768103502276925715601219273354494520785009404489788037160674048944010435400945213974210635299385275569576572065697373019137899809275147267287689336718573649816794077916874794602864560623845438990211020603385107728855019987565077424632568166942758798139474301756032158274940665417666716522391273374484450786242801749954528996969897133762745500328261645304268244504258620993979825883220923038822405620714834567748717773636652734989030839524688599960092625984365892584090458115315158651526570012245831855808936195976102196509399173325449733058857765919408321319598849666401691874142819143189203434161497737556620042047954217999631002494843218146942753399034428798411730204578233817463118631626038001385525122348020277370140601010770750543328744431508739657803864856911505012778090370688907346706446483946464741627318782525324200167495179035344336428459608508986295529449358671976870778165953712304925010973554535500063969912433434950979202229693231985570751719894350920328656742671871085465261074959469229439948907599896673884022110474651331757801635641439538164066992863631241659984013578786503569707807014497728232315072410417848234199298437199119016934263026569036799317381281167543136642900623632372345409801581971435272136013593332537937773589876737174265803989933276307603287645982859494719691921107908250692953205784695138522241890398762285594695320343961579382028101496811056488952852592068471051192120565761003619829140827998665216183294758045043128182671858404562643272442402740896303480064587108777728234634806744665382345205354199152366494702032301106151366349164239456316858149498117818857824438995063034728132868462524017951196609137153002144582173293421679901699835721213379680705221197978789891076405018933902010889198551138864133879513892517422784041481276772374575574456988391771041640941384405036460105973849091331822142670949298756753663638165111645792355542238104437709729423329130464687711870075307686336526003477445899020728839839414421893590051426951467597230419709248704663491204196077177142767351213357965125794546386169300369344998151319935712505403861277989367459131132313623819082003622296718191331887575613401450633514139897056650325310974560418761899941537706957480900692372377543506038666995845894429787588499877303619819236149129686373603949249552638958241823129582966807683860018154090336545035851074353552643291777507542618368333791023163976654361199807313490988509158462965003190255497755100890052934996059786888310708663557304234161944103106659982805331240971877302054728458644237198426083993702015909941935007211967033043495422677463413335828808268546388376542266761004315082950100955936771550301731783983091171983154697854994529734385023098531828208733463938645361676372305754424484449241990088966572648469549385216473399159599521779008216499718281343350197585305212145879710549711823163370404751087559247733602254093938825144107973819830345823391213032663791825323680418617505325375113284438056818829666936122907090033183815508208847905242426337176963127265343287104838754822799991784033709641769146237563200398396365684053934039023702585368584395501337402441437351993117134600754283624009535817463012836802999504633588104545230991042152385172978045660324491824772286478397515461107431976697438177917900575931959548397340461617145066599395540803789292579485815645277364066001271819457768120045199512435402887921229024178774884066428214129196834842387711158934516661173666752728591735675588985981811538183007221569217505023323255969509381995380590072825439786439823586118865359468277974479147420541875738303105569711943614019975098604948894860338591602447934201573081304211524873965627401294979201344412894734579201534041146752557794471676643202194374227475232160253136339286670585543881286918449121080393168757868151000211683685728560197589034200545808700761385991140485818899165212012385009320856519481339222836133803666526877221097125205941225490572371336981609034522404144018147208337569039937986189585140571725110051891820608570385012436500095593537445945778032492005841251088556723642111303115837009254127017596200044549116691467385940905825298414785326724579406524701355754178398085166332022018732514318542771845189965109597089847653749683406302338125371633364120594214580715377274520844463449847252887622620591398301800944745859532862371522745598958795058943960308580819226421009333974348774362157978032095020399177565996202276461104109148352180547121346495142937950411541327169398460901167015040568582839080148126462640250911882469684182355713103466726197622109224947623066564170799083823230831934933136517095410371546393450075427744804258512764708724137687208936937081045603429814128427786003951488362105341272696208991820070316852366457458832027385482181813322817687363267726355225569381193361006786884622543645976194161834647162548763940657440978387499180955203103376102228764604179047117855323865549328280111084173741356794245944229297100399301535552557659880074658505744951828867646874302007207595605255410945799984922551236848660778339281953667936718972949992749873076187686654920865215636609781865336164043564856642248296689117074191977201426150026553210380519959171348470451359444874765706496836854027894491506789431596027211712181136505845864495039120583383043467135938415067767819204579657372979993444560887769928648550451284229692244602593592924351390815245693301387591531816221903813259767621222944582949666539565437431300019657348163243882411534579184992176884726600788521238299215142966297949641864926198815879762333721785797811297613441469809404939180654196477215024422387010855611709275109295239868199184489645579894209954171904238089944392652590197257663305986230805089456318366843348662068696911770013488181239286224691469054070217095750280534988497059941889817756384853530403890907233768091448840329659845488763017492157824780850492450905234092682766311270817441676107842830263944067075376707242356821504571644353048146462225431921155515427642211275427000934353858297084299903477722973466133058763661371066714975356169468231163539818077634632894033358542296159039274989747537978363401245059780721305800326078281943308168368843750176672736839349880472190169105732404667857859548806179490845127974749000076978954230378758323797503290862812935077935390600381053737074001468513331646908010407388427903435122716793925167742354234572407463053356023843754699217377381478361678482239735102860612608687718629144773960723854689052451609445206155443636658115384023303121077277276515199612321653661124917900593892925610234578710275013703163986512866919455198442354540481633013763132281952844534755023672346812410144455984820439339989905697775242660146685901156408033603434322929138892664330331082952142599118771339661220593375958132993978763660474467212487685582627221002319494262260762463213554742863851144077518079692238358197058538805184175485705769132523663585350654883545397824456620985476769910660920147245439406211368380994625126172657534457104490978531286317181792460249474983439078165502613832996200403600271023613188156914025155623170213723296402413812940087811315901186097346875949775973273836519365827278547928256009604123667872645508884941675142045034882596512244775149295578243827712920905685887816582669198218359583558679051384277323034331054087184782928199099189338787407434493093057565528737788437345916512341707189260297522152229199519528041535572444972681948622390348552590062038775072342265440241139502488747340212183048892721334669472095388296512906933674926311766318987506008885777083082415981836671682312233718096109101758704131038207425281881370042164655543999159719995316848309114526171482573079704080357636419608520506844155069345428492747208948700665463310030226856507531085376210855823056568586935688357499459751947642818972369004467256063721944864702746846583206323888483817164041366024163460231299014140007974653623879199341841007628948802938642952823060003947798691798121973508327274578207539922524344031649898393704763798181096392307752075229689657228072985529938445457121151031399616240381203275627001918236884230620141011707260858595956475655159010267018083932738428507715246382290912339541154421689257615279049576265993624806773859864699230792445065363330673538131081421190484606921823044643768070993359890794753873249302487742288902831585675517163943585189937046504291741292833514730753210298016980896270205168675442225767557274656059324119565442320864606726217554730705584356771582131398462847887785976251195128399822782559306653735549411239394566509236669226156018395194405503281333404816755491021388537768233643892109299334388795860005650316952049767372017364045808346139318866660330309148448854098503121284366527520983349160801218842022627672199829461751428246236161409395340676663907826399828144853230618300979985830843437570985657355218265589339467323167351648839190282258105541879564235897110394549468044447656486825486752731875958168096834505010301920006083141749352087370277320985679643702532524970226876795600701886210871504170002083222370347643271201942708294674081261293226317910432773374455153716394357404114325182736421770042925934496005672504382487876845952539461203216934222386581585063172601437974679256352591674623956989178229000309496825042513221664312154770434973074996396070344899113655678592596408962737284736897360984862908060937205378050976547571415224505411631979145405432036763368548637297593888862307021371676177357172484134710643073118499137730095870753439137406753632182332276176165422789444304069843298953476029054852485201869646986447588855254585109193046909805923525428122484148209488373693701029737020349598579853195527492131427712201697763037689370668423388008996975962124574207013680994402979764879487461767497278876927833460365842496463713888265877475415849261560385540871655775515830952379871035172688356777228664364564708566968373181684451910403820508001864609653657951890048640959923955974226768340700319198902334196789776571753046871992301046327987694925821729216192577079411967484073845210145273647790316473634100829942751705656916114356665044403877478478516754099654701622666812812504199160620956917701822510865371548753688247402467103795139283544814500922050395956631415914713411213717022496029220228744873462247155478912092088142685648804164401635501203052499971106024405860700639950275569133912852130422908248991185988463762090909123705378795701885619982747482704958581646930461486709582013843785591477415857407580264414894178788916525546611877837798158284107101294268743084314752192761130086712763589541659381746555341178571494930280311834264084104969642396965946551010805329520169521810837867503216339434543877484740163859893089639485102266225381462856745335121008772078999118115773812513975950771113709837504264381544903178885346440096271231189201250381043576014279084094815652500267137155308588114912821731404176735578085691082809069044212292681782585572295528864525862647791359577893507906981853063999194210489921052256922342997700917630405075253588840664073406092289372880684424554739350583829655143265210283895188776824834475492161973486199855833233659154268453925101780437348689580544989239574632400944009155014815687344822864182707336339840850044685063321352324065319882340685037828459196281835516807323602886707041572273776381037933067143927922212403288407304164660189010508712562477784058626659610816565161187217594895335145883102160842207725580768270216245998040556918027490842081698725027026947864712639826848355086041818555130810380558781898056534317410763106454598440131022390628336138433688718460242559810667062835602952891314609743575378132977634994908830297656977476293570648488538293615430807261687344599256430966563505519214638024175622118197438862395169824326212832915758828732841695582731184417715735900126967581782092224803131048126157612063423732175822760706836614319707113938474967487505647448720603375707643919207661117849757157219336426151348814054045047998707630786342400912511744758936535559279357412104707762635181101198291631136291053560179285972000744049918553987630305987249919001269776189334529522057762905510742228425985487728746144890688399447795980968904134567696883756026189634720512521740276309845676271686379652369303209165155934455350847189385793535036291584786947268828478785663936856513887126029752106903382622386426244108220268338145100390724787883057772084261486686990706063367041944917520331880627078173201385381103706591329817889863778581124729281939216249211149266897356659098709958105013545070118858543135290890777543685250690485950171988837507682995127753780719529168053007929138368927536509788305331179108319964611845796762072415593764145627775059564129084432626915360128294239365392931594983934653841895131279980734367551587954456821927468779446811227923355531203186415151142426470152373926961744170798261543850838113679856043054947754293771698594712178701480603394213301624199453298526182879558740729271973425122548773065271909920373844688267266970141261919162389727105989212395421217205193402352081491388356593406615769825004934033856400753725617596536030589708053568883181132243335485970993634540857785250131331046468918005911921843530738897446631036670407971470067476129212573281525438637703582599982054727510677955023954316697229827499531673889888302949483319580913618547088962300583018526830529064326576756836014860233951431224896212524840590571720943736815664893885647791218615798545399956404132310556563839186131468646730009920117692055514673211836481010852056164706647555974466943350300166879390300513400971543892761696176594006980689737845879860346663328138812942057391338447688715051254688751112221160480020343440924687116627603986764828854739424829262836177947365233338225456006366540034750007198547070468567946037519189170228640487670974817194528877508882608630583994708121668571884941947631096517895331900023992441541380596868629025037754123655505657004828432121146190460530907278415874465596037116474852970402320817259327435587251842572958318364639487877047443090027927306505289396052788914413418282086309438110472874188044147989192218011832241364999800483409180854746561323245759436312822298258557335626913724793519188468235155261188423479165565891009019953377597673242539287849193056918463859248874829088525261478198191537889579014688884048532474745443042742168047636736669657785318980873882801284529791704211354803361034183034814018069789699188411935546035418608052241436526784095201401632637956422541661115697906273443622512455975340655238875088156817931065185213314555149356178227209621259809653478035034829199496685736596193592562496574150690193670262794426211641486051834205924395680246947895454871660351957599238901305812525258389576157544027607897417835880803938883021942817908511477727541834060756063934361737523861299286999572787111109266270339250307957171226295235546914492880905256881891746669199821915448632990242099672489502401074553002608307028284073325366070283745172150760010237495469396914477905491827975338082903876006482420247313202828801939134585984582795575991131189066618109764302339948034202773170745193160616898817257406646089816852001514168346624007762068689253780043356174151910108869680032070239960504812743967992676539628582398791857208309923682880755593851533645648897524024905973126134316754693921380001525300294394503423190983244642672705138033340232846647091594101133095058874043679880904882927348404371335207065475468407814475628376457411731485143282366531773412717164298064763855730132663039451783175369756424727438594534896255166925301556345874882540007686102836956051461708301341270751404150887475702811318325890332766258706738589194622613226124015305884019106088540114028981481998312998330521737141577006927747024281819283395577626274627957854290984133434996689671405335040281244030624181686417235962108978737027583065246708641062648083366348850465721752272898454875583563667403062816883079214520695032626119855459017891458858903246006990634442810876376526942244498246901463756534286295218249916141324239325987641162831138026447477418438004067681713842702953498277380829684773897422454968619023426494829387779755615017885645160313460373552122863837050171797814616049042094638202988103595807264806723450482808975445027706475804026400499485312969445787081373298824247508369212920253253159666860961090237124029715517473313200123991199584152224527346844915626457510492056955244986178258804540221798671597993346686271942929346449183141971478462302595135025199250130176867923979566851489376675898752624678225624326195980650553269680991735085686854823304744182147257238684598928348498517378590279408569595878262381680677466354409547572368864296071020641068835767459056313710587511491889988098877404342263823260070139138901761649409855820720798270921322932629088500447484489925606701443897725120419142390201098690450752230589985475651425640899787765762549989618890443082286409362563013712655918987101762230649359967181841407985769146484542421003822717724511976833807372701056541391975543456259567754048364751866543224836686216845680313219372228004172270890932448197450073957810203013038728433612396178436496621453062834393862156770040158987729584875408696755436888432910883188856668346989702008786534893982901201714586542553688422211460560415270031442206024054912779063340341416881474852504695175485853540275331683644535976816602463896267478935885118978095654528968114568171693011260746923747252657302222073636392872863190150570169182426291145022864016413072489523627351619160313618730594327269390923515417890188372388093909779531893746285367619326570874206707022639600257559628943601233765428688762388457977487631592352240969306318376460100151262098674472745767168097845385486936684236938221586582886579140213468069214714817010593175531009906150861337534778245155996774030287787071376210513990207538919088813816829804672835236070385747908228738040477549860800827007648160793510449150728417673177871097860800580025475807255170035706922618820273969654217961018884641564183835105395266765675082917245020661717728466923642129994991067761323601937921982666126833991723208640101919626404341077242359028102050119725823295868439732629910207505899738936755753801736367806111689633899697967921304935292639796539504480128428186591273847078784063007857534263431487926460487165682046282726117865593500456282806786490603106163223782986706109922353847657779633518230941694249235992886806810093443604541550988941233212216584327053472638691488406603648213348014147459316584866119917068730746879924212184126332683827404477896098264430401728684046509972264110036763323324920560819163784642344509634457456890973151842817197440786925888072544883890502640788923208061596487957132078342139812456280151696561106335258490852993360784318370329331266952215303240155109096582468733079365790896663864231285076588452011332745849473624587964350881940888783788040455071639321478492047036315477162139147109754914162830441279478307552287593755668024005539020415962726492276209177810265288614654829452966612977885702292440300277308114544365552939159979595744016697556188079794153440532095457015704023658213243398628491018759709181344100975229620278962245494401711032399677860547262123119133070296408986751438967623884975950731619630122830901743207072703262597000893432252118530534978589165922344644789557003246452214350041754281840129792581585795027601045055324901818529609619933700150130331411801241441677924567005562591922906348642890450471927241205063875661187656053241995308767191091894788031177419046253615075581899380108646969333007388710072357042077429146146690112466522368977076282826981372791703408536458828140696371128841295742446880234209012217544833329222449256490527718374813717092482602997704458879570538329725643505326774274783863474396462067966886876131112747174169316978358182141030580571685256799040882692155160009971913782225583997367214849720343403897373989796089003071709310936434687817722560930500091261223503204955888845387210132632878896192121611215380975930938638249798670024761672757818712260438517907992098602542565200913305761508779813130877120671272315629170677901153694114409767701125382848251363129040886373342198374235713449201573606711476199744937386748642893723600910493187659059957092769212924612011242132861050054746136888812982117610778535700944385599398623414021795010378613692893233143293420102567792643988305973443860135465514534429248581551272366957877467517609777749164125594760833006043299681153403789146732298403668073927734088439698357866206212696193791562580857124376422300115235809646299115300134407879752162095510102019730687577907437671496295064042504630715604313257280406730787127834848946795397633168710446612662769102662047160942433816011925680702536804842657173385480680096326243816100419837950096778821523418714025894156956597523974695402055285337924513074593821278448255665947994969517863200034527269855514284985750710167582840219840612736445589525320491720308674493725408764081742455330536957639971833891792946783382034573259059801913619390124805787313423083125523749738149967298672466441916913234400096254454276897697441758585766720099901821092873484629162481701995465255790498408274638385780999211306350770867947878419211181153786041451359665376287818145179104320122373672153598917913087967842218134889577921936454922673934812053616548261554739793144855640359931527277695394121116456361138772937099517459906180685917416378595524108733980582240862940152305413634493901344999602857221674283039693502371115716921902878666191654204249459117242809086101242365666319974729174880563643885139967931973052493009976116195735711877607696765593213848656098890049454084106616842639996838485316445739250763044481533852190401331930891218193003379316723319427499905585841512525902882941660192715253962194748264022253610553021262745334857381357391850094203915541020126646288762594769673467322589427085381522390169182525628008522611684663219567031223833368238756187240617366763470829263677249521518618295198741674586234632861175459368367812636719805630963079192537316780330442192146771344387122515218439970958765131876866424631897054811928099548884019374199790449163621765043438679096703071711457870617981542768033814221990115220766370366584745337579522017216143667382142808678000289188977774552271506046523069961953797458891455091687666340801854901545575411133825841007871990896348596788729136003106093157997528532781355372026317525164496452593141895507861374483369107119362189050651565712110725384255101446611194521028441669004209908192184325870179872649469901604414851565657983409731686039268639861939385001242548277810468508858182133880780486245236213706896158310497956909295777116088649662045651509838509576724107159562353606283067326045087044304443731618176072723031378978450925527147971997504328725184153585212420674007550965706196406749863810783995259129730008730356249992897071056085055627175016607517135420126384632070750139225644385163872386082224138851044306537161925374605395476931417532993504946538479193306911795720269829573035050087088462971701823358339895562369302489187139101871258087159538315143447203535897212162557344387838233148477681655374037470720498428133221833439617693684488416892295801627316615636126916759150314280212698413967634773936323410021500194974894418548996472654479552564739904294098738199543661778696373600271040316642798570764002270903298415928508995429323085828432755355939390466510076744074024989838677815551567921650052088471311926392987306410015345897060256043097363392147441131641746672095365420420389000118051411406071692307082470690875614546516628440101964631161080253357665743979390231896864204079543895893803409159975460570632066413855581409722159051749523683567655051313528984530473537464115438387819312523204049008514276642613093537454808441328941946379667992055020886449672687951207001497546634820061327483025810124990440630651967624520197550746338466994113553920433145788313591867533936990817840601195128693398822082071960509894588005752333240279607100164224213815147505953333146057641864709910786164697921157975183307816105046559485585619999429019822852891644871911373416217904723768345791493771525624925224999616250514164539997070256275204709705293092052592887670805641753653025947796797559256818184813551468642298408776504050003811798983932538442933851980750476853167611877041895905868599691266764626272317594200701393553159863784298994102620278618839341269401622797291929907191520945964823401109946912452457048274291929097855370831030981288538918791400946125190220175193225717835740173250601895087747902708822184940144086281720531026349773496274851570402367505030928328005967759308016795576039071809469763865346764180233563779149729105876329060727982513289605996713710944457473575641535399258596124059136527943148802330618556507133862693448773707896934137577323956491025752346084852138589320954765574540656197350543270410791887493873108459918817927943137510778502028964636184171450989495693003451450730791727692817680505941692009478961402596208701174164455682938322408670214472603949984194623479195516395102128218542051306762182669927471077290034105885348952372595126104385424864617547746987371042779620832051119207334866764340115303920669514892143570460058310553637102119486273929526101256511271344434573713976692993147635443995534761575502924648278141855609766827532069903875407472715085986132123291690331955500203806161795013178764987504129353717528617384445296835410934295072214992281366371267999938137994788101989429965464503302237000470595797742201854554582646255252860137947190720229733218232716150713304562916975127080614765031326118916662980858989039815820612112921211070063070772136101012197070993450204357523061289188012005525819673723718006680127502949125652068612395497801305896093173609834238167183112774707407881436821752139657524788853993971888224750513616944825998670746809900815272926170650338380820991561198787571489459627714405416928165895374331398352111644592929797191107822828912710392111569011711773493571784947639347438662717390430397620040332099575076665901556606632220816739398057807081949399379457262829766865426645830766630818845325355676203209804436054842919322840909982158204902862202747984634534489451486113717584800436474199845189656425593052343612278074974305352893272942601125642816889974551698920849042378677516250694733044896893968488863323334914972478474606467991333185876916299502975249289058591287318211162347668432080286677368461793316875535071002005624338696079684488030132168942003811959824444656656699643742539142185937204334282890500562573810386566259511076567994066776988185594170187993114162877251870608005239174398100066685580231511160782704784022722098109131576789126494466307861695692364095318690084342085143806215882603129987939966332951365317843658203781125103630249211972337541510555616985903440497830614444480409065158572671289120003376825987603901296739801696832910333232934747982873062334811939123044696690494924762498191586019145515630585889854788736885083100199097732158068485233890847758352227054369590913641414256416775078012125723849857729562135459293885141975865377683533960222620444226597938270008170327344923607368692625752101103042831503822538047609478558995217895454295467995297559713970040794873651460369940858110076673651727694258187594551999518947182287339436852424033003702911905736587634840188983756568184459645786269469904412841790303366919684938290161851586771075755184998092430692354356219851926480190981485182757816354666400245012263605913638383232069152834016810628109048602505528051770162275836056810721019257020423901359236959917864235112183565852901892956858427233546632555080603776206913327032189740475624822380810909950038269756317206890271395599869505687633445820095602087083757297411551889149512965918973585325734189740426006257891444591140994326130784175733550500025732729194607636133434374588434413151350704134430591986044783198997265843946192296070912742682104690006132030403863516913950220144896410005818625163266763545581986447269017104113175633776621317267822104178163886388848753677803313877555746791098519408705013118397659120878005886570340940131447506896390834388493469000212163755089277295079161649160757580124898142103101714826273944416564132649645038698507333604844867218772644541888639935550601911259527500249919192902978409981536274649524225795924155011845906712421079432769364204318272857814237894950312778290951082818558529110868572350722025660892967078238940024521879732853649207819157592414914222766099653515286149551903092710631627491236386950753823186599561646108432516273475926640471723560893797094409963750820221162714531781923152490306214208136631315131117869636235816781220259718402705370157897800375580584536170049889257276159862419607289011522249653295553970207226265288857771619408702584695588817788146410719052363977098932840168070931810856317578333349842874963224223003827431197541612400321082841173376300346856563338265466079929135117358233591290232775301533002199799600110215713897899054724279907940714287586948138593949678968343618499026114311937691700887199774271848626331738231626487562005642105610382030704032273821219124761841358156690003380449859047126021076723318787219245606194845318276444457160140307185823722955578129119199649475021640578697532751939184807219335091835327698932454005360959868247430498593541351498411958251924271826479709988675128482556702626285947554116219296540505979777602972807618612658066891614562065217775375491297834013027616440061116611334980066242540549094513944891625503759107386235445725687009348889205035947466175128112149915040936506136280563657379687355452217368260430993172822675286787575364469813876753971001348589234617740447324931970968968282241084259278483721397907411440814497927227856543703278736061341967387502297054865067166228108640947766083651389289928407766277854682604567011706270674136261765698308517314365836880191612832513794067586082357880194851863156247247839070771452050714998383584591128770591958237595663596675769517844156822581635257373710310952133389760281667526743062391894345946980516483131719795710703198030954424382451729322059916053901823971112110891750544345467252723851446867970915000960854270626567586660310922287405984187286359792849667267633070203128132500182082767708898340795870126972786803363127274975686929720836609608313688969064558237971156628879663172965689712199247441775418051989560133093018991481113376177049105059835108467572974446404912735750153577337361970831703237492895922748309628837196841315729030874832378406012877220919749078868551839040562458140403561865003751273749775479681670002586108258552189311709615948505835468465921195855554097346328836997189267312431577182601277678152113278553128816812752817861113466842469599187423278464164371968620272764872624223930799570934825222342495153864381581279542310733131978717374022057102059766630384140031364474455332471177952005471848453481605810550421360187752638856900211655866693449510673250279213888619144295469289339765782344057097411687841111141349416006341648103349674110778336580339728228370184556794182583032946858942732801611068106571691996926032880589359605390952290743125686867518596186737788124612712417951016081011358819535020856124601068501981314496501202123130833093943004794951763355209312174763273438376949899009015616426751103678891536539099651865868588586521851642287319493888438458102498162855789920797582823920776032618441094201603426028747711595983962033051123039206225478255663611511765588819428980456648753915739486742796370774496881532913228888591272942347640117687514307009051863584977824387899563410412938421642325324618756334461897589795168778124411027893580308950873732187974203229683776841920668410407517046256778488035368212959275784576940152117776076085684958376675906734066282901813809787045670473808118277522720284152493606111920820027024484832881147801997670980434775604873877907389529608899804325775208191588266969152087144349151902158246021701826480281771930830129723259872121434865163084598985966655072051531214185033716192550909563390990263134039307494414030952305149005171061462943129868203709177816254361685037956174483416848829001876555536267522204476804683405195944582403884998028771957891415103949166013110357348759205942884192043516225479503075365136729039579325150382638245685293872921446775835742578182463218392433215813456548210988127884796849151217870311774693984809114520386247511419006991326351672986399486222006506195889476858711032540444341793709005874321620386889976249732115918687279708620526389295156829543521139039856518797052653363599030195923888490307443832736899258395923168934981935027134016032797119176420903152757557523683828902577418843328018229678058125236482947627072835612719025298356759264453554746505353834955063318101556163219068243994687499815216622872112451342302392745430263330437988713084323426226787173862806670717814099781577360800653842247141717194885854003537828814068758955390978355183757604322171508424948791216918374272199709944255504464494035004481582797340111383927446436318240517247828564579823536157069019800761414067754814921713937099179261641152473223139391208349821847062754655394620358931903016291776160357417799728221497227836661951584904300553305636230177519536656105739277006927657920388501516937684969886788437986782833731225090634291705366870784770507346996679519753972377803743579711484838196695860741906628774380623718452287819993266669555794161750109177377141929178672606180669917611324730268707062747384771399054982093271682728064786573392394772620858974312339541808155725387985534716752102987398912165179871433493207815306950765430016781241228432313417042897906239197818079832128914537000222807143342718544483520641973729064809427659060317728395699755743056144137006972263992341849200959704021980468714074897102767040283877164984565685417831398679089176929244051374837115320532883986460986608868757912165732552472728734527929694761050545849631016243114437140388317654765118867447764111985761938426446870173249133738082910691609938482953820560973306918495124741360180597675055159602581016398244013838043084963501602077555864438819668127446918071473967208058907423098095400416051234139456016170622199142268526490203558107405807206129888673884784667501272481434895173069174294824153168994598335075112723059692281717779547940137511101009352885811554639503123995202169549966879333703836018875784281424333220245020660050736468887867057886758090219730643536340219422692739400589976751404482761680961144742017958166143357054280016612824505982475892512026687456131418490645955958869291736278362932891380079754728571946603257533075479114571692104393994899989089425111388686086662414859699656664985991335410417084303830972551980593965130421446197498258563275020168990579943526385407193629392117034051254592076897616204034697153431582808153769442523891516263014272091735305805877344397158551417574393614557483716054514456719173324405736019999247359254542896942720158975045810958696594271195430018687272176402217481660909098507858504653836845703871389720309226373937206587936639876092954397123134079629678045070421617808820944502461211939825817732652353615328297380692735986278842223186567726232141644812616433288672209921916420375070984970793710402757949304956518390926113592085267997231796287199985377292564509341156543865563551205533185804733821782327045748674635242274517279779552191896982882007712703222853955854113236802503366826592100918514144137486808883615312654011408074209242947398248144572755792353486206245064037734130372533030570060470142092384383478748300375873156476358422139962639474866242581306243220285742603511859211763885876928809603951349436055713673125051670662783606208232066710536385935841723557440076631414909116426643261761704415811972061913348816326074374163405499602428895467200794802521699116636837121374529797460806872121901800788168953270854648871253695871453371226580928347195477211892168520174888001868848864726099648816475247775769049930585936518119894989904194889128097364575950496161958438216431343306965354966715628131164815432845393176903997222297815705181971425981195320388637021628228237269944911385594509347991395203229811698042574688555539485840537171075207897566857354619806011934524236652915129174765258661388934775388565581042207036831222119885504391877185495844109926639018408931929499117605018714220889881834490741025542336531282186207164825022255300332794812321191996663665472320586610994839307659868628987118563499459761924035369350833446679022602778990780073086869546854793366010803235021429062306556809983532703637865504716686394265944046424575540806711377183413554429709802976790050682097718521662697816086656726363691902883625491537144231707345463843409587057100283079916186932979669214359662421246055145491675586148011882980189009118526280011204588607030814822774476049366190299136113943890816488141299699979357342725551655939954517101416758030675264432435580498339267175198171364091575682076613099816994051613546035722075420437587498892654533656657257727458159718216121914601553706139698783218790296354633424607101372451875715893461628011332042723375196481414482566504287148497009115197333681692087682322263190637192522570873886437120059496401031311369601728145377609733278451657169800211175259853755739687372580403498540110341663770894819597918739830401304976636224316052129206881038964207259660506240254408449053622331430708751180522074949971372919430641839085081773801520286313089870891648093802392017510227494855960112526133706152508449408621367530827022667687898731690739883286275801347191856997295457371707491055319486258330549151680119144222360540149510174218421402558283587025033029121369457113861370955092900748179824913212222697738841281229485740851757926048743243865917917800249007699086769314912347612990121582097553662165877855469573813518168493744854217446570998630795706728794136049531009025350503015107249113783062291391639198462739690901153006079296427828545165954479960120688871480362468597109333659269880021187994692356122912939075920659721368406819691267929268897999954472843529751690163877215700249188266934282443203756644157526757767954375855444846272014900035548902208813361519945172962764525726296132727232457423478782524293809649104205449302001185358759237048558723366968812672234581495741703566567064234710268226824296084857053653346092740427117300162229016636430693032566897789880773456416302419557037690417692324065599900305110881235857127270068026859037220119469953265463188470050466714636317591546299042549168180822943725398639524138565814278715501423429090443744570120452102112546276448082602436471118612293872630063395780455870497622239087320660967716893676747471873354681496744237185054103219258617494272024561636113492771069911898396093826382203410013070472172479461934162783509866938088579765110715406625288785136601626908082251625471097815667294955490776212007673173089022463247784389992746135770856174036106674012058473721294897404046903515827368016995801934365925834179346765944043987963669616958866436485402013753498632239225286909584232887909369007818692878831392091728500342763669384966263128028604116690729043368590616129979816916782132937728608531688374542093242700183830894271303890319876885726066691246306942996798715559759856634461458340592291233622061708187904509306789708602640128005766321263724961607117009010089206960637504038765471216616935388947743009360524840153165237855083931895318467700644153400911487838438014341628973514113179247206716681582346037537909613736818657392052058197820162889697750887795775611302557937743237483840034660672557038909275696485076975429636647606205595062186206735710974465069320114233433383574709436210193929600499434206499299059018239739589503814581142146888996654057174369284889424036189096658613483805201435600945886960376406448051681870116426099016812252181243727651154186949683462212104392896263683183174383639968577343129330950397459094939284022358070938994733199009298771090086491672961462687241438522111654252675321822441524745742301608423420866963734265505034738383696912790845416018511640337111357845956505589928124479718256769157948875181597076154900554968846941130911082898673513850890792960782952383016147105174339066385114957567696938211677337098584249306796795333365504906404324212637291458174935757524734612799048455158681640093298784432033781394076221225102891966936156017038907415182291797399472731183753597713359089512336532278478846388448634622395966736890832154686292452455603185320650214016198749008190091145078932355077816273002957914906559697887343719707609251262005125075348144835636545448949427582110448171406813980589547908232715978734598766370945476113327608841960058622542920710627154569079051194864505792233006231328345092702272501232640986053681207736339203707321353799898252704876272440581602850452264504021773786696077776933963937177377046155297634652774926869283134160481987068901722961769737678177620026165381659086855712247487314048332160450197128570515360209673932288317332660280518974180791185581412376566237748262936828308028099838294303193405398786847650710602728506647165848413953391660374932621701364680803578832485895198131642507618222988505522340068484083619559507526955765658080603322903404421593813377049582358836892392904708287201960116164543816501147137717530916990284407908344969493422663966411508645076301017297819168223075988225150155289381811011990565833606404527323155832531964881961278808819184594699364341609585578509068237759513163706581698823276995679936182431226396223066798674001463995139296671591995504016015106866364029566567659618609865215064442186327388366009948317429238411149435738861406042738347811678714770646199967421260850532607419099730055251401460678724658376417901081607624299527550210611100066597061812363871262741037469634132700637270110775881052160149769267595251979157994385721363085243686118500272943309276833823260915251056495995767232900209050861185898208453389437212808168267134365015119401093852251861824512605614380801915293637635313630504021701444424800661683573256602614390933529585841911752243353979353722435338725540886357564488410627294198872749609197648020308681675053371276836031757538070675588516109001498816564130291153442029019475233090967384142930951501516134044723588070684253582531610541997642280789694959203762583037416593581513984925225366066035070042509985697108600743154665337829809733093132339477722296705763415869704599039028454733074111107929322276313222319888090683264955941729787728169478295613168639218708282129510028589802728692073425580625546828661791505800438730891762611078575938555463912161244274683673386519001170514230757428040735333513851642561060931143359204471221065903779405272488164457596574734410034223648068535225036233800440844664046802612984821687048093559672333703452402346352604711764329255425223884939690378593566298465117103963174480484677094780875077591028395481642610948709849104580731020574127989054207576892253010668479790826938183524868569687329103684374220504257461700668056765808636174011892219190936988464651435418447702018724176192896811875092220292550143313406532248694336687120268698640607111574650553781754582190571154389267869778188926981084011582125260322372500227722135651790628240214304076146157149715071010503535884429269467258744189839693997340951785534407504012091998074613658232357449251663903006230367166291113343707449406379081138737674123392205928450453611172345094871155243010830194757127911865043921533864641758581186735785957284189719933396967497133791720286334781719424087957513841331827206241846808337687533618899279615929735344980112955695115634034986449909187310208550188368033731313420817483398405551174856309361641485640266306162603070397350134791118594203231898438108801834804070453976389181329345007916017466795257869838273548786957812600300775476643143390266352628682407968447498918895773180606228310555929309362767377111087317480262196093732992756934796590548457135064333536871116431141517562417202471945445792251116959603343121037787041355034428621249218828091852520207076589295809110956920085746437817093223935011788232944334350856397260439682763973945179725074945205255702645679852689734080720596095241186068989225481568569940027642575753540414824713663432968117921218318429879240125126983999772002091759790524643368368732051326905809109100393282283869562930638104239434699171634028589626011403194905295347962278323012477325595367207150315643891621294305531043013091175540069805246211012125085049954796858384856335319207638019260342201346991264224461235464618359866783077900794116176672417384874382262030362081767487598813130345417962312395139740860290225701852040747262457649443153404331326694270989132886157727084012757803548285198173721300864103040489311953859388150658155108428047519746030443587872375377559640401772304638986019222814210373737897356641437489551301082362191856871269331996922573658674505642255674812737051659842965001645669438322634840205742356114099369513020882450469991240573576629125254792237257600539898449511388735557350637810216170712433912893009578918791015473139213394063239709553151073909156475575139868306026061520935372169139595118232833420968842133719556216366915674040757735877259426294647182667524609007730851466270234564213465145798376732081667251053573436279919797474069789421497892656482828061593599734898220809170327141339038512588883329144949380673050600841566523043850019521705158217666785565679289172564203641966863141081015304686507980827357384926507627351116636487860004128972630820465791529038173201776062452167989526694639205957224734468584869113085437373500463296096287774399687300658180850111907718909825995215163604018297807957797874107375515392360759493884567944593041206000811876260321735283071596175226400207548137836425050752717177260966019826406225613890241423393574667949229788840014463399685309535816137673996939321022966464323758394061475884642309471761441372320195392126414697453354031776157568476458126174740254075644643627210686532436589380429458017387130578134730510594741505701014447911406054796956202801515738497789340651022369518238028197130501093016971711102201062048793529604841194454293548706316639771731136517425160245629016095960910342592266029033570888763955853759403661468363600175294762572079819818989971834197412247030817462896480309213621674262936245743023997057302823285987028538059265676565900468615207378086747943079626165961412704418540438519813060540171978849082714688719303681383048313714334763208432317347927303663760668064505224861736737563189893991287911774170645264203785536619112501439984165949409618194636323494320167465322424390789683160815200086311015012796304435741509325545072876654586001695258337244390501834485375722677453943917940591455687584964860908947765808046330283860945583327440556931574759886968332500093255860213015068447106380039027147192298702479671998963170333467260193472467525428331216632126577626998813316319577080739384919959902425116978533898059603804866959012258456133591867208151353915071485461583506803395644034753191926609656925928326677016130319808100913754990872813751586139336836033563917612264247819451147297007400306514940091277409415636661310327375333882821523071012586926823021439488285407240837957108164667728694188667699911842438364129393847520467054213578875020254691714227660387596472443790921634605621435118851463210729179530339326891904528792481433171745389571172008497592441798183288204211443456893628941445505912055382504173983535459028531397149005805907989666504766945365881606357524816395943926253069031160726930036832469835876487902215152710480567702100161160466377741398435638999180295583010182488249191723005061786737381407432432548212721149018764131656701248715821889486094176047672048042319147520417134805686930668070954011118454418849335450662897924331136995219816333490594677807738990444516025768504934134001221306398449588408692030390729345930312494033877360971604380318954242111027565814724350229661093821694712842046506724852294112990545228171503184501357070860462828998613152122736404140029751394217745831332990725268326993598723705112671198571983900468482143956360847461823876645994002265171719560866315651186982974181802718265256534429197113487308799412273652542407353714013113017335455377600594466046920354047976028993336978643807312347402845226285825791092224448969453451136108701269095282170011372613244375977692087596511474677252277021116896515999498457803582311460074067879797992101554825743821429147974793073593773129678656238646155783964044012919159120233237178029793501939030328786068897581591895183359138222688643783410783926660135002076132154978070228236719440244044324467960765968546393665719871490361020399084826752105965032209391517421968573366963983338293654836380975221675275606082414907710991628605549358874797587781087309648206789695381088145743975833015414334885270485345941016457303239334267599186379254053484876362327597354826203739833472701815645412188153410799589127098958903514807091596798395182716182935211068768321567173524134782866904168776539533853939408560087783988044731591184979030752735389196090785381080999484795833774552313906436700199806968259980303708592678899658404569579899849458050377510144733876002822148880575543646271270542737395900770981703655931785926848911061947611888628866341819820101918986802176878227859051279100198407120387909394466449353085727251300418066052158025016018726723241145705855623016711066669641725856034181949315426240325962802809479848758295629556039394081676963129598288868433601989015588658052349656238513500356162647165131035418647097862769948262105888536196247867966201475233325541687707091251651394454841337614111079809181247129100799146209078088926849354506441991354549894080211381563014780129152553022712370006270211027700116422013838867169240161139883831133366780393356696994541665031021326417364079904953048053694913582973545607057114662680369905245273188413190277345628173353785502622729799876814403500766864768922643621683129864905834996333010264233016728292365362536517708487184352702383615439590443488402645288951754102745149702320976561640190977559977703907580700504879677847054620883228973555354684250579732353808305237687390236747175236412529706882865274422104432192467998398475143384029302150236340689807206856887056872852652495797271230326361609766362303669029105186080859186579850951195463527582746490103459168230290805101235910560295808260411057574427239428860373026198419120813542657862811757164987356610544243372913000931257813442735704769614675910059274575307635060852295228464455180018036294512611747006624264316037520982871158265171574984172535464162315454155505373913345861931190658700487599930433474288776757032037812781267130201297811791358830001275223675237665650577130827155999859229087875794558780615021672789750171496231340070697887384944516038962148181996067887838790124259098765973769272831200889848709026596820867888527630769503335356577810121196147665109305694739444824070545984984709139308677530606016263356193528223922326849147733187723273094317551740474764837601327274208602163272520820215857314426095327973737852749371349274915318382982638441710857507671788542329080260519480454727370244038522041755555960671746230758992953584878947403288638595552464546500480471609473923657738474724629531689124909499842917606722489458108760215082346976544703281930425307040485692835701012749208654377272494420229951000214914660245566012741367548648329223406807575489016241871312588400008684652381822260707476255333347008661045561429011585877295683133206653925342404394806860727124734827443018075192270398946262528364800138920220326462476302667834938698936120202419567917719084093222015085928114832528526443326288191891599963938361689757810128685517812859459068086111916407009961266757466633087206236238393822524436190580820024089680376399530212288063527918590487412914827973923697718646188545720144915571692020242401691159578979694279205934468450804550745583551470037547447008480755676889526152575768716012929390393966546758590329093255794331960902844742748337176548408185901848163877369722186489572398648007487001811581567201737412837036631651375767777120848743105658525096420348795134410692590723273548752848408588946287709582720959965470449008230571672422958320039299165214953184803362837223185972162442185658510815618886942253925940626752947734168761576244099832810504848853357062364842058970739193807869413034555894104563885256915473438552428814486474028853904108820487808219137273232982782746741093539834404564218561389208969699750730303410269737633513246591686262418131699934092224161889103543216318550191912973956346522340188468017693329472877642688625630079335218722825106141776113750760521293588426801358254864848357855164573362732157011594962074174942395399169485076933830830777126966254588068658130961749535814594242934707802006261459722767453268267576332307744567190015784563852567910275564833243981568545754151010904773523685251037721742284360379873482725200651486219559973440222038377639570482752605139824413880397184300372113490785719217142822159564652115766677205658164290299471003749465653802422695501737127997470117381823911206592895766248146722044034456948322239959341263613269812012956049690549129723588881283467102492930324301487769718217135675772623640390538899009653659655545019635445302231293961979015887901011583762954181524230759096282634673596416901044036381781884867951640812355234986769500202098553829666833150063803671635821745734727957673977229246610131107046637540722050858461768798783748006836395408481154470401798440016822249775910459641357787297648117075914349100163941122550549652247411844818604838054935690960518730197629800490675670040068581141236771287170897290577069828811285843525508204520536484076739069660193433973110161296226308096450961561238723201011237872422353227435245941885754454343594102524089712540878950729854047824873056950650930814018443733006943063093232078801141535406867911050253070425397543774548449290155249035914427720794096160972101818900512209462245567768094986956413648047393298913802527785754945877164219597527366260632919834871925692459837570040280499440426424986092814433811618395892824139131821289606415835928026417826339250608655137530787890209050207127628436511769107069724790361888566174785402050924797116146943165086713305818444959689747640396856273939815927402718408753658811749274464007537208421328112130864813804866197066803998399389366190090858599725288652326146511942834700695788567556598128605884685474510951421308161891525263094083325309711988373303194890892110327838930776916045435013487631491521276093789236418580904827512642224010396038928888274449377890272418956434751474899848059824500492180549359165761913841136275546992662692044128219938223192721082082161736823730777396486756653945498087995296083728573644773760537643563783009025436691117588163440171901922324253065751397871777002042834370686180946081231473840565697390941439083079505761155431156409547906662704361238284542408028047556220660571723640775325949596320083802470155870004997903553639801754347894670332061789338333453572008784720253672522116436791593634897733323744508651320019785435278655492319970970396659396923642845114173837561134261643158520442177231094557056334788629221468271351695814717880810385574921749671904251538485002395044243060220966143943056597340976048547694245878920791354193217772368370914105269883104648033530814442468562700668378036845272573264389476285771280269866476539858137059677495334682390432461199272119608132063103438053634366746844963206737416152138547766617610927338360813342110161025700817937943372708314316135502948854951406001123251808309392423048660782532272883430863441109912436806502960338026124698588185156955190324258395041710774384138000882558739262420433321913822421197348709013275713030054005510448419514286856425166648185674233264311895259151065159554215413877542639424012310634752540204081608371722798579860848240229294350895285642187169956758300777070401624949135126013292378121638682210513290443757544685468988984735515974159581526644060720127178212630874125200655215244087156333398537811514798242158319377773598551552577227225207610452427196480276569804265038313854275985440425330872739896032119487600617090220421927083247394236381887221842144366337541405587552354146227538226113881254302194587845501103668472535853513853574906927737461146884345890470212327328707921949651929390198556301077765659698169860248708915236438354418015896906372469507473047550169645581134713679003936690100146668514289377346677578352818781519286520275785450774076771686170799894677369674205438383233261763487025807311228274212654210678002463706982664818505459616891181494466661355056939275194371210631391374170858283735733740548583265726877985418678174647266666905531845094252021023843656582588917147939946920979420005552585441502365110739071265534605616810479950307144622845904390888421646026353611969957095193100667575500983566027833032115577662743411902231742003063293196554996065722251712630548004679114309362614909219881972726613565019929048220751325104604485289082430557084130890048465721850452113218291203704831017376352663750329438760658523483745707986065044494684056031984816372625842206430950430167222141450170018843228309723654543525208754872360292298844386558474699742842122900519425282746639376202042809608685204709121600362885783485950203643548116240563677130850010675739433867252317160546925122598918099317711684188120471014628607027758812409495613514394817991519710311003928536302894233540252961518015729236960396123382500135987770108091812570109066075794195515063387003252098192291644487286779250911107749287682369353365937153072142945012695657361143346151145286551585835727116300299521277357872199261857148290848851211719955778310247232673246944323991539667253607327046956516727120657118082243464425604992269646119708968447156863005615645719273353031227085704931020892307297920305559751080663597027140778712644016566050654406965660311370745826213205658006052032846267994595267988326087108714964300594609045531228048070977084149064264934902080356039453408331358088892466698747552957209651293736473483269555719325659303815540337419449270127862744136843409262562653257526386106954254146721038383050489616586811804481591399940861162929204854987381663105983457945462660526435965410399293163056055750248417130472102391667943930393650952266767278115563862346856574524895057105864437165315649479512197507208488013877588182406303811978921996745163161622360949650349020099636363953104806883053575631306818452028586977545419545750732784189304127035245325194095884105057054186667136959852037807032141110612293635837506544996781348273954312964845950207689059295915772681958381000642341836446873720290369120264183106831721536414082443437828610413431617220495821648424221145853364339699470611199569006778312765051835783668685828348021151192412057609191290703324030426188364241345921231854592897882854184824237154673350411774165470624394353162199597638719561111418587412230195902563614648834378278255903756018420773181078751527420092464412445327092955293275345291950813147723596514951107324100642681414135521894850644204262622553444924862503791605566435959792864877642587024085108348494547939869093333496771804103719812488987480252707062882052320555070196360906415231547365917966593895593691929128503658965015117542297111631739545854038970435666018826353638289883759697841117407755769587127137033719088082110526794030487764282487000473345207809675893867147902462201061825181404834716575878923796183716302586156112400543387175889590233171274428758761275044133454367453142424576167151600671928111946107528361502321572558783498669583894700428895446210347571437685614609202287015446302949391776383489083748330284873092935361849363252044279613688872305009347462110214991274223638918532891340804544434171152824977390582101511501246665381228390461656493336601069278814529649615274351968272817794547673729198997243865770275864876587332406830788448839834222499388274852397451548592379865232893833018766781629165809942850355705431585767487397977906337602867611662824729771368243145739105065455049829514600376904402204590539836070737461202714862492066642017538127006904791057367123543753767254726718638898039369222078237179828715058943190249591798139101483628913572586536693044068839498600757389783162172649950697485594177626951886041033806011176991069728520686816018518916053673413587653542555123659670543997027387480654329702067937155664136971394915585047472974260617565665947039613042584157761508820026738255391314933110631417595258989764765226233627241737117125844920910081867678391299932607921094016828977452351337174413595420778295449569239582515383375900640027996848659877058017093716184645215531546896362495831646178887739465507239517813141678567718232742358825383154732561799354416322797725767687864669446780774270418647337210556769179501597346803564875111594196864283850559781519211709593830802740190767650898465463027382345864144020439389953938887372779647766629508375962041671766124302053860241339135418629160176079410323354340471408882073295277503068621022454634143564662670565360205000001209594955284396624500061081982324832021208851582088987941299072702938128783105799332651686207463416212622766494313630187619913652966698278987313830095731671589545777138336306406246442316270064531836898264043661237014338095322219152233548083443641946093943543955270676196228848353884070677947198308545961108277080725798692097294817074280483013474757168180630597689246827160887607970913169677847531521878798152974254753029913869141690595278367801885666342424225747364581571488851614841477477576738867852869578711309737099694933906412785916039882119377948632667913360906688461399705603483341020536586919652410045787419222245376391327575131925679249766636366557889781045483248575248925644596531597531740941557604555829192095287797688630599575086669540045373280117506634289191141960931292330493348977088967251746383690787694511997565694406588532265326469450929639801499882450344982316935275990524278585343819766581466517477341885722234900887001180134528126569454702843528658428889794431907796996802101707895163984713224284802288934928596647685161851116993367350142367502343287558164403480965986701507147547938686086775464971346846993227951785861976053205747957316154775219156351829020326536405548801952062306031115210911894814140027499097360218843985310192996451533185764735513851786213210414641883614968287301350911171145392890742471679426360924645556548137015244299473888811673465599888710562614768296261749204278481829332962698980752558516428266249188344694629931545037625818133595329399753046003526917661337267642297846062967461300913792378183653099296434148876706160844134519842194947424366654522090133757690223721093098239464288165668542122766956125272088303051809030579392094680066467205301376340224676672650302684298956186199514347574203596396808623129150225409409987630818579696625725915435812424756856649982713100612470206215563180719071508964376365857398974081364068331063377410779939103850512361392797492016494407081008556617838156619049209074932484542126081111881175492143064382015698321328042219844743235588270998565671974714423217585855823300594930252636220209027706319301086569341464048373186238942134703058450867617187513910960380042063797427281273859805686185587447016360108081170327884086413168828850019766714061604008175415156219718999151012636418337646312534132242417573366757877215838773161225823944140140703213863150502307405316198565171267453483074331533750290365468091392381140649326782884987289716084383392186042369978186595333855148402417450294520576186964988495647278543164120360292780049505547462903604171131075585942796950441905740805094208335300375989969062475304265013708312425534335240785038526141593902726068699228591220384550996080038101413244716828966265369420943782730979442126794101304993467173236740620594750901031273721904757534738621788987114560264097079744324838311443481985861258052289901680365786958099299167809972313589948985992915940391708583970467865136916335973526501643516669738724275264155825173186503982302529793515482604258403225521700460698459727578277359596190636871432940003421037968804319918617594074962210770930258326948946720816684146011175061516899108508689815319910701525145699419265261827312586009634941300933063807318843073360287727334683110352400267274711560022355397992563200334292998264599098841689709564042897342553989338281880444748408139020548438900722677688070205732517576460844247992579013198059786391852016090939166662628116240714810676892021466507175187702555292920014738990014442582898281735918315192085440593391957700482457080869793616960618291486777192271082680999779232515864419218669764784154241243610679995718437219474360833149502487210620369371741436237761308160169094508648731129683882561574790672782890599619834433439646808812724675385451672565342352694183334220115599248418896346699228911876179842288404820112004698213033095673239057000940382413946660132388568221737890147326741774642612590527729497475085767380671475790349919566672749269021629420910874560846720695703863796931276294754775031581221375421054067295445358973062663963028802158093949511546871916016378322545085965134141669928698087990811846712612666117326626488083092824123459446222116959343784192975577240092969631583700890125321668408687314000994925829460399215663707524887202859788616306195903533422262706184171249069094040298999633606572851107984762201865345272771661956646336283835169245589536870479212342434157183646752798239841748387811967055271638787064619589618499957255337701236852567938415056200047280957826399687126601532569572172763067181395616259286620080973381600949829838879908442323086145801333334721010543068780432025262911648699453663213348229837214519615084926572847106091331344430939398307565385448110338160903557141673508293180948647405091970407966821159685837791438166328856498701507726933927938526095849706755727199497879616482480205255375535346943840075071839205325407351077831238514499024903329106817675233486630456037452565492128824737256357992625600319660734813977317572146609781062705993239363257318502394598931395825360823611687254821697592104735167016568127463278960507954295735273012963045557211203410280189772740123988393999514101179191407935193576823568891678459669313930843714716344372983101561587802740569349400706192438440556763376625006687893815030531462644655282606225371790014569570493725103068937779352136314810031165064717158000760224489388915242638120372265790790359090944822508915204949306958365809339284630922671276536540892567512915561593486594805154429037501173154449401351331482105917853011153727029141624016425521103550342349984776795075429720345373715990817140023554848391390587797228939280698419595402320228680862151544366326744769645997020610297680752658708333312716071236738427317858214153934454985483280690923066863322578859083082992479255961732723992533283316093513753120338497616168162669420812875723834902863873391608791816721967524266842681768224859968167886075167104903383915578998581563224558101887884899396995981495203798355364416943713317654014655396660340246467480821291875917652985623263581006450653868002842666683349542886236064190032886743066911973866731934191072193555622848529992099128103920852442937912954961601714294896823163677721419163285022385936002796019631590897774363243929335926179237325636516038598603529746782665095008317635596042490099367579924917167618704056523958506627396232928191718071574869612991834341298701439639270850160884142986496869502275817754607218407415903816938153004493073210135668891082260743162740395207132167740987063899010037045482214889075028788942483611534592380991898032645353492007451824108542890016212736855284916662087106578465644436276721801804857377567715187592181623309645689375242446373321920249561606203784425284538313472790227534130568088480252778951039209103918669198163751938195351924491869130679153787117279752915376553761385528027704469032092494312913120030747371869350135594383160493899531582124013261896415755055409166576852488079093133973064193602839690197855709188120799296184836031683137654562541923011255458377145470844718608746829708004589386296323291933242332794682936911953364238590958709907035977400113494235904158135116430861132515334853853174467992535077394124375933656738380021271988783094155840686070297737229349671347017893871448151735372450301752870706615829814035782447578930334573646454146442218436004722324859112520938888149944351923094244079420677405777960395387113207307669698563131984766744893475654866649392763940771499909030425555046055431758599564372563432594576605924595245751888360748711522273949373668318760559490389564655151017139660398031792238306656328185280818458015332676082464143599553143312270181214830751265318455906630790330072757563200556102134833667108855572314255308902948480106884579819086019620548177915210025394462395406303443964615439036935789047055491291587577955465974532805034278207319074822025615383849929945340735167462604942866106860027875514919553799790573048973246850400864967787024936077244700576344063553995570387884635974585968050432114509445833510890783506432820551493442749999277558341487267698371421652849826796544560596475115925468222527895093094285640471231267283747888655053210126037105067306363894244733113121689224885638856562373937411382785165388719256944818093989224327530872445536949649580380278074581999313997037851977875294146974565793825095268067353917957172367586032208331979627014250718647776190149807309244895607521419104177984171219470724821393008639757806232669520428885391405121276533018297906108815301704787013118406696367277383098541183009398363111026191766248082347573398163038336543650834199371109018070591326486056658961736523260115724074921991963305118618330815048275403621280105417129071350273868966975862014586801070373201462580916289140942972391040719001090652580459278287563003644582958175444595580319862888016960733222008200975905873887884714873439345194320136077642813558300479353552105434177026581052132613060072509410097357264640513672568938059835905345647652530659196041040427968539867881195001736054841798983557405625717352470079190315794777540856641356196369820331471514408714557955631138046161576297429568429172056028619424194665975262415307507282479063329617079730933279495494752889916056745355848159327234217098800972952189943341936503153505351923839022623777405514677631547594301796352665764716158196895729376668544798273923540557610863618981496568022776706913188891409719178222045631609856743338949213636211041740572878372877862126476995343824825202423592543159530995842219868978508374825968835444808166232253799221561312326169077777489896571215508195985619763764000923743263011389148111247527638949269790895007483675744129316899245165981481215176419030982066449373844863815903102744855618282682593221865481424539347241125654384561366230549076425871217043329311171036727466574641393543606626620603836811965153079081317540380834454500884520134749848753552205423174432851468965436996963977753280355773700390633714552872599340795895933398077977535090093670816488819063138723257291214356157810220091123971922011883864619359077073911418877320920606639348679685695773984735007139713991733819541212682201575032274506697020405806406404111022475911095655636926259489567646439858849425023635762170280217409055952048425774043540298836764664999992841038166578830098103013123273373231535764358975779936812315842157960120504781462695520399515742157667443375769917651358265574507302373265177639927516521925322791064537904231955015205744990050758703321488312662199412971173922050495866238168159678210305879942057330693001141363151794431836168044647187796767562844528829021048301347377369543085774906516946214262030691949744401381888990383253644559480408393743893894163942350181096589848633408300102280762981892280663872024752993978077564377762304514655682394388948913958647074729202818961067618910361297106379327725068183180456323312499474281510202418147439156958606630232929868303472921866162533920795437625901716321335974743028212138649948945642105844229932499669086514986706087676612904003629669281486322837099686807100934663702161362170908514309462949967979149641380667992530969671818599817686870876364561071107092918919360036661885099225414116304423660689614332300276179510118295126290682346521763485574356674108413402729490137423901347034911115561881561810227347255194700734385472114792241369771843578465080532893492593800786535846788303815273267764374213380470344299019832295930026569099994053712897713898206477510460085189784357335563142424293217835173558863959064524483232069786244757888258524457533377856582375059951195268370383209732281349216631034853532146020754461863939365256642484997036348751760216707264233251285388918560913943352123877328490437583835879361939857768842715767402535538231696695057561097886482894914039489349478599622182785073592717542467780555807399464788254587032032267217759503995806298742789419002632458306612100838704557347132303270866747450677503639940773829520571808080621992910068697790638399918860720841323974107949204119248537729959676962453794285394013988098901059653708152157892554552132427893888324382621406715524088573462349651904740725237943308565158005805897284115300024060746467126896907731585188409405086200956978382179093188008187657166685465889343890950018410813140259849745624226977540502221368496055466068571724017064100813266652759256885613311811651942220265292588242582360240209485272504618003142237054133485835833792828327812952835527055231572413104856525208557544295445824877120240278106421798208843033508383750164018735097810477689251095867967991125726272003958542328822567467487686519956963903304027199130965644209107082338975845837272451263802310390321279218972229938610889131892420082176798655484940833966807574951101112598062895767924266849918289149414027552323095570249855299068841763500663741470887037746008637142098042725373977718793969238675949982453456973179407747288523695886682323998478656007306906935586126113368502785181422484676165423174250577454859736987233877038610635961352670685649865507166224778757911445652397014779369832438632209206070446844811478763034055862046745865255312321307917295592500400928080448711109171997245726513318747164931715392457119715710131357057374624176425909799622680407914607294562747742284644193016440676865498494394245446442326173051270134339171103540555505048176411134505924364445553440902394808423235819145662432698083997369997303363955719217208184773734813797661345212269185991139337630882515955294826043505550649434550787863748968331284079121989290800241184864762905932582684554701822537356970477689379233076094368128312367256757666545411661606018561447811607744516771701817784405687162750590879260591074515900257940980887701159111747977016746739990318611857708083354826933696066748735547635734187870439888257916955917427574911472060858806860811676875542753855383190931912054943034629556140420042960861126499616224156625882366113345337989029972088152705482340599403586102410690271508189227663117264169936350657446964534085044307722830297392368515408908470694404751782270966528387966550984072027968009671999961159001164489853267768122525104144936931431873917424444279202489238526515301844781890720456467307504019218741132058988488155999377585380420412885791331415863289348597172735852643268754428686546423633445308772737692524102427118052876411153986808921637396358323955707606510269121231035623238832221783070295733701884886980172178064259080607803619946585359816483614039530765361151393430585652609301709935478497926059019405747049776251599290715781360476312016911617935053454268867661565911592282176475120005758430192238895490386347912706142634195579410839871531902674248406137643366294191701532124542687925507018620854859558726281475546210356139900398028949601096152478066429491592444729608791808105666858987399771290538673696959159001216950741496220052112161987011286321081016628817250848403564013452643215660799731016123372008012428865792835704502265676350898201819429155896452060261398409698945297223193200491999225711741526780646175454582231440168346504372513537237426165351191819873860104381717596121902366348177438020484951458637373481855427668875633224437708438707008677857733076042833224860279710185073995546870470649593679821812623892373233418108309779124614339548849749180643902262981269952047140552803997561122639615035517998743902554245543239098554590071538347206594526021630939409687302243471049022252480142740098457467688185587901157861375294233735077111844253120344365136343679103698326210517145368100976638042514564044969446518682799753685297838594797743361274644033263952000197585567511738343158686822247463987370184927559612911125556583017190457829663157811227884696995856518944188354675027673958379269601874090013654426745231386251356978154709579611392910653054452187266207577950899013267146164087948433771361753288796882377244950902083769714087586987581915307439093555497321239661593555333619576760111099023003393362851469439119624394210618708137848246022587909451973256714315957329647504954090572713780886504905888887351913341339494246268881632390610121845687143009715046812472426282939355910617729954231109213952379137402013178793550429661599385097756440373304004584366211453009235190814223093722308722553617506354264738072882534673919790379969974198121473561659261329954834181264888354328087058623888946798150899640280383203131856420567998550010865131019452240356175728926154931315042752044078561574805948294909536346183787876882458219964209895215715126155184715975336837605334128138681799770297967622357909389715597807490266608583311921243697582563136781802977573133944922631149601564677064278193692650508728050704414422909526871243522426842547932199791297077342303054238574252189069766639739587737545253743864176086828430875503378993407641647072161675548260142756913739285397609200651174093275159398238152942547971855469706795769796278877654049255419477113054189448574429659648846569742632308351299178244707853169356178925401159682193768814742548607270477849957315770600940018773307374357272690122939653167391671778734329166760907865610631769520225449353543066259911266149487351102040353973749714316639019313648127026345344327479657236262632867752733713472213217941920081143693018712484846317857035814997088883559773458674205705577453918451748226091902872953039441812967143711898039499339227232245976417200812026084460902904352548755067249200332447428085504805255523320672258125603860154133738919847700419766308970332359814077794998476581228744950449201856576654699697354106884707964512319307867840430133732429535400340275631347453514334552871448692916991306999861926256350201291160175091182618586545851098600926122411265100365269034206723105340935061984934400324028579932303801075578870466877685022085464173651269621148896998167066016547328797169529265666226062738438321223417160970906007614378906834247317045081345387625511961135176736386566371664772620703005707117494572722641186547110396483216490370493040360461684470560628805497703547894386100649936388563304775441972717624154612791952081896744454824034532839656398657796659882763854000719422364186970838598942553140925149504440081566335041980287776082652258483681828312219507828824825424319788882745051193964382077113960119434869503624029778649891390593964328157005589765064964549671189693570180429291716883138108555299565266965611369479950108656460874581935489348795919888683190697753998435134629064912479846735118216472723403951104453618236381699479232255204751352493567260531797295538816236728771491884592736232842330455271202961149928326341478326006280897258422376979549233071809667650632768188335815219487623524128304566355528905466156327899943248246921476610106568185172178653352357600928003989509868288867125725629986042843446805581436742325474732443367141284236853422858177605912952133599735611292862922621154221170734869827404064157341922367814107320916083635583889524593367031226616757216000142426180372237473571076771645265919966765622327494631875255564466328112236914474252103055649480375816014954241933930672298146831363734361814821918945911149757885856488974845588276694242951168241337138328766193908892163737843737542532508635121978337020377204830747703223368640943021018368091857502186804595551419137305180921422452430448948313443297038752084474984580351374377387496802107673665397525413886161232645129310474282749485575516483553529407017125123616654631963850203376475084030827639999033027707510600833442210444645459344253456413386859063065072722261508092508031990640102120178262408785802547188700563996510415291972977186533052293933202362030909408346830712890651953904195842342138622944419498188947204358068702753039886270601217024775498371603911027543894346966186642258322286563778748434478520439338347118592465495383499122868535790268723726860661246107834383180650369213022175936104009068739700880816992537862272673537523994961820054681160739022895420053838317486403042392107171198947629336639860356027612734624920380984400867624989222931377195344561838452877480507544125117003638193766515389686626570882048070106713444953701262679507091635769173007772244673620677923237725705386041506035940301242565583526591886816014736744400758779680567126573325470820630230071076067689982114866539978525238123061557481341632254709049331745980381098463750211489614387223647334495853321536760256111274765996371767385390450304028070010867962814654656165869934139124297034685155107605366599273193578081426138730182625644211917018063230748130941727890398920207155795779342949965177669626252678784701447067964053112111062355276204165902531635841047335833777922920919716479245635377698768995686766709981486513932189512059510903012682630747756574065905518317863236517998153591119742310492950301821201219814431911266803461521715994180696968832638877646390407610530095975058819699824528196015729583447290906649982385899514273011769639015271439638746101294895617104400248073522558582812558187724861618088556612254118000729741263198421002023093674175598230641285580079950093345640403631152820473042210516834076976774912638313641569494185667285895693045262763932564786756449524105019694019793853960501743118196944646272976429448515546469289879654372942624004097161352799345062301652537459822723057584225888104791130219838972176159371727597867344199989579075033588044041111337026884169320140762341478495737008971997045507660506899399294159221368156587038730015003173853360695764534760575726423670152445388563332962080386079733792128416985031262454171260714244464478110573231571429271949044689596611630489472274048375664695768909153102287975269709584930580129192811589162526296447602361010155506883122988985258747847015823441058498711885377103738699325251665334573243075171078069251550925093157878542626248164000134210402667595691749463837173820053852976288369874100647545774437597951404180971641167214885078907318431113567966477388100485945624000574477407990450659719724609991403749821441651661939725703369452048816849878231112060548089738479419451396569355153016580732723565571108548486580436517364750580631483529402552393053454189852420757638889918168958917121549249346520419264369782278990059417161010950195941343054224369219026792808290510359129472996389670069937362088850349404697815215183452273878305358339607903625282262061246215120546081946018106485544930400965794992721508340465664377315970933877062843441014799061246892742664960826875958158352281224805269580650897358230205669268183074026679167279569263117197067974301431373742186769935536586127409939767783600081677195701125322785325041295439257410194080608070901724160320312654901999925733676223990540546729965683472801332347077924907447057923478122449393893814004961043051084891275551357776502583642650432264988120673335098296853504880838168194346599519151551237592276296631520748867120506861908435273962887295371300075012870085373572555855404618246833597183138350258757858802347428090605446850435688746855656176752437864651846454879186151129097161921557061284134457796544897953596425391489611502983160670030381373068497873776460862115372309099848273924550591644483992998412847834449263998334432688085022002415219707846728076279337704933699780408533708649686846087794100334501335168345448373541506012713066160518196209467252604834845454637994916327901220393874684493580848896008237561908029978489458655688064128237314041484372917768839218633086674844837150693791924195058914532762558789139338998736659284815452537890225829591898828403235865753038341361053992237720673473290136030796808393953979140876917972129126407439358428908310545701709660071059644121353141987044835753706998375573376572900493970376514818707429716884884700681813875241539653729805120525994050650482255062804571483327821615409313523901421370533152595376763911539451440363649740878642038171696922305488209861356030456975316414389538590113002283412871099145862414875682205803912757450809569776975903410751822616321708314994110849552305636743551262180870900848992571141464323347079850571829373512569686001222408844027172146750543083842263564794720817865908996994593098129692316694327557120869640322834337289831051085835507665631381938009797523740931749579349895112250312307378310478677088395229521999763102613788422645098996745753478478426481895166873264175669049152010573476733974888553765104905176791505996787354365117444853650119380285353485746568706551901088873410737189117341773288947362076616367432017945731873979130909543601800454980610546675482942101030209469241694344606407444407654461264110570611362959331351530787697221246322887844363001276383831149687335724559355180927009284586796974529724147485243951042133377389240971058140162709865554070846054104256250785941748074927950284817530986758724946977476093671969964266955570813622910974589496253878168620584997931156133441682028313549208188709431859392537035006093172664141079380602864880083405855896628543697212765648651113162204328124892879882840715721516474286708877769163459405023391511955012434364676631970905966511982633176686975814794808929517703432735006681351469155774899276520083104607247416327433838825139032703727570463790326865267087529172451810169820566767345543011420050407271646164938643957076400657679878099639831738622603186182535467523882824390507264377057830796859834717796295368358107170799123777168931491710706875927053539032116965382082351930228395155936342259135793606072784644816857367608841619164096345122064745988481848830161904294055844292052711125799985473088108605623871604419526995895418211137462057990713145613293794156475673345815417112925140504878897776728927496156366954026817379516548758722873537870345887844192224765322674269014592893889205984688485228477300793422563758034101350437354904140823972909369851710268068121755360866791705060744976539833821659740579052267958074462614603330981420190211174852748003596892028259326013598092598299914928245259923219991932959770806090090819493684945745294972567477572780441796978274145949696807149996740029691204552407551609625801861818304691199019208318447572381737490669824886910799552867177994377513131637117591425534447347997660548790081053124764879861100285209744933624105524730359682501198137571540113630617049950687872338164267178334291033847184733602426687260672256310490409943675637578443429956036033797421621648694047633361925143878375785065091545476366682970958064128901568238102030749098202866170698872552847928235703647621466617538991967436677953462854540246654406812261485183384635862816722038219237236753232728424146295910763863352309234793830719669960262780867050856402935137285211818435624848745906980772843055736713318094473178571849245462481181850576370950585920655798355205182827191950545608757371514121658552404452243841382771915284432108628809395864785844539618654961522804921654246748100874729001260315066133239777747511003496328758413323140571932887751965061349993604130773910110626907769550444503847730499851786415832577733334371066818779772735018657676973487460441299044134511996792099845794524014213952350523525427890304924861742406794553924300209431842378270349375602040170479837234558105082204382188133596612702627069424101651415724337688490762004766660538788532617691685459981184620688110372580589127965519275918931984395401339488351303524586823121625578974378540812587814741862909600638148491996785446361103654902046885360836477706589198795297414326326524075328414149525691617776494320424760549936838973566951789988446705689085124158098689546949194573896420960688392060599687835847028117289660937976252371595779443362934925043176323948148707150395608904951355733054286814083024716292981840329276388670815867013859682047665235420842568128319144911057644429851660457043588096089320300452314018619279426876039914761738806730963887850878182441162306184682791096454417995715544688727846017311714700232262643645772320650979982270520815551318452331209877341469406043848044936509024430748089300640557293692197069259139342096434265231930510690642950185739487279558194713311720918473752577342878652500191563410068942695434378457517553833622879921546360392569084019423039333808287440002048281102251547054428991519081117650626045137232734372846688120038637915773691311442106111951421731437454562917242947276720381050378883200870673550686627978326748475215943066644194433616476186091356471029498167921270634477994030985684501726519985307452872304047082308220999201041770359369890595811953240828414623143551431577935044430275365062531462920477994517098591176066875192288133173896174285165363693141991676603745686544154105827332198750197519090792976134452301990640601222218723780112822469664832073804540994515754553161279456155526964900202876256191272680027140172390659605852158744717082362788827310699879397287827167906006780200335186179631929735930438387451369240840773010341425806292369772201124199807904689980047977168203149604137668218051668957957737463156848202603186887732176570484114794361005335864718973413616775822550795478277145186721634482286930126015995696376283930482991947138469472820170303168266858655651006766157662283337245781813993885783047318815758350421231440115496705813773277688872285304135678947638035430306063719392999362871375231560767400922518378540771795124663805875898442518076626436093485135969824988032740768144415498675642267176137382461861502861242787715563630779678338051873050510040770721243303325700750293962868833332059318705043163859862539814245586055461575098714549089088770219017593485936551168126721101230416601114570429307259760637156273708388943758911873634852424404005344420906014125255852784850265103827735511209207271058783784589358587541753560582176844146977948280653950361506098435480289082999815166552980582799659857379843419400138748558180678713854242853852961217146846993343297342349425110818469693932324822595395251482772760118761235039024098498860971098659010921588501997488042620588538990492861344987280170781459686786774504831152572833559986819894502185445981414465623278408701125226513716583736202777139584303902654833926289243119206110154105789433376740257630857586099922903271736980992841046682043348879948723730865791018424096731499192951885349169633084085235269669706583464119082284197284281377423503287453738320205313582460308246653634122187728708178414056796640087801214944507505140687316125379154291445380971934564422939604233456724128149640710693076741196815559842741249931249308966215776503123989033797340021790508468412145568581404918815884185007485348471065772784088982150159805077809461944567168533990814228219164262517459332972981509107510557672288235216781422114302290580917108222163389222803147747965213406076580590196165922256752591160407661846533405669310568820562245074690030645152047693803628637064647832869552436843008444251661202715690673942434769401883358972101510254909262015591605759206909807180079104452094844758478345080752301352864448923764701180675170402646761544116630875107428368205094774503380177592822187742212906641171756968282145939504832784829193239227363869340641378091913275832036617791806678791364920162023141932828312819467400040459945963852602625226736827570832624758300539436299807985853571120844344985131421489492079635616732735519256080098057864429142341100835152840511058109750055083907132708680587945310596140696178462697304787609328099477832303552905815603850246568968656550066746160553213825581418884162108772676628022633015303307606760996131201667290062377274015849676789539987307904179510268804811290274597613045725339923215316885634075351622577768946722415255135116924085864222585663926600622277662080845400056520632623371282820271705203141376394345351375041831178241355756473363968860625327722106100088370456105496067744717601824682103332366505012095999258504227053370632764768726440455659941181058519418866573605326349464883185009802588753447429211610888945548757877723717678580731079363353538099602272784347542676416371979275871232800992254051480919549459446207755358541639574286354072128789621374645432852563490544031123392627798646386206984925407309961401781614243923399002530593434851927796073459876433588750655855364531593129326486902912031897466072321756479944678875879908106877635294621344871425717874182844601967855491949598679668379138882085998482676190753320251733598179103883483249845374810673031192652680668898630583824248329280784836633279804072786851141499415692695877918936209325858642304386833511484622178070126858439039949105730186669555009001637228670564468793883851750334730463309575859517315532649328181450363826150374297750755380420592979694371770084808028052648000079432143235452816032965695245888935062409998222653886538192801485571503736357552101754510086537812409775988304511231404599444661185683198450926993931196719237288180394524480126031291827624161490713787305653174120712865826736434673264771851080808205721856711333039536144217725287015163138894016122951666375905410105338753350838565317307199816225832223112416614849489223759721855706466301104541630464059227251722650656912452742249514201262991587523628589155133779768807130553044228708733416758613217122093890807301604202779124616079110571685950626092624488484494567945449448119298380587216469479598882965612389982925542376920306726973518416251318147214689060545921959098927821722722239164721323447240803273672170644795196981215487423309633550453387265854242431355073903499294146861297084625138215528260272790135212173180266546743396128302684038820169691734169134989616229033884655366284778171257471815984600245766327781986902787960636933215999109142787261842530585460144167829090098836544371138793706030807615025065096872279082931820725560720048917268557333655752930326107163314313658169467864640716944651210166767218240812890086360689677242711995142322607845271531669982088956449841929964323466775749125760904614926806935638810277909671500259560616460257479939843524406145273954010777785262413873903257385452675605614626966481407117937861967344086611978339712654604152869742869538373374273630472846036268112666142771365386001373555922070792591698705134487702398735758036770913118350974439981799229434766713658389333657779421085079955565778637794942938070106678047464124693588717534950246032234817939118095431843464415424973963636855632106856699744756003076213675994047928522654787527330845170283776874175996617865966420475090383918319429415228889156743094153639336197624092585782823487391317537498753240076413084467203111102795415047252756062574577204731644675402948632142365053529469532151075971497370743446515929440794411779148125931834938441035989677062157391889918717662059344987528814251448855471195029947415420400831518460816831189978809510803657903193742581995903191567557484122135368148306689972848074515773645222556185649234685490035057192171865784000099701565432416170166373338197231718210324418528785260356093956793473911367745135785205614676998897415487693162629596476089587295454871906203184079699223210830343813338062340708351628434014042900250835250754629538545084784650416179897309802331805248034165411352061927461223005092646876690781497491971139950816606805872465476128566830147453568361171215413164064177083391547479637432557694755757145943855204121252077847470040115664693680939955866365011540318164873076376705909315639148313579722366376470466651403648661596770694035268107391577267736601679093951434370511587130149394996391178713727120919291330230266779789298813016759462025562170313207156738260038450571043589483899018682310409193298474713548661965038012206161291164923124007018014212922339451199912969509465940165829777673295360341344755020737433252824648111684757640237722167842030229538138409166151413268770335531407126728874317827572673853558488448513144417248795352795199106966300770575545042738190822187788883507122401832063757529659465732760460629571612484490112374011162116416184654010407737354468436858447329604596713762239433222486390338632020846578090133636731005267363080597662676077620485826369751641806339504390748483259436478683117063662803438038334027871070060470289091328635246350320047488545090515421328814648101918503047077878634130543745353553321390488325664067947597354251270380200864382036751960659439932084773396251681078438016269746733446200745135182360764772405099043483180699166474841968978975697142043281415943682324080548497809429396444422139912051185532923892448897994848743451121582176086614166629129714027566053075870054513333182921052029835276371905678023469830584280183729300738007728749955691635164606953362625774693625925410495410731649824239855118935862181291151479995928601811091874174376418783966750866978347517175703227395189939057868126731749147985354221936668968153918805495921069247526490199157406031131310066729181727885810549785960954111956817492509223230501151651266724528452085375598247428822002172298582392929998078440912871434302343732411553625386171948268620423785438186170667061817224107456212658144360925391085550186798924929150454862901865534651108286824471923849498830914941189365737718709745456283010790431284853761115010288876886668968555497279811740750820315828926959863953820024639811997741835953764166585394775941264815625194418503993942928843105998950947691784756880667634956357474063430823557981759514905097135840202774243524007434623736258744120330293902390604321577283394868913815563701178090933035046386523223590738739405921021076912225305627442870343507062506935707598127293942051802526589831319778170469923360996870853941939709680403228666976683227338349658120133986409586984000873431275657917208235340862831804198723538564305965614891250672242179529726715199753406701263472987966401107721855709048960538435611990754401097201115209047491560310767396216539970544685805526494384983553678272207083917644636660412705403899221532687735730393507901669530621119525103078821637388984711585891954161814673687934201206087496819294107395248534699833160098854620145245531360687446169868875805234018892499909908283196179513944361361176145803351963636628830035528712092302814231906091158397654475051790252944525827084142645093030903156599282432355959615594269387145055277788717889910649188204707460736290229974120984846320786024425917473027769961231331292600869369921746775142119907691862046095621974686529976654729126294398469761456528167783944687662356850542858084520159908637145463886947065052970659337852452318979072879313007060250965483379296055704859901027078661070426618915401972725682077648145937123056481502251715414017021328598193534184902868504581589211907216883989514025946372646920768609614979918832804056186399008171322719119795373789813219025538450032065449315855400619496023350657186507594261742555002356912471523376440962978571926007055483605833535902646694668440610491832776586409984897611390917259734949064993536147962214343735395131674406027351524609962935389247489327471570176449988219318544087858499271631792017831654777054987677791904591813852408248805006632211331694511003739751608834501748390651266265636790260182924176557347337561484571078442718067605652080865547122550520913099904678191510437529136306639632740544936652139099051931962173505486302298632754598462063334888475517809947189109813567623294950657234226206200089454237667911473132890304458490374382396991393483505817171336699833017725217446981652664956150225261880202584019355036469877669259370425088226590681469510670894892265117220530551523141921630040654056308250717175180027258235441751094775671290229408894040999503254956464374640784606574776283634637201510447752518189446612823480139428142399198887705642597855729472839549759793832989174379127205218019272275698837855753470915544341641102977268895556518909616103961237508093201217264865792401905324781182270622073929972362462312628858516616666305893180776420841106015897670989262537666509112272336192068373802959906986851273244010900231081780503506556298100222750836178760827400161648399198042019499803852223694731432129819878207389128980767405459613249671963291394044189975265549249360309097999085535616512879211303069339337418930006062378226562208973285173481532587854240734505689052414320625480994154545966490465990398538013659195001801441037856913755410349385335803410402585458618183863498011418756237427389500310445505922974634723272073328384331807431678933886367154115681006049963322023716405456910553112341704271560742813169123327972545892855996843636335295966393161156047377712461222158559637752393904615478439820303719204113604848151522215715144575483440930749115593540010928689061514746100916417335757751193255332592807358340638212073275781810486303006207752322944278452048938708502206327678359209103178803495778891325966132534421074392787119737401087554991134075050053836048578099970362265350625606639597414128606196144519303630141176143296649642680672787864309781020073631531891378649635990372851232747287016517284107325262486046194113639240752277260161222046749714776058849690920852227734702392159057560657766657293224099220485852714292671000792368736764984536774389569015274542468081483614813823042599029575103596333392963553603272853367593628807946871481748050239505536758367186570050044259647375430041183940403935993059822353509892246760222923587749859270540379482299799763668437413839893342923176391232823333970702650784371890784289472914601908846600530920524869852711314873817716009313440183866195314936288138227292226569715173652224408577123375303877238973459979769284366272043616406764221680788025538214939789228841735923321380339942571854588140956628366021790332095693801003544450729802441387054423885336338804369634066842803898073121711125906126087428393210806752166119006952449579823402043387459541238492756115087379067077550648686374119842356281322344551834298718846208880424622492133554920194326683563333016235247036028310944182515359856309418993541293967367063809881700329313015116576802717501469327512233149835141185877517990187141578740523209146831037141965861753032440985508151771735906662502577122996350603186276592663760852897803986307904320958156485397660459379577047587612730601890796840530265713918539555089099016171846503467211830959876953789614779346592198533745313373408794280814856100090084416255257356334867622393649592430479783827431220416066912218743297893599555003222103660633058906119409176744733512399752741948493051052420246199679317909337749295439018808353551365200014148838460337424687438416357664526155749124035203813907231625392237798019362377722223941821765023615238400043321416877236550260710247037189142631825704655702825139394493083894450217471926268143951836974952467621967654153242201261195883618442002337835805363662392697407496326299396893800789325315139168433816915661447210797515661617546219661778236096254420304232301245711269033162940122264216433120647581867943599514442817321118299228602583817297687026364466443829314604058591046989248870200270192229594647773899215568643605343288806226910570987875307862418359270895286511183411138734276379105750188738048219082022846118462192209592927233007067099997533157295393928572609816795855346458857291995821574973579129021821868107178033268040997803155216862189133491252036978171820816313367820979967043532305588494714270746638968984560832909580872702634082349880076412980451029575488426122360182393534233655000287115847683386483521306719013975508837884740134743381104841333460544830235049878410535585009033808108055984246730619388004625536315818376244208728991950923737227482923669016730307163862541008691107541495853563617522156423146484590071708125093595185083266344342132634548748072777340016305548061003571083227378492058640466453033390758570589007221836819412321299691617809741002764136833404039183768102651430843028472400342640594275814658989021183456233067440189948687215558004422699562741595432678974759401691170573099383147344549447288241762346967958309561055129418659795026871535879868637208569942467073709585647905451948634737298408551385465070422043931071777457505092443495573515545298996165004188593897070724901654900052421429370113730317977846134089473260938565274021113235847093565059027077221784288472780891286631030582670942716677512915991092236660314306965036957364769909246519333120802698001778966664277155614559743162992050782923549677847847053595745648863551345513467478213156928120491168894528002192442576284379974212287109632136711099620185470931534839374725273973917522406859528189443434838943088850364670996141582956323258291802049869792282331855725996434077727578139586610324382182654571354379980933820482687748372119978999353641673960698074217541120566504968381056736614721039838872070162293592444833996540139189915943199229657085321332613199543359739680047920163476681985389577231992197476716751873395174875703836992051104189520203240618386004699275723216279158578042035442370261784296586693438552201583214142008971698633853089972444395855614136562464249545401516141833652796884084231555451824790041170701439593927518107779579562753076005876225449768206207062889108066466990945691454518475837553532857844279435855115572981658851526805873065766806744545045483305687840284217107473802313075170583673740209438923260816443598104807707729059147101316434225880434818255877501446828545013232365008322812664518461734559136616327400277271259149834298034815658520870346130801289290309961067194753514669228946615293988293377518503322678792694843293977170096213814723600751159115043514032883442526110749499467303071999963864301369340482647089210432276908138754778240438717652267362295820446410805044287276543089269780607461872739732557620495705747726316364631298727435650402460430797110588656814724939332625265506973442322936510387766676511536221728718275128745287898621335312831578624850633153688154241616850070705850791547967458674292398979632067717605918399575195871909861280308272183388278788517227217085956957479559260910286298618111946489871225180594482631785909720414517282660031555058433265092362484257543875278778135961351145961049325941757752134559302535035681398365544457425930263987019817221549284589793852386237359489951759770528982172077160640686647980382510929146497257541850679973329069210234280068849060515474468802855356983052628218384129571420240983006766048590076134589568247315699246283902942972577152366658025747772479021073082214548059761830813905382450357650610238606308283865823155516831927212952296195675322935726049843025801322371605384953092590127813580864735118874133369589018780992883800643492048824197911528429075415790799925319276896372603099654285288946732609266080107231009419167877819752796785967572565264734516420124250637641968425822741797277956909719164568252874862088420482610532627186258329778576819633109829187375259494026863043642196373632197186908064479186418426097627931581802671795570066618686700586260013930200707857046869371846655525848962667416203626533513446862108379109836646988463931214138367623368255296740303513668259502872818481955120850932514349098145230160438138426962602825302965238821657469397725300803671507167221838150196492041625169756456262281485939251860542775195449063405024042990311930405064735880626752925433676449100281246005991331350003450921931673906286725224836530917846172414815114814057447887381367545981927944191141654509796222498836474243775119948216063761517435246362082087136135567903803118347288300551735724625255433508772248775682800150732692195926749139652675919865740050729449919825091427099655002053863792179527883844402308683868182679722200281266166554766975921509767789039671941227688478145912677554227362804175332588722671335157623066392943399179264810221377665864881634496718456774550801552647469345557556920156445853080522872139414706947624088248811718371125572924103234983590877404927252302202691613579383785394382981527269139815076955410123086626484125505175903599460672263136071811704724989253267461831118017888213352120030863140111053232353924583943576296846997738989705104150771552227963733777628328495678886442366717564721696381821974164624045562020260500488061225338326238665678972148342333262523586137327177357201988629151407606644446210821000679931684121616237033117554881471910438739234106148358923251454897112433667966930392065160513866073051792155897210599600510055081375526731820192465509456341483173395808905537258320111446078977265188918083631065055079153989688309300936804892741252821085325321791088172964660866051486892572149638532162414465727531110471650013115060105990847267048776909054574988064682200600877357164567731686833358183086202656868960037375266931057723891622948315963917482471378561056226352671367159405017500019272799769328162248997554968951074546242029830815036335155820244648840349523372566745364248258995523722935357451031501320024431076297201382803341719029688471036558326640891442490345330822374460498038144313015236571005740302845812176369829163279836536974213095807336768667535519427168926265565072463421902258809990665830108127715594153097148292936603364546854518077103007241990634244910072837906663183328593679473240504959461455254097159189635000986243365467283106960707971405539008961444683566730665309147098550061637003899934925414511987565789312476704257771534161129680508407689097924991932348274560622595904408405442609327635743271951601682069345547274552792311296482030009843315507654196585066160230669443009965572254264112979357613012178433468281130637059988176984906650873635356611643337302138739342992987787685494409453609465980956995872284377072553307886834139377874011913295793704402422244505534389282681251327158409885138042195375073900039143674960847767005038112668753407846230601543587653155988978000035992160237145258627664979865681135687227567558882698099133302991143923381986853501625298082192074736162934123115909492577966538857791703267343509004949425448091945949333196611147953429604687792104219724734700521689672512711231280847072078503503971966515682642524101187300676408403528346669404400351101539591752610333073906681991436799594301381766372158275199253462153760847892967607127125521201212076831667609936367895478938685020492744062389441285600825825953820246062446432303897721655455459872636377929150625741710117833948248563924326278511018789209108214424194457148870278482803773253552578960194303120516901348210546447998375816748320726099011364326546194035582650702261560010947283566407893991087266461274774924151384016464556984377672837337526576092425193492189871429166914940707831262082612664429411505184473590760443850854543113053183402543293870035902154745605580302798364809906153157366863601599055663394408736964870330625936610028883900969309257289475468517451898750758706831768318735829866999294030786566040699769246990149560799886830249976609969325251645544993615690577401926532829097386689238451772313709274184690449694006225040626360833165763906250841417367745384277587488455074102163603669394707419330936214538558863765503199346410711818363268023241195938701283400502903435114321100250928492943542990240284144752678130248410126951127502276061974732433149440979847698641084115203623681844790512019069307748030973323498699262438729633093118248563750193104794785919346812507450429374320930478938099024771236725058962340761498827038454244605378555418868578662957782236046918713203112106568821735553676163479775138595631756002032338956055966753185538931001427061030676073059534727171828106091571356805004866463659387394613027756084159484522736963887687291009260451381153138886944458966857411941829804727519828000420858838577044564026668489925611910489353281592090330349336832772722047716391922841392691892580215713353284475886720051176289973881375873262417828978554889242961584524398319326719552660100057226771222094387470334701347537264273858128589384555361378652118376977313841658961551370317925442291289753962959597767147889466864611631357385361651655961427678007153686277911456597059839777028534130635616398431264673581276702089182693633383873906693307958670672941301815622489619535667218406855004380281935206137920375232714271127456458123561818524376271875515995456870930834156773464417954387246995577004373899418047929072344213005763666132444386270407768532031309488173986432781620603726092861289109047516011876130799720947990296191160161394585662398668599661785646053545501480398579472908283762264995470554177836854222079658223355730349984203854085745150668272297753219554839343695595407508379365520181583525039937602297570738395301019001225902326731753910320854707510115935430407995282375819018449558871079072260439051765913032264115764955409783248476963460029908365592700343531918646423070449311134821933988834607462461987874977730881800801486950995313751183899955164562293155918038835829113904037864507276821456708570067450820468658648873986894723290156504660407144948567230993665425802018567527615616214661649222045003407707478739500325841404595956896582902329196971940857551682378827327234384871833952409540358858630128722197704817141133864457819320197726776162386505310791342130949659791843380558817438160104121861949637073646413073323152861249482469228221542285815744419683009681950634761076953374529656251107336961003966165695326983951702539893782280882723235313401179638027399199080414627544138494971073307330602101032159331409515212679354691121183110766368761548133616916533504484345153612908211727956829027364149541410238977853225044158285336932197675487734492934565990916669864116235468724204248395536384902158495862494408635542789455322549698883490875218682058911568396127874099309448799764382458285167674058854424294974048085784085065378167818211258624944619503524072519909560964957498346286693470324124667310579351562004089703114439503375887489700374825883486118092759512768564914755732427397956116376761859394648449444587688169427245724786599944217332425286675125826911890497304193357484755201190716849798859616758426084837733512327705375239236567151385824898384092692787724165896949722123391938735599184293920168842126501971897473628591748061519805520471955741681556777345760102005375493482146171661231256453508281338211121382332691913653403698265580966350032906864560623515834827178219572884268723252620924541803680038686385816091576299178506247993452258813337151428060162873424386097425156334057504794207755834822686966653387112730053921755307532911747587860714404290027898217625573693803795424183221032709029123175040433866538736103417059118161628402715167688714637176935329785742711780710511426993605079765727202583360059540881585533055333409635848116302094439877355890655058337922573125500475722698380696198046412379280659580361283344081558124530876069940751777038218880477183984219248014258573720390286826165877924804476293939706520307345184393172861331406048363710730349703201846266942544284178907778739268959317302256109079242532891557800083284149343472610302974761759727111724244694355216994484632310233077739628396444611139667841868143204738112611046338620864987033656812277042975262493533549756324392228616753453965193913963127995012282367566014665775684898966088613570700117768101244128331145685786180629172124879740838252656793933471447192527218371894076700012677951001335477899965703645998682520615689073848221380196577873659991633210614256558688140254634974578496428960828324300339989537587665244462893424772388187841559292248509359298837154229671645117053341976055620742062300812700352397929635149775796294345837765989366894940052295036244399352385743925670164019542786552438219204879632491233207504761224856745542245870103103293309191281654795254204346434451436338330905204961375443108497807631256557578140471268599305054255263815379159291106683200900125564224733565755294033349852703538016316845512453477600516125743784269315331654492430985163390703636899845232190568926342178315336399719937296560654687721970215378092187020838089441363228749501876226831173076059253244436407094736043518787946136806375070868245411889944227419858412238550202904528691579741078491850694310867771041327541545187404054521550565298285179710587849293278990974637748653901915576294403676634214212570860110306322574761240344302532236296392715246683506283674143014913178702862974495835805539793011732935372895075589812871588231205357352319230795482824242122481453722235636362856171477356370722275144648938175890769339278357007916095209583996487277045680271147591507475610394628994192700729586931548420338698904711354696367465390472282011448006881387634085927809513730268625402321683125052629470834809135387712957263616301843975256864206264601137891840643524404610850172285465024605262765146634881288639365394891219857707565368673287232973640357360511423891453085214182517032655325780233619278105408382911556047436437005935532172123961639521876095997220020381206344078241395152431452192758179558257121763647951160034777722713840670136156466654706027620898154734697408595061762072878413230888716218662534835735154790338170915069588001425813448881161075315629138916155015325608802520336641689674938731768146668121571508030218567857267584669799804976794823769321268440843067608377099031998607216006174281684404105868448256825356138892575039043273243088328719866800231978108091103985987527507971283225205154415448523244026279661159159093858854999244543234859239585244294635227867563164540570536494703391303478245964996439796736606134932782373881346336274923971455872252834079996176790150789790728131061780196107800606516134345727902492500128064278381787207647055449805774514674118604939903094310858327081849443263293524605546904562816655341444252539209690911246032773219415504244990941289023708901363221874903826050467786788257857587569867889435783993655005376382680066129779172898102252546243680166168315507873809511290170266467852353024562710954086059149684162483125360186948492776694027734559860288559286921086061157705708656169348041698297990785625738919085299364782752373702673572880700765402824969929734403434693123927320130919071667699360276943916574437426339781568297386844907487190476286006927481752509722662277757101653430779027032510486917637351849582987472119390066251236620118854786557350286350165384325622568562607681559900110812428192894313332946255388174135210502892642869848475741585555255042229844993707006527927058893526115823871243139912556136563286892038540374093894689220931685043043816925863620531386575540849950621262670467615238266292107637930565914374588653981748059255131194946668493972315721034395225486873384590932637345296630364354336195020536710923460784928135230648483980385799801394820568322828027909383595416876516932351731504817141153672563685443395927807221735379841870033848040408085734113958014180609049570804274958254642885873484888527816133443742535404900496900845838808311589974472859194918109600737049277483285479407675731203218414818293287322558036028030989108758895490147173088132713966454248434788734825698748690210175624763151195582335010393638287016311497165047549783258171085366265937827884683127503632697500880641206333177130839676914082113117600556432721647875366381422513452757834241063718012336597949122963426223302049000524061479216039351880098569168016064543230986530466221171148256324449340864612284582000893644162528013292504736906591234909644833268619323092022431196387876890060038597876018860466305619051034240330429360835415436349854484725507778012470716463435119241342811147072619424050195874203135090858625290863433702355815305279080730800685006972300035546823358760625524826677037515160356413069028854543519364831078596534556263255396452884433831498343878010696488826066693287815766220640923317912767482502817431912767750483832232385848264978465995168072813979786894594451457654965425329165589696874934914096719800300165068223282709599291810994770995037774098560869179428866079673138443467495094744927339375469310968369951915668079251253749126682216516390125527441406753662766768611848286079303642966625892993707097780382019423660213569664336282183196546065067623771504420946602996146015288598012616910169044177216355463246529437763612859155065546927265520362878675549863630940267440353084417274901889501993745874002657821779263764633485725101702371184774676283231818619463345783763842148918736842044721192830008504697857826532306277214371680150216366824289996350668482069894630523020801629472890277241504530598338381169183845220753923262888877277654080069961725882797037884932737464372580459903437324506952375519801849763277777001083332891557769827731405094922775138184947262523140120206006198649410360449275305505748942095130936976220141757331663863976687497217626447371518607612888270327110737110995905751146997577306904585416441679152174376331566082886601579967967443900310864311326709065597979230127735426068113997594424533741042733926457669029070630259231272655829885130121598614738518476057568111717497656608584739299204051604210165474669310833005206387987179357826999953206333001248080388161234611975701188420569811924917564331630437532476177432650575285069447127103617488659122495374274360177716581168042865697251896246653404903963015224940724959657023786420439280343780102495716017120948013164585812755924715897750115958678507512383149250991225830275866448796791208138972916524517381935610157444112254353873308264008471991261565887305225186104599064272247595820165712528957694478008357850023792803296826736259554463935700140850829152811032226993617194647341099618719390642814017179517619092794479967158503684083946463083297264667079391953683201613440350430237545822577083481001159826952016100722083382472474283261584828600720520543018137935061651552981804886990553865826634801644097784417290639516848646082504433837569726792936183345570649274441856212926350954200856555990109264884481583044657045355865201253516311793642123559249310451692049223712640403370426899280579343845961624543190786281890332177232355800042755415041883629449335236665277327584467529387490111045120436707334053887412471260499425543590802921050440212853666688619204361901001193460495448849151840109144207435642900993920398170138190337364120516543148892027718994999728430870145042369221623858237152109609530116581009858943371927372790049593915761061432911166594169115944912081581152223609878466369594552059587496051142323022357567994980245227956326596803648964670978402477610147124177087548377027115936673095980489697667992105686400551713975853555667066572158248764485184582880907771289891092087721305874645027883973240273832466570640814384271711007135611211757239098142313421105404531970233552196293503699060368547411656359484814377839528440045847253882296239526183047160169831333741508106027722554240033522295321964626481507390620217474428552236484475066023813380245454817177920925826612460060798008586108206891723126332396993746425840111562761341969485737844285952886933969643666337664013955335480170417519029227827324994969170924065861379647910373356157043704421570562947750287700504581447457673593977770862882853280088272160764401758310080873071763827156477345376206845703839638372080918916774518329297683906913517626395190376687918427012947765358097645251100768929471018402968340561052406433828987101390672748225145091741134019334596131044589619924007941720418010567322574421694403122709546407299857251961395772376440892291358988649345543438212729785050378123699928410516475367965250838838858743630299080938150272800411822052078818256656575477896778761698265426657281291702495822338345303351586253090592105034802844179869192783229429754138358759430832148276396516458505429438159550668981090862965885137016233591178280443086817615916132174085953353471229800882170346762728569388227282888262508245873936551497945631585040206770407629623955173947238652356131936246886486133453017806633962341165848749471951778370972450861370852578959555507522492458177857894702096480994322602187159802110776588160191130835240837246460354144181885541028576772023957723245732541121358669932625064633766500485676751167406806739454728880178285889060941254098276946691020013385310375663623118234448697212271699509782161837968672844519840338251023200168038730202916289796385342513938477718744185858036725199444783197932062769395278156675963425743829287907159140076738959552692669341645318247125999795444362996546165269437370349985094262717217098967431699498288463237781532681606177104108937554811375452687451052756925382084234438421607418232476147746852534218395997892579552300344885875858508114653608221433137458553706513904799625413622055264033162570524734400002960455270155375463011690465107446570667240491082923893926088042950878345398936802243058022164316980733481340407475494358088826667159084341383125092317635359694283280407545386212670073079953181722341598528460265776983283737027527423969586331498540018825326810370834610245127699524503432506285177873247121910550142410294622657749836115430900906954466014997951917598084709951866758953688390770244422511737284607289748498145902865555921500124941714348392775159875348634028195630469282983608998556728252154104554793737601404623456159868668530841847377745251911294101369659381571709884943766562081912206942192717277787585156180689233111833465194901290161672810705023036917090726395458828912318339635469093682891151545074376101424672740093543634993132795861759075243251517325677112921081262703952029682078318358311462674583880256202311678957419628367829856605425155406502763231080228330069302741465826822712670186629639984769257857983278353976832697967972730070880082049911513110526184551955605939093259056002029719371357191121447077118760756276466757622933608708690584223165927410453833151964423108169641269045885466347166013073462125332551408787050212495827366465684340939397776222942846001989953980955828844735061291487114070410279269923183170261935458624926910623694749450268719087574851798106239148489566216157540248410708183093158467685341570833985520828387637254317166304454077226992656571126405675081186033404502008178423849837469605347558213072707959555765374677425485867219641198857161727555025880732074505020751229748317749429738407252720590868898356009967756604798753875364915713336162138646691529496426176967543735705396851421383778607424213192881870060845431854319583475597077969628093902366804379451312937505331940921344377231092751780789536844756253202112546803692127286481011787332491730322924028261183454252815589458550932311785776006082616455939675517889417194497636554444733847971158686494181910496300349143915520119549468183090990408331797365527512925746206136201885629852200036335525966737747825177671494812006569260533463972187338247240006804587713392543811843082068135855654407716130654371675145170519263621784707260190043325198396484558117749817168956466580232642259612369126984642690714479651785478357178198425595214303465015991339472236631871725005808504366371918855282349946890508819199420851386845371132308114182719716917771960579089569385937321515776936069149719024688077569194500842386834284449133570866803393410651966699117440433897992405804839053148505801007147091495388824252652317203492986222546570847629438563285407347015156096676008364937603568334635382102597609763909537373707909799623768112304058621858871471656280976248096500685646559816995995875949022345793401696655572690490475071427604655626399888493732437821791288830303775209672695529811055965516328936279855606437511858336794456490740489398864736555818119108604727460808468925999422868213773509941815077811585114510446283434500746343205783087238829890572403644910251164911175039598813079283861512833831635874485196196053515177802332100223122973045466817248658013423329489060058964013937673741384361717320320971034287249650959244252509254879003929891025641073829511675371086405081923327685466786589850103105469290538815810229342556382731370115069875307201526631653392963920518537395114533778823318037606366438397759310034319316131815443296537086588073734772443747861483310025803371561593224108680449930853461707382618280345510616102208247019574012697491817225238705456727668033102563806631338290586241125054316422402597240531970718116665674977942810255036861980276605951741644059846328847537200096428193465724097144035637356929517601297885874143431438117445312313188160825357719668539173321901614124821897665797454500559149635515402979608714252095009379872016955045082978999163750567941447767747171518154377019266611955384730033107657626755542459031838257916236815432374912133706052803780398459518433378600413934788842591838997761361477115050765027085151540245043228144749973193179696488782375344712306272330263805637332246974431412283270850480900326504142832267540935830716157645731775254248661019555937052067618646086489524311333890746399214435519843573965075793975932162022930215550039330916207627351204836024273106639474410657366074549842924102370619097784159488545125962145155941382772230936913580676667263540881355971138562573818576359318281713122620049848809683145994489228713832500112623044975860481624228725378246696149356305413841594505271830566740087976987487106002458878920446873101849100470739152687443136874411402770342706641722035306733415979185293626095110945915519612535258810498947400361436205198395161343278392692509714357357199060211296085428454975094304479776292505909154202026067595689107315970313536941037486019332858999401282555986344188948655370223400163994496774062712152030630338642561549474667351886919391208388510751341701370402888840368983876102124585975933116487225358200190495752135973680514276565612620658152471705890830403938238848742555877359664504955330537492802059829022094971927706078059953072908930565481923194698123445180817018547346186169602385200421055528428370028140475439639561923921662753591494214428930662475750072799958463837406382028344243509300369006112380103820145013265282656549659755273415282886893753336816129240448039689210939745250109820995282543743244908302410354964788245112073830730352333187171621209520942180781637988834026663971850043220822150006318007985393780865364949452661434246460203767252229186063238488089658604863944010588104225493503844262843439711582267761738364379555809189297943931030463536134306375942254212272091411984747601216138771386178245526080299128495722288319744746358618240231734405043771277316304169187931344326423827565709216158350999316781691260769678660781948772945684049384077850351556071816589854805260913429369227834640024806504408943326515858644862227081754210751244706826074890617746923311437991541096549977743340446874261696523226893360711494323137545684728249063318400196490327300920156981843602058844682503096893636436345943664175209781201311884026763511905690495815855958741818156213448233170385938400882751001770190341673969205808498248528464472191160462289145336997046741186130062790570455437428404265768099353331838887845253227900133080679953075646827978744532197715372319777832186550375756384155137698625910557009093685716422059008960908885509102054507293759337217575394366354646194285301087393338393512202670794381730025608996070046605648914897306225162033918784885359913261665647963364154444477941240672516206510621775534948440208192632181197224011060338861065185130328501192368355190692903741850220962269389374365362003312502634124494859220731858742603146054016650745710506673654080829009678316782494290442983564591265108430449496113846187430574879591108863698000214386140112402676345209602702398588666867806036857319725261544234862541989882172950375878527793888752473005241246402747484565878510591993561555847836020601271632874068801076848323837764735091775682167323959259518626279414950993273346382172972635240215917349246984987069374792119789919740768624789388633295487645195882421593010450570980592083263833528266634728563239863682640298088027062521937865895546314579239182495467028069009545618934425852582565221779338806596304837062706256524015580930859911732918120021447072160040138499587990274409136771527513827136214545291787401135776711184788043047101522581728338318199829213309614418013272214926364652887992266735062114856564297625112787186391190776307230899493976639017094453849069022636727691453223062021094310081572418655164653200297562444510912415559940571739565277130689290469020827687316567811162265583516829729346595614872436202992507217980076502759661336614787787070731822210484836868073142614368203063414886528479099027534696153574021039760947704909729001532372604797365178964253871993228664162408771100886183631426387123761653382881366804090689742770283934749810876254187404058001141312158376209651054957709703675424439904238474688067242783774774612138765766780829932833656599577880175126971247397649767133364922355391780051218994357481494234601653106347338715013833441460858152805015143832241270075733963400236462240277537792635151580373920897756526224399729378900487098179923399135398605347929450353989546537420693193127049734788949822163437847679320644838150567106058826563963788597617833248472534926193395543464929127916938787494128340382761874081106058420553627244391813609722367987197923991401125577933536613929019326228241487235197197611480005825289232708884070584983558831436443716658965585177978972732566540899888491750498932041368449368686214065269728233969406263765127653876620014382846813835710582354110080872666341029222848208657040339957683038784855957409518400130176385961988510846106561534366136285302320610350475880189109434700347380957752638979093396287966771769006365392711413817977847917749047268843104630796369029201221541627637350510333814601397118451427320145567861746020737028889129952347661686167555929587894085142877564263600642162285548029400147843229176084683380284542439139337663104132045605474230275943852270049798276628149197448288664809029410582776190454202982342380026480290193251215815835263674704737719026765601563405639020325964217563649489531444038737083096968528774967035321032907130073757180742487079086418164319308296568775989338871184739479840647648928139136396639193377641663452771495050059649744370330193196012955307107355762668388745560388307919051065975091661419427393380733971753605508706382639143918845699554600131904697667201650307261397662021486765384394534581352028384495468713783921572995506950883219611583062118479723729793469584341931981447530159119966565453948108602517777872373426119718666517273990270586387535385560340737843884853127017964479816603493785731380532900914336262489895467317534672478541212843998246817155762630330548991641419492692869032242919895586374201092171861967112661830121875742362138510672380396590056190397123483825842973066343108993000264489055823859553953716719829559565199242188957086188897353006796986775300283493071296006599602937610543853991531482551501461309898109701030141396382703012488093974079233550442335112824538001537038368565601004741975681329290900054150399423468779108854535394680142216739900873898001834896249605305681677984591903848672308732767904776332116189650466044998513804585957286160777331218419980514161618044353403790253001513485641433896818369385228400402794113805569710289524011096272086157923049708213878960492140445129492445078739142304774994898220121250881800086637625111892269261022641609773690860138085839326811983918204228262391335367200876730328838347638520342005127484275341701578012022330829821540910786348844573978807045550195260426395256507072820407335332959408597268015656093393649193268583669381284085769370211955955289575713949107057743516487598425523590885885259060588547769506563419540292139170838372432556220253916532653149944061393700926657858053898234358226619230394709672691502007452321806797153035878535221832498758041156182163302741327126334860224440834421078716061959121773689680852660416651126914835539542222293186342387189823124759293023081975790714419592551689288103604988697838023142517618894845740231404588577576209500898500737056798451281502422257221116466886873748722682660685987147515641617397322189944410889569484526612076041672033325784974501305394606440860442716050694662659226107182016473836581346425486957128748651491438113725289391609707856332415069502459054033309149362968890888778144446763165859978392851801177832553306640008635912104824591265465583898017510181233964240357960429568424501197073851238148794013882847054058014607085213576312250270165235699300086434647565655109536795141806313127318813236491044944120080508328258229613108602157560743590272997625280735317726426780404985074816149301678233963510674390136042285132116936135430374224055964083329822716593070150250177404960264974375101313175196356901671168512509985556554856560142134905310909254659421348767701166658764542808594726130865915651110447955736329218983442204251829985953227193138364841402029767816653802239775538360415614580366824209599180348728694733589079699200005798102199460195900123724971677136250267534766557299011059232001025872622668330112599180726536250660199379039699986671382654900280847249876741948627329399169841091452350755317018239953357831331415305990948799876851284749229133109972595384387956537182740736430435882676387059773177940173017919708120541770778077024350894674222179448181961714285928458984274841983659331498966823210658218591217802985910446405965341359640749100706643859978591114266526316167099210162373777697436613560682958535393349975176988297648740345933095176905790103394565390568442426982539670913522575640369381775407347605521765991261606407855537968669973922321194682226440487508111351796617737083943214608312802015892506625759618658678787654740996010822318564596869228322188583261043627734766265414871353286954008098985374803205850952055923551118228640512512832785225321603326526913162332715719222607638493187123957627501613692800320862621107805673811675757550844575849191382679117747694319178716513323259390549049690769423299894282121819665533607793074922750984895061079171051498716877314249546880979832624311899480826364259773702797431782603579083854600841441670442574470023024144370418823564146252159325290736545347512948983079990270631613470357790860888036057589915927906878246944520700016336206679225879766867221898799761572378206522647365232279489156469454499338565730113763608921809144205703609786945388672286311680573041590784833399356252706266826083752355276717056513064089087368046071475027923037164511258850628087822975358910791611093069794049935667067007420858225498787037706492419529441822064122908163891988013719886345913944618919575876741219787526310415907602911649838172009407901895764499493848541324561620666883911919897405946788258072322385587018647898572252745249917438431975665736337803868127774411601412009436119741166203291032928666299317559069292234418424297814852731031806818861383786681379619012182027664124456738888211235337230330123474690959695534722806132346491561063816259897287741376396084241660343259673579815863019811736315893941016996400847252613424398283260365191783108574939361123003438818631738027926110247585462905094364077144499390254418385053177405738809123379274154704154286372149329681306210513408569907752452089897885644787656479660041829970778964575239922685346097185353107087358453082984529720799329188806349204632259875377497640351616713581751874752328732375617366997416082727029658454029771092941624309624447180859256971381526148622681618640719265831356383976516266326115080618715123672278978659403332493102868740335307714001479845943130075585215951726470527462553614065876901600839751237926346398944431394288935745597399258101237099844575405114140264410948834946533869235899419215633503697756388521605511337102938436233212400079527052974791972782636048261379143437638750523110334059665473744962708627593131979397460267388261364349284082724105235827628522473984439690358635095668747271269618676800755965724569144654750948090511779314165687532294900090853944987648792822500861280235222043285365827540039408687159946379305956228972670293082437247284528320333313106653605608889635973910857240923767306283759632982015003279105061208253075616137733743941742421455883238385392080462925520922031768435160016800025432799128608386432160932628331915619972942632744217065544887963118892668007886447885753660011034827476725819204473595008324762847042525510219164132462101149235049124869602442661420017672143542560459991598757871655476259506470392227787251959303211060809624999408505747972748084783856653218417308503250154352923934729722118141321186769390218205004790096040211097922425044374154171050906471714449368409486982081996231693551986427884223668608360589569866184688284540198938756717557812902495712010385219629087471870311192518000635693289723701871586741726485410246632097565563036333742969621584869557482171076677983792932877545089542096643626962499791884492524774185427558664306075247871681297028994404052179965107284443152896420822344311502805216370507086178761926810218822593217221187871400317278295970110019342039470039723338467594291195945847460027080511739068721065874549914504621113584996788882882335339651292743977518493015570166859142513058734928749793698654042924826063604314703210726985998108127212384736822432217565761214869295372029747296630914790991535201800549843633976576185749584852480475280542177122515147511220671250203464971954369120063722824036006522117782159052083407160913882844112636302928736738830745572891100059404199474227597460741199419967718026826272370668794416023255097091310620604977085599634226254009324630934784050171943498809049023751275875913401304518730174773986523818582664410556874626165151530011819802709054847992296784183554412393152587079506052750038523038726868004174107616912089475202564716039030909601013126976523839888830837715025461960914293886455219426170415243084184068218103595932884888231360488007105670118634530208483529116591213934487577113259659725005002363931944167418451353084529742435337085091746849681220222576297923496074341629686070481497447946730048145878194173502989218089565088629010879735628722199925024912833231928896720761353815133828377140506083589054076884502776448738601839870622071141294058741428922298485406678587267443875486857944041684352833869829796640805427021127375040698777889687503825544930988277758046808511221800201698025741755655850183399385590266209928379051810779039961781669431646292551226473234020972262279704076955655288045956619255878039934306351174714968468690294510152147225134994746215636623527039349219830752925070033859641127505413785271463949522483920357215494387103347257163008218564461536922251019754238802875506513898303898151099114325650093639178976286963019705213202053110386589870512720319021928838181167328179409795417472779325559191860766723669393713509439839594721757875273190537019576481707023409588197830424722625397174242463694749626699634648252301160465712326652633062921464805489738333689217302785812764954056221221345123419087343314455278412585546894266353289668172379885093159677367380100935904086484584726740344747298867874024076051015278857782872417544411304994721778031368125957494437447552578656543208028257315360659387180214362161808176308446021681125893529329535022655825664885706346834598066237351732853122619863872452274726130099536908087262383255555801566143420947328325722243571670940676385825506791863695158180336096833571906332933538674885650539574403775629217213753767458352091892821506554414225450024640914466404002570246874675457680627388956132103758062743176053428682523503854429025741107332468301148572373508143737178782888939307097986087489033155223163329296772383061743765174306412370474841252752228178943696396396133976996502476872253932527619223817607592756882817102263961861383048784598356273782174740516173451489908834839793155441796744534040457162653067098527778388226453600010591428993908252906961889987294816079751433387017676269922802298623169719974575985951475210710464742228830377091279117880967835061370709550275220662508897966707800142402860641598990316066621009094216976741415531731408813020214313827445024696850266078996449700672241864555063499150071932669111818999563510947889242543910364551600893206703485808158143169659723753137365730319316628248253312077803533667949319748831637177140886941742015075538508765896028615489530216751479582064364140214473152689534837454389638811908403359124637464096623428108528863177399690551909009704982418896003073643392205389345003760983323515356602245370929119836866951058217615496075583699620795259607061789580475817281249391697917216330148697578534028653505541817319213797174863730958621432699016232099973240877602428911691828805703397702842050084655824720262231095470294572906038181553506668499492233475830851658462857531248271988590492484084915965486884670856644170530806772603426780831848140607475236007116259336939616594870974566378419887098409157782897494441276753577456902576589609507673138515126298144038410538932226089251760601173859421241157944855358582981471170016206049609310560299686740581636365273592955211315750453866157928766978587950321228901086258038345687226969985812285106919750721101769075674126449725788593680833722368320564245408232998050481038153671279045365893668928793991894257657876089148797897035845246140677560331269246803006262585907887777661807486397168533909948228645379321404714115865173046120359720059649562157917435238241204026790760869169186759168988847399600868647020650134743231800369482904435782010295336946233169581962457091955024085705710600774093167761206345375548504961738202346190245466515704351364007170867851812021489716248122557704506734333888745150183191899856112987052405908868734258124273845244329485632363734472130043959785163622352239162145900150944196230027495505263537076512234429575066780153038205154911540494643060768781504753091924386900728603071472408602434303012711372515041423873554461415398258101829514867424594040492177769419019758350243700165188263119100592549980710496838503911088574507999695465808100010331967078704305607366614808958117287474476172256666847423477544000028285172134300258250873994051323326330366611760722091648249226313999290291337716051160923319032053247047606357215250464047647292538030146294626775615447922919441732359787225667165582098200338134232062433529047222237159690971457756474205591352177835954644748861168867723738589183457318805636068361700994751644218201281265519549127859044124127640872466838822185599700015924117105145750222200610517191725484298690817069770220874943082739140472678450846352452032167812634649165046582542629301969382043896074518734048476405951594613528514960119808650165306815500394765789285851809677362241593134638383305152816249269437791229505935722657532302924734934023745865724288667389404767068303766099411709479090693365730859057317093772000268662543405998595220424483897890211082156174557452678181942954043978458084992822526486306622973675516708688602835484327840662675245385690179913070827994695788838014571480134462040462909334447384244264822311579368253796503314349514634853600705425111668784584163914689319792507572303646069821858754254505672688873439546183357450876357345214010091117571103540273551489401913704875777314770234115720224503721784893946744081047202531815255907284445930024700805794053051741405018116115180380206187781512473856757965425473294218246837821482057308607461543773187914223289376048957930510737722195519125116687750705739056332473723980626187102934449369331392790462550063199655342768593982044056485816623476898712589898353300191780350608253530612148119063467306131329731385874579408097713565116462287447787509905801573819411580771114984526164509829633263373335061069587691738065676155647765867153262198915787239658819250506660580439569572815588029559585182153697768238247028741913684684762463420962700305296803670126300860584576528304972314963318758197336376610353854942017113362211230216690322498250692363929368928029429028635704730120062986107535005747867373726223191686697225859126734978725425459485079796993878944972342504336371885389632427003014304965908648666165875971569675561599485795685854866587515784671132118264825233325439442306695276026897042319411295690783552774800639471600442197257003680827438298462611905770691102698390218699705515301844458211492032990318817160404634645426658594195301424426746486009443912221768780232435986562347171044431362923661649666759633909485153826386921864877424791689778432419689559582689899618501623061179218982693295688511114414901451121161742573370783667700659165849858979011461375428638505936719928257602653319306633908849480616537156510903870153026533823047501974551361487629177198600804930643534792064837916680239278902651023392929141312714604709590740854957751122103057773322114973182811327207527464511430793140321631705663718938028357279248041027143141384639847879033870967128910984324311432621102692937824832153633477707140220658664409607160031283106482179303574360617834647069792041241435936575634095603202428827563423287435339488148529542372358532520875393038756076402900884388699191383056284032983186769304068331412039027279874437270017503632798297020114018202741664531538607994659233475188084152394425725216013735821308703853748239996696630548874440116112283835465989562873072667370979998099613058754389018373950519493733336282587056931642814737694345749336063453109204704370095300248645970802680944239963594442915443922579484327791148081520272160489084814296841841444235113071177176086370293793823037077005857286175465238442105738686764229976417427403604167133266054565736004568608870419096211290026802477888026797570973584491767965289106509828532295625802802688792106353728832394888878933551690164017428116219941346362099531750952716455077214471396562117461276296074738758397573866237696347416995139294048075617986728316471124708927822048085601112198619925733895569161797599493624625384393131629850315127401283688535912940808527375238860627775417340395240393861264295057663725636679883789279262046509656390709149173674513958986079322319570735119211583636895668076128704366226250240889773784237599634221787484232581678234993154778426266549035357802478242092943655329544752563640472719388173856086630139006719645679713453845488368089192690741610671526355500428641398374392062477254004722018989572333975028070485651326245112797436576768647142271021926886112701693783639554758763032078300075244371407492067552116056449646057674632911388511709771776305355562527129213295479384732184685660587768491272432912110648633895556429003127744544289749115170357808791267965488950599271764141337718612235478629004812148248734718747324080712447677608204759459755915612694584003533626809878182394720872610168684489248410395472474852917496956532568149772066576602298665168352059265573977006984264767424154576515317958685023510545096562829667156550653118573842562733896969858319144932069385992844701711223074351326141284570056050383743210246094503556536117210227506377219895854243002854513520486726097604850307143455183415998423263298235823247813483289733615836999058528288139450320272968039188429839130428675426126171131970398629070490853114758245250010581558981447734468754116304026981998675951025871530474087704943474467386695489413657494531538957479860533194229394685502479188282818537453063912224165842543164689734054046324836564188078990287637307934172436982627183475853062313787707602120007235231618412209468016222888361521541657295155359641597459960404778960449529855479741028660314062238421183702493575760646565271095338131295034819733837564096285397442407447549166130790153639262598270338628157279862215180975088297981671191863612654224785989696276716729553702355958238577998905891457914160902952681695539128814215207194727216628831409589423891969010471217599741474018086483572609840612295295673381724459935614248525762469817073191639813097141411760931133756471296987963310267431104108191291761105327692491155132179372953103207779129268826947613450275103672526295846121046774991898292132659725676986590848515316016937772659297880028902518914642017957905486943594071507866542627687773932529087520799647242885040892423684953040112701346158059183004265896485491664018873234691324436129547570860165726984712061879946223379277993619599943193418356379833404801512909768112566251451109251595701342159189375428808526221381225803647355398940189855914567153283632839508224986702794789401318864431199561969804595965544269843724335886468255206362401262370998492079985328817938253972998793412828977621497185574457912237627465761713587594090703772784303169899609962770759133327300157948437819489750259693864982822333459868157250994704114419720292860722247773003151564016746125097664054684903988540050700034711064399228521110783146439654770805450955909579718747771347705170606869510298693844158758870827910799913270434654640084315002953852805589867307497620208776744609647086770813042632165304696762754169744006717975177644944402526228797054967642750589997346086336024729707501519149965013248493399884851247439198397145262573671188291003163641975498215528540604727556960991685439874918972847084895637878317598318207635917992233723352978817497190745238588091385071613577778615165276849697782562715526355790200594392558674641520622250021866513661369317416750248819781574881714809228235785721580225128601845165997610118756873668964563286421961065193372482641983428806705666835443826299242828913796842504949524283571783118937363682710975213418964025779507043016140778508025240641716997654363692049260376229913838206141065705527371302067737727360448615618327107354620409617229338976418138574803775371890649187231148778149518679334418229216852073850115811905979695269954940367868147245901751371486555317301578063462511735305908609855902321181742052224310541066819499126605082735107650031711135351984104194802498632802355892234784398600189667876948137673633471067208412782572300341101796082971149636837108601200396203145278524869928801083479051342338268532690351946057759953872933146477749233149808954770115648452565395350460202080196241868888331595006287154571403211679921588160410831386238538038410082614289345401590077584520161981064153032658723936706159857778908705745250422466730506144834989892624142386198897841787265856707842600178911977580088126157419657956080342077178257722595491947691855327625365124994808478929326025975758299395675617607613887862505110870693495668881821913848821289515123362825827099950199859834803552897319170025531776132083422911914554859497228986199534196281825795205650026808614607634789360953518910773567339941486290138287267621502798594440702412300826582333686275938711597148972274251345254724400995096735238497299260313244102918487377960987400605189703803602291324408987443118696356255729160908496103304181272415801120758770751713932522386460758021757513030062270622775346236369705007737981105809179905532630580917752635438185966922728295367535537422511494300250483166408035898020791665009736772819909009325215948868148273124458809783289407376399458725476546529975220709857215239743088359602272254384939613184629002007073829167701318255032354148853487820824378287553732704643731923483074668717691737082592838042079856944051031967227517753329954372124751711796786017480656871864918501063369537094769576763073391254004448566364933544102604215506724788971915819837309414010344274147727764813395771371231028197285334113242369981770391163866568553935819688621747988044943087939459124783083547829664896337810168590378715200424307667898397277359076735184734896811428685359195766327579769731526216635940185416134281090176025050754053725468207393223359294319883435882121763734365316882246818688659815996532482564804021564955279126636873542677112005440660743364790111475558895481604981138898548116881219933511190556515426771511853473353123218003314789522262701141847219177259969207640978726520047233368009939990834127608527726422770448780576315066508904342575728212724202979354800906598683986340600809191800448921728954800425659231878008919992183540097447980616093761507505910231555060440453392336101441398619615870106754187922974320820552047651746033394062031810698046427587535940264386617245279730498253840771088772100103709682503178522232767077305007339079492763701978123759438690709898214940971168120868489715899553349646873439780827984806519932965166421636236517961028575931712894282786373466628424919580127637480126916865504967588962384460633531699031978066163246941537963962410030189684934068698556637411711658279308833384988097921812786032670950611408460005400210162779441399858345736068595453907750982489675107536005702821472415016198122723056415143173480317837935125215457069663004987466931418528785852058516839509989382097574897709015483784690322902076961939180303902508924595109397105397021689504790093834390999897105038037599657725470262816772872353765250458772020168371506514690688849940272088206273845873066285302560803742696449264731771390121974240222606092952208210179623178676080879266180935285564432587749432287796936492788551812090058431658367766705041888760879114540398041987560970539008458860601614183703535313859141647706194473322389679709312374909571822998311740903839759356305041437117617504247521146621876045445637806454979160315197144265818381994271387137335623593881868321995060913990676248096054119522219594058418913859233455013949579987816691994033529185329184167462627611435783395777176196600443229232483285023317065248298084450788969261624151884622337704386341659908328105915982970162795721448526564918135852051078738823131903021139444619825627655486507795330924720772991512599603291470868681944108192282706816260256192225028221356702818862767586181231677884774143115065118384869838775614528306370779475797817716237546280417690318426958581806194591156172794486491791537073469442429512875536661446695869370260198992574049810124164618647184116401425621742751704759282669265246019817351947749471220096119670872952903342191200622083681471738609392264609127917577431702263287283119515597014501666564249676578643495569014332620924894490758111403696466951288615580596644229212089333043196866142886731687052619051027552046235995518654424652878426937327454989524899189289005890234681671038087393838556585500296018354155642448993967646650317168882071637568752662955494536828803127485968693580938836990500173911331414967687958855184937795301981843110333076897066766557855061080348327041106219879137043270850724311177379617025005998183291578635701550207313148875166103265878265220647471471645712440925248734782105361099623514219358290499394883539437055928080231496530394463297965297621837358075187603233298222818771522336444510406414492002403419804629308350878500834099731692190512333977663320805102901690432444701888538042521105747179776562976719774256179087278609964589365577926811234408043556051355732146633376914738536623623800592698803748639160750893913816018368798316132489621894566454604618336097099526384638012550854766972601716532683467585764060190114060742776444994146701881599730652270933776135613232664826066995532027542377709387460935568574829286658375637915570114530197660378681048922598571950876804953821761037214068824150615581820132747140852454312407920888368641683935353043699443893685980927118095691234022401221866332023317977662285025733444847318651100603189628266789069019296466596121749864588057920240963644600003011950128580604239686454216058649054344445816544157659757510479644000178832214216362052504732030751591094606006587843834692260750309201590081252619367882538119999269095646090221635347224753449835916869538867128412544599075045922858073247661724999812873869616839500362269589415291997694834002330670979456412664889723067987597271761342210172939740511429407536332918389781175514946729291792421283846581684888163595252614743911626000307322513321262036524990732814374577455495150992535873958473840930787317345517454910319109091455992413114971403074666750375239827702443322942894709593393037472280166845439690602988993374658481152554120257314029254660765852162111861053455244078643039540780300567542805046916804128573420791483866069578863686380643850113965581921895579488068488820240050886384623152092462101344573795943318292190138650564884218105994926282934340720019721877013287583538564514799265685014867203589878814618424060532337580068761178922075362958472886641517169805549880727341725566137823181587489315832781340590606970826407231189489107071327563898343217137644448824033951268726138550439052010844666849440800806930544573143149731222885379321785044307151285352286183361253555841032514880699073071381584155219643708520720984175728976141430903271374169913212665521191991159625169267997908278454716248923196145071961203718612075531558281046046303348134839761303381740846563303912799697713034625126878854580784873088823085425546943602152265217959734804522632615996139622066651128421351310302593590153559443397185321077912702972165219641613781929837974605233001691786476310673441872592486643812775988884707421649975007673399299578055471329341011717462310777001767979987697398183808254579353341702213703382323237979418853967368726581052327202346619048052324758925334073617714617673610979424111138973342612051046032170410639903633499762294547667824395148434384718436085413677612501790841228958649555503514903204055658749351570949510328828097834716544840782536656297408053590065605596087783082142345300931569542112794297962421436435231927466716643727225253157035456900546507843599548023820589009047102233902610476316297433297796355948305238505507408033525885746260121385643932532753229431429780886504049907861652511248958456707265813300932615844159644165088914522692522836690567219678698401228973598472043830568534251772366678448260240140141212321715372673870389259476923510715121547122062219496153921306842450253468016828555116126928615018536122201382942646690525201357461720423060450185901878813397351375903852587272702271021513953063977638852542855061463866774378995679018533166463646241070195765914635798980578205321891451154276066853945908639057974184268658871041528215145893886804222567218195203659284130097619533926949476481268467218874857016513596801889803651096356344637120850093203067825590560529849461858972722866100538268685199164808850489221771220585867874144754798632983827842132685269854578511465494465484643682379133687874020527892631913052699462174586739883471994703120950022649421001575541791220312492249758709030136490161794755183924771512966811668018403216608508202647986094889782308416984980922323044086008835336325519961961579963882561960618886768100392733941451245456999323967904764288780932761997035564437614418703326487571039766216482874652871141097489803024449924290632156828626631541381327403091957636469625213959345821766034870683594733002589943270429840004152512429718017976260084311642710298455005687143328101411584028417391920740740192117171926134577328580992280881687486733558746316265296600903741497057909529197688292553597870167121774533742957109388587514466708601944781661115000912715452966203976518517780832572139690544567356990143564554435961386675890082076273921887617579800425332503374542597350340900306658144566651569634664616355519694115688739754948814738068258393446088686675493961647627343894066539809709112384727742732283626789902185420208009380859750505882138181473383933363858753298843121302423801968243891645788402463086497810485099910765035078452516748450912219730499623378353058621279561346519187388129218870724389968365130342209425146880167084237352227241671110871850663228293823222916774280818516114070518118730236358099388965715351246549237354179273295568109735725728725843944099588730021167282730835932447518914539764706104298091249168036718249125797804537965934890958927430159657041890351190591505034993790018264089580257686570796074042800833379611584583844239775127470702783551408506353617758420832587792679360905780052063832626159792044284220156905848184634653602889088570665031638431552860754647058774623923738343457016965066625312600418313691601983742574593747360320527453705290670672327779716678384586718790237060474036413237173366294917586156698766256084043385834222615940675772954393389581802941972042130513866462368069355847138760839439070742908337046041912411426683171496436893214308839333652366984119820006103088389075156961734822554882256533028332475449988724898059802154988160702968998288292182150874574447857151887158827316606565957623144811846474988929834905913941167370631520928413402875837125091552427291723786309932381469905447704014288067832103554146073679822465530656317118273739852286319500742803421232275098098474467615158188351291316570135685015343665991909194852782675378720848271544357049481322969094546112628990134708996888296336571163078344680583278399891021932316921830873691490586720342296491752953292738477232092127825632822000705189395727047295501517802782748588831692397935497115487663574727295367958652398848579373571974088073071927195563352557431186670897471806960174375551998857982794375423209524881839889758382690524598746000482867246000602587414660751440662669447057774711475351281983074301276780592866651853613001396455860128316760125150011913777390329883873822327943376851762702665310484225279043531746692384806472248435831885599768037991686338492946942899354627867301624358200375018225943677548393644476704821656948291870022808399188643734284183666917953790710137126186393365874339693001738244063407318580763943635554018852444031281131692069370213345283358381895790812681737633014493111543350687555202338718737811384588408407533472311445887180582149570994467433391488812516887882999980540164760548970096489006465128596329318846273616012953545769933256673653394906636729855782771449020853148493041049950671671019930702723711589879348665770166811409802450607815261731472248623222604215651267043153761208035300793089697472165546049945411998461860558904955838485809564326027026040772592152113100269001096456181157979776481575789832631125770896648488461649593397177301371159145440975498042731902486730518655159560976318005296495650911043141656566196417561000621461885164127386922806167936565346406464470818892979222507111211815696548525431576677544693260117489365848789195267540512948892612595379717039418559752237905988367145636054249184730032652211520640513693936297901651695456348480092528056593019772688286907441185253920236831191672814625708087145699691775077247670095448758665820579941053105184329465088738344208887695096335580763047866579127725898880916438175744565020729406406287984455385841651039812573237869183523065232260306312716162734346354080116265028899637115892881871368599748567419324103794717302390999353438307814522153128045254834304296858998471317904469929620874660435625207429943800174467859129168533820002105841080682149944373977112327944393261139964329786956379292093882166877216692958593669214086085420981705609811022973352545567635319067184949742466333806866387082338881586127833925686248957215217047861427120386708433049127493347087009241073294437170051361436919137874499165552061623978894454487769994662562331627594424029861715424821875324932513682074588015224809266048253046082212155636579161119884177260499691207886562951317982312501586888079137747849201019939689903620355258197314749192157764288787874508884530014109691646213234539076596180832850209488425851523878179033851776404658737470136380235579425499308669532080832875178416368283450157303961094752106036416895977771357454598043404267763443407694445145048763738037875886352389798626560775831516537774561457302744636138205778058934361104170479313217027526804341527504247893315652815027809283906191542417792702419899016736605752842275917119231073346135243989765312400079305276709028071246112906878144691539239797732878573464266700830119448666932233245126131694979857522199735051183352243389991241453543298950702403433129373114280977655640145189731031101496651052722308673377612472801283099766696936505940824709393722876723808223599054668714014464178247502608136754196006950227825929303437049860600626881935753515450550610616666559073203162958202075376650862488532593397498569236602077778356284025698736765289761404658881523666735887370027337809627084922413361407997294803870972597790959013826325670030342059152746693467554811834046346653049693231398051842994234887610451443746079154000881728595508044172740253011664746480949142909908161379819783387949022256634693108788575107355414379811824703507164348338327506028718983861450397331883237777411701591521172887633848071132142122917966499767056238961634112961159624167838135910267471572836853712382613690877399793703100039377745233700324378889375867960499698029194417608234389218530025768471917760868363965998850182441807783586977250458282268403070928640690886043882922022265991067663983997881487372932054304912163360324756496620240881029442702279433757985280196869141036817766734468222038218734172205974131604616512725254841381781155683559062693220550977696272103745389929252083837723613621325581735341593967854212901263623667678238125272083724676180622999078280075972841309533110917798322912149813202224223019177246630971814699465204381612928036293697042319227981604293442154584353524317064512869823534019993273908293400131334912645393144652840762474435682008132597720795106277246259940717021093124979641401609901868969231064686064407232343934517767739570054719139845277364488506197179597932080902636424516882235687126042683152649683645289698809888566362795041098790980294516699070538078337911646896396976993849282033115834392936095927406608993040583327038160974215381439656289277621468900726662435428357335950830323049812585662410820510296394915387053496769305928675767649831799798567466172711590444862611603864851154667035146950979234657610069457536556278096416908445460920993345535107219507137941084291930896457897783372330858376509151191353537599074635602155057278535044948175747630763687815272110979779705381977653284962325118697216796386521562857466393453022118802118678026775317605896333002733148961519483638548967286711132088496723183173204300820210754144487384842705989359518652495980601731084773628717503760979762215656587402298833600078799723063983508041761926978625456089100135046273506389522534054823912890769637985231903906606985185864735425262325832738541028158720775807285097273253081617899099482482058243563271019259249987620927883169403738808790133959236483633047573695489342341773268313055749911419566667600269515023095397189252968176662634236313946801612702476982324351359637526272029021332181006281686193197646946932400555550527503434847658186653220426329112913922525326876619332748425687139361500296548614014325050019916724589568906419511877951031980850994791907099152617284524430786743192451397868045214257963387067198657975173496081660991636057861071550410348461306668830474390230917109448371542606148041327390806396334674497348175964365018718022539991583818707662394630630608464885155907048080828504000959690206702718225650380077454641200456047025967509103262169249545465037931026842856615963458617124992323945885034644443591624537461039036264044382810381554713681271882435915817583997461410266684713634160041747196451782118647043313023257668695473231246500098214693023336758902805919924942042668629986968653832480064190600860214106523299226859018980488559511231262787999985819831970395761380066143553966833913056682816099295624495025554105013052693062029810276833038755466652163453904666958000908622339807332341320566891524922065802006995471697730082184457665119127413944412582905877405838927153369123649719118980145015097164395771569724438868474053042780117088456557457697289866718752808775234480626982884173451321883281260551345307135435185024033214473445299661950471534597329348801036093731845754383568665871856919868284240658256394218116369139411018736528264204490912810113507248096912896543780066686565299848807539427873532876407542405284666990215054738841382166847911068423895198121571431804440737382978547128737993254486409155615872882709924549936143423475421268497475835310215514901534781079248119295747861420371722961810842693627600365839030225547690182384460071556339900895649626062088357121789233508697184095898081151333863336214397109229508657931781411524288879726554659203854815858873344141871565106943390127032497518352570793470282574079035397101050240950848942262465028056089764217362952999165352693576625628098670508838252987088633686457051481503867999444428814367625155162219925226285406882746931978760793042036223405538418746913330547211311781442851829872562984618444436188506492716026014762806149490623097194679942468730069008286108596103913118263800296023000605602461275176140931653731816829642042100922715392311774754715229033516540881581147979079434662194770840320146041027500428690054637491774319753713453584777687760970813729519096621792763355572738158598875502297686321642740164024360678490673950187157365992016871112999565288654697574976606354520352081689409603171178636836010689794926485796302820575949590710607265934291345849024265183395207566991464736332635025919655956314861016385913250817924587202659536964322361887163780677174614619966312101586556257544291987751530884927641432809755362887744111960097342218679939305803589203661780037784959508851896225907561482090040164167732647771696059696078946183069955619154346285295851706058593936708677606932267749135348276921392793452309398342284560974939496478409713490935680189513583891195340781357959787521466927290864768846646190662185533447249095222327303801659513264959854337837204225764697513277050441546962759081487530859808107083727254381275622972780630744873053871664381119961807518919898407570386949330601012823578177064593215025363535202649869054887699909937647072817679607413475881697725346412438680371041865316037673706821083648234556471388186813602587516503460291846750592047738682812123088476358987054698515817331343308605924683848945630816377092278728273011274927153630249541876658846530718585819890176912043109735032396078728223549578521315464980409458529977165782706794642291188027603263043213973984881488984592440139772479403829641702617518338688369951225475779424151051463595382788774360385169062658321826709540673794030055718197304891832244676296760675812832985578169513729279049773731667765570204092848629642581278327469607436996409413745058554799279332804813229409925511971612264450332423319373113792830494430127465963476186065492314433466203662027311442107733971562398263057579632109506880305224152964355843302841962006853151907539950682647916100973569839729639968231507800398957763450376148019800439141178476098879704747530868611788311760988771156638387743520206762229141736451424986344585209713730058101612303216069011143662598532092028631919914049982454269635487911589080329804216885572184041193683552752194226832537748435339204800697559761005628440820109813682084852654465810023519020547120984854366819764868654608659263636163552653671964944036757229568316612068457446690278886042807294191698552772487365454734975140063800234618444315226753236844293978597524882550465855640834628968642128652216551739705090653552265948773176139117806101288798282702741109310952909305750132976761438926620488655943644496678861819713600778307305260322880700883091719718163393345248213271103110029467437739384372547855707089250929910759232754420445405580144729586155206364206094239103433321394798023674113831048163008645645209187644516982274849437572222993003687510753651113435729856468007148863569074948235251742425312598496192432406734463172527364346018147776184546981290982024600015483646225365888683488300918048748643648400080272478926193924584303812505222989414841165115845828483945229360728817523325409405849145949137594060193481372582598245733224817289335322356675173752369467541363584744016880843922364592804452699440667051812042185554656522091956658066014979039142257983264933354403284486355375483143915364348852236571752082949150954889368010973869003777573933980995608259084306988687031832900785442586580078416136542006357839129179776867161541786966156154767935538413617000664141919417128399565427198417598044846089875672118902748552486167299057490466559166304299833221167152298208728681779932706122599568937540868913843759993391292904326757341886667360781872117913159829572958682870184404516724207004952584290335267780209791844239871417873141257305610319254228626235562951990363231153315517746517196907577565285080245352407763168829467312333473877674265165069624111447711291639479235106125993048038321843394994761090952488281207999875890546022696333073379796788438308095032809167092627283302215422411858267520174251325275151258906010846370932137586718751244428040376013923004934286332117925830575860393659693410646410195582377869301112061882876297037356197620000921717211382343980677836841869929078406208392474597282472237663311830548057176837458363149588706144057030271001383182775675892721479983681581282861175256478967237154836889741765827375551982403233165145995878835881406923238769241273983449010545567313610390561361560388136132078209577045145728202558451937416819170807143751107246170590592659911761421489284588670846173816490978775977717084446331906764716171525160591493950277607117240744426954634311352384763549878543223036048883684799446837048425290672100189822784550466521697063739486392769222629405800623931098988552387862697851889692197536936108304379186511080789641533431454402697449081362553159086832076076214119102487410774034140616199397812386645046883047897263625452915856327197715376366349152149311139861833964168352676771179895910986118513273389350529779522440372850739712506567790634208041374513408278292994506409405266175158379513181173792455188056067987575421549363664910235203650254529612818634757405990688026985641807896712983191746991585707205062853186122568247098436677330093464720229547775298624530328152752336770250176994714118368777638774967871202181839378966477929482347128595481359030099457880709424401634864261284705655378809408661461847637440421756214336107375118629725298304615983479356510041607162725852619234698010187478713278628320442402257479799098362263658227241891214800602732324379922111313200304215700346538119705561165050151043355775286641691849215414875320773097036959077041233319796408825548534322034275489902226522581370632935792288422154648833553097195347839761140076908245274296349301994785969146759725508703004750072383332263307145985805157053273308209487036719023872555421378262304704733205472031550211419993891428499043724668878015184873395658237719035972993629913357957063180127735781314358443764407365357851647796600965978778543400311732387533350084408831883225875307487721270464507721268031056473234716407789597675991126302659364866622657749620699412720168827853961386897235409175210106143502778455078435783837965525155048170595788362809652363043681623337158223842119298807003763613917017100298503564911148171183548701506797468950834187753609741468674738546842148123271750681711586918152045805946378639531551329625369513177443723220745049409350690239149387600307901496021720772805832939592249478183606180679519899016730274085263263790585868449075323454618487910334877838089851047287849468265940674750826802716348005828693809101141187958995416723237977299598018758943732188584003722730178316516923018151335513742664207730180028854847441242827541778605578731888337468367770997422108639177012485190588252487166664188040090149160441221567042793877918113625878066896368423789822516563616943026899812701219958564397557205994239974246777302469285528106569938211503293878748799224622498162780603150588296803950250902094491529329186088984806175772441566710763428925675127120287835080473614003189065538952198399622153114460823895473770710486363951150057317882725703232471024077689991609538182354961913753219914089724888165535930271585546727765120707689310541292828741970155860598148970618841177204321445148411466768226760548810251103102162459368139012193553161060166275802975101178036006746941159037677104626690729890230722974714661286732230564372329865423969482465924569168151043235883273326753075741858629772876818156575962578660481992692250759621294591648740717294915050100762373270216102420263655506663951359401219251047366514676092755958391487095062881995276205997992247130759277747937174229395120043202788625401853413283137483937778461847725852655094055668642992891549090510412074400686024412583872832473517320881013164475600940800598405000798987137358327267661660779167460776487637088629724939252225425685906588114660546156556513740228669680490316584891561810372467451683692930307453103182485293967452860581987623397739832180990611520945766744223550925990781969777220208934441944423000593847071077543066683878124928064725292214099241370340318274486332721788067030058484936501238753377484763297642673203211176217652602812759327196943237189392369735494669957216931380142062557777138158555030401940214067131977820376631399275454898265314644118116749782310534167324236532922195285723039543782355967038535169568951637869617871010221844092989770064438570724479995281928362974469393791749113713434667031038604761447524817940109127708655742095505272855037690653217057182969399424197784668428194309937766524813504870187163954857962100887801638992848684625498847842844201988411712407592609428903907714713076615832295515484420075360685507470080606961411762669139323317740473628016122842025680732317486438965327805671534048988908468554414367162069973459200984605800647111040995954953096607469449096451836083993661869379410925637653218742810645682228345194102271522972481722249533824833911784933588998687124495458745587404596327422007806574260511899043350537049742484343702233431254606520614725073172157861649913673126885321477836119561304833920940154595546031528583601685338440753338018041056215842936550646260195082465702450079465881262687265657013647312342198792615660903495725979295165321882191067428746313670247344718437407483543666278075687592861824980253105842125025714128158820768785711396830700360675213009948403511109568433336096472046541408256324124796177088195555172637773139574780035242268821192577513593375321864355662970601949350831417670479205223149074030053395230317963450145912521328938972156145065126925409914184857107989059618683985046800227822560589386639235028938725393579562593932888936689646521811183098301678854823333865597098122530251064644093194180985744307699671445238942364197392301508916877481203348720940689977826171798552570464335183841117149109612221389707541364535620706724907981279566617364091989110586830874939617294534502868054511268628543069141759969798101374133237200438185541096190630425320142797196759194575547558573667204664280659916364854015280221298171128708370685077618354455304257485655804051423377158092503811268952600424476759147234911089060802912431806279288109293269478396666221835411702069803175819852069450443055489039520534590342319247453519030412616358322958682531972637528806123521375526970152799263847415159857537455949324301201954232673371938426089397510165368943964615205619157818701506772609147099763271324910463786935186921698306560726209368591006409895230704761257336034588960183591970053020743654185606782902714198844825584593655346750269643892472669095589573162294543716349114277180680765119499707570370007159934949477691612849966030193301183437061749655581121091104301536729967351383110042919585466002317333134395441997548051912126830959651708887516246441246111297459216728488552648661474668345925026654916130273992329830766175286473314338243660592889902091867303702390859794145797262733077410856402605263934784801715920675070280182073648154886433307483207208069507561351897201206940003275965319468234258673447083875608884127817430799673783459811712549002647716381942284377166010710393827625609727444204640002316586520755802853373337111170025543646424988499460577781039494981549117656475779943517868231392524378921099393100028469089741296676963589415757382151714251829610799967726311124263298236522896884291844898453828763105651630157403891987129373527190739963400120899443638401199537401517873859348447059730381529459628516330295646495530644942548031258349079784373600241782134247550805743999375443741703690279222387229093263956005393816833638315296591381435330666361041253060283129601561043755674147979750822831604389242988115308291595743682563409135020014225434860109603343707282296786027090964101549531092100353857449255166587390679816762273891584353396752593857881698454022518016714601851144864641709950252253638170576553567074884185492421727516887925947111652249989081714079913914748323265129594274354468908518351392703691430005096889687738998471381350652292365418010536785258369639620671288857430513858324390682909654233509182325567368901461872498342400674603486139931825375129688075763340372720651242906735925635730164700878229636880439845238167276947644750165039322590577475630702623226078910955904435538342073717063507206027527572092851208700040475151499202077560102161513446938612717426632022774195795385201455640208509810749266249036229291276270958966827850432569319446163725465909434424551964172321497505466965093920947031864481548986798449735139442783605567982764735341984399181676523160605617132750090521488448108509957209691463431344334008333960367238405177427509819168965823031726554685385163321878839165886729129640003943233059762864978213865383653009769131623780949460440716517073031326939825324486021835552669181286566261291248177455337996761176795262709946667423358710118042695845512135451874718112568222183098195036382581484256525863061490372190226209368080710853911132546153445603149248039950361182253983762861945002845892016960167073957498363776761385757197675139337615679408670684953288830172058379359844834846054610800559468295665505644523210063172742156281611013426230453871582027013375358029333646471438624549109892962392385159431392188470695973975739795617606874890269463255203543508846919657456090150789251702121294429875785333029539574939064286919566762503829352030556014702044373940166535930084363547573424361137698996717307334165333809201784233325864849505218212101298032073203792856208475578307448175154861489017224772027830076036446990922847931633397393726977995508652392681045713397232943776898163540804396708963289959754350316601693602413974171438423148489388064315948001247572325823168595491318338545813750852588344790584473413196242634750805472071590465176823238629940129912780714789126522606597805818745889446214902481551742623544286368147799206867041588964962883757860694618436750664750782305926782136254855176569147341470236924556011355192145690799602385251639826420005530127462542262609333530876781173822146289048470027268107038927155444104641091855577388318143430221661133435286824965701159734877037658028576751536469200658346346473978969128160184815654436167915708730089400569389294438593511307504107880478012089146852519720058971286364780016040573936448330381434156791374824364008722431465376796253090620045283345167623869805073976636663403786604132982599636535920542767668083766558356700436242307268204739995532517285963636627834607801731922569322095381829617552732586178838398378048982455208276114412244302517693740207516217504349534076263279967717090611795781632455430926196883582634618496475315509000091218808707796438429034322028339533376747633293042497341480271521862244502580303868517319809489814629451157595432992574861752216329994162750139586271364545693307172571842060980807567204390104561221473530913596848711844038054750849955870520820846153918148961413301906113686298832430755086317089821554526276743423890354693422172474641055185452418486563358603098182658398878768957364291935043281719957909042182699725899083703563101648852699676213612552169939481276927563104701796968703094546047882800835414200737719741113290350825415610260740723591017010023035522956139788851575019075186925933746399416196002672471024977251607956154312059250499952775263469239321488796293544401404392140146196942007066450574722230288913791283835456151694533857807397602173169046220307231750670110302348075035512415131179323664643918214887804256160243503537439879858038201078167524217614620986057020596544444819096660250012294684029987978611219641813449991388239446896033316492907141250157699936488168476970665747471142728061721273353628841137164188929146265012629159209440939373458507946985984305095691251953682042131694796919493857354072287646872098530719435969891765126803842817991853023366328946711971614080203664367469029037457209478152242032869736784069684436194808826410917289881675778854068174118481668624344392442990648973859352451549263602695007203895653085743985226818113682206030025274262017213299857793898755863585893011312276160738213966008105626994026501752509683656046461454916203877188672159479424391569848497151271093652210184523862801847919126536084740174876233344289369151348421168669694776201586024364238375086059013914301580017831733345646931431206716580410216351729496920561566371710853291295086502980700525038587795775008877508198573888817052695736058283315425976161891374786229640379484779177645545753047162715760538021053359238924318832099946748687727214831266591985777151968434082451620274328238281343734865626929135096954026884022729777788969120897873044701046665334404781823553483210195887076894550946496071662390839150651307234201343488919435804409447200302720333805409268539743733377539330922264519150647555750663583212126068358652120984782423986800443706206769483613431309834518601390387880402904683406738766051455326953113163277833308989840912340659846333788967789379359847261233947760374630975219608301996050356807548750916790302903606644295833380556329242836133001027799558327161363712408234722371033312587927981660600972741279636208613329406701579602326995147444153393961980401746340483825526708198466883016959773681230557181700972929723752594044586705955632334267723141210303555345491879359567862712653690369363701349507245100371387075219898752724133762178862144600868624087415499507229048195407658319935396308985301627232278065867090821500591098561249792608850346409542862170201897859343775988966149144469692915246311896640342666362093734238957652248634767919542926175400958370286346147667417605909807426895649775899794208747669817208250821985760148214723007584747581655628647152464889642618234373532569472117422512263290235838691452939110456241301279851062940280758268896669045840077713764308881751586268465561717549317733842858421778982403868525821697363601679006660260609258970601511008395752721399792955866110069217868236493377308168971411406454410121889004808862826197517695248174431711290752578537632726955528449792098312621253763651930487812819641187368497253618035440752152416126291810292118112442283807627524809993877727977398440736708329931777554843684175264076872787318141182777298170116175950051997809173926868302214440623414157243447914325328215965747869338866171296206561109847840562540583363453838272157700782529307564431404045808227937648690696306126210811646011708482867528889238457942307746335317072406694983459760364926824709495421933426101714161213228440977121246574028477446616188842612540750433837311071647080710078828804045323075218824041871876849767994513909472575517255332616247251396711820186964066834229401669286495562348650220695551541108333476235803700381224085986092616826834279455606732553142143630534658072243375324834171028286414802465244006338524862731173310118937731133285982090628254326266081038989099070609762299140529142881072961216712835073195855346622877577398493247473850034487442944947175733852867677099501401339881720130324030688400622824518678078245818192910649758827679784499232340744950846685077485902961144822077453031881001698456347100905847482437326111514765772479005720287468370487752444655127779214625311257880904196993419844646638605533053985378877280777182673046977251062530850665449506588023111215165691573626555636372226832995423210015011530080295554099699479481762433097315829506415944548484130748218297147593337361163972454801858484546858162280930901576714166713877645742562252574877521544368651462710364544068462928665775282245300770349273634347495387834570780623708660430613034769509087784641251733286689316622492550382823295882444104158815868939361444958712711273636459617302057603868225752602780906455156667527052690254339987004173197245601451973270017683902995614999267067874976206728614163791224313787008697305768064223248295867645526903186950026285680662816981921726454197916666014217092290786745381692182164271565516076046668451977666603902631343895570736659396914589205865368854395215461669963953553194182183633194543419667006205273223352396448206392723741602226012131289533568083657506392422790559329195819979334366080313122944475214242966867630523172708735199901298940928346964140986562563034795301661383837063287174337275545445406175925418781815086351973167355037390193180496175627047046879692059598128825333600027803174775960540602233799390425859229013851970314976866854262920033382506620265748014222603936297353907197569083040224963712511732553074751612055858761475769715068512740228424062073149735512035152756445917661499076263990847109934794635010169098033639788982634045634269709663857844042994281280629642486668651812171192986957023440898114855781086640150153482722214941001008628875565003520148403022960596403119766420385809106550890858098156032267907290958452155107968730131110867729537990656410746937562215977443170347318087559059618663899470942491937352397199703853429386659924446325441679222596284942127930520406235702560165711230472493866147061926711887452462940145967043631716463253584870100342798720067175282620889869752187014975116156995857892119708812841472822905887519648688772186793682060648588509062632119701185096076684552886892424416419098464310312840830570118403237289823127917918006102362086405398094294154341006592126647810937708132042346999994288267054288392118107836217417845270096912204238681427181606041958278248976431286235610802161093843115563186067724172780746788222111359655206911768615797306392549803484315422526726300196986893748608036008650782330873377559863135081265812729442377854230618702055906492810948480087251633582942124001823580153879177995744311594602175906176670821495601682213935731604790493627515770135998550993475324960201173654515560550653832368811028489404302639661170755762880189541099789924382033109511228142973380565195612543260986224560947253067397347307498695278732962484522754793754073991985432217950897406939096499120883614204091251087415827524386598873621616169498880998288349695387790508857691598337710186418111913569929968847797542737443241403543231621229406640135751238211755352110331280846372174456104050686897668751377719433258422366324146111639104165751745411929226435572420309013136784275825858900569461141533091041441496794227424622954262933405318591742196167160590577581596275869427351119331813505561057625075781618981591950166315924492262083812924028490991210409481006838923688557339085657619140767892304064428024754794997011672447291371001759721668745530170237258157337952995561631732576882147199362720026002172323796345742570346446013360909151577599760717543936998816401517864650537611630472764548336885839591659279916442173491948340012312784594086680113646956936061737586558393745042051487749747255490556220394693831956867560546434818219176332267411437100753853982652557205900421414325709124606867419564566003562882956873678410094707185615388531811504167978434957675055759589910819999070320812491912550004728271897604356814070744304819317788635324759888637668285302485831287685582054602964512858193687729435299404356516049623956989832781895357226408239866276834277393601523256244172413684973989406589733591473723651765859649100259271702636939725801369952399590500053756764799646686827899195334509526629703553062042908667223483473043124751413495768206074072929956475105048204595296980901587457330737030430242381897224786811248144986018045509454155533658910159967186132910147974918738267613663874062979124438892851397166552210048441395651717258542223685433269922157651077265297578087007698032532178140886223566738874439853448095095287722750525827811272072577176912047452419791554190139280286361767824541978328996910311539633270806830466714789329848900175457066522373835159285528891936299898993535480890382204981865000181264229782164470012209352899456757426634574147847105933314878092211975426536612644611167704602789972243390484777286771864352973055408771979638058569144305740463180832470616124723437565499335678450857994319061069738019317464872395277776464540981668689599261334151639449605689176088150295194957966382751971042836186883983999896531900451744531429034079781683773501516641370117538011640393730144270197825065067458542491675142644780934775805264594060241736663189172706611553936391645057467586060686718285954520262000081618150107218280651804618151747251333042278071938191410300973479558033262190104826983911446199078606160853940989233793261034862649383993348585605696891638059917091334998897057985216621858799872046172353259286918497821679296343829874826702644042649592377042738813626294377379280592716281665189380953379864339392096519091439736581970745096290275742696368615581741786168519244046564066570121080036156676191838855222742067181369003445030694539005976370863785910798956563453059937157537729616585457109599321767480049886666274647122599249745645758152526316023586615653164440583257945488697008452397263840202790546578138201604027418429818582117823282153441218220405633912517754015737865856675430992371715223119494086819076132994947435652962841827351569045927759685952517790543421492773713688387928070811581971216217425675322552866545646618582341741635361400460851143304026340303274656999077821398178418013132892938822881011339523195739940059566213691258605755252446106086296746157719608220687527312669880401341277534095150785430314987299736712486009950153385997726563897758394084210520558396533777212487589883429204917538156102392374969268173289523885642214671668206417440484855419073608154365750491148331207078996942183857063911291288653703715249368599014163509161975288445536862192424822325865978708086263100875216082187588760605112303857206068812478265773689627300184684379714982084484674816763750064606356528437562233898023590418346571596815151673241125232089555997069182876872006946273470131795959145426040938578373588802441463221283988844688752602422376592229212734626786403582565454818865629601988193429489111359970553131623198681933506164089082330248945419461598799413450794674593642798736556498510612496213392770847097357175880437224211950872911842000666652919070258321762924550673659548681331820918044087589703575655642429265458576213996605616654514615526106726307462088799313843917629241715023423237072656688293085696097230824528191443661375152159336638993588044791744574085692698586674508656363625847753529949552000444409506878886102096538820413760273543618171211772464594746243145032312394689723084316216733648440905231722744557699787479668007069291027957121157407201412594827430137810116774750453913325521067007574011432142628682365567427228093973348672715514133848402079605406651974913562852984960186295195958480433614720642054352894230707920794451265752199251591350151085811804681251849706013516843865743063474367323425596898007065675502435094848989794313370175079101308976115968386058715253218352824226278864347031255836274096997424351136998076196743512114870007894564218078800442279537730386282223363040114611891872958247139525367838055135501896168530254507488770304732925337168378157102835969138768098947206352406370295158607733068161392862286148374682351523578389468922586614362377122294273494853681283330707117806424161372959394211733246576415948415049397516480719877084178950594437004242702085081998834910640327065595952086382617405711775013177773826048667758208363413249385487415450247575967294480157673153896689195063043339120360216132143870562855031296069736933131915109637103530265157207654455964506095835706402381010040253639571231072187876382865515047341487255129448765678955691745848926126048123976936430902184429926098825235421070945981810532972935506094629868838399468593041421542865907187017857176528349418462083163629098960156860159529528803507260060460885091560624304424775040892909241254534083756216626949692938871327192824569088779918523307781233507316815220812475376974032099921782816505491248435629938388595253619810457248172663190859337793875661154438166134360530167683795717877065951167610616844784009379233550658444664097785748578574912021857422035298778953287836321563034090498113742111302854632816355815218117348289711697791287609852598600332755582160921332265830311128363101471141827487584948885870996953275246003164102059227444584384375506110604596187663119451458647298843536253968148199564630891537362664675329305010230187584400073009373071739343191400317024761492443183457209970745723734992762321066938684182901900773951988185800654392341055956891772812372190782616652248440930176590224783442332469290870536516079986703607654598212468352856737127186615314761975707519060434229198521198186441910493275431102695154862384954782464420394068559794252115338163416931853853658968571231207617848639710606288574727376451428796260909908903347765440431143235323182835637334593143375226453223247707032405670045287321640428020033698663029286290980958259324086050991835038444412020135060347812653560453750853017430626183657568396078065204547044633949577936598107217243360760383779154553202614895384681852337426927957961422159733025906249106334263955133766003334141137994828018870748747061002634135036563404773794324683180373840931112723609436210174787646740924899127784179848754852321661468647854785903205412076317935649399978876884505230597926748439439449312217761498800493827230579154622668181239822375786694523193238604121731131049301994196529475031170013593927386613278401406945683652985109399415634362775895052275212734257987061962419454150211782788337738615325406460414197231173130245485872588635247242501442861918571282027166286086705112582179108398393912810281711055294425449269715193857785018140446443064277888258406974116987085009596135499153316059255434293291895802175579910986608889870304805902888069388675250672389153073569503846920900792362621688128094953666991288563869125888486675331100378124286919463929470943492534991451227389022653905993949877755327228207949091381057053393883162296547117302737694739546116360625407634548380982705296086393658438768587593403031390489530683310347193697753893694224825420840462770498630076872527240154401462093160585920246760076822930118788904895605500081804399408068176128101537041405959252146084261795895301149801736887372276423463527969819090719514343544560948691737364467593779748898012351759806516085091906951801668414418490388605666551795502663368449109229511448857233264270426271106572360162814118026645935280731253813697632975018875137633801062472193121475382305230365007464885166179266346105928113728901565894164517270020966806040211545536154909086400303225386268594841338731680937595483336266518865748126010682666799792588100039772431121177888934927293791442695206800367706202675881081626053153514468804633228974842026896225836383197220588033944609744644266594168225972185589166604988239435325680278871208142914673157205097382828253314331372628121403180884385152157293480604003548934310821173333919091300727796221935881596767458129541114111654636808980597885598813527717502199203915167971484133347477120692375923007632471400097986404298307356659555346754819457843556162815219738002215926760113854462589588205903963957489085573957691370073898761354959941824275570218749151444257146861657010549404225582092532989465658178568413710477608404528681239980554726869998665851778441604362048331849497138450469214911354373084596179516594655402128520576339379102505802438908470081383787897234651421888433854558068630736921602648141360668990924822301230764506887677464770746996512944055297070069363300431425167726859530136613140389100092122014610907602702583434391542158723175102144237853181259886769272202711043993505047375565732703934192708257533937104398368736087045382025899334911441740809892166098379944217369305703299914133382975501408603074931720642559789827242810726369050165056247844807137298846848361671191667103313509102601391482300920483004920651426756024110602059352417521537957207901526361038165554198221908906894874096022712429676536488641578993769336890618576933739335026634049027786427849608173624569516058548380103164346514007031009095890252758650254808959908250833025044952738531834977124506654047938327937745356439238184244455632478372505367661482342765013802158481087472292444651251535886871901957864896718497102207915645403249773199553219297174604483144820536646392475981717521917852194768313822520182516484171203356924620169626517337534219075819493547908181046436136412992495514106682842287447245268401111462159034850622189830274089454315915832467001983350502972430763803099303977572573828929146059773831544294041161280803681655920060653399139467516153379227752355142661254911398009457560954466101357616188619697283655103214076332700187088278186975067233302735585598820236290735334682960522321104276338813116598849132936638879856798281199883543382016641339309948790969619916216621330380909712648129086379875219151144843520424031037823805436010313152111544347219534906749848022609709228915152701080602533906773264242825204503443784778245788962886960275348028614583355467265809059352924914520974130391627943032351606496347516222911147033498541246010974480591091544127259725977693057343745261233321355575415992933606259038667231001000581338970389610413923791442472187787468650210921050049602467130597227222562423262663780685168033218119298546598578335829962653141119094556192708685972117722129645107567885486406362307170042909042239224126092653520431048586448512976186348599072582041443061691898676516439985622468147741584680451507489814041633139996442005906494793814530105251133219563555001658151278523030572217399102977859035241646729528741974719397639695280934177084970591416163349764279820312021185905706405805710060853596714245678768877242865809163228347913928957348889755732703242236787346114465659610317224331834902454588200845543546084871024065867058565271232225294169125719075315895806426511653316184978119346962974790153964776231235077474954294270995009473256492676160598176152940788986386450519732574561686052498978924075602541674252271144250117655161781597727435162193135924636143672439152822575741384636001335683851407089751823826023037221437590909956665920710322758316668162956648471164615869478344614205764669734941824575352540816059169164019290840954624245447472130852152204547496459953197839041220403691011601912312718688254588159445229209811712815070840878796253841672627253995335053721926747580141872788848478385399358626038874830788712114304430457512874186342566165557518163024346619033281972781961590507318751129143627955448529550775820434617008855353850191230171815982602081174446914212236366860464186577507871836881553054647948382396076131331361588758242551765126670003820021322177530694980623229590393116855006840338249709625976911263429964909492964788311853326915587133765981427151893259143646260201251433746479314745500935338848865467884569713070791881362590236914101667835431933607185967758816793375833897060383064872419605896684824055028757394435122456627960341849713375204027996088286669495890649292443250727795580115833290557649312709862740718053736620517465051108442458525629025065274679143152420863371463027791474599773632141309963496185209808926956066786602562017715425813765988737569382360037270933283306044333393494019750645078112007449568904058834280825602071859980956593579425464091322411767920046603133420546378196875871189509793598533664328528144051388873719608792336995253377852409627060675837354259107298942843879527106651474081716607682410157060682052915877786491010524016361479266970155052713636881204876638940901940150489554120692088453148564926218921709989736848229234528716408013272555411453071748613504523321965207113887933605427131593265378388503855189476371715729616730858059706898665783934922369672567820119154687927676556719868548807796485629916928744454068569560195685005260327584370802457212033209684464168556837704014714747186597246903414086307038305095039559663384264843330798521090025876499170952166497467831593230444845570523366274516022542397099986744686359240293547131533773581505782957123184166850189651356163944237947373406377708597259203598870741873995980776404963108018789843687604300456840258588310793119551145119570436420496669901171914704081541657171880601174555675949796574029466200965368022995641062392672505583071649342860661674035571147565379066733489958652821805891007354078484486911403538324111220052979814479659718754871666624565165952857517544291428580451812549175301762959035995341342421223367135926800008864166928641088790922556795975670778346322828077520649420525721937359139830913507987585103190752689339883481608201362092436338173515928789078829392743166014050933689308577095840740251360637542111991287305806213041245181884785958193827504733512412180108572379674522053941685067798678026816514261708943564783415313146376395387859268724008910850263839471092351159919363375265073277621349399881345297698417119297751628068728596587778987697127684520467446007324707011846873759084071335142914630171969302406300733133790052263910755890209340658305743333562317588137393087398372939657167614336145573878638754129701378530351917494290020747225272133445050535709015118752299950537208747907944407959707686179091374149373526559022317223377291911421621314642192250506863289244907774055526047103352998649843285307249688627555312312222603626218586466959779755135085200264157684957140716871710229442715030252610674879472591832549118153177560162734162434410745141096480606495542822027140704061516498807081931215107134415829943692543220376089943480266583056205640218281268080558739414550214321718071756521534023730130873963551458719704199721521373244838379609934401490002603890706869237959075041758465560224176128999439378636290803415293204042161190358812474996071467571092417690473326152631622217389325624530899639696002396728264744864078646678003649775565147948153556421196130839861463897101150927431849855497764196645835620400214631320521391274351343681171147818220088053496958165530537803177631358217529374632337399304857771187529506845712110221177621906977038057903356977799662896436588871922387613922977042251480574803991906885487407242813401552625387935542003887311220859811457763493298344893453024407819627649103649772388160559666083887744526795285304192350223158572983271233826296203734485172662024903032852606995533680645658331199135557684220174377827367808173647965603002935633613879964285004491421541295985584253218773941063686677749088756587332246610350204258337335822432484042348317529585562018127128960798766976633103886167555144320256842713473554589345509622559350437736451156340993578972366352472348137355196183013617275244633319459329619336198025799444108320117767820030696860146329597538473867604661246281093413437086007616975411738794856970197377866117821386262293868096956508451171518002129976997078158399463881279090714150111833333019317047864774036096699680703013557064160554620182739554342051874018165082090876930775334424651819309583032799565413708965865351708735596697110470415632169346618831564130463190803341859364903544633193095610862255479906412160011006504461474871702868083317551626179665978723290699614438407194230454168193232055276379599733463914125405393446097925871550601933217111412607779103627946576775323476260369631298820321606915951737679872477000425201485039355394895885841392590631135670862314145805370951651074040908967825281597610856082292820107156571175821079393241533320433934686827011918065595732588400809841595917645019901141993293616681587132992502604656830160244654677824534335698766939684215813969499237341085427537556980887201038584644777088181011202017280643307054473526798914616741939920793346011976803127444982923943605102994074294423899140741257441143408302805022368599813618056578508356167986935990523730840860060369672316628093901564501778149748316269427690791177491452555472665733726339256983168051499604347015874325171763369167625214854538244500338228303094417869259345285659558923700237370075452959386727395271351325297526148707339521459492519508156480999128238601998790276756036714536167714731491916092243073770789146509898524773089128831584575733738061654358266698873449336530486391233704497524622071261834697024380839019245890286249545909262990339036217622219566723100125639201059236964890801873318470105113586198629535036630566744259246818272024434420681548646435962062510216629221668411697604277998178411454068146426303477003281239206834863903822474963655803245865017550769790509902201622303797993554901179069039591790638900816662371062814290674599699999265487861824715347513714343657927636957205692802050073235789400263734365747687119105827812413765173800162322813436950607758215777828273452228456178362333979395397174261190445340634444697273996704415182596013142362432456126190854147555957530363111138708652213936429758994668786854930623327623893241467510809952081905930713170171798692326332289514506449157383915092118851328421383596642080367802473737615678044229693898839033726464650863538275421678223031484954018747787494704222732151388692327209755013769444047615139105262134462451556711593841097249449531821523932188064746482633058264756264583262232468744011301435395113808519828297562528136131443947164382762278605088171346264400330339257448948389858288180003032038755434158177466854491350779959265174487940051908600878636541537290497502961214637316220694268284439384705020810394808247208827371878124783253022270534546971343428106610935766266697717836889686162923880330406868297834884842435214281279723942751472811045043959537561691389507006846077901017749666156423770293394806484722749447776980554646595536403407210601026303143378105819320437729496214560584033197972976642248805854726806728485592985511239241342089276868414026875887747130492265977550128604039111108558744885325088375381947193233651710921952889514296436225698593636469868497606445773830900473309159508535030413793434293482597239086282183490229017493335988820343206883858694015729650367788274851937493123476687666746274546103446716188991233695173477914677630851834153190725341626859286807416074885474349654223947775824924748293534291909527140917317588620595498049777168774760830987879936828135141501303972555443580075495730197257129899507223304497396070228184330597042046570343721782309516260245438890901181187055434670439087165598631513741378689160719804512158919195734131467559209241002420386527221676110908114780474643846223802238578664901943950459764319038154740353526119376428448534779825494818070987505764259327831270736782478056584504125780782015323211431963767976141332658050501574755972942633141809234605190255420946157061008514712948544035202449876425332799776948209007701109432106334960291726408055649820077289903011803168118640927756764616737075704401297933286750840664346279364381239459974501935128963209683542324297900112260553368659328163931997791933914637031317908554389198995279003219004140688695000300894032544968463863945412183622633619398115738554601282077313787864762493050496581889231760663637876507310480696959842609000065889169858649655605277230871763051143925326780918018494945121746290355158286504255967541225083953024627701349461822837833072898972655763552173181041479351140199991479163193445879848860611553707587774926204912238710201257256860215424567437486868217903969015572660860606995819139530904147803254816921362169993026286866319887256851515867077674469184796047717167850996048880340789030361679133226751672819977252283341330982343292107720873828363403795078215848548282982927522993570027663157710728001892209874921205473214278198444295174473042320901251916352017798788713916410441881566285546154686688980637544860091898212418100074170440373978576989554860001358250844684246719276626772568532581523175516450064903783589585730312639206609437697311372526185403592486924777630442240966532450484958632535817110314196907236275590279404188853359382359253628106008562964245521196716234489676926359739624581411747051019042238023191736629828428561499924061696551277514674080165393351845436213535164091575058243087705132531953507482986164220749309317532185958559793609274958391050526577572070400366599853584565953362666497184375414364709724706076068458860554038942549206249422134827821189157048152964734617154220555127905317837303380608169007295520022731483327396246093716785234080228644084621578017134970391950109863623697424346024356074916964093438307545577818699931439493147506810489327336852232996454587889147394730893639823082108351202473313030915956959002455470339647522571960858693532013146775830131154466008144945638251495678617300138371773121644497620172728520453386959958793569951507821898465050982540241677914613770619130249338891729991473273712305078603557324085194160667119087156590430752339485879190865187248894628311857399872734696014450809104562728004425642556035360217969702644218553045215237846755246343793236099556296016144642187997096782806406949987865996128913330124757282951517329529790213392810504979683350673646701820477230455945709761667434243156293861017925141636286211564608382032635924892984179816214450614973703716531240834859783140440740690699607466819549827364870323294760906928534891621251522573107013715586393860055314232830285786091439383537426614197193636304146232285355265871846628888868821197396295108346049546601459708968154928065453171523259185281643449148613700540138225041426202341014451579752947743487508519161678613350302705862876953843031001499945736797704860903810945314559880876122204235565778007985114176013295823187575406861019492017342634303474960688682144730073161661756634500478158479713281816612207576823647080069242638030003064038560465708129855367669078114344914605197104498258095562937129046020288251880568884630172457860092717172374894477255489368944256187914166967629698312972840958944590561055994758867981791319935302055656697491157193789255900673018677534601002034902590195545704540853551273439465036969171601249267682332392999145123276913961959822255792715398256480848019123837748698720619961596678673888989671249223669882922739561222217332380974113013012684232886471186046367453895405055559146493038602912990132669527899124760405269513624238741394024665462941843218489839595542115561040609361275783640551411219628497123753257433616666726488300326521480435501930227357913293669153117802372270698641895399351087282228586545109556002839672210126355027231187347613970340380661525008549763851960383784629848876331882793753158701811116510349634082209115832023121608830548898142146746992931993060915874260810789373324286251072603638793317340508844313462089378185139157836074698224235299886520229990425993584981120828074457232174342697327200344885986933900183236254268699900167833362208272188205847085113401826826781262422629099079634989135683955408832154033839110147863821547771477143338704153139979358436652123420610123104377592597359379923926697043947674505000168078268414508469688321527129816710602162320160536420432369070016545447946143776637674444337312459754694175619087120558250175060206055795397588581223392496966228986641381554147818822727910069382044476789887995465562505582867271905989844928402808900182221771475629796873341413433419921934731682117192700202413125417408304890862944236421817834742387386796797192578890228040695687909998716173033204239715914046717916995439003623846457063287253532053912167717676890795499601139789201231987234123647696645641001986312596090985029359351710528359731657638873084463183078046952414995551797211548089648511519346460621912971763540149399604853293636281383135516417485803244043643520314014541843513861009377008788618597366428777830484286932093318075160562913739608413954712895159724106642048188760120133578717577527978996733533646682998433033481031597061661845555104562893549147291850972841382932146889267152627300389020933879402668880484891635467782228548707576689037231004131521810796360581693187115164547610412564968867225030549896985709677248459421027285098726980205471147557093626459628278527834660015999032169325935272504017436342835679457258610505512767538751212504976561701526443099100187882708092910167811148234079419364514910771917817060018073059752418323528858003893071779479819472698412453347849587648523370367643558246002911025866045696176808992822754684634196079514456441531667851504989388739533519165349371777410763224773941984061560976925126168443661738788056645379754111264828813288762186810267571152759825539484230800561115409626967516469284353446020691288209537318084697598240402432873572468746813117587001269559661411814571900917193819658864962036798782916495819844228994877702558272626936014874723377335729682035309649140528234557316953241812964430868751149696336016724879006224834378723628546298213282308962093521831248437299605725322457630736780688894741670959089338920487352035207237267735754456845926562679415845398005521562390905603285429021516267374015295954844568128886836131131832912286076907927524323985956493730768097028719354740492370827409769999404169648857112809224752856987504374479296302510240097035414464633698913125244341198534400712529935563213720773829007863695010320539177010844009366536571265470300458047386881276935645932807432960798429002828764298386912394255577913889691196031125900362109774584068889166915967338933541744756063889866339381039257906914655686885294527095192039533385536660735686344815743805097340676167518975714494647871538836740361499037193575649239238620746741219779641965237689628797390170467770006992824459252938268197686352252663413794992478368275624884492487899858898401841916232509242154767655037482557535239600080536340723297105013997427674323598072041422499286353350980614001385585416259147710898180543523578403817929491629258080741300162281610815297130108502812248853105763242158826901477479442885168927703612183657397149895982188661733843372908520130837575760822170562318623269034897043156765427542773606369837891510276874782508555224989145602167410348664864636139299293904531642559129225453189008211187768768925857825604372818290039920968472995904439796865556027118980160359963505127645239307819182051691084013429226890045894826861989618456279810533462373649291018582905046859058836253531395192515623613888256322811519533096437384193837267416028290597022714971150806608390807723427837154779095544593875112477549690267834882346895371868256874479508015941425842104889200464971975471815584392774183388410848389006558551603083635408926102545557131333029650678776421235068041610384991537480440230622309519530000300875215479109587466746146401434774321497780726366931352853846733187092358675573676195564778944275682600326328485104020764657188214681705356876097384698868479407432214966968749386561577685882958882800651222869381453101068807518579960289847888164029854006393989829853243920183269179566492437224550630214255036864666184048893556433211954239435940021820397190768993208529377080866391249996863918976059087864978283641447227658659114735371509420616471044071862379484944794706803556525210952472362272926101789688269619706114532376736102099555682871104158504596885318096767290718141271117032502626930398403937152410215778209742591270176660720689685821690417354680526022388604960210344107521760221195712161462881047393625785468817547413530602578256891911179585008289877759475757555917603051752335439778490545584561245096623380989001806682977311631454521905114043641962056492817471155220118992907091886622470778339209637001739937781567105142450808272151875140651327219545245545528120258583991118648722646567020579338886924501579830255490651628953276287142167554824520418347027398197854028697292500558446313456079547287546387554589219016918993919982356231370928339196672345714006149555592511587779988018971841204549460186386979863347256153523434267051778276788316771711936615273418635255907037408037337898728685220110999665474239272267543345011772382635580792779100859557209569427609387428101962849659794661646845948078645935766514259514971893134068221920664682978420803555661465345709195389276448421760568253339140410537895459151651989713685715763082814053614818908120525532238348747763826155607184356121342556711915844093629455884295126784396148211207759855816221325639858248716221882703459576844308775989692415901073907878300942091345909208376389898983692435027045014078836533157584654969963593374570525399968295944087513458866483053010501585624559674976875653974172499368551287781820179249771828121212595270088131382416402388242193704708786798132671536859337711333113356214692773021434478391483547262696531537716938549612290194588460008745933416623963299691011515967947781160698529846540558521780617513994545548012811155570202620171047058151828109451653347426084556875962628823818198455041910211998648104812794343946999901424885582900563789154607134195645135967263111807959593121597186906698545710393573055241803042870932741867872359042964387557402627698210974668223011820643312973707784875445633722936423092121877421637584399847672990775702556377981184162594122052369215682625961415883542295039674155302006779560443458190259750782256828900548681736506902511847978659945108905660415417145424885368551026961522597952689969466245768405594573234857492135036680511179579316016297536139024244311930909703537448700193547687175521421600577644188174203824235591636783530894759735354712355337259458481743343489542663622337049372618002057843889527593452876615808383226389466478744486762943756263661508418575049830899746938739881342392694774174758213842936994111711297440944982013167696179379854676083892266857434400145171645811453138011423499230858805756153821682154907715460967463199635744804881849458356835222469167767410383790073281655094642658159717198709594921025296350665579202699711952262460430839201044952865443424395987998711089936743382716169668919154508919443153501065380096972203065028118241735012274199367177420117616749482239403517197944200356721877855512797369359809847726776538363343569954707063022982676308716780067224410582619801898092500131936992163797572516146624395613917114763622814014585704847063808540566264806175230485321657790042848765874156674569148897521601133347894122194205727117990969559800833565362140754561938830271485039110852452165123681932225616739502157180665969304567595154365072639040056547422862996538249611935159535306924685569189883420616957927939750217060702158129205288280116478351063541544973773802452577983653220247679214096252769896785072967774147072288113826642168897481376638412020608478932779142996177487353650985732430293705455797714369733276994932099686111274413862614999608633774933400200327378439714060096475189024147173589319337462120953883659789999605950862370806113091494592478084628536062554304643804612843346760455910113414089216033160691773348823389223531107978198917171773833431611814910359599050673341532328174847417560227350127942233092560166522499939916119542343220587280009534196445685575677521705372012266974259297064206400602798884880897531846559300881380453877981359549956879864291092014804276365005681003668262396406912703346872344511057824067087489444631978016836454829921769633171995612195801123772433994064384801950159540441638369508120023182928546771654993354931858909263618993412803300512978943934162107974474726767982838485349321891122215278180256721517937789714678234914758548623586355481890649077881897304001604636754711764643024864178309335925120584539956978670060256765495672193819561231073137253148756513696969577641109468603915127413036284879192147496898603767227726727604751979223365169096117998946791223779258804416737232390740331425119100576078838864625908636478462431864166252365247327520784528598891045341517486480974765943332381213713102030331200259472999243248022432162290791838546348457263598917851928135724957809809000090115169843196478097210847994816999576035529694268907118544215052448988330443009991453608587262969709434140099553962068237639494228832709978961701732537578935637433673152703803843122280037635002157675014803835924510121745462402477331377412640338281530606633991489454365072859198951674986431414082514211227997020387701783242269496709794104829317369973625128289410997772844391805581390266669980616815532474090013529169533244151786215649837913640831936137632707543290735052392357386266138457126087499183735133032386859276947396866667694771292712246367130595748476753165659206178344238908701823768897100019196594535812399598891149191993058580652740360437006702791456688087699847599354596854989214039496842227360356043044360302197413745051690093066838724420096378858623855881407934436228394013064620613206301641101197318346898916855542786581719519237530020282439917919383796757912993782089485912235195719016805471180989963635337406224604424685669263745322290590644868881706858116246879706969667670437211348735208293430542582186503829959620376297052096405136172555979560667444752860864643434451265428234243768371668343504865821042322621117287627401453286023279540981389174061041960380548653775519413774776780537437574563463291072620202482122405014003410406746073501588566321593653436329739420642932644930021543604295456835407260698950102830958984314114916769734101543780642727634278194073079520718788994046768652472854982894787040281632973372831433088641591672398892990223361124129101483772082460184278297151558996161258020122238969037098601140784346086235290815609130608019196267952142826417827710285441709227340933370357300053399448677095393640647708081458516014175773047846327941234212048215790314293568677924263083456167562229633358948376301740734102227321110556529831637335101481686702510340079171925092408695396650014157690280569385401252331875533329684809448610804098201887799553299646419632662313780921392736577712781219246833312126478251278924844923131207653001969122818548452052176427403951946397411416968615635518691410181215281151168599804336964757506725508041841067736018667505151784595357019493501545137285359005038002327963927525275106205839851978738614061253336545420953544897206356661031908607661817835678159154823403604489510493186494461639108256971872890439787120757984107732122578466260798618173529085012670378697733246390621611964917811818145337452480382341460741749600191201561597921783916367025631025359195696671615988879473088622169795374029937218870816883368372979204040625687559309562188538364205536538239033820974268460138672664820782507110523762954910471388978768397376187631069855012733847269472081652872535843394847046762118007529002162486189670764761155131874295299954599435168534664469870715177312127156160034893571506014174056522742682344483918524110627996965185929499102212177778145280326445817684744142669889330313174763060600532211544826838053089642335028176558188904606847550027731101009961822424277028954737147873454978740008012694920068246324946580773039141277862985234393755778134620920366009378736199209769890057953599249249080073254375710749723171584558594070849769008703690827570083961395720775330354526732082753258698655072441233266739520073315887836825146531757122142867820853568457118152919364229247629470681552945386698953329664875421538910585551237638128454752874255556655335360662393682448040598275435899272253672221150522996234294640632838112641407588837219822961894883723996807252044854312260660776171087217846883461016552557182861196355040278052632503508558637647203352558807117146176910556769697874157599453366352405421085054665295747795117030549792627772411027758152069858590979550551509167298354808302470467484475085091332779021238397528385446847286244277101754719076771646191030008752786057589743424980108254438257875211938547137388843761311784632713207097454884265770603515222224718828164964102548176121894515312902674475456571386643882591466806779209510328635574566729719541153915116176617330309380088884351841716271358408014541135975733205856886541037964589837558384881929711794763810856937340486795747307860790135215997823648737984835726879264133455844823977710968673916943877290081482654492841828132098927380299368815239994433589266108628488228649302609948659357849197721242430752954635970955739739704106062019381794833873367637577887767673674255878778656015166634935549493755745625886654214888967069143578317466981720220447066793322556421260305800509475648617304555116996520832340356154815015754213260001519252536525477307656954621357210439153451735366935163520314128113937120203980513895361878554408651490070560984274702254106268749077037478041756185349031088822585269323886226106213057690862654221073310790055687057720970599432927777151081277495569049774061382929225145732865965737649638161263466171413181371295495777976459768560636115326392527756632804021419718235157832757464451663134535161846382858053451865312492516464903573049524862029282952454604621840905157776496270485507795928561038315685929124166931233565457782570129758871387014445233130219709974443210248228270392760308310297883052612479865996158213378534376621030956178116391620163796705261355087121666079452313073227964045394590461748930771111438991511167347667266730482733613405503508065887647701022783275466794595589385668146629601637049667440331670820262257946172993731513812044642796454406359763110362164555574934237236205639779812352334459482289984034478611523128435878305032170358399795733630892827922352127496174061994985309512692514218270482731596333297736503946247896107230079973456635587865826046467727407394519414939758850686805753476417569913989561097634861830687703316837471813512121692264625118263125465321642648389228361758987214816289886728851353548832198144911594447753752539787461654937216327207160177542421625980837445352911457310362748521766217867760598446478537719014563914318271018192332260304582096153781222397701582836524957863888588835926775888500500042439272886885274639918631488823818498474594277193959595785835872847627071701391346314331757367680407948691966034481883599703932624285303662062082358766345627641640982137929205859291114372261877473417624602719830618182038626432723800005782158578978130131486021140564762372949411988314034108806226940987824730939218700940189106561535994171933697024766138487313299712950055924081335510669957287790234358880804609953941362659526436699199955035398405761446357453971392501762178543639951434047557168520142734331546679126688009016242436111742410229632052114956787499782305914110637403901844617618222925353707126422960435693584788945641330003366984617927867697529515784681065697505945514099793734737177939588977180929140389538904066493413797898769458022617181961825766714852059263295002153039889244207418445201130003730813157167186675795478188183138942432472024222394077481721826455321532065854969514838910401073705062771884436579527027468348088858089050604795128711817468170401382159832773942690397587335286492010347094806563997197188726404605404102524583350152014748150671911671196487510963938691854182655169658202032273045671608504490894894135480632702493675227301766086138467959375579305357039408078746608209769313562549903681994427366697767093046700900443478422132869130927607200130174227441282892285176842629414541305266955565712345390126342546345727267824640252189826091076424441031034067391542994441218587358970546192688668582931610250106732079056624474514844293780015718604437129436786399414433410272109185242140471193871214054808171729169813893023287667404299129548541342912695230657330437861790045925983619048955807378010921594225073341064214391823883167304782778038588881143207525439640494964869947510320783476824744099462942189656365860507068580511377944875153116122039444445900987926584307386397296520392992059629206574798478724788513211672798442780898539305062127313374152123872977651357202051983349948944166092552779428639262845466096582050472111290734476430835752308389611653900337132238609932924506784361179145414780410042231132348440280155920738867001078139432422963781059434539721641711289437111730160676295210845282598824021531629171895218597082269068191435260615851251876027753490807406379543872375218546063191475614302132514868808145777914391489537214202888591583955424761122218112278195982043670504424282734491154975660694392348739774939099554191510361160966967496029200481291774283445259350977070278345701650467106413378971140343654997572437205620441632917150231286729028549304366068966180309349966392014021064249398733079390418051908952446456884501276119161470557760327126199489956022192772392834126257857247736549687614735331891791135203622957706836496440320536695382148785970346149698606141491973313136834774932338992535404306641176527502942152149311588157520331332875623042438857390055779634112665098321394168403910572324722203920990166966857125051601133910652166826080844979403888604108294594753275710430307213958051650550761778288785167514510068279389009581604050663281429833641655954414997577917669070373383694825617999497226277134229824449768949290217799062692166430551164391346845749762406738231891739498917086318159105077480303026820891853785958590197957905124347936764559447847939297244068336982805161589733069581199166483023243995583289225864096780236846080716158553459052425902225538986275386586204717675642230781646225579082686326321842546439493457589432631640315972940279618479308801874998888047918155287309573394897944011478021382389877562164242911540356660312929956424082137420613283568073878832289831884722922711645366091329968784262959551762965001279003956710089558600740138215888973121583007615815232979446473741169949101885146529612800262231432857884723304277370599797320950350619823566475859276372834741783390820440652970491522935762846082089230803198375220060122088506545049402168453854486990961922560652991130669377278130227605625854789185350065130844543911761926977521002529156553790977414702096661251210826369410680046936357147867320235235606838847156687257820187273709818362799251769274178686244991456540094708710112271854671625580269735472860468429306200681966052229141450692842038345696095094527527126342669014221373172626381324404064242327783335189915355029365218800234663274219023299626598118698891067969087800480572331749529555363259414657220937630215093862371551501455634368906713061338205305785246714183947785513715275216013264970909726149735874996589880116578301473972608828704484452542810130491581723236234792830940719606014803745853837914181192597903534124123967287722133405590605210379009427904655548930502145899446509465281789062378207738366611627363654600793551176911395945841415319321891472740111620225001915946222910136218384319756533997670849794762883367440468337277509867596904608027668043858750420319028102599247043337147810841782842723738575593561662349546375907495161521109866633325823225535948426264202102894937642913660391297778012375088193566930026766502175973381232947471083997272810414876580748318019677855817970812387501954586621379832656405619470631264295472211667288074808990277040736751656642104868368947125368644281093024821765339085938980348852040909811414018474338393817273528000051907810968036574352582375709646944918801248919498228715400043703681482456825194207256699678598047319427431764955267225347772779762665087134322677220963671408141772084765954418790132880836817998428615320650124766006547944342433208533628105483898768126086725508916124293503111508222648184806867492080888935382834335087749849847775616705953633181102336502455371346691622260766968086252322537388396301187440246776745254495357227229860931447189442700834317006564887302561121644472214296412341866537372206260307998486119859816855503877196655429613122834531324029948811375481867661876330500123810684374679922373290835398299991250872100666275847308439993816745596195824840991202904580353533609568323592507025600359692198847522140523684703290892488215585237225658413899815070679045903095057517343580558387695261439941341040219789332878970851498051329933374073568341956444297867384951177326253420306884440685930003322238904619142380699381173822619116166451170302254120763205582255341272270759303985289811961074692458910918065280793799783497979630111130619336428926732301499064641314740916061162402727421360472965255566045869310375443862057426728027247170101922623812206341776617853576309780202747049808348456555364233295908615763714296111675205998367829664687126392315910660195111975768853645160203578406608800503538867086509966049419590406207652689052377874928236105906097610616920804143612824995842843079675961837520274323431416259479708220145238217489599407454271649953606941796783494433279051697272280942867163286095916953408666172890665378010446577337562931272187260811283763343586289864039524274203038688422913639068269059346715900999723114332368748859855226697613695078827880179026696433150297853773836607121828185473982118423540685961386227548125772662155434704099405790222981878742569080617250191204514260030669122972314963326409319646015840747401430093534969941954766048393031398580759609817268517141796854410453081302872195851654056792212909289120249000568590990407081799663543429533483148561184395761805549498568036328944475064064685557282531642175658998338802003945202837164145186609537878623144797239291866556109780133231046494923017626240004274880143088253372548011747829456225313538158917864600486587294402732625796436923155971984274179250569068835519937428524009044790969914973655942397664509386500419630791810728933935690512995699966905511538987144259405907400919616781507668618728667272217973481105356599490564930807547495301439927353628667291193678828987429367167752734184263820922043556074599104558105121605006312620982714467083400025620519060017873170704816332658670424590453140145632294224462522490543507379207159856670370710113870433419662258306176845911713070594253788487537868919898281871631730396279110829459139439757225029047731362698614150187173812935658040708743538754725761712624841915073212372137850776349813068757864828163986730971277215930152143517839376765468468531555897218534043968155079046190102306789366043145893518783623008325350567320162932077535336915836105241768491667565207693817995211417218990205321113477014640262834422755973020374162933044011426778459572233522605087905690208111917948141215470696226698487170764063506291482774400652242664743101046421368398615662189042495293318462384264416948503497404675823039418280142423017563245487325532737227810197985218665870010719890084955837008490946500272982522169889348569351503808064514419741269834543128281128071864508281091784483469741490138363023536585603353305220971552354165697584146943972976274123098128345675380217274309012164556768475028740172577389382349397132106621837266600180093570448205978331505705427889000309467689417821707167975339480688089078932010893955165110072672823532238881378784833752977408113535094467868136454788103849572982234180162149132849713846849919964912905079822061114498195612809410617743139254534370045662487952788946850571007924963552829448930556185315270927796991843168908390763470962722713577005825586036314819054322055446445756774240664470709225796458945982887821003283630783577491805557822974290122092187310720286640820813095632893752610287055054529380969470865929163937392379319511029663662602408869568534293407290996247146428108316379407432070559381232068431536428000715573194935662883099124969840837671490926542205277922888568541760001090559787473367901504814917939091872567001172152600720270989908187829583117628121886418318659608563028313226116701034759402361326488420696809579057629425618677350819427996352121265335056609459870851353613026416742427069862997170036503331121335249487098398741160762182348813240180384913520085883475664001581375000145474021932796178401108497510569128710578296769857772721059667120316904227003677292998931242141154833134789621942796384837553795829078413483463099262077367436422376767364354832732696581894539031094073305263621207181264485310132824269089850177197552177213769053516407999320678703152043415566677347442348548817065432321892189900949886937581316371449331591231939653293514086322923562356955812419727933724125276334608524488778584857702715466251094904119947755263140326636427587174487236520639621102579756267488175977872249569163983435937813420310640039359381086331117809222422354177525583176185681516578364410412658899285125628864429971305884989905931737421437348277969111567615613825609011876470015162860973910588906387100966415347926361256464529494289713587777707706258041209581458673078023531575548913288718977898075055365539633252059538843555519996033768621924830327994281992476463888643413270937053529622007878863323076531955969975257901010222864197537793758101491329911986899349823885403944391845561759186973993548379138866683212398741227437197989693425816323835687347160072169805460494002147438869733192319086945262479828015554339153759679123945545955887353985192350773573021215290212885924096281484461716601326884148854739519867905375839337917127757514299299838110013571213516906001836873647497172677293391133463814209515299419789210598877627634061890649826413060090034190786233942365021075196636806836072413837117559215905946389430244870654000897033342777804851557306868908846012391698152045208462685648044280534046793901174204894146078790071492920284968702151986918703265796029675952250727479432011709739719198119433299589679872274220162395731841812544093711763923421462987656175611841958367974457413759932889215264203251532644829517727156995759505962886456926478273735984439588324962435720740323011861482080964659583595957476206046889158083569887115359132258423033095327611125451168700129890131287136259541567876684027441487236523659805557981717299542342069793647059125462354180777195118495063117772364216091121806232560118291183357895511500156347662154460947882586669395207139669337556391566209531452875908959243954967628742520487853181334063900112764320606635703234228139418100799041824359887550622578737752350484816660050693251196141934358238121169072884998642699609249111532174306994865502759149453608514535235016581192128029968633680730242696744566342627774113010287591897714216524413738338674796140993063997278168208918197308025948580928535452938131261073616369285210483350574907314984218780026331034731423858690871431827459460389395562232210823569782381320547620929126898664423117817527731706713346309784869467856810736583277136915664893739374912266772704270186180558961925382301376150310654487926211010781663448698035249675190174070175564826552409234066982898820282965879407679294064210102803975313123221718273757573295496305879477659127565949826629099789303336921791121317239628333017483631138183800772083483911974566622507664421904959038643335364677338432826010110332816650098122828208203080278269917980282303450193720820103863942523032411686858842995886428273704180266475493145287975375901349698670492216473853289980853744261545941406924833082335081344216555222783928396136205707350227175386631414412874105958809668063830918793392902779686384498083584725820849555542414176874964310442039059772537209519171225656547510897583481160256444129555747999982786232302953550414350277131340965090433475719598344587782199147835829797074159219475751486248545231529644064888762892801221897021566709862349679949860454979894332954785575934446862289334006022831912070995550153502969757491620988033752633461009540904202252637041018786801718251369672136470079189675415070274380410272247122269968537987895587123760105126529913400446784991663536486678055413343622013352715161336592340253567757843727982391581465733105515983323076599803194014792747555336278991515446699831165847206912033471371412217787494103328589305814478986435491515735027150144446484847621341120446739710493859778718251877298998380043561765710445922809045916310500508977009087836285362825825128486126741316742482236636197791059286495398334360671602957005846129801242530921003818841084704225051048147813393029250451259071299900407996878469905932114470165109848386553548162559873634277334799997796307699337868391740998936049463025501455150836207733676383869373492709578802377151245064820336176680969932069490619230446651655783738243148886557444424382512489147534782568146558543276219587321652626341200562360568772484435770921197569915397409396173869828530356791301050367758278258749804958897753204730449240950172290288771306994701132343899456024012653703506752630174655023811326323482976651570097035110023344952973460784659135926223586028912414634753738522140613602352842578896008581035712507232322169597885111366152535447073538754499727307706170035153458098129692175215210546458538852028863743206915579416135895990211071167678921694072197945777390450035238429106079816229949158557095163031259174000564296844366419176767607880809097706817253188351439671300087654312959683946952092485043747473228813405531324617676398651991548470100754945293688458977953703244107178393251642012100381588981565445202367771220296645026022441554339951284266532388221538560953488561097354667110086269833140104653986607970826907335185630753288409714535106141100221539039171746537902522296491925209168477909565619354380560372257155830507435914303982164743863377193372263599499365156544272956377098680952426010873339957866862253814349660095915981765179719145461656534721583223985840426647597735507655567662498674199472664411694844319362152254060728608194980130002927680768339401623020514936918725305626532495096165571484021656851899303647321061527696683052024328646191712205789026551898760286891774411547783106044002719572153090270803619393465061195326604412033672175657824198237513708119930387903454949879222272492019834880673396327137000344177060377680005131669193390499006023696917450434097671612260682229937036170959048477622823664850584039364912534298235693568924752213976565947306591468492907255561223268186293237602586322828784250969459996680743703617903810873400110480613581518198741964652558682064002099970563366157576813561310603231664486447433371748751372761179861062283826653780954542784920888903287254053738134259648358419498708599902634233653523279776762222131214671695568364754123626112313426539714888208857048642333127820855931394627778232877317891564223697885690927025438405282963315570753014348568566980892435632895572019036569564985909003616635757203858404099285684495251742201116140958414037597803781549542932390509475125827957764789045312506795571536490622105175489947283971142872123325266766882096045957505600599437242203773983163296373928293080428156396292077421188073378719452838462036156922389838788154614000586978463860494029464166260637546824014710467538914826842797213609941857808210296210353003137351335016513254894022175432468472683976875025229523063624120613970475289598526661179498721147467238429253834888804760709240236384335855643914703593661064045975580561974927277716899124819100988554701861961428392476955446422930718980401854099786146121092401125024794331083370406769946885898522111993108659080490885807125148346914799547403477304758022667610916613064324719180312728012483468386372772536473028575228401029115921272132585998123201267806409947711395546212867102702978901357206210748937548836311679396576896085192969447163972245300983684330187814907214254716697719790678489078572450771136301436396220930973879824238115476658520172922412220538166685163726019477983289115240063470084709472264463727507154947318451629875615083019013148976606889049363635059252844395427604430615420988299789700528586351664209497650054431569781288310005870701243973413528806947932808906646375250569411021039410956574899497820451927171347525730414995239108006907882953820660473407215631313045418272449781714744189516750157136175992625721693739724075802243828534386390785095064141654656853018494472018140888407606689119197602484198335913018402353958975623116680830088209316490627898708650663651070300015826438482606704780893585328234511581369175865576015058827236785266082527666747489218546791754002262223767426181930134058845115659648610230947859141475115844527669202878778411658629334593876636856617913459884565063112676202574732441831760162723482510113169506684229049752454230242547607901807074582410976554505670043449850738428647852838514996448755454766341965989185845005734005073385914134193785454915884423887985812609256385336209151440687504694022054244006374302155468251641423528681481441726323658781544190144890893134005634390434346837115027627264412431847398783722818372136858119979347552507032089505884420917270293028726210182963572201990842500844961369058903863583623934815203604949906584081237181685903596833643413191235148121661063683755731643561084301987178368141475741065860021493649548904496776270251777114462115447155338146961790253098487000760576743218159660200243883777980240214315905909489737990456156073621521208812448626229327394817792891936731847943504670237376640271504189334382597521477691114079215681971310539102198001683188139021160592040959223591818991837459165782856377620086459845399031026813975374008313510150758506421419084549981317251737983905849311456212831236831316205401238263398641714731226048486714613625621575950177158459161888269623409317787376260308002568765393832863879749079608347047161270589274130013742529997316695736485015959381752027977951283416199784960419264996872768838600298980362458193938628117514519750878363936686501013753339745272185418610906685838879178463892667937940388408954623771905340110168246453201559498024197342944764631801738813640262141632341471851084455107801075079137092847880170569960588083463550067871916669796026493495699817014971545538534206665613231501979059670933973475666435120960366263224187372055204163402275508448683085158918182136455971919498745137044045298211176040763132710479847624842214836576768387211449615010350037134904544067305072245859366051686027014110596195483164225829640654299033284346665742627452464518441180338399546471308961700576130467975233846345636758451587425455452178211629942157263869186186276208906478670392281275065150265544495518580283081796933198152880427259733318113063741230970411500371678960476240332588541219458034841595777959715418409936064572260018678056857428688432417259390301611668884572659482092586095069167445560082030658671481004906618441986602326862380989919063181438721831656058785178038202342315058683771015317905736920010836263187501196306536415713725629067986459365512250312637988771016621734049130598603310699154682858014897574944966513685197755322155791911270297365991196306664139895707389560806029346007884676664225540436753608149636732731444245044226480711266447172337869225817684558184542822055498647428851732626246250025567702273892992352782330129748260957503519911590379909234788044238100909406541392188810335996200475565699093150722519190897220553952980187379176648102106735697208196262044490350704248317321885705499508863422506919068201644789046960076299775066479869791021624866733882996798922790709218560402903985354943163122868696191476531461296905164820038848702162669302528597167920419873507735124003157582484988079586730459428302706299891561054008257946231289208288441144193975820869359968875595638634761319803626480987194845450304686682709212549498582253269921931306998631620698937254111453638925660403146381648343886656026006123142010233602545471546018811325264782632562502526132971093452715249039654376163849922598742259700590791640746327820463573583658691925685239848695377448402362595773875410721891576243382089044080345329554471115522071994037354763300322283574781159821373992958528049064329690563149555918604060745465075677390413845229745087640392349825493119323129260783045170823325667078185689947454324726397244995121809131566639134911631675119682900700167427914924631548000033685313503680651743652252578391107565572520818087191658824911443641920946200479681273441185057788440674110738553995051908298476530842417259159027982270490530927674977093172061285037217619202432644168550667140472888140134812956423987233278782400820387710594603462306821898955968175758303563080223074844682159730980184408234281269139097425869137740385794011404692768534908871349887741376892927764770661707814985872652733160998906995098440134201574950341188246562094998649656032043556193219370115696718377125325432072683862750688799022923760918586725578938530878070413108654610709603078122844075465452130604370134754557722774449767726672113631831392875859590389598931589414915436460338366786047183538822907153572747859504749974271613647742959642236004097549761944080221193380442133803525663583870987423056318982041609232009565828771517725643767999585093069778412201118050389141644331923855855289681372793356775830996251519918437936870398043499060577280673856007682057556003883820840724189339739081688256735816635301177869227172793295273123909372003600298681194765137655988533314844079611686579954283092789692486519977149350350412020404156889548415639942286674412866684957882462124512941433005048414192758531677756561309426359689952803104494718277684613405780314276517299902278993142357085306463542616317698790267648264320409503522419119917640147338774504332059573348559177463358741595100405176891084597154701510584067479199933396117254576544662343718135576575089577044169367153751100089352906607401004651416011338521506644809539739632048712499567790608330474762769430544646028159047827277154296190193322787640107251360770050425888039719624003288046792970403396239656658340173901807172102033147064944852794294756368270204988228623501747079368706327235962831009447493119893876866994194902688002032446288223438591402720881882739141418464173389193272768300907487852862192965027630178637344150181129077929082698262564042579960543533694213746545077074176007095755725594365962753068738863435956783380324851267777284312486475536951347900071068643941968212427647693257000356325523679735031385699466047503627302087872242744281543058113777896404922556554489362881019684601093298475460200305593887322659771918520597856191735781647878228787271801590966040840021108194524582739572544342567752005427616288666746535626934258347282427256720292143045110501149740119468865160247036195148353688474791650084586678303403217885493594743102156427408266690800173310339231234799124079435685196083432175633053673087720144437068979277162773087526310924965475944572143825160140680510587533727874583665512502453780670107734111213865463202538575734117374760195093475598601349457776067318086008808513581756976816619724899943192142644987874483817728024093034909825472358406714289369259054412184892147446613244170269770155674141731676438543768897194802449485980742449746452883466190315344582483401946961255502291096342393809376061185361225016748468824457611588615588009657491939933034431991145464916796892077887778750484699328102674045304772748682435925249949594251690128855371151536893695993678244964294704091159194445643563217624279548582352887028332796372280311277637581781586314336211381562609169108427394589432767747734025407655931115009323300746909122586709983825827352179055268512365058002000853029487687820556632994726335320711337235097414738264255264183650827808357171821351329102265500342169013795103568442166483022702021256695615167117439356717078893145106066910025260294630315999048855468669301273143360065969577779040543626880735239279751188871595518591511168202381539743305829321006496940745446521443897314576702063247131655331257899826419902020334770203105239008343465482829503839241566515613212220209213019292905206376553046350190200585298727783808344857069418429286734920379518951506390900451376739687298037284326407826826810820139935250558746461467927175846543449564668562937171861585784898299830391961921980211430134753550744421971047709571804912015757400298932354809867282008274275120334221824826046635703343052476773438728746403483691968815619920404650466554324882302084916434064114505900039112603298403405277352881048462771221057477837978514653940934102434397035417422418714263824547222014189779996264672075755862021482213116741235620207180972063895911121351602967231455734501931786119179629783131762596038622981763832026321694144619895762052043614694576030549886141619654408366634925356955719346076606558205193155167403881294073730254447109753631437525571005419145967553326464140544100793651450431842336329064718834534822116342096665313158779801875765879812885020027630743039016153788230129393490915612408202698589880699777057830542284844058076198228636829584284084558346111257923270613275740416800477370752547918629794786101003186821752661686267548936853840502108981033627132546486773017219727530019439543820078096527156844658325494272030211939907166830008856933018576862898158504988239007644562997990009725698978751122349476108515584898002535136659505012649347340436227325183053390294006928658842899474885205059606411925333832200989924449723146900201069821625664444576383241420909929377914373807260643302890477890588341422369782745280940602384791767034148311810147800399182725952973092335347827062134094318176242511961748023228950255408410403621049857949560403245254591363926890541779162479079218235752913522138090380824426808646386438836483362589310422383214299080042771672430724680509695592232593922981441418783009975906060809329112913446996566886140578204192256261048764941095748945784843823686464894114748828609303804591694082813193185148800039953468188941107719259192761003920754345114157863674118240417316304656251934132875426488993247610591474696989597099418064450023370694132566196513050355784955064412555754337871322776907011756786032726057938598230349220138893467340159336569392398661943215178712243977188255421612621139947776852712680222469475763331963143492425632643354895782262505797925553596987089752206298700656267088927590342996005259035482175970379051152097404748714223623517272143661492603523106044534641425010134997097135080838400310673786518237439038789033370178656807390931988657903795310456702525344556345769931422922384136214043840910174279051291655983744743981820728432328402756945200727913693857383093579082279257617275281636012591408381069738936084481203326957774298833814278965226972039320475786635030366059304317459973778264239995514251571352200535374462589859833172215765612622741784102109692071764175473254755692159891616469643222531775916940779701997902097122734266483491136010101474147641558114808041163252026176896567086426548460740360521714916070252224845824762416743830053274180927040621631440925670537603546535548186846051363083410826603538048716745429191565088305517338073726832881527919448119131960171326842102161001070990978415046146804529210277320945581260079805122637267435915638217429048544952805121966118559387752690503722264443048834537773900825812494553627165808218909390398327207706776193709871161741537457046427793050083132536828640531355474405257700730704062607806498728095396479376284112043807612307816742666698055094838057199429353744316153370817297287413135025235398158427945207583317241898040175489420266033654029940616917359718225823040449198583798744071960701462457925888754724447667008727447941131360671119046206681070085319500740707976218804127011993573686161275759798552790114283523705460389836743651962399284023029282153683739949716129772336381558150512157250308409535536056886830683545949305955073491124264337681960172057618649457249896394142170905061857812957424203998275126945333498096587962382643767732055717806714849242669245986660978460095413191861839535969834756682776290028908491794427738354161596848402393873386787557866514230527918912387916746567296973137874770211656709225246638645693255524710101954410985632962747534483679153704777967787798829066134401596893103272274952367872466894255423904295698323405314628305375982771011186322872298134179330922007930213351634651651227906220484287702581102004872541243746469257844842159465463437381951202412792201073039593329230546130213510139916695022089747882219863043155556974182299978920956930596959733009245050976654394975802295156044899043990840004090322166019759998900041769583864481937564838566013799411666544715627564225979069396739921033014634001120303037002168967060531625508004180687065589579686145581276853006290637018150294707655304665057872577482263942284254251930749065089735467390655676985332162984344006062895185458535655630506496504614920353595896841495690657839357453304252576926149088653512087375021478590028169042917599530374058813219136846368245645542929487977690938987381468385222454709498156834738976374562613394154241467158302655080366747380418391063052639526597323366860290875935840759641618822857599963625963552825750192609085779355149158833261000581931258287405796241250583621785101903321277599760837814494834682518019642629061236055651491129167130730722998995049239743497281675776700444827236718660977395562166982300655594999229508163409096055202224736662704827824798106878194728931370282185221725954047261985928291497218706288215964443296683030362000611861699933169824894107880811578060953834325026195737017950200400570832333320117836926913644881222066932279190840181738623584645204349742816496505513101464994595228651313144484333622708778870607397972055419372864827959511273576058464223115503123799938242013070742050649039307078802249903724453801252435882710771479376404613284156925280436602668484028225811726460357527638133143786557680418749959838088421505321929409129179806861460371730240138774099609550966898630417351911567489156206297104564137679279130547760477225334193232207829319026293094187826700827663358960490605617750760968332824458946973301723539370211698901815480819579003890814237159979025603473549792077801208653895792940480187759670237322900314964499968222078632758330425045836404667424857581331124536811903458369099919010980337598630029747535384910469442469973725839709153567936055033846615238795196717451881276823703435377831186947924990982933840972006381806670029174884996804459453331514393140316031551756899713656050143994555608627447255826134929329961014090751219037527733069511405375933804952635325886944601290659004369382166956349488497871839711399598376514832678292228781141119580056260356339311133240441884807737922135993947525481525482252168173437148262901175157511878477499747803354911400184326101678405232916668410457801484261791655617825750528506844026487319562711310520404530674747741697192371781049436222158396473807828354222552976632246552284691096233667720033670847644769212232885191103538788551836683653344052711848397482169520895203787216698802627895918076042870311472157362536601207700740549278823559507559619246510677707755814107086899799834528505849974603593863825186679408557370890803215857517164015303045952653543213891093168228291704671470904047763807817259020165571799398339428757341438219551754000732771754442040917335744395865185367750116335488810314176040664555049457087650907755103573307319717970802630204549473742003572185649264786055578835471466495314849445523833636385674133894545057170100783448127951676699786345855903633055964316734956191419407638608394795742859122823073100663177124913441083151909100868423102525576884906266070869620024054157871038513276849668417557970476110764622850645768737473005346654782753529808542113573738787951050390631446479357158191047227853656673974934857816436798021496516842955268871392566247600923345532058612311201287118247824131168546140944543218361142722266293349584014506287310510027913530126582209425398167139364052366768768671212742582023417526903271276989661645868564355740868369775501462922051073786565203386738568847703203880472647188830798753994759379016053201834226497959883141334969851777092380975542152162476819469982267536849173779261317579890246054705522783824022344888842596603571486429576562370360480182888416876637100779108655441109834481506683429893028152972121257306912823612968631459271837154413395299780782801355995927631096737424282238376849612842840260012489838604895925698823427175873641548114645767743000889019979389797981765794864700480030851838358472374225182947513406199091503067510716018511994637371123343617090553942335301453384498235040193677176249933004415164391099863209531919040651281519848226994619224075241183908156639685712843951968230625181532833672183278364235457253105978550704252208594628691586160004373678701431686271816526122620312308942905285310491945040630981499210243733298176728225354823488140171578817620810721927261995282155622002648488563837999079579226860036802697296365997845220124252070734062686657485076518435987298325384469074546481061539202843048531441810737370879453957256430541890246491094373284719039752945745766088146580755782747054828739186240792044789479233627391148337214657365348417285827899795653478720974731053203425376430147163376875794221579895736220959198446543202956915217748441264923450611783592786115796695597441228827270189314770789343796798384725680654950683896673374468684070718096378975302904274272308183077579297392121794533863085743183280975970705152135434537580629268272800894511103851653764712086507543370275566138087109245631004540918651898794093343500175255185708626330940264523285150727070443871165952765516022968993073854772289209278697897163706803000122836077994784224807143974156483269983542596484383413425436605108258972374831809652683360446689994702066447062461236735363104755657543059683343705816339059589301604275600797349726252282423956928545742771280736118575011957112813748864784192391926245406272121881566971599812542040621271323170289022905819844888816918355493155206940499569786098122042342525814680027766293344705132425298941027112620084958449526285151756352964001077104568121049479510929300409568834565256030656251490152174117815399833616709890076278240501650998089467669178411896271645200609837958254653862703226574916874867082505012005140823038148899526039951322885970016334027849293079653870415839874479500650196213831461788548855234425468603623375524952529395770036463498013208896848940560651446463637797683630500886983327965188543854772470606296722823950322884140394302562048814022430619893886977952794028419619778496397385530346061991660879010292177601490810855053246262213392491132002425665426136610619496254417368612930716849772364734249289196543216457595423710578804903543463390925925674145378399166446024153812873091958103514696896113976352286292823603099464518549872591287926876693737295837846103352279068463221238355989970280008961641956447067755232187109181052091024044364096764568034176981518108460380320282695336948747286134988472091584691730732008545833363355016729703205898749112942287455113057251539671439523350357691905015028897250605595226189831578168066635773610066535973616710788210117997304510902585478961280410881172486741384913496616381081757497159274915142066171632113005379085146978034720658544544651869947546953253303995840551792775197293696532620248837882850890707810579926380298793742659865387432039066620170279956561459416167888958907014629984776135966544768969812418022305016709474415579669671971144201476467799321175752208054525249484018040486363269486024178102240209219559585690604881728513383876490085646060928926589382135003693266663272376920668053409052269835466905693773427595441459276277938449668222371718431827389086259064287809723946974612182750405541089385864077530355886102454739557297646604599394308649956158697565454409114103456523021919509469769940970554019117936422619316236024473842404528061989852359472058254149936164446981384294487047535103742478590295643849082126700479491548415158995082369488388441361028152118057035177577494925507231285054980229007096521525430187267184079142689323788753128509586629369377317882471314194071586956076034547852107245325257127164130621123017471402225238084100256351042787501126310247105054692185636281102893482579956529562563487452802550333426393171433795259064696589050607143721104118989214158604810133961659621473165803284707699198728344570064979163563859667444631611523356149877651643573901811063199674692150069928479981584930324453974519822188686192259823281219844110028353302084645051510763192871416617794038674413257811806257852276994409779145067788174934143847094491630346662489015472151528213972232899052833299486552201186591980207747267483251829392541547373356781689439913841933898821398003472323653863751592514287248838783347347380070734136540298829361793253936845966800109006623315314680475644616338019232485732210044027211537257119202261299713060125427611345314931947436752218715495650008437639572373012538317865757668528190892245668569641376709223452258264089550016747893950802528243728308214540107435841914797100462456702323762270758274643953982869903479208056812045950455370841121651313392417978606279140755401903163273696077016667363637870904851760963040719887014792211247238766638655519715843855643698847199177377426762904361710621108914384376721622762226283970580751855876422415473647913945513156813133735396429939539990432848680701794290127797753413446710133758751207654569680581677263280231171462353983615937299000767768242807723571095402670427197243830143371999900808660140554616062218100622539235212598031603921104484526993608794514892237826414100491372073847180045192096907453058886786791654315231435543192881452657400493433085388280126600985680778819600116864149228333306369067651143165925741123469157554515411661028023482074052011720219114259492002951503491649604418536247397049764016651175797513523202525876493123752125061922458920893374888126643907630786208445614855061663090861503059364548606283443630087048802775668335584643591142832122204091939006849523156893671198731630263102644319793936763081796809228062363995270948772728734311090748577095734129925194227127646933974237823947631474601729217162091247681222863653784126728412434561614285910175300567756911223983012582785223593213766377104359534751325918334673991677177603178425941822062527155616112076848261952782378105697274455695812165111385056255899404788985750456834186750852774063640964960759736876235937878836026243141683617560926880973130671957582665255034724498295644913532899987855049498652999507792937181316052565805357812565563015999412457544954649569661868375434497569125518448527641823566935179723614228426684995652856842138696825831040346738814490915976760504316493624276670366277120604505473172707043267129764568472307943911740354279837110766425006380285741150115454837056058495630530568106973367732786864873034216418627035804620375874701585525446174499596341842965242729265463274883682221152940457843909886433590024867192916512891972299799049821505649532308336827842748659842966119108939434641389609276590739031422253565683488676015694907435138206866962824743710107184710463735892922171454168106152754253667936876279184004838796351769068857923723002936770056285406509566371648674716845246494517151527742566279669982164638877386139029888170792980908075324948519528111002831730407087336041592396281476788210145859631966091843767557126757051687702282408426069335177473959970734232487070637351766311349546772437897293239282690604483905578779639009539490121772631730704066736477699746508656208559220423272383322821916546410559500358093486157117382127658841840399185903808799346242716115553796055319512255780490742322651872613578717515502558589303131714130765760286991039934033595504399331516885936174397692967330701397910195873707816188020340322907928114517100571977417717264290333388727617964536317930281223567485111945831374244652362480754380079566123829791384414373158537195297517320263492092722791575299094795949619158486074630073305223676571851876306095797151771722116427920685252786391854334163895732838652808065678600024167463176933384276970128370925720767635450005319890832655522722013042155164675002608829545001671747734915736926092127972633845015039098306090095664169509329056896843233318278232695139901663701735127818948957269957437484021277461380603521694018251801145472424959031604873058689393300190824282628262638442076013423462162398551386004435185497262799548429738909573902345335616977203873135978843088496689574996175333616517574226542896702390706935209913706317645976067189587827997603292862010799121376551220218728184023472562487425305978636231609267703773361183446672769764004602201085034667218243820205041711312564165152707333509030221273610460900289606441733821807957385271337358152299616305004690662111436703674611951550413107443250480125437006348165884413761421268493131443519776431735074148828616200611855718395886875535690212073153576410098968732513782119631376846092652463719649503465717888694051963266833788976540001296273012527415322263410893829951663088229828745700575511800110486486604607751531686063745317587402656914930978041983774274215881971144011602346518101117416684213699575847318771111908610816207744434016240759309385907151966226517554187615651633070452528943203343297542742752407192023958692672884422587770143408340222354757493955636766339501276863656134817819893872208768623541368349023552560789214571613536313189588986773402401788738736807716091995992051073720173995482200294463628139065182322406698735331382287021757865926776524882027705113224568184421547158583222740775185860187545294113154263373145660667626702373967269959643369650373811908562885584091172819007806948178462294680497740081568151612464788423092753448205147687716596606418138355004770929573780513717956022260163896601770630866140949507040046594707379139842630133423456985248519785682554845936326426634722795810156825235539380045076315576337582524521859433189098459454605701297403186224765892041153487109910099509481380919728919657828326048830316101405284207550854975915583678812637283096700023911377793606014728696788751355369434870775433154918595330986160821123696506851528894423440800525667327678292475925025919124615825237358147579204067303916711799592518515999315349090125018679027269084478527875141822503486915487004106028602661925521974322814771526129000178577088885342501321003416678156557448057803393634445403320589549324895067606192641772418054745007384026970945831172416286562422378318928249202895226663069730399132452824859610615080477014281691191839104452803683034386769683853031867079775239549165930277126376792917086562522990857148016781796019612628878188398108529654428230873547402849887166058697869022987889817230045385207712332977628498403551123509731281159377546643809891040846925748243860888482602539831670438208765041543464486878100134113989345916812622318059014018898581649851472052958316704836964706893834893670612248175589538462924161836829335001177542044767051897755155140124840034550667906615709975464386030039671968247617559598096833672254595802990732471229462216896697066402139356225012306861022992475011061382112776427428832561704164686709398591907103775485134538008950242814324567362506485525008761426300549471562008269488604363369101596614256293263344017353951398067282704465656527328881114313369599204862132327998783675837654477871869917778396048340681718068375151202295429030433986175386714739725413070555083148244671683582339926803179320664075776621844393881800043097159930040644558503128225152964833646540848966038647766679408608296153452482770634694271343654316764037551625625413313169484818690303739824747106789824864556019734098504464119993687138433611152101225832288855056253578160033555069404678136177546617868835144554284829062040655566778766541985080121656523458141912435246719104687090093590382618221561675733895742369265897978809419975942947010492336309073200131889262179260671400227882718332437728536543919222873819062270740666148275696969596368994528671861424210664289448593199146718859534463517359720310051553911508077715880830207019279770995451605944007750289016444024589032844836673485345839206863490923305387525110554074779920545823548246925787177028610335221556944410158271451721279612509134478415567613872185987960602368064924692278179293281138471745174801122182671156830844899087537968299250495884474598531637244377558505676751166127413309913840004136262262724538505122013380580342464289463379559524020952126969947965588253564618201683760724860527576835945875661465199868610232977484437474212916406918209177496266537721361708881557163528317439125834877366122771758048276037317286190341302164280196187656010386889160916098170753048115073851263039994733811412291427804530660787467219442781989372438577468066894512790132133350252759982855464407270251978254082287078844583343463213996901956664497835720818376163636936647079514126120984319897379110010824353565265152823697087884998031693370736872687218562189375217180975532083569869783726058008427076837460268998986977632858082825721532672875830163428605280696543192542713149589858022359863594158965940937255444688536719479853901801254711640525620662710956380132704357629466709575480070082077868422063502609926461476242559252604976344420908015475879686721497786504449733805747815912694950986548096801773546402081740180699739273095307478329907176204055235153103459965676259037908424075685169798476431366435543278073529358842571188604837913986999481964591188914256927522217143482515621445888772093511990831122432697346729395980159714551435502902226698243016967395979836600669116520262480007859940529649044238845614955099465177378185012669052981916762503620882982727585210181706267794554022313610617015858864324939902980532596010754490557855593518001354497178612795513381772142056277419905702505818822920626021046968083439107908538548063273486556202343194385442050757140272050154189387017556942470446359681680466787356733917630328785759688495495564591935368611701333405790180762245672935640443695330215966922801756246397016825898423422876212510511850103659531513033190518025358122906919160698678121935429673521074979834566088149037995979238118450454606378193530598424793333530322131356423355266393944739614705744202274462630246390720384785060081543953530482367747616174097243682846254754876263965804845295430270828037279079664663331651045915141140592195490346871622792544353052332493375556958800501741967670407566596506572391093909405267617369931723412953456674334505333217328153591472339950485865764426188733761908892631650782699723701935258446298210552197206370579382216548439083257739935389164679176590723214630538330421786314882926423573319232682477370978939728255885896434204104090037184809828280206887508108888086053442980447580742934565472393942629964968559109603719495312656004714770200079680793098221823070396421543287361789685130311997536976058707842074039007357875976616133502091945433628865152061693703846826220483011593358075868545051649799342471143953034618674831380669722001472674794138047444199542876306570301474147522642370119648794971023802442666442990511576873343944600441176716435746159257284231503697368467755543490955476801853563301743588509370479736577541490194109932900255326354103245212310308163000272489424215119739085449531578819803105033917906475075833598988245147863510350150074627476840443364734968497216951712898319037996016528967022893370162214858177057521332746316422526762676245880567430859610435105198735401808309819547023273195598555978364686863821698170250952524073710809503016775100865443852639591942696559634534765682543321042670059426507499700957490510962807347136709086995679369805808404787069555691059549523734113584200812505079455282454486124344597739433195809995902859091623146363203939407150725709498875431387088364287944467074301013242290437427935374630705951620518696380338561659048829033068544655672237766431318540606754844403555426328970942798609844019391551059366545986529069366669725962822747358068090397535841582799807094318263779029237154417113720658791218431974157638632825959918072275571976899464331981507832473197067097141253691702364462375309504518005805289442971280073691693328124601007190159029142242739646982387109286349559680042257843551915122445964004615199654978407720106314050316765455647098087712503335705873431120001795281698694965855638481701622785058553564919432650325422290068619727720123794836144163804032299555495180460851543141052244228972922758021343949853950513776501261820569537495569827726924414981858166972097762509964478033782470177145936047778230749857802583267412117412665627064027981585272481377037816255371179826722949881707008270252019881761312661019595443004519199110495548892775527981502332192620041087834463555030692711472455836191464501966668482986929830260158631679073885307683182173555429943813642368813849521798466181982881162863619921596818139771622022001008231507441893195578912246172554662799661269938209977470857115517674002135415055416329935213181133561554939200123281421457093049623501504932094190550082355704263016760503366309153549181727901771234734957111614812251557134832833207869143315276931919013891162728758670369560617283605525673315709000170826898505585891330199594757479522208333993961698583461603834322038669224895018887950908291605344464087927038888010793584560239360575911881352027903917202550143160870789058728493173147350139026086829316652435934523340800194906953304601961575066161955797433544086873478801616709691672913642694362265238485524843487368571830325953385507887513202920103633623888651810169617821674049902442015608988647395134591236538561179207013603361894240029083764478986965685927446268729620629897963363019666054448817602843426340725319802771916423180116142444968023824706604952791071341913784338759795290149051775730235546007012161887390362747580477609385194562113445267078588574416258437855407397095131541426113434651523543705128370701237857002208476294248831068929719779522172700310245049624015876527964800176600483689639821895555185839158757778134627543848364374752983962115291748491698274613460275465542374179478883493383513377770901468701879381615362578903649161286141294557525135802100665069612442463594557814457307987403139844587106068454996063399514642290654305092205524758634340431839441167543633271039542889644583775360855725677165686604479746325872155174715976501917704144871735130648324431809988960012302530699146766203995909353299688195032120663114836109002211785250310438988142867820026995136256575023952014513040300421230674755760536644233646735370642916286211126426105944209881137617616482805750994940659732788684137848652327465068327602464155503722244177291366398802606072233708297483615477567884187151807549304005860047995079625218382029350020194317898275432252934452193256647424426597947872016792442957033129071471241746773309368333953704977800936022231073697731943504092210392032838455255368901603418338371661831717472520814138811617348247820708978900372965342848990271514431927067760560430970530738894801639367496562204334188941356117499451426643057692525098343066688670390030898814676262342218035325198312242352502477609740937230523846148390816731953846233399370495590973744049729887495130048752214049080378148243678567264700101870386590048439878050438302872253972893084597868894662386514262197160052711875974944629817805029429783490564328138170548727433082762331056634544138741133360925646736360232376109864647132202874905120081948786432772414028138914042659949906844084204499822282091649115286196737349992079313786917820848149903038988728625196833014726749698427186274574603792789269630679617362911913495754858438758483434110795856642558655199890900926043124558816784492531848193405103843951482159914103989704620690813883110207830545989674881015501420236246545740039321526553146869817877518749571404254582346716749797975037322325569665987729290639855366719020108917558561624981869080629877498640616523209129824579758360556489474848114064279104349034744119031490948078188967283864184803097241868949196752876765371282893570506755941298723770644461499259090814867963463844962168115381313130687904658568926049957722350515842680961083885583482368336117709002183647852275654718546569605333052572415111484191637137052584700339168283515542235880424192181584571851359748644617423219746657064143387164285965042124680229165385356387186523669796234498891663895967842419556576507601733734801640391462511116310813771770274447171871414285450869303363349925475715601191436271682679492208388163425321203992510203368724721826754754102449646954800076873753162856259705733005367034146102360609203816072029562715560620217934381706662189555650793777231004628442119861787249550891626811080695581761504216572849071302577506434528438464895749898886899768745802455897961763428722469720085269120409281756278610328909283863272457585913009255743101233020673159968254469477489193661348889645764503902926980542732990562597982964101496790615496029057319330609493470916089586448546591621874813479870324499064032450853942882600719815925801000204847407546322455134751700586119304908285293473994592800052808836804237110986384620661557343970185795584335319556214923583613504765772613371327408968807383067876159470959734234410480591909703877743742779745217126523260351499361140176784349553081979123730842108895139049744018034698803842204302699775256544100325451443958932185426951840871061586068407094439909855379480634232785469072147466443549916280463053345815707412081861248189877334334628249898289612067200015602387567075940253762101013871331356233121767226211330089098170562345762806239983066722706075227472322649439999600976493777528571484909143701427636501058819745463874725909970677712478039313789842320836845414250375513014363797080799123349788785008746246096056657734222808463564008799083973246108597342012383659268484188071888349024991446966319103434031379600286880924301113844447631767155807940647738522033188373920156927603497886616379378768686172643022233174529991047365360187261572205060749815717112161193151054846603433847816213684234267887045201546829190304585744124087230592799904769027657249576371538719417085527570742403444438383424499224846355821967217017663392841524845164408105816568460188566368554015096543219096995818785805938729495196178460204554497838304714700495219385328928285277659324702579951501455222917451563910202096275404739740877626665673939079361548886950083232979525867355846598472550923215921423998789531912829630900526168152943149487928909174741610736799868316644981565246821828089928452943906563707525194844574484263750131896773661365754296756371833227031634742879443543026496489611299122491921661620903772695624470424313031356763076441772099926837957451697167931553929984669636278086097116475730405437078108461128941109648483573874719460775728161729898565226138726589486977524632642302423044644514599468251657655502546056708552868537243597342661458573148963705767409999982280129091706393964257029247352624043287060486134602198029857689196668764331094035621995536993313727123048282382006128923788721205013705525572636805561718498074912256699656974072490084835544245789947489440142418179422358339618404243895248380968356433453625022485700495353276598149670761623315270123079648509606157796115637618027515130077169033964997373056793550755149442787706380437735479690969488232324075031502050906084670503255471120417865592752775701708055909914060435084748340431868084361242187520951901896611522989058843634893339793355521772441218267585953500143799865677468913139315476816395364165753891845947907311116482411356436130230713230916990634300614096830451017538401736274287990811351591274515142310489196396830983698235391421160417728833159800679881513021035550507655953535030013005194904327141745137477793691100047686935502624780935334501529136119081150420235359876507336911035803180483022895104134168962341553970645583687014318539378980306215082148031253746105020654601423591541536714907622939543170579716450364934879131475130824237641894456877841030479558500713841132036498301267317397163074574976949230024982863142521180493802781553405109928274503335041214091297810565905209429160625458769626708542736158722136332419013218145366638349499038629409002699655301366853248043239195359016255238363625496213065002206731937372146854234203117971286718819114441246222795728042921290022261738555619236941765326241727147234763555761021123378085447870340415358457471876756158495614201177090504139030526739553562969944690767980168273457447295944736141005937341824088414030828445628575085809773649028030043262166565844856670288407940090725872035247420736259794717567896696028650860992174820457996924694817699032753701691821982960029906161266152616710211989411200286585850099766116650052468039333535558489573852847492037788575617477629411820090849697337621438214769468753121319780443794349780780498251329792217768918480548262234418546135111230497048868360001767251112805291980890331878538344724530232772045842644414967832365117016606747187962783244792957116508774621228477913493253437076690881550109961864088989287558947372336396017473492412992535632785794916454130623509436923943290252167178326854476307888837738983953558965028844892600197608257954519316877813228871303233225424624817541287304984130025815629721966200110018731359981965595534519642167297664425601302942271854967305016531607634259050638311029579362754444083316796095271303170573608594733212788495458068404431909302346431491122579133997935793129012850792936851378961263304366276239980266839796158193881891528923263473863796641917864924887722975428842650442929779232371496906399343900252429644857106183572398999864635654398729634520398144189797492362007080813745222418320362586484061783541107110977413667172238276198400791297391891075220539933890976398360326060877612984205023924357427918819611035904713110256978930906860092364991576414490804940666472355820329400398737065393027798195242450673646233531085339553955105464052596327045382697739466214168273027265096916175012870602694623680997478266615247712230293100561201038972581467645009977948003666993982997039300775454062346692629665377270619287887388784762842008173106838518460930450744525749380397759036096331997886144610056576188650458377980374624736191763202509079403009173680110943119538813024420603417556422442692632188189699192680617778375370665451067263259829148267204557660672931029769637084508847153892784045369853387683164143082422625777816353554670654051861552323841254681373858435408148104391482603262433068759320002104596265780885418309770520315274843847872272721969671580181419656139330098253293497672215906334777351057784717867304804604378891066124598743188339581415006667449132111000487668973777473504991352303351682521210192427178722100196935277887915211419692525190988883766266245290750121533207428045927461053545209475168563319880857153926798378202749279220478664050151115460311872152082416936348363852264316838165933576032762073005609776518762409467049170703325451029618711931884461295238168978412013002388160034026997725201190631333572883664129529930839827172723350551235874630495646487244614780168258456956593064855059825184334883450438724308434166219115304526145255945775986353592744401544913674369034285930673053095622493426732314167146422000598166377749472118139405290449304753483381152992070997652192833369524251287421617837454147667118687220157726434024947532568744078524745639421871691315759501121420855816562475116255728490052153768557198013579080353936158915015921941663552840191796857796851531522504947038362354179538872423761633143993919175055229106996968493435050553915487792793519097186698500587543648518525225694000064446445299781529337747797024430474097409711531217969597013182045301469787827806877575537531684955333419753547322748054908528803250895118856234382841944013970477976637497324616336235246383131020066294361376386486848861870870607570649425384770880270126399101687233264821120247521678455479418778254742489862748302406044360536487878755929765193692788574003177016830849423257026340173245167837293321688174257055333439755140034126221284485888715354728408145452326876170901554872891353140234388498257746151809458963414058433477504090045244637636766274817159417536980413776590084515229312432550543734284283636928981931753162685600367764470721275040039302375259837549976288010544313215777916851113514661431774298915369771678275721198130294867627188316598015526781175060973849848079279662908413016988476615211272099343486130321453918243795949885325364070067517651992042831605975490570007959317037820952792166054306341693557773876672575548373733538708589026063360852127382898746901494960587516053868363555439334847018426825978370407572700331959097642088846801263046039631106433407843295872317386253847138630627537490026871978773427162267182451182245110701588763249007293567417486527291938623598292754902681751841683704976235439000715769936606992872031930835981385461116987781288354114565735124915852629113673663919375640905696445235840800612509798776191493722858003674915726479768474761612305810924661631898340543943687424754756795833814513631574332278461716729114371129070157127432513884733745081163324308810090264007239509891039719093969540681242138910513421952833623171564144756693059891652880838002419454199684359996784621857122229886798129238877913745642269773716438927185172016419259145604412226851760118866030726272516502134649525674631677019399787592525734743298297416832915932856633038548659475662190165615196877594399500934108264644146594112674326251112188014676444455728596809493548276436434543097101240655004123458267917071118984408368194268186243778060312433639341972753297218969901963208296931865130234858460520383294726195007818394509560328670623644658101035899943625295443274290206134073480321459931942658815878973404525371638211834960211549939934735472165107392787227831629300611547449934847154805342729063364324099465011689565563582700245649572612686268619216011559509498520633643397649909375143939853554963834879529710635981308412344599644838226662391776851175801376119500166834010312448120220958574817236701427990639119722560780612384726086122677729729023938831405104780463325781115017370849954269870882423575302423111436152834838315239351692642013516183611843549907136841859811663411593511747487104022695279054358071480261198087749600705296486158046268416257844362496078030431432650855950990655707112875889228269807058737865240003036699758654810539921984149209476365388630488509711612108508892357423646541708245196851536008770846077806622821893417011006694144527595261705284715424186730292429727513204778650629470679482968841822695547837920664579399534170481365416934409858193650870860629815907170339118051505112355199585464720563593277128382823703933718266383274641085086378172753849539401319753205921577948159191583203771356485442710392633760227151779429925446281661001940620443254535593727557936223718130651842503413710678293014306359352080258520136956148063476642920008444151917308980870275725730412268162038496993532408092061389707143701164737250780271625813489396867120041418494409209125306507417775354605347202100450211699985216402057811396223760688896722022624582000122590234280154335213432759234872304001264076669446299637145716831588429184420898690864867042931598937295663138269958689682512045840161212337649672842268928298650803488805869917564103304327289539227181666512849192493614268115358014532358051242978899831253846193852838685816766848668893558046448140840313564262019393046026457013241725946119182449222770483241110928002949311314522907506125596490492568537215546638743479700461758474152405343758033323016288726165773872357006080484349546707551261271458352111116057607227902733871382102843920293135935843863491413599971224367973134375537405341391330578330160973735165574339855523234065143107132207192053015229089080252067083781002086993728535135501202837301910736845940683939055639265014359417538722113525635276096056850376189688980192987361685524677559410246959721487843885058243818264144722464662567818057143088849052929317262707777509153305517906354640629263116801435630010949241081248829572691753571702154239477282097379991296058137778374293082113540213638147094068397493941914829772762779234273171311822945144715847653318015947369189528060707818568982152754922342477419709380119148117515602619066984674150977920727209126787087902714864862557043489068112859342487341324484828474905706864516078982267153762070909851059554822054007224597416927242372624546822427085488745396844418810293877115285836662162577487154511581818654118424205496103944831293955963145235340909031903300638361844563790066698669354406911720761073228717592479027792740191129586611869752413170324350968758036584694658572444646579660601305745665535805020199859480935109496050721748888512756102117548855748488961942687180472175535799248773345045889332053063490262728658610735333458738491445811419784768600062679170466571828399852384612216996276107138964305256574194956115273620898536287787032205270597019700186076324637550085480582974637720277597990136640187558776875506535255127369681424211609453596847277275976542944711220245566862453602084055926349134765236759103349670191316597040637784650704211307505220317357521589545833157713016197543208801777376195809539868691972925349568926665361484556949406385196656624130198024904842582903818441846214636779010215261647264053544734599960635346338965348275531632940931287050095550841872184758717423321398644713762932790558011610808911778179638943817953196176989412050061748323001671143119904095686411967975364974108457412100658647721443945302503216756697528959099556147360185060886400059277965677327495040398424749450619380474871768295393204893853923665709701692530272263790501965460026374761019122346835456184125025623085532827473344876709132091578020641643041034533913570986996590599399122546277399992961436964160828945975235362492157168976642830297905258510266617165190797948843009522704570566966506887168593627412301934325879112622505970879006229742480705828393953854465362659148705099950390812392741954900532875711444928181956973955993181459375860570544607763146164764570717139470384375919971494236932079150813018938092395693996028059631953815585659125214829512735535678275134050705926366449528444053137358156891905096951729540412296484670041097061564478383450880007627183857857791798326529898135677165319008623376977251769485074398208405185187991841107295939981349106869744065370132226563594467116958633610351314197505223727870464911670121006660539040919448796207887691433819226625767682769659030363210200706978234911998613949152507714151553130344952505885033958687406976210917001436302255123117555386362414462330464643504733919874304488158480897747834549843546951169083844037752237683378083454909584275893150530801057631529192437001483283741310848118811766261722437048935752163964731965902568603790686607422258472491203567782708276458873720064783273178585104669767341437002223307656416257049618192335046045793898593960363653516716019052372187506245129777791476195682623723273467334172956945824082803144894543106617039243150828194512968297704642782348054701251321431923040587211075257912158412022144059196941634306328323679451859574768741575783342214084722467618848056545855955589964790481310255626682555398672609994642996092331571569556795231767702016697991800602157497177945675748751226134490899559174233466481196828637303631044833730342811071002763920575582056401163986060217655955074590318228610499357571779850783937187772149100800178661034455022692040070197724586064086834439699672324382619144673473771827068364444230807511627985090161669981779129314055106734903281045948268601494352524885825261440134739744147781236545249775812452900824793439496921978152713613158126409058187160399420893414404101527226928790797430204644432896844232397651585486147263681938249760442568000488631619656596479558790439302911232793122360154690053198897512486731135872838305521430630543607413511156564788077286020648840512088582247870957775309071079062592412172155920250469471296143066794515198632624078176241704422292435529667443492948282796532561540910520264973180528088544645931497357134159768137820637230980779452558302778651312453142143242741187043009103602656242546072241827622343916247926826018597655137964480374218355272659144995435745742726014767838915681181281964594377838100852655766210905649320453297096562448536464090186771297525656736896457283189530251080723376635412163843650050263731001568006612283855507553369739303601599138916101724527285133094102240693413223819336029947249301744171033288078748434763298116724887556078748554642364467272340220781564693027083045836303549316619996397993935969804323245366076588956829364151286354534718021682082396287350276578486300534057544851356499144912026390631633128343764355678347717895403948857611610273514203226076007015272164499920061854149379260670013612799129706075364717537239247930213289782737287926061397145289975246270063102202128736050896974835104062044697725525112786840837992100891328554453575469364805802252349283392648851618887505517091953846594198084844793536169148979322194796612651338021216450496415664303374088182688233609622142842403581865227560857101667268458791326219146714359805420970480562994572520839489257614117443923334032304629962396973176864780675266192632884619314648920961113571792756580433803044170934845428693513718677617747624526244539729620207533373900648110456515485399813857689742824402358696039926570458810375758869520526150280716669402030216749450995475978301149643335710545714848337244140618962234219047719117857247320551696767338121483928672158079910546079152238540304548749635475899712380868879391477583593256230588878096879737534636071853627548407203249119486047621786149274289614902367809625752759233465373888358989197927649308918421789532716904811774596735768359944285650150007828566216403275335876883929396017674751912653758989537908495023814351831552319288377733751253564710974621205402626084953713965290725063005429285206957794151459780032424401878838312877632863128156744981630672344658319766428879396353550295899041810761837706903805455137809152681041472629805850891383098685369004031871044266187038116611694422977035429319683173712078828347013067122680483104816486298884505340850200190632023655047278430976069968497512613334093737129522067693337780156681522328661707448385336223226265747797621271743565997111510834431804416413411336630968986778956633580148695341939281974631506720589771888322160837188435420714033093236892949881714533572923914491157453184009108310629257788470613674890344709724692031627687816061748348702594609719299837231730158857846095539498182694855647567869808901069967622933463071167585075334677037984335928730274024775254497844818721635212622876672324612171355191878850627863993022676425354309704179548298873250825184563386665206295108922331791589906774590403318719138976331433505777566027096406899138244677976890076086778061633387103293193198658668310383831360993976939679445665966249569328190164687446243444057691218751372333038432869887706552212784567873023763697423307446973007811065349511949775283495754528787665500333188469762369567141694580877381497991731292689883056398299291372882012994346330423399771895643705964644710105131772027488183710030125946424267995718758314363077691002510399848749102480477977851357270144630142298089341570798211005755687245060958877103953292145231454320121135682706210801390709977002338811312407855864325367691217451142661719777696601499988068510165499672694927541592089973614453231819847871649535193456239294766983248749665098041460469510784793597167903116541153708041090155173509286009257633219900605519766265931343951037292569359946207503364598690021226348913995300210282880547410104131334507329830765606120362667990501534843739840851167126381724702622311389733759274578172987194046189505021258439878276088576552559171592708783441544930384157478034813823812975708265955942516772890768740500234455735877710111203203941125569720200256738711101907086790527603056126823362893771204139425820567444839420519302853874689478094648082330684930540922613337081786338566747888106445860812752612535670092147206472565790693761698667484588423194635982976681528001464034759407811080998189368271477033401299614133710404943838629422305592735491943463936927650752697579544705745650475889873063732570891960390919372003676518423479875544402698944060008088929784377890541818829308753472230714897641925514301326492782987395383836235914080560157031316954332495078128892497948172269177041289927220727435363891505031495729869565042950759378552891022082960766446584809387419909936851205129691811490986300703277041598576443459894155251095777323838835960346046978339965578185925559245628892215772058641728821513044525842613687625536307678302081778191951713729673489458480388776757826040568866282012387735523485313301027032954718809408857223837912517114382306168711828218481794574786433084671939980360759507676717154993806234444530304338270174673602396300713830702444746510822809753853944848911231758306978386548679682301730215718623741520767772600714073327096261851423003223771027978226959180682133739302416441630522661538700062344980398598103444413656400949849372358845917626505153355216548144239538388329362221093281097551689741676736176520482748976092677917523002619696860465948852556325973490587424416073832281037438624491989239534255123430988112690508967390480322308574689924821207329907018253714676837594795740888220926329932735296517590638855736241165353472864772091422437085532317804657100914684082619928417789798029950021720833516506098635009929962726705592183922456203283776625649711570440445465106045337082919341842129739436801873668130657861690149862496807819025962774506883820026933260671370045289318460941438080510163209179539741329755271261040978779761955501912099572294743514360510143582237537318560275358217287664773081141445083519195137227457898251555987776741866507911620287912628796085771035282966936710571625564372937048270641613395614260541058579514056574685933546277145024244516782447995471190320677205402469683033937825489187679484151483253409281696478963136552971699117645038879635442895530731527268518753082851415507252952856322884168270317457904927663281236339546959330539490379061844119939874399934938943336355136696305562986801930468874725135808780656687668067355075952172543484512752090440313543667615756647722443494467164264236282475563707013232102112344564620597189080518060186328960558487285621983691926338462284123077357968276706843402136878933855921673085805742226906401518107835999996409048525414988281091281814650870150436886134576688420303090555580722681221426353256503047848316195745277599928086629832377571555011914785771851415932526553846933188381390397622027682612788163419364308684572798785643170815741168755533927399550558366393083960917376642579851210764167434675639745386512249396023957898955163358194367947320121511459067202104303852699965466613458220310081738419761231839385297773440933046825174537240590441715610440761601752513617216093225101844486319360013609612397434752810789258838843003803807402919670742307144875946011803577469051179471460991641010931967991847435871856950557216462456703582088040948409886219847182671364845168228334622844456868940360139044806214194477739450599011488852656254127977938592935482294835283108454622020371810211711456653277825600285898825061835361234284567524471825613867076173415790249332637695640222729134514714430102072416755412139895387647893980401399465077410741281842462088519834904415916207089213179110453495141980659304546896581831084359695296090016314505796946779929194382674106514967795061500959193446671610656661393050685222848847829846029204724124370362428698729628930920968621515446066029322260106870437099724026646975786870540716737952908074402287140697752086485247691793283989314326781823421833124004983167784416597005861528340387757750066736659371089864741373169368279413293182092671772518254170652127336346362718465645788647972028095177684710925597167525840697749787263262081661054244990076198907216660134729612740524122638131872545439510666689367813360475979013979580443807282841782621129786792848713523080845451212704549208487419999671392800541712966233068857738877333103486106662428782450580213098897841154458331915612039904673654426426891397450742718689921162744766950644448103316858725725949164463542801890129264024865289553597733741192251875982608996896198214004915085980896966233540171465563496262055026045639309703507366191603364225385970030593895540798403010962722213595817396841156720533888858482858534835010121525902931942664090199247743770551754702854252040265784770957466177911099816666005193294654665540300441402246453822042159971277555430721873609175707895606713200876639619846305333520738212350150257512826522763215920973155686340165817609569051702452093953191696118380435255072426279830141125020434622859202407500385026408625014465054701691879712941590523756956854217094796132984235216685091807562798854676198106347094907358941216485021086287157435130602337742329193523750050222822574351894762485745332112795293027786094883592967303951753808199947168966384195769031575181881402278632815482957232008811537979656997307658293023220738947736200777756857384731572113461253675255265255928949463082375774372962618417371655961661366542041734852916519099973191973097745840591335811286732485991954280879422439079520793690898685463683427067836392740683027840484907053201933334386922111207561771865138273962379702066776901045834857518083886713859721367351543030421779859408694123420185445415694295584931623297386523658978368032777469415428899226050842269732755114469438116327222905899976834895906543963652826552400116615997720869648354841127217442551421340988527343545017814208798934966139780092864985937441624247294872405847064070213183057151030396458518082188413445235531698749973828071596339720911828966157636800330069379439444988133315582936655094405347381756022465310293217848596439661684143073711088763520954603295233722346952636288931590603776553843457442707447742103142061840707304671718919908764816212856368690691479225850638204812051776294652095723457678917469871692898295991478982823688284539816483885204092303581844994494302582307670798438656909722861465342729359390081628303308319481443550670278840881298407658613966072770812494634982105009770449132137913439964092937657990543215094862093175497792546568064723333410199286819961675586958208258498427071889462085820106625966103273894583322773833129319753778595557645050218064255830144392611995582743593391810180111623002392474072507006982866181911727690420213061845393444554632476117471744058781723422943707049150140246691058978841375244107651940710530520408361440676756795990640543306886645145298871499177907879727366008054567691102553107472827950819412480383740360841227031216450924605004174021936599656966987868943676795737136458380272358671902847498392378343362161120478371501962347097320340094490729073461615753272809882411951586638327077925299398873178680532995232242286137013377257174369357860206277982203630278111720921463867410585982678999241203772630146315430090686920852968650182042224503928001442880288142278731696142307026381490357680093973448670364372863096143371713750424315079163764513706878885185738328041302084369033394002142118529328305599187290145761250700714149604460103607683049752308613958004887800524607392159337826796466609750122472484053077697539735685595776388785964649620019113521129023641630406366202150034693749810598165500218730629900923417847595721071054876714581215107804958474468394019698840293055590965627316376413932554767592241358490062352298785119313521113769928090209862864156045123572902861013603030260332080945501501276517282904148083104061760448648329275970466833956762814815014257453810940641490613989407855460322861578361273294648005133862753240070209025260369452381042247709212404126553932929256591799023647575765023816376941624034896742451583466710751642476552373991954810938974550555847202750841619434607627387343094203711611440785569548371945529287049842907628546659537710262523406045318511508945865686085053733880006726862043671696499279523157132802183455030169155729781230644848707748507963685379445031511087325650290219182525015611593563106205500406576688548040816388189256589533551548339298011026045870887591415250324744141733540267568417383494952529461703872711655696942396138832818859400626472055139296460542998078352118052214144629157097521828787090138269407238094040295364740069928545774871851385602051934650219777637594021625932397375486535913405894564661571247482209650941629242825915688495081877694274442946720569223455187113284374977037222268430987556646893186588544300231725738744499048668949992689863175447109139991561076564193896760873467272110953668978871067425178678438153861077493939053635281484730204482791601595194904875576320983909257615710271610477527573283011091281302681558068195273805452298854191382961204162409428421085215972700620810372035645174841442210968995361666477416691512592537140811617381207213824991824451870189443560494535505544179032310416546999328377716925142332940688651687114657199749596551913965793229303902453281712128640208200813356976549568081144719847000852398418737507293221125317188199788537097151495395896655571321624281015162574512823902033738692823456635692646475939752473102913031758033085181358652573234554525453898738295775794607401986919218096842802579781079636343374351345115500453152577265395840948600409144499144320355614055214705932215479249488955551045684238034439528324885107176803524048630109243830016029870037296750038804778297415043750817602526337654788417197391312765280812652645560515808737445536706779453815812160437703740024630860425066358498680112166327574647615906804189823941462096911857391577813902832005687357692289548799467422039711905128775695982224394401821934942803859412962824291750321481196519263884261133556267675087956229064705868041287116286349545034592159661060509205844720363709931054826003758943422182986331684261822471689483232872809034196041006603094611454379581359687651851190466374957382752254279956176822471506601320857548096935062837046618485997539233751536397240679993314849158870124826811285989346215365324440107498240018919091201504143084343790102692213199630320619742855994359734655455963345271799349112282842957485409744718305358154671143456458911429895046158556869200574858163645273236060328924449781895814236412727812625024185609990618819091046643389738467880566672709977254297572241077600867254173126795360473562163204219088904252166375205307223315270435378825935090064848985783079878072196271857306138367184712218170417266535089698486723881958806186410646745921891816011431711336724785975155129090987967215524972573347163200844094324598406206628022148498545959319740439364653901034004076283581779973545184934572799686006640300913091276683630446112462184428313067803096361540746044134814109924466739018487517346671123888678743577372997704281400632136945792657052722996195060652347774087231101751042576037354716499678544692328728683281070482395793923813194436666387972846334534978467389961317756681058025725797902507589533717560513610838290732170918878765863821725849516431265953820803402641032327326556062798459772451205506945071604121172156924086901493989272597022302907935528069208661457145929176975715484780067753938888869384803892043277308905834184807805022034399164740904176557951594265568580960757289672472889538328836983370980610596524369484032284905820110535134511562173074733490894227114021100958846452606376574182833466543866999282582764082520148489238654820743208942414726517497038810091918535539376297612514472881935141053868455317973411880238130957010198516001488391704638752855866037736635773444637645155407605222748666805852637163512926882712584095769070495084039351664524904767945067373751463203280623747318152098041681487799666209220302665641784958054860021225008948688065370500908547204585879154666020434604370264023412073420968503395096873798706392230192162089823289219193657554729802986648711195735896539983341816895085509390486504508340529827281737723402265685999479983744247874219698604268852585200110935890800435405800521406984056837042895908546838085559850872693765859616924011307177321101219947971514180663511026012858508932140441046493916142864322759217358662662025350610574180765455804572867429153247458620665626415094273237069881985281822389957954539510332664295098187063596314397796074073159768411686233581252053341985186116068083076526184760160680016216329995149760582136032912694924183187417959851073547686801999925983702178889929204048445021242267336887887767925776902246376447794473922825589607463210362586440288227153457122121388395441544769518864538722408331189062190088040885376697309239648291380151214780456895953802134928881124728767325172315866254369770217273893406466263190770117948272857805239622818865100725307637951759152558878249498551750171300659194388757202686700148148164114408561562896257553044887211718631146445213899285672208160473869285994460367678652720971849567038495292443167113973189915862501938177486574954461962833841098400851746456282962707185381707441521584386520325191370338222928083345878140280441417514823628659767656940006251820579962835477804831830406420592747537954927527672067809159866645709127944769899258936393938385381870513323416171320059775915291430666735337814321669777931929504829826861911150070546373016910594528330500979695258682030192882359363140553732109158520955307677665448791942231408459585591216601371310590681676269158432169461269408778765306975668474403074094928756713732690595736188598983115706640541178137668148786260002993575356759896311624850237459494472067145646877214867678182166423893764690042296370566311677021519470071879589938122014146166429886953650343983572544609671386560207029611511817976050398258147233011669958226570641134190133633341495904140871174891947374618943855953363855494503710052744907054431126638530635928879331781402241237170617521774811785512791015223773388713597700751981388573609305880643381187323526410710624748559230178217300607827926934289355419086034102418297283294905138504722852108453712988918129855891835538002520001890038090141526042196430040837126214253682751644861851972688279789152668929435592158518546052905889223513953869372310207917043974745432150901146180285551767701471295198642102761897655068182094849486672066047809108463108404616874320811937942896437037982116526577104980329361601553043112268269794270611413400133194795482212146907842718334323781590882648036890450178501187521071988213165076856752267421313500675994332072998860585148093423238196197768388549238276715279021874226547504681386259099146673748696303783503355040763550014923786450452027055264385593360706265448184566937298732658376983368394693341059172507123648894015510831848007646621436687914838786343886165024892340899990487332364507077917291911225616706664904244180597230264367216867801126825572439811312920183795410426550186924856418466718406516382943493267998595513232767466858713906658016044870230734912465156541455382824394891627580227147013867967343496578642966359744722147259088341920869524839967774061063912935993297855700444833922605300096622503824740346794184304719593106114722946254130879359794176177566496160658594436925346241087899409171043738747370946092938814094691918267491331781989154472264864444746167361587203867443926311130330094469229822890244153634774386434340642243478629981462634681909861557410168702981158355937689043816035176241795580268968186622988896718403139193888601669041648022123037369822544419338924720717755104984525789620928453773615163453914408248139956149244148207976790240172768066192861746340937018404837161694863961400697258779734418985710452095054178103051398780346519722462767385309024377461464036243798789935191725699645132848926801621399688831507410604367897688804450428584856612889015185488918757589653143989654792055252160596040152701849677734783950357900829274389967504606907273064557651446419099322309647791412843657205246980206163295294029865783051804086115899297662998434147967091203303834886338215677366728301453588417218945094418710456329505359931072913522697715304331202633035267299403758128982737524792680067124406966262748591805539280193461427306845912975403278029688569996368740030365144042087577330380150080720129389174325697563244644645999452406794405510116178071020051619831912442366409935248202958831432696934901712527625170147174034460829817663373991979837481872247881131023069874324378076446311220609277400270931026186728853088126703336025579054341613950829202542484768512945163068473840047617217406931544752585918862351733812362557087123060412987555505501033781565406082073198961051006490232752852931298642890097985930371315495516076786731593214996750524641750833978250704469945577402534931681380531465871706111016881916640364638370617970499375798539339223556826702251577491996733091765605556191940838401334173508796543890250246424536839119333659625044246792473034840431222779679478958525299377704095907307892524495791676530284676609298399797527345927373588021397430419461492193141501057320186525324906006388846849828241122653512539085823954647796288026744008848962227172628123078917902667386811187689980346557425902164621497089470179676932906946665900958414922846024275909192620101701392529921891469495689494530964688944658444925991500075684028702985941707888532538088405163553576469738615552996273766279578964781387107917889751398739142192706681269399606718668484306857631844771712067285882888956734430935435235968862652957186848474128865046996608833767968003554020443806017270212884876736106614988841081411303107295613572408958076638780177774400984508343138901875737855637835419098120857519153436703471726706927280063713756036363933554748608779714785787781222092667716732744023866227212613885696011071268805616673357239831437988270216529477950010316462462669105026049909507936111534071538090719569935365841166258696183074793015531858521129786833490205327591165774021557304864975096973912189616650991775192477247230209837482612520608411841702965739927666018286874179135504917759932739137929930325764396379069944455920860715216245270728313794751205329999657080729184343241191495911683544393430990518907654582344068488018443645595369178646284591330363099503591899608094428158596812820373655228597097528337196169171830752309195761978313121047969604552854931272630749244771243649358094285708075246714136018528520900227369729863026210408718156707492236980922998924058734532753778459117363112211988974510536657498232744229397799845929002560883323885545147725693143455555274237478792504103279661900147545129483135536484581076952408636633740658818486312843301502432070435659806421906301326765358075686468376928232806198695689676388087127015213427861118611250062385082544327749388271327115861793417637560716116777015582572908259638415249326210571294889376741046891423189441516656540204551767859459448192159051540478419912147077227568351242200030438930370649383923335068571555817522818161343397265990685598116157771686326281449260440427919220394980171340417066968486393200733435391472137084352239606160101984739480098488399190009670176371438928952457382233219507468838204528616895133957258958948094671072113015352195345418619581360469404040657153944239306878881454950961703243183973743023582216074102228874757090639738357648318722949790703102378887420695058031633543132864348952353762709823338591420502597850803330586110418508960145713238589250183102871977053835851512778343244711986302598587408636115712784921693424824670120367796717707079274051408929206736833160865571161166752433281869073211841075118382749274848989078242858114954921832460139127132930645723009573733321939019142290110047640051629832289355713764019730493879884082867017913858010418766436120325229342946783745910838686050462527863738654598169680714428836598490612355591087833036532403899149318384639309142525110606074515466034633869579979935318476939941798716800049752764363266351347818970704268245194217277511511801843767165513858814094985335123853490768140512065889102892340862016442608570460341818779176099793376737444566063360039571225595773399500528289734947234833727451999703714942101227217022229865556373442932450919389231927827809568814934513634950318354557810638267133004282823005775260252317180798427878988250625748097186561069237414367526279719252986232076092004602599150572231060951108743276738658022753961904803751476135367170080326788091164814443948631377841010180744960795026012540699755633088817660181236433105640500739415539610001891405030422986696017175256286010751657296200412433108035183352759891404287026349667890663974005118344184540406770723527303687717022468439795521043394206775866007437598044815222198128191791050330255145898387495105805117715429623224247421286493428324753177214427243082909469985796195977577221409250802707351329771730498511971976293007526460733234470874014714208966306255252493506052511858372623743645673313491569903939914443712439580678556375727910172878893180613502113779051762690891125618836234270385357682593501968620298426684624395124730972306705888015101020662181152882475239760016957263028010279923008746158935087495479114947146729540723761081346623410158107869884305904017691964479901813587326486610986691664999925998374631682824835328827698822280727827722553612618296152954955246591782202520005189712437273692275532948125452093071104963938250066410536108570615645386141752154426586199132310796370440977081308170977988305784934756754955393446376470828496385527805551774300361660174344988526680426747150630847128113699086475400945107276910304420381974781746738428784589430234606511723141734231521894135254457815378515893724747259996833474607347636859148947047273718010331715355545007724191992134230722027317236956100830305856664600220292908446638702424492088401942760258107352329888806116400804238121743834103939100572261148075474631462171307378635274799632997064609417113176556147733833632160496707610037822272164471147262051651725010707041934052960168162713252023181142038679578617977853845468883049303104478601298778967702486714826822114592634687593382804598484031234864518087402301865565254064608006411036383053196118199223193749198352383966125549896532523346467911187338537411154987407528864259866388763250908322570919092893414785389642072437523223138844714617857552847215179281394167006561236058527977638817284768764864862284929701999948454684420663007100767002692390916944446962406762199995344959976456092070171368515309920794218457199417625377682038412735787825919466960528580899190220052451839533191290274421760825392264716874176100355499659519742148054781661720544252030819939123041401775630605498753794007476635585104721562455851441617552153707116739377335221887987354927812830310215429166945359153272929134359365273076006402991545107622509005050036187358940538869890220322747662642147801472775841827827401289418857107372266651514520333826902425431262299183547488989920715453266853755033446089471656921568416257769325130870268079236792640805473935692851901326080391451767504899174104884514890640595141997840890933815923109025186646969645822749311716987322698481349726243112633180300756766377419299368916827812592083286542979094954756347210347338223426914746051014292841312050999382859209204652788116268262127523244283564506176421745357560409119308399704503705323358884102551536601472797274970605935416881661770277316413219086895664059973670154806018428756851734486015112259552017271456177756292233647425706812954732912610831539370591086311652023684647541130400325282408657359811679816440740698689433172844830183442428437871114478186348017734839607883379919351120328158646451963925727401235900980067709983076362528843804063674332921887531859141630823207554044732140640794293101107146795125310843819058806550642778743346074300534453274656512679149413505419810627768992277374503940983532375882257579701744622891580107048155154654389860584662892543429556547940629499658515696997780398191765205560860364749826240524417824851308438440670315870802370293259570022413675421670541499133655376824173833352119369281485857211190053768418160903396965254599163194802058108504261070912274965697021168124026556840856877480436705639550774361665352042182354922553943569630662297115078275025913145914696340153530112660253929861967095983014937081236854009552897562943345706982619733977497203719009146274882892377473285358705693600307234006882307265240478986344175013662366508554259916481687096262581233420761034926814344578014458842820571949438306532569824547207463964794123671783066323650212715015843565685990929378915925729461352567969449981405532327026577068626451567092644628304220694870738565425562864793441109108804639456008866757940546401396686413646278729212339763118529478452912645481157720590181296120072829774189509007428070364408805661878734891831548503048207082891884576552694525330548468884065573788051708953578814584963051962485812337239638227956785398086045585146531730284935788260443360471376396807039701351557720235949399775520404445300687637249985746999815316144457085486960652195686398547459376065625307036555780698475655246281007613759471909814737422381634568757741965860177112467553774000317541229109119922586970936576026340120055764032489631421026162830926237563930834674743282505019882444042998523619401097469403589675611407228221293082951244689465024260155577727623136057064388548928875687989012684866368364051950908164184886358484609475856258833903633254475943972496627925343456317476724719121630756976018604427864688053966618107857900840778501488555869985931481636599542327785634490294224758265335418076373550439963351770784560540399202250358075297055317510546834762988869636571476264245195135232628737835003269175624202850335554678752914153945277700659032145419795243509465398610143901027770022823535611014913895340362319777735629986658983386712270497294700794368369431274608960509345870599532362405529982876354614706813534961550483961530407402747599561223591281828518537117640820949897879283525987178394641858111078946915859986181638299829277409820821887438726681257004677480272919708275238620019194786136672611854847735529091600963251741090040704380158331757359644337999137889336373845682400782916947267986465233526734314578664525165823223684204880122051194897670511862881939383261824240956760122061173407280767943983295030529209169668170062832276770384040384788931921286504809548368950608322342944575654733750431767956446927905864148761522370999889613933745056056775211601968668872034728110977182216544371690095564729041290411068296768068307613157359677538003088046451625230190823881790613049372747613897537684246926748843327697691506608258174723477793030307459498533252150551355508907099121044046517375233378999062959664473488182381664893853619381205327741086570973908231376260058194881276005576292269632789819570292557938129439655421050381572874728533605785762815305688133587992724341210574401706734192194167231855438637824811887988867148897334437086413800547978575344306466749241731618883481576231279680407138343051530672489282255068087691606443378449159210921696129972882767499884168724570889506248348135346818375045847324427378655922622001877467105441641115962438698989197035328976572673380112249889865123514114531618845460359503537570053046588823125360872225108515589338728001955595357616752609555956761106281780330995097158685167872882899607372953642326571672757391993437472658440906767428787498863323972787697585811620167629722746427424536856792261057225089841274471920474363587532357700918236454711472788981238604642266293473801814371357320686172980834732752761942057481531090372207802112578990142925139776055587276377139492784150303647758158164575574733867663295476691436378663112603345846312775880075105637240723561679879342317078980183757445596584276309768009896438943145260916857860847657813129003842166474875966647925781797221949641174199726729550220475113311247233396297942998566823042796999755749701044748025277572120939953839784023478555028987459844791408027739635434294995091981774174467315427363224731993764129075424464152062319857970449291805233691288306235396286804239700139974909562639862035568361165355665348124964169943401657497060120685402955783250049287818894021420642582711396984473534129920852560913796853797852871451240596692531881659141441687969888801204344624398425442246352642019405231067871502889646271303262954740671007311465330467446703720105958829070359208224337887031416407744486646796656414154620119165224475654566749227692984772076421627088313149498276675039187999360630824140886079223219554095381082622118924691914949421288275315544136420105385744400087710698076222056815652116182385354455113154178167326968800831629419523367983100637568051186966449460269374901515234241207231012386111656977034228042132337918382723868428999504611162561651015447156762205049561022539267617459502220396503962668477500940919176966173857791149616775874493432940596885703552718238525682472933905711238466932887308958338140975923512325927051468622105442482979161915090070326344626493412036400771697999064216139613973299772728666120877740770971308929272290023698141382629612910076950246017298691266416658938111264995848036987994389597626623289209001708800994035891450407038305204693735327580897324856070015533058651172153406339299535933409954646555143215322902727009328392196825144020742413046208745145248032436108071665389117919194470082959944522252630333110479778050128818232071127286442767948018691334860360105502615157871811979680068354098471022913151056973398056774355968589743089002051359265282688106049717343028957064384133794423551062147831524559857690138373980631090018087605037247868923746586031575704116999275084988016513154301045468015444292798251654250333938444286561022487115266855581976648751667199633355231892001677839793124604756994569060910919500970773309181582964570287770875022730403996529711804639786172932882535861038392463333059273296948396282400555720271834949353137280724021296242537143596412176319351532163674999431662646402619253319985906465709908299719296193432726333828109835918436632530699527462790047954639085458309220728725415852758857723060652409350713242598019211189445836537234525365056283273520787246234357978484969936787155824105277308407124130429232478814930986917436896488122327154717614511399443405462994679623280822522458238099055162133082032408947748452153781564587765749062236312122172320379227945225297342294327657442579049377153249594908963440250899130258129334107432000391559660012801258856885793186359884609593789583952582297917317328375718461040672085950524323463710069110615458361245194791291680719707269339659644790230821410701286528582260102912661683635631268709976881123776126109847263430158913855766795407286280965211846466568904880615746320624301051529055662424236685431514244454425738753201469959928967012015342951798870395214175754265156008454269480295190996915756794098697937124245660063981865676767185380249862957134381447150552691708648751182563337455066416146707908613773421370849262474234731344327902109159635346105226880869659962780245208739412165291524192057818909553529708023846536673476365013923497876109489609696833330892186803055919687085121555355253813340054813535920350867322893487777934747792257527969377436095401333102540512670349374114069107189057890087328919151959116026763380515423083352126769066806970423365282315375781618192730592128115804079958275048741593190168574284783484863272086663138640242685173632961644204958760879081473306533135090661676848622956198200092691363194278123155550990587433475444172715875200468493098241019274304036294622062374512717947146686968368508962132742282425905200410118188648978817900157981204299495112890878881366510050068612053015823601812676151337928294947996365161231327068702467595132525270309279963214837886137708724807652460610545417405733042845048979441238841038019459177772342383125517711975214669988187802383493773514925468360383636404536682908173439823796150338159893248253624631629186394750398264203586975630988954333526549920054034012180943215613788876539792859583401796060870136623860330687516098005051142461989182489764912198785947229785821806673296243362494999680306452366597408684263853328273475649813980299710857029110503757336560305407633035260011329356451997112689620203083722070135714916635704804108602443851744092244467631216376905453227377348102613448465190622440262056226735590300095032570190414694978295891704677991520864432834460353732913269382978555985098085954146649889528312402890930541765502306261633674905082881931344061451449334451792166288798797913336915487911407939883916743816254463199827363195826761233751570879678305643384890078016823798606550412745659869204391615162615044581147988020128628666542419251832982479729507604459087035165938333967434493833625614668351879283951870722644789614595731049035486412364751321799788517040582155270587704227170007816103818779791276564450391387547960390371309017344275635222229999396199318467944264745085217927149720094383107989591065425353158761788698991557786980521528436694220466352999540105139325227280688729387528416249749376627586098699046682828523727890476966381751470397021937498295371177007969160286434571029283512252986249586716145013616713164865113144457852975795173775411992110553716597071655023876306796791702506466039842575212599222992756560694713312796299922391594669743357162763806266623274312746777817933610505320104962725047304946032140716624748937159675388460972972309297120074251545292025190469517988137872121870791019171470128927336447067226237253257221379168253778746415388960956852308970982160774128212699395918627940656676831375811504550965637343532065496216984397377511212093057141723814936653582700829608273981039955627769017510183134981505435371046562190303839624832047063968703356433665585381858401201833131216249654399118297502081887547113515414954072602061334361454018619257823927105250481086007123778481400349510535443985672191988068135687717241874891541951689407762513280358003750765325654389557488060218786586231626643193102418169600645738379775748240503123120055357691892393727548436462208199687932225915573799239790469827145254223824817093144228257838771995556943932432690067934659321167609083202725874546689020615960557199351027187077454113499366573606992743344208559470795123444816028503146564377402833806341320886407465750475607337074963070823897767003829270833664404324895185892147165477037636397713012840234106386998374957931933332954350187611042005231611590548581534613597469335316120030118963827781315629631564867673656739899117532260344970366819780958730716373618996735943339744970653844150053372866522664987096108399925845643572728961315002296029788559763608034816519577802802640215665109229993066360796691825239628271685695405949339209546918864616648052566682923850122188515389384341132611224745191477781500308028632892590654834630412302335227151201884827095380041023389914620165183768118942463786862507632662567227755402102059071164735718905444440283810059602176178813107180972606693898490766994933383433583008126862617509631481096273389887139056374404965483501697708988557755978360943139475376212861235038094019419101060248370914136248007134833928629745434486267069135004210303709401438988666281595311513624361091779699309848647588870742491239716509977897382059403818765509361983568302117037781628636150625844785931044989238581883303128065070478718841945471611428500203744985813333179322178564967801982059168345067296849008461344041959106908575575822037397146802071455174703418435647324624335655711710427483481984228644098154760958253807856262392347291514013587748798546048505823545658580549311969362656154286136097797297583245975627527039494147825223436234402659291701411678569891165720075273530472441893688303823837458893881910452778693080311309091969481828597899112458828936365560117898481329571697946428527198008014823162571948350803606234050320224783558407082082665144029034410826354081815386130722199863223270602993364201856623172221978829592450893411816727764664660898564866884546853410025345104343971266776823584354052788595773988807995657547385150600756337334926590545452438313929699545361178143713796130184253447176285783064861602321839044486400237239710898804014947720721447457659490131212477825997412493898035683062863117715782184677885640692792108042870946646649565724954109333414135902744038004099547226933353186976154034333091446067870893520987816312693629856171922904288720029437731565099452139734828581921838063131988387282268765689931027761804639315364459078186313770522220195828065155685935874256915327138938356175871629187332121149645598820014663515787139538963167254352293961422222223295855376112308729937468831690465886423340341028795538080892537385180465238925435321144152319902997019143464447670942484332207237663499431490387717851481909234837234549896849807993100742406220495206493053998870556177456033590069411750404841984153584132847570240639218186282483915813820418413420078242880353050848846088287449400926187503383562781508996778674606262039897996055867943512860918709699029524488157896164502684110154225632162144927961818320375558216042749583156795899460950111361245564255254636981963817094919471125455619746898786259110764387415563933157728218015664061872920976121373724609940719540045544844017082064428535961554008408772937721352293319352469752206367772986288326646661630073215978471419005105850358766618462377942162772803576855626109838904402157956745129305797403584656541958189844666322344118762284133402076383453662360224596913173186147349369666070861552868414522489159916693002810349081751720310416036073356268279374761037638983943858921678700874784212524458396111864281916519568002148068401678747760153951492031672243159734653745828597196838425423491757332748530436697058091550074367702753739911726356174001136793296933141766596178215802266858234805209782082032186828982212019888174003762236072029047111905843265107881863843775759322141257503721912934997448562784278207354823961449305814128180715235352210690765298023983880301001448871509066317099149879562029316291220427492703740535449079262080571385348220069561650738043674626237873262454455745908471332564449143656328159131639383322742980925763940121383109853794552564717974317221935451467110216905729328317837848945435796189650157942928134583885331742030209168082641532626904180158617740649143950581549380224126920992171204893992964644869161374328551152419837342807058400419661699060465140934411087270010646307656105474541030479905347959446601974734744323454935551016331109540628737626869439154745532032147366530761155902642452019660006516225947104164979606915227935002975325223595384701674956459453030152431481235258191298434111058896641144582926519352545863291975284488927716055523894735080870370952109215705741477547204832851347105030162681528249538017052808046357494960868417098625005711952106671747207050993164816894344438165315067121292495595539822530328793950296112240042455697045725373675062424572732866790445045118673876626878488679792900340737719940725989088506084446819536402715703832183032770855662134869201414828281491292812252295099025504344508469941684790657753693824677770099539618209778696922515513561902428192302583887648955604133425663112459626795841808995555129305422735787202224667344263076460423496835903892126061594810586312767159203317353219283979701932003440603390649220212878862729370571755402668163607930838134469460236141107607052908345203533761491670513751421356016650699448487582436381940314231304795647324967141918016342707069979365131493931573638651553885244507729024635515754048011932515782492139706567483601649268468395107088946892965261647676884334813279811745351079851615348368376718930371405965005425800449732328638602007016534685277016785332857204937261252081662478162955131203206328739112764567929022753795120348282278053267909317212227637449270094983290099364739685281833749073192732273275623464008116438409975507611102211808085335341255906952448004172551235904316451684702569657712114020192401362241506147184787112339220527763242100111560769586362028060857619745267027919827525719552422174039055243794007918835497363124749123556879091400815033646515127593257905550885090419349340811000999815259656896828695251263062629145161518767760977736574270832448748450592269708708238978736216704840370101306709609501968899965600743157808432661341480528060269378630801549214784314751788194161601293279648778065853029201162370191199751023253804271692694716986173799830453790370326821774233437254756904084468471438772857740339953080796316672220498496736031493324727755147728451447896661340884766183209577456092580819718223938332881602690833469062602542703990689547659179461374262625967717085754137668569764442451418867117239452638449821941236959595264828672853675902718313523218100558723502556886447419763497640678683123571066126994211741258241088273027209715140457937085948427684721330076186214178401656345442795146420558089602920411945300014742338889864696500652202611219452867449827799685106854731653472835417425044096199415265026056993907750422401934318030521656962103009954999628454551887491438427801697982954081409536640897424905222757958903220655526795978619191070749733826666662764300861320097109870887742249832836847674230018618250346894031726923732762774084975148740279011923769676445791136516704614044342435457914796924035271567244768897783684513795573889618785982069072856867172008732598968145549627361698644042248201820085652633132408241924972154729171844301573129819922292423110501262492822558271033527686691907619816023177234690296882180643572568578181387228635749167572964407838590098528669358780010652981968608651062584209284384181530705885811973447814444262484561222637083107873269003426056277489152321490273863031475907532474301685157764515411573743250751194203995239344025118407517392164551250988088856048208258036731699554308830428580465686068471412321315663282687893117393652984977591147216451608671970388991841839997810683228518134959576073532668123752680166088449838097311278212564214840503727630919137724489451174184985358116623905672002181354445559263829341970426140244760966419965776048653332734397927062586282239796609229764935349160309021724777888840961068288973041354184908776057185971048465812823063545521009021865460251978145820464531876133863309720374389976796795306180811782207067735616379761036442116453757205168151040487664682092934925870650673312588892780983295139008878347247673586801512288791531223004581373255756478507258589428396787899363442153175063696925212554825660089339976892584099475571608006536791228298614803956235868673368549802982557138721044598949164561122453933437965895674887343426150152783058219094682285002454888960449706730892707494317119611732814896457597595979093580279025110320761553662945650983102729124657286687482049582713734322871291301269182378145944259619695415817096170495342532076533953637420519096363751153387651437519446963038915998290810193629588197333288647199418255405755289683044660893677898084768882679040599333752341519334166940737485153628077369281331503719151565646439463430667084899384575152021492551088853865897378710881501643833475792876419882084945843744463744340387058259853198298250015801682732175764939844017036526100045282018117264512704757846188529384604307262442464846647478022359014755585758117225624041745738768778378481542844697463245388089062464732812012165716363475086711537885401484000627724020382813951750846305327728335341750722829752356100656565373678144838983179884878605428117330023166571723355941487439992220632968472340159190279856793167830510727595299061062822154007095627433548194842272014236209047109576024017961574379348029789882073643994652778109661912516607848527267869171554243383225355151571957067277595684213800266370903742082773588761317362597652624674594472096581991094232721411360691214261770131848175629502439126923288023767008859734576476517548228027001873088772178772080544173175229181675624684924191336187500784620954759633210904881169618963702477253797993306741748002898492965194074269362750475393753345784316021479179526427619766094662666873264914040896918618365269534555244768185389777312753681817301974562426280639882044316519421245957615423391321836057827894970461862822839038539920654456367481472899125106188441178439631559161872324061437899814870659700355275333240834289890122400372011108507033546225884534994468206268931822997660895415955844956613901853210332304508683346503635249674834255980442829394100770310064521832497190978581132209852050086691503160003704804508212841701089209352115296540617214974491038517384427215647976663706309350178107689184890615554043117675332971267855423413932637984671132130964757206034554676627975631044489023727485363205483209209059077292549615455232580754321287332952749674509496066410450956117909182476877743456093848791660468416026136388658000740523031168919459051306649658782573836098203305095413419286688420504511336927068473644400706726487990695943066267196481177385620770263720665441785640217517747633191462161706720948881681052884334010153254508547316448750865799056138585187313861419511788995829469892557493422423637817056382632769039683510403812060388288040609662042582951986628587758365457196891710797724216046355722163750272764801633473181512108262608224281836657230659133489689353100371557648295528391810775590821510017260461171961272081248088982742094582697310489479604205524322579167571589458469359541563051332747209350814146049966113820154353217701296290565230248369305296221617694645232092624272357370452350860829485909436018228848572303986659709029194877268718143715399192122003666268320729468161229078102343554421395492941073891686311390302577361656695518758402215886418005580854289691618188722668398872253200287151095213006736135388020864168177761715793240298695586312101786088551087907172905079064561825237509282544616688373737241486521403044958870545538229557254282995986817698021708956533537289412726169922717794782247299379443261085624572141475132269104023003681333891509737732254628508301334889884167894506364660619988943342547745222274614596829403889089412592167045956145298727611326679729538204283626575257516443655181718630791772632403800397111620748652119074346381479210962432556083799785383126904469477975567369808628128894946752980890267761769418783988169600514723367669725191762422443942287330285553178997588488240719999096044046361077106008887111118966159545514079385116338909410390476958989286588669551075106151590935020815502288260988875166745931224897318244945604953876656369051807830677368132834406752973808237168519674936165002232826600332991645416781443167753040186102088017270078524293014274440496520178029119010751487731431210177201862492665002178335281669349160017397295894265560118793469319588934550174282574761786700371531447877819949400969893013890196692695042536027568701938030320332051751914866643558199223214985335625152064192129445221644115907943888156059062812727894715552620347641002144212651836873830693756828194817641721856626147439810956772156154072862716157792906177038236799539572582210710692878233013430490788049238005639823350312800822744823340319931501590758084324418481847948523268543906839302695619579249624749869475126739153386714858646736789938736675315092786352837998949058137003774521279333491075263494034924302228876146601505676352755733569438258422886373317155508816192647656479546075579452240057687873824741377796262003498369742950780328814140493822691569621202401708084353809192981265416415777717495227906539490252763135739149465127148507144843014962514991514389923143674987074444810824181506991843009976922601433506546357409866799622364275245373028694085966307431113004578862676196793434140755331386140777458580450794574167850834756771124097135104583742995941132124931923667477219274304086928593229118213141969849832462921424495524873522897761497722898643702190321073370721862626079712480724061265981050916828121892214773501346733547509196475797296758438047703753535980345370083626376088743135227727361194216451101078361692861397289723218054239677029355015610754511906969256233353813907390878198572798560023544826076902764363482911855979610645197666659153447627055240372183573771937086905848622914652500823324176485225378087268990318854651493868657191409425757728684246197742433774984050751635594788000373510825930953865122320229901541153298110038298846878084045825155671169911337192843604845970805703636377220814831884401512132037502291857886075402394859663460028327037097017272702331141844788090935504366821925483825246545723386276525509541182340936417694308894626012688400958945485362947618986498382228743152197507737994587534305511466471385387110246712837155188006044616599441151895878840125025660942053896810222386222594631187502400541534202864606958932759067607698359570932805707955688175062354359203901958474543619237258630948946332676508457145250389433515712462605896690046535898163894515093584060164403028843944287043494229734232282907819715167363481294620962304995349164218534661667693263425523538809575533650507474539151337874011073580044692232180674199113675987548411751607850304813613727178327719453193820087753998774256079807074340877928371779780667449519538122876932603550509103892797863309554255353791306487247147082024298302738270609436009219516434794759482563757537926008392481436033576755373818457280072196030257350190112229626251194165674744422259405004625603089751174125665297656895308774985849866665632342935287097670210865749404404731098242921732970133608784193985472148329913822778079104685676269004282001680005401567658124293663557792168745203333734904290019630682734047478745007512426837296261553373980044325675216826593122068807973019175592468772872523214921846334782695105258134976696797750342276041624743939372533761781915743552079240053253185062563967685030705871619837617150085697232984452022656313170522807346114155981114996336092469479336011593894631544221624486339207159946501759648395024245519678058481142108893703365903351540297792339152539662672749108095352777507515520951588108489903071039502935611476941891296908787959214824668399397612480744167828384921843206728807196502859034741667524364068258765143817876709555516808342192359931982130462604370356548551047723951878224016269747399357354812409154022638247943016498272882686326531639459280605681212278631021965328499664993384344061592935389760858563928619383885810469053002828561228091267600897730114377668186860421535294917740163059480426575083852908273874995013435242015202140317866467483446580431943882459354773641830214216366114573330889817602492916458932587905133197905228977237138667023930757713157806593467649241660786585221048221228671704387394067486730438101792256509410079256199619569080288719746504183718653779200291012484078290583386585859833117746940587022102644045456331733804928925527624184820807092965755216712728812013225505550704472222115251814365637021976872768724423087075663837066324946288975574273285059606025559982211946072056752254607767322065245020620671301619515783593743517797484181029886759850893059287839096143341972652966563498541550793175221020741516273752900722590155433599883106740932757777288880251963444847671154676695482809031886041364265638002222982237994783941522513145157781297728893332548006387771476319778246785924650635574546330366542912589332390870422733863356026738034229690135884501723626938667156078728644599957718523044432810244071965855051510542666038119871865136689273236939112574580312553664455181227909596225705525291436920543017499178065009900632622131923497116818437318678669816011440050614834878806528648472891730182878201795660180140462061182184587541667070192387551337968061105447596748383038675792145639911113046258770643523611899293724854859420653384554561957266822504375819992980339009286867532955148083534911841360484221306340577783906437943606800660355824616669111931183907685557722736215471042451040105202635322309404452214600199580329810934841300673591320972894557163650172836021455202501794113430287924291493040664717021780529694785245739536405759395903753427128179599950833378274175229666049975127737764952224887767078698497501917159739971952197799075117298986755135630729577919256237385550671661872023448282667517945889675438349170419517492922086307722920053641232453856899416798651691501967528228471726945520593248399715561549830207829389703994459594477647061094591205105572524988058188462195106185743062986226595419474242737708311711675639233046026539032492978370358466608029400674518435863337411811175275947271991484131750719428480980568444209962135692183312614948330907155816880860273284643508809927779757209531645683658230308571401181342190459911692144501148649459882812782362083789686607723236309529911292004839426789062783651200521682713663587840470923759381639484980331866554910439650817881426575967760519527927615589226114884072236110604483774324433458523441565131656754701714467211788809277758166129062614625806324075901587807408036274610869494939476574144475151213524391039032144552405577954408574773043461471363482922850296351970993186957932093241354592772361899897269388050051220323369766349577264832007118457672533696148667703476673130569649937769789110224082483473338237248646271371372544419962489311778711653152770670682583423075692443964925718862739601023793334541411916351744396538649359273121821483727132864079514429021939053989835513957496818054521600021764001485890961614593917867937631310221922415758826327559201210354307299691569520490573100830985491547951645941850254323480489138945786193646982145419627754321417593839973106519126886152527160075205643969890451744577189074503076379405560342827095707224001408823732025155583810035087021947305633860913135114492576386380865652982646372835333891440344605905764988220169827579407837105642184675787475040420911967384058996725222701995357296103616695642760190549993056952205595092005343405049161133660563273374387407005516715870358917366793557322617545255678906602582369039911491292152258717522394457014481000264242510696687614641403695038868628359730878767788769874943259902192643829437769047500143529119958282100712160634103429669835591449129047625878316958053444115698158440045511870343974991928019149142545817756023683404446719615292010803295805086301106404334485951899898160737458460883602547009532948313708896179730996568372516550140337728015215287048470544961304372127704782875522260117493079652684741208492963329622946380824315608141302033341184897279429182578554602935308282296965690687854852626661132024550490330434764458738261763613309314989659167981156777131413434385635273037988066437325498121068466110466004047462081450635406119575856893351573571460435186338036989950274474583137613178796843031652448187391047877034487088739203492447519881168083224718785590048727753872578202228399163649922295878530238475823314876485604530928411270819828388128998339101198478078242499619969911349132911774294825745199817060801700660846758274063392274383205831822610995258471322747144346481397969759206796523110160982190619896998784822948192563809975511473841532300385678793467846573419501223741956415710841449525816845968336099765390587785070721027261171517485204799120193665058594305277050485657756657773123080112270703368449516201227513894661383833726832182965110600605481441108670327590337544405203316473164123750702859679739293380385513083456050838126068659106456948930843470743761332943439098807990114237281275810532142942370900330039675423086615454522594289832688469535481429595708213372005111379137833443967708707353792519956670463626383227225594115340475914592879494469521607184721581081052265804785368466328734757857236989379524764716869246731196013070401532420116088741840094612084819124299003596378208491557094548764504835728265094047327096106615724948760824907672327800277868063140894091887130850509845811979927747494063341173274207988804269103749161626670004950287966686731848723710201280833374548998179485848359221889408375228018843171770922390520857012769768764142988710745039082228514433967256923561923466131784679089196593605916000233277654389729891300341274950936026575122614699270464594755894796069655138961331103266351804815941395974317045050675478074438433722557175667689782322981309200869237037508809089741434983406684676479666879789088102303597773188852367890351905814265157662528844743833495628924450548325720167710899582028206345189270993898013918216990664001610021501045434388328607417915834750602253247318544199629452240105437491591042594444431267367624744361103828564814577131524640671305054621445349254259832913353851966238333522576067423757472401432554210687428834868993928294733631596879882609745374166285469818389037395216916775191070938057189919573219982653701328625378354604580684695505276453769862333142518934721527000580389041651178310160597646353912499052071256580614161671428113070377006893230769164692286730673942399606272212343599477087670250129729403070308477641462010584073086457531597203748271877556128483198860233098251713930970057654848123735027593124789290482074700515751746321768416942716619436528358136901290863572878563232038246841982089373685143277562550411149368820351896532291215419053254285695423864900561263698413427200034594828794294400994928958550849128052232235768144206526838713186778340026260489210466851518470635481916249945215218457388218296982092079146548468654455383402681723773097293142614029814071370853831805889078547365686564848924785271399210282045178174557747173460454665349023960047718886344417723069231079853932752158679031270878407537640645911989288887556690516061389767881997879937390111060731725236907378471807485490042889398283337162298054260008901946460917837756000183131578085307721246688670988015160876779040003305687663416845739223965540762610356578169834549226188472514051979273586465747203600770644959445103019560351170300703630897764862569567325780548055072896049730496032797198338219944679792579793119961811111367817658676209657537943918019856828675185333823599177928524545418085040927153932160864759792194232459523311036032348002897473805047855603315732852218769769640107502557718021907876497094143913245277783158970929694456719722277106606954527999584626050033805292027617028699955346360080286770692980663381951457060865759567464950301982297637543762793866337810890322521727720965688566111552390691269571855865510945968353012243256331308429530038162913463616179022866276101458099965991699849824803925631067145526370106989425450949814210199725242119133309415032099565783771586190664901816520153441067568011246474896196552799963627235385287181477716087307608015208471342388253714014124110357738554038920357499127227386004796303034189547188977336452708998536253510455107449968438926532515039242333822181723282999142944607275599672972500954615623138433844725185300646679163442334486560198405389216990052368466872937068531653184431225698828842332499749210590101586523947912231227735978558780131558159928146416207666070501198022352261676550282235054727154492266969978561085710178503243143140552047712599885737897522484894415024476052289311804041968142601213530709602901217521910954477528874858821816690826814928310800761410471743389710553742511551788405724796251308639645503795466342305279988688556332816709386748251452263056489696146797137477580991943307628992338354468896848612004923691898132633864494322516222512255402984500735299930412930700149538797283082145526061747717584096533083450735258608412012520169971365752764936495868859621402804907114798288870663127835476668421441186885305573750392235866580634564942237253330222315866073482253573769837869165747328464347513056337918276952996652502547494104624194874620115261749267720970405682204892604757473632733427383744599185792993696044416818930269222269703479318013870079716490847290270071733595002428954807773325965695972128077757092198666017260318904305109421205202482401019163763291480436121271340562670858139032524128099287034169320001956034903051640323901420929100640457458259881138249378754890269342577520846286418709417363621786956987182290739523005604611804072346863012769537754807704040113846472901783183594191875777225975481473213150601276351078805552271392721597999119006105236192310531416423760621082998118602740925490274722208791284101526082407798917418309057209671567220784217141868587243227324346642375575722886400861038177866060044996462779817485745021023991099665452847403127573331254025737005564768552058408885316028289120028537698607707950935057706451711243236885458424068995692253668307337239804656694676020507011318712864998539955573369899878073828425579888809213604300424321201441232752538106367211663954172758719343963477008908084418375077714365219993645953909993408982313307033416230271056157041602134325658300741616260910417303931574400767860979700635622778195534149734121235967391882870461335820678495574979942809950703186467335739606103841681800870775251378480928093786492661145748096693081648258842759503287600202807955049903203414680744170066328832128024997428984996362395986584370924976726793315185954427875556804339923962559782358507219417229257270278342161296115148733469441767646372359613236300515681463690211118743645421448424112052624342592048709446109879303619529231152104869655212266910202231800726417429551773899460102232424963876237630357926579837562490929526520675666732797832797009541264064244506134462062012337209603161049042397867379598910790280756892281145547263392103930042820397573721456623710933667799695465719540190575346879079211401094326389939861419006303084090219113836084380345440975095527719482402151584389638243596029136456668093861512282742457614920184860666662184391741514377730876458074174256489889547775722112266418861966584445462405611483885836915126351981747169559007942845261132051127712942774619653486014624206305963547067437249379293883446261006977832549415489765891821965403824257029767448822963948100324025406516630651078958198645228091414549421841460898465163970131346745411284782451573194971744989687028771787855959230535599145674633538068440532260664497765491639415989564813879643781345588197555776925258248742486636971377351327641747639103167461497860878292445366578535506270598685909757624718006277313025476004393987576764900036344211010996432602880345264810492654874456350708380683141704184786694811465776430176174658972105579163867138915902943086444545178517970663364193318889164085256221690884297334793880440312736727846005657714994148588082398040403704493723421223720892409610054937894113772234770666427512078086114849639591310684100701203594344768961161476106509041315752514544838421519333532513785975733710493170727121586983821919032375123454788535053795994351156940397378566729676788140957909003866648889069178324280753090101335220215026700908296910135420022167527128591436233720756102098165347835459398106429749393898760656976078184820540064389161788000974603463194363470488592891728344992166106907703652955064685605413185213406539189725065892753459763200259241053260657311750705920254008617584593323511206263967549146211854043843011894566324632070235257863922780378818486461424792648827327922482019920304089196310477688899416883758178042504003116728887809943614971082208335191516338837608102797279197235528042716753545600434404513688272371884349098648209467874138797499505163429398683984416293998017255067201151367908136201851156274776417492021082818477665206815513143622772372250014566040236776740229305170428535963522450576939551557719014128512374510908899890922813343100220471751912155833237780704092151485576019657504706810234199199519372264686657403412731081419804069068125990883361585272457711757474059166306953656291428724059913142996681352910488435905523173641843504200191798564397314113411633582594233198476057916757628376852947535087895560308478070006693145797225856473136399721913852429919945433602040635236673511236593609463670912446067436503674550007879956702603976174467979436190927777526943026671195624058106226060967184072209636752369045526038292533041022155108336498835616161243341755284556226699005979438635863051078964819100870503875776641381898126255008557331085210351961470406828738660164234976812211138053795787034164750690552654231178133241377281661661892557402347934336757411841819591799863891967261526381170215058801862264432762028432386613117009503630225518408067271053052537764896720633272498304549007969436594435565707225736438049118693871489212026434252125160481633417352911093000975079023877561342881053057554879522566343387641642197942144069052519321512277762825539706069471890412951320172756261095628777749211543299793749893643405003570765413913210259471986110611024276958186179790922468019883450181770576603800078497114396249989020757088766516948936476735449724330355100327402762188415221089849248676519944571575908095230271826687368747567022185831798138715150438995762573873334882897515088335506643465455865498324781035710417904342243037996491025021062093732679333865932181631094646596899681055279100707904944683420805001804972426811991779913802695985764453558743781999319391265209758637114299275610388955369380628198169962473979069027534754754125041669538185001658375193995877218211454671642583999775232375480011181922562898090487745195998015838874887479505684699269822529739703453867575278623825489725651812597774422878290053421308490472716796908001294281399105888552285023348066652354165717615249028876251407681822278508961282464576991701657822479744343587228983439951348847151702746097719511479065453390868794615611719063817519377016384222324903287804491216781237821830643951265655734701958585766965757606561171669109202271105924030021408288351207326166147918142803786613125663875863682333248238831961908783022894572180868242155437885832802803341306676532188243273533779696905494045119078890697501139689051944957043641060602303518699330146872158119115953824928916013770454006778292701840460048610472664555876054525410687497844857617233568261016367359144319370641346329107316427652173068093818180064322680886694703110532017198515600169145331805170210598755434679182834228240461139848155384470365457340487675166029170014660554566186141282162289752175977994106318154904418814431373785354555981024854046861459560315858126901461100454378169655877406562393633269937106317236848453137674164921449026928529488327072857882321414536735865323501955308470234967652185821283513184559206104026404901373145975205279199165649940150979958799359481813331870887130466325310230830453802008804318774057330073216993099520675889394152103180964213479495226246516513368539965235804094665848470236657803194257926336408724443130715323534771112366377168321442372714649214161283549539414117410793826337446787687134355991247553941249950316610103931668849364886798489845467501278399890133189624869721034596241653780654104960437257139669326270049382176971168942415673843176049449425471593058003537786556279163486531143869997885144392023469592598240151102015133414218064248922964289645520607827053022459363283531387767449839459204196682718589411873763859587266459003469060596842485873980284909160226259419782653949814584753695071000141925459004452975197919581703513506895321686913815220390615912987915973916064656141412047050761004360960785528823640192616161173602235037121338105728083402310411706781091060983482788533497280259340923868893895762365657887103896777172268250020430699246515354569839529957404787767235280019188648861982000162409728130131206626126378574688875385340287072483520928686099892078775311939933067516687583757155309930957025044619378202029056958936773029983272499630336277502629651603053085129981123622920464955386989303780296187781856428392965355886797237950626642155965845252515678569145744701269311556020784669842530022619315760546873150647973955838947131201506573970138274705582269490366824912178340650451026344210592459271719476747746013059756257444263163969632506183108283490555221507714524614279098488854480905784990124321231917479843411639593213243583461020556277544562249772495802757679221488262448253223603976921338280570747393975277397845680227079861790221495405989187718422437377591711239201385190510454068717144515530060495608952093029030574521617160527657478746984265550578886925846207112683963891555008263046968231352691840395335027826916249695324571321810331627867134543986075157029627772371125376594188541047662595514558093718870847518607883871866136526540432935933378514186740517994401012555888788035317406985735313822750783748896470547785487909055707008671990915716395339416327696692236342476627081155615818581072088800951517693077628858669675355574837438239202036571947655978073415345564813044347622451238407765187754549937702011384443412246722666555965027944584309499724369269092122367341621954267035014139098685543665359780759839214665749221708725360365825985483144969659559565783745364721197749172212142703313176760210526737416678519577560681440085760377679758886709360515135529666302307854710479686103493776095701995868048820864073986944765787446525109359142907938432647715029907403753561801427220348392934284005066119560980466995146391557998977649556532359729197286940671340627659230796759286621537940895403926207013169447778772402377881769527869874030173846041694875718870769786447506121830431349703094075397557364310161526114451091281640651760393292830361969237170645167401605205478710457693123043433253566958140791914545658764177684399503479712695395458777590943556377198524823206541153613477163879157816964543245140304076191570405807642518442141634772799357730238437087566680547027627228488031761665588165547503516880792148340156633227393736562951955544905436256622823126341920361284339727393244850758793671246016342394739875447647661106717847783375287340429945478659700618896228625074659988088483057688240412163047922155136516422432806317310258490692226032350180567330068751542391814463147912820709206462698045357048567109582552092614232264769992181572122478697419995109519920064869939361927932896921521886977565598000101065124325899603592923451524295490108635847396838770801038622836293531270896122972064873957146606519907826288024830350058840757072368763516589925009814830791954471934522204594803974014102168535321125037125891877809013002963977511997734915398852571227637431801461030429362400953562549147678442386220021706311872798751723957108700073422963117155284961502392983905834859887061285120392555231764082923339403729253536846328176854217400001506456439297155515795925440709001454827911392105247621131228922302787541979879269544629812643725749242699205859360180224673088833924666601988609784544483201224739685668540105365272248890933909494326265327075966033702417689462284895751736771888513421925424572358151725328320359320045761616592010644747581994792082249974594691723794999242363985712862469456222286081791825506550874622346651586945669560252197284101863682465161597950349699299662676469145891366825163372490515742857486155585028418933455062010788264455274001578700768953258612059009862134494049120238747483555112747579678873463555631314351725686879752930180089933020927179818626459653630175847047849446649327719743425154026525174968379097851832659330789217038832164170407233497180065191818848763838618825939565092997444318328688901708955237501398159970705602646112883240221111981261746093892773557020610339790193113416240094771712806424363426635113443346212730292857920776272304024023536046780588675671390069018166594988756333489451182398486984749228142204602764104863175360568220119776609845138642177098499712549274169102104656719201934043433435681036968194316299595632188354519061482278500361430239230954719513454406283709456508027909500377466704427620835809389750752840432962267484138527464409988967868265759284593519698464356905438323079133569342027739140662125955572949245771985831325936651720175253008479857500385320592348620729042970193707909515206290674942064292558257209637670922444698292660860030481903801481760805718358591716533371057243203548445331987330397819012876470242885359176659974818634975880369872882078413459606239863829126842954062111733974602704068328735992100101899835217060524295370637820885425262055160199765001869009651982617245749902636961222329202367653547530069524309277766794414144731213339665828455127656646031970538203664997698891231904882694442781382995256228344849748285816121317827473154565549173377334069024387231379186048284751006156260660201223636815156543643049018548068915336202218256874839914396836802559650660207220036819068801906667945346379761337890000017648912539138881019069822908813972534268546131067097516300571154775193268515635314514198243357164794229547077260295109224088807168373741664117567639708533674672885222390542000355447802334216944875868500732672290391513042597028834524972410975702804834989768867058478536633596192621932472328329996913221287895215729594886182412791042725840152220125465401983294732911977332436187747038838483906043295998142822362861913804865084345690977348033557090901035643376547388230934022118319141460116115554363433729931450263387441481958938947954697558254294386834494500604641053727523545363223069809788464351551419154008399546828086975956488167899381627363635047069973330952424892560513869034545642747493515393891789659111418877708268298567727396362956140333186044238359620126639798028363635756390041822951625257075374176102720546097213624896083494421810475904246420866562960122465767273468861910178736740686384652662726005126745612325268796045342044391643011358380249776960237770475796361168434246944303567288348616593927582404850145748405097743027757295889214541475434362162088269009722878561956881921254674273114110286404975525585383349803676278797994319458549274747169752267875825084399827794032172170657443845971528977990397401787638239581041690429662048592377221415417218807466303616594501083226644256146344929319916633430257826357047824250806612188503835557890675592086379247247008225592383703043036033430405755671062591410171705316377706997259964485607693876358398410651250427736543051844112364245448816429185849508986051846631639965742292791968578134201309322253644532656110555597455781980839586721434303276187860643909553431179553925737173486703518343118765742230568349072558709116292926711760922798092201428942489368292703017477642988675408239879932266873213913410454204357458281359687413153534126544055713917764325226054855866994420362228393213860983564414470221919083637357383965668384155851644067597818441320952008362770480839079696565781944828774584775140496085734260309346931281871211542982383478539863375146652465320836604728213937078890601338623078191928406244070052486692053732015798533871370400679560936967935394025826643110173241498238426626327234055303909492275377575756824086861041019219249467700705628151565495907759043129720915912086956427049379332393788505252899842846496722552439299089800086877283930077518825287680513040262349392745326536530606485713705061744566679111611880839442045073617260196056575199002499458965473931944402726047473939988567413480872043418218274388803379328445046189870731878048614747064673215153602522363520292789705637292353226045294538865041198319052672023002665801110712352493353262243047558609117611105990521566276871059646389596636299026377828254477188720913436336350572916435648540734955293422003719732638590988036699484503657152308489488121167394854785597216098220175542831223666853723046444424339055678487718659558579414867788071959030812754545211055781855371088660362259464143170148833140611748521648067551450102022730634236607658939671295098857118559585078899627374689390967204639309893603965764175698325684021820312960288232675642604012065464807381370065376427118294811780515058767672313685461649982136309398227624855761934917079002701499955116582932879693996279375728032769371962419044328867209593368986691705918894267434907595911454361373001394834851849385372289027629921835214544607541524602477690099511264364428413606813361540474616279283979614313706954940453269174753974915774646815038883474365855554687370004503039443316188107922604558392295304995264964658478797246164884751911190688657415970362715701375826782493383528311911624318532810699567138568892854798564342005319212524684691661750960374117219132828066200531971020243266922466976198049007749030979360464254178754420958788974305134682630990364200190259725016934369311626743085165649398107453741468348296442148295427766920837377490168367644893724219411083743515102781881761094592310457274002283408218842900818648712284336835967672580983174215912854371653314227181231666753344263090627570795157696835894067723515384770949129368493062343495607664396023341701067429326313444804001560618261362563022514511999074847122355444445689756848674988357294568925214666621026497389549738464050834023461446989239761440485805084706532867354651823317018328408024331324589909030173833175521591636652166242613163830583893175106141944415715252878570399088420358611072957403765121455047284674277404039838974816222561827082147707914508358877344534272277338442246326855402779822254397010059477890890723549907205636466242900736079329122565509500874048344872602745941331582902801003307477859469198826422820946358459219939649266535844399595174028087598815787588368322425211713335424018732714433590033649380643650974595587754748022782824784547659222867786169255779932298929833782859072210620282435644614438577514460571006983646237133363026359228132561954921063942576702049714235626889782877975799970309403185684621380703288048361561499443920136152175574003710549844072994758107945953256412530511141938949765298909674332781269593015740370143902126534477815149091404204699793870942685532338253457642050519201432206084598940062092069695510990686494059825069530088906191498964704553490979377789090154581819769328561880169960732917177270740790779700351811383136245218788430493450533265462896733679457748072412439455729430256411857592919418906463244978697324966766862761036521563658239477580796975635980772618721014090592269038658337053887198246840675388472843669355142060573501867345872349521026906145326368165626819007627458133721756611031491314490128791078793620194667904794251510919144481723485006737771271493337205819039112352418037695393772351746418659354068418303265756359528250674721343606465631007334903981780202032433154154447195361789413243455882368058176328726259994092611870211565021666865053822166943318019205652815511112900831211294888313911908104765183646472269127946543997386939902524492556025436838914087660267341041745118253032353823271683545764097930074245640412880413780462563198924616152841577987080310564330005654082592237539945636843471913528175731720533015164083298459955726039933707423237093209757760985550968725983550696047851052107397810003837031305231335405200717082146555549538591629752993068886808150686908066760710851990273665840777031088402824400432501852856556421476051599588592370552818973906695455764518187510163646276899270969197834342580117837408920418345050644998634834091241791596959243088651915400343026131456144681237163148496221909095416678616383836860138439375830896355114299274581598121852861051042062887709696425520129848408361882443485000571678088457962625041208181970212299227967746202897135214382735130764631287346912914090864054508574003981898499103336960871555956589548113241714726724916180763540155513565590023602335532093478055163371956697362818597932397162085296299122594265404477898654915346776911579440755385175286826019650346152082554041536238350688306359526105142380088784250458804850490360679483909621301296361632313636017532524886425778836655275176215650709315373736949312891116731993922855292408321955979519504980176776150684613803768719992127939441505863449697884433041487760350986291821087706241928936864869962260142880081039525589120261268784830135665212770030375856042691243612092455022177543597609411607189254660302167915590981949112519000274608275200988093895594399719910705613084586126936849836280684761069119143729992952756657505893750994599782795623504332115285566173889445775509893681943546152807909027158225544064836426113770322261067794192332922893907599593279568530857262417822964993321224129233158093409366607814429978462070323659331339231615101079843984871893741303696707845200918558483227121068541696855957335855067204659425540724047630718417920029811704183233085063415393385763148052838369037983873405364826173463207929026655158283422082663183717380666963733986089717252275191257504808366590135557908404944533510789424695754033333337445808417775446748215247223331183737518580625221117683459915262372029671803095781904997022339879319388865907753490209836996910241595296545138070354769310937890919468214125988730229711695200647935192887999168460848773592632828111942153904047401493385304226715753048062920212698855602302931372478402944815206819916136334241845894214589496638645079831867653542065805943102336874391299277980850691765028975845700159599365756495629953597057483497827385639509714435302524026829877048751827056305613833085459733924216163795292338495804904835790513376289842537320187197255545556994581372426928597385532975868222264831609247328825380840067590768661988258607671391502608446434236408736562556342433696651204549897867643200285166877763141517781600480989890105224533021621817358198248887353064946958101793334220371137650146204371892064986239791465522786435729752619164950848179647223466475644501434224083752608995128217946082076377101566142991611999807261347618382693655379014022371500196090473177025526962308624738340725709380253918928300759394904149177894882911458289153661096765280124976377964633837006585001687580468888948875694200161937992555340769935902138014219177413169563939388947634957213972240260112117618275117719419968903465567656006455937766471786942661248480704018147271743714290961669401837410722923891535537623964763696102979890679833960410894735079406147637094243478549121594324632852049568681607934867329236767868482083991642240830560292346728554315569973338903720910431449024981581664950978021257804401698078735770967169542500316641946958587047841625270300671803218915119406963243746350975364289727280616011112277234051928208174558711050019996080752967884348245498386516463813326403757007910010869890080439312247863234577733373261780761761662842938972550205558032908780160742279599166498649574625209071143453651320856242087542968321941420203900014079942150740578797914870663203864284835669472949479652846791308290441320354519908514768391397294229400547038256531909656342931328844533833411937885725777687913546185997651961742536864814055797735473059169872105227716805927970149659075724685253475746021548635317839199410191401295746079139250852487890431679621593111994980102635989408826222176056763096451864463684026267335996398562463956342956211730604359051396636448066118138245865863040566297601896534242033563991461053015174778127584486656848182656876957753577032001081969163407079796019010936253094554671883871860290975874319891224622811984852391034463516380264791124639772778828545312889223706865635697703532193822379477882121359640179251553759454213452788641048705238290604707984635689312046312021024386657276998091517123126785717458110165170465335607831864831460671719015938735069027936026984957097779824305475335626521807276949699828233318666440372798439873722974191600801392800538493171189259998803042876123487391072260233229389552538719724064838385570354004913789761345310722408260765788619697093486975683855286241224351141234029271962721744665393886929067849139245257749779521816366229772634778456374528273806649145735149878974892093172606492734703005441794009483041984050642879013857970462371083416887381060659898671099626904483339325361015975470377408328130710325541373287924785435201000808274884821819863120246824296117856201991996836574150659480520596118498566420339700437626970463147790133740317198413653943155956983039766049550086662440313587121529824475351616869725165651250440231270021526358690072185772049471193928459273338876592988411524495494128635260742225574020523217852832837698539210071756062783224758299691817210398993463373750590923834765112143924204471032535848725845042841691454780347092662009045686800557700683786718834589509850109854673970650177271702924348980180363425965659418051349810765129347059935018564208662663831088168592549298953192761968146676364813249503744697246975614693595423003352624109686409639593187104773374198345168977915933747908261928818322064867030709571054628160757921154791377243203956061445835996286834090983776257982326949650762918492339154774180301349596420080707368273476115358565693195010586759160450071663294972709879417783141456440829016457787323166161734469344462955705766380569126730551305078740938769600624815470481344707362104395585721246407544526848162238930513395025800280759852640108851659351077659757726623453134766680454919481493936862651948343083395100442417841156450944723473028860232887869602438801130778496532494224304296739478166731249783996987207171600713485905547992204503327841203987856655552537566072002052332571738853313245267282191766549748830827066109038238488262424661042010350908232310652349306594025986295581776428935894213940404853181769016742639734469079046920154838016751436143749154246168481858874233255764987651330197113760931641378248162886068834171227960790003645565253872977658445491022512057287879286349830398551501235402056586573947288236561977042607794207021524068474672977424644540516003653945382078657287281141933752235033779162802320177140263175120366935957440886364188793154109313413417737668850351644942465929025610445493734030714880433107083389027903094175807603733234801006636537371319181785871373771512574650001150736446364588426006963223697609695289343690189497802596262671469319962191792636038712316238025293790066576270558181805729540775625393340047661348655580003776665898186862367932216440559379803779803952721210385886316025804153128091420688555447032722908644363753282582869794215233194655151517433776289091751209286757536589477029599596382680007414443426140373573023692685347378554635033144245625888002928441456859590244453022240531268773842590986897671218938477390376314846346241092744554935927583578872873159732620326049783400481979641423391737656213938826921781052954739031552473416554250828535718210901104105467833434123821339002822065502802223842121225215898661781127192477527212317039993790204744178359097785741349201878305162043829209211010445688407304495669876138805382375556964969678852645883149515532075455496781058407831588168924494549772088579914795072489103351741088347067486357097615070602081324401979761157215037629786673255153033388341037574588143992635156860167806485933812830997312141319648366627541988768841715856921781721411890500536401254631280330916335441520555426085120382270969138767450837655581709132838191232204138940446678003514053861919274367970651942819144354354635660800839437075960716070514179506725192831463620850911205265936743304446546685437022370783884945301647845169729040657652833837623877721163895385743526657294983058400368853438504465710449473200586882565015653748332019763438050344456091877245001758780252475232202132321689149422170839576271860236623356808074762560407608355977836548804163245470172387252825943215031827630966699252719759871203692183763674943516674406048435348417783722626270593474606666663591773737447832350540063895270638557505613330292534320461571516380334610748590148539052763010251092276140923397375765747665084560138245183921473282824891635962107769332142834395367972580642249269214157021942184634338988644596784060954996996779896984129696860270515599445721184192315159814888871348370458853802388031879904567944962499818155676417252626527975717218314464015588102882027400396513258747192532776063253561482698124829226062495872057737554417995713264036195136790350798854448166246568872085258664313189491765983938138672239281571902766144745972175822735314890970403832827614054484044956502068100282288978397933903950642224045983423596023826775112789425867656347391391891866737641107045592555590313354979228673836245289675578869359015007616926846427574623023359237708571112506726659674611716128413568614015813667395015684231023968562961992022483740874638597162676990913382517348637054557962263420257194777260452442266806061760967673981514324321609382228053988824049518405146800714641220898230310620385353546528818710344462214157479148773414537827127696513361620429312718077935338111781507071751636158730681094569473144935964517306203257205312588864812318992964307273645296356408493663991954109821028481069250030602383444362903944636840646280475038187866399254652702574067520683842113670227444893095404594638699271421628966816608780156379885798735696192004510317681749352474495898929255269343927459196462390645930454875529466976389701644764382825528350520605041839256034538116285548926636706417229982058476364426831207714450600630097551277568461739108287401000534386534652149234183745737783698463626573948451486139798195362329840537543286147631304502476052083544746222803245792238775070478132133921767759349453369643575443586698502893228599556551216814719807538774299502167821222431533015459570447013576326802601715539045623527999841572742323950415462067664437587399543042136278011333960825600941027150332639456303810655693858842056904244822415976681378444495893144168614931487628000609048472061378778766174498354037356316127161294584435486447326856109760592496284947439854819380384921708617533090088647788760235729169941684197241962624144597037307037717666885789751915388919875878075877727079883457307696669478845248984885442705750664981164747133118178759930487648744328403572780220328347355635804591667111104071766976615479084343321314879694823002789642796462155520145322619975140241438191621950786674003754304866650163085257308975796784970305202631298639607979043138522912654942518083414028051050925498593090308105433099446459628664949411933018521455650711498952377794148619681306899074957594435657211078740360383088524527141194929452449609140926226436511311184671748393916822222424554313005317863586554220867347809552637836560206448500501067951321611154066736062113977350108986988098786671721225374603052041715185937103787817679565943718897388409366827479217604520090149870900255019048776598719085113857571740148373681749847988230289227582983433154836883382333129793370873520419411313699028379081485205850646796015608705518159332044084081159579470698708129521779065889767826884207923473213728982744415952583442330925194766441924952087964968114031470457110529773391063587921308779335303027873855181617520604325127329410425218035066409092425674901195126322970550074222647585871947788572742816865517783264321323475386359970253728981809352078632960764332046584678869381724184473256718186289542036885517326356410910289323730039697846247213054253536334236367638510509928540116875989486739912160568810422634592223152328879805165335516895724466650567045004133156635088876086702876059368752631516135802532203082854068321658409023002142813166440848382738027158909088084391963931224004302885011264511962127692436179525720989656941241363473823548427523252248020549474634531922875263701621213982861301002122478033444376504845829219748049831020175527583565231321293728463408126750259432928179869691299026613731114615348989940135645067685707482181991068470752569602035663665969611479464242856625548320567646528437132438395347510545659586185785677111885950739768582969058754719729098709113496693180946173126562594796286601713093844330042534144480125448052536199286137334094673325801407787102260085289717302552194738760498859693478391260070761693973025153369944338904379835130491136183978128312764538764914395189073794323253293003515884461346911928298455123561218510826664133419338696891314285929277448880509663380974447781173203960676256614928200430644951584609346702732103539556017263763872840975712448485875039394537310173309847871706594325592466297203795256051764612900815979842638059635442957584221426712017579252490819773635299468620159604985655842257811568176831614120042273988997403023182299762460179461642243966272570737380365571268752864321079682358720089406799879034243593372049844424468975692936450667705232279419505658400280218423508382019059441914771442813425824993050348511469838309398029489010735565909418744622173191716100397015038873437257452853503257463354309851243103994059676318891916522313721710616606023623941910413911969203116816923924828835987279890409123657798074293702344869548675724428705268190619092388838802209984129436539551960660422974749663015169392461947725078025466745489649806550956802610989570975654166085037481058503125907374185357183024223670903348213584664613536817225479396956318634649657898322648560355003791864985446036774404343712486645171020150703106865750841971503056686610913677157195472833199106273429688144076786324276574730391810339402589319333005699975991658827043108649255383182913488370955097041815809953859078056452815140504411292072956861430877422337627018876551396183211855808929341424528849401406947463256654159299703014524095700345683622319577004293123860021033402916487598636019615017008510051210034509065584571692342054773776967677828909908392406043754663982801279101771708905183582924054632468050142193801940612327814436463172705376113454399913926822806744735579403440448559942213389991560626624507886359713673296068499655878615922819267648760994935706047584248329866607460994144381763112905539455985368607801389679556132168506683556613997346526871696588210423163690896242844686626943832260297756300829898944480155044058140445874133399369841013847635150052566586341310608564958671809551856383641602914176616374326572232648146181363868203363441521407406550986115795790903337765902587482038634866216454767177298907209024235094410569425794483609542415840168598821345389565618488389384693627736135678608642760888975966474600139608681063115775416952426449665434108298563186657631996046146592889051911547789301161564717697231248858709934622611605676040233496526315404883281539974751578930292640490102673759904998521195543366650822574457234329394311654019146679640923903350074127476628769331142585857590131352397170058307444216525438132664206092457884057290532754152746648301438194976189257941689567369439158314451660966985108484479984429205406661739158771697718801308250192524322572952476319641590033909126920791300955379964783249297462212768749313336969589740276341361004197088516115691526476495840202859167696338528733468524169135999237047547124387769366584230886514305965442087420877299394702908097605719430002325978219638885742584362749290088005066139000545427175607362449202547759982411084367048951195454813198918367701535549715872061225535293348236830391687042723233869643552813051350838840769966170240268681369047810431256129520268173919442270631118128260069575877089193118088353969389750496547098804562842274136199921310521599476008463637103406599320029607425082057737888256207264054145760684394825764583816800872742232517438150489220710949712042950398934114487300767041810605619401249255158521804762464142863319328154876964452092735506373091502023856941077381760181784573812379956024632537201657928776115662029508818232979746910010275442009361725256367831606690081996898798302384953275775556551756115711131055807501680781256562908330909031737678614986187497207520952112009400648292883138266408001790646511645343726584825900192849178232091989111105196544276012451153911472768240691363299814525100716515940327531625513646248320445028674557117663783867792355762830036103996300626646800434463802563925427207172116954166788126994420174058281140662058757758956131624956668932757766067860155196045297585712724037183320569752949571402769835364888198327694901444884813474349435649297587219742706592824525025546715661794686698569287768818855069554956190500195622562218223348717466984828740633672503002744465864916553623274540192924822757013038099619349879442733110376758657582994028908708774915073953785769820477456715089632287692542618644754010190614540865018465413288045100754014540830893198488591512176824536969215469986872542339826254843435624070683564700150605409192777069835843883350444190269550206013401122392062939588834427269071482460638159727872732706906685476329009882436825808119718835160976385108567562654828053174838055153583654322788031571689090769508299881519930019507623654351407146070995543191557417581929090633543474244591431798506027838173023897147745115568064587243273337298318418105821754738701413917836714750066982221516149446365353974250004993642039832989449735091839631845429431523947891568292215762875699164340173038956883163689402606178571990467275561154131506072017562650114422665550726083699202082849607295397529530706422454991340800355422422066280880344864976527584719746460084319700250385406688512236763653613808382811502087841889816232735111763135530972756546817785413902008901714878347072665791802226287473590605515354302820208657379068935499045774243860121866488757341854500666654042750502510031157772666381774683755292574465915519650906915189785593546229869619526987454281024643859879435285122453248698858968086164010478152753322035554415893126302064379627472772651919800587222998852735244151978306069408150946107676637684037697337132070982017295148471887176149050867430488403313486564143124922802302983781635220256544277167673125402564629320248481647106733637856863285092620180394040625156250358735740289582993705204439091145939362128766817965728390965385732682928036467654363287459798373983674844894335213423128213183655508731617488931557779662622681832694495891617403333881086949804957121864179819539350382750747754159187846183627464566948248236443958896194547883054559126010065843822516082824364532391596662450380518411348556330294848044895810524433028341673788844283064048251610509943880523903843459777476517972433089156318903182508764167464883035371443408810713481367866359532764528756481852209634069069262966022758904920918528370644038750028678539067567804317062693657544265451427488292057363378681475882167998344293181023922051578548295207707793127171489327851239642253173701545632069825159979292794089865063479991584012770702787844194511834929638800113889501038147683193634973456876040241312633893903237936924681139669609492639943414253446328715197613482552264319894674765057115960413261004656094697585527928669374438810318130232541899120795849393467849335644920671198119620595506287804259870889370906903400370992527847201111348686837326912128633994179111471996226886966625881970616191940208401347367532641998396728005297787555507806206811302899398618708077644270181711284028334014628458230347765806479204087356619587766826259345718252641997032989515450632109582943253310078148136010261724605889676857954445493102800704022265868668235188887806897851821740345360571382553178511667975920876233897876534449876876526891281367906456375569261231334601487187245472803502935024208541363588742481454181876779232451687538711976490953292144573818564241323454583603481106384146448625686048485383445605259919215858206877080151188730661374864126622072042068817665065624022852251259060397016274166598211110093585771015953491119988368382185298392797757791321111951791603534784459131770752277848804165460440102694577406597718245026046352987966425856246325333875182756695070476120095324026009494282420126582190349143136419792683633489972407180954945229120895917120865459329460614568904115237269834431964940246821011299862391348853528198761497810514717151998229334720333418326393099834499451284605170375972821925463565558208384822501959745927308595037380117132000362794822404060317132330933437318340038251571074666929892361149266492538503682931424002566728083796031254614217203524250956431637666352968044161283168889660115552055445009009035913257118303101323998995081494427661332531776474849798982129002959543025142516459543121925902676908949442242813035964449686304969687981059316950643756875935079679843608853154304105846639266028250679462305947136688184164484987201562480855903534966484564941672478765156567178097098825636274588973104382221369257214528824799143398710088518980762382232050632396216199255862919866054226799344611473775401250094257577851730577564276609336053697695013650023467551395388167845743840006407333465714073669223210290042134157587867737555807081405919828228635624241507585659637909699224145276184901535746482336152072579096729118286014111617440621011149389278214351677102273630458758175285744029820461133299528500370536810707824555162857265832266314332940936276160577176987890434429941489243536448969395912226038080679323379463648783228341713868813286552655771172292975548190139962421746916315249203698695607413294219971698074034408966650588878360432902940529164508133400079606801470209708816328111697364001961246270964306937926762807394343657937477142385363395551560248840579619025170248456693467085229911642281068789312598040059114052904033680319137227195049803245561778622175109377159943526186646393507686153521842569995377636644373081994267398596671393194546131301051857992290744372183680417390173751539607084345460767960032987374861022365650232542120827709491237737074994092375386996821240137534992027626051975584932857854842671548142269100683876533447162086176774762387661957964960203795919342584820014977226535515791190623087877548675822309414938661353508619621819367420088226617300121966586168222035457975407678316107607687030201768702321442552651492561716274715887692733114722643869789273212294434357696896595721588508198245513084175799409417616094635632144081867756104593029286971725490925730492281671994518015396838284874398037712585095453989541733823843352699036965697786662485165300265155084243283372929132935937191232170158650017246316478949103268833130766769247761656596320665668837510768973708867308208585574520279466680616916873959980942194155386003545070344723862616394440371012147788469183249597688962961707210373510272252719335169353696556870999800672305503163329729698945530524371634966438731901372556992396937746250356678235304166714724405049877413211961518838781134328568390925198877739389791040847356894842783262609807856853161937115029855234846964755553030901221506910381109733464561340048957525198645691197227334828679827267420903319814716054036097128984525302526914199803750911534544237771506541575692684311886204657571966091432560462580904985393897841837558802317544984609914165970754918659302254247072757742172399816191863332029048426247292975469332778319008313685994188645980829981686615787197107356174946032130942567832197394844372529851443230052736218468134256822811982025530784717926317552728961306745845723938432829720412452866697589359414164971659223532930396353627043115316243804160827422404159133788553717460568912982143166030415259989874530005026561093182559519173078735949244220570294919546461274096475517639964672047598559186086487494485205393219261278858574518497323693481668956882808332616637474751726224508380873161894113817894340644638780420904846307514133489421457006104894387072597092684972804951200461179113913891380396907624961920814930405723402769728693294962000281152097153335874596154776053690781535475917238038845207901503275345527674089877439305724126986432111217255111136558466573557585530371229775234438778518327750818278756442086292663941306132332447619453104564812783475375169931537364404634265073878052260411260094463201376604542070993462574076159682643387225308624587035653308171573299902613169365937734834431872045265620562454241596884363283226270063647521536112251102213669076681368867165440785072312575931117653021856599412789068742039085154709697907526079358985476348010890194483590026825299392488205179242100283673743638622815036198557695782362702618472757969188935214785644395249287962669480349290043159006108567758865307983055338938928390538940751072932856040776533304931512668625062212366588634725369026979312070631573435334628651780473399996342127248278708741017764186334927049015565639514711049750020033704645232478434208033933469810734986445191770908548187129017308851046069220888574548573363514799205452369750200609067087928120807016583421989705382780656085725781015926933356750473146217004299134353299147899621440976361130255092405408976297399303147024106914136985927048138841840857572412685155966925149023748159612863534194389751938245816456215020231587240729811558787955717742388339502467883419368289677096412067719486993556057889775184398111326534534123385050804952184605614426552836077475379466098495458056546738482788372943401150437036006129519227210546802182065699542931057184242246561810004152329734351701303552672082400576099386339184274790416806091112761027946824535959537730120869164653162079414440391700516218686385633466333620002749538205788486646811543658617153121101990848692842257401663402367702977410893803471365989297265134832648842875975610503070781782873714539696359565320326349514991897481284228805293977838593040123021996018077923034387545024152983442619797130253892600503837916087827824279339140484795836951805027618759689442527362617877956015645584437849335071397319527474405868780328088667114132012424355177435474398591790721026126122379474077624486237071710094171077727730507264236558218416843037331628360841763940515161440159324652762724889765464832067091302926048450929031764969677567008885393167992241738399389864760087189916552836456905387953538979862158018826510790721259381708585054954325875464650108164076619193327518230560433390855418113781438615898039589093697411631394348773133603401379095152662034147770198160054500689192822585684213211094582344318511343285291846087954055944613195802514768519111845599439838601718322740885316174706180079592598866758364786428025014966014815595554214468909551095981499621636172277116391637464159963200499731584450018660879389948959104571844887600378716395825746818977400719094706808694907717637826704204050758408236337902381769037301768060464426377368350940678565245062333669141855787408944819221435187878318761374165159538101506697847449626209203642763505817651801173754711829463399976634410317743780933223832640633561900564630885402183225637129855359983405591248352789704702428417293154058586171123319333429554038196330357628418847497036371817046344913260063067426922663823795291709392845272824893247758410053287488802034644180653334646652070084132828871417130661989635243811505469849526223047014337349412996802013865542653827064446455523077667785051412641864947321336633776750137344881969030474936881518465109709959152746546837650073452314522550760236423786223347479516097695505400083363448262908365771993939623029960054653068238780207155705723776496808055066478785648869936133227056190297520642504503517644021870690950130788229584660543442137674307968540592668488143111679677333955760757937994777391587497272680363499368476473100536157808995874830684971766187489673277869516381097695716813732985955782105562999050646132264830866939866795879396164391750587214711831908090773222022983485098287631422553111867069577227172454898823386015899551345849277178052839711627831405604020586657995042729298494228055378702678173553806740730310711562609537890503564676373888800141080585888324954117527963061475168214060896455835995995683702227858798141087007054232738189441641631743385708479669177466738782916969948245087810673273590407569631607976695963922659617086880523014050544634290682191091431989410939926412541521055090067134653120542485768723623771756257217880534372124723525096146271869677967359603183382420220509468090199934213252959827772257598643383286358994116631010714659205080649902606419042080320816399273905783672447343783058693534979900441519580656366529367130892232985698154888833855109794821247677994168163421256298673469150142351488534238181993685242842056110180140432241540261964447891935876315087437799726199478119080148224979427268168070537118628033078573758948677131582553570084239367473603746768464430459227744096631591399501988617313818604690978799178703642818705171855723959013654912903896192859995702784996556738722265259058978686789891196206477122428390203456888305916025538649760397856786531480388536348423542434635722065794209004458933977184605788435783080860650968476824302357265222482438601995610381528316350768192020086351146147401539054640111804239927269423397946415005318794942412108764644793918199266885777207451191301467522345895222779390899914856853526926184455950855238107859123242643026458812398467532216789307477583071654037879474890581458979018237481095227108019516314506403759479497569124049005552894254171636031470642294664963738992305098298471413834048969899995441140508955682825588347988850859022355072917109385699361667973750902622212108203868363173913175345940737555040826302391994760962011198710877282686219453699273414267813150108908039474975630918414971037368543208225172065735324411187876731454672719289528246366717686700496965183610103763813730579602213349560108273752419455634852522274450774843139871033942951603636263567726707794259815556089498928027832626405873092169837850958345950395170979706670602653073593456703986639115470750887725324052940648648806351649839079721034116363826650936179340106924533136612197629700630221848309091933289995790291354475296762184804552684089648293000753570257893487930762524072703055272858307727408843507352586309476143306842734227329162879510771982242479885641294189742988681438471720572819681754255106735011583363228031874788298820665214507051398418356954141161343606162530268579164573361066397301015105073464433359492488694495107184333038328189165484777916154914963475820110976542727807481809009465113235581508729294960992097386929516421442763268030721908339881326215502418661597066698118315649356091100223212654173365904450455423215753467985486854000198650915405205918735268043134916280092523438860463000081781522277282443386922947102734746958180675905105451898949718715408593181765212374600806509762495539872248947590425701854349517829546715260698828406959155840067935023036479814253137897600406415614748874633002600930813155084923222960369688244319564981302718480312052586579295878638624856682657502655253937125281465903173340688251181952848229508318535525825043476419001671437205655254075430919444239280342796060048527574947467710378332038198249096266380674713747574719139109024680255129956204570407745035178531326583196618121855017658674011680775000905425287271559491908774736552172146844722776639302325072584717827171734652426640573724280230991463875071165218900109396296302201610105706018086283009873690652184823417434033646042796337151042451835879808844821726125923723742657149751272267571740088749011001624533738317358917172701155736561124090132705857611441163288988673380834239217867031869051218271051742571052237835156989807188741966357817990033457805033654311940496807953889102095560436666420011652604447294327355210014574585536730349406410560390244139156472534859241976272839386034195507020481832785194571615034405553784737978344455688161268915483249554717087296432606259120776497658212564471666948582409831400474940425986875226424957463845345103397691376398414267052874241903698522639190940938900957065333405360152181420859968624491607576736511884048295365034885416087703391371468373390402255808773787659927356388093638592432376031178168337562036976977987641354171052710073095009756735180860744205399706126180302446619339224277055162230859881255431401418783919438680070351598765967952469823259935718810556993643212063892714349463179950757694054153532402328900057045858797973449821600162824984479712675841109037543224586959019249807405154678224064337272748314371307780246936879186089226437703458761503052577159571564484313600036606818702995439112951212982273705902553933780250083143450325250775806060762187640944807875578575475890032113931980928745738834894372453932113757298323061307834627423767739046457208297856845046481202375872292369144969860315422287743122028854233749211541988177041467191370729586033808862037101508439839689412379159087325405229282447120539586116660569539341176586552925219688386568190696121870669143412591077300049051028478737227207522614081511316401044132440047211593857842400946588676085987968400380949647548050156558672445090704645738561112452761569101959927382755467807058537713044258312977982306482244757140484439844130630307850329597934887091314671246802024712609264020820833967697733880742404684689196022703569335593839346597003297460055860045529460957453613413893264323209567465951406024841277061108322122019933091788389886450500168754166298703930718004394579098796546114668079991158881737371455526048672092346187018347615714900136507743045320194947619975560395739900432469623741539878856042029010281517567918867317647492415064821989359792841412290049137186299754592459410118419537681495542378314165706328281743490308680516699240363776472793370276822405381275004907382502239023192878024397273182941912620707874769302271122331605485765309383528768490083316482597813122378633267274037508656010714855943576304745865522731537866763204556173662230349326573216826638306261704052431080619860456541376839323944107229223093859161545072153284175150088012380854368977916598850227698384569995607174368425525600393107288041851854354795092465217525911111972429234566938450579027313294654480000019914981182004740737355893132374464903359314188681464099392919055469380440080319588472869150249193485191884130787552524364409108023923248190611427407444263588505178250363537164163761281350621432715045570033271409309454255141075655456665653159067527604369620957246619295056997934589525731378822566783486404591480434423987539668360476483186659322949076182394184669648487205517645287933472681185285934284289666965595370728059633349932184583210046923085214540654515170644157993720046096496961623840216857328457516086055531523184936719368556691917620654621500707471930988160767990174194199513017865239417953220131695442777226589169105509599679125851152558531556848369819449572872559229545964161823776430211569601051409801721000649975447124699257851038211063109896962941655186770065314512463513293212667733710524834726036677861268961864593878591816127893891292303563385382413533636862476205391259381096542831856224323947219946816508919334158133354759132004839872447492215405380552916990805624638764772281858335319045982646088898321146855987608665261048585418542948665182704705041405617132594932603618411187607413163814721439528456121228755666856925542100028351718272785152998380532315491256840113489584779078067840725401065185134501995031948295125648203254217995293042613696382367075021504875389675056257058816092932596488120999483138350592371750256303390580062458472534071057545969226664932095811771380022864847835625028917826081453824644452268052265760183100342735247953686877171198466697294895958191999222625555037242778577162781434643189545585154743960107040801988681502792044049256906666757278537448985957904930732152442721246282733057566469233352499632349430673875084024676243822167213982069115525863820622833946550448655486361564067061424792629196973169882452753047574740359973419069372132689227647608769656493582004662864299453661443363947529655340290462985029846318873848574485408447061857030163146275216679283975079297014980552769038896176538286108605385217876378620481249410989012880678497070933132761183910179271182137950690648258742221454094738975125439560781384639831940625728789314814957540672199861223157594544144127978516245167021702159196431910026834088835287815742220219240723469222347966290879277642504372371127388660141983111866245391520656498303807898898308924253934614142830478459489632757130768271750589549607595364517767317309276351124171359275180601981072862934651720435749955941275003253373586536729285806807665234277365065169617782988584645919093534534082368977486386914890765110591830747823739361459591035873037909425903893605758757718825934133125896951462786532572397835104058473588930943477050075214733360645041178929401692106636918746147960396732870786003432740066628589040247487184107642684309436171072151884989585758071264679172091573947086182778425213213084000524102332882855208240848849026754425046195859452918484390449315873044911999382059086566997057824158994548637764861441407309230832012037218976692979001135337892506482642968486455372447379740208991022941720643733749990224043923068521559735386509058137542278090530225490900565605148310220869992303648782573903704846535354260216336374888472265436427566555500855364102439796001146051889403246855484785684259627559676983867789282496664367730549663138660117110006525324997437099776333477652502392439053768777931786397371440709377511374141630094977304029644920150429323387480251329176402435015801254573737118815241184635341695562165760966152866412044069889522044821794690951423784821929521386400588295424824042933954189890134632695859478141815589518860823362627601277931280221439232066917832410990259272500394535398369556445546516845331933872577519517980425741338650249944420559604705729224362017186993623855370592937895081289189877310059772785031972155145008518972997488904073519719278097598463092805064126657879926805532458574654293516341274766234174122532204283444501944416245758492722936662095191510913891219247285358470215085774386775448205736686617725691976857045784137080043923777679131205526861225250338283630436267357913291968893508501404565819710224201271818875911812979619932770083970330222218163721846121542377763899248768700353949752992844336326180585517774675951266769891097759702066730548142514111734327005640226704654613150567795665084252793772868185509925067436077962380464072066630575711005559850870731050783225059224787301564250203876887700951495337211849816005198875202228629580618710793347151558781857521156834408756896798650932272055111280703698642237054579007687321616921733014486771731315493982849129891258292088105881971564853400360495629140472902873044042179712522494570271257194461376803280940725716161627119576704922707755729129764273541304758355941465568639138247638322508994569787062892891386804345553497023657120410715426675673352625552144659736452365842024884686063992859930634297935154438500894806808784252569422689793222961486897122012779324730505811698269058839940006677427306514940656192555369372392720014822762855719250156569207519779830679881317633783498146743845343059131349776554576364972592040398785051259582484058927865502424249243154710367052149729060789571526818422837756976584639428441781054134152338734188885894219613967527120117467257641603585002242700221611045756170403169396690067165171541075619037565290710595340858160644010879630112523007897729470828795586328667085693798875047686244168252701705884700545675245457967402452179969284093086434646237034339396978022294905693840539664339606820669307221894449411811416648927148336072232701223570611069874110686111779217211868551691177295338236201774964184693354400325134847176034531010023797810743054851522794651959024864657046114851474408986215347757014095895553769846915959327384461363579038420897999891058994704110367217166230188981131740753009701969707359957558323315341328792628618632982986209611810183994130730845051452969655892761965486261883893929015522856629146588480400640268484197273850318431497056143312391827948090492677175982180709979965341679590315471713285067555717481328441061224313169450513210014124157489157424456617296070184193744705230065552818158552018860401142796821429221554401029756127481063384243752447885530108641968509952483543050529974860766796998544464901053861853644551386306649389055454220681099002911274148241617846185857051229491808917838852797977419064825602698454965606272269957739627523184351335956756353993245476579469270525932053966398108049007327717409559851534746754728646079620006689244995911206524067492444225304972535531543688636225347392180421523579138977285139909662492280734833824633846589240439233932435804455632156409402293062988488431011175752056013425226086287110254928038226348811486564841107359433742415809517246581730730500282076789742047248108875388037434967612320255559310187652933492250119572338494782858064071482468962203932935150449729516598214208185632569299957448504216164099720532892969100033653546258041896684829631989015508963069716789246103098674486468383598462159407511281029564578943828272291258873995120006574760933552262684564654369608457272790148089887263795899761497435045223898992633236548614526389864859236393149769157311486746284190185581659541488678011924804701670622229368814625986983542782733771527317607999077072916227147536012614703816830218454651083263664237413659950484020916791473666027888583386879097521469054103620300495958933771709089530809675517662010594538424507138968993974322050780641454782978731632847614632224853569778316811514536692576781599975007333503378035057445888496672491774356832846966568883775606019500745906879554621751772000301473870517844129608989583837475002235742014618743911250015280543789510473265713749950945853377471107108594973493416545778135663479375302795851516601485747805014121877921350366975347847156085852848079159011932492565734240262268158871299272307450800208862537808439394376119514076137834011239931834852807815914367755917943684122000233935438911950441385937642950882766077690556993239080309691317141862671326829906286523865222928352362383396222515375658918553405231604038884693836781750293410485745279499712373570090994991783638793657764346208859973005452069392822739248629375015738804395973493733001900534603082745665725384031246725638717957143388678776310133699423451611303373745337912503198381063295189535462543896420859286189478197151216110065520624512167997057254194105523422743261826340542850461310602146886984786419391317029824997016733787313286980302985171570133315659178531590463797486152910503547088266097612277858566454971499471898872705217725523736297126626748390704062488598776311985401494005778956547811460082487491129763465153453669808090132526266948530641881653364686216041341356812088935428690687360436269963727078071085554137547362981594541205012705585444078592148579235544038149932719925810241327453670479314821396336195946859969462770741861925836736219822280961673430224704924105484934492529959590861647399762856772548132303337996875509634955808703222358811459840658818338899275825911096600083968992112698170046155256808225174555735966618469616581162634221557028047702833498644543215249099608956660663940930197150874774977376675174161023532573504398299179128954488957141167391544554817503602431814774312829928136033338173164509829765467626606467643399859773322468028466777833223853599089894514342157804628327245950832334176189245797943728106423206419134080211758751253643155317626572015453602331753971248859968991086613512521879068518962028463032937321678207138021809303363076602840608370746582877796956571483072293053844469145512783222954466269420497620121741898780366113685364833082514774284664557813638231867464621343759345790738556768236656952557095849407595221328101962821119055585947084061016417681551162027730738437129603357070741388770669461652786493158123246168105465113386672422782192800574174513439932122024573364107914117986856562974051060965466520711048207163654139724275221522596981866386848200899086884291124673622014331677427723369896232478525460357914693077886810467370253226730988870627301496047331752184520884326181880514884850093837440359793349071877038782942779724690415479438993936405087989950354503569439279909159350902413463916855424484890777507752253390892641184545602864985581986837263355514194536748493493585898298281931257798036277629965600852713747728266022291143537286566080008117114223766531882877612798078173052043306120364116868387631532173582473783781418138760595109622972652959952033156511867800735219688725371828233798503045479360822716251889104601789590961330533012885842256912664824771971048896521499250988731277895198159596124359214670757615389693397267230911801911210738877099949656063496025045612459882123760514486245599250791992009967396405681320504119326573211893844554399776621279491035129600110850149756809712815203590760340006683503717980455479521382459132824397489883675587689712268036328748543606321703800526424382446428723876989052337096766503689762475554875701392381831098903998668664281323751991404712320071611480740834859418836415565738577323612397269600040292001168621913278661458839725726820485676027939931351442348235000443027419027029195713134884389734349108128383654689375916347360921169313888913999939943646348153052680836868668265326643459149495432063809739170178733659240585620131200362298250269980024416831695042858672490696312302077168456859485784671169415013930066136598737970223213157446280289997282156684230142525502047858841598190706527170622858779417141355926751338377230011832285120566797387297453503581763030668312528142391403496709167771909253367304522091499207405366920748216459230778054929338312806748073195871764653389352698356528604985336029305772493497228474335721967584672186020304189402022202537347412945095899929451049548549363886622004748453248524745591753926381950369826177028967072858940428607435403682350855013792958943815343095520185119695168733955277366964730376702654186866418155730968876584518200287981185594054107317222158653009583281318761402636782953142219818214291552421649818126057537322236208059187864515336542619404147921575376723456615753952251219744846427890526837359047848652105471286289549039542317981781552456424178803379783134510003842609568577339335620827474805215757113879621979693990055284873012059907560065381511400249914258626766771407179568110937485044758742789243734973378478830044249349525140519093842365471956170897650891483528307627924168376597454106223824679396260137424169302856196163817205482269400561164157321109500936268357179204293421196807751914825800979452863415733341974497214760790710108216286391132127815752148832835841093359891272818490899445830162901236955421560000364168957079093160479039787237641111192961735669503785961822110065465282362764089205648165817076210507533922271281861302653899028735807717287644080244201923428673307723155801865135073226464050351596240517558981294887282422239367320486525437727978219268046836544495779414774413030125312111430378269248234593686873803935869953703012499152769249620397093063822880575227603436450024851337845744009607270153925615936251116068041178288596660433938314570197329471500416200984709967231680561334931084693026290460497069021588136274501245032505170151255343839176075977216630104452852128278123912018272297571667385844256477677547932488185020695167015215567522434814943709914771628904404214606908654472830585168010296327716147739325596121983953170963286783911442656479945453077123438936360696154453917818484467705716455101713734609559330909016051432755332787548909394849840888000822992112699595999259761802436671204967481642467169771173811654346926724882133622819589555621091651070667087831337120762713541820149893008055557949507291184119126146455261572474477934677514116986329708234920947963469245373461778490074776334703758976851092294499449902345209049857347241234769124890245516883079803414743672422931311013035933303742760963658357894317214210405066997906542291850953517212765129928271941971183756096133573299535744019375387653478058079148248756992813864563926330857360161496588935408712733438911775251913690956298761482705402534497255086656942718439114967632006722555750284194806236165259556574094454831016760073694334593221516654356685291663449114885846549011298154305494339920814667687342525062795998076550170314682281617103032286820109771415313761943393832750280170307629885446853560515419979587530019930310409151451088921572614034636221740298397868850531868424654834709292886558569188702474956326007733122795687825489398892775592705353399229636350047075818591094540938232818761970429238956419183469156229919234174425613549004160338570319932711631145421660536527764566338106061084912250996142273332028446039538726139707923863260809714335953608831638904656593101246849430088827435953231699280187038816017953202376838236945278401570791506163950928262178099573203541971189558487069540325253692854684717077733156148796192518416824949248273415916737912318885645740375035718042948071193055864312885947871332756979689641949305537511920951234964110350626981874310599848606599363321396376479675704478308156807260395797525617148157563675264479820557048797912657619561047134548614374403009843225984999432545425856942955056392451632589446974764265063350809723918698959228259185400459071325981558756411595012558044075298064910703931494351538915176919612986311944655962389158709785503830742893348225572951013214455918510747425983258291031607387622243048581674725953279306867784728734481164459627729508142202901757271248130653273968842714439112567636544086607984545581683335061959728687110711194172786337044840202497021838191993452420248683761718094877044533640208754473127088612445800355176820821682245193462957083814572490805628016209844623745346720017736583335199825878900578322414924599004401600292443706174551012255093920571643540325916071399424299936937994797748285781214581630782860834177899682067005887314677370422333057987902445071733835934941529603073623424604042636827529520130772538286694434830426839570358762592625364039118592660433607509981087825183969977415247611029758298159291958037304556687674969854902474893151007365698092262718179498033298885529031483804215557792841854052721543575094703898617052008971401579924742360080681548118293868810945457078383979516639866297863419014462829521465524042793315951971831877037420452103991732809157277057199962688425818055339503038180914779443110762155202819395345148136365126587832599177868474030420853486817588566084715935432152537139786013192601960086681768507150304559659767829947618395832401555638497179459382720299575354573312313497163091618581911615124044002298922786777875690010586730819960367952844415498724481172400296117457961184360476143967635233461846250904960281929958074228013354733620337032425647355887074829373665672118581164809607931296325733407112677307924221202439855489473682071809937495036865562093049438579972906350784650373805001780962033031086278867062752430680480361992455595751203781246842783781618200624054872101886436288872968026884120926728614168087091976470637937407625394588503933633623782153553773065766366381274451896312810828855254770656982825743255102414567735463093035122825562445113173261715858626722186283954807962602735656387909684432008004666204320670398349831117741590794813834151134748089735257623419804654195029560778321082340631022467708184810612888285461276375701503126193126207828143553839453865656262421860759843768645971887652315109320944818867815210374107597174189721649022999574962662694103010489997298649493754344714326524184153191434656105467598299952022658801890007787740031244537588692032291825616285114129633223261533243932000686134410780618355641953831449599113776246926844549674222810225935918480865954287802049933576946064502161501464497494542353981666978003771023813369293697781255736052305675911562420803167286942685941414757563823078613644378332124513168423615848581692143067245400296167759797178065372511953481369545118466666833565610337614590905225011865365981336712976389066486526050751641073877582456105950464360605943006511431906846816998360965949821686750178547756659593900506117441906489012314725157884868872131183291737581017880117828275074556038974360111059463028671377900991934974904391752593218085583325473897621500281615333266110741756451126636116909509311976799277292037145468422931861473792043290836083625662783804328470200045053918715365123175263869110694154222345485553049608599996541016545298932215034942173143414772733322719131596051895891646541864400181205542720730308000090081344471294836910545910901320278390146657657626824605236973162895490747741719186688958058284539213042662507027544337616827244173944964802378838837874811967933895783511087344569999024058864456175423580365943581852043378375298101921776946499211123666688926482108213810551750484457194410792085938173624752425803338712790562282232891910148196496181168805739319914248136944647128883769633088753616876221458342518518495786583021049948500165217828780523986439341304302295903003830865174618760932672060923832374131507780945477387235057200554026889687982960936993628459078503419610256385283284366499948404594183019614565156366375121800952250709290961211544277238147123555155926299062279190963963661218368726858025539552809522507633799440429985931275548449107208778482759999292737611569070916432113129619533278661153214189163873750850667287802174575017504029218382232411719308535569618157570104278465635189546434342667878830828727517816069383071943416089838870869570158173905696675111167105363352503555201853604714345788604519219385184353756677258911323956876357295005579276630740906503776354486888373666496642991619861837062664488505945653816907106341776871119562110138061156688800637119071997448278302243268935157356409469524962619405551548234862717154123906782527029119330672420746179174257269252457639557771243933777462284084953515666091365290148844207705592915139865855244582029444061236765133208914454335355282252836207978752952236985351944981318927436140974769225712294196520653447311239046292192384501258322895881494078420380894629131795570393699988381620396146338476114199526006618865699761825705738908653077852545238559949458694998523802158583564738400731787238925855382497581255915284310319353746159543995136384887096020029296350919344402366011915310035967072129914717328361140880999781680033433602905993107945771977860525250465076077295633491870266834073157356881343007766078253049149873229450128862688277337329077407175484826707549805234693549692882230062165741554071954198417823807690135179801084733703064716387646331119882558848976866641578272395809246172270619994733411371261027751925128054679506049453223562457035983828683719723262136157002306148647174433954196661887137990423459644678627097197042866281564437824381278217079710494130860079891731407680361923780924211913285872847426161999630521216745652479379072935338520300042726198061451133141333758493669542117862983783388992129180127835116976667181536712927776127025799586708742024887858849152584817825100430155293897098628767365368874712997385542591817698053095830199745766658729831157735460505020656874144074067510098569893588265155224913442509717890007217505249862939138705877570630767618312638726171222983846811026705205204994694692950255050214752637201876631434167755043141974261967086848367328197062993792477967968673329470533227055775496370214403921662054243258073560261070725393252055966598328660463293989471354418879248641673530070626608557734851353772748486998831302608303449281201636820093869497252771091959277507428834611423767816319388470625662147143507107060986217330561390802478070291879042404248596341794179492881613366957218842689226001347209677376412332927637439974257601300379137384824296714359707319496515515603943397354357221482578290602774205750733308451312744835510927382807460693500970433844161294796848957654749166018312731944110437593495615287002951864527263149933682057669086099186571120249487183517381805587890002193028735767323643192965878324268188687977698495172871025006620354177719386969293847205866779580505387001190134538744112624465458813167137362611880388420566473161732508186357444461341001719716180624277166801855463181404538558354981761008350676849458456311108645516437694470188784828863402033017336925324143237928615658459077636077627764614071031112802425089962419909929236059365359372080633552594670243780841624074760379517587628173624818863792165809444216455876833301717279877503550866728189619628964851370545351813991486339487524270228763024918567884449000351474438078358010280678722294259472820557110914196701933871344414446232322396199351413602021695086896747393447874552583045467106183002561132498190262357437896405573817346925421036660315250614363185354553964174623790765251092394437452247916136791468809455906282534149556227612825574325354257622025523428986494319509476947050400776099350010006100472956158035486549456303900654712925336206228884281868293118811879898671942751413951752858442134457913650731051272472201772694429323538639178351257971593563892675231430003204143112986691336604692306004286541215563123021492296424216490653386724595588207098554984769786967351098980532548234093318631988753911369344841983144981798958956214279671989205699835246917189203157974099156857589466144801333497180281647694440685877120078065516481472017746768470298172048879625798574199096010732752294711894425137495395609280884361978662267162408799991858106873542844423063989136591246621179990351091311829889197738382846862889269131845453749509199048852705767521600117869429477707361654484190540322722728235401712796636592197007959886404506441783582793786868379241301149769519887901653949215373968506390205862828740755436545714848523224340792987637853565575979099853300865120532870960842337881122693687991778096837824571302267956787658702408876090919432407755044469152254713944959285142479435586245781220755452075662447292637992347579567015636126959221977669965514039552282741146782793637215387423530900710609000719485183951331667172896712982727508450325855405390506885254577640746848025476440885575937396161380838615009344459885998763164915965567347637194113934960299970587546462534588775756526600937243488500421118002458933750637717302684239527168882044200153372497484381075872633665449490327227375895372330808146579127028503542939098963928792920131754181031250089202572066601621216321945018368689531250987054827079789338295889936594672819362236306889145605963808447100068418243729920673319747938948596172151727830307747167447163997106037572063763152357085314975158795793544783890800095009263108579563734798827885465883394163006446775544924170369153037912849246306231343003184795245790867081511981335047396290198320591361586581475059732632367545741084257303673408066714851986446545083529493102471239504851149122916371031733096412522748111408365728142444322118860429600219722358910525985340648916702375572274801142547185706580857478839905258044564452090509449928398841350457667544823289667117291710063805033737391116460982399334014568873251916554824348571017945582660247462240685220339611165621499763970327974673484002106427407177252214219107510274422872322421789962529811465116108238674105425335672758904063369832174595227638348409625495174571011697884892958914260401465053026383549548838598157845647420068230888019171676433691903424318448898601380698317092977117547548688415539783965371860382361259185887746349706839436884890365579268310716588245054154633637602488341095911718035774937798705780259030637222721927466617480361758009158978187320315089365386599868792420325395891505013208123325080639189189805101595073658941897703056790909280635765938537050784206580731681628654072432291066053360892647701149903108725779658360628974633582018998627322288408347270087453705906573110177751792172416225440150051337166766661566718678014804167799766071056982825828251685415720143930354658757403486701365445319829059827403999508122767903695553586414821171032113970926143081412205155378855124587107903308433471174180099460311191177220268330722428618518535928707458692107778829776639857388666154073572947263032995456759165085048391548383780961765812494606493004761426054092674652069180720279861734048391571372744503008661804113329437506829423808922035505246020358053715510699122464729656586323650328276588809113300622137983850702233857106359578001577510602062470996470646296142002549065934147502603588348495125802756043116360441216524248677838681382419174183085756363063868328021237316943030599719351304537284834827354018849389209943897677545659488312406604581336671490635719354019165930358085781941935697945692075090316889915981083797587448791731083025855579151035568563262629426638049240930967766362350179793536802554771118620315334189419595644849692187371235835620359696312703852650416714435293758227353485028704559284746769745201521405057191984254420429467747585192706749977547102695834659534679756995547096019113906138815974983629532788469650154753198811940537358663954351922237164952110928683705304928706905884281062398024319315382842912685000220601815304169664352123117530613045125985614161810817727609781943755599119355372833013000050825489132768356216531838568421925548747882175985522530421452454353664716339153268891262145730187696538806428388999364365889514114481392834805796068164949554894268006498472959407657054952489969637434395811259377862839711099718778868833493573941710369525260936000546649181415680268009792010791680122016281823241795657808851868727251721436427001265681403962140331438190967641513883889830186083960194455850126862075337882054125903813123258681279070881093296767716762473639198464874465893055417048909943038979970798302677449867866478131323007700047446667604553509424876504307642786793025578010186498185551497605828477710776417332907292944022449640597945876846172922017155502610469058523206886602481807459704095391082352856884455931872908700846448081697366208741538395089490999901701537683161254956315985001077229208864612286569930310943856512789699184203877004267439011136100040195894506767768926476293936377151514449465913231135343124433125878012087918338949831727891186204932142552244639715140924982011537879381071636261627757547480672083223732960092351010966642568560531287955464034138373280974645023717296550652322086240086993714717416511809510650260083795256443634947927486400407841750094408188766589334233642107833950604774690726296178433698641974922239530765571692302504716102425960879257696692014667043715031551035456030979531563673472950458771113029701121898960762834643918205824243568960063286411457833017674056280945064815127209440951693293249745103242824266408570412658187605264620186599400316712267929649358693811716488595137132198318548962780690848513960437169524307133918146759752350161513073834674605597294559566306420770713606625674524320680075350977844491787800532485835301278653326871959309387685723725502386142300679276702436262699783067954499081612867400780570113773061337048911586689911112432517092088746467641118418779660175956226676190486082501825980268871434994754566502506525822212211520052945283364432652521751470773731459852466916452686956881969736292239630929350685122062114903744879213162006263740546898109768966007688999013747364218734068645992981101347979338192761021573330033623431554798037026342244664503675741050188646402409298126345233290121925222591732622346876615928470586284456326788159221180775438232224355834626484889037065542220102664338422650831785494682820614817815349225506844439462655362779008265869898425253183069267297899179811846669745897249429125469714506209284940609789832569698587513851353735623643100001144543466667624117650110200053148538240909470923670724500799872136908859735068621148220358760143962522003414569012276401278784031842994232200241480987786336893244500893637404327651320556626886071702816939785063484374595854775909354284303437477785362840727455395046877998369103665310119389302422861051884836554783780746902501931655626415176738348232747739014031842042071930016986706990333655342519068134234443283828857159327781300220402184548946400668040949950893245128802788303768892272540183471184337304940939990636118783727363025908929271448648821340289760262311317132135549407087326743017004891671867511604338063480410748464239024360161353954356131942069332314706849463903985881793783480443635211366540453358665354244767932688772354812377015474675520327015146316212934936007553557257807120341674770939469377318931905282531060650716176213701636768146905293819546095162308531603729791540762524571540645947692988958511636575156594059782762149782687153574892590921937773656804003948539240764618006851582203406883980162835816486539308454535829323989833237622478934874586684922399824891647569244754775477844940368189413369261676768147377273861746796858494414468742331730172370381261559408366828323087148734282672203519715476693110761725322686299115623254000814245799439324295890409397303389198759095789529139533242442829569881721542465680092708973190951098255202277750049776541885656507287754916779699577855150136221000615590162745214129692211898203171894892278540383970814367142711450242597155640492006530924248507384309810227961323967632805236077914819986615366742996708667945901485095841466741533055332270483511103170279010236886769781690293443034281585551229158625760793429010999081276512493071193944162902770523895272657729831911658117084117180811080917710054477818376239182958506645142331203841096827963617914516784136192278811803286115941900941733171312006958621344280619147386321123874325323978666915211057794584820208167784280454444519631688927164676442622406096032452906058496990459931266157597282794840017635568560431962174559029833766079860749909717651103075424865134219254436121754974694439785471260524980178530748380658330082852402735384775397119949785112582856683116403094920037874617628201900622708129625597063704682815722157914307756472282709021137449756342980395009820959795238157573160675328780122120095890635047706546430162631013596343562224479896875324039042064731114029399975114029292828576058812318728461811285295457083348059835402526951324888823067311861998377926942223921959884723826793843848803578403654789965714518467006603173969888164551410116230520276098883377050965551505254117407633830122269937743546640573462464579344619240746696748486104913553050320413694644342245657468240482978292384057538843767607462501425172489091160230413059798239602840523939715899656699646398715233997831613381076793430863729461855098355327905887276431448838351355980995888404097726349023555101086187607895665583517435741267997653904893929099154713142688628768842373236395407956724457044550510610775033657360625439160916383632764820321393447624903093442031882826895770979950950759015140077595094190245824384429242558915924841575010840712752953584589737387926123203507663954289145380278399763055408703866287032860151522959506903888660146680257013517697153468163972777527093149090754293517982735153053723700936117426511573504328619349359305938131009182242497906691192873561815520650484085952948923683408723000696517646250289062176113844537384595540228844184165893064256766993058442320313336122244993337813709456970792030603694596494040311332599149954251543669916770147799823648358072127803576011894100461834532875826728797278853548266171790398040953109055486558405078265453611503111996159234777983437057448242096392625755548957856344726368524230595290937850370624575902962336143377024788503974848735536777010473014103878289048046217897292357926262934702871149036786674967042320674814210140188122548515645410541742302298101282287325778809479299406409249598269196971517628286986670572576571231472070968844861702661980781307496312371330008058201257326360222155984593043876361040520762371900214310501255632481976731354820291763817460814886590946567268516362636330610509107851108310424116024945833664010415542272771692630093857567051471842361790012327408565042419573117271641017403344333605390988520483644971051995561484347920125611011978077973050764415556329610131830102253799746347425850761649609912745756642399759075469005809314637186889590862960939555828400789731573443699787687530853867041792030627326855762012604662001522838554506379162682721027855796396517044245584443843015132299031716850657970846845201465825370037504023549489702005823422926150056263807794810576658201044203745447984870747422808565075017834217332410995486742139067170045444789991431131211915220772039482023945618822203236812939009206267122613850022527431327068338606611467983292102981772534492559472842294856867664201846148727142291293472920802836607022621752107861239431747431966073032441878877665488137847746509371152221102924529628866515178450110555501218748606424984467157071896917069252307060452851265756217132600687426572391662120712929390690165465890126332316931667878774768629769741612025588629628449862920879987963047924503411352809480371964120723777470837438550458711005187798432236601181148828163780602082153741870286067397934671175510117656707794986369864459544819972537554578905289031311800441936818797856144154920731296817440322066527352889058655359095575788168752283458647902601470076132471806240214016015912654059613503786583153473366271360851127644941105763604019551902840437355578013508197680198219320761549415089093861557885592191988238793940484894688901272050653013555356147240315644179268800797394431114657050260568310227459775422004674750138865056801903148680183676851977294914851154473776306072329053862666727334537576881191723768195001480379664164173644209529920180438418092174393693525152337428209530663871538067482967337481147296087057351716003046103127460483691107088737729949489137707485505734562371778515084993075195217249680058841109593682195431138336800379164108841988317217634409719716636207513926180972495750391629812098740664010608588711496070306019037733731919939174308584578322604739012488103831635279289806157528855752752089173292324401770405611512268611299017671216500050807073735841967643251296643021661071890593901228947334402189843059268026395953634394859119888713804810203137034407618045459886621398482037587580899504645210551362015910491426331120893622449381589178933820456136431980018439094658380975163861323162555295037142272632003559244293425764967888976197719485330529443412243986806885294235028169208485501967282351723182043888475436903799686462209391127938146888810725038647533027875553044283217249465184239601955957272198069521097545425769469684851695429680795162257578134928146862170558825177657327820276960166211771150647062055264135695009055367872014931118649313198551367737440325876840797631924855087176628811435137096571690556311839035462430348525838270601516314477122349599464716882063714746407610978208361871488643330303023864795793850672940654970314284735623499551882125693844682101332401475974796899555931123617858549308759059790811230329830411571250283316752779323987696083779174118691346838056277856910483106343926907127031970240563493143373602829978999373784399106137785645127706260379254344040601211726084855366609981500974161135722312711692023516032351745305152100260184596271175237992073749754698850379801825576656453566532242864438933236735164845938105398565233958729744385199237728237095877754713088793356255209891340833198055451950676861544053008254001084569004555508425177577623411612656981531346620269121658837144028483479266538118156431380958466368262619042380784662061438850835105231539117956241556118261001726077835911612925739236149887222935180492180234914970981925161892756333749585448237918145995955914406607780172454630316040341313670236169045677443171674732238095327100701295486072177085347758680422119381223788552345311090776059353390422949468348694041427591690658225695471514826899707003889341888021008210982683027940260487112791073645344336005828778971111115669461392052772491116760260307090388805295787171304956333657296950699285128991080539029540511648790069287750558730917881797487428282973225938270431472901768185633332489816892918378891172646045992279570239006829606969272613173391756975024955505995974018277436506727493463376399080042942284800448575048355218843010830146857494360480569918095839100841077775171912703771811972581974957622567663491218158578443191587991023450403970058221767083070347511204093251205935509228941816026538788464042448323045371845026037426733032434933580521269246126355161490485026992805684301051360604496303833428441386988388147208042182836521940835934170629425806500782423062936397607214500965587665956164150588381453522010728941485615586061861164073609197400185838440453585888471911141560753060896964215870888673616532456922775358433745775507820852790467087023130978849830489684830894237076876272605102582315901019759306605045478283733621482557973141410606159476010942107241106166912233595026512322403858658449891054453007207968870591868092495363423089583990583519399654734524851023675624652550131681592504060183801059830130014267257980759851733804228866628177579071103202077315611819632331998431250627693132901898443040137051393977170914626898145849525697637724536710055343155783982553403009753259096077203763208925414688623478216137203936035118235196067658617629644783761957284530043746252487320787905994762429741210205495397006981488875200746255986635313911018106592239700583304711033593810918385792093488010407478664037463757608220614438263241041506936572416775157409436209280681349256536385368248853513829225684249451472956550661560859751259747587803200768440373611588805304102993700851462672413602966094673325144934245573538659640716839685238302046544339436459396558108149293140554723830788181296199347129343536796686245813361016441036194990185737452254961530401444119441264045402150724079139347605513308044439540739388376900361144500467140740577349455771913192206361364991709427397165364197420007068502642574114863097752743229495374030349318687613948144711437566450432549980422287055771649497810362637959914845481556838139644556261952368191414145624730720590406629019437601462591268332563293875953558590661480125001234318858969312487175711151148179195222967706366389786373146539640267162179133725470770213831619444729652796536847427131804281892715021662098627403164754380056540523646842748018802922636546401885621786245606011507269153454455713979133384078989947455489772293533014622998107280246955694976082493369793923456240856275892157079055024664590490825567238179951816891677452399161565201812557814665326824473366657328487149156409164257700916417742115911205088281629464499174871794488841542235861175229452053671615261347156578205618087178949713997027735312310542131335727313925120693475955799592396144894800391541175381744990498848203665279601623285411676079797457610265049747233892001874310920342779731469151022882083613700743670481345515046797432356493393001752868753915060884742198077504144813633036545144440018602252141714093766861722165884300824217368192476180136703672663713359648245131352254725045573238190105432270730042227159112124688912636395373502708916668942649976579405715321621116733004972167475249196080675468544399386426575878215815012218439080875327178976261978362765510678459092041626566661122131736329895033672308480797659498679205340948300465303228902174179692740154168310852016560165700910599510665592855205763790958127112376388880745827239709180880194056356017272963080613004239488066994700969394590097648936987343137788646656953932165457508452230468551069779886443137227879112792926004500765178626655519164374100526000492112703779851847482123838042513807007661572609929510977082166187178122091292451144064208014581775865025959717515323639660655744667333370420195977897947570487416951014156791733385375732581261967327098180032949757152867554195046533030945292974998061737527906497492857734805051584265621619226276029251072479994757247518064986269505629198849343583816765359861592282872047713126789262123541431965161245309603037549768985863319770361873875992910610084360987711600781128432746668302262936046378956321972613628251475810306072903614722619577340000134894400259105187491013753444677451146289655680041700643090703573121981525490179751624081321807125053074864136772436271714511450071658987004610500251905147841240257605689515838915730062389008772683253403723296578818173288129613534879932685565531865128811216597835378913169335786512430318976963832407062063773908979333259472275589738600887885247198849865843499887871098255079413492863931214488985399247477289301164237491018172239080938745626788835282636463639280374297316995290992675711419086054133748392848007758174115940482028923335295919874849673190797852330503218022129944437401565745250854519772384784926590876169103987054832042173289227770670695421034267385734628956111852695191239080787913766482958246313098962175722864166300555398694442745700676974431429000933065291605822144579294360329470490226225285386954381870141653370847416931960666341243618569800801633593335008437323006842002076668088993063746463924285840953671126020185903484656898608468627066279696869017157957720036443203437283158571827435665648415564535187079407989514992238639572653973368216526657471942641464890514661967175278281801716769407031085743189383988570293559435151360679740565647846331409957906690109623779481088313328392552303251674998054847273033526829543031554389110780959196947990072645291847596248268843737042226771902288779625734600913339490516979120878370443258478638320474635418803663617783579493214490901475569889966503999591476068428992746330196675847763873020604486979213005408789467949873608741395324852681176733912243779173647364144690512666566918496370583131533654979298055432397559239302335617288454866656075599997755691262447883966019614965099560277304188512717449400998649879521400717092639936095433228919406354381621464157773641678574680135984758979978089207070717130271846070998287555412365658876937175412333865195671343554349221253392744049995623218967640847388652828125132509725245069409049802935862163719924508333274090238945149612258419057511865206208901134112984796593693731628422418161450798616679321919724848869384486478537442185179354814511826473276708480399406834928550391271091330498740900997750197775461439726340276643106594407863204217128586938224959816601675129147558631357476282920198829229835143874891920475566090540443853668485689972856050554344730752126112459926892406136738349644746579137476769773580086103621190691193374250597234580845869595923008780247042010681943011572474477053497982655964093204220077215188117651885929382300023250409473727371346814648625200706961577205810113546790695918841553470410525265172134842687128213955736468982331814911913965330934238722142615991441036795729939127097949904030004584284690560859674375153158526304808515251196703396367787693224254732959066971819430858706832834600299960937758343994975737854246329855913145468833009765370712927826627355308298178829448373197257245393739511831096914811737659976173789980901329205195717123105090033116225047718597490637846338307451086854269474975400626198049571333132447760452139445581257694629030067091685971569277360126358867079749236010322418272646108722196702615623334769672660723490132956473487826029224066834144507140273029339065327102780255878369929532916315694405294413455637865047668323996880537517685109730750210343184119449371629937751786203008660875774413108422809269964357320267774255028882139296482255346915475045494063354469643464300211901875958032394869723354303442172106127075606687091380501923385300573963321342842314171375727567499790440091709619424420045909236560382168016429945092947678914739226711061795805565562234133305431359336616366687841721206853447817634632743052835032879090790802087294456293327557824503494872894785430588562372353228059855608974730533919833031869176708525177125029014169890631809478017475623913998107075848380268840623956154050997273181867553739740681663190996070717933528991122721466802684748909337154984120233883858127289382309403818479840623027788900161751926893566409988564612483025679040313579267205819560457251008327713355023453656289094423223879478258503567907628966517652345066020061307965698378616216410425090995152254912576344910847437983936993342569229892147999623948250071197587368686516647123741332769050931426584517499508233742570334482237236104963226966098557633170525402157211904159552074294281232191923669686751240500131189864610543618676991369693262733992023389903046439261704516561461467632148249735415086775932581974705267264006495614756241146607732739582304263333866554446976858124757587769618052240155799514658264347255315493212970790024584357038704869404064366538103068896520066155027060998880928450402186349666431655742968815747193949227672262558029235176845718937886116571477306642713666755133563940090861082529252167938553857039985932199113694987556554118204620678014555735627795556955906529396513454114549369773292026047596032615609139225229241718381480520377209403799018749043176722178229021115409388937789178463213403803491255148600304505876786581124403963724947294660303200007444765700819883964750887465245200356308736467612309045217707595370176206524098528471008790366482216235079122549531139266214896124501799060951532273861992953164599603152486919283894416098804454930704024969011858688147652530568588179968226853181751831866161178830254429557393335992105671943764304720957377816173503241314646749035889544162839600604333680734995346731195260840650286271442097981244978910301493154616373822758323864710303271143723775794776762787311099274308705973798626561941235702720653013156896790989956609723326954436094726324698153811157922244664660137185799738792923924174045423452668867281397340263035588835788568170685735974953849126327220097982872830315357265025698629965057404730639495031675163625118959931372423374032621021664289762904330805256201499303474809126368039061536895498123703964262636799884256870509022549756235231787487474252105485247216402735152059784495166825909058558001368339976283844718205676966165329407405507800179616537164094153841040387033706613112138379154741470626476976473229618369459106012769707972172295308085425312145456502774553794993017827325715908492246229870165002110909082295381233045054859076295611916386782428477543217234940850686602226106503652918396778373908412543064261348279810049381393577088397090005698923959232253867147036141070566291261673366165215622866602574091733230946476203905807898076529814773982286543600469160190437200765567723202912178534935768928885381121078980960660017293111844762531771211018187289920619587316628168526935516353008092490399093395597106277332225035709294009871799616673038375871410158869154277111646088056052082234336379460431632949211108137983020102458741058537450701267271418694219006599297286159154947836589267521004380487991251775957552943003083921871542067295983023420685818757574430911821428829322643658680368448216606995890613703205956306380463793439153202774476911471341390833990811319485431080405477771873491719223521528211349970395580207757036089204338370868862662201491488618234211360994520468269497429235402832713685957098268038713105661935222636642098442976689613838538252643518528342022568935775539068947425544662447081058890924383786126374331337485553806111746672898120068432142527860811522894289097448947970796294877862130875747730414612580693455262488305309725509525661572165571834071467932804747349999607112233896615521865925748150971955378115873143541933444562478018936742839966029194652018619569956825093316783087647300782914247539104028207713719627670060702213251614958894324158468423153626807178652743724614549967554076265410367148858646727878712819219945675595446053223601399242485853359150584943203188912199545826277149195735961638773984386047120886903562374620177132308310273041657925673832840660409836780719838384161097030429202611674083973567611108785341088578997502713891912236867228893662720002237746369407592486198295888844564811541816179776048718486565734146881626296394810944683603649827838709822671054736002257267863490761104288523764723423380579715247454051440823932396055539048294949587662369833056932886581610199932279579328135435584060299062359034231413833753542501848706101379059167254696489417209003672217697804932317361651423792017476513876311939903866082291585715090456878051963418563074793997141643018940250950853528149869308415138438060704069447597831087057866774138279840801146758405400930527287168440921688218611985361669204104145560599717889167993478680180630963402493693813016980968684367581875641379174868228337338402891736225620670249380686665057697902939958793619420274561528800253572146251434154596094777543359269120750546705735464688719744520064994711850572056683739126347918809634327284120868468912967583824398646324457925216525843989857906975848787090766656684561467693963142351129443341223356278009330379293796691279809726266860866656394942894662468289457590322046988920612884554767119493581782506402288058981906707818865531415012062968769682560496303803845075134780021878883975286618770605693090988626140997377924396531802490536492451661288817584897384291303136632637538893866703936399887373141715339024131003974520988922909823081138259711426037801019521456806520872723246220065363523368964752083223085922933449699937408686833177266300742297760806024675770665287518631044580315079214586953858284134955131020924657101105173316115553263125465172614450087577228071324320993625666233062300023663926163304330608199291768864797636434243843905793472695562771153104031558138858615822226405126647951931708978450895572759218098657237454860385138172965760612233594580788667935126869741119148948057721319558935472188331720809995105980938171848527366623009412014343242425410392418767834903624933899672890570312593392815818894447846653326805878843824218480832277512986371571954085021044683503752239289284005095700100271445116915825284525648737141478627845579158208538367205505011327779444692973965796161531825116004163605309010484140986307094482302832372514008099271561657175243428601830903280068403919837246090913544435531385238047449189177310979347280214708064419910638260463033398205918125350944125568741484127431011560576806616517559071029681567214699242356233299266820039682493816525259924516774417958564890477241991156264037733731074933076229173382886705617851462273744906709711951449869808112336879754550978218613707885718910144952179118953858306635010261905895639719854441071296212276896958945233525528865752850073762953457348676586769270294430987275661092865546569385945343614806478258044108903606184159644152685637226189058886145160839426500996118739113904336778382894079108156659307429841215932770943436761583309317753197238684210601990510941692354009907802591372412763403847945378109823293927323687865274581773209229930837190337259675254665983359988519947645349920983386397810089997021665893970846684810453585925459431110284551052528434446589072406254532296255977425101758219663108834905068581058512300547022499228422091206651180970204120121329770534220614447166152096379140078991489374870562023315306075893054004077723210694905376274567941646193365823300705543308778774263435386022113019773525289180373543194621512838156453483318956185074592470205884891153742527273335071374810139851002794129197799305813546299616022087359262320557575145889148679727901422491819756278947431479950257051341861713479511414578273378215166161766451638364391640966956525543238828435568909852947959113218311992999934015766776194658685195439021331831907450460099756958391407766957904307766483982520885144660876636126680961321972357179715962833217155786142126732558647241064889744749793947945443791537425314246627223088031964551588669791788324644100041338038115056983209694673857414496552276187473338089730173029260479284213703575978093034361110364267273705366200044077870811162734084610379244895074053855535417749306317938231025448247340118064662770249335404444463697173980729257940555269099226639771871582822324296337117219706286352779434640852143506101605806318808328455009445913848545371102635844127379952074106872685197792925701109796689811672355999529191753463095479483873479030324234392360344346561318069129616712974058615894469569070250296278432079634931092225421825647562364730306014766088660506128170079258325166571755185279196078063015331350824797159022639684083421355934168820102325542747330143298361930557182061021096151219967230910142909235654111123681940859369718970025897415821713120814116020868638633059915331297578063714601985706925867132289381172981793179518525559543432363601195635397143128203965544291600624335782123649103558481187011892124351311610988030827330645119400330215674775957188431268866087185273803300823467987599590652248859933225470775334298544988152948680945179294377472839187442792809743225460865005739327684601930920107205133919495421537415084087875047981078668130952046100215893776614024677281566384983871440586447648613816656338831869189015435280267245008579087406304121080599565548907396536092345276824217991896120162213372422409729221360323082376375575554653236270204080925008253135306918232997060927461374338203862812669153349432735939249165094778495522184495355349814345019851074309204735663309182726516843113730804486286703933425734418562070654173742375215425259781360777710530859743133572483588415263888608956890759663236416514999898077463635158412420184980345513507718965454381955301558602573640939638095644423808594550853009375336023551363223492619223075585652488622460635795167517649621853088624398106246563755672961592000448800352794254808900914429975483633790845109410055608779224772586614943338878418713506709742025574423864727430410178689803482653082229618441809965188824832519075841895702285673448320578592876886245961657584628903542721167492496179328157660628482799273633349872441003801537302800134995864387174519049590935126407153807880688042259791095852835246201269425966437102039667374096109995860654774467142380541997097796927093432292672931927311419207019315558594880617656325690368894722014121136280856693166319069051218492187633614322225878201057701224319144337396371374755449963168500126705066859469754578099040039759399657089158113897297897533494425360000944819878341150954720905136498245428798190246819086830368237010014539480039553790430961356707804376112900402351137949524010435622276681763757351227339278282945509810890887478187077036074387470238702934667883605433422030696748958490396459717652720060408277094739791710743883014933054723468109665895099796988951095919585271582494633477224230742564779021526236361946847156870954647324460555238581971994601005266641655084303273380362014845610991902399518452373348636292753184876347300263701998063813680165004560961166617130791327898977267010657501381532310068221525642172024153494032877551540307598032922406913011102056816341416024808549747508305259134624552503429771110192624943114495338409718598422121316659881726378803115518050513920079705926262749046723636901580702020041737642573166131378597924595181492482127563142478533689331129766578655380666211976129501914841353471335658109647361335430087328393010486662328867387337304698984526810674539484254938452401130876965931702220038068629327548859633428379629456753732393585444063458481268427048947231897164487971091375300588043141745764939637638889942060393565699687121420484513480176423121377812050570643023396221089987370147345875881955445232562274351129811799525962674978644962823193336232932324298850512014832246857607668034812290014668266967741269595286474606764746543087677407674528355888149889675701142744226821604686497876871025295275357789166148237771684337946528350918861600592294305149396005359151174829130767140672454011033349387858496387858430500468807988150366915351254009150566975764816302113280443999220671529394839297886850144478513762155892129246926200100733335979571580564053891816145397493504762407517052151687104681067314268961166514632941057147516232157098734331191659564875922999468927057462603254182004918161599039045886036653335184008584869468405232815803403537606855434910417863352595701779773922716980861659274186432815244767637437150961157463841229653338885172723783064714321647961599752649611804601973755334637414514021586896705295574615911138846279895143938176209456459889259244717648672802879400965506292125922796283506495930865759475897648918506986692810027951354675389672312197003887556042516018888845202964561560892405750693879150529956367445826182855412390857121056040391056606258229684987774504870276594741156160058868167097261875813688586338484848875212666515308330428653791206297525959132607373956221325243083010421415603871691884005802371785696058775173061397277435413780341450704629750697143841749321685706941271030265294755884276695095870793339289322182664325326268314346582543108109823972446858640998059911971987912410453503535574329469115654207210910767953206228157818358945303585862858717224586467233744371113812462136337481852306195890770405126068063408364284272844766952108612873882430130834974157065036568351668704319739626896772131496475210831495578815572776573081796069495700363438753335464200793527099699026160937215617725127545067647683610459665998623401446921094201888218911653613724608269914246467865308200048607962069458869698494451863670550130207028665801870954115208309941396895588240782460130362408645474294938781819245931745459679494684326731371947657042488593601679379859242733555064193321051152617562727919677234280874112126973351669847299957324949797527417517868383307429122703956706790441208704630630944418712673409697272890703573087274312920197641094681709157668168531723539719178482139596653218043163293958343551125244824641723528220269274118844928115217514828724750050280285544571778563466726892358330380104134343664313774794387724566132200007443877141353591876199828816534900895109305048885744468085440141634051303289332897720349693621736037859432943262941125096451670519872272005447730203923812575869527606248388443481429553765610782460656791227273050679016036052670169173656206866374848633061793454885677518214441202947749820788939056951337178779841376412739321951792360090394844404773123966789664962811554592686865574383251068838696093693983772317349147748537444018280851444315546599579372024271314930825610842416594101181511449601982165025663541487116204501014980795428672112544338256517179409783308872430499152738932329508252452318284662678530791313994418851322034359158853278876592782852365262477984208674275638077442532954711838895895949801882504319454057082027207410878447759754465827212636511808151106475338519552004226971253566362405545383901017238691933031858689437736279795411182596987724105187844657991918936775027471973659385694783431759485746950286525258013847483641451415057065745348475355181651267959528766637729135273451081003484532302462304350042135277323508818126661464826729268947637417651186166182785683328398093639100358994304652800124150843344894364531283578582976346973051201209456365829507579351961001810881796696051290271627062880363128163455322685780631106576150092768252758510606889796056737037121003008563755352826585907288523368508355845712513103937616213303744661718639926619131456096271367658169436539737344234760299526770641012405693976458615183057547883859397353149865071736432183837605372171629247684241781198874374084995874456010264696291332003303810889084309180927673956877944206949069705356784400205962605520796225659016750598606322484110913723196083488808150707257314803466211800575513565413782261270367314117851800992804600921968192198206476070577912280543379859823437984019805075462104512970564332143320653622274237396335149767612210319112570325643727123868441329110983157590772287312265698171981621367144798223622869248725841944146487723584194237810516508013106718796759240166119945395645713006521202331765916946792772090872706421652252473914843955099637479700293533188742872538453813688489494922806838471244251345647490439484943775817554072244558208833977865318685394534016653532379966839978704136327390138506848640433500807265219953703565653824662191344066379915553236929408354247524833074710856241617723813394927806159413304514677879167730344751239970842420252465543407236164651770066488669134968904119219899871431701431112970716525764914696385105229929387337698302384008679606266060291854388021243237112979756163438591864558224432402344982344708379565515709265066885928760883416488651323900497922638141423078462353310115184046469686390231639504702108540006146229296462584438504294674010457934414329980802783829501929195079700374151435738943527461627784162861762364974972515104045895885324467566984107551731956474590945915839456279694388952682443681035176467697831723907678825447079797025669801654001526379440331963742021361725012836291375983328060763378898298672285411204902281380509349776899758961825632676342910254607079111241246692513321444674616024989232819870596064655061430861339939360202930633869582514717930225657511438802840293990335201159934029400950370711301255498134215454733182259179807875834463200859899854292257834971439504665473230531397083714688015963321744270002385201934805731652718562121099281295147870764038772863204829971119229898338913668749562907819869587989261304074233739241278879894758868472900874379611384330157384125821006013916354132109085336332679868630485505789618220404066200029769363879024387772783538733499250517846174127382736314068905546091154341332772544704281613721491069583504305431502727795657927095167861126502726778826934736105879259102546977172508937457618001075606088924157232112398523529999680604720006546066508019576098585308624817887869512328785540084121718667020122042897653989972147417103762458530366497934191634757490552055420977472947390135935050807459956184328831127194052921693263309425285483729598693534583788507609290633566388387821503783843512928103982152350363469287645164045768986412787413866069098399954152792780208863759260642605600862944765515739581905289851662104878888838244307535801059556243869892050055256007028446804238556877710730679917397405569447098820364575078422021096993568072281232771519212537433238199670017626416617767982805559407725239078733781541752660938061277406541092294538397843162924096794914533707795262259377773054306175570611494902732850567169899199113419353676546150200210452074699969079572512045395593523843537531611140410519137657950501006944096631846805613599693513155483601939658883650090303058053180770789476606089492513305035619834296065491873724431104588088994889778680030570492447127036109443252458685724666421542003984651266441866181313181815693291711701386155880467622213391949357770070310686683210177789173982873036918659737204698712177912427545619978615821468204903664960562129074449764313969329089901556906239859224351011835924973368150384993302918088104639816468165189128023996915224479004008702036089703747061717592086207024119935942296662750219627976065784756081585964481658935169871987898526332966964251735634303632857517732008212053895283064518353264879363697277932257844686686089320556252188798018397438484971259255258596506375729904900424174349901170502989275468259176333382654767262501779589593396843805343546528405016666089714877915471567699449286873415492627258800126534924069482113388436454199527109828757008962286501991670106607086106452308151243031576458231422218067120622300806433269645139066191649881822680949312899856760392313138550799014532749447749935897619465548815297387643492331623645001412173931034299723101608481018294516321371087523882063786698575983615579594839472444078836837709540653626105420853296054058404395194256878944634444760975346335272836829957515266356799579160207511408437895235196465110561732997123476086185891146687372843188599287172934760507032556226352011640853716144330659477659738163146966143673898912335774979356742150540744181644386956338107624993248386178693643980346169056973887965508886154993398929865630762681557664423734153107497336473905339410717291376993512254901872946994566486125369586043718847071181295586971740763238155238410433930824225128098309713686472474126937981661926339448605435528639130390285920594715919152914776916749024700816191549169828770087795151730063204189885439833698478043894864427478663187645140327339685045708257099844506317283597352949880742774976932459375820999433752355501715779058824502271615352712021228732169046557105340457709967884829424551344720584407427438763682885626125319077985573856410616927060615915880175134375677059232028435175143014427439935521167040430214454268101014140202150213397999278724469482014954140028958372706881597325286175588296785760328667209395444090972874649094789336783925812725653263570649127122409462610355561030659572794549574203140566643701697810130030785174166174682829238375947161443042996003349175848016786352325122017481491020322392679836878550742577088030511138814786294711838738787333787887925316018135950833336848105661156248003186789851320080565377788176024529418053467850741331268872012275175170129576632100812471741201801158874150403776192859879458903054353007132034847899864534390689399140962248666546656039390898827886867995135547158044627422178855329807657991413700437561841896091320931519635004849178993332869990410624939180162991454367555190671818947499531056164088556109356747408352065775472092109702970028343845713846103308485544263381038612626984101895095418264159370046792604677657989804001784411589285252679482924922584239543466983454439188803393410084798155784759500792727031029101567925047845488997455222039174016654728549733137282163167795820264310311485361412812448106996014679959876227960172327954698568020448138943763709606518286982999289517955368377607157941290332150583250480897277829361452112523536796685201122564628624458033902074877259315532237206284899788110595362364715720906153174912791847782109942090271420689696635454005766044665407408388857743233020302905093765496976954860906136076004700172331913689421572742704967788071863860140021394216483494251917429482795938444364146132639834244621800606303014097620256392438449484516125484106018837085879230269804601941119319354892558182826805338385111092327698168241636889887177324934451266779801289230154292962210592223644928679942008191927661534876681002266204613052628173304974001100774493179450644775367164468747722956837552412647180043455222286585986105389470809286617421648418911255995013909853677378853741135131445441472109970222691607020567672202665681887381496201633837948437246726638237651890300944867551529199732334562079830366742435345292034940913803293165698815051678796387823649642972376583126321536779300057413376735669756997084048883458843361083483817296247464621061546568097171435229675775194163996927475485355745723000726876054797172617497040657085699642638684157368309393345902675870635473527045225869132160392915010447389700452498876726471220726497616226942539007531740226419285023062032567378467279915075441797425142038128077048335356455321125476069155584505075882661520778360856258459770625409064198150112842950946640795027454107511091973031574517819664311555859909217381039618999188563444869294251331320547722634442261677488951751085748434967194609251864313326809747144237096850702087961902568768517167289044616998855169698774391410436614157653834541451962703722271968842892830064836970989173116417560331356473771246705777508333917693956887678448897705972579398060499793320443615443737122833218346956466671677867349231303992909965669942291558877157801860372111230366852070139316541112858233568902693699539325945704178127990676015073382988890765612037010042962987193149483671484428280350120042142201354531220163219884587816279361285482177697627267371286727131118151090355448794606119337236296805189082892614329521852873555634688428501528469331432875096563688273593749848398884387307097871025008705119008391052636477515444365148919148962481832463750898720114363970604545375692957733364104342910671529592687452718013849843130776694256971515812389600006138165105855962357279387924081788543297018595252097824038392114486264797952396740419678958595506895929169821100055574100669267621073192563378138880864566399668130057223318414162684634795114913424219605339270072083767543593266160013184406939672839746050645594926066896304416276189953549172673523832292492220430467125326125552785200676139076034096258917856949489377978834405522814421836308823633090638885933951555431357030221369616124206862571842631433425945167649202723886675088413685011825370779627303684593228567350214874666792953232631318312157808544919927383328226365858252329897123852266919856574906122799988065703034643389575628341846693494852843099533116958828890142051178149181061534415335430544489946008135246919149140066658632205236780741895685247912995671810244225824143707815402765622555172180884869724815769594405214861850421468540320500120017256272292825323106197003350416587615144083037240080660016298178401569116664611297999842303308194159251579505019518116540954434558656490015104634454843598578462289414530450411821426128664469379093319721351585254106467726556698311510911909883667500927352854499972543084919101814692486979522863572394529738090894479850019983246478763693435273633272895949846206834661337509518508249112437568798674610232440861843060720907887729490384180320165470276251526061659951252351306157697000428809582192299635918904945445974565243970472446568655554982844284629877778565244738137676506992220210019694040573146618423730357284336363405415622836851761964391202424198394412244221561913576970682579975707832020766731007881188020660558517224315293093080466225870980785276933573650623998443132163425772304532406763565650735505705594676410970255146386568469460311159700877039515669990386827801253570689000192759726646540998739993617217506175174178903285514942980825126252040048567163086757713820440454101712457248839163874291237035404883848774248811548785368477950522253788742742395313535913801216763757626380029326871173543674580698530871998148237178144130275994044442695471269396658304102579001192968587286427462381922185461900716214117392027971755256808365630532248766438212271457793264796383976747218303497282247700567335589755215605234891393914593564464405963769889435267514007276325390755061667905635823983452478693965422622963650254344722511900054228920191780276871871277829639895881019024142323187772644549014356367301445925696815030968208354882711497032769507953839117956042800954207397313046088742705179983442719020164224881988922384601857642928341286378994250908471214228548369369316216135734389831185437705512968906642744517865410781110359576904363446697683785113617349478632757647267609917504158359227261887375012780737921438438409843003928167332985735374154146792101319976911354310101501661271562361540816899254620568872435730979686604815359589215920508121552068166673456898082452050557369429091818865240120648732005161113920412612684694572405337274136955697686821890415121080546996802761941630451103388946313434838853847735373421098012414318253200283485098959043673049347515070530703934835119737580192610279190475143888138354667282149804222792021255652273672084297291343751952331470938549623057414991534621974335935754209868301069274003407400766247537969205889288831859294160274816231820158900607302654209819669129671360031764741015956257191968735527616946410795316886840400954249079024942987396790719071313876663369332577246566344794860361344663081394007418386592191250230211781906127991302551759669874960135211546419200050801192483511984492456426762926512941805791452074360651067584414326980524377106666472815972142798603721166549807197933320939899234169020766742110588904096075419029700225770000780074097388172223549897768987528762727387747456610925736336149853588016118600710858205658355724357320825997906548450522492783276189669313429162275711723446716715920311986773351144358382879450989955464590618870000836596986082375525661157522157809891306769386663786573142224542038146834309338536241766035051081265615128612981689161627828505506700615993298705690211055233301749914534406425143374062212129593247049513303042427265414554142553749131645443426784771835525290615164203091282501670831806008086375057749260312454933140736147566297702106306298352861110927133027392381878215532070015823829679970425459945894703633622149658328525837139549270149500795481290006379563567815032691505745232192173650045215076050999525574053590750798311284641061221083608945216009013709743908589595445050623732407715072314902399563356261551776991275825431242860162639596862395192124029227017487589826824284795088309117372464009411558135228328237908828496663880383924046965628590384948229650182557967743756659067484951744078206593352196193999946050215767193951886171586508191156680318757431247073029056856869436993815973644745896263996960439382537557542002428428912909873202871984887527020556696095068624002846399890578660267043265300542434751245458530632361274706912727891360692278388036224032269249827815152126435823406664952244418199038182690714311390892136499739517560035589825756934336143721619732833339429023531248342700142398262815080594296513751725206675768273380197737707579758456061393466172380827122429850890690576095375205347416394085951500966329463258320100093020873976287210269099455417859383222972619624018007782837237946518770492094111788352990981947304520467627564099656671948917321726937394050169963675920913013640004562732651328944654055256529807352167037069172623039279093733235315612077024311495505268385018746086003241619331464524627916989759553517790365553020608276403983218886484908920715490129557705881743731735184807988820955795595001779238615169531691634615269304190073259446341231957127516858557584008009085596500130241503280501328499362173368445203511185553267708231357847851023000831936536198835344532481875614671930412046862994820743963726045743984808890759925718601031227710949852841173681259271036524879772672695243398077670422794190278626444653855498203137813107223376249081448824328402808010573533940757016623354905244655715837979176227115371041475817930177731094021208119222610890624805311025639614305920345943036012837309012088860923750059204346130468417617511112764773022984097963878375803991183275675715944695005009029276630393001453428795127680259293189965760796197598257546806933603367107628525056959437820465930118433319534873854866534241066763200307881968529659523420315753851830554047216926500504655355270044853520650630823029767025474555030243286624285611514637537474820991432101663730635664776360219520315206730056905393645623642510851545123402892511246548699632948453035034175515828687497396797747751544575161660013350562374547222414764276576887468347499106402110067537393304039113439005070160055592356604186967292346279991456814049842599717696829639791927668193048824770041283682628840201169951917918457581096940383398881977427154317784998174496696151464035512045717582483940224380543506927294061703923146073444506145568671416713319007822860926301864320875815323110868765030446035323894136912720295814097395072063748793121122242338935631411158510868724403845438380468805842128493555172496227882506752661277347618609222407508186364710899570580758940238763543515259347537270633178627214879232563365434965958946236554529387530939545602758419241938927358876010776539921374446916665894787953284618586017796494383587100835103174878331141195825819857754731698098300444194895190556171734852620206985579414778558709015694388755663045116724988069490863173543692770195582767425248600455802421790441928489036819290112028810473063945472857521515217667998546365506173075120278826905200422601693427674792777141481118100283263289827905890161491554314629628845835254448489004350768634483303086505776244944761877676964978239106528736365553641601244225872594388642103913783342213050023791897549063345681123172807959923316624116262781947700762711538363510386614197521444116084742596942628966386337412961763445329954571437973332993065650934331067203421476834078873286813733378049247423144142775464662898375450479341407829158839254861861666822470544814621583960330736010237265959116848746376227281949551909803456890886893927233174223668143430352577554561602509540976465889219115466526157852118938326598701008890343768208611363508976916515940703145648882561948880568512402488058641512038779604134136926289822009553812107084880924934677680416792699361841659494912259619673559889244745384921109497367985764382216141220997719531076270040916371181996049141463269695673942150665126752890366918472063128388347982258084116948649523581648960965024985111153726110511245553982923167414805831089153240162663484858058704998147752291810630904630400900961650460089377301979410659553942929968768503388261654869515113628265562168301272156271736447537389414931251389107083744345244820709423404028460278582315616719663034915070333458963658181216562005958465705218327006406405684536614761167486792503523452880065609532014845680350832578625824834730603648856898670203842615025582745478867505814975184348755513533670431119261941790121956736214469799851183409361501719067038444422386702138998282390207149523305439828457690568062853174896432028219846297848824500131816700084873545591196732964187566869831593149328254207404424020917818369057901370863643236996292530689744660987708405959276198648419740480161454020288752341301735489834617725345832947067122678862921945230766957121666491847217772097854815523387327550800397581508724081374786390546538665887536845954149409469400286167090428871806238221013805356557361288404297978097737606750359975321500598583357439548642960400443556370261956803618827813977319997096177069674912394936766874663783346961801346022917713928108145277695130407814819780082879136987080247995001093920006225549482950535358135743289223651195306177951313491773127073198669531590670806732906049200593789324283969967056448392841759537049289629788525954975010543681904670620095787655447203756573491638974553549902884234974988575281594712949812720343107648621033101318264213138650399795130365782044410464874343394527973091284358662614161295411477281728386251275537928410541983998756034186138761890471107492304624863668685210591769689143217948369869854679819239003543940968505705978898602020597624038580511120194675476740700325405348677349752985182367197926397837115472833391299797962056117456297385664644384423937122980863995124157772123293965716741755734480345672992961215057334550486264924847230303135639965457744869126585336418974471722195178357666226208133915938978501332894797847028078422533956157389535901514517215866513041785697974218713324703514168266492265570217126286002938182814413801458888190440007656722738282718518469973113065540788763573955999256884941807780758108854423083455251702099326246177885882117345581188466836326952316716112710018642563190552658412995130478517859423971027348603275406502324761886816667078557396792631091130106853085220444127665847888064931365982816629863053860261567589363137432335757107955461247612371000447993124107522739774970723702358444431222615895855700498490815367627999190974733994679010492123044905457396447374615897816733055154218872439849983114926603747559169802626945874127619292397031170302736025114831874155452146166701349186991788120421325764961371721738079232653712278844065502990800013960855382348366606768415725524563419421915289843253177047284860320085018930309607995871454464814534130121529774848930511418126646609638015374770926021516237796977547262408820789867851069742699158484303427125893322980490341361247543703468857483777832713085582614592270803700420114152933411689136989853517571036822887720603909506481833235089948681516880753052888384183763355079402706776989251470045634011703388088747899785618059327580387550267228549390302413732719445313400748346324800670025812620799940938902275148752065119596065001761051973401002867965607743397004615441153556029553372220852822876414356874970772738168203290118215842651157171709146985083653484872525271541122964483292802897454609213818707152937401972571788198953388799487292601263310767106546327306072101483880864421231846515859891070232738862186105494678099020161829351866219666363312811029469298160216400671924717063707470348792851119776666991805057307841149865457684260303616408944661040408399733390907636340142726099033910376193554479666026949638789377679881425211858263688939703359378112238517110405648690189140569740291842577591249415774343535456800734756608719631405415783921559408684711358642773706008280133023480987414008841934795023958956692465019413400320030390126715404895685037901156518879105129779353139117998417227207944486598397969356830949522249594005292541162314274310782491748307847727520974859037367915193229416683635212294673774530274708000629775906188347147467864415186827806404674024498302337959124956623273979229881093003939720953763397371108787658959278839853791132981470783821068996180617003552684680210148450363987092902383624472290171777956967601675932377741445667599254839655566467266094318178661927340831505583668683586867349569869612130471483453321237787941447968683533844204405310420094284184297656063200660822389916387990115804385171477274740853928468741763429963378433309566535593894838232891914359299807505609179657100101759213535584880200612247628441465986921424145722472208333454647240167846723644527023232010235756410660999963263248760331938187964835979399660715704585815775060495809570717120851135079407093526566606104215104630460959290012948000577962299181066084185541910646500493378602965155981917765365650251314987404537799858244021897487204854980766546329516304983671029001377492822941944992199348335069462081117150222895858134105298366725103666926160421448401556428455751704747903769850686575454938677259156238057981113027017816484346036010267139601482003845691609418334576203769020401657656670384281252598182534539999117004813380543721480962251106659062964946158873244952031266859332795053054266795158666700539851207778362633340335870935749955255947533560107562949524896505615663224064560538454249945648637563010422814886954234167296905675355025509936086801566105050552232997269424578189402624772766512572521689181433802830821557628508952376402408216821027622780948429749153588472276414223200013700886500426535671691446944057477872575382598168429243677122929532959389986362709050338561784170613040239757323438010413845532100647563943130777355296484291532112519215442518639577504317103092716621627876547122268679663908833027231127923443141793447874737325673508173025153141434168999553707412277659813547057230481740740762280626620349108911357984753341261548651488298015606728650851077226869372640164511360144272547242721368444974448911114790288364438846778904576767707196889293493862405040410306418041921359778873223730451388464369939465642298430236376171385823563763839215441563032855826690063906572539976798925087314474983875903699773407134982295059139212729213904987498564397756022051503895552766390279714485704265298175511698939895866141840442843922853082769935125075031072009809584857204388060022090399602801995262949845471882304184766916694537276778240417082177060680251710562344700063011442844896847225566271974555383815208628725243961736151057852114289387382712065350054256067001911226265998260244489449263347434769554851586138411228053274466501851865571370260611510586264476259385230755583071713583291857486501666204248970551227020503814538074523571247178153404249491304438422345640225436393371093695539086467073524671968643444828052138938350900591423095572271036694183385958669474447518496174230121832314949557231109552492785347228634382563108269280403612522924995568885746495243024528149114960536604349568293935147668140748125977084726655304501193261725408263174528546344853370044427251226779633119309770976835438865564682636069719837979934066140030607031290895108903977468377458129881226241067330991332430367771028034012933087260101127613974102262961682439505859309928062457850790991483418812229470815998218566229057547007873137582438639670272257388336761293011265198509982698436787001213242646365034904225431268090134086843163874089899952204959524803795624707025013529820552532820152296275129108581694831860715694994773433624035966387948085781790307202585277738560238860200439717141202766258721070386265548481609743242649274624420007757029390858641887358462748201701120853357891493785718270488105623954813582195927462777148802991014370151753976190175017795904488547567619758889940277562058715117159920811614995337646825313943175832805275279806384858138629464746333389925788424278640539812917398587723744003131522300061011526870383875931484103376678535293676827300162884642891069004859559695349405571762603698288215462720790291743955332982096702296280143663810950476271255936573205782216338347601802881129178149868710286655930298369294369210038872081727029303467190090249500488233611971367139659162950705542139873774105461115143476904597165909654120294732854082888826303554772186600236028812495639949514396962197820021853489886727360996174531109783707581721867148642655258425484355727979164949301259968265987441440938056022033398095957944070069240375147472867348276769282972115980348315180683888478505646983494121684328602637865091528959039454580817509344241514017013766905741236537233436538406166521123925391214435178662314444653232601841203883264885577973354371084112727767103058881525472218686064846065429551542381567744677417987285748443062399391914879649250141045271955298741437508212962011715929286785039000769651745296784083782529420807056786654759503023400920945954167861964354546199141173081851512142655710492752913397904323525583317963066389600908358787424510575113099752661505965384643154714834669151625851589722464080265496084692612164364542594148991058244417991835506769853812383083701340566169437890322227278661708208950869849668049964717478418998425616153550640331235910468093866307404193505801675578973833716014526102760689172584141804497071853912301552277722896767284114679053035018004667177354832980945787512680699941405641387158575590791525794286865196128615938798647945502099092511337307968450618970846217560365646923548374969309453987257611814064223322831310617268162985581733323866264610879010210419225525509361093459145560080987586513979897968170282727100479423525792140199577009419324729401990977551424694708553016171808015653725167078628920211699757749428032503303769483946669987842289626438495471767277775660726858742125970911668890632552082732962897960964896409744069478222255177160741339385568276927032869902887945962530139527112520203094799613336412147650436939856797230350814086797727950729800406185715503166711482089869595293866723790761261218872750025584078940969847015078019727300099670624126664788224699586540317140440794671052547650587732758377665534949065657243153369222687823307210817459491657870774291104205327121455924345174907246786847103621782795913222742446701133232987351407200154858883729497832916768510086037728405895939306983583010165215546304649396831075200223017609942066905474362347652074505787499399391707977911759775239205585971754914218810444545314984723622857516257931722403201219184943668887692812571445994114590320205297355995036660008834958815212830086493004072737140297655452404099517238221120836119975596403525722920940838614675638423050007305067310474603576777979346886110817023782659946379825585293938239558092921377262242674901463506641804226437381014123242304877482530594581086323191817241936284972276342158937477269662133600168248268801367593005016926611633352751812362125430139110227694632919493855400927657574449268706103274163411067821647392030596872696892600394208087255617456504138916772343007388254750553421229874797170811128223636465962097143643629600680554383304891241980774422743218143942148130565542365308899061155349907754459929621452058436352500145962788187579075496495011740805385457345660702133475427313536423090236142768243737455444975556634668013529134630246145592785424238176742626535662578589145341648476338915367945416465538927491395637768767129071907693925922099644959965696277142664941474093963120885344955665786935108087588643147673835956929393121234660157858145713646319579234201896528624386696255395956243423529702604981126612449827662316960744581332778992291042940358712542187984630549025420448175625555617509354159475319165569689937658280553705070716375349519600572139774202290086942763613066210360811115400236771202848138868437470362212603955831151612624551979924205872510923390120244354458482347927139133143409223189885407645040167517451237475932709477062404266090630450511334614773134005556712690509372576135622876817579680021249526920181932416537041693105022691760527211130358821079890809146777756913196139740336853266810409939081380444789505409601457267746358955245095225972386766128026038780847896726880271644696377377989768499921662984441526910743232165430994690056612106714102937864639391283112135790163736212749013847743057541566296952558046664501230330663397825894662837827851177406248618926144802760204471969380685616552100589253362645519372389984615192318266889083784044930973115173707737449078400901047431721864799663435163348064827540570723090446734829355332404192569270457972895895394906274005417637042435703047544592311459174173609090085026593476513822415203243910727530692774448258583867324337502250241533354933586959475241291522286072312537153877216136699395942092685143304096777834613981325800282569711476758568859454154060251891508110589535584322728182597224524790325696598005516476482466487170034398931344650655764970220670004618833051506035518864863617674186389316376420770901965814140077719295962276255934698077107585481974494386449320564021572036886503652745503410932940833243558119471008222817577029046479038911712726857496255757164378251746081137440645592648616576155483757474503790274949157900384564302373879659335655956243765291605704002003711589242450483884591964642833673360927016788219309547136839154112215273368482961257818658492900343505598423052389750170668108007061272262492495329279407941215497657223258244842298791414221887042306475034314156053165547569240470784893191116384936690320328353447843404950069750997957056158040958636757751465187025947175148941824299548506009642647978176926541819970744572668824434221895498628257720147790138654151119901092684195102917502835934578223327534164076524691361912684637486790707561708478322670802707039607526244614577896261161684282887947519707471343269574455034357072675753514153562903957535267346258707655455864549730428506722500111563175595666005977160091124833802552834310087367529010345796795404706997254266724450697890397337926944854674166841880952154460431751704955505392842747130294885083071987558933485853808491595683874173223507453133450215027274817573641918424803104413757424033806967506762335088831498230906696037653387772059842532782643120407580740044537281054533352578452542525406404916728227202727047159565053970715199125706662017023205795358743627700276993857179112862274934843510143583401413247254863971744351218554505699824380195822169454921651844841012669791071960856940668849739961828738225550017847987337587826311650964991800969447287949688225508869205451500084857509604461555607525748283847237389547703668737807525198949644830987012565298214398953234555640266020218700186434543706025923088580017039823200725436482929753929256637815795172537897100981213161352028026984869203870295685644363723408635484551217544997346112256613428372404742752759425003556903647221311241645795383634539262912020675337170133183772039076612878283709077514485946579760368876515457091955703530578899790977755625541885329819733812449860453089603395691826113553497916931430995244268281997987105748084697487547046444231242670605076941595364707402061187344894969615292276475792579158727504298570322043689478480330768462920687340304202182479265632008697416057313251282460600415318251801075189990033658739165493206522844366157993801498936462843419663764787009193336553962326379059785080269243462679681282983567516078828176318228846109662999941212061488258896349853211111508123202286151528624735565041265670084395995067443009406096670482367019125431003728179124594413720791635597983654724009816684502143124313929173570880817303553949062861689871072936074209950746463997586311382915013016714226385430107725628752162068293239724796988762285359245893807278935724562243921506420567974485651557074385737316385085801084010536045903617678507145277647090551667757829698906376892566471919829491165930460892709824867856426406192117318008054943171820148541268134453482112621809950970870437425513748562077325760717789045814416551772886715832097150283718632599537803441538823261502894855868276847199457583919300141169440508896129804573260840033723057113112524764660913378851929515442200170334269929927433669053002247239129589640579668945816712657316519518354912018461083423163743655938083194826634425387270828840297860408708721658984851820881586559788098265168268108984797881243495492864884054585732520197465333462045412165013773765628867650242924780447594861239860598221504070498343802372422490429493884717113718954096192917122933175508770080869415483014900521137358039420831422715202843070337596331631308702467376652306960640389914957435945418189707311948413385721949063406874445303542506582621083706560325130071368331708935897230168730151557525182403797412532877467063029565198817100003409944632193599558031564198449689771735588014013885349872858245819693800235904858469882865410727223901841435006140979026282626116334150636359579324666315939061223808969235241019382329606475810075706476668102514696446055447300233210469777462089333929253797892417900395740173082418458476395779206404159685855094375364771888937468616516545096241385634780771809905996691891323293115093799264191262963449423113800096180833191032518873844203609268485175874458421189616827451765130603632617891950251844336597637955513682594989548059877588635962417228166553983158693893275475137940438660772968165569829246846331147387681845923831656921407019458276037290505624967058186044037479351779308591409031480854494257948567776907796530322686651079340251894215127759079539300183844951611109094517348013043894819138378134895746777797868907522465014827157043069934263203330715566074608638070571618875223875491951879185345349839637049391750243155007342808326616758738486320266054903432853688130334539563182888151294443024888664155999537800983212175324881825592646023242513967026221429662180917408686798696929460518975081201941165588967087592985042410311588069936544499707182858057409339119409402357703438906105783862974431646660883463646130916598347139539875366513836727154513187217380538701242283382806903776335726757572443375924661785145993526017932889383241376075668293844149939924373135231717447610504178450290451520786231487358517958854648564555555905443480545729504989816541959559566247096950696702325610771866598947353555766006744333842864689883957829480772915529242291699213501467220493726120891006664463892048342156237305860127493043300364375326490464604855445197130609902597612717291156635080292569408663560270525669658353977507483653558690336535521001676107951426034689889758251319015477265044989332986210864825000790144877531861540633789414312457971526093994980379762142277799349939801106029408025758542018851612700173770991652496986560489719995807656154885182351443334657743249184350674488446230220870064453843018262712200544272124167497076171519495072150712702166558977219202556270114456485528625370213676632196846729427902735673807738941983777271266227704790431446809718172961179693366747719971213859960417068598287021844007271159754675468762017315832350322058397778750011161686852268641595866531126730193685449800365545822030532439018765442360660064933795872245193438661051773738331699279832593887258741941999340102088585710819129008943980349483439454322729658626875777745443499046365769542382832091207592270095380746957915815074820057121424747604173656048869506802996067297453780433238394152418421557661742122550991166704394332747871498770856361525084964365651818629420268530447611459463362872076569678665360465150642568090685225113304424494856523068105925780257749735473284423382506451981088429877706232601241777980484748689403815524428744838185183727757786779053421459181467899907095547093434811064692003709471602081018512084914239855449681435114923179710350203588005540710138964540015373040494884440187751017956500922665449588171930611161872705633041581776720329669530190278405634723537374651444133926781278819214810467645464425084279141397255708889239453548849069717834879343071079988577493862178858505071284715770275458563084373460544177930663593037247401981910810481812195761684998864236457727901546370300842421711361869121141366600199542948178551475208472442237639186061115788699577693742143462040769866757848339455993136914786095627732237118158394071443337430333874801825164945864118940652298996115278333703984151867212090456729506213801302742651734748350823240271188250554647531850389549646260161063996023457528571148247208550813770437735264736375923072993883011143359886837292115689511722627268929474499473210310932335308369193554169851217786597331019395544070508843968194100197293275876935778852157825604485037533430535422917835807803514402187177802746509026700490763362474797123113789987426518667669621863190067310964255041797467022238674106122791835250476847781113276199562034798655425423212742495998089895550735451649835482511361624688398308652600079021817065307796975425136981418383437693733917580686968043857993235197003391547794084051656109016393671195194758787678483643855541000302754763165593942667493627737584514886970706484670336802704426588433746347492659220740244685364511298100117244467971756062456925156325711111126363738511826166030456236480738705157067252713855088026780516874623688740706258484202310121610139501381064344211685806360695340085972233924233619691565079033222238223121950293213165945828994410544276909312261426362191538214536413831840857103782069738873362535229020792690879611740101881189586111739000010990192570469967850679149402427769719010623884231545621896527410386752600406133112628558240244864507157689938835440634869079579155675057170032117412677421419490895444091006645816350063603642696123864976156731065498112499789662273493903720887898360433626525810288334804882723617899523583594830756308203721272335015867479660008774709598876512139154991704443862979426966660604689728967193070958532576709683804962332836185945722852112295426424337729929696368281470942250347889833599644398080878972319933743135528881274536984756853416336278704739874574658818634806847554261620701329708102456301632465178448269003662459692904193575488731429233271055328549270996145734113384944132425510276524348900127286835824938432633861100998221426850989259885799718109910524343684903511921688649813847228234953685418572500582596263476492694253548847437892896945725895249441602491981461380724321396427870252016722310620710893727027965250115987465245194543760206061455064446787772075469660768109760165677410650174389954195568318835804002685800581831761724655268091790970927405406349760502215038723796197441264757644386311390167918859346781754660034621048179837507097163801584536762417959276750804052732617943944343876032693224784354281886412794894390092369070332667175741238271182757426963833103700309121150554480397806646936902352632907575374312917189042372824583009912610531869438167120593345251311918994911714384044761343662198046147979564696788659460051229060342448543385729198274977181645959081557614511187315650997640598439062905500044372615113314809686858443195063790215572732247612076057533758426941346546667978851513925716734551094885273958111292778775658987580244499580268435883377966705500143830998158950828106591062502760606704860570859590926441892538251615780308438906513053829382912901225675637669460557276821216135260228676116808209651660755969628867251932296712848262793484259660478976016427135760909703203143497422990196189679977111462116478606216697976802096363756749750420533651493424099060229963027607096983706650667817526244277618304370204954328008441446121771178550717596259018202040275315336566917800152569614568786572592573121552931427479853437291446468195229312369256907075483814105926999910895287459579252775341568557969864296253195052518996407802487501154944757269760848734554302282538615104773220019660950709748095750883046380303734878311890553368470128365925932508595249813508156090289845048176685292093199837020586456152274038626855535451215804894496493834744431379900220791242254581684929418447978589802383717298936424713326228912627577556129502979238844558603685324484035702012849621216264656972050732836108552833626889321528231060354975496637656980179372510422388839801339065944572565961409558110377999578215601155124495241953277438651223041503725972804366855300319653121919832473625211340827603302381209512090336725937868029865832664854457203121827651277601776623285478621405587421192685139639939137320767077987210739448040596090510242372884918775895331045514991128172271355190562914528116961523046749188964685572234052022268227899790122449869278694155883743815114860380701962751245190798809017000799208082737221481571847626938233081429758206307432439745952060976846110884930196455154813725150257852397704976671933535941433741835694887357261485348401621694453085571176282621141039231677556511155436579700735089932985678387412160031105566327823433115892616738418610545512654755965422423029364748609490267502885905119641493320765974560322118994935517135641668354990228229806964306251577953103853856539770085493182295921811659169012584660847971093710086356720427696035480196626069898841608045675278284037720062564568110463064204278653772982258084969448779241230128894123616897464946894782040754163390789133793708857614587174030373512360997884749928675330221909785955100183874756278949128178589096936968359235794185423383938438840211887938099926678097973247152188432971330840368935202099347377831828024238834278452927181049636256487958122961678332812917026536101851171295516083933837179596371924101706956961019917877068656980079969761833317331814054412458627334623577647097451093365744543537148153486642314942245156643903170388656730967409109250575644610623149623538008847277063576455127025625545052242817606908932093870307021172658288176446500166576323861123038678316536681044588948305439985575953409369314469102811984078312166939767575515102275444536068707760554418948838852137536744504053253864306603422949993304784966161513555667376116211231632961504953862053128120153133338708941858609938296088718316360536254940694657075710976159657588622388520540616590074264754370869173810476061724248854257139461267889342393977172551924110622565099107008483065058401461001271118569400658722022608997329234569106781579998465278524247382537074780689828633515856948294284773223757848295000190411243828667362267086960590152606918526283593258780264649409247122083423368785425646379369918574743227839293008469075292052420251348151541733577709050326056972409097842234816966036353525257240516595082814516366046935767489937077251572120809954913405271343063977172204376081632289949229034278763928338410819541496331822942093653446780463084299677926401494948369587589200626277136786258813613609540250686360680395015756347708698625213984720714086729550754278675027890692298303811836493971089573928868580834703642510194569302153485680953396664656482201982928064313253491727677409193527514651699166548129444518490261618137547288099043782775562456740598588883476756131014113728496741614703982451833325521438824669625242451611028187686932328853371982494560441830331977428653851506822735770885020522539854225767296237394110432773980188381352789338727305754408739681456419467093483966829691629490011642603756850214316629213441166139376243489199476613978387012607881973463759414558963348901673856620395193395821259970648981277434370660488102338770599200784905656055513811099662882200593833409721326629305392887046731257526066245086628672818370739831302600239673857614208882875158514337205717214581121241373990080461244773895775254682051712249296353555779805211582856912198607879820620309713985209324039496928890130460165928422775665451098320044389720601752546219191727647857806988444271454157635150568531817243360700333646855002893526312643521317197488423106009837722753338697295475063590348060811840948400635035168233247246036632092055692401360382371493874779169839445879144326911662332841348108620279444203206328649187657232280442833264950418612669912685149145413009061414282559899927022707014846828094527529006661468048833749314831466428752433696583040831406803208092960961972234819217703468701003001926027073083307142490641101647243588333697824980923054782539293085739199078171884293399115621659091179752951729482898730818538314843422701759266679977983578797087469127816774838718405686544769015843362890964725422529572742791775944312376170914580329454218042342931829070949269280429473406609249523443015170182483728545959658282848786306462976451061079676616450955565023981869877762730876375907406018350964349735442151401457286363469632420581545398491676724432271242525823600993018431707763187788860549585891491890957415278706933171231288282937897827629032631115799071644733432024106265544167605283920920894879322641413120363300150019639089189027819431578494695133335262984998016112323436318529002739491448190530657937560529912020505006257060215159937094657546283683683250050047799502249278904754786004805163961614035326119012077984749721205330425750071812917099682704610606479652898291708662142517667582257600413606759367917009534109966925760575939067651378965366690441351218549257793599249671288053879410282680635640453368281717344568348433739514893593797340951173104298794496649520646117978839730151108401599047496741773548289406957196397818208669819838675770073589862418909951790853497027348567826218889323707518192650110608971954673979865998416556258915215557849459006657134876190363820619051824014392854259852031291587388525392577037742336963473710985678799452870400979877290248922597710528594886329874150193076064631177555020073548256637262052488486654129633437656690123976761160130045288932464055660159859206761947591669349329798671834735743380021235518478047685104760445499286104588565586830450898529398607290865541926376133124423642445771014395596778492610109234636254728131634806053711667272186055099617048712928717413242431437597906133327861836587909944924647455653055593535050040058275547087967833931119869805931013995665017229267494868650897076015092746199534451611235524403222688363585606601260976856619698752631639716608917922814635114930399036997221176345510521526034025517482946798908195495149002259244463209278142874835691494134944698269832167382172915523777365594386809932801582726962465754467568810068134806297242903419061469797960204390106512159573380149990913304609589173207996378858749468844055379997664131986560241065167285574245805356196448629680106194872124046907999431448799809339109484339493830648072512464571237234759727826790262091397396992633885904053141973533176920723842102315510268173184280893497827132931360876238149270582943517213235762346067956431551428409110976149425451720513457621456697863360565618902655189718669270426458538713248082622242459243895656309783354094325006955716195123917168795643554873541273632973038912403530980100057297124568741447995552568288067561693095878979390660154329714140541853375269708354269532300135073946786633222037360692480160850166622842086392219039714611627357118195743471620674736658280709250398636950119010302016949997977057362977758405003996906356015409667260038889918577391394300683625488529885808826261745290805223584894913338745121888399037548528126518330785804765366456737256313588659365103086778783297538718151858080930194282826612921531461448905262574503433120821486992373326967023677897510206960865311653588115499095709153619080249416874480539389934654498188563880839040813834820861204627271775149166654566008661062516417830469663620057926307834779762110699845852565940661296942922757477810103036954290314788237601580806983356525724129199394108389729401462713206151349099420489262806634619840809810695267612877248274643852319830695353504799380729600681033582315786077273218846180046275482404469724698981961936278060093121920776791234870024193301682645915914808715389945129773887797937857355815647092166698041208533909164541119917827004519381694830685016498974115102479364164777667136200149359084126618584844572965394910513661211106855318169303438586818397618781972221502757633202196778736172617401361858532091731628203511131257788526891689756368698361690073124432623195689937902488905550151595148939417083106279788775254359103610197642563855432286513384102274128099480500492224353437065811659592036093383264775349383088986621389418365232242355865265725914145775254276524413020739450792753955278409516464659910998735091195565636833946561704085582410099492675864450019262335581678462736951860516727048170594338935117450165164485614831743767086197431351628052385873534045799463118847030198456373366271663496962745764152167331142474913729031190888935028814463303852770486266080233466779606740083120669395987248024313068835249072418418510567305208342619271988251486325402364493539218060675444082647387073891228107741691554375189839496832381798945021947911623018117288617565313192908396321170936623860223135216682656086357232002594798116841062741260346613590030727664204501944089987221358387892324411368953286662433627989512055150482966249216742164013571301277576347012400360004059796261912650243793277423533700469367989611417213628318261292978780658002574713268213720695459084391933318525344545949344201257840504604312338778877186670578137743997989629890287366652172471459817438663834871283214539051353316058331246502346807086255747595544028383245789899665015974499276278611029824499176822764557294824837298912082178588179855155377023978557592365105450306050589134892008220716192641018175488728309819953781424026183061873027562670134176120760023952585555299470331188053163887855810899378740902196945846684342359564360045052180217971706700019532435423437627071875050647108291799319407707700581192134501928151335548893589459099585587571332728727357513390310414169892538530852791659813786664429537445820622966159142072828164443350655563095451508429641476620080913642108820913721293768391070651195329159140566374776349721633952988301162142649333784879352646893783276063805163350328495408518470624503040908275854347053805499218109944123327983567207375070990683905958796213054623998117434157327912036503313385436476170964134915282740636238710447198615785889244619048278041403608355238188128407671818384736868043572077295405311202372330961050476827066349934313282928076551483642211827691126853390280036294925945312608323219165713713488010339916452878821363732744570343755865571704928026573485704307956868577747517421026795773334668134169852360766374701090155895854413838682313708616543609692022075756450527570211160227594469933391072149140842224138146015801040621221298601302669857447089613361367057776740769131550421880038033090982498931866645683825061555509925095899456311214554793650352080646171433545978534937784098266343117015927115906581593751423101148579687976442531412431427557951686669923475543018772855610051847575361523739540056666525886844695483441250234785211506633090964053788141177777463494700836484390809364950086252994360610151550707665559437556095097456863154639634362225316810908516791700381820071147429370389768177094609732203946688510253693013627925776750995138037165275133495271510428351285864686009135563087700756675543721573550250331325374143460321055417587307232350509563615890901314792022456510748021724129851595147097433146740266546539744741774697812607220389086302706914811284509344246108907944965246605667917842812553529612946203876804211188065430881888681222119451038215730990715127676469585251593136271906532115715018638076385468436642362689444881121106021089761445817689304689094283346055921388547505883614731758882063735200973142791856918835564883458789197720510826727369966928813844622676112894011938032711962907517705132793158238716599769298435219618252416069773136531922640207478636134125082791124964631988396965867614620315393240649909816756897852700012848592429228447587902354289339461071721113963763145540661825749420568473911228483838240006474862995507356210972481613748923935824975543378822862272303413588607549551526280981243065642907077126350986501529481452564194363718781060937434104182666521903635239267754134054628290051829823518340551954738200715596114672034630868756629054379347032931316172041708686294565487607907811903909679679184967023839525093777057221999284509795973654223919217821073511152293341393932196652280568341754026137494781505460152561172996326103076210932146588229474455140996469096666360200062206256032608969201189232720147796390323621977617747047723552589010200238778074663350531248586092594987812775966716888825465973218278483473181768206269953849670736792053793716515977839221155148783275868611274103056094466496246704092736283428069269924642787268678317507727952624308507264662384338724806088635789298300410854238995976789834919458857050289491560100568649754812582377078518593882246788505746482589174202595883042201455013717320814843546102847773641827208360265708252289771399064277326433478125632900306413238467729679073026239285486234558472371543360856843667547781999723446854176363552263679751917927800903905505870787887021048949939924874769787741205564476037163452353325556646006470076312451841714291239764460427298558763617701478722486755639391653788836776580741903819094222614738765628095205294832118727243008642428680656457557436602410945173059567359134165334903375228981016108604037280934269047923614105750880255431122149056382551495757813418291162458792882434444516707755499259075339840550401009025727905381757244700744143704599576528887595681932200811433510510969307840855520057631701211480535187751038132918586888777373493754811353014933486437922646156534719911891138674396800386690394610749015390242096133824111567814390456638477129359451913332322253534528832480149518339045009631582924607314168568694075097324076108150477953686121467365229794220200356991976207586146841001414858182331281159858866177326455140707871058930882831432339851399685609107697144838294176992592227845103765138330994242535250091569371660038821373721389655574065295593380982543805628513848857787860216124823421092087983858394167597626568985054117328846427743584379009012396713398505048583870592712201740119267943663470229616795560495620247381632477850170976224642888797884746433859574511618128750739680637644420271555560688030581004827034490419253737077616808727024895157196509720352143658156276944645342356289638083439674574281939514393710541938860013719075393658201584150358749107629664907783059750059977698092632170375008567078168980368714061215115965398009708685530092549637556609055357053530382078899597133417382059715289785597086775913905634502890085124338884259331874514203564355291068483362599465595472520999400305032976100953842072778469979247722760798887424077928484091819254398455004554363907506328017874670759753816454475482251698392562625186759346383631638040972442051645097346200835741848883934604610045795456125600448871954243906956226975915123694389488015886100662885249908292862744247324906169672067048503894703009720535886934967940913845531360779380041191700827901688134652034642348016665328805371149508811623518372122784271537770577128793701940307303683110735252975155559212376691852549993805809057411968972395250110566674976287778433784021229380181696044183348637166360564766448672489425357838186469270691270919668008840287154872919665942168062179761635634393148869058679685761562674320626748014234056473793888809453854663966970119066904969205365200467708162408863309461354535873648905061518192962063381119086578801869712398396006718406025621414680415089329598851273521742521930640037045236228459576464342065521673120517322325251110130845714974830896887378155112805253500174071210952101680385519278156357637710910947220331177971237015402606369833143674529599212652662223661147942910347721420063277306163313018300433200778840547820708448975403829995091619472194204559667495882458571894147472226553566338088281000681331065245172370094953614324608484245628866648987803279512650550375470763435650871755988919988622374981363010212091320657311042301284842302752538815515425360681527252398805578810685804728208258932826529370102440455465341522143402058232713643661562913673630340664487693523516335781368017480647913658577141093934812752551822645250243674788818823865649849202260813643016701707171648785970689480431574046251668339342192060084429554231282843417866789127060281508647743610942576964672772343443607435373735260899016395744997118089420742257907252709856761414267105835420635700528206991902153317670216640751746284912883996985783261460761372011402798858528901564686442276628607695695698436954996510765842384839122922004137755348271952461016121852511832807608454419662575533953667493398141731264367967657512340760210993099916130330421272714428485190885551583684493911230497035091862299066537751917448263408328498680468077942507005282943187777711666320082301385788911022135967435468886844737790072908834269514020772498844738145676034189479816843052355841787250875729831735750440056526920198684132658850226882664511306004885310737500996704121346380354415467179143683175450479706793029047376966614811027123733830342830028605414488960449234140530605256934761699043577175242689015445900217896284752793470609616960709867542850485298356344012689189524284888231434390197466240874011033123655747467950214903503065056561559087034618628297898235275485339121525346235557855339592481703513090419724531399039701339504792086207294383206737077517086124479547074979817934519354738040750150689604555892962235432964498926604848900210412746616201618749982980107812986573385496842266561339675540196515766918149226009423677373385017159899241776505653416266763002956087587337592249715800080818593769435155452148406371179550339406514855067698089034518618919056393567693854203607523814563516839646498570109112875567183429272481901014333343976571072926335691233564181860957940612738020299292727561765476724023593273722299965124921615452174293121821668074138231510614557322854446052596490215358917822632930905629050120777126185992304483348136270108421697803715115957106743285636946144680855093421769345473324583082702377260299131356998140151911577920850663179520116328343737754259435299290247060693442340719120879347889078513355856232371759515684753046054953559943503806788142216539051381695720423698922071288637626162345532584658767682185480502708729430335959487215235480081302044502964764245612116401547794389078968343618618285985896742699879900161823487482437133659164619986273148788861496932463571979831417833012194792998995332148772222535705761148678713739023303541506598713381083042388610798252389404958592035831587902656546453155763716678287609730931721691350742417610864559785476337747958039733105025562297790727302533443717995624637303176407068510059204683044301670297897744318450083203451299362814283803404715581072089715548026315032510794391881754419512051253892959738074956938581423123222543152417971420555557858075085262137255842318694181899906908195446525290397678291830302618959873067802634414326743970694489386421375204505715966693537295616877013860632478335701073126788960109254908591799795640813758534306991446686350850704996084646294005869863995566450802504601266765429577483079376297190373966564312191340986783573007778584697992890197991155223063068340654121259851073874691952149594832700943996297581100503994183012942714164726773736480194848361113683170268286743403969312875466817236466129339847556825586503569489580611591619183681893073921017337957413573737421247955165850333479270551504884410779215589664560475064745931686188669032238194852769842647802777293873646765842896638432398481037594060977464507603763079226132811762043419973079611441826999635430479192617700024518101351145041357600710389055309222517545461212496461871102526826790628075044650709796649238163053449615114717493583054715473612841541078900287649603972065415249688708703018630091456782104450534678725370314706677382782217722300490721736910014369788377155876641587051524760282716592326628874558823485122978614759769161096331726346542251235334872096743334592800317205778736786055791984413280952648319043420951900453132799531827047856796096580361656818473069820598147559913984873855482178786240472066710841052210267705847388763980406478418831724259611333971354311294352381679277151293680691711397188898037182306751771256084618310829845237205478292919398657293062404760841071067150423570087018947504642908352679251566932211297536552122468981558201673819116711515800007802912861263827443425741606189488534277392852797782029269133356635441233875652384012433848009565158425401039369763249575001953021156724891945013285522066223878826714414348287149609592291458865847331158228193813932300509615564752815027108523190406227441539408937326783137090167698166806451957012939960532740922231466548971990842014435338133209209926689172204537540962224176629791929580302982595043979046118363541560268808969749868858697259811290273202396353750633576710799532071155403818177921272190138872162238863602787255020322141532557698486906419456828852578074366196611738785771659902236552326634415785012533087337851834413663617785164577696192666814618810093662744177693311722349315353909412228377281148375828744678747933525302557426656263060851215008953559836506242304829510079056367723454500704061625853955812251097965670650805063728522135772313893415123648435534603855922852989721348104803187252796060523351535588834978407904946299789693036497033656211301077061499709508921155361336491467919872679402351605961375839705899771799593152689398475164125210832399392822982877978193155783946813512585804712285454646740454841964182301191777346596542745045685764813745272819680633538235022527475526139372823022646666805569255334881466567485058865104026102279740420197576607821368176686776275705237980034342766396921699282385592720308995677625548301193152342262740010624643074779893000497427244178674053454024615618983047960236645696230183429488209304439005696002169861098087924549520995164228509569775032721221239502141617417422806482066295896001394343204273421286662426698488313806225575208852910595411508894774123466560286809404713051560398537799575463387405252615283042057639099643414550270638845280622307979966719346898538614903361531822628663429887095968543277638819499557722756230667638791143410325509850234820039130832021430846521447199311682644347911359061481404719254452077396962217806705484049725066826109862658929296800153672018275547850004068853210901181468807667696242088142552097941036916929948331953709943863928264649465318198465226957211346007659849559744816618466041645165708839051182458935198615585693401467304745729869709632013541113081166587711827569003917302424803518400606109443041028170424295890343841256263917054658114659979320081580258250092770443481974143761290789614075676396584295736570930645984630839908425598204641849569527419685374834735940917131842237449882558395067327296016077050885228364260520420664565505117971711289004590790963240642398907078698186904846356813347862131844124342750202871969288112928637645776226113653739122558147423245447673610728312371448945978848681609768799908664353226594100532924535172877652477337732192621370363717354600986026172570170258880122829708497781564667974170804257057099384310074604882807013568245131468939477767750743898289539087784483663233177386095864967993394640707401122935763148189735245714620583405052663828093956166761800281547716036169722950058100603472362000111650873316941646911573414344323389936042250090194454297093745483721224203357220783661422711419217772724673860421886892037873780300503078312866937499633812433920373668593354464064128199441830410723338885880599472619187590862476478314698608576541930234341644130111161836973824754425324639659994617128750804707414510323831175714587890673374409585511453178898194366359392975413660824948421770683558899505674560916500510355653533870694744557387110281753718966224083784519088450513355071026120551463073393499324308866676552228647909298461918861620612738300431765652035087539526254597507619585595748958081103685772193815881020659738116420853384045636772906733166439331826935681180377759274833278734374285296749278425108590462105300163351479924198505478934108115399153124555211238623400534496265165479194896134920622382549109898063881277359545636307532887066456248588799688243276927118409826210026071876119351335254957970066871519223463773180193199026672244247798583396345805079215958295052824653143638994304576604613067957777527371896889846342665065587698699888979575559488493149030841798559812532446850776791908864703303641543231033433248381497892086083935837424379823946331352697016171270547900687783460023189849373190781593811097506869142423572752724913580323445870780016652690619268240860074434990876161900862554332638506850124545077582091376707757611264076523267172484058253312718504945112517242487569549150672130855313978190655515425402647425470724751717777952515359751166372162327350086601023409517138338877178201040281999888148131661797107106829968072862517401598235875764857706155391488310607233227484599102205862705335609157334798533296094515651466205723769178136418354087746418415982868700790395896574994903651575994090320781016287024011866196455378850401498061338345673608074650864383244563538758426601701629017967798891820990221306535435267578758779377147172993511489773025344435267489889448461266013156935080773167050037766935553060157555509728505754986592748342536780598580895787426124123462813069334595273495900890329688945621051744783431678891582195059279727021816839003952224287920468844988524153222324660377651211040743895321157113606506418112873121333252670737728595903799608808099776087944318614212018240529520547864292259128954770552331220976202042097184027114601871433312632202744054695500891667575068679912956815033474049196266471864808322174473982417423459176274687127334865234748366701274270570035830835870199289636504701462891729199099542126830681991825166022894508115197271832705674220650721509649998762976711675222911027103411280943974591665217150646106055576244921745317033725686942503942022826204691701505083186041148440430306152035454290947753650979453054453727953244303129212425816366903229194463702321809460446964393282806907542522950957243674789581853347635965692203209055251373087286147682588322438864270419779367126032408749340320320496416583990569583840798123117888829940425707775510450872706505459674566527271133129666246390181898811417995994648946148752340929520762847938540570845126745431040344491251131373239676648577175896427561780104603211562504813177985540869532481613234886675656136139960663125242571275286705281107984556700583838773348054211951547147762640442884542469793729297436146044617357872827448440177661076362969255006788777654731992114644266028118343303679827758010595890557904565194778611785356018411483965344308856528808332529554850991745196482597555000134221691862532674465982699866083168334764940753633894423514134117995338584657246580097798184617762839058360504610519672919053232802178388334372673585851001698708614231527717284162699561812059836506625459140599468123329000166411721367298140823826160264879770679242261875058147027691640504790532722246100685377394602118724712552498565952975587316160329482251239223495158361703839129167758587719003137201761505140673471122841617831050711487052734839487337215924398410938649871805921499771528165278342077349032674423168649558736844302643664398815302097802124376444455962389258118173017755515230558159778014371480213133294057894144551128519357655969423370340360749853159067790019434594845619830402784036486759160541568987078926144179055128940609372047675953562555127678518109271566023920950247149255119865936144925983834929684885692673053242557537394901791140303607565043149953465294931762473688532314745316587060550629749529355570577770940920718460907060514703718159263274634844157835520740693568799510114481551007245261227530762558872603125232811660282315802875282353761579184550786672698055575745699463466743351132128936044344275007254655158670794676977864447493477079855618543065200490920311139639246772502470119268045833707484219105063612445625307250214368480578855571209893109489891434214898184929129920357927040350704083438875155804150065535547925016135591763001359205269004439368199081120818114913057993131762126424759771021562979704647681651751693464429082765234534338537983230662157495505411677143415656046884633273253044591041280803198957549547868392888885921445396698268222996385922353625483457103327381036991093933714414051859333269021058226404995689503152196171853805403348307874102235704288350313316709297548000933590666583796169820570125337639491313660999868249463161433616856525796321497016703079925632625456898361641731996554222839658793108897625745693539743118134579036873692529567539168511193842706400206021510889797543882118868920889597970640123646780943034369241820916640138174675665996803011413162038065971253043174889959500864383292832049844937626554192496964102516568163164098918072657233499781597595188935575007337034046353117351851008557227453612341106110170975962454307136760450992906952304237500183165805516761724989929724658717608693683662144231876002826380152452262515570624846967088505095074361044793850497716833573175577009515803250541298376710044523687676074027697262645951508779063154851198547021799692134309295950240851118729357276105599490681996752799630087571831923023146881348975108600101526523935876212359761031419812397977250904694861603798151419449063215648047472866874751148733132553702282401367521310472498506878435065979309680454316536547697741156004481120702146101389883239711361628691011111457853599213876054399952643078701518926090051444014033290444049809624651069500499580222241726523678650616285105026123276986514740064267888214546184851374581456950673626415675583775900332094172062821412551923615801278263109724676373526212129610804611913932209779482055236383627304783405883288019031839159386927996896647394045325147826732390679555398553181942463065915297141469935432415899314457939244489334641948580125461092049356700990570923435534192104350706023279402367022391796798934733463782133273461673108895512357874239100475566491488330919767764571157225221751219419138570775363298165975026187264711150783468347699947172756347932738647902605754534109209898701012104184632079728251427957726330415151110850823888067221711619863287193928944471080924270601304923364311120734782408407095619188071406970921429090881847764079579507425589663433941586999427965645614454834928821772334852604428548542743986393389390691591622150582804326668467686383196252905894266248421683824175300910818787571520267306324454484565526023321087448195424781960988969012286623953915878933147948486229319186117360260102427684484680395310202653779131519925293721574867482723610324898013902706604651540285835216485107596590514878685746233996668513943506416294029414647670913076616351533560128453044303363314793421711337009938297677145450910919304375621000531250980179859110220447605915618013558689608714683782293938673206101518806818448061230567836094738972788306597099762110789335332357893172552532704757412541099136847311765434437991901870232932041499599439687045485477531244138288837927166776419958594431740257395860264954127093169191041222584627972294554206656836548044029715037768646070220044801562779647081223045193503013553043830251611090820928679416711534147503143743965710705637558504465316558603118181777186139352155764992659291444293158987284996456965062832537466337082432228752422405482419945754953678494346482339753183438018933538386355179832773133099863914956054752862663986142557411690952787439867145069559956799472662727020457120078810345204224466063916727524023435026896297257341234127941553456868747286589316098691758140427607775051988509928377398334791526561206328741569953278302351325589120009712753994587872269300376334797616338751213768444140801413028071863011017684952690274071137119306677735645840366576139047681049225006833850005682968436966327815293422782231956493270519843549906949835599632281354521927056593547523101405790086183079451956847721005273307777542130177827861408209119277053987238239376318232533324833064242590550483946960510910387104988975276382748056237770222246046256305427478558494624455749734965678224914291250569643404873566744447364028528370616869279480005697273022008408005555282841137139168828114265250583069696760929572433418062332282045383899773023932286863981577367268594356803508419290827707981846401515237150509143949755024963357776636659479529119984149679284262773706514056815674335819828279584439909667547484593167597296144679353119347828080384201103639900461768829170788853141929073983726373067664494940589403617752147367146929610130954334542219384263031725796891850000393031459460569406436731464914935509944726310174369746419779595893188094747308371912507254490913131141470606810523871328671606294840861795068362782260655886245096784825608721391488507570302169458842390775294577681649180446773666214661157918099025928927298410004104554256329092654502059808555962340075932835413683852701942655273788237328065007542404680168345814695568999729858075384918377503480413338402956039171488163685528223963269333181113867790656557263782103944659390521186957235573954919880281544120079371187916124836668301294926223907281996652522105470126426990995892008219899650140047204834801870001771498984886166086039124170618269245943545997725417917724925078913822330949324017802401043719695841744022641905789040471599166848822073550832227837165701670974883949257014386162349783462148937353452400599019106373341003792104464401311327019108113527598460271678893295905760279258996655842962538983796210060090132917265730599461098376598913258858230984209328001065889118942190640666627725362674363853980267313750037351440890559233252982600990002106788681142982026386606552607030999628590777472934763004014173023393568881728973983306290305645295264328393747231600636038699627185270219773705994850892970711099319983798134846246165036149838083854339374639701046784943158718725304306811971853529199082875451360445655042422025285825957540245643614203970607981666034229153035744755332097795405051676504236573948258217169669374906008968045483761915604702161636094183819785083286706235615761496472530771664004195028701091920829145469871796184823192669986831603486372122431593515943664572303139422758609130743886167154841759999896068169994046588331076426616593317438487956761428722366242630859818291389790783335463281243254035587971826427745857067289107855354725833750245443243729137393996184488858857726138277051639164188020359070997916965583926623992846324051871549749879634149274426045936001869579257616200575751913596392474650229963202037172261074688734759996643334505943077254046530297622905010899516736324301408952166676283391328331780746027636667287893896686407111524622003180218802769335620523510695949494867637367468847831986823418221351312588787661051354342357109204932042141083953794684135071508346772640875764529703286878962749258068459242561154027204493759265121417345775261201444950852423877367495074615822497679720937909670614670725470814600673013897073357721120057810293985461599484207944412607013820771221810622867057788768801013913479569833055413668042562820078233920145539530516152319999864041281653345243340749525884955793932002839503626000094214191090769589915170994249102314555894221383569941254637094197310449567720879365668718412889417884427299182850949022209495701117040929038324311270978975376348031955102781506022426156557201491492694313491090924821310555883668734825724554677676179204639343455443737197192972188210014594119363344854024085516075244179601808982919246364866526836442497450025878218006898773475946706403818253167678809577207999488268962496087659730561589928174905236379420704068425008343640614264415553620891332935074207198175429079884095471961819611404086544274743745020876968731467123156348006281593196096855188379605686507409559638263114744430069382425396528014227572062262461161863453259306435508450590704261280420048974085019860285159381605616295391961506918295946005852552818371332516353966321635183961172282457983959637715567112232058190964023127685864630320213248129759680921804965687102619460267617441291676369446223639466229283420679617297456877568414747326487853643134068572901208974619622733701643402428848787596098222818763377083930832612542060990535161437482033116610455085120660282698222464812076693855753678119664080603502666948915699743396528393980472689353185100877219769886824492848394198536573534205206656849256838422142413727065413515008038437412581698715052006353382036211793065913043362223498781243474629688980158660246866519427918062159380996088278434433318734661392465278426064449263679700512308768633331956286436961586706561366179243661263652349777786082127395467188413959687230659562701233969206420868700492106086710962268743546625787180803322153170387657605385633331255727544847714257011561464300763276180120568233882285533350563358885484620597446496242785351394455931289157500366089865043684036109503462098818420543585814520214494147320337181459563688606066009066838809148487996003456161245833338318389383484024200586461317185920983023017637607162344924086624609990207095853875305536262955664052988302141107430643908550949577136798856114300629822242616505472466803747311354886271896921101328943284628361928784902824275503414933737581736180700578200231424285296613766298209810879453413013617258017091173580285673825652818696274022983460776253176055610480977557324312177780269049092102677593401365399843901384189430733710930423960349840002510243644550009791021273227863615187414010990577120813876348978155799244923752709757977022540220692309291725553370916111986588873809158507591772685938345839360708494317761917124221638564572653756056616894852740396790632129846037173288981975758585650578881603589385193905701831574977843501468206436271633070833813793635243796449108152732289792507760765682531662095659977717064907081887733683926367187028069599375379549037409292021812739977861541075662552175559953065227627414457263892042890051566699154881390977832469185324648315717976586117815877151955457756301190449833698004362495485149109163174236991954665670814057489891233403213440235395048158608797941295664979398537965124681746391508707586499183542832304110437569244923291972935958096691172611356776110758657731775733724950160139507511997994396786591334348792455569919158979946214990574234358050490220955488927351923645917360621650466320972439169583438261164458038390717420140300459201050011303790559678780626709753772295860690181384201934130739841995465541641688406190586552512053008131429030665899290989427448377760396805876607354196168903342008607303983844089076277891079814250877994982441706307308923913713304869129081707512380668809605187093063865951182775586530562300450758827404841178223547931475820713841735484538357294540235535847262348712216899283373886546532975572116659630083065125370725084565465775093117858912639919505227346799666437600147326248064033670387134267239633562100765226184240970288228602788742648070424124754463836752327297885176941022003142225542996147021913493374721760925550520023766507887868396393597978857703710045175688586546861172323115791931678973276887328164782397210352898275206088770710724443600774016143473573089670643437202413986099178760177536112271798837897449435934439509513596333262561447840210890761547023683911481463406039355246888706984193142373823404319467831303765892454747144373300315743806438747762445706207608146248827234425638975509161672130269612438374990942399431862321213977988332886059659534057241796444613424788065595379640382443996007279581178148585464633891376757355821557099484264062675090578907497640492186838109969945673085793169686588557147698388585247774021979919710646360136982268746655353865141998059810263469797626442359923856280975237852361716089854638276006413685900332856093075803087172578466132321344861498187642062783848157621659012165612070348433961214480244065017901421879061767840860107739423554103795475490701668912376215592151068984523970070524722005204340522723075955796269747506548066286961069982134752198696873804975638337567024536694813031452790872295928361338536166234313702637529119881155036259459196359730417876162287437367950425020112411713536063376791934949243242230984654842718322012852759720685960307813541927663714818001497069634934811205120175196280105368146286141632866925339794866981920786963799022459735544629506210890011413303265404340980882910917841292462671039653469705128922820885679843841409355604471961405884664216420651062868475150296351284943899749316284271202184930884455802509252195727882714586205650481997108026769062725298047596162877556660701738950227342830926738134540807679116379319185224088816747262551930775284870041231001631635867986476515133922169244724109185028158277689820814842638952926670600452058751148771754109060012450107084642135466296679464015263429863126464891265912060021230585215335639851114710923612170844692656928054196940765518678306168820638796963853895896758788138947168091027766723232350985664921548169719816235518757561806590631522339364795701430671157478122058806384911468634018408254072427264826625562376330377234077101375176910995938609240862365226332567168223290647285711447675269699011312676570662084411185839916865205343464977161948563293682606301052528622572629180111743378541786970185119447706988784130718927420407188240146801717457650700858366354546999029364889091332216014912357090014247714868142433007431837318455098318671935192314292401186465761709275178291213500140796059739516757937832593640342224943728042090661438148184145382777035725615373398057514360982442317434412974792041199634978204667352972860235306291065279979334033460136862642876079569004285291226900140168922358635012451273785745239140300859294776157724795118221862279173040989546266305938282527510283324451090805127040111512693525922338182529731573881330138784348853400110965266864651896111336106618486837898951972034622181364578204470204267764354150297806172464009146460712829015385648893461754477656190542868793913747357322438669142584200895954659510839137953660735057845927265414364376532716517610540999630673534422162918823027258195534994069765902657335051097818299092417531046629973913418177367888826338017004567431387904122324238611898002525889062554697446499335719338922693918086204660506734927801297143541825863235222978273440962844317905652803641271323681931021843341802067132086749985694304653901092079215359320561545443192867628638536649240064346109739001030764680356100373332929867296004204765419958257844652064227263562053698849343041124137063401277498595508729527350987523259462526354273395211163511462211393825742722154206023775865601114627721136816243054780247947664109177034150214177477607726275860798776222187925012269191361241541438577285769995435552976211530459465261537682000797468002483024531648473980852480449070635668394460327657692837855279576872711502471633494747804001234625342122177342873491851136219454027378574967769323504335490698330493518312462842203790831415289055344748024431991216738204237140421152960425485149745356043537549126523068528192507676870458730365261528673756136621414464934419138397205837686678761406792946060493532924090503109250137738236980167720967120556125681433442784404445812026875946432756046431151949171490675092630960636794146277375632418063865618833994940752494807415018116715169140896686308835000433885668399956473633860758700338863106113013314704919447938601204451743389922731441466510366498704622925210443075207325767167066933224188325661059245035994618551788356963595771159502049098136956452368742456457176987384833828470550394586240101753527494839675662554726808349869797400963216136551251132414662782285772006463941241557741278604904830773555197023909200887450757380144683884066233489714704790710072516373852515998620374152844676972039475798946659206381383957509342357489014256309352774937098615946602975891183579773253919147364292780562225079799073504433054483522999482951295069661155631171767577987281682201032890113520976677231522232327313524238408808312522760411757056161845441318408350020482432969108415930745376409011767754919261109132036538474602588474427752093958993858039942730244007544798342088181605582526868076159993079106927789674052847002233503801949774357666536764831226833033905920686931941364137760049652892913122285612682780442314083785867715044981165283874887368027914664593690743319632976606011281676158247469586248903314419600032669005832510599376156015563191610997730809230617467582991998156497105871838165743128477496788591217750600287541118139020947121572261210184808675973931484227902881128462310716329390118123305178865140433602463798895787308655013231302207969972743818889487995550915415416322163419996730308482753874209852523699268717988019510411135598476260345566550126245999492966422991290780779153509131974089246692467087543535415823737874381786893982659852808757841688615278083971010692934629665425748072708712978901327832886105533358900616084632192683254676493324150860376784591074261269702381210142151883306400703768105295153355663668594767376319776732370050326675854722621642521432697861291173170612072735033684263759815594039826001057272823463342135838625236095731097370228385414115188403518294075138681973937575819716734737839153588697859191822049946627822872685312580343933233374818564796628469054006051270622473894736535911595446924337762494174573686352805442260860340974463374096614031224941365809516819255035936207681520610357361143732574812327089318736826525636912962310999423281031029216151970554534309511256871783544204116957152940560880730352372081462362251391414141557895636357049535964853270362644530037957979866181505007833555078081244827805565880789786837100478974826471798175306182235780628689438398145655768951772599258396711929375655892110440190260913828840483169898716812738189380285682855151451023183007934656156752108264338464495388065912180029874443034413508695303359646630076187254789665389841353858158952099774495956877116192436317084928926791613912296039141229185988975733348224406453177428935620554585735486626497322192560273846305668719401256418908651443443564721412528279139900258844179302683576263619024577531235758086112448347090495618768370267183392274491983768258065483802638038709913739547708582816380398968644500696722177128656903826180814652903797399637892533216929897790896312904740784479751428299278511261550441679832982478630952138028411377175851905831762526272085283384090639960815778628787507118709983302758301613938036762127611376891950292764314719170131843213618982986208229106433888676179061411236865896846828081915669405555580184840228894832379359822837665496546633090279472558453573808532471452441769123187066716432322623130671312915888400672781467427043016074336645628944788874325959208332508311445764581462087557532773071839308268239644610543992825915082571570454763485695479400833427794805826781138085239421983304891715233930199792265874205810051285432512068538831622929725678149401447306017798555939076006927083590502220808571428052964303820257580109189655198028524521504828285526975415264503081129294800656732033508579908239437403421979657099977128205214896113372916830448665081952799526126216491775992155327598352436303471187430077206616658618417391452942921416425534312628296258418987177812124454727455163252576679378794339956919901466020190766543609941956794101931823934996649809690262016771042708199106406977614551811693339344281061422790071330420355793504406457647666096747602719582809980811180662217835494743200653600768827163581018088118711327794090239663035289560769808656466721134531201533281118499690472137398694947923973280877653963763134601039026821170923166184250483749338173395646279976507285834280425728948693296330381319673599533798518775539799603250819461251797671639201634775189088862189676012499280818941805323178245793124148043196424141291155822398417010475096670022564431894490265116183977383649734094076878399898183470046744001074827746075578599899530254075556674110849726350235719174166737971800502289314179733623853827213885370487866538267051241702273947262768326734886252246765300695639960259798609765429372892797076556746975890370717533728745722421426425307226952639046533902383743221826428705860028065991621913800978073331854926889555202144993111979034448339877611520581145081790159726589372138371894422171208757617016319362824508046777320158654387917824793500129721811104910182803173664227762727971779052505585668297325423761739227063795474138055897685047915459604062525040054997140381462847904390993978331077741090032281255111900027573317082339124504970503698298080957206290177716635368776601906204353811041369469187866929137959454739100087813019201597176800544749370599343318361604320698976095189102582708416813267894844436612158268903807758538460778244254364331712560220679457839723371670154596136036636892814071364124370762559085967538404974397599623111621703035453795785972000690734048800610173211960550221890256558417336228248211202229315820485628121677060311465511537420815693679049401845144834670925257250072144030077596718077953872259737127710595115000204064972524576412679969698553013111619352667907430116026031774394580567757152628402178888243598951602356721102105504785251035452783994731940358268423539577198402700010059067052836689920015746725367819481571961428924258784446473746579296633182860544910439527134259843854348267566137627814612337993099223483434366067052027320991419775396867635145871273492941128887973136189333918973502260976407329397760802569080432603199675342639572787140498139463495342068077830052241557559517005472636809693274268827722173520667516860021857423444381817412757454345192446827385843527460535191306751960023159981412751127533495770079077768396314283996024232525358373258579296917913198784738005396824178328660027593098870525775010331064104253027499848897592855766664705449138399082537198031801382266385708853677496915445699571256391332289929545971408430277255651626909894001288722013430281894486063288749330381349274605113439902168759550358214351109752553574881339174600395194606138641114853976695995122254049482132289011681655692608588933757123495740704642155855089400841164370205797437334495326620060785203029058083794922543815363314235879148116423796014751265569296453472311623508903331930871687603730718161023131279515918975537026814003581953456066353203876133349087624636364121790552793710444013073005371518824922325696132901866914584746975111281511800979117948241878749184659152722260391453329667642284407907380730295215788105151396390275496604778814857029303262906260797252403664053914160512132253273851831102940255297151131746852275728555156121068966109816669667112088510679171328484556872298651894915424679215681937837929253508688989178582970805178729072346664926966960926708962918455305387833638374120826387429808081431354307461017353112274632012260259738322118470363067529946821423520508417057562805156162827507080749974132338511434355853596280551321734440874482092430497889516252666124917776727728802217879382955151841014676116773658022481369627684126494788443561426889628652296435442476273100666167370398171177964232825427174570436312163270786324919766284467921986568754268239243323386212273825853635103561868537350850241862728658690599162328174105812214362667827175453617793700072069435228801711728841048705085641838276645999104647066805887086071098132519197708958974828579927356230250293945915604946461358525070610606309952285326829557316055377794493631236301738800061117260132799799076630062896175594961175832151928631378186067580959320424100006838680096847967184545937432634899469492613256575645337140257705314388204505317356903863547670943457930381652225032693563683989992845501589520266054466341003586434235457243900523147646805687534436628378177654893608719350073982159029843703092377990795932507894095706550507427318780460050248462567938133648262828158892565632559844290748477446497668282172491095073691535605591964552244717872512707754171353470343168614206941675896798262402270709958677833835099401489806845822286584646724784705371226979304219430942891798927852810156852744368777748656449406686912258971209036717196668165903004882393822529821524262942548220258031729900402906468359334880936875011362476857252833229046137702656722627248708157230243702223005760992985560976982098384430208191885329574676044255637760021877076016596622902684781570685939560949320165004312335570042918091851145638561952024501357925992988573374835452501723438592785861309974450932557759052920372929494348589334538719164220181584327033189959281706153622111563525592833674048110019807027890952602989866456298837664840224567119779597455461020896859867847172051196702307499109462541663221335910987539856350660276326009448058570151965532171138875516259827211772410153042652675922840431142196183651345488572887600871605323151061437923542163671945950625266220140797163224559108057044013644109286651012471239558694591470081413357382527629089072532862880986417101121313949864871388171364544320273428960799990385522876090819716644048209100071645561848930946640205788385005889072134559489099486622405005944555358417613902528337481248725674885891500962486690472770559711469147544873848349382653626408236208129985267088969665637830569154146747159912686329108141253267640288503228863713370662555682492256846622896503018842719705827273625783818065007753139558135247264381578733884746949756441512721213629341859739298885606202747178908693201554366360898160444809514390038584724876374974775738230492450429543845275225218043840343963834753629901156598974460946420780356360909987867365205600051892917634234238900880424959338416446096538346982974690212807526895110245972273893975680267148489159356388234120719837689987034864947464986945845907405487230406167571122100644848747666448703744675851991196093396480395804645709778198005194579470160982409525528646248800886385035904079538192199616340349988270448269916077736613054309301405135299396235961144900661165928140489445588336286137329699750994522681831948378867374474998441108313516905127937224844803231883977361969847581399467026124182107776991485489659600534965737208605377760514030010866452257071505189667842445416251532169002680917236203488545294197990453147538697394862043877517939633166282723926928427006420332185479417835453120653316453354745496345044747736565923763552607390286720545224956941012278293393673730063667140201919983302226135446428324275521471760632272199399560399159156391483698988399239426923472688059411633847869351824378890579750290086407250870789784596047064757084623273573521605500820573124373154046524493981227728142476921014533383265613469457683587674809057999426851501680550190416988197553209564512371386232693721181614199014953926551597054619627087060106837692166534491957256778518576744911602485579083194109697565053444314661868254935165564894110984002495616554896098610982307570367009085589541966304637863008560545338004706805935715516315615392478449681606379856187738570708606048946062001579638941782323508941427748463832150823541813733675587675276372491459366410261962000223435942431256584288210355041096748101119695020022469751093995682086368296342259697997462501818452641040475699951535600496975281271942836773081552911744212893040737354093915236026878505450272987153271682696841121852993454244244970289504966021212947913564279925553457955014797971217958094380662055477831921745531278906006386012927658066939033061097539808813144368400816637775059812830496836012159023023319972235637796050803595360054441716514066586000131545832923886799991282349515633190001065653327076182044048951741539576235841797078519600181743222187505435243670797583311511704252167530561570439846258970164154401207756661827403579186939766752411993345555487927709094692916793880705478153195183634813716300010069723778393200984791579682387565179633098287800501076339165292920364922773314182698645239630526287667665398094778869807446753510006701802782305783609034880406691615301779973213124617946216065887503597737975589799289981525288739987788503375467897279060163059076641302742588654342227287411958300717058982823197161365686374045725017654860655743905277125686515431215215812645108458155510886600459079457536736131127407982701287699813760427965218285715619302589804952563148557124070878551721532533512716361327093876381205305635365091788234634828202556571410650672440972285081121850863810903649952996510884396611337948102990157077385090643563212738772442412310820213985650689347965371142651260771612778468780271635370246304734669062738650949425897843366019316623778831569374277359508368303066639355720150198969142068741958607720429660113521651285398709138175816234108182030299301497438162762779982813263740756965091392541937095923478162054419508016346033655591801379291995657992191738995778086171659573814017514946242242653284524359870740152139493428722807758196672764850280836370817313997906753100558738942035895878718956950969693779102639352976342767532239022895919101900236245188432268137568355266182602531277402697029598851137227784771408373398817382707745765588360132768504483794550536592785970604765323094390316997700724371136764712430932107884303206276740431328178707082497874976397053188565268356688501394108407765170389128065088847235516196196526991924622996179402773492860475900363786653098307365021483829046077102393264399916495773861568162369886827834101759861672227455071247435984526094421262389703984534662986287880340849869802106661375442066486260425020646649315075227305735967129947221222602425114313795756779736207787803839616283347788191842943829466491782597388127853639535376233574389077460772197503450123569394342468885929594848468113506134607836623714546523771129816881246150573133046102029975662609499794754593692036327377817614846122268630111173495781688248215703548490862376238045944493885498595649157819759025733396044742343619107193147952307104876111842696457149657796834495625950920295628571218020416610213483626110963588416309915983605031534395282136976657242395415941746223625436869657194112928963295109091868160873830473835534836245231301890459848754853998645769362274058184770311341935056078993033836830946105521036527438105150126906685358384117842405401583831804034044157797445753056953796081200566954524677476343364228920591579261436112817158063851054641753086523055583944662832165604175972217867805211765675917483664977105661571640054361268809180932989111227628663451671454914226629847068030946032381627321778137547253411660560401071466947737932422216393174079302987114529826841229864578368168402620231772339688818220777193949716506425644675073446338314190368408576499461887530236473731496392796521571490487448804915777114598637051391540865357564568970732265660621510980053220233681537317355639545752047525631671826479276710266616256803631033322857742381740869232957906974514235031062817806828237943823889141485660339031739050954077967249698946291794013545699424670879718567222785819256643976702108730229676959982151019958853627872539048860918346501799725908746998620614886718726829202627218278254134738889283606103085721769414862286782008560188051841915404271826051278127920520017279274179034687820374381550776599923189498808116915433673128487454494373289662050157622164738741184451921038400199512319156478117787209744240354324748745133200946226465413952482888816859129456506391027350258779945158365416758046059060291108636196863211933557742826423613509243833334164032825775039593140151585944864694384789954682792276639012303547798681657597645402319271010035875776772205121559946344303584742610962968581056830814579522401761323519668039347195783702967928455784559042811783330583411247492023294450999084791224098965607164324230296485934151060095931975567253190954638801429040158028013258392107423435408274193351374445782018148131947252412025452812037333805507795725317866476212117943514594263156797905237478572320692470593895437983624250363326192259913857756654140044113083469927417825721984167185646918498445403873769778736742019219611928795381039425360706790306299359984667937649537783745318659187313128501599347328524159738708226871690142542095732910056380164886680032457563227724108483326690199448635093247844596468765365322347843264592282770731450151362383623280478900067756289712457407410820251585012898724652882339978683386892667477757946943641209409002844965582974661919879155971531717753556977196596366494340976795609506517586449587937466489874278704435536083282861803701692971158528196615170649668419347967839937758501618533017484445790775008359677655626669047483181626960146908440774510352251561960987731941143278600412261838003230716209707069037931278202210850978426968335309904012436640259265915975382104959636061705644221862349018693460222113948113958044929989029575623176511586191469169605217883368320580692460373989709089554870559420634100136297228901730968103670507819490346513075887100271580010390287536993634057644902673811252772555680012173569133320055759003733778137027314907708112920969529839717776070606650386309685232685548324277148043568758218802040251177813845141873353274251511352198918688535909994212847121905953644764682767352199418823726252156468028383418955516158407515016072760363951718759253174247274946972314212091587520767067834151215182830301773225922979929376865413551028481267690441034394892320663900839581236207557221046517291565977483613267941505340625395153902291420146559307702868537018676290664349394591936379256913432751549003940716306653033703725849130942806079248418310696148940798750328440939286056269805031003695873622180147254231530938277710198819766114010269878331748938183562840705566163270392695219198508250422750054516226488023382792704016601948211802573512957682680136835834568927647705758301013636992191093764205232141432900643109511172715348780416012790308779181277405884518580096441150377239621958754412100391079962934838582443632039995067807442933915636400501633757259815974404599820536949111735231235884619727898509245701336005043217602214938574105586628463168854244973307583339503942634301091504412840990045745781882165465639111529708908466185099423861339791026735946175439223236560126395379475307167568731298460270084263016240547479363943316862673256735538977539241579445422838150363644095257642388469904759672797570436218026611234729817020287859609281414952900341626923282270499525912406163254772611368018712609484678193934548945145239107443837002807463766801497653298355538157340074224274049675571291100897424369397958374891030164322958553960371133955462783870416464048626991556335927784162924262198729897247209688831757413147146921800365408076254560182682209039738004122850095960239273497617691245304234497652366333123840031401833215715509214307187312454407651782788687890967520416255980297212620622054576229610341261150532947695168932798347116058375989785900819365666216331786090793249813021709959764503940538666857021681142902933919861628656092297454017990078528715329631464216480785384307366993237017919663827316859945427437895398289713977507104281029146796517745000495530744555466731196492376715823427730771578489875647604852244800926540975273357165850198607430396320785834413635546764953906904591015161290018884188329699543726078460093451753406575352997043016728600459356409967189388792649754497712565612167458117700663089119011119975980996305564993674712835634968287484908732510864111248301428140960621279492790729051013609698464746276673067961939117332314792329626128601952448203767120694472371554233480489730776230674563193865605372899849689621014315651234988211480820521433207716856279622503681924653098909908709458090481541923559478392559313450748294093444008345380558384075095059873578605185788164316494338985614318187455256913122337209076286287616529257327505574254283744860393581055384469213501883044667458615152300967034516785195612725647156835616276242034009060648755798218405465011282172047565476092937905587056606029451402929717994249095390176820598877852744969548868234831564020394897539741934444075227210887377106737675988037940243729219091654038052810785877597674682384004967944876503227624309179880350521164784042688698212212866336691435341393938459536473005873777455003580901712416111202232016855833507901202367253396472188219120595962356716181503354704577288721839992453913427640086209178959894276359056442121910338887063678288005644454860081683547847038254345247179895185327244758385014180944297427273763363182245790799145015242677697179482766810103005441578266353860396284930604950513097814318769260473172519878761358320158883868607097419326608149243486976998794018710063417619633433010840317204718171038049139540251793931570115936301922114021678063632662293231689068396877107976849449783791460650354955075892212508746844503880004260628854373986746863746749104390047612326633552058409199272041122613430853402963048949221118694977850811540469908835553436374698648867440824837075178892677481879753228767906616073704147960482645832142814302124176688001102699376988490062009242186343274289046875285197772760493799663386309907746240221302034915585622537420114001441148905245951578550149240845252926897399365143598342585249567842732772143624200703638668001435708565417070706701399111894434228924455804698193627068899881623482458360604244965309781282304541198376611117938233869558853100115073085786987026010883802088351489514496624942443818238239051996394336346208149623964326292382387444907029996301043105723451067187222486034905935689149757974085815840982961021067495315712069853153901725371050592317561643317312758756381314089845766310882073983808535731441049264732102317752103511963910022726088726309337190766721485406503285615282024871847342079993414766340597844083528323804766934214575000142526781191545688411706545346620592252882499502481669768781234660480216678881404713646695136525838492358452363487241553034484984529341374622523225534318877825386564807514017817947844081961673625691610427739560472166333658736017111708123750214668116709281761441675456317233525801941101768110522716662859370913718524283381493548744425107390772857255492588765013014192092530972592565740565931894361690619230354243655857716961409286676179060038013172571151340257027657416101050399173988691625255323432560104712946992614500322898206128638794435429653657339899130517501655736890873603665907267918476229892098830013348764334240474948421859911796210921822017748247882824793822192181493287025386531109528740794955850195885121207199110275772636001142649689209294737059517117498550289595489981650565185101944570121287082168865682857496668953187349490428758231959879384690879810495378282868435428162688350321099078569718344739642377588387785275113289475593873134411431334594069742736885615611696500446338380696302140707985439415787422325984960641397474573792007457103972712212132307119636173883696224465180274687330031870925150321394774419588534709817970599303656912295266990319318700941902883382667864788722706125645191076455038476355151161083115434929640361750786247712995451126526154008803189014764850175116421009151405135118676208870095815287461852438793719357480894526299764745383079588102137100790039676304878642579995819838260638503883056715439715922184839766848184199654095688173081713608801668769526627792768723005653784228202751666919478815210466402245609506563977351053543538154667707937298952009443167812259337172123060055547706452910053460131874950763848035094819565362080582687467848630601967791958536254034117026004397197859059427683084560281440192612157550650897851737757428563093247694816484168654094660447875550847432791979341616703543319689633598777497673690173467879754314886455152757364429560787564543385905616660149441453322793650358341985024474993881622547658448773836550280461459420109278805745593352576593334710268058283069656772454704721653412014757883273354037462045492337504965716998087775503931357511216799701190116724408398529672878599009454511657689484675214921830274881040005277832592202301386750862908831283453440869673126684163480823486455106855296703156441666890869030989117596576426845302981533195715836336340817227121975313528236446081795409251500023302750922253867959628785137569650284597454021753386566761236521169468971267700086337726251726530449392720271199921002021407651698591726650193375352069401039482350145600332161151683490250888367180663230821674744076803604988210114540102337252887500407359755952622640247431124919032599794056522761550166916101692050952995173889956961779727067958210377008462837267821051189028914988914105125869882810504592416568278351233470667322135827879169011968757208383714664154640095142293895803173645057158384508762445013638373560053906426924666477934963684677613879887769931758667055200142137562156907531782461315512131976257064220838543178159584715350189614282727545511079491232104566579626558260095341520779122970496664575982317503286304356892540608200657651067233314007247875903103552909711921372112442544772246639648927424127783827088035928753000024836346202976260668135939101009890546342931059672183911765048320898020793490975243311464064863549485884669595850718067744488582229696324626042622112490586316114824597152508852601957409733650893464078883410440400610453051868557042736505478826460869699610873113399882331420876271102331156547888560331623014057487060799268427585271151890267009650195041722518857988786096423865900577097889167963529989882185781558845194110901337057943741366249522783147512960689102963846209486199265783659392040125047599837917917032798228146839343889751430088061890069030463841245989105221934025285019244365164835732121527886091948680271776018034862498854223392967607553113520301576192229544047782727097148451650183243389785425466975724820180205725120515195816723577869231100360235458942608416812192046192609929973331429969216039166019245731845110850959318853093033935637303338393228824500601168313671449859339218112549483254659915911806045852994805773540760640574422958826247878065408129900436209956041424760900567832589096493198888805483829208926768076398339869077079315279105715907823614116256573316520157766466861149393599447224076689489961949914310352428305477026161329505128371517646688631864569751219946502406643008969950639302693451790569093412437199873774953153870020048211346904550645591029518609810707318117963954110132397244437539794908469327593426387470696764470057639742429657196508452345076517240840971283283621618761766159127436775920554553293566395816389245466716844067579450883110189481024802147989996727127616645129789355693921894377238682698810307259366996000395113159912699625162538096992751932070084019361523155793925742677959657612676393812880854960943134210783928392772153233584626615366875091851542435012702239452477603071659081502032731602416495928726475602976702362609617622377106316397031421594410293671438399186671165385882645077699138912229744422549593160949796439378639613456033357415949814513074097698687329837082716720416052924776877279808974949709111586356777590925939521006096974295482968070975932792622191810003974126025684947607338434640209816780782778242426833969557217795530802361881406635387120407386389583241166802064267424333318776365981971429206084085704249534695651359560903845115262489955377032547630246611859804227631460108200128417054974238245127916769219036705753324519242023478560208082479025359992555728302844122299405855603206810738296387462759536519626020716736146946011822772985923471441452798109642644920095013515371495496571587691081525319472666692773185241973655699278352731957349207483793607427206270331574715964370579050591261075115711523851979345631023620185983896891435827923435505994862582772051921492724367916926790872464670121659944100549676303221271149356425121251311479309396432237809961513493806222511746776320443140685095274022677650741895368448302765276680634354160007686453808853229858912672770544988314412915840628238827361181313064801916164127243640600681745413110057191927536259905800326067868656369883186521847237326703351394871688230982288238023958012496912104454715735721186859073697543003292177213696521267876390525900332114894856000054543617134434873350339806617012818925533570806713403237066931402828670182227662850425511264423577376563556118379474618136792824754300152626484376081305080897472912036582073219482543316555906088944019939068224541108274389848708086139939381219639870581842947738190048904556175620872130823634050599760388531167942335098386535483824860109059430268790288701133616941878257023056987764623414593875052849642577435199400480782138780415300387321472167302687104328188263863517812005698841261730977087926250744915375783523086969272188897357652556871891879455289670262884971633558092008541748243929405252281560815020659574786893546342390618257135785680924006161946197761273419494503697071686466869897481667519782813001607756345760000015066912223539002031592791981417902174019673617311159870073257884088504629299518461621424421398724095104869453005479484718151231220888197918008841207830495250163930789532478784310950938408346449862962323396079984360056424829582004628605902191911231542247266730541902682120852338780090911840106163658830081974785754256062750309079672680667306951806392599608987582825786043991750311755479215826621690078744702873691912255647003123871111015827061775351120613724534996861925937051771063692137891106687314223124283939122032270272513563708361515710207564611197221923475291253970362437687247883997271381487841850129340160815914317569840427192256182277038438182271099237035655133344891975576462544993049139743054593509646335337287453918209759053723697670078136516344161850542723515493346517210799858147984454486161452706699223464676448075966759101246567444889023970990818329364485163631992344853048834863219579817123493737146307448256231976606811698226683400539713460109969680440863894965214744977231446943305728388587138016976109381765204144098440501510174746596759556902985909423941724944645381829296725348439547983853300640927174168561589256647930504145292172611859397602314251412182682970556155772848441202800635692196934224913796818571739251445113167922358278969609937657069401930357206724100194830334405238752819911731600792595325141345309308255566297722650729550115403437766490084644905040799109064129017979853295071890076998301839176186885025904860328964858937486355559580327850643968073192459766413475644953075080394443351025697611106672781291174671630107187368422665079884519266063294352418490970582678024229064870621828459882250918291928836172084072114143492854191311504223943529037332177517171958472932343167004329168433876585693962071774325724816521610536382541699084284129069863318750359762119689220721579371899787708453810090023043204299978492865322278396314401171484650250822537825714097811539554847652325841564978657340513030004812772792360504324953678314533607751394579232654294626822310573297460339052872556954064749112465149500042607831241632596523682481262212524782140361788847491668210371422123094795139673353619107905556569980272963847332145994983995856466218559259628940467323640777935616653399840307834078019619318421014732780167770177189406889967908524139679816323736213343418328281928295933360193049364783906739525442610796056757759734330380924194243497038206352800048484285330491961603539738888685562694324182939977610943863278567868406776121513008045694811413637780568911435328776130813805619333782664898414874649409754810455211739124690682348647082482794524967570746709421735646411003896221857673383972452555727442329079920415070721057750841155079547427702208386696261188027134341747747151286837227791549329347434389946611997908310526822922325434034020366052415474541754270179165803637752248711002489776835571090801195225580042876966986059302318835562846656629198333624316571514510104093496447499048773427237658930901109743597228867940786341725201796676067156271985812832215431855478322282251487164398649232414337839372920179280453099584357081590641679478740691928506805029994278123550184074387150926004109754192720406456534985293916751000055036860408921182142299084860815971993400010955616549474728325582062789386074142130422557633944721767807147397011242894317141257223599282365411811134818546396365121892460848640661816769371072947664578238355931173959300040655319522525358190103907182636565137725972990259189953201789684682084672608574380754344136473186844697444950341181520724996801494274844138748680119196101452955008608532255241646480282702602015443798329799875011786073432284988247185630291236190160877115707090235678051786380495834484273641251022717085742556647197922548997916905269752072205060810834413201337583521499085427086738705467816502273306727990743555274067052647501117792293501329543716543905328758126352437516182877821175526211873388383969227538851171683319831406332872834947811289777506198645580145581941830620248325555081972677278248343912471468659096110518458583603848634034585791596102871981885148252727160348936605469018417869867183650429539835848386647905681849541042074286963065532111236037949396074072760661518532589889504836249758106088860538426860073536326566267861171642266094388113605685216914182130910474861745962302626909774932280828813185488437720734226820296310370474625576556719114919546464816099234410008583639551668206619353085424130049049040866574456450974961774920710115397524099623722659734392096973664747436062515827522346375694445171242874712925502239664792436433401491520610442887501454594124920643559875323934614073854888234936594727590550971368482402874148580872264325651589806826625173951486513616304808825816402328777679750831208596491377745227254616901640691970927074917469673565205932339406275769663919914472003706803442056495675968593997146966888498826982750012882178130083492593298750862994026246050418485494921393481522576942696140874265080180504247883317314776595952730452918482337851496261625716660453807898840879949211017765781025592637498248715919570112703078268971684965768114419039602661010127223446521740242368298251245600515030476872230410059090235400569429857276445023460250587673170528478544760958004653918119299907979141714825692053930096759642133494808016439693976346344500723572960982699669482487719840515903782990952068256361123652926585020732922295699736226362764308013479794603782769238661213368046574800643414924220441000048497070882987228292505364212601283293590754160077278327621877428424427674166718342749261848656242955602381819686234898234632989445008867593834715925083548193522860841147368920758121289816262081850130779972074193744717228663381147472605538271477748465309547309647292843903648262349573713785617242459420164487304728469207031398495170178881338177301093688022791130160721278279418112899349023346168745302344868807424976138586609872132466678179410651988463111719649536449105873496817331723085483758725624183016014705221757066706814983471291863372786377478373228049376380689714450956782934959711695968137376089231323752613608699693602115172383883274156910745818456145074412327818624029179585277072100016070596360480699427982934914114556569559906043885988855862768043937349000533028261713634883684013975447412764712032970037543830253429206286787562233803758780998630667920198488738089845311209137295578603760480117250638044606230034722826461497507236419544224710852101472070276001630705797861028870842513380418510744869019246521097823062821942142046657981181314193484487918738261208116480656407864437190597817016840152212588350815599961238171443201817951598364181930220422561339135240113909613976219681609366054850613726254824583534286088884775404646470389038518296879630280049355662966803488571932498212355352237433741214709121594356368887874679273268070946742096942500270196490591589329774016122858182919185095407237462823341073574686321805545768140383183077850449169043862478502749943871789442232023678616290488464744034570211874425909553708203889893339327847364650261244389709867550201049481163356316246465252041024941141835293503227889029189181911868439273158420912539694209464356545102028586034826835577308655964365446937861470205620158322451365773832553516955630698136501612347837615667433718560946847241084154172103907907240366320768506632703041948373303903563555497320187074618412945245978400592460576029476534490294953807603254514373702934948324795880324514505512572857558943445505935746361919038476535523408261241143273759369844171968994999525142606290044453243911221070380308248153423024330905310046762556924288254963557947823742574218665787180411201569652471655392653211902667773200616510720994165063045959105680669811082970628023442255596856833519213628237278203016446025970504606187427278752646379199008064038450854997803507918125495824253690415117570611340864135774872957310572841716004748558846409954358041993812257841306796737546364542811988838505351054181175804063963554114283327142002185324722199364596432487126166807216843531040380455398992016618729062680252844261695342336893682080453992424316166385760488523987288137329392652607783944947122875339955516603052305006594727279287442678344803600858230200249755819144480560528301416746703903244299004355530129562047087697726841331447527506595869284845435737023992423178999902961522928173502091866141356563457101542071425517037703178234042868103062498516837891052623389472938882835237574052130507778389565182278328912786116123589039083595471066058223158005875329692863124483231110781356214235474419604784636824343096421701103596212630699392015628803253487624086362995280457047869911677233718544791526479990728899768573561051611857062039743001303277966068293529771650158168848399394736809298081130061946181953885986373265983950531739531850349430753856725117341593302317314193627502921693984792593140920757666561478411978506200121271665019726476794453041594863211834076788865930235855374313875636494946151816624847193669346934984326977191381641205790139964699965435671468493436133881107715652000062510186006976445558242655415265996234018071504448016150812232700798596987850813081369664402608449651001657550567016758808919310205218937690636537512389299959348397588004675072021113504051092716319958280322517586882624629976717617189749740835266000400915154338407383645370095707010872444790968518145409977586612361728046916990436378202435718248595546613644867142377250027715775304777098031550835195986011128302195758418310623830190665138952698426071729506975579595271540146265766280164730372996624663458228597948102262203467241943665735334361123320357944881692633548072632062981840282266537606370522466760306918663293330910940980088390292061998891005500589784695614358878869028473973139086275876296372850838582232064293187054810232656239560670024568099382772918166047051294320551187588747960190905841656938942354013711190336739025403565961677586621945579108163603430330427996538506389808683122309603421526487174229296756631811541764144075334260914533235830901788502039653331196588269374082762210354294491822658020021212727230479861777579603774746817129447569636748761456996514550310066388196114281015900337131436787052705414228239389814067516517233062594338816211479763543531963294009035603939180611706988597134530473867129643881221685223578191099221015937233798427903557483559531090893057175047555225597750753099467405080830820091614974537011650461711872452652933736267769181703375428948965052033654127824615245770440720686981739408485636204096868131855753988608422679668877503919304209468361726062934011684541767616847068539835881741639721781622763908622583994242972960052793970261997497207392659339121688517867735072775356852870941301378902834589417468551978216997705540082898162269153408058903840427882271757326747071371085704243994264035965070202154012705590115056968936027379803990232514020074145849659501405911666912496892438398713852266998424348073106495248360580237454211754051233064018438792790618246327811767985361040821499297241102824179909882073870595506751369453496841264029159471677144095200832028846431944880511404664189268885273489067340619861679291045304708898761436330393667753751956829607531874492205117833456643123017334315078004439757003044910777715161139997789749654830100754311199702067485367649491538722500570349160652385218566059163450780865907993039165748326745342554767762133594774197198818453033622734030826582422574773902537750894561781301806469879386672479409762706072939980140206179262457786305862061032369346693423317634368014585473903758298933046481881199768209023117502593830620547824881665427432685773591175859565154681396896529305308940759134592162061787641664082979402430820358348374848562271690094479666307218439788715053349445414076257723955668248453992900174851731870348261875420026919104192082587958470464428876163278974504378327850330626345362758195087214294117664416244003524806431033105780692437595800976549195523240477388652897920411999956826437336705390223952476222897854127301863520302377186828193230160865497895166251169694600012684575374773166177002543568296683682121684804554768053529126961437292050880036226762818822057568464811235259610622573465919996931280291831933501049469001069912251541295209689169396736801501538467052876337510089618168242989686184254856674210103845083993633892150524840483876126458159752678682681380790660403368622038869657717581125492162305617880001781210243239505244417655043847448162557938771874459320360533175830664615171647604381234199683295057327587425957216247120926433640551791602366911308300100619329008284208473810031991145058765281025377157731020457604723949702628723427994386213076746875491146105200446197126384358825465436807636325836574410716877257335601715103738031752899742286988754001559072108020225304372043838821276168568398741841771332001747518130096672765414175235568894926315746873604334792417232477102340135840157362836907914368042899735693443538321710523742424885428701556791315955831456269933020140662022843218388762356166362484468115389206276586491188381055059118870828234231189591525650845918936919244419170549078406139906962356675912057003671920424604713676983312619208016617095739259178256668724866905640006452154773895834484504134038352963985920598294281641567520642270193407665723096469704480593195186145038438985076991574509629658540799759879789351857756591351026028061585333455795259096998397808189284794277565570121224753805325421202848932589754101903262628205661560685817295491440796621177837052374955312916601206264485693219941951252935946167701331701979714830555409846506852835543214203370080328206466470267459950728365125334341640713419822241230208436162849846449880777743311323551602707405095879131260020794216581020810896795843355926718730720190343764090171490748410429866411815605572490826137464778391158160102448786237119179799286584205203013278821255421850181838566322544500295402579788719063448416502809407028446499535775092755790290604493738164543921829990425423011596851831334947602974593323663522248626879033318951745757801419678299187085259523757265255954793780597281513202104219700828714314587730598913878296414772484340402629176182337517234456307424785558740220743048703606913930114251345703885410165482908886304776033807948343141000930235564148563261242828405008998035976147059425707500050469956348248261820009353790281118413872755294617837623717657618968312621382156571517764332397700201530362241939540345581444024293201161133813889512131625141895640625371547350849953438458848297860070318487667999763606350928716174652868271178617340633626920442666270898555335386149518605718580022821615936414997043305643966408650008919950459566166469024983298945801951056471998646036583912544602071627858206122463953267756190756624343232050424765626677052725871421978878575293760299757656715671803149700506381078392693086415580767862379671245944156303207107045505462361093461954238692871534448659673649902631286745340708594320479884783800467185792995304871613371542309621671399598255198269816057303408282692610558966878279600922100890610646359037735140239336331904321656330492752932279843209982032872869398592696310027853803822462952286215745740337351888485316199513852872664182039858538776455462425029318606814689948918140282617906538325211027685233634354715586238643073799331247385720133954493371290707265687584350953991380023804246968032352706842617177059573191664507717971758851747439464201315855676998073637328329720849594133545976180550864596123705397863766703163636105727556086191316438870839126076358020031320693096501317435208938783047840975157308332509156136533713883780397467319625244008407470792793910055809393952223969325923761762594175258224673625438237494642655112858720976062792518634239636335538369879329999941669150982767842786424381630427123157922358492611921260382882792444119314613273574502068087816535510034824378375100222550041876110012477831734494556497383871665119201848293080502763246944375381644821379067186365053309191937865030506946455725564614526095583376913239527652970436201220839224413591989783441916523789551292268466382428286006421985073113412941339099872514274062023307119156886416632546142306910931501441282509047696410608343879749118259171554879170811104055916334687474466834856588675296935138102628666135489275679746993992487562493187483088219389400909577612475563687115901990713388342260668939709824856211145815400890743891126883739635757181723604512311446649233050405679781162080523956806890051275436524401492374207436828645322202924565414083699471636733086928095118993072307279080477612342585823546901328930268197474552006570958858824612814141875459996600923255022843942942599217689210130356091925681083551910492485853598089461176340548480215406379351563450837862831625193904233268855524115549763767130200358594997241207963373620717834960970507448399127373525079382936479049077893754853422758954320099744711333904655459789361365157764949550259248590578614907041102663800178097764822854014557043345879292735669663496314899837879806860589874467462616032599560094762670843280370666231390112389223231126032106003213929386502288043483634500855616526730972803912827756498673802496276436446862794784357470507969508809260748537170294397356506495102861339985167379423356383768854490818055265556679530221157368188981661398863629536528357450901244708897886947554358319253065560227946433635862017502917891853033956327726005700303100570457997708455001320652670565751284004389206951177902841893982126368342677053838647380327471186725725468693272408832768678837088718608517645908238569163972015500578255774574065011619121042015297554223149630719604021807064265822047674045288458562376729436377692388918770377672068625520489050022803760900767815295918700195630585425187079665064711742210246665759454126247824598185116222594482718892886724108467255233879425974725657028175953868962371082367273316459271778682430391389825527807028618667089532473439484872632534577147745701989200300786684165372255250915050795756204679551077183495545591743801682629845298715560379424725001513095978319032600171351224104056402530474162241829132411425537274645984509323851119604415377414183835873285287260912979359762342142937505812471427629949031527476726153743705421836182140745431365268976720437223059801943436896095841818357134603855306276260674394656146418460109761816987467589657566526290743730681079063551136538819446008141764576048078471260818669470573882227507298083040693889579093592754127101056142156955026360138296244081285634295830507565076801667910485647262978197978750954297177646170413780719323749646026042636564613813940645001010117270638670714540428088717571812108112642664884451117717929408769434185375433417636829759617570815191004974153658935490220176543032520448676402152129130498778867582539842867922724377176204525668861605464617327564287348435438579976440832426479428708901592800544745597735083639901474990196579791845037739206986014291656585822794021427053997502259793787333120288723165372673792155448466535994199190803945397522240987664596645414529073883117050929579390046526833633351418055190217623172814935889809694748443319268788316511932999854640710366761780596441100988723152166409284847295895177968871639164192260679979870675430814927981762300557780568654467104129576625838521317743844501890993020638019894274931379416294057240015422381186948468421296038356518175055501618658597723769058106665408104317227633030319733014227242372734149229619809972786891647204739973544799997597269786566282676575396791024718263258748679981319368393689000589959242885220785311851382351288458627339529321955174568872670422695346247847730694353585928142299252192229958825723247452364447804877644858573947944349963131088937971864786971073954915110658362752364887467417950398813596091534948412391967626186931733043846730230319999101074441050738820749321443366476697519259396779474625955656849665177102007371702762442514627252577425954343817594977226573349504700856880898595165503742328696223765314633889252502676137822655712599654403598162982481555470548125120760866007207902335074334033328729699990576996988381926703957242913618952510249091834293890656969528489053857434060275318631975434394343852919021548839424346269456447175837609321592580685911849552129097319378058651812757799229685599073849263218474382986030206548436110500732526947938955707255379544682584306875134145099032725282995235075342741706207936284168597554343415760072109466478300442712014007781706195093994299898714143858513324654377300290651418990374244996284314026175759594758126534777349889579170959196807723449153123723365278018413996204856353854318836387331727466624062696796553634703159144948066142367423077909666856756309311139571403257510995180479661250090525105971514141478279082990307962355609973243254813826516222314043135812845680446707876171430901846064165460696302890282389240239472838441534856169970003004063037647885592028324512665127560958792938688173432868671032157608145857601023530511900281005738597912081467829795438793624867841595415567784967380350094106560322706490570027907043063081196500153249920765059751307600023484864881330249935522049075381952828662563161635918277385986789187364409357897860318448852746244520059050350681152314690892747517740115687296039241016293556223942435968171780519894608194680273439335745101514899813484484285631612075412727198711988631605688237293537567182004442140538371909227911084311741198768440165784337453380746210791868589448208940313182049369131058306711913260759219130957828596836446647522231409337154648935556469777773286661155191880844940410369646281760408682839154857002781284726149870504958599072316270690290880365245618096591939681924503328795141302310770750530084101071673474947342887382692114456611623143592137138176648704416679497454662269648030848555530378648168740810075653980841152428943767814876388826150758211693093666705541546087732352047463801794302006924176623100554355734408376177005020701086868173910300799019356847925024552635692859547019830140254696676343306509648787036369080790983218963043862664977138147430206917184898592241514782966718746956587090036928381464853866999624387277498705537000349436948339236703305645171844978833471862795623049514300526451892463033334591183368248565081569863614853361471511809612304506991086481354001227118950578856346408071502163554541277000723102469747324482784106356125062408240759395047336056216150326424240385193690810190967553818207425148410637213511542826559561415435281201037477022450113749999834168938827526982391525758698889399035582702348010370208746461387671553352463455868361911185013843840859662022344854271824030401670584000663412618637285556390702537532164565581614845438439830753748229218873500164288130415089543942600774518964367333294465884112759671922985154013682835628033502568372102743686119530309146310931829177453356617618673685278528369897160338330589865303718384478596467776630764119373278143920741261124019379563836906061232817340422879022843015677903088670620833866374889264380126796462254183560261335150283752032053565435746939871473669027824641872059141700704519607591057571770775703196399523033700876465226046487154658129118501319377762431216910817763292243149312563724005038119409333833886211354407588699668950658213602258219970233483122469347582079271302167650825469240500049284288828298610894485748847476891254423568997827431115791675009829831642716014545743710807028456828438493845381908781562968545831786559453250539601510112474386351055621078846360095620682362945763190598414224050609834905264431937054042210965776641961639973781978562689295360374002551340400555965932024230852516469328389704882447305245500663637553319395470700110139819809453181762331920735549194883546772180384397570164361099885905795580061880818971799496986785152339003607787427680978860244324003674135363768503101636346283676082537668157184107925608372529223358320552858435025760858573327648305751595712285270380757313149133643447753101256753189115670563772265818243087582593435615247435973757916231230451425938125538315691892046111545055610385004446702228484876723136769123783559421249761492286269686871441879817602520935059163607121343763712852755606924453667916525997723946719561658616561757490059906491475594721358127179920952842761601844093562943359554190684740062322621305247946637786802158072474690672788118197949213784542641934657345724155146461197303795987947567497834874669973637684035083518299037920063893119884369896404839847706461057701278086606885324691967655787110123436640144476161926624867622415097083464875173312654098633546236425408815904709651845257634315649347437708156011731863612269642281018395339572933830161318710504072307928621383971015913969193372596384464486859675046709425332773877550393572583749576174444061751967206168109321429237825472622749533278604895181306364825935465767160321308375094698403443165906678602154184226763997147764916619121482939167913526468278821886048082545801929745095887993213559878606969937722821777548673472520008034755213280681287745344854008316811144419672147132547683803568667284672156151962328023321986412017729993637276667003868145083149020161224990642438579215095272549036189810174752257842632202020781531701983232407918347106027117861380238252846716939335486869912711782102665494866195859794329509145918935263714177581113355851511669322370531351245389768230264019933532205396283319841281494235416918232694459845745527687536993057531822618577235029075760420501472711689618352961968262831277766182620030524094642963973869806913269224094897256622635463176825359486454905637987334146815224702661944929815228345058526593459993208326392724444566907290703261150693077914392915923400100236392824082973628106905194855502567041173583041054213386681707934232274793945082850102434285356187356101057390432313116178857354048638596246521204493367307512829094121318643852105282211114805352047943703364099740083063934755563651841239508416772249823271379903327749572013034727743173844614091919012686426926144130808341844430044320606108709454564378745843580961808960208746826892432450339372576167652522906054850626653297577588190218547208047355150347075616976492588137465205715843878073311786222276058366428698039505349461344807923574140312141183914526652857679815366183330602155521070596837159920006318120312534449805235275429888289512507771614894222223383643472320597885119938736874168945894541370157914152973418265443516266453392665394369833608795384979965714905445829005330568424075239503713791945783649796952340264353023114418577332578599928950927671518999791243597125580370966624558110438459299116224382639622620513479580401134391624534291386185669931327300763250134846066836175366043325991954161047103455609607548996801160442156949442157271558328085113016107033127826112213360582722692188040758837776183422833585722779320491965732640741550238040615218110271497525266509642017145008301903716106252119588109521420383746119288549712885299740477229451163619397185530741557990805963639299788494481378607850664200027979776380427099913371209380507546970091068361738681918017708584797484250841290625097040088620602465036008282052475795846423760902614602616218351627262496651823798048639194802513099265996153403612753163260661727563536845493619012601211424172230124909513100277651844139801362744336134316970960168152231530396326586070616819864550324884922884772472810626259271914356100685687183181863490800100800607424889404835868320556196049239244573524184834615241131437251184303261840805198333191343257100387663954210419076709145994907465161491289154383966619154328064886476413370996828369673748969357189022065592606777810272337936272644202455446576249593496160581409926226402544289543726034752810988855068090306562763730658649040630160391427518569028737110954625998091657751831834622508870187779424629369399478849189723858646280220778270017920093585291416982735819841959292442737767019898469726402490407982527718254577816635980674064879423280405984400780844304918777060677442759162146747241560465342364932028766471708560447293449475946103191364808862644248306602357821773720279921029673144701957856148025346042512369443830004827149377651415697070142286580853413527716175072046080927394934758941482725243455254068312064021338587364297787734140289972904703938768952112599658063653111410384982384460454369222468644131275378809730281345925738011005113719472448704061076440511969930774765544179416689550615082743185385613143902368540515993029924608680129678060742371846055348527614389680970221592516337934805763660469330663371733165985539033765570164785525877816641572360829254674975335661356915043334080820601527701822746111895801071476308127712718466820242678243669854081974288505036394384281683693552073870849126198814690482178628773914752693648479285689123435649337405551851065430891483554760931682146364152696919821223014426599290270318660264012533826610532933355457649799416787763680065524912000296190904803207896229169415175212431801952063112971867157736789611190099102719307590817927084432497335298077515911532712339152014831864327658744479084555218289663410488190157509523279487261676176825049029441164433756746168463626185723402972148210421357126463254341192667533915429865054002316949571474656068832396228438383265894748741142585274086686912172862609825217806919837354687107713389236140612370003388727707230149126327977462276316742222855820259674230650662458952055637579276012376156211635877413950217822472848392572228976182779521207367113381433708828309347624181667220981647532601895388068356535877574002287208027671873137039637920378891114303067513154385947724174898472527159726336086398768497868123177136198473268243497532053808415480184756109831561465367348315780549044049680586947760562883824397827768219435473270531375272632206799445070740527228562531043662056952623818851296071248238220826708815614822273674511199333244441724130581909807382163070360564734757182094878046213325777830225629755540663669284245590667889216988875847332619800503443935977667270232703307093231501671522088527752826398920851685673042534232776869265237627596443594096693015053375074871370272027665362497544834769044609332057644527081418500711240372589443388332934549641633545718274215076035800262483518763100745518497159794939279707057012859999186866823036256150835997605951925987860720710833645089917765915664392316273126067932258095310353953507754352271374800591858213604134721413494562923506276000896085000888547691700231933026265475745026892904493085165033759790434391112232673052157657963021688425421555283433268440917372897717344319335808399618583998279999179919716937901285372346817412612335068448554798788376597700933978726602792486532193995440543683063596127068817431667540202734409694310607899345429316239978290577255546719534823483496667113640341578584505582667583034672564398798586465421570487367987754491943768703045272869427896963730906978870709789799900479232962384573759403433188987004253751042582740333005303895422506451335576769228892242934213562063639479530908627069959211130082727801992733713282432574483596053526692001606517612884910002775108345401787951365455078112404819551666468980723508554107557192829185817349115416887350529702115001031882724862001867306450424941826670863028165709262228152435177972909663100739867287275554962834496254176788449881010688363275981460867640441681815410225536882448522517816695633921075093762536616001387749087380655767105377327818488387247567065298075106393612756197678621068339132338852819491397048057541915505126315152745788319611950347337488686090879428002868511746452968299304241778899829592319810433054227470624207439385196374137507041262077139071826329681600400196517496507593724844659468589122129356558689431663203907632679864824758319790892093542943684544741193537778671566668494595558539602888438138170133014507823325502448747400615258586139337371440068103671225684885238210436711337651489005896777412511081429306885466389465116693225733205844618386745616665875433623757332185294737392706121539124724414405795017910628267650203912434297355330985351849159263787735296927419015528737407948693935985766802089796022179627274990967255312594496286720732160461846040500796664018475378311152919041272408055041538664472022073265931804223299499346763724333800837406141282386607917022979835483217235963900201459989847126604579889744328829637519682878259051733162358464449042842218415610520612113367775821492319844984706085270259396068973486018275470637215329107955718073772986304317909842234190787500837059412517079811486179264595059759052647225740862395433605834758786945674300700705808105760659369746686923860380439256927608133790756997324861993556586813883562958514657725774953287151463594978990523174838256633923440612011505971857332449929230152766007006389743562907280633614718717570356190677996580443362166103715496135109100389662685501375778363015987473380876718424251077722666849466955714690366582925361740999423059629082568420099518816607790184039773647624776246148183460785074641309652004556412585612379216392540404335378183311780209372218351722534592495284736518370103607651150486907214695512433615175520172048342534635738988459517419318429545661243898199365985082636028606609227254148569103181066165249865404465934655246106435646292990442191827270551687906868586456756016538243262902988255483843896434202159715458095811122618682614576957332114755003235814915657436947979469355953011092975997838186235231119500044863805028254910100641853915276274047877160923607730600893515481838733997398736115810032968144505354218149220927238711873471462963591893424499878098810317895463212667607554159271997184752912002019021222976062953416526602280091329958804752064340717114830634757353114051341831909226466342391049384156380773261760195780303265535267041566257821093465546460531932996687728058319280151796195355777122978814651112062963032881952473281529874340320673476989479183335234143566948839135867398285452866625087516403487112002204202137761227433114246102411116399463164050383836006187095939212870368125629852359630814262438241311794041206810070086342625204336043847573852571741797690677657985282796296544403506620838496863843027140506279912576508288374831123627993860859449793088450352364406627825889814572924907391128882583922257912720381123420314241104002338126878041283722960115372678682021632153913379972567260982809341360711199151651347587811177103849336838817828193606626147385250134411620636100997747719034040180981008024806644182440719979691300701239757016798495439912560463833265988507251087761308118544105751583978706169357531472111882005331645946583418288139523717272804203701301069472457306505225262121092604190302172258792222345552548618833302101697899241598781782468754796813447524900220860457794026010090707241206158288758577484757718533517054200349506764219894477583445641265339073749160391345773992394707926531123311861095290040990317462961713127291198931812732430840642865615311017239995934771840007389529775960786401014548572859773690702819031819334605966412820221694767680923087924832695085379721728087000814323574950338193330018384569340150654645324976444487583661728668350891306855846972922482932539854031587548358814251528018545656627271085057816936644517694020115283172876759393834199351690263219824199657118201739215694239645141906701086600063580690880721880960575361274704995630689199943033291827787909340043051595570929061096971280669085986646584472869825707882157945016289639264565970184186403615839089247808329609424013620796908802861977251949285376593881046865377238840884069492667312032334602399201524220110040657164049258023891654297204649483054606269224655931250460835491224945742747806548942380966488418216516285682566235657933932490076238321267072583161953348159949421349530084094985556877656563650124399313743291024253853813586966709600617665354338118087540118772332692080300956765619147557948746408683202196403643695117066114224228352578395720303428184274858044531088719529706449456554556775516477567713156868340827646581693863299333883189382476118651142634560964952396728945392850046527547406720641739682170331569213822461166040813701518145930469325780300299618420524416716598738842749539638472906289449375024050682615281530311129703337129107116820964995996176849282494290832132775441917709639849360711657214299629354678609348767257014169000690990457697123368689619463924286891114670622954342194772714062315114021582939617005775780207439335393305293462245812573661948808986149981199687773088513904396718939769385491707478663911695828993239121946250453926431952360856124801181712748746315876130773761189294200815837291915079927527118313487547420707774608019456287997345571990738187171249789482804085439560430550454366625732991347949458473902187535475657407635888130608896632782182397148732189120600467361788746358069917828260796782015009412377819578824338903177673084492221627981390345365598287372497803828519567300444303376940256728462126425283304571322589650752789954377625939010114471450251725058068279471287689241635847172152152298194011625978464406458065710548502497624442004993670201159723058388593122371572085891780310287927806190350571760113330894501114523843322562861764876341044320371163853373718108322091109366675107848930579061579443760896237631791462881665883331071210348823132599723812232899577465727164992484435226566286272140406308170816569241749604637644421544637286982790266273933580878294246144690470603831730209828533058648792592148349358254469208172422417261848768779209662305597261445970470106394894910315906632699415377180863541026178634696375987671776326671367201837213307559386802239803426996610348994636031147335698782801999736601657091578247584979697574217719859110323082264214216433584558083799903100373573477237320671613179609239607033770501550818002818309756197205577103454588280789974107112460365193501506408349207549638686613671949803722146531493379971307671384952384333178748144635696828532629112652665541517128532638748831238602491611618245654040517327731395096341610770897499739938692207431994115844790065229467539906021665217088792971378122725322866768598873909712629452365957330111936614326648049455329194129917533558601615022915699743289928100040309747728868745178918550423451859637882224845121841774106343517191839021838933516507750065223941825557314540240145869192000630546848853633585428930475837759022492441706253003116409644902987453262313877104358192393959228162593898552245460743192902865227159266245285811222569245010231765668069149802163659122236343543772545176601889591709078928244600964709154531721030949808148875910088301323815760652286888118171742298874966142885069623522119319808602012180937220114966686053947715287840303816603058167994470389114828147120970183819702755483332869240868954780917372863918031801034720131435937022668226715163257336452802842906057882648129545561277128464944952895805991065343208019610598251661376646458449492952370732319461738174783226481040049161109437459963028207639424270763403536025033344052487283195928412882114860890243903021610218223207874192010023359095784445121365237902278973362114569846782085626866932637667301671436600927226226515421309581341178853190495157499733770168242214101233496474497059009974398297462066780469901861323914229290061081487720549149904459193681738802984470265300988161363064977122472093778531470253637689769638875498819726802261659919258539307242400500560634496411016865420817703092186489469378995272284959003179158673868415635825724484684429322549347694147668414039431491456486058601537220697530407461934520039744055092656172857453593154316805479875705701270755952753029615465998412427141802467980697789565485546194610888151820243163703709266849223447781840730405366169884649505353693423255166966550348603011487966256987216803016433646718315494960075781876859278709584451798584027297296398531642001172042195744839389453500715135841567724703865127215498177848924153756732570058314718936129376451598406824333427597204853530889320505354058474222889553758627691278107313948229434895423680085601773445221299729445347988475590845395107306646568874767042584300646986607494041290111108063962367736790129477326408027432749619060122966967657257613491980502229775151270223936659588584447274446553715539329266963931459059765109248397525741272338520604124763130482869839172639688318212332513182409936608435378253986109052822608401654568688092739003578453859122093372471571072326403996041487669049038681500521991002496595815833133413666994250704857959049262666023046184313996757613536214622273991448122041597143538021530230198548305236173849652088718843860481526351729220309206633811276064905280095430556532311390301065806091930053466256435423928282423961605243106983595851565819567801267438741781343331380141059971011176536321448833441052384425572935401363566388019723058878394530664026447806645035530721214086323979243321549425545792132556530055806096734952799013296082145727602166615269092337866722362035543905579600709811426352477756110377137800747094912960441657397875149771263757181013677463498095973448533148093248816276043828168752821047645864254231958615650095058447001676486287308602770656212480730191918801491721336064168261320766094325902884569685627449055467703506036107054617120506488853182335028843497116409268555467825123145103095190292740189843441574187691621127726963404050523645232864090462509938069967592930944017074822568933904580147640159342126667845111278163583310230381064573565625449507273902876702513701819384850960405384329095983558361165101957095213633276291456237897531216647789379174023856699121117261689085762559993370418116948484038640684034414027804587954680163459213289957612353597037937685624503024073512237834280277927416529201082332292684167242225474576856690735335278723317149848913984834155536361725055597557632193347118833320395787376976750432740282486002082911266056435661964509038028700654957649752817280886639168155135616686966647362257427793968460531465981106768333526751794422371834862940549258925999329420342012278763922826525348030116621409167010644273734280765935322907889898285631891664593503038759553401321719311854880793043571002451848147005702948101547306146546187991789164329984064547677833837599584153594640882691458230322727268738565646006269940096380275679988030144495165907458582005163907916776760989997349437181454723589160385403342570011905620021555569615910946643966111888929391437315256168173177724131152173452252385312889520798756208918035499479228606961861086034359484714052259750319915084152926372856941648018329956246441189353179987177279372066782302203616262323393149751764819276980807805198176392091575544486635692196541128405611135172541220609290036034521524962446948576087246212814697879302033458560205226163679785387584671884165995179684921976323736508518643551567990927987040332685485374899365639149215208714368072277120455495910437090048860150962950055176312200703412906105775686767256952944144447816145420892216745426717059449454371529595352674312019454785437963434631657943059899625433355334440896453900913308935975101016112050913500521115203661752119914887261491836712053536029203093533109884971120968134485240161532952187027791246274479641315260617476629067253365764452928084393032766554436416119170444973935480164755786811801194811628582694180585984787609347461084297411145737841105640753545059359989019003637644507394467476278378462686631180670729893240843993323335552430750338330906633507722483666487280116795568127264946209501496811054096677064200936817103366387799221029056535106974100718706927907818613144125179337503675918623503248412592285492474211512946417474982576004026953571779628550452859588024347259303080389639800775151946899238997751292547412436842716109605267842379845742351480234690806309300266200849896360186068551005869218703013374230707424947197070601023493697674660096354087015572945126103561395488946240346500900053979289982457371849210819783524027579697256728509322931549882392482664660934594701543336418841239957649288135281726942445749701614986726025400274727310204531880009478318768704454749709719504552670961400060020276894866569754566142416094500047185350021106934675495431737601564324491570515487588844209864146284572250860418735488934651627670435293745652183412842967252093287358346214460286584919747091712142605118476430235599346163206998299611557969708562543896964997093659642173057486452309447932897481276278319492322565741709043011044612598593582043818388087801112252597341715121604232249551195202005655388035843278697575058241929394082142409543313601427812263530141723921728635912881920961559678777073379893768275231271996815608412608513523889196334000031948391865193869151413368226489823854696492294393025691780507912178609876199630266499406509772145057766995605405071896773372058107600872737944583012912588523044580217963788026932297640108148747512761601977713156326992631597015952189548660427219810203644027063535359204853063747681694283452368762865803653685027419015111396178352401804290550833238254614924311235412616522419818187222534589717409580545384641659935787902425826128406828074018442983547596085447311604011129078443142873479699420185899686692859422890738066736882046676810524282068134428060268197017286038529972439723544877450968411565909103095399340336020273600147726474075578727033329555805282508550400145446723973817271909084753028183997816917132084048446420459470095806510629316526245574186807852214786682531088263629944805163040762530728328787440283568088912253048223357260344547039679630553625919569963813716077386110276450950800653576971669415912770442841165881552216460142951425025881368270967138935077764756135862635206008603829164526265530045877277924925763649449465962337604194758181553495098758958045483857763351739586242850614539546835717395942317112723305218119854740083997167073593946784480259701917279312394207849755169487166701408011913017488429606525504461413476900104960238024202722705951102117254176397637045821995220052782804006360332722023164165697811827285405786213396718406863698906195828692294757970946979165942216654945907372073056399947266060876716058052788902220507471841360568898711522385125526928128098280285685978934159087541907849839261983862152965437038548814776280641852296666038684432049784363954463149092912418971549842675316792566071974537561148405995912258092314682843888226330433253072108810684324974012727370899863452052464697897418638573168123051561880322510992326852311158890654979630758085423378980261221752499381586101441248058761990643870942048872333569867113800870402490764932740742884674038203150936245730829414273385405285102082782754926426661815831193054403221047186148841753808305226394980779274407225529715130794050521202024979592626398126172410355666086001081334142640871310326707254053249175619498730023184524625706378914537610748068997099593124991423252381622709482461882855943009359863668949037227279144352558874534273632382633208318643377108511712658836181301536138639078049455696648270739053897480510810919719568862673511767037714766114917063064921063360747076127029395465411084922512391718255295361612166685971272870466218210239328197596896263039437551632639859888297422210972291890589990684337358206788245947770778646568702229791955001853872338632409506129405708723983515788368778303306130893041585026336781195475421331852787696590105624897269245310255325063047531158163897072900222084144067807961944836208909804108642606762743638640410663933370999656942136357972645104726449979793424046982280057458410070077768688017800590240967980480293206666563592913807084559668292394531763731438418745272688399848771231504721966467470963378114299645887417001694088479950349105985600059801167923796319963863555980452099694757717658475417764642479449840663502154517268683385472053468655390781237664976114691655048608432160240098529735724782821626364204671915870287260218390375354837734454792297189461106318101824458179216158260531928827123922979415083531183999916729364448557442430460770320754278693716613829593591214868286873812324030541592197300088484337535910858434126619968903181511962838047171094275171125051143203418493629398811613061018869885249675318104089225441444154991271641722638201413754284702741615165825851010284140728650817890777317637021151283164522153753168443858477448106223856210360232059471858547540471303387712335926797798094768804206700668703015780119662631057176644439432088013377350633748909466256997583125370783154861418030660393299561877554310305785805669545182715481694628383359836656774119596093452038455237678128891835639953979240045656698363761578193041864665745781285277938766969434285205341446786190417456538448751009158701307514719905095302196426160373317815552006881042313800684182466949606359448961522352537811889684581678803108303592076657611093659400646734672948678285431411381431525937971772481550866715393529197376994771782214406654528805269191323398681504579195787301284453498799597518941538697706816772993879372492217202762595067790634388649016930083558986717298877942879236137991719799376451073349986633518999402920194781394043007063936065256542514427593638079893169621695237481331821232451898411799652975535436073359713602297565934507392452966562498030183945182627535882584829213218181273780517158437763564190736066304678650750926724501452901935834523151129832464521110219739041264944452425310376099005943158233629895712125201713993027555635330275523419073406953113159130423064880550630837854119292884208451727178616961926901354148229250783569402201071498858223814900786515272879705568976207236786191025607588557834465379167475671386937195640566068134153652261266709081181924303208513884006111025601846552720922518723662075669560595127743217450669788703635125227611980649581079170891436022764194207731068947277973634173398612383536427072039351053718405602316541337815877184688420167682067604304215539375934982821657236652437370292933569833982368289752756397399151535786297220816474463299398735437298179608612417848762025017074172008658171292080406912905685543272569430543800722267574198080742160064320914671798458933038769253570480176056552787175437502699648336169365780345446817296509298646121270702192720472730660075309701263755777844633098161212874635986594310559352261922578027472654910552559394611487034671138777104549172196926140243740199215196305069269527967058989536424380525816027288725004887729865777698278827951548527124085642311798054949160161148940500080535282788658654972382309977900368611704959170315411907190193529487412299105042305112819604875134343582478912539798903065925618911124067987131234904932353209408458680652898640739952402426560647988679106706312271311290879572975063283639244925545177116644498457448339457679694825648988302315871449645884162647020677240283695200460852546932134317627232302286468476750451860013023889346998575236907530141881530435775561443816836376877565797444849830703971196630591355130203359666049609449002550416806259310964312990695420634304997510394872153391956711111378519593384470727659525122080442530801308161374241000284447423991122741536247183870988607200316620152984811197362737782960570557009459718951730666760036945049505613313704939679053109120694464210895463282259540198604836092494308914466153325532969819643271434652718058174208580434190731791629302109954271256428748084317820993984968158338303824737886229643744544355027916306761849362836641174348717614227215043782667288021197045063392330307947385922687142667505507428046154760224087423377873890992788441545911862312053071467622780325267437708384189833151855368982909013509836359982998458201665445147446784811566080606814509225836214226331309688945729522745181840181500517061138287653759728151278338465114190617058774816741488356415977538725150243786704862675070875496394262026566244083806529904943636338644754393955345196247464193022577908221737482587471501301633815899146129120109040673497719620672218277059597835197062953720736899183287525747308711421403625532365383961176967456993223023605510116198817294271275181797697551812522429574166819163647670719081773499716824320274256582157869311281879051731815733086274950769386114549399823106300173298760367326045554095530311390059670414361880381684366116415480768375913156547912186217662263477346440668407543378253487242836012439776565521330055025018118672438854352526312946147108017315952453428108409345954310259530964772515361766238781660164715491070010203784529309513140002311693321062363134482676729630905156545412849671502699181358927638734437991858217038142367846660869113061145400790522525590033929490546620123920147836987102087878038376747333372817286250458333714570127592134538318059183895046266235590539775127195421822887184947162329743437707199714180380193982182774852277343791562974365504806874766541133637350008548408109710613662704493535824101811075687346268699213399796386645291426491240105053098618685574429446105333854109310371236827736842958697853107573039469842115365301323231594146267537505296838326668573589813264563107917784220760107193792841725527555189976364917963151559027785873332977511729270299754196351988859614207518837978313957655184408737091028262222897332904625177439488257396347881802531475672595026695627928757352408252196337366990079738924626741666553641358665619018969729975463534171735535644903566806278860050054919954980944877816648224646311804206026177780442654130087248926010296054750625558736082493445853505527418981262808421667114107452439981446372010404628647600652769460933237544228171844238559877069452030565353762498256020344768564255362564104031969658023988561304817808650946131552707420210998394710895468253977039551097452226752971344230119873910097290993196005110126626588911135291733984308568398626063641063274486229700315693330465327496896405043540888538935132318677284800278660205928555823555211378067828778587979634388990401384084736354494956165633343376885305055683125690096630123923401828263324023006451217078182188526641008340196263698439550852472923441613398565051333903843338914029394335699698848873168383384359889294387142073391640083895155865781722552007510569495709454986883479915184679247101823874638797258196803827262760119699920878531866580683915957445039225305171063270636542180706085282800594243768165358863197351635459122569391908055602150325551695128667332036146913445734948698121711400655919957007666288541971267635672747883993369634395875213439753944289031538220044965279327483342390880726514477082611975016842538048188342557791512970369884873136734634624568232724236591981893973043519940948688086599982893603979607891181078691949545972906619297695082753355538337604001693666393542700797477597968518890460664693317345811369904876848985493285937607945175873418297751170834160901523988453887699607669502808830917384912787321658315444505962050977480251252436910066428597641098217650629259910258694086151865761898485753482644879285864030189406013017025218617969021507090598639043080397604472277511594656364835759836208281199891569083479330410390343258515647181271946708888443302111723725533342221455290909893705612042879934416443334573661312346868266721955164715574518071067634507455091921517522352784559818457218701839493973962185438661914230937315859367059376883396193614394856636931939974664415218147625782508606013562713917137438643783195948211594931946762811382878647487314091068217815303684895314072627802461145730986017306808423130772535315468213571659691871359824239484798584402561835100842759716119965498457059576240798062544930193310628644137402083078517734767523861457020600099804458680468652158321475716176837018478470750462845927792988508573670744792195291520640200775273078079139316088153998152115240970494550969512050043946996395870376099603016100389451133798495522534278271623344489652335763474190946382656473174311865423633465662982854427992715990871237988542336444148795803053249736735493070290661016340228294560630703871630112961102815112601778204906058226689555425346271735354764379060473883350194986325547265625055317611182643600141876943526753504304312013897575334538103955313061590219995067096977323324541762296361797432686885372566027186580452790896750299904711523838658343123110039003679938841786085406619677339306054397181999451530127836450145998751027150681934475989783784688599892154149425582712422491810396655641464435658130874146431492369115308682188196846565909699240216511759093637847796599222461040566991948009380723679118335321576366896581882139986895484206936059577722342680360885436787546542608220004360260433365606683191872905334806877073937430555144755436062180782991697134830792723211420107950346766622589087019831904775966217564799840871090923479614720621663692816214472738826607071458819241566161923598493482253765749018667477690484768824750078049845210118533828127925834420560572311446609180956770780170393821341591621271636929804101769481946264735291511713630171489923602776215946872461390166325542125316074548259675893515502188506385157185729367654275430169571948310616542887496761905793056309384509227611263163967925348388479666246343710939258914684326565191316050119627756706857101490412402113232627637176333073063169764131159741606358428461681400501488532489398666682215192171394880960369440500690827765589122085801112193250994506739636559736884720828289895649957640822192804219787267757275641015574051308083128711311813763283470375748478983609775383580932875332387687577473592189901714462576133924692891629020419495236449996724998503750026507701596591296796783701490949018017972203349107186650319778181609799118053155675721745385485437387101573815714274175267974690085237476106820680236299065360592703060854472512532904738053279326294496865821608578630982747475894137909738578620534446747915628933231402082303865758096740391565307891325942060945689221391581963049087093517449918417084285111244363622077358559939113633187554587692901226007736490691001576529228464315645175529612516385030604052963647121632265076275650592752335725146678550018109360315646211404016714288339555606638603851834811658743883443946113888353196649499208258598073190637338096017593947141356380854631178816938373574187573560533948061173925317343510880189746973198427903295726687940806016372443830155366580465922950002202220082266604658623402147595951248080343122749275704271145740849480298471565692026844960638764299907824474263462126912404198134301024847031642492302669121652754247565316361289222655857018297409388969353512106636243994887552297638846116294946065175838726606015662822890619089856513874379773333076075375146622104130352879342362898470045822365062009785269825695209047092043052055272207275949842765376870049072179135449001114349403363245335548713265683081867281539298073674326413486918729769598147633598148575245039066621464101309156499895403616938182443398589850611005758187494825500391374212207206630864968587634654348396993653409861459859938313580571124343890045427053009142948842622380925457954464824763769880974785587714769296786377689701852673859433680328118902530554019424141912640704342804437036079572476475815165785802166991952092332568940536928699826253813830283571327220404495026375351044139953656780542379127701057003844759738382430626543634858681400684373314536921203499641448632115601658537002541189951864965577840156256692246766118218889793170078298624944491028348294746920471193955435956117145604712263518791005439859773725756014605974554727835375212872795174605224181997790666840897136292929116519414236484995920721395275804712755739040820488823671088257491938051379273314968804327389798785012582946768530031419516411220848644673026402871357770012325828748662008325441654190128086132319535297519971673046949901455837473925592371998636180427247843637896916862250864735594533715852337623966857264266092194763388345104080588671895516281910450563636771878871306739906521751647518991155127088064191420272597771931734628267325429741579277001045755205631986181895867033675143155003746025206691676532970189032068436683253145430023947943882150368512416749194380130544259020936049490951674373849434492923021921114535296087103338667685798292188629231968623284396839219079653635360940917441564661929196636982810289457836314905712709034006843026881867962534187994948425721489860871311941761762213762942621983580103596484360668142350552729523349468898527536461162632847624496866473855581284454028660967461475391741763446881270085774586442297959250125135570277135998296500007887899054815915996759491125537786277620983388053007414714432184371715693700722786993143783871544272593827407434413285613533215857579080222822267656232270477861681905702642786878645352644943466202041313933325490390331141504975754900795278577714060497118887423279432301008498006205559054655057476501566327226926219031933352002420061545202076262697717070512872551298267628814993169118774796306909657665967421901132689478771615775728059369955186983080189531532309922722749241876350705842771196656233524729754139053896656524158536131789229079678844160843172502897282058035392902047705024226261771568707258241156116716164364017797184180854573706355237471524323137662836789416358532848193850680030978925426423249050674367864927823975657858161730785888730904077274967044977099010693016135619257308697953388511602392017182786030103571189314998575406556854287724652091340380123719121718816532381824920104921268728118510556267639906219069157619904102457200279987881976170375618823985430848292316888088981123492650276474702006715086028185438380157847606985908385193827141121142878091001069356735570390020024189989348099671904889365439798409574761801816174761108185394455489648682142436344802015393468142937849635776075684414471867841083549340687757571372281546504842983723992589424485489056354334842421028050473755872825136898217199474155846232435365847100623240836730165357376396396014951714759158600608234939899039143605118119569447841576310974076692271239633399141074280078552130289809078162072619704625764420017221722267718459450289310937939573205127597757908172527430203243639146688743631135339001338301438298415441201202346486361208251284785549618815200939075500462989142618605825749491086566827439381573207791372776906247924013122154067468339152978189945199467474218299588988170368335016227802652757607873927443527250482722151312190302501471825107867237002975305002158532055770875293194261732602070952222282110159154084383378595547970247985304267419923462830571479541993870968849323458604118538265289857298439157451434477373434846573886787276780334147809072587735035510384288441886437939158494476230458328813300600008964662564084649445458286215052826803556969770140801284405045311390454884871605690856942801212939239921393382091831031358722711750245181350407622333255143598784081457440149611919485434525121747211421098847644113049963340898700096133841497656205157134387089974960756453300513695240998887404156878726965373742312890138635170986056369398767060629981564897063918912795448722929561891421165749026216792520762178983741240544625097202886284861728582551309969203514584163305161559065359494099631669449741664451283346476607709749416568402358146438040011750569235460321065950637577370778016533278396915704930048798219860897347930587330242872366107097498408550077481254306238131514346534342429152312132821811034339320605527389000316833146035704711769818589777851877281781697090799099268588461952248165402551904836309116270631246919064156751765525714838274863484772628813920019506431550765876438092076311049762963973670129746068392653978381833307661974609919470615343575541658651846314698010287663215580857302777266737260826159265913184971233830591866083056254540922710038858871633691849934415755668113919568117777038417279254148459614630856172363637466053053487354955253223171001095879017349991086810922798335352644165548409011116849012414462022170348752041110967266821467988618116651430994529077602651097244791841271550108704859810727756742749600593948059923044825871740624810508444458829257810406774492988873468385682776600162831256411552588217828681514400975134913902998312674491895330848385756961725024821099554446050191686623724171710091920187338943429651342017675466780909288992919861257559712099454886627991755704327144370758288625827406319783273626165799455752777355196396985436001761036744404849187802504321942698273553756200216490289899812916167860169218201714330934450035622034524238936588386779957695257905610963916736029161672169934067851425967394017511749911895365797187324178732120563620088081788921554987157257580831507415874929841198814198224637341989854567879736060836953152971473048918214308302568040034720318436766019245382580798777081476088579830216699530866008027697499648460203381373837673212673089216650180106630194367623530151244692209148808532274002982804087184169423400453626027662192947604943317914934261328607483398775465967120848494828892831948770917989820524111072658042384566121805149551455224529308382797056775248503169520050565773511769817574912536477297530164666374336948696749837536358879633321010834750705709580993793456762340542273058326611884156725161554997381366568482551232657584859036131885602604111988607653318659429207312642429581748817123077698106442473452448308079359953142601321953342124842583935472147836039692482574876035749327496682239520073512233798874581186441471371547511062034059419089468346120244597071177248720743933975897314535328774062225503121313086775001290629164208677681209280005828477573482020270835147616103466756391836732939513332805660722562383327303181165927128202736432552983463230157470141541937071521674696979867046120940658635967841140069200327509109415213141667359130872874383741923061845417488541852938230066944537405990705144201261070990266369691560537737579351459780446887299574776167419634762795518676249757905626092471255205895946784278988663338819511047415074636584770858319588321107520896841365598933301188956455073950902980779804845635372109116286924824761966517224674794683736151626420096705835212814303797936833818666847404642280146508406872973429757563133754177666171691510349170888214743472120244432907029182716490014182273023855154599384534535593927119645458266950823488748810717268150719678255815676535774091082629912369949661576470756662641888407516671473477464956293797783487818839995080218215541169955354304770171578407102254058119880566488916396796109268940273441517886739241356301404796563811876204244379643762531907963144851334551670541198834823071561138070200707260804072214748227924465017277078685805884454291580897018277555446548197016170365198211158948232744953884191687686189345394070216013507901746360681532345965591179514323485542158955025834480804774761938695485749100210346361884413364913987893087071984473370737471547481794908179445861896454706139333897834908291894778673262574312318591153163402041272501106482732133643503085748478000436570083861328084887236544631889546488866581055764989893784885214036875635434347998824704892851617596241084352051090225081030349314578438968378578219656413128719954674900832766295996579744217512915057179742346452142353167804005328154356494880596663068966093282666326898251205284855352986695189046502229658402915058076987683282420493489042220874104553980164494868449243585914100860955317123935724620000556048966591007794229252132230006115394420167764453073916581723177188274920057047263533948938923428361748753822387724868008330472514856776060074881730408165235395476916271919296940070660066191683637199853618482960870888245176744013454153280219015258395879090663023559784345330352113832784450570972025098753641282255393760188337124419189677627768966733979000153821639539588817027563121337494480587383902396349902156523222367839486523907653395801916015655239191459621995444255317812536237808014114310779113615019350237026728680561503741345976392615516848665245847788701444539594054095074437609236743533141073522415507639856504050005038449928925571371038335084061154432385528514208168802023898592331687054067177851183206855416633619026957924863187865540814458935822513925052432814504358719080105503391290758796463051394167763087229917608434528328757831715953305359942779224347978449478698567749493136912946444538481079977635239209678486152320519105391505173013026006470158145254377587637550562952786738696007984506646085457568804411570872383835042747970755722646846634259013197786551173590160894541863586328748407093617548669048008615173950551864086873682235105905285552182259715738249524578346682731167356235529957710781582461580766414187301485909645677235185554164794652030495101669185817143222628667076411381921145802145459384793561535923049547375698472591632303956079564935551487256811473856427716183561215759476818261010554606014537336624494992298305104680107645299391839510492892295398340385019141657567756734170388312854443765769651131850911822875189838857451880157686003019510652219445134463631791431992471577131356515514925951765893789888808431748307429343895572532543793123594453324650734422846286705738093969112286359476162996651627331875918720006951743439134030115281096323798483449471625146924545212456162387041744491921497209220047064636936697327164487930635183367301875825748639391520578804756532615376767505173316493512727854116999468080970891737169670206869237817158360099759282196871986339704248446104818051122893036201959578631623925524805004174812409663159716151183252685355595885840161565580382890134304257806473301209660473387344815102619017879929749221849961187171617995306348319723306993561313567679795281711989554718904885960926405526219111191266088135328643363444108614755416979170658602640554880015662420723166884973982400905586785143405184113898888489222786399606776082252795848218432717357417265419408162009970173991490877035184668569913564708061811270812438899392567268187586730685810632322184840824727217970515232675072823666450533269346428532919613675355060475604681301639459958564437374009805879759051350337635953155808016075131968156745328670941482927244290241688094125568120817131679609691019656843392217060263554903097193637531204650040667741021588395268010406014729042133059979734701993949358909408283389589894715719406079745485899541623310615971040685259663005712976961092817988356999453595284056803161411958670140458546632349872622520092311785866360521510880517267781486131283503241583511594889722888914936118598284283149032087758180518107573847814029560515905373256571255353459464825955049211587471565262674363973211473665780267065255693442892599650438569030160233411571762591862149326416190089126309760479515081079428229796279656636509298635797504366512402102923287889386877344131458324597238440921716307863112201355683245501005808813808835859958715109501140090176583951599118146286131836221241690251258082767135472148405805792106279521889820168811684127280762335926948772194138074473305968474425599214503733787672506470758637388266018320455900394633145047015241536596612468199324133802489292699573383603004634206472229595319463003402775144790054642306902832786840058788993385926187088296565766846051373139307481740384310888624154994016429886693696421229369504292436651447931407987326545163310587709098949763714166071877006717462426398060797029374511529751664973432600240296686656254211436976402598149064625817888505334860274802421215234936145782860700608431436154903704680396708065505136943782806029904342828338846413176281473366032263003106710290903805338038414565071555115429841541923249169824122590598296892002054196084868726959172666243943791487302531428253479633330550624809962010216803506694749998764923890546939956042461091598000402777610990848575075184444252615067144416532796390739139443612307283364708705975504705487898683257709030911248934182139760631100373801961474703313593290651762575815188219666150213431215221037659167646120314052498553882004343994005073213967551837416780292113311786657877097428948331846077704908782797414470938558897396432792662894354837953924068973256747162213594404151028670443371911271895138642040488388600150016691080130234839254159095728657696232480901647925064569668066712809700447824512665048223069730110045746928994664096689759563217062616082091772974322899415528523057518873795546385825200786924761275518313851062557411051648877823175437941477272825504216599062341035097814112249868960805204872737384026983456202900397053569416072117349283313659766392980854835713891889800601520822228668668057224560759561125723758392585221696633575511199008817742770909051379352807674430293852855400896270863546683363394932022844170354515970648209954597086919083981483870225108281279054861382772624494523152049744313442356559660099947828260413196207053721915224627177503899739445238233087292734260066879264821398102023143806183232871720474466151630442478867363858766176262071001570663599935261668440791636304931648743688351972121370662669387455480839272282516689346542180746452418232676628088503285951595050418162031799220609049466684998407256311630891398043919375114220039254604774587392731662895624232670125334444585441913581735814861866115629534262588393349317374074636885733016604369813216791698258526162316094558835461561311831082733934625724980087148748368320638569839274906317799634643809419882997593356678222807855480885514572866209857306352124824772718636314099500957649108416575071033341438377095954110782006775499523485116367031936448729751972875371267049753529431811415449201495074281100843453168874642216351555529612613718186357336638352933044198903071175723898151995446132998444659345429507393786758417097379108683282376170611341553117274032271788925656505398500390129244531694024793311575350669490809549573980661700805967235647745724367151765751625798325707398057146919689013275142323596474540693307366447009537856199578182898787014830230235520743542790476318058876629660668647067607738643926651802195875292389964177303091180279534521978230091076726404820651625388907494499543391843596495021990977900640818417680894968006710445115508323574679471687171127166036266017695079479350199413945606011049679551078894120767476833616810227702232994900761646567717004522243254542728849885260393439033301125937571070224091569975479036439660334654418405599129424333156541299905655470746953084634644290969984877984374168709213784355078317055959202358988636738175718619514976522056396884012229204061840674374598652500390935726090111007214317543837848721281252154135459171618425278346559752564262601776276723969664066350459135104934763867124346391887303611234019767338629248742264716285892914839322956654314886817818765547077816838450807330466270392715327226965457021865718745062528117664880381847873098139866412429665643790422297132192323680629852820738140735576053334819575501997045451301572026220064820014819362145312743028710871922312502528188800872647840906808835221980223319287714012955020859093489187045713704674981923958342015520222047962720255424563321898818413451897063105490695598495404351713451190616376285785059913675281602700390768091573115258846836857862493568216281543522065504003700459172704591735643804859802716804211699640297184013431655209521670300617935857918274661182623580334792417918993089061495617265733282225362324663155773251920604774016906157905292562075711897957961418052892649732406564813120317587898783022984352919621120257996770983695120024551840754755354648160801158381792469872017008311467912391569991439223864250650042442641963398595473070278039109749195644214532478366541964816942231729934898813495217732721984885222298983228215203705557676531552817249546107128090683593085369584353292653504095113657394921508709519945730706515377967351905377391304273575795232328211451243926132209185674305550202590253663391640757035326901280740781069575596915319054121352809080024311242601548916963101519123437379331350683585427586020481424140865756467242522676501499282823375276373925114532274616812846202620636720826777051957718408062571458820513359760235602449682002282327195808088435280050651701773681154583430454637413960611781846912640258217972663369347659032540544210418701149926557994951380909239670673051588054977325587593062246145595892086985349242447176766113383112481459877721144024294060427386795577261166474394180536164110390228070224446813055247077607293671593004172511221181148491803081121606857795099833049734565434291182544638109393332009416011761407506054690928707798980561903245403029820476643037970845482378672537562468510356531173064907811963532285946735367192692079540874165805606374736456232769992720207614905567375463110624496991688763777592084307558251673693212209141493683256483052788986000759193118414188166042459288566945000455399128670520084587641245664835284235781543888791892199379463877017561579939715119841436290033925491351393576055681947717534396005982046595071725388495379268970280702794727164955000296519745064486922611076788330478324074131182183980367853227618338247180076975459075560410290278143433174940554115228979510797342400685925226291052100109128142784955593219115426239112894557888685395479643091933672223398733637353086262534125978798049811859724752564218516575379943290918322147841957426170613558809600276993969080248417095072054328805423747048411398550682993320744510767156936483793183785581641519476837854362265651415009196382513097046449912924618394665209869540541969174648647154930787128356400730524582100070942613238979929625998445742776690436483873022421776933289247275244018906534904621782290762508080736667835177838816818725446128956416565655922457340139169037273679079517764067655882186069254393619571236184558498700774782141711992701060164797022690251598877802074606656623530015518872381229942813167675045453693566578034545836796905591467185356946884141878931959737625940078718119268317971217968915464316654497176697541406275451510770462426754092150863135094628402822725232490253338795251483158875996374997373446610257716404575592825707073139474315544107875579158451351305897907799251293095774194008281565722778779110022123618340984800986897821309522841837561719811784656964756282665618714729796032300616745174202296053138760309572204763827621389423759831916740249929361439442086307344083607827498691668229176167927315746570973137746449901014661755397884148544468116922657337980897183247500305443439373436100231098872246430446288312859272436395458491691257027127110013994009489563107633061855745013443318184855377728119307450941843314550017076277007820684417862620712850763179900784554106894012139350737367613375681763615905615066461928472866593331028060253860389976785570481403383678733531803906182017817815675936833008448885321424413414145337669093091139318726043157596959510342635960724985930355374241728372425465967366624592812285986954336371494238146611247331261985875559727247188052812657134478609997150634527499999961040131056356085886128729298306004511078436115149137288332154430525459474897601655516002104137499330082421363905136929056839644878610429608329563958139318435727321207440119733043361041423702447461717228119355839047298635388902752920877993547044435009708628618585450466100357909747256376922166788622255025452600347428261171080346623863546547580141777140772177502077031674312180794240748382252604201858927169959388805505827318249615692988279825903722266101351041104057348270919051106369490329781200972704013749596661686467819952354268986492056571586789561916374133693620999373201926458343688687611545061324553931658866965759717611583374957316374456531680091896307604235037739498976373057113249074335977143234935319598273776160533035260240472480342384961317670491754209178939404666504865874370576719437334504984083522001749428663545107074305634559491445099799155681651289997436345043801563726494189312272313587810810309833029060817855163227992524599896168919532411015802929517029021920749657035572164311285564010835262492019445577632156553834236131493315576084577674091666634429671001114913892507843632432661855984349061292550560021339741173018553922040250786815062658878932173156329662396009448926291703853377557980552491416815347593920810903757755404341568542827175029728227305765504293224730329048861473570528227846915572223859264188022897861958438141464551913377016047949749950811223377720038590663873190589905917679229011513441969906390939445131045850637927638933613048002962151723486574854877400777405809552775743009264910971960464790261795624961055069421862417794058519915041023723378268407463746721996650090897086884625845887387340712635404774620734886966058803146805341747696543456591936379158756364441307101497830860941658160902412801695629474542745292999533701862597935676345873605492101462946810639660531645127820720729772830879258646818185987015807816684324796677982592606797712383936579990176462836452070617178257298388157996177206980733863782749396937378628840421939208725334501745574735988383074071551055887326583208507031940994258759793540489272899966937302570404611213206593975038336575900355515998092403556227630941693923406962920272539754368944394609250977179814832239661400088762967428768975511998579911353552605239865451151622940338104068883652101238451112804792912303103741677323279996089672421084751270527870022502572538567188524782333247133482227868620847417256010701989751971169163586782515429517952854700609182460214322079686622360371486656529720138971776204757237011558983372539687600596968408532281454060194313989275143361498662832423851814509623934011132142385889824112159901256008788590677048855856413401542479427070551775997118243170911581092829885185049745322693517574088544429406462698706487337441852811644901422785048052959767623393699017017416282203182390732909579896952488461824872701815158531916661988592455959423484709895279690907492455191631272593972050407715379969605095792498626878311680317917151719084250043288732531750777534350387405726422512742709890147435904705554067417534615260304105842092961341552034404389956433650577380389693855789565594701664347371476662291764104868176310314166662365403104765765799791499607999570222526289427029675931371420070084673151892904540688476372209250730175287808910366942744382127820834328839713455972295072912022578884981830487472283656819411096136949621218964612751775509792303572067828033432769954817454758936073103660086615311694945007690202332898711988369234470083247481175252876644210662792771537326366704448578540215357015389491411548707356719906567159904442581698249461179536785424157190035402503794785792457494765179554497182620990052237774722928960240979551511202655232443330568033022404855639674626868701866242003599688127410635999541172818258298905700613813697300771085525704397971020442651839019263083821074585225922022882682306407785480195908745628256364628434746728060649902544706903404460775440535969529198239177106355172811391117084573040837812379627878767952533897239037937591218848123733663433994558456795900490514113431952499027129961468914768451471002851396899380070827780385618074047635548691155455923657747053137916654796069629978161316983838488320840381015202034526679515657421518364573667868671829956797456983056558798147197577824274832504346575992374312298846397447560650146081306275457450901712734374777192676784814538195878607558681280554625326584953148253517502320669101340370394864934847204267538740567097867434967154114082889945638598306903509273075155300773195531062177013683733655913020526728439901048934402800542280575905859502321275057568469351304695513735036118616755958282334149957380939132619999010465281190430114418543395189237701768346861249623430356250434211294335372177561120111006896683201415999459457783796546054336462275635070539068203478575484038426661109797189830275646479269644850439343336164628324666468248126990406204405403467195929226446817458027992830383078185747466880007960868987506177649717340998626474902847336865687959295417091381592357544017842900820906893797899544211477233905786925854829139520525550865262027546291911886593820369618144270892840520597804561579106727852098519610321448461614407225200770897814562383964683777641194446861023222831412356815249261353613226980758969088982051933974994640159583743234471462081324579487651101335063977282566193905774534160364951415739142784914089384140531947689437526579445238753930993355115413982282228546519035803206649343618319629885860976681280373179939954229519574469679328731068540297833712187012259706808741072994516939949135000496193691208012645523854536831813617156717309755473580839984128274912879264096656618065571472709832092035009117683397330452823092673844771120132506423767236399081710439637401758755616823039122271264403882636137698520357627449611019615117586336560437457756568292969765401463069625714704069101338144467853410029572462981046729869874446983207919078934960780943607925489615937447156666891805650227606665885904769766822456742473904436730956199164458044788380723583690840584896053993539961727711382468502849782265215348945261285196041268994659466686162299739823726487823429412349715806175482045680288130983220724630286056239820705511388930912526150584567391173814043671828138349456629544898301176534688762512805262763945631802057881408079776628016039979357552414509511380384101001248453384446512509818036201174388064995443799425915247452683187876878039035366104344926099047958132581143355955915930952290631541932603224037124004860788103239628212494201867262175049389055302735880034392778442623489864656008389031040815975740343740763540498974243238194497181463166902644228226430836473447900737350264840191235791672367108255575107044057205444273007980232886455511749053587729991988898764752840444783390408400567505894212373440062599610253284452237762632872591209558279373291003905054000603353477220070077503897274324820256886168721640985521875549556684275402608253643421017174990848113748901958122947096020100989355957570491955654488074156389152061211051275609775419906579064405330544104320169740653070719079163423091869124851329475430320615375322613705332965433845525983054315534646894917593763639226223915617660796826106448259773123027275187565245243169679266546643041559802938291539425781416696042776659826243229107607902921609890344339996573036794103883980064409084629904215268216920012462430725874898325890348467603466479396449164105299419776940454674707409807618582337061024657392256198032361443174356233204497628758614527659649408600681934586580443478507325468344891272562622220274085760661708726450995624567687167959521708447482476698922706745746098302842579693467098929177665257418429433660648085909026078042219539802035286410362640593096932134180660405846706121357935230141858990083023814283027624500760523343843914943847292992221303254304897131952042773525239050144237181370331557193703737828205034849499000083655643278794620020677311405335320076848478678387897778850110135649180558954711865187269579140504119183560457222111879693747629795704544606287865589242624057256224488914028096393321314817369794873296216973333470264797484528009304081804695745984994827627435188173904405607620046295360080010781444096533671809113920213645082957579551862040473095564570691649775339417405385912430397206010024341381035217791574235150491342533601278100666981616152289583572478382577835543229586582557742046590770809932024953800768552207505829713029192171105398409730483219489113395948215631139267901676888412852318769342986938747556223891683674585117445475877602652112457559448968532648360929254689383521861840795935544191679131666469801894801893758727794469043196786050708529724656388605847154963065770414280520841669042348527166879886550788426773873509237274027255793772047645104061932218499396145085375366921371003794464880271246477351685017600558587587931910526201621726488483247457367134565024364920538375184541465772612199718846699261629360893314793800358428827456716294638849009956207658598843768640873869557766171576378608350527366802590888027418368562575341997177841537079965085889947930265357375827159664856337732728150875873752694977788664583179166027245212921439160134070372218124018378574931891062180246402440932944445556572100955143338895805783300958266040991555160374193195770918785880587023319367040342612528378485369038565672055693289509550735238727456823321260802503996280518213527012504083463454888331057513014227509419421768520779517116392404437058423328653798838790902203710778837153669301734676362161684913282004393218395077685246352979934280998343010661761485402645181853419757330273650445317084128362310314311213463762174280584930975079656460519218325599232089545055323655675469955183167027666317142477073494043006267100748630625094890489378183680293879832359005448539564291097612459661074756309384966523103709533048275569019353535005539240177746398695595819597263266165530030191138077637115764867648487506544092438723629077423655370768450345577319038194688815599191807360113214397778266009390458648961017943951630904619725897510399844222965692272207477006220474926828999371149303214707143276453729382040307208042081525642560146517814758407754569192104906403574255285451713746805922044137608580333823119379331738910076570226509511868407974979169808319554892737658747147022151550448774639721839758557344796772353234702654881316435910394723217778710635103360352903505394134709532023390239038692964396184212760989073337050128538521492645865739344633450872881997713436061167298557836290621531432437133428360281700911399457180971038930641179066457743887183649305610352985646270128941642715493916137719663404327791744181395861971026673282920935655521920701604243806423217652183251230856360139147586296255743989955312303244117028135709528351285016139735657193359017539215206263051615069258285383753854884519623169502997844374098162638885702956031922234600155656769454808759124148529279466277758653540852377448263588367816490899359108389327636292836675702512117006161399523401666794070329562353409312675282372166437559830196526634022136514096368238687213425969454924016193569269407059864710564590716588523355007496824901662431334504195297975350093159640592785788255277493658294506524656622522634300925921663314197100311036957005301332355948225062033908115484896348509521535129007834640042994210105490603815173064008605446510550762085803228539060248176382978127914829406695916283438865772653021644049525818616817612402978393983574168222750164070794738367685683788795336486992827373297119105522377300485453084225572386126430861160356258482473721137285323596224196017055571388253953647208900977489201844561476387744634990208262300933526935794027780226498017647833886874569661145290248676868080834707614032382463496784732016714577549341543509060967238261219426207884588678856301113568352353406541724602603080390023929651013030442749847440665271714740294976658123084157984312080053522334296758137142484906860413872121377195194837153028471598508541377104672404505264065135052353623382379921762095228026052638764335741479649836228776412183544175159955071580685830015173714560576211486292273142541973724579012737802666116215522573675274149471837375894651939999948227550923566353287940079652087879870344477131118759057258069904332755866950201222722953874335331230618579613407118027388408154051723623785628335133704466605821545452610328990571105154753534942066400984747146300388303949697502039618340648395929693670006958362662142598726086576645501223373547579453931850365686557666442240449343153242344810075550746209421593184665301654476930319118911584141445957975507937799245688625715550003641921985772725524388161459690241183389096656704758455452323379530352113238449533528733061985885928621307202829814475954140382033015759397296606663369442392598458966705037639509830197761390261295229855405307978473722968667558048888766512408950604401274577214828472905430199323110968600941703973584489709112312148242789350173968780155918765704066840827636602927850753827689640468492607733969729706511487821392177981499768762553085576006166417918338759313197849345772114728026077075475966397993890491151631202969379296262382081286277075369874641874005689695890948971903609067900717424617243342019701475101918748237215638188656537976302015470982058169977968366451878161638528467539347636134157677640474045984141333676300156029447809050636097453585095759097977818738391552437565436778946337880870083577959025088714832289874360666310897821661461234361190608347416181392339230416921792200284442815311013654377061220461482627309242590705252164757315456670195719288529000801128688165513576025049359867800987796176807059684207667497939536699154574008803078041369213226949092511938917948426282151991907559356671834857594127146732232942233511750863387369454706306017352420472047016969321506312902204810711267577043965543262160803335803011058455417262628756568742091162878071413828659167521418754882219057500528660485927688774150214944293574833410682898940272590719895347232747850436849967035190046476778166704850651112031042863489998754103520840062313574608768948457570199081888603519162250898626575955971350569600890695182731104974661307736352581796989381993551661526475017288494961341471133852043758965478726199928710487975179711804211187189816629052792456789350633246947191819249721269013914730030928312632543685197446164448102822308429438215345236819240969777415385501777105635456487279754219856209078283750317998610190048398408961195897154519599300986307378396475656900476965132161731951262912147541516239235340618424144184460138348196723610800838439709712240447557873038303603938625878880565737846788151988431220149555156065546543290209431772955231462504754077757213250648217045503279245453920723846224894195520272235588757480125365751052691958552731235873371665966728889494875970117819601378011280916146790856900425693101225535275389439730439675445322395531420958752518301321325452109481514210322638099197441975126890981628773236781756093360099903078801598506178449391936942037624291232723750603686495432755519814375303087565283618678715879935581719145662090002853406106157310656564131333166067696894280207219163071046974346899727704081937997294497994865741891868073247959355403893038342745840330116673926994958157219760196424696199182087885895232289515261365020988833116213774022668281635398478437884179269063408137493229534913515424221238905151613765615641398462763638697229100956508730673628944863463244158456932934517396426095793110275064395673005192259033806670148864736091949307081794023430757753603721902303006036119106439433684518540658576570083815910172239933296810723008757851134481379512642485059087717497402920822419957156231549102543856922213602511252427393972207504328108862950319280175183062882432984104292084608103010144848405372963449673988797768758992220787505036990664371299718174430083132618701224101464373538098852721865741366273248796142218163210733442533611906639470670647405136909006382367479057424720790193000731997575940720140596694891338679933534425927422959994943856516498958652750854899453237720023352678539930665618595901639491410587861776512144212617579525605494123536106759707656190300196993740046351370417320955011445130155390167581132155844861530573235879932785844159126915079469941555207653724531269724493501493407108713052011353583304406180019400417562711087858750631555537503798363124685704125562716725725467053070776390767781734387209167280864765662820571970485826244164630541789097277221688602229436554228794859418167482284168278112715716692825462840768337922376585659139491218299540176466583916328565574274399278977131956683059838876376847087589236587801274387451157388085782782984904717992983627792963987212149349094524915912369944254486408917209684511134688167685747011748607322752024193582693514301615283252453064956697743677282246186527999036131854757154999557882482438705899558519216150793235519012668955512616522946144178868028624940687015631655887791907613124461580765008678363290860889182562735821795275659009797083282637560901118031039846066327450258612623276688371053324732311248592810097295588838479814831520099658344346749163571723545898147904522029093221525392928854772064394007236966153886459922926858523568217070532669528460927856424046566810911033808939319985294219808021758504854808877102469750310632234597400241730263115876565212229114854371732665493345060019945003294633380787560593798613547148487687750826262815743072742502103983054432628595297304605977475814268658887108055167704201100956905374929251280898978724950330954037078468605931833677386146212585241283055197106748675769205889747893988544320247696111884733050802639301869213926369331024399935273020902831191401357080887245552964026309045083170621661172586111786182238856453051904719301730577772536763509416243578349918704868286536413019218161612962371175229090504247130002082800373661102200804843048630412271292203683670096775849131448038279997363936285960163654776384483752906876764269812819581638799558328212413956932352639751236954617617790851390474373761199186194968912495406077506801358996387070984972730268219257263195476637131158029885599197429417991876062596649729404606853847955934269159048305982720045543433861101496197341066732474468807371944483109555166171160950286466245562012899952592526747797091505355273804589180310175690413414614169443739660167945430794269084322516618012395813713500124928034463046724310536083575580538817842723194897214606869779904678787026000808764069807101749537260456318217918893450452313771181031700940996384135333972605798663284346167457965507313150911812085432555147525245958212256862974363986120529223262686948777744896873840698578481790728343653268296683401970965775409376865545150208114857022126362610233721333855609889271686069324777991841759004153693774356780239743094459655236043624612629660874826064122450479594097830799133799642993428507193933947572831502801519393794189644728099203296928768721475029954439288215140317810682314527777838507629878098942625843582923959195278092904243261031116262770471691720823718194352997589603287362735913829097370741201933775056408784952015957705513844745930723558987961877106297024142244628134405444346387381701606716074362987054480210504889726674990659266901734590818869579837374163575760004363040511483906977811927800314920824562258471347121432604303166371336031372771156682068084860778346219981429395072285035001284127665490504565364438433391020622724089585919912919327827127091917193376551393860197516010689200053804122080536979932873457228450452514839698070469828592882454743166987445478176552257962247292439496446298664059557430695842910743754791265525999661611951143307011122378851840575338708104800853897037089699298103803119075739291785806032283526757832892423993090886266650677932432826470605118459471099099584078691754304440040917489166675854487772428198003013784597119864071917182538243400386581615880560797626988919820681059530133626180413224094189223754181948909831433727637713652718480219933458090970174623704935890261537172974462371499738444787518607011301963103868547458878073042275654094027935617840590055071977819427481485932974784690148187499051410549009099065302103321999745046874885368587887214678400095663356576845411608877897910217487174475858810858109133367932196343575440298464931440707526351985521034749849933585118740794109796915468473988009406596246147930101940887031059830221141392283219449207433612676581141401923368849988429907295420100958230273171854884287939373991187997909199052284663096458515785290883710709934042000107004567819544015950507810217286246965018453051132641584990050963585148673525898591085167866362161764156965703487234357971875174382583904578735345598009392642390725510354309693472717069351658705682141084048766568104251124362068142182097952916973023390829562581648596693800701494798046144548397652495208848396016060556079796632265621081185886792468489039742653931116983806214381430087124072172357814725368759051069061371175918165791942650272797655432198422905611643292030463035925080004868308292603975931017094254326314055483223677271793715888347005216959477615476444189473998042909930096131141992751348280896700484320129036050304312393757718424440013331498011397054253393306717527800711274096664847632685530345288795520921087838078747734434110806617751488996800953062327973968664757229466823342215121417656741220873415451324454741212543542782926876060728160646628506759554460392576286419827779617135548673243851981569538619386176753160837912929479013733939896518874067459548019695868802693708367408474587890618601514553781737721692845070760613662532024213835753649031130850740775506657637104723587478713531699291293149486328217593200180167244812832048786621036311290546724611852325486589756880004112547500892856803564642913606739473892403750595204759567270745458465916638724153853389865603583121678708571622309963058307274953826319008237617108701779975528422033888212156297807806051589226110838059403683040804377780974528896001063853208857879422703169069288856169227514047660065800737693247397045843554313278548897714166563620386175687574207445243728958986940534659218875915786076799366875050525754443037142928498240293041226418249713726435598397306078963381640586266717668243669329960607836055651479032557754296109264424996543277211940943490604356646449209854899390076026565007157810149288455328034744925696462646363003032069271702609360755607236215363100495822675350305312518455877093912157999381131902202924274094986828509260873153127153651408486951655790991848030901536591450230624316382917305543165017203205028826359266241631724729482772703649745877631316617492950299624564486563863609623086847604591467315340871392666655722828057540033574601055061561647059351979697317266665373984385691646156869470140662855517799948439607860499023131392125372353088570879874199672295237750446536495633027978926416161856340010905261244225226047712677259589841225810997002326135951236752765818683685931033367878433595500825880711851523506910847887566564705055903434969407587835993743620216405980752112160993069360394724780514544163675941260286058772781699134654922618791782325860165021829860134921912508594599236305492681721683800256024275775280060032749986199860100511795273055917591463880262260175062786775885771314045257137950827592283157588081570832762182354482259977769015535693296596076648291776244162566788209751518531468126946231939526270291994177874580506549179427297877813843966753855626639545652825101792695122056291049962744166356333471218151093977608955418912436234046377321411641449728073441258974412081402783335022043449687383671371055650591799396403482400264238788362185692271485981993534905249824620099944717662435808832539010469448805673598910476196752642904080912155954880771036379726778797060075141423669570277187617973262949301918167024356693367222186586014360915900151313291521370518446854128352535408579524128568706250222303986608186649687316833384246071045116386009309892722534438434241299209801759127102652761845824256862274109890028196804518353397060113120517207752977306066041780366389822427669008971879382738686625333328917323619919430419740377593043305953798542176448651771285248174352331651011893422295784299013018440864479680489229869129041565484430158986923157867044967157248487916540978036448900265968801276975273214361216507516464575385066803630443088825744646720603380709930161547665275616050257050333675595494017878879960661009866528535440392874857309629672313346924343233478501973771579017713506371918392177206152074266100600958899742492310947423167889218911414572912565653654533327145542397689561383257486300269265577670289439833463741895080882603578010244162262341312738096682407442384220328499093809637897578024482800867903183469757698070486377805762017600240564709894188579955021567057216820513836683691711601613370042893024187706734401937822950245383366389132428647935883988253939639794562163142973846065742054522535811938540909675914149448067630991277647054401716302086911700932418643147965370647500573021517596748053799911438976702889539591469233469835375782494536240661162960597870293814842910439924024504545892076798776250942696746991811385414409092434835681707103100744119438921451818227067015737413206045712642300339725709387781232447141174833672041949903557313971659914101413938291206854165081753387832967768609846295864598460064777618679177718882202503903823153254606276718032080378635028308351269325533585916744487365378475477894105569391474498838503898473419439331578000154204099877766121657162673789035409485970439449936377081980984719333383424840331388396960406988886497853948254074696449069372263323938665044837596143145667124826667159846976833913275303854350240986206098032583718874279126993045911196474346647028136325565619452928455690596930708185238049780557824991080076695623392287494145237749486673423821395201476153270048859186284205095726407970582666745366236508458599594493728414818284181454891000889958960200372568434334621801528270915853634210880887537832156227380849904029012085921648280968700691277532353192196518087042067184727921610121889812691745313648204045207490927898946378084900348975557705385834214935241773135667012914452507400772929610457621892929320190816246877573541944896476151099048348535649721165501358182131274089343895942313922757976944249093008794276347516115554903984167114797553891773715196180376892139493486895620162663149310471098250500487687582755190381905440523288528505648229479019408500207769265766169376324322571014924079402968546589816302575783054550653478107292705658560107147682688748418153122493132668447301877588172929765412980494110935795020494827767109100132571954927313994004109267460985703985380059297363087937117097421435378305267809982154786838636856427033078778383545093564573574006411571785745664252548864639268618339933105791901922703104301310018275343842150114367720478093509421524085873651427093871841155735267687536140613272177851151498166453759988736037573253435713549073218316582178698492375285234354560222947047311843765743198019041354360791320168013786238090998238266395116558807734003034606336448283906724535749596412938053107030837864455544869405346253867859264318497931071373599660671681830521976648428495053990428781441367841661131357596297104057848109124047943554866822875705875704877784300535680406671649575589962764723421066327179314133061646652470196413480284923116626943498533769248057736168538643556402218709174220340455939634073240989810662451747434202938454055591225068252062675841380560722196432063696077035400669307966962305031875054537765587431811126934802657908755609033463670930164113383694697726045749041759493076072987619153921681677849827949334036927139135456741708330259339140370388081616951658522730944094688947017341004481380950541743520304091303317151827552156471818880184968852071535869124844454364377497991154755621112884251779874637763629198372225222784617912492741630669009173819931607999743390215682455563486748105986123359915267209635812983879441837044054248925494688098614750053779070530777190874339039653713678786030058564016108676306306881536710976445461409891326408878420007992337595503887232260834976712279829653887549784768961079014361792725746893047010415591411929958704013719369939925233676632624778481856965149013769786247492545807970635534730902768031575282681743959977190827549901376809580465371402794826353176095682762840656972990613801899410444650015927171856270090160911419215115172488325183264915181253232814780511090761040016631485598679295938548232505435283223991218159430569717065725638726146820587136259244644520322167031544422713082502399931298117989682631647415815269666117042045171892795744982773934071383320624559400731929288678849390018836172734463852414728563626296396563211074471835138338293858909456450503787199330436336046962265283412364201886581016614141607437220833140385002490847125774605405920891584162882296504311078505989620314373655852316095524150384454393407331516838263975339158380365417675379094991642828132987659192428202966128219675886362746842111013888306043827279221369661961188224382515551521095983690575958818464684429195420351757255372873752675324239104490792013258471484708178695065742561500303852418988200904137252778828445851692588984791420944949857806845266885799048579748056878518116916143587643775037679826423294116060171240230216453053971789900279667714985298400583385057775937652365623215396757233658576040864563422844885938970762512571355499375830076278409786184497620051781735930564438994291791682376006216959700609353319555670310048376449789932392019301274381943852653878140940568595833874426187700787293174408703166200461617765608242538386833144686849173638848845250044383282912695840372222945816150335764364954050214678995862735785995357781132062797297348753730258513850223976262439338401565096605646148714517768216793115632983716919471383586686732281390340628208756808995156066238846474186496549921242937155906330164149759239649902028147752545648833657238561563414658829729355646170085364255558034775954359563648324937788671581968648899970021175286911223227955203873716094784419415883613988206303002572126069104828436829076501174153738626759970771547944707613194437673789047129003621238275895305319264396859964647686727079375266744206569089990960474916455041858354810699480057860862017527690418490160134486990608188729655028257798794387612727852768101548496940288782386227203601116982175454964664144713856458278352774294352275928023755977954247173334265119763366049631968436843317644396106855747104659029578015109185331476542571458512444143927269460441465892296416048509470659377204759559232356010812868972885221993646763199842401802512810038527220457395779970226901601100052347171864994881747390833877376604449498193150141923142446137263954265165416342339303487507569171795726714232168954119128025006738105797415678659498866629004725647719409744823001780921169087588168162529920130999392035291190892951734362850449002523976380392831621786099984911166442520420922479505652265473093065587261816837220950300254266182819875066348048984823860762219161156760045262923954583484675104873658985105533650597871666448628446085843070091608371871552044565107216425117536079461862755709287637481154834628060484231864311500348836397828536782391769938561678726453613947594432754359017455655037600930684463402402131823135841842511117237059913567965207003807416908933500671574228600024900519664469633758264401689628534638853278383849366076805008042589788386798616924757993224300192417863501669186560428354846101361981522998303665945348871859858716778524546802838035695223249064640974280367319980193943354025188320194414349099222459193639060604973669453287660159862503203846573419749421440817019750312358801553884632511408521960702817379601896508330164841539843464903772326444177780571260799840810636211432510940250613550621248255394731104780238682931633544772159115669476853656844595763881329351233313725774302849944010433609137652505474159407166738445987138592973357092089552764609508917598772398733983541594542145881881432571921053816928340585773060532807464520127092354402297628346976408958258944816676807756882095980907989060715987044025136115816349155370889244695105719725402537057535487613802198989821333524424288242009940260263716070542735030486084904337356810055729017148546738923201111734841000422318591995105836119097212931591851263959651137878172069003317791521314743708906634526934791451941025614234028617525139295630463109421919334961700289010304568177014584921011882988747171287695111913861598895131354632680530878969687287078809120580086247616373143721682287362760721812351751216760490019505253502614271061932824621548402525613020282664639495116581981520627726390579707642996995995878789234762174314213148634175827419617008912940896282998218733250363757115353655515563702321274500934080525897536359467354172201915361546955171004016131946278437640068148793064580095025176606405177285171632610278133849552132830440986484986193921453240079848910444959692247919381529517944287865999635797275335915697527476754638811810962548508187674790359967962202174673055076691953241838908068104933292162329524665343992534099112956132389807710384705007693536068159580834899980356842614937562362984884318032434686890902896241317977989099137081155200805993665394567134775677360856015067984314347909976193432047150086168350420138525540358724833881655957986185004993475696427085091460959602234179530595531963494903682151982215324659987890442934085342946803486061277659625007621495248010936134734792967142746956207832463566966558560667980111429544046830669000294810986922995134119372029296999769362296607921337076803824335587479041545586461688171850525513454242893739519323622388617850408669278582772121059618176872669067712089230898853007308483525795386236805398849340733873007284165518873833256121924243392114551440858859447580884603405890499210449727620309319519774754053935028806763886128237526523889780091662072341784334554744985853457938999659989362902146872443208851113115263898988325355449273623370140462564249777160601635633563383744932375430519441289388541031132843579973302500390070590316281589647834844045485401344708668959767314612003224698055279872596954254200964459213694463281675782290545117802087981831897312522389676112188023958949482752147798821347324053704715639557453329100869917551464996854938092012524583816871492590382654180371305767268514307287207716565860998269773278762729427640202790233042698457402531396398743208063448135607177853812652456891563504738969253300452503138210854379855713927803752151570114688174311059223848732342440159684782397271751212668142021231842497126966912945632104039535258045904873773636154934753398529813812925766528365289682342207221156631169787334473240190441772009431046668061520084948521688052085861770913093077152831063305207903533693286234865237939745561988415657046481165714004948728498199289809579065606442347140757016414169121298375660150952148988338745147539297918340629271111222090859277046376334766077109703224507910321046081617076149811728196319469339998859518035356672140829445269488989254259510193001147084257383850075093283242725143656726871864762316359286944872611316789266214880371829124469630135628170602611245443811389887606719194332976777027938449380560258922152428646882309099721961640000969018658446089576173181307220813903859287902438234110402621316173941080797487678356108515133089978035967029830321075449721768781081604870525246734291274583264644016503119881880678274831487392254596086941925941159973846625880365556746215209201336264104128835115161872408341766756281302177455437177706278622070118853639520533803650410022582428215820028072655890711540921326228120015883963834176768977951059894604605445301325870250829025135276172986103060813423664078419885312333385164118355459167205509188943451431161152010382606778132144225471072922750632041016901330579055834984355132328570884322651478255310809862980747242322473639273409225466694635778781394767589818556108952589673300012035431978181338609931546550081329053329612407489565555352242638993166219376082254287209761121648451609684804030777858337703431183502502611184620226333390090327799777217561879740395434733265559561744832236272988111693377224506669908112755717191434203412923993396574957488883605703737595180162755930028201874276216337345869306766305131950099438892339055042283677236872740867470964241064115966271210976703527618950901756702341565541107052133876554284483937641584628944257380238302883744906125326562981261422485025531055856769316356183134309429538085556785687499301971076980382263660602853888013731725311526688610980239505041501593268833736458195282744673189523989789676997527770677324002810667514180154954407935754858502589982000200709790828818952324189287842611884122110620394312465114247824826647922691792770376838749901516680869161414629173065005867674332148240108465537054254171837384525440969090653819645838560635728255812951283947220091900195757516575035173225501261260961903998125487196625422341185936032500971777413799606735901501946020023787150040249919273534001380960206236830279116220845506966701675240739490785756208809233799429671070425397294175135390329296115720349459704183393542312312444747721734148324433161451063310646648865663804996536152780645075184523801184119749618630793469242825592097981107960216361028045712929946388435312048783852060307317720410956636744297754815521918115141828286631165848087918624401151861963034183709911994628600903232337673396984486775929802395422782620996403322027651361988595477187844076493801045807663560327038025334763453890161508740569653059409164600494469128900096896469561935778793392866569400543877866242733918473629799857038194836734930957599388546098350813825819126416497409503098528015400573742400221756128036149198101287532900267881225689730544387737777655906767984269859373286758011541906733946439223354491592847979846234815658319487215169430103777829378886495414774042327767139395741965294767910607126389383833307137420304545153381831973329444862033489161189332393886184476829564791184133229862732933817267515376066948582320480988572296511123548111968025465297720046353388286737566341601253329136617658575387541995380765522133811468325142757670835687687328310933216968832597750956573519194259723866601945735407128587427380546059773106886137926878718578676530472284358746441327404037877025454673128838804730900986898419164065686464596522187693488290922035227558021091891314990115117414425881575932916786720408864878150395761974563241689175384349713462896006494269421102567431233037391026557701898463723817884106002037091036261555632295721219995135631883893030691952337154536048769461617989760324097669777208043240689417329439897682311943113995639006641313927563374931432731101015744842810485352874910887630546139263521292463548714898771464110234406628637792224059436017444471188516275945310956406646738522256403067628197516644622720756989237278258075190364373294480267977569395913895661294329454040732602708860139787202530788281808039905595714177387089331193309329682531490933719082131196234140767660589402580226000782995819834947548114943114673616196951099046718029460251660846681119953975403381409766161890796308965468518758946857949471201197452722651485974188819174117345385821756912761502541788938455275870090415064943482645041075836607896519969696474314518295451793965898624265695494686060886593413602343492837774891676969762406621565292299530776627079939523310627930369536629100356653593245472244901146861493651697978129104569367021261934678284847765515645161223885688881782288846500297503496551442302626164896365557389548611367593714488881529363695737937367395248207760661535876616119950989976409679807330609075227639831923233075261593677397866890362897312587130575495210352446932466756841643140983170271641287486703103908163758358242671802812910478901332549826354087804993252103878689787873272881007426145630309906227353228237849513013214525392131254392484119757444093366884867474494939231478449365770133173775314535332120150599374966457971961186744420781250360049031668768864811969766329235326017559564134758510473401454504488296216627288676727970567677823657632249923595189467511351398480382604399151595671219104479479388057922482144248948570247799051302286662150530399415966693541888044689455030294183972333252752180283736922340664453688127382301373163306842225328612805125254381558986215807697666755880658343210638170377377156079433284150045629100350283022043466351925848542828522522184212472601192702928462915773494099633664866792966282522011665464131503150414350628455581235492012637258400977206412428621258427969602142953378202290564086492942959601068755453685934827123799567577402325285855224257018664594018673260079041715863838659836882386377454359676837606351743673904255722240447316559467200658649329226804485157478437224975028662498905694934863855343206149248739584655261992533050240396364469777768237757010319246890822867044342325463825669900352336518827630268793373851737250825665407030563647876677723815335362140947330522036903847512722162139334200270413933049759183230800122838975290223149591782841768107944945348921548927116452372689923526618961200324914355914599176235568883662821427294689055360293739348422030735742428444099223387519205297108564634773741427558957814004518286068004794865063478696856679330570699022151591313710991231990642126343657502571975506777730419596949583525947257088414565095994076151531290781888448022299401431214441240396123187018914602107764075129905417368659881926925965770925178084064018881556608032546015311647857285815156783331229238564035575155888933637952060820165756937369929260877848723290358438567574495245245125354293388723511300574257348797798970082924072664893276862324468127498715913021010877661048456201317108459279629149403467329510306969913292956027216452683700525373413501573954617899954343829965113980585795470938732644485599434879533242648585644581549205570851501632576452119850670387756627928396390530665693870443832753992462277518366399316738872540088186006848686931194339682911835914616685279702231326960100810450454928260613803793816271290052499217287615866783323597611357202563695423483748669570073976140173568807455744620671048341974427623824442928975402748323204912823907991056249186999150117524648449421704256758723352841715814836207380981341796908368547024569942727934392837953152712807649125329465497193725256118642732644277322756984106692320778658702625330229310354336380629492307100587557386301177670761687938890716568722664830198253641335039541794811177605872800389538987478184008109117004941532654191014400199901046460625009593148908768164635396571932183377159796450290089560406690232891380302306897623074897033359592404581057374161810056118387080005030822266493521907061741570657446115603683341072574241888163523100482667989154263720518580404210888980585244386674871613508157385631816135840073205562893509726875107298580851521294643235482192589341066682914149672441520327018961818596720022713809076928255441137862132525901880133246896994273950803177224040620871261572479892615689170881186133817963063522029061895813719796939576551246485034493193844003025422116875880819119653832271413546489962530042746182503423413554882231933181026059521306336698669414412706186458003654221932766411914688184312364745147126883408729688762785886504121763990733573193641263870596639744937492105468040067270162943579885955743297439976246417881435416688486745926830103421891720896831396828915803972935735211401979895167370983636388392810935972276085649139582743847923520366889057212815032211139652284847935831003386232849059722772782932782931208872377020742096987435721949732273462932247801660059629575548413697353352703339425143155741074480134912442421330884993988567405543977951737177500591198425899807093952609089493806611872257300824113960396857143171579230374229207657768894824261768167477315609981780803695395857292644515159340375871998759514042857685848782477897141529608433935339834717830476084509381240448557586952775377364500202396683213748697473440849523688438706271963873337675984040980565951950843361087029418535577007543406081642353054789458080293082915996431286562403620891007044647198308788740468232698051215588621464322201989191039458001358296538900544320757802765754021370898985323183391551652618347132880073615240708811045621630100916866560315217261317648563269499384331531418141928558341984292862033873373992324035755869925989347298782786535711013135460263480540531515382348714920500740121094526224842034343807014207904952940168714334490148098871531989350475007184106138311285929351791338234876355566782805180154497020337246187200521258140253191719585371339353973936824868954993394239894659421703867090961172112626776873967303490952124750632608044257792700764679039028798208184747401051008781648345963834938920373987885754854015618404776225504679049967949365026182166446433219431697308163117558415646628719459793080067231439152024837208217301192994636137460892257710501329238000135080814552476796291438752042841050757024653078262745367247793507875771405650244405293182775362141197733497022780716993684454919879371999876521812364405649836116826140278656095149557546024456824236158058198716298434898050228029839824598043564985228615836013818176184862699534984476229153570990116983890775073291719694518258722386564932391705994646600634058472530217869677878114035928452273255859041359628215824202725343738141173415510781175303481266546438581196553235206689835764140079957474037492388352816810332550674906422797171099705196044923754631917240605350127782367489304691649075672301162914211088052788004698765487360812858576932409873082750585048468316476936331717158449904015394102116462555439887630481870696150324193122198864395650270600153518574461761511872840388549289730091328952558164624736642077167872226390016226766417604968736140569443405616649322923240706039701779173367409240075575564698739354057780377388049962479388747878437834836529705212148320735993678010812173440684257179625393519914618092547913183172867259207178416164638378022452820791545775627166964075741989482071106200365535450309786238105859003482369536054372021046809563194357166710619198579224871436775615068622926914322826308588124321285825165327827844739217899542225675449797949914821071199668918691056637409131991347828948248362529468053442318130765978849730802888029288701858889472882123396540950342561776559137815578130784208931275823523135867835054572008040999916751178742443506141422555151525977040606388990229042792063391646445864349637513579714222449273096692204872632052707488552448482280329879027371502249164201174831078828784499825545550301678403592511796067980399174560652283273206840119140985334196780485026805699294736373832088969443177872419900196355097693214903511922642385167397559843260376779693950921737853856050924253267771522889086312193776719427246481740498933433916694661113416115056084154497238685681035557306348482960697083316902949837305579595171420997385685908188360392053331667269115037546964409146223172829265394067784686821862259503725835676037049414230267800264006322722428025808852188432683602745628237855278802487904177596131355844226956116477174226471249401055589692857388042246943517045861818239080205644039482179028507792159892572990144282972873072063109103743244758706219028175656666587608178236918478082662311241300450729802291783256975478163581801560934069808128600012607666159889454289556101273219588259477011519782927042662924258288283034043639828304615613153152978243149797994688538811778308966412344807297475874818600363412406119030164479387071752437917049730242322446141090047217391824721471187052172506937130049210575525525095169212107369623264901450692635077868546472155653677519499643810866951227985168405826794455885013637019235678819758518762458227176863039858111683762014997410685689549625189175061302596357396148318370456639829512070379212060698374339394163379941247588132013262118075315489744204500370489660603226918611720182373257086128788052123428116910479292708417749284889060500229609726927187704907004933330803459676325466898489179086044492993063506926032660813118916901693995403684600951837877980845157549594910897619176953141608472134380753953409659216611343674586477275943006502855065966161056534204923259833612620524444568662547194065256454837780131610103383458640210261943704494595637898093360742380224598682401857906497195011728184863167898756608395604416807312503891807777137631457879371155459212622073707030725601827649016274118304639805863273912611426284995335249903877237880844199812577722859615592685348991782579693048591783244238871346724861195812689723544250101891355109226458953244996537101891517414784110631444578512836013642965417333437223169131194350344308264781220453020462663056573441334787471280603147315905406997936333907141647073518054754187695935037409250642788838669412175183879688984772567319463973658826682584058859057418929373647666213631407774200786902023655916887421360667164691473205050047327444215941895695919140479160594081086917863732100058806432245673766870130680601683058771937251586218478405154068613249836883325369604424240588330074239851338961018071920774740876877893011344946581966508281106658416631020243690344563028374135166298691827929931506985812954166709650473746457141485955666576442832568371892143776847962407243266114151753985567141503346503523203377175531372577406398681935418431301929611750296397218899557240207583834817491868132883081929276555958287024296821201349419841335038365138798839087725714645965769711472152208414844620442884010415066308544415202645751140012001362619284727184879675163654590358732569288583936129920833130913010408572808093672262490597086780176767591564629905496574715088093135316158326942470612883548515915235870816770352366577433062476146793030016425696868639184330122893393696662421914401897252459142756625554314710608104013868104424419356662193306501846902693448797353930153568198602318044342447676827721591952905073343832559642580468028042463514470128030183299931965584360098086649033368794059021803405326334095791651456402774373197542680012200574814066904573713182951700256744574863311482135899154958359161404034144223855060090883277312519703457407675008482994832406512078617829661815305913851348960478385747315692968744601492669713861135891725678464781535270439916377916799791569384314228164533176542650265869314224958484692080091002215802686492322955655532856305551373396108719879588930524203843075088070365837885738695090768681225453500205109797872126728125638412134499328373261941683119591167610051306081875362289026980553437089724536035881636405221915303785652593423147793310290124501527582737070837198434043800752856418413100863530512431520706947641117167314424111229415149906727691354169999094564416262697495529559783009907476380566134610858545005070739369451925132239847206620392647690828849166897259614792936163673037256381747506742053176934075473122153645774257325143383157377964763176909983175971064472006054975624192929335512164627000133055228227934655253421689578673906744675780934239018494761179623185863830726890579600475140301141584227322957064347042618995625729431363468146744267087819728988402600979713824203564634639233651565299185850873474986387627949036716284735375829906461458057756739752056704057970407985674714618890246178651939302199717507983916666523587671156952827105968381215256086699391517508611662481832392121251821341405074468332948200354246436859006737233213297217587595024962678295066769004700562544342396953765179423141202350201666989694039175094868609795455077703125018452030306585895921445972349117298061947381794148103006700205034369721883167609570423417923204562832688916879404559327179210252903562299851867259464975749316157292756132096821106938365143892640990399729956667837685689434195900534378029385965887439322887861259859904160852740712998204840423905900007642962730786276887769027967938958575819247205141719169186413872772698875828900084089918210044901295280986277779817067047886250212528271948924283006251461160799118908867493680226532350081599286973544646333929390757897777806425309439340832643881942823457080686075340123652145118819193483664462024601522665203781506200202696600219319290500412998996698784064880710032964091884320966956149647646730464237885595067825305745029670855721111434805290546171621330573182045307659704356830229474363243466835213705932556052829849163854996556220312948279130470786548200688722939335079194987357686334411202104530751552639565881727006129177196947012776634067653098912202498337263776272745403512356791184154772417552431051764666504926279404581953699047734766333197113393047298062371164081481501485890052639820820965955558727622644497559926558507276785350706958988590226065789999883162294292747733403928976130933863981744292379360523847884389321002539743109291874475952482963477155108504334034880747137873833829242357685098016544195570229278228491043220220406588668165669404584197421249006612840368336648764039517194377640027687970580499761678202078720964564052179418224508617375554350625211017964174771019703998803229943788668427082924176377348289976839037380795235966893339472549377176936734422761230394042229233844169198556891957126212611517294873210509390777788840434465537903818860804426831028686409064217119966985759244104481887018386598732424982873535345395229801688205551510119621347559587550416156906991239474451029116626199205311084827918064105266441885657407983465040013887458254446274720539872404547582283952220743393428508796295122570755937369806098585826406072834340690017416590274379655920462930709521540576881548948536786806312139371493560044789809102627175299312954994517963961046915336112346834535440964457329578398018371862435592225642025526961835797483975685595710929697179194982904361891258812879389463948533211019127611745970375464791504301288842660036412155429923853387655115803338806813665378722510945546526231062400822699663018860588325372307416981229105621678863895567076403459551073704259329607136139544317148145101527142216312398200001740052688596116307174609733429326180163676035709589403190481989090184168548109215744183172429610684532209510865412401102183202889423287682184589848951170402334810053537811845537552884445664314769386340494041517378105225811025563728003266155728552871960749169245367852803722250166715828926031450389428273487505124248415037136117087452002814082585390041924595155429529091258093094673685245605562191724513830617851066804510639403494319261994643678846410803515265382740860949714341907406771834278677074901332874106777958847765196796914304493688921377458110236852438794085527820811225686554293508664718153876323679706901267039841802666945640422237335273062898238888072230651982939236203488363635885536219505067838883324447140678730852220570074357589032798571372771783481711733422253436438245234498719387909841719546904674748227584548218466687427006194545306699816098602168338212416807074467828995339628026070561293349736367082352026481033200996243319221632116327738273090591747054270512667565789768681152836037475226267692663564965819290079953869069595036570542145564039286378373618392453413138589303202246071165603460935597900879509204845004642769656192192786049020630336860381809261273012784282169205252670134034586868917092847192348942281549351733952704128377123164112784997739885772798219550731939719287656248949926543120723428298246566311056590963452761019970474046233777209368621279651115397129243071649427894654432417965594816968573558269908816999714177752133681843365438462531593103017595794974637672602583616908277577527969997053223186848315671125295439167582471363564620341668259254065989225770254590847984189722471589214678734168156322977117649238845612773132189156516792850875004367609550155818181805667978983332199716382104517976098552099325714444438158970319839760176458396003881804399904141165443828981580459267160534872930375626963265740078108739061327381167559746052588616847428045187274713200156961390772714458286200432078680574380518725267477726461745048745257960420222616446512138750431690810576679442797366728502342976852343705686839395279751501677718714217723646816821857452690488919524320687881783052812596420733459115504722770733167682719375581460607365255530363009989596431182623412557482471841938649664547704913533423220338348793481258488256907532478128835265866958075276317361079907661134446760856033815459139828565828811209184946312201262746161622904153773517834486376326137624332247430628564967546827138424735196484107949143984336505828816679594993574021409816792017969843461031371037917490130716837468119928993135746010230069212721757805001800270911630184824726370038106401060514579166936397555639001863589316855098949852886577905825715165232188151747274178581880131755378757372360608848868990996425845067389280517497916040886099594281166103988973633221223420079089179854375320833540649223224420453016527943220104577223637526283298448771920410015863698267581322079805452674039226564516544029374892323881812098248682151934924212610520854084450354414486572542903536003328225378092652106076851202314735813674700105566645366614786065128356283873046132979928856567676566797697691842192071050490743090826714876104436393497028950205085216969875394141703442954066745551063787274942418372832745223583391805155409329327169549470722899040828442138848162016563054974502501114699714181033870177529402151050707896983392566194136484737387424435717828773184986285498594016887097545032913982639193791846862910768207561168244543314218814851890227317508462017983233753928013356703455631012990009673149540951290559580577535728813128226865179654154735870587138398144563090156928964885431046273498947260060420001653446504570716627344110815099027063647159818149877102190152434729003998363542953858212409652162044901325491694522336890828500551269507292777879356343184601026842060324812982739223026506088539740543170048199824086486075975171550501480596461659130506005198442607378464788098294481364873522449491825110578170860012553445143822886882462929214905711703688872721413337357026929330939435669538761101102228382035963842136247706035214655078263409112527818151182257041354160430038667939551724638887797072374524734641418298702819400421253735501436401416709957942037255078737842738914023145382591799509992748131511427024792361107686204475891207629369795637914820086868751662533072269156760567029825719433947585162327576679568331492628878774865281473350187468523469700559934676565923605337179898478345634869973764569980960017681787017735141033374546341855627614379006054192775915352523849809431403926247726403350153456326002517505766795454670747222101950792749362847195117386875446121493196751777104018100618044493769169580108079938453912565646168844720987365406150772419530374298715137521324808870402366076053821025346611686962482931054692241981436825274475345014805420514039163042078810917811978067348857054838429408419401114765323920632149285131972314329566251920837337633430421352904628634686926001995214140895419223523733778308270820739441293261335328228295783455762429224615927493404639302995655738119885692511581429625732823787969116699597438748025885355788955370503936430634631617710920504335448195006334779884226398583347269038142240419791147585895220311071767560715991918295395130493740724974679366971704294095523850844553548480463747345992525612723210723699656712887383899511751614506584048203610657059004313618944720948009811221088699894834162762727819613818385366892023137057495760904046782329957882680507714519003547068901299107672056977134561655561629707005999102358575029503579210155361624639328026722820676845995461451818446015138618188103506791516774018933854342462199071831870337851836680868973156964329632982203089223675754311371250085197738658986906767111032419776122859133510435880115533643019549965286993498386763837964190273697924707743712384309605879389363746868154888210950662141097159239014954170315057193856041521863924952937896825714396487390994783505706696923907647625795034910628801512530744718252817561497290992099656209595343243543588590406507756893768675827700455117122648261570688554922135543333975080093226981276878160794293716880857817050489158724869726821307391047680117751823038727483861139368962140252410784954930815965314386411051473124569233995090611730535308831066926382193235653534762529247536401460473740205335931648132929280517895223733180960591015906117706974022127317925237023555730216674808465185933945028188467306722756478066279551370554425312017031361702266216390667182293680484115559566558811459733957778668737940334498062689590215559156587643105826177618019815895490204885539014124343453206492169397227420230800375574859073263327932799645887697762164660230339498324887090484290501134716540621590064598936436706449255366350194744736798814798574742479152973723785302099540025259413116980385869538377153479069379403017100346695036860059651724978208357044371458892191817350259709174110277341476766280196414637314377108593457637383371058815656517864479479819627395933262092451541890515198254262930683874377866619141487806254484588654658443958657633702278607824880603705532403905014652086384855630253929337728212995743383059540554527250075359497265853742525634682973906702102220165462188917495392804209966182322197097836854129230644525820997742925580468083413658309260464603748367661893616362101649500654311193057486610992929476363591799917018795409633046155732910186883389102243942916440067247958090924994170027060258205635646297995270954913668200828817724523557461004347077611048140791814129071526193079038955818674257242510151635817357734889156169320593606926297530855692678291173962641650831573040697817091783133952813123787493855228288905661513562065453090059216254619144239177683187015153420073629869652004342251273310138177259045787720608007899475576339867492659950964688175910005060907081295270162549970633500213046019704572054028546218888364285493852312034027642967908487402930987168821511743105797557402222268980127941067960258771570684921832334671530568905409462226621402331775080368272208518324133647501315414191818935957024936142731952423646133006696833591628227214684751768379422041616703362014789679901849698941477082255530970552271263310918375837211032332105200997043234657297419972242318775259046490049111513503277586241297091413413119023830581354595055380932802403881042772029141151756768087753457495454263434442843240477351692419017749164535296591423594611755036486748299848807561971041728774521996659652837730836666844239527770354495389894680339104241849786627804176851336856635994511878039385693501133428304463722773132652863662002571519152653039825119910203060969984931492286537319251247004811215172187897000236125071198402925115635325396949919592187448617845745468443971606308305846736808847945648396097702476214764964599350817430120112447901062099541212147930708280698679924990094836086919951228976065662143479193668101040912176594922839478058202312403050093871000759544075558319458992282424363377132468028490397835432443590925754542521926764901582072066161869334333807104216658018648539567022029781969574081405683055108110437679689869038140557516468882554219280475745729513180873793013267838155688283694406778173778442173444600153273433932145191912579215728651449547090352331914698270616207715078473125124188094673872643658211554026930981940501668545334510849520893341945647260300231756221514598829782538612278302975556627993608302474664895084560270211088346866169627001390997342572232540443247523228738485221325426647546475006230762519868455700501551006328450041294770452076599582452184882190380496142294402649467655001519647312152678675530741220776402384455462049372874025003918193272777223697828412717882310802641975721348664365443286171912695136714643585965725409033768530941168334426116022580115276337820705701305202353195192197111280279450380951265477027267291343968128353436456647402857843138631934347485455617335181405725232579475779575438218511903429531702435097411354523262068832954849009470020181795107465231774492020074840426097922233984783107915909792917932317833212834763422810868073372806577571401308352025266595192221532802766293197672117577431772914747402335967938587099196367708833316229007567513638504385333216167636074665231838271084407098231672401892997294794254985465768949886035508952742101411933401551042784287988548273552152823580748005982546064697945526601561574995533845970507388760133864880610929419182910138709548257155159664673297273092555125107562215950764128364534675074863934021801496302891665225043176531343025401991098156385881569316345193883852941219902479038100216121562559872932394905007225101919331511623600575126888053058676631402321206459518845420766632037996728629122487363151949605926380164844320881774166172672135965849378167407726212586513581410307887777243299605220665475448846296601720977658191454871055683726405461438112881806952931668180943921587700454843379781273759454538476112188354894469501011546848061460837262248235472601822230484020334426233763236439097767303030608402918113628713311425396617886446175034428600922540884420020895922860198013813653113770344347923846649958984508346592032277237925646138258500606785873368034309073723985580741288266476222728084881289324032736123700674751450912143909438899812828621304739913167851831312723584627049158306975803260989861261352340409406268639936065148403928459217590284353540493939825970193505550718764366950036618045559862231249187794446472629951544835836203903040203606560718066497221316064890639640044429311969515201569536458124668182188716159867164184675693519105812634878806114864356712361981538639537646907602017790971046682741781495738153993821493335881301632646009103982798234621849664255298426152572672797444532514867138956949884560572528604247121774926760133741330759501698741619249016403130562232962034937770979366715843291395246312573778937361923697649680810923530895358148934177435528741105476244103350802691084864772661164644838977016983535226202560687803610407827752358332910812775593503522248594933147007062250763480785268499773707894919809420312559265073487784525791649943040194767037677304467822162267818297339724404162409481634755628350309692585947099814497852478236419402083932693579212399828061604709944261412606229100645212075555239168452026429123697478682297765838756880782011471430229282871041082985762543568729878745859832043885177313444013729222858400819507527031443692784104486708495379981982132872811983366411704902630877362763920105935501049593737135411161976119516912046291912777158761042505756763951753807787168231308476858426743344497667966171370507159948610619025953869533907757885745466606975845400701500256271391869425226194122147781575508728251990039037075492097562990089249949500679525700857737324891689682114980147894864993580778210519746038031720927643723401735625602564167200829765859606294385492255620048441204395898425605137003365093922074091249598484407459972786080506862949562440928060116809119136440398342546976130847090969148608933371725503953397071145988508883356066946864430546206423439073519175593736023397248545235740600641818510901513535260917677684828867325108014605469902403881646887060515744941091230697504439304842287323041169713861772953650098517456808170309794232201521365006762940948622276302223463735812793027360776507891167068625321483326176664827733736327175850452029068554768425619452622734440089289472989751380942181446402602375123127213829099712269816102229290239355186541419377817049206755526824542983613362033645361009542983683609958177224517736616572577972740059732220772898481406943868727628929796185612064047358336126729730448773166613062676123191044080887860953944817843296203404511632643956307188665073903086764892012835246949463322208920534419346369892285574305163591167319986515061274270413929507853670949466680067609842550990918839023170461953108945746822035615995352048424712536714352650705317100964687323530467209091537654893461591288919433309036688791965790116471926105463008967464219074834651485499353530549866059986722809294384361001267704020599124918364252800444152757341815387838992818781876290171807546196619867856977023134246385285119429772887045943374508341200265075722478595085011121337318184132890538868402760034396535570329999016228226545346648588531028937135377783137179445764030178180935567596445725231637267465772942280448984512972443898641674062147272127999193211671476853430249658429261180583044601660686342124958668632718960716893769497296578589776074263127069118617588061967624286311100031716284384887664176209183065999707534441474780930485617606116732241630858991490068292487168455189710529450656148587094041060153334083107739609374840992852885889077063233009873047371718930744205329958906934002015262349473462069202764553189915252011698535107815716336895490949639234516066502015279203115474094368669489331733550253510619144768306468375900554120572169664630034816157226944723238777876255791035161723658360372393345658157148919663183300660422786803348202926672431634099374337491422988651821218046720514037947834057175280759650673017747568318637510099908866210948447894557656961506703363933885221898022066672771483271534753846321693378796403902510392559273529991536705960175856332380962730489782155705160242250544709475827190336577238352285034987443966320790058501355606284625755378781500877661706751410386914119189985889318584690846900283016094987813683070072712876394714198084432575328486236550134352453187274640064509927184339954007306437263514674906406585181095131231218084562644053240346134567458785324345066395040755906448135520204882892126324433147915928968459586635237238972311669374516109501901608873578323632968631675368370141166790697866565900360580483390674201406289455462833959704398066119304638737844004990591130732197798250287038798190048680477720864749810920010921833386299222047888843123153512337847742723600275654689409587926481587245794801963822824117564996674017904957315500128351186048833414988145402239629301594615111732018418683610778359421969400496563702562716461237368857482650427228360455600753548985926353096477120113978416067306525512331430907815268071126768988765547212275087145982637098148843345453027729050210001015263557491159233109781403479473999876651014027261472938286521603392823685414751251176577968237900818059074661769433575239039011945134297769813978125362970221048122514620883711487966687357852754523798130042525758822693916111916411127994276015227706635569086745399788776444143115130510279080284176796947632765420659373872700479979959221502726851011214384349932307757367748832583215217738923802543729318432139993471889197972962381460828821381848429349004928132134951405032532724951936309166612663091780072692160643403334458123036330153996694497241709231044342042291430406377785073169593089872554510022074194899812385044569245076641947966741546228433555090350316546836456930110069133493120874715507886191385954845311106100214395921005416843462037622250326924516369351775675582831708929530042658820173788850996701079092097608390451338115984666655167960088338420286683950969841166807217388723825412542801167883127702462332259389122655742538781349981300809769709148746189676957126504562027199662891119963138352271378458469212822287827981279919445796261236441067816013316693939539419134538757594455065746860126663786434070644009515931403271061421967090908880859585803754624562110081805249204173322444888780610693566962877350827016599149927616156066390113478169831705341984660090192283361622998631854795196706595788712510102850479087287236731187620430260453624583048873281676068644607508083958295973142371320813017504292272188123492274619633831602091279888315894919292255180077725313773934968108489304119681336791611297753348796044658463914493615062909444626118116993475045299255571660394236333008824134378295803271011786633966615055904307636345975102474312356661759402529527506397504361833125263093148308777818471671665745273362001910924539953597088141518710917662878033744707866319406274535129959422882162005416618182313978369442775028991596923413657754151767518914178460953440982685862801316314514802796150663543069523005132707495008594857947941113211694627344374203850253019050012504764502981751277500140361080858125147382706465228957524397231037284124590530803751138458856043584099052788992649787277473899702013405870196911716147973821554371206433231145668635848631043918277997184934840514885163287851564821492128818421898329058224927637489642246374413493821121878827780817307148072990916067108136003620314208838148479867207976935459346578320965251570010836115615558183510939514290972806005399054565977885276762312284075697395023837587969960489818436847977285974557838323215719341928086023830260162458143497623726167463318322704460857909740857811754861743345248838241662958138128661865934178800211238090483718214318372089289014805779848244171873395301966691869580264552261710348430026573604317179152197497343969186776221995037248326058263057254607230207055256367499280819887433114159059084783462028206464057956368477152642871168597124729468929029804171133167821372034922629721871775159260803481806858797971811117844786263890795530797550508140249832611363386808945289108049803904184951431141176588057606008634839153403222369972834840930268181899858603126115063872736183820704930908939026999965730262466385551356150206596504411873671715263487980501119066002494677213237022187714476650258145698692735059193664693917609042718798333264368597504486556309203679082444326644711812120610718839309553911469831278750521332107590219657083188094716605729754147842579919320318176521992533208677725229369411225136914380125331960751828748879270629928646954249961661530184553172401924889258770896979321799935461896258958762261726249878812764975880449471551782203437481319417647965245481091278178630795544946298435520354751027399209709410776281204847382746343845980984588971160669328719067917957177153342336353639695230716085891585252861556560735344347669340061271838558956158452412214455499191373361431477626613850965519737747705651468257514105038715386779716159542329551318871394923057668279217698893601639952767755960811136534095610329124333234871245204642685063961756175465469746564593118748111371556135520145307153350963181224501411621382717845190483004406239543911148500920827481672748318879542096328379702700896479731728495219892565498080272470148735898184266455181414746900029771027549964562009955065751514171858177733085036137017545449658431427917844274385282438073306685168594049225855942981831598535326511108886042931477338084975931358252177903790870358806440416624301036220041064265961869655199934623680094628639332784204163243393485610518314245094908288169305491986463222764285009809144005731167101787388062012294868109317543029907493686969650534412109187265625659512788052294119592245502996100809569320273421183696388379591776511730579060216568665513716152625861534419535372989456532649677335139785864601473676068796127381284336599478028945711713747562367542389787826944150834116343848466273780160733452255075413232487489089524142777408572247568246683526183147530469788242428674000218678173943887726552307626398127315516375364066297555128955193946558487716931192636493606598307535158506891835153395617654210389492602923868901108563475652754508643491606003260213289702699685908992586930348750702890815822039317848009034833744212836910023209954985263656488514759871358364154810969024553512150725215741205990529306763881710788903611186791807537804081379864634551620104605698068417399520344457608714774100533800587251926528461636005831511746195731161111050348581801484723213912339935164042171217564794880393961562333006013237929975048237813019595951490537649458739317152456911537309227201349327477742950050978722784827947010281216238962892894095460698331896273765319319730278296953751188275032473565518551814736594029653280332388328580937477913999924897908462557056114930085177793049821486680044129788770531299736051917125512150014077872011717369819571529717057814922233474922281891781027272458948112283535189670109645247982682635310323086938297997014285067141863950811314605654718588455988066005301446178088219784484885278466418839950611521729104565592724489116171529520753935138162088534642970634252431330915563686112368163012428304791821066937303874468802584024197029099089710647867882287106218520195527885040871068195539334740806705405886502161662047198825188414728240184473669769735645009504823650004957040143879034701413634334089615401684526761648964858253560311555839588127015129372531210719159280862709662767647249677161610714151609761324594292991758532670603518151378935596512779721812169855980526254123758539556122745126266411899466416482412879710413338954129347402028689251992104179330365093010573932853021454610781861613137925881676865469088990714688716563187801408656348573924420298438983649186858640414932881891115884260650697195822940883697233961579004703069353601738603374767985355367985756470969861465226288376032833244958360876820434285213253557797487265504720574998076259997734582866848442918298746075816168578272920499998154316805434671607469730018322190178258797828077842595706637558317160850108292107628402226688882383280530403571497222726623093557770512992857270418104169588724998632318879268131903688266239317974791511406112858366707586235714140920784779605566233996896776802962972198097317045877085095484832854517435497494667962564381662997296236609800717894663958450902856414644009704570332527656002971237094473633274876729719198779835499792327524767748872017676090582638198306132006042507281640224584713825338997521399453518665726574735093149192729965890054802628302373770293131454027798540951304769959943914359275695421088046501306414339768556742286767674274121502151214444893739793316797147850904275695945134490350244320906243561600455637873355278790958235049706490336002020156836829752642750292717179958275706232689749093495802730109019970434766242944539816327758582722464778893863527258599912444442079156197713990124834245731105742354691900864491626015120666822762471032950151925095543010016532506776856890642381415957811580166396521981560066958248382354962665951651890843027496277328426506249916416795835759935196220617911057953978627056702570927490643041663063229194406810618247877445996049696636988072417788590709553795704614589051307944889130801228964431823387372889157285726991904179675363759634819666728556025704752595063084926347774281038083119926151370219090494252911206599049718014192444378263181508439196251580639195764405411035797195914399891216101777100128123116875667171045937000828249259857699791595254537461702809757450774485623102951163980054150095236437714704283514448971126210502000433300376740388954602764412470959410897413950017550355000675174673046106682457276346365972969771578067984089540966088038168778393282962724856256421132640034133536434445769157297662062073831034208972415488000299675286748991824611475076932219657001300146837208752409235885199852240882829266739024875845408908296304932409900921026199985851714399193329163039151449332287251091297870276086638735744087735546011911586158511597887953053235111804347187261263177718014589981177869398859468668210292845415796494385026872472571255047666400990477990582515923061846451582590756042344576347928785307083659898986636627174907417491289499935482890693644095572721272149897544556724100682227797571386750454828247362205390735931840228155182791945509691185778052227551405604535537406132447200398191249104683546074549938916588694178046305946853960893889148944913016642279460547071578528851820136785785035106399983950060931329873526670651861650686020321227486016409587068441372219533952525046399123207223872572304731578607611547983487982136961686594152940381856368212080876726336955805187053773643188292224772782472036280077539329563820930949393390949998727822598307863773158895242073217782109061417524944446149187472394781560078968554410366977064963340675447453204410768609804610842826962746642045250551973601578573436105946424252662167044112422028564536909438846599782744223659212806608119706399464603894295744750592008694619625759150657699749292545920660431213775769261955676026027281206054613044993209334316141004203021339716962075448321574754102152716888851716262078298599852205059870944859477162318663281516439610585970328580533483948078468551784183927536813909978350136935126801661683941267257968679678760169913012431283046408413395214102013663332398849583329869642300432366457637527031702792129706167864729324757742921467194031956496447482069479697626807879571457410467740822328205675368014391798085540455912529100880781543575336225764245689763932124705847238414392146111485802219155446789821491886219928041317677197241190495182422203421376467537609622618793626947387930603581150138345917832083184111282705958675430694173301065629618145585960320061711128187085308404284864707775560329247371518129807573437818663909006243347209433019628265565269782475308254320788503222233012766914091305048652911228067986629676513232725825868109213175480518372830815332006087297131123823342504818174911170333663373638168470320636612471167546054531980560420213534742707322330749307429822906805350802356801480495048915909981545080238932395518882885331941521990824562466313716985411581318747049685732739576701728421563903259283334951898715764680656313848160721649339298081722869989925903361481912037264714230985842170425795496989453691967399070415029073131066752363927148122971073721595536415992295114913980835771554828553813459004879701036554746501727862639429537480603992044600209876632572438859258128093803254115010591056400149825126434157622568212682900943621451118305501798638225340149307953233139239058307413440957702183064419848469118635567810771978464678259821930570092894834122493882887495272044783500087778982934104698775866297251380960509915461903015099381112625598103154693740259446108308615567438796796640739123499840148571639573678185892374316088180483733927602846567138355707338851122143509583537314338848575483327705398511914190033486494468680148775664935232108625699512404710644659654182623119362524484169898420661154040566485660038873772299451615463662033632530071893468888313437160753650175351811577244471099472486312851225257248489837455192107707492675361106860992637143334904644566740540842442829963407285186274216272479800891337541176908864961788914206972048637820736328167472607191741054166635345904357497794704862431487550752554901775631626964502996158048111903660177921752557479909565212583321228871096660990426673538565462734853452525564076272518801286153313927093852193466935967785380985605096105347600945360602484851201817514334999673493449768498588221294961721695879862598921632153953775192918355654857124680786502618952912469267477731046625698482728411895596548496186382465211399717651610355381507691690528435443485299050362826272095300462649220048160872711559961811903290184606492024794875088277249863057937398715476551555219426456656553199409530943398751743289062127200609120586618948088416789646123157925375468736495313903673436491595246093019683771556054370630554900706567319262153827782236860569501641053733986861369576176289740119755703226373808277598982416381648259297309553886677825875175840416563891623432453110269522959505543941553566217096186063134779621594190451807240495040875925795356982781668210448002926980333503856652497901719687809818833413789306694616564145154055296415922202326678137724049936024318221351463959932813480442531468588908472452826008126016507160539658980786836007193219083698957860792777497403716554525562134478953276141636951781296783706434470397879202107787145179637918481898541037390136064520830388247494551734434771173434622183817297329064740152057281161912862728710535611692989630592226567007457055149277471078922464843488597936267807880277707662247708092320895024274461518143943124997685828143329406279422561596251469544229365558621289235446662961541913267069684124932735363373403979790100094915287042794544446571578435728976879089989202993038914453782617328569267875736466113723499020112128198079667796352965070350929969459364751022817522615204792842372678260743310745850583255306654039620491034512076132682173818210552453386444842247011089627878489495209654343152111247711681289067531529749622629482366509968553331674732876212514474849464500794863603845271971496385373640752457124027704914872903408431713865301383468813030581535523222105351048819730134092137815549423895885004850548893053568376137653569746542672429323239191021469370457917132019700081812590528789996819896663149448688754378184465097867573869645669369918392353406841181492400049470179084489384614799255289212160322340636434321919231844873807434948562165385662601419624310180475769141171360266885641771002662023279107815779209429921805823178631737966893611148796580985270960228363177113573355324524868324906025770746255045602791011423224623349152264948587114528873267490128181209496997817377638351364009875410357942715727396161255719629473305728209576852953954044851863776601561036754887971082780241562147009332159127542860656783393587064770104300603746165314067672081621258241161667106729825172495968813870801707978941684073533715458393336731158235193272773388207851369119638317481469201311771697588455973579319291156779133025714613072959222953365031912570650727376589541573794969673408623843598417168563114425072565959581231764654635066287756835985589651048178477511294096543540285292581134524197937416699368364083343422145444133451824862942805558623200567619264932969016022842463771214323669396000456336109999049117441633161749181061102403758198150798796799518425636743979973457862600682994789127960732695428416752125689676164734203385263368366523812807436017873263294138542762874862978584828477033216432422095846001150596006885915621719550509764259476376823546060705874364407330696612454823276633145549484139392850135531529446840696166015996174892976004967785738946698889059687133120233902914355224257015012231288635211108179814426216729750199219095609850415975686868499092371795101709666161568829498743048636198041722764021626654590352452945892272449055229681613045695177891194145741534333115750619117517822862815822820837929717428079730716377043289146157306605771620659833818743097391718677946436115921268426034520526267169254253278090634588610904757933704568191649102381994247918013678246564415058028137026215375910083648184548288901635777370670588554374522704453902715211755296441374650817439219260802141643944508039778588657029496552680080458216745484332166916748316614965439995612526243881049144092497343993173589588635804614430216195217968276308504103550672063264456257296229190453073489003937331891695018035451482844806086480738183968424196264774486429521390042673895919980926640671802926244321927699081307024377942928768267239326407656634477092592269674329105884661987219870877585651819672512899160808029585709080614500458188910712133348744696503851677024640855814986826356458064902735477604738482807789968720468100629180557770572407497318588224351244092987077120886422249806979307180796114859562267765294089300182339416473282170160107056908113313117978266626375635131639385437080664088216538339093612368974583623872908304130139937492990667965593205166526532095765217370370654384683223932026479175320562776105824409154957333940909783874345881025409422934331110923082692477854154448807423971500833214537757632947726389794167288571183569054389843014726867924200041973413317932094830686622595913013382312580139947335571952093489806474143108804897271375701492068066006432365074728524009063715325206588652272569270569431025754908212649270347480400211912356578066140744888541292705143999058696016074725805095821259880012978844181373449961664701788482570552537791076101589834671486957016740384890522505686941651002714344971551691132803606836626244312573589814477764949668069228045324174407432227958001072790561697406148923453501882704303300317875728944243230518503272321706652890688979420469120591399790538049303256977786534297092616449697171203376891902155780155587992074385331463844138430704085649209764171874076097394224102882918335695277328510980874818662518769646135656567014753412332258333252360721106885422711881157742966714889232121612518930909914048438759047497400824421394823848805224137117925609134837888048393949918728452940204308093432208884260215344570427785753646891450225112367104774767170147248496763317533296130368801284866507288600342644903686042057422621770309386529701179382201927047983733990459658097861729058779823457781880640744426325975152379192787906843772133870433628754868439130085358131873575781691120934229510790377771151111761468685865849515320648871920952559274609077736013803159391022199035094879242955443712361946447688699423602690545248792443444261399315069013590519057533901773284303416428022031138520751924906298212914539973036709400401957738793126196576797737852294586660677761322148765633286600588946656429496643388850901229408082838684427346776698663849051631953274489022676516520196679640588183341887763527558200143257927679674109760498659330361054804030212048311184874110857407678305759576028602239165055370371229731614510957684216521237974632717868796768053604085088924609886506089685358903335326734013435975693436274097424595544398395539791813349462673301778406041072976883789168144799931941635413196081375921492586628104156290667901546984337201883710636810287861356576129388485059300270719746731752351711659221213617851114988033408817142241893264299513087128402344042308533791355854278277541232043942944583585421398874675140211124144127103229708179900120379767516867634915363679361238086517002730459471975378582162460869607584876063041951466323104430215653255906212961245979985223289286316702848056864139795468544978453167928256678674543084550958742633857913206083650983021816326596149343358202008389793636497269794051310511166245601230298114623131834463653220856535450965102752787801909846133454750515160830507560739290250237532985575401368231671663730197304281138076743062372565375413322893571680613388413986496218512049423563296681304683217464602412240857704016552039658924296980015936829515686064759806202395172538295865811967419715527401892756499232181478080938051128151680452940348148904911092709767502119921202179191125030683758039818736830561560084015864185719951740505300499049510772951506269250967858887062849221993835086518893926855734182881886330947830880472188158676200404852789629467631014213778051251766928872795259587826124441680458428450971129738566237499475509220190413085976142575783904184691129318452200014776658685164898483061666573119897583898366288828821094783904816816532774435585177933181359191620533190191088236606460723993502892119658574050986518449736916257909272196527077195056542755377279434830905258738412610006550984986877970190298350320736971739355499179114641351917685144621368572277271097584759141596378417805538364591088787311996409809377094140318356390870962897262067429053033675280922552705161865874738831986215870109924557623630259067176362825924736356094910273646344852214949184577999350800522840880462572916864965545681416574783420540152410006265828050581558096168804274806385192169763315463718079704574093100112871256015927865401836716437654449137902593072794575508141869565141163276937232750677339508673909429022267751728524071352238771077629398204597494208384235951941959457129158083450354300873323068280242837000439318986047775282905358926015816404730672262781506423807026536673123477285144036299954465924021686189031206297727615363850293158267348528040005495587198797225254899311263255124399633062774053282219875321391321820957807693920692927170372039653466488803163019265964359440669246377075787675046219679143906864301536694723680790584230589354405817764345642179910181003360891255974027632253101723748568369290963199879582153875354060703571753066011086425682547228250923480069108517003981682871719434439440788377038965070644133193424203526864213752019654554833051268887237076984875854794646960039666974486852167163618542051516525640341226511724548247550929464030454010310465556171425928641961371898692028831855218105593900623120818057119592755686774235684060940907135976469429529247289511049931351756714933094984763669231695954135255195886849229615080205948815554205595589292650641196595079727322717763810171467903020021701766510963999993685878385437611361663824211983824355908406562996535894403301779019073096010450513063041629593837545378582964295905096722825234926421924555501177328690894614581759890855149380902551847035130301602851930204184879938125934428156296372965428069086333518066043899335729765814387011363522215562605578508842424478731530372760586315929630311501952856524839383344471222056149821273501972201839421610459620582521013650133187880745836230377954444501358770440339853081169282752408917603981950731796663623041067218083178842263562489594237261691484681551839356626411439926142646613172792598598526488255309974983815644133458925028938815113064164990470469305024341247996935668473835360737641380596884798108803311435296046169826359667036101157018099703302971084381565297140269860324460168177108440785488539355745275309048592906763883984089475016114268030786862927700194799036947759893632194909942382639620971409302109707078521372745336491566822626843670764997023824926320361181346145447419860063062332602307561447245283532745186569507326925713032813587200295394526179863481550895310724501578780175089537294064904550109027879245352436432299934526453935798255557745186630178564950241377272630580967057405565569210443340959790668182631750892383837073099706680267221527068004209708429978272607206694273755417255523447236576252280042811879266641882566144625500942987337583329153120278592562859376494455117471000931195502060934492424515397253957987912636990459894222277968806659596993520313166899740674314161376802591411651908613173590377030935445871529979477647376210640812650544868652239779953793508931066637114133077723380924730892043658315315685643923567609080156387612602579514221334300130922478653690910338801170665425711085101027241242212327387506516043722735810962654809216187030693972326216994431330229788419823224417060152579722104352797640993723043993017301310984536164355468821559918400986489538880650785056439533417525293547660272384683635785154315975390792514849646804591822490469026183306739208105275588655023798420132145784122987256156355011950245479668706691371694705195152741685491516050403572516473945989578870557417080458908155354210537800269864165328411838849425398306447250806043545871459973033948732653696498585475469332948869703248740487541660112013249914998181952238905032154118772765851523719066648943894011873878560514806861735319048298630869469578615042111464796838281736621292835521495261948810922251217958565876015408530147456190344900753425712938598918546907766490747446617560484460367375571127277489656807118338248026561260616739997772508058370010297311793372798541466419271868192609860837450790731568620647686475463672502242880706259197468494076521415492089428529259427991529117603892015147328513792233171647766591154171019322980215544905707699507548608274763128414903095843846931527446012080722124690322418049741828286524845565224515272789804712359032466673202897172278347434527297460543213780364635115808473872370451604497757664968059997650854441061200513470200786189598014003764721490498615070189389814774652189980450854261448145849627680177515041121418750125545460620916234354599786353319706850883225971477539385053178333790846897532609758731893699609886599454428922915256811080541173471155388118817330981876426923360854900673966110196349008678065059508499915525436045442751853745705413370269731014410590023578696730086332780274912656625392155784575932941001325889772137261436795441298043975517979604008366021966731623756700264345770911740316325004940346600407189339003865773873603504881936368032809072000609127604452054909466825147427027698070643559298478025274983399912272157168606527485697684885385314913906442368254555226040739673113546859720725107196171327442662870914962595687700427225640304378345714403825965244328910422075946780968469061481342362749493726116426253326509525904867671614969415174800014929854084371046347032109917607387660410447863973926734907235114035562846090446690304797860065702739213032176005797011753737757804021306493669440339570482931193368459673695251989823929301372828499771624063292989414993935775782279427176364082182231742317787924071174587369095279730910446277285219127094123450053784131940060582592880956408174224307623218993044104442231538513037006868034207409730041874947023112406781521526196576173107037314578046058033137666317670540680470877325869814895023914649061520630036140626522488243647713304246014463938351735677236049852244429098840311993564426326289325819474478712025577942912955310610946660720964701580930914192854485217993108861559612547651260536748823299828067613702420144643419073927030485997556727362106765869031552023633856408794800892099045620987992452882040288799860616972331740112772091100114474267490713158786118947227053921767894815743168739065533059849248244836761559947101343486178644819660343691246508927704527934149655273862333703389518256230606447680616247199795222740757223013043784440122885500638486525613895378155164060302014831917537393166382886081019831686130174658300846749849526411429765130981133810412360804569052474999679051741082446167938666110738672409928895898613068694273837499346424271703756123936148796232913957637404725920825131968018495236919598776735688248095074381580625423410610874894416227997021385554734428564327559182555643728096978830418814287818574919937671893366719358639165589797965470325220642787269501237654024802164557858515967428347587182892696729679352396203747246759249807957243059032355069347753089813141367298289533414014013554431451658114463259223558417403878365219092446508914968758987887588449094937683428310610171130615942411729241636214992178393276867301657987390950944458790071074664867962116382941512246087343349834763966457814575899936132826182489970786359221078709866729947479690021959732871429211607541713338875954927873470295209698203050009889268650207379506930926958692152208886445704927664405074056208847825744965670587411478371334097297282486673628320068221726364928598583566297615318912072832269662664014853387791898480001595467291859767629386142700913950835795468269009600060252809629207951450851990572739768039254633277232212095160317567944744551813832883609767693279558449903776735474714931144910838381210998681708270823526053011248638515523061113187372303353464234854047735003997133121138808636685121540712388762859193959915040133311905758702241299309626060341170547686471146827455425840324188245351012907937818380504732107533225928135154379325493922764213319008570637481264575317338683412827640021536883673188617513467380189232370489988834092083624476459139410295093474265522742131790043244856477983142346406968977012996471245119867093952446563615633200973347765597691196725110541696938346121101529248505133866140039092126012403322154958645861038457606129251145787609098500704296363126577571383781766826205211994422591024517572050427801535914263682584876241324960728218305924236711951046621568362740858014984689182776623440966071685446378674871815349224046542499277773862734231796275218634077967738520052087840706757942506568809371974051538925402716875892446299173063104171160108924224761009989022220441011638752412493323458025662574896872291517290816163992826168822727100769761754815302640227927463871761347636457386895359160233080959777087482289982232898328456959362803931624803677177092982056518164073074026371959934293932726235286507329073027145754182534460002014968956132154552348621265480402831737663665032235997966796955816107380236494944597100903376063129562648330413217454657859457974003097262966478948477450332726276914248682530720408938655308908940537806017977244586705083946379712856954884070103777669303998704714673141231075309590838073604363927155617301186112795356749694790433990963782185700937822102777884496446084629058327750334539723485425443720266669822585039251404190702744151152620232184963558919196850695859968169044405193353878771073444705501300382271905510359058941060034908793005815580936884741652926855887192159250436241454278498474807614675310633321784072779348969026217124831671609625478692154940526314713303527478028841745556611898612824555450774122499396925740107319151014437365837938468613832759063852201553213984490459642626256796806537817904410537554887250166569388054952236430500731242490283425816156274415314281229396981212780764199663160747622957546967404488118672755096093456310627502783407196307283685030698663770950121539349840622206932717583152659511593126400473312861579543836108683640027433865994117985798446927293640262857663443692520097865294888329966551765433950762658986418094070190705032538560880480627651122570359018672801576942307313230907110264620501797331676163955012958020134612375926027693665352877326628269631627328389936145919843590407762500815770366781121585784483557599019717165767572091448320548405893203291841475767622621249703755269299595834135896895833532983585443497006794938272838472750503677723393519922742047956591062490415654905175248799789167389521063093146657496124330518302425233494825167237894596077985613137038409401858770766625527740253291838050350312156966211595526203127979083429787317484161891855721685018775411274700636928633616989170326612481926273531170034281093227844398157260449531346176031449893573845316709396556910947140694883442620337169829254486664961909018872938498383345151034041718481309180360800176302778386852977724349007975555152674861076719577870819038779830183628361787989023212922485362642899681450800140166637166751997623488773391515790661917374496956338988884650353287686189877960149848736509102840801688406427649180443474060786992136066870514419692512118336276999907597294422986658832109643873049468455841216385474426558121116265822455003158884541952790048801190750878773327815479626574589280892520892684483281004889771118384270274901388922410366969318051645619250864775327989564213476300228049042513085624319758545270955796315359086662737221043717141840947551084959008003493723020841469662340120617787635005308134078739097281592158037764052340648566292044406761356595650252276746330164469165244331690390777620525041301438885133570309660236138025060173933303941728336714485700450442592223947206457161154647021437779376654336505042509506376860275545492713469270158235355384420723480132441199516699289054468745477229652710036029089202855024164628976781691709778033437140049841324202731163232476837486065358807795001895247359205710138312136014797335301452189182529318250249291752216744687322997616991794190863193772847276695869274630810894604061880298101258339759700308786120555404048598705298086441143663537861621719074809731276630914156571883800473337552989234338047667261289777909165127261331963669988107641755438289642352391647712658954231589522493860796397754375874040377615718747620838782713832425985752025332943126318912514978085016417273787134459046345381791783305718321738523797520983775625082171596237661285383825965548011366678026185083799712388744595509173357732796129235708902789988642210863341584058270139690914425185087720656508771325390192238826158967923503242478970177048540289598184028188535177071670708079205868371471242049820857743344504565114015792104738423163058114148247264776626978651689604531320337571293111401507568983313290844979462772588634085445262402520735583468130054933127333008125819173012974243324034923457885021063346980096255571073534081053376772008410373062574455363974567064241880690775522039170687245527018682073507680058078558876324731178348601040533428972324772896724027782986600388831062886103275045924920707059616352820842866628251819498322027120756489359606912956044318240144374900949523745864455628391000223628248065830866929058851957975768016510507300850578005719553743046556302630395502941056254852557355869509106726930131781168967427651664427667881483893177545895154874154428827344290554839035806307693368909697398993361291729429006612065733705758827340628851172639625323239879121258372774433901384635175063956133138759533688713794313996102360314756152472364639074631732841568519812087836348409528031832045371311710554962115434204776190435653244500641152882574847441397233968853455590306591364962377075593951826718887742706122739661691517948142045583932178685277618607585903468960324696596017805674607386794875763549894679842648346577172248302426725183191044723111337322814874878922094099754578246019489556116935891564156684655021334713206322642011689482492103210427512775870344719789787872872380726763747313742069282008032872967349737139133427298980379806923590735235287796705305701722874277055587199914326101894341065831525183103712273420867405554631460000022515979690763145902159276430569871745113084515783027987480937975653941170051130187460332706291892596020408146900215924111074374596705124291993237994932737274164282568886237573193915824847726728932054133872985441268226927080799857619576126236632524072296978504001958515474113898835849650308579191398558990725304661575236745580076141500353246966282217778491810138981044166488116921597366962350066497438279098332228938002691049673302932938004849924151292707646800899557877972649598464693736376213632232094552452678097763612876076270767738039090519135032235629802526801683991326984866715202767627374267007382498010710129428060231028703046076912949888007063866522016979708968379857996931043856710974979395881084605939718054742686150622494893935833965548225076396680972726839424869092381661290729749862166388063350441657622354779397568268332021479621597949731523282775303981689721173976017230592902131221877809839378124542769553262610483274290394521786081321649725951051220707319658878219168330613776421825327177578201047207790436766374409301786072576017466136089345059697636059229714197140954516912439646503914141880137697820734371416734977780378648218970027530634727735791939723439161530908983250311883541387448296717659056583807546474878081866932389716639364929166628640152586939151773681736297487919492010724764716381372142814490709984454669080833820466410905021393825403235897015007994925749104531533545688040918483871601908065915700749406736037357530282297699907115974769667161931550303971021648857778226459480254618129404490470557557026099461229735811505174169508501872722450597168614820702592389816011715696445049682907261161758315301069732480026258148890172069203974345862095879689715695004457508216784301023663936890212212169851116645458331776043762923074485390826409665801929682602015267426698787337449286840767101422722946684867723886812897144706219001290719336128527880856812717013828910849503197087351238998692729142781802153902507083849172765928472806161776537954545660697762279425552266728341380528474903299998930662720244415855621455535135799071374852435651801792575332478461520874606929902676122930185948105596334994318292361285845918571817465221720365575498386565940805623307507107108594224030911889865944795663546946538646458685254023290260926137253861650769817555296854755805719301863207995601007352336936868664715239421154962581478460071812362016790414448925985969606987496436411178092870466979764621198511721589279095576823582982579900479562563912241100923224617571019896433519310899839187803785085556026674347820180982441012584022408064240940766910312227658051206704330946960839980080300228346582150928582184229635779260179004693115682529394629407613338484349569951729418178417057241920532147476982537093433574438932703906085449864568160422118023244677464418490403409455722197335711839229653097204869428444834160822342282709551344075973419899519329081960984304192556590579064273779028991432744464337287739944632771052644385584637091809333082190999421001767270692609572558613643899681324726711290947071726645336015910117486349705797622103118002510892032200069306744341734894602111780833806194004738709278304551828149253015168354569762898455141730205091964944474052443414753732575887063177922995307094199810899334452045808437094037741036631927633132813220392703760458122037453119631168343815100559077219234346577378376735365434214974819626418786273784415218115102159229986871989035795726217319540874966050885113398431249117880035249139675479631608289916117277178165711206103187210813045383277343055624124860223744978438633076009806289660436902763322771558710311881658478605968114230528620865415934282429350640616499064838051364653334415326381691231493776419695059997900794410090176377048860917782706182166831859657233350208598050044134502897085721085727372762875149059271086135068746563738978551385603895257253622901260835798687543789791745157344851117208155214850417352514580319862839601617955107018787332209869033664837499022922796567642859168399945432149957768233440293333360001846188011966863651088020541152980542501504083948011364562727510274003779634485294139147335651332273099968097275744397461498182858074397379600805103063373439515304543031625923838964806167128958321294370082100598331785408384249083601099316824022149672177753623728152022659696785707086053954114837722018893857538050762886616455907790336605194697305295293801691293303582152007156254471478018246748509631998955977009359429114790978105720117944500826721300695620881856623717547219727986987024616441974182297520751302939196769757767726223218351574684098347362803485483544920807296619876601157723498746505525354602245545612563314513163591061532501350117777044490778748373673118315489318791855084017160805378273488235485568129437615294728701034461599918400709199967167612183915900777648297293907363792231680822571559591319002431532398514953600378717680913818553791130746455416244541269705648274437668075786075435076592403441724204058964561417188881670042293601362774487535631340753412347062610509970256910368880097581766508298700426065376286926632534859112254401546428348906717195473696080227543527298337130014555253501934809928492481576185612726613415178135791481325282660865112502835267195807013679841557054697551834238422739977410005091921256965949401505275475410218490640463825225552156990041739541625450011512961895325687890988192206330596785732549156221065340852530507895348831857091141029875705337594477976877364716035312750992722420537271319427717753714588833748176737791661926793262592655381585870693873491204317805930067723858566321456467306691217340882380556464607643833608314911127775115282145372959677846669949488369928933837946722766385124542487233048093906742007825282837228187904984632865984610544884716553441197874363756473975030916802169035519567744505991990166057588334835857320377125132886390915235434054207294492192807020321396847757135944514409704371795592670599181875862859432225326985738399786313304443890554999842640739751039464822728278928744703081953074309640813414755153209571607950408974518567037284817902717871906558371613025009088802176846765005619130626829771074207051665958779616499884183831252872733620201504282527560586295918628615774226319678985365553465143709118335371887777013704483934621835992386745711870586735455447752077343554989783744138584443129720856720655464366972998149606464024187609109626876227624981354994065302201014714289317473758334166747522970499307267105279650198643221070129032322211311231839326241066888195175117414182680481065516779693835798500055014025194246011093992059140298009646699769963255960191095765389464628141844795535670615667999114296337959198002380815158970556370516946494151630069680624217344969647033942582145790981147673681490658174404350140440528346646960296473192449073365278650171614275308362211288939887195060647657400338825244645029891110237456539041115714459398390955715835986783005714047186420545560491853519837465932335681411029025645202436508872650271900190819370745874753601067492043476711790535222175199727477526768006235445355124808578143959767124681025664829158172185405726845115868145353023790699783520145465770699193610057218478084701402108996988744659111718070356469784154181395802308406528941862029851637357313066141110561037627632181750295760858341507608351100323777005339413265447129234794948257925893393517143193901559842360155423054896003994161290749742347919570732196540395158180536956748387150311413040508417458187788350663967214497042042452307683170152327348696584231978188234726307032093870295596723263260000484189413582898807137340645804715824832453465436470544774609345226492732178238339889863945170595871354925412292535860979286098117219924512082107164199534076211121048092505049704064158131783790991197100004396669845822644512450563250888382760276761804312462812192036833737148446710686691874131877556539473678824351192157972023624773485006526981181190160098107225963124048354165300409861013781528677709076618409484793126059503304534466901584363505911582815094802682985285192436464037535299372732088420536388440693014300477800678332636051352030028160084399607799201828582802279389618426471056509435826687874266439138170395452737148235731889494593241341971322474612345460620816507258842384326656050507494904656088214275077511742376015398009405186311255284623828940474176313126867790465667849783515392377074619153757476651368749702679323508536361168181667634515328547805845349644689098193247815550367182483777523288914922062792974296120713342673194746477700355882111693841761115820845721572010196480214729867690085417662061890197184834675360585229719502662124710424044581992496549452983796773799278352767999769392532480739129665269672355511251323313779867686354347622457866641889710760522391023827530676034771819044857278177749181671505699013858605116033123917415518385943689866039137610759311450598859061741197906911581361657970064731996056532830310293653407813827777761792747423167543763592065157119774276187052317649644905924676611489881830846791296252357523645206837788841334821448457649833303616484422211978178173086672606986574589240909349129037785195520830702370173154782122883597251850428322990258670133580637084649114671898911011670490904920023310261152861015725647029806808805107737211825812410722043550967028754119259060569872099903160744564261788486405403061296506940445115872977585184826726511892462986968090910795197740373047645006015631344004788974988037651512548995290409293946888311356836682783892953520061892238243976292373203577531944966041578353550859537608306099048677662465910934614186946736555191361990767680485847007010783592729156113764326812889940090058742609270320531370989209875729949436006147575066815145560458547840797661823965683296831398770947954447233945847037447003349162666583248708478874931836444522462727517159738089711710956063201367210855040003984149714435967911620708680562559128668985451196598671122048515583790980874640983933802834585217679060748040765920959951577993603630043680216941402825792724585834666697025298835562185753135931071268538496636977550258679621732280951193288061038848974393133499275375973819347232428137034241326700999682326541582140888260661309265381693589683303351637499939453047904954571093104745574652764556917009447131981468118338328607445130141024143479560533582508313005237466381205738216458842203487446948575967261488421853668815512133136637775895162358148486722107592866577338577063806905078058773247405674421356765854766573583162417029795684110067099227802820079560645089330138474599577649640079072793291221025626535754477339130075486797940030264743609634261304047952751963055903911905716438771164706107442791596414758868790347333003209424540457287915362173450859154005625018288359103064972398247376835341293499514941390046273044867445322116492618484362247296299424637684436780257062949857447670113055901280457050083279388223154916164149633086967021520030157406805413658511246255360823105788155749159713441032817056984889512801054570197360593691836395971434943135977242346322001844513582364661145757073538568900755811886399531956669103831229161464654935543326669374134797373161123549820280864592978803885509173515110540675331179954488858925871440712090818088519985475204856871944622656554752168096602238551492974606904269300135146323428765341918780790144762026203511978789491554091860245830964483748944905619687521161132128642230471401927540345718575520232782766572982274765386040123064121638189016901676239518466842268769276381192810005822499995018499896592346424235419082317304209224553982416616214090225869948785161627924178148538380279707422545323351167584910396866148744427585775000284381114060486774375256359171272554932518944029249455952100132484071204927917871350231802858184813959188268689143657779528839970220403056969087345332135474752755324359940876294442606488415279516911295412436511185225719062727310688079292290037605327443352660116433456045190530350832984930783639580406535108868050370468362293739625415470368614859616789693691515889686015383467865947327398089974756826999161993593817946400685397394571259993644696583965168869213050001485982795132910234721963474904920831315986136362376232503625555423604892265646816799082230162548497764744653047157418667099378160629088706576173030149863386943755090916485588662975481904982737268728097787448484412366624331094017117105283206793453863026096875663473527124631591517984237140414002548024626274750272578031821552335012248568420453945033555604579480962166591386576124251749833658575940088946120852774708130833126516645969310422823675048240314539274076259038740742165254824619920839379597362495929079391784777447637606081688182644497728849523553411038590119483242156598773581619454166227594493863000312947439716727889054979269606100769226044112501441721747168158938013442995062733496846988283486312864569822363651411822644723911703441604853595299409245668711720900658184885110000964590368820836637152281719291985389084638381876056269671337354822538862255510466168809640564392227914783281107549564236791773428929629637594737098058344180695917683267338869454552656299710960890508338156190738934538365530455649091844673535483864231742572186719240606601610260493973272566136369533699620474845214545846049764091674748572831264456707850624918695929388767498115013490043155500487550106893485830854994122139446558615328839721437028743290816083475866545759496093921973991547019481250997452205037492759983159720459985787090582529595623571401909847800697819802788646236893545407658004603686970828194064589322059652065595485138313469292979828690160477080785398987082219843969979492996901443101587556446987850709678987130306598330595721717402051332580308451370352001779110964899913411304524626265992847730683737217872680060246924597708366390008910462320736041477269096611203981876313544296693327239600765666263959729346537386516699307802740478651529676317220907733859717959647537631366761876554206894402587875726180713954553940516747241930040351476865675239928224059990481243819074147640157840608822938258747476672475277567840815917456023933965800395374769983600550455637472567562340337170359916331768541239251339291089983949422376455806972840098262945851008896658565728913682911128698775806946234900554308244534301367917358735956248625186645126553374881009183303704375118819925043050600317943328597618596469407634669759342803210400295875573825345916832447217680829258020352270173580079218702285143690770577842427059284299349240543450012755190602236611292713560149368266842164749471978312267236414851812178047138353802986304522775767347365721335325675939781564441635243739564959256096803372749571905689613229548581606018264739740498665414367323076728372921854394773646082878444251984643551756139885283450532379683582208007453008833513024658724233209058317557618344817057595603292965174476508741213087531747085360073379859785423053683435319051935824288838354503841574447329264822538081020368176863227323389730415606154521101723585896956760415788434735807747810365977738852323018743630748866510338296728420617209652317437759932284985563110278550034298886384403602794851438344262951964644449369479125433713037083682991475652871893888486503412064961721408771483896377963355595742710469700972863347958612994710478544978611283013483357162249510751894739869493551593784613786237456859858735660297427502681595993688073332746308594330836996203721698163167605820434449501811829082070185672549893483635131318183252001948430372222553449906501098768314405353186936017763865117455958010711810795629149853073241260100591381661430179289144543686900538056203427603211311585767845723845203597014551322427013396454734652795807457796853142467803974201677889395764195965067695359131161478096790288623906869849338011606541565680758527114023945668514111444651278315672279752525476125239762799352759564744131939173815360787124502968707003446492898892575808066383716768866975823611875301152939831498969087292386964911421192798802812816481716210317587070361566232949120479590290892544990353747171550361172266069523592775186255709989261793391848126570894017486397062047234954037614063416037983546345098298512948502013959142920728713346142123396685479855477010891317170777217622601051350027901644254242387195113021662782429362775305348470479742569449427059720165945534078887336094588641879821800019048006342041252810202198913287733115006462531189207489224464192101135360405853819867470720828195564195273450462915953685164062699301601355133174277081144934571348239522870061452989641566294370471729011989345269267154075297217635293522581995813327858595076573456009355284695971569036982227512522355871816987078316687233385440082129315165644002053547712562726558800142736286660512678277011127570699137086601915809884590944314682543504965737717010929425659113539698803785894049124679161129174517217527315619585746943661944839953019079512731602081896098879047582195932305416081995321116099070220488885764138776383878557759289376442933102808817825202907509075228370973151001594900566633789327608665375188597401045503620994932928445925055347366944174317123381077973217572383259002552884977373627549403344673024667701112356463666853637207446442813263996439554721485292086405118258862645402390380155912339760482863992825731461337274168637901912506825451804242701013013890887091287000038095996561013909960798460342290655409681529780166640251887696062308110963383839575314989300236274279593301686828965259774800043026459256763112426209270849169434698700763493834081687778048347856477982274243854139509918584618406082706562484077249400873628270153493168473429418947616914426020726789611225871558779631518774285562544176773483686454741658400470562732177074006312582088062370524311516816956790123618628147460342498169594239571288071406707480533737181743125032958611191322293946335219951013136997175959011333433586902805093325200619049490514902757057244361371555676447226718047431878466000085242699265811231875256268885321988946419319232967624267845972224650367801710746792528395245125658401787238274975179612911839477230109133971766413594690993555362017822091653140849094705108673067768212083661826231504458405073429035567893316909922573997735396624660583837330957616495277609560434784627352519230263630098251878939128412010690164902065501277884997655525485955752122807874112352553513232415740457570758093173422694831059694822680150066735175629252794856176816948556128348001571117685144477122978691607158004708362176549326825460708235642608946500493897494093642217348657123786530407160063832087788749041302550078725131647010985175614263398557541836299032309537924719030878475814556765745915476136412364836817561406864621984320985850341370110424529569863217094228595563135493947483234926519603932526707858840506728682780918286835592919714734582398897938385925122064953340964937907794362692400976273485830237586025612991185819796076236595089665894312104929165432112314329238933957868661877877879028966244047965737486930020147776879467974891021482670612947988354424753660033090106897980479543372599037523703931071751895649621383840889492336507365995712159156262596572423418032509454464504740689431788755722768920031907838717384246293780163859759338698381208361336765816741044454354095382831305123996117379955608148291150169680627352168243985703129906341849983992964749117847283828246677338623780643072343588569454608545899920600553567092937458695523979713129980697247627112722599334107872628426894155716738055542674285282668325673048903168481519842621795896772085237791167841658553036900823691959843575439237893270647895542783031879595413748136524724122853662029887273267565123812938108415498151459997964320022070118494315013326882642602577883812589362086553391346498104692839285364237161825594948287421726529339569155134041534378032045183350346998263247848141736679130283409074577080333188367917323315036444123576306380995923394884849724715627667877918380580227952876157408841159051443662540908282968098836682064330154251364182187992386731796758247249447866385670173115247909816078933204770837433093794430200286321021601439442847562801975536982052518962316757537856576225383167003029742444075519723614597737537357444972963780603782207611332872337387784910284579839960312575931748694048435279573422501605661010570406587456106026364100526451529325530339436824960668215360458346776423039921035589503359322861932782480916096502181435922042365999269113394151844361646363721260576630918951728888130596006994752936065968393289947394315646156654469804608705330330941544521198282037349201918193618702587633497163872457637432515180676152455901887685901291263211442679151440341376152676307226619677739666340883158227910414986133800890097091057852623919367219130223310921478359302600589465208111544772156672491173850163701606239642264056969130940602985197580612299882424695812302240148127430547439343877039381375098231783818699352181547260627393083852735855184560337100784765395861461205615723811787915255269103022603812697535392921902094435459874348829317841488349003334047650890260168210089084619746856975612452380732602832603625420880597289313454052110399779229911431072268312152208270756169171459769687370359803095044965175203779378647807795631999586747114176454907274133968710485180830350845081276853393694297073029132908058626527410647192962907663511803491920747803533702431720462536794568748530965958904936958089415342945509139292651530138444237268910716408942232361366558621680388392637148503593277483609824208712716766985748548425308977454538139981285168935421805104219886029796981106517533237776211971436629472284275740277207961296949002297967437092208029624450019434371360626114687816083640645644184551886410126252610319193641877528727936968586529141003121003309240688508126784427415979300715346103835372977266444859560442972321705612762672052911061471226136610753444166961026222291706016699052216776851829263983432900991678258155890439347041285280469613509372627364227199818724115498316442255393801284939755314524590974496470410873296341873551155734806330004576341321696159459687957677785564543311526124085364175522044610276365879077157418050722523119627562001817021753903696248940130228598094053187345295176835077202657302625981437024336500556255990611044246453204458758821919459742923028790642699929654734813667176251900432626546128438256275303741179391336295366043236109658944890057460936496415282413185911684773756040338082820564940498439330547318131704989962910480882883315678994949730979927070129425268653326507884759328759507586752800057200038272283443191562675204139831308602890270885125117610345946880807448985532221001628032829025022283627911825766119390263872991836950051651958075058322620514129424330155574555504910464906182255826888717579055493774902312326833069768087176897050058738936538766310024087555836445088521710052856577480303448919328372766921761958478350321047379461452118993760050803955683111118585750349736445391266984927948313755296048633674976818963738113404095246486291160311284094666287476716653336599235346571048951152017858420116170499521472589184799528986274593023607257299198321720477865795340973274644983167490862212768840264788415222630557421382490038563967009598629686518771418797655524087739659276224128379328720673487054865124217547719381113245795830204144241659885810743167374537898053273887354243215693232147505039996346516912126166973880738973500039740821511507501600139573985914379511972658486606638548733033871596487732199743109086913721005056218626676221874186580936570571542355332650689048605552557426130314964189994984362488733908710718354945360892535622229227222348140298334835811865533878933930225702941437413507896973801244879573174310067686184260057746713418338933600370256862909488705607683467956744442186086756334556197773562724275455683094374577336263006566070465571033649178888412935429811439190892345129092673929312584000554055104321456068812571075340758525889068624405735061930610647000624553483811505758012576015952738909491250089701349726736805138941974712470777294155999954075996811431093562329742853344541766323724669577536426821738008746021226545453114379331632510010568789277280513600416556282135129747814530041759810412426228042780167180659615335850313757693483156733702519968436534239419437825539116006194546474042089111912197004041173275149201398336194777545727309415027919878511309786599056864302272441971360714629907023715909524319519055107872456730407057187897702293656877673428634736749752417076145761638580387026374148180094652610703810823424809911081470137746063661836573854593581723504717824511676810982326405452054074900176138034677944065105465176569352433273461062472031101393271214672778429493391162374636197058865651131500641364296178616775404185444526628662621069141857725779762142504520732085195376176941347616811634268060180541397233108227529812926738082029402445006190735146829908631198946304210491000285842445366839549364995712692646221274351253157929351782794697702918319760906651257713740968826848467045141090343907850929409454705791863900934339453484379532431647913420067991240886250052765645204326281712729031791030706149543832321014080273513664165580090748800127344688559558839842869767017535416480467959727685219561752052797781535727312162901200464964153151008587983914686821252368926725293351988436361067489240232843732189209597330433028474849831242491626633201575860251064186116486897300659510017633622785294812635347402871023689449010529878881738524268509332452342955296762692137702873532442325479853612128635455179015647845851107994917448609214340578902784512110118246582153887612124522535720075903019960250572338482724756019889759886539639308205625167453146069396354736848917087828158721301760893039045417048096023541038080534596403826146946159682172777436571681996224947475592753949711345536812008515361462506909500792429835144370038949694834934960391435185187356448513538549936170977553436511990878917316728302766468967813597148989150728501941219208266607359695632038918630851920484297294189224461646337778510714457826757220425385143009519566345728797476227476812806627664769115417484538303264742366288539273080786522757669495856523951861133493994923271466263039546818408431161399543226162050861060859393764873714568979532651952363337422956809991420471781981762684864563584871097496118615920739632234203406915782945069866910516210463544369805497961512308753389796864818652414770966090751325062505788761097420430192089832061649151100827944735866008764611575637345199755772949822708409971468136684959188760968253022459652881296047656671247346330193273332241250011458431018404499530715222657297400109746131680356501971174046964785860215298247716441421781198582922322092489303659848470849915606107764914928432600290738344085960368557031244861745934387199952774673044316231596413034168444926341992446153564619362856783931979875399635563216209819450196926605878924656158669194820843928621253482005877149475086105628045323298072682753080341899346638585432119891511892448130633264771992169994300838927049655278956557757992275214407029184579645511433054323576016178453915694055377720971971244809373812779463120190161698736490113402368744583257920862250963945997108744533020989219227922300957021152642594566358064282034011455206843633577593635283267172648742655284343320592817913845140148329766540974629115027233750761192699519990735892894067931499602292992060070404151988133437819942722839466951408765216468108583509384210942352574986060621941021430302061950067004901807144952197371982378011402034040180607511557687260735603599075255361241871497670832466455001286204428929710913126133176292833250594344044631918475117259303974741594226340000277712469825589800166857655152103854114527721840275589700311400717740406608903998848931420784818640647888867445957520163865722995884736329040136283243115942198263073146232722960355434342993752512718504967160506075765391412730936424416996868864211768144181416365184187860019652260869370516229327246753086476694296416367517809684249384624190291313378965435824222896066267829670685691177812999471634787645726784200627062374934154711346738712907774501733670092480112501998515011721978128729889139055581983181009870975310349034525958837318926852449739024937082195269798612670040333443182830723797785864340671978777188193435772729427909106783091772166702237825888625545477675133551351288507375543997419779206487517675641695201641946434183616017585069595372793782804385151255408598684507659509717258793459687815022052640251965728512310401536273974962730952007538955559627695345275271830602792544841504035460083847146802830525122306939365204574102380042307536104809796952840061749018484598469397279871194121550579236681571052047807881047641603753823452227003717197108433095028791966074521596017143850795247915001814515687956718627028504278847922958138028432009082862700385057853624764302076800755547192323913495892960727775247775631654295975412374784146827688057516421045744865134396986530590714508655782778841628020001037321396784721941331859201614675321107134487105883954527517501630772762779123549246952077572193462166702681877861767176936564160661358010091474058422781993540716888503581034034976354198095621220562070944197986298184838609841426159696679791611451124829744514423180623031606481202160379767774118677304096818248217849175147038438796821241113877277155519204947443125892626258361946199825818844519640293262727180208375578042448500991086823319240708203607011916935511146563820375471356873305348865036042186237411846057552491912143709411490179275443775664336378238439998300863554358140286785299418696732421136290758271847980224976492028064159117611000230135149751839153817266990127708743155833795226695700810901087097828350856726594010090255614006591130848344011010016209513547648649059472043496239584052882467582788847801258113151396950121748684741558603744107952046819172613158175746627107211799311974020312530906186102906771595874738682352942047270622414180373041430448225031351782060924670341105274654607381512477971544302428389229690471726287338417717351117846605466126548859698756527343755278081210440823405527060513028888197641313361060709126585218752872034415513251071306742513415658421372565312646359501906309796320207022030981321309074442720750229245573684005444871063585660193721450389512122467843242196953626405839419342873250446888401350392282515249957959172163518640066871910044502704706046584292981391539232831338627395721107222427029519696473661008502132265140287737075619272125240995690365611059390199446794190323123603872303342815756017194542749237883991388315900024227279579345211261173441088002188996918974620605556646472347906117899888876562180132406433242721663871018781457331013747907885686088930540785811609267602451782077971357489209671309824308442031291562362845300875418660729920004020891237110436897122504976362950796963840166786183335090381561920543154230565999992919253161330412163142269014041638930875681752964677178553854569057036159460348825016497270480059263823002137336223940701091315010591463397313162133365897342307809205262329459664845927634825416202091079504505583633027309584473725421099472081656902720083294506236611755719275258025155032649523488649992999757693173417821000154357818388420742409577395290752858963594761119659578775928115227601814366062825019287826655112335291096208229020568584633742910642653981849100635406762085888484474768649394691920769794634739108499668741941709627864497488677331081677090525167427054911385802975836948153940938371076658521832046181806531463827671052919542228512603430622142980748746004075912512763756960506726012599648278096549740255008562401345288260765867278711852648026035199213259873703980524138963158089172911527452801380736206724290632425461952630448452014016964857424311095129236763279637982246512018029701853551440218024789658520734160933007308254329617135373995466280194343817132238749757775390015329183086470741267146919849319974439185841841731311654330984022419525841837440097264483699937293115294123581466317721358592838785597800377672302323419253875114368868846628549010772848162787070106169440275092889843507651932087360886597373616422811188809588753094734611457991342878952933708338691554115773638036041856371815943152154818068587723018345615307423652386061948479259369308692970184436931364868365787525280563010351447528521133946946060357013159109575005987063305153329391982631556386632373165972274426403724714599360421623996832201653373662370293874498155169120213442225429192857875895956222930083117477352278435713053634881866225968299143422319831386150561452395939263554277660455198601874367408890348196557019461517036102874652986642892985595479417303166424553705390153536411294773856869733387538404359845649247688439608780638390733663264578502559986582137200840553160440350259315657588390953164898275446439454142132090938711259487057745133668709338661992198857892334675451045738045422470508916021635285775817233942970579531407330924135522878288843662772343849749128568080248163281481269360292274433285551109365762583792070526609054052381092349972713481025933900371038068187160127247321402938672632812438203675156050355771709709521941279937599029195521078807365788742925360814222981745457166101260524692581222974188491174058993556644457467537054414349264962177618973119545803283377277938417021797492444234622943538892421607355833781859945198060184274824061483000636846860956771412295917513371039065205856156110550926079172959742429176822199076856738482251177799487147341435489477789871656118917825602964336779238858286903433825807357472986250210583037392143983061440128834290704385928383882258055842218114169545856065521602167026882861375936145391071160028267139324531989576190946145693265387332941666382036851314515605991539752909895212664794146582643515796756535353691749909088850053479146461672102730537721854382271740362944116666067933529114475016916295271707881098119501416661826908734770114407665310656768405426818558582249646676372017747467878468504140019174908801050975158623502410596441101866536508450443677213607764801383220376548101359380642841871639209415937686819990423479899190223634968543697606733117438237303967436577990569750591799756934191661483476212035890105356925912240230450376202978908316003908119951417026553714816121648532703984806566195784722972977807889063831723475587877984722592209747107061878190521557072763950953153251212215425429787482907765502073299865310579375464175626015381750935357094275630998708203342301636018310394488572630239157855345144634248740010484978107565999893916508177613859648351892731175662718892985945443723192072055379664174998215755952840056307137159017354935909618955060875869856728697940830403547523473377996116752470876911613330905179318036980309750645605184785005495697459904890896388099580947383775180936738470328903608497905836450884121290114957467144752725349867971569268761073655779185508836317643334474441521246617147481667749955265019539658592317912398304546492177244397780758873273048543271703708575026574695023483169173029956266792022503946995866778305655119500525632057892330149150350782532870363951261791946644461634603883972213574316016434618322591896496274108782646190242088957156244158946621872564600602526847427243632970459747888266938270348922449677817192381138299350085497151451640594391239623136561558841735295481834439871653195989047462131965504648984994101278953615491356622413152546475962849595901826705649338645458322362017657166074313316996259987298415674042963567417261490865478209788508607654432321273600078383542939006720460287664374951259938715221345511539376516370897333732235736179334688461318932860074795272651307544539070958908426298560324801594274847278316265838477374753389264903339839715010971208994116137987747770765721034111825793871313855745128710120563549038622617036273443107059600284804160848007989950104122205092518470354571043160263211698627662880790730911716503442932230238456363508680860406260616790217648325477922852502135461628313570135012909379867159349336972732239325161993006857816108595878881247443100114875567696299486469129079532946321636182720569169315084706083292209819644175475463257603406728365133723911620419143895809530907507381691072709053851944902825899405486892894417267564918546942883293416933943907754016061012105154450089320864871219405301729979468112158122881787905930124362364755379081679957142355873442787995239481295657504654334948539603256927009799614347031399148040357012585063294705665135357991139975446163346430248392749022319930504180512972430575841457139095122099788867957274597204303116970968862391136551079096860650440243347318926582165746500402855838294206219389245052625891026262293211002786482756793638332088508246025203660945575566839465666574095226157617911807452943832101904867042278339267199781497052496474006051826201881798410213627898163206838525600055881760496143824351844538625930504085680946182998443653392404029255642331808773357471266299051102099417713897256966426994477961573007738532872825688796921350472399147838700308091697235609144867979194329104015821350527323575068433937829043788668737051323766901540443436961871430102264683831393220254304017633036517915567670799096573171994530243886753507880929136204686686614279840194633150251385668886162079666201843686386455388705269519415326383729508747144509449825930983325479482173375561027979472285868045738335985973221251386367157189607799014612383465685051983858118601365035420469079386439904234961544361078595676575578013220672622941760977004961330443154995280807382055519479658783342839180765625974670693454414338191082661706935210353650996360480142753933588396508514005768521064773629650556103722341769843826861803206541449819783163354075870045935120915241961299309303435462918552774773596197293835749581349936348650222946067160744211449807857460998171650281018848428380111897088065997069370676168094638309081496356809018265370619916901635168648610237113567620945704915093122663787924604999743317504540992072408064408701966721362472896289068256143035879041861124692188284899964065278534027198467385725447267863557129501167689302127393531047591274022203100641433530891337472752507994899077605647072653701488242780097825340842217095872244496325927915096350012122265984458540175827656139156894071401167433625979343587964642706852343999094123625958284659079567397431713836017484642360199846080663488494283148373650793224641000113231955943457172853737270689920617570722274743415663165660171179116998175306030183582765382599586179339046219444098689975437481540315037607631655421972545920464521008114498839669463203011695881558078732856101439710732442648453089743053647906763066444196492893737466475445074890882434474013270801444733476616696327859174799038326452864757903517626442850281267766740235297431482064154766329644928540523385927920387438931109624579326467619680850534238654071412241963971542139521382846331438958386249056094739030987940653604666578570233661114042497204383534750054376265740882432204370551221945020948280576876105764985839289838912095996722037073331460729803472580070032439478617447295917127336765950006122850160916307003307107325759589400928596707409916701346229844783574774728160926885995280339524355697642738342498090428460277264935085430904542592659272103495091142528687065744877760501307399132613807389854919782704368452168585512981274926168405263573914972682402058823741135858485928833697608899077870088636165320217673718883433525906332615447969229557169108940755874139522331403983540476457307937712220353030896567094090228532247728707339800763508701866284700849912186845226892957532698428992991589063621053563381679060171774439981017692648961907839672109899438757947624002341758986226582644217321605566581525544304337235867863411201094306209297580070295683424060469623286559767093904064828599930365953604014161284720166189886171876703109609257688535107309079862093142304239396494368934483754618888008259831365300848530919579930083650638498449380429073006449569435569622696136771984591776073117674224554676279481526979084679403891008783977943858213098656769508527022232204275732355917699738364400843631220646637097121331161159886354409928190365651389167718664240107365452217093966292735328629016381452291408226870536182877331958285610227326163961046167492381680824259295752007636044890795895734003761670915947512946575032161843742006140609851637967377826548667441414713114075721753915342616790912062209061123115914163191969874332778522201356864123086757116655433872638447225548928188616868897738712642761661914428095592602781688281502268316474044093392376023910675356375069984238912590532828367740833192419056227352970285044949547414587974099239656256824506529964502074208824923319652402569348691620230051518667983745259267056889215190102361876867667368915549434032906683331419037651749969139144164640972050606304993000198265137431369309054563291009702835618411889780551607818894263880344506981374056828379583458255460597582380897721038391832098339462017314300362218168945665431351113268271433384528991578642668851366409608504820221341085402657753661732191774560550993184596818531720440593180330389135341386834837898574119480913135292382116008400637963732680727603334355415368831237655936842337664701792760025720912441739027644222393636808041316075972356057971644826954967894027723830634900909043074211367692560975086830939265790267740739320595195779033463802317506684020767336027784111063544949389691438368634950264758980326292831662873722080270503948734044138113760610405930864937505728608464279522134214961673097690006290035218499236801785201081207593933132692084537862403974892311740597759365464924727865828876883274748294083649489468139516059323253369582243260856420916382961883475592461312598247046614053328246123192149410062571548843386509224764761544323983158207911684803399214453011346569945068267118762317332556382783009280767387954987656312062589571994303663519944808841663487253604934104168349882738112467627952238789456430554407362335165847507141576124851065392530105803507297746375964626541580315831881825576060831264616647529310608877534824984238628552859585451934197182367217072052542760431424176313504582569876965826193822939251574529541931726420008603325060075780833254037249116178834236005319329272937688101118127113732463649338226896410793667787861057496870766779783362772477011957928888174089783943446364929822772560810901528077582042876029353361054387701458693350133586859367622268154211500811224031316670082600116024238378121129315895147901588493107456828457670993159135206616185665634908690641223577275458926168955658286304723780552654605969733236629623588278854061719514009316519852910431275211284315320313398995569974380064296637508085393342432629205842739071921882153760999690725724077991571297550556735213788478711681671602685283131464106102025457782163353076783485202460664571867277575114574200685616133188210581181325318083053274495232711317853937232707663683721567253761718639100367249698049385155736935124587626885481802852615611778445124533661004948365179333919683358233304865516890252849381435209903875542159888462401458213131097522350804562568063255656621754504524584155720755681972739451950406785052245958596662166064522932332226715881809236031850478223604151997232589922603505606779857140607131721236653137655325507030992478787685509100164281006630925243775148120621083811414615362382415531367840318523351394545570312537643914545183781899987464752606479943547747761666281150485940702480581753689792341776710719140942843954796510625568683484323114801000273863711806093873853979359132360503329694627990809968881082117033186530831231904264533258092129491334318490065042268221584771235556958963865383535596535801263727453619393341683304033733227089008311836595068199617814980193831530876290749308826473231664883059999339715215126789418720534950274965631555311357969119265205829060820927686026144489952598042031133749385730724611981367868346048757130982982669507160542228730910780179412429887715191096572659885514149371547345193333299062401055983585240589728639220895576953276563228088465490046081190237587995943522725074438515927192813119506231300315356120741970422502083117228323647971874715152862415895326866061612619384882929372951585327013540059311475174897026696602466867063137093753930740754958658185635242030394211169745607287256574247296296506628665626005327001061492727088380513573603847416007507644236003752720570344205974438098527770088834128309938466805773979666419350328200763055286041473133987284260115825851443353830865469891073502635273820244694162714862683301016025650898242611491108340602005474625733088653819368146659012721138515638817700700571232348463661354337360013024637796138402816980076403698695795568836934816043439323882029828573704241077602571880964127741749130496220769430469027786388259645642255069487138847570459715596543386024924182279582548725431810868198079423680764829629547577772150679554907051345259911834337579584560846408035986210120842218868312575877924219700735661149277361421089604237430090369026167383114708520284161022942222302232368393762377089199978977794012434126631124279154259777346905562842076673287460186580691795509839636111440264379660153072053417095042361679878623009826362856098472498606058792402120412769283734103775901441117087181925454924133787415849546306353134395114021850033848369956080657925804950445033266186452088569927510590745577540954250881365300337310080741698418594190127677391154512032012824491910949543271143548858332707531821604641710310473449588023316288269528693491499001238765883539776609028352869023386404469713163677442324632099753347326334982463131125328991209611445592290412239938920881051086464360209225363191700048021016545014121610998311215135744219176593606839016655957836897052791860017653811100417774962618524501524105443819782166188577045919570748047877671709520738984452579652204171891165177835116960916358449975660197789866943366905227807011192475483966331715107849275291367104748618499213591354532417213612462647967417911341089305536470390666652850617646696087515571250375551306937382243715318809767534117666679002998060932552694347748004692845547290101784080598989812103172172301465527841986697171067162246900164154650045064839213329930226752473101581282694228157149641574901244007585071135533273185473803946186555867919022759605862533520188881609661013489484089212730597144429554190925702856187106190598706657726208573345486442742797593693541071448290192848823010384566971305196929265949441476351373442403802711939000219015278353192212461471907848919840964964156519978560642453970104469805343427620759265130146985134859108398049315740973329551203866425393275367281579417876711789331597560870519849897383049923155946689592153943197617676282318308777441510444048192705035635960496341355566773018486768353130749462127086055455719250453072927851208472808912423493318676116303559300919725455024943951863734658355114520788082937799300134628032812045923048597452108437249367005353514707410993849670783863823820691839734999327589092649788510055885470000128598600232676636019262557734583118630460536807642312830833933103396107323200898118319609420383851227275932002629872240206107361139317547245805508269232097848953896788110620018234502824522099934456981823657090481633088482210466425150857861785880166023567145567819951057803307802383515425736002631644419690219072230936207318896395295546070371407951080649443498032330139725947802043366405717766704405800073655229459583000805745550320392640813333296668181360139381502503251054551702302206088015690886768305683613216389711261599134359039404989008316267477226073442397408789030032599677357497169433708962138199103770829867678677512559526776081094369687299155981115067752823237460474161831974698061758237809769800777751767240397312180656163195341870730079467792023928509417494088316323285469144245242095795090768313868194062843225403940644861471496585192781627405577512040824938939523516192750175785020216382758690795545450035059684520664616486766724949637475959904474235017326201897236011453396626102498718953656540857683941218006979783821383662597134768266777828907987256042997851657247758752954257976241284637857493675483224091825330244619842654596490238712783132948026702826108703703541343600846524090390818904430195026736418368743965195956970777728823328009296920860746864021449901944120424641559328604379999590824761106129672894926695702199749417118527581928317124755524359666606688956564007289771721816658145421553144164774965616054837612866925201777943062641062972917324705391710787147742350752219185126655761630188933698588422243546321331312698562661420705014639412567676783811590729649347866956212592231230623885628212530644880041025853183083514678847878461631102150100482872351633125921418524966694470744061260732951058751662967122114820416496018001993161389903727102308513901235222186908451940412219135208877735906495857643993714085014651877013630141455232333470687525409423802512748117700300314297620196142666354439874661725136339465808016786589361201610404057726421217984771880724915915160222513039622674272431217362471894008717526228930033744140529033710768498374774120495900161366975550069834771949654592224452540815776830018981412244692285664513620124358092555151983128930249303786302273605340925301522031022263464095559082971271832227392483257834596086833754048975406062484813653633901139869752521350137440488317977204892993988095952008990019189684550939310136887985500939042813677978210018216686595567857519228076679273762906058016291393135958608587507886313454157446067576624158874071444766068212277850971143034375757222474564607551150418552846249651059240852852727877233424850712844574693368571480606462768078772824423370313756920915476548501167770962306123960102827986777922724788237654569133260470836467166423594726167102585071949835347092366997832503564852502706541567204223202541867336782285271279798434051699099240827512110437593264550181878548661464078100244553488653142516805438429731543448221859278856711078195314092132545137778985203635165935800894297174204810173027939218601936419880821889472394873973092345679162407773777330371369736575292454502777924751642147748536218651938833464625206601892563125269192359432788992651222236868640957149916311263916255955869246352909193261939237868744606780470186323629406163073304338933192069413378171440025293845067064413456824355379115582024889544503326064789788640583429524374578284215218867058089422930043287683940386959318871104415969294620188978044467904644044597986814160885892273725916632534593546500873802716131141504977142644137514715695397392965274524823970557754942220114476882855333635654816708657165656833784044286292633424356017271434490230587159920716853601559449402700330105404428552541395681278651752854052913000554481230555018070848154228810002710712960274073657995691488453113118758291929243892346827579728960591344570793008906866416710609852269621781875833919777361731580564273973395579880218718131336793348394933136063351082065863590672130248902352081553096247314234468002842946099868278904123961659027571851091112079012990164789880358079066971328687217764380061257310859230775710598541766738290140001071528708624254636729587813144933384880350568215809880552052424092013861185366737964854063665439500125415326388942598780066112251932677534431493820064864093680877618970348418932945466257881676385745645256355617885202221524262563815150112229813250418728822520932391569227872692126940117041182352047939993662221571954077698702759404939613875568772579359388012949069164622566496375470018090384087029346928031879964509867868705573619658107475606994651846228447885271327173807552939866297983772197690860854203381911010987910261226127006054435865528403753311517317791714154415380232188283016893806682327363712801639248845974454881201422490990567616737977741425548569323523680401044992099237248339243488691517482108347099082429461434028571070357640571130547199625277727808108688502753668649146724393792626321824699744458379036324211305417420739419321709106515610982608692066562726258515405904251115248956122626484074786607483877549869097958410073130961393532957219793696199818445607594391636165493948411169940357133800555240431704158754600638351313556777972973774675171198476561873285266534795698516166746226140757820261030085150279640452304558793592825466595590471966929964785210158577438932925345839634538270344059367398072432901348931482732581798258674409691270440412451501569526637903073502157901666872256270792858791334735610797228726913920852503536969311995826878460159205104340450461049180130825016031047494377988603148876151712741456712906253824877067498957747775813689166517045796191310668140078726361502936275355585882332483741873245208505231140208203949601172706919375336152021093213905492111369593982557277911157352720657474656156864874269474687268807706545523983830819940704496644361360710914908343871895602347100518190978104361529455031109656365287756948406010815873043142399030195156296941455833566113408547005779957540392265173246127178160693064393327550640743001050325255636677763980618888539508787102982906707844712519713199395943072083363340226906845401797619551234798318675425222719725094546368011175784025203443864988631144606288357387037125896125041673486164597113478324397946422349507783059032395607043132128779612814061579555991355165081103388266853988975271002819852715780659044285900178782550397341678026151551556498817937843477477490977876489002933812168462957941144806450851579659222609632396215266412209745403868568355851620182511236205831625744532355902517946739652762345049493895502276161536112097842531164624699577873603108416077465092781970470974299615401554902960817690219524811573727710482064467672646543739067697583296896380494588488235114358328249423515852677511758261352435250494153474447467970241658332407749307363412574199869740082170214303173756612177755626899776001982431355417632532738630208985733891938463723021442839928892591481337488827265989308070629927206198532984529442967008495556661176760977672281651693171639936409441860162001866024290015623318885068532323126037674224608935527701479196952563722357025493334806756917604516898473431142472604757962441613073873757867279896074782014970323342108492506624086474220769964320838621048119134762467484094372852216299694718122088009650780834242857494220338717833618696399860922612321801777358356006318499666103055183895987178783143011320113981998296820442316747871557143858733228786880863725603442761979448685159680645103244338950993769257597253243914167660270425957556744325985857730091792643938787218010596761512347314647011969605684520968727806458556057740300088793474624321467326441414662597472567372250539107955002034513055283175206260841094943068378204086917146584478226936881354344754206552173151779317907707177123779885921416877238413583472880771998838531794052850194403223900559735803312609714926123998888592466813041377853025037636348117984828865176518880867835348181361037411156501051268552086214027610850525149364362858143854310952976043474792569256129725471439750560017449788849956578087256809521060455821085498256056051540113313305800581441432729049593634465001666976008968548182117832981924480187695903605009497026963025686061599809668631833483393723757227819358814794200387315657490188857976001939773482839624674454520678803529133250162704605849132615674013194663396284255543280306317655755437405599807308107541685071396802738662312215466808547085782998614847801877338299551369890109855929623834085836089729410248407170004249219211297260183455591638064217980065357389732845875298156069790109930319162000468118899347361477686863276086919267115973110371338562983544287040004500366204852250754645435032395290793718025237768595092847664139483403339800515675089091919300190719457709866091963988485581607533360087332607819206304078882425601499662983833271332350855729691058818313025964004891870262221007521212981715501041002289588658141785537414137700540151196982150677200561994897268117450962357880822319282781314435495959527176229122136073506246625307500477549359471799989760039535886244139827271871760285214456503235070008508762241670628515387437273079775349030066295424540875144920641875140743462446819690152851576490569113786160759088446665401255357344226978599821537585308455939791510535246900981088920475615245731434183202890196132762767993982892398216371112771088612750767864929835919816964173688265705046302155148929672436344332904272887994389765575310468955195967144838448508038626338937047847105945576177960214281931677033809664855827713525129946192661488986937216163371672455260469073916297233733611075704113075970056925330542190516002227252533721908491407389988009194446241065900821931527897203897527964101924594946941763716967479632046081976883701433357933995272033579733689020775198833223200315785920549967995132558685349469040230567791539350154461279016470088799619427663907663505413587852604772769904720348124286361519416730352434964218122794899919520355124448521443952715023691361721614790040321144752071129916372424803570991046182193403120796045138540414289378402309588973910345055932325827088681340634395253199930714531384922007862337781948618218849390610261905238165541548262848600431692183752188375826299731232615066750249766598816598841954671394593768354217436758941990995317123761589573626708580386147914674533372219970960954023895312597132450293268111944650093993722308984030467640528880213254828450963462009080413313675314086293336958497841282080243949286307216621606126554939886969713809669133620254890318981200200339796631430035916806777557346722574692200055870134446201975197456309134918025403454030652604517477263656050132584111734348874508897647058621448904509731582014852956082879642622798295120648630684181500080981002248696537874481394523029098069428707055455426305258125933580738866893766306609067949852271966617135958356840307447562233328180411351686198964279072214553766927747070473851807557319031250292055370592210193237354285277205507948997569237476022875159854254331237038790176439046306926874791673269366238317754218492078437859280582533752552652675015834330999954102273821909584331794215128034684780170282791752695859399157857497305999480833931098953857152533771121180603070161444119095044515994428553175382939101531120539078251508780271169255120445855499863154865675012330956571897303952889223274825402160380387501051362996977510434955816418199797082625355423175807158967814611695637506548410006281119961746207338755913529541252560873453368330288878105636443927319415811613558952334832762641024844157864241933465053297131197021757682114547849865376876706783175147610104879810511290868466171417961890784510122974764535583347766138232765267624103705853603967193085871024201232539495493987711686228552181312129750181595770270597997813128668725627897247483081797665322255335694702046670766000875601896949630375683156387391042853177564251141575689230689617650429252948603410292269888970249666310146372545852993709272942533395328952886844265269053061865944064391046620242006294336260032528346924438605777723580765929950579205422978045376712482917544745534298738955957053064723905920449776681930095347448726613678922796904775154304194332608596260111138485824544260989898443001617159948286026105929919403807858974596274699210337302770967725095975374651917441275331942175373348533191483878797622883128785050597870124781733170634681331763937054105890449265145958468204734036139467139895581642101454396663310009261631201251406516379000090336518600429781836549303642035972855636724184688215125178124420899179567841399712712477687156644359549758397428753745341197042947966150155106446400628649315518428639378059452970983291203281921695067955259873805005310199345355636137694686758832861965168010650236362804999017877619742637400573064709766633536891767344359553459074574663595670465710711091066958395262614131082102809010624970560311527663206294317040190969577240435928740329973113782075913488420361068546727340553772480008467260186602081932369526264057390652425821404009157904777486986724752179394908578056019081381459594451246857454399774211342049978421703426122951560971232218563122224164359319164565391009634098914933332415296227521551613109762789566797973283944588311404346965011520171071622379578745676603618577404387817495649857631295104377923561909048781143430069179847052966602802445464917084522098263124049788777618103864144451277781404900546276467336439841423917676461472291727123643232925703498858003847784297346660267482692538920261054014275011492177634037383376096769323109170523227826847313240711416532428294137121944890126666350222248479488734160588847712477305293549399387927600746445326838691736687779495943609241431722406111311740562287152769835130526982717508729205681559936748909986260129860683595953957782740428683450936785931101640885305734421450101459014695620765296612435249476442590179208007947804624095889804650185022029654517840711257712457479246192290982204083420154276985228945329468582586190179379148246990928531503341117496409556970657124261657532917102066280508208745439265064518193350242016880867768554068309956768302009035082298427879451723824777832344290072384321081880875282832267116737246485404617752027855422715246493457576363937764700765078654895702914528983505553540039932740189736060483846350768780723213561989257750695291106087654578780179049420368723615369254125889751263586408794321426549994134684284698900751839585543386494956808857731119601568737716329045573860585130539910029951454298640075846933573272145940680049653854099769761500801316360290374744731790238819997731919712671080574411205555607516773908043752764233080801003190444291910560045453592157753696059417428886289310187558228072733576134347444668703789795978578285079015478769519965491860959470420589926568693389642807811077620797259649750268829235904233963853763357512973217100774729522897259693303853698540572308741859099103416869784634620165269444972613782683095227151076032441867213396322243054881346757311093862908407512942523908088019719005164499434137342422588067622316432594993658499995628448098693637790073500521386267939574151565737950237394636411111279228633415275513659755132970149477853544998062342031854961199543545457459155656938067820675392426768076489508603716193863046020635143960977234948647885152994728104681441311871413630835061328320746942986608242525845146624334844225565958454847465759258791559813152560460508009219179524315111774426064631390593045395606098405085114800974188910633888903564153488545820542586462296112307336011301979190650765794275739536958674677606339178179742848227288917179720132507531336506694584968385172876980150042727515692549635492780237264730531875509114162371910936844259547317695730600384937921595588682951979613138505465941867600245006945072865876253390918121900969733851077517138774702932142592960717135386479659540947852438555056221018680015052663863680767322238348531596235906831225221097735701745351976660752186233880732902392883333591603843930251707153707520572679910573785225457991369291596281193475446510549713981972542142624761858381978718063867565746181230181212614363211847863356111627038191226810556391537391342067215419306035101980425275550498799805843840113769355203558668154647735666791005793716439092215114471351108168665638983723530189736256945877097870206240998765281733192177133094298724288780551837567112989520858227283773557994348233476645038379272453076615721814824007982819447672023197835611753993002385657338974658543827903139029858668865672118954264351737438539043921583572182572169979262881666228827901469146561071621037285066695638933381945972644092947382488466871157100902011839844875698289432942056927852168549564546431821482273515996658537556418336983221304535030702290502257119700101710061897025644636031258428952293830721166022535898625173356791161147499357852549169066062612571437350960620745742105616445622271619336065217903175331212837044965763284113777344809808415105622972262239243328330330202604324266308825767786709298921172156102515357139478698549958237016461696111348250910635953589871064677175215512864193576255710712106090119150254807894433874486654639439541318108018670451602501555764278706245006966748324267435466930278621673765780623385774383281950020849346628387096437831938880772633176058252917173623467450145007347466313106746056096818631809758034347550333737356883517325862929979735017930526003537002341657424633660947077045507137861157838942629360864927087502363248019268413816013451251464799901950211301991973077332002105321836551873777772714643011412182291506105946653451755257050356717406127554922162600844896632369852946305590724354294743154836061331099272480954607849513795560293455046365970133669105976786141011512718559774078461613752505602616658409282562613957787280882371529698419122007862187442591408125138487075827753338998176624804839323848814280539356518793221651128117321594450734163616962681877457404686494839262356625565063788121870524271975940088150571910820721789485497070352074767066599590658676425887680406594631673675282614969304806695722102506747783952565729178394491453149109919258938830030204868753285810986414257154452153036129941409054005861066154577490287405962241724693973229016227464006962258610171871661868415340177146039179734239945383718651740241916480761654737295785605675581109957011784941482401061431315309509648612210004364031348739871770694090685936342794816160555878982188237696012622834607154905259073196745276648207797198234872866657813389455064864731669940118538801828122508558414334217991112577817790217133862828839292432229429301783524979136602122285900694666934370518492847743378797432694174468643971975028927153668753569691924028451615110738547096463776300289489713904787164260845291951925098348884016869922232330332604254589788087946462128363384386203384491690769860633413448834486172225880746173968252135488294773591146306009079271725912097655039005905620040412321859740275827133058610487806483603665464228160561515741771433212257779204631778998951622144400266883006400881928494475113799292298252173270478381133241667270472020084735183907647264708230077371723912921623793063795885242756486732456655511974092085575694417075758901623639580603760307907563740964184874571036629276422187526423827413639310944781667597948733263496964972272556841072107892359690788467878860415109682979344655313762588672517054279461012198374094126420800761665562306859894184545477853394369928572406764167146489356006717952700687422699557629587864498430333189181686074290925070027690521905129446772877054494994519852424963904449736028559907113030040946450285328073540448093465761174018234297144640820924129452253408418868179970809416381266442493074743411712616369111775873554051254018450616585001082969236044629387164901783423152909309568217483782374834865834389445480097391088875854902767002982161418412529167673347976237788370842937464336994446948498471973714295444356119701382976619128424015972260170206090699844464660997669429346360328157019611093156557849793116109253760875826628504967267903155654255489540282644826403449518154788402688225946846252584613815601336934551279569157063800471554461558521083357818483441656105665961763247066790719509499622671968527561865822276206876588992518187753802919438399720300604816026058322793262078001787272137350532699031992266073835794469000105191051893527060334482528743376394892135980694436714864894158229598059512952708989129404260200838637208078151367770446200674363803665705836243835457302816120237033514178820038644238872170234780108202261528357899361481141166442981564925360653907524357421201981395286479534482141093217030510634772843069492176030055497463003320682762377947840650485151062651694538586807512219601041790286120158999470914595960227454241049076456747552876382240311983045850447935920203912124460569581985261084676392670241358937244246375459414995971492845428003502255276061617981323479663776187067117555573843633393146605334596979647118251348352304280930119995195718581695091350128172635169637721966358250807626629615191723281415531591264656606631726755274336816503732723418852807935312252429653316440405554850613507737850158648544498858402537932614282549547659191998414775767796563763647649999759006474085285386434607480091227967099966072994709442707702566104481559146141988992296060997672244836804186802384453524554552607529148064049952033784089112593963230052255839710525450234112969462527849504524217384484423939341530918882585918726760689143173117890062505196071597056701317660220888279530256315605218464058489412134241435094631792262991794017125680657611564858752523286443973349619326598668048446754276335450893235767627288646232900879432939333227051548511658077858396490275793096723173199534930699584839397532301150938486156081822235409748308583052929688488203614292996717887511242917052484154894706422103951121626396652723559937563333015899232326860299889535322674847062913305210666790580509108266892015436801199403764412396697800578116413439630353195920861722480817277094234827833861617705969840580175845372764492276113159518515287087279677842646938859923250459967648172698823059616544886279953170945691613782814850832735013642570121145055264406139643333450836383904910047638143747902537716417692098265323811514819578866873154536021640526624780784499672828913534402094859121207568571937550928307502403106927925947739571526604417396089110326716388380642043390152322097757129530745239379332782794371322138580929611723057119398033926334955364833062874059634292647775523283393211383811851553656327407675429528897675782767525908911010682209141985420845126006766266338989390069656334082043651285456526891923200475482963494896945985875067358836455721265419552833298163775404649790837577026279421192869203524305764431279163752293152209405536341606003000199643483538239815347061468746926836082435889105096282033662575079920666190447001371770991115655022596680764812405884027217106638895873028932611677359094031477450922720470676864613123975160106313886028950375419456940486978000003574618318627425631411301489689375281022594678500676986194967291021199592063137372725979481985079227478673396068217980269443179900695938648857518433620584620000784541931362633277346892645424778586852636713398350410859960685270067904197862599914809457379395536463924739560989391148077443335265120917849042388512014132635556658166616394677227043737036807654527603098297546906316677166285956530248962995067196528307397377224498458473619186906563166077146403987196245286131741691104737746345007650551175219664777123920368692768926120138539403998964848482765011373934581234523383768938459594281059089112467844526198598892695309358333788539426465968212384043771178011893992392738517615455912215236016161919619281827748956780973065837000743108409342338386855394761066935054891568081813402693636183590969785172819808781063074395533274440073749151870344608293888771234848059442479508100499554678905784743812254285623619540240546313094559228804243083740113839358301011563734825289414870769675589031825763272585009906471823971414685153185137593055693867278657136364952077209268958218731638827562785872499506326955773315789589130846940843498853346634410662209223081014332599157615654852666969213269982354327580053660593488798726408100276395691493488753187485183677270603738135183167022220745769573373432410779960603518255310515431358386748386770262815767570808027436781865133641904752202169367635947712968037790342841333755123671501861451543328093046068828271340400150296214419609953148467778910278281947316477909114987784703299071624187925510236313494450851531422513425959681918650010422921160004943915820937244402682219430485221834226967069119238621394504964942326696451808111603190188656977264085390021831958947162681056175371965986195079153739742832545430311275273071597322094494728123005664962110892797076649900968348463513909721573020303593718146765663790740875872749215844191646460503046835431514135524430316770181163111491314497983646668450024301533384419515575466446978035862729369766294465994399401095940576391494231066013568529739370325256213457484340936807621057601859558251921559402032367291080734079565636441140885876297271135695393883019948481194858012100169381665780521904835844847118313372087430753868868319957201864114332307681987340167945755847630988550066640469530886464138471584064101959973986301532552788817307224038366607538111650630431556328509438179050303830254967086644981111987156761940090931391961194001978072339745882361304928009146609310725204615325062107277526264955744306283510410119490784694499866917869890848947508603157741936855653411786101571863776836315495437667829871957969390834029634564098785942351630294137947670681371453575313493600025355332676321778480015951563441852466456547609320919211433928837758445811523636608359609105262283136395505576559684156692023942409191402646256346138710439552232372085008394847701746913470705682379802400731170811500343987536909514432327319304858628871883693796256808336413635253794890119472785119139830564219735924360371994935738942935024189569832090194656336219268424707724879446706926378435514784190527404792567456870859842536886101366535970459099678322577627653941160269070044304056794352985455029874789668572666052181439785158673280713512068642330433574066485910630295211193315078828367351805947184852675146854220366556615156651834774593071357212927064596655630073111596435474749549601209960586511656836295859448083322189959100412134201646598620867319343847798068732304008752751867797064663732979477675139681754013352507075764088125499732216078722398300042556148645421921805348480907381530941559430322372906137779943356777022656413765562799891204240133742800191245938848303873529514284691328558183246706511027064112501080625524917502172424163246993898933602239697109666576675721390400224457290409095554957440986669467459812646896143807032925265373282175339724089671040855744486455833729935344031202969692075520630848466053314006017773561915315647041773356508033845963019857825923622462540518430918955579123085685578647883486625036763844312392639050924654917001413645097608224108121507519744340304217354036430999110299079014697455558807294699275369262651873704270813318394037578396192332539636948393031393061875772849046750174874990330584844140301303571547673718673599805383875351184045260595124718135367124831232422949406736582096368396234530955807680769235837594588433452299048242224635407137738371571434868386939326320112638709986489007642971774898400720047504475702359289385134564299260707084993880155227030065211394632145460248655249025051077623871438845168927145527461268245808545747616705071547778254002432464348080344375801910303125578079320171692550205083096928442335419367851449259397523918689780752586114804393568912999575984420605745915814126965816702882931134989525470864489384283190279075919557606786553598904447044272159759463182337693081792677238344767995676641391602670367956190681069962622200895101172614943339172656916159272359334754414737842286850086683763110451647760672428340032626386525908155022148305018258556497759662829932340468804058184305775709061032330471395666463756870818181630020029615178002372895921183752072650789074424489663639034442965863876967865435303746639044656551231877512700834717015019445634491913119456057408914640479449173312157038582955577719776442062599329920719731707327860733948829719759291373685530465001693094430842024556546124141862515307101027945163411865213096734029744981640789623085914092653323065318252664921032794842130299175054890550996615164399306813850677558042382523546258353372518221945434683449293730974854273747968458397691456900183929907719126356561079481769423798312197361707107629856900725899388765157945681744066375816699829993688540865263545056371003678251833248003520748240409402008268323652408469489925688115155231809555166692903408095752932734180811908159195984126920472325990312475337829126553207792516875450612151187440072845265822287671956125588294727183171945272564646371988655706131831092595109916806599749256400440914389207788307335686245365002542522287075687072393843069734900521392939894696657954590342278142376642650389613831294431236341796346449728352999114957388169471125383585264133541615806461677901381292510388475175388371179294490280204289924647520705748958266427170464554264922030896001441891400370782579439912921031199013894741476336952562198019947799885892917125784668690408809067477250657745383642077504002720777050255096276625802776079888510919857647936346978314363551076226362258403150874372431468886106803186714449417719636066968890431304399326013402892097336158814100578462580750698530158524650866053306273804489349053630832831654118195974460747251933253240155969881086341225782335483650710123266691411321711560288606733151880139697995988302466446916751516145430148045995441485814546102439444777344106787656747692631208766603440369065953778513016152091930490562828151992680679668846782600326815296903468633126282085364343466898858613237798507301216281748047480683580572921718947403603479022833551500356818710662256705355434184645085153863038081344125219759975374509455784536688967021884862469566536112306443800726592545486918843916088448236153905546410592442236660380802768562602239623881965989427034279822390346972528292278769530434194307942239543567675106312459861016240639153772280325407802341564919981835469693615100255715125164369625577731729539304579553466709303529674814937215428850109111421329742510571122944468509694004722105693907919704767094712507932797434304215098469332338401687549283462476031384706560971036029577614883021476364745110622407273273342656070145683964354270787951474148475502017982848700245894377769247600164824517377830726125940252557738521065357690818135286633242207850818116293499216533094551485987055736757715817342914166567106865893295600311019686057396980787011842889585802141213600048586609735186224055999290531531819969628525862896372213175258812352223262928895363574214149571654811744714457761462734227555426547647585975676966325219035111353872669927255718247665624631694363097253969066213425015047019523722074136989258265550409333412404641942388413664542047784074236504433245029116623589691150150546631920924237070900941085447314795130607360538951083634030344608449360632980157867813036306004739223164621502846734555065843367010643837934063716967415805521802969496812639037477438762830805746375173720942059445523425010392286894624936521207572272113021283249841696291645749530165724972526102771979722696116208124989738012600345580600167438792798363661825645307636180810042415812244490112927244170549007449057325142698723576049929065355933777736390889025446491317446523498033010946419991643893951467106557314906817227998442426204071107277675971051603693191377150855637200841428032195669349300635842430986365088752115138382203569545973922970438560313451932633873409336944642871016477166354627440599033084660088171003013475115601974435168345042685486199100085774522099275112644370570150477547900841033554929361210385963961431476243467789705701613977471611075405133019353634993004295847481328683832299966393657646131063847846755777284079169213349095757375769448621833187956031610261949463536506560905935493767509486551477937537226233158709470804218113322537301182897082781882343371127685864142236529697611464204944121232927332293377431386436186340560109943289770125018864237476971540099713116053401227526325272679186294831258912854272739621944680922630060418751147697075794026541937319396948215440555538635153881131632844779619191573704450369848770769755126349092291990905814037363170144109967377205818930503751615186725553832995133817387735913630722606580391509953603227319789970833452517447459344660257416934972962343071374943174449972991294827720952609312243608632262346941130998771305879649576296350389371301342181895598289794215648651153251759158886130189287867149509281982965231652276095976405302770142441056226092418546531706119708534571745232729053946011097171844836083003215252388051232129261303386792562559608267407841984386704902765862205150278568573607902695251261574489164367522205065168911603209011514502983944481299817615260939658641475789141615630842555016172280634447339200854174786806498323939293043263713077694734929714304914744535875582230833338742944424760119127493022082362498699589961112625759496394019316124193005173370707030746770192242609151199625864478753683544053955781909467090129199233036566442091506751540726462481860957225925369838051496094197467796685422829832541579917138524600731165921076829005212228866992807630833410197922250606511161898387124956942082869047951457883010771283012854524710570920350763276203489937299000800457533662650393882667325312011475680617654761314426295911694738371794728865076645189239319207562397081914914958314112188223845687044642187407566932098750038316091087147036979878132612909161215881032267771014664576427508057683959436502144906662704535936904904719791742238678320191105939075159241062287072796951565172068814866704693192270200697610055677951951086890466038882368392884371006315324685285612816695112193935262961205040535151198739228202038343444910560892228711787070918231271773113659034023100217456637560130687953298424536206064965196557510506559057977117876709696906625479244253654483387606730863418257896712278402639644591426579668144191123610594872423177132915473947915975085813485250867006730016259009799258226000884837815645304503388578382111293924642870302477862675163216039593947879975206034667186738724711078914346100609490027617916710172269479811015137006997067674922112963211118024797454998430112730046908069492518692202871949963525809288111301863774683066678293424058881454585728197043425961035494196717822248545509597063876296991981632809582313087433019220633316860852789345448915647671566161555656640337408206651596688170474583523656557115416356974875715774920446085535681696955945459699533906416698487640980134149746050444342312155428772034931400126775167219685919966499913420172249318023461932369495466291970928532939763484910804630003206111684437620922642516662271754951445878186221642254572969097978463042177325010066474752935349158123289813887592941047248509253181960404221933443049118877412823653936605360896938450597792911676205810508589996919179752744637268335944115198597197337154289706357304482932552403930500990411300655174388764871331566007798046928627574381985158168597882913171485002800846268695007351242775872664847291774492531028583476373253507303146900834646969361261039128356824326149427886026434629783524487582768382217579343950500684570019974528620019027148372596085688176106032787628558618310800234501335465900931301001291599346453888584214140910635530524958385623064514541003060851495102735812934785975362878643557449072914427632227808622230512343521673851682941295906908889930968267882359922955678558241489927826989152856678858354983260839316482259957971673973480781435686490341676382816121864761029591088655709617970073913589423658104532942004337458392083538834228854011386971112000371453741212802042067401880818849071924760392874662852442054140983451075314410102451552566922072607755226618315890436255067691314364202906199719597579374938773825873242697329992765351237355017612083214152478144972628153234058763229452357882529670134795244327927476773921247543923290313865682661956128660165108269431361861248605581928122580910993977027761230480782309774654145037090508321334791935564497441584888435708529388715506471215212685916729851244911358782102969050176273920602250216906754175593731425389770465427918272607956580616079877374216055897626778324984655445343905675853038257681369716942044166993870091794546707828757432791851105730590765263466159331203791966870211222043867506360804085185400785399168186605617419033550277144207749307644352784737771128041900214030873418592301393808706365935880373987512725941113843331114421602962583228070252468896509163500895989651943510080373150213744927290906749943081601606611392629009605720476501521205942692556097674877713343807666878150259025520239181696864083534985356320898142911107813684015095507265883619763301767582937176573107651020502632063898613973567303783359565333709790449714359234236846326641528983327194402608756920337574304127382187568293058739622875913011869844185589322252529479919298909798654014316706586823578893705966818526832497044811361145664434601816127209741716333967066371850089841348213128952015884144281301915113015334401951864258511033806090585588680871645759701845053926198432836697381551089989672628771722325969644822800900114833011489346782504955681676974019036065511044553554883650078391830966901573152991488625811706374027154160152264219504300443719918342804623457493298435535916592234325479520972084114749030174207852898120840957494032910393535005735608344181450217328403166883608767121017470207218910880088632630479619522399202516972352616389477752567422444832731513694058926197895813170867328965441889360975491970078367841654963619493826726696397531792867682226080718785887347051462874868152338818842677486964537247173814122231212540575985617975634681908800862953328501885757170037892235174871979329768077491107389487826139209418484182739974096316983497440046187053163089925976845595016396822511912260372317043890060434011802990260950849183906657563416572916690962731405505083021121508198828671443935801539179049980322337597978273781792568171571916925246304995358635222345995278427930677638706991966632016610747531202652828338722948339576033483956130900709061840260140641317306571130748482741284216258544824117168470308641000747035811209184913540324469268606398502877173301623053137711517110301424770917400538372549028220229740146213746107932962572910502417387362296345504584731404258453848109896506472594939148388610519999066442607291903879916612700774904425303741593338433457446507971192119709443627953938171501493646016040138525313090784919855451232482473008211164051828488014081806265536071753322802587183650311038818290044432628377880144606488819236067998940451780826122495144610515743584260954290327929706967208672371451785471118137301211835392084323274781962692804777643347608913688216258946145390456239648805111920632071374990833842834972912063603230349786746549007068368714645157365415512977484400488925488298472405783277385034254512845078378931075697497992033705216606731808252172429419569876735996952785876465161880500356825135560992490102479599600680307388154289883297957486114568171865019033731430857787611460917981678467895736908327839767508005624359999456066924544599678149579048704897437552131842280343752999647232148005425365895689682410546882858086751372470263154574609998847689482477742998491335689828172972420761233035744748957466090046896910674808951863964965895252934896302015088424105740836742703259929954613435670529738876738281381781195296426981725778572184886138015769518660126638531117691452934673770215918193064614851008426119755807965843600429829527173671741453196933478118965044994813087487200156207777828424234075023109207288182571923039205634433237668973965954613885476534256001846074221235241473314080714432544746071301416709148621635195467225785642659293689409858217342826632663755436355676979420821426689065476262096052347120810104198060846387682453234122789019976035145052801898871197486429277573640591967405503210257095944445839311445271164949365513035386943341015183813410227205136029554436728084142496040280370247287695896924719846580572088061010587936549981081656547293372650196425969558690008738912569970249009834344900133683487541441359265656929988385848670153107489301160680721383159779841039600198101616626483722770236558329091661598628013893901297097651894790454071908996239444152654684125078390213671107127786453194525621240444173481710237446898327621968531581116135914539572200777176519667039754006520928961500383223279838723923969064463431278303550623662096151628497780558370630923202744101682970525524902887484437057352668366899621521023321394411898176691548002030844830890637537698224554584781604428456730484342828094331028052440292632589908136758731205436473643761107461399104612254461966218532130264500629386082347652076936001365778500100136173993248935477462015435659417947088981344407317032072699130561862920332637306806302175861570875892547532470881154051826082216880938093937633433037155259675750701372691396196807402619850136751322301120719104063124723322229982239854309010994875636548196056415823038670777132733489594145543115011819951231218379022332633327570075531461318706037495565318724924850122485376689452350840380235461490103564687146753634282112319688469442785613096075160832781770134262610160775562234888638022577890650141414672339084202878471637171074224013090370156482528915040698031281031009951170416681427893457915970171040392021799965846982944516160408698426010141291738650969645018568537766559462548685236330850254549032840912430004050219189098535625247993123151447682465735612477408763341813882552821505559389882592384737422502968450324360831082655014586422265171665454495241093219501943693471301564299148792793507596091896972134851862976080404005855227666081453618278218286255556361196544624860749179523942693340456959658130664023530946328370363944067152317493638883635077198082123219541133016488966999208078484065974210964187390006455804846915496464567996659315626929255181589132115766005625047113920568118372413282369045562424841197347208426469292884373325585487865417079010011741851529216959274488960032745215560947734129189364210158207500162130897405815049212866501439910943205578156583727013646487274034024035495691301323915953453809764950160980420373065831693046086387683020758516737399418531598752987210403178893267826647208100892452846464292952626664223826604979397777620021091450702344945358495982180860401353408416952195580521553873720607766143554438943339426871182802167469421394368275575764840311033104996173146322955996067362510257287948390371193660946905779535661606670497858928627996414534316283468659531054567546884112559446273921551878789105858265161026439831225066562592281159108687510593120426313610992282833334753016158229803150482927763329169013311199521897591329183864410408539330703922913763053720845199060173668906012189847487000093043650333297044277578232562183314381730950816979124769017308922402244568344737136400505960465961294747304164923884087125688849316799638174180528422214081901800972934007956574027161168181693734441800693255031554499259022002598452082357049370579267305153074280945510724366598634255658514277589892835236730629602046943298225161263306659260066569966315716690934493005703505707070172102471552251278849231434411666191502264642993814362818931572064809560672632367272247638712254341578638557216943362456984163008782529107967332496999821598568934945397179814481893403188991560665549892329296083670724577871896391905640319046981957392616871733239896886118173870622444821508797615030581752376775748666286224210126794303172303903479400874550405667025194892558530014336378647903348597654794489128433601030401166930912293841354682876389095234082949964149602724666008883631073255361362003522205109443398257951645212252415172893111564733924789604296185809963045125598913669856979485844981397945225792126831479774415291161622749834256356806350299293635323244416758213524722200328099650385648500496166571279566947154021071619877497993333664392584073254033580467920924857606364736574783141985490928178869609185116750848671432588330366698561741100300987233363443176982873431097898350478775436673038639693373927414578379158988370678899485917001124429342238491245953397567977479165884628580387071835161414996906855613910603566561411115692519898781249972870091639008635054712259854484956059904366369676172386506022046440599557362175840443281553155318463967008011224726358427647016919089687085395711925607327303124765484233445865014281468431531685598996420419115170925728246974381465316304634299816533349816450097551196268401467629330664196813029257887365157008854964006280281125385062572219033838701682763442654481864762630752446452337763095538818784494667464643328008787050860315715886718679934756097481184401851085363765323823237873418021912180046679123851760110688370019269862237607966537898483507452299057559881927496633411884522494560315220868821174045564822937352545194577063272687458960658703568026310352881490740033285275562331365524833303682510427806635934516761246382692199130854302866586754039962815311900385396319493865796526627041964444308393781255929123410382383817250783540646795742363330418395752979445789824336297815337187062325901151833872206320293983329527629660462482441747754306024770400366553137036539298384629330996773388649011088467616823837595733618922432205036521465334764107605970752867128490972606855759101270036040632171569147857396530849941490846181631856038324526049017166412331587770932449676777000754518896218233534029641313262752682948329184211367092827513880058862719218784881619073750162799934845754738106399214715857487206698834049502032809335817513738451027827549459558771091675976254717218564550494292070204904652560423058609023346009272143128134892618436438966227530807442235592295602003187538620332914687662647225060675555422324956179438220448401729292207404965926587648181218928347559012815582427441353375557466310279303376920651884915175664482169474219484444200562003859270295080390409208472578665908348387707379926169803487204923131703654567035645079808109123804812636673228343925306627843387008702240651768310103233024609270437352108392793431349135419975360880742352666915313280909383515303906739752331288425982976360960964603096673735767382542202439121510396144082914055073223737694766238438439461613930288000128832914267159931054206162889889745307733333559038290727309253276241491394808741748716843233101452689538736986197297396166604543724634762058120258334146737381277390200732777991647941705492517185923157937175101015748672039208871710813342286714813265253569300341884756109865119352779396543938585419996114890100388367995716780356231600746232724600216273306740078503158621025304486640509369922116392355891885417794607478785693148186474811191287836913637644401631957226564324226468961961859344326965416956245022537155102030021192320640051013346153210570071182144144130347544670184464119179793509249564279198050580001852224648577591850677770514293500022335408612517782415078317601333902891180872299817203342027211847887341577347761189653701044940788266869429864307497985337975006309069850878039656621230080647743737951186676513465994029279008155279872985222545810806860830305230903225631471851259364814559013663954363624477510764019340010175142071746124523712656325814054215298723806232405090304337554044945519040072257744943378775995004452943894449053834050682487303620301028613536747600858422506094553487910429250586834874533763936351102353281526947617012245801330225888314958131933383311705762899827444951333170933528838230751917165495880174004666263205810161666016850211578574474904139644219145419977085418248884832992770765434934811474213145709261997557917681944886889889635420955636225942006285724068207952464682097072460864969564375331067393409249460556085705577700541130736829293104066432621941112948754393556292363961680570746936669812645309845633068603887787483753045069779690891549715642724305858379536822147561532985633928862234241083952995798705014614414957106637685002192675154082172495962408769111164494870538537661065261395637243149267130218760933693812041748542746222857166197646363481922419705382489859650168140131488255162457897346236143324709082328430543085787437538315720112493280885435813133257511035894942460262567927869802343985473944780292755214705996290816593865426350298785765695175146157625260143324740123124048543614014926002082168993751321516732128355848266448099023068605245392296373760749112434779110519591191491820353570953474349370935984668984897337513958236771034020917375604195126580880861303870567339983562124579630010162939837198251942467300400455930257859980456992748343574494996676510727812965540914946527651796432093450038607657946988748912105944182247179868202875442313087942206577567395640174471632349705450080381012265473801559433670274866239004677630613588406349855839101360109390282465816244384107966849748815972049271131127936146244254404286558059786153659185513029732542632151613652101141309489104047833498006101679708360616920737042706398983440303324971594197172006975955991366922941029978426641719138479310291183601885709679908478970746356363725113660094558023061612931204847168022595692925660591244310857695241770811416161653626579261325063788437713958636324412897727279873015805088378613520114335345449208789568512480426114528588656724688674200490983075295935535028933615114656923414638822756089283535577674239785137502835475187422875327325470048121261040744711609017927307862895064790698771958894269795031545942153449272892392568712983396113076964227376468539739568915246069835443403981802375383799731537479390310527774601981601106888231830559033029690138733652398499301428216738340527828066468884061511513648238337055982106845256180495850953550918621215504770522596566632485398117127944288149677475215584806729831089568922096968940160251592621442312022033020891487367094806854305907691303028845926007656759153527902770902364827258126220900622233728757036920717827956311070514513185426603009856040994923296882558479998210480196247615798235502084601431061737763821841070137999841938423403063326814563296458539158439966873740912073144362826267543312670123125603124310088036120868311489382486607239032768261996792974951856587837300791615051092604961404690981093978459737313266595229164484571757883000113377504394237071310551622447191572328653181351518460580724325835746083714259271573788575631197228445202034478134137785884854527470317374922348595299553003927059441354566479000819764143533591280841835795737164362085329452824308410836245888650146835687313408343047196424048289380503760948557437360244605363206558307012478153678694269429882621175993372963793548907468173406089915823148619608277512868113091462596171853463172036331420012010021826217891080613926348089410977928678717160247902341947730653725024877603838620624340794176829079486491493981714307976498037966615233004036079690982808275170236532008755668746965451880057750207717364384002451022199335650815612933170296517771509337195437389491467930864434180533978905229804166955668982161287065348436891031440973225878904399203400302565058462945864901669967752658532137489146511612353396646966918349860105165878251214736915627887041535725000204829703591451012702061320758607545739828948611224336980502301632697761258292255993595162709141496750861908555436902891656688299110768390613661208294149960404300876967380908182288178346513779280327520309637533849306455465146883167665549874495375400353446840183318892281335436931570718639337002623453762704175578601274467844506344266122117768394597886448807250400651136093780729515960926257686568713468594405530254599679067610304509804965436972348195536933681314079520678577758284051010270460401911668865304201327380322345231606370490943771946522819795497853000419909256123957082963593000884548829744969198898804700361023146625139823931154695776050349364737649236382442206112057872087359290777135196318180049942234108887772965885378663664772640449577610201202543262875328203977070730410965706731371300880294122148386419986145749568533108155698063337945116803962372821057335795309699214021086630452443886808317328294441076785056829471607048331400795658843072938694165964281488576558972643301547766127031902948074379162411633023569554358582217592710407787415192393559298619668334200597203059700854279437253785930591657669499285778438649318571308716187397816012915622514362195662943252062949797356589740627006003160775687166189479966934176653216878348249163764266774458117098470058008071842434287496823784088580251745908024090436443335933993412155265086891712598559469498778360789750085646996289207030914155261541819345731071884048369978605126938552253880394466817049074625476361374108038197220750987454721274240092037517841419732097758776940639132534350655273582352087194252043272161368364532480419821261043927801385231390510755230349729340363907089412703456974797627443654593255426695269392728868984433742886278440279194902439774133859179915559952491218665336442559571043001786284926502315907540431561711112454730790396533139047973782337792571860252429310909491526520091786536646474509599925500422521491367817083751066688402869401916348266300415065127154476475398951059986601861349022330622338658672879899144371138724268980551044178204736896115853202069567531121421274407593544877085023496262855225081123918248778715783532337972042896113117681644084344512365203260341866421146514787163694037813789337558033447938989061204261587117424032445591684704808042567827960999981016198544216187922402868777314116251858984950366646145684153743900197466128520922369966784525689074575686842538785417622938655418491479223548868955374660805795536591182296168620347736862660364421864319010377550881891324232946621924450114096204806873846934092098830561881942375153444235731490922776307685815044612484176816246728121774291960641681731662621403228372082040842513114513992423770261993570032666821107949162726491098831601276012469509100543350268626649540286086371955300707870461012389718843966642665201896317619591582017934476657294636990481364018009669491368888585356949099505530922876930343035524834843561719129486264954276281206702216626789593494971503173111824460197703545643147364014146149196803723213517778648820669834227301228853036954017003238600481787311765501908875248865378741448695661238887089363053864674078961956226197483710249203371567313837176021454833315888032754798655871416770307610967529546836522505905188860395437751941758091857812900502102180877344490071884134291304152904427291364972255818914557691720370709891489814701841621762163596370305413321978557465815587169294882709900202634905359038601208999280746627175368090025063378396119601762278733216773435285130821741035711981334280876749661952464753875799475375676001692402747334263049348773850407072053732795690026785682590729529389900541734165717816141503724526033108662569623036565311645313780932180112630409001137257669000092811488482173462184663022864795825480210028348116485786689931346303142600731749099652166050335879822756036406758164689606185835731995092137119833564378515872300164410754253254413370561280663345550327286577859001892038954296342803631020918882709290790793824318822148273117773654850919837655838829015247463030011563069567726642259434060592619041210300459153050531255378110523653283857522836822334875350379870306698205041693684576594301742262836694056301313756881722406150541821037435866040022732630221637233003728680021039152719844775828127307518909617512505437188980131477496677770711570043273591699397656415786368031894696612640149729084458595432250356195216661185505833982467141815499395515868864120161350126156448852077214574245230720579773392881396179523240868642223154954238705501716206341685542164305311883320854458538771008960349384143547959966351477588026835685132583967627895412239431528932958524839360538930649241608410089297054620669235227982020710878107153419942340001780125603720028702860365219352176775728546842355669224751031951634176960794965447542829766542806424744457383119837914607034433140920006562449061195220654139601149510919767086268603439648591060435407871312971279672546857385129617306092911264324625436512901658670640552472363151012829846462026011094664758700951684811099862214610816990480852312581290736206442637116445101633816977497275662747450455480380157168406451178099692228838899618623526285602015709750070566796369428348971184918422348370188020313965164742133220609361614251433087234062109385354731552285806570522767219379177688489803828646664397655222242939636830358807570889890549616702635712675048695424932146190594158321514481972941683814062357035390686309807341908001650875551599565797837153061384100499051726759013701437680435378404718272303209805360062053815187601617457430117868319934249654401235368800385051729565140485962042333392772142557826702663911616415392448881235238382819959972140869081845680920129101478284727976623959550012228531984697807134543652565753827607929793220916071088246870261135036604413872290180470315284917839064777075600881171782187016390314507948122510501047849006661296020559996539841152261764654547051940219607359951907111274920402454913298045109219440988994467132387316601813638720234092540919463117951055296138501660097970471870806025966767577751834521017509773244383889132594500525038454807154459195136446677925964041936344572302003313371587710745388444179045035807259319170735283252087758347013284927888249837016150288468736033842832735019932049069806503129071200127679741447034066993725961526013969738289740955613755752669072582113707709249554794754988754688239552309390422740412226708043120542021437196586830967203470830539619716020366137691657679801858213624726961003597326906285269737455424135292965063705688590697599382796358536023803675412940874238991550541768189390708320263143914281318585826582629229836793855318488797681227239712268253575829527932492192480119985657531973742107930874687368089001096347307131440609030379363030886878588993723306466627129522153062129835935931744615235398169569772438074997365846788956491926310671542922190574564969693603138906851878624763487383011992788227254516586376635903037666978003039219582277932048828484418223643941195767679215814042625725216302129410947386811233816855837627335833764429901673432521135157440000663807589682837945053186512255796010614922462406191658930809229271348475707648322694880405607331606256344372848478530880705280693814936359293959570582277488345929612403660625234832362395612170784234209518981434604746582148649954307595490995045409338506246844207160025269986128297182276020783870680444776850131536051953023162501189086608263039217371589648692051042792490393848507807619422617925492956792935313794201047633952740562575972515874265098878063855951575275779936682329607368653878703786379837871879880793077703211756855667287757037008265792024786110814492097502663271399173975004035217385018101719742414365641655311870406198700706835610500245175745547459166295050580639818007146456558937329079512202012870147265898502248983925531278621056888616125176396682642201236763294493362832329988587418336301515443765094518899389951743833116557695183108044390893734798714246770503182000267038903290728556062502587273922884001065214133038388251501130623872136746729127462734634996227451874335030114614818579851933544442983874842041155960871061416330995588598248367729662451983426286637034421537491579691076708550817683815236990782212525212529906819667198939716119473967306272189554733630495833940169032232730785755103670062963341576342286636706259118946376644133413590241877398261091020876174943951940439958203906539833606251456414108379021024012513010486960886163671758803788633168871385375464704107994255498016973672715377089471029982309939196962802851985948451031737519061477617808443429430182133990494712640948534377061708514673593000811130739929579919717768476468042713727593064367848622124751352215394967211502231462334538153300728681893560024561324142432696349260138357431607915231958160200283292321113842484159334166412043778464977187866338112616732697156714290693267193217163149795142720918906034725125150791014132943367710883904443778400456642575475640662921564092041883548870535571960147898000807812866069009326300100178812546318320625719589256189537325053464758798012227454255966563297233915740481376808350829682397129194126032586649759858469387911003235937812937427877904241870074190882428291521580882995668841648869174482540368998716915383814383012179388069475784612103433921805827048920440462857338727631466649529720625014342850511918686147818301456483580375983586339793055839862080864894857327228468282688425794960876762730860494524711314571565643472960473535303834952883821721620461458484873113030824729355322643981918160865296542474364679970679619045990048213833751438868020826216480929473146872014789278572506946395771221305359626320296077407148283147805098233092068717495052720064237541569844664688306597302919912096454197110635485852765640550977734927259232046839195829775685086182066802993450649533827682246304923385712150912443977655202607531127789020618180473960472355236118239557701070308879055144148978203439160284790101611167344032871421679084107136419729094920399282093066199414642870737862010357756978358580126330559272124990541368672162595452783061994126734922790084548026328517237954893073577363309282788442145590585987724231571564174539010878187500496693762936486692534617548957742518337829070212042991032452482485798792232753481477603680404599188610671698233269147771117155727652498526418133184497040853161754767640508340630025116550261777713280876537130401354344437598488982812372284143200841679319096735667350633258959450676755738929347110337090714676477935982939483260582114120001245756768409561516347238413867216842087521950253028873209015646364260175983928473535452319743984251639331470625536284537195774606080489568433054198409940159624174592501365742291475482458209956434593610659552218722203375542241141752985693112120598964190969562325043716555890863329261084297490403636089239802718323006858430490386215099039043146334259964833418505715582030575328806472584988769393348282362823811994275017103400180192913195162474895128133032536841753386342859244016001000947952929446713523107802229921899868188457338215118388057771730871656470813302137284040311559008349576065986692824079159482463780173072984726693685794021552031401354154580641968396366332818081476004027494242077053608479442015611720305773807493972027928826468542044703669385021306825799067944357666175407332792736799179242528355593434559083045788686585566517996538767000989881980001929703013140308021478314915683468138540690617149701228555935346581288318540268777343237969769074068820191767293040089281775382851320925888001232281958543424561304598193224523701628623969988741854838281007015506235248943699509194638455992084459204151472879231236918258868902993635371573094634112384023240189227700773336320737660698881188402085769041967018285797740995874671722278538213534524268554227654303725994107540099614966791677890794022533043138901959488751561572093760930791107405854316081013196750958867106558030466907023446609102139955422869674918114843372478072252467990623782862081253844285916954347083673924688823426405091680423222496060440062700678662254480944467211443746261999914855914166009581016591994455408116788132292381653523566975882986589219023043005399436059057331293066246927848282088253466373259103678839350021728586175669837986144266044611793091991317766289598360530870805144099942234223334272523540933170740762574999546557710241624352406666895545317064187219203669228042906595646219005096219213072451484123836567434798904444005582908688378553433571439415189597357340989399710156818124099797806998309558832088588443081071848151835705210499646913947548157945877668037288502454497633178672990957056416982622501814224744578519504022408263352797802008654797544454710519770601444972729576099366952138330111004307107603684870146663812370933640854592222186165289317355310859537278057181740851669710280270053616618764017288648328498271270183169390541266743155395798029682551588897329684411570130358058685690595999721260858469207972418392257722108691348157602754821287110251456742446551215367192243276382354443705173341966484905118232322201972585268278941750480593701172263410807279316098389224552638190697024940177424022619311540606307752743478512807700085181939143248852632683592044303597972192355072884423268967692983799918163200330962398346471470386311257961904540289768662093909681383866403915327784956454487841635338560768099687472046540634237179176085692330378109836409765527348315710274499142149478274078289564866479619252577114012667377210518211143719115389864801142122491657756206400034259809639376238387830425740099796035128183613631950007004421542993843035605877369125541060447559805008185572844799258056563882598167277095420015620425790021206280512810923341730544873836194327549238188899024338959352593212492737768295087194565091091825317601561741146176124615137038452624788891472064157304312882874077302075287204963588768281849635630291613447662221238105781430127812789433657362483108035911088715187385244067210539517704613664447369651899439206188472339762251694620227373569478647927847604301651732060525959434774142969374340960613870202229178911741667299741892469093940450920820667770586735159249740538669347433273227469045260835730773936189649680647746209156033051022994351656894089289522706570148857030119766758939113434169782736818842801022219988659366438829640611231281770141134298887930028452930373162691508719785339882945746691390834413659164560633587155858412045180238318516761444686776499000437084825872118539801577310910434174570647422675068666088198120397119710993614866714546997518738644508594772077377006480577494661875275241964340127183709179152491934708788575394932701247391100170283201785349956497475129976509206988789624231184687234483887767040592789451224826668004206201668872045869033029415681279174046070203877703037338583425378262412658296344042965191175983079975505151707549990442656736998006876624110863002954538645875042651869539150041129011927412063983667908483072382570779379644998885293315766795536475618628716992484341167108883962620074662684307219794870798281766756746958910260202231693624879239967380894699568736151994885823667256132195639147517972695506694437034419876445813679545402386901251925615275395937955207056970926272750440249294852079235936507071354336022293476272807062664493204035703385348712807327901233074621885577421126745838548861526306520395930969238753149388184940439445213499474822250470175134208218107277262615248162608375180132725839686166710474567974680774562828608966949972471395039907393479804904419728588923459030254843913052514010506540330084027898973581067150730857106769833783963882874856555151680455065681500824879203318844711773917483733277738606347263887361075812558100736368546899079431447066402248269748308476046311815117062084405659169471795629754976253954380538338978225650909884204001105984441466442266185354165947007689865405509587577507503158828112009202278683141172573203878720666328206821643849265496197150592606472658055410284916272501453428876817299833316028015321222456792348805906124281088703681859161705984228116511708725339371576046393505250139897057275730181720309125745739797646388419526795299077834966848277378769193542813932646579944658538870397647495672882043838470411298108160884216176424058741020682540428956396198333996909020932704819811808849538323328152266860777697141480757458350752422741147804737338994510202557828582054904981820912510873691971449791763687609192532641728908500356857469921060205202127926330997439960335773141457890231595226514427707261420861627984075430003164208797071766929691571690682223769571994325983237450960949982354370593747397659092785280308476495748127425416166162758140183196637512951390535822746077493719814018237889641760144580417650482798161006028801864510753979716854718391483154879244330522702746679203352292203545666000807647483634412381078208318777758270041475367701282941237746307756425560077009817051220324305324844759441782822065154596632418837424627311184099639545246962604255897906684085826543566511230973638217638261274427043961821749081099023082484076428364450685022437313417655954696753173826227788359598571354355195420864966155801079488708314575258022215383156050706423438622237244175222899589861545090942999543157663514050187841550623428756931790651461035930689833201841161994727800266905938030427518124941114051212366774093060912879737092814936119541636664032898467515103140042825556045483537251129608024218451437846232454634351209677325497327104775169367532002179912095247745953812933319278062895053184083060458738699265480618438400413129011113342311666056690868021074187193760384979500577057770458550260854738101908371443172245702117705916597344130167929483858575668824263364840695501770383349727568862968445041873566187711992699888553141689444404731837047599592623294478373607223311521529624424239082725015973832734275383762593322735230852621005502419720109279590640840991125242456722107278040092986270106380754776931864790531628460806659918619510008439432599061025356069153757558457891884889632324246304967562969489478561248853597660598295401824849824036816022552630638003342395354202498661713746737047912378169918723131944101114718983564282615619125968258396598603053033780921985717627015072329725123749275019750286879088970831065380470873569048113734852674915696134611600701449214934966584720702404799720687365204942316969069841895949792360770340070653278439046025083584324365614333129440926597150631736625747512673081302904386724699522806576436017603214961267902289976142190683539336167901561722936497958711311323644732786131997430851281358837505890340375664819293026541183922733191110221481884669409484199131267168151665311219405733563091025604257113420941449442310400721724021545047878165579862381517211175462375662218165670531408101182081119252745549494840890713233992069315376893998100212647305786629589261587479682234215869471406888717740238502307648895060779701558442404470174569133304942321229106494616052271984780375726197901586597845151475250474648930995947446226289242564450694027101774963377989502453945758391877020648468862940832005476853506137947979787912865313699654680027114907666783858562266135944974539101959509393566813964426204496897070644720036398886351262453791918674422974889924086155669543236587208769081733462624729905637172195322669752706904791299096432520159140402665705695140085207178908841401441798749175225726455443375425102299588764830611649181559481011367813387183682179086087383292576996562992199456228149142063261086008114692725322309226945002088306897243202764647782317140353298124217516445040166372248496080290718068029867206395081201069759058766275576703622225725513910594745662476904466286558933012954804332501728770024942620563329023883622963499736458990653904208219511542676472058927076832605633179697935517468290000872784952991694846248320223125366914523416165143754269245733663533575906032616205379081629416016363430590123683536880119030722882302357138423011571945805204820612942783702495528419195146364896759861364771462388161960037593432240696073651375931697046823825728754031777506450246995675396461363007144087537381012003719687873666993913718831479779132384487210599834471979408473539577263853225248442282810000487583043055884046393918290695710658189719687512396399999668601713601078152014659162486084412408715539176407930878434713526868637972333226552742968421064379347614618852033278241284154767619721492168586004615620168225854067480886180210144142864394263731375746407633310655218540848338663250166642615164060734464319842857949623464131851395835761935887379390786755361798116508079646944725627820659630420834694243989054880525755376573365302108394573576707947734821676747430650974096124154813257575397716861257021531028598165755105198572868169096377965419167277768097032864791577497151843408082079448745110129264386406963928460531546294381176339658985936227278009151387472390065025584350185608898521324079812586619631217126084943211461754254755565856504973395777202483534463244667807467091524216532220341098887520506366754502066065224925614419571582392968806082626540684571225548875953470055911913976295271652283501852180406086757330142322983134747975174517545767173884612818163506109248855688045621075690689604632497094336267824050166418012785463542511540044714150184816833798771567599616532392700263648226759013150068618201537266788240784028300831748253002200154515650221677848564176581878737962694155934661972641892558911638456755028213338680261227632528523980592666534763675269890013881483968284399955768199878576175262613223212272986077704516044218811192531154848795866659623104056819016464651288897220400049897516627573744690909671779057610441756225956800393217180360603412784361657815515776285668391598096490878432968055772600972239146885708617608611241343102987625951615118702039727630555882593894091533959514346066053698939462575717633278706056793422252449217596019095069808503263296340591595765523273587770072249445595133439599320156960231121139297544111767401126827926378392453426320648472029778782016988242583911949934254702886217200326946106192402127306874493062959081121823707110559291120266068772205878782007577050115893913115581866790401103106585958893935530046744763452056791572899356379423910772511041483710119213635007213015593100122932035368753748635475270502368942452281064382260889165386380485407946799801311332044161850534935193439442914736415313828132578497145374707477148855397758306693001832729627494546957623063234903473221304519191084672024574121202487391909319550432135026361016240884502843141726960388419729937748728502465900072011113977003746716625652815751454971236983225237170241030880092553265487093917312286336600643721818133755182898242002472255337607300801900942080517909234016994620870417225307748743895248777250043334161948669122916738788737404622968670685803857004410548794176886788761953484797985552438064376081028799069549832810298808119411261846334957476054528065754063439296207685869336619645020129452404594519364543751041320330976234884356809577231025505284325006265757168333150183924711669367860116389933635561141083580354460623448241076459198732036349009835502228032917264184973029735961337816104923742839640286987032700690568549284439550148369612314289024273727412502498064521442759217949947481831131785820751190367685695218245924256005591543326501583566506549022559614814477584801398228204569345744212873822704117305440754195769263128660125102049209525075735501955032967389896908581774777437521988953418801473217325518395407584896927398767484095387349815972286036344779992677812538467180290185351611313978725941060862182759985630545719766466859082936074239306925481832296435690487661155082721846668292313235024134362290064203451826656992510396166894287231821320639055548635390272747598944523257486225756738956100584290597971748150176817032794624780727050020460693324693111000420775971452080066690701136785838551152891112802673562037001347082901487374650882753189163509044046050623608681891876771461753848362480213360142928528752198956914862649738134988912032337645277054890870660766796756783222934620666322227880723122649157957489620241127038220592874762493090196935743856777535808441134395742130448989818883193446329795979963178270325324971444392550018450924962237037660667318184670771237572518428528133496518067881833671860791493021550217826598673609377221001289419442606806292385551309587828157382335553417787786642777515965389697876916873590048623680353016393382165999772181633624001970188508192997528073327231710896158122374601578821980245362707176629940687384115397127676981947907658702020482988085235269567242547277223003364645420831218351695365281887470954091441474254277751939460555911871411996269030433071584076392090074472616790046573150650003516273605108043551314216256121457466991770479549962463041016984199133303510529261000272124582865612385492672508258169901082396322591958168296141239456309264059207581916695533586153449705832015740870262987622949682471886713307627266796166362709098332748541435704683886120133748508075438932970757052537962724778075839583311204465909638256613481116642076431278159751852496044285152315868573106662194103579970245559075787579129698542919307232319891787629934762886312341143203584626515457733812722059042177720875848199315899898956604286839173774789557307634482292406186045452125118189018823510280080494531538332021435988764170996995599686636898433122578738820630183628461974428204695461928793343510146901779570766522613781083428062305059516000828762239292179124217535064475173731058229620527321403463878755745261657144654180074542515012562646939913924563067956891246216798763303427375429801715470321691716836082931693747681984237471561052960945859478217224291893929405172921209747644466610187510838042002860273832356171511459947203399127323147414323279473103525468236222699705923365743525558741379545729771803269815179724737441802150484608266479617225365959529868646685249194206411087338377358167776856006999411389852592065023675691499902720124792471852052142169317727601782240225872847596651745551199318019490402270715410767086691179833696738013807514925482057363639776021352911673215772840592083012627618634139896686248611471525562118070522430973289107612207407182847635057577741408987688689053333598387380947963170916194256879993019557888794265674750559246290966826282218490902673457281174205141461719954496167943272606588153382082043951832508037185126898878378411106191585956603140169763207479441722665728794320544626899364311478874640821032925032903541403328028457951915928785441370925620095479046660332874506747841925368803142025262076498462837036217926245625050076891521303444552474531228080754449306328627624973806284305205745674951103025891156663416975524300711471295670300404401038526037486433255256228622485145761907613089075817109267272030853479315243082663422593172118633114249819917314343159734396226077371823013357623042359341508287958133131629579617548968432282289733530164029463345280479474835008201923046512065139314034466962450922263676719227957544468606838748665613766233537268787366165382201522083670596196209183928360019809145860129582902371206671872205470539300241483890458136948224230793662125987421231836343377710235483488032236072737933777357977192805703317999065721595268442729326512888142857509996431033349647551902323272968825314002580179501630691744887613356959474239536462525839683758623726113088666508036082837867142970192534450731093490101421879393450655187263860675826820538968919924116736909068124797328831290294704636424194114092445015974305224854450329107794011035691481141572214828068894393711565522094271254358114339403340517241934943772469401607798292992084885343164352076387085362709880381043482484435845463863987800747974386325186470218235727717691773888808902628676743278003313044260386565303978483007586221709239242407933953617497462341165031748593923667666542517208097609068284923283882376541318216432637553303776249942906478838141020172765345025484512666600518383755644143482750274503966319660229302422382186387688682964630103550543612682622638311203383595726048680082087876170316196118172990407151288971342696866430426993832320304640149620605292210721405477044643837646604096972781438858727697506157480230077109029156395874216688421650753543415100564548198325231620546323718464094363217199681361533994190200841082004864246292403056232444409788114242959014840298553690083642488746347878863011248496451625970216365962727527335685128997099301234534394814575133601608889122170648387177004138333770257189844884966619151442712260118822368647955783047076376058686093132777345783186309284772636291451036256834116993250946193864286779264073959355404236974743966356750343694190997988024010744551966387719719776752314322944999427967784286649027061842665563829767772755187483214871467634990391640165031856453816805862672366969692746627264788881870195244645048856797551080970330707711459279285651836452254911322139578698444489845404982617096433035844145568814713432925190423870500683144268544404549319663619937390910376738325039207119836505687819819992022178589441596056803186891042786855859496847027623304187751060621418361932178475419678236170613506773383630462924909897622200104772540822488274860320974669875336834380493836739299113427774030911681776884745308850478666525125229251640361663949511811036659232307539584290753009840091706142069014450183494947522176862033227559306792790298350696396148724653348223425650495368351224160316658303122354069188271426413799275890137962073374526867266065429283609229843982133635992227934064636811429002496615221994181084593444251326506786322884374493405378583086082498196962530488042674312889652534182120006203176960689939533447047621461335480826889609524803537418838775809893313238921052574967550191906983206601486330534711870235468086475621323684936289999820065085637044443109205057577086639842767982657029451590862181172772246451836586862357745566118867407153105619244184126164140179210032677447971816986536241302425537670685693965647038402287809160733481679230714413556491959911590880093104188903480607578288326992023149035767759149920713171594597419399299104819436982971354999287082272230740135950338440303098000686064651847403314128561151765557449238636935162503576947857586626101775037468982152499854762736453527317752873012403066052773623640468909687709806974902295632304951136776607651772730506161372684308326679777577242581592518642771990714776092227927540653432706259187456684656879618237305654939056240052033470681047196096009190648538800825856640378701530293749458143680903567676148243352533626145539417143217787407045875733963782390832764749097468196189025437866130703352295981985184522376004665746370425890418695947066467618036399123447564169779483636095439513951788692076917228262170316580211654197324543777982932949762392567360927158168882130520392607336773708862421685836095842938415888828023650619442011959744938540547759307835960741973270367188119403210160784487300357445274259710695567752766416189046384049420467751199376777567660024578567185842905434148074957577485552230831663031870444133273919313116044318576282969712132451287215697108382708834897573157852265815110976425480892445144804269780314920745644017178393611562540145997922526325171462268745909179347965696014615002743802199879579281301134045236027997734361780329806637812306040269572893714882333740666360079982720920998000990609336760778034745932222660741001829361503277135639113709795265947200724230815933897825969896255935681850745311680435931702382847178165507028420230216660609370323279410042021518533041097130951269187522971499334435703491105487148774542134617615780779077754544339298689488223541630684323568184948932732243258724264776073109871819499098102570789385446375213368703517080097690665044711903562322589352375820827487578508946885245632844296551756731416860543499379241602426449914793303810989806787078194536246166516906793709780704750678874046289764857664715233846207872555990740778644717126159916222573292635658606926597102733290953155502483927573393339658010829760060538861496038794607371955515458952837115718675684660627020692395352041123380233267922002967083465559741465070164933922244968197300525084950453115295564508834344026857945034427131761498427966083249867780922234981213775409074916307472074145434795833015731601088491779330698514221991972151438465898179779143410447367626405069470002673264856825119837966497611247961821892039290219159306049346647631625753025669176013078724210510648550743836452454054934777470588763582864931761138258049262150450050962470183215103382166797929578036555826306308546129068385461809615672568979531849489779869499748353256042480760005015547041765701566893689466945116573524156500234807820974364530607133664519867410149876925282622365549769031938136653213993946350689062379766858495343288209173829758205594124321291117344209776757326141168303898809133309958464074775355800798114968028520489794437542171538720288098498688004390091620035052081971586972455881734992981402301150233979862105234064582832950500511760359522472972247235404549559496414535314157227406773866136185327837771083745115625742073806656691122981905154917225580296393954252076561914313784594451362674770088440254042643512607097752169877778095001918976501722700296836643548871177109314031131936448702626874042930532424158864272753563338345647172027358355301340681619806308968416935775862503550876512231089785936610162501355825755556257651876928008324703645916086228140255601519620292571882364633789534467924176565359704503604960669769827592511604178665042600596533624627844051233154744108885264373593051137159108985270114270367982200643326330347964560221137267151450864268026257951071693346578497791409254869575173328591553947947267549769833764270081512955280295699388499392117668990554470876221265395148275732495383828768219674237182929633145435433980550573214955027644912184369860150069279037970647856561768569801702388446370609795236575255177951026489431390682634956361610873833640077551682395358897960820079128356500400272956367126046686642371313785142549577879607572006577394471875271988480115638069799035695418762689100809250172242172579957113924853655748412227025258492860970023007863100906267776194990413502899342131684517355671902719817016706941833134143006555850096570251238737256222601290303635616231826672871685191203250160537995845293301571947432652518958690897945145214655101296993337205868410645293701207541541668625450134546484993193801424815561918994071079497747939898603271961532557010972218419469006313017178257910051075142132105764537164867706937550811907102582724052185925865372262454090349260177737874069369741469950361907706862362151857471774438797849221390240997296629566698359048467635672749051340474600319895922858369101640242770991564211054154695233796662356463333826113823841845179449410936022622086018055771539211370694637641950088322127744375302498498207773989702101899040744758047557617792139790135625527999608151651548674304066016263217366622044984312410220117492651312454607123322780951642145245993342278889356913367508115897178583749326872621011350611226291062071022177260387477012721353819644830807393982502492353187011914228525659634209882621484033623730831828752819118007988302660655599886131603928841187987615962810658409499831747438439250296643322931898101094499581239725784835982752135388822304411868167082442425226092641397001169208903521076383967018815707879832807853756958698224948970733985939872464200945826025163288660297104585253120656149263544964312153171646441130654644663274235652909029622879920412266321996714827404224234990531406833993964627372144473257528997502679211023612618620567946053809180039223655489236406744387732444931381052793257913900361508342352467938815406784968854951489183037051407840081763049932068317477000477465724429378628147198985044597994215020117878417904820992637809502799070960243762517820011296926096736815642128095134264345738172859003525456246052158131695425765481278466488732414622770794697839638380061952779210024348108789461179114333360617531092196486113701856266259169568042049696873420694220813632442531384389690570272189875139978931418616272652016712009371052769564034107180511337007803609457897559777014218264169664807798818282071118325932337032207085897146398471208514336436644439020595938192686569212550067475422656652226883212517248748312133069808019072772797056891374975544929548667776457812883957487254243385192705939484179627761079590621146057915795426915025918074030405795669038145620115990604771888644566420334209450445258086688104860467305927079168263436553916323237785748594860911701495034109805498757675306545163243138522566838410123177336278266230598598575281228101045312346038670192931911890684938534607921359388513305886105136460587993099139734778668272226731135502145861888651255236454299389844613730375217556781264530540761792265172813284144058212463523519204308998176323927389034868021696604646737417410437369945658664338289458501018059197920651449841617371616172719559949756814456941496909800003634539431475139983094121133541810406759231366614416417104861930685229774245772884616180580890971789512452681320948160668394782816188784972715764604396694344671705047175604771216969308127204687451704438878429650074140563722374026963240245411036788145565999376610227291029074973442757935088199085624264302837700200471619534023733838592041286911412797602732817602363127224006121530613586119876419534938849913342927170122061956935949106590845286123155314068349102352964715746725583385729732734476089205976511794058196444049129470885473399283889031900717584492207510907899148238934145260991931488668487978448056270321166164897983886641885366253069098826961517020693950719959751815570541118809728078761782075218158611256435855811739390366542732971688957107988147605081613371354428044480818155844519821797812481792621006786277142994637945424496414646938757156068865482556513545397401491451202131442121616729878139687739263598762264382764392104719636441843457030090139916107780747497394059867275991385452740049657307563898139953718504918098184505611060208338054154160806387575052065103697591132316973080709687238037099061231401874889297209989371057656521833332755475074600851325206847228065331608913323029949419934469020544047377324575242296565509641741813554939020827108471801389006351905133119386003140217639514532920007461583371248298387893703245611898189265986555612449641949644893222646233096575567369436447165015933520786639499340559823528067512833025619480530649079201401024391109757205970097964212956525160226487668404096259037207569665735390243684288330076356073481988003694851610450587769421053431277209934504655351129796311598083776595335925658681023584339942458017093322520726800939151726346900133023534171357854541369536878788435369158095484576519842423496499733881893854172759249722660905538580760804228185944026131809217851812192521836304132981823175716717746332461004465373897629703785308023200206866218664958078628540606578518154345226230937496259971878990484849844136849439034176622894222559593416088574787638871959723631174201175526562245689578175391614298635725454414112634704737058138919173275375974306123107837586396833610281665992357679091671719513864562912771649119009484680233605627324550325428357851636197397145371075119680722924395048734926031828024094422417242416314079229110976934989417491794808340274892230023193928260951973801490637967266096270130370239142976942309924962509567806248192391003353649101390733326335630345501454954963969784143300645777613609655215879002649518743561443918444574629347825101800429335923155677633474994224633177955069576867919106706571794039790478019343104716487440150229805583725779502975314327972446656837207802117808590362541327109439982654739235533332326148213964719520947704660742894289127754310269106819595204656396877885760161080021734442617081316714674471574022143582115906714440383575788361318491206480783010384586822907858623506397613520045832554595316308801190536310250384390982891750410964055687080605692900463819282573851116936467936236428543284704069008413811542692276892179464310256472177412025175349215021625992531217162477623659349632504258870927939643852895723060269216026689173843987527900322702353020806127551517567575077192317435764347687165971015403235968166660236257696288487593002238442013962866310235563699395514433868400957574924016993796590810634529654420405549759947287444283000500691749827750328550757605955477527281292770837060389810009047450204451829343436898447550871023329151066726127693881654761868804865519175238099517282681617550535388223115085175033830112291442933099114665175285844992843595401179235498727979632494968972031055607040345024279577564994948080698960025386864239123154816607202350505027370690585246118571226309537654810462119276833052801106379258171580531846462804205449051788569736849385257218058651254852285867092907774141249662777892875766903756242988858784393885502341639522118737392059118686477536395756650940203455246232075509378144079951720726826869725567961924919823043248390228901780016232620993274749075547684233492487129646265438452551149533009700836452754142956569334740673880530259267888528454200515661143084769118729667836961184736371815893825385781273074478106949162929780352317203670986690476819716733725025895867493252769165230591289597065314862281512476525883133256595255563424756890264787258938569578410793365575715893546973773986983783816736233359961985905528025254804994756629419178790100501701303989660827381657863500850249671354792842758578080338114836372859621199206853150996641454194761593362300476833824062259352718445477972726260510060629651208804749006518782728614204855118628632255977993157813628674479894163302522099866045892857447674967578350830594146882800973108543934639159836270064960815769112167969943211158481197321638770213018951569265729990682553169682352318632777369357651207783874525392311817946989720999860822999930280564926562156569372611437615007442031059940740489175129999804529845302643336733614436001133032052640577100695049573236605275738033908161536450644663864959848896521461821464815641536988583347325828676148288672173067063477646213472165931659617545508785142947691718593140940753574352740063706871732038910641907108449044952853979997583408478767258625299695888793177200389907589612671571628857448928813510391181354127307690148518862634711169850138771226401773035718836192623877891408638992827205320782685852336521965775877229752711781469284040739180617996283460738357006592761259649702902205483222672197232713354881170884254834353074569180264307570812148299385357257411376497848093667894545929339298415568821001388073944014459628423980288446962593197969046828872977810453244600146115322672157476318774658903052108223249729052304485670254852214742898201925585162265371233383151062036597661439496297463553229726301226314832697826749206258681949793478535150159598417558025544888095358189008727851006331328458775951572129440075406668379040580306022480791077267599897862983393817848183271780229449854432882559042831298753608226073413905624532513280318537041066225302087064679772229414044646645083154763575477869586253405216286624389977418896432123742512694557982354882006458349331591458183383863062160735519841982254809235440273722424231321975394226254455157087414649508617122684433332737471521637261209774450806831986515489606248880826796028830845147505902179512656600779159800579709881363812798217994495428355124104089561345068736682189946872278658302535453108451747434705369087650490795350163283953561801975259894216316274534033518334069301569195183518974697696117378184035735407046341664436784536762566367440350643909028446436396403495941926501557621311414048283776459006756647495302124496665981783427030703582799419317801465669986138446772238053019046863130232787373443067927868340406526221073024165426319492296641452076306544481314194307003881709421297809931907027642892169846418460781944633861758897137838323961633576642198019584783011399704937841952215862326228563948199161447211159793141546881698818541950973582152416207941243900351162435115990951167925228802766161898414272572453624113449461732689521226832178432353503479562964188673260337893021798389440067850981951425057992873919391187719567661119462868311951945440315684533454391666354685081673197746529689809804078926274904248897593360676083997844004128066735211478750973993569384172872520888356884659684889020366638062195026152313633195708721383372313407956363059263108717755337819835747259762389153277129850121535209757623857726174922817879990416166788545245524524872767339278896067127404142322275301968410440700928820433548879594765944166860833822999760847726241494422059044766200876639875554454999803688030677757002885611103760428162911810287667992510811512395612102513749639984179957437874339546380042129588433966247195666599428393070091729694750919223019783080018790146119808381045033715635039427201547678244901952578863905643579823066387366236515439761416801277134577132271487263463740506223508355058306314821394403059648818904808101142256458024073219636302429184325429442709124316476158799428599223725069381046786423089209169755543260125889634845701485700361085764910492841498353665010048446504878016715716731852385722870678760187732007264868741765106702427810405815252819370638877029349195417843644081125002073829259448298244070210009628986625348893206137743790324527488973747807194482257379666912037036357444805172084497726508217662036195855397151840354875171969088385224977534003080982041065095402498406353120180164830550244971388247411000330315384276542861843729608493010962380445162288012967773845992046985625983738153683299892263912802777623959095120078363355773891048143670478462915300743117499718275838279387197408571085953973287130902596431279508603351102174842566968047691681593198394762388867330018459884737619141158571290387214334906547674960772003842781499021157154552107716186979443778833652610723173961681152122540258196576011442469714193205212424525689679699414709261258742919781985614247775398240572570599971173636248961209490074357830541479009573026960335400389095603166938929661380199209111480089940095857194934656345890410760568208496022637983659135699347619577678333585364814384969349183989278140575334896196467417108313886066134531393002138275386527059883654826435175465175638506623073718661756406366514829660611718252522492770852186401555524612274885248186896502371121325074670250566681499612730392398114749778856611705359659875812322613221219105769577740819469114218987545416156746882526485145491905269008586282490354395974315836717903981550760656501523966915544300208033459242141933051245706821136688022965704603428313266432238879470365768286161100043901528108283668135882735682761020129887966534322875339166133084770774038669517667899185066336150377258211326164118847342236866284465668724994315169666338340758900584484056400163998217951582185948519954181055493336298755357859043145452183918428280406152559111899341294555378701894706697729034035999603778505500994122915356879594314271433676085230103541795161032646530296264618490598704626118568571007964292082696632715728712564390500625374455558361208854638274173010138338486322435795026824217041541369720341106017443924103565445874863760070417734216547138048179913184560883929779646291209700433457628616826996752902780567824503949999074478501427508590508486825561757547236518999524380658371909636234825654668595720543776203831437231801012235199491915104838844307478965654216939698799138926991022167211748541153727947197746361007443118070023856098090264824470839211237181542701251184562227277095163535771945819896440444442541289505066073863248946184333999105718886408953528175070325928800592257285084839482197630972794454444126930583438557505398099948166649528607361727730084125712812440090341777219902582844488074882216483108242691722500367124783548169456862412032138435832949240551793647863742999622684107908034504912792276298870225228810415970151873809305166248669442865112336657048400799295101690538786004197679409598207028151409958734561986728421729708332897328225680609369824433068498932955991944438618385041189865529524746477537205785779827783690727866529511220795149533310950981194785634505328646699981319136497462034953708743588772902399599148560545144549354370006056243261991241728837811574311837463340043050216195802528295414507877892072578485084123055850023657586973632423117833879540021207085352447141002958710479803234497330413211432960589216122599665134560757167497063603866989185804172364231678188720100995815643715550729166041550092836674339657853537882124360036863700630757339140884918066697960070720828009159913849360302726103238606547475848221841100499992312406650291627563485299064406679633075776842370965749125086107475603867573852482775639205880993411237887692840488421831723762609450449551575331949343810510165756864192442860851945592848013072223854501979825200841915378427861485592208253285457283475925407653580267449577638277711201325189981141988231230545270451877105278527294960014384181686866718880084845948467869896548366881732906462871261866635356733022794818798072398517449906330986379265435772618576465371138370459206390967601562852727273625058325618675734634503763473846125978028926073901073204568659416288141168226914427270997204777320867598719258253079356295546451868662708823766269787922352784187745740546785711349395310763196597050865063500279015880952208098087331105127828176845704881903320901837925584757809271581481843705835725226999813761212165768397366351599996207806116756869100461606789334694346034960837703768768977628070366975759976638444008400251978378746201806358547563460558817825282537220975172316457591552168001057340010927935912650347293404801689748957929515558109557550013792677974641333200897893917915019213969874632253098783612063980370722817326055919558739621584787121734157304400126421089446393340817859881587129946141045186697578679936654904457532010002761694017900636606204692172738066819461725854818654673909524715638694635869586917594785814139540571101262066868231309612252297055270273562882415113329130082729506685223961862293594148600748617543797560574708065044334464948122333144044385620897486736206757193495039909346720143664504580198171202749602958552560433179312000091072279746662888510638356201676781255992447831340913458015781434107659265582802695358726474173029541142865843594273275723405046828298651995006293882416668677625867271998522168260316594029621019545525952404615238132625837659064599742555003796387632176674504113258578837627520308599724766914482478817223458381234987676850823933525988202665273811022227500176632346896863882576369942861696939798272039981682390129773254955188884875653830826066660399638007432265038217464218227389742271421141685644464636659884926564602901904472396780945496978874890300019067614402805439476476526892344014368811259397558277076113270896498408288368249728279418221316054138534968147076194417288739473091146838565625580651628347926159809334039352722815036340241138331784886994636828308388717099584721810216427721064144859723405496835566984101918351471314177044415879415925031314945959608214443279903296935074576961879404435531979088820814497318593388600012893285549763371935024691756646243738443198314988463828130809683269753597476581451670946355453027909529131491502992281777509639886530788820513675977649733953387648829116314386007773010951596864395184068148979400809155806422332460501198453314048082728671725547929908041813791388230071079421998319750921180859244924487549312941740052117139621448107338583363800597402579120941009174442073860717341193173520916851982780521217406981241551598939080805346711469111152810556761747112863587028424782082493305579608681012907795366912227262426149565355252601506201624001482942119989079469806558449972248102149151810533247171684604092779689741110277414260101195315164238000115235490819548247734024670428264080858388938245385435324340882572309292074028589985194180029270231333738624637836675587204039879198562670223597250746764484690030296246368671996568141108616833771952945592324024008143248086923530371109167940551530648850805508767200487461414169747078868652950824626775444053241515888618872191082968278824412074103719981401064878829615111967251116186065087591272487802260894291092255612264171736759660302559966262555106676524457007731516658171901989931512309669985518842789184766024379635133595933438336184487429678064950437168635802353655445462630250095690102704201212324428171578016377721148145546130680638518292469657857990056026807403519263708429555463510670975003386296767717576111166962531618169111509650034143305209542131082209003891383179602471753706274330707172522100107979368755463801763137580867384756914779776412650280731893592550427020560299575866594077148307810551351103515397941400144131702895667902916296661107671458256779153520868399732483037084117464274695820328293963829129542825754916316884974354098844618756272492912776292965957439195281722676124974298543457120865071599879132543220369298239364832723033015793905524094965259148272559340760659347888475383443434088518031455711606452621829493952402456903439619257438102240340721588139698563598702778172009781001582837035965625753516333703830035570658847579975807935956318523572940448603619822998073272550883925242808728696050504564177960927302369334076812455249933396453080625691706117277892623400711494196620815265226239142964317957402726796014304930965843312894795831770452489799612364970473374065605850427671201971615894089005117794764177207603202524794246746812866322101405730641085673348167148786410937736114724818478998353696406274576440084237536408102020826293143508655572285801720617037211117632475598000384133234693610920821151406509166501433321650074837589208593255015910567462845630152732100420489526176461735526879844697536482775481111338247118660257407354065386058665879665949962191289968044453683408896263507081378319487061395887036665407595746865748285349357542227530821930428639926019532686826696074021566602330939902173240601320679259595110161928574020078863866803644868682267313436007501181601224108699544378035025437849276910441707226987639563845574101137401595467385734615001350568172299731958942541516432397851615100981607209145837297113313398483092220476592739964904450290835141405744305322348833068781891620058726290543580967835301224068925575243421833221718530770714848084313810677565457099009706921718151628470507665940499773260892995429340604034945986251137684362133593608762890161056249142519274477902844713353986441055717680877321431613760729184063160317993074199468192147156260543596903734242710614410573542380264792940741011624996041916814361483837780825005735338718252513097822351637545831079162620260238772190013708150348753485694084129116103846246801353004384188025025125985920820231671875163936340288047558558012760431778444810133897862730073009587464677365003479529014196602736377566020541892791987159151126182549264240343949981762475824643015796588426216682461885094341607083701324910018742700718125792751996766708318859479300354468622018875171194666270187843446808194420160735141262637369944700214350092829256744763102924701314574068758187137175944671089131562000490804641366748335015329320752260240895213167309413271683730554653570709912202354647892827813696070496992246322358175002658144283315142296106477527070236199511934040180555748452574358088562264513967976046508712182811157533459635253341490949560083799704248421691558503489916994511565616264401686188035819179224019114906757784330033891397204307538370291819447734212656807238535137007683459151613088985102824613327675713162142517302449877841730181553816856179749213725526570389770396652743470321985510676004306206280634134184615674068930730999441090410494269427622876861054081933352816609439913262611549144240484936763750056180297539387387094356612462975194058459884149975342654611063430555059576041147165456653289128876041370854252031349232765949089992229853790476179510241534909086959112250324108719744934182831582469553282806914273339502894534702862230463084184124157842241993805295978169274265330035101241451826133758120176046830090418263641129734259434227950442249916665517555792114616658980909244893457937837470073150890249202624689908469517270059784504244208237698653442065761641051956569691182155428658204089726038846037480897915654665678233494744460949116674793820091913700339104742267282231039816674068774147642375407627357768027861121352609814125675189222582961173964949457864088627764883373537958445210831271639815871094258589215536275624002458604435962410338798061543625857431428381077447402444598494809267815018508052402614346600213108338385440422921617550720858228872950571667784378701071312884625683029275005760225963063816456585449008331544726595489929969933188026522769196159746340078592047152129765806302194123337142302476900850605779958622376141092650706169591265895668413025468511810871395622565622035102027665372733054435086851572039616932593081566807038571666021860311395612096421377979413268616973650099499261198798041059596640337486027507554852494284141764928192988882604801394682755594430488223019326493217582748711230930043548405976018024007154948005320262829611353321109742607664850582920498119365910048719050003376419735368244759686655334864207009071165666075719424961489598856020774649418237474149285379388313358652062581614277916777350238135478131694627916708663123019234022186750634723562707372237122642035798189137080640831464528628871461611491781924454031385524431496102952037001198463805265775909064677080452589757809546008379859675647362922236898486460745371505613896795740110221759893996155303110653834635619548638442432856669979198611150928501724999889773255056031455831915127188961526293289723906549755131879947517384887170848122653444713948345773565064298774168792718037235316686102547087191804758857643411057038784155922920810365631507003372880846239260517768781439888429173091960016828805417646878405370819248707176257790751785100214292764555268782342910154267009258998674318309934314580102100461170932526579890183060055489683792695361592850560734544355878152351466163072020401946429613156607768757781381072769226988548740104871819696935809391463528199326763827084461631501578622595817281482882256118277407781578232593398157497125845250530870699053154190500715475490497979567600082927251407625211714658964706878235105910873633626873771484306401811376221514493699250992445407707688986280546934122462873308315931539263921525872824975344378391311138968886945000120211578657683526671104826338464848547613386661938831103511495271977315278267282243980897543188301698232867799437651952171784173316072053814445423919227362863680017444715620155689590236810675359247771070560355751171453051043796662153289498300342874864804017112764329068332943697105686800942466940544142568998167958157566718651155263559488592516560551601640949040059895581935701841450483019945685686600998824643195427275002143519160730279972001534106029731039794478112065185136289106247636620447830630029254339605012396222795975357741402530912895842049221998628465815152104992895979363460249910138555773675469399087566444375339635707189996676214669133038811045427755574523598726044911044441982417545811967497865578837961045675430555543698967734104597483977152607274683738841700688621042763201535168353321788908197337001957603905161402244388625283278647250560932255915736136099285058347574574967970597286164241004059759783331393455944615753310793387186198077684801161300402901757105741532084797635701643657330568679658364294262524795242905471650722076025851684896586954881483841396054797695585144424448226090781094822347467275740548730766502418881808003876086844013862073514578837759662579185472687991102010553653681025164742961754890300696073773273959630819519358348388662999801063673532719162937379301286067002680503083100858591568128309128662992204044998084854487766515314750719062513065291674918001428261658825804809750398046367270046661020462773765048113511312465072848599105910370955812912369707610099893926593740905290328219887370350374365163265596218304509012384794003168508595815723221401836245708517261488814886485517198459022031058222438452258942593945046052149207695775608241199495168472963767346143529222364006201804190146153720897763878658087802426306460868678790428144727704077172106106239911205678715963645056849007819867856115371038287366856666161465773920313928768393301650020090392273552905267224174321772745749978153271900734979182363579675472377469137279409626623956296891761075034937068110042795990844193661324832069872319042508928215777200926856669148478458526753051219194668228088259658720377078250848453329684414629496032953334113234673194850608807228191799892601806573883775301575498970022039588023098180589264137466920491382130322098333048486693988787479338711637510491699321599651231726753961320150285957266933628765792142434490575129249834189385272399815814651237394241914873442694157202666325786660177337174336088730616454962957326361873831070049941779727099021104464577275144307460142674006928847473044000835065210899439466265840170457620259644956440313826764371263989028976733979067489462857347204832485830864512818149296837316615681964342618134786229714351514880563502668494783609761839106021010951815113694126471100384961735465147675435114627584506745517531526064529975067837495510833229498942849264794581737478681369471770456903369700977331613542913549124469821500060939454960833626122876824800121472663971012235094134449448867284189693959309352978710397096660160275680027136647265214764902471913658925721141343813812628813396288771170827434003296200349230153802322168368448024500071842312550846557208329482023062576064235035188686234483584228531164996282684449485535977108920362905690417827850925113141623885249326320280191761204552469432220537747574735030576688493318581527313203562067437204552578567716917403638381000421150286198978846946251537301679532452815718292842508559323688219684137647382779116309258699167023914878669387367976077096939313368051058302621116583592862866877215152164992316067737689265749634603705851150076107624211513416702820207525397012471817617006417034958687471525991842020182671600321498889319320991305269943037578305810149365709147620592492793240449920085254671304595790761176857377948932219258949937492864179548857463637011892174282416145840618814350457211662315693363019320412061797989323261396243195204920842857919500314939859743509140586364996845117729168174931020796861880129618713698021543155757435238922432147014699029743252648221369062111087142420316536197046701580622107667348590858295603766016634593491788554816904610611174864938309624856895546005001156045121944955773918162918760116387416502489923315337041523683637646150336067457977733165037623435208248200596525411124500646368707290289365846405619210747337430674988336129308748542389442379651057336870219199693883861975168039789751597149494264326821365641225363459458092925947183671145412794174119653073459448371095515578121804412734576793507275183213684890400636797241837288187953409292030739398399065864235010601061144010966689199670799900334068421270894638067646973628691472708887615877851082577999397890177319298271571707090875949923617629567233506796530826660646873828811128487957707306489066411819434533425549165200131270699862799826104204190424288569186591867325047195398226106768217506347720194600878595202660044605190723941345993644305995963295818955647363192464881767885788271915107139031525715665641183910711218739617002786786668550666081928328941457030298845180981743266306401269763118182348826791701961455022752769187053917940976752320020208178912106470107151989913742190614440649618325527535321057055005056113506382808568487161799939046302857577528032227115413041848182268294350994022934740218797679801152449575904210231825397184483396666223512564143391330560602816957311443951191562858243939283282503570228937269093217195906815568979202175330928012895576906978673077474447844814051252191675319516246268203572183813705020489698831980847427117731078478374564048143099057774830515271788361482443654462297336602799295021669263916946237536865480620264054015442629090397577604730561882176604774977687770368489433513805747688134266582860755572637837578471875995843064268421460563279893287520381939221977859743055466176093218352218160860579575074830020687897693464586590418604635270285955924091774552601227851307515409318404495503890105958667588240519817276281707869708738591694770227554570967701264987408713738206688972213828222118542711519197231388135393363986626567129784780620983286393798044841213175037000116304832182362598987966126694888280028464946753504824414342097895719310199306296013548437073520030111789675558398792239786208655516444494566043028972837919709925219928288607914420702644937541120021715820294661929289435809227676604538994377429532404865318750374126736588988732804268408458990390238087709335524109431448493461792753220743982933855369995468742978924330769737884924681003119472610076675711590069309069366325924181120865693283010381729039350149239993023271270976399994001430960883813957003809817565738220395493958351123209877946918008589323435251345856548492237587708544239209509008974138245059946405025259608519966480150744458113998925070369569481248282203655143009545998384429538239237743196448144205783583877631888887121310095921293755609400216726622262395717366546414049899120060540051522474162912929579225339179653992170815792823404989728742741897399512522385796420419498051287746401132660744420975661342250903102122011400164624392270437447613071799655535028862697888809145792212705680359675753729746819286283431430861239767938861976094029706184880583676646081074328140696423383140324444704840635353932352008416792055968793725507222566367362447352952677959369788251615199149982357248484236080004648940743224818736404238550035828866048337026030007043295292387205467414608992736440591431448769644886730041939213606010811002753036375468136704459031070177209054877887703939332017078109718546264593458092855125222568432347435632151086215168302994655233367588042192154669138843258452504455149466019371802515442022999651254790215412953624033977416403408216975821387796843772403304740691766100196450266505567727600057120640362744483909304287940898275105162364879735117689748999893243527130819047597718640595610716308507532218084353805451494761998778511402947964268193499962318870165014179477186598779926163912711868627816317898570357412307032773886574543404012211094797866916717071892108265350014990297984435247970611154650579806986787946385667335688619229350096668302084782017917431904305766641640910146926861599184904377280070568443053526854440188001926455647852468451647072812331476760940941291879482012828890842052955589373978891972868142203140319296679218827939207488704894449158874923675705142874223697643320457008153755065682284890818694748223324708421122623621172147614772345860603379095653270721698899340577786968593678055009467851607806030642059122423169809733680175307327290350029820147339777736926281136321840168556225539066351495757295251399366841150494414675529249149216431820679434334895935119868951696254910460906245808454164833573207704671926089642191913732849145466166069928169164885726476113674084263835468046105597391363075514094280834824380597839353648098237564649919831427772777091715128061947847453262416265894032912368545162498770371685953203514896333385392858731425987468115800790663682588938795011955343380141051711982125294997732182297062903899809538895797321707112625036688639597094396272753909235566524009706263068967574377487899925102737378444966682649218352361315258589395070043466100252852796869784666410625854581088075607727204949424794485845902535375973034883988801230126041461737413456146035825651194592223041879589437347529666969116463058393790102894661803962815548486777436134904969481397325794394545356237446706662380251699100405516524457040903337003749390087511541360917392040988884056779615076470211460655451520625482835679545908795825689537254550697762507702644420578797329335835902407224981228057956917534118128134156602947310784351163796551710393605687916667858268086291194151153515699412110632028066044939323145264835906927545328996451618128108923134462095043150366345432870477294313963112547687379192462258907320188643126856342909018952470001824807423247353625617667774679415890692802375127515820090219177890012010521208899215525325594701654817220568521795120211109205570532515280231265089684498398859631797907777568497088861868351003090680768550208383771436458595558463558352579230112591918314823561417039800450098793697672238807478695430442976027572855074464769540863559401524345098073585296991709372239039461017886935605184757812574051830629277987603908560762502700849757654604709615482277233521695521054168243008175678916204275087547678615735485342468519323319435563920847875288534798290016160685899718090093844943435630833481299538292870577126453238195040160002714045679716964363646536304994023729220677061542946772734429279423666042573674989065282803450781090575855384841473790444516926756946565288722749434511057530688612885144206082417886528979446435470311870079565285971762996678085830534013588273272892163943418999861272355388289318997061696089925141640337812668610083349537331512043334091504827865295939420969142305464517279722363254870704772811444536940929027186944941190976158337998206752289234754884598620015933618044523379626955478907182651668191713077699562306702541046116042016958181925324793907329594461014538780626429220241949998706373595741909533325878516435707488099235256948597787384748247686095863987410137492176498879222565914515473915302946823560355381256100028632538600342511223094437875775439259261471106591318244842118496164027880459623738365267492026220448518945431884068224728110482414997434378334053443930335588072236977347263944381214266124260121800424758026652112080620636800040933785482490805488110057916112151861963438303171975695511920979840979560979027094135776148094712963392314658930685739304462974565027217567311682267932768872476797743143992798861962472320936088330154179602302922659746566496679715014106684882941667655135189946476261187581430254185196891658251411757961621437610002795476396622044456428684733938994613454319737580798872313422709868399505964874227203581610684936989287414638551966352518991234948936727854893000938491552527373187210196117632620099700447263133203353295780970380762123778949092963403288255665830603691967254574597015285042991607211422727447374705424286001198937613304915013749600556220208722944954227553202492212633279740264289939928967930439591275516128185234768167738104219392589053332748820979928365246566498161470941129449977832611639317795259188498183735866203155635603942510432924069702480661632124105771924057901004161634628722607008706414568280403906528470736966260796939068188817956664515674524555710827659187848094511289274219376887894517713797779339087182196333951792762661744690148460793225650468263790602955386296621202874471405562530245842886309256773901524615087837425158154108787949231147440151443331712507232212028705643352603815128111366950564099095198940220430372924637694719610334914280429697143092552783950388585241704174414868716917385830630800216982323167598586531722580992299962777676753292482354858177640672441551235339317709582130494904536503202021772489922488635409954840045733511920745755386319415416974550141446122675331566025816108958164101221029884966350187635574295483062843936647988671406860726208438029058899050532656667953042617816326571307290302121531102408547110094909463331804143911249684414877349160868261691756300118304036740583160705069815444862416145345409329250195185336027673013943347887212489102053964758445146361699205764731320687313486274882619319908727212693624051934527721721205101125637020475566689785893771881971820673376102524556633730036985687533115151060047490833169518059254593263872632791811874731736930584325125755584834399351463682570533076752606729777348495982089831335897314267358483076364746041251816982810813192766034519159666951562584651219165507653896603440502545245955017380463251512100796100760626227968212756512753520152421438709733463410135145979579387336642771946835510165339357169995930908892374346123976879645741856632140025915998314265549373290222065285149253821331809383656837937087621593442512487250870769067913945893221784549063289255700796328577700628380994783028649728284255983538440280431798854932380788413901690568050819117186108113708129857582995313260815626059914546005621029581490694144556685566431528951736691935826063682766872064853864022705084784953817251017112915289375906843537630368974367489072164766755004385203727496811500121680504974948607293998092643085282019988410265615772843007072589823047807046714576178963851547455432188300446567997407324922844961310419644270696666083419399348465334531052717339185541669558157098272281111004610881441990705411337808698007519066218394881510674290748532766871952161959974399024486514172294897192570969790527694060921353064360278030564386377989864389712217510166027128689954088963964410172922522020148758204360821396506443389586976768918613155072300977398844594139793694965447844238695092888675428577355475842286905012468641953599464040767490664636150411014791401280220730697538621520241650243684954377990842212920848737092568805954137741751587071770805166491220542463399509421509850263042724138832990057415083865337542134856250436248544066676597853827402446886905597662763575559296222092053319568401660620707048463322471730943639335160916973716061881237037480428154626712121178526892203932326362197565205603485927065274568548709984958247683076155344793895685422809818379387915162700307259841130512272147958199818540803757495614452467246136611931253551566875573504937189063652910548641714374739181958412922422787861162384936120083711074492359458162291004133818407315672524362156955381219066902861502780963359343508535183318210469887593984860756174795213755267412997171726103715976336843709741436559656572723973898811489956330645145367291860758092952872761169396365633834664934490103836799328567821093313391765258737620057417524096670378686637954541959139186819009628985516551129924832017527431495345792512530016249205175066055435878933912599600444816412274386896806255066801021774409310822728204644844075673546432880663302760346138002799767196710346669747875275688746776145076238529676804984663612848357102554636783096963728698344436104095480731541704489006020005554503189901325877430987493867755541283965526443509149064724719094193888842434387769226353099622527777925984034914102497355087403328016788836039407058768802297008869062866649758378312082892844455787391690859129106672280406062851466959617227569977919803920633110348619462277290236366005521664392284944971162935735877012342581060144463168117537468548904755828645767268373225581975471104811755087931363350341029420154272156339408923034683498414227577110647770356682637156303475794503504222606481486659681155686180169909477426997871410215085443678193896683001376293783263523161641555043984599322943641931036145762157352508055029243033053428625653282410141078931961461380441315551075446064348842198039933828438245552451797698993125857030191012848952282044670223239319435536654605611983849093790669302918992436876557216029830457562663705392268221357188073046950240541408038458822357456533218194660009009047283124281922034441176412885020711542954725737396938960370344745888045007026884027322100040712084612386098597588795145957169058213000648773987725650616821478216529067580317005767527997755817806971195879488403252923615605105402925419950095182308634594107721988345919093194195909511403233620343225395213966889587992521477213622210636521181816853445302754256869028651375797724485560120947895161032701407717053790000587846441424661254219444149946440377403289590251824453032749036241178132924265055703582747393118660530503051137717304382434813463290888887420698410694867002092906900437602106151220296252431018360639428565939685466096126829475227419124145486822952076784437649163962291206897019466962615083144509292180083377142803047253330419476587918720490892644613987465230147940785303208295357542786921505953271562114544902130959232000221475418928618429291750563065341389310205571121664153334002185570886584006442326191444825795772377935057942684798850627747897285756550993782855469652939246160467311850072364675679964702708466687119333699113760448278229635786459597941920559744981147073773101250339226820194707627433888415899424368643459196253806949131047390419108481055400347954293405201573514244937158642926569302720597468754698911371870376320320626543891756115992167604431638571553636043197395184952615915054087694083301103773291216653230108712420704804265968843643840404138844786651113806317851249697772433025232753278363916670273385918186806911445424618159007163865864655845659321267510434645638112019941416761509546713297277789544199457138170445399136615641186763029267254810071157378040867168588943971623759356799905920761027606338229049723144407286694587144232388340269356867204837272104284206361461379208262525564439364373340067873593730838936517869270703539944221594858119677054052906897216239942631656150500519052210284158013483430994607227604385023854023140387748704271607571949777780813437042023445439424380837007778252540926741845814336177595024845066270036187898213708079898034983719405880488687574638016233904347438108732968816384922768658187249449969329600291688469466803952513601922082070352991360944516795601685169914521728747327834645688651478272829747973001476812162684689672513299834335480257040683442622856984322236501496898329762288708091171604763654055824493743458424626009627360683373123775989926471372853258010118109556815275339565853269842727130694694496970445127553023124184427875496265551848023942984928854699105736555486937364751406161587029394259215619191750959630356263308693318330200993900155880830682236561230979341509086739694390027328453655209143553651279429155202041997605990544157149128831200734914399821062953918241795153438509362435213990151718737582449829373460208782496400811277819281677230350620576686799609353945802428198073729395915734343974877343616637543682711600188399666420149203435753493239488958204448725064356670544175950309409003293977976009288345160883454809135263320616107224361943700271379566092791450116998667869026924914320322972304746266013259916267283610896783263733732548071500815038041640616494690708154244695277986576241927583658012271654869107046940054972188982469179253046759852293583173459162093390021020905746792639451470328325611642970201189164164276177914237917296117184650834119632369181327044705682727888512893312027706297336233799545077074246882384646509790880070775108921042983209006479723940306224146980994007383756466007408735728635757435653776786207452953117036678462056606730163916120176217438948371169963378908799297398722292951742790116114568272828584660374851820086260508866677494746779219099144821824210821257617055314105838169638169480977630930642826420085387617112494313875382949873527683021655205571661517156289770011581854802045596686344618240525148598459220542599077567452131307136572486495156316111704927942553765885620252213326771678232889464078822483487310785344019341343795072287927419532301381558351580186549862971143323620683453179225526813571477138516532098360565233279693281297920874865296315032211635565949043688198837269579130307898985859905255139422402319336699311358946002948513726593849381046383215146311137907796705311973040912626344844807725608399636467757274433191464638593867145077788948159741125303891365218236887302344944030166947859521621524860011212257869663025225045892506895469562310999577169860896720362421500255613294262714869235245437465766481849126446529157640111025300563484474231340302370715129531113313597367066797981887951335141288599630640112601863610291645844177843700335573672917451953197635056913443790945935165807335349893868798685069400176119082400676294487496057911878788519926221751428374844519478732945724359191319149645660100939447593945162133457769078739194328703690083933965102677632759498111709013902507305331670427008948695936406785022711009299536209120344638291690728604051442372952287457189887756514221426821618378718809659964539324745940162923071196634267415756034877580179320524230939632256240304455444568687539560649718498951511745493476407458675960393761010226379520734210532304591238438463858398350135245088704099929646247090672467536835135329075371296753489622972163211612317772917864011020226874330627168072237859839462774767569839082303515604339138031545481278123965564900766854774203718167041888802225851688009813397566020065189921321351609827570251667312266692197654361920054030308290070137641572624200684623755588083588784960718581307367495805000638286084512345420178453122255747985908041627215687703529565301297903943816979824686389642637704548927305262168223538109583905610843716371986400046940726406543703318856669974053352921837012064390856785900309845590797826172011217851999078380947765418946597069614021501842754762656225646206593479026215543787773063058049430803484002838893435130714765210289563735850930735690807211388776172786857912401908117449530172364285428757550671343502032081417906414696260265745757757176587552699530554235539994662612674415087657452066348652753351871236560653502167352405155218926754886850642988226915014957489557028054344357881404537782734996380801787566282810683555219176788917246177797519670539323792869876338426006042057007125689076918375179066565025744433942883769788303241405753897416884871799506674160807588833044544058447282992363499745358290365990707867752638302392980364336143249929486413596642287679840548294225052901799045933412941014674845224948829429142749477622571720649166609240913011023004567818217694523544089985460841147178252273160935084224848633125382072507517525071382968293826284720775208566734649321021053353222127979326471873862516426488769006134794767962455221844118928005514796817126993093479447356143535409294422063557728659464414518687885368638566549028140499396215343669567868476290941829943041536074828971884095536468304080743597820521677860443762536004484181734133208704552826505989677619915923425830684363147114717275643936110688865000622198356476972365844427912641757500306700235192105832982199366911050384515903922129671486357808249948275076202395515908506324861451667482378017930668069781782640391317115932621750725815112158713981771135709922860862067991839531703469740698303766180348759423226421769394814551257471270354497927470466875128450016479931953201460102644260902520750500548394156447155489523309491590804891978164418857949282560877138084544551610043600135724320471672355061455996222415599166167190665513241145176644075079966768613751725954623873047303183317910149946925718715136889968248505236086548911957691792641754615571233771485357346984330460911105629035101880701591181217395639215911778375443270240669763750005946694271699776588772443365630664886483956610807361763751852284581888016959027519610553459499297912274289023792704244981507443695756074519552324729666387917735152364601381240219256715171786000900835942619623159874743793567074758084687348029995167841462314452492577625913396982030547733299466514497008440188559879139693087863818363045019533988982268876131284972721815801905759923503789713766536582948526226233703826654106662197264856171239718957016128262850056638830063517182074662433261607706400838841994649397182472781694417511626722180938975043694697585883718019996938634773393776500538760041549456706323890647740067818259822569283100570049224180486829756918377441928917460163327712593300559275751229331288498549491351737823672534333131362110114708678111275595536482113230675046943221465146602735651547554238024444696049708111456232666489632946929803635187382218905831461558047262020296642383190563708253521581202337256148575578147381496063704712647000928411707006431804284915372532490981129472849423181308732351712273642875123298779272117343744828716068685073053914503287657602916190030925510525803650673487062939245924157928803471502660264780881184760021983075455156967869887465811929083585466396097542315487877614288139552721819741868798011610459992534694322923645762186328871268351072008695438001049090799349432714995145899030620091596088141051328997467514154862071445732638023294307418176654998159502294128524630970303061691427904470896128984293658727130917692561440867928776381474459773206482681497564635705315414085963339602074177254515774574516659543407677012731516578789193034420350942403223160730833685198995028873150462789422579426120433093220000379273738304207398166278729888482431480317307715754913482206528180727439080797508559829618545437222512228972058507420745038297107528773165055128479806101645171073865724215388014249878120311638501610053923933845502906198419396979555412268386283846778291866552906702314818631172015664721375005119996412299391096114051197098867521403764381610976887686319442916024361196920375114883722891916112182984840968650610201324644926772400660147505453086060655511355572319020299425948705857217324877657723324436863122077459462321803523557842482752142326035671288594406098586066593537708858987966186919072008861814719783546665963056273848923052873148204222120535190034540795165794853051695248807908536528196578352847064128669102782337049954602141996747493022935737034689113179056859843127990342852731792614292506253702344675516188760624681714996041948581125908878166030416446675549801907198895279099077788866654885497121423520386297288858707322382866631902714030619778380504919635139285375632862560797041495302893423637169279530943582757467763583333918273537918492440439825723021987177278677891005612836076242464953684177805979100903882998677851811529143980734324243068564243139822525914655184413552733296915226317846533939608823286675767393626136635704087147932043740140569504528554053683027480486070195056607474795366025867875230748766592910376355118895293833216323877487677734409085530005560086344652372768086447910120478026444703624510619781429625067429008285234730727138279484288343042975464911713269411345589645467505836650397139026645100079858761775744681395160225871989647033955402966908220798069129733257508818669816016188782013318732326476450722549630044015922159938684895371966004746554839641169367851730595798189421642802162358163372037393597374349356328164368178902573859760416496529891556038360548817713564259793046026449869321099704416083881416438488926201972678524197553048840240650139885155361327263617196287738757463452715573838193137631265099064906907544131661472135202165137549282222707344635297161252631292623483693056395938780770599270766364165459470852896149164032692314355227776747971363040113253066047464063911698583777635604863362434726979417439727398972488130657722403104808550590933814138730095518235582573033844539106897334980024837812998702850207663086432074623558749725683066471836337851821546679056297880016927806535316253447694164261570811188277496841815070963977578231898579146010448349138897326635278185911337706322890156696888607694959387728925088100113874307540328511689517641480687082850110569500930316702635589939844716897221620835067719918466611732155035742128540792312436443895933881223309212509826519920886831994687011783017958137659632436038379584907178315670948914090988744593280322632105470930073458707213069065418429743047065210167502566002050621064090988114946762484610864730935800885583104610274410948310390620076314071816858115950702691949661554234782779876694681921585881517258949104769735542521058538824849591890977391030433979451281044515003929673366408094554734986583885465746701659836050494639825913529206312516960327691717205597170760770405180842690998671065657029597556201159832911391623650159174734852798460659918920885721778497633652716046048470696935168363614621227357142811590413448892676038585579032899210968233664063518434286829719116772462230601887504801443256648647092394046109338348094852154097787871487962980551086878267738721718254927801591698257933930219582296694841073293598295400733397945982909160307910682378860259732074790796026763821262849468926773944834427089757864424359019588123782751853300208778119082691966338003743160622005525300921342062965620153107616385084842160407580230591955502790115324643539300164996146506106332119937465977578263361436255493478861007812294108103677120496158869256638517068332461484028825329752029447710946192522908470642955369074122775074327520127824910985492163591660905564927499800569411061685535817038206363518953473131854906581978608815588324051952749478631186676657217626857503069159612839273446491291237869193548309594467927636430947615044905216492210428920146190799880556040687713962057940589806320346018092047824909908492382858352681504461522991884754276999952811651559650358278781699842220998800420327039525589065595969406948523933683211322162659216510830636457965629651096063518867149548622200508247267160658049504589793145859259196032695812079390345220358328193951978805276508053639264435962021900641898993888721477512272616967206062107884395054777150427490792738704718938735567435773311897359739621744915409692181741115455835305014999989353753424683832795276434614112478079244707010132544645709466379961872527030396464770709745268017734342864865096058492641893198684283032358028167862345538280402220754315171239250384593203099156802929297867877027352364401022886471226245423944863959730235185013119821679139983222102058360546578471684233647188524297526063392201310345717434464895824597727701424389855429716390735732223363002002060056831743824223947389863014678931151378617209759272687750902870640178365346814254181632111190924117670684826116247000266333932870676350098988406521329460653926247664742920803376979007179266874817748003933961227885958374448847695098438638069113740780139872064579036224033777626716173049452304610154509292300608336259451357044804608106112798404949358357755267676622680377695189543408995087574927800997403150230858296420483941386754040726527119053782129902435054765876685962856429424049444400243710228794180146224002667045283698608425593039432159775232767800970790969069045964747056766632333783328798757908086183029374864945404349540849641187722633577384686448280592987208049135683852969944941318345127408270778049702237938775334960100967978204673060909591251738582090984975058930109187774758259643148326457468959165893022150850606640618069446655528603617347292990449541080073396618854083665701740583217790917614412761753117320553098815924756832482057063665475042133388057124805708560358927674090377704163256346873505645405261320300503482475557295026061732826420605550438994116015021327041558758016106320046975425276661184103254406534250223111339434206538695312864164902451788726621977664664924439337589988331160253285114794169896059909177300625946227373436459391572781511073158291280406139897390599490901341852189627398320685586076971653199018438917415727318699122378961660230806707303595222760551236633624857558386030160534655453518169989970689055751941029566489558032692266721565217008062919282893493844208055745177487226660811015943261745777429464261456546993143992381526242630712895158878452942819082648897344653593642901615893330245977732163081143815295264117384606663715813207699104905081154230788751508858338224565361106809140256145316221796467717530204646844544317522323753059957307819607316133603872651140405859921508326913336168467367793057003386036490532880778393441805945325025937626940377594923034697159757436527113174226099908399573483978174032381476141162489345574986402818168851359918279645834443522025320656886914549503787828177310441253459534209340362619756471068081686586275909883546720515861665785781081587404251690576845590523991376718080896785647290177751198825847406032202357553089653902944686580610525460028247228201522603126941316809384273537653048733961378374274328444363840545552375707472766607939500392941052855393637926468778770803728469911728254756673063881333043696667525314760251343233396685566208597235848910835626841372589068845965210264355882539145039910959097193225654581282865209969469532102451785179402092203635801691152747587414506456024747002846930969912824315110871345539946209059704127690282113989046542243963300445827647458443196820270336434748346985163729722417151448903903949849422804908594612842694493952690684943922212399540303088214557631532586509464106145991801581780818630322853212759154983020451717046189436891831632523258325266214369553868720451404385909748674045831420662796224486932188464626421892838346246668224677754617772248187228832562524170211271842579282910938430777423851389337777941419651183674980852616802555647351549819517560785289441124107418971787413350010265320339186592137284456325388912288760279208614084848093589272921617121299021684914632635707838162686457843116275339315635967197379643450515062111932843985039974041850755366358020940946318684564119228663711528928804235358048505526601479692486970476179388214640717125657291944467160855825146784809161447631269478590709899266550453092515872481637291498442434847149928630770194214463046669354445127007570620033653230975403552187491045789932801863978439504410594508773261467073701927660366556185667606144554872564420938725147107911759117427391051139343112359562539644957396528593714399912841594747864357287878527269782934513698496437658027480483766372872724811126216085433887343058702272669474310938907415807941254036030512212215195510586578676150538471891073522556177479813098482706107808561238941795826646405868741357870215216021071072145930899009042063523814805772227022816002181489740012860830947676836693458244718963524876260885868217331305431807634362312647832476660317471925523180807577594667113906224673514206933655271554897635627283972576003799168386929800382826967226138993233391354390065063664117236673261321053136022451076055939607989116953945115447087867511323653833330104285884064027585351284844846341539531505092265465978491154562488124921349599883227078487571649077551921713175739653490613641033987965251208535745482378954453853042531683263177395686410033477028742916299034338465460102962843418553544473754844032852599184056816256942599805880768318683418027056788259582511538199068770697763388728985782812327991894069887185004780662471457945236029378812180144244967288949488458940185380700888113636865172303083021641838562426562734120689210861581072660170760964108699528215338576727028860073662130212302790100878204682288510074595636513315178227226013865079749109153468425691118654404084508961517469324547114702399098040071255215161055604934942651569340508257131025806417375838697514641899312640050917012993368642000428567751498296181742524113559445407580844639397032099959780140784152372024748557480255557029413438148639058135663740873349808848298428146016739194214722172608684724633296891540208742957303701817771190412894704045411734036609347826822387784251121541835860289738148894589092068474355485409541949203680773983345427814508030420201393984815186006521263440797408599951825970002667495334585692860116325341023974978602235436524964410771810524761120316336162568098974227636179881738370355879056894867652006454816175754096858276666002275192924787328851677094522544560319902912441167671112209467883450786055774206789755666678567770245964278714128568695081853641066182935203636887140523246304989560524681297674372664124562368144589362904998410140239655446470958049400059651684979115549654359297817689079943815142392880427657485448585515281026140455232060264748335034963974543309658577909820949719660227339950351996546343811002343089506736024076505747581059944090538996762735227509240676630980749183045953923504072410176365803153173885562790345480478324695344589999122515186119654585402903756113625225040841547570316497194106309675203874211921855578643521715212637652350993475324226120855910149955852163078036556818064723168612912357653598621263719629719358164663636536857073309187779790417992089992279994781505380446627648003984790624552246137976761421706167513263514680151910879377597205304663481979751183960452171682696125219065292377537677239511915709085900805392887883953249971162623692091849368693894939813579846478722752972143468602896290128454743878148531776426360661019904227912912665295593246226244881674771597830351084519044865781893038993254036691921934062629522824271636227519624313665151571957555571572757250428738017212214193233961780168935711626541081867003029280839077992675578311604063611988620633164302775805401522332458762773801864017984879223633548103743917193537014458120482670407807770654963592929739544831801451681415892324896550361209595954056310229162318369398667048776656054206819531883456800919077129074609737956653430800657151809576521664952029015964081642526689718029006059074685443886063089876912881592192413202431799774051877628598165388312620026672438184912281403415939158783004814448898148854158164949762455515801249514746993901158949508199618848766703187338886874020059507237231491219612920371840948280792221687368537507006669104389675865329210255812982319512825581609523676159169626855041337342468469878324762688784618116916007700005273382610326218657017218198292983664379896010440388149700083103348779377815928246830075669490322517398916566638241816315208419139976467781057944324741761127964716506100830464938153328299699327951597358893842960757194406928138363740450365271268189332500794923031653921683384252538150528044357602409304552370676489932042824317667986868736651038683894175694974295878647005881595568252823465961801235840486978219137825285681937551199451002447239206711680510614288733135858224825482400404757751669692310531374521282466834145053088362428064176035349637323262655492140967068319969747573114203677256938203723038804439705544036511459791514124774795216632087679556445495815346325718294765648622122011084776927093798746821328281714477944465791999785596586095136194620701480687748494606595665515442484227473847767267994287676215595855076560068601002322810242133375325859007764037445089149020253060220883152895516187123268290256290242162090563461403807696024491354143348323496917146982252018000732205403361168408813928761648853996925679006415265098654463417477106847584327392469559587174574326262750233371544997673188825385320949351436675062254794493113218928638313902588616442485894899462745251026998168284473715977084144284679172015262572994198394577863110109836782531835615143837408389235234039283012986100439796623404684404593633455173527713163932146352539347609321289515554223947365026490090116225041105380256777475792630481694678999842822896742945065140417068737948471757648275886942707541511735021387949755285310169841166634095563058161883591642522962640616416214842385910467427821092004064700357555517961024029861176999615076435792687938162200518637582738061769637731534647914836868330473565539944735701874575883898813613703743036943668197024922781449259283039760644515627305892818471567455207035686811957145584081380620026988123319462356740588677781942133267614823335103073764753521780296970809998638376188836378576692976520274750926122624453710894244440524665481588733235441056615833569942361020657390773954265233637479635430773365659919139869631197278786095067493336915588803166193507121130242448133545096299524037594321108583256453972951802455417565824357257223657989317644062839513264065605729260777678590440803582413040810218353087576308372610172860333236260406290232084288986812867604783568166584238584519990900179140672756246430256856854435873569008695676960569347569444184490947163126256399441961644582102684529992481591515850307457480349242613193040637119424982216213161823814815593524347484351351917905616783101024336718776085807396432986002658983915951669492282618504124387661725364340980285736943135270892471512029928827478304493526400623318399321285214482899282668699033857879454004020508527865121677548083530594266663232222718684096084026857461984732326344609154368522424626786748538748785913087513037529426895726120801738032901425250791946597023177488975425226380021107411965304797168307123942347833933226899547047833297006602511964344116573430135155168882905283092936455001782425080128436610896629477090690207946505094703031584147883310745580781741415675752152624366619239664634509987735131722881291761523048354913449619628008846508442046589123491553325871720620704816958755093464923513083569980187011948461570111915743493482874682914150105006484564988221772948961085738819853987170201743391206294649944601394103658295967756003797053563673229160496471912758753737462332799485076451756652044856309094510780786161758485564430488542178771277291023296184389561586082596105730693961444468513409926472719772187670708310389291785739441668274863966212835979765194148355451434554658495896742688324486974880663198198147036026548778035797941837711604049904916412777753699492108074922455241659445502440806094386108362100830608808537902511758274518975361087384569915806603049851308510162658522453956348634661260313018498382122359009635733194708923887534311763355954373878594493635552667408294269738569195648935954298694631456076557192616991827054600077853850726211499432332592280770645534768802817855881082602014912992464908189626341580130074362660808768633818406446501370129508551934848133447442895672910826706117528523138900001405168141514276393133928039536557086503722226579112701643920168429776473389142123096327619808594355660821926911600239104706140630975561410656418094881805591947642768004253142589059502484210905175857468942541620060472249321523578729446631050863588600115400945820629860354745835329865656019306133211366482298443451702201741015950274716902143961516408160949733845017590040180870293874912938442358826887396847382708969007924166942352251845157414808531052769160510201806938739588290505265969171639101124712161264293554520428721097441613393629389786338686086364243005774069178614320954656139824771595674578750048846022624079340900800142081797453031804916860012201074482391733078380449012995961073109101524834625195717045932379772181877040270851579444304984946928617965698623295430685848540977992649758559800468831181947912538900619301475333524662995413297503544945123904219662276285123384397900969180581327880727325127899456642001594831824848838556525318372826273882968500619033759351570206768733730459736248808052881533351466888477530830339723691105317361014486174043407481193316215299963951454282898622591484526259088337593005217523626649374923608526541178762298261190703980651897942318267254221084344112496225852046015293801159720359717402507707551481474781459374077505972076212605164474301732113197833209409459683583726596409232494563259521876841222504060160762580334869654735877559621148424798584625536219399749962400961385787787351480431853037774955060378207031120692525741144836656341284212541524853107288737456768305007174690263595271508441231843730886952788003444028185105487442489300877977393408001197012415604605090069165868648185413247940685484053111474036560163780149348236975848905094264771817777810714766110138756307830713882530613565997806311468005166331492519457986968287904467770228187646476845408124885217793067870082551886391318045471499045341063008827855017253692570795567539620603186312994801899344887437179364553573226445426522685628410472056927339886952349257860656113878762119356031574813971455548507919179819683363834768820155327582569741918092098938965719386685024053383684709823040383185577081568474362225994613299478875176454515257152852335281479576546964536231158322476829982837526690847807482150935198809556056936723345115247315644079546617279474212700406043084285324572269156984653856909191916594645635187133153538303701633090696493720730854700808437851837906696281773274802730755080143515834587664385465234858358177598998242530122273031137969597966701761551044073270942773788829390678597316309252213589197868270369319833251376767514587262670684029566417162302559798133652979088356398283903288294778941691784380541847878083025823153789885996658998862254621988543833286905127057410033860468211874015318503899479107128950504352915058901096851702372648878608436823819960603161839664291401440142488490646350546784800991604618915799269529735705999463914339402927677674542814068256945984544574581188619097575871770740158857538484993185779500647009538606138042527005206002984016432910983590552724866323670490369838464785528192688929714403312266949492278237721270665149600727954567249334112714058407112344503215082406825711693865673320692886497449341285529362853444573381379434724840690113137397511186292135844899550546575435996173638530090556793525788308758050239963633605491908853253045399587128500792871940005362222203835485091684943866344139459291416728233786830903843076371810950225789857166856653793682639496340166308195445269542699892806410062332245194507889032940812242352511312086592712806025475584850633187277371838127905213908532751722508534791605770884698101801718266495526300238353097130360446081620948964163905170316198107607207526573767047874823812777617657227166093557969956461572256231085115628860131950141540047964049665146717409750026936631214537837027938834692824417986309481579429990651839411057437263529361968621531312703489862205017819268098554205676600863956772530267028278195145078655368632860514255083602799996993205868949382803019576264756554662707887367170584768022192397790592413868022963164438282542781609333203415849776515272683858775021982986784121176968763907529760999858829816089114654994112153590803621682272142854120254788250263442227481761641187868714400081817548699036702238525005718198544394747035867673895213023383450236236584642331000856887625303230658499020972044870103674765091388757107141250526829795294443758630664159595456550887855999383789362595928939278291451893984747306971570979482600533871449977533994421861769210709595718541625581480457952554292787611118434902488090217098264432296947895663671847796096750587891990503524412729231334775920878936815312724228589417531595857680343140129845243212608221632964617289888221072053783458027221667605667430031249757318897968242042056823874808399240512144966218982351295122724506954431725134154166147970800608456997853630133300303942327047976343160149119776308659285436445790142319850957926439097938342298831515005425720866753893578292806020706307489055486749173395070078564085176692609026440135947168982795310625323410689388295251078288758397187563598368537985977655019923186996947608577242116942354080760783601415618861272913238913964355308029108379769235301200457177735045203457338967813725574108578394516755655082296208202948395751312461046749656875527390039866232712277096482052132048448963994365698045501544352590334124877787984556924004822658927506737369290428952044321838266164154512609394556592448187010747248539300703108276949627651222750876488071496384554886290048219027138703695824290710081886420803893245007855213068604686319479295848563675888936159357403005604801211504789739416357951716882891054568381778518995848361490778140189558994821324364428583855516011885703589068229899977874981502550534499352236306174520160610287191398490981283074466413188075407125174267076245575881963939768319403152764767134667066163141309582610235742930249018609754321445805025953243977241149178567761006556619561400478685516772331339768406910207039226054553491836426852590924472854339590860545240259241801202992186298305627380696303993895563093243888854003608975142440292502072614141209013187146705028415972990668768458621886185062297463022154691626106517027113196620803025783011456946227536822352425288372841122660871678884469426699088862858281218611059252920543078771283341762107975600296821651595625245665500503414999851881307855406713367833711645579713451572481443651111044317102627556427520634843465451301636186298415919378657219922316113242238363298262911514666895190930621580931876485762442010974326210643642616803852641235147815417871725631595542514390614957542661971314756960492647784124092610145244897842026775223731486238551270685483749157569154940821275154498772644112209221510503844910273223726269645893926428620922501200365298589753286798699779247976691221660213519586889451152121009486518215080258285900749875229073681867164927843458632380311225938985397447801323878245018798598179695360105173281505579730253439116917012762994164767134650781729646852726253477140935382977402697805590975733992253968490820794194946475519025497386229334338327472349379749577041012452181520199066528641385784291559736168607531825069568088613420949581032974720873806333084666999944163738884858300223294652283303385767025163926186877885152193745629483874089934820121272202780551670554277454100609823659480657306401093091390564223154881804718213988772762686790931237567187705951443862337257896218312129978170478635182175098589659589924281507656684168854887046441398076745982493083564548875925376932682721420603347646466024794608328087233451231166229080104417894609543536375501085213230701891751753108049539197548117884764143850251473971745339113729842870198771444336912122144548560743985608513013860398287544480688706222844499478331905453113626223986158338193719126087075982649751713714209234654610366773179345378225896606238351593984703076211457182563903222501377756530118660741065426506163189932453961350062238528747644446420540887262335276615283488959812576999897315196760251240935856058672906660407834608288216999305359596114408829789970190704977847984959643384202105545389027123630297568589069345961654704073337822826087928898640936666577573609608638902512402982460913915841455354436248364442104084578752857600005452753972833096695990082938321975522734671220522049644214374881064895350477185031887000275943273451439704701707938745210610175025893034673431069342064421599762675764631208910723098706474314507912469859941865932948649647595444811446105870020637411461870750149876584076516692404028549841294319306607947387907263099092608360668091883290764643372524416527712806021104546062029765625616302400800797452008537558902957362257817439328039045424183109880068225422847715353200541529627078439458327576937233901777466926695527233434860565957016518121733771295693612384799445517240561385973733388806800818953163000819751759516611010009910691907637261285870154840574779368481125026851354055234291027304586713253309146439859909816432586777324259867442734591680538676886812592236028117196120005323597275390007944994843454849236995047310791765759343265920966365505769213082143312054202440214960786717227801618377865445239158184084289703104018856443122405808841429318403004240447873990393453521386558156605031894315789715532829532372858868700758010007602434829751471366162172155449224913655005677288173422407327816957069809710739157092418755103388372518811039178162051948703455588924561995832142031471291652348114090560438570750325017060176531803871865904879889494752951891645179172111130011703171385535417902888851384987219391826757576419157046027919681298342338657960476367948701557198922968295818598534179518340826280713429326406481426214331795878591736601520011055534614064598918964859190188759284402216703890440120510226692456518069239418320656424661836172923022761566554698130280412390776048397863525424144585001877485124116801484150888226566981242898186294495411038913957546273329933549829532405638298586430945358492605430409112409991558335218106295909655889024799780520700830251138811023069220404808779362728625269881339552815145764133759794143844701757975602582464914184896180836561420750345052177607113937379599261733318258284550080703440671483753225821425402575154574166516505412441061650477333204231895350452519482332467835372780029179385184655422046124960285300553170216765323961252353867504953305891648625253120936359747250873497912670890955220500534824020597286459510474911822083777258339414582734137824122373664855616627463898635368812682539023273509419995028211578061781654456072260226838046899509334119739291023958690641948517374073869567958409104042444048142160928755655718395850228569907655439475691435633699817438632655653058301217045365151528087334494453932079135991738639074533064333724032771606904554022234338894388418862064156162328577353412247657502244963996688769141465867647091318161822756672924571335575388583713115400730225077492672307634021844506163657415836499519185197000039301539039300155433689330357357538041368291659202237182858572299162432180354805873796965704230396562060194105159113267759257045787135962369275675392758981789621474252871157500893969780222979115114777293787713052117753070362799607557719203528005814971828447323587968104680549602020150543467108287027287140806600843874531079597257358224942110614691171762551283197768367389640777200818298846734044237792427387427738321322905466977476019908638332795297827189780577732394098227634592928006102351061620115681560741701049913406252089256197579067849464073313832665628806560480854781818389642973662046582817185568122000547755552980582682511141321556098529637808714392811862863953165770251058830535562477995625930797143245018049703800091185189733615011106333213297343444561315350543973859405365204748848709627676831880150274370979497852812627150868465044335453786420147565861146781983094991221903443450957622471717705799234287243512745915090353093756784174528883010146495534338301536149704449941702395887736171128307450507843488071420181599947370934391180966465095922336661268767712841049521968237807255950431742378445764091544812635465377986879677911293508054382738051480887408196043425467326881311202435146455703424153672956735257687619612531041299798072790625107846741836858956931600077642205078891917496555891641069141794851166269306836200804704328010758019297095311506796148976071727569454745450475376669222425409622952183944894833307199130718165226845562006692302489219114259439612156977161351268395893200796057807543936826136958619001754952018079489410191946219963566791805223978499687613148102494044017996835380898740817944025772391448687438976619889862502969016141868119688715880106444685392778931146384379692371435873386840129315170996985060429755370610657228517282705322718550066095438457226768673299425227828788753816213993220658584657895561933082810607669749728558649213296119226596311521815641637909825933096978560075521152176561160701066920399526790569980542185591165367801915960183165784485090259738548256558479319373242767534112348837454153336055324954195927275493812691133816501642743791852562757016081924712156821289306138867843527194431838133542798076180368920628585718730666549403549639624192479253891667759631063962018111248403104605688325059222429300433672904719911919144594067036709974833606853494593429928249398187534826523302433222274201402069164103797034198182941469463984680404981256066457638356591918239167542755411283660767281320341125298002716598890855596752544714855270717359546056207050825541480450429626081007069308199262167304133359177522121393672956734638058463873766092533913864628454365726241094798783760640015741225009662579480596497730067182577188369878372919519124351296383010095981411279766948293278243353690404253707497528437288342797914503139568582421777389400936616323468451072910559920733828208163206223383125866346642732484855516860579884721702743755782608545479123047411183188132790574852429395813687860248147393017756392846472474716005260900813890326812437864112396770691723381537038350537077212424139862328918503144742589057716271688016825527484427434629291584703293746729187499291334652499476197723353217486849855409067918403188521396933514602462750784301545777081477508168078242180889841932736295695191462133141169759729514592852403581080097943045298749113565368829357376262113456348326612294740089681215044303798888074520455131078184540998588649490193252643255520168740216060468017152288633043688971597096574858999048314469671300970276409410073090732299286335787716130755882630018236703675347812696026780581639291088428984023112002903110866686231831251771003597578189523093430329450973877119220565977915693495661442641363562033328629484927144334574729161900049380096690901479579916450355544785250943808568308104431659416852659176367243129023027337867068875083391467282542274150785010715772388090971922040098503677838122987173073366145525598814978833229487978313111919271652029863387313935470329169844618879625509806876355199868716141374488146876291278064267104547352875926081121694418368284477989603388350639040663988865255350786497725809699329953942450856036504719673060118472583824770882448676108600478945393595245958425169418512002713593768014015279534001462152335339019062733940626617360895567084669568205041410034407911484373920527543433371704933327468866679619123371552302783695664484600943952336882086013166050067097486195237325156721794269745068766683839871643768503084744831666010857482103701204217637840757356766562787483966488630497843654125681978105659143176378065572865685647423744506413744088867714944143249012227263955783938054984223622738006579710871769940761843159453552507932429368922676080674961941906904883728942090052520549494762795999180988620785179935199977547253568918354527060791443378660693344575940198784030101503475891244906922689983010828276349023634811566944777530918890936975188771518351090958040505450756315591055691331006498194750332436118399617073268277869776690249609084258967210122160241046148059706117179674187509545608358340725291936921813185881202501452636636040556231088105276502747655750171884981815447803255384903000920017794407223538467523507874310887823240250370555933908656664229880747847326094518560550748356752531530603478733553430501927283163129800796223765027757649546239040792324334961369522355721642364138906878190137553918517446669330400335886572328341130596538716750506394219734066630481428548428994592729917160370733038517712936262935746980733550653566614748458786548972059193384227877491406204290894636235482276219884276285179521050357494863638999137032475900709996262220856418228422179787419612019017143003025685534937197043343588732657566296506292182654528110878074493994999340990692045666166808791143417845579148591332165885889666618468635003994048619742124598009155292743683929398921340082333314466779327615959553084927841111637866946453421497915975234581172098464409590755023626045198287796728716107649671636723840357737226660905949625622975821706576396998760843090738082420162762199860200589285443628715688056717462604045063820392085031834355477922493501679508402861162679437286040602869244990315689094289669959212491103181087849945939711498956793502837349316002082274106224964783564055047453410264419726388853086232468473762170304658124536239366753535834400035451846268729006066146574851856550021710624936887974347407955539382021537425116238526536132931193115462232192120440076020825520887962157010073483826248554872968953488576470265344788780335242181791189999837891838395946608858894834196301601526387324206922663095534123100063279979653349655624292870686555791476210927984120070995797717463971433440833563092891566981207859847230201558325950442859219580784005365353025834121198920864918106868744911937642322014675582959524422590147590491815251653341853183643810660682273452968878105692113099951745206250071582950534625640799961968084901675698821155322653419481350992930981394074305776674138926677709164564605977003726440531503844890755556853636691634750711458440185251956184925371184961833434399655621867373397741422090143927160578476285860028070054938640840631313457164054181275100308591139822170641755941117159206527089041437534034492881073544335495221345571769916898384201492167251416628613514407300138439799570423236319937730428978938681206304371263399352035584137175069681170124279707308850348327399989229167708804875159201458562346912652717024197274404227970217831759529955615326868249326263232762315035179568868641211614326315758313584589359284578588448037244940215232152005011042584744917634280910793472775369578394271205409938000795966969492329314552814507327066188730261711475693350043909443370623139422156359944377512194974668858652153526581585108042152049099335696303301050491173168355608736863604784241883247528221720233095509648446228414199385541455105227248582298052628252630650471742442914042533071992346604246251327006664134868420986889025762600978769581087216247273905637164125458544095292182928608087925133158608038547360096732604606917735443393950639545253035573125897918926311125404850043494144034154229792036383125394823987041604723468637802159671043181772593934705060235939593629341431517232730678451318552085461979312752132728600588850852307743922561445379958065087269012546869294229890535329771394675533876909661395648142439665414299553012730267833708731089711744854575496440690268430275431522358985611440152737651707627619321605213565780882625225026104671362455663823348512380624845318293935465105900984569242461852652421846771710266321897405451737539627140217103180537638897190319566942646989187662978523037368491593692859810419714377028647663972256746385978182409022211676533384444450823762156840073827850804540490726872324461104403548422698980152661759969139474396014264360580267390566997096034736890144438059673649552608370444958131936817987005456802767117688861896317276662022007451295712638050691986800165917041437437780127305585127843778314101748262560907636454613849709109699812270730238489971707180110171770568325381421406265600668305080257678257313500245897842996413645788167206614465517118461748350537095558420932617188415546264785808553706505659532527710172996778091559781010693577891741969558943186388748022768315605107142320259111142160018261791311113204484652482525552967445471958768242208528117580147076923420045461199280250062240619047197353708782464552008029616849295955911022939611662197619612400171557839115211073214007585483197620308756300777922964903106666720992290011675909466451993303945857126876432646957501895153946815820596533968508963602394598566354382026914652643189231220864511639308282831734173482841054166099486112988859749253998718870054220376206516614976894648145065447564779391842048954486097068532446600428270185760207956609855986798556341678579304665495918422829058354151167538952691155805645964469402371157491986914316667237181777299875565194515243095054705972245109042199879458877776432932555712511156946841328444285990811433361404822854227562924517047122447633166407235260617543455975744916440890836588445502012942206328501435580302987788837360530118255362039623483082372747020879781212944559626261344760452878180294613100699209114830052081006907782097372508961602041740952269064479853681103704784614357084812888525901966321346072789366132898209778075460288258782334359120309276198629091178291393533063595255421947203445763703598346786199991411677274185816916406428220862221351458575603101840649252202691119692905799991448336157112024887115437071045125720500598914144565890691794961503623771775457124139442919321910050849848360944185061845308148682031329836045929265025125783265856308217699574963337751771024125124717510527476345772765119845115381581303850018018155993716298480531350877206525864327648041738363583074399579683553988814609410734490707374595001679296908393751915443621446664227794155946970380794150847686925469113597035035396800163478188767990788016946466261235936241989057689424155310989529425113587219502440572728648831455107828057460644648682405837367136210664383885975828216023066239923533966715652981774639664789749830222342202007800081859002404248807782146787022767696612895533605372887019150084820515918365521495910406017175973385865883680010921988198235213632550513688421308283359441310234997132013437071418230132376269266344422712232755244249049537324667785872525747783799904661778182510432279884547731256757651071714146946459153499245181244249560449010203469432360894332399264509549509156377231650010629889802723976239150307705731513473959554302128661413115530377571865102796929662247762506279118078987004659923834635032683760986446372374948200690094012922297812380851079118297419880704360874275868048697706457998785709067899018622426945743661097149848075868755333775084751427816910667119627805759614786894015459106116430566768626552076977987788847163519551561662126878526386058193885661989829986293024249804601256639018728337327529533593358112229145988902677440444688290883453504236772070018963255882080562424522685374462973507376760115650294182780185266175269936972638152821084685290404538531859931362432596752667365239296328013843011139175941367871632496465475942871801321138796282172168201270406219944017592907164074526499413593355149514311604020353153658465123534011923604904803888474922849494040845211086204753924046042767718775375678521021552977809670530354165553153674582079311696923092631229061240230782622342083005664752633253893878121882088662274615537565680294966253010224628377295982072087918993318800719229132730031010411013777233913373955744605929146426259750737706239996140101651945222599899081960299345624852923690716741066371018966539299070343462637310865812838054838946130861531312032568079802600959720073824047163964839511416842494755334174559159946334855766053077530348877283928663199926699047983664632661676095164919378130970496696993237191369417153354116919692036004111479952961120223803866817891032096912986169109803691080553687652078158038619777588287250643281189164951907704605505573023531031367046337311629757548731045447821544955106828746843676872285033332362093732620778678804151718983843990863911119289610897027746350114843163900260062059218300156816286591019918903618073968527916292990077173368391834141807079868928559176503616819533837479614438429962756732565910684773989678086638454002894444999901430525867301952554048935312306908316219522937222436787323207987918236830517702645894270147192005921779749018570050430632975358233783830976054650886798225054861039906395930486410341556729729495071807955725911162949867220054644030142978508478560856713215771455197615246884763926549910763675631050989394251686840306133827593608845176481309193428082331292627582903345525033059266343258669575337388600342930053904537925492386349072349878378735360127663062312882633568664016802249785799218606161655585153963985975711950206609061146191054730282582794280411879739303138996439925569580070898365416835347312029126033823777347320369991127200232421691431926445046097833496948020297663347851597582909625394689328014164407422078513341824645634609934504899454629203225761247584413514800368676578348931755656541608805662239015302806947495364629789043069464147112316734672013165829423357314644925862107025896204738890209651378587744486277023799677840097329354485398793676402520013431710680097649796388693246454297448830022664218829213424246047615335778496315763885986477960315997471505181305039205350824760094924508318498999091391024755091807791655447654068734037651325004586088943871013425594591859192631965056728612611310636395659517931455030849036554073881006384181533512170322637636914528965514112802305597622929978080864367254846068786239465869932898673024319856021001618419845647848435668299084648360004348989050923490435272413252234373328057038223267288391432535665403455588320683719724565054519621091344150390533542769348814866469849772432025895866292979415033602462911459939534082440239144038660827375251262965861067431201018029347179986654922331655785510421145187079047171149272435068257513830115317818329749856402761924012825156755493775862894819314002216397232193949210038688093500368131920802985497310370084360935764373710304650521763649221619262311379419603712251635768724233334332248133041253770208262902926904037573827950840672202262873050349815329412114739024956098366018175809002787075682331163866549027357311018280479621527774906232324127358124452002286265466219959649962910406662006560816704607081785450535416070604987897668606279486206629441886576782884304910706276032541445548177786859629054402908020434990570019310373545189717303661147136505351854701300491665489855145107717069869556711348410371070305556586190946591631877177865038401675819676567019957298342556259213754071835908019575291903597743849702477919201497155784055817422712520612643188158070810802767585880822178097843194113231773215101920653415806731173097173131555307136558524525888168055599726719532434190784144205096222026660810456240253029345929450303486984709969667692613113814980449946971374289625081411466587109476614083807680655811107785518898951931287983682359999879775666369227796561732673249028305314434704295528578206176326333080312707559141014669468874896147326363361263750125481417558953999464249447298629019627879006413590611904798336863907082881454151345383349881014007608110403237394773545688182717437296405858536619652821498893530928738250968196188308273622357819434397615539217861760509217480988660554730281814467592337161920200375184202516064476589959829179858458920839396232453601309210197454961953402367156164983937293172890630851921337688070118881365487049966568799607069645635207456055454167730073653007932041527254894848125193563060126631938472094467692515702860242492610520696881740625658139949066940051823185836263805954551148457844366957147593137012907166208192827348722655457374342300206042667452247249876960582506852580700267430315495240435155387889165179317104299620937844112096413209067250344846896087187901723077497178454356221889841396304859917467041613068342351381110211459996439588470270481886922348781999902905871802565902541056801231251976807365489687170201891886259900270209476819580374840263763145206233793589908217889385702817471460581380456813864735288024543986615266822318316502190242211873070425540922168397454568483946501022710721668246897438816675487796504534321766903355556163363288404279240333834516048965332139991325672794651314502657960879202543974027294427588770001218578880985369084382995925955501742809875317987834221052882587762540201767838614766775549367222147040558020454214255117225841787287467568273829085995643896181228099188513971969806438840707843978739119049966608028751149908658374404237821014486608947039074282785365467215320869025682504348824095922116816825787276586209238633297846487860546340655437650176544457754082475095327656300322340585603967439958652075796550178133115837511913700852123208441846045758800147265808880123544433925090693567237916344462358369895933214792979879318808238403534583728362118741042594232965514229771916792994950685612005747264059569574100162802583204460050121585986114908456184433212031039142609408217465840969867664445202347208408460598378086980090949145036421776444197755921645759308706823097918163228750430209863759406118388100874280916354370911229577729661429893778780588738334896184249665839548295539291351551366232622896929183047300343200156876356691069110075711366892086234502418224092356212213693356102845641888823630260424700445938383736917797818308993492131517435635190306535985948748972456966153369771782633689759142394863193234565498971266827187699292019521232868364827018736526874174650842410957647008692032084092172360682662253076197297833484466379172101398697818629873673879803410503942442667994927160105027632384590044856232549505878509983541388837510848595134218536286087939219166411868557245791006315640231013444826532946508137472163042950257413159311293290433779944324800267102837774309444944770369940460954565518341034877206074511161118594250639056353667673526830199026673445699344604535524547276999788890588592441576549354726527256132622674132518354932353140667432797129572494898493282661569055290377676662663028270517479764549747562768465289476245846041491739892184856638493942792975804825106615792166772480899191851515328365527996703252907620233825858072345460790157659481850348794713331307367498272851696647221695633332463175436662824597323378805166069203649704820630660929960804597052559190246722039146853778120008987636283229571611538882431451976647732623763916567390191474897342760132635618571833366543227093651679132428500913401444724259076590004115456059503195055539174414637530623671600908177810944527630577793671661093353161417594059520283328851200568042961951963465232048150616867272724306939509616214595242493964044912738545931096108456003833782039250223099012941792899260621789842779417159426322910820324832690278810637752046029818272925254804735878049733316089198304643223502131106099285388263147651134600791369840785026383095293657898190478934958338882639093869282823659062811354437792622879734527950303834641003164142378753507351382135441089884300901816919652090252725960795275157778830802729951194338328633366917336325493529084865719973441109592732629492348720056361200618514718691846671635746190518614871586435262350363625963158423790848625107654266024432166147061556126660580714585443410281529276396357384250864587217224461708972041093607278659283937849225889166426446740527031042506887649311625598302993739429804017623287223964254533822414123955201514607979268370417101279183366564267323109351647803391250736139310925579924243778929370305230370024980107869065120870880330339097224571599982177490324855518060028307551649238858400757826886474332592448647500072213692220003967063790722830520667463867260689499819388097699918002031654922727452577653220015092503171650120557222358093577389647944822903477387628680888495528418801917741012296996842065349512528172497051238011096131982002519719771715983328886070206821539030361236579033824677989673903168671883898692749071045480241238912743089337009462367513734719604451260269982999129055902618054069352354297786421863213321688989481163405409456460835863200430452587496001286030201784666431948077209933719478699274931836241258191696716761407981246608206060822119507813692958716012395281796552880484222776660916988391617287782387615048912933622611885233193837389102280113101548014068547574065457121453988506144885004611326327081554553001094592994004827583587295964171470094469321595906972189381408600807135901201040588067371136096958987977660766340219793468867130451508175610804426708648710396241621580327528350552507398744267341955264890399491425101878990637531756488620048919161598570957952879750713016917115557173876291404884525842967003341960201637554098849105476323885386884844472707147469525508412586567879779213135933294020679296050831973964979252160963726786441872602968308234282323373135894586378148684669102307319149371402451921433717878045976061522547324965547596663483201339760969388872797514421064103914681092457154357387834803111951191425597788032943501504602873065068665634212744150641649437222870307124630916163588454116402512370416802241143900452695217179316007424457571627691502565395535746258196810180986458515196311003169702822963893479994800329863993902486584256860735454327501404985808695032975571101715764211661386988760473930852737696305889483231106779514854889775998213308913127081789919796726912931979487002291321125197553930597763574712062397509781941139639512403449432120564647030009562407932467252841370256175447178743838287274632559762220581127734288955283227986286120687734320899097760789318174537351727236039424227198403157716131321217682177711822620500043216533138006749028296626817452555273321959878917333537053946880769817423788244386170071540154638510762017458680803556507877145616632904897489525548170989817794269204468915699039433703740733572099237079302940824804108254706360351545269592883090098442347881202250793628836959958695349722729392618077929017083098933796292278570422227377641822656903131197974822155162751547605632112004720324591532053533692711817695622720727567010264415966611264556098822317408341292079015458980583748809773231748600588734336053498754831164462342776641231089279432037769377741614936113419699185512704492974307464317327803184719005491289861752673060941709644004878984700260027649669369933343616016328651893852392585642258954699815312194543168001162610104782989596519411003920072331259923890404584689427183146749918439774916318698758930943529658916747210650844821775367595424942113367672721952972399388774248158605203076869971770460781995211060510036122610534820640993262251582411603567740429705590419743209559040313685313318667832038887485843733710393334602348983206962845910462143676075470948522638764696206325905180832839498236374533632067778238276348975219944728541552654945735132123314645643503193312550578467491654841483638953098828871856790613469774083177773600919319449696431206057726025237317395072718447948230052510935755562698220791215276378986394740486045630810072526446647852058250526009223742382706155651870542741866078118436278141997726636202047865710198044829564100292746551257599753667306555369805097715283927713195178107775916756620401804176064371317575639973403696075675459583353282872370773226784651404229007242187782290220766243877703179875437989073585650900391305305065592731768020227279626135749213455321250274826277289497391325717367132809310243157112054510565976936352883881913797313777649955146813818124931688237995192343043087533190530836004179388693986816774179044114044075485563125704035515570006209720194902995585671521084768489629239447491533541783749228296991758135752700861072060865706485545603591392613428209593074553602993468557542824732483369468991515034298568687678804562716256771745059479245224871570212144798016705230786262450820411911998501654989767264823785789149453346859655612276438596245479814313657532844514553739626204002655532314217610975739495691277120480146138043484360109445419786128651877513899594051644333114611608170453346632726277721930487571704654207771721035335965333554685845158365572224929320546402934694310188617558886291752559595544701179907766519802314114150127775338333599035587775303418825788462015194734602882462795596597986881857055410260066979273952313209362411435442082626149551443897442379565952866795833988949935156137859804973998419923449906225096621196678654130600201396109655978304227883538047385304802035911208068830758877659883538148534564956779213928663577236034003876053611854051563474273494588899523253292461985306836061375608810777263254872319783898213005435862475491124745514221855873582961992528632502878419690400297693483605649855022339777416682145253467710974975470820676417119332588316224314070790994034192855183269866633809458135694309185088616280661668120215937398560815909491720612416801147132582969652007362376287462415219314100895820387229738239315708750164832941361966633929124724573047475208535514086604965268731419350379324726314621215867159826104899323078903168699209244736043513826794673521589581135977987083297985212998349612120747740908760640955329395402409798847806037322618991636122063281823702038020128839181519593571958755871479997114746583064422573344119172588789299094543339216886711696536412694966653160514470398518891784380109545846623472473981010685096820682965194220324573544523806849411936660320544552374206349363274563704522948636451594369035145970557977945885764597492728791653394778938855563084210640254620969112826799369655730475865397280080536787706927807772645588215368739012378204274799362403268954983211125743650600723674734179806296915363014090893908036575283328024051155282270615470939824446435059239763611873033987845518772843691307908246325049485796934998492685026120854642402109823948535007627981860373849207241519607298308492241478716995354830459470497376614760749830414392306253379475639691500118033299357597929635318495434562260630672452107505344252586662995967378755867788913737136440649446138421716810774158652403923371254368686043688294027769085235605071272604190460803344544355013459379863035474118908441792604653128897098913968542774394055720439424813877977773729292568171212042270081164774561928717105959001768045611416383885860617674023743642331740534542074207658364074912878870206806436424257023633519701108308509735027664021360130467967378384467504210897763409607102539425351560654223508515448034195472969512932766230114984619902276816384813051572753050256534995671981492701542813737129166036340123097513612885119914970469905244599671082634862767479977111304943812073415886660048605502482684384127372589649019782985483880371544027892614414643284886803538873539769775619105594933888874508759295078081969292522412071456776641693906299399898342658843831741397962580156150833531697220841696355964630756662322556030545859143886348602350108002542893454050289983038810426053684916684584511285839616819968611415382872634577535324307067542999788713386002350854106336041171415608695329784561674604751598570854161037192371847393346116764041360862275247717524026875061745939319115094779553112275933204713638462109721677480615470573698908126503942348767203816180383348256117451042551889924681512651488525757954615579538716317247207053931525628616547894665395310617629034655942404911539836695751618455334896829636698339664043974408951612105329975230934802415142054543587650859947014667866281116652511793135896937348802607623561258611272105205813623729720506803438007128698307336708562708905697190339117019399194011326306803890820438629639071155056698156990181368358773112811849944818750748887244268617286981820662039065920773501735710125820667846656054215430954923845919619974020876529471922271111456312658103781718724002290262185316574063029634418826970479892546957757868266556526899332870875122900646595573230679377082905704755258888956525393778635438571271488295966188007727543109991247006066670739069384601029403281129330266347898272870225496392193020019004726811709632226844492580164358467957285786779893099033375876922457876509561440892201059843485640163921953962133911436239204345203278738619615707551553025615696772395148420004150116527283326222838692312838719480234658067788362328258411549054168598366927764822566312714356219462315727283856042572121118196276978233430582631899903556963198252041241668105520089202553019397942416611772781088918927115136617584291468264423936725685922460970043277895356335032962518523405395591039167420009484178280378913587802928185771967852020531127921850600762213843546489348320857446416628051702142517671059357577609379194635154066192065830077104722092459999098962518102847404031012329691089987904630219850963924938968174619775971414246915316653965818056080222054884738956552153431979821051256956049252025858562261499780815805375364615913232839383605664813338192294617092446486056152842832013413515869418787525504153769030348400256477618105913324958844883931866763032991271797253372486756117268471217767346228026902124563411133538472526028114409797429715124262715238570320796051101888261033209802395245227278494662269857438814005895991925649855126918426002025294444768991385933516559432389840708449686099407416413536557370954585005707046017389146483406776349993289903151298883049103077621332771927472140139797790968068263014078833584047263941613188142729244129024891057284110246391926440565297045280010101342927133633641321557261125856923033280171518596594469573552480934685382880148753206204494397537028124280101111495968598564710995341186071807415478264286803850045445015544790061939982528179756126661932583676134606846256463211640030997805122606847848515115746495126139577596915253153590402931700065615306479079444150055988963342633190078248326733980109675882984678325315655817615721674622648268037255426750237407101380967689683494059671308071355981914969181434835363136006935943744742151650533176822312708404808345196591896909530275683967215215780943536188147274008573175286758569223548705718249272736282709191061358068161766433611539998047200307557751094472755901869724756499301250192343432499590560355467546368453046078611777911054183907249723558268813516312881359749954354594973633084291822472880469469307748537473314924644253107398585501980186964603297507873572208564078334744987185593237286094007371013189858706417371712242652114574788186941952236411465457679827657428142779217331485708342467648063076696255041535737930607599948502937868457797617662499822030442664952341309279188855530532387243076975571445684264700361821720495520645749634162750318606710673405201603819502774559774038493288907208286237749898762680778466662118405972902395130460397305956805830617847536500261992670777735278239951793364293488928868770766333545150787789623234867257172921636449396788717494416905009372935037726413890770663002595581144759254410150681697563254080584571637089395242990219110680005355322906599979688287369000596851930734720264855228407299747386161557638533060500644900885733737798119524916895003758147243959831251944909323330010153555498349535073070520681594249794578900708710413427931664554107293044671673130598971671873015894177659616892665583171439530942132597073014887456161925509665550211880491635997818475952972809588776405194048148907019081066756660740989277361562595710741020896817845270136289736594611056212636006474690690413544660174668252461977887953294399117874561059914243329062063815045540060464211848308239913786742323487209872372584203780386621040689864360698876410699028124614427269811754484075450623009491878173745138581122822388980309591796637356742501054838581677750876503101744966949737905407673344089569701574507291928166766704060213181195962157660213284352841427886403449703984805952509543602305216875938513126275809036980133880295926506365952819065817174278408955734703119671870961480588396487534014449581755924728642698408356271674053024017921913002271412309907987046016325582475736657136918301967269900996318639755596236881742828792788418212395079513115075214170837924998014836514798805490388661508124485680204694893616805495696043081844928786103465926097109559118549474191758381236916324672080469315521393224034972348174831973036049848172861674825386135952281709188462332570429459030668001566139616442690157174115765663256054464024456036777076702423375933102958565470753202672865093418070872843145941295701093585977601085924992057890422166749523657329215819013265204573229774011644363396875967108846723125196750753002177674279724231680798015907145534815515005566637119868212356363672216565813415837731467060965031330953037949157545828871227227428356584999713101586826898418785472890264743533219240809048384096398286939842630803317820266778148615509946253828516272311910232796556120146680873392970069692155349105236342333122479439042353689602353553675823373650023045391613236008088610271325177950330290262108661858007488045330564102525574951993342293746563450565777666436429211569907539211484452998451149205068384840694874754917445548096798721361393339029437588012277730587741584143628534165293876848272842805410799850315629170787242012459421140024348939036990717071310879635167886239143501794140011535738405735959825593233075469962570681159146962618978243364169867409676620510879211236836154007904316897181343922622226731735647266276099360726784597772149751646391612330281454162413708722908791861411062845899267615995565524821046996198887726154817431745634259426628305555887576042993032279089861263771644507773721475838221936825966139728050563086205491718771844725215149489592862226546783571929100442221262693785380079283158702022895498559192272061526664112593518177020625788472370621202429681200261019985513090000200260714467098368039959439541074818978743135088330400309972302681719399049070286885646507902669142731586501203141615816298304068351472827141481987840801166226503978406220300315275591405312570621612150478847572393598644751753301030439007569589911523531134837397370521676574696041424336856835644482971781836642017997420587859128264125794901523671218603814509610202220220298899621538428003557739845775465544173467036334234400339892615723584182523019814075058381383686089798791310428124517630474024038200902373356391723061254630233457960168449121687775304163716825701437288697471820606769650129610922537210784051777228632095120596842304261155833410219436951263078577531887078486506114661565549516702035472176089967635797000404759264680723411675415480418519215287311350001044057808271260614143869847653855830528017247972701983991868305330327253420010207687874086012220321528233592685694741647151886243871700998904537189049487392048582488446629969916116155343746207929478323701225960030671361312582520439192055704949337909982119335906157413311816016793312886194615519694816371684456083894849039926342025704067323490244033642438513616845286036132794038105133768364172330379376910642273408585075131986469224833455370055249061973352501579622814596131164878274456215400446207068570843117990119276488125511603889653511207566511937809388127946774052111716618704799701399750590805112373157867706874432527344686120924457750894032769216843434834819478811931820437681595289927577000189872111527831685254242173176985479278232590306490895296791759466274210462803583156630160683058017892811729783040327380905399564825175845714497606795701081079514629669765945412880042703098099709152376188613330196300172895461295633981550776593819097909219436652692026319205027105077301677529922605572375514357509433885500686059336653479564424825593352202803901990190751131958054403747456143740432603491457300464602645938942894173946996622631347785910060583069801233594769742956507753569890640589464687072442133720441856427275267212393192593416192439051635732884747562137987333010012907157354242101983267255357082796115641498375881570047020357666435687924764106563690997239865273417222417187456560032729627231172364545291968436699147873035985612146062266806154468773054310507257316790747329267918482054161687656526236953587750025764648811619682085202217707212335106124351992301489547163892712503208134363262103739270260505688730078512255672965942634843434684161743511932115583974761944321349326965206029857591270738551906329131951702349692540809647955130095930773320049796539656481501138494248369584589092784710440051886150789484301733012236541975578553447494933304566701221312635186008279719588010722642390987475184751735243020825217219748929020376671524208953894656874660034676136059625328308245247388770311306486273305359802540816474782425697088853553028391493623133002236076442379913626501520780488683245093699803950852208151968803778926628672767273043299958399421797205531572808702716825798105971857793032856793659561686526996286697084548314176270078796334482745966442414203456681820168297607471155525358649138531505733426752524127203809645121604049958731435383825650341506922654097835883738004995313674478496824145559208093962137311498145881990922351173651768429286349227874901269362687561375116397512082635394037754696726037548022940658236029690526894786234091450631186262138466227413096585315669758702821088476780986795380976440842750006693804270227334501285444157814231757283103205270845764626767830661836839733078205338185486764628412220048387566115257179111959128960790662501706640471239147483532097961569734493373646989098419775450154205809633005544407896884255548375737855525400655814946221023498969085461147519688848922666468708036302954767000067349572626733381082243438806512988854645318653316878858610415350001870672867308574132297049275117934475463025797885276097507935971540285057780075697798780408691623685910224146587114074215702814489950106259037094640829005785792253950148413754127879189043329639889243281762663717617905339142295403765045713522655107751665297294477855451403482414356775275648390257034725091467755530776578223999156638639387615200032598486762720656881994614937547579503226978921910104001533533027648166304872259877818728790093522957686894867768368015324873383128150627945218972074776693315458895870512254475777349021826839673665200112230759066386983229643796236585651589189936415703545870590570590513805182790395852188556004050721885181226718738226129896705121278546467047880128388651416266162258457813871918936239879329377311850005022512690645954750600213907770977223074882354586339675221490974031136826167692010607863242946948005080828783608313349235420303981742387995708070970149691772337465815925487501752810407382105273246705429312887235717293630029953339489969620153089447014221323937096706490272197598661433889148274701676243393046275534760982903691670859712633617741786704260996233936457074297933491305648655946729952689340204840973937179140638980074280025112607590418093345018293370379503475721835995442006052069536837546534120382023174003887254350972548114157054475957389583477749956967896709959224219907295111285665678673150811145355670878828114998383169504658383758851957752168556556341937503904679192952624386392184133336427000023600872144833409546777630688644174971911175762268498737101735402319119466897377425644663128338217977989451646930106943438679954616907901305942478614675297492978635501688524246832619784630876819862939283353062680122274382619843941417428956513558125511413427842255068977694835673113864013037476603048021735767331698945658172179860219659550959610980326461851370366737358082955912344376815416863269937338067225828283340883098352696197155928298565742859742772055926951560931480992418267486025243280160876705523866325049232975397679616771028794990512492473331047682214422480760550034424517899921631675327574355383843075000207709011278971105034336999474824460448199951768151423351918930967564985492444785207214266935017983722630044890851327839895194325430125806884115943995123937970226027935882158429731095387001575848373184194025099887759912458060152568915747073875959871727049239463555656818441432973069356100012234634983573138119488024158543174127731188682400813060612438478475141997511176478940612220100287570070064661900141839729518764840744080161643487625845986929227651387047656291732694375682102652246986097639791175313963790240006838605163928441120906062777233688969515101485025261613675046685502048294912303864847662909033546124390160799196616754912289718969258536522162988680240023107335722230574306665896589942417366869573720449268785240273827949311422729848981420551214566907865537812484843062292689419329323248936195536819524080705512508348706975311093148274452272951147817738902756216208691529039743473441901176441888720264015687666546589003986685856447199672406798711710327722283437256826954574928626094989122655045499153559893482495977381759529705788277712545004525838020473479198197381739242187262533203136144109405031190384614954049879810820055441236887920782696708997640547579526291704563799444330163746706734821081508565168088928078596946102038357490624490220817120910333124425213193843998040441200677659941243222034990451943438582065124474482956366999676766689105200846445488940322543623991290927940416842981170314913634422659025339965309719824697482770517686268867830827556815373723057718572646103829127177667781345022978699393714443981172104214893028461588742655691925804043498309706216739601141990917292980298911339363767293456298191290111423642015091036027066637069313803696257435726633596039701118301753463733015268648242936174466395092810621876474703942119397380739916530484952177969985636528244048577966203420069755428820432743366153029393014920986782679190989348809387861120920772002858759643070256953736727445909052048769610882006807388307936267781883005677516733398388057077478726905356410558246613434641574400444183627136662412691755826187756147906320046044634631415259796298861184672788942445497030419082792685448002568482662731817091752612829758403821801152656991243636633414799131551042748171366304342150697225985525601376132913833384573853117689537987105168795333064771610561529168693194183403556745899139597675299021614390455753883784458223725557246956988618800731861304216565466064051274522145549457320463449400750798932602205952686734602633614354781221397626833387170633202944610458823720812807024675367657426832074076060577659750844443357592150923660555270593984690984634144575899109709493197284776569682950156437661565861439066232325391370330557712671623121488839348463721449937388152354703048775835631340086987795967705918014254838547484422056046785352822840684363849103084640804263341533342870451941814582217044322993733595365935967310546799468149405381315043506671261031068588562714287542030572995510743346079756142049143983651529197344278323064932698378319206189277121844274979032566221500098643725415194623320590032083828186389199970847896740879807760998422075265847757432356750539714362159662916264593496901910282380581421563610457837195425641790453120212561206841514464545029904064415780661317024186675693774535989742264409617698313122351853948985127871539974821211679876254060531060718359867536222642229590121930868609207799539971450991968405763105838429469013491103819871033068050213833587489308557040463097461152043590909746257530202573068932582483953590965854626063133880140572192459755249860510369511209589576439004180548950498728067600838815167109770575147877942820683325309989519817241336941148377417012518740375539673565859019239240140276177253719155491113515937008827916245656967236492615085200855075920610570753859017075985811424231744721786748743575926876796643457649523670470410285363862553138372591916704628916967782532794023289236381311850961218370760237691153255814486663553140194554141908407851791249387110426410243941315086789983926383889136142835544362914709954631694048624277809356371835420949215313919188530503568854334012691517171118093203877235197744098183462923124357337670159631895355735220614085235905506182575753410279452678625745385492525371925939460526102542558755707776079314480521671093169762212111187091503948932461376854865124784003223691819570429690847212668053444235916356231883318384224511422217777247753191095586311538897432625036770675834902507464450224217332948622381981622713070422706339343150631088801776704385341186381528835766605118557578038547085396703436092952162799279700921512828917958218422424987332856946148790885450501880412643906369466897062580242383308334626032936750822410610829971046111783528560313838588526721209591423134322737916380161348018264357047650291475981668158534713853966061449524234778393384006255244040655829299641554388881737981994298064119353069081481554269564823047852307531755451030903808963677484960158912517538021481181229369604133195939980087359922917866695440611434811896996835541482948534412701310202724339418582261979715152030626318569394053403252511742806953677539393332197699645613240998261514453341573386396846495783696707978249006112214139599510333148399981718569864378577626486995087549071150206077121054922826095441223170810277996704663365969321366065603838311317054747891631885370075885965154146711145332071152614685754129123930868580670049484597868721123876209114429994295685940908855818447111361951991278980369534013254990086989361547994281581821635759066664436946471208757087601348515167630443999155839159692535255648681326460498965222530203348230967178350925504473853773576502290462430031729841816568126041738174221309794590439004873283062974946020401087898149920061667232247394603254834155961100535458124270730613019774841390773271609294720514423753079831969894998897289063617333102775037943454790778557946997845230538135280283460159918459733740574701643742008878554348195182292002124342093367976524635586533122720174071851609539132782309062696738880565925333129777627315828649791832920403300733096968014118141634308713653436287352022843395018195898166231351503448906434290585065560698912070339010295992846017035499735949615952574237444320641809851399819984517327367814189494857871762373898533091505861012924888297428668826255755252837986690314397680980312332916279987918115272623428507612572027747265614192184610359934508672721753675893550715879384498767010503471743619029738749903983236143926550599835391523692177458713628613915893630717968262476972064379698717300278174906374257532587967822950851690770858111329485197198953448250157056542260634673097277483397068115384594384382610464924482747198130047908547350499166024754197012984580548672268059853769897548870350228172182889253474593543239544257791146800473209346300857828430769716547672825063709587465373622145910451162847808691256036507996988348553980489654809079608205952063155043768658155922460162781484223429792342504132415728385030325473398446292057297667654842481460375589597381128595618795842868530314154563401100212078270840586620088559917122571576910462033928565037907639274857974163698001315902410516893180184600363166299968096423948622935016446196708497730641756708362192963659088660772844994827520375932711843811671047717547994740249930017874198567229488333463805842701617151732879271667342877241986516768063969181721227568812396899831319919024737189607870827521897225914250031353096638150275710478497071210511086736726155283250643881875205045905337185322094960290005890018069285483624209414821777565890300275269463794223122555353029162914428997810010057586830639962089169776344596545844798296793608200536468507295246791420760605507459293388993325887939726464080611984866498256191565536113994208548812183709447033940312275822263908793237179964367308115917808476484767228167295304334688185020015570792452185156258395075707898747605023540848173049213147787840875010820005329930577541103994171981116479409107684495175040763085416703043324600247350784496693112987607655981776419515872055535318343782523375477617563242821357761108855767584655035174962443143897249871493646124859867727229042373435382105118435488661907032834629000305514122026479055488104127084895973825917190055841260914589831278467217833432392298482783913726833725958409089123145845716562071544695262562413262289466428357945697021987204392054298626475831636033967672299358009387194076933595220710793010697077524447148561862742615607178667337286996143574164739462065798080983295674757582979431444488571369461904711465775619127321952255295258112967826325745077626637734118246196382123351477515222495353692576931550809777907781444158879900977656511522199939023702671735695011206844176819661386081860612999888760116701490451860510121860567577612794508696015021794440462246212450301365883027835339027006236776339208821820220607595298529510890233649509575230515066436661555847857314755863624872293642068652805181213111715311884570919463197716398159439332265726057606058331619809197898929211392378597386748228120649582392987913483061914697410254766040009409536540978167371177945315830102019435638432318370965789406523526476772799832935582035255181102815848078212397764148410201677381148308114740128465991442117910033097383865677215534398799626237811462424400315561413398174591857364929837464834166738170936923001053318302682904421015573167832221330995052260855988677277932048628208092607311398175885741479724978922348257943207389997667873717540300555871239976173979111385991984754237399846848624053465235256315922234198519689470221493179460723009380288861966767290544962076181822891308211704301081359977330063667701810713710726634893595888587484354531023735170991630180360672901795791872725551608977534710209067358489066092936674502819516444389134394636541410248079398262035170303093697479260923760857376123071963701723278951649735833590578579419974398295091377752422023726903425003049983491437978499622657628586184988392729766350550488417895696233317181992971444112917849018087556317347010871129878779797226498597533689687775561943665479928047886458457100131601315145235774372903037490432507238525283654232046600470421204865521801464890734866643688290350694647002543101925904808960363559233882241153709014792454133453872667090522371374802897303776185767866149414825894500892713928876265075167104025008197902536086251717709030350453655786966339545048122888493789087789308856115135577762650594763632792839072414855935335036715627458459571543097351251647327200387649512892491956865320460864939016116597735797503618577225296735418287985644890208962667168944361834760884309977304125980548835659621505468906347709248538112613579603126830907823441680258176421798396878990997556971943940315068567571957616181225412156878357114435933594877737952623288598893558991054978190931949235413495444235828093611790461897051864640503987955079240621145065266613816761810907950440951421726875463939437796724300075206848585536920097700293368814270858531317193482833100591521053690508802867541041920084877663969876212721377430608266616758815039330416293322332945413056454813459168124951163580176217224862824858774213485740560700086136283037565129606773425560145425771702298094530943378205017090811029562593429662010141554215866570196438433497996394342320573228405591278924306733732334233383848299364444592793109051721404813477908112807818525234386057208687195037218894593763622986149959015692004869015296537982667382662077489885631782373620498407530487101112504551998121619592175239657428182427471183148523285118834297027691054377221817993172462297938001618539587761528101196414098943246724870899589256557178172925563162750787113625586112981292459176805000442389601342787566532642737956050148665094109041715906131643087538138355065063179296569224059986811161206167037013549694000987899661379974542248343035266636606858058687906544855016141439956742499346042069111615007654318789035303699791799823296594214192284264682986684498187108826696584427197165198673483475178728453162270142278412708352902296482039243602373890968950625907095715569556173848746519693974621117161826250755960950272084058004544680298392812045976978760867482062621485053941035232327110148433200771526526677893834450868034162426459777476951627053249227223053360997360930828590820046619549846337045614193474230697536105912004892084373462515492802119852870560545022114017234788681813761044764163308821667805572039639512825657082742357674402972277768080226692268614097845440481671367002395729321412191600233147495185215768569162310321145413213389799170605233851166703538811220875927791961487710047212992703478414431469178231329872977630690896894874936234079938989550622819647661741355923353169977646789204663299333493608559947050209249424609070246171220620403246037359429172164549151468003751222162796195038672238721833856071950182782862429794201815428587676804108116888476712486107576469502006751065171839722881120947008363161609502837192056692020062457568246265637350883954801255279693795551429399316071227587003551781319621189839444326885449611999687610789748449668723802291750139649820250935820076414244799121317922465809665474189308235196857292056838605209499878764800894422471220747241118222414168560006208775917333957345267435910671940132707381233942541317741436826406862253433786165883177650675549127932856762940581477009983422843865533842777713025928842581555608663507474095508294221456075345369088490019033213504611545096702473012664762794567714038511677991540972496604150728194296787477178390189267665922134092124346866558851976208590241335825465612354688798154576555047857137024918384290382370060103584584179076238726825974123069321221013186714753967034570114540133819782965930929539562415687353268295920021240378089745923575286067967059648999720649806221649482445359959362351066132078488340785269853225658036487766771924792040477681341469378862147566768420705192886225709068871124110471539012402644204574464656206767454714486384881580995741013574973176237774604604604007686178954996806710591401030599153218397730321630186356561358976962889053305531244924807091489772546590495735169060872365961510925628486012828299048138916300142790166327748092426923688434505160769784660828927599616919351844376518406123098031689340120577739244952342905475838030506258143891879917278251810043961525886423962048142408985745525554847221481760730699067080836520804603236820676547338547673902692847849257766283474893619238106133820798009636384708526170668685723099810773874162355116451597273307812888600474893577324569186233590158174913417539961401191930684717556906716044208970371806857971150724553473377277416795088411392599554452299207209194280285438147265459872744642205080664097680330115340216146129941757587530794659964169919695190245001214848429563326383927312532696032715139921310243453150129103118507813871952442186913095915704796354473151621339982561789168724666052078859262916548559504602539335262546427863086815442937076447188136628169735105932215734060616555975828265550642829125130600950631401065931521548986069053678958783267153816815058294933901627458237212099602822158490789898036369936093505355361672531757617751997942230606253012452917047704713590301781421055464913055916903573406726966906888574659431505290021040072787649629149386855865897420845204903082007018851963175876454224219880896328343934509233897234429287760020505553251955927759002331094493454235022219435447729255263575877278404650151786495690460092364225438127917672166239793513301060353847506944095507134478870277525013296354600807411444040629846868106813623146865531658069278858736801231296943181073989151037286407720022961386193188925422270911199080111006975303451029764370199528192508846999221637798504651653924489605709705064359019055613103259131583071159111096110882110419772620479733745938153096015199011166044033892357285286143980771422007882337290420397056639361265386856413484793443258575622062518420767119025128931974375298522212011427457922502536591637895375698696039582856883033020544483932163277403427258034069261958213794290748902547927172571489468095612993352621546270814193546559257816333237587757594883719637633317921789194411932883966333422361136287835104893218572950770530950459003565237828096532062280458742083445885418783884759048932386200971721055194561234100225745765169604463389401171350383252032670180355872021027575699057084429212576301351827641328248620960183973404077137147200251374071368514067292741536006701520693283062011098632992850747409268618927915935408379562130418153131564645791595672563703901062901597503234027460127801593054934926997814836094366646791211198605526252887993241774904404306978520684578927381056406806562330005864559226183376791677827011622751882774790457043222459654084150397498333017361774625245208181101731583137659629170010361625928989499067164291001462148266423929361031580854470926756785391465909574783305363137913768351107166323012398994400186837423966758997433456727127992642704606828920193252321884955611614852553117927791718089072798574815404072661461224629173309506012961610768699497404040614761720445359888265107044916985278772187776430748046708915138780674569037861022271112306914183545865094628233631708687900780622744555830357595465877664674812868739863201266922433855302529405110910509062165154461407228618213535522073985654004418077859449175317145270123428708918344972163386703889900961061700677317400225572574576543416066432129097165978841530249494108118154728867845215783434109786825532605033965515270306140972391217147853999187378035586364002108475599467652204364310723247412055899864486001325951364913803051934785263766809089488486880234530669913114366045320155592064734878081686977590600395619532176220910095831014993434342217777117747268682464510096225936087529931882098606619874184979759314061784308428086276307787747651194892331426187000536384381567507669958471115143069475450943880093894646401857035052658107305014446108393064334656379748921554504503358360124807667091861619990953763907745904907689833006843290609582628222932788710854106400437552822886972365837433898680471470893141019226925328896965270433661520593021982685617138331192375937643072594134276578715156404076541529932094464710245193388560867869580998306558016257779570787795479926609127655429498708351688497077203474225657650263359347089115967685470468074780455176712766321180316280922516015737140299679152626175441515338738125304119561310546775420973689462586065145148360412688224246335548518952278999532560725790084791808163170641748604039393528658916275278524836085359153147726732429129008014528095197699520406626098548857301695239783247961069225448442630627323991137443802387123927717484575018430246676715938330591386977715883068717888036440575121875558098689477419587375867527929857277109783816995771702761968988586140908352088434078787985612710079637947053372325193518921865085108478003864770488840622080623769004510407780257975396352936285331088290849412909467460498284902419927368293534967505527440945405019096363809692798948079304304202968231526524861406003001369091304646133441997210117584098734592319268947911569857914056013839386420795388741344453939447245985231582047594413034187522969742463753869424500429745859809120102280816514900360123212663337006147705460804828076897365933020687735895858376800929409497335832165296416078176860117103541850922939472780793581174718162257728294095300889301803496145531540840376301646325948617882535547073184427526824761396972385379826193676982783354134185564262450600540576613071049081796698109173828333953726340878207913669431630245261501193703612364536718645591765593202037118584865071890734648544865013733558660819391358442845338382643775814702321282495345316338859083316174494023632784180671307850984015562787849086190533947966770434137322614618516127892661415831163987206798717817465432515499022284836622640911991242304211373024194048328769532383305577093839348664048806992706901934415334354384903665420556142190245156025743174201629128429179351562132614760040623445353929974750778322215751140716295217310889257469471545334875110750857842814916635215091273979502973907142497971282847126457924378406038497834376638898099505094483214732938261304630229006020920401143935003344084364865486087560595517338823680376528670466783115343740001468237890327950670311776265969527155534874821333691702640800430230824382986907662759842607079559377729262371830620350906201416529541160697059958459605379018857176705412712705828167218579711861172948722507581838928993911832067914285045971968110065708754989997324697078137793391358396117022162180704079832932952769805464521944728661233704036599436291397950855366404897976289657866226392374340465801677206523300352554365932665166080241387873508611720185956433588852967923831602911604345117776454030419079215002326076939322168346492685190072795240606291025885445248012600712114038831017629785337920510553049650068209068516466591460796840034817467083302182258234595007382839785701171901004588428000687782931102947315232388907285786744660760481099506584725142695481952667712764758682174977667364861529261198969142366882828085814118457714062436668896624149745278075458330331106251775649493981491161110310692095331973105663209669981879919483068222299371910722954230610708565874118781098440458666267363207809994273255926569742098880188900987711798439751356224414358431593385029349474850039426660501432746898179437123009537069234210903226805002885727156972130849279694788992600847812876224192479713517764677135222802448982823326715720011730285175775507628824660828861219417914866590428532720815416523941245789007653654774240149411793445216659260562633159589188621256315164832103098120879305064045156544201201299472887608714937818367575169629158410110737738745856559880385203253582273867087555588596493881566736097610731775676800844077840884695414772213176482998415926523028005407642709499345220159365213519158896339609224671085093449985652655367754844666131621486117280209751752580234335437330654459289442099998997762193304797063309745795556938592309477710295633116005720196400817176340188067695492931707260065573761824697472301909470036566405384015427947462297758320287529604985966336009971615606504437400753779736609100393347917311830411288623097550482294458715834257711388641964299487315815992958724178735880421534078934904792682917324633698935054807661834746414814153963918749622955085029050274270465300848592419414824295885811764342753939673821051434802582354893023357269928209927654940274084760726729188431409211544381009856652281296725529586903983048800800699661011293449119143019107536717270881952676333896679563498218005121269184850067738550233111411706050552356232332331111412480558170335457923751507275716800344154159086406409240930403391786598498134940245853583915204416581565598925761346392709180975925770672335847837968595005863606879705314712296281625627441902875643793322610221115769371647423459090302574082724162835102955137279827775931460151965183377819572331403282050545110161815177271679266997233814780858030910604028871139969745239901741010135348640759064977674892990912148295276873816874921909855374601924956362064473131360794353028558785754418121038598239151621536479928073612008784507448630850597933141204684035072532457148122589621029929804160528630537347231196519208336098735012646116523073847863017028367000549623153157380605387425714886815733791243959301176618086479218363555135983161685960569727411341869593062523605942134364056195180688499099322218091058501369642388017414714134784468998840890066746859593733502996773129761797680829501270669650155840276163176115468063085783809042847982211047307568281979254453630491260609966362995452374973163179705083597620967349445068924951370782635443750947277172125784204479906388018671093975589430149402176464932400345580385989126983297342185241510643564098347372952160894587195300684947428971373139705696797121346219141246479191197790158284550346169936168088747685590327289254882168692581756450635343941520077482076784667415412719087303873674780285532753653542997389360530990489070856965452677309911244393238372572599854139335700808402648334071485918525770531431776507718160876858848836967874633093557628428767619237988777505318442849068899588567311967804682327959521204095936424922679950364239639720865638825052276068037024777226073383068498519098881205956726518113015724205680879648573867202794662122250367101092312744227266080361855725115063595589845793286227519503412046217781535386397573213764354938361583483098384560786121918656978903126593810007408183887908928963414366423298705723584878894660135992547403365386005297170280164368368923385005805107580539633710067389298210918080766237308543256117774882863600477897477669065468957707375687903233363073978333132890101490497480069874811088554317740959486358903811228208179519574948197604464941688614162864168275463610297625940405292037069915231584681042339528176203343425119801759078326459146018754370539152832472033704333833542791752933683396853107405940211354044178260217748432922700341765647911229919004735877378977824316979196606143269041546170846221959686121256207658140339574847270787980023658888240371278042283367031527900132253866369693028183578862846883443529887565050359607742785767581779812660523171851339156886761099064484938556594756039820554223117747826225526686826704521376117557421351942073751427439465333762791613968280149280787212070608683482475208720487901588877018596185570634830591532711262203160392305589774818013804596317810586498384515677854341015788923519868277776345361429870027645851856064078204600640838045759853140863796024494702688479517942175426861444958728718667355060841812136200456807588884219087116576853051757804233650756697213212623798521468205364804458485866017626127550309226604397703786743339840271708486769709814795253753879168200799677930708371834453308713452604154239215407557620878469578336067080677080857346229864427469886300274005484876059545963239717975320887585136873179186687353916524164071016906684522343734899263705063305524241025246916096012908152634309389454936798198672675252874372892344541220385931714508326499061376012071235588408495950710093348665039350620694371206167027716311804544454190570313041746853617562124533983269488279099690696399741395797504879234757887169902400066495490804203984227884931179554017141917899112436607400969679151397023881497365628233904560067004460236527968903073979670193714254874227289203155055048846458014807508468352661383156757747007110668338094820676437344569699134436345292695311111273240016360114203180549087738429906478674779261755921934182153751082656439563682699916283387021326482609698932370108972014797613642397391810880326044487528990421275122400707705225164968108600894782978977917951261229140508731574685655299624275384736164896521957130242068504265147799987382373893294444875105112050051038183842501522936302273963606753786277340180444385988375433763150921006787726057623153287981646300166338103908699021301568932756831480042983880607026611120026874889734521895967767875575434136760759986660497243111321773225742341133037321804172751212340440733518710776122096598727182812762993504293887645364790082819214478031821641718093206446322535456792213489329468537449016442325046166258960126568823549082554488138251862081578947398205805302401966625261012603853891948150185912893416380325611542231026122607956857914504671468179872046842053106151387055958381012768017957645943393459812548354245855057909733233484148097939489921058352964109206536290401492042022591185290389455701765809799884567587384220803660097803399005728304229362273179003554931877143966132329036268147578725634409329975763103896127018606205038453485345788654867983253891307500822890309690905345963887362593362009914555893987155612217913680614450082397934662091829516583194725738237552790732764483305549811717012373762496873728033353591803568180615712946176124746569051832991322426628974863459268137151622034728471661838403393375702855252651047472127441328108542674544528493976335283296318243223814086039015647949353189731477485653016070602706536014389596808437506084999965320821131691434905679771334524135526584656197837145106780338519300019866419198014258318800585232861931869512831075040839914153362081192782089153328524633288684876328610692595196792077364373321373444437624104777376263339853772421293311170610930649821448236020455330210644336632987089445667919011540919386004632834867385890809988901263732443200514245282489170617682746692887264065549015318202857981417720869256510506642564066873479461371509582454863407889496181670898050026394300118684694805570955622789194633123625841514459416777920776290228135866929089726579234555999790146470264993691056235297415459312226688370039308926925145088056099048183839844270641325029243475160281807588615982824842683859742124608353732392166132088352041930040610689372457227920939530386866146730517502387301141697400626588656505289723045389277312940116119412001982448592187282570362663924415943856076321645328182400320699983310309019880310587056007317244703236706261886283761595913403150072693047736680230269062341257755213644081573241256072919096393391580108585664234409076816783536869062793951872361778034770192107206599938328897264327911936932373127544063118262731160280833306371377327790641179692134652017803094987043286718958760929460466288951198511786626271270328288775095519047531091291577982007072480033320546319505659230414552442287656280294163567986104571430543748647981716348019451177442351813708993223543323303029674574506151435085114550762908082399283766595138775470490156985786683473048922399594294614153430750225828086840229718740567640253160227772254420338911104232735697985652338715751245974669257848325653877756548163796475908019809915691080211244384305848902398073941968138782674120674001493453692173896831187012701599360305138679313024866076374208032306742522531875234128409482817939963094468654652514044957439856609134870322441665398288880427014580605393813877604863849403141473791209591143743714862336603721960821095251147491260161949405776575567208030905200212836138539202182507820536179855763730483602691899542467764631287419509585350493065557461542217415830589606811517296858415462697887327566432390617067965623961415043907317009704018426046654679786874004256280179173939216957009156158263201868289394870159920307110456770235989302076517519309157617710557765579450410090588303564359703812419675449326680269776734673159931588757406229497700060878569428190496758407044140157678749881755464370323667862448146135937551806394051096012428128815790297653781152387020097327826107023106514649174890534525565607567139834005302463455278221166500545366461592167745830786696419725678080428715460682835924529244210411486621956941351030175233782740015059021921404607556438310543144917068804775217055448287613012343242855998468507140792364573367346850315937145606737249904891762876695670361835223017503816119880734052857523765148253410104254761463134605578256797932965517844377973415867130826390123004532628365807379156871538626636580033590440217123478671181684278078211717982522667965675766609930189382778583343439772167764931639073765086230932256153420593821459461486529963492670456039370310523601504038794755831998216202432431820950865911771326918290964012931777751980122176982171444964931688483231856165956501639150711529149327465541206984315272574959249743246854701243470425228317531087416932071383690238960407406655304141099714312648978787507910796454434125033666057780824827746624601589515960261124244839021752622609929649446920824807604526886223489410163894338489644690976372740698757143496707552867951206184699742975174743569335995752049386103408563528346989803050636857005053036128943990992349910679271445360651940975872494874154193464848833204116729733645890531662054593061370528218908998737182053907969975262801902193642709042662919104995272742112525244467188216093382367374322669607420388730863706955924465114983762654340791602044600240782840055420745845816088823839026088907446862848135832300225695997695609263348009161667409676186095980153098853567428463773794296501975623692377182077085302084584599672619531036639139191071745989268962568098154452776422430839177363137281574212888556079494721101942008276046659550160478271619912949585123097808229483850715414885293465485589439853927142094277618125876252744407978077933936729904496375316058986093412499439481059097557699889002251506554253912488031378275244061529017219073592256900068494097213579088676719886468294214966351898125853377981128532742597755283393391159679336776087944366882783976904292161238075386016400510531812089723540848320790042180525022178557750330663273340374404776203424014889932276191233457843599726796655191189434056266162646431290076712001656026059093918160814543315064613021965217888262363499736106444637841901905556217557030136652259324639212301018134870086465632074307921627636948673971857845792053673349618195127990207388505968618938534178425922864070620490666864642306208161086251228826011501513392436643388370342370317980752353508673851356173130696249704777769819379279767395241960408845547932116942258128700837201467435755915310019870289879086729904305866042463300894702021713946565265528692953565504909354135983270520088288949189229820744644332793188459420025978828878770759205851924567472216046445308287309147924520044123111285804270538219893634988992903057224523919396743377259549721005910217809533866084403597046299066285827081161735747265660819262712555009397395345635821430716792895312406748440805000270399263652145771074642501210298176554533866207301559092645103462402939470997587738660314880013749918046057208695765692675427014115314843435111476107052287876551560736706674266264991602834391878021704278278995812315358705240260970044299261534232456621245118742220877058664904437210517633974619042107298647808010594094519311267899552022318849023249606368060785075872392662472288956381634029981809044440770026363203773788732429756645187656706724847349249183894713376151451610780188002204267010961130099384972158781641069753057825795472450487343128312982079653728559354656010293612928463659377751190827023536108958299283226345761566980565963523182377676775799135489063286221450525457863433845277017132335152690388745173514487639647892553720649016094694863799511309606380592056711295869430600545602152169970622047123904162975147146690062372928901812637512377343803053522199320525199813413846935274607562621299705208748508113519214495334861329441154083121510853460536791633167642066430144497368480080548172507928859961724942231494619311817431033686023970843374792735443725649970288932502448380389469180360958605124547323915312021620435874735134626288845689879298725046573183261916877582961448320743572869585864985371694304776919474141770749016871017122075165280728460582490821049947117531796071314521025736383303372404761163037904531703160242954162213506230741930502663641940233001486433720374145351461998943060622563882704726962674423840359984814901274577893742262925620164107711807663668618492307653484802428896303627799072213070414608417113710017941721396392319142103504581700581066996123066322259294102776115807682299824947314068456777326152757093729287209564197012502422253259010507555515179193924676047397978773072031050385638785557698495607592102531825093732060721436955507802793972301473496759825188439267198467077777387863363867995595308048586474691050596894954088673754076489715437745722586178469495733543589147276727622684480587681067397134562864239723342004948149965124787290497348953241838522182203506498968874308511136713051617078549289767556488351555326750468379944872252787478772611519860468327662771748309527126558137646297348268851664266446084548147183105875952531553327896559461613928399333416068487414379916504417176354684099935990248645725634531991434438624380451389075160216872676062829600887747201029248253249643737933843850828900197972021885482131046090271987724591739944308426686618173095852636548083959463201644345844931137628030718300732980366111566026940163236425515253592244119258850010242205543164727968782045547459613320666881289383412300116413378488923163857382797748498443579613490615202801368976018824350548750033594331059447808714972958917556855681661640084750429568450984899095443689040260419079752491184841794328236780881399601609926480458962692798617574944843124306267251956398874641770068694330656000297549386078531193691791539017193470615076628900856215706629037065266248859036279586536031504263262245349871711198077770884084542746823653908163254185520098842661265090976760705704594236062919525498141992032839293026714305542682116493171400134331331689336468755708498738469291273026669368284244000430153944165265370511785343022338516167304619463736695089723285732068676435090250366430677194026304352239494526919109021092541996424142006143359900157813751448422706772484798377015017320305800186398079113643796311142800203633510815017926297186944294450733162223480591284908489502606901691713705932769574978906893340135790215481823848780739072364875219407964078946815226428658485179030002914978249262907029223577349520848243550642701246815682671472446897841297729757273385531971463327378928774356522878880913432265756633036544226250795154616443350959298380416712149459846424166992356215229824887115170150819881942139495224780738487928417797913654400110080036525214709099285999309453647546534718232769784380292889774458066327934468134008175816584491623852831326244265314346628388274045392915855493063935768746537037646212907697345476252732921440928302906430901655839956302492197511134072106400522707648115403873846176719698410491828325011375204483047262918981535636491037454852832219063325023621292756374459110389191277391568610815795390506042220730233976477571730582426787163906122210825123839079987197437267398770515527375989751533807517452071536371610765784270070780634208844011763877302737985771848459643910392290449050404918673421997317770424670172675096012286588827440543506908648564830949568062906270924052021375121826702804489289364194643766037338713145930401459981508101167553889215933288247728775548749628803726054201589880027730327789315739128155878807403294096694180583250708142716232101020357703578233241222430633009578957172183066087820805149257685461237680529455561045371783456836074888923298851177875884290488339517528728866968744600699500414302491272841993377919662065822660972542163999724497956168014871839628369946371718359414332864696214925754886387056655100482116036354292681800637336643781244507123947112643234330532457161592266844311063738222855479513133660632786934992865335122234045329922383626552470946462866261623855400273924216382719383906202965178257246099489286572333464496926413433810098282216499442645604072941921546626022045890006927139286188633889711176388114076372822969641217747519119850149271397249119004677242455082158757694817411910723349820023517289543863627156707196152041450406190245722254633648721557532253965070061366419726215455665096053626469416454198656850282518449842827307384369332075974202979433462058566173712215342969330691541122050582477877816067162322617994194737118442270748674170608437137594557948318531803558003302936446503176029195775704533685056124180324240335652390954418449074084580635331746223279760020763592208814881823468776868674284173117977285547477190306156125956274637261574441395608462255237338898279111919005001043717268902919330673005699424383358800655120648412640026235149734185391748261772354250055183993938261689806324756633521194655332318949298197053295553102648070357525950974067873937896923518085986855409689603267933635937681679257583310770706653135544455349439973837643587389237009642735700738280265715731643505216072096797550715890734051290807150572012288820950705755104064264136761425152543281463732930081502658657709733110060419483455604948754311862279332842585148111160543323395128705995184012191350600153537378180071642592010071184312436787334857297628111170932853087166908217210458679330644369522283130935601499820361653659648130366842623512508160467495185674086475874753947313953749211567062045088208890440427802020939168169966102148948386304907182612483214551010492312333897178082035522790881746670525090485555947996447040786154273171200622008942473921715111073086362736182411213796927020683150151351646079973136677867533983194259382877030644386884448004088818942185582760666730242320192163615196273868924589863905598200972051506424918956173709975103527623143674264358197400883213740565505001566569740980101820759541557883716711686369959442774000685706910266656610904066577263099072150257392373081843819269891269293947892736272553427305531107869396716360333022789023514160884336369717479911968587180374985323085995728997261163134031816554597815470890772832693388428052541103201361972472029332498517527044832723986744446785673952508453131509170503048349233767089683409980185343327268028053176619564349364445353163677556338276517550510079128572030662785140696009648142910926819417062920154214346805633141891190323756261454557818884897994497810508220499713082619674472428692371382898134370978297707246714286967378379869724933962539083494958388430335396897840061687154961035698315886320988456606846197851243934634984047345465587099669960084265318224218457523268569599550192123131622697614661099576354119804417339447024553948042348126808462497247892181495179110807278184796718899788881226206978990655515740245648789804656266914986542898497584634920403882471637515501107947831533415149922430327482493207827596521063049942611076692944220143034748911580775890559983488513750485760694706527951206469007004107116592061829245321335066882713765389603366312269249103403888891883106285701607901593122242137507656855769457135984941141014206067623820370524929045392105557095514361077177782781079502617115123731174206488781109662713556576278379797120753663142778982371054352905900880034896133858574665424268534781094200710584134152948359797607976164036535109332481699760112764850629804281727264594465181817920923812922165204281750775891759680165476163048222311166668492018834876992353819205682986975550414778496972493959700990866368248296742938703536673048089192368677026273984435461746381560423211541816637257318596956234074750068767268441472761439744890817139291455864143883313881530612556075345117749593224294318648966858693692180038945522809774095076172262053509273595150736917877412512585825689252029355952499164380755584049380455030970404795895223906331288601701052802514519419132917185315147436671120513100229574559357500739374842064037937701405586154282557724617826432428664719971891879364500455959777802376545157275663900096462197782367037027767555836430087889686091836203755837010431462988504702566370930645176148702471906932411096716558799867486362065469526711746099589207430116921911233653814701935468233912509341319440571757795437007310369008192471155422877888117281549442431309347586151496670953564694163342372626376785547595518033440323617615715527176881150402037249024729577105286163499529907684593705641972803225842247028498575977687486377009597907863206443359681350010150967674924848104023533369836621233772138768469189795143990977618071789381766087969908204570341375280951313555691101624375968494950916354918108461571596639949683837790594574642526718337618875495722235225900843632164720758240754263300097826282082466616262539596005449371335668619285062150453407812790998565732390550846405323967613547056469054334706574643813495464975415236141235760524667385013750780696510996523773037212065926798297848798632476301641513764176705021701446217482280021788166547560782476140738952523975077168709979482501820591888419555643882026085142612684520445148817706734011141045349822891046384667314196256735331196264834765737956322423410061443457553483454029687039501955570300287776952768154381096896497300818608920137194846419693117762824471745195544409829172415862061442098030018834942626312388451518666314303320765598517029030289446942024625054648188565102225766105829566357153305067642127798696332088197152988097204681009478300802412001604748477794762672391748884437510276910154710084753734004298518541419684916340392862650178133568058837219231693926021513464746570695176292559983841446741354300480479108938642303080769421937875037044067754438128946505569406561465415672216455871816964882977502733547908925370784907164176509851825822058413345001720116585788363711042137150144612058555121517884840669079842020544741558503838137392006585253846608740115603977345491812768574809548611937758331729269203885008726233313299864193456703134769374762569114709814184473666286568998626820091709930778883077520312432113821245323847555292862035029475687339162819244542485169572045897849655664200579001254311305791385533972516116797280666388294482014107536389666714145876633488190386558998264778856574596918977238553629179230181779599681280767087075870864464765760066095213521992719938435284933334559823291217434924804487072126512769505744330167646628882967499145926608816645878005965649407659785019059015335935479717033534736113855904730322534781786082840536186473418116695244260955855719212029991774913746162161695098870819292453360136339818220739184893687310782627662832730814805870381436978547239247247239868311850303779953564361718705272942324884239140586187560827747210407874823417202384963054981606985915850889696789265080765699225759889100456099918654780715269466677167662370169387008060969077903669307264970257772262795840413653169065227946378741868699493470549298841332928770996632354071508288306689229813260535216247776907384253410418404543512708292883122087531865934763689128130720354597386143245205832798954469985356400997014345680009607052320738571233135788037093143750797861287342361244471247767715916605500933089189253452633691706458366101017881832732424512453671126718810247882898809441368765731031225048881928144177945096256540747390804328548093779453408169984451711836168250336021735288474359433080211631316286783519208389900582469518218523489016214742612767213499113680439133202801613287840336313242161289012535506533503224811303583375528451574460582791584983300911132461952669129933627803196047827897361992437922543357588211408255556823080773773944201072837789835484549038804244226089628966132723627136118135694876060103048587735291995893108862423021090310565590650672898525731814702168270996825871847571746520958868666506483072683361559589710873784640710076194645931036342395902162674999965561770494212552313884637653432279645360691751018094645393926173862127931754817137857178435937989557861809578070755166693472190697217709465410430415018227182915998007977639748674653795420707334386385207496411003786000172422807245311312134433915686884941110602677974651377937334688382392382517035780288570132544109399080911209841681380728221950002972197856569716786431361857205749880872245317264310731183723301891791063249207395781321670858538117951037141301874065105594944680750082596969005252069041516028270145877494615739633786216501556488029602746196354139576027638503244460133577214979279764583159850099884819710764605688467050820581025616433746082087654419013091758718079085623781751160269376679367607147065470956779374734042778523770716154184242452860527519040894094900645271755520199040050286414940884902782745363733232953913139651712033023986460348783800021471931208415618412845644461010290691699929430785048989488587197684466266781412851480575397899137177396525025084463487412365771518458957748316437896497805645603813731109637138000995207902170363833821365143133482746684589414505968752522664344848074302508603576029020326457985543914330294528449606597561918838893740411969154856888977002620267792839677430063500964757684867538750803741406134280217144127265923105282534373415823829793556941348584655970207315998180239078322298467011866614279646884544602323150354076299868941871724334802808899479019537745580348506404076399527252990752037707359681831791123612129892345643813740860230505676936178537288321146132640467323779778631059573611027981415807476043943579943790531420731838173501403361582057736637693066498538096947681592278306993827442294346095952910293782829780898196200252933980771731890915478422974491617219815165732764067774738656017863072345954768139587342931143353676950650765470369487832624830022611424814463384118568876305087787531536326635803038732634877000639656288795466449728675716925384856101221001973503952823913643261088011418151207684583596666945191192183862420104238078578689251658205364254714163496143534230551272124202128574158286390876031466032078240203991623097442382012552881624681142450496827363805803584372074527118187406505366047188816928065046946926361256398288105457184074965721771768740095984332312754870497728076754633488139619694882407761442331984194597219148115244942829304009699028608158554340677850124176462118862210626547137161113801740499453190329834473628858402998195126536943312866343782065527755680811644455130843707259765460562147981757348469488094883295001944734166111519895965420263519516941060888773658273331871027001998845295276647454434589305630390109856315406117249521948661742958755218998254301229598266470880175426277814288557163487427226136254521587398834136673431270949725719923072720998494074435774000553590421295324878336030722931934546141564331286068553704033124145391692135389100575211049687215859020542893916978370962551411665422754347638430617499647354851798811530363441156374270907959851347846237412060626374360815846240989248396161597585798968375239141230124961170068585781997641751573095178147405761237129563000112418603047317917855006016673912973947166726427669879649492206882012729386401812946361791178163714702529780401770114095182980464011209212830583257560497477357782339546298752118741934791869801663182625912145904435542857330780498753340544844654889208259886653408777349350139997868577857549898425121306857753515391953855207728072371877517761795461885850423561877972951678792458889392165932147514777676446782203676427683238901861628062664895361939318419512639110440338350205838025899413685679595192722805826631748188993582953587064421039668087906419847662608672617225452042865431493539995234234887219702003930137525800864719458505693377854813061285465573782464810446720551143698801309656274559806536314181318143135452157874501875657414651110071617330418551515491516734428469971963391869749031872694469924859082626275539010328991080446514232935278773607693462692656844692427715633022965366136108142478965623986663791805600206822073633781940121983979898855424796269386624687328097260604840377435627932896275348483763165729749082571748374094720540274913433700345852007756356648535151292901762642217057100739186376717948112350590991624514272798777828955502897404915461762727662688361242340051358159615105919156464118125628087899039551986970974812666622987201364739396360181614147131223583650056648117106370547852593920416941395457769086786004795142358138776129275823976649126512205893662014505740614591115208406491521206714441992967081402635415918958782951180110155400141870194209868576219409071428434590872929742387338938878755735972285487355530825269315570365538230394271273508264512458276733709456794344817582998116604019836380980683381023872683864174577438219277554901264488948681160977896989215557748992154045227203597423237298152050710486411069911946755613718436413804382820490178527429751478538270472975501138771443848653709094873428632456641540612107580050625159203608633407758308513700962638094665459541168603953371029982850336870842967474246048469303581593525595610230211663595236688881655748971072676671803314656638468631005101170172435967019088318182123819889970043691397481464612697306046972674761734698216923136313734611196168503900223966893466106519293384977278732615430525304621869559459484777039610340150135935521311087089733195637888256069005091001317407289016422584528636296725381411147521679135154169996464365954761642867372238721227961334131791778910217080601079442260561187032780758308284767729486705362701842151021114751617163404216036918145120862007233345565027487630941932746714390811084322026097872000458667320355341107509309723533494009965392384386880058666685872177282081000250943866792884265043860720770257346840098465107063707543241754569978437187869310875872947278236023339598931840696853292777226756736555016088481158181351212055027018239523608398366408610489793280158866950131944155438795637207957592165869686918743160638801384938350297675248366168416033423017741956408714086042715866433692779521560541352650955908926388640992421768943903604282609034599505786924458185158514321338778460130627163521247103613682750459669903052347561987619555547767262653584540195716399121121598737262466624634311516532432936169324609943950947083081879086188732298117474966599330781562306010867208723317971655298091464157276179811574673345284968209968237916910611241131321286040278556122057126763395386063154631485942366207999927114632759426396579371931659519672946728852127085960043054001917050310338185808203117569753780868987293046006407757733859208785053803707436319900029694463018062650546603806757052419622281858427166461904737829590662575067431299340060378697257017826020901465044899881883798941205430428637571171775427427542734074314604860241113776307557580805954483916519340176091051760901867517427582198754464090479514934143392354124179496742783878739905501741088797313887885335921770307114314762447910573175369106075745013387816462074384123663915635924852590224763026320988138508255586919326897501731130861804713181122733102238941252907786594527122347653995742809640416018810100875385815353883409441721450228557420119951886709539666520608386642024181678387071825959770970034849161467628213226829954598055618816079152753909155462007921761100774015034774644925225054411256455888157873477073355131502269284409501617119902562767719681738709731972906022677035449534227257769008444142941273824282634606841068658685744244131744840620527856825306333256941764530847047495958205052881950474255148135951443605693740282990675253570411288321529517382727805594472500005296308085765355934988321215403914017598707803458122186637904616520105775086941255442969230870819746345674493388546752416031832998819467823583076453879459569043297664955266337789347801982163277850834914402863759346562064607544657860536355203375593075223559399170773624029929645204421782807638238837855579077738570166431593035670920919354933200536482042056818784959782116099968301218772409259356124735507936371845647043538341112253206347767105441105592323889375143910645645284367168395581806242895008098874246335711393284541660496932409878450933660663197260824528936615418848748595344157308183397081253300275186882684804968911209686732143608848666200580271594025192555002968824794018363536501100959468912968486719598310748195409997811969100856507205040233748781761017668427167532354074133014444483825835863668682741129677632376935025947936283122972509040862872978779038139746825629297299768160725443070124460042471184152705330473193396282465572982831212673339144458552285677360403770550676786425210457262047691703521106340893820426251327014869617841740036897583718470268605352730613298993435718901263438351859573748743689088505642787325088766488619158213901093175334895146984718267108787738989052776676197457169944656749575558574185608193816929927647561962689862633742917813134364723591143956921636039527322543200092103671160644298881861164633937439103534761512871885495336397761092949010219396337793226329344598565064888249754131275217740622612824311754778360208085416414880099283904852526448403563059852395900950369428301612562300758687511131657866844889516409035636550944827662142234382746738762138985290905356077734780459939129534119399071548605614927002111749070526558882391952187335968829681112563791821659313889446800761387876491999339343596489298831512477523926801200820656353032656167807559451887907417105122999972778503863875969480427579221748578835892355389333391108361544310425667312845340337980993124815327388718347380180565274513781448622534047974263651137850187012893125338734766785451791059563246457813453222796168339625127756063408752691736728759963691003983295434166564198357604099377531993473263775572708733935458853951850278333909988665509302175660638186940154404451604690137596471303807639743296738383445136612823322274141058544436444631342910447615822765628623387412247352278501883846969240759768071126983610694306371253287584954684003896538737344349797479569835448916116650639624947307739256322744442841839464557585164799863101912292055582372327123948178737445535945308350370582788927871012090626500188513956799194871146082162799857205459207737513747656858157926273611733884651230222547366655608016052808549732553932729835973972474823177847810959603931581239206560672165330549566280374281994455775357420060133944931923724884763706733493464678770306316285038310850265208294107967861034612606401912003588435040325935176407567553238414344729090352030545115830870070093425667137253033133344482760863855214645110748232546433741260702620751483385436449675966512844450214573904823263792768242218099103344977806900521040146805563328213442989095180993064819096288005504840521849505150571344071950154000783389439386509413352266626458606556855959684166147486924122202458309140842015337561429299629209021807819366198936384629043506793139814713879497227980074654922351389138845610329729318891878074443094020048671196406631285287429931071536600192995524040703530542160489732832381471536346246915271165535367127424193639226101391628486992835827279430561089987668273008041552284622624038832159516150508918356576764478028624080554101586511834184769862271187385429199244131434668056542025036121629728819231411259018357937078128599333029711183526536542982033791532668496331935144731936512227285654658517305989889707232712826471412131269796609235912898717640058984142845307860394523664375569321914973282408761361327817347261024413181400234823445708711835511234753235299522998312353326376243106978616136519645366023266774433089463028436234691693524871802291300378812473250322540091018193079768239086912929242096689588855768507320341405227223812270062596537580301299136436483407919842474541406950173735232436446947923333879763285490531861397573379765365881334437071339320846696504826818297853551927021759116140579051148149944569812062625297725958817025635584930757394785675426463345907874594973649918052030773366384308919683697586439564207092649505817016514451665059264486433106145339588159447152622872688680753963858613625484665215336819130269983447565996489000758001610934744563992956279751137507140300244548154689978877432084841066059227062318378576933436154309957024466100166865925878109148545788175731811872085956698863084335977167502502379573238882254527810497127631884818565437597808841526979797406613378597705352767968396618689240328540532831768955369329663526715966710743560700184346732665884379477648742182718783710551421597680061624333386495988321046561332677196263609614193157906008938217695723058587316561131230405784860187304898199249908841784174666422544399975035077099346269384022226966763967827409557432956224064604589134311070510044227081370271369509257599424788788156608492047464006647480493331597975682808300599571639150767922639517153603969586006157245985835380538460679481789776109605515233490408330939644193101081434850672608075583966328294032145335930901986729423515386712465901993167590688540234846267371521580902393722483375199586559212686213856163435658198918665579404078089205214308116788024308734635692328731340189279220648662780542858722763420551782579444583084816268235274583706939593366983302443212706753263212445224382097637952106656418407717412810837475877995369387991322116833137093374635198578386256621886542407482751911210526813054684714317003960800262055835768048979533738597730473728383171959707497411387067832176178293111021107126281902385776725883724046854516980630277356451517675021253350213597113143697572962526151839622963650708634262326345590635267355664168366509309982228357477706400603435948114448423156123656986701065584381618328636159409956631634501941577350779836836449901160799889306784384738753341049323897803785564627252446575838326917564371651406268763939037820155939708133612445792286770903030268515409215983225170903058768072405049996737398311122506976545061323497459219344081038385824511335226478455257183643175090628349189517275567615403451413143086309237970835456273332546191052737440377250703456373349824454440134126039472766426078577694536678394375083159522599350005974625036776701598745762040504031142442103148412027158074411012100044668809017817616025311448207555221043285819622122865569452148782109914686312356243522140539253320608072880706887094784229158645580391855852791911717546364357962816200897143560992157902513506534093485755284473151667747848627651481295973619306153850139650809816497477205589014119034316854995236006643695187531351270937588132502263162524810218381421666969971800583738275909555227370084459451769002278283855998202685859942659650038319616271750544189904511583998340944594756392361679299955885605984499170651142371360989258278224873324994224925307602694876701831955819455789796842981130189809547934035981005262202556604283419260418109143384058705898728350625185795656047460181846090156995396166677465999173502370044311522190796772216971219667058340908433224084593628595103071029542988458121253248370645267878151723273765654102528083337359437849295969574119551385394452847977484618941582670373742133167757623346981537924279449515970302874987887911450078031135710644871450798980640603432573109749384282221645409193988233165030507375384179639692056522689133831293401560263968744384215590615783856567705601647658158481929256325092923494822054025326261960605740744178702540156909747440675639895569983265624995285827163698797174863418980023190504030060608628952547528647179776721893937254526311753117015317624657051986712493803236464342193200386053759343137842324933791153789427764909852868619355146514925259227662204184026885433633469660265458712627676429020391091869435784542269599410967349918778092866351732035896249163193869519317334001197955294667767263070669402266700560831858329507126496782269328140999167041076946235655620090897394276654046596133104189503689659426524704195579027077176076218603554169119012464950063453896700611057851778725727282300332458229060370619582024063819609609853602526816353017659853667734340447171253713626441042281116063493698927252221635211699063831779330023555898205836586557247518410046794849239661912911100767562703458812646683778782473986171614970540244299840615630840040739341291849930836040209035181493368084668133324549874959012916861548786058063662423439568109064021561738896491650464984017858022696844927590307481732929947994971097629924679453262809298125232296267352866855322685214141265686443190456805465723997664534587936451042937619118174654534634223654101857889299043915510587447089328083069440954799350903167155875786460898757170368956066868823905569628262917965850866464486589010382856146513018421721282873821378146206757449074267707027419758757398037097171954399543486029717454493703009508477923992277726231953789637026552432784761451825306143311945088745992319737412924086442849467525295794554246258608667045148057094012090177988762828342173577694587222606339055792707518398126055621981516869370006353668807799314360758405346858651796878660965240177213291086557766242733261833493771449804445191947865073899670329162239023414440301114167024174234920417054764612504468016436153442618001701572732092507109152452664120450013150779519990488732032485684418380706045069603909398765107740192701680102009226080144028847957183410143066979665620517159272568219665068177777047445128414673933182416572847862168554560881422747413869734769542524330572085111935250969709661368746433614804850440806252381550403916446629658047484471935990467760743106419310590937025988585595402488844857070344133570357996286764369195405709648515521798207291824513087596142911912068422611411783627591574273803008133203555651247573310509218388758124964601817870360299934308748612541462456768822752617991499646856350088833884425503452520081100248384194423278249244465489723802390269070848136379121576296196258665198681718885774594292984655641579753452918178684026230521833757777749971575535043528997309922946461117037235270494390490166918276947534922151163662592206632302567679226634656535194740873329511254794513899469342276810651859677053660008291248620207372955252581356421755823684083716722774349577371049700675334522291453774719098685658540370204652426415041801434341375424838411909166646249381311396252209577498235983649704085780984681128767777424327855390030763706053049479990959156635656121130773785887493551351866586470300177487303341051041433658129363467054570990314819912781377825102139197668799652072983469021344064439354918136978480440195202657687465417689250657833761164169854788558281654476866814057157096794704094076498785335092960551033332319424826734543042674429234342315340712578032894679578363963198408347240891601737233926906372309624652516655680393706206666203125686735000460219550103234392270267224609561820236626865308852901260686227010477324388227071212264726657956400466349430511664326628633579449511675857660624508385417059035874654372553117305171698230500122253726662325026217587876138831923661597669316607236439782386223922827342903387005912831872471620883051059455526609287225842736523413420211442473349293246605304318032587280164068112232924285942081179845953343560864854677412969058473975228058183156488047684302573838313425367983263275854469734233228293427930509341239460747402707826336517668056499189803848912795932862781394723257500791806232546857308209337561450373317758972243345936553621209824549802293456441500727765726917834077165139992178057091156843581060892946340303870889643307743059139128313025358149732880380737045006990603850923344026508854051422162692190175074650240029142666491602888164972222374619913424537564476655359587402270450539063886530262725979569169799328347550956468162636945123494826708954694093171326895644747610009766320214356264712255157814111074478985733042314227661988879827456486121680734646417347834002606937876557258240543626925589207405068386345903606925234776412789977438344391963250779540284401409345416369099936675406191415003908397425574551703925852566917016848451365165031431912009061317348753781677869375730807385000455793610559500590427368750933599315692579265977449433992343556316537734437247196945877551256519996243861613493237773219906477818425644697872585182315742023597341873099511570260440787093694234643214527223957306821926000112284195773438380905637067349144296047063794382449829290075061718815767014596825178447346785991073863097516842384027388161793489453016935478197959026223492533985999288296723793658587512312073054802961518437346763729742214964024265771770894435572127580767676014956654752491486478049883661219042464225517910209377373446294482207114082574008656089741825351145739917474957755512048234812860212295219694709686362105564421460782842896568231977774653933825157613137938180617609418509126699503509668381158906468924983402938459471282100806493422196354152287344870382748224961921160541992811591822257279731323993863826928045173340174947137633777093518527458463109103439901215189594385150324985054632336458364203395753234890768335350905190108133767257776289690418968298787182228132767020799273371700103047905396498742499892208168476615423810281636800183473635231847210923517523522153903925002455296270019820099113589554194617539369882320978099576523284732040692780147104017881554487197132294808207861815751924800711620473569379357493614163517829453105620107631058410197003373091392670811446361778950471314601892773394644472199204556531036266929361948661393921812220598226777968392169900880220287757126380994892443130235880976486153754616081142988021378363134150737055865277745546950601116051730899587986124135295858317726565079013367251713669180405262182229087523724177192516537207036406036799114412626384166359964963999407827066399852035471846599101432888625526416807997613587416474814346692581986310833042938971261706097328802766209412244891598925444615085830793302605876446307994783803566355586756147352322997003050776226775403475051084247596357930918481885056284471514083114562985054399634351161936608098715650015572225785829863289293729819078921280088970856549465225942463213482748304851692718282188226257068139110541587227386509761592216256161146771450189889905732508799619565075722928113603856862657450925673805766351969297784639478554886963318438692549435796718593916503853298251688968135849110096572303428199537135906985355440293396685272614052675790081747804692357990219800356234836062941228220961768556028715902261660926230501524697593784660997150820142493570128296007112546322863083576726796152765487166944778000101455242889158846490301693817613937297360128515423992273493140123147772828272468845507645851297578800297530216772307758418196906946034991268128965517585160691507523524053886089057545260098573337605582296716185030621406067209773948682701849393008723062395375918436533120130409594311926454160780840364121116938812154522432665162955953332226278648676000475215407970753720467602876896292596950171297138718511751446288242237677137326796999527059582968280015745393102677434182473389135212139286672093820696897062012763570716809938167298931056950659152247601262991814889282677492186589948024497013438276383553542387787554912174550695222132514550063260551459095334669458080825714506777010750594533857094350929699520288760193478165808395151362348950604188256717794946874373985479358056950508096583663256174574250508433211244983431052546893552718844656019378158859334331394480984684370376262354601520749121882499606370583263014943926012246924585591461679347414081704867466055904340797814431606775271152017382279381801921911477524290361268236647563687980549422101940215657324494691385706652382233919870867863451570654833864443309591990155755651843724219849458875879386226167672279391523249294535439840915943144987337423680107667793058463984540904702607324734664448919566674537644384427606573603785489591379322988512106751076614014981354644157272737084429501577096669285728976217202495412883763540337792347063939768051047175124865552578139654398023548968930010619731070886813846105150197386837523924882930322927551435529848095147888034562019872808277648205926648802303066545044350378811736191813161631699534818970173738324952158469696323748134471036916146964278491787398180962503734332129174335936961659842487706505161651719220423391145262996916425575457270951793902051770086016474000939854183792208871511522635504663534618010738156065512464031851152281249180841538924871188739339364403762684948490674911299327439052845024844260241257909618035356768063761558646253304761889912498466503597706042030701960105568621259607499294793672640746822165778808366211351997071366103782846170612007479824096875027243407756396331245998989870941903872059315017060653707050357031394017137634424418637401470215244219320811833038027237648607998814202080244164157976124256017809714099657663836205490889921998706761345747455281698423776900043273065743240489159631964977922405374692579030532911167115039226223983855420265308882007100028175959576118017523563887070282278737083110998798756396565256714473341023768783679713709877006368659491186934227771259274586223782901637028270250092907235054757103787518474656900089013774805598749318554950428858593781279371486560415891569043704790589863941412602684101057270297167970594661140004592100309628792290959424884415279747889298298822461193941717651273950465945072081703505652469033126993382903448077118828509179578806489609859599788504439556270516601933718920937604055040466793448201593947661776494929318693280833747337904312524613498624116159549381508228956221927724463911819994206143050125917302786324406774807877936254162875277661028806212474723361078883462396704277552466427376172912291062101077827683650619581300649856055960998436052475323142504281309686992699387077244268042241059654067901092931746820367437013370517808036447105056169896468099904642245566290854642277454110716185504217693268701361382162747368173448346149719356052239184608013787369238905378252804211334698463005243715706664864160374428048164355870194418137106204708206243742368994181427161865835185867137670661501729060707673992173624335527182913245162372965524454065436685860294792290356775235637069493370944488599163273155190647031891941481327356485113400651886321772412196590639675166521252906606685571535651235598520828853553531403897140966545768323980963041855693163010618082062101360397452418241860683030224980254087484384662513658081903862757129486639015617295877628197802770829280976254270754840162675524963372520162386190910023348719053840918112804230485227584551183509231865162364347212368271404153553319319523101371242798879255980426784067088342682913630155108016886272047584116008883514355203738293784429535442345151143474982134108992057141024818235421011390952158123487838784858855059667223050501616636406814479324432045176496834608573664379911377888072985104545668918654677604231504416631687219320250671783576798252921720579654635872499979070265532280816895864152523833192166156258465925546633843160898567773407267713868945243322630520875534553432484846350627294795127648678497786911694727361684635349858400950539207318057185191485301799956368228264273537501176163757977474772042028769387345453424840144159715642391505600248311926097792795244725279611037116375848706147399689743907828746411347424537664456971604371906511818904408673473004126973107445846244750791050105656980595250129221770784201114405599015584676991325902846552694512331746014884273122993727763806374452061949323608822765292697510513832875393449555781064855078358632151929290547418581218295335150601426782503813069959331641172942033924206356909037409221833894884963370342280585282160953670839920482825742964206287923674845912419587865247160186277469947959248177508587557997702888909415621512654958899891952630144387359711436086800889063200441801658493291172353559572039903190457301779038808776003288212175791273952784255097930759562887738691234829833477271553502715562999729910410364226183505147224330108577842213882469650887284300805750901672818315169642690038498506102403767229137627630911792431787125429515248243507155267486700560493207339954357286152324986307246850937525444874684263496789588511195544999152979496019820167095089704473477224293305426124529842320008003755192823892978717542710625963756145289888990947097746523241366571980363122235308020189494212187120029445689773389101672910385087761103642080065683911249812721811848311525600153550348801330758037181790268585896144110193388819047888995915314081534575867417643893912749060787794002411009392954227082163766588041259340163442061571715348340037961459829212381944981774506967592114619164092886450461576673973254503165598834483177681271684462969339189486675885534420681070223637571204539794061148317506377762129841617962364561025096774350160046042808376367081212759169100837184847324513510549506331880799387731805320371445751647084006213272822681891762808423704817834483365927323421702872668386508946395462563404252866404798534573945252332562640140928818585871579293036824643632067093700007559499868772099133081048329019712194332922810771422740899391900296736394483877540089562845008883683278837245286569870795983596610043880191567738266134724472268072452908628714976566423528435412675571430093287248916326872881131002307865762505393199344321660273368436996807216695860073956895334340792729688515106639717473924430962280286770054630230129931055698125165005235481530296044409486061439942966498738468612381964583676651532803333251538784656814539599874394830114563049241282807437156763881625595112585628507473031137460670049049313525897960684847768576263628833610808573412888093348959737200937882505875440677389049548377821260017730578857214684038114643913931324538053236494921322327065362004385968007245462364666810895281705489643900720215108607645075297349907853317799376531201444886891676316649642624594741218984593308080787758344571887493277992391526107340863265003985221436377277625336598497364766813751906675663079719359127474089359543118413423455253285348025983416071724799091428505172749128143417201728707095073576160717931760583763721876938080560401358208979858946588878685744233757373123447597825764764213377771206619287326217869698454645080064144718464291759992715931688600387843090518003004203467262841045457956193924388088650233425097638172799192398441265998427333246536033075031688845740491510379071465133697126612115173221100467741083113916079857945775579720296137415282856957827530666407077561660745389638599916068593973781927048714073613504010592506204609243335609267496877373278597345113563815521971479134377943425458932294145961018378639959802677972829477492968779906256490533186913648910474316781017099682374296318670089016167300609527897493989762248521677065584176733138844851798533302498829853868098344761174235232224421885251133866611718530980485011597337334257358477615473063852281797019801780406920258580205816780090709624893121276842632692747427545886984180842998820106349614763500485111152424626620978120945726982072045275334846649419957667581902976913013128937156669834795393476502429877559341347244146942883176002551193313688957196076082431972620547369806382033971976327748487694089260693024827718142714170859690041950470968152115126957156240855845331589254372899425529497290462238161985567913289485268947608496090369133468977007249937582625236826880926022264569573951039831510688900220330010721945323057763643642175254420974707628576554717429289261024894654260915688251140841351103170660596083400940108343283390755597408851767144655141164210781069307589705629346521408829820241153987445092098730367469493155049834193430731995938549371465599991542737844664674234954304513953272848425067912421669423704990229019687827471892645642511740181545977995363287298072857602482158684341667043829544824346554625766042550703505925662831650704692278701407040192108131987692869528276847075518525363813964180898932172001410325397245458896131179027580304555371892895345688833768155222932742695468332048018303374099163185778214874276144663307816415054550845314463044549063851701712153490627053957316437597110799449575234290115140465595579591914575722847702723874936730006094295385684329706760665672974442895994626062785249335944219681154686604292206292871127714040400855789667951385994384863797243061319168040170827167473676453389936517088442640935509499575538813613843637502072655641710707812496209424532702191438622790894565625000265928243569182042178459197144373224291948097980466305618495841927991531382970351628691548407604108433808798217887585995355056898710295972136016779998657918485281449165237060108017496712085584897886036439342856346810517986717369695287081562349691756210625225528539372054417145263739542669305033450896086370821494215150060790362993486075933565857167573657696249443185023898793431267514670315197735276240006915347733868652001737036520930253075478165527318970742927240074223110666739627498614394808012023830893858856609573239413152287034484758879342399221349907964637519405567955765451727089273728761132530636127003645729888225267207863992193416947194604167304446568556970796366039742825648745161363965678237397445778690462982759814432937501675990244768396308467568365358190164235015066918562360341474368199153322036563065509530798860795553388638132136376139359041273255339115304504671327662959580536702583449994101056248319733074766684814504398405105682283029340491007527211080202931276529110961876774072545343951732956702860449099391113741042867693327045776818015823533592666752299153309573205131048492050291232916610211694709742706247258261485014185255984348076355401634882407763938093282107244479480333820347485914676376554441008635290883273440637614104994434039972807599345415081635195907833198548213509550653805103031485393995467556996545633438278161544825750015814077051210712853945584995067979238404371064372382517217026246419644067084195835762426301684205536177828461940121455512458430119248541955689694591022625678066656736729429536346893237475884438297713194106846090043520759673906089036422175480144651568921811859335872854042432732910022943126575668341733010931218580296197234314298333524113181632885555410239190561354198864779013399377921680289264605254287845481956121676726394126551114255623923555842134989636694910057612697298816903446567215226052463353951126529888017347467418531984944470927205926588432254586902310221086105230662144643239266984991218529149137985998787805616106349171101086860501748556989723572363074702259418885863143291082725060431920330105129037314606087304664880279385642694244557864811671117935516792350730286206584380337592123028419872156195260895620484458186889990711105410619426339665153788552857238278108807791747408509481955660479936436492657268340532637612860238259701624332299980349958743452978904291088910336883572890120167992110275104288818672439737751373136719175250924988172354187081120654439640682659715155211282533911296030518187927639186971458478500270042730153666781036746593307534047676679791738454498738233116240926180616866961685438297606505190024719518867925521853008479691268794626867555147072158385232724222708746380174434005562982226468770497591137329111119671843539692888282649810030776138924258273364352148495271442956062562911135938363181070989717308547154945094567772755169848869455476504298498075466267063637101125113731771147597670652329624836053238519488010305053484621158101812419468471684391752405468298534402761148313852084943008542854155770486600119940373627240727816856690856428878699234957878191408557560250351656591078381355670684840719450097671416219698072198889807394456998723465933677903030132045858903760368945225275044960883257698517051424055751817936349186701952616497561210739151345213836770511161218102701862537761418200134163861552130613298741099572455718108634914739022854598591500336847637093426771483835669330412414715807548424338841762618943877843052666408975302423732595456804218781254333279067737652441051348156857200084542575556862425792263599539793708443144780658191306769900418432200154414016991964843795803239353046710487834427010690534834259306203114736985140718958665255406636273349604384678325613264493067508234911911144976110047373900843172341748432714726411717846843378750923100816479621860019283642067134807535301498156062457086457190855457507606302076504293875762763350211615325295390871635332934189225466030284728994602393240038733900803985684464418632502840183184181954410393200929138410624933547761695331983299326012507199402343458258816232727083707116423922941860786259962315576577680659033487009263066251327669329791332651144959561861263820389282403060002554855789488610393634425647459749702090958272575488335943696507567345290362872833858204694297550790869049466306559063676170311146006006178185894214456880127512237093725023365634410522105731920819464786355058981292073160270645889220114504687029400307766261270850776559037951438957408368032831776338716810786722439843390133555867648865624668780549333352388357149986098011965927115991783901037866687308947736805184825669719210345470422705748611997492013628991317757986448808184465360454781567999913280171643011074470545734555674061347034081687263992943440253459455072203895949786453267967703760074398762463290304124079656113955242621852744991560542161276308544762844298500709331322752130576315772306790875469539687236281294792206357157057948277899715010921610838928932017763585496322117623218479977287188851454482252762216398406827202537494986853999448926688089585950295862793133365616008943391124379753100588064197603533752854132705951743356708370473916163922969786957295180556325130297119728276837686543457222901687211891563458126328032432252902045123160316576839272148036789091649734072245566573468843845285696159864026166099099873270140282431859609451855612859070187507816102444159696025622874389021253776859984775965504360645433853899749896727559179705995088038444765502246837774974427968050243044740842296461391263672425634487906076956625638585650891212433641429976594585863028136815876009594078558505254232568075512792793158126329571521534030700383091171556433627600852519960879786455293493602714174351743696645182734692956550089494171426347499546977058206609636176090422210588170218919582669356887932005872620395936254839855377882635928012091398270862748767882971964879531477400899304962080924773443982938540525910303102306645027691452635360135828898216866325361649076689267781859511112816829099649357104719902884522713580560608233680822778891643051565704090175134151001712787713053631094606688164112646196710744843126170782902240049855269968781438213875666295432197050084505848171916921312177284484272395155430445248662797050015884503145398939307534818283545706127034987607572675601226526923699303709772440088821832636851815145081281682326917529647471723169067666366213697697416269263201041942082708602934880709527031534279252326261571070608973659664983948588392352405293508116078205772652268400202821685129242298804884012464348326989644182861980574735643478194789413289225739289429299382913200971279317496775786628115627682561634380006263814336232176534816501561620166903263536991714029105813312286579823787969154600709663177405382288945317772585871520135952629919103233450123850272236675956753735842065790294641703356357098123555277755559816524690648897279612627203939932535821631234851700855796022112563941958498029067174659771013533623459223360650600354141898207147298372796214153864360370494741741479536084674540075674073420214904364323329556982733187854551686042004369856716424074234734745248684618624954254567633893513609835439151646120561316948933644827137001599645284536490688516021576142595599811962152229348445828933193850471623526288971096065860999354003850793048373509950457793442825936950140417335386057448719451164593110874937156961436308882883288035316305275604862271368552813226479162311580012737055091288093174950423624756647080962391781153469061583973651142635119942955283556506007495594638247081798190428818791471920394866946281747314529612543509426106994651367265398663942632404977166469896121946536397850647353029365947212726811197337084332184262798252796136283722389953656646319127900473244751772161478845683008411252166655597591844857122718266917278917854528169575361963168011074020737778164283053539628773564646166730658361076634996078833809332694901623380506457776743352717435034951922611832926244130178799590184069898893746018617444402494155274767231723481124333453242412881709902210590762426392572462733805373605125059717777125354401932492518688746399812739518014037025591193662175391992871631733584319344609164426096830099519925145542991860152425935339480208835059495192751443429094704553955002627371219817923393641739180004793634846793497197755704180750141827886176418812109238068332202706792497730829484517602221727079136937033752521769929369905358335065496008510788799658113072103100431518938142533792280501094100318235195589976424047456291251033453603258249587826882721350484547296237092575572194911130868884086043998243225381361061842228351101972642049570255832746616916923234438130643832898805332257979857383736309997361218014866720881457248725182191761800061766288735235353253113856852573075875305665557191344110975650845483127113023496860272434377680355156257917659205866591651614853298863273972513264090321416904901754182434374696493057316362469674812155286236352013775158708377857774283127890736290126989131143735982805143852025747532033682391361936043975117803639028524771996955416014343084666150697533289343303245778237884459708613140222623507013546406333887121237908648789792875319439427556912693546558777181169534241218023076337598252679092690285021865408707848774009555240399178789515611133800012139226086741670885270701811323512494405226187405472248082018665267445360243762801537854534164823174043893188262503507392547589215693315862906267362747733801223187444859267702941093863499293214939837210923050619622721423063607924024981043211388958293248191312433331768712865439139957034378625846896579653826532102024207102535784841037952369114430274320576142991805896606742574354067021991177964448204768123321224054658059909479414466223857740723184459485242758351661698722423566189932620140881945602837907523457788145379950640436476268718655653129179213740535619152371247334244909409794061074571113934396717833823750730009443769621096595383156763647526125317765120997996382208750461059805978049052291385011824674715356201619130316514883416334152593907972293035396744305606287119401418115181744087723699839055916292277763323598511108018875635036348631856413253853474889331679439861166272355900094916402763891053349070978776051589778882502940529209565279478296685373693771059706335221167711722485603515533732613883079506308980049876971675839447496010230101076642586862107380945106212254906785334927460485340959536865008499736614633278294190728621791136076645265348098713979183396314507404853927272162117833113007243003030411121235531282407793532264532013376437366022912642263329287432700472143878249530313361443400750208004654323727769445257772609461650983587418820115513887026920647591394358742858193172883344402063898676345473002018232137844112617998423221438064194927808368740949872856982718839830288167883259951436625733000266841600026621703436657736899784024628488711439978096354114740026279875840569392778693069902629273318539153919120307394819111069674797446987926532619735495915892154404006910902177004748418779036858342203585441302332236032336314330294499974388454569495245805345152407631629727700875705237887699614303657859272954186844651677355836761779165233650584625876597694209366249592830673718459379208600944567415167019506476416293129355753153467879353042353345422153642010564250082703834111168559094559279024303071699607789626121424703371171536540847030502819645989894002963500653676485771167310607440427604859979303052231980574131677173304097389860762455011934037882231928650457293291843778865210307042562212648328168223514324264641508278253111353573581866569008881006009772086375959076138589250312204285040837170076494532009198442469133485496322429433792469011995399530073123210593938918718309903760952538299546867738285948496257450310895641523324366547587768625686439824324919179492982212409171032507720202316498706057054098124195621528376800364129112239628225035156738105576907970514933268927792375453066768697161288871597641284866528339748533251819980224911500482574104385414473020058935199294819855508578682403990000677202210790186132223636593204069129800655598436065903709914720373437804524605098465084465830840435846021747263251785021857780448570779918069115991365916839933074405039821118927306900484372928788976936170559061649738683453466202658624328602103117995484610320970370144324647189349699260405206758303260859336526378605157773243948014159609247564179214998744004541579899813989578205160113909947531722079347979695553705398348034907851702827974038058896370810887803602699013260513163698677771585401938410760505589734746467851847866364118623625887827953379741417307555887647533427775202074174869166794835991000416713505348054435646883835396145907139744246843345391957234392765149822432633869939897462063794784806857090375426967963122337664492950858739836298237673165038740755501155415795853514666081345003112427373232178024013830783761657823282693229648805930434358745492130847484726227821934350334623853385415448710206836720568775516575720603184755432491632110418507395913892904484607502811525727133791131118617432494443854279238444229958557583978433462424704850661961109315195211481026564109378040173714327193426990200907712198688410392105953809595333077918420794023627939265924819742213874075478429480298090622221335914959290373469654456144725373503878090766610109890898848360713238231106271079627587641303009598323301142730173500449571347013974073728401775411426850740364653524274231341032336483253179618859584132754960362914580498353430668709303828732220736640511337253691933457338781429600506473340106076430791589604840675314511485889953331356324673087722159030279350186043510497353604122654373798150765233171918195175788587685533927415436608022974928849713584326985633727536243220179548920437358761629174035777010627593155450588816101045222305669061504710687259859701446745640554533805891790169256968096098149119843609949560431278150988623963358353314067747677367308430023440513868741516656555207750680868008510925714402679242449786666851221927393062954336140393425778170510618126263354545646363285271027927415377155543748650674279653625667911112808230681066631780471537103694075504075469277772413025465551772939134288528565903798137329776664366657040354394296295126615483234623697142297386028779446206224993600633155974533344621415081502625443637974503106758202976379239358244920244801503995656530276282035084162430456441763035972342994860987660515887760367388572666211620303001124070767767012172804607256986386276095836087019515111287417945860324840527242389168038062684054412014362938619585889548338637286830513757710432942862230712118113271143984602788205348177012854477559565853819783156912759852835181650677359249119098546906363312820660752920865289793073707898207432831137983820393110850937738126920171525665190656101378561263425172123915538265269258101451447152067443311286052901326539870606473748835454855475025789717324415847255846199702428667320938237991767481779033459832044090386327669598461307604942651423641264599796917485338270052973252873975564868744939054831602770154840740129913082395917283326348556088655472041139788604166000804559484686980387345769478478994557344004855311351207886294685575951305593118166788401990430330086630355823196477789825096067022752992813847453053519128882848811111886040326099059024521667746841628789791561125042546394369998843243718542456722042530460722732324894146125003016882377790363715256766594625540241105134209363381844824748279146763966734648078857808012954474789450990915240362426117439639967387523395466093846214234523867650830023384317460858605447884184420719572926751255121647694526316380430792454232332208509426785440864584778942802827172790701975030217255105118673321648454797801531005672821908293014000344147268089791584900423549929984178129594802680327044843018395116556494792028130966253677905615385359716209432461278516960542684157291706629535919475658280647889033429586181757021920965162086360342041219257570694111438437827978001577489807800490952788930726578799525968042421173972822859384364068532666725390259570126807516821753258920664533345158438346921586950887427256116807469702293736842990345672067365245463577269620278272186099687295453827098588610111002508506017392391629934051885820501822690192069175880407517675378260206298182284781190726708752974822586274457665476762932204316581512631933519966520752612426892206919400829879131162548804296193769517178341104570507008520236486988830110316350551858395298742649629644672722429886145373449869096328227839586934727776902785517296237339446327429272516532776956392920724877343130796723308057374451996781802397556820577592632900158784427248925141891894053767491018663614967005769265861114668285081243564808440968843597948899369498323845985700082708747771798569244797049347722401400205686342431402863535900514853881350308669023339017084640165436392205720984877827289043238128569775938041066249452677426685194710017337237362935249902074812071937064768585538314619773684174675855110251905160612163197256654792727867313591412605963374846988121510509623836553000007475600056373025330392134631769656010625363778149821968180984266105040044030826750928905780345161617551811619356181164291660152678302961586048152602358326579930759931456591488273975150495244067196681447781877256538860015866917802196841409237547310058551016549633696083525576373427155231794157132169609752091829349337060222057439068806779062595294783357529843737461134014001414884488306511766235574242139670661704195477573883634660787319155639634232033557280854507617784134594338265497899038007992102096236934003395071474021004042799566696854793780119654549212239446080892756645884223774120907035215941957668409598955348078048832220241569934874761786952871605006109246185265225526734494169852335220675468650705014997125127985634692348516375056113254769817494367832115902332746435488947197490448515330223476644553628647340344061778574816734163926882688685193875933370918018986789969703207116201348026449562986039051772479061294994397549587583689104943064649897088753817829140291941236463310760660035451108763805213413125903960848311299676446261057333014818122320570609595526831547602159684164674187723342586109926076673044675132578306643001987544408237816121383322176026670577961852326572427382092779181166283433532022363032262538402511899078758601904766600086562471328930417678081108486396277178179371002636368787948564696737911863972251543209741127835414189327171634497532396728691976718096980980995775674025161887562371399276042167518288764298414063120816637724208326987042465678542675766472285974872755296775159167746133687197221215081217187645562736351370721456366306429196208775411476640733983540296314352332660007905983602316097857107947531237665133346103288467209644115540494707029200454268934500528066975911873191933313340750975670914760817377434933668449527354959504347129122554615485134298374932571813381905490300658338261970488963201105264117631147811424020292934582233549959453870463097454021557908941112026587365694200249974880685998360941345976177085189902948819120684264275554550557216837278103365794269811352242144900975074531432566313039710117305276791119501710399885010342636793599666323219552093179968031308061702299374195960818576356069190962727347221521525330891133588377950170936390038374930904902690059083281025066400506300863759390227217164511221113996966676198538103708474879913797731071579798483519001669520783159814022108769968965919129984943200317567940621747475400419758929774303314041554827607369379436448524713834396151097782303109916631125522911296709520213158139658170832684187358131868291744635957841763298496382504405222183577774579331058396057631024301654569784846687085680434048781805554083175646936742323235689707407475321220270246236223260578319692774500232267679825820282157515199917304715287505916164944494750077272805548009565725124797785576862317234474641674087498682303393138540637073917349406774716211940959822346558659204018417619045487239953484960754371492120498288966711161864453392886101171396319494590414173847088351380191965790278791189544807236831852662403769673224244073363225144322089885102411433871597035095448627084148102801266399189209306091443617312246086985950847803249720923679636012067909131084019271996076710658143437221993431791659508143432479608632229641550472991096289894770867933407594891481322127367526726989822701921581259756293033314059542330360006466602380842296981721410403262751119705276588694183937374251038912988411137534327268379092519803013357580679500781556649595974053912829680695041842165338754667752873058837650507476010355439784703858283501653645504541442562130018911196467173279194498148069062603035727956091706705109599875974804230701650120396598098799284842045383890487831399117382017777620091628951207362207647000201464295427588358266084056970871556649708366798887170408158478658668245949330189186771023840638239917217458643139235141746797842083866148310482113175307004052661254870049952616428539591007755462666861131436846540698255077940646211621656899596506159391017800743712605284473382853414312665270331902967039387979254721331105401721159540070662633513327771618928844492647141746816687549306607230019715923795810978074555235878378775799592351814573922242167727859000050787630018211056589205901102611831290411752373237274372285824925013883419018204769552193224857001855018818145384875565772878124664193412539155252555301302047989158317333663502404876125192531997555777422102682888595535413916264386313093982538496766979437618549561151030126192631522794472013545718920481521187644218976827813049508218244109252919000626940779068092629219664750240968141163576314856179442378727974803822968342686379305394096803948249452331136592597175922794246725303972781498471212832875174203721390409390037421702118023778993209945202584023450823728067717431958221288039157849705034181440423678089939476957845509950151146917627962104422984825502283177763745828266020307068063842158666139514189508145040691770141226342792870318119669471405314683934139417688128659648265460550415408042763177101792284275419275090858921633068710447531015671329767710969072336510717967924410599028420267225869629533516759775389670247501349706396012958657127422875249217318529171711060727103419079004599434460446313840056578876987137111844038445113199534595803632401221796406711328244059755049274579324482512971175834078794751078922096091928131470874129561116589338219713988947427657587887506804271241368517205690591482264295375347455564238043898581240027008173693883057185471324093796965520194993285605668654188263642728825990499930416614838807787035155780503701024180449946972882989605767013204041955950494578832543150148454799080886625028514902696137152460438397304584464960621726998223357231237668771716220627328168484011152300748333109347473132083690018950542809933268860384319937697873714729135496413179980756762024370535040408707692878116668465184319626537397574909755467660704357403715127328821985260929328137490877373557329388609418451399474581936830608601732594874715250998823153317107292123140301779456871402011690512336635251411629834107504399387396125283568883574154592505160819750298622812780592007680717023709195481302330102225565668298666547594123610859550339669393859363084578153880088890215084794304621990154641263708532585054674631722761723579428403987246322390426880254444545419906986624586471265015779959749873082703357596794772637113597229214950099078376768488386331223389536975852120709855044728412285919578428915945221271494837380431617510667471562336536962397109310802830276972076529349297446620820937303914733951100757655879036195592251511037639583790363626186482570967962815890876304583813483385000569546894328251754918183460347514198260767927223823420090598183252009781528774664943292252490084624220750178479772536782443151509728544057364953756183714334839819398953889351522000596077049774172237347862157202088216236166409286430015416500386610505339574211808447945863607816966424289513962773182366775559106446266748874919967207945355496053380053415736525169187810472326295387589176389543920665512819072908361937824978479803196691030450939043751216506310833247386508553543704455342088448153094634919468217226426083729399394264608562556944286052939954087852125796364989137828632881920944444258178324761251585899202830924996008702055498373546667751496231381003682088495430518214261970623598434588451613312250271709586331329749195413593040960777186437776855185903281101432413071307613013060732058170647971378668212758386850180678086961305513593617493078937615288570772990034034767944116537468290481477959270007018138915373138609113929480769586001016168125996755470964301129073347564902968764213042893350490699653010790307698002361457057913221905837024376506281540257218671657237490708925832725716315672086839258980310363800986773762547754482285698511569745294236526160068798020746813222880089645460199259878005908493088523565628060655815239829627649006694496301406539891661255034106936184649501743655564760771209732416572509961688349734483591118645129267174997544164378449926295049440285202541862961892901954104831685191396228941493781970204720902567615488266497305371472323961041981806089339621603191415096216068212278990736978311957903353653167313710190997329099231471238631477038501960654432026948131921045300896074029346803897490838403621378142071178943345528144857216292663188963841766135450689892114791372271397992977795982323404426526132754157677278590232833534650055432678239990765953586256240409226902296264899553433466369877255591161728778729925958515369022729925077144272647025307676748333003686285343628264620802766140515509077326943764627620988267577088756352099062400779258787682654823244831868102520108674648024443418164263552594659357401862168659917479150926680748725040789211652488344657026294343544767844125143478126875467441008450241995504097146491234069858715276328912635690923089083404946075779651748621126021638829553723985055005165606343260566614502967241188644590631804805558401975847875540743677217241300651769742425284918770041992864729014730890813253839518565475161274191185905939257253319619968570907137754827041929591106935650574041835525997457060240894930752135628565623759827195581304460609945737979119662209340624469743602354822291218762853844885978969360886161330095707261143944928335414789626765403587830217066558085323931523583011263838146423776509839481346143192263473847457576016057660586639551849278291044594453000422032742883637830720689544866079961771676398518534579603587191885931465062611022046974905230984572734234417706386856106325662442503979362262735342460625250016199082616789641005493788964919356975481851044866177469674172212957576760359254085410644481440211204777128709831398160898437748888746287095939474289813012980013373924874072050441791123739033862521564921558243264372364159106071666583475294764780645793490790148502557302920672714338481908534171820665841409454526545382098114913548828135536050165603818982272108798479566989171655558220610317825560512294232632490314423823660738794196300898049636125236093186360400174519042016126813584075510010211250609548453815337714150672439061027430424170987033315371324473465107894491029130034562683908502091312377194479445835688447447833955975635735760886270616524327917088219481673254762831510803171786101740575045958661728923971431989858044153046147674286819986130164792353621734808573586729438940569480286192033551179039984495416931666263018064221782060303200943159241992979249638962102984975399381226321102287838067640252547259305048984149268790384965903620373545607547957011004791573736586114456581559776097969420961856318518762048761159848435463834544411846372011703180434368467808832619378565362161429104574919821762449404735073959130735886563606439497774854944616436616744964604572812784320229021868137144092501876073377306705876963505455992683734611555715477293728999004566017643925261027350520574211740955406503461190844797325899383226866222749010363590540993545785333150471592967473904215391131837733056220957691410986131099153596237384888736853727167389129847702780072446210419789053055162904074293138835136450113429742327644851440879281143173000063303296170481292486505021329054853069501914222373810594582976279661474411037951064722407135762503871999809929790598890200999535364654181575528233805604186553887963880151002648374266585083209931775462394691255403312284145780778865336913346388970911554383393488518313056165893266005390439408130849131998174476126512502043424316310024880881122849910854268224113308430672452145561303093055682623064463662220838918412007458887401678532426705575736464068692165028739568981694871174071099006386817129986362964359860241515420306996081403762486175956174933198745815387571965132827828142630084703025809488627586711690990707778500933705115128762276504783753156019381511609969636736099204802417417718343398730485060731063648969098163869376096676595172661362251944497901162442013291645801657429749273128891542964435511133754816012696876985504239878534356959800765081739538546787503949724757118614965792846648508482009017691275857325417680743895457347423516059992569054458660454402040188285173555481893953681688617626274068372799592231369979062583215804528757612884482613789031711071733637702934869400029063918383093085643974712956444087776046574411112034951164102307748207688714809039358282738498301943227093498902443813066226284533632871028549808111986102318924245399642934080893354172641281770285726014977531827626623880284309737423282850822492903916573801568585452824245676773380861419541317469559468129274023735825055727406893918491210396097596817179330741841772170502027748771135814307784063626037452067808787268579787255570049767991032419692433720486504958838026012725663868525463993655905114545408121633237607223432663783465770696492673721846844377664359913434069824171167305781379544926315490598839413140681013814044147611878902765691283583120346147102708439210509464667257088360574072624399913373126458858417374147731185302899789299026536612882924688844443024901771237650017397304485888078569578295177064202896416782599529189878265244687363972522971822786994293324699747227830729451770764044984806453121893387613471908285324489103271241996007947992707344244538682019101604674825164130015083997323309094707010430857583750712830266167660792167429469753038705848549978194352369687918334757885804509423638086643836075531862031027564245766058793215375701353949738573340893293582211956648301830479457410482358201581404917140905888713648518947019336102751540297110606465035996371441682423511882036775848758419346857269844689802069808751634329232831324129452491521575399479486472269068736817368083743777649572570252853454474982105508664100172193979387420070957487112495033491839790985369372840148072095910428830410596649642648852863509187832054767599805044890234939188960927634640733200852311641225595348268137411383865062603323643733529445564864373923650330950414225832921361497845030107669683371977923294785761182000711216033436170879971766924469252336316480720997797473731594041548720582641407838669813088861467289443129747850117283600081178066931102445163551798018493626152140194123082708370701366424357322506491145189876033782333968710141110304819732447861836393707362862733339485827465665740695233956710123378252858348199381740632773652048026166102455581323980439321991007816023163509674122091364276701212501242793524297570739501702375508312261595676126799193328193352979139539471428533967886714063164406283341405279200871786388166089452465266866136372131290833802391933383434994803513932315011996982406085363358700712293596666549406890206198732769075155646125237657576758386741725633952696655151327151753875056042431227753357785232928048090133409549264258707386405676172977041044742307550789354624379137202409421767432393426223319006206536421867172818671255858079216621770400748875849489256577863993141397283682939802654461088523437699458336247644558003541537538954529541119214259308268250728342614352135164727899859068599243666934216638417508619704353182321885655738562464476345137025861712890073764766475162332828003590542025791277088625814849239857414423786864251747210211790647987437774489053246860985714388673562479393769901259779051176284905231499638345654120292724966301375867514534976506733421234618269733995936145601774726398216756567389737370707595448422314459973845706774892367034291533771712783611317564906509580122976851535881028921484603241308959014836648815455715704139320905365358293356047850796798851430331483434338469464456253490588478556969607573670496719467838541270927419617933592179283627189088184958179004393546204962442230748873239972324996178304329574354672588848702116339086697444685307193261050995098690585302963179447536835623965497393024779562196692488324765340378288572006482786304333612334626358984330542842724529849449106542833257977061178606277455718571076007634553783668572380249027189873104193896078882744717693788980308939445708595750373558739348855598403895178445403514807943063664675260472986414761962002265520203200349202967021872646132553086367210170818222305562672491357073851679872440864409479591971396069064153220735781772483400953681958704811105736410203135411803560154696902149744425781525607686490085798707664875522901434492417705462281099079427651637873639183026302378953504824951824642055023978989443139780202057493782934741327708392010604135334464103997651194462730915006347198502765103020057601175094043841926350921896273732845072131013917710963435516215802150417930054826435072984345878558501784379587202547523865571197093927745812698466296878841454441288896803390540637483397371970242695958221124824829210193210018499977268789260330049149488501022484115838863059858137904710538227072190265667454360515225194271229053543174861881421046570831664406432788805732127957573359151723413964136095542120754532451496716926978424587527206039749345112791091158257618369422130728700048603289916542586457763503256178803552429696783511253404392043730861280896159034656790265032917838641581211057633869973355497987089416968691666918048843247269250559706770497509807332383017708561843426125692081605218182464262707010068119410454763457051648165645741551629704242445814609537811671391145995462787913372992244462676894994950796574542666501392882517233978649341361297410641151725303675939985314434875238886266896797957576447046867442999843581619710548941668234849279955842741418136457257051480523248643584543922738690649851545522397597358505651149633872046459544312535917637924730914501923028455092445124423505392913789176526510623718249946716289355184486220839954482096642390293012490690654437207328014198677008601012127120168347630063619770739813097180190443965627045580982480100390002764666000377362269754877836676874108966336296696774461584463850008272804485460976305086153851089139170677191598456266668747489885564635027697500947622385717583634316242721539765539291692069188095702287397815144759030186956339913705103778433401287055128053143779518832092834989346908457424592312205489169589147095247719591944289309540814108193766128143397093181266035572724207495901829146464538711835875599711460303226880073187360160671339600486430110353671209907502931115858477183309651948605936639450619961497684422060356966543625300141850653895533623527779724066226801143410239256425808494805539156868023942018291039768740906565874292452332862592039454515155170877891536648954697866573374379148687177883187382205757142970533764582035191662946866832590761833701139549677526169773212525378931000183170201565336516275256701585270950295620093833360675216977213038469869035913819627594118278187807669584357133341319506324901526307833415879300254795992256490945175919646631070376058006703223044465868147345874119137808071836268974438628891226651128745701934944508936964569507939599969483194055322107820075643556213814392912256207981512916297360097274690487911724706297690700777794477569007357813069826573837812064298642209993788922171637390512436415996321434125016128777641334745390301031575176058378273313517041164686085777459039168683270090804155383972206043478355337893855440934531546604014899903521790942534518252066684187789314767497874537924320893552253478196365123873762001184412271069178799592806533168053510659717314479909203555938813473046653449117334868717404133786154776728532969596963655730618826569368502965400398371146321039222705225101524182618090455222557885085685800831033779049396898165081279364964251576174567892668806613113686891970478427918484527729192336234618361959234540752474087096442601280671217837845605583804083256228215403447597036765766297031119230735847878491820449669156940531840851004267555896437353973622685673403102035213195291058565939467965087944944767560996219807386161850649015944679079805780058490846740455332703638772609906181716408219354978985499910531986450399738060284688727091709798717859492246335346438854290130030847626234173956935016574453407269297291794501594905437946187209549931500703322412595421959718007510353791299678939950683843849745372894677975618276438116940547042297545543118064781877519687824850151296034763111593730221154991209661479479817501028114466472375949152920764901105988279298729678074237906963758543325684858649910118835808250800999171000595943282108507991814339630865410528020947696794380939415711789879451509086177800052124167635224617177339955310757757434218251903358418990649480480312631170067859813139709971674793138705174406957526740105130048448416834709074309695387369632771663149345034223672506269598302075856808334053260275828592498839597079496900265642368249317320442738744706699616793636876820070276550194144792756196344217359981854806361731902879371739521492919417080317928303387705976343052703104993851303917531323456443084043691240582410283430926996650560886368984685471651803422866153693130146900872654774929332805278992050976606856013255583324280004200769412906213934352295202902876383394975137406238782655886359907620561859158506715944044259739364384296045299223977187526999792097966233941509421582023085245417112223640010584762053504025062746982108301107675119127255942935162707115359078428846251745672640323297882276383632320808183900270587832821088430139182749912749385991677402107538248677445059836334834800481047309348138273666510092857644515184914987854470922945481098236477810936318843364251618988890484809253795573659419403653533265238184440067258217261754580828091667911407099403211070920912249374728033119429294425340325607335504557686758902651552249315178978336632841575683296414862113834006036268643978141974053585533575807690199799066746986968689528673194875518706767282620596090967340508192217715338197023037014480088866293012415769474971939461573055153680834765243246882015069325466254869709273739509507585793067703823034120211001553747835152085794311489365036791713038947166794326558583141894279158198359674506086454882334646219340481650865666487093393733002541371867618655435715701983851755477025849894380675100670049589651696541204440441801857919707711751281743834237051295971899722620307178590639615587932441058938231699597694442109648925636242662288548452134845925429158455800283567505289590673538646040886899308296010632550972367538000666471661350483591632935694995395166424368085868982476738301917751213566101504083538188477412779156979267075241180176995493444760262114356187388241378783172201236370803442261248835136527597317506228728360529449781786444725695869474421568020353763578164799194656695099246118422317913917103882612170489314912353492865271092411662726175197398812198465535039528054608552804066221647110043453107058168915488300231977235769392892913931611737031487706143865497897108204052186192594262311943393152122419770101225650748596971530188135025579064550334077163605758938818939840679179772885553617589794808127396197461641876598145933891445702941292463119143263409695533419396453540129739696035971110920005212266840495103683813085469684715443042045424887926570868884560292757343010241017789325189015307354181025518147697187793571391875756665554824749011034655642426492803454999745741987664994257424079737732330685716030133314533371767618349522055543683181553055808441721723500217607944760606998349144884171341981062001962774704671712247240610246091113942503906660756242030213605771559485849555351817280843776492764513025242528590432220770427491382686283243170450522972758256376129816513401012131976048818491072621741705512972497439465221307474188943610892513870592142528881518531617114863523278232336669145859889957856962538499110007664112798344694162740248693421534441772535030194617697192341513360600397835641313153783444939926884533149308290018280996619723034392008428464183342231052278590636052727117855497327371770203998472358390305127328859698442692225530275009189538801531830301657482591134136154423161609066257546913299818019437783637617553809817625853286217707484396478948929078608479215770715899986271330815280564292643255641372504288143307854562740477098087103225616787768022811510191819182286739164133232062472078122088137798420937930463528638255507147776179242481458647492658184574044355979165805722789550049625474979337890515072054553451916189350692753185165836001808615923853965269136896985189257643461132068783097929065610933023048144377094426931635810246700614433374240156622029087170347419357610490448069345766564926480499179043216284357058545448827195818783799373084045360052333616214775240171340002602644009007301088116302739765561367829063423078431841476538506877839913744019660799789128281759399667331496194114803910891943247370341463117764408078470762367608447144044648146741066970474074867417937772112137910261493840278388087304379689614802394004047702541068388585001773364238759752500449042434384712059652469777436775416865257146684960506773947929188362144128045654087674382319768169893751095246205507713080888674288709671381379873184829331857664522010034346223458254534583583488284195696065529537061903155031304348680988225323510451772523222482309795348502144015732777061226927785394089407313464292099922752212015357545311888217568238714914379928571537088877364540830722264064200392403554714652037622810372426756649685918575234845325826606944298137518879788015336454711918390024711998431673214506171599207440370287539272642612165092732137103352845846853409508160829683744494344902440252353968111805951767026221228638413990065698241978442657714355705271722980585205695727487911251720648960882360938236372773949634687675358950172408629786262946480895076039337241557196546736568309179451239696296092270523299902778894183482029705527675097647489323330205406131592055138168274989165750476883905953292281079418886832968463783317834838453413041865503465994402095476833502011009468896715462875101481775602919098204486494965202880005156423511676323776315727712998578138050668066181113730210008329138930152864719985181619566584773632677890933693357694209145443100575480765421600699016360162635347767869254776089968856833141242196701937383351745913293094329238123595589233281428414156929089366187057296478043725237134925448025713752630902041405216970951625608673514814500508125908675167421445809227619738493650588182605293814825989844765435404748583271460967755852508129415208008416425559722363316078560018657681411071903105606120188878586439176162069862300162328419417518771794055383294069797518533131242595563576402223731804079553941827654520870691676053851385388516564766420347410936166359090344015313483432113564712389004268363627878591581771880855482802489196243832828069812239091421736854212885277212561107336023078651148251050425924327829616791433516395329483573924138420412068555112868463693298915988063924660468596057529220822617184586097181574284203997380155584006774850407946785175325919159772801147936975434592642153347632512261430124250094496254420260965507282463200748192674936119703991307796291495444600640993687967493404186367884260880651469122675667287260589330944094530146932144291014481452960318263149497785399887286915611213006856958145646786547378865308945650017022269983301488511537247377493990543496005657906343382867183143006278586047950761151635778994131395823951046149150844888843244492290344024222633273770698055819980138906461502811349268120472491162938991197480771733603196368256711596068146764476236510273288931472046129807126320338185629416390929287705091149588528198176933165292581694280424901546165719706218451960350799605835530999372136050120239729981622581874474490545981813597164193725887150795721635038202804131556625427139213044815401099337905700109656361862168826031628802740900345060929774453283459001618426960004044437922624441394298045668187759146760220954626880686221715495766759608850242891990060992464457288002397426931166079059074240594462105488150976414507164004600993150045745141249731695133937161886781586123621942112869162840698469816060346165656597587101364309578341529944979605574306851060327482528088945328315226994491360260105873655915913208972655527719059185253215534199908218148006686462244066765546006051467869262626802444977669129440995389593052896944297213041389122419338418697212552847148427146142964223553928569991752284495756313347989909264258674563981428860957916785032470546702551920968174849227219008269353420248548435111108660833837517955047464058776261001369254162223354160705470419410927407233441723950728093529229012650394261531469159897255183560777650876108285400882085478739128989309601549361614105244021759661479779789279900790148399607731858226551448826679925437580474258943557697284294601152301572036086503293195566962172424051084514842126134528662054536805687902268862892558211212614430546922007833648446025119548792335505414664849034689970147446617370130911099853745279162474047037447312093397913452554503173595348552550400483923894498105928369425611608779112985815841282874476468719009430809873092195494713842891182197861297180537365133606150845787696916200450789787833685445878601234743736976962581286415416075571050457277293286214337188897070081094466043897852221245478429890624611867365539576707827698119449973794849588269758753040513536064462028724383937999842991626703901340391569536931551078806653802106352704698175678885490733015919155738487673685473382554201765832143173164627995884173225240053772602084033579430711479654123377634931958171483188141701901571241961869624194512642730438598596041697952653745596807432796866720600647562932616347405930182557709912430267347900610172010560528285052330846601435765127911109906885038379746758184899956444336862480416947999744692528778058962955968244626122443398744613492350832193175400415207007828530531033007840757769608149621042603132226103024670081140957566861197029980300799186073166017027794577026398154165384912306739092656028785265014537327919098025724694932568439902705728502078920001270430907016311452151469898574320735684264589108085149680919338023871600535168184662184955374674224405046267475039652321618442983184483177333840355771057952624902002635003812954099033990265472773545045234990478063057337709102924414445350720240937763583997801248769245162421089845202813228292371184028361090438302396063085276351272098536372155787772276174117882342809925465323389081151033671968220908105071267000132894940265688153836633799495865297447745776347748613021332473176342896126583443682102188161080005281353694199442461024027025167132602062243773199288766484207884645274398231356907111000111625268778443378885822598457919777495838107257252096627034148878230507300093653691253611016650107154288713030976962733653022074994065712141419249864140486597248715402139991611117420683368096678965783132136536116059235221207441009015027325283191884333952966201196377123319447549667556641020810193528100608572307529661130298822503304685870605269907247316596642350965035811127741424215501832144959667498993283930840796387947820785079989507351360113228896075680568557342054360465737778888977962214747767848447072391388411912226561767220774284983926701505883021196000583087535077993044514392866666810629360157491290937644237426042607090141436600542223675679196566834474310319118911779308393880770787075238995849310037353053773746960758723417685889455970157662568072604943487393241856118444308878049703250395723739700408501045945449479805972037864943055718366616588941510794733747487032654854403405234817258814487571498891989847743205488940942107591510469569070304520325319763440820237309705205625983393899929517726383349902142499629462009073358181271485972884056322499495283968613252698814170108822291367171921136629869944221362431066605674508204903254467273825137914107972552411416583252629602399492002956620630495138160375970417232353760762780089372668044588050487292305692657555053218216584151223882359380120192185039456536795619855614788964332951685632667801620743977673053342709290513920401535648417789668400221173541963502900209471995103814997269495678020907791238193309584795198696030903886847632257182240361735539705091502543642927372428352089159150001316838146982047101242882910845256483997042335112286695286345294269021596213907624866106234812547735885411777679007002901462765128168042467497678022894646454851694228962382490919379126177409132877730497659110937677877005378200180839580701784954142258040937927840753206787325360406434886069757798114949176713045052140515606885763697779479035975557306897299299419566315097022866851344085398649250261575463882676411089591888179536505614402328651663836177740661907402546573550503852906022047144089158507915331693508216362560256856956169424178489158544491264093209396178647487131573978513926538819472103337510362766504573867338986654854793402932930208153161713418406653857429587367513967506986835022973379005710012433103615031122106128258529235196867738389565286118716401081316111679553481004598097306084844524662828483137480835032387895999062918445518433524774747907847933759639561904791791825280455245325750600505339906369200115406850720324389275242581671279950589393933905646970460007499906950955388846739405652302027398051383523333254534423702940190638839243493660111796719852778873251243853902912874675376151382450577785327164180374899930091095066245118560625188287381810615472955714524634566809545926935613076696629651585955013381680738566289280249430585514127737904010013373888334243833884037865087343064187349595397134110586792589951582244797005053869108656312517658554667802286006952076417673227853812667299829542929181810587537571305834038107935683789534668253887151971174754957542998361476721911144662992537345111010352644795998009374685861038483465126584137393692536146052245616675201948205330323794307538346051939635372309981573281495816533984026412432708757147343280335383504991562419144525196899807910230966209186065935077483206314690908248673278720266974971457542141450410377973466905023842860851349044316713990971552637112827811145439034888226080377114851599232082230424013180724487148764335434856489909005805776565372820840524675484127708623818995060304186029083546202755902291037692591186276041379257181357185588245819445806604516593192392357497272017814166890834006163588391614397536468575857189133132532233235582905550203408562999912723132628403265443812325111032052847751998109372840609172127363314898572941882549122584543751258238989467786900166979802428215094052459678978977426981235103529056227492587170424513921627719742789903879848164091384051871988340847146692211811415734757063344113700639088404148120804991837240558601926791244947025718266577038207391438708688938977859169048616991168201980950254900379137891479542908413141528683107305704580436656324749490770647372104951953879628397235790531210746897468891286522064791186482192293708249555454292955826712718085382654266583792782045260685514733683810530194470146134227951929749366298829961086773838047288078824484332752207697595350506065080314563466262315863537383199368285188976628310904158196754368019254140670270879979438733852848196246413015808302889092123647642686901191712991100373828425025667693476781003496137809926337836122815178708966269045768347329637769457485155338625001234844477994854090219887300619533654951326806437210793443095407232680457138200681712874338254327940897433501780924422189996220560623265491766972398192405314720942582400574593468774108642891104370630992395711028923009769233287130144671129351892141418220878443968152138359284437843305124114415351775648422615911558150187505074458622351704139765919991723335638104253341438508866761288883272856359255743244836592579233109098690182618443815350775729897629070177792080298644304405715205918606681720327928776778418674993459878126698786382311373482793502066339733535598093770796272838671779235426659132450312116718733018804041276916345202827822886978722336802293659129802094034197965661476410499702555217987746908294956285299130485334656550949496704409306136053460181741736088557743218859934366587218129198504957568557816462466444470155032323000407438034701416938214291580007352106137007477940426781723116404799120973445629529594940878302847388279490853368042561961601302417301922881896907178750506294588967180598246175419860567205892459656093158813213089418931447180527072856665842439439438110084945209142936868875584610544867643144198456507262872716768495245335330656207651654859748819805958963481452293355828460397830361603288045931746416625945309000187355923708247005333202814824486577454344650515802548622686215644853308484825304170727658763808068228501806337304232695041748972910300828735160578983124288498248464126557224041300509645242070322018516342012782142566583844684743772350564817234778996094723582336297177467232833086251405057229367928987874757528882185734195832110095842604779732579976685139123765971502623641595952167850759973554949146346704071177371441924023043476362015923499021181329081623721945407880547581813647711345921473166520566936238283065710195525875844696791537858957749103202324456750870572638596719813642768413453581195444782946145190797842916206747880382891213461896641090594799849249754538125942514833594016247947718110739503248605337591563209829699201792942926925121810971753858379732260539446223163832129494197403792549408993509337552588583008419326401272786324048868942444817573690951821481564572872811462636294377978707171574097606707946234145793963562680741621569710469589085541886467796681649997808683195986318586375510891435720537946810190611647822774701070760926680532865164283506185078299608924072813290646693818933735788137743185098943196934831736777449527575207083654745179062973496534341366761124672891295555552182550670660615567034177740739573608468712846397596524626000272856235002323757026671142061737212053657565205564581706223277094692398006901887910833872570456258662648690032625621229906687223930524741620444713114841944895697311368587528412509620366810820269617489260013391318609422008464294534685488763441156181592136495634627196849271027238161805697546291349413078235387153295206536749847999348274121875390072999878797135733488648760974876501858982105609883806972067509885883796064844573219258039512864242526247064424002264107940280889092192445155614622459142332373641193692618324962635586210102409680952601075839292682525872997748278462456378619651828953831735009415749572646942347111699472848267943369652860685118302515588877390637350745612287355877530611024305361543732858715494866793000268603885327006735476995871058324200993346573797288438747378542918022525682552413984615592553630538107951441614929668119338224179242209840100197980291845526019681042603838671774121493007492453491408218264871715831844922934728247460979846681132053459318523208760069844696683470707475382249190475699803969015967966884974444590327305870896349360994702964848437786634314772846950719958261644454810246202111048061609711207952081508725636896908154883641052048480398558104587135543798645138469305024001200501147574931830234063284619857653198000660578074247032892536830036328936791589525752755965555186014603963760636290835354028279726270668563715479256342735324772918556765535948278572262728816458664508695847996587601575002080085315804102490953439790000004457265178614829844506710354597822202483603438760702960870427824991282882111698015872440388366429501375973937678201958234439358875898606694191221633079626500578402085722719216700505986101102814682987963502163063032403191053766166724602534297216891485245801610031183799965139593389342878299254434932765888795836920615577283271646438020319068467695822036746131892376264876688892783935163780011649781861578065100802291403029075615008741338314099656392881460520528540477809189017185337753265917560684130936745549025973817006173177760108048739259034407239871150160189043775506539965388276948057276419906318052021525217612456889332963118924703162063068515455766291136834982401113119813335714620994758677372760469510954948480760282931910416768734181838341536692030480524988865853454797887471226080807118347982696263115881437633999284616849597697961249664495085916512484325957830214784728160998828257650369747229985084411644858915582858546939387115306834454533397287641400765143026264677175787994964994159861061630914129976478419043632240166841731161331234867985932027979906105260581067276754093805499358135804964300949174691293907319379235803857240596253582022918715025994562456979051590236700828042079067984472634033878609635573341074890703750505660619396770733724064152500437450277907630518815016052365166448467088176604923266446868547473890423186411093870612416483038180696759988296115857306326666633648209530805912653709155562363157539258344365715467972491697862719990724242182469378969606762234521126488839216781914621810677823192896507408928477615078300304510817126278602439160857215669869404334173300178852169362617970128974420071439554519317142121445395093744568874684384977848444958355043707673763763535815473822507412307074496473276170739558539620896049888570329692518841997812490794469401328645137126054859298894690540200335686762205663646960192411569671962853832503876737248669163903253516578956818548289053657190039392488760330453714094967406635052000858685664754483672493088292933096727970544290417899336770813315555010167469280406007628269111228016494754092558390568739849999650621763795284041228688810173635122288058856045060415377943027818846242938772580796549648881465039076424371279850001879887827918265462826468788258592087418480819775209191952739553093139448850364288500021490924158793153299429740279139466660280477451232049338647761861633302133933879248846558034364619684539147236308370861916228028231837730099636211742516178230099945623531146202597097974708111796147701549709668196898549312897620119897424134668513886254912446648024067035399875506010595226278466043423825078161490188635957222568655346243483089016494614038168030706183531506527144930035512383585516509098746020764716895751950312406468569947502861094371379509764789903927169198991227709507130512193935071903956768512727357814777766138168115192467875635407187652899926350210832084620655136027052310811077819874200315823542539628049852431980632446635567441554982750099740156888920273674880712132443039988235968820282894639965362774369115935904865510350917775108717788752800591582267594428165676694295681547930631886031342029468844732143687959146031891235734931647522425071439686400913335316491768490237245144522109904244175705572244347596890944975496960134716756626650148695660368865524097488876060375978904945736201124602375593567837825784481949701229309307987109372474868541304107980676423267258284952334861934077799137701880310853708036509413064760186986734373567295503542309690913496777702727152762016138790840963402037466508819223149865412327565770294560540869216741808174434171322486423337251803293398725781909930498591083065990782362644329882009509090726513288866003571461123702218311663356017360265739916186032056630845656587810511556454217390774258720518013136280783641404293185135170350820697972397156498225641870739937364686389638963923352695588996107066174757614361310648597526844851877317137234277703920173306589012658602486234287325450047770497093795966136643622425536940523076817220149258858560129621021325373657492119770215888588525740404188609722364442853507270639539718664412164983380386679765417614326874857008779808369323781915756563916979975466610964600529754474222261719126934635952165042619789531990650167889017196415149810366419963476896209197843198001059541647114132014926345784920592702415000157059787859142632670733485369481128423362478715247264494433883387685917246290431265210432250841766498039333464633411158062540888330875619632636724462205040222663081996662698865655558324767630824064840306035577862313578563789976793912923714268687588000933298169010337245978644635679525314147855564413070746993407075985821533182360087219385584499093787952784601554771624447238502340316951690657784281784507319670904639076843593610203539718976849833048048540398032997729227339556080468431808359871288201567591605171172128797945069066158877325406811759582892454937105304030185932779871834069419898215525643342648951468038403721198460266005233697693358128380052478902939805065307862172464536462995148498075265357951606089300792239519571261534199128123080460567263037839962404264501587772853230561132694505528494738353953986226513250243405446073909980013265062523928702444583914519691204594011184738588894271673707345593061904605267757986206153613635062273501046152955925366912223286108227122020207068231737883846483053626907445360798113360198285287376760635664154052939463094774646291054227364847267348261556054663482665866840690743933990243052432334102613967903431730335683984150836914627769472613552091354633904006919898715767329283717391837827581386043479630434380228325286085840350233104556707264581357135654480153918470842619412280850553802894942538799432131104223520694390907241907690062796817308861089953248242776813817353309763917853490305533873432812343021283943839107498085944750894023280218681898658471520444308529696499482327574203938011836791463152788252663364926516173606477244820566126501995772103638230900741833942494658293436281210927585767782514489057015673833887874022996555927634236221763494908577552036320748108137552330068964190037715479150784120024735664344013101045328137089915694437856359826395664900758923432990623971679733805684555788940413244107250335423589724891915395370110319062186592664066495526188744211142334503719308165374360637812322607842481600687633251206561714808705971324771450622555341493677911092082966979540288965328316878125414397016667190383833291096893917669098995253956727911598835487292869993356943266670325655298687679929670613274242965424323130831321767574730442295858825512570087307116508727159210885403308918104875126524161051206076585991991063582780283171721810088331998563185559544794608631818171661549060384995598605092983479399135977012206081289306827182488788638025000191799119787761124378102214696674219939830703918168408975911567357648792045725326832018138189790738214675914278929497676075000088733737850101791992700162067675976344515379276794161495192614890484130960482586793154079972843039792360416094756014915622157648385295752807999975254331431426508128299566089999403521177058246833094665824919679444017718269262586856052509846503622575697450390838728459860396006801388203066668679843388915465448334573333817788406408133013852216482821488570819163607076357702141890209806504508630630476425086769414592323099261721682297428909201312525288565022184256016992136281589406101380261078537256494148664770530919404967999328966386646647939209399178140767827766771502155164070604175279811689303201673484301415460593557068547893218508042912996898243597746350774668344603406908669424709989371262758711882979354233246481649845730868382977995488519227878499984110564828420228026968829252451696108040164127382452699129216838523300551704338724012437130559813432668104431267817239295064474729521173304710715033903508735212574096292118044130533773230459962667435616686315268112157945050383996168683494160173526864176069139108692578217248169249167385807658810400671868549379151391238935398554302033432633602246639146212791683882166937039555872047759941831995958047892463818388966032513293692903733870315676527984133795981480601297339175820432936204615483712187710739590818044648937769966762818286515888113231420295026472419954470836997996987371475590075293248703456016041997073732468333679129131819240203243974699384787469964952706574909168586473766049295562823102323117602414207453431458737275263033545269873997190452832767620101054599322487244158503090957522793442274149860609882309378933169745514222123919746511210902978345067073659975391862115917900534111469624045467232892445280190695902967252083847520355849960426530659130178416501432849039605566008105205709041018502669294745080401120311906789346004358135059010319523342082738111764339842231382926610598177610382009517811549362890425845022475563052853584979527994371667742227307489612831423633344739969162213158576763012113318613738517148661919850470194098322594540049393919527336630985608346817261187817305265336942719136524103631213706891765214090894776615552635082120687721593594893121131425976685985181598836379803658052371096208557903160563765855397067487383135717365295349966202317992294732530017088812009494771344333948798172589502045126600927452370165693048100446185759195829445510054901056024557706577038426941159229239972787536010141539596787666696964001231163345022497818149121596048634524858721874115156042193411240899592539448198713618519558885590899180913880257472373955652624293382542446579335394208071982771583612320286110708200589489467807314488871124857749219049415632664990511042313431395839286171520376653223655423945317509055457266606404538495937450109810865764604960587720403332266452229081398486601822594417767483254468678583270999844946127829677533582576678809773650239892525127891813974672307539463092004014109433183863824828429213979502918984444067762075541190799911710670310687874726220837432974273762387738314667581109815875102668519501517715626552224767875966200538153280600059963274194308728863567033377819689942115684329198817059217739072136831215483143192550649853635120028744897907171550569866116933850745417054448376730040585246450230991899489703683842689639466441715383342028048532568210366449687046454892100738016692522971180676782126147219218703987973148383354491604492321877918448658754499955054967036593979753342689369831925114158394981386707089828754209139669918039407519798329151264253565461449623380102622288339849198289495536799048149827896574557220793166144266912617522525173851832897757518148726463049191551030231268790322361948179672908939924537487379316973307905941926121929171488261065031296852703659518813855601282680023134474417034326204055112809561097655394786039682417808796189098770301997693829799841777368606963792700126093733106425863314633007687892659917572478263515982579247295606880222419057584551562133069329089662809404808958758349355335061210334014370236993455440139364228085793990869919457545950335782241647607988517083612376138138104287183357773314524222681002548053433792161041294412397077466190478342353696149701756658797454216442411273659784549946739745110263880924594510738980960653665578956057664165449703277904003926140456664024323731368144332888687702159478499269930384821441091808878845615698763538845405481379175482060924522158718236715903512501394387214469982942679238947869625048486120973267516099855330185853663500833150374115299973709220079836704851340253647975493027908927593723349768708605899371552373999416562783858259307464039584492254982935815334279308057952147657399686607170593711913976979670537990900065614856436519604427155714049377875147122424924439906333454606410039962313111366883441673994487190774644577783093941813264126077144576922676633023754816757704998255053866416469199210739597680997414022026038569414933001923218700797687142568572145978108982634630872447139717060476292698714341637770579424621658376518523066696213225835829506708326372925896118351152435265885631972612518631569077379203765655477634285155842163372073325520469199543082058979713234597768692368021302724752999480678633627848223219503466734473186337163680745715687635422811899922129861195941337023056963790059968193039889001062042869859485697902718189059635734266054147023710581193146427057144863037175309851630563228704438884591535177724995778059203903425089840748259654160975084194323789196666821811847510141173752025443981507102967273587899162575301340875337791693980870386962329013347831816379673257761219741160996447767161115456312548875124829342522863443692233819617737868049681022348972856694102031291941963211011676153933422321411170956741670558616921489593653169443205104142302063991230517804716477249707698475329587650870164909291225395129204764027153362146728396659209849514222697048434889538599839026893771471114953216958394524760261526608223854385686875822020362300603515041831654054321907789276398800394493769901971405700413424447501760213062776682443800071468754159419731837511059818320232673625451767779693634245155577106763329492984441327673338413028057416801174829782204114514762287263385388736783644982887790917834364762107305172499170633176130357124876497761575801363588905212492520788601866496897161173689369084852900263637761822473071146839893184275609983078826136065063823342256436447997133096297953351714736824200808346823919343516360365566226091196204985713138151716538475597429436120555851911540723921405971580990667012633812346656425445122777330123805403982591761042779973806323997162599698388029142728863103795188165590587905922449619077046920384586409431619866601487986894548591819035665727607340468230468075579880599853608869684223082381297651630485260799583507004029705728779849767530119809834487381648682849312327049910228038203511970476350953366602142126938312114781477686458991954284445469658753398538709985698904590583301667340293121276126895680346676052580092550522838794187681219628173254466866258992127583688548793886419046987174934974558555076030866137488904109029300630276299532806473445070955946713443577194024158961006070435568434556473654886691199134478248754826163293714199690372822083212830761876231250578494555476472655658945813348144723045472378786517357454300532072071499438237276955638846336060366272902956878963065420136430602738015212172371814137842965915766797954571861982051564493942229179920348857051748516221985182438590863028335291327644246949848774841223903522461034088191667517591335813629851052659931725142406020543317196331324481531927732184063556698920336381816023394376947712314262555757395715623290312350904898573520347886877020886834650528486997169372468268521682707991526200948654185278247576881169973030598166111830336916849780483859343219309153173036894914790468046775782009154920312719832688132110762134245042223213157978341836109814030055355999512556123247256017658510404001123179660088825263579407505731490579206136400379685834785690166442748015693454470636963573617497104108043066726810403259562568687210389642290714737244264612703945665805395806789386934526126905015389459772363205796337869459273393005584242194461285739030567522525164172277770292862911835780076169410722656577484211123857416502572142435402781932154112043856582496268863535510655303397897525901645032414647533542852592205182518129322080849681281136579292300782038484846122777425788969237675065755484042273093481198878529353571168441504898080777074869880976773768980337995670239482588566918800826365867438855189091369432565909667935655128477634858539952591241805810810845518972331301457057981767664564685872748019150095251061402706196895108198015794255396732486835516390669468120731106440181580339590191333750373812775803637705535824770874161005811030822300639569888676954207175346372019423985533763685237484659449680523870955057852639239545455361388783477967852515990902682537947179104001042204850469203936437710657910004004373650375973098906028424802425437810433402240910042039743221502324248773456249258786698445944711399193823799398288533346197984617709357239868627504899331150295270504154508630596884323923552499672549081860093707145411133301865713811762430108981218235293131812768661842384702769324986114386550223341980091620878639870638527084248408552631162234660762722415407384887004463885544523612381622409464252921322551113218815902168882912629352285781752359213231802335675120838583774185801810904659092018141884114326748580553047961897963658610648405250256651571670272032428363537993389495231364621594857915550220265436816115931392162141976463004553682413409962278163053161389326633574823471813043451156160611939431528882836698415346950376823335646631760242379121923490970694395513504230392893453283638029860052362729897791820657829300190367758335659988445137836521664419596974207825339045526845706307829021947343454934926236006229280149343861213190179150192422012261656392867368612460585301577484047926412802510687760704677270346413542283031592189340678178629631505379505924643253680800257054518690731992909895644395468182285763649232221911343071636271857319405137497176377899289918543559626589539956335305994297403642703505624393485920586706436658269517267393685590175400144973034612849843442777417241092473205684780439834572864325081796733347571638460729586555658063208806705462360477277556594368843469844622563297626965911039868789492140961608156967230404134745123253732834737188181984251876380966499825444408717228166623297904957635214606800598797021579621709639293639557761368284761468171558058053718730402074279757589170754966721021042423506423821988787531244183393633548094407873929220849968882868306941591828294032112435951379130725146045106722074726709896602847937831526768220220849490275618780935402925183807735538434914405799859251114581234168963683404144556143819480966587745945551733439892994320290036093841284667113521430150006054893720667506251844372978558152314603034176667964569231855382249148051546486840683499217741870918440359712957846465091181201711619144370776214364358575655240053529048188194773221067194311438358628133250618678394784646888783195310220021517738576879566623982753131497104950118074783146786772523494378548409701447157400600743573255516943915886182477853987402708967551439418291729552176542947470011794326276663713852436972530383805807001162056334258841478524525608846963567938448972697593193278522990758368630019946094378018394670803151484857238552869167660170043836957776476356831819312166243509505592353044849371410897232513308803715180472664246075480132874447106586501116515996274657208084277871333715100876153033368890562372679324004886250905852363323119192367335121837583105899442540334946315389477393341449761291692807271721256904088883663962988353405161059294984325919312065905273477967828618250978936168728840838346893656496457886043772251812802701165776297509098676111590365045202101542432345823684836964895956082150436544841637997904491754414800246464941671738965705318625666407959544175410964809342360869669790825864667199059867837715412838906346008018246260958278855376768775237914762533611449609431291130016262486207019947813083049890260514479124616226223282692555151290074123988979716517510060768915901634026906412332630828901374591237388482448296545531501069182140840562945801988280190140802098820410029639222299838458717408246376814983764389517437300200107067267429394636806595658863539257737459892248450050887792167880394466001750756379732105059913085528585022282756005320142265974997974896391405661611666852559135580265259324646820667369776576335386270598187772895141722411748928732836511983804438346395799747707829199794181273489170442047570372982536811089019074481597964050776490827976259700964912392196942711706000369477231200649610970673972299615666294609579475720861629871449500531073924705415649466168116356190989358014680101806068500978285125775026750183850963363957354417195649486912415427353685995760349749529786175404795073290411721046104598152949958840348734710310211396544045199879394082510402605133769174493738013820328794041546929909149499332733441979979484286246783231983000329558347435200267274877406057469733155687413021809129866139647535274346984255097897132086305029736599276552555980645979827495510672745706972789558749823991230411197849633209945655839831925366897426560678937415542692113714611186638192414687900845895584993995126408084925001220709330713760954164010794198688968528241944205365266102034917657139884786001097074572127864362400265122651516272241206617832011679831878683527845351695723494062751445787003289693578003712653802349396139279892338470364717246574611732980130301263646902095954963356471227924657039516640724970842505888594538172320320436526988894532414270370892320234707417853355683353593753262852626134089362413004390295864188130302685400451929350550029459821114387444303776814099865898684574683840117676571068343215448986470107694799303026454170717936762094487015665498922271745684596700017615904076934716977124279864215560367720373767296786814633501698314616486216892969272296179176193014789715333777530688050032009922913873727278449814547595956487680584766901386750617266280862489874648174465764746180394116614808543351943568938786721541383041420674379433418840262366092123173773954739211013717770430225031432952750624505655567882947189220150352392467868110960795937966913848671900342374813344861705000572208435903635487447330509553036152204919873162349790212012621372935826373768879823416422221139463611631361364060371949860444065871101188122695394563073513722940556879688230695411043951508661224199190393927898878458119702332929256783647059378305168983518621939583867738403105148956819251937697982389839771486460134571226861298126125902493765346985833388064433249944584664574064660390357353646443050376058985240374574831948806918519380704064692627798618226896928613613710379759576566666594905239820610003698716759616498884957782122081697513371674770983333004570637185850906067536086354107954532472102211844190258490168513471658828542428840833648988320830258270456464532264856219277486852327526584379657472206678289883259368886331280780826364467765473757126830318428277037803280406480639101356446798093367896681662443518075215621674046501466856466238741916002549621899307096454420967770197699529922279948376495917512923381138042845975423007560884457617865451834532039168648874416328044895582436668340892786261011443067034018703861257882932491884470866261196348030129121835374732641493175707651306431570063523303825357582605209395649423675753539129649158394134423483071655627390330208071329156878548995222501647107241615251199227982435199637066894225462041856484554891742441259089271369268941867785627108632861652580359754469389072630891829856214180216775021340462860629563690590208422547099976664857852728087431627180426704601250782453873692835350780696994472833797026984805283707502071164452142942566175754502155924339556433195921616089862271005469905353356432017371025021799255113416147739863720283748095103709401328863071159292473748897909714806185527161226593221609664155325093746105690745382542015107385335006982907438364632862370737888146913647165150105320661085625676183036662711364525760258647583252413794286590548449047317127455271290231166112748871760708638734176065958956814227368230954218172638587751155429806913589424001942923577374336314950229044434424023380914168851942436006351741982553571175537306220023316179269054174309104690045572867636932197353114003684561131136179707851591530776035862671323589937598928783299740121199199067691755278461640452152137539861231459370842092111030720186232788365532052197556084685688591957248583686904914572101344241738447247922262038671900065547710010897689057484496046578857614969561631714165785554693592566274290456438048750654338455135742059058423707568555836459308635437241176542685189761595533286925071283822701911485654170286808183187840117085207096439324977227149805167736715911202101326528068058609327218001696275706165492886420989106171837348638450609273467653682648843412456507254332037586181545592339877666137622874189101040661764917866911292720072129447473869617134540064795416405010756723901083718646287065246232366382401918180515153144470693608752550561104124545925900835507653988943360200864392703811566951691716013935916019618796269776463337519271282365496599401311620847734641364444768040153194154558655999954903938307903633638519333458590319696332606575551492076219982501611989344204195324491749200464118352746538439464181278038085431789794254421212904511765813060414102069484160534847034741735663089451815015143131466672412461804132191351006641209037797584291772232076271877583369335542811104374118087116663225210312426798310894881011215662160737340820024267184243435730841903624598253178801075037732055903516213229312479753232954332799546891289865135998714029766080599195855062063825001389581345430345357910319989519787068254069604411195516763762609692135058017827277333804354364576277114631748390034022314795613620479139586843864210849962028899078143642039223379459096737646333140181068420813164326327354658841458864475867656086770112278054519608948301487548066065185509017235896722304968056425627306513855526268537839817124316187273213481013881079353650187041791261756630323950903910144085623756492327948172190345596235229904490400875767232805651235514181393246085162478098006564795742198010248276443848696947140108867549629441304525419183059216984348581795404105911252441672019468862248435677146945272254023932319638477161425739532474250873592559289388577964197666622560035437412800374158648377287558016035762969661501517476452122804241834266039078304520462920142800149503972059230529281947337590229406037056601149992918229164223871701045272184956890649965428198554550702790443764456109533534695612959880232555414806002482671839094302073737275488144135180176646238255461845870997981671888390167659530261562880073999450405911885868069572691703436277813671590297793915452987295128970979249556419994067448125929826309486464195473847869669903835006497870282725489707114572027068883458227628754526721800449173638441438299042487194307440917877412035826693650161180923825606233865668480055428446537170368301158747320329151290445085257574527291645701877911051132146549806247397810786484648302128405293138304749581989903363284351165910701349973542008620959374412005723129687814825224848295525272221673904002747053165273072908272098774059558854728230895094985740459901463068688562811532448345577116270063533863040987366224746927015818105499893681233310086433794832184947704478493377632436824253998539510214471787677160500788280773577183812366203126676847635782815261398924652878524869889015373807035858194331318696040437701305539182059792585474475495335477175435828583745099854888501043535230264712196034566834921376934963404483105891054624186497602846195387254631133945307469852394019393308860111002794882092595631263403342557009162443689901781989829192992531017214666093445877514645814549903430143329146362912864195081450567702731348617758913383467046205827348905402995240397069827696483539410062115740994263442414432852197495902316814820139152465896320442560684541150894643427417315227549306145203431752716682544622526289116253658554222332232484088132377850646716252795069536670383102415791647670732943460166611380407162002236809452000725079186580755150852924906357562164030647432951265319083823010188785609408416755693281880498857544533348205634949355175757903170393203312221665700958071584589618134830042076273986860810302485414705007531619259453513389585043763743649179072811414518611664907311780026407519542996536332083651858639247116349517389754040429517470937560297050771849981650055371681573787328516244581117102629096224873713048438022788977758732559007455874268921893108032370824360512731863429515317586768836043278673037728595461542741701448554686433853282608157218560477019340509052672975337628783542150648628675307720461925334193231062995926338954127358404624386303878761704609657538816748146717356434284271475744191061080770404908751867464597583963906552111507964312379278261473660814712421298054799384273266886844877064701210437742134765981030429668939959099519728584556625048569076432256357699223537167361185272073086414366466957795034264930729199570257262325352609706545978521897557434390197154896174403133959224179219975441716648449501324068868248958802439500543315416219398455942757749645389299564316304515302387165129988164990841432853248625082067421790774134042210420378338693803390768109143552571219087161962737477342652716434662240182633067650227131455159102714431103665180988181275406687884462862884359455175330615114461476872396716216515457096359971096146203607551805241471407835560750969476900710705946341610503998532859320294101543501077534869670235003365414186375188897219220642929996565578120921853730160013543944421040490152051050146242359215300401252783099765264915428870619785694329538150554476067319366915870435557875273925390663386854028545953429324625451316460899002281051440183843085276396841164850948237286306094336825131855803385232633288109153150882899351894330751161937784703604955122852876015663024529494862144198696661697413680992513413444029505595041847012177315378605175925990657158315878786682240103141177961950112840673509385054023819429851140969329347664336217791418588415901513321338667165958167393264670943500876834473483915509615736753392968732141400679605360604944026537165513181819207494435145568026700505899079273036449060055461647015152788336932677381301048343663060703351019291756347378958973610496892579111979234657241578435633899170117629002495172826268595395749729245659381353115804198076014740064559004410654405732852867597031303484953724542566348381652553045557066425900190827169745307688680448335360013144751192694191252219717768533675073785334294185386639339263497788022779733283855473089288855808923807713796106190971615469173553635497347678672863408785056392269326796100402005255405161826365481960131167721262613823304049018976613285457515992880765033385282254332246984084836117499392591158690168327485333172992528229648867752032369273171033414507760996408209594294062310437168057314851673058676226702871337825886296472316613796548734613016862003336817016554028438081890336445851823224544494602834106571213190734404187253914727043237676724867238788438558009541848576869043719254338317094542587053509245346691545988584578862046792509488184574584859441813229815609577716953728123499363623834265691137904270126481596038539066468343289212856137775069143188795821471210593476591265933407882206267265297189528463771756773025905998320477702722956390595964537475907306813664580813575881934657248213161172205006144518927858330352328042391286277196242077039031037861970351899323143702180397405944028332754446101899055611282065034025718376188209720953814221656247827806719021540130318815775624290932928018496778564131365817750586547901358046111434820004930169988342081515533018254539934771701941852852834386197104229113274363223912554328731721731708190363833043954723864722072325890398692826217865894001350530766524949329920840351552739814317008018858349097954979855829220168756280201569797293987159462663617366167432121275970300899751377723909997241993421070889731438049823924886370771551165142672698932031558914453997133990820856611724032281619145100899984929986456160261580723907986224581460881727631659398843874164724618744029186019018689749280714906332634268748559428024225041512251659448556988155486851134661790418144734878567785736095748979573097575246607299959371660339268561272234296029771075481671066083433478288211555203468864966419155243962503835008793359624403556416122374780125812195626746857161182080462981300876270296580995611313093931738905964238232696724253527124602789542840790933463739124606292729970995629765798472008684082707538245240964481202909837161864893842897973460456966080273442114148695450239667457865957649442198141842548759729315174805528710719317671702560366646994562056056003953838075577547722583555605074178178682947692227156213527088713978172918668257279827744620198267107910091913267916250254598761547020545731160775482317278108484583038543776763263172670495504398833563155397814578167802056338764511040910731221838250345501356726520355036118775514450617565757842920557951450921126427350633912798022174179950010452560678067221489852446923152695201665396995197390848078700531166226680802773028449323608486444718245922449473305612796063771737624797890325746281705688882438322962529313363404210410845815677907359752691201061274258833745171783097109818472405093117583153026252390554926583936121971292680673378376567929995156194559524621266443293486832998108300248316789318594035851056096072653071993380389947410963533457534456498190051841227971471174880555599836642280694800954797004315746925929324581212029376892443024275974137521354450725428347024481053468157019514965364231994420771800458939094380853051584101992970483812736220984370940811931285215998232034092447101301815543717864251354387604292529749864848083981337946262467337906529045474818335111553924433428003864560411851903849789811552186498450177658141595489728656585198580892405431188564176173720930394370252796141424506222513192234455606273207856791004683595940157603956409341308071850350325907045923104793370983164077830301116384880079916239281804971821091920499423443497362702679378140280103126742891037167167725362309452762464122934527963236823258996870758425699460955705426275612522087903367755104475136953814551585305635866508900485909232546767489181393360095086425021332694967034016491186450721742217819519720397056319463045087020726569677450473233792171217407580295407682811325058222211954905897327044835427437095649700991442017650103482577108659512622249744451302953327390155142447094101529578267154570835702868197048006734092388403635630265966572938808737063933984011192701890205247518921650117192340531309305743585175952678731875199236144429057741455165514437034165689590408931347513015791633298418018806023334486204963334033488361731062303494468195518828050944854490259033566438466483352161070241015630289028107205625829007695595843503968767403760026382312068012131753143664428702659287798383861518320255894512059715675508150623571417611314523645248523573574989318473320705078798012362993346266330315673635422754542225040091882079664754906508744511717864655566813364419615567145554115933865748705640644563138084296870758289734710386471851349302531291411520956306072470099105375461062965259563154004152993911473399858036258693615944213329718506414188907832581231830671156355870329915268321822125414494635278128332884201027856333648557821599802114983583212985357701799249990719015327512159111359082394965071796791819471104925298005422455429860396657159616332082654821974311643871101792016343866038008947802689060546411849094417678654963134816540398170284242600058306264730370585334165076808291500762860755775614491935001022563885826117326956812400311718930148261355706684760824990476546764649942235499620553161389736943667549937294492197139983116272774635608592838561354796930944529035533436788554112890512118910829371885031966027412231187517635316166754955616389925386983583016955019584318914628510026686290973397398527384083960474001343830411074060537664956665915716274556414275571162950905851828686568979819808616859303900271149739823719398150651022972173679469179979604131224915668662400106194161670771309894224954152473691408000580879807559181512108948838177349046545115492754282758110777972956403633039813013094045577740149400336287723676324475721913153737345919773199657146105858955775488464941248718553360908288757932092132378493640804117426512301848750840124541128978251340706037763758766265098029212122180219991382587607758356085892221850553643839379282491376221296991767332762281280579062743006998094233593341689020891431624274030367580339170039700235725958073177110457118740846619491570172409175890348192998778852509598522589989120840069336247661735892441522950444285762897157625688649578469798151796669778391344868408693625103495032967040608939823414437116161777508709409423657231352273398647998660291125118225217313589960586295863726407725998393523265343072059965567916279696672216745555729870871741900437381714950962543405080248819896972062078679127152890834957464918219447526387523129652320308596578801651744791648147165828952141785904718791223707689502902719345425001043422649868802030334767638149672210679502042033153237588460075645897104059454935588108285931773863921457929924727385118108228161351061858884059605100251771301567912878864392544510959370520171851935386522271186162957058394358088310767304623992218832414474646395986097558083469203747927802386456060055933598023734184959923633812191498055811981105596703048397833251833700261267903888674148843704376265104833920023812428740196174751066642261453612013963310621864876224918184879570645836485228540472203572402099217837427417807133832033409679205143669090932108963402500571051285065383047054809230638073433757385995778847470221436261321090495625859989004320361924184109737739868257923693969146173762765273076005743209709108935057978605746078088590953834886646836314796473442845654252743011914219682900094417882522989717779485166788073764909145297593942167075015344155295553536320859655750491174390872413059689377954918490608808676630644585646152704197118590418790302065160217605869341097800893084803637476394471556068040336677582287009727837868192726291712191938135476548524889796388315681401464553159280966102228117672985499110799077894570751671908037546737145523326683578254497010565610338334742990641308130859439169832930264368417169270823092297831060231680447151280565980035920779359045088251139528993462061932636739870642260543214430375033319670395960734045604123235156740685906243992012272420669120620086986821558885268507423304534533923114969036102785651290796650497126138270046783665597390265657830610942334482230835565878740713669742350071559454869917704441273581536422190884024093239754739619209773691103236291508495975580080804606365360659392900526986698828195117533971955018313660728444279477409745040825789877914059279782443925388608714299672894429930037784697140029507790967543950600017433972123013778798935824575226821122177548281659062738864789981694196367134402584945632758759250987951240473011875260900348215402160218623387304463249783279031271364121821749093269949417727914383990183968332131684480793365443063986044672160969818704336385499228749346106231843086035321448220546135251908701588514717367539540227949412278734526502700894067199487520006108402725486304260914573148272575707825382113874200534593561974121188657944494956281699376157184291165788572662292120686065273898722560505404035643104620788345705503023888517659425988312440996310763321665062546370509114674573830155337030307424290302425167381945662932298790498959222468000721186952452762520988025331318375283026113372277968438111461410612330330635923284525884176590345287359352621101299906289986163211295783139923019747383509727135580730569799109530797672952831628224338966703348819662197023827685028940586869412548713346102809341173255581512753760873126461401076005955370636076581835085462360694532677609752889882366161447647358857908309995571858163153296293899474040967691367140641096271271337610251847822820537075527393642294423722683881559031081802992870782600991752878639535387472175946109747163178101904069168058891291323797423475527886235850081999380384131369205478324513116095327268658641037286287961846165686858824865699117849469514416312399566323741385403214592922964468402935754208760219527906959257004209387510497342067183181565683222599255286534433979971262508408057120628810361009969020662794147840612500415478686987524948527939353189138336799128366802828319835443907738379625138591110769624336019904832020298084285520574068240372246918001665401124265016972616436381841222936608002337440491708807391079453697253113721987372680419594989694711601356449351077532561067988325550316478719340329881649886192711475799140902592008936843348763757396741585258007434455047174866145850999688089618016030810699315173022533043430622083182877533667657992706769159633344991625473309430900290430109250017374762919460259634455259121677379767395621872548651171945520534865989442149965577355556085855402921860756680623823043246965632887891442096877283988297705137130892739518151139695526065108514707444869177212019596114439950064797317951691316881090101856317602871644905546786018907882884110044608193437226479520876792750556133856455896431001358796363027585267126597486484667597145196740834027169557524134425531849717765260358785599475795488136533753529040406088941656230374757921055338319910036503389613506926508879490509807305594900907633933426639207815121041010869630870928457179686330100227677466306173287624334327934787274706981299487503542663266315769185882392037464044839069613788503388139738664235197674911349427180247610486148680249635563038049951623624444038578076759053597740514268940025389571899903527952622617474900719578678288232455825838104733349648790305469837700846324904768356562646207903287452452359597333578049052608675222909853042774046662550741387828438144140589426010494366013368710263707035354759641256189354451061570186290519572420785634060824961689330841650061975051548840498374756602856794696712579149013283524449859769389233886803543923626875734404009359807675671287484560100832112182658198357698667245343301105237242348906677027547845848340680420042610192295687081665804599438141080533037076990724157092517592555154939353724945759337389905255056371941260317582335787856945320555103103872641218668134408117693361035193768297776135797500432665256034914332505378616234908806949709146194406519991870561854920164347700889504277369363765285939586498421703669058421382920274959692486385645039729973374910470720345218900770044091358689911006186731263373395857053692570013733240432155260805706732891118172747898678266403771088109353748620137024443406430941968584887204299005935105431958548151108943015263817888601323277654203029065962962126271307820313232933789943384812841657562844933389501069415993936032358854897676801129872352530134084247870096516750043755319318883882278861624801677193457760456337786973451318539371147248722212089203024805036869756393312029841495933392513328635843637828337707283387621453743405705510282769378709083736506784495400554118752620302537792497082663425198216569486834345349800611825848402708204181342948922586246026976053374286560049520214840789918570908186707190563104233488242335662245695634116122942050713569666197209912611847136272044401730103832890785709478907901299531343099956690277202852356493809717391872887549080791317749707952738076099226688431775734589352124525702814114803613780894073563884761696589686014381061632037428109007894274901242096085265273313405110892150456655381917608593044988849849470471004796959724212551345175739200706359365396813220042169342518881057838290474776767718482787481528830795708271542189741508455344138354599342830400213669076578704538949629426529505394970994485961201349857669181727313311797802895392535192739897172995549709074806615631647887694315273078996786604666833163230101870565872539040378385985541113944320968755054138661279682642088870096733746103988430896419302040513715339954884326676799686493689117178711882300466007938392406797193256337098389105326181216850933891622816799512847775100403063576206564603442565895828066550058569528692615034624334182437194269685508306451929204223229623763573383198311647358921480037040081194766202294287237487872970594429224488856886238707093117329697710247694298190569615591859515819835904290902195695920667567809580069536043933068155377062936968759584637760369457144254574225440248759371985081289439507128392602363600937113241205963468871802709223956343474426950442585259420194693007798139027983550864671136330415289577984734486266260715344886175920426035155873920361645086379078484691819370309408864270876272480275780189448094946360880872694719575811701760067708340609696812850901812485004245075399216490061428142449069755925239432279329018517841302774256894995937508513343399273705300401321718984595143989072690668212204470763985783831233932057069261556452690414496776325761303521548603030264533929121686121446378919959778156244549399772366281697138371847662502471558257133819604598935105349716803560830603456906061257599537523524871703611312322986416466139230395547182147117549291071123258890703632390706218908599461197916462013994523121299329397866772138983617070549020465819473157947445779650914182941667845128924564694108027763581926373261263494353536012899292980405288751947580774311162948703219855373024610808668225996604959409704976209930357441400326318173025197307560740549034955758002767553229481585429858240833429759782954976698342550387309592074590128803808764274961462615410809651195401657205987837794110935946624560843203594768524970098980327612355740315363505720284526619217955715362489660213117988454449416791892836405801709860564989200047247294066126625532918499681849391884671511224367862313705755261217481564660955364528022846285429687542839711361561391536876855691559593190818150885429120408972961011475738719800104352550829928686582766722466504936456217127851579986924257430010229119725496951053522083481013528183530302923380687112037752601510697850019033425243196433846069462803291535300258866748498493309254747036109913844398389884860334176203501736366460173164725396668578486445088118824049071345579304637667598210248676227908816475976966554633470879970495808277597288247263555516775314132305036016039638702537758795052111708426321613474141486753073879321404024405806412009961954259056651056497289482254914139093996000464491903137571468901048984216247858189129534118590556286380254129346763469344532279708659282877170632399124415671810345523668738368695587018730551568588640081046710875807053131653376963643197206639888328659213435670066840398899226786212615166779230592226587387530616612560426025361978835921250727919224385033762087674274715954259982386100893839923001122505767490679600345136116682567388526178235804309811718895273244647752724598983824044727508247274452430308246659395975529927480246024291053598255438626659748838324826584883459354760774286792077931068666076810840768066947432828911764358847993861668534655345737240433682077044462141568201872105276495693676355927655045958279919231374036471693378356503449974913624831893018133893395258199127814366935906372877451844318788262582046178515623809503635192071672493948660562664265755378937230842804552136165794112660422620038242025150437165807384930458683930484662975041938122892852577571849790739554396138091936962261096395041012183112673495701659763064534038510242045382456061095442534573026144801597280495218190729265572288062054592439902763084598797046025758129802087212611965883765621200173549417855859843501560035158735437436062242467422997976933486512778104460409504712892076013825048177143308103136321948393593674789533841227684356943843909522037814616266560967305634853408999885258354519010683892903519357983868679408822230592523151984151350872047486016995096417957614992767999832859010445195052973316015297959711033000112360620233788976163949242624280433457711674712452149741265261639648919789714422214582512412674014650161017719446476319450660187949636706302555393360643207615191141540740834234434184283571568160316839431337562634884569707428002729244510692586376621511548788803812205473661371192801320560224457586984858107045951336230314437622916997611640550962437169284619645496664800904888828101106646196928368150298742295759083514306711452623343793712442098999052264979428321743738919470436764404358268418702484249636983726425259703518755134682618254726434659285920107222446672988332691668854643948911190291921325788570313990919258646382830082002949516511561929340128980928843058848515325583011870371783566416916319688204328439620281072398090840864759485991415848675153408040973063846758613489733914037984905858776039966290206967993729603394263752700074581563842370505888039300033488421039000576351144168510126410110845949567562371353019392991089233648509357995694859602823509820839877049720827424586845622315789346675543014362362424645360552760306068136704942945921356466558296061794344758979963933297226589433654812120126374323857316966758398701170736966629526817508342991761016562998560420589531992459495528552692314977534579315974065687752540140469568573570539021077297796302089980846732723891571078569130803655535094985285425682422859885245465695980268885683541768744043616620169943024954933294700296834636064326203685294928566162284524710704970967582626056103913507809113029845751397267827981556316661130767895962054617475999040105293602737017202952072282566949800275168640236416817394806348245606692688055786639104865768188837196537217717579363579587439174871162195424081424943171535846168840672105162406293456655654241896220914347285321277356463316833016286091461821711088662111098742328277637262905012534471243069005495232032280850834129979528855311548951577665756931857267175727407263635050546529603241623171128164501601996102080963432885403845709092876879987776563400620163463728054185437740279946608084644581861235484917229010312562639942330273841141097596281327560314223809730988922610029490778828056450156168820059643548766485458924115814537093114400881579703035628483980355777121909009589019918144750846153004180900044376749293463622228307093266923827070935691650349241117025867997373580260006185193700338594460443824710682060333439374649264986696449457266220687321561002358986915629805627990142046609538174402995947013139701814028196859843871411919443468778276325353710713232930509933563442347988669225716810703692839450364844840912478018391061015205410146106707869303277728684329618778742002262958157142103414582036354885477239923801908639883064899230663494698224198951013138343221017545933547191103432193571601930658811443313469560063108926656733768353862244904469852089979001412399187186934577707672498158342516173992599027891960367565304396913001710185281534367210551428325630781343142267254090042952381101313352073773858869125995761220186560569488070782909976793828762941764418869139958026277571881357916804376866860868393949909569479445093221895594286472298097717898868273843443852810933008945060836057828775441985416368025526289091291297252871856539560791722878575309441023405351269157873168231350050674146171176279701690062777986999029260235789248292302127832578607545440898105319376868501921648933857273427663604449103037855991374781230457317447171326921845022513889271100326039434233701534628699276907063679113487398495155200559014226750813247138711557785274395879635322953743283171011431165855727758806864723003573460616995318115496031630758430882229037334115238853060713319235350660767647294873360559809192734687895456107561830478979495473058245922408426837273613307782821020977804730225667312613251453903383981813139053830025197999317936336091939641528641645573356615925065457067711937035852083190952856444927764157196074974494047969993473887563357032771943118140305454092890723497127935962662061421695620899794321592649115103797918378024373652532592279553981609028268530875468584078134730571695045050199784013530236460470130873147412220966651271055899101031191079472984862248153829454558268484838806560884997820874103095439174567378365829232977346032810692656060505779790218440373227278981103970907144029501127892516107531451516604934387149978424182582160500873734556435156446184688875667349742678288379566059369381195023354511550518046712782276416103252807834361390279963448586317435474429789642683502804221775918101954582741255830843879439305518877511512076484484879270377290835088851247702766351553945832288011349376798772030387779214872318101502973544643500433194276328171226781364420191397268808602557375676181204457692378850106224262710046401628136282383642116118987965249006875695058165871142711671818531810054652475711113579415736225147077004254818355741144308682564756249192892889458870833186836403910269836966617112304127077099797909890797670144024059601181131484190601127349504847798446514848290098002844420035712037870713332851094643406550993091648153584492990632324034994434069891797662610345437426823450661671959174955790245040759789181881810173223893571166890069188614319260578770842862320597956159086103214775480075239038639908892196432599739961930608700280754464140055429634355063177359299087783815052354063315258293211950536632039995810751025615855256120144050125086201361554432225824563672886552248712329997350871355456636263583338658105652908599683886050100976588549532188091601536681984345228043062181486671481877726367440166018250260333572071045483349980234830781397419149655983904936464214125751845663356541353702475042343278955599394780530045938505236823030061018935316682838044403549182139559602374692922802467470792670935187220495828739428440699076396203322324985852540318569592502683001188287578972631732602978816766559420145301168160056140977843621626971045875395341456959506405754954727507591591835903578310133098977917562272334277532317219571602495160553593511054588269928209050461392275231221793801143501838180110324780663272329438499392954483394222864058415299830262384529145966197629020085189132603774896469158658419145607146818588994253183445281678034049070343132314255291709731250835063780192094658328612715570181063775991290557149534768314039005683984540633821251647526249667365664702256066931023394415876258254414114511894183204500912309565727619021392854958182355460155647966643651590509798874604275750545325127362542793711594793726839247957810141009093778229619360036110317239225473783066542810774247307647589204799849219341865799936552624042262985870317158650554092905797590225443380673810422946671635497204780413909611415552326449584590694062688806372247560506644643168941757516773268718956485222665806476008089439143673142567687930690888038888542471374264276993127188498146497399198905660230806907920387760892976223595881501647626030831044776275317461737379829259278845749071123076483229428801331616024792707206102173718697606913923773587736067469951537393297756424239857133334766627870243492127885023128434403785712359958175436116776930224835178026105321380628944823315751036237235074696701567869021167303523924455756402912925615454566132736604511390607967582294627853782507728624936902803180688425234573366152464856814397424757887066887246362158174977041762516153246892394230696157326962793496167938338684877211468176065602508418221340128592043310797927463260592754875959116132946464635516289793255042549200175758394711885198023734733697138899404384819815622510994087603026924807070443399590569236267163038019617538768098449228172293106619907150237619606232336813881384590336520168574069399225370413169840713801445208946516828572987665079104443582882979828418132514562379285118080635973462173927661196895411681202795991846686465880512515708689419596680837272526647518655628094109004504883581497654546413280658948848417803974968987891809930929513281485374175435536232613446404353706796141414653162486458347855295543152319694660752410520509686782336825907058956239958179582208892891750534535696107042763855165680586165031320232803523331170141951921458980240841514522654146941385775891387897362744925859795276612976447974908064776576314924975275478955619541445487806360514708142798560177519425694544064153953832557208185023317675474887085899890382860168055285849207799310166726226419892152096170783499454327179262010910596211436858822940762144662377447983490875610173744859817133898619424773795259984347076301546542180739626924131021795746684667053057254432655490792844238704763689855116268438463053908262986893340042124292867411862671498505549847993337694999062209537744596029824545761740851866177838208783765139480354742114386151592604986204547731839766449860334750972709236585874614745519239684626504362025308255151405224408065621764728396635733324142828847833286987341191918457444260678624860617249895243924416850933322340889736234711489852259857375705852101079684992775133127046312904664081180438306671491898762186180444113467130885771328615913189194086382064794245308271969393447266484316568940289087654390897405821825723322202617274793941329873931904425962727286563252469598589177931994261245689011784075107549678012691764710839963116873557773912270346087535809796678163190564789629833053312512565526503262977038845662892148878317183616013684041905361481270402224932238270864693668609803413293320137534612561752947952720253416277973467855274605965927345159619662631890550331909539356290689005372090473024839376953790009609663535553784128233132887982372417442275213408005627049211657436729701598984146534268333381097134697258311297910769502758988299840143894178023120074497685068458997121763277486649330635029857778586126432285931833345190386641188938836220378957428593980744041340814702311536308460950779154536190483412448167537199233881385310956962266396535204234172507385728189095955831899180893260990917179215146787930761209854762264441489753882529449489256672511107132877126416387390112649972809410190371198826789243386420115591163836187976063547643818476984704325873574232823474315671660824900928329897800846425141271234436109995281179899122509791192632202381828060752196224200922458269545843543456950471249442483699645778503254556191949400710742601752237971021267295537495172301869985081289205568287486783111157244043675121489085108023248711324359850218060419020749438773702907950442929875191263712598950993380907023220597574683275359133007954648769996307635551257904280766711600676748657585794990820618834179276311593568464413278952049312820739055377185675414347270101953220287676497286140995332015282280702951855320534498370077575126692102183541874254735133763020910141393107122444895532099500999773184249306151369508466587157817798502977772153456160186612104388074230823942986763462262402115171849118168618836287298022654904362120259521791702850291849283203930100956135158439211660848484497749218072348967561425445345261030883801282256722335818566434664685982828747285976018067387226238142331833138057791928372690266328067984053022884700236055406562573302358392520095312309664287702369999783947959753870324095217636607662840790163364739321070550719435572734181608133699825561110470754746592745268695731638775574738201118339325622242599136573531243071395930957705968498453635490893681947156580991383717914863428645755387884084816192187320819470853763901659064391576434947403765127060772704821145542242771997134273565561061552709857499976288639236029024467420796259732460212465201744510338794494778806188664918418045196936193242650381863725303324479939374262454233456954521531888060366741460829579483285547359704002580918986992494949564469429345021678489982136841820982310404276959229044515301502665722112959913312255413890270824168263778970194976770121640939759193265276696416679721139544734119067319854249912070365049741682891057788293571934552192945190812697088912939903194061900799057015827879546233629897722691885072884698127802786201978653811349144516585856526292300314241001891912029081204708853272886960407672362730496867162017988828408360868958542098630017873359030482995830415243348918544086751105122120419979916850389836911325930682645344195478825669573619649389250069080196681738094967034917786380954042651335005400383998650246602609805050538059543899025984781813683796276496815490716567970368528201519840529743758532160318274510048822828280440051388328401586412446028064078618193265360955338149146479836043005469062663480420286579277246658070829605015631385313315327622832135836588657422894396203938924724193512948870345775643306041329941893666181691044427347530174255401302696276429992030864383166017558051849972211160541018389560993669288411076022796890706593108889729857778205408232241310915161714469850323672300321596583165308403281604775016270363810708905160167230021603812892567409425854744689543377602968945205351268035270036085951610911655678581330865582698590719322803931560607236477244558483506768528626980904184257069282396852643256663279993269457418476387866436261504509423121601140135369151298885718299500083580519277174847545029259929858794490917460581108906025480396343316009703269752482742354523956178925308040143524704602828246837958943495616015509406322973139454299857542901154682546774475466042581270014879061236647597621673698171387547179947447144663163788003200182582646593548798877995869943075728188964355838019375458783527993492607767233807662608487460401425266581246510196796305601635405884686959556231890882657290729003068845163245547297568181657278639316029712600898880351462153969589215356523659948382030957944347252302969445189974159363616447360412088042686872217865176723695582539797821405562543774845879179121668898932289168024024614825205190714845353127929001423078275132577568152470411341204005766336853566338379180816340552491712936067915786636969576275413623216495162015565112390446515010735209008976556300748838290601090780765765487074654761562369387448810826151384973252443956331783289802535766061152828905023756154678962288377447600426046007870471135629476090186534531754680356831015326892921247427581970017202336112217990311855922927124624508591965828507861461121852089904776927596734257961564106707311063944110856536003273338641919253887524820539257412941254712239702667298631922773807537836596721137039539199515869423903800003908752386412760222676523007522543190065774917983971737092286351356322343217636946766678838515059585207076517110099987802791053758552876715614164589547129145524731725168759246531385029303132912333178557244458445838991055312428168016645191591385394601459614102668275653072675827157826472505013797365983891249279200023366798469327010712877870296601949991929093108782744544050408349280505658755858639835186932399933154332753412707458937136909235492604129718909270425938942204125659591796072400702231941241827424842958994635052376950131937056736770555791549450337330158004449523405097519294113790038985136935442075650814567783212518351284934403515690900644699473508075465087815304924044812251581195839459797736479459958644385377134037832663620723698384329946723152858817360849303238743758810207962985101142828266284792833014544115296486082040623235702638039226516005737120314105245028372349029993803144492432057151020245893060298455303305610990012763423976516568521957788994223762759737769130074439389497802313841730821985557201730492505816331521660628837231410350746431875409214465738146266951943426145441498520502015318072046868434637411041884014458209927212063823269591289126252793668946724730436181524392441456898850708843707906764404651078043456813331821285918720098593900815396843511517585052527917440055783495766567172523472670505125970431165786887023164127071972979861024143867820381435514238804720379291425841022717379060546085081689933095013229290548146016958197082752565816511619619337717023944030361540305754679832397548623107253635693892365308708600859015664857740074476988008834750134456950143771030893754577646151820080299707934289205436148267899195584579878301573233819922608552378507005447009760501808601562867581382600868477802909682893498670709302350637909144211105611280525838565461677759599176760163251248858459080308886857817855049184581779654535840522033768685831536638982405356049353819142254529345650085685806881701385141983126944429957279920317263712944478993667318780734975202512301599438032148206132294000139945657537462212289918227454268894277943112659830145442247679481698543736184191943380901451735663496830447794680672297586057000336926500343723186602707873956761222040249343816592648229068585345750450442698821949020822647865791349629288668257176387054491590343986188333053103514399749479239427952028504519541529032662866187383435612473916577483100523913214769865753150455269410272068103666065455492815304795294877120950771924505560766797963864125069962713007697232350266380392148958379391511598995301482384071521702395291746656841805443783167846970058151594329264088047306845442358120726924194604246310870749988446012542819366462275522089962456345400554963411840702074882704954620013827966162184620199564748441505114211457362042702340069429603432591745236476248559680997853378002020029445058592789860691318018358829387119676186307633934162508309359748910758128042757840608136196961544694408808475514977218320390529561228423441826249998426642388618527265925298067979071685322732949713064279839219748080176404007550582817288261095277566817469226826121215963302834995311012027485828879090955432671953096084117405364700584084753996265562929172282296749034618094300292333094602808258137752086556407743265359996860767419390716709471547147421349637281879260551364149604194559530306310089238864797409237041370511062098396773801322518615843839689253181005101097311337518661700415104475216777374143022518625076915506411949610918104208965290678906432042432698395923171540788543310409707903690505782721030518214747791203918942183428855726144818116436006160475374546387864397410212713264232789046014634516466133200940346718388640291973199746590154030950553888129659071717835530166482174813178810587256099469733690590204131198290094258741656420923301245414482902027140826484358879252621936689113863548294914131320482837565322559991775738242316289003909822719728252295823693587413343115220872593882587333569619862513008140878819960584188971890159828331988843920610738524879842561407463162290509498204981187164954946410074174859504083951452150925685393249015947337754085571011518098202139039910621587612877860989101980164585185704496521350680017305170897273646682600459841921036979647517494860368003400051509076355582115910944552651443225487456159755979669840367059287524987649477086486105108935570511057105575439068738458459063582970887906993110519750594802111023163279907909287311209329278965803401076674092443380477122542532962764993104963192273741407273348617945570878686688000971089596559554999662295491301549454204811049174000025470705114556966903371629979724830653665885475632897958275052383813216615011759112455404304980198485804994227215207336457279419289913330583970015775544644889259484514049883061555973676576624186027845817717746357858632334098697558276790733649505991180677407653483065289240703511004855267599622156058500079873831552726780948732660473371422962264007959584700712967362283827365658064454457803610641948477572215229157478332962202970306497107714574291070574689360034720675531682497256446846051706243932019578824363391766648856213511449005982903741843445971454005330005516813345633725302639268978417811340173925761566834080235858969118636155886845656033731843727049463105417217537127649579061160740015241350155101814277363825683203497673691129752280988661062613910976467119891972016633018950329798634108794336193480339244234170294703708698625891205581645603939172933223091989210592682515906246345635250501023267248798122518462976817146875342322149511302566209777251104617239908807390836214692454107236202310999710191469646159197887452108919630405073930544719832385844487708508401133692140747630590635778847315494230940728936588905732426755354206985315177673066641244987864419719530598235741188326436827526268183223745870175525356936501272872073515277086427152036560267110729593280149818442758294350013923027630690285430247769250291225082004724842328066673767785777741129146690297805926765525815055175363203052259375040028950455346888140383344626309433643364133973418012901062809930716718967589132431669124445206969645757357705349978889758119468039639703218177934631252451179777033903101648635511646894405857965155825014737617823405912013112534145794679694774770665508590376175276850785520414156327893498709078726625676362603631402854442376160729483856634816274906097609517259027279526648724209461548136974964230142896662979041799591810243536434863191642530756632520239804515548263484157119816957335248926675638950603174312849782985119842986831005692239358318884782490775558742846678942144431406694165562162940119090791696379214898562821865351629155977209001973189716502499668520964302919649372249477147325652905544739460832675636794614253742299619451227849456989530925134295154523937173590770082476248856721764731176777959917471600090504225584355121315145993966708061305293145259531821357320278970828410606442857826486008636697203380439633582027760680154612386274084616799538101012679601049168621250498715279735929935710101140052456275907787479956885525992951526774860193618122905261069385941460025785080732592625561094603120346728048614721622718833378062435925215156738667733212016497550643864901119256021747797057769713199834468314547957321495242323292498411494370217885158130102184194593566974449934180917126567933890335418559119730472828698205521693005318592148909708114776723161429902174827397954202035550024525910256317244809271566784373197951039291234419920746089627178964987176960471936908294437731271529045353582526756269935040513808894572712864297469424476703461868789246617103964091819172981549169197898242666442290438520106584182214826846537070337049733241846418061578521677052982599549316984113989498951456656072376486093966345416069292196342856267321357520367474190988936812992314460209519830518856084467918894472304717273719144851623532284347266211585153311059284094658944177978842918616413768144832889509816888780175031402586422161437162707061669015805230725122187919868981883571645325041665016331393622062778086632567725687175171707581991751219694161270983330771844397661429386563129560826461309914618715105846540993584868109818984793949906834622058459573141639984197696377502385235452687050156564719515692443389547301888419161632530824860274006648764763955151480328220265821571385795647544454905273370360965882033110164853851266288183465139594301337900847489842352910734887462781189951322564936561096720886245802023919460459470631039853152693441987239492903256103232815495453673992092175496438443111869985344454115374221433649176961840832332558309356760244400316157229975367010863729388638749647936674604538915545849144766325518497735820064506514908468534405120898808442390252772015588880805643592178708958628043493384715463444161558152791748791245164686308262990535757426398744229175182614413271826014955717872216291163119523293659227808361123510485232880270426411908125024699773948549493984041488086552090174485663760628625539120937835177562170250614464591126987170752604747507583383008448557159139111949763275538192023573764134174553529397012499391894069336864619416032070996253624276850610304597801273211486223296437369260514693795713825091577303771956239350187825899098583627520181746496660124038897935200977099239323093846835226670609392489486946567515418633588258936995208511444405107670376426962100302517308464317611603639096371248357422192303116836903069200404452942222845942558985435635511897809269601107152615176186280750890260301604396613328831881367851246572811156482202146349556359600722084528241132033083325020663620280796600448660450565110096659350750749695362943434113073817008748206775891445919332345728720450440188730601858704633832201940640124660852803066834674619844379061719560805839321540723125738889119409819215321923258760207237588304014453851892414993998582963985279863650676758200015152270873168230844737148419211231158833716107292676676832685036985729025248033298809271304247626678942240909806540356913701119937685898322712228809008671274050835593780855009551837218528547938153820280945436305024209729327899627273705964086489972795327636366064428724048940829469942434755238249064240705437079226289618444032481494723266780926117791390582567292005050258246128878170127727052357904372280107742696989268615595574930074326754154361864612006790754829022199458515815021359830666380023524790188390011870463746576933297187545786114582178338507292359476788116707287210499765418387896641707483998939056232098900106294623034320184725313487007587334606811317685772136626432117382782956148184450321724602394324988759593218178537762664895246216351397872316610374541496332694076643911858529860637667556946460279076380589624471251115613929587050566727479862324597702940669319877530054774939092967873061877458472793685308645383752472402684698080633479258868564516221037155135277004251887009219661524970845419900010663696116608560766318102644644479502031852566203931989861429330588330483008387222717026670722306088046213602933675375347412923515125794962646277710238412785047024898809106321616892314641002103743282175484731697356685648617151273852588662222903271491935716984391491957872663525887675354463871732890533869317367695039309928541185607217698535464068832435769921109945693576609428871538096077114389063786617729091391491055851201605476706382589926927201048358843623817082447678408449945240098211016479671619166975218771429811329479750105602139172663688750929644656144599739405510859678048412688291589828943175247023311367151750751191910657803705064851242057308429181037086697873668236168523445638639734106192368345045235635881809861151373366290717974831079846148002203863505865238348281425470542256783718438284500407932550633846375948373290611467550109636028760979149500803859484589561299022031792261556153437135844948101727748628363686991404213932396377593530952226990131644095796348775396335160952183065124321331590250993642482140375302975863822307576469819743798300593897894122501744563404958887686067367018032822044099871486494186764641990624535459608415486406514295569554458122823402563103071732406270871303042738437972042336250007829072461028837878546823835012401886359527691658458798325278259945198887902589311071668567873755150965428638616709178887896871693101192524258694050404324318147870928895288674827108660294567319318392525951583762810536383917713255387593398650916191546726650378794227601254196953705853917444872311000028119652402094626273952196373620390214371443784948690387408317473191742825703446107966415826373422718386158355570274757797989440543436490304889355750503779285044247903436323306162545144419613080075679368843114721376093510791079340695539349537744846839089090169369796168862523141214854473453633302746867956946932192985083516668849023521914559070451297663827459470880411130331808753678797746445484765272348527721750520776725069871243429363067761308056966313644371605059468893867249144886962853537922813811999753003287954713329464736830887907383652960540587067851229139805286775949387354560606091689160898580863931300119727481141476088511014815512641680131115577878104750243231423733498556620772700556834012552423649756640139299673675565440598655812655829143119140422598100458113969513606802659204813669485421066510921517480399477834600083184733446010222644692482284635877965520502094210283313980767327710165996913440436153733291180704012989298593267866425656847869207641943698236620576430144822840693379257992548169904599990512537962907045713914439947203049431932428165006328050108043181696338244187866550506343899675952984988099940224718204309995932704660623644302459519272956564416832171523214214129520197867202426863978246267656036441181541481236713271930550881230074877319796220210766219340179298098952711433496135685845330910536221932948544584746243639841625155348744433717245544896899765974937175159077465539936227382316901864105805056691218458158104273527499818850998240253553209100000374338920463113652364783409881105368855515241342608438685824991144353977993318434569881917667150201280683529021245713338680112964569781676600763018813601658843316913809264777929894432300511669829831414593788321389240966299297900060898973864657408686978585741922400336539458716549430028592893895968311970845426212614363050647589362302656228171233051722368672162859075920551561601436804150266666820672839126506748835423713401510322263545828614861158140983816120446267317598744614067653609862905564762494759698796136080213195920198157904619755062741191883491460719305222070239906584012798895397431587273133935464760758585059581178633476584656662011749406806675855332912984282122069470963857835027767772164933418250417237960051319230582428409221982128097670983077648830629867825427318074189542580100541879762105518003950562785640631196045471930584410287188031185543494353031778854219081422372490176656791706528412292448209662620365619658023814062730551464352443650408969717117738090847825217558960253863369602001268551561219888888044959349995051259772284538487185424987955678077756397036356459710643310137691772860868377451374103092928332874043085406875324283164084467120101481237537841014778758091498690921371480776837400699896710637671865524058521626005879245382091785046580211343781022439160535434663351114150759068677970703860745809865725264605315921111051827819507288887138994656620999766130597298205666436875683370736633238682904095462583923725267540620812015133355102308549910866960020974390699705362370840009859433603032965967378804222998203265032652000320284225845732039256246198948247857768914581447368918525318423589027643124900347181846047995631148132088233488781456681374906658814052445889186244109091903920450858140228154540079841010578449011799503049237642794119607507866432497512028065616362498025629602824695010568137621909287305475913181858424219800289834879151398307378349990648110109065345551433634356309602138893780811682075180946394978071482167319828722440113121856928965963617947843203209691875674641177262546328949678946796873003871216543473303648629727460870419196487126602113453026407196467439990037018076953817307765544362090011947556816661153126663308768886583217210287724077273713440329635760114469019906443583057207736352036816023613740323566038949493161150840499297596337232534660578568847034061364698323952947932815021229236407374007492797572130855947629196572127320297800385199239552021896136838828908536994114691489598675294206555010326635754869425916055170990554924279971042930916085709014711142486947000570682111259308926390642559398603602244887490069255917573391952172118948684769658782499010592256714974693615148265234279394437049696850825702524711356468730101046276702099843402218987644494293611034081394937166904103954884814283979566083768044209970929664081945166002881830973187727422584827022286865585852002299892311289531852602375065160020876230778297151441528043684104557478472333352197033436686530735102031612006536631382907358349110232254744929612934226081460471210604610548874485589618796314993542637832785009293579324321518184007627675602320438123805506953144705773128936747711327055883519647843703801114154160740763113682967627024640598837702933829159446704752992273053806568104460140038893319298715115776911750585553702997742192098789631869991332128602986281597305632952517976380176371176000487334938830182593739165800583240969331797291526802152964727936203252115410693484863592748662458816910774328424616354225930957039050978226859468797429355352980880796409713071345806222865345591808522534166666090045594950393285663749800935061660047539976810480817289767987657480392113850770410507866902023286884083396452157333638755155845101264119332273003928966219319714963416549580191730249367762432584232963251607563263643492813936701528212651497911460219337799592800901765390396004529235541238732786131428402035521140315351741861031501744642743683096916340706230921946656815639823063498821579267898556422969169757841776494991367670285498592194098478996585341825550983420882493478634587756796525629234919854653671909176724454988513621692284339053166231454491859229123825223958071107660646499178718794764081503454235839472173490910085685104622635747310913471087260239554373131899218180599262261729879679753284398763522210406806057593058237027180241359294554298058120912190295136207153765798842475074684043164698430394002558462469320425428458281384639261007240392795850159713906974174385035590756012321132538253421678401227075583963992859443872958498685345771074062768948969943663853089215886371791782705763693048171901256744553044425258510441101383902918078567026869623191548791459816986395039379031445802296256812808793011823260630817587181562123535010766989160802673003246255840255673129694459294869867356052736368697462715218694089853021429902243274195989343617269919188785851120014792000927897466941372638704830761892904785802587400301923385470076270544436426366025154690936387002579423176360993473237900498314726789895391670923401836789623361765531363790414843458074070852056397576167931799722648279154588817366524293992547830500961007216538017824104371446687961910312038526203296631962945363180111892598044077580779909601108621767520768357145575066505619431458004016560669076492360983982314909869215389721364665584662157539566955547152387534507398236047996824109590490882655226462527481106901138929236501565448170497099792287576072469937238867708752959965502295491246658917681973365030419576904348597923249833759166015356516071274791100104078195573693528760015966563792644220643868087754923601911186799662963695962150588966807771981923667955376775238680387035441481828041387333731395850834244692121402310164069402485154710140659547629838644140955217905524551209166172205963935822706546790235781483623079573068080256136659668575445979641649691076529580688980422605740553801606882066690854943717711243263222550991555170218593519629583792694339871844118809337390657152254266315868749687461332012400851859812373362004797303506156275720018392045730478587022810045161578253739217101940718435013757893256660338289408644360681997895458559206847580014627459969512970478225880222074096058428949254830039964454034115175176250424819471798657256481167699663677650269153175476712168957237796049590833627180507273196683891901806298117488573888981249345268158339649399056547207313378869739982609992903672924218441024943868814882036728002010449568070069032808247144745780599478433163675727708307826832793312747124050134718430565547561479632440632927142656298939727790143821352128668971287574506991700790618823258662090212916165313328318807501103974280793225588443455487776529179618350911362226292829917418239625725309027191559020717289555720069484090912799969695700391874685518765418893748408302161467801251876783988933675254502738903034963269655407694202943417787561556204521437327322863560305398946833699162897060113045341879909224217503681279957643161132387711973586665727930415554165314757298310706996968177702750092188653516856625847424095829044404350444014876140299026588729596713089417451729616663910164774696660134732439375079584333205460379479633306195246379465280012268581206055374628943441166436750239771112435095914819771787600009480063213365027253172061670362442553910305813574221681256177577046182086249594848792845041456471617896302880003936041066926728509432880399219849429082155226537331461133897113192248868686459476791765475376679113764158180534016158381672364813580018299117329617027947378095741787956927691782676548421678972941061634019710157612386242443711119999293822037842689889587232717272595412551913346036555932267933562124416748320072634472280626623101333588569152961547249774905383312618524641857146462960670723295868463048267085435591525067825047701369078124018598179728325656525006463592596663914023266787207539625329090405920624524806291024131843430742547024991471099913841025506976926085075471554794715296371785603631751621461095704542671628927835953258112934467240024308609787516507240330708647555323891695793895478917488710713845657670973446240207518812341831994060614916235744512705038088440416291564505868193477981922821404193236821962553078711321996792228111610665755413391624699993888449008758436832384232843182597839885979276548514011230294521484241080130809722832660481073714304969564287043602890901044272792522138003905281939327854370732681700320650406248886348197226844912635459976199532274858577315971018977305937737290914534122505440872898402500679962667095035794366931262186150815570774621456147958185900486623897573279893160913221636066053616859563924818431040638719582321550546303790913264670741625032043766026464003353686988566237788265188252358549814081377950543255185203807206092277273919214651242121443466426910737834033389893011092380399758165139663141019656924939489846571640436811289277857007799098843183693202810964490341134716032437623376312576820497366735625081019140082072262009162124709210370620065856310895033432586802034834003128946045988808753822312421537674060669306987905399211917100673988161880469111995027493809917002310012405286571407989026404571124959078768713464683878033711688544236121385244005103962362839032237513115427264881476392628080532265637098073599060195750146119550635774053361172348046395636166780247095112193573765678688780206254751574229684828453563179472130436522692552769222525561045808935392637040397747663304859854811116373203672212330527287333508118635953391645666587960177053178911254383552954111331375246475742072483898339177401521291504649062660451913148563324467391305774056839342256406050319894897627472528116955963506741138578740286956068700573886974017408208341614286041335565913782520965223189115862024135310256287855152294857367375941190525636732883508602096011843330382617171496605903335447491005434004963795774338498984375503953107640482148813267049084046192243224766276290009073582744635830945756897685822429543287053910615378836657419780029486370894493774476690602384183138824973631440468719215544307447291360471544365250263291342376566098072409995571976675821681931760894406275692761916493547064343084789235774116501862407284046651446883958569147111728027339572034478739741097864390205589846593654475269583934831940727486307311985517340424056291553285753706066154101823493108869862548569242155820636264642457074054771643626213370032193502931989820316108820539323178879007200140155798776500103522801769247370496904875223835130187119385561512321010082612350039723813756984202646790765242962571652754468720904782091893169761672695624275549635849197977945425217537372590518035178632734441024196024996389757258305350947258950984127771262735032526550496939546647229287384393657547751133281626903549364484107149845182941609864040103316984228048199248661275016653925625424997855384123087065163446700765955265121588553735437674723586864742671607045977340909167561524030874309325124368321073136988236525213298834483104196896902090293343405887010401001938262604398391109613749063552287388584459992009367792003568295051643289999926660909062458403888081055452792365035262622094486595151387263927754791896135546066492451021326806624684866019388265920246172867996880616153972835306624631719634999046318677790916878666490158611000442638506542381391636167058310734313931905084479510424482782018807523908569495221735370893417804273822980759758320983015517012101005531492049191812787045996134449308691006470779542626578777796664638821794814845430843580121097440555889191573538004286590601812455301128435918161491006024896254512159249676696694288204909654276676004195701886247437458751872655234973222274476373435035062578390277299530698300043920929896984883420154594404183673444128026124035894603290502223571644390571867198467655130273843805259822463317996989099859321425802057777786337896383627595845703660256597124640340021323917749579734774810531067081060482605277021975387171262381460484634504417978378255136796355558951059266892189836917735607322030599223342995324159353395270968488953469588406752346483096898666422195362805190633316809744468345021574437104218150404754171280104064698942973715717694078076528845425913823434507312992829302502530658333974386114824737006279583678273320705097781474655785455378070359986557688318271122034088119819565481946602936640805913743761449493351093679779496684604529330101355479704332183308876873477293522261418681270249866413469627787069191237491455998534583235005201664936797014304591791728017471381165655862795557317103116769477074502197465219050880671034681708873260355080714987847528642008609659647019745377706770012572214573187469704828828973391801859913477068029330347699427271406219032079592881200648456224762906114036303288103774054326421718337853679605392046806808900665216439438990181016852766010010511616411979376334980490092894385069821049141214167387289001953893801549772753116888420464542020268203633279346810461226666109468316465036665937067693628118657469547755033697208590759789591990719795830865679120228534077971349354018835405468477563324933380319344489026913541210503271533974510562582383587591192362518552123313623165985500189245078394951893690603033016512064379498707285456094210888909677059711613653984729051401576738282531107070320299586843733116299874713181397384097894302928915149313936893428593187694574366914677519704785707952375524739467980710285130786760963709686430284227366118867730325267300545602036377503178935105651063374115443170534867709848455814207320743060620510490953753006956688991906513048924948109710922422530417036426165577732350265641709692154619350405627587428242981112671202228193657061894191172499127220356374392803765536514572278996975222764228088463554711872388279389130154986527508960806891776166404843817043607447345057492332525313093485677494072018884811246225703465520098076875412830679302553951183924852866437522902108215021883106530343428539347229027292105735920670560383123519261880593420565920552012781521280567628698705142582317524408217764613238292752271229069821337069642452524574321851381030672428232692593829329499348582575298590825812314558274201483086456733076165435075201092846810801008697377704277807792954434244081296738041125493173887811824872292551592212555131073381684891022914425177577750394484563343688738268558804962939053603018633198630802941477390888986315638476684935980295034675393519832571368121125229387642106892976123959485398200617850290726984643638332395369902887685666776181797001828259717269955034375857233016637450291906971023968747050198400577575656246121994253923664173595048843630715612112632514085702096311261606503359321735416136023053010594627611396490890646198320012300702082185451530244732000414456030275455405679847479372078137713376520271211791550673980596391787194107355986923147003040342289483432211780661701952418122962928113981305931260924186083401566591904310595357446828790447788871162112707259686092854562108817819753920859242004424579803992903500844510470246419682971561246701758905902849993629971012720251812947778899165003290255988214226352028422355727852989444415335459653589773830698568821471644510985587710929471135754942717022308434763342677095699387639367814518153405233854855861602383224977333307424221764751633623116415214551565832073880315785195707393834278599289372682831098203394596652713015095271130944617005737941611398205269593198481355216134074139622441954183724249508268913104565803509230100514971895677366588623339480209898487327262017588527388774913276104267564686154185420640638102092921063534172882788483986870153295934225326971839912891980741847631715855093460731100868122466357575723693841906000729695826605100909213041237493483495108650404529802088989175026499884603073670968465653033814087544436724853868206044510151425734974700939562922251502321163157467552883368499173366909765804034015900717766311273141019113419063164279765276871514098771829451656141997152168771874395211409353424605720429848577935569475905917790848613737474020612346633256433534888738464177594206738371819385242727713054512989714417282409016825274268333957345863889254799000507579998619606183556276047740944664534482027126949591838123848704361245894559099471867485908335268649225816776122111446904711458822928475266708029486886611065904692935028772420564537781718375252436964607288801186441894658637820926179609273810081534691668313903950939912156489423623010651305277157316215671837706257350812958663882728198605120062765115611403349841492445232897246454616637538340612518852498907335997555513185367780012828425904240477502085440210859773798428837948814585735714249079792584518344479796605135810988083449577487406428098295136062566240766121770409829247051090250258000795682248770144154321609121621252675457406080318429663443644211317811175565344188113896745118595823654375842382615582743511584752359816456614883884061546091804169149632328797019549479562327229386030720059879257795414286644486576349066869199858602013381085348459762415946703368857987497476245782522803093750485885408329813651545955977356807115184292778386104550809124660063221870851804566545417115297212243926244325519163565516985079917978471563391520285205996432716649061891148387952848016535583142463483294757173312469827327370459369770263367164979083186098598858645211095709794793777293013698668984444455265933600941745552973333327795065116566283707120893066845691415889821954164623986629837573907257080646757032817467515829730011927199675594767242223993230287021588273426391956042525131611959963895218182311359917108906918312579017881574992436089992705580290459231480444789028897769197237812730883430459449793375505650787034148400812370337763214919348016372116159470440091758469286172497659819645831987924326514745627392953874232429231399824634217927211429308831990344226598264763205380896820970020292098061684063718546592417852573352026407777941358538749358933132667435589670967595435481517440401922902482558984764889853361686910522151705124595398186493823019933057262424899162670340047486504143525987121840591506504604902411556923615162528963882095755893603906255044355819183046217125518860926133534393802117399896933120775028934538941720883173962782623390793504534062604822299873090048416696789198370008399501237079291939930263815721731914704692574225291080814165760679311948969821927898743528569692127060053364940345300815515738010443617315818624991614279483474625404620854643806676171772368583438933531214859170760406249743355784879782955439036674366219744266580237340095813242767086553341449318817470898282513254548859641609578898511765703708548080406339236775185474495544378194329936187488435374431358437802957342810111631794231206057999693218135784890062621578584151635311459315118277620928450035460062406670462026756504357857456285204257895648189466094553312714429317272819833033278280402187383809353333473703980401564590894135909887946193053409546406191803688503302484498341891582907356445301673689553963322733124015078929812221559761020208976470896047070336761718499432854746124647994693144792279858139473220411752873724441094358280270362892743592540822612200529365895171696391846982790575976644962806439654427689799607573547901321602763854118211240306983417109473269807316550187619622352912374279278508573780871211827117539285918838777917965279226276048273864434135660126948903231018820924593187819910511327520438456294641415366003041516641625465559042152106924158834690302426315937021747851834937446201140897960918973065290517106945036124518105492413071665144568908715157498986828371630565608648477486947062244249470155723297900630782716250748150349065088247389343140370265412766826089882510855868874731785953361626611084313614835831415406141534575657311455913170016539669017684685388422268950142282769340572025851977560421451242024541487530257716094940512271726956961919279560730228956873499126491171985881823316708415398693032785686795779226419896415160740085180522450671581690457138157977772731536658740790449899918408625161241786141537994500429388908960750902689409829181147419299609935052648670333468865543411832434746564184100006681754914099827350471965139525941224318475324299927299618360226895491283881296658247463348321439839031929382418994998176338672761183654221234579643573490376752093563025858257489283128709756775031128614485334216827693037486307694808387905568077722059291666188215437800293884023084458301995869566550586363411553320980860631494073465074825238849603892645349277652140728940751121112055328583800285277303252450266417246941502964031099038010035239470264326489943956451086086543644174175323724019749910175402317902016729757976328012998926925717966764204681008372671715796489730415100332681477306333975351875995069512044926012473589661941198838801796559037550092946479160059388710939904546524555477718350197662794232359847608554956477909858878041307703091428045427108983851442630326854919187775701299871129151591535963430485789273727320370557067202667456239037309175705379774148241902523881857889596363858382485615182156237588255427077521088937525019471108577169141174627122626017905961462247541226913510080741166119927897594980652239045957518605727345649055128041023498451061858588839713764160649427549758998894188633582054529846678886211182814412470784249891762778475500008567700625023713791379937782053167179742656646278598230163101627957032640559062466109918221669328400427312888632717880891263647746439050466422062912040347948258823575333659692269885520564024651213061439357774766961669371496935877839587435025355126960060460042936203687573306189405843541648961622064083906752870637690005798244505659345504374589412260602045634704799433512606716922691238773751711336229975825271235073647106493978483012490828642590143305991638704117876138990048667140654040198282734726935609760737397756369909404645919283265017017544102944679257240267919626561690360429661584872253682454709238164545611248514321153828167380589028135117469407698849100078299905713961086255206215136034507304783272066279842624937981532600035486831743158353432047601683726734578256885951096385887745453077195552290119294103666345363143204553578449078598763339819312411354831097938622685701992984144295482659133106825548061093549960467384581781918096892373445720980762372693521245204302568411067560037395276009589879710488755652892726841743752633498011200414355553181371128189143181676736706529546285147919536532047653078983803836359655010774580157810691001039576416325759400645946849191496671757884123448173887568345458375329622038722409023492424306826271123041258145342044603524109979897737229774997827709870004014618172948575026001067381152961210330135527443899698804500394122818659233025460888626792599805474753036568876332492812225775243018506271864264920407205105399521827441489226805092835723133114538268939459590092013025448234407039567534613419199734189997054039657270852678104987457347188162514031924278846379544963729754849523579367319080032498050307980434636630803624636576749677928322148756453981705485775942176804558728575771255560390435943645794475091338417796975217967826109352380857790308108490191761281438017297008318178152261404581588723288797833605113714211101441247025967259958070630559597963378115927548160399047616340334661766485896120111573249366467385374069288570301408008324324688643514881706521337623670141575023661953064524889388404230792191446012892773553479579817021940100628673695140412931010898093636078775921078662661067882268335288833531046386850097467728092995010485036484776531769108504340593971144999360988184676195369705724128460626557703564636959147131503581276762629876215045434774748318113886345032349043890416977948480627370332988751138720306568511251607561556682648891584496942657644048037140264174267383578041725965639863439891932379442276448907591961446859569175208685325564599950827442045131990160713657238740919925594133638289542564507435788290798643613183155672379082934275396805932234956195696100252275062126799107525440321112450037845421855881737552630292748714997171741169741266015981296584872823318090610840090951191139526454050208168008998780321057380844591139922958351057983185965113227770902102273490583377549556739829942237580889851894862728944347917485409307945698138761006896583060363118963887576210744457725493568632422143502901839502225823303611137903592664044293571506344280133749833033774257019481846413585213539600964031922911567341574551136872953572646874728018254876067647546551322783725232774605493552428674531998632088805836681947310461925917908856286565524531066499003551347708801602195970525112831504067734277033331187882836105259104029044261522815260346909106880640036078490942049414648864454582488212628067999058725556643362339820620589997946699093337410858663393996169084201356794191634540030156359857445406625316717477644455045583906445677756804120352958975872829613598030805255779804830111838914935444184733855796882329155243353305940914308504623658886562771965233724420594854087304417753709960386005678847773143575063458701446786109387481573237726069146511006802861133716362681801744898110463466574440048835720608369493487037171393207256993654096451900689762827807933534160694905372516652430794993536784155653359111739688444274814281281087538330975522213742698285961461694096202692521498871672080892116835492475492534142102161070824150683376359759784718128876394266673268487337446305342947884009031722125620927570203954343097467154409517476134470438441360099014330384690813316060926103929703937446291855848107917653598761650499528004220509481734637962477808744176406767898138055706826487491516300980464888735845860947766779174644591542396145851910575430414456096682173639648581066635531226228958810003809674337366434287979246815045783097172418260422988354189850719866673937603129010733347661192510435842070557421992311677965950644423610426505103802594543656123753563874374352485314573605207135086394344551009701950596543244638744628109523500544525045353548781695760638905775256212125372991397619479003595572840267192418771153619168115988448071790679971775466097433919749619169838461485304204215654787502333916534185114942924792604384763119235743362883590745622458170350299252923607164421884765560773909540774443006199400164743775261282493763175736009014522475108738858076428394956283733881283318504572704955979045064056757892797823191430686278549208955670314840313367244943177163913284380087226125522396376656515024617846350682457910784075316414289052593820085169157114655228434148527141348474179379976035262507687136109130809791945883137343568890971389841639168020517804409811866623795212821599960032738514060397758100965725508313561371431096045750858247625136463731720330813110440310689971035487707308912938337819358288331062823408171104379969366686728766708344984802085680637198230542198920623865144649879436106625634625259256161616223063114258811224419521812133527905791018140653557476104552558467108762632786926391082317164020593330526402330667287227221999177545544970401660789931671843616218152688287625518030456141955885390563601172123834576251870965054593074824446670688311670854268519694055749615170887693653613060775152264990540439988107483448410748928076140498262094462630317590028348630077785117114474630798505639787820292837514425744501400643306811411349919695427510382803821435682932021149252174323390451096261097558273615200659823641718548037589856835589468810793112496181702562352043675936024569745236956123932798119548311595568650277961544141526776338394535297808147175547965663744870157904226256227514419691191799656863642521339304507383839097786401831462622240957279737562154895439339025924647410712710152036061087963967582824805597830757421765894912054736750370778176992091086181636069297584911572889832449154565373412919844111935747100558703477362580926947221231492993193613890250817914609786157114583916815695369129452740243486313464713415668616197956498458825622731674918724383023618446972166331650699001711870026751847103405954315704621455372340023584147618608094010813657136771997350843862953615504210539755045225498662204670978917396273253062444074891670013715895503234097690106017198788403817064899272449889282436650396746720893149056607394937053314820390295912372091218741181038344823972641047556318932068939243965815666852720987684316755439627499792381721736058410017725819061019523528717311586304358947512611378834773911469496564926493061580224312397448436760498713868352450780479462592760295633683994656188376654700681465162607818918113895403715682967551960881117584776806896939813487093146172504639149968004342166902191864890278524156880566531122216203658675583134000139692647662701066318538140751277572253395120882916481184557062041303538430509278766099957083396062478002894229706101439518847387827790687109385936438136131493132358943647760831232954051059985411034787279093439253260609715687931101658817687252233036683216228493382988850717609192736935094138841623627798835647401668982637159063199866855263473132182386874250481020733939132421518062568525537310528443655938039931779967810949007733840693051282812738655456357739940655957071628506393857412444712989827255925157209564444817082975984466955094395431654551205058419113600559908597274731526336785257150245359698810144036069788292098566077961176157903553273110378300702784559814690545955583622612011371720908197252161572178168404586577992451550129126967973952957762529378026410523929191139361326868503720568946034195685958301929984468473537045169424168640746297376571528707745555603306842511625497102103791663914174435421302156916069837805946590982040949610184714563681336289966095104418711386036923802010466417907254310677954917994083935856577653425275158966343817544812493014908351143645516254096549046678802134521303421534568258991566670196848410451352084079565247398588481847065866219102489693782142096802924542917527159183029748080071327717239166451751527167976889358502209221764617945674521593357594373676927662281369346607988861324378204881790477650826287328573331948048609708785717884422582708790785163008373390898567583542287979841768972373712050339310936017065953109697461793755287384054000790136570583528778982784869701731792030663400935660692696732123807574001345540386548797928188572745860619819773724655956562218535792273547301630874570396136998460827862063531895016244573223793874071497107973262368520553807721214839923049764793371584461351524390344881344574280779171689244519121324201510186517943527956982270031187824212524486174456006317826151999740429779020684965173746674093925641217561614035652230638132452537087774198086900323379705851539356803249685335849583914925603178059989048859346728552109780787050053411770316640168313844884558557987165984045472210381386896113717126972165097505959941501040298766048707291335333844301240917183744152201400660118943894426917912727593502361651397886150435833880737982446321047329769542430687483201714632886438087647797032188201199295749099259130877025708196210966367989506911066907203048981961236009334284170491120580536467990338366688082565813842460382631520633729950457741305485584846861739847676419917183131491610584306896651296294861547191397085388811780175052649375786440204456278693506152992684851573121725638136203181151589448647992497880020599272365184470956835138977961631593894000944624538000141691661765836042479423883425114740430798881660471086009947259474559206908557275305722262662697960403194147713954363486815986195322506573001002116844772503597692397334840665250070779260380818689009788355869468455463414587924667951352325491290234145525185584425595193487246686990760565661755493043046322459390542142007753234235560004380840088953467051445671713275512473740703996931523771571045185293912356006548802485830676466606005775640171700222964139971088607218932233463882294184569766497638721922289523181777012552909682180347984383608670476750707223711143216280248997549255331617337782995466127835146492622650968509852592553813754468514034127290263955071867654685767164114212305311881531704819553317370443602193079148421279630020215923784298908672444505191429358756333098065576240055244327377567922157545079890763893699689952476478253308502804765374143613443807922997602691695304979704397996675751866633232762854258578955861135814575495114768748928791214509015100138125800055842848503452413822374661317824311613945164556907926751820232830536324782568222501826562332229962992259564890967388004268263398407686483966715889961910530390943547723078546958815596625710923538745873017991186868218929583261076670397467330460436044271019011547245305275876693451758469610376999929907878807227976626403068749216480439716154509347942207431559170978195481874187825974630866375588035157315209601150997131767168547909297575118557331776444043779997788349872910861961781391566610409869393599664130652896145919206950109660983769826483427453155174351529220288251468231713534367785566522311384854856456507223954726705226647269388598464797968925913806021174205540868906298647924662858446841307450367455016911020289148348405036642852195901610803727700176929531973485009337858200838211584405270484489513751617023015150621030738762994901989965252025476425933586066874513393309253457433182812931787143947059995459160165857300204402153055779666627370627145374014529748613688586765460597515817062332316118473222930436857285653424273101349473017651664835215549358619284870438677634912852329680030290402257845291310926005187118058724135292429694203260568151778775930822772318189911962918204394599942411185927398065296704046273751884008581898280762527129855811815645297757906594266101300820713262787002603098248721595143797883967754519910654445105503592278292713164479453134489455080250716785943148840271637599468259809488961751653478012726463835621211641468954677176200233165979732574593873983597054456137134799829478643965357831574214121023357292069966090349274714816639322496522216761673356919423599025159136676531677647737625266043786581960366549850164417229785886433375214924631483742875562299680016186393593233005314612551484059457101423707010689983823843137926760858529511167372806060089863196655245583995054815449714157614944850960757981273931976984912369530837529793841131196361357897555420656522805497029794950280212635406122552814597308470525366379004027880797333156124351814615749970725433657490073665887922692025158449010229471349704714313598727710619359615214965902150495063754575821329819216677412345385142261695115200187932782231927984746351428686353157599599828793249855663049848585337442717131581770153295285688059541598604375287946917335987076992490365013689440710991529727058334868838345760759303320562041071321308246355225670573079138779817007335699934759662081279303352572074975113171585344301030934394072678424814359546947314100601277804289094182025536730192772835378134276617111827223814500974644358489664455932454781106068881377180758401020691289226816790904798657437252352218571678196426289869215469488529871140342822087241601577806959650722518177569611489808751764321278806465568785869700514081172984468890183458149335869767332363863296893778625844245780785717725813936085048067475434368198553307356967265247155291498991440823503562685558652802344729924668451449118995971939737371450796340251095532415417793340692080236771689662450823483850299918500569500131377157656759716874666136808095041100803236089809961747014201785042355310441115216946891947145249492481403995684988652904633681520384015878558896551799209560773304137311079293713987992059814165006873191139159898177027654895127479302340130912154866843495522121530660041083890460794090082366478202759781012277500637923322456543294551129711956515862249105544565436653622322116236744449369264892614104434366395880176492494161670752729047966846009275623430212673873140321380227944366498712047165431754134771900776212043113732587932063022563313342512128208389040699480869503208097795572288129944505670186748533102126327033150020869545136294161863754477300335595449994410207796683159834274996543927610632894346532552122206779885883356240390190687601911892561833648586239957061662531932288933984543151153022186922703240380329414553198101768680781798828791340091212265687568628502803631419972214452617781103623785695985684616449103828051218110979120367186473900435155155882333179965987887810961967684782549946629741279109227991891867848652050666325604048631495713614370802678936197127233974930575935010483662036878744542946254741558757112649127188415614676860279237159594662645441157990447993725247951446884337312058644232942673308085306890849346389642405527716735825201481032328744037666040661015581723035356366571155819252859816173153398711153142518595447377479747776143982390062813740022633816134803657321750780897930403849608529005295137580278530640886347051069348471954477819819026622641338612953957072260854632488567450774739697122742981589211146466405983943374745480834424609967352066458443240388841657582873072636856241346014142501716665679431801532847950058661733688601661812886943321062303713861944327784618624710537761114845503090980847740065617395614237569415486317858328798274218614245450250500396341723561461639973215244170730267251823844280670316178690388294256447974175394277210314801707549835961945824236093347385706994293598236918432060879212515656662846705018171958674433815130247147436388147926143494827072166947264095968643653166378560278215433959358129736803628917565986381335530855890765292625572358070014383115667358504120830187699024558500970226047797313496710903764808613550091416869675585392985952074642041998009808038081758326550895018518309695636969699266364100569813211536335086691277447859414652519540469328868948373625857291058202746774540129746777589590280631461211999909865904902952609782965314829980407122189412434282930484729522516173752263042393980690241008631290601367315461991316072116727988870360056139850765978567152009028953655046957657449849949205107727309911406407718044845148612042495767937670404837816084274348626596615837343188837744949357191952359920295222374057388090906055980973189302585068358111533011498296052742630944810241540249049991819237049629265627569882684479634951434098105628068616101657659804176938269511493713370449627271266865985491657002989662952716212468265541409843535965731501393351399984185764885332379797686480348049305936221013323807642054054845679723177329398243535402687521558946991923526906471522735415015336127103635627071375895441071449118052246950199018694491808245651069509176905287338181063784308811841859108874059315132918748427297529924757400630171896003969660241383147847633851326428467062451032208353647167863044238115623752067246581411723595433136230852361390600424300814904242039766215363049571847084681171188711409145692597694631730376548150829179325587036403762808115133027203102692373141796918734336631609481512224399658879669670868257238585542857826665525328229300859640352450983162023433698110452926270408504292641085446160333210663170414014703753505231078520459955835449276831244431558921668093980241668156091795885360245028716479878636970065100223630755402992266627526760292589092226660189935191882474315051409145063683342349386755040284399839374828986560421846409702179011399303551814697973366194377785212802824204555752302922926011888303475674572785782466540174995842524570215892615457087261444261620267072142749387858504250952059002607566267523559000923455833966103044502048235614696927178787624267360099701942178116745802082330449744291686299836266856799241719113976914129116698489711387952750836876750180540540260919409728684529992279118414206564638006375368656124421237732884984912324265011095415912571158521285819151790230249030826876929709695330858370791193339547487283741107274142795290465411094100163062614424207991745435034661693438665655819499708532928917075398541513477710371478137127809155063331293313685408979493654498770484749027329649718722763969172897831846826108222000663487650335972426102247207731379347210283036364017824865406671824087004254810202097408573366705658105856835844719480679911481678753120452317474341773396807671159758233375060007515378376402115528118801268071498510607677293060309346615672429920838315298057071316468635126150600943907706819578122786997860575937377002466272698632353079154112745306972238468710458292580043941503135359775140761004057426803879020078044941273315313026323633115538120068174556456375684811286690484791987033366981003950274289690640932562423843776587035618349433201923303567637454595278893502087557878168107389874787773983405082916781789793102481992136253430518485091407151310700021797682086442988961438299198971652332181766129309726259886642001232978986750224291229318986679744685343262027923995573789141472386443126682169064915562523272461168266073267087932385639652488750487567509236022444020629801087659846199286925023720807648224541838754744033779745114619374996424117952876279137832929444446697448402271606108627929040450109096913865492604091697236493795968515164085310702591701330306568611412136134777377080722060414418109672916693873306760872431162728150680199510341927375404458639896773878667505359832599266833665293440625023752552799773006387801337517913750745718693410754275957887958886465171832823864527386630622387571256464412381967891459904249047222526864646545344452200131752486320113760624056247071386841936887996677002178840353017409490557442758434983588075010318317034244145264983702763806540124531093621214430523779469997643144077635054575743488610947965215891774087604362721609792395267886280243062471471079520376320472549233275672429416971934160022388065233284188042266862335815063948026602888660534487315598623748081679002599574906099564412826501265741275850664957478427323627548597548807996311465475978694122852593150885209722617377804502612085485765306146816763879004440678068766626484257337386594795246112176499802376181447450901875720157434765210645180807578530701746032213885307404263502085378644260691046886790621273385525397745286145138365463208676194974578395241702337454526708243923585114050080189768968650839559733063503479167093947434389882844749517172158876603947469727612615861429223232553958516348679366904797351229649379598312360825368551083817959171843691481048596858742213216958546909765556969598913599737686062627976859774722583541169763488227605176851589477498219976026904761922560389822517773428889225642942601699378009543344862403065894383095551961879361913867003512978398092278130421657217450256445505767243702991192517349311715417632793562128071671617072291968312825023938639793836729866099632237046335573666481636759914692990523128753000966136923702877570116810321205910257486640237676239158815552647497065357936618446152900238939820007087088271630993434890697793963629816387858610016798928943728976905703822507580024094304265615788875345102881987421814357895915419447422105265193472573525916892246342331733800828089065119952476042261174683276743380687036893460119557943466734910551970785182570043397189269405838178123389512079260651649171162666088624668354856836992752502032781336229472157498670567479843598950728151586562345678399802049805972186616504762060746050029817527935559257105880689981238579382885844883849075078536946219636809072347545987943918742930297103418237765629599886515273469841101873801586322459377435489329004616370595552083878844903073076110661942367496872503589031064286809214527473335046854319159153892112975770200502651521998808175320838275539749767892056113969632027213102704182861453106641347222605504398506247756908694684711099375412748397387728957167023112574381452271388275465908542106781804573301312656392888620875597664257107371901007390669709243803679302809887389165190019058993714231938475785553761653449467510069739797240488363280566762715225539376050186855747859985599857047387544506365912128034877690885389645821821598069492815150421553606584090235855598763787168420159137476364015445900847696749230979135839038546970231137408695038267015101345413201420443233637591697864603267613895992041602369887856760396014339827052106625989680762914953249931880147961951192964338861617874808284792477773530249829353403277626836911675962648810817030812609546139036488614713987616071664232147481290052937202368938565965342236735590816876092514073869973145620148956540492004309063288444409662083758303611874295015746281819335475149127839072835858895032486680612797015442361025636836271637414770760013228704567359302864607103942820258165566009903570270434639844951069081835686624929801642159671379953608168002554254290990169740175249909828872305506314961588873616019477358187988105199332568890822390385153368461208181639346644650306545554411433619855574324964356101027342536132249115507176997986858787749779673524199836799364312945993031993719476732126765012026056438125029651187251553693965834321097108141321261719163610471812074041769505165273614360274256155815656559349595693717116318801395946486150534630980537866041255314939310352590681716019715576798734005497122452143493157696257682217496169917729590046626914532045999374849173010878375678753305352335000874983185494997322908214045710987055563861001780888814845135166990569559309375462054258655615126531172249035636842724556127382655948035880558390914235101393677254665992229910636663496613073052466918781803335994088524384720945972287079485502570908593859266914743435768260343831282106415792883252560170790644903087345281058649502111193672110667423501124818324766979330832855031236261379717125919004238410925963183931912165933771500649635876514998436355003458334081142497633268586767679951867797003149280140138135177413185898693656375128022304371593893140162463160569089404674350490099508191603680192374198465027547357183759400003878453027489501215417271247025311436215768290037414887940344884243833808369992649723381969706239182299460586151754904808576793959291343998201318825200508809054421219537530274077677911769103349842472638496317456971538480431046957757494877224821637106963927667624117800734064962405501718957366876400673104422426633370205967543013471271009636262608193362703689052478903019947572972607168581546678534216144577014100116681980772023684981883524585563356433802010454553049311510719533762683745233981925951961891313392872875484679591094579316798331218842461028008349403781640379662568132325113920141228799669284696222620932829410974516990489527670344794896599775039031318697009706020143335478795914046876048410139519556891448513671999619712458739002329382273578024043270099651031125916170312458534177560682942176727673588989129929326335124306498262359379615376193884296675681045185528779511775233384306884670290449572731300222912610075145206736355255955507414492463962930769963827069172395647352073480904511427515329243473263358037986182711928341520714766598915068413648589186533752692280833885478512072679385812489051934941115615708624177694639805904816281543199314584764358069400033251585343265652724515461933541503988247568876771506723200080164480389783506551394906437114637917228708775436544201376354717962957322876053380811332200257174307229584600701884867328818805475483284357709365132699652730767493502590193873940491359461506550767077321396990848486478755222528744759858118056777230028128584906524981113007746896121346919454575737253948596889637999869269697891668251494954729883285804555279153898047508042330598237190310771867446198553549363223057754453647277913311565890222664335065869600225124922962588870910350819782169118937600871207854402349837365500886349984266411678596428456396648747025075668168850739255186662037775159926866716760423271288243627913477213599426545211326179910637412618058650211092092223714945872867855294233605348543766574499205085822547478804239697714065621631971660299663368017531150537008056679288834660884381996740093932027645140688678559040503288804563057362268792246431566523214043737677235846235877640264011079541238392237146027026189010123900230751261180483633041344370111287698851107602630830097830319072244286135573322015036584961472352822940901270141854300089841459877802678752609931311001965647599236144571957306304889375838717778584255468989660387568291239220509363003408094229130309730941315860701281910944747868637855924765422378151570956487664551218539077164672715270943280866676410884367909515240272748699309951717590571322831813589093713302189073171081900956165654722668166572679511040093628508102725288433565132404323721951265988199811592080885701039048997732038104318401774476294968099543567522823976598679764005359798910204964959694854941533627822315133649839215198600484873156461554546902092169690815117659338263632877629282758727633034453442272364626021412338525593122927405802810356499053419773304849617444754956563461873580313749771387462343408956386964405695969431192953017985693439454192650179883495157126891011798582085545465431257818090365558133205041114962571256451260631498941955802309311413980488466115318973446562917661282065169437650618832655050473566837231991564368140290555175193075431585442243754940513874101528680131012419478999085143607843080122341016333356520910192775217691872045392800997659363103676157602609220848064612676170813991926104047475757427417480981812534284318542604413532981851783942118838487066166977989788296495792421080645344857694549215567629365643383801142201962645766593996086746091281196199681498257391402728394902679791306471229232194944901809487432233500975971464232817468540532456431156861780084475694938637943476869319016418203099151226323894425663513354237277854011756222094756666334742436001866200277721369947017159892739364041179243705688039656808607770198653495197040387330106804388789814825827471204622476200969910986823131035264748433583090058368710456430106072624767069329031985219765415872787309746729022300600723650440159709874910342276796137264341455876956637267853926394487356295626670560671381078478121567100893248670472717500208909643031491581487679879614049522703651163345089410133819982531303679141567030134583147047975012568635171757160006432642298436882403207523807816453295470216375690587750563119659664194531494344213019547064072450238288242082255329776818808632357607905664726284067872933793102698710548870756863430559095145999872848914729163910903268730199032633486468954141861163329929056202137772448075763768595980821075964421020183141733176674141244330360488759906528573404841036310436509793600558179124167717062622867841726694325564237148873731304279371684747012410845458745567421767729173415088692339799298935990910754563647562808079408827791492100698301295154884895494367362812004644882877822863115168933011587161191079657475066788423827674216107974583122973070919139773125447037146142149549060804508092499853189955459567877556806973243006564684274948911214748430110907420478949430056449194905610073599722897869844231527407954123571358964882044776249560356292436118337990195599082036753351579899964340881971704193915206088031006333038185016761650085026373202369899225670651852964375582962842976577566850266365013138247527250194147074772746479424229027732825764099554441706918862501439354385042747106207366171866854876292960918553575065803576643499783133865362908857978164649029333529552346222706354245858404517172342132053522736861678609658929535292572382230204468744656179078781886510459905840847511125778795112241869663679449254090715784116054747054404581749491242125035190642290180750596720574367260524366836169705523154405268813369892165816819961252295670185920700338511711639899674602254055939607911449314143144337271032525007305160352713899363927401686565440884907954275099641172612740325126785998757843550651814233375296236578689903123669701083946177805142546037691031482608180662009534362530564049137179955040970044718559937442702515986271476372258931611200672626233426915400355704446942861924521529675971001502074254135382876542656356154559828405835858005780933962876485085499713969121742506963741135529566809249841627095309322499978573691641320245884017329984186696726046835337089124542585414158637493276520795143885055113770436846888042268414646848617083575542909306845506864237562162521797589246086681061579353795253328446011540008937337527712063899847959985269397885650720442375839602255224384875481009335509676939819693588034816264954148040474831639275131207828247014668258933377089041453733081693870284467938210635506380614929930686935659474526357481003749385025739353390325190034761125691718950943617798800476925923265966186356552077074088039601129753605860174470216177494390522046858571645922544107383504395259415107345145446815828399195882730320956550191030793646911052074865144511787333602566557026534955492366345126919433173366517089776190843499294750356376228046036593018088089485048638861373889144354664455813152873302333706415597979294965898048738480143797985710725354693622629345507773357973136648796974848171183123844894607201276044501337836583734546631820843342500591033265238458118255787338435260088871421474437264756087178238180335869434998882518512199332208655890086876911000752916895775958888943063710423105778216646949177478689509122647102160260851970539564221819176253176774598771012811460919040749355638954528441688165417558943783923910486560209938818122385508025814812802209099103944089541182179738914514861729227095076049579497221562103982215530647401839422641739980182373957410283230199512314547747904121150356330942843834608613598931837917589983005886698990488660431499753696357053792513119329104135795451941426656898533588312301680032716319256375309543101800207881118911898413660975461714769412967895151380169201015500229025960545735117068560439969537883515012081519188486798505122328582173810839206079277457776183847605556255356137833109178533610853476804101396222951001922911132223401156384968414361724394983355648702371919213960917355494896629788695458840113646731745589032318742956598318460400266559486517544506833481588861575220345375792096266938238998669635006414435170143762771385001260149459325819403912188265197363519583253523560754465636344494380586890079450395385975314010877975175326188008292497967031962890072961362586054152728722736945421866157727202853979965151393572849643480375718576099711652220141866784453653913788411435762101802035693005418267752386662172663380304788858793863222395201904372716803455271586610216007333745154558850628391915849742031676623602835771466521878176624885837182505489898501628230309639957767119829723282233906977262009820404432171470680471593299504771246930174828031065325160522344424564497638355563659084040105479907324295046712949514922006081810913479782176487299264431844201475847025035867869591603431239054271619635349385610199120948313721107065286430571282765196873862717602276634316151469674766040738613091750557034844281041178946023027143581748437823553007084031724610748343703864464980725116902373872706552564760778684300918448373207875118779738597468666470891215137456482631869459888412853018078880074039061870521110440336591045001661416607136426574474813409258650121438766066196791667012452672609427166859868755133279097495974629268008471001468360352548046754894552544836693223897077485582336806245563861494746584650889371596107521928657539229729104185624238697234037687563200982504168546692535065836407729114489728488267304631782931131887027367022119327983939487585002211619025162544571971266181682285851400683577500024805128875505360670703077883315563888805004381408066011798809951362869166699707851505445532729654530022232730410110121356646697825788792313681110676521925633955879491658709831501473171433204050951712851114105099082266693498619752723614826886583516234890060927645483940743505553243264639803270637482175417337398418105673202064875145608984973119364875199261831944628881494409655475114348729821743951031893031754642674084123177861581942176271903068880377442661758553638938976682471797224167581962239076885861156286769674034478670385490421207977731130453848112647110598683604050289882407211819235092780735410564929964625371714712729987754373632296248037715890275409297309247090223376279967224826728376126251712244988722767343407811839550103902325895385988526221215045641485835471341938355673373367946594191326262954587994235596334795730050255369138453909499795591366665009236817746228713060506087447705265433726609482119784099432909788427363419293134078299503135625313630191150273977988614429883880158442827712443115383436828129847781443755790692331999187854356733533841468272717587044605965129466686330684039299017291737227980121981303755254060033552165185864612284174415180153445111007656245061544584465101664760194309865502302090920291053688928516627190195433173706934342324947851637028622102249059604373549766503654178590655724940219548644287857083200029076836591547843078813922896715571176402654010754523179152553823920712080125284598366713452282200740160537635399159310596379552247210662839556541302374985073304588092112402137097240604027505816863833801880673446729786684209979801023947636762934498579297071259248691551876859105029252995105546461611409517527922069981455128236707924049830389263354762662487516682333455126154748489959050350575724649685489847030217572441936250864291414254671498256988587751816667497858039019592591745308545294014519178194643715124890452536098700053458317782201307617999463821851736033947930478669995268709105422055618841647238450044874057897080122193630853876366200221742158666856392466355952869062234921412016383255657184532461141381192138422172270829018471656698978890120879475299146070742472683250300891393292524719768072285833385963066561263037771454702854289234080875480229555143016986501768118274747673272570245744544337494912793471358473013104069576723560783487657673796297574649017011579720973142703035946990599565671389531801895581417979817586650975356739754707121986559000824533080669833817144188696683356252058782540116939462201564783476022228482931468283584481886177398288198651461775380961479125131916079921700232836427810695863763860499544516204693070096777588930090115844827363843085229923224312530247027246613112562237166882089554900218255323086302450705809576936364921133436230624879258420416035528020847278519483302003123822844871569542233239975634479624858702177712356055068975207745572151258635454828092377618470896073200919719840663865504991327919982234163346673706640844376881354234161695649986274949982318913839237057985437912632945089875752697497650763979840426054710600612902102333495437057140101789343249389947693944558972860192812169269782054903285350191326242990128267811414544425836250988248884714427226704525428774142189114207135658129025543188829546903393946090484687468558815551335958467644339780552512047433126381493017521339533667913261575894346493385912845412476151954988200641238368530110960979728443348396960420980508065686583938011567485321302082131246540271016529025465171317544914300996607242541632465744148118174334281130471833097593807633488427506345069228379510225248995126933719717240527998714481594897605292786272605174482371473195411079825210739918022414967968720869143752339635220207086026788922946127931334163984171000574682617536432503686613758883684080315195369795171192359120962366906228093283376693381417174245380191881834436139335209435747274265256480905302783536645850444651558031386420296785160418940047595253116375520989383779854521318910530417881813969018845897034789457132459769395582948625141078910490526922978026483486084775062403349477367185728506277424889591846233306414811703636495125775169441924126760982927449647687833423851494044416272873785733931986769025708301069718720123115392469375582369910733943798067627446770969837628307740765066768083215413567762248672460143634297098805286990712671835963055891390613987355579863320948465441491751806130743319923673301564226060379812523278193649401700234095823818955872260904459183916457426944800737690378419791425450805835068985328838433569080028548975482965857087049923191753623830410463351421154479609866524275242645910681685705486240101948563008431554384984990256729237604393942431631431530080393988214731707313518660992023070756242599710487068265333302751454170475611027942315675289527157411506997087403986313316508090117346756734391397848714833077224098602102726466906571619441244772788355132212002827145143638558121774305182417593571191227097899025884783047553252988813656090595908603070352754649309285176870560497317608968376987718769581321981201570794737362034113076473124242434098758727761830397877845966245479317055654083395394948965227058178254507910826273781378774007228432219376661085026965986175342907973329147164314006263103304130088222180907400298891090082161834550815601068278248270324341634476130813747717019168309181036918947571059137924215046270417978750371091224550838100376730401410574677778634710982257508314457590951717814949918747572866656390698937609348277336044043210707865807961130861861358463093339619338583045354964101746258320491981112150553040850764513248883495166768950755343170575524963009974066574336430243462501798468302650842744198422451078872183480018613265245257365533994286701036696961803325450606647216223907164250131422633148363861209982580695916399789015917304872503159917912105868238370598859070680926329216301327166080733378199522375880795298032050054021769072642107065469643339037693669738447877253430022463234213823756150181802160351276272882061770286914842349776062121511728177765505275406665014923417320430131103032993334926937268576786469861027239945775193540339931464395384875005711204124934180602424404678533848139387425348595671276119769219869587736074670978594461614319607964327194930900348065872242943539881275095695495976267483947305374883685495219609765515088032816318233875827873245683839460430233143926598381277062728462003327509212972707254080237597188705753328199050971501461543983034073330593410447310628642125085225560280234234801725795539926486663030755905678516234752784701261393667143675169738984030271584970686209429806352860979505243302784023895347266123108982959512142871984332547537208156040383113337165753966263530320368227415733196273522715195378008164161457287555187499698874498239979955314555028936011595946152321099422061722960497577497973230453746871832642907676311076061720316852920521687586286551711025594850356988129179191747573399375232560217259158025172105373483119994947164288486912842314631205226972797001549804017531413238489430931212643597492461669134957355442859718300108308441060175474385462419967653321483240213244505743700650324671042166258582834810282110236144890555843404560510065194821702034628845566994572054088258378011678458898972450399515317987187329056475234151449539701052798108493229724374644044624242282914467925322476391179673535451786305971069234797684740723774034438372666125529299664529388437951214355811468160559287747193159205520262630172126825512092639855426159748681424068804067391394604052477051264624341672558103332077861843362802109312624012086936125936088836895148104980063425805481051465137187059494655580676961808801483593244271290111006770609853514803133462195549938459300171352898670145690708128824856468012890251274622634406456779384972676995187689149179378781683375325422978408258182630834172194850240708603986272579572385357036323772639087579229494027881872207599964337739178068778843316099508449209650130552710337677249414754584710794757784636766602391624611332788887211751085482742939029300755667092871298910447117953463443063948878902557041689117530441820049285316533058467510820393746823597601963695807414001482010351606214363828031525683023005591132796324152173593125465799286722601077198817004435374189714215383152202970052184973604282076607818539153258471464578820434595099986353947394591628321742178878604046329524228633151780560730873544468915236130647817321496695118257539588382501687951368365167092149777819389881361097942736293399510787976499757797597849010839924469755420007086973038372207534453583478769719774259733572390035834754675278466631383232497005292667042823824618252121614666361250460502403460975187891845520554799889563004502154869937012947075311177142628053020407822347811619316340439045423919979023124940379174925032759350176450265005187371504028370763518051339991908603301444221740356658464714483935869399095902761532103055676655261638800097875385222527796460318751529685016666429447791217662115654291156112561903725412897197859267177322126549784869404133881013470621930948417045545942111187417862564274692735427600582009453617262908971792545760675007558370207768854612416147018018046984793117409450636924209840379154421754717898149747398542980117225297996613994480927492187086121826229258573209150040778223864840287614694401444171122173242479485825466272573072989412083299648832151172824037069163020886075896973567818553915829452317069954566244807093968567781399410389573652624800780293160995950900925680184081953221098240438795314282707667567269820527678797892337797587624239159057224493253551259893610722243191961326975374127678974072692950696150070189537530915242683133138834516443908457102306079071559162237018675660912488697840632416340012013750512662843216230535224631363554979284920897654525980543936938529203367130536628500528459134081981974913826428543923538222161841978042305599274203327959712212447178703319692873102786217131617000789714662205601301284195680547838697772566801709877107560117478794559911316281243257821436327499541462336751543581897992572354808349938043342516024317372827414360845126635634210206860841956938867601926493731669390395039576975692987866211127111811700085421537852736758830389357761708581276356996021329271458330065733938400518745189911137061070995333423248944441401669576535541575863454605431349838128502597718581337534467310839210758293871888593196773537798465718579587647340521966904502289869885177749194056873050768553666470067286251581502893847245427237468106328028215157222463533977190236490773910763804069921441914171355276973520274614343552016916301190106848961647011812756703800401726851450822531129560193058763059930485254751595563049724928058319209143046813865062308228207599734416110303057671395084864428789833873326671766129424135159878210226796042358602815989006439403096226721438548069358122474606960400360425402807880770367281030719122573869596595798932339931963705180054618376090057310161776236363123835693062717444318511420012226304128980964482897810988568305635552349920821509171076317485482741029263742961826186882336175111376483890458193295288880209595974155298988794727457322780227796731965887341579790557516921243784320557191864200135621493089945543715565518108336657525447519895667579546364830417851675157846465267630171219445345736620601423566186304655666058462148931236904559059838747921599061364761277596276851058536308491391648343011389403470324524714075813404820153208556259226884817125866988552794677537426800331570029202058008848045003288833694393322701795409693590911851010543387978396026938696293695689946876922284855200654811194398565143034259373529795808218704748995442887630361193301978842272689786381814769740094476936686182115919087698049371172816515640923205624207810435962559779783469454972897498427167882757487680106618903559523955744589354648079311690171661448956598605807911697723090717195907234913643514899608872375494545864938488038563680309063307394790936275096295679904950438399383082760960167967942184632566238418847328721717874258250465176131106441407882087154837566892485371061057078078459419862105682097519945348032971677418796284148911962373187047993823908493360891414204731573906304229525984162263963371691595825544687893438386634034717925548021219839114450541550311648926112684731908752529087781662616097151778638028727861744006299105304618535003640762715033342794378904682663324382925007706372295083297782526245654415344823829358321846327889908950327795275659894574883280843550559222663504510625959723402182332596204565140991091337816781210125718493314760164656801539218193586115373516307588751321668726450793676061717747925772111956701523416798306406083609055950117658597265132452829438033021385538971803388056664394634407516988524787719198763074798837131491729364085380371324672137153350612923375388259921552239526601262870745125705274474933351584044118272493726773906806183332555725686267129037655176754394328161485137631762820862478794922816507323160681618709121093327554886363351050873673254515292262128505385271326525277243827170247081293801529261417638788965679373932608474448911668274582481329288285108479774053994663957254720952567596295594325560770728167336977194166511750007534154903683838461680263213446329687876122289781466199874358321211554353550419846050297055231617939701654850039390272306193056265005295995627247803022170816487522075282971847964565953086515690879054001115185310468680005138937961803865322960747741636845681439508476898238658686237790912628782525331332458847102025560337995146367535293988908573521430512657713487686046036842150889433570720868286668436071577983834969677787202618480022634129697220910435365429657163554882992435330596416355078453619999189020340671742364973723110250885294488795253481051119645190386678676426667684008999027791514794682081920489502635520607966293582669098319567041005514979842910439228501336637717479792081160617883760012445552024851232151875628100687716017632961489612594280694404972282347052146032370681883854166523226514448680352366102096786502857598395927513327991264741814743519751183210353665500840804297288185026450935026463185536134726609993991376706440453228196434910549219472615592757279463837343453416526114766673395524415419692523126624868341252918735266033051379121610850333335848320189160514215016689858783915277180305888622763930422341337912032589965956403103734834125547535413023133839697985240599990068498564400822905407743424017086178576305276866218921161952151844076989350253990469308238187508286836914720894121947584472147269505339591734020855046176480131670693707586279260929326849983926483709770448241279938577188666419473338530054167113420292567134303787850261934354952529193842771145382516920606186690609004319321816746929373580785486654205782371274990193820858451268449481600610983745007530404541046528099752183775075294733244658728896213775585693505543877591183780596908516836391924167936169740107957056780885399089506384811076995366962944598445273276102791796971343991628245826676968898485314395907623913197858834369249436829285403220592716964887063142947420098006914681161718183544138514620864991041795726256274382856230282958347891422289053385920776261288994393462204910019272639796605970832387524631056923630524921013298848901902980860639372903766880870679217425437663662250388357434288741506520562358957508643255904411405928600637960253000092533373347485837261165716102321029487327736719741733684253859345120165207723126925413542433072742131075876963222235763754718024094433308716856416080618758120397873927001567576712818790850916816284686311803038449350018802915293032102178809638639950172244662017963804147553247000239167917624588298558073338659863720270440634010891568674840712339236989552995509318288979331396322735063105492944627368679824273081130105697921355188986275089332065516140211143382815647864143037072049637018749433882709742321916696244265855644148640417820931994633152386308407455198702914108158440247853384062936560777953770474558817178956603310419924789732056628405359317004134205791491089389009571726230074233959091520970166596442237739104863499622520426376538468891703688405304433322796535815165756236961398170436766469471048329838125490805413789576940345619495315304402934478477804857741134780118998375153249837942041054456140326022397129918624477891544675573963378485393505459653251940446091877496387380642793893880286145984006766852069052881892495612042577892643256531313380265190287309902944698715974486317857347473658539940783881085085006288427084969066027518192514274514900714633601917698718743318684235290795772116065510195445554611656037158182305675762310569239883178474310466355088007622565639261171563544747969834244689964190266893523956747659028549857766466755376376699394093304654355362025177286890530205371674184416831516799792999555028276850749819837514577754020365660871423135014090787018771146056929593265055880476854950973984303092429565530976969625686964933668506109391217102006413488848445629924503961267115942420345640513023790128721450399157222677596286183509158013287312233390817724931766853220663386226634120045832959648573375817652132129498029404164207728750717836040080824199832585256749969970550275325281588769630496627628177213414181953796478968427317750708813479543095454444014268837896104504950353084867740205238948573743274144542046200175603792497056089857273987277941469792205064995576863035883291317334615013780770581101228974549552817909465897081828060914493414535300854930748200534865430168066388742078350070208763719622349501356931614523001207993209133224736013958202626010635920413080113902841428082139900827335927930765951731610049156906041172638238354475471652275446050187459104607004553403047781322241220860400046064009499673806990229364786963671666862191683746449874540602958908227000631010124693268153338995529056749869587860702159383775482758105181661048888225214173134531085329557803468222952076986105833294459537064086069547607340164214821989795817507294180172693091734580088683062560442088601062776107779086722431633114193303180410510993585573067691834623066469179766209239128952629938162887245144216770661695694263649900499406550995458871143803570705956717874330348762205205295829697390715935862946220920158617944046911101171617336331859391985145431158040272215898883086328722960603891067403342502029312933367031194894432557014429837723520405577814927809711148582938632228648501301531946551077583428096900457906522315592696157516345310482339577702767662599685615795799262465094636099050742954947677238058575980771864177710101371297388919053829994860552136859469421826853075200031254830978004896976998750068215734735394743308172167321698999561210188780428906680126905688623317564623358222061673137967659507406552232125082819392016978809067455139305310040168149639154994328834291003632980684884635654736728234511219059025847846229711323562468557605602760293005446113796209388170257445863817047650807852703443645110781339810832958551495750900862675356159356324386174168237306307428314515427499116484462346843761682838130699210445329296492042445960052267263551310916451640236174639837442262193303635900085029718284067159389226561019197072195269698037993427687727447844315428466078820831913109274381988937231778049105528294333480336145198905691670903712888760107424185838295482236190828349042295538659286819310573113811134086121803930319979140592717585179391601651314996320953979656371686971318146928572230766454827609458570803995712296927052459071707242366286830489256840970318909434577831884503769925903730452130606342630451044214408739110910856057791619048625007124351788635795175176752108230979769975889351069467405161670485430405144099948685693178607597668357630238471528504226229616075812948032857960677325690629365031210332474868352245679182268843453518053530144674036566074642492428541973964813838367493132238855360948514980547225387612372645067890936640123145739944453244320535455232417487789198819019439020499758407734214063161283728529556216861580459241708585770965430981715570559394532479383835352010610849982434031142576861609930783697540854899306005287538180177696437138311756798078730526118176954936343537054534964640263695230542212876122948312918569127265310293818592631893935236157289104146894382427065902040022144630954973347536433033984415226621567890760122408130567812707384133872288465052081529313182478750823077980465615800147835498600391483213589659104938881722759173223006142403694594966313528012907921946417753388237406798010718450028021311124169508126727172745381050647847058372101743021256376128612030798811001512262357466224668943267831162771977970639330856110137616375382152159849038298526545853554884438922908286756636180559804483612488582854927596554363159709314297862536506482512002171005431229368062191932536995869394485754452907427296341684630913354644591500206975268237142164462082518994584607129694412492597268999587401710302454412680006033622251372503974745526116899324659355823139898885106000339506507278863976586200877821083298030141069537894770099775619574624153684482574558953135167313344973669501738118013110304512695211484451914218318220256128036851163360334984891070008299368885080345761376613394186836583779204309411398207848511647833639052182737768744529426010095324438120302030085507184192780158742520314417043312713339734129300395899437571323499604155510437767534362320134498328791292324222783980329619845720669954728150983629727790216875447065914306696159590505924067873048564225709605273356877173105099485883322820629641466945830612573805652592940363849904141175912660380024928434124933516871169338178565497041689530533451147565548915466769091543783814142561394849926729759838045503379606625051182898753565101873610619195208879531472587151577215319715518881444468578270528407734815896406987182210645458268284234677937468625061246520405034228383493938491700599961009470035612319390600159448262367206438954628767682264625745999172105769586971246856672045192763827129822571654142956186480581040345340354299612102143558150891516857974518745364367551511788125557133551614475273017792273788670894908543767844684042985554395920888645273016349039128539936690373138937083453649647635927924227890838952331816625275833367600585374640817450851013784240534419784397541503744222545572707032382358547554559349394527698275676903480312011229533543661929831301056634890517177818036057611674023784111257677690388128710590034715077125006293397434403906258677218260485727739772862459607534259617533789997896557828150958098729647411891092302002650334694290158234608128630936276082811407964061815030763664026131588541096136260662860551075644708497527586801545367984132745636224743779458675417009368446791747479535595908391519922434754060929463994827298833853523367906868387031351711363085573721992781005095025614305777134221068781145614187170008179396867815086090745085711205628068328487052927579552489662195572840496766281304106900512569026469412876095233381915441241634265663620779613409429802063752776031256085635509507063745840291459396450927465715120174019612883964892013019143884737613678723593211055585706653582327047251094489675718776946055081274675784921197903164308093454670202235192448702510917608605868553519418740211576416083086249956303295287073241035213599351134684016322141095533483995347431541392830658082182862366585309597090366264311704523058866546030778038958559602728847459022715246799796144910238126234965907388551306323480962174953893254759027823217271880396256261363965376668618341403963548913910620779585111434995867043246725223091949886323398358365801602525844625487431377983706081705129718260259854482629734642129612748572516008095248606591268781104014827191075644277141740908566928338402776023493156518409692865576720400351915085504916393848758711981837780346825158340814108800155538382504216935387182475485761632817784883978237911284171685506798978859878902642250815207867281602445687414499006290922702199637779078669423481753551038048987786596581522797068798209934052361371421612611178555514900431484079304866098461564218099756526648801926395472061864410720493755149133736779940819219926935815577053094076404279070144839151270399682126643746338626513801513449935497513842331634919712818176751929413852815328465148617098732351018401883133709648871041116831838042127329901145925580827331289966665919280390935117095710821131724534451850952853830649391635055286155023093828669755022012674536013958164433028407591274157167698797838433242263141591046382536702549175621972748170065195098492231730219272447670122858126670446251689995083885476104857545661368410494120767891968204751562195733595850528425946159758362588436935289589776019671681812391414625953211319206439813038979019766810414258944836635965036841707286324707905020109209781520340699269360416822536022908380341357859226799901311068600744848475338282980519253333057064297781436310125781780893571379983893878846363766357547534017646891394244324424986893057974726505030654880487146507574423474537651863831348049576812915418865443349321610437917703515237818338891658451668312997724634445251900507247636592254928533452981361679576796360615426622222983883613108920195812281075993501332899966029921939410914748858020597934040184513129852259320557899400558979297054935448475741855347939012091636759127463431801228104060213658102639905944641592878224703890744370650894729621726621872402556514576052786170474081218345864425475705480684844660160611586548217764035308783475724404356724044257101557864876903733637701906010867115759270218767830324847566563976631687378723890160738453863415796288766762429468475354528891577457023381627783700522402562471199777949264678822235688316353374593958100014307659987570309499371083475342267857976869919332507396064758235809299085689027479948821413862262202955548224254610169945837525740929479930204569423574956963229356221354717633175341335257164907402105536097684644519534333093683595245505044505027537608655246015437761544266240503052469471118951077155498715628666227894754958120590280303296982427171880746514345706926273677493687312754256362139867478766161588361958433071364819745114194264720129607659041797528268815301636605820303915830795099183923249990713861868051218068670697742522169422164150730433509538504913077477377106773088519895410191636118006894796947876433916319881063090308084992082349625545142917882947855075725288284368408825636055221551442308980893692182063197863130746734605609608377441735509700486905214762591588080169856608520475707182288832215963394650423285203125307174368079099731394687087041688226726818774618277725789772563144662590220846125397136214317014499349488978685531871747041936084707075991677447961857264577236254830910987008594792266721441437246650334608639160622779104286927370239756045991524373788943620348167701901097409710291599314217406831941267995047268312621451920902374404824862237225905120077278480977774276219697534073068800211811948263059655486691526701583550144119904267131635362145591806062503995256308323596488748889703692560917515088750094045162445660301282164210121838300761396732199445221184813477247029341117500490231948695049266386219741726121902679851247927741150509071413535571501563725788704595773814303228993802617509833956056863337368323588664134527366929615949640999768881027405061259248126046086949881169264460441121428829776859484927537327143252730098152113049288557290183466606242576277654669518010312789254856422519877269190400930390256443157851217231201521287368275352373630959100534892238595993129377189233597570470583358193055280668491074778974786028400360247703852686783218357371280514482456120654957977578474068450810632028182998833776084451997796064113497680469593040112763173869999687770860374380151993428067294150075823355571820653161870415899240752751908001629162045132805902041125966047020908501614901801870409509328486615177173496445406025489844268253394092503926443928586092024741153222056826355630454036671786181643523883270302998909243138446597573587552520167684936939105142091649401946558984442737116739302592380830291480327944093520916284075352110843512553673864195415365084411128068806795791315920326992246074743511405476644807448373420646461547667664734135084328164181933956848456219614017707245479177668922024565356341027673728221735013391761509317438319835105414480662421758079786949952884889264879308850432531275629157898943456923759274956554478409650656310918110468591685092917082683598289561244306260386818519767119794201655033654528454214217339785855417150692767658409559649214550179063250346513619007704297166514995846712444514243672906778596980186892085221812034983432321608134422207104149693070517416850725874111024230797101816961143452825994051751494323180865377808472014477269012588954745517684922405047507013850288737508581505639144270056633959446046114597962088551416778314483771404174362918991831047338767370286299275358909867336554194854969543002725307250252651135709080817643083820315247400767545143925098863245350498096472102540270701950624983919062403927530007094926189660453881138848825964043957234785607167467435066432399150928534274981499735739439579394246143954201556150411119608074459940571626835346641392473759115778002039905261460534882130758577278520918307025977174293369887761514171753536436143558424605555457669009892857579742648530893662790457297434892038732300594722950624479718216237142473651032953077263461275904847873808920690899377743142228486899648705563955015433846945344268134096075807206276218377462055291757736729779851505428145233639034856595455989408404493845530150588580476560336351056166685390114570962159398144423884536801303803454808396841189649722275973938513967556237634143531379935441840004665154980622008583796828190163198925337832025529195427472885823782213454687020189915096300784824582252165171955287062818726641090302958695306437061186586726694863585979447212799946612411316310737228461135323673031626888593601214127295844075772081552619258450487512655450918789877449453773575637691029641122858461425949880594050982201674729977898643045009396790719738446911668507112590046739571665530467532590516080705384279424428054141264487422330336414409348701557090171821205001563759488361174490722215414119956652654131401649274896630433257189513409093804467715458929015060864076121327743623410185578613711696871551274927812686977991907986575918780294918367319430445466906849454928397950895287363850707545597351401821826421995106368144530512403907444186205259053341988218248541276114887526715751900519529779160910575853338064584153639798216225885553685384966751326918540033900789761269809779198545296342175233002669331227779582323122649097447748056583255391611719479236751756747661079550767457014774067908807674063131810380555825176598605576306629315926880123510024538989506422103746376886633231174760609561792201338058595397717892583830008651853953245243650149834092575788473247229715580546510796519284294214186014518316299082945366273210012996873470103772135313206530334737058119584346383566769217675395360371689137769925966684171290459713525392780407410222541000530528419442416986875421939165944780766540487862971674353513790495396533136499953253356108424031573225512839380407970900902041226178616416812846199577830607533842901903567541887940465518954285710690737307360024485541611127278888876350981785988536803714354056066661433334908799358498426935012534189419444252660594194064006992959888784359424763813940385367986947413569550171258966229800293950946877904426405148811356674485384879250298516471508372081940439525143087532801703062908623217568758355607526503463203210096341100294883356821092965757205005798701063830304642040220923231123722504492469815795501012551949616922990426561617734738729459050228593173574696990112506507983384715885698515114037481253466358852572692122653893281614625231309482260765511362938427366246306521499896424740910949825909534962638904376917586885788796362645824346982749822445904488629803626836282647279054363101200600035028239336441270222434062605218096193260973130288804328935332376418449278120370345966727868478484774348378703264157812809749148518855849997575920216971377480218933437538765097764323289842779513723913519131962389074996031357445457667093592002790036554145973214559899682226884950583529151902450694483597961364389700368083177214264993552488264656234932877897310726591829268648570173403214070417556822077430058256402958273231171149155286513087178421995814552761882728959046370538898703015577221670433499000325971421144125064602364859831129038590722547394203247439353764863596094860738329940001366218365385068569797642586377098083376762152132195933079992876009165148197392586824039687871664577654660639411342662125740604359741292100470053908243768582214093038965360229577051919233090308595810240757925564233149748073958777106143903212225924574872025336859878725798268584091111091204672167493903006464002900724138574029483628846322146883845497180583861533095610892257850090057355314679662711074838552592211461506601163877197733742204256203433068515524273356032054520844516012581580702128488330762123082995334150135272243188771415885200575876863811752581299303440424175435536919844515972259924366299176330017788347871988458813113234952155353070335981367609038892462569780593063537637058766005539225945152874223338644453582380979657233719109446414471868102213396344841663702966747810469184078547775647833092884014039897606458049388324577941677875256546982819618647237909013819707489919142287528236014516958803084405498535930474691913059734153195666737890153209481549369037589218453691712500790388897205724785903956488030883427847428904557191767847044493990565482050376683200466271677682316151961254715322086658776385973692442934371119342892377804910435943372592555559610849201688227845821256865666424395950208502012124332225975481435051547850226842589262512583389256209917461117774880465935843624210770949968188291376820917694251496025716804675965443869524012929346040980806261873212278341235843197130732515573374632191145687772081695536699328192746092369681080140299415768447478646499291137942589997699694696514300157021821058007329952834188103053310435499022555865529949276811234182413758541667062420997897603066192879279504190039745485528498386472495305137764258166883569064507580280799403582766495995116185031610217696723177642365115093677252304445491658943165260463515990413516533317677419375228661599341305293331415793667723415770516702059868956978900683835561431879805457935035857373356491709569345459621553474034033802290313538225154846789514714675144771432063239774548991605582382813971096462543410062050536407828035693011541722210077143360014699526250897922433770214081959255205795267433918190700303243900304095242658435187634404808470199416836184440590330289580218966334379219715739758454912761509593525976746802363061762162950579088169821242850696928603450210546231486179781590615358612986226248444258176931897437223810630393070444715149718942623692621884879956966899318243055545108377934001984966939162894253814849308049568512372429626932349131777832074478300081889677789623029816462282242374111070426519248664811276448428856455760385952156120803360317958538992501904946816928468349746423465130430469094411141560243604907238081696242348906877898452801877018063978809038310028546229947127511421848198553355898888465774867986935890745479386378321552776096538078410399435067512776040952566278686696455799750411491543919020789323433351832301242556493174618170634073005501943278668067460560310538982114168143310189359828997061846925167872176995436154096187245570755917897283759123076349740112173693226741157855037588413808883384720191158163202808101282853464058562517575634392153737808889014301424163716890081754859959593307178071737206737988186223483635643481081061719243658269196991696491024924709698093789171234498793016561218990082335388679341270367241507669934812038188956530700687251270462252527775371568745591189848626391370495839691123737957310880452249344077950527721158665563197039326357255590693480053807926796318330681337292186024144024738614351548707344839706935658905613735872101909378437728898820219076448120796758656097298074034933576234020190294470766226381032175470522720535717137450171239669746536882083887328153815284291244970574894475094008039872305999343549938157281393634182311298681051501693224920978111655497840366197078044093723738034199534245914282803066908465426560449187452605456599777503128190016418580580868753473565083951345909573064550301839743166729194414460505143623297813200809758449927335523386557159230012740265322940737096770337258133600891509809939876841377184432860326038610030742954316767958557009713651996705608991415214425639733832826983255996922897984070170196234583996777368203634228061116112581656755287613184939067134014388207525251161205744335897631972759290619840022350626357449248898484391775050635071084410713811834750534131197207468305471171432399295841259199315823018596422676240638737570587618928004964092719103924014467720813787865912345512296062103721679857173989066997066004668938215955784434174583455109134499381559467849779168893681210761731452130678922419192051708031633439530744590305850555905916127929712471041689149273558426967580974717865063053796147780546873024188196656899732809761782592115924677116615784250643146121197951530514880744508879731116034109222702583081283540218286124825535709968573051240791144887087984199796290479759916568493530147048268319665010188353739719678926190490677102157819855830740792449355162725971085447471005359580990310911433080304209987167673448173938936987009021352032135733696409704051387955651643917566325975917760831342613454916418133668407437687029086807707409406941697418712855689199973512305097335823155007123184253854374799603126265587018722480745196567853820868893381403628556821909720221858189515447696740067966218411635673996016021400831098042532113078789623126856009787719893142116384206228422202022644339143597163487587602704749103505352284169528748071587340624688418709614129101655932868093181649134591726557621330449206465115419835646778675225440174976092424255183822786608066787591960637689087285483904732348741736371407944139913402203323002292020459558991467886137011646275791181786838425943154580174310912622169971092261073264068678666970983791413543616001470030134928067717261380720749485549828007499050710687317780932492297517235387589772596627800032757185359040791996709747674537562956149282787100768767493549266862664244142721366597555196587683632321544908855819056986230036879653095467527984396444229591574433373307101451769154720554467476328060431592521294291374193600524591995521863278479898235942639862160896431183741369341826028693616767525553419258277134609891868240674665639015521623655971406975274986346161458146879576931118275525004113780156522660254605585218295853216441369519754677017220303454149266804673086648415807435953231161742867163229085910399616115947103466097321590480910415938350721163974760144838502701425379417417598507708354024933994531960321876365172397142455901696021442758272146247636304631378343590227667286089858171069825923419553599853817764617340577541785585519643258135193482990533711513413310038161133641661896002458772406238784624128149035841123791847720147699297752048388404089160697475031390229562924095214214349961619290115906497721766365145373170978386592180423022879920467870324237438677979155389943311572639325711747383316394592906898728973117648629766789943171265506906905027505502561868803712600958976408093039532089847634201069567662719252697863270893660125680211025665480348082693502625566427792921136312207637034680339250830697827831152214652866701215239378190909075374058509890312830268925644989498889104087594509797939390470635082004882788957104280109364080356978829870354697740212793892721633374105010174609326599203737614872993990210102758283717981212991111235722836443124780811419161827479223710142553465120464728001315477003648134202534858593193028869015261240928057968668599815775450267688492350108321601340386306018347442521062356199466378227446669500241190758537962110019952972576331191850217188413392761376253837830755207555474362901634898065172559879454792951934038741188310848353275534549687400306438092812637502545998180309489188781053636210359277832639500237380899272572589593006247745462944142017084995530928215095394272169359939115822976024261370162391551563119313144639640119259251982647467004483999563837641639139231571402676613541162700515102144538978874596642327812822655275189933666005572779680167545696843180623188136866127768327950503594808965748706956343750852356597821767391912717248195707439635475251577093673489247322900681443387707056210896115568801985935515796435061663011628488510428917554873691166508287886560720381704575277419471720656744787330346749134779286042088677198961282824602698675696746676735406589467249855794805470317170005140265576267438639200060401243675577780032748764425454801152643325834731962756191774654524071025566657281175871830255194258856871191873602274952354405793511283423679366594261861494267229257582111106774166714124963924534064684464155053190462393670043081273849978248437635826854196452392329354998779137435400062160165744755435450031585586751952656202717064253855880392793268782884904555635014683601817231534340765576367619975154971057217798331104146295387641408858555730129777719861951503388952076731853743953117673772918594438399702302167317850917122377117979213552366254280576890425889131162577352113983674003857672901387848058006883638951879484835837724098776847388812717932235378308692447178378964262967437196548583927431744804535455910715381331755250804694971503619094602124774264733497995270755580668161513639376302199742536588653972067703436694001900131134834077845459099126732295119647921209308906869833095474539162825070741994155193594015517340265131292060371084313893356505213757835646588608632429846871152298288914174262854479660305481112739156924924054521319451409312461148460638992095198509447291834916668944359709290973561029282595463578646943745933407744250615132202673083692565534937884170401036739960696932591493340437079207939144841195974593202011614175370864237674853793594109711506184371686758232095811383271688441320168251856916322729087058525321305788334666629552020594708601730550340103064634786327821598561185877870576057216229406568192110332301803725922323750859558498812741114609528572730694667826922837274691469279707276522272292429042990835780293164549547107414755738803629522019384384907530758652538802909176110835704096172738043068306316248524809350577474540793499338071538765563711223121641876604306688453754498795628640837288366143667078441863934678910369752111790434446678936023231956930423590851334933352206095790187815199259286364990808488390029854862421009137392923746491201814391159969872105314541041329728872405175465993664998078380637261311741219131491896085553510727878425171807996391177024869246940413315683126070606938483926771411051996742183522032356414619924377601102575226320508788025121637646249378377771901865660543223430343723635747924891415677183135054666161180042773649988195484206584914240780277454155645673415952013439244257557166277852322594049390772422894621543400942596709746984589905628292573752124997699413363634901666694565186285440232245321450877250823234274626254717295141797069542045568601940034516168229110040001150424066564092773571350755994304461631432624955741855629516091214924077631277902196686730148474991171505851622202356368194826166230826639269133751168330525862259447443220963872075256420884875691704439830141429719407559563884693746125813024307900785362282246989007252064587415880401430097143780310773637473651817623328426458515563924150200336672555712855359750228156989329835953930917757477710190330247909088067237236774835468901948826173524019781018386108878817690242717420498917931666662371638020615589909274743918648501750936667029107735335615720914025792817035391379063365034562567720835961768521127373078027288872405522469552669352534704886496513934328037205766353702923081351663985095919014787955759093743659001337059163998283605084735297869440141866939940842746096131797861497660092219594457024658834278966750371659886286036876194413373697622076251346256560586236582682876525272900280722925764880896408771391830733788708872880613073542400992932666297489097102514931414715902327789784173352914489757823024000028184848981420267364215181545862658097972477750117385154735642751915584709728418991686937790249038221503799839185226957709051050808384549696255475036701448668755198904572039981130743503036701339902878471029849442953714891236362199516060928000420777125999056125129127307777856603929600860446409446051970728021099707024465496257932473584602791245378758771923633454718529797825629603019089323893875008458418131010585910370836639182391877223690592997721444795162235471105148735893218194228724787042164384154216039787474353803676806084356680720631552431996552886399241797334107944594635836572303795791993168081179230905384049449944176103191849054143934545244672931695714307897606609824899717244552178251507652836764207230386350365848825016038754277649230759438431681745730319687202555097264815809532185573172988250390624504649095209184697388385823153125916455072376419541538698448805957208514941120199996387382178416353536242845584980587723333196992799133861820246328241575628640647614750890407106573679508238617525438471522838746931821163694301456788289256159422366772879887807855234529557418848790605885075705856975280863335827665971319014330660759787225590132804257008675784896108682292808631232314367532673094716095358216306320178931309076886333669568553875476767468651539299259374899029291925182224598922649632994799726661837129424931685369655749412003532344576927323008188408118946919151380995815376284442964073917011329453240847322573584238189793417010987855189946681949996809868022116850664187165758928940281508471265924565576068072703683901761515696906110087009137763708861711653888927164728511104682056815656458066099263042591467066859995315647478954889964395439575986030525060757650720465604401864457048447058898582323005326807969041401286470243710334958260929725248488751004527563791021092895839405651885536458787818975045567556237972585613110967312943628231216888611983367094127402230060672391080059872584705321967140959188934911570994405928259261682652739199384798597706546061337836065545807641258429553360277046640771960400452661264854570047539914151009843309225936328355406869032640559449492953876630786323468751912485256346560056920422775140399408079032031029756490733466564368936050082761521358163039479155652602467770155031586262165720985866838016128228387898732839166286430206118543631902949299094854175982348691948826980704396067096863443029639851499607967324551570639345738140257654707760585955674450066923387217239635497520372223159206065186349442965417915671132686003689222262121204171062562345183233400129904582302391146198287835393777347885451970374335096825660041981872109888004684405178693208279738437378479531567633162403435462989025310329320984025597177550176049366066415889982437477205957665414178092549106318805915628835520137041867756573631424678805388248050334947797074915967766165536862234177976337409903519641274692309939973994383349392288602368964606966777328828137361589659290403032340716151435790554282323197061815722981114609593858648683791346086100872506851331887972271331418038120888932051864696877643832418833372992067476182024404893765182596115621113205172889460553806618418393596657780976139147543912232913009968448675699399558058748708788855177309210108790525201533323884194727434989964897186208268597399326803159509429474719059236723123630665049487442985829547676737971479026249397885103972218969370143882589285284057765409710420998429427554334474857207985781998813007367546578041346582658571005347046509760602640389695558154391311867960680102665452813121256635877775787341439638326467905790096189766011081722007045707802501693118037892920858687820071118347852735717074222850397736327278171514836214893063854607059906559958475745529360263156113147842598444835814175876259592162620305143031387090427963839976701313166548928090294506955760293875274309243919781822253585574161529452336522624034574886438192956981552174762271874963367729866373020468605414408113637272005516291973819803693229839656606850484819156778137219902477177339293880713374842825409777234173777604897799244428270828525587624611927768952517138874111339136417441080078183537291157878828840372772063340512564374872675623919521196441607850220936844226723568412944242927711952880932423667515395843052172702395680051901616492974467730760364598433596780451249439155828668763964343506054052010207223231370340364402834535972863920783568706770190199698992837341400470765599995329577773376256176049890469160387138951868093476287837389547623557066169853844744364474702647224839492265555371999700391882353425682270410412851493349101805774337639138171501914805210419641971795086129504271388213699098702130414194410252058806266179905465739985416824467915379215990605892870832591267413616048138559980881088733271818603645792910295587234460350229685344199365440691503349557744936460965085011232486470382759411054946396247880291319452766660239901330880346013447854177994133446398160148404471610166035734460980824327349933875354818845651270270921536122654328475088149354439905153228701836701462071121360934338299418997367106814989510153983126453924581699464521575101391158382525788579414089248227531457504660601836392142504590867538543346461795490584414294929125270225159252585287603478285579510291852233815164851709505981980515871882618639092026444285222824323714734776971420191758156605660114148367638620007463421806746277766549120656957265372979398904151305104198594040345304584149835003446281362700852298981639784627747757193316879973616080294346085159637310641143814582741768291326016231745838356225222994231696979819823953070147558076513317542915062926672139043447747577833200043876757063569932835535105415129967137292862175585200476943887872914991504691737624240574426917956135719749746427263499967180470858588452472466966254726390189887703754776637490401179129225077835177015875888713588543868687653645142879852227194283288994652581726989924808460101207361888662434800437716494434221972808973766707559794094430702059058467040035429402295825215396747683940874147627654318203674383783717720310360133089727378790842184273541537421697698267666275968591290944159128251276639632818046988602234517879420159041264330613835274859417562155193457724693660145343848503069826512391137187351978145540030054774516962614198856311313379454745350437027092735648713355900008603277789503946763687269666828012967701873074707589680689762296490705113544550444014955617402060331329687246583236835669810865532976143525278623904513872358785314812422034491523030937529774492319241043037147651678054841011183812976391199268006163283152720910962421500282293757382366937567487793328709662386707856397648216465380632316680847413667543693194564919177545383317503240192336240431997453352467567707480073550691787498972019414580203563713692545742266935782649844070360423133733736934922011090296367743885402474832898770846718850750833208084756015501203351703019073829097755948464667605971202522981139761252660096049866673238755866348502049765261276058794584899838872932738371692791597682892289507902327872816919198411437136555870383667296689151661416137386373057761398611486761569223351823590671228859972677512266002336513412546142804969202385865681995429388368594435527314306427125463918948219490835361755725326726561796257489592884026777560858920933980772000747038269543753755331863980741662841554250482403352696852400400602762457913699629082908653094936913342636000261905134759790463135714620492842778306526291300249577509044872915131020710244352591111193659684242989025924769166784029223821157460833536469888720888328887944943629856069251554659555205893241007002521576420674915774281850485707173953984334102069456020621736356690504376870071718711771231234421145774474887317256172693696723218761817866449285602436636840259858932433371676235000229426532219892752189171847796523836920589447475416469865824891783067535046998338060010782584839356921552108804301964753427313028910698366605310572976485481741221461083188472131266984328142594916101560077099422582972254611100581586312813989148942208963568415900650137889335953579679607790059645245821638975780294218248729365273267855358652228505252124918203317945508087559312197338754209802306834327659756724698168451539159788342819834115296576698572329959829442327779255676026361465317806126058705531834050264622377499299033650870037275285693053329003946259790059010872696161488702510061794858901235583664534145782387772650676459003719268186467557382235619986824733143540683359229277684913998674398072849139851762078635285246717177041252359358432400675290753296738260909109827965043147293574229851799301534446544735287776918943511305316154946278098784469089808585147433326635308459030224734023073623521055616344023050677353330782972840094806133981763482233927375719880261151256633966699841570793326291449321886207826125064052608813737600582371494905692757783408696308346929620952402671527527358917768427141469610833981792510851477785566394837010889740723337363108727632107633633393079558674820931174933052799938613219053610830896356415827221502348105333134260064383153581143611861261655790189569312902031673607253209013482305291209318321071289207808719663523054903608707702522346809356843012981113031397857537590936658100411804220428249587587145884378297188113758951101900394405432241860261531060150421084807365412303974553446203781937160695282256077608349337169668660481349952521871077597354405037478855314831089564510353971849465989629382758946897444273257264987490080516769899671791670563472764021446231660569144365822094295196373518032830393670942118053923041123846024033256954747001364709510304823937240535624426949736816247011456050304811639690909133645914641552040876485273124723339680342069759409411212012154473676690987166709696206141190050910469182248094673160157322731471744042095061457174499742483170890424437347306634754706361836536555834862503344444235324625031245733165826103019920032395491577775221817805735186161409660886289538054384236430093894955351964656832497272734914469850371655100774622545194577041289350175364349864386125725988076574987097787072289262382894144821400593998584480752738921544464746081260493349991141184122109823114837461244098165414523801642685521867874368844605381925333733715036189218531788004843195973564825651170113368718104367310440250433999514497368753064825901342716846555469881959005589018674465846348150819888254318177333193383735413171086003090226768125441063830546889103076955288657219226994388579745278695586179011093199072239081977566000259158868995092699022621721284737260493046955359220798791244859614746444298173904468980830472358113075570120729212079084257333834329749846085505135551795518805847944309803606133831100359320438671562157180893237672920405905463039838270217916727917000675195406347009114475413844575763896393616990824584964781846944501024648325422270906706887298415891001815251851954923644801459948750124278412158903705797645320916396558191848036077828155930712868620022370623419917038489858973763791139492524250736525980359806629369228520387820025614494191537437867560034159720816554848918497067877386123964190160805476110090606912141664156066037430671832310035525419081277412638190172216230523660391330970975317667812850158329021036356705870435269819508467413629947249643644664704594828119642457047765330749830267242217463511244532727987591197918646598040564067662708306113895299801586154979109859667654557095513683575592418005994445908035517052340120262692567428309585410433322554071897120358365695749365443289003725244218337631545426107973662100809627187740811230686308506538414347088144055838423436707695229607228985405875900875486544502033473415984319300874643073211467856040069990830561721387597396330150866186278519034356655127961887863942147264795401221634603211338678265659011733030469910086076120094061166784188697175174899437522397212204766193635293226642325176858359723179577565618233997912790748783126802363819425787739668615071122820951242421776394987896695133984360693940987023442749556965134726806349091540814579371537067731635525265101541251651508632229862712733929778817520174579052678718172643217409687370611235571202745324600955441272631659271909768958167021037109405263532596059400040334111291322073378267371301818333297339966070646844905758986469226050196435387003890425850815339920274450316415763552598651377113139573891193343275079450404864709797330192054756612616606950390939451703165484971583928953823320272836670232104921191725340497304621331505194878792960929039644877383982062375802438831166871711440371522357862115180221278096622256793888332789811046815183119567672368846014580914212855599168154207556336918280773402377836374021636389777930275018980122095124764222582114995292909051310896358623436376869946377049788421313308421706208249456104050189540975945147922341724976959296012559062681862869977114311661670689465488432942509432742292866440526504417934716680447500714103739890836350021662416148416940108941119020027456006478080191414875236417988800065528016768992799276911622772251371373223738048026528246486297572631617045921356094461340106928991718935582269293580365268937487387383572734689233224840753406897494824382985488110919161950531952654135052243002337190056718654177581616260766026373515765187188331497395402030082230640679614251327652456809657089800976456427215205703661806813971757175913105880566743636180412702277130599409201948863351236970329883487559459946362328229807685142795662877800991218771626486149721606316706743187233876885776573480584651947254735535678807771042869565187749982368128441481195515067059394422324081550408831718977837793411473468403139804504571708122180565010129165746093520330044284464179373293263571906199897076711717330771988237387731416955587696038367542187270398523530308342620423506951484393699595956088647477926717933257984690382499856733546186892568063203656309267576665933021861600826181657165401807386781326098363948835677522675449651709936206856857602822175231046823617341995478117441637963940369968357634205869075208796380865120516570077469421251444043149198533393452234484489779498915570343145282558099586989331418650528879856602192035652975327322176145636263907983758934691241107901158392937637426025326150654326495912570515497652233187561910232425501636522186596016063419564447206343748385948436268666737649578084986176681807361356619982151106581901436451034453724269952740737720654103992022936236379866153558159739121315314354624201451984102192079987088366486061982884020545122822184263678261701762833128473896821735102407866733789722897828666217139489985634605191632886422933242300128638207943839860548171503189595250723527405178982341163436514902145503708093401896278507342611947977347472916939278599677586743432109445284296110917300230845809985294045822460182520482036886165125659659985699752303739379300601993261799371877952860466684625736634689893738348076858904562472695494621135763012287520968884944104575283203713134235726417272891802843573444931441663857487014066514623434052845807292352071612706969000623294475324842814388354315738312555874999261574495535199311157246723807685985529832519898159541712615187899334122477772047848055096730020670006651617909751279075295395464577518929700644136031517981297148266842130171542531326483126209736045118264203419556484150589808536502923817593961219172779553808214468808311679768519097256248643114777472470166255201357040432418902934767331331244788463344231236764784236339549461474256915117695322393199259508216733608991138315019501508019613695579460375221586264470336999179815936206782038544549949121805797816713731599866151800833247227625498430175778225840693397694345593100610672625118616018674082978466625624050143822973348008578348873089647222097577960315509695408112717946175751906024900818528176559476466465999958778576415017835868793490839628987165242493947853558405939521298058531035761288182104856314488394310133701638202383051515623622940459583140270817905237130184287895423980262781985973188920948272862331557425702457519089163730042919586714886591615437472393177678341189680337286167070832436729428447196628429303780622059172751154548274451076696773476756278883734902931422883782478903760597023263499954388861438767726317119100361978148589344007501441520528328860698386882468753602050634499158295367510648959492105915929842844872149231492118548614712136116600409017318563990019909594951427793354684584629586568933575215120528423347382714546713054545523670177224840717704818613562897375792405501489446447394784814067165312643545606767802857436255784156151190604595222053521414372332358891094824982439145881163646856501756804556506603695447098798038631380946886774058139025694194273014363774043482559597725629083968698097667107568708991745719413218744083354304759186190362458346893581636737579368873665922864914823168365780967482737112732329535275377334112087464533397142340322612047963320903877847365179843391888016416691522442616910604175320455646847789353841908429786749206247513308160806971381741427232251816769418224045299017831723067459405385179417462127011031489661819543697726760034509263631120951806927820403984433198075891604345564148764206585568702512462899705888079852518751415600484056145591311279654162071006675240224476384334478597836096401554723063184475748845518097934070814046390903426063701656297002730517390888278894939790816124334321276606659803109295606403265498082215857689191906208099897431311961658944181648272791726948323884666069463740928377193123402347904850541493782615448494424944902555862037586912336223855284403075271086729084857147348265586621880017474813788114653461983548041820334050246793662948502211909712890443907971518412245766257212729838605323263375069012931399408332085040937785826027647989896317401094405692444537648751109300798910559464941014945694225570600612382263749560434246337798093185130439436290094562033493017962269880344635135771101521849952938667536496270074258653430410659766972942636145307246986223011019576245073870906512895379485340255427257228259599957967259288193565226767536707101203699975125462504030580579909477502969830812307090310576406180903250425960782206257160964778361545662549163339068789968111998454254330847968738745045095415508447553235364523210301265150341192375349587037529071977263436137013841368641876250734286210584968522481808497912280367479275214314005104048990894479753141153846614733797486437428963110038865169064145948374454000760062306845321271157402674173794624779805675283817027846679616425933201103119804697647247654395256305961361328995653488519388264446519122337693992261530145203526464792533975762998478427585384514723853953867101640751183906296916511629323392438496172054144834545295393181365210979031947820948879783226443890626322441912369048801714615870131766670213000540502475343105235820948320188310173826447243874483851817284017648878143608227496948506573627609426653643992499647978294416729059047351082754381748282071373578017766987700462754904547224313134586991933077192747095826179738985517045219285940140519907095281635748226985869750104274877393637428905622135322710250382676478823467485479489409228993722759230335565307618880526961163180258045822275477048199082629149567783106548615490051322955702955839490572618605257590220666454477803321277573416853674140086962116349299242567247748134851939986032799007611730446383396427743948657630122317019739546351609961465863789491143038742268990828398089165994565404275397726806816536095746498016292152947138765372092928968916873553784191724980331021167478434589686397841635181976412874020379679603342689434807466266547683678088780231837017603926601491121442326933378508449163412858788830166810181129823724063731681198467436591637342331570957844632283712715987764289381993332014301811079046806186647286063159685963809623461580388588308949261052232424050920854378919568506547897657496038992776040449619283646612477355581707386405218841141300406624712242867544484133666247524857683550051346046535748218643341847890420761386431141561536394327073970401900053540684790685646690775054342083287822233196956830663542545236152200669992907974220614745464813709408044660167703416793281494571204030642075988193661800505059040940509668663490201314315065615871883521807612685508758204711483320872305368624754894591617184354582774437227111108722711783418868718470241918710938661562289277912375316622906025329538825108329321194640625252763484448123873030276832167879800797051735710645655624218476020489436743297258063310106582413026088795174569578032405457688181738068953888709360863543066852022257620888347112614813285254649087339042002575243533258511688134104335710868941268596786740980505164084503040040361061262123517199848443663452360265719503179386165354601227376775539064895168078131415125041578754549978352588927551176463027414876492664620085131423659750104243555840268280013617721298980853666193365283141662387799273440855158371716822968580211025294392255248669832037907484600524701461996633048968823103616164057021234533568798086412421355209865302130918046446206058816529838087112965232930222698578961109913257009322750707140032242440745145982505030153399384882756783074304159828372328835533919585727632106878927605010623038502747089823485086590486465929252663948704866405415726504742219838130901350765178722374450274793610927876253268037711147919084536378716459254826602877714572439789099258816844698252422651234557691000785589143398072917576580546876558170614180425833142145669726112199669717473123214522772293190356923902171205326613159395936953889411198325510159319389336654291623784530538679613350812755206467909278871464344800638764442984236049822488501945897845379251786839088292524854813373188821631764361937897494890288675038373547768463856514342436667634552577429070614335501891737268369254025700806225643022490352858236559221230817997914198870664729791819566118561518171225313470853835351601049946944720802377174501786320785843392720828509003402130443343108892283591352725709626111377678595722760310998464186343945619034585523631224022595769352112404108427705729674915783673856377676980623910593421179526694415967225257736701963126910020846581651256413604599666051075584364942062190635651683706664134240154430317206618877281475051957223603562223926351988572580708587733377388326550317909770198266532714232878481172363562173386069102886080030882344465332114686545719057860385888486805948021872528757663988497289953135851726327491031745503604175386745932620179267956309613760269353518215357259436421255985431610324258012617614537477715003536357973815183797354833648735881148773791190752931169926396650365724469294644518975273466186869293421881623216769797412747252603469703442681624391196579734346984852969053644167950737622812249345334125699553687431561155607249695400824553389648145546425327314332771048514579251641122350774017370949725048254126334330936996601362493756575458302528427382667845058948103058815455087426393604908570281896399096332095102145781703540425525689503274752902710032846428213118097527067757506743571922690056272093701656345114565450955258421143685391813833944137705771254834849848694376724987940744421174820861172378509663785456960750453195100274952426410025646481958271960105531662184641105744409847553054778549870646214769499434180958333462707583372851959736157130514784551901464105820086582456047908676229602342765854895692806631647463875773367385981848350671983371304665945826599961458357308859773013998082218679969875989635716223606999851532741118193544299714636063724597631196259800982448512590346357462230115968108961067937814868476808973679247008511500143319894350667896773257391390834817514590242133066893447706632970369797088238603197369422700007824911253722398654596271353842691579298254557755309103380691392565341781778041623853953096358686379342119537421526892978255724544094478083950402448076631481830399158639694596440631880088222825920200159885699474573526197318395801320189763349714803346777192746475253076851942928762824117531654224749108066623327460729046246915043122926182165957592869214629694622245035920047237243298785318996114505338297369898464037322031646687691953604106234682606990708047164321970606299559356120759422563820777924335905903328429661692846752747658649600549916652184641288846778721679944046326374665061090977447459314921366892163488983927820105179503822138830138100838722773198017326286958715395848485398883456826607759010836320789352379619944449552992242484173012669616311205064731453536890517120988338113512955901959477941049801212547494366207999721555968972948129339188030606471341672518970958894457683938215099541512291749851571002651493446455244443858539641016714251674723156776302678199533794021764210859249549519516118152144064170299151335849431830066646034838040446890366270996534212823582179838471235399349188894347172128203240089446969079954380951193762040892166727711786484207196167675583588580781255265764891508330625809882790252632492617745795769524304641623048154564617241249247009126758352130330579607992832822167773221625749913572463529821308698196707300990576755863822998105127108210559521697185542579756499063024603670032613746249811325121360642906310188300821288740186455039444407437765032123242965740769486572291151892255112883053216413215192746941711342340519611328448970143224112274453765481356214377147994158253773710427593037826324189863428255106167279274335009258159170491073727552822265529764644618589350785689104800268361064262105912721367677042401969581690540603643608156412678520894507207911345037114670510980777221363959543756574951484150081264697031787328799453079516148047128243160119096268771967532203828292441265068023135430004469958025766417788999237301029671798440228479791094545140767511979390062625119288842645335729535405877193050189377616938559330720678368990166803796615939635931912176844677029195128975307020597580852495081513295327216530464286735890429267397366163013003103035657549114179258167093461756175032367978750155738264949269641584485592867189945822682073356384470675590925275266325553064343447571871471306349591391052836901490312506896444543496145559938948568170879920868965536737713444280841562882655311999188693217093595882343879761339100534707928496218157860309355903763638094695192568919793095925552013440459094822577405981695077213242492084929239964128142850874503742910981587160612439146061169995242828944731085117523494237483941446734329842224125973873944687446632221878220290185668697380241703964135378823274115560699382715779859112352490414344640676169329196406777049389734844118329217975584514943013995134908351932078333631806307763227170016916962892724664038131889259964003222671049003098537176596253865589719140456365454552004744795899987545734182291282249108938649967090021606036315700274022713428379349189762305993106782632939540056043346792518968457743079847854018200106297374715410122098334442259914552254688380068954146805450529150177263218642590205827745712108027295594123274258698213041793299532317030675837094504950664048432605329887159055461670676694074226151240656356995810846198814868605398526303208890014874456657030491573583766591738478225576190511046081188913346610547828545065677900190418587122233777022864728180956568701505510455796079693429095083998493469577915766760887046832637783001684437102537839897511309045261003085011281070776451360870397457984929626620423843947297301044642631843234132926063111582689444559136279990942561285467895214475752456993186469734732984000924423345714661491470777001283011628583618063167112437431919480205712283481590333462476804093757432643642290050616921577912877443571973777409401765992255302602979934606313392480552445812367922961299071941206713119195628724114744164748099823618046602713779950959788071568095759516269093168734566875787961021733814146814073217507004156308449761378015007551886578203436595504510361377769585024974884025966043913975688231048994431777720140858569608310675002975633181926603932227899886122251379122557591410873193706387404851326360729133885880102379752044679148517419908525426563090234564907710560722679334303754830747993246082513508348476320586522471894504961289942596348064313133106215015130708577749253787582393072907378816590388248014998563907998482894029136864289364989188286961148351034207858283239665432596041133321221660818201518054076765294617080697653033929612083933448255873638043134110011213513404578401230278307417782593275942376649282966433408115843461355972518552477584028591902166519871411729516684298992553952241939672129872146895480149275272599127895675491958190465056868468832369401667346540824893771096637658269725898508897988512914011895029041181876312142355389453709314496144335658015365587734389297199247776740374257007493539988377265548900916047288631043897779070396349321932022947364410649429691770752037322403659047631173489996863911482864802655369459837351969631422141480434137285860567373081035434862040590166287168584514115959959232434422165172218629797055170836031457922263434633209821646392087454905117257638768333571496718681047744598104903651994613705687935752750146858942829283471348615458501671960126585337178961981373746932558383789141497160968712149508499418814124005585139610554226665059323742276932041291565196834269245977151325220127297844541921295532914474408432158571272139610377253263630448314005294059216419661863695770502211702905934534295977305443136572798647873405587152139897276402851127140072633412591685744468738709218803196719677032949787909561406868986504343101387048160773770347953849752212127583305931514979012006790271268825722215413380232386794868137908010779304730942640469881922131761733953931700401621181394842693184717078251071322895645303169988041007147403032590210628945909647551944854846948725257823747199610636780437751468458168099605466065966665142234271820429450867402528936268362634484134312255041451628035421674755055106905234704783357622253803223898314363184374898289558959272507615870574851431589987728790518493788222153122816672264580876008908905710301302125577528696217486355928579032345314337994470174824719361263379397873699484623342269080899886206225337155191993653918073934788409536495494542100210696720544366028093835358524214909735575854094923331459690179983644254963521836373044177283094114008815543049859069382128074347313655643061547841677470179751160967280194001270216965888033867054247296380863178859425549944300824279643046963549760335235935354744005094524211338331784504149513798134446749606435544567434056518422145648001173712610493027059989374615926377433206844619650388723263046392908398694118181675061105313103465337795506020129755256964097031519361289278379286179265006902819986540324944161600680801843210267023557856952995461367246917898576559079147884527615213216026981740124557032232400585492711346442915723227579761758347755901163261570254717381031677751137384130663476262910891445039674760800114401149924989256985228856843572170273072425373393067989520579728928875066828406520139765786681525994771949419291083952550534604546793891428830969733940277522450219146948746542369906458514545750691319580527573828006975186379755465183332461573595572746717569885551314413078924810337532092507951543833425341222101929207115846260889920175893217891164847774083087782265966887062572354679003765510238734083536256222813034503857180648238458570311407708641810396338683222524054814883055006703747049529024141879567067392456763285204596445369593577162068691619203535954970468677369558025911489522859508918391164157290244256959526808042218552665994489130843003955256618988720152465137862001637219124829961049671316945191960982005046784031026841296132690588364023859442287070209940064419737327088852976819986578431732098609936171675650882609712892399762849886700935250526864184576682312494736198330065117897575812190788142129031138481807926737270798008956335470699704473306982632891671435997002763919645097993330354560100577132463898765886011063203247991505729092389698266015291612289750421734087356932980349607718971192938142691970574976979263774813158128235008153241380525914823207601463977976832501959491560260153171215689968692535295433515795042574294767228065699410945458951822566382086325917762930625655592045314648376755737373579835126002783516696189805471846446604967594898933065080144617314338745912505328401900979713373862552969982477112419269784358314063844630140815686446540542452191584966883776031665032241454965028483252517611703362017756280448574638984370975939533592085633717463160049232060476021940579728366639714430558759417271782493246135266352777674338186198645011104398924082484772735290319313668184806242484526654350694414244529079882865537307475762807534263848687564516176828133960687046148535707514485908640028743164934129958485686355899396378968516659480028128822969625635718874073428124070350520345167104036952499262833400727073393678008100071352764046149051274407870918610090885444882972598113887051930500045896188491927948997177035242609424024284418108285659086221775695627702854074787936683830086913247419897195217975916245945462830568975860863961734542145257186655232115277474197379247850384978410795068769451296335829895313313945560573279913691464873525599090761348613806885409384698752216069516894732487966639198792233248301336624121991497959165913115031283081516102982109280848815065943631748036781075495068795299570479152872485572238174380409509389946292375853079035969886494419470214574678207923900439802985174262500856156959976419142549628309712267495245690204140650249011505662900230131471404399584914374433602897927573232476577265219262761683126794285011809991852161824566675307202331197161669621351615101389569740630799734267360997695667883623199757205412019365491561455391656608574552225794466929760716950897640211240041140720182135616616140200485642456603228394578810078590164552343816793149807563318861216841094206766791505604753669490298276314940657956373210608554153596035722136117343077855430894812114837615125031682023204201375963244933997171575062604559683777113590944909223646450162078798451580176390941966583748740185823113101165584132183272463375599171872728001084559664705317092919117863072062736468806510252971316793543529349854005426020620147732092620852590789282515047247755483614667135632190565590362347265520970289161828446712145245947235588865847208910934086915639542402695596347198585118743925589885679044423333145005057421192350340031182660980643862850639353480876896326861837681347767005052563899598671607467822795531183537937446667774401179538664353838004782067980980283420179891501180768464192717827871129427796387927638007913632851287475575755806510559665170773378342807558767386493107018841216182358516198594931497484261727445425785646478514361111094091579085503651187868021274190284962982108278537899421258400134133124950980559149119360863846706928634922411293767216012067243797814284517890686728129029233187070134645686064965995268152555327911675013723083434949835269124960675546791546812211726217628300895576306664611659393544252876754145333942928733200273373719558544034350631804761674652250983629108192397159341731517329501966812461889427030161004580523524542021068997354127177204130070287600743823997036767244121550074284469520478494873873767415158410829004220746477488136593446866795547224290686107196748438537874333020905652735245115058623696767345450301405877232707073634607491255031604024507059291626895967374994817153867103732232746925712294044331828920106330194549700996422242288928060117732353388288524660946736177794007498041193606638076007262264888981938077232246373569161271584300944081584662422278783015364210716174983540592459394003368504677905005101093684136045134790282406684882491019113343239603630894167438492193371724037839493669411351050367402929376783187415250175903108558236411155137902741099397911100467257626529538714869182211047929294355331531932343631618307736394987921511173882192435090656556808362325809264878344584485121741897319449643610834631664260709969761930892355170621038590371374997250378519466567187501504454086687913982698932386832450984989903031665425843942788638139388321342927235002936212085988676965082033814944990470065102475437200960858928167361885061919954447450530525744549028545661552361975298717410825834445967605457600311506374576788043542949691352546212612018569152511875825741000429954288569875816948795213134677707176602589215624683141292607262878336953436454017753458910506332776118128037605228954211711784948777323812926662564093491578384259606351570594519283259986807610928666542914641616679617490048117359538181314096234277186418776885321139372009713992140043360912218891983168281149106790187394401704113836438522783012496475422479523352385866545823795886977538007891244397336144149301612122954613322310857087648658862883670687308746851119212628625782393800321106962209622403639564551730407779701679974806688088518069788769456447801172140709032631750644662292720854186280740091580487718113197681218696298330559733428715420472060541552118107837467256538625417133981565130064694759855470663673829811835319536631438970418368752942004684908247522032427866462174660767222536558863144297717752233660732256344769924057997865474530649886936530396553710216017913711209141691392476313815955326387857798448980123976658128393065464435029580591464285287358689661242578019639913660997388343136081502812158577159553867219312964466672696816131729524978866475057199852290425013219139480381940873578384024959723570796960653044272582386791398593422223779525135344126479705015772904104093615093633742871322937618522643869522923310785798575120450578248234174678326113719289951614210441105641948655050142153329700857409399369668941225654821415494036363745868325105670709346877044999187849168656881397505945051585092684831255492783525657030527211191420028096331546752514658507510992564755525653087355456001343197190609297221394953423539777633998679717311922099529184164555917738886469832295700569211924911684752744037462472508543409092610050582701287592843290198121669584669008452537775559729707515739147823394990094432090568314732011055217656383112304301721903706832002539110113063796518451603656683421297868657788261972279787593149515547862776503470428276702437050614555203264542326615127568033473641209685495070942105643819807388234373813009926489270042172133859141712264371829226407538682990002800197551938121357978493988599121738465789286729650446857574520269442652630770243732233833569292677879414403670629629727154178254451785886478390527856071221142060229109967360933668824336874617999263480805609716485448140219248022828700234101000094050559131721364172679577915427680619913505088497123003478260299133478197743831785942960632249369323518334997608175221115153769408935787579298647350136367561900272402353393410208112890778841231700041204188682285299732775127148276640798730213458938050560498530842393873995434135338582082738490161997608902292714347243812517986335146239208104333612545084751504398242510258983509855235512754488467262490296536713071410943546733264160630686006820336065911995392563363595650365712613169002233514668583935485431843695412974658396180546941407373056154244014256997738955965813273033330282151273163917739152206307337680688397085117305297969939625666490620824821438497717669127923818272120306184609138257507630198254761456101416336431743173158294434280241594984034959063367350708050569020262794059693396645895468935783771708601469606444357087252771237183649388514808467036939260580736817388225465046815420672335320258291771038698843666430439067215826840741530665142481357147343778800395085430115608797765669702834009648389741711863539643346461107066909943118225850649076404777215231903744725896763677183150002075414190795661205837395528490538690673191689706043626918671783111049841104296355742968990530499226076870959554428910235542153483050329313314459428871465194536923644312086926680785860194467779351668320829488535791406286361996600229867791540279353532091632772989789739171516453592249162759994420011445581081531524982120211367158368770312809244971855806683855074588249465348144538848221703339682707051591154700857711078897810795118185139195375006670389651862024886543433429807973501747996157468535360862989775242359404395340904134527728484717759717052207403061164131463709928637195782567607716344239738200562974168612114019460512544792873865531623319164726690662806570103598893304368255830602667341293012311481202340772882051951634501319761493576360796666312919972484649496940451274607848799329573093783029208054229744167322161829841061738099388956451451099334116783599583019286688445171072331887620927596875246449290323712215798985945789978745362519336475242184116020170889353373067396479481315765809925919749634525972727709101491593565714138293667413089134967103975405151333040585761467750087090882404513663940787418072971167697849003896967014691187766418988341680147211608973072898473718718443547183918594127981255318130753036619516155131307846768955670819636838894850315291631446218389015072287098101394598309848446876743721205026316234826548992818860193975614424295684758613429054086363321148477802408688421373255257188003325567897323746801486413346750302522299965761967775574298324325406255883859539699025888632752132073899008502951257296428152751018192381815027955253463318398296795329693620275341052598057879902043304333758425719884173029469919519877107775551916961403275094000652166501928425338824763238256532032521526747760772079959066925542186596119297376525105709389313733594847692099256791214986722300129895544748337342592533543519124406082174379010032712767039922980715708962847485913488878477129353602934228701491181425060861582629459188436430664005475858492771766005407095051027064176340564797585454688027767601928707045298173356011396311642722947292176656405146643894733009499027423257229466741368821485295461691471709779379913335374624975670655070999788816560389230342365983124165377856330339525469426476574592309474619742054502849001244733194704981704272808779081933044723061014149904196181669978013256869366205251180265978699959352676500007123385140043305537321476176234904353878557815599782376796253936950496671779167294094929046211070741905980934190502226827426348574648372329510403431998336760472907595190259842283661530156281933301896100890759196964382678498343392684770635808969151773898479443587890989873222452154566071912763112613772692824150109728921176862521901015620132934719257895616870137071205068224476484503652123120754742565895782012532176057820939953367073492958235380321402899572657857528833894720276733927749181013246147650120634219617014279935397483010465062800411853491831473647190299726144337549057036684869843965083192581216332894462333602546393614528600249057836816939762857651368308584146781026697129712911684061077822017352835476677778315822111058796884504263292997295544942409439667668327304440568251501518479504714207477404348602305335073310961970148061367885676261204108722126792908824638762704421936375012931123146263171596789312382088508099240350565972325512516779903236482310459719203680546011156237523574019509925003324889704684306274914401820321716416832320195452834820689787452388065446790346799284444687258313965607297758408760282816619429362147753009717802730745542903137124677629574499914099076254752049754895934461905294290453792244090217153885232403514471522936665709652715889807298409760385804420075521540705560204268584103480044509213292090214556167859223050454891131329256272664738612389839437086855607272922883808870956375689654471903454100565824347901192571908371840785758787553973850966414397935955202715014833281553876736910435625581920022623526430776826809862843249939284077942865108395558698005791266546328976259376308288227150337634390498159353547195721861546351666270870746136173059162342140036574514793314482725672922326570817817359226039908782361879949982024256302001384533591599462202565504646211783843479410513874334601387169796338822590668608480985970551152167707790688920352674327113839099396901026821582815223513161531256097986814062103969800837299737767034072368465522670074024458083135412472959095638850466470031380723095451684337115667718742974247642062374809990960118263358187743070463553741898875244345546085943259805946602987939012004376731515122876694164669599453645700577277214392673054880883669996451190104719856024505219918874919966146656287201128471446957187881114528807779324828587114871445753199370134383367484757678604960575381860252368295430361876710594924106734908622353754051537026534028002171580682500666797248851333742605463893435755993805267330813976552109688186688498707916255579131272217856791636782433275289945307820907843324109493668890152248917397071972850123062899257835938631422756846517917020048618870963411348786377692297627151628270872031439994053698456189990539974561115751105237067026750549827645897780546195346480848780813326286876840743461624711358427538733034117059618821750351064853237623770289564321134097543773844043479609039869027879762945541248764348193613224840819892248944043999974058987606310460387563313018082929417047450445961527794427581797335202050683904532109663069480492805285735836336840190877004863249978525606982134474566213145514806243041868728892315934927465216918094865411866657928352662897682374137580580208837476853362901549074450082884399191376355343002341828452998417465826926337410692993957546303643299958660445721235662268429924812550081782777157255041135875327455822636683114583122021975470685018302017022197424861697090491144681054621211175128968895761464819342922304557168639874330601070150230172050045639828193762355135773301174429417227860720556337255702661653223802408707784402388391539111671236031266412111664526917081514664998849642396192538569480712928290700842055550735131279419421073684190686765376021226062329884173059612649102731598355623646563195754609048829853117147336577516368893036485875787589941004578674942107436855995241025535784206274356559000791481461252346952409135253165457165121046009054271013933687639478103922501587512558794966148650515748123502260024370616780806332528739871035138304492257626626968467605120827556616797016067509162739189716908112467795864413330111538386468410865836830232886001635473618572248698047530927875178418418718920187565996571485913040697356267027710682218131779166577192252806568988267024205955130877083340983808272331281321530081979924470409750868555314579276042259624058247044515330461993864931128152594485651636133562577722972005279837907207448060824681238625486277350591673506207490050925088112129384818580879124266831490256323636202492838816691266523015409295296623366825178615248142764500638469482342510861952024784497266978381541171341562988314809328070295273144683622276932856506198044508211668444729023046277443225195548603771228657218037661151502373738782501407402195102622639485910714812025076422250447562941368211328905261162260691912736490844296177937502789862425091537300208028850782458477627691190804481030143318040447243044181552016790218712614708976674699365203522693688051134862046425619642329357353736687243806991621768862352618567707948333888621445923701631172750282154351746743204061808763305571385822812530120560279651945513285014483015996978989095491003360130550391713428129676834099719372375008882758274377494578988086617141684438709286772471032655858013410760134645681934566063141187579668836416915750115490841022209874875934873995922179477538894743438601141137144551957406564277388852074248833312039560720305300334740975314300588547729297482855952596848891058138236721380029446513507517224423667377318051472054126490406317330314762129094502081568597947657249995792974452956373189457407647225179704206851578092903576556570812491426252881493774700980122164849756200805575297433319574205026337771648546185266810094337297394297572843918432382761936903944859389084613486746973467441983279450893682668172689119888150635475553009555939121592217380764758198477375592594849934413696765390388040271493575813418288788136873821669256241943170690612013428069768164463103431172050891062475751294105386691389017650586867506541269484221982042685350435934522834616920318652675168027666406960913536656725009442009607107157521123580643020647390951010952788375577960071576226091342129641318804549214062116611585379763579444217353062580288492716499475240609453263171279695776937423941213164189661860318109899975087192742085130648196143527423229243643571156980812939442504613665990628348040684814517345026541095764071604879391121469105744750374244882672273272948781373102672693881784216799311409904108663301974737589299446730895277609281954344438115212191272092578575396436533096751883496961181469903583420770480232658263517600092027223169904923385919650712347968852062021632038480935581966072744097347684997068457366279524335946546790441043555244145837553371828410362667077257583483405327892090305962906300574891222667461329437005290075270130810327870540304754510586387182458053511387547674209704023428426198661953552859312649114780957865728383362204933197747881781465217727928003281473345498871508727501097386534541486718294237996406985587754784745599094652624337133635237055198440815795443202097247388222008955924339505515486366061473264820951922553990134709540566425479567126627790450180427348286922024055387949502204816692206606938987676886075113117015850970716420785963100755139526521440606564087363231795680854554283076499864920616657678618703552022485174724622504610854104891866556372946787827405808332010978250579643478737108274541388335788284769952364663795221785202305040059328658780698022829998478799406195609018990229989613722017367671374525477626080036173629087899255088399828688589966413934271300411504122111269951761791127089627525878321223192580389135315848434543027609947133051776350989024563539517798542630990549896971586007296889454121112952030060022075438436319669503600950080851444632571342725487863753786939083147251612431115412865646596662846644756514988327559830533301014601209289895492048370410356705008816436600147757065431730650174693874354590409273624732398503001622740350700729403157957877090358454649587580303380978363235367926850963918093674826078758331060725454135910223999746172749958392047196869378100934641001501156687025082711991418136440739465964606454450009977637890496663902472073110047427039501518873441858396557707565067157286946866971936752000539628428135394962167750677945754273605450587184671979700941261934867681243453993523801216187239712079332223958133235108235447658473711311848115852902647389698593591485818119908458135471586154262435192645228664206813192196165387696478575441374795664088614491651505670518768411996372607803859629523435122580907325809722149859974533461707618086579496746754378685830481971912655970748564129004884408986456472882140978995470805169533649433027948889003706691200709976870721863819848137193025704494044364761395425757713739648908407926606908214633083986501172688300675177838909029488150882898214546108726237704527935617071415209838338880285137687730795551496842281584239428993832922986452698503293096199255460064960809369225536106923269924997429736639099727512822078047515530299362588668851171233172726736213398867066881944515286485985105234593185368546914739809295392742854516865483109007085489464340555918415368110793796645852567716917970283608551553866469768202014243825237995048632095450632962167599412397734885131892571005881683535228974462908172350447966767543537896922930006343610508959395357215062121927244584485845617590302121145367098281503273092369468907139502235323610432711405054189241735640987527657796484798200387158764636995908320135803751873696774812864813451732272757207579870375782392377467182133539930098441870501905886265029854192951988819068387696222568192267331279353242290581881941732288609933279351563651561266639325415568566583679393985085054609557711661627203967573601370996595578943139175773244109880175250534688631217222743775567028134806657861161902670404797352813016357987949714402496633570363987377045631655827595630232208272955993512773427951248294287480966040117322478063076816261558367650997772179312943820256083383909327165430093136674486863758859705466483350121172025123569277754576418308304322721181112316129754811322327048436549986149127340120250614812892805278356992655273357725034321258371515729513737950060403081305638020624245598044243902002857566162225739218718635618784140452075966219525294091862224712244910032805169203477019523005352068047188453463556637900489602199261014780142082235960326290155658955840978712308326281324477157451014062825175731266469786350999828311131326476646322476206260147092709581022880147425388422391029214343525198936828790705095921101886184911927486248088646717875939711017393015762414937692042959715464662831776592652942487745998706902779982643950510747363914244481085517305054953769220081313342795205956477948595813974598697637352527100530640948796991676798497841908921067704022124562773745395197565792079483264780468229910659337196542081982664262975723001667383739712811979897125879836313932980922785445248505839389114165839694622930218865171208344081445097902408740190964599575487558907378221529245216140794031924173843629654199695635099394029056141101261679731575318913159944573381992408958777677794740896880059016816967058541633514573602802903550206496395688768668873131765535300350266791951602792151724798118462269973216508284758742120397397669802047296553444258296831685116252852985917893307751849410651476109635638774248166994196334733576268967160310672408219357403030144479381218621475957734663515158687410007042661733451459116574536383284895962295843868775357859164508540862136851297424705607254878457938583804627454530275312645316334782228217372949883329317086700147408691197541721744366756807026553244066464041218218555501948375218475829938521272487813762443085081726669802407774044693638990748676297020851482644399574850621882484366942599540346724601935147097258880285953831538052493219374451083665472014266592431065889048214382913497056429244093516581559929189187559598889897999667078874115412852050530643840090135559377929164400317644613091495734831513285560705372813488377410867586992661700579294941673528861487752187305923505895666377873768678308865791181398858032978350753365195910335505619897887766168744531475672779713838941198203083300596414637696192139927854711986706639449804175708273998637526263270837051460648872994761602800483764318543541194133769484219288241277244152269979798545323544976077151829305033601463056283031834948891969602882594308351805444092920755795318451203757125611395220421747387349904428585913032624520965351859859928534988730897824965937593201500418792478293545624578887749722950159817612809761545511909162846834295006688586701839589647714665541938229063998673808985186199914655209296389306986805688082612410012738840184480239355017002137894242300954723878713795185010395924136184577428595485752705692802500488205364894573767905899601332035084855144264071302950494458994880627243548455964905642116427261065891531096425126395333476330173535675631009761437019439368798767871127227809672835851649210951131083662802250975656164681801612829413656264688501630896121932168242608228955548344762752852908668077137490645823211662697920499210160918829542495496349108993223611883341703602935332995576129654415855053432620165008729390483191578297789008224782164136313299610232499647919915814595749163087170152290287984276643822716833875220781640678099967543251141923049184570644304742005890398922227940006864767857221531292810905791007105210109379871017681409918867585540290939836324336937038522784343067853193819789017643189299498173774618111763774528574952933104177880381421853233106755399654814901831233477006327260500358988660270401362951455941905369939076508183663862026967442696351147964056119479272347084375696896449379849249786094040052358658010378538771862230532576288429975929631451046246743822315158915128257425860688713820136078428301098944496075867016219877200843988410103533905011089061296657656084041140239950064916522188621557003270502429499338536482751490504037951330317585518021229220125725924009388983750438069546228008493284067765856851798374678253481054113029323807449610067206844279035317699910328601637866287310301068430570970247148548324012666238491001319112185578466163977026769510513433928734889570780769155428357141278269221733890650663170580983961512810265261145647118276996572837011949893495189383036586230810078292593135643223885427838622330598618632964352617810745806230105036150143087702523735564376275984751942238445777698020832273398754452608903408347885116091034273375947279841842631421332265253255359001255517191254587811189068988519299513502785186568173282453388150371675796892177585543435477706931157705249103832503880976664347469349366473165202538318935293306219532224858711960548493113776727837682042754105592542336801334089459229725549718618620717819313558835729956489154472392294558747813379036005739824162055730699112601665056066179820810441747311560992104997385618286762535570379178043967806425661452602600065699156216194320496727011506919369811177323260770743004448299822384064710186460318417008811728838333023570832671403455868411514818925033860155393406712277698610410513872527150530335451253093460716987841405353161605355173183882739966747203533444243712752154710613512419187442787748106139060645388015799547985626869763812884751539430804236996388142671813969461626833686954703512944587040723799080691409823318459003518618446084949134053245256836878631883938092397383694572402176490194788487180889043054160459464166290625331710616837001527506929934469431328180040265097870062214991620643665247323375883434444471549938038114310159492979544452320258042630722831141251921100003008518067063838062759496017723485740420971373502358676620179798018561614810445713649151897200861090999123152012887171114382922758218049460505245481784644551569647492661923069972755340617515835399532316992434153766655718072138882041170313684708070114698607964831573279506874726064158827345663456192721004108068511056455122732661907151898090980259137618930484961238507488920505826827141020582152701813362985468696183962983649469302724442490297236255895394925888056253755317781997244728384204128589436225613646589297288607974765515458831065291423439318471261140177538617055561784766185192781614395740613092247383772219777016600042035947114223821954806318790153685312733811790257757656787791575974761489641761915001240655646536477008088478689659267074166010294331095977761629981121436755962839742561591146761127117946723708955898696057723317104646338816465559897911702453748583853610880232221695787306217677146654562571781013309833619441383140694723281869193659493359958523897674645284784241143941436264812363057531611026345100402353898752443002299372277780745585609493567678369727046561754353122467359485201879034012282080584683996405689275780436344016187234662463470600113201449190927953484971205656507177068369666393167870948961145713872390819783861719233595968395113018058999061008831522400982087986301092250370531690289558757769835531990014910285311149996899944498418275437297292142182851269273148357756450020560235008799290313170643795666866813178780396839060487170981420621489590187661938484027295092047174666243964945462069136707444974776034087918909262519861285586225612945936284670961829325638407130268621671955856218555388577734164945797013725877180650820403297153709621161885687922867760609265813735113213156816360228269410550606628543027177913291135639273636367835381275587566859721160672521170258486145518844311707706595220844358016353797766659911545877433228268278744945812479990441670944554783053700736327471214809451109638254741925663896378398578749466215739819169526383724117291977616485499788946076529027069523537515606051006100575903193300573556033476507076278366327063229651436147432552798933241814871439167925609887713987316475703227157069206594975961060953286476843598393551158304018568487654539417380257249951850112667766245360997502675291494433194920578912565322639340200592586016542729129443487334739241748356889219117719981815926683032627445500657880056774596447222737014739615205125888971878098336926153876219997292333596166527752560553041133576428797228889992126040977833898980643369645790918859093628890202635689750743754061135429898131273973491098600168171972506119193685633494615130525578515969741250079313948423565922143841928386208067530776746202047044213864221267607187126950094683106574561768576896700934836476142025976764329056454752625234136847286802645910251093423775839054934927416374741872276559394878017629354248661270127967491715054242946293445992061808527784806086109029010279931784811956156084668720925723571429720935280677557849091799596515042522796470618057101548208472263539333456616185782968168842569455030313385809127974647976323676791690624548697949325584056488778031207829812526310400721173149758149022028700356163234401161059753694808157750207337587502303752198966625352619963037647460784284324958662081020431812430219154988702809087096694936663559650265504586633076609429404551721768857559757759393481846840130198649534360129335366222437797864732846553850131049125269224732246257391535970150860691668315147511605879747238186561468887447722702128291786068626903133470106239144686722046952306477355074566470832290688612587621518653643667693288919992953519494250359464022694464611903510592497016403160975938426806850790477074218113762955443457849072537081965905238392246562006636209630253760083079803383840325776873158149716572433392104302798632320589746351633284932206124943998784310760111191667123365711101540240104078107580939875682667951993548194427541050481789779046737785203951671226030776223659388779204341457617206363296428231665763516460721598635391854732029942918887241374629845276264895682743931876989922907308623380619682501795918929278299061047223766726964817936915862252480880214446293307856449517104857576358625957591033879791071126615157824676247321175066211801471116035679691585854206326243677842619303890739668784469784627016976316306877048867939623659743414105536735596760480103844866256987129800031342192797048373556811965237447852697224444511606441477147368556403536891499970871535516320153911221663634335140985712659175520418034173107510382328175361156200590657926867391672105694082396452943951552781379539027447746691633129516489328691299134255932291241203310130264383926768117765668447876601412503931699119532072389372745408707663186607302134446710468442794630316455496240594737514212914694524197127907157579986412607034162098090060420683980360832082438770223030207477584957093492343005009694601577498711698797621493034404179417760513660597913074120259554900780519584119936565224567962618054022271975453839730979357592924888795850469443641996075742378577749022526476079476306283982567083492940528142707671359002557916036963895308169436935960222613776687690151345329209273237152424577430659027557663021488663123264833243148924192763179136449047908077608285432259212813022763574078539806447360811510668931830257774287215714423905349111640928265407796747942161674990590383107266900288406271369487562409507284002827444458364433845408274292803225142597554476351805863834891141173953417493920565895675554881065089038801270837643874934271202480604768855034139372864663205253792566589858650344971354436506498594058467845143729908993265437521924328370545457422770519217051726146834635345105941680096899362383948964158062813092223545323544138395350053068381497992495162787491190153946433231624731159800248746044839734017196626629622259745823295446905781569640637917862847406307560263493213230448570538422174043936389316563395029430834273160784243194177466778642287128239554148177337733437920303339222351166494501167722248727017857986045213927879744518495089123040291759613297190355642800993449407291066521391545266774038397304379537753344558723651768106150165203277025206904843360249775186397334055265970747218589066070161664948940733080971209419169411800963031553382398105104909811525350430590007718436845682096410749797880503223067681756863425677866784326010294628467672998109426953597275464320949018885962305182115875558207733683751722704760211999697128602416719668348436372654758095667912297532121597421224892100713063264304364966580444086228546204405585574529866583023719282797026348257932594528622501051235440156448399073337602152470832128048149524324957533880653027765970371720955449442154498347359823394183605638584491295231884278668638916715601302493136485944809100339633623193688587719446284716509396947326742507903647581481760790325185189884343284438932117228060598627164607602403843423267043120768259772885180375069049109451860964052788861715584043644696441125995571284582571559121349447601100313814982991455343010806019443349498265047955420678094131055393776918780911076750829531725352200522540538054014396546145369782966453587141823708883725190416306900339680648413786535067790208818847262064804553933166402675303898820666500374328264582862690835631848109121910794411021813775089642892982017698576770105968678586035916386214237730288692380366444872984540478147193884778234965443093482208999446494584420380220212694641531521557549689816002953752241053711246345749810779462225509188736962883901592799036559553015781931370121550968994452597115100251700885162061024900422675042143977468984986577792604291340684593204394052728249105897640978238861233507199832231200368684204012291701889173336060871101368606128131950800415114304972188030769322437396927620551796303986406292333658409199425155250599597205123838494232610813307067805806272559720025848050922207302736398079379033522186280661628994005111264754875797152476506196989734466970477986967394434058233593154888173870572439087222642605635574829835472185209473789094297746054419329235243066094947947414403052660098566541750753115223646110330740092709410732413356827189777484957638572264228079787366509186589429398941756469277638167861701574659897591404482875486522730266197680870079066436825622357392726437573883248887278938885992441009649402775777624339474670597903407498654262965702916746031389312756234655215298135906028573038224287037657462194460690219645909440053935271689339250887562387078777060791794296090664762133213794623723109733382618121598453178819957227131973138991119846942368022935823143566059039403817065884129175396596597788152862197997977770147919723322099151395612416824302029489219807079224950393660787580643298413953877472580482643547645328661373051172913415823746750344785541509546089221943191715943247160363905726114469352868563591320142169211509191804214968467479819154528556986025910416129441310381834208041196474126245314186108412099699883939585905800895755347956958532708561391430608236090802792792509201134354704808895020929684430376687190299897281954800096095969257030302305875511690271746985796457095810757349175589814802674005303655421656562539673378831264111085916105054127173508046172257450891897188315646164099160969150510002402783922011218313614035100744760824949540938848865841795942335639701046382773856440121008963275266911912781878671018602497360317373694113013798073163648442454847222316392500035242561264786987776113573183929006894627916135677091925837472383892540183554947190060146022968817972198986629117877340648037239400702622976597040642320045619520269914227551606603813699413229016427063860784846028939044297869661764848350166419009698806960565862954829978204983492295494432253355429075300830308309490245614329736791255627416793695214239090278654902140829545474388587860017596499162393437510746983120117041072442517354259417645279930145943949053570664592617797400676604542710759709164435643702704705480256747611267456379108047347505498341266829910406914084461131375236145805789292533993811304861653489688644001363054552020204082221342941022259481929990690409057493061996973109231884485968253828891264622105047630240829313393610389370910231338381817052484884164218619084159994529502045869056469225149130808859211394914217623661899312490189581898019838280382298714764188455202413181260491370941943599634752634186759569764108577982893324483111095854763828004972564661302069914957505456171090718875096843238301204788001747603835791214313079081045413842754533106643942516906657597302329132466724588621284803859102901654321379973383628951066550516960234994194362228699079341918843002878193061304186075752696121231626108912808308481774085486707418961805830904166444924791745646333409002049971041129326210558531762411847287809192129229744170703536164188380414587469383800673618903677590090307019429481325187395533551525329982316599977659833759082762631631338700454436469701887518764396993932932253232941328885666613399731886946282044436397881327667677037198702886283232904316185110540613557241553179072836371311149612159073040767086383903351027027103437615998826843925051421257263970230822909625677492926136713410524664974095761004517859290706750168490945044643771683258889496548930176643576909024374405988319556282873798580880409847823047697580316971067884039164353205755155217152124548270603860625681691497145156539920547027766335564845011305862521048683326976761076745269286078587161461152165411979183367230089996101109846367844060629952034945540304538605634055570237091972048873031094995279671172099738127664459135421199185717086395384487987083989873401668966156821684204962121871711312258890438109445667658668369898521415463639872655489629480789109903004368008554285294367236482510004416213702531399182178320968637083310325206251196773107630228572888147030425035971396855944566824037307457220426583431435831255023991295999448847470314339073088851622186261040708302281278615861162304959675108306185249273488872958783657426738963732478236456333940094324530201705517498591627678257005488254140101242710577736547557663522404431889429054622547494883748176736035561993208741424568203150105741537568845168128094083743852271201978942812539828761297523435278527314861236844439796382579556364621570973961093897142125668884162954971655387137875087194731888720765193081586997338746987198064526386926173976675655557562093158928960453714946133471058853765217278350710123042651167945178722446458770664882744577415662214171456672807543494997260306843638384326927079548490469853390346354010921145525389774383403317967729127749781786616660082658936197623064483680783325926331243419829528362007016256023512582077350252855296426420451511780481468012526030353524097723423869208406119518305141296230762543939835384069127540074753122717999725173153437358029112917517795136205731415124879944973072028496946694674189538253953375346284351113898501895922407440804604834570365591624625310651586996560597067346182844745012255707709430502184562208147857308278993830845651554434002184521416805786081278739768439417349237749918499545369286464352229577980678270790075506307569916466518354324743217200939660665720954467889060262421921787224987698361820465277763519777082666640352094192986690390954790296924446365624411573751778903599560377765638210884062358068198418640273263790810267454228570517233401813576860962577216196379581186197780274180851001732719661112387956087542624210581388581879580410444993241251623540957394042117343070952056193360455689307911240006581233267616571270730630041990524887817725479543224175307263456723269636598466396804289818660017257009401462403630184249056754317975122839508899075925735486004041022045153851249304124240627757229357063283303693366221721364380862754845879637188352650257766703145566130446220683896715090114882443840126329404107569097069047499785068155755856388647066504979704099371671637140271461972278679134884247873135926672950834125570364371098364161246012666418167084199723590937467570917710966789870398148705650652210035247902193137683011443409745541805572384091278195184074292273472434205549560831193284555771789014662348702262337574227556145276354747076426879141051082068317711099746534137355852369306425369043466548538249706451550310183264613614083670929819869317748933029492814542401681006714617562426384507571587569210638266778668755070341419924867096956051687450314374031294585145404196303001598123807980553950025548283757329131122059836593234074096040334511026837851772009364277389567519942841796173226090244399606905461704798512043880431934899219535845698922313306896384531557847643610027003472573324985737742494038689570290548505460927334203203510344391419128440049763082764593873226506120212799690736820787584421584369572698114584814650704807184747689805214321655443649987984123579957280726721847930315577440261110398040213570762971390326081681113957840558545372702447193507110002068645534812195048064676769058059255291512348082476338643874279864677883227485626549376750672199911254967560742735593026642237135735827918793410720831916537284205627528413407973524339806491644947270376430352193249376223872148376811586018633516828250173628123530076272662627391243923061071561964082584016526296850858226729459134935558649553733744245290389465833510873800548465276497657651471267921416044830879180910390658980463741717107902136036902014013707526079681506621319473872295400404275157914978073367744908290092090505619175312422103354471456507405598714086903892340863251724209473250443522531822780274713815121864981310486001293087160511466458157607225053045055920591906990355907709801952392052708809807163368798095996921143249758750227752928972682439620193139572480727175351748979368368008730329137341353450968557878135837636902353853505474977512829350265837264508789261355728202596600882645553718019836517672890981592854495497419901754818679550346160885187152115427657907889655863587629248906856461818443211747136785123073158044062553016444811803903469883243500750232977167666993357850178660451081514183685635666990806902766830695767424480055151779892662047588949466031612887438411918811124769696072217053769433455184540079184350083040072730256880976780750496648025764912112567525214346534806681609658465273829638624689427484323488865980095888060942954406576510331212806621952499245318865379924479408774333437780096875170802985103297881801521857292525555014813002603565868090100672233056740667168429343298909036082406702000321315794285287666565590252886621601323304791562992626403631807751110472511998274242308164454061854899488108860305645130339334724471699648547948648775273276686716405679738721860376974166546558117714984904681885978056966013065545419386358354135496154560023613756719106615193575900551916819123943377261278755129947382170021940667436302451205141818241331868631776545632007168314444024527801484641173121867787401084283079427421164888863553352660324193226082652613488311961633109476920833013322316423900774467477319507692572501260295135475010439537405180692496694038576485641646684219257236432394863452716882262644995151627752430659871483336656531372429637058799083291448981542037311536239876150326359053749852068460289365963267536699887474610375048688343009694497786189903943586681808949136613205455996407778571154263397502475477696958528032715514905160070867425743943210499156498552507248414738671729475352705356084994494119869584878952864729559350633302591728597355265819026930660541171462350938827958239834124256971036162941293610377476993473179267691186729681712044881096249785183104157417559470402660032942919645278784215690301477439181346498876169992753471085843035807017410361737795099934550206556307757672548304467489853802170313556074555236279099822102329053816594971525684443010133621559057533064952011832279666791011843681028737369654522690656815478741151046657397855485439530046372546052346405003689177620647361026324325900424007267533400483384074367999539060238275562233121491697414691245719215776942278919267021352544765093770325626819958708398314309079725368854748994135953380842762341154115812459352031345357778056483382119906387422588058867980056704066601711958598211048905376595182834251053150268232950067421422062094658003213589874227952829197066327380009516246478589960481638225423980558137745540515796103797717995736492926022081363020025345373780192060390775066274914467153434625558903705928585415289552725842990554074851108320931889264790491816061522520513798298216248332937918137614574342654684622974682174233183587753403325497202937049068770714082690535722889456814548045348248018553964717966124589053505232610268703556121743649543021763694929759366767180705757555221509786461554179094836854258293026699700981057584298656493027611919924565554187961341390496738202643238086416520189855884180779178670798906887087534233745035945237559936977111923499589595389596440828884947340955111012994156573798965804826180280582381879352366227060064969879392635435311202483506025688517185697644789467799803060495972165071860554583146067300111633185598219023125594223167907351973688279128253997621476363240639112934815874328139170192694372946075329658497865654597126744123061320351501849294593188157023985190381437577573932359558408546543666739535990916166395286006380504465532206185101801208403679002934344742646265131082842217208142883686018635193194278673437535013746952147874326011627168125505612843445661445625801699474410164699932062917052162118356858681490828516866978856693374426642117573178960625007813345416999043937277046466260574845755936577213382271378320241873092236596713650127294369779040767760441543497457471985229108971689958327346195808347105565738358252817791882215912332778859751663472226232485732909827363954778078307333463057748718528762363521418338566981369795877515900513970172552406535024620477314675655113847545856520740784826470008948172034924620756441187780925767924800734586380664159848038462175915506436898858244022556671821390362295168917909016160792043819834469154047691268025433517850298730097261246597476443648731091333585594447871173607674692698009462487054619359163983007732283514564452026879199181879021556772923097653197965484351366069016892253887472035818496831239805674267311349390390760875162171880726770778630381833186254824303155789736282776056490031242538288356742190091386811344638726953365322074951800084143772339029295486062059796336943313569755311428706434978777148796312788498534862084658938649157421356603833874216966867670837006900417008681139082682783243558649205533442255927162968325308836840649024910919372887565824473313988586840375974975099523198116556221457342402462385270335107169679499267928974431706293955251588774414190184048551121427642499335299080748574509150658260400668646682153276442851003652318923525679941736254774943268062448383701380803594893726803135001853024492397954887499078577697847240598602136666382098011544085496789833285183409743457343216049451371759352966811573446765829009274842378094702138862589363027218413867792928417575985735606933412202158021717857091069941950365759595238392901964807857191098933284602177560091434644543007457947394648160663025004171060736813086620105396904211116220881386731932549066552760999439807495488865549287256033328880654645709456333207357679014228127268484722493810239041239256534251395764695017101165495908177632437439174574581816889853150273680533072487643607729654106038814986290593723438667122861031570442397902734943563769747667240193202396930354716398470640267880898096258789263099702087724615989767123421517028213095594913506231834265828920894828052948574920380867016224250715677276441342173312868457823186497691436816825905403972155632735794898951851178076646741973040051157200276074042509789312905752009441032741908906347503048373170906200352462779164468665786515133088579634433828621921690736721546268042615276964693147415199086350141007701477401075844167805792375281037556117528513630215264009461860947234294499301791302814003019851024045671914360907793457724444546307189403734997724860891957879553753577247816381962976569184993764662089388037875660019989751590207482220604886426341642341688100837549973899672560550120432644323768869638859774147611953768788872579767500312461734450940665389576546738981207782013836139161301723478815323364997733915105210484312147705967542533856702834412750968325051506164773003951001367532773830415578451884064893957231425473642201085172502491610854115370801998321295744864207048993956661556237214903838512769740786397129380723836601325306662984655498164753127654089540491127359235014010691272683785813179118212971362479947926975570878927954561027429306108357270012322983003379434038762254037776853438953198893410615724713965280390848538035701771249935357962205293231256637935957921247408105120420711213033669636392341004504642178350306465090650762415633871042990889708705003442858832911012711758131265883935304009651932002538783413025025315830062444547107699064002762436438831946115326804417173724524027726800089134293621947272353624328109480062338238399088236089082344144562677903711299280529652858803239473249798183415339531782999829175194025484054324231975623530854660834791662872875931855559847005145382916395848816653312571587020203325209527915610785094034711631152270769556981304625582071473602551787906994233062966563199648055372354921533286889155508236659984432173123677510877811734379699091490475139033351632015531929526606061965735122339009425078992822037530273889471273537346618558793483348677448718876842075250661407730158498516074642311687414429180044606484934819347213897322822546581959702617630366206200875880343395587747366123350122232783801541510305044004633329324101378368869215182257588681221430490668172563015946360614984632890800107203936860240812599501406196880523543593862614709909863343393794139202005248098149265208840628390720655250927570634163792954188149250356828205222183673109485966157122731876601016048271980921190941311448321407651049229729289974997212006227206654387907969007011632651850631556272309351031197517411908228305465154604019801631692273213288626404027631168064257273301602151866502536588917066933233238607893111038761112424469265620510134130236561815697996863964180753418566926727893989276012111772072021257140855875651428957382699068222033572134980714325679931761516293369138844524087717391305667411058119469865773529206499282636718177947686361100002749158946911247643856503064402981768516321205602869047459811733903687221001569881614106254481528600056275410975114709967952255273213688966375458159804785127981078132382111075135189942573823194802705646329911955880935478720987087421556024635073838421501341792417034414380819617300615973403620962233441219255197014584250896964908997499825918243679389145614003567422554391971343234890858370145249761063330941324679126377477600454560899552682889061923359041256514855346749482969100715875103191484875995547972537387546730284468607491515992461025929467887911885528465608634365393765959986850427191227636677298357920428943857541906362519116275564830061648388379829699818010774785742136967921532024670225617771232960346128013653524806144173997996949252938027541061760610423690177119787325902548914311981074146609593770259050759773411047767371780141721743061699669290515124329786554267865417593073248447708909486722352153454686866283075593202930391035526374743975338694218327851548384780703922714084683185590400859708210996756582535648392991724582565314976692009786265332047610270626371371611199460507996480091956750214794790294242354188765832484954154879935017990405823187817238389365360206953646458857649235526839833757291878518671479076034244244895564551989245027407655637955104399887149510605475345282734073051917841407659156795397843842603419891669986903474247615151689738999489664545458811711951825743121523656808313619129152918122749246539321091727001000297807735569574784897109526077479076004268564406764197929230369484038322240882028600887656933920182313666332294196328012251817345308095230383072864169438344210618803660142614322119873402650218696658939201801153829679479463582269424435255968543290665589498522180830391339379138630950901339917469594365791865968503931551810571869467907054867376380676196497621017286861677351153638889006462318095313500731140380072695851313674847857154270559676015296736941026129947929897640280888066727931499989916217814628109122471748882835322500468747398676636615120851451930229846512253756090906933272104032504274881338301917049902195534209097573120653235188957474434954126998186437457153898091113738862728425093578258460472692407771802036567313872579040335914841028080988554222874396070572288998025515930431318776207727713814276373587624992130822404422372836502483315144371004300804379661567265437352112311905787855462751034998778171772589582925833870842952206233255966695558930270471620324416837440195340876797953564924749477853733650359051416663743409886313138680178687693895232807961469522777366895883893581909833276856075616576580033298743982390530517739086994183361509475429523180861708999115026057818317942384298499275057617539313457259832743579313597886686247829573676636060449315713650500600726785040766600260196648358761906460212761231544237184690565584078271651303394612685295445488677210014852268181431207648043785353871777321020665697713617030291864015618950685290191774223478068848905400139285920264253920113629893692605300689660433160372670314215688451313556451225015593369525892116895504191328664640655943839675091601449435993426588289368101587195565865037364746024268988682451950105762407157382851601564317019829207025363667427499869053825724459252224782097578874573844660204604188092646350033083334690426156598738261677883193795191166634534925293684464016306962418040648843863539890302965960117191849325191915959190449915746997426727454348578029126359481464487268829272133087949302713035007840183629101637037267167359725425215555408881430150269296757950814084174557464782914366223263828192269617773733629647546476371424265299458126918626079772319325607266776572241315816336871643700902263379142759191521815833951884117177090245918150277889571095870407123481383562088556468133467060448396257076982633271903619182997384724252233012970445741659600334910411646313579355535897256896936918901156836301959642432410215996603319055602890883790365875683856749074196754403234421315935517287989488341198775064337455997760182118448296073602362360220450172701569439534608964547685313066351776688246669384080880761680393643414834273955859993631885075938709580780012431162894562425769231731647792318077339433157541427542698251726267083753018150766058134279390001679186896171696242371519807006013534037042404971062474544335935405091774452675096285493599918550932224607100521002308844150949489918636758409137658946852700736964865990616256392556624617536247384657425152290905034885199469601699336875667186358926564896602106745731939832348242723121253524034396546907693946684034763811599239683701709531332955614575804729144262246253854176786138881557692657009228227816115455358104939770526694698170608631136328764806712834456870447921458044209290812743747667561791904429742791007227076424157461156262215327981393726974200875143184166614390513266914995199480382569687439628260554264943666495579019544851518569513677164312155218872553769794614927171826580514938146646961294268063171075635720188988051581286379593549125328698819454088576156825790609592561436713926273467425917902194736048665313578395566268920970552485014807462098390048320598639787535129549191061022652529275723740732659804614118962787818587646859931662785912106128964453708464003294152507867193970996641410323221108260803682953614443486882189332201165925212421174713471244285412454881042698812998134456295968231583206044968956169213470354359085476149519837214364688491898207259675595879223071798067694217504735411815496300034167246791773371056925066254496499746171596755902364871560852228124948378282910893735602469393618810917752649174467451959947626636118359362579368176851269683966739743360338703860996755098270053499043446058289116992687524339041139595450931153222742545280658002433578295229035361315758000470610439085021341009340535655021316049510521174367265148171118598935377698011348218876373463654693123150366125898381739258136443439115535026454293309647025332119153188637517156223075941377803136983349325340219024611364243222676997991908313253965904942259016374737806917034214291476167950550162887283282696247636765669584281799075188502419625394338066537134979030957474831760577462978124508423615051132163410010546168110319398923460800405179022845417698447899882361783508247119669855199837410100001783486783368946152181193896077369825445417630968014587778587434833143844365577747692371521816469462582881268243633997639648693215003696316976268703838887810399258547717756053877951083982904802015948014626902260236339597180622687201644132131210342616572864711831044848973224294584517331877670890260885955539812453928260971630763991273431489032483134514444733536523061891301781220128110991230327391376875714234853995044912654377950423212257683600296011517824314490594153759521626541802065585981298346588180479865762527229046500768274587051485898694871486766879764711329296265364170828982581294112129426074930198158805218737261449368570176982924324063500486300140939029531013121540514356982215412252548342336831953212363921034067545477308443747477457825155163045879322551644473535332277473031066136140245235276684114150479800012079902372341364095715874281002288879529929253780795561607775264936393083665251351145967349901798058853911003257769932938440658357869876294385518301477842292566137273970344516567667135167112657935443545655926353960703971653134673789272234138522797134883270713829645699248532536457076035370985004087302102741581433035790119109987066813285089579072289161355060690968200624880724872910593902640243581885239580252565960964930226167015383471499878798692766399144179395382607880952601331976576798598758474971625035417361601582438773514881045634007871568161971757844081487887815913575278798079193801994675943482316020937016223676702351284013864213788009448160520576403901917196120014521790344853735301129409396675240916538119772095763284983291957789896460731421914733028453580897772966405840688516445755508193738791000428286239292017781955833576489966408363994318980887634314576549668875567155983500705369430547140341600240046313554418293033095062234016476404541839729311141978571782772391919016118063745857363227236459620842572939968236100200952795911943662593473741217133818885295035470816500088384722158089961751195496463448335341123826063569422345931896984806526658446300803958176460519747431994503194949072253876680447644092964737928397331713775194055080255226364816013858058800955390381367619656570793939077266574646241055655951333524255102060745792912319500537169314471440854549591040607439432273482299648881601200254107890900439423730690425104434850900968508149142554658669056907465575846131205742071601565597523083937465500534689587852313042592548602117382291601188796683800050663346588256212324954017159324335288170547468184904349807234240775003383935559262375153184530991177304790676320473863882531186228331552529610670180866526752676730145580250950386284742944088025539129200417080153210970006891712994182100487643316243371966601681419662066087315187192201379376972946541745033707504916802681518756462573656321558725261590645360443588347961123750181227975407614058710955377332244267706213344187411381143158302224553521702509486192042172068711469169798921970643903711045640918592474833180118878895974827771817134100842753839506503876840058748549376095922173510179864809541105994524987515005910958112217066770552730538205970265009682019789761540003793692902948214436990752070251473964055224439716130539951963982025000654330243565499192201960811532010528117684820410613947236298245734799446460061278427568709820747070019098205489844625598844351879434350758639111813056763955104542579800483080209179582980628713360099441192389650753686018349937889147592094116225552818749185447168994419216992810870278570406895906684451261266554767498178748835553502006925547533608705954892164948123706878460734038067958542361504239353163925546587164139552183424516375159986132024843683063744442360104143478921886927624080664855276788403683260664316773567414306471649279675137881033937363138522835320122878992079716845548132792822516192271220202747215383075260442431380410100351756816757571730701564249522246645859706700206908424934164309114018981524035222748912640792730785335712794747226183565585225997931504555323979947187773802797754372578895017555373038447257811147989760491083760299557985789321350324856877276429152443552362737337884426178367770794434827137240432187806661240431867844454702850814086971728086318274985178590056951930372070261393917696211145855423644546198961389585172236525359393080178180422469698051627240032827936720124193528175246441134545368802156127477803168388460517352408958015512716196304694879705400465428405289811745624678848301560008107532050876875156798617872312270751130619229817303681626052912222891389995676621107147470788013742485655126356121599267826394815405617387963915285278551205966542731596373776222791896754180336026812995683224014845785832267483226522971930841006940534862482085885469366977072082779283129264449153555182285307178941611132390197530762863098262492402956811715865980077728797188486851970417247094286723234619734866224721167082901526667510287323418547485595633599994382718973665674973819764870751521050672021972691290215428444704547717947105179686860119548262700102074971125401135099545668910850217688033944640926716962940311521154585355866681205314709454273360486903933862441539201595017051022082890158854873053670549443952929846699850054536962859381524212965914374557277404304594025878184316697080024566412319237770097320773914635893543073157220286754067295202626180736146624503907189734700390292836097258624154422915253841028835665569738432059408878515172891991091092333394325606491538992964275120919490742852928145326870860963644985257074210933999480527353625573206847050359445566984481978932027755650218856514788058945888640579347794402921148720818185367162437802403455454231057079759170287691217423496221485039256085973425421661733776947735297205622483438699094916941687406316150144374703102005037614920968537288438375889847051257579969307113796606293228213848285466627709394059981512060445161164498322119567732616514589519871269844314029890776792661983107020893177979289587809288859689378189642357820546400765895412778045448242386234612972394122113663112457160472501849756101890530128890229065522667936351435421370057318318740910811108246060912911841189164172636055449024561820823809567664605015777807790598140209308157982059625574377600342325165185632043144031732583425640254981975846721460305303292283695404353510077572893204623085776592975448491021803724988239027460400629037656935112652706785819567834732476207517147411043952167514133003086782565579047494336522724050177304720638037448047973499574961605807226317491244236944135440838214068165379706028363514868840816233031324173916346700731979401613397144369431235393439960956307579868914919317467419369812605073145777487986730302434117674861642846060031450460496886392374114956496141949907494016063261954571101031811195647340898813085923828130271841641070478630859555312264619479831320001457475329729409080161768452528847096918885410787392303443132315478090063192459286317976919825359759824740588361756984872726590895300828349328356383566889934721949784027134442476456127161070040946124002410463839128639809308866644448571514256164305633159024488295690481230971314912421361097106132655202168015815263816284236932778688372934467406681962248011235269983028608472840912691540513488385893441432320344701530114506178376742460029518833504628866136279442969933166040861999924244110239252419030803244427228630192327102914763606557072504892190853939219070359226304369400214084099891821671783584785024761906899819632198753902622847210936632267553607036972402202287613328324610155991519089735861137639077852229420084529600539200167112533281423675678602905092266700420054351408852931886465777779216254390623224091223853477552726685075591934707335661554224861045122128285679236816042598142278911710323707840398360638061389334059676266372463490046174562533079202604146890003244978678106733578280999529350982294986068765955443620123747314148553975002154117054066833773390118122408590422233644815380495216568819727739956256536102117777825511635995885227807506509298728864320314959732667740945278706180416744095127822123345821743963636798710685936411442405641063199868195546320808539117064550089395107618246795479021382456604937622053342029453417944639592127409631718711310096760096808912998439475305006590453031487858942162250247077212611283187702266003759982279191826101073226518714341695258735499379703525016900078344285316719463920850379676555527336105651794756289749474574216702279509098926334184359297539934784450299265538477871780270914964738290672830814187755936183638229226583133401290844273761523675856864717319242913368176348547622019989623008243626578295065835272529418620870651650837242408900894237548504337161121388021924663939135053025808609340300226369266712639522505472732646081953043141552678184300506021666197811294110990543803558376755610471588586769453417227098645408459591406564095449031105507656513735145048475477544225878737061906211038424324577838824782637330303255718655712241051244285673684982798489189404682407609023934493988306773092912426535364345164955461189048824881302467759961440561100322146620336278272497759756219895081401881608177210299116955606085217471768892079629583016871943220321714686838514591670558076502982142846533033741317555791148021578355841461328665640834305272233453342362826193294873841519815425112602462918164034430200604070827122193060790016275956474705912931025516032621675096208938805415791267749206416831866317952633739945321605624585073013739799920263280131484632174047761344093221695189301593720758188372653749061775194590062273305730728685365180408081043846522029294629199068054954583442090862003005894382981214350084620680887122573737091305781938455246055021629147837196527981606291132490948559225404338208645456398669167594877574570611802396932267754971253214330462367120984458885574091078444389160620654355459857630667391324548423576469766927717713867346486917335744556616505891219154239640706198169359145900931525294034398058987735305031333990702233399159870610605724873875266869047795232425698544965394910611959137841684441748363157019531142229209782303977736032418994355355826277786969317199691115796937438810741479081836224865043130313001019893846925824425496799106170653283416164487454297824023531457354529112521471338519662999521383248409571479306712896687375960010970428829545074378295603145190082271874716176064004046688332229187710145518985134655496805743843589221573053136240564965172242998274010539528598099822751301613771259380213175247430722642910895249766609349929277003188576686268237697591388144289915072498040566800273311544558319249569997557748991424741787558884477085145242421446781168225122465031847699444582175447902252609629577602264461315376977126912262592093387206424003210216616554819785763312609421724415108956934861009902310657911495302793203059350644471312650016094317155237195021531571682257299187623471847008016459459164137470717309943260731776374887423273031161651233872269144760100928103773702138937990218292075604766921289836319296739721324495381029147411354656394650448739330166277950613643939382446657657975699172844522645080312413892098518753710421228344998327989923300988848367231479691722256337219862061841399112760811877003960732045969776878874786402860560013693770036098188552411556299566967590394823677857255285029472622889408492166124777034367711805292328636563869859655748341724891784520263337623980880370176285870010038648630897114817830058126872410403735163219469180731954336563333323000698094198423210065596258124689483339834604314531893973374459476027620183444584536129902379531006286455743524751200938599843862517643233934070865538572597166984102706242943762907807789282618301528690235376785376296573514332416395218945579545167015263589397799684948877073961329258560702206066410071868606291816680676127421014140780207269566336137597038271509269821310678941843817691347102396733254562589641384410331573638587627025263789275152895964976241582099495182285330598470955866470559183178429864339270026566659622970229130277537187297905042268294303754452578618417132349838938699986077097056200655064888569964504856043873429393897600580876141710504186368684051393868114960052317043276726786911285992494195313727304249248038347133153712832180324218745892376755532631024148573947316030008615102219443321607554904241138972393913015512238292630248029176156952434275728740637168196175321077855131433078855127650994297104443924945236551558182801061512536820963454178822685954183241251279629658304097136172003158374495142843969677575171955051231460454482621815748982411592093625477078814568137944246769557387654428575976735552478100364198243729846137630713776044919038052111811540806922932618543946715432399436825407269240122982151789432394765057131893563737564249195555219177826338018510522615278380127274293252794712412656771673338655067303854031388833521835180288580283636243491103396030543929547449814464948676312354968271354271834693436850674583650738618770962513935447805296342220003454573078289386248423570212172149687146215228080335982466350970796821499044872531126653374449203187333652933527151582424493405557333487307532513018183998893018745198218368665973995098495192298553309611350485492717644358804770146498367359691939924036791515257448320288885405283704176044607496337326881362588456893799230192515688119158819281658906845803491459067018421567164244506856929832274055445373229417672902262731750385966479812389816351792062421803244677748269764238014896721254017819889900609675077039408345983356373594826024731885079059168504390912899451590207540155322952194996577776253811136088117846848595592193770374667843595519962833204045200203131896059152846777896257687917859756653316384422292085650471911882259878477444078759035702931502431149562722503540270800327854361987040351923286909120732428934009109141705107141015633767032301886540513233612144857272009595228689775865072608174216906137937904580118885674382433504264863644128611083510731967915311733760508754845216016833604062935572078062510210394182474971608731344721487195248486693000535799750171881761115922845852726212730820310657066472775364088112677768318724219926595730668232265315159984707123947120962056187743381407503763517534876346807450000369995099786043736233838011877338622184340019585449635973708343543317848894911695065918797141335507049841359141159301650202003167784888741574834031412073167513640913703307068790239158939652050066322276879218245542086693637727644868789420682468176146531796230335975488681747596968528048469840171717753074733239907874645587909633020224947190899099709722043910701353344073656083614857767902559942990982960645924104028993407579016355888225986452856793850163918071971987154462821752433998235781396869136675043376664023901518657283246251441939353122617766612310297936158844367803874847844453183248857745234985354035712163835853239844440499380189301182194614302851079157787846618041060507973048006706522430429016157274479118636143978972058151517637120381309410501819484015832094132044275802629846893507502091110772923834465687571628857059128262932970293858812033668700417569789198873059005816403954253794127653269025483057248355511536173195726677323728846052783688658760956646083880042135304169012178421336330146718100128145106159743210313688640834927845543414671121847746993538035977260715893163765795536970556397243059572073814231176871392052800979751067484878348986300271703970661164166167823625105978530924531327776159506853919059207923655246396375517603735918982724999210047792942926388854940436087589176101984644186807277093108703596425145554320921521813242552843991077767431506182689751170569294611796781611888593915373227337382184553854576561436395496850339608329125885505994573690955515422839430593514188400591261865915250517315970726285984350159042139550136382787588393790643087431649171708476002607839330922242380174641451085685124333570344369481790467588584886031229943048445215390487479874970319303496412572803959672935832954698763449072544795977662183815075858460311832754757731492520022253101029425821092670022206167316050455353639347350754281364153260453999414186195875012508533803630158342555312834897822795934640965391750043864996268831055506439924881301986713615775686280223628777814962339656406357360411563698771019521287594195044390089199178521749205877749628216901975145162664226984391645173538411978408021520834986644911313160962274790972859465866504212902243775618063118568983634115832437941058239451600720609118145408898220060923748808255520597327558901792253707312934727513079449926990986991671129867806123517480119351466244488772646569304880522777329935328267352644680555278197726031154041806542631706095916045217827094205304365126967818082658836927567545555240478229168412137582745754035569600730720466543690343024413628211605899987506448679656294814140290758522470373056326445336766293695644672245388055313154501182578548939746286563495429199848983069258527790108512339618554297516554899452497218072646776275001719919721738296022883954895000666369211818128749101230164697069862171722467674751713096801161692768439481898023045798125796729723734280570134498382166720282902166339566069549521281529951608717997007670347838215313075778692323842105913455154270985681394717311742012988794974794599246913918399697312643200370934502682519592479562167893023603847899342624177948343041246390728067731225810673003176947800641221045845866636964894907775864081798324340702008792748362187183809599488071714247586065507446163274675532062725696308617697031759981826435098906878831166158642710695488158020190005013725291428563016931693283550557041142698209124335053196643995176295637600682628761462837106180900568049282813407518173313941583720185711700355997179111030860628087975393245510780331202622805249315644553434163452497754855549704583043759450792670651122721729954547636615522438412259843974813297929385684314293748787256440703263062523538860543888815894016970823095109784090536496692127344225583201639342535298334619433850451528301022283836126024952285227178021586653372547388037143926889605282690384111006745031349945347523669707047038223838791733240719597972482519564276978724869798255330608991130912893760612917356335266315763822216962545035050397446812283766387497939349139177343748070153665460963891730418744761450592847153358110020815084131049103338277418999219864943122649681066153704878304882406041898751756833221148337520773721370770779801789795301287079040583455423845960068483401567522276000800670680557653062362815696288931724111768504146641927252783564829087199569477190531472654423068052967199142424601761309803131565203004364344653793190992829810101051568729965862915173340068493424855445453694922513402936103703442527274937425291753075477243607857534553143260799912748539999094602934404773597869236348802288541979506115399397782239091940471416756998088396107247524070140230340270469363435639619942450802958371910372610410551866254424686532661448564327845962978615072267982850309519379167925943997298124202757323139275006581831633778013522949557325040350043921216159967470637475128549345912037953324313429585815652756160174858554128453931265686501055227789611239801889364596163784272170111526599059092924501111332788946432817469077505603190437510337530007184497930726613286182280025572040373720311829601425164171614133290042198019446493128107243962503665950151388873397499339548623409004049976013640930298029616239799139473048635371495625338749919383442405747920928168003813781727467085632990777265826452565712037256383144194570446829682654172602982448515315852595004719616227087903655108646901376981451464114111414505156997447345820204040322396691213025270212395158218703577049536638970975426834937918609717061684178137827332979897919708831982220787652899749457938946999553761001375587269540678448007886801723065584411083572918644063991481671369070064474178466484273807637075594884633930451360932352682063739266257291229836762633016138430884507136536687553360700249743824669263991907192430572065310214187610591235002724221233084990139859808664376589109717605204663432601375536308154557766361786335607436999454173870444472325472549723425995571372004683602875152137902099857243734740281638682497696440259152644494733482028725778660399310837979275896156352467141648815888460724938355679163736518619704026429196261405965715735313016710434188089164941717896920778761759881136898943924190753532634797611548437831441752306297687801394487194738784510821728295120521817166904464007284765422250538872069814953806337725515775301967656863370410358999352220080768080329540002780349963506239294357418062670770535199370967222602040434521838916876475592329351442072409586953746933391415532920319579836647274312900686782780531943789739001552420614276294256243366385333418193549883905988628321538414149220528524074723211243412304657791268564001476915252850362711535801037794781721994831127739421162756878763441627483207061417805961045114967211951098176526278367048771231210371185364664385281667267815813060187764312058960975754872760869342760661259177437361724154525532292611764784861974527735214347122755889757997757561727615275095064575811520404876349934562924148731588338705937194496184626116380389493339690419371636907409713603654096227163218928605777061087796466477846511353400506861028218541674201560401224558766863157997278486430255003728268764580576438337544491608381137893251766213430438078190450012385054987314936514790045666481014927271257247088640355585036275326907616455584561991749923355326734259434004946281075604806447002541414408437190943359246481225802120494195440332350900908313398293934776273931507967920237842708255934495906662056937939032818357016738657617294351365194022272456232090302035817035095526170724841025087192419109063290355287887334198568683320181101549820696801721298893342918950757312080360568260677602180090717415444253208927265838170526772304545731535263681525512144245298325771060101625174170934356870393202144765163477940120410581681656921714869550279459448412329752117476836424457895471824446651449758044158049045627172732803697684380144147671272794971984128615480813813627453186020096628276900056398605327669461705233834648244023372257098973449771431664676405931479883492066063836147704217753160701274482070994884407522054668380683580843458489479117870860188955175459345506582488855157213245975622209630111123195121137584953477624501255166576477025723481760014891254898919963882061391633091135126239104637752945847345791054489345838476860444714960417857174205259947324493979938881307411117144890053780819203545190870337691156703700754514575631133131955333673070199416366338059291239093209748012304358878368999322236659604572009131986493019983578137249091452159413556046789476986792759920825384039231175945150216813517600778844482350338736493138594757633881639695842136385083708870218173618320239374518714799612137941992975264931849430914540466405405136589262503607699909886916500925111698200892761137081303678685314202822837064687752330307813870927427195166508197640545384148478260393929266640070657506867440500945427242421223505122102570544182688577013887834993678668610613473990678453740618869304616072337700811871024664791834823683283742538975554658381020714149819710307415611755808308815493845645496954682029794488612415845727234458897830529053412642221342712423853467684715186508646752217820902138355119619995152421374266847926691028508736571770299523839544866293962869230646925523883230547058654691426411131240839630807730990444187493782437251955094338245379000174476554223988804494610052894845750228879150626848745916834033931621854746416603497798425066167427828333687895657097379247191164314436665056639192253661164755532589366619126287530668853821674390993786643719413656272755719660618462229207751231801777800275827520899900922083472450049458346146765835209656704928655784031182369288882824943858842295963778916362312870220988959138534679638286061157659127944129709330605941203676144224553898293707539630866085087516795917864445765967074354458809939307212450467976877518637758675027728163136236875868245890709034392998274924923291470033451888534018055855346247242732098954631660338061113327183063183507637331125945777219528972840725840737862461105489694215676226974168819528167193739446153431597317678854815048495095460805542193859439822756986401725290667704784378210215119025543861793867050801454270580973259420605389905636632966303486075782659460491014411603620012527579133145756366469202296602778143239687671914726611396164671422169836928051916232799459736772537306894197196611685510256199673088828633036978129672578431561046516885944129167410798996169143678939129690702765023520194386742634384673636663059708919347453498744025076774192500011163752348119308627137876119677168119960762465852810414041921275522719793721110245782206630864753467364094416589655517711176159342648470961843335773878371748128850933132842167242303188524446963398218048365542355868612769237193080116807987870691252464294276961358954531288978139712050228551295022736939409807557509203266196617954468068226043660776744438222167724346790462086424230664732345400369787936096019972075307121794790768467986028650986780490598889246263083970690369417427699352623737571036852170572860693221342872830961100019018303140264917887184397206862052470972380235452943142334397868901819270085154351396355385343767536789235296991076988417881245454652409005101329982003489542804788159869692598716418592535138628776249985465637243694160964430335413214893635833731803132781728853293505305271651542507140373426977365944372175587405927126318045725570212073072720591363912909243880314014624046025965135104289816267214446364886948693719773681198177765552369860883950037431912552137312810764652922668728728764604032063223087539278118681262411345292589585747710928880269888392291655183360046690172061116645792240877362400851299285999589587219944885259625479919661988399370821861780117857869389815572071168762929462194397091545104517832960663550966792343212532922905503079509719430330027385598210394262017689413982694782282297499986863089506774570156179066690379849335471695236276898290372740048035508286706050635283711358876994302726802802167284900708500612243465813624779362880011026456988538265084456498611632278708813577166863379615001411744868137300381676857184148311998487269003596471117155514800132019486380960496014946442923008738452405013297764121715599783837387449117143412243701060114571086036559128546533218988676072865622226449866906795940432496956654088533778047379522805607208019479314760937319013927729283914876060319685736502317503988777465545421418077169863794966292525762549140453602436432311728164015782935524271828603987032340496398433160529505986859262397408019452894065343939610844952149677930602649579369428292704204336537466850400042493311413030573330570120499632770731428074381841004781083285764820046099855432314423250144978757303324488956529142486741355991322342726219183735687304074489080820334934379153849374733357492579836242696795144800380208287189148672319944855786448220087891206029009017524146426212691508574821587175890888104871701531961973230244906920181231618816689178098556087527810142178754628807525154501842861790520905353837251917180423397195960460512639360798487245275729339042188157281574739040826535015536114866708065766220847141187726726500634779661385015577722916271007421569433459275532714050925114807412558931750900543590458749692812586853677525859982098712885084807265191129317688410173085620958812105919565018458181421537966996974885454889762325618654038578057613672232204280502230511287531682057673962523840890214399054293922925439300598434774136358518179725114420152678385547785475179538721962658950926110194306502093332995238628027189600211016651333556368553498245390975325349441646643406878405958583801854246429243745906236005632899078785112004779014617093484637551236223280679991812169147221059258033767093797330984343098718631726594880556767422324725374373000368817897472738651305829113406576925355589994689728843455481469126061084523107358347004045084669818208188765847837101536473226363334330731689312760535328885133113238407885584212399767059071697326000169742443509752275103077756742411429119043917528254665141562083970312192883861925524963956793946436886352807917553374788482958481843282648289995737021620617829474936913495931887526454838183417600694529131428322882300552903966599081312053960252464629052268826450426962245557456453964636776356409714966549688472260477142452896590574224803408536050731190710055018376359238415916697543372914956902304419409142330527726779810421808756084474762039839417325739005493693107334802901728704985865091094727661547770392945309622216953419342414495479474076990535286903489490238253589728883697567726260702738295054505219475752085731899729108285359692850849856556616831646488969023974145469617293793322427540170258939744368471960432825394286020316895813287793631878880248028370432600799622721466137654612092716211370165876761282384981028070415493502732136885756117805298677027495060902002654680067799284837179851438232655842780939898294426792870001709912441607159277323333480176602904591715067525579613106840472015433232670964530759953229954717076839403716999723376923280057450263382475878936427168232821155006347679238002352105413496812187212085159931954246398240147274607047932110879077866106503354487699536717914237611724181528603386031474936131224911417249178412667160046373796059286972943735443741352772127748295783669207386344490506641535460642175434280042308876844232019546541048930602750439885461407308343082524666678381657861324585312687989903738871582634256631768732049482786033085978327767535139237346589958990608450379865547839557776128779704301647022968459757037949403127186739349432470024671660787265037166879923886227121008870430534803518420699667474040798487199483365787055951171788974402942667648474879319061719686581109729794909649199882809641855836472009631956790541260098365172553176600697799738764165542270169430681109983104166983210644320903554506085774288958269775539016324563149155636251625621420374803608198596377917093601281322472953016674852019085291025061576711784375163466399722410734990693703519878816638305750737676577663086708550784385203184983061100393147472494885073296434867100783358733823302982367024438891680064858054079504453854252767124863852727856771559106784759298017661865502501194889437548150037192306513622040163301129035533293092478781519340300898435242272559954327992539058935475989400166613317089281187415172895709199201200662409396112614253796689570939606594580329042950408883335237734530487515272598250351693403900896002651800763528878987275169815552537221283246803524212333603417818174455905557229169790848982347843693737667691702444322574356392775725131994521624128828280688351437456840287790510317750722768894139338309139025868583967777724073962193985299034875182261169044792547306107007178689384446198694455533318515119497704793410307920464579176644237981217197685068510679120470318745879330936932709675563973278528412320697249300588501154580226234013234301942331191794925593572340421245975444916360783866001463636547791620629693879676784438821198987717089745997128214022324447033647856938614794369216737517627932352080905072475092200551852574388141901346222913576631838853630359061186539769320618781978225470565308702271955716952475240958945971987535116870998299865090765142584379380875807527525538596554886108197614133564453727357431268604325681023077033636695906716264377473446074633778301386249041967111780660634035621226149936640423126031432066417578580259320059206042915976843776359712051784734204185756909710379332573330612952422565180694142784715711484647560438504878129010886180712666298812843794413703187785542786953608539698093409855256093159646805401101957349580181137828986633955911717781357400491250348885320875789104651954384603959047903173434863713782651316104496362370360088908354567687815565921330195984241551744273916033256219380374254894314707759514060042496332217874037554153573049285410507010591740504979579213164829714430448678963297801342172921195207094720533548827361666322001547918319651916505840673085119602611997985938585222890942728828527482647832787736534233060915833846866754415291180988537178469930490835028166508473675928262927523047008202225840761988670573671738648279162751357969454524021966718293069314772851850691269602644147276173842490746477154926981177311679165976194320689871441539697135544041009017603595124366450640357684879329322312132482538278552679948062620548868140804268397072785465676600982339388634898962498198036096586226540027536299070502880216662512666532935782660503998858335166079930327468787015282212466511174497276484092744498355011338334850028223354778902818378818469863917517081455803996744266771711176827526758929009835006839155176962064681994813709893092284719840214294315299882370478855046923828588865969619252992546418869445120148467305251156112058482724361767541240128382344106599415339145704792769640292876543169563611082422885237969290726605379606860301630966366409389014673792348579729656130030883285761329246340375012266054742662798490755269703523588593049466260243115546223380100068510067061818220131795246356611405923336499140847763416783756308850641678740610340492539889408199366196617328212076695774496732700660049511595516347102029032600447783034658924087549942117485952192338576589568246246039516687804741917008569864572000605473165754094148527406489514140602797457066443530584731735856377684154937814308783762735445500045399158387711114446315545667089235793410886129996355342536684071051459428947428797190746750415158876787641947819716567130522680082425323343276520256987628614900376169156850158536364654523773186737563208662681756515823345507400276864267505817573193419650787443077274050960498047188753795556903032583005341220786905182559136985742116863608687121784795880068339491681383251508554985310205953969695406562267739426721555043945734439928621760831137786130462436694706575285067622508004657969408266151118129065841283618362514314980339648379433688178283042507563425769875365913858218312353595967951797332744957087550389357889350435466369834752458438786395612708772871064597210656031636751436962770450473282200811746711698464751325056638973835989118803740676795149162922411958377751146038274768676049729696290631880932354120854504231363701207956660242438031881889012431628305624302014416752135242609943037025898819915549950582145409714886623306391913474440907082143925763928940524425507210832029646462273861762684701704556577150844102726719284091326021517485039848534637306359372213482765922037620543739285415125375187983282389463223910751504511475015682841629202356919487272928822980557091787924569504276123014650182952933852609708012465351989340892067072939939342347762051160417974904015962502559447490429951850193571166943953408017992631575515792649639370070700119194650738334005405528074262851560980346306154929709908308630325898632691175426692111304258857837235660483760359930645651072053845798613555913636240297541759920800555767275659284855682517339736196273440852328833494522223804628669114942017858631208241973195452511539959464930788818171809334362539538045878077164990395712023424820010418799853223765169801005240000784005780355093608409094786505016141104197547494291535930170665662729919001597357274805498929861002019104302190354102896339050253093970875789251496382089062368346061995627491823157517147399970947282859062869386863565505112342549025128831864524468868786231378537249808124432444883969420382384389471120784363802695811325607785994311399901704910038813893968406464818572456994516720835724786494140257525288440022409147931033754347476152165199084391493778965527541695247298700363696722573546991954227209010364779769406619524562278929149919882197003505676627778570804836696089762467263752694267896612119087638871399585673807275746375982022739747583448444690829650874373267191763773442648830275606898576369671624683667194321350599636215590861056466264819525929360752372982854001526018325740526161563426966934562825194255034792329456307778044715227684188556839254765394048589054242223831442602186798229347053514069876385856747303654151823162505940791448761982092716480586014805902236940809468630350487025799549890974694017535334225886193122274529904005184282753916515211853665561794920426913481049224692755350551100225527610504189992377774765394770839335699804841927702261324794894785383081981427907644312352208306629140635001741703935231674631117101516251769830636866406314807522626819671105428940766388303844892103417758020281860438780881291537958051327455541509709828326971665047040510876057593237407508295937452304946088521803542491057301656383404166995327189331664087767118273199266118359511128681398488378894728141505997654510345037601678190617730858921648416141053521293290921264737538059009979277977681380597444395060902713510648739678974951126728048722745274731074533385320041788131523138697891012182668695167758388488597460614543190958684206195504853262868840322934870709323999091159443204712159717088467221644780367451719195975916384378597099618112713939212705310268767428943206162620826791083766802296574046638487741513948842127858352614204663942765878034008240408463251388741042172436841563543044495647736656085395506599588209990027582294027571594511580974114597678933451880532581849956031368247366326032207968948395488671255384437928284615377684551049215987156169077383413666255426592076402994669478800277556535799536871659575742908385333868453071829986689480670924925876811761317965618215503698700133086559885101341785610570869249629861941866578116546602701798002185912035601945746936202669001218470847320572429176102645974438863635019613708660269004965817866115280574544956090009191688552986274150590798340931384544842754393873724637156637399791133631858005417826721952303914678492176064715969276762942328511719111772469935421003435838700760393023947245562102154720232576317179289367132714992912346823135165924107355352606779453420913820642304869613117636901798119032779587667373848887070686280786928386096578217910262290025822605974882367654553166458599450599260205754928397868798465150985430639826070563239291262538417557306213732927826135167952835320372097416898615637981220530148947536931733398973018609769550997197517499369077910190303362329419806651312175602852269016262614318719869411471573043126314381868698574820182252803628081435408139634873781356327768428648726580045645264086630893309402449326419549015276060505597525068103024857897433405452902133531892976691549999101042075264157329292549301112292712544987435735181856351570402333002558709393882362006738703728228161230505508841521915496251395849018924665328123191716751075672811590333551633506087877291771211185157337588294930615943249004596904522242732790630183283695031946290063281503716521643696563575607811083014833168904432191735891193732800135903141015141264784296472198151918840526253416997159242464322551160185444044624506142482219837208569420521803439650660887729971057604372982744682929951076833315784319279471132256287285749748949596432831795594410354234197962522438874379467141414564142271726384827080651285108954236889071193248854921193877541649246487457001936253188736487272605448187278543607555595659653244096199924227898578449260619322170762920844363386383477952759407827040906691790245242517235388914041845131087396763965213372855633959191207474530984781898486936131313619561611948896123579832846526563416798985591325530121636303917726914213016962023122938331573288106200156284781581857027768410606626845639293271158476786206221629194539828203590833358269780938580762020793145463472725133946719086913308218851807338123649740790128163700162246717137623977947971383637016701010423984779629533764664386731606585604830329132150787875592145171777144821813571076184380304387590934531795919996664202288492521515091230241352969649030221997942280086737639924895449417538096861017040770707663770862769668026420280160318509965831697917174218112003456758793272688456999307117573601756064602672123928080889496661000504337983360440806077425849844500856173460081263904285298881263648160844867356662771518997983546177770410774133542380658511170353088422913720107242328048659240042456799921599293455663024588857594879467958284882187573643631834685984501608460337525094983742639691972889848572799489454616940467570092898625095011857043049679368102554996225114083544975926302823099875347019408903492442905825993310226321794211010110540919494416071550842653305841105015375295714141257052712259841686005093304512030800820298476093367648900306821957339780531560729010555618490973393188144670923347914770937321554018624807580847486906150374302431095390930796173177892571722947416557152868787517292952138469367201061228340696885660040614549092758993180534902640048965436305798921320057039319753537713931705972207482723844713947947107217673213236566134343543231066914673442513587284796194288103330635029825364159064282150059069438394448761271600958079489328124976691549963998390185396305390089673810648819348321653068875392766450837536475089265457948995611367246021842046028438076475570287597516395278901631287923596804395555104125519600045420327482133897289507067017890580501802577622927905964400202741874667635844559207637763348687858670641393172580700064020358648008838408280409718539373329473010572655778732231356188061329278498622318964301071211954513722615560743052787100414022072503191788021820489724368192632870060293329689447671492117490347808613956116702992048610472677860120844876656928799424312239443471434399004704985635257316524301477499068742152432319182672686585476014271395360748850310167554343340663660728667337046075794131132735507799248662383837610747965038236806338127312103610885783128260970166020504115479028887126932544762806330348629435005084357465083864024298739124938779520457905299350354770876431643173440119818529278797233888742309381255239781174157433213028881224119562907909508453218054314578494618663497014244536171330508378161786498047957125532668730852720485352740660734240005005750746830646407580790453240999621931138781465552543591574872348252814684433071215953191879699554895722187005340077560409254466104924024750184594075472249589221260163125771028191021927231991598314371177325020861058666810809095964232360734257214260841470419244905534395876603247734968552167685377165403344059770254141349896351596468848126625920185637016681869167778646801679228771791264160629379190149661199999143503154565869790328923316216601419276623276523847277851059958989457270748753290315287244945873791083360683275581201092826408515784328457062362054009830820551478274972926367621008172489735944023063897794137735919346349907812370661240688734509678989421996957529359745955875164222476609172149567908153304208876915490112157768698192563135663066654548992790454083439826920425994731170166679347886589758789518683770553940984255335179269166075201623522113424192287219003865596931519367906157644755907002887708598440808538005429916013635274080372114721084032798212581672105662851670062089509888823837866689989510761304674488697843198163855436029707823922303503644584940049738520903855606961978485823679587916011697504390597998757444358678017692055256000415227904242286969091384211897274622959859893609796911545011143880311204339338472567801322418349884967607563602159990174636535526835120966569901066417765477837844033577778921410461436748988961307693251898283948463023786418997305554907370704402630234973321608042260288045202437168999551387885457379355200089700547726481311384192982722733415337621661713402671124888625181093666407664935047401219106871027684238112941004823506142199366220224581916993243181195699651292957917541494442634492205471553103582304274224083088423434678179249220312492399187208961967416797530900478725395786961876802687564502181467958199706478800986791228548122153000307569876421774756300792056617390284354282002132285989962527754042945180488396142406047687018073266646642860089327136428628987307357447300033138208944317955621201095122372245492348191793917588021951498590055422185094429229557280585375147357870832264400043835677346292018622107238100538135139166020077603529082574460492175708055270002102822984645222664748895600323143252777714568570713585772881469330599000123052434194405752152422276484043536682218268473019075299062652300265329894502417086334307520177549144913080505864119018595973287130738864147004693481450641770858559584119744299335691638063423246541447382727972684240182657687242543256868702792310488629101053218511074875362170879793618160266607213766434410551630752445249495790918497769758154277847092499767115040200315960761158326863516943603624083556512222780135568096037244865898595299153101432100028615499236038009360881326419518649464327880140114492725177543977379994003199909094161546779596652666804816991605902292318041940156452530283189725695066940497013663661907221485108815547765255398819238739623470049635732313701893542151635506229181434797905904358928009062318696443508870437193642618865943157788553418530828560755025202588580698821472903980329960827980206599575411928669438516757551065281989236264410318546606047513034948063772308739403186974424560766343622027380972137702324302086718124694225670390973982279845866230395629512573498654365330682202917351194032716140119248152078234792678970758113013031983869494606506586810624518226145528167818046393454418716199681848119925945657549263221788712302278870863656616813325819403017372694264466974431661659180190079097450757671082825849197829198196636305472470020712144363447407622424785556657283633285713999734493304619990314028446148252121214932253375994126171408252870799117076843218787943820772845462591990425772818293863553161731341688878653632205319920199337241524918350003658079922321415197852766473514023805543441242197005968248877969369557008381760582662449699016427444137754470698136472392075471459212062272670298519393997061093858640758941452714941102833219634246979991603379389385698926217739714545986889703000183745863062281325692640104199280356027984332414860790415151263554863770004314258509810516730808301408631900915098866303420669422075580592693474336974530189629036676107555202962964793551267928810000342484401431848722221344473958794562374340304507415043702768377997795930968233750441364619988468830581918532357415990050775671048306270498793666992038252078329524778018992853469890873078126114249206133822290886531929829347580560072860101251829600258981339581906506826501269496311234468309627046858909934561495305009123896233164942200687746638056949186506921459294493843656856688054506722456375120764015639299728600494377319490325335631491115765865618970499027664007066675087636388670955305383244520060963818878793057770531096318118876366518499652810912637697734684437032236027318689277938112593256571542737600242611477939493762536769109716637948821198853203046593174344420656892345492888538314090263766126549546690585788385071887455557980915111768583005625766919082914886146941700591819859141595691536719921597493318155700262219078501670769822337499708332541427375277991120837490458187331889804076356629339666267377549446211174291523499015808646161806893948002055807554428844825627682595279698265982774373148448430860581107532535734214987168356926931187171584609693158723133397040228401361287922437308783194847837956349021551203603937835079083223728105774228259267768318250698663966520405126767542348969291144601270946270866153309574340821413890056128849669125168357448168332189046688052330210742043940295194228049082745595546676449204679618419742029313756075490791388688393782474488570016456960534989236795271649245022832997557451770265702909433073401412610949623834193061558909828361823836680089466839753496424303635448975354909031525424580122937660805961792666384939595855738428623839170163650645748707334357500034941354010441603834813194762447464816482635648088326737117058110710507264004976774170721740758671957161873562491586439478084812167469573883740738064553279980002297216336190490268866442502533204358354811565824806720856808714739350090824544958079308305122589929991410622615980970521025056473646999616685034981303234661098057731288941558316410647794745708773144774216408841119225159874040666135423030981405887227398482534738946264910288379472620065267109734912113860742914674741864813536935651015136204105874662200583383057440173000646511637898487803197369398553295259072495063722779322693599387981491911501425962677571166781726194780930666193174669750660942107260629803960126203978736559196954080882272278066383191020772410867766567148043965176311728520350052320927451584854232189092300184821338277193528903035522007355115612585697087182422774071436243446109354089021989403055146677871087486194885590194720557241305322055841865723434524543414372345240541249126994390281303028553136808146222555810259786323808101792366033120133880385047664374619630153256663978119672748088124334116134359092707293377405231838792326262282572199986013316177897473911748189965893842378856016075142071156777333092449119876333932019240828945378348533873288345978429835080047318369766677685887091802173781779429785483021029416862310287623809245650961872099687503920453815106784431178241518479821693666891229503894504375183239272052979433083151619576465262919519222898092202461665640002591916018330772153640646089851082937401066386340829818776370833066228572972900576207213429077517187127803148193476565474804934283653979014127830910703104588956297334891307960639649713251383394319668827700439704943833940623424089310729846142786885975750048883551389723852874865168012352099367989298345077672998481543109410034852364475182638396514711148300753598556512126051804375421210310388741617066979505491880676336876641174171160017170409855920425368482867120280541461126269639930064497064292403268624254452394111440825593006564787729409291514989009550439215611530405813558129381903983830385332779822874094383521041138093202835517838436194427079850687957460544625935437471146325142161351583796199400814506788906924109169863543931504099637458151292319910973386590671841301624815883895939795266878342752819012812408742287518805651273848518673685387339621448886523812393391479457448704368660912442175998709727808736442105649890634030459575090174380227297064584881811424825127380191035054555819096745390134022054219310713979572404322013483383664381043146173154713151507710801114199219696213023445766512143523115703384866013081270026796169334054802295387007964396658355539423898475361872116444619846838757167020257218901191802161205362736605417124360121105433022244995325281151745000280158640070969101500269046020200643874693406003374439501097827835209125705434808639811853412205040531528825961706326590358919505552467116303803716883421131337312097936854419952117864231343636573396706181369938344893809005910596586914407783178109358366026630403993317239583210825406824214240910683153546002709398299355957737144657773613177564552277556837830922103770817236760390470733337278429248096520666601911012753537242721071432392879402028961444020873911077029036939460464259586729000568312548661997955831128444035104725887152719874252570603982492084922238811772616548704995866332315255764036154807816534889246085535981325812561416158263793744151569291031093280850479991331940723655272013864322800109661541317614329047452956188998379106840258487655173728303262510649740085581482354112520443128694489642734908605475118719631830478089078120084552574601713159300843380757277177723357611728072209719989797255718848189103928600253247913007594095060216470349990482400453289589355336938423846073268512268754911121723573949150000191480982460405403234338592805167758242484428847690556719788771873065270986820664203797958431349981067627287637053044682868355400747446257642141607366150934920651661852285987045181574525555204061435052783541949865807624880997650075014069858910805108386864805804848476367218159362023520368134216418202239869496143898036363051227644019100046594908160375433671394299933805197022251141275900553324671388599104610838791206317555223694317166858618066283480501506743759692008224276283405781982470517703373753796855487726567467232528953673761857382581626576224259750829756581575567422401608415394274524918860474410299599289190051507276100296208994231176026263733680436680212476386874861153233695598037685290005078538011001757235922196812631277374783970440743686008338377950730445246828447296901804236734385066431822571461815765765217822571756245799652152279606853579605902180830718638368857083062565230880504892284848210409395422343586000704273095421644383714642230010681122040625727484799917646715285694221587548826024247103375388792683841025418202362672158077507704919792702608654385157204780168052530242281862440395737597480789563527698846101832231441895288732799556844657022874008190239877526727634658451607913267175794563490842307845232644138840952618526493252841086359907571178002537234901075579340224866797552646031269188046975604830420156987452286436164068413019896517808567980807832977024802784678118640954039291757860598639267195729038365221670556971649495783970461942877342446824888811515284651030203442159350453805315214967263888309582511261916764661633083714561305633244505683166638658705408969905507959315680844700429160932638719820229285745783244547799404546213407274121998615250035229843496198041687150028481013142389018728504539083541533080190654936791743229730143864252940742319164070888415236839953173866607519186292402883554080812407144414090695921241707267040501689730223194683816788198380739152423396465953518458837864858041795504124985714222562335556797225583230588679742380350811923463987550941369891830972330293488234394414255520245549604542814543405729041410113592474404820103630549084588310431299534415147484027378494686190253203094838526470246067681729725371701623235765118038275770182834606717656201048943191230581204634640546254461527912913664282870635604165210457406323660612114327496625233234769017712791398534901080050816705893813977496906776489203994968062658732844152848201433117164989599814905952692174963081622714474885700467209659104661139169409537596008223084552501686768720188077428244666213334593348010077935353731064876803682642219002659412255533318089693746662560318334950225146790478764055214779632206379345707618722132796327932658528415145669505114028457644997571084251531198319059944696345953277932428816365484705287810683829146276208923270681795342595511811949579726440321381830018272367630468273683618512161795147170411848482714259113301115374543283010682829128040306004369048053572432680955050342889428368826059120924185590594433680736470620980921048831432012428706163810466267593012956096216777750883293339990754772534338000715679852424460560850300615910269128481862939771579295386012537953967231983783582956503829589890221250413484685874536255521054411684382570340383288815494099043254838057043082815604919973153811831378334743734352615618532619837072605690404562926914815136700685453658968718261733440200750245363016541781217867432732567301867359395544626209226650674409782143424466426783513668682840303799310688513405881474968559934072897533926710596173426435685895881035019272568052545140517652079386581103441259914875391520034675825747586454120576834495656261798816271060364547548094364701058479578513227851710877003332907436103856780647338015166258997267604725952553029269384676494487516165988606871229369270223698720575820286159778907214922181509294793725057321352943183126446403485185522762965582630742944110826994055012755827879268480287856862991691841073770207975451987873243937818956629771173002506952607608248204961714935387931957875785517396461727778770541965721291204538115110744717207622051006384836453277667314716486805041522319760641938404048463251730551863169832959770435368676643123463746008455814888833430692732850616129328384867283894226034288750204826821926883572033360803511252759324054855601693183665865590757878884616638608172515383573155028948849983233994848254447759472666848171900323093864255564437143425084196439744300850174853010905477280743616243640522496924358694798988880771341225303826494725027154132647627785369714632440409130635030400026207750797021964688140779794793095286304225514402979684518495760772214267645855770518577025239993464742614528135616646541426848028348976880274043806135419258740590950551281256164191402790539434594299750027059793162727567228757042366506722536174993004599602580443774018406853705609813542600602678771097473757227316847971132110138330523093297061723395231780321074506239434828773904979836335447465254926711755187278499726609587365649345621884519195111920301146263674853115817409590812166160444981415528783326121428822876644175881153943595924257276432896581695389538260532913083723574288507362592060756425176484567491219352330627336254903804214907419447721040909098889454273828139126742379473502185568023672165682637572345240424782309201067681204392197142845740607374098453137522523081114769343959866026471122640683264250340269691895346506232493237378270102503837025414644372257779556726524644735141246841111441299460580056085950303601374241618775311501280384594281577796069745121010063873347887440191859468102724445812651852237709618361255870197104005034557242018281821506635025672335830270264760892881179653907062685533211266293777783699377607259022591412488951739052963924601288013967357494268433784032287980373213453851907988202680765600881693605465013393672292052259232988958646910978387164121299656623893788989010672979936674922197468981867306229705169382311591103803128496742015358874290495322453386398367979742022209181928514132407126973036603640724144942416723297304392049701143018480999824274903462122256935092050590115963517363460617024038051738771153233315799715395399596495202613795495527017489748992201295880347767655171859820092980676678178018322230870868649978243643625298489197017925571256210130284712956516990854317514812848343348737706271907655527628005186952972037380947505138672725613769619061788688113242296558449244743110202793226378233702642195604055312441042023625328541584973527224302270745425276038322960137384557662362243897642299779753792725808149445174923886231682850983447739014921890106942145526426659134821600460695020799701064459771502126432141902463342969145866562721915058487881618170886279507771880675110380554105713644398956394249121731891737557723148197018693345018250141743160015826776054089412030856528067491582019938649237359682907946503752074293484989449071544632183908126496577858155262136747425172585790042905409151528210524599288561320181182076071879408127739236077510754552744802991476826833278786227750399327232165795735529705356432559911473757823454731429885544984056694923747787510371539050438435146423236591328538225003089575522381154802226713592121636423199400869377743293333236710084378665437417319806403491558886902700640985325210712240948743842577143191858938893171536598469656181082330876336116369005077924700896547788010558818566343404646570465455546407783858025467163464533747438720098847237446716344386214591925277076839117593068873274731305703505005765139393029414772568344516061912885181853277057050095496428453685830355404504936803928430573326127213956668858417713228882757828988170603727716304631655956656479832666421381014668872438170064541796349038817496024298462146599927079699128061809417240476579447476825689036735121551429085700766358002271307118454575092464214969073802877157594877131036068528733084701963584353412682229266730771799569871138023236722523743327024558276313433273195556447279556851636195417119579383315469721920209405744110035426592657666428816498761538454170072689225342430604499076420684224839499411255726350938137839598247727403044971191105737773043375480958271864143232399050360222049890105744037202408665132395602585665853767851014194717486627454061259875560675804538517031887618469308043506107198295101733002892000016719938150177666357749171227065046714691496826921543866953627197329994032813341793915731745152123562586317517368235002839577799679414489620123563865604989013113405479999530187673562884976519650457281256874169408510539605198894525173287975604363124747084922318164456965113812767271582236481055141923452088551802816698720776070967665387105867242156928329796565417598537954634539476801541828153429293438346392212557352038827735557926429456898601808084338879067848330212201719180950689225005618191885623313603165951220015103626409977568844485657304155929063524389719360682433762228806225820561777439661389362923734199629768995257176355192199515705002401832253823997282094078592874568190849562626307451621320211220178996993788871799863089648791214654274863533514075579886249230420689253129266088840866870993225448089444086206346084545165971797799204656211034317883878169108373209153469580296916685321148864089573495300544915629618144886972594245827436138572753274484718480921091718027215016248641905019683129156834555049044412269715652390143112862542375741843454337427186655776411177344477078096658764923650613307922884658017102901419875452000034598493142994668634998330412630155176861545515209042638996060058996751416045418173547120832438518610040942990000835621001108287885638800270537662544356945007034793933908822488652598012934611488656964188265047165597430977801153171050591761130298289742784281423936643475982108950573268682113450490771287643213438375496191756540876069024646962948920386343518789076349873138545408279167107969177744624094274230156429761413823655196898488325215480339957613431289541362186717002189589558264341938785641052346115107170933472684608372802890435503725378275636355292517623366547696852455639930395489427772038858206821156772778538528779267920260793496163288337152911834096198858692589521279064605560170340062657691697837753804972872013714961864193721934443569099462221406331186165681086271529340882431228228673341435300676445258374868132670192247574056331759295562344177683577202219517504018756926123743661823473863392518100899195072811850287506658245871320878441010485762971191012981134677762939100369414185303862702209241511792490941696564027988004967865975037771233181313611533878827960908960691228680438827968352352906580805856341274475023739035286933294541921055055362878926751382371563557784946411392247167731610385949085581704507559081545097962306984946169201297774884932154158894728605146169495174777551440534596662846725408500368168022948056514964432031144896095493461080727448362170318922419385404189481450117925384181360607722467581354401912645501590633703199853386861947252731514607871438748469849093789041259740872338618848558263674717602501596795753589636961623403518192548915093987302604471408314965026499989035120016781845667287099253701331874810871196104961911915499119902568182660402073006722720871647587654776447477935369979195500159333578015885043135281437246910241244576785062520722185013263136307444566154562601060259922010300525234906683096560334981826258352911209714916413243055439410298117933679681025197800040182787010879353400858539065080168048485260729463729922688333052887274686003970999710481126288883448391223765846603549462930935551927373030010770917074180410885483827240647379307007512821602838998354866500642109257497756045791178390216514022128873083447956648393832486192867509188502863901938390549115308130401836634339356983189121020695956553317970597217653868283880285097873067533748859012277777784950468710045593821772104013101709583960959451662183769946143500962145909339398274849501700346529794534498253880768868582091093762035812610465083985252954829834091586114069917758771949416452118950678925188046111697813847950211810385531826030140319559550808141992514981081193432557269423391763913303714593930423075209264537604856982600111983333125292841412591806255779971830114096046678201716644739427732638789881949563062358715048317568649185096528334209142528686496134934973273287828460576015461999115675910606155872441696382303910089418569182931424811468200077452046653201167903477873151130673923798145169857616523832627441315367621158755082084640976188501001648152107358634508285915149798121953822335433333627004737913779627757655431980987351799348360820014413615720622170630392004725232806471577771155805937740915737379554340909214328452034586984415452284685661750477020748768333416904524584683567272737321968628205897362619400865141896629806174788940023498801418213997042256605232904717073794887857948935435798039035567702535540961183859218575831251380871181347283114433462383331593745987162743904777974000711876434167002587729704052588024997096916340321714586822031678995694639477513502708215312242799301149130423096233714740160969720682466523044627950954080704808228894117541611487392420205459685054687689661103618553932208570457279481757595858422820274936684769960392869855871765715155368596528735174208013560297633493841939205284514356303445257417154490652879491280014615368324272473565069643769065309422972081320429877438361683308939337809586336350656756861577321328558740786829489766869754696560525127181866578909602354994190098898882809150719054733878074362747748102717537007584341230907394310040356174552310963826648292187308513581074236114975847881331234186064063200915598529639900314821733666307965470243456399863008693274918706100714441417380882244069312326284126047930351397942041431023477680262018353169444879357444218604489210669599484470676618497682411351816964972637681904283335181719344338539413279974248670554546616425862362628310987122747626291820355312804720646364988107448491826759275534338395436323900279940301008021295383127056860795347533647512835981003608900680014164878450803760855820044495575444208469281481483425554559476760923207658782189549067207156700392775828716546292491356252043325423245539440402622058523064191375354802131901331068692554714042551137347780979992967093342644271328900784839895076994610531147650780258281433298445541479097725055657469606321811019196667397796923346189719208518056961446246052793101102354731538295521586815561430532088293663708799100461300661314548089133058332351337868859405099624668148914133407223443660367507103148789369015303168169131043685149753235855131325284123564984877950514733187141880867817178304254803773565447485665673504781885710619104004138054255763169314163737421269405247726715702129028716629377199276720899755674780521553345862047359324462534973379382720848207050151402602717712459758274561216851215251007695628363641776253422373788169905543963401062132926943022289706556840255159513987008666303482355006587603121880686992810235235722959487432889414111101315304643979456935289136749166056919611371993485000849769570687640225854758889338187340344004192941368246870821711649513144898546535943830571679864057048146419052952642964831187926049482744964059493053283761914541962373678446972403131467443478180367525676285474062076089952308866199041340109195882883928062068240537577305364884054037821177768266515962597577213876887275159844792657580460874301782686865505540680855069232038443978895218069031199482191092862881902656370009308603022315140319326988094727168235121360277081149478909255888334292251183036594683753018828199846977739670786081835451164444923715597842689039994785726100324514668647756930327595300284131029947200813821972780534098742266302387707353922973660304755112502683578836578958104457678882189092317116663511218179861033601869274772419455998163697559629185464606071074314462512185615193729086078297022681311787560085123334162647478912652275413932470885852460560747957526690910039651273771756433969923762381244146974566739804817158875377423777018605539880227009500849638140707850660902162238634668308081324840483528869824010876173578528624323727157439805809722174985325624175357454352792176856661120501267048812138232012266607981408764246860583362179763044865312529216072546638285737303599551195775988353599482594782849920357445959387703962251789613802111135852753735574602898640045024401850833425911246315126713314482370200242756979075075695499164889739693110400627884274205553257150283918615192960381333739116602849299607902292465140360771970823954194152142785829140208213170478435315062702842441098060781755950654217447064708960985400514186664269172902774043838311858840666963607655715257038086844910551384603439552888100623372438135091289222534262311615322228110915446821029029235864412986573583429217631661465904121284311847507402492804797895827518840858084063383473756678611852199271155243002169932522674821008986783102051326101054227151200002465257538328134804311772641660207643240502550330757421361135901995298831066134582309409558508182384762120218692437076365146587267761267526563776042288486050518525811534879506418039341539782188053313444927019695090748396327024920076305623192860567639912013662572596115798233423115848348903757675006601459083690187215821949038859841862687332190604865198200640816138677504960853110817601728294592773884402786272638621760774801524761243445025454326374450625294535924852680773594850572121923449448253199648960154326502476083231812657300264527235288886257997553110105966101975366835964705194871648185450190156997089068274026684945593121476938149565856621923568327358539823529514481598119151481879074975858932609204321604661781889114878858311465800405043764650044250541054894318866412192710393910104607009667516341027426301054317544550178881511817308400716490666448836543109006734762306456867406228835696923027367057220370776381611946472883464312806773225001817294823999295793718479356991353069644476176744818756527724265707485724361193852023699973084234288780194639845929593311751462715950779964341304398768036115220550863220915583847458298254744335829634328998387688897175837979004075568958161418204925680587902491994902620960716609024621269826657186003631698257256571706738754685430170737538970535706704845084675089568698472157655495938952413260570877566196746931605763357791642334453905553387204504513103106245542878988572309513063808686751100632956039332512373053718424435626704263628728297916206551502945125200239581709057967654617807595138935109879178511984508623995450903635550176118012122578094397653151325100184141171103664917260219671150762115731191671865852425641344166694224962623510558017702687432419024924615614014049950953333011985778238220867548625267656179020103886065325812878094981456640528360813722385125508175825850387590550978402875204388196747180293107786776736007427120080005377658534985930253142054184149429471914946470932388834220717893286814180677274712770482393711916481154377247202721063310385014272127658783084707021506796510270090586909278440767264983479377567328152160558514931629434589252757310381210186852012454905677626793530239945891458127846603244392683198938300045848859855773344692845999921127889107978330957528454907490938052879937773408885374300740647672958333499722463793013009458878035448544322657195632689882870552272477267560402124109860271479482716154371267089186049373984978276889699745935036988387152131495450982460335779302139000719821073617919828167255556675543015918432691623708402381245217199648226181291755120685681147516589536538764088451160242756151453292009001372159126806315031693565538168173652841895881060633122378500276753258884004886883198488896354135095460498977156602134253081686906512481546697753099537192806311033536644070932467781258342354473518158773480304161479542172771101130222313576581911153991988340114179428226166313397558245515960055159599184956065521884883958807303096715111622762525929703310556014851511458055106949184477818424773848327711197099910889371456668503596960810000231139452999896742326632314284349483401276306530927581040766572750903960476005178175724631778057638391780371889206379771763396571680083136446115649848696766333648096063539619369934846107903567856060217344612285138171309004383570803756160313920388454068047665735538006592348562592573268543904145368600643543701553708018204490893168051250641168922097334434813922017680030387941234101885292303847353323806526074890780661288659962112396518405583142080578006962378607531725078879651403774533733689861592057551024300007151435744130109246299834616696433289207558407156069676992622108265521083311711790826485391408341278806387173859378655136883000966947086656426525983625772424701067094187564101542727716355470142648275425507670463992882884107992441328393826116407177555119934014730699904286628677804623419885678092251075055887894613182477706347449237957264888295425494476779729470167740831480484250592174209956292841112170808582423983078073343065296376916620979281307641504376754196577325247516956870001982070090465849936302148783989820883659376973021656947474430565898047452148271335866487101613367907462843860012477027730134574613805939225938316793315588950103861757902868303658079937413472021812984759904266318213075506539463164300247109381629932850976757146708653698176525262724317806832288255126456669913353767782054723820202463724835897949465439064215774194003346180296704680204211804137259613885081713690785276476864879010072858536787339704956218301465891815506327769574711118153205734680629074182316815021475852151680460136138078974158670532964309149807561408996694114604264050846494199935199761394398363070595944069985002985046621244080977534773028712285740575818876804982996019832839705206266189845690883218153415549232716328028847668268198947694662654189448884185120340569295731635690374516112359741855090397550997816449033073554987263947811445285079743991364490434152133336356195958261819677421675167945765679801607444824003505782578702696010774448232528251873394136500684719623636592464082154113185454578422710293799658662339574300232103526260005598028895223994497191985369270443679712585849539176655742339163032101378007314114009078477518402566117100859255430972024573436537576807961413298856404102217436034384774354190540279326915616540191107029581384559000974939294810610186587229283209991437772205114626861453744533192480991439632540954362709279278992268530694272555055169279451752944539662132378587483757614248581790855732238160289374256429569130780305065005387472462162356981121200180073957519654549987557770903756001058013228106640959994495997098436462072628841886743263339042663568281904906128669715334054803759442291351394909685071730673039759030602600818201008441180112607345019111584183425851004683524251513161875611050923072701752577560068253974960564917993229434305381326619350425709094446224764555727986073954157272157751601037621334420092267226771642359570927117173010692625446417850116291105653998580169928386378733649393214847617234428735296001711258742910443468672528711577529675260991024207779737662609929066419066056937985734971438532888973614709826224424053612217630321696026185907211814543368347121993259959016175158694542324600947336630389579027699327222019449512069300163027945954410756292205482971356628874457319808680392816252668939181591130224871020951583937810920401886108452855818076603565579985804333490768281188783067406567570289367540098178033670683780530642189262784670665076675903195071959935104403084664038390538235334473277433446169644185149181115437953552385316111175366385073527036805960190896010075454226638363455533318842563035006880361850194032814195089758790379664800253431679785097277774970546156850746661455588607447264258857704901388169772951667492488288408514660447614469403322349526793148039011016875781550977723707474720747718986231501263329236452874778881819055050834212788409976322565890994267227236607182339176373796319857508322961289123179265341566580624019874160850083873823595568362544775981645049762916842796993175891370395080816581707002850637629528642287081480069848413025392484604784474725417917725760715426208892133154682067893957316860725522133872841857873676766573058445912911899199126656140679613451097826007437342767075830076090467968763439033582025493964334129765383383698387687568666923914054961301518893085086195917665815132964757456016426872223903503681661898259891916360716707517804803492993424040862066530238616838181330813947440141330296040905952081684212244520153321237892081339207144787688535297891438146643691055078931694819260755266349249244132715633687195372379925536833294617217196409735054715585035224775307663974954545893170956369402254195106176880240716722696360592704015461458644116016940674773619098700105061597872285062958505793694021391076066107754269762978779813174677542640590988436568226226492756671701569652557865023560477588493945001740710436900121989971858093262564469899428841819217629170944421415733422317588102402264964170118591551895913355480718586233960380876829481600730334246559981657475061263045812170777473712383299651473897514301000408116659079479024772656100621418104445906271725957604221617191458646403163645763781039494407652911229568369241242964632818584073596316421339492401161919379180240736381391737289109843775584778701253683758897653464029233630397198178019322089597653082148999344980311274285577172270990574555864008364689152377103531866170665790402175134427720184643885280430028042666459652595055437092526971477594585011983134245995410807672536959358918107990170769676723931299630976034545379564048143937852539575161490986542703038547533762789135975371442046103757473049667091499498799825457642978997016561908490021779716290902189611097229402490290041943121075023430175267280337842842286249258017278013271904502153696284032375894982349128534696845626216688405990912011187671595728743865047332887870607894364625063266381157153102849502349097525051933616279658553617696418140711493305327750310676411766998895884896144362293626840521618262756814084106979627612818741404674366086790374059047894525843807312534802472157644228130636208071747380943639087456600555630697291765285790419647007739071824027999486467904217036942737499004386304491920877510443324410038680494948099398167089011417394781113759705408160684739077305875981560704400546944660675511848722704470159862395278400083934012763303873239192702776474601010212153749456807878822330155460087942948225101660716284098266892590048051263171149972784213379972426267432906359936938108985313554578957537855154281617146955952878429493915435802141797059228415416143605328006089383900788903673463195432633812945852174030455705931381751922494878694263379398315830952195575701824927958149584342246935398824835182171136567617787100705352919544633286747107872459239427030486144590031655745690408547308322795549093010025926577922349268935137864474997209831547594549537654958842044939573922608005772483008228506513415260217167953483952392653330008897873038404857835181631606998520310939511112296660106351338932181793501618423071105267845180497337098607988755055646320453916739548149500203530521250175901216420456237890354811879968113612190832657546921823900992330812179245341419108890726916656820856536488691612242738659924819837180627564916360415926050674035966611706937661639827850594380871154186979472217995154157316742638277875565253594691563098052554840134778932361552873762159292516826703933978083521360494145808097135249307225094280388190043317825632747323522689935507610179143148399440861637507686669805270594569150642032109590503905874111562692640685725750277742897423630992713496363076963989065933156835537419473872713440216686413981008140679837692458915493680127498976792465685671802017668338662177205071829293983088032552900479835240225745150913595531814221189863191831259346128799712450097557875164675228442297724321197825016010263112257288635250358535965551191165236812656068743236898200057953347582889289696255291442387213824686999666637562522878311022539768258112670376604093508098331641314023409166739742356218565847468724803606115694827120836663350733780740198806165677123071609190760674639472105517942816811783429972655324848902447299190741111089829924374641795093349160167838642232610978257149537672818246291181821969145632585458106047077453588237414801766093613732548270374245553460372378364386895203702343613299685403475065914914194825980741157637152459491952064464467821567221472271104284471149957436593441185660717440754064074253911507112781473215037639479700933179318656271029577595798905091538976403280852957508196831230513475099845636518122612163678867340277377990358768698284725442949196248883756492220263624183187094634080293433553543812286735661032060854925204330798493390704796526840321351964007082880792369770118720810139586063724200777440156208956658842191482712080470721867628392800610438656425467781826017454816396232718283821455053659343483802070938958217439580725827080257431280256809022831094104987598672252592351960863038119700256571460682933527778765542136527458825019566212022824244878500220376042976184118176493492617325784536710985140864362986817223195053702817486909600522954498693510006583870214006077120828197423285326433625315872034850594101791168242426466488770185702435795691500584147398809600017984632899148932080114373498556758070782260047193014383974722879686180386919872017546915658656638335650342880420560664197691350842782055834207994789505228631802184734305130208587114843648511837187341038445632017611141232573741821268193634667658108579611852409711928967016310835922247369443754900576689571097511913944669919945068787315212964715413497452876327553409620617933261976916461886407604419191005492853167396436347216462525511442184951133133188363917302269274324327580361166387591679515521699238169916717031173197940226727251668986198322708850933713237636860333594515068832303297877465646229727947802939800954050290258110648922261678075078900047999005420601891864659054407998915274432891234060100588848377418011638547887332721799897451875957665201112477082371545410809334216130673341814397236920563099607823578002518592704713231936795787873232150269165459204399070796914028681553415440369123269559586529817872678875021979237502474775750903493534812877854910806331045368173154733535015472868187090517580631061257811496490986664985975506587688956103108502681010927550070265655404054533567913436388832348123512331387298256877641703362719392450905064177229694736716094400103787906829600292225546470230334346392076266801470067634136215626171202856681083074259299552724912850662714195541561755528900918660154798937838295174098007846768784250930369572677063873640477506161924971788444559133099274454290814242722662922095499963378901230469967309942049585691503563438681746721434650458353597116100329022195177815593509830682924632637682198744518627076890675276410869602543151605357729643830220627753845392510913942429001973897093307161905444840182759119030852998921025007352288890031311973441669495807129063500579270685653146757079093949237284302027814601181922938319324260151542849268736355440325731895820316476651603140507225652223888583121612677663331518197864656263913505005019720710364945734270709223953111750921224382195916157123953431264745898710184167116898784168627393114170720158454915806767284218071390890094564583240123360043684903301322711052751058473623339320102914843793785606909503590930957894281619495889417541254177165112357889599062083233137499925684326101652736625627134609452322415386213845654236025218480768515132631093840552566457109281632389252743282929803601868939752005008784428955312484383289269443488265737653087137944878553866625780633340406968108150157418595112337077211438828617962647413740402067108703396685921528789482541704613470356902048334653983756247968124722574199774156932272207467475636855476464413211405849761403024934776740836155234456001224723605566090106876912387632901901118629989864632744375717909030625310058634591961713295518076972157483725191090437412733817983273184477161599001636346784381107143920957976183851315527278770011343863775328657520272107953659820548567054576476294628930839322674927499991267451996098716396290282700144198886255202251880152826947417913194552471507603608457551711473452128243371880869572101424392304826875355632935957582615236143763897944356174525449029586052980051547109754394284736798664951714661966992583521956651049244131810833651125902070066908419319175660186338748603677521318421837821529221835233684461035795417908526391153966516444749617422225062881129026456091786123587706821058288534440256620098944237498963164404779416484059503255090317268401854922221040303281037205290663347801905103025057382264825012092325361617372684854758237946018577606145848035620918184900625477820042303958019726115347410030913033110348754382755603025782561824563439793263484261329724118549664393314842783022629802509876272499454514872327274623722678414622419652369986898832560292109462226265311535166256621549373226634237101528635702569361021984026683444823683665920354379919024262130268818275570205406342457624889242410912846303660347678824432795964885933258648460351595772226740810951844005960205732272214438070187839026236781756931480257964275808310576343344322639879885879355433714882248848640837278967088149315515237163427192901172697912845197681914029792325111150064512097458860266663625302813985850924698626237893873906169872116030468072245768791054793140675486145356144885325379045583187171357903800253388708085169046820657074597972328293771672631750884027453890167389008952251415036980775170996750151794982688015120263985336872069236564192410065882727559990544137628918375978251274138637793389716882343641038433786538414967897413185305595959960751114120051751461144484714042330920091016192994690530897078775010597610422459182555599300672830536460680932435521321309160603516368234082854413400194738502240865971231323843260097764366031567368351115182449014512163347367142270278798724899533147070765162066960428252854366173079501127064617647224665769592225608470217502641091288234551999466723668255556172991331052062279123668314843919318351630930709319179149714383498779929916903326113023145879805700932323669581898682370448359237614162264716323731706701509974153040419194108928597875351341802008008354811005507212525055758405538320226335348105458507999968616487126968203236998182494875284779447705500211898091200690832011437341447229023785398190279870193459295983889542701494101486253274988840681422726850355852771211103737197419867405841458314669649389763094978684708374194879783186172548056947286284418761176243639551115971390532794023859667613922364345656267819061921962273469059148016138024686541353129691888262060261457546223111589938210159091041827304547138334257677640231884053647076767587393886883766144225636887429128228773212316195084139616046446640918162449159330459350920778455319286980989661379793608277457654161366623759528555963257499556225893743206341733846889416260202762759633382144322169436065849675772247918678428293759620881868828853869540161382607083739621806633033824364366781759665508406610252620390571539940797286752149915566009562793938065837444500226047427735004926567740272403676768688379901341606414267549755054275564711811637157134125891115858161706777226348992008511289349585177920684923222833301590235678928739243111913989994499938502582310308127013175172177596316534305643769761682729966477348564935061618556336611715251558131703188199960961878407655498923679520844152445459675705971523071929153781105973540024657771853676343293656901851149727354631218011286084534158917967540244870819957648942817399974824503556017176405848553607590369783626365711004335212807545798109019282157732448577121522618876675779101499163976742378370849549876897637280753099410125401408939543027665692987019273187428651204993695983619740606975650306479060604874577375711295029218626683416830443566403917495162156217726248693135969734080947477092524425682641727668007169911115532895323525397043932592251299263773425007321059620085238294710177075989518329783226720454397497667757431613100552635645101216463149387928889937859630823813653425094656679978581598146640051149170397174568208581892642123725896013262926972439724438139442859999279074113177784963510140626239828937049265572953914861568525265558285860371811583629420589072410619458961284370124130679178973951926595614754049407823889938334051252389125040301328570645088348207356831025329873774470416450591238063787319319581472131331613907530891663822752578688940336343114668378826415601262282247308607798285125310811416083108661605249574456490754959434583248734960783203443482295256922130341029843568405000685819194097698425692940396538527193810407491940319601313105490406422525474912820246759165650148890306038939451710834693354974110817380037666770631847261006108264593768474538110199647686267206912165473876671923857070391649758558987702765880849188512123890299265163534950658905575289756856418111115476966203606730046188232658739951828731041277033197325080189370289683792928567330780125594085924337435213190632188217447129306822073360495502333585023811286480592220189055913404698938590186824488116868345468409247975716183644990381323352375991937699258599536507449390814540239347496525029272385668373498165223525045465674853471310301241813014568096293501618182036184635113618076516956758181172806185766710200331424434133560172947611538158480698059655866529280124462431112563773033804177515134856722741650195201752080913862035260820683541608999658288120856553581412437294611323674700498724511300514764530878849524495393972096407709995759443798992332057663540409993315161930879427240755378937304049079093949738176316049077125414497163492675811256842126664861033542421322153255446194746476963965220122672373327377731405416716969395431334394488004500597221410599043832721216816896956742560600142093051916407367265707566571718397213324264154506586404125925042333412841352842764324146392657065108515283904185630091121544475735077872915092895945204683663389340427941966210380339557591737442172746168138233003330827159714669143224116737921652634651641930204819801738236468565298770951332396063322238957324679371451622867533436261328306324676211460850703694192590724922915982514401598324380393820610910359641849148580478230678771225901753705941329348870921203458111330573368637779204669294884237933698131745338517322750245641611335656243934731393474709324902828566870660064747311236423545621741769201206265900026257208121119818951195078659195347313505273925720919976130063028697702830775074889936003427745311380126505125051725481994390543298027491934928762614981853184467047831811717406962990148633598956973227398177636698612432550220943083345460188028798880144837371654450454456439345010526224443671684595137875301109317220945662184264415103777709390373173879478600936137620808607401255878274872764257548002013210231215523056344154110732044578249885352169228646590195299153680325705471141050950073096868748802595869786452986804601067292547102786215956533536871251727127656704784900157408934938726799805085031059123141662850508947725274119264900445362374417848098473212193501336370921473831361252071697976761732794183602973901147166858647485467107493518075443980747307753514220470299685691600161870142130403934924306869050265100669081238864553493758491341238141252185021057354097161452158150595818559111051698902081478105544672741990805468519978131041322495261470440589477173782306353459787926702993819739016877931814419229189818655299558788320728916821598234571459790534286849738676849041090460753983903577514396897140508296746194116243513074989532697403435553276702569462661411748044911509310151901358515831657102846441363551592259911754548872094233599903656910035704957963069432496332207692823300674537528319268794093048003249635814265997181778376873798356678640274967834319898658414785421140657305868145689514001955021862359687225083820251478508996147647070967744234097500292658063697797933537873520504364501367499677759613172205463883551900468249155220073281645219317173590545972051793151533203735189788295932749099127287843971063074974777780233913999837391704344251774925871041113448271841814158809508254515348531279464585543870550899659498720081917992722896232460217557665780255348322315700919099073016411877991466332321811201983827563757262635027473057788046389108637678560213451797421030780188495211596098795138145639265134246002345206070067812901209733453546636870209465750861339002810164049145849275532190308007621725561180525449383292039599179315174058987181678009919742053646951578742693736383984233187400999348970536370826881411256176554333544324627478685557693003114054859150893209334039033347319085805329350136165880499639026518551476621518392175630169623804019659320006364952935015337085010747579793475846909534647114035217747721207827700193349724479677293960297685309576799880027022025204173463744735360085694591790117035562447482292241863324799471491812087843156767488257817892331586878997889871416498803592072001411904501179848765900379759307358695211538482959894351691665900809712150052999670081483411885773757398461498371015366884741012159049232063081939532633281676030706860413832949014758666942883124951413904933462966024222333487043870366895758626229126329950956685564989312404161188881499398327460608112344020513441403117042334877260823510572447401584661685294169672969819988052489224843636677438394705928201310030462014544706072591087048763366868070619273744273628937868874389954333996352503897411812555614259153870198149539247919411142685674938972713884175368374518889229394821262450722474190506989885022058273759216786452695249616390712841193845011359225263295745656351715392019527565279918271591774781186267165951756062731948963335407312884645084858549667813709456251267827130588087931677800813355593632835365313487050475876789955540452029298588281426258922568410047041136079257305442605987094674258212747764866440425939631186963738821900694762559115618520875917096829256055124623565312687689709969710741725069559490452007554360418660817034628492389720690194205453080739815808291281337131669805867082656160619476253141946424273754306898731435673211841350043408098875748965137072532911411699175017055064039431728490584900032678056163796831205841176719544474608312395712681283934121973172168126879057219991468087326616594320425759199888948557443843976791742419140125478064694882901410661734372014258676160726833650126712949318007935072680626027607940330745425875278854797896413012753536205890721420154929103499049163119146952022496548948675536724346682603258636878803691069828660606537262197990099299232596001838703476337264389895220317167161739633247909871285181709952414845437372494177150512315965362243329828806702238167674603730019874308439771066941806829287930314495858812010154205353376858721942190269027069148433439436590592478059589801344220616793112571648695788214123437992243608050734525943942372084460395823981621777389854848368819456899859395056717084532398549161051074359073656019081597941154717738674792199413331580072168555761260523771427491298926939807033641114385921350961816468700001678287545983959432611681586276644030764663597816920595754658536391188396847656124978511635874702979471326217954092043761970379808284956401446976915118626189770032472650801655755063027003366929052572331705397931306471125718319386776377377944265503889193692216913083005967797026358917124752784265882796051650605292880987988034242338230634785691218241724547437409019831911521600327516545170053278091994904967915812244198881058608187702254777552954866004243195860229365539181281446313194859862751584871793310351635960989129164959482484997092836938517172453075178479051410070351510981179776550708462430021105805110886880494845985945898920149269581861982309226690640531071937917282327299086332557581686877042773715857779125687707118260321421527372475770912541825093196316677327121354064296191712158416381047549846133166097072933996776202264570126102307913583474626819403683595972332617154098022078805512619294081429809054471880702355320011327648671452548635994263796742307970868069203724767563675633974055520887939851060542986903183303820603010312790223990644139345315560234355644723005813876837372875129545598363042518261535302034457394788698604767373895211267406158732223788245951391990139581478606513942419011193817957960390367078279058842695545844560795167699852263679933496178095572481629743503342774042945244200643208427739072971850739365913649766224544003125851033423087657545515117892662086933954074387156532690262851627087449735577920275257698019200384505827075737646221241319278010336903562620174045343035884653541474261777759900644262925420059430588165536782218209394772713983739969768198023484306050079781288947058073843257968121290893309899120254168735057654291824364225992535405190972417847856311347735185849934224070123682293839212177254902426435418086467171000852817244899392750273237041047170405992693987049267384351378640962465738132850503888460316319811105309576331771715326100655777349717838288590978629412014449462988190422258264241348794871769404886665226089567369389722871220210550268843102225990376166588062669439434332455148282834858260401109724548211573920993529570805768808853985596706422228980413453157667660980926248088600082846072616312849234010651902754437354104294159735433997073456764673382142525570424080023867836369075141886904336494403344563114585401581752721306412406202039518456397831172847301040670928744509848197104843399832908865816695936392762831330778580805950333070508286156322702493031288507151764412010198320446204800991802397398316497666240760288073614745859973598637222287102240684447897606989008663552295464596162571976731742529692061600229777589278616307862940431700743211907690104872657451875025073343108025061948926904746237019136785340007169989820832730708463577671824812126607328210981606174501790911334869087296915537814047675885104256796527216467167230052189017345303834761538247731791873382156294367085265848450195746968273297983277293854645243421184294141757013344387444529025378889562111079225011499658815356851829378342044878567414987145133931176232626195096732175406813620114768089638693956725822221367183216663528267745950929042330345905786307030054776635050184899103431255174550423769631165214807314322582193247557290013086366896012957862300289632059510040368300786721145679011313759270777589820264505488249821493404965200371610231440665053490165935751511419443635644609951719954256828326870898548492106805729460592758869345278734702399667129661975141307011725971937074125510945085024770214504233965038934313221018485496129258831721120521352263285380494625908864708956990874781639713199079528291508765163889231807607108902796475479459288636844934117395607402220120263393694307250639044350497655420972648712401791885276117563112533805251507198111139670280327860277559161997781670964010453504684250282527337862066006839961446351927449333740028965926641860708517561731621331307593529427634124486252298591237523071931923190844550404278330650616729132028933442327691412679048902834013593580710867693043116624618820868021616128492465429727542034757471750033821247037049477271688458971931404934728779127379217218819224676390677774891934585652329766745618898465595506297028270310263208780289827198335550315240163772877510782505125237432210304277659531295254218930233539604579527327639125908655224227777622376407130655231772453082953237764822691148520023434898209712572861180129303587721319533304868754315612431767341893253850758929076674471532664189358489710277876071304016173382220244066161303336687470639034774257458143817141958652521212824847902933949931077729586914766957738180008045976764378662445500044511108808545583740860813174442354284267418301255073169022547397351877926517411966575015076516505967854068834855647866011651763047835715886009650999387746476054268774409245307583937632854379756653584721113912676380278893995602248651265658364722420590712707716075441872385590965081027950022737452506310618177129801070791738537775618431212478865923284722690525851544278426408323663298453263399232227726857562058425669214349621822597201306528959499585435709455228961910190149919167205403010643187272652602901713002198492517960815474876604659009618566519505991869191429361146230243174337064424606357775540740826818914723485866912702649165573894289050889891445207135018947847599860007961671513701025945342784340547142764306424366424092724043685992013623844964763173970773770459495908013912889908180260818549987444589586915818960648645314675574541432573825321349204443947297122896619712964974678061569723486463035932019683861239852779366304622610319739864604309890627802360204338750008206857313649615870982173123076835075829958129923327828272605305297562747065330451426721813380326555095450069428651287256054056842224831021277406650373401647185685581459312245043018361258029942989430848051361610601291393252488693669769842490488684964526787884927988836115853219746687933893824587463866003005111905812345433822748435006145388173374910467136155533608536652944970203447893971063394128592808035282669118210084880107487261606219777564139363553084420074916849574045206703686071756601338834354515569626742796359552129766210180007785336075818058124122562629999736571286509694565773238643666552122165297182554134629345855505990055744882971932375368434290529841273654813185996109317467390559621911360433217037367593778783413777185940634717609045047748020201045339469306323802571102354707609451692615011232043815525266484798532704545407268122735799575563689392382909815488873757914624520773917588553369116641451047242886107221095347900845484288771484050118082717838520268276829833812925043606839056108164894038828141741280865680415455081277995536044900941055162206862162666078154977841005984088579727135897571862965157271374201809471290666532258961516979504610299770556049388360691278365997515705987361362219826168224200190706886417053264047125855251925328136076605923312789012814926006565617962261878292360015487807481648075237373000397258094306257785373116119051117790267256903781938206163493066637243883684360898240826556134321118298051849977845893763134836966716082943578660479255253287414838161209244408205325605386684541661551985581423699528461292398260803450678111945452853371521822585024919608022344691317560769365452591403450117299341385897553242216929871341482847904479219507535724389689889157414842706206759536656765215478364682456228637199906374882630181646276410415266790613238018680809048344557158677073804542929414035386445529740729219779217948965604708997702308837887377570962826475877298873404746940094426541787911611713030224385550740039271800727411750798454848558239040331518815468260622285061719493339713937906460002301406508594037412995512128467981974495112740907218992658217390354912143601088633004313307625750349810371877025983066421800296176048085117453015725558769409418344457739455202707630721861194482213926188393916265602377022897168516321126952262445109590740341177276404066402203112889224756716828555187915306584812966456364616949528081768454041277041253824788617386714827807583396860873649583852765325629710617850303715690082034478496061539339267908493170914374508956744545372819166826607342176688303109733239649465188360473311279088776128494197488748153552305420534444215089753565435150891223733993010544818547509994339462664335300270238662147439670782885689413441442495830592369599095824444835561810411409001970560945154826788815873592534713416605046669137739256435985435324927799421844060569216487609546861698028567589174871774240447598079053785901605358082472884003088306726498677374283529935360111111168529755228022054458286454173993399406177850518397368075859748948688688939556199121587863297621357658546926053230159366126439488037907723631549929385649631495431874470477184463501600817586182388924737980975173315040912564636225780544487062907112751742736062547242977387038901652402215021326202477226262397487966848717989100264329262142656275575638964742981951549329632582069387139698660825313639203527315458673389934501090810692221101733448110324914039662998640865668508364213763254070425320404904158937629977286459813498550853932145915010651139373482341391310525865153198449104277156788744865481804825501102736173095506427091246204130552296442395610090101319821942617979698067399513564496770270797924611329942467272740506764546199022760004763702770088967304361420875775361511783355894532503412269099697532346302678055621902274738225363445497520024043717247952949429431926727963626657867190497815561020358614303485673589112851125311452824563602763134071266765335580989139606339930804525503678030320432321349367759895447271083545690396048597527947814046275781270642289637330605428283033083564719340388651400536428195543173844097838522979525686181059298078606690495846418750508123116338086365367772889825707240329621742883132283417195497714879512324398954587507320423484093964825013178746953882180461171297698076996822988637260539543029541151883108615517313073789677897439635324757291105720721548458204225910603962330548460158037499545362055194333055231179538925251282411185673401474738822203679834734597452636782482182719913407569562546230038465102450121930957327747671719276558832665949518762711744204536980834604814954804003935876004710178048829810023458384784890697141593107180815980229880939654929422189561707568976906641117290628135697681793990091194816446436765090929808932273885258214366468940650279734643699368902314378791800813935586632974002090001667869473671321803278774271934361432936929411883601793753148700287490526745831303095204384128452239291590070400670479051972297930943762037070638131144627127649694358103604305447691962914283988653535009802847981295479651507656907446223446620475769582936070288416688852093267602987632950625719447362037825773970221077124095335894296866263238125675126959979863446385032692099507579743596473915959103761816926518307601154040711754033851808395677324034760702866009178367373567983961391071459913432037265250494315744879573890617149158854966230005331673480620839307122384529110176580763054187204693861331360490031967304853595726344005658775585526423821657998520321986205496823496835861614971716082223645592293694393150872162043115556112036086906501573544633141321120813415813827465199539657257192396506457593939288098902769293645036134947475042314921875032846317605465130078481994865756673876635387961455557509118150560177275074490260005374159335906131363724711708343125456275303648327551911607157909053291860613657582103113992459477104296837534858475126267822729653905859817035585283668235763265842081489581131085555581063438601384980944656998113802452247202857781742999831520382392294059239877088504661530842477878983707479512048143439100530693580712846275360192802030680944177644863369083221833636207186123046335870389248543005700521571184715594212598897379577965631432653338876440397729025142788134921743595440395136181097947545762527216920603725689310925392292633504095483225066617735313290176159149581092817791102680829006038732784057217037093354915313387502440938759807708000870053363768819603647590475889178148763316508371382220574108477131316949314996984803518288894219488234559165728922697201166435883968632259478663119272748672757411265598625718777978440440386214481515095414137404249803801504874808095168158623081687945821327108155333430084472889591834296471256607655563249614901554926878551059529773902707816810490324106755914691696083938103127657305448688593735178570472282928256263919589608249092800930498885818709326331118615879277913377362897201524305276630609138133631734404241180100417354878156424183067953799619914365840025353350557063745147378235284963553963577801800143186633932227821019752512048979581108146146332751815291954408553282245040941889694451413282289364114093143342611253813090649793731052757931214189955296894248089958270950142989626052101649980225496640495981643941608342637025409921413848396211995188948003152144147986848595119942526009999881079005322287841633660155763530979497793057608281606056599892469188253205673633883492347624580195754908483168014811583780496323301106809552381594869297699540262003286861445436058933205029294345946584455871719819018896413971575450995486442393283442251972803151222157622100827358435618490071484755941486177380604870976992431389307252959423534482503668075161263903981364871321474901287088164623618097165274494067975905209747969808012418400489405008357684979848479197339525796807162712444522196903530072665314242938241867689910068620649941438057420079174939988690808733070262291389357473261081671641742002542292168501318086444109203039941117844209856613652393537550139471004252414712129337872410845943624653642605385334554230403647672453598938797404743816375908941371468307202267230915931495722530324591307323553283070241391662220456861361673382926638261263416511802929292690489878849859813986279373376289636422028711783927289709141545717117942645293841132433851091992852495455094189676764265147970076966111795156738719390288761024527867525387815247743870595266796953561279139208712014924237633629854319515810401446487654894061743922218176130000051110780261676160360477161236980892930114929882425569832530447821782975622104038634063964701556450624297049060689997770952262288558689424808671765927004644360120722192780911319035379786566013810256350854017113401297717919902974847906936425629649681919860316022265880410912187724546405691862391173640328710711125876324203047971938730858796133924276730370381415466140183908368993817279625682706188006525565772707256315214655815385765846693294583648278124584735556839480747015298715788969017958903313813183633114986686497710026523100107973313998795259185982039321978060772056364735486123287780355812178902193300172590253800470035528556528098826025243897072607853726956765598778397220474440211917928463229568239539685623799175583626971538162742030415063272105082088442207805611328806195134468871666082914184174832513177225258315830627576648054048001526510690675923190089827823124680143235260789410686390468315522609489586755437549839933994991642351386896997057365334933542852102897856330910395812140010120975715344705434598700895418587789234834527363641796640661012729655041061291128955909285745482087712137956578815056176119625810818890029402937986409470032500910811398391930086183633631421044467356105892319279285982771922597758527827539541693756491393329940170167554537808102747487839334887006155873814776856809253448295685175678182770030251738142965103964794663473729112545136883696143964831169808283790200449534585784504803301612854539018687934008666446176809020464889830922283645169888614797455503632548288816245909856428162105780249773305601222476685097753800817810732740108837714349080053099531357190506096484364386190154947502222514072862077453779114224352077115596758353829120228307965638833900410464446093050362790067068506937348995800095350514768960905836253608416370203968148353996835255113172404512862322535906470393392978236427196004193808529765126145732921946224169131806248357624528134707016585810034055359422633291988402533768204736000722515506459169612777411517175372065438628319766655539656961999663807813368483365990982998006819954382690302439423524249270203472047779499086905868423080297644914037652055839190740773296298784407305242556398255289353492080681111064612959268459931620067421682396915885351637338781737286337885320290420629762813241771382800284707389171836506499157940979507356335744796095296131735448390628526354073164262097433815523296887979169293793031805265623266422922785525627210120524259760486366884922473764629685247395110936986268361348596164457955312627521761863583049158578167212328310641404442193819971870092907298325267828484422031459455368770380069958771568963831674744387040207279010173037685861772245390644596002532167143477164914683294849390769005118433818142979003944230440810715263227446480297024756262087718227460939854512063825634116787537608298541601934312043323399409003857950434559898142086301355272063889496181674662840910664499301986304127209820998467826698770822822451609850788968023196333166443000459009792965290041017781909201751371996574490127579485848828730326290244434199612504395617461182976695806058907558178948806806097075861571340171672946933641300575736497677976506866795765555041407805968632372968207935829817449771167705894611156086904653457694865047177189368860811574075825689127486572303212624829471137236487196673814961705284230514757408713636355071849016203660222366223298841149317256383558506239598939093062726945451987184394524633600317897100196356329182753894338305823202946676353251762250198938485178077424235960425997806603621117228036941858569113707908565542048015711280839106038723232439716429130508233396444083283583016138588091692253246772252660255991231485709113942885129899173879853451134928709017989357818918953094762881528580590163043252141581769509497382388312670165673374494269235801655118287781548211607047618934096441882335926837497451140275562014797214900862910324217985903315086101267647165014614663043296538809493519916770739707930532131116378460904290829421562770558023624646839117613229202340028310006613946663214551318588847904209025003414308286660323432623222349486214363813017292980909126217906728781942161926970432266401579864465399363274875650556649991144530601090208585040178483233206162484269498313905202268742387390280513919374355911848005001220844877058214007114891501795880106327975687448896700464231549718186176203627530204274954323981072854141350433380110976704348443746920972736515250604906476423806160881341531356630866120949849245082248478186189303094202780858013884636158268930302657561203371685022926901698420584776984792671363651165783688076585559954305577767414581935563982674855787078533914556653371738709025892228593463521045153287288875888996104776415003474532819732573255537905739794963280229216396024413093213538037952297470326416699972963749740954805625461989424086066426711566571603953400905516741701416011438861104419669184227869161459825245618224398644749337556492936414355516045648449749950520427168235744241128709150494996712510269339148178542655522450229326996577416498255876221843724373110457774846231136422117225796283730803778079716412997074296127461401664775419399136908935074236853051889545391549613874593682931278871197518641139861734742784380277958527628068782673455545769495025505320147010135094833061024371261217746997616083916420554846665927458508851753367082926942481907444369325625158617605265159637236398806197161717700818220916554948513840284561498284337262851384057409622382507813665018782892187386385317191640134976093827982701693134607141538658835395254550336094405397776977458226488830352555959025967393223713414025795218909440511996840626920665283426295340969511008072070233215360813293076646596636754558663824028227299175440162579417149305271416695363203128515836121050376767538345671088523634601304012338169162769343379870843248719482438586859627173144857304090196250715770949231651959235549689429922704665606448238741630437811073500111837743348173004965210190694880792838911730631296310911836477364857714188687335186042804094898884770661037899895255288333589717184497520795536721358011018835286564335425762355243754650529021117452304249404789553528459184809789805736513939436388740985987211469755792419205392654844526017680972342025387855737665928122333999234696063281005014659137966004223441191854902946712719944880262743482490420171099060537191345321134431259691632196304288897758738310822000133768640794267544354796130118202493260874808617381822696494139252289288379895614309226354254984977532329709680751925406714658031183731856051887957783640388151686315812759223365725580653049525226181741560716491812179870498049159152923704171154385205101011851644115265754746415785623836122228040349966074674951552801251357338044674293547523812903348612143003665932305364389746850973654753854511334945539380101851254841389500410299545873181400035628317026806479884626417315295406161651397029055337339008056339315040538502532631984338736312343382049986119496700239791576647881726781384269289729129282108657409506042986448241380860240227104575248237803586189134545495173600145844327361483457233958588107021240001995870619035184596903893338958769234332666949641383937576712239661012671094669929662655634792391801937337651823745251874025144722922701307629022329238273278579114942961950118588756946461998016364655138216105531836852257081256640530194831418173511183067770073000033096422972763556722335461832425315279305779299260213312175485854452359759520505696241027433899785665650717404425328471992688367546309050164201425476712852400270884304119138629913896080260667346637366071732156535476375909147942262746179332576372651712522693871888028114927513796004422428178716099523777818799493741427826355069890124263565105828433670075133018640175339857198644021723672957031018014941745627484034858910433312016522391446058751801413676633127207028246134957625659886923088984635845901929502510794604712885346523895087189640564672775897674026192041894433509225385045983190080997749519078784653481475943810341656013605687477828330922244884484808089493753991811086163955576065221079173053671678154739585215827141164648823756448751821581840830832728122396104597653967010924118581379476578556272926758493719286063905426821153018616478665342609440463005787889273752522186130456294056009107604054569601255714604830325575738828630330596786470276285827796411505055745932247465412810831041053100189689646446435261900007018526446230797616643578833370374786449222704650193045993459305118639387789291079745280252313487350954594341796153650158797943511464330484365126521997948932342822228487625062252681517221102785969917608780403310060707404575434496389212312055099849023232296570581589017049941895095670214645269088805629109845370315217785965434817292215276099985555107094903729272716132115402024211588375134167196231547325770769937558341234025098802059975551763973588280688271114811069145915846414344477824977014396590550211464771121482236749854339066725914364695600019182201090862065660034606465720341027662681092291738461689222183544506311307436716760722848498580212843615466902297303124547503687230287349415554129332395921913334123829525870630466492468575906690614502434713212291394280656055201932399950367798494858635884785901153745992214606495892821051716821070545603371592007937345197257853823538050540263742464894825188482000192333391064233430618451503721500809012158528012160851020515640697987099029702984734915116707187901557246980254190110178501124934217158068166610149968528477426388193809484834841226485041587422303477169465429170697311847649633913645787698093122673223275526116012841345350203495315536295984873271330003927419012742383664651220824794198766077570331249619527737312794285784794260205296859335786357442339706177180405358161801646351946922621337805934620066324366153562513013737265451052173432957668934394155376526574543998762701788593661833108529409422732363627592083315831652521496463663232455901289989682801029600202199947245265630174136177678262988621304613518977717052863657125076207836984949670593314098287405721100573582694543478974280568652397064605305323472507978706570606849015224131250314010733564740399785341129586169866797574601914820901196253443587980884378129079719252877202073455182337278868453560851401398990430187323897906179228394303443221766588656435398970800148813653866196658917679262055315400517733564555999747875214080707105380991469238598724805918196902360659043708469979315108100370111916118624939801386743255680192640881208610859487968360064986546432248666679110174334637453704553269155497798690911331018500153152991590907678092366148448905334107576428061017076083103842419922907850724850242296371179792093977866727036074588059959820251351501027397674094171938799215400005901404909456035994613792689721599513456220629463513839681168177933498587452729351957149642118348165044975980601479807022554746678581005967245518987113647372059739836698154205267022094580437539461659544440483337800670633737513563527303351148118952275274785101805703509056088822617994850978322841970789612093276790557578635815087391210199796886810662311224855293270370872428151829885896107783439330343128612046391922837731052091794761207754395303775807499900079879319963704347008283536198424886143418857364925985462211618323913504814431518483080217043510610254030238861757975644263292506271776694452762205571690872269398495562255526221807977663338933109779199729626540295537071847454095890125544209460760400051679760727932109065178622546043153871437061881101127404634276673576988838578073202226104501081061722382721014045819695031860379887806913469653602036091582182212714520064223850667672702795414108129694961387158233299937407215361845173207144807444873905904743785533321988092106019151996596352034380741833979189242693837696351463001429682121980139532012300807546394649581873275936393240730571721599584991217820476937822788101893860510477436063716229085255589291181265613894109081437224182159860050705386254748653763681899328752049294944579453149497777598410723087257818776681962923482425774471602257778131234685713581726737247105963101355541394156844962671200419941009420818740439082296308986398124541290604845382073567238820103235516225034533065860075611463757608978807046106440142990496983261822136781242613396821932765798588205625377486991771069467374219343235088819703550015130217468323446314434229590397482531452542989231462442950478031648791301929290021019546402203224225088868413084827827318024325514238907726417168559522613313507839743633511109208976446241913726475900728903954470483377529173027624258495142459889982003562980044285943055014951475318842355247878942442553357192432355171874993634719385409105019212746420670776088644979324181816666854692498232958930585508207674991184512745577773203524788934513016716496528137409181065900667778250585241094925684163197617777567531997532118605274859945978863640600250721943744681913573368250778255735496168036226695452514822766148425472976176391594836237708160486357246705646622171604651406692818950634220653505122273509552978034549662946276017682535469855853598770473723761738815805761746267557363052216445236191472795121435978032863047599468887789467593474080607595633335213301404800475358408232884740892196772115892518712134284487804875593591862840691994992796481666333742237718704361038696605464702677864796224542076032546655219742479180164917782301041640008411513214213521565941152652203829236036773966411556521440930202828013114672522715315036978018795492368006387424613140867767280889615698164691667946257090927031207985003118325722973558272267782011898584048927094039275821299118845849905214915448775147666028452003125093504717879058179054563198360027765538036308229249504121543669550741182016381624654039860280001480425100633427775210918158040353244936050155988306909570480026903082854821765005271665379638468353233188390155820683202820121912111686000808856178283217174187216451583056250391357046378704094493884454343293691895148292347529526735193282585696412245216815514586710099989469414521601576704691826919755528645960980765136949626800882441978886540787195378136683653687421090116285403274651763824979831886254625853372716761275652514705665362264240965356268570106054893885974781170065952501602476377715590326995007702717492956527145691392791225560939512936173188812425132628013552686180161013032738534180199113014046725437678125532981496421127771770284528685763074562324496750508168249977091659766843286335007276363345837583776785934120130744918335608973513628065667456916998955655096457255682062069383300661405991807808533299565155296337898555011288531492412186137533498676131281255941406416338526263337168877567790231764655314693973343224577262804797698217718026913573876953494717485235391499398093078499832807913826816632114096297326049063146363114954220420485967118278782858637143256994388161191173566271086731136218806909667498549070508763478288357812743336297100753161533412074219972770964575836860384275080566776203086320167683124472676192274851113537584169910473892236159105145593809004859686501387004021546605965835556362658274458622217918592315893213160600997192274064605229554770936477947578615780544007560024986570239395074290285747358598186111747085373874007875636483812973118950096532669567532483165782992728664413682971057071950219860724010077711176042627174104071128030323252832372764673428580762801767428139162754886952430459789129506534982634472604804115206993553791829066206594591007598828929634274872527474626670744013848041916408383156068531861995305399490810700849473753681935015667780277056952390888668462444391132883434195708652168413167321462511594222681145194547134761330294862103393337384847022568086658183108627407526261809025581896371092814491290335123124709870583760081517761261901212503689832407894086401072192944258134021330240430856149966684476591905054577674957856865563681043203530624625265800578196537042466276724794804866688273949341648066869617703871716156938336342223790757789296672302935458824939382955338713306063234915704557932502039511583845041881287213917694212988143056962994048688434407381358205593732148020666518530523066963141494536150858325877644829983699934235320895981005125232590291037612951256521245211592800890491985977803915506336725879067438689125759652791288143761510232777944509168444755738398686516388967695251951393247786610445818190905699404899564571500885312253177148859709145954481831384321696449922234602627846083045468714446101878031236544628488213969737335668900623506205412911769244822617203312507355291442216907407717118554003174532158115598949056744980604131683352514188746723981101068116914116654920398996322523196663838398186782094159168841999352161121106160842699450818076405841870286197762564375584737793987497105146752788372870611901985075498430482206650972000704309140380616043498819852053270721388745945522023848864860606914302346173173846033744002511186912582170907893944974940115704726897920830034802103695931842112187498373459319913084024078945287390114860461794561466687114174450162642544010095849610753293671127009675777824671876877893125172272236694859345984232451003974996922062070993320763241498595089561939728077226791385063964634678148774085035816300511457189812298510916901156533352899711578206755153265050277592924532006714788392251738178988572407628461718266792114604534976814381076293720031690180651056230869992075060527559201033520095850845880008603007990979403736894439648765311366195314878635458239777407762200991697078888171780361473317830101961171434327732885805454774996070108441684391379465853050391855578898314146374250783706159579732789129810141372217261388106226205834450091865959026642776329656773723686215148517785890697456350864454482296811537978575673480386783469040780030675795316493404171900515076130720520792691505207569051997229300490253191089745815811625178390596961310540437235650280852665094428431345050278053615482636898374428951222165603042901617530039435359510981526533811684857950830506375247738029475743669254698987419740629978144140212714040777619613442010992058616956489241674702528000348167484190932514972284590212454497650226798042643887997077126844209240476936252241834295379440168031072222395393035253720729650448347960337999681409641682556363648370701365605672680668402137725692997336185700409074646453412720866812215146831149614599104197561510040474517938376760812000194354067895116286477656258680183952453115957983777907463857407060646419413850230165632984939294935848448844715278441478718097143801687221934291635452005128283693578153817887660501972573384856069587397454434714289515819095162041140088283160411106629068363050354306985014533743495575586601755397225823304537767314817329609754077548127051900784615035199780010483579089698433670344580743180146373373894756215709445868622250103125507091890256281630770175619228786441852892674283350199528489272709560484455015724127421854300680467431719012725181305092110824381363894439444554244284297842586868822511444453421513967122207799977158412367134102670033814536636908663220575898669868498151251829952079326314527176517777102375780687522784693664456511570441352874392802100805058785167183894802637569486945784704398498113989882046386342987250125634350912309919913597266168931794354818629890369883293437029976838126907962322527702095875562715522542491642807018190461788937680101170988253302833877660426423647157490110443466489344338310742488449217388373184076247891645385598981825990449616797449972611758416908727781538069438156700574459550150712828570936830412931699957742147466583671541231468148145149228787634649872455190905822325253760787642943704017635718403463803220031991499481243955277294797909200462508173413914888278591020361246787199590452620768524648620693576764726573137224928395769153146437872790101161194317248472630287653483298569374813225754230772195225956325063987155002208860715016504599123606920571500763008477881931785033493964641896003890159604698506292411298280820833264501862479037247107591089289546422015080062146789699007073955698461272229085949172605413087096867702995689917452595575883533170667665685518189602372331347737416552670170180441746447649207253103861068687977166449129695126016838084484264037034121808592118302101670560315484154879608132610419118433871011056507511725682305210938210793455176137513673207272039739106656680584686713318820202914355254054496097975116491282939843644300902607958540990091596950098826354830197643670067416468578927582385416435520998725642150006199206778922733344634163943447197308190420026451989609771066565012632942680190131907541846967410616819533112609920152342771046352476662669639272625778392159155798339320443652606852221159986557776614899035656492899353802743499459472456999141830074505726370130141162149870159825339282138869991049410648941541686707985607914194227241593761497277213573179354213837981893875159766589079925447894464601560937310403916716680897629365876226136022607079635172215287493717370111506102278234959311782419869156534235536111703743676044114877722401066030775963731754816790332232715122669714223482159068351502792160559870296401984238979011907265888898395582619643393667326283063551655002759307978459753647619603990785996532689028469110397580905942179995561856797617233204619035233285785066304754243823360064914944550449280759488953892134907035597105219617447420495099852606789217481374234946760128425168737193592180044301033815361225739747927619009874847131798400139077187572388423655391095517907429890236653569612393651658195157506822810615477105882251362276421975551958976972498157754723345739467540625748833042671004705068144843229000361477948134107590763157763547783811668094470365779442941811789003955877284781204661750932075244055343875497763404542214833857807119128531743880782264430520988094327924351734134675555928335625542780932626043279366227830073791942374865309394096498410174958913652964733750735943126475500325491735218070268209038070487062589503199139246347043726868233797202217321444740676904505276775460009285782356947558869030351248526023027094259898694366732064928579197733997769230933325926816787544059767303228219333415173000290573595377093786429081147033356380570587813956985189291837411031963210248604601572440332550476839300816483876788721617691044267169087897188683249681701114170031572774253604607923288462331004585991163174762328318726868745534396914055163114143342667285719978531557104420561732859821691105948959087964910919397910429170206384181632886546282764023584595562772451502672651770788288102461647181128863597535391296441709536328183223243867643172044147394077759765282981048229652256375914216762110426376023088586629574929532505687293519147644487939961810010817510464864332978880881812930954632630406005049937667843106660942343674828370053383507865853067055440605412781332705348839964958922117824042955100447244121503047862554519527442126119189493418020824344641755517257522040640066657958108736502856885356393744320140946398960346591174061648050154216156015326752852618466629230785920080224687294802193682563800164924148520378575141551765224647285691762403689395986199249195460136916440841098122400206589098619748283338720479272627494272469688991110059760624100376106636364231161507101044456036722997492891387155383650312159915708698364754943841980108119944415436015744917849040104350675557000218120723516267063989534136386720779709339417074611715117968040066535823095989430286869694021535688908481624601744748261310016833556828787836361818068717585893028934154177535757397666796173431565015240142341473460068688416867718828241150324547411077754645177156625883909934643098720237337706792217468268214798170840740516176898556379308443800835645277276344114513966339180840738569126178564727399586053567521889650405568082360838979079451171928831654430315214333500256484400972867465525860509045690907962795873054168310115144450861409157401454099418872801974729455142402703629416915637661390844829747817084733945748750011663758676011645591380758073678082770203725227752711948577164859380709495482034939280682275473617769039176590521764293170797568208837218338919519428356474788292426200710005074488522578422663879861877967998105711648264854687330645642537997533826289454726980496791034157218737120759611871153554307052448925868767643544068445891210190347314404759633291144193245686286474789118757849017104695856060421069715970085210870649144725636704823789856239092041457955276329932549531371961931411150131689422484531301202360915095642599327445677219373545928739402198109032271851088435463558838038631804518219044282245072387218336607212253949640217782380555563774295193180963632416092521362573329880311197526987983997014685148859034944478018093722794338332670999335353507730999212771762668389450549474346490009533259638594648277286495605298938602937784916794982740902653361247984045120103018421563293931054565305284233774607213403314635484186729515262111170333774724603633667454667819957420272638038245792773299936813385630018962614837081276145283794707561539777809442942193921891157384839106005385289038859547046277898657858942771354535715274183532834527186014780496905533032996755545440043455745269330257027305518193823944129153971030819446302268429551868671773859559993632364937272541808559271646307680620034108499596101431719914604110726092220945617229333503456813702369183032439206632905220951240804351537950969995655571358182773583562356168337618410195447228289109000541486273574573512561287895320086146886449085487062744603419982725146818034144555008296303894388836569963988064576860419524952684776050513878041800539679103597031682308426662183530932557486315382910675592352256485445041577504719556319760282910787652213482687375900516071124271641096644433679706110178917371455923858096613038569451739302468373640229007281161801138664947214485772998878176009194640358769703302704817386718714240906943768820797310460214887834241821619511062215990700249628654357699080542417695649603794268868060598775085260788078628925613828309640612525980200985836574132083132294788754113196140374046445906297965968037754854098529368248225810075379661896607754169801543510394511077821222688757689409793290182642899314082293258895640042390743426209670714170068564875465017422389530358804582176904977632110119504928798103036353994416074420321441460382439237748064031537199857238420953976799332650150514005918221023987528322550263132667069908851366650638420074393374728656650836947410325003652036138283020322049761137333268784208539934415524458297418084111025580942368516735224383722322625132544023232968349068800347204784610687802877275779988510983672524432635202274974751276831830376746638532099787456414883674421490548562272177829984514710902411430837672954403432146538137170277325872756962189014641923310363982066558142446667938467353594587008150158249131648616900297149028632801745343204786198875487950147461972288288328364819327176983725606873795460324632013993154469354270738997113763116445306056273683379844135867606134285746900510661384002455110340703146150692570116389105372025747902818003679302725978066041376147316393824657340256744206707595603062571370333390872447437528025254528970303444150562093275747720784558093059866004400619333870251130084590930369305190127208251908292199358225227336502352710126313432525486757518065900092882416075986730980156031047516741744403010602515431712007502652927269705447955457253147755101917526328109501441971463300962447696493984570834685526051283034307230466174049250495213109837600571481413230806582176978069278386413215835377707938028173844235035664737834249618110106794112987005930307321619744314106972797745509290682024030381863395442853167242860312535351765189517928588861191918108159501269669291439523937347353850323394380657548250096138932804740569029868718683941350540106792791249205432642477011349073955281628767229191013839564821492784061533092129114209824662525225137203288400185807781404930988457528129296038430935704238953634113356948448242367985175134511926208526818250844083295543675965473331679769810433064709618222205535450461876489552310432111087155946817773427646257344268859292935751789093478515439534592217543058991432450359225526875850507154921971918117659616693800726284888363076929498251596421842241547480294430578804758827834424813957394868407306314395439260262755437283796174675468250292983629378844909047024488521246873029615272477064219708171839079969121211802847625624127418672319951470081319808861998005802609493916851149572503718745048904945751354256653158515659199352030760652830074620378184079257619008568110905583884635196347904111893514493840977563631307742615712000021850392173134940641790958186176175745905423994632070412676697515401997438491586314618733840514079405710791577037737219934592562775480337675331503142383075121338936189402631580453782409263849146242511420565441802502930173681242188976616337503638429878040961281501946102903079116663395381248727543164604483651239027865174534285953773379902613638887838197004948292256922806859451809115699714374476449101472371645247780014297887643544220849110826029185832768779451752035584043427960714292414097874221152662211809272911674580198731430327905810142397926548895714388480647678168496638131589828848260058603432595340262715894666027166237589593407506048024830458909833206943982733696621314211048127705108748013317594198986602832209197132080233078578054105292989343840835265421790572488736735244776267074290235477489119618807278175908094502474210907695509627378409672635431663144428889057221810275195130736386356370843976011080706400760735955563105282920327105629073668842434163668947752102005018875795993471020199495162256655147692072347710020713504768103088603756114075950431955762806326063462888348141273289232722919060081572032510941282124139877149179878618523714895686995069040282915753300832675622074758316586005010137925228695100854483853424711553872724183403461293771735552948492391744876796693742859545281663552797214183496890114185110430564589869140437128313323463574240048486008128916101388206686884862249964551809923844005652954396450348580910158657429419306136218598798787233253133045365219852640724665264900567099808847096744903847216335313382537474720534343434087297142914491445449339787637191651385621225862652065916173790590330380118907330330590233448154406869018107859822160525189173812301140121569419964520977024663244014874145472685602311421764071472584678964941585257596023350159946777663130893822090188510308923511788367972545817931325331104210442423884494762651477209597577629360410697418976691292822605527942853006948359462531778379963238564854842976198623603979283229818403130916947404603891481852270402098915032721527558927875800532510190399055421463727590451495062854923431962389426884592718002532175720903335335965038946180186604500251808153626987915999687787520189367246265325553244221753853268830453411467773562577756046373992765296362339625593309508055985678305019581933770572738015490028788727325504424154234658850574325287996836528560987569247423783298332633028823165219937399148404290288369948770713604793724818711137413150408449185767694182884332639206539307751566523242270159672210451676355917683464677523637835795771594423080612144475245599816164857913712925025170566753102128721561841466155586451488749600766455548510655469146511532536025629935203015434570623490441810501487566085076213689708293822898363838427739461583279905753220021754854896110829236470908902791025394450784082072441750724421246263839879742028266481863492818116187912742597605373688732414799183655745212182041795682867705267478149731870914850954709058630489210671250086245933139007819988757013205333365039166304461883243317784603282897878409741486439391333646951748128185807717399038400546165996798282093661592052284647771873206227455180574598143625588937348691315895083429700009326399836093879986472405492649862569647836029755647116057371329104387653824270383187721364387552943469954911955563757320689378767257015606428518773804670601282439019308069427254700940333570212502989191350134419068012062000011419364293136621141154769945141654803279491605080580374403693965701051544992286272378951322335105449904010498118685372769051219208212793202534260431513899912625963500148996994293406271494741728184935781596421748328320712277715635379704093629652286196883132542888650864546413384850251074660862997497498725666038303086038721093421792460228555657546050430653286541352117828127431070478894383244378362507797618139601280281010877829173604790027752270091242730046748299104975682348502673207686342410814489144540583571952422075403494350762170616299606784182950728358785374377531824333730004112492112469760399307578036659641223892550043803199289920272380026729752048464744026902114462326346964250305398638733287778820828634093814471270587907470727224296468000158672290202649377012590148726845380589664249861437416422249422002623524394321825948267743782298779808597408479052617409484572741433488815759366650819115455614336592127622681669597555701398687120620623342843885952138520316306312801481602013739780243094166690293412931012297807631814975539205504476148008713459516707193147983621585089514541870834136155920532849084505204225111834281982792212667859969299362619217213413723139840301970720273345323298094836678421120274642978153059183853187556532617279133830341356819294424505038110138385365352131334763536358137225429675082732053017002305471031682480779015487889871376712557386587016751917840738342912912848784412506375653421945590706026350237713382219182682595619266302772017796098850174107657364911066215014706634379817827212426653561223845457807361810666301378878781723848526947820867796814473208247550423023302956497515947548628916788080977331899293340086667340642650219277778429731681576114625430097765671973731034574002425230593595775436877990971439029670604955143731640472096845035963462220702904687703933742721722838187842819516691773793463646323051369348440383495788798992533672887993409739855924871237584109725628546315725093201906036426768720760596723681119191993894102506670253903425739413457469927150200482571395011882054784310115102727914706737291318912922143088107231179090625364867851088488435668866175487612466340466621002058227363211414018442801002004109638750363109582147197704078202676755070041355808954963151743304746239882215770711816659713180662776136593709136197973743721842686911991148743919774850274303596375345410043874922238028343201924328215191389055835341467656329205755218157812196992973899266026082651561539698630972893816241301223922634785170964730474876971454854461793878991945238250989334324314509813907540392143998809569873511243165714317608569538316192164682870153320833678844770379867221160204144347009417688923103641453380633878710905031982359869290766996721093248792090001567538285888155308985937241478092256430759203623306086623163142397672454814811293394051995342297635744463242526238534564924941305815961366435802720864158135168519286137958247086830991479577401131814045575995974815097739735111112537539802751089753706488026366858586523113695870903241752003135880634475696566071769103894338923637932346163558339314531613763616663214810374131184634993799969038227857546638853045137758199207578616813787890373666484510560894786758934615791135322289599275870436912531780017708786978768212761118666921867397350523965086459442611003674337870518780317336039394015561331502755238221162890956057657330134806258170336491151757175007473627377908046861601091329366671924841867537462462600952713500391418615265393742238409199622416426069998526098711232943191551918082323814093751999737214404431924978222990083307952686211728955151171900264609266351879394584394402453567382072440228673754905135271664890279379763138197536599403314410799431619021418465172675931630836700418750116536679172067370412961779523780311965397864469574380647630879376467971655264208405318308287195292001067755771680146828483522439701544454266641458617124732150552513495657560773136003457893024703061006980020488365213406044537144253856955632657377046059650508951062204566784003592706828709115439160366250501574873785720428617266363334093583595390985664603862735342976683880729066817777237662526950312130836998326517464635583169937285500297467985200062639231676063649913797590098284263007311331439686614992190736316168548968778053316492644683789594795985383805526056913758888252834831432791084110946893739724802453021188296722051796644777611070895653759740128149531516404730272976657256618867232702346517497385615886866067287525255855383589122943218666125007003080912383983674433425620083698080421151404349514274535927982530696853972909188913822227650151585743360949198944141998304919793853702770963371663004171963685736308013810199038275595942340381343504229430043455419435353063618558999865418538674121614480538595245188868479132139086369407800641963134922986666293819344688518052675152184311709963308320116771088099528537172202974372719808514824254279314368533692364922684905926555705571038213368374296426710353094309890046803395429151072632397938780953938939384831070846437749768304322994861675152234170253563882235357887614632207174754916265670889417548697892673206711949580306736106093052644788961623719174473245839652782853807461652428851701926392167764865714797717092019338157468252179651009424362000245320616634648012184708203799882430834352270526174447939804515594838482422435139626681756242487092922225644299595130249926736406475798432370431034535182797916292917550772204539985228019050371565977289110587315447941340303769881249737171962054881369409896119580175764978822257354904530889700665109944263934871085880321123355794623046379257878208659172008909593598805053567710231661880154646701626157104378546042820274399571313422183957036268860909958252632938880200497988563447613162164442739789376701942743468820871004313938267449411268679412849150930298567687536337601650392061754047759491087798181749252920556156898222311857925933467393949401460966279934032241365844818114937359160981136971621729114066618261241478239666157072800230863128717911373267370316238295915693221718965954297456273014014697903461543640406531055627149257622316483249065733744443812545062945937595617370554607771569951143351220188018734020149418334303200769566802771191504034799295759239925712199073894300717512294382488400303829523348248862943786431346464059951954521537005355614131035951771177037616721979931361132688569397360421450838789157686560800399967901627439052185806357390330835841126860053288909926475300929633165039327029768763465464529279023036117684970550708398667743847778878873695266011388196900981821485142920131909313048921711146655958861288246890300515456600395681837559362083717239763815940700333342309856143738359436495299089143502175877250896520245999667296723888443648862548723989599047107734404182357487702690763856476575945518371612693490114328959211107850051111278918977902582361652364635492816992724665294567539791095457154280358136309029589823232207667306817454760148114690827181963680385617441635496609871973264330530659891603464778285443913468980936136576879308903081900368042604701496422785055931061818309236267251473460456898615808022990438758823437780380343052756226657455130421940427113514853136185503635779090442755208283990115054612353387037508680577467263008394841977598768534040010330809300783427880560406461071368824639435861088666124537394598927388743543878377411976396574179050724769454032294359877348032184221410197478718717557141292683911884650589044744556460917096111972355203341857350472237504169372635644792370895219733130140941622064488967564240164795022775218670515248548937965565484886221522463302436407610697229548503060616314017564274129939837144896751350731053181146808040846870893610858734899002580346395399444797533773577725895109499459802035921379105716022309479805195385702329642579410358990080444558590798291498860151129606632950989206258105164238891310365884473181256045229423568970102355530203472276695116776614263216222522820849479468928347096778760428342672935489334563699047226209224271757572196319212233346000231097757471188588739237491401368949413003458032604693902890459296629029737592547204982642686602894738894551820594566454616937411071876808534741595271988449784016575299910677725587113729563555467876518091874993881402252081339076220947747655601805279013922970120956494936112103069169382167481726623906471165076386341279417542872339520349224959459439118787088714352170643976296602836118939592535746850003093132921408737561259025875353524566592418966805540207001353755054977843323236480730753440927239434011967762752547862346027710999274026146146577761087547949042690147691428806374184879320951901623921775906493486038522342254311969503282613235083480009133658080340758860210881596377927134594590777786052201157098260255154626693126794377109350561570061106668068099513742006665132081121578542480279453054399092347796162537554427375791001608640056349885989281304651781814164769629302339832011468710139327137509827002448007594838795101547303235766500017466704923564476339970364662326536079458799917827504897287759894211255051810876131853870535184298130159086956402569638644552165739317136194448291740055198351790200665674071957136897758489283982963223049560195077325233965962274463236705115998472976342516244253063493582566660966572693879209547213319320290507872978286335631815550307240064345623795853090020955578473883599307091823149874072871659988277325866642896187259818619542182619825947765408819101766693199518392441618703915752262099329238931220057634600262580116599111486522085169246306626013019786824242032371631516143961050817390429492405835742681393583904421958865176352982950807522217121657310940122488774508531302775672181808909294377222334587924438504551870266594432665271925927661172208939425114097814040142010627406601418323304896116251653032164441239864682248299248955145000912690501894004855737309556212815940330656106474339461428652100458384631059043124245950189275285729754664692863860612698949381646855379351722346962247184338442374680048352433369747857315362177325262101804185339018726642234873475131992279338433906443836838948959449008825949400160565631064115830966078834430843411726736805198644705200693587637809068437679688185086550036626950500312715140729553328097332219033229212587729125813926753715615881915865667191429751682099617462857965328400671194812876172707394758662469379605162917001502504835911653581798585591912352115848608582147357116694397673952102110612456860003008262266157234831625903955026635742183110499724929097545015516841042764757747355956195273854285925420562636633896481881939139552449885153958687826844543252309175529860789615408560576048243555540866452227885672838206378581678047371665871850209783764705597133491651693065646597947647530707347106418637561527065218391551006685335437752445367296476401577008419118988085289602914870826297390383465598447478917583824763736503301826956634746997657851389214601915449046063696606006789535629427453865317826701318195198599930656894348164628419029596211147281106142355444238138201065997206692185361833393140639483249406779909507600530331769698965834573108466576331931378706454468661694293038980574499033545850863580918358707951024372051280919519575722374471458382180000240510997566074905034111256203038836195509172492621293194997848336133754897710078620134714255153991168365042409639333853859985736394107681702923327187395115536302323688636379716988739608266488857158927076158695013379448607417760892125867834711666111866335127255264252716291853353696960856898656797915700881767339400899518360951419180530694608691704849917177367550432095488529400810794646112311306106192983962985099719997093114659460773012059614004611874455923260625923116607420139594680845165996071257213962140841845970243969556775724916516924581309068240657154842621999636918120426853789850777952536644655633437707468900619731207402974870208970235357024817265592475485107492768218963288793835822830583165829096729137938551708229319284336341940168907873376902678601680046931333524373360690594167625577789020382263780876186227862313348142512660042231217263081421036951376246901800561411186657028575153422024458599610545576020883102277376956732117096393227419755074634734585432519632340810176550927638865244153756094454536745596938534058313320967075870884161920723307750119129304224618316054002921075952125837187518957316560333595621050707163134836263469746911525691801403100099474383262589316478449612056783478343070624828771258960257604190841037000807342855473687290413605722148572853962251643755537540570097400533300326711989962810512153998555081610689351314158874855025359853821444765507952085808980775287344201894395211846565144608085931426896328308313457587256006263202990568893255978966768878576652361247597311567456677242081245191878477312689258310379896509280909498773827118629604701271469495737171378506465686308363066653387728593419746917997739923526655092823135533392758141578596325186620213612119853376191206217824897751161761230253204895379876926719766509258737311642111354522076155184377408237517547806388376945319603353267939176918101756954828956985423479850136396970185910554254929482306980409376576019471351830827084746390028033282678769190589894406871792034986756710192461763197389841994658360745637338073012143062028374089313014099904500863885232235028252263478493094989114321374731568377522190688064993253684452545897645483158252319575909173974273773224057498124454655894027549647205966192815853858241134288684383048775684033096480694755999036951178049955361242297015437295630031237823273502197808463274124653075478081987341376822952828028808084936305735159070158625354770762621632584436669453910520591180457491561199364716173417963716811256336485288078534620684565913333753705959647280666709086294048716942714406171338734100471380683523755903636278821118063443710270157181031728363026890440617934776154399440496596532468819983481789200809217433254792109729521277904207853620308953826080004862956615291787670617967147149994632476538627805259479849279736739074656592676277984496011390949930776023881067437433843438482119398539723686835243755913011841320638248269386625960957333077136731476942531517572044760532540775546504599780909754454309609128781412980371327853514564185628301036184232678591689293003684294195183025172628850305604514378272562429325105776397614001903053191222560160032026276213248986204229344643769937755310620720938449519412768612461386237862091743305459495828574348652678592185610357426159827119079940017724373236661730802030089213900295517011036433394164816405152753952396663468742931940349460380574124395745264280008513555157540452459381442388920451024096280613023945187856922349351135445581180151588134795707805582118421896109798207841379081589073467427049613045050803054983045170030758968668747511863989276222813713855929625513191313879830297569281018402585956250082650650437734326647736896834019793581947103258498546006834922245549826463491192284493613325688375716179874017875730978903042740011510073221876613252981925627568649929102374523868749354170653348699088886098433396590874568038929166684702519767685793567101573425235487655381383612242663155169191935971551195175321666858343091408003733409112094009358805549371090225090870310203313683946902820846253108684147145234243133837829846045852512487904035421132152334984002514165310981382021415204462620276291350923455895634919452880745843425808124980963548767669269804051571172595746170215430619260652026254696204528992658559078200497897696409203048276766757786463645554779667574067029446098721715028124344843471713211215703214931754226118790989954926841188654810345156642081951319096231486506942783785127996736583328437984740024594432289761608345304120249248840861888286891802364417822964599516925179725893595847049070575149254460950207380553884488509740595265731531100012187484345812433998184824906349426115212302173765523008487177857075197762015691048894373619498014209943842432873192247666759411916946528275839115657227061879613228013561627063652848951380313148885948882511649647442308065621886187284122066670310183642083424052657682213365569299510949052300612523826798674330988034406655081362667143552765905634780938902668115707003143028817887697691799802538907127893293353639333677470251687327338067975126333385698540339917696518356694954554974651656439042191255790636389163784485493330282917816853689660443405854789563293524256366635742449889074825303112154275020261679119669475477242493515370626062874628916115644434250996982549635184944028256689588368341066974170894599073833983804160654739263368572964724085916020990609021532158250268987808481355836926375925082470930555457518553536180907784825736586870658547433002031370465786875815477863501020585860041969660934116488203137713330785441333425956263463836447910783608652039232843168163665169080309211046735667812077655072382620702262689299534974329068282175717016603919364497864542584477904145433820874836867711180301679223717422909960917248033849850952040839375094200501009705750149032801574793212455174641001222197227058825332687969152256506213205329409436988886353889024966229367184799712227700485046583979563975203945590448243289224622443277526984403245224612732203155403648542740672604857954297454492408480968900640401899543404558833520813588594567966733018474005555471453342497792235696954105470762437180735205626474059289164859803514215377872821655661557186420603187810503807107690660735508575327899763226126598557303115826608661768896978089369919598991740562500480460599453941792261676821607715425280591241781597076051958225917886833916504824135742612957977116301121260275009621210676346763789032373952520885956314369095052582422986989068757840555616604816235549335135705533896733235771274953592458650112123704022497832105483602187274522300560748350021392670852880970340652177296803373937025513595424353635712936515854977045935591120488121313739526757866498654774704411179228556673063267586830612854096234099489695311095970348982623766071222823562933358314957179392540672978181467345629311984686297451573951700795959719771518136956393785108718513168089435160431388771943028300117935787628770048623446483755878439011114058565207045362052406972187538430608418339108389643955112263521379238735531737575235461339032730138438819893368035889621136312099791559405477651248491246058397278952843240258981518839110705191932122034539806575856278593149527887057332065168121830464575571687683869388053154812391067751047178079824849763999344449876928573671734052970028596546902932958888210225265096302007326478132914777719893282949593914779808289372353334130111328084598107610186878570736554113117153044076841682432855472639062826774546931925460093923069961975085301963271617224546654111755969165187778565562566288952159615778652665435560687401337331850640031479027737362293294995189048903398110927611422229630018564011741333065985750119670356864571958231545825270995304597704491997114172695119001826150719459574484312339846509165129854922219585206112621520543474206124972941764572584067503102602010926975442333160453526398656331589499768658803326699076357546732873785940707319418064457112696823707900776880513007736664169020443248846689102425624177480059249562696378916730268347024699669021498320451044359696757753782431544326439189567873784961449397570598767368631513280946591207726780705505256836904968291023229713906864182308287039734720155925666027061530784559606162297231551355775577629612793234198289106461401374208875299124357806585352549813159508039990305847717097567137937072525998895409139416662715106875409779517251281512818227345078138362482664334954477991869467999271211562192722456128808645920205227087451442721134695327592585485893195750629725861150436990784966155690493203139012412961186459747662582031476165268592957234250132113191158681524198320167040881690614913351447463929037277769776072066955239225410246869703039668771338210530688427080919516908126202795477604981659912453020112077049259594110225621080061388114470560127275762795131593402918731252323905034887009672731699285771775853503472319756012549849388907373701562893139428763018350620977160636257313535141543983946942006630984878597790201130421313762496831767431410082268535248598416578772969587519055614267572258272552927155871716882671371913703453163860561365001835352343496085880239831627846041250375805150706661573181517024009239104929010571941224683871272243842818439876589715692887415171382121630773410030709785286353488180071332600876010391011346311666815930656491072991063989791218542924309616433024560755834213592479725972049794602034868971736694888393563309807517080350840743800191423198500022088900837315741750409545176979682445312344202705362309395248968912955189653046319279669694029925248449749978401297345466592306396535083169125592095268363259648715158320814312268572862368071336120259628434154919419398451633994777823612227655301916786873039463541531386119000234710758763541679736357309260552036169789972479048529626599696235649153424521953393898540833575835048186647497105190459273550864990314615784072584217930083594221397864017414892197904376433358397155593273273562757756404250692686492345979775935280354764448346242168132819548234838879581473261802022095286244229908838418752611767589246449700005878528040115769679048453917640679115615565728815851503189964221438396347964702223119181340699649374768389806239019416718660274555741981750640011132674317559524180229999998712474087019941154163741459516332760195729066544623489055311630389188264053295549636122184846759768356507797318882803682635154828363359189939106303895876440736231096638931375648450674799655136341725166871923955835161722974153174351881620586684785136298731747252597412107922158766663033815817897092155216314439182297970169903634766770866652950073200301181961224703727114403236000893290933522159988959763045507877343662657961479148880702940414808586507605035802952832695640404269868554625537294609847878619402496388422516639484498887334735191337406231268304365098493419125424068304112755201173487421434285857606656226520272673713850428816667058848824936582017663550817972170548168194906508032786486601272142759113060711231082787311069978709917018737239933542352818924486366946318728568894455221452135440469543970694842739637942732500919019940837254982889727233247488171609856580965742181536139690597402293163672076496753702530872999125941179090968311903871681209662363608572070879041495767940147910818050999026846371966686890808607088493487756928023538442102966984782757064327018884967342409617642687757164688669393637890263317208582980649414209174259035231110794572015182913464251213951533022762084324200028752145059414284968675770590919152289067587067746074687882299774556609454991928590549288177570704748564348839358738213813212340122487084589660132774620439939933215695266528916453754352035656060568245884459405291108694925931309075495464684492898820735256825043576037702611636075894176849127312512208418134556923544427045856290850268758258735174079954346611632848828992750255025153699264517380125672089069682304691363119349235074574232842178795181030832387968052710525336394789619027760716835603282010516351301949789747647364491751992390983103850633785803829447104252487258642072968642182296710569579198211865913749901825565576728739160632259685639912707647983923665335106841609267506005797343702844663377854069118522024246043202198505337256628395251335075141345345285331694467479527769568648206740609066331701681346688982679862830470568875974385093824083883225569816779888870741318032084314536221473653696090895286756331938580868883125257213668455408853283026168699029159765755694432864941670633227724751664374242745644940840284486660347604372933814344670733436516774034197465090520316902284840213492025489992170379934792244728091393445671560478214701888014700556490568232325950168263562324250369283455211516888947321040627975684223456925247618636020176974224587421281837008327937489305676908160870218554275482633210493228133918471242097422221991386492511175274350061650235558676441742453237567578781595157344232982551598538726810782556515736439237113574552607050034518395558699998883178728145707837506092943884284327368113277823028983894273761302102927196716931612396541093057993649455061870833325383424654173571845452364744158392166570379387142299044780001439113101048712526400755019376383610180268291036028143710620876343313051432374751326226538422327403758940823819107210200250315919323195752434809613159852737370910704766279111120888353630535613413820974181734694687651017501348265487926881040935155703051783260891301148895705126511373856684075659818631941318023009239882558279042967801605113147855047166311558207090145873686706994365805365258016759925047668341598365728341182685630655696353998711468639502658603397320641061856140244099492170169894305920099784551048711039288163232227890158901560693295847612098707876920713606830107603924971132599118593323903463765024982939697790338422692684689644204923870649141304975357100448465735339003710128342013429394493639981076460211511219124842277484898518576681941757597352313682534668445739124206100303074354573383722219202388245059393459345340841738457299789445871747142338490392601634928994896355677463468332580486152736920393157455784197677609540748722035972886428252277908185802907088988578335414506735009794874124909178708183342167779350994743161213798041587985901486941630136325662053476925210097977335110136495681141845622261368096240201859707404213274031293569393685658650835498488218136106320914192175591465755262107997940264250327222452003534315207312729744207077071083363868706859226905308569035572412825037146762393703077293568902138971660628025406024649807819248317279898062556589145578436441148879691944854862590574626347296740602592513453162758991997871270773445012837796886480892042538558306397788794205540658807256301432540744253204631946141185477994492182680718222182422689807801950728958499675108963434087154495073509904212090406839088893522559725138612007129488139698057094757156033666287921754152807431250497578855504918901417138900026500232712506314333217619162241817815547542317513453531257788972749976047998558050850729572013562969504008906555152685595313843959130350875806752155157785512607113518820983695032421342281001367966987196988079444334289927866438490669285280319111304884112221364762340357640294757182710891516929212117639036661322429165879837907453809316662620197554281512662239527594137817769329774754438696951918473232414565052282257872386882518827153366740468427349183557015263070335296088537993329849381106496290559791039590114778412979107139615746795769260127250823517326425009789018630724144684015239711245887661510138951429412898843623645316800936804301509079941782479491736686968683871961072236792167397663881853435384937841207505745678720577957555949791049552908432385197133782921051446702983200279384882844926089550347502189955515407907746216070861100621885252352138791657637948186260111017128029815268904581917691561776856390462404886474364230459568728317373345814833844107227296329493558615624162645545797081626629449799770737401604619286157730628974580934449350760915544710400900623813131580479666673353911807052383141268061498316193853889907264030311016421189798838207974147126916271558175460137018193711939607427472272963610242612381302087474327988528159512940352634420553873800845913029535908858999037716152879883539520355629706257800259045253056237207138418902024857190405250664662038719198831792726108788485591618928731830567851985382735237417998122408739705691095135049724578606296361205827932362834438689801706688112040585448774857366682332333438113436432995489461947251371938237231812358601015114888921103671691291207959975435204010222461495547242937330686075362756184168321722058055796232034807522697915847879907762252455042913946583371645340650632835432462544725917939431053617303955678461310770289388800734140003395760643897465048288381645091057323103564670367898667387502427741425498875865131874484325107578826115985494070928043046785076689107203008629168234231067458012768139799056078225611021713244116679481687003177001819444307738340143354083215418285491751652584783531661911806354793877779106603761890560625742923758810802320550356933130412299075415096566085978253597604417920130610559700109845830612208395924586295027106274158843308379475192023396572623152121577550508447646754370104985803374672073930925172239367743884308303004379348356563245366187559576685573079831068773421482818089972567001051912044113911990709789045918376765898814710915066177242490199412632420847128741794119316330274923961598638675336464208676868880356382868119924177204242885069364314456374779370635043103631690652161248546384993494903725373821076892262346319580899637655293236972353079636669934008261726938278218528330930003384181991227619952460297561753902384841760302384138991551574449409867757616568467993980100353437586893368920680162607073183243299464568387425861933808067374137330055714697976173728679729303438876596812587792962202563090847749334995220047879296280820068070624718524420964948164216002285890859976385001556406862154105476816871501878898756555256171025693657252960816683731311875545285220301467727100602853264098336582690633895094203396058527127333167341039970227294927700256880486645501396012519560582541549525733870813050655606856594656226521804304028112354356584527554134805752238502193075635772257245521090253744623617260386249000972171370435600779506719311451166810268380248998370552548599510876626486085224541136559299089667301624336530850669516515959874011714465923212070377232582813379357614132763680674369810892643040960095396585926360745197027907881880470744793109825031509088022167850916338149462998550645531752064941054005228324122437761564748728964731175267559039362006052288329402387587598580180810908217601892227449357201957715577793077775357189819439954744234998336843545182200291546359893456683030795578887641136511126908743399545916456769256190607066840599232814307635853613548503278858486486591256067689936481910195644321202141488631957765879472048693988692391802393943594636964620807829969619909216352811505017660136160504191742764044304737502012969219906839834488312093986502341954158292259356241938981315579309240287694538737574482523540397245425474333437832088033666914646568501883538206187972109583127063806388303312300219693342911510541331658918187850094071012991317886868695956359749290441989400493196319326865017545188297197707756285215397528420376332395531545623879714253363899436130844507212600633908399003241402386636977869227103207643583912141615725903540759790861358191472450883404529297433595879055277654320503642725331308907239398359412724287981983247163262715303231208168691799647654807364555593039157759945371614865497844158752134164858262939778843602880334682863679892250319649479229900674987612169834550231927330451504711964868283133539728945045875695052657108237699594846063730197574108739299627148152094271211061146163692985971993369579812760237627264434571929941380393403996067228904839782575884967619705583507780774755699188914326036433667228871516345293335889784437985471645475138353530516911159665964999210605823730908650686399357427055881961425167643887036425164382495281123174706260619469624452846704086258964087977170091479387023562882068866414094200585956369624460880361346858034573524210901079739249903298274814613763224972527146701073986705105942544800054947130873165541192144830797760495174747275752074411175394317215382701382721591124196325759174288352852008495942449721235842330548991969536865339513528657380171436347372989943410827174668921059283352006508694079545502782413372840147041441656628973812364209140670258660091577524716973414687025012736873911318863025175907091643528877091846479102465943712106251041969870119159767232852134738857643240305505240933646761702159033539209955162524118371871551794299795889784977086062486031548596439083935585566622051989872041178524494238200695148364991174353611456353001628137048172282112365755788025935106102909978001725396773097571192303703939057744362744843005756878720474155216019292351847569470967094990730519528833557247988284442842593115787176673134119423277770029690034852108621369139397012923021480947755934576872508443170254242623635075898365912980945514644703415296408774747671392016361443733233858089250600503174213484403826926051546085619653388385672795470065907739007247706237509066844213987786426359610968132949532249457872478991686688423089756524760790835892649790699808028305596559667400558438322298387473866159114729008691509554469202276449247554016179477948057979539683121534556108097021200924645849082873414461672219857403932652761795683672117857748192222737848213510131253251207591294669017119878179041822273937055936823350239189271450305781567190686121790668063805105027183707456164448613425995033725510366658850993355773772337714784444921926096191730148713050470612194555117696856607478407986546754520384567371272626808236019550333229919093177185585317721972650377865795505262880596781862153009638644075069856539642359999630580292955115672502449112109766237875966553858366545940764806327245902349344426960882325858632857884237659904650102971949479927090140121247682947033791993598607226858250775615542324665185651943978299170602053739941238903519615458236623505132413685228456671864159593120445371247779754308659860614389327297204858248797938105791217925843114178883131596994884947944413893864795556859218970375589403041243858599649236644806975907149983211601433719680355204363974491873310877219578470085416924491306283821664557726424661129406194483600158222080480619475200536073853128380366941963823319793184310593325517964390271204511889062042961396012197025221357351620222120209755071159955047413722199302561572247511283114909191533880213644094251362716191550844990268873124080716535513241890844456809440652334493741569183592285435108076615455850052049190553967288095314080726963634883687614536773947584891203227605769370958721539996976656915782352241461126466474191668735736313835113767242539315840650440722494842247650940912428691217179919504538486734916841705385033546513657287779446701806011093706528130234844884398098373314749959919368253803762786008130789346779706915879976998514683323155617250978906002458478753577749166269327583336703753380919770666231649630929039048541890692354271364439506883663685612679376977431094016189474868096612015845188808478776940660296273137377881199312869749990282322778592973334670417658766817934758701497434145457294559966096951276212295334614939031590372475270727017114873137366950257225045061944604463723276676712360148689299399338881608221161191102140471520575705214978702327007367719057223280913116189147363631040357270717927993278376773313644313801740603019515846138838346824409537409771347481306619120880607791046246009938305592333584203823589024788291818743423727392290289069586244216164353302818525678055089714029795055481673181789992741638563575478235656771844714221633563473874111709988061203917344662142511909261472742898909767600585675512167546277442661287781318192006196053882687295201300137104424953460195030243095968823428288027903233600889284513437760751283664453449691329814566034375738000134752699567406619091724635584129780481055936397591978440236782739074316255241941999035305947367617226669715764179876735200142871142044342094693153855567083816890800559364099925549104265621069642990925152648458427285413539627532959977044979255120805214573053612460711911819601836127701305173839479317920334482557451675454482432705070987455984207593699998566494562303252124490813768105136774720516403069279842109938622666981265277891970880984440348571178674548726746462470679458200226351917245234516417461529010507574845023179000040101116793084403424337400689248595442923554659541777291832241348792838122957296488092886049382886956541033830890431734532609519781670890862667189386125725903689701083097319025465123255789784783300643106242608529838602822506695960621062455176571128482522358113422610342665134657267190938704161996968504990210582852958346437782752314822844256592130615638310857004423139974886550019202676541993774858703150942791053002608618148043079767206931071933347116574812185113477708157321670218546602756989804653690521489380933548769091156838303304732063358314424963919962491685823210421069947655527065133335302976995508554751990797646817232486160360410346123538757442182785386591177357005136185296492484822494536567025048992366897343535014369747077802607093252854283235967375589032610659180577161716123908486726515324952898321229788928383949115633871883063046601010161346602618615221495383453703218948346412876049750000945877167167787945493261840377874143731900218308795555565994272288169702506157290094724587602891837011165538732134609914194243883965644627573671585326259630528710744544234866796562039978022208249195138700285849861207633889326306978168605140420647556205736034510650376992152852857519571204386650007367340520842737807343426765249178166467727980772285724580507122386456381136674113394301963555823981602729478665590366195391966858785716276128914008501145877365074462322762406812912699718968227023085741422238777894491511435463931472098589023622958453009425141827427263492547761106652018190891845357470315526096155252437440863781494664671380287195815859544722313063607466656212305132385467809555066986598596079457700203102526882960078954310900502070358546511044362824014070430115045668561282915103918515899679297483099868397254161562045965082269361322967992177752657601432153562302159939740480115832921111099483143279986023154530708183502997362903887971505156953352816462760347669663627474176095354296279378544057678742024715552600401236651982457563503736402507710755094809668861724111796548209600005355132902080693003784270318322001596696206461052555506000317744097223092938624519261523365991650856403912964095957928420844372037841138434554140650518823734939058743094034545682931894014030919758220949411680410112707876991032071571518039233127123110051896372625791621892041681729309925192795783990735233745960504935754256797706185861115303892686431636410963672885680087824699328811948664820831850578485532607577015698692897420962529942743646900039565474417522399290069343399325606873114377408853636656891445142320043932779984809328852793037396870367614156891760148382533281825298337726186819582066071429105007898752889750046357658441373976618331359418151611509459902756711216242725257441651366106123867643015122484470529354686018675904018764430263683928148338050082360299012506788759592195568749440757571752610397133544207396463807099311845785802446133326077256065037471977731385018172542630614420992101824058131229810301073857440867076545875758651095724884663327763465887623749638657824544822063209715271828483583574730222120647807984187976699516405942876952380308655040888066110702581864125484973951300796471922266926902733189490616706560063158562671261811638146288503377393697046050348708855501741542952635643902804927480128214666259034547333903048788435371643652356677724624447919502105724011273119488209019393190525723656922910816045187655567453652310280288932180690453886494869170698803479385260261603338837215321699313203861852978734550745160145536403022547272941411980988701421118492772058581264262126043610881826738089486547583148266947329040646801238694512332262284760515624040857437711542001379395528516306495784781064770414173379408870573433428790378653113986807580953109382919814724389683842501104792800040570111959946032180889414709646566222648915232470147421613166337670932430631797617763463924850499186458665042248427614014022515589968096668122094046037244873878523459426962547236763042793034174514625489217987812715778249735699022018478620015575634817312549153507808054713788221410184686094062875659697626495827393154725685181822620814433706078512057399463243009216673905523175411676818971653342998543090470482571712594226543940797135814651078094739593175594235005280556704307901958629593207258241815162314915171199992582097449844192958411386004081920804825845961908046754692333050183597660400687820237908286031729851247820838837240356513279421431425437267290739915713387118024383595686109240792326442089574925256569239659462395126780893620073709824011120313822670404820990295504022833301834187679673709509012357659446733559925080121456736186245862744930653017723716928761905315784033324330305822935408772425168240178230940505821154879995625695959763560416372874410354243736149724971322261567245230130354185790003906994445102087608632824415658919364184727105427834503585596931891987169483435834744152681358992861450576976705142736146456494079837441793469673033646905736328757102755274131004620312299690998687032019527513666942464005144884446556247704092204485207816750372757919467562370702135948652965166071683525233413806239835087691408062824453224968931950862585438045418480285144112850794937686882995278972077664719315286615883439987271208707366341936517232639217986538177911498278328689855575885368616260553487145113991051065987159484141259701147366330913598110409592511721613131040835059542223616602884502896322810624205164697835702744277045302505002986164800775093125527353446114027199437964436135062473734771220182646882596889102291264929389448860576524275409797253692452213853480796421149418811342993998242367922353388527105098994315589822549037068810647974320758036106115448718800328545194514210368225181869657835874872956670247240258242906962686371834243916320010684711544399459179751419917137174254393660237484152642640769612471491607447497443728101492553905484044641470443119916862203218201722807083485131229199657785559808953506102977178316540092088482032790255491838161620040271370770381517782242821030459189348767627638821239243544585858838916076360353168476787167773810170814445546238935892675472361563762895699955668848125731705947017834581869856146408573475785436290196044014250610398033535265184039469296776331890726635889188094000956249051978324451975890226471410481591232439360991814306437823289204211430270562826937779262682754467949651856744882548231881675991844751939473852579694821238705979092843335289015564610215745792127471753210890478860485413898825151788646764254627920159771292611751432966322228983240909020504239094657838748358093265991529123040087205965470748442262085428344101640900918721749920977876354192034607381811158222927186488947780826395735781087193803747262786038946764976514919511395764079027541569174969253056718480031047919451458157456896347102479438827781478411855856403587461670761585719441681610607278627081622108183275548748287546133617814978601465879429531288178347053488594137047615462326100082710695464481764094317727615683142895789106191062746437818658372940318448183555025065424914198951357027028121934630375860924741196857979440979799551920804489240354361624867473138454661555896541791356317154239800889984263757912091218380855366350779218613341266969005801757853277056025677220004019546931372973399716914604537568727975935585324858695133802934653266310895207611673029779913658325383701106476458815262953685270566130687390425640292928137698920002539022418554168767251210021461258135020842612031538440729534742425167762627540288225649694039570183888335650886514983084562046779381945519507465231677889726802433878124520853292991531377477842773792618516045187621032309255229803423638788191166495883660263436488233077270280701289519370032975024755969367769598492004168519928442603083441171613621138288788332429297250602859676353750445809673986857753131351780812420615627613846513099295978423193097131871818699014304440908825190246383730306856277477565549757982310418210944028377863978397189370773544085958087847146026245808409089684956738967723980237873652708746740125708502033509578599374385595624863289297464378971154757965249561157157709230713130882006497427376163695969352783166186517136355577606325948932325410025694771194785838871662976909261857899594096922987272491333396431894102276280167275865110362891513846137620840348720046465101352409668524494778585157670028459396754539349933787509969631722636233046932323838605743267853807684807868978796223741991150677464532816534442761390263524381590206945664862514279272214215293965132129043412023446282837892178010334818597208205716084986633993444819879165553601038530570194564136006313337612771444464770987806703072149368537488463570371755057063223133203783026582477432959026566571955287623115722558951556079270526237878989519224858654164470012155143089392929739378245233338268967956434921005989997346143369572222391884409886484409474826925707365487990263686824709807974838959899527008390597169760012611571162253658138467353339663528460435204753022386518227664326044079434779548682050984968969789773544591458641209718470596911152449987021732247295621345868558152151976511210151836962999955786709517961493899814642490140812682099073818695399958109811324795297967215106131455244209105696486050458937488633818062490206823188121080431877368961840899314829058018440172330048198456032693408697766544915182003305226071770336475034635067821392815744576138104659930550975028592751726507059949319193726671764224473155607866025997752635015887180685962929296475781966456540223046958956399553725953782791128585437900212584471589617628675293498595311469648308667836569278978747310568284263655832698659091188017007111035772609673118808663038749259778060012666001779463269961478903464506641935568902584285833398139271453823354025466590885991497304273951002142972699167384299747061455595222862306903430419192501612653485054671106521506702970706221970707748926045863950751518423972775054239212645867320378149179322714688873406159213185479138268074312208893794188262938442953506880308330402753255230119939499634921878268224754596545592639594500953857527633562835144553051765774566604457638199013998100654187414759758604613536821680515489836966094629679762989729987723237205952993431938673971525315112794542932178754219974241944838165918085422096889300850151846984070821994596806105262100246310774885527334056180655127472433472226739070487455096380097269537574868834272306187105964295492475248166695090258274872917660825651708993763679181283716444272383596408455145795047251038967150339665137999434875816673658643362612452770785018741081998698656822939179059942908171383054063909774870998955525220275059723342570426886825711019669672854263561504830499702467198751198397009766775578531194844588938998341454006521247317553413450911764471813804532465444422149412025478638312284689558749818479464799167909312049218695322026643977479104906529116748902426907041234235633755821422827136663967766941638824194320254980438790056514160724863480542393996444757504327191347374297748989636788797924058569233697334603083856443350688333090109042100932582741352534391461891373889737775327802892704707413670789824339097344954125200875353388562788756472049100151561120642552845589672433180432461569745416761027917414056045932346704841158724338472044849209430157530857556302720222229883373268572030432916892475112210521764603089811794544191738082191487697823303966017950361037636061258304489381963476831215945150393609252860996265169177308073451698189652364307478434674802614196933632196853363085178823537103414142621400206290868024730588287693157995068573475462974155374581222994367395272276393116474363818075810135663411228043757841310341556970926546511432483347669681882011317580645216743086510309918791235802949675216557764877823728953370512241734809578274547774287712324423858665316200680612364957610133716458503376423968241185039817864233416529567834682275616064320524163258121987632681974100646120343151945779189556981822951543285650857523431470246792808974015173155396635029452563159969954656402912415824581646763632572826888552482608474291097931422356054246521988521559418435687469273060927186797022335974793864678429753088072410871377335244295388897858908220715552200097527898763166808517439603963154435452899176726036061534181998719572273151729350672509666242833721509056553535847259785186656277686801969136915515349605807564924407874537074450897248006945947832612978464181581845647079813551426655996612266891701776276249798437606348011265393343087829079405803089737792654742406057855478363846981976084511132430816769137209090995471619405761137311329934626982482288629545886071775648144325636121228593339661435221931111625680535961515907466677540867020736792553757129085575020333307964747630112994080787170491265081928619720626256331317021643538082402626981859123941111150099528471189680304537104232389343708847531621105087225226328412046317160639735290649118347177611214860308797541525837531047387916870887574962447839134066340667263885827089764018661458817923604404247578477462497789138097015373496424679370744178345867398280096975503488812289451521292996309825495016351198858956753718385936981740159344128826978463347818427957634919074501194114034968520266375937981187120473327509482673082685183437761662212711207909854289331951505416311899867198822771043214045299325631801055031031172251089464724320073894216963928094461937172616012382051611738081942186856261126952687868620126950105603003358026737355367947495823833978981569161597581347813171377892756048265425379214698380675698935773969034729929795621716494995518668620130909316738859856017532478479889515906298683125941274032722598783649595096398525790296300174873755315849354766027063242847313323277118881643919665383538911905841972610381709143005038486484524185980891435019921776619191779683786361919929470373571432092894968839331658940924488765090657823584564307705444320340473503694133811084743181934347098085525116690312967345615376459516478917165759954566208047536068991510275248542635726038033640373491713990390414557886189699104747665885270587122709632736522036120018558776934641773437585331946390517129033542492963221518443232467363439189307893319437903954628440594759148981032461658643573315900055174559970192465842918550986139880159727561004534685033549884779615810479219686117349253642096614453751721080307869573866144532399492299063640473234621527531836213239137457741379337561348407452398727794795786497602325317816031331190872457517969272680276131491243129977392441144296523524793169684813637966330380802509803944335571316977418290233250090117990051862875830100284345725564023553328467633108144405987938087060343435687749200348860057046230915492457934524599103656790323394865428923863656864593940536665216863865076542375467710928474128319970661355850989410461421746470736658045420230591225107214323848520771353313492197762479027117556588796325925634946262424742967355121853009627877837274040896749955354474462949165491049944190534408517255656677839248549172496138156315341202399905553493118280294530187558227468697434139921843877955826329886395372650415672274372097855812915126145730320280633214121296164896630681082926074388250422084496517926193255093818994916097921897146569921657266357149744981039449805854832746319730650918326070359008426953820059832699143955981799500686495769049603692829768572814888362947975390847448768896335447036697536584762870315248899032924101965659199214773273668181692517933642043237013380887579429619725758742502615057238799277611682211594540534840742070696774932733399531859151113862667769381622665086789241999307099900833123132945125116023185562323897871190394121023781759008336509106757211828520469279712226216028830326452459099451795567427342256165558649148331265933587966755225886559017339700557977174216373305160501903129031381214973230296111769230252486591052711556853089738325528489746178741297573350703370871970691975255745879242143980494851772357745772888021905047736475132849110782699918029662922425087033717428686119108039310160013104194548097078722559296159274115557774428710745769949613241108797336036670470788792699846134538177008289978101623308185623916990400805638043049691762065020267511064771436315817051367971721239909101441304209244923232195849395297659891429076349817629825116742483263846742238972101831074010189779188370745804093923972746317809001624217860938868295920398858912866458032703737979160013709397431100768336404517311847320919446472321717916947399088898887011161765489205798634744373248627326858940256771298069826972745403357575256263862560269711292296062605062312099707429111455085588233582810874110089746739283264061545095588510820979611629568126985787367772992047097978565695150749060517219017862128456336758736082055912107346799116118553888999878468402148871717286265878744997148904895269422497671699317626828066708593719068840254110091160966655017488398946634301595781516688870955452435741572518561760640132834633344139841888964571057128059719195039417021783198236887869352525284720654288537479745893380089100401875351416854998290302598194915091536635699103951153122690427565906847287639786256608874103568122235022488932289855645649180193426346433031871241099079828930460620721899235006707267104192629794865668737588425881565506789116206129492976403200911085399909283405620759483350210953551204565904866798160851016302563179394501747875303705607718233510222454993496409161056633397121633337813555037874850227405393571630299227891957367079294834077401909584693267948911309105315919332988574953500566343202779883254826948372793645239165798638238206809334059089479000717095630712606737743803448125653957660251888309927844369825472283724274962647569353398203975188284593671611844628659248087223040128228025057721649519709956823463207887981742395551972272476952077761990630834998123514211076503357191187014970551533465229135734249836443484660670793467300602305645413418358441608901402883621662384614260728010943969226655617602394353503584915025600379730495005393206260261675073417865956244855236307960180600954871521019665332937814297126441047952004749001965654141525492163426532997325157770072626633449551989328899031732230751397285147239634290473429991822873327240818384951697304851962284059113888947069406032847642059420873938825670167390402784300131711787276701102232377808244579141734564225297671879566208767008550872944337183030698569104361256801207087914822637300966940990919514615652009240442816031336707812499073373243607378007712332250599879600036283524866241261960604792652556506899829763197254930708102121297505968518474435421551247948745978118710969333499815089437699233509508215264707474708097492811369106851508708328468752125799083721218077290584227936300834665944906974314358141053468168539968670828069427003403693661943459017966692299132405829897059586674254761907494950674733047465142798701361332527518545989258447496035117363537383055703780883618459677713942099898108999254673193875104347782946493908114053712768496481117080781934187641074732005208256488315643041838911332716204923158199037535147348645773586593937521589665694685105915192478689978129275184822363293793944304208373388867465822464275846861544940764859312638146220513884158849065611210478572274233420230181540641943470003580110778720607046286828884336884458184070825802289504324707019583469642099956621517455195306236822485148656312188228020261796457403212709446330499139284157896843015524555327261865917016705501120276198861387198060030717674178895483700721035602170767747642789094129049171727621141280605892783301761515521175971523503605807242629357794293242478985888115585848746939650038898327670094681975259409269822787888321316445078413179202827332686664274875735906237426158526994533705916384818648462483509838934755612016265924834596833499804971653161267471193139481335399306789652861334079746629961241260764427366272104616831101063996573853332517347412278893126228788177276730486931868130685146350430912009465456486724806226796715794026110701716962249263451648802699068526711807005835927746302935395810487334939278096655377569336292655596142547106637319585285414188782779999003519445951409323587596683593183417635459413818282902669987953496715798399667342166944156631827960097878502974333240000534429599566998989224222654083647632555343944867396502605862385653409572928964397482152696425353353193664101037385826124344291911684774909985504911864746218925674556821162413853218917320900501257456691143945355192381501901469176533282258688790061350167903101916505334095561200068927939866903307457360218989257902411473024202465208057966628039953070990346000397803895958689024361647029353050797222688061831543264471153879953981865370180091402549060191551480508230514876217174264995433467436234854149052549161405256598311941320136920465319222174024895186089181627119804658717867165225788139332224972833042247441073733446391593856553593016319571842511730720206293379702350287406716879198659234877705365902025181008888782636062462753053754117696261427230632584457642984833182005735401647852458887809994320561123689716201386260544208752513399734517161231668695194026351893604135850764423245006312711781825111900291362783660209365929575880275247450829010887299476754048112335447501718470286014785182267244457626847927746615641841927142434913960785828267653203609809596711205170053374466730151375527962425283649683803341568762384230514150987031210616227014045995045978763337539343178883780215039685732596503693445384540180345586066558874512010221545465327324844322095280668155074493264005157050146100899399030928623545987687445533232390963742993754313314423324842047583383218481521834392250162063594957374251929758462062438348259216256229542619643702675831831692755099078617931773703636426288023617134956741250750046511935106428436041187093532914594324030604941636459449325754769586740196765342114022715167773203192658768254552270502581023125338255661874956416158927607475516944997577234736319952867094748547881993555633788003955086960128311483407738176587824365446075861501965924657785689848990587439962705395851042571748907443365076870048458889793743508742458913301937226816442867198588594621619750118149152032088968757706795531634388378525835238515731643078463187346040256203728264097594087343092260680786600849745288460886941993668539558104507074791938055319989454768549059532843583742924601846943164099738331612068179237561794647115534460694928512529406492898600762720219762300024647626868764704947366157109854837378889444287223248177242785131440659150218685585018439170230385433585263112315445010937407181984614061465692085338213773689926030939752940222456790875578785888560605436538192213840840373760702006545033646494432622688907105572814909055792444273299434880208563657445739482146791365779763383434127250856817421855230682016452870375073160624424187234623239988773530713495218978405210016537679894694034724530072546584737352846001325939200100459038372295478714616974413757355505155084145411745944350427009150101051032920938556714049210008818205762944018647885607786347315458696658488313001552470953834756266024955603964886533870788735883984964301230086166515450900454781668815665799645787278736828555533853914048585117057405153307238407121030818736898972963776425410024800688077357839266359226723431980525331387651752353416204796442766477016159287002387454026721879399240521341068832682041031870991352582252087476405071959501499790449222957538973098153115301107400813021055913709767716230674292909444867090060527362787555644398222228479992558432414906344675692944363859627969121885070709973016816241360204874918965549412167624248568563689772600970553986034535156127985000529456436705838496888465843379433243360142794122001954736585082898050066604782635182409885454143660846141421880073781384827650408647360208962070870563038549563690876587466611844474646795992966156613658770563029463990208264734051470080195490790497029998931894173995498758560427922322365323707560078191104566688240293563380462628630255269261216914519489784656505772295617793248769157924581049576408152937794312849517505955627030666150215136271825704907132611465269287829623292014215755110788212015337481730950372059110884968590103680575384650564672956444503628860751516340185492432334183077754602080841396675317953135566807328597140560699843710553800167393109156801575503129875256338166639851626991718376841986320902213276321020395763018346237870902180794050987512762625595232470910728589876288366138760784979012652440610741400406109224875773248271207154017187726460109522017134521334140383264810881464497142955517156643608783116009998907869932513587227301252235682162245004660976312578788505449214346485692579288570365415388862859788166917843839876732814086784818406217082921825570885391287436280193287758567587603481277241046163847714675488138650850883591947364089807823026513152968523002102435283955442860098967292004194692263833899562779221341907584502169012968412367735777612257398021803946489254717732107222250322078838129831291577337200915275584324442842280985695577496982165777131767821845164540119583015081265146775529197472742284613775086491980913056037684064315891390585799011312319627071600847041403973865528617205543836654488980213006272054608513759755784554012046601147263846633298523064779513661700225817539584279330849869773486245018420559966897640790614311281263230341670073945228247532246858191115108733734830583007301696300020750657582939841230703637448190573499177543890680474456057735809244273983606936650724327045140272463276279022750386635059693299144999420445192981662633834681074251895022466651259113770884596469092150774911853195821568662996190409670830519479795601581411423518673841973204002428061747265227556536045944686374601991662568539393198947555666127914140491504614509704673554073719226586500659758817376586668003114165117620318920520869276758406082781076818950983719863771808175711697881188553219679168643453704088862630520494479728337944691738207204281769957818566071087691662127339708654463429586955081443681918202841263453303120843195572015802283187432567293113017039920037565477291512591962603512874927863714971396195736125316652728886010444667621464362850734672968929020026626583231356073820174862356015476676371299621727618381985122027427269682596819982220491591587678727530442358377954262700077787936437829096207018542364625629925294879352651496316175462807794342970788574829022130489193253284076121331328228597322583474577930474980480100559956467611539106223706237699848677925437315018059414507324050716607122301863041773041274283593154738592954365650196228851644087826842134936508696844271776426587314269299847495429831311294103945079124503657658366881343732032468102219699277367195609641138831202812799473392859517477708339673071522733281601612853861129566969170102331041122676486769320464949767230100838156421716678807103193318651085639593724528946610156894806030214377573556630350682155517974938279726960206547952020842438748759475744115325667915130856541353053649804494618767004866833986028644814068703929897127022219101627367239363672120348222165884534201371506443690626896392554727620871900885948984223475448982012832113422171543823231850707674910339675600444305543288601703405428428903652599775262727668549729065430175517698057542793612800676439418572099156554984007616498075867772972980907621897658375486573673775015413478630963459759576271130809330778072509788686462937994453319680139558137424441076117874068522468602674863999230596739241100707853105007373883305773210994700585285405216420601333530788629097941595780494146119750583762515396584965008844377897060126994493465646351140638447478342650962397662817991276292602398886212780070137158284420718632016456114872980271462177614328442170521601092732819338173198748902724421828707231072519264152310089606585776564344716373859443512107529168295514659567936607904136883778494912665808651961586062500228804085216684488052101291840962783685684247620291016534971558454267813774084966384034802257456160981403044405308662362288217224594194937379451619812389004432017882298389619251340027961939004344527927576018158318235626679545332742481411571856492409689306524880738290247317933291024005271284838316875133176325226612342749164510618732479437075228330130520521661655019734087593435100613868066027899244556965387711930783417869621758942446430554024870356082571848147795076143808721110276471161320466071695372201591111107256820101828793383621480438881810306626910623013050947763817876037610583083348052604415217792258629385007311426237900923232263568299504130134624442058623889654532632790624179019121563678968779668082544996335923578237973199078944007764017590745166440594771824998146045759194491756325579536139877237362412609632669585329900719889747128613652983783491287222109533161854347631959086964894807404834249565286525281693023256353378259288077056501218638826146003565864417070782267293881635058468391755354985265330759112769769579185066224004995003117731303807218027855247760806004321895003502994775969657973006550620783962429295364832805003610960095496092536923020391458842753812302559731124318375781127015489471224468772080761789315831591700932606732908856982019981229817133365867760291220883730783729299374048580139075265837509318933994124241076708852269261325987414574831971606519738144515091384304154434324623642933804161162701770673395612945383345043101202741481278732281446099997875019840195413416714937679875038663745904739882904078490321763346945126551916494287066756890089627778504132131099795677911922423278076179263464122202858754097044959981239931104538237498803401571424530568805192660247054890991871392251419672428753794444500791881951935153486992294036682763640604205964434816760782989210539396452433348252963297161625589748158684412361055716861001045037669027529252445261028152997745485819247879771883458383837192457702473144901786284579919447663256585639450955898618264123632283976928116187603768943829147089579728100268165495431496615104018826744538377576028020730553870062815857789847298398070765004963105536582496931522363504656974573210411387775471255668287737417317854308625658083910612233563981074214323415797279546788345560073911378321718407637820604933632386668568476696543285551525134444869158320463593007653522379917854291773014875687113767973802409804446263764311815346818153959583715660244202835864679341831573738552262273483154260902436386136637354883556470339682718760200691174221719300366229169613197790582465997821205193079611539178229101037241379802648422159750685119696653958127886177580604190946558681334611223357749140742188779276214376795189904207999246717929873412958568711292398094710801097633276954270647264924660500971287054722004528716682295818399938469020324364990490537955875870949867675956236784262993416840687534767865593146571027143370805181826448334365797558924643004459300527942694920918825452849884895713450265400201346170024015012841357958802412527160335580852033357934649002722837601305535775834907011049968741192978187919584247356832152210686802120144378792570325059403237938053772934918809068327314998403064091778221106012572835846726519373838083799755983018196832744278616133002788935118769674889646204153235554311447216706249856208690476178527959269561089305193371270966649123744845896721880589524935499621314432947938962643120725889465767176041311179166420717523828700581996128426898111797067932670474764857109075059392520698849071343138256241569488357264841794934667884369599371650602066527469444851448651299680904823719908259455483912240595784361099210988182211155111363998129612855412488180129067672361836412162918336748082678890440229868471854509501393959887463782042697179639351677998093949715488358526930059122755130098468242845449438430729808471810285239683957193921170058672772282786639084401535695104943308211108466619595525252005768496398806427608583792592969917807593610047354971710065485662745457413783329818125842421552778434538639697102631666757391445233968860084230795075955940168983953710687993567291085439573843810048315954884239469526398872238003856080114941942965520072679989598353408555539845399177715654750021003462577014656145293054466759507421893978126004029018215760638655296966704151581564129479460949619303973465210914675302906184514817814949206477316216516562273561360560680403122365954757572809796174599080258252088846631873083658979355402933237852795251649622109214712267421182837895778939025641628854568232649764768286384526075466429287542062973969566879151977122512306973841871545182516038950180510471331582326254622192927502850840874833732511187567934127650063896613497930588192739863196106774943465880592145054569216225495167632150858328932575137168745851418068595816933713184227533839841192450053695628386068391366200024683462839358606366711518063062147344303817819264434021405575700437739482468051814234886790289835029120591052918127686029812374544001049615035306233355311997235513516146360805472215672989148971390516085166128435442488517237047979375521059403683211524014854767234692335995693627534320792755172173770529856602311258231754076703030245084940357882434121061319273362658316579950808916933262027930291498271212439784810257258973383052727983416662916250171337950535265659977497343808752827733994603855853469213790208762417940231079673379884866792164408310709680414983615794893947268036318132673420088120306143720341066685546065260391839329479835612859197707913748965842109323881008388702169152220736025124559088412723257684674393066855181321953926052049828560717580393647189422470603924227561846873751130818080812710711178083259018151788932942453662402327871477923314154549023999997469272721942199931424251845045418353882620850872662611052424374745465062598208348139701466512498349251071970050290590941358267423456222774913739756250809801716426105124589864543917939144478034976024673934612789507042267250607155672195035377673499260646823740150113582469593809189814453820262681195106562068070171020000360337750765291620794049586197304161743964196144697510647451914960871977623606722376718927135345020644844114161150735713151534210536572512675089492186800852447234515750459427338465191967066592034471903814819536785012665263649278271803464590718192124161287185274113346107411749737565845537586520354192812929626952299403479354808236437587846068196088937989606634343699099646592399439738004282928418308368117949791733198841272814892635511085969129184970004542843162776286764488968704387223522108837894409264368936263460002674038942887788492203520849844377346898414318611014459030261941225764609349256949581771161682060734230777786441136588560411538367626019852983896128988440399258521815162872014300764232747445218747336182603657437587329754488497266151935620181757032499928561230989386349494585754635549242066385671368511723534654018391111251710854422507344134284369968856001829328205051690046465731264809742467123446451767813802379757587548946713336487042129822212272942991571226073565904836831930822860859045082222495341579215896602196421902747026439729488740997014582225409732900589281952842028028239672105699503227074580034953103835152658318136067196033340965891969152725049932887997005713656951129816873903943069243887457408638608401887780089205340384727203906060551369277647452993807935697203958408685144244666325090690282871286416688373198679168528461831675787362504606325696775907579213029456791483305731771916850906675301579811775588132738849124984733247089867096074529079629903354342980957526339563985693620730281078338107655862760187133815455532546082087959219705372391678522950800008199111475149360646250513653898869327950313911568891173138261368792189634310831483953313946455464825478811238733924846462161425585870639516754727482689705180445370133094428539608908881489170689271810915569871448199150647351285140122604238167576084203536442907303142806262721192879798996098897097777169237063957154742291222611988127742006422195120737437274457560126118706704639205361714846290237355423292470714557663023490886245395391123186769972695398793697487468851320951874549014050514203747580372164942315363688723490167885370038302438227507055671413700944472530082060180792220939515574531790331147362797815632945805529346205461569757827931192481075628366094493229549085935397534531629259401637654583192350472607945999609894235240223488391306991368078986061544192115301118079554660509898015297702827618264229759313962164683646696641119540422531374558767793317999250011971168018560026170180889445036998594805285524729681892147984259941981265418740962683397121757212373472752583222610627809032358557994732339490109033061882624529524214079768023239062484373248234932205548639080225843760217271330327488066760733229198356828996818212136730910248617059727271432224478075040451655122944289680887152489036956522323672487480959035110315275350238889850001149847524724498276125269155317584195183689769389942449734922613545313709889774699738228260184423984131769469026717734226656932894907820138676123525263767040513982230688558829474319284449103225298641766693724737838575236916567359859925907341938219225202641506205891610298531788208596909272156320415085126619340498738766607791977781394860845956156142266551597590864312914271165886268311829486389199696380672037536435025912613299685870853264276646078672897219174671767385997177166742636959307061106905187649969094092241522458354771536666397676212088688949679432142578360595728155879582853494160927755034485158550513878526134369666532604016871873645666683673734989603381625506478265403812058396564857651825390045850680327628838928771148829535732930567488645393127461096545945942081212611442471639391717770488398162584279497645204999438619989440332057283299806602586912307581791993644266646052981802227919134985017209320364594369605071001112196562256576862932037256868679174357103212505862253198824168012225809740773205217172540859126236487754618875687653012933761018416390154303224726476281014070627976169467537029709452620413456324802375991730675959549160991128604807007063183525681386621732012239252423991101664292481456540447536273139400978631897058216003623552808739294054116874016426943945520982589168038023426442490277082062354312873047603975415303846728706115516835236952321865119564023588041080709816788535048400879530506188255285449714551380242957951252465865023171866975983625252079307455763566654343853422827598115223408029635232979853237604498296402976244680973066402493358521930521441624528934611077037204263151281909904537599550419855981594711072306108147544255358034101600101255813352554766711189587311147781663978791086138859874081757490778118355023120741248729163241255855354526051765023891407308446845759338160138804372128138477046606499715375818369496013254136218162891083084336460214250026992390127291246912062068556275326029099111895620442038201303573082464423333939652398917706265890057021967387327014743164394971111214495544576136685417154299818551861464783336702619645398456661188286779864295714506890848734462545592858713332752894625392818329027784695938668188342096580834793538544849183715185255944066095961713687932253320806025421164234816607628615382788745505603122695492939283259398426620601622106163516746838518777131546298956940675035291958584848302059513877277455116222487968803775770866844819865005612941623831572773192736026685214258942283732971979581250707094251970236319198193524648947483544064679375322988141684870868093286628309718854325591592911128040192394226441223332884429327749264284545675737794827827964777809201178434734071642896555016452291965715549028710351409161560379591372418741175769874853743940638489347715258276258517484116217900995227760090605186046204468838908568155951962724191277290417945920817731811237637062547645690679945485798200178605402318504377912532277325532337576583547339686143093959302534299330727905042405276525553336783913195182589842664321406320619641217787428913209202861729967185350580180779279386226695775218824354003811693737378432791425314666085559965388309302154936230256616276496589238487977581758065427825651684414106687709943384200843530475359932310700567485579686089874381237535749580858881412980979547461481557724351690208723886699348643581555065262020366255028513849166974973758521124101755362656153683713554698673321304678656788412430007845308740419384474020337173602116620484264859019626635062606244843654743826495213842705099254727613417072908510490343328182834952406926092682973860297384270011270433360336258916593177021013848958146597999252828598149227056540231842870025861931217776344445661253402594772727708488863684741351187832370865033888953288297638671601993832038621223079084914279272412168433652237663408497241418072800092181844975158978817665854380363778224511771850730497222981988501339171972439018738170028528275711767987761437544730116750538938803013696736754504338627618877025295038429417723967410621970890822450745196209615842567964575464750379875024697599849956258241024667930869310862699757737918641766996895517770300162194693732943966777165723660387703972174085509941894837206219852373039867713124920181505279902771764122283333979968502016498110972611779863586211083667384648089541423264840536871982505996687137533940275518983194742436212347479925598390647535895467971235499360604076539083702692992199917780647431043843332780219264695815824375495353279774627891171078672320385214756867025289165114490247731235773441735008911117031948164114824384893812856343428720144923515581046412270970720020119756692952340013610006677157461835174527435750073322461052750333700742641260677644797666834708758587924321465854407139379668525934850031545095404609902406842438126581767372472224620687360642051327872255845233354250269036739557018555537074810897893919381424540481409562396490750367624408048895275826831729881559694920128193855439160813385970297952556743659620770964002472628423777176076267214328183242579350782227945264453311687005351996854250368543393006384336220624160637297557901241566690466682713356916259572362913506933516694034561803025514548438394996116357577023667834635129310932646036079308713350364251910251351160176114775605033722706746867095347748280928987872725567534717874238545657597946915715873525098885471624263214956111868788253906487033032463316219124816193541358800271506252915394478198304499494081103718356989061165147126471998237714047538383330143451258449371518309910694118417318167946044775920094106206933117318588254536004393109167189303041616238189240261911586108013530501333990998779595931534921873455901233187383595184415493615714065030205211591413644830880458477517591197570000971198171056040135442019567903978329732156750651745572949002728445617839305643971772568316565721371954516767950076848690496987338840465324810321336955075736282798750476903298384128958342035657584340984912694006123680432538789436282175000769620201496299631315415107609839325521791749686969724119395311626670959531517022752131952091796751088147651570310572396568878201933299275802036548511766951695669796934010347713030785538534161187512810064378276995195798283618287431026325297883900870109115131674698586534507552529849477642689208219816807636347921134138804594231328846195053317229574425376869304746532806383074266750864388613669332967436681052789852013248354175485195205859898914573245232195271030361734115346201482643956184284430041788040335474838640469440637912756157269324353100549467989711933980688302831052417866009897116912575858025394088590595837302885771939510115083947351913427553000380582022681747368368700611794712585685100867117060560084362214184324445529831660241300064246311423289358944966368337068223925055685801491762580979960825774227249760771716350013904260720195388789097289190171955169271058657704224218883640756534290892011617759974277990790604232904516464101853309491447262707897735335163114303568236736652301734544458798185004607480544624332807421986273988412961351176556233867422943181959578118097116835508723628853112687870098062174664776456540675547975346660965884134750971015401376396999893690418821145511039271099284568617054232864662421347896278763668709699527767029105914987740480576974040962403023648084793367512387198509373998394334192828472379223393844357581811870020304219041976503675396380088185630985958642392921168385029815496993493901657705730701671877598157912557398307451198800803704816817390091877014284927099724870778805219719163784614282885388424223443744432363360986656605004441840132806168457327204071338551353225886355211740345481747447816020337810888987847543539227466160356970933094535380932782234676657756511608651168679825851373996077685896597343978785203417771254024961108843257145761593301635816818429838336041203310679580564209543982562591026496548135407655134620555694169579392092120630493757962549938531667521944286255802417947639388494899140215965465768478561997905083610948916015334396338970078949036445370448411291932563582900900670564632237049708500195274476016824552812498803528613130808911993349529258156544933529563317103500520661880582308126980232990966585419107717926926642592807312095348730729879627117681239335472897115548731948554080714073642298849797981128882059965761079629551808535836029839549921727016697203536448693738316736190581293611149374734760473577458455663574076212557092038697855627019310181364391085260000195291550547912296213826663944116512223008934574356141760427527312288553096901593875115129868389095456570979744624241749727157721428753918119705280631193817628572106153334377836873421143564660213456001032298439278471269655669435096068911933684686406146747869008463799794340618125491837634784399455276123020981432463060441512336535628491698245673481470427234945793228948779619283131541979339469628276450648779240354043690179548673312120961691377957622276168985237126589887414790892084455434461883931783246600579032193899205944763452063642641970069475541171281401940277959452971706066477350206973344801670280251764267214711974784529314208533645904472396128554976298717451377685416042143997118779069036025227229998113986338333547525566724108716977904870451859635352642858741601231477375713148917303521834743426534384827500963028899769991993182055641027463188271636658575577935827327382787973750904984670317414318515811536436820041065538098975082998582660800909301216663532320429296412948201910742516300846079554213300060907053423127171257773671440383814696696503657060968242884307655410271258856244802718447450915670108098764568102353413218259892045902259409484755411011423115208629632260758946141190134659420317506920330959163637124314341197787219707796578238987339043616147958562908554077577836261674780502992218767940080591398423484664587647124299462332865677426788101412245581465533772687576404234486381344114029750620638373338806943397878259666483077665575375446744818713801168859827521571909718645235448771877539987673778768714783220697434590041494577541059737688617031827848441042512063666287180229739266235080774450705323620665505069415555068311128316143022932707117793412632704512277869350884939095343875308333236421702212917227343493404636648725010612427773514188242027024552931476419275742693114071355919443761547364445192745617623554143133914789969522191654772850818079198221936532091246493678719691564596622480423167721591921863357452066576829521865284553202623670070634450283775834187000425675560840598124532174871315821971833548111083411418717122407852076759839724141329412879590687929288733269133885655145239096615952964504771831061589973053433737077950020870249902914447557876247954355386970792884571646988258482626283398329359385489772246833810571710945659910745155426604805511592432578177168109241318739783220767781720073770522615402498136445240995267061524138788957167618621989459286740714026711989245384832381648829962656624702247760151259442978600176547316296530772526175791146233355621611116549116298662559647098442633877801470708030563246583939239819133599398920526290004195552982630740150132549510286607504278939436552001070510848055795226950012359029426783445216633615146866597130489524235176835195729468003630744855340137400805768349969599200953920795621032464552343246020800290098277096592956832675832340234758296454693989365311533290144559548127858270780771103104737083267964918090056602503022747296681794843090804172618233804426198241049803470090505073557313309320243325225893566001966892144217757007081353398397299016256644922042161517051617755351490663046936427805210020934092398005678535808294281408920243751386632164334027126364859117807801640972490526857323427033719357595461664887263313759195730919643279207577793838961778519186888359247276147696793559673605929141633621811906565924516763631688592682821866299739679013997748973053715095631228045344193686261162094731784952098535356940459824047199527991837219123056368479514915100892355686582076876634241222617764416703925835964906402877343700972092491654987256543257381924464695157490305743511102810085312238838154765025918311238612224800930880626521128893453468173031739795111750821905200036674952689310259999415094651070450285066051403358270792802780108683133867405781039652881357229399364456735843800055604409355323908774042251588778961183527397725266446589152070659217115116373161455824809667816651841604655153468681089391700755751387979958011281850044204986342113531218747456831259202100060599731633762525819123810983773367642719444715469641900447093644613964168941235627568935129067215235284470254743892810046245396342496311627108376505538082792296095124338839533785698348614011559447832528266781776950317572438834272354695844161668182199249161422886653256849476413743897437292224999386784199393986444682195019274088510383167908792776179693008729055461010448406363311983613121372407055871996603968177355049830354403494412491240868064472814346377711010072548309520225012755470212694042758545692757535025367014107108649340404530326487653035838797561570268962066652140935974505984376263219554143312537533758180886774000094697814233305551104518932620149798819880654011696250540364019617528309106761119959680867064683984699284242051298519028690369772945940652582405377744792662427276632714984258629275606964666078485159792575840197177637914432243601192413744649881240531507359031966659675347642848911775731704537173213145497242784395636681268214956766699939962272045578664565942499341325394288398991566448619010076198898092758068936732930319980043118636384159912004480255557510115770162712972819544138932962937693088645152511612847037064127493312914768246261994402459387919048068268968715960578549164326938899202236876090169844401242119893899013420721251700990874243381450425444465434097348142170754454692265983003936997191666576619558847759361059876665220061698894212858120526190134962896229836148588678168637896171820020684934945939141053072826875251317021910961287394504281403840494420136662031209215341384026733680342040650841655690497551611634224605213046211439652184854711807462850835204796656674011729151244691027883538975499694266123664980852844463780761470961094211597441522339856543344491101137223645713646597902116188571459556192646587031454881431405064207445416559087891896678777632604366858134527559667915339993412534066002932433533422981023011740505966661070604218870763061378225613455530676260447725778954224933687004933280233780566575375264980839724370743464819443534312736263485267962661290433500311323102906348220754638394862252611745338190794532708343132536203970266307079283266335132294155161410960469076764746975254000587813787554239446941160062745311879788561375695563084816595064524710675676216331837872527429637437815497173240906611099513389767034749497684520846205673654143090060063920943471459078547561153934295594684288299346539390666559999532751047346025135206945220045046198888484758774426504530704262711802308805748240468756053071601057125925696332340308563648576335331333443991427260808103510145170314803960439772265678633742670787837713539029537294202801783224431508309279808948990088495445684015809997620540973965477764911686535852483147696526721323432463855240762329717591374039222364082529490422586150632022518306160270816082651310967811657042499208786045751159785406091542614375771619898434174361604427441701334398948923424615181261250127142279913608899646349950013301461275917424998970956683121175156766221894239189603784248947973809318967369870781790754412704463920060333283960675006573151258674231178897573721507154938352380522500867874048383267679553227467617020228711320474147269740164203950652247919519662076661314187635438769728456856470314216443450294738465337279698368279526326226114125257250131921927423175887833124339448340387878808381205201279930769694353680627900258584267673943390557881030661492936226038645834095187914621051192001459709920556592030449152448828132677096593038854910969378592692515870582658460430313697956092057481546251658029767024534491998871216352687497197424256738969043280293954058946421034357255670343344388980913936155223193803185939688769060586493911537759860910755746341609935182647134453269782763421949807601479390048698906356632080328597017620973594711060186571026794798267926913058887034650933270360271653943339058354262842479654574572120672102046776443014331947949380003985515332356095155761543477486377878483642431487919771793371055449685297325040849707782946764497099254369006772808852784061416182782820944751856310427937074116285705844740955278221424245357996520372488457641664954766368339439657927490141553383717678337736770514603423454233196043506907149162760428540435068261822858728618214637773135128738862184031378848058183702694916274221158497266189737112066598387656339297467617893406621007570004773257521379613313709421209707959318638262413866781618864831870222873022538323703682515197827269252879133858937695011104441094021148018275151383029493963851708634923233276810101798417398283214264716684958843728894561443245887756907011307697901847063451865074023919867666052396818037654309872469621587784252447795583184001876690085051422495851877568930292082842253535223127092535978476351913798536500699176481404277081263229099335779908939737416271244451295132700303960604111569070200001882742068529751208725947316832613303169405203270291636610388144649617600250002942482960640031952672679104736505799972394824817424927822922866893476676129499739954240056159704400409209070283618109362135704288757599713484985657027820127255759016120258183702139644172536774292576729831632153045793869617868332239578234775932972500921610249251986003689483316891919188144227628111392450753237784380082445148883678421667249413170854209445303724465672202411460795330081487209774378630797770945251196336571120516423738367958668456958484616081669972170142307956166171153477927392482413589414267316797863991723283669166645897211745530609781666173127336287084219264216206799663095379436387455617597014882871498589924163958981938533963546355979313354853453981483135940382129902794854988959644244180869373944095079901260664819868387526240988219497091716813997818070068170698194650188876621321614348343585472264997565853449372675237634239999729810381302455930537487139485166339455034147113469398009966248886855630635391073417331309223978311517603149150138019154965216708258356466304913972450267085594008480000058462101420931093820863116357984010640244547969140341290079735888520482204153357510976715792088173796652558787420788142243330198814787596757625744785851737009530546605928985851470917341842955614410740209192048222141088219222187288334913570991769350337146769183683376426713958251913652302236337690625076803608204213522572421781158883438813506891727804329584300253167082083968408010669034141315904219057489700243360983081799836715683589891355362097298367762155723816767710758139772456378740449497110404439705288018375732973163833697566979003766866353933332974331831860359196049022925216360699521409321976049726829881243863066131310188150870343467692488037004110960037570800712196428349360763042190572673216189580133410106957475623079062958262712206865637008420000592871853108462847103327485616387741981414798944338606034322379851419803437902206415553826136155868126685917916026964512155960852379681784637439975496028833661636534737668199967197992824190012543603505561719449685724424298152265546881833552593052567429686906049207565534012723649893802444399565031732839203496146241910589071809657432277464839306175870830725370215253539766676492679577047296055863128988969386166255444216031204965393943025246062615792970950619836276871016617068179403418957155716089415670041719965371898277889229266725057639836511704199721289552851507733539246897644384602707298843117597481563196210116185858391388199204768777783217789690122228069636704936094323014369482256144219411605240494828496414237321436611053534909780438718132583455559833683884225207123183486459471811328206007124110598578115756170765610444239650565237716082861903767002179618941183067880223662149872138716804790854103308470555193850478479251003622056398162269753372840781869853632411175551492281316694405344633013727851292584209777398462824710950089589066930606508994341218226032159776751455703585565778664717408419291146064691917520362547895823387309008643991787975959296836244783883007846178675288817164820332480869696084015743374740953566397292203508019887228715936045026390319259045859860912693598844030686922069528848652959105967578685075659714590223597853622492581030691579775506363433203083295306008503107685164820534022022831642475059580852966641657406842854025964154367451421061777929870598424981568528876957804158348540121313831147779944733584410753768511214118086475435701069383203315983578865958280102946255390948421044307791023619581631258428708867887113370152333201065930631142661096777406193287097112137352927473036186711813265920619304136756287897699804278815634391037806288195306120331717799088779632954879023110819968283964719385121526647141768268763366738709064912126285474330901819131885693591849781108201358405042788607946543950677224527953853794316897432504137193750345042938253683617489650151999761540499033336931057968059174606922514729918611417945548206400909228420088043586372571359713154879796822353641657002187068827002916943622509655089670532258056428003889002395368808413908757466332247573425293566393344978081140538940353064564919374771992542409286737226007445835714081993195193101272190405565675831907931025633413421627293875681705137143720660563740917308723905335976160714109545151812530309255089473426785081252998353147598241379282605893033755715817213398395458709261916726341050397350015070034503158990515463268636033947661656740380271467834264058831551160620661489161397146744953453116666971188577063996000282429565056488951302356844543241251937502212785611999544702832631261820768049848081156841525646439396674369894960217028037093098457269081604227401527594176100441883781842340004120794737508591381096827661040369579457409729782233187165275625980607149071728182504156689718986315730251305355468881702938168051764035161526198814639031647453617388715703501606216597846905926217164293236532316049992225118534610720879972528911247572206864763016504974060237909232854376060319821609053539506418843729913709215712140762690295357107848148567713301311954780912567749149062043312460602919219101897755346424560677006033260240112995461764669714611977572119846865216105110525709984165564910050197325356825463529875135026375876850345825259678146602104318391505164899650400614664357358452428600868117100963718563320071893993348709050114757913378160416114892494160456700974028532654586617044723084908491373154865072076398387137591414644359154019249186282237229424782172153018551288794307614275556550202999471302657545736210084455251394974538439559222479149363510064267028531817792541102626279712656305535074504997038608984811196984805015016478782076042365358096150329325748931550776376348289392106256151100606793680115165162415245893058577823829922656741466098701469772262720443931862572702632337420345324212754409429746939143621342330952713514304698427374882656273186064308289377182257785343898422906943385950502802688480943226948746212730164614698501453445573329993645595759816685681584200249449739271169454090325382956427861858788331643916398924058736031180170904396020723509074147874359775353119611916260219103610074407448597704672512509918324621625591787210931630778441028698127953611225638764022475040798005411561158481376815596616300064661512254832104343329514361463122692570204781366505294986111118791777516268281037507913244446693340576307319495071648210555368238385982296330184833929338218498384378818385889437364142391255181560525286368675234851377138225974131618562606707302759362344542210611033306797293649385605068651955159499557684187285356556861082279131474538321465113866591209606180920786487142060325044549215002096904503634463461704771261670343230177746066249229744171617276169407188493575793477975052793690344785494424151207728539080092009879824167827096030844335750333365892039353002716609163156017800627267925825508510320645614458340338362726072098614143080589933298379528908482995723070772267037790586401604515780915169793330209235910151590991911289436005594531957344544359418015107648987893644162779350515348602305660101087824824374141753732154866566828970237184165170548500737046717000377030487185827672702577142061057683094085883216956684326896387264063849207725637010047478228035929772132427696766598219281209094998777497486161122522222616567574545357480001109790481847226822534416537322170563671203954821881482659111891192307618322291328498434889854873554540344045736213604887803588771296616241565800871439726093958175995938809253320873691031206202934827035846488111372004282887788935269063245538428999149203925972917971655017574229492009549177185188618021125863641664955938130909228149179947763193432853472124847809790652458408858523750608867015117792938024570190397021117087165138935590382132492033457922298656329089542481646110221192496395835678797132583511401279231547794727156253666873243838232480975353762892066708784318346321919202907190629335295675001870689918426058030715305484841715887211780513592519560957637506902922928261153537332497108466554120599740739716310825006357305338742791899968203929231193349851308845976407450502319071116694735479763019629738515346342535468702577831827807427850779317854670756773821632886561570994254140451351589222958268070216774485877856958721574617156423683675298692052594971823455763273421636743229309008886683795589368978786723269736049502857255864375972302013954001643462390566010352088547253691746830392832879406386084290061478867803262027341888361313904184161139497369866425930017223368104972923132831342099244177894045891146783194647914730475850110016531568483159192292423804491151697944011335800928694356035706208110182649547875278129786323160140005128891219930240740908065443626551249895874683174904282903031769424218018761744738538278834010083962353778915598285657528025907564923763653621905013143432149431777800546449372782281497024478926086900839115170680331745635675187829098561798337967296209666240729543963599005942428229154460044264815837710953861236726768301817115433416049373148648518328211903167214395651856160387833198584356306875477947649841345125927800823219998488552615114026808872063994918611045089282426151090148430115449924709814735065806481549116757271370261912769530886020117069997146040660876147595530147665535188330515587928765944223138799522405669830475994509083306811652142274947972966460836270946093161282694091669047340749799377835584871136621955104027559024234165804507804298863361567003533278385092595826198136784640630684358168381448935049720098496999433305887298661631131663656022408939406220129985323188677310656954709770173075465907945394168639951342635511213629888621621488370239804090789636944785604326274769562947552044132588442475950621890616336825493900039131273380298444498352293278280477800700908854377857120142273247263852768968297036575108584023576973621080244948480294718891375523494769079277551573351192600267450025589927443024171048235860819817530739012691258649559457115711132469683551382481649791418521763281182846895643974188451261951225276064408061253962332255079717981376880960905704873318536548009258435756063765850895128976271205538122733010568815046827196895429152062327200224690874068147947786553012663848292894818245138733372803233350148956734861982686204876084947191711273581306661666388506329198481935668250462074326224172514308753062624183213931684807280255319089872656391231150268049657489267343258798041464887051999153219182809622540209522214055575555800368309163677829431551886721793753553602577915908913280307083643512179544036498722072802340924141848143136225851575078475133720600621916411413305603505026056177960950620664638331252863415396045889581133431433128498902737996228530591685336606540022671437011776273361701561474634981952956583090523185243752620873455203839805337606928359311664442376811566791678046187106516266856061297330600534159163823858706017515759035989049306557510207041365294330732802053688914641553260457558345540618115741724999214958185409963548892956506895688312134620514504433628720204452845102881197748261766871918042635690971415116955344612295225892937322887018842796086112675299058096936059559219531146316514193931204352674618965671550682632475646395389810904479981155863908940247176603228412666065776797357598309688154987071640146871181751824875904422628446309231903103639533844614216902100362429412694436830413417870615969355623751491886087760461845109597738659412391233517962301750825828300092685215482320283721400381854692653476216693920555397883266149961732067424256894687079987472518837343746619564254849651933002798825281577344487242908846987872600367592047667567753443837267910896037803759400974168302804421522306847549393266666512796155398166060688738670259639721224508532423204301437101647881640212102608292017989334997444442515564235396785812441948162590572953249387536931723964601577086134421779513177872981901260453908910146579599489513716753194257894602915699341814652622456278933493020612661221266817200582916484675938356544831235664395541321692762281955818952832367101694096776385095894640989881860913893918312318917774826102056381014321063166678234041004682785197210679917746715736837596507563151025601836150448919941603618499292068282477277399119543669502997226066715781463778867998202426385733802966472900333299995741957734593335431968055970808815234385410695880990792756134022590698428247756289467879962040029498819961285378508768261308635221640423003328901101810423460317904641294094948369893484886178773954372374582054825627481549440708305290413476573254959876219336084399157641043473517287386876672796166428247538963086627627241317512653674140121651966387165028831911265197211097766169582784108558652719170588371563538212477179552601996873445975931163758249449403842492799809928013001982256309071211991886305911600553279120482860211946612576747187282465929133557144799423306560163166983410789116049006488723556016644002226130478135665866027122478191972995873935382576651163757202836374619039132700365342101808199537774174209935951181690639267828815372934248594836483346616516292941665552864261080706239459240829166707713413151595591433046702956988421949151937004956684521868766147756103062663594835248014680094253151544527911692104070920384833600565175693596194948487428943818961576458966511540688098897403286960474397585285594379788695007135329576521657721158517370699471575767453055870130693744205602952398709555295518493745277276742245429108795900993588628029041229369460529954577393407522911893563289756465904241693379757006772228406075369849959071236798919065148682807063483150522012773542986069174992633602253942603366762097508921908368070853976434771669700121721665381280073323228169984591928093330478839496811678251122443850729687273132353948567360827627769120720684928198299755263989712787654066967725754885263623760046676623580355559849094972649565876094464343754062511803925028738584084094940124856330058760618911736298457274010451950166362908337330019499373638667584202431539260408347508519872662041652203653164265096753687347401189081638844374080559960639131900369326926646815746559873562906770242912342121905365622954253236643430962324547431943562566998856182840322052621058163352581884557971333496736184129284653825716672425808533319735945446529006947456124195782854020216098972994758587064162945198360186493748635585091256624954187235804932281118667158686205464022644813522486746394974776582271982853731280022679832686632334872068736294407613007521230484514397279841872474761354946469655944123601612465015157064430932906128524158811516481070273010668100671462704320561897920206738516795709574164932838618018369011119055200943139160346159476781014923960159003800985066784420015393057787787785637876121887337787066271596594106682217388165448950165064959490531259769752546605626849986650606185380435725617327386678519015092751337925597229356520807660635903867842042683215144294457816562011335860547236014989405456907427734657351387798364744456235048405582706578977814910675915958948916772889828310905822548827191769513521460451820341839228536640361350317247256449624607345678469058198031404495711386350140043989988443553468689577961901122966029206042097210329039202722443627872032975821694452444567659071069913791372396094299176501610614922359144068658684608011417341212000226063324017256359801254908466016850157750840057572443010284593548861679174393958172884896228418834157609467704083037623107806712331531548783070661726520896067893912279854133160498678992720283742490157831562589510896747884752543882276817144274299230470231933974665874742027608360029522320850465262338036106060903886611114887294985760931413616295822456528745092209888716457268702268755689676756303587338675680985418076111117244420471808753993894541456014485474485093457266418982648807766207538311026378014972972950808970403178871938375143222220013522740456562527183149715733981674880720270408386472566650805852261474756617519709074660522470190344766058096041444005772120620782672171740398213445595582415149392464265624116186876641936428304254901695779352213537138870649426644506713727429864958659859648810925442794228758937845560898523835298847015714523482672835287338936410733429915240765305949476165817112802521247129899840749310589778057672460962895594998273707791692658255222619328719754968710282054775438505395004960402678349206250657625965685772170724386606626818764046999018944018834177228709594614427955296732071388196519001580070252401606138806799734171352466383077706346033020730793934127022387331596639784405868863242286882737566169203607772787589150861208033199592960221596669871942530714931248755901950269927125518909436253059852831855498081624078068812093187344352834332364876450526896337875350764692348841152630447883053840497841825698306351241070178007953325638228912882405705360810106803215371799723768144166714381742791305272366380893979870283581239443573557695048640803337705361910722638647489091913446960311562860683811545520875226613498191960343870504826569164548848552776468326832395902551373836639138254680948758706903319137682570832132717493957804496019626540185107025145406897433825596671084656562235309196826923503750495794181877219652499947789371508020166172979694345022011990104952720246089184800063831291426583975859395927342018107522549973189480494702361121817846512326546618838136796323085972423569454831499082302935137727900441719795570959086287285474660586432067343214466226632294092406503287328112304253134876792233164940742949254469887456279479146363896389962067599568431984445941024154750518992265090305399296656962563646724894641996729736641478189336204510034157598024870589037952088878389158886886454927010235642185744186357807822795395155287054825129268814262137431931346302744453318051846046502094353612331223829207505723995187657148167721882898621298056222301536803183596038487260467824043695433586799767196980179180271959019232435896261874617602661261229660501989585526936922244442617477170668248195659357995598743710635959372622190988197792266470522223954678377834255868906460911375138726310200403246113424944266986684978857611852938879282137161241258607424407902199614122555631831024533252754827820817549706935321221604617047060771605356397507483352633730152161244107630802132290497891964828595833464417938070449617788979913025590331435055762291641302250858723781385193307209190768198414377355833615037587870139507534433966883523044580526054647617199477087715900398390842957196185933462992482067691362624798680385643971239616397220661158128161050430113162406091321374423765000439374871036379024377687401540883628446213324248726771317259345965340700576682021692511631933794286911140641211944951671460974039692796314634346272742399864015481895889302612230078590677731234260452842014841930376885011862102272425913012273339727847829063143728209940067435697519543739807690689543026086226041995419420392972430535944336065079349652042389181981905744114656197032126842948683588798647157190336845973206945371316411726515648112277639507251660477283389508455489937723751411216992139756094974037453424087140527697777354637241601782591549977620994184333777636141944889439211933806213982215225430809760127860014158054806190601778339488343487090999950914535547505756226422076750786535837001029597492711010684901198281271606733684831853943151699259737906441159818948834596067731869295528076001960618773168911105820952536704147493181047815072304073593708573877979512608879921471027499215706354099520561769635146165153983978235649202140915106534287077444827476151336542625626249006919747093769605142252324614769557834918068709790213283048671750338511136431167386012648193970120463459633879285041527267228034093196063242629302739220920647512233916322838933644154700255322494123905939190329738467076868487961354752282584010451565418879818800199366890648215471150923275523286158344813668290643962066175367084166938163232735186354958049537762612396708267603709765986955136932066902575201596811510178771199363412855304100164959593473505836692153695804634734701888905392034300726500142796579643276542121387574122602789914389721095033168197536847718641381687227931587625757702415526820336062725173430013513235693998904419393845032043223451755943728236711167166403598125942260864174673345873403194396937486790291347606124154597933132478597418258866284291962413376865270953992734923948428110092159278160378470904552992070329479213663665355028734986624220206798059599695074582766519713077257346126472191396609946168013787611195521884958305930981209014573617204994015471758479566739109710093212335023422367955995355477137628139641713257947951796674711008202787331615368385085981403503903151533958549065712618860470962123343562104241218163128576045441765948805712655204164472274400661823275372864145718657852078086195569724581004945424362435463496981890822184828900198579736357119301937709229265882701203041125322267995338030041498078045836188500979794248168265062980387852327502274441412122369596474095020774313382231351821528014433853779360713987980059587774236110310679441430869205200471393840355710085701511226777781608556986945286964278022533016567650978275989604883057592901218297377975400314633882470234878520053352027357346167645393683656304750865627930908222659834655897843886842585126825520122218444814480537168056868196096702992394892839796200773567948361183955802761082219014369050632643174418857165153365565070691488361179211821063553353341384128321342619344281419645131994909625316514018108831464654035011606617245271742379207929429746435018554383237808621260617419014269199489491026000379877298959124965386085935336816670260441383941044255511790360165050089035070250949999733118026378651594266844820747518528975961597579232135786877787311506371920507683290846751964715620179268287907400005380993589511772083968818084382068305935077342237690909005744325341495810657233064762037810011183007234348408535157218808442782889015423515591725022332983708085807591928005946114848453371113918953055032204688642741779943966571818502510716817034219531893605370658953812587673460976057232777476668716171243524041533942283312305620717149460445958700527344198475353618000778292782185174080981236974975044528382915419583588011665897562733607956989002624384883051499462647761234387052189280835084851379632844587980601734764361615925056256584589300289915229496944840587500457255253013111940293890606074831664361160917030554043226415681367806524134519427664016247987354516071932612101876260298475104416405750278717902490155979424330820324792838760349517459591480613565101115949301800587425261102534364409068731767177535193465728154689507202846124769179446448071549630933631665004697341107804805547831364941545463341281769252940230950709960848073710578734803020409580313592199561502548785174333924462084213874056090369628589438842209658529833216708486976187631781292779645999839028511831160077657591230813210870314199792514332110582100438428774932910787264955996689629479048597569524847047801697770032799446170791955875777702329618070619394014329013587358368092681839613589627852865880089324707941171231958418894342853827624127402520301162652668672107756943701482540432267048971036745201102669680990354988554392837248872986504351226767072625597338270608055329562561437950986277608999017832386338700729359859352085645006396075596484192505159823953308235496922500291325410495518119792764687483802452519145779330129415659227059063456032583923759097932304110447151887213251656850136085543634012925317774439882194337651513188891110940234678637364138551281725796416076485597368321352327240867369192690623595024314366051999916185911937731531905071174452427289977093844635749108321761526968074650333773808621909106587124301157675007719918462788662642263447743495890518899191017084954862315783802313298331088815087483385882743534487355541699780609048333822497413958344254259411268431204278850383182403937077727245625262245651356930287474641137773915593107451209384029487925202208043929372250084461569661370553650143284262633175673851289700660850946951911632602105152877352994315046378731861962013476726957070144439383449685172946130160336729401198098889969205237352516525147293053447279013194610121278734600661096896033193721660822399125755169408916075257069167038039748360104004479100944245932484303190049470933375239906866774406828656674030104468999558373982632224309471024859408221570164014901457161005152295854014419802437486460536589548437557864569493285865842506197818954894985905040174549967581364384740910262291509465557373883577655963080829255308127308328081227210399780011166321148489721671814971638538568986714491318388822144570897102910697582924870269388104999889690575290359523253902055482550172839761857042176907694307783648744774665825185936093422052504483921906308163367990321747161590827857478238688346459911672174130050858799086030786176188112246927734003135843393818564193323063460044181337778645442809845244059158064075410611778365913579988668361336603443524256893630916567149155520262895489330945296019124784401917890702281869415034779676301847688658687432625565580692972518185257519129193691407209405454296892152271764421218919555225906034738556245764480926644190557618012652479626838699529863248773178334303868333300878899704750427538884890475379077419540422885890611852665811685472069084082153953272160185694483422891908457096663917392807321878307049395632562507713894625108741194712660027948764505695276541386080784527572855445848739222148095342791152412314157799172326475304383086206273947236010200637121939001057011473764548963849568722343221399213377654834595599467364464967131235635548308104787036723968234664347551207336727015849004029814061674398994612379285955593771712383813264000822597057303816481918259494801724421299225509448891082542108722255386128759447150665669542199183266743416927266903719803351046762035231246869731494158380104480221633213326886142453758992323408904803120425158317110161622921872852878317638320231194479328523002219960372413816138931461506273835585523170002922145302945480889534770289775758411451953395227409706983784937440285473887725050091170850752603884068121087832589755956181656943803381583003601131089674580184616437711236896898020612826975606360656537708074506796366657120380408776950992361669019948180731612254895042630806982020645498673027589673131703769984898672385555682436562279006948944381734410725726654775600654312458456070664237122641839600512526425723065250850844760353978616533920863287512181990635343362405431028107321432142942142657597424799579387380596159366875821091305138411638146232545619920361933306850831947403338658835561984138692870769994072925792190800347228208308394766211650876603388243787583878570032351046736338360072929883098502207509980305665582373287285619207367976237830510664865027974823179409270161321459179946829194334041616235720850543708187031508299056506058194281386321639912324203019025062877408710953284325971850826758438153271940241844344542587407713404153336997562682136807613467032186704907007915332867519881145469591026810848041266689609845205674640201133511178008070722557567946680072258976084866769052410044683441833130180460144182736151257720796090713675202682466507725299595634448517147178844219494926628497665827025508034964878242472432203987649057298696920563698483200288492013838699252341851106211777448626897889987573374271177133877631905925059204206768306739444655861566766953241568322653214606954057635431360625713126237760759808413258839402904194148699827052923022945151851546977212401071582251410783997218776408867158536065002570008167692197782115611381473496284148315176424765624374537002762975773776436996270479178050026118942102212954125217703403897464171786476410776044114201326787865557538945039966309983068872753295802137414212835181161189039821630649732934923078985379974422105376118885229111067153335499866897224270667113048561580041160107466968900238659457224531489562690910186754352071011693135422338745977621751454446712432684186053510671607587831108101234661327904755048723258798494652567978158910195411410804261414513882595710691361380470192368112726985710614497635073810480881113263685256951903049113488065934059617114637480427330477821863842066186676820465824995019044759261018591283163939651898833087835109192333760560579854867804108834107461170645662416261718143616866961338060410313477416043399249692670256042550885677359733264453704118530704216114400988777924785481411969554998245827859444525328562636028561043830747675766470293757618083180292482780509531568392653531514897747910546838855177079879240795257188789812031245040076925258049860984685220071202565162783434552898169183150705952612230259445604050191974102390123738424899446210522302295696953388809304820021929886475388334266782848092689528768954350817575010393103013679046253523188448869396283809927312731466754566941617664407425373477073700380559538789588359772913945253445664257889225269072178080747195566822529185100779402932479456660283680728706794442685347622968935545081980043798141260479248495613874400993244241119344792227075394885527398007630096994864819330646540686500428710154163784133397172738377986487665499456269315294694586276124619626835504687472999755037470845349028548943454217296959819637189730948667758769357380129436907681686796703870113346858895164737817053618823598109780112306233254345519369007202994037726309817437246498449753455401340502644954382991901369620425422234650600870209435775474515895306286557566631945451084155681064268007496939902125975431166040442895897375272610252272913200009021324375022305526831822611766323875493007574451658572125009185659642217363200199294732296758734143925355246130665270836134389380372607627333723332883452289217865754050415025197439017931090561980174876373362123677323959407552235560483968965100859081501274139114089775070410114362624801087391798445201140546633935887353255553395333280847177582085510903383376615791976155993482905986773158694065378347304331476121948808291172024158237843289501763567472023126528556744596522632681312617152760268653444054735455873493672505147210216496682855783424820332909834837801465753380800158740225455372989045359461704933997826910347707121974563404179700990591856918890826783393942811246304976286577442810507567693000637958027482368821037188981766646491583729893262040026830042202577247125046876834666311241238461371837227941562903079646858422139930902289591219613323189163488487424084030593229105040787236990895195599302394422505962239604002954075854318553733846879489172491192574599915905986340064084117210980957483232588968868605291962173565824106582436128301288238890576219776780417881115306128362106921219478518059301573406562690612682744007742441617119086188134237268651555846225716085732214259657232796317690892941199165519343553087760479528692435665467915818314168105685139410800700345126453379099752409677790997496513775367331982383403717491288416099506840540986611668523635644221289483368885945793919662880679049939443903657603911876909043694368568221363152985993521309238887263679240175401577942033282856751665925213773128616881741472020319246974476810273732683338901781615090383628227455317936302429608037051081399680795949801582186684924962358400115798355614897663184790323770116072332677009174294907047512828349981153221034403462506529213422107187141096265826800505427696194682361902231580617829058237299604812068946382963237293682417150015425960569029514450504836245436839093047464695995019927242475241169029364320796508544331171062987826743495774755311040911104779174565124155126143928687713441095378372121121679945736760344851018628103925630589155094672005801768069074387985684277927879293189183699945780373503955597159411133379326797287656374113507320397944318538127736151668209670034953484824061784680936597206070292241443144923928161370279681230202856206381858848167813851374744560802249618101646357024650949406393036129760933047197507140990242789337440795165714427471341305845682988405905463517432471656309187051068557299740797163508478829273794753254728917790399542893784032701894270799427485546857426249093217047141536400063403803098714114417664600153138321733894922706912364341876762488084072682350894640925027656200937605667564053472859828560669086590957841540359113223348112374553612095188512675738319205494054939828313112125476803724623608464111744992568119844619115686182581457108635590829357595931326866980779410504792474065623048908064832980272425073767881407356394638820480398313144142574364851748621148876316414552145304940536670004663359893438619640722475325442366782997240048939244062819217614157033282241302218585832788985065193413943500056439042668802693558431732104640507862308450691065847759282010152709338420881170965769499871263623776559568178181232328254175524200246904880890357208769790740802920754108809659157731542490967020391073092241496971059657949194862727674649167560760691202743792430066735052628009003093628272578881059655424000664359734580137063448158106249735864569761758886617579563060732283280817819148189857260799675185276115700531343674643902650806942504733433056425832908330159419910611084770083126457380224241054714212781427541561845121438171913402879058075042641935636552183001190222335371847544479931630243177271950612953663172516159939040594280342803663609480941472110714368208794805983141455695754994384776249828326668227301316011012023560672754738614615270925687809022679667152883227572448104345521171908981068932140269442991684834773719331216003912099686853504429668232027024122162147056918922018882357374087823116110210870136197292241926464948802536326481608951288966079194788861238795217636010465039294967941269249083785954542606959610251378922187205301840590967256744492859956753875110171684756982520509442842494113631478498737316718295661908692137664024664604253080861529475437222287281833295779688279002764980111268496615207599973969632753922882674451750266839020055866270614902862193856083024122443843312297406250222970679786305826768802446158572196997716991405231770055755517889043565262198103743678553093285694640979275146020002637410418273419592347230729283313773162628694526572164094321378133047582140651429284572642165335406871952045202600402273426511664683905816359470707235870786279622290656945120535990357781058935055088019828512045491721530318500861081785556379634495262429343433028652018260236632673471320361388109194242052269821942589236356722157127087774435191715080666162657450589129547537468359196870926925801206395220030453789388942979055077705998415868030600921167219296439284921386190437038438240327638638795152190732060120433925209597361732853763475675415808432201016945595225377983890379967024183622856980314227123626925780197360839379794398505322864176065533404543893862366862933611877669975675054571623348636780854673779346151289067832923812345293407481035467690885979504217946001863172246187513035467894096219731550201734476847764818197782161558060484908109556435925637441803477758775173112043706453430354750922879469691233517618196173024790422193624124356277517794135869174559079658807176950494123100525821317161060086027714679756410310937164701289893370764158412933545305622236963903155054685939992661135492958424649963712302797774327291126939901365974974860651120095257336427802715473604770519295432692259059812373301438452331644407160676289585056412355694287803124633965706898675493928927310770593200129305577215113947144239461184375330771105382339826412733052096470358570780885042319526828232785586924248022460531670575562919647139183313522032524682097457927153726919330332965947082450611302028348073123458145657913409373492074831838485169748114698886647544220546277157466954672945056034687677811887064303489148276658208943028829488307012815175719258328137849090998721213059933457756851833169668620211943029217624387152343954294330698445584583006858880469566181576088908110185810001807447084274955119718992695085135655645321882035375218290967021039215174917109778690062853016110881058992591691093594483501832963510832081197508098277394959143080229576692229531337232068063173568079857713241697562891601927369578639877091789132722199396389802103669668202510969957567260941232199181083740574372971074043184479651335766239304778208949480779496377210523177725182949258931663289633375076414266777724590607052967718986794411126113415089465325063608195123691228854274154021667709683835366343959624733004199966323681595957534622234889780016541668445008541026306713929091435989095634418467790375236841878022179973077322234496045832345533827706298341502672647671977437948318878395348904493013743128870491872330702316333671621946643243099624763105975542415835576992297699022331719183058597528971907745575716238082596677228728823808823622258241063528653491562086476563020790421996827847762024691931534437646430619075086185925049892401037365193185249186695551541347568176380174195788151790175637250394005014248115058941253091837034915756302182536664542349307625955717491098575418896180082326169527100994624280490819421414112071405856828910330223734696219221649391742818593063901596708267820795760379644842950130241808347017832922193720950165340165946024802306703855721053073421647669864501657317989147088807828423361199159500560362442388044229380466658857856791656067617320066657292598603333467656106891133251912999538046877723205220547348459817020386600506613887839521766437074054413924422139420918729706306754720013875415119800506479924569767295048703238595255594779656620401301003539130567155448932239249396013316321329630720639854061460640650298189111715415264601356899194424825626142242706314901921005025926446955336000486593452064635507659493037482495029145188655911657328690536310507646800877779939514025919920643143659776948711456172848132587190643220888362947888692256813178857460653582259901743273228334668439987592131224540387619165853928893686639701247755139175328213454961899141678262475113178228758978604618889664294439540466673336874555259622409373931089504753541910155540238424905568962309283702285199811529787272518697081340233208741014824645523120137426234527375435325346843538627583728090807894469850547647835986813308705942937897133226965862376659603275514824715668108491291877553793370038299355659393591747762255986743215098985971885450448464987988451249808613400458633409729153912682849745970973592209247175436839584875389927525843781722477106273137067568637299359389766080973552349566491871501253475399617354444827823830244407683507397473345437944508099961496328843530175526767568130769873232857563457520730087698555035275256983155406281442158218554122339128949395746579133275355242294322625415784967602120025037505880581121458150719584518141302741462412389650426624587050454853620453274256874226561339669186406770644538700651253238052649728525946884954443045541103101746221142011262590905419053722481967795815893169720851771207419590403165349337197665906792449329263624841416738599724863527313859478254223577016074634577093947499669934439220242215140901660788862988165725603080826382925584772083197935688956609455837118997182570435152296819041521144923129974067608252610916904309477394643308226727597133897152196637480691830609663648683978958098108033228787757349188048623464275383746980079527664219344486398376540733909252159415977009440505492931159205046133155746633171103289160711737095109791425319413000871253438941828047683146512198124976952739911278745393627534500952505088051233434757325735884119059933216157420084883674388504339348872134915120684712929533383986321154599922880486414951440795783143315101942031703570825073029175217485835674210986636456731908308974621234214415457192146119184005165572758272616924155014661079722880473537596622384909702375270075661785460070599944329247121615155036105786051491646627078826462250810604619251214329415031629946585694400556410914591943874813650727009802079193077795098053442117754776427844322719992529114493695936120593648352603569144219213315937608477599920296184935814129690763984607190856809522072613518211119537722051814860543370691312005906779080430999090011541499310933872421889978822911764228708254509865630746465568909383596392902186961134377710000863672216843445513821218172180261636335696634779840821497802771433929116359564489501127367555308230456335414502543723920424961061489967378708463106051622614031745007194579213932163647088936530108687335270529771165776429102916603221844507441668891611884465141840329866716104017158406610669808785571857947788527082635895972812595837490549913477594525623083037210634345674240969719690271984400071829057829442670612023773198612348205593185563927542044551001466872350799015217000622172933166415144755102486767811592441078915320835889512519043624940952553867355379282237210024132128499100518758028972055684797965343022207753173287244386567987909342863452151191112797330140617839822653853863030675886039193711712738310451354686793162913435391155382933344025355044795020714783650015759746818619359904372666179202824670762144882411279298694161985951747552825570816852648296499312908851425258812884622152517424196491298009628274554210279729159917197223235482816094569409713132372711644042750652046386178052341228227705245859835619307743610374005975779344274043797248403710838290876668915777209521037663592809703124985106430983877257261305171407666274677401813904570444821912870321761246480349173489595362623936378591427619706187485465564972333920071645531500233454407862167245227000070896918367150842126622819417423096754822781115012236202731806485577270286161961908729359178651286230643586390455220143641700877908262255687367058183974441942595346128689771874996154208224334504661261375048791519545107075595991713704245553674065605203769878013139389584156286149714875422169267472004254190085409067397497593811351980346087192586209383638231373283673258450391979025755952669898279731958101791398274175393779384845583461638923490057474228217089660750346288273307542534040374133015301802437089056445269096777066191607789002737446135920818610925751121944489349280306310569381752855146539968899947566564829040297130708599298205148145080119561207346156948774505457166119881042269297740546849805520582312209768418779147514752764640829942596462456263827748671005193256968700494734179109435211501473447189989611426261278906164380212519434914603632904870922470130249413796485820964688108495206006516833817761972737487553879022319529322170280158942218139437443641622682096079264636899158429271562721889361233194964045742968935023801715040077461828888324037491380958170722294584483398221030145916475448296582728972046726894664480305176811419133360749944278271447256239491803297274540557443086416169178481118303435759063937306426335141649469296502193901750289498021438418915560627311524779012256218617839727240830519649585373784948317962797552367761452882644607567501598027596976499162038561045138978990200106696870570467514766859983317059462760423863999525120902878610008599559641103083371821400673368253690409657291117442968899045002427372552068513033677646872726004774794515190618351972832695146674467431646389251140693468129134471778291888383726200174217674720079753773565148923781473023212638906237641708564689464178142860049689935743548006948959442754296560404370505301102349512202086564696840692498530236581724887275862562548257330997624047581208869419734402862042017531571973105620428110056968640032056807852762737130913715131906485245105014551918577965773608049824941924395829156365036289758589581987418305726887438326062529209067785740749094238538768935437549381622884438621770646274143013300971745004951294325246376776800368873927351985792313625836522092581236485278406859127259999519816649828440333522385518876945050143668954171739394948665064741208234210425254388645446073470047298051140407695926602777744981651217227294940189511739168772026994106834604626087585878120675005921234970455109079220076812053064678452168317440655191027752098659589260305214663394460650993379620021539779254019626623333803348229145460670318664185423753968489717751311453511651398730503227853589369028638904524796967722133206429505834351994428702815630800901047213661741867243666872052714575809558675153622777097056024735957455005140378117980736623687352020064141211876539967213001970849010518017280257913712734356479368906744691554548460862908550800502641759514015144983776557973464131142251569907968065847740653368866671679405597402445100947928349632805278739336113836916982645897446297141892088986424884379421749100427113205059440829417194673452699056927939437975165444390971368267930986707497874578764827562707503902777657416804261908817363593053459053303187994983538928082911489354862638640101868653397660036256123162174115083118879538466817677323739508773897877348569477847892393201762673442963981567426448534074122705742172532829453098309001722728178575401141933641379925269745580575078998829788949383064799108777411637383870936478532025590965150732484877509762312727437096551581686935114419874419965618400053436434660696170075055164081895426991236324212844856688629447825069935564126279141057236364824227211559239794107350611574480667260862378627797628055241195773628573514403241527323123269981502870818567118243770460908622272134413207350710397910873381861165809732824491068691415964161398690551266612954956434744909601001189801695568988183274864742387346819106669122632478023994799155797833269197692437577132104877932484106410632704541763090965911125288533989955867730875673502820766967334967843803738752768548741040847184332866232751115737152278955734399153043026003339755287428981073500786218433248853785849859742533857775095589481006896357585200258181722767120990555529026694752902966498641682145618599828293072844419927834888077475392984826494294787706014928001721605980836562159812124496806716664378772368720047281271028849053093348634938453309291837186260692983732729893167047315317075860980685589616220522258422786456359251772435050159490756786135393988486645967751824845450079222434218919745066372606295910366255585978232350987283954247376879981591428417849165704255076665038667400252768069869415558419110557630165980489747838543608123492530844382366829296255170472685090761179680686558482686732237446607714739527952847279269137997979661684073906038774764333848788288158972062094412554017983416572070659759037818347622221402746710056561593870167163030131674671641197855797426996099126321029298132418626921194667282184879485745423034946446649108169241406325980835687530362301448064113933989059217773912526982288187229216711904991404741255248394823473488199397523977395686525958083222323167574050241703125959706486268949165751266144025538776827401048333715754161414574100605445500399989500645340170300498620513740681852870490804624661962133641600005265311927519604504175013541665288599039200835040978926868553624439841911870100857677372482806443955010993799082717225280000836703558496304491096567719611218166151067035936927081195037094235040697444298911393689101047799773609064757554257536010127015765716919058156261813301984729306896268321138723036243107953485790713358183019315813452289432118494775122892171862624626406125518763729764513230831306090272070514855324084716183665701786377544499335758583009888848836042182521773934270443309709812392192851954378470684794583805388211736804182825761646828538110511196093821529947235172008006833818700679482081600646719699904687993319739394257208484468597463401523196184082479109670502960523011384394846202825707361746921931225765837643902367771187563764285297306941352963083281425872235190435186269969458591124609684714548990849641983297921757766755310099722222299864975172295777004849775289344183785269452373856037971941603276444138984947290730508842036865154165840616444607476581065242271459981840306492842683050646180330792497572721525852681223544167061954404152678040877909168005278363542322896543411757954972546721440395675799477655987418054437665597277605171828629559089820030869134497196642368266519646443458146534806052871009375443374227382647439313654284213760996524841698926012500308622224482882490010083306984309890929905164102318061729459027197763786481586093116558328894122860334992056081939724037192171986427695016575089254889970220903225845067756707260682874613481987182874309372579207208546599252151325954187533330305324251120551842127763288775640208535515442673386469145205262806505980008734924647189695001642675968283495434244429819904938514178221845865197202911330851233555636315226483766251248021501717044437197004260781121989002297608838440417274347400390660738583023225786411530853380027943999462099716265721312899817323822754157371593584041842066140955629555863224751060355104774979540217727447582356093521355092819466882269537669519731889900045308444068556122428146827442753951728702606552739934768571753676833562118046804055367491880405240731561229726575122030644055944210029300423380691952165851866015708739529874693948875348985960091095612572662370734860618707904132996482015545457489160996461350766217684894820256404948906321585708593075424085381644125833268007531719741063367788469140268166429877243854005934116141989439535712313334486121755462054155959700924160290366401063739738437925648612912369719591809292724833661078505763687394803415666563108093115308565558524449788818177795797228709148878878798425139647275856334548778363800896517233284392612897156650554505577224745882544410099796557484229434334723318936891960847712766377426866933487325514732735590323966776022355153929069267627888580995719028237818079704167135174826534136876914247976490460557329721299146536843425630252518440378710730811972878147623711019971923835745132242820363700626149491887099692387398998616578724162411763975728794474074722353115840845090695538049471730475051006733240858451479978879009795510977143705084230929202394758199354553664655543891835546887848556288910471472228347931520917161170269435821849551108296459046444371362615967392640826556193893569970362730928959296618860648758418172457082503862865726996388267832066405400480957329961361389134462610060831303585723600100286318949053838021569598717077903718162340636869393148240833247010544244518398236639351525477134063739599917795355610933431715731342118718614936723538057621983059890265966104789492938788241046887069272801946358475341366402563348871525170819607980562230738609457981657913542942627742025627377732197264531385185659929818622129205232198609675208791469119520339043505447320931387679654565784083054458549534440736044424668011789174529498672398124998903704224844639076861677388956044096828668313132621006727144066203853637830572676057852849064415973737335699137331365998321126590024196813749982917350597733600781639720479247724206643181341194863357508520885598103819661209997034764597614483105361105541539572379051914146405957769994295087682395514446622838523941728099556311293116240960708874636756934547902064516449992937713908860603296172127000665251124182883857040984887076804422508522544707840201836450736987287130334333427188044848380580706511677608384067402498568632050526841326453622156447028377623748616613470948055014056828677778899976229856887187491119376959383359791387670505622752297124130521327126545004895812460358248139630033735782461854384344846139105305653734294766774706807692624055277936544164625718389728200359090559329713219082191228605694612041076840167552663477734403344174728406123970440784736603385212810623863671985676852013734624224500329977063630624592866696470305963464628938198228727279011164976966588965139914204466839404945143538814040165478533505588274419702513507311192084627564567293404097351341589356952723104685575051146688056659096632830555181653614434758378455585190581292876428247866409621546680991887772458876875829932616773653576029740121264378374695189740319828253383734558772852048084094128669812805412860159529005057006689034886160470763693479370558892356287176896182633930890740975024749230549756954535735525137986016388106778504441625164536281127829853202847899091578035216687375920020179843631216804232156134823415541776222577432392059490332745074258578479366804318190815257111051567549223491520059875281462587272053325487799881083708045855766786655618869927422675204057484156059998792225911668734001532478512333437099323147034007880974047339057837080609599102962711918437137987718740472073014251023670742483580904354514984352486687002715335256482645407580765436336660151211377994236410560084595467428715326677730820567892191100933701694072160613869685941925745594258724884090232903006014224309770223772772203964141101127650039963628757188936634770692765063704268499832555788186664218405752072458532935916847731091270301171168845190875523250546813343888197492169881029764173148774640936223981083588524842760752936717503516757548786016697083793930761915558014641835098280458075172045314335380268578242377646250968656982927085840141831134075639312701176467409905038034524834084471775042653925020194429743111738681085031946259029693375189249621720629050826991762020009028003419011479348666425043140938041807966081296666885723487629510158616274890310556655068671993939255974441687753656265445717554269909459516345875146493827778887013906891944421052039602120600174466357834543291044904770691944415735662374075120081781895697727781392570574848266940928931188218839344991524668755167017780001332837370988495098053976021219783492194592222573462908828801164212766538668499050253568437310928252745234957386881740712779020315054956268043629266221255344816535110687970689298061755046839658725845931682019105402699359541910551383950743722456281264895205707456914528797596446983600111199454103105685383115660630490486167466472436849546608447407409577919130313613178857999734518251033222090676350542472402926304267104102861906954449746291739548777627186270127844794848099579520890692566369597487237033185220026874347268785127781496857285074740220168743155182894103640434555131543223231485873304592041101764388256530829019915269644287030095573987724427348898401815218559644348818858087011187447760130240133016449478073308834311826056700707181563315017534923417508727759897475788731906199723127053541546568979900847028821973064495895498353591726282875407503385641194624604002407261577376924310296682297652027392083392674643015974642503384691188112742530163895664965697694294301462821432540602731084835927817514142888554926759615813453024376264216286515530560411355264780762277653761451816286279898935266331063043352287372824388241409255151225380685969194608821691459033816367696019992376787003212577973578513928075981147509754244253315918540261611178014750665052688866836465099763798414940213236789193502982268985688938443730020118059022406161932124958260100791712975860578125147766407079609928929651042930389100606773617915817077496645461501442837904986166710910533233122389793285824263637858438140229186398387283329809985202265925582569204392150200111887213185160559633494550725873802935357499225149228397420268491146668138002240444612081635152498219474667943819635215661986764505996806815863210033922774691632957360574536100256915335025282539615811153697566935461730132037270047127561374188659089358743521523654214116413990915735294801445775018568186283315062576882486737840158930638213944067295411390067896033097851867959645062059898213682840181707133075253537603093011933893412080217714659003466429596065649729962583658050767411704103618940355289923564328608326729571304290072545778037587034886123822760626788851511116815222566370997173171330572754010516038748736926113904915427833769910234904217184308446095486294887956287987625087449841030121405412574939868951403824796196629537210644574955282862195010487886598665699263859053770391076601769406782375876904701228853295765647338196011278559091086303129687098145314344223689466054665814241361555074715189786120740386344334298223734657643493290286238595369112075512105776070578855480504588481744209195420498381831759332347879080403508178689821254995198814557037395961141253678401135890564438405469941632671602312931144926498913637910332104007302010460961704444065639255849993836216469635760156217164543734984670869497142252406594170610909716649869618481651274954458832219641543278065697630757818146156116715335386334169723262237809323657610582489042623304321002520818538085897676143027082180619848189682636589254313659642852814573780746420593275608097674781264243260335157483922175501885367942473484060432270871177143822649160756027823577669013900574780496177722054967640252719523699999687406360079614060880181502319677551111057354713712044134030597991091046147579252370320084769305529875586465506268342545865501163890806291272031834676298432776362796908716093019842315616075080130823467692085135870296560994766453242209587723801460010609716904242207666249983534045588617139808531175761558950028013743677937182502833709483571444203221688446884666489137001999744637229508459841264865315205132072283568594625753667874537649155814049824073019560215907856488719287472797513177097208760337890265491742017189931441993915664435764797885101843267899978467640623511919495279257376350374068565680998138065829346369856121151506619004412425887077623546091838760072641512318402459271063473336299005966776389596739561208493761392019523401103765941180557821040641110204207543908822961326429785471564147947925322049106727699633562883687138668045433698635406584113034929273988940850788357031611906347522775233712839068946622277994745091256686530408467348299301871373183622319266294785542051726770124464321179410033397936282161616567041143212977044134333853609847865784920933925417174829832315406602558246465077138424687564292653976496932252454613503258348597392704806522828517114164094545818615600361939009076987700915377380410375234320464757149132529390146600292039885223083993830135754367244115710792852941227592958057648583859225960404094502274702111082556317082970748219904031950309260721631163409189808397207247711435332596928596319805654542127996175362409073592698968131951783710087619673994843757298055867356813178898789765369750200131127037497456153658458858333389363235726119215324216081338734802572641741725371074062753320362984020084194290804580307568827677632503773052232614466535035568290421904186116991948373308077000281778622291774020160806013728938431332858779139975040628972607800845180913643707721312715244399394764195943301190843060406450902875907337761333160421760736815765210048100011067030153137742047660767629907215725568467944083073694492996201104551222525513129270480022608219001994868387320114308896093514945951601975229323489165665221474717953272745968393365906835262728699586131210518748506957254917186044494695136847968252091914444506314124831356150685881279654378926369767732264964430970138310556031740952862833588167846777147723661241074005888862326921834132848358482350280615858747981986013047204807685176550056410549655828626263393085352599683516840150417296187537305863432625851794786025021455224217126940312863873054632231294645172446044663036797948411524523481086847574160999229863936452690744962344490402132202194616721245095229116377318785871746756322489487735366244243706143616501370255579500197133816608965236654017962944671987774679749170788937517148361077514456908342563798963390850581031601892426751990096218427048920996562892903942698646924617227846833887781419067454849117307606569076434417886269641452877243128487431337166360916020243406086120144918236130150265823175899186411077993416871244929650163920588692173840650346886524557993929791562489959837095488992096618514610318408918347434909709875344854206547558556482335617340193669619720024545663091574055358299304545527750930071330679403010298322989360967042097754278599611935320198168020079217359232937730638113641896616823546137877406304482560031268406157736672184696749378146353738516350345323779773190175132919790604166365645616024614162635655400211235971539323262218344921171390899449809268331580471130226016066534913740144399146421817122018018675763077177983904261464381796788244898558620045436999409206370595879589242564752260864176211617875663348691923978457317808288023791098429074204082350799600530683637719525250450836655976310165877451337399332809032303552016901906467997555315647651475247234900476350312245678827937535132406565871422791740902543708244795905003432586612028452971473882872056196121551539853085567577396943213685665550655373556460598844417215980682608237536103800877160622701574124352127887532266124194461440646690493452357394476086067760265850862649381649824262807373742597006962872175805465196298699642449084717800684750452259678719617986590002529162423965313137620605901978238787942690728059106934645076393511273042098515102817858081405452502050644012442805813365746256685214527675856160961484515316614820485701063653071929002486438135986615815635807763269868163282715845316391914284594536676878872963012626482103720458784608975174001574688666080951112975506150417599039563154254076440620101021828829231248459877099534120468470206826685039194790736197871142265799022724942383032558666887734399401140984727290055611373148881174573564426764816353949265937225152011766653631219469337067058490889990997664373871223433303821754125641060840477382680561006776970964140893048972895408877558472907528839162990917278840613076028632612072852921255536244472685320662779944002796591250054851150309756311154233772188026909920299873269814836420415588516490948669328901489176031230834182980724941066019130476321377609236922414873431331053610874153586674451563635239894432145427133809334093190313140702692099638125544864194442666291814493130640500776340016785957524208041177604418349361676081530483092151318312584872457953510496548885894888721460731035382604893443932761429839911926871375171002050639418562351939031181756648886763698929695651720174404407195723537693406555753818461179584757046394230235533585417003877323511405943961259330895509450292090460333368775788412006656537024687339490257723358415515230083252056859651009247696838899649931817679237079858365388514768431060008228116837428648992062653530759079014968200661825783938604228693977180420908495765153996118087016638701568688268682983228555572288852378336330169926631749823741310164341745477840909584413687462929730578878211265268680070740930033458136787811229908956852247684650450293059863099455534717286411291545363679378875571272553109857087125875067983818905108698968468688160625689785480749673245947203289429776578362173099013057965659456246862001327259458250629354508775374569690908543575226656238117521734516150625823684437705530783102235273054767873852487402292841879120134850247096034779689294190704116355873630150635262986182088717491978570219020187826066387405301448397557336255315183869656625235294882395871241602337217718552669217475719475359949504799474364963378874433150535885468306102299189147388636745585195795644920787114914354480035675246391821204581784233337304232893184764014271512583189123754568762707973878945655861025710098933372334442181377049468141736940246444326058693751803908086678304018054025549256013063645203544175962736073324605094377345413925040852570618227305406981150386286124634468940052089272611721433921113461761893900499124437038351842187352627361035556726595214652724049521565134999974382765840881521574489029545257589862330654544026944679773460644171773142103369831604062989345897851891785848582748302183819357173184388645139574814980990074511555428151895479397606862989645708336460419040737846208003191802913622066813403940096295394916817000356613495443669562850103454618527368187685414514182703210821978998817653795242313784747094973083620349672599166151377124816554564426358362073008045156263760293981788965639157163015560622355835500172951624668063305115310118153128204250041460549923212844025443209623546743837849102335525812381801180999284544944418875109319808315065050655915781061355702820551129708073723359687368267837247505237326006854663136134315238347004436520392301985210911060832411023894986296713004791069768072404742330319018498114695112385641380394164184851381676594545264206082529308574500309313348935210401578030470727765674130789428078131370900459221548994519746735689357851025603264599265781511341734556226127976464508459124624580420461935208566949983840027309918848881836459221631312032674989585162743617092027151288332517561636918968775741335582763976997449752178463865206610815615620410198861840847503863516384718145459823612713885808200492830387518550403851439955086067408367761223944116437047592878281427274352491322426529698526659887580893632355595362547566689483545754812882629253680422283284116530977612538477053068565661961508509032988417803805470832352986226305947989935694402231524843795354578184219791633011877894825984838493248245206536229947388227668249111882290080203630412674959881936244249062146410244314809007636567734311836221883667661808418738754619898397452967951320703788338343890723420519950297258972189966221802166982716697963393841414342690693243331356487692064990258732274959740685626466626177549940871999905715227160725860040236200104925899596907584087332996368247326345654959805728808090789180173965826963549626130259572191497855114081871676222932719683995574590889994649786681499945876056356414085400228103666044115521991062669545009532387890842551598306253932873455145029158788542943119008798250718860311018518486541038768898671757712050635050533922383050146217398316473502718745299610506500817731442249602643876445997258224054351126289701876520526441761353743874940656246307231132794960776628141459325823550923215589263942868505438293532092933524330062061042132234272872186999147746301236571462021760537097339543472776943108390954894173273550680646923236958054677773823110723331049534699498962976074631320748248033920944327709208408917781434447408291093560375559402867356132913447985291533500839782949597323222369434287363070523706081272069716103714033183814239106315653123545452348698713763072518418261071450775530999180679207524002417083092446532109925348061786223564607400248980738733988147612527838008476534696288424913397498112051119669802196566109789614096624678535389065114019027666259153173530651587926325760588006305558864093443372312306678461703562701613209659896558848800586159762617839852683057913652462667652136458925632535136658500184278115220887432471589444604421406639958105600188815671848159760260677602319446209534793927396369197143135315312377643245511116172604654363699467558916972765061713859807688864390597847849063659641328996523818578290849003414492987457126307282087114927781711896604381847582282493862282824736658567058270908592336519579196289178290825690903559928002831520552248012417596958975407094957563901739254243206337682944619796979211086392387644413751626238762114026859813156370457777420939172177178392751537806694912268448475052639386862235449350281109999940977910905847569784781796141745691149858963133419630226785411738402995796904345686397313345452429891830787738580389637330313640203167011849588255403351974820528764543939366013442846828739227772705470026135311027935485874146079221912549649473046163503072572597136718265911934310167883591855690920471266733359792961359483020903081891119296642668072550078574262976082592334702580084542178804819578254350481386362060617797098456273870707773701293825839908575336829641358247807455800763870234217012879279919841778609520225976761957734677127885989616708238895572125569791070922040463502367776867229984387425239467717211875803964193508531228342656451083720294584795866749012634669371208516799687361284606536520216477549220560858256073748319122658900061770185159006917162229366162342706794745492201294935594680153941151731812758280267468729452373046210339212683226712020064835068223531709171349326828266602654683667808245307995218319268519841290172330553424574337281147036988882689736687112178823253507469546438232354913275189074342207615632408106718305560865819396532768377551152525743069704518884512148860162057036494498961347920223462636497643044518523817610298072535800136013993589237219497551350661042523074724869934453800340091011517064700677109610534465539905894841461223593832930613104711721726195206778114082246020059250385591025163415140935507412058517975573707577029715681912191424562754576719076467032743286725140458903749438154221886238091222161147140838660791769623629580735040537997097703251700487664867950189829426868148377372665453314778153462703061083744223528855263707010205647329707599659464543992548002822193670074325569964249176115147119063742110176438272231007768916302630533815648160492516096740004213415564038007423797261439742834486940403589335596829400669921039796529921805819388743238716593310321632785347944589417845885249969839963579640359763677006926397352508172423451041765520904329802305331655725146133600101206832014181102342613874192811242851739041133724434611108387565216269612434650095741391775154256636109909892319074070658481448142820501500584663175904747243922904004361464137906454539470922255742469230733162690024855182610966864968739631075962364162484446004457138747194739461653746103722296079252597929173222774212945289245662789681311401596567713167456485111281136536182733806372351113774744527875753776196287931987012953090564589959084392501056268478339248540156078821189868365164221442403579979401520999195913880385450698029579802195754651891923214053794107001376248626083013693884575507963556933900826117171183720809922981421818423828513470192992396529669953144896831392520739442350393535240796131875107542859788604621369754376741388919535206931914977103365022463029852585653911676053045112018675059327046446501518069992514481999234885222049109699672637253526089190163313736097319155332935429665776809481873036651470140386401303096948796809697591953793594000554454072379261353897105907245807447048477693056780780445194541606345353233902936133405335073635545094072722463817394266989909601166091395236945262243694773917375698016341612984686792326616633990191696075561355234162317986536223526352690325514697484738611352407338664880537745976171568011026546458003048555643754568912539034587054171716681353502648390771625213231915858177319344183796667958584886160551441951990857533776701865051064623281444627940537033799232214614910436736600033494819201658618870681099194379813421378191895255918106508776979346308349716457405695919554416019666254230759315234369204514079309349918915305407721413284899688286534427743690345454339098582960974966717513431851263339669714783942992247413469001345512275047148726149196086772296303326999180377111703302725316680425848748106845281114760935008923153356928407398111118278732184316207523249408181752102767739491362192383346694950924059686021407029849078152431780789951705998842954342578676099417948682417859186312099358843632149492672121156715686020034097650911047908294502700105650660883755956492231138040339427039169756425629253379069746578972644723336628938819856531321688676343643671432400445798485263850925270540914629132348458129887616909697025639617955254146392682830077310978969065237173437985611464173331482476490662620891929944512391973329141513058583380792106082632203545802521196341270626867336448590157314279655881425304840710082630374088824017083188118196493636663089770220589451356878165047513592281979593114205743824764991455066094340908384944497112260173759449157515071440819262983767572918184129518861202882929344385743507151998505535257813247128015229585944872677252247712963796902912203201889387484218602084228372049667802213989358202128562167327068693551341713882509636275853027799179690879530262839915025737683771603083624401853763544974655370022775351484325761260137610007647607677552266874226131580688757954329379403750298422476087161706481158080367343471973952728065853679350107656025634455720696606447443429263780557601210935520738699735591396187544115352235596312458825827049176034893761235807788418386845177985461241908257736890877787822140154111073042396679533873563041353732003973764145175854782994771985398700681292813722595614720746808862692651208308918037065306567962634786826045180796178517798617339704272102409685400504969641358526082295663888830321325415261886852665565149073435389987627375321650334440047849775061138799102872065086895072942906708279887627543407382637132761467560622148652723717532531635609002441984417483088964182198938994617330178411874910338121769758143889610882253601492683266380852106708014625005377700046850398888427960411722866499315333798653359736638276205651058618121518626417139103974921743140128374579594941553965523916214975887436343677262785457229636654055860612024760058509316576645486525195739039566806642484764879269379996405538859389213512087132670067343564251200213916256003061456710687868757054483395070164412689160002183947568453088473832832783628576903358727709344526443472852392839004959984235720573736683110296378666691617243881284968956573734802078234832365862176053330916911445199465830540547188788650364051841333775984087712177563481869118625600915733287913320768593896003961730157846686001241393595962826248204064259965291096473535297598503446054491402501740829816828325578560527969002510903944024529701299862643535850322179021851565934997336475948154788951026109425774305186087247452418619534239099853745693910993099641338113639823892589913411836659169841869927734867498567794716417663596602510832086168857664802894118116299127241227736379473071043989678566155416174034211652935956661841719280357130324389722561350244339807274729697446773638037658482979710831665732528447386492003981989590852719814171022504514513371232246845408146705312728286378782285966017641430528233705125368597326146770972058587007209887388983748212507440596375669338811169328466853853988360079444880410492797133998145681638764300443963713567166402009435065376719906494964925476964040864725714305522265461113896258014568896721648348986977008851153567994968808337875399231889008101573871967929936268939952761156611652026626770274640997656786715327772119941707553591321005316316918882769059925203702283758707709035506271355233436414058641546265266210685032872653094262276581753659640770626606813381886261403588191483201922062034776112371169849785176370427499871977466843544596732672062966602981147022198630626593352105978360117858501704334455703890562387313151613055381196809842804754501971216475809385424331915095169215816644656733766928924839256232032026466530060466733506680738319249660562245980321647523970946710654355275261495099947215495502296995688127758657327959300697613211879423852339505810466927656454249215435072444835573087447504224104698283009198382327809411008927846037179574865545363345363317307870515121951378997818411447053137088741547766377531292362360450959227044922445677886166420585523256477445122340157351090800686237628747519395163424608838134992236271473319630307632754723958785070828435933666744349107422003101460730440381574221540978448214959571275683942859064465917086948476125176626114398598534469181794698383817153540886162955983896903158835370036841934246476184055856010264531212094320274659927737287982221486755539196972576282402813585105414241800981237017473709684467643537604128330937141565998965270697494454497186419905842962584289083600926575660382813129618849766351854288731968193246482534179552951817719292973822060893755026466995327143099327991531022792272300521022086744819604709570781480967348028380181650176102487233721088258883568247421912184368401115931135756367155500055989577712060005955708437001369238520188754365196444811969470104010988018543709274915254638528974544429383839901496529744545789878811823759851686493295365789829199981090579523709018531836705072220622116397887063317088624376278693549014274791778805458805010037365273519494842982147332522353692549213714468453738251354668254566393099740353390344635530331010634084765184748463534051271833983304068957902694778903533401748473984881980890420788065065599948500366173959760587105435119089907444781472066886013809667140631247788082662545603264137775741971103969318292690525117833861224082694704182065572450641451706450034682234631306402602169147487119511807661185879286571401866610511620293051901888631616842187154312495321086146374522522590272338644885674907045358304557089936097364479734200596861922752477317126566752152450784631222240261478354586310251367102710399700092314426694832324507367688767225828866162917624723636493362559960227786381724199793997417037408713550101320713379532761374233961871051872203415510365227950753269020766482151804745898982524829218337679692255896038620758056404226932585279559536331627153716298935229842854539320214934704034928484716421992999011141389658737753995444811059945679769849626231758888151323766139678329820304453200229911980142203494106252418921122890778067175587598312116509503084422863057998017137963940150658081777220169844787711728663618599821379670743675417033195141202347715009765346339254315115399542559199959598725826421546392775280921103124540542492906216694525030949553380422568121105276269762943330038401523676900291742568822263216598564167571087939158934377333686291254431250726044871853164697076702784896044235131301840847709645018627727515172319481232005934849228310281646929986012342990370414969453263771968848928971610686851833131511515799299995205287066203983167838142898049373990421896150507272125841695044900991567795703750641965449084167176782092160268347871466352564932076330422934761037631650489437512752358591368800444153312880758767013541564633805602206016219268505488823414920659856813923255047694413882236424140090836668265245627419911754623489361206165542264465766974356768558153531440638966413662800558447350414352081868816549333100390013719245558564899022020011994665396716459907188982768142816772978161617451332685692954682308968196743124233207574413942581649410752060485737196604742167397237534403614523967510526999514471443709946531112125349069318827484433608011757102041157367264149791124199337811711820257816365389507450370491156279321101044367851023918971298798862800040073180893798357869613905231959671049092844336831194173511990033616423321707339424248301213627320479659925410096921554676720295169633057865575986605460791989135334130841237837084797883828307759343030053014267890918437417205702849150620237656568494687538944688812703308044396340348076802488798131083028068890608409828245952545573016182148861429636864173766191380992790495097668586861407389357898934735495631652313890647180397933256824141331072710753940478979643193132651244928310746112627037229607309188037622330939664469840881385475989910530863949600606775622779776851966899492906361394204918691858105218438856503371575949043268040069186827391817201042439638568378831093284116432804018038206792836892129095813465397988681598252977102814386135114348571332061193539154114812238050012389211600929660882615991604187299910810077029517236655122011406965771437602564756718564256965752915634684070487294271795925917046537650373122459697862287349206916656147000930464248196687900269267704170671045302042942235279564096832149083315279512430514744120553756270159959327833293768729304752659904377071911218489871793125978106679848499760210598785713295694052956142998249889880658761463297698951038012309228110409293449962325211400283370367499005122011663966988364511678201024684437518630740980054436561694213103010397700596827621030225959864199472042579325786862990757707948655040039679198630917385007708258175805967239489036522138693564280277375674773479979113746688842849253231495669471699899672537805055672194776562731099889957905148892156557416588183557285158793575957545297340413676918103773885153518923565323413735024234415087499866984744551981263017968409026474005303290774285526911499119310955660089751364235291033980608223268266131924768761139527332347467242015691724823069557047266869134302520616028507790515036959277161064354766721991896873643576160037610658785371876879560394341615990193064310194277336530709733006042102181828768898543876714781111796351642995684479354635226720619905169787318549538682490645126310416538419612928976123978854772200255319921202487566190559772860368275430066535108969883794063124624715686823163570538964889654428349376970724125570033361468120525409101435128068269418907105575288542652836149789108276890959121295509987526723664682421995378485195529401096295989537611638063785548529134390062385375567937908149610931930780573884973886107238524638487772198186829444609198732532929604149415395590717110540828519628402880849569905663307130602196403118422038841507592328767600984202855821894718404712540698348854237621224063232490749844336748144709895009337139796252083137621884107159232673727278331177063723851240470656008228541267901242100797081344180198546098520662600590069003280024761615582814489603141806595875163900104232525008085784707172012726601531220615189545883428496111651111002131267699184791565866036862186567962685419283258298530139370943000503633600785315086221633772552559966926874311312100814416212008069955805193088434464100306617994876826667044035067017525125008282898569488996304721174473787012493912553730607667450842127379067246603331302304858064972735729066926887120246783480452594182131697125210200785957303452548219823255208158955784419242900113848221594879775961352781802621572196319237587486670979371536690723702450537596559014356034398543910458083557652170813771062525405975235069434269102520438707116061019495775810958927532447134099654629915349936829225552023737539892310216773737031287269773585096650943819048239959619265297054827466617161800598104151037938284612549075562577524095732046696690520065254146495120867285732143047010777701350132116038916841719736371020694134117132146156847277468469240513867424335411557730351473372663833521264027858892936465185664403634597744732193125707521861078314122115423338090596320009057835660498843791160090971059775407464483119260539516180836341149097853204700489901137939193187991308832987093632034828865732150119302835271835595889033480989013969459936282289845950995483579184879101120009022088154125940621422729755387030052200260716382810483792737226582837288072689253627757743587051763208918608572697580954405915300681786141895731073786498841368523558005696046603107779264255343537462833675777818303790950109269008473541215879029590834329467267374762814630116247544874095372707204116319144199978188676141636916012525729302396168166271765107598342466825946230132444902053749328378889513988368741067484006052835131983191646350586953978792828581634220157482632536686827832350444325341281514986336886214224670522805759037946282426616544796986156017541558882481280804965512560665344751066882929996122014547997091333911156444473942293503080908912383788564644593528232746689816852954127518448595012470914027329369219261100964223591699619488050362401600448292722610030382168381951238750997823350124982944554409937685461821685679865298069850838555726755941845247519136570727986237208387586345294961571498677054379581601542308627406207898853916536612081853305740383875581484146117360004658898470874717169955250255115130392869104596312493097924833115722961813311194206468201920002270406171623457495265044204318719303778945771201774346250483518423590110274448108032053933495641499086472953067211152957668610828162744546246472430868798260215681802891622596725287630654840906903840256648815727548759337886067464995649882645428231785247052475407230260817181125341626954624126593860049160496803172444981218858051725744196981527768173594439629798677173664095341627113443361288629099688193613749015777788432180087195233915985943092802746441221436307456050584743022350104462321121812620727243358810690314815736466146327344064730797467436662599750683976070258916930885681541223478265352723679248264414970570479673598708431347712776216623858859894772269524635196432345399102701578120000722324519662919195764683901085257670261245670198130016606507052649834383919832863274821422221253530789045447291351345520725287983502992428861800959178132298189774963861010338232084435263279436899390498219377981237097117044260008598598026662389247021692278842877106873681231998639994313748874140250731109514861629822251869803108314130983672401286725556966922531134751260393019556459874439191249727811836803813161300082351113061468934300812719892639044495503350272471828489729115334905605787313334110859219725610452317371202513534585386285906078975668979746992425557409420977129859593924951625593928348988273469763010768662236910380441036826101195666269114850409703448437128098753253173192335828017002328325818845510490634365988473013463106112433349551227305092685405764860788944685924114631307292715198339739589333295833772977373444558038660122275809010672188862560338372019433557773861780314796081529825387159392809854258326231409375069294517059904400976388004736880682896553457869692225537338114246182502432102224591775076779405622255438398306798481512208758730001970063929139100477253319829323575581660145042458415463572778787861738539235832740276206890936885223070252994187176981388727825285676879260602325607819224519447972265062382696692351920644634506724533301199476116455540402908572785381303509550566133038916507834812156730210906473035081824668254955994147512715774580819704427894763681074890860195719265893796402602341269977490720171085617116408558685112618265034458729859863743764766916370452181747373860680205974119131459434997442801429722899264176246512997461866041948616820067655770471476602359980899908357751032666785102749979051677749130040910837526266122166050244440626070778472066176079204069695162895727684280753191513637866117543575118068040823918624589177733407629810855617438021172065758983232529877496095001671467139116080634052491022476914304054509113575527953349587495834256146228503486323329177325691838660237387051685979432349739372269015687173076234609398294768746089323128021946186734237541945592308874432317672988392962372324798093530870080290758013024763350311764768077229385248046029232716720862352121226123790171768633077968423179409000770180387469254479557127207033565522439318936081047128372642194691186117658662772954462510761629923067521882267520810202050141009009217834476703662038394455020844402088408260945345627386188776373142931828678777752979454364662764301368795231849070286202892322033324294474051268273757449560274726589984181393700353363760339768868137392250879038132271962711170328997706111095078155842134440492671166681276839456256056945674659896525749390067332057842734400650826106132198548300287071677500373763225849340282894025646998054328644301308193277503473880438009123886104465709029597265757930169588195915658027327655552747551835602820182618927922992940076731589714089804791662647203957466897290984031550346783809293786770676519018317263834392397189815561987165846659161560003700243388357856184681817261128434834562680410548264260743275570152757221418356126868549926020281251352979057656330537989720391018425409941028456190645082612985710120590619575475272610888662147108687466114741070085456228482502434133771875132265727767796036214375543818787947551939901351854548221646888836645207463819516521724675237497615728556884953019712695068597895388127694389695819478143919595026307403909430566970917544955523562044550340220180954197727489391072169643965696905567921512552937227820920694597397078023338141250855860141030669437973251067444078342566193742409472487426500689374083162504979525538290545758867444347292632471481469365179529353606580299061235231078835998939861723683588638230731141275455911612645820444299033345466565938839283570787104419281397922822356341003502154992167657440825253459049888712267123484931773528651310988499205716281102511877580255734652482330358794711037425413210503824843467091206149374684050395053675410634593596729602281186172500545596429719555429364909450915555586217410626537407924364146898926919494762361200719876178909774996646190185401178196250814510288498363599419817516471326269642682342097125079995841908147163097479132283453091338391619535956883957967703585851011061207250930761994209500051806136367562162125366128832611686467861708727078784982532986739605533643907905947700086031332270151027189128037366929211802582215005694456224699549550065524281832144517261007440319136437130178265315159209084122999800494125560362685732501162964101135714510505234485323824838786786102696119925197803490767592891543490380267836485114966185885635615520029692535956858195747758364286232411667039903479169435561236613968028878387430846711610569131558370401525440052882470012732522988731990305070305370690875069910913271784475052672063357286367843638205064886305620227630399590083251590698103706627037910820344311846529508603145903958771581966098705459595716018742655137404483921877262685495620716026661477910049560910899179889400844158479633743352749188455610423239281904031013864258954754890486581408500537989031327838655634303668032332803997635229701359208119822128545268714594992541409682586459270967300654273356527178878077781897554856927558869964786747020537250294046219376750272498421110573705415767348442163347019617494455079776800906322945715262936753242747992424443104898860037041599512585173488399219278031623533695105807046569261894176518273033288260236159376349078523947196982408323224731453946397790480982579939704130700304047967292517408491108493859036931228895869946729587111299797465752209263463448320154950679809481365992261804833513887216600423918272625117529106871663946763882285328137716338305045333148922677279170178443912635517713398523571085996287322486383926558276236823229957079151397014989323952913793244242497787768512907031192567995560170923616671450452053048332487747393370785066559594360752841097626194770525506070013108260372999794112508954454684843637724342996699165876267117220840506259079463154883526503642460763421589261138330434111117014246723314385943711901805715355772550472384929040937688014395527367242424186744009497134826654470421107068073300211277706088108827770113089781009346709042057087926395879788107417098350755206893990502251485598662093128182055015627531963868613794159904488375160763746988695572162575482343843767996514616795618216120091841339006723291479570726876221732406717215507213184613204073971064905725984339078449461531812347120650236057740388299543914926744852297228904939067211791084363372244657740136830469949450813625453584080636153049368211326422787477633363732709346669957725188045442494226635995266692025608702797393895089568160283517128167815428575664877937033674198719941281516361488383747309664462735398206886169864938509426631404892963342814336723595902226835779784254491865951422255110919168091940576846845664995556056224606697789920663288114222350401153418271751639627103093412505680277851647791388975128564962142896653423740123946289319343155030333977046958264965990334993164791659813580569216116365381375028291842217674785805950538611719748299273894235061223336756497633906939120362324265532176272759764970257525107411099740865618000473756430638108999825570998204234894717418709140019049253114487779520126296935095812189031602900886425913511900882553534385346925148183033753310436559059865071832279901064200057890929422358476146039300847903542144877095017687808921084372076717120310039792778268704358232378223344527211786080625719251702097495041691088288546765175994050623521593357832793842810947524022514813308694211025561531156854563154407132896881584113205006758343506370088561567019177757243961459168659466665740882555627487009588613355378970303461537648817394655176500894030480896764514564068504159642735578989566628657228084511690532544572284146058993723033073380957719176886096304203998796329144925082518613644390515838326967101880180361435520778308685387041819015561708433977653440934215636477655315527089279830136231489241151612050049955064921416318030230652322400485999390936931736014537992382818242220087279689627211102290213217612575940284658502041844630348016154540932049584953124969125019468933495611624258824309112333951927222035515312746198920674833031545021636817421678514013437215625138519215674940424754697594993258395153792118558565604022570771134744517690894892298814298684957283198010744157908547866097773025493012141112481117591219429804432373664373309033301593917505396697654567323336271586573882019209469522337249470101800246006463865515428974639281836822268050293042211405841925298505138224075290399596886164053902265321589488483900624535602570428518144413599539070500449803537108001981129199397384768256773535013165017504895055609877624090920264955655054067405987148923340601916095546583502082365842656888089551718134989319402413197197761571799592396420673707452805668878649150863373452231081571371047871916117336689940783161704842327879130833939240733748203671197758128547034272626198665905886132685365276600398172819804149103989252064581723443226871577115846986109738779670831171518160096628147083936163488287073567480581595345326194561826490053107973230893813805675814422411436060874165043698818087165477895420393083387590837236114781048141605552785197179686415960222028116623011046867221329866534046669585176814201083981122105165629352562477265186802632315975849149418323799142346503610607676978038890688341737033133968465541976311666018982062433696541646877789428321109125110533244877357798570913478966764941309906195276533488412981026580264942389570399602625446674121019629925780580224613015592767503445736019293325234771920479726750673652094750029642768038554332781671207509153232714555817874063291000054346262544601993180107884551029065148356312852050297166063812212178855031601250229545461665872819085943936782310083114876116190185659940074456129466126800395339780848287511289995295446324591513459326511571007480551017300149420572837666219716350714309189171367777532964607406414779550074627787749424175814348389014479587512336938181368577617885448071297604593005869426640433694446460014356145323008369602844923931023771008210418630352585755048086251244759430609734096442746474369268786568673710211478420780391100556531092148249390293550549448478085667651085952989332778729872128313199700203795050859452964279025030457052119618844253337198632662002024706588946104541260771519086788551963390038061829745100861273221804557100623851219648565414917980820985581104035636628989556990030751172573436156713838231930229786897080215216055058264492896792398337405450381178257287090618644866424172079190552310335097684880950436891982867772532266913932444993661304827098788131383261573172888137094465896934866025886543359189236724160103271661668209854355275365635545170450427430234643459061752566195494588982287829146272228051507192181016838500402061238555629239818079774843370697066350550610239005676819007937891269105573316763599315366078457397562945561856301463371096093360629854768929756720306447862758136865227790811162999372575058651272575135334181344771404283071096670597053897250551339846421989618691469834229890070701954256719777446231139387614631172648763912195561785396226511029182803994348697909622557655701332071850023573031426708096008791862861845871165275798476469434502676428209802958254607719610583517529021583012623464455833473211717026850876520714987671242650028297020454716656622106820333169223784937548349948200657412721229967672713239264870678704242691855064738296156472852598002757990728002906627804587347050930631764765864247885117599869897111755525019054009186025237791686455813450020215616955333324946482047209177507684591876522278692621746298215188219744052137648656423859421096519151682249665830099266077995823826659487166278952848572982770517400943563209851131298057419561722314502799151834920708327488541459246679476654541793310609805186324833604343002268227390558141832680223519147732770264880319738227368092294330722916911925993655677680488885094613632685690676668490682613819046450627648952589426325141015109865383937292880193089627403351255513933355348020655218795869397659582676948388984987804847219240769234501627748732252248747376333453490758743149519224041682341044349324722928907945238349003603840493820110716882786808046626576366315634492970610442213864226583955132756982323904405375415302976170106047888523896767331658042464660195217585426521459112716859361339735839495531030201908883505266288625643679351384791678612550369555210489618341027788677529545349315140477663378809804698426722840786365570084902131859058159158296830793677740156168365615396494878092218663564202034807739876377168998868129711985151838850596458359229458413027142180671949732567826702836072077707798545239908883299834076715947998504197456037621201280668089459389826359358458736466327619347593448705160525695544425574444401647201724876219740447616425080101876582814765291922782516277487123348381334451906693937051021363418441392400919075978327631977148143609460621285654791816251965021308429937646339722460559460038409613282773319748130207936553020602629350385776079990474570341769387360302097773285455053387211867470065241958412038752117423337955470325450610980266838846938725133986307627781474417847737296690333655373230308657930326540537697538958479603103978684746741655323830343564962686351789676438447556395953281098026436051906225044279678513617791452619579202849690261350737164214820333014203620618686095099440127005530075362230818165992845402312871571455349443602708237119871233449953730274394266436672346555392299404481217689199608718788156419646401488015756003292919651678811210522766438812040524960784105682891870345927318013033930363664009331602824060763239955186966166000387096800376736398895084230755536086563829594490002689958686895703237039552029806438001955244722423918540098680479077987349840523956165104304115453892608573111056740871719169253477009462117185102262387553209067614239810299897288885458215938710757375659646079972196419464115273307910371293752360043149182199152869182241457374532870394228318648392710378200162187655367024660614885721021923830508775279522082690721070367502971869040156123379852373465614550785432840867590900214352388359187142400866946339103338204867493296557317393984423783743820955215623770838951980475220561993077662900521854135617389525135252706964107476810110396745359008440057952479505827673285615799326205519125840206199386580023564244794875938056755995885437175879780911835939281992022971852252030541663947355548266702577222363488324673543842833564127477773603813856031526086789820268484313171036915370546085237998701345511799168709968493276971619727536571506991025649850540201599649062336559283277665014576142047208720309145157333469731620644848714274929234426373681168208433623720104833537011280028057576663362644413934503264711063884700756238029500841759328435866621532806661792082628427978414247833641309629148486763798029960202698462443871881578575941437761865451430000892674090342938524941636612463937594894920519491439695913011024829596046024104789386408991928319744873543696674984593816494125428095765745168651492324087756870389062122509842657205143665019421575615033823843482727623348055164090956867170981094880035525766283629186303591787001746158249747836735036149431645358985656252339088274829229416865541882907383551989740546938044451963886432222939476647857519206486537562741162389521041163775045733726530569189911362115111690071299957385866767908036907852407006963955674141892557201059637637245487516862677165017241907577792574211973691540140136843219857775206549654114637534601009750248494094320982316928550957513114540474919076987054133740870584553651911513193599163129199247576568069448440303211397535487793597541426477166635147759575315245904164971021220328813229628034768628957912083985336642910401975518056470835044382539124231210404350656254405459132080949195132442245368327969227700123439975962125766142865271370188711605663297076113798688128964957581104632394900244485813278801486382688760484912232008968371388207905669801272420554145434028944197867635259711094792873093971923669577429324277561820000718557049471862938446116662717768206841696013070983051355117159691167815392358879815390969298588234963317969525357162636623058798126512857614553805312859518698005105395383492006552042303610974277069995658640854676234139763538746702622353138513182226889541295675860707743065000959426159295509965565503192926120224967828954490826218025082626336755730829979492971585578941154071057126941437440493994140700402870154711294239853782208792207316321884372104281860641754799458644830883762109597361627415867838706040546150701835098822971707852015283577741757163213377591204867949702052260526725630699558723438182612986181178250502027408343938456432811172288583411222161887978240020214274464649652141782103792868343501228751239869101020047543424920118005734864601682260537969723660333073307440288356942878253284279652517831337767633962519452997752759365068641768443620061109170566810882547253731837894040421721645649745708847800318177292734715566133023437204919104654566122675751459191240622646633521075484784697981860550306148072472059106320039427851660929538461246644539203780302680595083901583046528445795625149171585934806010803195701518310686366325190791121383818267258615784646438184392197737307216661891991597130274096218009254461471303886850341595026286613008646315083397044120767186874368703825452528103007969610431505550322308491710071185186772520826703285118544883004323517425857560501781351605883226201407882741047794181121086391399902197113700961165471122876133904484469505731849211887789151400926786153795205177847701907689968035826000943586616960560587435226759016833299548996743503568430338727391228038294055283554912345124084259245484392394501963769091606267035538828142577140345498261324354949798222153656570728797081669666122338130607857486949304011145472927587886596005583901213309911900216271514138265386179317038736671702794050629221878050550512865097421510785602991865362371993786421226804621662934451477767724600957751273520613318174567014646546985227686316183462893510198918213906004904153556006971687720667757263443311038919380441473687572253359985541339419767588331932787478987801126622036986560498447406231494291371472215658122086200180139040231494132637294137374125161753906424258533887268904157625145553298023299088524358879087159340698053789292979097170950943189131087262625986287964676871055417849294882448486871920322045579285978823666704338626005841330793896508386266195073096794021219206581473604549999416421313819244754294003243941078444256084577292795285845561682441709299687715463185710923484876504220955139502685275693150164354624696897899882254078098086450579458790155737835035461960925869235564446397601796027417011529026609341004476829319442293529052697211863769142129439365058607952434706391967876514125154093693079676282822704589884497839344121435607636126953711158739207589872888818552186233963496988696026733628475014465610978267808642884221429837772034568474832793904467205653910431091199210856219447794712616418676936183111218727961291174385916444663659466420278909040817309128403259122773335737610359222838529516889546588204143427380835167161616746562925494160073019268754481347841275539364451964777837883229897393686927015229305543800683585096784297954271340769730364781438556836606025075057647915862691175935981866177149331548965101558621465295080726070324609868124792928407634545837133749376821152396048986225912351725822257769713347451479138277268352915929651251947804066144676496381482183436682234262989465811897045818771649882653943910510861606785794038974051987319202304469337382568576152394208171208335117608528558039833925932134679409717708485399202745856887961585137272238533608162047549307613506770904540213747390814838643138353486825871618492481299880959299983173418435591943510740405627751390074767101960090559954267929409950174823302364351392381539952870840290262938828007774258534056599859894068897049052816573072256928115581957455489861575122518512774123367594709112271995894833766276126018035018379862018606830705571864415862746974972023429448010026742413754898215980374409624418381256113899771568728803771149963563682247995074911093813931311609960856040306142759394772394898710837146658188388589190028041569922368528787357430024584524035866836254291008648419483006318555564021109236455206159685249936296335064967305460337175944676920220248878432859305646733671635832268704619879890783023013420695134290205104882777063699955629892939748773679037053227611625090956477784476090559080101684482430548901309368206717002064387815260040079015584376264253065231918071032493873496853614792156617394265989172930339820854932405798666977886872752941268813387210589524403463542955261363003858544594869988670187410316704982845945088772296449511327211873110845098815262334928214837991174306133884300421863693977513553493017321300043640279309248619156156574467149701098285518409759368915915088828379667405479175958232848368044298558904067467972787916895942987816235125094801034933577538492973955967633636427012622857155450008970375748803851202357763575291365882856585069650256999689958030087308323132486280456361458600982474790038045692443647985205478501647016300598762305313785896008598893077380881226204673155179938680556714777417662448732917288128017049063860417370222911828574807436538773624015039330590401111009138156288135139016991128885073783807933566562315429894321115973298609900283202695864440389103035931640821373768611445012804789895904011398624387637296779884560980013258778752956616035539819746990092437596506931205514432256957926983498434912106344746462953581905110433200266861590640800570330640939685089900448216474136376519664999256321629237743627271099880997057162785855157500221714482426002202623192157595441151206836173761972691146206889906318324916167112780632800969509279030355876097118832424633853076770318886402612073864512779584020733508129077733293690765684121885606900060733316137171479706751256120491383212534867801357099317707656691801022844019728469779925141948006422578231554024134163005468055657993210882652550465505574049646086793872045898349337466450959740094589246685728450560671635386601846718636475329079780711470266584329555836845530552810923856746078332530027412770925481065088553349849380827430829443310402701251142286573992069484595465985711424386895860295001924863955069374682680065755479554123063011607817850764516758805817597036602771936942477171375131187052931046456340275867032704285913898844936474291226164176466887828753342552508581431214314774371145270247686338894244174859309908164620804664720029182445684057322027401135904408696593308703348310691014962057772164890057448659038006006233233894564597803729203521851665605654881391768655803903310930759703776883037598597680875357770584084808638362352395966316035416890387795800712994046526166843576791294801460564256883462884117944956709573330373625421691031435542437972816589355139673261537764212652160859985273414511292461632042428734391109478443066894916014561852857135586037605437441492402014996639502280679379860934392146587912402764731688779213458994785950881256317740068685791389868964155066248082158086961318238079144654640689448445354069652449575726439071917764588477901607935666195639428371770218930329099685896630261502669028434584083314941829096768914887738138241325086527269564911140691845501496498188560802243313189129755301028613458479187448827713643106697442308590020322996152028632657897523590869735361484620472711154939197469538239869548110497753001104220510126323428002900565553028745014891352408506097635234609867327920128133352089946234047827876974464886771928084272788160400226483686440949734769367892870061869064954891055834641418525134534881233492312339998048306336078609154625169291266617107927339108279727895078931619276356022885454298754817010938284946679761692246302205715750645136997648233624857306393686760431968517006866013934566569085678620090217729408858046549741261094576547635892749808209547684292227915846515617154264844904343420974686791408597998750373094439895647861768284341978910987051087998440806214089333916845977289920818501721403987521906626014933755889002165879627881106212163351120972956270435895558400581239909172597944568809236936240735226639997523713628512939164983444714932066770934286911798600298842762896040996742605250636014860342796121923218750893097318345020614771786272465758575841060846947708586709917717300668572361204219628713976842643864954123405205574606637505224556723874992265733755216207918911881119792803133781576655575829090139333161991090258944785099558573502817261346834468367188117331368047186236397438361923279598792170583075048125234755589264827846646205188946907501585921316039278165769673580846600819604950558275577668243912140653274947729500084442315307888200263311949014363693162584843981358832985127022623435032520674308442240558165319797920851441418636140678495908388127358941565341144071144119232170791352232014418524819646207342957407136738063837836567699067144875137745586816990413351133148234720237016192250320135559290557299474816744908890165413864530762051570893351124846487867464739239717444883146624965674062585599561259377541103657158100424695704977825087696928532063474136757337477842157887697793732121163642597999928509976957024599535770007012144101634703038046519352828673231148761538121765537040340951302753414754156968736481562188901607462492642342780984145858126324721975954732092621867755704434136784240968960092981495520283046920546568202842771472200996918618145307559344861877102571064323943914867941257689292126121539328301931155876718508405419100341871384722355078956371847399980045334537794316897553456700583398759039085694940059610319220238019626347034676145196121560473568488885672546509798128068568685924916795697967224318698937558521637423296935420795318178120668753890278783721981853371169554611590977828707955618854206023896012849160638594065274598381501468368137629068697869696912291332567434193507488443540750206812840994701846287523266456179816045960859048806598644146318797017737527633609323074771997468711123200623880626309639210301923580577304402912845719178528710620906773421070830881106345698139635752032177263328355441732771761963619987412526696353528354950071514891935059507863147629870246582145265175771644693235648739489280629156294538402528236231265751156622323436296756246007829103122572359935774368628830433812472300558628218029273687637445222206864653829212456235252777980512923893604069153050026251187128810116749057434986573101475533086264543226523545969191164903634478196662333377888349830259657384526471480979877199099687087046300965193409605247613275759306496350762319976048820973418858148175477200726997630424052255629334326312522244562570039835040741613993088257806248500350400173023920065408136840311587813628581624124908977319987258713879799018565880043111197257299969731529312895084070149514880818980934092450366982322399607983095274400108351405141831834286889462343525784384283684697552716224638488797412177824017959373147121530134199580029590515860886763512838121633770020503986670118890108315032936226789643924871365500686766223337090409356808047055534607028134051520210044042764531811589077517545994893359103985954509857881266672431208253352853739522638787800051686528183123218209798811240367364392347790170025687647187143484742317885367072269372980293035685526462858978014591752538173445619293149668561550804163770615315892952130900746435966956112955340495205993136257722880765878766042005030576461115264802661412916587211780967389619189461131258070774564701683124457802867236973764196329927881358721495735435168379585290862778768361701017307291699426284539002254372893978769269183202918931563164437145344917168414022536773066194924662592684515652693423958614080934930516982913656038600739951660249123821582278016140425121020716947062661566705430911309883332807876432997625891341469957381332623745721111213486505916462998412141123214507477671893461679970630298710883372893757870941271845790511578312153340427677735054267212635315568774588636218673607221563261836125547531364212334017482878406733127748242896087597934317283921039284663746603885744850002791365627416905412815870223333252727066253030314743673127895856188403896385914898124441638105481642593902009699355401129683071069874308613024591227967557602343114881747251591970076129042169681950486792550944278270605403444735822233246532674020578027213756851192528320533039151886702707447246960550500520153967318431108680933076342575769037788702678618879104666752333551187305372806269430449828903297299960095246318849244598452987820611921588608638511796697883598900854802868659063097356789383810212242396967423236348939057949989201339468504219094684583036527244100732191829366415535029254017607707673868514803883628814895263872566954784593667881916054392281348218650991194961493176450069989823668473268307983508565014122057524199822232921588402695989065584352460024570075766085394987667417133876882316559504654571395057127420359513714144952724257454312885448910572746903054928194502616881297892682179234057172834842542155560108075464698930474675731545296987349369241093503132201296299559514175463652386948153728987907362692328751648852990520806160955582442273215793915027755005666443332171788750777192422261152796256608901190589562800604862171749540984546755395323074982505394384252690373951301497167159503535023161720304957442411387728071925436888239898702817156840473981847366125776724575225352611323740991762922569281707628773834569884447899871975043679404396646464544932744870770824643356370283908420403265480908628558664418394479951406219615620286007685727379239074501823045992926975381529270846038987189778374485277827860877982847956017601238696671648299185551752441417910497772935291132069960383274695921875886872455760333400313710543235258657214977825272412203361142936111909986955587802684970233227982051680003763802260047401902897510180747589151575760738176942612836520640555311962006416715594538660646058752997954442124852834266644001310096814535778045800918832555059676891754536489243157607847449542747735108209795181186081203459977935245025101698339108728337437340707912236352380745269498400654182695633503816788771863559683748338489548807213668040453759120222576555338772885563853902677510482104695919029265184098888185699180710508947128479569011803603099553766813970561254811447995263429798237222874865041299734428091762057098882650461680184540730366745530167902191464693007845173840899494184927017147361881270946249734738171572234157344313137649776494213349707764231421661533508795094572803331025081499332874539541498737437000019225032481355398833490147784985971828438599433856790077274895099139725073571537412320446060425349047181489507933789553433888823935265931474357813501626665305352220677242964504331863691781393495516799634893102833555239618413859595060736196010697324263489144820214983406133857863467007582550944096889579852816242678282760464566985295538920788569195780655664800105685238159510917853060870009935975646057564346132831441267797163816172080890978943632395341566545968783372907217883444063651572599782611314582756226808113298463573577569773522826255868747823443936169555665700157985430766534814465307669175198345082130266329392335044654464541045671411481431977453448569352859168278988787478729700611240382826135369718751762626862829719850408465030625413863092756763653094073639509599710455798290359534935775038752964593263057229873198238772606064678325931878019585323893088201493686529187676621772414680835077673324520779716766426880674974776055455781153088810071404145418031458442736058111685813761014956983115236200255201811303622354232999938311589994229139842262815983331544834541221371291803228844608641924079171197908586468990547640717283143039524589316993268371421561787311768656830724854447157296513564942315062742383250990849813955867799200364703847231818482393171575676228630099159412110682022362480416916826942958543743933815055263128398110943685316205740999785519920712393336509746400036760210248632852342733058301362001748873209454880049273685087018905958326677091586869005224049565778926477343394294732385019184526375734916918720332921703187877293043558646784422852977048570894049779963504598612167507903945830625612046270131547295869007711955468484367005070947678091710433815015055946052266505247792805413256566671799339341540275102187393199159451647754818799625064669407426908462569319858204662507938042692072644285279482357190391278924958681532576938487965207429679999727306151197144666985421171693241240514170471396847419631111248361300248479976664695672295111708641167878521879152715691358063825237629952033984551499194457867270814590381513183093143641420996523365429748404519306871085188111068284277320110668347809327145260098811698123438050903351398483671743431803309803078197578915485492251182250588762209616273336280421103220504794613461231654854311737814800887901013606566769566246579806700651807851426652539815099264316132093274481564646364978449020995662563455445165006452587624186809896669705086920527890192227203167439764658882528206591183025063049177802415123569466310550651762914121858034401624019251182389158119026739613324138804969415614503470206594305482483200841553642901229990443063043548840562814382346765800143644438065770546390995423806574902012407843064986257300969659063021173563353192061308044863209505091839305779964438632194996460161306434713222314259126735605520100643620231664019459655171189439590430364684769659376268313337614967339383008565364086922414286783259149612951550904938538579056873168924939212470806769247571323279954367098132315763735527800932783168161776201211870342064977221076006911066911877063156456768909389711306812834626952442872936274186946881249287594575308010463199987060129124885358304533996390501027528205078169290859606554876820402969716805464833513729798708774933869336472468309760388015414049549714929628264462954967193939991058425625650836251915685083350281078507881545032745910070508843321725033303066014169216445781730136804690979222492234828917779499220688792897022390992288611074930820226343571913249257397407982000504414755855881714083950341338699549883194737916552345683620385631184907239424121030000569131056284303490673039834834276906907261205356942760703559014786736810159255242508014401662796801627480465644453521542733827735719663751713913255478666570382292106686041383777917341657500266597055245388016855620814429402384287431838596260328710480631605736503062792049299701298122348193148272642234513408942381194402574539718009341545724321895763139932668457496717533684907122222846440298091534184356205470674873156000987319219003431104158916527523006098890382765579704299012768250688999383071320130639048119551899452275807843291670505202135204103924875388086321659036563683588219668707457204399967048456038226055083979993660361928779853133682299693903808433789595857799427260905164197645174804350287832974475071249052537897281184556732293548529732185090843487495077558930431704901252032471833602119784192961366559611308423267598354174714104569055645380334312374493648275745661223712674302891085800624662761021318565411528235981054959093572284736605153076262389303008166121826503533909180932160743732770520289145705790562478050217728476230520633559849425325230837974257412302076198988913019857686977459428289909093205510139470285345271665882536221294652294716025390996338359785292920287222702600039737515289002061634057249329415270939913591056994475861688116001286613081876982639347520126033921667894276518775934973069415760127121667828356040586417082297033694129021403686057968080384070897312176603799087237580567766435749313156870225267305124172983705500373501985675951411970886316678908239496661273756175359152538087526375692455094225775200689318245479808620249137080128490390909625290582997307217232827927533947761823373374198745828257651365804057600560528721536115270830685628970311811753873553794566233169278552743644572070472422100155166032936360317916529345663985519595955345843959933364777731981327667799429244760749415641086081045707504193913422687096488620911617854032863223632546232663702501094798225089571045111241415813004682669492402234548218927800696859852675463107481343965982773646076094418484503669993157809697198242104069905937393715950578118632716167601160668886782587282370493292543597575766107108149151969075664808243738523188687458885004032602786724176748993835249884399951450103708036105695460359473006651118565678370421169599113822184662885733956802600591609930344348397269906451441602977145678920779476369747436900396893872081515387043195548884860260690428440019378128675169145594024422961360674963979430498930470077805257472869161381462403673285415348631789999746086534424144261290903963161686959494159955472928487467614939840976323678248991032418248828039567151872960951711510039945104648029829065468528977014280374645001365891529882869049725816313463726341176717395590498992827770152254525515195081395207667242768635779929216553912857350437192025085671158657512630034942990880346234992311843992862349758852182889565214167473895890575249470051802570147552027069488874727428506672179680238004342226157522925924066353057541517655898835740086740083834912124173200633372495131365094921433431085912919106746322864549529430506827753413184225758532776184462035883298260191761500044721541882183736892589663237491944705644532567608273109005120517499032339458626999797806133076676389863663424668807443679343682010765046702584036635983109690255291198046004005927930081608513008325637916280493712058769196401821054265009660704368379141008328312205417850492933424643449784359908124797302696885766085600588145001085929620635160232372145702127396421736817447439089502019978994064707466701774568182092611687047253726149643255044325575408784485377295238188550857216576578423255025810866576674127923745169429233850736051246637306628937896575223541660122416546041542193976701304386747837254325172654485997911743809601989420949517512888567986225041087439894248623051769709948991291976600251354130408723263455214923314429588797302194160040362628196488298922777081211992012141892175418095794634682776466387747980450079225607482938670937750631443195700840581091497007443804786933379722271346548276167749768422008738883674539792113693325561989830889850557681099342826614254991253787063588148661521132886772388620126405255699360972045187012555839644636595754676014480601045510920225794313816899601891120462478632985991819573071373747643920477731077739709557840128987067591246154980048430441647203999170430523368998743003059541900839565627137469693178948682232680774066452090991590292491801892778708462673720624585201940984323289432893348100537417422090961038041220103540160783268905816941607900804679077868596051296482002002291146787546068140467658422239640199745240096090207179448901834463906648626849374104927535608779561255114606927440940564992308300169400719214135997792968992629651555530929557183693912241641527552761118900167494944541189001532516080612715887353998436068985598975488602442601903605628422937061192249093223489192095932855707223406303219306218584123650542226294785849355936217468800264800459126539153335830981474142902593801349745266897125498099735271391902275426963519934152338622668158817088628427383350354426077253743539440486521185518329039720373771822020639410850218748297560324813285890806162589687510667990819119741649516437087255960586793718373898406675010000645021938666759491704210449742610867708934567770278734440636314114050903946660315178896664694320443742098349215827575890828892564412622601577332061131035694602595888988968518752851363860370252049636590209004273231060688812024657807473925002007570712179896297033309509258341109791884721252203744597728000982736743936345616762471832956467734728695929535934839618164962005167143153425274341212659069497954552221279631091701767864103009040157642476920233972618381681791406037325212697880750468408428503774444353977897282505711498392745747425845660741043587462813919407628565393190893945128919664291597514224107099271833829135960503981740509950865487967394212976947949848065284129055960896535756967412818532471358379408062686180122314451653533582233115132836652315140378741321619373340548356519682250459154179832726571534032646867036363994543437970485676327960925980288296345835533886653323380530086401019631419122871902932213822919216860636098483232801238343876311528908066088369884741177304207257496446619744481210901171400979622806440623621451974847245923042262621190724589383106281871021856267367395030338084688666724621328806806531051212464887077017409820625495552427652651838701447109547843331928150557840316882809287286444663140543231088738737331085024750438817202721783128222215947410944131662842760934245267009475817517794426654178631845035411184473512085209162711814450847684236020140820536856658869606315412341745535291069522377631430440422055867747168480267446308385562947104929074836265426462025709443134892963203096162801418563552552628223290250206398057903314957627949330745510431804093042234717245795504706348277142711524964156990338636315983044743664853141817984475907941730955539292818145901288052730392484891889406072724670804024667456108040004678309017750237060307597438480743757495160933339781113063888200043823467633807369053959481312539534206996369208844092782180746921411135975775134531896151746537534879838637176960212529607331892011602829486259533915490105063865117166159682944503656455944318954774857915243589131385604962631652339763914581651521444179160987407097864410895198155756913815633282833797627837287332906051926953050332070244866839307046940138801469654608674947721345053388057255653643358658819210098527708142151112170596016448260829094022873201160419649946740112478142376278551833294147744751959166168190480158964967728670075789632359690332721771013870555508073525793145804943772566925263881928266159978647332509524503688628922769956311424830849341971170341849227817442867650747413862264056283850391179675510282584486012994871660203135310240132787573338123859756759008406421007221384996275288139363328706552514985334438920496989672368303425559119518944141595664936153620518143499600587062987593968803847362483201379954654533166606584664728707054938531650011983079048467423825425187401241788693952184995745911412713137636797002533664851354867990434049157704573111515140771708317409681194869103379683849318834272266183580508915471668226468749743016508786600275345086788837193597239944459707663961758031881702292949566004703679589992679301897744138788438454137071300265042362713081576011400987522352219313369651231107891182207528724230771598662063527618049172969130329897966881322599914038160252033306711417693129776786786114501630804852048716983018430857882358372217325100061036521113316714021331882986021860907906886195967630555517147910416807923478087758725113485885540556644342586262060564395996662034277204575440497978638514484987359950449821591508470791139368835685116525658416019658705732234403419631678554754154201265000953012001920987800468593212295158398936558574603409964676458204034728799343241703489843953042623294149426889478897391237443359100781223128242127064124502323456309728914348856566714640495682989388571428211862224693528169233824111231302697146633981361895910705541052391532953489707367063585585584692782406935178570656614211294141456978256446431554367191682668565275987058998134531525179011603072045543872912917855724163539620578870045758395464493648815171891038644986742895291916188684151401413224928535487561794894004328758537847535224697118034532597759656517735072412526119608324966978066520321356636344837945210458257895919495906157055781322980419137081898886878826502164360821860570706826487873973463737595412842883135049470078224598725439046761263525546904288283401290117428128539820496998078880762070884527771735370004717994651075215225062073727142338211594163213927052098571774376465125449206018854189923781845493658561305364809071882326255800542267588926176604218298700621623674537590468190822761467770656420486378001160931023073666156522707535439539451030004744608641923105884556146539519035893188472517180931283762974230732731511141298032845057010967534723929805201413962459153149772572715826612429837756618540680309590174780133998723370521645340234214883074196637055699674679609455073257841130228074486930543487715534240403872532914298162096628385781848145630277734544839408740222754372410047262634817308796217752289428823780873755622412104049946283316030326839393140789469694692572677168638935667570283428409569396610189932963097701768434242401062953886721837107580695379882287581336073520739422359982888809620883656248546779504180100733155965407339044236064253634471488602200666249902073244185986771017598204133796395888363471481829522944145566198456373970884131601783686345958545328651551140387954749987879886742203299747416153586848765423370183370921866862834470932740351889801761678161489980595052217547792634687391517509530298024589343962181856552672390756334836314331403136453776928600677182653666863587361992848301161302105341606090652184374350595884262427032814236074586359143859838105560594207321257504861423925628686493177185319427040215189370430650465324857634174160218416082236947253824614941809437660794997203522428735856879518028107682327728068407016894328481826196949247516571601804301536436327420799070551120435271270372256578679802524286753699386478576049653654052757335857231390224934169412414950145136221702618766967105025091342089704682196307727568386397091333211493593975191587125714874666135718806788544618934216021597568404921858463393222786174168841574934139423069798501088043766733812094411984804142054029257461000218851675379551932496003746465924125228033656371127714316438751079692441219396430693561726386940942259007812839932108757839643618408713915427285827190469950686165852658643472774271173813108857751698761411410947621200674389025221639526497302397368633368401483872059772541913150049077536906343713960364612749845230168339799988409993229432295953714733193843022239096960294092356619929324024958605760167856140373076758988906560280125474514458658502533815459952996726292106090405678433729476331982067638482479504716794791504916446989663360078292591151377733055206496854139023434492609035458598377999866076317659764493280664054738410961197251952449727440052537305242724479233038286157808986852132829063543703881166897421559697890291027417245008738526645200822573726947957811281579470709437233077590263138749034768270255037210831964668060277456049892591192501449106734610661306799236276831008395327903365749187379290413512944762920420656924542389584489988972146889863169899144628907868016885907194193344788048262718530187936234077989311066223149451828342804296205479526820965663871124011623924381914324612327295150339550021966160953945601128870452115643115892258317008828464078334485254106290488165558202603896996960332874557265928796535108450470788839369139284628792003033968205662921142080959744256094642989373726264484026902983598531816775256797043092251126189936089094691970370001976091568658929205541647607117122093738295300892087601469983063387214125503971626353093780694361692193699472876535735362676060759402715637301869252778822365086035678990676066886788874629467564182806821527070806033062108584283968242373529199632827596125784780442254105104158641443663700988339095401091778386995773201327385197230341928205713746698715781545866297865327716227734332930960529964230313052144635236401182614041016240573673054870060199579559436668015350057829358480513394849984392852307441727432914922440983806543991522279684224976420067338130519121066690986229302425186630853729130595848305726654045396870850685743055098021430651098984649628906866362088877584121673426384368946128960249736911805354465159964309680422480932202303592562974343380033408577897921857495779438957072854710169609282055241498890814778187886576637255610713881383491444772639037760525117826199973520642352379593787493011670611350954065295664363652299814794263176074306995751943419359621402703673910220027258331364604921835109498341733152104403772755770267508042820387203697529702548851279620172689952175414394322282935248533008080798697155423352730332537543007942506873175772364570504308754665163433229488212451165811937739547520719619575981332629284238871543620317663694217660234029404345997270450503940412408836400994629216386392276614804998546154916332178013508122699717635884624511783704170136144624056432179425476456032157797771237953211968774486619853797882816140610158740280192113055070426696901380375983605397752629584627500341997923496633584100618380467287609329631261728126233933498338953983752263588850257511045370229270242683066847312872848253749780649558818137395199711901988343668123558005431260190888257236823574979935508765284493743183638432090600161566879852760416683320734743601964022552662197595148492525971351618791538266579622260439222965409319710976455027191810550450449996039108543914444981985324301040384372109432743743783682722316784613916695249231273813370296924290459336397377330116851631472763064467200089439186080639605503712863212054317248324647842002051895354666612995204755629145771100688376717658997873686117455290437680029654066154193025512275706437316791952715693544956369208308656174882354150476072848307246085529545148641540301531017609724336981637142262602343844076764201547359231085019674347667157987509308104661613604279498202294147000726388192897986131382870502556719793791034226237625352536267098139825111770705495919164092581360401924271123228792855843900582597772315549457269772612560213264495271881897665441668904313845607279153485729100577892682396043386804123360775192645642227967743503703185406868453147326246430568269804093395762183085017090365822468520987296202995000680040412050621050384712609865787298198514918303598215721077841366581214333403047238033931559596164714183001960733827300720295077134033012596548137647816704026193952425607322908026873647311860745769243112944547675105405418451547949706656539972335154182904752192926372321294227251593259291245258153763416008605565234451745142760411891713026980858588295887841648002426329370987377517476684721087729268526570746653386572093658965666204303770346031818536617185447202306669786910305542890926248346541350857571998470600247876791635609517674362116953235953972967575902509681009517870869153874819657343793960782396344741074230872584687702638779451566788747033710419838006385339395461637098296149132128702588900859130655549200441506250841933680035710500328588630663788583767361609881172022138409608255506552860386664844374947900893677237477349815193681577796118742403538302411466879454089930565782362200787564662378164740437740823759046999992014458328284755099113141860529623314702058073009249092679876668476519945439680563708171752735381964354297337203275651980662818955936268178837029424632129886188365268446352401445599501461625575455292604190184672959920233803419687665579776091243339904213563197369969215164920187046319672932208222154479057839074598987200856358332557509151072924364488075016312652094079950259285482322148197881148828343009009330466002003860862459954089644290377134347841868162581659476566309579827960601701890893973025489564845670510811923533669695873782017805370970293287675097618965127615320822485867368403735075446554348946553157675376191906556626893779594120461584774699980812805220647700192984268123316001632296018401689473667700038538493594242313262290528614435731329290422160516539807910849422858006683524677123192079030204078121692672098559029928644704069721643628471583110569397660578386296446634892069056373419293610767045611390758124690941413577339783880583318413921163942282387196720927113572168875946630873206879676099759459037944506429939326601594127107159047936273684389954030019285856050564546969462889663119661564035353216089825573932991059673310155524817011390571068854561292919139452265534980166427442814289026795946231386471891218418146550854268837321517853699283897103030051904963944582247196019653583966431670555325354915160854763660886449017881308235644392764634107148383948261655593372633872014103807603419412581132145462350255164691706925927523696384091354954065710281722573760879472204141395544349374652655495204637593042582410419593433484864862198743651998748249672418117269579823609367448443163974694179284456087311473930191192598921609108346951108286672180237024596533070455333623649119030691965286082180790072247451287023026822782064588104937593019507826518309549911969468896947467355307061143372766869512109043917225149632932372783378363972595741268049947771939798843988645539816749855235100127062061158736767879545104548724973333247331628428309979426560244359413138435297577837151432110876974107384444891358206733582932806411819385139847303411327078203354396942394080298783347043146190757687594415270826736660398727940302909683142524082527365401833511638600416831018919232087025187172726758154717942155062151633235111232063684986750404189062149655995500555656048188594298819072400441281884998343273861399064909813917434526537359578445158135824969720727124916040661005494131719977936090329751963382558876747796546822014859609393359544387231092208534247231103955094487365724315577889316866063261960199978069342847291307840284683355554588420369207112358047574772842360627392207326192610800534413261319760651626267039585316167501885598180821022459738751187756410883161546683596674411182337586534168975622748968345811202195253914691099413464171368818158245363693868043868003580268312908624596585792371345531006653734330639553761877869852191425355498279883406580917246085597060158217069829716329580667263859446079786675542166644351395766916543551590354920089544165686407243100417583371270320142783941040682323119313270923435210384891009929968330117102166590638352726831133407674598997378132801926966779645619816796309692940792417502144741789736667907136577372065146783235392984270126313157366784932762914332120927982193993894768926392820476458474127324980727945496557810906192124097708812986741800121490064049949113355221656152338205796766967138006035867693888593036956805352499295451561175184591831646811663908349491548915134882880145156868023515851414262169222840956395580830076188590161799806196985884700977089176611205715844128246176428139382114259739352468055793652321874335472455324208376383507686029781233628325017776134744048694475158427034012166922802961534055055295642548233098713257271170156280635175141773399526308372581187115569997619782826890881093656731486926723956986571137527638027624153786392018599229714555811837185987179295481289532736125880224402302814779239487145855826759184789228486009971190726341407501577015188196863549757707893599204926315465895677974327635040601453438220885046745663957019188682138628826735974185687266588066119882264476742775417238288305561128485617059130358342314534493532831348538494479122755081724081529344079006078032831950254339598351922573454277976703433364686622400543987205437562081282968768427971648576509624166385804177174953617741512393852296138592298653775775835692231534155957623458150006186409569763730554141278981368450010549837277528563643438421466179595440866569183521480045485522921551892661988994752968795318589727212312461629109039541227302763466331660269124058107305514861885539971126646026358438940818657128667630304353485497127070953924475776121998486139971015038514106298888570894442633251392715227169590666515631135835540586068976951146847509290255782574119325427178423235040712295631199367441187677071330170587891410139058728603635207896071875468775392333317178560022065339922232500810274231784803103600126750270446603940033531124555050276003448561386251606695108190995993023226798103445673274420903764805780008618483021243314471036330655452320285521777672148277022799516760885827166661560960266769127687133949359782042141816402217014199518259208655826976870289887446357134457848699743429241934233680413790173181906459134889846628843022495702716884493459549917938619854712346047910633633336320899002248509819055805993707560865886088614605668806522035473516678051630959485873057905969777604949659305598240634239829942031735827936721909978606957212359602960848476692629262999718763255306095968411180486675383852924421456070965564266286012173478696302406595607356285187353603910125830720252022954361257493257479710695134092714893255251447085727450525071079090210730831711825443234246849072759075672238779475300634167553747777901772148987016968970044256802544648951636997541932243325385211756392162834480053039200297743032083351994488586749563214800891695139117057283864298453638361252213934882757729686953596223878088375545507005225095190734478315617546914636866037731815857001256074424723670490763231738475470377740214936879270807104784773781146919356371863579425292284973449865465453576332438448420296867683655170242113432399601081497287108168866676288789971751986850961497607611276239721906698815051207534774704026044864411897465369866837543702335694682085731880905471167402946874899882635663200962345431538015302786123136209282805165270687640616109301177156333700171674841855401636576839661637792013880950088577204891206215349720497566302633632213592093466657339643882459966733196743395349954840049496705089930101389387983172576329614687878944627285583037807071251544223267545659843196500766948603259332716073446158509070761205547881327187277717241193185139235399265663376497079805125170232916663270602380355326758276078994271690356251406107649023964065805789837698240403512135831950371726813572237577846839076210073395611496522859304656254567501545398487029389988888467798944868059570922876266528311101396335601705468376032177213882375672820080161705887514467506539245714337324978198379134025779761998012160061808179441129438149101542986188599469181960811006383619742258944745793188679320117900242219613278539082598244282778360714280637062914384626997466500642664819407318211642972318212496421430284486643343813467455264633688337112202766916906774731588696637079056209464471344080052099576751855466390246587322388881921953702284732993475918836850109562153557464244340853794105111484031420926094651919701217255449589560673505819671298621299966417493210455174178113797630399895398913568922367136888241939150858396206918728518102142862491453267869761516338768616445109385633000918772412587200604380437850325096782462715980167126882354941182694795285391365555546385197876740936100299973780136515065822697280327557720483489485168894602400837545372990423991903839251478917533697931425527697156137136936050128089405492824606743690664106560904226305542732581036525611030561766204847731260963020739891176611503524529361526847819925736970148791032369057508893150255308858276008175441699456317621087689321252222131090490045254379456348038957592657322558903783024102241513853749950127314189125250762452165826041700394136128347609622838161271389709221893608872718130396288585950546514010371021292891991745802081689962467828806311923320216471462744238683095630698065369030176108898777776018688602238367846741395344138089889555982816677657625664632801948661658760510642998775538782492502920925551323528104596959235950508690077948659526538192811389991975428152125745276106667675774134200015237827108485702853138475937593162650413304295647704931423685880589164648638393285498861905440215479328776339713472813575913573022382823219666595274838353798671017272190547847343161455196747119859706173219742299259651228729406347162655287267010773482123558893497670503439414907940392668741659332885056031757000692184383312696013918524825644553146448182443330230665806867687726805581076768217672105277851176139626364143488865782789284193526818481971068214294458603782575822918855069059616578558474640757782325006364632662739552131627822949586681183115847272928084061610421203314307368031228743357088446526519836691126193279439621469979210144373473230097676685952307198287469796111803559711419318201219708286033856741417869451142242912022335768452843255986729443067978291491207003961221455516880020537286517114273654786537335589176615530986567303286911948197915912811713820424192769437769723169954039067452471274774497214039451443265017937674860844096687986935931356088958495874616681958416926187889804774230488438390047396172254220288639418239727131183817788387287077278820538089129458281944432367207573993174613547518010907165557397999010140212891111908711009771128106813922002693539899603367944595827843505960651828845707589738913067790270387964005485492599073721216518312965676568255098850286206360625408405687756487511026052869516183849631521704699144409748840374707794677226685801447235808672957404751540375252882336980562369361999225066659751137061766624278438926554219654785541988486310318290472304349413284550669425107818332067957091875295313948499108360226621450866137607959796388856013437075708005903841570995078668499475970043875681147041764313116468918769067827956084332614547608549417443018619699643916328575553466158748447316964095201311393717782125368312908319220743817227956393192027340175417202317519334558625949874852297344315694485864395886964360149704717202146248816025734462595268943335726678640185507863658362356724436112717028850134074351936923280250716931270389468426606977322915399900740536340963300666054685818845834171210743269832244841838381894838566078645855895023514071611351819201162774854097829420120639994471342918303067481427240295845631929391059116272028816630360527883361632429034731837942556824432858094132881307423476823871167781109702006535353453818765329939253170076850191874065013419964467466596082782861670526698500018069997289535777036794433015620470286919266441222314747558124692128539303096684883658908112087680906991901507487819059593857812701125974334966111823140965435434556392068145350653835571222504375321681335924857338341820751167233903279056888760766209289273170578660626188330431910865367825001438912540407113859338701879051625885100175297444017649094856570859015754132626935672623841744008771364959314873168850571251688915314811301431051894425593512972869660328330871626922590336122139786168795901743382185678435881484859213943661523505887770920760855597566403047502047847395778683376032121518356040233804753578793959614400341242492776092564466970588743528640696942077652683700938129836961330031879187426148854240552471065320443853915993565605197557170923361260032793717365381133534713157284568514302621183670208175764646503083299695159391345237045952884061038944824427835605555366332542733499694012207820626775158741632994085962606887896747148754044985319177898994174452172991162171301533576559951417805194298876714120253988661089796472501592959412204345326637257746309254127061779709257791016987627616148886018564857686475447960531317259522653821658808653089292702112231377137758318229942216925205932684020788948049284764494439537193415430225115049883802551502526161130821338390496995990891211917117105637011947460303983109488953202092066477280106051773914228896908717000707568656003338031218551015941889163776112045028543072311311658680698138314824443965481678377463527699133111671180374686578203142692972889979114253491494631636864160376502744947317890841641093263355454286923298224824854734295678832581788770063259835523838908605329838823423167599144037443835805935284705430067094367287553590761632509724012742856461713278668621055890901875231404105991880970908034714284286976397737177688102999518298434783050773442501516009901334489986521661769865544295575110258407345175205364068357511922860500991874378640868214493886127019535058594687712370314345706690158727391756226570603560891227180247338905499931042874852269622625316595547612690562089976861277183005084423664991921310067935169276476296236325747319869687176891300207039676410984565049108303562344491353295168652759887113326420431393332205916815314305637392524311782509111210346414598891548766281619354775253603483806899547844441165535798803974056485705647875456918085240792542279679592005040847373655996688293510920274111371217548015344201152996195337984533209291377990079072923863344696355729246038988320670252139413784239560897049841287120150712368009869682383013230161427700415757689775824898321120647727509926419580049090661437906183581705517421583542048824381535581154946598246442533271841794529307047875213112609768846655964788861582019568717723013194890664485558754796047325424508427661212148026807479657708937890195012460280768052034256086865461069475635271415717607980903770082418796568677845695457971605206616789193025882415174799302053082568903498316385077283217078162054128380088584457674989012207488266222395230222255326910189074010928947179384582821106852484651707627398016226552686635349963401179366695670860972475470464198074855139320984616885873310444027375111407511513989177306599599926541774487390319531683269523325892423798731694402643205551501690781744304473509317732488441583278718127029258554088782883535566618437881663731760143078047321980547723659710908173440107263882349472045476335643933139221922124050213980925027967401988192326000683368668531389222261486962906452874223390027257206833694399728631537339754433445315034979504829334837338180407254206910098049341370600570710086929803718674194991895848635069693544343674836771530383713478686010175327691621396420796060580414373510649196310881676817206946061428328807014474126779001968231725899598692140578826707171799800837943255735534696027825146811421540823340069921162112724630019140172017408432263946261329103827954923392011751555590330122440439433349309014259064576241836375124928320307916040950345207846133997224045038674931540635657835458226760863994792438511094503639418127820829016690476127735726512473203311958750540444126777629601051489995630124315455670608789756006680749232933760247312163837597851808821801330918366900903762884245361432706037035427430454284284164849719066103954009315274435804738679658162180869685346089855759312431045009450609859928168868272899446441794141153803104879276030799417753159844866313684674758945837139090045718073508222897364097020748505783443123857057100531219852057350050985065172565251625300414650558979612352339639480828346332893507810754170518530434113132066041796602412664802690888980343833525212899673210837677820734358578476341096464305650606202023910994768336953510431490086685325427429615524485156076249603523745414396371850333235078796323896895575818902329012452506977204345009439711140164244812667877124530900708193946359787430569279376545029898709683456654897029707152686099787076565992041585554838651634746779257273572258283345780138459481865201984281957750914484862309093832568153684766423865878079054279430219718231953778425234350274717332363229671671766190789919104870187116818501472955639532467279680744108963395855888233369185566196080538635340144537573028443108132664608434961253240455022408067761126862042707939942028792513298679549928392003673829384903645120860355225816348983480749822776919371685519679017213576949659951567687966549562093072855544372713577164148669053454466059624232388557586452990385285651681234980148560265615203685970488062817812213424479995800511596267377817504224211720411377336766583530035338234027945894828752497511322152239519648482676032056517535097153071849751044371545997847627393403362384239793199531257634988971246677021928223837539250886992654047009809262270213149431591658912677612940346181051137351697693882068094107317660337424672452304057248767694113606623471079036331101302480076704748154604505429182996824063638133991722871119294169883812927837228705195042885077201140763752321523426236710767093631631700377512791747006104092789084038584540542529140789008970703218876079167420798024206152448875869100298969019274412440081508499114758092540435219917536508852832502198099830812661049402651610453588294340091671572898324121462446797753268017032888972360148950061845628057228315547778468221282526233998590444701638680064670224204589186236687929661041738960558564886034401450902993701130573446548333607542319087540765963876201406240411750187200997213344963496617369119131957488805648246473658196290856841311860565519116027324029291223019776470854249003383761650427250858267471464721203869906902798089031896902187099032327232957143794379191706959925765619794787145874040717718056030964985148558260734706933533973916507467003264666335383781050330258495237640117892703406519169372503668899955937347840977586422114389540315523153685253663663285919230517096671698123186450229561386853113746793644882668008360459886053869423314737926462036811597717096339900479718257556210213699681011146079065560734826374216112904983911428610127156253164767390283741974993476576506352387287712277152725542785597945168382999992019119682507766737349046228491527520417598674112828918585599466873219359125192753125887899548271666481474403016119162741361819012147915495334879296941950483879734477372355696901688770281229806535294984077965467275851766885717915270092729819875050447127800636138235051300084171697631742668809628180675344055499704629702905032167040915301453093651962671430350819493847102303048804493294711720708920481837148857447699555445558287194257507899740334756674972073483270761442017454992991770915315804445110493876687724183506324040280999468212495603951865498674393282268161520951857060093445991868171119319080550612350663391797535696546325073936153398154114819524934748217933694954373974807424878263417052990899732655769954726996895476581259281275821593237909313098427807694448414240538993987903414062053309910499371897612320291903713173494453373712702141483978076191014027401495076110262586027019742505202586872175522910152415582199786891462093732278098893299152607831750384765044051140099538554589663033356367471766652663775741281001825171922951505209258718847278519612809951879195082600058399262006952376555451009776047623812861474910023355863424204453779629955360149896639450653683964275546387480469891012404796448281947848173588182070638202063109088567393498373190692340623454638258011558302625672219059233302268133704402375321278028731263647115805963437166720254233979168695602603749436202192758416644249374644381963983981349965890738185017258085790768651005300484961676953108985109240505388668581015582069915807211123891664587769876818259492817681456990901604195061199555014849182781854001736604794049933838027695077119088781716710780144668725384012752124212591195941817862903947136035309319319262018220532716244389833095630611244730408351382334629327607528113686075557078932106427630166602777121551107743284552540578178165694070164659620056916083894711118781065002531354378655406334002183302402682209933334806873088251360429832313737522877378210623907511896529261593337744183573000331175930901404033084530124352346166408268851989148003668461288516878464219691371070997064847159812731884142915157241546999080028607600402113027097814563359831056296951334696145156405311657163557813916163395391242653177260982527484694696984651846190504498841399916259110105709196765834876536164389165479532171481778448422246380311444681727732389725487472202414673270776220990573152700188076150817779586289781070820431443298744730899140288306661087307383611114782203499416314624239327345350156006025900177169792429530912227258651817761436658726976484893164756885105469524722052397274511970971117731068220336645987198114021334665132513683170323893558615729300064520304877311590518566038432491196040474245377299536670479846499031373406977541799827097579012626595239602430443486772444596784690249843472605410576427540979563262987343948238356861713826895969889333099511191990957014005335487153807847256378877886228656398949234141144957231429654185716569039836645818885345866256575204506460778031825431544648763518205828277231936867182229201349495771038915312627638361828349891795319333655878200917916041926640985348093428992606385704876987311631322482636941306784751828447343777919201705573373982578499317842326459478866157805172698559999430080873634210228410023009786541306258873172888452717954341171447941369984524500379860860098113833932544048010518880596547548364651351803700674678159329402740566628737178570321750891819813095324046055133770641461505196350646418879300977572176088829146108993372325331287366502754644051378085328622703782910023237860671692298045780674785259394211403103899980477043382504166195490757456349518487998903096066538634134285100794305177019348359651376896166510909446217646535682703266275011799431658243036853512500552876648763651294263249763100228755174099171616913174770878583657387617262060585855565899943126553422998454873925814507806067603040940209738041092781628910370270831883983218722111329388336981579972296312159484031504688306944706669779545666601768801800408983737443216378943668338313120936253900070754022295858980201734040480166484542021915667299789833112373425013103486266958537149599998925460142264400346914954036179232137135059676710972306709132151669387055486958255187152857598616642367982386600307317341825513442224083154387323669052350696211091374110449340710245053364743250844994376093207571554405444186822978260549829924598197599380406552963368805715367353484061021420575138420914774812012785089927492812032008675138881170336652655237489204373511225624321046723466843395172652134023753936270671085667799358156094495308983608431285173668993009797743729706546047594754063276699553363184267503752601269116929780101631862877399970971906874487014505176694834397226594143209327549070121608724144507069723205817311717717344820191420804454633545899024091842530639196957922227522712890564576510581724598967860765976219990595310525359991679823964610169244120682899229358088335679284389463369039951665111814839856642107329432045449987298593794499530297617819877853651329012664687788046289867238645684375141916509471262811992108828173171227565788023748921172496572310247166997293627389654005755545182041298823833406240494237565607299987209901443369825760499603365345660596792648254336469753427547429325977070686094544412297429248785725528295863078247419417310165144423192409663948477720830265499163832166655084672727769076015394119104811256512251964988326874612182523120160482649313057407603966515754813999964046984044995161695285993685158726941100028323593523791972905419484495851894511857209715447539402146061090542006822461884633014491931939824579340708544766049096675989137361192795073773114054681298373221014460920999876714607737079472524770081463021034882983102907858639269560030876283409792532187941582796137538923649687144430105227773022398088604192682603231276567816157451529009429035147926655104416077354456863683603457021467703692821425433400141315854264687083293027605846543586374912562842566982670831912105366466716186700229636902853410954413439160245722728072096893457827298300192285746151644035167612919089637692400912531930208307469655727948089077671218235015880280374601849287491000660190742698397700130025684142786245048054271101526651945552113473222859395018521555580890246881505248875154408523241908709801247836799285103172067031055749362801414365794840573485541788932133256144389917730880569652277696422135843334584922736711485445102099178350333325631127110336016293323413117012775363822314799776054016780686693411671726854000357727217007808612254631563240449597000575588238023230654710426967285011187505396758494248407499507484715859331308946146202436494277392196886396198285821174225370076957484845658582579350249048025879326222901886146898543585216202114208879416089342630384575405139756675516035462990755984958648206628346772042913258784267977395626612728951888273241063127438257786180878420581809735000599275335580537073371349767540858808631115301346375547958857397155834240683466663740169270737858344750571742091263709663723638239013664001358155277515990896781936159049435507469856764074791082138499182068750864550983652699540005175069701318730413882326736339824536479118973836066402629698073148639768145943595249389931898849213648009782801878004085927980960224488220809923805908474536338260835421331642826395030154818383288699593696548452437770636014539788096218020328066307759739368088078592408394501797875215979272923938663222062970726147838185440377523246865179860355092569244581557732859463458930832289862142957099279846860473153900408335446287510598739138265863487431813296840146774348338282072059611156254880027342700981938937382263360794218696359375562252986190282752786251010870326752562045014564166775761412761363992812950831226969427421122125208237336820658678533101659585516637555349955711413358607748938555202483770329599607631830890591835465684837044566349187688318604958146516242018713806156707661907737655845320289601338276950880388410144294480775653695670143233482660673265859125414557282060147898559728387041935630146048520559440722034413956292396177765046601818950484593064759714699428195925366736743360009560792559023497697213025707195111926441373820521342728394349515767482235077633632004490215197493828805532970912307955585716089206275433362880242206073032832020049944289482588549067125842996484066601058694320852472911983896956022127844868000836092174100324724167496705612508355023256207074900509203651656239584823162952347977111617783911914802592135187857064617887311218814693898074820416779724343882795840850665500429647607744382234724684157764641607623933266253841147419773970993050721474788063212180139547608857114357293938843425088269432982733348084540165004225342332455773835534639276724979692427897502383780670928033472967675818313009298781953280621651574517119597349656692549898075870714174187877003853430611855379867465821704712684837653558616198324177987466588701262887506324821219204300968972607716460197542288659870754042899895443391015445129295054996080783002122748581553958065532334228256291010094966223959262355744540328650295746379190211779694666281364831291940218210273787179752782944780850634307126766707191414499960016382769178582879891538711830373228958146049331058878752350632398313511449750667560007744574606338001939721013433581115790470015181883687628159826635747377604197290310195795855115933432806928912342064344126439180133537537821102842457734274056755810411196648961912972104485329036235277617579607788525303838794987340685473344471362592293943322815659767241474422588305605916493323565166204223265973981694498971826199197061441122963868733979936875179703447194582586696541014987820517330220786169745200883066477279067971000370002104005549511642718556852529759619495708389012376203454906946313284706337392782463374465765329787522925197090377761033384244737933974383110365402148806261019918739513106443424296236721701502305270397991941818352417420097321114277223223831427644569237836515962449135459252545928184871200096143845299762108082835256416989739786660987709759175972462007317546940673469855969876513801739371347652706088600700442656055694048495923874128161529643204027977350062522119488983761330526006885741500768552482177786451019093054636441138930834876790464607066452445363185344041707393903674002348406642804123405078762807114500181187163446759056136522127476221234909665615901133327075361631237103405760653565226383140828649050301958613108711809980918258726770997760052349138647771164690532486003920621558120164474618544424320638091797023440547342549123298507107275477726746157449332159927658509804194468839677247562150773670096357083833904437323952375246732816617012684612963211530648398137685042984354084047591690685070365438357278093592114806453602327907832528753991051098449357251131046427952114486443165624921059667140448343965933804067663839776282306588370976624599931448315083007164307580507588972995081555884892606783467320593298578216339482552234930712648103966433465117365787834604703952691135269115850489652365369705492653315833690619036782117578611821952697460551036833447744870368406933038737077616633918381357671698188189083187403372551086939539093810223661921939361900863352589852814140156608783333382347853967655056917550065113824632471640771388347259715687613585733411131864610886587442805415311707672040898473484601969096051532631573705423435637708136974416054510299565129588635551060291281618539922958791784046347660132486076524295682058409296563085562945084547109890253069031862201441036697073323147319548633061458048370240549801597037277041546572910034342849766422972353339614831684048753124719504010774962711618937133552954523618035101575899771745051541806935184918539337306139794990207886895979289601825175109609443960300792347828340187319571691374805184603023380437725187240979440899694452344371620416542809086753983285365372732321827616158528800259800318988855284667784483823446967156604124423973489040225568545910273781815754822015259667893332196298126243175166396446030093951997160675684318342792996976062842747270730431395965793009065313907171159762069523940375875890060740383754452940919957858447411286939767000335376166191356403214967171983945272328034470480889843227631929529559955674120435371060938756479375164786259232698074604588972081545503675408811734744516503783493744283978813726103864764795265708782557343654080860182988575981296417534171503353494806910195291386117044512599650802039217066870647711781931631746067054118288020407680208996753534002309118728952526011657633654546556394249608676497993789446084121342411512921942861134097162303529992622459944858544715184410329481703361582713192529000215798863717922609444247244101256951055308516955441330114697951981967774533769438442399791798977135511860020769615599994370699213095783603882261233319360319224052724670876080516477296273381676944838389646002524856696002970794173029040964613123636608098920350161429266954868066116676290602296907657195220234321688750194608920562638505506490979211703730514506228794747740067141437281037137866444049054869605104624124659333141618178691313069181352844598551342368359350536955210616780158045595606670308506593602304221460693337383353778462151341575280642631357667701736917652778390191932467858697743898962510206881397328977662206587701561503080487946084904418755078840007242601406545330773451306814183166555144245835237179527539522282555851186856327393497815409535838130112892248077456418335760436526266398534428902687264584316707090791495691848972722476342407934358234035559003457688932000514554156337743144165029124294011004204509543596394446673082628712790307944252773262346064103430678840074359138585102716633660815940546741460410656686931811241866293092844057415040943613238937049642584793438842237793699358672769492333035023227638394719805172330249797019244823794492662106499465808221228471742421893063535556411490992831329492374456932508525441014534418871932998175464483296827811694976555902379432489148666352592329153278322087419987106885317669905244717282040039684061781262380788279442321466619445008796590596482404807789618509240376669359477969331913423063090634894741907023842724063662717860967669788848257885179051286861021642901938751646134826166862145692695052965109763970407914875876745429655308021520276010992355113959661277940371681477971982041977313267093836220755198232538737779314193815644711486610759683498257883460683205254085157949261746759416766294194306352455538467067116274008530543157630353464209380087330890998448290633156078214009281188000080711125160193920537707865776781395731769060722082080633375449492576667913814591177796137688905725241193565053379751307224145435519027862802834322247472152632844677432275511699704444423640514889600169081194584248653235536254937939993325127377195979571688470836071667497315753131631378739427919597191453564071866316090194318193689738462288559259615145907144797238700027339950053474237393456306302383009585883679160574420040298352038067991165261134455271390385378967768972356306791262722083083678152412322598176647350322755844799708114175888075143270862320944688772630706305259059740584057929178846880372603899776202296922011708084039964914740063176706568624978787835202552772400703036939412498786249543744590250393775349890411102037987245473938734919521103540154419135658351479254018811254581830728225769847138438078141507611247955760714295602492850411039508164685019467465612146753047455170769721970303299140919999051276609598671071788569695711747968662206147535364446282011747073795351009358877569071173861009860123456755065161344573413729035287216861602930413605519887412248711460315926188962789725003360361134540316406849557522319056259310675183910833943673457472582613273034672688002667475902527676550149178679808705207780887283829086590509669929594987057551670071142524712630506701205359702554944324166887991066215979398827012597739380537193607454033368559536504792605729262030495675853059624000733809451298448322803238784654297954582589441973357490969430487612730403355875683862784581475454620807543597579488329259880924000036401620631118223644269401494074420317167710528598138643245729825679575129266933802369487973359676202446577134332285760507766238042606684275799597899731543698638991644088648966165013477348349238778587038132362850177968431849317398490739465562641492573168855912645138848774414791935506938609551337722507309536240807179599989147710482789435014346531067955003990018447875573083483583710894408709462301299255921345986213345779692487032717589312145726857524051087810896286909531733939452121623211773287867382776811849475194003887604049477183188135521811331268885022340670822346822763242896210712254283145893395789960605543102275693739520371887910637335387551159770022043904704762158892296729500529292358927161653993636156417736239418924992686679854062949044650505079074544134442490270185013897887218258306391346939265174315793470303814696694339993147988328838645639766757741129027053111896137868005160562082707572503995454286244833125191417264991903914029563572614210710020220408274018932540406250422585499183915673472351725944273063500560676357924868004512173774953658506521306405741464600073667174937829635851907169059536434617872917411062794819598318865242062229445261817497163599098473716394669408104524217710157976778424040097408288144404171405574129502147133050897420380616836927648838041670720212081963009574863797793017691760338616279128052215797961081537547295327301137071236759572120017845927137701470451359941586728897819308049789212694317244301163533242774492015666809077056928567377839619781849282687001568024202588484564379301315082764611118828264730511074008980694354037698271814938185588986827188059715538295059255260976162936838326368414033167647892199229488167804554250381899802961831655424994398059919725714568674959315094755159094758156857781275117279623204478578366006587679178141399271013311869522962288120513083327535397918774293674282634385180240004547374786799566254652955729430737063104106321768661568997005600274288600655205770830428780283983308440972899249760463742886440414665453535264182573113258361705037900852611991154572775427386533918517659932847541988760560257770246619693835428946865616702319082336374536529051922622753566729762797791330099364871966650413371216887533768577511800782163580974194405623632155138966044521200393911857838321162118582586401818696643730387237368183685266670689787652756028512357537442553265106939844331064283632102181102275815171881275065666296663274102436225920599364815649639209869295516683941747784848694341225295888733663240111890420613197548158622661505017941379108735927128952989167993687520199996758665289120953529515658026377890770785637046856962351580369445175969760033709774784613167781420905647388104035431583991643182108384491495072631298108304982420119436641280554506680814279562712300857494944634387627441588069903196323975789686831776983440903451791961812992374847440116834117175939512256235790340161685684523309259020837871836224738596161641173131489837012558606217597664481989410880947717239796666939372555512483831188268286597239106628011534100989222264270659094452146921266202337518652078789916544177825267889706841852623760413327188001499610064671025102029278674802078338407373555871401038210698121114396858013993541798705338481696142275968603625666696180654801076431681323489465716995714445957536996459787871318131343625820192869317194635581024668241088716645191296181313425815978737182037456645705571899988915555642502019302915958225926490123211206626377677939468255982801056916514636240726173640115187446285334465298989188926507255165910634620562389082854368345172556646308721767339971034747856599447079339666014942150899113539181765229137479255259359812061054612350027657172251672087174157756828788134711614229717186225284512196861564339527817851432559663838717120140181634698824441514976366595923972468261290870343908220530243992221052366898476480857131126434345326835707995715942606481383987608340591293875296479912172770285977235352198971582380346170168604013847193100235956284956778133052845953493840241711325250488250526901196377335845979811651750922382594692505224093868360540610194280064844507353783225006313940901929627249418963908048985242515961949659660728683220863806491292359323340636525407518779812417650115001510887497962487286311389374995537615954509670849842477010496022026282982392934680436594554448512459472600136505650750929212567674185058107658873524541264043194415565896815803407598532958957973199978534094018160545086064548977373162497558024099350264146365216943615644545644470932865569879715238470055440120335408633021969600291711705176984900621347502231257960260094970684307507153746461152943407581044421853201003283229055687118028263458438930397552063831006326210499887944847637193352700360145446706488921069153296143821329619355465298348325649845679256912529839513305763255355343353602772424561994707597493860215479051355390283333571019303263688961845745586932779189661739831726858398312156158419558444836216833333064322477752005968289449826729051569481359140553089328419060093349737559277998828020828802573562931281993877387989001087479768973700126725673100126641212869563977023066540545744982210435189168057555965695676210789906943308786892785155636182758727116003156714437147704368458158354993218661993224837878208827536741144670020361380519588966059461509974287633336842996752695156833760198169602998615132067930346405290630646935301344028345138841180245859176270830086588903595937461600648557145913792675761950266886505648187649125502193944709758799901440217042596672623576415330503182816400252746589127750194298671261932254616755391132216523547258920385650365487358064297756933458908361089879556739839385995180747298587833030925069555972668645575263070701045479261753238076515024355727489496056959966217512812021650453547330095954697779756037883460764227878304535005039721709260974183135942371461833501081315917712866209069240420083466115427284103438963845913678908354199507679800258934518503692020489084454502745950575266720045451481346345968436989704022036161528661377432531786939158307603793958510375535756548585261472742617566989242019664931004849316197116539720331029178380428005682681699637111328620390714095562249910612421728948281831742282330666405737533872918126652779886832408940656052596499746429339017805444036220482528965683240678101250792375606280379098842947964439882519921441558321921065613097013213515412534831714992179947901584443452890405731250796885804968167321117220857983064582537810653378792999340687867930740168117567044232851108465537628250336442174502678186351689393594714049693755492632732211596194194653449389783570661446188081867920508457985803869393472627935388664486118737976584123526196637264467942037994107184861756824158852847982044776826763552828606299588407954979386434903416417823471170957787325225320629676305432798564917842368989622778690500524534168599048764106316599892650183331674346165193332535435457767344841923810118896157797805612036203474652765795351526491398199401307268894089593924810926082476044110862438517669406982614489461658664893757767859131224216439272889269829326460931722405598743096838346308975932646614626280125950082810066376446919284917497194008826579022309867192432110076697226722142484518431123039747686669618147016038087977860355425200752336149931925672282668296718434754701310623655492541448188915701442032932573259598951668358941230710404095147486395435041972737653138030592345023471688314855696065807936687000064330211217530824868175141435264489389740397545073398588901277684933970859790776305721479969437429688357210163900088932911269083210388946079122003170256491014943457471340439697054103487969852767934792859714047371025218949785449540756622289804133050097631219665135388576267378129788705136599430196839892438579277416993532494334564656796803098277220464130093505630693229924213796834309051665586462091934189584988819217566309571708853551220638925554027228164287244099355892544144509129763724702135623215106179041907277039767715921166057526196464095288769667032596926590118409437207566082472480414870937421421834931192611573721639406363875603252636471123301087404872361981515271037499911901052730854157979097753461920850921301896665430328194803782902059389080965726425866008566661311673963649878768338329038606324879683808109955934106390937577349317924318554392843701200679113954115419945647324067251932049870445136210838933756165252577433004502931395279747492578618335007840553369782860652510866601458214262924921042650784493291428169719043105389952438449233766200541426203405019211499354549529863746355564960710830348245220720717010044433423240397802850345102552561957569560392001156078161501285551906278642505095401837086010384064433736696513775423412215319523789801798575470048148120407479516246881701238129942932543722275036675570378925598091605579287340864529971439454679704170709436129312914299132571904266327626287928420160692905142850444725224338022622361946115153536127016254080602459114593363859840432346233827993373021428984849785871406080425073221490160392773621235315517814637466445298193000451967798406027914436108693836160304891255681449791682353852894418821121971610631368580656848874333200085411364606168511356768509212304314510769250113822809310456949157879557054038884215629171441636256572945662641222952862988190514925967148658958948698153705414047078901569115199692781950460548611746509866949799424665445398463493381461168944621505850103536945253364239202251143028592871618650290485607393388652623085797689517544227675872006472199484685674785412169226295196659150877742527974340860180957265356351840404673162271218519881579497280317097865904126579308104360943356282679121939166766657155784911128420263794400232417379405108164425132518793491176915699128958941919945428989561842285380612782023685648735424692866711248671064913823174513643384811192958027894271354028062502383104113371990196207033235264724038224509065766324154815820484666932207063778194265893931266982508619047028991726143549171117386170483661852992659990619580185003874790729313070598150220089495063372772059291715972911000006900151626441785175314661285659474299962109344549673326047275357084091034005889540082781298579211003618454084181558058645869871998402131656333280759183723231563723736234069815367955116859452259478118814952287748039807687850341758294759046286612074867782947649591965575409847846465997191946210611867899603738308594338273219000999555624480294187278909864161877271171536522865909703395906822656850661410368531393624158320808948623297578098741310319008604049352939428806637573336420941265650083062904713574458423205572062881941851928765569642910879489220242008392695318222569416967605415078173955865037098569749331394127894692381138264776989465563105946501088178778284203434126308019288826499622711576739400675377595252158071702479292481067604690172599908986354350958796230916161330625611902979655779650030197819424934450787658590141857660408878589699725693545172727307762260327234591292836607103454446733395701746332486729201847397876618747789712861577974793540639850327216878394336336550606887388283973776792943947332338791289228712001321972476930657623615159193915599923335627849915333470582480068323188913354488552533070058822147203087614700404026971161976024596555869046871350003166218894625160249898359662808006081314688919889514610774840842662649706424569413034409271732846120614384129083203746867036509557187523908228075614029124461869993252988347042499556106945801501730326410755354709084332013310327016555519333457868569977725373315822166494460949855510148909965026353807747588652622987616020495339422907859198817291247208998214673803719209067480068447834701862162844139734724753506944156043636910476558853251981560810366054439803190649000888033132589250921052753119723090908080194929529549772106059025660239529492125040597451451132694352695953448227772906176767266399218051429552271404112139468568139168931295967869554292730995674804175963947491849591162714276532795477262555810909374895201315435005032095046400061591018164707078369839170452491439183795267449067285682050833236438651669581281589147978070700303550713643166099555805518985821435733787203020866414568335186861873777428909602290286046206213354751663422049675950684801631524014679378114361038589140910623383270845095872750737881152089760014025875280830134165376021630813990507303590986818921978085756318717041873475181825547170477450123563249040200095907089086496963264015755462578524901625559981091104644701257610020504664150935767960823328404796513396763808361434854414277257039836400602221724670928252765146941671447587122208518254408948917638920358498284748066286708077243616767763465712591628745188775780869200083774709140720000227360696608950750679417733817341767460733858417416242315063791658314755900129598068295010880117959026700085989004638124514712825791360256932766920050575464090632728412900448036503039015593551413365923649316831010937773743415117072846960844904487760808142999197172077626609865669238306315910882573225245559283762810585997203576321730243504081337405976346822161417362111190739079538978252927773145031761345438642643788298221723689897221989557079484196070838307904593541737560642801577339063487104406349427039971491769153904037003134965788329525800781731157108638418796314449902972078356684615774009741337458288135063853794418193775673596661538277486548059477702119853473415228724986324189989987099671482880931639466812602329002059729378622633761672794563561242066052378778783931691330732396097930983482700105160777212593586563979022697751884899284252489847411618507982414230025739474589291791156725535732207846149015502878365902185228718160879658742471427304415940455784359424196660263963992275198855910649024638618915869832442018577855955930305410488737899331430833247683618828685263856940172306624450744908090106948928181391820770029219628858794369318947692198013988196660443128291338409829971003570293549019037661275346429346115083571135929423546577739470053847849044525759007846123737290753281525004411041696835194695974672402517350951139873519182454796585632319942802530143301221740907308307356304270904832494878247890225144438740806322475032316977088315268968404887906638810722843775365410655843644920400868039414933791916616049164254217012523837409263427427668464809821707895793144833927501481190547882843339176179530942495035223510957741724220775659777347404035567216410256681896738026334002096090883605007556543658450855884249507180659869416831176702975949327918603300907993608777383897105966711141628491798961966587053910660247877921563314908240016976375586487205572411292545466472931797375772876697398029492207971944107373606304044361910290228553106956148022241710623820253012808406156252213062135580523276473629454900223667522988824368075654376899134061586677084088801114933971607621089585867115853988221947283719646126215542305523794717523426143465585756073357354807061315969593197729425141266333804330615539152336133493397028143157376445016021082933511371904596528729136553139095341155688117590930093577747571303972191535721767823501848327052840168577247188108660453687266443183633475586357003612077338492860770403056980716497923573814826223725697628002992296799008794136441681125921221082710867013200073492935569781771754690053376426883193396757213314000303183319258827254224005440812191789684711603768648664431162325579451853130049727844944472110399466167191478725420461489225343156132837663554556330156283906777233372466254490443525516946016045657864414094211238019980748833709448556121334746313304229390231630421849300154711663940108532636459813283493257083281593683027538925880300336007068740582964674484794110050893515786717654272692888923775334499721451259388127624774040318065122892772561587398452527114707408017155747118570770286346693488321369092429137673917157306590934295638743716787511600428902504063693716508959746723340098203071385417523285530537040158884577983877263380137921252171259191369713246180588823148828368092127463731261510636273773819891594822055978868548906364170218794708926508901596396631389338981232767637208250961959899008041734929453430976290235618729827823785354925146495241526516007534329625560406244674703667007902009763240571826929509324467038253692981425418547364193532479736852131565414261522259595936336496082973467254496997058644445581276582063978588472071900867959721218492711387935449587517751680629410414761515352008072440134298393964395078609423283309726125044280990396590842499476750706349218777333613108949746895580791510083708751289813021785672735006867999338655877091259074291161117867448056604245873963216700306090618245754344449908560272744605340994711569322266004656669539144008389336729917794328701506539857360639564225152614831906894374692112501406060583860436906799307807730847638272951609099477383640081043541782559602545816903313779860680338038337837896327557410517709077347921860622122777410028456650610680614472649352947650682791197409465362560379470467138474860890937458448635763727465502249579429552960777626333977472735119099346895525067793285715550513177358180646345617563702828081415199267173642976538936364624575764453463849735161273411515119806045704208460114673166130727129501293367351060645903242421230942781332465227417292361407894125518346428725695843351774594604127621698302584595795300738136486362666122612797997417725688236840832573574259151161484024803138683066799752915844662274228370440441487793341396981132676946473271592343807756981823595303989423442611529207495482729215509587782194553872904266608883560870292517815816253413727781118277551958087494805793752607295018676194019286782992619385045796843893786050242413168111167793133907525615033083441014591123446306467112134734629328249019845978969669176827780669039442283324793338580556273362938472302463667696780434799963278766530735756993791460743236395044857591330109722713955613552476016127570436405691653718382346758528537467750098488489203159559185681960571037931128077904219812648066334163920602777241750039195282406866853578837825690781028211489093298007826324394411342634646863542281620170394704631662803400016605724884159414500390743613000633251100444661795722027137780357267483842135741661165885673709323810003582916659649925447856748180252469573607490705417565131892640218323290421941270596324014526078194653485055251943390028680827269307263229775487637164194826288577085065022334420226284850313011978049673636081671822789556387693784734405328773558808791536955359989579485198704395536581484610244774849576609113977150830301024078379305885440381321909905550547654700710949397241935026701077846037140201937937009285556234332287909087111097986632291342822554046278818594795056747211649191774352309097172582805719342268435063088641169416213424414711032181313467463352540538814584591000257769382148097622012339431453543565531387616907851031610537274811303164439143861490193685449519719610496618656933576028324701688704421323210146194364525288633035691695706052755132597859578801586840064227328478020823986867054520929779045671196986422019731467227510980747121994370285759108468777564005388407481691860212658424488646789941866796347508772810289300526750606424131901955707373748896931785368874236536331740824185385673108483211031234484720231129777223719147786948916947789548390647264332525187151025387579804961453472601152692799140479023372445942644659570798462655570542778165592447284881247810535118631345842066025098103025999910950525192722143224991893163010769380930152983915812920804601987523922444756008802781015734004335318499092777445016358975841756466000964981166117245128418791360330922433515438316331671928260445265365830323742139148790995518131691359556060912328450927036924670818028621300624512619138789358028319047843461697525009620632948515052320733135269504607886491050622456723554983337195604551723061766827088598220306556714835738539327015029300388198663857809710426781424572975883822043620949693106513067461420906340794447740353042878902581486094911756203710018932055021864709412966535276497208005551456806933573602324502481308616218214585748997408746217280388694247447633060040204939419349517954712180905427281353860690878857096939643753275067239419476907772563209198673811828435982108059959322943690004427791570978853033486680209440646636755714578423099458538940403016076092414030727152326525925553682342898206905904480805730332747099833077068466110849990348569504052046627966623904120069025763476986924537081270920162100003384938524639025385785709612626586844775937348420645279371683368046852932191613350923216362916035366784390572784129077528686672380735241789632202745031318181237684769753269107872511289921111518752161456692614251768610445267363507904829952724665467730477088326406439317170484254814958134484120039412447125744092313671861403677206814319621918230301213641005120964767565547862560721654638174810609145443239122937913927553234403661562914533128765784328240252073589623521067962800038442443015882959874619654630854955198590048250419977790459669880175602063848981941682358925645327040322088865509781997614611280001454982332602489318365480777234241551879651609726729211635298207366076962112458509872705634384525146452139402620805841065013813465005880736644916654202221195181010798116363668993672665661033199027749270394896948937063812910378914452966324809082092460681797473274170883282356068057597019841077169059507121532824978719668926580291789494993750966127697243128612579539101689727105997271979476452829352313164856270969050039309983905009823119737562121628943075217773290771758592755320115060322698149057989258033691774478328206320820722574830271532263981737061850351938058944032367104751576633902586263757747567284277614995188364135690623047509321295913791400734884952794224210382705754454888446760123295217038460108748330203214435724468850762838503560279009812369045814111959806988260902058473104226551529283114382102371585739716351013529904580235759572370468965721258435880404968378687821232713833467794599255491725785058293997708251600087914338809072886072700479939452393925421613439149663244229994692693044537158119077132666102771413532024328743583037447630966881909496074075911250116665119041110119772156884692775217041641776032289562366427124866696484646609212420905684256536327621885629664855523600944925570397735709229479811399449002179541869870392833904809522321144003075114993703756231578553676947498980387602420908240381222016855610043768771459760562390717194513731262712212771206429637720824534801940377713347487583770694125227883869675347355799839837067000599890459238301328809779514212815064080702318360616418904421251178370034477430911293107557293063367400420977688282175767765482608002991772074310648649168165941689242009023081372581299870248761479776522896079686281546252745148352929377620348403180857436149402703984283024258044905754389534021122391097640998427534177826423987677797581395848706262869675728382261066761146981550183968893736544669208495031601995351500282365849519693709549833718558619632467383703065902928842875896886542103925417718118785871791033063327565749231785330672259795362776103043470645295963574881613487514890004461601289285382296193074001322167418870455156686764712661063600057743248440870425236376336763724426917348691221116839961675714980396800360706324225594305432399552190128054409248438207147049961848709262254940428867456012029110637251393105832799220782959487144841113735603707950331854132486222432593171676882621799287226479094819378503614247431944662226685852835093626817637624648879622105752156102055702092786402631805801051888154755085184169421332285470457984738822407155059370891359258526739462858511544024264839616811767208989214482410948316412615139358368088538660798135962288041001305068459691132209813314862259868202479796335969804539517186689141866451910271895051384836135711300192467217257469505117242357146949257675842607872261124648853573800316363638671073774162554160020138843223146671828976235741964411703495742648491074544396750332895478666056653390726085865319116270544962449684899092227707555928031555310049013496081062750745665268570181240837540209713888785360003339751406481432653677814179387780142110145468969684411748097604243663335889736454784452369310767201989855033457380678417002412133277448477591239702231166893283143584609084710497336534519470366115479811697310792055236490869308700771894888552973236014091693661851787098520881488080339101544120631638846848451962738658961112772151234671036205099291529856307797204477734747487983023670224676913856706774495392170407641368295095440753972195372244092195063974183248215677409407215117319143856274930022952544043482756299322203985863492134734672880664680514960570499644520895429041864576878390055590416741570109442520272738099706702041207368701327884121106391864138722942589784744540136579412089744724967326924039646572563549597561304642333375218355357586547559542881152325574073988752619357159718856795633672350460753745673171074552599436415950440878596791752050054668019444001033983848401847684808512462395612936380892929871150981579311925280705375796585668003812835207089145950769997796288377616208023835550568160858921782139643402555033888529833460452052413132470371297870234552198913518072465964806651452108996184173750510732597842894177858140909895482432070045560041228523499147439815586439580987375032827144850743734207597644196477682012839499911575751935329082262020365690025419813587344997093793242303695709104117147929234714558920594646801246545837095768249661012138337080947701955736240931578948121796229562711386952469973032324963745749382219044059055614179023391206342644730061032005341119774133223177304325617424265394111013518431456831023393885416164092420458204623136954414766194784230007157786115503933304912506725998432462078150575052675751747171282596035648406275039071531261397475458045246039815307735258750854139817823511318068551714099501623536042853652392546483350918386109036134390796072483803388598250002331006303914406940522456082672641599791183200588058220056113982841527741954510343509924310420933896013796796034261587471735319144429189521082863641135653557177627040919735203323226915739419845074286181341821385479561380091436832031693025992031473953357385350181417037374275248538341987256910923231987074655595402364522832824631523917371762457178115861143424276894356668965621523549453507094759655560964489506852667725659919315519094677322617750835044407829753766761351976713763827420993284904975307420754943825137367526208714653696905761741525319029825195500392846439694137928372453226783372398969379946248562953076542021541721565476539496091156307037117570692184694283715765264790689988624302700845452580767816049349810000785861773299550285716430381337331407175103814678662815071058097396770479809315138805467479316891927692298128117297166139910565936498645979469282872593128505505612765930487609974067211438453902958002360418616300312397899951085699500844495916239865828847779411004035112253831978401252721470453020058730195874844225144901651712749638454295293943844737356600292840723043926523667260613529592761037938730010277232977333035977792152631033911768870121968481250274995266599402618543306603639163576170284518823961919186477128872894839688851796610440187877817343472153374204337886041843390433475761696621791901441685675171318522552256827449641099328644186838721791735414122597358953540761525787957615129522391493097831942780352374724444576076846805473508786860122664998527721422265502937049342275998755868392941191231308692609713756347578657104472741676245824947496302970850842249321766623052486322272360934936302516991574211169440718831862143955758065934842806417419369443563956383489147931618766459931733350997578427927930651683838918511614362531106748630065128730381362801258994641758213110114865956294081641876645765668357354525587702447877890653468445705761155341665719616337725121786887809815962714544726017773660526608326013036116578309617685715038888758594732594668411634702102528941970228893474410904960991022837756577070042711259883725484306361197582146212055075890583372129295795117829864884210758708814236882189354592513463060360011536553990285584232985259749713521061370616939843599574457200146291382379083030004198911880714902529868490778496855638679674330116028683126405833495553228180054845310773409285177129046905399873383169406693691475465253802722356669002399976439025812621463795969094607743234498899398941634123047743704020167367065069328408376711502926882036656400561503084922420570650124119684698184900920094027735950193008960921754955843196762816734826771706308653989179490351906852820369745346346689257708731211178149473515311025776373611611190424766793858342159211827558934445728856104254183890397911060628433660110837689069734989264490504631117552213245133457427840567563628365270798497885865337259571022337987736749008239082962152496337602325253102078725795783985686154778659832992974218301136834677445996009755772390906240603577462324353028334900938494377651430087187860664623427464992065130190465001366969040178980608811357975669556115091163667952692441398495953561022532120462684017649380611379243892199636281287456046920305893543512660548287717086913420923087960341799698131680417892704624249355659336402394297410236683822592973246449577751679711037914563834088649853384605099175676770097813375642888933533183574416437878193786361387789680559013398030552374079198212389355464977656653873810134387710015569638178356664983834060238315520159098560720211603966295490960158784089021997224061293635504895503274204926675378225742334072458865953722811136591569065105768907561629202797363643440562728330371593040144541568647639349093359668709406401701789521356462961931484354415659629277633921599250670653688628562060164298300262352555850333859442330531676441069689015458071141553341308083544167776827642977183922404773328514999509997924584953779950530260567887545883765499638713185452062288698252315355888308781851098738598589470750333182007821821055241596611174116510422667049151394146886815849712794819845239802099361395619592434954103577660436293390881731160423634636823208503674408235506972360678766282716302145558088375743250428353087233656316945419143579388091835931621684789255909237317394941991765608561333360102921471653885527567428633452495441874114103844290412696820806112599334727908614453665540518740497579442682315902747662317045084766150143311074834329023707359916998734699990402231655102348327306594029518439364670837051963662803884733259526636224037455727498196468569838694475180453633539503159214887394064652304677664544685917413355744012509198215292621926332659617138743341220476174298475911843569081468573023460282075029074834236893266527826103962052456394093561502003239065149696184638336670318341341905482446521862653265141860447593030677412817087802303243783385621486963035648524694946453568649297310593331590055469530612955185398362448792719530407786730259284332443584897805606715930935387388776206711075568157120360196458811659069662871952471484133658067085763708776822007052216364317145231245964152118679591812657662576539589982160173093790807496488267603031112589993861826423632505390289931807488405637802671250328511013721104783380493559400715867769667839057482085021640799330927644391987184337917485038781366748288801092365328875580242064503644629531922672322067089416632240919791763353188495000064952015073509243545633782541003701014881088250017086626462053025111230190243249670961215456512324409093218573355543234314407825636271318064552513321543142138202971854013181309783005272150284528224073825846319990188630659802483764107398024285457568735477888885771100020127545704095966722987833926160406562738894300277397987938989402901774427729564193285646732262220498303043595291192321461496358216787243407845819996077466166322417474578945478040231482513447356412235526727269527242297184629469692106203897234741751627933673468392602282942415371460375735437461440738587187590803903160786315547501853364628219140263873269510829223659888462389792247471083250204250168542885072846758698665679520055394955289519801795688983156964276020884610600100135415418168793208331061587715222064436524262276979681313020377107795134285537264124224954888567039222021395331528881210140348017341043827963219594296134169287317755114085583715559235114220084000726814345106620556110675958012919387886075392650177292839335906421676002104500864274365442774529195767690447317463343293911370663724010191008410987322135589176262372334553693382101682612345001347418532190370051586126570682313111396996946542111043344093716301632615419480917462564164149398601168198225968737320080596721951741745872811943919640354572102119690991224986851060636497538223591880237983009456300528255318725023348649620255125820992046592275559295990179598983213503894654900142529512566995322530816286709551847190242902568328525554098277935527631517454051909993246885862095098995969544933989001667127393232798153994249587307409812904851632391313636712091865491108739792118915041068631836437375849519025904143538620598344104880898080567418606298810585700150954388518967876242663513047782775714882786958954970254718056345618259258046615254359661020956320578717898719721695256866315529687305416414433535678053400434836080574583633169925810925024441390271635510148107207186117711190760347020607208907906431623718616829632347408084546183705383629151531093781159643554570535389151268958076474558182680283646857211256817750302594499259382322085462942340647651590609760920219135710924339314010682648776006837986534326264059283379390207051441712561197029009627535040509817363656139679440591689057245183337886494385473131855998555877015050228498923393684928025369532844511840500310720793006005982754273662841155871175552719398942813157554053401199268912331513869043105150517301764293930088699628757132443874801302468691556950514907613904483104519015297421639361473975301039973399956499046962024980294632789154843297484464408522726885305812495160059043004229525465765606296902584202332177815394091530871194082099885236738782904962522140260017117200851903476449058611732387976170000797133641210631957323801498783211058832842380136392765584009612299844837267209325635911062067249565273106715604054193370572296988051137042227029844912880018713585072672598413433011266865019668731279696581614965358024731990789192106913669954665560456028760328122450268098970975989640970530412880184557790695961295417784989962627269049779730682220105365149567045129814639927292635498316623076462791988336910370510179339867986656304206227845974326653461900565824550795283307944420509505099557698480812043713390239000518821911665486924235025929098030690046526272672419872987033566641763772227537114032599479205198351440141636669008669195852848545041628997643320199482256393296630745307353242453839844105688409342842040819957318154565456789604876131224013612844272589617253428546271510949724731211961088927530708724076795801176199763849542711351426699050940173549811667335383623152162691234641845400854545940031213058655523077996228960216868599313225632443299305057643680860876737291564001244089955249702806330083804719565123670662230766027525383409410229650451483625567689770577639989862255933657071615805796130831304090679550354704563209727218410146901329702640828426156123638277934861592956142379806164450751848773424360684381090387152370660787598962744891597862352948425735659510976331070617838360217932208870440731965036642182573087047514599553617751906404688205219353929117045071859018600959249326284658905378399420312184205501299835415170683797966524519058625424111354482190091533028859742179997741909910425280913485260401133271426182533058070277574366295926165618198306701646492689983455037303094129788174916251527047694916692467097815482502924143928507373512628060891030889232539274407943926033330319257965855883658007452385931864986741283346253088554943597210183074675489396948899454082387038074433628563364782628668072622091844080717587363480376731311490454863571453898913291856375458989838036171675549895339159043131071242069085346057841066395185590084434364436239513527708542312713869654023300104424038118829081384342590206925255279420177222801424211405535008822962461444326159131907194744042957374827783133365535811465590889087995966277593499097405342707650333819970612812042650143970838899193453337973201622569176322410168551881258076814266290336527305322287331572263988290019942589567606689780513257895906064807001653449182453175454650951036939484719922705385339637179902161181103497540919424427392447353926010155302509943915027346015566571222993134464117558112801498489754488692581629439702299280808713664091002310957880691004251972626453959793737542907603886775430193410825144315044187137776529778214235726038033443960915117026313671810102873285958097607741544836905615817259118708153882362683258363052102416858691698070848116574906615752169561126674483255457032704617787176220607824171080100142994448417411891381740024056899211135268665968762256202622555723715502747811522887383595228439803534926880172498239126703935625956320152774820995809810443100849122371945086428595819015987248983718148988438053058255718195654487098423336874512838653687560103369187296569418791943352475331825753759630345369090314395717978155354798507007581473123903449815692384964548050990345237996169075027805643749382872926460725911240454813646589064922353019774402423402148426554190627357851821706235238823909868190083069286842908098951045254983817253602794371759172027784560969864774876123026622814529740912254035528330061876464535160480152357315998809268639431472286806448182438224847178578254616652181367187295424633282736382197644079140999605138082938818874667284212929099750978712691159629780431737847479671697710965799930616354543058609252065045366191128190371854338370670582166725520435083056036393994997413587985457161696768359167246655236790335580965721599417949873927649623687283335845846685341733341976888579625331810750936334388111629785524202502550651114829415583757310798144558833569305924905226338370625794050234156134760447233677986373208297291536343423005213205552280976098216114526514984774874946146451162872528412914991470277006798206566192976499205745224905028815919447221817273023224838652148940909739203686647616222931980428627020420534653819262528743406139822244900069908363795263221019554779515016509658814850261033865031762076091933884872817917017097719244563367850981986775608835962423439723331327031829516257823800414050421829229435649176002460622161382651835753580368900828362300857716199294005704685034450244875527218407585490336831053224729514643123028167606681515157276549989957112193145576779043406257734472077694963847704508912681951350424725231515496242028288491407220326305038493475323084580512838041443459789741264701396601334315333291966776586863517134453869898660513534567443629839334889831362364333040405008417704491439320809392909833248846068996428855237916613578416680177132561540375530125207030465009896530327454536713136247437009972225119970549755838410597877196274204089260577026340583682593550016487728083129361578253146334142983068182363675953583502284565048267483098108071117026018542853714543081089606170440833923235627459831006518211029015306750141204282454382065663483241029473165834143593017711120077286881907952302018217917052811524529471008783844124591844109992411606136262289090480285481141213173444173184793827818808517715268738326098943316782021356535644544635063827883470255500002696573897188982126471332021041721500797002167229395627423626847445723443604147562098216686246249810816025182078854621672015270726219152427876231609269444332478149947557409008120045294113912182449865191754163580268427333042828522396429523738850299750039553037145321445512686756756716523276805526747121760115292975144417590018200873802246057388262846248818069328085273292658330501103791653684495902380290679962910160017948961987401588286663879629789514668893028969089478169461517149724217434180402187928024195093876956815143121611205646143754032927049285235379037651055405361296786209160427209368830751043603796370938712061740076854006118488647144177214777586778929576077723532701803800685373175367221105986709975222369823805918512034556375484214287154159028331955275231765738780683306428610149377910866493761548122084195329157461636469829771675358390147602597240543157049692303989739002395482543210300604480623680201683476216393147220044834840428806734895292572942931634441939413703658793290218988576106882673096163754164126938345200815487008302524556340064030690005517776389467727622669496422415600043661743280511999172114054769720448619097443825947656250441171203194590196355799020187896061012005993847563689434195682135307953804880579498488460529241016429115113538337017995693232220384517879539271555594953115937808943630172773919937736346755697182800842922469665881765285249162195031017406225470413138612665345113271436555134821938731157659376700760526592120374876840428631785523872995702519372630210470088075261013338670651442602781018599069806800077403801063388937449589351558497572890464392783829225024223206815259802868989336236475814876710080179580673197563832993651125219543663103981538201006593799498324280380374428074497465837744966794317438659011509826054653594154729034190611487878906578479519366421482669073679948217781794923567220247654262899575553027625332913898821442315125579812464718652884458466445892646863680337842204433276971337976902255669719580842554423323118209346435881802803534590150702678793854822741288562978223096795336340080116414871157593704407478460032471314451348297642648248670713986284650270884478006620436015398740843082412428546500511148038416748298102806311245543073836975711510080790651287334280699676007370174537383208663509405009452762976181255235431476789719268260654648224187591943653079851286496764595748791167140060175726035054903831367227022713577579764488497669193214703617051664070990348452580039942584020752522311252511148538536242822069247518401042204647124507353673797837431725581030527560892171912941804784728679626588785067560375567820284482172605567425540187029245090863104293350842354753260512557627575280631067277239326952573247938205035760024063693018142585860468280913370376602877423331795953624533529538880406462657753692500963349463619106807007380618211803122593639737254924494716925676229834990604844332736310554503065057246754034946332436287936107695762897334747665788943284855161122057534934438712155558322881984444010666223867182136706995188821180450468718852109160332382377257522008579791795905246281230870468730117444205033480465163032320543407237846850654183051274515328729424617237006569682315654531758408471816592264203039056849137455270104853706838864950573228624970638227468316223467738400714990479564002563552653527727788832746138443826294655134794177461944376330477742813487455323408265385699689701377904276862001528371297257903936647263689094022188988947357476491906448165693621769803894021235247260202010055014151563421806872277385661871231597869527523630104504937744571847905456644705123910419941081330667943784595764824841518016592667305465445854919217859488477161479470879252464139195628035219196818199879616514996350603452167776043712152366547065721940990444444410510272267434767815866540971759576028252753053011396358905585226403714638683124153974900115994245756284095739809797500504473675879003755475689970444513032792217002404050853688736302354418261674900879966526062070139296481131659484365531989837208719601322517785064176450483017880166332091882313314659427992784934644640642070046855085081041648302290747377231515981341479658046923806754150936048407062179020808074888582860406071586916513869015925123161565684277558812157389877470320888585963366566586026987737104643538803969498770203059878473779366543940216311670429035717717114543947139099077613914984910092513810106243023329645289153865830933005679457749983950606187882226023194528320453129266285796769169856716663695173953528950505256395950232612540859113393382081619628471314185032202329277408439990890260026902829952002435024106252759973945162367738256266653743485989997656982203945333372651952828734581489635321752063451240969796395042907105575280492893707358507546205979336838712778303252772079307470452996082369691393002004816558619215050139783322103838548548418786818138873057578419968397566777575371551672005566302384124012287918254535022266153489696498983621283123965394668544647696164779249862632479992431823560226387107172519627360420517745703785323626423207870791041692048074735191963531155794122356308017921805666911075355002657199642179450354768181222333507460116330417141685201280598490992235328953920313033173887667043284974572121974968622138259985978447878962670094673001690420108161980301788907661358717152795115587279004041277313352286731769846682379757711338496680973779791503140918484568273436790627643839364047444431566987498238416348721578631469712255973284203623272171708204840235911081866279278057463540716204638833549190690961867315678894340246822194307286753946475128373533781175336749595153052251296215355234507164871586900699212341520761288691680981563520438363761492142668700123091138847671252426644800239467942229594151061667589336933556502096141378432502461194923065344028675976590718164785098470718138758923239618111286774614586585212881605895028475046693745359316568158694161331534705530917509137767001629405006039890123037317369788293589394040313452792616487669791782799473687946599858379184053517924746849600760387223404516947964789828741334363141160127081943721103836222414453796333923048456168976116106357410448811327508244581958197017633379329155543386198617559527287395882725279551242847838299048678521616067312921497391049933718180435218155812530863626172311531945823288637226386098067062982614681932430805866018965131730213675884089077192532142058579758740292927573666306568849847055718718087469769637991396303968300784438760244072112626818187218126337958116301548464549157682364319489797954988114066412471070665649709052882929900369107378755196877146323064107806167233139735931399630083916520518729188431173028845616469076829954563996370406963443552888356900221234069313712691696737888851988991043163629326027519510085792237539773834166596399741751955678171878877703899224024251942709189347384093540343271308109898326985815048700411442448682675328784091218741314673722686856773118494495841777018002498019130292526271146929271083752359222195813618360192700583800388588002956291766681227421781605543173026059197239304728226429090763867632524961363712054503014272353383785470684920546781238336728735946466126680886455770853306048858397012209242869241090845717416241220137485307502259169365627910946966713630888239978858986196167936665161540041083303429405965477130931375447215942472081239444010769511210640032841164118507097637720509579267437436448539530249300646059537398219451012931639734900132546012243896059541285725431191184180968420313509972886120348902568883321237547260190675956955101117596361867348291189684500658270132340872564706775755942060934509339516525707990128077717752282810660660579193823037773218163445919912095945458574598575052422334123292625902380768963718652684129865862881555947060459493399938593598100589889416457877514004772593950282017700650853769216937351478991343012947757727139382615198218496932157988815320776907733960635232816910617063955899298764913212278577329617639826323124990428269792648858008316455732567965253411177013306121981574860667269935415549453259489205799796490133937507412373757669000063134080030855314211974175353012409990929029419674842450698986704333038349434048692985548944083675771395396786786097760624109162764417813372078262568024626884712179414390783300359810711311415126027645680929278588380460461930820004765509348996956436883655502275469926139428047736063155995843155366031028555325047872472141401282461456838811530264637517886155501282728477142524435781190742026975777420022450383869871662168325730374759363100893605003823092262060574351930141909378723346686634988318478591356582776456037070162687413090332525586250035381557591703200926302044585756981064823561740905142539196630046541851942827251351150256312131026277663612214941957068732015927415691783190698929205989195611366434416375712961246722537557704591422182887157706906270175385824409123971519151498938826515321512495799264420101885887745617427419170680365953839541879256240576056488016899824447433537029653481778520803543846071398209236972927959154871865927889201674045813382835854221476222566853832477877264970098902296150449368448140219533623175215343891530134429451062993980214575225162465584028945062834986494514705768893168648516084412326112066609460705456277664399851288770951086248523787866005595560005818500648572047039641245395085978718617093161828997826613580269650151995040036283617988333777924377187868386482855999518504871206809131543250320755852556240174130618195343558707864258631094639542450869609707327498467019278263319805403534665196381332592755061873089009416876420244396184922820379731115529218205150880046534264446789301125711707038179941805752069810968476753004982262490212278576291818465786297123624424277474233221673637276589562013278900625689236940182958372891890945058859005421505103965991072919194335630489802481003427997029880986698139490713932547631851228648083264261008982868295122958039079980554541761914932021010569125594236245356776326359555153861151066959302007032180599872143819055542671989683079367288103300916675777177721530782641114734013887952034069158010076190169586905217148951371540602570904209334117248669139935606284997584443498901678217147671901971094237630706046895433531443615918025894630503248880694956503937131217240658898926434951355036494078936338152030605669009518630703292301511351447736658425249181225548417491675201534727281794510002541580063789934812448946522616570705891911833051604948520384705972548811036861002736112077669936613222344500660009297878722600613704492471553568042876568628499004872023113365370982351317161064556900500506467079204558247281822027510506159914755219946638657975558876607136364705318699894107793461218364778811701964782084878453395876254559565585420440023987854310091824368738609046772125403577246308420676950399207378137607080993069845364601528580620860381986847851908422444295365818462755239199472248317912760893069550507937439872043299321689793095814866051399530804225832064297609968091130458565250938881686258401127005606818530524508781906594803586502613265323690908670436902119829195893669458414745703801746921920280450285376700802487266363579201443853649916194926674225330646125025041849395568226992613940635021708052530585834440255074715447194337788127083215702273754972725992950545435410828976764413752953046396655831879728854269890059256702623648789921833581784187434019301977747320428624033356012899047386946611610641602582284410772951379422790618313535326248700954575048371448035786341902687577226737274380268503213837214585215625441555961834170512562485659682499274314366830460222420949029455042664905015973629853699872144551683210086589301940373061570408800362460956527867786894039079019541682973862118970314948996738593506099794290627822030839808012793839559714938888606556863173333531079822326326351184841661563804782355218063183382216312402896360402315797535760687817903166956459559383617739040007589413696704884550960042017312699105660886817552025653866644520078736810502594139291481823276739431680067570240676654386473624133300487275110738969565570229263831859357657413264113188800381900233001710317102367668877771127226180588179956246577517450264098447031176313600869264677786876124196719902293194560751225068785400975845697804320305321891929951636310943597996881786966669726578633885581364413365650491338074038264246870190135312736209893636941504927648650661343977273531795461562540349422684890843329851254266943309468793824208271253782382213246162546504456310446248028948100575594418216182005745381669289833242627895684929015181639221694235382419975900635141150389093995436926574911965853540320680390130983236851792185075641143197751566566065567451443458225993701459823004826942420416584524995039872408104606201251196256139405775841335987346325565335423870368637202892214609945424268659376209856126136745265186246179820854317471315454867422573423125418931430250012049759188679477800010841745592542025353063099908942385383154167186376251169321875825065498654418217556990474329244957903771184380631002261900286246350679223166036309087153288390881071674320534541568411025905194787574550170747640321052966626509758328985086110411239225174795049200793923711399192007384030197414791238592428933681370146610078162721859080249894780430853298278638839579284174991574883923455814843966846807483639538511167861473082361226471425295345924615641503201452755645371382324742986976061844514297303831695605140994796586471220731427750981194433532309070106513129735162029886764352353745100019393159448947350618804434317291709317043429550384945473843061168146544701861591400530664269053346338254484959463667478267288778503390941444865334901770536599821452990489262288196629522049363164539260364535187716498952385101037280687668337659907545914762402952428139821064893899841087747109477121334394622201942462502586104808585597192236864861557076633628857919608156651059671520050452965402420068618220641781953284921348769526029514549424720834364089383938605034345672957741868055671674654672981004228022034265598377010177249054722021165189090951642953818025798331718020539934683604412049475197328509270395546297778736271474323113390174515522001494764608322317337696778083862319294429682169542066977228345836352762934351041749003310826271286844337849844638726301740506288407016287915301258401370169779062771885870175664371447936673388124274411736214683178711819951817377922484718219853845755685387485971193092768683217908850620663519535025320552596023060003232529405838421662783931913169936243667881445260954175636365437362251587550406210400644409058987470802555992631985904973883968245382465177591489690383517495345309620047867367906458910331900277250079754346090994554275471333614845179543194249570871683514485459573229231975461768150854178396785051533384774244208108323440038998756877221590015584954715856430527551810444404820523802724554903828679959035389128179843742529134428768543369314008036868070193302721798825949936180855315266896029159427093071403396804597423527820984189158917286695720027299317142664981207105681689263621165445408071957834668857734941758887859492586451561802351069853013226859819057824369419184755333306534607749326478300257237921256240424199932924677458738256434278347283385558986672334958998374078420359006969649140733384890602033549833143800606083499628237344622802384017481572852741421898165489626989886378692811323269859572515842743469682315453633952973266802684095840259148962970528498484193321390742450066127321564102139134765136598711601905530573603133629773841876788136723568102423242961490657196479404800234455598437708118968939795827037373595358139024173823021037613349063961339796715447048645360156144681266543275005378305183349568662921414741691071272152423659206441331806930528843333719272909543899239504503524329193637305276317143948772850264229470617969493175869342782437472722914011369117267755496172598767151041740277888488909192548776947632052513106346986838571913754597382962834288274337864189756700907350536839393174147289472473749424489649663803168834802151126299358196786313812957095193759583245943026252485300226641896111862482123066699765057682981123139782625706167581354675044544732089136738370531426590567711951948246968147655453009093785252546369329544117082693102142011854725633493989480364005399173588845817799067578164173233833510606905546247849315378674834541946035083801158657793762776024073264329942823275855583458304821845216042047306393645958657852982756741636767032515029401521493694631337505762122052612168733503438063465057883180261294788900313530290174688310890545736905581871160655852639485404225797430771348238920488811061488547404265598096563036004784719925827297595347257894224251209482309313938718179876662653060323485772873720893198409068837333365770522579829053162371381149548418181958240843201197000169563150939884353058328258776640604529393702291143273498840860664476147569815394261867562627674748907410213419413255041004007034209793688981510687131778635524738841196566456654289803836293193391959523809258616946304036898367430075115858409715547152088998315193572304335249686983551555561808325920216945717546543498708016395620126554776311559972607202913270379661513796049470256999070537669195919293862819178315371019528955109734317824404652366391408806567184810333834463036777307846435095732443151178598334545011392579132379020560943958658316879674985284213209800550958137302731495204244454247792741826341768575342513952825499777351045991764122975081476292763281669976129792822632819417383574831034497314864194057416437779074397259862908039776994461535127210736577233856479935130819681544186801688072269025289828244738857873616281715936406687200454168175491493735449342410624292010324460996950154017230002828646371790690942042957433808044977575489158937620599586988171111773311999294679874312987698126208255496907104181078545900524895582368994902783999572237011437536418368073602192500181387852130779217783123849138027589889766110829052497966760263566672147740699638136171004748488730528246128077553552053066678712503871273081774162269748314176651204937551997203975513225995523038077574972283268334495536739463364025880624571738353453908237969807572614595114028587343402829355209194846367037819284106889690936178196327606624484702133222907913222292857507068084565354922354413127777661283205318458428596734760280475903526700565841026590019459769763489486781575698311059300360310513204021169868599811222103235158205223200094812197504908670652108009607204636925851649093101281925207163215088518942623508350624858047203444492416213525743105495028813872297621642793321903225046781641498750425012081702903020489378214980399672588572687899856729119109387068241368297845048864791104200384599757303609780349834581120394125341723357967729709238346477727458269058459600433893472093908433958027594606484037404845821773753259115464995605690073746997250737400618042968237053795365675177540495039911634556127597766057535159847535647155288142197022778673884260996021471055859870984787664900945936187956942391711174469481606328909430130922106682513273436288423308314522243830001542063601890261502963734762554599424773314538386520014993960161643449495163876706297720424993472458083722668672380622912350233661493682713514151992769218563474586222988344836511348305293350395909998912264404411009660354714360733307158055495648837642534501537266538260325223519221920820459726513698529185125998381464425049387235194743379553779875777664678928753051912686431197013167351714808675346119435216631349522055371689536571171560396540322923785282189055475181198886656054004720202914944018401419871926385179152776453889748906616317298525660710807767788868934660301191641702983475121222343017032821383647885463147157589396551572611814716874975479932570411428447823065408483910846171165708545393205765118745881822401632415975716178349312901475237670001826648211978876750213172610667183536734281256492366882393050381759369521087740271824424008288143589302566414633036835045854514218426229638677945601288096316968013283550994836533107365597308110002053254568483508577656140505308875254384354572873572461628476009472845676447753615980410139475832114417201034722440797168826282592167021449806762086872637675978205448747235256687949707367613605663948610990921239575095887898725754417016230044669567607163228403743540805469054421606119432462431728780767128557779106166640523784392856390024241905274609557227708000304124054080831483846331035745822785233851784138706508126088717847804473603377414709226501478370759901994566988801230029895457001918346256340165219071601562792156664879854121845195404708350153275219677779459193247028627499585626751688207499894753488128146997879946888742600162319064878502537907121634608229414821425919344720173277383331582070685983611248558450117318415494063120054345797678188320619700840578115384995758166155419724739353593236239791829809186559166937006933825953836328325657325474438588221370738981492625451871226440336744093405792172907755606859616982067789041334248358182207467273422047104047902875180405168265880845413308827533079440985853447209714377921119153965413679169831082351496371423911919020241524697111290670783366367154498013436369233613389418160361251442539983649396517561896232490492452214162285636814254517630819052990725932737184822663481127643545967870767154393079057406636879032591310316453246626398433262907818113665806882268342571127494049979853662894473941764808871218919590274761707157082021355225816130190663793059578659072346331857730240859610728449812147676484646195738205249578056423272595483180263696226511687489420013866932031932026403858348700508298398536185300269739074685102534633320815110879724676175377078801409042156239095640800746916414650062171578733583461121571119221294587101387615840410845480598539968723619019199562563428461605543411065282907008043020897680699353380718651870871891905137774335462796167247147473610540391805385699796979402852677900257343132171918168672555069126063221196859634249878311073946282616914497086245994534925779380071122615132667279200711800402681260503148784264901060139538917548914038609271565443017487111920943319692403608073641054060337883029747385706101954787564068112838614666531149286995957128633879140412782641181424915677077800517446333675998027408362106528408505397405985335304113898864062095493793708608613094265410228496515600914789368650955837476804888051822322472925953680248606077345307034585655424043642572245444813205982089347574784352468880081466003809797640373369574597807021424255896843844634430776153026871450111794830713755240641381950126292080226759438168385097405890431556945296179311543187340220644076693132858682090232920355898647888756228296783055605575726743439370371500199390345908641426733652418696323064544326220833556046050142113021235356592690135241897692961897011546740315974610823881822490644084431754887212328985664333769175234910484006464658743908412436780502336016385069995169410210003955493407084643773195665377592123790792892359073491598902190005191374613077215496460641246992246174358358707962513173072995000966610950066748673226670103875506069196202039397377285460474218506696847981678788227648586638704096386199938466901325780341305930199676751647045876763024455081925840050569563813549214873671552809148678540249821788264207630879391421212062715756013441897887040220912990867400705235824596511929581328162857454191604991676929921420883383286279375784644071504278478877424979152693871043972513034090927678320586654402758038260997418512865346022568759961549268649967412833492955452533335174805725130274785046429322806547166763835747089940987898696436000488629125329900881735382960128235646478223918923879998003225500027154654159868135216326867761977433285481680849145501969437513561408782792341500878823424653720181715638697559478052398691807755374623776710329463488470386929754970958077655863004173386861262583260217838221921233663461152942997478839454740999127833892992411967155937070601188763769395399667656501923800839960296342190368301534734386606094878941110763155934900625451637580996024197352594346733106095651147991390748455281630963646840963696351477101106933262964081770431474365909048124951335650715614564459913187242900404953829203637715867237168385210708147930460647341205152099456718851790923123138247767974276333418577806980914351522229826539274448444528289861218874242958906430606222671993750885602855490201880337163153222446813775800702511531316112328421553507434444224179407615420724456955175486644931879261047928847623283319342716367227589258028349943774604630899279841145860917215100603277539964225584070631037983963699342920906635459753286917222390119560787679183739855762764231637993634281683718859444213351417283956018073746930745030359188686980956900516815825101857583615830270227636248542902820020157437516659749116362894302800555375566351200389698266713953574025802228903871909046987351334409814409652878217246910102379872444181932950070794967062175181749187041183945864778541469335791022845155566046538200485792212543264080182440798868017434860595376472447647055750099925548497427280060526475376435479131879628698845213815077008167406494951324699100068269093696396165315390616057959004795391429620748882888480321321481445638999931373327638641167347476177893036694695184748423525608655526399397347749073593630743933052703729089001755141301113281683515456577478382380992021468660523397849718943109891535309915751716620847757695337352451185696962293292857655323065428913763690572802150972492489909665531847816375021643010018116354674694532405377262085985464519950907907241767212504373446001116446865769555470413437061442222282556100871201120428707087940780567606790361124437407699687806116472079465613997696463704280784956137128405256876792211384247783500407862513315516029835436249022774643410494986850012478132431474338453975759750934955234513543532789841890771943925980164718207528017559717894935725005311282714998907016238879827598293244881055073692727105531198693552945329769952588301944537655687004350873433152253942278860754234179202602654202603337091593973805544057027883100997702943951439020065323740675582141153961238622301420035580995293709536449906259812889788860580979314057751551457317340713345234908033497284649363004895960965086544763327750799495160008687791291467106780132624188414511004462294168913344221568959914978309055509599049948238622070616108191256172058259978513257549173050829298122953173259492645791624164889160920973075536197527609037583035912551051496516301314720859728905486890264929272601631228111949037950778319054069954701568167244641232816180683344167110417917030357360694969786476679423291249979809146742241491463051990042102141262440145192310134940885239394401729545489869289156260342152359210455723189168737498205482381655403267186349408493015718831568273978598543932826218181463357275967587688604505912691604331665236193044902607149770674698709884846607894653698386241679798395300177554551929974747893057407913724067784884146360189919544944393983202309773237969831734724345778897037606042029744967207884963260976851754505483871173797793641077045704962775474807211582412794116294095217452260268652272700427005559601863706319440092829618562806124451203555468370077073271891304729319643232552667479172849415116310408128777270016503791922664201691555841891243870571916099354897716047717921946621825962120592850831857404534374400752310012607530319242656827267063992824356247591421652144587970506716350027281405197208792098130439316438720002376917247323090381826784117868679499387281705343607920445269516316728594236511100757992017766610558718399727359067071016114107777044732257421329112314025073585703792459016936273299440669314116705796259420366261471597394854799244933540850285552810114990459264742273665276317155984894621572878344294289686336111410220256939022655292023007598514924726024731075115749533103605242192138520343537567177759011721619123526191567110322838964633882626242142824522374613546447411300318088659078484541573914832443554973764730769170642602247973370817801821343503937053917241098832197304830717671230328608177554489489507002188362274190866081862060481108814738417867435481057166535053089201543894426957732488608051682000668422709856883065845555245987748427146063926369579024499461807462882172092548314474683746598262848476279056250682634124504917201747105817779848703537969416651350467412489007494679916672922271018152244663462942963393741050536384419361768683553147514698763436108723647092812658395034992810534794741854043402059808757310259436029616705497752944312763184364503303119287080212335591323886968288384803330095000238275231742464873659206120771819638350253757337238488705984973480406429477770488119513640367910637002366927552266179227620379799091001211127863130724848963019637904620334502083643494765430263737965186270247764909428952063724122882393431795227834220607818718311914476679753514894618157020779591082732956763220774161335271328935099200781272308429062104576370077762469244805823814555632099863576038661097519588777934427967535706956630724941765393992390142698398183368497204193471539889972389531177977813819864536565149085674172325548256563329584844729731602088986394150993773958437893074652707151511655194253356581583435880644342946107116532122889802563949311777992203701416216063960893456362527634994330893009589057120377221391095890242724775785295425839519664524324749940327349854413172515834816338735273715991049867896366338307210392478465073709434351649277084881329837015270508602969335095699524471488747507094507471330728292798253083346321453001555437551384704212880160335643240948511769935885017461180967085576138049252626002217063454527610114437150194172767544199254298175512947557036691860495545885168153930293701511311220168476769162000078691147596561912847690637348325040250681787925758334714605731235307482291756383269884545171478301904685235067417361703822593721595857082988637032370033921238418251377303166038668573716731381699450903319278783639332532143922043293546657610371264740213494528414752414508628666387071063288947981895906980284599440262895947915122645970662399062559405608765052523856241319746875871967883181320674366998645151436680422545453708245999771686631222437575853453309128414469398556513616910537990968198544797994069338079147261203533480632828612871954440373813105644872900265981034809461988821082369628962720069350798888961430069628942624364172707182016137294712809944094181023989084369595241916749324214136676460800010221951996764733150517753606016211471685457991161383283713509001835168633873565985193980989182343039664394756319435296976472895613117857947494574601171905133541597312875173612692521296094371526572548896602896049880153247129178906335867804951217237707277622469813675412162376656207639578524563074815952809813732337670599166177218225778415071379858291947872876090531447304476689044253885535646147236969376542059685868376020542241070742551022626814433867212846430554662823629293197954732388314624939436352823156066070302347955426044405394031238103581200360510165469813262582060062340423267055785600919605192921836477348604198961038152419391004677992587787855191648761247594298970194068301098943110584726164819822610484716848300682811886699642679692781101359539794422650924289175095599896532233434935447030610835333515679655313227221307844575460290449136927446769555733186174934210567489675892239067053877800974816434725900867088156431579986268166497864462818613028157176594371695501681407353065969098834141000550577067803446774691243346408058620997668452852955422058852157470192528130664956258241766797157556326479817221762642258559348918378136167804694681435154995697246814836952973211254103630274685969620256142340678468728711105708838813182031536581971520068797636499180762716026568070034854998482697848757496542728177840431537264150451269374393560025633227529013115805776471060887534830905976047174862578133412193668459054102052669928141380977369679868184182923921861722374945974177604417805285672180048264257380460013645338225880897398930775746761701909323295176482538526727188055090841720169359310498211972062380743253079315567843114095304304595508248561405790743425646216613350596713165841622826873631723514604397075962968623849337944580659599017042152709301430522415761617469655453716776120747832476053493483754569123363648227661560781938585752611918387633410425925221248102078854453319664801609226882011533238559503074261219971452226166630571797301338751954587486345793730397864877736914070824671632216732433907331618184808531654914304249773015347430943697544576703190018702164238237879098571017143419546118353467888136568747016584985586610233026854741625414838170947113582915590834853150103905255380605717165382017538281275796639386077656483726669952643688126803930450721041849502287264515352430470152170400728684960337620564576930961681489372416984421864446433106078165916526252212973728099303598780508716346732597645928396338415489598140408701303576338653179473600633751597123883584451164336706049949803120661803421542599594537389656768202841342825923574755444249555729479212363509727280142365552858381808574676446454601492319502426013741167981509643339942251027581102340116598222150895451490747178029142772525984985584413187469094339691440737595538130768170129640165015818970500926443667451603829460300969741908116173076460429475972718231363700852571424425864263972566544746547072254309396580419557835780200825102043266491125145951697121925178610814967622127346310241869075754133649520165366876421482158971132170715544461575170880093245616485253975474054524648134900659426433841781333450561033731468621490546067545264189205065119031062749575419826258472706319535396340900974371505577398757547019664448711152539199474281713616876158686677079034540342947018731226014345419648413292002762531056844568087774369744427229349067477791569283657669768255776450733051706344983549302282179539191700499996842044844862852991093733473299546440798457586126394316580014317264923829858958396542444100761966287602956945747281832300295702427817137707204238550962229043628121017155934412748201191302129848322822538350091761561979187657071484527434470516077437689265661242996356410985736208500028221124606374717367917798083532840398365199539113760233490863189454455024696327269374844873113280755896691304926721942562402212797048896727368530338432441497941797886651276843324329934070238031476611415259512400049397364824736350735543585645142153231084375741642962196432154850654279054198501603905861602066620547530396974044321430319162990916168826931990235663897453375728788775843432331166733726332603132793275759435846709683625845128188220255206310379280975915085142486432710349915778424703453781327335014656676930022653442245117372291637860616574332636859583974095271133648083516021659720246856959115673005159893600965409792236658296116042789553395389152046552547129392279167566309982916648993417271714380387079767818563388656468512125209415647022467154418924080598450878306489267225978205172180830354225984747922229090819613044215299106442835770551988093757874091868054574477595646728739264047173442279527711630257190385521176433840960602624783694391398093846445095786806903975400601859245715898397969550665030268667661071683657010738722513896485091217553602634312564490324591023366953937723519369764344286609310642288504382740252220650106190578839673127250845185236759423767994426060270583920843261804767852657150104497564452569528340052089282449945645202549464645862317916296905700017890802976019515670511129853511915999433073401061615492911206624248228487570045143760223873155696837870744232020326297010388864781469885557746005639904699949613200459324641075294003166095625983094024651966850772920456501149803695213147737576702013818752503804383712970679183436250692029774697488584311049682600623237987032514648808548664173106393412755441349975180430627100631786288611036744574628803613907582149231063414646639693234714058252229392043614070063834972407240569068463369046913902097145349345954514947434352970988596194996237608662945564026736028585552799694215903555610736637818330854211481468109500437972179220417498392039037290678248316904949099515665408187702035232698316868425275021147035691562920062471518443461328971695743017851215075898775351424533971941839307232447011539599169399519389365906079070283970406968742073459150677401118783344865307827626061269760097800123827181559039732144631055130866650443942870730937680215374813933348763335800172035627587620858309679330094963736899098797767499605791736113109055355473845175947472133926595224922501470633041070707732083234172313696633296034252335789032160977686811366667412723578877614387965973361005369206247853022367199138118858887971966864951501350633486036776838255216835540268893597357199813368020642600878105614137633853303658411250472139522349953945704888667642091572136576198930307653567600803525153106247589098079145842243848474757292017831683058097978702622713945623002923696513777411098084844991291439802918328639900575773123041934908721801980015180036381106204127429518697483304526923208989283801480155189925872063199226789731129435832319313228129644519967872584243396688746998636697677967639164196181913507965371495667463965499524119233287834215672394808253645110690506419355206084425590425254355776750395132987532181562367265006353662203423144318071066005332997712929861166027644342002814531256928935580326802609580265325987812657651115214833070937716196892570161205147279104917143576294276168251131313781330392918911605739503343729031423239848760376850942957149614604674204026064920628755908164456898972077288358538096447415373979437751851902193478315695558651985063949948228194247979100889144449595513912424753845843751866793614347411411293278231571752890273782614029234147512883477981280842281241232250376623949557873607145281063164198772613577599044874024698821769288462300379425316609441294645353306329217551727357537842005210183347483810196742155061374312761139409945628232087362035435010050437156691370768528507658433348078180445107554526059550916847879774173242505739459981071900820520760539595860451982749681748605738590657504603760012911719791499345029008729552204228656502164436745919667435680996288347961910590661428668666692953292595026853675169413684866712119019486223602735764088501811510342443303501542142922475924975657532961506162655789318169934960677944880639490417349716999764875537607951173196473080699822688780114255930101424527841065337315647993434166336514360599955907185645806932169610809471398581986605183201865994059749113079764534854297003413998326479173498529296300100423826177800981550218615546390100768028866001091115019679022251930811395823873204965529473606403089390027815920081979825511029094346289087506765623949748412427957648360982538391138401795306531716415111323372450615678513011462705307244774177099991766530024856159796226408107019017576415279168816431276015859030112624657523715884935203692881986181549147498895241107810190650513414260876036732257739405846417214154639307306778892275771248814928403800222139524043028714202188251806517909491085378417159845998820326933740597791447127696687303244530152476981036959612629101611121038847444016693497196639073142738141941146807529509365052581832036796981640785422956417571665955454388902367948773137245130792405577646043002605772890312682347576302953840892309351114297485618006962921041403999976704984546316727382083604746633480581023655567100138600940968182517896652482141920852694565306469715257689817213110114031700914182802122295596167658358285548425356797773123297753327656983164289740740352416690788342773224516847710201502826759577766887071142929820283048896958722339006067199433536461338521879134892592698222905130806162897678769081304098843684350930609795057375494910257826542205711188702643041980624346246061173202309546543898946856665972838614594600048084988442728638317041828729874974684053439625621703192776960909893405658910518937794956876047690548087284945162128867528253264868413120236298320070527055460340990839644165686267199445959969132630459822345146881307846755393391131412548605907238136717413975788706469859801936922144637831333622682221670979038832114970273613950802540302923485574814989349730109040543230208375860374094006853079090619966947313667261993064032185121389910350773742019927598994833254122593287579234649568637767179908776403344558411639978968093922276500364468775583465130757284682651835401042241459849833946140709768864280585191105673901028850849983623186666781514468434452760064542347368928084185893645980398185914905172647586046889722004569573866784043293722716084712541598498273300757913306036930217998426738224445829064172635756771925441209022795717961968818664035680457982780142757338181830450399955498333120352033376596448995758923184473991078866445516476265545238301032611526786166657991824587338704781792388886805788742336296809233084145155074218976906755095497501452924248899249584933125169630510133076791404791330367582713368710928582400282788182739483491305434106991081604031667128981820045034503874402135252530030698574645951980989837776394315221416489317909457203147196222825050988850855046094790374046689730255052046304080767618538496612682074398318845067107627563081713207682817658375228822941824757121393135105330847073041461684220294937485258702845022177365373763252086137380538120921865834955930400463729562212870051564550053596806998200301510707696238481622212686601625001182611185104654626560936197299526707653473952622871467467340612448604114449286581550232858727128771330807172825853881397481599012794472180116102621848144831274647242892623750930438306641525578720843074245574797653861689190913529674904926165835420929107197169827619693050318417396616340038641677173982208364166300373062440220980276415461516047139938379264302086568530407252316767835600468569424826001500021125713978279354260881402831702247866530766547537308389550461937411453201147793462625720904583539521907659896305824402898045839918337477840378429434347959841079538202124193155336934272634457792425989594789161464527408287001603204160986673870709041331189231938868389798439614497643604433558241395365806518145752301239384383319966593151011497544149988454053767280011772397242652393105275965166905847194198451360189066177950942232993329746694699227006309460268684291120388600170005354437180746509202792061439862707479708673733227110511359534410650418806132380340023588240837730645079281000666535923652388496629507760630737448710078110200601558737898382117068273512913115081964392973057215934130380431065601643869461970869455666036346653143451517930163939136796243190920001233708912718370908390523925621453591589888495039693995357630369022352389897317164809793795339929871578794436471647548537973341838780656708711145722895403898899083380568337913715805400357676283832735725661336977837542331459455124077414905553387918196159440377924194417640876779507463094291676634077408665760561793365014800437120430707333398374877805152924112823607266085161521526556345244719943322497144722257445489524617042422264142938362876351409978955696672052352075352209989234904880938442423250336736412200401179720603585655782545017587125171962292213980172462499758664114481526006169844000083444136776215222025295969539350684578975832161558782883793554437873860459768087395408206119676141223020928483832314315089385184231991023870901478528219621956580386302555086949144232763910970025339580597456231818337156303570707158220967389014664927850469039952725418514012013298666890092613113621441950725681087983970825946882034942743717184655165225682215928300304390962700794957191977479138314080318909767547513431653982117891069758268717134628782530359124395349736326814851674671224225981490864702759092481934893120053861722590941619760612093588880393974592996189249735298645951922269973587223430105796598331551157896212302131357469108336579350247535523930391215211348177423797649430364674052688656831968428733101660322795551353857077971127433590225295961531418149439452767953734419002530017699591355461779344305145459336480027257842857933785583826850555163076119985719943476990526033888949617444837975346046686123014570547175441671945873388808940006331546602288634638933718367558881821085814834174346755209963926019185856395519504784882695311415045222163876901656549596790383952005758733962891327350608529577506111159870258154038805180687281801188185309509394120063862499989272235670752629830120295351972595099890602285635504816186878707131800299317623864482064287422544606041651762695764831854713366057524966529563054082559227551250791712574351941315542099763268407509628385055206235764413443594145380389018564875317321230123877298375640063520437077397298515208563656976463416210265469761663235036985471842044184825151381545422325761080659157072895338730131208912221100758694813616470302120244769797281569845011413149514664716681505178815557641485130465620654049380586979016063087406119486118349462358670824809359870111521033733116085362693289795191934677533567299660485755056320777904996374880576947346408817347097571048353190146687363740258450911667451920847468823060370138844077582578012754287320339432953617954456610813302548986295358201355280454051465542037128997121833459235053885124700177014576049126389813920909803752644438393484665230715214658859206094074953371237054867721358105791185901966108068283191348223053688468211132249588229876002218443781927937427051757540778616012105141617389108924445065342502478024570901433871639977869592469559846765844504048479860290489170705936712254812317583853060267524703819002440202817336379275644299105707536057296364214552405421641944409462210012612586162551447063978444376891022946695224506006804244928411825407451838345867573957609499059675811185869201042867302265763754296939040664072798192135806162815202536991673205927657894034145897563082919887934955617122561961252081880983922532229938147794799275738657717058823739386290954704676375658348844292434392296225053997233785444305565239750917719161326713719086750630180438705744833248867862029407685014728762775883931764674441748750221935263798742659666916195400073573054102890778423948231397724557096302600013648927063753521195003244629243652130676482986725618656625279324402606006820488756799236343647775935762393787283246316794219346069755170231445333876101167577122589743845226262371465449513885605506862825154664215222038541929050031739585838421405121722341793438438415655841953048237278879492054608706867504949035172843652216251899658599691257375469524987289547279451250210089446020862542825216994292011788665134471858720909975704854139329593999703215738897200087972567764891611864263096802382097517135932979532987580410504533219808640220031333308063399322885936750264253873299497971927231502087917556227331589298750884934064870847568857836076223029209063165613633007535337320956495217508302482580068812622013312178324054761625034337345595934671041967591012356332716287247453594739857718677107463964516172834718185378061619197376301303708186793685941363175575034413112780869357021656205913837520313670173456453227891089357226097872683395708367297806567486644039897654467806513026300718219129481648075156786863537848401307227904115420037796661743283376800912710212419735912850255051271602887520974875459673092007005971489003487411191989043805716050772628320370304845908912556066062198261117550090789046506470079125556457405118900990241932349066409026758802274477927222023433589709514421289643374776867960559082622156338560150935607805939958183586384727710626985189794676231012868304222975112713218807398724002351208604106606549330882376617538610704599154001750972232197346952664148978744422011251462178900005374839312473550112584834804197098970656227954958321830602305970463146690831156540209558234223250955016268581684053057299970554737847115109628532278533715045430699031496439063030657692975792835790123022064217787240148053013199872797156090563667930489487300297552239905120587490099300086456607137188946267484719884226010199188033991938154568672842721143296194863872377018213875683780149925547995973408940923350504371904309777807033446120004800175749038409843042291719604333597277095217434317847611067785892810455592710581024415332997940590056934212183008469641521917025159870332117205191532552385404980833515963559602893350081447955202232680939237450834828082162767991393656067595536954572990797416713099668389996346685278246533343579529216369741056570696492920075029569882656950203627205717323291669491218518045098394051974218267253193220795986232167932030245304079624373844710157178573424412588698432570078242663830576769138931018061273120605277152779631016688173975431889338959443669403703961569783315617614727765303249485122877640227502692481152485388914466865930427379250619046688488923647717043334000219403697007600367375735377183554250236218227872975814820860734862803572915733860037514674912302209223986887783244303689600481374838962660877135941594631648785687077898627695944349359260727947064712935709353463089228971048663740674601095643844036562786992809665553875287638127820452755900216638428544806394713699761692101019347527086484501985205096876785037409568869042459764460553716276569044799182455955073951987898400952355973486744474174151147676085190676927105201310116364074175270122414441468400818112553543715907173639758179018855747329540317628653302923327143382339110700579481606686491062526553812160133926063411698967692135880660780169015153257877012129391449877944528141054554503405095533833057915406724456774530203362933310327403892208062724663590855572762127364160356158077363946005183724808874231035057276732923433661078291730984756580856878869431864564468986479518529947100792958051530047466902560352501259558961527455239372940381493882241842140801194184403599107582228023526516767073421354101609324920266805862542572820530095444845762710619428927789005890191896642388892438981783086498520108280742908213026226078658846061386970878577605617396357395430701618609640397303699345188044992887450181730701236098757014962390232719276518095482165147805898734682816780950352391105358043613154845399138199144662548501949346180251808405368549029502253192026648049791828307641494753128799722601699533695938598384271417412082393107613812995498116324994127022890375116047553902072527295541693497833820427674426003589880018538916850848909830978378154951110168571689855257121547226863455731776306825919792279968470342959491608247759962997585248868764388595412723735570842482021601624599712825418344704534971583924524281058761935459802090343707708821401366938983417075297342227175853060840489302466945854182631904341810251765089339063139295611530921323209832452158803292530653508552246718219206313132269889034639896782908076944606716282247840003647563867341042988172302576874830679090308533348023369996212947911335455797621268383582410325188405008100921173548276232284780376635858767473896328945242022240092396461978846836638542993862513027093597930296546188469107039597600906438760715215361962372605792015134776981186783077175010686623722565033399689044699757414996349221450338485261615249004781868439413491040833389961928396197020234772470533288181659171105694679142964066318669394196152651681581244990449154757894089462373287985782808738849890635646038049296815930418230487810749273849247137326469150416696624799996922548180554044392532778046303719650748308894166924102057105595277863989883730613164142151240825343806539663135634295549325907434382030771895486734102253727853496866446033733393634007421976744333659306018694112796874122604137673051706412424278170400012305294529859974795263301502754143488096400604281688440472631489611027061744780522811627340529777516395140820829485694014855238041438852339615810582272529220796993166344017156081382685007810900936669854478516999932539112021011412362376668194138903381649168514986364370608631074015951656459561449550306687389313546720770578905195393585095054715193283893245511985971144422840685052448537392176352910869479138823846782122156189686795323030977847293827183514106305100475274921467017176639073063144645538505552574823055070739674378160676000252426974713629263534282997892405480241846215614765443055886317047467649845254773059817043175674036574636650151621807079590996383340410913657384696038701713338398879593646660487462751910664470685285695993168404571590631558651955642807986306508751364573527883599818825626795833513922665847723090647060941931901583884880341047056847833580434355034898021861188037994913302706448958906875709972366179945001265854902627191351164492471954070414674752040073855756506325644379922161400824323932018355158052998193177640494432158525836742216581027101447221373611219573225806122542577364622097314316475642127057455427183051515021000468654358721851803134946816234670764521213014849716184987290677889381728353898758690237518416356482884192669688812891500073422967887461881347945496981473404052988136116652716261434261563929800348441721754461071005696680509575181189486117200817801363848977240659593526046384933791380842191741775503262330882624281991463268341681175480863844191685249462619882279168447592007881319520612364002377485561483172292564110967426483908248852087803098581423335176410307008289642660533940447294451529734445696235896275714891417520708902219791833832695065121987954755329966266804314592342422669347826604967360555644036486044268704076218008319826441445285555125808152610244254776026060685725252872155937008818452924525694712697651801820502257094460901282800997516143760201799162169742420817280055448987706758036766377122886422131064502746803691165012173207561561823105287828123000435647285657763017515103854317064104112497909594343083101106121738969313503995941416082058218486150528592837956436355361054326768666616262193478433645269389041520349602229330059816586277943900890899935826410353519191392244478466248209946819147026983954339025191936028890994038875915373932169993079096504895667188661613139919255278975734259132461304730871675738340507143816420720708244153624794803981564719181200548063651064159479626674642440854123313367006937580253006659813452470267478148138560513729076642372834201474923078408348619455449383941404692390272376553295484089594613469574282077370223684625810698170904573194322000136181865561934389527398350360811692862013766380163162085163252294638272439490965308931932012635871079060238752156295070464213048530580660262463479350561772518035159479810392862442691150646521629172856663691556707825092560934926698727839419058600201926194228154927258184973218394386939598819669593383448348736555164264747343288481261945495209703355329544665680029331326494866730467788900163186025362400956413508250312744528852999815815501914726592036792733711643534734727464780460926987630550184507596655854665506705363273495488221564704613579314397770518276160314285300772113958519959046025236165793408838620856406855085176687358373152229301092016868932072471029359668559929180790015132996835923961048990982392327763354534401060848751153929851249450568743781270451437243252106435864319518849348973079573447127606238062415158840803973655277773353386451210225412154895729358628990837864683123410141238614953686678781548252951138922298232204512718036577197042747556409405210870912581352461664233516344724282552485790210478403052945783945201971425544424882642061060405908044166560802199608332999426168231842307751459674023474403519565038841364363964661490237934992410033987090448989363048793933115438264092672422683950549962214120599302721360889657737743176785935910371999766052324398548647194633016050403773277993089834893357412148211992354262806579492822510757317777353440221535469925802204724634573447262468256288259027926603004391675353585476892927972349590817927167591942793570106171711267838627810336319277975375004261269325541629998750417566737420036781346728706816722495166783572906818412534518052333754829555667025458031112321381072941228418106696682140295045969605386745043819859947664186606379664480136458225727906491997127033274977635398804301397065179450896862135798009808316138036509657762459528601613202672334950132888153310839858978804567129585389364537496066304765364775909506446033750448282701372297946173752316555946846305185125426321217707133163118524318537217528009767351648519282384748479263154316667528561617479665520329198038702852879474894460666609419197319374153372799528441059194878413155305267991709329952614363464824071849680821082181555195397072386621785198490571548708594484265119414960013576388207402705420921782388399310687663229631645400542566157807845967794139780582401562533544144438424683503831260759792564692460195191837436118542966450746002826840377799900333300753737330717597948339559485438334688213085754075368964501439077683537527495198823118259699974496888247365826397508820677479850422785209570751779555894339559136526270730433839403379079341160053025733338942124455647166387553707618121393860271880224494266176389339605379764245692850882568541496947747727602733368769289448870124229545822644581977777820787067138839089937630959803355574645713917971758494328891587667010121588377698623180459009902622317879999991310206617069561551727613188126124161217553767190213995300784076208654410705335091283134404410577080244090104391871546895933039251590763362522370403868421128036924860790550006576708079013062856288235362734945497712126030853590213859025798618352808626104323666014387879091095341029347916687312561147519471934325402084880518294574760078568272229685979981015586240367773837735607842816492706094758237497829917613550879134782746948487810353499862645066328150900473980920527447468970718877872125800363893745535185624331115704393412107420231846690500093481628523479659575721026339710944274187298314340697083021977052736853702372166804976369852502838448971812688160557609819405212925392857434490958338465498382493121131759024237032139043110981296609073617269873555457239592896607060773556698072342581997714784338904626142053484367866345297042716019404853801900652271656993167823368500707395864302332921791833083904386755025856656342960749711812484429179113607779487755392051758233074643594672756482680313336959862176507013649273214093139287191192162333715920604245457194631621505061533171189679043087454722795704936358846224790768475472602036268255569234243301535931223176173030394954783151213043116791598326233104551138617764569596057079587421280762356780330729681343330411415903075498155127027653274392126602121850687579602204342558301416536859566629587691784671424017535851825133933406369997548601721458125451546603784436607663378104024392376132439825887717426672483686776878405259309422923876141882295187393738862297144690125528110835984174737583235288250258399579543007361495055537558661428886387793979966491244759159065426439150621578247572268346259577938011768848159940556714854503778841547578275436135720439790278899976787663300276725754173308786517843286760278256178045118825592745301511859060689137063762706259066522858034838277604274300671712164334674632925388393286587067032555601578015153886441777959171786925290848966593954496693041694927797300366207684106965379561196923546060334293293342891863571609009573662631829424132277467905451641478743181991522818857642905327154574637046783372328731964580052606136896614455018851305694282622533059819550174179537059550157960438829730877686098355519978914879489458404585667127142452952302358330655053846968986340515910883548595917316891252570398631743862878155099974893897065312869179346097847143651052642913796522474065370879073192193297902366267329360677459502840637211066072332512812806854338154196592163594099899828665834038462288121390935737378141686797022105002843611784734120542005267993777532085923457675010696880221554383229553768689075063037523812655246946536779223515564252775870389318303255728435202382308456395972659624386085835862525449708578129061031280750583114471688820442935836817021803734760947739337235786565501376475890528076392476088835055180792434378146217899957187700312023098325530830446800878630107262409180879749168417756532771304365143848785733428945593818228211511599989791145590133664141549548241409266005040912184823178269111506041209627956802957558380988494340654864947623514369529505329362985157163129956563780556102577878209113623548087608333801595407815734569930584110676934618976044329218693376458204840794356813845422075716795450839104893135248702519743002674172838361925397293691537212861616036506930504271876201237507234440124966894406512558400012001189978654747229968195089351240112465477662716207783336164602145691563837870790063159885767407860478164480850354634960333853885380386762994330317259090572909537493681050950499740138548851983401805327424965264379183213618350036384589506726235178531080209156831925068381642001977326527475225019276753755563637820544638869729226648934389233672402533950455570441872389160663947001499571707255674598776479142087200919756315511202080994157095457895439140454990182053813141785714578662181973957624638349861436747487094101063565678488431117142095734016941362140300553878379920496141833770217819056061915786699108435654175104700737371685287018477081722282787903178133609700896204323674514131804545815333859729436069947039879224348766611480150593411900623140425753539791833427229571879481660393765461998961068074791849798568222922894794551230555206547422061570529098614870769179063927929273382380963752961234655439418049670186438325906712618645769912800845450157633259197713730490522232935928891702839170696577756059612372342589721519323365579029728329584847137634108605548788650723175231928625611143066003747291109032374734234256320852200777631974353425458416039736011592805463996676068240127740135286952196445044463623935249637875785813907819241868614296814617759429968927498297839839496652122256613041003685938172943588601151377088454535439467143443002230347008572801624309036578375487339976191288939559824431816141655082426722435971772568977696340121410723230044138358008444120078450696762343280327023434127773745455847352573080651464462993406021949155146260167665816339172970280411495236515742804121430985479291435793837090503039421590742182995468267337889307731997547151989582409464200885371619148580765520604417125164064201743699619354898510208850615816822895387403828970288903878356390217366382213358486323878975571760731041349160267858889826548647019547967519791265018437033618605970378467533946373185930639184310176944254924072314838315810172528140511547514131937487856779822216744500353679115070506594877274142470636930393410899689740817759401911193872031822644436765336358864978304713181389722566488188428252332521924938419483251161642651074692420079949352841509450750904793775931721053387437995624513040807336184769656251224575501236820376456721711742722098632748706285397416073268395987351285574831904649342705631108248361316929727001959736972129101292143510393193275733329498494536076594744288664171838405467691511857604446443906711036478204303410650716590202377515448279396094476481583064426874713560543096235162653290032439265818325786477709923986347093928380997850077757897011734720559758162410131131568758031472277362036168684211270553275306880149457849888362868145064725373240779957422743323108712370428560981195203894973758750480826958119499372146816827514446524805022716806145591985143411534858589846115527835752604628333353317322792917485796713540744286171081601114429368178659158445015968740299592365718990550886396712111661966090026059440238936142262878174506147468435364047808479649053704676536045201030180236694127051523428214392708851363727131924321471305858004704215341070825631179722227382064783843096915966934927547984907177363634432165640913051980611943509890705100933597976415812637512590637757471142963949464178075858059882507367799742840271132394669198796549111020380610865621320726654034903208334307398038113092993749736022783870487509730696940773057761309079278219945014076509617738410430213127961301093402927830196105706097213576288858557671795652949367166188797548333312569102549462394842233972411440926422436761347274415519139328138959193768655420228375279389177047270008162283277497325230794795870185948704263954583872676526524589774697942237475733041043643127062631112082350281453913866589925971452992440358767254130757363043156220057087130511767771239542549277231778671901954705249939382051068911627045514771222745235847158530265686034614097604693714672347649823482727978332228668794462116193498452496439121655069644902598991520048855633153145251693225998339670333526468067042020399456651192218353973963131455223681313713270606110214779677536166795657816457762639820704343031024648892691521283277102845981612791710080188108558354052950490345325148833144710900819184247638376170117988801910254221193064689581981460288365186142471643608901693476406773375602038646088723561682778249485493124885753840500144446938135393487211950639774243068061716660415196446691936235735450336790455176160587237594111890499685417223385397738716401313604818317373896686127403230298875682156940536940260853068781936303318973084200439193386071060502155255220362636688848730290653722707517595698404523960948017754368794839800392496061501191941534095957076362139601094376722962000301101700450171485454262444608391751389782050174746452804191722878733744370715899199741491270140631690857891097459230164691575127736596346476421475862790940592876029915183065092279924038704859569806342972709331539023854325988029319065426028953821729665433227983966867347793813562937211444471995913629305262840898337663270505622382212459734473982402780076687045205877868534655326816558733254323223790680473096799534842857769714554093475176398744824575722969146849991944253213326536547658263407892353754416588020636866062844362598133624520445236682771162167849196941952676329915254123343765584410219246428101319135334096016888007712173804060607799041093080685670433012276609343787865362130117410960917460464165081037195816662401543146894919872193485813827085319632493445067788871450746519627000574248461095455367961916563350244957540737931068364302577750967298609852561987588649944731739823200649908890771291034372670111514036183000131996820531885873309025090119881569821944199506144476610497845394670153566821607524370869399469446070342891642946741268014940611299782107679375565516208617956658939775292398761063299288169905530169261950521943579334176723875222431293380271837568623665482306304612019028268399832033795098373366477580238936635878941310051438978085297367343161356391258750120313911961221069154589638053941342572881939281627192546708110580789961900694697498196473843794740669422979693462091825337982760898907909980131974986235431567408403937619771536250181575419975004254691940198846620260830038664163565001613318046449352871526753343597678483057738881195423202696784727015228281962311011187456735792332338349324948787061677481517194499168610599958736521153791071326694624023944663657917083105106306473161273161384623399489957778609614271567003182134226569740859424265496022189919075387661264840712846408564224183152092622307855043590202189068666244118816817733156144503417405497850373786520746516717450551200002120597686100161491688633013522578118198517822028055893911651869654802517032958147960910618380121659621097548996038049727909075311294937204579710599374061218029176520772240528950739871152769096071349527178395063395715799464412576939206752169664901964456355179037070736419393398188766033428912946017827383563053673868106453983927130813934583257340106805107671959833907010183368989457071214289627197042351630165731680997046888651874197486746411959546986740971687843859464688813684076218077424512074875940062541383580418470030332512370642371696405545147681752577337745018349825349578542082349168032648799714028588032491863584824176876879481149886497905186130921790246890942067659766151040019426571333732774812433612998378318983363288063192436557627537107327267000887342330267207294822495151289392166469927617517019121235725352448664070443162801622428435476258538364726810366501881769396041654291931466013112070470500143327913548692897989487775592026289883377256865619671195137029679704584837565313235513123388047969024886084458494133516610472441800793002424502266668234796015795747100602115871793091629397414957554006388263265954305818978713270985866658691005220067895522786037836767920517351123525341464899140746657618835849314793717906884718126530394655869413541747918609055766703612147408074162886640455328988308466149465608557540513354570256203033089015906817215176334679456917781489326071238941186523780569665707340198448729881065371439548259725528774689122594908669919228865338104119255486685562995238468661916431566234479151675686243942812093982816810174441662080521812293627841640722745470146617149875756634567537762885025614480706731555291598852724292602465381996322490288769522730366948830059657244522266319016570057734758987576501584020899579898130008818777283068461152983469279735912915335798257148380499085999668603732011777910379416913588835030263334085394681307620434537730628879464269333438360875921815056081657605828045969246811997496573028415391930316860246728892261868767731895294813372768869723441438604651603623004084933761540663293997315766126497207061977990291043872775134322766619086984011422939401804570770100419535030155988872795654238076264310919845158796852479389148393460667750069934731458294960423858106448128978780847371429936051409945651698427308959897441321986724836657015759485609133491279343368589850128444476653155899714879869125686342018899608165718159602856339460842392754573317256039141520459663571746477934440628361822513261858281803351275781406826339451256955444062363349796833853013828169504206429020760369988107979361335325713032707409088665911322453854891246990540222051312189884428323032558151571959498283149913838898282426709993421523658672296431902259487550363359732205440543188395257694807643284269237399195746345676470351553432382954829972605850854401827190633197669849778886524235920941705825792465472554333936591511235577200408356140294734967402832246199632420844656723733308493360510620394651403640892874408757260452113702181213977967735666755591037693731809892762257673211010563033268520277423876958160129850995607279803927297555645609908333055656386175494036472041860538706492469900944250763134421356224151861994016608163028732984482395988798333295344728634431917098739549322731578628490671087767648341001771851884902015736712725963067931478747670605352901287680778757017310583545536317865380757124718106024327034331741523042304004151510543320770440579931226206173162102620225321694387893869074536796389039354540171545756408377063623337159178136842213573129312631832860703357092693622297074792738073528589449631985034856294949287331794663039086937411199780016080957533843153238387061398990247705252330799099011701523613730266688968200438366214674585306146401987825470415318522101946485238190731136366556492107839181099934368065715520051776471312413395139700630292057966372998445290401295253741675919152393893784848595336332965307778011028965643968378334634560225075312413669302018923688547758205273533510833371644256103420409071790851251340638688089610570138053877758187764843104307935730513316685649407294625037986006928658780876394527304292909187238256930320899157517343956891585020517435951996393723782485089175600793677994947988493622910247200003626865232137576452515842929585220894270910350991579911843500053035886790484340313155612574802669319381450730147567605739476092251845706992436156944341868120370972644553836810786168383495137149207728321335034057277395577747940889843637372758453750865591278943456552624755663669069958225828352471767763791027777037601336114945359989485216398592953034024037482176847043897428677328924775862497698321475129715779478728824029445207331833519263443815623463216954794384483546257633149653528151294577513177567883454064507972517878575940385382892449259377667416052658059784962752016922288075238613613874744442869528948286949955649074035481283481774152269926492667494038695878936470664822695992660135037769393303862936478868491862730750742630254597657246699714199512472510657699643094408679668141853232841266477941783022099691643121067716635740008399100372114556728938392674172027261762481011989975192067305579708392545206486446444655583461459943423598500175647307342758059267430312937118454599457320996982468913181663008738151088601204119972878129159337768351080606033824100793362492078784044737574659385230821953159034622301870468925928566851276146477839604098583767923401827968131515610330095182164231474778321269066261061678291988423873336652270687888768914896042089570215936047553848083426840647268704797046578615811569504867263357983463208623849917115142106722781932931204207324944376506652901643096455010831461371731881973086640907840309680897017192155999568566672197561459083775568162769688573387495753704710707663707441981846598870193227967742010675684031903742941413741971908249947645072073946245128575852561673337654654179084529756553672604304020907354599049164090064881041521817236930451227402180362067758646651377218627483661509293608497121670192233634412947499295749835359720306120386133530057718338789462159154043630410237291295518141271340807475149506756550873494000136151546515156722052963928688125570219245094324653966355312275203379650859298714471932551554967097590124974306924259516757998434879072651573931347259654385557001567609954812192610756625176040434646774450907904390438668818888687389610649447936106802786028252868782282262141352865071399980893528248276379826247193890336042765817764920585498968589115729240364470523721680267990571380129169718726277168974060601108518059552357213101368453979932899517408096401260905790078719317628379620987366026149575990528332917750073306104629076560454910364577700067478604441456089086851861438835537670226919779617110545713331106962788422667065730634888148622979885762989507197659228360596298624197962799717849224828729882120454597785101895352628459637758557461006528621349516167609522773513531327603908305425589970515867882241502963437180300724499735082191322844913578069398247548593386338442611105595749541189781078058628003887095172627217102027855859738156760584442921202271129807380691726722573087803042322418368859988930247503426324384507025480168892633759872289844720028163654222556498578998331893615567904002304263954964524241837219052236556961586682212032863650844565719027941483313378017034805193539270278150542671147574923146517536856348810706988788886040101609893659637884476493849711622308377182413571753519813820627372420966510855158838431560595161636101792363995190442783311835862229748221990559536430114954279269849240243058891217657090595664419523782917949439849672785930036202147477474343862571050118281295834126987924717667120381882105908420796698204619223622067732068004418912868935630688540304225723301759449431422307075316664612909100697687358257839041160414632271777633015886154992298532714882611253575673440902348648518781803132613899572552830232503110807408001932607934683332151194922376867988184265456682190507544209832905710459156940443693399928135245954936161206695875858629124046122401431702019706982496758254925281516189447206495764072698974567407642170223825498200995172211295181927329830687293387150539977957070735259745415851360835831623337959488937351481064350927623859310922589765818369196160950208145467336645148617590553410327595066375607763480991697445698610769370709517867922004532351791109292663569464235061565405751757547027171513083161853274019879651684360604482199350535953460574140269217837539743522108529133155732994268081912823034824881983713217347495386679109454905980805413127355047110784601033757060218283607670561459046426219382747339359741961676565891989487339771741769108449325604992771601476537677658218139261050775498626798132965792362352030594582264996351566983006473611041849292504470632711775390281795421649755628411269427240409491558281851062004851161785267760450266762394751873100678969453611207374554933200156080821118426569424489209210949745091936341147428606803367706870752996700524913835546891644620289805230326513461251011353270053295208800878975052891812408902903066641540743609833883809612697714172318736774131306163165786606937875138899770322376425929886070746285750963735247540989005595743988083552344680544404236859336029691134247646258169060274484077718923916079855332497051589081899965259546809558861445682602538817269088594246232114070466512501705007874626634731972379479051636577021365828909078539750815019558928942962531784773176467619323549279036010333735824823985977807736422217236081440885260383357134739771604768647898200124982541577865779641140712302745118372944119573959464863345547533849229788567869835432404757766953158875110161918619304111722448002212872850401560457982180309984569592345676990727865971571371365960201198063810441769319754183500938730606527485227645040130450891641897575528782959781444034617333567003737666664728937238378278696575460433575544871704526316001025289953358439226200933818323696985800985091769321784695566898568605009346610352184871217856258551703048845568442328089708009358569212012583743575385570857315902733294648087013236108454613038429409474087860388067097932547794373114523599231000640310776995359782974083113297856231754739132111739287004995243630403347462900302570657920407298081290350566148167742448932851489403199592537924138757946126878254313715356877277527646344869723552018681097621498032548501362289209932042302313478109805340019316040561837916314982627505060790998629955930130651161780785044350706232647200087285313403372749863289927145672633075118807636837435774414842633935522156314898721373082255789696933021496697451093735888056718468947248491255582872874783141125865775560082561214688956497498298921083787880949056706260512085396741368689699185212575191715212986774585093163147147890717919814100115044831285657251244456746730238351469968657447413982327070455304820142101866562919495677817414741113271655044207387814866389515259252246833429422113464837175657149873724633340820611341953943513635386467306526778217361950273334067514266256601018810204441830421552788507949898097146200782060076823764985670452529327914519140185491560408207990764678246299850051133556711165275202686389445118455817157960723989382121039443008976124797540752425922178887892479002017039495430521388584482935712970634361499680784089846417102749669441506100173963121605104437962777268125878272902133154627830752103256911363323501929377181318354878954693379057450847867171608021898072233412436915700799119263667901448257873793214088021266674525212499398146496764928357341534739420502119136838281424333670932124470690317409884832186362281433350211164148873351625734594690580203291639747942330428244170125754038001802686739866226267266766442449952071870322932294392474080235789844088854463144742040460089843300910949384290679399116907257428222848086954938621182129009084030543242593457038577118116260862437852332858267112013513810697207675607689035361808903217413599855809675098298320458712737739597636016604394597918613239897736103557625873722930716355632606269639759366440877540991724316433927619712987480831766075888240585215982540294838056085222639127594904549499954396576036391718271959209988281384170871971956975370447047433904883237361867295210289696786871169041539576573252320846119926590968107663583068187051853749881317532119682375949438259889415651693658718702241886965100359916784330177655433497149138316160536673414018574495831020965951009460631760006587661620965739609540191757526886661530798028174036796111282118871876386793665802300877388781194669732129764473733820727737068953875820845416323878939147048244331104154974832563791846292155717528495991401875757057552353206982162356462773576918456999571333968521788912888193355363354782559688494698622779520670196541785617909858425759382611318156474907044581412003764083038011050308918990430840960962307463152682389268675008892677922748093326627829782495515689797105976408982704258142326460685923404258189344747047613328187052040691316193915276419403511698939685969127927639273600121775922360169589291728560511713314300720333703444091657652407276882191413744575814548017716121178855000257192543011779812600106878351824967250201249433089485461204981930625188729470180313611061393656207425957359526432573306007962676034948796395260734270820284887167085092598368400760647782315367153804800795399804706936183560323311446546754269737921916703879445738929416019068325644330177296018213254154197390152597008558907740058878032190505817914985232409902523980108171566996790583238669257992174297704301043234834924007608558390622019479472887892693765507595230440580304421112036785553883022360727870523566241871448007437983586238466196016469272005653697569339909625884162655052594777133392426654664449811659760949128507715776529554908328978996494270102013271279213466306526961158176730488365547512643035184663067175050525903432163180379453322413454747350402317300727573153557872728862108952058045151659220250993569225976344253720507530852262565764101500030023232015835970352081917985580183365945257693802198434759681050816312528447511836882097418924949371643012809197191154712629523404114513300094319191560888250229488414976958817034949016003372731372588898798095886686084858370694183239405733612619695588296884428405352744212070216556968842663112059568182568448939912076612960624417844193479902702469305196276771403888763444090887408705558595731422198672000937624052512367370485932085044566801656642169539251722223323729736649141658443386137093677478142508878516125158171803747411207585909528882950531590145146492648631927349119689518670581825962033249343707000067629836843411652148602113947707123189925743499520573678318459043371734614410603529636104038460017419431779423810218742820872669996304209486278255580552004152213786548736306149967974588228460537036228269298015775631867797129557760162706726939180099160474708015641663310137877542837292160412906081376578729767015825696353010669586790863495485740311264436234719266693013824034305731726215424721081435476730446419682605858082170541761985117628163966512379108983075379131216445751505242663131885744387681387552789894866436144021531418395327707955199873836132855618472275136741595541094848825860930998416731864501828575970787736746132103338848300175829659943029898004914882142978178493421027028630125705574596112689955136913360597553527762506509335402499299656667338979346749078166455917630687544178112975790789614914856784693331399491318567783657796695518429045954679978183577057541568750804893679004394620680655844094631919458708189913244522409181219886544502539409642670727534826576555148619446449271012370024736491514488608502486368487221116026845918123751842431651248025147742171017733543594675870768922245025367599276205586166027229385613181351932018639191464503383785337436785468856999846398703073151841981628285679116910045556467445524779651787932684812707168046568946839356000939521225888809647947031758449290249765420882486442456631595227431860952075437024048232433429212348536862180925065345433632117544828344567898672505222707476049969380726865565247063066049294998169994069812025038720207535830289240983247323042480030058546404980251242028659581504118074723471537650604486858139860603526139010956040297318944908756201657092360097109353933557039345051621739907186188963993680179535478464526613798341476452299002823870304693411317039116390434626904925341506641378351936420840913680937559761688832002773777577182832632255336497133763379283059874584217577044878329450411660059421102297005352981776080362724314188204205788321979860870016830389432472721820038559382999233677547384685861153787809156147930901859140606978809270363723834984844241813854152242842802646943400279350324117948441835067326230596306419366716873188547383259655779066321126085252436944163391337283103179116034383967200799125189732277218557545219191857188071085572078599742874999553573599096085358351568930512558773260281143471038305085139178667416852177025517015445414297996611180168408457332839728014460128278863743569963526246227969178295335735456209762644110152431782540400529933827704089149382408513905100170839458434650390026349935352402353207938899768744264084805848497626385813309629247593215529726053139322895511480137141356860753255019431630214262093523432330852178945482188671948377762563066180444735013392550742013602342006251254409051838732128078515619421074163804428398195124447277979050184186337053586943214899232436714450772150654713502291680853857554972333761969338537316060766158744411473835430368295850829887931646443402164595827423467176525618163944095847212264285982486046967908689600732678887684474898255946597668508297553982191640730995929220439329184674221802171862136501303525175860682546538757601314199530842499413928739178722434301244566784061393994718688959939012088170817180158776899404986528837453611200564533317701733545072187760550545701877986619903629756415433388935952437328055437981164212642355702004659134954309258613078998198883052049674211646486263443575029158731305049462406288265841839869561103286100381283866560648247235563149622895236632927495672937935790894104307346801904157783955363182930831989060096854530034290628768646292990491804232837380499016470717667060008324060576432886127622350080177968267087718148302451930395545122712751004855618248430892693092795397036485101773541742563240724278384090416103111968772421130224895567794023299831333162479863012265311941358498250237262897984844457133622745653828315212608473912242325784868268645191599523009715694296049376184421696128481267337788701295758357267260155414396710441451646726978735994762605336842110712570347696534894891173618534953406715936664483961568461012031225503687594144616150976604356128634884441887119474726070580831557764498598896498376166007654549329301997295922303294435578754176681967276749331780672231714273630971410873864454955156592835139386321462855581067327563152551622342550258089492854763769366953175677679342821287917935543442695480108726556991079615017262781021954493214821852145284466790422927665463012668124493747255934928501422613623996585501531883327491526232202080358972380022005964551604772354392283082975056514325245690141753811770463233067232637478801905779705450731845093672714287170998451077129256046775955296886301084278918054106494833077573405367583177832767085968137877750509203726760442285185202644419644066158160067975854118891068277218373059495104525113025181892982074275112945224731018155563764317323964444830847532539215130410028982985511177233460086550983368553590454507709756690661062468615120715019584868149146937438911437516722661326938535079838120216579938133181432386456509225405782817229978520343709115645028665185384502018553712065623802926239983589566403668104928053978789565890738279701513226707910256307097862697177898466003700683170052738101623101988561490455506226647060808826387370860423690329949948757393080606200263109844024310439110199730457784904733677246869762638906324499024964162739917673722148381777643871519207573082822181492358491432847580130555609316615798811284037307173330869276155437904465472458208611150896432575377731962428014336128862957905202964555784383912248644768866634134664217099543636831247622436532948939763969240103291915555166104228677253351586102174123737298101702896673320283531719786395839548465570835933716590108884385251220154582823116777056677730061793273524689898790841289731858193032760738949015709891270843773855143423147474537914767678505546725664324022473731327521579313218211360169824923326128267998652266909793397025475281847669766647316322001043215837934602446533296635945086240566253999457674945260624614548977888894918784537345271783022078256976444502397719230923366011608932460348012302612482437923566167116304657351516736528118567154853365817815994665826812578497527003252484726585951206113593988378646072229601506880492725440719522876700059320167293722665658124697492768068840229942261636180232723356374478094026200358608444047994428008290705214084923765192991574509092261819931202151320918789689831593777559258575150133801168367769464482283650572950691752115300909585592857099807407119488799162401892534030506385602034454646652738172546133214217697517242035088926746985240881356331837939675655545957628486011062465016630490921278379783170883165828279951212622073492041814135570833423910265431801834862529105538640131220338619115705980863835284566179625029022578347928826466103593490472721786329673441856978565183699512528269906602826423448008793127067134884054632409368041944973567600040939584807950141178937229480275649262928059466390080230183421713535925652075533218379483094144173916215274426390191555070596039922074431310768377404464788639598422809342422941331316143337519693717352870907968020565797778917864749834694244374847640088458502327225543110211349572617197624299339164898212106725669423630318704471764545035349909499361388568814323981041237372790000997833204875838769225542350280501011253985754546455408770036446539455350512324632962377873974518094513151910383576153601540768994496034539296356533109368405290725148014975966413770512341899051507861255468968141275273942887138517350945687580982683943867196503327710486589057522995996284431624152824911081150170578529315602080899618959832272387893316862456887633905706727583612880868146475149050136072570036043405202413730724277540777075143221645415269087160435965945292983842368896702432301645002466723996080977793810026912431885385950139292587452794508703211915345947392839332937155900377199108189019061477950314254836624045090614988572417203723098270377346606403590840865652520030185592931499635130471811525663720243420722310300469624869386333813826770397252100289944904342396053975225815128799759420411267277675034055536128676516931351713520383512468229789902586670926299819136000757117773996174308973185017954333419972434833058379774927411490339032489821349694178927963980570430853887189707319900301163029903220964883037294917333397147883957311303660950912850671934673547260271350783036127166327654249125975280447969521130165924247186852507352869842697843400098061040055989461115752049440232435165563443648851894865277000135187405034706444383920798136079056147965526377016922882081724575087441279981043251601309107220369964344885570948468898819456275955112697503231884868910394774609564589847933011529403284143931383329247425567028267465891995887023391093556120978712953036409889379427736640774877864258331919416773426941225104816961714236645896151531455167978616517904696731223911515746428244036287408819766488457245814070165367189806969695832598824406435290108854224201358472057631131422280286622770029018336292979958657017732895630195294228470113249578139978708912008298746513862606901506462864946639803677023571691637515329912296582023775146674858595015698834717837872003390902290099728137436579352024061337362067811246092248963010843041553665127947358248103503222604475757542093538018986257069141920457980703096090487380930582960600412169303103586914161630354066060256818116628136153838975426274388584995544174566064511601759041703905359800464839172735748350405113623592630790585715752468544599045156502029939485908003993231164631400628412742104988297962207446319667304472592155280931218366049873513296966338743078467918744310371783401478593224227671339898627560859236682561662469025498868713506485764003399159687256068006581533269700528442648248390176863801674920500531448805115711249778690986085295751609465352375590369576687339327437063968717820712720114698288340519444745625382378296236075275346001768589589646635402280441837912510387151055939643083264430152823271819403452678728452405248707535160626810246538686827926000104647930375878367764505224991333082388315842599836025674215234805020620433571088979538693871825452161818312682101065374104903628332402207571151681160029746010529643486464910285173493635625220698598279054488004048164102409520261391620422746280765448695796568702536684958026604044801480881668139914677771431082847519740377022092173866585055478443378983423410661399630930144702116245938953271261010085019368677824590972672250403477214169106841717933154038789535877445996692320711399992833882512930484105672232388770739665679627698034231757180194855459105460801169170533173079512233391641561521251178267297543855824108921062505276289137411850241977089338756390520842008667182173225027965714189465035250131362881870843894537963317926582615658782209154245208108502057051178687670687280185870934972885760428684786593299602339123201029736367892331262103085656448648870584038067214036840741448696524060220691663391295250287096380965615971869887780478281714401133071768287203929161327579360814757006324426437373629832742465853483916130384515083021318765815354463843601260012989511688207257124843091900797591992883081787079131624342203701218287973124987215037742800095659167244187433438932909280434666114844314968627284340143257091359252241677389573766138204417216337299765115135477261303353000787249682861562608842992812776198058766735830418509847678410718819041854095570307107719407264707828900518140563881387017591651587983660823704009012418422040923280677647339822854286294870616478476977695527372734677934175012994928467763433061707998092947679885980790253654990802555771855623144711547799154780369496722198754045731448062530055613016537956213342067861901509630372575816834409384198464651684746846597839025756624651707808667142890874935840210520591317038981302175333154372109222866976183201392520861542868991913618941166611786002205029465947648158409992957104768661623299767518712111588818209777859327874283239754257067778897181848336280168065986250024737659271307547389999440961420592407142594587153078808355900696269126382526146784090808774645641011256149925240661614103679377846389378409141540165945849184498097359311088929571915666751541304381413842460880559819508255760901372646577064596436749253644129588957698483159761352966170280362824056983037267489960630615609341665229423854629440071517551533389922733958939430651860101961523524061989851483352892910234232112509035932255164405005274352763502060288234782616064490264091840619444857253589953418959003294676083883930052294250053193086351387513047424481961847677254242419893102347149052077146273632463013613385040364165440040450596769826971230083794811074179213098567427991428350985841699960833848127948148849360563385422218968729136711740015793830675313139246688786357166565307241805973755657896570788478572522227355911528471099040436857722685574935807721308984960603017649000654790041418001151748792782149066756912536623403059419537759034304628960455538580296565907487855366320147627686804360585167610906975962904152315989819649379341916300823060513338031477551913985248871178436281793282109270979413341649501276385026869363737242686087465120421218212710056892922670061398212168206600151980195902959989551943131412509891575428542947320359189910171281968150082431144444794454433766837354689934564916803999360640389652663634953665879027017316070008704881277087018912209348511257347299270750592537933637925228334961682182739872761963559259739844070127157179792365317205015168944748577979247888360094033333692782057688199809150080673896847967620280292565167126592014573145038379346268749363056554509290314662712540678637072513644175608289405340999253168690714820193307146166666707203005430587137698924301069780053632876512908431126658564993666365579703022992223115991373793244693930392221413362423104753562541436456397769081884663475399134403812698940270853264071541332805052338123994012994267956442585358799803796451848802745741181170209841364247354666675614807905319321031164342233384368215297251910681717811879993432584690042562458652355351133717504801038093612086704703361516544971768504932996605060742657373805428695203060172307830219533202438207873324888572297498655686485675229967399334524491161532457258660420615926041161341555963751196286308031384033274171938815697283490436930346244661005700531440920266440245416230130086671298477918731968875640003875721542102739090551437475319981606416362969216350974628179798530750524465397893477912983513589419091511636339180065903588386607951738381156544786673158137103321941503610620423823251028042366110471955823824735569896136380423815666507930135500460991855169987434901389117625577731732475044356532809334496366850747531421420300404424774578739866024588492962121977042823013977412813914114914608817601517180921221713521224159258531635932739138211731307533855199358262344112316209579757820052676894486414070490881307379092767689374030493544631386308332696152728598898790193393262400319568402273122478963247122931334625755738162878189515557172817896913555274549161131997515365526121552600716236921448667941801558421916893107127972453519921343963124841345980314877583242370835685471846812697805271405209715664839264035594874440631792626800107797655914126953990817623427707806950666790862668242326141087116022225875829227738818025952161989681995675990081200884902634086461476347280628537320375678373183692920004157596289087744200353585511753004243360679336158888682907069093247336704456471519482784120624585266927069919829556402856452112455814203903014640032086068761878630503938709989082297757495125581369679368176475449277170305429326318492783504309462535569339975818904447182796790995531807858681185808041543481580934739498573840890309706674813941740182993194548873265989761231111607480573447064030834274942536433182592849095877780956076144977485650787277409658821119776192514341044368070634028111601234587891065569799161261798767907684531210694682988017377070039662070233543310987887848294510024782684894232430000484100546267275365323557309024233177542801338128115869723804928877137688734667015593732543623032340952382405858152095075716824855241043321674733811405216132954107343897134064261740097954179579560598667757745774153527102172818591668254702640077648326344643256741209786043458024144112502011761347237161115059111108142817046884550387425043471659839048149883897742518418063421928986538397730116779407039691542579278408462479012511511920613268966347005279370479831263948535659417042323803630167125616419025697698299094639863622567311222410106270467090275291095784767905124066781296611944477955925487310499008020674149909260091431296964874551266342013815659400889872496323387111437520664416530878333377561433832547697894957595434570803243267972248194049719990519156108778819300092549606032154960211948616905415521264487168891783252032104809198317044712069337763668496366557204613094452431620313688181622862265385309769547284052639283464644500746388798421898407613667896874377216829153163808352907359113174588750380182216259211785134560383272853387480252816127151101408380491753038644330010902241576591035390609157575955130330638939379694754550647599982474415466123645555892436035971794186996146017715503130527873633113958695918900005093320036263390097617325181973306323859874962669143378402703444346687735486464467234828377073667419825764699814669398040124839660305334450288364124924868721243110306857409518917424273945884393028745908876410556780457985968225158331188850129300216456756803541569073804127612592363974707818530453965687796314706791252008531320220376169711499683031173442588308977518749355317163992066872631039440453242963612020801756954759996079092361252699683120371494676065389956897021360566876602095250577714153760243871518869932541897144629239453822696183252944022522197676093921953308754542335897112745514287921501954217602167544617217992140328516358454283392009463110334736395302883914510222934196445980470104611718123511817858092515002718900667357499378698853788140455308969257762622392470606650424068362690511799517418451752370824543685236400638793398190970675777356533649293278609726361538381052544652138719904402389556422704270395595949861585531719165654915152715331203497243289702657778586596124455942137886378512413894434846995889264398710462552520117118874069635032282161799285800303098036745898195446615328616891844908534893760170604745313768712497495110875497222180341963932839819241426813677703715427648619879971933725363943052447613560413581582823627947266246617487150642373197555788888433350067957774488665946369447763740619875690575784459854363343681503397950276948884251933178049640187868560801154287107050153123437032916920647416626745917449823474875704986120167819841210462410465587895046183544927634648819816533232741977200528964219294813167897482049463628256654550977938634655111311461989243243785997768199460928342853895547740690891489935748407703422216723668985680348444751881560790606826389110773918358024346568268044251119344775046041641109931788890917718322905540652657042102952605616727826308245093328461428835313881769317114198498355161025290862152513614137403768203324981367592440712734991120708756847629713438656184351497581662938855239323165802515259355457972200437263845380789624156474198446106997013632549250700954203342719118844350956094910667585494893675804646285934945018775693454273009198866151741800865335543272550939976323636208234175163882046928370249979256888806268358379346134630560472634854097557233414434120230092308104428765688250768033414949280254385198138242672873072274653625600465844464555385408408224471007246355626104778072709713031729308051144731411097857212031120502138205955870140023532657327636844029087294535841244537754627154445381196614371861519885478425537903218760198050636807794756608392807744300914877137862502834349227114794965554743670804229071911775622650455799273406660641189553411807039493561441699540096636816070155425482999639654384093753330762318878965419242061622468538810076577878156361731012139293363252242821493378713837891496069537817744728201849311549395931218090484030640758697511837259527373047002974808076717252796482497807106624194051848892205269757699767959656973699371426178999991602352093310983594294123940472457250879443726072581709336993873125978388387515407849822958420005396529088905232075437388682998980125540432278067427010966088116093644391090538271820383764779192448272313134128458289731626965316266794697116569152482479152053192369723241018922353391772943814086394101981365336503808506955690895959402286394812574842812401459838849322064990792568531905629700349462618926146014934209829178126195407818014649608255843898116232259872519890084433035239632987911580034104939154473812638978410833579897472200847971497583100106662124440887600729725857496317835367977347175910607883090232840383010255991947766699626295643563096110824237304342521413576521801251636037404564278987530481000318874855905710921199221665874298082259155741211000776993080529987265621540056575755083416580607964289187401871875591698580311754184853149786548835359718219214056341540133117319468499956583766783024876879952269012410653339448582064156176593282483226723361711131610331687642377104978823460186921692314307683995982620684362106028928901397424214032328625770465466014140258325093068835841860233453772903749782493847306137813472209995460429229710124949746662476101316744782507599892157116404703858724529340028735366116356800613006429095211136385904065881187031798948207111350334194511832007331829847121273237199814013858662474462477484382494286584578598127547976037401858049489343215035630399310721649383883124478039238643643707246396009596072125170752228138906633123079993560610041781312126320630606196526375089455374724440530087268725953564299596782159434321932062242028477640731261523311689467315731581992823840291019440133663881429470168567374947456997572435304484942121973542110711929625202569420606254267771535468206807219713880712702312542165795951296028714118825978776012081274720782397401131391555905070747161617416053154047551234213770015520658317302280497933950338006834303014302520057886957022876367912941397759326636525550728743413891308219514627201934199770381261464880356627311294091419203300648445064951641096485831128517027347038861565939813157707877058299616754236859156088397770915858645986737219538882850474615882995581330042327368609385347340145059460817750696310439844157158731145570825789828500581744927155668222557401783649960356902195469309967739027063045867256787435157323453373969213432008009450337112623391822683743644603876367197485238123361022286683283777953657005826243522094801124992738288379716049803334108747456377269430337863144274080124559215850846306277989925557621950252009623853187025461705605558166554759057654194114230190394374023132291411340484135708666091791760428379990181460718563528197978475947264033994360806041991611205206519791163937338101205718146495579331306952135542674704957322520487615059831291992196695844139520913585751051946932339535296679709094886442304022616741299471062371497767787693833394468893099991361370366015027803183802705401148619356139300463439969593002299012860659602042633676758900817591192912439050765316764188378562141969178301300866720164269438304789512408758807844407109311332240195143702864457609825784825739423396127789018690069159335876070744791434172399500224941289389196830605783914641375809429729620573191470838053184107665862152772889128832724793515102975732015168385438081963655927107019833351380485481636174897981123795723877130983899747127118706451803592156524975833211812410202514582456158193721189201874500323587887890417465667329802076773149746200517849941833076597446521191711096372837785682350532850859223642286026843811769882378830750415270737494440573807897651340850606736401856012739810251787101759042639254688261666790051711726461964045238030951342650073267134131052790814418673169459497895582818966272800537020223607837405209097785341571169739550808893227526843676498990044545580304139754659862258732250497819304957315296374426507285739402815911543320685491247595543296857373491658795599903250586762802861655960132485942066635018989168184528239572511119205810816610321427540166233507157759093912542310207346828439043445888227967899194686220455680710888788459547465007454349518732048372627838849609622957470560517577971779097551854893974961233276892384281211570336317111948386850907122515938899038254442424333821655572176945871867652363194391343810191881856927755452617988852821969856041995901300519321748946897240418312998818253951212723712462248927354084371146259255691232005395884858730480314917423689303996608382646735761974055521852516001542611851597030615341866840441716845207086641881551443448919269408211950958107375713669301308158880647298635791946247714243248108957889054102245416507164583269932957505917158633514479346169637484635132184316492418877754027014395882804735575224759671047902572160946507145650097870155993066796157884374572750568983527374440976023810454360232348355986274215287085769291148995485522991643289459277557456612126330562755535660724205780433604068031106294730022734239064481804259625102475680685866533672280706479772724464543368128774350215370148449958070711731162830522843224343474714058021278828756914013425596704297992751187492720282331615905696704420975935768960633452791058948914177627731797848461080740762818295259177783839546024589461497367511714888152732771794843709010602119774262034571569483567849345119896384982235433658894425046408560388612379540321862832920104135217912095980962690023237764412708846662730376360301962459667946719559927923396808313989423592022258656835110323277582209968445717592172293853420983097610668144311804928051502995061513485130306146281720068343851089316757046276545512059027321139246780327865390506597394487539568963095760461514212759848693252439193169185716619633604922416858916689485766372147851945198265660993955883553413401358105352435437273162894790851800142452712185359422913459564039056319552263196056193133004943386182424755843758552093182550652675879806394227302644144969439753059301850486230622693013654228323121501894456123025590268442366313661984980731887413578285462853852784200467588488886902988312426782009319265735712032119048536704596355843648161783964154122079056595748591424263930056651356414222398244389925444127160163189843925093861665643428793231346551859335587490771024393449697557325443501973758825650049576876107513207879673643271207510289605638092420071645115342584945095675554902215132104975612939376535370484309321479317263931519450690196753873472578916125247781425880999617899398840154832902984294951379378092787554109387125829537464593783540251462783300261421642422514982388495007553000290535642035053306771426319482905431737351402875271128491085030977326164793612771741100451153309346280326468287571159054375134224083053031873659019844703415391331965540846651962391295905118583673917125155035206969422452542049117943571266319004050921668101525738245790236781477923978989485990735227242409978653219209978209401850776869016758482153765826261569176672114698249380898833918150978595581146111924579491795623121528865205017343581032291797177984632297703129855444816369852574042782494577117283848032891224393138644315086828337990297609334802046647573253654717974230640293954115416062323506763805034115114382861900841551312951640082289076906786895602084837021861432942429847861115327643652036024639260742276241467453954903700951556797842940211598850006636072476460793096246862542603708989592734042477745545269343122675827047272209698323571835787275802186820354169521141712794779552007562007775355887778814652109928518984366153950908776385122374635609459331024025840626440004302319277233630834532522038230544606694635904886391074097868935523312111123910126912833003023662762087996562913755121079206895844763607421686414762905550331653076511427978403115442386727846586623841483539622929373329112957795194434263679080420445246329765164421222149264609370549501846111727180903611405688014020315947326429330214488211753147452393773470309010824025449193195838106222337254698517695191340105926653413373007157181628989264943952170646377126809742546556305183249431348371313687579980371708875175130968132123819142763589123623584056596046424899248742644668809125212890852559300569486997064198034049214079992975228304081056034631676568413341466456399123046090744065888374505056210133013915945243273472929287444060900412169249913336046832620486972177364471361179593671862990897027273714513016280419158458486223258713425300740009934537859695367484371862310072662512120277211413090750442830730316854976073410608941014928176912747581707773785490510758579569358478511747707639922997367146083258326054917998412183253485395904556660553313815061468268691877072752139101244431399519305369788050655905708921823246016263961008579199462484492726125175048096440737288135935486371837285498496127528839376996510983558281872564075288978164766502876319015287342871448611591632188577205901405528647547432897173580012614514135581648754115221015796319286248555987840469757538381211017888958104321646835041200777762947082198552302242085355819759756367094435052863112631904605703764074641338467558623083455469662517051967877169033401624062472226275590162637364804347671214883340347895165454556748237049991100513920641583478173579321143694937479771442036328746701725135727620884159035569256521477154451315268718239901869940351039219273152760824653227696850105193951795388411366194147261978922015444979567382200509362767782217350361939426025337286057402856701328553274748886417257142631608887631513446114265813086616156854529013924633563191599554109119756513834823899761420324930433422532777982204901132091049000740850562602478994981715823413716306118350361440680916831458056687865866912294471190904117375089008016972291975860184428830196569808417666270195345654298938522342448485055028740329011991242336352591192127777047305657679903155996081050719887971177186459231345375334602198773627385225780483180293417839598292570764339781449470503776815376728119707172086103296313036228215571519526016344265300242888560926362056265148949850762178521192456171087635592500608518927643427077274089183609748547826381298581169151565222610156832893079270190270023562092386233205462982883128416658668763337243042276641883611971474490314262637573748491970538960482781410868636113472772368715703537757434032709943711036481212725799946501804864658061561695423375838482908993985539330044194293540817072410668549504808700443996589865624345297319442682642450328518819855878596137904084728955885254910399442047273008785557178257288529462934804379360459939152314124523698250091099773291193682269916170188475023920565025189533041439304111977817967898474958045712621520824030273687700807919018655306566771604678842839599215322225303042193523856284106577834902715099667599693090763034076919139346807565849957581249540256030743752154077260045680656144770312791886889433672852888784589892221809348074814613420442892962726936505221535578289533730928353386505677422766195995702745586663176394737021777445068085531987458780705506719015136213363288679595467946377613851801126556201574833426504929421618698798140118853405888722775792877309282631279008617102405793043853837075932481028442840924706204163508530808029736131093045850678508549346826053057242267459648424824056284635602776180534696643374088435109794809959349868237433700525741531049268023752674690970657149492765053929869843675951494374648062000382793374454720929168112167246663117801985996408361940910163648851902930243783365344793714107686141599319319586740179071354810587528206702168146675168487017373675060026561896567769627377455022743820822382948703478828555865330929107586878077696713793986357711992542826803852364306818665610566613264434949922490966796215870380901594500533687076180088648578036470716131138476199802815426594115910655586526904704939287135646955470891986662169451130885618038438702896547389796186353847630298680802556711586484720886363391263155789314581522788248078316423014129126843554545298878257415878278983817181216955120876470235350640367478954756108691844273974852231392333031601707250436434767982823742637455818980577974684153277598584639122259421855308263064721924614764320925721422505346853557798506391871347170606509228283129443353843363291309266053230220884019703097678287490714938410216153575770797936028067175178296235629456698361787221116128019957932616813368026359314899095823588227189366765988612849950631060651522752705068810603065388135038301618314201734354447983179557429391613036707268224364171128806370269273400808661186216953832742388479299496519094485784288524733918699975430347443700821006527424142264358091483520720238335523822350385092033518184752208703594265992280009749888768038074932553984420874164804878797646142891294229839784711915689548509681978045036721277024639303350731488221215245856643381384774212731821646392412790011635761877497077650941781782152728680044750912212661599707011130073623807318954739223056633685331034813473651277343350427841537043448599171239084762259275965159768039182581408306581611052631514290019818061282715674091914195854360159875583207170616661970804435802652598871150884552995947603912978002445689144657170604075926096603748341456041621847274735073295406866990188212745581374433068912628059397430846037290071800441221135940336232012318070766436734678048258137770371482021162258617526588466305641435683898852221598647621910415023899982369768728885684953911319502118483246384779308554215955058624582589911276420717797471088642826107275891393550071556309615872712152527269504389789349235225971944118374761729180540415209621268714119772383183727213409989066922508957134647009557956459648946678777174741352923085380066169519976940679672234959458209639181828307655464057488064342212984802437588159200368448467592516560483866509569705193483606602902909372949510921330733228957421897261150022744993409249350752607738425448458504101281261358673355235973362254467375730984289025452099538797579087415138237623797737240841623524683154109076307903695241234514861632272524132330653675856694552247216301717198722710570674201629433345412035447375383094155415519492252275083609751821749284179713899688705988999969070801142590669136614906469521490560010948407354113435519256704394425474053337908948160183354864184028653344028769845699365509941319828967160500779364710803632436740870875216478055078378470658530891224737882445701034446552181913571313529512946040120655014776014113099711728112382242443530229560043610034689165602040851298362023618915249718258898654877652012964958536588732820460760838290827355665560119881248321042861674866952036516936498191797262310982719386892227481547702464896132672834256618566530071157710832883516205875168826562457907169820207207421535430709329857221828749485349555688100853550416664873511824654735811130114642247851673248697089610869398818350264516448229821718698200551933570731263922684940829906434588396636513519914144720991427178812847864627563466116393758552585567530660307659042461300182755624607595498424262701064210032565614245357984833092633907230329083835668777296896217103512012148105018800873400328697927249163464519501609029839304217319575788749854428032522036365438549771774616514455302173559636526527584259455271755246752025626356904846015631846351220605469228651266002412879619695968110630719621038891899027399924497396252384846237055336372726692497872233293898900013530517192654590721351066112931752007767394677598378178104792596008208560071512034398414985767716115830073552922406175738907875842222247449308752207232849287811125496939944097287954380321787527912480780482349370329333424587896847667105956041611997199652980025063400147689482415908615288480733054951898551033283660919995068312062001291158773375634837517561014696248301103461811769428369830042514854213134601399115064747087402393994400468282654164091896516470632538993754968540967503914687594620564768243369697259363703609087063113982141041832784724202618607875983610879120956533946249375485359079305252864352286757903687551047679027161600338842777808606509756220562434240362078334224937486290035420365270249107712867509287753730244524633019934231677774552675523468513415651502907392492786177781898552212689198525881707725116537034449745394806463172649613098364740922935892408702941756105765790344364916873277872208383897165925309399646099805233594784948145969983969108748738700922773224518721577646149248409838068662930078983160598463523799510704397845369006023816559258276509616076170685732432529538725337428425621639733174562801077581883032703790155737412353238280304157101964870168891834893070762104662172109345825159292743128469957684759995244767602526586146810811813788027808575424589826570782274084018673551568504565199352968442543563218874965713247987679743580282502372527178520272423475311900231465238133746814645867325269443103141820049962966364691500729566148775162866954223947890464974697237344352877048268401625307437024042772208083183070331304511845467988363182694745008592500527694750847276547680563227238373996241039104093222510408918518063663623497069409330581261016843781215996413543585520043979068257134000270846381088339659876689037901664419778031515093660874393749731335514078169682828732844035602154975255064334694099881785640130639932392066654755537616553305160271777714585183729877932365894026718941966992271542131438367819833380474014243332922011189799741478789865274867236315147504165202403697122947998854902836857438873231895539560163645242889729164370966682973000242262261822989796998087193197693394681640407225577226879335710178505065276824148126602201589143733584154222869153205767593549884857226633285612997883147269791548344165204570385362019314182350721480878187579879191815500660681346950448421016682929395269509255188465666031993267386588509815706525983088623169684826058557843591894492106917726665872844094111738519212128334849223242384991789501482232144051773875109678874708543988702772002266056057539470488950661293604283180910727002479827188794131175330400047263217131354254237506830826345230654168060898984214932861842655047465348944055564904282876588670423075712694756225484011331227120278023547043186316973600167021737135430535037256222038001951767004820428872568842563868471612309903728917507349007130560464248645984146312566022650550881072438827155632885819595032295493020333313654994489096742316474141966993320497515652144178224246640631798035159250888580578449790957066925963529082130788131224168005349568609083300833894805911412414777467453297577353512592743171877719468857412049119264270502018899163569917585712848124151200675996572114423142487230847725541336218613442236295272451525509276808717440390129512094739604535328774944746269426632377255455443925855753524748640666195747316218358322539458449901982945146110262164779281086926762364281082422014513627345033690890487704452197679476895682871883923702297371036843745859331812901776190013588403863331045581485459600508639980468702490247175231650092315386421498534694526384467725669852951395412659079925953966556158882573164427128552523789872018960333061547014650742407723977026849113788707704713783773392774107516525009645179167799760802444539387372426170423300078170796737289449796286504813583554163215900193494167144785850386680028564335895117451146083344424749723222124767957260393156071522490501848841944795575142522718749285943688608897685541152144111461511452066820504430607842238569011922327390157942587271409733695180930650243248807542240359690527956589034601239660825591109744426134933980884488275715893346794728110847598812520945099270407927395572270015334549425247336856877462928517924531133857096497488947353013871975563175763904426127890574975945371253627188575719027184875869480675337024595272881980350365478746662785000666700825367644579792313777850507160821559609683628810724828145283020387855528293212231908542917500031427003918224782023410720518535472051777458396027904877192689716293572526127761075605236418200602685500773901119175920036027420836031712978336444042229575125805825002753967548443696863666900102989733460179144149748614483472733203913414205366067537934643589680206071377969014034754077690122666725205312936114884936260600697612772583079714490687676108076374528129134432825139331031178037657216597644908866912279149212546488606991781693225950748420680638062155400574655875468834073996274569985004105155634784470920919407937565684456633644094562061595033353609527033617975435182194361288343076717211953985078294333062064104440492596741383306289793056578075113189310256760825368043063092642820728647381281511758344411319081505163419397109183627117082599520541210074964795039552628483092083171096366728824117818667677054314991726742602297150200417477015938552010106923203139462634992265705289196913291715935179012382247091978813904647281409401653446201284787346635106553923712691251429808360731020843631957250170521400570520263606252787018806784529355875603773781064622837823480163928777570699396246837697292664319818738542608240805789720854589095539929321341031039189736250651699617945134155858671971201965965328485071296268814282080847577728302595960359558343265807361786175806911590907432115925842058774735231695013196812167169552747787067777134838411123038661378987473688950667780071557542609058741814556055381592209692856079935065557920394706495081744492003549924941322294841317135609850483986118042383838461587841444153991258390689910755291449074839906138697492553955812673680677953416398745320689854551014497605160137197489305015817795550886528149326168499990779821172595068178254509913906211073414094926670438164868313452443223871303830669434152309206948509748383105853684770352873475495203358146859740480233443503803155443584431316644492402701235813024620739259065888212034387892375195845046379665789163730162913252419754717947861154843181419667266240597615510052483420398897742426083323412242243894903036399883718314440115693664527832033678868891355263687150639976272263977168002487213999959291397956539855178611563792614267965478362532577984478410956777559122638126397920521012113526319547112150951113713172564456201882016301805627295591412403187571108955590916597395516735825840387077778634495963626948616615541671368892769444359141817940246331933086441214168594719452463346273581963824343518961219155882513129209178842606924578048783272379811299960487932151875142151985223045306354880918318252324425804025890834797988749590303804848382278979315746137626013078275932935629678504298602678966459339172247479005194436406502215124553689906996330650294807489640940457609339569418684800866669720601881109991016241479848624110931915174809876314216463989764086196143995551313253919459661612507710960373622079132875769102513135112871163069303373057489036518434141863530504394629491636080831727102651201911747688952063085130597575078371910951950507564000232667308083646361475482133593401125645069608850186404256783315609329894092766706834147260404803115202257879911878143902851228715897252191913336556575294603237547616082889113146884755428195122340127463123339641033681164206632761533074096443853341914120470166567344937079724359487816925798295284065979227102874604258802602786049890889065625661911386762461711692706250843079196237241584954849383939955377285838722955633248337370885453399804748656240216921736902950230627540985236744715927533532311379238977658890763812159806384251481808983046040527320521439207889551882211145435601303901856707599266324806310535834723704060721155156694866032321455298355326859908975505674385863832528227161122694134381396629905152166279167166891456501830505977664179311715417960070074520780125053100646919345502729858838382985832099350149137031904547359287992061922181867711623142561180782681445349197395359331161601331151165900297808931541906119452684878170959678321737213995334203658564646513127818986263149290466227103448143525582265693722248389404700682946769170948234784672121862095638408515440571766613455859734479863342308568724357266873785290471869053768539108017869241790257098385168057035181510203000368643134283204972024983421389909330525017430502093561631862129330068508319905368091400160232147206986671717321393633624804581126590636671712729520734695455800680075821908349137332478733662548991954740366713725473438526656888428510440327607818577888242795431023496635717657434621445124127411819311874662845600976071247342868544221044517695397101874467712780984748085358627233591846128355606940956968648066955657835372061788869246861022587433303150467195111422970948390878727916870246359639338650692346211285343938835893907489054347439521749600517742944322269422571997023218977587039137132320382726569530114998356606544009684677774358732067223765665473187678808307182898290031576486442060393009019501921584514027374652657605204026588237011875136976312691873716870574801811471314504450682993444714562679022581703581485622844964607992648592640661144455976739924428808687859444133613436282485922051107256060316905371047280689071829032849118391247950842254790062657386574162143309510751963979264403163440527169562284005217464941563162453788261189782573626238540245406706867550113391014564656249170053944474076914753370955086430969888471785603615300734211158356708268374727074344266955854764944880939704424332504924483426101934282921445622864430960911942405492110150699512638083019223965445883279747555295360397155031546869605783793803179940117179118785151698714999949045770743041829937748071554197626588176952937940379820975083853246552149667499409493590974636432634124062092400388112161484346490553114056662631830927433196252000846144959123346843811394261113172919393569982773201244937762841904599108955481061469659622301098904667254053330591666235672426286214571414501182056860299948094894993255002896993414521777011213822298685229603257723435524677163187681456457740668134688635378626441621434922678683331134338392775421055539270880164316145651112969785965497151247769639295941663762497299804175980552398074652090661314715276521002394306746192218207761754712749013083155807515538958633059495267937798207809492949675288450186263120863732175133364573414363134985842130603543919145524707038696533563115516216983895982846123015590628715280335103301215144246563162930179392144361631094256887978670714711754946759317272866475383652522143353893101947553962632027669777751644873818481667803332285409927708800807619368737812927743695453355148620143724974853899680937517274663946304358097365000619936614373459294358503572378959531429186368814675604448002802132900189550868696588049951801913722996670174259864164071197223298503522657127872950077127076524988326484980369297502262432314956452040348326414888402497251926157719751177343218817305723411709003247714085745108712900459712866705222268567051328685264044030459747375029500525319450839871593045083239126822309623917958354014939639839164789862129878687792969419948932015679490808593596466601602719503211805974268742471018397544564438175248350150850507737137693062695793866668754204479876747333974438987389058217971058140104926940981937210752840856679030861678238430117258889437607859062855983040577293277164434671852173198113306000782466264408201598104100069666629276648008431059827854933991658349603471440827090996535525806011298395752274934688110188099991693247122266386873251500659218691398179273734591610899102767028705198510845122817154947890635605284358660733987167486922337897426003007773758524815844604123824713816444581970394970564117489165880404397263218219771680543384590429019227755543581496067826878483852960177773880490981686896694491883403332310435640597042591793504332031553269645986649760836342728206002222634880383944241844926756987930100013886994887447804709512714782653524503686793284723541850891693094438909871442453334362971141103891290463894465018070846631135983932768083534128407703751017562183996171119471116871883139336281029585592808123951793791010944369784178110244823719659119130586697715224660879874319519488538713377392951820476782102290861824557616245101919320637525929345528120900360020354573102597817310965682777761124909217200339590847080897870857842982541568618820785222347417317294126750705123865847946341547063722591003279086022836487371962674291905807287621407309342310267624474019216848501073329700462147004792283217355099314132741611424836212364517778995368500508368446121436752156379727131971975018680666539081816336017404622963798689012154601712623259786003504706879967471681846452878469895474101720536996995118355473505563351948666632836440511442870617563610841506124403645715559314914163377215504393940957819568353404435321140391906161839613037054259279713029672673572004374380145873709436643731402441267335961493041939185186716824595447612690335061462222207768664220775764024099724286383690189560905451119688781977146884990287622771629445733321429037993673512859699116599802071745651456755507203203843739682797196546034689759920411832347216641168087117454680385175019976837212917447149923709226281988579888958545116231092255554350503695264355060843013247792152491170323787666966479818289471707022865803359173012772245015619068778509487792786137094896984424794231830575301349267976560119137661903751352530964247613937946870980751762108911742558371188665217263711328070058734324470428348009383520881971539571148566794091630517534458767311642417962276164085342288009888001740824064812038863242913862698806159630973253298364508912976792969126540299458713680548473891905615027545460428779793195801803406444467272188197709177340703577358889202214690417293858030009378445909234638574472780430393211925066268465812788362360542211490785251017145610208700450396496844359451817027803214104611297360356074590260575890402376108054587127792549588671414289203239820786320293425185184032224653384455782139059831476295983584615554518992926473977899810651236989699340192925534003657515473303013669769540108359300185406171133760203880868384103672433049512805454240116062724508342872225140695555147866528167048822509537137773844812946592791687552049314622867982738662801652207783232173891281640931129235454557740022896492418821474170377509295194470709205069836602585087046471914099263506052448411118829381337505428392948313129834281923540885506932289084972527857152260347546779762616212122247630075837399293945660300907403384584867118079434954052135157014342116642872567908957040844423859508609298873991710192840778038831981257156029751378069144677034334453231330610445513074940749492128128166252519799949879994643933908922512983476140743838400932899120979542110474470506412979746702234250952418324954946279102508224251271342912769897761635150402503654845724787217194675386991209281945370805585679501390340831925864567395476095002433690573011643978101361591446481168217140904126029765949932585764222586754134698759173731567826069589936790998475638195332737890821249755654282168807790836139386799484611054230420034197137281693526031355922708040653425643851632344613735286339006935421284622915320927120119336250585937598087132742541398896790458791610828466571478474307721384328456482872131907077331173569087350593671298255110220472263509662049733565920575728559483428087030287094887773054844187326148527652304265492997922341464793092509951794577403703194335652356064282489711192792223975133535803376155223270575425905184622847412551212070283167443349894446189801466379197226227408807771657000476027447118265011152532238648193226688114246175924334329721415129529322099669849933937535310157140699662903308645211915611386602035182947817763234266303771581586568666403720652765138498853328667860698566786761664803941564502831681618370894348560527399834976170807083612796391409183740699311148774430967135167408750315847693770407052725983701666045832722766415653801043154446420988826310129580609454875141763253955634896870113200445083855875252725466187372548979732103416053712748631678017204185815949050347119697059509444704350557496470831724658169896848875823897768386530651230894992764629264302678569568436641517644247877445830088462618031749552940348907668718033284443075421513625621810646572526181949552259337317647274022955113513370051993644384371371834052663075951352891249938312114781270070176533264601223711926681915724444786071165444285703980780201828500772876690441256833645320208728441460461220309135587691697083510825824499310834055990503993316782055799851004398262742389223003683106220811335928028790681692531089263596095409964754733804449616528423631921538821051721535879993483533607890364928568414450437553712896563252386438564826398391896964524236186017847500930795022469902274512324294925014499752033739105431342247934221634524999969880847716209255868795298249875026392736261674371974068267984746342938858079955441598817576846679948997218746606478014024493317991270725030662669112865028769550406429155291249674917571643189290797862710783289935026275109054705644640377243936734965328793921255790161308586397224541894528515096531350778844713911128972999669852716853520124894615767530508343660208052996325238345621994808606432267973566111132726793280746226048004529146214616254612565331957052803738314103718760160608779368177032322216154576110116996028962842250391628384161111643085013744497128571915927579241264721271833534212465453062958049116182592721525387248924553250044235931216248997084559232062470313615730918444217265554572475357735181134574004572369274659330179297064779209937694180835720779595598321558379502516389739294450242435840963589171672278235808874628408311962107409808665296611308137011323158421689926968460898673668966636563147239192400386775072823534194272989778849661240130635610307056271215174698315421598905215360388595969810001860902526436842741295326771595512095324977339563926193176029829905237263329963996153856175246806813668531587997655936678992791485382608075785501329621201850921799386057854445099615299713186405779127058433614141606185495813690391991536123206111772847402018484625646707764949536183558553332467812538444832690719981679329578367100637568776846460112113904845115765874432974941872600828519627665570317219318293671634758081659939664806538870524813866892012616098296907667337356918664374482083609331644905188803951540748512346236587929244565571171320443746017657323595904401930850914835999872686552819633413875362591376294377266631920277068395013603645922554091855251918105193095109647901616555936585316087606556954375353284043432552587032236074312210722097118899608177146556040441695740025917782163420816965526621612800516426459970264313487549793328187127027562797513321158242347923395668229787328089908258604687189545254970442893937806067739263796651011960861173815862430446364855030350582681959389053514485063946450204989359248108314617516210780753190700616706823531458662290421136638042528010667944779805210553575263392426422310042272766926699370621757552933946487955037192791812742293843520516146348657673720478810044483462616819135464660232757742621465366493909622862432307838233882417462429121497168064360024132799303049567216252445685472337411887057893498736344845128375660280658698395779842033580421215759302220444196040369132285600381655936087185370093907279928252254254016344356232051284891927933250594495285226017167752663536155853747384715835257899740205654374822120477986283018123093966960705338275617364257794837242434316636863234755817480281246110169735461039935569465916658099704054537001929551792720159158519723322967737194089693586658114166679171530172054689291493783557911569374508164149240827791941772782980867989175987880133558174531047177348202699275911021336473704885567646055624926821057818376235184062847469012292892772243679859926114953727201583351703416409319575133553533242759949871829411349380321768973198359444527140435958806291037169778535337583727094542306393276967781649357576149006659693452789715836045468112583712030749067042834055575277887982177879406214353791647396119712246374843162348399768167868733155848973063827901133594510125869583140141922137953044680129147038844066998452754430564502370347508476915641021921317857208706317538091873265892512457205693959026664722909964161105380261477926784231786945668762485436698038307429328943399021554503863481364469687201959574456155033397251600718440841303129268035901621791005995970210899102389253845539354042551525006929285518264478666793127712798005278631334842741912224108729881318854655222082216635826388065164332587012711212370875071339257743708302358472814875828028425310725427440104182825813593494160899612282697080702210102670690635740184551827125674816423829843939134474238645547096432085628632416247863940950761367324333898970313349600636228927668044470330067503179946118156490678178700606956607076750713301296359139464291905136708812500838156508269803535808810854434536064178367177501889974232050928720867163705846050613437167383000355765157846848466892714249846921710232653136742511662344148735597669929054263497559410668130465406171386953285935937346609869685751039700599132805757499852349971352778850347389636097771223893454343657310337667244525305528677547255940657998882684066387936508912162210541542938476043304633717034793728015526624868968135352027149612197524274811788239981813173268818759139169359110231338500580707754722908053255653985838069131917449384630976822374323561833371116854366228722603115535372267828796886932314545753234362889787366304967504076401504172356957208725466138276542362599085518741405376276383175711898137926901310697923984662756462964182105529282279422179375424466351791255382301211757867143469019090681484198169971966369689047480644489096332839109292988363718046311923161852289590297969170344448263307652256019191975779602404313212964648573961539567223242163936065192159725362714525515269431999365160005664008376871748971907184122101634824502963294700829731712848342094032264430529914858338310591268257371314805275840396668653321286573020614691236842026103730510987713383074273911705260284953684033312319420274107562658157175237015908935943448900288164805346990495359473014491893164877996779450407449253477742924024833795144513145986893997756801495434023929355241597420668992905457901697198498112460646361118437871287359489277702094397468813145332860074011020232463022787365111748926689660885439473283370108825151564730089232077543171777951902485587027523054535794313159657905215141328255092967362804549334830584949266241231308820897285554583322618384180873540855276599247318657232758215952973959746932845100818261160527680656223915296537250806504428709166256426787027003129426554962838768867900924735778268782536251034141213970992512580809320768533164064981683992839681138645151428756679951204936076603516922951644817212166319721003608074197602501962225560294406698080825713421483331618919453862977642212242856783826275337167386486537600223729322060751401328218679778946395961697309952986399863581940227483463576230221249746199814765921686723141829005045935595024421760530203378830948899266013991812599673881204561977578557425016472301806917288627381356685602245483119059376894212417432455649474596649928213037051585436731199404325386863421770677889826816977005053912320784075568076583861113145367850694819930487616877720291304801642114495893683401060814779039672168162090225614917581925106049696082502197367559557810554624889964690617989063013721363493171803162519952470487987069269001690126177203085443325427427547024727306879642605143554708735597637765683898002464336192234022714145498271882902810554447994041009820156816592617423496276951545843299347548437991732427420571075442515101006140882544885060412984792340195670983950781116301433973258561681134796324475337914446124445009939016332807463188618091938374137410466251141210606357798598553325603731804166318409396684103236951098284445153919077114931291585736440816783642553446125896057028018602161320807380621866313921045552584837288567459147063339862048836797164147085705425489351737361954231538351181032956838896579778206594097470852423674038018643726757494915616648200492112615365831415490315287353035213942627066435290617532083618705645770956295917462846112534101119637097873626744220059261146664370599185542088065131101919455663113679219797478680279663511206790138578068562421895545177671227746604388105526443448664539807786504014801843523430205523399879599255352909098276827898922280145217693024159240856790985634636390598430940425092449824845471326510524344638448924915321334725797731443296918104507406120201179429902068331993565405586525063264137725594035762544437343772658813600406992427099373948723237568133697251181104820295973842391649536843151132600245923599874797250030479021735175834377454958901660310325132947184767075141197524690561115031421064124694084445784465267503104460337117961075591870170114908211518243235566397581383390284211985859117600455003026704397669929998516081616191577349019494793944241078043773515012484131765162574541894861177131305567428209948750847807807250934839395925385794611404845614934457183699622560923889777554293734705590648685101875354871520464359856499191251888643816704717884536612157020990344972159806811737852922243689043259142636129928501408299930268904887278006883286032117191407821481806445716224525716690238825423996524531764555385565057997681115066965469181103828794993533468063050626614593003256624091992586493888753918302285967731162647879044801042969783432050091503013927838423699439313933364031984188327851709443268115650095033058971769146369177173345165007127029486966541890405692345483162014374568221575506771810826562723015827759135613195867674442888576816729644396887691121356299289472776322638122165701048427652559663150453900240423918517957809349966059982822430865691426283115516173520242545793763371002774143037647771830685731575371921015971636016475096205081277287096126888817249317961069175014038107893885733435475957965193525653812283341960655297490795400279936362942362967903502903925114017717847601496417283047622369409021482268059275452002629719667318216523002564615654531899960349529870913367941651821254607482344547649097191129871840595365695510892427241368543934993566031052511085489367282932882696963568224634295803792176647813056214250805215127294504186443283417437565885134248266327852641123678338979824800071980379162364243955664797910080571106107080000491122258879240450206735926145407826708569526273647939520503252350850066231455900281593612342827555802563782679527688763899616315814274526954401358792153022550201980713839905978185995496276013144547331927291023643232018377302847951969126312139578934788614925236447487263154384536817529329079827975106705654186309719750113702827596602212414111482054273957578060997995316280357285294724695958814903209446460477286196582387304088679414541651005423057758451869758344995457609026592684293798774738295739857576294645625736619192823861586590273507763839902973642464055313359858900743130491215266382321309159266997485974533126283628571285275658684745084779768768478753696022645512991902596113740232673233236728768250001990440150040329264604402010868315900563329949363021300207155324397358701669551977259047302280047271917333560433403150402049294227721106059829859177429107470260397101358221668844808202250371469764919330983905323611526909313787247131978610865196298266042765474566836678792909099316029417927104836586929604835233868160762606417446925684537037894638790937117544008644207891696903210627024816765385041865041943729865464552694108694307723844051625740809480409884446641637481577808687177064074374961027506534290372084436255854602373608181253766829169222535108860393907750004439998999038545390729884084915452144009872740689915989776623837596297306118345064299018821145140039271503495035685867923449476074146702660235922135804447829610901237419440935922784020562226088187582642107386116737380915806761542344323320538712479026488565811124117472039243694030731913966952372827150603552665742337174896495475665077986910992956409021519327515892495937759743313695889592134639262893947877071772357795568775015852316238361275658931174117030069107348053181977539085047064048986414463463858777663242104201462518829476674553895766087543421027061237882453533963289552927267742030162886260270559404764111915581540546698354295738090822446062270978355058075209438666759802264442704411836900254355748649899175625368771334600882813066316199479563161766507720366195553506512970629098430499684240460071491573412314497850115550883491354202020075705946478622602715246696364349809948277639512732318124089845509140307638175803276761407510187726684981896378445164341846863361654767883436788816652287099559926997700088790283543307878942475845648234364952827357891996044647819982919805127556670605498376479549101227512590344790279996465390374300348066561833769121669530087717770352979090519923290347067943804034696168647945023769424059560848256689823871936669443369543556280351657386183670910719856239667895394048443876497368862415849300540951487728569133860835997333737505986504416648024337988811780827302124946653905833472682524055352202943935457941707367293268912713131576234946075275511230203687135818709247091080914258033022793835139027647593187405451192111642404299871938470144023403976394705157760915209584136551308192094646678148345272993448468234765584323063166331728806207905848271042951332508777746419690554676577254277148248477377838306471510515237946084231552438188194526984573412731223262776140000183145349254661749522727168530277902707526238577555351002010193354246795596702098115251366975951854952272668996989863535139655743329755316430239760569103119951059708468225862207590671592838540466712887211030328941522052016515057789879366140309129383366270225299658946091131413066715116388645183603907112368852889450062109688740782706372878897733586902066328652030074649316576990754625521688189337632620115681503073728977489066518375854925603206519935497538415158140126249590119402060457961857772819737683775746523056529966418414262576105879219453662726884155195836367125158365172656759705963262906422863806983485903121518375189302353415769395183742679590007579249674041254230996029756429004100937845998750855418919801652444924500811915321909583024108770704239813990256229831282196531497092267360257229175723493585011629623292244521994600201185086845071254142248942450114648185848748564084390857578837014251234006497597525554142932441531299416358139801084046417401104114767228224100048793681383003752759999317163234689385099617530901325998945042942457876634183199573130188207126526182333994173241808415030385540899172108852021371287908908716593435409007627556243280755710851628508772522882909806356526348262377357737710903597029380220134905873115246939062224588788917044617846455024974506254393131360002376888847063633647940541670114537834622526864808462415574653434691034672306107005136859116709498827217732546120779263911284997477767716048909504844874191124480591739627057275193683825283839942891358643950223992141396701912377346456219098665572921460512848144591868477610757185558391787734677831425171073424871991023674383174303428516009336158304129737368723564388000590329354651875406613702803612723063635796484387061354032471631495775215266765214456550337321458516790925639296801880931604419898864071753749581414480043078144056105620978497785028670003297429725463128938486422624667775684954988482639557402801129393559919531637292871316556721290861371158405543192214139556913630528752223616281224340204469591189827821815243565344718979497300835168180852244299994066259086818964802786542785121113425349638127880929699718716555179301149741074170158627028125632919314925851269600894260373804289296594469560818782310574054470942087377621418538535938502258862928637428002979814112987701266633012820869140109796074294093276880629465514360528473618181082404727141886963647836164188266112866039884510366474046167611072800632549662326741463244136550350501957528545371839174832223578307566122181368448476447165413407694735034584480667163248142130661005170467246391103438624742229159564845617191722390397606907286155520451177312371473784911567114174701298468105956517740029315159389649429256796404247512686162845230940727750985855056530922662161493099348627502414350089711007946458824174649522121789507426755154916732275383968636185404177712231792167608352837397146188942034934816985025241429469458736810559596625160464378420901788463481670520227292309785697450873028529662781251361457919200360922914441266582379583691097383285233078392616585633152300737221641869565765229514720493727270681155831990902167230284774999263995357350020760347137525371043917937523412847952978638305076986727838084332185357462491817480878549097773223075201600434671031957205775096527980411035877786381563035113455474124218774557878798409159963386002611683782999338201024320935370853699323496079046360640938958753240954280312349200678553313105503731258981730523039460926306133753907507662013033367130135980110050971563243175993141723756415149275611125073519636421794780608605716242745867916803624430588125058122841225081302037033679001355166946975049020740345138952790438943603958152957115736924947826604702439693945387714373158681548726746080760968164846262558860258748736257491394979654287175909666111876484075905046501552385320058306699389157153053497370709470450385618204337013188942388818471169541948383659264430925891537783288219629061748945260585136642200796043456412211858262196184925998239829270521194182042424353938015686861737913985956761113092454468872773437984607355305168305346213731192192462922229496367697004565497331291701175766554547490192831372514882656039910300548346569309075201907339547737888215725564837648508991225590914797435894347794170774356947130321827255652190235808310843731497921741516866401169495962290540248467068763259766081220830149642777771562722241132815636820963919141869789597531119177823431527556919482991953631975869174996896655760461103685561999683334027080766404898776672959682154674748823432306385473349126417498113797960534532436236947685505657481372010474280312598160151550036546816892280447749754300552187043833051226518865731037848154438541139921404837918704490958224774807437867816176397142360814193181726070665414734577462476617464860290125126622403876653781388054243930861489694672517337652921210305078077760654872653959732120440923206721183913482366607886622209018868926085073108235170631504331611701815462574876613414567525515697123883384471180043630060413767896200326792490256151110543803210853819184620125306962187571913692895545673094572214407452088540906527763626553677504962394357379313605263178712494218195258404570737253470319928414911481771433213187624128116362890175819746111244987112955325667329033769590007766018790661127285085330435188572143570940875521465667262195243984656517037185714874323872783419897523106315943627566918519555552292404372975499846894339817234270601179772853608545368282653264525525770566160311046320009399547839894916589091588877079742419354831201778913340611228405577386385340460454185502697120942080842036315104128608862085565360027198928820677541120198927815490850133712928587670093637031807465836224750214009351356176437402811027971549052362462724327724634205886052954382970214293281061539670701524183556271560901768509669424543123307406759294207167994369555316727220528074305899760956144822272114841166643306327332282836407006448009527803942154750077680728033866757063658788310341859817142831353585215816349103334659073505340396718579242557268036406542670846007182402829680067434113136990973536003070198192939639591095574133790866887156056340575244297670218622242878128313026454642174526135891257270460024755974371708621465457469258424447905681268503748280607684172192927026249688993528329545909752449320582872206771484191376742982994336193417250736739049154723757395252231907971793997907289902669347674748541265121473099038777958678737040565970646839973285112740206182209953693240640750523571954846543411077813394380723321346310676401537745378038304585145648173659158021063342921916811010657486045315824564571510769669276785804939108194912193073948140865307879558239525361854384622595889169889860597745926875755686351617792700936550481392526810597762712638303955540556815548069538065932509660491619786291904521032245099279405077351107368267213388436791091395469262886919261059133855496409831142328635264552145870896218186815224684769487794502682429827654008649014574950695047425398557473148815645965289617514708075566771890901817194111779370483994074200371462123856395708349953054337149774758685967169746396802314977582237642338484536600735149925878929432626972474211889325201775792763924705802117160600087838690209379965989813466778676039016716868519447694435826953375703206281349467090878870985062830825040005232711018360926811512690306664389497237028502198457972939209080363657570229549288086671472224379735689984063441772874967537844799615019030186375481343554349111159949111086407729138373417250968366665929757017067127434803022608867092367816033154643643250100109504152863639714907469556742042832624160687686427454125319558423940257817351424763152571613188384104514935676438621497173828029218187944364413654963537756881420628168740115687262605645206363928847183257428097860810905448160316421092692457051889057478908784328614640570725086236405384310282077073088117693206810370135139031036373517423537081007231910663549599475576317745889680914513977945124841163959989199235007172879115397450834156735600053373536402001128402771602852449227339500783812437718003472376892639490389688649031645597581092721384149679764641542013946697399709374667936733795641039357974632254926107630037351334925096684035168588852287513199582975580377674700661644515217058648329653304506778107486618214638645499751479969742091116760590688741682478377546188456813617190026906139876164174108934746577934723620926069330854763567566761206053633905254545513346941484244264891993714280277759277764091167730188007640123545920120051118006579018895201253215277119617449774313398579622732259434628269736218398155109322380011971814895026625851077598222177680921808202149614557725667376092304919293854768977586183176979649491372780258156034705448434063300119472790797978820562494938166812354375656984848182244374687485555237744553243737089343116646324275658167240538520464535312599890775661168016357551169162114558934660515721751751812116321295503718139553013340446791465818892465316566469933818290789734048803551144990382146819121029580447015430097839383081980695260714809624773997494621882774811038149573152919477033394589576541629813742306819077362823988994023143553245448704158611321013295932341743449942076080432418102138806514261802589746038189801571092413531850935690447381560129740373465349128363583034628092721599973313861781699927281364155792001481261579220725448059785691767316060481417413560818273541298127751284801066601563275712365803825563913173210636961722407319783226983332631531725848028973210675970465266154066924556004924559243569098852402675781120290094785046856852328701080931305702790649062168833878791341180770785445259132967914589096289536463787893659911449333975412328330213653471416908333152421301905193376787349040251103782568572450436106479390799190131097402679990816847391378683935638478877376004321626961291869068790010137610608371658593377454054542648079024516094528055328674959334355138692543898353484034141719389629631196847634751408266274621211698920846535117160949057017192387090852598654898200375558700466591084786622945994968545157322057422783426249185163388939121342558541789676244214183587063860961345733626464392877378546516616716401155059350736035482143227128542846088179335888718204109621241016757528618206220205128707706954679864163227117543931174581220126777008060828768421793760502013681351628373900871453816155761862845414356695121628479324950680081086429836109376439310012636101154469609356998551276961166966467586722348254104551931583713627864339206735340734542661930746497928284542501437237943906307311088963021172708342015845819775735952955104724542757471915311281341220466837950964899971332485305283338795055237294972839858685858219005790724030627214578690642503922429074352511054782028926750553437747947046243899416976814180279575823166859581201324226780125431955537772901400368024456886923802017678413769094379668407440102987582015859439510948634565513014914177633400707475976855109283781532228897775582150996780961856528200057377357211500909208324038265504194923046734010084358385208370624950200465436784893829170885357943778479726701558242574301529563395597104547288399510841380598053117606914376574335277891679580699312596247614702838631307378441483287588168958981090276297992752384092220976671558193101229105361262793435622853229149901582605433250581875142886173963425104937219456678818214129214320667378747518674170028797306004913160273361572765694467041269239018057170432762598908403191091745247792641359153875184229088539151642929896449540037200023771424667623010390430951267610167366135670080486917654196030541473298469099302424264690745521832392796057116863876879719746736840104031457728320317627771352565771019772083267799772985905851760737809898360814700864841917775367100475709311375742367938489352259969117025545728641298778049834525641158725464984456225510121204036459086256883864944247970002335747489531366958634308225380412262597760808315582910766352926542080925642594123477852733543415624824142941101835001390518069610846619111417735315516514751374083412550828938725398706206021023490375677836904174822629832759865444349036334214088364186212967372752278447304287490931086926968145183287784474192084612728477824377070714254068493892786908876914182868919018775703285508901604021015954886176223230960157938201196557879215997284212801869743698073826717588143708393408363288194321754292169445237912984567817122916128929703056593701182752310486394571097589229069112981952599313198082628796254096536222575009773189289920860340440665495231272316231385771785343085052477579053217104623029345574017429670917847565032206515223879461743703273873050943997144846440411782142800191910293054052866639630165659350147170681845090281532477543192532335866979318998159788931293945350536114604875670407739809233742674969782554051826267427364850010958089180559588328597220349123818231222168157428838883671596583886648476297234362458534479498599557796133727985431981641450688890138775117280203707427429808236017926079491918433812040228617948803688238470403585787361431864502806252562708650367454615786576353171865688673136900153193845470999599658554579934390020063204542115882498735414772598080821372835653740101248301793837471106266871750974995672223976045471253883176581821842704988033790043165831858503999566137969619975683190532565162682502991864660614364620715423617211208309003229202369523483624007254312667538616768160325928561355535878905707757259525825898993743480631713151327353036384514905917095380216147339349234751111225711835647861488608148318516576767309024576023832923226525015346420526517647118673492670003414462575775374234533752790876533351485317581354571624062650684369308868906012553894759310079064275548106204927972559895837388630081590596751563891584654663724797864550893932283499019179021111702659860750085150931462950933079571583878408959363803092686843795701216766351377735249778499677054678623694546535623120293310225901423474998535359975830473362054923794216572348360674296992050017308812729441360386638412669535719727113032374990755006887270458613746083239182218078366560905682622236458168027420308285113789891248140993317377412629306721376021510335875010100155928703857608345319198040761435462944794374591468914772119494652349260918718608662613112661654998127743863522736256053654731353328696491097368760265590273387786915117849379131387104863514103866676312966538105781502447881585278956530077298844744363700337971787893687701583087910210815442999648781415031191462928454374381502140325932852936848213109358364939421820122247348352694856034776783481963523636124345075399211126453648966372735887948993516919645523566210567936807234662732944697626365498949840736253400367334902458206218324617556617643270156222179066188561023033850923863843801591109078712342830065810592850001084255824011994333998888691325390101188143848194816430821018015223600650990881954245191225806674618276004388381169065916445198510378951709741200979176226109595454583549493369972614153434779707164241087543750117699124414335799311154633239798207651667927798640747195296233954410124658445728439738662698166967020562626284555674585624579034676061464193597339450780746215544119374492412696837952869443735740188889065449456219127214809913774661153033289690591988146675314725469346858654293322120426657551800590929931362063598901173192424720988301038886169908672821526148366193957607670075743565648964636859780232953633555360392385710231822519432664410314312999694472741243668886408889717063502710463356805027472016191243515908612401873514789739642712868800172102318875784788020196306673747233435560559738595806973155608473594409203001984839146686412437728595286280319139989243242479406767842046325643921179953435306742822042858012935309058183822742824502764910013924171340050975234769212315300827225089242925761221777796129502594662517652953901478461086988402234868817504445175291711081224506483557641012085219581818319203140412653485992579890847531825724369863000958627452315959928709163873168980506546534341532825607516309136330822098571217206273321199194665804878027921985094011454736244325270243041420251804576988790924439986970597301831378790368851228199612843939078160466927808123511086246875608738224264642177026318646566726165674934715460203884544735575875160171244524935598155861747749843222001531465552007465904479541707471757074579029786462402860256817938483849020635563950614807751190999047351407858057642553967717184412395288229431825848903813924685427437111738109174818398637472578910271304977406662576417445417500663265249801826563364647915300851269084657200892367385078524417813160908997374507862284990194871521267593794106351661873575250626503705481455697128652994019993190996872023156334018294806175069893860062155200218070756621315383278873731968564132601107058367026959104960434436504765457446458272856480271955551613527934115380260723387990013393935511518328990433244873843762618583314501141482538000934896973902411082285969295014224265374679966065354935536387166522613323979979748258880285668896678606646404346034896639101538837433592146309769432918890400661039824124302746946690399980419006910343343180374050405682625785101844883329623531530977424434697013043438856552865538231033812857985566154511812569684432185540548806139866778778437926923127574119668233948959700510094330530030301266865932176511555851682972151314758013701598983564142303743445061627718560401068995523799133371576304810946062610329009154172753678608853664471505621732645371641938390606702122265786391025502786930854392123824803011119080711910524337899020034964796111621332880103263596652683402392564911448608044964596726911613859834865674982208393554905178327472950473068106927218742951748771468549891027610984387319395104064038815875690887541831018812629301464530968671230645882605530340363536974754275612781328307889526920154380541330910991169387798025137446877736591335094249318466087124974317647887910328620486373928695154536271259358018090245313742837714283007182855073216347375893387337828105260769578092682242469001878682318474671131421610140813785405240640004555633278189977795647654760609486597088131790311960044357393939900633340546243169614711608241002183350926184865525379411489659647800559570225339006047893344512364425418686997955669362989820712107793190390062617772609175788251437962825829725227422915236985699665617824292867586992645079424510767911734570630706824908310143945203616591088474619765322523749216594628766314070172266207052247685934894575027311193903444714058586216053348151526517340246731201577119062161040777854422277723793671131067162002256160565710495542985470399219861560507479661176545937267165590182449149276191828862617159981300883241759621871815937857882298300997194574531595858826798168765036111045879383755816200280122458568077843066431260979906018832309873113150804430806725679301206462141109185199726767596560604295924041008755333124181015096819988853851294767105665025968586151388021310938828237879375275841402329698914488091573857468187346960407269763145015807902098543293730385373021414320264610790270412564389575549909188286507493862817566667474733977511214528280403928971346296409776490285682940845678714438961443983927604591214613129385033550589761730473488923418410418328292282517290199938706191111140596490782353449208007383281716426928093275047494319637176075652360704036412514034656920345671816920854599189709887494642983755427201990453518536064571520865784050780620085139202712376963566427980147155328745400165139373076806559412700410998767030889024748916707587507766486864375151595217137264720855953557895006410141495090770556848613631772950517102668442473733932330934158448716308981655455619943476308234612329808397405867920758864698666330115739039564077545543920183189069821800176954030416896573427206896463641324464613556482600183831878535024314944612903653830730493711340864940182059593262992311431113364222651044686681392510440509206525012630189135871574732065224999291451969651178211722201291535533373298940733977767610752737372549935727506405718196626133513116919704225748974132012707724876839104303493932723369901479106100436703645037999558366367843846444732978705020254346143550076945354489323926555159598759602435336087542226742960585523024960393323395980128181171939090039299614929198012282735221103762595326138358682220940962084968598139325623998838873110126624530896603859052313942065881493154988603618369026728790036572628448528015668694831712980114617432500064846478286477538891658562380197652934237390632964963160645273724424594197449934561658765801766429917735200912237113083514359942144620968432961442615251888106282078711025017025315385461189677219994196920111647754658298784241182293319318041054845952394620448196658280283832056941585414248011323168681704931385305600899611372758927473517048503827170656824916436315035340318013870871427930837643110217066897833804255719078362044167087230911722593939875178044798251010593060072084020049143907212938036947026541653994495090051372583760512639339359474755498077909056136275141040426499755256542237415019181213905056274272867352467568024740223352115365770617137421046133294307581274822781410278574238423880928336182699745802193033062866953346537158129209277767559662199950142939350800330649111108823842958256137025447812639997041469819228386545620903567879032598011273659050904136903199780172188071368964265842759937513879599235957823932648046886835963721631872356397935067010257809503270453115684555137343622405721185803508985466910739102973321521847252992990201375743304945712038713734282701071850234787543814494368606709034089381511080019608272495584203353138517678315389314583711131117863998825334284855915200816580178013498212127646584441698908112145404494477980718333957983561743163422110609494341819341087626261538293833421494951216322306769227205810495458358678978848282213386055326891214915405189531274795405811035050157494377104735281330904231195682037306009677587179371378612788866936883644372338806507804533817923338614118497692260149161256075160270240431349886615730562318979120264583563190468637763130880232049833300347287205634383884937382876756733273512943738934964470961486964720291184483114677665781731434188144754333558270996274561014470755199722449811123826432465354579514939068667711074745425961477952278124159431008540617085125622384257371630562666519887718592842106667969819394535387846396907987719380427354284757420502764410068513060921794748792655425208509917840785423677694333924993414428786456830178951095292309869965241272106531126242599024868278649692503839697108578780814644443473254674370407389827521924231986958250254968669704474767616519344358871497307915289757083182507578033394902874068164561525214933224296965427015367791596067778401621909084582164651313610706203483634102616610421805597305249332486487721176225171596066048712562520239189141027601726157757374215428704041417432870607625461866826518090263597964443401917997845654990983965196777519946626938318231606731238760160964203475190174551729289371858469870140410007307049598067467006723497064313643358229674837544335465794072284393254978734923623216707020293326918857141951925897399605903443653693257073492683116888548669289086352159675666965635699607687085345637645647275488984274598115405687954655291713594234684982086902840370882272508647287442713778823112905965510597272471611339775967053925101625727763413790763641043032822958700970180885834462493990630759347837759904279875071781320242886442701888682066658332627618577786314163811722576467823765043668549214361673900001325709470060128541260456773821183809480089061342636208141533282603486152292541171379745012508838891816748882064119510885930412949905366070963545857461982469263461242565291191386556565639940653490062014457165906319719189078112010188123991871788051465976247180374546166280015914128917982388367253183843499407605024058913685684725605299932979998653317054939402297747753810823828265425385529188347945168717165700476760566321452033833179412482208550248055334711597807948178723476824532591988269216059417785854650468815755176534512029311039686117388184524244418097239497805362663683676899582282993142262710895060624209891448100857739717136075076420201100811766315386900495290816228350900304223300011357450886465071032429186052620352926938845889110276387834710651395806484735810999347601360798186380765429032650812684259829647920809026929205657306211800521691564988952310476515382879550603600263645174999495049210926205403062453488174938372814804148555374805470949064953902743823973957254643948479528498434690809380317519959376527055409256832589919804532766420245668866068682379246605465771564057877394211121603277135294030104266319305671730269140419983787206479962015135038633773263998404701788234308388757772822052717293614395358514717007719102864640540057473107709511020178888715965739717592716213266852876607077390504677202280217175133949148246088350450663616653994344160614754084650473735203659253643277412968976935143955653390515076867808321099082913639459549286964424551282800332364314791628196785852704232373198798212720819915256021191126699692461149415119216248913720123157505027872962116097432136051832072397111421663838533519348840196109575371426998962273975563578225070392931298862420752873689336217964891210148330438231553631577269464097412972017123072871149653696451950744966447524302507601881023107337172654080260221018618948172680214634688075336081225656647812775146074677673157855277848941903680949812783962408141834069404661994368958911066572785860932678294377574899368497143693597166847963722447922525424127526573644736581546061170635805575556153556515224009622030761926047376349933793842807439749175016423088298200239071910733326499757566261214650204906598791905030431942351957195976517660665808003160879382674147986946270858831418105131410708113665270221361790357708755119071810705421021348091634206973483730859851522504671004905256103734179746356304072195704667744709304156433263207242890019191936848118185207874272874693882050734677496288331916742752077048321858487462530183176634903044067361936975120135765881149115961137222020419097264346429387783758926690122415277859611550121588639274206236103309974151918105989556971088001404665986061679492564042039082088595938748950100755120975281626128543777892967794779872282108948891904270468067753663984113754841457462861667410657290344674868978969849061128769706567262974037751169322590675018309378556437232210763241429512450975350057595981881715936021235352338586313390628027291771843392250742341664677257200718005617680125599345265336067752790611904352612940220981160342662026437421241575925997499216014551425419580484947563673338288918326953175097423963002663978042530779742142101688615159040304565595941560757761849656777033107635691524527328147466090914148042494206762599376551212128794768680436204634946285518500751723594000254450138626005378889572723193801742867131818513693350201581593480847036029653267414215546684422421264020143212942029618326970822739598841050616108850332496232121337303302189346057769453118410706612586747125282194744880771451495286276722712706760404553836382167819329237930040291004462542890966757564486205451545616396121027690669382001938163839406192863235467576250913494528545232144461730234918216305964016953512980414185314650960540048379390072959757825041065771142909242394731297632783838480449801217129560839476153976103109484881393160753574877916780929100675982302440300415750364509597047421725668966627225713429635164185145228563318670421746358602423143066750072921477383903039083422364273466271219930830492136271590314074732047814713572868914906462565608802503045014112241189963098757226713557760644312803000414830387254853503690541663049029415908351159025616263560411413572382449873092139103602174587917560534169253840812356427457388046202915658521729040647477467175897136290760010702230538980995947982859067027787896280054406305266369679569204374547235496497310525674916458105849922671856205170080407318731390356878728664146675874671098125960811683545294103386894063516809800302337946632860858593128921066257081940779957448133487128158388240424211194968396110928858565080711547157559569812028105121869549256271337364292641095513212565615181287088234302980692658212510405549248576299130933239188575126431826825690015507347375603538944307779240439183815418710995808812308172462530945633506309221459532489087147921406994791263145535889692031650991491321051388743262537569221058315428790654275824517857433320240633382758293991696965310930643315059706665079986826112575943970122101108940039263509525237628499938739535031210926102388508366209896785168964289644769222067761874569415296425773587912596560736132213317150774534157958707825641768313717807463108796820749069449912879562901024123032613068873700454328597531520718255678847310118940522047324028818653934641567963184169776287755114964542193246936390225616605538025146723145594865613432946130589486125776602156034971865313407824762917573361532954077880845977173430404820093175640865647777369899545806688836771195844570112583140250427810769407205859002129151770131603661229773359002401672953108955663154057423197517837920253960871704182997617064251355094472886414136972666896993518986606592559981054425901526289164466040464351073167027295953105198459466771741970145328505800532966397423274325524103700209650305427653883774429776077175513550275742656812153364541941368180884263942874892578651201469607475431496798961487045762057297366293974507385144680033221747532217810626457688702974532701507893517273320674932463998790231257692900967140072353406808890435653438431529210672156281278600920227567354080055410622128193781545799412811158640233703975053311133535664148319583714588657906848414557408207881307023447338840115357459635991374115440782772972162810667083767472457206559336140044617268099951282306840931181595069386958618258651790624913356000201995464810373728596326901606384257975838798267126880941819818569703207839659888637956164035637085964081718575068119025152069062623615837925528957455757498547620868818829675503217868031221863971492777802893680533183198155708525785535895880296373385132478273025348480313798610321250737732041521522328828089075882655940276439953114790048799212294893364929106346475759473005195852125363599840258093431610608510559444414855016397503171925749978753173046183776240454895246069085899956713092937276199006860751281442245248889637204034353234142833614668518907190998426859002761011470178405279499085771171687948330445471793817262648079717705496549453786749733570962451363504764585452420831317854984442306581401410752945360049828934858119064334387171914262843799135705797979614568618681311247930462408620634131332561662852507648838828477727659047864687140985483980157452657947795776218172088507090060021217763053980231870620225513130132683561683174500156791509699339426877409829910702934386963865357796358848191810649237650521927077537222267198047280017030737228684975046916143466093990679008178880783397703038592144320371919743120214118233530158385202093387804683947837701041737835293260987227900162793760236178711134205034484492696084993414684368003963256996644728825999101958605200478059038217879698512710732532292146547931797477472089933757754733587377974430476274826229212144609616638561391147947888654337650533697796182037711575078815253292753436264815262040051292815911384941613333657485343954017640269587575629414653421891859719019121407333827849862436433791753599631054900783491190750305657776229930699496637728158304784242945018495613536402011137607299900804546242841844857875167502318738297957549232762159138470450532003251760156600074583941008747927944958737555061905962633483898346063287129353386191009827210152716179115697110637603737446208566990118118246474269099072906607811131087304699660511141241253515416859772022303703690468839622890577338874193736864163179500801586559904486860744462918296880099017637873931827784624495791205921132511286359935047441506324660928649160077019286333776877456330444645721646591362313301848879735802887666147573670483608668657058952232979556043682130966804418490786655614637402081579797036481860125687504944803916511915974669330627277101477598586999815181009323754355168660347203657835896476560219608207256857102433067742975858612188978220391709116868720000356203077417706121753244643010554063087653967796066785036404124105491775734049562296900533179007417164970985260197955987185163249309824611189191497758211535371587300358123578512545367369254403683722539843390156018037723458440172831676984675533492117179408740012120031695481397852473125045392614448845214335496941460133550891452958668459107437418133281001523802690955190887640506244394461603215604261256519484302269432264122363003177726218582709931703172320326575390459104449395597379332837518272891002091919703251804734831531022828124083021501546467742850311441049350019664082668297568690592789915504828821546090454732110652050147153350469486942212612107641743530389435131657935179735452147132437639076326168435216197786699378056995510693515211719656607577159584277792249873741873536411417356213798995244182683514765163310308151927107914151866004361809085665176635918359253961790107946566033082521410671785493609125447161703403742659043766522750766185777975962755782634047296885800462365118230932723148929664539926305684156570089579965494291531297303967440935168561965117612068984849401178487748098387568021256331016299630276527028719043386845194369841971801823474822983547808550861238989629419642339208023433620671297546573359833265573598811028489347497539240761615846499150711546069009093390504697654393796560880632695927095800076155456047625671263430933057784209798438235199020084394925835071519927049341645584084592172401557246059088049361387781308892860729658156170797954424641850695582448461031549548512634305787019247287479748541988115855051842965418391858804816756296962346839382786181207201076384006019099306135183453690037143763443206548118803048131171611171198162338584842977803675600835015947872948641182948692442106037596316106242857588066669441463430885277358302999309907747097190993290677753929525951478452175447078109862502245930582856628568682365560418009871522595677833139485531833806853141675797001755321082240086052871359050901636756934101185854877199295398176360365840780113684719256762894593228711108629426327992118628792181892302825447359291158772685361877568336920407182402307782705124843649976699941739430237689468246440506890531715008822562843850465472009039912454839837899101379440322183415173814352357687585216746704273613270320206790806090270974748165501082191174733175683098557985694675162330934667269341313558271508544322591956649140697575200217605807813333092638292162102029510965375929966515923416564971077808141905039546353449244736547066086179647757817557814144238806659088154849362361718494367108220289889473482411705437697213124553405221531225147252239708376140541425376427691213002447181585067425105195135605757792637047367836853511558973889636034070322265802068242951114144489428468873176708018319327806144185085366015713189919778918750232368247735896623114567732054339735535427597977805368859143711818824272864566761191570392396551501497763013995061888275452520557655187550324465516052403968653655158760656540613198884762564174311463220753185845338841024475031737238787426694815063400107131125356153631133585078990888028212518382794526912353127016776510116921724660064360857576191270412571465272232603982400839962083895127007880788399229499387877143457504588003925475173808767218881566729779926670377699822663225585499276351174303510756736670334386165346573829075445302460536987057468124191612994705808838478964475838281038688957159865143315736286414931636224146719735103509318661654505567200512282275867646791893626314410567817129532679962705614870383213839026707024517833766317763054780043302327495917650889960161232739823631603504371828462169526763813660529426978026114246653812145604708823297444381532495670240579934604502460940975936302010446214013089854017262361586114715282158876874332774177760484932393383970547900257570421708485287889849083286209942689478301455189390140612187879538957724389432136706973462410419309598932841497335438674985199456207068055969202688369242051302653379251971035861250983162125759171912236535730718342916976978062626390241718903579678012340592065463846791231108831417764501450102691237565239196590533620034354494432339244748634846516489742994847025497770745067808862944198249491981401330940639105804808067283497748658926805493550067982644486137750457268710828578408150209088749413066012648366460643254780838054338237461188052917140101488169661868487810115457819711596083254118312846716427066310566904856739435098330751298690256426192014560995570490847998610574916826874961837322175101456434450115457478213008241216872842857935931304072156312370057908147157070084387029119890682349337486364668800504510835960817394789323833821997083592816602539834230760906302652214706900074809636269346572055125023836525448295935623260981979459755675497612641572598049160199536636923617850626272826870638043497663234865262722545131478520484290594898174688215986657350615628409237831544803630748851766639886668001297383088768002759852466708440459592089151445853333628758979304606647101192684721814280593215477150000516766613120462304409202609658624835589784770358576958134637485740202355993943993426272218494586709379275773255421049005284013362719789055911354092418361631784302783584699638209629460628896614654564412927891765549444982310281033009378058165444148807676317572935955956144071034289801846276257592365672597537060057269189398381880045430137826870641805098545571357755589142028633508702266346686682075904459250900727815339754220067175297198408697718704617597156049549237538253748503217577630754908659124132206284910091972977017644473889648135259889438394235138499993011945338522619960368327983375997407950817214660794925618372709423859837136398299150110574678118584589511483289495703477488763804453149108347995032399306939173574850956422097646837260055431150757562746585799944739069909690491571309523733773057297528553964465541607280129678160285518393804818822246572130810815549406718536672050708420871450535102253833324381626359817332473902716039432138350810467702009778459896095138556254565002169369334840962222401633503040301362096934501723561227382920837785759589833028508218469380475026540415660311413351294656366476984525633800165925034295235535319534583143823447040096689188425455359483583873731848327149995548445614900692245771220951810284504252324311132903229121654248763083313820406350960406872162156033537343852251077691347732596374442128328596033122372722182117692242285076890871101164337393390013781623654698376757137633347240308240181012438308199290455102471766946879424308568209667212466976111038886954857237778945536325156863296684339648219782497904594310023807603968134067326184428209798089787090794541667945661103499334381949518607902647636192618653379901693906784232899568534678621486857639819396087325042893397974243981371655849688338768110509227645188740446258694688862825848716033295646617456348401940577272111246265082688916608153023652959942778331580491528584461813141552993411883319320475913282252009141379209864189996268748626049857605494433435802735625302523097347533691060999302680163262657020962460579325246538452348290175270403494282546735946206189452043425554935161986509260400262114227625256204780647872615499119039760359476819269705925146787767070391206350907326985949245909242150380488561512765572150005509281882897273311921596494411665300153822661333018341170040232853609815348667037125185464490748780013692668829928208960760067334743839039798709616619092347706373570638033273546215687357768231807581264295075480811873759224042608124677120302112972098657478726238390970690737354060680433777642547109478037226635593043697091178829647914664125925495614684822819628896458839923875827717866362643885314308119998666724424231406098444623146157801217738939722592988575378241301354416328261154785932025299182172906041112014939694982670459588575191736636777840704032296383086484160337254140318878765266804429046383135286119843361936884271158209697512145180383503093960866289596530110628268910447265299269845401621457817956839836750469904107942619374348440577479190408289345212021755069524934008927686233961458872166993503125537774160927034796617519129410371084325169843356683636194073367927233776435232408507788564679832431318245936814963974599541379241794298253781644760495797848151129702125216945780579632149484786351682629399647302168300590267568539291516994989971782910365887196191530584708753301874098775385491477953740835448289471652364094336376133755716015402145346839380853535199819389154194413069474649534105238906910937328207975957276384996790182300537603621417740530745755997006901509998142214164703195268143632828439253469598859943614529063226140254227600582435256664324993757717041733017710514354714337877527639830595928342609317256558338232826415771914200854953996897957011545237868540915367740307831312810830366052037568780433002413058556892176785675028725845696825948291873741111721628860306708331458942205751738969828979133039534879361975436165537985516432620048548803528956862970134282213811617913617076668512952266155354899417269812121446864601353480700147886822188795265463347953348851547016181667904750655007176865940649350130695373993792726197313434203392073822296859007974867997379469933851221463478211853585519545310600237042861108787462268430414879953538799523410984796675097964016206571915037474206264834821232733177015150555601397248381676418504376857837092432385914492347149361556359265510333256896078003040688855168851131520301186484646034749418254196213270072492889498161921534128164837918091480177386233245104767098669567090799469771215277461866854869477682572750311427718436956252703243799616393938664473957249266984532913157026844835230054598005260705496925673543452379148099349415999885349071966702278192676268335878480747456926172304816313021560671193882344579842791844855439503582068961747384806040732494524929922443636828010155906574536076697062779554294243533305850009380182465210755503711205660989191319823548984150423412481174835784221361518134669526006380306524295358884714318439832941186870549076521729047666805998192020636831468191226794606100056607909326771674168776207997811200493792946203313962808283363893507177931202673683630475872334003676495063687253180648578767293865538430813251731428849480053637435542887097119001367186473364663669736491993311139921616173160901759295740462829159695541003207418563344103764400048745356129804414877610170400865337565800274252780707617806425095885847469403864180411583005371871175979855132091028816917589625527965968605092915324796439254454214072450014514974505383455529176994321898539373520707403522342455406310679191125570387816981351509387366383519435267214487714469550030018461652027782621284666157797417770333439852879740503368662310627561737597623241435393455661785142309014292700623188142567753385864360113044964302398371546608699909248730336706913309830255405093056219570183015467158186904216325158010242127866601409554249295361100667271474606976615628310802545888578657639992442992920735722313092185656590999444779962421307519730875260076713780997542441401845612685403668809254017236875867986758905803674456665618949905551960660421308340821839346254665278549356095547073127552585822774648482581569268417075446717143833764832002250659600997369677272847289442113862491671699902758144410103202672366332093251661352694317969068484622475915126413284010806428235402814901011927483233567613582051168452326751916512492449230001398230411540608942903229165012902680381285617382758401042078860296400993093399006060000439000484968238008061381661989796915242508037907023209350879490474414455667072440656685839623075826983760934529126662828354991411952300083033832716781526684871624496515151601245854208692125155915671095022788407851939444675355852015483272575661833131632047156187475724133893417687949972979320251446946540296388518149375956621760081413963373992818149450723315312290227140977359671624779690448847119723780235375456518321955526691062022786254989456164181282991214390023767538581247412226844986332372080527035816349121684215324138643101472869956827302656971491633649501388079734779874294205362746840131450102577671811850367227759479028217553154973045282332270224225454839828037420515184718210344791220664781458962313671401711827698954868576432395017304397921854876154177894967892076839778834835837787607590250318156506838693293797127891838980658493121833843445895322949619387454197080080091715135854317800643747984118163020776900475176287893461343207355884452448176202540066100920492757338084335568461645070305125421711054038185953988276093758227482453692552093835255571242315126042709029800777214971748508163983977341044976151381163332204909631522132484759190228941923953839342516772930338449943050365333959015328662985949049713160941670837241522246906904435696900962433156208044193491322960355133635339846076584240771822743899235930928059346069226332419430037383085468729589803203862519933860957861813744872683898687836679501256644463277110274815968952698694851939308330826242093395555337532157361024099537441990468482024974827768424861474164418037636529992884858931777483803441384459014040730907685470193342210202124162039679276021023793804305603750832938612358445720469414506524526749561532992914842834806612134328990894431332536853948761251246150143293330961102237545136123723277740022944217629613931638273072460997281549214189072826953479048214598280414574391613373205545553689733685320991835449986086529541790539299163414024697789251975821992259610992553488475303279592519380607177377115314116158642975047238826568780983704875390134542137415566466194332576780296383192048847781161120165028430443605590753787306298952791396906793155061543272336924982961471499861747356154637054055760709093581484925608312525253494691829820903355232759968840088133690395050771971565314427687659946992877128336593023876221070332282795178031795708261769484283527254138233248386496031395534845798753123254669754489319581301286461005819205468169375459869750015842297629969983417411183265760827061135073795908199862197785782531342078589855981287167698912457561288921738563849944841738177722806526766931349537323480111773859592422884126573977039166227655961776801706166915866504244691511016050620736150127123445878687706924890174943866546441540028315401285226685969234199055443171081554934238354000146563369356449962937287844250537680895447149720693758892528838040258946513727103805071671867136187686016413259352850179474961901792741483494006963800606855302646303664289979592925059970579059003526169536722539621091716598666095996368633144810251637187579110546142692968069249981738786976599251739119238305173865305552719498454843148646158641305029599487548092258597039057652581676070637328616006226766032612276721729319465324992616394953808930568644940954814541784999021322830170316134298111764292905568610818068946553132070028230485266750739336664290416952479119664802139725149160478266183477991172975398219889674992059872674354072815617918381386914635926900555276529128921379770751078590734114667220410968342110352865588259941814675711365296471593852643339656355520713215558252170000176659539523150753081015401616704160921470944467333077091071869302653918628920496709354028249500729207444703833875123178351302692401600259128662384502017521105893069010913421547380681679338991678025440066318310997262127781750807274182782889881250755081129320658358429611137759387511532271545800401912739569496470892891693939678255430057398874486811758514649376527181435016294120889611877193748947265077114662129941154985847675645477203585149150191917870847051242126489914030914777847024825499927140553679600631565660842296933423502412404685932941738783992193280120518558995939588972603586620552390699372081957073135000058565476601263357924173935578480006886105045695950554249251672011618358311828636050086183699263151861782096054380836132328463733256648857425676443650962826249181490648890374342672396626873915686112514370775518102989311595750108887157652073146095394045982852734482179805335178975150003355835441386808438531704708033470164034675283885558447339054294926195487699804358606355596189741542545176264709030486849674005304022695117350365387032341169971392410744567332914778752120898970783739997524756558120582185939559398343295640446578223442881188023857449220778288828359470009109231830368588803072254638222772300923899510476932863523466256137289479122776238773854924462168891662762160682746301646804752972187730460281908269386751429684890766488800999889282288713180492711426156324005834734662297527158836215242405061097194158807261402193083579502678608346962776236304895424514574749918033541220781022920698715930502233599443500590282318613890217310161190378994652891728693225224562204888412271314749019224875684867104705799358012065292208165723732197521105227527357047873387009257378630280037424611981842828412009324155520145360566689094020772208401562783372653520595981340095650598533124889867963158654807865226733576177646328135543946659419752421212064777348933530094726052427940233742198440456010538130558511543275865240761392535349382980938382379448519385339918046368682420770742718427240228627576577266479402926946920811702091089822632873762010129959073751501761593986667524902208389619393992008504576315420252027417640535943004791038697543745422223277672426027503005144158901887176136735055130210397508332369925396855295456734287906131743893789916990058319275909780407588457816273661389041385206324041694764403863979680366028240666611780034485003653312443926273516087440722782767348853278420974526993936387022020142169853542589795587344587891249832962122224948484594794472760239243185409983017702251594317177739511694438440032087858949237092778029837142229188568821118733266014042849203924738920823484607084293630313255379816459725064614204874057688760109438549554255159355588894931974437120539137837381724271308033056783496387020442828249125314054796741172883456196967040615214371080336660654693489105691919664232480861568193495917772351156139171003666448827989148009592411731034595321462347920152133161749055376998928786510385068532260997411860924855777299541870883187513037589574377682027112166465678454489542332222370983895610730693708721227301274787913122328108120815112043075520982767348320221057980704826696919762754707715729248708986145418478727142118371355038592378814877751613940843660428769242239328048389972996081496346922434106381365249461369161293557526028360874032884093563190095089954354022880922729761997181423591265244419345446429046759061361430400688010733056386699288372930171428252492861487248396437323381992950273036475951155590413487359037424467927226063824508317472088515216045239873504836247962863944332020424232603382143408343417854907987688068913011317056452034074759086264537619774242425160381737354797301301505222375490185775607494964572038567204038585006301601858242012026874567260574018293756463471792638772918871168023776887290752814833479188982457040812672559207040996418008417006060619864675722806069900959635933647535241378936790486620253874828381563537238241375243231705615087138423074146118083351984691260127772919757645949552159515351543039091559685824229443843862136805690763818929812025879634233714554197933982150032338895295371989883282146855235559478179526434638157154293548006825577571585833699316469616302580278841109632850734102142149092823131331384566307280939092348124890239734304006380112908472423396587234575087051976442273944817591664260062968651968269249408020825278429954062126109909502608811896897069648990871383000670677591130578349615962254012724461610084144242258859501278569572684555971634284915683247357801964430606915748381296465343068285679211163688605071449555259543866887389526504965479766310669896609005258240065991618330849013878734909390408280808345595091396874016565400999547646915352508412360298912088058109669114377448807371742841954699524808768419289770965366771982545387866626853334541456773801235920988711659559126070282537324724148136694093421644230885954562639344223938363736878174403015574699508206591527147386749700116156538507056512434477756929653856690338663351692458936415639328956459524262106394251491686984203810642607791948427861926394303061642946008103223608991119824996444157788659817433260600720333934384306311506487220902256155077009226903535938824577538023372190986788444800691715474355108509754330733146468575599011221486285099491160937455861679520246341269916891688725359997420034371993195062855650830203980163984793983258270014043449466370886036111762646341781943303641738633878436154048300256764912060818807131650639839144379799365474925725758203094645130221574885479786453537918470028723542522685583977123729726600929480222985591433864093204024819497566331660431124156520782264234304321203492030035908004483090436814508183272828594782359350910140206903927223268158212738776922896952382423036624377678889446942474033858220596729875703533167653146939188460395717588458586610937472081498406098500796676634816070732054289044536362414620291955450698707734820495363322126663820366508338310440754065535329513071082723859478675275223285038076978351941251800090176945902964234915884706967295082537241367422272502608291411583542332070243302478220589762367970712068379869502902306504192782304798144453105170609633552585802911284330383069272152909938087351460500260710483952155699614644123087244162095305603863223092917431863515285012829892717745627618529618581542470864818167935979564933943181089888549452996786694702689249453355959277514971218894712634211628421441037602692651061810151700679031595634426687535035686930006042703617864121454158882852184505801012912671071173657647463098489434719860677354378058080814569122866795686631049526824433909303168775787723040804603367809332118969600518658080134042950612457071664007676188163968854567926050290096628628926462636221980370299661034388671359016428117068837187108498738549222062311074565047834579437202790901963770970316400360058017097817475083739488064101628723520812234727712785999370596315207950710820578590055683251210490009642971133187772507822704137145039740683535179485505861500162864713017093313057735542597152237253116958623521215387944663602469628275996636034746785895691478252936173023319258663887189066908715699500176251198707977060843972371362402936033882334660777323311056135759271555857045406681304825751155901995142352011533844329538180352191956096259059999157298402115047552725201442787593197720314263952979624142106101350292883503689239420330378685989660022550923822982044180823708189942033549163936664149680894590040395936509183469399725717945518649754202053419768397302594662239251379326745463883784884588034629259974220764074962450717235132352261833518923826676559170241496186830730629354503760450424525407000799394418549058168577156808765503646142701418441241399590088464361131401974499512511315290256513481059922507811511925230978429903255970420700892184661211960219354315960662993753152800296749390314711582675015606055600267011979250120285018936304519477629919214758331188580998953320402173475505301548782688005279288163322875529486318812810750408637180921890302214137418903901967354942062426669726743337023613687745089788821087993842835275789812165176151356171474960923822358913939332705661559879301880614477482849911239471827524055778638689795342829048193074153385607987126850012073200743413849840073335594875008942502578507881394419035065893886078324737911405447525567705408697218366391869042375100736761709227347188051458814190668439802070383429437276945624244474739037825409052881299349874275287341494098531659543693472122584585448398001940328694696091010387919749731343605045078305903842208634443425095792215060895339219190114656110088113983055121778741257941059724807332488838206291835543459360504082161668316116293152823011799851267322670001605971359522350469571193321955661080914559442124291567723497273710788758235923556069685431200518725289996362150549948147274603789078377750554499973735314281953720706398508835543035405768024998895002597497382591535499441052854825791232954499548448102425903711261956502230675916060870123860264970386282460312911627936997477942473614848199768782220210892958731811585210068014139712971770996413699779760905010048263531690809175594513951663506245714321654413073441767795602535701866022333902360524569100594071237150542681177483444760519767136273707285854280771657658808408949112646877828086217158054429739617667694043312528062132549976615082110875870011861242928164428224283385791464321178835073576985301361177342789342287697716606818833866740008934452235547497009085147232741393214763539969139772162716800256990521278211228205658011754274360599128925630413529702123243567695878202504070658304071998961529068371070611533663489980225243182757312790469354502202205018827746908458660098986010650433140660792031984466742681905945517819744683299202500588760358987360372125402590095713487740225986909559074492225411000377091555097633307949156218518024887433218859596576181822413405986922504721308768248127932308498392557955852427465762828614178172654794775093117271561922111593580591052058218000374860216148274111854773621709861294037585216876286430409036617076811112502426588291925924628132933610090548127490654905718387749127366984541301852565760359077654386933895849943760009152533010614348003592878476887540618119569163273761585707454123438389213182908281599604499559306989562272032108527605567117208782873348895669040503213928074288396154201391272710028208812549714542691219653340400136267414639878796671265735205185150813602009255225555042037088558969680548039237694446013922317136215060835659272493834057023121078308838288307765032969395813013241862496642123837660879459421690540378967670548775549867382096662754055325032089094302395989172109097363595310292077079150027789125872469192736672457082192597490191019784759420295453596569296958355254182521673712835644441393222436895712576413226482063485406890683714060434309526826374289724539178590935605471446500416689792802168691277391441792165673831590600378197468340988490370084389674221795488158344505124794079731091072003799682697920281067312648293480725723186805544807765784400041210686328920932174777774371817281931431426589380678224448694400673827293628618839693314212569831936141848002385144349135980756383735489642685290697550256332591883692985802980628356789407633363931748316804674492047302530100243697327407695851703114084830006886543256447642128560259845276931469182256776934853136860342507145439927664555897803187590725460123255211057062469384333073507128212680550241652604718018441424435675207942352923786241859754652579296688692614385583566570889269299545716317322804522163990282942916229253006443646557904221765543140602575959745804714117986415161440536436144924799721389425174694418762980412381553690479445808304125569411169457571267028875382791503416652687683450102221507727258870250673487527517288504260517993600988315408883612091942157581251708650415282995521412982818026504310938587302759125510507906413623035226193205255663771729271697988205120743050453210803120923390811867655719058681927352760121758792707150494329922416632742944358706891231510288562203529783003589573900033747477594535282693099263191963907332646092519552472134401315950301853407052870508365785446451513797421188709919639249711664688840560338149239116151356886687828029900437433125875272482905377146699040819111947195470779447277400762508974927735932969814890144995921195311630595756830719524891515677357631390355738470910193328471618428801362072932050467093844631230220937305330621925417046504939883091524975288634311618999926709699496948284905066072843797411190520194292306314357077610543169794137214726724202155942982893174017277693198124271649139388861117893372855233675976481495375134488986532848974661120193114920899150591550657472986291775714504357602733046472141727746624387327858285800797089662476022402812052756618537575838393796942877781927293152750863852794492144966711853643314828679090472078540058853524929204790815424998772954568047366341141205765592293444533802939585072909791033425077660638537615757234723185331242534963662594426619340495386881332462007718123988306976288888672195075319918881898867255701397133238766562493919966715886618495600352116303347236694226378155781639253654651813177401816058841965320493151888916748851599857711885630535282142558045884087676869216516408303780173878230393778243330038732709722583326678294420450964042182621446064075931146761694936667175330375519029126451308460860871200366348685233111495962674348889612631688796356920139105491294062487707149447668503601284434840616619602879818055012549873051918488855507223422287071928011966118689754192116593455172277581587821921572177388276995942545645204155640598595660070360517671466398719807857333245363836626995213711560124588857881558468338009430267682980837348896396798644098608478765937150607250711640827168655262584231218210536766907229514710678408061458686042008101022435825885459623144906650270217739265388348097613806466981461979026894676613400105629190517698286001674847818527900488058142629842327901834524026948766204928927694162672657712121135949786853097072075129697245609377506570835173186600499786262464406814094394801993046677604841812907716118714654603382465476412381058441532168562426525961658416220654302868034810300700271287951314829958742159554461047483858721634670813327352753267597453653103004045683859288595846602720936008968142660466684178737044221966196054464209296127121546146041737167940465005835992560006576867095943882272952757612159031157874889196153537110212891315624718494262764034638940033865372606584363084630877728319393647113270647880344444183781681994705173039109836778499100217859173778844284133198901254877262777219161284801690339593255365126223155924187473309370885421333995909558297469022458246235585660874450036149238221480923358713460876870508742532281065258057220713313356462646132060127578115838362592969632531211423415748379087578534184062012345932263011106273090390877193776263771570296644328535334514088229924682627379195535468575724990311354288276302979826717813666167931589701536345750318959086439775392005824580489783695331960960221715418428852264528390954563779113351984186848507708070510479123936016377761386464463317049442260048023385989523377128697411880946489481956930022636521291557990598464587773694522866665666580059341489664646742975243486290681398546943298841641247250977760717994655956348088500450022335575997180320039096617129218528738905096179297220764358529602432316938144160676191969851390688259494093247732930007672826908391368166147997830790999352229601808240850380814739911404146295385093018722252055536003073747961025747959552483545998581170126621499939902381304492543592884332427783567664226652108393124324793650239036438308492624326815963627416317780584118433788428152660262178040403266645450920863527792748226818945919950232909369438527842868339154419191339949313574999446499794350429235178700491859370818029933653483686765833139838409205820374807829028463080356477117070916423667959792246089537600796580195412542637467865557134139440140443142864788786453080051092607264649130656882663001954850187285158690827637102394487858750065028001577744792648866567938025752777896955064206505086760701844476636069642953044146983192051989286439838882650834347176933557291037898182334989610886613663846528519646071685394337302359844602413067319818720952480354753429543948138565163653170337589836999322210142283493083537816162014551856422200057527735685371905939538931978029941000296729398695701435813789736869163716947700558648260637896630844393606266352343978819536386253143409690100551979177403847506567104668767655640181463510823136904995051362325101962319169791713440498941896455250527198860787233058227215528176500385961894610962691705606506236903686422489672243187774105132536514631298148353492069124117881129368350291105990481915590892839397779781802420851783979321286085493287291067118314020447283810814601557464333644720445733459072132524939575491904269359721618978759746865791694442053687549241933349149990376434498829274174316988272953988664630160822838112547992507301855717136525063852857217766868739991303986442559435723979912380728433789555679682480539487416872711551718469077303850197405579962606486336951537472132299171639136182020723097964940065377592345279154042240943796674446122032858176548641130148301928518836049310564043229582584918300700957167638495132709578680317447543040851447878750230333610588366473296945914075306127070798057181216785372422264940961876319753654418118894745096242526671462101210892627160382529654526271185225873457514036426875112473538098450942550741867806837113793337228833746220621957010545165217646882491941962156586164684549775965678631576751423592913848689114858946900590588523692412555888932356652040775939333564218241291121392897865639023644714921431991947819136381020726652888001121280154049307371763063510385333024648115819718748526011318013046079330814853031169731783245102908626977985169504343627804297242824870580263528432047046691849662250123804727826771391934142013319956240845238112800341820659693829529369729884827070017061622237585925877641482153480472946321214612775741784393751134204167572216187425110526645633399050658782687476032757835472572864684599204969747829443422985932917821188767971557204711467911503795413816966958291846677206877582814166413841628513867118343099416864818254137226984513631747382802867040292687985554817665344407392620731831086323239273587996143763156057116733210362885967254541343564280336949977649631096798730530228137816835917628497080700069807843143017683010237669487426574802210736104951611068069483970968877133884281437780847510028512979908870095390294396179992230217678432243296516815521542843462168355408395519442616277797537150449628398264648504430421781883965847718991750192664087365019501990697133165988088095350048495669564113483042356138175662479899316383201808379922146628240333942225211846684541471896732074690301425053556630019712373876779088730800260527833161182706529642617396534167927713230988353470119390415635703189167754247284521684832704752296627029454504209002157556382046451740755217829231742390987187844596804838899415133940680496863422301346451296751948483536249894338113638484585852668651158691110576013607454395522914889865605514021930778479916282062221767247840835787116489150677319043045746349464017182177912815036885028247846386377734185527538224658713946629556601968344705559589421090044316011732019920814149185621404821137138061455725572988285469692529135523607343360670424279436169965177669273415882488736722497608172967805457965629955152628822976972846689492012996266724100753536586796607478031770350993386810825828893898582380493958163042098195317745411056471313283663589063798926980550513632057247515591751794786250811233111705293140189569634233282817238602909874178319134744504789054947214325755502632499896385386711186939603473269498390784708975548062819445599760726443659323442267457956349067019799598676191602840691537127421828185195646282970857597518951650071038792525148569122141290700123399511764150496539847734634413039245783425606346352999792172500714511961842222919434453037721282140948617305595147353765789848087465818106178729539952224347248571027439528901713959713049039352081667444827129759937839355099327578659632212704590664601112994305230364265621045937801276880558336603190185093434451534685639309677902838219215801812084076243118184749847298711594252089078288257499913317818826393331557410033752673658899027114748498373988470315206351911864213287993709852042424396203768271312209680656638948583708241654116898131717527176230811196240747838789013295382215265127923933228786283616123827302037977803527616973220927117323097610734480485610786506076538071432765630814575477045811475040950688671175100794968448711765106342366072652588359599840907522165208728498816074229427779231959589311858497245507660220406196213643169557425026546385738575106525178060436333480066878353287459443638181000299368315877926464439805089945176557418940796932433004423439304898664143191677337708507561469755278753389662057461195668696152167860170243060957244686824247607957539364234556338051121831766156093100804580728806903117402958390294665440561614514804797943390376543449918746255619379176388830120157534412139863558647150654313294000760103490916270711817592947783636358616134424209643618481896193687578855916251451600210661008841662898555698838334591522402871212176303543377068840994586610045972117120869967732081137826574046950841631806022916290475339499518409490084917539948276678040473715953001435425157184284807742947925472315148118878637899243232466485561404396060106991300302381843746236882549390631512653700605825419078881931259412862513643082346829542504989057201558266919674552076536715723074024646218359911094616923282202864737831254853700804283073358053816669387169023107338526335606589379847008630017563239525847358675888196045213763672061378317871066318508196804676140687255513642235736066931879827424718734708416259250525644781062101069370190988143938447599145242319058475964401788348995938715146665017154625208835770677360260842793813329168070645632185909274282033620099880759543774496388877247332921149057132792529763466956241372534904103113544417420722743938622623700608709668864865560808336700227181737263661064583481483467273134920687205173109631859117657633361037408386751775929294160436361240072911803058974989999931084153230862599879061106247597511897964176655941343128327603790014668322894783549131966016760041603830397830591796329956884621045602250971796616545740282167341533300939204141260161464305128747892246405771202416055851193057103231389105449989626034740362007954102698452204829097392348930640882062481038064112523586126812949181957838180418703589889716134899583368129344353050298996396574629175291018486766268892503126212985404853684853241406223866842146984599893264092599798580733748652993156177891771707865415807430715998178580983430691927521714179073728645836485851058168415197144065872018563185427062575806726171942138947425754486399243059015181022272681311174870971414801907882430039534666339562319218940649692818975262046523541653513718217809924863162026183597948864024220117508740698442715495954468310416557540836239519368428080833833349086173137697450887629878197295244703834489376778426171686874700049111753287619225553633193943029973378852161726516894920287112035600311688208596097757571636157123294873036367826130356724204499199333077325723563124004176369394888446141721039326364756050224606962800951200037156190013105704154066053490613495281343173359553235298389031417226968731178801662132074606512086382257649113395453256225643983060330614725861711019334636328101808265196978807083140034952195106531385553310470459843023118084188071477695243088387966856292242874352248234980449638462009259534062553904802338849354779200384524461324952711146961133308517219685269538168290778870454221587883947363120912829074328995557457690066601913141013189373830592112521584723669930573821046889263507720927132848983422281867510809404911798559114400503327504244700412053428424812043748975701984093142272313852412094367720484775651087806697046923460649375624893503725238178689097246293167748486875058706086990285619424091059174583824538853303111568387543142229678950785566471937782489220229583841347372964218029895776515411123791063327798191648070282532506843086954372193987117902157535125932422534181913900737076054383614695009286477343997356198438150380896572075743075804579408352012094982916108587120792963139076622038334617182592500546698165763824148016272427188875876374567968760853230279626916052550242119867546393418095523966303996511130811842756312494842427698123644254895942553521640117494555538696974692251106546410531997211752904851969487678786761426123318299078989679718964792530317779933132314386655912758895852355126669677577084838885967404658358323824455613133694509956715943182935667313597507490526331869629460344691706934869527083385744750455131255564881465784731513221824770075045778921187811329730321744426863360948088860155847434518784450823420953716648469642711201204709749274998008629872954474537049642594176819598967411197139207067145435877422294938019238173981612985198122946464723922090543803134221670883534439106222943578726246721669433757276815440069935724621399540915193540562372512609599494531035483829436998031443637856679840836065270049814398771233216622708678537113363131438668539470773777686831840933739395800244781729492771634243689954719765608898708401249073832531069386176068619504692425831947914875402208513694132970259618019020083793350537587318937580265557941387668073492780402631615379484221283898666678029232698975020844145660233322744170651770529556398788427775273619799088481442503104978772860840088312916517292802547098363120444916830659697335018087868807140750855965340665152924387869992181416230544293812581472409748712206225224812662876882271054995136485504286094531009730629755355160999271482422670704016676491586377355287152689121973559572878882342853165734505577335368901350131070408042133709080847615780459054817525041037643058413673227429812213205227136076840763254543841504898418184231132416225972912270138990022380218745265612785088894946485817352231590292393737513275650684986225149879652437070851743577514610051197282340725760947503376831810504889143520577255094290910486607564409484206606542953886017525916715501054657820248798591978003293728486298471545138812866489928944293522114989026074317895149303614130382612120319130459075930760637680190651966892629248561151437359133350956765747860643301938444680417190322566133170082480862781943751067129107544935199638386903476831622396010347305581666908183861116493826169581175421596853758268149461279336083348735938867835666846054150569973230627542554882728080412346546045307125901286466207393035662271659253555246888267362925983854734116208571269769749701186547262181094139084196915609923567093904550353293947660241141421396194959493283386005427191589952953559675066400791213734587590880475139944836889721470499907158231807500418600838082332361536322727650294125317672120991253441908530890831684113882310753496173945852068525317565848683177609379516068058934115915881121588877204544141106634929683328639951711001778769464580906477088963037755040390974878908607282373110352230012339728536408935340936989994014237519631360998099082599075031400348712163821621489691032232735779289048421532366713535458827941627997265737264697924062594692279380081146176810423218985933265356489090946455949299922330066790933266775891335520760703978251080941923742128890411792608190171747270194531330109283717716536017408150376331505824905972177714527261601113817747234935476042378831668473651554479770436777200897921564030070319062769232211109700917018936162360112413838957717354458162980394141987814595708870058838236941879486948614739803999249832527043228299933465854187582774020369844443294840224674969312787695006840565017373786431968258459673692941944056129807094921552563431202179555204547363546965262643065121972765103700306709108723436975719583248019702270124529124394092022498778302511449607065038729142089862171639756146936756356554636101425883813818965910248286747817277599918244939563127302335992995086896572687588771927168896371032208720690032253222493498249758538653489803717914942973270028137870235337111491603875990334993097976582424714660170489544410456900010453970716556379014888689854390380247146526010943210186353983850942316778763024992670128073184908741858192125628070418095414003233084821643344788059290505293189948700547755203642591160827184021488176139711384317964844200042859960778838817059029678958515910224948079017529638517350551770448183992946905997446749758980668993712161255768969994561559677117444266611018910130104336471410593544902416686747016806619239783993706723482211682272740608384930766424857110404962767740196084112794645259629278633989621045031051557517294241883435952342934409846014389152424023942776496375036399375560042005026534510141760348429038508036680511479733036888168817621626722891738680435915276210838110249599486707634203426229215772217154629359458754633356690956903963592502487564040973009512377889739272241810511151438482637533829938030740613492506233442240125574387927265473633892270507627893103853718912388414985899560945165949893559652049247598629449594020172748920887547398238878110785415883731395106376630758478489091733884563879097787089980804848824874943790563507722061439662743005900903801008281042164997054936957832355369218108330542230628711940406320377962706376842604386644216479622789269526935379951018645399617319957359074091409876016069553591479031251556794272551338324176029942629323424780350033735458599729682325609054604453572128311342254231871558833317057042130654421452322458390716903471705486315570565746063601887632765567926545420100819987290539060069646144815374616523184177562237411747934260170834736940379653657608108309456876899779392099927469049363538612104656930498254695120599105414001755217639544532433284688514680238237665353505478191427805211582371259456441925470793048787908267686655816200168939153883648643164007612976691928309858427949438111185766035727239991218631081246812274346111404063868104821083050870731425819915237328077378377960751671827280833920479627460472700595852293834757287635821953076981038832297566138045875197137878168193420610058746782115999990393526625408511904039580513604315342036467336771435243282113950782655470052383724437268544447274032521551510083428609286713205703687846531466816770322166727378302718972181158066640220070993778032288387541703281523616613290467278244297309690741956875187092715963944723105324211547632080065878095862064520121816932051653865639969943824820052396727875423759368708295459756118069828349868970031684830612177513393768877207172611495154817890963812922012053662391442882989772064472788522796559124439064744761317658203425006213735502702946943465955194868106033459388579099567401567801795957877584945261612553898275902469848967805858424122153508759770314493956603045767862680886902434324639150956287574362735339183258665026192242187873746085737911139906847479576152417280789785205222118271979486416299586270826765868677183006384876023553664614022749388451446680124608111446100387992667374103097327068959259930019253628721884994599320060164713101481685700296055353576430509448207097229517132510346403529362720317739646315974805202394330410699242238289408954706004844768757483082936595217512149468144900788477855748002920300959009156545169693980566802850826686765285864759543521281584160260023179974337053329157022334436079327500177564003770341444335500960301996427060866998279092154105815370980037288205371411384654396861109991489211187564181960298439679122824851815004069631732771296929343333719877421744476941367366965520570198265475340855610194115991303309214516117037836748405762608121589787440189587595106310050000066100052257782373694830155816278647417342704931651855401267608447730863532258354964397249676052288763016185491163026554282082810371018202829182803030344136546412334349664730204230911400338128588556037458554780743723216584648076468745516910696509661754091557219769486465437515724198495666480099942768404101746903875026521213381648701424106058433550530373406508434773891870763118939937720930905951315372916040339847483142861441140554638993148027889069581063091269632890500345327314692730074065128046209171557428500006087913902129943783744137531745544226209382336699231685330457303773564257086932725278691382631895360312282676723837804743031752590621606923343242703162856108335092846814558105859646407359181797474577228051650340358180172609464990420834232175885135076176024018894224052678759406714284275943151125254571260335844569957966406219955036342029747968025527889091298532051148149400913250765887453538472155012993969999117813682363646480871070162073649290386688775119506866987943838302157938926483752383163465233952170985519228669516762969539167213296533635619107491401228472241239582935471368726528303265999239956643228499394407507655682531337712510149338700373980370028562909246711213901290843460334319251802025558100313876847312164753168516597265776164117587550848622115976310096384081306429054735047448417342862273354656571498576098240704632836490833340000889142951778703950699394015037800687164470281438682990105732967597102834511978137422159681303162700160952327064820414413125399451376462284604628606389277121801771982721716867009909423521856008912769630743326385612415809066820959450936378980509600971863288745837412403944699112717946710546326695512161898714825310391578340955688193891601600596493153744622695679219923529659618916007421777783538920823977204629286973135121308390629885642756828249432133075444471166321887055539134369101695036873810350869956391899557241598869138211351000581288815431268248544563856933728393956866171480174202426098346617709483463542482170248441291717887110581884978472133672814308657285994644283750746000409981769563733571463684183794487730869203603229369808597801204497600874292652076146443255745745095935958662678617430920136649927997427976573954498232246829199571642239597450268764674962910444042431171779989586950679607549953873811731121570766150640657569366603798704381887582857246247518387620366449688327835481137616628276732065415863497861655410146202069650045087717601258756272249993411087608745362733827568243063535210818119192691845861802254025139153635001562649857299495498560718899719489604532334517550015442222814521659681939805178092499807464837691417553151613446424619862525158786354081168734973913090028606355812710397277636617500263746386588009936759987277746422787009275671104097375864810976371309092728518887709660991233362640907347556076690889875856957501970747382739891328013412625505560649656891175747378478369680165015033386670727655591430084508593484284852720777992172397793797703398512050299057409961001038232701516566344458621785922790385329403700247961648834493046160117454015339211307588057137600635644846897048874669069746828145211821584566219972954862179814824975588208385787038584789480899740620868766504722015748105243847967473119972123100361284567120030494959944601479312337171030922543001268876286048770701204696965628456450299631088077696972237421542325732179266578550536005434328659729224867616632743224686666023061581572742816027768878544906771544915465175327464594438842956785342295327779561208147511914877503570449886985818279890490587921399917750172214116775171028554828235194278316855541512839271993851772971667222181852416277600865439256527996996386093277162873625748827988428882593941347881614071940716406375942823768625141072960475512841611967275257771851013632136159286753491118645867847703657568327623251548317762920934294572842242760373965144821096795998561860749109093014819530835595241172254482911480297812390835152827664027390228635527558682749233684629063185043193434241792681410214553699644919002846946545073276728018677876068320063360966019549840271643192385752505336902083869233518422701596760319109358857025085087712998977426971727997609922065023839837073493325578109159078978706897280803089908990923921884744736239768297946459863163852656898254253972620850357577052659063601430399114508431454854898203470970653801241190253749807176785088345138356603737560641186500166486631999643882882115427625153988344395456446546422761588769326055188321149972824781190109012835303753122958730876446554751598632678871792298954872569179888686933900177559729624307766206157012393171928061160758605193644807957808686058674302829341749445260358680184393131732441877911782233190745520486443573598258662202337834034329031445612898939167626049149455820364463183865317637130239434302572994174428534755627938952332788353998251134090724088944654582731085802195643506221545530001273328941669415446254192576517839728822830995806061344267920128906648443160217314553696517805351064369250978915310221887501828970783217872638703419715173732729924438644954026573836186432528494822096511987335265650732236575353922274382778429963717813335831700140506673541707906617242891838663159678736727907235141906370626251150870703658349342122478565245259507281247089220088332907347619767176487929610436983504059323363350904727852931346460070400617603454489604136798997728005814711580207860922211498147500640592891098250107822789413930405928257954419938775135985272520953530958231234933066954490026508716080294913392640632940699828573075266227162525840725312083277635667595236027943842425797921164678750492618207514351090124206158723570920544722108738219607151516492915328746063235141757990713525766680197292362225338150236136765732233252686343217727379228606692474029428191261745388696896710730637354661775973636248652532974960519846953423292746342791055512707527412622765328867247307479203805668047796023196846985591107749833426626271539943680503639662379247403067866607207774093615394279960186646490817025239462881181436258060650012772299791960156058268025138992835679010922680926118090033029859167952360830368898473499047641122180042027246300454676721155375539994522250876816360595278589927250812064550527699751604539923651750000899700035682382203998742831606326409329752954001885133845207155936112007302407212756839354025429099297466025554034156650357424972325377791474073074263126669725540368443564128945019647431381201443125337184162387594150749976025808689129258890873965712154906099578057282876978835195541926957506083514148293956448010886800315290689104433670918689672768338986373016149869360868505833045511258154371971768152144030493446353077351914866104568074936404855117659083706969871955054960464095972745951899778783072932105946518111551718873442201154096557872038759934498414927404103008809627206733083967861813194404130658667796363160961804780109687451946330719583442145659397229109899095289175919127482638182596203391142866700663365462067365854814337205700161508392307820362148775466837673931502904005385738901983685638978105147558689556719627619817068391337837859367777758034261053413655089813047294966237987350301612074597624397035109952554176477990792852616361214540799127460259042471559177876845735443452367262150279782040013554946459779575896076739174779066128748855085390163131893966759392272799416487738090620418494323995507128396478345211502197828289094131685920449744963146908662393897329954090701392963452809586879526994647440670210277216709552210594628214300733965600879694633790177460451424374826222776676458695654319241591469486916216183810368888877608680232586569185029292840379749480883747768081208160905927109692530988542455972353298709593405840283118893817468299264231011811132433533746434814668882321619907820525116152706529043416273876508049021540198491542332834221566009618022955383156262930414814375817287542943146165134406726047012186137317395780638821336389503168661346685787514563509851800862093540144995169245264379484856404723233611942205002641087626032734441164275451523165510041817892271421341484346773079381139351421719060008161461164962922550316916316473219741910340787209183014952151211490103555014681346926665769922940061770049760638004861449204359752453643472607451481171289350923851535801183520401439044551025304229864239489843223095737302262195037782736806303461126816214154621751550164572827421753560233332131189828428052117341104663776294874834402451623869543002648892574433475806203192564499230944770053482349731215856739497025722917518136929615022431035090679551466998924930030301108253021471737452647813237315249156191612125272727464895735605540293601245082488162415367120458867032223413648495615555032380924587025375684280248199625027792970187149035400288203437500141251542435735505919645230149466323608889728467517965938372025958437305321108361416085015454018085882048102313550947672957288746592981096916994425225631550603126584611531171274364711320097120115472655553402781827827897501200615571703447998518801025301414960762173465493303046614157114463531295731314631832763432776842312993920763651589471541458383532165082246187247464275118927585821253379504535353380201785890466112055650732997600868559817419459065740116911820142786292395484729025569658860482142667440960068117591514101543201197078478040053003201618157422591455933049449445970258400247218262946772538199284615810703783840575285466892383837280962566386603100569016830487281262219032071571882317732886623251663587430592417910126976470742732921025639308097605318389818167088526106973152027012211687305103544909936713823764795849900378190224263921660619441649341602174496153305791004469976228113231355272655105886082594643643824796089807817106472112144492963375043484270270200594702174719177852996110301979964264170561607972944876863977230165045999160501485290912165374843405707864928323452193019450885710962934754166168711164436721716755717979695407918439396002931053373177358452050132906639380362541334024232482831260639927200969367985246281242803082240772592554906988605609168049502600036553920953902277617282734353896225268222959269089066540109615951398989861927279295141624246395085104311053743108876585646936378389962208086824050119330867461527207118431803170769881748660882688439343483545401470955915505388998580885973188108566203927565877775986920812615899284240689342602692848377764576022248895866714817492375192175335288407119009107456806612958262277048448097070709673885149085956019891476088490130970178738732156642687469611034186933424176107361392857706281839492965206426544434610789629435908081592494352890474203542994451122970673965539286843359016275574264726550220189961547765573862432050641963490074482810974733310931884733948816059138369368713162831774975019589690278470158794193850041877274565427473090213446803139441764202254766585298404266738123128976589962200399581881945107071192752928141921253364329945755056099066815560869773816652153303366791790185695912749459755792088782717410922026883747825279147155417948546924259897861818397266498703789292080210897204401690602348158427665376144521843608534838993946113051035956345594317566239946458551538160564267286494076284522437964228381000921626747270668814386818200393403010787623962021218062737857048378155413777067019922299675330722569860828381017946504318505994922190002660857532689097989538130434705999972931684013758493908440967519242401586535141716617792205205941997044897334961652045551412458161644910134832840628649871157515724156606115780491361263178867600413587853899150283617878869968857875230035974783893927827726501056691094551367153781590709354443246025859415239879560446311234476637613187561814004910409985145014355701246127837474917605304452784162275920375103913910567935586596756998978901625382697706652103509229565839757740600927866633190139612080798222012212571283100966854899382770979644329954805330867295368380798514748632959139719280331861695798578903981894976424274091896344297022286104328697956723533748262155519704400710695428500687407699127071054625000129604099568544524771863977054785898457480210380303353746854987195935256098061243844603293992748898744388735699650822534156859358398067164090573241889327262476841709599544864821094212615128267536893618092297620050663883853831158266329632901374339733974950910381896144409272018597777296244011119214156577171771868481078019197661670384590085135137770727501447493193171170169232136125118136832364679058118250624144956738010307510044770854301207207408424585466790700287273480158643457921907872552713777378877797321162164987029104902223582887446741423640961118160405688204303893989155461058731240261180662383422223262220766019379718845164794573657941506024552755832369634907154225283276520119121603005327332997136189614031945808072113914014562255300072131398990990606961799801881326295202287505851603300845088049086505094046232092894631415668620672145414850462093836137290746486032737044113953324943784602452018910190288333592813297375229849833627343511075262080394937520903458585190810500067996432575443870950660703144747572486203017559829627254848735018222769344347752859150789621475290518571415649639224484387848249121834693016871003214184051517791648107733818315807047636791547491700498936017931845769515967993594111298312046118070764052853801341487910020186603500272330577435112862993158395811260215620132777123937543809320507752984087571950667234708736641252829665482221437577383689222140697700936863870966891235823928296313818284600665366649801400316715143984514422309842153127064818519524115325869624664650505258810182381540043339035909711662004677469193654040503754306431613097983330908439622493086521114467214439387138391056492765216924300466984698528414519524095183142484662484679242465179022481944311626905646871215822710441425178166743984584490770105436339939627038530433154416190025356001457445386810577077720669152528472438008796839806102345217559752506626500264683193516856278573241187324869808025722267532220217224886316862152530905888416362548976901926674395593047885186617538356040500620023808066517693769657933419952444679394963257159426756954986166922794289166905186016893386965691273434422671106787935944897771252964660178779360467300307289008661790338219358494016535239193598956549106434488070910263190431648482036669476595452720548541186786508572401384758799496766955792662042848533641493221633318241167134857977520335266997283560903201233831366051255406071258728430831537221560973665903364134691031663750323377357350696558689856331479213685672974229459944295153943158468244595198784575345483687635439837752824690551744135125374281755898107048984096865993627013761267344490142544530049635956869196546226067036732652504787277375052149963169414388345257741342664560053317624582370734920400752613347982963769934281273335326160787172905519449598332406137969203115586505541392560802809516069407714802606082171647718261218285258601915804456402404493978222010387589817863804461288842442734495840602866787602034264112332566662137465701734907272694171413873452546931641837465593764366322086063828462395980906598633334619754833473366187576431971637542417882881073963518973984819913076796409375670608185967152930886509337120846776134120709608986213859004598569608855109859975962897791637931139032843489637315477053362736649186458875404615475719428465431772041356441300131796395767580478883331730348949484029214895405421160470392799763960019420508570913436596266096312490164836862187347431993415804242363474464983725620466854274864593716377450283522326339631140683463995309421161001700435455599434391102645159401671599039835322939916190854995346280590904944301260672950441824159485463411866383413551814700692345906770963229048802980003981319189689844030094070553591978036468361069300741298827243702402458816579612346664048672289486449309406004635105546451344713780116918209828490798452272602106903364759138872197061297417415006874102756964566477616315527012192791846295549478876766975828845705591060613300727801633135377466634699704933805051089791044817612261222740113407537540534538679258342934921828231100375653746264071095089779155312433654717289974432919769138155687768507713174302632340880190583659355567619474843521428756707345507159755086667633539863276338827958932609316902462462479551299843963365201000855994106332115209521449972100838868231622894890993133817888957456507687277544624704368145708349668224815877211727159029298350690265385744869311852612352067996583979890102330194471869304358502749259751728051139375495931833577226557992246209490184494285741859773009683802063540026841915214769786977205792735001562798729277327093012239670797098503057492410950104379498041130262215459351506132333086631199760467227206897118195551285537447757146884335162883261667364267717461805479657889616458726974588538661303481376985153641491660912464660781655283284722402227594699876488462897767037431180043961050572396166982267663372691483479251442428054942389026780263282746622944801013579180767595615090722995478719864413502122521400951557307321373901778958038140537557199267397905474478192239496096083798051836674250513150635230659346761261522759282179746750699977392017885724498664783866803782648234390652501875126792768299457015645966080002266117667891849609857611854700668564991340704735205538857457419277838399882077964912672238834088018034142559336620815229501944090605350486544010527738481112770566547984092518073433582294277871251876738674485065523542271397846756484923533888426554045184341583960628927514561201190474218739266557428564713149107360215517696999266838084237684429391631135406476156864332442976974466827020215385574400881061830707270507396006076424758949680736390102655253320135274240443723248505685411125699402213835786951949503362128992372584563373309281226400260031786689371222393976004480720432868464562390185151980506864367134504318890316576227455941760105240102837445754190438738332872410338269897520076361637700745084968380457215421381345622504522693334661823040179947240184806204625376798525532629657049997203217556190583023410927832733325056900971748856120192795976379443071455640831564716794912152973467336725733636688047945931488891458730069901009379711249277310230798102604139666329855815241173117301680857711044240155285801593820864861883872471171308029293732385870628469596639556028796938863845083555232465782794907876351263034257660628525064259596795686494568586494358726629459507632746710550864573878466434124509526607543599185293655472224375857678165924401960442085596836956306680173928130030246630775328127593739159898434218602842835217583002801114058546460362774943903065905684643916222027353446371848867977833513148801190363231036298964010079912740418726685288911543094624790027566048918482631293044865119750181397909878917502139095497380976484090255068175806382269388626044430715328705413222342013752047301182458772429252288447108459439807845295551289609959629645737771308882286557824072119244814742287637917157445195120500992881192915689051750425569118014319756876886149686464415014799414400305356432596018476737438104434373406127770471493766222890167369171389893579315080000630273999827839233892959028851218117351610305280715883509864081821531443189375682689737150553898648474609972971859717414455986722207165147134385038973092566375417739747317756606693915520639735531070424755469090917273137532728618590916290766115880067897445824610395846560430291061994086198512260221312534684900833195152644046122780469137088304081490354818966053491496973107922238202174227143913839883480530170184819340696357116318649338394325314789194323808789997472823776187032103070407903980773112104076058751895524189610180225246415001329068409901337572244296551317504925012406480474282363815597430019775778004027062335868346496717807523701161081725725786354711169794281429888224965765795499870018431637819757237646811590550949193932554742845963380158712781606792848794340577645826466231867954388420037756143065041397440448814114095063861769450400517425097765542484059953774476066050850126559208656786472540429892576226470936078811857536032212755795087776018856747225680433411318757269499164252053970107583658879272045850085509182009340582647634692631166580488420598014050969554224427061737236895885230253400327355759493367680018847557426172881135190759942571247224544853819297879684256224868404708035107153487966678945889023040656039620341949416958362030636214388824191517634599378910785653535781969229158036211681419048539255480563233102533773380984051522243626196963553525990516115057708534915059683198670451295005058356761146189307813631345822606994779138931392615909583718595010942513854079158818654728909552010062856360720886553777376679481853327417190326427645750334784207138609880171421509229740170475497972629314829936646855131151281658130140880769777011952774628144234199279933268973447713741917329157648683774823158036649813349772162154943062910556788632686376603863584566085977084220601651115210045904777451328917214937601565796483977543610365811585533123003456296895789019188449084977844815658449543918946686630445574482181707886181483975562226916007753831094662186885182127065952532666089558098485655694150790453029912445474993466141610146677199925453436567593318769934224862869779809176516775118337679471963175142296543893348479767052900702363393053152687081845214422359578565695292208281982797188148517289402591310805293242090769015840116413718713360852118895734315725761820987564492676496748266961237261612207324050910647262028630085289170541950832974128972924242033572161276295656653163663017301978629529756821427228018312426948083511292719869832740525732342089454535946381878096524621682399896109186235297515812896878607683741504825870772829894014773752692460655372457624281905255146363269684583251075601389792217471677644518037037572338722472756323830049711368094186421974495428809198183264184605763552703394821773875034364733170126433247620077066543220204321790275923933688118341981472493450608220371840872376831829055402343595151421344981321265495145180829527597826003194388134084035134315712944145760725252483924957545688203441558564906242587751239245119540672815479592188882880171122284924380438825055324388160886911164642325208224890791834723340960972863067444062245677380446571688702611854687133446719547137702409010756677607995774172551814966758363134930567643687177370184663053741085317845490631522474370980461420201779163717725186656310272115473309995395284781609429431374996881173673824828570268588969109492967690101164321802305285600838964459713179986274683514876622501550959293304117779620379050033705772881234919855485231033482784976340487609156198179655104686588529335559819702929455560369279165273685943700442375869559983059033594201003409651757604373035417198206260872951218286754001840477706944674882111935099240988565400117082741618942852677341305279790897865927374480671717995555841960787666732088712166183808579814615635854703071152700044434132237389810502629557773073255656201933695344113043312863499909441017277385367092275527062105357071678242283993577371680295227545254859232498368901914743426949666079606743836490043437880551584237951931595283019325212462377467457571194606317734575185250100939625170237022114874174469359598268103531254242120005089322881023254861305290614272944258112575794511288097594281892912003985053221297155226604896715000325505349734313710403816950814956732573518729190088406816409021010064462615519575237690757798588371776144553819710271026018354165151180038057852911400299415557086449891903115626490315361081347204249594919974705640104334759417157090481849440954188865405025133977246628165274254042732376394851943318587075873552626806269174264407570923727353765153554372434010600766707842309044019907206966759173024087683137171144866318832214384743279971399911079905224740136682315944100094172055508895345593611349658793203577215431504062018883727381104454340142673948742747843969208636956347124398107080958148176712398694866903409847285150831769612493710885512572213668576990196563051424195332211367474838540304185898089901576319739651052216305720869128318671355534935053858309135865177887435342780424294330484681444284187607074212752209320481367892497037091171506014634282056363214983963615450987983918326232856667178209704402524525870195631258311571580446564573921440673429813697816043218681935161067625528797493388876237280143153474155903613439537098427102755501072626131218729696904763100811078593360471100960485290133941242858638434193837687446055784987513422966059424990777337769118113847923989009265326167358036551542118327528517560576374279631900139144764136737641544694499866322711045533315542183373090774214590130375210723436413856918801511408410822716436294570840245230803823016743387069256291836942426671682649835707359939717780532872056194383676106565824563427326786428526686182000908705761475484630031520372648598627086665886730368215671973004679628483621066183346600504542897194605164910916283941956468052276568563672483788727083269997758930286296077969885107750093998523841172945867213305257508020213113269699716087266666736686640412793578373180490917771902946642984084291980628891222983975897037712298191015966345143727299387582208629020363070611333231147214757246790319512886485405032178183520840609077362664933584788803172757978121857259892039900261229008208107257531284078175892894210188967010615961975534368836027648123917094681772056352260079351957938383830921245823027385881539898139269514735689754997961659703126256362639722018418465271250786836264400589634036085947749145475169933725829283923224046715071852767245612961434076531187243445716645055840036604417941813229750377817051082052691286753828869881410620204664722426481373803355829586933908926099135143958947776675898149221694323738530660694952883809434789371540716493254233520472278469074504837213416068713194032041478178666822949413124683487648653044504984245628035299934427416158749087292854537259981045437677942126386467833763247955285612420096458126434110920059702857875092602220867474066836429525590142551797563699128758539230265672675857792691552895337632405882286923344983648008388035373050997990660289637587533548114965027611299124656965665855019808804861685120930702765570363837358627670321372035598638794663223051915147280167932861542788944434699577822349326586872932623818361991267343881680293364849395012247470898106332233909266755154452578201268241133353610280434157905704548882712494447540199275184947458666686293454716020479657177488401665527646322665086210855849928432862388946417980543150178265957192305940944996957394037400767960530442266098928831901511087968330576614963688079209388065744315874398794907151667132028935670641425675714201254378668289980902619760267081314233434021681697255754260038158211121019390635441460118318154572576589756791170301103495845131129513711350426898779423599809868701336116263225894734395644543437950488290518675494033438142094779170097399141229731858303583108344118407584946731272222537081919671743631775233503936636409792990373506264234097566867311316948420329551404865552708380283014333309396115509866963287007683733100015682116943427191957680877249410544077429932020153063733715213591921491380643960375273917223214230220014077489916381798496127199258031980025022531036279776425214915616122444389526748908175276617759524273315414165747288136052573053756977338230969820681604936531495838969142619512018687856633874510229277910436764459258990856802092522368968259788960598645696039951452651800473684091880131164295844271894072669198883715658882972355130340958914007442257048292771838138918706783088904480664040542326360338333207143810765263164144184604701698051873038317783158649649717581035347475243017710347097786301338025263486211995636549600536969216689945510666386507529264609304763991508917904171764708555516489039269018970503422185070816890902186128846113713081473274993052905779060742254248396920643375789555330209791112675556690399275304094233381421661567548958828652497732239702481359049407368069584014448342033022936205147784340943210379328495456024428987608930445347520761626496954509596879760834839413198583844336801416371247101383736443622050065453714064759718397198535974832999243460342690828709944468233454704474097903579011366541322375678925885175707123287341909862957249558638621529427760305636285283675954616971922591890178322026205315992751252534152647525250953313533838839081473162556717261109068245074978075002231205821998258897925034036696611289892691560339073133823569157776083915666969485779937719119626046163341013869575347536244817990831620211215194303764102123328464887436881154015005182399995969360206204805139848397740694182518003378822725449638060710908824174912651581982952887827207978432324349285243946776231890861290847809871824140829250592491385548890977390007810799016168731499159411680479555325966615080633546309330676568059446848486930112198032110065562801307138219847047067409319703652200394128670669954710267222824405698048709214651051683614715703726918119242053069016809753917617782042973078125355185454934551850363725877842692350521440491594557669297226044311506074775176158883504908433991185166280180024813930711565427217447573134170019088530459868073476394173469574141596097745544153378278661269864040092301027316378268122725976543620058331503206042209870573407714912785682481644527170926841907181237773315066090242815692951567769027371042214296297202665030473292428940750839307057341359484693451253565290671331037125247311358746056908158542307829399595331350749682042323866234740703935338138069362419263450893993893136869597650098971459293261742197725777025571267971288477114997406060486577595492268451628633076760941811335515308045034388571882244963845134885581295673574225859079897932861016503614253645223199440648695479537272951813301776625289073105609131422599823398692529650159257424753060441632366998354950243358610916299745656448773823298741752716167599819952638794829873694940420309958388761688727022335833118125129285677114476024185194618542880003204846269304695506182378397719541641113605614251817662700492904380476762645826608574364163706526020963967173976889711856850656537014016755147431267085787958509653245189917390399949643101974444884744763088689541493076773624135402435698546444473535480880570472863258315245132202391573194921688004257962676307503736376469689247264273256222178053632675119878927296966513845915491831306154432605135822652983509696036085230454502046807672373936675623829435444104617107919014004705963440845566525677602662937681294185314257508337071953607701188164701927024946877920299753987978496838008946242296911061091667300242349365179669485540123259659971757513891598553337751769943922338898517293406853610360951975300658424532837171898541696071949209473645132022343908637421695817018800884238091210516120168162450844106204639104207671631133554698860580678218019437511683650514899094797302844353336545388492462599001316627235858675193833011047905021106833629107987153251899990187562435967011611127648588930186569611630028768408500043347507413014961739827735888164472192793428919990784442413345703211312249512465467788828543812405090809082173371335566633192135550235762962535824843736658925185426420031201449320447056804508006468089407467446733089572952212531502375943605674505804454721130149011257532593041264699829695230754357294295620391339373530951362466506059307583829703084972615937233768070184536552263008447671667398928576280009254933035074281159420695725462325497021673967354594978483931159769384894359692519216803838896542799138282451773380391828146894318729223052632087709489181894886220034277180051774923803293885069917362344848892037787574014536017072674326315086193854771118008329939129889519541268986995938169611980960495298736004499571378648387320835041787822674605010665446877267995809860653100108765982831781385455430111435348364629103988152901729907828187279810905322150557048836248035813012556312584439564167152184135270284736184312686118925138851614054901041811899906353430062570817835023209814273647278516479801522563973516066700160006214096810342128891120515465668749625140551365399959231877305431771252984245421928678390692953790999234374801547017831372557671327677976136260909547058094463703842756940091617524473224363352144542592846683366266674640883050682591338745079438472033470565006275875913318523920548600197033878337476197753074979816765119549303109078837165880199922870968628728474076774500374722693841628770539536500467325089963810447938336176279589586762208210958202598165337739501591656768373591904529058801454173356323120524779789417218151777819035780584951131302847185136156698022157622184662847078157083391178978974967442740663626109644180042142179661430438608116422303324195800968501672293026959023317782844114010812167852291474301403624382789237297779955443413654066010427138866725267552222841822067452402099161938713117392833605841702751446669908565529854921234440665686408217376654192619749165737096988725943816901540905017031884833754598892719122701204824581458625637433440260405887022960491612523144392178627147861638716832237808804227986002864076415585470898749497962039254661685836008145569545078969252982356823709383570495432441270987857462169415347229893485948241863575026707385342977007077756777272485286195810741182472802473617194713331775876215517608266409035299840520464137022750824711546739790803733588751270464782514298775671242396763622394162621037638896990587060990436543517759857468267525364330877542713868300975334481885147162842467604254223694477136199220889330681971359968020227399719184220152906452374680478802088081756664792367150147016756268955718127660140879525460836590387141568734957886268120348064820977137591235858337562269861238891094831062566922312972485345098896371873535211040617892489394994295825643244383412365998824359803010714098031096489131915310557501410988436843317994286406440919914406393255471807006998249915669557374852173912258721206082161578387959427280343266976678102781093055096945582022472415505177246278227105825738668685498820916228296814506276410601429188370567684795850551651132748636181490494410796406843964312670832657999724133211835773312737567416739875505917306994759000700559002398738056823394120368604720921918092389393907414740790399983498718897470135285135571570510695849992847262841706524326730751991624815175786568566835618762300778602281514742653501837782813224108389160429279728258412410233718979164657054343928862617165646488677132721132624041312386428194332482988122709365230204412431292656069908733728527605033194817298797162352937963788678218762583699311946861544067466810421347858607119656527829884171905188044188406061568768482071364532492255172535806317889002558560716861369051131321619395403485846826088561932787695672471093714961839316608752738982743077360219461079815806240555470704130183821426257400039614309583927772038193546547612802637282112387725864614336491794946990333736504684067543844433583311287681500588010285791408792080818660097794501360166025754867229783649697898758778776364487271903471199122840312163399571271480251472065446351874802373187741693862532855077924455029136718152670089012665410401003441371560008161317434865556647086306783873778551584122777757620010506711911165258895057862022187387299475237055217787979504196729909775366977231790808449488994887447254462028638153678077294301072509152049830265045789886557954668525088607214124811183164618823610458676774736870200124659162446881357159623260085349429741478505072588065881626535237533169980774183448605988972320176331285784046072344801049262660350201646886732551766828284477188386744327847653755775644888171196981843522731684204742625747833601979950389132709897628768280574229005714958489436701498332762902095721922878960099820804715332200009081961958596961263494014138269542665086268191174307651630422041743488995200287148550646409443604902390056291321560971946880848951233921592822240037211845876040399734942857751083898512509742142081840661996339026803874882509457925936910688995065630822337172024069083301268055522139172865628794981693927071599729918066906832755154402264564322166463370010944958701632131898557137735911098235374333963193478745360664757714259485407968899073680728519443143516150361445106632478184245099108802908108695874072681166788750585694433201210755136081636775282767079726821671215275777569616696317727876636281969397480041013034642442148366478587369279465755287636934809805467747534094594303267896400184835232272586284535773636962640867534087006887201412471932946060591946555061653277805864768652910062691845203832739617660800568508790965350460228733015655006973772873771019786529231003829488383492902156099876725884366589015558447989205591540551144741930812060002873759938809903657560916491443301731154509847664363849456734469783593593457744048290723725328291240164983390980828290820331349099642290632690852726681746404875554980010755013483051503413294622301857331516508095561230586645339426512857901378175833189471013692707430620026006086844704546324922679682260507203359646625908536353550098821428847013572426288990640281301804221530496062682233496223536168375592265611616883423681637542357175798654889712686640498430894665731053366209463214805550966560329947146077827963832922042477774906980628015823357587843531705305616868205702062133335423244168771056894727185162815551492299361106471694553700445416526604873315657566138605250375394348300670158491138732511224497919476558742990808302961477939244786087543108894371491750866592560803093879566282254608551430042748719770342202217718655607902956724504431649713895703603151222443305008011610072200395645620698419762616376468677160412446366975573506660651209008054568628204124769069188850240741957318447158218632087242452550619344767055511099704258653655497690717926842933899157892974312358595767894205032020380890372458384121686146513711401140292185727098686777210413490154477205793290061216446055199039487633103840226512003536171870296742906015438405521201879723670489126258445283081067473091426032760934439280487394008017722331092512581979104769399466026910090480889408353287026520381489436969246473058107226127980632302042114538619071258714353725715081446912763966442276024667346322273542124486745189591891321532440811678853262116624827328310290267861285144977028018877795964292072549865392759669058132068064651582361204640737549474301391043515453745651312989727987628665217817067373140459661659320436944450190237820966868216330389225953360023493363514597185484000311555833304078827184010519326705671489398904828476107205206562315335178883860744150533900684031298870707049490958106012757791387608369825977471019829770583687829288971591986741782260678450218568452732386535584005783072634710501586160481983009083680289009762038155514014678175079211303826104871064945120639044155664353088407178145322491814752594714477884250611860216945063684247306134312720520021696173502370429929770802950466864752167057762657467728615266739034158427145915998089376330004560429623707901067032405912734606524113986603821758848143559818932634581198827708046964439917395644111140337215772962893107447147909682988625334163860237953368190018374158892399997119719017347963909089901737305159116840986833318857930053877277939185005486143318922481854295798159311060679558004585838711787500293097681125237704623002278280058117154455390156493639230082770050261000496609177565106409375514277131530585549710495054216988057067183107210419792922846812927649494046133172048739275688225949219123175018351548244382134048311131712359781261294809692265125071321604783713408657018107111389983628246500175037133721197674997022454659135038527328778358505402775652386738740907708733181122940776515076032282579108065930734736371136471998431864206021756184090048631785873763759940882689155990282773094525818639276413593713649653995946220340104450751711755385601501285401018786342686889795447962894910743951209886459630403204392375917161735988874289316088072382350372086883447603977197577967926011456416492479401308817211024963285089686169390055180496387064029265429774066149247501643814069724684563504653718475360901711768035208800908615692925841322177964508162059996683166507581493536795797422995534994513400810577915790174310585822647676127871293148669146606222107673692250686195782157852240147464228127608924319717287293890997571195188192468580530083588667388949159873740623139202470123892467844447584352097346241429891407361397313564642579542874566657875990309398981910407613982393660650430338424274709900903657909552729826542448281075624652440564176657275754882323455758087008785013211122459701050913610970611071950054847337851694323087737209507418558115117703619149076248313422135815979042561903615638294540795520973421738849758653535518277678837561365772353525768884143371651567847759583878958968960937676095900709998679285770845920671283386711876798612520360531833779362069821218591465931803960431734310254849458435806519991069419559847404411253852421158714627772971763967497382438515407333600314594534952376695782530854070026347239756321475097143439529182045278225578230544291509982060252858425565217830953076346423865514029688016250549232486031767786230385390737753818439127626854569064272080719924067376152032681084291912613774049566348078806781808337053332449393208234343758493168598295518229943173746841482841443337678952348261388022795039461751751062010287145224868225441981834893729100026993367225590589229505981432589526263270322975180559367834615968030501174116100352575995110728456027627643513455059073964977820556878839507906208394215727771306012444638888873778155679168208104852791437392272433056905110493708122518208283705934560537800114324364416643436415165102374259744081237014023549348925660869517048926727787253575806931225823447211333121149362079566933358596077128354562933779475697113631425024099770394222302616664895218931554010234767043128852883394762705787416411509795013806179765719132892730567454849363932157467953133060976670056949052619323713172520105302271856468956839775257855891203952381785819545037716411532236579013043938104533400704105955980086989743638689813997028685238349130057882039436993418706047433495253143437401478601678961864179783399108012934082740460396950008875572336169431133486968659015591113305626829983481277925632882479188495248752806469725445562831347300195332881060019952224025327546005243834631494227801264680746756590312178119389862101983360405350185893628602782125143000183708342814235634792180599572253898709059056643203772177686290305617662909423559855985867322444385980997254918760677861382265598031139934377894287891474751330244985839014164227683739794233430971221461091879818832953461452320745838792256042093566995560735594483802209753985687095227691307426895186462606120496813365222140373354787654683617358493062298959131974616447681067432879304690739673089769720229518768462187936307715787586082239978005541421304666905373014036016914416944834685030944880836423037592872958768563045582298192124844016695045701860578817794135429405860315227907017746360960461701024694483595231110643245424203920561092542688361493894682231275796511237685367239032953654207440798773262269552423461535837243898313185310259504665414833158933052474784469673428844280240324628052866122952257381064737065816246753018786191075162494937999604486796861474494453728615642709561850574677090168330726178524039530311331677918925411099687421370197544774704243737856611340492665425582760405261869954100511671607410415787946144188043965920973449177729695499951618641089199271692977891928051655682896934679186741917109276418975062269704596294424166383726240829861496317756033894501336842603259355562612816335573706445634065456171256497755742920528227849646390359695599421445885349242697316322568912991658250885508230454289903622935084435289745950298214343151317414078123192953221037226086870403812402306109140767740924266751471367930759251876685354333899408324122135242694966782995599810723136838043913231037808517633198784075295752061238489332487326760842083207503176935638988175173403081022957889776187485704029590245034051547703158015249562617439757390158609937618193998689295944693239286528314294759562564067700234392103409857693355411504088654058936146725687655033527913073889972638708004870921121670036172123011554242726203719846750532582375085288242678136461014680302822187327522510388517577155637421206534723423182193966511862018194313059859520365480158772835879249565876402502933005725830103303524016837166951361030221689800903782529113814142254862562901206348729845440542659857298564895370656234853000221420440934478578286909926202074563208252728182363335523515534950873628972826997521314464048487815097802605015883023555584833458367208327311210760949729411184466786043531958902630245802765053099024782971976477967892541656185678003849849801340009277318037010024953358779095344820509589517829881157558268676704048163088294387429674506252006737635673377610062152626470698896969960629755915876652542106462832648237176807777228728267252230906664849444383088596619928788922124775731138738414120942262508584369861619807415926527019319504463854182590148019114594193617271581042810755817813155855068346230226546213781447584253036432002636370285019444761673726828406620770863250014130822891783238953074623559690959492502902587925659632907202927624184836466746835525542900063905641113644226702587736778879571108945647404866462409141197140838173511305688939232774529298604202821853896716779571161428941618980432995041084641197105289340761359042492290336534307641364673829056168459439569200031381634145882226948569766202527154522605602068364919481495745589487831000250648016781723980532383160258510097142842221727406733585175566383457969068768953561570790844676325812707138719035471399683582522588350016355366428425451777248593322973512331631979373647059248099952172968862800089427994937577568461367312510993098959970968534304756936637330718283932751803960867906535408777579469611242562375973154397047917199434785853036421593389875012631880608405934515052835878856527749847410725653532783366074923157231925386589677588397295683453923050284370741494661704513615286137399376476412154546707302389338009488308138190640676718512815355474703278121228194473807365730527579594533473260151507965284159291540875720644296158389696553556960071777714734848687867282863152227970859154540945988777467559681700645981152620573630014353255393870277180529875479365025351344051838578937806996466563372906582593262547267753024829184732952849775142220593632018732952370179317506170357876012338945904772774910300130577489576781423406565225774755358347171104831080984719854376715102397375570290787951616185133017422806301532021753549455848896837187893313241404906423169606859933593034462118676963131476281691102623506586009043678031170745656015026791623669319481893281592021730318115345120819142848067059901254424951162662380924064839418537299638753436013975283465692669731530435888229483210375953446941864958323422320284600640415708947585944646194512476411835574986985389778320926876928312234711188751342281352661065217481635899318464009212914128105195630888292346323818495269417036718248491296587441950717582051319978330119157798704327201146911917268668287437193311133419765913923742153637175113715316412070001801532438193840718949738757850070094389280614872042393166009382336774905329456273013298597945727261690449488276983986068679858221637388985433028032470655076392470163892577771771364653637412148862251303871365267686901617311505982287670362830625669622654932010150782463515341327076909115253607357828098169357175160831994557058884853042507296050660222301022004793522248812651162820649377527109882431051350040897780608699231226954516235621697462705767444468720122208426373183303522404505882658115415212495537303687706325151893042890098980095222957280718322282801197006240152125044225423356504253669982953013709452275344618147408598684628399719448908099660234847544057361432034304622558285000381166094242895876536187567379381057212392742741912873762336010806388372276448372017418351759707703867193186348495254811564606251440949762832137800378332316614661458349383308675116202411613225252598071413526800463533900949219955307159141395907534225360791433094017588360107597262119881607372237200842985408331747102812882654793911950744742698196098227372788597995129728721343705514913199264613565882601827973584184607749910731823239088562544417047226884014091157268876174256983649875882217757307900281744407563148764214743068078464130191985465304396385910508247715025325734723256730622167619191216407591851836267259944668414852196273158093273652270855158964197259327769009246752182680439420482695222106399703280362213133141936168074347170879995693505078073380474106109445395796550439373904253529314560310458141823865202495132225943576991787872647527254906359122323351852677607051135548974509762845465228736798811027471561920391681643361605129360683111382057509392834030172762528184232938688176417098071919043232222721730702981355018226036234219585485392573669021424442762216591936205032521346042259497608975584984784759134161936538138997242126277785068347411155694855461234806784763790967005537953133614497293488196855262586094538356100128814051863532223172986062899879695841151220880577924750635771724368261268250151074059878915528978837932936737634655443482032853129149566711702073378091177240969562022763010307676215538568673628149030672851066762582201609670148814536812516481154943056877758295506321197654181724197831481964648071211093402608660817649690560728750136409350442270519403411709615057538675959807760698438713997118832119248643452129755223756234077298064561022357159511912759830502765778908736858917081680694333478209846560014568968797878993770677959536452383660540061649956077317098706015029473160367568777234859100171198869052010679484342223034110864935114614246560007506124642406318239664045458159936255084922045863513071733130142341156776440424145133880850967065837640894406925150034434606998729013169608919001096925982800916906180974740659540835545148773130774101532508621469082992842640550929865478892679045940722042968639603060758017809897696787582478209539033067134160156581136964839402467951155306475725199578279841776044906534864420694279674761014852781080360360905473700805526012329091959843462087769091292020819258139947914558334880168769057298698994187630947394797786329601553848805396347481283956594739165194346948158465085930180222383223721763366139067147765950133153877543403376181262090975806424785027950465686753341193264020902224082635225115853539748872116470162087242889173805023109887683457521321083603899028971473126863164899613243178705133888130522879928837796350251730922766740159212944402881854698884196767142749188464936074183204711265727250321850264542494390430338456692329411685270783646102313290883374073983731560842661457525289508949192131418269116375218511006115262201505675162128849631895834392879494131497018012431802597714179190741888382914911978588192733221425090898065429371417141097867583484980753891322475297088636940419342332828738648987065631363979972940774759930502086453733083016793560267754911390590730765604695665648382593200309414371368180313860650375912888840174480063744007234889600308423112967515133873556293912013759235026964513892216240961892918454027513457406170000885231053627880522665036355669982457544406302756526316991278927702698930622422640256653378146148716067002136293603244032041997541094075381388365822487623862606971623110665618476661848329364475619900325812496823494586163327790240979658226420627953738711655443013496860530438402959430358098783652789231190220790232727823385165189914540576587181965214040748881256381816636692627066310032516056854250195994187169791357799775398958317657575623312070044501004764154933398613848090122885858015297244091678972596156311306621165490933654892047892310563011235970280461369717065034397323953319173319838423555381693280128617971962658799810460983471539252185697205427595698884770459165925775962260296725336915894288507176684642532193078319495923443491926328542706113056304023775727427559490457103944869220113802750945300530449972092627776139334628443111944928713083449782377302202819955445858048459951840916389458705015797829439009592706427356701177402197392302033988819002558269421862820733022162906735697942419178159028282386895738888528739307597632049874359364472032416825753687140200219046747194213590565841532545838311120949381969143634005354310434693880953559632323581845494773127999963939105441923414040421246511644011973803705156535326915675224866178265222929744917385859829541768198910602579059047219489991839996133037442679439554027681956811963924656481386268167303244676999020712425452263048567543468540305268346843068165227414601695459211781182801846341440980310444425931310737955910111262617454598192838994725360077070727101585781334047196490087251518253099335302819403956417553746654161451217639320587844992566884755284541984999010103770077515795608147689729512639672643928420684951296637863508201900903647229591393212324440921847474328130648287871956775592265413574346635350831074383751624625929016011248548797381610365220119481010231861155732477014770426494830845973315759032178697791929763740825573094901608278541271297349247892694603385112478287456472089625257759296750084965757125377460534915939549479208177985452906968917903375813621925460060234003247550879771317261110967694959294646930507803425692146203520107863636551110807674711680321095458664573432365701359750691512238693053732619096736283516886837438220601924355114573985269287693777032748936857216089094442992884371839359463766078592524750606667422713291585504663112960706206245474940585535252889562771536615358450224919596066191588778580625248390671626870792051371932816041099499603268186072029877011234927766458035080101002637807788761199797041114946859430064307486676002738779269863116879751201679151628163410958208824113673289614831247030907690771248582843972077755387390987336183096116882949022852917314823879707821954491292834178139491456066086495294432578070157632206112610027636423306768554904989070146716720959261930327651257054677138555808638180400582628658895758676737301992611579155824536106303526441903974209618480709365619641319933553219445100799448308493447955858920070096475945435204837388314881065453608548563784683095131955051298766703598931728739012548961253256815262679992968311181883248555656768655396671020696312146712786890107085453823232055832325332049992762867892389301860731434628171161369092766642284824811941574427023168529274158730689662660120057545723564522080120156627409024499819298639854683275553950591276148953391003512022544721271031101828190831498014665876123992945335195159853740341964510897702320556330972873485859106692790021481503548954011736008447068852188539253614373986588680276378029449777291609342742923438677038038350711273865640968614307938311841052857323868048903889511961004350000371201680963902652961596500482871518774634771122151640802005046903559802437338679827317013734095979735319098182788730412187034293332075345420351410834168966620669258587806428948836234451078290673975450311644970831990540591503940012955586509125474219909112613584068200633730869891288851930646775390979645266481923976943692592731254063384519545862614749437777768267901122142584680415965710713583834996136100743879697566161760631562964088801559791319524089193463043055860205052915109465914880240178361847694802314881199983018922765127058376104249148500059139921689811881974562969085709821271708467983710039645638361954718264603428113413752322189413346533357448974313327785856130749029994530374727256480532681920350666280135106913657184810217618738291614599230042297010021669490116812060858011767656402705893870977275374022675238179322544289742049081445050238611460099449021289333025004374790704950725836940811866970040611076520731262067652959554615272954795064944545127143900279069998335253631348357496887444441791030121771749161485177911666939421472948858034595633930379475576592067853203973809422284066078671199718576570641255807730790478500354173869867496131663812220940523337998268040294740219401501636498697662823394121206865662916911832070314457865062413798870077395272527987672005158161373709863422673180540954301350959223389625726187087737594368848523880284495456883408839869051014971333667842556038409394590641031699215347600739726384200274117926783941714014593621591319867364382986731449076454581207455176414123341875870874869501090786771350396057519084484081803818126561759622023008478231005730400018918533049631056118032194233581530252928522063494289681184102181303012872441603710404504691712066902825739167955294540211288359575085493901434450828987616884068590463435566396502033857606818138422532103495114262758447259449044600504289736529294940172206576059159720551651758258393809964060113892778400374422061151903994329193085746717120096929146591311480001442099716730562731595213118463367626951444396695243579633255459901429357936585019911733375137352038771949866700411167350210497561797664120170670252149093557531265645614162534202758792984365914427688948056491850845181018860271532262899117421541425487036140494288896905854129732401542236890975345057707859013369220455326722444054718483090181336317288001523630796336076302984235738628204354388801841709090884226475263660595810859974076530994667942235863778410148448204711473278402833992788206055467564862543779661245515566252912889362092345615893696253652524231603741823574033429628394614763924815693900309931145290672805734203042057530900244469842334158093599906279659057620768797024059871948002125918430838167314156622343258670273780885928316164680647543854228729777636333176942156811110833330766110131514515600238785700202387885341195415720067437763461889754921804426433443113147657900812703214477262630425590664401511256666860136408589374194006774471997578279701308939400385246201167350525865433090277526737827346157159617898500500047685664893449567215953493603510474348002122379181663866379505503338639367493141182081249102302919183318011834832166924311274738884918221203180652552847890711811064934360922692792485506821496234461277423165102839806694952051714423750830157148823629709926840934976698159505077072964417556802338213889003240824223116548259383709346574311737883952878810028991935813064377161608725420450459281394519836934507815513508457272880125180810982117704516883631353453132531717061877801428906124882696544517843684666993450165524945620040951696312881413162295987527364610206281167595580483942692305234987008853907995228815824070915533498476512202776200201890887545055904915833791870872947837657936406888461683619809715408826478745045527225053059668806782243206597532211588295440334729307646044918195770920855928589282925436827803934234492770359667368457717671304106477396567830314590995482854607392379174120461850011608876647943454261403869953512333053284774032983383168196149086851014422604733465881964935278027473480319726762378336691560383318840386329012574295956614012307702330476963432962030797084216869619184530552851001707885852573926402650713905280600374599959365238274524720946394369829197291084304342889426105475632403106650369254256987185296075085702296646803058104029072746917714804494661914100076253588865568895081969301588351567951997044048924531766979048727590004578071938842561171578561988772132528268714633011108785542177937609715316839080131858615536579114629593578288470571892592790731068103766485014830474013131585218103020250466147964107879600134078674072712618285497822147851639808662273371810118664194828152693978646148400972458715385925689838016641137926096772672544947182857864366750836305177153757666805832112344191232200465401534257937691826696689515425445747745452502581890938496591312593370138939120157216677930520018444969349938173032827258792276294299714989531401357645235650527473130724459088713805447753946203967406993235651346813582508894201757936067293761483294550476441375412030196752964123485276414280311605075316250320633127570034099458382143624814663792441351089699553075784301342649656178975943184991888178032811891825416343736306029867057952747405305988690920931130729309262758837094193644230464557913271958295373730840023476430154791823667429630748680155951990197763165616437500372533973786750502902370475588584877135951300091761331098335943952845378108391641555862823913031906993098743463339081303891016269987829091105340615190123416844303300045916237926825851575730941259966068864918349657606973025954821343435451496690215225500321214897634079794881917278542984478140716822618235344038372282801694448693723747027545038787415131294253996393847000768039181869112904796496535707904098959382889836505133912059827082728256771506744692483373836310346378061568590450675704664477042038408382685720345160869589655321771899927458272346377382971619554856538373368097105904357395606200987225187163061052500521140008837109112033995382468846645613470803521893001096874135358174562675256830681923590842234542155871685634129273356808350920438831733706673776913014236608196732930993780824659727755163715860147423901878824666627897251717320985749090390114831684568507377877707485378224253530311092164232357924010406834776406340285042602492047163574300476950425121067110413259293271911678591668057301082620754374134584699382060773814355726274595579675502116583633604740639713739778159840536376620186151932918029546827933230917243747758534791302825070581382919762605571872149570450644078799211742902629818429078418638136975865188381052345526738189116548127914639762083539319526334435511403374396365729973824464712890539367627868289799062663231530299540099130955189589759161746382922495939593102139147724589003152320455329842827057573137064591487254603808013850502540391912920092400971509755291065894571449867942804927309694616112091745837245227638655971050627325936822139075883842781601538057430650033588645009607050171903331445950902472266378609542006495087714349484795902779555205105828950420353401948405238282380801639622133683887036904662352177930835273716908781550458013966145419695151090344129535818774459485373403979116033311493611405431624080385573135427894178519356053750223810683791842863883811603494700666438354700717272429227267996437332409621417539261671731893444028612635599341184960088771622727173844001064248615428736733537681396828607318442744811181454323269182800803114168883164886022420508218463300125096211124329197230495062960953312021109968435672230248088654845193701028368926143211837704623222722084803338388805688881699625265708919635005718943425458845222610908885869300674736473537163119083414795098312964585737695123311528102753575760620726746151564759936474118080903617298805951787876929113411928722552626232951962071426619808155389656381964157933027231147796515674189144084726417346755437483136623832877072198215243681742835090991307291647549793367008945475219782689514678356994522790958962394006303753570719497338419518896858042332953194824985246289173832935623476377773359926329330350158335992430982830753301821293875213779060220619067068753366757539882950640396203435733007362232588889710532447238090576745475202335766352879928422145707149018662802885725976235768360019393677724029218252481839701782790213048345193911172088653888209974513603434436509041890442262111857183082524256980250142197135376180731567638742108159833439980949159141547204400175911736040000175395314674547376847663344145604523981510543130124474235433729865784128047806563397972405255714718182854124377110848827621120560959335661732267789458198232686696395976417226408978605843322942306363860670209975727730903349182578479380196142316119486195894742874439973572184464403365309651944889914855539021318197052264407548728447205361940782805962398435645771988222365651920851284347851404705415464548245819520695753005740983644013216595490378723515383531505222450973171919302263897321877277571517344294416127583300738975793001610539354444954406080939394599040433339427889515536730591225637875997889128893618053705603198841072226690023453684568664787784518507865471060391823479752108765763944028251183905330462399267957507610339041226022045266046850559107797954215002818943710794672405702028581945608174433220198072135016816254321849021154815717822362088123008591124976831795752679124895965262663944019579153824166506863624858182053785178237681924335663103820275066304722526797007655391984514785887329722433829448869360151831288423825618633173388480614477315216329776087386091812971258831358040464937844542369370456855979126169289435235681174430136016015386729886721036994338926510361956124427181474834062811262278326598783061975907081473484687937162265248387157778977415807162216804957541982825947914045700756254904969272463296399387551028891788932415475293930806855548085689640404473227976406497288623021529075405858023926812913492238239151402146551572706738717087427670058377631588280504743114903997990052409467842269778569530828672214731301071365440550606878147910788684191256031127947538449477090008386946954501721977109042616036038226110800810587398195794393355685513269681612229979538486812803213408386588820871318957006549791740040149602296463948843398622417416343531251252484544542461589651120743619477664826247114849657156584602964335524328520026719087557761296142402484192941657833693291089496128770060778487283621178515145870206340217660416769450439079057030855392561382659004109586856907561092685996727466599803396152459065321704209349618778983348562201394119400513459276849519359775620732473083488113087224601152491220424118073597609578319360445569519726460869495764145566389212906054343852358603027175844099681249249556846822955510537376309363439743684707761190795797733809801666566036420887910683939339995027815457679756219940737461777248271590963031852169671326118207462993303332771261668708537029748420240981575430371544212777386800516312310775447150154333421155659926710836022654400860020776304834734567630339875188023673098651005885745682641625588375102916331857227851899629444975677423325904835764894323642945635017282542973053732679805643457301298353223608669522183882577352731947553201956369993636305293527282768949934330841940450682588061373827809387964997650018315041462421512016112234122951807409138105070045160826764370685427518077456690553308343036369821815915293924655949759972285589770315037597643908303535016645140199211217507063516868577909344997644656253025360338789433628259969848510664714805806782811002884060908547851175636175672434207089073182023431970684564569071320846270255020577952937254624585455625293453836241358897686396561991691596259134462879375864673690899862825100380528823853954524578565153911897002482579303798157900277363293392589070309717162369024198871194994200792074259941525260806417930407838566904292254290362058035054758784659363986984032582635803732649036067561554462987219961928781282293084024339352678790993499068099923509205723963967654252753918855513758807329233063235324978330378094771006333053609771643719184709077098800660533557978912886626803696972359897986881087467974349761546857927787130836958116994946561314411177821647233672430372523000990661923067373128436988916925021557055799280697643248169568262842084766004918742235711141375187567903151876911120382494402790517790626393011128723404606013408564316654844592657413510625817409920120804271831100454450823129239973329958499081384289185825059417059063484155641611458114103864090924623936818475553260728983417697597135933888701529948963509322099651598382659752718139310174141615092738179410600906674167549731863904843118194944947288834290630929518338445993729073739866057658496666026179272064560372500706801612450718748845681617345456367536597720736603449530840834507040721863282778480021116493913352736696127190736999503016021868776517571591374792487055862364161538987231139550889977062034569654013211139509153519482419005591658012690246290768460902949997674487636381906045359536949233852643550705410365062913648552145694594627714957620543565408049346835715449916656240542952594678026966425244359890006278592863256154651606977258660890212974127856532179053653677897280384632994722619853282437371276726806481209326570555415596183210625519841058330052920688320184867924564041768053083968010877738748011956227788795249185003957720724053637431423245956033830619972220599457155769342516151796704891313593710284307234638456087803925618525045570231768204339056470973026777361821064876661512392049607287884399159635438526535947236191057938124768815553737220770290360182164607651310751548654402626327331944704058867379692596858548844475934454665504228064448222091229745887907098675748318031253883650963567510684452469301763991460015984587309572166100030474092101500375198257441054290462366003580684398802684195188285960878382759512282270225309444473061573996990135951605340337572589253722098938156398214334906277938485258942139921374839843915732685368050452831378141376911977984755624117868718594861908378590980609630852424970524977384664820614516369494819878408498887526256519760512930993150348180418203987226930828775922161937230120828006216676025405505980850097779624635053315018742605505967066373527424198577892576197602410967726443884601385145981396476886705996265759903758101480888420613472975107519949482806851841459186898322198248216430160630016802461588652095142166748689794744331404894977397503565536414321943494747758759374570163550580619840513605049460219764600098385268161960462530542663081470799689787973040224826510093708606389799541940513959933377076917991450647714864126833934189898044387433119445580389745263371847789387127123134496026007979824004708901302974417902150195809332779065319261197715744567247557497500971499651008690585725453524392084040227882974121519691476744547891516186914477553851780386498556810144906313654714941531215967182462276493946096523633261247328556421640413128940913467050113310870018012872020952109663337036126204876609046111113714639608552944485767166551300654405094110722445059191272898914452361951696604415443674098718714007337295556252220838363877348509035389291651755020354502272355819661454977672454653720791989448541300658287347146976223867436779688653172036595074664191355878854766127392986753102360850672123791936117279653269067034339284353461488643500204888141495597582401659377000458018802818186413223297056048094687735458938441906095101076683791898146779260587918825710012421626613637344067988155329497521581816733558065945311620231612720726611995151552564283745608322815375490876402673567785431482840773257934890186837933149306809222006134849696774029301867755718046777194763304287298867442793960295123043970246112435601111399874038449915425703756133176374474077167536236795237152828817316045872840533479079122205262248973822238611781486018763235463080816161069095721003067215950265829804452607564233362890277346369352046471751624733346372508815485787367516633163637698177527076010405693212608635875278386355432845474403022272232968505116519266283014175387137249632942585257978025928144116382035363327721125054772296536978867901318133092418203537218706840987869988769576052446156998800970513672882221848087348868981172656706954045190426603785232857442006204700857008925982930846859141072913882461284616234489512092297176370391810848994305461735663506930906501084001748523293667346918048466908734382251737343993059808017642075348361955551935519744019813744123150329104516961984863752135613045201648071211256401621288336924329453139487036253966278510110306149722904223972013968612696268796235772848690138133105595010219112233801697894167331184932887942673807205666853826011706721618812433087863828973450810610173159144204489053832180770217803382266517714040431046042793075159792015350153569905216575223892708757058771648683536804743117074600533679081325523117931319009303135506072476751883774724969360775352265498961235528702483301179108734903407512499632551690365557111905397925591370879221710143435575043937248357543977563881670914837921945716953654095001574246353956543785811775549735603376966421153857313874847283629380389301366356448258828837326351781200199497406254949057224773521551215769224374279674570153684524796704018854346129456030439510411011753062483573144748060425575220157801353448848111990295548750563626637635706568990269777975211468601606404939355296037119786139585533136571043648667445549799717413380699437034730228912498326249217091220659451074305916171584338229005912811475450163935915191237163233349141240339137070162872943894419776884931922081585285934986231707626063459005282292092093232173356573211160403672883349967232347511172254332478764363315473896745959887476021470929403151334467939135013273979897007949008423867396223437831782059961625070348337806229843827484943927937576284335051702163645454060945217164860316083281269146569717321967956880859766926404738493813102122106860675502237730922212859250244145487038777132039918657812951393997279467332591943297893315959561049271600963634296143845801576487614323087097798867344251251496342730549621104200433860081293263745298707118252347934117182392460189884105006030432829103162890031398340658510657265669299532886240650677190139949155723774774287164085510188491281067991532135664157207217864966088580803414337644765012319103250667825589232394344187611026398461365605106128293532373439892333320838171079690248499360864650555795395966501644531270122313655670366841823357226233509603734409499663696055007531380393520366854481913865283801133001041682995610094146141941888761895633223146273193815009868143251278353673830390230799381389929404583589435831430757946793441267218160254920256699851430095326141993403316666971758300862555030569510017139470407080678567478258345635261133593371532775712946776792708020970303892308935148207485323311911218012245290730719627164575418899207927771298687432898962920465239003406738766684514319948415778745069410987079390632071164547046174255668969419416978055746378300866853645253658273375426102307853059890450622390663217532499606417996761276578862341017341770824393027174595535863678165677109447223765673204529558407269041892726659967346197419250359647553666141361855465513768722994841200103321714317561338024228743479670930279605106371807687227654841159815474803517922259735033073481389775903825796091412990939516809262807148107327869319539900578017574370511638630112643801094557047050890601023414916064819090822272254112612268004492188508276779444346400892657311077822269524532652501097016101235480915324989494456171185474865814006234069257082740575889155958602095172118086940340474871623883310420928768720057275632493351545954920500475529436218232742884884159672658204368769931174793468948842064186276898335869889282648576942124964810094397357953732591499513362395380883637860706150237176225589147416575765890239299340035113844319500539174084261633038764858654691702157967568778762366937874894347288881090418720702094374855765632252152824055565026664266568388711464378020100478137802788394046499876995188651019308046821569723520087868075595929309369015128410692526381119535086551745264340853193764331638039237221936585784428207512228186951411205640780749145188570973094791487498570970992871756675107670204541558394244987261371660962648048039199907297685579954438928134940756083894849771773780701612381632448337711193682386515828632437545178116223900313185148898857767512891281853561817327107043300225393402237417447106483341831249343058248885080612839612207758625361954390367725144559552742874946825076414165491908999518665693786549891671975931753131075588701656090127273073769649953495622472424429193165820973190703514792777904038654802712994386564955854441851789922969130807304100531972954649574701660602501764911254139746669425258369098152867653224608415281344435934938070960899278453953257257551459143396077388887148839539881257693378050920236915966694003031844822635008806982160319876862450267600857282332502532238132574824666293052013653594032010002159230160212021701653930425623539525016940858252759588478889297321085168185343135796459046520554527085478594918815399952903943720010429723276613965953938081103904934106688308186685061736968694500111458502571608954711479722767101312347168655429263806567733781072892734026548853413544900591803430947392377704894303738141656160198273373810735357756782859576866225110927380526347555671570826298973784768978676419506356148483934874941766135177667743882974660609445183365568913286958950038044276474863839067905010518252249998041582786015583495975735617014986061872120118936436651558950834892619009670932220788812520558098588100677950539975240507220018181506392590340643231009477435733428976460986453376132887159757206590249941283776125066084725581073428391315470336965511021193994882635820037035307429397527580524937044246253237032953144684249690304087963096550649357851299696269879327475471038669931355520490436654323569472506899652535632444709664826659098996183569631716277415345209323654191828535919934181852953430669007949470139487960189025074367326653952948740672148928728352576797875946879701956409542540644322893462733722544712386538833061872249106547826217857626324707530927279100877188223825458869625957578558296416410136518093914455199421078879976236479460587009035739167259190128228986123959150908461579681505654891849231087228832413189063466919212875985286566921264901123185278087139333426841553237609857745731137382721289325026305508629748487304154904319665490385738624779076712567161036073014359304149819073138701220513895918726397439656878384141722294491986345607851879227224698018900732646907447770490358344101242032409609619502265929932137361350020114632436305773866012919097387347856945382245924633000164797086683033507978345631779325629458148228805880779131304180111895443481604430362532671405755127225391385749633725994913133211619601274507585657329833793982590170017096697934613693782404522147072743822703154560587045531937437260938826928678835474342462763391818295830413016151772767091329958479431333847316639380589880689336283285014170307830916499469361520428853202658672921264736562832538222931765827148694793008885665108201127350650493486393057466457284901298713785109307215447246114704909637947452279633641552558519837463903338134603332367684016377836885170503035284965148681280079847331635904717764265132395623404560189479644966088658142093344147849925283985941883583757941726740680012139351763440791273733752830363300272551177369306621574773435495791425003799798770418763350611087339578889384397740915816291859706750044975512203999271627231990468836127217028776452444931034249069357250506689953094877084935879166884233107457210503634838975489600875438601097478462764643474350700254767210790543670281139129024039940798262645162343830927619082171327603964275947115677673004699580881386929666484717387473344155941219779012734967312535240612136749043600220539599313008293014785201731426618518619857332554682493657724202348258805955102059214676258854737218181281911133728763457378398299125361565646444622449539147736015343418752194639422984696713840667071168714841179019753356174084750515608963104803626416449361645911857677543709672019176207048223100513455469430718395784018709282599844414586289721709281967905330099261599064913979607488065641976046057711028035003801251333172998792668826813067746697103999785176500167738132968810057702045758754011696102685320664756592682425162484068046414754102399289351565623338703472474060358329387429016331676392822306470780861658125591247584992136457402133881112236756083092531325037171012529652879994585191472456197184511893942308247823373187033404592717676395410993111535449177631787448597412857753594580753120457040637979370727836411762335871301919322309602740647427469090919839164829559594016527815762821733796548195396407378911557428901471926251032499993873303314072442443482389771766248771992788852306027063640648501838319236017529379780559732876329455500854953629795928810687198215788887288332767235784555987381308177531358706421085779306073567362520674986954347844420413366010278225228116661758969352116141735489064436300763168621872976978694547911010046299160144313949274973104809043340201322224394770869829273315246133755938646052619436350593978630085309245114952647904383973799402556408516221229291427357992272403609491570478239255725847161180564041085003982165991781412109964576454682869898521740788274071510800593911341305762393472068141511576290097330671570447677637932519747025767632173726044333956112719027667015762188884701365134484353984904895122866891096948021996132536522696565809772049180628568001665623359735135982096436327233951180515194483812124812741318697664704942454427726088566850431981288203245560639441995847219548453037787940457095883896103975200593315143637891455718833547594681156994459386421969630756099998906641562366493319388524738604221738341096483539863225410986112018411317516704314243390224126832206278975393748562800911002622421914011849314630954529497126722802339626922622005443944082483289547908672636367668145971638665541854059669528789869006638701561906854835682362924833075441196275075381676645874887680670373115862645319321222344201337502676225689270124573168258551837977961418045789963241231145039602256822325522772712867205435650477995040476842784328412344125796379022753591259541739030736620663309610247276117017329010232661480616316441217086052987252815528546824997494972631984078251274694743798699853760770840283905366917310453958003134822166752479769578728486693219434354484013531995591475773279482937992617601236286556698376243235559567038726029702677820203789194915028018138372557151461668241747474066230537934228600965466096282573471412065526585401634784922092405417510361603700788286295953990687496512962965856345025940607420914408562071687631012283281149845908087075165103054335603377674882060883552404401239582037167092191030712528200386322391636701061327099340897828184729554726092155057718332089648674647907331762589905402444471992857661141375143595660101345091956471452740110566202288385612998657918167379484813868639864363689933797171729172318022541086151408597596980971650622013029947320146142527613647232771022746223134472632250063642121728586943349021396073121578725803273266162487859863916066854925302470005507219066968858572521637812831904465391956494289536584509067103691343310796152689284063676523605167887793581717807745318235911357084940345950886818529720106469767845266683499541953386204455399810852939248386322860147288209773605081809265900222063759659317989757696839241797528144742221841355804803695047568452934538138502894202925702272322974939092593915528587937008856700147214549683120659725804397787320553218494353667276428817516558416475649677634732935437734759159581195241583381482256260712580233273111962525683066856680530144732214553115473071891294467593843500060290858051282621582809370974946814982019591202137391944568161218460678608656714764040014696726846140663293781106409923765500089292564207737975865831372951296773165486968474863949907866087156201185280801023537422378163000827245035734235310442495358582955228941087048278411308577966045358032151215332620173452201193069202573205839066394375236169305848024147244024099039619254653285106432368327570072057597387660276232996802764359154399503307904928221338469045488995857662827189852109679504985336311274124320573581056576352922466887919107286518574920971517259703339431233340448055178006936027983613016870149697005858585168664907643329126993849687039248380125787126042094166535900544209634329779408613791468571088487403420423789997001119345377899573905345863524729828727500349256372317081686099759790584993236621620994115334836725875567081686299660318265950016084941242886406610111725500886311689947054084744213634018642178800051292377992659596446702075619912717401945031972058720414810058374818936222727847153673655943436135349708000815770555361695142386107307594482497705636612032036193286606303382379342814502679381396584061948554841723567133046363837386588922478136553126284492133428120132970379030550143056006287089229719182972227081964190619715583739588888767801734441897014475086442133971520992323360674862336341876055281258814397286311964805117058463135317946391104457403423713110747489865249129871593165254133608107667342294551282173321274198940950430303311533771302306813068184181480472379174143675919014475864452159098822134759757793631350027693542498862614852998970915457372170056747396936571053187399747383469379371647036686509846830809018057937196824941739520471515231903160197554736315016432351720774615944228409120400017510480551341954230684086207066067928677915414659421090049928734878698282528393826238538492010755818072398679652586719425737756989791887295623176997062721053969000886729497290915199317194704939741384714494991277582345969638239171121082170126809237840666164992667768629039398880151954262984220240596558785450893079486212897623852705043130606339934077460117869851701852995796099670055634568064334393209062071543713921692271839882154038225856103103938642739688901992585737964237404791329942910574453496429640640634882460393073326457543507156359604522076444882974217037311549517384553015425412160295542676876016206642363795230654469787136220278023806878018585177468855127233420378558350538151989823634768972520593874084344108623841149671491601618624337878523971044157688614435196410717874047220324233668821996998147476702835734779909006705050259718282734955793517514424710975285999472217306356118443506841803937292017427614687441510344874641832809357933769988531850959719473879502322816538872430096768996667682040025985076284093524243750609822862886464810610933807988018879726989264026603211611839758595478263522349775479949112448931911362074590116611660801453168643717357416454459192109220421986176978215742908154125008136954409127669821916176833691959271566244099808913130192552495269039048379660870130668181668436782400390325263945087975902377427655753018677615166053424668279310863521215172527799171334358907521685891365134413423469473256154827126248170830557406260636264163024022055866060881571609628163318699614194576013746184617000911303453092759188090723708909104681089331620032333809941255962510908087245726929011713997777666495540254753892234070920770655943323571653660504648804410661271577298894677150472531575707474949088869945815476841065558882709856735111590426848015534925008059066911792689352297944176212789434975698497098523123494092127613103640855507282758915451490835278091090987597014814521844510145665846178986647902115277855902130516439461736638683603216395071273679306075579667993473389552353436724837356563170379982518006431719496455894550576047798378262101400769670631557858159051467302546352280115060808916790830916699627714220072678102368231366013002704442502987326721466971600520558144465103548338929813647970591831053714259606290664882907019887978615393707108063055565615215748087998905975988905700317016565413194859571035489025724887482481155106755699842326921706238471476002919558442484128938614257791390751551545050257596719579941493182299512425391907724242413827121516193412430037606558516141215083021641190558042180986350516232028751176332659165052783605050394923972972909118538014836050443953531410618395045583523173444296879276018393588173750085768341675592244808576827560143717854371172556540205986100500766527290242734431496703313462699691015249823173692965869242612857171441016810775359746806100543660760477130060417392352484812845811534732831723325928993999217854041766342517375943847347061472273893412691670806261293750163386289503160088711591114963564446952148593462823870309290684448658722581991910210316848862422578267482324753886844818152732749013589922617967431994706403393852557341617858394541295483205004226617686802244574592059317196068997959373340875452252527988535592111985124947089822354723506248872229854869587165352853043219800635667567904870303368631517884188081444124814052018875349106421274346115773583393561385982038471846835681507692967542652996018277412723502887424056059301686864630206957747353844562440958494236847098445093008729137598700110431786683493088334100630551826802639599264683958796064657206765380261148777219148856163506919058122043280126221771570058153811519398668210858590242592654262458233170916185756096336129270509318195274191307514039951775568467170439011349974126223414025918273195560941204323769628821677820407867925131443191132302995402281910377424321492796630105454362214029583932978304795547327245056408762087163840238505131203514473195749990998786936662346807742107691320120622909138615326247184607053913542503199081139243921627057744374313465139863050041284954731150003860600282479802845273236241970296688288004632144004589789694081970985707873024697680001590509780951570918034027586528401532049981448658650839522344984714634129972060809021203319111466498104405758904163644175572535687510888168945223167860511348633056748075812069549387282389524991393936507232098352083308553936919710587983972891786406071338058328424316884405893809796957959582577232254383109157070950438513136509294890897799003669183128100408154306119792142230452532454493499752481689832595642869437323780658359495162931810821414160532705439531503798237520355116893031119455366940916873755034525287981450371122998787669009659631936592929787835551175034049980167599759471091341514341717650771392357103513301085286080014421457239090803569759510176923522635662600406593328426083538467522796160691795148305488048415634308725093596715514805610223173707316438302465838169938160310849403976537946913745368572470383435275686982090606914501789955219280464859483613502038847389821317756424851180551398699275085387207064030032512201053236333357897461220660570315304757965621812804361228083413811360537656740826382132085499525360267790110407978416086272315056922860977834933015225522622605210341060510800106170870617832606369231846306777910669861001665655127900363545700864246175368998867448536563091374339226200438934368014363380510431466941428789829753671084216676532281119823333208773434858281922019408929633894313006327608274046224118363605252892863304268755753727381663921399750622032741612956144124077876763253527597579323373234171883298277001668027052421963432333133013677065276947817341795871439300541345850433560205846532638934906886419119465228786601556379769485499206570212968151415153600700946655543400786020828746412090272758187727332259278176940213224632091255993177793445593496486968788845981268555895357901073741704077840435198415591428660114584620226100295675783813444946239570496502221416296076238087822154567043985085501881937836757825628320156396243798602780010770170123637906224556225632723421258986363841160267127265290580957983337211739569407067223311060735691133110901420465785807802246534402376624492930388102500157040780155806525869956349486450833214577255336519709053821384236410380908478246136393464485061254860988002575969888391710096002423952077609598145682199463810722751281564000701942324718912092794919843864657843202580438400283884889167340823382419069974131702661535708064971346634173265488924900612328039461195393746046708410433953855303914443913378258752253934288772650664563287289992705141081991247806145426200821436193040132018262559563959495579358569205575483684229314420172062444031228345999609191363618944817305874422372581284142347000411777938107740248687878533133271730941622260538917374433474598623748762698813496915425136978231342505433863755833250257234657514900482115421595373623697666623402330968747198094287946896175328939195186941095816318712599460345450003096169361677381095992569361110457551124987542737439935474860328170359957074777174394248925893570630186502568503527398751762549927000026283129529592669175372674275929330316188708565049960897149730554829863358517314999876060942546195024295630233906313155112257225915671786748134996368858123306924330324054754314210160285520328529274617088438316675461671733905431191703697585471354638703625472681696095134561046019754356754625101387887123950044210896724481021278285196038389638808709035711857336698602656303257845547319541037374627590649096013473895423663968939178201901456930794807924343367567587018903145606084754057907772180597335577380441828869957214020012891793655693555972765768123406275433706483286048410722869149955233382481420592764367589681078888636025187002198613422498891607216966972414217705576403688292446349659590433414275763620609914882171728948322866504675407159684943460477752252802157780713466646198591101204145066010549968857731776290249018741819485722406081167297295776132079469033155322695927783263177434197751953541061697840294733368663465143413079356535351815741211419751810773770152676268748476046610190933775156219564972843459007550138403895398270065668433168268139919831490644554324289086114935945711630533226501147641619985747925503786611081237492221376145256918075181475991890048996708809179833212840653161944724438156977316209857541293374523535943277674014796434968811497298052805232583512597628185091749682262742145163034168905095435869777855446260461160653919361144699789900032956583397223390087616633203907554856454416757654506460735493089977880960077146096133987287882727088868959545727489376239739063893314824649305648954054750465285441907016923255947493549984510223931256349849600668880549258553927826802467204680571025903857166144629388971952004100760553031486766803709344360437263933562717090280881609275750739712194558470254783500197195056628254854649320154349315253233229069614581262537785084870054127718493736953554973666191690866309718965271975793881265088185595408574267209486307306321918537139046625963605164682323551744028606329544243723780405381768917897565380971867136329253341970524791911089138793289196981277015188460763549298873906392458051371527553454535324628921976570107655286955019459158524661045565860312877765626346003383067525566826279188924510083348583636846266214616026169368853423828551117136322187731636002624944124056556478948195909157452794112390479337137386290177474423374788700087416441303303739977815533506811360359196866792967773205484138170649499443860418025116133996212791747937330868408969130461104899940857633476540949343231270452629350505064683577443905665994567063891437601265936078526420987048674794538861881727956982171798743085467573819650498056992594924881713894700131149320123175543083555745456858782144922287422643911046070305473896761688782926571909083580286201287534548710310316309124263818362786327693528483563869562909197671365740243994126099903170006039273602961496765465044556787320669730460820914449568168373161664505251237225890199284712260978926442982281950928101230505943211849845191603053525650441386961929225994574861062735476698255251414492507834191730136668192421851131825124137262292758743712099743847454987432549893271082206376669534952136492953137189859398372714298390166896969276214946882336958144612821799132251104480316433349826376106653560241889658647737470263145490451623907694060551459369404631378076008951505423268193121542002737771677820197181422150617767854342023599294071455011491289773334417477021202980579130728296678614660234975242809217648327020970895034621750271363048190871703202944141429536688181367763909747659177701931052303989120575160411594438461819453324719526794600967009118065429924299970441884530494476943199759987903318222400129919843514293478631018373188541016958810416834919343929203843636228053305786309722305632612234657022759953470762299124796764891483991175590599935035652679200691079360639090179608207059338334139983232976800396710265388793055387184273928365994316898005106703083981143097877481752933950671204785523496789987067398692488885835212572568067618099750849717069463163547364002554555625688521971313640523444516137033513320473578767536817003415261862908577257135192331405629044114508731457286864003645701824139064796027732596415116799995756103853408981695976963850241420898385623574489648156044784400883831572367959780746501486736733199553114525909978199317341698807227580736374411584424144758585608372977879017404751873591742870082890138202058302352169318393842363544040673361612226209166407318022680212640353124864686171403808863732478532049622577281980675880926807642777916214136736784898599366140947279039190913433315900549208813113466009904633386432891060907874464816773198428770057107289717310238309421130073930100895071581279786771809124854900428470624126162774181390973329254622499218942683375556032027069221167148731616726651950571850612159738400862767026575864312433159255341877113476605472238062134861180557223512136799244434931257632626175111385112818877771430145310849149149650542823802315125024199991115026205063811357775946136494459398707596354598200479952111311999097079060716251293130813862373869492919399903912218854373697462523435262582860858861468371816764684503576418774149267972992138694419712019290655073297372134349175968010884965407135921959062657505996795904477913460672818329009990792616753416977029071343393153758145259957452940611154072851949165156087087314649789967594709047121517423360381461690106422740894415557320421700574030220279383582321444849638056231372134544041165294874958585231432807785693634987040700351770623477429314902179929662752578122327132980244932422803045328436382913631040509767344357126377339692928176526619741702026446500270333049039934918019256689951883819708242425911582149066164883716616775479629241762205076209924902055283906921863192276404233246393069499948209764492094712458363428172434415602770803014644593730583338210888771100486191102868426669869742596213079675284660805243284180042534569116064940979465775504890181841083116256611768204938838127280151827694527954872595529234670545422455706298083562482930248890574150462506277088874595309444095952553017226244528946599927653292105734906132900764805755188607754696346899593841373008108014177182372291947140492412774485643061818018926675376543912859660220780429602566812369040959750696247367836656647486429242641281935353688976596287375833951880296301928489415641630428596302883921562742200985734738142543792372643742152136621324134324686192191015491876054327078971696759139313256198632266905728626735480185956957002967198244623281469381366461427732166829932080538263233056996428967420243756526569443470279667654008057877521685267920137020115355968599209763119717385591692115342304010525614843810209231317028746239652671851009320650920611575825863524946328618974187818892931836411322811751309614487355644010575297271587645750636343778525828528789073453835792470274579852976010113975933923839004101970346492583601702470916245509285874280686600640386634166933380420473194440594228977191098469602901219567806648869383521131274550619470770657439790624913822250954860663930727288174243420723190512576857666486676993909561475305346231190348422561004179644122131937469252902575624766943190352437470308234793874547514354058694455637492467788742904326225688368238695060743571305623138861853100930153015263004216313371417504871014494954612434569057763250986094776123073844160202730487718426014258103392451646393518639217696202247633538236133826247282918156924836810459117751517744939208231325886698555310146471521171186660449906989914855378830749361631602887066362042775051485271483607676714431060968667520198827264871225499571454046211451175509084628651700394253639674281165594625120118908578430936437097835144960994117960759066389147111227612910549369493380116007984841545370536096692947782095504827309767414359400597188210889212030379641605745781895556642644913770411249001472812155204935795267973921255666997841564822790959449164630500500580078017205608743119886969261982420226692119177874416245825678522125495866514252001536920666974438850473315949627820817031723165843698112627416797641991597817393160528878227602801007798982067781642713887802473409558497852364238693058398285667113323994514693574675809736442534529541842038671546007463723208283476464801931289002373099012113662610286989002697936311552973395372451351804650193998268089242674787272094104553117969833100022905621649513621746541593505467587893010036059046411970334301666384238604837905673540803795182272826152754911641720422639720577419931716680410609013606508209514126770678774151942733745268586075201323571472738387440063456900287270810234470154012018309260527377703384285902991368269158787402458728383997174512020870442497277987679812274744974332244540403722160077889072476578686192608815699909996030614749840187461436089939336179385203182838389374314408335123998870462309690573681131053886204274063285381566668824315910469665019897967486723616714317049874612805503416290355697976439296540420595486325976064706447060821614337381076699617465551404359360890425279658073429448044243807425167300594251955687742625594693463272873716397430299619608883219675613653067689402345681319529957436862095214655539959036975608273422267714829296799019166865452387263699486213661322742401185703000310605549107836476633549093156819410976934247533456882306862857851036773692698955401135561782157787881952905612812196180956723381552897074003590922103222246395112402609127006623710434335496653032605906801469593505323645609471141499977446790407085400818882012515238383246931725240436500744883808977557369489924198066285822198448414563589791549219244789505833171882214702723113519650767641826139404301776599588965746666674953551287004219046440356264174982076306935519546215990593226992893413526723990049105359383879800342721619701488236491614271397567492266920009626411666064062894604789013361371566285923655770000183774308246902652604584452997632943407881499934705195719858199882341038273983233316676234041857008713661292780021258536197282033519654355981888299475055326678581493544511690101583348685956514598633770539676599703312909752469592951109914886666652613196824410066204923793173722980265387444052051683852778982009286838161515111579965526039109988161415326992493809047953511349773469737664967672461078316041106415183685713530972903396909225855547392828208107868766138255008355117640401227774008137718189222973182964084041293114738782122578185109728893235617284848705962491008194628051057739138691091854983345214431820213464929161955857671945081529708597288388699589804373359020719555830095892504771355737532038549180122000822038539210041510501668758000732652611926499650936327912485401912312722223108637266878161491675670228477886690101697937451749029074503593515013536612100040866567108207343593230888007002285420715064790826252086940950327940481724491912937647916986778990363943947869941344974948971667065287479222420229930113915992560803712943663920754220726862473640582545237417985559970146450797526729869937679259775418824845288265662623280648823763584958916396545621240170232208165809082259329524884295645414270834450093030913271666196252984172562428769315009998875481702390212968581189992673000532380116561374099732895490632788418570960513480655236579232534424717789739490029758951210472069805510188116638141166094593706133825004040380287716564567008576619824245510731122359159696832604301826856463362657521093012632856060994889752795565883645577427562648178360821178910326947429804922359384904808849960277233974587957215550919500352266103715445195420320793488600018517110601096359530099251734844673532728345373539758647769068815878509235876782527199432575661428202363221954603650620023136530088184794235879289322262931574150349481381095500971897011786259052804007383394036539279916289800630856156728504592219114923195878286935839211933321503260508033185368109767552909328278736779206116635342274323946097735934259165558340370204528191044909410766216766053350052891692052082895977977385871162057370637399414450951708128921495701480189291290799378752362826649386556451398647199452432626456069977470846757557204241353482852533705313734734910482820913293897012219176821707405008701292859159288783828420552873397244665419414088006807920409238478664648516026071336863421836836057199450330095929569266487026077957376989962453792715468300883932571645958920344950731863077424986760729056517277671686087250322194867306841952489000866213568417156603622247977779492859425470789743144877856407696016812763101217210670330493666260571130292961156690705988296563162405694419022808286890893080224734812398012278525668327662879244511095486954636285255696288439102480887915646835459027307367244087431654739599249347635858335751501060420244287700238078541750379107733639078559881326709432272724172252987172249923719651904778187822809851028444228616976876366103144235808929540662771256009418305509428905355799583696966331798940562153127505244214204408861178609942132961372039175015035482978884455532871278075463147554836694614038437456881628944976388387720302908291002981649300778620189313739796465874929455018983699874055162051285678612939612463454212036475123113688702507822471243825389837245902888722168103034234756348119765217470659130772746224704702724301686999272303590028846056282851176972910001057987097305298867724037654133307413178495470712099209416079315645425037352214228096053734294955864015408997348168042355419180808900489957838053667149085507106375806357463661181909784560703148493594098014248945372940116894074271344999490483807412148368361236829332956163697231393910463982347738516492928817334580615740487964772875536156084727522930213400202791531971663415193091916653966049143281588662122668301638280629681815980776271130545595829152008538292400509598332183585940599840297620722880662083263311401567709699865956727712409728986238111555000477842377524168614215415987845149239541215904621982623010736655095123736743603449341214145595893495175621610787880457764973965996292273390550714706057281848574504565016125678215925794000506442470737964707640581051367232447879515252141948831607814066197827018427178970321688567585470452071927860972840290397375984295990170348960401566952070936331439802666918402841398361237485331242318858374837906481863392093813857602112881502410649804909406775414390177854784593244129496568105178618850704217137366015960122949480671568794043041577701687869785740063634007389056523459945058503202339045346613481630989416191128379492597725326163727629548649630737271834415146483386626591228394518242157459297790514586292805069993693778994687376120223777665253125460679075360787366717341573530021120517610541445201864171056757469441494662710780487033528313819954742870119554297425269732050560575042111800520301298167159520912954274283985079335233802297485477072901358461009293777447728677911795204431498875171273417656606489167005118314142071193410355926654913737031059696653200329482574515299158185763565100618864778449432479753259351021868961529539643825840307792571204659764541001716443499871869504069676421257379697717026668316228978266992478816258915415357761504597081814007407765407232814848177072803031205891207531272080494059586051742912228133051669148519038515430015823978708357954232850479111578358106504468893688693013125876297432358835276453830267364683414281647377671552626228182756803796943986220014167734396736785850494014761028614756388226997976329095427806115811516439627956284164700594037981746336185492669258470152614424411067568517214552111444271136429058339163427512063171994812488383271993031608044186569336090718541827870718010787777399608746902553868238241374564616618766231077429285912315139885610307850113413492618939820308476070839864147510220472727523766700497314653194351952295377000569325993374104088337472973812860917559061815944299828233089965175864421891274317671451415760323885000046019739415616716320888757020298029013736058425256082389342810235024948993043636600276004781920113526131096021046453497027751228912235343524328520340329685831823039815560157278206882295881739065055194767330433328416190340425880521612381249162468407191894585566030293973549909143338174795207032229136109410874868232850114228377952893128711795796412728905446714297530629874044345382929301263174482316868736391413894183979915452268978452759823712042611889055515111881631796673035074190195682597273188109371233552747915827337215243472394299618201356248201743149042809203394446482851105299330758299834496484346520371294224757809097029251271555919389629844881683902120515397529088682215633121955906816639402722165777553288861775688896475965288811712889016544742056393476402569545078552974107914064254050650294013566790225650233058151180915081452653516087005558131366536965963193110990823340059586410113265613971394541563271252063953549610112115903300187106955132510800152071070655966635121709834412701207320084568184933736002212204716584352536375059315915155331579624897970070488044324458699908859871057899405408964408692577994403404050094301089378851362983690075981583001952813296811544058068019734839641399923788956290140260638397295207190109267548020625917815824917020087583087495370508100909915468130035486542774101818821951847297137061574538304270951525446670345325006827147476489747925980438798732886904371608507964519495930480598426456429840435651416058487474396395382514011990522033147805932582825535763373802384568206244550340779903477856135351744471776339317853439583142374563071324800507105230638519936692101800918687760220427832867123477530265299521186768923538957485127135763048380551798490817806796801810330690960446801992152170118220178096658708683895666116213717971754425776714632092924664403299400423750769519346375710396055982683938406953774716461595995486052523874270234658529839204712850634467726634934074792069629351488184268836242318601976539159195221646934477357466794183015094305796054112750008842648450149957491187737200246416879805160683955295015399947683784955993192674074062364546187289996648510994559730089657810809309434746357117371931659848612730283920425705038610563993137530062871902225254571537530887218220194608638596207909649324943636991354720506173427417492511099934365464910615855361612449306907404229926064838897302602035935023427293026296612791396228999803426818890897260340221518104744223738473615586637219975989616764310617781184835203046567748668988528627055475774441454053529890743067530643216215607123137975307008865272020866077781294866074791664355093692007950939709340178604223328769617661768515122440223407587723044608829379375165808648088062514112921435244622561406586447296599525663132267952931896790490598444045438936414043383447909582116751065003807302269086749917458609017041754815965697748059124570119198898869674878109476748556308020065770896871782761415260578481462173783170108194118679520139356342083076986326244166448170235340754976523544994798398767893792950648664991884147590952859827975349048132194880055858345623357749957135832806483938734058318231148849215332399663986745567185450231233881902315492829843939312531637048801952233976112271844075180751062410192512122183707022785340523839253096334121020557905978284099838434018745779517273317737730267181098476041073284917546421662826141991149636895408893213084156963572663096440673079936291635604356123376147389988910595838924890869940236829019434497239894255297283657828675927452885059434392916192275640932588186057512869846826097383997988474329651662876128775206501325097432029395529817345888439509689917274257408525151865180941059710404368347187560597344925366579882079200374948317102698882685308449699550707373215567205849877766593993954205635764253983461687143397449623475483103377482192914659736225339294693676819262776443706863542917573827603315500527909858347941674952005906385205651883439619396136218864557502196581314506136761429517228153158937628364702320091033280808586034640922159515003016452907222748223321918791843947604767677652062051924678230325356586395559500916906233371105385836612672987807585659616400186260912289511529021397013764829089509805251394737181297961890641486709957390165498274938209085882466423666671646739056865189918356580327798949387493494804174316228941279150356164390084823036406435317138483818949534339000970279655230846453836943628668222859264372628046582083120549455814217117969358452361244656113286278698940558633337653880715137181176175912937238949882141839176348123595699111404494125473102756328211217354639974870304986490453873401038550557663899041520010253386750382683713514230134291101177688165326486771691709914683942829103616828463707278424631434398597716537162735880924663595255758895230631603932278945304565023334615704362194650258774585400196618184573890206697620433372462043391014967162577061780692702337241650584627246632703403279289850437211581531277562850069256613010976052291719141244508938324992201807836399821853198759217851957322891327087125937635536394176487653107318429619960270248939498654380138442614431450112117895709408476989699748696939917540784434976355270878244967878261159655553031533166560902117043791296106263379578214701347318886994842701891323649100841481289625415548772712343998216600748243047880050399181731752149117172800083431222279631842139793731258363811924181716937552168057686752564659340743925079537712013534196500256067976813839756830523241404691681885529843899627485514039080944237186296140668301047772892618952924954757689714761437710195940153855407569932771953694457910718291908416033074679753075085890654720152550692307971375867596396156026944406357013138071145398877650877704374868502579571866868576986164492287818784762905727088156209746912676078166232539704992053739060513804102473920287234768055859422976451901173574182055128037893010494930393760712824374517416085396459505408457670142793034738563528780796304458689438487505519531262757807336595868337213381377406143703066948428338523518678200480214369144984781754810927695347576519188565068701376557521128509656011269589570967661351239799775303215259013867759650799975118863502708373097656219421048929148309162333665334247353185793514925276553531578646227140053113889684122350158609386577482228015253650714960117744582189908682390011658401869665428940537195354611834226325919627717453851263026249053492263270673482726422181626700422178059602313563465913914154102326652625380671221666384041898671624561535606400637155088203122914443165000670005579186530538150975973478402236001436555278445823046284354091534509975082312099365102049488165099750165641160571733989998166378571368745513555661900380290726988989784283516885852120436987957729458227460628186197048275393589081096954021578411758624788154078350731397799209125509809171081474217813763226855223571919193005991972530098225032349505326936594142890756344564556428811633766564408551616490900873135663054266147236283639577953825494435675435320409376950724122458232862486596779661336366225827345629319557387864874208289718377644252961916367937779242145781439074097167760650198069291233971723629184585854433300060713850383018256619209145108671030486828480785889480712310730862143237296969253328543616751764404329565154449978159590444975528888233210142103903815431529426957920679819573485916225425412362631658034692937230203265531283449729564873467890841156574283280918214331733753675281177572842876091135948022759999186207027548085666908142052559110066271158060418377082457236382230666049738290110551706988702038426702096496601410617773838615657342313883339806331335309897323646925203970017825443564449151395160837891917415622253883482753151440057939269088507086921288171589897055335190250664592729346912856412373479412984665643344122473212283627283433983773721540227175853193283119399173394649167362555050150904668301035205816491451737191322193536915045161405733907082287108509685661884271455476080052122288700984766119047492393936364174249643486592094874759726103620420921022980901039008677003272690170142609393314958768599151255513836023967779273799017637684202119173893082563273929307739152216400234987682322766273726774208558984338808222243020188519878628773386966146555140037991296198568813375632359458254618380023588467269164113093656948781139355513928350891426012235335423731001339229291918089250840416213039274918445185038194167663002684945831360118113328561951732375260691468152993739400508288152693737531890558179073069387429297106381708236916376989187760062886686127184151493632071950100909076088915040921927130497509788377681091805622928634707933338283801739530934959812943275466999866080376870823163860328115733378655924265769514887527450461972702617504579234115952118637813957283385481858483510389931844625543861466552399796165674368398355823580226865820892569767473426112672175474290575096534426834335379590325782958079981331598078497611325710210025836983810135548478627719999261633772944678938052375923960013078861195231125073767949860230558732086177122231656522723805377334368634424721551402922992331593096431363177308760308385007118958151716496603229479197851540820603888392910199481541710447664475012847323079829019629251524297638465737556776414412099160839436461241167987629132812691653326525099087101216514278474460115806621819550339882991599300992439870778508745197417261837156140166434918670121971904346092618861361638766672491608793295160683159810477074620341565339376503810372239256142257893734842487163733269012039901077646571525241134704008954071075020547619615423760891291723413277721995066287108362385715643150391820516365341229188040328755908051260848872520037200039837431122830830102337796584701612971126911062079529761214765091034444511142131981815572911950988643378558762992492528643995108094526702129055929120115875383909849705296287972018440944199042150320680435058690458842370291355945270306271803530431930659404722012431181952331337762723789774827470521696872733787840295182827817139304057594804423558076656066101835182713390955008683384623202536289467854123925832159951015792837798266297542175131485957327132878792907207870589125190080901166378369129253620984121668226407930973702280949604849677669830274316063919285206408459520758687491656858081368317825037969483462647186452824723115075521017427691304357073536518625575964953876008766269067231586104193775876426122848169944075844694050670165622663620852901567965119231690479837143889809503698252976139686634617678892384023504319110896212107654916730188044707992108705959310329462749343443735092498459279003124291153623743020355198037134734003260466674343946464047308440623115170042377996095392054923660868110325517891951704358850351167058806849575470895088667417287639901198900618250322276001795578065260500155200621262955400736096664772952978123719198597247842466000875689752068097176840669565150492503733819275223156817453574996056938567886946150886368523828273624732528520170701551299401003821087230052221565062068236433004461847777732597875714668002519148581532772495218527978578424714574831423493686431754042968461577657878504854921151446393534766466533872111298605915342893142135177674860437608796726519331324715658257073759591368043230737778389613752787149420597336056989328562899092657558011197049507847487136535758171663879758388942380765560180847826791143633290686844525811271067049314473357261366672524826786693751728318196356285934423643736347895403897107292217250932896088621770939309453957689889852303590611103078790752691118154540482492699369046129129716728362421005746289003055626440072582467119036222757976969546647218644188823132024416124572407482666486903722622479820647305306026285308751031841097417730839369771437237223778977009153286389065027232521182077083605581800184632618781262273920820262543183739712647929810907819007275348825350104877789746628160629343940672459048118983202799140719372910847282486632136430849279047892288577094361679716740837630673619417973933680320173160252478976771595057397495646757281405728605695800226034279984663356626907800498620759101857268700934869936848611591879425920170827741460423998346557438468633312478121060437690144423414162097883554453809859880644776489905232631904420483454376604829041043800459031053388914242340984710393385931222631859043891663207794362617597637724432705376691239773831247218430741164111001713333898318745665709992247807847831607898643228159024802427783526107911161810470620499739349229325851222535684622743403114284554638951276432152601060055532374742875681729630366432642754055042773714670380579137753698181290987188795338915785010247504469515962130006613071612540745250657118148147730992252774622257083261258366388486123693164296392505134577381625031829695322824109364301064274788568690832692336424568241257610892562157680382814886976229982443652378067080110419402882042300153889841440830637256413624541193249726602711018618574038580913395977166637120570341845608143044007117659973148522615171245971214681026733611297390922352414832570019632384255516772672120320778828926956865889774374649513029656148510446329722603928207783610027594432507819074056605492905030027523812066799174592823279126739039815489690637390457691397105087061198372588936906649050000307850936445570891762518164512770193618375607686506181049360657704811245296656812574948531628128390094004694008227926690578026317912155887935907273714916433022038296236623081514319266677304013413085074214392317232095698083613202401863510618318852516660071136105576290571395467458422146413183335462758946840966979966509895079573491946086812766189862552908438661369846398103829178098614820079298517511564428082176250094171970223200988306346699759012781948836991695767731271396714268338244829946131436727858160179478182813186811723014410482647738720560055836405578313244819599075867200967720693034716763387882863781311327192176515540352220469156243358238177349021115491906360426608125348014198205327806774546532151446324589147479217231566386220659928458888478877753142390771449990928438800854599637234483244527317027295993765532285381997768614243144049135870472189795293081331869713126429003091028456136953929106855321472881248951554942847261446577168781832019638968221007137652205200617927152770275782803120082856175665742579781799061454246927356302370753751171264333164172768246329122851966923895477154810156531321401894189324989940268887546214166519274740341346006559073642175253704970492469744214063419563982949822660145372317878188096628655991130367047175647226663567720336624701103748704310473181452147607782154261783145639202642388220803126173006548546456455153993274099173350770439219612474478548683568445173443978370041251727002250924445789308009062633187858828349329380346052124644650261530886774687099713732081183958210035260804620276362329755571165345906637249504760764332087962100118697992769667500413057753112550663624702684987551935534188844600055281083722403840940835871619082002801630317377649234600994018347400984569525881839504772863808799856811356089556689613524099869388232638502609195696232789117513514793670036991544252480535390677953929944071059062281576274133933444350406106950647982531801710918473529779577088426844045381596801521311403934117239839321648550276606300875936407892797987612112187416486480571168708115948260982310549902948322509274293995607154304174062716082608345208517051822944363747263557530019315029804260295504457632219299603151486238456155491414666752667756304007821060026217899569693806356126718781932177715070553266573042284738414020566955181626682143414865909375541801285355326384899397984484711655454545987200866655656082066455402638812945905304390642189304751844721636573395528816512699314835811131337466223090192937003251445060555219686717428578555941582895053632460235753210846438032957029816981067917144670415718501129450846661374687686642548034668506694588900042374573987271625945117124395169124080020876405133777694876003474649599844120779783455500270416467081699512769760159159069228620525319687175641179364756120779909759630024213328609464043123389645909103971322057007052260937362303274980823395337500869127838823430103842202999408138993869946038292525082460771916310366151286335475231927450077869174535237022806472759914621281079527061690820443731032720607539614467268159571357114923964544157512839358129941496113481172376764433896878895069897217978375696092052430128588586397979334781833113774969931953603524805569077950555494364554939694050826908149650804400089590993723598618697535146438050227388985932663232395225244518046969358982998354633818682203295126744125533151697270322220068958115276244880348193714326971495269560289503806620007996851063499901796845962532549834768879714794817059263411751609408040773715235860743730979763821327448038398813551227950098645570369445455524900465498563626894620554098335937580560130657205414133415809565679793535562765785492823972479090532867369427928495832636476092654082731871468096881088364239695829130930325660524680123554623435245461479366083589412748415473110467344886405924275185514385217311137504998602208059757439743229729669538161311494905079011081253104560044163441067357992503613456936057490306880394497717868430190818395916437564616510215273686418046920663918982512357434597577163833304563448398098812161249777778725791272343716986007978423130811490876882005611002605112471046404586918533524109532664767829724525810540438563847118020004250337836773052091100181947087413146740764588890916248712873679820262222242946741852312646987636307472971539987785466123822793573028752371433660809459905352418013940457283184375404674016137548218610945770965485426228423516638284248764236085196985854915260333653975890568816937506348536925542969678882068634423799380453650730733533377500828122066048889066571959782859256083891365811661607515980725619159962257697506911244105683540390557997147344818686688225154396085700325707734656535603710768622356254653256820750440110688987890753169167661840355132149187417246806611874145699130179852944546943538807106879769068554679512805754576038776000602692959941573353268801063543703198357334838500343091269660590330384408059159179759349722344331599899602778022547497496752132956100432162822839749372223249294491253756793517830910526585958266339832121706306010411506039339835509576609079327261670323860713904812616320971948954384456493197083143606978719096018174525373342713462296908709272811538658250494994581075077396403561278231400926560600472812052826261235321112365072056038723876610192535646929584449766771670660791004841877220609756178594330570683946742164528671892308124716261348233351275547439363684949956028139274052106693152124317664102731988996208313610308829387761042662737164882622541089593784158589499258901253837382436825509359543888600151157124269248438920659480616691276471180478829432236838514123563240674113809101776775082905094387133041735867759464894856559842912763195347478307186843232007652079581651269412903842268415810594812716536209793240929210088201867577223923424799692024899351841608839812624922627229599644197044243808939061783160770360477956853689541333986417994780086606667636262668963124168591647671836330029172254400656318445948979105906583684737688465825762856426231644965381538292530886218841180269724493850583523347308400817179993452528022749218987483192525751702766865836640284479408136233916611140211391239067169865724567995640602846967637599880817813251368493779715209222732608421827144582002399823930453191791505160552667724308369284677969134243346926953965602203605097367133583792042329985701748069843073117154564862920280530911615245272014834497305733443921935016247178370953741422157965817550523633850639906400218161342068711077056536036649272119430757953120523200112068495800959625197258205441899461639355143985191231752068127806423472771653641498779058152696112057022147827603923520976376990550060520248106444207920308054050437157371693289919195263813470775382204487064909981015689708338832059888266404449376721647499575938466946397462400690423172695841085861430455989111336312120436866628058318851327719102297945386072628519674449622426899907615727841030781896228220138809178806857608391401350788937117296209011998962807557521385627743848254093829008426333380382984740141361602800334435047910642080510519561368223004215812754283685828954687874586760075954533080854489728509302067045481492415022932833079260533057736257866225285098897293062745661396267044993235131270081687499267119898982786791388006888848811901761163601624120256690085943300547813990625174733691138218147892157303966779713258478622740633935984471742371813163927507871292897518301553264326034560454276902884123779264031332262936857410398627877028615639784241907671987353801808161882967768817359167034688127419843627666118103119236300296852666918250657104882857437868535132462748373151474485729398176138159742912479864592430586709779301834718831911548418323988789381344154121433066078809898245400955035257505894288574792897660959387341604920082003137777094067478127005305468431525264195035617066934264338086440768090360773860967259294127072668958511075614601798054069235629203808568388194710209999189962309226563305782382411884230017051621059108863753976803241483132548358404843361893441271182593654875297997807648580275209677227752806618900920445416660002718554623539594487358680379576359776851565677632167289786007444320760627081833755131022797760736109748265352270873379448262996462399729590992290447124053154261860318576921797574856103439927507791272216972726802107984477606113205842688308606737690820577919316359246577538816877632010376280339821555307244705509344132110200158367228077749909121787882367678638530028860726210773299936075738897819139433672989252915495803804982468746464744825139090000925067849528054105157348421742504260135913193401746090907899024998865927276353079710911413780105154765548194476732240635881667083981000959183754389643243677566342572071674028499950590193799206238849514576736904309581879903795782958063854764502882281223599994549021927259217244924659983673310917234772768455734482513390380429446772000364458128476489764344132192088079775151763479894632507741031511238725666369777446779219492913347956766477959254674227579161319649939415430388476884208378200258496002759093259105375178761714133989183633552509136219789748180719806203255813527964185926350346577396583367495333458399951753624343381392460237143369424703174074089642838016215832594409251294956930951620346364672459436227028268288557711645666883609373456352365095859488426878244739522633193673533062866921803548423467610743009778401747421381404549151357425445749465239477687673990360916513520278993412638856264456126164043329367216742643651690496788504870157003977133782143666462719582649128652590832633016138880232194441008841744252338166135419279875157561003482040371794474615378924997240461483953945032364666927331737525996586987589778437681087358064712335616083223314101108577661980234002199704580376035519338679342803584988703778045318490923292317381441224260330173368466972118631589847301445539104257392483275589631689718739494086924641087170373063021790622502588239407610496122155685229584754502748346666445410100968594664823993221328555236390698694615886246240106164650530141795131253053036812333913241969133930115217602190436439198939440022595365146191982712001313473714649851222536836249675706433136414972897543208739159738285898786249151283804458775002764145885397271884231073953163898089181593386777595352880113023671424224162331164886074191607528093894242470183998187428664057612505423788450895164553561388921879246790244571230706867513513348462597414254941179744556492584173068420626921718565907188614522952308474472390852316835814513390958276745706862815963381239169036307226890921974338393834575701202132535650949893124017803042244840516178233664499846620573477656020397811174515986440091628548077794404695897526280411480500667449792464978440598694797935423364899895552296020253130491438774064153792944242437627774358590518437445697323592250035251449276945828435020410652039139140795710941270816689147484026622852280910129036493231184900104730825771530652250163890317685796260108248227811171715125671825927293952141975736193746300033556384733037029207616894599852906467782789471024945869526038545118639168793545439646700645629847510175816034033314988730550788096792211205154051931844581095929190625152428892921055796530007786359059563385307133745506031640617866083772378166474578027685787742797175335896111865782584189709546550212805139915541279785173101878807540287937072283146810199556480591738744905109246963181954951614854515781189387113517853075347312099462529805301261860179950116321990139779534692399324595126344172661266657518770517036022875905109313791550755560317433719887848069718046765283608249854941400558922265487414103859467561718861830978784515387353421061272427311075919618611793685106484535263617034897705695928427911469012291765356828308080233175247033698876929651115816651229126395367734427858823578577614692436356614288757697583754147241429045753383246553321084816974882301667517707881511464080063623441346198086749463537793057857851802177691869420025850392804613438665337304714269632605701657329749147227255624598992405274478132935181373311646984284385991505109407599737325874210524034251454207191690302854445293691112005917413436584627338206961554432024027822822180134339202249969029573246732630020288053882788481523156856462030249960789566520990789767998120238796539875047663160842948698298244071835234684295343557024113105612303818772293260590632644232298983427542615032671912276326690665189921763671892164744964130500511418770266240936970092948699603236958517219750607507344665309438715659183763339278730811867863312939607011120431693123454173633137033412862809987577993064687569450045950615682163350599254291423585945470728808408834472619687751758773142703752052866388971811802822938396645179615230536692256396604423882790322016380051862602135423158603767276663587940914438539918435448823258565676339649055270518342795876774499837716915269113324631209172868439614714340821419122106613293189096497758844076629514220957634532708521230162618614205830540321557030981949979470663474736284173499817292227983983915800632100084567058269533269415961729046648214966554742937654339662814420553705613796999293177001470074807757087499941100605219880164909535143941280843263568173638219405962890860862519510813907134488445191712649325728807863785973897573376335007931050904958092825752052524178377814037832032700683366114262944602946374776457980389921959183753609771092357918416371521306447670607342691071324264259611801552486447467572451786049938697220432216740956206153997783256258118594957258554662459013915950258538545061893056823708656954170135594833499555058545284946901999954052580603217875057946880277294177093367287532659409860742412243353079949989223586640457849111524193570478232420845671274780370295868708776077828711838821614119210666262170688481215857315850846979407347364833102803295780614604937724521873972875581132684756335528675404629421093284888447255638373181681731328099792370894358205720111158857899740102278506295520159895735331684222726705456332929850912361591509346318710296091319347008741160136699474818135783463586025261686212473016353086999800835017820523671098758366739308290024514903474913089334981240470134105705203487257006600348205725984408476125546962478989899430034408779185959487186726474680592785326038653766314532322545939318083155619706251746119621772203608974584459770502595381452129785177978577356759711048926561775861855261757624566700634759436196587986594348768096570171531862114143840724779638397901584999117566155632206190283529460184893858959404474306425688759320272704465525129421385176266394491531095957924644433757328752511887175035313756193478781566191064745565335636467363030884841803818954440078719629223986000207924495770439031646159273955860117829713278653853185442904332823861703204818370115409303928380415413821219447700538397656753203148845284683324291530946131449227489810191618690373936000754249439111491994453522518018312211429588252126887745911875511760367176725048698000703457968191154178827555487174880346215060258919900187122156580090882243339818691084061479298296712769918562301206418560173560194544469125829818817759172619288770655016599586548155639423571867938838189202063773345472614926194818789527267111216786150760701601695860943976714274487937965947229737678244253847913803142969934548223307036707786726440236285610223967570900737560653041333089800193470258839086734934888009104551054136604989803297804652991638694270926010161252746484708666264124424592389908611164455636617087886286793052242963179757286015095996713528545358582231818250220781844311382735025452907478051707154600059313658273301951768546696881352316778315252963132104517864967285906491339216540245880022455177461650546401302676456527647397792229660232719477797044875042489497034013297635473980220501530172583447630811916894985229146115638697623865488237088191630320801081084137852777820953565910276783891448709789184233073923592681316539527029670694175844359831135648372205400914514490004807803346687399606852346639205221332303403693375423087100462203049528090084123610663429262158770284600450878956225988279723698712800044147434150637301815663703227745507861296688769953795023653482352618319699072012649923899036125210891858087644181344248978071950188578250907396506711327415176995705764932136286723470271375195134541777098405103824701372671562432140392532886885034977369383288345139275076224491209806153617911583128557876672101418710210469622939540258237359579239476660610666669898337134962509711210258782093699585895725206477496081605160024546702325689340708779516220409013664099008266805661774649823685491569323376886437625454675575767935734744473796192158705142616569695185691273506351765424001541970257256319178318591298554796883837798595987770805308669281697693602832792236321042364631531787242427393784791350717936887331079740458672393124066457299417814691913915977061122517710697286757650098206248495462176346341055934210352479827106642284774174748136182505932810988931930328130004511207515738823727387099693426060475271918650307469741478479717621288871870644198380724900156524743412803398845287971026781261705089154344348261825904851515132713308406817442257458177803834668512491193338300775588575031735897272600493873892963991176483986702381040029719066120239015195937643002740082355167158850358058504698923481700875111774421969370970353454928542699903296914302607777104154117698592557653586182858648089254900881135059008224312772807154904916820217677901945383310767912031998988981585981181458527844952235728484363727601541313403680805776851773227754129866855780505436970971734790718284771787604971915291181473191247493565014697301764449084175357045877533066482541125750460590561636233691317445309436385865108285607921067244866781163438922616396006603805565328903950424412938421703329902955123481766318869625305708489111693499840433893540377778905382128969800038635506020237537037418613646543961402820055871086171139983519325968273560404980896512056259746183929867597552685333997546466184303787575248592478843969021865136838098270612473846949437414134610786731069168403558014934430130310613224534068280871429272979274766603069796254712060389602000524497028448518789400828404360696361035771058446079379336147064275250178055816142613680364726535767073875663585145739125612857035636559887830149615652244356863268109407080410755107658766112745401714920018150576332593614246407271675586027773720903076771937298475869277538476853956523158316218761080172349668558376305842770596324975547720353801850392253476377652881266316942237703273356967006405855139279804284476572642309088514110640065305336908878162654411385799387964785047838940115088627936915123253979996075859550455011419415818422033757833806306010186546795951207262434357942713076146565355232734170654788447419653470066302877916268174737216989819499682834634818831556190798324188878433887779191683125481637307403886235805152773299485280243260751737519462456253030370854057690246444843888740570737470038199254883956513335560760302925136456276541954175339345121891666296358479194454654307278525083380732103546647142523578211735805944840535947770425363120521888946377469635513547335922334994804185287078387816398717844349471443197906424877031735269616083201689431999584237218166252287092628281656856288588490162928131939821413137533188158970182887875908442402807039765727504239742398615302341253533389434806354099992984557109848384600038270481196754412742158334546543316148832774128878762616715737664829803943032740977993254592768864504620510789483854161380212105343707878266440130211873789355802058647335937413105746375670598377802006694427067361145418052815835773488004893710831503748068686099323337792736108796508477951325207647739224157801651421793370453376387826131453734197014545932301109448212519434167388549559814452488501496475773227462847908262835079990825596284520516630515737043560659304371706407659440607625387711424974066088599620571091561532787350353954118418606809657213781993951647783169259580857521406916800514672753211029203241729354985985329135906374044547310582789897066613665449932075992601008710570861159253640420327697298486291309576715048020394574481712011184804629324656969442970261174712112826571846450743470137380224593385556166345319397677326982990524987058452914764743389085675068000834867691169529960006582187307505768074189263504160606201616733181290502766569141525056509746779750826903038036420287484953680442542190322438114151182738097483768055553689437802770031145577539126685977785859210888100836595337269648008816924766068997974096760708394425148636740239299572645917066940042617664004266401814164697488916905705011215216149254505354100721360325710463555084897386821667058232168110277022531234276760913577646161836076081012150254631684139794431626044122450409571938337954603838645246609581995616145040801487687633494108902384976693234611716639037074659922949576745186219231802510248890958117410227735340400324283990132052352704504131435472467534457337810768182507087118423764171784538125783557311286304332958669538903396707664438040744943255202635632014911267899554924550101331410624760483800074809870111469175378633323596571433070498383595591009410774720916615585473820774343170815842879328936905164874335629290854979936875966543325579427582025253280347009395242851171965914247229766391091729607884693880166600411372759217775470008733619380379765617972331482073525460280928566918073854023833647045818978870706374416304758313373217069503301921428045940388018124969466844053067790267007702739739862049378298058548704910348942274684700163732905065493426537363529113405279617863929333346652857943797082929083927381620923658537080951340682964735164147877887967849188127131963334593018741108867323428724459168128000637860656289003445057650484621761921284033063944693851880884076975827736355960986924634155315032927157605014683073112159590842032733823666068413491346154595156420980428665218056568172391926384853182167011583980325432455649696772862797949658429511012289759931053472777868436467068660385360179278953072723824886022156455425442507165964625021281116504839415750763674819493721994960609889174465989338740008040561657170848425282144664150715061304116776417200709747408312547644406850398902926046899956192435454627084209787644113169951462369535068624197308629353738142443299574924240906459650708370439258294873113637999964602196298547821533577509403608786265554634979814105873325010531000851634705819729936164146136171686567456916900691871566335758987185615597818182737343855842355597459561215728265098649473960192362872873942315934604908997659163790662115790966990137414140514187993321614621388367957287884276199330439295429429972953245163811321881618383644234689236218552637138298932867867454701084104577681769770964809086634864105660844745378322797510722256898912905483811252674576724412940417686021373051187425672550124145738409969355456366804935493220171913904841245413197469737978963600834976524923823493341827869277412220630694217405221186148784468159263568818313030626513338288136423456391567516360352474825685144873734743567990263431919528484941967085949223242861597509319881529805478721944432001975863521651625322342671853087209414129283184811630876193010008390490600013423667762528826864238336377862970090158677719794672670004418496686773613923147254436885746604343981250525644471271251708888385193888945754988567634537404783722905197960082847397434451265760272587076102645615330641040283451043482453006790767581680690006402164597187698284794442529540397939969022665393502010268647676493740896203744619540426206546938970025306640398719706594970074662444309525238825962803382472988041075563683742156542362200389966980594356348148544423272837922861823372311143426651411375139519558898020034559704409320095882887691469309447068973862253278520985506571398430971709483923704672334659514778117308334243460881827997248771416113305039305859467375818991440782107469964983121583196596683584664642099254087243620067583439893985015540039057937867702231856075057357498134927195284406459392343493810880228147120871637381428804578864678282628793319135002678524090809660450056011262018572569596102185912952351302612995886544790760723608212929079430690195111176583474520496015167511551832819770934795184250027727972632648691722725765737008279910706607566691493784557494594515708035145484558389946302603981688892330657360559752261052807728908811273951269870538557012965524385103125499257965125666253334203500628914164366355644223519623663883194438682107239532709314038955354355281955003858080595139907599462895811130976409866292191635626666409020274966315456557282390008065806828300929026699283541415704791302015474549068810591128369723086373440316778065648513097485967858958366011205698006957025564640694786261303738194012723615458894553738988081742798817750358646707794744155605694278694485626356000123950839398458107544872884448214888269994663789272370331572624473731006661360458993475946054925347047173858517696764583560131659575982884396914752415878036450802917676473608181103632429367714129783391624367787375032163024519204312011748696560756694510403450925371432516525929814185066997748476823816494231044794613033865429679615478137326430222375236065303746845315666346700208827377625709665427690652128300478946997460679324810018205588268857923965852917158796865293909519647391426408963173196508079599930795982454964089139105491208579897052390009009611339021258163920497448869216391832954309311693312952998128157006741444792919002974374060520691731042379227230129986726994817118380678802053588064424682043101459532374901710702559783397879463344795456815140546433119606494560904212756483433265054834794464742104085733319564080182581910201155189457976530058035610111581057263857202646482584586924832542890968773069893225089741703602233928567975010393293306816433752817648962997182854418754499613826140927079375463167745220436426632283980988595151276514894417069925784380758040984113168573419918038388120666469345940895060782797887091782113629219260174798234154708847852529843214404754896350275542665841680666452817618418980122560012605835993958931103500043446088691447503735516494919713939081219343126371981858018984659824390471470892523943309396397256212038750227623205584205536833065778478205755432155729022958672337752090646015811058664362554002589515303492608316721478750727141648884230910714918504480031109550642548372223560634929324417703552045477811782585730603256793389355955615669450167528656686916876624179307953992696501413997384019408060269828360892921999113034689121699121633620525404417361356869073038066267946229268725713901754856395908741123542492436984648245056289396163621884202153732911896778854893744903488018140153469740535112244012056693594241607542838910465110461520957308738190310563434408998683690192776006034571920591014996756562213111171812198592566671235740600524909281916261084212957422229221650978207411921467791585777841924783478239851159220014276825791951523610467021502125887566871537624773741325236939015676966139190675366259451034114532900324589892972627495261271295272622024413868115651562403961811726475369086807807829760389844493217321949077930334782528954383316709926327129630532089258255252721352238541866347568166952557192120686531213426846389698184407725900056421471955385397045254759885584860199526846416599413639953376082793321134155847597443683697763098086888443873918903346181394339709405719460954836650879821285411977483628894606489471394171380449669885254651442135397613123369258813094876812210961464398844607061873026127208347584176906995467211477063241622098643265602064846660967800676783717498532664755374327813230481393686394577777731585004782221803272584287319259373682676044614590659802990923695116973000880176803346172746048188339448751391164753214890343569347465351875426201226901671993097545785641255187989022122011237774821761977190416694798583230918962838659384823721182295379051866065324835013291407694210729753819420986462029809697136252503549253571868186779144807240720412395763853191186411275819245582013535730025710605872992838479823421591787420645537449580795309321188212122221604719496535475096286643915635024062042823559637228362961527613308879630798004298695171853215863013840873635774405104021500446554473922657671894164733913253471165489270555502037252045546966491912237372293725430101181922716456583394601745031449233892184709608824773159705548367184938498869414737178288348490311039013636216229055404198458684073357405913309431581890907989551326192563796725346814827660325349539062280036770151761420859696456418897913453740027737945612207618405813640695322672956494446173259024976225546545434377834760820162707605932522151430796647059079550634060000648265286378950703909651420167875157934474703512622730035815707158824307684663569730930642793579924478980284496957319001433806757413424502391371331641770505633030498031416836000430388918380660033551292694027986853692615600464782038989483146241184877669602867029393425853507026088686403719264275329086266286114071558518541905986570878065858547547728820389455195691732271888347682536393676843317424141691375597365518174970233277552360162003860315346798351876573730917783673966259390528324303301073552903857538384449232150453069643211055245101514726624673159924721844028295399733553178995215985375150266490581314343024817395109313148868176530961833413488416744412156059981980674375443627344974467144820841501023079611144659330226371017378047826946660871704637977577585970322004125654579403091937643639163361158277978232386540799563003773528729982617679131681067910166436408749959485344241280572160017757057302580555316704786467957884866789596605766832971884095329284589712288015025522352568636931684858534671960764623863081039258781923134381543785161965657124881005041578627984995342929859420332193650007819351789976644634894137468698025170633877584650983243750491434916300612772052354970936181930366594295531874740427930996824053668157229690209951603896281265212060477630473427489562232021077510610396763471242007197486671009835540893767206731084894092598038676443121872820542026367916663799673917644773739794323822946268172041233898223969457850855653217458874926160440983737302438634151670363291916774308277312306785867868813814938337743492437747785555372538185070711740657492092353608678540651563051376739489631390588065326664265672766905423384231460797426272699534825171496812255589924543829246633263129810395124404962817743269546464882447815752011956231883645213900051396532048332055645954659958643793892009669199814851653200342650567595733059044948327854413996899892834570201848547257468016546345253582357122709813544321536123016978984754814590139946452581974337671225153307514854208835657650334251115135778127310457092233970148454397370048359134129210199504553954074858674254279223187206874490984079876496251099465749228755814866303216449071624533486975234933403812569372083674363948183924988503484233279707251534182435947227876279242370432255468969090133946431292065015490948819452124560182182152396955911150580625843973682051404149597769198268718170960976212152594704167471744209418999018278908423089203229743453267461529315220093342873668829288456797200328653204248063418528094814965882801691458794672189469647475597513323827598178635636405441766266852306435794313929859243432800375205059258249824441504337837295690714214731053221122711259631997813875274926670842879641575007940815558295921349230206906568751995623467813887432145398412607296984602463486720375874679335147850627247133766257903074386421053557531381680532459653148190331496918299708026959007685744621834993144770884199546129586925707776115834250968947407527606269410868209513352210690526176200053319859442013192482440782553365685044249947047853802170489030268049609520689741979120963546513080357285248158961438674561268141786163956453886553357754179386558054760090182267605149079079998843082963422697459631842317000477631456735139008463882320700578592124881720685122528921357481754752983206098036409520750490921734370707925477582874600632071313257268954946866922870889997393469436644278446489193109827482652961143857919156313002259607339183669260887609401005851617414062752077720997120962274611992407789599059451929124026312488731383736901776670101115197995551994740852407717939537481688552076899096205921038925894074565681509144425250842148879063685200480287074393908638194535999521998083389852481258785994146735182729835255601450832707221496194082287909754543807504711816002918428462561124391508079889376114477953387113901923797498899363976145072197862037398259817980253321332098208623257425481506865685644961107474568157441532374863071289019479942549391072404745876826877053412041654597855354888981559640556136296496894037215713029149605499741555857221821045119455077401701705761314568331700151757715102448591436943915613795023063859433197740758730871239023591191387003071116516766876923487845750420151650375399489118161706233391025858537011771026363342940095098507317305456000275024937486686827578705087212290240236971623739007883581683003049585377837187977989494257609474710211300077235408344282426522183068597041994759749428194417406073866951059635303948608342180055219082819816358523447364526041268391493660207621522636312053769430110328888566783734001046594053817911207090263748518868478361589345321142376341986777523784200546271593477025112134030992208476024296299821966684308201101592896971908186177643954475815405154104159682769037879104282738623239783953902242711855400857809995547613651426574915597450159313474125457621268468815183087316817467727757397765457466517681434195577133185981955493419346335609406098323734394836541803229314984606984357893169026387013955137293677041813904782088554252152709431535125970126707593614040737639097368979614086089533224630438241240103093007968808320939999633002575624376674659163146954662243533904285657093415421374956079043728790244482088813017710247089503619322419275554661176545181903809317371023889883344600150808408865507008495314782201763901046249237747881045741707063142971324921448912995845842959387261824331748836824606749734692853075049632734389165159683421534903956993716418411747991814612532767912951235114466144090774088088180174249211549234626292894029207153807345972731399918270506206411646844188920323209935259009185502450939670114124498225218476764656743695826615330629958948814082940513425085294559770593328282259434665243108723748114683130920251878164386188417546695175394434567903082694330650300955294065060899981707851799714878479449557502402275755969980752856704260799058699781443528818692334671497043314779407261142232940694463392955408317205506823745427716056314681977663034577051968272148247013060359894241306544253747253255503198441716969170935100649694514843702960494137020881204208243116252378157708959937932326395737835627187244916947514720981972198926190548686546455842989292802514582392850795235883093418321282213628859611975612477578426373475925589181072103369490341684323727403465612805764223786744586153076952365335614507936489861163911408492056437815006240103958555521686790279868890850819889432278047248050207640230496753695842656224180668323143223082176017890370234806046342419413550778970657896346263312273082276013716203520341195320351369910750356247431278431463884596717826670911053487530029261665541987677739558119864761044119882925724610958504344157890810677629037395512392144727303411968988618534732574322019818857669522296593539573961222531010178554750837385371278188470821437866634555032749847224004836769548225525237624086835216648723301325786446450167718866553351222368721497379884529593980906563704611998582758662465304499369721586263844031863632073882670703843487895151454690386357174410312588264688458744695341104934184154607807846739212375826764327305281815813548174771204195041266108395222398146375667938169225196484910479086791479265026780331566021757293553080308494215834141109139796670241598552303802101572237795180384688293887448159117361638643891550932874816094095497731440562303505338571345429740445305967426128501517155786885679973806301522195585881839234685533843552886784948361514388401587366666044097268865547786513911054867273175963106429191310320619992664962099525559849477739743609521369062079250855766915993763940696879081224168118656816734653522534384268961766266560888579019809789984827900567550105479233730304826043665960356922646181186303459320862143430533482774865460989005322892204628138363865847992464539384804548550786487282921474888994816027032088347388034200629309473142166187539581845948014484363881631079411900694590878039895645104896730149395190204024910333415163529353955756813335833230232830088837982649098772834977931396750817738148926994914894887601530186150185075816978737296704559532109331968341586477960014923408626605463535068139015970682391823644643544386706718352387789479693351619548333405870869769678900714782459476123283582313698450135220063821469157151996979399543215494196096760449392015932779973409390819105640039314884699868885631968566878411104050446814251871432990036117653145824544347465913289478302083977819343024051493550207505996148071060082900033736746973000084115667849519118599639345329382487637097343503736015529616877441212552105750703682934135341352179414595737122680123384579145777984693991369743332746253246943381107066736154000211705071300610566870727321951177852876770075756976188779177002331442149330570256933093164916097085074548532763948429875009071246533485919645896964345527638170893016756268594402593282747487593272720423452864859838787413213923941126409557258834945874871200672784812019090814384978399319910330860923959840026121260680766099098498029817083508341214263354385675546262834981569782394987830425840313855818939154994038987184234880778665751195935846855815633393890142991008638452176885397428767993680499836876408045832240434831197172483547325726802308872789039203908265038209968292022536711112259325900235264167252535504084861710014140921206990742816625420518310765490347501202575957078877228290957805377415733343919940158721990769819505676394222216058359281325057399786671090078027816778533468290119135711728199871180548178806585795510847594421107118480687773135948939246655207416511220375028113439341740528538602964078617359189809408895189912461776726401419193090297902598909726298422683417863919182697817788008660957956753827331386780245903568960774330136116301494032269965928661952332972709414713562164619334222899118877116632766079355754372693508177893429725032667286367033086920073806320900956420812558137749254109589704554079288747964085753072073584047724666577040111914063394923977172720050660487689639586391090416330335593984044662670514841991596705519230100662373842281881302060429793205790426316677006059718047434334923985393495223955572969258040561507198060006677079853587050439390092877337918440735258835758704520610423107419549129476649739187251725527756953541808002125373650604084041691941611800578302134638373805977633528689264721465926821347754953570173091416292622290103812205362188291498798961380028593715491866181911089294547331735034661801061341756619692490654496574591242317587485307888065171827323727308946193788472305255398531121959037676436860198374286508343489917888121490489892515461020376788896385818322562083702422631532301750717272708064255884056173633624754494424577182723036463354628708101748150798048804225355174262396275363630766393509711726648725171493910141539203015419396538128921850146826281164837896426609360243250111950013362209799899474933361435313378911865706588362347171612811880146897015112594813124725478388693827064859388210637603336559590147852945783537274099905907828372181700820365419359073259511796494836258692144803359991012539773761100127714099045790617893261980089891008119172731763383865000854511390369557704692278752576463556524494725952388526954635482765528006738685992762094165214403752269782701694502028617729616368602217279564671187240507935856291639157276396466537119149423074218007420545399009552822086505448753743099773647103330267348839091189395618148470905529396041139553809080075206851087413705596874111952179306118278651728234138134319418154226985187715912074732109279898473091064026739661845894196574057154145501902270541966937956234570566301193673725338502917209323324685548756055154452429901510504037404289140313452411747447483319042150556503602767631162267028051744711376166930375997856480841820597065527738106817302389727480578418276661844883439167550460582217473263327607814027180675657554754046503352428303912702574492163467762385821750544465423442964090865554602371901845169374103357637531098214465359780793438390630902565911168683637612084955624014456039648905478461210058307083354179822511243413380774486188780393964386265713444582564134284409220654399161186243486761229399845743458452054886603629482278362974199005929769018793689364714408132212605158845028550447109016219015238534145374357189646737089394269038985341010131608257595359013577137158038214515466558245745573295937012379017636120220037428730184156537510616998538494704301250266877883243848358545959429680815343564251098337249566064166234004966697965834459149170818611677479374071468141726634684436228897379846649597314062770481251666547289611269463292974860061012134924770973628994310572617114771708618591244793761270069542085985272980522950023194578658850569275002502558890458944599555094033048318198247996863232718456524430871890531891550324422610186953187001516276653090779079121683929029276525023077936505771667025885853456950147923619037216492894522190063443310890047663300740796039806696141736463450216726767810329581933910752330010057354156720321887577861416650090113434168497612818570278922311191154590710761811020101298732042828692897305663793552408358022770760646921583643523060884299516897265878655798031781089242027897983356840671883476167818807128287170540992968111305271464882817405614395776555920351032856864999805691380953069065552997878890833383046486785283960554066085308903835054662183286352460207917825097212093948338425869404743699808779078137128281156547735598310757876819857203607293813301835210638758210626805668841768284455235301118198473491228432532967191046034488387767074424984807577109602037760006886035392842555931031822018188657210275183306729797694117465686835491252751622310312917130150173495998497814503076336358556880388835672369390240932366336108637741684421941147222954422752237612744921941751573192751613355600740101770604858045313480141218401490808808163058305023993165952946374729516733592807090924139265095821414364799335346234734718142603837918240836093174642761366567762588552391530922057018948440604570712382556730919864417389298631767219570724728469967733893358225812356317153564394091554123303479815903176146570295976748248948559548761264635077934067402758606892971355100967911190569374399048007176582451657113723653641258965207477418937579300372183013713891107236738847140549836475269085464259565207268285076954234372196417413604928524260544589863230331219867893063867959096384514100036688960347269401026672899105890322223066280915390735742487070940601450712589853776763336198164967279702722644140240988856662445683426072705761514533818709748398406234466677812289632029765286542516805407042137962107491716612462600907122011642726428163844028304427889873856273253994304099606991334076610104789821871203300845006270301164989994227792332965974375135233615722255775822354839483733421911006706134275031877919250804294346538554489232674055376139523003036786527896571856938724333140559746374672969332185527391708712521900820401740040466353327390011554389277643234879603532524221839781374539807449012085065080632647163213905022334518984555513026993938907686177486238374232360426288866103001161954961383637738386760903937646985866564010135906685201607700488212393081368680521093071037677289012041208677545599363811511302185237627396533537229732819917572964739494850844895143554361517508431061684195405688108022352415112887198805790138162290726166770750425400311592007532742744847613759318785675044101475013874705434307184227769430087537527755126717152526989910737843818016892530566929211693984859506903706661271273289785413370686187965132111699601560003176816279738353357820259891648352665723971552477953223962133024368244475896275211528311383090101983551600108984637686284761761982060562964970876108293962331033922429454829809362032856609898546720377646527969684778658912214338818077851482342173120450522584944377453649887695901885723800411169110952046555514877213029984330990928823300721737515053157589384047637500531586521536668055690362244971593741745098810318998318824733423918172123809279635035572023069559814086477371595733603855552090849941833204764501551201830370043699253358496854128559206813824820846373659968029511163378399368102448544787981934173608653455176483193030007699253535981383811197785315331582942357567722476655917216903401210940355775263972656027475965464508501993610459530404046917618258474560256359569002689937772453470869706188764123361357692701670959101793526785682664139458423327397265239987151931023792601708517441806774037876555611137971058450740599389302189061708463565796559102877289614797049101150921699742481706064638381794460614555547880449893078231374663057461688588619808195887446962115365767778856464468043698000531214835986913801179428271126054198341789449280299022770332578795022710012247676890140629867750036626483142660468576925389595579876989599799103433260341172788342040329759113720850454098623267608541914107488287198158185719735816113767968080363351080375424921828249258951082687150451372551352878647152477317543039747878906450049822756866116058897012262741496520412822063328322729765949277291542261006514354251841594225909311824427897270076097570750003621575953471855451793079074686576700457762234268931477212023660238784974620859624527193923436985116812936073156160676778355166088705272300706221956123327730466675376309909880593145651875077546978542529587353499863900815662065882358887512179866279363510503552181887183601751429036086906673400645508300668456471569494056553813917862270228801481619147199973100212151484400080037270340317049908950974718602000980577106565189476060319601157818677812486481436865583013808395696117071366389579108038745704813267593244854142505433199520963356385614187807075984861520533380944444586512163495947010131139906676695940918061934000075617704519574363982579904809896850941173384175974808527390764077380181489283269474776215730242692713254023606744972693283258357211583679312875223908182027291357396183738102306143568295345430766596521572935998129681716136215881986692589797611496774936556211251633422796552822080029739162735321545795736097680336125507733723957961052667831050629211648882730137452117525391492417232960189155803949858448333844337971003455265215898672294206433149509350169004402660965558600616477037806976009744751914769015666447095791102740166007306379118445898118983158031389381737714247133929297060521068098698325070407992807947299768324567431309085104155820749349134376740321818903260801443355228643596568395478489503703561127644542891012803935838460673552242407583317220005275334692236105289709788400464331045549681219759403998036184141632396750220115883476506390841437096857150807936217287319497485072983281653254345438576116463239503698271235680659865571305994076018263496863359116549581569093148479442876384804181533806882442942801608594255546913457873517335407565814788159798542663981741589084114693299931862871732955481621135939424752290263599870189306361013058720195004952181501559443089913108714011906500886173023073207307183320547825440259749884059706426998893874408183439000812898164387532732327783709955618761329168419253158364494107440936850560061842799779614985231399359750353923770854350487999532224511546989452219357457289241871702775562326019296735080973905024412405916065657116545000509178366213021214160265766408689155184574316062890296834753752826994842263919212122896733377139063081218634310739352282775457878220467658583045219380573550538421573329994754931648845299342282273232576487521800993324376904175578727107662137215166959613993428203527375521823288557398300475253949149876606899331228041605705960000361340607935288705305505172924357433487908327412377754254474462550524510661705167689145239016844403694461983667238724502980478509830267632752166224887699332747209702262334210909781919043055618707330757812315304045601065527176163733588855512453848636146789320824496308148555192846821267676630448283034841989370078308730820053622245288860000494015349137136385766355684793476843875399654097533084660693647412848912623233096107172224650549794110959151993778896320167475110466410997484561641598884129031742690292111415116203895750075202707245751226026538127498423207280505082944375608762207373087068819506086882670998012591631884679714768026808673582565322102948399576897076305855214005940328051990929532381165606763843356085351679465063897489552120965323618068918315045670441645652490139640116186228862751543787963783032322037621521791459077937714946158806958070989114333979697518456685326876139028005402207262083648693241076852602447453295274158016544312680287496518276686980428905695229223624228059766205830015513485109737463083871205111067635661728461814762747040194425706293541807243644813052479434233180663373838836820636585439702513553618732980406715155406155638350133128309936783612351399708975940813395486170253230785272745989720143595024413546691527592954175448957324734591862552875583893885056562584435398587572893116946288955571101327520298235377525518864839276941987260419442588172460655888106283592937827458160634929278487344497223247742934770735604947842998181107265568742777658796074115566877723848608059507472351020680977290908400427153568348042170232045231367931451772718776221366051862838580643133134965828104833354675818716281592584035370572565216617996202091345672255887910298212651920197999895521024299181963225082554215803426810730802449711606937711086417739659860786325477617896706495648960097250023489348941958844813039737567722209063382684521691317669281680132472130135942156705015855811804504347126358585577869866284559752808569625764290129841271782952228259393489077281529060657611413960045346644998539797218066253092894695413836505550458037108961694596126452268462893310117139165035929042718752148122859160391857929619370951913298029588834148977504997942861130134489216100480950001574622451446382978426238633091527300330638191889695227425691980627797480596484869547525092924674794817617421716662175548110285092720962927871778250046914859815854173329997217174524270267883524927356343797388652979522357971239011574120637960082401799413704615010240005317314062650007296722261428173267064522882440020103981884109986057076011566132496100027109111086175545128663035172283792815182218031819378189063183776310695374551353326505529722127925751115448077032689963123416822007971026446612340157356420708529186317248955523857286863985830515283383600625424678403339359854030160321195218169295569784707895980895585338032293339871365852863485435683610917130163964916474776632478745203941273274681207787334398313328610390076127859160524762077439690041151612473923164847074721725662145121144596510697205905432973626016282171063352765080856331283845335980426636150533095821771493090741283818848368999702250419950319807458121088776726312629149565217395759434517772490598825216885600709668706362960914925311622373019069920578880228380442062874228067310214506596372098610926573670442991802154397512364217424341144784255735596239024444756834014791919476153277203959497257782645428488516617227050132449620391613946689556852672440532382622998559092571479040676011131556838161679168533846926189567566454057233176842313405550159662512124848390930095402502218755502932670222616095339336554382288821184066703775314015184554104104440833191504626430752445121554619030087231210110939864780638375611191191860584637519813654584263085767096692885421870309997425383194503815754076680602036192023543502497741121635317167914819414512869888816778152629257119986293704776631433752424702886298384104530417043031417100955139812069421540793836794068061355519782541052076680976920832315333769337505643881663430159070394647067784404521315691655907455717082962981660030203481988651922091299759718339699004094312023912022049340232833314347182975321540590781132660374380251920786403106463837721252122779639163095260686193073884698138391053520410651296903667513688454837646585437634136631920160968051124059270453064265906119230944695518108698450144422287291987045299697474450538652939258091407792783742811260112230728276677268962857218830678562465234371848700353317863013500120040610603744022982616302507387023533899992191184087114089098731725005815771684464645058231866287003264589304056787166848696538383352901676407859636613315842001835120192363376882647972908889666521916125881960635644245895085243086127161475718483057270252422440395074209839835020907984861160776547168395260351804052261196300170905148023457062869022422235297866174619759549505085102011042662557805772433754335854540761397576671058570451966177271442748104251226722760983523624483546092950201731510362771736423690868267185284196682240141082982008972574687188258918864058393280604991401958192398961428707149726736271822300312765177914301549328365477660777970803692256493863852875177590824118571996394567667003032248457725600254398534215826709824271955565145519430532021950203852280293686214023927523450580946267823018480443855681327178309355066604889781745852363163467741656584176866862166731786069837715953608061520892019974678327724092118299844717961655431209017111198047386793347356201825780481562961627931930110523265596714636001138195939169545631802688440226593579706570903058427655697715171428290098492834393675016169548422097013188580764888197855738243913740498875199460382519574123569873367110218684988231173724142078036621097933592671400000498928734776644808416603588452517275061774624942015798456851597571188885418329078175144377014985893526877725775390893712173635541513917583386852165790223957790116880852945467998430266371882643282858431377526687899599515327001734862224983446481070524136460344782627583301066112127189729182523312421404968313841699814683100430800190800127300055465975086842062101796619680786984169562251848305363347435618403595302694978113453738685349036702450754647791939286327173396578460053086108590141144586453266246935853607369076305871086923578794893527930837040882907333815823267847144651805629116537367663594303289498991423763227367197443694794179927661917384904186011913362592618157267511183083034511930270115788174716619715792574185828067964275614496792905181054614704414927352089757818352797180954354405641652500135163558753691941403920343912607451354140527579868561924931115033955392852443476678085426895021370475002031278747467281083070699468993086497149662169871646368389468905585800005552365309774885008555686559977285918834665258201758070873162696304810858605487111196193632374374412203924657002393611252088695596098241464526988536307501499020273249017435590159526147670221213050557336036732007528452465284821812536649636467685187096509763153774599880898389692192804708944885804618801807961329368729594397463368080121679867765485907776782635622828015314092901368722626362410985960484712856255066674117124967234524683895975461927541734955933982177928143800064448170278538279157820793201338272133829852344636247447785423052399216807810411599608281417441701157827466114248943678597478870861478467122810231845043042881700381129374713830066790852128615755670531288572888906747935884961356150886856613161870407309329904552374099188461537596348000614434005765022055416687536505781907200437933455587138586864133866496647241779568908307061102445741644007321190474936476138897878625779067446578161854841018361591940531580560208466059895155156799044372184553356930451242118255898581300292657009601000202269166285192198114353830289541917622771095830025837159957008137782860159272645032044816792449816850534831972229902712596110097982191354285748145952034324287632875311882112063874881740715586416039189985374819742040290345779287080582798037473929075213765676424779046228295695298605511960198977717864866440385048746388667944619883255382078602655033758415177032283547839711206889501195149182718126293252749861441766508837555911530311152996682470344258569187803450017996677254510361586514338955298006614211727667982736626385372493344365381175586684896547391694709976809073444553551382646553490623580213373789485720615198549412613397020675727487221500090071257637335284561822517298267537361268469946997469670183604379479123289493005180282026931182201544954495440120149925090759216840513829406823367430734955304621635778408887689848543223283204625625872318823424664980107365238899988236980696670879220576763762863069958578126110943858892036533858398508784325140289175433338968606931344268601468681866663962957366753849610118709163421753789369947094320338607026924920959391117547162108726674412112725410142212284784414761375076519786565290034670572385356899262708347494904077282131145365339565426882561772964017504363497634322250748363177035248016803826571623559064328716456060958921113668591856785087555539102664306262494865205322665121710657981722922882655846042295876145014400276887450032371524170354872157209369583166553418720512577906634262679688344592608598880568395191362596173893899718946727599553607641888557564832833018182532704350368822430921328333005499543871173820240202614849866778207915279998262389484768122048381950396587598821480186348744428453562357337665045860500469129787724997975416757941943584717566442900132331350857213967371396793828495813342183253520940282326052234903908537827798873524365775221068034824428622973659077748076557603556454245382170063988317378454270723804299655671053671711190276078273893074078714113601597477594126230561389012298884285276211523618250317704228599354025557413150311467563797290284598350814042553219237235795783206703221445789352995124178683511612170725134141991726425733991266719691753059528713304856193932708306228230021007128999816636364252797488850238538191844033377176393950570157589431762386615852949301568777124599752600524576321862509317991194325829539175868848377071251628175212706938319195604009891437016170079387669723044813280677034167303117098964391673091928731410914576584902956574186994175366624276896623277106924806360015797720215084571600633723615871524065732842828657873341408187613138359622363910974353921779136195483138845281785598284437668093721886370080483190381188262385979280751430925908380137872452327742567080588214603638530272633489451351027576849414776108018312116373629410126874468862691916151522045489457591300112802671236751477742993686891103886007123627374503430571900819432260560035725952887526514795642378237701401462561280554173216194553617214906979012398310358721454835736186746438177842793870975070090192022229698534389303216342992403597084347107551954484336894457848971785317672662605203221974497501558980739264413571248163746922311226742642380717428058909153164994535771296445928354135734914845842782414927663814392481579303576991520683434885111407589128865145740695648666369006971274379826704925615231273660968041544197868011420019361407333463889938411987123095724648925658198070892788476564207254859356661529243626427008394101628960150148798130994715754951236875233401719426596671315404767655916623690462057001705798086803271938961335597397252917082317836884745343112586083866354673829033142810064667977125873348517459647009138094054882539966578153511661978390123037039317941891379802769279112645896737240913887995429241484383958726524936196734488309907955681172045522653771944938747460707345202422301469489362947400097422000303387822649500157866417403480509596401208620715181635293367146013564562750361843859229045246916230893489459907652975914194315733356736634793155830575339548606151629699136068685276522454940885950294915996154635806407177983087185493748601697365526246252322017630283531526331556005822376293831565445791556861364681397535938887625151324947797081369887237390759993217354263934984240158540968621558700682444718897396821407118811789634474568880309719666771973802004606487697321640772052796612033395082158985261230300481176079904911266297526816418858574095823990683152344535110937068725201180591465459290409256700823135936103904620640042632987647205342076870595958934286237404105672119817100850186326990554538290447642663257977674224870977191758752141245619686494936783741541929830707704552119113110576410423463594311436786240005221689214347679947087654745259573618528648568656842777197706127358729935157831928135658371281111302243345816105080036091780617861591051424491880316826463126082100113054983759439697992217361756974634307539462798137903820633250373187370503285712908636053063187957476033260698281003847039712413677074070009878157651123947394721356141337435662186822018827103249175935713891698774962995948281838268259278827980188180364724480672648372093605547092448768181454199394473472749511454549063219839891273058228160053511424253990883579980853902868478499756564022068915825920902548417182909151943385861009453294828305663583640368028810047278287268180492661272059834517965226433057409465676364308763140577884950068130563408266583119882997852677195934646321451248020385923001334622881006900194096871127400959210834163002996450899216251778467875603166543349564151251468796290111768146351834878411294784749849905921800846369558298547055186314233856788861732827126252042887448189796133079426687153677432509761905462496413983902698624942207003972680480236115220143983615378959011334006843078761864130600235648623100896595421361824335834593016909974512645181522011637876648260323532431464806663723750176852470727694974022113006010028072766673392603896219473851706860811959334617627025700645414540030828665871174585429250451797496294767045903498713380888480413236028822544299564475195734561420751260380658357507788581891649084862819282247999197692079130984271865383046658415704502090816849176675625317615523446355039797581038220482445826726180081090929697496124799892377198659752813843960222420214584179936177366581494564965808360435294681896740092741800618351408608284134227530722534418631610247691381026818328535663887704972222813091428451278972638893497350196501777920970456528175425321336014652603589804919825902075034511474686245028736080816320898102408678347835106710650152018279838342242647376924253319661228988960935491154825320753867323803491433751571347714756602200549213622786309953670537215537649841418509719569363054015891188733939537595443510802109198821415143182772330097871064774769958342602119346870602949205528429040504002492667688892743367564151267223561177234612061682447445499500585055069271663230663185375170914726180678396893405688217733632769662684807160854790933700482749788287333964910302265300459812321005590846108375994412548404541328213453164004382542017755247867411535259052924069954562376096156854643089027953040271488814256671375699935357710615928565378870322165214271802799786636572262635784979199094812048228366633686985742093191886061506021753821359383120235434957932004954874520476469448775978360553596172752930829430687405126797549936993023401359635303906786711369779456654257098978971703045136016785960176179770236615690014867874346093129762621043545837935478296479519462360723551494943097685412075698540625847542555668293092800756049047064632616169224523323792251941814212018882464681596753781627925799406653931673402764272029604501989832400496205150730272346826008364873144625141876968727528490990627247492539908496012228485545717760047284915426042002938410954332207862319352709727961681181916464279304991934576997478007995878944734205658978732667731475284883532398521936834659352443999256288019278892132579172999085224874278633570190022733207879923312134763752788137840914244002489530483110169770449097059558948959190532113558987673601441994847793242045899898744035417879342884185910863035138503497861224039203183180730331242001848038717563186609903271492835686396176941971309322370532157612538631041462964373718161456087304377798840008779583685146085965666130801131063027650661077236675713073160921789159564928554960193937568671090167474042560735028704499257782862204139955665682841221166402421678250615776294181718423704965585610083524957640628095952562486309108084318977903549605444984508243463701778151578480828441232364046655264740075664969786654061608733118479246040576495255733921677305839549975860835444692345839807936164158379443479698941453132982792809249899356844015799807707163246418466709845470244808621167788264703729775885408296639966510704894217283243499907051166511386506667782979221895604434338861554866913931922834857505118215538584340050235954686242603923194025429593130103035520067283764831329619633144089145914725254671505546925160970323053046817856476722926620877201210772557578830473124548138137204059676351633696972262605695741971746605204573577145285070421776146624822750592176640579624495744893545243717028046087067400950617977042960606820243333140095517310091792028053235137214174579882288276747411888731735212551912379785660057830055207578238757536306489824197114476568331256233855536019440180978229902169790404663960385295882596286205740931560120035238697762079522715297298578397060474939211620575017748819298265529109464001252754661215272338281376075296755749654893440749019384510176873025171746099757411768427390693086322222324641749909372839080212098711881336588216653263353727429099915387315080157883734169452847497828926932044549380501198720361295174390354930102441279923528849671246966883289678138095165518145554303930088042132041894895914847903262292667009905528778209619523801192375018306830261527425773576745721300990852498829168424108131056093284648999064855905042390839190267732919434294421177000615193317325526370766731118429430698013150641634456990349917267866117269510544535086888296246004629647047272725551059450815110210508673145867016895256357027694483751821094156669561452989241225372974447664075883271793958785588909198300586861553624993135108444984201806673623959465372500201344460479115763507038433590685455142246580257797681979154525951934873243743421135544406367860610414363024515804067717534068925134632182988418720798296082640826307447509833046347297302686912806076728369170476212858605592268515763907597789182558708513652666042004283544766243625244660594402114012210311117089360123354781034510546189117407724439304059538550259866090691840956155502305451896015517535796862839761389043199830805802988027044758128362708326385862530486505095942438852705342183132344899975000403857944553326146206721496864359434933493799443341825648755970960524428333158366460305181734418450927130761049446840445802171202736513363311664474728351513173019474183476464581239112035156295983106606414006273628978942715322217142963162239677031483919104838122345259587770936544362207241557771777670389140839410398361831426282011466640460407914947830872437064874122645175723875029768697925121503399302750953161894923552456089254434283065654938548800343700373103468598084092086863230875793464671702946148233939992470677366672276594077723149425938957789169546318414397845664005439699031250646535756924192219148702441438899600960583173813411851266765676774102548619384332656746970981690812951366224605858326282254553683448529317617181829014103731612440762380251869640566105424686744194142297513986702464730747296127847688507514489203616594868702936545965916072952827822055503770955098389997557879684248055687614250236451915482950573378320889088841940711630682945135437686858055926108813567519210009490754735388004718856177658592541754480939259163134696879606981966682818930315684958238362007823078921032880848869082533273431950845792358072377817823688584152988161488153158909897871612126790255343206117826492635975547407061288719468132786741927613412953916483819658786157875539769505136743763930342121987409070697235251418433671853496718385709762209583660982200476562014178775650199447325682858891174941361484490987877977382418652196128893792680091881149696407612863879334012974497836358283238763785665889412825322162430596380741039855740312658826314326993700903561330306437260830429952598927483927203311576266552893246230178652154289738579595083313337360533707851791143633210893775898174395422153639573388067862897960564755273742131417902762922745767273937592775177839223408617006014392645967104982447885575975719312237456116016872635661264345350413310723534818698030504029591558560836068879601184548432431025145338509961620486572413150913580214581749548409427602585808065092352977203375236627833247995853363504867975708590539961266942969127176316756651435764914759497013039457723618570825704213262668828045786736327450423469662754309957860835144543829169460943773619374774241406781471484381525568893723549841931767001770280829982901635505793125984038004081381786760919802384504499880978336684340639429552066055276618385917186933603451244466380694232981581449376039069741455275738278113077194002840514022955708754225347346337036131026514871497343569380940012567490785035060921854128446101755225775627398017127240741628892520896712103513640865488536054237442682057185889358835972804793029830782195270219321989040696637725750583392914163571478867909940889437598640993293582902499182243676641673530250697474516539152676565541881143542282191276486573274023022522899762445032149740736690681787626574987905601677449404342329805526414732241566149766663623206412113794686371349154543154053559567952973961135699105039182560220569367781125217461179440887917143493789436722404595763765905968580994862040000031810161956916883686516259296820076442901244012601799647043672388879676438325435226016655624632509373974957916922732637017232979074439234914377826180684487397219954348838169472802730715084895940509331448768968594968226654380812770022900196471288281608972884308658945267305869056033633980756786681024897444641422818133212901035736966455223885505658443569815430554910598970688190241686034967244345255712720429201683328184653267395417764201823585672664799239963045783227161018398299666413956880910970614788021844424545844243764415998823187684405556997267951968448571060150328412433903051046724742323031819512906541001551962519681600894931822152201592567936980593706669557860601356598887387334678020107680592034034104930479587285406406752192894845073398149692335636505259687952359554199476902880500347396305429318571300717439312547671046519651590189424261180615369945738644983558606661091319695860497081237165151147433863143392231057093968463733813012737183624790707308299458284796616172429184849397191961829321674148774992477828471329034022323392429178445329075946726303941928972268089555891687320964009175636942581279339603900171520678126378226816967830579185176672214885991036209255528002365399748268801752333937626070377670435888257725394240363839778513487623361702641045530049744032912724379585140705045353554308148575557883565238779097127136575926314838711186431355293328121318499093048457150606573256228001397298538480554646372180597397340222905280952515793678476106859233975783452260407891739336308234584962596502896736077543008125501146177779569303412291471132252348301677446037750792953234568880014225162896752287198863895295523964589081005933052364230289878348547030317982957772877086820071101966456302065958242614595623275107548830332759499044332522076043857654511096377374980994495991234537149496905235786001148522503257654562498181966792011762139487346752984444466889895920095290060942293223049385369884434179228656211337050019313342528961765972638666646874073388872837633384265659904105499500218918177356649498786891094158802499767915152762091587643324205351441092707848759158515566083892953707797517345262114787650931257531286416261995960600854546175311710122588197732278284226399136087339474501644582250901178804039252157529207701608050184511060736821791961401012926375233522999351172713644934205960282305668169148341530106706766668532581165725880480394397961829432604064725834199629997893042216344995809806917028361458766620982323812941510171825970731424296244584953198744659515710900453262506235658153762930093438345118763403762698354888150350734730167192344476687983660425115089188656677412387688305754658347293808431760660135514726874209641163269403404366601036154790421230738066051509162118051983041466253613295137199283332014272862918162591804184397332499727258978090672492578852704676830423307157793365675154600366555356212116497904254109373738894722306533858269864586394127400518301758265579692462153454994398255366043840069815675564767290930111020879574182240053460581162729517452750173902353620335316184836055478097070411621257495782317278003732498560972336775083604586406330796019274986862814955041520527037662383372197096687933804009735732791327118471400984913788665337719686158524971963350127166169660326648255559624666478749145874659495864271664333995633079541780129452085397080749474102515267658059974727424481713879559254300730752759552218839748831861807017112693597463202005694643091227326420583021557512399488095961996486492891353447167647337652473940301429985926714829503505053112855379528568558686714670474501722905309132792039468859204869309469168329856038591234344141205382607281887755896572115449636126495272638488291844795822666110301286600571968224269522715354843412094305665840715397221421389967165226588671482844300695247325867229699051187461800297525361452881135510995810590642467073114515971484214230415801243653829128777356195842272653402537648467039815959518754778182513117478625434379911228691609973562521390807968751944556823853300533584928484313533692138386018926835976902054402898752895381416949298730343990752286162089705602650800350690803181014476411805675057313633987106762528013498049482924724016374171284816702261690719343917811925521661912053558453627434342484702652536011876236761531737756102794724906601720064504327689150512120473265751686069753121691946139325916508449344594036125317665090720733805050559123060343349658054465135037062347584614042627797011239219718956579105478927557398449543974671776346516813087832423328144694675901697453538825502411788140620560227848667029119978717515649851973582795421452707220288885250730879999061672273543702983233448631902196023049768047339209681945830234119874361018632492046075689074093279346360645036741511392308471134864303958157393915136081439313817268238939782324665488946750754016642766619120654526010328483963418534229343068971629465172683005984344950158711106525308559200339946342478539916500406592542746272773402627079780498618969204873635218639049759492678670625911289081705324955194671920063873645576552859316425928940849409482932228872814286173366905415095361475911761452607207934643937046193582426388898431551582567959616624885560459679152918565576762169605391752865711664320916954177739526788543299795272477488992702437581039092493589495141686138814941469740144955502063680895434240165442846988697077212787222159440557841167805196543740977010721144678838574418998851674790526839332715370483165786536248080296056817698492467234168189792805197745039599887403362770950821800064804289813869420094905546211853933450795863353254086797891790987018728719709936775700568044426272962430246024936294838353501188080410454075242941058812123916902210682509038549276649294715002068285743878007116746081294057361705565702732070778807859219944493155043668108574462078402177616428048877500428388471796606609702158638596369897252901501037395903166368419882131492013649652259096260784729785994221746039133548599288654784113450132414284511662781219743422985657407851510095474267770514826187952953888017871304804140329526672508580538154622931735360647616412446241898828086148014099631149518107552235290470459091919091698452628661618214519206167314264070075074562231491390469845146004474791454249410579855855444555103132417156856493133488707495683478577029897303536075687532066168186708163129890289514390732316938779422917508299421718707161691381002770753118945969953268506161445431414113645484892957379371099848537915447702677637842463092011616847123533268151390757576699753473524646209093729935717254622656152237046854300269759100803989061566634994628610561290163858735264970398786450145644216097633203843655518010151124952995943443286101236880066053878743957641306975542167351978675746626328848631527916182489423239779102216732328109059531159785344231756431040444031649095337525096599534721114632276420057987034622490958899749559615846941985444961615911831923867370912031145142174640954850634630630884653840907377147158671864612714099668518242386744837536191296129942711377260097133139409893218178284990897319738514103871275337582245247389759486150092781120819011194985989814090174200847169386871000143795253996785011427524206090019392218990544789351104426880439540740596091547010632171181442710693319408005875963347857094436381233260599578251992890581740240348586629960392627323759697727290051686658722209296171434334623146178152929649104134228426442793711437021498846197070051862078780854490493020977391920145855112368381105754829774518335689436296360030281808581091384151941473447325317724132812202653660511721718853053263137701398972304698561672911283303891306749699849392263889416864582287257820496268185319694382540094262941591266173372843863031758282169000253450277438072863951854629471804103016163028948813106727557091930900556589464117953299180994762717889959753647875642935772809165653281660587551713721359721669365895215970689760450696355258248999678981567131089742371004521180467911150588957951320786039142939459140693027804860407544906515168928074824910737547518873685103597470790038832316415874197427843772999356440425291070732280229300386319004110863204428765524439467731140940276447936536095485537871293971665974476774565212477740942146982545939966595888598701457920646385831619797388612122008764817338983011678157145711613083201439191037780698862559941701418302890391860807290691216985951361724448296767971678952696904107414223083317320736943619499523249603721665507073358794509291816913320798936056478925157956321855822281564499049615651844141957799844633312617941646324459823572361002422181024870665014034753135509889513369325204559223785722608899325362904298660477432893069625026829182140502346374460785967126816332622108514996509069121839988346412204909248618046672794911338404225991485804466109977618773722052497856022336056499651716462460847302520473769959665864533262301715441148181632984936818959031182873340273203169383496741247651131050129839968339808523384766915924987779673740280277052495217244685223678981103734933241669903393993662350448353839408480502164496090988556694833101999735827003191965738627648407875174761287019625422908731071052164130222724520265966528270784772897729781532782470062377457687750632104988458345583675878180629063958192704907539780331038396727006003121435939451277724992397581896006540782048097086456357756860690798040988895307575842992862040500480224948181814817094538704537952079625026560420668891239253120407891968220760594825884660017919772951599802811334177944992934226627688664612956965620835495598758326013979146759901223706937755113473089560436479305262627362738429143072575515590493156605748805372883690254573872964546256024058675994731996187674453192148723231905490384753552883524057647491497772305061262508667116840552898266629374364147634918506043406908114087366551498704063736571770442602726163436137349113272162541521861313576624450764158760329872903508142370381156997217886475113118584918997256037553824031008188781254136212609157923022842706904128728260508041044477199485213956733884220771641755850707435988821821343669515142245473525160500040524483205660058337343671639027940985318954685100331431175893324028009704542930447492948423826211941982268409213154283593080761716825008876785327454464106352665968173080870484552839607025431755707789261567184746470443981336572150022879816436522193969819232412350073222310455794398963071173636186176600836785373862607124452205054358824502547756939842003417386863174143803366254573100743093910628079319866275051538967259757540289940327204706320212170075716137112816694891180838399320697141436694344697030134980380652578151762387512604876497265411180632663915703470453114123341010871512313440046854206163930490269594533586022334933741084166519523691189451368721199899461620371250250706867565107556487047972017699039901825477696749381029079898085196341346401012622060110152403680432669311806381924149828219458198227534404432537290291267502253072720317999871499237820269357055847049039579367811815221331767536420045330173045723082245690452612751167210249270335223340753246094153254182018860260759203957623918241916760751425388792219621407872222760270402415107967630763414783226400385142935242239248067224503387572422676129828866799807128101101151178928004160893543189476000121123049783650790259016752148650577622523720802105303767253018094409710192582623604835522740634806757468417230752287423172118666719713086713941561735448736568895219117697020215964811211145650585335613321389262594255051780631973444164163259613366448361782786507244417188915937569308556094981858901480520362299130727322589612581638532248253941107330270249238439100532004147203132517171041754139752329061108394059639312410372229635306654265297958118640195438593613960820296963041459694086382905321845547160152112041420953114813628712153396274315456654613784434547924619215755474432737021426269429881728409603962039940338929219406170279197044748722512948502884235796570780593585541574515885349860587075467284750817263946142916120151022112474133101761698976127201945182447416313515085594947812935119927963247789577932104181786847817800905153554288467457428026401030004362234453419554394357399817382095427399931484026308871200533001998723538709529315963308442489390673552505607576543673721753207267484317018084528434950514115953643567955743448224777184013984834605094643190638006748242785857714107203128870228461692532219776656616525702227213149392319553156026924063023138060497657806154679634027261107431070044832055558992393060349114374000726521497846299088218120642821495604486714189190914758223943811596690743171699425152604391188794798653676849179940420769118061544374811371162689545004754509146940970876677539729073889974077339313494781975736542978387705163392316959513449220045605248727203540543132983497461952812683506860117397316088243710213049548739791150663425138102963288655659900682480853022205228072045994574325999236013075338722754068043811396329513259016104234826351743309183784984140128563037801998278549955395858992771218012837396629502855885694516781799541300798740353906082183966397438977162268808863905359907105082829450914841908391253877907446068804106570315634315043174915170942692711926705751321543703872458244289628292224144133605673113100999583695768188126753674112655296058885048883406754692303323931022915378177863185259542119955684076692445465051528347988247024725511952681859648778976304434342726830323044538763996775714435298185957262944122231492274792044552704516396085970253041803741179183000885950947494170431808382228299220103636264736011714897224274128531272114889573270881579450402582367679178113700209963223865981687998786472585303305623215222944739635674871172090441079505360613120243194402688432669549906407666151912536251355901273748672829435686150663415684181229584084264033213016474978396622589847546802763826010065748754988877815908179330103940735016025265517248094424726204176070251126264263225011656845224359249414958223552608306242483524592544011657840150785298577294200887264232907902330454974870630837932889009012593824281478848137451345909027807121100698162682498129371978376846486046824318379891803551723028682392090778741673867964682487109903196227629924098867426787465455979801294031376194574041426750603809015053795603394769423811679376435460408800842724085925031089909312675438065984159384344541856864344932584915337939911929474399038123652307471269589196398581016022660164209395258274332551625298795728157875537820963672804212524883912088738338433690665782722170475730055131629531266058157785793445488525575537243747158317738434429789979311014960601551168269612088536012728925692366215936391438976636667418856219456064638479215840484963288887091146536287142001114557150651285372166134012296834479811444203435789531240846269622620313577765914507880526163266227046197404777189233073611990035626083194045996846556458949943275704358452645099721437726951467447594680819050849294951732085740043741584685329605689795585638249848893060603193285809482897742023473893216824627735236432329320759266676064988681448266578184268639651912927969594772031202947747435303864471934187988953384700705612368307643965196328379687478373925355947151430740399338629057621344915389248767525446935157252186910355740074385613340850296508847195292548619119912675978057291862374469062734817729124661276198987494810556713379537227394249796796907496308205140600154508366051137740490940569754370165215156042815552192801737612825583882525792755440667383668358637581946237496644024469211058215172471409353235691172651530797935076850620107701822525781944924517210269008786423126948651793614537259855761174119187133390881366440362686793704124917009935961043568629806179980283141714137199537356925595553637390178716986051748709449242018581514675539787835221900990805137135272803329814690746262394765365571517294864037079167257874175071708359014051127441428681984871496915300198330346847188306071914327696705141134813201489858568945990930407154395666105619576434315123624771741716811300624508931731553580600886432377424373174077155503635908453332513463514059215353497457382435582757432256339897077023790009085540918510389695269409040960754579512545503698070758412543805226476910774470721706655264981809779661911094456280884917643775712397917285565041082112807004474409905375430535051175639278643582134974168504631130964048657679841784201085057360758349372393327368918892609782423371298491577271173909212626438850647568450447015938863181240763683045484591373617383872201293316618980009228663460465196914851056762769425331066964237909205920672580240663720469467650010726638497450027359211279669552649947695736330275800309382733404561045090068547013026089621751007239732152571369449121704001449697385941109104016638676148533645841487369866635995662225070476911623321646743274168821028330064518393508449647302928392108394048665863947306205132662484705401715025461652638187557985527002899617891626979976392479557924116750621151420101312851002286005244485460352486672281674928359652483959844082895721828032283802236114607871761266022032732706787673591264960276751468567007791510381935923590988775177815987593034783732990899628365998472856682390550433840503556164373550208921358008616647895347921403168318182956333852063814365047691526270638160276941122603996336413020063080388297681287786408314338454535327773380036714326338516033917521239475258246524333362389652893120950813811869775487572140973329040761555147278828710790462903969161581545167480928891384914678149720479105105145462441790032558193262194366454756970634230419537288787858842545945430597051746767579123841754869931732166579273078360676761059886106065692698577545708654362430674816992658132802755542675178022788740001929362715229773319070004973711805024852969149631698229886548928031750655036063282977687031670639372275136721112545770271153763834619713637326290703000270021073258554853429084749880163973056227222376412164810079733730043802396710766721984991895380977348305920867067597866090556244576602057970671067281878181668572950409750299035045805612036716707336179417940772870572753005014306815098048912067459254362685146734648250595324654382668822315130590349431940842456597567915626248563809786709354763077707068180208811905230306185321971544166550104829938909652556029268058787740786934987715922495428745838181248946547451477353569585844291962870897571160119490505412269798441688878828110622624302475565627161602292523903184826972266944993030739178460558524716043612289519744362663832152874854173972112729330231850288971632104842460775253594498582562766911161199506235345255151713507179876126413397119049410420124112214996135428938618461680157700155065465814672488239153812613134884354923983074666526373977101565332675211817843882850095384138314827980228518609522855853525632506503289011792121164727452105085905959704604030016445081537491770380364070135220332195543962141096878914949456544532460535880906997473726283116040263773498596494512096395281222237981820334999930146192335088126151161284344369731868414881852066805255688903015901305359145111783860427546790459953862837497608249167358267812850506938652351845705047589330651734656598631174605276047692627125577030982211909793053323317424030403280271999500533720312008810065169500829980500220002357678625607839910109796048268771337592751236186575664828785853686084553479161988369342981529402662864858697771630918507130019681671845178030214923446663601022385363450026141016277338143890058487651016227592217887158502374338276910145364931828446922929822797639908661615439531209000034185748069572259090864413757165197941006928353268227221569937401833726687282456587907734537656584672660667917529314303242842123159921818697196219683176115869474583510686557333977079429863659460246817605396743090194230040701079127798457246658350652063013033264647637445566154184584032848511627588878572221889327720528736129392098171665504279365493520529898478857798203589823800036945941323444259471876930258032462334566762163625825905682775376165481004369511607104674528086187289903089645292948608352343096321337303223774806714141132189637994388884784561924489194388520274308089230770122561839359876305789374919349804089227722431291343593363868516215887959827769720409366406980766526923538811788793327531968192540642513749270979022192683821443879690927733292429767292038275828606856374365463598705162672577113956017317759230705457636766454188386469836212505038789275918681896440967777863151995193937152210428359008670436525417742746749849126737805906538731132494235856614795684547860134128636363340105448241018236682087176807637600475312978873754468908071612203900146988586032652112961564206694344364637345161657494043620436377955386140562817861647959489065416932630369243346875994322478178228334374813488078581550763280975147784314527268403304220435433710515585796250281376634499119726992264040981829318055802474731458988939020705846644821346682028193740742011168731068088128515039138707083181518108410742849600020637483748027734791479952895843218969563182772338278647905058861116203580091289853045812077700392665970323639770567648655727628077318164144906643410518239468761087534658531788618355695086608717727716095693287606021660558232402982638542723038388080118897637756238535743572896817487646872893910664920457573642230157830674768877264586918626949634681307714303492860034142297485507375274280234809036589404117850602168541443866091275718410860538428807328737404779385733234023305417345359072122610219335517270447554168692127233734098506685052513836604796777292126267955265714982630604246641133952426007913044632514720400864035060038910936112139754800479875493423323352317539122250535352089740515117723664857393696529438571552270989405829933965916684040796512771718759304470531834260420191389242578142105050966481547096319945614874189552156763236495863596416399076708216281986136054961905200515889231024858768493197432147320774825729649554703938547005147952142044275626057778045259455110301890724187289422967568800964539190710294847435134044607810986213721911465917799072727346590535075470735990803585030030731730801055930381897177452484421113336419606678817001099966119979194291039838860562059779101373006575945051801914698433478753086983898021633752713420959155933053249233885916929935918388795496064899881577494390748071125512318932863649453154411769107632382867821809027993189962348617688696571921241754461217403117977439559389271331558687452593133646547831556794995753745458679391507409698348699622821028887997281770098030985238172431192260657120470996459957731341398732671158530038959794785020849517177902626857496966835800907032369515990007402010545015291797023928482243581319469960963842540285512539426870607328989047077077706574031479728127492474851559411795440266889450308304304604322429150938013203058377353558356874472286809633000703651123085087662878718748475718680492655320671068313965179234153582157782996638557959891504960439986431684693466370324003590768555920989173506439328026038673089823383971555596872842184516067742064666156081135530908352870948262938597809299683990882226090463221413416982996324172927046494116888016687342968595971870373275021700421680499095364581919488527472728167897921831418328973521525393073173782568349537768225371288582096548314417234849042213938679311427066156025981182040285920695556642805816288811583580426340765464156623078567953838214227493957951114874558407141095294773247759607298566842606355339065644705747359264811115609617838941805980985663255858913603514456364044299548439500167567552775854061512715731905159173375817355614689499094601605752186904851617955533404017427719888295821312296699743379020142242673362216749993516453514520860839544091947935386252897129273844940904842311978759737706459602323322388120730090964068475368520500128635250081499730993574367908342382107436469765218746885146529006295630934083316692539157693814818061280829402161468887325175848303225800307452658337210917984356076162970888807602903372088899559716668879653368886609610295908587304008828996485801884190311227362436191785921811968720327425392736290945795246711098728102972404002831501769571202822985929584366331739369751119863225329887628848460829279789022205335271962040522602211912320799691623791818708682971977326664979396421412479903716523250785259743577032068779659844729549892206907543983699814718167609320272765658917632731252595626625060149135114188717969008210352264612875799776834603934951766814297533864036016143003330371059290973845294832918448980068646071190302830628463329449611334072980101940697659107721359842505560593892003581533351420359788328219988690591913303923804456040065387437111626734968870476943892171016240088040438589597768088113054068587795271886148758256047111440517636949682521689545712868881819012163877326224156328084650543311169272964574861530424828163828544170486004094815759104986182403338126591714772995578334952173614854690609611881985371985627600638479540014216962337158150875554149779807174265327460410554653925245415291490391084315199311041579693979805684537993645252465322165347624281373769804030580131337035154812728860786619306947072595442726002184099982076151899777385943065328263266531903360199371947451627477379153285595024689144492048409612185789859311485925378268382093993507225944186545663334581821469864305562700184704708236109193461536682068707930284406956521053375177399240931528281096957300379344322022921128615242685687827763728615544754893000657764512121779330885577449148931830549440907774789451194908642192282996672479988872942521907334138245346747097213963660735135715237388318260534565453898721679314021714343528100366111714219595323019344463191284462136063757069563715310729326490418847868697901821790523263650458813185059863653851564723997727934092652752497326625347759356223839183939104553091048971490188151002708108508185775591115511843598002815418829554404036066151124116959740721038312024948336834981294484848603304840467851164500306624948234339382197648371718737402132955646745868180848677096469154663092034626016351066200481510110494776727622308902342113283487219752995951872005493850018628612735898954879508252978630640908883830453448751328855959007061240929834784755666850236137906466600171083713039109341957869612603929098113626803838144709617481980487228239911203777367205974944097083241856415058646205607970219666415583651445646535767657674967386924389552752079054152723777399954354604066658425721034325783889581600570042067740287837008424966772075801120766604574995355164946382389564114143147795137165925628751012388182393211521371344070754942694132909995655744636507901626805029948746641349163170687172307028429920204116737433205450222932936200510510565974546127241362249732677889087410544786814767654146805188108691767299897277981127158871476369316345456783915138362182366580334804041965779442351450371527027191256462212239762741903584000952443490347503540007578558023583175592545614626256262068119441734159674518646108491976284774237968970109327287554148985279090841270858002666561933757645405455850072786876186578154029723238380021508227152108767996064968349705933620201881891812274541936906617203006719292269664753129761211698921826755357836125268587010322773465943022399241787627566422221324039598387263123946587360948439291589926210521506342584314250506074082366535224517546381175749684168974112249089364883530019507439733326874802362110684411471794837649417030550007660379351587157764643133385543191934910907585341665443391614265318342020310256504163886390003299416444138632135752737947804675190792379381462279275738976462647422814180156457652270515543857109537984640744091523152423886741713054604673833534797300510641159309564558562565074124410434304471342645228887616375386464667073313714245914899373822901234667900589386576817168994200059306521715484575343857745036045704273138270503440742586798296775210061733509153811474012011340256396155300917050385854833532488420305613266833815621084369362826970166554514530790105710707271185249561782940945970535525591483778255540036526622282399704319022743216135987325483507351310216962935731235784801166253592355142333764220880430326724989186338978820943585508178423419548533751706724978092795533155717392406787722909771918763382484752903250518294961231445170137810463686256865745102162141979430087862503682351975216101610427189804835288382937078636277696059929865292750970435411811422861370821725262299174267784613880469264015068242823677055023367960829905744804982457310380023712463073081582142338860973987242666014288453207926830905494640286238874555306146516608519094868487020778612247251814274228242392212493509489093825466888628592844552809471274396564211975004517465904227648510275546637000094003403786268279264550831546201093719794968993758678303059075073156339115558191998863242152059812431847046789458889800533068610737503784284055738515968057250774084926369470284895471591584789603685172583494608188503693511612263007469220790886852726040351030485884496229775086508643330107722960812257129850640094256758681832355930317176228240133001105481292870855662000370518511377442119370890462327656504087745349653014547490241285652459410370325116567393301318840344382003299205889552998701296120336842066357377685285551834246284269226354224840559569191962551590456687726671447667640161204168245590873051694966291268134004267494949941308783584548180776047485829978416396614982957464333654202638265865298857458753782994314376426307620940357275898026717817946901732692816957824458855147312904143848615248947333972804828618513002074002568041992047193375123236972071822192247622780442649162096843241605507489656540689661289311182081099003537943735947727630042154169839210504861765859355048904058633418900906301934086659470910416581355484674864205404975811046377136972187129532272645650694247972372458064603462537764969295787309071736469781802241946292640917358934820731850706648930552903181801570292193193380362314831156681890324428986601872407215438741489038733568860865598653758065880277297500832794638916079439763892652434399071985366599302195281325857246969415969735575063895985261110156461971828167868999348700696675248415149853663127322527693114559288546305803008018573845628780783264753071203069864309447042675402912755085946658908210294776875778678575105598475273003614619207788487642701660189232571704479420650729119804564466901411145522576913278533530874608030652310754314506344918741797709694671123929785541562562679046003157368266072640508371997461371977931230684142507399628855526897916442017882995569892376950612986667282277046863953930724464649776193755969578644820311957622400976637647708641240906098272893616302556802043256397989488376124258155813890803024409462639432216009853594730968297467273478767643136348956191669994789347829428301849378416368516564802259239933467471608074673015734782317403251341508391337317836670364965768757759347258444833798220040428367753777942966008375244791466447894074975335013181238564822913336327405840619211101754868853987816937374959762568817627693106021373355295277110127184442440355610503015506110060619519528909312304073586905525317586556362686936863411891639756761644495333835292275148391382433590623899871549875811299898877446103706491186387723231377873109282228953445375425509260794261002508949214733296224743885226557656734301630629133812754085880426174283862704538171619015466866472417097694075120318257061129431173962167011808068043877830580417990487977546711441522567655561392291731513829412046257553533222693876178395449674290054028508042226494745339773472208228275503227530552230976440859849151676398599357794423730132982243183222712362082975917676801867218208064198179659232945182190521009442084416526034197203034733365447735252150225182898984949431692424125147328380489661058654762582322191088694862312067961982098966093381171275476355345196319227808330488033426075637879239471988257432867734928987136249913713043908112595034175358640313828698195165013918970114008099912723126727397939195485439104761370453465746909882669816842511693604191434348646228369091002246317724105122115384906346625436407385610077353829976299000028949363153970339406954337028555151838305216274783269200516060527487645629757391803758143203574030802104703474961144216356889382838543778281879574214136535074635765683674602135515270965766014409763452517718131854134641454141841068310663241177551930305378732824904609941851180175938326283213334249642081046837753060826663152562052000719564900074545717222623782892266241049229807144650453927736785923497962448071879897811685470984057209543796454759346096412319270654529453024288951595255283429606294502436392941148263203262896702752857787515919213382374191804762270303067279777471401874204571152633739827689809346232072646086270542932641957049867695578100641852151644440124408278813507598822335269076902062684687920573556479484247972698534402754395869610292100920618997243198008591892579594695307964366668737078868543895701361160743136642203609692101690025287695710692096789539046631414806276870250737078461698867242952402601705146498959555699429509430814093735938464614920365290430632069053763066111740306252904461355354515350561745245217067562113556183194185889513376362745403045390992821192379594869781948417082870997241223896449165682825826990358276182708491797236229942538875644024720283010174404519502014442563188860371544890832205724903899676133538536740398541165784061765298205917365499595020279931571251887971707658959820359416204328016597813573830410064527948723677317220122552520302114052170044405147346086621719446306911136233483296865845833724023665241564440986820664439119028903223696379684973101377172719640025722262134205309412455665994290856090742734059507764177161741297833770763301997431990263379436180360048482120380422251727218089306307473522460711624463488404224920191570726750484001242502908327828974043897961939575944700351192752486621274882312965254473157656484265991915449502601735266929742682772903886076857636111731806204396825803694087169747597790520393327534528106293298518093704136189484041262928236566471780498594742824170013380919561217813835412887879895637046081654688971438494727297267504170761631030492256189477042256455895206175289217765772394793773254615269774335317089217807894575771309216284648958036665571045089036026392015242160696695472417862431407832126024656635331270014919180583137638724468416280302689134522742947457039285976617326474092553307514142231015928875712020750563830200650769757612662386921019364698875555600464970056731581302324774631808710926554474071122016437608893385101139228599212436035238771792742501829838929748517199473938377755865722831435485053138120831121886738228869506108113232384630803577413841748141071723125031311639145860014332421926568629388726748128351146276509463778538683730656446358795953048796196714691797808101923041473575284289550711739672814629722821958710324204123940142715928238451599764406512738148874292427324660350360651642615773494736590236391365533055974954617470988636978289053611910475615926114697919695053721165807844246055361861477820828592700627478462142544296895364173840209270440499904789554909091853200106043791726673031950872134916806228865829372537311061475311541766937783444011864959312610574667501366716682960165275816712703342486758484088488792817188024769034270345271990899100200699577354407881098626209112625806225642509654719739766122493296672874489407589870224887676135874407832091454957323049865811000659966446541991240457985366132248277954593708460617998977769229319397835891282957293455038376107707423215150122311313112460232001479898255037622147230181703120814271445942747254196885212593632534027659278968096251589524518699719734152461996654169348223024301728747687529002546800891208566993744030468371649485675299391786818503505805824220888453577264142223962440489104184054436700062686167353429378058321947113192760343110731957137516498114060372142072404894051145066250659452827154361531035448633793457974486179315692966755895790891961665957223761031905797803303360507075059519500176833503634730567192030738292492796946747191490463332513570520953247873369769620251897046352591908139255582347066007863321319947192634555680965157319448879995663229290599002344777721423061636509785114313496092625624021015669687133159028320156484657116932721178688674265298539845958580286066011096029603116337832014100754855366679095429124962814675074191658772400532180910157927864511000100896226599491715892171585461754289680878333610970484893525624281160928132922097684667822307931970241881096606064719212009377789276256828533573115584106534273158970834726900907753674745746672884544490686321803632867422449960870596232933327396887467567215133902584761317459004032297726533603683400263386738668250991971322011646833974826657472703769595485954148184238334405427863533026653636207103328636498773680501048447493292010707450945768952547145622853655478506915943575658746471229019573929881812576317697345548228505349137286497518151409275290959792107984549531228533799015136037628204277318763199556075147775765023772625330274679950362439971684389566223194070391328279491772302806341772471826307766093296524121940475411964734785227734007628157708228102325936720383699283488371152093941849119830149763780627445386670622601579780959182194308848232096329364098542135252211540421902643190811537715471180611738922151506714129026729323327459823556900766576183206972468326868540143773670279253942973315465978723728325251340697922582637149133010693816709629556908642493711026972267020961857311425824844603174557293602183559225694860441722925246731225801060521712494949672902241600614736677010731702405630074720654561355440020020562850969304128545007034176475793210182482981358850012513427926546871133865426654890449731658235102620904962323785199139150822776692378903218191839844737528323963099423653674587508924378679027672964700375565495514535860545794385317691749155405434062992256821662081172914058229121620517178449380471986736848007908158556044557827417643461979661597525739093560928659502639054942258835864402400256247721920362936693116812234208641714893285704348607345965944011705066178362512906470468392289952339034218233148216305049391211590872266345818241455005489275948470219906927139400549191944596373188069560244445887026871256257356668548672105830757014410218442529883513462978872463057909660889442535430725122105593541458917584102760721501651001534965887768833073496510553060929560835015805044055437590311471521041277199445807555484126526586787271803156005126340983476966596813089166991323592854228059481713621470463984893484672040545001774660059098291922856995987685826577743759030853391412190222637483130194454038021702140486436200967187212922229532207950510766107864891582254816629276538572597678209153120553261940668344237170135109451999386066834441243827496084665217352345024507209482059745710273228343638550580715889805583708213000263775009104714330345403498910225423340118995997747449092335074880200532566081109086822539797605014457325390684425756118431656658329428130240440933095094634996873606199192675653017746547212744721906488609055589484993350762896983136681101282890252352441972614867493186472110758927749302090650454484949522461038046046636405684490207258701470440542248224571827528676345682399532646783437142493681909882731630842621858320553546030509234109647062013936409623655954873137710085193707765741781186625546866911864519746027658615205307036440287768871146224865147509274708730545738630673908295862211308743539697419266566352611542567839587895366933122955977098987325817112705366156281669049692945407372453311904275179925520813024657163347244638348359723465409677186724996051240358031619373694162040387502332240543551532134653645203152447578469836784392601906162768653534558070094478148041332000204235352532825498083620423834499709150598752424175357542763527919551127531392356330484684768720722572158527602794552777940204732384929999536770940281119851347261634652343367052003412956272266448462820805758888383128605515721211167070232652014215526526487251401151949973404701673333984621990136062726588974843251747337111443861679848566174492080596319300107000873700173588836859784658044498580385577283802038111174313362487422342570019128869827165706213248748444468974560549563470854439973288630266662029968194557053708043933171331772904694414731562604835667003665989563073992237877820123738128243864018486287936513494113272873209022991866824467402002240702332475452854980793400337168574158985845394682733418106308741740406092145422390233628027912581386361377743130170783636545888131188652114827970325645424951900119483468111454047609478087561998025258101857822198113800121570784154515905002230422085273646775215563514504142625807862784342192937477747235886239571237071471540887959362932887024645765280570373238221317575697133631429689864047904542622548274381257031400311412449993592470241413705706793861501586216463200136253862157543864481952351758073364643538982470049772420489270972785708382723588859401318759782192781968343427995610137455331342495155692099377819327605395988362072086742843473585662688704551511630166380388459127423140591725016405079932126733958284044582376710146385918202086848962604988532883555246059700243359401276726062572091008427798188676204308309533994446618980884522930284905938437534188810254726417305287650197211331714119472331829119677244886894764462986211497948459749594738752946435567707797168887977684365628831404141408938336062265504302610089533504083214712973259794548074853401521989097987005353031280302950859135553754458109710272657633953714200837347458336846678086664133488097734557205179511615906749155974753670548591720788742429108794234549669117527919286603904696309980674079631443382729457441063633930931221877275666458668286315106605423416399566648735971887825199953380292305186367428948887193397764970509676353486335845607750361635066364554594233136467996025143863944860875264177152270200626798016894791092234853251254198758720619435162764775628802334273861734716906958991239305599742751401088174462945708042570882782841587295201153171075424247864143986501832938471610503173382808747048156125797243899426588088085369296848375196390739300660176934040133905797190503740526725392491014438910414273500065017987424622780839595143541581430990226916320976845340226893813643887271000635739575280710870020548068664785602512682158908942449113004534294403837666626079850938331887550389667720068123759658181258041466591351063480476503249093633258484861316740495165930805241146099429263638003003503894064249457735093299249507338216671960420067383903943189657303849592134199789995745399041361174646620337902321894860397484705585891647346881790449874520712270773292410878088820925044060892914678359381514693210236198086831021899777749082005160073883859568243634829795320044827593840330935584589787036312879390657433040278246644225264233621995860839594431756844783816089007051011190152771932018919528710400867164919308268037837459994843515352848803803429541805718847571781094509651265084905107518011396882484056298713412184976852390001395913595929888823960512715072288713117922226651647515077765092293409307189916397031324727835197495352332016692049667082659000782003553221550216453071644218108648192572889846041268563528505659229934617290813817585830153824377177373274215132769469879095745652442628986259113211948247815539075159369424206773576078136012465379304871982924518419384484940352725302873548763729522285970339956768002098064494313055279117865368369010467942255028898037159576258679695538465545886259100514408997376481448328752463541134801477948419915060852648520525122941746269526661334975859675439283926376396231747490808705196982848728789488988885014484923108628536878131865849181928253368535388647324857926160647630545253406931518193448596564956178599000387590979413049907686962273612276131923795022603884520193447482836732417823686630453892239458065586420024007593597895659996192472876212809917278746708099403163429079576137554600969763365772677256863984595531983408292224277876644843570620419476150474829354898860675587287496991195699716731779059898437903455607542586269548861265932119824454050322460798984942837427165501313538842904579025199523847708150085475685333579112541093030877693484025165559694516218608280404066529629018813682298712919687890466716192556115074632567154816323344560027775485404376905152382175744577648399741595259837100221653219912483651949091990390476069478936052044292020571507562561718479148622269757367387479835847128903592517302583723262923504967069231696179629675103843857268497442020851212229358396187416609022550223561383508149190169894592717749118413129799213441650786043749313226004912207464942619589415641708250624669358107117644744043944067308523703316182263392755108057134300459087308352474238190452918314012775421640086894000341805485027250159810792958608796532262755994743962322764548316016743116833688784706778239084180006909847837000977215490681475098211470409424764779544189990943178939765569782297918025002431528759268174392439612989184123863247547716632210352720987802848051775525514426261850984379917740934754778060598964166912201550906409466891626120769071787102152365800264753931937945100722364702130109648622572358714563722253049309602016521247809170635827292663947010694351007583800255319446253420324303740203925966310921273191136293509983278390893751234917817087227622039353755957823660002430459116937217432268483548804074641238850711733968672440537257978563470505606840874041789256450272057570441171792765734140084893897979123144788807264282921485405785399000811152195180752413650026850791707372801816407095378511689684951579949982702305966025145554961152780830961989318599535938083366996492734666625973802000019242843244203385147454043188530838126034029370608938389444179082097921823874688647543084721440571183814073807216556507524807516181538672036891357894503985178891523705108647494627522665319069847162471240292684335995445466785613659878264440702915508936115450382062925075290748015723159107745265322097017944935179192840232615580943874681234138211830551009302215541053597647705284583475111968263728443179767568992954946386345314595656784261284056950831040525598456852207205973998739814874318699649992576804613847234219773612928504517120754570354774243980556678940107959330748978832556038417948117694057453930857279903658288806388475484734857300662672950542543449681959741576052118071218745879993215662729750373335653556695625043260032303748579864500450852441067060730182330391038473919066747231724478762806904197976041496780067813781546614566290928516194746102962631905742370271284328579222655655522172859730462789035225190235020449792497419800988122840715778703895534522614719185321528835253104731385892910326618132751733758308326981658517754363649350193536894393071231239055866386469980749100021283803295560366075953561231549817724142619448013606818585229005058788342586571941967034704927110938469158937337639313425108574486592288481686839005796327074848665445883235810325368749704101356659592129586866370440500797318086796839416225635658516265390300167305958251596694460421696633481757314876029008333149348025856136522441535368426255928126806314818912926807333393881642499014210842442431569915712332257447715514770859798800298667248262323519712735320693027622358660616280066286940545345660008269938705762702680052079209932059065606238225888821252643280045095411348977915920620202248244804429131834364545394262109687330133338501402573990796200063289394862281108511363864150636777629256795395506046454493530892828084550182700341770321918001041994523869899105433938891432758119251089066935770166466062999453094965914470932225320641569861750218571482594258863307641929161446900095200851976447778293003770238944449695008072869638076038041002886870490456381110638287159000938638575603761465381043218476266940526805110379391735638636770246856885666546709606068705367400226855619485500542114026765832424444150302431639659921635732530709098897711780604824600824202478590182273971434457932443623584596456579469888537195416877600067755484828514931935048165658268665223210947398349521650323991453487777672114077552151951779408673198354925867268445315646585193799523049820816125663858990484998164800902363380128857414082757958846276953549465370004835819800985937674034619131867630675208090520210637274111804421472047676160178290759120580806684553033811157751635913088506183834834777484705299648974652256307085827351754631867765857883101822365585359608765857213974515034214592885946713005165569716814880006798509950872888422221272160925533364133237781952814425174625511240838734484588263259081189318047506385745914524069621205858683996288358004485609188911706405662582285219037769280877428555533863198497325826144494058317517891162645044068751740906631334824265704226445686954150929691727168583090268202516978853677840443500443910172594347990147262878727664118185123284141457816553599333134546744116204297807354627897104762394927379181432571564729455941373098529976191836705245375506172466178156770822880330127342563804642805214878837321113346031971171175048501319137649435848265352155704540086725527117529169490757609302319158654924448738818633291367006114368790077197733115306116458469072011929998140368783221298115245690351310293725680477331276718104358328126824438697872937228938870255359121265736793539287130576566711223443728247639802760270233211516460433598503507930963373512222066457965930964845279307270354152937849219108599951424992634243720303854617654726472099199322233576106673953286983329713993923775545955692290476168363239284977587786046679885735950045424229434015225956285550844340142180424242985978958208941288716089311253314356090914357212603861818199914494042222065767246257766770232391519846434872187059105639922299710882979974661576424550997015797455439209743983181620004514754471699459779991877728012449515432189166921981597486772280464756482621642122463014734183698883239520544736276337084776855354197915476349269814591254587535389813350080271793810995885316172180248777105691438656022863740697263504315722942920884724801766245803916905194543061705850956180745219468967431501732540770362956056012083393541242436190700662233896442930438610154222816821923155341724880135155317968173693411865353986366136293626408860383671952168078178114492530799320237362608405163050215685122839377367116702239507791331801531873168513134699986717863834198040595875955222682941081606244118362065609769475554290430050230341568492387894107607469965950665084946360351793454372006222538521000388306006350568885858714991082105255877674226667827388222922812292796839937236975343061284851977838513251260884786200511685171212200046299218090455986292237998190199170225606040960839619194340450562612520983778987080521814588652001021052497931905275380297864485374307519238780052925080617591308077183210513620203755097436584698854447227315250116976578490644865615176012881913249069922434204145185121380455864160594082364006817622858098034841421744136420066760927787545150437170207710651136741124040332831758869811318522244342817037193511892843613199750603893565679909509872589942074892566709866696430288764269406763912682852002245365406680150974728473373227238157995982878138696570951725818765357370219467890574959110234705949600151317546052244354009806088992629791014198825706438227722757201773424004280517369110706285266907962752334719706798526283387600222123637367554778633433802942222426804369033889287257621112668035545322762233861390620192937813969810594565089572049964037393850473982680173783008434097004950426471588109717823936545557472524253508316247860420353645693965685581514876166909755184186106209709363543921941463329551250531732545808394227711418175292224399144663230379420635043453142884287353173568057536372715105770159022580567849708567166155294089732865683810208800198368667363381769360031344571426866947935180622225364270157596940594266164558232569789396539054182964770431955211926055454503359128347322830104681108379588942431458576055398150858963177232200369395379376331451580761023883303525430481790155014099578732869187613239602053557164920611262844162868796353695778214316368972872883090456703718197340991634729520442282260537554964058343065184823634159583269034526579050327242973565591637701045537878592877722048984081086542487586766355495399775166777570329030465608712980928181432537654305483782513423940910995890866012349627595358129374085662365814884692575262880939336881330604967172190277337512113440029679198596916006265552242467500710682377265661087268031802815286528399260896026780470408681087884340542159160700346069019995365443682529301613239478886736256465430542683345970193287397408679647634054836582424280239359535688810800984583359827651648502427231276814245868705978132038671751409272778171190928047248722347384344240500177781182921159221417473949085243357417378977542549800769475800186242353581168786253390114184170477466950031474296705718414129256385602790728197619626313039338747320014272673034240670757797231481591193252788506690788589576248038930253476584894226272987932971424307369723084823104416582812963824429303092638880326167364627294003570071787030422463075116773535348612062601957573885515662983095817660403843219964919368274058278164850578654764188469655175119526397109040793732946479696713307382593111196467808969219894054574006241032532910545288209936762551795001620744003765264150223267011668048133887566565562670825472309241108741330838106671707360627190455070653016508969081797951216964647385802078331372368427450855255299579960231611494666071839665469834452762014539832308691736553886797604768430429346781222788815646029155408533081328154565392792757780701122424856078971239404520954984557855280816743266280316824340768490094532979698840066575877162176853463868677719461491203997411582365200873304802678698012462300011471820344590315943823690793884429136986805948634181775410648290439622886885390226403815799096702053347572097258641518987091681486759840454790703215736087967996209895995792141708820346581834306793394232999749571224275123872420404943017566267638443183635297838606014304681365776539634773858845680828339073822487587436326446599918335889840463344931826174866026381894176737875733366809770627285429776430600258879988395309875800039089870998020362247797059283701481171971863381549131037194769151441109720272323342497406633820543454679248892739835431075223138841678071567329214058561921206294617879422954531315643136222245139017574871658868703568852551083903327931127563099695527556320911912507077055483807447335838133491503355335341427754196276273532194334812631505431327351534539556744389986608059418808387315611248263765555292923181411107973704945427842980097755605105686649612378506949158316778238239051914434174081670868457498131455826753640457725932684036347816381697890063608481010248161801360534552281255398633457407464028363739571614601859886250418081610610101062387526620178635969195370288742050847335427021532627937279609152843179023386123605031074826678436459618241556446921346759420039307050862715254853829397206035532754222747637469210116060139438033677542379801329570461115192523331444163509444918455154819378312933511618493215530281903008463951833133950623529376572682002246754687150955016181738073938973538870063737865706555667596248592119769947299961046041671353945366072166265520447920976806308103065064026136125959411852289235187782189834036182679586181485448382334941094243569760520332833342856450071862689095586634030174611478590272956940369705646361976996164706275580118651791759321562449198295835499843027467963927538970986073842607776751528292026861444943347797634807635705827917546183796172762681465706252313144816184965946925228257577146776693241845703653869088198191751862523185073540880296206047809049177777413524676746224779604671919433078843785287676037749544343501144248648248844977608612927354276628620316021483349366157589338851793379259417675049125914294477147612802544719516175857162052176786685171161828942669114249363751039166390711467004297294299600442403081784198135603663591603068126965452447343990224859048003482197708948991254112953652016362599692072825072400477701010229161696561420167979927688282951954843535125690771720506640178643200883563682453719488000672018752556577078112721221256811919441077545981768639360201750603191510891599611257838664844982589618638251960451982217745736184176327322595413149363232944089094057537264348025963359443368471536353703118844673660076864263089142125862258323204790982804753503215730685249938250092405962542040013096125827148954277813891425347409049419894584203714426096057284439111510291342958667440109714261438047781630994512988523987574211471220215009152870205107469835500166972269362050677938169605551495232129822329570391912929334457837583219745964321734768035627958090630137451915257980839582413322125837845558682524079243439155679006073863642857522732842588875754185916378838850366950162128452887771673992054774229494606064841528635236354250453990776678821774540748333436820923508011922428992684595239885953095191926744242000580944255066630712007430918282752924331039201050446328101840306018240982871704893809108569424830945070781706170221466269761045753788794460476814804529132846543451215045934102200214242383559838299107040078219772292026716285951359508106474793726897580377333705746102841713061896211267769597191279762234900242674019109554688937001672958493618897312375159232962267586038674290807637956829571707662184837776004619352471721317544814462515655554062754586660950535475811179880105040547806655192606227893776760974090532758589289488525859077608669752877336797137584830827401051686228956295609107346893481250168489491638431090893883217102777062582254730751249208877654879467476786137085361255770904712734688393381964479421274300606303447116493831960985221762100540769602526448855693969502984612731156359424196600627986461136443286735894072296793517052857307155140605898050737242955076813049917285697884952699219717301069750973723261855060150562927030257933791964790399668167222973500659680360629694529842027451427608800291840825271475485183299044410011094735855550287833594415494642658844339470449696831999810904997654141301163347436176454112561799936376171958062773633092599314032448899521034042633359402688534330055314965450577343765760092529057960265711086568787751994665772029333456123940017856526383712399068610703619967688309048901745196319273804126356642575660758753215427387212496137591651246236644247416310409801586888899272604701110790231692565916481984254971278579963903168577857580977982562116115546571067771739028057257159295094928540113132832343773273882661381554452037171517453992822112034961263536395990965313708703551701225948678791373746485872279732817900787347017517922036750935822721174335114423256805464296899535010188735404196253326552025099064612389371319614954885833584953994801695858088793294883483750366847483978005212886105884591716687367808564276987018048835833754051698018309001015869831899065349406435458292330128383792268489569557160655157324423298346939368700408165036321505990450689837076805755163026249242949408807714781929827174434336830112041871394871462702562615672157619626353654616359447726339478491938371252933148808423019908649081463515755444516497702174286069753348087673568055676653560469021289090724001357169236382166890114292906419238200026361309903269395937387700994631038596139846532706395522358262580003062657035636463058084314645226926784205763562210561599321578810767692755774516749358679039499022415370584908909041424271381515470282787484270985061161164791074876250950951150259607284839819457421534254842305847348869584197985941441875242476550415230325689917338838923524795165812474967390084223877669516152997018141995235627516316531141171110489510736556787243627046864000904658508814391346001657718888339841860022010120347963796457524048933335808063735684498486341465741045813276828292651938304796764828181120495141709737846216075173650402465092744471697327389259318189501329722605142393131679470889608937026008502886713319047879608319091903425632055288619796416123653167723500899571709363894976247166612581081139793191832755862001879813994969699528658920514295229653797240839176947199532944727929629907772409559627914803416451269421489671222222802607634891366748987504633304556386422997610458900153501580680439105495907267203412422912443095531831823311304822953460882032102478405879999351885082747690076159222089829429783745590648790631318309461716827200845229957267606699784965644222390733173334251559737207943619632842978239489388787596155839732321767100294119896546640299308905539251804812608773321196165785620389219345190665224223435779531823599675861981810394960294614217958131144307231116184620065644304778314618422774797434312546573827706206419814493171594451869193205405838109623728693902358947019162137658118338335923091792480306668912243567082457058330553528223435062368583017558607944681245385229733980065484706445346279796297855474560425566755560165867593418052584569761198300587627040332468722480555523059547349031070382645993508390233468462692142642633365194517188920913013436446727600365223911867020587745842033018811745232523853120854542420672755253408651396128730769800189224905740779498801965071334497423487722952761209970524578505849954182545358853332479534596698738734688716129965818175993139643480757154781010319653141660314813281628943781091064303634460074036823341796073008729202859670019646233379573564330889656643124666187769608375182566459787184424802921904694208808474890063433631197963932159911692834450611554330459318119963991128581977192490715945261587435194911394036516005447394166931776753250011243774474359418258754818362623254265920249873345662937641426484116958609983567964435423985049647775214793510391311952071926630374073873669042545243491481266965239984211608124762199105062004602382608923606931717581741370647839452361484121312699816886201183375931422371741302603423831814515908152235568786583971044443285062511635124041516448356334473771975966265031859707660073324026845553199364142772643767629163724723415924396942895114204034393619613510481518885387558131598491430046989464553970484483963198812392177627543462689319423670011702141590905231148334985921937831164430280762659979734319268846472208593428665935904700836620888096124742362533085176331538638945033973889179591429092236388815471629459647191587484745216375709917665812527137190283710563922363129075178362834996714293207264270434704787900174635565737312472260942524559682744207865376403725912472463281948813668840185480094572747176462575666955943092262201590487026888936054620285499950771626804116996574640481717074281285258270576969217563642156586015726806883083677566940087531255512387409794954725141667616217976974304227163377299316564975099585411543735176504767865478465004562678637897242293030068237226068087436252144802508502156329118328773758437980880722278471849784437543597529379739895666551582929373685983218121627916280322042419758818966532680560143073350583224551677571675143467840213384496376885210305975254825892029423047585855075205137996542600649647468836837755205881280335139749242951975676328232276172182546042588402482337975203004167807996411989870259715286841775121951536635588885774257184092219223693712792396172356990652596582163163726658974707870316238805559864305870824854617258156497983456597991811837432168318437234232495634366678973406025888753440048816145739225836733543417472704288967095287982309682003318877305758515699895541762062115891134594225115101777192776958363786135087709079555055266263103930698561332874030136211328974365786140221247888048255458921586969508726722348411386722334460362280894000907768940820734902946566312177497402878915355866697558807943516478296817324641969960670722412389225858440629914652458138186824980733389193336702534655812165047651733350406541131387335540841020674321634512560493575599242707456143221264893137229042491040605426756637279615249343496565715471500009806656844613703921899919827370476743329958233550953704236026931583668505957434371586565483483284095340214805212082765952031264605886432134807951614592705686673407161732362266690013887565213296778211484673404442052335446210254583025187177007179111650688169570329679233255220422546212859634596125773559643035858086846896623495238298584065713674594338442293700270272807891074843927879630656974272292345605420425551297972402970473056558902413370125345989437350689060589016572790376826678795780905311208352752400182490589249334352486227782607162837281921126069683819881142419548624585945607169480359141346807151493885515857195272066196953723638129430221861694252382498741131972650161582162559039471150717935706059725593947029836930844707451589416253019815225772350520673739590344649256876895876432751770701152004555335484437621651072036943200695776807575499449390853237652256825638493304232016994907233110147674868762725301005672902458200932165870751706011321053608335402027335792686403706431468894231161791528954531462895774017080726293903805751409977117867376170867404910182993277926568001179630549742080518989638413309137661249030241452132052550914090917565342897419223162092030050009684947413105189315788514421607561000870079406610123813399381677310271508926676374623984642386756990000196716384358042927090363936333493246364658519265140063602844447225046536622271245734450448836317233578847407953444346645952107959843282801186733627901614042085105333284601930651064059758297850746548038946015015488747021924520948462110355785160496634476602172997532137772458610667752325728834858154586781357878998990724216258539714653963115219535169481405076057886540870398914970739406395751939808519875045775213495756023297262810521840702445202965290306549644926756197014155182087966301517343486043057037230175225943349774083683524268259861729026007437157059884398259059632119694129453296490180474280711123101644871382272478233175779294117338205551283850134556400077920003774990133902720490436262540033853783431205360213494443776247069962128653232706377780593723365251153105832573859236136867287200991799010864023095681793621200781965484169319457100078328320492188648820499938122838583703139360578621100197698979536194581761693166374519545057667088776231716842870124471709888090639941127086878471538267650962944600681339585239953588384001340357559154176088487599082680103655672921174895971053659589059610458281671183749909365660465483203241134393004412545111215466209566265767781941913803141012976516684641937290335016921475774198437480446258285674171550472577990655141611076782103635611847724191214614811325699260229458728797036397762710205719421342667203528875699007532661933188804680689424033762720215435636707633619377637176447302555349564355506422915400970009720763625683796789556457489112560493486622361290458358468368758921697702344683440305123735931854944344790977296959136590083806682889704745592353543026616941157218342018174223036784449988284864685960558050571600267157696347166614031069409619006283706035552866931928902688992100288107059641953584028666096061429258241580629854744887048527198409223908783290498863627849939585360808188902100023810025728188314252611735249396952408925960904380895562126118354279599340755130874889669288610513684418237886222398593463527930481445397357438997139618260247574921233826045793474204218259205833250801238349999906171836005334736607690427613896175991928925007170330900417638808994994600481348487844250527145541360839915025397531723254391032263617450562170638868357300724288302667867922454503911551506068025097654202564678429265727667842714840668625501058414436308879304176486655980946546262427262221052195173698153308254231829261089081567730908032415123588577412151918106247063336105241132609772021115993835444473535564701261044027581701966773084069214270963878069307473208368069962800245445947740291041395150921152069424642886797472658146843044865499519433932985734833105818491044201047177732638873548329088282376392811877914874136263698232452626768877903296449764099619780647908739220937803987354905152216604633204131489296442610522403146289879418338038008909082998304893788976032167586388590599422277480775954992384621428291732888682561463532949829189916348672186994210086381999664977490612531020744857529330958419248988531206407177220334453271282104832319978738168083379397515426454524775330479846839881074653730055840616167648702096203615951270711190730997125605710352574450120193891969403554035261001993393893165137141303880507418013740105635446805227445602594541242145564873991205780447010023745785579649261995777630126320358165467930661188971290462757742833851581671758644847695983802779077817345855620237609472302644275462347196596974727957455199520949143048825370847782369443070840189799943293402344682545754506619145100467790023374734682527711242897327450340257679088048488524901482826915247766400630546415518266013590107269007127227915166942687372243485242473613458438990251873788482403830281871686274988994978725556529833844752789970098664553130080582364719694582058841488307493450835282282945884218271007844534546852845221018841237739881997470610026341428926738106271537464600028107994548432522617059156722960821283414027194557456830840640198545610468664395208911686323324277648628260744894078674706734314415076209331776731477298416549099854031562803496619654134715025946740835417135634299937537192330286148087081177944388381832228333280152961384161575896797356663268300062265250511730190117071458370612846497649646759094927415174894237940627788680531005925334347682979185347430587158544150916395543956967031732259319209485613070950276111577854763866537424020234995917575032239327998229100646922892530749303455167027262072316125629845943731165813536944983992801052050813283608809119231541455780035378944639575627410524471637511482705005181097058635187472744087190737238385556285149437050059735319717769555588344455110684631286662006569059750921098844764415289175322998006529914426800712379295780125964705630510001167264955827890508420910606373230554470847091596535784539376371354857065164156939556633931849884759638981056695202084172169684245201871544993937079578450664105124110099596315334507207059749351420625171128971172909989769854951065597949510945429075588150754645519563354338235547680131868678058136827469694145959699994600927008388364098054645943847940599546159540858024664163835384529871552427750846036977794831516539139353308403864062337293291315872478829507369907424742164048931076985278891746972053494319105069528687857113969523824796333361893480391224156996481904649083044702925619264275035456532049465953043929947529254038219538498668007389959679684446838509179637360709037129651417445774026400268100371396760255905687735759825691654491193981941371931623997972821581410921910183199651282304352052844967016969457873231345126718141926583152257588650954577929876510411698360797960466926846860550988293581287260210747192398393921938287412644604439840829044934507101816036926017421970153484921140997636900687608020175679509439040760364771551733449533387699856697247654049335243534322583729158115583282890986899253269239816907581677336386944679952473748594753823202744377795727623735976695360063920983467344390716872832338880216788244695755202664032650437814559130109617359981772233347661678588882151119021783752396954313054377760948977471750769919130370942368646109314258363293655635005061207397981806254427847354826519942971233311869608070485613100653609547331811394627211214439575741467859571196822644930044229537776216661467386681245715418880964840812509497472084293434365303743841786240936310732524797109673189502188443012745129850340463270497310142377420760818838626094947378692706284686632981098895494518863345449240883326699621895299312852071806194103649613248645480180123503465396661722825943787533061310723861423579025488091198339895009901049999128122344682013478537562868987818637202738518197456488834393545358134553242967894050464415659206574355641241077892505880263861212935512284816893663816241034458784249245671707601296016055333490074024286755904775112267045592015524995516792939185622340620356103575864526199728647673034833478737584967949838227734078246617765068094669188294254396243334795642026568887024455809976785557729543538462948214438306721518980769967592167814480722893529166485021796718830523466518931335921714623329325429038198273969245936790098252895303716458660209357066071272748988329643391147441503509484572854876960126651923891752775687263816030336286329105277733963850455060740517574396657777241928980553167394701416705065265790214068938787226737106900026581002780117227680827118533309297198975729832335472982136628587415540319884999790856406446253473959520244936885687373060757691584396010510851188712564580311734992672353728673047917856060964909246485424919279815960983919843929282304263240981291931990622818744154080788855235728756037445601886233941109657721254934231551465632265426799820771172383606746296133162003628554156961185549952831254291188538067907944925695417085194178040641006966956317601461138095454178486992387004983908763979064437220468327362338021380114233346899639404829531442964405641102311440018290597404014544777697120521678581361572241551928800145825313733560839365295380542196633628015120705967665038767044957278318578971623112272869053656349902404641420602478677639184361389400456470805607519461941690572465423790644783849407590304863178338491955359997946658201980514479279085876254469376179619044012489287611780963187474963439862701477689613409799913804083620006924634917467274535453677282040607362761768898583660842610585132655848980924133358376236726553095012404550898513118201436187590796047874703223630136533425856366956228081528779189605129971634947935662268451665052638262248643599972301739432769220482780702221743321367469220809684698131793472842434210790417909751287791761697523980012414271979466083934847300327168863738291614351505646932889107676643892491402031232957292712112695031729203207179451476845878070431738167601696393761689852041957502616248242204501305367568053061538991811333933766373405041355424329857104684326379159515780207276826701424429564668517412746911538278544544606038705675513685427230350615360476239371859577087637194215126039066716703655079878339194133612110211997278244052203880428381746989133219220074187597674104976538612369413265554185317550161171750817827492630706377600982973613265617676796530611309585973352272317731715318528513999064402378591096457314427031925401383490649799806821608780367352574862323260482262984197222090919972466581497986067047369332659787588638142122102303083373188032367106412452157485400386614730691749850133904149580098529289868925874203817165886629149720902647609296036272108711686660044078080355500715437299437176622156808649104243349739206452352148282640107600515992591724030484024452975754653388428417635671175460080916765866825573200208943227814223713363324263670935062463808787380830189135947395286685726731881012291882213442083493062574071838425955876016796647814936328264222677608907445431059249290058621832349511414053113065468841772358709561168488124467048482060156412821398682833990794514197608992866953331408030548505984883991519467235780646545236600012279486669731914284833377606432244858839880000280536699344984300842234383267851005131110478784209084502957233137503019380394725024124622175715692233352535904227456318408139854474253130566426881422623030062839866848850210838386088631038717391538647111741516838533101395379914059946197829267140707574502079389271518821944649328394984384901253139068093560786808537489652312423559193977604537596909471571853688061212841014760200972212549053954802889674519200581988155951580078140802999153882495114694319769701181990717976001116013264971884872495639780565414350219994763670025809600278924197073830906337406583796972323728509793028685010632179999259761414329978040549285336665092591804098932210143891394129774260504987739403984453649890422967465185594162900758675287495736294459903390720046504308326692529783199354150673638761114470813772860713082068059200565785372374065715802868980937206393704701792572480375257322591972036351430619374247400820784297426993816038132683912376893762984401545813826882961679316309852176179749108657650044874674623922173618436434750992745051573185312038632667134438775874511533818791597033163697679763012044191942694669736344328721616499833137251264773443103786365349362388473129736165620382268160562324122411958812465955248100409968385223468027821084987240869529379776392886661585108051006610380362873516316864368802014258924455457926026548403133351899731297223516498716474516752804298447118872285916044536141036299981070438381492804948043375106750815554519254187218058838781207088218714262709543579960698164385698382945700022346535393919528704852855602652523668192283428836479897200219427034731622861941865842689745990271457390321560898818505136114590156513366933797835426674120215767280147324788332761157787183157461714848423128038406169979541317189509183110338067516729886518315334300067601977881688337383707989859505882635500872008825462795296034834726968995657673228278631163402293434002702631079169670579963344496387871118561525075971328497637683308464667907780127196353942287118653176116464595754253488385151062220244008156442168132996823572146738554398370346019808023440303895420442954493458594800924715200539761314550310603771917152266155709422581774703106367292848376531683541757774879354079377046770511675976150150939202931053918078430581866378324443635431546353160554528098609959889477767733268891322218262866831467576030402230465173819404171065486794117622720172934547931628502237771329417478993045303025598101872234318951164471253049640342684416161704708835535580740820115267568661611822899003666559624013284908554524679343659670525601032565898722482463027152555332866874392258769168789287132731868035495956570684326823544047630416984984211024724287237727732869762644710014502986123319146797591086322261674870380136045852935477457044402257489822049698843905728896746701996879626400183586841539237900656420883773102121576200005574072090263759342708802930275187056897242313654638485137192721442120800660900252951273513660066941678418910294426482585968492864535408748006771774846361688938573598462237786478128852240824024884981888381819262064293705632358804063490039625452750522084546617843360304586214966728232081219413567710996274278513091677494230919189699380512187947622864295721312869749347615927297076567147451389846774876809838311550385756535194467737340432357517230916971907654101589466450532586195144072526326539709640635043668591661105221615149757153366108302308610303475502899990613574534464322542802077207974827896571333671909188018169756976593333109478125559550230801520541614502262049833820562367035897863686919983635987138489381602083534239900667887473317898850348973739193959500500688537915987664607309477773333383958301685847797555878247757044353676472553419240608905085465489136379780473236473639436541147165539385884305656286906561516564947833427793881579528299500430563248184541523036686313094997997491950052134097021448577656185801733786813510315582221650060237010377372204012053191945094763126563511037400964113546692066512826529535653642179866555266337729082557302847117623530553831778770824930513524089685617045310316850142298593157610042113528862743671460798510163524981967229965622987340365023304621334921117630430239078209242990083009390160571555256358025022692993498450498045431385293746189880217558117869717751223616817856669639389641833767452057364062963464515383168721692676765925780126576433776142637054209546294998851981872377546589719086559489946625242548292803657261131672343548908749844182164531081616341542807119374131253453207339823789442097134085729473771301722871374448871805151404650893496541469842289632848902395419913209155391534204259763182946973535534367434505279081277765136103077926360491810907746554399635249142133218793564408328010974074431714261895696042515930257604332606266336838409964829561532731903489503901490095294715928898513041269416357262169203953194595333583060709902130767161262869634272368867619742169005706703450984309501404643174385572675995211403776779608000671063586338401001931893986368719127000226631874589038235346291662101324887292884292325800138168980617064199151887848402871609303177616283480197634207483413262697515271642896242648110395161934988911137946781373472741351322687751601634413399006207689030991080178770416629434575771493745195315248913831029098019536924773269449620202189648538290382439669551669798932758493299010247919622237069635925803593623491965538044487399947382073312041882383921348363021191316471875188769075253733441484489696239796900136080614093314956688259705844230547063558527738670494255166442123469014001899183011505039303060559041320613506871671110203739169377483018882663194760208829144644361304754486518843893979892771255246425035862260366697170518590554430106035964316070797172275469765259554023708551475613360114575051477217836526020767409720235598098674975029179763241454112623769275585748055674410864870161161829704343656714997290066318540279659321681871375960046133462833514545266035619825796503663653721147304584302341394172705291766242230497912226265989409327297050483427870712628146216425396775828772821193432265109439915095713721230468430528456033926272003445783405288628181611555939230049914880499001094201968792390522766403380289608195798090965391181218331168178994846136710904977140550852508472060488914485750313842938043660032105596635274198716806242816044927110509064476719505096512785387133593788085656905199077022431301430385173701375384835388051717418822617295006876245933112334222020777696239790718384678308042045029866353240130763577775687082957415055582208658120775611049611421274342677643984390038895009567007054626979351074966271439321475038505717339319229402906855816972683654945732703428886951083794585408899928517988484632902292714307657581991208405644070544425245758171089057483407988136151866104164607730306565055110995823385457457340451662291108831733466200502342916025988697140955005845142613262097917017925336852398913412696150848065340040352997726713454334446025439641358478263902025223804600010729151344334119792674067909217893418628694879057024902098733225500525800361674071993316434560634203296793371483198900068204738658050139514254174500081711105008150350629551838337540465499584599744161980595044939295676192599487401798971676871402483750047798782941538568036065902225230711303514187781488554048129502503676325865683901793482575711559893642271180787123180543253445579822565066730681708472479005961417855696191468006964185622039084014776906362098149471219766747347045832323547993872183006762090843461123342290495181606897608340483751521017417184783076484067312791125942372667721726664826548206779046807612384352484942115381426562207859632152183335983490496057733116888312731009163519793739806664724155404172834429645758664444626345029400851845333733054844032332473838481675462237844362684843794415937505908797584953066270941499691500170988829028430807464900775977354660265877998042593193787576493910101633721788486572260292489812429259270550476078962390505632920221450050245965774617434161807363850706835007680996559273594055080149066535761900685745271262160325005473950618311817129290835080212514153296831351470284493580392893248718621866948218174065699999974414110412396221718538272079126938902787431218920326923067768002290887827345419091440827875938175775652657999214757595452447806705594023747934784323415080500543098432793249065636978761212818214611674770627514031801646927195945619326109505831501315558749296585229423220221029283553594398623873921302790232936836414293727079286761473825714670593183345152093778221325333504083455192117159957918114146283434264332817941971670255499906114500123122885130811718385104989655986775542403178796883914526219100769761008589406425677074478660828978512799347453353013643798150527604764423120796624614811203913535957390522947826715398136366678006085739793497235386749041830510898587145894021290920800062731630668250344364745332279873182537499950398993900802653213029434012039600039733819549848913655042405015342567708762749634025280783525144384516712877861123212033513175931942514805839125404098169636476830930858523427379364115100625103593718568270876344616233312954482381113495102838663132788003507947026021858751249903986747413377246927474042827141466995305175112172710386015375916874275853396254255037838967560907037017380445464975015291533464102174711273781213966057391214321480192665607453876136416757944783608236050477118288969423733251022664009750717672372404684008991298605345737028290033088467702685904483641212972507819747415489978388947832428220081450391691644216984891604504434945926893553294383351995537487134417655824136588002712182064393120275390633585378057074127154868445662715908067029473224688289540391849925326506179027020989275801293724938116336205193378700326465607732126355066314678289683418684503500989810346402251915012889919040315533698388236547842820832345183386659952638005715835581554634047545523894157676496196132955554543700251658692919235061606839168183934873989855553547257791295144871563078161008824617563015934414040567136608988515077696401308091204763889653615507186322919155741911547459834240931150497210773247292906773877184582026300158083572675678634890554938619496700105756983784699806786939163109174268039674063789165319089047888372561164152331632919172886133976379314672009705928963587919921669603605341414978194780312843104129739013064769368640915627412944623270884178183939013991124333453531356913006011848574092770054868176282036419989511999289875933410687689229171555639059551350604152319794647264014471061193895899021013534608854325418185935092370767263743646453075583716952999722711832367929560193586131409723943999080900569153138219920604801481692750408404288860079225536661146314435095319684400763934843497484393823097182962690430904948285151142810189937770050782335181451134542247928701686224477835463193257173941601908866937420166746821927506832892383821687168638371786561932788312094552904191980343851326015778876004821675821844785343847797354185939166696638152929973798942209951100870711653185935692636960181838354756746926633519041021904733928561528875377296951070297864109782761300547063632790657102782489870928919881846639223423097068969978518795761256710809444784308495644953014279725281090018788156202194669975551451601001139266915245118559885854214206663700938716895396826761731526405217804647025465721961751433706522821253583563817310336052929941454103674836474051976171798925470060808316418319454351569785264292322223680570568130022228277035182786160785485722960133204515286928740044561496733265837496973545880745389973676808087527479814584585374797245875663318304739385743607113698456403657528047141932359921302831192622334629903135167347071212279813861241677164361390963508472292504321380113574787100267757853219670035523711268608897589848750845434027499610566331102836316870385043863906798679669738183623414414238356219190724553582027453761965539440614913920587515176554507792738528938781629519527599182872638173966071950180935015470655336215733827327178859725776342817007564678408524803178361456230136109181420074756856056805743325011785866093809740161964335722716337194725955298670302463212225655268795794921723422943403474916580360259115408863547409637409712143693566303653829410611319119517610771742358943722810686284070311078313098566347444283190289014765295372291367536911790793423506018552228242530071912734699059972561151912148215076121370391897069003784319258661235341191105644387233524579922108721848057619850115354018623215568164229924380235671829860615848627704166787161143377755449315133859788012869161961597438956747627183434801488441240331869288689652993903507039207886479625986381580629843126093246334579970080935222109463861385911409998981413203533056856260616503186692648427014133959145380105597936587558739904414008097075990880499058834634706866015845348547396109258917320991462503648111115315822836077617328507010299468544434899058086860743333789693216354788098506898350896245962802142131685223891635430372232551278600941543828974466713101487079030714032400133748156243938539192052078832726310140358425245996743775184528641092857422474149642686250238729622819711275569617958907966129540469800818442205188132242959959391961283278195376665138668891025179075046396198265143239796405651485603622920030629924081770764606982685668721664796273309732906361539879885901940465500443801676632004529903789593400753504602124638979585638888351350429709295443332873419677998794734775477079138113111583176726241545515308112531441838302168831926735041899894199855996859425747574672296267414629994360900528466711617562664615946680925666864407573545637203498986207933985852268005363806346131090846204325664126645792781629613989991674889459196360042566418324242929268393547357025184418757091390519169479044003518287955606741425407238621892167926523084973622072391356561429292804301671567185594292323290590624343445738145633864137943119163480468786358764335269481824822176092242508691530078581139816340849289774070023167635919254391841857981548890263484354826133624284244087880414190163148424650277490840606096850099558829752499908521834093247001890563229853037554083679396687871154409312604810360553177785003685008720228835388522648821679763884471952452540913509180767599893301503614301429079455283365981479537508460053719415414245972116903740280886241281376207615257526041571754549014700632356123881982204166960923910172944500912322857283688758378562270274547627469690384725070002072238517472897040250369247181916393521335573705415683153903403860088842059151123649714237018549891379590840908258529363514051705282610256631200173296840650153215888021583973943320738579183554614844715674841864570429875353527407566383084335214959185449186189730475407778157615019825308225767794872428741320891745942319325915944771841070692218471028433501878061564030155092098608000027080088538294548541394477474937047224162166634834074754429433822355951908744238261950883917499493853872534751143910164063895741167108667570293883111277328664063485064343759469013856026450176666573387840331631230112051833182129630376556685471085446469951229698903370721639801350886022231573290054994180329623976279881835176048705996565571825967304102795909712123293539333099224210508118657764389011583952774965918238520916040839944840992743494988641907834149341271977759100544901849552116465488394039850419642680152080653497831079491778197138077808374575246407644057134860110553875065155627037954847601038284747079384293444317221503454932078172079417383001235720528408593961580173670069179408608967101016856981478262318563407167262235389909489166125343173458052448317655491600018378347393007997542350494146418721758697844581643868181483468392232257240076620828511574103026755046227208346784999174775346766312336463347828312684477146023493928626449444520208056920437908271221977477629760856292286223191832706551494457172617042093431527187693733970972490852617884413092422677667156064540534682052360574340424379780258363335894654227587361335115187269122174437730271815142372965804634567961109781972896510654675055349326817804990411219550183694680530769740557591297016067570034429546876955680556595640479215595668863949726013748353766707669475423377275139397715867344294393332343178054800467833099722438108645478691259403850848639690430275677222674783243879025527121352929293425848346417011566150389386762118310426162048354549832606333991663054267540446537993307451628757403762255029325381615693085958316731032800543261549048135437114384793364656809437169978644592298482006117882475600791654537941244798739273838020343208754495067662988338024751057319711794236440055286341111186303767969151272037415219910281832524863344092987262632563798705100191302464736964367870096219930406297991669038466531781063417940487601574484383514173571725948901078740343937546239536982161990641653484049817045096615423021167795316746907912873983504814459920604519849793327184933866595286842018038181861881999407850561092853827418336819140278562830273386159333015059071399704527895284392483688126396008205239628371158994959812611639394003995565801652658505546679008501605028550767756702351611589993143203098777568326408664524325827151623882035884297790792995599027239075527295659193769343842258745851414099566159344628215571542516061270789289750180299032803879406972891758284559624995086353599472243750708027323967131772740831154459053845461281871726003485695358705509837123947944071267092367565566479076874662604785884811756539252493107363759503220956717675067433150595729050695930297625069848644678043075636573351928460514994794347216414944044946615539301901853780890881100009983417274715700557478368679960538578761730363619719131870442061104177110280891539866261091629568297489700869027070822864383493212420957188885705964837197693605076041768270842308055214447378998398274364540809769398331215719937669943489222070686182230233666642609222774852784067095420377988554417457394530343376261732510513309811233555737260756460886668814784611247716236426244962032205154846429325451614303972765529715653435207123053426024243172877845086654354856055962378638524582015424743523414810232715484398024646503046940119772197126486162173532113400830134001528221315979621529255017168087465974607348828757713206995405550274900066880499575670767140147384678626632052189639778234227286352897798103697672490575522273714352156969395379471527855977191811471856428440865472103737535676373460952378702523458386925295988526866703699594473021759587634454658198477498683206547303534608596270975916570417076994683725939902782056313334156755082810352414956806615887369921375722686843726759003453176469988324183738668122170904402599185092283565639152662294611371542136083550176927320239052553754607724593076759393112556098941495685522823381326231217465632450999398082329634304804618228516675892449439866088799614869691633631956767215233700661342515665428622739287377943771716396160980727883354619321317447099795474533589804466532647900867228830265762585649511084678269262518274131713449089545590834940459071247695077812730428501517566564211240216985532210645381582112625365833781575638301494604619653643550573513803117194457100529990405450452430068228729194998029063988303125121032165842068994869388769954506498742875187069243713872773634872899102943199303338305283033085210604723061433612134122914455918341616417251471868498918771011928521893261521137260766112856256277155056587830579083435942559998905613346746344814174009697112089379939793848231493530930360325325667497361029268097695525104174524794691317241893469150850791472553613709560066638140139572076211680557376987645836470699792354285513517170759065568256308269487258300015110364225444494264147378696944784850974988210047176894897330557713407803271771785146198447271087072587743807880587955290511433179330754483483836957448973652364010010404720203980537339065104217070161101446220874120798326086676160514150402254073055850803730738024760301719381461689025167241785381913341781897217705190256258364282856458540265776777339477436970424670214504064335747450776916217185912538827499994631255817747428192593805790263438450608392138858464630762959902414183023864626602668928880212122159968209763069802684762682828829118461120674280562808796574817835039808534361141453792897415145790295999143241644319248327761391553300112629721161136681805608266390069044596718146171787178008716849115896001521947246049422058171682961724056565629417381019426843545856199712825255076915739636839583785437483814873152704414241479093735940231398465280634773726013230906008397858413447226613899469665503850288560214764513916138198811892960810144477358853642216515785605171488864542643882126253782619533138154728491609854194650016912319576165622698093061632826465059718671377197356404558200875385141419712385038439556588560724556029390146567307884434151070278399642092943669724196028953282840625536127116717690154201370426261453233687638094218886033975369813577953145560179448553680894978823423413028046324736784904174893362460117641003564379697021277469363292582584018939191103073542370892619581584919434875411928880555579103525506388516580500320657481931034363614686540739796673009497801224300670545577459004834020111702725175452822431445159996714152669486070749064463157854024373216790858304919855512189434585135261363745174125652806000006106852865389929875996901364594462133843690868254607615655372331892123826543665170514015757210156101052614348553195584819251725641181437005806298618759640249402950960366273455561598958570734070260721159823380336351106295531245921820909010841682744744880209813852020373291869749237624362766836767734982621793787587592964755302295733162453591513553833820452377516642575730761891007072515642765369220246621792789803719589438145750601493127800162203175093794300192101526910018433649367123207600860725160728206797879683161739524038013540801919449890462687173586921693621149103859495136704741253217308026134946966319561008509961655799389307846377676910780212351513510280293965619503583148077638014755235654863516763565951468507859938589307499537520225292628250456798279659943521712077195245991324691485708229873103209574664981639750390077828000930610811305596129769727274876767948825612822986173732143665624195634074881909778350085271248200612484411778717915915675059765430749523975926678483491506052020402400580285940564656012525229889541735969954041029633257461109485345174048025232964856777220067175805717528096435982146588560657271593044377813373006345640498659495771227774006398791164866671839396072293693862431104910852016756246985380837978477282808735298459333720085718241696863690128155647906352081065674402299292129795924937279244135173930392294899262616856783185978489765899761386503377106524373535298436391642546214805088448089623920774824198272512307432954519510507455810658830064201178432865765472799519275553602150908839887421460608585505663414840596296863592651676338225458009721383341956663410271655055417753398094631378555659720558031765722950903610686453558962905993031352067322651928392676260751434733327380900574299204608118261511185183536032145785006799936116448075797654447872588413109592619489825932672855907142432254692671899339461800491101470739703450223744229292812530647558085025972585822537074474228366573312463195097794254026596054703248242700263723592790040095497859178852255297518526606560205669757780017522216945663064971902836507967669204635973270368947716575797805309850265681156708403989541211497503948163816965119895906914483245047050531159770213373656203899059897775512073008165067550745158668747733860312282430960289364736204191880770639832941607498972471573470249004498390745491822392227210562907733355657511476488471056826250992448000366376830991647714609937321510403067584655514198739232832157227532280198459385893510577587085018633394638754385200785858850772903393349729950540546792492827195470302278575620811223486450823375262081172759332564730881722955448876687754672875119280161776913676452960054323066455257093000876825712151307073115555101878711806591486072792033190183715827105992063525195501716716238643831942451155734605978022184285714779878599540406901906777289645995202710511820631841673310898615922573635689720482128938296539796901279733329119166171856970886500496619491882923089389120737307127145534875011749951033271612726945133827263103450129117418202179923430312651574011060226190578541692367101067377123896308396018014934190786812266382624855032633616761858472680928884696767770859237135020755511575188115122289352964709903682857245184189052435823255162986436050223731807204420309045216961102558404669035797821245050599570449823002743109357946356817065930649235668284813703817258302703732026105027381201240227202202652573758138986138606152590629739154922508761479781295944563951899391681420640388441341946588150360895995600425275912179446596496103339991335633310659099377862333075068946334534356066792051149576895130075632308876873217864598719633693237676051868116642242849266906386738393978839587477737159079148469222677215573534363721707877493503262372590272434578970493269013644188746084443042879365477395709457030272705039150618528865715148389404358645035462738689298875737854862232919065684586292454455719648581182041617559817416490341690316745339174633394468475592769058863727531631445823872105131599833374200592061381739016319848804605498483802902393226012606056587305181920248640181378955641823041873264284910444808777360863059498829789749887640082499051564340416564699183445237548534391978405662506886510229310988847489120978277414542763161863895344451384933313951807739905759491997829099409727136799513826563347119808708213105661611298236217909155243478632222719321347268762951441685133710482160323315283142316551411002314389203115330173271393116635949339483424194206183939339951342725928661130686294868023050346660517309851097416401271524391828638254095284371549421111431912452647109214781588729856486066264009809506683794512817712430628303912957528714827860624368462915853238352294855425135054602486809078341502377691404171902191095492482427646104102448905832887387271003901896345488367417025295884120818496842625849071516968548842348084745754865914371213719146444326402963992301535639610032927120304242650476124953912991852947648656241096594959409750455545304759133608268288902653747144739411557202663754594967842933105788183396573999404604886277713602765300265059367557073108023678916640640120339116032776632506413548750509008985822493796850620201965229511525724365131180163705942768568872068449460408586337079481044567621736648305379043644146771216415443535516526625475096104332316292691903079010378119187116340226100597766279185911651995647949244376490520308992629508516648001932905691028904837840505576750173386878036287663111706325616405968219301197254205744021288795171014202840635244912235970005375040111532053316884020810183246101086345135760249894941882514991186800672394657562454239487956651315350554460210540890340896932639491895274094940383817310204700959788840847292688764248510942486523475573904602857716118995113126513109534228107820310292450769801679680325080753333963215013232138797796894094669422550690797178236867042082231616128751714121044036642444605027328190399462051155150060332719809039852561273163966143221748105101381074488013248623923307079633319762122992257230067028858593802112693788080285494294442437075021712137998361192275040569555645446341385715135537152144805331426166129729360074160719867319122183099156272279708205603872554167673071326772285978101165609068443178388435373624218605026089750608183317024176704304861802092308509338625793861224615746750552174300470592214527840773996198946234442719292906628397667727379202909204982655489743641976515280619234750629526335921061595063859364505004599324307003380222051804194113332501128692847451674576098237631509854313614996378521388450096115053437043256504608167604634253334617584844779342350960065680455438667386375679934706015853022931672493579257603451203825802031027696594330007929844125213685662038327946679385095160354649006725157185521885865542917388330918128830110207573231140965282154186277755716941668748817578980535796685475472715506164928754375751518049391974570872966174399052895617484016235095912466891525899557277991962874735578952700693619568958045692284337111172306228749161268821982052695927537147540041767617332696076620450437603177078823554249067606336360906704314081670542671954448636082384351619600908308010919052382797119022939291114848990692795526361380389884212607553275844641051234166346445635744153799228028420854545373760656802514356044398316350434755950945695447448435409210031588609571388286512025669907761307793160297496050647499326749097890877893050789374182044176863523933463494926446016355113450447258854077276745952950284556496079154476367309715932694822015220272254745995327775663989960525455636238928626563587714487518318932715906990880984749542086274654541896088042052156795704899577946602263775608976633142971237064100592829238263237558458963877046653383745549010920067505281023426893787018484450593534279555851011449194976554215186033336947330116387866090668372998948057895325140340803567956606586649553002236400220320851629444515272032873600575334287358167270302712126359508597066161853108590106312516532478753425572716948150382197101241632154061334491697340030389633411706384784526192775827612832735191487569461714055771649596812069375032803912082923174587462637828032740323135656969099312546274714445034542939306580052740333612672993944122456172812550168521558326806638305282057272442865561463120446106497536628336552118698893444675093834220223906542398568496842995239073345944935164464406347393036001392400654670515401828646289730530255002293470959305332154177919731149444107400975642845493732358025966182556349082353491442095017528963842143587682073962591796240785641733235709071196647367842368946577030870236156424522140259756680800297970090635917995690223066222383934700740737412623318531437734894438181726541302209869044610256765535501387805452120273108128559710894106581465786336949718515561902096929746451046340989146277685048347513951829365209990492191702180046106462569542598855732532256734871362286090174094734545705377517376311802316242900272510662346647017773845509142198191850844078955773530555745181145789528860041825493764701553227018606305794309023909550561510763344607399876462625979164550752809072878887451656924244857270825157243202737505237517036867048689637497405334696618482018169411012785496015680303138833586471599417805547172466428188619390302993009156246736457512313976772831272810514635756684594195165094984207647357116184090119299088977213847201763872461766357412367333461067003358503047190866676518666049956445010526123140764742910365700312933915448061424361137966869323896248534258061427610172403157796154851051433014603534316554038449177356040578477596439758392042508352591071621558123892074723249399928820216835704323276790322590949961979861342088901075182768291427253741211236913447159445352228175313991030314803551875319378451155695026514959710426004303223567866142462562229537340982810075307490068342700361337575482540947041075113585118807511462577782775741553665332582516484095752740986829233017202313070341405296390063418429146371879721984821304335785792697569180763192772740429104513618422285556587295271358221544678467952879342109954749999278322436728164743526007165473222688663084580318608292316869482160497509120937871963246614191540543677438216113476777250554789642578383519543259174314037511238060716816516819476251659646488619435630009912433324089440290680541079634525563004792115618068383534056355699499560758891196844769487832412161784245049168434624758142035732903259602145314837734831687723337194788097335464002140079875807072965328412625831037598416501782534130604659693313969765212009504832129139234344513638556452746455876459502396366140394342353920983302215925817557558641788352441423717159454620856804713927342012241606313894650242931415390071770582462235464244663743179104473145819738451078922860894024263298344668045835876361253561496370897986468870859856121898500557078504880745268897496200598717262380656320212575087187844681404818824749286930520466870384076113777759124534751653135832810843508459071544513614613017762525225616791164103987641718145568765201713897930356537495082594945330056043830996402068514776618580796330192724189102815488039820240170917651494287129745211492702841240409989123463502908706890225429251205942713376648914838351354891684615486478191418482970005484847432707377265022036999007747117363683962624231916846442491859128741952036470132272742775538015588569728027407931210238310699029025378105222290595507431559744041064610392094785574139021294005233794445719953514221799865412268764009319268815212949079391384161634218712432188187633623485161265638525599868587423624455874456073771975547839595887899120584244095414906254257525260516188233965756267555839759486766665668307508811590428344734028529078070616396490521702936789292060551526409695162428853420045015335925453517471764898468374054369643934469422457467120391829559390559439553487300288247527582131595165454862728870030682724621391712024336457014768817507810308027249781301095205247348837217782796463932765701011968235667071314827603713222055688906413506871015418844782199105229702118863337112872029920651426760857584616663604158512667725986905670329077559082211339815506719152756941936624673967952320928478147061066101432502557309199575631355367470147638892575677659628222598597900107611175672035591294840262167783343625448450571547567779985796593541955308777140309300345163512012180031661586800872259114995120640893596300630725008546329160251474485230243244470353288413951382190588576182784865012343340061856547735642742673785915232102686440359478757764536213164647621639126971319628473710340523246682639865568994194872373391649382320061397210120231049643476918218718301769262563161090778977544836951497477432894647237675899021592830162259628265911197936449493778825494844745132588683546835706107559702701843014516804087528503150940938002270834535532320019293586275683289402159074577783199405472371582578081649511088930863682338183958665117773182495058697024235731330959691273997660563236681583051557983923764151148728057358578429852952865654512690682946538317691626111894921082692194227233545514049620329735810648768764965505442054247209327622371655233983032425496504959032195522838266579751778071771560463426245180207875592473255198628404603403288161150544764637740725509030452344998512588959899141935088631449065915191539047130200769369423101072869822761639956098455757630362995448308568766332466092737869397531085291644890590658804636379373940459553388905144784994867207544734414912922009116370841367782515258173259357997422176301814387590614442447834685209801792580645187460244638193952736543280496086943393097766752557876266027438130887499680227789632239676098314388504658482478927070155890801212202399689150561614948213856177673208375823138550679913313617107593635277158697172830413816940775774671806464973064584997734255356488836763037766941426107384593339359579197742507059411321417188409868960692912328883272263520317440920536142742855512269619890342423388220185860110688715396009892770982844494115513317709145547396713854428317735783758711824333160250872813310040977761095587028853980783926990236198226996197790811013600929007600469087054986978296340194169058013813878631894462924346434657944902943179202772947941408943337711897345443710795662858916574446728382238885509236725302407769490410013682738933513914820991897055367129755533368666141466986469776390722608991481775258076354633797472295969043201154624102743172451231450291205375869586590864932215805180677093579236150238568030511317062439823858756831864982842694268154007584210539911430644031867732446887801333296212232067153606818483772204379516910012441965383315534926609430385115569729228067988121633140236901154872935604541489761828137360541137357467403860748040510190175105470696519951489080724951141950509513797684467774633043182591324897839263759828188738744928084808480335791207727545910884802022975832043903219155809548821439818671903478331314861562155102083497052214571439995197027355054208814968375647582713056063191063226663998266550939321398428034999711471658118451639289321159328566121362549324981630402100707835075493512518046740889780966979660539884256438106467312757839828073327503169677694415436075910293111306566231346982342683563050732846120349368293791645216410130649556262335595999732482305771553290523532732685646915649750996713312644789692475644331214921553359595223918246815579495852056184946478718045049296684612222891772844218088382570782780943604229020020571371279605418902970560666801431925136491801358326744623728486372989191634698179678577098669897094191541228594804305616196323186871970618810894218950217684318359002847494167648653617796384625814230602527270330011344047670811187389751765780407136012949735643293762126095828769714265104066894898327536513620821587118328567115583060212440406302566043258244981519603130185212379035525454154387202703823005162352621256993978894379879926179482517590831296544377593227501187233814808446559021181236133855220620688723614303080066913327209282262454441681099268525290368762548942076044257132363634552790221923389473851957652587631691636208220914019193825847692607618160816114628725414620755158745446048541178377535961616237688580476029072732685441930240612376480637478290612375528337895157966142101914216476494887758222311583353545841400957598475667281611370248827055675355241730492187825080364455726958352658725060504547259045382650714488455839550067138401899532102337295799560026634155903456366147934196049177595382496275707460025410698968523244754541604494558408419808493885596242269108209802844441063018773945513543737108378978750949948919662932293492254533872190031540103496486646531523994033212671245759354832102218449327602352999825796494069379166280233059538783984898562196315854385845459442468848791712944061107165312714164826727502092519302108725855541043746130327913332937425372316699109919054161717365774273434102704279051725499150394447194645485465696987945791425693201824279005820127086313947689940584032717516480235088675556787479361322954413876574084755256963046623879633563558000593066230294296067768020790838755850392352032324234543611076126637943386187274647968321197955558512848953505005637734993165033545639227196507771937901417225904577919409725598627410691525197647848711612264414734476085280063085416258999635919525400996443990038355255317824538477231442415590351701136251817017825353585034500949918588506730520844572898313200332621854124447117495101857404089908567696714649530390489434302344027152122220776440791933842170150592837772356111451349707634735096095278680049164305593387231378897214847211622646451164095849394643487969054317680205874401854741995064179256539278344141739156571303171873328379847795207964362822976091164908444457769242279320703724344430316736614258762904793208324899832469418829117372650279134855606558629795683813915114419258618959363715961551678971612397446382809497838476864995818768208346569989690386279188396993536000356305284062185873303619243012615683190490396554237086859263577529617083111347805582820614569511175225543514319772150017608367627882969906438962110627916548532631502342509400406677895904903916926013976278450909203199423056600524773019771197035475108090589048421891338691399098871217599323722453517143244731497686595617550970025846291931495401643400859023489716027042684302986580629585524652527155295016750388111798190761519929598507773166436509329364786638624671305009108710543030763749858784571947970667158564434527300692021425265000668439667657421349492016918438819935119528682740457070083088499372155478364097662292475166183722651966732725668780772781286511461270597398657772064345856064623897236278408397506678372018395962641932845753843749731993817517978744105406663936355469938262549100206028615399314588653370241390051322731037739167357224618681511866932580129206383835002165279390292218766805115963788124293725347307132170302709617165635382358232046934829120756161919656038032068297388496899565589631185564074627511717542665487411881939724665242528006192276284956289084947601124315996039261121706954975778795338467637541022192257366925073469532877698473606834435219667872208763053276788330779609627167583159023357898040434422994603008534296507104020649355468708072533234561114150426198813891119293076914691383682855196444339376010474349830997164231077781617026234109085619512817035274700410832985383002265390630806483046715134790290587297298297152400668933614962466928606496533097856960839069884469160431455052745034600384618412127436421064407975805569558444338384374504000113412146015350906655983198703606155438669774730160236282005165550916508251228457474915861267268545393859876621230054465943021834089088207671488722330558573866600920509438468845638322868483440328507851950023541802635578320307770382053182432503867851993322750728330208865173488192654676341805774092159072882197644205168671287062451787992051922529062466332571179601392218615875083473259262604575122169597852642043026142500605971023158967397451404059215899379410389220898405376149179409959780555497620239880132995487306933319618108626381703857881072024008884389534578301109363744726235206609386710468275655614995806491247795652112899306323824741610118984602383914865157114236461406608124783175042608035720103507737607625792702434159158372677922344822543316839660194408661681373055441852448186146781431029239807195912637035301142883315255415007850825582589028289081829063405324415542947786433838229238680284416161303798832964617648251919346065944353945970667231453107868286442356577811337463113272886645619257768462034240342934571210184892204220914758949805938229283836053002632600430591657626906010731977668094886663599817066194111678655753520861016383080037019722288747996377649226352225759304952056667776421184182260745243566309256774630437488163516310268956892729632501980333841688828001984494156975423602346885003308097364597372913275595792429026584006357022850470391273562341330715596428473366332970628660420907604200619498573038632845918203784194802220147580588636612014590747965052532101969647989382096138777475626717106171918695475346147262984690800256941359737823314670402107183202845982928725884997907530562831955036441407990451374751282542373964649766352791180047113147184675141305654476041898455122104894048830418401926434976012173457063648136116192850411865692226616805154501345372940297263149986560739497875525355776152503312673985093088559747659537021971544660543334270170447371571226890390842341796109415591030188278051251639780495370330720423362010621036789068262577886705645375836295716157613347110479807699953777385352320202946366791229324875572231833617003553790586508706576856727084740933772683654947716895363703475077247240284739788196329833584768080260547010971654042282649699754963830400532104465037227895269612150270618461148202229895026878100074862699131637559465768032941801206696423475824286825909839738629800681190322602212995221156834043169338680836651125665741941561516451979915766472330019364927155386536096207771852533865378113213628038043451860056727947746513299085630967193605957837560028706480639569003967506278522061837393842627140004275819586108496916033869083222313714928060077231781571949729797252717339936355377308824240452755419554776797968960048116156096951707869620918006992422663392721926849096961485436797109024839051446746480286678061550272585782971354045484777549172569325080479196658127727477673569787263049488589719021308584641949448756864371526590907020667885654423793544211739773905099684637825789981527720547849716963899000590939056462397395307840594124450150500255846200557008842931324060228448757389037609397419118599867144162352533670855324032059122862741508245084844403361871375734070602484762684946356497638460665825255699353204580259318659480801301562567035321475056725378680667488501318878539561663194838883057283052247570645847247977272900442075814228573549056953498832074929570638257246295067683782975862537610716565338518696165277446841640013707483316593591233262339732608711273928675747818151580350417719093956397597525538529916968681185438535208175591096216280204623941325715433135682199120941557053938067948055643944287748877568641313340945825235559662833301078064385603692635463885269474655665985592306799522004354281084301988214526708075526368094036255938569014215727126832319050897310558371364070858846289614465256624053421851122747603811428668489795662981940776284342995420491213213409444856317879561037185873234103894360600850749710426122910273928598615588143621204651623277773602792191234826681187614152626825844850064546250695781372936937831443287825837721561383006813795740314328927952306980525871299442262392470732923062579739525734384873011946464736816183386985726727041392981619220811831791175524363785535494891020907613349212204910116432001846965105771651992618159245035351101082846306744624422728498784103173484366755247954489499748162443121420299342408976619692605416702015868127591714181047140101250963302178734605814899890425724780381693185541793514912723776516473629298467134671048437259273407705347589802173265216183583668501139551470016446589915908505243256047107420122923942246888051000630895027273974173430764110342206001472296289166253123456958917729628642346557213525378114383350057736169853628216627047288272431981238043728113122154177305107689068382639128948123173082080102809758021637134218016944876663047012542026664328498850325359889973200712844970660185275484281742467366702349257288122986503877259384333812232643971700939567946225050011330862009160559233763045723197951720989333800230648478025496811087712472610275533591254230717240288563553104983631706830359635593446390596512876245056101591060237794645357515884905016406225181999754432470405215409608571724086806959828214422081487714108876775517650332668205943792862403219659855441940171321793246415341937764146562612690901958451745312816287599927911914372090122428225343749172536184607573818952034763195635862819799507221755229481406807005781733669055047819690216123470296982716462538067182035975052160740378147363394234889643250283540912812651448056063237504288889958319635210909744914238414029326727214352664175058395620004814773309488165996929961934333280801547347629785636530476894960550851862401106061080073877449557788114893539909381064667698920125562415428704657434731380164994018335772035979831541267432088107892290630610456246866668448983679662843588276828477629142904611283629274089189796779831667109274454524479464041698225586064745718796303625909844397605455323635849393709014955725209092602087448509383517604519655655549230103800662291738854295105169860975758116819651221721187897772168422126840962741167735128303091767627003662598030839308409104666481354134613881557884192443344982635631713598252565252212977899739836372982282425645124647618364846259683218960196082741339406115326322316478475641605068841347088808964161292924696301237083697335636352470596844641261670608622761409611549718514089961621078337827865562935892674524209352199110902272060096907946599375996439512703516648172077731395283125121304920086006458319181153595007141315385213158369266072615117983840182863582263329107021670868700612622577993141507390444677479723027831822572515984273039490526703173180204180844174784064887067360204640916973591459892818097820041286025085837023138910146883764916252763236667694815601131942191202863810874473374810441484422101075004704267703738244273674427855069181739975449301131372058955362287614816528375490205889770578055370144497127974525777176387550828386392661037112388631918169268041018759620958559788745116111552965983477744696690935556501672062039743210994540870492120298153565033885638540588585232469150261347419137602621099761915172967856663354419901761247584625104790264722307014934649985465711430568368925841956285195575496566344729379750707001146604277841352242350446419191449907033907757258403590741591022069153163887525924935001822818022795228156872833470432663712648320235042585720368004211752846994311997750183937772556207594688940624168683538966607657132961200030316983679678037283764418172441755368015442177428717966173686257641970679728022614799032953700783463022677134708338342667609186741824005680156449327089836532308347157159692393934243254641002934627298905739215319337976197919185341990691500744624530707408662405200201086652074613756658381824964801296782193658566499684117427481204926312186770274268784017640982336553660483570934905239077108716102713615453204256354329013547434602551244037634208183594009211995560560269197092942631145059603271854107407024695023080457607812672727228578740209815602193386840827499174533407470924609352964323970237337830516807708538747241972808509971628397837149512479891732444141266116543781662211146354637651628520052775896719486239330208958667254555582943565734021316702620873067226794928370461965274762527245099392742660192840097197941874235958230373649317245857056981226490944098721808433211746513529107192305810171954090771505479616543163815300871919298202323155407746500421735378968432890712188070816809644209858983356123499225536586573880135796340642346636436097283543830829817363963125662764242113673797568519639028593098182350864252390781261056347151102184435872483435565082519702955218618909699056137055448723228102221665064031750940160552362790217859778859134774480621085109463033634847518829156059896071624574409394232918406887082919464465406643933063841038445860279425192047061652325422384510486615485110246797924905596015275434339623835824171609302344952158889329892764843681814734959035280066510586696067711385786259779532650038378197806323697960750578308861903569408239783836235437124973037443815334909078138256920344914332848514617914149213296468856016956045574300747647902727187476718117833045958351052374223863829384935581117439032121769006218640034504613226577029978834042998488194007835431684012654964774065503356099610622978479400760516484605115363047028563070664756654971376702967278205512728703372307903442664416472178058131887104853138263489665381974883940511981753292886862911833177708510342889072743166800917852267184391300973693437599987958001389605127804041354811585858688285033386709140044798247592743030887293745940547783343505053335345935128342227477644415261814196715809463165355626661331817981748476464514568024815576175588089118369342575101906460517082517381742204103693277011592562908021128339960860672785982408575578435534141522311304386839893908936958597727409591316833491786810785960772568037152532407443303637243932273146677455942137585083149231038759548976754101759901944826687062309871345926162153311059270195366101241093431384990776577050734843771991602858262845280945680809222044255873299655200725853780345978703704317780540904671340983314852570786986399638224993836316990643910289244203055669990216292264346481539395594201027433372588258787701992999676807709010998632968796624694559374858459910344403729438935424912020214761953540409500761810625549438955614700783419965621454950285692832873008073376408298041059786638378017611810579564259911437311013716642628444618691144334005211959360435391743307311496875415872628259100370751577466264440860474592237124078557392070958522226429041481900175605031714489944287686869567360215749885221120085640034052427006018184584314762233493940536135946370171709540469604166936485470215949753441517624083021910725624299440507334511280572308636663435796156283559511355828885066194050852727181079692775312211355746745768681094482638848033485191675159568098749199393798071904597125377405470596130785367946460176683146749968550056965914136511725928224189495749485735143316149158163092238617344514577473095774604023954572584931895412374344593183296669697118659257483819226800681184122024323792963290338111805622008804282411550598334540492949221150114019286915661287443548699303909565301552907521471604138120357903951531884629677632645177627260137268213809045648580692125649080121102958477995837098492533493392788993363332869283439945629510315041636389600613003522062456290508123351305656651030467178130170187565583602309974347879205016951631220935262498606340118246203681451504327573930841991503400775626443995823323879805434096911710080861870164459207752846372926535819501601636257281880824021968955128703365133959367099198411402943518318556110594550786830565534121861443703813247048742935552794863350197268652983237751879538872040143783580054053028032726805193787363843148623126032202982888749607529280682727177338337326318593687744038148774751498139290209632803958473946067700867051087981978298747038281775911764111785374262519306643617450464657438121938720598333130575830612449785317238303775445727112193593474933805923346193089956000516373499481747099512656484497862292793882013840910131036462731229893189912939819860294953672249958368495396565435836469349978776928004373557989667082725511422351695813208395667916498799611069786978298029229050180547089589049562201555780002679095295005262380400251904885042262210371067139029218304565920986181207068441495746877520495109577923454102070825439144910049228522158565425377940362728566496248746091004552579403774452246113193487949069741294352200216469270273657794102332828521366040950833142831817630131827526264419428581166402148453543067767810970833881819722719428385789755844474727971538398735074711471810259845430104109554068397930765383144957919594363802583692865643806634859393347332307035920011394542791649952579964163291587575246857457656938228776498289958284247429302799142552122771625973509189459892225135012778024157499084486529830979358215497651593116013960196934353248922154730938270254655048094757204569804249138601837838900092618547610334047840541171726740795922695507541900615396524876617492406146896394991244528600187647178024448366215642297824243858695932859395361277365682684022934675759225002567521554917094626136468162943514705638252557728523223646818676065438993482773950985751573741972434073805088472223664610060426884107037409654105400097897171155396002566723510131036800864011777567947107738782297086059342906603099753154694905218039536213797394425161137171235699812476840525367695287186996489954220392548104373087942071356583828675780619117056915092732762782316367464241181573561694239028592058785969176609129556498131648973912506049739389399796782798551691158492228635164411603665974802586444377485792680761602802644819929707611786812548022231965712209744015098338509876908536279387492255325285567981605379263468155229118064896868604215398432026265872392579691898602322421339650439892362098976879685406667722483566830136818077509515356803238380092934720332632857676880724358944353128346901957083958560667722233425397447378161939831605738818894384611249419070933367061413238753411068931812045448747070743890208483210401427331622376534499103905145798765361222258018166440300423899424219572669737501211432039500126030580967584294276020683793461785516562365507439084712687854935792408021161321873230369337850078608250852505701704973186124487734347830062912248666024358421791617036085944705632505026867631628565151158371576966893092338654968976449286876892001593131391730939552533275900224509318089111490120920142458877827399368497830296952190218208232221796259327095790060568878783722474965942517354212027188325946001749017931516409577571425168610179070551330989667470848560928408832117340889080843672818992869532321899221496271152859591585067121300434871757026407647735248982403462711615180443816345388670419888073761192089853923414743432990664245656018348507752295554684097090966625220531671707646843620541842410858274153359702118232314120514891669501058506843474769580879569951159189327198687074855139633047389278804110324883991069702921878038906434480279481084642651912418786795841852737758436453463282442029366023947019236497454051331405605951720276136126667531489316240329547378277631527429178130198234012192946038486580042563402081270222751266678061598932017710315103054098817399530431571621967874248640638434018516647162036599281663343951866720419311512693571123511377267818847366563414768763891593112205748798298835243111485353828852525399105412885029829596851891859024734226855180520818468807127155595214695441115304103230660975301075696235849728403146823540259373544193285274312782998583408710056435545836927258204323952352294410325496739960875762395528508641197626497174530673224723733567548331218430087102917878286571873366803635507141354684698866945920815785550620135071157079686880464698724288812498367279888638548065717670049775399958383041484454988082376626484116464858546641956729325877620012177287926476442479297856094410530172565696555048478156887114184720668464781537890830123874880719448626701683302657333137375363309489816054474043002237604002410044754935193776245758857930154854278101168035378763304674761801361070666778948484708371600862799273245661558577401931926841228501359382388705225097621403522307792159019917972331978532266885423005533841192922201588971914626888034259361740760453118878079634745947593000804422613572080511432192672753052100168812180092344976135710111718816681540345141443790905454145324333530929975448395182262307624308709200894910287091107076245328324130975006180570619046675148782504908871706321737352487330512464716434999317330785607164138380923555733979886236659563052651980939748664106966767228108028150959000538014084142121619627501923368572001015440705628290440026880561629246239881416198970852377903495134453096508417769551340549089875715926404152388757450558476712483497307292652271339469190798740346984319316452177644534109708918780547520884624786172321281483262737197164160286363350803082157461785719832488916626699962339870760891789431148837311641332389611890889635187460013421776812525705548890718012369823070681698778540815810448166478893086798429115888000024819021769150984716235619611280441134132283678153402979381431383267827077811329010126902222904676836508943979918610630666225043385613527205461382216881559695349511270740212556818079237983244983762434700596130731244026280810648034470551273814516727844694809898482596308790336877435113586738858314889096684824580717029651025664373022401902319229834354828454636623407192780736229222328247130221490349779580780588560659352986214058592149571029395274210055870723036187756644934970761960909137970342850876008598271132970236969480137733559564536526711018001316214471972768375384018339000724084805233150417938284502903180872105525334728631827977049817043897755677897682691856104298645248395021152006135660059406879048968929408702731764897539955576193765438404907608031721645501721287899140336911279346960874358127656153039213863827093839245005791604932851458981451938577302239856380422233730982529403206835936509956516602340214748855954247370092537769254494570372209114229086061829625766429928279980629553829794245075743520460093426936065398828020442771997547216778315742565497868503404714356076336253211289405702057474802156269705705949115993322960370333267318856394273848619594424160165564296398613522134526438566207951942259964283368671569266776743577103865804897280703362278421724165142395341147365169905194654261159535072272986394529631034490740694924348033256949945936599311759618490917406595663272012575837757564767749675796705610152183266900331563286981187887194351319448941954337625681603212721327481980569943119566544764782093519487434652715468183215946315573754118672118226940346165589870700410816744842366818091853626180816188196744562079160432716698819476722870735709247909539180878479882114960700173705576204058073752822698764366642098622688720143693360445385890993259864375621305945947476475340126223243650171876495334173252960837961086546690304418485460249300896763752099640159967764022464142732431079231856366451615536931925365499677553470517191731680302234454200528940521587754558431803829796752932625688081983006116364027842815595041564599617887226912960089523215042071382792747473206410228376059904043473701094885706597300474135570834569125197562274059695639106716688184310599830951473892371335348578635223969375775106462329187917919940772147851542325919986514633868562289466281858007741963929793751967651728639427118093552709956649156664773067987970004626597157857028551530866248629766829442624148757463920972210540527023269976947398471957551586948765466100671739453615307946724156535368115934958143539544461496605913427906677468027228539337309203075722014464578706223808785822126379646307059240064095777942459577647526215515298512524964941360590740310072607197570934206486539259080571559568938561665428908315161698901282080458867033308390482430953599224002637822600385518576118552190948089103947268855783360697491956834310580505102017384084090005709724636976683365996932726769196085534028921384658675591405984940518787691479336910603949528580081485998933537822340917445197978906871177313503546146672410394328921693146497851602622099442115845151998774536429087258098603954329664795445660951173377692569394081336144170156371226343912435901736236712182015729791013690962502917425837504831423648721182070275788172988978544865820064390407806514498755112115957475250675730429196325560290751778848937145651315370777711647323079675625888644051442605874320856952270778916833813192480006327351638308719184052203075340897961564938889841916795751293721462670858623788016768678589542779785176556506331666418445984040468030342172880962201600277700543239267895520946600787878506631800602286462731405476878062505730178044602926412767897381859332863506664869154044465447661889471570332716509583065445039679886591424661851283817970763327583617553002636526342037464118400015344595664195412143158018137009235897295829952395208973257694121553461558783301753131333224235309473572709224741199010304785952527756714252024674005700500354392966694675027518534138896945714112329159161885749039441513216745745145912370940021673242878530648208407447215317656860643196431394510989441504830558202666289751125108217668065190847428753009715557914966451248051010876500116948016580487659817090030542578767753050549202857355358653107121471460714766925928114553291867532906646414466111472270056512243747479215907718903299718884949129977112650665064079570590393765880577042110697460391666650390642150916140757585110133859449878934078796186464949638392627938882079328941839910248887919546028761586233001672429438109059143558918505744873452964828399332313335066141572726800275526227084740086406455020460838524173036580734532110207929107375801349294646467830554469528513500638747413112806210473428002220588273424215721739524119704930130070038312190174032492042135225713915407560335095525871103752815592379431574240508145789094495818237987342932590880428954889016930784301732968218683233783265089512297136202029028244891357900314923365500703161270182652338578723176490176028397555352505954159624340519207854900482657199611494751049787620276930118360586075093425224967802145989240707629319911398314123111800292546666296614200248152598951375979183441711949519263378525653801609196991954270192040535228110113566216802664762800705570586423855603325317091387276760759741319767148089966492958025957173418541859724762404507228284143555313112768072839938412461566204715257544269001736088065075540410277942052036761678945372403544077446570338909173766374996482321918817336037091412366878281915905255959260854366143053593482402462696166807803370322136413125649751739288460762824586814857914480283551908673805234033372872543546869800635395630114403719593937974969908403710973644943472220009036774734766123471436809874125416866211230975703873205553788680589645944759117120026255146604722435517134075893381972558391160569796259273565630134226602018858010430188831664502454708228870418893449002880666012814175856039117238776834487716579300050278259701552813461264327134729465451139522093547320297461239612608516254695575621447988299881019733125127018408528825244128089201276585412384525262669969922306501300277086092095650002008103443872353954632413403965045700602882781842986280951210162012066217028395250828011670366891091369142683180699423497233820140192539498606733721711932079469544638305652799786039345884034649760996924836151712480073919876693189288334326110907419808454635688458706451479899558055085564291111682442071783210799512757749733888321961325319555299849170838797066481379676057754775198523459823446557693998913008010898297324109737872738698679776284537199405324979519504757317596634224168187521447787519016928806966565906982287777851448274227407073121789802954304013431391726618227249987239036195971622904523863023960181341235062847384513655227741525136745438465836251017076093052534495958969837673932720734665213320728893695397756604659944601609616514303376307160146884894925406314373618141860541479082094665932403996185024859619539652470049350885424991158921901269042241639433568048857305523927980215691932964266970133818536408486985943138598119357239481300884245205334475411321784951712242040928927983115722097169614968721375968410103744323713069941985851312885917142567814251264218069170978364377558635442475744779608539669393862226928867561454739777279161664093179677818394142504384378729357860099726166481996293528157362412586293981230902904787738824684787386271494209078867873754448802373768300436902299008488527363679376948712600958179765087456692725084046973563895893889320435231160861315899792266715575095803813959371742615520501304960443308082163951102250776253432546629470728696397212588112637143270928049331330529131990639555850980824223385849643546437719195853510764837583149115568281105061564462029921973095273438501919464897587589442851273606196333522886017342385323699233628836338068830057827217935695399383154509219119906081392270676970829702420293734646461479983247353655994210332372440502804293416681227316037323225167632528926973535038915404254822970382898471816936039938889747344863879823814354814969162192590968926512627196763745179555583903189191255004853694486662903065298789464394650326409730640915800284680615970059262575510335125312192332381150848734069382292170168497549140327717185326882930844056990543220318352301636308646064746285114793967129432678030027141727006028876968834187867084671695016796832054383192685654773906488680129636176739885302972755017415236326557456425488600134103570768603768628198168941185079040214794804572424868058947381450313429318688038719031994207902583801641423402307758675293723154556900052119112467160545305441007258393348903810973139232350332757082576775503978376214572587248949422090430808982908265875292424747118112368708871581212928062357803852831748352497989482977099385471757676041109119410658573217317660568643426295889377572784522959950291717302613625800152469381949801579791857246107940262825260651028753631068594888185308761893955344402698075383922761826810744267560352581916162834551090202525621247238960163786392450689202071314014705298542057154956818918520067262736147816028535873865288388723839708154400779219748317953744973073764203205440333098859017129166196095195722781006462132990244851747821271309588619415421548998354664900727482933281378573232101178285621403080928429282875068666059560076315560902720506403408449346095137499704649291909626164021314771115011281858487084708443200506748027049539246012726895873468560341871809630752752580969384611870399783661335834888555744155359085600957372089230437892694136898183118569737839098288540615362990008097272184207713378700859850902837454642633983794495119655512568021033011360082455637070537806227484586612569512921359309183135009909595755184346046806011043746737266506014629352692932570070500990076189790224702687054434168979333642640396001710611543916451933039800410863696390567672049418548385655907854219992546623876793196060553414363342005133707624302275845705469399290736204686615958223378058944266365075534441113914654574194674352251456084374221405523196708840951429224763082674839243107278634139528788771635504246509520890659588060401722787311528121178286071487800039057803782683652684613607502647986627624721170218919318546511035920112624984508318549569784715399456860985447736661117858682392978922938353450176844901659996521962171099682035470307126086834381211698719902348647525509329946843358384045764606349005912485208059634152987832791384952503102440680996560381582277623156274535509268926283103667808810352206323167265550868004994846368020456122805081814604338265417512986960964773005511960934906860276859744702401650294510529777378837330292758673946686491741472660446375436439600105571341825189790912945156741692013781089110384484495244681274431197273439833330835776755393570467048392424003817547277072866463079150695358184842522572569999209951208613609405918420248413980109315886059436290383484930642627867055816243325758008585262192932342579757377804281781514577077624720784211739263412542640410896358312911241729298207060319244744680238475261911569643154430596898344233813340637012265621084655001270998839301903593550575067797680586977658226808290750175034381930224908736728460122924579608971965540416568871500489569994014563982570541430856818489248265650707916800206523364163216283906024731660283722751023015531810810245009475471840853320752093312976323287357032473204667104344033016605042135564921384070762448398164595964944800304923333695447096838456457406612605866285473145062455534912283794265847878916136604992103297868828515664866151364480663803366897519239854007585366963345040840700185667964168037242719664682229343520133365860557660080775842162600555943581778460321154800513765022261261575321236201148533965376912726172371922141292483865123299068583038644443577440375875530299562642683989137224992549244521918665982869181558704070993187500931627782202867991414355826285800763998088200556629998587287436291707308160076715415700643606007134009400318643825703928476056674106414427805040759119285587135840695580120144254329902162751300446023652435521290646714200583755411571400166834557230142583476478859933272767544889874488557360446445838153440901282961122352182835877657916746917857932244441490178755674369226954109051048124349020118451078468790538349424655346403102602122016689897523670679193431656839680328276923312594358317564225220539378546503285483952634026837245940123323828712040874594573303342690988555850958112980451313133399960337669502581516176582363333803027444508572123752902211222615733864365781825334055296843643840206463108086958076919645299860221880546055600962707705540165741419626533590438073291454569142199238544493967255795461819214723466242879626895375591833090101699790025168161983798542065416674435240143591785696190621555937300079892007503570286525766828211113692713919708881058490839308468543461324151046426593831833129241220459545638900655682119746356411679782194938898899773646197862766575875256075939623079950577094308085288600079480835065385207829610546815101715701994581368076294147684341652643334965058574252559614810409473640875113399718953829700822710007522165210034818215982949201691062883901526960450866518086244172285780732847262300010742974944967793459546238019235633954738283831155039342727119986182599530422883471988302170822602120602867859513173280109261790140136390891710884944681646783422683450771960590349173374397196225786627906821268152272430932532134469984200004984583774807164439669958999119093130836269363635426674576546003648918313216164629882708827228493235185471984905619365656163136017254877768978834748317458386082190499907185923183491767298214965752147281070979454187147813047204886487713346566492599471185304810436435823098116696407846436890321911290206544421388050581722787301777666055006784523426785623584549962746371644367991481851826234967851715527733057945437383341982915066464288100355749357178395263908827960940052950336243398493694429982614089975843868654532796007596478223245736892559311898040713430235443236176139094617603499594433282591131074404276935238742366279058407317798453736840759150372092550915777547288535876790355223613265411166528478803211427157351006336718934458325270731289861689053385137529341846903036034375278314801335860762968021769505468122224133103745480216504409560824446961760352984576136317850918114642246308770659083237876583904748231579816156290424746032398570205968751756329686993372275973145319480510656237047218856873457745126005752337108226550729699663892992580464125720438910722430182696799666692501152959486954070598818726119419800210081108063733829260025756210091968825737166054688883692920207197192837025710168418291223091557284976916678577449744889554315115598431428822088219723143484464723111856563919447549949642856532401004035637166677085120166562032763788814757418460260853338022669151946363924693017759941336475436774992384249624695328428830529039789194983551851348798743900751184074211400282210554822920739978526165081110329255447371302406450358427993102043224341987195533538749865205863260863216097920701260297829672043179726784802569902803839010617006397583327752021104684156780757884268273973315407219000540822602364762961690612006188487400409596687672329497290816940858329322304309736929638514437315797355247502865116704367530368325967374034901716401265253171371034387218153997429205553520798464570181092547506215769462866338461497001496936796406322397455156878861095005845188264454077032124761199619875538556573636046404693615675327693917962224800410068349556488782601670192986703459946693517316174301422500762316283184089226956968378637534045443486949730666411723488644030417610627066247288365249324256968320667251595411813918736421303504211529739278538443506558035082103219797354978213050662277884924926218412670985593005215888795767400063852136691034096957686091966140332670431378143388481722272160215843101692302404140713436220573584709668407924407409184646497523752045943915872091485815712142313647399079673883949965058912498631619111117123614257322358631074823881644557286408893677115493928137879683546884396692612846670737587430952983335488814564868280034754657421927551244846820793356893661329632861389570564345674722553800960351261849836528460635275147100731478352149175644511631568610911006168079276675208555488449844538811406077077860476397409888671935724407439408022707237671758431557686058083957340041703611918802041643298217568135954809481699561962287075667215582155919709667651687218973477611072187412802134796955891347039592799453521768891738854308789976726901239487328584104777013212852499367642356976272999070259263566932760242042960987560400522128087715959151403353526355998923699188014028958708038707378615189084970392687189345819910422927335967174726159051694906824310686682192167384777525071731587217970072370961770698392840743893445696625844828710610512406367373545653742731991801722413118286930363874401604835780114950684527786045300784163834473516515838738840182351443197143761419190044015933129180406364298403767490148694222381304198261077419771244725562048168335096496468080476551241309103645624825683506045566485353012361544333947975705579982853197219599425734061527635987843164514303796121920183568786492307425915980345491922847068396307689192329172425579918940538136755067485505136512710351321397161902363866347768252551909294742249497748309055790560447467696989850408689380460941799756959749816255641687447348279579552519844105100644633341568636573734640675153325590546846924761115062269216103614540858315176749493826229511871073850917330136229717649601353574572898003425603222266921827866755728441549272986190266209627674174215041828808476677709815025651596887360297694927198981769446419210942258032873884065120810293594617860981091155146765522262524323438943029516297325484769123048383380939206929756096838674358171710010688948025477933891223579362354219133905963069874476370569732957556566969673001456950073318597468049775916109450323242991287794447787940656579295014604743899456364952482937692421826915851437966338539603926223475447614409651369246640997869816935157776907682901044372357251151120085675326304734347448971455787486047193919579912308094742488403946824835858139799833595169582831837883508392533681754427269623577272690490849263758809867224699454616899138929788542311842923458338360827174837707799703446834276884565149612869141618712963796087223693970684706302973852577660266264690791678187240663296929083641301892792931138073206042414445044151198288794837556979221094222904623237729357431292504735690971127313040084160499070711420104333738194008954426198091100315175474712134502758936988786955993290243012851714892843559122128840866175479858270289706835136637333915772046086652415224998570147415175700736455319700836903464594363094576330282766407460421722543706124265949284646751939577189368813475036416703074395498054952552225575667126577399267566232838874401311967068693487852416442932222408024265247582090800094853394635941538405721842698495966715327138347284918356296330639486286096865013272009083167420063772305030801653621334182132182068004835399680088171974430209460017135220271016031122648932190374879125955177303120626728461461043925930814624707179015896378913327260533832343838816980613275995436645137834179913345844457048856171454150483874412466055649102552376557231459332809548307811972736678831685801860323614677607974815415162286660186221939333861222641457111237877894414438969857466472988245065781875465580995709093957191408434730694346367204261669819408379021098628011629932911977792982890893611788404138029417445287164552225043809220629083725838853538884651018818090864876677595877259415837457730089856627637949609905635496179376800390586141454235485670376801693223077992004573281560227365987209529866658599870323487098777609940667079722490081108724105371040358380101055694934639007712420290445116988651361914620195631241914390823212754943732131862769783292964819526843337404270531226025258861860379410067747954978375898773900916518144718358685151212626092551145918919804863745016138914782004988447320851228044650045687858822625018622511275231866816609065484353515069825485944207335103757547673448012334040989321678263119561550972792932143082229130915222238714422687226690275405590828917100114674674771150465069737822376263105260237638040468537387756457518281651182821643106584360401466051768110951662165293552349127283539046120566281606052799811693961255726908750301459071981396842442640517724398735129600752531323550314920979323897330040510655920125683938263861709518025204397203515277769449549677846588297302012512755370508357511649662464456376755099405278742178761989897591857991696952508426892468355861624594538119596446633104757370677937887556733634531193655930475566541673797831626983829881357553503094466552817160470313765850523002842714733830309780347225495904703386054698101073659012721042240283454253212799687798415885274739079307529961622548204771458994761403301300047009076336140489884835735135815392375188274431794363195675722708192246669195669200472796994124960504763912059680063598286401356522383925230585402742163738784894120107527644021003422048005383614996955348770105876996215531056036020759285372766181354028726792896783822897992849461908565571364560384652490206549456978900429713142149416308095558789679697170060838216637679320363279856988632609971530845464932415807519488876419397570421295030914392061270320886306505795214139047996171966027376468211652086256431543637789021913086215239174037472392659805683815372010671066946111465390421041729646026603480621757960519104057833580291715749338488795319556714244037382290910342915681920541471310935037866280260613397242911152155422999642534074764323567238016423536273103099127047370540482993183892030336772096828641972359178844046512357390190844678576619109734099363878080787658459911223979928833573396342206287035868544673114918222641016019867187525262457045197638188175821737713785862457715181942604896918722206825055648702816856639637727612540278432522020096186005606017031825634713676643712888979066518491238469174160686680089648088861666447746864610270339979785578741210560804900363250018284139189285058623058883904705764291435547324667823244773067268342931505510838703198858856034745786114525188688111887361569210051009629024664696503167097255011271010251503939149710422657530545624522815261425437033765829455262760505979620052718772051292753802600722864610513149453035113193014355585577754136939207439356639938576143773709234582438455611831167223471872648193507704334927229494525437479427031990411660021192461415375959073076844049047053799921563140905205766197722699346251547027312329388782888978680493525263179685651745275032240336642442345084481193243348216561681888601049165496861573762156064436230015774140808329366765574102765154566716323704976279135024573063028477294970614524890666003007197972452729107389358300084613909994054241270791540898632585391033936615803562548678753745458623553743574262839461557696177765451542865139589023678550787860741747419190299173304794874978831232792792405027397690422297010866221117572325695329610114113684627710374937957802852356527735372221507776983478460836784895345843816368929414121514982465363335931720911214386974967902833852654600043514400527868049276788642588063553390943561446097343432061692617578824604817763071660400592473292069660532868719516973507486049213520957226516824603765460424234140381723828201531216522914959742786496352605798872282073273584108255791032742327147320973390824363726412328878281169752475612722508688707141178735527537112118598480060890161058781898378154833818925652631697764044518084162983342280230567287397138571674057586473382878875741482782730979245050500330365816609478954366405290738508791394789173062685505141303955874095259325963640083945707574487115341083707137584588788258115413490446889486369913321066225280717736708299524538470032681605501634797541337521988538576012381442171119800075468879212164897315781521823817800786288087478320725411414068071866622644530723105647739625193146257523591212833107732368954401559594743702152336492592585738834606730304365290680002201473317879426681599804224036187763206664270235899789572968951142956146936486100921244768510076195142936853116018599868485598564554975074871977684293586772613983442764966241345879824344635776674849123788724081991504114264205903902104558769103460646771602536723963662372565053298172786458729044666768977838190668451319225943078566877424931155913597368990414223022622763378617565287075881084860861329692332498572520275207893002900224976548747994912803302740205691383462619453223011626495818545613792921833019674492971584668168709936614232345600554563426020730238148076272248144389901361989517342081483895158657876977251401997599789092479108959194987361498137249310685814701808659579469014251777524610241504277625609380844603958784227379658950302027846900310621348545327649428861485105035632990165078148403653351199636208991912284559528291292597660262532730570197930086924215416824019391018655742772778705382183173987695591586309060407081068973078509701047187005120529011279439800121693581313353110446893261752839571905406445162829548643190521257375343602755648535413825897227849598356480142759541960653167296859126730813118975231723417132852058145267378070487328238908133347250596781378338022432740541450753764384924300543689407129677653030223177078893821057179062434394130756323739898232002511734621890064609553623096656462406314286502822861764932333913192366396667057552400836816674488374487308065615125675153811141845541107716004423400781089472871979628876769457508032218445046814046836825174166978919014620603670197637661341786262723932383363916170683364553711088535819946940421186217199946062278370184753772597618259239337463467356444917659881764673536313579118680118554019677541536600868723527724641274769521863640107300975445904529609860381110569688873667025635587769140997572521277031658760817556389021780735802931560569687895543942335615360400538661188594178653960553114715591460948968924177153420304448615785469398655392847454318529728654266733416629785234516536417862542778482080006875284233100495558114110863638036697208578144547307161524956444572174172568692358850383346422263963724475123364756730646449097156869214758163601059434944657106862616665310286144748984766442859815592526872691340080145699862965823761054670737780578125837937695630116470042770107995009251892730397778865013963837938565670422944262765044554451577986586034200309768562448053199931029027663036852210353080668499074238870584188984904825313420078195596139075553411421690166654143402922263241645851578716309144657822815836910614162719238940455227025919492654257549667683897030496212463194047305995685049417567778011972385414027601974138329608200910468625721192858005491826766594286370078057045322863602027666881222786570136449839662635520175589836220922997419716984290775611160497070004931793152663980766812322744121814731562763000463485926909763261374882716071517343778561545614572995777271686428792693424869911395977903250426464730455356403862154358672797037650349238493924441072720293802690924856545270611216534452400121347760004924975287595808916605367168821722102281147160106122113910498927253052702238547475485106913656418845574088827105441722922979918637169373567592286800459642527672968233758413973966149459137366583238241708460659983378727601534081713704609716364699877781031794798214578131360745468764057494030735520859775844537331723157223414275614091917188208347746868654002201925558847005537411222910332678884029576680538099868409226936067375777678569891427752897602771134413856248029841492438149857935039306068370127640547234606266081892102541083746338831440794016265271759386664742060048970270985545568022013964808094764266558023196049178063613054202840241353696281035006170073932075158913683323854382880704335084992722803409603510954602066723258076195589580521424191239499693475676383143434304444599119113857959895084658596065911785207774080298226733455030850483349852292762010512283680535198919360980030089757761010050039617246598009071372496756636084119108054871929636501957132437164906975507654671697629112564431522422987855457728482102364858794551868839048012909150106623201016879093509096995089879146574869403967934753956111797149156693101114203230120485331694800763345007039457163823826594348690273388743012934679554265295746278838093169816862492423606459445911236760634677037305720964065927329183643879611550254431001896641227883283841268124152959987877469456180062813251523498221938999675976123430465797713726493780751085974326104167841219064998212185901380330355453015543254029657200665665017347490631278805811492158112814825759269342945221577406551740549764923116244062403107192706049843821156955841523448624995216230044973915537375527423612314799450341999247434886541120726840010921010454377225848214990026605006112717129216743690931140533262659307200675033849963960020652698596402127050015864995105879799931736082617063643659964904801775657150152097196436161876102601492192465515085829152959874702785474121541239812143048258936300560192171281117319452017194992390774178611457545278414932214763588342745386964836696309865410100441902741284183552603144196451798949285927900635197749705176926554446691902976219655500461331938958565790335596834552925942570253530296477026368553447463496430847710125219776593411890909258991209513412823201179333313857007560450823437367031443593423951259315139907293249292405005425106331218581753728446721248536832262607823335491102762576055391872140626558225108188794455024827247574035376822741307930256509820116727317455395011357186641485116256862385043912545508943274937669488733575513927599563514691735165895523371881787537877969239221731782140029619020469428396290031599800080034247850018380668881732570502532658395730547103432451590027250285835938775777916608487593541904693967190814335379355336562847940010138123393146430162881293036162456537022918865816780875781210468166305522712789863646384131497104500853278666026478705830843638853843686163273371694799187057294165392569477822704087260271729048517704863345678402667466191507483425824742251936711576484941871196408596370572043874143949719899368968616296130727242651707407731859915992594167238654219980293604337202325618403994336595946359953712347599069559619758447618858848697053471183203525506794168366068453399887779665655427179982135500305436482586513814211749457050396115112297388720053232109619318293111119666232192447619020732073537097973201780698991107377118798153145776037690821878719406599432588350114653958524978362672743486156579278666645098282912652922030181715057680972677121451750065126844990670529988274609661041127314064224728203570343154046962347851988095109608771072702148960517523584884680111279817789711019472468741571767715520191076163627609214766829120256790501680457095805845059937517718722078549931098263800931892045548021491286493247023396336085684386199760618832963880436982291286509021425330416408070015054376966314660010337425277805931299471913207049822512412391266358110222935422032872779683517134061911112208513053569667988431554834205449648846442212066102642410272487665992906729352664944885806922318535587175127510306412366890073839902929795220093995285608454434713172320148712473937174102483542227952671334197864713871466004600319332055891381629117212385271581267547214091356206773409227891029690339146298454788715563201895906159665416402472699196264813149909319369851195162233646434176375964340077570840340429574675354914751014575536230111073960512203156580098817708157791361752240077527688652183769373449384610779960562868077615232104619058707910996229805716833732641739581796392064076291039897212635639465651487731364588761627684414686806081935826419311145596693883741742207781027886846537204996964666876356796757841031477340383343928282155799536931542479611968444571119729801026029058360875675178909004287767873477529884486428024781335147812232592927553836777548129178099101880876889776514598687956939511805845241466142968326936895405408722413717306320626003487409682927903213975487260110139336049272765342146095104684933268576247065861985681778505888269350226118349700536630276985253451823497228252851127849259676860225250241359652102880428870968097899469152190948499109971019732420859570254424765949896631881490858374590822293381621776336934546208923755016383460523598353540113955948189020337068691175039834388497624799165393690648010973033066024468906265745875318497251346401551171312277814086829218151101348380063791611373571956807230734812370518321845709914007603151937210067453981317030822924759719984459653326168719400598185941297480999911135149965521684955065685418985876740177013014746265948378345985853425085801943255514381540695411405142487734051613702427054128269987419082995380159494789671043486623225804372631403967088642136324918415427393777443510661502862988930527735488056586885325018300870521914065067836083978828223249318920144578470031957620455650198065386162325220286442740734737734149781653343493217451040138979028186098059697971885771104377418847269184549500486665978808428883695041136075359130834347607711736022982703313238272111747714946208088323181225506797116533759192108295901308963883830047253031893402443265744305345223266030097462079645470164417973173428353034403087084220986265943101771290000327078954200473990136970873473914603236596511017534840136721000070470577170932636451878383738379767422578278199181313915644529698499245395126549475158344440195016387651478600820431677634175803952135687350350435829753432996570210337641290708216217213851252312921422609601720305620538860157129807150320063398304209244965291822612431168667893556045532506372508194413361578800930032262951862488187944389609737375684233341658088626692320771627798837964917601845178846850800195776457050024129416086894983954688130389465578709583505123061490456652206348218929910047557888215553084211830168508762482232395115854432292398455022357951488003258228539494071176330242053364246230614324678756526218807192085461685146903186442610083844834670137418758131325116432795286711342257730169449888562748657726856968408576725438323262344602105518131744599952086395420495633496317900573274737853925236239728716472570572634329420665649038862317236624787427837033177942566590811705200933715504407362997826506537980140302378271466781616554469169098529043893285190962619833127158642562220222338748548225682982643346769370955623476449527904445967340565900054636094467831336860994175913871933451825955488598744513285784974224563544417089047177492814571745056617282138759887102752206545864931516245912811787419089658544055917176204597609460268427172979488036247009140870768581254087084721233533970471571270981738774462590491015289391228199129073972791011046845665840240582689463640180609596801775944889151280791633017131191718462897691018817615203395458050736219389959528988189582885566595649708620215049427321054622291603820333229485318827246817263178459604081745165612653850685264230038829428851205932023514493225148693136903039100706145218026397800458105969496212413575963994853278940763115502485144816961133510634634272324954142782018105643867896430134749912549309714437288655190286915099995442124457990908543498754818602928474838842417958181697037924984913855571362343825715981381496237642722582757024323205629766800850907697078397796951438494683014602165483562252934048867187549270440552076377527516140487515968717637841297345193605745371394179629657486110581012550746510018881859667833106361787742974346568196003632631535358983254409186725541944759189991570165341805167054124187084447044563220648860446166717891298755655414380825661836964367605673566274593819343287970757009542938207896202442220993087473277865739849261912084519564163470203841485220666559783173690273952470383022550950436576435503383662816393823389599834054981015061382639825400384899942628779051560496236390377166906139711226820736511573031531148875368482974610719189608115635631591901715334034203396986189475303687768970283369983359631629833168732462304240519541511174038892596131004532248263547957883865484696299949257786014729796273459736834978879237305496557623491303508079198961001651605697830160473555969885833687275883721067364967590114185259821952479482743245093415570673435859426722698330361510726005793427445928794041687550076154641728319500118500906157926137846839106020606303961988517102448255341138519449418542244011447583064934425282834480718113354638425508673598303701923993418607217121879899820899333404100047352526975661885029175526450382838269614700994276806937161351300427053936001353664847862810377623070491493777109207641824743399244281109841343601894795953372082625669163212562347176516210045063364324374233488993950580224118708692213190976278408159406164965521545805897263297894879225952679163098463369328972550614476878907999288519775111973869013616760378947202340955909626793300733251399024364785282359789897165012964200802456454285031044320459005969696908790966542614854796961280705241411524927224565947106045139543562016233413882870554914875538040044241399318939541065624919113993270276010760015819023617991622798398656243662624315083341594128462681780520078635777991760612716695475413189550688006856745689806270607480032032735509414286617371961593262929840577688550862321088883586125341838274128527735907506627121496095217778157597965357292101249905981136666556815174268277412910584029918352975044298205096626741988714591770825319436360840759482949942815471261795185507996294321047402212587300770647301730397803621373794708478152012277194608266404795650964344672308299370482232994315407016325377754651431755279890601618392748040235993160335863346834924893635433450272342301741357748346314972280256566876253650637698155725269145442168851486743942963429378722671212073022628775318376297065496989859151780716450220433981592231963537688390576960789877613867264782754310447760177072433916160110425666007112775458510454559799519863716861243947308095385912866602540010406000023392785681501940044801507459942216738683095187559824530005595854871528813946012235435561785471186741076528073689523044498025544772633252192923241489128908750505679724866488417799442586282583180608125335759092795255505595363584971688461738967258473669540397160779920396543453007699813151068630451426310525190929000464341247762447070114217031231899550238992821195990888716261367597455805233200028695557889984869159840301585896625741795693182662788446769902362600304063134133959182762288783430921386522464793818974469160660475413435694131696697997927219230683504273171353558662133257362476018623869779977997023865887183722409198722555144612262814538749337705026563868550798544007867932126331683132294017712231369128336174595403346392752773800616554784902233811523803710575291043228879095402834665704668460559735005394117905166764453261401775873478189249492524238212902555166522800342664260160489461659081630288126951360172744929127870710593454908643536156377174588438881733135285350036071667596569617875440795762088919424810943495307597450796477863238340742513695563252668169307212674227474965802497129947641029267736354593481769511192420371796732742442617289874396633617452645721137955205144702461119206461310943257739288882575123575973852470998254817694356262989495155634669628816862116714787719017606004978925584196624241919165803089666611924675992065831983572110775550075802714386382570018681327619281305634308441883404004261697111245237894635067557071571512385868101209756745452899848529579502574530710730682569515173119129821365135861082761717304247870316160775371818639858032042186804545286058650635242956912861130598533021958191144455677944950064555528152688391810522656950725655466375675752384705673023061613400690030135540630503810929226461574594875426063667952800052714690355806727511115185804499627421130286294053021844897042745171313428370693354799117921506117993098642712205013858172930796212570998429535159833851361829297374332342199354816663406879463678145324394431633471551282231337151333603855999378312574912499853466922503960157948085834698025053445126896920896667044430921139322535908350361872034626871824068607750228741697994420667867263836077596919508602883776600589606372771160857164719394714358658479630422399408258646199953065775747305004592071052383149184070866219368454904503344705190799163457156584041673837317328119666645654951747775775494548434836537692801329780622491605217398235854925381217478928961604379761582023699516430791531964903684811417989071187367480095709143496429261148248238021040795262337783529780087912190589038647270264363283397767092579480383188678699876806154084254484764060428628125570252711388936072771621784086755928823873810467986874439164270865673870100271683082967542636882390173466506608126412376986139639853781424773196533698300488112894052443609175191592558207172035726642723145392961407404242483904870629261134532919617498040060445554185982626962438249519918293490011610313457329376884106934533993403363280426472157855652808624551205381033801235583419760470206243029916283504797649210674551372984851838076854246819652166681107040622399606124986053473324348321908548586013971592541946428536480735951915247658839147395586354634540631012273209222125660891171594929263400584503002859044873077610096835504408876845432997900565656016159528056563682348003067078569956207385153425766202946074418254893102335111162658330450698336595178114546441379490237208685870184387179746238591985221694876194090806946253086347559725255420349375466936249467661877677899628857945884640561778719478693111777340697547587768067284444346054687103617995866826618952547531432138799585417434936461498050812946240664219994225445837923131563045963227341756974376980571156067125015296558211225102133646880426589554076445858620731927127738549827325281511502555463651643120634693138482209316733764067920767347052390547443418900951061439894761987378782683432129752278804271937704831886234013343896048420610999307613778582304871071095726859584526753479277028149415252742072654701672196608330842652441944153251621698281248983801049174394954935150445961474302950717129773746136658426320257581085658562090534473522900146183044841993831506911714796447638204101286309296944915102918452964084752104366176334519055487596670751522213231037466116296260215374417431808846278682336815217189908006340944165036847765695586682600032896609379570126410511251580333587589112535940338949061154196419686770160529618003127165611681591576681202777992361177496087706301347727060490443097415722523812579747478180878517267797949579707765899047755833836373653269057506755422000237217585986612073469011392359102717987346245242410023513067884863643356672760318859988907220633958207065606828429812816201892173751292089667702965326325309925439623298846736452717654358033210140746592982726670672083270363026872012730770618405732150599073444173261703707831232948769496501097409347255732753195153306305187535405047653876395452485256137489642308496683498623807856640334325374945964165328265930727219775947632472204430503771335066528241718676951799269112383409918013881909771383655782854635402764031624827930338574143451283617345958552063647357785741427358537742540225276146680344367383136800949738590260478896091544009876685781929275703883674825483053596942068931097457625355142400581593079766265266817421108030770707821550468926480376891974707743184710988358155113000152733029358496022760614443522454398583930742299855287772912436752226840437312307499518846717747039189044725131691423502407304572688828652948452139792214723005651717370371777680391069654142123399028718611276144158955731267649703899879872557578062199553427583768177246725190363837913144079011717757572324320395298060526132828246754324256336921257088767855476504463180256809146346285521673419399689976997537951278253449236658983503761529848135670364358942265960751912495249115393982089753798958593226459798618969803048114873281205975498251070132310025750002593122264801577533601599695256781294796600179074905570831812704169478883437746235713754654740137235686036423370279975023987139188693997913157920911747887745057291670593034206476094594413015323679604213815485174778880001303908218989050942398822177309699030808766830821679446585193518513519258697822662353890266381957668329491455811680665601496805074275420611818053843431908706448454464766683219319009962093335847114437514135231465819489156026201986895462637822462615298366184820839016663379452619430063924027120587213828138824209724032986852599857835912923118738042454099164332442153518721986049684193413893073155677486286030994195030643960184332007499568611161929515201860215262180422303039139522732946330719233848368010233890862526698497471037845558537592590879418434384850609358606922206348270774174848557427553174119200914342932188092098930241751024150326641453486866414522184864417236160815082271609702732846535386649773035787269409754583395349581904683049095323559468162776174897931375281216371339106687788227680485043160717223653192094039841682451573459029190226058049743669363802052875566269529500006457213889095509470432055672780879027179592061232107492220696648131489486465760633244399472845259616377585774487714741995253637940180947441891023573602496749584178576600819011706170587497802246300652161941084374006042756236688117167003772771697598496917496398790462283452074411947831698964897527912138207235577837873760265003876736642357937206390755469223143243340422584180528110107353651376963460148735697239700122413701278527647366147308342529317091488700047466366332536501275291357974971079336012673088691728731550023067250148301866320786484945274201326511469845931993847374436096694770994411757194921586660548566429049851725248522922957793854392074081238529904163618172543811142510908379304059689119524062260380144403566148294835650516041671615901722121149649731423245633055171823499715735855932592611149608546288494687999391203059074213939927933555075328684767677022013101806914670887205802348387285216033932818869040712182899725618682639238150715782661571329509197375726236959362169597714210657569034577158674952738669526855640977130081424894506330136043173023505844827930767409591323485512393251079451758600733534532289101349557196203971538759636530090178998349836234571658483036671791040064691233021493894653176126469988619511535240370290614053374320268865509607139258324359538798482157857725935148464968602969734893009301773287072034560303435834637121259370271448067581063802571649157023145699428665553273048225081150386982055882128532790791952309261486673897416427832339678364969828329297701993771137331396436175981917253686939933764977937655660485471603918006101646336163307237712470912773837049261568744721802488891026994071899627790626193749949938926506884292912535987382010524634831194261533891368581189803438274697614706544435824893514032061213425100486207507002683954266795025049902067722730760765649224479356094849072662462658271845228732108966585801571190647995992815725088739946909128542125744552668213083062657557002179120351639414409502450930991785459157129075518393287120854398942765166075229793159532296118125254097939978805838831882301945792431495503694868629093958511422251809729146978229959599492436680217660609569073702054444273150779981141608774020454847759786628223323613664428138912388492196450098895750661250219216735504536249906236475352957769785504901401762387692176716206171036567718450132488987698096725785110971969049873304478742951699111170069839687168368945063698478112952217072000617067802177288190076038361237374890550843014546555795043804190878191933121505472612565696087542768855533523732331276723368811775387261955721827388193335749706295276901817845486718981874092791614001494911983417139730099156557629432529631918535164924352997582055102909844098595798231418831065015880459660205600678487939096136510313115165211779591795455886903278175591458122223371488076036224786933182923226863492755913340769749026399636542806791933843748557046523945070285645883261168897944495485873114566640272591205790892349666259356788037608147292345874645401857485358116538631533817699334198172201163412395027092664444012358555708474269594516800259602284380744556340519533331425209403792279113025506097602929646641723278088219879680279384774699381339271492583038126542058360853283961140344519280756404044620927605775729829558370551384874622411807971902080526596748505425581281289957286272032934400382298569086008459286790874489826648253867720262970398622890243908153464310714895613904770142692064480001445756439132671361148362301039602205915027327021608078429261296167001885573685069339337377911751482923409995406653804934554168261835492919177356395739691729077793517635396139468788887855819654357736939889821169304252013280765988022237472290546145349692808583918206001647017655078964135771074675249855599354688955200114867236094982168828596521935992653072889042967577242168887572557682189217815847425976928675167313632804542538120716586811299502153492719564142580908570754237199121752423391461791950209273686836176898831858769404186120108271179107766933824178100771495372969512563708971765965920449347919676160247821381782602359282779462681124241927325992796415074441499486522639044184416262002038219363539724082936721308905601120175562945741165071004159570789778557941304614872600215375152932106925104967773793148984642014236236830929076500265533294853720310241410206159821642497735764747006246078277268952963136393419132042497355490978703001052330519696918294275137205103280650416400984450927861513243106684518465453933524431337317867858090816711580375377974269191629141100676450907234895626549733692776462175449251970200239757958777554650624077256671259947251659017567876759961902272074731246002917537240716886416863723145891982811616364353086215532230471980483935174212855087787305613327270975675201383438159373303935826127918227919321463018291535828130667002152454670355417039121216509328861863453031274959371608679449687767659076703919480732827772034186032535846795017055352199624131910394884733074090445071775505569470676090571751729583046152650009548669168136890487001922561601436338541434708165008568022345198065775816638482772897782001467384065220473390527375878566351409707192851798135622039022000553573647643825944694451877986814891921882960010494912996084610640701413458887607109157438676501146219565224405245744353460138073324033912769796013409897928157496896793727667392644486608213613519883939961425085596842845721383171110770021254445992327906345036712487984686277127128772220918180476032097308343955633008373288455075869491616795150047460273743636001273804603335819207539264099300329004682947019108995488141238790546774399646109998250030817053714430455612580991229224501897104886392581998361630446852353815543898443871645073957206207670900038432217923717532983947542183932631189453198305607570033478987907007785301007838738645483884696061748317022652109815342530874850349096448965405391249112863702080352918407060897032314621137176528591085648956327851788580680744058134456175091345772945549750203952473503003220393645617932515154256946368382625793599972019700916699207421591525518257868209515251050135276648798351491855766110324206510173037281334628490392538501518671700852248760874975067955824474532118956176756803389753440502970493378372421612858235112532581023127551629026318749087845690532421423464865489749255826149279519011179976340905117948786663307440663317489800897519763458635488126854606292765209061775471405411714322223829967436114804640507866653422652212980590293293056103454630035136515927495927839560681704944791658916772451781979122960239512174612645888520199019798356706788787545845600573651338297003833294095269604272960013724898161682598967888970057636760935551047079909314230980016781736167905315752580407594309809811352000568573395007398523947751120767203969969238626129681816125820755450114417051206609959430421424783882411059077053965480411703113488732053392453481708572917260122462271830936696162409173226036858112851726413443737371163404897954599750847543955313589484485843335570409425925439500884493359212862733330595683089889783039280181981200066428547135747805160745528086091188537269987868527635396099148462365957547378509298848384403817216959328997783782952742965259379601208074885060406479042374532454703347464647429145859677475523610728308493055985536398743993066228041849646362691463360831862272759711752372735196310559579026696683451244441841208071791034725452357063976283604029705411960796998393633254733935740780241438544216269185387666204936808709769237713474319597043605066534023746112746570329886240977872197398716904708615896450543220863424826578348060492798981667823485780059240753458768490026614530370734726400384001065234629071156006481697702267681184070304752463128363268785835886789894839385494260658915238671158319884367780844107172985329193403267216427164241389088063902405825733094216999524812325636349005106220070623102252100893601706977695876119070252086123899120860102059647922454282424720921584385672318348090166224948230790256451338767976975925892007214750953086350641756119926997291296373473435237676485275942704080369685748146656302604738953675404400912189083310648356987059620220402186158523523201655797498509724558346574546354880180715709138211245221256939282891255562784005098805892949468049974237875284215221268963967501679062271308675028045775091592255478214177349632283307614685893053950365245688686408607363832073230388060004354522061319660680030103856007360065787328361487653761857367088632607130244407645485713931633048583402138606631442108420976851524928297591447598436137013990299930501179519603233359181330600531404743553353669317497904298842272252274175904243580343121921519728362084342298395856655002270867389778254680100889634962861367334329498022746311672708387829563648641166462868941433941889682700651764498762526817578121380012854567525628672508202174644688417627363400807734254989941999700418273460669529536828205882179582958510110247898068094612176465782423265678565368980998472257340015682310314897142649948110588148494289420573982875752677578782849063965898003780959455636185488663082430695670536096843684608555538174529171922619014277007838635429520463485410149772551156102108112637313289234190443439537208426023831940771077440448954641680264681332351542667341455019772319914781842687348340168631498296306926170604829391582096477739887502696110064398417666095639575791893125679487664218262104519508089950974398919593254363484369341655594760518640580266763229425825805367445129080196055692205690771356860010916574933291410910378346647364338581492679844826583551684510747058505576326067058747900182297152521404996975938288697882083295410891771490172068945478001704717519638401199951646005558075060876722999494617759057226555033226481327074916507801925595541817824488422157794333384395029345075354048923892525431379851997357452536134230088016057543094606971287927993767091739944187871862364064017585409451386658337404026290304876252876901846191295613392369832125318020370568996472493614224004691544352154232000683812913663608037316123186827564246809143546262068494158225147645839026673248394219547531609541561718625593387746675954331716156616636263846182155820115554508763300250015612810844940847272713781841802536095532669855622812907573128780677719437235958261118164183125439073865656777038831284474373126827829771210917001950640148799459280707770033696238572784092563504764372307822451274409614429884124792961463143491166731916645779998105371921817510197111998671318499105164545533323050170599003386291907567422735567654275085500085082171100004581347444868567917997992355979529979643558635149464688640324139752315052155994747694435322215152680226783476582178958750970345094068999731187206460144468435563263649364638966202781416826415740066947451240127076624485808063841251322220863137815323589471263919125957197470197349537721090995850551680654574083650432327671716440598568830217591747859137975885033165895013904435443020765645555060882255896696844170069346785541535989100362326796275171968611349598013456087043932232394859281352686636116756719098097705148631477175365541574892584301808262317518394183562992831620712759745760857629723628164369700953969482603812840642175678536015989992837935457217537925057724282902940881040690140498151675038136295019260483549054950182636789020788539052525280506060055286584034245301633557065198607646804982524683263157353882572853570214140919151261323999711807119068834089175619652004654820787805142346827362748520705436912640935628165612374458231229192577752238073080440013881409037176825464504957894520604028748391932417412773978424480538433730932247337435960261841954504822949721047285440465464466092329421290733715484762776890224660796812539732490056546369172911688780583194756630231749707949790258359907559354267518920082851613898363251480345249162924834563184516439720696049914995428952071683342626776136457466502280321716883222532132905748443749278430262883226455539236006005820381932233975255652441829016499192282284894708828391315382300776528294831260818578765814128771139826070518924921091056606514559032090577063365673676107569443789398977593208037812430952237149503649086256720125194089110046767169981979393890528810251003773137430921065903832467946443908725821109533227409256137633101703186263318107976711223993723196753410390984199514754891264607492227020592740338482527645668888776265414889143702756662526072083906055190206812382061968817540619078467641314715656220526613070119280958007554843096617444782985466649315094069950451316442914347253868914546980511910233527404155104564127299030560489491020097991965594639018898905042489096652043906817175922496376509689937584750670348953374651264369175583260828176879487697741864505602618912752350756838702270094452110803235329474714363913292193142618961085982459596570916854484298564851669967563647712327755600198997242730521935685303399818160677932431400614181488050886562183214363669865560470913204312808674008730410163101179415250892027625631609977163145987139059954969479299656152796146485972425606816389451988431139037053942614632886790146016752703668298025941168949429556188792390696461951716071810102389824032247732024490527707142357657784509507580466779815980194061488031700249265180140632226243899592736986998175975992847597028930824198273471531978774414548763175520369824343137430736127213473883510750951591002803310677949755859589544036705830615377174114115052644416051967638720266343374184589766865665312945379563588568281790374183035836741139561984952581005992638084472738881302204046174734608724441507603918417001911876011019033132519003944878214845511815902490628883809371416231289675163855618970844408323041448779428316566455613748580552789661844321258590030826568666060501304747981628766515943655572059138152094891367462258520164059639453964427922300855381787387977989972865951297292486638469165637643647560336268666766583145392363559431085670153614664758363858661417228395613106641312453945940614453014154174351676973865555521318207605287481254768038495399839980156814261878186360428788463966447702493915195663671421442199986565609469161056931553139501825947520613716095552691647026063864923423496166722497847790292476086409054023761079178171944286243173599704116071133152753748206726004031629405358047446286196349203250163718407065927151147844258033128226445940349452166034815155057865802188235328016047066956145087187090571032245136878554023133618578463917520584678859656061744108986893197984915253555514476873032181979207266527180990708638470668431409528194511927728820471282133216733837516675731530343284970811554547042340718387146279671771574474078976230175429728824272065234087402762053777990741904402309171988720215705225327485922743605407083870794389753556132641155560983524939244430827948057043777408090625269548399669137296629724065279230016139418683502768754427627290243095163865793479743763974129543258896322959572293983342357191569371860824712046881491417938194279164059177558055103348390981116139262962986653840563427785158845759870710578177833605551176709233111331602234769948638675851769312645092651831598064306645714274097217372764612080450943989729248553372507786770751491627103006844322117053707629698081142746594975083987869240258394073823921170440631207438300185628128595557369878524632786670882174327693170217562221941209928730912302760124502773634946795112063739655079736340500915683207077167427549550122299188532431313523657349893151209506029540244943139664691204740604848589273868416499843149498480172467436450295253120527012518654066446312679178629591984570866871572589414042269560978175914443212005039127501272617363339620688023125112307481086660272446369622108455981949342452127000698989794279079965084555756592414091191670376869794951851115712367348579401981558448899960749423069834408432605096722293532209854770116569168185408580697212943503207532269706005855189478382687487775310412006001378204937362908568769476009781424007881365385175343072432608737923452571803212804073912174219639081704171929839150073424677068471045529948889599137123181840567598898034042761998511856128442670532253474241219273851598608428347596657910877986479968024905347612443326809867695284855691318465550789414980038874923538477145810363418040694853382722632005232688001101897924415009249631401738134011112716521365139970545063494144350864209592318325704613044858408632523587590932044658746700738322556589641887599139760075364563276110210741572913225538585497011442703784570623124794833640332856828439184894307283233041348463816719189334218958957032019229726859123409848838100829920596570575737161874652412000984357135112624801691023255674729882472954552883074849134350397085765492407422913456955926320949739405807227790920233157830226011664104993104910635125368237701043640640887256549966753891704793658530534427423237533690957941769311017722788582345316783841412321423107163999191093729365261828431636396055288773423860194970526483604954850657435668199145445654811408372694451719113198175099438883235080197029715353301070603608713899517820049601454705973246806146176201434536057458116452905741555662129144050378517969119231875624111157522211801239504689630201424960038617159969092461345933286630051467324679831569487189686864651018495570823812156140530437443630802451380963221285659350642314633389705848781833151966536155245755252470348640733794987307010205920566394239790219947450913201719773030712340805882780956249612254857930880012119662215986964641133983030961291774521639409539574950356077827536375967379580655258046207155154181321202471488194185239919465638693092893151296403510499412753897458854986593464222939830927508895731215391276721536458981080218346131595127313294512593668628193356361252224749285513670438895936330992346816454913294917718800439788865844434058609606260143312208556169608691522061704915662486420745890243458707370508318611419603850270702111224388195118967795257017816598070831511975847683900178386060315080907033074135610680636041551005809418467397209395610883975041267613306477947511671228809897337585389548763712860250022488947239405641065261169870470355252903742735106012389846963348986758404767041294061194842800338096738938372212949675032099366854658032396229279665275930906744723316264995686729958822279628193287090043663248571668416366484823840603995261477957959410755498712321773086106683407226480190057056484266856768564323495656198115699851150884049661866672174050383372404430811806617855524106572587881150972221170587611927527227102523782936379132701279322399065446298861684879604141306821499703462323229739808156941985820390267243585540831594661261342575499859961424965976949814529890284137776074302548375521219503096623084430006455171145927824195202222884427382980773589031258502718812961408587157451157585374369191143236178539351488643672885988849461483499725425058691533396274099547279007916053701553842735352340365554495311329053051411803947280928274449567017937961147937204472511248539448823528370100141511471470416856180144601746908794038039923623398749777163150329903062293202383209844403354326585452769952679540322925712008339761572786518304244429681332298655851228813848323470056863681035439973808862833576283023170713288184009150211018861061839002553455119877341998857232794706516515560833431271506321523777929986778574382763224715296960389676109992994973345723121543761163236946130660344007425602861826813511935485370563048371625309236647429064182335565091124406670184047675651226720459887957277352126021677647468098398396607428933982117101007306107917664866185869218716752211440145812193794654017066459686288542097682260744944693847511361592591109193376947859722978724981187039903645835251746306951924441353938285686769428396511112418999148750405603170825314016381144218179428988106592072230947039074892399304405246894278780358587667280059004985507918975418479304011446462848267017921989072841713837469802782227795390994964566721310775732141158263818089361153380865970450050821960009310086557381979768304646049277430772909636267592258908581872565002024258092843469638531506316049164482814362622466287138955066886390022445448288008480610506211177641994923356033118437956634024904866812480763461326097253627604551359608793500998923209292556792122950494007066101652273516826389198708402985157593985144948867422889081807688483554369264000461967930577906458794988749836351865777923399869696509598272598689888480517363768543734316054707449455452268439810700922580967028630866232367153525528042826071213242987065703760430551647779250951776074565197343996347940803627626175817055451104493127664339739771051206595505840950871362982334168990522640867727039737428963802088223361122183333931529718537266951335331156961798905970059703797740610324294950438838958489062745309217114861031436418845883305020052097921803582818488213149548820079312481994757692153930203404859237748125052237581150824329596081895596031056287739437191067592734817401130981298752688128130170165052441005569112631314666533999035415993328640359682546387767875546726480446876359593084108357945871554266595669957670404077590800704324127348578596705424127856650859139107649363846698465158012695246006207949984172874927804862669011534388044982905987634812184729018162579319374615931575692604477722204754372041055442754969783185717129456195175208156057648652257110538064869244793044867131189564015720707696547311208785810209708513941883142030832716958684669491176074489279986030631600955862172177270092241826759896308600696106489967081916528977428025715574958235634990980474169596085658754054887736991039995078508644064317380827345911581938146012950963731572965285685603622637506473661757924461080284910000585477342566683080998893150931955762085361479021628978386410948821711142683815746938144501189267051618929063128561519895923942322071506673444852847041025469661190862921057774368942305643807549988534890222613153017926553743971505054789571707681408532439110817508567950052889189714989301315779354845363039020412528259968311947097028674732109109225074234283992124932964365133941559157306181067861146944166193983309535806756949042024498019390705646045522212067635542520837047872039431264201099032974373769036919688603911583360578723204293088811382223410527834269306939399228325638936577404161304343270899892964261080560830997574193403441425947184354048247506908742636067316982583943453307689126653370324704194961325816594165071168764449621232990197521395371489708317030328122894210688667792863995666501177799739486682699656257906014380570542661334941371181043672408342107050355671408437313843699658880203733338613798975430054376305169302707580320462962797318370744292260459898523090666895092817828801607639671463648470191014935844315226246685297220206896738976737499006717570609764612046346184724675598960803310157058478249306436785762027460407731847699957230484179614387899237118918452905137819736404974982443437085133398896022554846803269668151393988261554262192202676928894628262299104487926304086109308348861031094625776497940816609085296530183189628703062262710248522395299169291032127912204319107988642065185793443858892371889973072893885664392084268995512586366764781622613645768634490426227481321220282731865842498833227952091660460973833800199825620681538979178570860129084380503022202651523814302708406888065093437749443842827836859105246038805234218655228851456027737082780496293706714267482255445821589960166677028709151365991400830865920595215569891557295177311084115593265563316141716741707594683267551441742175299874038197095807405320975760707682670259602823862127111044565433173090910773905023880712066126062442715940541887556935936339612724652350042078081523901037173236161935171921062389880695602040165318627442321714288385267657695130399957776013076063590154062291912711323964205118868826598929088565896186130811558038811127613361268994044448320064242980152617897612868799846274414062352482249382197869171509001848916316034778539990681781313750435203782014734797415446110707553034132307963929689359606410779547293543225529635128617649415410931778041623355900763168983610113414051456297511633908050069426689139102423225468282223368795134184117849721929241134070361778641662105358585700832906891126378593616203531869190804542351516009900483975962723720650165964666642018233549067628235075154263075085572747256494076824049899861058576223222212519320121991145106826601068347426006682302305933708203377351246659074277798360431781351430422919105268252834275182581960772384887259653214384314515997351342920357820377912214718978334891821711617546276058295121133316679496652626756760117101197074680358189518919291489078927581757148789771297639929494626741559067662065604481355656174880371224811330282658752446143190452282910361986604143233439594558839377197334501816796461501594150132941116167530885252320741005548893630839541067475178644424517401590467043311622097700597677218744807985594476731029014585590537611685112432033014798157956164725975878177219660401179538878900667004972116347609894110445584155980929703774102891394261736178302115894298563087761580298027646890051651586601437966587377335838330431036022864485691903356439465224441112968320216246838423943618283067362687724997556269876327813963573723837572246602910558279617104844578517545155848924043033942623122355248454213885538118133739995879125238870395465338032240286326140337184401366945945509845852302970409417844273841888398080219689283609203810726685552396467066717889963046231462232638302930580301673891431981649525889602016055333999628086559363884539107478214317030483896061894973568895267913565316216269338973784733277117505820630095296825577237947910080713347742376720201727353710039599975409284944570130829423904972082352983410696214812067883915096994080105064608325745279800070960021637149983483844123738146804819634595964708814580658064236390334208146562609280365347350967575986504295321789502971739814931302768550013276914777618955099443900662930934590281179745749728861087111662414533903377582534262452829036707230608810112910974143444495314609144270538387569558707937018361674097641314525263402965742781553289272532847619990084839427672690036615858602090644810295885653225727354759551066410562973747825717228388570091871234045940451458733834993346214529726901519349391683543610084850749417152085478376491353430198136241353330709839093675876056398931100779751511957795148332672817912441714172195238600766110469977260055046135270082442655945772467639110549649033040889669513640045471379176678158730312795461516581371048399070649572432481444330442260936174932139423238342572393372329965895580592485937379810537693846872272102946245236130730065996131540183384401862399371804137907055892305110752787357016786818985572244118644929213009740770628193553475519041322003023529697920997308861226010268003363926887621393363594347588240018934005572216811347728616855384354121614641482755358566492880439518272284078252528151899709524753694656710765118443147907503847717755074240509105847955808357057617939019632558020630127576081115519886475949357760961151884293270678849075787253214777283385726791757161281934918973301659952695786642596645015914304253189098124891569267632317541508282137398032249689826227073245487036767906500060838467722080162052132638367336213642202825334023294517941722848582501537073981634151747133158392922778401919395434959146759921798847333786615577803094468720817824437327845947018452534983414427916287188013501678921535473924093279595174077127717327654830632921056593689959437956788104083997796507304088492625342875233935927496014542206100049221980187881177825198838872625579446161802379126153937495951055777822926114650084868128941506285979209143935776871534213288893686348632456505562283596246616754719591943733751110533097639523936333571163553334035709237614262706650239748316880832344086637740367521872380042936556721152324702340727767773103965673900991770901717209309390699561202985604912147077146642066133187838022834556197730705794826707302339639154703038554177674651578061692744628458410888535005247472051804896608534312496912026292615697818377182020119957551835666271220142696953520581842216518450528650397345564769078089786080872467037335552010324777528790196350620772253797297561386281650303914294181713247140855930879368719736153371498375632543299267138766744640781109815658940784012732319960303224130115551227760987806570222900567444304331731372436744880691844910344123708672164041646172913887621924587583687978273298197007891166563590885586268061725049987620612826621724135420717300971194720123171303650493967633759222310558317918847084194865018906240119738815906138379772841400203059934099428738724599596940200119566634007667310865078968643758936175960633979349849811918149486520825078117175207766068489390595661569086567735447084465793321612439973275714052225780790262427897986238520700460126058827029097553905170204580387506801923654783515632209861456415947827578862150073504750091851139191775686139678157118590176531288764116751214832332942235520601154488211484745915677347430605858799912149153402961083960367233953767030981518889294712397998164669038444865168562258836990899526833490593113190378793320544930760200980081003910677619327500608391342420314144276976994518831441927796969166418492107964614013429080191523064032468373693647303282045487702680202903685619994465630779994322003460587717462691343234977362110550234427192391590454646055652503647290932146349813795353243400508324027394040248956886011537661461845982044964550086733318070705987741690294536136062420784107047098258624420523951257988006220560570022066019913502873881990727623269623877550277836057308397895242198403050059343399314732810924363305317451866383474732737164801251519162766406871645516223741960089342739268081197708568618610019061500186128391805097211802500478367578680734137844239117778197877684918432140048023128175444894824741170625757221726315673903473883004885527363580211625563843600648272182699615929056009400664942068649787722520777155683184461548504323089420563336318154227568670890698097337415267611433089588675307705477005064909387034748124668334211270016208116970363375648049403419532234247028678626805468030881761124489342577807556381133087048354384395476716908849504561547875406003264582455791288522282076087968345705389520207268780970505263319043034526256863382816162008984393366682816659838213469332619900864017859554179443990938560516517782255641455952328340031062140215955220859263929393808101281922433008028513777638923075431106502584012007747820244348249376667100239969016068705454869912541803057226241774734253865141558188327246936839001002426126529205285898873461298581108936295514785268035597632718211538679001337574167741310376905913000924248997784482821442564976187824413189315462154015464776805519479680514172648756993498700889607503606314979251082101781033586594968034374613482071753887259042127263274883914354317541916348396266609432804905511708155360510060105532020333623366124554823823273102523850316730959841494840863747146109400707127549557346559235430554557670019109918843728897582041613908037427787799398911820097109560991208974552049433773482898169534444021655565638781217124082666097107802050886370256873370047754778069089568889786517423224038458446995600896302788530998296471414554288810662173331733703424347031723454359000010040827352810363885435177546138211462736474445991332689671084339821001547831642816160324788954716798234580225306060195909280483061466109788865812357912895204714945490474343458274067148955016650152668210447496825882031909939980959741712058720758492683682982444657075144109131463064377549628717074954777800462964910002224160533276646748650605663135228861096085116214488892294992382873892204427461523845305216249634798244701651624903913550442189848163832818025071740907475024712153676975749828412924218935256954786442920203066780194960237765690977952536946426068019633973274034932186723613629095795795263638345423113297217717595043019495336117840597946849263139655505332046165144106089561238759517727695567034096722189629626585869853147965025513811769587558655975940428438334985345501735539780939047708464645608394058086734460305912012302084504837401995835133072541187410830656318133612203586243465483047012095012948482217052972847916679685334484796188950794843488541455137701312963092136415215373994893699634842395276705916545264037917399183232781390204074938082611463831279238335782262371627721930873710551431520535654447670863515526577482987023156588529986166298683797702533063563337645438580171511238375420467311190591992958704025128797680529169821177804605266574225266727876106033759263054060396728749021240341997369503640638749999381671979390724204651014606095034615817221061368095019256357212038366545708957241230056409003646962190676028313045725882648447702739214310752123011334629618698769033751432800047519189015261146805961399137742089331002798840837612545391671365622923131492484561070684615964569237054702433175477572895819184950723591224104195339312150045869660923631888075387246341679827807460482993269787304998725608395802390854453341259191633639236530634327324291772642127184058369813630188909118007351342246647423515660856288884620820787685788589121800738106433760494778610618535977168743176575607456923324105163225305326342253827654580327572001917235877574397026398141418227581344279108381973222002941182225008282885508864009642881219956283284793798784890434744941417505673068922165138243946906733106278805453527899507062400898270099257481660299598142943110379197012871356924737491988516135507117023551232098507317354099957757364704373932205331422841416020377995772939751596884856816107510685569680986120423713624870179619164359181500623136883039406904897424028359062142665990233979564455096044894251086242774846530475795185599035459215832705655619117698210934738953948916078186965645029813376312104386755495527628900207510596552713947545626643394812163542213995669209822494699288063265530353537103812762311607518030454127636534510578238460379298228851150980527426940865032161722342976346963332566138002093177636380052761266463817788416717064299211814432558285286547907804097975727135862544593786116747629292877404243365895591236601741065112113395943990934319589639188083187998865100790838848801063278235841145005651500143923076323709794996605157198599229379128108416708479808076891344615248659547328033722389331206392089113193660900036148643022933952706562047723649465165484022047846605959834543497579425949116268225117900747128793620506876667939970423747119820541185760875985425643545247669373831556656214799086988354543856715689453768499585518945857792446507457170535622087263502637555157020398985348536451532961727054071318662572241300273291842395174007306387458983481402971823337528666650619776855051103894150450442904021044195843668948654491332023200519630069794135894967151055363089843374099375892918282036145100134149050246112505980798479304889652698032099029814528767930430839588115116587087853314115528579775693125104959681986155868253940468552254069105043161056916115614901580001809906775990885363757669637114427579141342378923676770108386096224303348469087112671922434122537921616334306372127229897939454987280785503193790739876212438917829729393194151142275202902510028722789473993334910215217285007644344548823489709306051416246651649613952880991890582792053319475813767214074947112210106213148353226685459343838025153911192021775452684681224704939454819145753134911836236800445759467393848978131110134542212972984314640915880409590738990194998991736611801921176323413078890982979868614470860127708000952853553495605980221244337031205675180423476717201997251753798455049948618252014325656565346874965088358592445225231287918871998484977527468679226829299336465498119944356941045078848631726416150263104181740430290971096794011851991511112700760710604662031335287546034041675347056178225117252111538071202376070819512999848992985480935328767233254733814667245480874553974558174079553904276183312984637911098605601330863787364413500334720407318551723899663939091564069277401884481934988771543924044783608550617362104340686389286351836763906415538870567340809935172849616325540122501670537855131249012174046853381717725047081517635061972815598986254064096087784897953539824991793210732131573997312742795422010601816446268592778328617681327950551349787647411652684333921128892188592145677307553884458181195809542557465066123790852577727335923178147838182881159583399473840616889047650217189667938090029032549503232911425879763914183916309646438299436645910753435800147564849154686287803641132606788149540228501063339367422027649974108641055582908606304697217986881323174117493438664432168922646394220257252175479750872742287763679931515856688155168989193754292566586462004098372614925645094841110041430925538910399438136138443818503487885886495708801634572995605147242964169871125062467234205866223701623523736592274571499300844894609734042166132127536213442453051609653615106352410118056191245576370695375706615088360631890491470047675391432070394180369438654581415035009533659585347705843468963833009888119503474383850244319051737169956359838915844594566229365552477388687348864142923349933619302938792606840743991819784932175434119701484304673821653145274948948981705761709984098791981318469262214257009142629029191239609284939934784832743290671347029333232600442579730838746944633513677425624601882177097196347219046408706628171186012926037073885438642717501165829038324950457109628577660507174802219143598819598533396993001618126412117996880242747737663447253748768051392338306665842075154340272917504798873503598722849939731222625863008294665615381089733295631000120759055108655117826598390453033858183723645549536101138740500440195684688001763937646326117679126842421086766775460438933984191565710590040704270148464366549557668004206990159126985425032725282801962464765869372941469303490055220449686639130444081061403072793688271539350499596327864859491084468357966157169530072780940983020489540639360750071778275295326818419457148032934762689666476876277781257474805982423396398685646748705698216141609801744869445154527299789171209142702145474924512420180065016472219209090681606916679690768912625165266579465241088219519418720798403948558200063172575086534915686619814935829661780178937569477609644997264536744449989138441750838597256442527141151929298664765171173423210718942958339608498705299201958709802306912663992651184378057189178928550463298779772985687021927298716916987679330953020521441646968134420819961889415829067263512036375600367314155364069468449654850583037760802378482554816807079956481646286647925265583511425951136414836027321103197553599149390866636748636615135454552870448996898485359598723027485710210400664376207307191804539955056457034842002117520074491108331066617575137894001202819684480698364039234548381076463915519391516338735053402497665572476223237144055879662011360097318787162651831768865770163833944549677584513809266725009588700976613296345459781655862707412145244623861229098154361191807852180518822628873435304840659689252818168611058068443757255394947521262357144890053377581631659385755078341407167685758334823645265421927598192616298516537528261863607527841295794065579178137893335964434369119477016863632087266326402137383135864813472324677532027845730922894296576252925762388527264025633117620334238045073490034857592880172757079629351075495572739135386935177696732068864951893272678190874115674818011171920284843829451086519515144764891826718810868313052330051445913236848211293248825489533825252769455924484166381180095305425305859969593184623357210209648273080708870527771424297338878493490045317508578690970202409852928687577211902683037820330562995312627786930826667971055598866715174312186426599459441779449084598516292603430615772068516282738906947970461336254747201985584863901728444953458547865930663241759524229594538338695261014231878901938967107092471130871482706441975089160434545534467021741495150490427089468766607007593604614435989836862206192651872683153222986793772848177883310388254390452350599885523286778304506759180636989606465063102566832155763088492986917196336514368159111544045544144181372714675554001859693975313892659707878011266633813186274896191800628844100301132831945611604623057695249020599501259891055142144168143363933312519371277193810446524922336744040974330919554612570548081785176655406064765105552508863831768729292538397370644199851590736664240123762614864604702161097669248768377903195598650554534701033992421192859867740754879555876494921112071186708526425596273307865993096025575907391462112111988659933765591750055428594087867396558204359065013183885299310395637866985423686680825739370471309297575408775743621221210907053593747410308089802916734990388191773761205173111661442830191526289748247562983558630963292269885049321927645644439942462244891615085361730452152528166671841904284249585740981360427231913241727480257296992554463631067853899572075193822639427998397235582657789488314127141171395862325628074971945371413053588705227173458908528107954431942800131385213032666999266093848747432607542470183390939901547579487077109369322803857654700853430693005397199332790464413658513218401080750002869445295162371894575886558085046602555404137525265711749478321149280162904448514203301476561529669328462085494231966010472759394521354124893155234772108206045466451680195450722593401951991333101439798670738388173100677987400169734275070617561533679525379569235731210438414242072270527363391751246543324245757790488798044875011564849689222215151143291552285524094423827651948143336714201608276412030615340535739886989772307376598191765701921166428186413404330284234573694083127842489469937757850239585961460863103038003954204966107980679221888376043593243885985856132308334704756340663649113318719195695962822185960563414242511943691748044454005611768370665957319977550327172318644278352118755094738167698010001472694395036251905978287899345839021982913616246063685475042684323672920344795081424776658991257496144938260351779910139461979930992445674846214517149724407238816616681887006557181808824152023950162836308010871274570484463649086685125434111150119913335263418735944594498793171230747856955206802824157680475235946110388558249191904416196978617933663784805542978014014334620764180369722493019132538236735471444979247630796468247359528949638746308985684565689739226076601050065837799745646612569060308112847664221352816094504065769543413735815456928924498577257147459017434563614415916360592147631653068351924745805039783021660519817729392763553793011014518232745646782438223176598586740535413281066812210783414484819646888592110728453438632725602221252996936209659214381722900864332456506866499165670168190747804069291624686221476266154685871214643565462574168022776781710605315217994697638010942512339823659224976010291320821659417113326819027678517037733272413509687010076752475107566765879842671027826002474171548757669383354253207158302334936968816415955192204233502612913207338161595790442771925782760883387810677672323681307845025328375401153821658680180723497396279492623810593518232255558082982353057122039573456892606448652447574409458024195811816935886364034768999802757977586724571536070018489744080084734842781662996853515661937405895187564394235562279136618072256062950054190131305975940748258004752693702708719532106534890187987192340913108621366508491061156615911725924665150067921803027146059423707834974593325017705841560784039007522685545321841409659355855933917964788387747005311704673634018224675970222037408469488143639770679496192951881315802414782985269499817824462602712018368379967613062166246583738082739679584083675252123555732440598441065303845626265503754226728568648777794520770782215602206682578787555737608105478239302679359979484446040221877975253702626703677101564599357779729280115554708321967048709257374410744273749846846224810076615537912941078388226388359243385515721254298514543567694541622649139671276528139463449521535314004800090139307503803920261240488427349244398347343141893291916693071890368008835985049582043878699459576094909997873559282650151927458345640562286915087651633233865662814886429855345512438612885544189761016899056877223416866849840824188278329529421879287405685652246205718241483873832997041362177506203763463869837007436909373106821809769274135091434605576378491760693947901021710722036502498951168271395636553059135701844009527336592160274542029770601886349808770203310322470007315053996418027019547659899504323026743986589528300144139557355003277172659926379353749287163027621592042577226629399431545269229989480055427811581970122623861840390845820636513283195921921642174306897640734760265341183545205409241564534946184066415327800783317308083672131536144974749849873530027670938707448257243233228013667689276290362434985214549069731596278867604406003315843495256723985959617968664445183298252168374366428608262810270593526109730737852958300451057471351216664163603542573577822781205645890428350498945749280260840312218554056562986941160308549101025007438983912370574237640768531753227761584422983482488340377800750706638886068566991167823429092297989894601770646564831562679805108381887195426045263292635445227422552690871358469323939017994639597474429993990032998236498462468076855101643821599355803638314053082792026611347149932854911252651539726073403737016213810680653437686013080333665906626936959197413251748773788967533867709909445721965958926304336833206354937014763645329877021831294232823804610880322646734444447889607361918273994749396097886817004872478569503600092588145951864774691974159759123506977127370951674013069369295437757648326054659841409869389785800024250521893150987088399505788524519433189487026639181163097988967238570672351582919786759040938065130402773635744286827109441678718887336139122684492700989972025589131070854790715290069839756354483115262270523247757126102992888000157297467468548099239124491842820373094156904338658074855234461459694729706402453173551228857911379432948021527156878550320967482449445093349899462039884115094253182166659217935703365052493234589564550554200476438500565523335815231603377182450291632154961360011773706702820561743338841342315194881127142934662756346717250514494715207873995242358557776747874678367622627532357761096959340695105549329236574150598437083219570554348735387835434696613205259302985257638665330804773542212827891284719224111256408972431426819048658248849854447135937054291503329103188659183367086070068921320521257281589244956338066152595760583138388945407507073829451090673069252829202402389630303685888695327022566250463836304751551898377452748368940471715195500459289325305187106651969529155451717811759747695876565440344045204386241278221436283886919499005839229259464259304897947067938577910916282372041149215867385962059210106989016509371577159976198755952732652526994960172909403339627205989989231594311156497127426530738217841722119631073632684817623862278081879058303574685480772348135500586835665630037579742994619625049739400005430070152179736846393642368595007773612444803781430367474417345737211284974546984569924528291079356348251748689826425712911829922679509433200887977378186103546350581621336181841096333576223326249415107625645324755729991398771097680321633788992184995507129640575259109003073116715091569974342574145795785922362347805106286663686491242294884213064684869970270039647212172001757751035238542218948356234888148198851182145540777037406099480811141101168400971169542194468897616246475373537716039966291249808068145961885104637771540608394960629292397032090292475011778409889454347939594585058141567928567444697364311629722548480924392914021919524471892940032775848878401296500263918323777405672956978058574194528646604428810692438733121787287075660366454447213277638284837121339605984971619892334004801916697684699548487852180632688120742596372210399360210783156790810385520568729329151608088692853319465177663688901174487281760458417806527556585513264138756872966031361600130249923654874145643653295161019701337528630133983458263781081034218598010095644647848696242243697098264258238374531217645536025977194675777492510453545008348576097792757676191187269314528621336479529226977959669661584060414460789988095314710108887599617205288404342575809420525677606533426356157074566915718530467095636564252578342573434807526733795117432688601267791643511663604039377852988336004047658237646333340177743702118447827411354897382584430364891579792690724145359077740244047465796273692948428055918173452235162473388953377415113023690823644459536013027417693737473084377055272047248419837991300852177513531447791428512133312736808356566076811387177899213479917213274278773561363272876408962799405097418526884621736490656427866245936778186217015145098392994953773184370825553074321791279505881544810351903531372374844236786185619836910013185224568993205566498016818223934524216079697905418165569079161971961545167302606469122803837122722919110559873028320939179267811169282020508069790111940316486339849612848506273879058872191031103594546031415284318984587130453320446708567115729102902563897136013962441821889825170973103099551913484007917972335660293851434220453586221467730819177295069210299272522601802593514949486043979403671060095405587931336902683385281651261843340816633019827326248669056104814098587179424332723947407737751368876921553319617071417052387758713077010177423250125911694748090748329273940784396493073236578239328066065253722710921785726793073323243272913346969380006976886800097690428107588726846399830040803736893150614793356938574484191383670495659287294454917483099827672029189648243623945088961934231663785824462438266151050829758561608058319669848112602459739353601184737659537041497458825658266991738517566050444056999834750387196803507737012319107606821529905880450266700425268282637697760718683820397730908765399249488992096422467853662469717316205576257851838396771610855685698400692006506446654747237133004284752723151146985451732416979579291381682065285157233589122199119841531288686510132681841645039121804503040961362810780263451409031987227718793210454228778090986807215622586617362694903731864902775610751987704282017213769940912317070747048076034174139820520206773773487612933064225373941294113037139407846742404574599786578178365388896470788847815730964240534955543460470171976035988571363720935050788741736722415277574528922086472743507829769194317446464399273313661980070208357886480351244940041013614377967063804606786085756759864532199954216747050744922154996568515006945919351488391102315096505039612688599468010654620669790862987076641638679014965624182232232494584640213030551484591214635855072877289712592677224305367323260591260780753238012754206142475983889601540359679068020343630838365167653888549380044400006892815128778088777683683018474887291042552981025255263334049287733300515588520967504243575701543596940194485201443975055888244320999809561441530797275538670609976676889123379241361071452143467866731887397147609056749916608050516020933610241976086875365444774164846408691043435582917900681640776606689606727822253917237797667859055076219937492230811786386010359118174653321287587742173935899464386922789437582774915034095690990332781922937767279023040290946153377956873444371939387403642429350918018064081253589066174591811493128200237346025759554004835179725600541431882015378256099872230956431267199055178404823664416751483714981465318887163023499143217696571518185209474411661011488102920061597515326381139258980087416972109918123731998800248818062513853090573320566943899138974742735050793795564646561487538649568101984032025555666377891388378519606175769038424569601231700501749445570179597606559933808475568948297183112728139906925070710682537104145215859428327994291679794626424227598131571728177855803921061868123999663409910995865627422899551790281361498592199826799690345168143919296612460060617576744446277783581514096272943635607658969553264413453239690729909145005279558161358217520655262629879396075338623772854451071687717362458495151603557598893115048285338269278466737147851412400520004007402076570262037736958400477008407191959150950194324218564466253518716009597551056100208205189029742065933667871838784755901738394215648383709781297332952339824421996572546695469110105484962736253485281886097474957796335934255163402386865479981450140974387144203768442424377136699611283973622820079079704367865835128989033353410659977603577088000029044307268726510280492516707563425660157605242995877380494974001840426898695074319139564564753274700946671720858927981521500106821514562989834413975788238598188547892757202364622184403924550352498839368967214816913193976717876103640020005748540451458992890982084135238966481047274948834427169687689397252925095321323988534582985780185732765020254412571170189284154789403338319099331651656286772260439461689318647757973157387291210415469760715503207171690265800716459414676900472302470422258012561274998705590456885288559578377229765675282666381625056035797196991179959337728678700389435559448980278418286290318855645474418514864164923317062740337951644583193882574947035979352655316343232807301908218969828134765317842632506754817426763290403126809346479428124627728645278005310997359638836102319283319367308016262729868241762493517541121636175385562465665626900954072372757249329738081270586281565623095667264029904272011814072316720915531793787472506676166560072787230867377960767266362868399262292258757058005106729010805229198448361163938530697956937236167765511027000368524334196649456705014623468058276961822559285264073202313921863512027432203806027294306486618317590846692417003618225798682670718486784908074827891156546513645245937049148451949659907462387034715800760958140089226381870579919754601953092535576036392121472085318344352538580681438821349258366682442122674120323446466908305131269487395745997623656810631771960874998160907282570557442094428053277446204505436349091378703052157054997948856328629654490925084324857467814007150945368451355147801242592241100863601846188659094629690431835474971916872804961715415710767827972981114269978203164233058738552848544140087934696303474512081641902169720517656533661390266403040105957693423068710923533187147429804848074706857127922407867847825289693142022646061951598978416400638512838293954426504833997406652621382470692245610814849574306003341007657583003187379424118438732754892427885664712138471018993726963581550905951851058795186483100244711737938305359687996593318368873616303029823267852340077079898265508106698535016656057010072476038698499293645969797990710930099007336471428357441177722834748529311635564387803875128354112980076668131373049852669752450798449183212405877095267384542193824237825587107031248097382870998439425610386478549328103851787874764304502736921880632824031743386929757921405830268111186997279552140046950813963950273047028422796076560883580159571222417323360072052712859810341450911572073908168218185585395402568581688516644391183774021514616255295582269852442639811789554605121095141313610173919149296823456066802050902651620476761564177271104655334075691526759028173775866211293090902174685173628226300404699153296035952428687624654972486945772015220429435440370954755589334051444991220668297899460263040230174009636919679842239198506942116849036966935432583619384783547709107047726571154474685140422519513619661485826913229073119849844261945502082312460178461370443945698791684131690099272977224219742138841453617979290953688406247643115180336748506252955796118948533164432260891363314084152595949260433543703210360980294282748520228493453326225840130934711643408231523593163650851738509960021894765714595562326670494126175880859899495634926606968356341396248232332807478312357052247525177869258023840443471738221293283591986678979365296784238444391000898610095663240492264821343793632821186363716165601646182745740596523046675162794956403169005253879203347541601318871420856944490572859709037803665054014702323305055622964832196979112554370150402514162545721262554234035524060176757388822662059333857461613190746715238797947283097733615616987045005421242955979039732301120055587399811115678595554766064994776272796842522711435887098723226643760307119561138059337481114385671884456433903211716816334431920633949701357023865406059087848917708882905593552512670301256132637304784695389733981732109672035348758511704891444585383893007553130208183302849290346077798034021142696429274381634467659557980765612095081432888685974222624121608304007668521062409664432468540965296449470601016085471211322575985396252196150418744512935247028090432321087301245008240576454390530266004853114944693847381535226838085258880775848302448810916552834007700255589218262785673496603585463095665576272954413841855792869935210719503677204418302075630238264207943193619164379691462439880233403170831973480023247504430864945606691092602887408360155612977819435125917088053462988357042542545552716505213434778754074978484971836850271536835239068178428670468355614332869703243565817594889442588197792143467017494604491737444057576015636635387441562842000686299447008650798144276566094938777452684387052833880643762374043295526685913112381731088534324197451147587161251486791856739253811469798690022520266779073946889801164242645372582781987888883699787440589036016485425713620882031892729326338744432954459789884792773937458592485574643039407317406054745749886575732677456578724245213230673096212654955309498277696442493795366179535288588367662582110628817039091724956575714548341964915431661211704175537190384274762930000861928755572363928180667633512832963602237630761611244621675038055081328676020937504077668977806793345495420521171743420619211829934792725295182260230328652250546858243078604441814882127404066146860979042958953162489197285095235992504289054984147247269723047800476352598361782814559547251946741391119691982580065794996397441572410532464862963640248672823325844147900152005057654684664042816722276634330314542493007795015825048831333609158889106113318275148775769223680185038710399001667115714254502589564240017635170540606544999498039395290267492110470585062208045556614886085931471111257615357545266619994891004436952354855321261185731147444304875094189065713579407719655091823043165332591578484751540259326286335160107606291796859362524074308541558884108630156392579704043842414720195345687355870568910941599138750144106036680573505766874025038381500057393801492030237206818216712854490768725227081891610417496903057031986495430552895233278315742627066874587160808127678460607069851955405359289942708287752150581145531540757567411116216151568292402919408702842374098002915666642444214990242374175711342252733125607130347115154545623443070282753967513350395689868876874309955795123623475287619515031538435585130073868722797813624320657457122781300906725111350049918575946798806310431296096330687044932194167942224857528226909368207739184886493139428053385723080171254394776963617898698876514295612217854907852022806107441475431647146557481593042808702699330361225608701691653706258566349975373233892900534246979810748596816391073438158233582437734487968823796267287122585982672847426191186452836018566953512002247257490471873966935972271270252447517732496556607944628586758539685143792184037916551658115404071200072485520983040407350861758263514516373018257825172235766768662021785110704319436827201382195507592429182495443746243813515016350614526007221805708893435942437185310915868153580952023879430883437990076238991325685818105756489371974583979258966715115098567629306695511064405862840905671162030603991653765018159142475325024943048973212690569821165972425021604529066757266754270502474494115121989172675556023147889979228794302669732215488191399478500167936200318153310964628876922158368947919854457312401413377107195933281961777860869128304764016716000330984807664459497176686098558955672081954453267708254927785390243371697362272905714771539339896887841172782230670732831025542312286730622041422520087141333418553296114649214136656327489440484714380158277805429273123039286126149330813570122895463507664776541055785363268298307241067444270576572563444173223619425373351393421237921682634916393184039249311412921255920651598877606126029306004708819978749474266488050075519582316568490084199849130537911977571959753207035867378181926440205645826390550574657965553369626311649117815178437045745630769640046607961877501764790683208984483960788318955063543820808400125715124587995847276373791142130969093539556480451859570097323197527283632663562156441138951011327252991597094903015930126072592947849989180585781025011899203373368310722270146719317909538112543760270372809893335233111697833373357385943050563781282752616594244132238850277978962549715502438992092896370469484653873485204139412546338920806446476204176745137390002687410261220655276956841189838279482099778738503759283488336049997099000819147943800193099347024244651532322758793509280858095387834245374464042013790622149001278048701176155472925443327387650814638982008171768463050263699168825198728692809203285518636411939241139291578822766005278622459784183981430164770632886226675784071402324099383509541980552404368726964177371346569345221629402991573909743963696601944622017069794179370927088395296219058614916859188257449160107976014364026057704081226373121264528681191733913854105577519956027805852789110299794225965324749297509650202643257576240329007152674072778217647124259228593474976102734078028574892331990119897924125043905612850866168686949996009201090836564741258289520741102354542520072224824875953951129030762718267837341460410966585980996300383288821269602165271298042771162365207023406857079304323416033719291820332546719981442274667063457042072766963174690188330737144069925387200610611524225732845837686189356610819543565623639361034106857432582215052053364388041888652552547661856908805065150067302010326215026051170032432918949182565887866882086798413267590035956449704096248044923034399438436576597330589289192692056211651431890867384817085362288371375475283093242309657368738525889400425204240628365485898143677270809607076152753703314154088379707854289872231028512014521002536670971339861029540544655700257610061544311112455705546939627968569997134384741786878644328650001643434012580223496664920116589246586412492401753599033144646515488898495706306027668315936424448165519436782753524899975476035955128769819587853423031604278307026656728647391475160916905199158715198978307059406666816361955585103918021483658118777708031018315784048359046210805670470741721062454851586993772815311354861367722649530430267756965169146428492605103229965248159152178845976315230167780262030879861153162382918861958117446553935137635759711816392805961129736278802719181926470286575148927375761240936679110572358383348921350011262883001352323528861526593033063121708443548936885084733769634006878087986316704849422997065674561296288031973583686841982463070591140253192878795873076748931741380903985043300040684381029414553386784033424852782451853237962328337176127740457248754482045246631825849586114159435124859560962409544258226038723281752556903003306879253049031335248250972855285456822746207316462897123450577949299230691795050017162510090282130274051825578437986503720757747813037645875695129014516201856306277874056505419572395486786336064745562933821515930110131517802915131147617640252866881226033827092610451008323486050416331407737803617236006805774577647029213114676374366529720017887043829081214542167294755157862588401682687475522704256684523048927902526405556228389504645296057021571343401155915826784451051978147284533279530624584489183034320201447286792483507239076586403703878693143115614877268137394332880889691640339937792119405952692942052382737422806021907490032202400829705824862253362926976388169501716807312121046594206985828000338329958875904952423972426907920750495387759189051129001563724117551512755443453325227298760306122106751761862287670092643859332174486841806351306696671847989491472078091267207552642387146749668827330194058878156272537556469698042913058571373206700809824384347448095329894836728585300434515211951661803874960112071328664886673643665531276274099993303453064336130624917457123232977080649395216338856346082575916483041732232251405738677067665579621029700990093561049961324849932417526122091336376564985464802038999430457224447520865024657283087531274776678373521627630468214495686212884074172008936805143347746221371076665343399020718883493960504844925088164417769570286318125428627065360996640986215516485607712428553246725827942850959573457318810188267217430767540358585240587937008026346644848436810221575193209302963811972001686984019831325816429367128478061308622258167941041255451467635629874308385273558054151727664860063280329335128204790630011234848230201172818113855713852807441489863695790175234785525592723799261655818969653128121102792908137677121841030149668976521090519592299926210980886103797371693144466316904603561111609282657816543833503431418284739948792154204899109032379071341555369922843825145871927437408901082329793088377488954508848863564209570832778387566027692233191777421297181399046589139732023480731199715340090683761325801186143885586886494401297761777196119340978717893082479793681788334946797286811678486484014850118751715418666188995469757867335571090601698729286314705207450918592132195361104645954359778745038051440973842722691323168249562897396240786960830847122604257860112008380343336031263390332282798053571468894058789747691247325391686823079035649894110321301978270861717718867648038723252094594718783994965830441864956115740768091503123111693970395059170643234736917542055414351302097406701022991196924558223400071839198770065047125482287738760907371562443575885917701922075286996929971867813213164706163449474920585559647906257370721131190779250602738142313570104416249857450905579878091963184257166252980125540922857697282014021048813931864522334404356848230895155955254104656546663000735514829948025623606695114393927196025136149210141776920870672717233412429696221700163992047058300265434694265818453659303532274891137038252460312388680972510049306487383395776473640629484230285960952319016126512889545574709338374343115870069174042514364354761474833210630644993718393398076992943076108748742376547438007251647537748465133091809714978038681658352210350262782093188874068701674355694420073813724355583946201414828982684874714732497823368255033462292984508715069237621895663926501302873475696801905154308881612211803160488400716052449696908893945203734539551246589892155667074503926693080089285772685775302217194640002634316420694268168594501746864203912888777344528905770891900055774817510213878602651405342518520243793159581565022052120630044566863830699941744589037541216757414631057766421611603821980349756870763491826000910552348356980192768628002130750581723832254327062846821219747748766243456025336978441339932190898065588047649701241864847002326778653459341056596951882992570970921818892172085968336915717917271471825078543947370006138131049213262040206312526988580600820829816974487490630726881632506891805854610490977041582152763467210609466897654462533561171624871879627047361779188960359975839353528285872475973307782781762071750887455729745995035219759357314598308948472332202498687828254430887032733891333906539483794036206544666718375221649791017799369004831435767453121923936413933387113543196399537958924311954331946762917797077834564889371440720708569229106361519426393323726394163360873941745964693372228011321565579711931224570379630900360393254684513636871321004474419221643721923859458569364412111813755519899209309399770354263997100195341937646318342457019946181984868367526830727515425897249263076276963599828320625303177123920756114407042157742441325876114952008816685873244588107574071654091606390580885543157725990084062963492655384807801858133720392488694878858999268259482940936503516578494939547765285246752884531448073928757615957728862157610112782283536799011240867603280759345752056376040526206646605994528630969988012379621324380716911009048386618493590470140626465691420456131415929372748848657616136673595030613463316575202663617277846534490035544822972833521815018485545160606475040136184449848257542347569183353912350761482433075680651056324155007174412531885784266161978094106041842808628772535673592117261039505096833557672182440519223799977204712100250290414430448316561608004690796589391044083827241333191341741518176223675323449160125519911518906184182448959998277686381813291824494074443567369494260386282247403327447569241633053174905561120333543592520553495030691215116310669683136034755121905740522759619017331462752386557186571760334732978354857297564874300111353486378130679022883268100115016340330848285781472553427795463314544010096236797284833549640294643470536309772780451338294531839811827050524092960384147381389550858107410455892869853582750730827170702128471577989569181639145913439100553241047974526601686915002494656903572203832742674465395927291915347463515433118295959212790150229243965308942508473444145417287037854175907430033385236106873152750191160207305658848208723106141197400741206323111807184513847924198955038502441468876617245079200456884335565331889216547535402833981295099041493424100171405328164448471514614262994318971327712560923148249480549896028849010909286129601545518221850539634915324027014835871883263265010691089429619881315499140230233561671928757698358300160837052825491216084584956755279414083851456698030402768337315824286441732375322950749467090874833690857628483510919127133245248723683135028377635200486669589023064991449429776237248723210074470532309113183931219266195567999204418052240885344469484445127371178051474535226684586722028073445986053347748482313927157246205059545309355953452002923326111917576018774008905170816773755155890912904298872078961915242103222390871542307966156924595186222136088723034345464936118317744739242196025309221028059700407561597501658623141648535613977117056004657643270679163925469325087626170553939549377634751135408480227508114668734037113664893459370164899546692186860376668983973972411195152365218512452171081271542037915498333424890824768749698848010230400751433251017391137191698917384962755525602167184443454297746749768507804759877011639214771136531522671539604053677399840139735086145743962837141195919262100432291830361310775465284305046124868633905639879730809272102694166932577289271151439221537653218542428524545321985469917585009082111155413742136050624874416053029236450598084336166206091233432327384478008743560313626369355760122725193571912533230531120185851785487392485662153822242792137180050442383466840238424219242000103135908592032103319068552181423885822415301021495230059977244608231159792878604591682673087978815718628367945842741224758022710418068161872582103360193671225202768864355677642408846846906019042951517683366401136603447352409872660694865705277555282988475934474843373525411538131132358545619212290195115255101074914413364891779676139700889338673774484332958191169593972576981286244902176331515461027269131767909746768098451180444495043692062652086743775676198893751352242469633276352175571042597654390325163978935303333700311745429007859547970974572723136464311347984314538530444655264075874508364629872976650090417771627316941762453399258306596334429738032263913493239648501880916667711562650962055564584318738962873195866286135634903196497331722434601907297729927278553845693722829862500051784631040029483620954639889080845222030623450941693755636319403971513026573099216515550411816573506008920083290026091987637465748143160752997073289640526992983717976783266737715408049913159827666339962169256260143127695460605156742568904073485178188030786368324867599918701280276004863416382020581631145423034691917962319860494984250031929445243806135922896983670114100449650512649002315867623247956281066535831469562663076549823280020908800828703275146634896189354019701364401718893903089450953648282313498256911385771308006322835953077764205420755777330552923710090540278855724882874638448192327626292458882149955331688182453037398320258705019692826254802832793074831242793278125106568400874232683424528581152875882370717123011581226147716489384091175777056653494836707345914385834276778188289353434713623434500561300938692388039424474124654269775653484450971865421068886644290480696444153797404544979877437531881460106631275206644752957074306436103782460979947160354846697695459429687440145205717646022024701688258685780047802453237695579179247311457302697837629695936124246948447079505589742930140799405200323462834675810734852641427532460407964898901840884056107285038457604307890291425645519225455741039946855335268348092848604322522391792843543552654749500676533437421703124252553406788194554285923342454292402671302303149156398841069504046587769383971119857421232971721121406814143705654670895866775665132101001242220360540005094105267047991210700483593152462246621632800614850628625001891731035992691792741934592817025772679987114120073205602543001808885485463067441376206310094362390279314334230616700265595661676781544623039914916729744343278267612685166019073896887668585568502102545333519147656077235469498926166922218325814781168902520262391335474708062422544009685066123747341119675911572169149205384977919510725211995561690394009382852412478929877160866143156295702284578307129007211019789488753695461079844781284607399836180138066083639318316697335507448816441257395621841378743698505569890796668849459109376519567153805545213728469256003288166439821745988623664344485414445967375337959593111477531354567018515902667962764814318510841934161197147409238739155521831947197033451582815613466493394708716732558012049792192788006823704360199715957044050177268493165568715364443079536165322258846221937255817884177138659188690991876744538557505975279834352279642558775839872263669592465109312344381580955957877744051343059403147707895484022745002568635372775882882547468383698951730314199402926077555861072865625989934636283069226000809400730147170314312975850731097710556550950468016877271198866341088024473533996814157789369759501693286853305854477944464492429506193546737749111412741399019349566682371259374792997645886440285492403984787136629004069558221432870525232198784897507280919369193106323622426456411916898309280549276724937907268449883467057445429936559298680217038036201394434216309149469073914631651143810921437672545737603063172157918637834920151153559292886126620813803719480318592609698065004702676532274513974299451086950122183555364060502115483814974025115820544203827344024296961421708118867577548285530164522164454775311553364983639319912087267029048373551311686661197059625112561567911422959414390331790544559071434345768588438752558656531730091947072791863991526182370707901338765074752938797427356032960740455573239029434561383577652366839147103174255789141273562163901692943204448861708509509539677291442227092637735617614409645737598662925722578775316115293954186231121034960933780597581777646124447962831201999683411130685523780341019435365100124300476148980660341962769902534007210248813555098785205014398898305534695781530588073754212477176812642429442335351379433947537952507250629220370022249344960267447129355443068960167246370528961497988702392780286441807040003162628546763030028230504169713184972587174466721816281232331518292414510782606660801639231113086490509997632521672913791016200554264638138590656594610204422219809606958025434078880414833775723488003040361266718441530316761525686315050762147763940054356866362860165178618979340593047462747662866900425328991384341682175270356473756462196774509239657049334952271992443949240729644378776018666216832566721037946592210633903966771893844421020966502694488352948792364872811150160483185125994404229724968393296031449671022931837075886968534817400539490064601554103588052529571062400877110693664774323717262687632489549600047172149792253358221470185336600318593079625759173505036938177862152561045307061457306112468274871734252302708067552417705387898600161708754569465713609561118758057801050914479496750630663736361583930300146360870040052074820375689463172926757181241632348080284859270348291345012206987200922483581830735425026242393399138229298208898989921879013537829644558587474792480798667302082691563230973463705979403248236480663058408008713145568463948341150240601811015800724573331355662830860277221992695425630627269971663774349916711796887453987347730330035123956579113615362841872716164520997589966654663523082888693483362550174016520991202486088390921254142894818183129958299852098926987436270483261748602878922245782806807544283755240806958047944325609943339903429887250450214211901486935000067612572583067337793058636634505680845882957771016949458795440239188283857609566144050967740231936571605619852318112953930084444579993919045471196807181424691124214003796217925379424724527156032819578034561523305729658095630798070411880126384730399477901431463546289846180474516999520081922875102847530078607931154402644269888277050536707148104018093714915488879427457959232414439343232826525968922869981472498048342218396377632238695554224974051455745897391712306048078818956176506321532954052489383535592387770385553218679872813518919367911790866015815989561511903038461751189777418613960892332781370858500576389089187597321744446589253530187093870819304055019449075019712555066798186497478864337661957709858366978686772780580242256100785334878347627537305851140743434590936799156236699338168023178310069223239995957826392040022408400397642835932305831955610584139044639193171743644340483368392303802898708188142440622097872389515045451212902180675736079861225700757415556382687777439758972212916112550492985629896284959743013250640620186344198015576910365772172554512548513134819791723707621239766431722958088059395000036333629650329983664746635035069357425711304333120460195663425078841720658000292342474956145517452630231559280152856412426650818261429638912027260265970018570553752823839883390487684484670272594473686186895522541157004484273573378105413930192220585158906849997997995041340848313460902490509107495429702931442765205061227779937043349954833751374109099457984750286091662470460886614105885362107284967570530890539148987524278171160087426263416991464917928388314542507015445439358368633515037125443562135017927762064603722061600509981321143986135471822204509626240617738882325642039604892802859290838225714771138692089407247348184233887642952325327266737326245622328724951085675851334488672148693225833856747391170809193922460341175625200023340960707225923463102949137751282805410189951760544340786992741624115167952875287773777709060875189383368634011978441628611670394212187488259880692593745436077388872694958516684002995022249806547292786755216173336424825476576900505035268545615636357211946887215098333697779550324943736385165494038501214329390831082103603384413858480853744927426523431264909925138943773017118733688853434200812178843991735257076702471535160498274352740975163576985417427487714222684373946102988704075774105599375413359984160199949844444934937354851876970243085699783425816472460009383739008267167184012410236027704701879799250185109255659785260003319978060262290514581053657172971465979572099514662486525118045258814936012132191916373318407924435645027958659991151983012897774656699300429009547209433068747784993819234198910154292179404030256339847934877934133322491673309343845924135700795734451385309214578983764446652168318467946794202949211930794892704625093709346089503439160363957226913090756179210113443198695941645766648862065248845665170318583826125830452957143260440082946813153078005710293129150889950603662415277123818829038502639551080297610514635138310753772023577924655610058851115846269734854403218542300637904883635079588550958823299225653644891498965197989435535924419426432383902737270657064789753528554529115177609037251891141378113990634705795558309979395878673643480155255163714231871153827357580302857615764332614518830553215411878435784087184548600877626802201912734527563420601833593303871208384837707469309719812496540276058893363069887369449411683181252580829587543623489850587285975230489207000647020417109637119970668306599003519879492996461834551802313309908628294246751517409208343370826749975827769785664314823982532778625723502845906997024328635354279178740280190393068241838547649629397348178272161889707040864646801890727418692624955032038929253431600269095660060792046188536726634280231829991698838183893883652056373093946603074617435013671909164616012238633257312226161233499844399510773623951082519620731318644806044783263768915169142274415307457547548965878037575526963946071276064234768465148274635211079207531460313222113393742304057206411995155462883623331054721387809464422918288294355880133766549960171124924021995412448114739906109533795838417865416376871022696209678941614117023110235928610166769041596245676500903460200214173171658518020512295680067033179035961441206089446667674051327145593295671621512332099650469157382283659185184376694108014276823873859142832256832041301168923827193413357255119479452113178966172902253488279968189575062814301040820650122170998505860743232059773634199780956985048116067759136242936213889075284496082748094224008227387942312260989248995000901736922000986906235901490513361994169592763535947562689697275437087858093156197469567686494912913012339315109003236742470965598861363230305653759927048861077560863399378130654525689664167886446280944773097459893429923401603224921032512368304668194075515368219946237194655723654645457717617983282516684629016880834333480234852235186474196327823132290229304947620196385486302135465251730759143061739546919821846737612621019741845066709903868691703939462312333509568124038005507551079418816367556374431975001944213493450632287433429715583383193832447536621193621327214846117636691684260330926834603398830525201738679136880995766765330268735418535216273906735991958300683440042299389841538826804528256039950692122328245305603548051547958187544413162710282229109497063440750174429368562741669942413285211914755888615138913417448672074223599002291955441044194027502531593592895697234026580581281322189247374996234707557953817996416447237149372297721957736011693044941996977785673073654956363848203542316587134995181565402378389333845164258399235853622536156313960403624511708931655722449603918509907002782894563069140882943833478523945358341339290141175974853597196302675428439379611632184712593097554901219180335285474060688219586367787343123251361769915712414719208463346741164813249641656026517598000356664301442767269440497161323504407068987512634999448694096297349023670592647867102238445456632882097029448952356577032219509778828040210844796589540755194433538740219550936923809860647332999809747596855664992944967795587400372773023706665227958490717719969464741218320053869384416898048794487646389344954511983414217505901302545684744602936833928377294696839918848655737483116701895138673320183103133188531320635871031057185854542843757602518767460593843380718528878777254874111305548640751480263396836004960016091353193740300611618628097429270535403748610093931158655046772962096231666973486458128846485076866728717292248833751353784700277078403803064350363620259804837052022536566194544671928868486201246831084942778884877131305392864489693886447562344300160931457279891126374489808604696858270497577943434369461684352982004911691283429922713271338950263430603431743435129385426370607149076194324800252389990440517402469011966898352238717224473081713590035793199055963932249782358251939484791399593770662913331406344641735418498897985619379002394255379581877677653197629681616143055729379510396732952150282597220450065300649894983850043399567283302604707849257609017038084909690050024220203006435007446657392364157670193386367780851833496161222280145964046428178685811036198199505887678833085732470053074798279815528532027842526215892315526896419894785095942134173760346966440743193757586313151802690107592025773221163941305697103236356087366765448289447685241768403462397805789019574258489106038492775596035680996161118001787650626516334946809050690803288589340891595146496657099873838044051268131498776026780776962071567064078821907502518093433519673027667353671084441023236037247989724723759593190392890241413659216579519367191895795275970078229159086204532484927038508425521149188094314200319166758233527926702953103697048429735692554655609831384281082363078753059732059973828224168307211380686588079843955879509491082743868024284461643565890602516837319984506837652828279966347587353324144041402692321173439062406641485744916251760302788575216544414195181788835807097318783988876413906381386072020568080777723770283398552214985479192432678838788996338564464295173609967410871577377834165888941142881299440627623028594484468406801741135958390152601919840580469468874643278880888928726052569672875726116060034364913171231186758197413512680596839294158050655727903734462380888223930257733033952813073774659636564023953487932368149042551441672509390013719595046017035593391500905701425668124699534497789700637942847534333116801469739983896379071502896530385052446241522371884106924987958362344681700035309489414346650929320291791402911498341580461428553209115441560763995124396213853193714307356059741269232778617887809414576482223446116406446108157582257875264959955453708005280754574715757937700529894758419499182607473346269012382922842689355253049098082254165761479452320605508347367641101856962212803923344153202514413405744045245033597716760427249580103726231833136665229923016711172676107605918843024481700239941073735479932910646651361318286172650980434693621460969581490458291761712785625243814346904112495061047624681856947366166929434611460026678938460428819907088201349239536655647290303147273521427986414248126320397955973185406804188778606537142717794403390563950967738812628100366427632794018925995624648893504155287423953917429549129034779364061955103392206203591904322570340188436020412580191565225689259322373912257354088208521351610398696822921638986743191435921182719566021881092988083213844278759658825153580080198112551211556650742610386702174444682106355673389143896666127337713267313698343474150515171070376763722901792312432221561181102533404031279299824381990858663227948127459520708570030797002246137117464113166381961182067900143510593901697873040001673194928983155383007182475164843772623845934304205618964030726571085394391251199893155971491490282220854711892789278477392698127013057847171304952546224831086360715064532863756225955004705000887036364547092963804950478371347792804478831030342578222061267358773971218026991463181221399213373522488681565634816843261451897950201795226486246950561620352204917777976768963800698120508121594324161182779507000823919511754383925541266558027931099344788397959235410874581474697085744812605752399913204456313584048172837981224815764178687471980965238026132937676208534086368208772244356222569930904897455621631362931630419394695867773388722163841910792278072365561297548488398597430379045445745087241578360698507308785176219959892401657725631024026758831784413238527928487223912721797450070339548998016799127006165061671833296489123304003408017872842398902327889745536915248996075748546385700379660359069141414719623012408152033949871354185934380700735173397086070530397520508177449775455474378464674571985691271717120319835602994733056540325312142292545585317179850548528667538800585340764563779113824334875604909269334886844724446034858290029758440209106480933378356852298811378624258715430408772562591280913248654047538515638123798210357453017203775862449673967051859824284777810280901685310349106174624692827669248307322609382941352343953321455838156740433096802646104997072269582792321526550937591579919557875376239547876551356113079646189645605850920004398435826612632946744051257199801421428679424690976240009386491506609401297491139806063979654140356039389332328287825655181886532289999937947371905555818242494407451413758042554509587201863167022399270364619959352559261408335508670737622742496582126199712301109811699174796831850664051176350243116007238070682709993321878901880008827924806520801147360895376096116578575989462752014617438436565262817038095557550937784969176387562587446694946802024294803670661605701473259145203379702876673727365346962329133309591071082748081982013816806813322256773463938088138687994302774908754390211109403858935391607325313989104367516512148408738061712018908872628075792049590917552981240383869977726159344272468670397907440775321799757618046029153896449166243553159992140211236211188746385920873862323378647242291486318209032040788077795085500515807195857087804861284273386732900664315105920737319471823259075067202437312236728332468842850424941312568069891434640133641318374226625145587546761573935406309024799259147636969414225339264406638108126363296782086453998630145798985388174702424555146851064311739699833792343457723660715862804712838739773400422278743078875712504813266722379144458209191557381996322172574484176122488488649445670343457077461944222526033095330735600053887701607692475420055863268022627730006619607766506677126039888615750155195707146712261737734747446360067373122589031355760063483056819015504287882373188509173896296721008162936411012767443479594663550495344992770383935257860981076353702875845938186767694844683640479206643284389661877433808784309156505516070084835140339611276034674208156274038544768084528323492547550088551402433130419498234402650141688412616259494276699175584926854883863300901199905801399751477989630929504651249606888024858657569053308320835192187226763195788754980465096702747610717181555885090206857460934243311614854215418031580710980516621434434107364714303309092477397542711049930549608201222054671058438850481423963640495133822005075946091621990576067109504093029567844822346660743587369167556742316554018264870084018298739127013011781333161496590226375992838239512325939424885451249000620478729354412672065547687098869369977196349571554248158443978386895010695146211316591657844452018122535414482015080657283627120036220883822988260304203440806675182911224529071737915720598134371246482067129917846865292612580938819213286798555971886556258512737215930086518549069467363785642464791951036693294231297976372357575814165455569172422755117425847853932726832313205424338749267681112052061705955386383907705018907019810299618076958300472818830150191293444726070046771191565943670862700211027351703317883795507051245795993783950051675011189958197537670797606544195241485916103631719854483407212819820701052959260148991332820385503144061558746053729019981358590807235360911932907169631375698337663382609347841900906195127600473274517752778573097280507817849331014315175761098248550146740999843889025809973183086585601007800509340532600703161728570371273650324594183700877733522299094069806454409478052352454877745274189615782261336014108856062288577847670863716888646611469769191531262805314413744557011263593104842340274313574991469275502097136178545515315791992106061736244013724136184570696973830687826910619272308115665155000531119300159579750814145088801065518564850354288894363036871567349066336018107181965000460328114282772685601491786142656748427236892231911917502577053702591461823152520230963792148840630064787442869760839992676418473846606583704801504533890251762159680370496588864835166737348268799019178505654422412220394689288564465054028019809887557436810158254652360202470928914048780960750343716217934661442051697661369610856360498972766946063978359701307540775779835963013876513067984440422672375549140276400137552716718622123661529921956308199241421834260694264676425899514715983024010118660492202291916691522386785323183178365625616549193279191785625200399645456177633196184167202087877799178690256444311176226668061642794862801055504170679900932828869134054223191275338065263811882583436638331467354741797956642937593206776293743960691916697965786276018892715827208981121837117466409279328736731009588959419285775078831719747705574668552603229963281234241693543334709465648359170194201237628911596446838052576284036645067096256329172880850402960940099803303479194887171441785389143488440905449000037315548705934680433778984445890271115115814843800699947167554914878856223194540565763205151091293777828785990622362851318349996720029474915778021914923410366193568858504916733300279286369300345080422141848399957431191969112852980328018642063391769081079804547105291838472767700284450468765615262165995740805119178797216648498714788327851747218295779534485757507248186386467940036769533994526924677803962269303238410454955819428306588046656277392972602840675779209007457908317565135574372225933710578812153194801632529368565277387244888664965864820226945577019217900362064523633852379630486904351732407868527860388273245254031271536355743107946584734736056802512698247640178186876370341310205807759326466261870240364779339861978446636869149135984902200649689284026951914114573028370822074479080282368832540502410682085245011601941412379557998035170586369705244055963807604179729426672736492322211002283832142409207041969747566154447826613293744187596648813259335770160857314792728777148281834475182900817057130001293593885038135224862913518625802094715457600211616062216578333601152781728941972943577837071896108136884164802406293163389741102748023431166396437433901231367334314707446578136679951464148206900382432937210014241980855645902700526209760825862251091316990688401331357845641472774912995870143526776106181699945472308863753973836480111098649532913804716860414027621316135211618801642218057781179191344524621949132444964504531837576118129319415596492430414194867365565326952492601769941799205005303668066976987805109291308397944867414497319020885179369027756777673478366387244277372806737139199640806723130489459596104172940286346069321404444971092101242901450855196552973631425932222048659651669482915658476485480801590418549681445244003359390455844660068125566478837638736953003157821589095405242831350465284382551665691397531824781121201291594350821140608625441804298361364377314104774520702440916302494191729166028004906789261212195958336953425136468312488990855803111337005649463827335552618221976718276656819217419037929390780351177840150218103451883128041486848497868573768605343732057771976515588668361141029959799787403996676881436017983267225979351874977990707880624080477741486157263873357879248542249960928492728091134729913420714191029986790993892991644506856967112824143972312125937191559904518028169476982600973810595639243589210698013891232536550203303552702523716782107400466213699823484444650805089694401495606895367482208205693034163783715403214305456913538086705507048081415153578963532340848547223076583726470363141444308733928078465116435257034081049895188635921864762124044800242461299769032451624963434585454509811148494651461841397988495604370591000548117301890776057504037020040959414954345861678170422294814518122895793000940094044966691928046205400276479687815574547779382702703598032578320561050975702666809486682776115487131809961471247356990575349964049974413059709886981795414579896481730573656998219102746097398263636362525871860399813589058573906277925294207130417405852727748779751822395064038860826053622170053925614091617676785072115287875508244657321059072486302776307948202970783089653954495846104493655745127924399699245947196050444381216555094026058880713975540834960212096102769605742064679355499001578466594480423832777568848430447898269220846643334597532848553479567236298530064551998288516390565438532150885724934869814697618129836946657034352410688387779256937418305564625168791338973879361174399384917188707184135168080835644830170743185483109910478320348854010950236316652122699536562840047963867665191101164591991398553243348014245194918102505242223615156440701262564948910283606913432523598339411021930704185467042247262134724372384775326054293516352528157902164293345144613738854944189508792486122777165211626126037835132636450710156028679921535728889273849371827349291075882453675287887022923239775909127952575244600021322540923944628548373997391540269755719414399503864488482207609454205207995411293456127348528712491160428909264456827969260490152720182174196787794905335599293364673660492965294863096670798638258028894033884769748057335888072439207549571804734759371508491386129261398722225447777919253081699237934401999662069241971920618096931675974731082203668558158493165736671936302998907590851217800225224673591689504878660661574375971858881881087503895173175149199750381656045317437401742338765404936587721573557985983311419322086464017700058180106238986363777945019291106616969435149191901029418509281599226214837092561936990515654349695507440603176726670131552060631661696896917225641537116452371026847654489021038836946144470919795177993642025985882830105084625818558484816634068513668258452216232148385221699163630596622821928232552237924654922492203425116855585375258618689991231596617962774401059545670973412974607835919056987426539919553295646237511325686763280250667871846582256465974676799860606897035337905314003801553028494525690105232645822990399051294413172393493430981886047853844918241670342761107740041910186878164254481833495406128480127840448720137936273828931242683468615466914955034129292604538064813993207259519584174468217315886147058503783520486946517163578433548936656341684870024736035826096271941232951570051438261175802216548515450064414443619031079950054722183818329447078931981254297017856226488813484852546254121838328094044701190924813460136047124603024019507754624240568931329688318125062572076606490701587830153637450854299254896049974074526563118243082815348167228290190160125215782079964643912351167734228579630829097309440800334849111310728544990676502373289988981336936046141345232407799714375988543790039847134816132511465843645607807660341849857454311435971120997814746631339709809152087903688450517034056372181483330088764563994022385055306895637765453601624905685599065059285801590319567069777065142740693340070914125416531011592773493891625119760526897884547487593770219844843559853750055230349106744949518389118749877448338291626516453090491167971118352222790111901694870631550124090449973288529360405154673345941038613741170957094912135498722954183990671001637377892793582201061215572251446515435498338970236388566974089797943303732459507785543957530367124951683245508098121496696490339186804392601706896850629122177671393625401121542906087198919507877316679966509689066785913587204841942079423852420426692239698752432112008795432379915288037474098006740760326163047972791753824416234556783518099811312855777500282023287190657940601434071139886646037925243984605372249945168813131903745021276447924991365344268449727391769298988178711836474777482217820001570333752720000505014341235978601172037286916335466354954937155586500724435278378459904124007714718764231469471498868066637238638705550720467446639336803815464687871583637598393502263537834094016262438146608335377409617464560947260367435630644599356853262421275742062820158278941778280930379029976638095970612817381608686321222683719375272909272586187246024602825099867914344879836135908963935070768001661920329848934397414486138713379102771579671949643473301138134382145191247997679062651233473570000007792734393260619317195092865234621807871283863198173716965537862342576297726707487876890465219746339072391122466551539130269714888808718246743219929128197617587407348875233813004938567789403307697506162368061083631877348916409471763080182824414532778948143450264601174152356710124536408406579657777766406270246709302769907487752014679681929036856936360713522309115581474123689218119144813093168856488035733404528634252505406712493185095099757460636398545075205084396599028344562696666812330283150707547693916178407162962900442649558164905201739193371969950002002343863424480553645222171898178855484682526285008952261348180089251815270944512094126922256943478345616588528883285461220930570783417920246331168207233389893723063750760805579459092730694154582155677494357545068380262312134331067555826339526581831663624744707232718952509212713502655018681956175936927266208353425941513968323715909958352090353812658026227377374999311672291401932041273215095791598249852896240004902424646273028405200243638774239639646146674976994136247267096690003921280674406853468178966516334580510307113531921488517650172971452893539941991836520354599321186895713154809038750959329065336769282601793827203108467272364664805080678062964865441806579717778363761188969404052776203349003496512164971639661361054239631029645262677217274945042665501316581255557444497724727952267314539401640458026013950057764036954566871290646316920543148941766292262318041194420950338098217638009811039452915392586980122528671095664969128502883062772947583411779846012786893644053719687613140187765539196493711717214772168103001986845953157334355531486913411186430570859945540891061403926337267645371005668906612225086403680777765133148760891749379226935099665194802975744986160315422607974488823321753479812726346331194342578666825959389332687821981600136905545267419066171433158635107520180025230199667707978277847885061557487279552037044244831881414162721511179340003992440506877798756598683071663174410351204525822919112739613452575712463433639064753167399315606268914854490390957796937899785129783483251247736779466354136846385646852767862147327720815193424115973323428906648897332413224034962024068065717913310283551164334346344575774128740676703169326921653642253370000630415418650875932075071439627083912486028192264099145614656950352368968297031453467334215753377261898490439154141335016050593541021125405936069079449743503838623017643858406458306395929730767150340195788540873770405939729323580935457872718683215996402140557095132089776617517048681858196796814902850617483542562823204511154867993229991372993980102991897027861128238768012869961223666370310854866963403128177477647170922130889817029071459046478363762678614674541738709616675029886276556005161475710163321811719930266479036336152753708099050212416781073069472828948815504651526026176990388672293242422718875310217196474888695389132514440980631482175829752856088818043135234600244084899232270549702544966304351737871743226622525400163184300728618373564720121555734265360552306142843050972119820466179626093640698990864686347372573095845214534653019997879700968493563099367471731368686106228997588440899186602692902060166178656710738018733621808637500963296008021185943739730756616071684970734403385576554457504502318292841938004448915725894235241602516388557621956412001392155461258530358149527779068732448766654773697645679626634562814591241429274567689977768221180700337683077452341948984903860857676809436614912230799937888277499397739643646083599918747908414315764328408564899636324259774275530665480327910745730762859325253370646998268161139007111401217916444115209141795584345462942104551060742972277548480474979619637032536885675689999145250691437695295066172581252510983675206606844120948250914986667908832642023514473493063378073556457177685170427470949738372514342767124014585929488294238057072328338826564992529665845760223454241013039721325803510130107607727134070174848574239162610341332180305201025722413713865429430954050241453957327633294379892189696812615742027354783384898010953189511291150130019201971331564823121390990802936632486713390956454407771617809048967756985465843732964072293296342685720272387331095471393207852978228266137531526328857653659649802031078939072587627315626106591388853892334086464833858590973444496527962631264886175035907172773866731457461743279193819144146883195739504883964726792503280468844311553097577280866992977398214569454079991633097505780598127573880679185122371888410945303681868403309494014031607439168399293490923853409771903136101893230268739732047151435761988510004733302496712316680523324745729444772933309214134889377784700367351918863689740413262486168806467875736416202353888640542152526721198183232666887234238170303457172107874846000522736004713675905719769491150058630833457819079294735662371446301928053394919405246166799787892846896970401069705251996374447840725356613011859469781974181452033246312037318287647879993237524767831344513420948532144550022008452604752646790248140735122971143049654185240514666132870047167153540615094952582189611983002482310910632032187286172746239781676978955762337028417895100342035593733304345939638080318337543327702460512098780517905529109217000533678788564529722716699177767663209484170235746926204744221681015557923340172989460676900505016759621309492484210250576568983250167756022545253615169018538380254254881422033012932363696444462196438221917775459391489034703062455242177999653081433967618076384441742850071507341109697864245456813230283821275626840631745686980794743044001995267943338772766638250737899231430736428460863296744217669504250394129952564755020898997718251516425675171693722324997746738111921010464895847038876515555795049361137921820717793112469061359438533104722084737072203953493046305680931239267764478117171872821532199939428849892489226930352900131271517573291201699994853284414049970916520811105706766287614615252735655830589471884363596344840994795719268157333901267858965903392673518121773143796006076013132936178731660418081715312090803615768587772458658951766227996250178405538467296052892882694087986235246266787138267453458581200328451654801966710709917859066407602264168647598674382569486740732281400785754690752515317943041530892897835694042086951393722365368756132005988398295104224227570088288700685001360047687683406018516714985732959041075750578206686968314676825295398084236899398723589656191964501251320511713350982744277516675693038909066074901847323010609303636863910953351300102291590951923354042430491105089350656468249938003895731313458519460065728620300356302015830130329090753271149868290200064766247806239584023232248410117510444924445484794360397830744590734481003565320439293410296619418940286764538716519748113892780755020818794946459714384546865777874889480919158802044337003008601229309005976750093453197442617175109567015682702053337745545183674864416738321173325145955829363635161454938069706769904823425082469776423183218713320189632207729476268246453804079096451717241617593587153953308011628361257589146885100538767617750672150466329202662045182513289720871183503019089738566115050185878482026650798738536322404533049367831724116449946625568628071922162270768112599613743348919126889890360451085401353290517896229161847311361780114616258753132095384392312499922815223620791133722663331154062666286095899075628783916755406564757825002342353041070903736969165070016136178717940004165058501824307898491031162444911037303229822759716953894321455000618275213556736743582276075665329140874282028285095585300194864515981134189535447704708658090816274192047584927630673472884194116337137742089908684114842153953508257302966705421779103691236134908808776292009495650777169342731343073532301341039858349878743489008835748269242158641294627802265563531200089284469537337414973442043965676959011242645555459098703531604301394593756033938505838406493110053903060134832229094474281119649034585837590538531362080642600915566448891191187893136002967168152390531852225706119655063320570591955356592878676361572645040089623415713744845390017067077293891020689007784873766662616684907472742030954616003520621394021380826076287677715533530684708131819954669704239116058348934692812409503786066503364249491491906098070196244525221680737470436667392125172148953801253104597520984544888149651690494245466685001976065544409023685504188085857086333963751513051724957753937718473718709368485782278630897633113961084279923178857909212525272401366292162159997200200729618748159702285173049346473028015900521299647357084498620053187690619266853573100103926436047580119506457310572205560724043308717793875275528563512919333479756289381260899669602167677674556278625303335970968959908562199050746652667281030662673779219954708136801840316154770324833321861049605565600292788515955438182639531054819118626738057168881912384142804023729942871987256207385950187058514599064612353358817923314392445371295934467786098750362499277566930382701061605404987210456844330135424132271323955970928276215329297765042547330787402324683097405696086044996646983645052304174363188387316139640360161079915741861697548049997653618734913593854718292197656457377641638319969821056067606224770117968556030437454550770089045837535056977078846167643079001415735791846884005422420240688449328766777499832112444883467371633844750156521911507567188269037695750383646001269765686785764033087541666911933725844798367957198233074002677109522574541290425303279626021304027105178892210786583670710176123169216052029128122966631892148551071469572862750995696549223927793872735251199672547840573263843367768151917632532652241437668607583042780342132753234004631031851402682643191872238778512044523993468256304652210508102942524704642916780218188923698378450644830530625955494521437152441349526257661262685950617311318303001514697799219392457414927145552660747379155541769120306327987890837108093040747091904073630486721659332314424723749396764789772016465573298572640074949740462013542457195815036617201183280032730956154662109052963287696256925814738429432240540847905659056220263895853318976532842161743879007520174957559544801875996715740654264611426631439057273508814109749380382266064841721841365743116711791685792070625841853318312903225419213335294372024460664834114344345564044999653439372676664972239268466139739779520759922535034132282753453853268251208210466502429873006490063061077996134053099269482988751418164794115331355854803159750162594672394901512459078423075942763940119270092591820346649823196128504941037543017223575834743284624787965965988808169490267749054306431283985104698438675314669258903158655119586525691922241163848271099750969590955768766975109556884351135243609664225572149078988384326530098432660270124415411006860376252659435726789541365790511342211244162455044764596653561850174739022910900162391609494604796095815775293761443574779916308442596916654008867171546526522611726319261060774614902485181233644742345687318972602481421411750806407513941980411090712608905117575786831964798721501558193539808074647137529439911746137042918764462789345095101531710920411748725376521765834940133702331350180960616284088070674465033261396929311136826031131874649038384966487219434394603619282460412473985675066474741494645310293103019857388350859692493176847137803038577161393555436672076709138815676938393931442127190493226837818209991662625975450997068658766313264907549601284250827280268777083616814478832583437953202604648696658943707511595608692149929304964096601254652707170501185187942331899787043478742842137990113887611610153939710932328431855985938358307442508909867841587681196881231819878286369899885679443575971205830714185901382657781501520315319173755265300109578949930246966074428336246479947911149707474051450390620491853943156667478959964107436243900674017687034349848543084460445145001759579421272569695172391998554830924951259008474066045985893593147922254115452152083901610910227686645843221975990966194930859279786987622638120094029712133794858792137821825678646439262706607910520804762674979760520953376826798549073045733374485199672346669989546860822366027810308649093248920383596068520408766095363472002917578504884449332171932940297008345261806537339154403294936253625903351855567958002133512489994854709631139330702608663135050820473904978342576079309656145646010174419968672591115877252534067946025517173323736604194571393178883919193208960377551833733007471905276439624120933807284815650491753690666850570226930038833185842087596779988853596270128306325550234238985152299597576792353177069470367598434082918344723640493003925568813613189847529295505563462741262721832898934707547754712455402817434157511808113484899787146527628803610749273381132821321582322391673329548406275248338686449935960784715322706618948094771816547721392342164274822152614702724548513876383758463423982314568499784519054122381038338882223960756724353519072555871011205795625871470117965705016169678233206575152244882788678239574928079766462394351054870051727226731349754710888230898371129022582638214952231174685486807332183206527524055790027977734231750177628448260265564256256520788059333992517960662049725381171909503246776920487720826431932095723492447967675908479974843151958374519362068051041720115786350740648302250751697094288740617765182736141263667184849636275431895344678118456661237926167851742713168936927414472935360557703675402938373605916100600667082443850847710367798746626660409575760769524343794818386478670810951760321834931537496652597492371356387371134781503302774297032653571545817263168498662106491077994064493246429546305634456654785399986399331906985236349101892367044294198219802535154118211252577127402992362741076793651331621423666907400055996994368215109821456501420399994386408395123368210050592611170378241136775001745480288389583661931107502799853244623935558532426251570552770363895627146325082170792695262399123716584211904088584252444168672884408225640707538493798864282386091228593552069618202770321291579426814284016974485437333214572565912035919005576519582022412543031955353988044028901347542877915039759936740811030155894928010215355172951394556757814826373632803253960718910200351650460692402546204087057234617648289181239836019197010323917411010544397739505074745506241983765233972424755554252988676753341406136159868882590233991404475086641829485114253921451070323213709897470298407013661861038322562129280501988421805178404717308540496749554190816483004285875355733775390872397045351045231299300806146633661108879264235996360973724551309939375763529113998864035865874116219502403110606283860445566599033773775239486895887706169328416830087626253579951120098106105604855235929512410807163126702647701725239523300662193140548055112297570713726236374499352156001765709065318958404396165401866446822821548743014222070114897932628388141650267993525029720112256427993799454005613007951344387837415779467772667827159426386475698786718862858536201526321958020174563564973234905583343193010850862598227122803405914916185169019422554091838995851104445904247521149646209581546889358172691490221003453392356881873168037657799006369675141358399770951503377170765565763580398178912700149204781382229694776638108371286360490127826526810027177514677127245855738034549636796881419216766834645810050359147879899343473180187804400330585011503368484051373030280333745221802043831815192612837320758736692977381117156848247499706768988323282680812786367263952198579205714593709943512088368642150882652069512653781103663112079409468784326413725083824908603373141938815553614226464862036503269442022748205606613587862413187044484941515385011571605526134048670115464289268420725373967128466351134255541035042612759165133331172632920851715678285124029090710759789791597642169497918650706592411680373247017861474795970315776928137448675739910773421671814210445343293374311227530500193072655866351118108513761694419543932633353393712808292635736656031575964654595705193092919659409949904363174161671032553480524576243575935947719603802242856266872057010850608332166143446535451716940817355277098688368249606431557974835640268213222859017789984755077651878231230957405206924217892564107007786285580436446394784381105160627587750266606520548023646867422078487949775142516368938649650391469447206724955894634176641714177642631615644154586350720208994155845204607655153159783150423166533884103422109884180350717726795181309678626508550248394775415865031401975497933572744752454245029869572213638152347293747609072687169511813733056385758856115229383979724072369047133878936817120589791430922897103972359523946230353786459338767533986827711635662413091640674241437302255856281125854980527230398960930041564919793239867950915051106512632978627793709545551716670996933901781120299503900070582292437593190141637040858451973109116321998484042786457634420062696303412066746077814120747559753076458356940669762435598896375695565980467923818149027652722241261345407948087394921515454032608877382515827689310284343384514656367158636621103126242934786133075012923376596196729858227240309686041334467515600641792421626341836828855867520391271722852344160349124413521487174335264242534998031149886722345339675937940355533549403262669956715818855382555051183261853250174996104871202557900070206273042828279256125757301941801640992549661243330670394921286540210929280604816528767928249590143305546115356846214713114840976673696029756059869259801912152940363668957715407332405269734468903561527969191661765677571523855665515639726243984199411608658977385907563103488581572727674737957997214582094023355017791484215072706774113014440823375666089962377725262456765465297787525411863053219651875949529366842085891680694018423805652344299092162356380990297672075581342400964404029085397052427751613433912373677249615401578911752972952415758927507936468776233195355833562360304054040705998618863140393940601950278791868775870782631765917356961314773621670664689629111143887892398269715656590917968814351663974009878581068002952428906766463786055373616209848794401157767129927806084245399378250709919591558236401307625589173922907156396170400882157802529678675710327650400524194501908193824710902422890603499517847675648778321269769945081096305055987133532162821109444008342836188327412961908156614153660726013190953671967312273449302631808558130730257258163084668580526615498126169322499159929599698995412391827914311200096952082215821352964928007910324872425660522734325013398974513642579593150526385915149048850944542141332267084910223368137681932057762226539340742781167953494445756421700118444640010797340963711470463631900307179417893993451236998587355296809677974039471976896695996436395010010000908400881096447897944629027773613838561261660925974348536607428618916745996420361695794210426533200124009461366387062325131735948756209837554045213183116582230751181583671090147762238210528541288095921064232450794353638857960162203404259660059942603989594532545093319690075516657686528797190995216694902596986493104089915794423569545436328766229052665572740227217311074933161584361347476475831464408062657767029149252449106238803544869750859342184595474351013305277224680246210762472693963147322432491670829321548261737134975351539918356872793574994692817264373420928207273941336677882256015744804723885462914985592031754897740920805137125280184835650688145152599926523303523958164907980921915865016323523123391207723432034274566846448531859268001164800115198715437419549817447538462490752183722805638693015993953471952769495888281722517604537067812253403393906229177261378486310298099732884507402996526644125356768549959945184302457167800621854350335196154548148413076464773262489618550825289968870100448506935323483208508172295709778327722726809429932762935976797500020199406078439503768535667839974088508106601797098201529112025125960399686781791221828716534766339478039176083247793911101138245607231682532926022111561295026222523760160933455036353078529330994014844996921579484653275386456931906917701535845431678481813956605596162097508659346286244078118149059826023484704407126401730045346220983374230449239820850561410390763344659956559276320851677718284809484126068458638413165517943577468990120912998791257097462160709888490096719914400074549657054793752078632576392416568676833087380514935388854457547004755722573776595740376332781586884210485750029842232206701679531839516399397035633600153913987405997587315717847202636285560804125651511428179081493321401937252767127318032885121788560852287139536704534291888909573029481814942402938599056281955256219408068218220664732364659293183507750516747699186396902578806293764752281869046806409691156753104798356025047763292021035439403437992992040981299773651466177349253208735265759437051809305597693333050976149727673147127786096540378174627185137760622592888526690261462844362295552623730830488247161295884137206921790232302759652741678260768494021625542227233156422516317558236566544072864699400208060467236454460107430781097981846108605207667596059662618925100163369251314286034881487138957844561172905173007116849360256365719530032272364105391378975102268580317406581283364041172532825023146777566957830366142952800026235427821729274237610737576309349501178320171947857717369574450228030089101205776236725502496169959838726300210366203984316749973120316309727168928997108746506266745815619584828378614343615503363127197179182700902448017127381574035624371778842139878674735911339877253546741012246854301081571057796968256448523044680322964410368152934362487055062794756807610007906205539140026855680354454443757989611091189437082354776290753473569167460594700799581785491514169871686204749256415823170788571341111686991437663638124691452482359113019250822555868329932090518029282468794598353222500959330952672044988082316020273939522060722965448259382152708358137166593643634156365470470970075100208256497885273646087018632948994278287623148357373131972498913169731918954958824452021508065879584358756952067068654357569924625903284639880793345739394730712900182462533260565787512372394931561907085529885021777795718755307849776563494924703407894494375064028664485436080681998289398556833311945357524097907506103582977136545842388858882956427469066782082229243315805590785140080388610573129879726653010633545274919156566790772919975962742601682970815455740678351753391438791414824585923380044718760735423290086650015646126299833133822116816323210843249099925423922635951408731895821491472421391962963417733658409537427077557859156671479496488079192423955438194655820510458456496204972582438188032349453607279017547434601265034613567569264627292424237801173896221968801141969804752931815364860530763988643867748334923188595283992215807835305872945183805535028851064494798150940953658890474611279706072694040524336694838153019639066854173750514235387643889876741975758545840996986961564636930795725495452570517301248479916896479937961855879372555553852843778941043873792432011159569358660722018080363536173945086857064275662823149312684825407429198921898008649843360693818326377719764337745856868558919889676958183639962391037920451457822012326689559804805770274622645381208774095260222031715914072595607306325809086051025389845414886103186575685548649670003543370399713978413153733307095964100361755158641351794788816706756084040131873883242792047064691019912122944524099160133472776988639601067118354536416059770236080611701466731939217698220755976749725845474319284963315013204110409589011270677542294651781234423184843592852233800299668749682570396080675089308032786248669661555498731850747931073085098843630303435925102461991707343305045917731382230434970799559035629431371631099754182007702343412364090857799797490389632585910850902829968652833403563525791619501484138147097481244721492152607779949002557817323784159479956484387210023449566148591414617761348112174547336952459580504790220480194054624078184725209984953644192744457356306411068313117605727338714603927749234815296785058278920579964122313240209542992450742907398705676344383674726777802010658938567400692504036239703144901124949876884748874536346641731284473614022270128250074329673746121880137942977350711707105034679052383195479599396626879920123343615538934517947783125193000807969318636260727050393759913576065714505849242521594927127263485925704545586757691756991526694401827299580379853036518823307703306925980149663274057254666429685938430776311970226772374545414161599029888405262293349728330407690244807358995077566876220276541383071131231173919281515898100505140478648227106714991413439072990763996000874261481472964264007123085262345869877135462449917235720057291537384059968500033701666068864357429610602370847025545977278851193500932071543654783453412948199495701950764654314707015569811904956285688416260185646788567127870168878239633579270676175548075288670073455733479390530781919462408370868910188119141994590156375230752945433121205536046753818229517948386783623563441569531272615499985780096987008701230631542784054987099719355639169416636990819439699886372964056896868410058518467687290523006227092911972520552332994277830536731372658432969398494513224283832176024000761355755011067983633081116382687042526447246323067010925592166576733344346689204429901585234030936180842499866917530428917732388673894389571866258863788614378398512632159280085168566850581191768797407359482502375755321423829427829298666518018923497625346242918587170731389342048753147463765150773209148298972205024076389950123809660636780480815477068570470681701853760819520079588730246334182585387775323811862488160562929326199763721245040416950759748720677272674199695302749793322739006685431313212048300392165981729780989437109016674936628967175254516649373125559724273697527055630301372262885460253802196807123155819892206978541505626002269751283379905164961307230580718935303207691464922121373862970849735417087617811348127034546171699141807526382652975277046328728164948259213325922232761831690157867390690597546896792621746155686618721141774585191979813006498931714381889768988155134400503014132856504590648602006741255472920963556148345107933132745169832519451291211877098861232642578478692555018931051385710770525377710236673063689488840311459032800884853083187961490763148553155941928482234526953142592263324069607767825652513081177578771683108688050813776024763444541465824122123160590660469208697858310100457393012743578460802084129724369209038054731742001368388586823342218630647152021480617700192891360119641364666550192398105906815125233448832847307685079007230641154110520631279434870082111695675342480039825215123033941912859948088969581486897835513159556217237308589108875813803715893696925246847985940774643739236513719367319291458298259152273633957224424265305743229648941018746372537726053197510522421096811994213933194068998408695670783477896992604833060459988461160881150131476977669808957953888480037764565882871886021238105416480047699427158449140899468652839967678864330646369501520199655846973136826478610439185751626871040939392708963697343201299719632667140482403531938963609957575340317392283227611093664316651770826448147412758242531085853828331529652677857742052115615464002288224523478916389733120676366877382180968276482450994351310656918313191051760011013211244779539732682762747688595866758051346895076741925926758015064832454473378878174798162235675881814421336243388650152767570767897704128667289138235097081066078922787041007519863644083807923693339340644903422762429702178244633105005856228474324545550608036976684245139607042006023474176844981753362745627891658828375195825247392692615408088566658119787501880273386988608507181737042296356325602644270013385206351157168226735095716438522487145700207750620896645827549975505727676871424252470220973197203801733637305767511376936691143677526567129098895822632335725987435201197611611221187854375685419653672103652727737604531468385125960297497763542110509647033006619066735402991628257710689453416939527025453037622866454412379836833731990122788533805759638924802584431842912187694959070456901974168066874298016166717525038520300738295258035972851080969240832582919453828958741039334140327473091768121734388397421672638855806146247959099882131408353439310315230617930512405122867206216706456717433426443633491526362511488819437998058936726289789900058825073413460442106067891672629105591957965864737811178349654744650461177570892259414125996133667314862677547139204868077262643690797337954241539718935913025270195817886775518560275273348000200950185065434414503136313004885782843722282382265378831412513588046934019522490838632150502393863229571936479288850411971871037686879265769158618821470956285045313938144828509101718576087225942478110782697829411449296210383599104412983560213519320098831374819669932680943796530316318071973348276572705525155784369209378260699116322150476102425210629939797055729334994510194240774684791695838611076386745419292279599894244943092541185534336083058805916610097143863593829697330982016980962430201766417879176700687839146241067738086092785222142550953164912150645163129889823917478652108156516535890618322569016351444061073599119560340810010632935903651322388978228912456178826302712211904437894855302555676774798332687529507865786117556875105981846196596433614802599449626956999794519597796475226119149750592109784641308019832981910333847187182824671598229720673753817705431686667024698446950499359163382103002607237652652719707959110397114274212346584025144375272771442097783561984909061083827638748979570201563272843780729777248978491799019694619928447580428488827180728617035237271754590067426105043321308328899976625263948519719754666763914607258899570719584922022360011392494418920443105883346499077599800771969889387376516422627386559731648884052016728659972834842712280518720021260545621109390024613667567787261793817259324192241618741843232158557211926662821050445509280001539662491173399458783640484087516744827572100700735456529755778544970667831387621500198069674109339584458855966238209169899523670156788682165136202741308237081284650105710007872130914127011007362049744300057805167255045497177960750246659768616871607216842263596947054574653115020058239170215805228738652340141549151960034128683030767176707812058219549666075152139668586283652460763143087759422618648171241056447940847748156707717830918669767950162251490052955490416696100579281696166101457910787254010777996957047319633462495346937677314678656429800262635498885363455466120974613653688572426920710502164020013246861623673985746675244253200150375788375200359186974009353631401212384350770698165712520482576505655285412802512107102757129048743896588411006793219992329783432864006795689532599252840903086875795696379478935464799682732104100221092529691047135075976488476110039367161860006452605352529579445813134275769327880686576044373399567347557975227762499746908277518066143787695009247725323225465354759517828057485277136927491539144905367543709235238698497053751978069904095084508132208686239891560644175215052548378421343145837126848394724430377628065205127911136670063812507629988645444080765844988051185895456594171301206603132881121755337261924316084148397658184450824192601716407491345290259319037557547063446183436186655671591425782871735248552913994621001869730863510129319168113777557619449747092463563167371605829464256756317797580454992046251856119770546081973959910592945128826811577918784481739698661477956463371844855535107042641187649684726533424686265381581862754868815543053549125872347098376568858591987203267300488403318702973862437294626091038159542604575725221881005394436509901556291425573285726089496998663947048961450518118152280593053345047992372899735753259793338297303239517637078603896259053166914599636559083751947631618087849259287400602830404184315437339124470823924113838332047138859065447902901890160695229441093218754594962145171880386881227546466962760769011341513002861018684933276790477357702571633779430192726696782269717148137611296545349405343915192689514674631852659649700479774107019400819589261204797725103579102101682934473365252165382417189273670833404364199765809851991117599205674329872631719964276046103537902365505965899460623545014266830544109383455189766788455947916922098330904174915364868414785200165933593755801579560303281092809813725996492414572318745712200069239666927437255597736729442050595722269611328244877228848926254451332617856919945170449859066121619903590421650198264952330504015523561337900190493586706022427723127949613920221809866712137576900949173192578553868114732094003640213671280911642573222855728181603969761089767536160170240088143510112201869601249002713407275004215720677535974220013598495507870658915676240953053194016328616267497794933237652814017459925796685703249762759631828885670984024139920104321128238518899248611763244490915141358336114760867667521169646285801343001409972327624713219555064259735378788871664036302340253687235796433174772291069339558496740763398321073357055474819885233544923644822589577525210800211927133384727499050198814701659867113483642222603210527437261325099594551995996673951032981172372004575540433449837365347344193207194964528863287179443121612494170510751469048879338824485576338953745356016081858131316846544153673184786292530067266465772158803667399619149616428790014283644307311309157819552592846801941122813669942839987836861865659946337353703646587976127187335240112816379256969557172533593907210352406590091343131850357130146440749730171071809600618736601591602087929359477967286296348350869550499932712837706798673447951045682643969888538153917323238589203764862682991806009620029844762235469715237600660435246035953864460824251883860204598974733641036880426413252268674629085417963597119665164271002453443312154184055798167030085290605502020546882015216282722446503136927239863814524597574014878006099552409856134788651577023003653034797641683631025357225450382218849855146831302455698503179316710522543071856698342003265506924060673547856082349506012997384457502743283209646665833384205149114571885637346581424072694322541640397217068708043411579505602259521120110226452148939668780857505378738858927648608988377042619607565847141369661821716152457363282834246926332685287995945145072282459681349082421317088829726624636942046186832910522671830237058951022758418138636287297094055445204885961960048961699168396236391467858658349474999648335158175088541462813300149732936498699036858034433149338489448285394969721091882698988484408290388535292118998522831422569439191224236854687998399290995776000668235180393669159256437212958193715176984680320683692629668722632011400361441491403524357350617701685790040831302839121142090594487101373209162260478165614441838872682006007049496709325213654665177437740022060897909837490744464838353974609812759979895466922558580773239492940547422182556707319874783681939395111266992600621623696813632780369719214046941732649679006988984251997809927506239244232185093092699219989549132638240598874348651424365378972349973564612933400888057818640881702117317095006407262255686228355373225733237365516789514273098289663959775568477597667205151657718760389784481432540256844920263318129074775913761966784267761582161389618165299492588172276303604866221012487225353920402813210322682248366469172494214513246992441071362853991297079550373043858510666676550690947621599942108838360318686993365750662422531177713165760352856690398615771552369753547630878838000376017571457857532155296698328513874095434942628348735332293411150271211502989559806919369391186631862992438285714520827923522911602611119239369160961144140375276910267401688263852292197571683846955781879738140262552680525485882702424021986790310751613926128351513636260669326326842365617146282193698246336079921368916498899130776059198998554994913450475370534307732590711097862591599620114981844007131605852328101165275482165307677133758906191551822685473560533638900247686971337992531910532819705263148681067575731933270311816177808793512348960392191682681793283887212303593566513747822556121441699997645539197746038714351497873003906827651148428849533986875300500277826684816668172498779749531114919386919289174211856271275004571110683080551651358973594549459256888685428169397781678587874660683618360710653723396798756391843082938165864163759369832333595268389344070983978029243370248555896693235870914500177848478703515421238852639866835711234397369535161382390833340867727133296623251727608468650083771763731770671747425928461869068001994518888412068914945194673494858913781860680501851187231813520563276371330397899041540329071588297176422710250451480367254495570303252596361529093884329435649651588171663527624683261057508114060182535813268841190441447994298724065167433992366177289725551501566727386879857168043414993833540402078566146565620806954068161786410637883764016506746761059946437092404379467891762631360968295288467270416479890814544497376763125916964673384421657981333948036020247749262863778607674459917132452030756280315727783915993113528630255667323947228603638303617591834996588239279090575723427905776293098453171648475416437434681667999228769579931701814444546997423649473622546150324443019590254318706055227418646322370138072761878770461859053263329945778609221536848233039620847977489437316975634438586956962181264054720978833204833017198767440363698108980496061380544211214853904906864265703706430302752766477892947591518950829791907386944656421169121759788192949656644386413631221935974992905680254963922420029030091927377079207953432494253145299519433459271266559889520673714540470936091043961733741594828140629967534151629042511661395010306511234884676388058687107609951279095672676267430158908141289612681448509969944860840491816774957445472053016949804506968794095586448211702146926862790959891459491082259860548602493975733861524219921250736622039645632138364163289221637649578604940246993590465561650985056937068256632174216917516219829367457479509279601020573176016245235694055139561545980677218746709706310427522193877671507856782052097937683537685226315159429882767662896725436983358941751055505367293807965094900897032418787333128982896731588700238965487795590016568033510850530896424333474097425457761782366420169780744693586717308170556782767430056016377215199590376571549726832210502737409254276628175987287653881790077948554417480496195629730789347299803487535662375039154909000122447656955736251672036296830568857207072635992652983420433146934676011521819250403943778520837556217274853505565305768258412968204620277974213331573813265471097595795770408712038146794809324351926711840376753294428179780679342724350519456360805257131697763874780693274883422292682914502040701558114554951016985881639307230556784329154219578352464114193413129829053296852449248560133681113482957901566124841476511832476575942492984348727806337503262028253557945985155327337765638161564335402000226691608496696641288092172655016120028422023517903411073431722240222693771691581423404392431515924806822170249813767724933455577785683687853336909586663881655716960431068307674073886210033229325943988824847773163402099821080690957885616443095218162319078701181969965496059917801281722422965868373331681638510870840822210260817708241837196610921836160512773393668412418768383032874178285287044851554701472689311394847739813274626981617035459007142157138039984278559779197033296748575973287779307264654575928219210673175910891062594684493033034324977298189431599768852944785206822840975507346884446748760998406054341450489263092398555051880438143579551962689230978820237950815078776481366924228762029189468948600218174906679530511245083995736399639813677207927751540898920807075342435990899005383003551758338614541804588642149824864078334697758520249460920496710404459989810565950830894881580665985764478147414438430787349361195142801425338759731274356213263659737205694755926236809374497454305915566000949667241849153559951723588861219191811389008130590227025325951705201654681370430443294751289758611919784087305202470716281491838285244765333588519044663744765229584200629829049231968051513968181444090177600488256584743782071108791883288637101621258491748033329819878665641352368282804692792952923532125050283056783895220066562008462325079800017886588203444210998264143890453606501146941609447700873802724763993156073654328527371595865509291328520931672834347108115937698599947625283696414989482625594992881425984976720375863358716322061621386298469215835987317977463651178991953888684239923327712508967614511415827041464696727766012542216232604873204847515208913519687785847808679232212008956560152696657040492150418726329044876886709255795622887494340006229616536058883478074637178409882188932348450848331885572387852509402195597659131172781710427618086206104667686881483991280744126289160878290167047480574739313872651054598646924671949727467842339731973274528256557061333099904496565039915235956230601696977442236204611639073196080260607697175987522407192938855722102515383353369873663030817796423281274182740010551908730130494735800668307845536130727710368261739300729243566427201511701709566329338826934121373378394309698973156837759736535442237425677829860203134655462118093023286735899041611457810955033926090078210575723855289967823327330122363552453782115202983346404603901596045963250828938143326039443089500660647376536124509071740067280726858604984254063751494825239713296861353700251642500606124015446627440038895680830742346608694524380924801939156740109094147276928396504351977495221848250918587639604139266473482246268012449512078067718571305784154046728897062249976896442217632678675900165122144689613424192008442682379369757523187959505529449039084117911504092791971745910237774488275677975477879041213407931017287667266514940482118877955882844396085881837621376217795603958154910318499509501275425354704126011298998350581561962264971783499196862678183979049255873112510983536197969735852980215834498279855085160976205870352627411920533497741626581544668766999597765345189533549552905550361568142827399420905326290308262277232662179857503325782289009658372668194957658296696125035924022629215328344301585132343536492478978662627703098047535491447426112372319212333232964996414955774684614051249440476719141649209433529252549252147149308085360222666370787270878525741991924166742668967900707992381621511211213091213509871320608100298345955504375160175479243009458243103713959755294571128724225886795571710396589783755416153044946597893304130126804054356015604339819955053878476987011501237320976566242633713043803273651072899884787817438324948075924866784294147875016361739087611196807818934143263428910230883725828077028108761053313367033107814370864458237837088462239852003463450784538505028898422999392906440588313628372003621461380251579643640890285665541083936971318853237501574156779735360500236765270458410441566069271608809373564630833919786049040338921721803009973425044634576406684976980500926574583682578298487253814860493526626618792715004537149496665879130976988086269082642805653797101969449129665934298268237408506271344023012828455532494457901609273986924962875557738324998640495368011431847720562130575612974316073767195521437068715728606359048992563546672111177018633563319522694904989842241404511953068145914099378534472847904840438966169700448551786799582973107490355337543002007913596641315571311490573606312467006328136333433996509314167222194531465189005205992030378290522888103243321145783288853156691003073746019826617269242809287174923177035403301999987894429734881384793213989547912379746199892190699585585788326641213696449235458447955656035478018816229241612520451648262999968284218212630415395095809522105301843357955902419406041359329105857544196233840274085633653121183208629410510273405875089237903174653714016614186895133451430340864481039104262283445236195897248131675867944257424640833057353534265995939774530569291825021245005497841501057271687721291478899208942555321146485113868660400181840577857038034881340047453694954165101366385587267499284396485070178994082586177666487775316353845146402415982183240013053344012886541474123480628820195252808747659424663822935230530651430882464120591862613509982509720499648958036941959660491176944260320304546154510168068481578679387384395212213879436810877429527625367368469287697940507295979853709081313900529848380657294475441288928161721165559571183019493722247845567772033316886266977904460075997713461195445090180997787346166824337248265417824382156126233757674111287393475561739473478023765178123206682704614691295566126625612157017395713642506394714690635684259645591328645171095683019628625458278866467323357840480308321096206968638448610478511136816097445434578599132642473294260438965627977774904442168055723237091480780785990242833057743449410459858007016157002217345911156463957263442069370954605474447566571467478598609717556492271985476252030929006447911700172684211347999458299272801378111369397577789221719827718163898275136588601579623073811308441061167321191436093563821054809341495528475302786240509594158120717250589574426341808210773367626047316157349820231894753459508817364455747584156203036497480140945029515575461249013515112158663710915161751484517837055200979952279553151319828419367085476390154362220075461935173443416514912942628490935287943197403991763500590958500900709199928560909449170338667284300497225091689526677489243158934852095941991934999356465402693690219931778716950891512566807440239733377129203549103832373115942964374426530816849522732301774350503380639690264474592758214168142764258072010578523385893349760093575219743824962014568908616627699903617798089532574841671869372518502749575286051085657422984549048255422879466048370212456078898113432225956014314971749125995480014731248680452691357212714861140426768018672980735558686213432872663496991619755112376208368015985225688372824993466407202689376594832323044413667376959219998656679136155082328480317580820557430638451974726439500641868261250835550542366631928211821457827841909954240859505157962143313884498982779888395645066210970221191655553305589650913947029017640549465461359697641579819302771446037165898845120318835778417709976567313602872554594381189959964538405398733000533979688719148247629266622111871578887641826556667058913601230630823886202024138519910579306249270352850636191028101173083920848733092007919976410056430034077565967414536938200334776059343490840267749357268773394088238945979211722872420160009506647956105741836973979803946068790025180028379705770975124779350266708566823564227816856192691685198369716577808474883845668016677883807071786786308158349763689386554656146749001964121674687575041233648488562168226645887457284147856876331694441379543289304313657093138024537754339918561343630596310623551234102596263902541489571570099597424648355709150640052529388498833164536334024587930893015759223116755450276540963715651085419659286538329757776581411234106743022753387230804626091063971559464045978094440585162811922574177387966978386836491202869169301862673885407662106038703354319301989079914488319483790549097901513971385385817562408800029454375282912174851739523013795511365311723763100353215100976942036880488619132240982486371987938202861442997010391323666058639137104177183996632884153515142130856820888701843748551171419860516276952481309416039609800974481879700425733308339841585738613389481949458238919608119089912281439120675570989849325561616381914556707046817591204341385846300591033129512521942409962589874548838155674982354457562683782261745722893278682228114238839399725242834593217864536458188222355458937775568373729688710677264671126889883558812548455800793580212039703231086767861963062196820840826274639559694232977148647677858929081547656245247435658949301451697393585029646619185387348477182192970136252454247357144855729978423329894212884225215096161298500293297873404185383096899992865037114726432401084056243407410347933465017343294630391720065871420483205509855251280845728021330560961203407977757970311826343988286602857236497850991875229677924641826376697321135623715437525990191433072555651894018961020114019131915891301283530575396864885862741587347075955215316864342949125880813901984645745596843727406693473939826463409931609325936144195986748907326013781685404108802136211746905397285841134302390335122880002438113201686860230293869754977316617612143622785826485900876188091403822282681513424219752630439695091698302152444548092775752991465167786509082153243009992559867867601151054615650975534242058519066526624313759007098787692731989400811389313509638648133084190772664494629633121751423399222653234936820362880703589666862427908054286130470325603683095979820994335983458838841500772573421561563996697577472062256575550851277371583050172487764946698861409651057064319115556261264964325578737927207304737414464364810053430286515675510484229350581534144823143542954289942080208783792537350263645772039935499847713932393915247244061228985504427066249130214817070476571762650144791705713024333902975463619038690867502027860633707435026676124241242030741853575802467538034869710238006014189541986536185126437153505383347381932826274568969319407654075172026433652707980474835758520652415655381705358718730273710622235667744538976779779358824545463966840600477151451350140976600823056657027990679916428019076833521706056732353755121069749781977504452661211397356294279662946218543011702276631086027173549760724462042239509171212150605272986927052869479827842139806200703837348417750581494472023961142446439946465206847325876988825277874997809702647604619821961860758759135815950232973461134009517239590384001500378602501728053905221351601975003187001025041992641378569339560905023027937211932805079794019435963137034748325739856938149846962345111510574793093626505071074919470176765610054227554081905991341529101836907545872312775928202178622642635678512607109750750346405447925759025906303424917128464969526496647953249860215141977623876458797334317163449800813157995418712663523580834446477275503914899767684699528005388773278392011430787773606077524484271223473942676164978301867144237640233662642393793781509478725251052870101948574917058406636958120277497120046051343490186039529468080202027463310548767903000891005578568340199448875421848103096322630937780899576931921077467623694806521306972633903116563622333253386942152547825290019039077241345900530559509783798603071592242590205339955634841822533809432978979243432350864267214523945523758189777934589491393099630458846111065483935081427534336719407897287509767885221413391969230861745151791705923482475730382737687293355657082404991760712131285956239797654932840714364392332877673618305941493600522952412154904799474224612907524824950541179835093148196466565857093445897581900107279738336798759387780886075535541029564964844503217437556509425409925324281114776608736199616134270319934341934656905532047863576997167047713967172959584399941201991949638919778209737589047320851779734022196536341420618678621531217537847662106366218917013941982814255790583492364273858236941739371455118083719762203133510612322600523916760180879165450239327572435890092450998433515111098471112088409681808749530865628628109985838775698241774592127947517753673929847267055067758449762476734853076894509991332791290138591327437113521415386055965403966083586802634317368541743152251998521526100607933953002450984398273959688674054686182417965001885727184245499549686623697228384483847335667393821906908612687961849790041379936869057069800813881273011954144509530173918492603047970203563602672863236726495706223396237918035199760864045345315670336563529551665371956925977791875907321556095539877468704963283706148286692534062072529924756319885123311857277326834491153391764966614361966971157304956492443508508901711473854998183256711095960548234051026426726985706596431582322704046302508341892129070675952705188852625722827869545170690720180102983984241031502424891238860545395183207254738830470494421870184580960944081701357406023468929821712143443626424010384473049854665768467155691424109533729214019135797147421020552921222218721787074909606753338812567193159834115819393223316872178515893915212922286287539951457259199393624968756888511614018583183826302586226326811520363928271821774385248772016142306175770071248400919328034309335420316828551558558923290539413047259950863871169594224276949698246872166024557834200022056127319232646665064203037970304397557777560611198078547748438955476695311214817722287565559923976711197329176824904516349828734206646522286881903535209679126730704919181498636705478576114589659544683732167334649483568576958213926083064321532710052631468137685224341317560622878853384570780799408432342487674571916547481125028959693978006921354574059661076014407821317145368040127393221957301663444385761393796006177883046219890905727988210834221692166852972604490883953996926670582847394233096172859723789423429032804347262735153058960603674272200715840960671723567520567846522574491526846240719104881172079891979026543117012025918296267253382899715371011927367801196090995809609607482325068767605547102867261362027025625621502203003783372883953685114227387579373385579308980358644791314642202547450228187097655973809647096703236611443087467632777947440776353126915741817402987866916728455698901083954784432287077347088658733811363839795993965931616213764993426162010924617802420936030270347441723431615439357901588999114670378646634897160468657866906392227461175724482055852193023703949686468517964785886974609317981997920061277800123499953277999801273460484195088277070001814995037610968053234123013495519903142987532654569310927092198952976025584402301538006602807483366444933869958413973447825524164857192686577464661662934388268514615399639640030223755894004465032707532436423083583391982180716293695305466698445772386491933355796839670818978097492305501858923509708847858690741354358779116320400729607921543089757647645049435555858780410598068454740662326280430985563917083748157705576831727667712185418999874654122470113453446489913714613177954874279053508276396390192661574693153580133478817768635626809972593847304753127719752901754391518186341259642251113304164292068073804102143598871936710271715292937195322971369142933294282995778334005671746916486807815886930510543905826650191333573456847521759261174069218392368017032315971411280360835181484367052910630965949362411333709065041273268608103138740889352055572761436429889613409640563268372651477144748841020804887825105930559748235619432053306776838279210828136007052475992937228266597490428830800081506853367022822912000991648666207902394948742385563250315314505979863210782170593357015308333488549087407234406825458649262692745031495876605657668791227586936911375062127661849976915185906834795869579731317368310585688367504675659325615385648980321038624010389427526558325639509140850514105269267791609252056127152682543480100393881662601921565381209454572409112707529723337956257565811138966003853160624709830534608140792745633703064707188161051925736785918670311180226427337631259398124596065852950665753956196813789777025387803903901571977447152318137068296046694166242444967820988993155756748013691381917652970260452066016777134021613019944585357110934500557645549992233801674447600811770877428214430151641285954831904877971341236295319738699193418596592325918262029115820613858100766085287863363111547000777816668055048608964984486925088450571339003896757925012564629410938351741802174660427289663686317332549201984618432928924866253759511091740545895123601349603035839341674702983398173108959358394074934018044209318527280648252612392175714367786103331095124043661246438107683107983151025633973780410128437676608624050897812442855184517010052225192396337626443419651501870291775714204870821618953120956617931334521969684424230612465768414785062248676439060213230685379551451871686556997101108634116606165851229043727696280887700013984777101053660163964223394950735984061442128736774466565345245626359975711669795239743503549908394736446916854597280542641153421839191430057991901455506138009655286709752562633366068434045453127866588903882491695755615337822267871838586646216110357439079892176324622872128758411450288613384141251729169433434865595315405293137130367565752210363407936519746620856018827299575573701603955373597104164847997863549664099027312960134971544105684968870786839403039355345432106692373343560820089717672366608875037527116124528441807616551490863469307414586306923186323418833456730317235910083433927323115411463634007074000941606625944911140143788260897992291427938425043497554730789789506755165174161246052529388432290440983471210061855085814374373982651359276948160782647405222238652121087651366426931525880516762028088131038393846617985128644295660029137397708948588921916974964083108566591847652653951572637751288402737059796665392277314560079930929037192326634067835852008301734574201298437649576578949057440556417858332902645378893907054350024319655622070469911550458367271531961967107738258488761849701101093663024019274713398164025027419798553685856744405431118052552184669566104687823306787989373920919052432766597596654570578230263117137292870282561417280229089152494815191777577475369384271822718701209405680317725259213120324150993758475333040131198730418910235969628944898755756296369120772777152196621844073097388101765791142061536030883646548407498082179460101953853044573398888870027187339976627758899510553676179974326246877338687669835009097765249740002611573266823579459017319495239831484323768512522151905563413531072050616212597885101676765152397171694773240283474664484431832451501567701620786562807163356347468268738310051188787920597409664761215082591363963305701482569857426246583173810335749916672862562124016356592380269587062710595568272368263112805220333472035520967913747985922710175998125173995262279858363615670243560660552246020388395414500878909107626566916409026171184252853638870382300402690714830632941243685816609841558668460306092484990566055368360151498135440760237272053282353262059808066094787918065209456072737147990155924867257526215736587208519572427917845282592366687894112464305490355741031375481349353659075569411636064232891884735166358685095762175107856482211983416793647613909798116117784860679078248627463794494323307898008932476705487341399164123127634013289390454302433018202359935329833394780325205055769895596930139330212150774902873423948644252486110139509115727857182978431639214521812026773831497399259215338103279317112824923418852463998638818139847476414794732811042325809448109547490778284218422856641182762449262540416298543724836904697460000227437623254851050613398524940857440135835353090415028133955081794715502270582916972449829582450142766493447851370044268483853413830370631822023105275688719484715856970897589741900627201794947036204940961757564419318104131106540347889663489139965124289435895905480839598785161143536234359087604028584328221624546916272991123298735549216033573549860530492245815493161640508625491558966355094743561373621429634109025855382947090572090141810429245864692071238733977357490516470185354743045049026257533351442372692676830076406611938402145322113166880708752775675535840492232269012820360050072158399891781077331853539054581257592671614498628559261084559057249044761300274692567234702771413541718387914138399270445438776105176132240643224955698571037399417955659097440172285911669070866135997696419131369096763739289698779535228566598010395250761590354956097362238538528612668599671295235341433559045700091187377041068357262935964830678784288512852582715307161477037958033948430133669881855184419259129135747362860626447301437713387826823699578460546072622283176290647467884005343931118564892565096541761494551222346576583323401621811778753535216054961100455850010200289695041006009390760094618635861011057109345247196405256630622129089680119064950660245206169651066997221437731218481917178406284176871184332297733516064152811452538401800748177115383979078506626001708816652397189077007837176292694135245199955774894384988715461952840080534587337927439882740793488104547957138507618477768357506638218728470424413395163409779521080090822439850502085430365124645487716132809897254675114846248038189573174807009860657020108596755470556046223577297085825497065861625474572314091285893787750180365564603187379350993768769774646973488909487253405173707591319400847492391931149165425258852218623460450600558081876965896642779023681252793294050741997082453086237532302025973243624530034042292312695330523376227362840841448265392950859752636824344054214197259395685922191037152038060827936789687362686046831094888021970692809444433184133299122058307464150013349746869249000222216417750609853605082485974862860007902528202383056316567039920981715810457284886561361908611978211096505424854132780992337525543724744007996250166447420439837299588659217053172737817186149533182351478442351151720918133872759945063588458155206389431924339517613162175357459588503125355050691964373892515723867376587364408762003277571317663003636289488080637534282516333303899128009033660540501827217119559641558363909562775515084423964718604763289631406460213589008301165057045099367576145883875566285499481449874031437300154156391731836933040565977391398979212929336810305997725341169570114969483537589168327358344450501765558784683615570716667203530775759740266061813265895577068817877228030569870628373869560869430173155653778332480662962171594382207033099288395497961906375161557340643677528332967376908244516032679469228997211185126623245754455581173954931428237199938539257199171084083421795920729182669385562360083555612240391952210464358059437688570362409628154162948052493333194760834011175709883357782161080506254328626260365156045778804739608720594573404093819825234008061327631972645804698441388781563303632672949433100061478574337225036898121622264832278687208813305179946957013487212236502443238036775297712664238352535181064032438708775926107281693898946297434095384522122340331551107013386632329069224635004778464725294536556572131658613708979501996575926180228740891214505582339802650537810403897067294198373909157407982217152031741302012631354924654912704077433731487730768991751844941789609512320584188374428930027001185775765265946777783430910624758245224070105651972119404484179848278493889259887353469613349557562285372151703047656667432420173626383342599341449889386700353240431075250564015992581518404055067762471564660138416024045327816024570542590101820112327520712974291461255665336210465883315185681656419741054012003870481829599109052721493958786713115735862362359671945806342568319493469418241704495960303549815917354412784668038810481971415221099529473876456133074148097316967352355235886645059228567593856745383677735235606887375963238697987031951680488220070884889930911563142425619826436393905089853806443134303532969512648496919683356654455839065926983341470361271789554140814205108040556803055821215764761656281637624944477526041488702519905797829848844510697828077884180518750035024808644885002222655265914642160298393439133589867201192292038996101333104450003598507459528735903335269079492815662027104529001779087868008536529771677882839276126329209978667059165244194000931590010728404851636930813167601422014887627972558577750689529211816735056085544720730815860862588860618370387109574388708978704626792959866074934875548758644673262505854901732970998283166420098502184956449342688591385061099460105855935239907513889829854819415792128334081115674263615455801384602519456242517354215451772650458389087531336328898682041317313800442780537352357792457391769908697688830986482293787050461632034088366357694907709652730094165362184844388557138816205091866150818321495453019526728061602702132333288206488211571129313349864411469885854170094870057302308559684397145828368087249548137095030811665324603189276976388100205745612049893061592978904268956878161515854798937789578026202798765526617896426867716433558666916276214785942215185072582495761722926066797941205109840954185860121884411404125582916515709651224144925348111912710230191614096915973589418855573331170286402379920122788932287612004396915989472309166854386148694041285309228200773396581618190150461468738085246000498117416004854966215300856911067276631623975492779725873934192368989312896275282407707884608685481034296147114925951399239529048700531052004585426796699560802775856001385620330791495311609987261076470264330837323867902190205789499112564109901345370137626880798495927142002576770563557969003281859800328734404642035996140738496422564619883222485634494090055390906536181434323123217362293449015843928202485579906131395494677985457214676084228143260013533507969720324641202989654269030522149140700879225343953781461774507453723129017430274914017132724793804584010748520793216783337349202046186491007043288106234895920104431529700919927235719643766092470642951533964870795778989992876725404668724464482370630622289208026269760560189437062681576380713391558832104306973358888610688894792266202536708346088818391103291928582763391011428942374148264553030834792867192828830027778423606781560743378496815639958460200358925768282497028753888943078685068978388315514563626811487280940731063315009221571166778524544379647948548893560992334566691975987062706479565772143117961867621450056365987029756358771320609572289853131726598370687732843958976806893681528942685595529690994535244341788578930158251824461410628190970384029571691489933688025761147921023600181931859797566117016454753186569797738583130190363571503186806499967503539656606096400957113833371068810807583974038739641542340045205990609754370054352409046079363124545912594428058173623529212305251396031657178488810542347796208940956390194059925760690165560492799140402219887606030270178424880455454774620437006652909174486136247913056012367374481228771422962491790283752372272266895459141349021468673773115249903123119741438547651936425502702932481361918692695541303949354220935072026663739225037575940912222633279177925273793675240848911810988977009634249203711806685824739275038188428289202704548028823067050898466364211909559531761356833644444601858727476708863114709233556792946417189158558397444701397826604091267948277020228772494244562288379183160759492618229175570193462433157697877863982203955659645443060262399343125635114339358273503073094490656901756005413214999231722180783610554915132303133671310572209755357583371852930909825016030133421064572603309222279190315547011711915716533440382504920838986377038110054937554163272912989188700428880780496672520279335467976424603346175390792451820891659559726085309050956370073286824425894850490790948574428588699917832895131795482691217256881321187429536360010629182338182862870494952593071499162701903786456111625533519947884319150647794076239789027010172773963295794988830542679113046374146747458668116336366077588162003019904215940100732716791113333701552095299560042498827671516966777801940304094044554156287294068075679631271882263013189388186540504909113661475860677351592409540164874477822245887980588854839520687083704897243772766634448424962520198817843357579131058112918532619141927568198593774797411719364514375547972528452408073378311282891247747183731392632887837203577652531624556742715309274589340376806721787497697061355613665788661756618442927854081903691343597241892130063668913050306659712641042658516197011338435297646259085560794764711971665321044766336319839402878255635196349912221077225280647162587133313135142277262944525197494586384267180567067273403464022384371216978712016619220928821708505475677084630105302100981829698124868890804254035370546462761990047775792379739151823127180594168535764645849943738562670102236243421174772813005299694345512929971577372773159615005011303254409018774411617038815733736845863416626224403113597709249431122121210992335255721075561405830534087897618562355780960476019154235479954638890948075952349548044533036893115063425598390851376234629848146432860268362889889041439887528952264960936717767832831790186148214364515273442578770950659727656797927729079894705741160133825668755749009586469578847657141911163143918631197467036674125216667560575823796153147010005913643165092320657330290084588356157655076977705812518044734298821603863075676433990177944674623874779460239994822683655204439678352851327573796773632646300665046960683737986244094678655793422728415405589532985028533092875274755193652596484108760955383953631837151912179169546507284300157321662079600437534510177930851680260545709298131047574121959941773434008027762210635361179478433680195317212708077582404297295811080114906575026442473987753957109924506190977501487854473986484690227013218366129354738113361982574424781070569534673713970002988074004889583394398522008353349547868987378829952430552796498440143952444512048654332689121225308005057852855185509072067679295642255926375012951207234793138415871118676290566979241374029146489399933681905145025234519463376870625081031368424165921851884738818710236327458471320065861690918896458998410658479683755266440512853113713941354787826441058472491594762269707368288895202837258968900348855307522256577595407513823741900174322246064607058730646075530011341676527791312433110774573114163955523325130698215509822825087681153347787110045015926527250067707854726464386394773784591468181347203832761943193204506912671409198512882112964945798637450012585049255130993213668209562062590533186795378465745309476200144575944952753521098613770749377428408938380602252622423958080550325070660053785804930921883587369035526240253619751883941363466258086700775219215144080972304175404808103567147009352322398582154703012942928007784064477801739176749141284195529160111277671812145221657815007435821893599170025905194429351294189729089912527326829037258269700137599847720594039365387615378762953821147748958425035131333828974998471046930309601291003228482655135995937652544426937449193108520665969901119995291823135354890389109664562346165736591188638804508857508239463470153939988705858804024041715093004187907097671339176695328427100454154049357307117920357315890608132695077526270574343508739444869940132810358272672435769193118688564042466077118766824897777619938535742860925921723940604248902323881289877669014779892663788240320967780042191499641370246592388105977306003478529577752016656105575992959178693835310300154140669232886154047239404600423714547143688539358069020686440900988605638216070919605989607385646089603315489281628512403660157379253893975071304878764163555085648814306490441572417895145705474550175864618842192458716429927356760055143643737644977057123686855057519528261395829215998773963353573429009417203351311907025232357176759470702079049738092693599713631320525971336772265186285213595865967507313360639730618423482465438112728555947665498868380626260697141357562313795895838006730963880916637312794623753155294247195017768073293882078890945880265248392498116753572473885402411266455440145129002334740691430724582500493373538038802004758581079548873473901778823645188936506367366519683519744037825879138040489338059740412683013802011106606492427894560422910895928518028603290416793637137995433016129993621031533215725040856215258543501008490476996025630389602064040380002839694407785274734058186511097303821461402915511704866129432615555400122847500744738641624189961495233809331636845256485709342351635004653666358507322600757053586631939404667249852559259602862410343073337521572483160666935851435155212691466568084133655864205196190914441411780311811794089393509368075433556090663184594992868798769174876602210724920520868435516895707562857319637692299603970400499437828419687722851759431520491005635793168715464283610908271154608792194203297068713570521152790638710520512765856225769576921996233879188416216465847251938866405181238597186201728832562541563254414750354983975996429382070124392130265523759518980565003865426917847128082585642748581888399807496599934938674196082097718814501902986460115632578132366538395577534509228568127019109174181411227408651019209038888138157118522597517690408486005304468980474005245772572546437258174951579024172695951612684894135001825997768327315237376167066767722116134581260938158027658032466598810335044893540970947656260062224513130081348126648223353026603512380442196357089552594730993182787411481489577161158274081998048970644726787196804758984858322927508248227863046349657144604683036255643243852387617629850106434357050215139057312104590724934518723261418259954197908291806713906067073811335338536456151261003763239574131550764094802485114557150675491112568044052536697288765749960955985338262165053854123545885613972675572372960770321059968151271653292858538122666792026076805985543421815597511360454915176214294222483865941985241187163203437745668904790663222353250284464644464450531790570421211823551073552427899932283444867810600149913272987985142326184538803837887118493386916332758806249557039567142284095653371462175412650487594462327342005082356482834703788115321665094197816675400037872152227843603607608443053434650982784485755233352005201497830866786827150806984206205647787600303399830766822535067623452025720173692810545431154180703419078275745916923561080375302275342810536779442777103643444937862296033414935234168036216407448254303085272463835192757857027122817348842860731810986988301822307067057483571628082232546107401861444026729741820586186446283873887126075019826271812397029676680119127322853317466309938345280091048876814842080945694450750031893093426156660826400334817989723344875764326526030341162631832235400052266023399139697471764285488080991607711548115450897830004310534296219143079661575969398881606218256904381385884007260053285574094740633607863314897645901960723566154834923650925293775394635436937570740452272177761664591750767684359236368083151375657842570787433641129381970763685093528852013412030409830786924554824659677715043876042826974169628056524224019748955653812438792302723265744075112919073189768552399080789108243744462152796051676027299953232999521295997422315111539984656821598489478114624528030367513968785841247940304850252193021306593725153177381586082369788345968401177053021433940587507816645452016285312420821502198542605285861383632959207845420017888353841893806041373655760698256048897511029549435506837312818987240642209994211537129321247508789326832865032569552414607631979134548590335993803438148939056904785462197172026527096278092050011941171070550344402085779068148358831903404471321407672907389851430698987493537847828584546201877466077562692689833528267109276659282038093226187116008035491279031042450007616118167763482577930445898488546890064183232197278827929834119215741656622130676010489457324857889404112388322833215110603981948227050833965892477337593716696688441939645272273265168371451802804822107363706819704991219295763466356655878881203421065280017838904266721537571751174400381302551910588996168078498834148555221806434783911629519616808148383700015753401770322782713077710960682036160201189151987156112755986273932004435001768079543664594162222616581693688900822482507992848496745882365309228629466688485986278264732403424947806544128619264988336465578051290163794456095127526995071003478673500447937281547798205666185059144927117235643456339935198561164812910591418456511035441694642924812354920031553718813558732981954167187872787446291524327341141071686430348569143098184428306399013479196259731289703556062545624045228505106151020477670933332811973951579776165554410249822987431891628796270449919718907900680460024179364378391634837662197056959898018253913788201079729820926511156647754061604627828215823917882598566589635802545086874730776913089354455024527899952485994013902053027864388696594110308136640851757032858684787967926856977824022901821339465508595732686119868439411946049493033662383347448657398969471956761434290102806840359863299154680738651887229944611618284923334714555509652258278062032390981131922961644246294098260125869619339858967052325111604905528957245752061281477496007161446254435611233292966545144625668678566381801156944922879745472948708572478950618651028498236116319317180579769926635509148442245422640293379399481059953324873796605919192362342917415574239467449304112795130441756634006200195713763543023070059741172356010435856455254540809883807362592303606601350386937829396321603309981888249279720243761341700485512204976049405847377432303944865719725546939679387805259803586892565968555334942864339394845453501186926416915016108804274287792099279974839863300798139734655448009631079347487488440123309593962152070120053839411459386862869913081835401880729791932678280094435239893619124132839101190446429863385030313347580963949010084120554660915564408416005053079026412758579155467897923527528572240078090655131817135434655666946779562301509325144714043268222332602560975111955459176052513154132487091667009973339585045136427676514839136477532759775868721461474149697615686128787797859052058200935594444791535912069099268546581372615496629962412635365569144626610735033369561854782988772044330944941063502045199057035396536732532129093004200549993084923415368654016907349705313736205858201134857253065757823877000706019911378789665050197319299434120079188817466981601677624063930957873679547105341632701109236433576394044175262677989344177310535411222033359889366486687736749500247946053716625076012362668146694255412836670823457609817136388963699614915715908372434742115575304688106498646838183257067520357985228964193083952331164219135898945043571374981685583925676855980592357065615513681971086409203488132248062324340724157271024399850433136991092125085601809777623913584025769077617909599622956026827789145256078692408990147850953157852167696665243392709524391396392094449166237145744164009582756644665765121816095701014737138000396545775554246360225114358272523054266867212331842615883102480530109520863784552346130499651581827363183891460090554558362069143271389299064007430837800746387510800517148093406549773393458406754223160151725359822686676597109724416749838851721723349178046111747031766452107893013279080337305917830260983468607709705006116338776008497789252564845604629638338667325619902693801074756878993813374371082875199353374830756252625407818269815314629241078562391381187075349946184971326559306108348200985687636235617813142168202895672371365302095052197921995538560431781938481686750922795003688843145427620059991821649447508656376212708147178197461998513554622294081677378430994669565135147458901400669629300566443363981794852696496602312557426132018521344734787679229032708945448062097444644302036928721372990216515105681215725327333895789119652353488232434378364496642965096532089310670155523954552832200009678157369740188359963446979029460366148332310074694192895880066240485766642528491866621382987800614689618784447223751860033234313506817099508806956957826678407190066579833210965001897035797877002364622693573122091915227817843178932721573992301501960180513063824433992336782294807508830891811338291805061951796617818023708181187979358888364449685273554951923789021529373670442632807897941186042689727953229705484769973941883387208969218384149799238566951581489451157224441285792572036462943862229755803286229650262358174445951297798158646712711602134251236800525104188720943725938657459934277139516245062580183530936815365385922382476594218118365712323731430317772609826967692170739726298509318829203625060844283485906045345833457159522830084327521400944324610314911028115774363575193981667183520049071745626599290544832467190060810184720719597437101799814730894576587414513054006052011536292731125612805736651408475547111942515620807621094142969771960134776817098445405924676767362276037699443879064249802269898440165915563917020185754193931022439483560504957578024987904259676604667516603046817148762344425027549400756908584792275162294026350099276673176204229157779460546756549139969073644228645042931643550571622549023493647662681696484642401486565120499082211825935546733560891784036807781904573666555609323909129719336089334038366176758197060755023323530364683963125027499424018708610747095924460837628741119997672647237781685727143648397533009258712335099336070320099084509180447552044262912600291033112058814335835920579777626899378619235650300234188482546172791275128051475845216877683099456954136008452012850838276775125241602307699760986641179079438496417627874155971540472218668456212948277128802128643571361921211996794982529141839214869210827460009314482286995864868617103898772387636578879098970603343284362704701647602475957665547164702175491003819767078117092630901052107549052437640623468198953114506180876933083522335682110407469204134907626896813048909833545044518053261361069776257278063503691889389642819814554273793799288344488439567766350556779462422693096016639113172747337637280022650005949165968657106260559520221043041017370642719858710759951051031705234781480228612400776924029890536198034561569684362062994145996198862347604130959582534188694675428684164923382922024182764213958369199123659660906319492302697592695741356358573666455165806333415220480071947300288663959744321348414452779631792442319601906202509559943922709480055465230860169599366341818351327506417025158741419963065557731720051658772909818362124012540764999462984803450592530947441109588110808168619754446224510310891540234171662473646089901190012495039254626925203198072040496932705821839352896006587846168821541531572884981455959075436518867297777696038394270850870029907288240059232777523775393057723507175658056711991808663549695397958678019730698479163903390275643119370061559806318818175557045582238600270705594568121142377576011427387438582592236970629394929424541077313396922732953634049564777141267417626791385805010711565422737649065826493733555245314777750335198103937744549557866710307910637533375566494609164610298840661092164684813523244053290969050092207319552176438692770951994084751031925653617552625528109720315575297905400889335133062240723301104475057663719860567279828643966038798344611709750852101552443929754195570654118493291664544734556165657895534799023933194173193330958743292798601712868739516462635435802790429737763836943001646172959249660724799482546681320571546477612317377091652450088428520082746567815106621569283144655212515951727885792820671245000298566599629702579942052505448676332903125278699992588829302524195304844711978573978537143020457562903403113508233941816215731009407183801603686313569271041370964846310560938866109650531116590797645386567470184806768291116424685139682756822066758750912054565137396451033573075580177751359159782100860163879152421431137259526934951004409880115845259104052188887246493659507995012209766475749328349892958395581294533826031724297423360823651134910169283864951704106371645885567701835107443325120651191494280549181645233352492659252616887666226643463440912518670703931177169842355095231231113217958270977891621628023929665026675243020398904606109050008855024519736294163031981928725874843002830865287944145038575191084964418029469959246865360706399300814698897884204224948139262963574254714737928504284196800925093076333811617233854071586166828243759330642375276552547725006070444086201477655008304835128790365043839850730224155880688964577617311054336943552723656709072186339989977979988814691351190586461844479479253956712296330597363910066728881099224922483674273499463053324478742089206273410301033420520448662326922971654299780728105270527333467986602496776267022484932440495760684411655526432545523745943239238309091501130421478742153506914718776686645098957764549221845340196619953793978240714026775035530197886754556971174979562346440657776375859025037260468331199325662437508940654287866270255442703972183577944844268205345320294480736680158939780432711577744218094760453369981041341226311428497902793502423258561528854082642959808607676124113579469771639638515478719315031842216206961850699333102906136623082231838239556416501284036438224516494694050183946650849002346656059563795616916186663685373587373934412737523213331252282321141480467626868243399462929167589342930171161590765462101728865270978805078390620611767940403154410650467998284015089770849306246653041671802701639546824434994332478816121763714034741205258021741577556011280599390631725442154817900296232942995427615408371941809182515195696754040846093568133862944718520393276118635173656860524293083966496520132729505081698646919132734493611457701717382684338759220218971744009833827802963411653047379499415835400476204495228204513304812001663308812801392034993443801874786992655938249060319723492869019486896317496698470832940452588835617160823414147119172068602426617990172590810850858938270261981347335503003790458425289205174980983768727163417621815445688842228463081473367594953032368628145241979620740237983978201446909201993504778695001581562815870657658292501822187431677795688254742436018382493983912095657582110972433322789850845542469265682567450201611146494335041760918295770005241595340950520606199904206078728053646302372364876419326082201579923282872140502080221787117082200942214483223979032622488787311776842166233266289683416497710449749741519354223977976739351707860118775347426098942997595346095272976208361602942163827533995571664480214695953290345973078075596842316383568542294780298471339626959353298540545509767988677940255059686549450174118673724547200565227594452805089101647378290439361001525257336697701165388854303631974282577755521778405936433566919057784152962596653417980880727583807352507553755756349345882118981289150163793359128006722064979344629443000849297622637786444973425110401956147531146734870755057060050075055470045783867183992628908911449220424139839060357447035977188464803150043579630528533556061388823434399441837212695738186901934070246944819150787323045460321692689582984006560039539503241984374985574135713870283481597626888798775727755734520883273316150372968212685872032387931566718428971357241565995236614751683523441550988932378060465077119064853410840430858741439548629786662785155567771649505128013919661631475321648484418668000996193654320560660289092127923478952470075412332932633476552870624809158809553952789185764417133355970222880883384459896509343302134244984794542163347024948150082368318470805322946641315592222289383016232799915347476590945823725173083582474600561200953272476631842672155503425066345036414209488019100988174060413708367586601302081849838558703725789345234417126661237018667274191582061083717767587933613184041286520944163899208332217312991751552086866431062144946703778015159318227105391800864661256658961590378473497050934047056507766054183515472746507036686737543281187640429153344659990160979978529265164774733167305460563067347363585105336630670065060264866597037484349787772504497351143879214131469420380558045999022943613714813119272687750251687771626427480787184515283162850398269844877398374804883977571503582290526015481887793388734237783626573445324760980600547949829640758001124354879126712615603261049419646327813343257348069585349491867946494303472064021848451213818429288583323269969930771087672688653411538046694139766169394785801237377236150176724452779680598733168945755009061891188718884198839206767184849278543507878492379857716570102830952440948855598749028842445257054791171648340474515907303791862753649057326350491267635453024608032998072964378334604491224067932010614750328178889779438829200838130932905138356280821199153723174818377190196429373441936303044837551310919814097948719758063534144882853817282487857538205950116898465950819076337910480040125159733803152955180397781001240673022376051593406673547983651172740317378578518192254557358159615094054996635262198054709285993739231827303621268204009982936375596185252056120486523558855301002449528177857657347979092182366220312093568727114550975450057371517631746529001315390434124820390501558786078923387931902470098214301840289121746893595076917784310755071780922419070277641139755425345453293119432544497207753595794769102033499083873187630015117885382436100970437560500739155982112278780723961591592102602105856207398020707079593141880780556127064339201109715127599605171152740286001637278358315729041355352504225606425977563076629318484982308812991793726296624196151351083171396230264477996886485467410095302248129796538424966947847214470433189561385382930957343276134600161838872702443866818998138525490029502780971554655121045488621729887567640828849658575098860678028210180269400788109595023722568942718176517357507290729931606232220419372759950150275556200347788493403367728200946586922837953274393164726035859981450367685221816419802272868773312097085360525453867464178270115055260183221077138416698711434515015151062146430784161625953928399036353213823762129659892737009146416866341350427069929034485944427749019494656391722815510931048292392601152880447904029375686180786873242182331550338435034641829441701343498547596512516525707006504972430722255151033370306147133725702042283584411321923554698613404669469947965257596631933951440781204184637813661057456893378897281266966095269741926245655125364892126700043498188210400448608041068354871458393529004579069376993032086877292795708195227927243575504613237144354936913078991815415594737844132194400611878813773168229016648685964492456071253687139435179292260168769258367092539286706080664432757105898107689159280808461048421557825284346783259430723792656918067638326322103811172871409574772181836068075591630813105292826360344470010558282697933687087019203413586172472862532933369874606134002601346212759429925217466333678224733214595724281755043590485000503006834265445148105147183202146957118280666137582530055844877917042832195536086849870127169547659102244344097337440490647096428839988542120792990365982665436172067081878365918299786253946625354789143979680435961482654011659220182271305840280088163173681339777212092719110438988728158455526079270034852088910450966600509591524900061165007135570524730150812273361908343129733851242317823224912401204090651729553505829891557345145791611939950954275448616065595183391833346072918683514178736872595703302670899649887886219472057467012566268002864659321931143898243323589282424625816057248575522089265255594925624796534306383745580190490304286900528090873702415994736936092941046151415361143378523455410051143683118663888729398348315465662829896840908303977744974900063586933027254072596655228820079215904449125299679336229787578670652957918864582227986155324764090665331018160155982214606501712676148990668103345174163620841151122509798268360893045610977123880446943849908195018273096882106037917721562916483972248498242798025720816773681584223177304960496412418417587670592062440529074807902842429753458151919701912549955587298103544788882241346022933317755027286687456293241883599304807919436379814179611225461032509343585393361289117235763058161717806565027370913859532861635546501706763256998557209935324373619223744996496418431827965141549912185980737002974938846915031921674759901833202116789819673696699886315097082162684883918848155723068599984431266480646713501016292419246355461567999500939293143806107116305886078034262793910674737133682716314360449319119875495014061652745797386583638343573729019846302658878973095442316732281989671912029557149609653933801028411222256831265687650777980702153643806734588443354706171676497031439149969355852204941616779372351504883545458922868148684381027846037868011207908151754260680690606754065205855827935337090643489848296570529503614118561536855441015613826722689823962602252978145565850522264248336852359820239020581903404576787723233235865586643781831505651590395401829095700908487242090354473715996137623188662272079705568983942253042723512653047831421570089692419670764953822418394323793853512973077156542708758546853682712108724615737217020652161109761679713651949004784970892619646790809463154540012750484400482676123107343567832531838741836657738186141164497527451212125171219508496065900730901013551850661772741320768164060292923698082140337575009318120611023534422943627860068598488230544720487804437826083418540855620770024373565555302606074914112297331353612264102096730527511036370162146259221681530998740691522321573633165343666366563898585188727237380335924206387604125693839600264177088997051026407995698035563314831312694917611946271793019049384286447272704203886122117858296553678289130590895807272846354104612608112886387951231081180368402609040090897710472621989157687930602366178039119694130796482948494008460728614081258549412670738953147167584139433479703833573777375198821068166003473722068770610355096393025447641649937606829783447513808765315315823392265968226512854550315517073372415239263287623485477130933808892142866409175375265043469171709801415688220761567964965457366184071984735431271458662566186037978755877260200347774281128255197375276502674065270541433869964248419640162598402330940673471913168722863253431101810184055535241712532039725201793156036523556874389832835706827251735937741807269741031521702958664661682267107186533030200043841539689990321629108488130721260945994346145876028854863669253910104757089564429944329902398427123320183570469497884894761284878616723499485309439599624061839284685521483317952908530839012060642378637055678948618529059730715340775374624577583008720061165515343310710486838383168410328405445782759893397092662999141243953724749731302164403103670362996800994183120494886970393914119144327393868857330465028363257476226041319737454228259302423704461825733756042330058232223951480476245721920510301762504429182497056847571541381207075831563429707180221666404213697608543908732879833179924832439811506280925546013086820579568751239968628109013358651986283553033851889062432299092960744469871883296519249883968314839054871668281354163668137210033496687985035025271394241274854328898454383195839529950939572382984687421895079356271307686433479669365503178795388119783612685943105690479168725307517100191853659269071941244284685049714691965603029976390092273008585867202807395374080510261684936136464353946683291258907884457288791717585742835705679728791778191125851309050034529951561953107691700330567706232730519701260169937238206027209729276366599628555138651186640975192859772315005448381380983565868006964654825490290850090147195759130226091713639006285770919027187469102686583542053165050673534199419484075007040183286188941093546208504761616236166805624360465764179233442579655701067086343620653156821479132975515785936270873533229498642848065081308427242324824959683387212091474886957312608910697337581437604245040093699668393000949826805933836982812519281178763798086162047685463535310123898045408911364216349172867756913575827281931429860205143817039968090744858965668085934868332159327696302457333524274771448769727712921202386686925146613230311686546223665433264972054969874868364353154543437732169801166574530046655909025901695992872259926215839870826613010593972699237928465391782494900492368033189122784390146169611904582938725751826567503636735849084417352703583709386427811189424555862249875613701313210416590580224653142736388691030814050864337594476628201011761209947714917830677016716991129612280645562974407598574642255020469693617888773297090763895052373772400920433685045805263652350131110460589892477207264061613861768512735191488579878792190802410933946715094654326396490001352463887048309720452400354337431260198401809068958736656952684815419028925289203063849525260851805587455903428867868011685564502074924255743491485695029477285799609428898654615582608634423799121557049501663573295533524107557070667995988778268229055154200580000837222952472515337794091037062673206497736638688588178352955753980333359679660752168384904155415197137246558206002762229530564503536293770802536622031661709099858471464226088879551511912821107831709472315409159905690045753227127452521523983847520569210640786814547978016458014843989490905601622310210235560309297181056514425735230546503413759530805873131633918180301851061698733240608018104004103525888287497929718320007097549580416355936406921250596001661092046523788986795165597849655436058339121835234060827318367715234318081462034490167489538394501821986265516455563796463336970233809657162947619496918252651105366226187415910082361906060633873132291602151417219120594930272866409020918795112199083859151581115760380463366994135976508155783564664733824878539254195304910844609782201673164885952288995492617529693393245988646811823269901186820017804629384059048001216311372747626467105198827927253027091910113379630296994366232617974654400211086589194087312328342405094597501560442512067979190578207418729138214425555457789887612734773858470028537648172106145451264173333749503014617365930569646922475969204191991638557497604002267693482163885411485501479551007209774559650396118004683642233284694740468480817803612747097413779877750173911553200302918811346852419842958428580860872965342303192183346422371794608489836967805563056177244866654342060766578447559946840873487461636357531818090771136089891356466188370727322288840304115746563139977470378160073534525068210463248867219536454436448511464422652075829894026460569077229121283689389593867681912473457000640613495607812446073315265305310732254759453558552442041558068280305006302553314951664498171540000058863093238447833272657485542740380322952514502739643858941473993072736217721112457578717767827796388396261713076224671417760172690505298760260842632518103245229811513411115922957376861918112128809456906224948767796167870422852730538158685862256738360019803552769126814903373511100415063128662791678732702058371211856832717513720329765016132922998885592280561055292649748700846096298299318797415404789300901811393751868020359335921263562473325773033366004616433172180615086630820363247146173945383304152072280202792502386019644094812604843111548600904489537327537566745159352940348172061728057842194749365453426175146033495716381543613433194743582460951553144225987478314800945628689346334055176926506550987422072231756150416414957667582844643831798798756128381177540836573625918617392527007302254305383419019553002636794325462470373350354872898396700252675965956236904815693362475991582273237916854456190309130077786211459265400016030034662703861383312635983554958271151745634699108385802996110423593666478928920767250252359108096365978766579847467305939918579408115995710369816591391853615983860764297348129972623704100136540588131508062032914470074580414587483859542829002310156241523373578419164954991922345654835046285780936793153209477692497524237280680004572359023846898151313666909599453386539511814805800217564339368591179380357308866964370401425485913792807965905152148278306568858801722857682784259938318952819901652214280676329476222897847650756072169718149174915387593195705333261682247458465582068601178575087539660006305792748658471990897890792432167276827159260502296050382580115171971431911757838789993433072788071685709402245610640374207849229227850671546207917639459757754512764278647261135346179585763897578874129490195696409068208921075768065644667983777305150980673252012347115007537069019192761854837194741342603614187181647234047087177858888024295702223404320235138072382694756469322970046404376474505808922303716164476077514314958633855334101210523591043384779690698265501702012231603792881432503330102379755593803201995933314517053365630624206244453689868076562801797119173103656263231905514250209187465870326370130973563071314904670844064877418241131239613469711199951127269447835031354552922962606857014676496773135678450428365308630124289122398529008446946260874802118490955049733183619501984448591181838611727860672265173364586761022961480796345000234467921115035615507591880115276969093251858631858435656647437682916414432586186451278778797940848478156948222144684833484217097983690616206231779426265189563066965363838445327603581524014899686271212144155525833579705952650626272027902693891238089924723650650329744131507246553055295782959737393799008425244709822304438851521222491468607449293831677766571301955049670336450109504387958014527146178368580400138179091138995779374313201416198598775143655944284849740797244808886617414381010933301987743103460900689747471601491734630960891259519404636313868709312356703759057872904824533828477003988559755958944063791069087329246410823276597114205486019480860593453936695117045179614149112838923271583749761445933589573288277007257193217861737033918285700141957217758295892998832738857753756440246101776773843945457513987166409982472682351567727607391004712361912143234080616664682644502233677255255364901021517291856004359374144021292358871853092464411879041840126537774705012215032630629819646851882652332142106220319105286423104652074180689985498329396775595005897771379918399914521676807950136606150586716541475973724103103533534228048735771598511747059225734973379058030140576740719447888664402309481231800168691405667526530704955972785378267903601943942224869794943634175361162054291112370016527636055077338202047428506510987593552895123904675396043513372702280786113347434508441409147505515092753174452372961709447089288691908113588370168906663895930766774798732232649847901742101052878310370582701093769458433719031020638150436371018246528706521442440976589168916418664368458945913286687097625337419164469987336715820706510245500351706990968060493420735948520871660277314648949061406325843763748754522161067552026361266745468805340658674832950631769303570763385599820362041747086765644374254560248269022218710192594557366578263467438126442041862972037277744527032258476467851397419564003542718814314793787031013617843904604281564373883892957234374673616109885193230042561097428584679670407759111849138477543232659261849670349489314506126420118128667644273620974997714459937988666265445141834598332989446818280836762298816987334969716589520584670286675366597251975633950639291719781673442882009968675052742341503902260406833655142023373283759703704851876260267178004607501934068394369342103645366880858012321523926819896400059762863269412928911924787851590190800518438776629082444305080456958721338656188548266751707106103452780135559488635077964141831111382851672724811416823976648679400352586198278841427045055854177307642291011978567452281963434338199379825430411410413375664898318818633776804148092267276364160107762703040908376008849271627260129268406168596896034712961889202459850569781208284517636092528453785807060820076308973178077346911689328159243531362404567761089880853485000464971801049277279918443084167453134618676207066010093403232501326539627571035972667639653226531251530920757901937587251032438291473466171539539878296117859138049853223786316787300556373203373733071603198147369706672168840446649870917145738597947542658349103838393120384494217318826766943887782146397337048547244664269337150882041459199559838244472421541653883833974962832781710075768472004832496042879522877315626312600379897852852242451836097921738716929118969102012033471839295385285631166579352185679617311790035086893798581165790641267161015084728052039820604596280144105553320225330940653569921402609223339026471064772657645104709073395737489403196289017310136845677908989286319721727739941552470435423200830597136791435431359748432271883694369217998250350220868047274435759335931261696789435173907092010964869894533049586960308176374050784939552390855446213649205336827627912613574807510948828057224366724516860188577732168910953028320504518067675543838675840329067684226256216906453817143187572317585254417852107534903398761136198044157967065173890815384604786073664524217590593806018250897478753627802657273085925394497364431409890049601078133079264804917928004412193901521865024982471830171486781586973531227492929410565087774569589178495729244344204241097332484141894876042627882641978816361834846501768064662170514628203758144819470031694535206011147701801768967481337567742886849191531626084006732620593525693443511136781439438882288373643339298259931668313234392313177344876044225196786856184969552566629709507264841493241765955043326794065718386798607368852212322802990007791024947277560372312278323942781473957817291556768892734720355479299228662788517491982300115350070339205500122389972283307543294623603446990024062976317614927249910944521869597635481688783014188663312891392297321775358804417129512156613731662318757751006898864095676564346956667593305519235268033761033131977021762928698137468144789354379798459736058882753780138927734943719344430509910402739138662458098633291595321356074171426218088309814767505358329368248516743012602743249753463741121992346487722671719273381521478662000898914749112736528456475020003043753087775833708016035168632181163214161420571302534362570159378652588460727233432036000772329415556161637146209243503016356058601977993676702046091490131979784728912244134190114907230149805164942967576269710385299618995173992930238138507751340967180606008148529778289384101266471830744453951677867622089762512688028207560608763850820544496198087123894777631299459055648031894066344789884716492074721059859641971249530533793076315657883357233749574608746753880305347184744100425250964841091999245395485091662554676139915702983257445335002614680340508495620219858389439131741856657703990275254258991474528558259713262741644916388715443529991345873932216568179147992861251475295638066652476867880150756420798877539265128516382685629343360074906289886061322137043631268670024271307613207288405324866884888600089443422220240830708549857900553742342857827166972251696067283444951453533605711596828018688101372600054068079196926862193781924732606972481063373613753230539075088658252302584874123506849074824114067383061455743263620707023765832624435739818156140728353902828120319536740654239442017493746592776665228403762063999622088726557634284958756048835414672164956777392474820592139076035464939205741356130815248086229000115843026263516192347409196434849979851296917087693888040880575022749990116431783396882862674276521649176477302374146528720242231741666994833884274351432915515053602172868447166560192311713695242697061540078907387490712721203759224328606373392014119768062462525226089416505896650914712638829425735438738042662718767178880138974539040332653601002832656398973642640841085219147702051608796460830841156387254862268344462042513906503344047164063959714525446888013554347315524855415421926884525295799871755946206955922479960577716333029418077642492999590594686858124357414840463783191767277187988664637234419292340555793671065321373253891744792950165859200507531564179762098368647341438055587113736869199159828233812112537152145103141450340219053398694229131223470684474106644727990000606327639452107521996097018278132619352927865609799982017063688684045704817147329104997302207011199215650172017528377301062719999142596171594631765084662088988932610337966407735720266282192392548509340498499980327585391335085209837121295398083908746940791868029565569780313054391822160179991565152945978379099356309952562917363152370204970283673559192769289774575635801306179484737489502881727887179585494637532025024464233589527803155464141738423055728377123291507462344967593562671509576122885924140121664718260767859635611997553194099769058459487320986658289050312917947309866661479813585291477026215829190910530385807796669004493163319253996932358496478017535588113321214401003040153046250325939617623642638420988843989181277963556060605078518643525057774171444298576568662771709740051814255010996897867012983704534402851713399394324714014516062846946289604668036836648858499093262395102313114756733558931747723497572343805450979689935748825192884673048650098113609904995754161987067130509775639490576244714446929320766179123852009160733004112070920504061859197307492067564683144730332703430317563909870212277732226602498981968012264960413547524945114232308560943310533806364667708406713024158206379277213758188136924938260136286971692301701757267098948476597179014744151587174769099571382165922162518818090956170028246033473306478062070486318328954886286062065498868573210669102791098461139901427662777246128503175266290556017920807320549044313075151023345940776354917915744817841196255102015555614340012173828902738336694650328075556110091530972891514343331520548950956972252069463075570337575229702014841998092729513095545469614634989454762782282505958477099950554627083305002457687190028279830289278106835262503064597729349569746852383994866294519487070088050872822118659270577577641434751868454680655918667280634798893301514944211065867628782540482573556458882456048462584586787682911066390039915819931215488896855256325792753027544829883786933488817271881743240178671366367934827294772328501864835612158391272269283650911408032801761422017150840522405015599992103030306373499254489638919843421655644143774616506960587772796273634708459355964947803583582861592106560133886455420063133475499984974560985734946490042849287158862911595847763024274207199287834494637768939744985853447897602746031109826251974622039310788067748933239020706285274476970943124595619978642581330092662429838760689692147262112878611471122985449691288656688679723491581976443915537678310800900726212571540055332423590972230271611515584768241630097727814199332508458914011854315228331405190261359048172649734121657892386342571140850290126148454376450162724506691387587075720056330539729907218187178931870578877996844413293380709123484593516709673070546542159512127613032210833818002315792855237552877777047287955237794313927061198596010174974522845204671648856585717126011969362432256448623792502359525828145444728824829253979531577980671301418925830149020363139228777431730157217885971886604406644025802519561630146243506763157156355731641657263447244012288978568203435515395899211192648743647294489376439192469054112687757398589623653887080587046032319917086272041632502679443611747451593152550845079905166896693218436364148510081323276768757824245117827773792346973909170647384512252068356467152731013560288709833216723428386369408016492333601696465873696670731334295535470252649636858683388925131430676784147893763265277531636105512919695074251120816491979229944553631922250982524893218867257022034395262317597128520482434275197380792466935874773930741525284582561203244358741987155516817785582290913142210550618247032653048234730045562836297382841712417646021166009365902900985522159981559599386030455206122652945519315207414092034051712807223636614481226201849264127278881432538377841263966671018493130087963685209977619909562333954343234387231933304010815284497585001732726561967487538943749569037846587900173975248649793829615545537400141812005808847945922034522953665625157010804218791020752748205552795097419044321430435867274157149151558677924100799677819020972190405638067043591215399347222937457922952107347042825013449934659433124490213479827561771075566931017555181298969356922180853861476920995373099315827570772551538876120407963805697536449958377000678190957503537922958361797282497619842309593470640546716294680030980704307447583398501399509681859599731532600116492005913301986631307668415212395019324842866082021053266337874798525214057971674831304219805775840002550945444968139953677505555666685642588093419131959997958057603472293945430167153411969925261663601416581439972072387563162747331494178691993489904378225990128632117579904455542493747056147780938575929346178369835421134757830194057041605939635646398649164026626346413194330375427458036529079784120607127776498162781306135774719369191072442446322568443168701328577001637845855188139881939758206177540118179930312309903880256798844392187199754120474742116620857049287320811260991086831673762200262798434587196142062996519998817462037126731686000360250522631827982949858748562766976010255576626109784860195122356363706623069818110013665792952444748843635553889716322005154426028187503393448868274361483214691763896492078733366594278083713660976648560145972649158043026261633631607661600743385785731118820453324715849777693003583227524158156847320269546619947337201705712417007853156378608829693169276308694348890860194348824709041744521937629720620309908868293767146400504201565378331231295946573893920726745684616047471217355919782511508881423104607733126216919748284237544306391859260898156581073012631267858427619703899484272067624622822188839494884184231404157337667556015584122096752440622530686152813447723600509452982137027662122216605431274994280268408453947380510200460123102368498119712500097307697422855633912558372047541729032465541422863543047391102423272659719736117206590216167381482966400496210511450563136564860936970441648663242845281955396137319413723483427095336826978903777156240230301080219439531449828884830856848898534697691546247639177360942689697157123703603785141496433507204750012386820747453796612975419993842711501623304519399876534138151918069535741062798089371464276815801087454361197999835124581103633092411675638647650452564053452037471449026334446150050737109129383954470977197312126259887401799767308249620315057384065414802524865233446968206661578689551832582124766351641259320072636274975273882524102825394710080544675998760953159726034187442573609674848726879930381355006314680952033393316633922666259702541157720588477979604152638783858751135107758400908854756173057698094298894271238546123517017343607423936424529277024638342694416670311164431374245020361231206842710043192574622885593695723783971935080023331395861436876534715968461568208209885936052747531362951528146246680288684386607240071422380666800568966301165007245298532393377335553430846947845431600889888334192384208395766014789703453505379324371135643065422134693137439750308002210633893078798010708912421662695077132704196171881356157958172504264593980418467040562391549195457690628462240469209476792469834365760079084214731914670077180381456218692224487853654347385834200726299707582971006585735124770034039083690851198546258950454307369960345368674178935926436199169022111815474075801836258863031921205771046187118994783472476593667457491569918290769370896190113399514005838603171568348670380342045032497677527998387181731988287830601062023725453315960521136056953267028403302696680222526857731220330656138540679456589418276476238296069550553813461679903391911936976555342382579306812077751797788078430899871288676226028632118995267726117844913221489541153344036509449980125806777668958229976860268836305195558237932522918792535250095287938894840305593877718073198052183821537124641685586794116731784278569075360250117142330148932452068538314489232812603867165440582973121992169561798781597392575427223709558404211217855204453640649992181970788543738897908847573486087061115971593824714926664844523251249721388659710578740589896139544702150989824500780746839777597742732864230552673513146036282888534707816919903856750840464497642450957595888266831957784485892417797923528834518956838135624655417894652527856253331820864425787861752092119975963196216369165993581740429042639671006792632080322112905503234007875182265324529894181880067526163893579729871821156427443660467629524954496949974346339142442062362678901031199004415387012354625280945320876895754196289784623361836770195383117763143608271451145554598782079679967582080395227844994341856199052585622392531137105181776013918029114690938674731228677861329061202094925164440965115058345993060852760188433218972654249749317797638949773394880240460927793256309844592912449718094408959599033981984671886080984584527572720207588056243565389601006881921428432053832626663555425107439909093653386326717245741202622896242333101208238262486663009544013165868103270760073902082520851456434833141261450290750241801427712415859813191555268628758640511003591086663392769412527594090524416865231703496203920639601791728496638534483193640795157872941175440081578047548800753160939433183945661201238979486981890741745033013570959407709833400373417342365788505103858131163937528191570314446168091955072064528225691191146174438174806035694538794798554040492096712595790085929224283932543281777495139307002070470126596656231803680942788788063288729212385584300822164085392807877974867322856670265738342772306268122336979735216348207474689880998005186703986799881914430017121472043117633348995152463363916580238004330606922541508084617976656991411517832726115874474953717784563691638819912502559905035260533616962582503198322832409580716093928123965778489953570996603096556127326136752370620600735320297690009720706003911629033400821148393166633392870839216984153210762427356736808415335868117229264297177335716204529783130226591532130930212329386824601957510423642664832194899875396819731640922167777082237927047107325395411918381529170540163162442554148479843637183055694444414113727159362601770604787545027459185874344520290389398594612679307210092568475342259069534698804428844446377093379808023498361693882408991627477161570597233710653999247778089745241410421413417235177986140873658324805174443654031891873791956627355087889470011197015603612557534980556451344395613724291818559343689559159633146564749093067451378663692675936684390279996091216884944673006212530231982692771398562563761343534356066013431860128482067860155261134831891702335778182524829419305337353969830499270417116424922443440380689446780508415338468773114480972522885455505289756156952818934532013470793584026359685804328749830467302804957245195947680364700292411159517428970115458349486423847266718983979783039823973743443953529852653457515061119645564627838581844431356825482194151502366900737753219812446509245987633494576645684886814673816873429974587709788005845661511568509565664160268162491915692910143289111043127746047909851451755388715714026512063449563416937457277628400281251628401218242087556153878498319565403757138649132711876531293339684979943683803265810125582223565087203985120043064741861419834684206956444426446963502555793839826611643927317200789687573319770553129798873197793152771875256002093743296841559192106665067901501989112761269633031878802500703684649408654989242961483811938813485744396530811221172061253907413646293350141935793682668616615550451936665566326945545396294387873524375572962250168039433167456068542012848665316719377744729329354594476315312589990182824253436381143367480868101322437030517613811437747502047641360759217016453327420737734598673709141373443991331870040312831428809403298218911672718468621102487927047243143222664350556977043650631402051089062565584989439487610361806061198928248459614337205001724205120058951288113331488564443902467521854058374055439890131734752243214139300301741639328644961451228472423157374964080317244724675191367454583778170850541298353472965521127825919556245424612152051065702716504631923581049616432985384739944454786151637736255928698772661326313269327735908783471860204910956717090666918819264879402606738793878738610842767536405538210374506012432795847025437186071302648610676375656296406450037562375416773162148942007390048557866526911903575477437880444830179741078691211901668508598310767606201190713066762014929812016701192641252303175781146826706002127855887706774518815254272679861211378559620540646049735408449743653435392692898997089246553001879433924508283221517599597654053743922535331569261148933846001410601146009747791506008115454122817381003741004723309068754087937594697706920535112498122500404043117607080523603762477223214760099255922458578406417844155990974266040854514279021035789401345162494554903394723832774150869830196338545464861529859220348949187384815834198960551108052222337681787435814596876556830529251304554358767931663812251059316903363258837368863449555564657058018586622462846381455234433962442538907845827778908537234515369701314119647008786483723351593604192307602220472943538727241083485660649120821312092697164525083046640541210177240133774175539111122484959633756326851877057991003713384650222757009375941736465228387210990202065555188049633259153842857611472277912793226503251883353157563420062290876019943743897784703262752275935268371331193210577608992138289948299584562004953903387527470918686660465810018784832251013422419245813807217493872509115878562242945795247364256023602790306495386919846674655407932176921815415381595589753036060027939748673362238831235573411506396189664001115194064830690509681157774955832732593162219791845968618807531156623532912717511304775130017854009660401736080427149865461091325129613534555439500203481752139706546797778972724770501695441610681880253383135266349948338221124260275869410683699495482544920006820010473081335038207121323333367802012078199758739241381041478093187688279438662991845574268420674919230816637736472452926554668861484984395966852419439314685493086684611068842034468749357228902782803794164218573044405150656913378748946474080348615316106193887790995197540328954236761677313552805386917638281477111464574185414818952329246295533400654809973880989481207928411347943027102494181710201697172413724893750131832857221259116753335781454005599655468395487044416937798242650458001234190644597721568553733785940380821572555160499412402572485139286980980134494106056448038758552694614506830380067321424128608389953287573305504673858024574737834044557135589331202622510989156252974753254813617531604559923741309782864596889109826996415030408716359211374225241467852738918408512640540939098643477802972103260969923939061812035413727612405820671080039256759944069981947925351707649097976201669966826018443108857838332922794406971836453970248932917863297127410314686583892927140755786433271944225224600792104034432817411739185878551777943216499460160200936973626990336330175893391820440643933156644885255258095739032036300761317343497702052043588966672269035773526580722972290520951836023279495522626923921355482092773699240668401692582510839029863904843429107289494412288425470496456097970538752341086827145185569330024774207231153674306061762932623694359956402962631845915452099452658132512394307708640790083107432682908427404500293609629784707489961951308321777211631749335406242338851629637154869342548151961287086963983467915105255054068314875768530202539494192757510382763898235532053583049863155724360025094742552591760365833096319950555496135880017906632268127704662220770085951973104148312379900894360808095984830700977782368351931905210357931132702535996698749126438107248576743582023408670527543915162556725350730455330016716714057295866270950533575106125143264185891470983945753237063355261949227663609592730115149855123483869385774484692295943877534395927659295115287869404204924392516423777666609223980399120921013907864367273275064780257184421251818040768530591961740868335671852233463043362357034462486805898674421857576551482595442253995226720650643715688339600668334466362308301762851127543174812588482085164617281194885855051952613889039850943725146480158035839712444349279082763107008788808398444648675165705411330380549189169413731852591498638557056605555018763995344390366647476824462367844069446919000139094891433660839645233167864774409879743865311679287788469615204500342131662448149868043313222848306397788972576245039381628210026410280620549771841107201580729461407230676374131350274696698564942934984199523107355864594160760205661034817190320765182383271137159620367745806071829348449252447386410098164871408422414929134135824239836401704048411107129691573418213723141014008466699933931980044483060791510694301953182379636576545657684284829467913659564548620857214581172272356397770838334176800576074342914865151566595420493944480039129437551647960368144296635960222369926992633566812862745144294445981311660476845832017730884682100918651976085999338863264605208936288628684215165988507476703409141737767354583417776029704998769352882784682947289378454464434982680271655767582836933485401193835316897079282229077480511272819721886866928991365673379886086226219360447786041830106630665998134490284741716928449089545851801140602103072097671272761900250400480435964372709215516132208759295878764155482240492054643116839728009666126277233233033288877548454094054713593132623958004024934325233469367196044876866299841870759022482853854152053304775455005997706218710016652851124066344690699104582385336023004586813648056455881885889875031227901631420094533459322363084432388405397439885736207883874133638054937822549098998097888442427736261072244760448704829993811775097134632546710310260243527263547343874042674212404870778282888194793313127759054342878171199430627097624577344722632630300508149193285996954286198357684062258697890929278781981678265146289024295769794854205503559385035227677702943198503924902321173729079173153193112895981064224179399734271669197853301348840351313951521293380019048909835679586670111001784467007407452574452513058691415433936157309281004533296803521073181092146328820872795009787526990969295335257975230214952766825513340943687222561583382442793959631423301270537472405861436801367087153700561611808962678233891947822512023985617155515563522934260828526820797052122582140210829334576964558490789497992217041014211133867668451620747750195756601161173364722302607744099458118611321483260035625542891319520188427411149644648734956105640709780916209625503586078890702679443078413881642691511250761666528809709351860785537101667959835958712981665766962993159407825737186758041772237494322991999793964277765184072611459567473644734888761691995314800689082499796008493284550494299516314087053203358079594276315477346248639789145910385104475109683420103196346773185090132871288498974501190842737645002353363641216303588589668899459360695638589104490655701857673673916940257047421258838485493609778825627931938795400633866582182336198122109579172422763095807819318825984006313183895480519743308073117666032640137837747470657204373980999010635299828930858658479902356578110039020473366678585414829720960110404065434590699455702949034901024428468542234583794160846614826503457902176596255939213779298659670964568199813676602464078179567012477158468220860058036366824253743128022481180359291614894333973144253711168902760393074872418092657856097455746513722114630124582127981337794623429081550455333390058918439345428423460178182281660354339756796115612021204101345494864372748900373849552983708009558370848765754151236583608836810314046911365965245231016251851955410386942593996141430892375421292086933443005957121636279086645535963173268509923255708626817521716951988738540258687621400985625379205881856758698065084217005650608149688944376645689941002670991351219912211930722377465027804722767634018499268660836249853136240671177674360369941067682753022353174598745275895773921979140180018660579785954050374467580873839233378857531232784355959393428542613622620592048293658909785286787975527303520373803140360402930671109064530291002220643317396909000807833231019266821739812445827590961877416916650873701754544909823167247936947890585637806874806164842374050114610400447911636385017272695948333933719268397502940027686428678735636037442387940960450080711092733119221599719420104361456717440988118730575604765433409118413795243877763504261516278565301150681721881432650887880548484649079007759868734884352049717255262566182175604762587358229264869550572787871296550912580816411077142962190431802237703690581084480845559114670253913881118566525759203964540435477801258064236615168188969616929779347613186724891696482119806538105095129132687729562731764830180024644863241858464594680858167683857660394945146151549756755337858327539299496949702620153289579623093390935945860721372424149686638231339162384751935153424619840284749319267112593237131949629108447414914915610014714463140189273138950487446623555885530100002181523794162787970309160176717524142807969904360881187159617874395220402217299045403075468190581411637799122657369564767361182205446222184719382675976191584406059128372475243611773964636864218046353758294425798121589794319226607826465323599323121749432696720926451382204957780163430522869686848374841920159043559984774397424806097635703466917388317294549254156585740743227549981286568276078461375014474178774279379036772108533640636431539914329149774759566419232760771452278997294703174532607090436798157607789836573225215338202067502774256146708021260706932624133627943711478625127746791987916425352697888365028722533331084966193213928203669005056581689495981975940582173313234801087618423242200928076528980417387374820960564123783426403275767929759388865078018029684612438833864142214793308885954015448896909848190579357512825801388868932620362189791062166718625985664512854608636678881656092120957959730497139387697381749210057689804127073591454859357698050144889386820515894450585624878589508774736763515500848508156871663959571343754238801015337209047686842852334920579325209226231353618505098378513072701644949411811204771292233109816755588656432731953158084698910254854763862155229015811622918816620393209274212473654394206568462328251213812317443829582155899449042399343853262364638728215322419072892593627576463159474535410617414711849301012728292092606294832392217052719801412217049678878021883809155341573726424823734215629535985880602580842893337989800438459869019634843082419051872162515346738249340970886944153634374410132575435422665106919857863608450570331380855702672830163083016971331295847789703031048672562288859812745062967326506051464797689912051458516751429434226588007774295232703043530192943826068877902690657393868723534226224033831763329129694003732303796911813894115028239625990503876790958678148260052335737296998862038705177028233204437955315697694824947885526975814172220273970178536599288661301396241272210870889306644404162882933747977226429401674074041047119973775932343410606761300630818542768334187867153176048036552129956310221072882934089529093495854531288817767800970734568531181980072176079630454815992893627803696357421731280398883707593771259552234244124503597509147438426164729174789800842491178730999520961569214637717449737854549897641724223955729290054295513340174525644140815811057862501313431548222639556255063082433508698379833186145389430184027466846453956404326727974952331245790245716957126255421133672205651631016148159175742792771636021075236166333635467638146403927886792328553666968285751766139892485746729896884867503753414348341775537480567417836547032972804740495349420890424695649364349730226917545296505867314241242677098743954893332329045627771856386221474152878457896090186985804647068127709192052322734442311251918822149560190745431586452167329760998007448978404134561014998035611234480783767685378004298049693336813939668719048809586129355013329130172025876354489508459010487716075654743963843102774464107784234271424166557251449296672687585318153437414344729556609632999288050392589032576610628630058089229958019827078606045486454628672912378314659573014875080299730494277627471803214644531183982732147431013603163541938447373328315712940463546017352572017403215123910211304291308796275948471197172689371278007139932943743245191339840536051201090100979935746382730216154331740674938650203946108142341798951557287180495350026251275862019366118746025669906236467327807350916668902669656663467079194635905315695585054573643818300478454149122717538025220384418257974564884071786987782758876655982152688049115077302500450296448048108700654119072117614326505749858087938434643329354942054089549705856748388797474135979628462795937585161424573397635457927899420040067150382918412603411158583984501008688095220164837687008384893312608812106932288958731957149899924125075292835842960005956117789816376404319133714300489755750388203977466205489101522507259905685146451614437092394369163792862227995680098421152371285695361966373079398698061318145740786293014235566764752728021298801289525806107301648264649863033372446142067572708530201129054748126385274260790228832345550164767096416091475973679725451084221656932530394857827823188049607079060128584261714857499461932071597765008737240132170025183564716662562547311154837033056517998633835671396014017639519238504568397087272500310658813940210608546854405421018251924645398394546875178037839695605800835046977491369875633080252379600843593835558732173105379484860965631976730412660745829194232974204551721412743660512877558288498005485930874007848254569288388615174091518148669783660624493361295701966354408033863887900278334764773518897420598437143108938207169647538484629753368858237259100037766260058486035832609249414499853078417996934077699505596812193591127797827383431401728676057555983441601372576241023088173869677060596347022087558318732491397241630823633865705620137179497038577591152145706841509969450142674232262987616530873832886521619503342962581644553562796837306415267072237825835670763498404735794393605357680153291965716733458363758857420073935377087127074021307829865028537183147153563985874870596691571371518014554527732266472546269516503188083082704742328871896066400760939950325800415483667957468814637324235919846253736000641808219530371804052103427954712896802527354438051321728291955845197755475099150504056377786035197329820507466216444260941620034267778609025993756240069145784340267190743999508554267595393215174877447464074195073896820695360924124141696214995057060093674922808964063772688968702313450539456285526392179811896339874956540248305943461256456365656834989174139776632007645983079142218741398919622170027943636056170865934686774089340047254742991320186867320327340331371697993607907948234883404311356907709873115973648390874185490848435504233197717358906810195841345807891153209172404703378037048136624058268220554732364993279202891694250606308359908636133847779791765776600127276735730159814416458382854723583970072421752014942396453848075408796983874258956911670625026413592028875861591974863036348044691936628128521641128124292758003913608049613633688577032532233381803216560889737375813191801413273513809122500032101499905905096138962082799958194465909034454322159043393908301027370315264392212016830236453686503476054989585676838660479323118614292886213093692014174487341086735764664558786118208748609152359080656468215079457597777220932803271986316951272313992646846530312744770345086463568873429800908389478903582662867678792406819395414946830982989588950889661456117880726913778900066377128610957195565738219763546381128888894771880582579218817238458435883866847097708191214360698403121826544974892068098642489352205222836819719791763283511602457828626806331207793759606176509720458818444013711394572006173545470572370461809929683623735712858577279020863818293840650607636561578426451639504991010044525956658943761058363610301983060735018477428740342076864954617101351939466669243866478110659391253964523000851635523676360394825817614626973611899200189577668342100117694094981945434230153156915484221041125709935258001343967672632482990986292185735603275216352161590497218472044295732695555668521131407178257905424248096396371490698253722619404521180738603700206085234152607749555374630708858315707011741477868466594561820685576786195778990077127194158516008068971540734670616643898402614961404676300025712939312061121474541907771836915573885187961394287536995308112949524616736486463308014718253815584884276053903747221424558814442606718738129782970623438027163625405619562469872494326803174569041385292978370921784189565923616357703191946664356576497887679519425952997592122509029706514999807113767800336231833783044142534526505455450947550756675783826857383510969233303491538912212979445071582613576143703096276482369836650119731458038659308367671355206770733113450918752101801517920058120466978974848998729624124431420361736644589418795501430439317444622813758654136642872747674971045697525564543750270118711493575735491546073737278923437217672913498813952602007673253943180105484689151327651038297892149658922702543435819078696239178217356779009505345436712676500365424531198015498485605792135812560255111287507482751412350034336840027073209302375771382689587398418468118347260253697251274554846928493852565813418727466617272557877834412658716962584984317735077676694638370047942406790207635126904576115432111449917226824384551574063802964144366804199911267643638256716635160096340589219940871554162721924231741081294883282058272618416789424354795228548310998257763354627120214674016899572498054090196561406623149491129669017153864451843016381291452625427811051308409243845580469156736034490011727192526658036662469118475090390930451193154506900539812258093557081600754696050797854339104846692026232536173258955524062601462165446779856365973082348407269235945602724801629852805196711621815714124943023251195796760804622427442475024000678272329300631666856331602083551156012965417959737581467887990087247844297754072651374729907484433081153984740331091652175791483819216406034086979832701615137185060331723383595623568103230747786130839638050238890184751444499588978789775464322398328586605308779875436188451680427176456128749980733963898940122517870752479625013387156037415651284080421511573005291656671743575467516572976233869752930361155225421685393788864395095562676145935985520319236806083977701073909477839550016523309225703364447961749722517346245232600336488130477808733075303835470692603777700502743456285395176683225506692713009753512836857992975577006524781033636315292037479499047325261662785230353796567341253632073521193510525169611522353514532714649652986939600235061373413893760162248235808741909288173632326826131224122501584721743173056393962079283850757086192571162732280690344134343334578484493083225126961804922804361209351959701575238842638597224938184706434212396205303818555870826351347072903983176835052962414889812332301752502995582894304628180701932174759794319151915430866677528437141554261618529196532479793246139616700669143506863752933093830875361333493302543736307148433007054518473725663389987198222798673110631142084426595533196121410823970409504334652275722050418601776968447486744306844719694296894225545106620560648077759884129877291980807707058028566443888584192492063185763286111640432420078677637765801735135252610949026133193623479333999585699271670016923338549294060976942148273889526080417540840012877150256589620469675580916519403049405038340228589575321901375647883945146706556870961612177928952637055217714739289785288291431145224610095260331697513296080216369567984166618744788674611564370910786489831505643956451457039991404678846096831355849350921818448358724080874330828045086766796326170761477108236199424507493387887873953777560224368579473838990213508494330459886583743842220928159604191913949047334148279299488393697831584236186629588020705295530945754876085798238678680890171600614831475244708449182245255578798204618575245665367799989328166151425303941005074561739483971217597596853244666274024475471087187104183912325203444556015782626894546109197656060010903938450541071391590301915897492278561866367533891587051980060620792621056313393137202524367817033531967406210755694293017641329083967648196884677491240511206037881331533117331343083856510400163251802203024209677023197333555641596642699854838490739389343011073823051636030014930740633202694906489294221813209715721095087606548916650637945916902964502332095909883927746036380930525633950323024625291167266829764115951754950013822784858068680077480514633834211864431588226311645974956451174865160979364650585136394593078936831681695697324206644481735888494445531608038756454863617030214677578823874876954948756057208912933629303567794283210886263828890496452836165730435563917223071569839515452052608719648765791382076237878924532413294166477318877999766972639563997147894092991049908677929044012705118886479214218876345721350460660790945325586556587974509239631826764150271376358210798012822016108558919854132943520976439606467212888794964016744489465947015298697281862256527691639754597304987256062141268756095274830997485348309335658233757223011630783658997586961392512502515633602465574633020663632993159836413218069161858916727558767027311176522012021130246937441889557975946578020095184000118440989667603405225227604972501741375601174666988212062194354812982986506286231660986531879638573693898158673151736905828434502754507641710307198722276922643926348802790582064556934811746343000040853972375882494746816724547285053598625766415017163070604932034467925703223608565283027322915953252889491773304893507027877050075802521032410797536650008585805672583761975449778147261837025839197662869012702636326273871339415350305795187897345611419179032080189433918566644126854794959256669765040737753677563183005168533689006680852110238465243699868717604127659625385854615848136319999802504363345206944891994669909059949583925127139278264254115801620772831104525148122651420670215681762035662559202290069844560108565088849075438543150570257490152197744554287595524962976133802764091541243338102934163442037334274763635687964623524744510976864705144420521316868920414057301865915287279814224332840873209329984785950758042284449198852764392714332585854200937912033339862342117242165205228037285709703554870229192814735393435499942710628235150257500747832990337003689482539762437716395236652927127822639998082122944783166669106677623754962040893188760047845660751860728905166772131242603268833333697256707045813016577668096228908948845837580720602132875122652320538034430885597306107859583707654599445348568104058642086940860102944196199018819887609635649035293038761494554020212129700296483516863731057802887835097952155131465300334037361146601449952240670610249401250070107919898549414855938434043919775994395981573547358940739006263887420511401972974585074910266838355450597448072367407640297404369537132874036776041459306792446813254370517042944839446700326301029206619583951761485556150035732363240763392158373484161371358039537711439165060651502605682906535652346405768425077705213012562032848076402184369215261455518911290630904340012380262368896874039826943203004581657839931016948564815989441812163617996411544963442752456936770746445475814269584787107443916856735145581364326771975391631513868878019150190545692648080650675444953009381520104311596103940961561709078697695566912015793853648762304573493480190714913298090651761155814755934831757572033435345219079750445917270619613498690384796431456319388708165813509838123810630127924687274573718724561300695232102717352629397841564611519000572926839102442785095967365821979760283796118364899591417359625942560368758988177649969809184858495341848027455706709093240206450263794273254097543927075711129914899452789194125141876466643802142860603898870815280259076451549123824232618051719250402575091366443021228838760105118516180156392454630016960998038881921321213289835934771879020701071950237729239172410429028809018702513073878181597935523745229745058908140276764854982316238999623832892673678935515575644854967022639715759114194099046238570912697895750082394828023160914334589722094450558987241246079656856544795749606376231742059054991454518502332224759607343023409962702918259643540471478659019992888939869490122971373209827357193694315914323436119427071990860004994171037587843010055833145257446866826225240783003177053578552514051424562574098514474422548292056854651022619784198082053385399915094177160152274280639053330675436733471677040301708796388440665086250060373709958755541931776714073648778488898340271936978938078892116978143637499444611953759537853462991440982909584348466229964371020029463096131558244177535063931919893349736325054696021089563217742770688537882252074555696577851533514583735038931209684369706339771286116880765505348632927312771190003821508052457011837472387702594329904361332772678653281106965539352214214451658578839354676316275864789380288620702490304520310049792405510112870741858760888876022927379502242719049917126104375121558957950367375177173188396718340836502953662713668573959732900027984465091297319119607351262385064879135994451457008210377761177979694379498039433876055282881164462120796790098131927828008216859352130673713668907637796998979612255305446280058248558209003940184731292750948645655261653048461006151134293958100941455880621946263403062455984245605111202464160358226559974089129637231194417413650102685397790602569918992247499982132530664535435435591114347504769770423600961596915879290979448868916465652953961026905109000239550136005248781437397234562066824788708131444788270299178433830200333748406429424524064681993692961445291628704150912249058074471746250773284242020635570568001028598003490521634976064962814439354385526105864873840517169877497161628582673691386449955700003994924657805065813765822213057535274624451800961481445822948662837035358407063473874205815474223896124115501043008124512339443470200705976188466962034386768802979301565007130302557599280005448299693949661239333222657081894537179345078828995507586185672832389868667906143353592184871318252857776073592692599409282703508813365455163735554095351244506454507034277162909650654219435542385575799380342977214239053412587430436751357762968920296543410530206160754135053663596777980798201527601082212483809986394637062791926872071155227482312694220519246865517115076406161749122144751390704587723762388835590651863221685694619542901825786574339670660302363609671538143554028027568947944866849037454079551055085060974831692167667127683832878625931489375047365886127294648515391850526689165891349829724005673386562001050566184826126400654697392300008635148611743512812364817749878231244452708903860888420228719480201163407849160756298857068380205409146154684525747762517311259289165030203736186494632143646050325383451237934904325828890543047046876259345332817737123327996667486322188993023354529857230979236357598733893975434811228869702734094103345370182533736012145935406429797427220549952903985252689897627317012142642283415584238070397857323392968420109263021366342472592398040261012854187853160835490787775235287304386520366550051282932763674520357969247345103728181289423278196979274033715028041459842965786621117204597030485690226897425478930184130000595617289684261367576524967279871542908070199289291112057245222704664398868209742804734752250045478962697388761930479870598627707975633381109134137745871271024560056715503051464248855568153065661869792971164459761278359120716235728997034557472559552916399242840545407167317549338774944747039502279289329233626293959465614868271487427403825071258300332199240201011114286318944445441711233275435000609759193610432971825870181385073117818407032610709977773888287331317270404503820968508760634819090548836202044832278323301143587814627327535621137342404168791122112287137353675555372525831969359436843764573730278794556852491100266038294635936227246601596009737828155338136928095962923957497587857284365476637707695862563976652398379542345166810935191725111377815841657988773362116656526502413977560319910218349181408324422577178421138469076739787272436964399346870093081240185783732002385172896145739803632613741441424701821821775849068816469320145061134219031223115109709662031929731902177750982900265357209233455353848741217529094045694666800570067378024572479600518918893668514543717977529743226402650707501500906053938601335746297513310085152033636167096798003973074811474614891812176038035832505585604432370037300144591910230229187948106385590001308341399088343930591679413319041780303343415047082240566335796834516737316362348241210042332381716398827715284888842707312565696391470099640633832218336167614939583382504786150531430170884239223998386976324858144279177626550132168061603205192985144322443071378672452831004845172091677712546630798337934181886628335172508489137773647072951155036366444425176592691646582609350515635131573211134610845320789455117732748346007431575465151426511128585346294997228417168803887876204975346429300504483540330491615420973851015042836453264467741588910967474891065365844608402317348128786352563753509011141855545117985386869751176844899603294965931366220571292029906065101133431382208995911863811129706859908418845895870419435848186865430949748205768494376309482803608038055253950975377248422485774460895175873086528895046966530302185834957735245111773187258266055099786397421167798899445628515447036098842014167081617662722653014484059034224950967710101102437692806694695580262202599762208192976332172939026672861742723235101320033605370447300268802361183769141276490826763347611452059667521130887438689408552728611164653753014845563818940579273899237634826070714030692096230388636418587426250477633430474376338528538894986501283731613593631177167129634852542324040817372122405483146547983263747446726719489254939603894853190499604050237494239437296544450215797084983613793290911808744354314716216914644634378101428414855011953435889807819096091805756541952851471838302820431206203302918819758225264113208796897923139429565665963852433510737932791229424228742415739526543187646026638864165031373439102010829404657268646105321081582066684363911508640253286440956269079616177793033895574480813310138355533433713352524993225844749104532620664489303804280771041730975323351366556095188827803996565546688314229709003499026325513145910032802533710676372959141523747296902297359120916010630455052841697165771762374839960767739851211274431791878600354200783968146843248881740668070613460344897727706455616387015636018480845674451750341053802315361361104334540668623105321406547238135702906954707777900315594725025705923330992261438118527256427196760218561626245834860538086386510711345466311990761530793388770997323956016985027103214868179040496565575052774560705275602046330576743149659419226884713210582857294030436493292302659854814662803098377901360377386596264191689632969563615463044565202115588181126286415627762690621789059730406331570034708666776923541490017950115947818232577308222099727116378885344645389771443252534061491336280216060648788607325665727162581683198884822441142144250372385731797573225032518740824913938947226348102606379253554225956518317306444190308836085895766775701876409237844298916226764854418893780004057706780603466506822584441703496519926218638891905556233411897483800330747769374462648660750131665556531314555486559115289039988045690807865055379605150412257716366024967544626760932810216927761535305272763134379433114824165838399230529939967978412299346349788300452323262639656940612391405293120903776527559600283943351777965622535449531393242663449973250265896417670563023942687057800833864217814003944879952731883958317256381580821568148855807953674858820382439004519696955814728979401700243312844501629785462786807372518307936059494565528342363679314030528608283309070821742354262536694150480344687578437724450068566940185330664969785577973366562300332275204468067549231962063521918366140926518678572472729503429718630017722058567645072483347111867891723781528394810237750889048697937911222154698137476258235390724010793988564889565293235658812959287344235058546815942882005374105548118295958578761745681413426013756171775141378833696800797179710592306744331529402105588742835590792282643813060021933505258069743403160196987107820052947870039490658153770011043650056286798724500357550674310686494842725149926505209302094820531873826607267695749524217635722308088901694954064640688374889407955123441505840320355297901852429282787073430032508765648960976396136752046945490070118140690143726421123149217877221885036554750027870353008235409869356758230942736389220882342510255296179843720679837729234907600625323198045862543102544760705090124841907894170585989335032786497523947464835584275482894679978259828780911295616623991844627113147285265277981212657586723925485369974199375533025698084756033466633134501160174776321444233110464700884590502842747253564593865774333122611564833015370154369300528318468562490794129509330987621680277716404806197336751688586308983914831591357648749280212079930938581454841671446705765159026522366724448838822656908286638791858791232290644351750271983709960867858109609083705528400882639291463463732151760041553869523290794073066500176465187321009622185392437840337881995505747957381872800638696449154451735691732374159251295511683204775876580832483997627269034443409958944018980357052576525331382190751100493948493881490835484928223156224922960569070056291138731084161200789700341117782481785049293163705120519916896191472652239136260965373128529586333123343953951515535216261185925086649262966670327104787785471029033646403937625707860495529331153835764064054171713659795548498751371228368369478097888731790064707304009324358645709397422428763605376689218000739643514175521846301878127969913326591683008677263101390423528829296938139642630214413916019250520201085860623213952697915633334883297834073796950118678137581747429078019688374642936603369604334684300131186458005888932226015124459536359910223483523054426919684951807739364745514220871636852105716710091406492549842135286766776814426577687992919919401143733152300465698016809731277333934446831982364914096851134454065512834878511955611412555885749790607354123405456055450806390992366324133582456228697805407663991754185881813022497061631970046113515253343033509837508556903552052122075981573640437616436520196155933663167932310759932175274543589307444472530479899906961509995871975177980128251089700782930644852357029127422651240363187083980387644679302129655538188791713832942014471271896192907359507208737160678211827231448986337803789013046273838806992263884810087803181476007792665834754063418630744633551204013179660636029292266600072161868040076214781336890997821226391141351958353395637136807309770145129574586916048959325630660577274666540403770758196958895146477235438956855013681012550941516107864223757713451298251833163313427209964737580789855868635437216266734870254556866939842087239226796220595886639006565844389277307424717710839669321379242594610962964334880579691612602369131313745517771112047355606511232195207008436030300209508558812883859146248996662122692765530769026218298513619097361853252033971950705052747132707098824670519510800061588975650971864619935131422100160325494315387690901380443010168224085301751138338333715345223778304965491175299086714248352284182389189024361602542186711987422824543568336100013263377426943703351073464009182489426567873984518010343761725924318602981819116616259824427411730719089278789034172319267491469736891767503235732367290874221582050585089729073946979043670172440177453001807364220561613663542271532208032018391403194103695275647058661303856786268372402515502092042207973555601783194743115079135861406804036522993554182112401883442717465164517441457569121533470521589956001764872315716506552531033864004017312024972848779558811960108564408962145698702471465803478663709788231252678950995354932383021972257332624960129968916140687113635226481542633127567739644513530517287861561023351044052280001940514634827970273490434620764976704351023660624288317005233424055282700035360837293067401761066628071730859654989627087355568544549324841824151040379889181668181610338509040751246173729849666245352908170766156693682742775356846333227539931144295587666795690411382308142029291310431536744033451679235136712960438458517488564049683000058195173739335701468850549258347631316911826626020219828760464080086301556604896664354023384332366735026623026459049901865258728879690695714717222284518486546344351732715082021959897911919333551976560082432667816302596398743091593869837434674904885284312064026958631998924196583477176152958294573716647738393857515401510290179261053986273931488425153409988858751517372265972723808883711850217720119735527744604680518363639010182983082081697864223424689195078558868747955887192907849799002812865001497593412644719769601324027335329100191672098253550228377266650089750002175098446036232904978392850720202158797470333588496088681502042741811707759686140023414159007990587885214521731619931068204930636084560559997595075636080319444644072423997552527043638354343202909629797345471654254413871846704295844344298143191263062523279833497327016930013907671441107440051152237072306391710359945178153979670574315472540606668576300252855608808129635570361859166743590581301349551577033621415604182581149224446797395874261019440586189803800466305792600587775408038549474543942101038371575222253476971268759366008874651886454766951573000363974356067386063503723880064588398923717378109565652838957228671205958854735528090939553840610150062257765183535034561826368271736586545908907117739425585399935605980815684050374142963382079453684505642877414494114888162086649811771355974680226676159914438325333055465392972380883471889554302583859537170914750448450101966201682086787791643322520481490185153137029650007439375200778600959367605796077217439537980715875552388235813147917958413387614924320999020290817397687521818419240638595671792463757573501928369751112108727602987350688795163428440636134902411087458850060800940867286904817372176541509366688339997100546044617432828896306292613562638580008906416645391453836238625618132561570374450000500174199105636532814713662672808239886267556791482397767039268279227898607180942402370732085727194562997294213168482801688323969655107065323654918260722756856179044415836407181842626324439004702450552443685638807378457473008876837976922212721570148628695256621343065993135290544350640683678041288831113454781468451889774946653141982447033529311738781987239840616371954054944362484424875372733504924092306601055947084870409286626250522331483080158509815008770537882112441408914852733336318177350091610225270966937707064556248988553239279516722247136331681490113532807173253004673647374100249473542544397859303886931657863308825420092842804564080602026500842695324934646559441588776876503773405697979245130816512175506172783427612672035171748847332055087211054040384064727532033136659864672825239335897790684046549537410926852680580306762171417725097247719647038198276736323656185163292837807477468289608991990863019116970977230116746581636637168944415621815140528081020432925611261474933071378104636337170994375522515649398854749862278653040299329316854791115497622466301473618007828097948205405177516814913980443674577224732643194032227440637539154278877495278819722557553387174106465119636769744143555551353333820540654823165481787641195898914198830851126918629792303119123644065108895504317306333717433976590293300423806749278966813384572957137962293582028516122509871729037867074133598927541112355324901055736780938807813529011453931164302875872525202522958650513586620773364094431836375174480764539642630296861088048005538935206696298764526699449535145896926637828045552587253513555938881413457464639109705997591525559418123376143960856976945512423633204627103039869013532941899698964374870213838861794923008286498167043312315586445032397523806622985488850240324502415949846475308599151849377146059479867495082681604560407960596961091325742224404238021183714026309089089640278014825764306645288315151588189280414982049632973399151409613435233196576703514708111038510067548704945456320529662858541525277470830799543547445667703845226744412018743878514522272012275169456058254159854708962005445741949982155864895427885942777514866084128372369096616635936138163733055265804690509327580730282874046173571312165590644874579319013041652289262381753626536063335574954919317581350282322654803628874953165386494367530438690264953045658684402664774044717722958745814645217225529749669034789363327818572208457334185776208754655470502488362438834540380118392174679980968590045917924859924029828647442696452298181486170502079891694692929603586875407855412863364444309984346927644914980978784762522678722783299743590554033096879608372261472868249587977517519646768885927177872424084773342642582516465403636528504375667038586226016721253724402982268711094052549319987021834657911704907123504343233783293272459831882240045993777973656946421274059221913089144885242166657707716172435814123318219849907293401818715326138484682885518204867105463653995570706292311198950123631475520887016163254878697943301473701288302609592139586380112667757511930099787247626737384000158234086820526419334728475207400288653006599117828756134244114470100534340605701756754904600842186139205625935794567420966581836529429699304014792996035928894346682830868599648769979626088454343390563608792227646842483348523421073926514330543835726475307524782027789825900166648328229655341823340753836787965075142255272473808760487716311247590219174472844068971535956422262048289489597533082177567447653453657855442457873051506558349905236154193848035617217788606744775024225903294788258013373200007790881405432868044296640948248922273744777994156843905115770668347213026447692452465852547399782372565790162310864402072433454719662697850934125284808315805123734497057280517015324420428058335818722135227453902451719011185443109572666007798571756523670700690226170427976445990869514343332543314306041965202452872486906674134334030568936987330630523249119023274208893763103893927597702966454310695185621747461542139609711833399551854045382229152625618286770002248005928777950369421631797201518340320944351623286660894760656433927801363361259198868503317896786332224813151044949463331868421131128711636423903373145447476121350530825781988728872211307279864584745138111772512985338923919302281874522774490023019589838875351285559704264062773352748077710968039700033889731521566269094202409984514457117595181785289896070532402725634298348279448711495058624363785602542578981617873274188796903292939192025459092408280821946126657118499267181870786150831584332113670203975627434157006349970961729984634915931502156407246050413778592550132968440431307912853553892536836835506324962463613276662146962526826820526580355867318106852889478094325813008242003390937019009448021112110423847299441558227099963621809484276831021122702528776661645121977681989011274243005479300536392781991828785421217684642913876391223514828326057263456880891756043599123093598534393800436651439688427409946484610167397309075388473144726347285883759278854955517654797042271818753801922914880605720648675928030993787941744807972024170529150060668792437966255998772854965662594748320740924019886811073057124292530244754373993882380729551958585711977490518157142252804171036474573689846568777887992040334897324040045041875082982079279325130943369258614928519295737307034259243664436717864234999609790952270046485175659948345848871149746554582402974483387527322534483947716807190819430156157854566836837001968689795911331371740032516643136039158793474985219481134739906380923174832334346745902525434905669934603579521443097951700341051970904944372371524778436892660082682981516575548049336504263719801682688742952323152707767172646500825800079724080038024154294600550207767528901650112411699522851013874860023928519613576663315897021857839944793833657113729887141985060311685918567775013504817201967103603128910302034414124624852071216832364411473458364803909837662229658009259597038371506553679393421998489889496483440159679401459932960332234152908444777906234675820161771938939614426779683960441138509047879031126174701300484103846258202221688175583265679725138621027599590582291446731825460240523255400366121070937854055198605514499755537558189212658936473138767739163252658662777063180734476752998691921271363407629184400443794419573724101515272689421114262372778468997745800266303033057890363106989354440925264797454079245481691286809295943039803593295810316629384333549132723961391484185800208359648321625461497755943533791660260216011715861189499860285641965773594213010044083955833983271049528099929441397264165103325084593060535446561382698355433785495558154056107357641624971134341172825012374453060483484179114269498161256367962555329523728810177396632025556603604401812321958377743589796882354380624725559551225340108838270559314212861822476129553297450285131686508517198281326283351435635825987695659695313907748080923577968941114805196403857305297213666101587259274801460060854679091705069755666801036387395383135789509237524351562479457255502488451180272924896513531156368722609684661737733982744297423153022481245385980056403451066943077790375659173249157552535490073743441863514390123481896438908862830546170659094518864022531363809080406706699718906923952947551894463535739012849350472833459865908641258934089012593900389420655769174200975705797789595322510235859257354042266334348536810357173625394452423697794697735135675118595524415131262717382212152085535192877216351395857491026553064161785548314068195743105496976473435163732306181573169069103732213818667719806696753960841759137893617569562041012205412620752361962700237645503788434529419610051521423629782715968528524231117779430042349180366285016105580948605945931584833835548071210996757331985544310444705710135627271387221695080093055621259361586473355289442226627298279269809115401325316433368845349608675134570851694959596788704697544454861772410265545639993003273470254733943853722091438904988807636907487787325324233658560247299464759938268518216103589380411338201476329161293460527250438019116436679152956358474533938121863398816740405516246704000990649896065000876586937001223837961344575164152965005524639513021018608538707097491521821725487911842178086253951014163558598400250326236380405753841524048852953061184927094027660674744506360207807918097740962200852737624909980080625520493905582892074823097697304364593485620503564179476227018837667233396595211691694582008923538545626607936799227418296655463588805130910848387896764725015450862159810777060058567253467550016781456457033255932542609058573233050592516736356373476872214062285661774620626708681592633983003463563785437087577636526146403404046168661810746737480493471664268284586749438725172415750381052013583301457520956916009507315074180751000747829245257387721922669337968888703860172029633236392278723955189156100631366925623589441532656098344531345126851641652902139079973948388659790964683056167256943747013615461043712373586927784357392302048777684159333009985015211877609813547426162706675632608932237588331398411084056974329243858059957550330764507229996850004212381060964531335188431397633750861318672665550212374980293979571498970409032820377969356851071625906964999002490438935540809397210975799019367053270857594107067847468232189502752987219431237986623454890387446923179995099592410359349543248366705226052955825163004690046266383292251606517048016141349857223825678598464644995306591915352607058960935253592692010558711066203700996992258233291319128534234239659358881377969473243244510057481611686249377722156007772023094875338722047387854548694633821993024330252790501345735966535374968352828409854916005686808794631374398997293520222353652409810753817701286135987359592014524832579980700277001690205202982586921993095032552547991289592494400051544745816767851797463830071144074797304334737420523153551727827098629051688316727218539147420649746774860946260496930616689061597468176734219498638819798004906928238007536869184817239913488337353972122766117891650557051783067519814812915611469716901800812921060250903839999223854000468876790241598105386706502543460144078426975871583267566180350033245099102257493932141129693861325051229442871390594012348944157480012228027405682190685056696503138845326857040242780799059438289062128529981563204590124140441045360720137639397203199897032126881053970584622072004579718818801133310464903776730977156262813993502766718007952661886623949449255571927523080147111372368055392844375946213647766737242406816506222138737670039303131034864501697209293720610640053745096835150278069647912016941793504788164999499620126742220251994644749643993746009985027396234102528446814745890323323302689397551293046279730793004106166832975862934930095203737535164890929073101797522059368246818866868570066112867247577332303563813167072469887827923026022700701905318219145826440897575469883172889920564763610055110845281993167332304260847042865187941219213111054105243004124698169454009672481905310924933967863597913048911571883951127249762859199685756276082860091348283438097378513283736535543451441201842964597094580966639731912656995899075829529603188877059473401758296443431666551609035615029070366966456029871712878667699825147468874862363313545722937122841525292659998311452927771854209587968602173002855086477184497284393648749361114009524097299367283097404433709549728883423558138135372159842943658182326628231351043689523485016265367402417535881527103742261163653118600573091978865622849060957161007469587942935783683515470955179130021229070186348547853872543757889730598519284174209305014710014554107476244077461874133288751968981746551378729640789443412124983140565900655688350981402567595363840202496876204724092763619735494407689358009451090581131910149836704521126963073844491691533799270746340969578926964441480468559705020700221057969165571771523278677968734018365185949103447262045118970705598038090857363034903116355535117807702220826689963218095065459977444948040219842144050459184888112222652658943761374822937402450266535414692686869717961490471437285495506334489183434654879209154884742710618514013834068659405911751943033721807479019626339518425485186502545435225593627516519255590700991485606599275944868514676692180641898510541014428903521180641471443927980333003020578450496098878532582279268074662514238003379855060733869281589272912452959926076546455517527427731393301246184438502520129226694950023175232255819651179907212250870806937213090820769157820485737865729368045403256601552451387826478822902637514802848743186387175348028365253023184553412726505008661286583427057745411274436448368404009543503193945985593567717908833030881795511436498211535237726903434719226695716657459863831204420100683194686018369971845881511878247256074584594572012375924547393476259198288544537175175820270566488657545284795423700288981850445866219994707606506902243155403439239919507725852026304380406363703186104994849396681174404590352800493041097319306423675348239177827867825191683400317660294036905627632304984864621254358257086754693026899994746015532785358086252623676165254743247511313420655527452211454318145628538974076804583324895317532447508574537852602716732315753559900102106007304061586200512667277010999591366144143987860799859398589886530247758998404840024169005943989892122448082616135026924789861180787882673043314994635190946587625295927935119064290705747458034108380943744232208060675782192280529716418086658720654686774544366917477249512615161116663722215082583952033652398114745929617304783786251268844797560625652545188667733273235734940024915651999707156552380545736919046685978938771908815163201443609526268823299450267462693884868309542323363529349874888771114275957205971637308415970412241974833615989876847812099983686582716000320069389076945169718109552471231453014326655716549575772002853981985009568326501815042449458720557682483690163315993818182429706092477583846514824036609289666535542947417919702645737489501094398616019911993357567314883636453507631914343010637065900195946592856658859667907475900541917241006861812510985578099707720169303149744409703913937441906409442591520259982120343010636906871702768511557370179655550959089804921413454815632784182432631556958920325739813392191496455357250951957258250860888351933981273202927038266692934087356045709265647402451689432240802541022099654036549860143352443017210689184138705368895163992460363369835669393134072672688303532097524606624098548226731345270121029128031414826896469867950185938140376645066772736213126768285223763191527101520371814880081382801819016565234108990162975912921200755501209505135361831957803125611512469964384881930150706420281833797253409640892390468395588566067097386963625572293609038530283939145196077118688922522601321661293091866933666022393487285279008408122069897574682543269801033165892798047458746572238652522148818089513113213444738534976784883716721464446056273658178292736095759300988424412575829232192212794518650681099789611306278077363810836627069914364973635824876206621658482762017669446530273733113435153734545957241257173040157271544119968015348254027246790731122356490013535189637409990582405240826326541043018722692096055660016322305700244571521736793396941087959256643515348379908821955129591646637720709974891220849281037478517867871225770386946549531461090070168164840036140420136501727308776841922336892692015507345496898407468730152115662814120396088442239837336562506752998126480333743844798008189336290824398955840858852471751100281807778850913499288194541384565119793043073730632461132578414239258354899492658608747409285744849244571971478008141101043923105222615126258249808718985848064207254596236795190031317106713947063660488097986069891795334735347552252556631757088903705974125156096517275039572770520751531451289948963508162452726775275868717901984951555604817228400257206911893390828160277629084710617109375468649041935072418724305583847516886676958107099657227687794045202860891410807908629565869573393919723101378889971150157803642627095119895214527280339292627872522116390914450734079664963512074105322575790710337033879714039321729241024062762949856647935166044511968977663015590560101702771098522507136565153263094275484860347238179326790118821618646152749872663326277004580144141039484890714412446227696100515345837838037197139580700272116227797739727657670282853209852544406094970675320946369643622121004436961151072693367656426717054293320846328626210699901488606056435134451739673090945974446262949872518482192777431506234107378147283744975874390038338650353273068905786684763257467864619342411771235994005473638135755286657185736378697267648393635933354778211801419738483491890505374433619982107256562009038271249659470164182220270546416649353929441044490172190834205907128296961601598777581756759231430745135899396443218995900896431500760724428327467072848940731818535915637637137374497067384890535828668661274766134698832082412235203289700092874171239101511933547146025325128330164719854997456150651467041408984368696392764252901638013549981216678228398606894649629364303312744491013915627232358646660746637388951596353105964754755772016165434361363407878711174715087667916014361332327896432915108610834440385972139726304228205927565019780808204311326360804948518665029839899063856811441319738522890965544535574559598545910787792332809241560700949987236189292271155043857590005770285643003490125443198549920329209529063964491254291393323039360612485879307657055342111922379760166146604771466466460304139955290196559825823991504597951036353048001590183163766644117963543471625752884883052203062187990966984392547239075280737610054137402804647532581709694088759298668948476845809930436875975989738333087386459877810225981355853430796594863382518033933160016706719595784061864125076667070620773047235626968068867225650103415907797825607354994201313876668611077417465812821095836402206638628764506571051686243650712540852395066855639442004315035986369539248499612564151142779600298667734673822222599883329359887934896116925954033269782754819925781232058193224320377365535269396139754716662502242235182209149851510409484587323254776634692047718811877929644770922661623843354104628729602213611093395168298490244041286970548470806590750050671723490044628494222943102275029883045036124723910718658906372826065285760708843455984481437740876299856216937545720112340639642814984373918995389934683791137193046743958597222528393210415231907552502487305577638101308876274188021971286581501482977721606529997686572311237064561384039544694293521866788671536872504248880561450334242981537605191984997981393282361986219263331364200632742261945485114570081703016532542078990337500914324414194949403211854602055799490632346488220029283937522093651755909273821840713555605476305717521343399039883582379126059701741031062891838981430113235774944384393919183441562441790742207054473743826987021168870577437579049932964647706984797390726706600192210309043583608279200922764838106932037187191327599980648307176416140931455256160428709266228030769118508899117161739808328019555470176601849000424510342856888768678111991775977834850698927349024680055668595765298492243184096830381649701553154251358495166547273794205816098172378015298784166513535371032400955041641087885796078581596589084381104600904740917600259919409582317270240677079941031522842360155617647717411652684413602349229970235445850123432526738291488253060912331920259340480058518590224026239911587799738614265521796197952541243314122521427952808644186643551579668934409815407224105014057376545744417794458335219962719739734458971809931673420906997410550066009771452914719253199685167735865606406858445523109182282613008718664447295046974258525689118195799881197814780250236645402540138115015195098168303855242964599013729540704697955035745815833291841422751930538656622347126089370179956421565769484967256555426448944021045959876976669092420388191853655607162725108713265685765360929922040007424004382073652782508221918957960668196180416395507274217888823993359054183039877067932236290583645174414161144922005124061049920099265151193246632318080540528197225192320690582056232440616423870695913411908928332604798342022093592423747098282510007082767728232424215370245879987530326737355628320261940534383585224795715591129736422134083093538270270263281675374523829863214965323925454502201166960396457987361028471090228261420484579730487918035116413420091165793893441367310307829274234328954515835920255670773106699388049474866447946456338323369889722119425558058875814764237850821580832431623842428061492155796184779191063565807591017019986720574015969158104388249599705838331692020351084263306705361965154918383816356340815177517548477254637952779604994669008341120793855782166872541378341513714244312742102980321258170320160031092530885711170137100240720907457364787787362489448397604309848655208184132972179313999119980971769391762176649002279018860286638916844876514267950131897596655273390733803765717317960436291747989124379030771543066631801692662317946529669395326065848963248992878346260366184396050337283924151793639124085419569439988695002253520412821198692741245344590736860642515739553400178133056707979613573993690131460452935270459715100709092106833167518430846826843656838827608309033802933213807061726069955403605820373615151157512593033866795059451781503510302450913445078651204911697409612257092815356184848411974868826730360332738375571750919134088521197762327373426950089652712778561016509900755617807292910788855432842149511232422960822304537547376239827407126901051728966117884237303544834727751634429768015387466473471447376273735546387073502662949396488821728228434090594924101811183708204817060980086927211152992919168844380837954160833069441485064173774852077806703487140020021325507936109277864627424489947088018703130680979677273778507062599194873948299164749142226830736607768584231913265226083737752389852298322754308865919242191084130964275600476008226145507105851535088799988197128046168525172155544944350424338463663437314412732563207358047193630239851525981318860723041346885844308297737802961032238219685431416907515176243309736553603032445681588833717451426715961282817505529264800727121737690138729853349607828763318568578773116496893190997665234744366262800521891882806853650130856099836363060895524362896777492806573365703216472361578858902220222351099382227112252046859090742598806019927074110009815892821380360495986000588480887142855782467554651215156239648060229203702671919119501481087536957505906528576004167263237499781508574477086828420405330110416982153509180672332003998979046129669334283175604936270678626887989957819223604460280319845283511240401474279564654720882779492312352338789396915628214215977385088407681285881922308745267700950441344472813658211568276853202990794315482559283482294741538067619639841268307732442139444233220378012975359209323380777106916625238911095883607535303470826342389898771368023164871129179662239296427655761395461239577516666274352281462510917355714793763284652293326368262987400232363571630369473414186826767633618256257976833402248862324167199384502082105624915888154986279738647419807254376456146462181433574404793984754969746561469820682849664198993761126490510301860083045876327697991863441056414991441596960024335442077994623832294588441424068390322740725137499945402515402281546264776510249676317784875183045250519302842471513141991018240955976039950290757386583392809458365019627010032891292027828224846251285807983353897976602853796014680236842625224966885493587272303162099733421037957500645841656405376185717917133819308588934418091228891784326827895298920074042227550077600050538871443585840352579696240436734499380169372042589633616501793613814563982894189450337880574583833458221020152217924691599685815185282321371892836237671575408552098140242629761161159514552936157440559647715081896938280501290741861721924108295213758867495995081956670880989706950189918629671115649757355508435000148580129799833131900149078892382649609555475993853105483031348388071339248889937790817026555717212025187530061183314554624362699813892126114885991074960300451856918765775183584620280915294652915497003744101910802988426200376603596991757927711265401964410893645478494461031180897911565540228111409465702777600976857806302063940425350208428648391466255755423694711730637779354459690487497933087030328450396455343946091623086013545270588876756192157778902636697453636230453728862968837058874221413540002040952207296914798142401339145629790202750140413924977709633617784111029851929967230489520980555742963917164012716603795373272572227223456781207561116466961731958732444888857581887103355006845803550281701121821430464172274554857515801632069359155749249071245978433497460172041870028504506262188245497918372705472388509725501057325494198233240615507888395538077822998221848859911449026191501536687588720622979332637664087349501705609570776649124093707646277723262253808976571690582313691520601003096694130965441474121978636637442922913746522634992354522889942102656541808358945700228795228063318296468013341346872297991471661999402669731888992347328168350543561807833460808576995615995140749430615171646312599978147762787675936996670336614507858335869874771718096741314655068238951148982913912602805145401118665078729994163199775033038755580216638749632638097232170973086961381831393080833163832789293774208697163405130144984783116077822105263770075679064814755295521850075862928403692133913850331413730673575645136629584313872019736299098297148196846388068804076747412903056841465399050512225268562906674605907393841109748826651416394476922050992179943081152258769438521334380528650681032620065103035742094225979597314064750989056087705579660071415440147574863628477930053647416893999873332456663286677754940194228926921391132228686789966653366459322158054594521001303209163340988967877188400699191745986456424668611335304733868898508707896932340959297259252296441710150077415168020946431896947842657315286570713336301645584468787976115623732167843838783768590453201242067898992087415712250844309187949373640872430689117309722839020547896867317149914437497572011468794152374271994022147041297904683622749462954237583652941051661079808642049590894678377684870008361803415843482052247806269018258585565531681848278890296065130200212753406711180156729436309097525834888528727330627395419898322723782932774527130739659614717871344922014936912535921662253871603329302876594478127839646714970221256849883229943816736783611602123440649460007169574974907540326470373845884240099239915247462237817290559603156813286093103662464277021823138461081407576618030339262185021122257245046999207990504322868253620656229955325644213271362962896497500519027044438446466501451193231154418660235673757356054021491510613132770760580657148170151551510917031870756034035924349980797805350352209863939506877266176414883675486249773177794094362920170908660891264990059952593817303703187676506346931235842112679896055366667243843766230107181948503999549115047331209210806176597859155438133475224126179979220711145328916104318205830692137872625853344457024874067295968142315876120217596025564849182054020742839206953039075285833340974606151464473555920122435642951952456234065253633628713610704946869317182883146743169256788546730232017113918550398774770899487992700285532003381954540339765876288506183245119669042902130676800663139729596194145618918082738922569886696609831277436558011883420481053040361355384722178274288295786569107909646710173040490242173579468517216096434757453199056793690138462037588919414172428628345747379538126224343077154888910703113896995599978577073996684870941287373984852939879840387102329938795212552012481253783812456165522996875567186419134419029661767215760062304515913985861584224277091027538567641610782410026481216278197321860963863419206167292180897364304159210778138737021587645299777673166563460482371085097389071453820498799609528352248380018515358445486751209986267888222461743597683092127290943151173981419985739957551764846261662151673895102097647217510556196104517083252680875275982189943393213938425570190693611678692247751509857192386141400428518370836553828137237623160654986687235920027656519325713182490048787460060689524803537783910008612082783225262554199209647217628104630665020074824848238332970923798012322751648001149743763563046650300351446682554306571956918124003513999823492565329679674347625531740855082549886129861291953537539126455755018613747690921817084145871293053666694773831198340256410224061740423212267313980215965673375571872688645305823660781874876137696706954379450461255349913620568638390675741950572088861150229209804978716728617084400334476100060096393322144080399370825883869655970060227086791240975770380225976993243734579076250626231005731825159178536371531135765412471866071697002117999781233439664706329688903322118493525746860884208864992203131327478107210928706043141254820153012438480746394404924849289639490033752224608504386326427432333069937512952943203177872379356897381250039814298211657926387738327964288146840452293700702351625137375437494599844744938550768708152426223123404980456343043873843780220840159972232922756401250848099798224120891827795618825462636231867671302652230804811957016100266565657935869400724374299061710016227957759571763504012100626692621982632849983223477288846590199366669314069613140804576291917740770729914351911908385365035057652581108326801610836586698480182555070160791416796337353327440371613314267969786246039010062109539598198916091131851295405140846547480436101183522399324283931990758755759520487797433968322005820226535729537584454674240320936223191836635094958409917210504662152278825970280334954634820113978185737809378385680006945106788344593979113183578977225883745286982433405261294714565110597826372144851133674811831744965289154929150426317560593335062445308068407315617888515108880292687433447135112152032093016522842238331468756247486703856108544734681018648563414184298944197190438608211365126355663126216739913296275480631327283497723589257874719364677100057060485592862989383238631414037734094108980700168584107255743998584225281395146980208403419444147968423524720966694723881575755119113577039219749087737628901443590353569807286328937295339021405331273863096024114338985404406216393526960271550349823980848677825397670014901737023390688043201892180521275199909283012540847157239527079863298051254909242064468133300474331479276177761295008298595789603170126056200956835236256139397070753612146602753063435661277772326225871642771749087540286129203144115865166462986315084803998549823169145558956723548150873367589961230334093925356561889689528405229195832305464665174667383717692079582418976906601700417963986590579161687024065100230638256675345812865889379423233883116569658274158495390431351765009505583014814578638909325818459227624273670287198983723613801266248948895973076026742827844578552647531183473561524377521070814547133982635586356171641923048142642035128209768548270402142171093820703450957309607666199610426615806950441810410365517998124501324060118491250517186992562579202998068783944637622474251617219322903281800344117439488416250549646644770526056282487816246644040822002276729761140210657379725481894204239240898108247600108675170141904185436611728051368923968809841240741143870800755675762179468974334830671470760993119083892798466064767865380522285061832503396323572009032343038760758160558552071585779335990340710473126881490987165033241674654203803934145931956006045287137428251568213433022259413724880317683581207435458338220196196706587686260445702417094626195749531996393208348953931607279734167471444150616925796800895603318413643856345362396295476048392290961807815684246889500951694904680068720692960956110691151354342246233201796012443993355379717478310298152378739834513586004175485933707284906687980382902229441587350257285658986275708249275017961258511399474779414326489847650521357441468868653275857714115313604780623286496982748877359945524435145287203484792313705376416612114289951268278515343739670694323863482278195248603853207873525496188039777166836140596496204860960822007318588094653167198328092902776663080853994580155341940509995769868844175416592796076514087578053601459878040664200093850767045611992240772975262947174516173950017750350016533657546658188184598984861720914391485146326507501021119227928401992826978943816667453158075735818018233910383737978494737041688761332268737026771365687848478233421636228661339243822935008074952692944271262424695191840397827275145841824516894235000588563285531565304617522763889007144524335704207324644534131843754225703097098886714492909678220176807872836613067241281099290164344289058747330282053056365375935283466195878582142502048253516213059888266157668996597158050244240910195879714096383275934641730479107653486669538364039542142840145235572099012582969773149064386779455050951814469426722541685430480440252684768788908162115638728559035187941994629771453035407590685138682221869409771097658876376917293673711434510957605528048457410983594750929488991677816843250545460166707353531839464813651818555906343758997909447530606033329469208482619170690143752317683159936338951660210264282800071120434632963728725442999332842760055427518355601883648994318477406441976681162213694861192863947336058684725030963490877827495373473583862476234206716208251175464658309780716525842299889381072042084192110296410795819529917190947943096727480947005308810746104378524521378438339055131175491733175616748308426498176455572139780159266020991998651247300954974294073432975287599226946643192477086184356672101212715011314547414696218894393621530505663547604638295397467157390285602946809637112216550888916230073643766936057358533266869570472683139101034869697418862106197210855924255039412325941921523647661881306767532990024184223186459735844166962630527286569330221978298621120011146197922833011855893413836135887561987994535245001249446687002853044304595534032458520637664678059173160065637773514914022174031678239848336983660288421046175927632409102050858499456575989491518987780394441157131585288826770388109961158640363642535559864271661525651267574627400956920564871171181259483515687898619033300955651090031873871030073831607465681301365076527815421172606469712735754295709070682062748187551559344597287842262786123037415500119907909979200892833547543511798805693804977640713989472604250728255816345493037717151218655468434790602038421906113813509370825042600042183075848499746496029449731354822279393767500295967448684737934006027740976972176401315049087546572306854734124658054952721898865255703840115197846989717780112703550306629328343556969714399592550727887105700358518109364137933413061584522670235601461578451164542365609557483721338656165949425058437992351700071237301454219613150074465975916516961393930987798758327937759075335109754655287034000049877003060215990220722741659601952980991592307534939012731407023536588182734507421767748832839078060245987156307714276540448486560187056209641090411859477336207662000552573578865761342074499561086165413539102691973976794592269325712388003104040125848348570353645012135634569111175622390062251732095636476691344150434410364725709610475857894782180260879488698660840975382692528428672434976130851108575686008460500983636444766994213880789300924714241607145649535076432752709673387830071427835025003837242855161121412450167356302156366144014033849968832605982785305629304677505818049322228809109938625090947505646440326317795487087082529959954429072701482669079151066551290994783259024089211943624598229560185912677466081855906854426748700090925957762716438158049529311408827557081757771959892037188556399864445718547163703262775795085710063461725364029951841371271048624042268340397282649631926215671836539894045981314973753874420532146853430056928112955666463604848544569704464607508070296280657275962290499448150156374472676390710553441128837309643620586869115132425880357139384350405240420286640393593804453975085517305759908639263431701027588740247517515917422608926557993799864423640248586515927667767949147594128341626934381012981150904913436026888332356612067979599884143778092130010520880283602310669109787664738502122548541053702853010240295371022427213162919812477682811118357827607350943438833047208897829710459205948300697577857659536934001171150841541496859222952519510938146876620290645695352554369468101430874031011775931771851827570748497164304105104465446362858936378275310902077704653407974051982515124823981403976336039832513421343465748227670571810078500863791638349328991392082227709854224355512478896858844844508480935857396650083941498933578755931873239933644957441640543086254946767301964402175616641594867214990975209839944130569119419404161316334348816398116835889250672877575052151998495614878722147015822202814682202010512521463807969217489398621383185107722807304346440258902929417265535229081174531944347967613954569864781323297734203576401868125002373453937653181102693174013940459568760212225142532181490432033710692184562791519273230014847404783429327668014756561472460332632251761022360769850937023549177094356879537506154852747461034070092209902125154846082550509448934470960087572780000483011746258142158925892058970692232829486840502665480284188217333824694208230272319260838081834368524556779838954771509907024844865133349068679170801533101341683455822300978964237216628476019093607540445205409142895778357337014221021093402828092329685062041150001213228774630471164485601896516309453702277199176282689695413159138010979530324406013920357054130346881652574292045877316647774204073326392240451803492513929994396562142405211289796294554709673211148091570473846233804879599448375745180169091430687308983532643899441484357150865251320059860251266455825701239253686014979416250394396364166791905394693455361142414937839534463341379268633868516176601640974713367307228462848088755634334242110317517796745195194892022841501096998393221062292698728892102473533218725022994934115917963955024876233772418461405543706641414901392361894408056367063702497616194012797023009058394715111770408623519238589719709463115788569454745663562677016618339034093716847186660340907272748391439209182903123538602882363848753273802956359367737856826909000893275142480631725639291726655978886172224884058780318232361114654004773270863242822666695889113399797614416355829633439671289609391452833780804677968437362980438510826920939846439478366965797872693052042928993628891892907510710340367722763997566978317774881735750693746282945966464363778417294308193413993501454567728663032637908126432308428788837518473106700790890300157586484236841111511274506601178030822162042330674305926014306699679639224466031768185210444615284117827923379657309583395662862291997619730142146155687002766766656460637368043433786103390388464522255302323410173534322470161992155322478364600177152098529680693154259599228595016660936267484996438885201378733578570300913389729446121328470383983854849659743207444244561772270683769449019228803049603854912033182025481152107188289432009997243201164524146112223821044627730827455326027594966038825273534374027814437843356498346344094851580707779228405910683016018742328259780809286774803548575434172780255569453690198153574331898873673690251372500987467552117590226031276853827745651418896832321809936399261927105405366718223357471944769507554372308290648436756151935530401212208302541263747410960576091799206088860292211488549864817146553744136483946568250255636224716593856959512668620539178354536531412316785577452514027597113006811988202540407749897821959632425529907795559757968267505973015325466281861416158750561709228616611792833039751146683911537321542342389267833810774999240719751196666350926071013973450759221899062027066043646969817569266295949619926360378359415321148654356496384672247907081033443601288796837289001051566088386999228080795961116704426170865346989603727166334833388853537165671234936611005941183898217856881409300717378344221894803043593834137022918994281667652275003245377980836914252308091342174742061065340659880685072847051014944996175892247726026716427394597275907665174305162278662250218472107366351997995537520662213438408252796728728993901745474857591299601577288063775760446293181978003939229531269503646544742852006840601184024958082057932408625767028044733244779219556381946749802374087927866152887388650959886674258087309364530250235814738820188516197082656600946731145377303550404903090637483635394764773158452481120237509826251664932714657282766787551725781826120900342189797130783976262008726142912040958802960700472067713883814695483695622259207940920187718924814040530485820359277915120298791037152341857750910758804881420998074945106198212991014941061511483788102839362787874226315760205419931424510575460956733985200190921521528349713023109003401754930705542603082447156630262414848911845124678399920002788767512063455891248781124226730491963625217538737562783447334463676244731649589676303180367919159230619300688414728972991210073991503333677002357619301795342699109839391745007784439662728569609852516296047399500071744471268904872575731954604680083689746384036126113682872623346776639412517320195654108533870261807449879983935995776666597463597897540449778371327104955216129010894150816073339987492381329111577717075154555757876421561655372565989747393860521300140847109436941198311520580346708765759722380730192978482212619093509242219465274383585130984429425997517322781975906936227497531801026217022936311877113639534470542238093461583809094243847968674924703834019582351868303579927020721143939937384749655534971627979695304710335335520617637345277077932859758950614011980523496352118647653870544396325307170062598759784542788280063279276198942663864095188849404378144086326523774779314842713497823765247207937787301106239244538227890300290272987138429332350048422393517081212532958899130367114279444112783506028859195873828517154280971436449199069086816113034602575421139047479227031567528335960684555999113750037516919075901934284779667386449435679594582687138121193560487961258123952375177189689827134148609984223573826078320057308500347407061041881062341345078019266315115442788707515343604006354757317369781382873813833763441596915683780441695511165177898170079662253005751983060240886356119481969627866468450046707502731232765633166201952293044856842394039812164591415071118265450472791008155698560607961362674065888473943500690459880432404019981297342536465896147041973739671238167962649211260580773205567036532409715707998077930335964022589436243396312377152412386757835833325168495124810143563084003488601146997489553494768827030264146681244685805936522380720432265782431752312186444742391328714195806770570664358821588953901599735747100914558071120090646377205026536329032722214011595275241797996488615511285846990123036422965911512647696669138219680821352557383258668619491761738923776183954222610714697517318372716926646422792623618962812385428843467378667049148999118960481970533224342849690203606471160633177525183635520123535671173937649520749774182550436963570877499746352031311905042778419571873453774471158663012241955562547985288925998388319893283230030379905174558095205580709156313413988553705095329754506494593380009212571777252540641670233914541269562680865294920691147942407596548036083792281151192981458978677975529488959231274702958976149852208937478178288608594280645946933107288920690469696922224131858559887528825569900449327352037526840397119026276814990478387388534900864768353204978784731800951841475920585527891002660330463342578649520644071568868250202398072080169313793068187381334851326717045329776962367612639311451074218249154185057411667804516172785636961997085301241443341256906885337450401268740444850009106934199713129215378856074361055933018494057725641898686426968341211566630667850225367803821404220543986252989936711843871967096512710507112804661518124700774464585962415346477886730786273312728651726882078912029003009044412760693660005293368429656364858849090728476897295171806191362027519310219407709553983125573785239266177883249802827942096632688942920354178425222197401665783107973028179338814103571938655114754575549535296861375824772861311265160461814684474207671851749989391763962730813315240561406468299512357486035779178368527422710586168846129852288184692478592657893576770584590104712350325403080820407663645295766351940202539628495552245308924827681478924493586641720571939314092342992064508849997586510648812737806822462406727922132292888034866002941189073637473272131593962406407195309557495916295546044563095448818384636369158653649237087161121794407782555135122593823984131045572701306877060131444217479648050130062261919539636926157271953553935755860581434765555280585835035788621652468772414043504477826987879274396845853191353678771454184130563046347461575433202321032084104895482691275454200045691694226956766771686727489211421177679662432879749287153287508087512879458444020988232410710495605612110873258604078520001007658456693851633188113524096788424611261198120829557100688167262783028606733846184708873205541787543917913887854300025564881057595828236972102346441171470258219169497255251668662372081519890239279831198595842249905609447394352581119580416802292893470816762374663748024265314681884754113577641278473113939943962341537172945811061684930604889484014891116418840509782147536104544425234794285567721734593954597703949595170929179268761924512273162713170961664980264987200412831043790356731633210821930099827152532760100163591456134603797500207950181849610512192913896372412421314283835535964649091110621953869348126392530738580711672859507736752190050827133261678031939466903638703983289997363278312776458325635084107306670160732145122418794737215290281299137778300573472829177003995120269060836140784791732998938414573340651237696378557232691724408586259568523394510910903818361472159642803684883815770578923272277995575408350337583170204594705184229303215338574320372415712536556038507376265222216524326630693774415798291101162150512773335396410924851546428895561922844657033820778015844926437050924943522642797264004546010975184681291786879403707736671879596735299408425812267050805322878893309675319052836110059277538331521007297287989052642016135356841030601675521134192817664256683869825843921750008023218560506530307778797710696154943444836299023789378538584886611401626323803385470231953144161508481779411133471923627144856799556326084948601332367585175956350639604300007829063298997828792500199021337160041008046368977900424512775921583787458988350370425557156519980223704047343164379621695209617703734516899690265203118739391242487062365516235821725414844494138617299286021019216148414864824779921809192774545575824268635209357661082511020218971090731354929827848376804463370018153261493270557328760484199071229658031257827165332630157751691756717848060448685761118203215051022734784049511347733487210098676941659641379542885491115910823504445683998306673755282682350481014607615022509491059446741723921117687756670296608225307541159289856416727049344393206913644741865426821941863711886071611320863373040011339278005537160812199475128851104364081461274908485546212672083817147298289374277947717417916498364117181014788497753180949943901286318615037169144232358386024754615095751481218816593931487372515549988000046088468577241693405878014364901356439623759618284179251019102299410824159767272092373327293676410063045817055204199220017305860139240916114537309730398093091546568903883314102235918770339190370317443951151709932288293476242782327260997527566493980255125495627128656201113350460740443380593563020147711277148918562204976687085721148325310778963301367035777998905348723637288880085226636623441186711514561774528283740316444511753438979758087342609357999960698045615287782340378246312346429003253554240311538043544984028638326585062101854196897579673958748520708298430169905108275904185651715646174617008343198600784932659884276732667977339320897118086333490642806416499132403226241257429003573223497595314766019663513479957310712343636165166253105080659695662036012264792162388981434493923125023174601474716343283061408025646371608671258378069207427528189710105847200567052578606886245751745542173507933830309437953213014186146178947447433694305095860440896811954569830076566909146250049374079352517163390243435326607311973368307464995625985448993923235594549083194519239375693685798620321003688443909327704718941075989120911355117051801204001415087357312237327831953766232635525117851182452408738395410295476066112333359699294228959768090885682894732127043316057092678624122885430980674974738604737387748728728652314619835064248141059647335860647214257666027470974644549850094065376287776958793023998144999044623921679502025316510060745948897773854025995177302202386444449684379113832910165290729008918792957732914468749855607399327517613481584101645372999764209865528921929405941252048930638427273982170308840640928171150313444760917965499164535633894148201217892488999498063991949570924250627685854380058057606405278243995090148496928270968677607408545522624369471972550076080083269524576002698421866338147504157379369079079580242841681941356612310474052552498658793481266519775331718391727691768878679234475478019089631539452137435786730588230162733698259027395946295499421571425307935233269388913796072606437968619150640906851784803652854160870359816565748620609638840222883548558000734857490631610976342092755616459470941388940374104378589623941928994031426374503821884347012686119115312500755346860108623902206669961813289239326219481537880254323001478735687376710488427189507199621520541873772005022190934099832246365184566364472029706372820983259547839627687410501650155666616752921399307493885885027692335217569898096250094670427793357643766928841943237034628316548529641245439294547841292090425861836346125964445639249813759978454617404725509883817810122738647472820695462006799418130961368943975631115949507931030042039505865459576351022184761099886346487568876969086943976692494798147513628392198474158538648912547904134873228270631871893618644987598224854771478359417089880484698600238859950580234035874430758266937671676589313742069518246712265996118235646501018401586825929680717042293112828979008838500437568963153806333799696575957364767621201738494101262124848580073079146369582366460451958993237511462921521165029557300263388186754177264539838768176947679570135376500416864192016297218157287318761456075788935655818928252644782830715230477013120313812845355902363115285227586617114256545830851720576296419839845543183849668672104136859873814396672193027082130724747339304543017287150493167217606116655738695764194664626209094870004465798924802666752715177592619915426263941999908485630580160736042704368428294981586332994174759516350003390010053019615721130383581688825113740313661883399787479262131769640315443313556313805903496590278471078443086629672868329471720549743985173551700269462034750313617955251638422813927383145694779939128534094137817710197669292449921279806734755596850493254635597812842500658265880360421478370089036641190449611370526205686050712156228443595253507530587154943602434009676022990089403389164700050064621304332320770233578245431507666082661122395771622015928018654430195655209324637816321931690454431994911782685964988262123358454484493049718892751702696423846747208779453695631456056794373783362388619803182109035703101179247022424127009536249589368632844135604575551809738508012087071871805855589026717931108372680208501136509267764823288563485637987541018338128502086962237845374584744669078865962746526533788424263780078251393676720335322544969458234058964162531380116181731051619750915456497206159530530301157713592954741522182748928493106472914557705432658881610899120165093054517061820084034595240961572082657521124118662922840467848072094284583224639263147137266074142493684817610741051385525260111378953811014099740879199285487720531724467892260063825891661513661919844003879205503888963966395427087117710772341204439743434210602418537033993254146677141395310034391652380967016899441642078652102894984597796883620667220143329298622660228661424709554956296702430242704085290973814871250350946042528654397231375606646039143087580520678398561050743774591434247696639060784886364297576223418707581839785050183302140873418124089359952579018721558141691220095063606533187729554887090206257881840528111548047816459192775450869304138981010326106764219423038139530403288060075237293801788682937082036479945041398149393116263349445556875365888331534636947590022918900652189966913690839184418247741405244533315819050685708721513999366353120043410854765195744874367584803919107887447042732729620425075009189461857729092044032046622565715440133221942680425649797594507849460473013164746583980541324160417547164437810267956225480158221553053910760664295372972513421513218852553620718730972279557978669084919181252229528890159613554225446752589234317680865267181823081611609842507197632345047152040808714741840998468196497954569553752706438155262000210034858572106670524483961524910437440648592080364519396791925014016193503248018852824393669892673918166317633645947386110046750707315248907846267195254130189923030504547571504284388205818196952224353383817321070477564686996987719669751006507247529568079566746723145594434107003595175242702930218999346549179762513101475143890168097156967126444928984440730477025794299817656127794272155484117172690653604639732964561294102547550362771030240388590621814925407375536443492188247649484529671116711493966564683492704745555213609531218164208163344294140501156746960460811325614648115723817535934556620591754296331292426646353569998955545545782068487817662696666269558777910586741343110601208596523819966523219519619926058050158429618020300020699004869336809165874100093133787210221824477353449114279113779306351758935790548267370435369769648202734187602430107714750206039958183891230033254765779036255352972789903535303120453282740166437420054226197178774242325160213629800023214217855564366439738003683158175151547365993151033786185764347617265551481727932840930193710713509980827475968595416570727080770484076546841111865747206798064655374572585779067010518185768352203243855374159099398645662393953625981955381575658048665602307428771489395474496289715397019000624719566561688572324292714137890976180868095616196219554100318758455006158874669001189349532786408079422616534615395855850777380165705815501913975835925623815403701676033994875018989493311501432906371050669897036628492849158370368840803122373581575584862930704258619913868245514382237018396472491290627247270454304934295274900569233183178553657655718333429401328342545908594770922299040127751193521709361540303380174613292607592151007913994207462895552818774438490971114103060592615575691375801734808413523220264131759170168423538386965151058046360075447133811528787790087636274852516538907326830879847925560063288526397673438322474771099903433084936778017956824595794570762676180890320325132995995722836443827892428077117234927327588595267444877034090032828712139088044680233476858628475124935487271351313532539364512976906728738953406077154875815247253564025325197794788272333228723958088842610208634603831698250840472590165966224399034002805305318701350660600413477826144076810239915507041355243225632665360706100635065109736530513892816252795897192571111347255129421317445008526708778679129649956768462042224728591289120282083338339062124834474477766462685087747718189791329154904347369202445849672446677596193162828556895918553999023011632137718482668610532452123144558457377179938996077017020809971160877031346542594438518020704288231396689797041871889968953617427455246696313020986885828707302000654547567882058974992020691427191596973352960198099903534504403545452306447792158869090242283576035222049442488873206695407748954846461675893016675780015511619542110820353957296488421570387695217890673789311073435841404834380315732495741762956937446062168399023219726148744982372036251499951547228265277699368251745700626081489270225855502057300878284419379156479257404552154692041498919514947350009884615372927369642514670028576899402197515248075201743912972337378575823072471370992430306291193378799258718335249658221205873012447276477847262629652028919581960918002539380911928182894214793135735565838814954292204232086098229989816345637195524328069766687010150556700105002713798472852353299090788520597305180016159483097790533740867573460456852253657605730631081547322923011659694278891895988030177292157523890362196119230348396792039651473214357213886379885937687001181604624502489301094153344136172524075324416285859066261190137686529528091404783897852765844887629856035364832832535419214083307072552533085340730640752252045176256025533254231379870265636125179145434993245836467120188241661566298655878081117618631546461108354323337314869409982385928110718439474408726148108193864898930132627803925553341548852265118315738349963035593959493836419242482722758389539275840600296027338098458561451513848514536836865938276604489377166396014076098629593938892602630507656567198366005249757401955861081332237668284118684048077148716255499214198661474322276313923650584046358202773136415013064080905334506515049070620521443331308053888007251390982156899342892177791260796436837070660547439187953922927356026752945446207408620937568040562774205193801252665896081102900485070338991348553666162818283304634233433295027300465035138917931283222000500435333557559542704105784357999524923406214853604529053148815864321653687338652772521185120679226587943929102035925696334529627571523486794229832614698566501190230249817491034594963875947661066427970710773299267965421239446898298339749010403567702019058013989786558705767288782032401862177755467830144935401007590844684259900101208803664412868772904686760979708290067890407070253341930046370064221672878511729174124072714675644714144433994079633580197653569299558331420083203841005773750099553746920034688857171579681254956517840909303782125144675963928013986989877002091232397479807009989262986872423179454401934150485562102589611431417291083781113505297508227927358151349113818879600475801654023534900168524184708281266227091403749714149819667692320236458329392061259717817887396495564746305775862621099419962656396677254048329803496272225985536080653406462447966909910499514931297419338257736571433527572123487454438917442955655317242828193869809232848257206084452492334008140745122519661659147525871693250919989416430715607901150554541909584346483936506340178524657705696291358965258459183740444726220244038076000000926606150594342155905699039843282960111266942736403444469570931953637225390254440889214971110551133576933641897268804113729186279441415144025522052329002366024667213444053922180611147041938685011664466216174969935801037922359184310739199946740894138329482677931826361002178205576027418322298983878102708481579511493870142720574197625179207841853227510978216300462033533938703770143421359155190525964318239993215238405849214202282084251065452509010604201189385459797295903778117739471367450346578866250088988588722339438753356609209749171508432561278351196233593884219060611866855326090615751972962760562331341030942781032720323583098373059180843981407456587532301832105803989137309314803268806124982289442185577681888572194326846692300026950465684796804456158173152278025227506084109163924185525041476097150905543592124762783495936620585978928768806509567236721990954644023676759308279306134935300620341986624093695148612223453217806738998292861896399176832185029848979071076224036636152648459438279851983080790093135104721848928212574103353943424895670558095832264301300789161315147084577207540683828392134819968169005682247494770502188723712774433752202773471907055737661484812087526892917721008407696394301370775179490912900302710776532704773991856717800623728469338412341843029773300516494536722588504424136003030676030478026704442123676346036744445662696836793625930335159651820230448137673653990671427446966378706670504630550356382363109100323584816598261628381257243252071464242734767732758238913030427443762732207388679513203622025255530751583169510555196248076473156971455722617209513238771109409163680494856417250188794142094749356668385832988488826754623814981224193195896206066981314079107035107421425540505392213081161760257647260024138606095338113462430899534159620991727272867019099996531986877881840107802279623659339093032141174355258053118212137843216592881908930549001764011288004063029856699734971084700811602601140819068928281046781614694800029683368190262288064815095701728818539719477218091578440185133363009828005433453722858939813998097253708534967198573903140672988215880852152078457202616997912418837448522829126004017116631965722234491319201730723606890081732382415311024136980264699122041271838443116410431411238196793098159023715265665664403074900071223173144322825133277153600542693925243949811667583391888548535106766586223532774280945155496084608591694894468232671516784889214371249509336575856230274835199479166856623444670299928237312207529160255088781495363287050361548245329480719645862868851109076184280136374252339049171673564445240499796959442691405142121439166193541983023673496094790645239522194013293156934116735128305301925543977205188089232878556429144710273045879234584638955865500208299749998196202002626348619174104186889917879448895762776486846316724083682303421074335262740711344117338203634575610164770472874579215926182489688392719096128571105232862489724725901133428346021493802256802297434455792187506513132216157057053153083658960540938346180161188734561420064729224179866260877387722766286748643692630785757898030687468618701341978704513210333259379604190550960337163803378301458087683301894427334216710149321953612322113267492970638759351874003006410953896576307561861890468604985095538838330515309954573361602318980659140277160590732759724218527434036424046034009070905089613722408064008350670098446176987704344969594100050291916906688654183715408572453732149829675867139352095494601791462700273679449237319007556667626145779692424933517353010571770881060294760472051195679269977649415412773565380727804772019010390199017864911467749933980499827749049743591275310682061739377295941763776730727926190186176851559647989634629002631321593678685393970324942374022796864945876590286985001041466382404758521767785499714539778621629946633557273459922615041545579750472171914867973834415574908716387346038387101164364886959269841548864629510635173373027596208985821170018319957881343973544121908618373709473517603304250720423400607237672006319637452873084817907551175877712922990970238969291319999648635336737724342433705327444610130179247030220427359049998966349959600395176950836611486490271934668272162072294111575722582056968863841117520496709538141767359686582458816727434706051105798094861661360371267914865886485841200036122239833489658650128962900201495789007475975575287981564881848596685965337122137794691435523696877655537371259538044740108851825039982534845654860943155671599648436501034295315861808892112942146046582987620477028932554449525614323862534529465897787227908526425536296640581392984437161012163048516771435366514047702382831351009411522756674200419375086504592456655070784705486159047501242065686324607373072100398419075247065366696789211442891836684153991396483308450121783580425078859050269761724250971284372565825204713453815524237109118216897368407774029117125114623166659981333742677495282558892017274329187005366621064178430941143862999050319212624967816636597152964112073535137222054719132680312613767137252597246594485666183251230701745845471927643812035181467013580753059094783012131779571804638997208922859294290421598011826280110835305255253746168292169298017779456208202089357309401275387299959997435210415934216210212233599797732369542021607690431098625653207039256961064527684713815467110801248444839948174656655505259445342876736746399577668725709366895240883619533263322046502689451722979239423802864986227564961318877916637147714057208576260352776840054823350425106358054424003932301644425566792651240856934632882620253009921633811813244806372915012918760594832388056408771287830447540646267985966912057328483917609239428163052299561338546785791363563716237477296169378641286889750784484404068935303608995303026629733993825843641626943381892060667433563198961008633406640468791871575845820784410575854280899230532739547859571720559640441835533463824382682930465966492658597690607142233983920820637656955359287215058064679250457659200840818240570094289697537144016422486334204921578232994299740729621016127659701089906024631114366381485765825655943820983136021767209903417365382037211411253974196572541001157575298310768442073411800910185319294364398291271372127820049229368700787554368721610111545127103378741387723448253917986430305653405991675195634514821531280550011264694417275733409708984294732224212790456167384388984670386843756537978839151904141541501701496177046428906979738950451634042116105165512149248636313440058353963762301463298508940447655995407647541963833404942143161418505982450456160386270243124674185407889349347805181502675442943896127042110292205569751760790299963392940712452230619613358313488645080060187685554199224392852687050564299365320446755391676175602805774480001241283289030370567483341304319927617820451643284925202232110740464244404186432710267482044328041624516731710504614754538872894669974994103545916261834491300263006229149606720565263124357869971263989274723509695211420996705815581176776729687774482429805944972742471801773819687674499578658450074691462192685080943794248116500520544146027682804434896621823887721746766601740776127558498402607622769373467051075921756167980767559181984763108046387760620261128385895676572812473165439471484716924104858243583133020332962276659796994576663484981528665711180333482933564514905822740438796019712658211007910061548163232974933553964672482338131979178701846476326128586982053834014660061409371572398173597651029127464761195614684655569277874655078772536002177320124277348047955229850767867318277098355290379214804843601482003365691262647466798704847032381205789576835428011266656653551179545032986492351952651374690680280488881636909369573688364168414487898400174952963449669307075925939428700763893749357173352862681887895137492579542623458848822016762647697958526960275809735080934679111897755129156157876934406980138889184789025128504334183377390306971651703746922141811564468922166848340202650933066764491596466338941647288258841179633390444427354971706042560098044056663265207288485117623470116844720584318228319647850351259098525441435337711457572619594723722160672092835748173769389423173073214038000931590506729573682740903830953770261450913579440552380191011901036518631299141921993660731317300614496218337191762233925575618829560965290060248434732226017963174648460543062727827256932690150137516330086407869527774756332330737144602883226644540751370238751170404448188387260234480891065692154246233455463980508597418183310067329792541168055983997835856221375991861722330996416255507755901760350867732832634787376030630043601710463276370240810859652590151467096925349352214824824143572994912688527831659437221521789589838962934433906880446570975877380285842886006159752337613700333107737697219121261958627529820557167858215008612793723928377792823813029321588216450020200488295067017762431039042932599142127136697526297594844740284474841850654740056707291881661027142222320065087100900820992055771908763371531592609477430824732224298264610921908979670283672628543584864001085583393447921520635442404092248644028772367037893042756428715722277776730867469961519296750366678940102896599854340989133581884447055581872187013467925856322980733676264189577150559176904785419065425348747455879847013563175011156015199022507333454447451434493022982192896888779134310634316581586768888042928375160524578625183632840792651903476386398923979009986947996232668354897907919039625778205668350467168814684539747274051762187035713955699862990020882940808523030454446241899995049915665258246550579397124445307021412450369476612313355659791008718435562701966861799085788543552664859934324266933169607131037152450251306664508768673911387597574787322174329053111749916067359272831946672205001132233435017750598242023311742376591883316054881143670026727877740762467937208268791307707173083759356838078895708890151681609203482213082433574377786611684284546375578797523453329078680855690357118514134810509716458344352497785294512075411599771622828419303330396926781417857886391722689774225709055954450268531333012051025939996024278817597108744947059475189552596617612426062949824904317019882573282826901927333561482718955364392995024648019443097578023413309697048331987051530605688192850088434336633468746376200740853973868622604191284647748190458402659294322873532496473596514102094164979665941633336862662781301295497030754068710985728629937898620791269983677603298055613499685089305219949937196827592899790329858406789089697224514359249037805459453244795610820118798549887438787164708915516228282935631412194683057682048897760417192685594372200480787518314286517449108277243410360631498278679290275519454389291024479513412814662823938724445316758986305706876579373430585443691343576177620361893855113683925485605094516916376074483491168245176569984472983699094178673610770226050397282507053906694223187847157797878359912614113448884028757206642700892074469797911739899032361725237698945418016310563986657566959266500438341906615779927817626779179176145753676314160487849121055114042567575695384148258907271655874589928990819537296039131428408434065462175347401544858465209830583006345526940860565284398458960110668680148200084901060341020148386589415290975813856673520595245693887596841463510406534770746930038026175992644989365511379878019498253562866988093743855828246945675821072417100000535458999099160939049656189822443258621885194738409597701611598822370284430691367207127138808716567199985420016717585843887516127308717797074040685021378615066961899811966964988084497146070014833846214632299897509346491762463537328299870984036112167204236845521805011258875962958954279262255566044011845872378213618229508132341267011288395098992810810143928717422853929238886046579440430847476939478841559023286713525176602117150206557649819193008671182891412345540476442285051482805636590873083801037143745321180639563494725292849499995695257613899343418315624553845510475120880848985088939207084977151163092130692990192272524179530128760160832596112323496687564354351636809381974556677063459210826071469216927514657108487270345333528390679398426356058594092742249786055792657638876581704575353004560879694397596471439535529288215659833908249488371824052018855813762923017379944374675274681801905488784229214246211837578200302229840258325360094025622058126086623977712938299353595749267847691985758323471279279207440923359798020023097849077023656471040424343195738665731788915081793457700794683282694732297296288175471168490764535667409900543080006114217892944135993608175791750971452547945601037127208419349451164289980394816056067647852552200478816322702465761143131852601840359266204919510215465145522620001248890749655815616239203708545451565545621019110643864243439343425634697676202103633968685389310096372094426833375212861202523482705597297974735236246974116849740094382900916982121801862513014620672730975564278956168335674939651744699312852239194578139497736288468786329007356072838073383702324041142117145737303638498389106791489551321425109758196989403152042570708210687327778955209330145315880401206956653335724429412651876738315217770283545600307308700038326280785477502242946314380601689463223367309871273656020031273518122074331878142219979633197021789366491795357003043788702551790032625221374623830310987536137998910892494188720288520362891985082031488570924622303295053732018272524641748144756923126716650001550609139383098376490208140386524998175622649811024575095222801111529449154317188568127477919003835516538126884420126404735913303994392998375418281378530374604230689716918390401536716976298665230504180793379383953194237130961646993286898050864013025545839605146327216905368800254837601162149858656519678939561174219943022756589861138357652695265135868895566665810640070321034648471466538476180571119909412134270523319890659793893553691651164177864974599141517845817174500384304494452293761819404613644735215251642011734051178027301679380361238074610091291045265399425527320591813270251311948861333710129988167833014832969047015136434921552259024560266018404362393668797188505710012344937355981229549211493462521093825250345537854482113143633865535731696962643280853002953650884542596693096173551246038193700874263294016285099332084587418700170990074903874030553979530421879038960440405839322448254284425016212729691970289390400941219204975098809086247255968565263631711843564950737163380088836893649145948998134843662255960405171928434131131552817254795222013749694355703005654231215566158621687722177983207778968661377202614537269025131275969311818631599895093881803132709752692032989577512097598005216488150855938046591867179499516855397465108320349092249244632719693580421665769754302204936837471465818047704238959365159438826005693487985029811891568386682215486240906647520491955263636810429216365719591486834422375466247675134658643804412098032634840983196239032071041585927364968465622657714850824277147574945918601016931256603084461908773527944608131084998234669638808796693988317541227517226117998407467858828000319551114845812614241104793217955147639485313506003354127852569574067010919078931845727252743716045241207869010164791221903345435427248561729236589618536050310792001071971525622350986768031890351554640461966407068914506748365532186195471144716456166384336922559929031916510248960259069217422989477941374682944210798052108996414790220857281291963401202866265937551252628766515512889665999979847725827677402133517774452866991527125860099299098134176118187345214460254027407235027129205550558059872386588067133077343256566379179703370418515757592922741886739808828997358276760381359977785621384952922534064752098380241089827669228120139133083090982621619350840736039091865640382841071215404559255202736950004173818003366191235151909636205721696615623781973746583373850593673199489811370789515234566796711292021081049938807414601740279881961635813626821302305495553462549848574499236233643099336715327597521638193043021039389202973340878061262437226618619599483647446594301463002393009184968903953358389063444319591405839458492107499039938510482959151623694936122495717442833870152083731298600996700136461102921444344435683857677379803527912863360362971788849354141704198400089363332029299896715228658416794598884917445961599411941342932218442003022375775920625056904432243365395115962012439866747408167001905398943743066621964931534132245996903445944011152126191534252689155645527490772580900490151712963406765135029595808718631309543309480361105702488741205218173681771374783298499919134973289164618942791728838908435936958612557268786942022733892994670114723148131110532515895500767331910441373400424137438145963455012439792998979713111218173506057034272377289130901269925622005456746520098874057916250171031739395858116800310294940448569963073278858442808267027710669523204280006719305123676617914283156351358091259001388243429942384722745680587207590086769544826486542703937577750923670023265521381647477526766179581265622782148510156517159232532794839031713750003198560463717605362873577187224940890154680383455908143783388970902986858817877019504517155909161389096561973441604291721213291510774308523911359048696491546464758792629659925223485026643520560266409046557009928643071675628093283543971997066741567535169014496988346400815472358124367633259571349587900399717638728228075193653835661587960119133716423234130892882557089220470152712629595794367410256497825021433652263768126000189448756099244943900142621382525583041850687297446532987254708465235930989224880330897962185434919975212600708335862669354812672297321431664986181559287073025729427174675847104052532621552432006640046354056826734417373137289709632430429645480670807376663709822065847227127462277840707951983839946200326452131667943389769468347845560845318604816721286182375949585530764648696300459142508138200259425525193204069182291801402469700114319306856172868743158631684333094941255723599917483784245625521084987627359340457238630205523536334074859518036196645975702320373723196033373785087002137579256804365154215474965724522088693491179107669723002846649502651502497263591433412668549657902835499436467137770573256958993069058359497512824330452105990732468768875993618970699066546645601632547830924225372261732875236068639371492413865440030737280492157293802314015833757649798497685358640465738671797559299615772683755931951172251879938964451182811182909741581909341619504072568345244620120578804058443636775378067008147397198872728811454678357257608355998927754624492678179707746845620441775160360803861105169704218620863126422239312979992683008748267944355262859075468795047383709908578064667780107889191490966421876347521981139802391860448157569494069229033451495044487693675208741458234056663028612687310636222015636031940636803653990943292409219750857249745363474487943387166190170832989753022958038102846298162926151561841466053445736907911419196789707107101452277279303536648860862474520272512533068796766962937314670999881940969986240892732707962883660698887077381101078180139781187482961025498141078238675234838686739268422593364900169892133583276577125479409944433332984223687130303554696867378134171711313641092062774558088596804632054184687597011129392471978355175808992764134055206289130063095760289463273705363858909504506478141778375490940470164116677220293453055070096806185974959167268880451052107885569185881829902632668055518473884374365542899799032753715691906063928488644905395056986314953465138653010348677804954913065663589759862946763471528550245164386480164459654258743419690121726566737662068726199889560814791198005005172541429919901221698292464234801134043688391639802313457470050572037724272526856184328090068001179022985806505975077244457689059944846078642745355428812127883939946523866347251867614151413929939711250278651995831197303025767888423475717232357376861182713867616074466579306600925811797413247130833949830242140744146066152095140824321787889715558203133425723862353714268509360954328960828826869741926087370320326251340186914154031134125191451825329509199259195046496241418797343544354547756689823114572101791165684843264557446063326091475972574404356915133778559787726309510319681511124443350578345215229694312315852933336004634499773294974869459779152892000770411332842615799661218460210883466977209540522728314500657055529880160495186410954178678989725092315598462864909608823587196040483123734601853295470549266321417304470089794380618623334772507664848238952681165466572231766706832337152679452473141836845993338110170912194095401317228732847402546671155853667373374758122438398967196761590542296546008232270933320011556086367553251254674044472304681833485499032950053186242791074815839858100224934216690689168761735174667586262076709186094956231836078112558413023015778243623838520991060122242489210133112194506196560581252142468693721042702896616039944095570648868083240744601192379017062121201549892803642951171870553191927843146789771321022193352585710855131219210222392175251988633912753352529756388906190383295638107822606567972662730621756242168571636756777557811007746223737403667926730374821290244136583413083598200613199764604155705554244862341131606909554846390620425514020323455273514155861506565566967307785274489407063932498884659946960544368981895822793456443003210623164236452667299583686265754260595870292650506102391320677657688103280542480793065825024572944198052642092922522290726329196084470437261155122169373506009088620475769909532951896512836519043683877187680493895913932257545712847535265543545188811690778679929549680860481327521388300044368250835043972056433533891255862915540351464427531927742170894920601876837253411897379862689341959191467941952774582291513607606268588512495089798700869356994855381384435643474613811401751357210352325805131975521485294387019516565977537842260468852559984336628599708968241651515427221768145778301460925784838003178745907519245151223582612569683611820638888252431494853599103762867389159236619539104331460189591089957896068920833682532265148237061232085432662391663777358778853022474029397719098662894137059248544035937862962112610546655179709137720688282761315247923530563593862923119842555559247964180873276514318849977364108370119956974198354830626666777844687829141951000093898754953640021575516990470973407813930193443002650069362318834160801094870137238782721357220176808218270397235499714241973147067164740936472598682690164079942119700727284276586317876768446140800485199792085579149836418363867447853075761617676952441752496672093489996420040138640412883689987948973950516397470661564060579083262624005077945111016718688999809758194642449037102643968147246409592880934182739968933418386995563180836721249621979813524502472726219721481822408746203309274349271883057970571647567164592553721535023045426454426498818844731631918315422651989619502799316975141447023892406420966001091261930063716458207049611817344745305306719047974302744857308397467916445215219689623521461763897873680222764722935982911044114257154364656701846578426893898698350327819383329642886744271092787858589173263622150436914317607761397957441988514872823331407643633804128839296415921363308760498262968047736479939933245846204007400275925432799444484978061312449409899049254960259836467171881212453108596546761788596345413967704289012065941242226875023871758674403874989368363591754123933175561807422702512602421759343977321824913975978102589204118559467637352310760747594427355962535820893228164269339279450287133036975126860459402737238268929305398520646103219422855416738606441664756819320364334202965503228733010627263052473205073469773680318824517942980988270236972548227491408896210369940617366430510550881887024219367370943036273696772766219733195122518251853598892430181035703539380000263280499275148169202793686379999984072514346275780268183957331052683329502175266140425639564256539320634125007998402210301999599514927298563724860961266245277960453414197265014896657445287500043194402239568862757851869460754884014594992734226820933102758193711205457983091379200084551424175904113799638936091042760839429445624725704737534894614277768471265186208411901716911819672426576631072397163718992159046757924233722935321876425333036752668457522406064543548195932964727364350320154881743858086552279942239659320431755076408528311652518650496089859665374255664868049214849753446326243224292936587485211742326050876596945362944316092357639984680153682502329765317758547478978651331112374938991604979263491558582328713786200823106060450959394556753817118924403481403084139439996468215676488027036832780268282893071543780526538875756115827083856148637751601139527826198729031238171874393847728721691768713635293381262134796334220857892693915934482418474478563723023806253511855551471556140021994803484525265859913261711957630735143912624290482369009107438450277976438526396538486625565877145642355652048180422411880278191764330903821984487303786774819351917327600460698984674003293815851898163305221967470025526076164635064814243151689383302734510227703289978234191873547949511965713583860749838773907743067454994311384871725483007237091260308204234541180970649215114698239978123529100450860671278023643840441330485814327486864630185895213774713017652891539074009431456596579123212111290972983168146379368207089791599843105293567090333791699167912808231089519888086967884858801656498257260270541922615461317543772533214516515861571408588524966303773234088156749879876216917589200316493576318814241117483714214384661975934119735852563103802079776171709598065808481455428928076951148245024488433069481236806511407305145488999990745923600195546234518249092042792297777880201559409200760475631471483046524935014730194849961998210415714235393360251821945748372781177911799369837532242223654937274517852203092290859885255442269465219509619240217377019772697375583694641782209768359357880849923968045881756700524965534208088962936255789956522987277101574246592145286396676063365785563927128274892888046099477722966157405366871164919529532571734520942172743774552009022229712523858551504037901160160956381779701126579398310764444623358635485803525894689196952990431268487858988515241034894196410262916205022258195905079118471218033055247798512978045526808397448379375742897172330756462684933509078597101048161481191489961032629586724611575903318758464298052832162870006561229758888358014734838354641623828290289793262113409296301737987244645557207513937256578256668143042519748400488594842027917381342451317766951761592753941863709126066416961775822687922555159728017966844644231826838637282609666000893673575077815201454140818099233622818217486932651066529266293580232144589759030872945462545534594727238402527327394703929487962920150723129193444602437201872015213252573103779603712189467017910666118247249650026319999947174705186414786788344847226510665508574554064853454044378616453113235799143093540299498189448828851629740759513109531615514027872716468212578552539257798141244440646237610223891385212275698429075310600620313702459408967599794495394892693499281844954583655517967583501633716595144902429596229631388318083767799123601472905279538177792755992908958842485617793522643846625763476155183800616207294343423489562195795920596004868283244228373713480520113614551945081476857337218364638534076309185752123190273198128034312507414296347627321937856062755798928687793096345461482666555936096634484639415572532738807100527408577204009623460256185456401129919986631906897703146266307875038360061158982005913636096204547551861840360052346217245131585903193726147170409785001446751560591071624951559007557603128747848770745480328104320781511387910443978060057693229051853685485018241784127459501342499116577767237728762286422517486307063458641629416920740321282162243673979939096015137998716864768105893503673608229273618996841992843015210282403096021491826776325814059516614079933824552635100036244702684541151579805604471932638477019791676628790309430698735762715097311057611956825067618226700900435468371262148525649907041060856239928704462440867946890311207728461189890715473408372832352843867723745914162076377444668188428870010753690255396474277795728033085810706706572567948435676331385814833999725274433252282134913732396199455230494819912870800271510053970769558828893692649031748970644199755943644349172354332164064808994427500957830818519298818558204753150368490333099824729641347904463095844245659074435408144531171869208190889053383416809247069445052906782139708538762866859773405483173526455845590825045999896852798110229912621666336280067140432202776989535624879203757743207697465295094109785124922428139739125307039357894571666492517972220232850248764959095984092054563750667389252379547971043081648261100996114710121075073115417715810538372644994278734908938074421258534376583198688542533426132091375723783535790804752934137373205294726807818220121216059712445538041290979900165947440447423828109773044174738167041056141211489624864896393214886561956959935765685936819928468964398838399208450023096767075591847331630484173873316310749251166097201842499656458518361559967578745833893666497496423752664156748935836276515824630454611768918984210204624414868213319468264805210964060607809107745172934569230564060586443683976243048429534165757567487993389964154856209699948499289946753915894973270394594175580884805976445028963389724916407060125230058975239535780581480249293763750975183441681379995484832250513016334380040725910130608098259885929037391625490960789874159055205126368443877161248076756804157780363555606203905191485963808489348707819632557338295811923298217812751653767706969658861253474242788928113821432935712158169133233316955006324302552429445596575114576191235990935331844046803649419566164961730337255692940546377116117792528860385686422869109419277981138393813848375057276506070281875177374724661441040409834269820904848511492067172120086225081734276370403812308456549583746699888569120506519316057716783417743089015837855255517126383406146770753268010131443399045226449453358353058012422920797082065321450282160614026184160803376051165110433594382840044710560810929542636332217781778329477790088704024670540829798413469042352257252564240690233101725595748362060929103547698754576847704882183599873254837663478883168800765801406678350137118965654319168910840230880422831290373648157993895191249641568945331408050887093853780249340917330645828796258145085479959510552972662113025527432039435018562494968281888304544550946874254023941030458407322371545386956900859640213312450879206808850195857165515835160345070792145429315362599062845502271763553949996666386249155895150710201682332727545959521552240308524645239328988014032455404194235439929438094489346497327078007780225288928060138323119674632202882280671414384189646201384716308902210469205142615072078998250564239880650045337518809499859577897617024098538958539377074549719469203731941155803464621151909271200506871555776002963008087066766688864682247750475872414576610180620040106310415648233146309737672773670978829856324658035302440178151748894493622352334398238447569915155097848008043110745888784768482852357979544133017967779893590346396349198828884316645145947522176106926082228879510419425655607769128271970066111025411421274148604697365668242506527821584120492500655733234078927869591754167541049425863148595281368184019122739898284562517064086237835074827447779033119627351284317441017463209364679799015290613200287965299891402155808357024231861309483066285546406174581678046837302241657366893759833487620398794614598465429275615169254667436556433175022206605143155031931895991450762796371486377452997822906341395332302307845716079780490295461669379958573176978229389302122304760489476499516816879034121771278824030108463180316336544523167544914496318390545767379199023422632868162876710144266854800209370489780150623518638435826279529064225934209724119222369574759337162521581580190775022853582493326505797878169011690247302398028650560203963362063288451344311000102639776262956550637245319872253299289538369272582834779871441306936896392922875701281702422792234122490690203800928147441096049978253025676289803046573076169272036828677358022951318817630431312859468713832951575692420544710135265733890637333149745008809085662858528652340618946850235454515185574479956813679172531104241940120623627303186393190635275278091263460689135667147332425792969645073085679210649265981168071145926332894767349906978122506118696157982006311870529995051181621546319387861969753131107221372302738143830676439747828048387462788940430727225595681093194422099166955786407192025906029339148184348341644791869698715398415872411669856474928962047722444851190953419050989087835362604601166930600495624645069392564819957464649054428026642797631963038931818552294862350802502613851588028206200265894793812363679623336272693004042051558955451254681148015198566388401839193372904825966427429955942841568129684167366932938925877917700082815919011287549074874484818357426843972813725956624446037037856136623376709848820383666738014237402269769555654683372145077581963193773850032465956752453886437909829147211720617169598174086421586983362724563567780195673172048736621173823606036212790985078194887981057501716330831939945463448310059013683394790308847691988462244614081633861177914297911089016257678619574889280693214915735950110153249125075715137683964178981334408207843455060216091174298526309676608896438129128402468914235471731015240672448440801754570500190852929822396505497351062326623011966749827233683488575802939160369058323413680413209518547157253114084234544497990309566150455448430437584193172922102990792923808174865347473584294775994786071166027002707143729415026088914666869021429217722230302640471725614733671992960720423529808550525429086631166899153158924065331074390615800768110698046876833153395061397613352871266030329104711085145513879246042180912109539963457874918160478350897269207309556351410577640885096568733534311437337198037488795631260670968904072103215472359288327394644986923495111986077309048486012361864312611644935783525674084880210685377266844310209829574926025571372578340340678255567897521622953177571605862131781997151997307610411229411977959110435909804564623596271591812645600107635724748185952076617296481709844614184870463942494989486288903563798975163195359189635789745902261994223505987258048637730122921076576426075791857068274855019158139138450390985576485607918524498357810723450189364431063999934399106487287812518319245229405568601441853537443813273814760779481370081493671990109435460889724843008593463752183564316523670864768349912230476670661737354920092734547890167007668204490341689001175315912696029972457386922587697279673558033256422931444850498941195132981437426054488834738063976537863861125516604388897158526314855774819375868289850760733140441365855643174658498616544955438188526148559075319115503548944779998992278981422207196175485332647400955556303639729171770549357631833623063460458620587230797515123479442140850058198455026296029376674386536764586263198186819828869254532585197261224140331354783634092716786281226856434786911664475382083966732287407009256136155831652452531930991982864849454728790880441765584621098306902860850077014027615252157169512521494100125610403617753119637814209600653543647184610031537493421499663748756783163777149308155665440056388291985058077600502276833741864976407308799801435072124574629780490186944997240085835511381385928069584184314423869068289826422450243210781385414260051139917379409089231611488286440052427557232510032199969461083094421504752584722252912784495867898348205608349676127908222244176196552182739729762562409685953076257245251986233309916236248132917955299748170290738006521100727626816290071338392445284254730055914157920580660759217441946432976578338395896590849325850061705437157696734131081302649432143227554859099196610244083774631847420006300323948123431413214336088137096105074491930345782310393189736113776928204083518745709250467270975945914892127463590400667992971065462954393279199013141646735613493894210457240632762488064063998169462125274079259951665727800428227650629599259996496693272445303264108988466846850235972952776884606696497206665546667489651792025143539227954578146387349113544068557870439032699684213491570628332692933915171877135722061454139332542186096361436727238947752378980293562569476925930471584868742461043198589150664973694916835278179760993670003148724996825669876021199147335040199840352034173769018188905354066650289493108076548184296044835827603037571062938774100643113558139168079492232421060440955382345501949142063377434367419839187231606999098226543279006080660468234458287937282570106916469249045190624415338321677385922567482399125687790218283677309427766892333981710341714056043591322223218307208253187342934295601994967600560774383405318237371193156485701722544760176572599633529215041173356191420315439061011421524438917506170633041158433107994704501938880851164992853989622500155032937837181534745631794187631288014561470813324696576142825290733440215189167802380806317945966227012586775522112297038204852643122596337156344272928167230623795707696156481771236903378228477886064610726086460889860432128866903010849534591289943897144675445838882249313724082618697347945370642589847531878268543254242365012330015833526548643757088762608411630917154739514226877866238346120290571742908821898600734250975085736188783498273682560967830631783503039014220021932470886768236661655714476415896911923670517837556746704637737107266698886638758188180487850200294874347513233467994124003653769200163335253995670440546147368287077690405691378404909601991614235535166061263118838594519503154380550603017158120984476193140787515399968978556420305538741855519868716796124632559665541344107822947727869596168041510062041464616155544702451983141128963376127670645671534724466335029727550886026685137711506471196959762756904988198051993229670318692542608929705581170562542740907677545074229707221466375473741539099812090359916014246103904048462613747416630828528703749466639170693122197746388815667430269760048014241267327659648096159372897010537163226128653934638652206267850923420122272046709108204566585338889700595553415170170662784031509076690449825281019531877451330153957544949460005003890342578570488508597119538318983922184873046866735330776866584962673662270085835846333229605779190002723783671364635233451913916171709945736213685532087264855024600935594109553482807652225513302333760567285828181295813060987769392867907727613088420134968148696645380687816275045699267601527391120564530935762718436631520918502879794620953799767848879698022336898061140232012807814056628777706756228770926005158820991822183016794602578736725192882266131317516914671214356914878739948032187643162229154923402014388769045705587624163385810049017304161363559553927382340845457996030658312441116344851496184012282335411921403945428344027018308419320045057989919108362685296051480799215455892690626666506951176837646822332212976227084521083258756351224373443130347126735565452413853923723720719430949358205742852575058372415307358131507593901721644772901750980997472722546720947528538626927534950025484153389618834063330248586174455198962513291956855671322315161902596150823340526989584325613479967566989963970978658515649052731740001001654261581889941523061188148317717527537714902890608284987959558693236709765520540841248849329976302959771535699127593175891797294968507389841221394514064674555432628019397519542537332256898261484003170131699766000275353264785651230424254720113296283328889866905205022711497888320938027351366591655234208252940778701234178132362472360243356571007497966009015426078077855446393411372385540191466624262403045516576309138312365083636910331679463561760788311928858422544290505962344515893186752161649158968171211132863048259206803199057072234478447279535266353977442215657296835387716397617051494316718430575170412102982744863102645293571945055066745346454509771342533840798640557800170925012109731062895263082285076150467523636082411181096953057463827264517222172048663182886743515063317424218024303363019807509126635703803066495993114500837547783820202558169905677389244314222931799329969734276231468369426340547295165035744325835087431308953158142099944084442304594687740234199621301954734032220007211470128428313100237851705036531763356197729621315822088201598389519156556061804358769264137684793028886973074793410194456946986664492573743367730042749279248715500964723785048353830443061850829951527879937597889523715287310302019575456980530500303519498320778863707213484680584893869076310578062932717683932501778676200119951123672125426837323635090096102246128718116563832187355249912370902836150196316723264617370929874358192376657607279711299703747562109202172597826034612425372343256630526820449183702103797464001847697430307635109577136077034891564162824697889737205422483795726798176108698434587460496876851186283829598776489528113332047593314929650621141950352197966285418991128834708423063745525163508177375682778883085038834500787300877823280010552877225549105938705069809783570469247019644151686547170220061964892707010536072488659179019126874803346685927959164463518121474634611855399635073018091136912258543032382917898290033653594171057473071399670278164441605143142908680277342669376506601207933483989107099028522949107868490932291481233106867932368953661624383889462674739371578140491393918728200248719312362425396595491933061527709800058375851176639654814165303895217514198024629993742642579107726187799571538650754043461725130698487662396235932500433776929120508493099529887671066609464465219938058641223366221498295469204720065644107126978880890799747702672904175213058020770445925707000794894873142027116739976961964048118138064041063156377887002037480423843847384955008271059442514295315324389565915373461799554554721859887356263222416536186532507964930688297807517677540269080093104093139103376892647149543197297344210221570142904158003082320616896750563957551871138318249443980433127381654819153931540486224469837668270404700665886275219837931824819496795953190734388290982301458583286961325110325520922335150966574444916313992148717946630226345401969799118691579424477764897655867156364686380018886934423156888889825469768707149137060445751037169161575455941394767955976700503800737640680184295928103308394294806458860974790815858164597057059693517674702500999846458835780229406288093019745675821536327732919231026063918297994796354902249271583865114533350181675946733033492583413487431526856083442511812284989772100308832050892408352445982991610985670501363343785370634269409116661003701204436106702272051198661184031681409398060043188698931578665796238554722914481610745159573076940920038165306979830319683559746753238421961794360498841183269967773382305954423725142472135619720711823282916332245226846045802278119470050222157076781156975990674770065947736525979706417219083009037412037587388640544731424314110112659650425707708553332985668600290083203862958523760336647908070721861214922539732842430889692691314039385547118703604357234500232163949298361493340159468598375658158509290071220937992007555991429611434056556564065528490386749568659891902873533193016575243278676742441949316666246178392679295384775904545557054485796850443021737209952229858008439460134324864162457597022531069320776191601693307209728351771083886660061171938752291740714186233690625465053731517307770706624464581011748842769322842037406804369097534701333261060469646900641331422792004346464637157314096698305108283354283643796343170356615316869826081249734495802020028463133456788824782763295180280013827374081511604298784604499486004922220881792244814724826113861934306115950031259228200604423503611644143328795894767281394006120811142935821772812116535335116632054223970961057406240811803702710344339329749331694297426717460801208836664269285819160890893067069522501062960018039830081382614854956047641817034442205367210680906383548751414905965258290970913263294435463640455817322889764175269378261652044155586337394936261794902999809980243059040450648220780450958100692914558614410897903662807388415520071474257324544862415952257627440287777504557432482323887150847578666888290369770349238436148959958941133974666367852278329263560761686261402996260153087942922421931087393311981914729955285494473729716910068123873132077242828031045106419561541376746085573530263588629790048738200018073559406250050583653635087601018257986720742195198642566370245326618856755615068593090271053742422520271038806416430956225651090649491366309352043078292769144862830117384255260142373934469250486255544823871608658112950036083299197367560656891536348308572421575650345624102284931780663841320935118559315807160888490621032736433938867139591814848777308964391122651604874044895745064524058152602493648975013249006822927980404334108679903067792338337187570248196276561812400564538516542015207557280434732966876271414238183385094764394779950938927340418758885205431275086521703129079400027474214495469140499669013621727096195667266416392040717414905246415145903349034453252701330094572487181008487167875214206342933739155050766262742573349281040921798269984981625900834870650937342991852128609896675446831023509796734475285062557867848861789049075591491795803590999951386669554308522213977998326576111453548616628958600144949873939333999757763968590627436178662903207961906546825267815180251450225697858473198850210198810198874489691120225558910881279249105705663835200973799064338057633936841793130802802983617519974383772239711099429986553649873061049852008095975490191978911992279142737746776576305429797919510227157943745454714239026495319580900283470347102427833038977697742386676618522353541817964837793960080934679274670258016930557154515689107167208848871069218876231177988974372284550850291233574377396644227519301752506639936629094787105507172470393888031841046151572658157313943272247346250780247480141456525860231210377139919085187115337178653718645376819826765505635675390360139080140138360846388603631613414246755699490822423810276957090082543690156266467174542188272568095588665296302629797048097496248711940469616997225152542958184612102156160920521088590497280108635059564084301952355316516331285703563692036894848809298630859279314514854705962988072373786642644941035419601736687927007405159787425304488532475141100042066681427506946748125413001407474958781550379605617536366790935477931959695066999633367457856837259586110925230864127392092074966491193765005786005777731284289145147634531070216930763981778116422974018904399704894402099825049776130748334661048484023442867763080692792787541209745931020175932333613116387072131780846900054517160387036109933758201555407796455947387619635098532768997895037848510475372609413317899952036616896393790290418684215655446181749430099463276827826749098333839302527466348634204879492296483780004466736862362534911555177829482763202923285714373668680473198552049382119646475909838419184888437666559616028283300910944698043674882713696532272002163492959898149030122009959286055544621441865514412335829507465615265362403139494857606170430997695796166474808254672199699668480808550734404986087521820735680580364560758353038911911550833509811689762845408575866041038031282775605529935837646748773745077260690491443561442175585480062686033625555434946672136903229501668004468045142313338579720923250386228002602059897618728928043553634755956162145698410018074268936032429525102513644682541933340520455380614153341646290733463458951376448175536768271389239036004026632674183121719455558028835442881200834152761755409730630715640121839783607139357152179768114743997845750073460623416477496769190023467744893874404599599879572405843518200675337434518081302179325601921569829246918880649773131761227342322218247292426964841332963467894438642514602659238675976403982238417937957971923717216082473042205446820983457235663218419617308417018844594545171885581507336693520935942402949981953427492728682122497212218944694834013565634613402927775536758058703379159688396666424790993573191038915858514156195628684851574894167302519696565922596838319133480581412225179376015838410100620717797021842701986842820270829583026476552362088467366027647236653961972366883951485923537671435716574580784170936951435819753460274816217482422265747781236435893782600342974416583312201150688920805795036715681320475426155364726338284085619105122497763025300105435610038921819896051409576509217228393074020068029165568227355728114769960058307758446132610952431772880542607826827485295457686591655046690764837221604802048369495343433905923426286283341483533949744652467713002959069411505825496895089279210933548886312455551524559451146567367992343469123274961136366988838817578902755399684553042932914593805632963270727230899094760108781447720899972871541761535934716957532844114670037064164770214876056075769960649918287729144809829462451386482765857713645968343948235248449961274318788552554959276918728835065029815012821098705097085739022047825258314088256005238606464829457655365349624059918033884962328165685738499535867465710399224104869393442634643808249612652237850788394220916273666958536506379072478002816320569710761515708871337256802053044959767740680607356125549911132090011676664907257057646195632260609949137294896145843823800741705867482564311074729659725820672710166243166673065118707860169621410845410973925479880850344630133617580571982135945560548305388349456907344813140222628559748422043156820158328399888221230965334968708141231252217182387337140668797173670980178257908156403958633814640932042054729031225407207626138395075946422841115324351400880512041590440767105878878338960432778877183930249851438364609282861018562485891471833849019572291039548207044920812303945311480519804096179594766107811441833309425009848395698446930239252812469180438010033521115639143775983970185391075531418123495751554207174206511468713518523399701683179070481326720112511778055220012032118459160469606866661568036181524140821191151538143619385499866766999372700983298147863433199426602561487236219929313071831714195333458980061908185331499364376072953806729529706707021147033338738666080954939729807175751860132527482111309304171478416376894127107364460814565388411984168388178360810643122086715629716805408073602731635753117771571000738317589997275985538940553539829989053058350892611330739009343478465665030888550070096039712239428593339759856068083117785967982923227293540866407246752924449596698182386397821853441910679131879864039941670652517267499800755268711056636512410768594146884116395119440497286825563405849088735496532715452958763865942020302833532537567490035869242673916600045277384592657070647848672737718894436771863483270522066864414343506610689543372170916089968642396957974740094684351984699295495682560669562390407503005570110308533289283390799651585639138858585848883708635504735384973177804708669577413130041782504053811478591684171307301280148510688908404979440988548317221222211988731716097237741190629000256069350790364343734537910384272229027623195815004544349959892879297861050775968966856923477811479693298455634060278419157390342472260911738384262958456404126017873954864615147421018228775168830026807691956367561324749854748866552346254166369031244648871411453870256275213928537686621721142906030629252614180239410460800175912288262539846115575444041805868131865530912529877061296866095281154947330149175001138837112972636865239125618478025291501792680651417356783032443831772378567975407556145851499090250414556495495332953845287800841701701955797601495259679076542135799537096707680693308577901074925441164103897313710676718254023333992940816434639683046802619746885775424568345040694432954230549984952428306195011144214204215013309045317871655723573471607749864880637665550166197208346136397922243158088817655304611119551624786070351287334728294101231384644157746995274352137420652561863994779446102523116938945884823339421934029755131746218053016989790550755328073926505361602206172695171922699793256056026060999186671930259968268067673822615848793698521191670215005699743158562090005230079640444323121215439098701847766601412020800328084128792363683317946315323347341173420558580608198608904242501400048177356219142453858825374438370363074213058488876336849496033936938126318508615788910673130203893547106935211277987313447398496466810061210039589688394293484410989906853026413547794849727083390221733622302547159784218683362205048541716850763682244996865644536325086067691766940519154501788636503042877451419236927112080030036297804953530342104893358446595549642871931672512968236762550640747215465025056448404427567040885711775419324564010307382874524295709357120412770063564801989810580863165796119663207750280767385989027002539085328267267211837807950308055820535920720886660575951775631784022655827551157316982606796299412562100249700122822368012995592195734668857022693669541199583845848884929731536838931580362280220067747630009619957921226394275302472750335389580016962907288580108599573995197461546543463996043901007953003602385105857235113731802439442350392340674628152032839176782515665006939740824293422359675616015658309028638754326088704766776453137980047396908400425085389789946543740089136745502427558639124947830749326660465878603398139736491704203991593343188385654121586730206423701513512842703947702441793528896679020335547917735203418347037508876557392578031663670588772083284842997533688919109916952790694515842109610201812579248459789507896811581194640080063620074344962226956275228489478753209802090720128030456729507110230550494423295079657663502395038669709546288658156052767631174619190577347910308261466128889096302880278551339626297956816257189394773900182851205076567923166700548526987453882727925780598926016951207718818826344465914176256370385736583692776640063140173457413094520158611453345429846374287634988682313169912958338225069633785040765148244007515034018388305032773115714775474582342837382692294299817784341874317499224871038219491617396421968397276868887699041355804701081126632611613497919690189650753276212304459545103525867683339256628833458078725843891479706602730171120080866242875114474697564130398649805129756288554836864570371973405499488939448283151794462238854688727574781374989932158139355033314834894321890226019428054926336199436406635344176723682741952914131497940346459275302536616823439692000757262653420794485986223991204341654791335253733380062168954120159840828442704889119329032058316224754360876847804426955724676621456076976696375434852446086326863902423621151448595618334525885875273226368370150360210963046303378356340980216037645947470491451534771144454286745452964196258515178134405943175866867913872615384763331121755659029411751105814930398341341197454543087831416288297102995498609392327845577005281290205937839273641669655796435827213968125347232654889427314177194510639557197091603413523226086894815166472307597347236966955344379534651164927376722884500628647452082908589854739576052633611102884510253312337601695845947154858261256108551313045096218533541703098141818401966615571748213428338521902495702993283447817126175471692407040098106433701077607135866492194506201377562303109298208663781210840988735470107904828112331585804119409323045592266186137102128605520187408508193862386032150356763745743025606726180092430444306850805030326991534578312257547637457667043132767921150043878868782225943371245448881102686525840638280010408694689001189950659369173708339618478934730995484493025264882782872442552124956373028097125703975448357830941492492966946328034162583186819745356915802205248228835500149380473143277577663695895720077645699300538028672967909392372487991618901059304839996688617726118342608439154993300249039499101314764560433382668630386622411625357706658646363533112352133746765501495384433489194422799248317660988781512221693507201445876445299090094924609218130341446216047023224762265016033548235674050221682795819914363704586526541379257176295981053311498742061453233929890161301101071831640789339081918017195358224271466073293296289548266854850930805118801159097759699718793686234921045630913680425816920270166499034729954717901479710698499282894943917205850835707874757804977937690017310753237303764302181021020260038398455337449203567355191256482918717812944164864297697311701475766023205975804547619482426922585183032056646942468014385631327400674955182734868452639479076831414986488439944088179180039606754029380632813832989494883473257899090685997317765470091039891769686973709217736187654122889595911032502612371071666494826110674968186162722499945928976542343049691397865350428919623094973663196881301532648667070005091331229838293135906124530018293522168900809894290986257754137438624917766245502508895547928154182563760217652364546387785256428126440946576535522506955708786215776924772688218945768820263511448602194268434109335366643721447112819172627679107100824937987002480116558914898901799486287237805158354488120729388486102459416839795758573289972166028420729933802160390415735116024695104640844092149090472510391404115801883472052773115150609766028339174689889945507884666541083522376061040046886120906263699552668195037371449242502401103482706593003490059534430468315282531480914465224164049096792093994908456251651984629586115126228031319561380616020571324713448527735449356327826743493081288438067066824507539804415039841313734609447108247999488638282104639298440245033087809055025178158916376889309682190892503972872288983747139625925124420468005501557747506506845933857682030044507362826145614631550475137044307567780200942035122822113020478944531235965359358443650973460820370381604911685768794025342598899592936289969516682796627262526967385127915792270012844892265434630010338796831702138869283873881753805126681783584679842231406344159917979059023511426820794088712842461597883723232241977584816067615659920765609822280269389945231611821484520580199496627189833985152248823646723745961097922209324840691883701403979240948293681554873316071814353136762268897985001665609698046376439034777030252511016753347982614025863926378796003408946530205438740754047566105578447738193494973651405541473402732007919007808583257669474639928055664458624992553538564170797882729343385761508986097087417524820173917216066324390100430511035717321082586786186128721536320644424222675673540178439781574300140296934500139088478735904532611525116938246827811611518815463294303465291577135297903682229331597946940643539889320153517032745390731445187529902091450145733846605861055558776534013649028019619465003634642465642432337509980656703343488015581175301652707453029813134908162633915359803978829446072463512050738818086596093826493300771866743741780456358960921748246729744063500500813772095563945997956607382664768364157509268674730169866287903355166344845119641740109740414480852951272014868597185458118893267154010270994249755307426029782453890959456660572427319756545690585439793559869393141074537355924824098092980187988041223108282088544487394488609857407753576406877107766725546001151979087164935616925474802549782130815468268544399119089031195453977267112335968836646917728395147925070656150752706389864737491725568381882852182371946564094715773673957406000735578502012275370751410776351103727231162308505022846200076967291192043395903351705608574329652562540892101864942552446234823199947713050519131983654920436464595493339875551724648901951292268694323556530601471792027646954739657588032616536100896228440557610489456551259225510411486350196078918528786102942612965172599460525938576054279920272786350287296587501039315374968739861542940758647996384832814635420228315023926633468174902896932954141445411327301509943046214961259985062532989606634438237524998700396090671243289251138412696297785293280682620171761446761580679798131396361173078443275239512761588410146807923910496092029798870871840985538706788135530339393084055458541788773243648055405667847417405595652371655219320011078140856525673950180377554768184341467371681419419545440989765625904717591445692572232496420325288088235305894262410901068896934689895209256073344116470753840473134179584666706670018551832743660464715453297384457054201265326779084586499801942753956984209976185941669478555713037678522672578175899344331402813767077625244570051008745603482305389168541684937109541728158586026676599884693156200592417146073063101726194296678702823748269271499138736101058669626727939731463907495525944299132129742822158842658652685948646155063098751820534939002315514489217410437899098228832637025386063242355979779870875018913592658316411145705941209203915384850858527933697456600100108225027755283008607083203947954744087675254927933037268487427126880241389673732301763668598965830940760221690654705826926216278626423034248351734934531042936240912084944687477692397181722715360478164097109222097971305106851609672960990441191104886718777646331336228079305909630699103967502131674329294353031578657524292112444021253091923662151796298119997634589103658890534171584640820021009146940439025435795217984483564761063809014583147928096692778083094386660417907890244163546091470416345197143349021980331884493068218783817430086129087323510403916743313656831536804780520043331893920588674118036834169805275657859076389787467137320512086457643435972354287627510629641932323792061601809301864259867933836269376576390267444351663241912993507221280619306860743528067591331613672725376226873496354568083285424155507700618208090635648297939813875114056714072802250793108744539543702002874090984930271440911142911032547300146030419904004871420919049068281296066776043604775550659036877164670154242826329986618779760755719894658641093833576360326356149580336051083398440232308186844754972590515072711227516796292294515925534601622580810935415471736314911316044274303516876036501074687966928686607075520447544310162841913574802381794260147757130280849077668062297028881376443525559172433577759071217945033967708653071393514383267286140459379811720041536945168284922834383556659770573023137785175358465267282778841956400879260216603169281452874040813219337657806402640524411904705516149558387846189659949386311025090006946323410546572790090889032195985820101006507130206330404782647200864788217179202818544441835370020159977529382941090031723190132638164904093388829719800230778265862853013106217162853928652329114539094644931347943875864476781379155869729226312505178793235039346237462401496343651731908714530436523250958176979066333004213860944853581550777623649418434169012877611963629222598573779541738235418561352054733690632949481607312770055725434156337049233655874835853546929161130307223341420121215846057900130721638630898299578972525436796228711121331261580486714511848321174301742465544972306423286698352958180489028444573466223838366049514298245878329870226049555126457704375197522318371130794768941529402076845293490912850822626426215233558836869095875644046411439517655148121029175472918325610993701170498886290294051248372649036909548453537411978797592078491172212449135456468235865497254501725253682041034603909574508502873839342674172262488483498661704780666413979597965234014600754997424380027352194126824343948188762740214123650166571284532083597355390303953517634754894393728242914336958650546623370042614151052997394898600385523274109777204068789345714801973678543122884779736487424692483951100223937665367119369827029410277829895133456439597076501528417701734959305032826468859192161433341379470455807141566830937812676000342926522451949899868875302718851931094980228300955908550477864447889543007339057047903003226863441674829705997932382321666185869280075940012889012112360738889457862465968655922002767783418449108370479741972992252172078738982516968922281675072862135204083682916763470910070680979602296835239054773337478311522233268615099858909185438703763792431053682112177316561830294561026363265827519505561255514732778149086169619551291356492400835329787440233361611862090406240056085781824308280690444972836756468257831344985531718952220228373394278158338232716425596431554008766822032189218179759667302364971351627224225736806827266243484496261178504975201372384238908935008607669801786662672576744517939819126585575196250742073731528523563401101747479753483364308550133533961223143863598589992144560957913719689802577469323034045299186157494537241730311743423598948143192688057936590420830794708931282726895494999350218835144265892441359550884876810839997745799629965766047795901806363425635640555835011668135213590059985699687857672542180025172352592061793300544044054237895222481618639047058906107730023367274613116875935209560706780041880585850993395460867055936358538448522954246908096112616362577659195016901215798717982143309263563597374268406352796574034451674966703398751531430504183481186388276555612378815085998737940145571677687412032197206798446936237080734488459196366104196251186061636943419271799529343202431526459435859804894096915576588471330138343386887312041195791885417793127400601302241800142248987876913553281515124501131702008585174297390395908800063215787840810765855546280975541903292515157677442648055757855981864255354936103135864599986183568499069388313809309318716331012553693963023545149554739573285108712966018607014063360633343444801950984983442699416742811648329533166590005507154006662664150886089671157894484180152755292022209186324946593386061439304621293216673092870295136970939613070682600270502932881693443708780769388952121545162874659012583761638873973300600974857942794637898276084997090892345036437175320970165861536135732861733433232255358415784089385300174025098679040662634974683920797408534606811538236413850688305675808481211309583919501938589226005264656793335021287092250309718621077953242993307163912239339080886607972022121219597156397866617567090330911003708088900743878388289115229002170594856268331712895247158713887890884555117920156330043276431989270773389453380995652238343575819215748900319199893061247509588350583200954779243315351062966927243046810959448819636565433177215769861092620009988064746166887203465515054469529435611466820919591534945159729170807373259106526346356836861521055638823945763940846049244340651686543088122599231164653225238917810153700263124932021761849811950871455923204960621420981460413220890064155449864051669184484783179595152452592190388450625933416938248673164288974430390885263279801049418926462529645149187259976536948812514540930105087458966426827443987560172020286108676414167603128532718294201010593209019637748500917448914428130495873523315134838637803807143501019946322817848036048254389049898093457088784376243676856109381718528543608179709017112645977658596020678569421780835256521811620765136887878018896413267759628874587861811419122915931509277591315839632810197846480499258076267103594711481809149263389615944854716406988532582739000486251913787448704024709811101172475563382943647829100643393304103643504988259193921921922366434079190556844293546496707526785568453839516301217673099868550640119168035984913645454787152761556036415455561203657108218624910535277641863008080496785873120837755273612493208706489733144479736357679144167330520899055924554613727727847254959714422483962645147511163126027963850562872908678816187355245115076538265905080390973723539624497931415897700995411037155522396742721195307587281443302938989123619231843415863195307977329551827701308269912960919284143525201289958592557002377242877162098405431558256875061529870685410124941827670430327181140221630556707027927981676839314713389515076979416170871739814858650201232988957447679695999888304688501327438357697570420051868883119765688553747505093979181259323511491470774485590081777370676925974375534883172553901398445452107562929881838099005012659351218672192829153975703832491032140105070775714291058675096444299704023682405728871278232169275440608027005706385965369483231746970071048071398730124630634451452645332010462098982578800043090039164763522394475252070610470259337712107147440950101357306715365043472597237035197353210991245951386291357998468810509574210287126185177489254341139408610379418725837266448794568059744699175464922283134677657893630491936073450011953361034441214351650315170233636285647740314088636829634898398757219286335054941090828766612084321746301327390552156067720643116522437923723142925772153079459615319819775687466201465366562249354693827130151367150600001395313595206724467501493651768415786758217599012853777540035521108650795018666087217392193524896490642800524807519185199832688166875598337661666498919949282422485838504591085905015351845366374444023660507533041802668482634730257312509601260274925008925589581047344573939295743738921902865230169228104117001272085122745025547955817990121560712984664461948073168546836577973240031215140540977933107529092970856185111644031812016838318945244541728740801164686376165986298203836135737511290255461710068832233818573916578055742195119516412903792950825941774934247106203906074975695827273946993141699805339734685361672840660355610613722716676039772511406923587129073523378612163993052816002075185405969980543864974648939102794636356414344783756640159848902003334224163990443276097050911663312555653748564593879193483713452081884212367001865682955573320874284690521745486485474981006466519972920096396743432612150109602765723967990382752432233169821344566423767412504465526665477128009428554359371896490507939968149996808173169679689635479457633720706956445461285368102035053573466587736137107764649367680884705148257070194774453304659539086383563391396030252888701278005760935154546651661648433541002374459586765006963519524338963808158191685362256288681252403806338365393573034376836241333187035673717281053584738734424194926435475997726698292534561648325858627158176738721398737869319916399718857938807203471682598467671065035128842130001974053224577632426526638192755861015584408278748676999666019818951503613279959317366381716287889391518908516432173425829724215155288326675547177419658400201849897691943771898806492295373262328233683668949136632229860831050104136955798666716422522077016849057228130141717970344920280185278059181073053059841989441952003990664851159070127621191478854310344122032898361257491524616636368859504598357414873192128783680218428018313424429099416964488822303658655629250816684052636611750659575799914506116685802536853139484008739453939352296378309732523143926479545066629304495404791319804381100686330923198873043783847210797364531494761071794583259386915118954990431477946016917300658559686927672459571834191999396055091398595303143574512583378089301823505645086119298423111384374422187851334824771258931092995418818814684794499407939402018362041844999807073410198220814186325962513903622368002580050200335601017207723699904797936328560216413038167645393654286879335973127762447534994768065043103651050147704751878052565740798977850179138500966246773162326204337859884983061416027724524428302704691657791888954453505560530924433990998420070096146202399605514851678847045579080308519523911618908133225321196505529796895935348613962632392802906687978887803959417303934603363235251637447105382177834444737399554492112504019744454500348543101124482524834276511021130335684310263984491289400707675318508191949627966345961663224641550622441476548012096506087100403081238623325867183132353875595637223182145777714703918948785898756942527116946642333093530866369475437427183803511939669359275191180324669072494247090160732378590444460015664973484081677494786861956045911231979838338954854017710192228954288340600795335008835333032941420273838376404190292453672609722058365203253550809088124858794999186347490345876560355848474121061560683082486445449054153771463910642718669493668865888593597065921456720850881226359900923347160617333349778970134848035826542989094285537547399474004114217199042485984013341986678761280396281102838344495953503582388379766206929924687076253678275968684595609233968951634176799121233559698600264147179650392255170707968006604789673285572476007442961818862714229695126173183708094903266043042404865863009457063667304207276900174648213337155808732272086498528046451064113282014792550775010409274652003954119597677194656474982671184168851042210402742028915503614441316973339085858313776033446657247333720985313140447903336698504615575087130423712053410118767197032636591909109129481694798997637867288623579854456724804819142804871664445411752219720070366421695338816044637875256612439887730108462828520634228961160386355313771744249051693573605786625690552191230392835077994057492925401963882190307968178252018797581848798191389639208662920469799081064426532477811559307037981295034495527436621844520587358020200305525258890835506185537757079951550022002018828956190046618287173928533992488558694574496472753163078970969372602162610958249296409240771646117323307719208678020248050361942313161216927497752018798860695903091620383964860547793389708776984864763091657847776823360487090578252084477471185623174449522449102845150957742994975706805971746939517735240771536318348767033311015637040849616313380808663985710069706813763651838088217367515112230789226780007044404981822321137884046226961619018641600617823138487927849730018023963457404174011660720362429653628485113225706975856847176620747300030822958599038524613790622455324391944734608366217771330203926498676926871768339397559386357641684534736351741837438309973342808503324908604449369349764164683282821036841745805255831072542708145616654541733113243924822643683758798737315836349256719118056363604154151581619039045606829834390840688241475416575144578920465057046747919025038934636630131092442788135136974874122519157894135719658859184695429892441457611226564210208023008492144552470079949534327113962640164911100106703428397755417451863567900303777393330460403566105682006313929745448016139327113551187917113437043245315505119444946759764399822376647907206274949307296185088759358740822052438881193037180844087727587561063465404070428674675166447888002425016175681576142997268077754515071810335259652950025190115340286644758542897331616954207731253282187746362464337060543096336884775731492659077199847642782269572086035476993285125008443367697473590035806282764106698485762425829737174393072093501000254039936382959302199785522953525901906539659340523931926000532706128819220793069517117631157525069974969712464176961349984882067191606215874399999859751123824946388912034723675466416531600244008589917617946395393014455993760952348688977595533796692866235110084892712168004037208809457679985395146429676999395323582481841916100299314279779783370005764743945109605460998496397018809022407414784311499520755134567519142223151588015769278625381314374949416923425354486453296789817043054573857568410448204109222586924720207135721370826160403438371918179816686952543793425055552403203838516595506646694262056634028527545245250077376246286803302640736168421008802373491404546297115799430430353046461094227505705955099696650397183110141855735114622212388032602860272759572665394287409238682266230912398412614134385377704184159374871716445009450367285264727368042885386884795280424238259442219590171691718991134771579927782444687659804805996032930845557952965811841653116949097843223301960644812880473125437337600861397906552167633185555967629084643634459917166325173348543944876400502021390983394048546558858331141568280520214746281573706118654484953656377832631699252449143894852594107821158235359836855142903641739841962795572014779847898283809301737243014531988704193576391768697265045774758258524879343506300548536234168495382953924802232349025131653218441407283597442800864908484982539581440587742009660192285226523885391284384635481960882662585489767987889770648041695506714895068787109078758710562222660650252109042998026952185428570163560202196233967987880920376767702597663377030394821228464716582299964741771586236034871990332395736961636435139582068532870617390786542829567494947060356356055031030689807247900444806126259853062983683338998573572274640071387287766634927047756458901398000207777418616323925223220455120941244921900745017131203619186314035729696279895138420065842644195681374721294581047179980265881716736787397093810265922002546282229536229612669654271214227972048810060720408973964550246361854428597006766781121653647228722939685120978405083639574465095666772068056893925754445339656286106623131199355911681789785576399946895230011393669681644972753887880225716093911726040173350300264104909065157921004024315095767863150455394819770434268181151581959496962314176814398446347495692021818472053267655307508510460329829005058729413123663314612945852364395398050559773658047578350646557809475488088271870415842914718327730503201314167076608930464875047377069755363783632689632564721412471671297532113467553420571701966097775525429530680896126794638733305734786573379989073001995489558374885398348246356359081711957779784287644573423004383879900068842092725363007413080752564808018601288297067093785458283634779100639461606440113081682858369302969872817031956805878850998256811150191682225656979006827817906604768158693497350497313157439885455791978474520594427503494845785098536367429053704540190953325318551772120581033713186121994163837792228354978940373951738844145833129837781689155167399991180035091949065199614144320708843230997584437040340570317013811198888813337504257452037008061468400914601936727783856918307241602933133298148672830986449105901138459431991392845178830263691773337597092042161760047960355706986249959609662332284828940121946438464719294508576246303144861877770937513476487147258087722302174101792723593818736180228209659720742309495855453785888237421650619655705529146809001793748835063686517620707088054737928580229978396152305388640321435262743880580797084834186467874242517876352015642734868097401931112919785285099905148886645804732127880136200123495565369120024214396134257490038019068018970421138136677920511316865948689072649955881973473742733424529784968694386082884328275716502305000514913723896635877761391971473829832737532082897518671642746322070517986529190328540319121448452980977064304503179823818488832688085157890206158201731517519210990567211415415912363300997559158041210207346824212659206633986450643619379860933666296149246314425505179196971525461813399665339041680948625951456576344035873849203820822672670988276055712287844293952576555716834620660155083935834695222540548584290686271048866763731141342779520789080333311456728830211349758475175830462315727635621233377437224276353785355791606484560572593448348520549145701369521170100897332223474570439534471395418289839979078622119891741782168342271359106425459994873267220736250457197525967097026900237854977486494188911220029520778171428183105119384735332182056278615849658834791106368654258999455230517170239563448847979244851249871578079716414548402970014438666795611739947014326072637475804455487823364892971567189148619743195684758075084764749297705319988066404323096462442094565510492091580980690981280300047891740735013102367237252754397041336690101656044053522354280217837897085579370102184962410969093860204339295534402421416012082064917375365190457983049686444049233298390097141967261730570753579706542165860532868491303500244247747472511136490943671672853271234106676228715347535941352180552470708066181383186065177937000924433156061519369796265722254339164928871014757356423459246994724262078222564742811504362892821272278693438314867144485718778660449201615182806709228152175142107674675042447865447282136952965418557974629672166425322518029131153277539235317222868408590593098354753859888604562934153528649516368745413844203881682916345407180649210819318189954541565516135866273438887844598688874517240294162983668932990533928787566943856279936757849605220155739469284805357470164942020132076716684459062702893695653322176858944559453384609119077167801164318578125976292907205553595348500069076304098353448138704330978147732359357792980602807684501692530190283657552872684613130685326908858899565153578601402832256487399262068008653247836109024994837184660804159034188858119585792338245592202641884884038487157712152061960118620489082820832527768541533355019623928820439381610800940748330802397918317858732640402476347130509647855830767407458782191569312845768034382991729315902895526944227061401142175508278388215730881557822441466292852639956883048162480841103893996423333693716721572523650825662609010452312127742008512865980649596395636138728292897142242150098035358746268223815362031040782431414767807239927991401753842616697303601658611614024474064014164010979644401487308906573633494966631943993608850327347858091647513931295882484693425922517313437716698109489675021180837666622201169111609497704392528732030047222197957820927764092459509933182815804630132471150058767692248612530441323302025408187756328757828089134580794338565992066006558430165634882947865574089261800771816518843714874120353845406445024694002917705340046386360478894592120970569351657160121669001946093282869463028807663385530557273242223975601910124835311456784044776870690689456934161116103606588017831166942098442068769469738295870105829328847174591218482510121406342684637845524925688102652155651103013491763228292215767762188550918076726383827546396764691383543206799826648950530249765129427013902351667022147053504560999474869672755254033113887151298625119852489263334079823249346979998707520062961956988624793407430136147542807417511043941824696895435256891546650557122465749567987132096576812533075654797925346122044759589476797705592325207681856668349789366458122157962995274789492906102086709423799641843199479215096271024669465559275978911736182391036765034308814020408437264208973165878213081633411114954758795447642250888257922856507609645916244269508096557543837155333870365675657440085496463677141800562736730673794042908032941975239820219168821881463571702137144666529861345101479609202053520939870279631588711729653232782726992590296936041455648058711603660529209831007384547142612640035816510025893403926333412644562906731562798043389293302944119209010571183799724065017656879407636135547272250424195603776530994761391067933764169831703797312794904272284344179260505587753149371219499913608396548947977794037657524853617876008791379598722257967420142244315646761787061391955747561321856410987907394838712781791246071949992705893371485607367641219410838664068769678232031445195867034696280067068272409105816439274451361181756357789281625920471564794261703944325087555382327251255235295142387029339510653812820089965284504035265899610646921806853288089533533049405186008028848580903886438550642226595045093487274896150266029196580036618766447052286112241800164884993532361060450612683784609714808381606895566842591946886577826660865276041635750974577061179340517876977952491268912017862194147438217638085380148957705077331518030032774353601964738000406863259512507307648935026740135479354749327361859813360516979827231104712826847974942375317769234684160217159375106006284010980060330351501641375023064727299223315643627510506918930677897033584641836935678784203853043628654374151509348526538824421364850352172112209677042095021243672588360131487582117342613898693065650492585249896659453284604461035590053009126345586827349636412518243676624792188504081656014206360794667882859908531572816500696727382773402014586522002447349536674521263135657424979911014502537823024707146981890789332788036096382292939414430070623266109708925626055613280325468854458595116148679448632173194641541601009613457346505332999621980047958202846890825966375128743073450029133813388793204037654955071882745766177443508837342280149905538818919870454604659991346361944027165715146945888238762653609319779955481328921452390541168053317604869290138932295968244755567510543538606084242305705222242944553742428523689718596682335513811679826579031996227610393336873527926362906252634397969334653793801946838791630745148434400932683925008418997592846427155275259557083060527437008473977377149945962869749777360740406297355203719565506940199641024859865226443692219184240252417053206517070671801575827643884273151780455167100036520271440291526050859434610959055790713146535321007182720818880250850379816932570777145289900622002660366910720194784133689593265855655411846832748916372973599690764230134898530311386086475733947230920097438198227725617328754972182226083050547490935003486927960611614623938250657288835699061617010921026567811091613660953658293369260989549927426786476869643037982526157762313262589675865047979559163524631570807238040061675851241183429500019787897842629956461756717648254921741615493148235073075686097246286585865138616664454928380566733233780010558025449045218893242277879041890102658151228300298055844003517671989531182961797527016848343796805293093436670609734089608956771394479268772877791069945107273558533478494056482294632795685219141524484859150136669178347231512945503431815482220450568192820098800157865384469883604299510306589831423536852143623279580811730209960164246256211170895819658627439396301479379037784634361551511679347457486159879826404353679116934718387181867439608971776944543487999773058187671582006195646676188864176020779675147219184517787097401603518625036193986184791472878912101456340191389913689224552308109683723977672414600183302299503733243251219246617991259446109577572390490753036419159577469931371040370366544563343562831861981600522766323315321057014021800058188536398584478907108707609581633870873860995590089299802684248697316454655532001131502104790584384446579648308016943368059312665414166714024773292011196603162080188413482139363100070056322759397250540882165737278563640775965848495973742498522743228105550289007020782287632230202192705281783866118232987926360890612056742445994358017692812103988866198069565011290212809734917809265624408022268435067283212882077294801672924572284792596158996847872508879191243540149212727383509071630998760956243423443596983787056549987360531977966842244830980558982147213692301588748770909053691216951139791473826163844126844599794430581067832790789726619807259910549986963651772787635254868238730428033760781256777211453894852011566573434347487526606366141144020253376628293710809206352100976786274651617275326071151616473410898019563194119011571016323238461960058383066886953545068143210378937351681372221437563610371147169957554067520812960135860520971832041184243550324792172659489920914521911541178174807986546067444714393965460618762320777934420011665214709417228910899323833352603857145671526234275571297731540323723239663249226756287359124634698713708896171196896286375291860507754693199356738206914685588100051943688202829901086528636907742034630168560954704167604949999405118512051088474559091330522663033459677607614407250713954921515516470354271244184053417028254226778903614473315490488019821558809084662722902033549972886786395785835108389796725606133572793335907550532149091975353166401269242544871093021504887150827822345669527789588710554341941301480553338449842340850729204361220181352518751558787000003351592458793070469843531347572129972270609575958591989858423418875599119441707890379708757007674048155579226210956874044058655875804888938123094176988764365946732115743257679842246078707053454498981474553479838707833564111356768378717142262561397979612475575391429892770497152780066111680038089969514678010889001290887199299286452174933363635549560270778406205678146951086682317170022255261468685471042416246522958088933108313211799024702284651172929535033891085246025405774400923304192944587664344920191151310849160800741386496879793516773970710088712753692650635486455943656368971817412197319093269178717468609109588064761404244318893344906889987673516815639095606330580916038418285676865783370553619383208999107897070051570513161393506697290858414667271214228072169492594165487838280113732940984198357123889836226019191768083121095132268315597560813322620485832820161729453091569138122491012182739506918718361056120082866897707229064259814500679477003351495310526387667519082673806758707064449996198483690285946749993940535372412301865062262657980491282302493245127047339421412246291066312515938199783542996386700274551234368594308167802245488240081090033333847052238850124946627303639518403780266318693989505065357717318951860922200653877047331045085633448851325319433380247351908714830163340505247145381714177194628107305406146404937647993375043557813229271564942122957615430883839489378764438960707803663501831004293558775702639650225054762820032726918266973172474083957052668465613695723514656274834957744442252693603333547124453648454564363056845461873772938435530402817693053417192931891226918156070733128724529708894279168465185572953744174827194456237787691545168333265671557785111249413052114109487809164989498631409646701090481975706976712615302745117237917555651914285477317239714418678681467186003043780945969010843076825589301449714398826240496064592092530464440598003185848569170883350596426880766196736618677953340770136466930305410319677850634082036563502472207547862629605144573506086698342663514818992771070410714912207193691700767512598760039080057530865910804729451027246017982456899791214250413928751892546723515057823675262824650085498421848725595896333248067817310850799326525895506494394312710345110443840698500612720890097521958874556956835637325447350085807504545983626418866097819140329940854865824039437154672101000885315380577948835749166562765723904654136371953330820521962739689337787536807913606950478622804211616264935856895525553287542658267128403532958798195031540100049912426225508396605320369068891203267111063563571675246858555230260811823156631146105448181644170299807195796076458731615515677641479852448758635397972620921094878983263407126124725008369219094059920937029119214200826025022153489191760648724855336225262519307525992272803618869549978641617308073733395355490132013969892870258044004959400142526807956012233126914418203561063429960319671206326842386152177280654187512363440947468288894069744030211017523140355496880722866904172456904278080479268558914613786606175417864989974851788275002822391377968150253780481436999314064383348212260699393887282954907508463141105910059165281161084812020382710102920610569666747684512261847183777176059903549698260214759738687753624977717467958709306593514752146900007942389121763289839393157632410864308967339183448231321989403202583055470488948383275771305656924695911188883187392029738557869599121248787331825088534611852765054454103924242652526405049676799602998730551217106774869403193733166467930233802784522614436175962860015548580378141109001623630502247066806746304342912935313474951606147990702061137750940901906967481462251315904783264700251249188831793300314502840312641693512990588092399827599863009261565675736210472274465014036582791751180055850304854677497560867427048936578990862564118476005271057997796865470820549996258463332448372054266235995359953993950832037462631851309941127002785657522164462241928004432913252271948257321140552884399436005285661018920202313517156463998979374528904402192496574625984214702526371786231792345746814615810791868889435564994875707505088562282434837826167629949764530680184764216942750014658000979373338996698379571307728093077631453993950405042670680343790325823542259918572578862087665401261538776494814410170930489427588153018897395933567362775379506742078358252006596378203130761713804956677566741868791644190199329355555569799406841652266315336828533626081292156069537325411192421706259726550504751893650713088393732433661941484237796338734839296274656856993635207282722462914343564854429154375603228202708505554010100623694343085771530435309500180686390550822653984381582026564920398566608506990896359890031824176499926566353973271705311042528177505043229441641611618389828854715628732097722329514111512622568247492921997969688471619023000854632159056495662069385205315884949358648486811762290568138178094042249355584129709537843998682353638046733176572842308032423364892260355003236420053944081785316477702779514988334839720620128505798759468573306998635318371043399536839822260271264535244469051726092552392426339093258182670550627383637062273459515350506176815018674355722212094351411515478199563350535440626965874503957610045849838269636437503471373840821520683324657435942048341576964697400800328116783902930162257759873278646675152375866993627902194264255949563541105616253031927219646261392672564432595647141739883200030002710537691941870803752797084049699975179715564635083388099596481559407203260066362657102254802363641797140341231870544917094902460609015050309360899341054838648915491774420833480448585210108972873181882070710102943924010133793474323730404551700507208077347753881945424347870977067348366782533934185293863228227150957152432081948199034053017233100057429321981732837226608644036762977634545623120567405421539134362031440900088117035451178122542981363525744619824512866066757157418512224285753885311714228024255938750253001568572166440082737402643033289092613411091234577581184413626845698627408099156050184734215861243719834734076778182110268130266263274727424909205937495348432804073701322996902573202559863562498211117591610286768139408916149430684171391252333060469610744346707244153902038526115265245192014051208045229039529393314305873797512964010621705910240519959030185314286062742685497037321701235545439054329749787783419600432254871199859246061458998030664826682066905762911972988650323018093058364769124570159976226307760831204691171428625746154430086205483296968008373795967047799652063536838586373303618060312999542924938930946343247237712334278608968039840462562631921423391636428177288108894139359853894177576559418000357206697130481200474972206507205744346325523425852442558066904133422323196477942582779938591636147669220904782761030916908530969759336691164246269757752855368050477249685482971584439118236833485011591101612125661887556252783356009851137431981273506200316842756492768742433182121144819272724204004787648385882731375729526757358440929518624907552001721236611010018752368097799706252967123246817587577416626696782352942808849352758265780164491541813027845351279773037231289235952456739083086837047936531118822049327304364169121622350719697560395689939873402674425004103304883530532585772170541167417220287745588347213799389247389014039203140591582617845985351590220193078158387412749296972052544735010788317571115994160642792324177606562132149712147389149867254682712493909665120783566100778775126104388404831025095251290813709844077924769919700082803152924823139829867240446730676478986286356359540436209645695175943074028630601393513106649087771529138409957611311508539070938661958565743942902019918842398684172163946187443493226338531784166258482988724632435505110628057804717449456022801650124718492426927612627769963373371351955579187310884133183779584449736750172210631047292878541013117471359856563857546857559943088313392490367211259402608284865465184791790776928937188696731106373227799561133935306844165072654975700670971418169340537997752270653128741820723527809714118455910543000281912674200730616024816843602668983868913706186891469297527384870319691587837793795372678348483118840087515786806801060454439679051703768355105739285719669506972973126008146630116751523952395206969923397562982137651910849538681272718296196235454934659032055470623460263615824741656156448270034334269127493233447548817010839084663614081544500309029545342655921163955521631534744597530792351239007626635502993454265719408435786581134412373470496249509054730176862275230606370227017276421930267771999054565167233626312940160938822555519237062828139098911731623208020417131849508821638329443004300304718030386894492258055469316646490244348971124515548549251878246083691553331787177359614045038567610941279439207185322448760535483395324391304398908056658324003706255248489270236462351848682719902888501285234640810167601957155469723901292893857570458457705953956334821933391137215864293845213745716900043361566424934538728605833402105494904086044415715182021575792595989764600371266641235822357475836165547496988329932757942527956345660618673491013865554414580844089414116001403814812065813145854173798237356683981510877126736630737170674099935348588166783717698512471379924013444170499492899122626285547154002438371390404455266238178496093224174393035699014072261154417193537565699550842932741440473799250169234821815061889120451528071704353792083714772071207316500619782065600362670174266505962079853188021275433428327932423129358649867480623822546504139708730766709507076366161032850599692412381725957358670807393669438649710778763617925110318662526681591496827031672450058736803014695228137562590593542477737577520698592072459092435871927739325669711072536336636040753513113057545158583143757187205290012068531996657527160318209963005066508419635395937044103727050559824430836847335776058138022493488593439766364713703384907367734364685965297189712652252446424719848122444036388102446613798563229298622052088214697617745423036043627321160139524998296219560494319387732880370593061696784614764516733725047266279095213470388241448623923232240124266890837531023724510329040369078432450806841214239625856474955258705980306681965648119390122100531016264126487041049838903759358915221068904921670676769499350562821425114647166527730635763795270292271563706917204423932316684370266585956990962726869857584067786430812784354478344599200682940561647031862562114455817640470159315053564268049014822924203562752165858639423755521319243890040936410080769517663234502642044480449825149518460750632875907341696073507950668428484779416507488764535291539686577198852376886721919620725785649315963167047399962816548574324685610391525099981720555510459853189076360323466691039350966537196038485966843120693657204773914070418607122283079545970208464844331310294510323956101903973140206992935968721649030511335049177932168586330823157775876191404401229967292363173910091326199189769532692480071931970021908469306444495219919686263120745698862555845471095587126905752367218018442537219462460554976606574582982118777585752072911401178542392935175898913468768174888426168022838454295911064722928405453960251023697680040782086287183638754835439762813111831400336833334996825562548788913545603829827567818937983832297493485101114192358911431367110910613367754499157154845844063222744139729373387795783644546384181534726804073940607641375445189095200973702442214197281402092746375890554196912871056259125476506688410070320662047757169907388782135029727514381562574408582830884731933434570328586565902386471403243672207628324615356193116062749310424163551185466515658722453785168516047471266109464710697971061581216939039375952864985862295548560364423422682677516579322841443887269333175204039787869032810015848354698936881321163512951608107769747633816404436358577985822933864040597817984743483689681305760848248055847523476100474199777020485489280220271645731174573657498220742334038468674065953959855874614435375604693098938436810342950017493503238493487981583622182520685041603849876349451087339511100163159359941068386331344971444120627487045857771310266796020955839995430711297780420230402811440308068319670257870944283144879909468716853651905949608571557092816258527936764578268482358867797029070021463475325618475978842248536838933325424852269239297142988519502852663058758422426902034498993142345491821157296127368406164707603110751597686741486452110514197561823254293538221582396528376087096330052276719393787218106741838395761966343461685742110511691085248718379890442773808435506592905003117328713108773894378701400340018751257631839174722528411588964868588359333878679517514204740196278873019898671508233996222224005216654894658980528991436662547641129170923086243876414738630830161920374117142663379702570805691524103442639952896032888248272129543611012973510259005479125535719348475786440610613738658863963798336066796589865012591750271648147105037181742825390285459786732940643230178564659782958232410286884070363789077837135096164284547991336486547797228825457114799965115443624754209827145117297271526432071930401957674895593092530496636222249109299590044221766117979145270764225152720903152182345214046366323913829449327804015283989843920233786109003787607579869344945841750087179654783941112401120498175520610072160547514701995441214531658685708903950279215728711228561532239838955957764527366848360622502371356328402298681862396111042990820066870846792852721849672781222067256319641060678872924811387843859452123832249363386445057753593937200269339491126197189353558368812945253320687889118503582736989885337392892373226711750769417522310168720022488702847222519840203652506292262226906386114852745958850209509070862932914404108436267748106013455654347887972444066329423918014686778541298605710200905354934234720185370769912863710293848099304148857981487783836660312051873129849559371098655168679005824307799515975116762153837067179722890596801428337521177902974523102174802280688318953392966182944472785108073168202297068025084009252155141534978401567102102868725017691974879782149818280979524105911050071660583600535378604083070826368249278577885669849119947361724831134225844892867574941506814973510465949436362128464217156052708623923589700619995350374496747635238809471745508698085820360750886486789470403103818229167111373105444152957884085127144565597110346751274880623786515963487887127061818777036337412704360662768225758545613744400824098928226085370388425366791075332809045080439062853017334236885337283543094678496155511094663031214333594606293674025741497927986942361532584789238422033396462369532323700302443337376109892138473942858599702858663217044961183974639052088393914516032899510312555820776723172364862653582442541588537910850084755838667809747690359238320202405197229433437005741281545693314400488667530811017179679792651100666766016696653832070486687405746965317199712285570004617256318018500955375621312130035717646588192116034819119633870929226318437342323625645557215182328565327381833596574687459153907872554465553910384374970033882692349624223279097597169766726937704151687277067513465728016217367795861005108686240194047623982406389127393417578681373606940925574271304126221709671006549303039919353322892413640622918516688548519173689602261003734298068510609762028898118606238514883052665290005920013128824396761584280571691638037943964565554148550368950406656329307209660871348076844234677120667276932292694993688242645403354252211926552567916206066565084296295856973865415884427001484137563158006388188278638301410959215776727924411195494842538939744413213623092553914321590957127081597120021577701744833494637304530155976439858869278004956302112914845996153085709755760418990864806600677660657255009508626313318486927762913191385972131301164710886008020844281512073020894269300660953733180720893380738186635398525487023908849976489634918512776325647863638463692077792900020548492214611964260964907922766389004108361691565743538318701242502146735191501845758636131950552015411251254424271437138598396050367220397527662131039586421755846198288133387095942214248164558839456490539024496063965028345309476704776555427016817906667820915650218643965493655632833662071505083450328720045717037622522818022809805786758019442086196706566656884228913765884816693880742176304823570754982838557136365912838269288374881811528705811859991409278766438738306802885959582983285848322015451160920624695205457497127265871644673432483440673165237022515965001327183123451656851188082471053571685417898589981603754260850343402983584254928298035206105186896962590121925501170346915237795075747521391854638250559709949932323749974097543513834748438783588196500428875601049407525218072885997294075141257716121362325087351436693666368306777056357124944262882126405468945130361552350289878153973597292196186083656116543873986271291819442441368185152530593015855614109450621705243442474542364434373769430379948934581160139312981898498623931459116833145827420499683531349831920427537114997658951148430148176558146499981980444519316595759001970210865978212293943645799657020672452538408814385676360718592879028071198129618977293677439469167455181050811808479209997619979833821547060770223936690854757512189997608291786021958521344648315689096094619648605855053781216408971176514475758615104348831304054807100879349526344708405252578938707897138184420077265357314589727010795489205442159190211104245999573658125024437405444585890190772191002768786212367037886675409960629714076314383019428185992635047389532282012375003899216714477624961828032092882846793607314978294755574144348947295539498379428204887241517272240652583039092136718047549382699242000770978150784501888388664583488786743779377013335437089331390040995262214590042305304725415903606191559789658755113078012783872530755463577920511514455994706097835810852093552298660276639277413809163155129340427937349719377780873685587634430106244637358756889195261897166895086555718153534646506057710442917973245824256042636350668813126128372330065954171546455711206420282651653967000844222457199333899360088196410084197642008726428609725843237351136024031674234373848866621032633278658263938413396121659202329680403107464615152855420178692906284786308616573126126312359977291504935808685554448178977151470321035386489900601304017486260341757044749173226934070901496599492068951929817391386475858986039945518485306996477626467477168116576427606595938243547774853187021340774510926504754186233876554433703210104889494038695538243063035835199979307877706491395823554439019934008118078637108065644800391560350513621654353456812346022964986318027622509001503774898477739515441356316785710236432389303995186257282620169533208592556129014110772052067993419983768683092352331955546780275752291135484264763225936074658741810996135616334527108503683432053595764044763459407509910339887166786721373664362471450642695916374583099134663600893821756921802877676175188759640744363003998696115751512789705462878663868429755965213192606089029666913157950417349663022339274437099483406372418116255275933850050428949913856659647061185857296606422698830202818899223801708680818345048248297759551852109025138808211000352104078705127120431880678044406007335503688593144952351976042334903838453515870232814693393707171413597911142213700054200503942756080831447323749035748314923732432364763769147748322475378266648284460469240039673909823968850695769661368296639791593981396198899489771191433033618888532408906675094875303463706573444374490854998696481307048768830793789772269037991438055686303038520184740253401984443773541364318793600610019490177182853419907840579165892306815054901472214514135438657101162536161687759514700287181714938788797128753908735762284472447419418548682112822614413305993069263308496697084827699770357162241529872704330726601398430192397758096402920255367580236979030260981720465939234163856163867879163267236376254032747857744921777062787549189383849299627184643773386861724538690060194270593831704858090655455403001879766300842867314862928692640749842201783264101820743126639980396939797751840838246472042899330256953240676643531338341426115019660952271719392152958604560159992004450387991228378478923675490916593839312929086200770554398660068810924690451658772005097698486542019117122769826416278727614587141580085811077097252059345435803083309586489407141593014615134883043045814041402726369888210118378294785419598242649715232220238492649131419351382100888574222653817109072515605612589603644997679673327365887229439597893829722123243562183771533929390867088615683013362594626570145743830176152919593231324325878930524371954949899025504734498434521225648587423327326324784463134132004381526693031559865433529735765035481258986342662304513180359733118861132856879192432589553399533165526740373312364559229226325681128163673181991567677160936652655496656065671711757699941705927322875858672870976435529195281300454571469584063743727622380683738748267843012714624183615353561295620059991227131471811395120046061973605205203426085192864101395040904030859431363144331960208878020981858818873465880879848965045357066099282681299127747180351549924224187999864997343289239147349055006406544197071301229038091201120838552290723076787824400833721922487121006013918946671061588242343142302020021093404369644437685504059897368635897404807181624886770302625672496029819073479790026458951108743425028858738670478967258632918330106000246446231833160261887267780852819855558638131742093262280714143841434936944263201208925031466666181704309668370332920618181071883985511894198529923016622047009052039081560431965629845423741128197503952202367880785739336003561178661861569131221930585807842046747424501947689822047981379433220391173456775645636014451640506464043025062587409240830391984322099414386726255986585369135286739314111355247416942335246605387515606059609632972642427810479651851605969027010905899842872963292824584382421969421889637884164899748638646481559780626655815389087244784696456668020716827242765410981877340654977003418879584299679073584515239758892808309614636002136189590535570579040680427740784677324112556551783808862907503724183474715194908663943199655304945752989256269260812777857869942146529138817524652285069860124311274231476362749169460245147206988259437865612577904185156698687691592456301989139546507560985364865276653610450121067714070127419891023581561868344571953002994235430492646986067510107308165091222710590936399423433313683739944883596023015633810069206749244029451293257355639634463194161722719347757393819744806158880867925141959767932461142187949879752188178515335030832263903698975289391979901221121786857764010840718849628236490618765856826226469473139685988858777700749346819176145973048087671168890079180028938616139895246009546608855112492135065908677062031381492085274027183640673278334790455619027677786276940905837230866914905538400323024077629610526217344819080319020283549084552176720974239178408843414067678557916605108569386673374080354310544347272830312009035232190096479359577970731862228533696455200632506194409782648960126852549527371844090512962217740870315364418036422773025144182534417665294474305256247433520952767311730371108612350795122124424453352635226338479229860931005370162354502249014360463905430898957924072170461011924693849237651186693217441257172098041475322899916965213262345360745114689589121363677983205946454592667642818776044899429753027732890616406053057536410616110970780623827467362547347075134217618807036525867900860403476530191275028375513188681222560123062341038920439744359428575668713932488944849587069103355051656876110462148316868085150909218896217808985272071690017540959942974103908129400712000003948919210768689693055800763963323234408273900120142961117847549390299948892410346031240120410740534485223620241286036172763151735905661143926112350510815537105282830037272837845923851092778080067417170621962440434816267123912376990937279252095931845001336981579038936684158827339658081546597675000396382978246096900335447048244836509745631352917306664755621216704281469898354075241235274233367986431929386976973859549589084510180931767786847638865971139018711293490406680072205565379151985567430383698571166485736256827278660314336895586569513440551709938693982375345245352095515921949274119867200475460936804737578044851414151523983127357428866949307119927313480932432512127211439867172629901134135575792469423827272648673066724924872126983831001249037603776638872539252495988625652869291206025825572741324690449409015578675742375647127696244511290866832813145863989759823232731507789183138876697718284670367280422705710127969457124470609621060969163153662625753058789806499628765655069823979753582815086199476481480686279088657763207372015766520058135043848980327752916124664665352871202960495742312780981063745638656246562518720288118495130738167420112004314779397934207943879786966872169824557885706072030465498159796706070897161529238030726104238852296223190976701497244757358593465737151333120052046763153849927575247428470934972547943056316622676417725468251657850364041083406652697340732782264094211811119449185604622495365356744242527628695000527414864780226403802574820387877520039859771399457884411253587728283328956423590297509131750724529021586687419748919345353524099550398026767592293567850246169329638769577230400853361715119447725296585495015425805939060742670330336088317023434618068172755765169168566383959031936219680778007563189536641048662269941470860538623843037466968087695724237610407874573977421010264358188568830256047977307165735445661216525877004468370209216754136078336389239322787693731401992447646960402345181909640923042822799055896572833903496310308271680309910904785995276012312915431582089787720014248139524509399850455439230341943474444293781137602773775942299090812338902549584158156531805282327951175414508185112180089173633886149863691067727787102372287796432863886046492512684877324652856328099787983215006407136485426428781761931105234523179113524015231127721008389039272256660222701902039850483546025767295967531733336411806257237592327350343391046575470362051953540699907059562997566376351816562925151259219037073408977662912067635440184719440059739933386161918362884023025347840800388538657647900038565438746912590653252778774411452500018064324803198569171747823773379585067319276575226740825652587458215663827124711529270799368325372683880744729248367690857887178783456778370368801875570145031664486262159087697611420643741621745132267228046626305507623670636023846948226253010313946768130952884640926117789169311534481735946279284951256270031958609612335343327742851719529172494834371734226174022666772921462230277726362473021135548831318201050724318133581355722657099747909752752495724829053545840672413365565466973074187506648652402472390048754130557827748367727954236874254773105603621985135131922322018117678034240595230897179347183275853000677938606336440795802035616641600858729107030764162710609796865165818625115190845128498326815502740880166777561247451570140195474696763721892021005317093492199592826627702306229939302716520308788931410195382595786849262985457109356090411178225525750642283646425247424304945772996020553499150391442433977022152470261108043867264034585362412146433000389347797649674311078820721057384041460282287864779327736112393118079729223335721777893281478630672991850902200003544591075646968078526239935461713564533017514084525982344369067455684998291330090756021999762850391983774483434817306344356325628578164227807628960476901115357969516836969744385150613515416845297630224203518000355507740858006283497337504226843982840449825947202304565479715569774688781779129103672579223334030935152490211352044504379653475397690951533813074482272538055275916298647162162294370428502886338863902232296493230337036694432624914904581044579319257152196507320881307532332991031635461360299517915121639603709898104296175867155450944980946716605058684742419111196006475539781202633220335437412552343703242143387849375640990266894403857401378315466295657840579326884397696901670039039360453979161497722762212338910058296867619188843957079165096324224772589662367901694519922663881438952331492731450487594815279643467227059959856767494369648351173241696262014006696634183217150455735179041924238172825503878185138853585960908933057795988538231589579438175926278760753720754080069151078810036494406397563440736592333789061126004857979562116397932659447873677322191958110804254300042601488167641669095246948988459259467746032917071669038451015069461531599877107650574825401967511853609214242889450024731569487723724430713994033089216207582179215534724953755637357380951298459900527610746507535400919443179341082774193727238051878821549396760065967100856407102428804748313452049814007702013196229599362183775759068675272103898003082929135500666849209981364286505829570940921024827132350371028467782603374689011416491172492937760099450549930252342974459792904468322593938315935857898235131677266591358006549084280449053974212701442384102282398733280706626742090342978075853555250720278893299163613018687965306924030681390584457105826889320369950565169697305850583620868216832961412884716173819642982063882515272474878411082885769339162416960046227164706040481762316760981114999535611761867084505222459438922638462103538395655642495923341277086269222545504775131035835347788985853828211815740475827142729748786776082216728400221234278983726714227276557377744719134172020038977653270727427675178698208189997173172420621719386585476551248697598209629508818334201833969760319894625790705088874127079622869521306441724042716742253166215860416716761550807664559380187033098148379982535745320106098533923641896034411621838652676630489280840957230726553523702754649319795910084955105610031243099847020579880239033160727317595104136792663054734826364848664375425267412055855604128596495043778419119859518783550301771441099081757112383447460819694585362500892708200466024187699537076086505756360478779895461930536525765969856008027856413498168037663450091965047461339345305890287062327786247108241857132340162129843134172659561283354412807120808466118081007106806018595893032078550434676070696033696527224035066370085589936015988999146167259065289731172152589910935471378340766840842629795199014844487015880246067918673155334816002133565325075103524928839503329374186239891282688406425189454685834451462063465454097224125914936073531683660887501357521363866416039174325512209740244361756081671699679727061800467163900338873747431775834400090723513121738103184146991296416388760434421759402094319684757724702538000093703892619029569644820648276846912476676402243095220757904471408595428209732076372647214865121665275025317285820119084365841962264369491439961224790167343726008556684374178490463871876967216097228164823484424695502885989428081934746397472843708482561669868434754156146892393939512960584298878512304557812196567833541863213143709053218011124983848873203293906339972327990253378590540197179174058248988503441933503036286344246683812183547709700099339540887006999925428910053579370691307967096804055261389222683031958000636572991837507627506512806973584243053931202783476800157175887797348052872608894071348502098364116443900101818996923468118829096945909023875705678857600209119324465234758204053971665731483251705746604983289134356148297735904564314383747984150673114808426175417490188870435140077691067462157331428171883890872883580013429413312218593486719216054660605249773195211332472331065109095292023735958161038444487424709242231093236661496765298412129762135096505373868373159557229633073110571059942175288553832056970350539117613652265769169121583584325805036796567850661504233892304544298393791226674488329477363471517561494513924611927495765245378183338380202085496872504188513558233850433028521082280118619804751820195831262845758673799920908510220618257709836783887409099807545091444472952975419556837817408838355210365410526864196275037690525780866798488174913133596765583788745433087528622030963428763129616061620672421222244099260007001165000610632569094740823944743608863657475455460413981474772945232959015438802789290745985720577508578390151951847634219697698921470918730247505878848733457181145534651739330510679337569967199885291685057917729630691151441405630137024118895280134162295452527452782885860141137745180566576304171782851016602875449544296591033244969289124619694767466170071234044668805164623986100586624386600151310954393614429620159111212559999196917897148150420510132148522660450412456361967407484913132644157210177910450187522246485464443085495848729586652955444734988068822788255043842428950572058038577786234468668847975598412357912275387903786708397783095477641626871637627329859599081040118040607828610266627585432505906209913548756695143623905274508111218348223700877186437953583024917201550051517813619562201772854911440822533184488731333047015317578405719963644136855547389426272590179978806339643684954812473654615978729282262999090851890995275880296885395666636824077008990634695508874884801380674412426982824517128301052915356464006582587633130985190658099788215780407624988415723325188008401495762204868533755552220214716484903802768629854720068706911626247159030705105473935252015018942267803053802891951919723906460328951173905836640179143502702348533302086834597214558503568370221763604004378591346953775831671062088001020252826693119169277583890520358774960441558946725793377346702381455754562957194908572251954339449699090184951463397481586769393185861469652615937775274944308221041137884398035476902032771654516704414388618340434372070756596891232357686136306754116696575794136219371032844018512654406140702601562415942018262995422026785831148290804956235471975353680630091893487815218585831104385441355208159835682183173771125591989090543096764156466867966516696364613030063727433560064384290636375341078206883395893435106567235459175348657925064260118592849689934637489466699589372282073942911732110608688200760558812403669419270638234109777739034126260329716778358237147066468803935539723297451011059581148275553504560064038099140750524900098523176165918744535019858592713943682845740085764085148005197742900031928411530040061971373692249123736765285868593826307684128401746404284343838689621980765668342258160455946853132886605466256808801515359557637442499525478728662370390335596797168131049571781821176786026743768916266321115982744815895036996168494715894930272854486666460214433067326490803506053592756240950877318083904568494972592273268488315683616370338454281330832353992809498595507685371721662024099469507566061032190394237965489154052075793696111535841814340544871946550933569514724358973413308035473708005188182965583587577502315926191486119148049896750911843389506477583203458315066896630002355004235003337353558545867556676970341142334887336818512437498869016402587639982923897784822893757183837047001015858769491512891203198431169683579953568638180953151242880613271853929068039493076624070397322003231139947115014301142814551957518739922098179340060407505930237238796043905333839328284953117222145218217409197414769805916519098361352307820224384499503401865046235416587030508893943293847134575330346208693139621771557631935093230857606910241044891346975286165994072057978426312532587790379798939549739913655835833386992015482943582802583693121232620838728211667766097838967021088848915057597035286536806122383752095508270803992496497005085230488154567370295394375211974321017543286468646192333169908328563447571022371925490909401871835684649353143767463559593826979641489606227311363802909355930360169517859049600373401069654003203111382924425172940253368036893094168865512096835856839405695433206689297463254785484350560401382985230383891421219440383008195226930019877362542679535385600413164464146946426548999047673462761501753752642071661288136525689233503058850593490482501977922550715761680476346662403724265044680224581877054160548806232149827452966915976056334232496366726108998465277126227063837707286509654252577619590352254048144015122612714315082593631342626342442661949668585331609385237557352944550470335247308776884003282947668750972959710038153291569018542005513908840951229075108943175293694361119151408302170700598685591536432478722768409350093518629687506583749598166408479358477177934150735115527728340397798330750062028891577819017540621910040185700204985792365003500372922340407157247949799011733069445780076119817480379945119934612070193451972850890766298282098614322177907411792979721770197272251920473573756645147772354009191267504585962280826633496637837614334184482424039153416803724088564550431153763779816219259348993068395751685032498043720315394108351420031799937306656273282158105858068260686363200988538246677974183140603038519626322170409602895492605226789797180763297907991277175476300469179917530558040831018303114254190585006345716603588358961652700669631523608855452997239481537107184849364576863924327484428603825415732947162095595504255897407259528048966263955032479091750487227215967219925317304074236436853972290296122707872547141490944427439178371107452606532863747623204616334457543351318015538381006280168279194971550806069708955656004188751926020304199203980722110029338048793039996958699025520853234001034363160611693789583571449373566878386899215528308178552578123214263032347892853429276427608563263575805217821077377850784099490768330060921371302224545314365806709101526793387319841457173115369650447988524598600629046717369382142740755762887739127609014273830877170678980503656304619351554336908289828881812054537416639709659410666671415116792679297237040973943995743003279927153535204273198053565193367437528877873533816330931954295139580564261244735628063448516033003621774094501056048466872913405032098031086360338243112732272651182936310807143463808647371994764148568947908688675630917044019100814357186105885471459326167902776655065070805365090387489297607128291761912424726431377883672368631257600775048106496085098562641415072657733803975080488577125627999211491528162208174874728735698440313129037800592333751040615651286199838715941522306333636542224779486454471510332444144120447226208742228601754609762506134305656087289736541432890518993344279750268349170776026786969692029614768536067136682911119830823834234278551687839114324444560114278680843269213975935442426371460601481010744360863162766508693233993799601333149554053940885677434012611208463935387699792394337863373235125962471316337291196874710238395946920734401064932473708507485570022643436230387088673651760946406098280459578567920924965897616988570432720823396878468153166234775520411994876620412143318525701039114316653777350020148039006958341549867929425116031619473580553495529380651368784673488998884384164708599978600253697131187598338329068235836015726450663715272035159455543946221918149374479766046613795353142089525808624829873283726772323712529233422853999082112228923604426791855032074972997223110510880244432038075331459958281485882439726515389764564701542091741476780841959343190961644113080842794385008522942384385901208042239160900549966745141448396130329169259414494900915213753275822227862882440357703395833475005910959452193128058577716186038587220044061460948799132553927121701676549372603626973835913490192084947914617713809173108585987718042802483481402171081903865387406046654545651290226810547197912702370487128681553182670921161827450595852057112635404902799555929194996493484414922600008097651974605623957350410035550779815416224622859426753141950454726948503772675476810054084940002680588642125556969035018536298432556234313747775620750711445425350237617924618687224170016769781639068723047690894994085550493389277402090948577769789687287281774228678739495695702102702542807739951853615115630525045870079303111936806038661576354068537231916976054941529155315209625418970535416452945271812520511287095682667664366120949525535323516992940103442807700024277853614721514851257646762812155792672086369112035680262129810264349605994506810115903902947792209518980390929544910929455811340593020174623124487376347869218197473185964658074566550190946355771401413462395367217231464784684396463518361957372877734790299383262052614467127071605858835500079066709636250449771617747211801640012981578189629504890049939683958894925304633253694348303684309339582280206430178203290396166957200708863548693348433150737403004078423758305794344510130240068218601293969968886872923240344553489178161532894802644898043279060932866757572782971197087722957543782777456752241054502597418988434595007293436062606409274798926732523726866134670779921657308368669327473795029316721952286773600668504243350592664376333453451500987340832669841196543834136417804989625211324723663209661273618043510726482827092295349356812921647752296717199534004775500067860966406283316356686774405171473743739828228192294707277493321777971704574423967633015840851903912394123845279779363184422519183798159195071971911195950657158653067202560702211280335264526573682136960227931060569519582998771631101000344665768854944174611416797177471026980685590845969738259783699681077756187964273343877364023501125670551580598746258704560871456681999866346224628454626683421312397136989560312395702900377132575393203604344468551999509111994310881415973442008458056286860504257651168261907556181424591491366741184792261961617207705085243384450812175446783732345739526181456680043712703694698775021984024124556445566518037315969586469794522316200375755510464167085570434912695190140321517404403471750979469949813759086960975254629813924649311637827322667344389459742152652050872382464299925243670230087479939188988489768864452410555152613324636272574373926047092639761854207397613373493272476796810089293474449273687785502601094986059748181257096728439096600270094990968373503268402575387559790820165781804185323108812186268585414639703895838461405528314761890546749961595797014957588924583820647150043579721585052217005577124240213049669718685792500612431660862036292140665211935775691834165529625092716678131129665843241055791264537999814374152049180101500669831740695282130682500980319704416699744654582193686254403261688366424091539539169229911642929465542980721256649022979622810056534442229592449499441048489064635406981978091740066203082573154642951913161544594501396499307243776209203446601849181726061455075426705122114450385580756704970580576120847255569310416856562110786015920232537264701873160323109794807759133733287445347421189493537696166686642846959743949637028364739284285940290104801816532798775659348419838901770603704645763717386364593089542254931924660162870646107313545722980770368011082950118325675023044006106955809031175596875513371749463237923910914452894846705302633732788584126492468047908489659687076044503588639180296617749397924730962485403366841510379453169837251465375101220736763140539699818066384217103649160794815855715304316226549017688108334538797222681221955540697320860193062387382884150390842960228144722060677448647919874363409174537276989359329337530180611097737735500958879724390832076530183645744259785824881647284925014722383913384409515796496044459734060817637275385752946840872658619342112296322585529284518084455884517538655360790060323134568316893992736419803110986552265122594916987407212719057106075014440811590752380129061943581042131952993510221306911203302624922234066161687916038003228959831770214817251843215357982343866214072077777953336349696988891340297933252258970444146706215257456671704824010501953752273516369557654673722076529412243818163773112343144255139708216762679953423221554127834385728717275757971379878111930667411433089249504174625002766258349349837314103831504696378626728732399758350665155000206107429014065651250362166930817700736072323541904824390779741900650066365424996443674378699292495251972685066913447076542202368276580321806165167136917465212324189752834428217927525016608037861866873164262227117739592816924540526432223379967361392527817801337190381009713884238945019204574420156439493282712512073874696652441654017738866176745746805469951464757681030494522114028691925977584557126557486091345596796399946721348673728956273670303628447780535117821034827965803094770537678037230012627645585051827614116437881704132401607843998722511143372415223933015485133914550484449209480288803763223140363368270848708666315751437862570479961848504373683467775022627711339141967787526571472014955508239102315334439581894331013271707647631145965248949588214017735996139562631705912892310243216130100155130868899686157646870844062521108103227223403776788999118890281457855177753657971366793461072730441919364187947175803821368859355617406063389205822883635708620543985331217463299311704662952243030316188972391981987041609241370535484223069496943245622388049341044132770684931768742296885509595801379311251109064993113237615489929500400559133412302446316454369458281796821618201342257394006785654377558835818232358177413875793505706786822515971028707956044633863226468038162027434954419944618397871096396214021071432311416909542950032617041655356544212113329110759544333472412834124723591169473353392689434145711885928174056197782701077985062509940082539591131457318193741100886459953158845067806058467020724094930211424146401689315706262706450823665688137410007767344219788401004517069156879484145178786604455871700811293859513589213443874356917656949292266110521553398720788287284113215515258049459650008110653385758167225426024597304998760895906409983356170742482264508483046577614850007926768493304976253945225106825015133940816436236662162163528873118846383809961126988553865972189096877220467635042295532890578023143118098157508854614957685437579566585772026174341073873993208609243264583896058624565432483549067062261378896323455999412643500268508157264338104491869091485833434720095619838725063903759768669001020114855816052645757772321340660188274227025735349121932081975068076237310573705365806191399206752499401828381836203936668895874009575995367693823287262408440031004428136691683429539341408846480107562407336127477292062731015032130912308469611815923718400054547997655868961221140079936158116257107712791710131700929150269365319649275098416398451507536843468241142169751397581612902644208566845569589822136348841844406032662535843313634002993376909864239604213228761914224884360766315984056037138160525298789013494841234527909322621639844040694578372743306921361022545735982414847282291091319180712419948025521781921129978598404765469772141103072831905337387127570082357160073501746261680870069715521652430839656388397463082222448798188973465697663726858682651196855488886083983387778812241206829467255369047724519662258891542427951622351552688562981975061377124297005177282636867670205145753482353608811177442937268540855526432214046490375783319971848063102147866474571105022165616603461601991388430195546076663834164763977768133061273389268121208768252714813340902275821188310678052336362914825706176729155856453715520120947381029922007652455828424753385330793128889650578944320321265852240312970173397591453995031189383598709056780200164470404748825587533136341621751005290800718698014817100453141787417954953357423930718085543319161789148508574336770403520300418363600577035889431976922400968858015938828558167733812105784732743159376567931009544211124537303724209952756141433821091644973004087835574323014546501231811580376884284234946595996468220397180872532701097118625235338843059420495372086597673711395522770912379376269407281847359425704126115873947061496524933691200055912805469626035561901200046274337237733426596328315325968341714964119317999065723053283095408477101686828727754274311281996284574328098577937123343854335524844381964260125883565424633206141346865450886491904823671462596569167433852842532333033095584306904225272268693585684990603262422689995611171407665418180926135163643298208517340134034319155497808591621246381978718182148875013775652222764640468577397736658865132109636837478945076276397834030371464151441717178451759174943250912265118413387139145761345757696330271326988260917417192903117733871732504317671766094994228909680904719472454679299748999053363581058864222425363623698747204313377621914010331115088973496844376762655782458103920936341307242550282450494254018390157545192082212147861098953796243863207945093771978143281459173728495410849945584085166078746191535335128469014251870162166736994320830707679980334360751706181400187940982822128947130822731623755796912627711384345922573714823893613585212655050347710567620778766217061618388744670462281802311008857240968079894391827041564806046713082662757231032190226818733468689095324789389233819824797105432088871337579558231976968931941118253032851126065547406729862567786246832087076163426524018857661088535622853691129091749610289370928743567118025070922201213089368624040258408114643505348131029100586417807005564009304225388380103303579391366910780630090102545527681734641733437964782830899514874215350259997920799744028283908076007051006746196555192925361847220594119352437624900190388939672265840023730563181370114109562062001058134118517244703266747200458840298347005594251288269552559592761694035381032502173981439393762618614009699396457003899263163905139814244597704914401862928303105846956559834651042345306594851910012210387363336905307084203847451795617526376065365571599828679210430523065926848520624861172258927948830043604752275171933787898683446104935896503823414875668588169429642668959375163537720469853594587626885294159296727335833048166132465651989719195660362509405250969718212799755783798503046352155406174684103782465921569227189308316955461363186259885045394301963640627203651715527230486673919707050546874578709840677302754598084197495971607467953715620199195217414447081294324350593074654656890655639593358888601126614429455458759286977259170351351281611878194272153462972951714578471841770373832060078771807834931157832071053565978725316027214336804986219695121005330978983207785035242176626571067147458118518992734570553404160589687777163124967822657762732269100810672933509834500172909719982771804805476916561834498338224410780552742187636375153415243067473611707542638198117342286021752417537164609267299395330300859652829540655947181649572180012394249435057905684900699142676305593017220767614321414105436046303859725629278939341220045503583424206804366421042186319998017037094472587002645659114588218291426649470231321405029428299179841601718480327792181216846451862132433801972334592297054284790792202174309300980763445612869813315337389990221550000608591769682677414324171084439859387719943250609318749192601800778856965048629529707878428492686942727549287039302102094773313100925921730426731275162920213746607536012341951667943599596084102696187311920079261109703978527929591892409329660907177002767839407305775904799386777208812667625665101992573478462796310729432687064904049587934483822173835651949951634068369864998767484263721320548521105902354384237938096907493951265115958974858474242968496009741496492714135235311127345168282333045025279758103395325618413314376329563750363613893294180721004791391505663141361588396615167010470378208816087857914813282509010831234378004505208520728808544550835955047349096836999167757401861175580121107692336884682439984406811849977432083298630022793962293364581258767597972796457533603194328182556336819214505781803135866335197291346774463244194665129218841804819422805733059596415320176596070029772368045404564042611487343730356186379680414177478991610740487424905800821358733850343441283611168456857361835264608429319761529509906269756129704342241312936923581573609111337510382392362215862019558711138399480787445548902834007730589055035592501533762513715491966168028454172866239934860563672353125125990988173066735063804597907274979792173431133231582613743665221720718987580646539714436627006811753455353670069431295801119039515812330289304262878157654794220588366579250612350968813378180263295157843928427001645226838341810977092708103416312653926055996739920886998071089296101031660013118056487661223567521792855647999800824386757035410061248420387079068297349646251343013313973659295482705859707522929491380250394401897821364005406176577159060356456052860365815730191623648129257677113690254711936192149718952309398061751107034312471964192274834297156534781029835183983389215723601271581879534064258856666637654247926943595446568313934083707994942726340923602463776886032192894185220308529221406038430092220531106169055652114415046725696736563463506306385363592444469173771121392059002423989221891350418966255974962522470798278104925915643206292391051399802052178224740591812233430118541133986866974348478754325997402011996446098108893829141252469857907279412464592994612555279950408668302062501756282592311413804063460235290704046165455288799721755843605521541511960318065354393083245658143463442930710219023964004708446304599252991230610400147041185380392129149527040887106146140487638501743566353819916071618056105491607174425249181661413998061486678600450566825696472542388258263214781805393458647994102507594146287158653076816784479359246323393121558435051614030586011071942802816301385777470628292347041548541739776691446066124819970235449940687729459303855291739928574689670220940346198957830857441872266979173461038987529208994085535921558616926542774377842384456646171580379999969334640850092007377450312880812070655964602757956712513237425752727127485739396697156608163384079494904105984535960491402696085716440230764184251870244495515111483091120726938670939093305503706505067355944563849061507258794367968015974137333676138682927814240964713926700614594419880095421911118110280227801827205815697085177777802426212384330748643508067790935188733893769806792680300528373734815239928066217392778786420893588189796572552860574974927018574358803728978186369509396067236002585771761385484467087556131650698494020511040849938945448689954403209349058201073657511090867883486482270170976879818299786505992457530233363452636922177891167904306514649395039342652449586136284659094031334168111346142318363109927416807833312544885011543885234661205867227275239189436246806428249914580015320289602428914827492053086944482282029844381326163343583864420042724720280848103622665986800092177417351746009045569648039711562023751791722611164773631638430712955557516370805549764900635467515138360321426180314379017465618413126384883383218523015060987027613810427921537280378605260349643165096670029199520308652129239655824075472833270316489174217443191489683071866094506632592706443147502110050713015688255486923855320764820123718919522375003526568187812930338033392116506185577896667306742578926220220091670458628813963574667451053960475964935335128646652510077281924476383703394774457243029065816979341052805226958661330885300019437406730879567174806266218561289335107038195344694969401483311200868547257928575206442004124540940671753351561580742068020696503477560899646597053977643252321169844492256752279977508074194690944257205843644915599334718864418358129268495888927726747908722139476734852992235673086812639451328393874965016132611915088247225316962529774551290382715162001152300914666505954833455381159253245622279641353104306730804229989118876180108542592805419751104181986729240895417175068769872620369741457081320847831471410256032944976218591483103794130621633811353908794138478157335157741951724495201212813784200053546315416041948305189430162341188026492184937547806339374166759055523166611020380662096453844919384494461235131815732910836011144644294397563813922675189118916914444366587053490109026343855505219239460411204741376903763180750958631554470609200490833143306870018078200292335552060987161226123102057464938963114623699828818155573159308474164089176203103440883515987956862111618329686107524218664306421548045521112868137915755889297677103613687239441437374419183068796700590716184674634584733007733493074369104494491784420603034904838310161019211151612680399934907352631513919815960393860178031783673927228551562243458470011986628647454303602142366880564169292773174978215208583861319353568837243015386371108615475267539681157718024125372168519922172723936882353708601431577783057498723095607877643344274047588000903942048539372772699647837081806763546548350146171123047161480081983470341920484791375959240323577066910350339761643685573240439476282913396203222297495860349010193396581480518127116257957708500910607967052914108699865270449141982035396844468326163791809146355191290222313479853587225044624964902852281783327171656624322307677346163126417892114674633453607531305755909377212220343290308649517518345767029018571966778674820280802841578882607468922766611728272318868265433114202257066127764245653281025671169579345336806046140668426377128846612160019810879487554449011835596905538423465442449080363322012237656836917478069094961394151525730474190563973254319300885830093218181719467417318733368637050903293654125553056505875854208551712622752745744563974924094049053504588707198612507408617846956608195948516187910721228002137515656616136399188688498164426262438022325538260765495500135423158303090673283021572952079634218704001099861221083457037832552689579165248163608688078284539576686020642397542583376895636314649290996125955972395166045262950165425026221536323166235659271846364627640619966828384252242535288595061697284092276777838963727762398407036804247036918466354518679228945982997451850908638706655167628770503032863844079987923150209385612229150417434605032675174222548495816370188367368539185353868276804231114225654600219793302086094818133392277387800219660966471480375860009969542361405957240272681652389011929418715354282871890991207071790987677333212011414783862425545773675391635341035799127174604673208254188513255446715503997002170809902276208162261223967418778465893381898691100979460193882732198898002064648352429042880846444579409145236105815268762711138611638858966796853959680219313870016112621428065572203378365528827026863460907304948113796272958137029145856890130725813746547459433348270065376767762271256766371604056739931225811895687080209413091614276791742755340192960860718571418625413667675299564811650497991402090436222257450517002962541136644769226936566881351892662516225218118474065930496709152692985926889323977502204213417841224808081060964276688818872719792206791714724413124385710856331728731865687703573717165553191512173611613817198648403033593953390701044505358189625337382920588617879702738134484119496754419006925907586802099481249861471359848687209554788560223415282763045083214407834912965171100724239668644880451753516501971289451902547263745702034788300383045386138082891018724979519656224172626540363157259865148660379368361449088451201899971652101245909283843764187851968174409813022018198178549934334199763168547960861511519560395738491070538608650486186860228847681960397875878846717616108143307035232959684701934161240409396096246142639422838519820657057929453577390846113126114159283603417534963404907892087425364700348662262393859223177420736797482062081578233482534542843834372614806867089254288048031053136411430447816876503621377666390024476104514512528865058661007710422226912856966600619278655337002755922324175340282133528476605467156619741215259556713274963333884405818220905892696509374656678874433564523758194899211220128171752292897112952006282197344320575465960334903372612399820956963192940524089350219320266324295323938037980098332373360910197471118865884880052604510062793191673332710378818448305130706380082420744412685881902731143121459309965892945276285059188747880217387243616873715671614622016420649135557973421373298079274572368873053134513668023092267517217361192199443559689601000942825460632581907656215680525394948771159845998966961731517551875161929062498652774118645488399351856718343072132702937695013799994505817753215277703056215322832856131643102168575511461664859774010288595453080467491081081835225767605248244458202651523031271956581638362242610693541141430291417485436453819094001171717675743527094131956354966462946838523418416602064434241783026924989430510014471784887497775414764061840032825508304962783776873144465598528799260915737020690588284676270998758718769831296112007432662914363714076393002422327485873764741507353599866246786125198674978837895553823843348526149577575742433182377200098730144856671780728848613620671110050148691875304563657260437695191723087055596089832781568959612218413269179900650439809082007792215753025514025002215516076401995645217802606064613615429985753503808057680101615454229947769912354199170050697675933609229275387283491456755653665849562023888557941708932490669353965437006275735738007848416585100513494746632067648126701304379350096204752808349256460320163038090143507819880974928533275956092166063389054337829689521236745889957219213843967888319944683135105550568169269468949297380360585800337817290127257806580107370634267849850382009662372558068584644200958756349334921602998113432275169035868334808675388431536911534406269929746316920338088659240128503654689790340351152113174891155430388419360333958419548575131064596096832817253175124601151783662527629975085841691983652271729739306969595880519886439908345483824623449656836435191983448569745661696394601435564051396416336541587631624933681618144407151634619342504974481815880201344125956181774967100842234932983151488177972821813070011950597997702387997921573930679987254751096126114330168057852074487660099955459090183968319730486744820336900203367776182961969871390572360224325226717582653652482836174212716592575823845871536006503729862150372291903534305824775304935313844185621580349726122248428384796712331231142423261889661046747819618144031563877994231538124090777036077930557238709239914587100034639058444538426936500391553403279444222989487792319507449235568072944448719240866493168326166097890951971660986434477227185816084193266242204337645653510247835135120600048364141707373370420095385431799798426727583522143889729015999568101578118497885282690218869545152989528257651198744901000339845526201308566810725633934083442749954460500573299976742857774053577675175268330555599200709605711060364365054303561338799867538898522424284094823770801859162465490039930249537618533502202912776643564476478412724281347398448260928595685094808768814177314376004175666228054217215702567083602503618072369566600861249585281325910704916964235936493864644063615009303929895319042359244497693962470595585837525225100528309936277689627738780594568489327344300060872066139169624241378022663405860787210103440416752191027919663438871520404436684560954665396190524862886226206581975055378096247706285178272827570798184426252562316902282341905992631148212752363275205918230187139880753671879518963369874550319206772772871450269167025693301976069214936919711678421512655861156209984815719679543380022865864247751535973368884881300861392036510114002376671216613016569743602002293479879813106097887144726161746088099111840183529518476039134768682001170926028581418115240250014647587915963680526182941260388760411476114275479316084663716358906810209454345580009569290619599522986575130034876646042664998515928841593838937596913881398596187587892201859855421672147982171378832495482177629219013787844857231031038013713211079845221657878586571274982407242325429977464126307019782407350973550576363520726615116472537653349747292846821595429372772146453662038898986115286896710584176270371161867397956151685062573796152635192801860282509413663777141526349334505951273369950325581004617307393219006058363341972833004820843283085518076702728256379776165396556929778371250664305659467353068588228849950708603122829642189631001227567681877123090251977120480722357323157399771640515289049268961116322528808932314183175420176786951000261152656884349584520315256767365586049963316606693847355235188343879689785377071155925971291529740992377942390766824933884277527820540905653699443250721411482860923046415243317219462757732191753801079057666778385605293514577055715423528695659286442635830160788610402637772814105280648610726433432747724809778184634801528370333416814299058565110411541164626694734508287128066336393821533963911904822367465587476510096640178455546813095361729328321588191860682086898811584555948706096001506416528261243993505774144480456629814762527737504480488496583225206367775385886334922342629239894158622313540154330681744907716367955740593468781256318246393195016042411113900654402745951785202240536588562545150006127425490230065771093477508925088461979804687374484019815245043441829826230914658406716700286868019699371811762498274472474257678446650331935516016882838624559818370878727704018387518720948235394232139101926511645322787933733383737020184498392605398045860608521826093217729188298658146311218685675138830313668636650180971262141496164735119269903019085843696228567830473120137596240694953111234322245632926323037025034135194499777948569560204929479842324404256295541279377637747265343183739187995964722012408780093093641611910346102732611170874717623332688750967079647336780359296354403490390485530998233732889541406047632220194067465326359898484533192301673614311534974608057789901760569721519308114870471548878505141477902777142024335424556022851550611693783530767784048231549374368995225012433075976650884675410183797727545755838230736156614147988611892739603261745397859108575137484331654514973345173200935143168781422428461116407638315492117258315306449482490913417424541992468580772701588510985984185918343753721187656777931980925183901035503499106013529792311232524061349087073260167135020273262038395418620217392152925660718755640951604086618221732959713952863647810262865276092166669565452771520550167735689216491473977435219983123322742524506791160807177156732713637204639144057750491472988278340729719377159241379752630293668799776071920873065056633551520474153967106544716493971005934892205042167753846661551605607414293210725548725678496743623679570214814315709746259955469834451699242420500444103798468118169293397030145071941839194198140036132394151730360044120395113530989486540341113138792237592472532313046873776174678126596581830691624117845039821120851634457232492200575351238257497768122270109272049831958972176632691240990243394237277140309236037180611410087359480516166105445659114620315009042253120940602974270627263590703723064378730627320794346341354562803579562629108496410078869664967767514774370087003993754986775447777778251323817642021030826271225825516731467218059363968859399949005725957627613311624676237681876608957783167432107267000029162508051354463832832233750104541997445114122507008217291689332663781470521122514715103687258539348379056776774674791943894992671684669827602825364968562629994009299911709280148706251260460406602220289165032626243488680291103415546726503915173291885030155836226329319123878218762635493100932128565567679257173430070270000105652371259690553235131539359751081328864027064073778000418701231731586062699721195563604853942403068101544928154883949145821148206063600492321477131347822300358761927461441186360781902278227703191277621210202638786715387527062422022973715237815920189991818898722440319723329933022539092652053464433649886831360913268990103157287072721908369068093107287419967325108411411278363233348878209856620604220040329373765645078294321729486235966874967437438418597103065352420777783354668406605878670143549112800306752493515179073911156202697970241552138823595628679467726109563421191531003538659383977274868352083628315665600781195402568035818936911389915616991532890157636479490293726156162351842586457846482707823609995996459914850642998859522166336715821273817180324507300394205807689395578603420710883990031883712732747139899677607288384385876057224647449672666807041280241992182026476866726520882519991386234033608611064526753277345044601149020041055942251389781914757704874867815298436372329244639876040422211594146929105218901870517163927224778534041182384352008812222266813466285039097059037664632029812715346525269910427497470063516617771686847526551852614399158237797255814901749595038911828210589821925907183107864252370190768181448291662218679071453308450701862544856696723637321328423992781783860998166155704990002973131525597514598170411340466046233631755696882027067630297769865413986250704147795378345172885845534309827081544432193861720492181069070906874503898522106428199717433236024133543443752384993048312432052248750189192874959005645768243979195595936874236710565512436578996031604842448517315148069836221209474668208507308778375749849982867872265559123185917140801231495523853776493014806477621176550435915906154046503461465396600505164166234336171101369566420548716031312699906899237863256691096578032515845042620866624008665289586878190629651131995666717077858113316399599463231956019754041930782217159971651992507186884275542516505530067494047475613573101564396810291499998351247848894663084566382276957165691194385318313477888920452633071313172207653401697627335010236298870532369522904919180164144489643027368412940919692122611847428966598440046645875689739243699329206542806054471296566596781899282261225220470481609130252745399255319022266483762475293422836960221344692524593696686377792080952292214023911027406508969231047361975768206387888920972024704790881037318529221551242028627831142578983167709488007633072036616281015251933280235191893357477068832749264192164476057319854610161928859244778398305213719642686392272942351584527100437622191397165137288663534131084262485581420649475421653654322903698271524357694322266274424094516244852947077581873733843649515993672161748714855696761728802114003281830551231277997506210914456956264196634710396616141967211706897515880728425860662119452471254076172690732369754039836886383216723141771216766803796208781287921412747854884120834464264638319404599909966839386531787329436365171918959022361508143086696054008699162133404512045811978443370336903804165505005388394224401305648275131273916276108821683288839035663701703781709971893540522307218634577697090120634283448999384201405237458323814921981281417677088524719127539173285811386039575647939934456693643526199655446659595099166925391048419145340585539178777076218563211699553590738773045943120657106425800027104616695382321470096389427553135472502074877934246398017592697512394620588358874572999870196434444806460512723372898641761545758639927036956764180096035302801063904625565680719685558916974271179733020339661019319414802917325362840824061930605046989334350946178740577403293159242778765031140174906379682019506286713891698544904659738673633202794234851050138101621143326887504901248673928759610982921481130901912134112715387410315994447645188924773242777571818014360751362441446511576845935823288894118449688221923174185865630579951575443065647522717635709770464249181479880455815006103608526436256803785161523753985440988735625783723395197468031178130562725598445156631350993558795405678375051882916518263488154097239154333102112869794872364170156382055885128862023330468621091239234040821216337299088793897527782144549839184260391676652565188757878073656640599906172012194696363509173873713390268113414728302454221821197662818156237312009222548660953613076496091977869171486197912021393102528827514730599052633817511593013805183091213091067969044367093465578029081624260637198565519289060221168198030339279004700352030251109623804590173755205733049598425251990762100311957177555005776663771700681906983371055659345553609113953616742111309632985162099974460212198590139619921756127840844485802723050104287661709615937232291183220347360587790228619048266033666368461263205057312762083954498154085195824543292154090152237576064496396228357778018810478263542415650717785608105130798256802001137770928669435817629743510390793209087549655824367771228305630466233732776199339886811861398855770046905500679743956698850731963466776183391828853567459106807045884008614665511694073700678660122939429529099809292279974033516116597615486521663312212980750938546017489490105792553589234619585250832336024133986636327824911894631209464778034333329763305067238571964517372797666898423305745151102781178407192167166491467663735147266660574649312722803654974803312490803918459119620851713289019259009067956658321512125251476770767112354080449698234628450551238615351504226061006670332645304975445448871772058082823979421296484297030898591335135154808107051581323384560809385080826530142236198906504968552716189743018834923358908993451561159723410853408067774395804422888230083712369712552493254986339587363859883464612410174753060781977932998964576986860585593250788312363917939483197060070652058787304661954901096239905845205212418090768716317607750124034555552798511574423756611905411677529087084436427094815588609436674306114861102131003936980940148182513029240383573804640604785296744475578789555355559438174364441243588088247555225627901029891307594925224246858572393473402570217639556790046457610504972927160061729800839255172057774620018704459582690409574046362890516377452958976074125966725461049110869602435675075909999467278137886616125724301545028287474723173853943010802092471606550485776733107659956663379578763654394186642013776642806251314966098766638273067304333604315567389689236930636790736705693617242641702374273900950783402595767040639904083816254730997012676560609865958487333875546558426133947756491320000524622264972209965790664487461504140983525126289852930619116341211794116495384328421405463234055555324838268599041436036339597322564244786608624251956090891789051158313828234354180861932036854691958221391942420490600053626077232264350501264174963418900667673910725997038091330138500593334028083769723260201345785887152554112163266786106599161808691019348764485208927011775267221684330688339596162002695035247386770749236513578819199478507836182506320662205889194269970704886352720828621095231475672608970063539568186097052659917046385799350294376281530859335275179364039745634204777303994509548473769071742038146000020864089034913819924215759695979298138881834633874306852095457244841553903543360061737038505466595046351118946216486765440373849480082214249607092723653201416203379911785605869536740976604518430600699871932398271519346276277187674637104647663594314596862797552886350980843246113189442325416298818046804625722255744855974218035450081408937470107316845216241420378571238349983815946142228014406262434499323916942074489886861488181476707609983891948865553433164586748358256293125491724084847321839268907388524914740652766829032392423930187170449271628788467235571215234042025199352056199604041795953642464010605191504031361657039309818092259403701084348673110927158412485026153170581538822608285193089522647477361817486502056324542041462506835262413768923813070266827128836548306806335703842352686910437234980561254016555505803691874794563932971779669812235507377284794140564322078248006814403521191371494438800895577076224081560363741275135020732215953667443179553286945325368156848515707121085771616939025467441021916509893041974746625419286022267336804019965417858569715593863883226694607006041174811720690682069704668422547827474190280982174926063148743617275257489105623204342803764183980574738430856724707735322460033896107965331034706088101348033274861213373680694127858348450212117962960348124062402542641505760811775925585941121486100184822868653593043190863919831688274861538492451539415136517769880193677139943400878267073756074469116172400371236027310803819955442645811773199519505911871261938120630547955901809896005750723024616395963495875849199071635015582550148200607180968472530408032720104133263889616396217504706552406226936056494132757797307217366300943011804600304070085240920038763707294310516907504939013567189446113915679200679426766922302501741213301231751753849792227620531762801500562338006028345724814124920323197780786709507851771494012308310841131680255434994123623350631865140885863418679990273574507640602836913497992639255105109816085611913494717717472347894312353258549220943897066486705547252793110324450543261249545240701977523255119493397734650328758006547887021278569289947680035982567762146106470420122303025582175806760721124410854447867161373061841496290322245477105663658562514191216825460487529741764278662451678270275795803472379483621756937456504882933108140105564371836456118121830782178103678181615397651940522045839771694803792878070366412776369037361982113431075547054696457975636447481369860161978218950880675821141835822884159267946550160245138942449628765575446055634400299582160615416679410669267673648492553093253511294426762412715105205075640655023312648239485547443888417194535160481796790256974527258441307447136563311107873714562270649795834190157734066277794260500485793652630271727799032429810582342890974874770348415695048524952094580647467716856412515361081004639197499723859426762946147497948640982450439474681719350970500960522704868830661058712399972624506945915985979303435882665444043128212286742904864911819881908239584637021318734501002685824434605862201277924623931885963179477548448451793031580206247404828356205291696246641703279312241440109148229160647980341952520626328146385946499905722130113593525065165569203743598123015025087876534234883810797865980122970495638181324826586010903359861584611712174418834437798597691575210190601093417509555224709315571166835157931741080903672910064511505761412314097646691808846544546209383328181339506691176229913566776988782351040744007924691249913056900823989066056259453050923762351374679154920000317559145477125290673336692952747559294255637742897303031097041128774019360739594902482034785772583755634513029426536325244229785134735416048081673543999931717032572681589830687212130072089644042272338978845791953643474458552133590928366128761437059689976719618242944547823649332433574057504999844893671604073744518937352826557760242583293876608874467641510249820289796373907184031729670026247309692421413660170085004339154621982053555937253318611305007238000528981684366802208177410295423146374655549351138695114897016550932713726797072681860830123887568448538218651665553620845485495938832773645609061660597248641863873333603839963484644703384812457106441947798167083455579280678481693821091066382649746031213336931037204449682021221313139439079655685047508440820759778974249544020825896319769116746247799957663125915555378050778652532822088531494258398094257942960290594268787051530416476097972991583776970966216787177855648753561284097862565828978536584503665836593030461105968878299561141533573029987455862499190715854819410540193969073783351398962674078387005040926074857574131772532003396248378551019222997525331494079919356820473675719497051918309998836530038265588504964666816566992854971812003571104144096787066002906462710206380035996507279525305486851855387951071930632391408774722605728344278205623032709092128644030215062139731481326855220316154279140319331394802824328152353194372759151139313306559952017544373934455966128875263437249481412004031054735828055574398778463270124325394845905550695362224144127426476138271899138982651546543145984378696144490463788321736044355090183459923301950671635618903534724481727879137712432599837053214036711216030476824200309862344409379279716927693214506358940951145433914722194587188979261979697745861098981419727626921177280953664440705718099725505630190599795325338991691907987598456627478961533337521017130891914271898789598449621655866531836432647129612298813820485725513293293608752134043157492777527349007417613662179975219139780478603616870875290933174068747705238262611518979320623821642767352784032071960541882558089258464019444300228933909094440153094566025249795478290531187037486161071406141918148726523244368822089127796998319893787444695807669563170440547239578944097562742403510243802334372561132160133033341423804123700374829244688944135854050494290371564699844519664031759921857736032515186767715855295528782641717938124222721963218087690020800697154449518881330857747189206384069099139977487614732437622912657943273739168442894527611210528800565530972972710081469792040439919722498757624300710699536742163279283026883742363433563227431859925492476651680520322512651829568052335486798296636641835856474466260298270623251436575659227517139441220787732670466138689004789649462297223733107969249133326537878433333724314472584524379876416051576115128952860881154430463113273331303990825797745556345510934671022789681550791205970343465406774748393739795692004088873355887429512828656289006674097385554957198949857868194535870210551277652154584682792426384009818034900098437109613624673718072866354524660130438334194997482220630013080556920571732881188932931982813020367115486567180692051871600619606444953999393532183372100285441243374411608613432397893206900037340457336300309095607109180222077568720453794829780097666185553970747802499733014667258141970954498136064964365131242891825196791596148250241632271638276361399412932885105164706727965507827850997966747657740063100865692968241871106096519016194937135670202613289392167795107578533204640787295641034944974547006528966685747608407506700940750935516060038617491263134535997630762499333742263024188453421015461385605804280436738352777297387378111994959717698490906949942354295626112814536873683145503929810397330539929369478136318687086374262288148469681680304772384388439272410748657298458403834654959102672415481010289776848213051479196251767329299054543312052552583811034549809590238565092417186757531931623058862856227263948395543145191101886173505953337646463176924529878435481698425267314663729718214653292118242341509182838894209061056988996841146895957912046714343994205399950227133185665716606140125960200866304604655133472624901010309239352843085747444397199838560815180581994566212964030445610377855910516408985356675764961139520438300104095687510113924463438170581768650040457123404520400708693656873331704394944095720431911929600715169587809723166387751952020914525543740919271884034401862080573504055316546843758956609235689226354180240993409511190456686253218527785650856669303712264410605285649624091942978056526108998297260854952127246287452173255414301455758024556586394459000219533034074274893827094464203102605639765998407081102385104489129237520066392298515846777768451184983512146183835326841630973680618489538243335604430882431022034717984630457412700199773055903387577522711346762088929157589361816820816200536992883782205599426294964909403857463172561154134463137613988159396687447568127407563397869861641370564700198393500590023869962857000000328645504780980663539462340637048672194977912744902666224999794980750245274496204055659341401525987424892263164572878683884061836520738998755083855218893283185964696368508352354862791422382337436824046815050480451264221475277012196784426479764947855247976791498956840795238628996117927280624145016127319746951216571129722656973095206487160091113503296971112231862995768410694619536009285123449756220256212011224034868880239599678912430702709080064164998661273854812136148911141058236171882126872651884339936594364202413987446897681440438602629909954991271946881302332741945357638573662680127724804425547072646115763123268052137733691841861706991722780777728278617075792694840399936217574472849935404764122685757692345498988516166085625361042672091117664228418002426259855129440624391273078405906863097530167924767853691947927172781679148055660844991481048659133424755726030171374692790388488165199265502376442507969099896855807178737344372706996243554523726132279070108702938033364114082046576827464089133876886178870868672616714428297437145274304448517250582267412220181753149992384790132778054387249979086134528272166127098395703575307702309574779277788546716557822224354467427325892210910081046563799368723749057524460057147996731265961238093647404518129939145455047610366526386383666296609580512069779723957548471440551481896029736785815724302468594607504968921205980908854189442418968828822305745375616189566740409959656708534749589013658778081107171035657292168081567425632823581638691517326199425328713761998007251868692957849020592237175581978224261661202279126766240162690065118198877986846899836178941329379209405979310627299787780656506010684078595425140509247671830721668883218530724309335883917138980572161426072652379875513568444171234940431808404843613091600300921295201013279442526216070912335292289988499990380553064639614925002992007976110065335970083673167049476964501138784996671331916802856226826049407410906029783150832337744479853236997445933140663739411264629653300211434047165731115888718481390757975882904739386161388696356521552795318133776690271971076069333132022309368842354873683783645633225319491605051354687916543677325946013747179175957462030451142991609195561259843765143970807969304125380562837991441993319379498721603847276133199103593370507450866178321440677294184935591947432275763968730284025470368058580984449560059519715431504159737209276520779823745149826266877821561239098487711620259344060040931358016510830845261848525575469614720734609661251604216754826443647624065870959720125910584000355681742756899070720507047582333481186001618599545624037993774707636141386980936398590617974916421204676150859498086163059557831574950871960066971135206721901470800165666750331323996974119483841310885294906223005652782711325844030460140592840405255325495436910457951635527520637425234341808035410821282570858827378393377188693190679079155819351503286033577908943563589522161436879525342287247406428730624639717208261391925019777048889275760054995333906899483197218222193949614629646600632950286129864320034479763800781875236265100469607185223527625106630359879592159464932587773137712294781082253268341671752679352271771741926746390427478353636152300821555368143738938654627599921686473916189725734232986348358820911333233490293943105767335773171439605657127625293526457374109361462532883761482854933624827660847514585306274395225882987386217230183935329561934292538846056483479059739069204751746572099907731697351199943973144342906475545599278176826386239436237859865232073400675953792317194659592139942840792161972477916748928451942065096616441389926694320669264600731968859587293296000169120226464687465981660329104134550495993106192516110518434210105691595227996892195092271873604533278233696392048983019198400062918481943063502343575925654092664583839685402142579385787605931846334498799808728137914030531116404275640667080906118833456739680776525567279863702168228251370357129438495293616828891069674463529344647152876780405806354701173222435590352364453291079477653879809383490065423793018372638955625600514264957876234462388269943580779224470226204283674450321776595373323062397626940711766302938343710635276675200746086207500211969611479026335343932270495227268458119453318983466980919684985482696328237916432247642590314078000372835223585320681898079780325272148265018784496284638357270940696365374155830984076587698198156480436778143188561116201094829548977778040076461506555739583470270224949509425800063867632849689583482282424285116775394152761608973417342194893358750265633416940798529138583657961967159392957103889844209270643660176670177574617624261047047526826660095606631389250936589363649942893459878971897666432792027548489334920847770129426028903879834639384852022470519971537431644254281381788550899797451212736257632045584111651689732452612732049673088508266283353786719435454327819098332539694264190170938319236693944425550434388761763401108043882605401920924672319092740614026461116607486015522696726041325921490522361208424134476866287418944249716876858216566927911871736640587061187760275169716645050348686001407500976438034530837347422907409477672933578106747469079069082860055226554454770919172934202432699056850989661093314040961632897718502549546563790264626358049304889086338280607677724712723581064946087906017116803713223706803387896046211454631501858001964791922319295717378077641146849547650842547801322546887740064353381438417283093533658109787249073802832991355125395969558558798745749425136411302165564458233293975539304378763016112910722176351127475899919681272199259975451347852943037827276805706114408972312571413594876762849838365762161678878688176971328104114878822180078790870925003917727352523716744483335603762973666389238134127104455372302109464068400927433723103876941780167620391919225678437780179325471151534790435821260227851050730213376283471567441467707296260726627755624183463774356620772370942328019575475155422504719059672219455858370443373928529597344059880604383660008452256983819852473402541634089716767026519789081066914907760403092960310116780438472569143488792109484732625592828077481095662632268645229237053306949111996247393836928612732057594072406537595680062068075536762699584097286372820267925145520389593354086167669362105547567599873284039533116559070784556492014600280577247032710038413239118113900557240714180991951690613435514470510193942805232159914554163214173196304484396258960101855528225064060374560634953172699617632007144004413424412902421770513331398972271239363230202770474279751530087528502593512472343984400310525306193492576994422112847055145962966404719583065994837229902726880571689850498992894985042919869640402727320147061962621234491636623153226278527483110098697492537770789422069223617010290004569355550979282063881765062757302281403416971357591860486705526202208645224702393033641144014408121257331664333512220602288120214973847120115869141023821929100536883922158455102930480747598393595425106243588044988830425399029622849385576912343630598888472033761721337192256996569280496089951588942346986412269291232485663943686562070959163883012004717531287506874213442863732205159542681290640486001042418380895821145465928349217497798529457401710735377194642844622038320639977883856465127297645383345422759798082767129445309378613625070088739021156739578318782497123417507573351374339613733088428880094994461269758948477058149491849053152083386650784504744412283757417923980515441748136506045293090999747423670997558432335877998162609320006540770224652030598979197503574754157894871735944798415945067764013712573149538775208104394935445370263965570931490719395160942512132371774886260876767232056339206324051917457483431473318002652962932232782133020325305833055857701724624720821339981383885318817474011390111965225273442409178968662535562053795705452103627191056029466183009292292956527720009555737563332511506126825386286007472505977861620154499871452844989157641350324626306271065983000794277887428607583667821233258932863612137985883179528250800413822271208596739775700630147971481325052882208728071416746606955075387160856918945639655249359289622648701613865314592603834095619022799223762816241163792722362210150074766090539199231641287721579731639295730632160121682078417641842989347723965176534210700208751827944763527888878719864242030049912328668206108257110548741908308113361413870489027871436012438048364095537035941271157867912150897508610899369570015965739019476019712853123110795616975713685372380897574119764182467136939079632438017796634651385303255219137015509025247936069073356192502778804918342677489053157958100940574014249101970182039462999378023051592715634645612088354370326218481948879200787113029929087392960126399868626080806478812092735185663947021594850723157666274035423186900686991903482366141762428155175612691866963719660689415427782058931054311196523529754270848757876241328685907153343084822081836213293777043048639806382179909150900825758013111339413351249471787718836371631639880098502333027813775512453956568330828424885274311134415205577050592613947189961154727232598560569332783097419444258926056867543090480643267620898052729668022877116091542507308497828269461338569606252532744571034189042884477837371289200787879234749173154747999889306082494182217310065727916392508105577242708818766774419084135630527074696771957940345539339432564122619637260884908931996305742121844542165423352352002021359878111628082888536478640039301637594401934861786243862618508790695590359761935490859590238464258236369342095608722707123094146582708743630464072478756481047987673952843239227605589662930779843835434462060056267516246434467124930490846919972879887005147610038341747437947776420138351161333399943246304425325253696254519429633466781554163871763162837466495370221307163589023774231106455195568248722224784280145906323211221906004474127181821716007408894318923207723570760778273680225515111427767075836756356232431803955747049762749165779550965188512885789335090593027684480654375593850882103365428806022363085497788086339591667359924671175258320530198572637829061726609108623955082128313000478902991505354199744829146588568051649964038391574032369881710353472097955049467059346484115899090737851508037178504581988054474114783668416703889576630226506146757205726388097606717144823592481757203478439145756870231861072003878776308834510530680590473404241811350258570883662329500635716661666425125947219658031609231500837442126223293599397488658479942713257101012040657757414188173244203531731618369193887219409615795381720072879749920025007549466194065587695818312595532950165019093955130610939029903718624000000578166264598309497497794167966328824493236863088918246947927712933714473321055390202224217702416818972865877817694020810337436641580966927391383254373767261602799922496424249903446103167247316318720985762273053634882843023092245498708238183836392660650760442897304165239591307826819772269987454806303940924624332904005584396445477812935895037560601396327012078516382724233616311328549258141156283630100170742318950789336513963407388534005120718829194984650198237796655629961625066022629375533486441460374130801920677386729543432806332440735233503085905461154622085520798309536271242104676034576557868543152449594676148091672671826482307866043630661124372800096232639975112189155981347024979372212542797709619860811551199497955350604492806910632538454460978662932377074898006516924307186758636182206577336288473109954135907799641811270448163104744752455507304674749841400313226097242232001035754259729959324650730314323655059410014521183535926540321385623020933409944137231675940750636025152860689329215766244886273189816084113329151402059628983982830451516485796031567596516575244829029593591302885590909070191692555198280682255715848631357725847544353357924926786964288192448614296889174958249162294225584801864901275458612387594769207572803334834778737663714617919629030305420316823520304285061315587828116865858949233258858679547163773351645264560733607355353793922687504451958538881855154999586131009357621733702902533043084842954218278222410489516873154052334058327265418643115160797833311661274361947595202537233898540718186465774478108512349782083758303029363595776072360648827400762581228148901406363931005720620948914652054933272171503634709731362302239993367891615562520514278871649499111193525314709208991722031166826787585254346301962544295747671779479832944825203791030229649908655499824354217096083145706429860310662694379082632684107463503098145668831909253329811090884800835896314674435865866201079240482791753820309821321903676879887843299972657670318606421216460052945758709995220525983511321098926639315127822078487272491692299214563274198762244366246158114207234241771198617161612768709577067060530277750330960503408975995181504699457980626757143667114573781607153826435991700823250378344828241977564610970933922841105162603903565931508741194076099335154344068784378019362266283425581290890508758930276193448712569956313688097026570474518570562283702068323166850599157251979640918817473698042726996906382732865970898466023937312068072995588766777673536502156231327535280255731106271922790543600993074160571583593200083747131310082689702854342661636953190232669634382052182758326310851824698601615051566331449502320844542681777242065923792173932109633655874116363404505917937665234754008600878425975926610834725290986722054044804605659257567063513262655204994726275970779807459140311300606241305471691377998776236148524048841089214277900478829809108203303049355494089078003345802419426418399470459152362253164539947130785666379677210392563209734503701126041476248559655937665203990320895029083652017728401527186229200603289899510512141992246861409008902619732302779502366497056112644233336477359195877905385686403064725319869989912253432684727720409570411774941550566361205281313507571272636295814330483780470656858509356478899687074134397500860163328055080782365455872269504172277640775072028512406710287876094873911345475986886379397529534895791325980414225478989903983114071737059891891268078919603425028898556775277073709357986452194147871643237839679469203384728612681063836254142176247654798499641278506937707470535221798464908962878724741550063505128605474252349710259582123951883116834785437006708818306949882858022616822972389586402170545823076744862369125086238623510240006371763929747635943526390128592161615260478994041384291743397872785134451313005675310253575917588706143945799553062114521582597316038309815543058381858476455225522202517368302943682064715681643477501190118088926054562433534242705499617444108750373046653282302525863752293406089791334093987174608492496639955717574128344155015915987153814128506416304016495574215762688741906648656567184280298729340855813460755879290845612868555454434537315861718598316140512180782587824150604111396640897640201897296303957548654532751538532687441456226146569787385198470712196860859745144793029223910090678375150300285734449072098380728991854043930696715818064701206594187926990006290204429849691183863789732202777227923125159292095686309937644624599047970353702484830263901359537900629192052984215338877861068047819721895306317413905674581497794487528651936575366824778880615382034928131911782571626750392764249372097834800918592631270904202310875092285178491352635661238675589738149854054284494786023773551634311033192506634978239911260170670761279679995490715718107272355301589749999745337041592384731518181559817499780911182619480768421185505434930061349763020657697877302537926078955763929709417596522010543615617193214172200465601293810659432304182395663189533183364547440053577228915206108197024454015319913346653761831242691790431255426488480317539124023952832820350628123703029327925230039044500975067130250365045171102987482455358698200203806666320114628645005900484220004465980399753028821751962946407394236604044694403196368463477038113437895304001941228929812634012669269426940747559849559958840299995125530368834693884623476625336175925476317408249139305150766963255962761190078992358751809062351092349441815788295010981791993303858555848492514347438807098987673772575806458381031712490819760037670164272337036328987837631102145022870091025989142977502815626107396561852765036780163374613044874717529927230249808502694146731887247173437103753114904996545800285797357878743599561640594212930986609455879652128629509504765556017397733600090803711251266576968034985214702162984859003753044148989398784944223889410281711808847449974073489036995860176071009677458988285088136355611849818805091786415470013531658077104219155625255932855144731785194140600013067823378924293602548725412458974132478541140855489270488174543434012265753233334340955421104576149174809058218101165693146417790066228737680992900243230729951542311315909063526666614863333256895238344611824116920574513780027626249187872857721924292957829254347696507647879785357113936056297194345423456685364168370555371158587497129266706195042926342591135024338837383792061147472787826239217623563195639328334175167882061576877501052083260182611918913285645520660368473158160838705209412779500978601945195678601784347137186311933949778680870871751633814394371636613362930269019306827989937730170316313308905433222891105718199896862318225219320468960663231777210217845582521523314965954259815297496923851272332526825732557009049033651677735830905831719064699023964302702407821317771654207204099428455297624090897444200868272911259425253475843592950149342976146855347858012454676164569043802933909882984778081372365909930151842284069093183899631199958537718413534708305852442851935238953859413948079121152091624964232090445020909477883410399370590068380650855912914236589383102776322214969180786976912520661972806006487429568027655361147761568953378067676946834425270398628047812757212208060177478498083391123718714989526695435643830787514320287263343235061456847917818169993286254044280268893349302249148136579357038055445037161061692270544666352842808896674418372437851780020201496498752467762715934384600088417736988873135187854287337165513743675494150932039286056245167296648055531840087341074601686144778468246502355038808078732831779374949996134836665862949718303783466387702764204841711726396974276099863375564110909399323655725272919966019084726881064471143996922228800098621300835101824721847562714565605040189954938828535818738302900580771066923729588753076737398351823515652118271728383303364136303695396589221255703604375275332042860842260064102207303638472855038972863796074530542584827405491396378548199652767679761282830707407455909770154340201303154001627080313457521641181247833097945030765312289761451247932295449943715126036921148691118815026928018677607238476955365539401277539092102226974522776984345176165013871115969772338162831444942126975808702832392394829374776854932077559136436174354398647763581781605903963872895478120730468286417305712316026543261600154478206262928213736835802332099855674666764651774854336265737112558872580201079932539488163938338055457755744528693322120041435175622978375646798388782229836512489383878516780533433812913246635238819290295430781212193966088590906361187466445848387323272085709346430788069292090049201828875478751187257118226266952444703247148897128014999987814073859459021707860808563033438339614062803833157767470463208135015028440689772837153074972777491311419773748230178768456136631433400303722213913359214616441457062335766394262807623370718412428454168530683605098712515764843713557994547516365007415743784682856764909918028926519400287953142603351205172848209811523574640210383633460915177723495315513656640629583636201756020464665463031283559991769880641892788095104772852673320986514222624668808729377243108542462921102357852889041316542097470605148582853318591476968782890663173137139250292860150728415194393225510469141581130842637365504571833163851065118400783063386605253668143735361509432639646831908477220892789136239942816154322671067100350451445353298137635449208231405109670453247256127881472107966377280856713914115416420106657594212524921572116583394226017492589550460346575155014209572864632693130736793625257717120836498741055532438844762307349685069540799057052277244994401037209221462754967377102255991880474590030154091121469475104220526573573843140098788433849828241881535345484328505867575684191903881622474142617902077287751981366453371522563679247063414422865683841063815921738140603329565598541665963769516386892218008472057922562610058484856283921248111126832977327097988762333531586792054051048217102268218849590869631447027367122980586240609556698337574643361723525172629548821066261971621453533782537444049264067654212920094315985423775875275265972603648253426746265604114608516138684933116733869351144855514147432237058520903836969332158849685793807002635975053525785884872049836475743639684237138351669987923625395867699517326352441258681283767349987882084995198355084504718664331504247433334076289831831356220363755720018510554490150522940944583082375765063848959914024342955379197980568654582090751281208315959752138909014992276750544104342672060299334652818316828248843355809102585173408903293390281130433197304804231246954236585457507131191364891348677976788784612249617292295619011596803629383562075150192481168060368307751111680645583746226088759515263370141652189333568995522403294092129705293896252782723423599432785531199766404906385583517326287711918922584772363473590992707799291606051238837318997419574172462464733773956231060347084700864561306359280237972771063869933074154246088889568350942995635248907855465573177532525095800723565139856632319169293328052222272071698319644843744129473591790481311056012385204816295555538470889110184422329674958198868551958442084097827288578671241940718981990456811613994115912427186189350593576155825522535821735448983763479909627047908728574557173005613446613401790103761792553871820778143816892308150055360352807773132696097847401777302826858540437609228236629307812764482710844906987688533924181212293038800593529698161893489116403626990834936623681263713653338098260932758741794740896568698973137242663083560742805886697766200387500615013624552747928168891237378890683212735301875666494759557116301865878361890473882305241155362473746484929774642588012083615666081276558438665904632151273192235219747637502407922658688810256412979561771034511729247729769372142993881038621500145330164451370506535435422009515218127592986907378275502014908567037863031499882004670698796355901329006870044101790964156399447048298719884174098241312827654338662862819812662921778618623053569307085796622956481996353446991771078688138973734246701409238015351414810328808675146519697975102823245821637499381813551730456976044724087252057473693724426840159116298520096434966816905914422727146770576954342148723169474748961287435393218824872452562348365349918873963565798426766610887212959234775669449236872433788573301455424485232428903422245418613818174145573247840935574234203357519661886201703955198204036973916514055051681003614955641604563476019616980661646979296478035159597896937729476951810959170442161707679261900724502135141623985862476014531167457154920500273060061886109894563991715592585256093532607674515685412400674512889350083134101773967181800758241996815019507636197873422559842389362318051552020436652287940071879760904344349171277596194810324289979552786338238753180622138095291850501752681686558202649256767349307546110557959374956916829320324559099351642088833429006764696133774388842144502982686228195581948126170355007249493437908477696890029232737440504278251425635963643145167052077531166378099555227796923206958073814730344636673463724747070696682971308770644192425031468816417049339773577446241790216126800570248713604055188682222292108396936204404416512805110494239207056107869521238798391098486281033469745496996065386641405924251607674944889997180626613331725604433938996320524020906414422231156693688905975689265375593183232479915910981357878787673120078645675067937021680381266616331670198370713060680816094061941000242162363900081310091555168338050290486083876980345694577861892984761416462156441436155273524703834101300055840035094386269397208414339366214917285757617527483633822745759836178057011310899573911366352352678189752234539156469643309488155798249083637346380342418446567205124933399968265185722850591668606758499073780025275403563179249671386256366029913471417443520861704498038615422040041412523940068210979547649743604049031905217483590547300692385718766407902931210496064112417974825678749581553832315142962826208252108216205731265751937961167629713688483296463414527202920532887643881324693845070988234183208073836317292082737699142739823732097640822260454739093106430444438460750594197456930701414882438533722975078862801497295163427510490532946165506408695589132710573945441001559339611398440554526652222956729253048619795152048919899858011698924891284514115901180888665188728764317313792420560557342805143798729073919884478390148665046101132331375710780487019027920964101135457007393386855422960630892330489636260820084395892387710300795415178020050721531339235794530000011663129189481004773847000644356830474073673661625934173966600288540458431930874252514641967743242552605307997564480291610570528694088087216026958063228665797785779183047082460311513402130860667465687099870457714507197121877270629554592297386215633819991580600846985021086807183866319542655330788365170980088580282648978885085546241256672006819469773059677802247403262806344792852625167467359144803821851446023884852194850770369360914239380196544999359119714820490439093774641575298846920680104858981157994390556317144151597862950993558978300248304603169419700734213176846356218344753887940820903123354613008837503686952672686031803680630090690942981513680438404493563863213346705191295182249642892963287015095687640750730739674132628968394089739017805198372478415335189281950072461591654863352796652803731653335507756394925439716099672576653242753514868630124360636226709150722615680396985978453846809570087391786220524108374590402186217083940560673754283473838034440872051050350507732740152865617420200079593063659196675688389448235883508661625796087575373652875526169006732366186070082398890396313904056734174775544347618988335033066139207362198059915711466065696942077960204150433464555138090152723940491629544192875276159275172560070511874536293681313227069923795663084835306094984791088964884865794804092636425479814549604238716043968716267311432907541331047317655426100965809755734224862243468423113976499302297705154771712735491100917075624544922515852327048708484141070029252305077479976478801328420686895451531595990115157771199930032622682757327655147759703462514632757442523658307139550230022434830199319039476978539118939499272337782617101652590051043911676562947095312189135961720555756757870832689465286106013011636305861473855444407387754281319744429140300633119423030341163110948835659008686126317663299978295725882157962843219327906731372452023355687915028811839028325418687142729705233199319947197931944824283118126580726347138672698060563479505965008446609662452577446459043066798619187419730700695097215074878756295014235320231227890574137636868536602080862409825649919148388310886719180489005920148738952717415428476938513786447105141067205075391017666707384984628066376445518431251428276675550085269812192457629645692235083823671682007369293591530465416581148659752105182804011910225154451364334955826603175409565689170582157975613569487640846826413558856548128115057074740977309955291388749045566584085657486264173723851098421350813398128807740328955962592217824979667256470695254442998526842954380772530379846296617129338552600111892632044062408036362325993592969542184051696695452344529209650998014948332954647322622749721043130671097710090990830432045036889207519476603684002645412997376517376430389585869125995815516759338404217443594374187433917188963970925545394808192010808863856008526095333057101977512902208525839518074198725681695994223518380688536819574431051836844291345174133885804391965006055367837437602604095564230624903197067045745454914747082647232570669205255401058704158709326009012489076421444661741258888937813479295533967494989945777656142804618686650478119215768949101794991174722532367992401838120954937400954681863745118494264050848792699961445676429553596658992657342225493730955121571383200468825762924452961445633023631501928258237866442396102708734066497518916771535340256578121770858209831973144798224129355339385984114985065566559919217235063573887540361411401920701348046515185173792258947500859621665305061681166069311898366427286200377625655772702376647426106375639450734381931272923467113638735088618782298328672895840236296908956113732708467920597612625590728344927730374656271449142534181763644686787767404846270638245132875679327369805740023637947666572759093163789550245766228903967283428980758244151324120635990765106447736009518431178896714612224641596268690693797934266867705378945377332634061713785968375793415318707195982329012750028021477212419162954300945222874501717603359502638323453234161846193803727243128674910769279001034280561910143105051930428952332694421244595750245617884962042838382615405612536350416477183728118355380454751217653070018997931149545192548031484580803706492872491542431883102798054679156214599963313597373472014509156437118276559448562171403030789950699441436798629943649588197833943712883647434851495087226672955490135481650561954149174209605215129653513329530822480357814682570973261426759370074811591003381689217273424406568327069398146405017320487123193741848509646511240078594057772972568262123216286800195187378546221660166270230874254899393849898679891416059486833488527264442658458220181528325277037355569706102380224534898191103723476881836085132972154986131095789280945058043490792052323377141924400900277230474846598342512873084273759558666083105172510785913078858109958680492170994496412560120264465844951178072484030920221076091855378467786649812931707056180344658106053678780804950630678830004460855096329866734216222185113977754188075156106910812603859916103835320783599599658760680656379351581532775418995079940112395175770973746506489206320728086762008306604145727774041740165085589170571940340967906865777637206930940787633880472206696074135509191469071033327810409525210740290473040552243733415145856932885233080935328276091930860590085599826471258759423173963778684151126700786429359034443583925063106923137765229950817828002234678845890510974849816271184498581406435844978514279576605631488227393283017420437262299552719824273800638745007881389886019614963703327122586265990332221224598148344655295485107716345627913351808540272365856666732233064497383716365356150559216275071346854570874470235440540885233959996235677916362301587064599157028434523476154402681532406852008505522598680318106615834516938921473711623167241430849996361034368246657022281100344365322939305297780728861007590563238056537796276091083247440539450705026045620984828717013561292610646051136600723378322043993723146160240626244168412728519265261868688601612177657944041898693165967536384592349511694962325988176217829015755608540023916032370613152294652471693853298748533607911980067360311526343570057780164749916671725873291140397479019298637469612607528648987477684054337032597494297630251134273676398044285042794530750026032543734161284977189373717287506651348097583301255619827749723100016357944282678195402432969691125003739158828791821023351864781528859438967712513085328959677421323886978666140173638870351650098560208788215761228080880038998882008585732683352261350829711632442316312188715967236690112240177145141808619364547449730451711424346949548983885920665773272318605426808038125893166354667876024847429979650412258545076734845352208229735295787303586727644076298574811464611405705283947762286934685985239100419395276619995263573311568736545499128746982200339086920482394384218886326706805838462636028430735995286701129194803256663215914537192173829363631194060698562897088275463447817011195852483821339937841264248004996155655561483822043346746316554112264086613044522973422863807429057438472820939432780066311427451159851671916072721646287402953361241318318790492818409920479253431833906297550452798711661964013951575322400172813229256172662971892728504806747129952675947176460261197308274282173959360310595624364245728882091254610065556535719575662105856007914727657296941997637487020186237285305499351341563890967834930318399626676321266234242908429355360771453541399937715092341188009650875430566838625323655573097173483867360184575128429330875051891690624100643302922914938674883952508600908993454003575400306991583845073718921670697019266410767047111950933374775755389999205144362063453465335612862278393661773226458399627729432025100551989128265395220688197588885308389306661934537514098606354848604604029835593981076730459149962934182227525053956982412428676826706579279807062116742121096222837743012370905928699182326369852258014997964488540021058850408816284675156365929209334043785383011052171882225320808122831253154562347384100646215833221658245482479253417107164898799452289551429684781478509730751901791552483420025276399818396928894615573407483085949668241348897204867509423217618901217598474768450145998991374355621874908539722654120116487300451911826370523522003198137178879582681663372098134990201307209051730268015598855853241529333148568295588308833216154764875741697801363169928298064480028117924008608954203511521743349527657261237479486723384092135186431720824139404488681717975275417269739473504001839980108644267766834515110638391800299628683513929133857624296179692880526178719656866944238971514659173357999562585739283586943947166371015051762395033734721461071283295887642908696932172402779883519403658348633097766857737579093435750497311821267303749366522334946655655397033960506310102902922569162072725140844892083143586557053538493047486870710282349302035810108934339343228689428133814048735180073377365320217374164116160661986592819732356249904471196160093943069798710470386914129063388367447514478866353460319394679122040945586695172392424711520479804273353173792681359092911232422227007575086079009807231355843224369427979405596684809626961604290840257640635026563859976896391904452638444570836870261586062884391019240976150459876908435439217786421805464020984282840070021293763303114141483167084179831740047150495670121683763363429862593361111725944887719923873613672265701047615375003064784922168772268390964770448529116356144607125467669878764538626058136651400199789605206417144991655635928370180383526560884157081011106543380957538226992572928389735336565125670622882830646339709488250664273719627240224907223024857320317661728169235586835684030288935707507980287238599363391208043864779100962959580066325230671847807941709727284506745791247834210056007412571994970125817322550081361173812044264845699974514923809679903929440493467451385017048358371378577139941278565645986829633069386617101904982136199939562781544205759953050378719216494246644254793498039599605184897097977525790733510367471135586219803419262175187718636551819326513559885716159510103365684193649132741793708972518520883557636224548917834192414448948387089042167568940510459486643514056378038514474381229457563351878559453714064251805492152007118331685305813137890720828898135021032452324964740042407537406401875060925081232817340741399051319064123094498568218113569379016404276049479646128684050764479388077081506755021525162251188731512107104790338392260488478103168181287303228955358674959051081960261778522814475482119626314031044206127329892392137045470158028361354429241993024049620494396893605201623530670093591189345213945798170445648185111502536487366238834778890481570949505656102706537505537098072740461240384955039631404888878849091187438299796882791939042238982661496966320012113569660289389688255050702822483766534294989240589760788867888514814579752475712853457337690762646485303605913182499682271620958482479613063011565086649184627703555867696869065235356512984928537451261108679749423351767084812552974216674403465832252870121157313555974933732795536730572942734100807275693816368282416770479250816775659674935333815807122697661433583164263692220888484125667716226743651950323571147332134491866025551447225793644647881788435838174032174265867304707238741429136076581210751636271083416309502502264519254941689106343306674492437644474098794471920942560808572156290375870063437708910504512747148693565232023898078616099360495010595757325818381246720475544135850381954168106856121536306177706096390947349632741327229733972518558824625413550459007769827807272066860946239010747569060779619217174556804774584929784560872756666347167620505998355190640741193630215152872775502140316419380333334537531557336046727694689568755680170318709298621950044094875113633463765002933972015361724283254391945220808130822574798811832855097353482164579066879300109444787554555025125284489957557223054077375173445375819086586735003807292658266288184422723559333897785685579864122849300479553805168949492194723839333301861527981155246535482779519725677350140384572795915964465022792591844067224788366708079997213218241888846213659741673052212233379287071632898614731720631303385224618004131597626596370828164646869781705737618829143094548227580484146055620132395560054186479721712473555562711397958937574144216029175684283288886705808677554070020068053962455333709463474339482528844462064322224386439246336372460139267075635951285531823277519728881952168167730696779705904528697453264406508569211731997809860583452739899595214151688261063624304592337060102492637195773141805503955137172135139616127381593087313255350027282544593125409116116881980590629978409867020257298892457534190099916829389506746636516826290869407302536421148153876817702916104409886769859071966605260029271454520607150383021481772064330521655959662543575465934133183042549938210288813669297394134216045412412759437328646373034146346640795514115036053380757620036927661862298151743460153196081288237762156166556513679453131652497750079273514374659438694155695905733882035893292485660323465125670455959791885620295917023165232116968447575190724013044189293981331961128680061549069561246654559411648702528927079091933827319664433495728401820026125061390769088666653521911378476457479806797207768793638326499544377724484854184145753527875705803026827880040116433605433506599492232545803107456524542494378029739206891894444303955129223230156971078327425747504653470180178695520500878412770842153307604962643634193802122367448183124892885160878256220185545408504732303464416905713186115655513126185128679419108193633184322115488740540527352652585952543101957803881518750599864379573674634425699867006415726626912553467411597985592732172725294276434638614420069240364708158059172709668581875225545306829106197503794684407426296606919646628745022289349726036853564309648369517156263569155488412080699326641773460096705303656616362145327245666098464669463212727705008768433833341846167698204728006594809633132871761331647756547246739797540155864846498001612396794166610952116303536513188533886631671390384040736324851678838338360605432481249341988082967959364363666520179079970294011597411191955650303430824552321616635650343498360604977333839103302221369509173811651445316946386654814245487628271200547150561228862459639055660393410826159087988276204258827435757702105089094524657214936446130493757735181461403119913770599853371097109349863172265857911887943977209309976322734916766001404629307715164496621069728521932207192085545952197774964012170610606021108601810084208495444257699265961412235926162072091761204766267235293087029528173571954302587938182583999736431910342127889971126771232189835752399678711298591462977927049280981110384717182853799438758335594240624842083906063792857494497692566906476772767634826023121042776215308755790501615322823124803260522005110544087799630532327404734973033494608047400598495953209593127689760460026277710824936445738045241298627218052577706815756677603892342712528783670789763972150623295845213780887223076378991142671928934672130949427956048922409833716750899666228616316461536362095359657048823261033555251876876690789136037731428309628218359165035444226324483788756004566456767516543563095273287019537267001625620621547868199094286538231331002923511186255069194767067167150298445430921736073102171069574071551630280991719341919931775675064342277846720284909154789173254760304861059358121459569031997746887069429868093565864299784130527146478581872041403227439400178076872610127358669349261563580068559653417588806193345649108965382674136580429218714056462873438732170275572232538533086940763106839461429226495771065795005560490943797047098159727714944309948828163626781890232151124930040745892499007850043785098419472635813314818313269270857174645945326122522299646673393699747827547629616622341401054271472685949567941239294280095585101205600748977348416469560674241547000405172116550461671468120505051837705713248437827452410003865809599073518398516292579214596228986077345159181139559106535818540534122188627207633253628940509657252047125774524942751880074236119731857257015800641831020341492547715191673463522443263118035170853803489518907511381529358129421379672587711265271490604047339907786171276152835484812760004294382986148581613122883905265866741885747810709845446000486448157537871016218373685332434640744692382332194296476513594919188717145290267988563031395310410825777851615580487472200810283491666994865488391300100717446442941384370607132542199171083202832967872199048982512262294955897752236119423683246618599355396297434258169475306942462809526877524146521318442102993561929666519552674439684971813452868767868458270608326090408594524290546578934448255852879952201843980116316204379984075542426963732795057133809694754347979330338728642084085075156660356661776222247775768259404079806146017081998106494429890396620141270590061543629397294286544788457609615763645707795547991360378781681057694118822593008222132437339710185394426733413176954388846613251605441992211696013167068877015006246783052974816042175345759012439756316223624109431488696960055868490652414810608385999903894446954702359501606365045212507310310800169950945968224164438149973276969338122163441553020399166795028517687807675548029164850425448366234048822735358116332223712666610925066609319528203636615396563896262270832819223178000108283203893241286736550432211010284760221746330630716187154745117050869317675092672313031343442742504990559785616359233164037019969788703005926266417167703422231760478118889488889994934345007076447979290067546609698543775859199654859030381797165501211664060479186601418364387712168691690519760651713746823524893097942242669501469466205549768797139922752049375891857430481007994624487431603167085587321800672528510600285259179447073117844015796436787632267623908639609807441814293798010342433440090357420289188028969940045088539575084452301842756166218029715489077165014671208560641816218531848115639647130361680669938471008712734823236270244701347986188676660286512508610956322055409411546739447195704624715904655988003394391561589729793273760262065447902720826660039902659641001888273617476555660155556028683412778032103257025405476614517991444856250410985234023063230522963855015271026027482679473142240398704826101393111197562429856653689957039006035757122804997127918808564191894107776569113133214205388745786045164520932257191653932222785295802664831346562155235014697681975693917825510877344572762843275108713485294569619625362193965801963393299331187390490856069933733650878487909700634895068958675456187834238284953342624181947019190651075776438124314418049492877731130075353375476390774419886537347914043521972264086820225492495198902811296305305376407942186949226574880025836772212519570551068778078370251467723951639951695489686421843154062168865095836715398662245296075661934142987301495448899016299089465827907336731234301135090764947441900424667942153157282167673119703604073519115353885715738590851729076353068686410685577054028408869466284155520115224213306759778304337544344332644704857772444284569185568352313151933366645142977927751461374912854322518864114116241582247319170059092934443185402952305528536133935737359905247145211449033087768536174470157912830000342224712349113798793793927744350855194118983275941685184127477927252126506779060716475873257240629849329264714588200657141653710857170829051946687252314468433498820971011185526597648440493060042977247935599369785128244572613541295056151760947348954178908510817057405650124523561087793128976822575957322058270358158254314451640659090877699919500011780883039280779964599684863776175815714439408087646419564967597034041676085992866821569913242634033233110111406189787956414724197006931686009657933623635971967239044472204351748699572698062254915741761705895856946726739272564681525134776744048535949801115148694594606910219776477678836728078176091423452529475544718679417929027841621064728599184466238038957650978135566730453991194202009600215505785534535818230271833308878673844755711739585419329126316221350090170157465143915903378298371867458693412561805262013875139129526377388950521826455292730876027473570297577340536534869876444234908939902728431058589355097424938170657793154019083041720744087212002864281327643135694233217955981127795647888158205630358355218835572789383231702325916582398889621608207186253257944971719160521924706302600808900461883036263209499687480208188118275949917436406801353662607360110528558535691189568877206738848909160568771103437840881631193187416519316694264947963337959444728310404542711273595154569886485058250004661448148960901899465320070695428358956056918639365324323372950468104844586231829925589350129539161391426628885103436388583683683197640325744277580165867729601337948821429880765562318948022159614536096551557080725852379566123446279090665005509685471802712486418546800743907828610216954834439652812579238843041022472798293291129437501372881078259208536003580685281902294791768415131056436139817065594204845141614660350911464265007324020386149606444688771176522270930233251665018253722292086126080297907290529634944287712870533674619196333674520046734002804940054928900852617302110853632670129159331145141136986249822144712417791622798375482766371517996040109424515020409143095244351238739856236728699964739859292330858445408253923324608925330357624645911054881067495259261987712807079790399288566508519912871810105165474966046155298298995798661513479670882051634498674267990268620367663011829329492339371478340776433720747059419198603731945412620178640697610502344774902849245980860991413064943537425213365914920088573427903936371515391635045854761851970378689221168348965819593185720998858312145602767792751872943148625352076315913944872218457075842835075399141747090018348871656218684086698201008920095544739769205117603558424477306536609898123570710620241412530682165011101612891623561127082655889342762713841747002842454325934522504751033244243565323862429476152587774078665669863524631979147652396836997873213646374813261661996799865424049062878705082793364720989063055113038095435406450240828803322996581933794813401997800935496291650486138712462167366367499911536172455329731936223119813001787661945257939575443144972584160143180244608980931314683476159716048470525706772074010312635669812229200792714798360920591895716016474335601104537435515824559696539129206841929073205393980873436450952481614129720894535504776409797567118726638018457741655881782294217707709854626509101860418068232624936020441212869163420273271201601776080827851730697789994905690906261707532560714237996820252852551801354930675308401709339619931295368829882456705205956541427447292293856570743655834938350946309603861986398192475544084387022810820814932195502500308695797645567060128999397475372337568969685533192667002006728376735476389954250906151552893018169977352759051483222438615136233549322989583810697110791581454663572037932122831881397604651395316457906230194492138409951068769291807774329467869275287968186924550252485372324109607157629030682978802606556302562266128957101459065175751708527058085133162855002268801350296688873882770928429666096165654537892973395667101070206906090157959885131190092101764155051080157429756139903857334081088341505661142534139354632096837598108813164764169095076701290009729502238810638170036533349754521854257504112219565727505781097293408544039368376310326619363993853339126810885851309152075578024767894300337557505073870008374401553327663505458695900962783800148211624539331976108225419648544524738171586528494285540158409564366600005229158767347689688770561540585243827146106775839126795849666799460877451882168812327730037136778062538886659442401642636043670336507016375174778629851949147583356161712354568418418423704808239561635272282169707362893662609669877832945409143482510977652665587681685277620733219136092353431530266134431984247068488432106817764755148033685347854584232264255222290416616523665340887586645214294483798685580935936389310737556212136915538945836747407595634144955066675873425211845782821387256369680270836136180253418408374560355365312409157223357930667497790031443177597037808589838365948085110947466658258868902067964257013754783166036275248591948681765797358106633479319640844100313477572445076804596611222395321305788810670047906638413914763849287485282207935077672700152029093807336091381506979147141170049916355913683319667633574891213546954278982686490187153288866573176173269591838674277382779604133237839967365799075226900512899474942025612767496807609605096011055161492115855525642841294202989653306640183447160121254701682778882457455080522413322028912978112191676355850656391584579133459026991632379023741712209067787687563595091509328830105352728468454941070252936765769451474516098516147278604004686360619467005241184496347252079592105325147550003145400696899014158173983725986742442708581070233940880835713259840907359749193895679422378452816074369584681817292815022533547735669731787894617204095331339696069776993350461189495781425663140955242287942531949655008442445843581673476530631742297953250993788220779063080986989027696498792025251038164644285242978764126458393548007683549639158753737034699016274003719261107902411877220432958092458629736940150233577305770311851176093968968455896422245152665572371471494702875948893210782752276088236061671064800203178228293717070485334615438569699374911609933883601879368178374212999749509297418346661877316928923047724389115349081843062287873840370840011784754551390796668575564253397293878819287636260921959257226054341320877285434893428712177197813758525445994516178207344651797866934439514148174667598652947565862735669721641535797602829971348848103519148509749770063535533869248312802976956047988232177714031854974407123883821504420618468203890584053451489969953952241058516152580977705906416222711204843644568034665704610178042395893979440519332589969497146990898905452609277906375325639055613454703969490763563244479636382492174545055786508637130561246989953680402047085117078219304031077174253578618163260729788801690751623639217514311553684313018866170703997590370761895231574586083618756876405501532033291930839809902179111666841292343942562524832748650630186794114925162639292702321966366728191021126166834427206589202086478243237463276960652931692698081672478575539230433249492875611794356402588814689938254520277317258127477275431907153831875321794849570435698378914536276324934868607155308568294396007362674011264935518517453684377305154014094891477128681147252676793193649089775853438208493289435834201038863886322764484600017809915140591377747056263760175921292833289103944666368983394775769635453515197919063949705922090167872006119093561107604876846765928464889065080518785223395557245396953407901953376356401257714144248563983182392678239940174616359609720252249098286631843915931762542032633442024157013547387429216019628514148797082315411578404936180712315901945800823258499903898889986423117855479282208395599313127426514840432233179863837202533480757059436359698313720013051248541089047687116759870110187042412500054094278865650466662201480270356420739461105768260333467105400748420803433215882474884083684812476888989808969638803614751768878889088117524633441455879122772218928207713609303616085416268679129675246643578056125941165461431355420049029685272676844377246705357311129599266146224921100326467817759624889449349740385502012500377940200426529170212655537500293584976774105883542401859617846403196160960318707400941048307588713330043034298936254307381087599619657045466637390285727080804688328386238510092577973695567255769861637722859535280104333175343020432598439904459336686756594447572955503660389884489169027917984048951074766169487180087618971208657787983365181050582365351013889698660088535413714368780435816551814724553838211831356028380907182689882587978540966501568191974031450792269160776059858107689339498297067193709179510637133253972352405871539075143974116608587988770238802962059735152589209534903321643835970675415054962705242093978789311254649670188740184039251697725375986863208904202072865028212400247002880749400249980312456104233032952531145955074031187832189667389508923469617477580796559951170424902171329418423318281258655031520112447759103177539121166290066926621827643288092124649207441381716530093723500371087138496663460662804937731693214754797393679797857693236847624635395867372397496333122617244560700162547209651665151754108786549099824095640444548505758216626509343346042459089642365469468935062102581355569264433985407368397958178385295949626289695899506961116558773675090123825621333551162788814563701365663998023969598312336854900049993118774379600006443828998869492057203745323775237268245378403383438913994944993095789415715981151890194491649746864427768799502667284478682553581536782763808887073431893046468571551335666549617996865614816329798973334404092111802610982761825554464860163114848575566937920378939896893218356008322957000630589797603541534294092108060539988255978896946170948679520706044504623394760547232885168070711633596682316435012507629215496055192176822014405505222501642296538739990675883624350884760433108088466927221232103683192947347182538388760388022419819263709593144097340783249189463988115691179370013833865034361703618210775788125821380102504962759841679708040144025134876872353095207322096383592395146110428139502376751296650943898322593490746581839972624942448447548301725288949116827290823449229332762036162881796706784834826296162329583316961272047784771202826777684674954949389181592432701434494948776833796641260580522515724819949111870116579978222797292693031652542773125387082229858782112352657490633514487255936354148134468041460397418251241003731098033112374716758097941558417219232114078227531986812722961743117661301034142414141194251600776093393900334219815092484321885298534724776307736437780365209607313620126183522648445034412246958080432134933790654525762916702472968807304491604697232377458048653787790561304186670286032747808122269711641812721557222056857988826469352619868963288934463081280313930032679337068667705771639020551584378630071060065003554505663580954322936200793360354020983486187573361836918068156340739097031881797812253258950228732595190417229923628583529873959093419358855936606435542565973978244164317222055506979299681951632306664219045410822189561568283048814207173108867483541708123315721332253384706694122905221427800607296794031915558031748874335285219840944687090393626980353590673681860817650275675382006584151023675118878789752203898093802853078823643085535332904417010654339890925364634885233049379855269811659429111331444544428207410723127412680220765276574577630519989495568393795528288797760763809843543664578558514791588261944345369253671674333088149340315059868428528882464638965016992405380316299547773508847165318785304942980823181334478298022996889078827755379127650984044664120901095213052009444600069992191079361955682466435038342881959352958692180548347917834708380765699831927729630746370343546943984278509598485515708242093316081388865323517677592912395035980270644227339578641647673014130860318068314671485048479542427142417571368452598835751922825902974551813203079429729901356078344747223104509479002772320116212418884047451101213541513648701679678972362405500651507989597652428988212939280493682224183495294482169693921068202650895841577495153950380625494339628126177197624048998959535751255972520277564236309165161258488475913391920401072673789661283701476904273570482270258318052939163626653836799452422213763076156865814027012943512100519734584711850373996225965591383410705035125509607112009377574043859927718981523577007780923852261476907768761002259789615258537055933907588781191385340612197048187103016782192057792537023169868825528900077545290874988343505338115754066584545266619737946380919450983240087742269518748217048399869356304901554380661645661768244489950057236403073230375059202096741531183270660635434252084846827914692596468070085731950047060420739582640362567669282788559742556863053497563667381290598341061562930189398933164875554578968469797163174667048572997048692410310027737499550762099560102769530138140152225162264587493234153262681342898340350463430981317204550246325259251632096060869650635387817414382148313950614860380130054267949528789528278480852978583881641830417493384116746655909167830733506307919718910964037740459146536461955503533497456507267092410845739808117746112981630964423452892716101253721763956904078907227253193067254690334650501209549199904791489112767621111586308062191129556172550051877655130358537974460623679745984619731726952261912017034719473007353209055468095451341379287653243592997431299696825911056560602655456519452875402440296319148135123871522612566864460221002026799752019698017630815014834520913365455397469298563699032907130970224902451197776996292662302933531000690361674148500690893721979051484143103803464070710253483438510599646074404945799586746254032127531963154803562208001840360704008918931725628389840413560461345826377986906352856114938341748639843108581135825906742867332154086587865117275501575424098878195786991862600946723917172236910942375925620295924241709824465004726032004396649229493057043558897384368776537395065984881141786742736870055827736089745080125588987132982918616902854617344147543252452382226011140799243811328753427787500821810001491708182630827838362686121743042081486147968290750303955618850322513363121866731338507660273901867253667154329934090694694190015389501891123679798517547083734444581939308120917243757721679238453382841895233301625796328350981939924412599632547018650609996769003260479978732571135564894419440131210883262531936035310604324241538392709252335911572629407721035242912015609211244589225272772655015299147849907458121431093002733764484266315088713050882460693019141058980804610876735306980697904497718697804889978338438540879504243121844384913852645824700531224073251675095718682588749886578621723042220268980672866923623520804189654011739175781170851015358502754631760853243975395170198437174590010229233534361762016896617055959154598880608205105353133950853348611560666414147209535126894217719413865662111095913354279074536198475845952637133342425396257172400956989544104333246701695643549622728012055823771571670943668171294510087210247015345291626851396715019432978805886902190515016390130279824819591928685834699397211358159923845961300676974477451256124773650119973337131938956662948597264835250271169690886632868579973612149682295146849363286672849182604765369325391493366251891339348064477180730397043354807633188675893843229146653986698086030344103904862914614295415889013008857610160867564356542519200077862777903495281756331097603183375111324670361906813921670616128762737109346157311130015625646574001562267195582694590006151413783943868925777551222060774534433415546805387395729493965071955752371766610021780099347432420871720387532291908633493209498059264538859083227404944773463599492979762003809420437057792914132367421216553945076520587407641406246972730220874989195210069030337740035321225542631239261362714504017031342510319447345508333163598403944782472135677842010314065825969121810059647258932846932819170750921418635055309628562168992215176755739408591147192043645226814752977502875677343384521981539941726828705029554481267240224460270909159175184244503624710269766670399840462451886098949700976860642434073697581237639695359836695907959936086157609908704250744271546954547647440517463257749529614888180094443350707897998677378695418753672084915276285021953428106354330879084131775240591283410442426973079783985781690018802238892409509072412163900549640629555501180162304427079255437054018602459303384799275495779176886347230447847318082763814883509442889978869048234982656347985845323150114055195773404373196556418194244472889560139623274142896455648352775320325948723503686196971063248886744260320253332158252253011711771350841556144174209279598352487461007464938947597582963936151169651486590384629510649594720534164994098945979801193787530185311451793893767626897157622713154587178348518706779905214509201950132441689863676299862148308699471858466793174017387562738057095351971515200862918106494455773346650927383172271499389112737316281979298053792331753806760290144743960576400468904537129068758535314503442746657075198678689634162464675761696407885237196779064310540428314186510845241473636489523474027526196699660249934834415421827417917110895645736480800682354897550881265978340883321414997905311614862266249465613582838095057253028503182690857881723128151810096671175783587284655273988587747658942201369811981135400736420179182933562239862409989681911369672766224940639907056800939378774627202346631206029857328132702915762475784273597608141801432317494689370696642821406855791611442385409947535559743625366913155337779284220778450182853423977245024209473267451816552925781310341539787153673042469187671423371790469474200937139592213280551891325198682914274012520719908696406260773484818662738419026710717208653808994149812523218213565910392657116025322819604129338644103334617548110103533222946538517913743187214640087811733377955067610068669193453081433125687696696702723447656782672206661468715563411253801418262441599785622854461665559742048110580889307175799523297648357279443721898061887041759153330015598869236633287440277753046009070697158462669466813531696628237246725886822946840860733499360236656313772761452570231037129549346655236016914224635181261631496370737504370322113688536734029318397346624203824536756811288959221684329949008650154669372730705006807536651331364898318361500110467073015258517618936543720546185931812450456166850779886350381581383454056327020958396075412723224990973368037915024133865792311620097036134780900979903790419491534745070536938491344860124895387634375250017891640193623882347481521601783237777113968638802768640672237104224457800821057779281896479487435623803522429043121055968834204736249674202174244516937549373689741042385845692257204760140487173890569701177442344705125992450881744640899138923487598174997874585475165474022307946251412809357998951385512461509729677356644214364333161892430310377914208352937310740169559507423100083107115318749498201304292530023638655814416699920271421709279806722035990173728127302743793305702966971228481824035454205617828915575004161595095369503814283708250583433287869181723229617552230943830655382481060680315274142162967923594356717875608405649620494925436770004947620496089573661003816426099397982472645910816546696029863201179260995162235226913486416651065015846519857692896866417117046149421613024187693622191734248838915589383842478035557558113225574132750533532881840059286954903281272291669976058873061278990849449755632550981900431409859880349120955657112272817330236723054080383061803607211072489016616951632685923548857980098663522516394179110596730669513236196699088477669416667122589274868452459653196682526721696871647679137740036703748481470530999860825462030726169521288523141715553118915059002549093959493393889230903819383828861290815730284612723954451187036139251138431105472535482643932822527886779820135341828633672343501379380674937558114163145638305744954235168024695592174328036468032335024232993463489644009881201982615001725351321189599692725643655156439917038067677304731455920185112339575714330933810214693586542272449107901179844995931835222985780091797547641830498940093631452231344390592021367340750516446802731675901309595534541038549695388813569323029567122490709484498716441347996623662671450571669669757664973640708121370336075785778161992499283241382992235242070891041316265726089736762831695986621288129321602560849407587701576918980441438568529857173416563389258685038337026679741521855308037773282695839450236430987928053417222145275407973546022833960143948104356926857584137614700305620260490057009426101564543942324335843616057519818213890653975506436946841356071526773193266942170188042467394962555859884950695278494281314240661802295717620457213100832179214580096676181454445428780041865640120626986108606653704929261149847952482019958042161385508272819214539721923257782668088358928936206185457799449930886398286575500465377031618668781990851226835370080010827141511157153759795099141834277194871985824581981614273751370953216374485279737110436770832660178770061144448444464089535897066546425190651398169868193249821835174117381802770748044818416852528392427236052713946575953385239396509341702536316887923731742877660835691157429448607588048693349702957584095437505595404765078886486556407483950095509679354656312681132706361834418794196105781081156931351439274416274177108361063110287403402915885596334088951713548992794824525444670278271376063363435009667846403386772905900309799904744559316944623489031351873626407926565171518030924516645995854724295686318479738950138572955108371414950148107942862733404810586657744021605517853175367914606400459432734974270967124653804202736357620521876605484329766454329154289880495043290487199585638282335344492943368883730099533106302916058459862655708222000809228444780498710975229176175777843343371839136014961869009262028911293977532820805567320836256341449022899405070497782989504424671718309368414268023247045486260296508941561020608787663053086248958333142190954740382348071570439558092616375345688922485737793815382927016514919311015126955936141746239261337957357789007510925278138315283420897429861403709801186788651620563537564491864463540401526766159220334476838613237544049603277069528692402763455214154404402628896193295361061737312406291299516367626321033676306555817646096881478143133909504039785691985455249135526948340175220330679384590787103641563472485682688008840302135193929252308551847813606197875925507646932716706552235279735734396788165424659554819752855189565831802151475930660684275628844382527366744769925796138470044524916075419194473156689916317378420583989083179296153679411331527265108186720587741708600175829342791818192540349477254198669974323899502644026563660825050732764130640430919897678261076152226076771391350498860438274602445543693309263826767261429898592003891533249093635107205043876410353824472054799691916985753200628134644833456903992022858847166079749097352648609416391164579051218278513724765389995296217359373524855321813146200600668024902837303073158354354839649048750085438431414461911876011537463852843278017136001288769313319776172790854921803070625619785085328371177845233754286338526998255215486920812665446451578405108598329834639921881750274867871524695519984382782781256671980467837426473709151983042014412265980534037029978203357461271466708486386520219943528656137222134851967898096866024422181495268609999206821405142998793584016527441070969959441525982535217449373538885027369979618928475586001612224687379940023114518568248848540813066045641257798512660114577441221047365173216428806173626127880186837974791025253771582554397513780529520583205718138441808029302897693355001966255104534010433951599428386206447867180903680823348434640691738139091624694543514110589323239635691139934720862050858658876942614055042844412014309501452305829641168107050556357604250430975930840596565881086196917225870443329602249894100129548842666670603788664303922071001232913746629458444095158271598103702846431907020149417333595525696040055344027974832120439748525860010592297301997918842280019131830311222518074808979285154795871214392029480803515323880382696366317368848536274606073891664183553787080548399799338624880910254434060830562493296987862747792695001000274444548714138023993682520718983022027688749044916360033532845280372072235168604852430028334979206087499140050548605324142640661812473242640020606277794148742974463195465591562679776782295469408654521603882145542098264517249292749746822771934603426432753629906912122850841279810331080717799803537788066562464597505942307645612987544201170749287934608900275933282958546104001701657524855496236905875480377902611768151761758275359717413718884102480436428694240601412347377840958953425508304134316882707180828082440501184951380480300698040160824171759227174998732516154848195619294560375475145074351653530209332125948044356348388917900928677318375280471789040767613288965194702938742116391135835632138199968373969787243708777280800258284115381983459018213593297167547920430808567479465488016945852266773248649919535810688127985446775579149474966304636634306870247861418442362506376878451309795469594796152376003146500006433733889714741361066813943988905496821445237792399722421228605083027315363135244348494726481546820386936998865984360541366793234405896306610017634611214528230938178258711885880696850911088195112268308312957601810763375840852704332603142171401048499655315516467007960466623491670109029526183736004392302572817429207567910835747837379356434103607313001319786804390706689954410321988906420437258335415354808502184193431723139513010761759829740374371022819829307875049021505662768877823741984460694665242404706335856594510976689942320011291644075557168221060918387680921265362063430118777694947182851201640221118382281023448433209296462305586241812546936649721324850856062506620232216393714725143458749090817064454635117046135426930214475199869602539572806143190307099692039198192450030802176098719306546528904724446769788009375800419806403782127479957750219403104707957194119837019319209378093954446011298396139341799884784825280836672622400195583352471109000161328301915934635022305226792634417333666825394710139764077696071370890845888313900040427653690173923307214263481987215031252730890228220467225857146188837053734234580356917361425053509079076983335533002364923728166419067627716051825084234852925156760329600438244180046061895107868977033702656036194072872137814861257939267136251687625743393703618189862525772927655032735002301003924012751921621908298779662867045085453725209357252426300246723118827339122650660538809664814065299966062774680625755628302303204027924044704033989742867998926885720417647615767239692349629341042312073377992513524646854719103900321110808165478881228257215032406996732210808172936607493551778678586371401862697795078531748339236966350171453339718088158158106882321548221304142373482956359958391782212372050063962327138010060624508523997401232614556631656682835223910685057622093105522510581504614525301228683561130420998527192848499725810081898014970151430232418326403250664814977551746215412815429331288687142479549259962242714564846996229080847234854768214949739463097305417706683606786018682290032837908377940135892835099415435384180735259210730919294919160982555436014257690374247921333767242078360024191967325717968817854034295128608318615759351220704241394944342318777273956448375460392381841072135652332299808073598676927916347709979886993183835389011951008144074375165853320879596165604090897802673838987396108834671925807832628657717170610020118472303177583955192063346317794688870193296800240025082302352282484623564046219734653736601745400614321052620222966805300347785643944616374252885950371017041404463965028456851465603843322993462137116458854127874641168085865130664644760959465430867240795710099509419451001344135158248720320398850264655446849164275419580978277405050672858235262557311129798902955073638858099149205794691457307076665221017032383934804379567374772001790378183548048408730991044994194125063093654030140601077609529198587160154865773500380527462907837459752926021198557647989371698545188892893762042508716041754181301145382901746024623270663724486962671622592534104561423456226062091832908587077264243451546831756896741530194848469455766524918545872984901948317979673689652414684388608519050161275702865130931290176580886805974993660360036037981837318820318420065049987978879227058969029890588810073330395807155525472619312096930096442086745456097063792555254422891379205963088275325109222893254108452649256354891277141228527795678262430912876785993896528200947749383957790365379759537263075688691066443062040299060496242894187787323232542857474504621951888779897247216344764599217450286170091762190826785632258294429329285798022328953586203375270678672320307419980767422749784054520047796507076549437316202063514241619331980405500211188917253544703757256611978050502575772407466445439531829605869583408675985132888539126466053470576610073167905239219606879798422133401096412024317644653298721793291877854935290996382274753424146749446645725868878608895682193717636538992126130984603490527841316472688026217897283416204277980248943600828856036456264075397800046789108187540901861694878133043189345585969617122898702250529212127125135129655717525832595853310843021083498604984284436846431535557506979467784589154172894045015635429817141744617370841667656706801852348786523969786087130342439458870076714251861416774225319705095520993684270935046019211304969396861305252894161056719540055651419835453024810247506000072389815138282956323340144957194445980206421451760598472415783119914760536550805244656702188215613416236675368733925601163345088984248038883333453575328092707440793531380246540269942749846440230293332930242150798198348834251623374338081840530841267041460227810544233631135868868910416952501053487985550626799312467991708588052262456904161072745314595864333056927381810892989964146819199231681029209136511627759578091857488380518136104021737377124346179136061861461128266836456756957986083933128360122186770133930920669811929570014516384478365638978867928737760107521158890682641019957355125035523251259103722807715024170620997850448782895170684870603301339924467035763110620000551145612983596579342315922774008888524692062148147059005175875504554504820205976093469429329853672185055168539118824488371892662940799671079178211921787001560179052482261883486177527115371381224008854829846457876908985094258527477215750289723744721051967737468857997700088760181268838129121156284983932855013486788518729721498588419293574294999579804368024786273984845183300480215727893747465758665012742585110701912037038936652653581642245148032960063275911691213053729433890572666503138962819430958390701289659860478322687879223350743543544206289523054686633893028983209139741422548762681278766385459514604575043593615633367851507808399940044605978811137045012681205159096480777672298449078827202235869331562498622372105537137144031031931380178420148919832418156592745856461979572361593699051950451712388720078940681999841505753527742317247706578097473042136772060829941149414208967969702950549932694693045133838708310027542973510377354321523160239294680110308295566248078624520118119465601314788325195683488251506415476330191824495291072085358485690347094500831989442977976435043550574566575907987933141395426660422582868528249308294076495882688020781654599201584890815978427310797354357551316756227728269595267628050250488294088548392091551238748758708635535029242757125495348264547893608484274327321736703887825062666351654927128659299272482893530547977502454867387147350446503023805365996901331358076440354580131306277887011155010510357873210249646636969309170939039849572751666846205824472797159280041621268951629200723766485358567040914933489609744619703490213113801451903497285323873192751678649847992148665156729300930036543109804092884735712033779738708772539263418851201700852862296183862242002555397582751977342436071920588697181034903408417465861800740881574144563715769803563128386925466426011504795894111871891612725680301344539158905532336223065256569820985407090773072546747499870108468390178572102882665944627737676363497417584711282935917932095057823740475284666919894330079202047000290071178469261066243591941530096000427199071041695328255487160454648637656057671992222436556360922122774869835525438534083642390227609904164985378937249956451370818162932743249749598934987695140767607220828673417648582076038989584578133014398058737140255045244646352406184263419035053234627116891851016902906567799642496282921622073098336802674757702898022652607518841096051668303314728019122779467426544471119375696094691359609410208795767757751845755263026930527737562679896359363501233252876634923493580750430871754041381309393093188392230333943932451736202189716100984939598566929466240884649562933996340244650292782295213826031778746310806544152278453227893891361860724443002635261311741745331481959997529002022967744040153509865105546596214060598776848227242989518415876530698932449677240669713023924137580789753942229508635637698222976417718994575374887084048408130930185565915820282576723822114986207675166132484328884120460523028668611363031060114650067994451118607967180036109211752626553279194418101093817889955692882826876217989477975688539759220706991328340901867118712225778865637683869994255044151056103831181308572509630420908678170077184661727589824066345834251858246854730954779695920075596643981474028334390726922949561018164198035627834337316887029262473531023350503914916317366544229993954582503971919953988243010357473364040642706527629952254568986099834348935661218107726389616508965581737487593901925899892124362244525423048146504142664618345721515534341466671558436125575241705601629319818343393639585081883652637902960771377332168508939644069891386496036789106316522063008678058384902242173737142481747476510024024060540457670392455267881941171545403569260928728741467224604564248062527591738340408301577637251815233446464781385673445339763470238280425205784721246033925732047180382554468410686398503042322023209613932618518989544014376104386256585294573711409849157220298511680474791252635451591127185005573713014858806436582979733387333149381659756259569430169667009695421036988753836770375382042452320166425474284497568825061498522294530264149324062804530136966364596793403678592715713762422337443533823049136813351797680705538669342973689888760889939690696535625308930468544804017196245733115574779765623624568599091751897432267534804509890781144628401138308055417441723317776337749540226534469421427328113284191686404988518160885842286268826591923124570642785266359173328942666283973784389952076782655512245136313825355038277844323677575816390685791002509175341861722620875013770293115022821528945109904281038308314117597815274064736089204879729556385387267791331390273239770477293584449631500565170885488508530646016037447375286194394488705303154399907346014242347737428861511140591763952285706060834916121154110860023828086929438582532201872871330324279086303321403145030487801186788076224383647384372177603328708576775901956449305897750221435258494332563758323241328904696028394390073539831498026083262755070240895485071991630944197473932185529896347075357951669500212933798847900533493249267359139696639158440533084252814584991366816752347069991020022578306343223204452964990274969298319143874036767263736562460990060276625160985237713792153954514739360815155037864066499046553912505804286960022858032566716629930110800146723426053190947278676679719184949253885271942004003446908287467000241770553562358465164016944798122740335619653370573410863767495833694369718469446581328346106382014388366652415076148543363209674049938077944368218810406921657504966326364374578513987843396272292303729874744064990180563390692062283032804292807586468115714902889179471530293011557313525993807022267038011624098576220002484554744339397508303057666933706913881679747466621348234438473916415237007210378099354993373397402881284131092343082603915630452109127901659208911540220947006851690036778329104592129353048223212174311537912473295269376414929995002273684637165377064826935027258915489678393416924468334203915078017390657586812633325708381801144284734834035149352316282159660287017414202374843587640581321413504867182972624461964093641389246164093909227931365111252515029209578221969544980780132791927169787709541484892836139172926585257354622964970993637404651006278342166506305438271263103441230505533174086513910472198020982414723991989601619086775167000781268221972947823822517806240065102563879138875556047061697837653996301000405779243189918082324148448123706097314612260992836833227200782286356112975106054669667936869188164336554096560311778905479002456559652423891863280943873154698513488700618104349376804357699871405194874877424129205732553344243481531568441707919247354613760188035903995083358188620965731872759094332164396519110759126878559677370678435056569677263370479211154231375150656802356858412333868401770809610123301067643770607517450014265469640733173750380758833151792763296002343897746565805899834923763116447124425652201103414081961556194963087369177591347426336166395477803062543798117594354809739499256528485023896056021969337189762522139841405740030000217156656194630677173538036864968450897179178815465363689932490572510552116797446153001104497071737233140291185775543800712766345991215478176681395575608995225813179607520452018463803150141961411560736161000787545731809830804994244360502517244762733925170785857549394517134538927141295524819661797458616669370119661910604518022526450984485924420579349502080113720579761722818502229833261294454454582917434788697289859613313311118006231145112506121958675171487181867518899792924556652562857039966721819404879091652195211838184300077063231713001633927088301765718237344119340980733523972807894778565690739645803893650570753575301523023912037441051185530300094824897124932948594757403421222390810807133993265848428853858882598304300915521401673272837931528820105247867319986158522499899448704417232835376483902630915250301291522806098462494299444377542843927939683182426938192932456840392798895435800556379939355685287369455476246444697123695801015675613356346669143983300092947641242098576320601286648440000421203313894211598489318564232635935751911283169284302277355625257427966314418035530154415991807892219489708307857078966036385750578056191790568898949587034211638066991509177785963674015401558462547484929944107139064690983539352365212965027843236282972789424066237155996694375010254538416510102496991886699979074416350303929981754634727412988815741452376121740329686063053225113197361031216104667667797030443792782253785345425046980340470905849503035134330145093246504552634020245671552239925846450094945455619523228265777588617252723027699584897091012404007123674577974681470685138407320023287816914085847779070376299155499759544293526522727267563911025777336279983274015895471568200864904968890494822583783693877188714404681027952343256133504905257622357062467607509775326994237364472341734124232740928730476307491337567289549914199249053016551103340681778930758634391007660511449635667287999148543644500425735472735288046411598870064529062579916181448273334669580317152632680462874002645305408714271038838774442220719750931585783239873946330102451033117741889740393142361348763406186629914436176668319100436513013401841247487274948539492812228166907249767368455918062280328950007473680644411371874384129901286573168885550347191485506171399073030254987145281395100804298144949419966989029408172529950116288073137637850261196465191287976260528840409474211667001839107400429276782075568859958496471489942546612683494656710587220141544526900219724384131425279196232504952599739845955430848526505208911022489483933457445881832437098500520344576544129759862811201980924685532988069176114985564175343575563587908142958957997293972192484489296382501877816353185489015126674737823058125987024996938488890565115998947377271620048225168873080657447460524772654571761238058638859557163872925150229683491534178695614980934051123851493333204102807468424584778848089642346920459961866500401004664691400865878071181501327545163157575613414912313849396012052272072391866012468990605498545646429195555571661290835489516331370839740692075493280911251289778586208113602446976154670770819955290762980410923155832040994724149666737308586761434536019767400560282862536237069482672054932435340065799014319826195060984359642145191038720564647510131002710199073058280736156200094520361389409187264620097375195878115383128454228653642871074043591258041429725922140148615963884007652266736150445001598068490506587298910659645467746463538210930395513849967386057570400128075469195870987061016264553501070034759054246334811888702646707593224483646909735479784716847709817809800013361759143505535459731977698812820172802741688076629734486543393068535735695382411708756912692617716363941919695962237117943532634750072113653164189849648964838119464032037823232598859848873595870885112091214118222751858962759451817559813606433158210591147601788923203281977593291399848456658547091102630528905089502472339671089434760219661622577639009147775886622135579206759665629398272936915326398191393276460562382780377865557779736921138132838602426510968173071876277121723459477084992631861300585479841292053700665156002546494802919408922746607794763654323322932382148393603568736530663362769172169873236327223618219327353109495643563775510226532402877680875800716241912663147480636390032456987370851731947176408530712669284513129109026299667228113514144828610612177612629005296673072828686453478122983871605777309590327388880871910204031369028806741572718068529844169678704037022424753337268760625180531676697002204441066354180458929684660586263573823492700477232918671183350288723770031201094207015044882676778492460377408517100901980537865007454041335601238093786923912869611638005416762815168153315116788445254040213319614122071829999895453400730733218841627554270011893237742435511134149449780088580269218319251990864412056207208880616432772793812683430388156345294882189638592988504504147802226200718055512764429447887316317261253511994997606581184666983101147226430035791665399655201403651161360079987408198085381095056097083606578256574093916413995579511346271331452523937860729929086194208859810386730391402536665059772566408365414030616129128884881489101387373480386665560632693154909804522616989016915211399417588816300627728052341560354235916390840231935173526307208782314189954290817086091479259403060713597116678005214373216590415069199272981377500960957629445241455095815155205451564577161558904897261529611168774222953283273882299042439081881666523789198761970879270922580475967896682726304088397437108307696133574239715763811029656105733682244848130411991329897346918739434604714895540497193607700083473841925818320011712795823414892464168235880752518483879360869346016052360574181802267021583677742963509681422350582793046015470036040747078632460147843636492466981711589995150060167693087072369606588386171597060592047696171341878971929072971291245315750314455298248279874821036206951678581681423692103310223587700102218213017720384786113502999759696399591124357308405236330262406228798975717918333575398908477627863182129000313914041214153082024104923480444627117154541430066341616944498948965029421168272605845668602104350079670845280650953132695869709653931036938839208652084365128833193827675903948078473622577822116260856084508610265589564407748206554724815334994825072809641290365037379090025359741623539057629668538208817771914638545961244177797306865926927612795590666590336514479597863540354538351412133077631244448741939677650501089887390926188401287284281621578584594880091099328608423162176039339375332627360217260820267228755617844480493986241692619780161532183046140722657462458756292435397877399633628630966000719725574256014040198777478361700940286880779307358699178106162475611667972489165528861041300242342189380389876875124140104196012028894593488050116249428461527646976430892460922272703002472831897870465056064980357321402475548512732069463314263406530055549380655875313874878142637893211312040215770318861018473519203091387072413321350156467892176196055121677669824351165727224975139109766391454064888848655226555321150904698732605162446159690334355429745863270668399279728123558420564027798653548606120644195854106946734093114691527583687865955013419386992036216827277700052840859152832655851994047562770534582749868745172168896176178890973501621668523034826431745956346493288710918350304257086593073573652733311772747969416950170088062501465140956452173628984973447583667679824153172799346085094961359974732655142304440804354600006372948219030964369731686750893226321596667614252971265946526295510858268135455010816548335435603316556958768065443551392389003604956317705030045431708160579103475002060641287626986067357063135405115088279540543401292534592852195449245905827833678015186100051156973432368244071116936218057110008946719518285070361819896582918940190892641799594426777194166808704056666301462475071535764391683302412309347117484928356229828028523659504438744480238905829259189725852436170847284603273189638314627480106663989400089406312625758648069980744668852909056402077784454294120250961051462386722219496716798795054942995613366499017195683508303380949933439229562039789359205842124677567911852617782761627166195017601890343294193931010243316359590433466918299902686622287029058891527856998211661722435795100286111501236550689334856470667496416169468981766337829002773199828304712197326985167990407700527615165079676549230267146421733824969408657155518990712282117367004285912364802719188680097029322308740730412161647802015083246842052420719964148908962024833225746677428889072550256507611831614066515230569535074028411583185351549521356698675969274952980485043664603548498599198800108956674124718704636853378201859422890657349062653021889749769811374392603805015062454403664945226147861082852730797350913771690904413493166980263254538899885114684218158289015326941732181803798831518464619664754439048711916864662340211882746135599206109239255482014620340658471039305397130275518155287553816664497419700737709808922543170499483047083132073581064778578059017471205158017802666154142160279013326438325749521849380590698341817572172354271352905338962507063176046476387450684517662144649342361925089580952331590904504430653636319011136571932421136411991197462981215778264802003244244759475524106806953612488986173207121078690041936723244130812324228466749828490064653578495512944003213872470669291122609513781304419986071225358610765547981964156454362373735705321226582496613878136922567800905449817376626357954572393635877099372341912880539561239814704013215337752590179155477132214670070564622936922769567003391248427413572784360676924692614271173138103036827034287525796450918491100681102491778605206685837735234662032160768313179009954564034140419225116499784797023796266378464756992652650421813078536843425114487922637139316665574606958942439299021702103098030895166421123457748826034431710039892401829635009738956844632427524715953128163681165401310704001100902602844398225375371454198995765989492634138532930309827850579512242311346834907726772794296230663522654733172526790901752233414667168903846811386242946560760293748588290640672474611813675770527022689647837279512496485667277385229467557753995770272504732957397290700512724694077104626969777905968960260031267614596238129458770999559315513809923051104136892429406935133106631486536946564544914298987597691570816696297648872822530775603314298606172854421027843186560228351972646139017142556330099369885478015227507094891279048137882597318216635371019166080133726559452222070897400710140882160831104060052052798659547060646591533820577770666346253147692508100528975089053673668020811453430903298037405303688335046711765302620834193287005987860494804544902809910043081341857664400933281408738086513161939406178678192004794015350052590231655039060290776981084889682853217056425156453864245771466931413957007013725270189080433151406161038268708579190030336888517228230647811652504649080352023062528854722651301307809862853761306771705906159027569554396083346081000662138019672111490824763697938729270436575821193207276826481304008748538039518388052356528092925775092888999099016413283131327792213232279451572406453332885298076642669735271482247557594177849965752638543844727934357751441463277407239879642562750898641304367806481549514808546007521126033466332221602147624264818643693592438356811480225743398876297952146701996607171908869948166989612398069808553048879634539126815432834244288372510813481810362232005666586236660818085912797200292098009118052720990805045279213028343662601954597742323519259419990011678462735997204595239982967149715028753471753105887409932793668987932446659036608555868690118270124154772656525844405313914046503637595708084054933054172620399666262250336386018468453378603002209984649389484979642116532690842542497215173859812906743427247370332923871916910273574176107711640352931264749086630081148649028589256574840318581950006267877025239817906430238172046797888734985134834612064392307042797777859524615526596788954223698680770751681720751426597475034869905584458440237520182754931752344545837917353048768104575184793464185690197171812959063435951956253042268327962040091558686503582028159941190945152310780903502021534119175278877721316509187615687498264892559775855143660486760823349027720430536153592706456136074788845891909079954655196389667085473670065129107297033764473529029441029329806301328353163890544246454103483308954866712091926407600714270876567176216480138644256389792568961293755955858388111422687450795160967013825294866691682736840214299696462466280617731850525746211857710447141895365476777927130504140201464227215721614379270829457063453394472108254685448823534157612808031113448762388821385220050860758658601815729264928850624397620097526835991839746006864120115655627536260155011736222374240609546986252355287540376466214041201771145426037698276942735749697713754742356569630598305252307919195840912456266649279279127505081366843517909707801407129465536275437348419554696260938996357594432691539668357321330102588391889185212422338535560475335175098275086673110856123635628858591026452972653121002042703166701102117470915126602686818889081384520849641108545961288031918080336014663131425783686007830196703930079280131894490106748688650953277023912251401663346012644633853628770983082367987400119963623919230528142413334410060220487972854275526849179027858548924851410134164124851929929998006297654009684711263770107687293161678087673915537895959317263121794031074410368472482936563529333579619518907641977428760119518390777570265256153968863349501686784195867031144776077539802779979670879103056429934384210898983442748995007318318994678766089983706817546162231057357084403146254596581417978132682132171697751525636611922529720568843690586079149256244902472562940349316293096260699800645249417086970598287344339103543316937565078409136958902094281083607161316516671097179415757845756579263218786951249964665517855180313083304402500435451453423735312041896019765605241324961760511604006938983732305727655707815873406291396197942333565122154705412297634506355833799012031954580521486111049176009944875866432562820477211485311433859452967694443981815673060627808684227080503904386141141534207479793167450872704886133525245203988013913059272538371025366833905767062036125187460872241863144026464741897661548423894055574232713224377818911844705511675481648550549865739371669959791734031611039586780028429670742844483849068841647679665081818027021705879157357592303785959846144930154405297213273170723605900238858565036859110507516499142833492591177974488752967848434990024624040134627109783533576383097903400524355698890946408842727353803911666367877332172653058846845305854321791176629396479423770605495748580456182555513879353728289452773314919726569316264283932658626019309676241576673426951837429304407358400167800526039829461292408014662568786884273581758865731877913993859167287673232084014282778583481724869867409373278894393773270184598059051498914174166704430037010142674258670783416169110299756247834171177654811278112170913874132173293541119643548189929017438013617817396534984211793090239217234151056405652339114145524143004282353339417698319936062543622242591256400112327670669218067354773149340126422410090522801297423044468873075932844941658113473893046847681429525968478793830997275990849214392196117741024414741803830515372426291556545075613013391649606701332709630421984938282479586698349441828929574778418260011415553061980053803470773506863024466790441016935229405869128849016151648630266351931065987997937466822157178470118046825403331465131992785414393732603490516355498838653112191446125692071435717415415188140650091844612268495219938071722112670943761502490263349267411725192883355587299890955551753339721469102853435177359795103667934134938744951123544157749244263312777691880900449217643450408641244663377909507319155520469688957123666543388263088412847907777765842682915949815389479080298505453468572015859098522858312799050713619704179137409075458223305951079533220519123512199065154952010001657373444465433493149758832138630712190750574542560098222924831530794046346465538275956364838369002286196642476280192934554055127510849302390005546200514013640015460043766091762009666015570518517807198629879296874187722557947452993660634893163929127130058413683107657827698747336147590754464144393700102170158005828623251321880644370425489595241868635157642862617557976712401336792934170940657394347881941217878549521417582546456665288264901255720145237154409492728874733884075411919179777960519277457001909137621789450475554491771842113382814176983019383252584230152758363232686806544293514594760429184723411240578435278841496566150262618971736455556298251411914476632380363712265120168350062909396291308192329488668694586399395431631014158794548759468705203710799017627669065090662881347981591188104236010136716799009287919480008637250747123249310008235973124388574820053534478078192731390052777085720010838245371853552192552738617743227935807828986122231355223045825817494822843448332274415159656061817432403075736741357320146973818311391516898135886190519285951781726331331772258267168490822788073005594054360685091426015346257092377454246024802198739731499129334152501188838911380241175140877070146705791517592456505148895173177564006487531323866216274592130743892235794221337290061260588849203798546610668458098264291267907261475410653531803274120060657175591532781616300999553873843461695375931520267414067435262443998162107105437300920462746142362883841573793582752726725082089543820536952272791293854831202334925386991757626384795856081881479371447439431711738490171844589002215211297600532166702846708122676443004351841016405039184108543539243625085733474343495561436807588510007158028611088724842865958595299947766686365676295371382737827809895434852877011061928767352032673018786218146012664131041522727161288154489899093872425135388346018337331701896052574092455052703947442040116016316337164114191716886187079549795402318452465499335989537670204291991657142228213988384832941876114003329515820884446578837169367714735307906809443986290122605414509222799994821325809925278390762444296931049879236713908509280601106321741049779616815724664482548839968047139153542847398129355374343194476642107827772722291985324251280856212925097971290014850833283382799303932739613651616304045333995648538098838378367962699509544024772675180633641375116573799184084004417900760101075571079507653700652717374295084838467727647993646017707089342835603130622786385758027925104600528085046588419939480703395267245623884938160174743442551104915819232613028002531030134682745486975644226856213381626253609359390610498878205027357391929506333358337030136499735012620863120831009297086196385100211875739392047596075007176405963865142875107684210892134238709662683430031616883545088443906625535346009176151036880146165368395582016896843123057483096465793692032443128844880624629979834400307058297953424331844473557954209324627710262160883483046129300451810780346806824891024364794951991882212989831321565198459015492470448082623265846087020529823781885625321439365739686134976657625326069476523623569400488725391299733982470832362923903626999179087007440872220085618474430958360578685744866038795216487224525716285987147885469722227287988577632435964988654641216963576478735712714596766063964629957632648239000206474952369837395406636938226509816849695619967323324548521728077933617022625149355567144730851687470236007789063677705417486698617229408107321746135302843265761068792478556197977334199311421428918159762701382637408183503272694210417830053028584139385655814348540482503017885265035736271624612163648735156369538253081671816914636758720198297835184717687998983623485055584369092951572827796728078483429967513370826818435187027254377194288790053405316963174720021501870832072562456051315067750007153291892692576615771830263915307576018046244890103969411397283522883294635635444723010670154908763806710285016201856965754416452598098738869152424741128021415544758976016796062538261352753377734110875813105193549019931751285508880939005759644230816386283938172408989003356023432716318877533834131062250893895790786615823767332478581558908788269638373708637541418447733167943159301084264069629917097254614118954582892318066172258069662541742010120604871087348177456144558238505097406010772561692729435589131597497331584586555194306605966820504587162495377360285554365422578279486606337271263612508542569718929661129739080853150334268778175106869047464068563099844662801948642403288143295003136752470881440647108048459827520601880643644956001279334546329905155263136533983885893883830153126396317014437873465724257477306048127469955134767395615188200924466465996162253877841480065165690457446031535064537010569714783307965131368713994402905732457347121844048748153755124081950429208829460225170971258846829283684222678725265995111096703992147864487344464116688824358534040520026264170940786729053081760836046882413707926256723222419127499563534983089610583153040712911347870917428331197207820371321443148166006711917989495896440310314318082026117318937062570992595807222414475756180298491926322125048097013706156376151446545143799033591373362530262798161027820156163164787721094436216247053112157574843070344691096549605172041813633256917216115730378271311775308898087807850343027443383188023432086264498206618521857085046864892847630837225319325263745570702490302829257329140425934726546525138086715307389679222466083966927081888797118155972521567413573573317112368145553821363125782363855882498411317619896981584972356479869105548491630324146414554087870783119087088629048409578896691431956888553110135020521914697392106314851223408638263854943310838855950808245972520764276981377464269875899383693669037734404895372666112784203677037515420375967123715667459931360905345237802136065853086181777192408117806053515574374971735697661951093496826257111009590263476916522187959904206187436355368272549848757273535122532947132899866466146304049329512502330956313208131687076729333224705603309794961232650702764082023832784377387254998575473310926318850227255032328784659512620854420435861184047593631887340620771486008105259619859420004474560018380283264928562619130875015636638439922176615138521627784954963947405639231139709218121979320649430438987781316432219619858360332068573851281215360461588385844575629521379919452821633733284532697973148778268280506835863532755693983572237895467204089325063828511411591748365351245296773128133650710640769176972682566356410129457059509430906209872652729997676804527733230588013332956317866677072178110658231731648473047491313789485595350727003067059469921409346948465614888394676107577754439506866457913600007900828576362229982450897841655525853561856217090902042526073631099148783057140528365945661261167590642009844906344222086071597545732318551596724982762169183456976298954332232129048755693447428932008697184595192039402349521160290750653887935575301427171989233265671873097312490981728209131664909668926695432546546176756560868366315884285073968795387680951085812954128065631352130135124717096782991899779401454010334063221148014419054384093278938835813912909095521540251389996352572682919214055586098513541883991799184711243228007348412698651414185782889966681862654014180936651138345031468808885957249868549899071414689569119212896030391432268161575283007647486853502945905404424476181318608538055216819028658488091759726523695642730707245315515516742317713671781081198819257402438948205911845926269503841481700038344923434850259768966068960571796445297554822204555528830086701750300984772206252827423241584771377133691111977089759486513947671300892379389251484776764739629225219127483915956699351905729535504433669232639918154443862510277402642817140518183373828668056288119939875473064278320204634997581918193737635593924794262227086572295232820419008668846695474848491996011615191372045048593068277429592661267520249738161760257099424954640752650050478798648830778994754396602976403399977461192462307321010454244175700176458495685610903400710067826448250190228102108365481902880741724889040584894988877070442149911122440546460429083993521680769884620093651779433222067309289679603561980561441615247345988034416602540438469118410692731237981959374611047197057663186677120792626778490155382636499833138353556320477313598275206782784063868219682448590595417131305242275749053336205349406843908398869910225093171652414803430157265015198908551807397711240314179326990023991157204497198150651633250583535689043530553314069409318832210945510157769253061793865155292020601996947436344761108067335873090264086984535696450312990711602346524565191458480668943307454401822247333382326275894847569380009944155547447625705380255373553291689161700208469127838716262692908592610768544711884525627127357371302573552386978693035630829319502006792768727996403785534778934396488384421251284102871833844866543975751198592231430560758385996072237785190504405261060514964532211360213239610450982186601039611076553451518261681534249896925576112243139614178178918708880537835028877364474184454154014771387567600100507191414223789135887520129335998038297906347136516291299833449839155193260365183357317584608895720551030011620865170000593234730565685434439690499782960788888374040703256044233981731711180325522812315953328044221900426281913316587555809404953698483578675220763142041562807144123405780019045467875375613970548520124812532484094825768386342096532822490141728836342735067707770027392562717408496059958322422255072790984310183618555759225514706043815362464100060970064126014112746539139266348173703272798725778239820256026698644985765521439491300720887928711611880956792462207752369457280151885016989850948268592670575305037017482022701034979063253593652881152468795563156793483743104605161278141192711371273045337940914675956577354844116839115695193946325963224349875863799702853422582493653854894342372240919188293501619974654903993528944686582654894068206358452549971778879381461249853450004845908513296731635268929319716939980791116485165114949514786891982933700495177929654623240584618297727391569012769593616786429281636160524092326822157318119699378721536046261306114362021898837017027927052191680604258564508646649416775149373095069353084008783413379819057002489451913199866825218597632897780224859205664777791008382432676050130984129923169409067207921887693647983354650276920641736379411870818926524873619441698910216427730951306529918221470093974930686276031187604465669304713209588652216194271293575129762633514221307681154584154803408236543623769859650043490022120571514976018481939173925563170307252928188830346171029009191585898427016321737409940028654803994920717943978592614618665374144853355474193786396286763213613118642340520651994885765650267541372814391497286779834754041275945835234771589563673868854075562934078963495242203092439036830608250194534545841218694197592529419865731237243412865248383994295855970762912300896333592323427093154578169061572397046449775288084038615579885172982178223853460222649691761074007055946509574195101787285105404911559657712514480968258275690280559683288160700479799283212414988939709062088085262303332889738721084172826573520415291786672805189447902369500988906068678606687593536480948149944665108101561738450754527347139490751409012333948477440634723694262726483192670976214083401857212980059563012742362511009944193233944069433565214031700145163192902351874945507729828691875444446378945334498803768074781436221921251875675778422683448663380521371330385511731060891514378170209799355449928050439075319123034220631212685223501142075351802734049514661645477191136180472802976780179951974176166561054920546622629180853533502356393678871642083254113363233212626329466170766394118013130407722011470059664197171695706245203328476343980925980545798568171253322192509661882127190852927692300200743298550688375522916504673762769988820204412776554463596723643390430761370517341273356965457061548544088284443791682966380659240478528633701561873248388711284505322523088541726623316462239899505673694715397205299782171311647145437846874459590932595878111627879305922515060631159639469324297391773609409043552718111064132654455529357867099269716915555136271960014070263366734770645413219538358107850739115608785675089717816528851609227641208050790972555463921380165716614012494957507257594601243086913290773724995195092263496945492661055035271156326800322009701766903244715369911443844570727858147652316113749890985269740117226837791378333956547843073339346702637454333676158127625331861054025655611142366810842752621205340202300477643577348015735576709862400785618924752765777816271269823755250889641632662190745836641682411470762484077563874417444375149679226669050453277412107520531135217323625555500605506924602475612174876044437921917446876080958927562332897005035739153787289445916984428311641433348582955771854468785922719662968159462863073296758155202051422979968379269603776600458843501718705860141328170838429279477283019773920843237679469965517132941689355554789307177855392070979588661172211590059488028476124134803842845757470758527050069811046686678267958014502797810311418391118050277495849640634582792485876620947567571358850437024378724402193746792312570099902264111569280853437474582738258664148150142151806525940894579906547531564307818458628980338556089073830039232425887985314984095027583779536589083228969368002019336044209979197119174277012701026259770398166034969810758343939021431938369972994127921021182246086325055150692501537847762748373405728501085446514165484168354408643573661923612403439439347210809276954919563475294753377571631455172393906143069581953358813551089078457084516135154706494144410629511256394346164739535556907242299959691084082813049355185184081957580188467964035069337549048132809485551857974280904182438609099782349160329723358068471329848628009063402247122803718706086321392815587071821996242781961510794928129940105788191441926448097059966660121321394621920745430656619056627996553642825920023213556143206924069739188926555909731327986143348873795740656602264596673516079766046846841781495517622272899930299252959512027925487916321755162331333849593893630317590816329189291179028002971338826173150688269334734286625983668220669508364375337557174561238103144693430314859675343190196087696459789895661164419253300335840273684655151730446901688594373116603525419349018415075710032209350788873390844657158555192081310979528753197003251774213098322850469084572047364395481176701826433600325387260853277325721545569562784924442909874211263024122690627338409119465467948881986369797981325209551673572954770781802801262939996741631948650436694385997575065707633521302957432915036324267929580003278312922295413909227420747886510178477417497341859603646859676176906281648256007029547798677385292521838096899584454400095507679063011028444636664739299919058725979280200747223529194281414974225274322967526475385198187070969968759659104788780915700967306827414352036023330116547575333600185931124210634235064656366507878929400737946895404730095889588765390445219536615074850719655843224349767166276382951484760589796403792314623024068235637196518349946757190359560639113232718661504647111156177628371245147358363314172968970937897486359313796675850145047975331543464569085573184592666826559227862510510554101247923773233908442015190208165299062750764888522765438412345955675780971725543239439249772061189150695012214605161831468665852532399434652433237372683998938830736249694208238749084478970816456339868969962846591601651619647135382974677585407295194639321675729787896958972444185110085079962301297090119248854103866632456074059904968591312092443011032893025789372025872728780167936264421694677695464415247052739597988878186018408300886314316281356487319261449166928099334933590928501038910119676881615619100011411271767154043835320594221445625378202706357699845217559831611627049789235977502946252036240241899809035276883137534238631024056430731343048933108526263937861532271575879870449768034721007261231667512847640195894020721896640299186312121202675912325934151255237065962752266760288224965833515414372825188183046203389600078139816706969324346190953213120408252898677684038848948654926346841357231783614915325502378837619779811729573253291724334654746317274024544010439681315958222929390237504300965279301401195983492398248296418822295717930007000037007664417457843582368368206372170023355489009854816090168959109226677664165693104667581351600778162147107826803550570724702198440691407483015197688789826575695369056310445854857204906989648734427755972508667551090922419645666654203888165331469122668171009626871900495092395937511483088483652508991279768964924824521682755875791397118147729646857527392157795708551889836905510202349977946208666693816706803356836034166607958131174524157022286663918030384614465662065142049323781031154731445434494554596252655345055978539042204502893304346266598655728118166602137286856050533938663800973031911643600136866342451838486092132112527532977950167623002728750205680654109571236341255373825010040623682812937780681610622068185311010312027291854224870813735521336817162038210334661811181431297102303141716873820762164990856865193489717292207932726346396317868563053685124504084274797610933571765944543476986768965378249351105106447016034960728990960810627466205306228980952361235202461287180190847691809904444364754559811622400947152528768039522531238360006396457753911295830206707268657056636267700688945689373239704401354500207747453777127635268334597828747297011234192155902381831356300175276296767873445566409228460947259365150858542863146798301698710567420810100521460494744346380935592800326882673864123139440620014384811022907108599372147135945212401914164286076196525891088996026214708726996607020374290357209874808346052824258919346498817821339627129980449041367907995745196090663271719012552296419902820885520668513934715449209663764187320824891123539241580643883646486009355096514136051180191919202391994352245129265508042647234937707176619812775733736357262471949692172162313546257870975651776295930430173623277517602488331702732738911200711641270943936459984243687989812176410683924136789686908928826184845587501882063317009848243530253164560570801634175738741403219181492664887562532061336901267916830690818348952554494652637227232416916777002674524600086006079632379919113710138189801182050881002015875441628698958866565115393055156715238607720328388697827426484184279220746271764564634379769633635653949418735168251775854154740197531500122903162765372239631150923791419730859858971741319683403267444629118122176348482590436235851381584873772758904485710877049182152994732871211697949927227689184806165622161759248105637677530741595612898417536160692040624932717742610259013342700674226233640681879951586026440325000080118742031728506763265861448302170424029197400219091163446612925248041793780388351407497558850405629523285508856525508633796290802506864776539924544268427888701264039016775349433942039741182872461204471323774756978619416149354750829046326592199316159300595990827053577627963359182764518299496458467771415065873118639257943927424166118201153947809045890411938817228347537110770314827189496256257375256180688565570517339867893254326969340754795247138162572034980067830304263685713265865261319986605785344044297224235000975411248075849771134265647543695267214906388578529983973912352480735859568262297943993219190024054940587349569253812178276830755526027704614867482946788248919425166275330196394877184559887727093296420236877312229862010308595969704054654757300141135408173259929965712263278560496962864538149809978597066201206592520995392566265546318377329119031669985123901243707604335038838556530382163969997486068654710731040210072432739433652874672444249586367348337257710731686544647164092698910661873017211436933679900009240134392548654180810180444593722632006821763886625090344339378492358411050400368336826905257212912941768834579499371317131564317987095230371641978998016476174888599034130486851567394714309767002326132652440054014165914815592218292243242622274331081027226223343262084504614692697086286257884810426263368090518445819546434185877304202537624943653087211290010731680540298689250441075106480643307632837154127470750138079158764364130470534518289886523257831100643762496295815204068707620466207100108905332229293554136302752775735676423592999141338274687269495932986893410156950058330154723613014032576753805304999225717514623266177013299827581472215277304357046009408610873877184025433760763450554276397276261888592439310610708031116373634440590768496544303122870338067471068922796705748944826362665919379846777264420004544729248400158821536637693323890153587622092434809354207557887675204593298937208044234075322901170403457456098532823339658211349712658584438370697674898050709806311836878677622377000211581194718148938711505468073820906393437340400142465924907228483390239315843195364590989374748174196927277507175465000193295480401513963456704226785376493273722014747684363571049716237450742969527659642886157307664185804176420057385236487993214701867855935794720200273629704742099513156447815365240110317836996450169399094357367995283057425618203643081886324862015274227570586371176342154570944061373065981211498877097536689642907970476250173357285182463989983142001186463699178347614568814317754851608025022069261564233733419044349977291295790562284208830531735255641692266218793452464683390291184452313974572600389598166170431794808913109629524921467288041896084530048281194423777176084693297120182880453108056905963983562049461422503564919870203285895278309467868459607516764057396672763391498120490332791740564803197147618290001801208320222582492643172161979178428990638750491247995831086129534036355051081298750417747619403550360401602458603470374203682490667725898566179956901613471169357293251102577733914357095960873767906997171836628733411641111369778281483766828417336012151171498326689563268900126563173415217745063234659620410159474004225473294053612722728163944478105676564062069025763088207067951605049979725097147003781724493317482485878646160733645599913672839146615872389184462372077128857352484993412859455369830221726787804739992263036618476004435870036140237115485366162737235304710418809490228288591733296892583776910229976599145991811818364013336305169523669230831062166502403860408082604303092704309953068999701018674333824157872632184688487764688174983708796643311237574507618720657356280823637124948412166415055962090611650625116762492730905420183831832097447197663888249705713989984635383853854448560183486684279245882183105670420943912567261271438057350169663496262617316318181519044324301239991056983668239873896805145059366480601456681105229022143322008110005782595427516621376620335278302139384367692572206961153265994378752923845933417101662528236520181911844598204953070152858194969986834151648754457415345384892604167054911346869661270200847811608935291103884551038266360110635661258225801394989588971814056167547212020179962701913887357565817918622835019549460300216427188236684280295505772829798521354803768359465917776835900509724441469530212847664645118780520369649880338589490993025847283341842722691216997312655307202552400494879109220916975068326626608442388607783505713977937897957604509842735663384471365973705280282682109018381677721868599224710319348209993326547706010760104918177678851186622515465394507752397114403477558187997419490227779829881275674003472194376714181585382831743484707695788090980922499322430199470375451607175682349225425639460522924962459990942424677633157997148603928024299368281854320437978832509557495472856135402392345383545829102224677996038538483192433602839612578049765482051602512152449108542455969405056856984398050054568133249381978108187230870069019620267098650935367236560637133196108310675065237379697057435004433671960503806023094479659863461399845547308950569553666458600087894225076391584866909012997054772951116029104349641999297084984421519801499991192915285890889838970094526470761051413653012357681454688741015164709807441539919106005346909638316452787693127549144748996796731806739151879778545862209471047221743580983342200718156901720944868518395048026281864889318898879836146694937962979576300174274364626495188409366543952149420845727689798240104647237500379163702156435132808221417476166677731459512447391037368270291012201893810221725479945671030960009392855607808447869040943445852271754372156574113277892806282329834908008445299622108951454599325074400878567214112957514047401135109698928547429468702817778982312444274467824156502975125533826001962001352380889058227512186875895620720756672038540889881015609605471202542951494460572418282838811183503507623792109114850261632316846436024333372997847929299206489667864040082693580779348422917264228075281586248609571533055335501775450619541913361092203131682676228412994323139551330199832618541523374711558540848963211630701741991453995766100484247604701899665830105042667080819500501855969169431172773895790033378150971653591277096879060987476287513983047524040541376024121537538922426193930690413554983807373583217166350133518269159083654533801079621498659914696763067369727412341685599617421443895543154012438351768746887127381575727176780422317318586770324513973825163376023851315661799741479107488761544358856825432089455606954753424801777969147874467661813370800149040879835519896389045872632692862015038120352984244718503992727902318502228195538127570860277334092545587658476155221972781992590030397501574192990307824452288035112629047186766595680604162231502338320919546544418269972726285263192927398662624284757610635268238825569193287285209551799484835135382461575713667104000811851816607482338374925328643971533172666457268187423285409988128097787088713133367633092266386178855950277769790025462075204365969813248331636917946075135689248837933093329130798552544111984634969755113895382561686016654085727460656502007123032028721129762455503261634230244299471302995592932838051141139080369077979037040177933541810889928107077353825582884492075563793442950306524512893381215291660684179944967450461979760228559755413956547970348540732593763961331079556339361702029851760412011424096364214707940534201215996364152270119494838226109556262714515946289420614664853341948490829181280038335372729351304724764176188138657945965445121743480626166790503827054128224439535318176834011344885801775746633755934541917936025824813278024315722664267826444682315143006792545664756713823705384401537543313373552468504989058968794490622636281477507365100249666265210170087017845302608875944842539276382612357183617800464684464525916023338079543100643526888341930072346351893805981230029431771237652301757676182212250654088166703614702883275365111109075151645255729028821429910170611121168833166677550448055369430459079547293024867255175396651486656802282387159497909143139701980693687057466088605230629707548257423955665443991743094133591101793109959771818359140531013731556353423770528948288578663823025477496769623752771531327908738679976561747783807151569866763651536348325791960896055332912173667540380548983162370081381935671513509383769894584714238065833068112923693257965652074439107772515376456478201595526114122341616378285116271594375317316590140790623144058608827640927480861152475733842901693685520263449729338983126437165596980853562449363743858512280727126734114389253178195696153320238166675908680077283107738913885900889234776390746833478648735402487904635540352166579295005492380462851373929842773352166398054661394359889907595547525272466917749848043185187718452628788083635751324999897959304747029056680963973131183460520049811151584797288924019406182556973845761861144097841669577136857162632865658442229528928739276374675297765702335218016604226972042382445374081616760683117760821430898299258742044981153332914866193212237281579836533201833092456371409684555825184739008884100744453055024050074997088960674982493764872134998597430900933755491744774818913087271477296704691761329662143790021116159063789189757551830245710178348668637898527033047705857980177965505954933825169871968217846067632787405271891589128194327263012702482953031177081558112152083737989355633640457876713002546358910211233192479522764040613544694113820231647257385447347575289576414289420825041033271922725361506121561881478659649672566789900567975210348455816069692093287534504158610400435350088288313528239103191222309043195129508205388512434364057391155963659591807449776727633784967782730266848901334125016872865625793082865314765939639681842297953071883816417396017862497865925511423006177552527602860486334784825738917862127105398717253141999785106571395813807186151341122418751353348418391564729788647428225859814327778901938929737107253821300348142569725593870083012266268467851957412299012121297653544209846485601362272702970353018860349178307342295301521509090525701593675277386110010796911826935537491341171842863850668573691873360385202568022317480243863848526777773325492617608108803833757694018732269447179564802285767291603344710411551836141372164950863163325264414415264427100914443987385541763965886283104801995990719116674316065631846255211817919038557913262488586140436284908511350219528534279290459432454137319421106972127999124336599836006562406530678050202073883111628712961894791845048807651527059355708274431982561303623232957538269387872003050033981181505527815968312478865979763241170992572880664302203537254908055179522187870242681935194746718754600028195624781214503392243377451378200247836988899836441688444141631123697270998351570722844908276019283614489913634475521309698379814784362812034667657806852219385441437378554420553308597745544073864136888804896069625876683394680815517875872312778549702670828721870645980303324837309322119226346398613401433185643442472623170470819913379162980323062052822353559289138371994353013617301684907064570177517350147869921956692009236053930136834235943295955281919368491284375792862164045594612419144215312471893390815447065492728875405898224489433038954346340128165865841775603230769738528560536759667957534644952070628433758044089014163875630447912482927142135400830123607866200927160896329192414883690237496607522700304948886378085383828515103358257893020726894166234297434948087680113709237534735303480548504075684569550600200558313810176896003898968152730524460229939083742900659274930700426699123665270993614967987567661694431066947544305535589169310032373336350391066662980699458454519102117838803459987106826731206447301515822125544833242777091891907505567056159927730290805773579784818623600681439373522908977755354481377749271263169805759493203025450575000103160019190763182053324547264646977484946643191955358947161398049805485747712174673345442830224389077898830825018027048417425592033374733328908360323862086728361517199034835507048268132581605218046355219476962898014525825736556444684852508870460403144021375206547215533986129546458646208274046197142188209441135158184692570455402908155736853819683424898091064043980906455491212661635439073628987058453954625301029554261028972546381181558045060146990966838410533822164499216820836150044777245823376298375644122361784878180074608391755378189802281385719138928100234147604759556962417528525719170689062042329618116053056710467822778271000385183225168163534171596458416889341480802813244254163341748114908358275975378905193615423552036170097427007962329463671949278318926211057880933168506077680250309212897085943661608300398011942469114163057666881901546227519934686259117863672473126755042631079326186224694412627234637503516502559820631207240434888182207945073511455751266811554127086804738207707342083543196210910406919344848226429987776921173444233089897211045663205635506531416767730765572385831629478995086624028511028872587039549137907076982000769271194381672031432070423975738944036126263400813158901279534678073041638996639534631867791154839078325729751791560482377753495419098913365855487627288540253069583837043460943236147009899437220066014703729519069687702001994555044257237692642191924493644861108311961768233073553140893418439321959248669416921632383969402752084015738472485149922765040926198983304488759742358531321819044039890860469945349681482285645410763312664478337304861086668597591179948229372861936499849260821117176479089215188543457021016509803191281156850263253431752794709445805411124570054513588993903879027214967418176196780805715095309288159729620988724341429724527004864934812608582977164081117167178200576172946607643213658118541685819045074427587583342514429560389679392850660889668064732866768768173756370833424670595345228143860272582815976860516375722153669256562988430295899072584720711302601784969774864597524966713878275090410256921826174854295689316163538273118024823595993432077800521991722830446150344222634357828281429077961196632706926684700443311924738160377163468378549350375046628402655985185494858071250780239740302498598834222592842589220947182435813811735258153083588396207866158414080250140635400636540798130168052472300186684028530969628549635401105644221062473481012644251463198170730817642118295669757364150835889311138383149283673165014030757084561110567253879583544046975208989451992232924044957372199304423994608890628223425560209656464530865499809632673426109976896581884394028015815245223158992470705578835615837019089396748184443361619846853030962811927155538351341498834711433502684757751799944300391902515429129701974479477331874761645768430328047443714352276691879469622176556912968610758639436829599281541508646647625403635062441512721319693929130632091705554663110510381417886376639023570022041794123894631081049341448143153280165208530182055678720649171272699966053618841426238452472031311759540346618411380955115971356841419882535601692916044025540144785801569586537157205888667905622881562026716736079373337250223623864199146493251537379665505660848743957032893913613300225828458029895246395090682039034606058546022197586435566335767372988292949941174599158307172782565130597633354614861034536594423222809996234768703546762234461285888951454702975375109919285404945377761300367579892057651641694817775835209722783916248171233375371002064521263257944538330473535981300018421878705451117478065911224551857529525897984937087889236421170287609790227975844773318245785514135738301383499339089805517548058193121956477488897522223272352062206660180668090939014604025924460569753508544125932634726352809383482269292395191097812402783384122129564345178746793304904021093010335223517979041369308692856095565039591144472726210831176810033306390804629652707191651516219931781702438187759697140568154241407219439900613209519188374319312419167730160949200381147882377125054079089517707101225369294078396969859257098477449529072245495284322689976720402759202499440324661465438120101077087212802916740119036974102527773402154842175479447984376069257967794349985157416778731845720125290946361316336987993097342407373850085405421644947651910395168607526840017117003244665524432720774743927619575940614903778796594611358508224253799913979204708227050819861766441530760147100796854114835142954316177672248651733404631546495379661200644804710952412792910097976435654587904496846156832131077195116805073286577684976711900068667691869048646699814288208829883820155874870003501785274328438648579252611147322226275444651311732975666543743019417422690175459447391477922666741650859931285089108627828844299815906320003442730831284572086927890613062742900183393775688240333955833948040798520791736850049337234235981655631933772852786677940961547513749526442015524806205478090395946454685269498965436978042208553322908001671139446218532050716474013465079968506866760617833218480721046919391526412984406379254781451557712029233581471832896500758900036982806839128368715405727744140741390867192969297751052448380328635316325619891847458843197448226133946048012348532982228867599909939877347733972723745638590052810736550533563448276607667068304233192537002849185530635243719149069416559153197774197895115607793999058616041373423305627480342017089422123450657877046697099570242269086167629799628246315677468957634629199697753787889242086185561038828080729435449820914859089667378662534206735441657126415233059289313897496291830740596537553010533302220763110975988990873787963894319591475583528166935379153783325736518741092745602631896671277898437005803372616873012429757951424048818107213199230876349015041734613918273720307320295852616536024574306163305090740679206212856410936930412508930675342835445614829731962624808420283961224880486663612816444940419290688394902582144322972251915971320165918281660358042532725002455817748306023387288554800647422203825671078629034084320944091490105330307592511245169778106602904776524649799834211047890092212444644600699356140807896167485108372991842130656987697933369364763167083965134288845084341988156650202495894716958488831271202346030997792131093779906558718131819605168623207948985277229475821261737032428342753789437979123737495657862610803268231212476019249689289998119001796222790535631794900311037737291431859519314872750701626323256838746856187182749665891737742938139515406555621324343395588726940254584329490869491950976217122003066255908223761891227994299688654936383801396984955558504879901456346936736827181034938042840417645909686864458059722638422330876182803373940770008331382482650176998973842191293100456750861528930296551382908779330208409376658936586396002245234730321255930070527069549766930740166923234021291561089204047089712354622457504578779328218640631918119212917390877018592395800733721291879976978379315608044807253065614188390291861412031864223939135300519993533307312087308933003698208987994098785332068484246311358512933263122672627426161001314119618401002799029249720696004982391530563689762198151242835071492372930527807024083728730375340164098114136923744029906169836372247348616511049333578582210633161034626515263131911856810248256625225083105758389963331815880422864856283328120273857567058443087871571328612964880046742716671813126766504094682111327700189878361420489635521060267878687783735379767466146778594479232038541854561450385596843760921846979459684854070187126679399524829019791013998525502396778629933373469321651184138489598218402765527823041978655351866415975925717865346122957384943270709016126167863473267612237795978941371173826908950207826385804998185832984585663859429085023522895185657301688476628500788472359372481368575648811178544294325237205263892433763665407797602638575937242679531916919019808399630306117984845805907432159507644341707293527966039819975748556959678389054920933831016218325994382546367237570224580933096629001991940865507199498464053667933261472649729059940796070294236189404846261099612436862299873330628211378563596279309119147565647899661863667307535506066006092024403266507523189921062415890836987480769566203811672200362550853239754322446158722899340513018897566063081262042016623553426374626627224657410472151336911387659609240552679871752900993768220209955196205811955456903011576135278390829917677602511564719115500525498395332995912441669815722671477411548164923414351208737780322940199014012151135671484506835886640599385324015261730757006557210313085855595892964908407138158197533201188295629013909179378789284404572345934587393439136128057268874560600483931927656251707626425868429125270713307300696291794429500134692626512168042589012526963353652053979364423204639537814898171581180436520951737542730271694871896252913358798155648209042963880385726708368246404389356711019334685444805138282060406907399313719839492106939180115131559955305494224629301439930284927721235911479450105566746772324304511261095559439108433232216832937650285187408276151707716604953201622709388627548185723649145045531750647429824481619757380175080215467684446600989982908802553545361821318931177751306798500520127002628089899055239429941307821345836092061784074181469712651384180817697166018089725255213775090742265413044885817322961478063451347179027285075492378513966673348922560013981228923727319148858554237970969898893021809157521132039816033797373055540035105297460032043048455694096941131738312352689283507010773210163618656547669174444087400783108716660082820200534909420211766458766508125295777648283913609598707567575549333309986966975628967066819259185960583797186977364569374956813482113533698566427533693149128816416217731740094575960772944466129024967032688120942462841252119863350439055261144623709773876092601302537514392425439596013544460964426689862341899070839120841382508186004145456795641628723328029947825005276368254887229655726179340857238119134537198140372385382033955185790206394826122012835084671373369829151828147414607403375109701710683238630122718889659482074367736585588569013192585589708491774572704098776700199988174873379574693884175249965768410333924423786032937126753195231682393629593112552043555787754818039825166411565950965131598511572753758992135759428302037211720162875219838108612043048116544893819788924417570762276294939732058593534948884983947829155401755562767374259170934576856164016573286673669581226448926169360894618289088742314881955473739027056660194895607404869026057344648284000201159952484532479131213139849797663284796192240378448184950023086178269014124567858988628600251307681863637931210378856809040113372047958359489976223032345563423520499639433354977467864411615216289151175811365790794949725687812235330851825138702174851849885206309664193223843093108058056248993172068696812466535823741763300452280247764122986791943612824584765732123521004037628704300345949054818316761695309513353087055303606963592924732688625710002437061503376204818620843000279304410926055946345280502751809228979272970594944323337837115652332076476415749345172805828048499795229201704411255685114743828733155768540644382953347854948806499085351051536265857097751241570280790280584104316940413934567103970537958321502299409243751411254529017678322872140243088045031993142204903593887413973440653806857761297157020786032306738538982117485705534788472879755737233446647005469206035197309102347140538868222789887851613698021174601311100556131715740933352628536818316056028131476514596591427415045965895000200977773522180973063296546845730900323539983947310571558492901215809575309578705241978252790005532184788451661205793913261908941308783076486365715826428393868949786401449910503690718205936713999134872615427321681128224781217668883837641171682695338670277793702812755242224211960457413572257553583241950068928125612709701497384394860766554184597475432480930016909812779451280199274724030246347025349017685185205332118862880757252468234163241095897360744954492669770518038747626985070238967159247774189007097608011794115960066624916137077438100628309373490359473295937695191642436230642194538250857331880731896264464316447562421790857988616573424880446406391041358651775955815158105644053662326790074697379039206010049062068021941544028232429245175487042875134773316244668782861125650270355215363767535303973523936473139222247967575943138552463481445970038510629785976468790389696400208576757251254431269690829669142275708644606358375028421147791989681071256357778809022965892093035260390917290158844661194651892525935375049264211171421732685219963174280016845989458511306276743368331706198637758797347004003285355915644370723582742015632123543456953940959653761836313400111986965917371642495576841645092077555454450284494933917822175684177549235672812567678514753891855219412689865545280174034119061946945182995978217842129344686472264057149960322309805111325915911789314775996071884286896445055580635836798413233577100814032011517859484586357732225067942459518303677944165578387768948796260782780962909307018687738512693329462394709452064064943610901776498397347154054020662834205429935201138850294633826221248817110702793074660991998131728260791852959149665530597738453493952490859764283821351642631140605438744681520559695933288858182314448268493455103190190477635848133721514900286436921596826588099339011208651740345430195339754640512836254997992002677956025367190321586627557350639364559477846904527878174679123818479808228540623075266857353884395890645436453607924786417076028953301862091254417289134036366967566974385958813748411901096538367841091167145388212892893143864825992673762484864295362385764767911410736564661884080017623732844009215707415688049907413805511061468409938341858076119879231942455287487589944629359184023501006746194656475083217903855545537712342366299385714257431481694914204728752835056912740585008467099124406744109503782641439000457158548293614314665554629363941866799363742237184066173406653234494861633218017186616958031171535165043398315340355409786992023164452054134172673759296330794276498440637253492984411251296972842087277651227746913961542910303215234626782543983759113509702201644171639874365501613978251392778484749204368727835765593297670877201995244602070472110814586161796560591813625731698877513084803678090291536422258458642553165487837278891750456439953297224337183606247999850675874928163753834982569521258218486946083433658463412147354126289371512090343639223851909849507482579963018268357558343703625094102099421999117192930734206641620802900709469207731012883488405448551659455350492675739224780662371322708565753482653028372402279211071767982898849095870035959225742894246987267390894004562452445386081669166442157519994437687459671929818220461018943979757514393283266602757741372902307715232076928772399474875586359162717798487468639872172508163727996834256182609587307053328322438719877824663844411695373116697903524211457072927895309628790163637932788867066561125379611309429058370788356816315588229263190377015878939718703666930990602426954604767909752836265188965022200426022570876474705850102159250117601209245059732875280077970337763535437515903158697590936400098281758524647791752129109685183169474835808128196809841100641691787334926762029367102151356806800486572845663466476295372771421395538821318276514012307999070090736391072872423809712715487063103904623940199145387073117605973422720196633350304344529564527096190272830373598957805812528504619377921862958334121919442375573227008558573862036763875034531418031347418255722222392769523830393954112775717915602985821316571244815909361947812181940886341681991018018330804400572959773711930028589048748789607621946190949788558381249398822962973981467848024994166692642221827156858660957086275991616935248466516398078320328646396139255642486535163704065088873266201517998679080998777241182123541368163511879710353652840824930818949045205942823260636254885152985273383500519643244538640313616566766100001294060335258486508827290396519978844882434751820568730974820835656803612998798683837837786488957149249589183033069716669625383488452380896466262407288095599609219652243017832705234079746829051837262176648281294563755722160379352456313802921654360395143672898989937783156490828282483865874537471232368404018891168438291392230571775650690881183483633834652475426629189807437631326356153702561031961274860858390164770689629083448841844448349781016675744276603889361045204852963139272104383229073031458476415327754668764444665866363331392888433780108970978369028385285414104758944201144907217262714939870461150509673794170923402478576735241860306460405562995211769947154216503613267388951252699892303897543276415842679534452532547050419113482341325872646857021730135563519806360727723582884446951480944236376425778570185010378675836498108061280595127248678940383834484126871432837571767841471763113856226685757486160966953667738307112877536883378864444645916463954013644623338016669935414196603904153473575774223574384186710207270670742479632176068640440901332990556232359256353860872291909462812006062791038985049121381548041048896726850118645331381453574959100874776537308068336733278045854007958855249824780751148039601961094258766372100916581689476399125125109085125947896961062837745629948533410533418372381771339245341544726969134364630133517055194683698015665409876758303056854244341260449780358971544386044280550490861351686449458393155148609690874083344723598272328897048626610412560185315116642522043142081088709804781506006567777246284162349826546604917212358667811656368263584060397921369147763166297089825566668576280564476971725934843674975600913999789618603427517625115949396764615349820511478779984437031018955335542445197049476353715086151677167785250643769849795997035073223364019625983904918761985027727974850409335754222092525257918872603967998543719475867596713598677253659443907474481996614955903907563152076017887917041314624682837331382284995067994725751907317009845495860059916183439067861885961499075939720322758326080756678475656844637911113727121809925754647168134245099528265687660289641150889190012534631087567748077346859192810144073320910540229000441426539983012269579207664666879149003359104963028820620045210166242866799259781619102180373134526582911302910118468800474416913485457709105675360894770740299364386950757037143616638134235110058395995982562030172878127969103944957313564386625399922404483206406626583690209201980367381017265145095098930165306372385807355587856690288351975526846272854104564342186452259238758380454859259873976638726230223779423383009654595426795598082426634617638597611161121593700980717074628990886343874337780563425087557009868093807948000886342041969433205193124789272772284107259254144665348952927808914076887447485322628535973556495285200761778791437723642254350955161468565724062148581055687456698321452942576748357495291583461965059908860204589057369369990625861805540444822682336781502598292800334945403918721997802772490070150562485527600180880178409363103268544279110359703016249743059548965105364582213948718851395419093209952528785097375476440959992819244657908407785063155333877274572782179068289880792641918108067284028096457232475878462754388255245264424320126758240997968188951501385992113471250219409140748354866457108772201018375906636839592133013459149357904093602289398156219116345431527366291910191660829066262443636644121656678926571601696163020657007833289260185069691572087015226442526017345681537338624572755495494264644930181011431728540791473775914546175252656610709637085325130770648351689747409017123213415816838609061584962058866353386920373745339229051930284211410441124318596523514791703285530749783167146148600716891666414049307940630539803427279930670046783830993980146187505507217083454916429349812875621956471654003222908032084697227359405221774654600045853369353079826745492600175266495687917835310920060898555954958885167355984745446495225485682763316069609193654500763501520358553892153425658240124422064482713358032336570104340959013322029976478825129880291442669340650034774282823452880646488849844589800545210574708888995475394266103955965344360531084268555976233700773721538671490943540777539227747266492704113623776604273211955891289387832052384613854229773340219639532115025961828366696652777551413120991956367481237217978895220092864123103713316447251761313846227183083052081692587574520418362749602301652835452141698295544187385034471920759943225957045651561166571775722999279409621745592380407294257214515098558596030011200638548509241492539373857406151806028918099735989093707371729950555594263991348701796852498686456174024691807542615260595538613303782173323556829852813240148991918180666424837554181256479572502678974585764841898012945176007685258968405900758046213301733758715304512793763332174940362990068983103266817089821822187789723513834937589090923160214309911899072571148133580402360235449963310577555611380158842441501571667751101914680201573926184690326793136172233423635529042607270964708950732376246574357321625671791084200059119888150531325153873243458646017670701922907473317743491953172519115186925926478151963871065092425934927238060945589494989059436532576954522162318969343779501860697774941252897796129563699859394368899834826782012410896209805458928362528414398751463995104760705023309206912056141046782822808504030087421962238127976658509681903463180138278144836848076175621822160625258602276428865945717006946209965453081296491978622319839910396475628462704342653995109883643426859798447066113778540959609157533032591405145077696627605363495389016442746087920318664502714229306275590927389334955211284961902917565833489797475225255895106278549397947601967447731100244702926241264684254176585242783622616277218663217333925551485698320478928787620481352976419111537149754927499386339532016413989246659232087494268177029703695527722857134554555641380285896502718067263724667802012614750440639770725950305252325831141034403515572420135713952681030361293231833176269197482666639811819167115249838517935952349541647065449757057628696882530803866947817104512022117576810217456163763205413946840847249197492304872858072261704339611792479626734846921688447158873215142212732448967290632351987263099518808589315700626618179847002004420962137078053032144356685243679723797010814995620893405971216843020797321815606962782557209544711323601250594705478289608189579868077742626530451229193466396029727618529814409253509227326856136304144822976396743278617873846732926078168088632858590777591294147256578891929830229360595405934345813122107696081292681308158653503009098383833139978060654192079134524909659828230502545420907836352191430843986623535954105701650723379800354379836221793580090306136115987388177073432044340945089515359363816404584488720224047624744637981911737226605297983939196545254089930091119917057532293381284764348234588092041506600736379483359383204826745792476050298594121217143131376103234584576100782278149166978010973602555982615462067756155079933285471542092261514900847129907153763681033283283074468531638599383153940435748734557117589838570971464454357837457595421174666308467407556166586995267918358453553990323667405308924325736258309157672677441440696138054960222349917474415740578598001348911309308091466624775307174526166290058090906428102231594087201520265870793173636594716380804849153844726061759257908498186287523700294100336141678626813719739563972161391698983441560729713989962416406397311261945734306428144539694118151611682861780713648942641651145131977377954111412839735744596722544131906240498992310157612460421871220183016649954481406584207881184141919704976091041542397473604388898636219404049129162891887715177831146746956595882479612819679959974024385832920820121042945199782389603798221566898101472182431569696075925310108019156181181714616949097156937248268198101082596573921989722586651240745069103934944093435093241108967192744297650772183599046272708278519413563804817558846394951288570363336012231204429115258058333634250842711848288888403256129599846481626705255136260724404759461378191511524158595309714654948911913471837421055981221036026425540883424221856655510994445022472400309564161812742779643220131251535552404817508761049911960048661119148422190399315947729395422768545541530399353629754309194083667570496547177632067992707351950132974274469550894912013734259171383260307810842438670041052753982340613431011683084830849293070246335489671242025288041227961206029785499196605224381027113980690140133006724034942054649814650872192763496120443328523492202031867818808221732938375608933771503590630160340257086119958852787511738648828268987478205383162034026064462738039756599168686783172679572878984130299293253585421492576984969887860125723448354670180332344301367784719816452657625967496319756919109938976902442502194744109516903944855427800533755356150804594898790621366820886194270829146682178655044056320508769574331480656337427087950089366966470549482882713963586565198357240961009324394837724429409657121937291354973520346631503812300065105620155283798367025793033017292753593126868288494662607245655263936897520498158299373754108813320642322803961191422800233021195635773366084665455166929497960072496086545545488801740006729767605107456047353221665383781663123590298685649138231186036769594442422144091898137499870316290179512622682214378260772185458368281590753764535523674227791628970873120867300045743856057614765700244662422183220690278368073738812281847784332902131009070594919453951879718148999889426685762417028633205273398243530397034602146968062815897821199315762005928974750090079436729024324659493080367443394049402743143950815189962309232718304135475876422398093385309177150661677882785238569113684059869280852714233637955907962979264017171189982222745473613997029035744619166077630505405644968745531261274996661437396232525935603692759530054761167951864897579450598941671936411090737196987043101988952750853513901224003232691121001094112438965819332384674614692760960485258489825216289348640085182694912545036386949732175768079766497563987487574010109766215287475732881853555132633999127103896828520276769328532713791865648214336429660191617360243591843689773869230193506112358846626592178024936676696035263546787107843271230277978948784223682624953632845780838851051879903040375392661344896057148876360786468944828135162943881689625284593759012439558832811068842687274189028620690454028608341459165715481555542348085500947280847670852357527182596839782563113623998612340838202273738018961452827155587808555451197976526226820694772724707077140827803604878883856583603095021854195335192446209790078690555944966494898516932346346471610021734297530607250844607765025465120087992292052522177158563308838969684215031480158750688858299841925569253003574987840527291773517021445591299133124572670371404084038611931705182271262796626846142229571868506403132372624949331818785898820790073185479874383501517859407268277772668795467866358458470068417257973268998222335005314529264643421039111851877834022887613004128781424976818567128352460233974867420827083891315969520909661602672069891614126865413867258197881921885481968663959392338100848757570004152405038186248322730279882295324983393381912528537213883520333369881932134295015571790625072461374815892379599180122265418677031803672973450095945336107606707284008929197521996506936900920607712267100505606341037811287868134267117354931861968163172688715111239469687525280144088470555187873918078450837193439270642207810616529963593344176737364689487632656810800534602873462695058045037251243390629517757216171515667194563600419235205838625363911293879881514976981544333225290848316502105837418990587023867841659120703065277442338647463039646059467819368560918136425064645302021187753604812788563111578984316032435252575498753326342866210412887466756124663403389364550008120477396985672231932806109648100824968554187263027175448818971533711072083700827340618720647410211445330201977820612984051924138458916175692484010656818310187012195108743217718148508542585054817741083181313898246881266179870002012029219791384910564311481814695666082999112330212868146471195874966928236183823302206743793052285352476325200991939686413994642775419776000932056378806826299706900987414694949947958847636517790727135082683404177160151184330529730595102358601683690714680845184106135753368066965870208055149457317912226699165832296225634688459274748476040221645405121764788183799500496637550695371585059569928566304353275958921131580302602246618790536797756359541780726257475618927197529324443590322364648550378452961842027890423050582006148272909882607165007635976250592242848845746932689331620585678967196139470289869823181151338416079564165432843294558416325853507890783380303808393179969858761230074119426218218449822926029453915663836278574248711233237428948179210994742540166649050008306893742500919552114649366990310734399978436609369038866639898594637436305047507567594340850158706623549555248265478722110073370652010902140857981234359477971874568739336378349910651784830918682547563735487306672874954732940988408896031031066944799436391761679029371232831920197616069468122020020313087384016139793339101621591668187112274267650064593017260898803435725903066665756569818384389530714493637189013462986826980123367882427434625198381748997551591895230749775241515171858696780904319659104084424300893257770059197537959584747005151554602610381501063085311207937907454047348655690989363006943103264097338524033179023820883895987661788549465266790619171250634414723554223977879516523374331273089805301992271108990929670776978084705782571580376821743643942726046205923476519494862205425457303601385893434392485704338194087645658885930524461560965928136255605521967397549957578308096586689193694182036223149717285782813598987588974107647209436285469489060165714607715717107903872742673725327647582426193992218213108270033166563689254628853777045418145084950770505900865502616290331703282131889231841176297095709587757486337242646942264838003532617883447328639359672841518897219687150916818636247801238859192747466152324441771839199045280816478545234245311483638580835316953511881717135376196231471538728923291918332561196789719628513840615856593867242704561761204886839275404744468917133656743618922706003454707370611052954636725756866786375312356658211392303695812230154836380467781351085942998292594486667105498618143209032422186533704460208288583571795270662988409220479509030442060318807598858487543381606448014060759456664386144198693647171462881059697243084159702380333954803560816250027074536100502341049971486897883789426181885851928920937789529597775768979648473977128985678023006075876370051949017126258751243000045300749464044742141132310144509835649992499312323974277332732919817653003669817953967049377142245814257740225565058951998815691599144416134303675706781958962064386108773731049611527566259943690057414493282414696950105319960687910067199799518322428723549341005780720683603656738279982863972013178740978376971179882743223078247879945449369408158868302429553559813641790684254784974850432958585364083291817564053147797110093156023509440793105006496047881183754242944678508923843500346121932021757879033351181213040183936481898444945496201187456790039548735397773246189213853837076123228901156568860375289146246365317913213465236405474714825182061418125128166468579436333315835705483120269064386491713086828582941245847893582527786439844528879797744044209255280244102886166751704510094259200239555835092670053262324753111628962197098969795932102871522650839571686362198573752142335382505257985875296545910705066175397704681050146265297311807824924635876095107702628708523689356509005438115607720276062004899485080281281597047435259741766920263866175423321855014683190693551729178092345119359914381481381106734495639077572653588505817154695690778960535750887267409905263756586356994988365359384425166841332153378914547140966600939718664749294750909031601598284435747918415741293006073403824294961640727750505254951720112877504878568049542014415900127371692309701768530078047919922829773033031108789732213190778968595072329784134838585057213818663516755895497919758292859749433954536675733000782535676512400247739141039429803408631322890541037206011283182633033217692039147083659860625976919037387901397449424458095824485997138401175835548619290167459739272655426146547381210838103314112226453791591122442101937788926629129964236895235617685006483749250898608591373540307834417932332313687407153344337852982533649160089919980836879108230864204587217526054276943340229322572299249223987858645459980829261525741830675863011803690919760547823973868225297311128992654579250414761055499397677557348132053933599341669576430355207418777342891728158061802316261197303682731067649847273597451601398856173467882967471700107390378024948340280355180341091734659350646522770228834775864771613531688547704611414805151590603866702364081545623173340729385087247767050445292884227915576111063895180147648383766529485499671736807214622368772124869292387929545138982135288703736689050971256520588130768175654207106039613690494305682055130067023802466238076736891756225051369679284030231963757308695127087260619202898275575558613447232780838802126435715516196197220039912239825464862686974190851200807781762767205662041445154022077202308309744560409043638862139612049086498567308250815662772636989728239540381125830900046986859711245358971249323871652216617762638721528874990814624628801131085534301804963055902759611820900082998668243846157391686963985234074410523580222858010951188480907251155222958690387328067382000198879481913241869353749162735183095240680551569267592466435084538483999130403299507435916809232227919737367876966093948002495153439960737262677196863080604456190859508149657750586653797616837926435233426463266159435777647380093691324336612554104549910382916208341392824207180674885651243688191511229320299755682729351636797231760729577237123922882168167396024384707563133559917485046813463753613721311319083322425178261936471964904611076992894136183258546790887337032318592907897001086201435458669741981460021902245353604683868286260329328155569427788728714703640708962422388689301709613660092840594618197970421327298466265584016402361520092343171638475662764230822044562754523846349383513229683969820476824392070241688049912115628998856986031341389304543362197376976749615623200439025167934310689945272146336017339950710708601412285804178152345867694853638366742451420709324308273995190960900499623944046790555895887552752420829624165660622627702496449689242213197460525046799264385372489562942243849242999416950309192471441396434002979905033517364425798849860778686303096679075182489223492646770319484662834811484436096729104823021603291699840486280911066957708595106259226552410626615469355629283574626763955870400839593798138240346822669216473543789514201523090711904230096638012202645932640903628430739601184358803600537239464347633638542630773348970691154411466707267877871844463558477462199759255345538323492556762039208971429129764071951338718460594214519182463814052542906176988521281075771107004831566706978493165308471114208698426520096984644329923474658938193752074467347410606274807648130004693381687350783179353433751596470494045136591705221113551869918708128101745521132315285568842381374286087088754528686651701551053918678198523755649267293282973868740626197149761669026700474971669054456016789174678657500439560005757763600889799135455113409464926229731509348289637220098171331897527222864441535420377525796711596826231868688292060280322411762495640893887322352355066788384149278019999993387569493827029063238547923777065978127446183428414133765251340090362938111200192607382060520419303465834163247202140998876911397681350854997169727903779276148268794167846862941322863455290660342106389049763101337571364019866805059484769132839924339104079452629866395186286804872747845008800424519887704230281751493386511504819159144983803389076748524893690279080502322265977446593223470912359839893740602587011492521626496456018346792547480924761430050022055817586415804144041100924997658365910721131428477993379877416777887329428634379897313044655257387405618618784563517641736328287310797064895363373479052349058502611471193037731559452180118440603939248558602090063371262559153945986887215933700976262589845640970548536893519503212379883007754746143589477047544671085603305243708752546913777949215189897706819754789361624424094257060438797116642787996316627430129698766081531253256290445151654958215908783164731673925266707247831738890791621390951344491346181006386477246784356419025025831098228204685480435827546385641139458968753104807375159751370372608685934439041847675421381037648849016795204831467349618328635478082032275761487094020739692677135690898276827832882181504437262163415863056075570933644985724062147718593425522675439779905345768843718732534182380466455162822973090606548991675352598849292315970797758231764322755960267343362756789482948633401015678260752183291033469822526355791558305080669270268695585781971605094256348238160179842267767261787887618030518963773656116918720181675833113292015072046313182598403746517513153484837581101924801987374035846836843453217354190709952296066093434119529054175520952430121430928841172160160856024567584392687282518409355922668483553797214524422750533695700720988139618085495304731898970613712038108350257847324259774484754253478687838582682988282884976481029456456450236297698458342727793977839682406033721924214821675136895701413089251619942749872830144183719678144634958559697253052392425870468573460367629957177063454973331841271774834713857181398680367419702277261657342207423962342712718206169245926411243454295288599805231217636521742920196933482651821217844209849591343329546861338599465759294876084275784680613385674072082220217890917276908380329002907830502092915952953462031587200654814571640051193151144877752206514530113904887294387859740798628187896703775551134127417500686871405961256594005274974599800837537792965666804176740622379736768361724020703039840910539061990737855078126396140105695332068422386473050198156308291785394159924620488687265580653865278205302673866463687842470003043478016087341849521722526228350943587792212337290623480051655542044324625593478076577348600910667356604146901777924163408541560268121350256021764764741585313271862056148063752587850316515120679235266715971296845089684481262250174556695149238097838753201010107409877326437797329173853840875746407892576768124964826920821465970865597336319451608557341328219499290795343710351443641669390883610018457163025073965982256654812723644842999677204530683509929523362455028273100246053518691934687369683963564638127260079727577732825635945887831296789442913866158308385119303786104180878348574074831795322913220618137656343320238639001533817606637185700601830587050470275094829290156181307052868239047421134786577935981005831148209259401884405598159005805026513579178863460523399112971559319201534481348687174769791938452665985236676097096944079838983779686486832952175245788341459322240866867833327745920647522281828455088456718830415393974367300119377469156570010498038032147051798599741372244590132735040033879387461914664759863607280017606490708149243556282093589336409869281570018761390999222579516672116712778005404503918034825200759573601267194279009487453979014917303278013912452544240624054103890901188328314055103083645873233422692251442640313547842493344763036887421829180885029348687594682858463862797026362838870192929682087488213691285935167816292795656919947380795451144010926026921631449703097058160267589591192064839527000659635003913889365519978129747490460573760630541823142530475238382215365667002746646444445511484882932236834887840123080200991979135808834929347525004757342313870950530155471383425056029124035070029319320165135254759318385519627360053820300736736461542524201745574952272266374086658055338915958968490599258601750088645925495015271947679728411566492899020953487106821731654015496692025729467326657883800453148676067829322500902241573426713285491228250838232099673904470021575604968633103120528048887283430599335084774390787512607308047032673630239473826386731115039565010279822804241438479359311267913071173582171486443118036285932102021900412881166611051896261062379497644549857312670232373111008575559340012079762249800014398093237820234535763697790690373249646357011070284707637463876894006180851149159349079605858709056537087820284871186699336088928924177556311277952048291725090170220177221423658690270978500770460031601281136450953613047611662930806146212969491297307461815813644999970168721848911719499285862001899849204468969776519669666154465261360186582026331768527601678927592455111070329624244813109929694124800186112535072181108521924553673458694196358751870207929471031096115989307089732305022093164585152021243808684751203416418622749223532503549964183678024303047448371772022477526673009381198744442483555499301216042684969314973546320264819133111193415405402212830322132166020263265180004689706643261080062341288758111676118699985463934931745099001885570514277779920108820923006597818994524205126181613247836093912349904624441753949594759609691997890703226486467740963273201727953061216002478493409105450550600283293923045122986567414211619256130052807375482329097087512410153158183534266556681035724814005187287043513533650047495423534005179761621318358699415135559853128517439326195913341489256022035748042795846015097852445521748420661303469862364327734137101688068262951224033976641303210643180309991110334351557749965136459920182513884422027684847843430995676016762355466669459541258532887702093158298097674813269476263174642273169180295286413286961257522034722018275313402903176491371635095456011787410905165630791128238012301200829049503819855729130832925525707712883198353043727102047438670715026201792695933185261550628290647823479718285867653418707104155926557308478405198441635480529462577692561676088718307382829446116328463379098241656743438571348238307912741065154362911973258490516063962910162908879716935669950963407786089488724281205014089087798654034887621533943244902733723795990601545125341007882004264926473656350878499840516256603785069320743242606984101373031293231591966053608997038522843050107312363182967006853674602187610749166263957376537095827312657571551211946481889091848554087400582919493342819672773844055577969057682047787690007856373471379750050210109525532886941934379280244612637280880890358129937918133973405761130202246120309205375968061262160946965130389796499995539378800589862370894742920988327230084301887404970813785274234830071074277520674364394908215097855879147789238461688739505051585904659749501021381970211385493837973592971507818197457927904992071972729251981761121532455634286066825467252690007459601252075619643066270797222912638936367127800545784681585316306342541559979785290706245887753726276472065538683253281963658193728980099999834202580008420151470169793146197506919466271735042980708261537296392580723561343980642072122895955161318712537455561915117520218403794244167750813087376224583138649148703027361474341932410835560551735381791132378465434034580006247194060115907237573276427182889660348693907641429566997218476564362497403558494346282996903450049461976372128683197370657126090536006392495949371100360719181522214645601323079014747665214629920874195751357843219207007578141787739705555736115366801767658643733614437139809325692833878557921574538883498598376034436769005455512562302917812312837239960089149440211800256410800367901827556523530368469554184098671369827112813227792673845221605079862446021139211127265319311096784873361183905035589964132011758656411563227552758743124130683791633000506706300471914245130145809281250637282423923168432212009431753191107748158299356578223506234419794777634101211139125695092719475100996539572095414121968753136544782647073625963377677992869369930257015817110983067473637613776616679070143092610541148723263350617544710082668718788616073582262102438074092288151687635996604477257371644700545579259267005100271873329002084054903127435823512048405494247161816831324560675585233862696661508695777451595997338465437725859054965166165129806604933525440755258895902458629539333663086230286334348152049107171446213171616048855984363819875024645120410704461262142633562890987794422127280057681532349895693436412959157010780301983642456554755024383225421547877395541399846588903583661065964741757154899867417434031369616654573233339447052659074486953360080309949506575752935701460870441316818727474087304375558798964337443790977490363819624295070364522884217166324440474703434904730336853587842991424503826927249256371067844696316525383699156189967280632915116262565223461568629195840082725066911776634021604553479629063739836362047553009186749639311822277831289407313208039084006553638809781163900299138794770747980990771228915306550898993306546765210796796866055873884087135151818399623567429737184566255523170302156037863369085825782538549658347304783068717593888381706554161085551034297071733984523756127208201230526323313325173828195610844989179738467355044738677175504273348315752438716449642896343598193286053199942662293744583823612681231902447639719362811965475030152588587637832001648303166218180583314140943185645148654251636486849378849292548855220400620428698032108760314107172244968323426083826606350088787046645837659626753059577179991693752391389305532582778738308283390888203649721265871357574385465830021735274834482605584715828635680607833107222706640174072957125133161072472756549056879159805526442794844103069837691813686457509988967316745787286781403502034805040307634043393899262483954089470468785511178411416308261436681370317066920976066392979467083793353131153991089197836348872331098429905852230837002294797757693060020907929016172048949225113520672064792022751688245536780657022124827894741855956629798313911294020749375627988879858809487666327363316020788700294381130675499053682483288791827759283900802143612582956476522152545196728358579123623267532226051971413304719803159006949194791002250591384052668523266163578925039849950238918021045049759137203099521861259208547667185734306847017835647449685115086696256413381793996559110779197098025678806271665292381266046088781207143285957429940245587207104663876743276703690988021713728672672284554580687840981808773064800946067288268329224744529078310295533507254161843550581842941135255806799326344188856230467542980260103550346774153801893335526000674165723968836078276926250646195991799244162493454704572039978767965953700982813114418839396215187863292991297266798301227575552442690701021042046346247318412141347999121062816395780230547256735539219332400784227499576263337487284216150346869663125116601962335363395707576553152510262572221492394477769792401697647963627077823551953190730110753915836895801339552741387217875800654077125628298522663105516163923903002317119171236669810107787120881400290358571894702152731343515982611083879439381688965681009812110121137922970048579620448859323847140124142668022750377481541469187440303369314176567139345900411562369679018440577790125124185739729926844463761215622148251057039763300636049328288802741793735558910098096330130259850142198398868646354450863861633416544879330355892318687424561314526206456352685423237882972629331230982664957475245280155009634552639209955902000945166956320908060331266042379495600649505357754960858206891806366451472263484722974208060084921366497532666548829739903991375180057019136516096278782132405905000462778673713634624644636543131372022776646620245017787867080283261525353679445027440614107666107327100633323845816291193415238047491340583542765771487491515337452017167665520018436528591470604820510254293799298510215577999051578713953855919743295475812128250474296471270357523288014655396250039546784930061428117648607340179643256541422034942906594177757027025111735287702779867508902217133841451981949646451723020975489207897538177843487823154916770637045237904022166949954140837735140092405598356110681432704122196652931645229674424448561507855519700915856108018071791116206018693650172309516786740970871821700424727643038203142427643001332762527492603276282815033519655745570709282053407193849353086588441369323925347506922976282826970500128283371162298569092812460562782426090738631434942557443468571112193961430726795145193243526127261779597945668414638271422105700964191038092006052264465615540374885599728355776780305956335521118889649647956891582334796885948813774648295924608004985742567813519138018504032202649581409148204180157687088760653746406843443728587189317833629263463386894858119894464612845920435565279144262619630958007842837372204966802477300679572467216898244117415966470012593906344328213109541529843226394378190667526389057764908715147185118845876780525102732682471458619553920500683732162910366279435957987123292242330658313729484947761821943836568210604522283685281477397272332830313270899766870580330497580536157790478927516077996752797503958513812515526421450360875664259581904531464799971831167941575704567691406670819074764372607486189802006538338884878147709674638201640515562681970424212578251405548861662200132686111784874912404020292245465323567302551623044959894292837492743648376348941789410680819652605469151465442698608060281159786085346648629803403611642292763224110053403376798652082836366237762061604200038342354135872066645796009097850165801654768443078905322855060442730595248238516987219097622160239978542668192756739600549033325902081618975282578528257721211559544371317402295885827473209236959534644603051287234000763802623922818921200316407917409843506395672922777531018655040051150373410005363037060241067541483724595158528978739806025376478494753476059717283986473962326143215345274573395350288612350183194974558844988548516426738188639048669586900027033240161290186448234033942703969059403423273614626073106028710808124904819923438280417758974304743512796161149566533564455896489521820794812076857368690012247452700547014034144258513066026531489126720234978549428325081475451769896498938118278255658973903754966779753410716365721741558627555409914346027842328188556009789651605662900207017559890550351619679874561217957593882839955975719810421232284683064782258579713066742916783732354265481775659519975589739110269623113518969531836315442754862396997091912236353880649556426079283118141963246297229509359795508935204512323655948730864757889274638904570217204388390100416224392869198985922287853476994862037114960054235010806277303590856611178817324743789668949840733187352009265229488758254985109455998562155078633097976411408155520110222976900058900928679161269013230699682018434633995992820889372758333244552755466921053742223562672056682932540935992981928868729643276754128108220158805863190477263790307150855775512238064705495850914874846088923258456145114521345258708061785653465545152456226195119328143020628929831119887904004796751298403199580190476969525913048861505702227966161786711595552381471808498099783243412913592515450704148621063926048619794813195916918617632815405944342917248627225935130066749994343503384711532506934996050986328156573638504771810629637206122554211626209455563134627740913336078254685868124297812638839825104760698606839473304314489397942437265583828304034044965506125952871571130629218448917154078219536734957518560892817363034166064025332149349396215411660339296611171386725600938177390191937303011712643250801514342531870049686843061835645570289656766055275021813058408019453453147619036435097349077630166984465589686349258532206321811797866300194636315015313018731256954315468041751631888445030335692996327618536877679031367331238484068822391175197140085648590960437105496873640667538025928644642051236330135149459406354595867782004484203788278335142833686609320178082010228064003951437091998961609608878168832527813704793744255926969477547047072851388326624594404787595750848033070299000323430086410887852940885022950248245894462139364260135003846935705249791882467884911789045673294839467282490188572973088358063649523603776661770252021264668866148890048812308909232475011639258111745004293150847754630138023268641176373472281477962418125310017240183788010822824584433419745686596048920912299986695772158536088719782976393236604624539496626724185725289651389051305868890944590373284864697185298349821328831448492810005442478547146623291182710622062403282856048795930924588017443638921078672707601541225228748947314558654534427094761586333647984794175737984174164965438412882074601218314852707973448156187057817276200279806409261261551921632646841418355866158649704496609232425804830818445153101996711259791930451409559799125361751521197931781291081252982790428219125331469591302727670296805549008221329935104258118777515669567121480092719994979112819802606378338008287880154401911213127208147509017544043045670367637742232267961577642070767273525378296948747674772118268886909657661273804087316480264367463613318048849414021763917445407396813597503419969144360297352212354548467712632752269333477253325015982512193961159172679706374518379854731263184235101309256739200864471641009164352910245804997858020485877318138333127588694761542297429319732337601878447623219300679418684484058729369804386747584178941349186017050280850870942595649926728349905987159829886230555990549016475064988836695809795386362848000380547800005865432446444321534415823334517164490569307789934471729440115977825731521805122459004415441044885358770449052702679544252110907996242820350064846810868280526529310026485707459681524261575039408977132046216280720620656038133511882998316825838764884119439108019826028248969586145990579112621901407216354017783328828585806338310221062333780588924401417737433003046655211121101986548913917429591260132581146171948227147348327557386529967224993809422982568730887794588988722790765306024894451826291613103086790605802881097909788080333305305554836848967909925162726873761824640052057032576259671586493702213734167967913985154197656332675458896657988472992088907516165483296013218329267466676270340334374162636276991575341085604443621710849808082738175934928788139635041283546022318071495739675860470417168464704063287581726814861460121125546225353873392327061427386364835241999118468035412175831075569294521667014083552243962368700630589904787512252812220831653246328894561793647418169418528786380611833574821489465582770398407877317063243605403449609546564839429868024961909183601982154507683865156651217740641690363976052181697780803197897764004582651394778890504892201152296873255712617301259884294219283828453984383534389576891712763455210733874010055756020344215246477188223506541737216249338955494951616201007943656956166463307804445872734704963946145620944463978440471934589677059237259183013186292389198401324827295510890258425480154499153785142654264237267570684072868858441480695506817132874362055261461757643982269515820496556624963368669400016704707954808652790920194822303036808687835008190232766803797683651653797408867872212431831467845695624493453809360467800311505293882366304361483067173230779284930969745359184612263986445053006830982618335140076594250788942179721328977139629230632163774024163756573069201497152060020818708433157260833497864586774767749861677075464969428465821454555744585081009091485169101833911575840826406993226527757858764901148305549393672675834441437563998158196551716580142722247829586799195608028871674121462367835462504226774517598183434393201962119520296176176345815010403475240550840677697922927793087127279337257230703733701289300405868652140089187914021937987368213462710723554256738027033886761858465435760024389473860971765733876424083138296270898170158254473247650441282812828484870053681813774025020047569507081555549824867712391553502456783201245774780646294101746422099883028230171962226351051840251051934444452983612501765645230463682590791853820748855054478065834571495778574450123952311786228432350887894365877948452128411910093229578897800953587408944472708885396662707067345508577737494211811344417077959446735275731984222849768598252242452018275755840686769839917031570707040627616080169337219757348478805536733685432942816483945343496128460738529410559351032166330726153474508972358714338479217349788288852031324998464039801170101995620586674269532450938036044690040672237519778268867923207533128789625735148066847141395440070666688848005638086745768574770565080252719137072185444171166483178827337417810033584591263865398918919773791757312122214404145860258270558711010203033778259906600780959750826636837983643974104298840828239580148447538633628033350725362380645493528857600847870170164766109427045354078472947122587742308956261371214258499116292773315456092164221416655055777536203234121508339308500251472378877678856804631418858695861226270480223819364844639435993536772060946725386839101725072948489906787739691125283010361067146683087187288547253490480711415573365631611983997987534326058852706272477828922254915167710324812306677214662628271581615720220756623269589903346410831177231523230215489960922568917490601808113804423961299930920360110313630380352835191974102912138676000869505315507055075188238653507908404597829787673439839626559451290045525766785217181732504077831033521855254915741579784468971714390250725856758225785201264673318625890667439208871314261265789187654278219076686475618439672085456581096348214662675554334339622696001771356269491912463576008683781661677400925727335004336514469607214686687712202490316371770473802497960773426944272311611811949068284116545559420225003049588915583044818222710858453525518427153970786911467357552541681353081844362952789036027191407486903963284663413061849711691111349436260684179196720092861173571916188710992805602714520954852271808666532797551550961469447101440491389714383156953786931696377323949766662208074775732228290735675744271862887439631286389693883753819108852096175881593841092818270993584558079891174970657953902032687633598918397699726312563428134983963845598809131686480350762360183045915432049780713912832743590618308598741160716255693788239442710156847352850374595664369814341680980852913395397114420403955135360440401939401433547598240655554578592360182962839513840153723867272782538372109878819517181551120468074200818886403790214984720422596310319809066632938468094090180270864271243161834309475040997766385394593680722670814255108818919411375510644095546519946903513258240164288474715133191583060332511892196399247471812001161805616329399645551515750993223016686081265182909409998961771767153911719210869335481629412741418497941894271710541308364937085677384759632092583334402175527038923349401609338783337597067341193618854765432766973805531490190297679084588455520758488824502066590259866079426975065644831608826036513448946817071852771774825585037900911237410929573102690474175290621901273973411856076317882967452909301472221139411757372602576070912875840503256459615566438073375290815534110029205804807127415254290903644990858528475924089885542239493136567607819405501072860403662977693756337258652650544790156585849363192990872483388879799260791896241489957628514129946472250211164987671720748194947946872538294717412914483047417891312246869817001365064464183687829396143364377737212395834890036688041908014212142129997030491281056729020932473225852357978344939249959863669343016528218855934216934076444461877528923068294598963386407134815538913568376140031943563539849779482314469184574917839273139047055734186856147782928327295957567690301729351546012912679141057024900741284342644521423911153521404383448237931636103358693054072217853825535205081476409342874307477390841895676353042118722126475195727349423504069221592920758016561084089155701978784846702331097509825053537320917359498778821577180691309211374491494005843194096959423615247837793545261922284014947107496517663973077195304910201713614211734258197093159029222700928075988357336172321469338227553391200132487127375658404834456959920752891953163062475913629179071940593376250965672740049188861141567516522187097212717689510693936139822925950682150030654819336444626360921817780133518583890849352193677496457258292650418535448145547295644012647109863808112962438609764668803603652044012708071097285424492593870883126033917852381212200618128348635856663872288068104724251066960906124488376252540895146437707435311712568712543582400450954804498205528732205117675280845252856772068730527970986070524862732083825465416422285286034020429269205276240290499192140741198802390593877101654910565748399842871784572298252792664726085721405770056774818931386334212863751052111891529719559964073449976486765883459323118339453773033307628993402815999232348933688807554130778724133826400865190365791191633350725752625537855068658137652738856859215208016664356898359963509070109384871208114464638539815171625993238560573896511600289628644231724763104491390313449483595145217240916807230270552117482568870203052235213301778415086579063177728431358277619821355061888025102720060764716155056679997281978713596212478789613465372852153350870709206488013447674224317485811022456898179881817956770995530201573802908804108871981501025085870308186552485670387309579096280733310633950963699051537991797482590652628830775975950341218552854555092385677190108520386225038584832586230276855587743895628296345041898082039016427646082468451182270894684207613558167778756949893977210647202446470309073481318273410616187783798777651872724176279909680542860034779074617522796461329645395709523354326575656056639205906876325118062807979011530285955372854089933434045234654782348794211839223850150540952972872123662174908854144631949173712182405644431813506562812529777202627266046530092601569311671839021623959289717705021497784263552372786143450910804292202041037945884142644968235158977364521355556254433700726315964457865063270087609173471350781117745124122680205740312388854566481486900008327548159018580147944010996593121597441109591237103457978798435887032062516693134885889631545874592559490594813199415762341803942311480703723361487311123560337626234427375244552672291594779077758386399013195294636248545730632991954872977796905903801458721892156439560843394868828428644683725902980959821550886644791015260277852915015739172436735981164492859829750012635977872535863945141496851798472021532783812681858145384838377719816571876832070285660553698563980017842875797836068024244813966425434260179935131428860905560301428907849212447725736159196708409540146077561176918273372274806069995317514959633856688777135310552390527168358705987302926422207080401322685307625317072322934603561039063898934276211303322262827821696437864429918417841282165434885939493385703309441469935645018468435342341838365908033294361451811416409498917076704699326457108657123658227948720669500047595868999202693290882553441779414648391431421330810821764693463182670791873021499397007652921329183401284032447690185291635108324918562533255667497832629505892008233058455896552905997482590707290538381111717167400124141364012794413610965815193034874294366959865198000273059962198558121154384686273184040999097404426358700934064828219190163580683269858730305322285748819493659423802509001067164897183592742894053519524969784426719499154293289573593671570949488570332372067534747344985770378210595766184428242508665983165414781082116098131707457143231962746491995674795676537515050477190072265458286661789332748131265425506158150930392533413544276014710404294745735220505163642684351643146598496529789699662111223398567446645527185933448341812284947311414564075860234455849306696992939592210037123906060539747418478899822229089528235890345893371703028345210602895913942967095336413377436811775522867631886829132290119518676847759708904193476253891479357811763479768071398756034996546609669791600416703965159107660703290904438412134352711489954220252697431762595553414448329402388154740223550890416392076715310812629379271156917556712564137994077179368497011317534630828941888855160011557612851508504505795690760772887722809374819171101539039781355937300027334666992288448749634973953171687686133809311188525731695262358391693393868880234030099628560072347278465509071386214688060498421011946761828299134387444832849149829755570856681059707825561168400411784548140002381986647138850395356493651331933019598014863440877082494764441822703604518790429813333052359161711497513480486160846465646256931222340447887960947639709114195872365689733382319104696885357568389985785132098506650938729742411693778255168233270950879510470989275804687346064113652713685813368830890656101712977531938663915138384663296504308212679400109759924883507090140891754514711202851158087386545165135614067860590294964592229809310106694899072716066406495986680178126221568433945849033520356662179017641534797520063798635576878797501621790564552444507245507380416669345242658281105965088435854805421750507298718943451821945963464905699232463427900800453640052881103919649878183370327637378643795966398318576118981163257139791639244687352790553342833084492611047679256965279352523356660870177179569608794969649976000994576360717697864638201031784139462598603070003041979190406267482638334000850029509456885686382288827391967901793937409196328776503638628690699941283913367362690353930093654396535910344913839978311098034233053133995446169601638965349246841395585244775315915395310135629132389267393709195350403336812155128778168462768477141349277877828758553982010629102486255946352589846737481495308219526982389432263525878461538648643417401298564512039284001556888497731615415541160570436515213452823968794897533280654978243902397180679499885642653075933179450874277251223124484962268357635312879145252677258661873538713108595123622890603899639106625216507579392488497362905067606298144510868008502523069410364689823907506046206647462180361269859115813691826613361979878777112075704145628354665901435123344886835356658185020368310281694926121787860499533320699124271932185554490377042230051105119194042072999285047871182227225543373758094969615732031396973604418648432583018322552980357616128221105064733232157541846914473053902846605766703365665968715159952052541894208828855219177292918096246247159517059102872738715077959149639614928225690812027443556629826986733629337631620564873460876684138257577790609417931513727663917937392038653341230413636272850925752664079240391853591390958740734398643521611502750436821015725256501052672590683685613381157020616779864325411012038135192109606378862772698225121089045457607152527427500761180496016140819158100081647207080095162993991790366660686855417759764837912689796317567827552544257243211096910302892037940996710100838688871355501520398246684081985245581643397779394761093523959543158029692145649370402365178857406550822006236787447783730487696891384503550561609687087216307930108948426945959258572159675064073389517606351589301174183458560444584352162227349927516470649649541443008816203461743883645509900215611869341806563705226078946886009700529857857086866291484561080446175884855208490462943283568812429225771362294240725542506408180350358136056621138134008547704369722445666309644910237556065053363293547693270873686743220433239205895874046587447797803680313183654736486321828956479056882870070152239862640838318417459164848861235625402247666565550731783722188129119030604564074076539927397301998947562905609267520871788530412881146985758229493222390260595082784253448714798186951441384821083101711889014500885472704755106454269777690531752389666722088526061059877914224720697175465862592373151856839431188739779113591508769495921032174768427905582998245372108001233630249586536646528995282459493452557321008799256981733959536176474624890360904056954574673844789523622021664468313193554604069459328464311333949691194870233971623918691665811601258757004528506158017767191519312978610617663980122460719344528414446781391388863684556977145512732174123748644639716246590567825231708325572961127787561270468894099390008211503045053278149304242639873626050976289135548734280233446688114709562270594387698676998227649204994144117590467251977440568566898723798560758582397130497545430658221329222003372447819685516530444279659628214890188536168589361850205040711649318009436583794504575343994298326711962497448951893107813649013455022144692678129878299664009261162112409094965007093042569067785107352383721968494783941268251181496287836050447569115856963686494094596902602810363881019403600307873311778798129023109908313591058088966304598113100909389903893919248109140969740675071683118105493622473335974748399060073856438912451215312291001526531938224142775236563444730204388780377815866311382276851703968364052401832698900842469240571567771475889682639222460175163897045955973076569655046794873173735338845744669404687264627114797373427018059098938210502815925909225012350020562874740273667074546590402854679653813055261324419499251870788560201729096873836291794435166108122903020549366094376440384580273826001551535620604832369752458568305452497301498274272489685090117387965563214494110186913314565690080618306027998252115418313697686671139434142345883804050713856202054644422844073783982649163394489084120598042032921206779900347913116219659629299326837705528092543424028669160648316485638805574228896336141439131994738926669089115465700414901401059294213914839500244994211246739822702531162549475413824584023949297337433863150172975750287531546522562338072422275282689511434209555898930836361249380957679542464475428487622330408627550045866364425813923812156352156802667913334101375389661502639291457556767437067982900138258713088073463067344796539012780546009799073930928552083453051521082478790712799231264363226483193939815047227633581888859309334823169134222831468030547521619276226704612690156958723743561965200310679030559698713807287404428254454003838113662660699898442559163004761528024898261500923394327311869182022880801868586086027262463140112586784624336664042291583931544251209962778074806737356398821910927277585448465334112092543057512253965775973202145364440702657766189761291347962938099384961317364973313961055139104673065022612154023375869177782359674304561951921265151621397761756034252878642477638195816238423600639687928255259253960331678879880024412365639288786065858419904787847056224008441031488774698656682767046940145767050132045433501844909887571026016745419875901995292897502072466944459414175622210578711608176977211873442717910293047334966486088072680793823306989963820108074024724459358481877698510122247582398982820897561229596396101350530676302995129843497452617540375974034238211790242366249082497611545713797290242871085208539421215674396638152095370053095531004367636480226914762205787444979440159628220757050391315558916448588934374533589273906238878902541264062249767956061547307939731789918778695680860894922420014981550492788704072129913386230319831652659166089413908350784106191950318699180555439561679061403757861226310620087991474114818845802330445167136428194049940862554274854032562070461399971534277600090663136899796040524488828149796128810923870129043536485316535358056536496451032113004133946693818760855132852463958456208122876275372845276869845205634729037049110751964568900687053613097964316600278423946322382407621808589144074915084417022865664531966450206030376344230240454995532279568885987458030175029975139355403452674096387390734839303873005290893556244008658589042416152269291174688294410885567451175596271298491996385732219047638268513998508128085926603935322450245594691186382546017560643436567120155969750822994730894461499653590663331426023151295206608916365567046938078041553828627023304066851202109968074670379682693741735355778104117106141616967804560418680975596335459040110368048048148595626701701378914734333482919070328724376712639486812422076072454991445947996651528590499547696437534246988862407235423278163706002473684932692468623867008898102366151777406004861897115891052395484386690071312395434155171237126912132012743716185000495653760771386980638222649620889817145855656483215282067939883997038679954828488250284722174280300076262122414211799327640450091981440724400775617176815826636608868754428470047128624267274209380311041250836491170072123709087678282345797960920116377051526538998899808570393641143897196755888956270759501851043882525674966536941251164552951724174084618116194171897477535163041644413630183840299613583043583909624878579094685321153672357281750768332294163689812882371032324328813600681878520841848190852137157197924086313695610833329960238628115811811323028679581113923141844780232217870046652407454271395099281226180841827098581769823582159272409115981032435239376349824615117687382808316002109970947377215328462101530917076109334713472536142583634923203688295858043616628103014962791513500528324252266045097942281866565734921504557575973127518486233033309828381006641080864061924978347488836480946617457617289969661476010333892682176334338650404313873844623454200584176179449164832990358154486268359279004088377752809159961605357391192929510497314298448888156075591846350934368771776228508149542144800602525881670197002119017748561308478053323373034703842922162451786175612668177420213692898158104118530792560696315726645050407831874897301897889521767325670737451165413880937803800278892535185286871389876946221653440725137487286123175446915443394766467969111072957750492793205403189133703764668928435866113063950371766441084462652886711418471783697128311256785029734777785034808629796285252052133735891583267397424335610247035969326965556650131560602047997556765733745858056453249091539883194691781986846651086803301174800466807579552591803000757363500939760592498561127504642875133175838435290346434906908449176832023088648191574874901396956488157485259172628326803946464236922653854817353227847437438696430919108363893124017618999782927317817362962606358412128746458428296647493753495974800598648671226837044000309894502900444649854991633759824344755761921195715716995982923052881520697466272763059720650315538994181842263690296939767705025205255901655702598806932492406769396849647857341907923696635877517202853518417492949133815529853521950441792616790365900539887164667562641863946773062685612880256010224092054050138435176550475003703321288500500115321733454608953826446013336908177198239954290298365709682138790899406774193127423424777456165766061441710606801244517285136781328921589710644111427512430207138588580034970964291345837762097435179476599423437870419132699841698044131724973262465036312219246617383630322017032180230416918510904114085574573582371281277011497378406154568373779149415862033657228884332907598197708709192045407384275639023480952685378326204291979038964733960173656418864425792669148542805095193661498791997067507126315940241318069079085322739083596630129930422458788751877570697487811249472040192089246943181914355726862558286632214936957603575610125785080466566917758361844800639285364783939426266859226097628605398539279029214713281491685177620835881136391361298606166677302376599371348675736703502602301157923514523560786164157645127033027841031113391333380358895331616281506807688011397167250833200564481729183694002786805969385679505221456425830556023944852142505689542820231123880791695889907983183819271838839173614981779061787026256393184553393222623135850961264726798411590077533676263898485831395246377460036857924806911856200528986957777091091796003401134880347408858053585117358714403988577237743828818308722832018256897619086968433733814746714861060360105167003596050281035679450793494696555369308170366080840082525588657513837076035789598952616044128854414373298036060417423416215252325431825961915345450599314920183058321280687849569023658275960220357732636742174567552403154290466676070718328153883228754757134147381898060918297172376231481066234585080881951780474027302531198801652216962239293562758973300712059320631322707268056676974494469801228792246004144984431126677234524936647505502273073213861364211944425739219891750039586406193525866126716557378697545952121243327869427768477209245597001268710974831576088552654852063210734258302421721209216733914059957365482823246702262396851983818350575198418162533680848461220046515455789871589668275204396075192748133416633931218299952058510377333786779429425622215280198578918608658429231396888259219359681058708879728575895549821117546970482663998230554605249741507458074094164419190754105776190350768918631374585428380937205713799136537547045403196433497277197818835820403485373495704999552393363487934986607236639475225670762282449658122707130286579879295105378975691037770562729757943948657647003096182577323263282483663597722301975454543780219599211168051578651415081853698848981235523625626645197912385046376500326307613921219268396409629097724358935111823480524779934875547604650241947744741418378919918488139267174247234717457816215395915541902346256449515516087509424200288086199851356550021543845288816189086757507788021650767957003292875076203815952874760175192845951303312361997130280898516243550082339514737176240964291206241166629413186916840038835939414874031227305569865615593517445916321541802776618719249270861183276007541132441234725746030389484775843799256084124657135228374938191255246062667398268962251847764521084175869253298088916282597227236445074012794243614784628529134357915855655077804119242981382980782445939842082226259125909409333797530358687571054378554564410384073162104650387725056686353879282077961823337135159350714296034543915148396083843138454462319761057003461363949129370433821996936279620920729346030189726530242211810225783777806091281821294474340524824372092946789599228422410590263074102417443984643487198730795310290674592524369333489795175455371196878058177823098888044832373472109443219491407568407206390139860864831840431709245074389502914132931981806537259254962642376329124968379094976937547328906283814762032380706688842005981390586513420347997027188235132611317540541017922465264868028034849861186470485353734538549538672509519749671784693009886532590122510037276805727721145846781701533126774971780358184016667764393210173700695606823250697144019789374152476654469289249643908095085036152745321429097898323955017096856492002779704592626060808659170095685991770657368053759300143294825862749380765780830106757442216285197623114949918425649635024631705721435934299616444029715885633217536165762303451739367261452878649126163013717882668444098152655641661100715197092146259884824729513083250781359347944609415018761412234747392950429842415964018595416256665450207987538348670474798033724419356676944721410751468972343412618561748570746189670977590497023532037417850076699036750581825000403294035307687201595365997286100941017486794240373989612942358987787361737996526709082158437476496300067054369229120563943150585854013341091170248642647913146445597988386739945104748037419268589751795462551025865822400045808146364826596914502663834761776088677758866129054968516915854269093343036212500661607095974458464689676952032420953037115294827688485330922348548044175911114414614653770025518109552600644566723581986146498089265665778738070334120303861888279535680951360972528830386237015600869219307515469988188140545179974691531479157451916047267430661556604994355412770152644999627483880835469422156923734251962993121018345008939376719210776757901253424933806450940216758891575715548289341842726446762858923592300412224926279073330916486072837688436866037866429341529591289951164654314041689726870246947163675442856343873234492117595554240862654218377936321791516390935195260372358363210468487709872380498820864440123028106611655333165419189593164519772680352696353986322162545659997036092673103889911675851075235719715096127002462648147843220864877557965249085860443209925795554524589217713488345103416157334264338916984607421048771770310921985945654162481461568736020244714390180209161107342087506110805733112332998753307799123439886739241781772106016771654143646025362798625109303654032942830427426785009582380949259604249325430729967740099882670464103002856820431445224995620150094016837504082875432117985947003283016671163279205126967633385702904245662908413126115815936221306917128813004223155641116032329223397173014741129171265093627875838823552142082087701639475514637727358780161690838713281652021079913796815911856534300643564931954150021842334658067929505325706979496068162881521666498330840705841991721990373173609010634705079342324564695219129415321700503650538257487424875257102594160824414085668203592234090411225171034374070941091623851855828520716852898922718443229550438896762886745572275997497308551889402629413356080787789615620687349998246889946762311345576875116670573074908389725113330307656988820982101240398039626464933034155039680267857526362382514922885044879845708636221161755184625611331732117772436894110465215833134238243225640779815819699393052330836766282613881223647700049679036992582150906836324502614883927564320886057931182643303889064936350400625472454065326666170903455965080889562074066283093203860937004677310734502765214223816436243314455207022353682371381652183838682569016392749227918521050599658172168179560395617876898988464307436163487715242135638171266668102532467403095858499301116717099329960548625129580108297921150024648046079827360075486093090426975416168771147474122015176343793596169688268104497019568500313524632856804365494961387728445313156646973455563618711248834589316137504958050406123818003229919434647829861454106478886370493233982308171176712355163709534403959021990944463096845956473464156484863682601405048898406831184095667356958173562927123477507870503347692163045863439921177574094891130256828479565962169668272465749528553979074973075786253960118634501789211437969817218992862121018299652222042208529885465340406689634546813065691229106735866396084117283531007601896498710552201801348828663538925934218159895545033000751077110142575817031168496502790473603648093782949217793747322807014074205491805890748629630138881528844976470174301649493380638414588031856304624666372043074042950400191230693290477777802819834677363657391843928354958795509027008983553823126393667558607843643238471679772086241178725050484165837712940154202022562900521727229253138832781199094812132604837944804788385924938562646317879410412103223151540372195868904612526149711036167196802152999560673643190581781248677088153381148370406359273318200716743863561231705414375074044256297844812529710200942911141925980217094819938390396989613180649738945534969130755077383772920112950271248428500126895669042853666674295940143995578513744696700245056143628920352310842931810000932007448724182558544562530060543186555892255272151449227477596275485047538792206785362663129457156951658046213385463051952752713637994183352072755176781505033677228582955267065824720439686634986190020730971312701634356797330442227871689667116925671439912984539878521487783481351691851843508437611063414248748584304004117642833233787004978804359653500440160191922595418728506203641750727066544748966350455438069234505633271834513050381429979159870610092891291062931309916668051224745482022685545357588650985907186492295461190999146199193943687314988224623374689633484275151560696563027341865656667677383243316201495942341256787958234330108039438167291961530174070704355485864618646659952530735788881453780115862517338496021909154260642440614479092849495275934146589174422942006655868942102701280841995248178182619477526197437426201925187176699001871838365329264037274145208645657990104056609510590927704484511237469291113679344091030777500557027483759964464511599988594327055300502405249875504641200470510803464092769639917044129591026274629418358040398981573212189073328741678626008322482820983722586013496519275498260688301846553824752253048961626802468444277908768640024123938115901176722568606784147030925512800794962363521165539112262282810555777731290262985107852153074246591437509476297291343758534327212272100882265129065453625812832441568778377295287659049613140499210717021845108065138048054321030587496830370072418209059148944293815412268667354173983642695678523273642524234776130189237842841993535411898437512789966536483545015710974476200682787239789842964689224834351930468431215984311689314363994917980138884155831713367364560435089959770164058645132457892679625837615161575573997564020597482895644429864833088108573357894719153224834914114134847675465589495813833722884122402218639979584574836340815613136572365377776188335568159207601331426148409784359761875913641265793695957369926765749755678432773035604022424525093667397150788028652736746164947850090689755361726244453512869021560489850388137701061805958245440120861740952224927923878577352205347573116216118393705768420195204933148958631025885369153708796546044204887421248051484399149393684252117356438033842461304177821553507617996241670922731517993662010427034510172540419575583447501733228910236028656609332283126295840675575997225947450918520119802263272473506094476502326412685014112495810605407695405884056992924282264561090540842612024290982064461833169032353276900968076336138781482168666795280339319407223798937504810816737003130729709141687531721482818702838228461671523777824614315164536089186701786926586329578517634722579122138248340797818844983717697125826257000395708804947533812917700085538203319589416583273643583301617846021555548564857354112951328249206479515298127459879517531023203544335090051312433960020053121774036931375921311015428379066871002223348894277492165669738962886789171574663537741133573961239570292078143650452694076052392282104518354340396739391453383889444483498677986104388489546102321468524340238909111634652642801676239545243484849018642657058635740326163935560362880745444363334880708347520607713717678198026465481743897357906576190356753051777632699692396763283056132089042598700657559838554605557128572188760327204202753512923560235729507563557245477760211145326083095532093944525892297316837356610458243383612103382445662426943137686662015179467692560947450427240089521983414336770768699507462711887385942232272894784098714444499825106493345408592408961415515805577841120140029505955855621371062177641871013103735857633494268494658863742132314283393110015478556712026029876434845785657451889050717152138444208206466262222284910805819596975652088575703008717517480708644048151365859113868529236705477180397261300887677958784454314615980978301292094375093816281105963604029133685648810262793794895720844163889468577769070467788755540880369611933993571428087653370326029678416220179391222604045539874707575590302517183249014187971895517166442102072166883566481520517457084199014224684088030542152492594499523513674680508783140540224360896994299227627728802323971997307510356193686289840095443073162199754942313954332130703723805376169092822643568580355870441278180123765503551397117283655004290201983096749615440847808214661985467240401370273744203679509894876527274920821651560060514022900627957666694525172352717039621804896411975107046710444699549757541823462266532794262019041706995985293362018748576791112196128315181595265818885180571955233126863247755828514366975432981247299425557889650456520694216801526445021601933036482330716955502368483558962622037973838303128209357419519916615929215926656460691380415154966099947461709724042743978232351659166789539379328785021446819433898751672967449011644785303098266060247795061678134970558679922892896944121636823451352571018738149135208704521887247428213157872345296926815714955067851288103934324430746330005359000191279804020334979658764428075083008837012114682920375384017275049547557348241806223407466164133302684506857842059175644590946810714629093626764317145611039912216037609387720832619878642967331018159124818199882047473751360927936791835720463827710484409000636304714661927893137510090455488142727997417311335034432234760166804506265018418991225570054169011492251041909819100913919278881692122559345068098911520760610256252501135064772927823120319172294693087922949858678162530168362400143091495127808367566685751737693603758315274467227753555062742492228172975092380979422766414727869599829656910280833415667893475581005653450824038428980874634865917499000912424246514041473278642528434310692901128270577817892229807007672149007486014689961605185067506564672478116363189613157960039927700675114445512553125482807058449196245414796609733370759901198649427947251083283865900920236205976948888649970566396392595048118021354067595401789908346743668426014072515322791465243914604029591923576824396229191311297533795101542694427011302284143659770008131747905095685077421535859007758156312003693414492601285055930324861997091887067241867401333049267003209949453839175795997860242724911803694341094797005633893422897677444089708199732979452480036806951575863082284421404441863833542124024992789293665362618029765644486163818731235668890163592302764400925718061916704447793751422459418469618924979298703151189500813264309599684295595554161269549921466917338628356753940846136887167529064868132488566659824135799095265961530653400687352982539005850173605133311794537156819582959873234294858193366631207577412082473224607133202757817887133386016173548425728944935657366825915366659126109246469015987796159488697674745041768178134229550756888109398597866778363338936670169207297214587964661921428843751592899501180733632150639361889893412870124445139704989718767856466213303501521097689693918943983223052237862681703041794193558040502969736812081128632218952077424000069574159417544507930103623638506207831685657774191061183988676873477794803878322027779082386271864239042588045467558793059764375627441432758577158879355038796088273735527919910747973871254476030670667432363486846540433491061261607800633403832029197858898693957277217373120809390106405426329583459059934866543038544820432614635251269307625220640887904674293564307352800133350584807489918314583188970564486203750296199095575010213862972634596306176654044538700152603983058112340952855252726693934323215051832681257703268847730578348336836909501561303042051528405610455409039751399333402023865186174545431129456419586596995604572218249558126487445759373161883950554134142742547593613773715686881328039993876428108959333314655888803858257012397349617090729521107155037514627833442574270804757255380724826389955970257454230859691159543028877632143959937887054360336045834017180424212140343887692543862422036352747919412524211308842058587582210105682039592774085328888745849853022144097129905130764344418764597564743567274205874150328319282972809836267874626388151503661431694328878957313098508951726468074964374364671838206193788986194460010472557491072077715820816379615743904187245191350624877536378032831219781998495422127879042175649236357276729446938286097224551406144881466223691444718833988676525619726609547332116266209451145668925053167958383638677866217060837388657935545900522643218937580124009477485024440629210210195056296724577711409962901145151142661404561878660703248347637553491179795569405032614999966174856194992957332012403854111119312365576462620931173495065762298594570720410372874683814984622631114214058430092622287762057000592961345523691813265150515637134507111113207955485119649811419530785812482606973489237184363580156590158340138779043197945156944445862129112485346316385643736334825561242554713320446529942922871363807878771312171500446908570525186596301182420164265990197623468526177675666974882563763956462526048360458797847671895146026674470548585338812033635507736209050611756426555904639213945079895333719432760705775608813377538882505295847251266065799438065437002402653697869850360018742440969228162844546983402710985706370893219607281814041673032163093038482713602302087105969749255656193506109696268980379457676055982870174489538496773517579623282988265505034902007327889448053601751420941671306493705498516664895869300018234214385127244561917346645389508681230792060293193267623130817756214727336483214089699124527409110269515568794063532949473034287245224639532229650034712328282784534789775778686789415105502562472102761726148786226722250553715772390552651743081837125022133976993895860751717422245984983045877472995669726378977225937549944541531497948183887123023260735158031686076779265475658282892654248607631137301850293232890630308794952098462512617211722072378073152086413401969636945994213821613221567041369668025349485460476609762949183635623483722145035780704744624893789190688901069540003743544087275761376122218354652600170541345956557044297131769713311166616530060518014034933164919273040525719803208778067472370569265395208826775530965464307787217842559313750817427638515678214684814418804232880452324310636856713326224712385594158526630046363261832319325227105360291286998641386753346220339152871392441560236116197975225068605452970465631233726228407660782729001434001565664451631486399042509888523365584693110302373906003415117545831203833609219732504296619575898500239759217159585010290116121504114109938728324557290018395060971621459387707697831068896794964188385484473776193699172994722738642301169804597878117542930297678467048385017385206024840721354927608135193707770951873900701837019998455591066216751114373202121104020534104490680435657111326870902294651859754035634011519416016719775079226331319207234424999766195704496336922206287334994032349505310976115773222688872408586984535479414399566883213254302223519208677070711059035838279573052520607837448084057391588898533942912968705697756873103403781048360176090875362390986872879070405508925041385799095244837238648772455849194738912098921095332567256998161443460385199070788755337221443549826186283311486963972194307540149020904491480486399363470101795854561625292971631511509931055587872626764104676092380453254050038427718013792468048111830886833100429769150783690968067360322804688933035651146821786011605770035353817161103581273394131616521713876091017595566082220558489071202527667733786276221197640916180096945898223385798025621941987352701261581350420804784193407921524579588362201954519353471376375941063272879576192435486174222371052235560079313147445732665979978362404222913438586364092923607364592598100336874892405537081499669494505782906338467617937066605567440544599917264520512717633690515047439585231080683301185450104257988291534367457468589223391218531087829394023309501560579589648425579962771703479969293943859543240519652196423563296521674249341291951346620959737905545751269015891168703841640534304705417343257422840342488942057358411711270034329032446438319258776684009883553919156535747212499252158459619468478939564679098306987759347451774978272568933189009032178135344940985062350889031453513335245425633364535579360709184777925497326502546294544859347860420112020699804064099277301714309472115665104092339235931553893384639314158123299799615655467314652783062207191606825802925244292181660753007017453144513966733821446328355140114387087668427062351028108200989414479284129799466546386765169257887715243364833539887252594044449457334181463173420043398162699271959218957420355477076900057961327730056504313984722981344360458843249605295163859809665698372614734218211338117373702117879898221810737717819226656979448697047583448065814281986029058861904879188992539383856774606558700842764531395778288990578428141972537074535194075394824508486321901934458279560147866484895771556079555986449531072949918801319511755551701643196422736677203237659308987720239594429977227581778703591144196284025512896107785065652547587415394221270013324117945362424628907864485700951497574257004357228713004705232405359792867451047222082515248091010343632775455920307886871490684209116337145072479795355142139836404418151689800022562003045095519439013186172772875634426469271152121737272014270799126232538212840425650511564207102493591273254566419626353734993319928461146283940050144481729301502505567750910536337996000010538330172101728935025543745670169615700067894503254435239607014709775765323432389015994070219018186838528598007956411413832242178957507406198632507034795176204130005544562243379771500392980609590863347503436711209249845240152600353186505796216535466151104855003166208359449194320013299378945339968298460280638602586512410252978696778074314406084118864325735390832425315303022275815512853066176983593399737968990946538407142338604368300920670450683310246728317020065580210307643056926327413489495355063144875444442781730222529173821123472821243314345897024120748398092611026619602142942377463136922717165488962020066727432390764091656087236306366223296756640543784630969078816228665263173043023073331494902282921399246414287649616350649715952718210322745504919470798762948507659436960691281246288944182394174189429354978172531988232429804262719794213979818053697469810950005578997962022555036149649412613422363474513472838363482475539181842196806348971792111452662716595779329982918219007117405207518248081346825540602838017180143050508135324482573376570946636310775655138334922165608939769192706142116342546917787884756005924526963069047946978578197671008119409995830887210852844880746949261872764089613235438721523217805898402671989563304269951139309141165076463931872488608532607888187663316880675357896117359739612641624566196082284073044824898627861274688705935216357523394381021014322573527649484403779011386919171056413434487544377145004904129288349392318594898584120034176456832951521196620134225520552159172541294264240049910368419087085651691761953219568845985279952430616729840991111227137899284090971967783879682986248467782488530090127585921274541151945127649253628945676357742264743868033643884409546722357424533171496744153592397472738593988154940761897615564774557719480189077235419781306002257157114446029115259164263194777242999147202721430847671261453162211551336996143764251024771980285529632543029300689097843404715959525222909817184218541443027464938889979378927184429099637983553054531524837197250869639808121238172287858829712984830750861534685087729939921853165714404087729122111046012120840079709927577482546747043801642947214131659725572657269241877075968435688979061479465104461424754267950531109639254301421217921736941704193944585072112497250797719996854266009272727508727693890836824742711124478588203454036921050727612353969557410121291849699596820711085880196205913223755931556965817546427346233896532308456666950690353887579923065780458953035455201271867664250726431279794462294633204329022470597949350625619242080048179821840269252627476634412750784155275319647913198892419144906591054472086826657694444644279753193732781027529178040406089397032688130652210131611770811838431240877574934727376827170160573014299974731442327160398810500247118463213704589444752876041530340944379521566147694593148335798428733621146823180336140689463771684899019297815122449995526034151624572742300150418029528348254989734926235879349640706871905554785419072339396480827780054544950655583955876134680347977472791928536380543232249099788036175736088366087818733367582080941382253606228933869969581607415863769795105933300803541057638056475340080984790266500394934024318733283457526878069447045099810261609185089026973036004020223679497136461591929030888298533095676338319699410237433639311431502159673791044688946423976602731220883202855324255490094094097113352707422264897981277500119880495537528573473756763365446541488181532128683062364050586547454869265056684232672845512465346289773669022230573450233976025268767632732278308353506969775108901283431358189498731929756273058441467567640132650135367398547518397492398169331105395360990624647563676522411771497713125247095852890384798040693930315241363267814076334266216945073271035034050866478339217688131819262397094495507209899884316704714662708509279146895826484056193937898133963923084477421538247983751841494734652098365692683028701964476141769838180167603531097879277123051747054979314311718882996651117154850271547421145004649055269742614377704158311437738510770252287913786781175497330018423715286787864200144393932582652461945686011328574442539441962743467166727297790530248830355452732412828154857304487991367672468619364897400834010755096341047759259445150172437060330476737444497031387534050219478985409685542215492724344753761118978336516177219738955002400229116939975153344222302613540075627377299635887911040124158002881320726868643652303220690194500331822869029449494059122775849833692123155128343170196135312323582177250341788782562156733668540123378953516224184974552666713908393110295758309159671831284381167430206393654920153352933098295648879766859705415775191917639611185043842147326150307964785372054042380078449116899489772658612879982786638010972312726444679527718713782451665333614634272778328326449969912003193788640038883879399526141959450374646899286480688019181013530440867841168250553587959052584590990582656650450392967731563275602022427325488606078440365252522473388702145189132927700273720191363927244410940912902383648791363422138664387124837617059029097890048640643002927040375146730544778606654624465294083853169449477049161958779801842432119818428013800024775816140420120813138147279456337969800924801751392106597376663458108047243253248671481658482335959499723688428040738592374712731778685680227692832827771148812367071228623867572017377355511590748224818697660973065608871593320892648985376758438641811076710081593759752868230630331029681538508534388151375040587330226953864365136616105191040569083971086722142387723833772618707096024884033126352435710944653592312137471877592939946647828328728385207919661091470723404243220886118934225053865420922618954561798977314335354887360671061111139359511575696281120074141712386546943611179390033599565709186422844744491759982719027375476716563648871768159037281705818027935926814252531051520505408424850995243988263873044787092135123067757075225412324818865928114393415913354828424212992614432587508955636332426049952855674627196633928117428743865208850943140894806758853982651589976101826230755146734711009514702835667968044107732018963692489542494348172642364514570191673344222806845051968314628945908961381749863878299083857473790385336977098493834986497554829979663054317913090244814523203714819442276547404982760012432582161994692159721330041174049017308614889315373438774019555129128256157050166090522797984974199825508301088527225798183526285893923711881157595917716785114415910835826681060647743530533945697565609137950485494360115154609826471825356283069329883949625274032663048207174999701298961277437174304462056377358502823016431857410589377852441425412947388098375290964768780068422942606971117329489534591458725213547398308327180659551585565627418167307717752552448813149256372448102470225838991500553660411628862527351191856857942732554346592506549977865224901566239252436057050715228745861136345201789027301956521102312269692500489682708220018783671687136016177309582386326842537008873932002287172030733218996854689397954931918842708358795665122393830455906817743152580768204174145725875929716078068223758334959565189947468710748889146272252450659158342930388883845110839647718268700738322190235711958028532958993922022841711085812738850258200350705506890857035196312339673680725338577390485396115948574139494582573151322344077460208674232724093696893684576672742250718729146418543648767555828590956650222697514408914069699168152101133628422498916148398107563406549109717271461552637831917326519495051059400904029255591840004698717579774705502998285750123283508793064328275918986428860609578557939132235013949332367875802638017236965088539509975758567556923437798426799450723648838972467334283115035509198252285123588944003195070769917523577344620140622397244112043393021615074912802184163762715026133210564874578299456261010899896816966062115404692504678507427669779441999506526817604284628135443631873981268278146302894273200946323398524749923915712110588677099460092845328187367770095411749863363385671394074918029582198520727811747540333243107995451370856047191675616637780073618259092263017418803467425233115678665200595016788218543273070684932392000316337901710298693881221933288111475974818674491018245183748760293906715103139727260471434657771277134225354878008169510149626110276901178156090564078225244617110782790104104460891194021516755383719139846251101575484969940550099442478676737903326831595314810753034982833455475811223890016923309063389439212721822492882642311379096222074034211976246882348402327740104738943371256725625287284419778999185468586886901128844578062462017461802011977859408466592733227232578799956169306073964811383900872768426348297937189592335142846132321030913113577520597502388382806685057065301003502160338407016539721838765555480534253547362930828117446437500648816504199512186132795499053418745837555123599052212388804824884903652888026405908330210091545171567129563899095407642857580056513875113528839618734182546064144497190792370843014804752213489959671837348739336101570844603138856588416658762277415098533860832140943424425029540928574884653551212808119421446306644148067014699124179250958036801416633910282856259196063470890498370940382529826763335852543057552159622981879500667771930022934250216708434289740659524674602298178028765396039406088842976350246667670326096951169810796584079923117675243282960067190234733549281443997017940777049087621028692979422888334682247150771292819511572075987986680596409015665443005168890120383829115190309439008842855169881682482240515886398378615118899884091529407572807056325360181981255658694418064680643611833790617214026331481881481323276914110697978937228098781300516757631868269880955327510515413673166615538459586116836487043883444714689500495908367676670400994923337614537423338578927733530583816072743828015687126337316552796879422059650330204067702201767350315461511856349446746642332160399151440530253350453510105869020123387685408469952600941166493089036976921710957211161566891421796045922727124251296151936499376990693024462636607016428166829261311220614461465119507148684473325962371125959265412856199415051846657015426026129043898732375830870997219992094920018087119949519622836016040000411515275203692623790107575127742002383151131892428008423591222381852097347338352169125783796669820413542974816540753153039830258118328178070227590330523806963501942962184880929751308172005147053143405172829505286639096693132763117358085504874140917261636024565230766808706527066270547725029982906137343498900746687574286315148250535723979162905667840662824922950650433964911943532198817950897605402516259893171452806698074487164381061986218520918003487234771280308901174525735279634611052006545968439851025493557292128055269064177379425088455930274298286492435736788360024860396570438759354466172153868706890265722842415031978368680807134602750106827390168560253675416167236863662034823061398373525338558733345335703917701716785117776285550134619684270217492389580814086791969383716707737488469873110744818539717513820980562138017780618193841390809389795781257814523016531639497005131301586354391761979927854940099026486303276815902979655558516341557423085444774663330368444564197238953367950113648092339235949372512533868103306112190695332777272295161135162503172668288094265149428233498086663089533204985451832101059880475902182560830050996596610583884519665952010910453661048330207027503451175290196328990524778606052079291194738271801291426145781759999950023294243234722379737394409007784985908131487090580620434627867963454597988237824111348654348588623795340651855052329442731631010680693586352167036510334187215640011553096355021325098995379259273330217374728163473567701507038177666280543167345157097148738903655041647326572755620005919396319955523044726671776278007663060136833561685586272006354184479469688317776032397154114609280483848564088712118816487307122951191441529222201928619235839934566932320456672935416135142294354447369042544473885442308933236266775039836644632013919027111974713426891586973148818347038442013025676111411004383353393219890049286065631699459263708234607584093547901443914519383706120318697544867136234367691037318570142630809836333941963864300513803307074578554724671404379192424911146653836712704391553497785434786413951641891493641282571549268972865672495685757313578786682389243312443328368747080083251501365878088733477984339753844927044374605730876822882806142658506606304312863462905833714136954262279676496785823938736126594672835619890852793256055080465957746898107276452973659237583800053241613120373182435583132524762692771913999107844519863724296676813715489411239990376022130068428283727676486889356563323725365708815004837716622568352372722684998409158826891168374663889593393216193062805175210924876338462607678779800318797211252582773720491695736261003975007413764829048764525318077601281800846508128037964093108503883154567200722369543533358153616093856438648517213619412773327821801773926143464001776046091216563623356816621249359262784401183280901061252795307962524634665661773863475357727859358525777431440000671824819648141455377467306609547594870619916387194377101171546786816153738446779841287646771236383519483905950892316032390175280500135108598923720788917446102223038628955629969292033028058408114545029150311622190657846239652715414824722959887363450103573493801476532474045583270539622009307376593983167722520301871680603792035813806979812220583969588248235024729774750051639518775069755477623843983338624294480241257967459089456092233759971219646761539651920036296223386178926004055930458834024251686655612668075787526378683175376933458875150489997764682640464450287695896044001502450369637507483318364622800865197407232098106052672532685677454496744123815806318768355124000662103545076671753482197498428500015741117592951423173139341985459508219935490821789325414634591895380977322991758256119904520945927162137876296215790043776277078025445906578283357085603810598092427831227092600994835334500887439373422828506208407569840003601001507776601475111552162528179138562087277822309013205114536192890049484100508934199001642015448712567283028006649267723449053128527250054666033664633154667894504352505562606914845741007544076401141787539819576888148375460460590615931497382658983139425185645905525583769152679987698505214172138755191303101767215793004695574619291422652338735914114905497963467362314175544850716546399149015369932734748827351570305276137512764749132152525705800657994364253027432458728928866606896639519701241470320826856222885571487637238558197824900222785549061960282565672883751880467046073926501849482316407514086935346469811602568518781233083755947492458452555887048820511722350949629682414369925872233506661544862716593341687064481022075752877493037896858685970200477847529716416587574601398866261305569369127504267389846992744068852496636807155904168386668784804182623494988228676866508700627304738325567382615621965892937061049460415172652480744823324230029401888891845616232688782311393220687015755422587528932264578146008304742905866747361903606810673767488860103402428900847201947156955267650709628322789369859315510281971766761995394553138200023086066280102906882742563354060938661009885655296662576826697848379905524360201047041388173592381420932105334083665116439528676128920483805263730116797360822542644434017357692579404225208953763516105174511813496277543671043264432194636164663463159811508430800150539214285000009453464604521040417399758759153440413680674877927553013795896696260141386845440117513651049575828343673553867629102474421296569406464836402046802425338039175074504103189214044822706791339710029929303289397205341233001899471803751268786900617356127935924148920628333823692027059183418973120005009420145944161371576177061316077691705053634587185998722229550716523212146984334855415379849975319343903128557239738891180342148130961774533976375824492636505872628203137453974912004555116695425553922049396047092834918944669333631368646875990185786374133003903248336494588422146462100949303015532265790165819483932356128866603786512531743049454638696396894565203908818849265357836204043170644202621814016429809831171151691326937069723104457246187410644792996477589689271589392399377747072565437755214051613654856386668297421368038669386273764605423702334494634445531285827986795340427031057851842222078641852890483132288127948591839999452092775485826508824624069709699579731066488522077552981582141302758325966349735434069309695158593411669631765817832661283381577678859278895142503460027767361255667613497934924655061308009032067026750628524028859279111462432296472637596738090977173571296915062775692476581820674453026574005836247914286464921178277802477580280862918122299815053252685162923656483199175029311932156866807532540693927541300136609217411205876748877901656114045503347484987202648089252596054707589850369908983942581653055798435984557136699244714975929116624043540620875497826589903398196042083095751952209289190814891427613571905966753142757046299323583747162978290599432803181134957431026433165169368581379253170805500353105771352101838224717804528351000727459402109115540339061924112767235392219912405494719228361794944616179785524390746591684559021519705011280045885412619519661500532003155104761438861069376018053215553708337076096258164325939555490375283850748617490836865279692595023031898749995551643995739120450229609050107809307773773647955485603768805904658467895549274564895565835387687555277267200459462508831596008060159706999630824063094252015939779979562340860396907639907408979570673282903239271027090844960540595798763084940538292919506259039600073378325905133676503219218244922276701130269098674635478586305911630002381905334163765288398317700642543086653731889888953287025120185077216460886083866913770348155362643393841373801520293494742225345129580252758599826881266274624081099040644008987768950550581410868983821970699728292355369640933815738804963429180248956265577769340131894645071442062905483970624424556345741460697475736914277884490536798479713451048506940354551053801323091508662255362484348719649547584246447084127511392978702323135859028264093679353418950277305609474068851720635972554336418059646890876152186283126802889849392498613592334774087863082788986783251645056067679500920356633822961173574218227650124882587095379785714481202200086908572795570082901429065070191403951898907839033520595041248460582006404805888990317688758823681971062541605316055671273682820982073225412255096223423908316918771240211550517556837449552298382123227043278187741182400698941432928372784076663060373966521298130758286337279162856957107606012027340788048007616474433127807392983571711690519900585772236600402923531288460492893613016789906194816989869657214219342598999416890080269417711998308438680136599747318841269357086120119471415295850137917409804706635978501882510129258376107900870643790049199909481743061842668136954745528029235084881987763207844488044606088556652744719401125952660852593576950649888228276130132656908523210813812055378422077962122309455261993576237860878797391157203896772663905142317562685766521973732084321311470743804749574423362224313797060665185134835462632697811592141101354544736468491537688745464587245611607587280738662192718354432311805592803255274075658249492436738478937823228875564888709792594626033699833559129882042613103213260370907878705073412645445371858074880405892390086388263090234084789660226654128856980336377611967524071552108263384245218577375045849650198411617317026957052165010851638493280594269359963424455914358667594606906412243704549558776528948992303254946724326622273566294413262459393901067808157625462469486315221519923940939436992053333532337317282025081133201523494031592508049217319958052797563541647076497695865157698426006343756799835698286489081281259289499637852878775346440044234485775744895708513745939077841737795279135483261106246808304663828426092084938165311269007942598068994196515440666224845593293987377487167080064893569550166682696675291629644754717665825570281347204837021178303414013616593303487334630652756169946152866032339343441302118812024812412612416422296072998381429251644227624047468622987508270494839679899326150204174252233833322169000055749043234475067920928152282880555740882361024553542309436433290941867597283472219097942949523617560004358170279430918976724782269720311943476769527232182583885587388287900405319300831167434324345674755687151742372253097747544170394087590340368793895554387602353082971162649184707017015353290725085700457112234551627827534103985864900224986029711285210284172766239308969026411972436259271716906838487900659614143033376055665395840959447409425917262421540576255105140108065104120454083910620383409880966025217515769079226718858529953364511465677217696779112715315363908452410415090953948223537798899601270972033489964553401825840473645952197321727530068712235010377910014036172583267932772278331341557437360169348195362796959411884787313893136335545680823983640462228310348172349802718436263945907837502063606318448673152479395800551033235517343138862564011980413505453394415631065756534427454503968129732595214829204539874259700529445451559316605726016112316938095907161672002175083101961290265462317460190113571330199131594522811245573013860371841316611768918513023829927209138009064891767329271078346603373880168894769024982551904899077975773221545846495552002395330314862239513011053096454040897568489308275546230438098795690157607532823547622624387148676645116488272165366927307867088740421267846501246960277611695305636881922739072606819895157724827478395469812903744394170678286782640002835992299849969260967792762122535716913050715399892373407395640467371653591596039385866664650780141931663799858621081863327179843050524181702925794458265196645294056631219377229867832912507494193317328292504933444299467466303202018470441436526118369227026469668651092796544875634063326845252278381248245274337166603447141910250424099811636889923701313237243144255745932665577494007198161395445998211059239798901932456490356883300634603868052894218276208801764541105440578360391129569117182715025289181772319461733794629843093970753783732915275307204753068094827386834264741121835588444055415479989603588353022658842475562712721675376206360660484752553643668637936871121816768899145776188444479085927995892945903380892715230845399830559202183102985162760218905422996376896049300437009589940876937213078509455090656845390671211874599156893768805114845988260755721844205678852259701141027194725792286992853280893913714789323307026875741101556089226279303345997528669329467715982716191116859350537368910737699838695504824923921275236853258928322273472636492632531129845070481893374190700637477183238165282625485904552739989975376509160667244234370697959367083210459133522007663763740952978819349765744980251319610542086543901370282455831577624982982600228020635403091067762993775087169312299460585180916807263113585113305663374174610694168943360288980096522236435675551478743549443961936099734177578733865701143601479442711863608752028279839092930061045210318892335173582819251658806895097174860984491931297989064304992088321276830128226300057402502350014137621987274841185143623345687284714059310230874889668058760410983386671051727394777251384713943696179456850282885559606970301388591000958294035394858766571844505254028213253964681310840209802730957552526997592220682778970109835938050965781140951731795494947746742536021581324287285463532256410048637305845101382279374755766806589226690119159722626339713889621604820528974999828329992706265206025305150837602919645839416826405017379154617621699892833906454290034535409501045574884157256488642219434558433176249433179040574012092155370564811777112421243977083985446221505882438223943948618657294521818127543290582021497747193546983571715887433104174060187218560149040643030613299472744592394058411381948424404849486100221969368478536139984140678549944775363667054117181051621638066366670155876022601108281503363390146849925425459567557931708161625732921447114087399554599620457317640958863667609991350551601151706559562709139061374090799300937434842382173371200504025397964362414925786370775491333656959201063651166894210513461211468603538515759838052843274147362775648667958851474677343122069625637065612240861882905797126167188565314664451548302209049428263647275292794694942830889094595464140142028310866991725045738645234611992010796352625476112560262174847140813671493603468473816594541840164765899081437398550412519124327242700444011719402855229329272053741161897405648626134190302435499462149907002083125287249113489333938907928522467452940635238092509258934864283527703272080913777657769592715841549870322664892989575479863415081896964077346682788512552977029034948010147662794347101925946951287196016209417210054875315969363584489024967926224305765277081943202736279472400948689476826564380338565795962611361781086948619430870530355878283965683502583081423873398821536982887824581892497041595680796320360129015066033705937884999704971697418463969829586884391280190345498898171621753691654509829838333744248774019876626343359846038723365214926908651114345208607665177162288495719455357291405104223264115746431936163945417664748024006957250518213555771595407181456306913611399334194130621475496560045403579352920368136233001356403757057549099398350097684461634460581612152538522157293896225324332886126042881220797308004260497674903901904027697711850613885501812108505270791609752291257226539133318290836844316883340201527053462602149101714514029782921146533171379185722110022219474747038388071369845471748984673698352709254229469313164883487432246217043386285862762379335703050223916466584221275463295825161949234672224479347549927504584944930086113926666282337942225374786948330969616132433882862734988809500981869738442533644247828526629901957020535472778938907605469932364618721481276059604416383451842023171103646974758817150720854833011719852275200084647788166893106720161772150265383205938336581779363142884658757196291088984892773495670050528755016188454655724115416543551111962501017344579308731852801342260418607227133855522164026868409723327333283163715020297472314317673906619572709625307814172734011385309430142671204202888553347845497745813076271448612214543067031593778717188488647418796955385524119366231225012987400522662793381033839403807674220414708071440595156061270904689552213593246702433646217810959222669479808217665914192006122640322328610988016206140450209705917892854640670438917746229798248755030539448788709106004928762596106554717375102451256884403735988458015603636830389679382420544956100908258813835859755407512121521469622457571083511648200542064286889940102194728067516366548459295737217557084577932544866605436572867433585757344791014739188854616268268328803524862738114477615367636873564316717267561965245457018693549283972247543317591527276466035354011935513280047044162226759476983951559270431376530471398830020931311715075849893959772475032973600851461679759902428576378370509232943747986294969951220882529463350263767565257884624053681457828147126074212741792983489710940008911008972872575994204137044700811535352299706228361227853991939628864017179403817228453875423215207282829798760571048126187111143022489171488053237406246921487123365326780394670863538763036027763604554849868560552366077490996490418735998223415045803766887389247558204868544961201350594410835567710266281622966525524553965852839167602994925035812410007555360190177001746972111294823156390909393787077912609182684641644721819479577645859048959584503060954242902687826122033337674303403303677304403894647432718011544480142811421372108699555554609596105077749162153071508833520993305778275701754906756250039150426546622059381849232521433423405451494329985109530086505489709695707931862120622791286474805766287795547217474317851334762051800941305322957248713980335550273226718924885699532639477693824580279763316132265672547326903501637042531706708757591184839555225146439732747842080534412741682287077007196597129872809771742937429901943729023345871158095851420178642683211749053535577227635821535697663049232636254369415672327921830962715277323385669021946932468941637376409310930816892620089432107831093031275078487671784394132738391749121384739097824645901629854714005036950902206343830590723885997360852531895748933259354215643063299869123090186952154846371259549463418790474421753334677564988070689482908050130573287395503597948863987540308491916893996758306947288246615472333663012581739129061615597197606378215701385209029173359300847146007576319424773407825420959358293713549362913225029497190450163140078674227662714308289264478104048773485273172426430764333757664993681265562565533995685753814664701409829184358813749656747112915814663915028713631334214706520399631506558956524576200774277686235864630617521749093718532205843564975349545669568911522919126680408126272252685848918784381185726648661068292881091342067138571636322771880319931090002318212111328287958119394009241344684468834589032856327299521720817731470642121905786000986183179234502210972975859469383109694286209044891178200057017100131863925633461082112813071286318883148115692684566427480803235037796500347275727018512744031469929928241004728408180318544927132619676860342382326975013815599849847415505202057723877692729627724673925200882705632447148179252353891047355976501593854313967317987494882660705752726773510975559958724107141516106667914580877720413148688514858226830277016022492000464247105603036312673177388317852666419665858035201374061911645324254161408952100087058464330370895402014384130204734109133447928428491915084546306445262686792800109981471266017449649206025836042593717611967770187379123098668001815791624416111394486390961026134486335819784166189472637228989174111848668637263294460286303407220336891320170032260949627226987693912519500314259176421382609225282553876996998621048582270662723453510203689756110852688240111530080974657929658119867091294653834080356788169160562765120456450012567521675217232772530266240319455695915098802068491642076509539898428288128176224014183819188406948153015929545397841210456772981605353287181134206022610778274834649040896813521341798672344025468146025618503232951419648241654175298427923746882729159032005298578988807077185826179001004575750022588312745341363740751763015123812811183227068666753154159230319296874666894937899403324114662200180123871807261870768347241614444841969702828560120894695951378394110205939241655829861388144356684727108076550928720452494148745028065645529477778903251171815599913893029009600077264901565442602382254430385232814498729052544776026196122382455138080243609506408269530657908426717487791010278528679351975421550144043438844339162677528653283336364785092048989441810587710475382220163913152700296881931736586247489581231398544254623966580939835533744481380096589878964248493840112803104028977430760478451520038272285466238981906433129963510773809184640221970114347999749784690419761525079538651884510916190178950574965557911758130110256727093799768346217769799378630585006408345950573531403049906399670103922361782315755868741108456105054144468806557065951520317809833655248842591259578838635672565225530425110360912206539311727114804263309342706426399928160312465166086356066399516134777162439628684849389917315402997426759636867435351270115400598469352070227955065662385496074934485906682250074040007210438331272988690173553212094825276464077700792245792854616393328042844978698552904434844029062864515025424985571365466583774643600337728815318234197321252536182606578805689634501712274321710367374282153115773601968363002902657763798601989374770941211853274651922852900577742673109070698317549500627610172599709551938485408118073942725690282871846498524160624443602819217952049691748937340145339986462618413248144039311860228345304718881048180724517417475137288433141184196052081086344237403334476611656388792252818033642038358302493240953440598655515955247713378774828680410853108151329911534611758962423428790553275131923184572718410356245658318227308737255144577124276551665092226447090642592298291406719302441239431244394170066054395562793674745159797977149263566451189275107459119210944996467845628562943041197464811448508294517246297437236290201886279352026209372990451543985972010060200684413121511440145255085544203039371774515321706852844716742797562193774679232204016115708171320291214825017237674381978835989776545449272132104591665824336854765212141976793596161906480028909817921437188038142166755279978658864294810650043583396241547455889377175250583759692093630571407221738865463348013176755332036321658423020679557388085012690165475734056786406282419820377197164329582122719284077706961066238201337313258534982354722582972700134786627801627646867809467402002198286468106772581019539532972834910415344582640099733199415372913649989049955785501207206719526165943290761736408100461173549870663462347253564071428924312207800135112383104730816865862214754446043142898944588643252977526415394963174572452316521354195436162895236470015064839131937392056315012666629193941334947513517189199031014763640838821520580560970407651869319930052340143571774082206050595071156458530682502047743123183093838305350067788661071680769239823990584968738503666301154596954926081357785256684340816747137310905274398396783401624317797361122743142220570436171684075835502817156986725721973877885740281615933168280678111024600918728898793348795833207194635954811360260292668825935598273644662803685268638535351207109484789895099274867250734562342977659535151304209801021417765363012279480827088988537695756237872037442080598980441261643986657604991167063142487100042909447437709043642259424006926880668518227919640816726377551608058111790409523582771434029021139995076451056784435172977217548614705850068906620180814752561627542535457879055934786438136731705997808319677286812219129236919521090747393563245401723458008629909936995915889007269730923011871297926015280680326012797520182780512364172483435501345559512493964758131457581368630979393024606859224070038855702163370264068430247296004577771744977256046812903304925917068353472586408161814868339921439396307261247398596530699908668752824046519750160146906792829608839078613216635084938432171453370377357511926949003611421056909269923420192098341289600738154765571818032201007188449187896434803462522287440138657814814451897457947851331637945339091037113832005892667850573222769563432658054152409851254215117494740350403946091386676125463213544953823836929304403136645698785692768549325525591846858888274054671249723389647639304964969036198397901089714515175552597771683021509485351511298033954228140991587341862280329288483614950899314313781764101942271606740340951331864110945543462593448338387186014726307651535562900952148429737264478250686807174649116113794698014701889075826446135592797385015995511215036591411504087279863065739524834188935105381641881246744834971326585236889495545275142960779302141350025232382678614534489521260652744928092913502786025422583407315938497532725545021491613069291647665244564977053934885602458978346276067171491460968124945523415055686900197245942333208375697267630299307753065462794031996654952457549946840286557171392833429813379798825282710902656133094025591045024900203992680274733303449288312994365950028323061358031934054980401956914332737634537960903182726492444413590558883704577031477593695975131557617817855317837904907311458992700922930583252902089729932205276273664834390545088032870252020040599854129445991240071521962109610561394082819655290312482546689966519844487087530101099843863814785712534448199946316809048594400204132018978018167322866789174445593679750271618033378685254128849501780829869551302402489054786943016726714472447312808552237794986828732556875866427030182143318129021238793448294635894762907980713260531602712987908656252526719128835387593162215108487999801193572887285814791320501232036527307798019582221966424828139025328548362394905867363271501255582085216856625140928042213373992788022074617546466379316708359281320503307760191620630337295598463778099458199981709076640585444851849717603756562656119989374428441438966397019715399068434447441670699466271879716094184588376157490950599141279940230889741003175111359254440780050492994915554186149657865610918611084047323356861604697951277035829417685639575432245962685986415324372911974322672169579579188883931133522790477699683934930414851206925100144093287329465675151190582951590583953790338229532750026090082644033944894368603364184685812826293241930164534357733559418978221436885964758186760605468545908721335128916030697604024591783364904643608543096888341992062777219686638548142752221558737365825633484332613411693640528589241993783123033277495645085750474115492614886445417404551726777054225000338877583171093602325842300240184603706441106489800827159213368219842557334822831151518455589680382346867339619848406336679141614903282509621483459633344607104110359019141190678194569108785206998459255277453741566085653440115709580018589641548437236965401137096067706158148644897718017661142411514604803330751590945611104218474753407864966595970153543370400523686054521692718412939213692877367456453726404704762223443672227061671559869820555608139285936362814919164090490768691320755118324835536986697361664754829204411362597465983974205430018261222175802216418045179953884367906640651031887196069780207373106001900621671014353461678940980987555861259750181336441634381047714444888100460807577423958583736350673907404258118380524707288765964644585225689732008305163938263729925591908183637539706595927977750706223241985718946053340578227895241252015824650536013292900704938647623159048721324862410666613135976082536614102768045582761539246034731597465269645252205621878485529618282926159671789428733647087166004173587911919092261217326309236403678021178837565826089215050416079606241252322646397364290284986759757290890869393437173434065024949713466033724454251902689045340014042676027957269947536793180816386421741080329949541541969014271558708728631792675906172780269669768128375486538647333057717497331585155591896749498890915145158293206536288376118842804425426798451134212031371621994339530089888997054812652112629831085198275716427532331261582571124821614150225103934991517709760709988503460144749165792798542926223618688489020464218323264294184874894032175635740164043939077169750342116874627366051458831936413787626669384367297896641206289413617681027272403161949943996799866051670100409537846681438724218397968259129774203247163307085783814439927119391287839650578544295249348349904251325748942377868113759449087421094805460740339858961597056467384115105981187297348163813277360638031943893606891188129783213184021270258884688760682961986121421687215559928350799897830865982026762412191626457834547245843875051779458225572124176168295037706292601779800032177160690096083931650569926543075504930642934904851469414088844993883534192167847945560388956660544322142194816775443879275462774697114317066541095354512671291805151585463080499809665497876517832858178494597012220156543267959324990046338088837875175392218986692253499892686394311059118888275136292701046953464953458269209682209339677747759389649172388342363366800081384445946104787844323813024989056447469245230608255964649890021021933295957588034725621560546685771116248775722973246835212609974964615424184077365021745764924037858336174286505294763255544278661676548208383713737479455593500340096112447075865752486205866666754499086274841624155262246639515763381577383745322794540357862328703982997841823981986651251038612596573054720794930957230183301947548855303357927322955561346826816977819300439205903031566939403363707826447766280509244699976368429074888111012965147327286942841571585154404477936975473146132846019129827743273714861280063526723053628811969451194668785941935230596578670110362854589990851114233729513484752650063933473971380493377377318450249179582533256647449823346996266753022822675718802338686799250161708056650870346077696569358454767604113610885843072288779939775117258424673389835662985851500502300141292806940236153868347428718281820042502755532864271117325100639060826907150170307946258641968364457000455707607113831423357962794128649723827271182894750337985891012481037739989875765908581908845931675628651888790202066641957896538549705634073334810411598654100639635816539846235979899539060710984858341537931964894076775032507105764610066191966403796043521623360750831289610264371259151855540015589309246253930238329157102302357670030715509849002664438261959729177269351862900969181749905139160280988911918242156118049470507924436241968266687260883907814255309178916161903274169854525517662916489242329012134249920337023599383258800283847075091398300967293635631348044015378244612096443115313878301087852809855375683721658409728060282173140238515630504094835899354121907685317495510070738782239286724847798992270251949242120387687451826702410473284094577851514777198435828172892200113299642146813033189044822017317925175375537389417083700800437243878778159720025033655776512516570487688342357630303266060973457859870714202979925070727668466029650409498364047003422184532665619376730881750164543783516374283208489800480747735066467501487990319345953534415407031249319937505077465070887544042846287255034027819566990745030313081091590707063252686478717954746790137755054977682734930093950055507037823661887894078251120117883041352738478393600447558503785590841777606005951822936115295573649516097521814740628485985280485199546836741139070373653795002769546987337242282695861578274471631981698525856661496660631137831572456554750792014537192701906499343434734832758676982763652374522916583202053458394827892868625438591513318805184733614422037359497481558082423514857690667253776966871642499235711948779154711659768744543660137684803801215186516813040621585377612533728372232548882652157460849419924739714019233172564459781622924955541974316329851574583492241856963596416003650763966198354507404777509387014320054572400242014208032940192555361441829212319796915130271137228410186251431792524640603771342899572332477479598425962162732540934393273069739861455207807519369309177928371063894183181564805310946517859478694707129739621692157249760576855067049778336300452087371140189022196995551055952305934352132090568611896333757103720703875457506551025657949128596472713943690513582208120183956965276957985775645645698746927606670013190406939887507977748168686373712188871599969603404121752933008477655931544122877844445677145975904468929527055108336287846068208781781270518786936157955753539306921657783867002857201039367136611704036285491407364428968121851280848625609175409850074951713860083125435292097423817550608357013979921185444753474885306262279767136321410089805559488342454571006750384307134954598289374734715014885431544250555550424212871413017979329083526242864517889704399429693546106415717084933056495744118412931207079710850528859148471687755270818818866041719395897396050982748789265037181518125192393402579236038552365722373371693719558014880636829390116385664208509287750213062928736343394700502488344355585490841280315757536826148163029224324487483291913043627515163439598460574524812924089047538626061681922905791651311042542621460106195429332968774489037842803012313876160575921470298485624204927114036782004333486942541343959581692853899331150715476155976688293308475369009367282664251175855832897758854529082454032531553864187440780584512250470023311791110917243023707900865547021891981613990912320559520844728672359943397285561650986745218322761937012876788837131165453015645345462271798563820447354088146901497401216683567113922267067953915228921986184562815329439194215349019316588087479898868305948283010932656705021173277289332903092886764438927949391709889546037681363742774673557521338837649309549937942405108395334187879599142011624667546911642176445595972893244092808436944784294433833483885505043320614402189484430660866911014855357334658609709656030581734980031657342467416148992432332735161224287283267172582667351045194683414421533142455171827351924531200901868197435169516839265329855412975454429129536618662418901655729325317064067935475116614545047770794545852247673258386869202482402699541182313317817484960295688880023083245100306964901612202644882481975915402678097302551456927864058521496717164626737449651800836215066507040258359989299296761788890501604378129312524698377986932945745228577235145762691056795865249851044625918487509614719309748936703108046342599705948757707207107672876258325553885394553171195433819759703927647628942343840768110168634480397973443549941788972837670720720985022688090466819815267336584370069116276676890799576026318319883545866760909606379775299176681796081024169908418584496873535475867676417387300194146190904288509498945362525816055544398471573404776081273369241510956667013387985029180320951539077091287246633586849730087966778821156776355512608267134940257463721845687507061002899077660427963842592021059028527983219444664140134021124504426839724888300451641873046690101305670940038730715309195034069141158841806128975166052261833412513044147122212631099075891152428460678110294682937033760841133615301586751594071217022981508225976625009808449565236547307872010720979364992854129268864753542390403948734361663863881402645492419803326157508308843404464619063541745710029395483472147694358562618343009050016501061763561606918919945754630183362686338332923087824922961130045561760925627766986389426590426453451268343504170950586054838396319668638263711662251117862896580982359960637558135160034651554444956926643010130802504021090433117326109876652943361026335924701357065147797949012726653853762178189089291351897144227402239594369098974856218564297488962863239770675648796201784095565061558593949008786290668193958659645115364042058856436485697354419169846120484931934485436063320264099371337923705911357659739470565603574607333358531284449284388147753851880135537081668885379363476308286620665859740422156451930258999624601108473901791550654477959091391917492230281865640073654226400942876868465211168181627827537836219646626085263499976884029541402530613958667861334150303686846203892930162008133447350778302552941846777609459926033087066263706620667803320163406750629580608806551719362245013782784063944911558537454720485571045693973734608959238855438112949358249791891549172517542446896609693265880061158313338323488487573648903771428307084324737979955421951435856715171235556984003745319307598270647392332695552845273982141198026208338244877267450657401078306463825322568506744216575969117783728002633932149526770056394777663486347206332400531934308976003785456391164683572745867902535929002617740459442703270445851010671208742568788567590419515287072277042179901444698139875734766827262465619563541645474686348513465443343446312226030626114261191011445133773882901686661316777152195803984797192974099541245087263326962859235280526783550984604025002960502458051897236588204978481118221131463393473751383774673723025975258552187648287145644307371356259199897905644634657864918950658861229232458341719542804543835892167177868509888000283236549928634708200518537695540442595496660868558737327234179957845542598281621003303575028190860180048408034775098567188865893769077944067882752786454602117679245057044021821015590964194341645277436821273705718302498805176501384672592827115435631939134530816183094251263063815325146713753689975792486525961313773249006737244116501698493767238670418964372786989146175122307902493063649394525290143029138867495266158014805598044730189819317155142511032387689253160607443796319034034120581527876670284775787082516650609066723886298905794619079921653105363327147107826629704228729669428124546966162407852527427488448133000930112101420612096063534544977967404022920306171370368125298986758072831866921044478352031111585303530972879982789917769399418066425037591077859079955929184425876118273353570670350067122991700037296261191639078755614749324295547059610806014447066714370176164226666825058814454369515356053975058035103820557076496953400711162735964608959074406346647428286583499701955757355807435925424510760678879745355961446624613856363915073276897440523998837568620977804449468651948244766339849151939410038196795272863864523423895271257624862576448329219458550949717702348234286573249406646037812427262183317752019169142440513895877428787019426024341351994403150778833422102805617298331446010973314995813913275097838726039411151813730942725915074688237919446500249903007743240397470842545428462607983710249059337176888045950747709407697437877248897234501255692184144361324008217988583194617092624138257263857687324560415737223218351259580228359192507899766194061397804452107272429901050111518817459961159867030250844938932664699387566182017739760667734934116697142932717700026685527819961500244107430988128777299736188381911566604124817152699027659146858636083684056444539568270503670735605308297674955494772103457689903381966335809341267357307636336180859900146769388613235570373886018201975148620691938686203111733714805664005559484341980433226802443165674443546046431323992079618879798517300503074220492592515413729775067425235833166997769077228598262278488466325083850416180570100255534194294063623388829843483786478129984640872369610921544108201098564016707752262221218441029968367094680759014318002035445054208731789453382167951384537636050963236492331579643670573293755280818218949213114058546834970648450344712718047453920335049054143329172497754038273503717157673322886303873496552201495092816383462659323050821510698144685669777458938931107004375795589924591083942864216898904947346189014188988594361366256603421527032231882549390838803489421380619717320947675215289934900138151179454253868773058032831655937622749349208629537097124787979555387107936807319045452247799950762326750563212199425961975367008557940141492849852128576811017401753817191587184653603764460429369092173931102844815843314531926333369493796561875876404247970282756513608843213804965774469339309094792455722410408820406726174785773887231276085373116511047755307688041789202819142235106104068002395998650199862987983841428935791828576341883621615152575928007863566608868204004036120419815199572401882565850930168409909218109730687483311157468394453244476129738612170929927782504146294012255113941088355932704924644078159341720206854994074121371938150218534845290673609240213942267559174290040445249746063291578879386464140477548902753836764521550353449152196907026053617502344789563855875177907192018289167460014930887406279588483228404413715319089741456925671084370704559500423682733913270789602440731440999733306991994969717416386811766119581151149823630756628851308284621079950141311381112203942441932854450046697172327420347788893593929348553660952579582986437178486301803567647755111065968214966698260546295953652776328647960070716398220717218674475101485451167715982997217639904255140377767491322153436438880462057942266849822620508514060054908008098406460236229387591728902887787720700457459013100928772857244405682914839617493304470640477661243005402891121930678956537807284327202338812124975749223224353653487568351013279790464595642529231458534257175153028508887367316017562648769464554526682253205171135381878337293335995213785463153637079295720995597407024325882731271825311097656586584480518790423884210307696608425989388394001184623524417044178602320278676002267281743068235727943900305348475301762186564609176883584509999083045651713089143194500106387111667817193197677044256093125626245049142967897609968311674674025331230997148807389792940000278916803869090870953233160942860789380493715493323913320520009061647185767669053502081969274570595672029136457449344099425227631014907425848529688012890494635781085674463728315299440121498863316766597695610811896923320069647746427515320382323545017181023874706797500483303813251803710668289757416518931193877110765374215644251217282816562834916108250233166720999444948271860234546831406237816184849675171313836181823342635061707110607332531238688949247646062930109294098295936037200222585378391836896602096129311560865782239909684104895712026290559019572876364693804308842314760066706150124870040794651766068985504773465764557864730221838610289085102985882190716888032615795488242072757069095125359787922903841407164822656075175821254249291954371379530491345853726577801981634782419997735906030391713597825886426727591349620717865725514732774912482803830715196100347958462271097001552838224477783467116507515203029857634104001064977718107991709748394624201580529477622297461454303005052261258707062175598877758120708956608559000923755155515902474531313488550400604279011791770521360677440754961637841539770517166200905832127760996998463654480719699894680573342795237853584982889433475780955960467578338480625678142510751676795215885337322636408907587957871118759850947042589387804664857875866347640309520255497058461789311773304989736524622843488267860325048882321228527189505898913148532184928708457041306047079195778086944799969539817661771225064377614914876753703809779184390154343496518880271199352216622325451834074944445036753641854680321858965348998882177030721287812308771941273726386394968357471626718288184776918040345809360717347538929795945278400070885953567153229226616730765399190096840036274494750587914018737466019510136203404005072063012481080530954515567963085563785074325831275339886829915182500979484499233194794331274582880822567051153260726746846139203562727677536257751476952754635384268614461467575390859521133390650216035739238247128549780549152005825026769273393139712333128601125279892385358562145638801716073712707809504655362536763761606373998758891983800706002877646064277922181440284251837998707942178726412704435986390344450982696851576806912436293821758068791456403250441170854103563478468420130418278744138409818258634980681706314404436002951349626768375960065690047830353282828056159286860913312076732317088636754453935518352565778588708719556111850934285176313157174661080426329160240029562920609343291802415472191117323973775879563764484367908830755573659455746207599058672140052646972467255742016213564004002090725387417993105926673900594941652844630355045347091371258213066894067490327119167323752685659077482634640600082226254723900632499763418121952106063913516695143916399898430377905409000289063806244243294099934282781742059649142335095660652254156263281833075869430407363557634846006829505516440932664227978822242474831523567687893405434668497326775931063329480953735187939236520708412212262334509359520406376329946605375404283459861265386133911777310107337883889182679144144073610961927412567784275475479491740436334160473160176441833311377713213089838875713647335505151934729743429422183767921136292645024034601835190094372754655106182996283036325353476942407888364251041241094199113641745527971801838956707216784173582874422871283275509239215427617726136225492996013843864042101757293051544576457729196114458730672694920873685783980469471411232221346259838134411159314760860376064953027928734781048793195329260050184062281830971687151318909592526298930865295998172457717436100225062946877857844036450248406244147189499258967993355293517141126614307738532092547640764111651918576562318653197301768140242609491126884321830286989557005422598869978179969820369136573487709826769723441636975474241572883876078352493035362864234039311638092818517273262190655577357559037548748804361112289958692559658374766600988048735799248965213563377293545842740101497266760830287280167912666753392810468299926579945749090420033183595294252593925737100848029110366270198403039114333344475944256406816218217169663088571975078190940775776782229714595871197097862413426693116599511199117444143768734153331895466677518133608546982634766681905729526611557911070079845937724001253798705889211238931080981432323455508386026293013696330984634398686140475833094610428310366817102981590437832931398337295517100495743612487840433198506194910382233659091168729345781909821706933116260827162283258712000462743499034141898567218428476059845712796060670672794571764108762227908953725235868372656095563696133787545628942861126210903615688000930790258057806983665374646235329493487684788239984542563326138667496415037385043157287197833708130592342897070733609490689969348690139135111340174370114633738401138701929116810303629650318081339601674360525181160883119844606581825592120868499844798272381743172787126337348747772632423415587580667335943939322897173126330669194155171444692719720647176755280455212400879444633721180177039726791313919935987081935568528919388118551193452528722767939066924512635755523513738049296570349562023712995582150062749402309566119898030375443220210167159230900367537475128735593361570077396736590059027952328186002132625283130814793921367002343252759904822117271107761270453914665132903962409674093688820732540354096709322637937035238918207670950469109096752535501746970672288691041345797286222546345614380195859843064376964114777866000708507580869636081493528870050028076524808162917931559585361912045159817561731083845754937506041569426287994403670790773165103002735507273204247352261964835425479652708906586377914971149238372533580183497764805777723576932192650505259443648354487481756942455653674897872964425498503143709656734556538700925684568739452645241026222546235776937501672701672602275203318871504823786945854180163557092683646789782978568294593160478887821053755951339287780806921899422936967104469330065230669125668811072577667943041998071081669704222964921270998789749213014190099546019108463248948299218630866263533193983694575245154315886094856051531187177396698330188344985794835826022745325682995113759478322525434202294751860933842989423692399093713771149657431599802543667378307181092128461430172742877970587982937113128773803017839767039732464801457223550921765867999881850064734437529103202721872216085173801348805979082752257298348996388198035428522712564045652807838001881504603938689511204572596691843296137009493156103603511342780346299940345294824624204708544348726303471536608500759725923119327879762007056644989984580251022691276495561858480060727578036368380352315370259177957868939029419203172702741089336500640202472843824303736091073150378657416816905355831638326296491000644902233006635924804103016002821082819274116546208876991272459015103769755596090381304947822108550412241957514552715549827975214341564304312986114841659105032251244900192614963921340520957645156519923649277591779677007536920738157421194109703782602449641422466355214895787748799961364121097644560952581064142895318189097403302169547449552231410094246739019078667984396917241495500290381399818876115781941406141096149115664411196828376049271116497388954053879029886488147504486013737814779549827074569133580166449040396648841004802547907925344937171737003590115648958278794742216351651158050453355806014229565333218316356364368223042386533767333125043661983303158483489690613014709531885228320128804991170551242289729271566401361412704317807057464618401885328754196576918824593322085527859140618336551716748248496089177018902020102361135073424196310057663325428102103399579938652758979794932491630716208811856135337261397198703239825196738195551237519705611708061109513556195717937985422662348052366497455056699737127822916942173377914901011672205326672531119238834074943385206146794535310201265030912259844030408610923904870137926357488392158394035693636177512650014362064292744112323950157962838799229361517584717019500353814155693328528763022931485865560111152483514749211828199109487990295982218412427086348883684428765112905083350881362726140777651928881718143898126489241141302229703672483089598101976555839078887137814575704248186420656022183837283682004492401800733038457979641136975775116522780386879228312618560989780538845141787107978345799816726790217315188705822930606471800612153692379639655450354748095592396858253637628209792859913986351234040886615992664314458630246392499577608155060039254968946619205022939342857692412622374763256859845919213302433259407975918388786790889050097101777910169887839386719110537942226761550077119346316889562008720797988073350402907475775787645948494405924481690783534364461952054352121799579612920230968076723685997531436066327294035962607235925774456348213836558515075630885143322109735661925927543048218326907657433731208365057530456406493155031260490319101841123917782984362725653485432898958246872014439122002209129455450814549170689046318651492941507933321814844600501695732059566782258609688667989140775870653824587718296922757681980391528265627341940585094833785737901390413363109130071414445165432649034649297108710448019923919073563199463639446901851133216732034998475564697184709255072785093168203533523475308280529316232226502914540704964977275970191701733659302031036456590846765399590002045552820271255432578253252975497258716004249772835212215844252112144537080120128392398175277677248799495517420780324769483926372503090295819996562264068194217537691542203963131844929721687127445795465325072467810874975525123990153597151928328235422723808386219049384528433923995147037960575710941675721519916509146162228664286865166209510886314220477873095149331041267574446046509607671376707958549571405224300515789983478313322871630758199166609472977759997831479738046872040977390629813823957705257362817037126564833968442276166131345277183935261807159473788776984925508168112384001606324347067239513241991087915934131216501536165453504196193735197218539163787514993024983881880128336945018555060567195024543930976507446859942139824022745420700797167351291904717322676373474968259309529774477698727982035519882402067512479448760913081549337788310739226819075172330184394213683410218146544370264017815360203902968687481602042063833513968782513851027670825860988019642862519758817800820750266283616009499065822469044936369862071978906925303900125793638080989399269792866066837359460206755742940530353589651446352148946428202080676979176583886177475933370237031927305381038579939540352850992183020685449229439037566419945507681598510006967690041035081483575694608903625651880112939155036836594080937360449445364130960936448503745582780056096917942751432873677355589843458260150324718793712842469717974224781853604225546192694300889839583138498917681361774283530433944254275889950872665961396126506100907724802391951742121477568232382865261604819983903399108689647642116942552933102234539197715691647420324191048049483838453227340188747518827700847248013325513351582513342026389763118623426551840806704426988903773487912460661755275188377942608416361911905581915943246852501765670507284680002194169014397430193297169256241612295538220603524037605658195173583850148813280640680332642105197932600636386998888335679502324821928916124102154346698674406400104593491470558424927175035099047687002226481741756119194457068476853618021593702998152957121609059815327549383806698681069165617688060283905001607713396032610239190999687839915836174484170877651738757307589212218963445355649155871120714363165464238429896183476330267630276043151387601782323821196797301758213245368536149519170714521738178864521099788982626342463613706532645870551708863587360146773345050777446741193664597708693315805046370758660778269979686338307863977313613226042289624611522013956786296128439803977125535299455890074966896328270832167072927695925168673254568569282878903891974728780640769327772294434751494809003391445829227756495580134631180415840806607478365953825325790241651962250031039597502982559968624650913009208555431653392458963066487447138469291651490782527825524804514759719984474248998310786231408892313611028919677324595745298747368945403586677540907642971758916710586984525093041950871162759172042617544521796232528606215957187314509910970226246576286215541290823338979118797807104134303305674336301552837719548500981675980952966642057357248574605579777692447043545321264426780067159255602449634482694190870153884399669216402100992148875365698610103748088933301650943348804548171142973907240150634268470585483879184609977974109254462133390148131612096845625058947801625177379395961973461766271643308598089719427268785886604332286742218529956844803382224078962080957346768265676494458162758474030404479139133219478279040044524750413695129940229909397785425329929820226775355069165102111161967027608145103197929553833033566507818337315558631725878047855271230706058827494421218420659146413126660850248767021596398517208273234742952619064965754300953126132885782022506526824400049479916719331019495114621172964469867269435253818944951800284685056202738933165967738459816376265076953731834345995240249875849772043772472951587367420465687698284438740082996864892441811113097302863877031996472155235513379121585470820725771789316236242771900363949297034165797755427081866739901958920236304537271494589938302730021659033466924240106880298674087702046750328933352835790599375663767296502166670787440322222367847963771210722587653204499636355931556155094364492515734273088768457605048118212709987218000611330087495068123548471606255692311600351277394012416519780284915817002699963748620237340480455065588189091949135378343068319144439924565553316667234619233773716019981734602677090042425189047356212941170769851870313685801023123892360628110024875645757682625806862507164600152498996668707152985031842631990442302448122661239854041985137998711538266433134740127656084046699525295871042711303937315524674347941494296102048474018585279336102845047596028058592827364506681437776245936527787459998825523957043665276286555334909991425188906975697557400384377645120031238303584932289174588091514139441358330256643497845624456840007588752443274290518581349687497790473555113393128082637920353351290345059252796984279564632372820169715175581633836988664474541550712097383533409749029242397175939857759007907753956737478906221010536028556391432381981141770903439791161115818560015026823329618870168493845328006223010522062614285413744628699230457747274287079843037172914743604369905699970420511773555699365774246993403350889237276095393536019601872591683397884356317945537382129875587918293134504079060524479881789373438054169389674145360502471235403497646488900342305635812449295086679740458881751037765526396658623644725140199821001247428442771543198469149975980176194042091334289830406625770134004315609459166621020954998923885363341707199857481593462099117696766729040875583669764543824200090403323860613065080293947923414225796942847942613202767957093610776945370362612849892871810375590970530755152861577471668157260068509579839427490900907252242077257565664104128277598212995552526693456497971706538711513531037048014958991826181694538261368645825499940022447191912651288630018633294661765926964042198220860878699573786678942106045010345869357449240989668538046124145506676372932609124053440079751128219704972404455282892925000079459859204706584378421339113082791558195362737966477551610062117696622494601795732194734157869507964560005422148574450391786301477676981181987997317581876158509329430339407899372129922394808206500928465752891193559814302756246176280636037905229997466122612422943996973876373756257941671201553031077046814325681560415391354191764779183903652537121650721027020723163674362870260549268466639944267927350029478823852705110122488761121683247864665500823477910211857182746607802858326275667215180164205799289378427157722548663905614635017571524339119443699989867212555359015643473992708815454127498602345201556607122141222082141298483302859294245909946404805850586972701042682726797771032371111553059932722770481745980148742678527594847010773429001464477993463444041622280743093720157989325857611176828365871400791326258325068797259523560308474948855498692096919330033123147380870682167730360677618160062861126086687209046701374325018192199315885729639894074907339942420751785299291815748540708711689429712657814634701200998499643351790678301748147335700495672677531762848344560704554311858310700611463686057687569844874517251760794072234700841203675610721268323732439069168026183891512748988248344565873386726555943074755095806215827576678617868691002063187399703641872540397463965046787331098856062703536497454577001734757502097080763765146579950710212973592653384496024541610031081788329998980077412438218852205507954776844120506854129399262704952769468433388934646157381710694097203722672270676375416307649194398165631665940485155049997821366241027758312359086548227083852216193141028709205053340358231130108569188980451153400933753487052231409957803113636804317199196879823913148084328671776249119274333236464124225655904954106497589940625000972552990079631388226217762358694792428563987328378461009001232870242593015247357790902576827012065296158919752274235304060229020596107926756527862493935070780098550306656586231582110136164198117560391487248119907661804263296950160297843332956817800263271872797357644912265384981349053175734181799122585869557872223341474108280091264128518546859848868268575960948142784281449779003496583168056933964232976030124791261697838752206919742612728035384429985946984014974773113491474782742002528352912756021442438154981505790538767054376833834745919152902763804233732429981118013875387549589310214228083276117929280579960747525332485208233427153609573032897167729198745655499011121785246298271625894986396415478335594682832252176912263320666629109913282075040770285414948653612055482569270028033657745462902106710820063575134050180311420870391303587662274992629527875321722670191034311854208260324264625637526293275210374485393961913266561285076777786079065966883418759910924192573551647168280754279087659430476926860240288156149361775213061368792201233129084869159020290489701379583832973885392429395786623096976471891321572572411992976970164926305779505737345992450828936541647327991880974881927164717951717688758339084480268205780291754372916222421020429365301065788060899609802262480991406535990156383026670140157451434183827167413674325915003331277240067295374689059680683553367921224933466111973413887921640996986164414525267970501739719307720646476506365645349363844546164301483629513617085462653774914249916539686378671282333406371643183482496968422005587341149055339438903941533625367759221777363374680233576558040756119292944254104358447783324550153348185708563267429618296682704056122374318046959405969514433615478551252507061152636106341687946919799177592227205720539016959769299495539752757037073664116790787472427120863577232887633691875489189602242027576437781869332267885570927555853734937052848045590656740678660156836264283172816770419524360186772914853086157524901105889116349312989420427487639182059720773108626555144635002908374104587139567244063826335663318950289448259332416136440197911251256271936576106682151112811720974604242006000327465752379090690895516364808651203951180108564728606890803711548135126927688572861829418030924615194813029257397366407437493504590149727158416001972332977995897964215743714654163146408695888531230618911596749203268691125334524782951283473083964493951182337805427985027730250396098297347212136637966438934621528801110457693993577209018431515096089811249605210574188321315668928926579426896450570071494822480680934782546082421673361742211108534795162890154595448217662578904484148847043163771082797831859653430928535283135102951169061322528341229592370948661465524135908165813478756867206041197345527224030438478166941170520789639746937161742107505245814490922677986298316336995551770756334852096360215610476708848078380541424584685306631794737905843309857964005718967174901393409146619999976135923978872886923912011286713835463069332969014091818685263467142490190853683256450312679623580386448466814588631270982214233028356476062940915876926432137026767509280677732995201779598570001167706630095282337101328521855931122225263675685145006303396261212899750070319594285398338726095281934679290412552105437545371891017459288045302563313240437236886484290419142569503415065283685787902798185518847840125646909687107868463957806077323950162950786837166639001342851446937787073325566520413941393640716766059060104724343875690451577946029408672380190102043714387450087172743432929117158369342049977226868237037269428725620981210094877786829387015729312248787129483326377292137339102920386991316812640690304296502450792628225175740935121169771653669020892723336021438416377153041365911525648677923140883357677207193165240997498448294374885928955671560926490358772781263322945540062644371792216551051340025699046651631136048884269093462304985350445388689539744747792305579478997926447527352481113086464576082867278657351480850910953815509144683229604573176039126093972492391956477590640558119912116851337799980178932373478345918592240088296323281352526540361285514170661337757943103570767696149156782460924910595881099131956688332255278231080885533911852843162814788743763553401484298899391730774483717897041425690675282541025356854988204133036637396277004271624325481624958107623029365716172858743046338058344848851743138249035050922140533931762052390098393549148144758956270442912473167597473622586402999309275558976015736380112977012495210700274912234125950239711838549441873430639151123945914656804800217920611632469841575900735690095008747970466002759858267247747809621928220396071850215982345073800192054326390295833811444586879556359538200012933134075534223187764736036618474300191461800727696938013280647502091779442165895179150996707014843136864549887016552557190421944748020481262807709464787016802900107732081391965053131730024385023066397554559387232147822073051138717015011219607979978641686784539308629895930462693976054611379425648382797931868804654332876581690519302028638725560460377868974833365600160577138489197224467791708602636699587827986547125133485122832361426435246088137767695447616817197289627787829759672547033559310689546746787252828266586258569926586416697891135222450331368903407638940037202828065543164841193598824172564762228147873383245449030061273670065447601817716715901147537315936243428078450228169495068079615173256274656176745918829358697479312263511255294884931896695220277392850346394826429916829011573481981088551014628244998729321612049439802753236793966231249868692897254734235126050743854253373584757617577868486901213628833974717552727999740072201928103071195668672096731896924989262161259903471693718056993808820398284067565811178144870572800712617927590510550854858938378586855338989697409772480388409759064644245255907107422788875641565823813179673176837178368083696738532189505273125711219788973984132564028709737595322759270064311087582830925139307368351235053216855477567401483196302976576875121511030469720727672489514983359145634833424601887816101747003551988901662319838978506446191941526623424021174380393630246747890093989909173269982888327677774036576718634642688063256857773453264944540330276050622844539217202882597104089505168457219647455010581999245858111476202063481282510663312293638030881092823239969825039314493184273206381018672727279021984565957397546559553069864480955838300984610509547631567525603961177455570260534104975184618993832629981010970670539622243448744587692425979811277371755562651208808152114369341458935135155867026286098898336211585742008091931340775727187288107715999878332377083463020919076304818696888183779563086939616274965599770994208897874099474137302692312865291734147094118553355058354953929268311516838095495525722528621604987098812661513158744396890466873216811528406990985034684372585946416048842575718967342495856036699373641957649166223604003986526703518905344189532531439570971374942614583535095753015981293964212154305052058970423388729343174995885079203550126307566097203594223856608474951006718334113105523919682129000514470971571731286588676648911889286699890027875776246586761637096078822188554525270773322661448057983458063683565232169444260463363701990889212513229351146234841319835370102957071495309299622832194237000663612952164726898740864422261032975961262355149998129101257334242584955885004481576893845884974161877232819186048650750518799323585315724238321960121080704836185580481244931572764084935814632844083714104442116729001419628345151290249655349065548369386877391536174314522569037832519532045794949066741008329930707116846634434934262214491740074145226275756531287662202104532450056865435334899343002962406868119135210032117069189999145843960779534787092379671202554322185591846018976514502699406810242924857321208801011762888826079244758733503552326490732209685939346176217429505026005725551801347526994735184963019523729179026537939501126991133012999527539076601957620507177255564116391579559447482056925997117053405234491718252285135470987384675920355143530451470128208648905373467228673830309649601310934852236948103076865938289965256084831189446480406525664526376916286467643357541438455372332195477825968587057200429726631604484145007642594774529818579661575531245091208610992251009721719909890094915237935824509439773553317311496733369474807059186606631894033361718774266204733000792718630199544358547400898065890026807482099514480389975053089733343616562376741981525991128558798794952509294774967840272566700534064260540243784673269940367981372866524820680962412939921065210535283267742569614102240661684349006500829592326081227911522529139544936006596616437726322002074133199094029888085644500517803184317041899200012538766104828309984250325120062026660866294513836280387001200155234842393376420281587471565681188633559911722792467600971597766597305636866072217010596426161396599860630826755224903036025594490684203415067285514982162597524017645963921280120593263199832837332066003404188449103099870186829318043297976993492778131983354506111886383148276559384304403168581188994756650987244023952172326074956557896974505543080718268543592516019660833161521771922603091070799609291483328425890521842547868620995337670362853793420776930556591303429210302558186383021966593566844796752405086260654099891658766109331148148822334569786613936242215439348305778697855043374298058966725108891464502398779710470556858808779704707696333371387455525021591126236719459098126897445370928223068795340075065163041218691451018409300468348965089059558870169497497469805007411123051571317370357668920369342642888729870405997950995892968336591675637617364383736489733558390334962087268899521342310636872064398397381986261769405519284269859497306451770496894629206548309496728117584912668825288083044941586441621038812389927669977771697893627427082839662556342144739409732260881879922575433153137637136042606616945679433655840149458108504303175784531483268687744516031028982255116673031061533933564335198308506154713855604975886714720304324597794007261937881837568440635611523121789149507316540570413097321943993160861796867129725010211895739469623871840261443985152116029689993255577820471514391982483677207411069421126320060333775845353598968493064155016284458324030871817780929454644371216125101705635129454535568068660073451994345939648843833742996007781438589312241098868854670949487589226504742938284042933968543942830528646772108911266262538331658808924871091912741557981843321608206951963997148070042431760759666627677131679254373069092089589824006326680950712072318131122994398410684393745753968394746083157826012625845744820473145605200196771812270313020374845266029164455390201379949887575152523822694625506354944918144465245351514907364251194013178797964314517187182855469276797629594341084615589416443751218880730420118923700780109651493949785580107691574698772315832359686934648251142883931793371998380175405342957143178493829881077282390575740678417034977991509988042140378674124726776903451385582278993008619131555314760969082255012766854327599462113912429553576212022828908204863341041913782235287725365346352537320719838085406920354055432814950555952236805646427840536823274947659926122659383086177970079264941712046278084013530174580083184692876507239723782087445346394143288670629242679567707586068676372980911783833319971707864179421387738729053724476180526106825180789524190023420876549446563948380824820868169410308691736371097335775940027653578550495709496453493656131697683220944811936288657901712352354522244501398842154558415485235353669240940660260446684279535182614186745157935831816346952157763001735100684259205862017799337608879893261924334732238402454128939487595990597818856540898396292232014165939482055099675327462655170466904076892909931233635549883489771777410931878864536077185481231447748753704631028957006599012813126801816833171413077856399293332355035105264317664980785899284315897259059587395650134354307847795708377774540170090797464059101121408263884420103529896043060058254765245519047812440408142100769399954507376417016693259717554546052259502434740453188807234179458313810158446149312387593628861893654682985536102488983443998001681796722615581781761263201058907180326935399396426211278230457252017240281206704884873914955576665674969881995003012175402691888272871319353563855079572157425988624426965630428377050188298330393209208625839747181579831971811630634384483929339899599754518923497682177981678006511981882513283077587866843370595261551020368984841156382617163249296041020525352721777986615398320493719198696773081129982814294867698441777446368301428374112355582060101602410663365913444413658427098410382043799906334155093739147798075386473974173577810627693535044536091398672667650067093339773976663637269348060356517787617080182807530988009126649027215449972883319145006652088901689918215704855337061326278095261560082871236093001541997067402202862973722403842007945764804888802275921623935905760952047863805529210075688814119164881971288079042275622105196292691896118840876925726174634235767651982665145193034396024172201235900425557583112844880732021219201473065575877972622845230748131510810463510036350250458601619888687955108199289113299383891284031792371797480224047474495121283371093190848334137151093038129316233830744529282072237694398371706291568120749745540973101344999788565368779174145557830734798641416921367919202587305106619142259670808532924406311801143904148193736140127883736447130821999383981447344575900970233773490623750512071195359088757324309122993046109667871651636885362467301294842312500389483783921304119070578902946686350041580756081270317618665827020023268332902563259481057067259636290354929060441900231653486359696640104250293470536860490830707164363965738346240591841952403114827178195059360185265432615489172216051286967579066399290591935875108187782899958856224767873660019873149774708462266427594387500611781539021234634100010521562051924466296142090051964558391304149790644278164394339137997977227650122262180487129864307516251518530835232592562765646859139986645947250167895091979835999891162049274253557885706210769437729692593091216372475576915046688376577564092751546595302224703042088779408156026247486113823377506393781041683193914892540783949684413696592300076552933409661404438109444255819881235242902638518204276442586459381434034622690070009683721491779579954849836460855990220442287538892084989644144916198930331532312357883493561048795360576832591192271729582032463441179359946880809040609266904842356548725077493408328533596171795993130520639707016772612469629954323695648462228724518878265934526761899655317967284822938060446310437233854260246130313776733448505174670919074853824506091464863418921563581611968230791592135236502545981114942322499363729063663146947373655218816775399013879901201503924963630466362162588294097313465181632349938679337423791228583539058018403688232680684220011257128411271976144208496402698286023265810141866039467638179871771654736333224257630664297642477030334186590185413216768282841971881884062524691074483534100615750726664424903920837734404849230181091963165289164827334314204562305563093684384154703698862286828644948217744641271036033127449270918814278125452479494696956536031124352696470586772927054091547082644555056267645981362924067509849502089851701497775828799707376789895379720955230437314506357553980735615474793878843628922947519492651351756460570637177766177192908404856775243480184944315036427017163770046494478115930581809031937246339184087742554326765222220513558826147928511015628454938709659179664971496492838767426186527058024925228967797825768874836716728682858450404520609710383231986732401466637729384562414945855805056800610768591508111982934828452644937576749508146898379677649620611359998432850843789228951618174299326650507867438187484472055938234617552189741243603319973302104437310464575632875314891563839652629495323316044730886067504525158887493611288843026203520077614308036870846998403155434211537307523725570009123684778440353503550686208534874862558885845583763363226580044068048636403967444913345999098395924945555271540600472074211265549035768743913075237845734245111761229475408381658489678209763611805546875499252851427216283669937475420827168206236646895815935308402732543074505681866185725431554640280757298095602373268070879700325681424485983653288719230611448058041217388972077570598677034515065027489521154528779862043582027453458511724231056087817880436965850433180408597809464056428571334898770296370627250896698867083078684533064121934743871078472845447449961490896126786997016464238614370906694689431955619860225232551723180932981611863239221124749100076451308921798160189517831288469735399026168613924917652710738015202183559122900509869441296683523969949667929685743469475839469411670806772149360760325263634722425241579066917002713123366276195581443396994509220776900105303737766182480207971539245706344554216530267129288949453670534835811450299352528041355628627400292916060122965160236469313601367248898524215142127937988722279509258897091018085093952580900341054425482848532475343197826805380994387772505088719253826093788156618951081809659706297516364139786357538849525311216035199785052582962108506266124571675849780030070548509342089483526010287756069733124143269685290391414602960220192365216688708963946853738821851355211437558819478247788776023525398030241762170432262585235454373096366241454653847377690398772371632538108226783600136749363697983971263639341976310379539014040538099507184363386837214261175503996842303732077665716575840785484121639539368011549232855012753643321846811551269728870971885240003104020948879874601317522478916117075633375498944664114132644287862561972781689290530543528105910275190292084884190757368351066553242886931093970517880695492367015638711892306302017861765011321232343175002819637562849898172127568931697699009637670410502368026274160706547696317127262404423170298138976342521222916483995556162882120059512229531621169357928066413314982331454727828761604874500258878459351829689317296223585964587690258658910576554804131729412846190955482920194770583719186963924962949102701390347135162995079495836863781794850698176881305640246143690706368354339602532877977378527759179045261758148487198147253643861638616640843498342632387974586788406772018423676435314057085997591964178807191169529934316370133317908039700656876293993197718186485705680629204949100003279588306300097148731084695280779522907634159627787595806735730280384232346153611288007859524734294737524553107131996380464811628106554398564828113248696291672592525784830805796361786524368642030622123758785421849387619263840486098500202721120976971279818642705641472167648935255752404953431908434821793085534440539295966635428298923215761414199763316506191399663308590693689298151055650714305292240822974906599227344597545805755799983379293419680869616989511744606229659256266479814184976932882196389230619140100950030147081969414080905933873335248461017225209235713890141605182762877413789299640605180720046387442393711157522616280873528887904975160649784857501044732338718041671925430713399875805848383233173506591699060540943970454788722065986286426578489838578131753299485287283904562705966428997743238262035277688175629436756410031354165282105955713791730737547995648862732449541628381969471904871504646137593519978031539019006398001586944359927097532918007357479324311932720359277997318322656942650225100522562236697850989035174158619009499896557027781842898815470340711837113801818918750651936174518385718679423603891400437428629899515330022544354462890646689420253359285365807196812891154800081174795141422013085592810644755312614344622350568001033970983874742189798224624515167115078405466170311270612312321403069750004030084569493817493241684275869312339893351198721436638720560300004068705872017192423804086274604289023576080966632502166742575000696599145823893128049628598796767672249835488487450532773318957673202399359503762339582427773117639119956421447359824272505106857225624926830426998631247553920319118438672550291418278974837967679271579951065400945859316072242049891079734255706789886327122234744310992266351963847159717984212705180072123213198838855940659085933403444587265717060720208822985660333460379405793314644185710602081062644804877358740988975385068532358726726158723768535863339047223504193786649506608328196610690740280095531263361145922886061264348916643116834864985283979942685007242606427387611627826780224270646531714194690850972243133406083733592590555725958112594345606838263343725107187865313995956514554959587402945111548752564378256011379377416578555447563356439514193327210897873878804012960371568593040077756034378360562664224161600247719628349876890499778639752736777047595157335209228894097650396596049287352102022878835056043859335003364615678827886154337856538657519470357485844954993727516643613538205560980398733801886504918108072085680965427199048535292026904541632041375805335707244149849162688552157438920242485807932645459511422647688281254436071672155047931638024134699129761569921872649516748010616463238729867010061156229011555371763192994765421720134726527520799344810806460450439858311498525513793293119252121222281371432194954589125658788825762731916457259771709016481748493109558521607695478090406908701467932964825579088466893136764869585668349660558783731344273568937211640979403194262888429642943573949662707185307310486092797629595393534411743648211400930674816533790531476031331503900135656733508232927708278828526845061439868469780477770061011234902530722733784717819363524427454152782860018966246471944501461932683657406795361163087547701362319962900276175766285494266658704313888250271252941296317300037321616450671438800813158145507502035083225604559400964747286728012318262349790729472724404141612798984006862758886343044542658260437652514207404486782515136379606734117912371215862646346475885599991381179048876710848014602773517848960025468526934401542193740791655569151145074214898169952624619163538276031451423284760208611202994862476141106825111449223105975422668221095529084282112199176441321911734416829017483268636771993196248851311572165948646414531000214504604044824558479859056892559902812618400546025377477983351028931374492248791616975276563574617851308657483967362498669029752068584124661847088397342478186540480193890542573091176153545464056867416772830579608826443541364433621614879090371704565791698150765372941101550495205895587167779837665828100107287760345773775941739748780325208052631418326621862363724720618085737849400912510014548252675423689151047700222721284476004192072359247971200728549829728378256427605889574838040903662918896025072442087297111758062269409398973167663426963603267568225049893807511169345924482738388821288860638731206231946840019304823266655879382521054565501277909860137409359382551462589542514550880726259163510043717301324325312519008022768907455778975998503572785107847743002594316948412838849085383642115766022573409658389107269476276792082348472623598592219730817294305822222569726367170864372332694231682007063222322734011962926778782039923103656444006737075729172746999894433626321558008170905081927578529797140507193443175414413896906166784895089195768029353396435744947563490939514401846194847459716353248802320851652687273498004609784627410112082594975129378555021007039663080842742007042410575449464348730755029941112143346258993941661542858790976691908493641161598162840533014551355838786655091522694249938217451924436497413697477308134710982032220112489951223339664528007319926039381026052544184763445758322262340495386717183285536181276971897687162899138096277076124969905161988615321263573009163781980079668929550374149751055896889053204672694112686257482178033999750218220137734355163010080842823866270120086152774884632696200913681220794586682335581914286232744786412079535834281123737333420363110111996013044622084101031391435527719094268931095158337824285854482274571052381417144350785464879652015169161646648613849134930700623777291803768649986214136621574325148213251540681551956749330281411670792241984569419346742209090452404963795928543524194541620696850578320166372731737504913917952161088691242967580616206366319340120802016995139552974788152267898469220281598437079923755567999547083312584151437581572684544710280713084620385080857681445848972116220935652398269399541537020869556359213113280540428587822592065130633623611002148849123931316255449429045200565524981335287389501515649613745716305311939503158418503695431932241421412764463269212805306175629754862656113588125891177133266367704386027608850972534679597962211001333420701774462094699931783748884108154719632270683110905806320517924828620264972206351943421103379368615229666639993218182705811332354012144199159921283752970845428214996315678219224798307455952007123229476391320502706430227094792291032433087720311288729972033139524511315776205248826589212870417077282196844528920523330483843418350947168939524703470466035111969961218286029120272576698790909811127977779934370064720174541896361693617183426113484996437361219245515340605918264678423476860721295522261095759563698647819682888246556571063038231802989981241811968534409558416847642740738032092571161568505883572924366486386116495535485930035990427921576348300170952701713533457230044881285383579802608141232834094651162958850331843132451777395926799121761702308492899071657045501040985448331132017144427473425375503929252126171925844622292834189049230398509075098920910006009991622207110713532769028809520045418940307175491657669608017766403198495576935197093873768852170593185218602376986711534853158632986603882380333379199619932035158267764528275143617886703914750420411688535158757465345906332524406469017395514851723724238679018735055894857580007531123634689104753129261270434207405104457258283685335306646029285705159158620538387434416589181817791788330536810998305141705432569481878122876969995236296046669654749671597906412630055721324464363318514548981389728896152151597995716476347113339908189304341152369578745383933690235816291238086041657320207265531230655856768435251962420353975039884173122558054683231539681965858879448433104829243435895586528687562532237731971815990535414952900018024040525618485478886941091167194856067160845030646031770711008837494349695323817060361285800484184058793783749017074472882486389195371778579065230618250261637314405507314523415129205680580977973107422373350888280975138785017674693247018354686377364173549728696697258838601162110892399811500741925050088022363935589614951974747358601095790902427759421751586452934114217150164722450060921495071591944940220483995373805159307935838421598066603700689344261942593937534822279683555616132059477438686048978688275389641693260229021388535145134967906771724409341661194141786085067968293583112519737365276297700542099238200471324717592772707607964503418399404288256358717409458789981343020523053089800069605330586362547330298636595373889921201637280935813244044746348139113521467562638146540624812753420669518722169446019556717602966241094277912494180318776471530630128132377856912739272829242878367482242459463921167732725929221654769762488776849146656303791391098556636257092030664049986425344152110882144790514666553355880662083598203512949571163282432635433364677086273173674043291866767079518145469725341102743389350163068153762312337092942372321706321750194022283508819140918586531723411297375717471055541300054505686964801344218657459633654604594124090794759045505110738178511457820962515270388393759328195728936508285125174532080400475418787285124149743679268145204444755482954393479721969991640048435117362004426372078316716502336439227927904828723959985996423465346440075452785188821199011252024681786922577408950466639962437421736994055795956499850764030240667788045504668015812281812563330672067195983567666309674578020629496837553940634291176845170557755816162030366231786200758394377109893464192455045098011697114139060876069685666021777983645618042992984235438142960199411787021139142014968959369208153144055055259155092191273175295898367985524537247404183550725916742287736565802926312137561910419896975501677696701267365467096514954832393630984267145493459717063776223452822162435455848276398298819529401199161051704641759198329669689705403174406444730093266351292669407426630208140586045265719471883059723804948642769170830295465307833224614008486892240944482704303547848200767755768853245098410685662016553865838674949930726771375978367303059496484433457582519940826425532567917500377763308086794631937013218850451284298059728861521054376537421285227172502136775919014158188601766394338680608738538053035188237162645479615036289654379040616915901649857183597839579756180882973478643947342337484962311047586416870688180306219362494237433662896304613912115346148599575963661985908949661897195599398289946552646940340423692537690004021791292919090650609008256240436529835040362754011226611570671491609286952081450732556837182029212984553082942215862658343400887469533461337992886788951682971613611230056474322300448729586066620780556192776097326218812192385832459575153257659020723163028428397790398483849232685563329741754330424057273065078143074820723216781403114330003262987254987020151895318293070511047271534369542300702851022326425067776666228592899156845699103347363685193521243265425342420364425978312048217991615106220961987620598859458964110883886573052491944100819268982587239861780981033241065438297548598175970047945914602840456192699314615392076159679555782466517863089684864037002506761501017647821521569188222239644513566733714536865195833070058101679132459612875903872623373011308620434838008426778966624636622165075573909408997026435423801340708499978377615904630705463501004660773206533501672029215175137280869502648303813089490171111487261864350227759981406852079338475409363685743341424798661359132102426555502443614804737859965949088890392101688620426728970472751958578995219864756613608706211390295125741600059547483714772581477962682241978770312455597322512466617183799694406116977443423570594491549292338045333171724633513320206267597069829849441935985308025999466683046474270232243627300769933262309694161783154547678066156987621689878804609234356470248191177209029784756370217309483070035290860846271969614349706216998342406471001076214989365594150771328466280926356303185947516114712865360866704963187048570302533135316245534277244062454885561256183014395676884407944295422216023420154387521240453731942970843935578774724472630000699918873815114646810798997437805288360735677149275206674878065282041297587907852837703106757522802394777800406472109918903921070589962750209334376073483310779616717926003122970734640485887192937083886462904902178875802973459213928061788368531965819929799935691708883386888727295557081457895098381594379822540850368773055201957711420357094743603182568215440127651303655448159247677213789928491778634527989014021528897545775765683088413221552941417557048186906291159008005540962663704666339039687957075822719939664735594764015836605798591684888211768824645781657140866521402688686802185582940481973886743369951957802268342300583955371456805231747840394553825691592229804047186005580108186567574056736717590371901924910910566531419159141184414885689828305949786970642371664471874799609405705569897725001362478865879224509784730235212804929953454349376355437262391306933154349571543222699053766607887081443719503985401239831018544002502855330924503830034116846642650517356599634175044243300665812671330021742598893330244768931407098474085656221855314926832035354577550535834438203691811132087276739748396211553584458264951721757646665569981990655499899345231515205038061668819338270372396145676108978062197128895985442807408641733459908251643175398773728875239660236075262719657981297091616055564295228009458131660140636079783856063383936198925421807212715539007219230604614862812804386045138788294592230875939787096546701142598645871558446002193415377987308684438954169526665249343722534096197254326185106322801836021275945098454656283751497366216329424384173211097625714253735638256150379802950906163676054098014530719434111909360239532019213793605075963307244959989957010145816993487647845575404366902413802667412946822079131328364191336302967001866427494951095251870143708403999419919267114149370741697864057221035250459641932189950862529423179007304696205801051501343855769945159687475311060978773518514280466073875512239770236899270069163791735695071554742203885406631455789696975326343943241478447041554629732081548175902929491801102262344227929455131111310151717493085940581800685683120673556513831607961817586704543123693214907519737183973944174711107867922856071186479309714633237774076394041286184290525559700652977814677101960934311764016946069978408315457849693919605006969376840309867546408432779294012649085687500364537193606925117194931565907062305120301499484687460934623013162718605410152161316541727587199824396472496405649158993832726424760559282799119681778411389099440259401776209585815949273244541234742559594611068922350837783370149257531856448689161865638397528967881223455034532665931169745350784372706407794037527867396249656790523058865586606202814741181358393920950495400825414740398841933788599669814787927301243787569577662192088411932663883997064664799982044917413836399149919696051800417175585061378610554304715564270412928590739353265960650816425036459163984701349487399236807393861407261779788391002416566549221616719629867206026891300587154519699575387242213501412751736454654626380221994943866894664322910075120655822445693252514934466557092859016999892207020807623010070335883675037199018263398523062231564768817857248712685461169005809700802103684957975084421689613091006913412751513623602878315157198212030723634977018126492999795697132999763356093640762338975576743136956264759578348864636528269880590218035309578126354671469725427569360355601763822235765357716925182324143384156114558748486451037164068197551612340977104347638159018661030116690192190192413980945120740696840964012618847732244925142034139194426107558372675620561585429181454993067034753147809444353119755317346925002111637404737286513276240946022355659861877476146781542901937590020072052308246290046730475769252692942572425873333367480627956785652493071248323023648795141485474087031706442144001635531696276575960351797180975159059186325857802856234977704499737738879643688733303067020769982853647609040149582964443676254677200042409896119412863412597675782434253706207014404497305249819497588860107660713982832288137037717354428119771684729753875181493179432025829109990890281401503486251315227993676146228917969863033236976669993990234035558011539393657477068818656741209589830252983455172351925418169023862410380036404925981845765964431080523042528297403785783984501530857460815097642874119855856425854640859878649769275640600515408317064091452139923273255026218373494938537869435867446261819557294072699123996528725933354897995268666441616722480951236200363557621119762441836231887280838651689966766672437693396914723366983158960513840905299420966648750906892674938879097557482123646042982143612479926061413475631722145775495028477186838056349271088579622562743986644714818031562825428818886072528823732914500778439253183419637277221870601859603899332297536595175658345170476055311095489033155244423887233612894061799885829228579054080304462126941853102670974213129790892632786212666963837724230048146464520995090397357849770059165645125823783838715821188473885832306834672772344845541452663406922215574180710857679989564015409916246721339524007391127692995544738477389305423564627122876699476012328663275923299750923479834613141575445261446443041183536767109413852426497929687274387414586006233160794492669779235409445530788561621165711938589993094027231315031232120217555714818035326907707014083833813629537448508344421732536848388339331821543634834742053115347010268513777209020201824506016693412807753657700177385199289189113140666099274849955013721218072347397835639411431401285643327191695623683304376577141469545273935668094252448471430253503864804511398199175485930624600409433891243027193362665175654818757991113323327956096371645554052065000372253241511855726514952887008430524827975502028573085826132717767352427120006560579191588621776770660123650118273731707400279392385743570207381363043863660756815694077550429364755908610432555653140363183199417745116666497904962154650843676736758657770322798772207025930767067554899948465467177791696741329350877702249388588992242665871190481039459494520627281396714698305322175584525506898135274628230351288521867023747725496828591673233375624575956824185007335313600765425386769012601495210314388185746226398557348657872326002332536197691541385194859030977774556485852378915382006658829941585000190608892597029235287124988886317502389401695886869301974950218276344175771907047176097227079835592502427481587066866750622420383631854118885340479874594236695682488798846761468509975442882388167519178349705604826160731440975631961515377872519131317347485194005916933658689487237448324398173979237339424960750341122424030091062960246778127255463882980308986427085727566830444736111014279853608797952724581429050993879520666163176379688990328006169951145083953453816884283240841340915774115732163438938166912692277415877714680243403215806222345773172605136070257506294844034937835473183507209326407402807606624183456487046850465035151212557917860641648440797411008213091486439881452408392460765624059498773882222569420442355707294115177103081713518895152395451045493405714485147704573466148071370908883086949021304207769382996724798396112525150305232740638455870485356101457540078952671746545530702410086983056522129823079600466127062521463909842055287029964503477740848571531007876787828325587661535533644313761245643818376188218881752878801003809621203808699824572238200151119264455513751355408315184903388443025758630896778056915653898957041605751669508576545512361495187461603466726272043135638533683562333540620015137365125245814844844401823085102484184429053503757178441996636316717719044367145610662962860151168391851844618635251116564386792584028109611780319135900952037725780408009751606979778121095543726881529049272456265248960329078096585319685921212883311328101393135665184090051651883263662489171187177942872738858123699677978709419514899940949710362106171907915906070224424062152218430230235138976563836967587762309092000489672098067117246625250811592720155065737100547221441663663636705864477112830598648553794624059887970497809076213682456210488789246179223167581354891355486174560728219598406959955035063532467512279038398720876795475611617237413121655910179716564926887987647877292302381239560068631409221586665136838390553799900908833552331443143071092987983939960213924791604700781911484321262230741716659369608280829912494862477901681869779124748145366951520533483318170663723223303010876660068483367080966822818594628336107816649548753601081645272588641191896362222477501294475308697005837153312117382293625995537154939589344152528617041769790550242166185666862490573930036763651389596998300006701266640807240893402280759112483009470085061936484164804804660447874072344197939083406606533981737783124001408388274752772716981139666510141396281970161109984160470553511913002718328368150605068196926935871636071858185157646177150224483688595501634663187423777740657492825126267933275344931795203812465940683050231919675535437662104093813525437646101933445255924150292866541222061671639092454407502610894796787254190253580024717612372419569138711542547894531171376829991011081749531898598641176972952825326910308176336081504865268082967332570810339809716419413051121703134428348920584008440872016544255094309686484279677220785451796009561617366834881043187754928172684755324170066682809798923405228769784978447265089687812007029133260298636171019898206791564168668724115878933037827894366855326597771728714060794985694677622092417453985032742859133252980641381177200458467731470761117645287331691034993938236847010775702081764406757847144394499774525753744822374330878663863484435732174978385585708863646533439737143493178059716332628066382789527317082988466514719467410609319349906227444647956548840455301792310659076092009859018622581683686201969425448509250753568379543293313073311082768822865904014724283321800713800843957148124549954586219578286752070895483984513502169101715648818645161528313470870683194723206553612696619006015240220010780766769617670357157445079356855065440522637424972943057905351742975351842208995759649586241823513810403421708179355290836290066639862432246568367221464455791133481215604890867105993826676239933502469431155883019253235742661989662134331631823726925194333597423972977220469342903040399175246709132909222529539738383484493958998408752386793756629440565042978876423798178652473759873326088829997776986364029661816896835510851922996465173433336134712747021071529932738720454325673883488466042556436238442439012599399858626260889333189083937158884293895819205577302775438262010914927282505471581185651937867712189501989278035397377358548625691927729920468044052431827276318828468863256667475224317007535473028623931559062831922834573930941897123459304089538624060123957167962353834329133454693555004854468303476398332565712363244205399113692085607375141796455726688709135329698788217746785440955271296770042097315138624125356755457215339034131837480915454983650859954637581503013714793036928089067919961242101529960368832563123755565387745440280992386697281231573524186940108531544509121538652376409293184494810512143996123095587983207903223868716336889654987570365569886004068827692547922989502528340670378749142456255590665252341845664733153013470964010499180069433984260686659590029655063429110458374882645802248312128676437325945677105210801122577272875950182085314605716860824200015164336272264977343562065268016003620879639705462958169327718006456654855158605500623045011825741892449148846415616486839633103350917632975261156261670909509458509085837243732644783108279448820067139864669387272164197523447464183041973898357894625800753665259595593188811447198837294613490416932182164571348524318126823663543788063853092231252162626402700320174403097775898862639380547532188946093691142568129732986949978172643843594755212596259249618241783558353029256930520718612624048803087570902978832228029227596556524025748198049284927869131865063510066828614232421361920372791346201698029629633308174357996554022983534752227487977011444812125108876797606816073609192682961006143054653882784426401557922880727305433723983907245962940039129817269453940533755684586351939163826577686854564197846822774776706902938632759739945348507115152906583604529934983305952477893036645416644967746117784926024054002013035744737807596092545060246553675572803037640568171827321093081256277320884031819874533385860824403733597880637938010976334304167622838013920969393401018444254147325193435389692296664819099507925378373800022486332257745941507153467752425132587796490843894283294990402727700140101398719728838528236491415797035519572562296600865630460440109298357562528296315047146230494436239610040813615374530291247025779949030340247246112672898615989910942799218989004346003498981472260330808094551306575126888837293732109135752010904003130649447635167394952181157935350683080563106054379889757127470868492108895818799115425002382294589025331337822207921128083347779743167082666551305507358255177657384573093789382088652927810660823537974306391394113047473370100699295053284357263908445003012192895865564587780652439313042345276008554745787354938212762423654528555436978384775421971915947470877757302188388487371225486384089061328639580652205278791259159605895507652525224267291254200193253296369326179863401598731722796208125845801196070293397245625923993697437401636161501357162398816512953629069893399660058179994420770085571634608208429727870125937678044546215733378081521495137131124353234404894217184623437777260245870659659985358134910916538902618789889650866433668785697803208499100079834018257288870651397344220625785243830915302563797930642574170738262246711883840535012669466859943358067412171292982577738929412414802683813793261807203161539693191351892466671587625507507825482031334266909205084830005778480832941992779785077926721152198043487663422710402556032893789362563970310872621223893022986480290016530741642856072103368571957249493177162652727751753282882324082554466610088434108464898490412994970096876123266088935071469904161997178343645255347062397850144663842057951090025456586705212939453822223226077654383484126558590039712016462781834037751743413894325696785957254337779816074547643156143341368123243289322515958536275776760437268850207963792212792735118578080731715134338662746333043741360316609334327525325594911364533999324650685005362808036124013668477067388180318318860466413636780013312601939558984777856761163345735273115522944254485231881285113307545626698706027244987601624162130106378225668309284002145659305816159335764387335220112109270756186646898427283758029798148372327282343091750188397881764625185701531665767159449608931843563746237612795856782641045826552377370875665591335956147106024473601857504964030325511068749261146056293205501928125604623180584349832115018018830273079912495035644673592607995791839164494029611494338534341379807030655321265049922775248205323565302320323148070435451282210839008258049673012777754818610711063512133601430049555592788271721164545189089677822323678940423653879810518156204223939821789048951346716830123635131527104677797543458343878643818555869034662289425332439864311274204806386097126254728710425095974032505403853258638487095095582364040897147676038844167434250126880442199821508783381184653741534287826243257597827632039047314162172161089878569954687206110982506108631955179614219495584665106049504802366585740074498979632165433585129136780150207213840572520735287927869615312045826536538880947958100606578475292465140568274088755981050467297199978851028676737736742281261714553932410350846360308766884234646075821241353546300903786378786343264399612155646946260016172601554345418648077695964798597113789663383468010538845671424551241946878325020681678818981602325534088149950564326791066516288516026115176210572235382132496409698299911759706304874467681247365115094478822762318139650946747358871368604407942980322368709933810066332179739324638324705173798133438821245215866842863512558116590978064884289251974091971916121940103713070322322146202378218433238701864914979844561533864591511747794241685611807405907044348126478510045774538866010171793804138620846102136452892001187153204065921110996321807427915203212538801670914064869697633869438243751680136907150719433607345474071349232241766638639347431737260042026548873663225361862435083404236998276543721179586028104827290905789312320115879986789638918667561420934008533843746759922997977874471755837940924215594607903938081380934237763689011597775190147078158171199559447842175589293362452168695812834254051264098507933124911531878740257219778336060383485279954916642513368204090154331892452962161410132767404623444071852247621340118612391613305428136336097244524531218708509838960204769207978392784415615914616964722699476126082741548164745772520719647306028559986883393784114375688169557063588041860788724320124165073872513820906273757451358755320614977865414559521743023277673930161833483386108016711137714632075285631804775590620871208374159004903821627242057357004878149391121028632162835445285450959359360010030264704853511896839632803009692900080299339548602162424325753909579833291951826274735780718599643400263731732683209368365848846113622112213139686718019852257987115310511754065530647346723938463069239901630730631024178493270016010746365777449961994312620943574926368961603453558893067021500016461567492378057508044166213546412036143285740335917639761096244669821884205296501715560857008716217174008446895981739187220086462895079621698086471525642571783770870009819625279906096802563548796572833458537904113578419908650889138056941218939614575368999308461551170830330769716925777230376402588456463597951218807248883818085947096412244693085588720120794032803162231000984387779402392447369301660073139776561585117284011485526780743673553091452754936455050071447768406205283646798979911744022765903006958465830060641919329490883780109879439208974443425387835871896923846127137822438379285820047785369652389853637456946639790430853451589774229829197003778573121529522979684297702091387847853341881256576446853812507845291861236347127385319497817816605310174788864964233557228243265795146131553823175202838888712567931439488205581280876082903072313715299000197136991272786916410799611149518003286386165861491898323337810860288408898192034835853014157391086495061250266744495446430658629943815659721386330357238591690107282194327609252881533912384599531277360572648693941507600663812315129878105810357658029544062772786014235822865771994199723266926826365600291166955954296335011444684564801324761099043647466231355620581236410406318649473445154499193192250478783308085195567501866012793879298659565024625952861914423182545661880595332747659089845677619234640809605187616316099126648173724912702793852469651013561325841024517406273055447624474580827782623369496729470642575195671503900424300789540220742594371503937804632977346445343965190423240363953572110070567153460529739189929282817664398661609766106057901607193513901259978000105205338599494072885344710118489325568978328088718196726013007869341465559057488574720238261990247344715614501114064612857935806141217060602407466648550723530831971764151316289449118102028012544050115445947382107115614856600302908499599526795472465602509118568640834366653665165023239569632043300123797945783508516084862323207133768304674909411332392186089439421422464446641384916776977100132737273227012161469927777701641390008556257804850487064349984293463979796643186590506024029325180266651564093819915832459751188921633463621952458800806889255684464258466219766349493861321310252802564554926978060728855117180336430954720204111755332133989178414826366548001831162221901328975162034890218343994192560497551336381044606365850566622356153537885218902197158305806605814384300257291600885708492019727574010719577077085890113293172725872723288758889720204702142215627099018562889209808774858791559043385841090050028447875429899396356370259672609025533955762016530157135246028224661782193076879157074023501017929749492527160441815536709336583395835626305360101402014467785748091017899812205280707691910651694502043935993779689626174982420329632947055904695698899405974170883839516518145650965837528271608150209775302872888487466026757636107877196651060662106781400395651676529115896829149202049468461622174331862516310279714442048415074739425824331229200132007016470770953241786495081443629747240112843339557888218745361763835265089117724877102701840940566204780459096100648612506616718846700988296735200125079655833597033470514451278569895723935922461746987142244264370389239889179483291148776021586950714494762641660500107287697090008805100486698316139938655870169795300686496645073274960782946735982796176351054828290022331432607431399153136436740125215622671548815729138376255721738053133240936252033532325734903172541454603340189693654777965535512129125518383246868827065821200793499676271859427820820732782325517363614061370850909013137575350227579766324658527776912200044355887578893301655618161072593311959941283047002443532306806023842763009577286211867238775527540339170098768339680488809379534797184474377569481977657372958069760762065329124457146225917986086275985380100403356101658516810449941156906918505389722417717588470424609543089378497791027819976463859768537067269860813638086962958554622838091892673939498119399715683492455930809824059749945217411673845451411887417288924936717344797928022333115634490677826733746793179926638649771859336193283716882749404198630857246821563188640184964538233144450096697148479460775371395696975374075838670875516046645608301425895629943431927056119872433144837766125461748499567716750246952400316350211061274280197353316297656194233020905316893994540074936864800174377210773439340769582886761386307887349506300986774808382457158238923820045194059266446899353269608045517017086030841999119952164614535584226462808567374403570720495773635788961259743697347829060497154583948075807856739444354274446936800490660546128711998875536287189413556325018533570241349151006021449718300931078609637248469130948147678696236468872442716583720907603355970684787785268915851343292579781254375458977469596492303569503588952614401542188940751202081982046078720955209840627028048735337961222043231790221295890404753365571993542281924357626378980747259087175267144855033629657148041362945166291802621108787210856812014521655367417999334099294402070321771981271497279260138753357001545387604305424876800064495069691805768686967938472371724340575219700235909493915823668105147117972205596836049093250872473541361110536189929841775843313555397794575062330279413230311203726278597097077581512058475875055584864793481002225519408158362817330963827285072777892592059783880017130079932310174059610177066758903100922326427979937545712421177831277708018827800510973166612559705753165454596512491342064930873434961640763720150292459721510114435200113066151116365192943322539080675553089459733632723581158445574235123906683918420219754015170447518599440033808330900622696586261516889480512409152728659122920320213698498347107739457726765300818419816504195958141725931197226701728459267281652987787016836294454851691052570553386883958207906841806386905552563368139199202916190005281938636781568925337593755438150704258802301216141065628417625772815017359089332698659220131027487795483749164422422298445880670462187868108744477232451694596433766174764938194269506500981716258884577859384693159994210916850165278093792780709557310768146285096404942596965094690474253174733940145163354587727461459933644519884524241693214236454563052587578859853628695787293087743662491003688188775911539971636618661902142254209464227030462207041029569649091418703710451183024880449096295025421299689788474670408252875566180101428404401281372512292939811764851186683417980211635914606969928847099301334454903783656632058161834381979753101987564934357036302540079960654907428413325636447115093204759764964388349695712145289120115270401214098977344842470686801684628392391566732608577550528797418936620109529898358411703242907342934265846687551088801848131250485143278518674791439576581478686342676791724378113983364651950113381932204164520782748874091688542177300734251342846153311712386269956362082647951772953761184138267170701555799067334722547099320390823017571714444605238585786012358813323908052769453697250420060802368641696351252148970677936779436446150088793176957024939923016049012515865343259628352906821526708986299821078240132203646442240397670815459525863288232487170797512276828189486304331180313768309978677080893136701541562104300538386931150322255470648340856073440289056344386762884571655150341829388157793035635575299316370612058355786020456143527430265281112392002551007420076020532351524921573241854260780290171101123506884189056042353394695589877586923826155182592296339007934745342958264685941206413592472202872534118849357926982679201888458404995637136218467535373285788607064468784728641235685155476117205939062650998789598885973857504587673651501235268225366328045376987262403487622300660796837449703208769408071956269207592329713658689653925807556111819506066988948753023889416346707493324483815029308476041227823791671862142847090425355935736899641434398497512084370901272054562205863907573476476303391013576188874803165768962765207240295163886960962970867395339984890181306740166633737081893780564982531739604491779736987381618709239624727337410832165286652469200115165986774577005729093551776644772616328653720512785135988048116605268007662063490700130360496175485447833437233930518139061307030986813561666786514251791291004694819540746263443963126203087907313153038810362097701714812945101196371642600957895650555717690766424434659056910593618346134813505476026753774111099589186477080792837966248964968992214619127012048710022153746241810212227472479103317095333486174331294375638413757091886051447878334939550708845787899705470412202900624912268458121594395665466024625824210336874833009815403102401723842914344409019622804123807249955345462901144930608943704175330015386035894244430577451010643156836442626346515476913479622452043550217249004940762357678113926733503327809978791184560279349759448898228304217012125660248530761002993874494627705203042099650835985336586921015354856639279572379074977427765014504207761722611176354819504367372490644094320124375188622116848697422612154699349026096902757361139393990979608500909443268335036967068974993582957558857777504834146118830284218289836716473659657796017157396673141799073389490846275806088038362463357928341537580341270270540602429136429587151261863611225913168886354524824922616571737708079950063889827264783978545538729821084048330386855249403746816988872595788844899960997657075643496004056765417901663348627865676240958778653048928605955112588509311018054656528637865509778448027076488038916586133703373775049464638899537996083388836134541195731414234223718642631691997610755529167218654018454612589154985946883918653639171339390832586844930716727075373876985462747676908178942709927422646355579227365302930382570485080912534808281713755002309061643155649650169199708776508529805251309877227083264241797721371753836583090716852724950987214908180615525364573540277634709483694383254527101396414095139614171328381755752719859872371860588761886433361547633687846017529649788847155869598759673266247373497511968132874460672164371764522746086151046762231352724964680433573072927925886357041189194339671104774672349723516922404783316702612854543951358822621902467192529165227849857441182495774873754367296493800197044456567376896139254686349475689550347781434145334249117849990879851245052995277712612000506772045466389846677403477927223182136390944449958941339329742192191987320062342885723681881167758631801944998846518333863094052688221107307592816150486229833318662599823423861907562716364608699490544295626762112795123617772351226732383561394953897952101964745265717227388874370830299418838178847132303140226020585817895194809312775717723610546668512965296679003670987953231215020916734249613865540466764419199119548100485708993626046781754624085948627978875689099051789243029703191740414273978781541772679222233821430644935904766272494403832043325665548958836833576430505918302418924018943748457450895262478314220600697192574457213393546050412463878465422009083766724265316030633185482076911038683541560402370256491369239469402109351971468761388302635074203527797101936764168635377218141140894586568479118912864663583289433444951647108881418204074460354377489429634274949049969028722603749395522055591607910789814943051639809781336888318441038445171741766785048815807168608322194645394274982563514541273541158572453203497649119229545184921961708473192289359440179909370318059111551548094095271399332192447600794237567032912627898632592639612501330907196829798000319369900735020741248222153233648577003217043191122909243804906137559638105270682604741142099759855205176064059967406434887062039353030539334187499920710654380455835089650252497955807863036725513474435218544653015664425732572088871587185787796809372232639929603793128516108022555372090915388147838725374986240046090880799087083902549511530322357471016386497638913819664750681914060661673656201509963659772573230990994618921279315283386845137872171296382596152735418408787055079527433112829001234728780296830271228926081702983971102807477052595956420340962123128754344553682415858139300145322480795193688766868479378383389869141432335548595484504537197232566581686619760559956849419144832932305363603249126034409023809267032469157013623330545605996266260942858130569984235546762313075406271887007724029738260006685032733173735193646533896733441096061343062772955861074989426945377985746314754155431986192699497042170087625226468820916816367686507088853276685259500080609657807457615421301631985889344389957291105166888575296092620592007423717501970740089821642865808942752221010196312307664587608859268681643689028701839977668144425306319265169832513672992260203035159844273874822745738362165112756763251317245050108984645762745497507753817717232769903256634280502367891826036219291284243419976201134799112844666249945774935803141458297161865466037804446491986521336601887936197512749019089455749861585710701024513936863497804630862781990797238132406227001789996330104297420097849182908433816015278583677540646262752168213394753537609285566243877731085426475019230639301213879592056016157368286157744182978737232300857989963091862729359664075429927777767558809984577256154741946878475823845798015585236208251647597338292366743908810657198938015401023023806016119779999627649738326604644286446998155679591804261264253371619583825905046436643162336032539665374347486828242552464649293986315187297257516085048960427786736799410646720314358523316765819859236908109644063625205369353612103447159158966451089842049121558453159753326522999642375443795598769788689067921869550778676707104693561002481560339873921867887296785713495897385613934284414572826394716085578322537245185234335345677978170453255266420484013864343882451839975114310961726952422267260018583233635797123471391618509511728144039517482667674632476843916583142000785173395289435965794209315545625878548988817947227300461716536249644082933019861332029488453909234250699760328972424638433940533407976407720213969058637549478288822055072538532919242267171039105978869773089871720456079562431302388497088717315128863613557134032689112052817366629152892628789616243854501024252873644751123319473216051309004590753609944189890355281223298673280812557488798861347038995194551927313102494011450078739513804849452132831180493852112210778698767443979180434282128891534804873835100277766875470627280454334139035813639069880754969472808114029957040176820026285762931350588472363738674983984527928533679681094606296808340982745883153169632322423586602032987373939154829622760652199533686144119283335596926089548947141075694923246987970802486246851021277061364013861431069685615711825293902450439367503182755051330265655017604271549728163649825212667019924916597198700180583349816813248289433448766045876800382928102817389759450571852380990850747801671009651976715494336580842702300594129367519891031596403126261956736253886039451716780551095566214197280677197042582097938538953658183647981650025587630969604292555439625238276216946898690130411234711816726259788863761089974734121802242708785705554455591462347283560174151093901860249057308882270713326968489111138288147213302590322654924949700940536297211200479411489538347365903441895974768500671795712567702936805314366349572160169241988027432876379928182520955456842110543250952285347335975851917582619169169749758849745687866979592230514665681767396981114890718998499273166230044217691583614130988118588479544371604778811185595192977263896132000077772515631851382782301801167735060835018938142197428278940577870288606713102541952377409080581054303404807553880229458507002833253634962498338412533798168147056191295193454704522996933573301092160068265605097318207933138144786537540304357087651336450865591615389213413420440991621765070288294501362636360962467853117085689036760034166496481250700444982185192022610487926487627596800093226070919776461255920406988957649566532639859191832839933685992954850718135143934851157635278847971436401404465318779006937984266465281247954299512486065274080320312928185668155669801061757697407043304726209049172776729623080846019345853009718065401087436856780197729552010181703910987379616080423654912927146594007770327364693222197753402792247116782026056880584294196536486017268859016173580602300018688908164003545288153644115284752070040371684383906516744345129298392549044519641919958088823680342869172047310249432569591922834978725712037277643095425586732173004286079498010367685147955443232299547553971611969124939826639837973520277444978410370601438991649427967796638698181763400095348273329185942066102690076989883888134064833748836016637652142794476850652198939321213293469377620015357569974536412291364349980636873784297923054119405984061950491556870116529467880179738494544699376456255869835757767519312966009879715536179830377712654968399944311419012169256877685560209852838723218816318448803202221739453536836319752083815059556983518489020474999513379946716623469267057381058218803038398897012498833456668732114725250084978456696480434379210165938971225873414632785282422328988697657402751149527689136487804654944834715749340997528947486780706397468972900128966346478556496739964024865741385468927531309344948571153637343106114129180580464261546007512562389814012032790985032049448025311909537854142977665521249357850270079012197551142240722531237819103017880145509466913437116227901728394797767004026840595565138346685310145962220698920960372973964475481503191662704681046402109921344574290381520425952952105954492808633409643921611428485452517238528049729342400676444985213837067234076873726402040991170605318393920264689066572026970423694406205348818257063383323526580434093999266049727051391064840547917278528918292172187910340399476875940323227303165757327026111259198592027082479800423945499690516272399958021605681481276885860168278154291143291074546528488954473731881369862062124558455980744890982765220750367160090846244781649122661108814176188393783340752879496920810694224721994861951091334270625498795630950721088609443683680045133219563572126827914199048758323702850887755411998613914977744145407444632155231579642702653571138825320895402517918188007849937183496681439265916239557126943258890932672942020287930096463352867759025101583410555290704104572649938907622765666445214381870405375589235652304048094840865823447125846216469587519110432416341812418488026996379122239817303705221953579392645668960167393145469596641451133920911266351974443933060230892414184021617304365893703856498065324201575818676895181436919355557951598298824680846605539860160580391079987767281451034382940438252011994502272275042348030844320892708094773867775511865362994719551019942146377207233231640353721383883097927961168981199875839627141155704790034410279585243793645638943815759729731686322022027444024527637828800296574825876923573468992713359917670819710728580880280589599775989392674554471300297204966259550575899230767722281330302022463775921050314349555318860302157970871178620129636516101873665226894548905591230055975758607423790438623795715045399065833652153872839083792583104975129191347571123337261416217931548573002286892400278455295467661368807081501913717194601639111921959787990562636050366225739133917125396605994006809787248237583768589418019406635294170889697898882602947086920927252232521867530821094357565060874930909769603509736578952112518108138874892334317784267418298878615339299204508029107954726008661396563450846748090600051924873640327566356760612010466283381449598633655697534297322503288765894717473051572060129575066846228605607499529835743432629883678445587203974262238767293297669549099838793145894821815595830866074738380085546037294338756712905967836984011901673565029094494495751588028634686263798005995044916657127186038074041399585216898343201088818799990230410299793788093210740603216217836363346075884281126260396593811174075480836529117187598654144297020166738683720356618538338394617732183519209468878044029851843780719473861019048229290812616118293172100067194976340186191704112608433980866904894614395033850355377509415531596732544183207057339108357040029531554243497735663456189582513745480096235446762734179281733833536065323479808253798647724884498002592268486921235598352399917121647374899194848044222374137121038794046965881701015323735522866941131612355656245286948098283900296033526497738233393882528119414672687048712827395015386432816448500084545899530711181739439490066236668605632040904275809979703820702904652824906157178548862463660296123788902599043440863515047477426059088901093506983338865707635679412669046786858864353273302221203535082485616542419308504721405042255311518958754370680977145691324359658842288999340900523084050073661111055835222078281044309899172629494160951265039255324257503050161875713931237566706817469431892382685938660325063819482549324385444099109355791692232898383122648878989863126479573899839617962379890292002620542559334125941207539057190346493137573668907030404271368867067092013847514145232103188174330440502220133898994038369064200517284867504171180551248998205915376778870371273741605258818777705161014160721774802467356541223098424202382915830440827812683796334457343051359432748575506274603585357926266951035246312927745249257900748662721064933482089189804426206654382738860401239843712798169166961975607177591166751987144811651568340275230174004805075552991600281078749146859808193780776529668997496758105946441389590232615366294887960310542067723476093287630838678051146288979560447997582288927068566409984789275360738616862621536671552637227912193888674513430756002183426668766599332511817314850054969269077595709291385472860107186110027243342951357708902589543497673835644438684491701800670941520865273937246477257316171626053539960917461752832633611095282740356184223794040608323773724057977222411936823771586292469639545281895597482183748637590301563554124707380223528140500310151167459840847727496557581366397733305455506812260259239962732132886509156642601978128554577668247004299838859909140510604287116649310060189465781145337933507621044461739289821989132237881023359594564496333324863685847177639977262488698856247543409351871797112110386506876091195206224822738076713209853139179557816607296886141068396208067279689493657855834190916018387829040475080821358827207284292435500081975212290055481463260933136172558806823321507258162760639934906115805955918412658270809333667806597870896414448226713613729460084605327473059979456571045913833894076866765838191611868683014314530050224098404758744836398449763063717121866047545864347208134240324167870098724783518355342242253021876622439514902419101217434347108050963348404143687326758838032180253426847552583199346220501376557745288762940935555284466128405351950834856614532893722933900661439066193375380205698731770353495100761136464401565099329948654843570862390847613969620526072511154861915495064971401465707830778098936015715384072475638051010199014460492559058870517117511794237850043655860341995015586224740099382227150522217871638465499843314206847884542176988665703404425793037795479252565938092020791658183638133000463981289329417153772935694928271321507926858544808791438461996865109176848805649241595612051098456550951930676653769751474325829925237598798927236058422066211433885862294012062271492799596521229139963061274595666604657849697555340868869035008754956840542416097599281907168877324552660310960084934977380694237337872973611634244759058822405353213267862569891375005614852138741808130509183210688864445482529591482583293131864829604097902874617772774656272411191010685072020732524358399748524760700339108423397277203810646473787651176825529349998856644066409126699542297409714424644382387188487277462127041575616732111359374475091692231308129781338540993471918559803119918694693408634919045688168199367296760791466534540351376928521127144147525719446664940309967783201531125269931159578608385000487487557821609141373243595372733505758264272823622686824302028139511895274630653176846178728114152685101860179252965884252736104621465865584252527851304769381281553631677330815509628117491705608015763945275870230055299773908966770935394444971906304256802746130868133717412217422835443287205531208500132875830585943030813574231855558192463787602895422458519517237364443665462811873933996685737791174367168158286799431368310276215505738073316082106548230371100976847760136258967161463875350466430306365694841738716076792832035433992396982934558988183983481351939742769898278113697094152228791535400474615127803569860739592906979784593976223860623838482425278816204330070312086079403125561559282437708955658780673636563068968236996757536229361323010799891135691296284107567930945539678918882880399087396687083899601504720656196510633726862815621787542836131742433505583918286778057163303964347325096684631953402530695626019496561985380728474435916423284191000491669797841900430635083805765221529804172933658637786706660716517920619848871323827493335743085665668091042195676425639380767532126368910779732111562929040901032856534155150703305558915313356030798734462447518927513651595652509128787704964938427377031869306914999071300542002613547949519432044576899667405524571783991317131813149506104268690266938222079337130102295832766173382644585824504421474804755716378798187583444578002046886870957344392863199148459875102642151885063855053061775435402129674530023725310389900409482351474784909718847298081424612512641995634820181827369790822197382668989225941282412022327912730302406853403873706445910427216393151735928425036840773488824925848902987661607148720316841579284704985269305365147071136940737500409262801025585394054164902464345680922506304673640256079500156523621098128810332120561673768302948403516012962102534650346429992455900940329158638573283589610152808549679688770008109004977847159812049860201038515837856630023638638903081663456125433622835044980357726385169035852565653938715535312628157021133067074779957020386686906995760846246975574681540365423979068961640016234688422707713148556078918352856954879134794670072734476686312676653693522901230418086778347860499094121648047463236755495047963933434192062827770788702479437794489138369147204463857857411549208914515284281932988169625315522296719236708018221051785416593497752276256723196237155829725539337279621076994338670539509340490100704838670995726019669163851267209011342105657993793136318704305298473906549016768724716041005606797356901002895808164037073363705953365824879656088023900911673141689009608214002500858342033704102830531862495944254214058932151945895208023007172948700710245377447064000027650419577571289851941489122744029386218457779513157179000742480143306828937344830240507867341945936290454879104593455851295823408625032791463382074192882465283104857627175726239150023915548574270096476021392267716334702027279846168595064024509967989723192602746583927819593517639182600607096936634573093360436044419743768627850697861768381002952162937990376111421640909847482823358623382701422159086948685932275391110012365636996624070562447535626361278767589190279233856826110478879261508101930754164611230701066420449069844739317717843379949561561488366351772115279653403402740043412646360017040813917780570534353010524816022493141253023734497155289772181506392631995723616170601201617732724412252437192873876344073722420322684409425510757839125892996525534011567651796810051334382488100713602309596847067773464046957032292303626862967683734168415774866801332647077373302994023924167497486458867011773702219748612450848467275874681703501077083704505508540992385131368891864818586139736596933596521378700734054831124874778278445647789523291280905520629717557552645962315484303936082632059645151452435942774947180197120471112317484685210283244858074790621036495227627463989414848326910484101622059943316962343865494715245233604133947029834943025707933814153134489401567882941538167240221640980532318999320813416714733242966203773161299341081313448417566192469332107818432041536417633014303429451262724467180267427061848258621365618753554251996209891344195776662929472679328822388424465108148847630622176163789728373461783478456149327798777437537807687855367340868264522289089084314023551840938731474909977202173554702891296655126935232622996572854608777112189531177220069737476710711371313113945871876618491209662318494359240369341677186159976503290575587109767215499153708015123660817378119203994032955897749012462031680540054559417932539226634476578000935936601706653053405897396380467284173238450786058476187430771142024716836641429498628969632639513324108016462523014300205336625424528713032914919819888668313204005463478548815126827782182206656085089862386076580666835082161100790587046039827331689881131852693348585029457088606143076202379927163485425523573017120297034038440025778078405034217035801679224836731206010573257905556549510966049861946114976403962186150034050136704547914403688333410447903706391322560566792169781840928290200275341313364455473328358184158767089501505670723352871457594906746917044367609073315198449062137469987698163173850835358281176200416269268861167036287422191152121690541353550830253724988483517893332849101270331230635295210251445938473090863164830396835935219873238577525172777338546618493274764601590406775295514350413808867116328689323768228313370888440906050254583201446030125517851234551115220617460487073300234843235152917157927194935131361489478677924630941552107276729793705651246655988658195683279776595499219317035565069340550078765630749301823098651664623282867302143072039531954201631418324418369820447912118102334088957696109176188381561517170432353434092022513542112703717447284226941903803527607874690820767249887048538534504617574307492832272796508504225927514927781445631802773679768315423308352234963321609004347108331784737670642965195127898445360698396206711275821103119276773448171151319889285410597624126177685498167158478441206171630547581568333860570646292615768569154755007185559743492219423133323962230293931186650188383795598180503449399048567299802512979286407977879688590157423908273275388139453740327864512937180352057221914325641741397490365375513596970726110162275347977304196272673305133394218319812079926121958331876173312775554308636866687371578600527498537780770628419576770210395952200485485674230617265250948610285042970624205407986334406227694344918209975438150289351200828736602514850392592111988627305706582691322792001130222305557179491919044164863222061472721945251595786346595288407480031784329426470167509564337538579803221592794270478449243878801164668014649713480721915711166973408133515324889163133867502755829375067202740473614884070924698209915132426620474109052981460461088869383425880716370382436304567934022780340863489632663583543827902394223853619990034463361314906446010118168434722040112957341388680014395803847491095233306919200011583974058151862659461906903016541965591632635116680750993913119483759412174531291284095363382269121021675436723639405971483784491542152305224640175020902933265166860775766606929764926439322570233890632291681256882633020208920364826582306346321711332039870979910072808327831283499934682186446135605787610489143615975255977397508445634587084198671534261613605408907937963069616862575793815067619280945351739930294823384596062790211267479775923045653853743446598246829186072851508953670638663972186676231300321354564499195382020138527246406224106031320600448940830478566661529556106703776300665793059926345351875823240698470098473107844803924429363120393624204812441121231703239501375239911564886704687652816873812133574667596107564240814492914479734261358129956853836192773995076233029962054526614352489678800361032552582555183302416589527231158245083221645298608084729568504753728721474100343822238486038348519651544063926379967536120893126169127186978576012183311917270911137480467855032516953377566922540433525171168286900051092400458640689339860809429045237467426994212978013086920390926987734206260632834878444590034259819338716896661125787594346195277930642038225095050409234001742077149579119946305837250331638539762704266790177485874878931891555579390314970071428569321130496321070478049550660645359175624340233842898838556908425544955322683819658969089837252768472520109222856255282707470016228470410566694712330425074971909270538359231585490526120430817903406927093509487227421636696154217913524480550295023282258331940452969711146149045645193719583265322096739971605820616274620649805142421620445397278726338784691466733748172876542859272271096841107605521970571824826925491797722740242508906841803209628079921384293527099794401417863146170430312925540800238271897732415929200153456856152051012751903735475870152967620158965792543928524424595035481934819005875377416972508506622713880257573093485133603258702467715489188624282399530400198505524634971805625445397564052225255871675433681550197399510300964400194011176562206113152457917201639555339856532344765999322792573842721326959050153094360527672075946160558557307099805446149922301273530101048618879724337225490240550700422493083574943032714290839492036615066419544987246220897065932195958411089719809137629071950743652374436813009522026163777475273332417175475627278379946065488737629159191970745087779184426420125017316866684158006831083170723571518099689975307894336375652044449601983230781950068651936679280870511872779558053315483479154545987807181160017199511463074944880381563562755880148112510018738368772274596057645049187646706102551564418823528329532798473574953835093499083809028276718914675869717792396527172639749304656815044238342188003316548971216281789231713574162415147293499666252851917008840938422230935699437061766581514079483321990019433213785703811245109884040701315405441471235288500267996326201081942457875960001866985623350299029885550649320670958072562539623099547743197016256572528215906022347605051811359614021078882780843272943739105086406635254304138794286908702828370771269429677858123129586989422425495825871316538080456737593546863053452877955646797467055298773183005846725906865287338597260023999111397486460996098087979597125738735389667466636228677535117185918257790250122618872447390017889168223866717561643690836933084267791902505440717062575936638721014168111218486779279271530072831168624258674414963187712280894294520679401406366648396173701341985184652903901154365067354952164712526661014652147907511820012605295722053358443404534616469102076348773016750414300899176170520197962686410918011161942080993507248571370455131914585490856814507059741708080697361833445216713516559037473325093160143921753005186379593103176939785362863883256633464106040491731910459439564094870365673155162874394786757839466799974468735599514432065943929312308974592365681586771742644783320492073383989654739539733008814581597145228075194395566817875500758175576157048315720066029717371533344840762089175753487164944436338485618196096859405445442217719306229616130269317371913322387573075358226117706541264540430432841994474400899718044054065141262741895322251246182559781290876175475427067105092840282222418454912962838372050876069927069417175195058649833763451311672078658198272990940400049896609856275272656777164248808808406588884929423993541393436899291952811424516895753964520364081643717785512126305868133544464942540266950588794720194786135451102960822069374902816800111435656152816914723302242511474947985540596988166699003520386016207507716610114990869607364460316562349380161930563652278589291020901348983854166482551293786846254177516445210505514495561564256997826759761136088985815465976926611216862537205759548315980464724119982401041323094595655781019552320430948877221636309190773644540136980952090327584816119374452865896692078647846760655604208437674928757753571376191727228789232171368907375038185329575829178491724224338345166132803133453486802437627958011147378571378424044228826795730214550373317531551174714917008390294809707123039010759701774352050986585986585685416093533476565385940064887899841049325769824866222367045878274618857629772339390936671428020142587962897610422163640438393909678294357470741115309249458915418363641414841282447758258730977724297173203068585954651729868975327261349265039298244165171895896084476185087671691994413718047808345028469586098838107644255843223714315135928335348392756591427751404131607899757194412967113990511480646267350272443386407269678917560992617891535875065367482444221788755057164257302608874708773137758429156370141987298936010891473926087567323616031894047113976494084481129033769976234531978241223879114804812667949863327562326560459658988204650377552744147705656511793652631527293036532922711488140878549264508270073538657970285675050418943628194720059678807017541408867713564016125834270904387768465704009489654201583183739054736526743445513531873914275484372106318283280538499928457065747754434792089053069975560351046595452383957496925066488440853331045602628835419159328289176487309082561112657365244288304693674000427728162817036092112644015436167378581666818755253501643652094915859778084782668322293723728230784960413409077093655895221505815095590420413785724545194127117293023238164665431186202330377379095501057142417303095425922582687088547875636129382844845940709882786719556340904157745163522659414359631217498484906139612614517796436085472505741661688172672508689727990476687932029904305036247892104724694155227568185215811588438946159965206237052381357542073835617960896388937711757812235738563092199130011462971271059393487602833360112359566300786996631735120916666987883129366851561125948928255730764184650661958141583108251718861241581234321734364533059585697084922420681125244980259616757552520266003401275103444813574193899736705299589980021647958862940669252595546946197441790902100960324877689122455233532742403165497083557283003110110124276256645920816547693160858837300279074115137183250302134617099549678676092104541773816808722837252276655162710041511399803637964237472477024841048818450047364910456455521150409597528580482965305472946760023325896377293144708722501691786690179404114958889795648318302981583931415871281833353112687721921594839183743933023217062709792861418003268456849933395350485358212982164023770278261803018973139365403743596434992103338632407694607413744677256012856058441578460817990963771510650324939250193839209128687977712219540323963076187524114335623370578435190615608434578987912229983721188119904379566918815207674071052608673404830137117650724155364830272462407067949430298168981632161068324371328408021158466078737408446719714199882486705249097879404409982568227828091997290841711590404168572485996185243479602837038716208203845262029106917639242853575787601289638152271813773097415121335944694041005855429581327173366370048582910410349066916914959941950363092235453786602040202489803006845094916970283675231554300178545671001733636332384748603076138442166024978527451015457535243315053190562065197473870478655623174627575758578113461195306694512298551803249849412723069143979101210648519411854059322310664070842549710060422024283635894205492935964715166336039750587388699184330756571679049901888377914666547051958040009549986454369509685330643520776016575601002105349545307260303120018768979271433470650099461783089082571663855482489506036661976678681486628310408813242940157961716332990620355235860529268966914470701768859018848484093332734362019594958693864530339423830903935368105271796690958271580220208909756326990407146348047883908187277123161194112630395005039611936982968120889385992604209075455284089609424812505068533179136147964579036219493382124340381092696211487433350352629737815018370806516160493296141692318878109020089058407243164416503005067607334839646471917136462952782321963806269794700016228511792030154074719875667848581323946717262810107463025575679510592906626333328821136358843536172249953381098270176038334557598748605429999475915138455448675677079334109779952961378881047045905318157298743669723753408602168445550954817579986170080477336314739615326757757665768552650864875834672326951791328139154516396810577865494415489335620563913497534171929184958444179130933457342643253745358384897863538609888174561158881255268607258115935790219843138446003305609045230670279719687503510409147424387526910941464704777332394868364737593728595687360709225586398282316635355519736203762262924608795210676027986526526195098969190085195865339364947542601731125925306611268045349747426126234130860736280382562061331748947088875774608839400728992478861926611415219242345055316590049350091055409662109296983398786181239826413793315971708416899781426507185283370042053680198548878228489109273207706629191983286877077793043991379571932489484050270098364022528286993681585412296728830167119565424781302982684232776800311869863580674046003881801419010419202816472564462840148240751142191756557448686408796222994489634782734405741433483050984596831031314824814975720849175884480652352840946631401503003574741622302985864332715671596781292045957973417632285838432693891022092595564355118203042510273690554577856494462897008967055196148918449953414996551340112576958279070368702805699247409872326552520583560175009126183667133530218132779822390933243456217136870829598094350346494746888833762023531893151826182337143385582586246739359191449776795218006821548773128952962457541738392445745481907908637698205403614955620712293938986488072720164082271307302451509283768425603762434313027511885682425829328731371857538761023337038507261351699601383158538033268006692633387608842119300658909001548849720892407455903569310357187115758011262430564948458230276904475373025360660171579395658161853023006038656143218333693297805627763822618301145534893707782466534041985633868675447780399069434059480316206259311612302806554572076086102086781698892000161318543454147376203066616926381653377840718824862730484805775960135753029005958812468717385560973527298143067665893635723727072054232676402707441428954450829662795996447762179891531635245349348780351024596453060707042822919379256606313707303012793083774652443499880750758519383917400518259445758470566289304969233390187617459656311090735998706936007246869079092502224098721318869100750915046314180801608225415071615195500887225040644551330511618467784000189407295931792621326056909522268542124191570733690529834412529279287404852279040720894619672139731425832318724199608090129894418492346567183470970831293482186995613039550138382725643968301719706739041106958180417261119525806110782175945335721303449034504875671088351320596693289227730409106565956465633427847481199649640064042308279141821247615263994887318208213793329462464490177635282391756832133416643938553676020046540011344079233383584648234757860266297481150078978477281775299151400775604448565992428614339221596074915495104461189536030159050807131902767907138818332079023071725283575990500830474954866093836308730427013759567943728257300030484793307815073833438477926135855308035858812575647560155739828519507294023807657929999730522510897888635116010193412968529628613823510413596766815016858409923941682748236112743162123468228536473196881519144231650363282906844461256109215017145952557378610366143336863607157720798799613010486075249709639744163158434117350410660292446654082344151919277297208480856234049429030334292512436675225955809935601652942547984144004793034985778706203400647022501098992775044154232911548364448622772772467921710559340302547416530319712212339471973712956690077243155071855956572438269422455240291360468031145455433014674526417424460223299298908635359463106019114196174150707343741798474693799674061887928476966277545101790004193008865879954352665903019962416499607537560618167854969739027021127170757027892022954827584316757256262513381661361032286733665216430919459692314377925930832772743875290229056842945876674484103152149629975528715178605240368267622169979653525827232000499144032281838070307237464449148168863732371928300054118242164456163862038467704230049976730021139379535483353246244792282531831071637897402699034041131559503439230199090450743377343869306511279750934223183615501481228738530309028139038043995258357819161922800209481475332277510844338048414176219242273261941211186780952706500245643992130604251364406154872380158807877565615145441969062513403310953530788665450938636111230496142506878647836530585470237509800379461141810637253035036853148997946621677671725025013726158769791405252505065157503138706955583901413883810804261821846894938563893437362151647181970391020020262285489038977037850300237009421065637973682034462778584429306961844173641174346923778596974894742429650593575371355894887883814922415092363786445512046689356372369313016961694089287751039242683334088021981446898650814108446359119924401023622766333260366510102707708125270293580685646687218172815365443020006397713412830410465338324396263337338562607097429123449446435346681954045820250172880408262184039178771894750519601737172131841866591856719019592382836129843347189920016693774868700903658926040927251436160717839534520861641665629474418986850324813500313739861958155954653302816716328858186765064832694384881746304647233861067794927967353444112185657458451315532112089775898812950551727829974031287393030517589193536083125278730762119907774929046248657299979856261524712406447582250779810550526275310567632840906009533956723565948333711504171801220163499084194859104058084592545730059569615934548391131968925800269556415573969264808231930159860443608513632851471693112001717305915680134290141764477620511980599796928376689729657044824960617729649298639861021903980860092626057178078788754161000698699922245161369760570353731927949830790812774377086989088116258094198797508807069414356144764269932361791671427200659594005954855342655549288277914994588052395493437561692274579818569609387095726590316492460651718568175099429230547432661090889526195340505094067429987100352944762344470457592557360471841397478482560222978784163720900065794312425770960654170611579743193192430752323303905628518630502219050437267431686779454988840001979831645019741394761766154347623843827293513024406811737193316822216589950270436254225523915583998715363291183042408414010210786771749456582353171157637036502577808331480894289498676343697233422884946647894378831944092227315364901117500078678441525924190867092126710877594415323218472145662234718705629244458281370608868593809974468510576902819063176792904069035501298067482086756399016369525474791556301863201013911990585406852407511088895118045186748513556235608888464758989253904755236009002326163963827144554461781841234344591432245603784257640410585031674572006459221482729049554520362933732888888447013456556429133815771973619403001643918483339108792163339454614899121693073272962307978955411586423425122964567604972904319572325452664086260774009989292736707307584172866462629711774036064397074506963590227876233559771694796971008818789358201075294985342476215796973008888078444417376502194775177337983263978879109972650407831497804813282910985582206870308844667733251723400315184318602482781869562481348307394566245523170646087523027665331331994528008289328006414755387284150677501561470262692972561826931058076399714914969187662052004390686451913683259704242341123781099244518411777960103739184872754655336634991711067432549372060439840413739255059522635381503919786237916502543045043367059991739621208740958325570221084500617433962869445026161768966902822661104764888675993498349460024192391184902913838856609398158778565189561041868410987684465593704419529985635465054234761456379705152373150072359114431903367960040836358361826376035625141256503520405669921562150420539490508612526414013437698642055002337050517642573982381279656220463686084182023600002535638601479742816036484735855557785645278745492464740744479539014499435645036687433367732525460201971172086463398456542299886940561395223656638448902040402713744204651451299938529900565907257517135144536544794697754237391012175056327501858189508340648865776011040328032969130058357073531628161098547099402476325382428944050768520376917725828183285844182251588718701672317881885656539005500223451916619164663242769181461126479858602700664673381756390525188425067545643643986340586680178173011691791392045493953518712180421636303878867282031016731565696567399113167129350427325415509969536194921008589078873565066516482692923826003054462218237348650468308287140005480780023872542136377215499857259499877021977194385677182960216892167494746274686601338393226215733484990875950467363311790271473953747462163091250842396435948913380389026965565590803164983652279435226281038193409445453817259683343184780200192188101108548819705755165327340248360559433129041963315885703392569064345715863140579257921670592072733433879154423210051182919775441205555803821564104464459989554195207237840374842324754358908458675244032937709157093437206133825968228859576762302563556376657046150025041062835041369063355764393325481112781525655168056137583014998235926657326560235240778111237923566691551279038738081919829890527560587965637721757559346545748712525284793284525845014220679275502237680277741147146744541677501279972183413366055509582925242723725248331921502310703963793454410323829781904706901293844186867393459888046353555004871397416365408595977824291065584554593514505140588464557757583591022218158545426498727973188864059925654549802379635608397009385746509708240495282071592022661191876953829939252619872996446399961146276924092348085684168178956890448512711452110441871340615580264795337281710316634872198624571761216858390434716981430292404063277070593575560280924113943737754293576722960962959183595853761604485528909746670958648855184899113247500464893866902620832565983621020581169348476777545212710681399776119258791363308221721186529956547503588045530531336718270947324381299235831314657431700428315564312973407462007964049436654152117434768609216318915863139593032800980311258649116154456640787010705062480875654711615611089003351268942569899319426836739819796595307705790012887605971840520077150957704137634322303698587335851504343503961972626808277470689682719950374621912437359964189729103714996048605750977738053624257280523032018540454671333459994142983506986850724987707074684893096613659331124527113605120297526730009653431923050026526322282454889864958556917349494458869673731547452404347137221779154070651144408181884737513053413859603543196422049149599995091552203183524367138446149454412274963205770683283165047559264165354856480636199565617394064420906445593561445992746230763628312079878320744336538031694954325695276404282302225892708801489836148313002804066388746828600528507705650234623515109766848716744222458264711531152028249606417145996743064673439386715468602775325026094585732058836287697782302798294076534946412046129995148202945408046222594464986204973897347489753545121347762873153448647158824491256824634164573842416255374012682246714222455266627595960245507065188478801665312901557566024556651974318554925709539518456639497393088293135883800341624343216706348117632025663326207717516003021370751988058989052379357801875203595079658527676020480935882684363930405405802659361678447772633437086923996007878494431765070544854393053586518297382380307066523329012213002539588336418682573620765432538835128993872962709478676334884241981574844994898630370049805591228936631998784141403429130907506398690600045229108648123482952635346335979333710532188880447781953950048722494865941056994768165405997124525269452032251092237938832140712822757637321479936389938135089175307223595405655442252527964910275920624122648425884242805226172001606184715311802191130085447639870766989112128332382456785701793978561998249928250245206949474960965498154360253983101386302630271291712053462681455313500894777491586384852748009742028381515401251022500936970546388619452777595561621271740274759700801348234980559128925514688210758612357857961278188913654284881077069795920645147548744193099149228852514704562073784664243647443605575628659083882774390700216288614716361092044544171895615053944695082394433493972597849968419330179237678061103624383675685029799883389114592196930702986930062747771184144001800818200175829014544228012468504803395378204630258572591653195580251589732040249920641397542120132738157672068064376588723627743256067632552670227153497999904976771231958210694479293033710838000725916292187204320527288512625601795744761059320368512749046716346756336477586719337009401968779166610084767310441920734224171187935376377252166478466335795092587116356399847177931537550413749551966600984655109494059826716310082277772747286976485228255822630919631050000294525329337978964962514529027403818988722378003979362260278433639693573679528785937214174172228417480124682901549795392669879907255619191525634574149308633013648070549651495771899463220664441865163158700593846655313337572882606757841075765223153950039475900903266318120860695794547303528487253610705021570087389449877450386528532570730505266795553113649435321615371155504899612933039244952364832135536317144306623124658731332342493510864428980547566886705719246761978038332630808519443644141021785017249382356439159710301816225294484526611287173508866428768165418105302253479849473358432022218631870064696453393509418590799229322779724774622895633723662028063626087165858203195865600103897977216140256221072498221876759796461757740783514430007106158602649296648853787479522153278517004215451546609922967077420560137841869725279463541064850672813337713121330732831041394939504326774368579676725415230710959071932370734284689680332336187092654143154888344474931247854713379348032279597155500460344537369678820229988827565154252069895465569387362078862407629583400985850553695342105209295786452862159909598611454858844702584586153823714530253592663467373734167616823985905624983562309049231276245577044958895579546678135402532602771211378076637338568572673405244710099909082383530631979649492956883537883302127446281593969463539773775624828929492371816014198231696643789341159112879299895232357027253923458651542487627512534892606650919866809711216366129666490996044150023346943349577667003759254329839655376174941517526677032837324572834325020040108791489089561113206519347858690330791456482361714521759741740917648210247309578978508549325023247004052645163840220210517896313069538840324682828433747762692932216333904148050646591539593946802897726376413130745464817426806431921397351864696714516125962397587060098812199895492947998171131577540646214004835746783260439844151768110789638998160561420708204488401814259174740123910902138542308905184887594344059769403718319846828367467532701409589824885877382664241505505131284140563050661329287831824792709225475467179344726109997863307247278200939033751931665692147127257737846098360235925675552930136686748314403561151556014881216362043160524501351983165491900322045501235764510443235879998954518726700399275252476863964275509414210138995785638657880057938037188074959652627128404268391736404073072420866079359073303041527358637928393785274863740537645336167294690260326026815320133418629924778631242940833198133207827632961437490056731664401596577678623025346740475579674986463516151131829376503401959600033689221362238774741959840294959133556150174196351180415116046434535924366316216347601491701528664571220991531486689610713323362826812030453786474991298900569982471678500240577710736564335870826492616229632241274118996485718334151794383461406032008570979347335952180376116283116604058819310681002714958602453071615556795354044683864421639954160550451547269992417006755723511257597812915551183115245072167714772857882471058809083036047413660237058136283013698030430147608647336589738183961333504710900068528041539719112238961608657284457938805018384389010179843160324238967426789443503297770769521566375754865660290079549883121824798878850718087076162299359953467814000892263330319318547141261921845730525790000650020240238967360024066580755342132690250091892744470637523478827295020242254604728084261727836237489187042915958897161856608010214499503480971559622595810398430988195143307359384717435970463388150510963321629383569996463991157842469624556707832320571745636064755698355901599857170495975988658379090215177271361329555530291259697366465959992908934179456218183975910136567557435977507583615031935142205628090527247645566241465550035424557295422063426933242006631488196327746050628397392620234629160701858752090038470520360384938538488322438760758142373553719560410398377715265478301652635511449518829309247391532130320149390622585183795258337418682733300126865500253361485832525154156222859720926669845426644839585264834081013106494609047234421907535729913316154637093885521233716004617373853434056959376876081694205425379875351451960717004257012811361546178927916628573264130464847090599377147221461681215860666135490591082383060190432623810021709206558601068142053080315501177498759240138157416676132934951058193773432560067106061078278011878808821006938142350299955919672333545608000839189073808194935953676642385975902481824320102101712124737394772406966079462485224069750179061088477166107702127581501613281316541166783961940492072634615205506003892250566222970544605504194000913021067084608901337764741683965896563098268244085782096191123522246451744230414252864338098355001128022166215121432725706547230609445073389091569199731793205074856924967815541409499916020387077288877333265611684807500491399749975844339733060588688647727705668086377274563991601298115691021409213401363338643633902998160756842173760622949767716986790462724263985819107704376887752542947795407866982186524179829038353725970281113466021526489087395094074767714293821409742653021096123771810208362251312019877353166531623005023693267604936547681907329592032936917406369360666018483475993814309793061952038255098705200064674139561707819006772963851698063922069168260036383553204189249795151778110506989091353984970849611134632654269031750033694914955905686997059724218495746523378126459973699791469198151912451539406974519058045186256527993719707790882527576060776904707198407593517608402049138445248124315917862551427150219830726673534682215750676907832084110948988035499087260846056086879121202168588531197070378086537822064278643407781053880617907180698989103223771284660635247128994153105560893619500352866173654773009923158981665855958571445760457823065456047780713555812407588174585157147427265037717895336244813784790685268828209196060504469513538465052975590821716388468229209004255066929738197606064865819606388674593006621043369998435904770462232637770891812015487934342142993520492910319898315307472381980815246808829689682093713339001509741688269968532429293336369830221635151570101033368686716595087253140726945662349627582984802378458924200364510080236370514627905208328580389703078010893146695770451770636026232908067125209380904026165807014404144792423589669691820944509004034593083358688432938074180350724446438004128049948083335263159577282730107174169029230902457231503089349771296241491656458685293872818178023809091421374441223857954580368629218611404584991166005623810068755644946527466418616169986794741247187856173868827813048064123756018664687376496543916784924131262867334757429830919775618312077368119226863950741745482661221821117578487016551294970902810589050868966002067529708186882727730393306935207523878694815573452536841811409178555589589464663489490594740112854938154644168374635586057842338065396453122443623763123872284627703204093055822878688163363408493602799706044280460547653572280946304259960358355201189076987002938283879584718605375758351719761144611527467673136900065922782787489662111365565559630870182892474167872975401162444046761089156495985172358275141678354522167145371653197312495556547459564099713830243369885564353605559649165845851921186235511999709974341879695532154373552743853445749948899701772153859598059614971983460522709532400813692835677827568826688906751310963798623701284049590138519465962693555475346937984424938962661367401501281695154647763374815119295542085675187921816752747269819651816262918080445902117592631392299878595465388120115990304051341335915545267165278367681132501899486763615915868469445811212526911624873746252166190312476268798396719254670998717007704353387165954092044028740150509703821922275899132284384655366512964648021196569007947354616839455893478137165810545654398637142709689961770061354094069732561399005413560019999159115009352399832962683033524440561092242903858861945289215043657110369323782985559460588547238656917341184897810493977362640019653529392555805647438948605234929441906276719464657191929185910113766691020528886439848139091088905664516227875350055696972448870985711727786775193208063640085769501081502099191417018453701582053004559380645249527812200734267840188235271306980179628526061330692343017471248256013622224173958906173854338302791376978030170659341603904032032319641540367097998366900383872565823838465398321773344239905667277007572507621074013859108500489843872878369942718643239902343632516739958295431588911593232114113706622703470597223250317835204024913091065369398406826851087559465242823410217780804866096805045339944364014015902437612372262133924039588429165660977310021294455088511889478412251514893524575446303722794520606003804334807352246662637807819304229712912385425200316319202693561944745084152823019931478686571720879792038570118174911720142611524801913093330730796625923220614954179574248700450275018088193065216658317208899738268783783018379723256611123173740218672996021197018792557216380535045270967273964010892880604017192447260182894978841721060398794137514188156946725419528845892429793238889563044475699001745589486942375116734679307359003798984892697316925186986974848903124314247530515173974492869186201974089548336693808121837597148077258518651325391527297906565518912526853928416858335973448669129529134766843547167510706192252230351147233627851476978672425909605002661082754223819998204979007209398081497021176038055910312678429197905901428584138788815358018215920276643930874417177729085020738660551608018730410545330642171132279064036836725836794155865205230634649762101361431859643461857876473955796920485253635771714960889790590566104835879881073150277072033367032003959139083519468007764459866136833078362399205419249340192476794499073242191781067731284766766504418881091716594461993637090596333533038072756883108845652438438664345642892453689886117626528189087557051292885400365786042103384716372697061154542024905116330058398466043897517753343163654640259091906331036753909721863690755242878229299632088688528956930548303959541458939812459919213653863100709334369122486542566608240987993585965468192647103280077997898074492453778390221261489440258644693768287196471526594376106908716360748706611489375422906362568376321487865867698912204211011268249744395274331445827252150827931023030688928735286350389194161932877599743697807063394977278044567344743233912923195444557933489055592333224507602022764332963794074307709276669339426870321507164017438277036789432879698794574357222266390652823759746816642434364617379713950433870385108420868524133384691262017191313024005784606711773443163805956746012035689541403628727487400026380373394357862767359503511460677900501319747800262393979285329725862882402992442453546426039410402691995617373101038919357098342131488702308312280351222380835237721149482465485891407344955511543058217080118050829959843871147462868081122833708855076732503397071646940042260689714023909236448092103300312397383620451193380148453607415351306081164414272357072676346053946763017117819307371738622053237609925705285530247066775261352012761766174130157217637378757942006397971169574568413333855734435336340250090321058301363286392266481951222556113584385014868239285782397965880525323820530432785129681674040218673650335597864295066079792829836261680719608059115138446432807338634209920047202475458400724932382514560707070232043802323974755524095468923496304933725521501232539798275298141240848939708204128132788705757290596101866525371560543883342424673908381984925488752168372974734072247059301758036137414981315038781182742546641817592470553511464957608955144032631515455308726298946035335067440974660566114816046879159494787480629426490054109959330648943930639385659808238423566498851677424892272542392255369159023386524861394071839278702279590781736572288269225208308330701995994175851082892189106306550154590348811181631122524288376528774790694065886999997105371806929086908918077615625327966941818269052824461142850291253098505026695229277242302549819812989179191270978259776013358595955494365156446176542095668851265070782724680481663112789122515336449557864835639187136858654559947773971085488467538323855473565279442721396416175811907547290205849277280994639726339978298912940369072239586649163809353022923293759691943099454598721615667798925298484904383257572334578893781231084610500544283712829672639958393125257084207870579827459548515095223093948536541268547536233597851176788887013679325589007669616283682512309501097439891637789912289306678078040621815208903468374553425762770900566285160162260883459042417581078345297152165772569800504002964198740725983355710772494274499688108647342716306522009961162852766674176621688666600790642442582455593328352357242432417126639291788534730906877136961386794415565088481584437809990751593434954472925950295884777828198210530664022597621027868599827686079920440946462185722379293240591510584441730268223092688796399110597494854302864412591553688033935671156640802538656045347489513703771909437406003034770991314158349006842878828060701479906569564475416548745017734264850316241731005641170540454484859910150642132842610823277162608757042623828279201435282887569330745477545788390319217318761919295198585481228481530134151061837103823668855118704482695513648309883841236715794365414529877782801306307343619812799927678055005749449758908057975096666716357901617176118318622462486508775286383166303645249647827578489991365642064166549628740236849459568012487766085941569179994948499559750005095774675822696429659371564783079957330746091908440422080804349352397406851839916254425926582841927113063243410075901923010914829587261250495139239661112747305640289775657980027604005099847401849895886870197474483884434592625253623223260574843293089398296439710715145941223863296000588371372321662588919380955672160888121229126899288376097419456116594351923960273947051620676557072363540674192421312007576176307360166483327437634816449939432371918790110819456693339738695697008552621590389451983565921866981500499245079183831684203932190563846766913802737336300888034322505271741558283599439995190510294708341764653303811414677505385329170067015872450768081978465112375326132737922825398459048245446218417623463718193203653310139701389630851933298033704358969417689704476258803060169104984518753793189634770183038837006082570894809906583969110195111955543053094255080279166068588683987353956736895109743488832454511678596314090733362722596584020285093514622768439541748060055217419464901114817991329332710163342611009756221613525028706666109691561720702727483953784110689298465884793726629243875305980219022055388807634288457571921182461238647120464083637390209824075823258914220604809572236492452738246545651568673712692511434536256218697338852457783670333037496985301553238104582465035785128687286404840203376945765443624600866652992546225580640439143301922505938188482897598966266337106606426447898434999238839147144601568758725710887539602907709460234579938988876358083497874879841802454798997367683252313659166004297208828069592848104792170348548102208596054505324305733348069685560422494311136514917385127001715896905600541885975750932608341729468385218415776463692119182630444309410228146883966653681292263286101197750277524001567260752124382301118016128600054952722528147887243910953187400931230983545436881923993530861096435004707287264233380148265414738895892438625633716240795507672512000246382371630217971850752566125321832322311115943973521243019622754173890095514093221764499050012241771803132834039272019706095497450154484935635728658568677026443183996337014193644609964955283198148186328645994496940632681331076340248217731307076244920821428101183724252007160208856009445428099036402987181048333112675022606450264642988290000418665573525436596352036366176040693525225380818168880483533148465444844696106940253998947439721193322814908394182849520044372953694976430620500947178941089241434817693709860207240497600409804704292174135072986218973363058032810095663464709238138787544234217879277220069068131254735116747353887933104319042292981487675070626431839051872478407633301184520265152900118927377638719716637218279155002501040159930246989745448228011416416385132645088530656607067662604917184747131590936235258226214310800342176493364847354530170678772706847377552465284117307284937639083515217720540818931442026716529593655455155562356664404140255667225658960843137996668841176408993206739280401859150217492967939160765362996165786407689554443917957338951101181743823892911007475968121732536449272446967464468989689638202595107807096491117006355496777394803389069974798961940984139675373866080208686582288235247748961235802814288206843272528907828816211341082305282261661168912188598675133099235983830134118276935966832522593949171471916603540305502512750208483558058762789942245431899380476885147362357983866146288174099015048066304592803463853911772551504961163600974215271674446184218339486828809594086198409191524591460638248848177301818626995153097494172830433643564504557051033864747460584169629217710043979154982691221510122657722613489942969541045862254174569400989875512912394545833457490386639075819067144104479071018624749467839592251236890515616872124248798851072643513624992848998753570950982641752503380376979742692059541628795700999405693289962598045250547370622252345193881165722398251556304764442333896724565508605087077823209649330935273047744667992938976052419143096550885804224453656055070989906012018601883987785198355776574074748802637357127653247729065554357625971384108081355945431466071687879784838442637944333826761756678916263570713059040181967115813468091268744522054693297248124643937481855909324076813320915239272632903881241204216699650706277576950154184922523229266645628385672769446904784515820181796018665608685735516482052863684072322282795407687999237191401796450322695112908856404508070283767089778656805827044497372151245369214169480429510226532782921199308857125499779387386264877059713729535036651045055126090248258648370494690814398187411537808535560160035385364223753687865439139022182546701525622431856278030971113235625796540311431304190475978654274138079340397687087586602017671107725188768506082696070062572278303862973871678564725521187872434110749872980637640680581433985806203293616317423180459848959895978412310078202169953847658196361484227360828042111196354725214596804477983968400362511794799473129594069861817272350830304246920213081338585992321544289124404522214222938123784132159883887981375306663712298734555089541995863978971355898765377485415946582828805707654949110395049628331360157676126992897958672669285810918364438150933828103090330370212697320519370117372638770676818315309443216890189043398913661347682595938985330007636997061789635476905472835083868192138221693845111601414260423682712775657500450448136821453124502792219253952966424788757712491797333958767871646173240781674012446380092931139082094966015565391991829915062357028857705966996459932587320240306513793507087376595521537858689959255601953196148669816210173610313665785452405233461503130159721480679106924861734418997472112660995646144649852217130511472545980886954674110915971768386731787919871241066881227714611428180402779723073414620363527784826594637490123697234103704248689949299150517419581723898553451195482528928704950577066527313380226339038415811017462992994197348396308813763158573082307314907014444933841567021916829752204233980499533939579724775700221782322274147716116698240195317832998283609984156939692705908856650568508051935247962474521749353012952318127374900160302021851329933195694020705190123325442775938143699613818443631884424812841915583672496306751799247513937892075290435691067872504917599588382240219169762853145229175686564004990010956868401560121693065567024359668284717093786416662472957675725971839314607498738108633465790846953944015753376738192789803843067374192183256784830707231366900338704451133514609146360868912101029770296015602432390295503614688488856349475153571574278939570134878828507056321091378397461078166363927538041828590717283359433195686456032433990419197101483719625846280841189796169989618101467237142596036707015086815299947504431358774154524779730997000304994449227673820040985476667192683470611823497243479542664362425903473474994206408454279374046541424611770672909663609914593242838494925498486585764959840580128273663141239381321873965640091527648240683811113571002058501563869173556336763202681888944785661372502918691995262353691820024219363761553649202427555125545405818717572350160921399334472363442653818724819632758876653414311763824260772042881969024032300608705369526934142573653841289920620111150029328001079049486514236174835618923084962319232250002521133521384568246452436583609596814166532466436423266444407146189930485996218495162324500311645279638008007334249133405016272635667468729742079343869417879859889111399539216406807644503903995629391092773188044298002595083152214765475766350672171411295736094183201050621935954415317309977379049275566832701934313989186109404233766747405946754411233739712915966303615549360755027705228538037049189419323848691773807532138962295367098901456825736953122170227221275291373636675227294141640443769707980826423710439856047391011498678268558110709853676525453119636728151456081108603338583730471711395814014021877576607883115835433086569438782130106001905733251909634023884755242295624046201850897589947048228041906731649406575531620856840751270333579270960866904207578240733902577049591918846677208401476772373617548777238771093296189595171668043162102573908426714505476145560744456525404994394023324290911487035958643984464907502382989714378176188684911018090075474831541292238637494863316063569284071537753369564829164707600379964814150456723988273666748127845008650799676544558664495346509945071810651723292880432664937030125011541020198146168916931640852091375284512693456492830370840909761882847274951185198975035281468967167157228019597230250700339446624249648935284923555875862436144183906622818978366070706272246098842827356303074531478044285812052153794411223498233895088833886827586190428761540622485280407277885839411801257313183404733247332552514931216516147324599553828330059189708341365939903838683320621156395248625033450464471490693339719735986125013036031060017448137252974897703540479218273392162305053906641038727194623139310409819498851817217629088919445014389471507996209436351209090757569012128330956982848229229277408156742934532224964718954195289714841267919867739506613809531432889239596087430774885308038069975854834979448843610892003006828334844535290286407189490260496879103141873587024722097317948599016704616871381334199796720739770188525436639453718995984153481721612928214690452981833150054969490856425429827387089592474035086806192199338250847808707757611019257117051826619112383013260612945908710309966785347212967840282336722711422045194866667996001423205006616787417102363052409489212288177694110696010305010951918086912818391562691127382014765858018003044908104923108415494863842184167911051124512119155700995338467249101845384696578458230676809258821140689227184277006405681333689867561832195484864948846759260680764803191258381212997555512887486387708258052606566871978772787942499626253903693055405477081317707962638248091926352412966955385091384556162539311482532912342992827504646432401570665637352719902163535836100203942119470372057677705883008793966521334616122228553891257601798452867267514797829950570538756225829144907794989319423066683909673117226319015979907937570079013740037642501005781636898551058674436597909139753316625324712717439373408363789804997842149060431893818020258192789798667872982904574237303612758431829282908298770196034198838373109055035028935839212793951324781647596021839484502175056823603981015194248679417630732072179180452152077314823235506159892169695888659810861500190244185587762249524859550130540529553194478596881351720677593884610294164747881247915900836872858801320300825876922965586523793949868991419575259805368014943805449435753628079045485105749078473996578827053628997760648841233683802906362688296678506768632885947022201717768253216992895448839706425459149263524906457199050639907386612338455279823925497923438706372257887261266571978057529621587655770458536565953148728586474364964399872883588245120236412764744174943871255712744485991306644899200147204099465088124803051048830965205563239007205999013210676826244825761113067915431124694304814489646645431069812580080372318158961751108782525671897985772359205435725671673722196860670192811478227404923175735811522280946466722459832061523150164408897031588719403823328489596517600983635255369598213771757655797311849662447265028256695509636408553799653793306603199626487300618973249818713582453358102885586226568407596568539854061559946606448378571991907766812110053539431010737899263254645919729417171036624274552788093635623922816403297097854940501131787761743172175227613548076568068262843642136464968975817343782197428050360473788153263779885922313070199975473800135778219929067072786066472895579662680288925753387742949085250681673643893249518089363554497540744833259531384645730425783621277500236594332278500311201095650179535371630588437920873691540259515138485256459651651834982504378837692110781561312813185018333970063969155800556511480353264675335179208414108231695992482482874225165390445255154880599030948314058253559404398477199196426848232439541896656662002268190410102556724546560199467774371429127834196276326495781515669890724071635355702994859237219454483023605238564251538834299219612672530129362158758193386243752546693055564646263369241336286547389177493309757735985730846796029251745607003238016080420144555517195997408322318472359484069936046457915787825418357475821383952140930751911436566324085065842998804422692950843536948342299223712524735546510506524904903976736028622387520309422687010974046872007535068641620630174090844681162645288770825620106063045053368079181799454636773353339322454226477123016853143931861276613939309938970682015472146261596780127850292602996691673145285654724379286650351241245316251826981693961181915442184453246300266593146778383801033321011358090709755043949747620454796691694639968888874983887365899580090397450773825249586544225295384109439998225799890537805210720084151139315264742082099632298384064627551135773147287115179525728014891374289004047448906000983950287872716227800136812698232302960301330203319355283721700486967455100883970410242767059672617461457635706192200921310469123141435125095333437049745268207996628826285032130859172288863848243367934639206378899737786542866007165637141960554009455442667927444723193487486718243489551226494828793719883075316668837107726022965111582484851500725273650458722503701060441106482531795889816282826322731680776181819175869860328339401370197830015612029849579339380743914680535376823079572948271204672272101985232087585706950779570218562772102769213789962666941391296374179539558279407170756973258724107563372954250353800091977163137506094072252407459148514582815180166880645754442939488137434445192327735397470813298860926327030766532602248668443462959661865826660323519134133194114747894400556595921130511497227828355994751683508290768104729105728435564279197868009660028700514261707198620217624875282373963265778715150712354626415078723472300171658978118628153189943065828444319142592914712266700077820448942404971939446968660824453292171285872804912168979669495627672136976650094236998283670117280939285462832099751816453753221643280150302426610928961470591299395656585581513426026127225072300901379301473352548299091548277138119360759236173552505252732891043234886060799053043563007673409718302669577866902087326232345752008782198141288226009129496552699388021188856595876772773279672780410909722706601208423099005325686714116682857440857001351913553106486719015737105917691289365745891417453812295541133551423099601750808864077566118852533630661033084434192524686909606395060368778999055558917248397685647550979773278238692164225713910470739187203961750801184794694733164986639343646550515564797481645353885195641339724004685489541517323228183279173031194428412808801245407648505872623892079478098321780614224968621511233674967642893468579569972292643916235808422532751050303294036582175109364435711424091185346030529218200208570104122693242967774875792894461537996929658862205467005251919263530939292674266942644079715651033162783278335795893561801093305776113654219104190821016579271740599822714851169368766066354483211535011401445775421095016777548443260456439180556212923337341331725092859554453226264594142808844644217960466935295520905387534098300282883493211950294473136562147042428856091142364091911523162034076692169668744652518247475085776391240359911755671106545798605018146929749363502154622746767945176036532391398198442855753959628307285197619623318175164263466805894194701915310764139514513574180438607111401586026018047294115771845086255695109137774547948942456847708294613989418059187384465597823158482425829788691146828808661613351604983357885087210124211866694140696845861149561188162568723534628046882533236554803180686297963376958090090187637067932767295159197366832069393946600458992348820120444525001506650439798753525008490279611617801211251913472461488861166363495743959338850206696314546157295430468478604758966076023328774858978332021395210107133081368177360700399416571968326917269391841990721663757552031106006889712400573937737361411619580572197941326800174194300156576903742260208956463148172448259520464907140134561293813363076469743369506772350254411885093077275777545997411165466862067817937576825661659760165423552438997739623423392062741181926343759730431877326318756014423259659545541171812576361356565273249496481789618427322487298212161612588275637921812161207600948211832245519451742466771019784165249251844361829606889439524811720461643260295033116186037224358601559976709985614203110009706956794565899917681974043757273808495249581970616148226366835575081976306925361335395595478324209761672349548427947885481818728816278078777776818156243799242696072148331450167914934262972781317082225367636094445544114813629055872183755771830380475551212646502177795535977675178376708372877636588181809988851730556431839664524618773753170970925497168056759538808698716274404593084410337540769464523219697799952770877909003923197148658411836627240234460655055124612874215005745660527582349790792559453550232277329095314949450749679553869787367685180251472862515641505315450165482079783168206472280837731153114634758935039637268661615135013378620917630503864826334869600426577923090756082379193413350857368235341416505087161005166754685529619086610553466633250433394196271821540482431402238057996357521509422658894509269401322930395505356392829072477614702227487656456368466208726736038319379635947726701114835904303481218918430162418188524941624736091529757771699127825515350150846590187261913015575910367579260363182610774558624733030504712452740405245910507683767615971628971531483741466491190390181561490646628599333630363360520950481968116569650480737845612090111221464341489353016298748620722124910201951114599025839784491244375303473227994266716180241617934056823202248323080318134668797380570749468421347152150346108014319006957192720621059340811695585914575499979353241087791876040199033383582333721305287555794353593072670160853325776217248915368455653490593648429093530593237004378070757157377326894799285185021022018727794419545913672013021507088855418855558382169434563027544323256949650039508896082109491797427079087875169963935014429981977229634578383602796361517268379650500010992672205526530565201939274478328479572800820475637290423670332442537736353631822613184964692338371406035634204607713046752049622768201145456576322187629937433649892733636113818410103746810376684075439020042120299099728016524206059360905351805892697210358332140250405843257009690374828129401181027807946089696242017633783466360196220689867732932762928343049309818281801111429379713082318562860594357524357577165880232496854035677128036713711343810115737204256639626473772003775093435305466800040306182011490216665103217470235904210198241204432483279473005356065207800814679207035880711144022854626163617804017527835655130748946393115090011479122455871484298423183625441257409133995957131359184577802118140188459155861936841411551097524917460544013273962090212620345388150371874768627685791366370210185956497618158446269732698540384817850147010394797340630715268055064632752098077044202947339701934143966724129473651620019152754569042804855773834703620283808090690702547881097468510663169786009616895024035840329669888835661056848685213827966016206621674504490515138730401882130934716575769278041774681832146683000445506391503975459211524140946268696190794276108575110676735224647645026936875296249483230381318772864568499203345372195956618946093583088363965728863932894529358643514344064193407633387043806474225290231655081771502727354405608113377706427767830284233708765452864153906327905177631216243798501679001953621886777698102669530514547855757083851056628638797033862160098158183498522032037772211374580453596508288352021050913985274793476704506266675046478527422318891562640250674312362836806272274102986009980112657508283765788427832906652562006376913876985310959551354377410270631366258948653312923915588992662057066658029045661162433259709584730799489332737503314759549871310520253952260983037542149208541139286075432813465031453611012439819024481697069442600873701166968368122933333599569780868028096958255786863555056143527162908356879381780151630458241873745565227263041522418672922617695198485776914880623384936287190795749959698370953913358908628546370112247011635734088946087855657034822763713045940462773230209461555130175990049697573493867816486138871742760984226260324593582772499977215584491048367659805094764665755858151751163614167641579623375985328325590392101988132900661475903524913037232324970556118433602603568082835074187066730707256648740158567933086197190676573194271947097045604796552665724869931465204889760085792851891341076902002805570936084737146375529326560994811641444691557116192401356979448055089804727438711930994935206554908767509345572248168963780169795584304582235844100714976816092517085264080865266877881606530866682422128977280579903056910100120269471738784137789309279073979278301572231668387412486982099670417580162287149721237802531488583425189952302420510037298547199269324926044526215467684274963505941646729849345519606135606812358850573082057494934485418857676549146218659864838021484362663337096707238507002039420978072124547803386181350082997563382576390433663225009495918326371364177773956342740937859936716359782676154014041798573792830555332217308036225607556452860929269971008791735799406802018993407484391837362252701536581827113177258327997181436705464980055666918677784299155099549112762724035874922125944200754498589828359432984972036203624734691711665382608151466346895500316433786883596513648737029053874814042205483570189420397897366664195838758220478015134541916608907177440474932597989747797513523027754928355313228070138405182870689290295413015474227987232525334938313377838492972932854831658948045829110195950053554472915853803118337122738742611776188817724041844184041703156708443955925166935539176865450720686162861537578739186636793949976521807013451056023058172838086717171208315279369415147261230723378037663137534923474481148505634745739089088942463444477746102372812219876281359990803562430251349642929102371932608253192103606657361050085535764763020600574362901884011549927618256839379189209786676953245561706078832948366430808853004196511142469481398217020150810207533742045586827905901790170139017625686777608062832314694645028303084193127458761115587294289879202869385076658045478149137646445209214437928645029965045683249077972184617497538427417139423550436019830364743197905148896761146464343526595710215074211189043580605620858208165621706942014963152137045898293489254634432585430756064384040427327786890099897388374694850894710277449974985516252552071891137724618173780303184285428990773950232001674836869826248247392610322818121830378550345201925925951346514347521969993046659194849361038465747138789456912225272518548391739905836815875740880598004100684260351131078612596700525925629705135230508853289881462663274528273687901523729240168866064631762332843400451056310292705999472123306576882284479015129087126618021475316362828216126627938812297826419119601841201970636699996338360670892699715568425621931409112363157024045150508400226254854893271236037558118741338271292065364023247801407647965719098559628620917889269932147423831171843076955160889596023186988403309921587732170947924279527071538775254051828011926967315441807796654095218474505584370217203371960422845670456191849192403811274542250125105992371707439147481252119252600103136232623569295841066005861353211040267023040885780691345128593444002463442629527382936819186033235342637069063128298751188754349659735171591080057158152145259732904455268858165179546498697857887254376127477130426196345003273750052342869280296810409897918850734667964647777043876326536794530610124829171149833213700324226421087878477245557814672365033146286519422057657451263256395057388230278859100312294903258077028371398395601928508906816741632981173331506550314690026091865559339340778178489348139914502836790160222658128398878225931133413937002716217205074455754683966685087354087653837259422991068770870654312051672704861330086151784189749644926155089837405198254244354463397965922570327970210644483746958183379073849649961197863601638421618021316986388205688551272986708467170099992943891650366455740608757288141197847490548475472992495856775804870870094790453890642512535502334257719109102708498379640658614369272302132595272395098644967826232418781544550739823286233735474238945652487579904294304375028642826567250562015006960673439335175152137554609699180982229218694876456296881450123856742313814896327351783094672211663016768181368133998449722269053933100454241836365203445214781116519554338021345973800376276108368629646458663015732933777856807022233796292069021913561890401580706010926767793801005762018143348083468192220431135055954791661072271325491094704244929132466210287697494061294977302088235169792881524218776290597686987549552579384786961822693320839642968818630541406742708455264149533472728902288921049053063628862542485334650040845013224379304695123286951260820773058112412060017865290888852415192767067288367643809224343844321994005523248225856059212506585800374942854489994790448932807895506711080403102430181976029481683743245537977638232543176011746663170498199401009547136639167162142894800681102153245046890099935731664282420848512306160190232207034727325158025596495265679375778439235581560812165274151683227068075884194544220588227691364824484670688395643676786028831120412914608019326292471782388281385801152856982925669416249482111802113877902093643746841214832834460639150056230633434966547107838044097107254301816205488785461121387915894927836735359258351444982672423495053339754058481591356927390465054449092874299067643352243286041871949686304370461847107504982744370212836898027182950578976943506693567299588074524585030081284612278198914074172675120391377687651977598264424581433042763037720252464273392764491422434329426340090178300129684817875925539803561780814957651106533333841329816832384487914894915851947038384273645643945916129778292918265812311061941618517251036254772549169420819682559860840912266675890496497295560496839417031390805339895023693108895319247751302365122056510456311757676485151079245333771268508925773772369693469301374893815771316603704373083279219253330699181214141473542204576950678894198042068089843917846894413095745009574457219671171636689566644906834595781312918332792387391303481998480448759802601003834386246616759232881494626182069285259400286916441390598615065156128598880522469651684040810823381319272369304343984396138186620086927714036029055083990271493481554546169180925205673531880622351560450214622493453302605827344740201075599343843706597325009955109343518388746967786663488013535624342080869817052703084214659771680553542472476855187581843067166670988240357605392842452706413489420132408925421021082596919290008383154105937414804087521845297812865057076993373050843767022622952870181106374886677287603761822861241210495842090883603916169003295789913921523160893012904337260861694098066148790649578436989918150004495059257842788780560152820587392751475062588600039594508470257757957269576189654856298823372434144995862974368479720610365902109834076351708641681740453414744642618968334953483924554977215821803799965997034995994179461810253433988549642654953134702565051661186595438239000310563918066236249855430204220058846496513931447966915121875316000759749240759038242783992931093635821018758365805828534986447845589924153429810068704273712509957841294085373679604800537796216651032386252053816942826577232961854190420122259864357492496457510470234074701354892275419398235599911016864806722622676339413616570214746424918369269399013066067451111854175121938317440512133128636057776484428841569616978345925736652607218435828076744088282769068198056806532547001627625682010436270408296435941032264194922404507787301908421140672752472734358778875206969237457103196909860978502805008662066664723243451716369643446109547114824032150139653268889875085839075638212056534290345692477008579889850686034246598902214227006413909707671012098055560002996066084745436612320149788103052151045772743040126393685134929693654893902698269633389844525357654474519923516461637211387711284311605212854726343091384175625606449520039757868460838222602131393469928358805793641573115724196232439974433370753950755501010631741000349473904980291470997704237148980676361231771408202135309952437155531948643460387894745644247828659140290741023331576314505556646196136396283544404092604440845813436347418027212997401867213797097362611659578993194791297649980815204740742511750297331611008250794469663825339179164697016876281639139452377231856376159291105729458336981677713786450907206146299085180794799709959071830281778690910212753870517209507828289666383969591384150821550162595872197278886079147864688458674144299017516218594008824704998842480328732828861410986515875053056387754007526405147252191712748440026915162195681257551631139366263440855982507533693851065852215984230659876178691555098875713377953735921023259294574852892639407534027561302611953405439020211516852495197691727270848307268279833039424940635215012006269357790588394208782477882100318684462400443766906045714489724107881168679566763758355625133770011235926464771603204591033891148237277624048767967091052878367242213807363475646035976764135848834803813030998035940399677448865000661594183819029099416075992505182595344033498275711650374132105189606919580049406535259158104020164309242546834170511119665091044111256786234454540806970060439240636398734306495761416665904294084287622106238251276380973357669015507085390063943542127699762893067927649106414483322549017574488233332833653808824541716793665734265860037651045415552788538924157744249360469877112505110498095448727381784564862100588454007503181767349305289285739151512692442757896618676938687379234114825096448366863263105128188487172599801514085603199259221765715585651171113148894597337829438792001360792022743190585150014198902624943969434152091355477995844143433516249027065674964310785940647191278438691652121276872095616883634355285964906316768714198722760915656523008908650168849658083260832624284219689028611646247730296253989529106303933244672432332580675802068030743101759667348627618964940184920751090461065541186104792552235804696944929625407291373738189436209250948188275075613566208379126990857693074382653873881336408235320446978859084819021719790630364856987500024498712073897028565316851256326617579553894494236605708133296763231988837650040671447474184473101730651267175416335612994743377807349693422354464737007809954075861144041719783877532549155374891972275157589938559222530483025788007840075213508743978041953796209427522971432373916542285782894038861554382831900906609785307891215671944801973710762794093281239918447250701722868162353302102803410660121127560820560894852961977734986151885104840828269854461185154760794177751171613622588509600065826313685627640865636536975805498654212569132683663245544326312269791393992258808990423009814733160160507167049363810055225403699045923796351762906738660332804253445441321217124749260773869685272639371035014855333333832652447944725939939717313130932331687173988039311223396148265896595278989291819054180178277531886274327646528183811834161677525649324530328525606482589428775873277579298775157858506654655035399981012827043471296241829922215778899352441617863137774815763269991322002644136120289933597578845849221076235279678231398126938756155313871913946022580983725112303308691633303035105001557932022860397974755600833780682279826501634051786823876436007132750241963922916720816611433885332743337133744534523740703240047006625607960943656263158844584476327222363763325050855018657775607769250369083237918251169807306357624351093214544131911340962868194187081625923672598197110393888566871903855299039483730133215423840041330151737775717940645587315660270780021732649611270720058427938784936765338324968458629951277465929776509688789300032966121514440558686194301467321507497776503678934858818963962714134403225351944829196730502004782556447689356539940137003403595183183759129634857736465554480779396941836759212152943551723873663309373852901003847109030119473722645160768219699360494087206523824474128288654745353618978977663900144254446788566018264203619163411823556391085285543043662998621082999318376772392842511311443205118435702721091329236433547430685545808689000466776019791959818713883877867844326876921239845002853436298178708921781690612040023426034251492131285904694679277587556589519795438727894607810895815197339100539034821786406292237848556065244542405774021563432413250651579991342805182662015855488915707152045920570643929618687833942042328691092337486653881544544310429771512078056878410534803927397081264777075755949701130695877375933984965187202746276959658406591092028090946270861545969969573899214969576671670042291746743516682052705629857481538287900721936362849120998799785412333589503947069339390451978201387328201984805929067366648921131493701194629261148582759946189406681753284068325058769356128860947616604356729310935710183333873461807370126118652585764783736006855766425273235388583232019137400999474320440420986753085161373111829735716240845063060063253383445479233787701273587938752011584596017109378794957948769673804729063350254982270661441863121989073679241500543603959255230673561631697686273911366308323518492238406965952335369568239795143965892829047925131152910780102936550956905062722085412766699414574665607545583047739878662471650637252071944886758817468435824780979189368634841268065737797924282788734314757845977053089969776269730588548790895567952183817054534616427161421215864941771634960131734249713029974870118218580508012048510697650002690620388939278027407418196814370774880151542879583938287769742701362016064698069470200889494045989898262705718018560903545110347093476956615617833780411836820009310090845494443712334653909816727814098019894548690449599723161918096018468292193628736455716540755599682115758811573498910489720809212574364453102695020847903643448893584833212821480057746865132759838196093272999545836060272222849107822595605833982249428451853388631015813935668579596360389280884046167158105103766091283996758297429305231059432547680131080819991359575174802603628364689972240617570688777049932118287492165320356865425504292742491377270761957090046017566159147280171472876820459690767238667154215885014913097667357979699614429456902800387958631372658538973999868111095801850940606000111477426956659861038450628989993871614554446162854986757131631126172376460991583398997615149695475249020527247269109234485821304917247089150568775997590737679692838019053950421570832816184269104106888817876935144747752599966493687345964734226621024142804784554818956669082199319616028914962218615234812210395789277194034627784240978086139315818862986803846843807732490072053127911425228562802000442122509777185609502528916887464035511190798892360570546242800459015851115704722914369202449195466914240987143933068538752636282730864106206677913929878670182392617433861218926644251175992529630034000375503055058254396954585694605335875998711877536185665564030231539288725039421734381003251073115075953089236031893675449781882986281299214508285070406314102505866838542638869708775574784780493416073650587592611667284800805961730440111770166965943131038482917694103523420583934921039673624933769246014605910007079611441123699023628348055574055950366277628127806120259737334691496385154308301979739763767098295367304414496576927599471765579003999649790147447890327180312682316987387972892815903010912594101988249159805043678825428691225652271218320765173104291000796586701724675729277448987210423368614634986954418547727142745604492353559865688009969745986285757364151508806292700585501423462945217793608207779121000931770667880651523604253331550974634596771325703518867490915201017554176545210957110500329302381330373725832105986524087596448787945208090201511057302057675422848437588828798138010854213291328128168989117533510667732011626156305533114969096101608258819699635389226379192967758210724790173215428485831166503997892756379313539700875941998972973696823552346297379872136725471072172259292950409383920185577139769814787241044659025538221657627394723680956442388538751958280239529801086997784566877226412388906550007438279476405394963992421199393195540374960572434436595993139537018679662174721588596235789817220854309728938322296189520495146073168687064316069903668704964215270922660782987136267186370991456377452899959842226499636650818171205178400927451478495792582541285311035933123043624243862739327980674834322086406185113361766029474259122327869126114359774012566735808214744156751904932627704877133794974824770190246243384778448397225001781945521053523805680285850691775211819473809076021031203488447448979102092975181184538342083577505939276668806534570962470187152866259656184606734818042820784681188987757193624920583271768182714710293997676156790483589121654900119393220480037521207146758847389192928918705595546177207194355431618543481178373611435447092376977741435532580557382562889507846683992926744505217841185551618407179473878796306596081427320378135123474859108633495313363288901042978721095394287695635727365777130866007618613781576568084133018120718189477118003893844013834248879809675854711522985349852550966056436550698360034107009354751608814077339184405705579843721771235240307641656795862714371400770884942823942111464876606760442684796817028527642415850787257692480412029368802751167400002693101292898850608268918767387605242100099239881719796127028208569707944833673990813186842867206216492091778770860499711817235245280775866440543093198568297463343562783987062002456561290848574258800128999207433407053057120082815742242930771734761673130864997035377473955045899082078669004405408011219208632589349754324905085055325892433091889130174816861547962747591615291688611120569047902683079837121818852707210847815464663267750016216703345213387222722059125656214777349131082953498903377627330495639045096005478936435383979056198820195211893343086477086294841858761648755223047547428566169275588816749924162063908560190201294579056480050477374991178608786861769204472734317563614502882698728818596530150045377475858184189552040360456394319492017834425043502334692761191474254099160555418211966374776884964686406957020074078789968253571834588029158879957750023612395905266625460280212630126141251762601880424168730107331150814677870030125571121353997207200281084080775637556397627897036844159099391844540289769730607237129638290832486321728024321472792686479789644107329693050418363013814742416176169190680550514789123589356180899766224366925988570219998116461033710968196343868255062650391833874982590527214124035108252751910254427047876970821235769633469374080856728839978449289508813217454723989867344357723176531539896528428449897607036270246512769839736492878067697100844688019640424197409765193522302985114478745761951032494407639551978862828500162464844723631099670501745084598613280862623189120212529049991853373114141443729472888018426103245852901030626960536920176104019661110491714137386699519453947885367703143058694468395714805041107822743228743456521223752565534009268473741862241900918431734426863850884855456921271782241539870102308555695550046126623342199531682879054005681027421471193518347597965585339333547472569312416168428919595259811948762998796714769996792046132061388970662704539192981116659522881065285765025590921685996673377764795484446193140054788182421842128597373028805308871769377789265691821191024031857547493626903971937009013384230733918752760384247636828338190978316338371157609512137700737129510935356116010796553982005987005850494780197389398851883684342837918225605216470380331082290934601447128043758778052110230481243145499096053523199313753785799458941111465169864236981055370614677143270950303524877723213685183065324933044876325159108735914257989706478736528737171010760779756375459463184439619268020766326775251361440593713981059172661154069335977232788447896842901219631992868532240293725114968483625460996426993346641555837989810896643150195127308206602145817164683529383023625529737582702845740335915108305705439941271135376767884778959049823481036293616001852866380382840392722074591991007010455444967584846061222381665118393009787293791230906940169102242818807293835888628557169553776812050161460637113041609730438217530445592598832732611541668037805205146875306148878426022568438988592989325055052692029492372516228190564267234810296392526529922484943059236644332148682393707705828910950446521947668170732640905394815489816493458641649881225734122184729218605520119782499345728285568155113324088916249668477826640534000255091014478128199906137868448315049240054333422049950250735455916678085688469294959521022182015580656174039199535938264795852351092384222175856407799615490198208938301290920083514578391388064321944236077488408366137534759882981143470769724581790000494203474735335736723703657667990413084736555825638546252072398465725098153323272009668565347915324219147907415497462142954027151285249410430532180770397390487379178764848039438368023994560634970670165971796362830424190990404829144503920419454036185197718857633774024500734259501113436627325136052483537922799288887415279621919418041021638979688770564744859746272874439451435158291684208266926945852027420022695695738821903038338484626261416182630598237681501639462945383139297881047555957019049580719445961041609083469687144235246259639720067866046087131722675492597526154024250708998263781395132836954055897829933366819987660512637171155535601384242493553197542127050320077398284181282177556106093288947940882058666012296203338596735200397183837498477396701973180088365646255894158358647626415532051545768428858688231117344027896301222646009785724984020386659552834545332434227587854702337115904203604869907832263516017168326170895151580804978821129926925889330965740165486816188276685754324920855808893416221141520487495494827567935647718785982020329197260715972642883487615357400123563530571045027027651469510248947713176685568114145221031613775252021250255510866794304427582601202914548576727311052057469369041927855338536460269439576447101155974477592897199291967045644568424571414402732739003222830834536779883708488088122654052341564690936251383179814643537676402223283057107947005975030907646871407576483071148639116640302580708090694138004389989498773206891713719695709051268316930817423225354295005289089838666762293708153733125379427179796311661461989508436950504260766474946223650286874521778558028847906421171326005587624571322574927862790256065399719486744704041663680658485995890573766565338547973972981783709577587813666801961123980583610537325011073298221934840482247912082102761033768637639556381780431121213890031740299584347542734117672148141505603625829375158314654931436719389826663509870253289581531815479448746426094139593797238059078588914129248374445590124305771750897467291147463335096424366726379039085317769832780136341414612670487268537431144484658528531299335496083261686304982176464880566781698409681074018687637765842674831449800864338508589059297990707451372096896705256179477518608375373745998927319788767867235703658812387249515702537891226846578630987283542086263631431837262350625130863545551481473613248057212415001251851215030086342280360631101387706154820423571913492661533791181586393856750952346728188947688822297240794546647536409689068536109248076934976930021872410722744941060460085813070476832662310780647186528773016159051098913839113735723912888617273434058481787760135896497251225776205808311892929394007753406504467628258861436943528184964763394720035216038173987784413792671193614422978641570909827473439190293237717668385665800651259670367654758961210303601836201942175257577939460919514855545889738148996518989664133556890720423730195832486683005687197449993041186330282428740052709544632464211614936643679177492376609704776343606013976242780212825323246644420916124455527620408039602941255965300625118003439915907678292652801580058040622714194837209121568304099626588945351148613967325019450460271572371622599447938408693654771897860812702744822164077200682114751839345771854005703365365710774444182710113372222790373407266880937673275581974807309482944267245774397786381044137180333300541649876664713851166809598989220595964250359421126929081121593236030292644395215269938545237232892780266428548223822797347758370002742069231415218732712765096725730615601096835594432418007101099371172083555766231073391961662268513751007811559718067354905075953109076821526896859583627634981140601182391351565233136067571151910030248811642635149130131460712792053033179806672526843193720265438411931695555586729052484282931248861566441039294356469515636235894654712507120932316159924600306439646358970257394494018484591229617714381596328030541377318737790622257138456538815391054191656822489337341330141782982973184694598733281164545785836240803208947088036725031440245619980095440226899788626069125521270973665406290248284901781325959089645604868592252571747050672109245395345578350019531367015454272957695776332843959229049568304456485797001349320384283785701771340155830534733759456558950061331951313518204261579736919400460538661391235233082932423145792337667600891522420269126465766391695620624314512340550887323537394918127948186652889496276207192176750566089382686937110871143461946488590636056932681683960999375461466291667205216170764832012953839598881788015720744653462677426591062009209353001029336898117744715451624934000562382195479930282603788906466756801402262020190424261327499457787099590181287635475732951959486033192510151576861156840195493615985648431114411315916706557093669684923614590490093087710727108588320334026124629057382136427636966899409069853404070855535666442600133357478497812065861544837610669383565559024450561253796119537831596040039805751580325196704519825238713333153446023794107848948865366575486418348409013725657448988195320623869680397960459111142786481365605631628315679140931575778082302830423716584161513278804071504185014462672638886333253852099784992151252032742186136760469739075401110668404654082213036849886499423469353828175814977974501261432214789322613334467627194250630264310601501492142419404366735282127602127250027908752048754049055726695176548681891599332043207770868453069403332109215038381869881010156313404082871314650696836638479310018233528310868420607054586071081617683181295597060377309228242761250134151574776583202580638383519547272269630251314502511929063954080926948836378357245885291275747595177428382676494431954264526092633433414010505749600262260927943348859008911621816409076412269536208618371781496606037408154588426965118404930926944394255063703759126986389597508190504184924016030685346611564812511109255950614674390960779161468988871230115971888882777919473549881739987652435392912202414521776553146724955441911992042533852407517454437852715215921977099418274018579894853096565716371882279726466086073292134106400754083498766046104971105016160324933440934039456927494532492293707236167483620822639249052561341123876319769365860350689572654513684787468223080163540502937802141074539357741606689591143705376249880156033449800264423295456730315221207752888137631561931385442246436983944676491920682195632385331693703637816400327540070720203698555326554809257689905852830642835140633143689955957783863538960267561957079190333481144662544937284817887889672260240967529099951316876933110293381681510669356874275807667000796113989300311303498893215066575247176430018704276295983544313666608413788921742091731001647864754274860233564504691526974944321164437214602108922903791140462751957381326703116261277353207804550879665515562271303077726999206588839520487310519355321527026592413345615114613504626243209119021199054484516211511253037579729400311670001989392845099466058650762708645490840387580185353048250376413586242764738236466522557117404037915784648256263030163285116758572676978200974166651287150392530236156860870955785711127985474914282757659956849702495232669509122282196939392991636317741178750352096541589704136610002460054809061933976402653866697768589894242148925291746091375992231790031170121266408996665671378715267271138463206329612241543964807358151145679686799445666629043602864762901616118469032112149501543353528296580713301516873967140244283961652283009947966309142262517485895492141237532103417747818320330140766431241833386655964748785026285143556958912301617686881007990171755194960272526073009819269151140452283583880279582131014463961906946946148225047813787133014724242413877787732043007090910280167779353338861989206629277765224193662866218746072012406410223621856693500467451838418272302945481808527271880868495487932421707846298212853399097173864996640375836976676076237729416913121044497415047704496003058640584906413046804715451316938945182128823576689094110276461234543043478887776835495868002419647575035424252537130266306822225054214056181479369580526550673690658469816917471568120112060924642323619115995764694270412915132536812313994305948594747869040413969640523570180683794060682561938839035603557486604082253086117056573556026741379694567873913680560623960940446751940109221519203287261970956557561815705849955047047282580634654997486360595272189117645033690473465948640721523765633293799478577975734551177135134904237282763797738641987824832574643194120375973894994239628561299626321374849883402325458331312332559327878752778117137671872062404931930666984964684746247162987080469273472088206524446210635103957763026461247914740221975927093947163583415642300033999943532349755431246608925674988765729596503158079777558429756138249086483821301036614293251260154061021945086290900969617118994613425133648749311911278013863225830613172769694621956674302002600419580126338352481184923153585228625368421632448545829297825441873845161285267000721236842336487917537227610703746150918137990225255150346001013924609569365140584719986065366023473926737949768551359698607950314265810375840639619270223842959130878600589023135901331810950936183248365757671814498879562470905048755183761684497498806726053865199300844629373814668112510186787155858692205179138808230291518286515720789337855993991840325046093142963177094274174457717212595762450910333774785830274542149692309575559355756307416323157904816759425986264532430982478496997856872908872212955777340410620136519898899440478326715387344728252480134728832258192660316856527134274143763914949114200992620351419339453555068591062665144099609626702059309999463643688998850815490768458998420620557148725120027717654205769301374014836980861656933824891935349480842830473155750283080326041421517678985517787327216628112985196302724820190843749407514942805454346391629861547226455975092367807895520539956627793574365461462855925147060693697992583354954039387815566669581374517666188099683273540655886379139074497931854543972035558309727692945595959764576937761113235748274309060808166411860075404361146210995674311196089547031835668612371595412130568850862233875680753513139891099884161814211648880721328442819512220302694544584356545302096735252862678004489803621411910106940416245432442454892854065524921282308471129221535917898000267717147761041026259100950243196522953646852159444631417995977001611731602375461028276677365742262250628266736367355081754039149202392198966370213055262182845831080424515507192517100265954780494032220037694553548007733180139886633244697689173256503260061923577960935226985848680277510743888862388896142137889745306628547182066309566753622086065165370168095312122862710532551403459850838928498312979987770594048528752982404623646452961950342919613435800149229902967299714623639646836092177539107897042944959781352223417480880268428761716145717261840030189343144902323625277323854583906767642684714059531310146059969119642151063758379918523963862231697980786382539001768304662543946563226639109550348527740825866745781813646440214252153541611814904866975694909468686786983179027154139397381884114700599945889943451628264660709112549397968004547346024153342768644729289783573726860767439193074437762364733685614006692190861897680811654774003057512998465028358034144653885907972981169548491717405150697419098820421581080623403853979352329805314925416062900720279573630189589706553179130220728592224489155304195538732622379219220309325933180049277656667974499570043962472463266732851839775243686931228856197652884098594536545949824905983012638409659714201045680948516963244844199810438457364908714273161106074202052537617450567602133012383997237027832719513372802581762260855027264361915421333750738880697025495811406728863634283271216467727184267416876388281925781466934302637749081351356601887934846155800605980282325283227784451996467943635968790215241724945457972583836872054153345925116879503011245184683362131844425487918509529924696663970207196985929542490652293478611838011686441239253221798762609671859303000851479539693616352421968280305114325599835503726834844783904087760707023187529356889707837834709464021834234685261197996112189514230415087561004912901702205867276599404965036593609338466216198886566050885127467492200538627475877157732570736509930040359120154908026217221058125841807720208872536866965441318900356342151761231438710612226482653777302635549333505673388846638545632172441658595287412550609042751524956682146184766940914404364787531330774485108623009217721108884004833069242464211067492961488297547105774379632883741977387290714219507299983381958855276467879370976958193440160572475485463870912168090879020753737127308235002936451977051487601311054200899325910000179166367621002693056800008759316764282397017969418170703410904348512950628167746356150061689922391685011740519444400418671123319249757492449164410289003130839129248142201632361839153245709594793828399175419615375099897035519995514516613516720836835892619489451954601886477369380111002464008275483141248013017308044060395039438871509672332958226316751855826542187100580512522595419936219994156941830154754526721452065477451398644522458618776973191098964671740723065759190044655835293450444678413508232183099820737729798445932081344641023093555018168020754719047551260715708916221083579622520695851302493939831077731913776753504351426485552921039756435666470813241573668201830180102382910904185240766379841779476035507626828775219419822161000899460259875049658927777206277432252903127967587087753350297442713179108016576468056806756538618277405792110658749818244180605251714632358291464377270927489159582838087716963979502511229374083663163070557544844401548257036954400135494867159174471300574336036905703579591751190504160379022765539681024307192771030104200329841136447903680297605286101312588125844322305205076169801439510875561304966984390035024101328579602533011698691273631243333874696526272649605551157257676178048393464246547196835078284423566955596829124551986435130872508683875885375483399094311191349325056627966035057100253521999673178467586119552361087439684358086684022530345116833077031211055005069423241050023859143300921352016874661670828069088715548699002804879717317546292984995657894724858845745507830594191179012385775590760648770556413986542227415607435495136847847901440311246629011407076024387713346181730897346066571930688481037501290971582549322006687990390156715033709532135558182442078195907017416108658268067772257337621121155154697385551914398436126419384078475511551126732991773157978617505413881437297848411307447071090775026878625410925432102287594968969876474060388789175137408515849119576974467952637713230127753092780040920575483301224502517507087058707733502682343600197772643434417782935170974723637724474887675910195357751536637141039571301914939360312117451744316414423472451079412111134061215995972669959035314690104561142011306888680311089077161690196900229982470618123734056365086624751028404412200701653494713630941725556447055542667941195778064433712654849484172821632281647601012325889100263499381516116868073763262975557444534829761175979561221302025796660383811364095393977320689525077870130235546949839859272171414022436055513205789246656022587461250511894091340815709659995045167332593571873229296278586145422474785112566603662713654737660502834606604675115873056959239351527788275754293068361160002594136040942746798939551383641024602882829537916001340801164082081065073609211374612401091283341303372264071141601517948335344856175333196301868663936323410714554751447575735961386632996655673321992418631313303443661361259191241567685419905266374084887185019852205354939077573901936865346364390912609485456672693494065745665744326253031831289885604215620374920090069154733818799695704970052120226401532694771574779429262765231926140426738818210017039120180689274766472859420537675246757801078503698682037423311964241185776087665527614013246075519422312339468975582719941278098848637750989364640493087738165110707543304849007128880576004268997223274735650734904810402799382339945021341210775859899679118651466963160931788307613192847467636527020974519222590338710310340356275629713958212735782522082710389457607981561596871023965363294458275423494602778099158562851530878842905542864184694368939040043331112869072574857641313434098053472948532305099808418659710372272514720677401823346848273750076216949163099657428390081984950581413486748027080538767111679850914670993861203195374143903938272118461283365316798815520791996741557608540615134580831188136146630177844587370724342216707695394877107497030165765480188703852111300400363366299676175347777929818646259038850358430289137470230881505086915404460538668831916553386107837786941207248826634701996441673138140510828790850155774266867146599002896271387019996255081232557086071655703166037227271107436829736538270997858302074374384738264670512753790462001419503798343259891940022798805381859911861208153339528167468957964897905364673016195094911391240201472587664346708693988238793320745002098222829733869137374038056814505904937853201256113806565956401794082261382240209297659710850026841481141597668048253276100355174852288160584710698544565600942981280291041560250198532985238823148490494196618316357094447371169624733515516007309508593077177032181411687924977567515671503580218588886923180276768792953871881941381020423160233306876925729492240625608594762200319698214672650656372789707348051579917518876665804450800494715369579621023007094714986065044902952401010913590189433694876538549717922101964851765425982600731950346765233057559276385794114794568996861178198117444194238375536468131984921385160434175546019311193412580178184927628890199375475098541180033830542340614956689713384347677766308464270534912426266567703205095284292444147074366610681431072210933425392571536472610240334537656953231224369156004628534757132274948564206657876583577636388872290742765418660533507743797644341747871867757628254193466024215396984683751673255711235875924017099926546897443103374668462189325426711224700036676058066911670271158872164299334667974817654443140166615404353385736879743668917566631665214774189006274045622856912691695809942238324295009885705227179598012041410294705040373343373984037167958349733654600215776861828394934478289976439025369809847123736605149335562620148550732815458057752665136468223462156689110312775100527223539618854730241663576036427330306633999398004573151941111747551255768100644990941840222235352196534182103165400314720523770863703059707709461450277637786264897211716692445907772934169085980743736908451250009013309293602749128623000432519896306383256251856548971243597696099676870239329408127423454065342116696465062521444640074097890107032299984983571794676299579499849083757264744693458231985045372529913017078595901612222702383479553801347670786617615978520809691879796935385975924219570798873458599524286817847479448604408810534949361332915664122898930068471197895516009914624038093301359812247890268432289015681708174447315212086588176729282533701741249431366934882877481715384052960622602365158050177224245084945532287126141173856407299758715545506279569785876807076088568043907819179510843918418073358546540576285721584202158849807067163230119155517319478425123487881202343161475988531312412205897833744083841710500041556363746940034685394976730458387385248680891108437511607302509670182329825406871745500759257216909392716845227188895584167389647166821521062039418557897264840786238164429867086372341610820346740198641275907271912417998148223585247911532468596484377695366406685852952689651742015829103864024946700757997890328639381719187771995061338563128757875332708946675610924790068390682503599314943368741027939076822341818785776798219355231755799483687334481853716647009406181375411003696534089719566728999045892962150765658798103381041857909933631200929145095358776071068231487202495517399241454613894837805420738245648773284793213095529741944146252899382465330813494530498699240449550021235732620849691948311710824010914587918600504214502834237207710242026502433657831491233276280274274473033732090981784550070138918360214815726094925705062725509100481866922478931091354461235237921088391875309088363484320441712991448574801134088497309361273735125006748554400255770984000981597934394540317120156746710029297335505177983255534846926648111910714019872690725554785178648494261419439705098414733384192604572296789124419120656347990905319499198774820644859665535644282418386264658477911942207398568670258218379889576663175058447646259364158086864614295376342901413222603329852337179374908764282986363997959149265994843432924377022581547540786794678865992589396551143982871063316417736167199748998976925063444146258192119588282225188395566958700447206341943255061635431569705243589032461708374891053534071740442437136904189898865859674432338696655570761204569795303045188185122883406290986808473553262238859437267977300499052085329223911413630809633519644710256792683047429182509940249761091318309296003582789036143022310022764727569942174155865570010547070527061169196505974678921353126264077376046321831163258943689419016972329282998599835713097589220915435660576252654570200911980150864521626313417197546018380978538150468002873284824386668552456954276629385571248533215212985370561206940899506414571960882847640825504591035465008095444813797855011040492571260774989867998111488905274336515205841953855571460236892373951961283818055069726422902236048728384129224004080624548288360872596677328846988657159597469600994974005739725710537948414531562273589874329223837707385653490061289374197422470251534364889851053745815008418049219706682809984274152668667164055005095702523606835652168763741289549998664642145734995906244819209770391445260148003087934806375361136905649798406873604311026396748985889028097879310850566036850294568242666063610667115006111396442021652377555638518263500714252456548743062236907374800617928286263845914465137684103093108886592185878253024637327113936320432221201309953080402534184229563425943243872024583923925512492774630585215797912986835094099751036820478353504750566065233135122723446619408267036918268552397177340069611029850751475883544643101985658098745716714570434133238095615792855601759644139305283057138976220129347782975320409264387998056324742195711471263084861323976039319533933637600677524679009988983452877364723121147774985773140096330792896974858334977296796666125945504776173440778323355314249622610516160474288882034955120856114355191550850687237860898351887627624712797772590252491479206373631590637195308081551234019437597093917230147361585699462658914775701776246798723093698131484120508054437814535559019935339302627658482585080381894186374741692172486929855806876768912084776870981834735251727766415109489123285559450746759217066314171916228567516296538859473831141868575106291517370974118251833646932479183560378659947474123278051118826954587871343487385693880837763255998915887496829570579734316407704540441462118618119340582017547028678886821843443158998407784725348448023903255369733316682596969202567201824721149997373380305721034537151038035414489151454320533568725321434468037351577568341153970691840199223863606127694708941150483823206519642200901576751219379755147618967097954484702765935802206655522183189408996958011360304767029066061518927953667045372674734720445740189882022526063715596758873485981734246093394078926721498327144613136187802267781944355002436632643329632339632254233567843121701750903601715837145488566047571206838115338703001494544339681078676028657656166777041331128247084147260527031361679006995645431750843864990721751308346854371713670596477325399755750356914863543105730879681281782485950962954243091004337128787845611282953732922808824569660790809358973082589359572680859238899718744155675224830833200376405221912054487185425022244272823527070520488865715238564705124820616317567801665167996014267049101711805997942353878903641871981252133216371780129969844950013901852246967461677225511188435787994241353848612019209086096999485994899462848716764317609232612802075054986289754392280028162137164693359372659253501794921861377138821240953151891646639182444784371007627413270723618571637174628443212067154421773271634512502517737400500490398366480923839994060698252981789347962911884907885319966476608969811871823961647374031283448315347202448045335836471204868697101893019899499090643416833442956586426586266402902185304609495907081962111836992858987131370210932802067406283744828784637895218976783409944811467347342140912289230272206452378972126488039504360350612258209407663968101876912555601450185624830458022058272231473267209568009114928809422303400501467044131912132633808204864193519751125548359677550522516448717061288985784132346639482809654218304749207901912795105646357613945967312420045151579819031538534996893785605113119337875948351735821432993187533287278099852818562585901145920406115792238358815942303372734154936883905894651962712083511436407502048948864816117891046961308987878933569452146224833047510057337257977148055858227206076237663125883943939498840544786948615277319115513605524017016228198927621582394072069621719532245447788388316449299966388955479755894378440030317475943213931688053928657660724879088190490237976943164337466669544413525479833640917421283016360989619427344209423142040597481458171286066854859730573026004025858830621328701311555048847729966925538710040651352363423611063695692551104204981478403747760343693107500702324676155873499281932376402369176538218798199327647604056420897312774706739260235739326900434570409243308738144732717987433858006218674223888886707824486567184946063053719595180622710742712565086583126052778996012631484995326965358765391989491591942743202608045409067281176918553412621324955568119376560886072259219068196441915763703143675172703061786906568316378174503938774142121779440873521203146899423366576501083627132766882642885193383315478505946564725350120255925309337187408741737540383362518423717000996037948851278201317296417517195081095841747935452371262289869496445351297172301525517115743580382664875820779732798803718487786385121726279604703393855373290131853602925891152280725425371117157359809174753650247315297882503996014113961810080492182820037612546774567309818597579098597253326756013930637694534172422920640342248481032802860248838690539434305233750404829200097970358049551193056189444679750491846327551670645280212979121638558144505847898666685865438512398408712167909949190539662503246639625747862136775628278697750388946682809829873318796969819879763569317829421682143968642947889562078615237418176757707427060374034133054198369224834956342115884133437400118246472088740722644058625461963362007213554809766988914699767907348626737929756729106611924514938711642076298904939325633462821850985092898150490663273989787798309833839935052788846210195506636734726893231196614258409713087209361064460508855726001888989080990425913552784212346815121298834451805548015033110430196579302778372099424320071967871337874842212475617045371815963648317011674494598292117144728058572047916254276439682763365310899913531650145290523571071129230366903836108092707562732858398132951864911505022390891175990018031184597596627190817760189756764245002410963244923199082143741518849977568525654194879197296993688805814999755698232399638855807759415957359352152306756517393854221963213809160193449238870585740592136445568015199613180695666171703821560914106140557648165090221358038657163405331932249511930144061837201818997004292861806452713142808740021787543818851109030101291585109635443599870245798020263493427182378539346946338211099567791069088375358395739774564091060376659403791745887711802870485973508814678966669219439211288501249744263805045556414120686714041993489725192988581406259784962936494274590319709603126302982326481312368583756234184148653381528393180509868081427292616409774406636572810829011378905785538792878399203199732146756683050515508816362596344074421003649221345102364697879951225368912909886777748008738384780685286745538272779085221661271909547458271460580145475665352378322583388595637476898135064234116512980650191756663547636830963830630472406448981639412082306429750547133916423616228049122695779732066792813408384943245388602394563357848226357999565782167064440967708445364501564324437431278426496695655751542779034867089455184489124462968887128038892657262023243107064858912682194300420000970855917803999265530518246197397345135575594589820093462284679447611087394708244135782073319287924770450111858500581302506717366094201386708900988150607602420242455129172321080171852351164377733760289837857284231775201612860137622501366058136888348180323034500550397384899960146465753136653677422433879660267856821200148677253030188465177786121332928259827724975281569900016958499542002351221500814624852097869397727180946691245000418146837125954225978946946755954071350281062328980231472975281944150380984842270396756015389166545822987320590795987519048327210674011116102866235467713300788358813399125980456466132042604269060969484713913041299482289311314853146021246961013285928233129753569984860209234983131721264967396382842175454707923692304362698263865480600883962553763796514849213490934578854712395438271848404551278334604407917296084093494524372919991017223115565901601193707197618800660982309655137470810608171920185296567660697751542158168083472430001697401972296633497918052144639672289277259930923253393632466903383108566716530355710202454687372148699260201031866706551031764950022965776580431628696175756442379778359195226793006059516717508360300919035387404035232039589654476825006551260535020599831254123664994618390072748188030516149291618467440884996017293894720642826720245023502957629519421169342127166009936133218599478284764991331847978583186861069632233644117887657912186273212359753359999869410479446347225964862184301476980611774434686386596797957861491238282608959885252457186179754943340504901785386711758551599091580430706648310127023325355132426788139866603484434035503172259073641658135647165802756923555453157328562739108782918679435987069036044019463798819823941663529218052041122036571498544345589530530486510239581846305556957178406504609654870766582940903263173094998971667486746122282617644668229862338144336849379347926937080171756326819095262271357259697123368309311628078570062986461168683439414520875162503503115165325881014751862973540916800214401776628852193381247271330371602837576739424824459061085563352444088597675276189281218093869679486892933543201666136122364917365147657472824534433554309715446755640092874533260481473196760225123736014232534580519496681644173680033920458303147626712425755837125657775138712166537421620236410363929523749658139308508125602226594792758373839718239043214658243798136438301154611215715731503726504790480799172395367329223074886656432923055249757810621895068405892130677853564419219990786936848231168677501293864190309404443440507001944537277027725955084848576403570623081125854013045055264746470170844689950041665417093454582938877399405374309615220455807337030978506574608406668118411762314509033443475736540626057236427753885891471372086134336378654763243702991637354463573652625358519000242838888439242781946192534962522542558773197015153723820638435553477520643949297739895201159686669546239570983135337902983345882531287998280944000725322329763841377026287251356536605350457262169808221972410306912154318473580497250918143167237100170700729580188398918906612702078180646529038561690394713451210137943016437078337489729723256997760755345847874030705136224271594163980079821061271554008747433041707656421911503037009320095079927095535011867224036282512184712659625901245147132265394989544437635385350265040900853959080275546703873936908643794755693264353493853244986757235295936316848300710645211149108081534272390984205928861681434105458732411923834214156671008228020599947050121593211919118182133184938232071650559441443943566365216029257862554145936382367926659562511992356030230480949071635567891075381232640815670706564642052940383377278749744501701512994306360402222096460637398549336945101497579328418834940618951646977586005149658389348594902561757364210365946514681249899784927269592721516031006209903832219626087274290910083769587685526771142469075501002342825919083861762144875495472240889768572604265016502348820642888399248985332938580255531171973535937353580144206421761800042390106740934039721478032881070589078846852560189359498244137612140014214159824117575967352898500737541507495521033267674553536497815339149351067107271814877754303340407505553400661758385774400488306844792198219889872985636525844877847981618168933992339796414638340520834183806457007528664443532681772801344984289997259618077662207579415797841730954004895602247714863739125864923753976743828163778250349386347282383609536343061391094304952556741921088128449654846384480740587595209943427197611672345509002714991443573293299588178101086023567639429521069289439457288770910904106236805490568204894561642159738258614576121302015577499246223139265702487646059896747945508616557129154155047025465644950838968026204003118065442942233542237544214256705311706471397013744043373054548606379189811575382561505624197948568989535134196045472723396391141925415874205099957671975609353459191546821719620378905222865421092423608548237917558130544907830656261685670402826167792499595438189755317393027566375166902767640082924933569623720674754231777278121423611636213585409058276185528671381793112606887323988443158585196616502036629704659620413664398542691776797881305623207043453894425300115434153728354159666861770973415390410656275866289297804950683286562384622825159136734871598928715348928225755374707733170479637274442087686906632966916255442410728432655724705690124812327390285075866637557376445844211151855653199144664356334042040481079247401259958535667061728999063859891933686409055726008446379793479986622466028794758090565165825609895304211834731946085742270128194551280683072965024055594868807489619537937526135712744187546896946752249134373324624372823247562330159886579981938860880634971860752661610642915243131731564469136447164079128672715260687969241985567657878332863153746114993783130711914493706077337047771133896559742507546984747591526398094098942463838315872960247037884488226185301180653373285695357817638785241611169119084797870740765746406355458128504471590931880112910165009826071315235625469963151824395637721552806676744069681423011704274631053709151234997053070919495379956554973748204983892201842291776563940072000063242464305097977958960218328406694244075435215463266680553216944700253370252907938358455903891218963057676841323763205314261572295553161029506527748368414556175379152974532576123005430738661364295182500994328438971191308588960614138789826394560826422578269159750722811213790241087500600378914401477259468598001824611570964556398220814145205704231756651747233282202102326667471572886658291989941799052265513069557544290299991980270537298683768942743565697030590806515476078897075720607589405538410731146444870481505094189827829714822308359333097616338984022007432726741691041375144334033807864759485733299217687213879744346596017185831465113582421843978050135617481232300200050070074597048555957532062050184513324394136543247667912182612803784620258866474604255126549479570041922734093320868446750030406906113970801175433040768582432676177462132439499135992088901445410524112005225154508297865030014627374589099998252219004675843521020154438857627685657240696860160461328932795862778817211299246786728646903823290054397322800246826814862839167501274938237454620932643792985211143614704886423462534220680450816299976854808849462105423763797086860418956257831841354512776019505547826272408968746484628138492438282940989722391072658270457586861402283691444776709203509202207209028597085832370215002981749281238693865504574186917462046564102387118949550019576212204183678740966914313831786288623828768099526942570086120762338371694335226363615934280738560549490022730600578316574127842743353607911982539680049351400197659405692292498369618683015724985849646055182801539052658795501458092054964110538112148156164138650499762967537173185464650118606441951091406001237197901822995877987980527342712596056869386989929803206682349963962130167546501340069504719430585828314910043848067227036381294097442093793219145934170723248814973168408242931765197205164435787309118015881275345862648893762203856499203339561854481754805973305779574020451889295338781779745512635456046366816721608272783030346396980586387419194745469215987281555524191386435993219233009245056897896218467565980391537987941178260708973109236064629210299969625729990598986784683662119517501670275906779943322303543292652704816051007699086144383286198060899791008921914340549485092136276891704872170803439481549731502353484348331630665134918787050382419916964417499308550074454399304577473488526331648849333668082447111025356391387875576922389341075607567171981387994425378057401736752310935406022933128276531729610693567294679474843087031795347476298048175093780908497475199879836780711194229022007299391389685955451466745333010074060869248315740372588951568231558529244273007852792715164438133614856887692710413913361700822844019606135803650857733168691864181855765204933245315474945089601626955232081259266250793280487195124484868566567447755565244805543627264460056101888582726767147862291645007121823135245422236320616278249161359186393215500885050036148388183878048657707423961076323677532241956574066494476325030401309924313940242195286116215110698821159879680378801873817689265254622450962753491868764192108562271436161454947294948784884057688250301939640207949209668529847723383089152225820923923392171468578201433654151566521710783564574159248104088750869537506348352928459687404880534900030439638832136605770686136712834954760741725202442922993658706956621953042420124644085279783109019810125319061403571516710648933393300827474633084501626876851281409367905429898621035326729736715277828363965004650867167091773954501040945083024186189091831429678592090058691666633315236372798072357083068930846078115604268726965061516208869093349076232600551425891712037432293494613517915167259093363083043608465902444413441802242465628714765598952381245618365990130701163681467828607401120837513362102312739536901519033316412870308884918471588198023768687539722211827388059596722116668098644668510537043342623772158131099860571965789063916802774701004010120853359810414840311006820647657640726683438269605984644878353324881980319865028338052459204888995239852280739721261456445138127744466601626203574395711013461305732467181240086202362209028125223393902984427123689860265973221661394596693399824180355445191704497844436942138861037172784250885685812059444469254169649321521843778140242279582305544241914466803346303411038877107359555639734064907855547807425156530787988472263966913245821970707886365111126669853452193122163538665626063180819175070298376216136303670585568388970382089036158637015475127089665035442940426511564368443588350290106128485547973082291907719968174477923258715675147726414342024237856487812299123792925993806901998853537871952027809690786085907301198371664737805216838080863108462578670212290690260355320745134659348087320422118013766593243748361250436717714580298522238160966014178389695380853313506849321511958599972779795747829432197437766380950869126259890918358063204928742218771594627303030371961680488470177284524871904813218720353243414427364187238275307490628220893831501353245875635079444676993788903421445375743623678279628714555211769348148123019408437190099695290328996048171873429014870472116120487258818604943042473325121351083241580674543882112772571581168349181320706367912932469455243525776728400803983896072843265566990075147243418360239540459531279831842981091530872996705882223466178898962070756600595935029483407658630098858898441850218006804766740116565563339653715261720519766029098844625258229891389791819994303067323370501292320573841455679248934490368326730145367209588695532067166047693821572688543877319703396411489543621826319021417705230263639809973163999437354717679510445704307118842400846259698420486949161946512785953231830987114248630464074751589027633921133644701660975336147909982608195201608829573519944092043067390384264619853265882311844477607270160409997671961754019440958862006049570881198407402488410191833799081387710986368866447384612802163319561668741504044747495145334046516806811808139939385045274989608200834320663367869201264329387417373735719168268429385585139809771413161832102622993824951375430414008758454003614636563172181362773672457110733436893257734761776509061239934464931828018257928848519187643608354800767447817346709852451619215949534940806345878678888825527344198532497666277034113702807510348571873834493257179414660583625698101084593141478453668446634543777451458314500229696640833632884240861305619457940393519652053128310681638453998835158415618929653034649466383214955974193550592546200670013689693715642557314357300331066760317272103389361182204421773541588002437927267059076916132805438383695636747948065758927634503474227554964610279619177739185248175258780034481770521238603789181597512246753423139907752390271910262408395777325919030353664513136140747467006638017841295847527023847189324350456409427457102962167173016693430485110985534811152055296600302911679096248646871704586938398348164549007391377764864761779606607793117017649921290873134787850092512195174400344290736541200549891128245534206143732243977028842582325517203095344416396177165220681181086215232476916775670956119956404931796111976246999841496131802203341501642498991568415988962513820170533637562608764741731464409448528074901773782352003079976730967174880095231393178370945707481628950800967015569597157215901150228764907097592654639202369590867894504863890498169355467906783092600689114712598075529939192056700951313565161036052571981027514815248796659280190670775506585847022322026144957962735658759433415619284572639845805479825530413131843436962014513773129445798433909622828841113263177899332438357636228266515182736772429976609108735353617877815738770618560215507479115311818459264782726397759583153615339589854384358082800776228230556846928769281027816419268320860539333827289868327133984775210174715736016887564762418027611618098710597379351746175809737232581936131659687518964085752572427013333879504270971973039869156128573317890209453652057916611350153239541106548969285817647837406580171866580507319024959298778666492664118685827193048656195050046365980364434290730211783430841049470336050031862195321527913428023369966643745219843418098110701044012743493401686779640456440654021583269615414465503113159003365765139016750784671897508915392462253549328555259743603326109416993970541615554224804140850904133721115009905243992000301028463752333574429463606585619628956890121539917894175628218184024919175941009303559514731707147174469382260714277719385323714461110393431068252498045428998070792024767200158591117947444843128514770163593647363570668878812692650727792561906130836906885119334600524667795861997985072927965778810026376837425147438007804583660545049939093141360181914231538475690129121119100649808507877554748777636230337681072996540224570120472519377295226136228432272246588370968824198296437800287097349007607605037039979161144256696533250658699649510840315534447852995970067044489108324046559280821076868776091331254687646724679363495835435842166588988860396801028508271781975194014329788783410401918772544004454398379597439406283605521281546055102990345834228699371249493676581103919543884606508413610941208200756774444265999915994172566407827060197350257285703043359746934421996174061760630557446064306523852056925315256595968710396247241318053568792194498834805548551949288974669975713495761191935631465187040773082106561760605090205109415402993884949992229179185863572895364167113135394856826329271483606720930035150892609124101671625064365690836492405395514055975811940259247609918583108887858280041384793032335125510495244306520517812407813734623709282692277643096475832834791608431849601897144057256341866841349818240951775346184945366466038094973076654176796098671019725326729636598661259892774432545540098833363240349274736643744286561261749301838574148165120633659969415455996171858725242315783270550810107544609084878678142293074672782342153889943864387162696901963883330737670206877962525459927424085719203378600553125507192790591870069698708913204801834732134373902047312804834899061708148056608557006775402784287968802731149712437597034252712342134812670477405517849706407529316548365532175307454289961919859879779336136782738088806130137657282201682166093932609314714283465019962324075071856981505076069356251042332240594268644396960618623897952377896362815551275489018418941594060996439163771163498364203755213674834893151916335392936232286860969687630205653220908215563251140290682876499991445626011863547062344621039665078053956850011534285603683866607521383103809343104509392055823195851634612297036577802252327883914340925818472467365493943199247098027172882007267109555122106604122686479745739040659229456700438823159814936810921762321859338185931956281137582846325700640525299797527123902222646771706716410088200156213794193425220872037104880330196739326060516489634058858092424138742768545744093220955615739690888781394053282358829475842964889666559371932139587270379213683945067843561972957149675552393122068511684681516493836705196613217790600893710368123812951904067365359338883547544569972533583116843997425827542748345518680524423554409240495168007320947042134533043888289180024937049502274122025688292662264293021236178609479615551215207864294956211956095473791477206340315221108623415734590888501173384268544284811364883944211551473669173732422226868592201021255606490571297709419960624736762002363324390564867538169403035224058669565955894536073500576715479399101808234099472942918394185472866101361023646415649214762745361147105954288409567501835134675414051834716173093036419917737495340858400277340620134704633141192932371469523234223548380899030407945549893500887484308999701927054173769246831973786395596769032852283295136138743137733857366960503450162297941569138952273056361983221167310398124903959866714566511522769772707442953610015065463363250799366740142543025559668372379248913811080948940823717597974273328555050627563647301029553952393310239627457783380847524285634666686966868668014434013139596603293540520372279443035069281626179309792425813177328268905694366871919875398919150475946157315922722123176820429093500587131696951669543063984412174619593910417078912522974639260027351535156162402415315927081306657593283881717055789924725362053604036742208598799086207879724652475693195122417364335820169497223412501086598568760100246883358226943262108426176986823618933685605109034618509037636666571941820593396181252659712743634233029494104173367374505966124489824896410614798057747463617287337413190914037063931864346980965713511966860910151323536684280305381049620419230392204135083998566513506394109431336131675479198847429490640134909083937048896250306836637486393581595178537365170236826536234867637697791492794525892089898550512335570692933926881326670072446084917781482401424241526306121422614214573967140565933027606569031653831640059336619900977967061917475920649546045025058074791443603826344792235220919564514848105237863983633630114806658798809903236283626022330899099526545521750864761102801277618956589377909032788255270048641909289605621677309019305043743100645646733387651225536531797813698737136805845877539784519616218202685147968327708760014677906633797550107725580411323763709944914957308217808391083304672787981259256299923337752164145811209321719626811297102137431961611929192681702012865375367593747833109956154009535073970346997222941179389094398318562070785651734938536767291296248849430134169514961132555862826664573237551183777517279370131068148757105797367569561293764365626312647584496440681923401658772993336673355712744196231823773780043731933873602512616751271647419080224205183861809578711750508829044122189204381526236594296517175897242899796933333184833867974322627236335664798734593350570936020234321796227317959320225530448926727603285761828491989327453057258538759805109462170519018122935493283672370441033089346672860755783481290593300062861184812509391309336609922477727853672490555826115039674257668217091109909729061669594208141437844771186196401400865256866095536693635897155410427177029394898908597416492297751948268198328099036311917465874753320674283426781221551512151605146809699058759870910664224090529961051086281889335891174607139773790365804003507929056768345986043710166975196590663142980659691485531956062890236737881494086880726052595336289586042064941098312647740344781649383415470772698941500708555631528922962183685335851169817759866461923989503308158488347608263627288853291301122631068619185613653523914353908279770793444695765830895901354385230539190458089512052436071011008080353859719180274244176973489647722914595968536990260534440947875050907832831881563972076072760434580118424100693443439971945258950924328445589603412261799595428285882048993019401971971953996700903614213323914960173650894640200748575338868378328328416032592232505544511693837772863185390846824988735969404642445658383126439449186004169766794877477361204313394480511466881976208487724266380509765438101242828076665632098111657026200223697938903529247777011403381323269733490142412417024620287054850611652888552604400401379787600472762116839709441821170526712154346217762803198927659919038663893901697237035727864050669564525922483252263726020047249050683701052483038760808480503112861674595076724751922589173764270614534125766430701411156455363639386739599901562315530493781439532378775749752184086145615602338790834361900264915679833159808958300623882282297664291548983917968209143347432650320237723421697814334062969681546026142779800911763542947987933564209269443156320488333061453133901479746146425822727878446355203037531467568837384493639043427155811101715167071080458224652722297267546027177477633087843527077979163522462858152713222697009113684103790016032497584660018340801998196443636719194549124015944391285386808199050555734575355137882949984699048894668108389858081620330993520692882915613071963880365925628324221284341575250881785032938434777536821020494506751240188050675385166643264147426400053278547885792521486529631176510408964938050263037050670615495131318031015577538855934651111516910753882440103321806950238398016031647739479412251321268353101167705780139092828194764654952504685810106219358202951731460637227142341296513296717471518198604630623667461359711625865235855150187097562840405383390360479396610256386810640359376251465160653893896668230431445947089814951213289007831329145837206854894634721875903783373382538951772024935415764530970997776128046835645945040481547458250725146400796146215971116255311093666882126315643173103978623395754166052327564635333850768284971893160641822210642428863906104112720528580557689164773521556790218551319456853739510050039619848899105790749972100181168958269540604299992863856294179973667955531668094021266107890516556567644722629119389947031010990924989867285974032711046598141361280286083749613058871872417350163584490744412223986587679649034201896446260851433158565727227366042442630699246410960907469548639033530623852494152398233121495763510721500434253910091680330757798366113094493540241148719372703593297932845353975301384857462576247915160429006394677769297628136423649468603716635643678488436665060876926807954935040710310124151834538419017285503933236462828754080770523309994450258796703596693627754319129229029696664499575961306460321170691285073596029710273485364068444115249623469253585246347990558549545955058865227392188781373582273652253192665299258876094130864470839628371093056330520453032896486882746791969052290806490614271927042718679110288659294376500280853763892761554824966139410770373518770258526317222651160752260292572809087544392928570178882320593474317396885632640524853467397121932025777473071841792346222929533407650433850421027584543243833928852464124140712553435111389043908812956868270461611828139633474261880359796124317945172479505066773933159187461635928963108489014215549526224602609248702785703129615443865927498960623254682130850189109039988937228899675727044699224221249298231615765981884228453639606861407937567718749948924792391383393221050505388885469582473273487968171967983139279811487315057592379436406479332088877040259159903063004597668586588378521566646594111142598456633212018591225481400031085065298130803708229544425375144629609326832010252520112067112252875408361775908368414312664004770007403978285007543019876907987629356454325153359678418366832394464899363523784121773517633021575032955936446012648848195008454821080663255789291978937179119934110686490493534030438276244482687233902413610565402122072684745261043552429933024220007958531169803822138508823722223665964558102067782747666808196406389952083467773900161520983091977394197870069770447652403503276352207588588548749261332073510014349104184850068086433169766953798395997463889161683849080538592824903698141970896158553985802319644761758240791345369748916088547660856155846132811190406415132127813735543830626499991108603969047793390471144949088987911536957402975505846939566384553056133690433464437263821456221103043672275931109333547485198937417352196409946828369622365147102407694056067800310457026763070158992664535043967357613887726438191726857576207170578045461680292278462437369054938050594928580585785776418880924775201610315086728713018616290065066009369078072366493107556764276789323524364803973911333393115897191032039297405219682647946851660380148991702778588295990595269213602870951468530463279374105623862051913077555106132425120761521535010044261262430390640025885365791570890099122393475818298717075804864073365678069874303398808403711655724333326700390423479296766566425608563204448570276420527741232383975663475975648085907691216276700741255487303324019731160181413390626985397693141329595659247001210394399493340314891181837531878451658225646228040320728599592077704454373491805510658793454250180965264581859508181191378279502954369619690199758530791849745716377921040190199546946797381106555201431000027938971250572640005188450009246489454712226559101323451784006600475859333031130634335933113951705022865943288154965023674395935738110811370931125001373596012823091274785870302296807431512726807525602316252455870177906519401902657976769387712852642520728312080159631349671432082487033465538817563485545075012791763804668030190541312644690459671490864017293980470908824028372956252791792926671112915804818087928840514062441784831206097837193155298734381271814139384651976887692158927281091272198884624538959835819076774424679765846059026264725570549177807696204515584410101711978028808414824475697251006387556835002681303254095398583852603809052134332396948936784040471373478583855315236472201269694644342805928280164443047208459828518535313274033868004206240235725225685475350711519352634101315508570737949556625012185525629031205305925045867842747973098542049796740363517471320614012649569402904929378086545240611187137343256375959100820212095374075468836333298546149944310843609399332373687869678227591353471545169951987389085068253314856443358056829816339072542439723113517226059021356200216336525764239762355627087469186132164476499626289702280987081510456853215471289394326519385706659742595008407548411050615337204256213359111070615699282252978635228500599895232948159686737449794071217582663476627385552255637699122739094940601251627751368172845721813013221610177458242047723347033555778645972172189583211662924923611654893354313357728019031310858473034156670297568437213167898189143349723672199137600314723139517628313112765893509351058496928206869242845935663437090502058887259040517924163431708004731903133939705426359918108972898151517186555159012329900008070035400215293590488985394984432883857022402301799678209779398332916861681836447172315840201477213411347893389714960753795918241861509549730793714155236907000867726531376303814075805321462052764244039208853270877344788251824485021179448828439269633793879683767392066340562938216932800976131151989620236336595726856909796053956806213529371424283102645655263678474515776535863171179922427128380235202195693729863659889992571921093859877573918402128480454495260367285575289367944095575788478545190244872313236080638536154669149677799952648770197770973544980786846150995302088827872569202708494761450151912959130495938520464407717727730335675975781724157486932333817569545915145455632633676541765955023568651808986485474612266384485853279321290625972241855497521968463797102758869054194233213622141525003399408743402495543335048150745379978926450534173458180955750654589223966206301459130045120889926314478330373904030100514187179582473956787815858285602758673373394305718427889421542050394979779815716589400442294834952408755585827049938071762330598740324967770159099569019425289679514405417072189507404899113951817618050344870485054284923106216554476359336565366998776779186650621846891997950638613173502874802479571703062220823032555495625309469718644991945023021257583499535658281765935086601586027636290954832475009074440565009853351810476085790079661289082270499218352125869356342850990252127461721114060587107308116674686694285344464613196685334256650801673798324199803494131087953135056909095216748716729510473516086905216393276664250403843459369094310020313578690448984795971628677706253267003028659383775422903702916549199782845807079948959744106994230986446647944324891629016766717256588298518754114509405437800897579158131998467098339871281606221225899887742246538398933541838882613319910391635316662201688439865720120472078370627446051110629221304247299873318974142573623237748103764921027366733739413376929468404504864346380256436146198493925770816963118828906045315341451714512757774920684414564964211713453244982171353700812223953025332506174189763190181588140385811001096317021658321646997142440089055521493221689322715524279203614496266357697363425192665892949047882204082458983481742642864262057357566580309114567962225683580373920840591302840554797215784503248416968373921988144777335407580635693085243606250631028648337542776778742806543824518650869460874187178228766018440252290373202146165713480283500020593860609411576283091826156194314933026014205151793922851823033871779724877762762548653904825309584139556385377613954339178786298754552975772825225479212482932394759361934892482274217098769684778149478184407083295709265412151973572217331326811894790515544394249396239757071282362521687743592942190662949043582640573177961085268359216101422538209829549339873164209506841670676162030549658229518099469717854861120995573198756179969902030885684741497137620853106820781984704887387472932069061321681138238056926219570980648332297379251282323378937521698095442826196013704998520995686431690278597058156957214292832215388276960510503542844116128910158588886502008707176762696300371978949577837363727464343177511606506437997531883279923382895425386172340935731943407818731131382368365750965218747957875934876583278045117990003690948759117686499250306950416211591669529700226139563538993710960153952974664545776942197876536161465508039297601812971427250113511212579723259361392571875093519514637257954829844570376223827767283528542473968483997409437743598791938717453823903358639091409409327741438691528664930111510151061309574816326902728646931047368097088320095118680041749782942165302937365012849619525498925196160139275910705992732660184706503226592225579540462352571743915182376671916329041311969966068586439231456209548124597084736191659387731719455625389529144975688233642412113433265050922541713728190123803286973745477187632224711419998682467434613702737602203353644893693981376605524405271199125777202267987415309010633120035997289706963955675848379169695185843344515380779789436255491967452307654393757900288949865121290650232920854340657999594034826862898564376628940015061828619796673169697165145145827722248053514256567449657556445997466228639651250741109928127832385750100661196723120949284005594658753088723430151990345416118984681925615546412254784828068119679210665177802853845928634548888437572997135148721569178784632663662000275697059706784724169671745025193164259758914957183375933119372437891235659661756508781249413076741647437417665692088436067673563821569912310573144355451173472250178972553544672238978698148723974482916155524723203133122320477811422995853798092350117770247168446914747555319310481796677718531230730333679034262512782086121657517910511359666530477471729687957680419169484879160590153831848713113457064803932700447066902630729546080423677488516363236433558834522535698706794000048080075929185347569056691433573116538871958469076156447721036477733706153514823221086912749416450966952416415492580260956289361031680050365357965873117548690451704088347015332528564942844381895409574178163886992657988274544214468467836892125667179924128118439485735385965880187400464595197785059618688307797315471329162505840606622175672811958392656169010757937371536832510588911152174578201523754344421032216778436023602468289307535880106515077860667036837433350863728168180646862888942522795899083635777834812821590552100172427935807644769816175026150232420287235806403233133959300726564572231614128050458940620004360607793619726310219735870295963300480390067773168067672683550066652274309516515461109282728944105439380875302818981700562999333089815465199988287118279663777658409401519570866071210934469272217359295266183251874876069712670835494360389186882750512205024255755956795117172793061419977659035973102804405669259107075252500457705575875766673365506615042617308557786416522031249186572015589971263759578053135604866191095164498858255687653626253224860573601660919233070287845823378861624655746379469642899710121365395614343681397274507499501638150030678294073142246065626508750671066757800576374608204691176887783275101120637774565346844083873492731220272361578719400986775229178817243625383223794359702284705697218814253445644230539945725011254609131441446799586604145146803642466269461978847253499544631726406108814445607404788293353567707682854165471875948725808121217642176101374736946285948370396817224986339283000591622748039003427458516481551934356905948499694595024160432461643625317193101845965867394390628849680165306260238598413202277132058126883068306096004722387100519170759614333608982653393484041994175750158602960840067257541607139033175614801829364327534293994688614224227100276135462644439637994597125085498505748390800026615479742130192219606772318281789259492638629745236208177860780032322942549307375674983453952774880490880949252488141099819683292658456559326387486812307982380702574390788866833957324799637976651032383389146716700326503354734406637312195289868401791288498879050785044831739829415311345814411274678492821127977134105714091427151345096254948168506210810478423977181740115648079102165064855482812202518893577633555181017072419525205937944248264484671687559573710156181502566740729621738736418401946614573991677273787576836937875223416476612404181873184853983009436944958426233758552725210875745968676700102601615509649956215264134298736665862216084838469735554919739692022709727637445778626569764032150802048909981840280735514169613771215278990013696295372817769008333197222178061618146111956364411363936852365677753792505466458159753116861457405195261394496430422979319385800779224148913919398919281409594079929445580972235265619171913672312648954188867482598417125115537904082100787768920229073770042071215323591712476390884033915820509854351383786789884179232672602148714880287851741244877636898328221563616358214800855335257666995559523187797284646488384316295177900575413456506211153878310459071402219952649748760548283860997607285444310035719520030876143035997030622467879869564163985885510678943482761606883379328642181435316537320933655507126239356363734636418896718819973241525850140991115513204774469740292090287841529961702785733336057856702706428141422317191381937554895185918212843939991177522048061285088881960556374144752250608432454647866271792525923947602667657466467658536179822876776883746126523223903948582215319272103162221920423882808601344363589430162230005378008024305966497735786183887427407283935484214701977509016389884557157957569191026393778623685962991989467012799544632842977341583867449322976693654677859766387528938704737361320125282009314018103130682052154105632558982333356659688461116715585436183359007053418429115186861845889585401705679752371280601586916731500084476438025248204322763896597731791084018129620694869206675223588121415666279968103445236604891693794973163364934154828221681764758966789133843061424261864068049733522235221765591745707031175123717507368376918183170499449681274122946278427699884859512950423439059367081981993617927910536752596654075060728804624929341086404962402232299593372373522136631919470134536632231304445587498916988561213458571084511318019095543266725292751488995312612636541898970769979211209669030304693184795243619725351405325673558916616375292844747957615881859956861763232786918089409677223416725470755443190648018899515582013697577532097878404900519570922772604998987047308729400111157955617800459730551407725111782253739794178159715293830982485438168496674031604046868359809943850057599644282705225637079163537179913303645901739334078086779186313135419675871607352139988064686213119167713908035496378719255451955267214443061295372940145980091752685825124771034871246757793114226714395947416539048905733329267031905161566674088881579992187425257904261426563293473551094387600165079779521487247892986682608525476097033415586862483732066044124530872688210633487344730819852550052186451571659911115553541719149692142423204515920492579310399815764610647063016697211388199946867868809530762434339661970352099243265413660600886505881082193003329247718660040740554099840605929017864295600543768262147472641909230992636351535992437151271955865788994431442776090811252403015390186784468872692878002688365573506292973005184218066333066366572312800730800025754000592398771164546656619269126502540342429114666040296498177359099530733969269429728338370482587921674174708618245867657586572807510628408968404722085301434488402753961700442028388078611354636634091011052216353234413401016553480223130203834862577673957066191014240817764562859467292544360816739098805064748157899404291744257757155866219496334779081979847640735970250977383129915768873413746973503370760702634917872408650890088912380890796978016693594899322614500566958620243604653171340530589398541311098873355354142289576863227549466551489483560975029160378987041358828894280844561027181888415774109999612779308898294738756938435119108656205358434963387710570470505814711256211137965771209245427128953785224121355002965817422320926017682522847258433295785608570876717972154783807937366917594476974331541257630563708171985499022394563514215439133091044249264424083027979228122652259246038017995997081864674110810259057219786703932499566495350152018058955347569806474670784602105503847117449332191467550939407004337362688821555316660386250628609580702757551250983247771642071154442896426147802342813043933903459579246460821813371757673448171075313899292952220867715109573986264461312772304685097429483506314925225195620657584929237703546555803641421604674850722235832793534593164452491590159130969080656949722711955056592269492035973823001933747268093703339156571541218937408734333326557601207234700451474516414352246247516043230059004439294482160129037918148519000044813256588829081106491831571173115880564608732921506018282941473547270846557901741755425816734583444637313537317859188974038676373870692540082804939992196792176994771039858079154078336039292471862147120678612959877475123777317281712002546487978833582393470074931284165171463277929112063334397881219540690590088088334449146374294725153119982396541875949676531499391512683624860751338327187938387692375947073392283734104136284148965990563590983787902257025780448263768597177220362402965830383632778654221356866724580893198926115807329789040588335832364196926956388205247079002033508688904040605278877578684453481680408429545712052262195485546735106904662245840852159876692276802488497474262228688630486382492993556071571572515698085097528870886610184603400358270578000238227228643112571807366110406228165742313519365845479751896540509162406115647527956509377307992475888627495454164264799241037726237171053199516825128610087457788634382174395659867359562949670421373895688532112642298136594147115135949493219848048775367086514125684251304533655240973421586392252524231688176181254446246518866299537698838272764734557998189445593795076452226971443298400546019436771447317206647830479655558862219548093248821495562744945990387884926402264790527051317753297321062639061463426584500288524869922668410710895525315068221181975988551998333534442202835887265030100030962746921544944715206176629140438845725877665226543217003316881031014704145500629672965159450253441003780462636650397412410197839134322805731555178099196922773556113415708225228749574620320703149299538587590962518341723639899465268698201791924212936846792566380156237202997081733069601524212447554082411252926877669746312922692425187114279258940376487213161517244703494614294684490956359174633445446182543389943678662465641109561546509075089012652941475691656596324373814867938545291570489542632553303550117598988621717815497740224269487797064529825294159287742029074487070959410082925005942661196872064207528256802792566730669310501517678154825414188654407475948095946763308855345521616126182110045289345270916417419190370078515469783451999333106220650539275158958438890019132972255489359722835828217078658300726169214641618008084460104567690527302223848115293800500823176288800147196310343139006348640131822645721807961332439377299375658788280549411094845082321864296298905491766095817588205576896014305626089684305307864231801243126524038187544646392764674341250548195000577333273712394482082629270587747003458602460274889697927121139144191959984741544076905192103323610830690489451396960723704274392859042282992658223399337609550170008800613142476811771876357527826901590557518818974787088248213815564588736774745000956882601741660846755469152278978085267964486800931933671040085902986503981160848047147937824956111295565758606417241589299912839558643286989547552470563330661487865033909608805738216118597276299922225771729032780890637370186479237406067826004090701363204067361193438133578422846025431511010976593356838698284475328973135973850421156506000174516280487114516906107693701409302257893540143919188154836957847894675810728384180507323675228348573527466799061254485977574502549249596891172860424536285400556641406621996706992136278162218448995161486054298816165366822422292355541922868879580127996858736673310548042034174359590361063979467221262845652119982742971108958287451553065999584206170968003710403606139614052815291230134730485998969176541502071209240968977346806220340827287001378540565441581584020845200526338362724095297561292997830688507069881956314731296146683925384083422446367412607255857570847212284928096411633520169441205042746813823779440791503324628221158799314279872520184838984771235871670944305186115554375240829171973834572839976941045994483263929986086553089889620206846072623883471028032779374417900161387876413264228866596336865497267776522263253498991064897847796998607546401188923124174143844825709733063296706475453455755440396920496646919106561935127864190851797209796666877868353526072324201776975579569030520680644932114396878571914722847592601999748601510433309164120178686661961151098918631704487570740897441526266842516285942698282640228539968104010702383381454517198162729061199417246546206718744151764236709010256128022670975477801118067723106605233419509074905113872263925401232532668723581542273877195627328031078107137344817516531340003449751169145281262900167320905749341648544506220921540828070268559804547320016492426989779539998901300553653663426248926516655762359992457759674023710259452601119698674430482933213951403642056292397298291643916884386341914377094695021670611170556523688777923045855553074641890223000120329431988930396135401149221387255539571187747308947926792087463243448497417340705679143412319683614604488267570671410491210710903494591827079269004350550308887917906930173532508819039737181448613116796231096711508720439294900812533575424170311000461417108038937053667351122483471449516765120242313320388845174845106411927428910304711389750744456716697113694612401077881159405865707336783794212268836045984510909579160812299207739096698582472164679603755429188321323132248366680247642486943870459399364522118588420786576385259290278110064020164694378786561175257510098209499915401692993467594243250032032348903895359218689273647642274342667204000234272604356746328987940748788470915811461033640842214243584926498516978895300964050496120499501061050150677228925272538967555593676502469663469866810966114906252550962794602895177173222707606979239550241319945714835274597572594696435007016204669771489474745239671940112587956372238573764443561982070530334460883218962247190901307206838886962910594148034606151265162116198385295572465235948403310765071695357756923100313960195113936904801502293694047401108162436347659566338131559979291435361595006028844494794576151730217566489056392652542097408403905504738355528413733744365720341499476418942781055846983777603329646300269597765268973803338134803785891803271584160687498675133340554078513049669424303401775982697567766093545988440890315054353861303278613066477098387656288933778562925392973996010816904514172999251256314658982281045441177778982529987583958189123634831090566362245410848540906207083979701477383146732617505106396148362087952326715211421809916337117383336534405588715434158445730583835677787212230731962136021532216199799376902571633534000714652810572799734714363627431516169191601125379378730722643299350352383884277419175451544577537716648408926929541739641457369619358724677190005192377019486985791783510081847443759277462212107539192001850739607545747015255230146237399184806665943971309519039624111592839809687057431926159808620078986272408323618427723356301954643002743286819194935966880300061445474840549155111858636060989152336664846023951675238385226130207777287088266691631090119819428787584637546949184270136995445670579157654101705043906483758875099741804180921714374429089024982219176499777237553933952382432540319930506125555148664773834768565214488328690777737571649945198606267447545809379344825774787364779979368389571151968728822675280402562169175855840696385571484012660540998335457089807441365099159448411669138953830225810460210149864766615280898557409801317809411879160758469436967150890105057979399422156075640023500168858444342340514891958907032856654558426553441856536672456377687396851498462697177925484513720512923106467524907567919936587020886970560352904314471469336391924299350395020450432993184886594274125107907693124163353423639581861986144661627077287122024779051063136381595175056790281561071810675362347492776420057622893160513587423584356025085507668758480727381959211227858975845147204112108378525684339610219744838438470759382157277072403900461402237662274511393070152934073006466162548083941414047352324756747814043198892998249218816630078407787624621627836750800977661757068097404129128983272739416997733551056015576611174055242332512818926388599621991847907837922459294461463736633484194742246692592171287347269408742092446210749066164476673772370810153026955982741104526176803886156949992076399723904928127931631470060514674970997629283102989155175306832163353870095268722717574579724910226339651117466828028805727554775346813581547158546659640014429787995520956765862402427418269291325660285667721878924609261318485399503445095935505963687886306257962965242032433275053038331758503519176490290764445200512415586611715931422084495070775749363316339459204903268291825772230713553114953481415600380519397718918662596985139842550721935633555602040389962325398911313165055851823831240942329472125071488753949889752834158203227622511411311929576331128305529567968497010944574321313317026543637957725077388750066804166117083462598671994844823364688741727694124298647671770620291142954445636577264971024516247038270965825234390697872898407286047404560528803628151800669553479143160861169043296384529758924606215221580852672783424210789073608814655613232049183823937252870686370334109652557683583868121536280083457294800352425905124965088164985603455700103415956007533430667638130854695517371511467642125371843347772183371905556724619418949709563994015383434192648363123090858554741647348924244928235596639887912249715655313147553301381477238390180002258485306247303564817771971403332966521622901814218504488812437739460418996231052059312581968053473227013970501594219036942608265391120328883761536086378206576623105756149710326832486882555129710769365465050440818217813898239712956033421971330287165163101291246823903844872893370957850393959619228518188326849010933563090143354765839258329279048992389122383867873881680134262060628544239575538937454990185600783938689985835461454782261452465012671565546816805853999410736881348263670563224136388278212064763660079242498751130117247077739476769894602197843243881827925333365966326368991023761647909522764926915627558704625843776535837652728889221408913495447724780578595127428009254609857109318398249281479712784432893090035733478635146286572767932205996422890983015651945256360079860850240549106763440669280618071640062164584324806500309337493345364969195509744343982414586025680936825675043358040833666391098299628754770056116668568386336983258908800404331966735803100464832468065168766683780002341221155848290663055378086562620370072831203012284461972076125869331233075165221710542352998227473644117278143834340201755789870411393133194461072537254563201761184961278893223958445642171841419867258765385741345067353417139601717899297333052142110596287667138158610696851790275629815116737512218815215889384683666841489131186688641836443414422373939587161904493097251385016543925762504504382109003389058112142763517905942745396537860827658728439318550841653467385005140211829754518294472340004503356122730955659133111626918872867260159235531137696993992484934675448351074014091905133074811684924890844111253677362193376191792218565567125754259988212409043322880571125005485850407299368715289199982674733475935844853763703425672198972206887885297804585955913241705501816837297375660767821813361506611619232051800615874376372490772301143658214300316648836852632881424756299022363008006091628559173592592979924389569214304339392790173363402769825406588508167738832592799687697837937779381905672726355296004930141118102100717190068878211952966342756021854094939987792619403565382345647267776146078627392886911992434570721095480995189709054401281817918682437200577862855834679980898724327785814051795408956912106942439686402044049700440493781127787194604183734106537776972976873771964512876727317716600947306906704242751794970082584982135331527645821830711778525654370512585302070058533819626118212050920037342111244398372701705718221178347341954858997828818887099556908766966561285085175389523494202060703107644547958078746555064065200637635541831223935522265472669831408820504716255209915275615418949280132078251877726264323213770472505854002701204434949475418859280008299082219932696025583251901271328017902860042068284073173197100742121718998482204122867465474185451096513378436938660992542091722915361104134004378330316271899652030627235600000093682318121293052024168260734860329842746930436360932015076093687736890183265088666903953950459709997862158018161208056174401967658767359081061983610667949126899788650688478309014476475890286419391562891137703666935016658180267762123448962956844218125188736312758015096310032435845511244457944212501828576195658597382127589866987795820976379340284935886313452909715497756835670772224188158007513678645918277448095935803667344051314761206848688436462990063328009304624440784840566555319147842762806096480700280919593664438772190235840803421554202639235168377447955553315331771839996179659109839273460454469124554109192834144599741222739229473535928645341363465086669437334229564621211710513295736039634232416182502886490620090573320566196124012583288905527586479735472557815247613741736571657926985751117298102180202179798814975225643175970784119843418581267564725702805645109585186451007700304616347237533337416046409809339232944308311553155180398757349110446568820874498916682458213132956083471839886280733918726519602699707155964006511946561312548288860945178140970753298917463559180340492032831586505708269888583348156175429440136737690654601288862419505666922927078726182049972916857564043487194483176297758110647893369706832396229747301637949769561143569877789417181932100404587490335533448526998118096648702573441585800994246790197715059126403198470468676956357071035769049696031066212139086798904727716277027069152379218459126115881506714164821063496778586051327814090311457044779389076959070686631446555222361423466412258213808862212190770377316170915962129748622585398214169252705842600483398855948727500215494893468890425581740172826526550820315101981225150034533454023763869302040209212910927717652308289318227443760552324214566191709483225551764698005460701100519794800859976594502317927399605134301309636770858708371010433761648595341662076996915765836334303928658904985480001388210153431954987893746365683913778753171898625400218708724143598505832046876709114749513562830485961496166922477878948110694756582545845562706758693588651024954120070182785813574305994130145907355768349314380976550063978874452585240016264969512969467677131071234701753212613907548288871288962185243006105277728540909411447519988682861648718261439294152117305132284900707365542414739397292887674560344161598249147436833285119944673682172735370595589775683505736441811969164832302780658874818162862854674541485620101188571850043360168489848871885480257117686650029666848536176962018213964908833778905446634666804778410870960256150735732643281548493331365138850552061750049975738705165288935840982274007226201577834758921500446909450353855616676877304264725643287933106188462011328405781346357284565946989747794369235478996746560864285404898576722994211676513280827142535873045399561061844564768330488495937882855909762578635865512672456166229271248791172629839687153490881066475003295495612627563378984529097884590750039957112217084950256071414723965042470381303417240733039733952231311561853267191884012725341663982857753502878494666389164072851997830266758626681006023177944748592649585739161281438327543334123461385108614358268352964592387489606663716098589451613903749719523514011338658664250321383994421716405047979219066393098430522535992695000936483300820105909539971027894612909006967487561944652602867134881001865957570952204610484247062122602706473056359689735689898670114120719212003598404936386581301922821737478745066708728993136544541340726755349344362705803537812297482700426879205814094119057449535004923477339280856646356132136660849535813497013579079435463214827184259096686189428608826511858922621146590479711926367823036283204794793056183744877430199173434325228179584924950865092803539617705664929469108224500738401161775576019617128990786514750117694451573863361400265300211614105820559944193215006092207516327154131460614056650396671560793839836267248919163897167334907525261403993190657349856631640769011932930675485998208319336472304992261014982800763512265318365894940589804205263012428336041466951219011025059589211725851100667835901033977961299114503488993646419822045277131272680108406531466993027255558133259004109203691544205214704502669827065710028588661002835949235922820664721070521875557228442154542886107762073987981893491060210174400865394319232167181442626198384067528652262676989700119992796604267167015588370473886754056658051612098751437479605165400799378059752131988924866978539513476392463091904530871437250853380552846740589925686601284273714636960674130644887995093188349938189205900775639923484623315486493932417144571841740108205153724439198345008788123844977791157917378299776633517924527699106419723463835758240411791914503948679995344468721965072227907095364289313709093035965281393836407447381029424463876508611146937361077759741290746493698049315537775869339579824357266142886027191870750241824602775147016882488387278799435649882956740985908178351469706236856968198447483726678171188396773078516014942220773062042104029356362868934292173928358747228345045895662054116121342168853196912788449205074117310508630687640798203219680149762776982646445100747201708755625458879067119225817585829504651678997102791008876840319519438409343504329392234577550772080114479231705746074532696641781411216411635675775794123251645440023918922540415496641428298636700756270796712061547836098872905974483853493818974019162789487305233170775798685212015671152989260577946752009773065273811704387410639128398809211042919884560295200579122733536437851068436979698453382306948022293559941886536070638312068695673448694985168840261007008182593906741368462507982219591492992775982736434914930696491056347794383300616945480327256929242822130248755724242995149491261082570259911960914823150004771105776467810137086819814811767803539331431599934586015596035049064461549992780792975472192576768841603168346476684130956892761893293147409438984793783721806809303248174886857989534189440979799347523119349448000789680255350196858228489827765102785995272242269765587560971341690223509911105119017404878327346306776886244126617934934589042728831296258432907791238328493884928498423002314485115530555289380676259490023766949996220565350195741222574595604775403832450345196573135144778926846542678952965401712709122655220167644775401393342173325820184802991171854985359974925300062227664196673655172673288315703934589133242066064090935583184430869433344558636421757235436919298866439251061080004628450970719823169261239270158919920174499325794085736839490751532248847045365673740253582578113518611554401707919476103123025884286209264221419919350063388950445569064934893627874283839621574633982512065499897299310529500119126664920329487341230215451209965144850320060281537566246448477974303532704344469774788214390849984763071663919957375865529148100629093449916091154592906912401449036429728949350920557602023693001090482312840673258104237760719208938912539845794871188518049108946340829898040126921371542605048161984668605659560517725636028159838837812032929089184294645841199649893725516965129238277905933288520653124515370345760926767442809497146713035567406567666670930823788290544096527406924033987872353028201366305870155223565824094362403000560016480349985310243561895424660628639268864378279012615650666440437846218850339599654056881552591657819117816050490407256869632425386668225751238525173704111135776803935682673375867915995390808677430284385003785540445604005814356935112948647353929711226394566045560893262461689532032354031174057356435669510549818230109584247218856892018679435149432757330374652108451134641882437212840586047076060857703385984045587809675376910073194225838520750288066519476177496255370364661603477913905288658586865400764564249844752029358347405756658418342225611517483573731399278307818940791460338634742973772611581037277163524984850585498792253019058863236138992741761111698736924388449911537597400040170509999004523979978268939025365960071513897957622807807547075623374158266675191294212916553961283543734705538642773612978371986913591080573955302256629354416126713360671844152261026801072409863343140453436785380814497475851054429202281253397976447173497023411385299209586348992995955714951038287396213220656318605677986805845973976709805350617709160039905774797184238325585752577058850614801992185428143414551137317394477320270852803230334988936859339560366568499072957938135440330467078942745853220855704740926937212417148546152766210344854642560632087950611204762565035279326134338734250895833411940610072759890675281371095315102316927807035973200032853870588564512619604008584061505543221345348187100551616662168343079365427468965639074955453853169368492287895283670784819299337761690378508908135176396151102826613274490164350491634575839814299663483509977190663237226224478955680432678248055985089323627842122115935238967834482339417560728569459939625808242016915144281399915083250930600212916832146590999429747608681475055367906935091061144510456343423025224043733883986830190634442268165087941648805144222610455244553404214601728250327855258474729411344713009082374587080565369354934930583950997458588305007016063366640027815664321236328812897749575562104344822129205820166885421522962741695146544592624687584651680968007683218073571294765817273214891547877253978907278374529198151456913936887114997914405832563075711427755106978306011385406457668310988296768785920159439168605733284794301786353890880206842054130386591361399025287808965675568438490286753797126320585712054566073759626135530173120910498527696354478677966200122782299609468127801956194546748806308263766406735390125135753092592240538406335963391981423162544222530738831410048761205743104949399168669671950663315123538217943564396670916319701335371581474752102950620163957344970045542775276075505505866290752178857863799433339839632639612326032360504691272898403024814045212422477187653467874525713083062246902584448153673006885590392187227692058091402049840485061618377388673474464219014514978254931886150554173215819019973170612264894894619991599087589280874406156491840964384233398256954274540166035698990855736234251689874608304282861917038343908003584532380052972643907064911564346971438845727854196549116326010487263215977388152762771460442715060836810218791451400961118907385601115653107779867899599534536202560397564415443646892648836350687891867021220485011186247757456568030518342807318402758483887662836954969962954187632093267493507790120515436883176193916702298799642617770841446636435826974035261671104953982042893328326957182149573448088289311695936225010308956457801189196153532925934005438861046064538239506175339169000716915150687404178113177254489240694537555814640702686750763773146207502463942604465201291242626868798612544327525415585087445229114351457037267108409082561445343491937072854516825326125136625585538991245059383460010232086468889072879097331116094798218514563305087014730618176327382411256231132563395395305003634376721557779131348251497359898706140288698941116437057610539429430587543646631878548424890712672410453741448313899179625022300212256851573629088576016624822628540932907803868461133155307812772832786923249937235198920886170690474215986812290146870349875601177547675453077492738228158448528365200162458084877935375260426927934297825270218094149562170424804660844359853750917412650756273453869197774085704943784613313815307802722639379040113748717502344049894419322808351707222501123459403828293493050978980890507451748967627402552234394242816165775323092695506539962452643687475572712446521140472035660026143401455558040965213779452866722302422424155129380290721198619218915195124988760854368315002626216764333380581007565674389824194197246327368041159732326690095101805088637382534041142752832906204532756004119272616755313945716394232196294334342051707096991271848490219732933256227007724462795293682916607885763569714595695031315661186504592100615099844812312455395763414072886865501134926780623505568664277917562594648399971667262383253746083357014588243935732794185467958978108385290535520038400968411212716484620460388639384969156993483481856613133765647863110548582974704147178927272755059132236428257667336825772312750117649930587658058639958000250619962822726556082049936962355210134017199074483723572697002869442621498972552928563568824772842337137732400062187244233705883515588702467373976136769873060831181504393631613176172974171229211623958805756058143619874086578019034856738892116993623941533868393300707706170776474918036893477609212097194925739560277598160973095103516079685654634844036498142891195135739481159216606910393509241094948096406255970298351930789904898938771052399088507340115857073232872512463975428438605962385572704380763441025762309516542623298790433010190769724520016387976848897142604127817448279605866802800327896816220935010729195865564523827365933910471223277305413279379757457148246691703284855234535715505377166137660661591098405555615054819061150487760925467378983193690252705459163901186062307404705545766814569703358410212208591967873014699636172181063129549333365930875332690143945574654371414664793190144874474133007382452669981040453523853754940100641203454828313629001891014022672505616946637090048627093316734267580357808030022279046631081896164554256054657295819694123880648632149333566683516253807652458640827659064793881739411888526886862538376756292589602701621032431278888427837020659574480129546296409869603772136244402746392843833704148413496457645973567849735807675568174924511207522973670150379558099464707099236506397905166843203936267453567964941207881071309635230122131947843426819688592711518045544330414628075541859401908506917180200650735392621470903575631942537766201765994177624255921832014760832940601196721160743057480212505487389697782168597688616603465346417278689398669571831766142314218976759402444358991453514461078599240801315135535222666845423044142060862938014240776074266410915827572361485938768087198200184337847935209187356876456577068390488928090277118271164112178881337755346618241807495780952564663720752169601587807309965690686400396258839160161241050720932811057805217883447594901116749139896619357853631320882118438235612218531273201460925950533810150762249109482029326720412005981690706260554867206932518541154163409371845189280746605145704607350522260626358988215313145252647271598215721780599852697299981205263987620362573009683206520674788779831513046676389534595042473756900311293792939406308460132732014631434057116481169466250801041552725480893879500865667453041630935682226081961196594609234118902627706438032237980348391024559030084752400692693238873459425062711912484891354560879192505754274600724231039413988692581085937245612991387889431980199010351425896438100648350779235007407781744098551578464513452328591221020041036257220549219941169539507524619413158516711668674284236172770356047773584352031959175910762509492325728884560436932676941747219461614121265937103727730420752747249451948807288182488934127740054065817195057206248096144004895665348942802519117429989333096806308369738400025407728370934307255816443158636692724688568502568146888316096066468674673401641332630245566573330443169922232278286670780679418114938312582779325652392584545301392237125195695490482579896707879371848729333242439164993634781651016626179102099053131404235312925876321747653425392454519478992555931524358006852707847267942129158636164278890239040980022123093621871147879367065562056840889702957019218385081997663182925980005100342872888377326049308227382164358132499927311621881116620166685605486138078282562661018078764905057189007190986048659478094572045512415388554559315314241420585256143414839230063011564268003147220473377519627978626292016579579041455356505202211815723921714696434624341215124604127504273197992320608879248963077087503316109005954840302964285993377533433299384957446658188698937005650078700920063243656317320517018098361957361190429404235744561613262619309348738808281340729266925109794829498017927734076495961727735682000203210076551172352279206538120958854104815658555438834019804367930745097276752477946270828437596647762152551937207850716465695395517219139059625618523470331640634522011066877831905818042010044345590998927711699229539823736288817376362930907126191930998202994871366608107339148808052098457951153776454153974361164702515221273440502633604660665145633564820065225236238116266156455001648720991594334939707162192884115149831860569496301363440434055177343228678465326012100998883759128998356327105920967438934464180811536893325274342114961439022498307615781014184558052784977172066248591586804427164482773323135678943649781455850587310197412884975786586559109941235247661934181218513162464415881804122412405347262661705413082326396858971704653291591730296566538732968767715758443321766926849778889746129142015102210804881187385356938494974212924974497914142367701977769009672051983059076357289919828277141998382555594724376802541419899869997726510930893329075009818673688791155043438595024294926132256189810947646022456603566808773774279529652928646250981739668052245411592973057062627263649838357354757106113885136678019127581113334147651728216397656406599370787945502196187399886672084176515762635802621750415996358552230738901562633241422939249442121371651693898540740110943122101831615638770344446396461606757023083464168805316189214626398796503863477353812925153059502646670671616108515191258687619828482060087390838912507914090807065383906358007196876734497025396920571495078941363074424452641587495094735008633007981538223088839407318139690974342576537668937068479558125953868643525692217747073092595002914998133550272405066351043927588000823052259942584607118006467328644514750357692946289937218283495106667960114541271680878493306305035943007265425837303971018880174020436143056729148747189072418390239172020052281993560785042663156346974572451196378257135151297274662546660892663016705312131357663320849634714587366251122575848046655175369474076610956772974953554223020082409459224428338772012878484098329589783019602742097024101400882909992767700668753906771769199772518095147668943788483835149685867557885930716400809387541382924462486626151841788034202471547074153760437288464501021174211290976685603674736054246221235289509445559067096420467203818665368459529990011411921978895441077317732812343668763197588680372922096270872417881815889379075514034166625093496316794560284762590427884064974095293852359363580686805084671820136501185461888529160016400135877515701547908446891226858467403661232244713321594667506585376036964966986774493140090149729437899233098963919329366126531679327549075412274133393824669843270002330403758308468228741141594448936724935391847911273840708646953653819593147045349758947553680618992515842206756798952307299960098528086791972681693944928297441455917846617661847001222333505351314924979442822538213183211588313022129224448564842504796161025410949236455219928769554959077256590563242472866764198388031884939567015208346123649771939119345865246042630849239124479782017520107392269131269018429393837188301942207392093777424987635327995222141541168115099538546586910629459132396579845164375618163555225267259585788011907204538593003765271537116051093501367259193836620969143256834949631658200704577172966954175557141412907647464404445209503155651916935892506475483362501865578981857112818668958843895123267701434486710865588810241958356625630645587604847182654353204498200039810250716309028086799830252609381777280016669597880305057438513910767003112480568861210191756414528007573520243964085951909336211411751598367859043429866317507838918860204305654116624708269835101306460300632263807010072588317913531497758098208476576238924935609883409498505542444040589407231334390920565345597594130382316547501470333757120411199471593489505657089463766308395794944225690680237635018694681804276285414820416631717298202466483021390069098495312416939601507357293786267590099466991354064890927195065872400593679258789424413175464762388166374252454605639745093069334018007949724786639701915496082082176209564370310894015918412048027494308518664516628596702095238619956091608774457769193533083691455437313596425774487570365378496650131904272075270412850525471702967688959853038973921544541294146791417748064356019573983440480816329224064908434638397019964781834010566518028641065957256402438229042788541540067844085634411196573779167827422823910948457226251552649248169639994446258643827202851936375330980322100584484849257386570298375303060736458578430802241871517700692913845448095834477975835227155200020931521226405523801429532965073091115330339192844473583393405500844607757468044725716598231615187418321865011287989960800780243985762620346983286382693579820427291736447653276188330606509981798219305191091292840792790821039089265235237356524361315793233931120796764933668534292369304839299454302646802330732414668699710874938248152033983224852918717299380675061359642005605645837917196628382689178492252146350713800991831589864592759452083926858563996246750363740484529633743851941003626956706743715334382808664558526682669565787639629151188197762670728811213383399581375516644186068442677825031811075477120840662381850871744841287752902336232916145092913819446389657307235474304243389501047799127291511955549883627575530460827024939631163515701434078302669951967339637170353052501640013999395139064735593323488887060136547520267441499212843419089505646143041373712031470473176968863977542797751398866500955454527402606324069678831179799491825663237379717459604502582513035293618585117747601756109046513321734046503067299515887425599852015486961218882866631710870404073341651543564466307956898202539723935966320175085652145488359897676387580861051183234999363943704417836789525321094501316962066229636231256748339894286684749207168276716227164593989193481773811990194818449953845199839663647052963196185642891083483483267588083443178731739002335255498127851504217632397395498944371852484362302784326367879696676653825354647647297680916291994941514564136628286115802861252935741985836915905370433786484430279606851692541037108221480108768633206972242861246600870751293254317819173316932380312356579590657233354336199258837905067784633552180921963115563030173600848091786328665716279266153659382104502175944585781029645755410916835241723475587836007597428904568599429472963972562031423014908238494672846980227779139938477743176851558903294580800685314522247425746059624372551846861912287990376591357966160889310411494161397477646707178922550121530644042799328720710786779715420748455690751811894390822361349625663160237726015699602174948294061843212691379931153013331905120580619353394420368545155482738617060470551679683342937860684865398997795035120514510633447301847775691683521211860211056447015601406247253008005884710152317081602905930173969788446687387035141319635229296476686602605088248277846215911706057990818231324777655038373784065592178021033600690554209671032563908254102509225781792790826429474057555832656143462427084088672363942681023912424450796489210794826230344172040456605231498455927030290009073713227009988262983886467093444465228751305196227534664188227541685401053912235552810503862544273069898000236266132790232430246569452870786237860803672023645248386343438528734295365492071122307767076221716878571669957107520798963014115643022362260753280583475438280964160230308086697919281682654013410723405309435177610949561900731302445282396805910595136426333779981608665011384561239217926931708869547567287331054926709919565288860993515779405611238558297392297546271262350225364110154603550593349872261375989636136786830644330176916955492490624282276007762167494116854214584199441731746619081624714230563092053802269108268730678186320815864230216455627736222522592472708898145126885341894495151988766780007947726345057050141602780621219176788777111248366655313839777101112394237777249653865034621298693657920073690830192372521478134073717789173789361418259406928638104717568934101528938489536045478342027440095305912461014311077502036467079490441414044211508157585512019672986774049566562260493564402106768343094829830164788524332960310226027454668788343473468085948038031816173249528028352684701232203174899863769572821434416629546315903143891658308140296420000442087607425518771368312020287308663129714383842877665446370542572676619268111283720788591705980951098847212879186450655829529592905192988444871398880426455599466832777062738279311771111149967959858332626007231283884636274959071089462368161465040334806396342239292438235285143044693856821231026095901566893202414899253943462068349965777591576841500339733817752724322974635718430799953348620481671629962011882464713162061985987891627422625156931149209528055689409644334253490998331707853315970426926894379280215717945745239458929561288117927094740264195629151878841451041927359439756622488869454271482780612401046193384736217123631468094665622376979245474349151431934134043038967792201221882012292412908097008107964915979847147665857105682698309265820727408823849284538918694475741166183322521718969987758626527591014210051944792068112194601935535460259654949480234624546203942800317806819954965221525703522004093787694190212390775944384164610397125462101193426947677484619267226341528168932874227970082493705115373528691184545193550031407431887195068977868226963883655737114138071363423740651002708061082452385582091132830017034652489147139278090172054884700464546172054876295558959562065376502192502017513127489804728225845251634226128834129078005819377125066162001517276188319010244463288645942006619252888813244074347944380487178047161786540195514162484057690268869738508472415621603093242142412892653963357124371802391446014660897721394731674880926236708432128950818722429316126111616832347555371069706765627197714356199531347331946083067134325813325188282960738389789347669898966405907429857313131380898756199243952904764429241341124285259286810466267204869357925469170566735642878838542970385785889621776996103539759321378261340930337791916203435286452239001842295701270412193075867592701813878985812490239230584426041154720561639773479646216402421732913899218023609802520583126443734339828900106885419719776467071321143216732953740583712378546861173022783165313997378126614412719586284119035736697846933643337615374629517977566702209433048351676133612760217692428666343111598891323724528263088314636298282434614460766932192157787885812781725154659248869459105966685467311727001444988931590138026082144222169920752893711392263699387462945392355805074341568892781247563163430153338951895911050091885620874429687388066702372382128877924097482594676593058867531129376576849493143146154124488497376455198966697355911212015244770885985417615766887960584679631981502763217753574480312113617813594378004515763753028209618036722684404988896677474477578636127082306957263808984604396744563956533152467129179344389590899929153558193894767300597575467990772287398130485675152113114863924048781176941949948421688120155948736747438809196392144972168560961757781531760565905766442589597649159315198927254257037354730211424939961172637241549954963119501718394776891745488526686869743968689532285502949896706864479157759922937867781192842699605031957897433115003914242161689122812842714539841335367274881427130335753379570682996109391971638267780695242114964898671410869807711849482190150643459410826536967313523402428516406818153462789294905162762578326601133499349911601431967272621910507103302356197967491647692480650281457691521361100147891502460034981408296464829121740380126063194906623957056947378766321163900321371606049734673111677368323818530877706865391192129067102243977801251014117245637004729684814775251225883400245065400276550728199811618141970457278005233647606008481962277206528924328095288670468429610953657895859838956117292893242888382224429038252215444168821703395476479123065404328164364226328450557623007290415729272501459538416653991482363572726820150004243724172289761135610895843094224685586222851224136457044483729626512673912530723718355648724947968491430074756505342744170198015967345505529572787821657537169003276490325590764421490993981375360566433960957926483726641768794581151613246543878815486960088472468788974076370636015633268745622195508410173233334671490410421000985626339427959079210563510639990052362410362678134399044588636624407823047585479530938376564703607849678994900056961151926289885169473599836630968548121738053678945394357416216884842283258242639418174629646738475814547889727263044217080071971401935773118290956651493616979703404649511807620651791096786209603115562011143629028813181552021165695629859360738398967136471848602802136818303785958444869948561174079257026594707049049934095365556212495749892958218492701389177471184403514748110524424963478144698686094659206172516170608746707304985641611435010536239683935115761531420159893288156057866959209322827614183714890063901068937303861907897974755204892400380160624743891083965830994611243233219494587729100050256088311580256738977266534616159533587709278609583003362257074210458079412263398114993006477163198041971384147794667858880722211800228722384648966178131337555736910199198683751317914960888111045224814389586630589082013855392081119112031905298659424813947371189287051549757864221139576475106785486510017609851814680693374977607794289310870376527443295949920250673569334641743055498224273054188378728890313790834899693566352775675274263322983889967350611473209227959507036970094206333668195959461203806296068419819253794531712769099826820790233845817467949624775601721020888814419490319694729789115118093098747268286889256897692334352784011756112368695990639535739043821226670608484576111969602281652806277745921219811381458638948940516641884011026907757211988098433427683589150688167354792974612531929147848202903694783506289320446910123454007091273558149049025056881968134419116721005252241964719002356864307515094677027508356202058778033764900078301940847277022663984011849123365674175106063294143482744010123025261477093466295355738158136766237223326766747602963441086855454228026813498759298151244028074062074291111850454631509107065158781493723567404853632760571519694386536101815668567741409892379592464211916928367755711832181392469497847893015732829790446112413593374028242013620221862860455958618429258864503922747258027002041990401924093686488339976425799994153288516220769187822093332807601059438900845433310209315975192837955490549106990387222744254888305368831189522380607217673791639106895766420589929075212694664244096220801059050941245800095082197669842836285025150117439042265302785371737546535836655090685205962818802074319723577750304684194551707904998774535854931362200207831263913316428739149886456963157510089763237200863846745340365533353713625494170260193601198922554600025007455864911353219974901520905965030431129102027298108238326057033151423289258353482318105722612844135622617429209981990220738806998787516531815566771954420757654976587501372531928402753621295699257561566160300657207456710804150547554892800584482586097894452396992922305001555283129326548799806521318815349478807677081084969580387631624408858401338349405488884967638434947708404344087434420361921910030613857418757110337332439437479013551332296077394902984782529845223002336359806550998542857371696914832513577570940798630762861400602243175475433024941365330425800768528589966096056383237619542153481351498659646975659442088287984300219343889287501133497676810592303492209589964075801697490942200311462948301686010806971794916509520737907003898783946992434096325960661561575306331766431099979078691662618761303061259744784593570039693194288650972919790744812531731034339603434801701002200715270589480177233851661642647752289094515952239380775496383294012958207618904116853220112626773321873372649721668115206682954348472461138811853340301544822205989867843846307706262063208327440437469108469128862168525701277716911579661918129549754039491161618909919513442497485979367987720387308569255461900913157426065249337677660691761230319212862770112191022827159590597061351007006111593806859216592204468456837966461915822724668892853958300939744701513589769227876132656436412479934694628299756250973969299548904506444707640441157622720331264923954342281985735711732184355305538488680093180420041348743427879016346253269449469949312304219967682738683898877416059603388597688526623119577283233681994797379742406728154234373624057100838575931710307112469659008939306046026524896547525030133420643016852265208225003913783172013621757422228969380044807225346839339315502758310203552415838047134540700936102994968699078619502046360010668775011790666001157409666550311189847556141821464642947103618248801700285724946153094134962439329777826140252107013751627376039571978294785207557351157579405543516758881954725961634906453449862987901318702096819739644719781425474613399941944549847726731124653606024487791026047726225480479968876618139288708275718589180677755987719630018889385706719889952369877658585324332883783216564414580766478114263043012492464540643847048701218817629316656485909888230723782475566809272753278506767133079282744697409331093922888556383682550719771599583820725516207670929523179177400249179211708347664863466370050892440249567577516960398017838008640253459015883011156867242691504416049639129778357610696726301435033619234046307761502292746950411004402801571132913678065165128544813277927346775594611391472098741267630820313553287547854763485466260318846216970743931183690987653739458085213205242980186896447364906456248992372146978246109996856071908082669563991191285535827281241772156949649061459597247520133024960289650563876094540535031076132719439903854794005462798749557800875573314986059335526463680623747016756563695283909543548095430274649817533570699788079419076345923594020009738723257126088634404724807027277128244976658845531407188698598681683880411237380180608406441447367775115358213336550079560486925927399683612944525879670764679085529585318169481842799468300556998584565840481203377139820019501733845175863164751918472887194126159493272227973458325331015227722511061617648647702336677219759535517731454057309897108671111202366104042211898031601745893629291391834442689349549636735430062601057611741571837328977006026187015315680579396345592839965955294336792141995303466143894715038828255308961266568581890694941048535091870189615620037671675281219769069431053646144405825678660080755317025411563114914264670794157176740811631328943531323858461463156542429079422546622096941198694463109706627670719261327982169520935952266330187962745521878992588160607689385932098507688231838461293762014425215438325034816662804416394154841301633545864294019502670608858855224747338487486772297618154427420842953064621043836281002140399166460298335819703737614403932153376778261322970668622311189709912383947228905994107930295465797230892295012051156342864946482096744655080340560613044515393586453019602735179616684454448763620282343085591370723793392843714037479847794331286886301490459185291867387719901858347750196104000171259573322770489016181711026145088178113835741572595428450157083451395400994224784177514180678934568722333325169594674161786575348319820596504249254875290035953898605261987743980987445225092538805912399144094300067027648120757086607751748177533043676004281938109743266549764801253405408905814226487336331576004680800231095272980178346382722755275358505842659228237805762505039217186351848444287879505579912924021793696764240573687181855621692858178430046191335320481155759507465687435816156809840533594708662843117453032008615907918292511850021401212060019903977707886398513772527389900360471612435165109578406663359551133960689220318620180450181625415669298741226614987484037040162515684237143898077600225380933739788979374490355401422893022038199097870609992171576279200530622099532572098609011206382088258552768480266711294553591216974703248805790017667677491744912071779544203120189215944357141783361291617841673471122967678714317540655001989967325541680743400468393030755267441860232572701210546822452693918205026286883137107553955465813866703770029867916852464341935129550175408419695464558297106398860459502028213573991859935528843514204616251190336961927459727739322372820333031105818425672196942761627507621142284941498863433709121998445235694099700210350781993070624595627019282917987840635727142732514653508660779508472932197661183338864760902518940328418323140203014070006138703782849348972346489357525175127330988454059418207971739428401460677949970550501855235388355107085652586817754644435934409566578349477172236505170265736782517279774010404596392004297676495292438672310418860709421121912955545153979357978163773206240038077383560023580031792857518698529466655011834708307965648969700814636284712212667348427248984360737892411920832935356476624242612856585388053827269227961259574023870094172937022299200175973331598077995518978312013975827228378832568118448831687106727348960174177120135784252140471671211343097550417033724557607566500709204936790559847314870909844149837316302372444001030089383802656419419398410115353894455734992723370746087231779815709077567273222471034297146961796836613595614705876977179990911076975426256412042962944898908460200239712733289716270457618360287454357843279914535771868627384048987309840882340867752843144243381244332214408489499854431000723316395729611682916323056864081581856537220623800243267455949257201368090249667140294211241643360902296817640772291331801285020524656338284260292410030759662484490467224524418487716064275013963322456027484127957181498471631000186642807951420980737670830778034847488572579937854764774183036675538107397573588362677795891525039023206998011403639197095686920987897466363467430023649947827373909411373724115671631676039591754595158254726906588994715918103910192185344479063090602184121192006732158840935039279317858688203760612036397430459053615702757689648147029715081511506521345545335838531606822060905392067800608103492723392214861831095984531225144557683922455658587626818600601659945390718990615154469422369635766644373477471433971849227770879991661627066878408822222488675094612158952347853487931510534120846405396723251041478460292066642118431801222704778089935017745222268339105120383951305378880705215631277420262542772263260125082978140767821271601239743141964934498777275199987275928842600881812764338919570305242860072580808948682517412677616128954974884084372095722268315423845713123498196022205443234944386797921882828273979677887806317873240774152576029636089990512630008430615856687113938093715018427659575340149984560977820588853789588862567442619248630170629957208849014059561231295390190480217069625473112998298950135789612706001330909366749472492145952516922824017097922392300157012581006097713808848745244491941199430125848184265347161600488589955325072137797461843005464545924007266541496059345239890161061350801056084486841674030362330667949927668557245561403246906612818298605432962487399747975330150175158049490084083092981351789255055570293520388500343010151652648365506404987404082517827067911906915804731175635228893685409759482598661670959713870613300499043956958854279581415332460250327585791349229178656203560901774096355220408189340669236872023050476646284346288662296712067598987457962508057263521618520322625941249776459425841796331142552433800820057805934675243348292686036583880102332449862436324228358820657479528117923437557629353826482827011015975332471038063776866232303372365294474601587044357536797369754769456278628882622360519588262803489574239405472561985015423771601934738354513450069282333843191445043162145580614243986480655241140456438608838482702578120122158905491160772361896022913631884221130001398367066902417535128443726765391548828507861636788455436352150609761143330643225617418629455593931339323155721669986213203948089263894525964448834035129493652641419108412261984163874431428482218805844476558213206984652409950552094716029221871677601070987837397474016613769152633556837142493611245067605239878240033766816753598717135840201922604710965916861937612235700790357529437676435512853068560837493947791230673816177293237093726967905348582551350213131953091438058944498870608531196869561785449410070479221507238347986206676359908051010071262178465408799917583741597655603818302861330879408313159760377024875469345261695361927616521993384057723892143331460574448931939751516912619259539138075302238092818482367891071240734192954258752360017335898315874020106430141249246043279810465741480856973932185030015951570109093813126629915933844476515692691104323253010022466798654129242148963595716873926138051837843165337472248152962802709161767365405213811246164724506661561736792471574467691844466512150242683533218537889033777678987960821144158860773026366754160377149933902149024023794457506223817990766747688324372078176446255933305583743923406325618853980843118054375438248034697878983695991638630077178652365143233825351930619070647999311242819124499064042529479586519841562613491943913554453948393644798823130216320394312620926307490382338532533699863362829975907197025861716661774178636660821440577957779493413218480780368724419701762191482821284562082072626936754086028351623307412413271013403607681839862943865664023584216942980104196198724597485105197547265053070582839798072540420783086361557310931656971754033380273588775122751778710503982814705064289175997702885254014773432363645442476806618073740820198818618856821770110231384147586921462295566474502943205197237473270223188007242011025003523632240845524410414979450107223944040418307729671513880519624581979848317143137951476281573053751798676385023572163753960276658155920811007265204149515703273143034304080922630203877651681717019448968371243134806316958457603050631695890822890043312866202550204611665972547411264314130100045604199597248887297966849950684043252195708245938388163635145900721475524746683836758795868494312867127541024609098131453361727582307513082933686119801672819258681062564449302606518357318427430113337927294306488745096589264320064478054160663420531072631333607766967001282222667216512267209087975753996378245057007567969997146340185128770417138089062590600772137132978644425290940837718071074122420534876883194400252900127137148986855637327124418125688815954946906744863585285605165868640472908286283240539470538524741146280645661422967741174524500396793902818910410253386203446945599247003836457595561879441933803988223974876237954538083478062909948966859932119550777843616252744492381908907238566384663125215865852702817208604211630647345537503391976306324981989515213815211819639447977091294465998181280856467606503998919347681635862068466078229919589068517015349378016200778659629909482540045966426630326163686176683249530318232922394110985517772760966874164200097853220628251796058251256460156589056438106920941434919006309655990848881869223608079348403652358285725643673007574991656504836934170584649398868201990464881687867178297757525319384696902403302147269731249830958001315223431222997816977401779648878147828007352204393056983562767282702528073202865350500693378920954909231869801704024717967070506701095748078448676942381441018764632385469483584100515288407733122396562844395023769439085409960204787463180213905698055908738156891226705571251125044748409165298621731442348187163560953153770811400934418888451957579610394674076675504490496995206129773394182746796888301098307943491444779171242897897968666185539397546911838170944299992857803365409280235058769014354138164161138342068879750462866629330035064888332041068393506958286601428814342115303378961387579556484275981357970915962196429683443158176113290264529511202046829881998065332570272498824024534812058545095499475869203578414874365865917152174186524146754113726713254734124845415160158476783201000817377261843848359295877593702553795467791095833981151360882130326873650280624376828518723585661806510559285126196226767161254562205304255211144312872176078237896831124835179549293925701769413274746478273415270004059945186173014173243433009107866739948835910790782587972370808875884904855584181402355027773186364575959220229562110719181718376467241106603179503973036994561399307029530137266275162683016486346559005053006436333016946907469152796808414732517487803533501462243711417961301894658586156435095111427498764036948438881350265309691429927536889967092346805809136334652690957805850233208541396299390587462203609193174967845853959070336400402758612193424955601703812031336739950518438267206830355657685249072025037657394783897131629300549129561169100573101947534141051533131436864538218425044328181439105426480424306217582727421284422411704462728740330527295219302604745654397921323887042473744248820150995798715158388896699752697061415237068236579725963738507735291037308815894376936476744803527408395865176045921662412661330071450872318547788382585111483125891433521076250833789864162132218234995739518933396074157746724519974276608151925540487515088228561740002348462231280815154692344853041540290170364375451917392827373927505194044738767349588072535764940915093723063910302039351542863843952347684772415292884559968166206495219610836209288799563784315827277310011992906837197689257499370782893588692782410291705937923879935906562626834899267980942343843695442078867110619801443324534159662494062201655733828119820626692100184848479865156414043935136495269504423226409114594244896634177151748492878202384138158803700512140681831736907891658140555007579241746524303745368937397373405219747892375374486980088645100301759050221511127016841358916654280036526086453108866223416086215691521108761252284402704050595988774631181552784648265787187963654804784085105010109406703492673737480923474362172189120366336034985909876672394692111779475571391926711519246160921269540534175449729124500325216164748546083948463873469517048714906626311526168876915997477774650888890096942646613486467688490161094499211192977467935072963207731711257532753998415243814269065560130086044277013331966263036278593315703791245484012859209304244132337667918057375001511223613141641693127207070159971442428608281420716586253990989158354067843403230099130646525247584634668632146420872172143964377876427749455512542535908700416274816420509184983831250660797988671400708184313538932977503364105644610038571291349833956331116159168438393069106009437047819567306704522483312370053844595572991589160555132430765823035047299021517904731387194514617098487390958690671541336519009521897098589590439883129615059393942934510317602308924943835500523239877397178008005842777953093896563385332719914236682656129355120406841624724419343783853696543842235970618993488301145516910689672118187849839430969277326632345441181678001333366348204601612600534859128530320221097850643811718655146672273528154027925014033213992881306836149723357828722180346379162076758807312156822023439765384884843970855428017171663759243750890537705719839536397380728368159477255168327875308271813982096360751074697346199386609684228748094453876082674195443484348091448673027332495932496537537697862585936415619257798810772298592712133124394699106751887740666833529757932138820102818808586051724785816415152844176829166547643233751537429877479869228800327468407967966755677336952947030240138176306035266012996188285359078722252563740938489686570179748974836040008094448524359595971873664924676080432915622795688815384350619360494971598418676679694905736305982582033314150358797026321311783482537833475568015560413625694207465198480480346800603148030064898329551332787091996518878066211794294711801226245753214017831878325074400770273929139771725383678857712991146407964159056906826628848186268992766376611264884752306198695153488344704794857266223471694537468074952501274882400321465417500519710699705174167300138500244593200002742136280299944004150597362593928753528593296490471402328149446603618319472212193272040155415852022167793286141476969112160454100388518679915448865773940084669572090774596137097403909311397594095823999498511891329118670040526129710306533593179616079423551470828854493360321768647416225517462059887113401579108728616138951487722503384095119211349246483626167053716456820296511461568127847404953678923068880023320662135353805155853455574565155523921764040417087977032244002422052552178902417969124173006324338346808874800923219113519791040191125485394719236071001060778213373724526720933772974366876454424047732976895495663836620980678125016424118414548353159265101979262923110941546825765166919460759521735695572852302157325572517702545985164607098941002345075768053340578625128404218417108672425516122381679616190955149182992148538288532142695793977631852318914421380331773014578190363826047460285127642146405730881727042805149920457310663564877165058462530601493410372471984531601275770675833779839739210796672020978840506074602637449052828850059355080109578032264394599639078905221382756497292724371308667800194557902464545321959903175086424176149876912786579882027002743851611512191186796591695707132962897518176652846540969273128482511765792256309954959733759152883526480839720644724692993532839708304455729106631170135874806629881612294626939686941701511148611779087803020059249174165304573255610980387809864185665408441900241866163463143437528229454836549669757866209867640366377737437102067357496450635703793327045217665737787512646084041979665336894709644180554741439436535183522831956739385794955243007682886414271957154342692592080983481331489984928127388149439147542468852366473449617242651989594183449624694323726940637920615744479991683079490731513031068967050424516661098778754964746990482401346593189343037362172133391421860173214515426598366566363811458359880504121308525699663413528387838252027142278823801049105654103816478410533703384201991836174453947172359936515043369767139830233118545716909384658300208165657159910495010570278435042829079938907353027095357110004166837745557382407627766866954339465082731921229353832073513121396642943582130149887246006540962799854175841980819838471430534215943377252213714786753802412303949139617777229448628269729779763065515390003280419162512940029450142972242420800572033586369842421418605726538329428381857792379564806586127241128426054413411672456528014795145126858009324078766282434583702097620082144616737172994024851864750570473880904009257718403735966391261560585212542670602931024901516330964406041261010991584687364432009801185491972306201620124692504930943579735994091178378880488920565885276524061013379594706467470040541477933085452610443831939021198794345297949712567333298217810389223165330836963165682381888549989728841592552132441567890951935651986268730214033605497146161084277032847644742798063971137910613642077159986088323447916674076805284773543781776821851564724679868544989150628987420331707686198294196183762197913511984048471707485893092941062347528213996325005507015299942954548228227533959209633329656073022930789521854528983986471874152622915071010981411298414664696730916866822571698566385872145121134481430813297860518106697481256411240028632802803097612934361463133349701673123740961675825532353994449606976364342994379094393930539672401343667950646530575527110525827536661212775185908047716207013169363779117357195057436905910125832804336924256357063496415833920678639860742239501836576753581923329002615364581273424577424404240606876192109991482367205425307358577575512306146821797035767249228740110761397138423596861306090282175911874933637220961737505985291082463972101171486983775790946357401895919920525861308708960272524187110826667909392621180001536476934986791235776625014664387072979361718886976461521690301969172896628698141024152286704826921502277436834632452896023063267851355973912202730681190346020628400514348296994895754662995131253196119030613102040330528568905992211806704221359942224224174564727777916127556629212886873977291901841181064400871848318486759563529356779256625848193230084145623268009900874826417104217860327385974774071166376557069428459790792358320264714505242329839174404404407368979164842872078145298246543458974582126815908428584701667290101751587356393573571507546576062469716658516342614276514253877981053427771850937994919492024475970852766108649113114767709279095979265346291140570864607103133756083832855624107623913526957835153709772661850655353509480020831889484973701605227515359203436626385795287789130945936091866744404974488781768026762038787389700676345472193738969986476213418879407996925041453271753843483971675930014015444733687944707685305349961168648002681560770990174850741198182527351008690919689662954423335804027306461051104297776164264343271987728689485884154106184347844297548559439857084969361827340016964758052146251727147925924834355902955881617864342401976722763690929617297301695906664053333020110944507304600750289824390902505011996671409566467708762034817747319749028646986160723354014465233225488661669255213528003511487608727909565777099753615656151453097224990305992312193778559139511078885381693215143183177886725279742362681107682479307912052223565083201635345417225298045832139048071117639294562909484848705858352118044657802813901627367602101678374248875146622765472780055864633957050542271732116022833084056719765076014828292661823454373074837579558896011204635924187655458157839869997142910633588665201244116195333350116776398553296407282013494137057424481729294403743764679981167834920684295218795373178654180622005678285034583401425321152560526978267829733411157728917299513319443763609439626251056891673505321505376379445264056033715376845701711164308013835675639177235954340134868047964834876408085293157151455436682300619279813145636050525254976330150765206965864134533845905004965817775946361187711102320295053137538934139147360178111141160675190649096882452534411012773122614677215458050270392698084812891425410690508799253698210949760810829762897226110305860620206460948359248307505403210388164457061260274127053631659370034780356369636479225236547095230345326946221485266118349710107392069666350828543864076068479843902876411062274837283819960881426101472675175642493209558755221355104221424001253461767340799039552017294943101593890763748269361773188551042492264401080785739615446254652572136453189280803710770775854986064098517744178133252213294055951842343355258415093564493638327578367665369023989136506826984519488754859428792256286152710340072099173284260010535068326253639841657721460057296764070575559899043355391567007921243046744881893951845596706228076873572652269739402080227845258999117623145623802200616844244584332238320235445495496927389055685192182124171364597565024708392250698371167995643727309080717664113692656368412717913359791026362593351239364027106650494674850982990774397300008817521119883736965689886379118214673421067113489414839147008606241769303331722457569555744353524061447069281405659292887103224193416519135921448214082955349071289158517259487926305067613849085791854337825356735236240854264775915915416195510997528037791394849748579147798632289434521948782215437133429151921550597298770486462881843762452290240218814534438542434456562316413286792695908997326117027235880720903773852572246744895691959050644199907654168295506144020929530429573699513753927047057018512684301640522533733984115634291847300342748261364615043325258031315374130298319014004383544589043243322510730763076232110425418685146643837560991147999211623111156884463104962308111228829981743086887568358561248357261749122707817268690260536325373607055332013469407244088270334498231410950668049092176637619088936005794707452707555419442531873664614173040030198467162786980181923669952663646500547925992320705661028798862437463201970306023095241713040169577295012261097477173393438134948302304340168898539517616817701615809043216578689630606697819084176709130298481200613243579340850993268372442867962611102390948090753582862286135429279108867757537333894393984476976729714507545297724529888618293488003492942572034446804578098255284008937457280482317008027830898197621054226360006962364748802671362801848232741071414607548954126144183194041745799264891421103571482267357528267259756867525429019380615492810106287295566062156740198059629882713730555505101991640561593443922305120060737000968004723180524792488180894218066674476758107871774019780066733218299425930812422862254298960706702090739144496123157236542898707947647736492550747594024152348932792578281844140870449400084173573252585236062012451587689421271277612143523572788494082978034714756625214542892034501790597501103234900197353814890011438498391299282968947794276018369032167132705464492569044544800554013344801258247961869968137612829878579883395124115565230478624161858075550558529868258085852909707048626084759885372757056467256624635665968064401024066840024830280484915175264224526782616822126841710968370041540153552897330962102015404618958924045212407283303258875237026428683736804000530359019604351946912105803068240564573522030205986970246150146756636323730599317217486110215534517047666803673414814199905413504717342689083812931369368238426743188266981284326730489299988668725718396533242392583650850281547048798201532322071489145470987959090538207385575426140183639210686688991786178955255315034445675308697412512200659729149931938466988061062974689133238736520900470156799366499412236197322519819095096709296855051633546410314326460440896306236393886031943663724045208660807094099839323790409383159955581532323130653199986260809115535160584438132030997748350435560803004884500622094073391686875816790761119925175415190469911330700427110217529354426620537293777835640169817431309374356843796936896972482008212997749877483971762454798424680680953145894430544102749183162534498056454831851383913450938394598480991955307760079959294193652089711706609934801114326190591020026777778182664960634027694381272330655276248367417217364650086700376590294887471716003164918341446326276666765600514177725082775891615012844877913245768982885206917037062012122913615187524241885996834187554008588040716395372625644644212820821646479011180202137873582822265570892015854917502156070425075372689325833204567426532063902537550944096979548025409537873050180801379805590466412428154519039165491994050909092433698537105742467556429867113752645112192485749075598469077908040096027970926638332848302290258107482276991051498299576255305609380362589742968888375006837497172029904941383788154603539317295237116853241689814597204491886385876291116872303917935315962003881129185894414158086521580682817984264080210601428523821794288044079849741527453357284536382615487283027020501182648110648595391068638559405522368972469254867007192163984047665396813283157530448212015103584395604902825246555489494598524228585207099816657883627296509326921972257032170628473876160046037786317828569796592302782409697653034822776846605319462311519780215695260043256799895702442038335393757839905661346116531931695608843128631487843302320131015570768008166507576083113698529384978887765488405515352414825159578823904707852277635537424740518069881264733879384916876313007381359318954501734666627412830671386666291956326628220095695883678197857090802365732938470294459744500689091187018138362908169324955678091113150829827912546122843294230203482734753205508392161721568296435642512484705035100890302102949559971240730512678902322881731098265353021695263545055707885884121431370360054030843266068036948115758856571194151091269458220200394494307325289561809631213504448318856788283041105502720558724118074818543564047207833298061729742468626738354043012654410234091382227134676130020249693424054607208969176502802498380649798334873665644421801030710830328813355484850971878718643358224547166440871592111421128225259302064398991152671303785763273531282074958875862730345633811381481481630909287656146221079655189492805236853279614695922941284660651465948822444155590333218377164113715961861950361299868098319474608439107763997108534275919051560426414237270281629609897965260665269108155264330809634487848622150549090421516410842626656351537569188205725807498522346869401019835073698935388876871880146876051065365934423284532668862740249943880190959526696867174077632533157975586928856097294457257500043849342605515019777193675482908797357374751877823805059021802789132691015144354537026541402430968834943658026036779686646056312988737838315216725564017258857465693439099747032990494015671288010582183314332814372135520154818551992111737696522797214841872783924528006911142492815910208973762791127609895769900036521250935262553359681130807002130719329188371862448026635359530707952499168103374342247030695268945689775412431305232219056289136365744878312910509656752343826307965903367220236969463092768285516483958338790279934347062365153336751856199520238412642612871164201731140096599930414959462813779435848486048718488752904823070234059816109166280254639329989890709063359456531273743933434111967752200714600147477894492852790237585087315389301777443318121000046120005999418990729384244988593505500660216210645352746744180687349387812601612117816408914407397701818195281173503523209647519470726538280594981570197427451865901302671986487259721992343265983765107022592225845932823861504940167471726202744507854178535903061032331911040532322814306702246866087968996768121486196563672808456533030963222917113876228538750605002643021261991690110547042497566313672761110973430317066876869534207128377211326428858733746232789435295373325146375472168409574677584481465023548743772884948936191694819357955557791067842600348668187421281230034939070053563246249797993997901907299046322831801242797773766924080365213969584517417167507032650868529839771638166247660943475174667655687365869096444399684523065268343661158014971222336624981706275126347893276272584353901944537308256965370411052792918721728841583337236906766319328776398386316708902702792419215465543012942499437843611352419943090899786188931323953583180146599204669610938188500705759139610888006502733074965332038885716935867994027954875650537520831282317657965070581899456820630747314396465311841286065203430193528300067972731724600771352466707856171817057776513894778826698108462276175792066485273661832388840111478717005393652796491168099497412532253937848880526425104375075120926147352673657547631159457407430384564567013420129682633042266416052953290725526885068546697472487980836945123857709887924501427931316294978104979392624636855027668441200117778371647978151808922218868851042646104548025480301014406557996213702000443139639134301440845061180120071374540913934334623094059737467127744686369152048968724423077311911814539822150988584704825371930544929315293703133870585231996615002265609192257387847717427222818048706658597164002209055675332959965296268017099950165536248123116731198353855850858106456194747533788219229880417190600779031121433438998276149372010298207463050058075946333650903935622144582924919133663308611680091119602583725686572772975614356960966416497135241763706034225303698220918308019424019347050516639442797804960644067972729449016517725596154389871395024758662605845976493604910153549374359252822767457697345339661756877655920101026097664024613003448985466201979325264251780651598743652852723135435374021767784457307756977442799203292558160513122182755265811420278101625856828761854066539492781891842068746829029284963190193422317716430308725247889768595884029633892844340555024965930006615639617370539760706533948471065990576377947722820302998905160813006644695086536128420466945447217888410159251936537426849325885561440372413344234836248306203886556348953905867025559719662563424620510639222968465528716947522708943455646691945222917211812996186052359950155912738532916475728322976262313950203861452778929465464250280823439861157501555727943272212389941876770697073589574427654772563654184087986286953639687183133713748338730578800115585647651921108468706310466316625639618273390028099758274426859377657805169749425413077526525558002868712088583583361415845833910492668407463314311375976846745892893824154185264066251560573529665584329023460953715514340423540281965602870367001505702561653061198446843410689218385679751312936518404620613715697768079861181953360793232238912044257281612108961260849245430095869577897174780213476944725245497272039165438094698103655432123239914683346951481977637108695632906342335011039928500464988508379971242006784346616418544072450094004760104133958227153100848192183402702455677563945377228336431570195127488696282917208768225129257155452080178599578644101685904248138145339778448745084452814791951400329191969161098558400724527538282077774305716688519033020887530185033750764776512463365956839163848515668573192441655405164297910029157006502058494810074797439179762093942644627292337541597175808553028610022850753655223310731820162592566917970633480087832076195866302234642969590063237986116187620695517836631169917277718376971479487238712040058366703807989507068764421310955668720600452092526646509323089226324860934992784207893952353870392617680209790220381175022621673626699582386323501900431914681156722254099025969116164247818191601870282559085541083905656180048195212073751471098658294655326386091654060713385561110828545930315612549141492815717600686224795291279689580269369361612845332554277202150985049182483502756493038270180322540429366832582309313495173074404229845345103985228269302150959855423604669520495253651739202219198392439929347075241253391260532610687879116648010691402604419393365765592919832242568281310053630678115654254830113639671158449533365895767513173891306258559193272835531455446733740571595873727788244703223139011865993745430775223596061430499339368946358666073899947044935587674895036950149108883825181364075125731147574382606238501702148894242497433673011448967915397636909900890694396868284553172516419291629077569776669333727755565826511260871024478496722240139108225441608897524038622424210258840748360050153642683374315632889949293763623069133885941911190216373875343342624328191891228644294161699975487775836115746847316862523009571145246301891826728251390566906384476453010424810196418732230423132505643104843959535141917921819089181140422398299455999465208408357884348236243025682856840383049587114234489206707195205223120044660915670365257595775631651304132578761957912537005824863430182929774603700327901807785915550770542927893514914931003799196906308887581107492681066706459430732877972007801362171856497523890121179486301638355325146780017260059862066930472469760158307318254762419519447454350190829435871938275202617515130006358262030850673664920345225093547505960981821368971609173353065284890477505372400156669599718613335058182469758935404512732532103544467297386202303456246196240968495267107693946155717681591638868860627141521442535828615506505592863701123402937416635112597186302964070242757089716944092074802777119651631816568653550272770914580765289326636918209360256337170710615966771653221359180106085087382149713549119881502357975443417318067269161984199727234316695501107855232219969764689949056670900247701588609340120024594767500381855155124245484534151686656790885680579171061907775415567876673252232010123732108588936666524213324397939364368413078907838280476749430209940004637927151979358831532508447518624385944967661270025621437812811832596114743222338269992060740464728008721100912025022431916148758986107748991626193348625488394664726602683439076771601792942955366595684565672683121592894238495055610186924607177778226563394150852116675475973495400628351913077542543694704164348225816355341842114335398569551987911122693984901613622356851797673107216862806544164773050401933680302990770752630582661481587627203095878834454705628159548875779944848562603958860780997658535231804922961741803619268666596420101984028116506099907042879695540504449487985674132323150386475616048309564966103702514830300284838198975526996081646362293295127264088585562068035422803547137095258513619641253192375985084191030242404853816037184749810655055126461922925651526314210697797249603737014655744346938723607895245464610224627830343446408773080585496951194640207260079231778253753846758921732147962625523306490488651961283808078348619766759656548392627051063735549240041855767899112479730845163385982204622610169067757410251872461218707255930600307839310504745002080377654731338366048944647198256208527016889294919293570672339347530218704030622750071378557554114390426198188503671096123289966277408057968212743052845858742937792275478945185609957918507496363897641548828659445618605070214900836216108443325902263985075397696641489220632272851176578529457995938384740011773738012995328679153654001907954991172452127505648639199180328339519805216537994335700169524242739758238478211850118387979937436611437311469569017076020949419333205732822828036692379844328206546715612579618561204628979998265433892717741454263613749310903093961902559812662545891045133357931187546843861707308298142811261254792247036158668799838863030922547829823690056766550274174896221164664427205400516431471410937923230003837562221609360292805716270911873405405863269912932090936173395394246884816569297530549200528389020444788728233703404246180132113443925865884116013335330062813108519075002242731376376131016355736977061473075721046496284292455329020706892325668227664086317560004912608076909259977690753461561115545441489777608921781636531751945258550673985360084279528575362444891254052869545032324101279256359120138989256949133996366083997094863495271666143765979025361720521780265140586395819446395182738002410835600886762205306492844357831139961358194183784415496753418312910078419840921603121827194997441865563011666694533101000589197832642614746773437150661720726117963002948180574221977277634906332592402715538897129706885232167703652131147571741083509733354489700334399649104734049854008230926285717676537708474712725068802956246938034278552588074698048324776556160310859540758852462360673457136225169161432805945340500494934030405320650854876118950054671505651835269860398047614535130125994779880189353922729766465099262405570364194637007159696119475968577253158820330643445989866937177325029740347080621938542609000112477110733243125462001108339711882990285003250112259835208299735248645671679651105979924912643416300278569395009664634106152009662879632525584421230226643522936717116331604301487706854629866618946148004958416416401184854144531581748350158119047188078494199059285010895130468862888484549486260512486597899371689129208546944402435116153605087882820391144428461021657229149734465790032813124053934481039990166291695064920980945709785636944325539220879753506656323840097459435285129608796187313203690681186917893207508705958840593260672756817238016786324330361017733690228020853928231497754687676674237861862545881273732315890480070799027641488034770198244482195894741324332303148811087011222881195630980988669846083155260315056295991645149958748139288201589561966203398197016260734948950299880123184912482365990167894351727549946552055345577037658673603340534128167268703435743839531683893077711741396397414317484008319122714462717116415925785023119880660373887215921547409603311076047162606656022443120110427063673980166838125121345992991266457974298735016586641568477880805267086052215402769440282427380386193571627327021530397897804952039473767402393490826980563002702965405975837765730114165287004107450944223116599430841159867985511788356370500556640878792483338080703069996920752640164966367046485669407320201061473117912546981531789467390385148768829597691061672502227195531168278930964875414231682142690138557805440826812167195811869838218217645468857538067617143689383539916948819684980725809290948491115692977702349401941842112688657423915553306394232436806938687671487098910898438518602517711019344347061871253645414373121285580178945967486872154994736129877238488559583294676738120278136654710936402252504605389052984372150780453637478742261324598373339547318892169104220438714895232032620609059460681832999155456846547520296424007473247201082016251586111444096799863844660115714377959213027569853291210276584678733241355216927066379046709728964622077931891574665061225322282789564089846973386754453939188539449311616459602700964867133230959054348986540992714082161839124520609657316756236028539365490391931463877740670361439147224436101826098561153812650871199191278118205790798094766611361726359528885675444659946225803887414384246495271390812644853067188362423652624592856716584108664524862407146709260426242867394372272425494894276140047705463037890582006539828115965313114226854823337589447118531572332918200031935150503273270950861535574711203974379359098083954228505242508830252501465319530932051344975672814990838376945882446234242872741124964154057765983632895801005388413740753508934792074759394285327315158404118253451936799254285242201728124883142064053294591050427493193668261432594784682252750942304021603468435477256460149901505487347314081932570121205649773102711490353025382683839240419732342828749324374039330643518377959467692657212995335553882335837678875337250327428259309179328207867517076892473845645226783996391365395778365366996689150725093890291857668626787505457840405436698046826670551828610472668416960605729391352782320289644793228924207646474095151773067254687519315976784688406397422644553425915207514373457780657892242568823607515882822788844191046813232034744190943601864097678936415741366331685289410729688605800159627980210814060794392517084575256995610918189644655040826995069121878399770661321357397506322607353124027463724175944808913677767867150092189473902172190608718363229119874703837314413361913755487962714553697693060588933537542132801344761971869653642635886684250384313677899609742050355045379798087394576329422439495141203074516967182306574439314298673687522594553929141881411067378037678217535238703562246247009218255819941297415399312101716624530125548354339500547203139253230018487987042670046203214515482397294482650543131043462465022669382386665400928656124611010341398619314826964210942257179483642466113233205363260802910810777016215894384499741954727127468848502283588110704645576355678392814460146230298057698675625427078945331858420464582210876395670588671187684621639494244132145837665295118856109546769106108526736793514198946391972568508832074786928590473770689546762804145133794928394027089555731469913681882352529181547902229048935630955664736723870093248633702571879743643223545245127069131190719355582997301598888020693922856631622273621985530087626830636501536540215795194510311877369527690960511059012103614361145653877363491333349914259134345054171604711642403490062473195632031776138038560160219443564773630374228675321572331676611274479856954884337162594962134933781493866494381670363120379357382158291958493304763286177650819133534996113123410790512443339383109359931722488317542059177788260413749676867660484095733176975954035050993388130694114304724859065212909192406602344590950145486012477108282161666460552241823007633573923232824650427531450235282663427568284198989755560495453213557812499037991871701491239602994370793334452478877274962379012840308835063674167848372023248832416016432397719864026204858614534527940696568630162985137613950577320173307615923267035538580219520310253256687458731792004294841108219548990456266807623995480250808671972184968802706806149286220563745708767166094191292270504298244767826096141054359012051131254758390435984793152100763589598206948740785048697028534510020699733901244644208600885314453706209780072481055777343152384274333069076783249314215932997593473528230595865663415639890529964579775682489544468832784177343262435041645504391435770281685326840918869590624257616370645361663698287626588848436873424330793752318893826689063496650844991673658992160022320744139487087333314374072270380278794626981920344785576161815730668305507154825738285106299880125153421602096249686676182460738840568133827545868831180269253052522983256260030798429224054279706374656587075872109735599252413898953478323904659012160791837681956376027436796932035874249170869019648922260072597534255234551154932516229685786035535536856296521820044532419070125583009273686737601838608233021167197324467190617574139151319716542984083869798179359526385610742732459070526869974358157637140184946238004587578162949369934912784114809388596821317633125416182244084801200923728656070335768741782007081425207582034808499484827393268016518599994871860637105254804916324746827085020980063321408749053818582150312650458493478876737037174361670257747981718612975970446505353900849846052437856080662134431501316683844941193412885364643399002483746433370782506923369134735603281340576219380892520124223251159408169537555763842701815881533869561090980359602120336127675974841399144727171107468883438401067471131338887576973744007364337768849215455432033283172122697013619376293874217687159437299853760925148904938751986845344717284382054162506388056773311453823254323086516161989011487312973998033598188997642399540137956094205720086171405982635105964873897940934764589753359941755653357327237869599060546186342620547514826040241049132141445825449730743590618045578479477293825431011065503982443930299784449935845485217952290689984382578013823271225755815973758434379468442140159196837990743887834233334004881969546021198424858760927974636265731098962917359855762222740588800297847139081020358587510107736644318903777120154970050330440039224749886845778562889949963013770833505037868070995787920270502054226932815201105148520076839206335118328986958779647706086189326721812941974672210154831637483370243481157974394110092938186840048977297308512334516634126019957883134229576003907609042970114793575068737531337962501257344469030911074160559473435849526801309388643359986741353316239663129642236666346787221929884144044382189929428076263420873356394619710727053147003741852742582340415498245866668370281397909307040324593804176388911095189843378923237192683909687456365921707263699266914910189351725458493287858447147779921798998106397614703482710249019326122474262980525330443629295987830925849083374712949937904332010298734735573459811259434499172860521494422320215929072848472892319749026780036269936430242651630781794653548354651181027338044830675012432813131434045128522517917491684639460824298103554824878574618145239769247951984710750830064342060638454334137964349009014186721151020356011343319145687030755814358177807527155352929639882391337662253467249366676071921261039429166718756776191935190954454991829151122357257807296495597831832788579455844522286035202428208083065882691554007211414359243381154471583140103436801618509518026528621933539789204886104391522489799177161044268866360396541059349857926514669917761206210518412080017960848895819704916334983623491465706033695458631029528422199376045956299123732196653750271618102830670471112996583046777445637374899218701694262603198033282411431102577438445558183199131936989629055430834046032466891834840938715055321617881533961992791127703245766683070537163702868785347291566048105206622732547839561665457298334547821488090301641363059164402943381428148365764894424923423529319015843276455747923191445205738304907514627064136106289643351435276957794590882124458109486745645830841563328000278146938906261027343403463237596361094520510051106259097944960177847439860281211243986625864463926686868985650247960232076255723446879128200711918469581251981654038589155791281088729575515158531299610131691117248274010303266449346055729580567958730825791583258515473360397232029226722259581780707576830131120462794576013035643950307981907941838996125841190395386202055411141953963613808520922277296732022255867623881081250866409949164221966684854827473661732520549935065786874034566226749306098245483759495196250281228590395239927731000953676017767044473923799279581470448580359140060785676672492075248143403932861019805158283307976425304092586067551358535749846419420808833958688036770807942213148233872535614474179465469360180889527032774092220339548438404433370350292770898762907816751968575516274815388971178481750584813120630629277545107654703675297289504392636054664516372349978028129916668739254465674935030031419553948187145989724382918778794229000518502585424257425132926431998382120695583546311875399416024244747833243604019526523546089743680143229780082214149939035113502828687074493218071848821759828557581431211257276081884571435543243934183746519607112081825447547056876377723273388310653706311444447332700994248462747896358598025693737596205385723927300587870387775706487645088730484129735778372515190938754875308517139989480008047127468998272935043159610995892128329730641321396364215603615727099735186141475811940754061401601356911042573680264967681991592903701198642222155847869805956282179554517045154733690719067689754393541431983019107006291467911503069648040660321071211202934078361801637735144170524914093149547764741591997734544302365426339582696733735367065963724987415429560411740057738804034670279496408229629428806120948568455096740080624557347355875978725493438303787920137503524293915996280939587559205485889508866828431465303516274167137279939713512493708968992691666109794817177196049746584771168406045409791990114217749367622016269016720105482127562751623470687569353321455639343410674107790592166362870073468563916499080590744918702561594446799062403684486830161860758801278225440942997490396223049023164349336431104366056313276399624580630839473986637946665135127840350406620493574742986448842965686582395842553829659410089983856994431547381528588527849309213593930613642571682342302756297979180603015114239040962699338908833919974588708750749614929455929454003137799375530688565507103407212513014618817833480106326832196354863294080202809597749008514466982344105614955559259581158959518620618583514681364370330581054106922504742885544764370430180964498157837577187919971488452656371863278780501357501906658928531811085535650362891405952201383801771942573291005537027634313491106503557068810156546142424296840166661753457579139293888592599124232369806454582221093914220400029006008457018811662115044756389032400876032911589822492077823347364374910746663024120973964004736255000671623221927471456977882124797476318798359903231481555374355696611923149422983070346780066892878498485828409954664867631696341517312565296490283828155045455393569175460577948148217767757662109908324505795612472238740507727611572447219352228905095023860712995574144078882976065854263643296955191250693979138915887681631085829293457447359460911014575153493474585575544325119747939254955929427000391998966262032161082136837725229418097280771493765953607254790878306553182173581378851586007373019451644343929259110979623642707399659609315301566160374776869015892705522275949851345231703646967005507843183280972811833076741691650842441353383777147010868755680448471659384867537195402117082380401905016574962357542743137055400258205279974948357169162118092990774309995467083094587667245435802838662751826992306344961771220693128282603982633221228304550682419650013911401895583513677938648356300622713134200101813625148648663696166256937601996502581369996543135057980788043093902455622322695127850509276500972647766000356755614611659316114082141731224723960088886348992195485658889646766818332063612639617412528389804521236433715835586312965324326386235255190029649398233522890541277037672811817999380696385991256834775805112922347626430772695244071376785324704561842302104700824644946290020862867334146022840837597033200687102229773444771895050859165082702263314054852206400559118327226578496355002186054434309719253706697321435868804260046288053531719584217834109346563716365696923873290807996108969517613663668308374612159110860634216906611993887305215647281561180749794231207800739016675001169707167542067206806277038398688119203146251223437168531847166174008256213337023740699723147236176376427222902528366911048714111542810285007591324546048173670134423400378103495165068877843911338281079931542622332147089649997094356330860604295183911626556127461376698705965799566595906132893484229841343134326803158737948128946951665512232688001217739310673293081554698662974378009549453459014904680749048258129008441896407431587494127051784794988090749209216638000981691942679224074309017300854400664029219181654745872259977726964041936895234576940214152320303655656130156891958293430122401351325461591939857748509281681914691487727799536179449416560095067723516617724687723884961294091497281655618372874534504004976000916095092944286576371046233394244980926436708620645149872022944121599450434487467461829490188033286955407100436452721786886029504974164803797471530576604459781555572110931588919130631373461368739125803654982431925249680220701044530383191690136219603156800257585228776546732820891556420507816058956446741856720248708688364347691329695574409822955422534827036210086608788573692116562907261723682507748276931521088869823430445838152721876032321297251079913397350089062855050114818717608409822741708460301607186628037064744719313342481126048968899104281738035177568298089447308505955426721772155378066474686649705254427791153106190540257061559168282620557809766585343257220857082433223693291677920257083375453949433804469317137581947165539721897273272312795488258028449102559024056929362900718983626362135002340334348397760235755557115454026566195746174844942969084564312287904873136139746946066211657769289362247764321356058911471740122423925862511333747092317401195157715779617810022205834009357524621970368953837051398379041740701252800210547814643631015377762906652031610717021770640590387019279128543477101306616850516465039755005917388862553608090463603993258556506852418615833409778850855033150884813925790863327937993689880630118256556263462029966268609234533650970757748181184430990835044820900256680072531551412504376265431992575276954034216053930468546013865864280144623948975144269568505061202663225128344056389592871593846438187585053005702978805087174407168820177659703769442670535462287981855737324136780208042102291920047447685025375185202739249001702118805028329579487034080274221937242518398073173643137405023251691420581255507500580545573045361518619640847810266544366126529708224410995257569950841586993417676139381149580780323660512228883824173127007849853133174274543228857815304452888216727145486378013961069073552273851169305243696792642216530817570738005249461635185858276273578981473905037191446955989750583228005258398856686423362354516507404983163220231073248386541440622250867375787718099618995982183778604418529690783990857855200364092370133679213677652166923461071352847939949431758493275673963699566042931853320191499398821484232937588374291685011679647507473042977949471577876934600687626369004883354866431121580301490702404384028022782991469078758367330943888518138566702510065012704515031833541523736586948087121363503938481484715371337708999676023210427379714777512511278424089270839496289035291916386877881448197508659225354388574596323111521592230349134796538363810711113534974223184113391508520353689285996486082457803222256729128391626125749676325085755784863264950748650831714314634761729791316039763197245951725353978973774595372280953467507081516069090966693522308250368162442703084445568543102578102486082617026438163155090641426049617527041673733690185005295485814867077446614949172379058631424002576489473697582510837305951412714674493800701615863474424778407260755264316535977556726617134184791934657119539015876816615821026189707639828190476372795920674041442595380915676945660506622697152266305727998284537073998112558672876118395550061604546033466509978428165286665040185927289931409349724749743670112356088836855582454931471624666779006568400720155148751485398887197365063762277496072342526205244062677395033639520655580901574727942636764026811759908375432469076109772817032086401770737053387786462366918367234108301452535843997275205464740354763114912928225392818939464676603439262741449130395463961560713379039690381628313147401579329043402405329329218211927639697475316645689570872595653441839626234131838236956981450480422911316987783323462650731354332185661550689536240690465282980786246119731930090989006833086330205068713100284543128135087959702787168738899258976646837479130523569203216814922847413723227610252870122311916051664081439125132526133559703041791999067808957073739388157530312853000360498107694197670529613804207525310134131843970037977668876287140987323768614791538176372249630320500725550288220030509989933135067465406729422152856846063845204279562483418923087622550792401563145430034273260992127358900735466999355071159379707695555708455806195977063961528618410886013466618117400182245776555887068718202959193241485239512138226211663974861867594048712732997455645076049210336322461400553294856713613368153154612469562433271945637329038797141669824330626327650454055896408974637829056206784043138899248433291441716166902677869507196589911868935678646263961350896028191179974911721020093946535660714002847333125280605261417020100814653984582559813736508829647404361687156596292490430953940237125390844200414807697343562667732678754331475075255931365055546785496858071122286544573848327830729047541337661470664219923294890781418213245876039791459053148826680657912932411221252557444089679620257904389642252183697110554571861660087712766341407539722941665163541757866451263253047975024557175431153652686384546504565988811604820561913292287578259861548433634917470264301606301637004043691560766119010659391356808173992184021787881141266467602786877596121958012335086453996570875799752920131112234277416206763594369745163317588267630246807826202523996420064896216480472382096266914252370937506721958275961920346194910604181075718620499146826544634066908938462524051695858085993328520428980855944745921245665685182416117059395253761889898859649945337690763666586658513755985798036820276457320806016959829297785040547678025790136463006685461776530119980142142632287123943112643157392146756303539900176087106422483100805709497696939078292837658114879347350718862159919090453816491589947045895295383106419492757567291482943774871233413958176256441832129276857725906029947854464870788771316707591217869850503243596173839465631705480500525366404153678615453378166990902735089328124533966268450294822324429097455236939402993636769358460432836054437705626924741790476748771469831120153524237751265816040790956279873314405833404164467348440780699458297596406493669150507135665914019139145966926944696785878389687240098586110705019920265118071884779016562579201706570694780700664562478967154931774815616597836325078743973468881301705906230808594127218424141058176992760594024792985598000538117939505310184374744313861657028451523391374325753600971665222645384482588165790407048440731316262429480145923258646563295645207282509921867393327993329143058899498446857427251927142266388543677108207910628398544073776809461118180093765684511851530222953683133409021332000068436013102211676421453089557947633643323919958900981482897396079396071179018733967909009613680719168199822451327829134417889301629650969142407152345799328953768952276805878728046264523666892192589951234295819446175165964725348061760840835097899139199553345219667527949567247737545850219758677632178557573648495611806795021033072001066236943995176030885167476998447447773620645599156791990758129255493172993770499885964796485660792359816033472507635099728444776820029955399078629140821376376527203142860025101776877635914029700885669924916551252738986827476673898045551519912679211440752983168534448954704397002418951466317400510179487268658685872384781579107602082709809669667185864670581896196756587332628456995448190319886846750687032961255768700249463083974835911681936852744691191372031385679888182115350755849381047648077111735801070236469034992541861110572399166138570460811487207762678247955461199600624436862769273825917787993211926709319143564773714135174909356002810716138577493519520119467668004152318159377240613322864896168304802804552659991565832524257997924561112622543456386403531778141258411472486227834213013307488578702164324758473679869394435836514164485790787035751214869757019528025394040654092450133903397442447903662764087177982478341756131298642094444648410138736892952042377053540869226664446127892370190379631627257479013025565503634513572911561740734235300587382729303384186147746944668818660336690868921951204033930610240568093866650689799619158717594165836359762798417644442617638557368125782095136028981664235561529346691609605078316001119341881555403147458672905454166384533625804401720723869170213318510832640972977383668977520886118714485559242509257260878001517250296297954798049732456763978118768919811661220292250109307338841444368759871661080073642161968009841138884741550371264367264396882330534302488011215527895184077831499869776421223713948741048865911729700141052134868254635411452920901952785669012077033950388713243308054381899371658403647615801128847164960361785553436074511520361144637352815288264540489857217367723067232704079502751281916290681309352482921975875187947261158974144025905734125536719230059596893300541017949145495311003049617884311038610871580612885520865865927921164991277639782304837619334212409987892827312521417252565989783334067621466602579956483997271079880857363866051279859774871269259378697792090237435011697757344624253518467360647357890542672677998697316999052871811216004878370357939602250680404901744899433295318607257553777074269443433762139497983339029741920751176596334636752793000800115585628468548023692910021839101346510253564980848209741973461500441631003290934520312552069214671863080421944455552232812232900604633360420088863151454652317945591455716924900327882696265021067096661324382255087442719633663952577949543704743688730640527180878441279198813090564046773748197415931374869460263980477017952135603335161854651414398297652940788305864582546688734011914277015538450010685263289532951046972092934180364551251844558790214744180896959341637922094781407987704966427995748719138152058941756792339453224201016872377394070317435844183885974020315821221612547976531033256039921976533090187272990299191417393383621367299198234175285761769147858944378653858940248913640195412648676228048040552913345190399067540181539148399049911624660728176835815386561112847966090870424704864181797350285496342509296498643897332239469261918052250092080436325217512373674170083025936473486156475095448223253498182969489521711970868895930294211528226363028836763137992444585727284931443222171675307281094896342895996990357264974986116159091364718417882718133724303121814147535563012223422597270802838958711900017431648710168984598555240985782553711610586804552826692178744921173971926121003467056570083702615261922968149111247334131265143075984620905130786312279057212478968508706215429699304832503719948924281398590670707874451999385525621684442723291436105659831927288590014037857552968319514381314738625519269400041911584520629249166233485944328107756603408574284665512730852009534042446730056110484193666646332394814334462180541486237948639788169887255043914438186362923083213800851281476004319510163930638112097610497786022745755918622363386521604908378157301987776624507027901436234177756387565053205231619036811094888072231307557103609065623698352488528849977910126486269993520430727648762247579530159422729185757376514292880375360846990310724810488433077257792360121973269002060285796616529358689484410056414612243734982153624903069205547002788326178359880371900215504495601661116485897569494097813944961724454088945034497372833022131627637021441513470444394369747312496241849956445644419396871686139146821248162206153764266045929577706668396854948660736264233723800026494718484788056023703525398256938589118199102284380623271668436348362930946278920595312166866078669248934008425842865421571141445172075700643568012591559428548984083477346258636705489669526779983535584349950816648368814126940625671085470279192626635861435464186313059269836854871819045017077483230045456868005282372777154687354792276871974569526476352553113357046080168254214307972633457678160625872829279800702681281785714424465146944598669453849124573684365790228015865424512529000533614086400089255529094496128673691527423961138741431007215082547674931030173842363580499626767066855827056990027295289698003378767155879271331339624439027718067487035471361314158465111241704524089925869149825565422298661202167894547992958083103691309519754170963142840275888587183065331047823111129366885369183622682151772952542002974448394325756060733300324524643041169270018444576309545966386155684166666795803637618670042985735412559523005889802881088224713302811553231515054389944504305948949509600001011199599231627866922618045395742107243237146036716410754043735810613258509474514239555511373374644649208401566501305659512324757950675805450919947089947023787655764334911551097313023702582228403753803990010424091904636848347077823009266111516842862585240171512034492166900538728061846028637055417181328495670964511974675476703904524973951001961314837128580200261180567840890043836822725220244731239665362731077772937324710320228269606760635502825935167267519623329570305159049795157445028309895033013068859966748540578266022617393059894114943498869002329031056792677742176278787870496071926834667776667776486205528615613384225748726982094697902835646291339572001946523295252976714917275100082325876009758799855517045937202524949697329545754374751979666028927860936246639381884691271005777400896769032471556066596050374431473379953355184626527306811363890982956765161354892259973128037868651410724963408886318574965081791066928527165898294915889937034531165448349467516772326395086713539772886246755408423007047476378377241441140999369289549676015607923953532327033561069398468424955273661075518403790378817032157933160015672573117221235311419821673938463966370320379071660660438602954610705518567195979106385603157887547332406898406656731782383732081372498204763822824983540743482117219632761551420625767075402760011589667839054703787094684928221487362555025904971947604472554171710772524322669880805167978779996083770658580465597801109800025193358357885628727765649527185138214622172073805629570324649725562534804776171578969719953932911244695078838513894372527429036961861665169669080937869110964016207147875539034397831490838511597531854475000023962850996293480585413940949810880821580402184226598975123830894141366990031295778778344412293442081284832578542732561686074799652974762287494623912868196732765390947688193268968189268056753996706141051659611962194780379180891593902793303374016817491665126441187110270191439424511587851942917410401267302001661439259159708236580328173631400823525527118297136956613941237157912458268569509712423751131564726796173577896304091134956921769289221067996859253340739124277319132720914510042263153518850172347837207378428630389605252544812376156270511937874539335260429766807665512714790669584051757208527452780906925118579337905015829350907910039963608388450061887586642345282916132136014966235974385431308658939449913275536502294339586615267264003209164615584699303816716249570894304160441617500916581054638790715246208154207719898829332274727817575013832217270724170722352632735170792962916910596864147017524632905865590171192182665890259035797227381071861628136988832038210967680575628057989729107863033142190378249497970712005916529425225662279052516219126535673477424915680606050688553421089781928303881853912454058203036831253640118629244587042885134669201145747251508765496270208075492071135612957227358359927799484909356897209764434564206836510736861089246817460131446791483216309760488070824044093744055403710467768291555975574198873740587481979151394370020253561882149626317521308338061628591138749962849591811447210051014463496739425705882010248253783467547260535314530608037176988252996072021609800615990491340615280306489939253291368090982425026392400815648549109278258668194184500770872887073556764915683325662662508690220729591769239160675300249261334018589039690100980159603796679884896323360898408951822748689509333194583092063821815280844903349875432206775227320250320978819109050510839566671895979463358044257640809065359705150642145512371550806028306012898563288871615754230851166922283368509764417411812705439312741454172916108808341999708807566831026324882115225517946598647593641529556807030538527549041194676156077680001665077461301678843631054164802402593855147646066426015811549063747293782378584434018205239945511694585473449093172700252647686157629605586919160473019941487852274436244788638534466005876115718160011249439350148001851312218457484625234646612355092470847457526521917149025176794862112124736204210743500765496808661760784737789173822251019784251693913384613915881000460294779163056473233009647754077518942110368777005312984581862904242164933115171740163163560142519006449889646479470836717453876540917449816130526593186118047468879617443782144982255946369254332703321204637562253167101763603764446480127073612982727536581293990652719051400791589645633869701484551003948747588148907977970298022704578197171672267333021573198504877455428053278713211567516789051326118954114818021529768752258229035950780997073197644081837191906892224158823166014334310290354319060462050687325286856592294391462794155102039287651944307613625592974201818536719185530251812321706915355283507756939039014108645182510114621212031685102982388915730863754065502538284818687466775288223076447057984874162891861288296349539103013980169784988732105908500269310522728088057949133434190536148114074730122393067292812673269587642147426903317778580707305967314224467057596386415706617371511122176929509831631222908971031838399047329917020024028651417422734188868511062938164329634085385657469527713669532903822247081672911917911400308856414700470051773862998951187736254761238109741392671736582697232216537048113434209571453643343353867777742983559377567417339639554374871926763380659681344654633519636790461870389330983161041940008712348898566202897744138528803401697563337701522357998936483563413348723682858248036967389027932640361050690991716968844426644335398819025565779606957924676618435130166297537132358055360199660894340845316552293881085312228684298281333378025139069372642649426451795669213614784550175870371845933087921981090471646779852834500259082707642371390027902788139855367202434976339004937065642545301805314423583265855179117485979818775855233689793611825460121959151448022082407794443824945269355146593594172811726522878540997210447533182841899829229294574133010082544812427816865778449341292583316572706197828095525656553516464685889356495385051977339435420606346462967131806994434312579526747127898254168279403254176914290805457946359066428698322720210033028687305583738124697372870394248092867912949997054383360464033037368681187861514267942755848161431739474993805918726246095238835022757803674804741167862870641148482328917923480330326291838002883544074345920433426593285008214426140712534546150120262928779780859320274241484751498787237557900354341570450086200215499607935179580550801148161394825251674171841359447157795357869998270448930369585381680680269691518062024981114385574918322917396022417965954720724221771971555810435716730904075715584903864511880078463923145268507990057754948017811271357940638812570803390532054853979225101390131571940968205672329942669563956954540615138130653612336608336186333002830237105330631683293631205964236223012986201487052975553324483793321846659960348702060747823842605732804114486439673953637036932426497027055622694481473362169156807751728841409440726899722938837301023961287975973926041589905704813239692296126058281781624150901581030112062297177339073729406035184315758049380210129106206255189010050560100217977501215725133303838176585954179047738502537184647238747711790979622985409020328598645448139862800237396838061185152187851761717792174999883364143670201281343529423766540465917482231979455801619720286045317731389227566515460832171066023082062957039534989065991897213398956088371636988607741820581134187040799164226288351179946091088255731100954403848401044325345518577183393753396859918646406827003964592076555426622423454919281015659436930712053605589036558653625095629928788172652445750266818401242793425357401471208740955493572649456599448261319153214300489004786658096668672035807781702658097466870193846915669448145419335026303100220159465323728546454894668720747971045482529650015104070963469720395159453059267692678709409052331599823150628434877220010074788456681469648574763068019243840573948616286640102373368279783290440598385483247376684733448745803630992287602690237886956349817607079029135589253440541240024553243389056465901270422821826833664657806633887614855386528785566859054583566103366378485470713193640278012572390747590014805900257436248510225672139142244657387404562110600847103079134807719146669437122303413815612613068559741033873007040679989767482611373619763026539748970682935095918717503175780462029167373570751610002312166097624314902503771123635151450845222211098837448238147790938743686895755963725905721100840340534264139356113658820284606868847945362206123757089940237182771666337836031159962508720752994891185236583283412400335389340953826328747919494871400701030351817055525774575156822738234846966058177729195627157757186667034887943855172694425394799728405172666112794850285235850191426098993109336682342472505632411371846758818069448290703276242202009924894532131929651505687824540426535678906768602560959771427859816067730494295233716922959768907774892109189365818276891521919061753952559076591717781853553505532906814601669221256618021269102828617493235491569315441033125881569651434488985544674032257667165890276977731215798722280649486268265719331632967058895916995759849505490172769835249978065782354219076025566311878070332431348050612402537134203493122523955472762392915211841407914694909446629717939221620396577650449961103146061967172094368157059865124543893689572375878355225394218563659590729981947064742240080929155619411651920523189083748374481997599385701378780857713182573140352839789118759737232701398284240401475546118522719951397293963701735054889702272700708657105740879458672548723531396188199747215270805686811785455834250539602259811224458172942451180315305051146317121328153833399065450890664601555510454980497983224949902560415780459991282888718088200830089183490778113998091002339440004691334037787449721355085779673821145625256110195316162850814077139386235935906813746441435078841447459233093189577440896246395440592205382495678109670761413055804817636083395573481459322853973708488202671396692921369383759988499062045859413433649526577590259477380760907699244245928970734192134095940035848775609014546289274948505694597466477573212670235983889131547508258956358556142340199015535135878640895866536513123317613245313823134138596035646715445209264689068572493879222822367168577920153438103541840955642023034648678219714161121084320545901951908508791056366753717020586041325527846198868717020100397640214252115993981849131244925592643315791642851782723270285738855009199526260956968196532513022061479020787229371081009111159896693439088526340275688106951561708615698500829196725498132439507686077423689279011930396953593556238262874277491226971208391013538960414257541139201497299066630755103662204351165565190291408646682564884413748103008659460224046608357420983532332137985726004950013864271045155469524324638753462188426309834860599186131689153205630365398875910989731244215953134147689235571926021893412486520186162162929151608717167074229472410999720578641436323093901363128676534238353251095593843819127441275176744416003714868207000733149539980581951990524330969490758674577562755857372574131254985167753847329764869056255428207970027129471877000448059436748784805185432466987978892567634500684710808168867698182157627846340015839033149720439298041303809435351170296332900021577270301357400070556001178609534172903320812508742524029788690626568394415967789800079646257255369450036751041028219292470311940489115440375859108907912714123152620556789235820920179020994249989452372712171935681185117677438257495969233077256932726081552750742845603017319606126086636368268487036115202914857263466503457420955007593957603894464914081219953675221696581753460079781595327608456669335343262340653346972386043475781545043625366238183712307173088259148042989905125829617621442459439873166719438371918630417160285506899765315112718651161184926019347724135627624189636236790609271860137020998526140103590320531273601551804116828959081113312634071309539804318600170008409476508880588754925035070040084073325294436951635748383149231757237579267430529154811819877465658845255375854916731881404767496349996725632039234527377727088846616712339354235515029836492016415855687448280562927273535923895345642235507593900499695239976242422978696323975996866594419659008708955818932898258792512113230872304804253606352410907524479934987373096979408818674597550175420279422831776424353705499751381202998801443839264409784528011969599035185773665809038420704000184134571177032817368969461426504134814972065690277889684802683019355468815906028267763613081134182420852003166057744772753235822661070884778611717402099067924318564585450327390034117465055206127967346491554689301907446366485149740809272128017365913400186307829854116431102072217434073150084706301629086787122119388336233619426315981700825509485466904476914501281761802055678165688054507685546611849929537744509205097275585423107896057054710178806715380009813192309897025313209347719775469193221157885492928198296710310151085404802446209631115117462321233072701290311809887761438749362794952236334266642984069131875143181742008852748010606258100703262898193210138811384712828246404115467822817801855801218781854963002037848911281641706581498563824060495500420471457679452839062747937197290729101096037204098749479029138238569610531747296328988216993676582903209129970081588948263083574492600296157710351945108261643854907635221512545028166978949556705172424362563343132722331296309712746546124709640691276620959402783206159224446326067621255410322796339887866653638669465523630915396874556311941890464071032127975029704013135344235490026639255450599365507100852989480468271568363275841169578712630803230544724620055367897373754114710450748787030130298820433365397936285800895681207592457123065901661883155195666217694984067128740338040384842220361818780144519420630778775667548111428348726991914640705979219249476062517542603801206147908621210812826514034480974105118226538175430246058636743974850224676427557861905970021461380228498793245541283591891361517058158084989995534415908290563077986694910080583852996449701832635355723997343734317101770953363406849628946712340855966456370271097715074726613906982490650312669695780576601100031798046088042300981394379245357852968876324738528830749480086461829929571011136119311565715283562423750849735030504768936885531391296934136500570619383698785694052330811348633996647587166014628396570350475957202722494276951777310953752458285910786435989284449478503158606334614687461052777914907929455295947000126279639946704379066825848871951625672892755554567596158628475882573805072650280054119015722295358575231458083105910096360899214413481501800079890349631846751921040450780867946721297929073018765140656630756013925358094241435785684976996886578403956491673362202402351650435066650837227823875283268266114490693467777423448706914343679077128221790663705133346829291717375626786918833452325613833070290001339104416915901076592768097874819359515809984400130179772450145063309700569624341486289867724260410503456734168830748099514890044090962497330309955539521780551745976187325944394141008787163030926012955995987796187383517596546216983803980244670436084028437115736345207201723868827814804155181364289702673545872207973216230933469485859851358249576533948393804711993078521393473817347298966426206222950393727362271934674491020676214750502676305225549631139317900767447897936650175864275252321791205227712617412621791415620936435671652345467938052471375516528118238297588177371847284497801079531188444416550409372330814937583717837366566122310774435528658292553729978184542976220755877891629297841257272859545061855799720418060056613884800586155739618647468249060024504044817219850074287209027620133559333190152199568243039193005186750994004890413857543860766890056886113600025120372179626090385795126705205499899558656811392323138200583452309647279347868847892263234705461182852416808103269537374447400193513747638473751760210339478398747415435519276149007375427044931566500063697631178349056752357863177150854907408955825356939391238602044755160198320917240877156725930152243908707868580136926755850390383684778388350438731940408172176797563389273317720967981763406963797074777596515358505466661956717404595857009410911518767246094515789930540173113657949109192246210594123281237010063584268766355610153204595283883354955316270103265147457624354329901883220753879054044860270568824728798363592887036732711629595495463661863031848603756810647371488381077946724098538382263652973262792863034396284666914118398087193546264242949822804578798622522870899927046178448068366331976837321602666681249449204375920699725049992397604967790478975249884979699192622862142616781110267276708639019267719167570699074297647272999796200195383851056807748711462175159460660308237486005964511519045070150514214317306291443409638550701220900155715155730361392690167664895660721875391065641453107107376499488441857902497117568500021654608501209624251373071331877769496896017162023115098085943283868200940582112692561973437969853282421641897067807270658363879452183577254603187173767396879615948977670941237334981954255299748550755125930667160122636424527967279698828880340879926708261707151655080906403826237981087052329741867700577208389241366431303779404314754322070153834952686671748207634564065156536096395042372051582575000021452787961961685542964393196106509263443123216845765678172802364548460213925096793168540235602453299531400014416335223634499241479310341392306818565764062568974446280348731728842420875745772937397469282319889792609943894121020613749390828200086028179413776524473721215356524050672280130549656590885833090309331569529264221538036291603432437702460669495412616063237909044302299232439683677147236768822502575083439581192126715637876770644131010403319089621613763216586341994361067280628824691293914182092265802816261505642425477962514925592046172559018624003450363310036010565220240216559646749682067205505206436198493939281701390368576071317413954172442840826409961519012980380271418029338960465355227132444337137137828916180171513862748318930014676928197814245990850179063880602088090890761106308069363135289313210554620107409928277730096388170031914001228326340789077093812382422065924143218293412459816210441873750745465367328412916792582181049643680922921940816076294765346889266350901282447820065384668794201044616706352829610517057224070769856819907752481380749433871304054795161410135991882728121327431497917076682564839013843194577357829978277397223377771532163415060561689526967166582571004735595332461296613253586612411642309069795833166264148372528275662260163837554508095178828876111179318057715031509034841487942223955826371849590707812040960797610453905209489427193971212089703101409255890613763734987664954613462499006915304079428590678585315836232302230185634673805796961032676447496121503943226805645690089619448462542643757496613586849316842489070113758086098181248778947145401705817639553894541140156687850363174275366320943565426420490891578793622219562929032391818513582764307987808133140100933887905232318550358762308669733304357551072837702743515466850022142684873124960677229555273506222221624503204954250776356393518585288263505945105946509705650843253244930309740387692783906438670087863490276845769091557573439560794681881439655243364980812320826255611586430792305903231796257804553706143398080433295130373992251756762920372282825370615702742882954578238642515800488989436855701867113100223034064127625877805178938949475549690799650149317436788573267196999174916814128536381258532354388134907879691225022450662284721762378060781424321912780219366335947137812234464625404698653378052108359558208276577822223332613121656180287361754203290453211596866748559851963973552529813189831735337310159668009384919567649394195812668340331730423713183599746087193200290490343024686746270694815273702709010318250063871684577440954478485144091463147136963173020155327349938006953348356900078203003234439876699768464609193158768139309047705171570412811361491707707335877909607473338868197497896608326253201354893730477375364146082959841619765475498722322725168214332611154718409168208075499785886048375718876592712780231023896752653743664627081953708181006820183949844070767101825514079966906973095527675526003225245996707353702767847436178236589953890191459837498546742587934262287566273692894744354268004687774637905889900664530755569723971100793458856954404532219476388537973853272991703133059207972658670438915769915602637340167037049949137861434598973027264527316585119796456200508748893513561543580633167083087408697121351697274828973928432068590422769405491746442454928540686048813614680898287182098592853526695260806893679669499090605495166559903584600815551403311435929982865279799684770217688112116874375998690686682631503587190601851139554074956764937517643802770411179511400853944694503726634639143999145644575966339285917973158134907574412077070929753218995220850657375363760113281558203512133878131749897890343272743060541654041604594591946591778354067688274325326794045440514157703904529476965650820186034496400772029501445504313446726681140763492355836562728966411116107924628657347085033515677771829514093346525498446914054897470900220946909239437907488416122118151378487151223814333766165860542521892995408173003644285386741649504889324058452676418638866908918369958590511246814870364027905949431052182451788555496693193421746524586375226502468525413424533764336006067312457624302090793152445412014110008960047219437078553581599909174800240677177819571428033206059837060784853000295116003808357539285614861308048674559166410493857533506089693031690025645279528532824939085981437183942681348085820053173625395901929234202808154855695615708513919692715979916509592587932721424702948660973754635717406975661422638636568320627035658428889109200784761902031318811863621379069623980913610120065980439243888656503836738771968492109257419631754420563499160185277858885299208049305664081881714625443201719827292181251152374930521521268255845924506803161291269240101948731126521584805635979387336015893517887411661854706025153174995115865421318049974958840111698319972478082363404259270320807692503048939323977484805071193626631832269447429733481714127720068126036129622261439338755324506248774102141497537083578587515855520858033184522689720454531205567656939730022139092131520668286648134404125155623100922518586032678672285969220929079777343771038684107786766590567104348200786267012650830422279197279781382007791375915853203923531342574929222483844116554886638287143388911297666597484132370730824966667054620714955374435750304202961757927440058417219275469173956587354211381974971075693949833427989833655880169462548242577952314802174293262628359832310341632015918222105582232029829232087045872370023197946393076987436964505045289474773778481144524355020546910493949207765342749855835472218677564963428124048012758105475683452289935103622813006368653243080696327671227631095719386596583640491019211342684690613902653061220049935214913254640143980097523215059245300465249883487233041013851518451882476878964399782299601227014411825098857386792203617933150182940611047800421365203254004554466925657254393977222574494097560671286929405240693669148224214331483339859736551532991284863144322379945552928598355370956031892839493728871273916650469570791140738599707027563113715896102013033446061053411267492027485938484558142300532609981667928760647769306943971651865306114983070596011113277599739410710408537900166342316178522722142893945792806234254710000763835698802006876301958409182501034321042013717636979969477724756955124474970740168514068857087726238168435974613505708247871163112450855350039518582267792533903215186767233842862141065663299330744132793163475174963769772007055729738669589464488076264876215406610081303658613900043607524083929797112690810213789698102835410906171210876366863196385817470654308392306285588663677080637997641237629039223231657338753259337037898808112982707326559520497569869428990045602654547257897197195787546706581560349297274360231378145706034966980481789156383326360426790956286050400913824022147367621550435401835401614559074604936243638521754548140206155368295733691538774167507335356141772503771251874004539389105273491199095894975366852065024756946542015812957939148511118710426064743026833170664683603992688460233382652882170339991440360488769697217399931748332414062443208456849107983999431476071039175221890677559097185839430371674159989397493458509854536892652802432271547754068218244472540274701542509932321669872386713821710512084741721905380512408056306519934761942442598908673786720432164781694076156099248815865692545769344243923361053494661754046890195773347487865732686865246371299250144665473053047599834367119382114396879559758537418967630922710710168569198999809401095698328229099416748960506510743752513843412884668097786787535348024199454654990909933551215650220570200461882448913217598239404200970057914593565287673604589366875945142718086424558567015807903804340275763138405630206804360890413385750489998806058315882725774960091852953353881729275788630122554397247465299742102570722050778508639131266944101739414923146732896500271706960683217975032294766512804628670676786711316311736927368392057988998724381638770788306103000299065474080311679892808773846056219540376447064652676755463140094863949806038249648484454445610944715654475385025927694839883726268335834578872084184540744170548372607241963066153022870020221732208568364238507427766215909433833362358155319786378332136807946777323513336193799145145804257589252160311416043017560775962070600269447420984494783344964276846178580949920163574814186412541546674722100153508314770416250318666180210488146595214033461626668992339055309421832922804938955179152646355733567505871932134505002888170297490996545292554334309255320288805972412248812153274602510571231895490141381360412760584378282968225854691186111732046047634231945034094281739683778961631411458910331466735789548035888142682135990742787810024020814220202414032399620767411167186304610977341027701154349706473599861331030093440535537275627953860108392671020739764582443740029035376311275586927003388932301874939133095512356991084714761453795680194969494041534455969782376490442366537501724391202360564650194695125393564210495662933250158689858656019229990575808395570585956144648228503444597793277521447846946219951823091575934723423092663636049635732904528856189458165119941190201150206959975942632317475153506863116799433804005928009096237560237158890945476446263253461112193650198938533013188623957401471588186873160292175363038839125649210358387358503144925173385934332269955351780411756848843678422966050344521074565167590694473302382429785896244196076629987418216632392095911654294460446547548602001458925418799498372464332939735075296708076763414244971347252141598209886475979957189738209136194513997684205154655719337742655894080024951335406400677545126074420231287957795093185016800420869106463874797662328255727769459782436002389645638850976692536604681502835258802816922967529158979490000507718147710480488176794520331504384996047085163942923100422140345656615969989001248609718809829747922917144244709522892758963592876210803919090481321951714522316725413112432496507225342278974799692738371810250238485993003221920433723283975822244927528680238515197264303181745252644002675444748367253321518542941911442147789115959079072247326548308062793820835641212808905972958099355059907367035199475505182134998069728945602088550154521914336023249857586799536485436369591145030028036253644859791109905998767899698628630127457715109305145345819769254365255281684216337066693301028572245832720823208334750023897639006581299940561253797971835188777589135258767944745588834955080375771089777767543427054658619090776322598403383998998118665873954404916904046600504061920460826604927592559419973348109233225331710027788618608558604386144194122620673510693272981291771564149288614153103301211439548439433069881645406153768089612780121441177792958188998990384721744440961446928286258482590383553510449736320022128279706657557445734540196388459186063061871761623365081123412265777935683707130834403851235612325972779413242181373065332522375006116682304456014258230506330958481087793613338662195741000328480443419821703441533738541566014432659531045055051097624769392177061376930772733899876879755245320731215746216010400121583898516203192412145465025050211724282680007551464341538291197298249475929265972049962380427846106717770864880530400720964921015378476406436459031980474333587480827820379820211598936529458062191256286472455318668208523709489908795982606459705117538781824009310397959910761098152446887468357228865865927104107723312281006193735810840137314010403622315477767567769606555624145182505099684885593736140528392049619753781883864928895819924256283639708654503725955140919371073466721038274947613069762451367160638332449392911182908551120531934474166320226798082830891970017808425256200444784016866458958996568178911676627912831299021754317123002420746397958365104339416732334119552618447069964086725301224913134985441996503193755096810322236765289201844495094181089651896874118410543877058775187147322685985981943456781531016196369525363760491685978296919184136249638808265969830721830804169851809564921621788373829654127419051030969796470690972033289889128657109204197037455501981818350402957471467688011904295147511363659767618408400723362066951843395213214025940408099273299541476610107046910646046323079605965812376372236217371650117456988754768731940807955570141337129746004904899012206104595088995914275446863298344481248784723523142356168055571721714423482570871547414730444523027073132491596449854286112550111542716183061658828772863368074706426717703148982029021385438466150541374685054991489968454308624518584240509117624317295206438740140080503714777492679389724130916410736887197450848339244669594093931472565937950094892343414559804452186234505042901836422509568493595711697124040420530399948093891773412142423363342049174746322292066572749435166933025778181547717935284413675929032341568648800307313262349047551084651064357362447561486758614494136460740915288387230808965369663039580636835193760919991644115031735464299349608783283384664297093690321816710297803660185401524387879962465897837429425621174815221266461863330345473801738304588748727971137214417538305748224556416867773636806082760812948098834143426206196070919815916358380065527922868768788869573424779643133083890009479738137082616806730322165045690856110256150753827216485373944178960631940649577379678772593672682866188873204513372472846779633072746368125100991373474843454764815151407316565314246415760592355787393385994966567657313653082137773523881685662765221615808555581248738031998326506861469128359494113402738764650240912458202599162859078897219740600669104321177546835462858957177464812705628937717330980959096083669544560418251530392565914742979585451703573114245079068786090034266986220700525175784606057580356701468032755321434029321458560682411486676631697816870432533018563939347187405640525251834145330086384135308273778681526159866112002440197347208544320912751535496367378888864677906420954138436938899478885691031805668525840312449304208508258989710421130305056935506871024274224712244850860859159083839496765096365431063587861160846321956091598250607357919273968755791434609116137887142278211838510925663695597264045005973723644024600626087892237430149273160896698713554297064703175326922627952207428232281187127368905681759247893296632630475221098669349112859361029056773239156844011840806211151716499017457072974688243500087552348990799483972618665938605099775165544344279494025775626777142200041216893245589051034850238563177783017012940596052104995692534766659308881068220955315959595828853947848639880376317415787193224717550416804733188558929653560131845369065467627848886814053318004543968983623755007838530421839894699655332581357847690390111080470679569374121266652340633456066365857266736047140459937113106405549156081708914108814106702143024639146490630537267348790820026657730066751901640852565371882992382126717878974436237525350111420112320214702444706959915267038305850599731590081366978428751712913879992825429702767054898354975977770624633685666338169824254317537980773733058314097125251804325852208606719437139870942932759191307899592378400990100314279242909854924081035754740315943114739976094571134548141171913597788539420341089395288586938537648846458971711827252783860909915717060273294441271636120990801670709697631149692112650978094457847833169077839153613576870454663411407147476109886112571945004837060354973629615855196913142633589492079937056256623101804384970327105237186006400122262977014704639412056697769974959803749048399882392720051742711326497042275935958451445092509592819331522539523064060405944016629059112394777347770455545902815537279202663750983175905435161501992905878929337673961586115490117513116089447109571689888909495873158700255525466180412935499186069862987097063578163173307891092762562066557563944448331105674427788037432445584889806009897993300476734798120175930362987391698360147997215597051928844759323725375701197188361351849310626738513726277587662042475188740408070222767765309426467053044282661740079720718898425020742633433172923106681691256362025375739929166875507847093031511532599356286639073799763555739270563016804028243005733927376865871100587146604678488014558025087906220488853323859729675405193627041331472266559040050910780783052064675522297480866058556680344175739538780405153684823872050891740837761661841509480961337087558992546243151979721781544441801148896662173067672075459069296602195724452493300716741593818584308518277076483833960856014915278844838795585169123867854502244951824449262791182198932501068614386902860701755435623322098763350394521246045039482973673746904241111802581163812688894391940837212182422528493123728586105370673143667600379222308102535548493621538643450509775401078051415956963410990545568961162133763632318742074334003062151771976597202494066705766860118963995362109505791723530313742623254396000504772431192032466187496834642740131950501346313488155762050030182220603055948478037506936009018905179466373015660597223186026776188729267045927273397886725613629167832262159336969721240502796006778212880088009132916961297284860174334869161952108114348036125369178376327278446922322428504312560842161149539501278559961712769893136455267135515919403734231787915292290187738493266890513691155073391740328870609737030500170189070908301010219631820263623307567103445966644712654481885907788814151567703557351589013338866286331945615760786187861176935933098871147704234034527114946713356478504741879560138739510411790548865186032193730988339353462628061582382074171699586435170323506665909448186402760265571119926977066861780277444239506467024394562613037747576867636475449807403527054561142438023717469939346333955838522977831678002772667815708925792758055664934985276033542464888706978631573622927146167803752959593496834842576095204204356381284416278971939050510716753346530262833230487380500525304648394669495427460976268652527761980542354832157472310124040828035391801735713094561065319705084872708478838647895273544585973291542500611243035409010925777696236739832924918054094985779429381630293774162942393679841400245675871847510653959375269875514473201725319370579211198923627687428871231060701694285688921765044630058180128727341578790813548531682707249488909993816442179582033108085319711018883091901802237051959565675751594776688343025055743080108691471881047571314471551737553676471268290491321482322435480029133893974852609142550033513860539229583002163315871265118947642715757764009414295461878011588395057819985105962696245062665224563954033968614019665198323715457424850043995674376732464600250426557356463580401294307907137271606053214682307721163807933985405401518714092055543761493730605839164444463082139166533375143431357827663984932470030480331983038084023201631659995545748326041448814917026413264402058804429050757220603820952445068132391848861637237953697422650055105833558692442274703732404351905768736980362433331626808408360493003816512327790991164890274079936388482453238545860024005744492436075596501823283456571234672691183989138504949401773540441743515016385291731724362982016464820602843956926939720046553192754073911938381271069540966455665827192029870687148721741958719866629632129876566583578724650438065140271582540281629648287969343052012349194379553690299631800311666571886106564065223601268566396443105668744938118631448438309440732781310472146071139333880177445370699428110559607779775908172384548326565919527929891058547462163477304752072504447027141577015391085034974803772969305408197758769721271714923974182164959399195986374289957705495310591961228429852321303474139649271819703574524374801871109668436647859252597332889887905034825045627117434256419181196459332399945975354293159168766156972350223457476563145396681164582089954142347369646818644702379312200751799353484498469988101795999784351423732462821149135214380698677877284201751639160088243625511581298997227610863970505518422721906806695897222952447662937414161155997206317485156784113657031771929045827377426484236876148324630292776651952209971084899772784693073004074539157123086963234888417119435956284176642199931899157847922506484036966116110115515212313864690128541589478070232997657167537755572241733614869965154783366440311105083276449506226343900142075968835737512736181460469109051173283919941377778570022901090505548568454217293317213559806129235975324397005163341795246772514775663619558445696363727915719047139688629683584897973402133430608830877063400474805264358242897362765788460912987667865383381044482444469710511024662006865712450238581963986272610833336000016447092836330057916004705715881521553572794711392644360134451585941929993452615465798366658065499048342291131321112798230744030079645526217206748210461394057999512394822803331301935151175268970622206669522619183924466957898017412065516616525618684401311114106520397429814947776684131417938606915519501347539989796335389341591807803557923340364902225338662853593609095363358945590624214286977841935240965098523113379449429310676346491655760231094237526770529175657328629875909957993489224919468871605047832853366786132340646474024552209953208517470667291082808528805560500906712933379576129321890419179787602961300076281784462061408251469828953776725552448050492076416446265137898675019761348103352614732834248131895456083855430464493808768495032176612590161221769590838157933042862730727590196986803938018212171304595121642076475584097095461863993260249028406955158264475193764611387351972484694097476738737197844088255037735413552637287995040246252639746808832296115481992835885112523869733731154806245787640836164531457566082080847445779988830294779427005797242864215362445534273992174638849415851642566905412597909926399653395611246679816492844944928228076391870963717901193044854776738755453408909072495860211158975474175314898566937842223002694626141123213535518855859684279220541286684133153666104790194846707776004920955314799419957736818517588604405763150686392718470717694778975070336520728775410003107175225465059327032604974981882169292239889755504921816781476880980331342161515097034358651756213357730822253505293221685204070766774328467462356034830521287130954427741865256312444579842158425726966349910509231618985430171281898665275505234555586458944243362149080877396193152729701491164701029538896985695568363477444683560183896705891151186260795106080841499583402716385875865212621912400980627478959572641337831023441549219281660739736970700849681994210849145687897736946943127289099168064704757334009837156925657152714363452550993293858103446387210528063597320718550954801761337137414223010221846656590752855529259418125518415798428795580941449139466232063789073087199306972158548005028705266912680532065110902134691283837443978235983319819894053672585055221425431085017999920095711489427241189886633075523570219788410332365551751354598121241033042846234336061219854824248759036944124944058619087442094645014980399704114549735391166830628039708830033659133068044418245039935678998070523961391056512199553438510719602008793325988485396137454950760877261722227831899245113708920671516540135645306187725040353022977047989066787818643408759904866393708458632589954122152817767781507532936559892192586022345262872754936630927929786633262846963023569062345523020513831987249413234042752286807517175718250591645036684381111350620528676843190321507258352242521729638341649809762063152470980560580998794319035029132728833495634648460635875666661795760309787726937635954778311220143328372573945494162689588001914764300232291928055802397318673706004820844079954725106059438453974764246045766403034533090086991362042118391289951180824650029178990486288579742174082156034786517802595249269860440967387691955292186728268151902988719864140798212007399969470237703005193995184199428627214022533730507806690848941470858112269116114074257141743865261695954511886213155270624231508176470557257257434504741250478567857132804537815810403986450792784209380885114437130205468936780424367879238079037069707140428305572358750372348988248338068832948091054512898656276128999963080404361743526112165408127190788762116523202734656473508362214202097411224996348914083749923009844817215216972328600915714581466011463595278833211661065169619068124717315041246969140727241903203237322953142414214319295392050575459004825023594827763246098598179428836223723684670495275077955197753547684836913380373439593576965573679247298995152527307751993899146151863214785059847433310457945830194799924843140834222516090510409914177414658794317523861053586093434550710038015639619253945187381909482042760195030900240513634385907287250037380708552806255315076765083242945966793283553671380580219676010146286683684446255185816977097306382202741292844003453504029460878323790407178060241145257821367251299645575962316490649808075148751609639670462154920214449892209206366382535476622993030377207653142751247007984909444125104047731696915518136977157052185307701394250030803742327676000377126468760847864479855722328599183447057752480635209210046821417418023838028741387610857298839732079622954428263830916527018994945813434477938643859212721375725218665452533782083529327078085539893298225334305883190148228025694565125278551010575226469361414794228187970310295229225336940621647472147356204205713701442675212239786549589466612659836783461460285846046080304327192033314411215251220256655398464660402097273999820177979902903615201330086548530969092538760725080858332958775585262539323040623073901203237170972750798897121831646504402319144188408007066456732741726812571541401914137540045051911400757901771065069578964761447401140980049739116089088575534671600415761592036638782149238589216364537324852949945040681402121639334168359469775197480082219300494718790668128952017249229598240110247519203837818329389442607913079807491137582979149493834267542073805098330110351851825185142042983484613946862283332072609969582390402452663246558544938042652377782100843207465890183181550674742329199278004587405104510816996223734995226440959693370964709838235922069164112103701293337463421501068170496572115071171788927049373610034299096387873634754910408032090488953228408914069044590277635463904524727158763325072934798150416961274433509592346492480428863955798578477340575666933149732629781395236004322753935389994050374804615191132877077656903165688185309588504364120367954779696038779108592416770709546326784026576733011357742631833364047035887144453179520260350545610556259256582602747940150026997586075114539207454346991166337313967609605349261518571556048587208469539049175273573216236673254757757354608075497085971543625246294382788357824291045131529858511335748482371111587038206188807306941331639455594439975772909017805639586733498995091847344191405987007255787855224356190444761697986206297217453338594015918143035075311562306603867864666334007460394864324807344197243731183878590888250523171445550341520956588271703937816671298702373559024948418544235864206221769104623595213359923847233416007326914539971098652943906094845276405525654104034427809476611708474545478620969591307446932000908155724705216416118802819112093486518475466807694939561831014421102649750551672890300925676501010166376718117885308561686255203547345520554933879678433087106336122603818975032979630175298935315283327056759022050655526871753867309855580454508097044164285421824310911560229655363047231515756459830941487727882738393262161801777834448234715670643543091422914573330981284096862408016774453756427466853621129776770267998900452095391834765310345190200527771687821533579174021856500671416647535153932821365168908125305517158499162294663829340064539503742285900302715426444938410049140879051875235169524451321347537990470101414924521090522958477350157784592310853769748695412714579869700734890308996359796742471203394041693762291680991353418390896908089984332585155731808953631640830699009377895861903716534225971453938471612841094610687222341142596074260125117219120734667303840399013528596003989618327121699282817877369750407380313672592009135054833674503716150599271981663205142914008750478984171411951423162373990179691889500389704064953284710120773626672368871940880961458912113110348955018723148348338326846765831562197140272202329498205126316187852107109906431364528048241873937027691393669469568942917998710166877142931667639231768848545413354789805895068402176997593542593596441008293295773100182566767447417470424523090018758326515725632780170502937309868795805924786836163365099692476613949144414491450141787375239478440228864275293737937381286576263462196587816128194495798240985953917775286880853663834384418724006459283663992070299056882891920227641294309149306429392552516736312026710808223338500944590884955359075710945708491668804847315340592863108011391631209047582855486342359567435914944120212128363185583589484282322420915221122096031317428712037426549536446477972699368735268525871404160839498999000314517066456872356743633396962470473857448446936370675100813192332060767372990588501421252795070573568635862407800337374443131303862366918840949765129151015563200110383077984442221379538755141947861236723173857056193761496207366267345545674894647080273482765328616860755036761903349396441059448059889879130459519642262771403789391947247363749224909642893485288437289532272434887099634171900196563838399412040100215177583366635351178928153464071445729020115742762459567726719390171272706378048008788290769625140816269903845178113737400135302774530284500372707182858852223232170978568984635599346557116813250672706454190570762033484791429369520552044174198112797045005137036206125771793367958755664107300670251252213372868029721597674825173176826053835022586667703903448880698790126865019330000354176074307494548490217372713569775111422787073113102011679951773053785970725211151147364540288355361188072593299795920999493968672138862557083174985721059260903377074443591626733925932339668707513430316185151939913045758822113698734737378798234255201258031739769231638681726968843487208168133136943968649751324493016160262105447155309916621738861844748903630102282336817182193956996269997757830444657920367738908227088175109050359551318586334776539863643696490019051087920929029881650375196175882328547421885991319235455266376644823030613872724017906650433792724744251320520249486228747186482731579660824768248783649974268949680979070859438909555211819879469772826293216912593114308971564018018549500350227761976844962982448615661791504627203742664327371539657131768925785662425080195669866825275684609447737830782474163424749095473249212393039749143565136141093516659956756728792242690832790893106786891973711532979083644029922802757076731512832098151915358361631986378941583388665342228456648395761548121703096739178560301268086353035551594313615184034113061800501828623444718780902921612367429820416204457035907452633729584838668680401134379205291864505101064725860435033991165901415872564441191033337902672536182388373256403821201298063823249650042390155644741018439918064786756040812870833395450145297123830693594525227326958656908286147952679124615647721743969532581402220639026191883279168924911785909474606833859285685902188390155909039822189053170077792503027184189793808008703340533049348544889071378181032919508759786593325652454394223421568847015933527353431947722743067784114066146551242808363199829202158563205171947123927029667865308935200643285377428203914579487564966827904096379819932341774677809679386670168910129107435037178835119045033884854832734695827773442076621642970241789483070057249426469380902703318410051617983488098672229601222135507102966136605353334485213989989324957392489620381280906598614595228710072765338233317335603843658615091861958034996875087020499829462507033067773611369657302940169606806751052116606639302136255945403662901996173568491951751314254662454289844393018391082424258004888541126669580027033397276879400462304645465711509287691238536546577246366739861162009519124661543040732177099695938269237073883428477759112576367247485348699973777443116936552484719411169052294034825145554975977345923830898615758953568305973897547814028609712719635480834484517629970472447865358568433499449800945585292030418431590665421417691745984788443008358390989643568276555396801730661211657415275895888552569154683116907586255991060620640768179233427358487591557131938206152866479977923739858490509949264676224828052529201942247013046035913493442579988014674253264559317717906859629364159969606284030666511181777925400649623238124780463868046870182897416942394538285227414837361855456604419218778364938491195677987302557430721216531898808156684869763604483277246445816054219610202466707714360228343219602621464396975235287336341463194138556492985581328284393568631392474576390228064339761912687682160922655668631410474484614804655013331619230389853491801464892518364896614372129040321803780543191992257670976726429651539141628072190323007431660298819140663563975310512846902441925852145994575737804475234007180746665496660178440334027362037684076093015205951903306059014308767832426074828897109004547661452267284061838455910500684898827218456546999386648785221038717636745866752978974167492186850259408302678398362062685335267960804737518669524028508292347537406561313327521798579242287173833076758597746613288110235520993165771729669857357778098332757112490949886454235998473622545285924724293863848282138227743700720948161704850470677500701323506283015003749439981985922570394698693500139002689423424489919091417885082653340381834656101161566825058376674243630498409091385380917472401060675321683523383955532595878938011581099364623119222733113437135563639689292279475635013271669696399781634758730708655351675890055208161485417370186734829526939629875882313654259500482275073597950028192643451386947201754271126118513504441693984122498349243582197570908647976776205501824914128194317927762497625253505396847547632952893744591853801408823572201438918159374778321865990915963718545190472632723275989403393215942531066050366630320311798152777888127106112892523725426737972238226202648630365155391811347581772602063855596903930084663667230904428532788017893589879009342773235889070245586085605141725962927597747034278128819719319906698678164513419527989695388027685962957240400021368997144880120712620673615661400821737416597414233906413835349114341751832122370662921281873715027582583753809925968497147329160708110435720653583374467000884328366219239569282547472664286327904365904414029863577353538932041199836236637111086942078120154865531037632835244732634728839353329562426786715100443415788998990148178279304322819024918938173148473200328610928121239433120649750914399966414700398329582008701423417755765262176485036528712215421044883131716463911989264035010862750881832154145038790244827998437740483276659350250377757635239750809771555065519231579111454304825120704120515386341879165457300413598588026202127013277984297453375772293212364407425630822379517471794101092216750730364090593213711566982756740738448063032178445578042524726252323132399142414533831998612734615386499120985745237164324144740147069647710132110875051398490257186868012799038290824863548234474920579226183308303961363863508547682416838305349121575313942241834968140042328130897993636376267400970251601722609603695262574502554983183280422188956180525049742241528395418697119547366030966698464709106783888870187315416229932900819619856477756950437494994551963361518504737609518875735689026469642889246696449419528347275184798865825396615503258496554877971447420238044601746528737486604341424015693603785007028113018903177360165082393495026375626370839256317293274009765721263033678308591153468907853256562445888293879825953534403247515112899595902025518790878019907219964200471092968197795007816505538221506435950713761726390251213098988797144978262599886377471065427582430985417869521200211906533176981079125761959651517179376738802431083750465974000581401329390441679910915076597874885713041956953261540974620640085835962348439010200026203586169009444665292415802036175008729184482840988357324253384153424662042919002514636118436402433845917328452927918877847157420249413531879186288815201282409095723494409903264026970426051216049313134268599295875630234466509840035719092711723935560697770937006370126583272817046961941778733986977360633569014869091155230206728324517473421675861480480609702615887277110573360841600420984449133947628599041522753959325964370134595332597178015034000203291674683819815675819771121184827836206815875045010309009281165406246596382616960026989152103485312658072656222941619402482262457352781690615092977071271360918776403188322177867586749657852430652270914391492589822994957840625479546506414685545080869812522926783120655749683170594226909630064015387338022378376705413617208637538241642306548549300185797198577576761750221852805869092773313358712216063354356752419348686831382918523410583513431465561804400246329081221463073264048469314480745709578905721693091086396698262693906362574879933754657893614434452815467473945898494567765238952610856447521605493816663339925157077069375939113008281777525292496337363465299948488419862497488946577137281162620760950716231816232349893426703588037043748690001388789703686913991986899380631216336793836452021604413630537249781046421552428734657397092772818532337299169257711067088918310196742574763613307755163921981530250066708535780763419721150247382083325478370385247645665555490106622394915680270761668087895470033354638448772482781065440330521833199983732434864599099436581202987357135956231115384252368018716695603199040278897676210020662801733379545884896126073740903846294601095516587505300847729851909286170020559778164809866964786567572690094306175001547458738762873106767791686212301690999644484995646939240873345207832923184318847558955260421181592765449789234888377047011332037767339800399010417305537365666548785560466531044348981407097044030268681117066912591133454065417091289816288586748409170604492401808969252004676748399484467408166501076541556221894168710080957189853411029827992921587387943474418325149096424411779707932716539975037295064821402379599635151445086193113744212315929708294168143131596983046856599204388120541270316793012877220988875902389253306347986788061803546833987452979631886202739610621419609583459322708158556789837374029318742081859435140719549786914498339152258476949817238525651692636694357382891925980128912466196016715801474435848912021418064490507085291294404364252641959662720844208790644233086015673117035341395848927394969105706070533261147218539993711253103227618878274960116849544018898448975145363570360808658570600500059071138812566929109063333575962527215311457485532944202727311547545044005806235454287424815675299114959170038122445859732594784340204764832151347629934991770647602341567683864761252942577640166525343739520091630260957793934163342361253023015178763525565415689321404579787411036470773008199439735697721579077725486646485802486394692363501036732462080397213527298857930128273521581787201517351549775831541899924857877461270281697137324346983029712889269414168509526447660318349128543979465915903850233998821542252690550565864645624463220401784195797654047406373621393547382928145908567855313036030567834949847913011184031805524780574883919735147455824370327078992889688840105881611321045838888437606803932378535140374061148857030908939170186238486002845455037721525376550317006464510364323406560342903520074857791943390800598670550394763112833172657639954128605244169499956228248851641038247371960104657167219270267321671583944086237777995335539790650101079101603143446102114159641410960071180825436433178035550489140189325309612296839869099549265967778540480512238549927225104246090344081113271774456485611833816067458293954832940519489085155333087532254427516001925380999088108747928978034296799213067447840223484991212233948583890360075622695620419126802493485546555426673352574680959441929988476014682843978798540030343703054868551637112105177482135718895300067377307073001170184583753720027927502223365420263507953503593888709523530689526936192162677217130899380037646956668230230229012623884621080961165807895038233210792067701064599168003761132133866124913575182731002285963497858327998404006833000263772733652813406866271548690934122951072062087449275471786580249728183616792940226981318148831502934014120009830814615710420383572987552138624194255104880264760686057210687078254752216725596295801990623657798205313542826764129015512482183124934194994442916536904365037068989353739049618481006934199716341421182990196971972810917588979461838290080854552944908076848474801772876841650340248435314880794002324129676495601943559380833012276895827631626318505382377521472262004954823195437006956170177835216479220491138285100465011048144044077628616339103891853756409071954650416767383703125881744935264581527303923143882693679410934931567133586060615426751276286401934487200253970801713551861572954538379734758356585366757785367885114661999229120237499604476357356689694814613687274959050267159552287892999696885699027316160282696956451032117512536561098950603870712469699070659177824083681387899551454918110768875634043159253787096005294739084727704835265458560364564796028403895877173473608635457974545325706329024396774396398150949140718653043737094451089337110645512172357347972675373324929871705275639115524402971192967642754404011402844566683934859508969509955773808470029619361761299005031828489609562345274989143276230958753841738840094242834565577980938533098882864631078010704540316857313614251079751020606542873655309685440464598025891802457828531400141846167440813768987310578614914876211073166112964365191788298663525825771303548022540059547711999052104465880193794167677266246906824251626180635615529635000219480753069124622231124650478509245575998370448847572241632648462062936393262378504640739265294732731900409129644154907158727282412932400527999926473710954690228252586613483719169103357429166764305902995064293897169289302433449648417813983066163633864782575580044501638919486116445559539318907074471231984777717033831041104042292112187276205982129297505143845436840241133833863674047286037766032932166622483435172200892686359877407175340743821337264683768488323790636411736431884631824058144804688847933997030428510408360883955654430835529528704175037084891521265225980942241991332842464369780263582763191254990210717569798473639979429827994981201914124895235134924223072533883443323810720964401874559728164614562155873900124452290577195607209690542983273766629406137332171465918743202689507576271950836374168369695953571530350694455911775100946895026651999014922026239036159148736448373860702570038851767314623264067058501292051873764285863075286979519085298406877832109970258802267151616845374145951143811133230040314484594041843431640711786661257309983641891257721209313154921298107302163241968275736780873202315889137235698443413143625568231194595796273732655929302600798455671921421983719035043221360758098136649328198136816856051439335081051921517885715968967498586887431007740619223964565533526159128004401106834632999780679819551172568709153770640105042407509146104237131139103182878718403183186439950458847761553383100281940658693688238588385675833349334524895723592905473696335383923037501183609330468597309279517954792663599053006865805196178083622785760889973684049471902635716169276273896958822726892813835629201392728392714437115764918582575232287440888738771281076132581778169842962671142009739558413462547009667327965825791864501988156626072227907519756241305198261973884403432982964872876202456003236094454732626055542916737279280617135584797225362130040046928692694193162352411740313983744616707977516650633766550015539666551882645011944381415572726673785401942281838779183911705418262283333382788922737053537667177911846653345150461041600240937912099767816611774035565379633920184696891679525286253645197238102335922923565890083901088239757334727132266067175923816036629312037926955749150096025786618340537406534790537219865422424715533152269666077003491152957816102925794613316022242690530607041818332011146808071827019545995207795293311215063160197640291205223387481332323429565394404336421089857552882079228226215845368971204134335544888414883204932211428460878952172886973909840824168141561480989972633352114435307352421335979345870987400401458320844235006214547725819212599320269073917345612620169669662709467143852161686933414470137884077975530079856487489889122582150137475307652329789225327958594416284426609980924360279481276079776131576188940432244218369893574979187189525693065742983302053542240600445684957881684526776537652581142532566916138935990265001538665664271880652400764109304495346873745902990925647352384074268898235094512734049597321508104136262380640219428883570010797111926122990993340385994650414178018205206496422545727301061261414121058710544624053029076510861319360726431041592821956211694980121247779793479926011861143432068926998762017151668862402390248330501666535828898713332257876324585140405109101314937728126159652613978659180834831497374174275272114696279981685536185456486072119765260810638186698330324566225092512427444415456153747601182018141253930774417766463317007425400134091317038245756943755829786801025446933390198641346443143751729066905040067244549930422890075322375900876762260315510904597470514779615437460503216012696626824880226707861006274393240272129013611126463401871663624914144506807609023477030130043249721475165880751287553040414834304488704176777584347756728028759349842232782416111934669605848259798718518188850672586669724778720813087343311513333699096886527810122145493856215782884098865961825659085462612574057786856024172015232307394276262082539045971406424332203271036867411537623200465049567963959060096514644987796408621649376889774811565243136358512117153423340874379639917391477422698752272551338765263907644898321720297672254118924937236659089176243854925425091066928208153298019925710930877014512134434593363463881477244618206660853059444484948534924577376789101572666623620300938232551042381959157129833798226837496599384051482151805368291640416888656445370085887126411917794785054213888427387671013405143295587944968677971632095114335756640885659466638148185982201636849617381419853017785843772707977335607921174480092909209125656942793422700819482313203695245908688648091400638040135689961264058155679999282404408971598349232574531544584299267235573598564348169515736424645994711681828682217484963950024925807471227306232826330204128964706248476165052638643742267353694725480950221264982467290776077009754063343970678275746004620863502252842362766050548464489659617254579744970852291329982271645436213102676005021894977702082300889529453983125363384376221400909109341493702364493614490575847228592990761809781329849299573150671967615527128725653812819826480946379389918838475110648881140599977726367942338478975924813661153517022285312748671544200188155871901039488263051454639511990484574805680369703337430861724703950690786480546701842762371146670025267077982687087388665175413041596860352563826743520867769540124922012974954094450572220213896539390016647618681988464061322172354063348210680221174830847401259609637713093642970108481981609536563863944626638628444976697023092020591726067323210438348458127286897042480301464215217550844170203064047204557277364664387048719952716855792244361493282798762559791825062250705678429093185931840570828579970755060059488821179874944870892569637296756881750552488563994661580121232674882361227041730917742700167833248360081985999820155351937227292377004238348882663729139807149980870635848127471586782077052046268532762202759464536002980308050619315202217366223925800273751157950011494927087493867397867759995931514798697262182765106058501077640879698856420820492523640461453294655292492493426864338627514799822739400060830137863174726548707714366793554190373404222241691728016743562321289145744166367726820430528545275410734816136345322810184415861550729799884413038013933518461485398133702646649128939179232704492983346232071647696440187691948416817641408989468304244143334669204888221967667209692886115656762081002702727656016470337371337538938574861094656232612967678660759915913146080558076447203344148109091572777631757349250684597938725122512642420207665054264452388136115116841717383715236300204189319558417409921671816588083457648788225597243276642212346975540667359271333288786156822725016066948558943703540323238806759540668497348316943223817163288543008908857154516722180755080847851780296349409047200678425059871674195048751935445341795486480774639861626332427798017838998617706808050046149268803308420578951587955671393301690663199965744878485838977950639603012511932095596271523714795275367378985186744365258020333431484409656626295683131584037287267689205361010814007617336995473491256740935082875907440599098004362841310754333604745892049793150401073160235086070549182837743695095459701106521751458851999561154230802383553289531790781751164972521183915198517920658749784558344002893967559117171560869322857224326857505756418080393298340377796986487010572517282730647216126425343407955216004624659316981180408343574761483325300991798978561408805022535531149674233781319638289783186971692349618532193970026992500936354663765876211646380716158904676815161728208643879845312603123857768636424944663153597787349328390982910997740587590684463956465885250011707694442932103695481434248557476807434389316854540203982822203273775764101828890485357627439918040804836620141731237419151354161653572784784630774481418970425806415786752811598221684342850530597806212815224127678247052715808719148910328853448144431980088597197620726844337370158544103766714384644428943711593198772370303352910341681600630270641847423538637989027921767880733464714654977449739207575036728562197912601128497028265501872323313751962851331682722020831288887016307363608478199697672049186851432588646817636744985055802341178691247037895823898463456820262761406475520614153014126670185015885693768485981827665560467101987486814832808328319903551613118376660746635211589378718339460595693796216409736794551947725910884452993836829017028027890444236532506780637457344007623231392862035461846388559817339756231089472362854845452721613792707215137570823286342495105255277906557991761805744106567360475379906204348368083822394802775769810218730732422381304743166698370934061848299905850877659250010102773940297823626097606294164100295658853312438084073307259273533031471257466054316220665594188892320766991984904261059920905681692293860931718080803183640359291327422613121156278865895929601225015883020272035406400308679355697404828027021624183773646785636377442442965896319410839174185540759251344847689245209291879369009741578935967774348781798961042442480051585811018925432410600733352637028459929249194578496962613225458956324497518267551168906021620414637977991588841293769418995795493474529609364209135825051348168882951379576885241625754794142772356806473312627928326252635827238743599655921709919499215773690285880288534673588951572007996965833633893467896505235344412903244198879836504425535644475254154228100936994782421562076790556507299577884358158197616845752630460757945078229063938596377570864304973788151313268385484395217636881698373783300382416466929063337468883372109700053124119206593941973226731971358483962081693649296774638496214695306574458003328667273755207874098413652063518163208739444112525345415070343014698306416649936620731526863358666423084470200589009918236409079520481538484279663840710744091170687479930149960601408928775492034228962726297922206845193113870624952940891138739562384621398656748022602819007354830856398505382255804678011778036481512588361877298396758001545867088726698208595562290047450524915678970565465491094843221127755461551379285902168319266600330441734029301689044691147853442162968081482617364817355725882132531125132056472150835167439560717108604266494358275282713393052620034121428807970306572384683417729865078886320171248958953412165372884024942491119587386008400728981842042484949084616470407494740558121326583804604587941595735212189210192874120781772413896554250654400362250386221382239198932729197486501915287636648617388721679698630686576559227229933011979177669704444985198726668430817001090789450504050749486069234976808891235896424969997484690716813746261720785557181047781819625893013795589189332104468624017631706783745519035037697536684720790477836000366071201817832020769857378212939325616504938952716313838480836527606142758982333116188593169146902100435498499307183472188629130882403000317442773991662188900096755504086787750870807714210422127896801982940126999097732510461807639284714872162753408029297416111128437725578420030217670310523415818992202318565909498708971010623242875164204591641014347580166053798271469721631955634806417665740439336764086106717212778103902464704592584685349216218840423916825184065591051221584150514610754307118373828451806034470911919571673577228153896212630728131214717401647930600066821397026105774334756266683943610556785652280270432658580373519690211336047021730054519515171596961823948587478339706648660847203782206509987734572741105000929743167243969743109938604415401418500568898175681727931631585642001675537361702815698854200268744122914292520284797562462115492054017537662642948071435895567013962186829134160440657622354419277567723934769132952646715403503999220766388429121264434216392474311475925384712270000553441506797729159175131236685436698773306846318659117359404740119544833201518333423490235707369686768450754242280220172036510685147436413190776088300253394650018863810363981874507097200427225350801670456055169262472632391013447192763037316620124683227426988374844340069271918400718663221837956603402275669885833688057273335409171257486681567423648626741067487801590398692677738040371654306755848851574306868759817719284314850569048708256207447676576284073848415404083242575902969838795993471486057624832340816092249379159496585804380731670977150126334451787215282755817364403917310980234094431161523765729832856277191714319388338258565187600900687754069472133026480466043420314368966151749976356286578520665882688514084996434360629480173732662516877996232413175234818628310923446671691898612960168984358953248029194092542354341177748859527996110998885274990553176337572279271826847657456007473377974074901450860685451006627476137633189253608940439161955317487422496352878134222462690527004284513031142260165699683203920314543983583786326075765963734067517258698819129080160848756038658924077594887683112160992019964507581010870781650093584568441307873219370173062920943209957618081588024677839060510964704392924692607581279527303177844067794438788638916336686776513003089519913346842347978878582805252063741692912977410533656019632508263706294782938603704808347975219830826552709410751158634412459290973902073758704456200138307405561155142012438024930574539679544270667190698605570597083890220310626188384543550494413988836902203562316726556342441910206497632886458991597682744459587966033958449199755212184714772028060756044933509600206490384510118940883443946636379474836039272294676213567585214627672945475480846097443807952444585904897681931970993291226857306847455846828782827803071274786195430811947787901050615423666857912665932617177802443299087120668610326864393960676590764363398306324646329798799026483595528317077556454908829586741485438967411255689600685419114572371372018294806177350912926792691787762723282177882929383851909629162935020746363473532519869258802171341898537568581192196558541607572715748724449320142755880080571080383343981112691789684189781103588867923711646641755749653765171460802754093153952200780029172257442511766188159606787654969438878210698526447071160177885539317320267980824616606513504998253943855461905019836583977130421954278234852961382031857998324728112450827227064828473280731163833219834709839810061618247658533597805831215863972661749639109982782118425920723577531315311099515846242000077456489478066422012504457678956605167916123259760921052743792416367754387413913547886419329004230560322080362846139902293534773030783288520575388511468760023094855988605160011535221569415103264404117453232245950084090172620950955060899512176855194376011869095554128288617640551696170727698673294723222375215538655380518503195722992112617708743324689447807405238023566225875226263598462735290067856200302477944003748140545488136989783281592767933632425911118385446454638536641058413194185818971363000080252053253222707471131706963157430254339627796582146376411640668835843482381045928353787049157281083423648468293702100337089283012179387069089730037603940021463576572121976418837888553073823600599864165345823930369500063795639946482093050275139694832330833739625360246871190580530605493686160899349579204954047255507390845950719109433559327781303734527207064817959887342694552046134366906974828920755591275241518981618993359890896371718691756000380236233846046561049238225315141856018841459626894082773141414879657428132539618605882210809107624755605281277966542767340290143132804941279850578891024497450261870814928807999382515783455220291862584947831749290115647446940348070541275455932338311581983485417892582751559549732793182048561049397311251416528818562364926196921255664226921268137297541642603509513145642770483625695302516178813252515661760499557506200481794099250177632646251234066497890352019869444799976704904116507753940050554311735783990572221611817248129243250659853134071923684884754638698093011915573313269570285866253918601523402644030298970569894175721562918706295572331575744839697509934685035586167742680980827131593772462553220528885905112865445466788250958325196494232621277999462660985891619167349869802303850756864342536168082828969194111841290155255129108710356232374153911413109631550617658188595171083696806195474965511105009496679206817183868620202019079780570825088144757489449097186739613035357582754728686688246251404693488831790031070818783158345703186070583581005147278875246988168296010494397998033504804590662616856441216197775507670611394787692817181304131698874118033728787997859347199548485840875968077743944372421048666504002487275395544844728866149618960093905779613379833295436200288106043706321332953044434106301143890676466213789019406145511519489013465258810347062499385763967432032085933413589766181638723247837033371003400435771330736440966736357595964877273119891320145758792000558411150210796479229116709489752716364809156372734480926061791661383382023809910977247677230088720346647713170761349536156415589822148264895259957533678573935445920109776397284672972929744967092556921826729473457325601658683496265744895872523377924117632997141756473394436041533241615755926741816162371871817840814830220903233843784975734495789241625738619607478420626646564403537162252402130619568612034605047419938359600860284780728167831187745960520105832539005750787832415348416391018148973616654389642198009472127656783058452288084477319206581991028436952435127820029188449304492018516979520829933004158454406163809397621332194028393077058336071690922356410207638236238683431747502166833794637901433730290844418559117871241336691963697273308949282944733198016240332561003198842868411118921631375533718332830386074850167205941594135911289089009580435398069513042365693521368749550315618927230940654141841827885936003999596855855031542214759305306339289277581403084248815736328055872032058617777062243592246824211469919665200054787447118689113374854751504287968481540567130748568701344814370576750322926858241067374171739921806645116473552175360399700836514794582792407393143737094388613351649069711279760051014683723067641216652174311099573994035547351019159416841420001958217913473056768564710143989767221545196683780446199551454489236877073187438690477414144422915646542091913072362636711211867469801589835060570926514639109905328169608698981464308759963737605688172281537109291513370261293607475950299919251716142181148938276956774707293936724330576403495230550229047694931647539594272264554216549046863018725886035771246631653465786864218765516419540284342669851710411741609488491591976950195570742399676030219244277969749073504143287713884708031899552197330845891126952520157554795928133941018201025763054492316474665049162499064509633428746893659643317523210889506624199658037131189909671846000875359003179438335673838856426295423992260180810638967063725983419798309499263772712297807946033865709568668280216343380796578712672332232081982142377534914487120672111078234074433528598000959491704699264732387311590002578161561561428479055716494326171973184762651367167600246326176996715178425926461688372679169040689189210708137669516060900063303547625398774076828012421601167033013804184437140187960589441111005009060973215438684356129464307325071545949806738464023502425075086428874105767317033227441812799097979288118887850861890362247343238281643794495110849092372275396046096792153754473155009229944854235100957533725693758389520155218771189017940148049110654807839599871102392868055976295534387053827221233351602226484270536626135840471620357905125196863283582812351226896374849871968456297845777837194011857652571996162312365135035955853695481983594519647427298552255290757417598412875427564342750599201661151975337158166530352228141832865574000051023671285657603050589624297227034584060329475981582394578928188108051525369949416845433724459983271522386133662218095983049188048508975351155529488069666880893892829669618175537486165172880774876305740102651814307525160760951223892516323454548979351910094769392818831012482468679323849191439570699162415295532929612165054802460997669896258938116013147652681331909473068711825408302345637979580165152882686098836845939034333400672209545804515379558313639799412915047050994162469229212983114354514013178177917303797399572023595391075255221863675153547625308486361351290798882621906525501027910357974744206589229917050964734493354238785214379551794041297350700907128124017466434357067288976294440187557321348978225126449060538519483320071804052490956434961318191321122913824829215468723559540732245911236643349903677277905964225206213057877429260309972599330555531239775349357543966325401145012769518135940256049841887941823584191156526783837898470867424350526824421538297506323844385897951822391720247543863666466273315231650241400946057332309447388361731238595000756417713424078250946090177771029510236864002931061252827395328707691177969140125951673479163436441210173319528306211392495095994327738251431052693238003997626844629773785855775260507993727917253985298282712153224964406415096756298047327975757674920624519885209816164185135789685910871890353898836127221468847817697023159115968053287369415954322307883286331596984689526937577835909089532690726533210263094766652301735761903688338491427418845491682453402114075385946670562940027101960268094097067404657028333633782922075438550919710006829693691077630706598727517968825322083978211625969675328575854323614423592288380512041245344613223582280581953467592716481690408158559223966240420505705814525054381380689502112425275966910060504047189797632825049591412825968640118222403572057645969260759751236213747150608079201346976450516729582715847204399473210368795199577321986799060891970963124154318552707038505189912695350004976535447797965761081766900231700835643926382452219810138389632524008369739805045750565587438560965090424371278209375292939571548053614263975972479284570559284192239372551021396582844522008773443880696902065254920665223805101511307663037727892698030830710549692523047718856747202715509981144413781588313624673092412876825329722203757024207890891268289489613051037222551456583763541731373490125426185015399490329054306371319772594619731542253483322281348329857410009418809924121494894460374835029911812646794027142616883230551013087046859586967694869802635968468741949345169137635953670585674552339198884666960606749581061972468849629747132149484571154824789945596347110381085450998099523244544894562521311470806724017461190395162180841634913347294357763027380607456677366002293360256001161778770479479509441541829536775570531701366614170296819739677951045468904740791296407491383943283018464509922229241207866052766471504423550335888685015227467130232904588163181455404887363023983539281477414298182609659999966976319166060561189735002553894261407917777108312140165718846546824225132553525561732109679306445121973179130506895932118731697707717612781247380442775673800495040614113238775044988257399855413823102710556866193946517716253881048258351393001813246100697602511752606963372866616620367675938631314593712376337381480820185211173008460110602094012052162297116881752098213621666536062099103368007257332964869433801645608893229624541074404914911122466271624467095024426654933702140257491430453296078203274952509840296503310356033527574424042339505645369286392938747261318146728511119479358978777384968755354021577761907612616322681006353417102929418008150712662148248435273529913382711963727213646347232105095047234586876202307348516641217224081095130670064368257309801906112323716912548351656210690327522803933685174593295385044786453429771468577196854173338155813871016400681367998129070514388199300773398669306179233884621402381235410566570531969160903236443893728263728948390237535500165268226611515926982201785177037982013102881755290195815751693726051869175638804929023257034458558203347603146850415036743288843636932064623738080506975083878891565387121108785671738730693045540853818331519270369688747815351754082207541971589733930348590596362235081952275016679137914906205582370130839481992758756812986887205227115456453084051653735263090039809616403446957058313633685920935009224504313214183333047554104624759165969079478107642308562249650853346521134141955950271314517570854276442090601377649014304383425892022244197376731379583805892631970952898408594172606122993735411808099564304232878110000407792551706122138750536203775132335931871219022051296989289950473396356467032160752271996636245644291244051804948507428261775249608578012720905320985467694580867202191617393530553345500511805718633345810678364017225334103441167557625889153422672893924522897437851343647825873100458819247544440239066277717275477620991922652700542791654383881582799790339367271911151474699365539532159834264616610306050372277273927896091358329320519329364616956531898161483756727498879394441956356540490589187706443799408129490982124235469852677126183307179983476368306123013488205040199640948240893745366494521537441933137975120928311862150488948477669537163959307520237431726362831407846899569071222581210228477200970929871279498135083051747215107280331596026495167759070207112393019481665399778222088757051714765827290000702237712760789345170032876623749650318383900225842545155759162868735793924816581942619181766595906951333442175342912130600623329819078388941455920506008772750263756760345998465756254026937202215511102178891008071034219677703399675919068230552599640325817667066313321070289411071334426687599230485692430691162666544643277547324964204545142533136332335157138955043921039657158087453552729345529262027349915834981263636987161883001339505942993808380642005160753433988295517198865168351149293440049299627423465717754869632198003977474516818750534019030797250994238245163382805845773192932854309516113697089604344365762138747827819530298626334113682088284132048021403196446490480574862238251029454199571487683523731769999079270993457901840519586845211007707264205787575845043072396003795692173604111563073677050511783211800782712178625919498635076456718517339115952562087313283334641765134076911840207561293044766955403450089184645466937262481625964807674837925093820396011408606734241851892385315577520185995653398718043047525965420386519073765037079957487905367689757638639623298734858465408040400323541353904985570845580993048222234920779510698172525295562156363925619320845878839110053636677994804840802752572078338955340549589282607179051171815732552603861694025040909239140668995757525244212006008335863872898669886636871552281297545093271040524036745585287651564470063593425356340099413544755934439055797372873402762732304830570404311637741494128804010412299405984747909048767128636596955264582189285096276033358638423371560374784743456682510692506410486409400376534443110221299422423548510668643420201921542338827886888813290157855457970104230140281624251718293100576225295299673470926573090527540041819088507161862173976903733374021721949524915509625436840127094738311140364784575754128490717934152748020735550401396436198429765582249527756921442821167190375508195765773272640102381226535723496648447611150172059607206023258368133777432342402130054048768725669336818402627856098074591348099589074833032235749268525389169985125093864645046159952717582220870088170243440488251393738374150744592481333489519919503582975501268864773418248874921208804929385041019608770824704112234225759783119117813380659274018007306499866516193598390639431582078212593058137628397569185914243387998867996575673502237330878688247890956004149164377914637956399820299972062811219308181191532735487391072169195639556653242325633931520072161086321839986131422289436303833995096877861938284196082030725829341063764909873413174102457152295261176398861925390267697123788499176652548935210918019585019592224439699346550003953264676558861326940172946151327910509785586460586211980400986345850504128571002918379839491457433509398623492054627659163581706765815911526202683674777965298583255453847953887699565435412919404076295578437214116997952285150483600974320799392085819298264671013763978050149811856811444782477173988917363384992115955463611811736874038648122825758435718493197538594712553693528266917260170618643066717145780927642104269752150880352021667204623396658487575073542057643344142769222252868013330093370283256242788134107126396868063172769647478829547482628834328574876567483040242307457265879538674629231876790494258373338647731762051164637784717782256829850908698790389692621136597613212866500583370354896830897839623482321766082894558403847847437473829380136052044083364806844475333353049081971248550413532489822495369539295397593498515959041853195445975580149170628620277159878075459719206232270781049842800367870573003669283495380603120124172048298458592462548322733432128458787870757312538037763147046451004901507405232892236083429831546645397017691803329932946906230127055700231672837386273648202951394079325050463110315669624176100540184218293866730723026641772229543687947506311952811078709574067355140654693867583725544649265377719325956316367053837148887385824264759744135898347503952572932031068004817668867925903133155591149396383372688571012370950790111821614583996835578682739091403910487707295414613948614513994205690960511740627653566466259175353969358547331451085364546300621197866345568638980400351096593196969017357428801384991705719895499985489834241762892702649937719653985986177975783058767700048644857268183737928093876405397138685683697080575014872372594956365122320180634675917526920263883386156431079890446320423915986379235464069824019450777253960922629222554481735964411254216889853555914090120194051281555533262895466841438168028387847778325444991424182613580261540642050448820789611014811059918633805282667159007572849310063819578047844599731541756653026496330692031104571168928954851102631396338648715595401715422990071155043703009614982298892108604760539345645264301746891988741921372199462087812730163393335876900351896302546823140781387221308752845343669350086676156395488404895662760204558395519132910267303310979976036135298586806410048778028870043878907612472426076145552894665926144457352094319530784343952470962681805969382422862285557067788618018198530033201148551853675116575142957575022849911297173308842850126000430114904562655518046023375390001673879658091903595560699283728647766493375707024105370766890740052608173144783634866684617485964920108287377482854670387582778654913675257986136219543599050672278289146092905376656184709925818007803595233758713839625958804492040470079889861495248487935078522836352933247801086996311367130562244911678446800054724235939985627487606614198866841084599983864455942342347978594161177367401712510649440658065760681221299699391514927500750688294143795164399564831600965369823306641626265856170849125024351353357558806024026422334501920457091368502962314520650748637114009913275018886890833682807699366988022412544786922841827651569323719616973699131973740716460194829091893388450536455371154715358736962288953773541203219396149396796711089302864597648066151009056195122684251726542317078871294796123360973535821270886816486568809323767078665507859773409355173787037680514409266547350926851230736610672034770158743861650121460165843740568038284124153436318092813978629861440800283957751947796063687281419897946168728819237995330157531132418330975141833118879801310252875545082382394917723761270821943354802024194105250625847293222562846618881288363331030523908905601396340888970448463670431703552428807211524075364623356305832237246097485551474094674700411887563821387772455685971239524133319278229869892999427081964131785695723269453956898570613462584047555361567064728967356864503523922043165395952868808120412581082115067026337427356022846032187254475736049047586910933694600148651009564109381126916233413422347214087087373795040899308487111992717869186790278135552453321202283208675960923116476783105067640316988355245547503776973742497767647749646658205720724087299416441230811972461662563629908070553052448118493242752071678372323896325233441112833063525183012162498179055238062179872792778954180334483553065236520076735961956241512121743075349434494370811643915233158535991573047471673238193543170278745743809046880538990807605260634254699484489983581083652462295609657839002644280437731966531668967965601269631619616922344434664626617775905398742634645845407164836009682649127103408779544444130862702231064235851326412719062165327626326650372640549753842919850245030344758537092077060282430540771241475468240750865916298488054664608220256061001801901850376153328860478771302029649859694071469543634815641503143356135761941218983732688819910714492152034828332189337950539036913774196666459658474061914172413012360086169311747721220523771771340758409024285929976938622693691524910482877065630050209914891550222608950079697473744092651622100527585449222817451788579701216411545693006822522888419913586902853557587753349140292555419646025246118239290071410623883675552992082354308262015259724640769139411178711366984479489810738041446150009307145119419956420991649049171996391579326137800407428794542040404010898258617689672741963681032671136426787002952175106201588924578630307532353330049551728951017799057011604694595955710957653502951308508780456503779836964524492511669123979318972891550179277384665047730628509319531601604910101060920139429062154729242476887424606034914093408827345158999591746337688980256785165870677982952561362027687605889369181423738880746836224252571947355999063430690548331032644139735552806701941748451658717023759864637479674748945110458567218991334367223311431712142808091293623390944216224360667326524824603221975436803589533089958833809365218961738184026072890358623848609204719949383272245127359576419915135106167730528659498618591090574082606950059108198292893885394106011000852886309263826904621557601239094100784422101546378512075797878404362336433542086586335529775642844475349284867049166553194242041660234720942586991041947300368056031023224160363679582899129020279886953336153475573325855729197011705422309343680530804229788489488759102470648846618332988812848873536403683036489405910221778230382870154035647964366661461468499625476294564008603568731736683412167730288002782522661655848990592504779925951416967911911745413769329307066500314860485069748909920403689055310524377126184496300343204160157093624110792283412321716151160903127964944096454644047175580925146489797943573195118038847364540667172576486075045393861146528522544358918717524885857426207375870783606313058338950623115896324568421491441339635295862420998306958334732588474072151723990411823341291545463710790871931512371872078076779139402668671555021119255113989361184693581042552124892119148882033104992493233360356964954523656523650133908511959383301638033138371435312006754988601908408433709283202526678208183689219468794475781515510502745446826163865145371619292236367319923240243896414276384957680259504479618198984091589697002595408959175795963184457853874604548986458487774874287549606310604191605062736752937958412381857504449392914951309608293693210908732058943312249940086463990483823388302087519241818086006690907885361565473418201016807106338434890719034997715048316639336709898713798812265515750363803266403875746049522764593653021331912475399807913667197135015751448250496859357899104298501433521779921803064964966942106866110947175619332839270081378807246122285856614530343398191138783869164195107109910076771272229970593369261442957547726166965274143782952771177097763779346444561341242734428743110584519288186876198558297101429888815031685310327285989557785819959105917605174643332029442179310492591586298896011500017286342053156397246111435270942455318418966668198956593693811564446472012966171858258694471301069911169206584445661011496187766301177702775013864483873742028744208179473414974503832066644897548596679743994109267604433657316053362040996072111601518073534601240688743551912074280941159060776489367160092346835630058082391813064561865360911675907147271460920730588467128068656089952301602170484928864618577582644697984683146859766027988239109007977281546202687507901008660588717473899213003338118123777660884457458017760035216860819970271417617104501926044270334407023346360170407801582668768233768199126803287755322555073178435741024368107895092698880587079074807408393542439056602737274203789789489769588139184929003525530374587332429285718147403149334069466496158710055284456277743517559328485121328971308970742102209783805424920583736264772935843005637872527194341607163971878733838367101378674466237605584945050780721335993912116487733940286614618021758136661162436520864399567051526880768498327027404490561209030470795565959508821590907779620001553330776965821249628332957250918974743788030215410994429115230885929804617131285781286500251813328402904254435571028466430746672464376807860291863604657172079730547544367810697594661697750955151421437339419430091042576641549755022757288433487556889113513450216150001152494416438233078641785655508971157557165387013463002809742585423695076201023735662543607248193128287619019600170665981563950034578417038352989051431094675548257795565447888791374119734335434603146539033643839794913282807409719091868480056679312105036998897503728274800234189037711145875780910833754140781741652622523821089512355303286250403457733036904082140022458727209573470078142019584846960555923238853309447922256902808658957163969092587287678240272332712684667502154462500239890664921352070284814845000921514665502765347709879349404597052977374906381971104334310175712385727807507721437304384466902229702058269869053639651831667860678142455483325655729591739544994889811761127938277387289956731121841546552220766399882179283646410141867062441042778862998229234757353484409633363408695921325289749739365956369812944202844657024574834472761550047582210264680182530057857756254546164683537168169526884387428423872997541336923609258846633513340739870634630128528241451846989840670076196252186749591706030151926689888938027990212915816879808618306086659918558411513143110961142440519181718865732895007953329291945022866724052158146803502261814201835653723309583482919696614899618991178902957502364983854476836088302145343647036025335100598703517788526952716367340009937190243507026165635283432215539086024230778369565421565373945577142002033663132469303319340971903242659247512338834908733173656148998929431856047193668503940388758141094376944670338995065798423073537480683721199332261733498888003274694795496846492101437797025107563769330118335982489507141532437408322316922244286504501874676399998404068837150629743046068213550169583234935826236034411940275822338479166603985655472425383165333222314405567925133396568208884096698683147058952041162575896445626307518511417940157304980837858042368891218223525474418919400138250982872213074238771336210423465321528371044678651312245981685146321670674210894741342091399644670140812594027047049540951472992166521941901929025352657294561048667100032797074608763282267472337142258184729796302867543352145980869492660025874233194502808753773725240491594413186851110941932404466416420871318692568817926854735819236385652175237268420806366268909112575237919279303520536625837861241891262436807068346735007782128520213445075089864525699971885700689138764771370185371852443033709116127818158383539725407235600216836519299673748988971433008946354963734889093444387459705277978122962371531459062073554376022859834187977146514888972630669835021414409795974367757983316430410814398684161491535988512379028479532956525559781766380458288743564057224815956116753753256904796511681218916021965696577035925958179804911910141906586271760853752043504085305817510080423549860290591270500264057509742522338925530783881581662013263561551098011911727610958584650118263121496915853802513335618480787554027076116185233578722126490227300513876401268940271647237881622994800829092581399635214545281990032431215708446663749603834884472540173792618234434795235323057370056036809318792185396138546198734921650428496908310850834540589288578332540954091926354703532885765587954730557011490130930027752787223076951347986345130200841564255088117255764427701567683161513844388792828352671776350705619812827858558383888694759483092294856221646400412939454518408572567127501607461059230597331968258335572085577547763718624809801151488741829026759405711857662295353670507264045440986557304499512639184723198498949044453493106305959583351973846492055578053383648877385058633262701139695520481250504674306045215847495803179957909278653782178513491424665877997067273935002263113421669389793935457107452036931376624265135764058890759846825442677702141610150530489759495793916999806056844367956587072963021936220449105727432591400089680169566596882722216355956032235942481390564168879719215088673807441912701560280428514234600382776511174446671849236585069266549241052165460831147657715551647402470960420029066041083660861452132394261707985043275359319757177422855412324962889824112097188532798056674530753432252342958443832316759072272894958780917179720186486970506999805755411116084352783399983233295866978427053957111502797809407039793984651338319350958961840865989297276646759568546091441184723546581958536845150518826711684356903519817548942266063374775092555341712921020248780568792933131806690565559864623100232518940104186786781792378793582428596663654691751087270236859772772926779608674127630651506972412194152327194589309645145202194574196880684717696542372162787668045236818271339951443542856682655187317392221499175424574913123785523825525235264633175119728725258007023775154926866548721103087527192254089663354969838460379801618117996113855960065164702922172568907748194246115435720234543350499530208984138785193863997883897235206400108793045880745914761700483256660719543806442927965242480323796272048846429476863992085814681147686343506489639637934154392298628322324705239059906763445012456453457378180399430706786611744536300146513562720765695335960484963571218618526234240861389818643742585786297094699814186601170091997913497486426075714081353338847831908318752943688648958360549218215279244055803613403077750681556245805931827984001341053402010286454313507596748260666104174684769246309189431805051715574079606660538612899210714094267159126258978106699620006037058040582453625962258798461430552434056651296921856133911873966137260262258499061941251333324211132605222588608636423587836561452887280489067836760189947763631162363210553735375606853065441108770613215069297878395047552328406965226483495914498370625532692650702242865408690047206347833994191740561825152002269201626058149029665362320201176546075060159399796432521630506805690421149091966863204279840022878670505401090781095952075631179987621171633494755890201323887601585725811357160090805940333986169701550113858742565716431245806555388757446033414715580847189391011019445363772175454265100372226152672644435314095956683933078465442135229531102979330741030671592637169064041123863799879714992173528648859850289308093999927604298309820080587893795910671029121477603213483578725749509347359221667176021115647130580455197538961377449677030710323546406093734041445868521278332822994194209630988262478504398153171420640910917496265078906843109075888082846614258235314251709038322182037248739948540703268627009629585086052471619623632133196818979298273179462359167825926094079924416454030712598216502492487408060916366086889144559370603284142732561756840376472198163047818115777629197602996407752884146124334989629830667662346296266719538760278797588597147767475071497208503270415004277824452735802699515490277752183240612201341124536432803102836397852801659400132832955205961291027632327836987450967115805133405113628364748710839395999393724594487317374997558380884063720748511652347233848334849473867571983730426602671437204491316080586044367581761689927336939591275990271439394306795604015947919485340857727487349875218849805667592193837944357031972985623909254234136055818591079385098373276741606037278450551816335506687602139191402325217762357011224005608508494731692035869754178908569271482676367860530821187568151185008442071038713717355006426768793969105240513117748187377357435360738005352443652046430734520827343758860214538593803317847131688576981366431659847329771834283911636269481636139914918803783577983434785634902369994572520334737671901191036321668551478837801131938058188871693867733507801796394461809124751667601844172493135842894751055839000037382448189927302979629222591510387071611733225621642588196599646958345016203710922839167241279564075469673992300389103497907167009598085810823962729315345937096509232230430098912608855451078582347330760517568134595144007397554505703883569906000062785914820136930528352884572013527421481245914885080574101649564784092919637770058821546199752997113516449294980144544827481164612288426519766315778227116689790048549913178675334733683010755650517524052795983498520319429201089526026001903916643299702440100707102642401618445646776967206903497550691634151153811059127214780206519172327173005827605878233336375895668607010044361508644094154140420942754587468363251775477841003737980692469411324675801212847506356539396726989277567259626330451509716843136478823176286622224190471187338237683252453301828777296619477023732463868930958417260318193583343589642767512161525858495659891052892575782137312472416062365801116903651299305516357101458624410284278553046003475469481686471581543718047473757538989608445925932757137477649258000640451506472867133727376625269900724271692662803361906544725277061825237508449334338608551237547576983359495543963526755694369953504998129024166720972357272718928884050462010737202393036718523341508804660159445547341369081413921555061337942812977750412241473270277854199568925046427095734727857794658616362982051379725779870937150398944779167346631691609685777126226562931372543400104902522576087282770720503735033637005500121915237633944431806815661200213724362907999852923825303442683841063867351552288434827176504406856202252806216110127325161032893104627828550937787914752312092948041109567606591679600769376644259490557973431024694098638038520649107899138537608568057328829322824183342237468580483589793322369043949383287651405764516586795342171646636749347437005691748589783675245423229926751725631773345074344965430854993332398139623262277189929308462149665350899892764910113230149865623494454646085025240903337376627020798667539510346030292489625418753602022068237748476093081991836581709531091200991827156323364293590664727488894424701641008056059293753374580104661290595778630242785266710670759625887190741837651424318667559445719190797357118126616757131372708737939730801690469059787367403499048481794541200896999201417569501536881307333412399808939760973749705590365484770258652022621745008172096495291123592637223642465150328984266365161005125684243701734283015775581747156000676506964174522141192889399768768502517992789072708559862152455113513897129574416336723784596240556062007988184779689948091187201389209592940223023571637383248583880796181036005408167119104923300227007767880919801427746522772609977485938144948667705897410824772315172709079956447045159993216781749593114435814432134972329254533178957195217582256271798583127097189310864756378365889515112334843045889878187518220591828931518184079740383341306957108958304473437221223729469216891714801921766899055295887860646995961281413673626691963022748671634625594623680430820826392166697850375795763340033079052928510677961772183756897694479300024691349844134929873858062860880184418686576425319345834641567863737287748844503851180512463571747512133934511457757132106897052219647871497276500691745606418438463548322719727639860000218780805956073348119549257569142368834747388103093862233214262878366744493121996874637607681762055251333520896470489486611711861317538914546411045451128275004318067219717519150205185943847338647485759792174745137396449989211213511675229883944758892335163407733168845270091568290632751801528627683890450553239167982907162292478660594214616506256146657104388041600425893267665320555279171627873094536553922196215576386699468142292179816839112059749314994152764130252984486185345917760644334126997028652011214549562780394374175303953968078399324120501826387414332283565699692869499160766257991101733781999201142591409271049015056424363694394555196468172196474417230794099996870094633225239824191674974875187231557121541284354510469003561851006005329798770515871182138162768838448246768341526986720988191797491724143773633029904149532824675769623207582833615540697638470960182967797391619962735139568658802223589484627710572187649273671348129985726379277714163142415215452066367487486751386001059462711959564313488690776555592862068704605574029008720705730747854545751737342522785483198981673795675230356336060338215503437639953508849323996250805506251192453097226280542401252232181063282835388965424194241847706316671733548380502581244665714757591402667434199200537648124171779540228496539148311749582899616862417248934197319573238864938806031335686271877553254974527375186522602890428567352594708843481071124366221852398475774326864587126484063232895611605327488265640670508535617571673917256125282976440083936144002776457280229294295601333239698902498544463055087804236740230593519415955201032640226909744815170993712985956467954690387582518539615170542084589284450315016626530120457156799241277360338985276608617364602516565900427627712099793530756122051741772980623926297696987334255355282532170666226881448928784809691638541961100877032994375447671526698419502735090576910442846844175329587523430362133548407425604145693584845767058397222476415832975567895296410087978520892963284182481603662221260709912392688738693291868892615355857095170656595833041546583599931899664589401168901938524524696588338203060564842153947807821741041102823670627253303723739769507816124545745920067182751933184081294599481061086047970633430786502373802426413134473286803979308394853419359648257171005976228105116320550338352917928326852916355583547960943185971565872937556621741252229618151782225706997717638538241845903610667714624174420478444259032369510065222111055004491527814020181544518509173535240455224323499587468427707800803431248295084303222788579427440070551269415658754540632350763390578382824716803308456463685507388591569927399925679534380428147960747175052623903779330463192537074645772898563853191663554997153546751096462192559074435526240511992511554249022964584758176877992308274099828774213792839610505140901842682050012339444591954833390048611321126285718746557775946184475860976087131308937640251316007714662179247092246467540586420683013854901513369481974997431087223950608161097792301658632137727912989983021704087823280272447312272188698533941149048150620145567047315676972410695964561985143384531789745835361368148075722909565460207516283299876777373547100002841318398285606533655479694457444442513441070598213275391518572118144270274450193924990198205666555747248190255339507050864860581313385782393208541023088749272399542142640051590300058204098111511542896839088159918074618803208857367133356383319616074703591212430027809911122183323241533548999298218796304614425512517016962979797144855373367655558944594450276989216925111022961297604046826640950717405133258427602188952633549591766794349417715788454899506580188580629206979044381464089633405402070991507952539570875487590293239911100775512301120080694236280214653420454075642043357302374454932379707087537138187191528560391666100862345893346054175234109103699579268040682010140884774238817262920062767979440716320592253991626430600911132049781794445563687245979389851637693680250357445476162063305195421793867670663191452024783477857520409740510043232501350269366028475801436126556690064797297547619383384649409756188625144813466190715752639709617144972552309250750834039937104195865886506687580498851085487811821754194892502298986123670763555342739040049778150467611599867043909812666726736080427274891843658628673513313240103705198138597744482201126503536293599962038150910421572607089255399782187563820968211679175250398788376187178149198797984939214943314697920176836826749978593886979708107414137600809409366790481877564842911034313688225274058956520642789021549458245656324546815581045363176975452039382162590926794437984612120688406042563059835222373249087170965499177105831779466759605108387556933838535406468353897022250949590086434067205020900009781585644346560391217783562376840493494714110998727070853528016067851139822623496710489068559302366546628817820297973074763174841757598076747918786653093565613975741851316969361308242098947124793697292184262951193032269935714668343821545132301303582240972500301284924614772722582407865639966488845292822270103356350053006469100368994210006995997406637949495003229118759455413350375595796878921214385752005074705759707190549962532731034998774956357375708113852559407951840889172325208056951740318569984755037453641953205208811948399248905033379842055540991643741114130290739071458963290044244152523263764710209474239669725832967613693829118381425965924946339538267458413570485872067877723851763020471457075730390483347380918007499899408087274254123288676896032214011618911424454042614046854783123251569767510543806782599357197177271930272590106876227840619671355644871697816601286242919832830426733731195721539789204161166836403914154268140293459674537119322834248439383621355119113368034760789916542336696843194255288026632552924292095098038409143224723877098947791150627966735427445080805746608104941755140532635739117331995176245079076329493656566100649333777037028484516270408780906842395118522948870861688640637315533616253914609920013014351074890748556287859886699537511145968527347986945327498216330455586392200164498292538741528419992811435225470876527886844356910613611303864343194733012992740595240408493624871557909739503586395502922101458765590933317702535381239893481983673738751299256460420346962300784042618020843502725361556915510364855117368850875199090084998524981680848717415280730955917384789470982766622616994252702907159521407068320668999999088518966812858821698061906542391533027603043637826578993351343873685140267909110323139561434736797740454494846433813243806256906532822967938364158494672717318409261722399263499050062102122985481976144012021063250972130302937472999986321620702744519420356787774294785362557939846825389423827484810019891127515087280200299232337309599205810443685551160597907818886359289625083787828637270080491111510023521138084377594904084927148504512547355124975861020095548812365000591865037483575240028637990709510718115295245821592488925656017893187969928857852407664936044114277710372555098482609430022986991364942282732912432302721994807039890982255339049768813182417193095266688314040751547899581937456300644610277108464467988971348072062614044529493109445797221452224574545039807275468031159429624933307446773280994985082545402133880148520326827917449100828628505723867049662050619991411559209536861415266008341325956981484111825808490994647464367143894995327346025032738462221801770599038625561260832538793710453693938269372450996715295624141621178303302835158172809781214776253433322340088436077180707795993999660401951003554105550435928841802849855539292419388181721270064702121508435419516505393691262895132622312962784206597717085912963167418630252098189902665093834329185810588678181689549160710334616105260132681385511900309959510962285991791942852925222039206644649966196954212376300181056743214466499735202934139216721026786162109286710251240707163352522936488670979779840718900650108330344518440853213274608226441539430484879782090126853136768290288655370438043613402342108691480301368067718852225710736066098111361031121347810956771112107662226154429089272312912141110844754960580695205146473644263155252628580104101201698799757920713338077682493663136375145884480524602073982751877289937406044132015305661417572181660782775207912031442665087308463453266960587870379286146918164822389572979973237308640747635072585533067989681112377254626376415271757624616886330649314821506950191927284416208116274134687909957343049748866479259865688171410063328600892629887589657270553021402103164140829705280219265046702587355193303626762604448593573045311457169989137455894427115405821196863818204560189623964748497241073655109992069971879582003466780989660967365047448661656539466623942805157114066464599425905525015168685000384027839485588238122208918420484584148305765731211432949436220686427784584416755986698377396750120329716725025620296819197344203816324679479680716662541309221593997495077301843658647155122777870551488892404877410044633301622639203305991293669679957780127864704057103373258914855337799924135915207835392798779341387169191722503994883936458411538323147553211198357420649514640017028703619113332474171104964855539448178128246373114947846757710369794014702279186750016897361967750762287700088135697699476711628460222962602330271543405109292870465237637589172317407020327825988482995220052678641965427051782263978545060237762043800142376132046774171296767433504196160777637518429004862134438369492172317281395368597570023529028910427524979766519036851020634366483726980130468950738201457066551236629359941647924167845562112287968132464449669471346183895034667570141566436628332928244478531743467700458424469299264451346457510145473250232675824558556672505151410442844799142564026705894863370488461101597203559058363137726317242198980353635477995489763051923704501664379409403205829886014208780152997880419108358939304291025215720244781346902317764412979975708393152488701941624168833380815108717351783379220495357592423931387441927569100437223644848013847089054699547807945179867000537380239497062405917667593727454169075068813061936573660889790285697663447275238510699370046250895290488844074381607119434308818677745518331857579655342645614136061572401525509835004412788175189464739706554027612126666595828222232555492889128429692769331143491186584164526669892334440999555467739486533853590668834382517149115963068093501197503564119831392461702923445538404657880313884618801882809263485944899863010589215692475999461235295125506930779386653551943614733671500515376476223903724095202370460860328695313000660749700842440344898432305555841457188162286386305091375406778225662479303325486042752406369435081517914326873333422192075988205521666244371041022723456725108429514201152055742797723565693787854290787645659064419263829717865650344322184111781338935920364159456471054373129534248872013946990848753160832976013837608511007798619257791449842045126668415626196401508907516511194065315575463039326056394107539489362669083129699900629712234805417960655535745828635692779674703375768171545945819284028432571060048843451478570324220782634694927279304077004119158828172112999545053174331210696744955699234609170804933997424386526874751651633833411417692234152027301148527664928800277799762646477707649016531706049713918555739625770134862200846041035332263264754817142847873293383907187282046483914652468955102854518202176716452780875535742543207750879978265541801548476085201962507151338715082009898988673043541089245770952437481086012126259015138656576267882592260150508984194122301776128625840503844940504878325402650883824481798033742444602389448339605054326726319469661853088355900029000231997447589660988564918803037023804310026718751266667305350965278602423536274644542504878283783858266418238010040178550826598470254758680763555710463603008320061141074100549774175010496417253875504820441894305488549628002795262636991007687718721448014991088197601999684990538804496020130986462022533177392375371903510140804883731216783857671733192187040322476624221533390832518783000918014199053452461140942621385812462764730377442548549013327195032764107367667434289272061523778887264799374603868872748133708426742625180854800099845290569692454782141955419503516782758243421482382365522561619979464881087089431802496942583374159085629004330405350780577886925851947857924906683510512866163535392970194946302926225831059585461838623252716445539729870075075117796002584013798311841156337337663859300748196886770605054758074632444216990345192038752075870613350753960379136262668752850977815093937196507818348214701311104451967580365637434992009707077808338662385830038758929258669403487054757473157194203402906887087859232885494720626699451837322425173965391947609070498017992453372014780996781245022469038256135599933992243418672705165126009928585408198256628659639337529033946476359308347925039889604259321153242282061171293225053091044335003525263957838252663387179726345743289744109506743415476031345989172481038790351174908500670148331120058917976317319525918767704035767217216735963126932318448983108562792127227091904360540199911033153956099584253704616641763098887900229157142848775154683813522618034398403005460305512190405410764592384978772230669847111036664621698142640374388349366968776442002593836029066023429308363329438490833258171403399811396644865292297586007279058609897117873500158186603633163707020528013456403205207940942171467815113581119999331164881457155396076843290867863021708542023042565867187033486536844973023308010277685453894733438418075471219140479338403583256320324160899126690664451096751043141648489913559251343680776784696078296571208391918884289674134080545047211396691247517537107713709942514839817605925413538904971742742858790497825568765514612890331409880499728891806413084918168703741233325163078882934560275665275496095615376340247955063536889768073802857012879591660773886715919890839365460183941814675819389512740997100517180532515223741711845061479676522216323384815783817590203058698521114188632671285350813810191862828038275519074676168525319595565440682159610500086544711303922399079541669589778078784916788201180112868533725065688545362940011734846456333023529698512806095127638535329420255160719137021023797858280940422961748412104909171019830527380346169177733737499142602311977687609187149800039477328177226644456097491998585332078412650127409875096125853885383339266823419863416954600609128311186250524244317743516131926061920036714249330356619857723387240001796167701135597246072399980072891660869417364162622613004603656250911460915837859075926305551352615540223423736742519609881786721046370449052482582341944447496453690796181345735596949565204059886181745449007065095335755924377951212964047079598572139346249390411722308383092287320138030999670112190851166118841994964191528820406032484468567566248686595306206691295599725497360006359808177935750807947118466562890641350087940643969963415952047673797807160192963482319483201083975920141848499408448411631204103986877438156082003746199733648621809161485316823470288376048465466092505172159435670368215907213986329958082661364370403144184949374283872350821892524573429458435503314281779154228182432081489020963656868447648274056778918726283962788868960523051846269008997700149832498628599336053024811120181262415073183272233490143971909114845693113957499489500588278949559282674841092613121581062251995036679005341493975675881115487851521776750854785352177552503705687162466781525052037947873821006524435480473400799470940565104574010678382058852300067343666325893685600098535791814123348072088636865968108750134924616153210263638091839130872100780156139852994220764080671376626036786937502189127963955791853762674619716470310404395021785837707547570914558226487577706808056238380634701127111457276631689185166201599201253801727572998258427019938833924730168235149404546266593931933182309618693970085486303853301088281053080070136696475122130736914422597744022419962546846589070423079850285680795226709822737080423237331689176401792396836104527932095427048449592294762198598016166486274520351085933351488962483357363871866250582488384224278069838025389644358639590208313826497231799435303956674236745702570038437774863849478512830623084821145595109513141917590304166183268219829511945550181738186978515429539587990421729954980477149598844766243030203312186049366185612764131729318759358167064943916219939924854749474898130894758273671962203759460815859740151188828220240872115882747978054564294758243936229521145718207312061059759881877010568680520307755386814525734715313358163045802545546477640057742682616900824727013368279615925976587833431469146001424266338268411913394144019058117796879085865183163198014781098851338688117742942926281054417472833985730808797412859793205734790206628135990058245092535791643914033343716108020713047994941513967746161657354164342873124693523124905421628474400292015064538344489108771024244780823651251584400643090678684181538945717542277287413120640342353208175430664263033069212245824513316400747848546937764908280152291508952404753028563228727524469891961172853527833148698949834875272528170402238036926693105378828035569794811874662384652431574088426003403259512659267987645393917776667235308353549821696107187128894156399825404381241980012922557507502700952760942274667763591839970703194720541015732407262453896514836716529134935363911091658044703036310698830687036521012405048871092436567324960581302318710361425646898250087879341678769880400312093769612033967512990640772190025967946725013523805554888699713316830759202628638329496826491960930961487193785928346994888821613045248493017595577235203866563363298036701421537224142561242338134486207304680573836510220315151215759414738953108394921744480651670782061282281084591626739591336919236517992071558250426365297704175457283387247776430915093607643245074323807768747063276271130471671889977169590066742657114557425195033982368933947825292940518048337770452344907397550100485293651256504317980210928508542280985526134966639200729535202773694577168778483078537932397546284805469710119501273498862949596052281740297685024635019621054328107255865766015199353801396280989659760667696797755793571208207275680666706932883627270728776167406613230855543694249642674471350527585502725322338827940225186343671110941325440749868151188364293042583503122929708890576488155608633295105962571631864173757103049989174326987250632730686187613068992801906231078880682968862069534503078257566349921529657621509818419240525762002880857347630490252159003532162622556354453909327517622748077171634474086482311553627245228176568119956256479377717849230303800936360128600325950099211191355899143083637050616744359021351469610475893306990603782682676583991780333986772740808619970952323849686421626286929322899098695961764829326335905514352263323331725789389147598893317650570208807011868675009297102314799719242052754950640863627205173174873454281014848178480128368340474796536796700350228376428094012032843687062586529688111068042460530821889653516006969054777876627335202613415809978293026285146498456485144817307046492555130057309416424621920172196424301712297350317364848604317339409177864248488057738742202809925472846545725005027883781837729009588809675815811906181479613393468184364937155515215859899578899434575291305306194768718095852008178965314517197158915874636023045495399771570783375109717282313371943444787433051800719867089761021521499866061618036154709770076420472884302659010526245622619619278150040521155384941367106841855354236047788351144459321792271998918284018553291033809196917158680233370548142297544446940505488085087483922815610788891817598241619971039334456568901422611765807117161099904946588289171458780565906015058308890822952351199378346640493705257403896224433126670533473039740930273702111936394407385716868027659662925885226884125971576197293659907249227617749252424114998893158265881050712401020116186269540874712137925836699081941724322738763088229274124308085347654024029945706973128334630056566560363548495542765889300944430787328275424459829496971188717918469966333736210345534310130681338791677449476139679903939359615605628204025684476726006922888608703172782460564565816879544436776204553804310337352401748631069896758013133513852827862024723365040393280523162566841167592782615444593328870654397036311674034172536987861961084758952878781413332749543724152873565549252104334124129247465996066280622170416692801927249674883830218051080081930106343848073036632625917860180848490931019115744948583435897310304011088811729828367477965663173714955127776876783995783644750684701285219763674564183361462394137239182605874773444938217360725065649110307112418978550031061631133532332426143037946251919759232138339382038085108326612488648816793216084338302957016247220380107483305308670672309742790561336460198615757695794074023073122635449000826130855581485603783858875417891926437124081053872891285297972212670768707762171453359678772039440548956224974834619337440775603099955440667191665323945808780667809664066250672222300015396537747475950940684411663913876524233143363477233115446794853026334108950739784524699555656937027740047717303940145042697628878808922244606472057953623415948920051091172936349811406257663005718813625210643247116928282158882605502049295726902901492947075702691001102262978712732176157393154668568724442016731727840327306196406890527484234313797011782778257175133883708619287873241753900766508059133180221655552726701041710482864275572315868986444854803161133410991561605340312875263424481804268292232030372352213110204232893403051133812917010144629969157059821313992932030357002542174222069978139369113404439095358432276109118221231008056118313748307558275847085735250068884980103047496077516937322514686284804541193132856222755867567961733547516331033754330081458265758003868635287134075623267508771265442475854821959188877062075098176082108213341370706131284622383104315600645128619779493334970497854163422729691212486213191131673386677502225686536604709757289486118187066415599797184020566279535630894305703594248465058045671849311954657228656750775160256423406129951633256022757413899992422657547365171286652323423940579858954158392654067171635689236512939824402999647481506368688281490985112913287341016201039298248509342074300057224096738423942507581068933309245247843701757122789929578719235569929750224823990332935239199895060472532958026629237343636077767428041139483962887265177325936883698799147915425376427045893759026784938948301868084368765802509963279149617089905910307255605479805048206179747771306811980723676534406751026563363759047393456943363449972639972230692934032554648963231294914159104033674096321309117863114065342852682238930338452378895684549551126373668790542674381770314790435564375715349729779622677014944482651955463699971770035210649682129285061293075275854771210969135670967310311949483285982315267260025824789798386187725320814579717162510744507298482701914003306091537679316250242393850075044316747054164679770180389427603220298798484601057271436014749727979270524188100719903020100321498075435929437362635226615751855371952189225630404265868942726969723794149819416975566297879654847708363522607525196473148398588991663988784100971523884786784055838960704940862249523250558212991312434755491142872838641323137898665841428344638457242016589194894348998709797061768574074616252599541948254843032062461116769855711595270689155400752793147712417808490225667384460144431217367203978065937031104225228488203592273187736633785840318577448275836577837616509879938507996826189678399149351452836053904920368763029887771534015492192206405586630301907503020680236562737807332209849549040436251180414872136025250551859660691577361369265958305632638822957677085700441375283702856179425250053816401266977562921380095852792084582934618063437130210408739329131951614504027150441688490553898345262643943508093749022136225801709859504052707288186319483747929498733497725631803263962000181718333550963417220522332600179769177794441546812800412312030590961896783157950946904794739931727489984433059957979586762148909382615082292332801209400427931618270413560037796395964314167008719983699736933593918994661287249608547700011617222417037870358620168481583710882284744155566858956359037897744924092279836810364387410429856991088378013799003630642522164572638446529518615285643093054844751427786890332802786383192209355425479695294216270575087341790473435275069210375208019951290039443893248935782295455075280665809727225149134787426522239993013030065964027593384235355874235372223725636199653254436246572029365347237684714502591211050399691978844812895351768117154610576318340180447589183683991347576006009882805447673739780510393293366792325525866071732171609337572177022738994538473496479811146537481989011564875287363944817563208759692379078763758327090666780132509852419914062492820693664727693329206214788045730661954577254346374551334688072038163845956894797397212871803633041848789952733004016170027627340764416176040534222394446509258358653594435002514565498907631338247628530320425523352351915097030162581075068432315237300198266312898102606580466641299436449725605670017925619560642479724303746533432733896689661828251684192209174518207416724726984041349557944260116502288127263509306344675667640618748750409011736840360807339742162213775537796011791631509683010371721795723418098333512737004636652331078189937439562785298056285047193846555114027846226091003062897203072596804436898038824235938399907395902462624502941417924795986676567830720915981267394787876964195910969932744652592162537066258779647323895040593274364023538309852783169810672631016951126832375369693754142629148006325824429341901251790733355044440371898337673705304699604228832540377557567342858920014340630014556938613427178727518072229789511070934918711465057750443994604798726976079527932341612037463380882674900146042484859437962314778224536409928088828700085121267543608114476625809252866828913267494312333966307035238524290863789592316658064982724951288024454433913176404601481731834948735227245975867073368149056542513265149024885625510236800976628821307955262033886542612822540731712556328539529015228324988532298405835680573404602052498719891853846338743144484426272981451962436465805581243686793221671818830479631376597760199913870353967912345219084754699610174544295452126539453683000840803087351443413971951687757935087198247956388954673260139953835681560713032539924073958143202923357411608214668528507510654286796593843478207259862315806872051425745516526475945513502799590121202935375948598652003753576119169049186915570449295205694575026843040378730665618368766324930085591359405282400833009475820907724451069697243382150058803163854563567218003498024129571271150955559421351614864662366445491280107742760728188007745312022694168904855340116907074112079219111757697595859043558555089563147617548464902374328400423915083067555120554366062275293108813113157495604030772297387146351353625754184334997244867853859577821745778610910271453976070487251865063882025553486993216792549695901232527647829133216872728308521470539111927349827679344848366293721951334286458780454627886057800772975603544260224447844518739518173084681420208386611248328190492612775321119735393281482630238899052217838790554746228004452491295241183831148666618636770080605391086418537556154931339668635299337673035717350294215776915232913355462117445733468534351887986108554552248852962301093582992693256187311440795600917267317019562869989311159369984532150128557910690380171631202945617942875874864194510466504434375572599439455409607249824520870345296143971953897035244627911286270996508902965542717272008055027749322658629788921773537502058133989362585611048415353804908215476490812466983218991886839434359356150608631573562917287614532586178896641141639788245574970983527061419137571051396888590436687220279408343547594971786507563156396139749708325221561015070201437916869659298876806746579765125757089930793906511519924383839298452183333230255658810135225993373590291300466907766919521704086810465023174003195681681208223300242141315421259937238273192969542809789472798016109014248308990701977580966420217579949962833359709017305973456044979129777481392466443173082739341982179894804938017066210126963658174676890105807982186222106952539626734875354177466098554322094473992814621679663682590944150068417856547271852137112720433814699317413406976078288193022988845060083241993594089805190994630832444084038876604613975941452586465117350081311178546865297316729249070634688928048609411388583946535074182942012946328893392773951014504975535300335891888747322859110958072533301924714156828769244882203156945253152868282448709436088534400887519894404628006231528482435153012206582624599610181602500340127862272711263551402965513169218699524361366565427753193066261261723283845597719764409459132699228547199054540226102784849299557690824193734761334258566711960534043175249021156265529993683758021180144596944666123123229906043984712154163642381808144213484089526226505237627974832078497796679231972989373566473327638785320687723952195202797600028339435608036930394276571049859521932024301533457849402881886057108232205312039009545707896013683908380780756666591847789849386767609520628196251010916011202358698178767955797214791055271256658962660550383359737336072721046453609022243605898512396930495025605033546650624352138624516677163946012826446898370826306963126641078482996780804027266248206100273891011434500653049931241153185041184614197814978051645376659155336529118103285334883693339822130662706462124499344065739344487605510710752837885761155679695701847626637530414454286209709872757435619116274083900374024332628011582700410594953947637433647049720914888768868081406882014053570289724439692576349303084626929769664025097407217018013776286735912592828509161285912021569017283517616530728972857165910862687990680836008591992615591950242864257383028818557340326996395712816230579851836172101252348261285812315194304228258965489825796196715214515888216246009096473015533103440483471827554969885970828151585056700058441851196934020233879534806510310335564722189764930608202046983062047864011059667279712083768781767149158781067751794887691168170203197184918274157887971497332479525092846437718707682362091158727248788534441673206599379339972348718623557108570064648239222960502910660642153225094768839362554486433854501785003821492888296877886472703241610105021539640517645347283013590915533920442039766431967541640884499008967227217938317375192281964586782343712524352620243068526110706131666086649184309651076893929670534763182646819183542961517717150955092400819905156629016274179141772009883612439430896814325763364287962056153360195115429746861057473965140571393039996874302962716460242672299414400079093329262700913532875445708072186739693020884989794149936758592420531129998270747473983848203284617506335361200983138040113692461655367691206076018927391423324202272205236145652066640955788330814940101650866099485493844390409580973938868566856012466746510366891548256711700526384498096297213041356529278297144763126394185035895132611734195142997606847833783923810699331862172849496003672779082156851847347643665483163550384359842240134046038141892230643209840023669652309900602166659426713386039760941565421219699458539607872655266505256721081353656622834554394157107637277366810375943900666614383538989167256462658510644987394554977470486055402950955001312164390921052329748724776584267548507412178308300159369233627771503428913307831619753607450635522467915909578386725290795429503007820516566712349316328146657500983523053908307177967110259503736579992386752476472615730103471468327893918837213281706145786703896352821178607198155666256060756775379752301518802440719202857458567357153594907151368700055537983970904402965382980467273041172833635021079961806448895589298297820673590843142486621574921066198811488436975526742491057641918439993339403064897834633850569433009002326777239239988296040509572559697814809422994909970245664294475456707903856243229744369534159984486898872909848756754225525319255315856843346842048851112614606637215398036454774434455312299593309745847000473944710026255293354741784155049402922362806973919851950956979801759998758045768140118733608476997885648617123619035534947935717282976877394972759332784800521518010018460768567751367795272836458253464445591274910032859924252891271752341444919375812545701047964613868385610099878287567794822528316545247712889342913470295892161753134411726881979876848151924052152888260673405341304612055639389916430061374358653616268192347597428108197751799102665696733293431386935912962512622903547959090028642697871980224182905501315859039399598805925151937183617767452702796052779458058423347972785761917150275972989982292266215604411530939180934927468507076981524581677935254193206418753396852736196898007352187027166675469734093160793103973989548735482732048166466587667647048690388703375773589137824002050831785065711157882610859297726929790187231965330084793622669476902465890557705329016990438443500876019533663494647877429053004818415350401203917964641529112881006139251870908022186438889600253362718469406514905598413068601589365881216901022475646196213322272159097296412384092150442239407450862888172986308179771425374794057504241383202055064484075126079245119323384729521358919122805612556893152570961426658835585006946355969453732199607934215224007069682252369511651594302874091881736014881086953131425920346423213370988961054110150630079390753796740757369605128386965312193859271763752479327150062853610129380739385502396108938366698850745434303903971017267477451829855412235884429232533661982811397275862467448879926072382664153090503910474447313624753592854993890685047464648789973369203014544317667231830120757646377453084165163569972840785020057563665941718838503955515638178443437799877827611095349111815252602456123139181685827761269282205477561119139346457968708682805198341855478820594102569498260915401698045240558235777803350115957038745564764829857360944663810995971143725931725398708397137259036374840010325617767522562214132307224798536547544704425158860956218284986192064517655907944906594540988786764838209752935147808487280444744642684419490666872825560609640503999256901009383446246733471393450142648009101956035584919674497182071675037828283705080798520753002952479481713929077105255984127486493449508458520529249252293422667114095645263578879050167806332075058659974159625776731218162240804508978325014815686135194206164205929917954268223921854566249217658754721746994562767679911940910652098313694700417969766426071663198531208045093261835497933090755795016537396253701890732470257035953820424162370655410582646553933461237291631481081527305993572904954879824134833827139508824086403349025104356376796932584758412470183750301564698300613273678443217663547719056550949491714953680925911303761192396453880462703630017480923431821372327367366876676764719083219416480457456710018066318180778835752019435551284348495556409985883997519936951070604443827994032336739248967037899743344552221512549627799128869214406806386202595280921437574606261048786184947218820348156736840740025943280795320330699872677093790019459755057022632955575480608434382916480270417736996326243793027933551536067799219477926043409712197830542288581389564888494056164171879453527288173649218337527808903823378245895794215214025788092011040490103092584746662016411029144125555697632888597978570534250344448794355204497484446424229004565120766048543502106060940642798762557222846609309290011448421747620014627305810267748951348493688311141419416924344393938286198987250924534956210795118392440061279110542773021479819072076052712754037650478205800125911713699770958052603215689190330926622685910501829705003548212102959930643546385817914849889730325934235767411820339254768422980730503609536632927198164285332803757675611004975916392491759409125256471529816922414024678952805022661245981586683114262967995640384184218544375166724292370356237198388536362276592156680993522959021317536766818207958175443441977059595159476174327699462407567730918593206150758613657395609581213216521002001345318651103462867634123366530794372365899874963410575246579372940785346979613269459159257873510789971767256103441162993235278020705773900641200600209747518338358148805758064824080110161127867281512979914108486572080435306152059085458712736758917812182570435528520732959975890886193207153302974670485997913070554711338703991319602360732060591104559206603863072115809933922448098160502599781667261053128222543564812557740441379288144438902312991038275009552575929385563565958058493161944779623579703695020401162439831137695321442659822903937622139603342851771738634372615266292852330184205679625292168360577632972844858378196068302757637553055191644331589664601076142691325337420561784758283185487259285424693224664586338156130391397818722813386659467575061663924292321064135529487649559159182705130469024733215549675344064143954883382585757622718549013883184652729705249032224056534945550573389219047283447883285825510713656682835541091585000158401128659695840465200272036345034032356575003034018812300412735123961511095983934340553400699949667189339770786939322873971562442153413089571546664085085926775495872276318893519565101713190281797935599900980484353123597152533984539785776813391133382057848186351706429457237051753521677454171615422973858702088738465268007710810815874706876363557778906587881133553612824133495868911846722085298481856167016934349303414915879092851753203681289304573631299331903989870094807162987828767525088029557222444786613262189220059276390076984619315886244818397949615791371488351232145893608266876378681592497501816811905938859196708692287901473728419248385925049856197614500149325338923223440457458477796093235363454696875243219228119280678201971546715720874181054136632641829063517186394717566119305187996840495988857649164868750459217365782331701553342625415909762962146964627604429932496322886880252964889769083118623281572424568303830634742637399597017773379613927687188036375920437570950942920091475082059909627166700635681983272304845843082086825096602560808554746795132809203310450830605331874546552314404269124367364062221624849005288338724348767155367292009188532728522594447853950681506339927113067013502569041300822268406693730362440318852566500310499309245553337182817296416316846487665056907170975439750478589473732945337996255213681996928675689396804165712465577036719814155639690754108054742046564660150183196745017835148353920699658300537242311704498345946612198323451858749475769929292598331508376979861850223237535149744281977210204117081901032905733628684224568409169667212238778643040178956782766667161101580819475899382007660229780248125090375861905078461678072737788336849853189700871408278753917670278493868191378852818448264788173992468198520967869761859531880970739458892550160302815123534709025690400068507624675931686690905288425844040175027018528510359405200736195487318532673890095299227921935096039348487284751866383672471008771697132521673416259997121440640555425744377592042398920050020371307391631914431391907803472983074895132715195098384749280048726273402841473618536663670220622682082674671875488100373781597708181376563792532629495100553267462614904151208522871261893851451885494571020666905508599618713855936913835397516633788296697465662626842896659920728511915648827222184314722703607547627287408572108398123079438657710008300046582154714956832529350106030895689528505651220619852686233786548106332540140812248965262865699503984435028933482984631483611921887460824282985888964715428519359607985471168340004352410271743363100287618833783205647887362309075128920880730543789459164044794475758285189773495992014996050260283159280813134747708426146262405442298480329218486178436149601462568867107932814584719850287742205428385532799242357277762994951308497662705311392728851123038760115889616975458484225791083475233944775864698573147907879386503815357377805964400918478395645859710529291791519659459853999105972168652127085745574094164213059231390410030630723226650133463946684205667178723733538375657444918002542200662702825558892009273227120795141977486344709813978449015770323048941014061798431736346847457451832938839588839486524265917348449575957870175508253764369805223274184015387300840936546972312940544784586695307818739723187733529706534449592049614667562583195047732595611348155875785881361031846396720336900372242995397498034480193902710980053877339563382734298980443188015793868462546632953134813030214534945331512132978591345111809900426507066849778525766456864310560778896089715897797200740069534211385330714393045227899895542497342442732039266196851456599069697856254840773635457170018914713675495741276356289814868213488415855493094598475715857100576949231096909624913958913923334855287509396243595947105118855154520989191804377693519206624217656982012441418186933309197682274581337161882274060107000058661264711642870532799042034266293674878798838707749529219272316428351381364782694178027332131743230035461224490505778203841914395890102987208384907746579437564765717527581930018136963160537168293657281446790415589830890921267667209435095495811114272962268702176054674194562451398569302568936973329947254293473533120634721486533274723657887553319584613431430269914101326010622958841085651157089553395419528722511300188556106440855598958639086725165084207045591260483894477598124239135212128333827627891102821406611641076943176602079441760453783937703125643275741266412099158590093509846778484970026898396510336794919111373660745368320949757319058726672873379032840603495604231842928624094235776010206661407940499977086249085797848660004979616392168851916661428353554683641064688849023846529492930768376344943668948626245100686822480296883978720626762095427462617601685937729950988282760003198168918082220796748318004769508861460146060723794096912709700797386461137141604944676313161753275927990409206572850616836153738514364170015669879814542160827994219973446319714664918646555880096791081504272297810272631409120647820034550019216333449512252843514749350154893253980445376528151049586645533402607425515688094680028662911512525229856142829734714109376002454581908227414669908703321547648916571298142804875623763653319440486359832318736694720995558453828541583574908280823913413106423289371341971266854509753989168581320471991556245040284127849844823161205002314199976492742291608043105481927704379372382391175708368235430162603784914537985370844019871019307428449091557359278272687976115969980585366498168764720821054557277845648310256627980065750165616774106691144825745936659839415943117717967022618376862692842580745395255483516829488678091673875553397800607796001929755626281336586275447731896193432583412369058532596750532003606716850971835537293024044050898719069764184539199748821337413298844823298934922317378564758805332193557927159586983547435668654287222525517534667705549422912286629334326807528629787443173164500602711717565046526468321815737141404473242877699664286085666349719916235355194382149436066819812847299884927114847395716635171672985535117121558170457633832807131701827248879754913063861380614317954566075986911186306887438406978430391708877304147740568497692404246091524973143153074138531290536539497881721442837697256034797094414646602908228217554151574240051584314744568055843040671533303194612917993799896861179646858494176999961464808536201550141399281040227941375519125426827537439554181591299867583189903641926775442234346251680754229418829193499824167439169008135070897566305417125135358714157374304925298608881726461697366574793393099956906850686704736007350008411847200397034414159304341848547378752322115552344133657344286547970807693402245927102222325033669545195561541500838889223690432136751870186849957537022528832903116006665799833046683527551924158360696958682647850872257855012690919344299139162449346247531024410172070378169636289747116503667093535044752611922474686385617756072462111288990794903973830595047865941329891545140773058670063993217765694102650947825028227774976914618815852326828746972358476774541088736122151512473038944283070558742470964518545674964124818680124068774671019600859863493763921522251886569643699215019864123645432986085751444546440405190454762068939756824033368283415028011972685479276023124540555913145170801520800812639176234911029302955711214273425092798804012321347564375331163133044351809601678392456231732700917021228591537828768817016941649688156778290632546963059801729016418677998746492208637834958914209894866286160781801459143753989960328579939496004032114546994935587719941929560195361755494945850014421907292654406867579236655854643537003026699993480180800043226677562089256955020712903211870334547339802166635075071467543532962001403430051015682275023305524842798356589185059238237606539378956970378151414479275493036919820194940794717902233211473163328010474922093280243302129416711179548204861419623677343360603328071207667618822746494251887509634639997732838913285195880253999325870225848961853822436989059822608768773941380772117702062909345808992841954198948006513600901377868386874082311073470773592825443350602787368103948699314575034283019170975056541372294227352865019954894942686867504073259440448672161027518312248047220111449820224549108752029786397895526456968580023617454607888377735073913493909027799009029531866688394489744215568758871301314484689695319231989142925105467537727123159885304847144505368233006983933717541398010372275587380852976957274935192457824978228657143033880391847410915524272420210779610763920371121353810966776655151219836957017517325900155359962826812459079821554356763808218609590714664480168932521696973772048588203346727636232439896449160505440811677874861454068586880742008373178082198027122489900849399006816923424329968366513384544577305062736875556838419624954191298145140469835480580335555036709459576997626578365318247553755019310551555733769809473387494570876329082204295100660408257410436502374218386569616609976823947919385714777768291607908985320869478366086902487088662154251912190421018507373794025718270788187662072325283773379836730554013677656146605721038247724660976428909457666274596801237035326189629617839966654962708052898877263457355136033214901089001106506821302990742073101376904340861272005845163609585413704308698981351568558776053233166169605977519735250639835302096070835505711994175264520370940566446323267446957625168979143593163651109539764193323442739158067148602081918298135330351035820759187439125316864957877228682126243740621540904456225729304583669419188657839878538845017586029246350400611653827417782872736632758027366699283732517679620473502203743984078602536715402435267487980519816517339909170305925955660701242253373857834229208154863262441267305380215406965450242542545469631794325503302302327463136730769911723567752792880616687527356612368323859479619980968800729751157005298591327786832273483104388310341055005934731471982318541051299650694504272137094783195946764213137289292071344137601644475696153601636047680434147609406614106856188661614229300770026044316933368086290964609806744311521443434374582969371324572806294543098516677385362451813684461405548134580339301795026380730321625942367014681624829964577236805449933253219477573904237618723604340824605867089350288403545315529172847729034475301913310011765003185168436854671879182368299287522263996746701422034462550102974215006945103399528595094572092694578613498060525044378971065089281989573119874972966299350284265749305792836587511312660955881729924804702680064057736154498031147661043751080456220840670250070214967645332685752140387561605599444509182524237182411018410577445057509909027808096658490739982692224933187596670214210623818118027396757148648740550778831745918589042989706114819384990254775100733488323946193606131595476249903819598085591202006031989869720378355364444827308736299446571293965603680298131216602290376071489295765667087119008268445314099933489713181442527940425577437547960713874535976248115493868465044401422368694396029574892504730666682357498516754287504870633453721487679699541249481233040783563820958530372130663945209683044858128936931508799097620957235877541572047421061415926596435009656997486591228639469180382257743728910763756131742986999023254471828336331797572929813343756738504177268306022189189814852029512558224712799323284413238474877088207269319970136253164310295121511589706086049328614325387618260512180983871240017988175793167097880187769314567985997332586790760098809370530496585860794500726784363131858918242000352976025406587946826405304134522953797348257784907923455883232378489220601795040530253026687201687997078342612807611957464490804249323973792004153282774632561810515636623428686924911380721181441829642177314896372418006002188620596971965731900130778507088487005153708396271904207209362029299455852479328378499052830972316477245508082776684301932671968843733770051595627440432750411165172499529444744459654578293513331326880470173229816037058924743903180693490212119682458120950948909755879715210457763315462835491965876842450182456893691197355221937722780843759656792190883247551455997952352465322252468554432273156730049829030173754383881303643897490076023823628020212722640757308370283216522860746333945690427799090355780211602622164620121120204320977888720619219536970021871826421120319884832511439242174324567608218367723088535812522386698933748528668079123701032842356455486176656372013524498078850729029713722751985507847008436275781143328562460537875111541808949166654739451739261792630919572942895507444045811706606094008597185244999601501835212044067385555009213123628644340031553669898016128468388556534400858874857499788032235228718467731562984548476454207094009963392366354633956809062637797773650634541262200038154771475938402596105470277211727115317393981694762435321924301596252353063677699645345004779933580384613014611470838127448241866184998096977696185872674673576277191709265823234966479377079084083987484741146269841434910042623350040364852289786033729101270281909896074686891866275305578815615195188846592489020192785628590173746002645721178407340536535397771818140809789707011536232668928261725863835657731928016663037559033178551583632461369270527747513373712743655086560420332062541788140301280966435612870820697966541602268246045485886474324911658648270400702032082357146224290422570415743618081294895390433928207021413304555758250951042352507291139368357172305820397612042091991146319090933140389356861920072359020196339156439741662523901689196313024313090498646323176339524998503583554864267138507163380540933207945086717795767993316394893312677867515388217460185626129180065573951925463222844848273140903236147411150164264187326034236719461756507988001973776947419504086846151141795362410273741178800818343038064272023346019789223216402087702296884119248396695799117775198144928067847651182451895029876754560051383537967231060459099127529578126318146162407725790476458217669374108935935960776410764943857902251604016103261327290032123764381933056399558479896931971708724768539641337897623295161875617782765612328865660182414833057767784006117079231350992613160416517712664958303883179452484337416857434539106438933270443374132748279805504471645549186244204185909798188116500255223556291841393742015522577515202382837860469828969412149973759717745565628798781463995403578308524861378504741461005641468085600939327469843526010233531479658370571447749774006538428560329603844391536206468492576212152876597734464526920335683414494178232711827700867628930329162992323821337367990721786651748680660911806916707127023734758896872047590205904803641377506299440133473718852306593430071889178494502141908754319724552549127992856221606369040917936588141827068629743839116200771314391139883675115630586569991848952855764970918082708216453190728366560587580622778964879008853593961037590484066610929881204280382088357996344991969265811582371410596781770370000106874214378653240668080516949252984975371952445475100518922498112660392173558665957536490497752999957948832386138236968214956976992330938001735048742211690579513747810394195253478251437371220450218472726702135674210834379876487429608350967256262355039270376197874428974365702775892631392372979360695799556272491897523540059302062909348266713686055067634096222242283670301716860903807748478321138512567936071580044271228250286820133708516052473696025947628609420719151081922570731871396522441645960501056034408259779531377934016576662602055659328855323358053695817353934571045400001439860059936328710921870622344821642572226221193959632505101433722043630998976700247846281633936474740869024208589696881067734284395315752707713241504858312312730375557230230417079490956609940148961247140222798859237635160479439828920959731715768723425189959922060871897683192441214436825535832983622097452351409347486772728661237797103343363574681478900661112321068169538304393783913744895619109196086939507801388539643509861011755985614457176562465210997820186434167108032371397449976975271066235534335926470328234558575392047789455772870454736995764312686065077292290171307559408775634564686863463472548821605694939066658076802920643353728922872565971829409676976532929846002428079379606908407295042883934838180381578461573969727229872291481828944652238459416511044636166145902795731363488599654000157673957302956496689786829008311174254382095489899683895567908483790160856482299998923850049291467966743325982537976119026957541053550935361615317641500085904586637868429347399015857515434247068806492981178955886037581917971764853306733949305947475784886929192200315364754291643444174248104946735001798996693881354266271640092466189047504939092067729004851150078399548020230659135387722331940729084549656138923172726859227799554759568479409573516192445333272203478481644351457148045313749500493506331519564459488208786666358337689481120070084595235474709750107565823877117407323276643688700463048024403567808830607276646885416207946271306049677529821062642867025308460141446592255221157797733420353427132901324732232383882532243179419226723145209584352111946274819399481330940456368786850022038056777378158360871246959879982868873961091775549013432115764393646669712381459066545069993520628598645752495120891275907637863370767270257883992771505973166029431016824301921906880901580194946948472910052900798485155334816243909653184441984117883040731615399121935585408584719592366409089698924974223070052305848086898858053100368841192537706943808538944484602733419286265480903750697763359843322382359668057580356893070282709743639796955871217428200064218583545636470690384803206864083127889079892817688348255684285239449960915656712943617617060232128270853527067275373607693522318706802564302565973129295201494265392981373626976431821181417183211904522438824424567588095957357844200054385472995901911358145980680521727291326740305327842290979936817098929614494175503453154255593174146891386647965317971196590002488459952913954092913887365464923114189261301340754408589774775639224888404929085278878985035218476627331233121885684658319341361785294174952887738034974168710126490173420674438176697768254786597734991038991983919887487749628718821419949864850537992121259983030059749962398603058386710742452233465380432630572812947930349595081263239145835336986055596146207901395785962346796047368371795838381392525588789741004277719597834713463317568855578186563694608743080864512490742672597699402825135262126723948646225052646692483609991916881347998322282875763709399126253286340482222403393510870613124881347018039174350736212078122368475642912786912322470627194301678816338200533975088250451028531259239629520173356778943341100240358137019278456599767724818875276885498740872506200575203911356863088405555542778038300419947797264234759043508132012772027061290173939828321748886867673613174153601474956131651608922624678267793304481317096741259545527510963868869044054349441275345676446758432139575145465738797648522185312733730996283834760708246160873615584627072429712371545143723030872248536114471775394544244645532571560968811869772994172342491736999509624564711246525146705697942233509660260069862213719717766801649579981474610190343198127131307238855397953732871179508680173793973433510985105273438474603378956142748050486871190994802696600237596070940961637140659905409189029221232028102616375500168900830400892863385430868749404002580946038389910432430801143896034274597444665586832180019084305901823461196760363083071446889403411015222721232835575730952361480916636795480002238046421369050652850096381803730108631550615650111302253352064058505012618460486012506843640365722780099853156673938479125446730759958036000809517518496107586387730169098593052120654874769435518345712337404043313855943553248589865499084889779965049254388475912395453497579785355910279143327550006832526988816031649125675627895016105574170675822486004394616576101391735243066910402567559028660805923321052003393024397396464819994056353481590753884311988735524888630449288985890835597449881469495890913207306770972806225656440797323472029917125433880244111108530642103439860617739590974438998511526829495218367190363408749761742405726426224045857254892001485324527827792014136568044359582642745381498236673672837146727656342026308037665488242877283162982168591461857486099483665736095206019554485306697005584322885862324459732261964845934937311320473584760980868252806060134598563801204367498022357911616985513950126700483867352695047824694936312757751809992631179869502337230255675783294675383199720799950626645917354963592354340421986310060550106984895923358755824187502411021189739617550884609893811988107956483135392738301178411559752783583102540299475035640009504733923781446129713239001306736027798156574702836526240864316464478272428833075165141187150569020260542959888679661642864001197409529346268999273715218638028592104813323876863345524789758007742290880939464907184507856378030940461971966474376582783842675101324013399810646528634574391400483690772775247555858514487165823132054147241190979153687219684771085797675266460529868610084570126919681655398852420141164777906118948708537434706185664971585165740767672703776190598769103627436666869246551211877499611893925704133897903080370504322296058025863487722259130253434299463858836060272777468207092346443496580583499065686334074421933359006731275854209222205175451019022005137329928118693586428421550407759400700883081281877444867669428626137687350014949064559363138227871228611169601001554852025215651804189316670491873772808308154247630002902320774542419744772670601457469695657686153695280816712700184185530321596112404131201401254959114478244704151256411961286009232550980928516766685164869725763962543924036753196264340426567844921168452096364198624967931400671144808393494651734489777593410360205461335075534882061891825260721374932461916785208218060973918973657429924348384748861305277915844066712935471018447151819329782746781880543556477152505492427951718481461470740938690498242135761917817581296180786614069170246445650439256741464823870873593794258065926252693333779699700873471579213637463282972992163876610897217153759100883851103044562342967738192096684394836062857883450867189063256455417023168538057427110368473442888597573152314525617244636666775107460139974752041615368416730394465019205096083588474502846848791325670458782401487096962330114088242348963487672681400640275609683427636051299814637765758019272064881496424776855440117410042782692657468279303126858399520157973336138157634758835985504628393933393047668503112777969860815464977620829271793835748443453555365642050265033301411042218442668034827091148582353981988934269951089618936955405541603738845220560245579347492036458069925917952300216571482544886928298136545576964672156971286457012831730507444386157193696309643570334654077856987121702585006359124724729457375038211522533408213432469468840498805256504331164607097867416254535133982945046416101320344733799228295181112032290317693452279835877450841217745237632816211459138230163535529944448910831161301688264166073056864883087617464794473667673044342377320237444608426418643081334860187777401388181633012751345154466647945748441424537141833260128998784511269500211348534476758570435118072606523855475079595858642284135504328493720444565632001531093466181862499345327774507795921996047046642535778073236728432936268179290192144492689519473586743578759849907029269047348235763038004398414945055665070575769654241880509394817687459809401549469758212877216620763045921622201263437697160730855229876022356765049197529533658231154071306525167929102606742651862820379366994237220551028196857036278784216714058427405589868167999790434479089330997909111804812780889624217805726708370661353538382829825114583150238341631567546170638435892824920489110319162651839257348334652811708966025994456928250287785268315654710951532675553163539182585489799546986565864887898140922192321875938278164367331939558048545148481311362274670407081734947832281658199801733165863199747762211002964212941163928887653674332422667688390568206141796784959480826892024701494765769794923990433219762761122168641847673128097655485089775779630144794072494033473625622782749454956676988222568821261449618156392113773347694558848394375567022657823824546152518806536149982008369416118792596042928363399276535538799616642098445004070387481294567926560677999330154866858533444263840337717057852563986149722147750419382417012925155077374550960608781605394420685136517311224817083144815319385545605725425725858383084534269836277088411750604930355885064743637849661739777684983009349210156993996538417544557562704866155851848408430302966209291259448633778786193836865921996135911671913638464831901095010766775170391113443176719836833991380982532685232466842518117482495610397175149327602682021131678364994074527535953858631707824299933545390091289641395173400918586313923619789262524634700227619848089013748874824653381147582476774483646142304082328693696371143523464794375611389016408541914878787218902780330392061189579725222311236071525715713050713169326705966121833457058171000131958096926760367183316232913056405287559562405721501130930393322402623382056208970727773592825855766900458198479533789437807409822775380603560373717872351335494690687729903558046843433389226366725747855665522389043608033020701292621198698832872776231639965498653548431117230191817711782507923157776437008317459593211970707233947122995814715576989447901651649388167598114264379923262036804484706587488164525310399569053931662968913462375121662658163014375291145509542795578769459084062497155374165506259478648782957510654400748986150348556540781448619676262487765108412467925329535486254330328837988577797492472465427455820408748093219452283270711029114601524723477265994192545199437060084019579185443743708371554925565576557349355202090463804038460571715163216516857698434431138243601427147735738238950420531602187436654286110573864436560998208887069375970009324557376436966472568626724517161607200944100718399825275124848011346734022157687623229135240666355313522828777574256486499539482711973927575643666867073758516971912455353532458338551808941951896347991802025150384188563332636837834449517558952941626427457269009910894520481953011023134688314351660324414739858261830561094210498873945351643174673106890658717331983684455907607143405611417184595140854856633534051745286494951695051935322143104428548741938873427382542520791416926304193982197906168431014236627420686787246387830157938679169459195053415795901305284675176036763845924801124528844684063548656385729050354063352969435896943688050234219083174337350677342013083582492730134024403376848254681215293179582766116376086405179461619405539229531899737301396493933434531119617674392646845588874392789782792612842706497476239076847927213582546873496073332270301695503702780015177549814566941068768168607695088164414897362647960214545477229529780488823317757662040736092979804225661078719331411056988465463577035840879382562001862431619592763182401984383063870958974680574059667066583638490511575950779696229226481571421594757554683274054588171003788597291588412818244338894166517253667219287448630642867083473511035275091836439340340959837552834246731045252685125592787457814868153666265049683744003925270157094732030876164639831792737053998988855992041641173946555240807072915903931627922764282199671199612120887401340732484657224133101178821117696246787044384341705129834684549829195634815656679923858325304251176314249184280648104287280348106438683877930867259406666495040704763471362506304757810629033414501871837083251696462369350721706743242916931784010695136482888064080266321775429901915332231889429616205851772087494488394678054502544564052397606589311175593433358692126517816881863290699113356406651291337487331544825818052176559615386064933138432713079216736144994389857017425576895117456209860770971770345150988121034628270120040117957746871024298448186562784512286577214575211823712784015390986830562106465644813756117827965924329053061018410903166951899375031346665298103181452953054988603635190365331260431038377371928793482971945133529237050079705834606097985477777864285217485649159952892208363122728759003259233252577822974572055368630306193464064839888628050391008629424240069665204540777363130087563355695398635790723887343088823619569709984613224424939993649496918512144238875145430845803168398506547474147744535915551893125085812589917717559261029063101765126156222487749997185560037461386910699885370628053528683573129883003836209859757489268349585923477576896897105026534595839223604536675869058885785417260297353616265890434516303462432790682488487700649140461093131525266819926293804561008567809336845967047233864692064924632671896002778013307366530055887759288889892268481151584357031857959822213911544519989986180198542640692291487742429562527155291876946629159033080783778338384590018137949357440681399529351632276075847041371368524862237999966861555651486335522282760500540910934478129919211296633012189745921958829890421661704780689267180083085390218330239065479799015055365529443356411313000979614792438134026323367941939248357738580923315441376703197436332223431780986344079547906047402867365822753825632804589707998900226455021709029410521410488841542452789214695684530596501105050121015626887067324062393916919002913800059049415123441886062762646967742073274179621760025135404277544345082127589859475571353640188719662645637646241354259898241769031273252874603273891888651702907013492988691803702702054325692486593824254737255613757838601703462257274894263296964075582211732510583912729947966054182242961011561999520715513546250925220214432301272558913513508918794953422408863877945880569191791266054182359127605154955353260425371544417090310324683005664373834943948610639760818460292189094802629114135248964856883522570574219637954929200454893766742081284775830822997386960266891800955684334394428894288580600557407304340813309615150980894674732817919248981777030456907823584230978834585765332593323653908831571620019431776485175309788175257386442803842164988233654890575273410966137405558771197299071280038593640979869900483421727404502599032142171700151876275782601041937617887517697527996456307851939814748329255339209417552492767359794365826690956818314557002407876288301170100900698534406095361622733102075450839535723780729530922080105578359610845099000580695420574582814276806451178088618332173800356192269305390450403108827508866144308331686475228201730501634925244124889499702562736254928202647537516137325694681388539381003182759642061005239802499142691430801949350867377662344905453224151655996177704920827464475067222867779075906213392527967297536251393758998762375238577511133188345792595534937013217085602587788825810548180516163414205044276884570582413044932593892920465843318133851635217467354295400965052359175796928840573331777274175837789342028251950368340274425535424746339080683916909650373188039118439237369341856106520537220928882564730190186768248339218951938101967086215669790853426417316630070885373045970905355497137663795397792638992214323253901237856971420619243965352194068184057408474029459649972296258063908364955973841481193455549692782714713797665705264955961356010165254438578961968312036947761938667302464213767360897887310016476200534127689826522278680924053626061334703972354441789672711487102253116813719823963038114170771604690343075813999809576910828957065605677346935004029894021579607572204769927408908798627170555494328220017640791345592559810854414104760674795013474624781452943044923046076642279694416434879698198292622195356143651657770765204176687786443294305813203000366633742458399910583601369414303872119738966254498148281957142674378607418402313803436899352344490924368526136095650122797463577422748126091410782290309931073456313815714170365116418768641630330069362172734057136785286530320810780436125905841467087352630877328319193662825337673411802174022931334342310866439974854404050234819377668553499084108662476938690875538285610885066388389854603127806978332716218583429037005842845926459175454476572554831364116684250729915622545693124555911437852622912237480840382504294665470753774393811668157683533037443589091388510729269460214906804255101521894159271416531124355864381211506518317314585895533295039425254200946230358770855031126664115882103226435618148383723822809232469277657544131779718628468133747412784164984343101128043148616501511793626877695461436100290033583636781108975182475375752771033524948303355775961154774791164207841458262069010435251660331702437658434477012171125883476001472470741053782660976392494767547982928832684822081674198319629979126514175503507012188956060545596038326573133318303952562347882302507743218787088779838910561385986287009767105136699305782147819525364497473896953068201492629480848022604966404699141246311367126067357537083510389589473327190963968092253714831369627090443588846229446969127915723520498282727736355577624657399215512738334753150701028393423030068617505163235972471865497749202693538555390713155865073903316226593898764866772107982408184516938177874922651147610781738086848625286302153336115388487058449609790869705406202057147133936576152338329787168777532817903231406222751519286793251290254773281435938799741238901942829049603382910964638340172127402109901984247195234957454612336224136309896198721829561243926778979880163354991240787093486171981203822605065298743147976736582220423251933558429747573684045881830463534559869194349604972965140587025276664368466157116658401089479285032713869517064069627356610718268463183112277348092497850440776021102609211500209737607055847289671825032188653757163355193636772102193811013807193319811782769218206090300155240045297102040430859917088757863078268754787346622863053320227633284242554055486191408478255258012318445845478748777258023535911444082460642745950483113120625872986736532028833742517716144876141006557045614332247083344179751981381651156776692635421748396237353784784954975229314967080408433894844829085133203598884422249577748334902862450683041955430851677579653837880438361523433575115735532266759879965677497401686995750158943750513272790683881516476281482456368008577411112563996259111612765890024185604700968755173525479028439508571830080269390061057008759731582952040539859857722343514827758131963362949967971976328679573059016076642111180364177879019895684139846308937163193682830579795338509097600148066102114411196336222871163200668195815703229789869033853339377398119865003215820289956130503293989515813105132300746343103158330474014493095502161860117244733325338181464704089010190595105726911150829689751569944974327707971898436255569062295357928032851711713673275810085306790158093064187600044097868329438967331134575065365726810987479530681056650998730416863680459565776228270134834723815907389496371286897362434027040024666280381571693585574145485396291985964185270875379809491395144685600462018804215218938442247193999112169269543020974489128811192505960133495738202370776940430532261813229498706011875805927110743419811789111381560436010451176236692391429488484222302125602496842671750560159947020887460383388225157122554517212639021339270958777431960247610251557688533533215929495713140417990239123505038957958611473953528943493554617577966295147880386484553369995531430141261484763708637017757913764596518657243914130466442567042178459112604317854863196959483146750541198979358248097826117434036117709919400602541006853069171940113397361224525055598295772773219866762660536016017614560181285613155526395539713972914617618725663866122863120799719485010630874841616089975540759107735977254181690154691929856687537302057438137212133426520170780346780560210284515616564171447169430486490333430037995943627061845346364636605955819453165470458114157341833240452462273327903171294154444423486834942920824582232935921207088129668595517490901803573811177138325470372699014865353679394516000024966059272043907683582380024039106708056877592901553800131511995114342768207818579367362405842358289366077512200189772578777686932038869840346609752979333701161234891400628249550569068413806377798387956210624953453192381074172615026133705086969820649017595028248863053594646977930882631066383609702403322357567770646987836458061146702692978405020211680185793726864926359186693314727213829025598922875196142351171432781375383357311112294883176057804481466802598201311314513381378399062658071064829730011770685742549314902267793431333248557706014502746100281122185796019443285340370080966227072130877421192627874678293659397365863701387531053253308037321057400024022371621577232028857754490657480297252115362358136604599178440214656039345934743192241419232593456347840003087675402341185692508434518343808661048512767153960725477704731756854507184948394900973955885455159594497315941378134388473573440227738112354308355597636525129108068690946782981298135869613890656417850554333767158114581164035337754067263143792457986702778397910083899736425835363270722448021016991104848443136977832056474858885030822242245336493314620269379872648347935493115862414667365974570630344141704430621620939532733192939799344455280117003739219826911324286344457543519455184680818540163637580850044346288746439764235270824073764545591601701405831051483684862863464661638090406459769484250204290083362003925532150468476214911247398633876021818424057896939506954471506231047358739869503132401791481156895043306282105865749869419028575337910290216734287630798615943396408791870463753401398732795718855766082485516889976535848891139922790301375897439161716222264484179987200026519428313088008293751495795894746456309083816478940407567918663280733272048470778638526486361160084676157798407781370109661503063655789554665680086349612516188643150393192662953817938300842602232468862568284763495218612417873883241377110594327110500990224740805843001148666298032442957364122760725324928954225424577055257633158225176408912507914546506495237077665384430208837856173959318874693337095653082770976750288944633881498847341942830704661740270544555796762259740052858995405991951546634674886924072375111331337337561082419321828846409677454285004121350120101178784818253747940135287171762976546904033617182229399896884787122483577155819344916934369257214831901964578832845367700013774935358622212268541261463849986627643884213949251714233681867999101473471524920533606426780753279003099882243267380795446311448768175533963051762823616657476983273740584550163382779223067360562096746300390893475147233055571547450285257085462231770249961984141727823421106113068178004779513141107981087803458031195400387304795173447278568924157065714339973794887642246415430851257761424999122456007383189956270400352921306039686598426514860484579133628817122857220540351041436845632634352101502114245580363569465181676548702629133712300222751162952907222104016969237857166207696196402362019797863834067442557328697095906117742379414864440474842423426871122040074682984397054417096571221216438178091293992963427536795461382855221409411387687244820854021685577167736572934221464656316187137725070748689526105871547404695724774050269001204527289456222760438380157903600391492856795397905597373400883848278972728145157204701663344399217855028891129187804309545988795595185191266468719455660037928564794898929668358165624951612213381111730357950926204147798305665089495255501365273370136722122335476310819139664380525521137201682961870114584981165726590463163388249871813064417850398444227686131022605639538974317769213092379634451726004214726215484592972744141225284670962381158220078530796703358281123550273976472787391880290395895697120381676148722422720437004306631473193857950928446980673226777269613156435141394029492470143183069618233988267944565282004691563024126032908411198899066584860378619589211040961152321591993706072403381257946613372794312227108971805022346200530999871153317987135053270410126628713925578900093659390273649396336811714265900784960661916826358228135393137074974379333735798449156569668256640919223637172334249946451404350828957481680150071328921006061622302470687111103722657530239621024691122391827471910540998377452630343625449916079111171802812366935397844159884544086818883641538766123677470887053506192214951905535457539944782318895641818714868023515889381460143432686118780392428357514407922055631316158897702876572647444062449678479692521786605639146928355313029190657040448771522415324076503410511702206203547222453703423962800887898573296721356229447872931106526525198846830201128063299040987437689553973243205941043611355873852783898134530361798876285276907254951160031267511677122143063091682157117640530269803385195752064418481806746836305972093983039526297350850754605716948708814327547275920343310024248952822661951230221506763134238737360723596773054046969924703083787046885296845584944825283334293660532066824600070728889371058279628237833640368833756816217643823904276281561697126022158933807064125729715364866475547579996325634089490529935363535527988436764559730965092160405293309026539153798516341268135209203988260068521436019371651336950996822326967372684286984914722241203406881037102743224553374691683043709894938369780616913159120873019843721152715973613848153306794135289136934965801431883062433246714445965654066664951548243406264890873186390116731955114822137685468299401730408172507074635753681907195684855710924813910352823483236322004124950521502707658737876888137654023797978661007393470122588660588403712393377430577881398124287019000983708968599672736704365033273909142502578838089082442608046017314848030708441394264350772144794193152082491465003830400713578164546792129282948478946673979106731305934997461987759728462162205437227475429697261162883730311925866368635811668442383679865128695728167319970299218894073533528013380392019322092312250710835333701799063826734600316273933458354382733709671278951469777383050508828856269833547764662109019487707916220489223267158601858060198452074866255790566242200623208818441242816350578123334334986903377340571988879536260167776870461189308058216399148318904819848616920961296354762850327646240246826259700756666568082337398461335476609565737959258969761809804947743046977883367133386730104661078616597352114824517135956914867565156378508704166292562889303080103154506439159059573786836928359726979900456341370121783415354417610777098384688161163908694251480365311583769333271271221133419035226729271306667553437083535835012304845855381597528811801233193709100854501475859697557536830526640881165169387382721184439535534017077509718654476242614989436041809639788208613256280747240488888609403648583568810257173399631505799769425388626378505612523420762806768111584170965791811407862753583391727772247025722215785391605999303509949318126275591985979452390770680171151420083934636309146112132335235249846848630497157554879761330802554378195265379471646944707111234263395560560279703661063571432364893733332486963371664285203085681456043380450805159756602481830388128579023997428617780510694972038742263986609589769052713389174538412526531055618968779637283196696215003796115647550281321204009209546303866131903439963597473711667942070005832150598619914540060127849805541270492690312756904335458561487919296365862738237725901362523599397842746810272449470156427015545498531849937082209627293610212686716270913670088781803572673375199569165674761768233528590666661850796500186143007123577324963679308415213833878543696026233878760099138414889438980059472412396495327579417502243848164318433699455883741184355987777127308851220248139996363749741259619568273253034281080646082356852913550611694488998625033626306155617521453938204331587245716401328638420587550241635673399726788159689914552468160030455539193847566039651077637492288330890397481654758277696143211227988561208406855484054158276517545759673086533374995470850657947305894818958956706241411190884824831518352233513250686847727998250879049012833264704210132366681818349582070094589658674200520841592156480919328369895045257593564668610695507097021995862527603351814979501777388685285161943600740591363705473419493816773574583008887072823298424703813393664276118596918217064160597698503260984593125794055697959783319619060102401871814834732491621860943881248385965760268747845692177705414776766794305841769377108419284481145164641174824104396523023149249767920970041138243395806740617664687747519800252522948884159187023309963162055055224152701886540585088967371512734938429174561698281033778539030854591027168376674190117293755455972127075446599703972652176746478913578052379204137351664140531990333274127951207416482358212292422163966620597012516007672555351697699414049331236637833867492092396208807710882819691820797678915247966386554360640648407096651270562849751629588617533217693587194528779548416854082100807892625804740019170357035604730103211708164353972923077158650077188257604342157217523084521341592272568311467654645857804014414798557277239999013776217800792756483117818761836997091740105177973871676301616039312191383332888237981075793349298384241095117157239040533852454734804269648798904990169774363144730177539452214722803193079459589907595876070277274772028609340439972055018265089466923489129405328867885675946099603735561243746750996329272757645769792292949238133362621865237169429698339277510349672870164861147775873615143835879582090784740042151176454171210211798276882329468329098046175243446338283563361448503504804957540433745332351959198886283798632831333134428624390138148129379682285618703900345161237354939624034028575962455386828147011739686116062731946993174401284908841859953084114117678868557568076451474536844437230382735006931908860289525915233159052108869016922725259715670668324064510419294297289227111338551741266509060191496389674207920449248711728084638897130152881096857332820864647691176720029715112425366749625598635235912782020297144989895723539030817451292092068392724147881235622118266182531142088162546013031259225459213518436191148111839248947666651677020699013508981985550131684869392596546469970820723298661913957031150779822862640316051468988154844142086469908090261305357490248447645021250663768248771291995889537240575247530543230162349489572077631813200598175269083972658469825151615764748228458598112959866810503859289746603205318303197181596894050898424830022512306218375173642190089438218335499277273993389371185584018632474826174753069905697961593473263739865550984384951782761414610937237896195249740881389102081814781523481137151810270254473222505564589444888542529158455788100272105621129034509106407016270946901330602216426379924277329242618683842197227823743596305154805057677295285891571121725125100693244660175352081743854736333917025600882099086010707788577662237916842622355921856259249103264687258932369410007294026945307609545013761764221259618777982041183830316542485549128413282345874309884207060383116252459118491202409029839631581077540991721355006511679276217123564394937381066400760999788192627696152276515138058165358678190894349191554006893108580817730380696244480953265413063541516597967143380267616615676921247738029385319158735864810216651543741143781498310282402606254689504613071655817174879052516709957144529418121464830105735501262017685244322152425541473135975421268507122951654024392064338168653491339769461772857477008989626751963275477119149778404578210474646695156224066099965568928250410884762549069306789040504679059433798911926118667061966052324420173991184046809349933947339282439997337138276680151925836505310157273532007354499113846279037674681721153566085867687543627905763639733008436789870469184277197371342370620906174939909682464735123372007415014872068994114720038460045999628927961329208474340509766612903272668124152658306296031687663633998591052208319690009961926346156103171505967516127037853941460125831918479008971779348485650509093618229837063005886801193335981246667465610579019364385709809032728488150883398954555423945031810982839876663417954775576805478537081287095750473710616923979755166354258783000688542612409346242435736767833577995657218734898129214221444494873749299574804603151148326948472277701893907230597782784467781462261936439395213300979589652337329371184142310187070197797692441797810183461404127120562327335502263340166417393937822463763287668233164317143370932490303838005289339547883152094405642497968984920435989405443013386413699603509503270074867706280149840046061015329211337541100745295983280238723899378402038115699767279012274575468381908397670497176363287639710998482678165632817125418357044115370790096935125948970922438359230358777113990347314019883581123957853898972555366693143545582529639992432075798784342679705671654196899117565276995988339083352042644186819428318429544395701370623105642444373721134629930453519385881873370364983474653495034963716894205294710720611858650026019342609458798156900212567132417547036677269656630732011652104438351677248299114749633335429021741003816101495536237984813868280541967517376250352678542204143313584307890423232904360110745977520255033297263598448419449655816479274121988582677313682562824884414540694758756926674440203137121112723529359464229609945340657096374747986617053159130254535297310563384203245374300277506511218905119293014973048797248954556263740455744142278588359002790724221140574442472126423659866691267236889689253759602343256956765124291344774835136095413670869828466850338335978846539808519484641211765107754810570181205061207972995860475055463123412334348705132124748167846693978681251447484515390088542292421429058406595285062680042931532475808542738818061123846926492145642745271453457609685121209139733516400506850888553294322447251908098261254715851347486018045567176148431683122972921549711723969596460423806356671393204572248875540024674022072807864019367017475609727057607836486050924749193069270430232945213798084644160469318191235768412662757911873219702727541769768220206712840492707605261758428030048092121847856470748033542358775331290546241193693290716029800192871221042376606926382881917853036452192405960399053353758736309084428166875483393209286278698440029330642592202697417801305701057647675753567820814080600082004944922335187754235215146167553246764885025250739432679909099426314057204974344057594581775534999813681054782613109367338082451484504991535885674113399801758159590146477608290115612386489225081943516932227806235702489048995378934363468364738769380176165861559426556326491319741839219836475408812077157793844300176745012452707679140837914517223678541066075178758749294482359397824780716046263259579577150399287245478383788463547508765356268257675681179514430942999536878601025241544901669535350898123352563442456466622866369554333955343607679814945568355454180566285866387649246337312263805022721300743129984510825221190195227823172146823360977682619588826486310279477929144164765979717533992181800960953550745379866704266334856346220120868832840115223777616076550375397899240052717956449355776224972465791681385888208181705585364140930406097897167684485560096584914283559592422941436552642860381783485499197631324532998333925906435832935195464776953832341808889172959268948662026919447807081819960914815599011430536097178149558236954873160291857713982748109196530774136657243600776718100319097868794060158436225854452687639095274684136399375441360530833257537697945719185824394298234192177730149661707104881346218016826195800144212455221649083406128896518428319602169037534945674257572567512278083575676862303176200130273758451787508448252476334643606816234571696877192930506338938364946955462995482661382632986610164838779353205646007171186797560449051181166032181791242335559037699062749220807104830356165847312344055231008522260590762566537759382130433836661271197588034896814447757672921230744049918128978622225588548125733452501286440141350609787939086120172538897085228774263152834891202735215214038968658189644783343594453521929647973424596628407155101645538557622686082252596971497143037749357727654837346484549944137663092573829347635697202303838129687319905082358007140602780720204927835594459564567049484695425081761064820168199392834322925896322496880011780718124532609380794177073084590801290396313253228342083680864781053549075099770748299307550983410233270679988959669195865607661637199653950848686209919058430075084479229388654840336107767610557262069709353634358211695373304007240473042356781716497229015825358891981487352479974235531926988605716959501072183986258925298686938277920247689520299220532114650676456896014870608559206957238404460960413337228139450804573393028831905063609123165207388596005720123250035108821577095826111490155811971789758033035799246160198421463351740335412256987195530624224214672872530815420791215936072390038500357077148015421105490378969385607260118819761168022713738262689699318295765543190238698496117404547637242526572817652841390867350571264490338346494530612586128270729049679194743013109376375254308201247952140043402977094899508973014770268203110296571696953887289875593354731630506421778802105693531919489210843600744253521917099637966630952124245050868294510640095561971580926349586161117408073506472032266603024666673923310456830259374089264613357878811620539768541392886804891872948203105550609943894383398772343831115389352467865300973561780977135504670181311743915954363129554485215725989840062084880003961836330304669201635693268150002225369140840876713231140921029603399519827275557585113700577984698833257202836581149978045050730244725111418149310976101447930081314096150966139319778824987479836175249094027301520944415705515340927098016434263139911721360642605728358111689515026655209668376494729808448083083396343428055572056677481222829980249322091595610392193242747552095922770912668188447001698622779265846114115731718448998679270138001621659704725136361765626976105810860460758332589109228984400357486019985732027577073560978460330704449024634186907119872025033752883718163940063261360553925438925669935715729389964823527920674792790289840085354875106955803573896196310391093863399993643205758866696664623442309784264302526817157413448111144560785146921770891036813840877231511233501610294087380653860284657977689190694860977760891815234100997374907122027638790195614416146253068152924688341098009252704818661227342525645637476184603295039740645735700814406641387390678169234428234521909261088161770927112800025150578769628946370920815395676334928614677051872144561226674776181342150728200463754030674519124421830999117313463907314374108939515767715817447354278168122131821128652276213049900505193233659672518496065054533058051526795086195403574656538744598056986370106096350981774116630977057566665092019137896553324874458507007166461443457844430872211115978667878865971538806371759201345841393737407219341558155113611963836858581155021261312903411954511956618573959511083113660273601788981678524028575965248039219903206382113133734452962184958352444018541056959925573129355332818318212386106611000880474356827641437795535109341373145872127297245007123438451900703330825629831292119168737778100640987123177028522430387616817981225060000777150226740012773452855554633349573498156063259267829515446409060528729464700950640502734055771400093037502027150581054427713394059812214052437295933083597412642374616533964192049697553886821611686151772751867654784635243793158256661192368930311272719788474202944695545735469249379366829669110547197901668241451881565371829413426731136645590526769836962657449830249545849884947947054261568954941765733264167127787977262365783568823736709247868695517085948715537285759075705106171390232626084244782278194002565819487413350494909549353085958467610525102664753750650909788016608377415255095878920133728959418617208777208704280109926723280920034934708348037090976456750679715256331855323883584979722767355801420694870745432245666385646436035805225300169027892730078264997343684573649362355166819929613028892809182740480535742449760097586786083093013048906134647131182018080726491867062924325849946563679785039421795758759907494620814157372816143148387888977263959878047959087142798184076148076059707938783283508715503925215248413726482361469974522883964771637293220335961603973653202729330946788517199197925175939687975951920992092524703127506673500726932592325389366391375446774769222241108804185277075697568177672049162013718289858725951415102232108718835481030107726957947326917655441614645001495701044190612409566835289514801741226124455965430698920860871181586346485200749744304608399395370388832534022403667983607778167659452119490349577410445026861110541209848178543372166675006067404912955783395470381975314031985492712731527008405629521290487762238758178102231637974886995247478711303817924945095195923650747816311661963847734809891434118728763847110421044270240282059990804349633561940775520284889420028299895484086069183573613412989912394996442501252463531890820421723435471336767476230307326006261956002897205313992257484470690686883876027006045232460488600188188143783825189437973084645670302676487833749229384309111474311618940919203430019756173962692396411506778956980674584082698646071640612319661362368438516777419877216938566445571719208550247117742295685048890418985985182717534463250063144561348581845760081062562909115109741746176416534623322750241873368005310656604929486981125387904503165636812863092328496444323592291390850364231573870677919139556449308957491487218115983322132131599341514009911538681116993086594674385487040073335822959706534979792546759717644524963603117978682204586762517536673150254384285775355691850700776333607010362669988272696127593803217332369638030873969002245108267736178187076271672720472877219902086912320097220684205828924829755811807579966504018259842344764122475766287915256701054763680318987730771847076381220875205390663823235851213517291056193134289609113894583701495732903580433473314005339769644166309182718187317070740182583444094471398598877186863527615309360591833727562233733143111719976495375223397380315918894657310947501469977969743262406604574430066313813897688411726903666738239027132569821494949806648522180529868263890941876844238707732815217617434702326163106859548775631179676860488135171266963986915005414505853794416835401486349455135712169402059843003265652919108668223561976883895733586072102284679338167486748780742056399126726959616569925059350940432185161364856713759666533113027390095562979874642050668378940010466300627923181416811239315348369731692389282686976543649538711923382965956172426228897932699544441877180061068371609017052766244256604352127596053028713344363505747401232530149791759181261383846928410311213534364273970813509284404025563839618464431577955179419759581591289130331684628512898620053105430687159772852649620794841219787574618835319850721233451786308706331012162792773836109782734254364464614389833037611524945767106955277076133616645702771130952094471850055896840579817274372906746667914344964344348940931375885680868160258763797178268041717342309109618960199842286379182159548834333927394360941352589236603110326029387200095600639803546387731338628052991937770391465788416442600836497559898714773947695970804383008799355500326483003183936919212347832897058903318959854238934689371449628409914754690703129531985673300309741960663198444671159124360597482714693140908591718469367529953003085813635238133306228180373666853108568580954754516983894551683664906696246772010899534118600380283366676256160870901099602772988171960238217475224562667735887723803198626243896681416664809831643558176344504953514085644831687835013345114186979124125778036242214011049922764500167476889980247094508126598077915872849741374194677470561421777098796213306789649082960916965370777739266556684099347790739663611883461267591585923097061242389948494112875338896915905519886968793425397691517380718383936524742569344414711566934769488982367790789720673135744372631231015233536855429918372829723470956550717875481300889455732955232414762299145948759839923744718142554824598525894633293042202050269652938472353084919787745190100034944214829504867956356218533966466296394194312843523983302625035778969453484281788898809551343124624716843138184414564287024936471340371114567683331662429729544813774091882468965009488095304111520122514769679991570296474067696691165246402734691521777319643796343603183661151274539061635286107186792414639789149685118414756103581829636865865313769988916099796035631603454103970026184120345364548825660750827228361706989146514335222801356504059036016118032563663824262468212121751235834727742537440341165060735335831106332083917692529101432811524409056725032778383246143856231485276453426199193943784525982180523471506160176544948228616256095780669228464691851134118063519738777413427107682135465928037168539530194753828458800626779019340564986863809398231116840712692984562739453448143926994111643086203033630571148399354492038008680029198357614159566298104708582732762998047050628264312947696540809476633780868887722072004435249966481616723068290160736223648078447238133803236006246439516201078965848222879046051778615561445173172710183581614351506817963774141485787848958911388376049075510114943184103703506104972060918650630103528559232153111257064931344670115892819803563799620669633315508521184853258811920871716472400477855742316045763799832566375320000306144214114658824251657193692179063181297338908631350583815628985673184353953924080707748923656045217804564620420769885586146140213066093083835036088087638074184029287119134514604597613570985942291917436905757014463927791529296414976936409400204832760040206548733829710419012005515768289714813853132701782303921957173450437125062728149537410503513068340921819392589377741728209512503931047446414890907021578164490160249180852885754875700862973355602693576190105234969831828789788951317361983487841439478523079851044070797222318970911018352665787814870632113558058418684732896680434295485515497815935009975927480384329757189120832405073531345005177462466425749070577407795035781527377809934570296868213867128942511064199399265111877606078259551931513856913578775218147525435624347246197504709881557692881410482339634628303626245983265578230997223327245381272297104193289150266268690343557558997053739703835683424523296755441680193145573836869967479237804164687582115059318423999780869854137302448632509821781713981621829832029189773041647734583246716892229149678346089060190182696875347606159009951485633123688148930440153852184273765098332256806459636541133666368303891090646296657080385942609172462693468665521009497822133579964887396160188246304321825367946720155450598891961521095157389942585367703784090724074435243103970448227373827488972486097713491653510087934489534166693338836339445337950597781252509560128733852052671161660668582112188311735167976195013310705115222599153581199232500152462761231079929095608283373339809607254329386722521374040557512769723973401584678655083023370147176728071000356509866893956530063025901050144382908419195999149818238697340087868554804747350301587312700210607748691810883334458032408926008299121219994557635410264219755867131901979713537249852420656255478523330902834673734708224735742983904629335803428755569856182496630301740920395065923271475360390513908218311690514875036608133922947173163029011108627233683074662042194340040347409424835399874307194863409433393314858301591148453879917058308235482397929771265992734049033500482219325995514986762916607166967587603034538186587247088529297558889300210364609134262248094404734037519168666722616494796097567248550087088159956635871384115504798682574118362048450055595275309455255107289760414032504747026799723114096740451863174036028106787100145212773499895433271855827942683072223086900994758083201339057880938827389582032667113296199584064868708192226822817343100700929949518820585799839547980287044197791457940044069521211782652018321254512672178256027027569287757948666382230786464108998829572424119868849729648159001473228518937342004052331423299040847965874223472145701915464576467923978686358941006821865432202670424324753973772876440937736857790959867152526941493228972354728193438116419948347515993783569326336912335662175635086869808004824998938130793504466012096497302444781827403677908871314342467230803094773567981547116647785323468100594329966524876085138052945526554715419868189170394763219153239618374649218765524125489476839287870979561794506426181837051287332033720496196364848641245541999922454396104731683691937701357851440701510274276329587403155275266618095737667000683013539516599690701439684103312405099221203255570939446151354943116292476176882782304817428765987802047230613695866033378953666434111639317333022766167018694741720270016646961396898397252976073352877474103429385220189908091566024513906981708336600926312186706534937457862567234893549812101225767211099316676180625086234811691340368444324768395481204621546516578782663154802570760691714473152635394052515594186098925719357035773042771121566701649546329436473725322748107278525110018750316098295398611992280113567983520039225542377817714474432214976426756311995544033222090204609041288121139475554530242386035404308501504673037952658290198301450364596046646239772288270948009458980292958177623650922273458502237515267949091691075477951451013531256217233015893352119135297053445830436203163033055949155199060749155749754605258055912668077437113962876981432414255959971823081009402917131069485307006858365527527270866783371719272485084476343804946916109544189928540685956956744757007850966050310941487298016378513835735360429130013084041038753812553078418876440660578846170104019629167019364460889137502180413098910717558047849390011815830085958394722719923524377655142144716804780872938489765688936250172295363245470599617455895833686978687415211300573385777136944624155659676278774901302086493887121182528003628137846064347095310591713123988248100543845819797366100280699662751780840206088435527084331564505868223235072232234746381116342456950234646019889077811297150697782873802946288956833233548236190649627706940812482796622942864899089928393412123244020014359144937113209050190987076084630369502224394078043921273794348136111807377988166485656140721469526495611026258498842199462252060115011392214792077133689442942656680025652516417262239683490327285666054706860013095181122726979575578431993036378735453880297698638727463976866743064323281842175337695358903740108636713350797699031303989953740595630326292086506665656288091029510983634235068425616236629967194655019066037301661313019431043629665142257433534658769185072527201212141780957390276893826937154427327211823082964097467255061954938791647865120269219967857746423156622099120312665825655818269104757195967820417983810183849582721136770654010205139926038253528387040026807629894504989166359961256317613756134717562041788478287790571552789941268346538559553255617975413209893478704858081773414974847676643974321762660745636021009141306490061931830669690188911237386200234331965526317528486165110097607708911339518331224101632807875730368138453287273008663283786552644758594225996754893053660543005094909987031487885293067335061551872691084674314794143867691969667177855866858237564785988100333300582337326537980865450114114668554611052434962047252994595256925435350564945601274532448020705813506500023432965191561587367638705919193004636207384565560198886706506046478877049492680912898313053086845435764051966654946362245599750741776560593490183636061526925134867784322138605470342567729822190690013525633543983611686185787971417371913243747317393409217068969407298568442315014978355697874733053945996506871580213980532817302612807549080516873691181177471272437294335316888416077484608695247836225034342715812269982012982537866163564985662530866641393403066629600703430661699005507413250240514942290829647688113626450589496247199754271891519651769014033974662514939138413360083845626233577158747046270348614358889576803393471372477813961818425494276666650601341991479323167815866021580629584294766915991724194095267221972498178645566994376082869810759044057989294142327148445667153252923301872578602722989750320544199714368786998291825238956619779548979573928271512201072781494652412004226292607601359420246996736912690817940165779696226304429655038912966517042885369680659243746682831113893198082999102956402761365960276652974960889814419313923286422118952761846273108009485578556932944722615066646449554293480067808254211402110474553173542655136846803112979866672748207232298384296450681858931394803404977669754889036904141726398658030828209234643637853292868121114835092412858178570686128766440181206271279698630201132809586499960178826881270950209462293376072630337269514913360490416722679222247690514985228988285409749886451607423332554979860938060365614844039657749473946942606387541581902665422746003803916539197193107301170196781425191366916503116579204387454582346730802402333533839537051417650923439220834086675108240470283516498982901755771165688717560572460498043525601060235463453331210843643080366336717285661269035200626781029685561425633280727633223682568499467176421130910288969607752356350070234105947771074145471173403051064209110023929405745989006770391742366018387534942521541358817411151003788033999379653157992717964620720776798180274327595712706653938462563160447129339457365682657040042295156161798484318570368308896980564390578960789384912631146012449174375401509894309888260258084173196602136891861127408117255745747208820253250276108946081782859042736518000882145399299048329224106089854391189499181486714843132790009769300404468710069309986745241517871079938881299409855173459627424349041146998919693883657455086252158900372757926719751863019044241803126481011163214560518600929649571878454380968090500336647663218146852800805096227223799147595460494036080026747462787962733491900851709731445823151983029429578730775840926058866149393241487357994157712869498515709399411883329051304346957979671246504035406422113525185986001626114771357583798276559780584149668712614746643133304368218459165142144257130582821847160902190852135490666455013930982549136275248884919067654627842039717268768984140138186301968426265519099619421792693498534602216513600060279771521683862521665282450550267996593237588885505397261605769940545083472397438046184631879649821044305767141131755278062662388487719091234321326187199996521274382396301486169334363471003488719134432902924793422848824184306750099420552012686584490632989109650687016225824744045577724516696954542042237859974939559186883237272490700902987058863736326821023218502514168882010117151939857607549385711157162156228157704349278072940677525041125939373522191398670874898580428906182998576574853054854114351407378697055757930016483832924752707599530731775408544175286883208297084626035104906359877580803818724835263423369951138481174490082024402695441236473520250536092125345718789930413928788766550974896980425382595913522016231055246335730253566501675623043862904588979464277683776393471654806340286759122898604863976258964714002706028125782154570628220644957462350437488781994612850933004912963053102736245390308976912559479887385284273319057244416858433093149488617007441286421646799487444155471314040230863655316305379567597739937314326921636523571890274042667050680218550081896929925562856901590876353063608833532157042901517501879543581664826429229298421259981773302573089656379634358266936921155359766300388502738135175520925498909828570740047486555015165008902961781250688373507200093823979658180137691812680028073323817153759600596615105374396705805750038318266105586758408580157583128750374453234418407744586981505872159261434806068076981392095461939390145370042109106347805298876754203813054488975348765171986039901145409433718757329799225447357977524114156790085273936865878735827445344277430616877243960463030779991688508823951800539244120201936578433908895396999696481072630011935152214906903498595872311166149981892701180724859029388739420586055789207758052253231022486989804844521168634573975917822771053428374123563899160703332697538965577450198057516016375361515588217939854287270007527765424278452860131841940248345802256743125736995067445405823760503963414309084756528378757359879521230974973718222357487670377380130008259608223876703355451739204965237385810461505502585823263052666754453064090018228966359776102316599392461204016198789698450423227777832143421092212797255167653678330913394158252282501654350745143512375332743665567332923296788439878145503117144905554713935198747109909923209115909234036398644530581512400633381277774143476565872400079529658539863540214985531820549975040316976783395105299772506753857446693284036223021106228620292118300432012989877837867406281357995595256136420983486393454680705337803485247963946596939678359147474197068154961099283370230924568950834972020891880904193161855718068698205820863767396721007508072329455847123864057638742630037416378445307278439219911598684077560847046064856348305185384149666672409893285309024830357802409554577144143475018096403419888235711980904216712718131090877182607412100535494696734664772196630629335793018129057078278967065198909822884472667014260812927897937002787411695102795296482413139598955974629093188506277909310721253374824532169704551990868689745867335360984662022249658730536887673134182677955994771832811332856221630922032872136577815279043173251308223995403505695967530477690285507791024001178209559545198573279816600358586145153590851752886032345565971611009643478875022248245464467615562796281312140602896792444951444600859688234644552782479392301405581531864219444295512116077569240637795211458171521613716507301265631361817017100689255434656988127613540701831913681370185861298946576013351591264638461182829150669576289530992037535144690405894718102548609810610776832278924788675418207629879631034526022654473808446298304295713238625506157040177983682389684011680989385751343215917757472480484443983846962866639470904494392290516629111055226504809521712753303964603944825445461068230510444894926844067403175150351513503595969292699922634627738639288591953417469461209087174132226123429029841661383765271998084279364731625216260744087310691089253835886436137358963153981890529286922198586291815767130004849584652453068748170728346343297946277856751998386341665023606888108715729671884514054482142775087927332974599461542204174048471820496606003041948583153260720103833605591517829200731683827619075525349359972031125285292698633444566809558028485822178172158526626395796202743726824771782984465288668768652991204503539613314275530606657584276890875803712655033075210413164865447670677463692522452350772708871224709825121052282182612563439974311073501396122044083913318470788015113676091625643246786759994633496241193797718014440459311695121088490183604244909834855325541670018278990409865418325806842643070767122725624397459434511070791209309935042242932778379416658021558993435390855865236602097414202345442291043583754328749579806051377144345613552256622220528363433486509125146057421438034749523227504471478497901527187827452151458631854352592588105389859160518333163453079011793105096656983677332622619505542641094771450699544799593888994021825333299243843015751184702976528931578583198929306756001802662250173302568667171542245693986196358497119674597801441412951906715544901433006434978266193338722785165424757506613638209013715996982385229054840453996603680954360326190499159036044125465536705841413519643464347870739281193598376421224337012496862038112042706415262658741883597563763533472469261074916633551724477971130983939660167672039269881669376052069844051192957874094188140375051143312313489239710869789458465197400534301375477013135123886878925358455298057051813768305987333569204830192791317704186435013620027907251469815610951206675821767719117597891192198674819494811759033226909414203909391825675486046223778013666578316665281323682028304788832814052908673915432822621273596337498193991716931157550670918221739266355765390936687866445885266748514107154598123561449785731251595768474428856960393071551845790049074215346656940918737835338613835298639430914724525450015656717942615400901822841941129826556351587350612115885372769372087560380704737021040255720461132303190916254214668897884300248867592394618737142426516613965377492168822546141177404552708292918415123781858247103122500102825526607391948500641282989465971375398826373777567884928715093885146072356613278569134061353687398393324496827839567999239576135724091373441732724167205668469303154970134881465349205178842656477204027390861390469672196206456009362297816460381027589257424486034629379923638772743319507417030661342708393843584071723753066657447572431608036258166524697001603072900643191638619076335320544412387164730162558610291681733369922694043645347038716233485484917300124825836098302398536029672052608196058062836144038504688250083775448445486163900777852148833050287923540295886905563797493126695605192110958174350611217160317516337889369411245829781891881230721843499331711008177908497963798703365370104472796189084995322979820348293531406761826567455327653166062333902042819230400304600127741840665581795717076177329511782033189121242518702770184155955370996007011353491068347703434767431523052875219385307825106745092740249828298111497201279764304044607563790598201841496273504885894294386284743828687981743253803002030354401379117440912561939293021270734095880567903128072181425624778792145482634445585799391850245745106997318470570869842463943355681851478975883484153163234215634405657747951808063678886089689771692771389480813879793806423029705419455622251051065938191778213047135948749476305483823552710248513518430592602336002866873373892225354797663900926319881340230946889753430387799802502930647876523682478236202027665552815476687357190145986694519914413473164129504854335305983746565183850489557105366340700505690700575053128378385130449322567807071921883365837010972123927286213790402121353910555090592811845786338604903071294278558357535516174260346595892543955535299608384314051260222366469370590782366184768054788934783308318913783740280546560232720252286981489146893405911156242247703705310299385434310149501585377508539067582889003594374021363927672636886718527792642892513190888011242354452344437482881771982602900007792163877328579880910391857375699912996878577879700467344518044412201566004242313344204910549191817202984926884534825071983625430326183927553383096205894273159901754139939107684180675189007210700819639537276212473062441867198768159561715754828586366338414836047910885060448402657728312105041058721540701772567680962046805003562771483729376572695608419770052830409731516128477516532645305664546878329751892467514811552111377566233994058453970410127378727778894524074583919439809509954759231408039228340670311373809237152769928045676169946285422601158438859370803719911358637113294514504564751969324200150632614392565289497574000640659987061648466607675188077560225027369166964269137811886612700438057314945824890557619681075486929648581205526203632972454311063620172390660215756746769966561492200707757549810902369435386879449870911498588450478204879664474755372036229563523897953074551054445124575453527470387277826948187492091662189541064514764366986807761225643199288033253641799734443220418356911778099274663127615454167339003633849721575512028076494037772354198135958552451743582640255596761857460965627973181043685451088149314668832048721262907536268149881952742832338356317170608951974566855528190322451465629693358736347322998794672211725906413869853517239578423821616302678213674541884753501650065491822932426431000676990071091042117452785850007933078024409228891274973936793341596118468722936764902935845625034726915907455744873294188507530787816380685152135463597451023795454425639649089527004232026876284497409841649027506996975655367968415095478395399981090972051170474003443414084275705722508789878207455973576462223312713130999627724084261365785940849015806198366614485346405910496095135233046872487401573260692287439248106870330217010858074377002661955120621391891449512925639472683184659615563309623508535342204913874885489875007598486328521641213863555360068601176164163904070474284328840558639143761808534566527502970569581586652143625245138508671434354173275810040133530209080253974449911002297711691968493631500928137628368046664990234582932836042758415952366573601938129314281018014284331645082624560587155890706706393268641608291726375245628896809928463327697185752997726775901907245283674628441521770314434186200618918342352176172076464780780028812322950167839095842146806295084836833867143264118598106740430843725736639793651036759506052615669580613104481144988777776273034836636061295612860561497476206090028550930943217935857422573313117050878080802907162616965409066587715530386854494749901265199602353773181050918657404475729302881356574130949314687024854348571501856909116347307070987403853990000447950793964054934852024570141707063480768794233286618899570241232176769731844157014711389273455746832716840087840279683064732416796838029001928850264641090255018123662393706050953541673332270235847199684889834487716917607784225082288619354540217809207180928830115995752326654243063519697033276222818204100956311240426296261990065588832128332052998958363731460888025007282353388495174263321088354398000833818458338788316480074737345631092148896998082488586769543163492864897932787374048994781924532956583799954255609588817876160699693207935442874584499699260197236503846016660856758630745809669694374386053575848641396481016959012915420224588974637514915861780646665641706574314180050698306337249993989546779001304885923155428815547434382402822490907555885749148023098423058988483889004856128091791346537986100244664432498717244334835814391855073056913760922053470245905422746911260010193756424088903209770557021064554198060661353328907248594795140511435600868859539069290832514758213480933232238340359365944817420362466913575320166359153862171032359208476212836416021844510497835194104113252163789240256038885890266783427864664969269101039214365845182172305966414377535589166270738462711168411104338170801205632309442959038505391734338449532405709160149726638149170561357335684495822541085984813757209926824475333819047505326886108999484878613190687770070164420601221807337215287449270604628400014483606023633893689928622645354155574148916089592589986766999041391005912743646119724963101720028877212256636998006732831553345338173407057120408784703000954867720607214493569372910532973883043323867055571692318681595015001364848139179471258179786701729746020176970511784136760176415417104847161790792313506564038663578029266677740051136143739133481821493341354163223402335673658598585827101226870358114638675099101695678258191372831436599895611144653146758889499057634775882354684025391660225029802342373536066154208163426466390845569400549523356651160067499747390460202931393670866048698704889933588914003214364887671411795575092067233680298472039843056618987027564725060857537099440132872967913198382609988875054903783272713950008196985658733717192456975956810462577340828519752004719079393142468971993982201689651966045096258558626573040588084360517454209647511527827164297466745981179058608561466920890001695258354792204742571076759982207762160389430132890746952218519599401428486737239074537199947992951449279786864985577339609032781415629531886247465468217816327260842133497028491151834499106777324902698182488862434960018254193581589331447667083294939324724643407278925704962533737953878105189702958081293220415588497600288416811166592050443561249478335400568695251286142070874238650660770269266556129102606966983675359768211751292229492772555432223143791016750058330860687795889338595926172477499251308208994238661623641694094591488877162802046172079723507385595184320836458848693455398877906080979120796900692266983095237818581790284116193461089080954942283728545364121351487806590874234331864109698119184170504799245286027702743320363946245812373791651655259634903459649779390612664647252193446841270567566674247000131530855980800419574116379518264522502409456832674517254441877378640245907769505522683377190789381708985496332894183587073101078484495375753710866229141004043031418180752285825271791101102565239745783940980438569184279131186784544436337180178654458173377776583428105792828308626248267088108497796545118920178147308463591421903497930079733609963425822534742365243882522570089555061554308328999791713095363985296603334641086362482515403040020328631636405829357319927229311395317320985557105039301871403787539767690819138963186012730819595140548885524838616985458734678230023540232726162476956406764096274980643694568916793663024311498555197713614708354597446104552977576240853546617822552687527525950108398668300580732463776681143336368668420721031159066428940044054317568406733122485078238836858458808205386143165991317595408049053036169769768483348813069420516642823018093070381406297137979551149727571246210373304996521502977200788730785423037460331087789235597782461720551302677839141909156926957310141324607001737368061284904309677458466047409724308282285834560255410121218762341602264141515619099205974959890260986429749925696293374330830122616726457896628050572723139963228838116273304598339745657647179543486269312630041572182511923582687942224818352422210390745918387449550385283894751729532225912992579562741551353384403493608872748243342130402792642843511192160714793997436785929370593482101786931021268887278981681182528477806738584973422193339292196599277883734366392745454509874427261423154666832990410828975955051454682265732318966200486113097790943527322601990998846430226894883304502239904654264066312108131056873110749104247283033125312325686521953864316998850040289392967078596032198751527853098935556573860655697742810884018112178130654413069472180428829331532292144225537267089694529918928707203120389466519719231148602403571446169932000569638751675686657332767999954774194285103410650331199337215860754845962241915951245967482058058445880824945890100330090285227789411299441704089767470049726789984624699939097655155113114731079884009078057710915328083365437027347230812876088286357625302948506905494913248339951755589931149642214477126527059092782563483312902720975289449750003790079922688606042702118273208564578353364506376170072312589741304269990223339220473966566449485131825124452252325387454766927696711266207011878207086064437342458529389091983989273651476117713397267474524013699691777014573931673948576140151299401589325594140922190288913067179989415187552197056544889754774695527808727664721200836385806315924212182409776315692608291958971294644300559151898226582744123869409138345865016892630096144779708154168307963320143372659582539684060409422058461166232606452805809559747101438056770506381903256977272644773699709223676645351717536932094671590836915423817170250636734248429545263629323725982216597065757577030559594407090396338885980740073188385071838901137951082864331063344640170235570442465119711060068673295376564537366038337664044492714726675119184297047929845203240311479540529115502384829376123910084179847564502826393307028986294512860277557692635462757968844834980789693573161968702795927487664903213076569222715854078784873432879729803347426463722080737735101331578043741856064957592149707715208917250066505558008429877465170872404487407750298284358425014081733899494592995486671786019855390449626643579719363027086267767685043527995639204042312227621514346200152911348666241074317697315254193458662652919211024761263338560265409072727878367517866330702481483594292781539043414198003694688814439474999966793180458102103535559515447617874059154425652609611042322011343919732738249864011219161642574845188620922031689447924586696265556680251393260480417424904115801225057183417568028438236789774593823604694519931519824126592238459785689525083666363861847213883930029482061691330616788080876403690174596448268968696775667067402290288019103733711920641291958529319202868079935075029632428501692964266440460302936616937621505564223197659937622844349200902569944959746302758337634244923401404069793047772630718299570183831800278549021038747822972832452012530457280481992352656654205085840260775063356387443947204390961508664199046636768045758566381413747958905259991285624329823839096096437059506875815865700542180350131603764357107638384521752093410320239951167852184666948736970148989470146885964196726431939967788025781901944949760375118402228809819287505160045288708102557897905667420554598001020612721296929227294718234490761980399760150911972738984139694171473897229688789628904211105850593652890930307749214269899511159498238828549530756093557542234774923778607869732114450735600344334397909148715578843957814524053215262524177540994536824676532830186073020048446359547309664523960369802976166180231336958136089729264825896140460617004222744350107573578978206148938555359536404324097919615589586594729893506050640761406439640688013033251143243337289178488266396812946673471640957382028272834033041160674343228042075463439966102447488261755335044198586373844121869293530579225503110979579206264559205855219745835709897756502000868786949135979426151142926825299127377949525875590348121102847330823774051629073684461022440694634708348663468681072109113872730819113336485557001967801681614310216374142144136601666012981789568173290651863138071338918085949196478432149853150242195174052783935962088925778384760524273468605772548811538954182370362240599174892187661162899364949194306112884475933029982217316792243334508294273099419561016720827509611883137408337660588697395534165239425962810656875679710153151642913118255752024112837992096233300602850026536305358027392974507580766930784482492087272857826010645168330623587646035801523285181812337036445532110292979978643366025885890127806080011932586231195735813769045269530863082726070705095884120968113518445930856108615495810654961392825467603911913029365218700173942586386034197236344595250609320192589898761533721012484766293085151862072462997520478174640610311400845284401632421179112698322633393534100968984285416639015509791756443699757614809260375911858520150228776275246222097986632796196371382928851165712903765792208090709671069040592450894316915413612376127469132263909879826368589834899413957943059464970404232874799881013590889473275819322730332938273769570342700180702565322325140197098174976497128116252426147845402936551425169712640716929237617248070367731046840534861872120998214465201681909208342101980061186816979755251673766312934073263151013175224881501182564364517892090733725424522519909329373174393409550218097537836309843164635180284063231784005665790188608888657688377721141410268831841814022083436444637812490372480756148386104664832718729741453374481173099490781469508213323676616575575378375074406808538349009779864706985007889354108808204373883611711489386770014314734206173654514658338364675895916123557573965964405552836766276429245302245337083222615236338824478111867532024816088449470541707421791860093656569251115078961175690683291267036853682150921847898741054785972869408675413296769865929432143324859378916747144420866905493600611166810503542226653887330163053065821745112445281639260094405643063613925088003740695703797862032446459291977609817683965089758929583649684262893751305655687332250993797746614269622660319078320771383833737858321311715944980073908291570502742203048615704524181440993548987596288696844433515497284018663144807797048707403690121265241919457810580491626298694957920256388650740739314146897932598437428710577119618604735009203920128935903151894196607049261647151413098812850113775076197267228173408133393325111861047795077971330539660669895190064158883488066075648617830663282608912528698540761505481828127943072208113817708117646561639712125604047971127527626943035468201451523278757509407232030508397473939249311481519105568300560153822737103107761417336730344718358223548793643377268623334008555301052731198176930448941179195450848010450420844027899385320546788522725711189892966674285563861753808471896955689312890660007771614521653966280228286974890518807821833456377305890118751051114005242746443031452038511561348274129184682913457455840249900728691630335984497492694261095322989968348797412442286115877457693196816944319737926065682397726592565533544597131173690194812576060673949087573520783381983764167793089346240017056676053422429442704330140651544537755875380267290812895594610040015816744371514547730886406916892161506161153380882210593219089185788871361280835105547472841486488848462519632161578953450712520391981327289351984078493574239969754139311841088717023868328117175619215936882930680828460161093812953310587091467509601736378176721158524089967841916684702601621212064671617169545268259690701847291342581640516816392617474596175522303882501981087471499208315572843855871907902247640706709750450565517480456728588165440691810285582958626868587218478078762196403651486789365364149455897189315170833659844256208134658522395777007609962834252382033181690988318821241546366119192768365214975466979008410961938081782163836975917914055054079750407304485965171619448745008076365113807028045097187298400790774452344592278826198909632940061315031282593773282390071208068662499123689754814915804741919974807868711351548686815683864315844208462289335424345318659379106829133117871444797401300949044093694719370613443035200300978480825144751587534152816856318479865856854512116972115417132063076809495031713732250215816631113072631693535297868459542560788358451357696140010379907961623726719912005412352319559619099314394800849758496768918405362610364120586634974475565701075021769572241287397998134831808348380222361898390746674820365511058300765723811993249728347063741573027518970880473314407224276188796242255925280234257776614192390451832882317241226903456270429057329990129241213272437772467207727657022818236995955438217416312712078882137906691769076552901890340097455983647857882587652039599595671252662666972430187202713058612720804595705748969280944223578601684944357592844968424381368911991523473659664718451729718933419455557463320773797456133023955486106013682649444210859479025502861506639702323660450067426853103515961308662709935112575845464965860510427719179580570991659470213912827408802102054140554739081118521395664212122766308352622364272262357589927643338185832980925389735425081430163403223368102350273010692705304450110596031838818456740229687527297061755603867517895035296083070425379563424096294623438497405177134619110846020058089030082076716601403651070675989300075142102014830397383236001837538325242009713913107653447588370236897612356010818459203760176734010658747247890147912899127155410912700828083547541403535394755632851348255013786905101764886746169757018058143375466346062499817612091466301061410782374131856147055060415876728596500221337419772662019546169962152048221810289236624501807239118179007492868294592193455550226292915951576418639157889241524252047687430801078548721346157062045207510682129965635528562020357565851506074948935718008958438516107999905611326053384294749018556380151418445554720426213134879737782458136955371659305613242509918977134695385975906027268346556962123984060745298475666850595326762633649479975736583616806641996873218909839305377364216350240501592664364681406495620563198041534867383519617855447795323681679670148000339297897242353402810443474112876564223701150899349772282050385912984937301402023474127670756667521369649004263089873355273449974972798128921691325503359714341349120280245074029696349881935139666905235652051477531853969032332827627024062127428314060911403591105639102757740585336994517351026060992001901239451743357181889872854800185529879021857384178680427085614627559250278280826074096495133018731983804576288926292975867444302317946258715981295769096889120892310621597450959301199710409385464596722585186215290476848082129991508878112085350358396254327092862935145149330714705481037563633482160696513887507770666037238549341310805236869144672207509930563438910381418972796334651404471051798916929131849080327027208904285913193065720690704625198866088128616692270511960276303214211442612037719785188935653181729189832495957372888515720386764982265432641385055302644086027832882115045254839676694645128764444421799137639838679551220388571299582128749451620903855460199155225232603350338928902513171805107163216119713312864141523161137280728588111942051156257103130308162231462401355767745494883700852401710702755554138351053495681898235793824163179770578150241565828772089608604232517052068012218753814859785419735502423473983117493427062156021954000867866911446782176303601364554045633726199436514002299545511352569430790787627014300805094055234888256670145073130220245789662380920836029821441793906934929175330364458432976979914396622398266492518156929820243635770768207902775394106641297863453530824176206147895238805065585291749836872215000095317877385965992301584188788082071814307707828926734364878180066796231996026728279935704604487986156264285768020113664316140374443938399385255520821481288229681009299167951545576154236484167969430139752617721463321955509800251193698664405972730506815721661389882728859573073273571588091633043323838420596646673564627706247714931303293961894841180071201027358943511471486388008769824089197848988668529241149390361583682415102411490868669435628329141380164316768067520635183798288693272493904338477621971099179551544783804449917547735863905763863404724283535417582628413749232308519393060273911296085273654475941426914583494641965190385620623706805463897333908913710838624883265198900789554086846565623347466156369120093996689045623520364745413044250701817375560760870422105405504486640020434322548541715712869970349776943512238274497521508815497764984551800382370865860796554459331354232093879926456175587764585205992714753466666698911949327200665424894993188914939897410826118654854559499558869850121963121781084699972453528758147231966141523311868590778057667613146510071712266207281042738365603247798225218723679033379165766564183663423495984876012539152207241830534963379986239535585196699786720718123594192561492402140539982660837054316482800826596800829252290986697912648343139527415063660695954311023644218266820873546128745220189136879716483931592198825540825611595113922528072616647953982401261632135817103803371880751981134323375543231029194602782497636127862053133930285848164634481298583246908793489368851259213772588700609171568503975400727082364526288176168431081860163358848151396171285681862155655024635037482931651845252816995022924912100115982463572927061738806187255243648833325491217985764317313189060033512375316100496399253904130869196793882535516077519556879938340990073921757705387833917008758336533566147091115406322086472775434280868782769632115055589089173367275399427313581000594569399741776570460989020889564085561714168241571295529543370833568577415652232263904618856438860185789512593156632495931434463298925917107488416433049247756954933250950523459659811312613260361062010371260223646874245059406771120034990533276157285581283541568045454378303266149991586386797288816204465402797840296871534238871312571444511190384673321706881227200544295938357896472387095149640766552418046886088450024001843367911582239404857065688034117306010430076345782393287779891794921910899785539025878449575672318740664265974848327780801235432156387714663908906333229087475607399710168897244984106342399904917473127379569711655035815840595752368518590118756099131745344022136463376795859534331266270044760650630651310853981027005801850801340302461618075657636942992843740754190015183330740159836809236198379476627987987544017142011859118594490140954586848811487822502674223671049226158582497938528056170080119654886585678716766898257916044237171687989318706301353761354717610231788174332140013877151030524787291065108310118740824813273153293359250405183212541953775356768255332478284066646950549404250175291264893907492047545539388884338591522941114942210301617048620030824851830502016201273792623851499716199057235921266244698570861202484776667258044378157247706523465372185287831786868213935746237497203022052403690204016727362595302450803554595321602720785543127028601555618691706339996269254614559379324092724450089657659626349175139407627796455779822748205041778520569234791055091212915487651482572195067486231212468272606564172058870762126163673650411833749545010591544479124511542313332324916671410113069259221975623665326296458816254279731527684805994360453873637538640925149560241182011264086433870305674735775248678376980239999917930617185548892735384423861455590900072429511517518464135991024749515075928628996230545181107604597913647175217035437748728959850727999513754985698806580035729540870574124330754617421190596527098882703227200822858684189212911192186953701887450677179841655038424269725730900742569376160234947738484540439833563457095264846057596013849160358610172090342209742510165433824606830029842177145302897650568736383295014646884163094145845345889868458451902981346842535536488056810029769660334125710420828581891826186780350879036846892844075859261229077118392286347935895628719613542408689102553590387318707448449012969958494984616130642820246995080722990923956128259298321722793396426385049846865788462283630598035527279873512772880715162216801033708293805415836307195819441701813278932802402873465793719601379931607593795686424207182413220992004440491764867133525021844313105903015497899636857333133449669640471490219874709821352688253068323009088246003795373823475706604738664166138068316775543660802679719149666037917183328760619899763182413526917472912232099744022628423081009249410897253863803559352943978403217392109617242790062280834248938647555517144334787163216627174623938718520857269090788248248460037643098473933265224052138794862482697292495356335671485698791093354643180830308350138132491642887310344548762933494216797489220111271323067979384679255474401587246187620934638894658532505552677912659099510960108074313520671296468621135560668134857743149151127338118647318178967550353886911568574734615107060362787500164130703164166227716867296061922759477506781610314502148626279116579263035822647655442720820028421375611725951252358949205133740452622080282751705353282837203778598047299444821640016694412482095539242544714451378895664209483937302039907554293998219315143617747152533244347553174001574040900675545371222870028723876092086590307539740115497654062782274058270080154205694305678733860261190201459012350924168662058506159720063358947604349680906288781793790555426520707584536339164603219086049413553324344704379560719941248366786403816963059927724906042949172755111025545840111435883068228259279215055728168349276950359212015686056844568494162397620611868752699914055046954427583130113907717227154584866451509708107959634262901644734599369917945484820494221915239097633437148838038055934056181785800214519779822283474001890494992937358265136809520187425819818355417576219316897970596579263374286081119456008206237795433892480006405819384432575236092509400117932874156336757643391004917207909427541709226981665146883941801971874748269133326453763636859752091309501356172330384943876986385417111220816857750920350384312097959424522649332290988732528948632131433147339954734158406429812884229399426021744824457567477380331199921832456477341843484118274734394836686675832914708718525168625434498343914048641162100570603622443035703653145319992393482120475569597623444073794051840928498881087759409016048262344341064761052434043764214970641556376036123077182850848121156280663943808975499381316704478684976532642778265219402644447629297472677434973848334813793112804289848969417067085756467553613397532635613933958227749570742783044909851167048865757602889514480899605073949964974583322391421346632587045419496907475140633867763377495547695524653756172749736398812467148018518116932372809523990557541431169166731170731582668773056345290934597710441919793043961265911254041280787929869973349453215178768078591598530908226941118608647996071077384560982842960678454090931835634991962301726354464579815083039867438534978722624311540434169269584401575656068496847169451549341668922583272454682298717902483475286851633978539285853533800982906645547651807774906087310671925908789976616748795956436717403061599390170261041117512957550191999986342763490726966387457898974668624133638395776076318040316526092373547677554410328359502776693990826586430590543259137926374818167004988551359378820091325510454693000392331067886290621429494349114670396424311700139058642879484136058443666234608197200246313854457192626984873473319022838089892040680725598333826926453905187143740143272752915863428193450207882671573810939087334733935511938054108606979582640463757362989352626499919074401319176230239404203416343630611550008840345001133325407477350109564257656582905528454657505467569109940507013508528397493644518146900054255901939700831971115434713675348524059709825807446553587437274088608717766726804241738092657603250384010714283242616507972564343929670958193048437410394546571530511292663625058164316930835218890929877200380926851962243478719770877503502158638511641995897282311259853293623973170670138553460445859782270958717727315187010906461178999065994987617255437028952614466487926697896922674418990756754207366141232152702011178249415251032557032620481961009152968917941486181549675283286238370370411427801829886855745235425323702982810731388594082055349004832414471927965757960940451631646657791739640788862681116551269763239407708118355308968517315181878959216671624913831716005752673276360137390279334506045615902412691543042531231255950834832870730757008537831898284250717160695772105783592848619142113693024655747384391067671182999384803364311884214392989391036195250262105220664588094178327838839940963326238389141807227053978067576211914151678767402545712299594804183511611326505941811351677055099845285990193915992895503505178699261949187053209913436084478923690976675446391332995823930591356609403479980238009754305436920879059605033805818153072890158560161919082578177548543963307955943326782257537227439465594959866646996780214057323636702171008571676511958337720219598799073220837510674041046567660888877781440063803812391879968171495261554109429985955243845127568594112402843272798425888664917027498389392103318041028446315418008221732664718061234803382771851324559708654870589794019807513090053116365400972562802340099158826684715952355404431529370865257486118466080940874531847297755773612398189940694178552134346021160725545296607947580469969514287193401037495037521664651821945415446480104118283777300679859786075275380828999321401306740716790459729376560559043470729822228912395889787142131232885997562188654775533679011134663014198313381376582761864347080158273619476465207297898618330693178208311475189777725962264280263571033135744283562944751874641684351785818354668066115962304572210176210783359484023923351205910878008111292522164281088680772091684998758387534209126047195792575745505720123258184287303376492202464117844087030156709460437877072597919362464256526997052716081411839045905325339154191507349796880912580283872873739779792447665208424695038990705797963524836015890214003543112295057028858779023202758651229956200246896291851378373990009058449259824944928561815990841757026075463877983323558794305565451932079458070539978451952151726697082197111795323081807373700872577401468405414749212729388839945020428828020218464717781286404593878051348394313960835359910644318923092732968750252491026909732741238895090978858833551813035929357821982015731368276948200012758934794104554333569971779467723571514591711504284784409877382705494713402136096858071079135208435521029572295653973460937490973166940546079175672796418914599025291872640853831062810213354983753653037511079534128848566250788701847653133869623809338278161518534245662598818360541753539132815531353175034892642530152754779635746133067614957524135723591802696259428158228328194955959919629648180393277709917566230122094626747366027572184373433814813318963946211522805905641740666772584285067868587550968690604033524973236121311194923099657203014767480153057161019337439085002913852966484507753235880917844286351706507671899008018456773656285128526836551659339116398047607961375327547290382425809171704139966984548970627156833876151249059124453659635430805810966555253688104217691042180918814307514554858017730982450593592052662865649792079169267778470562040626440071192212213119902266221669725568205035639216309858585605698698583842280539314988481505781165655766024558189140095032561724463265267432419178689350538748986290733030732205592825475595508150076957441593600143166879375934465839729088491838411505984156982484580597426073210215262998937779363931290062638153442454442533887491413463905042264799101253039122549757496638411834250147083144716501307864819392844973454134110590103552363513258141673607792031951888536582664356641563820302037380004030123475538471066965378458498019142002424936632259736877596741599109302700140637108765711479098208658659527358323067505370465495057048392042984754696041266274109699132016394234102294171373602836688363197434344446936756405278250068562084596253396590920233261021575334189614682908605821112832491193524482633190765527681938755191283366544389989033599858007053783948248765693550710276943454753804668788216773476933477843614880744278540464239294746246084242390104583091934271429912817884774917982083550218030524563965963515714303521588926702376231379153501460586255066897371333083097284160578212821275669816224994310225111051330863900678583222561064710364923718851919941739318803182377092452694125445598619425847580451293127632778521681833375232152080288995956054998567526039823960011804367163649141201810430042908144284911988456031103741904498772709533184450492705096384792142869573246703420072716154569226177724267149329800127774865501975989766832321533318096364411547582471981538198743643648455915884880195214899362342236090478938560322246587462087460434498778216449150494931050952911661164794811238359020940665552050351430228343344060808902384402636150329780469848065118632099102118687181051106981019353145367231627346773532691546426574788494214425374325608114959431414826291039762541177336000271746981255708239250205377539567085345754378171596559152957022003030551238666306175574677295872533183558553914443302151176617508094282722711942492352205475492529593763244338517458534986550415875645131491290862608808341021626903919476604464287468420241703633476368940577673535620498866417526490567176298554993844207340724381554482496270105951195026990304487787266881530569451132025550803456421221560097919187849549315546099762646601036893625236283550283884073344219092263091387119096838383624484775892711215359191385558551569216758816662167732261547941892367387148973037527298872950257055526012015015851371435999472361022706060445359018895244819822445702487084340247353045701785810437984745685824637870593420254894751147398635722871671879486419722026871826150231539897678924421654702497000630280973229228282683689254772985356475654095516407549123165272992061079278935038486268533534750267980206861913425731937555057082222906955833481914281815386053203128709010659537927820577268192708803359131596031286171698258141444832088976468377342413755392927689368870838538821679118090562667937530910287821760752362091902088871509243506202621485938732929460033258177047180179420733800920891514744476593103513232867457632876515334372910060358449576703290823258253676411494099060048585672926456777405252648344440801852262091262700824565341475822874678594106632235232331943851590495998479838587434186346716648953166920528533658666767689414288593838256542606639433123241264296589726040769961410144992882416217537473051282113366333454089895570656950064727061791869031288658682332954662689826903188801709631968390861454382225887170311588085983718518298807044703654546882603588803271784942072204343246302277669903703409927166627650726202008709579816948564530730365214413066487176859825417265436507605420884673979074205956857162120670935071161400260998478359010060535664206550021694253371088811978473138000508445791856598764632779174988945253333250193346678872348596171016199123042814185861757025572820603835607113662368366600097738078324783092994712363285059273043742039709192510025949889466410704832265268648703834263597220523727531084730721394939213611224608049954002485943832022679154303843200402155521437758420291072905804060440081738356557899334975752699968475116581859541315091580095646045481473994527816329908398332254088794734482459691400552650269884779207646951122566688137269814874125646917269280315595053781271885991549830835044925803112762567276670589189990942879591811528471213219346103860825492156791123046238322452218886796899593010336800638516723603116859231039439164339573102661617204793402521378388813769303922353154046451386598734083391443319137618851475372693845199090878492564064894185911635510255244513972193114995720251816692782854328082773526085979790971055229426763073046576371008931817667499687427356305795529684907306116376510430777296997906518773724988662571772440858894681592113780743298125540406879939015583921017417747002767959115529296362597051785605506816549856328035389473398719965192119487585480728177835426039150657639917892458562156807629712331708592417137286127579689303920747402594335887845974908490630823919962705598620920476336728911889573139322243276902933112967768866839119741157439746444041994000895675709856912870330509074212274637422733461217658879353295023656385022189022371054410753705060872626725437985147260760391339759477679148935103454476060031612899339985215125504476681867088710122085807056418132320699692702052235036714557131518904744317476746051634548312392869841431998022241986477025811034692544203919269634212226090306611969325118620725264912886576332762500956311122193345328387756877717635705814527235179788733000184441453280749203928053621732790266174486443706574139677545330275614460705036548760021462188509055220924229593519673928648661423709375475267749937306270837192405493968491190081545732265006909595885443655534144433533903485155126230826151237600068258773409015246631286524811561674633958873254915160782156039017565383643726756424749499771701027440871209014079124825624716253946044899439006708936170194124269093785279355935915999200268700909796025382638473112155865906672285587627448574660920691646269048868921060348610493035389248640525811880956968193984962351102401143804745747604139030819745544606895401221390905575578060462069325219873065633086433912959714291754321950835051361270975951922552828323238346759043388629742701520503370928823945015396420403654500245281426588598090548356273515836756630822668507432767834725593701418379195244796649611268883584778019401519515853732797814732984286805639960444076435792666948703495019178918797375454853697467829771642946013525698260027949253307575775982406032464688414458805649187022242431211996393705037621597318665193447710396551154589048531153687493857764890352311670549915983661854365283169127858207509035185051463334404034424537657368303643166250062628927771508777695790406311939787360878268003347761600054264270024826250831436203879880083851053623052901226338808920200393262290739614450311429693497778902166966225543914852594896022208310759698002221374009412173873094054674410417603834202062950306713221568234611007603900645729544556294923771922465161603789329190943710161862829460777047342566872122381875881150745202434443374227595288520985969135835233356139237413646848945634342889010927778649504895498492406891862484862328124704745676902531090598482518336343992981947509094302232729027105240042333585511410042851405351420858059258703407627254019741882124218819941974957097404874348698573597894711103100408521121022830324291664473309232388464391877653111328105154179298286501965670893214956071537610229931149825881136201256668468716676434948751274595477443288796727891385702466083076453654209997981123817882795821431534878586755644610188668680370099616076801250702747138123955631336594271676158407329052841584798429059631864628719260253623490019689902275697903220790101149007204525060175557296817399539989576188708445591216004470660914580309221674438380132982502727185896957029071752593261422954329671846148705619950500648696416908163152353510378361588598761897490788141980909743296482619045305325042301990435925117094374395573307978532546059140040045124326413745034213948186373337318588735214362571858359188429353730303488958326105194758207203946884684939481933151813325407028340199748115399100910855700032635803287878337076476771186761973993061713237934993289708219841933946542390358249070723509275981012301646050476359545835755853359673371226103268205063594069169961967562108424551326629488830797915351092155008605347943441610941993831952171174136495391621678087196324009146849867950086010802196573075285258632937428011233730203287109677481697512320298208745944976792398553208173201353959253347017727273450996780855312392144590084345224454541631696916213566385325970606398379863647302557415692096614793059407301914563332663780330059035143391556601858645432871508251686555856813823453065294637267007434260727854505004212458124185902026161324998988471635467166184214822213591161130442915549405992180238002421863901050010624976960240490065418989644959724604421526329198940785225472611367560945241113242202722019366798377302351651036311254789615193947302528106358490229664340211403343371240209703760184918704338341410795235124411673930122595884075409361307116093863898006772330405115950321849863255280062374892713960561742922415869123693584692596592285279339461028317131364165308389375727839022431732981232647023840526019757035173270252741483593544240268848323674174680769033214715539522936058012284206847377397077627383246483626197345828235183229496374705040004360789258784522507944329085059863898980627863979579276045872634477305736974381831944985211034061721410276956671825659299075130458766617312919465675432517856112087642749507351880172294981891884279046159252935593044980722927800641302392561633276301484680883226533290710894961578088581275618016436310991395261739953540329080090712980372790744883206025949546263237838205374654659755394286245761770747477616646903834921730870779467313874001347049515860889274726969380054841671103647976005311612492530468351256753044006580377560685184242240523422308882504400694818735285478085585065540946891701794289229947988010322708407512511312759689911404970605353685997222152090052462337043246068286177508189326661439531925982739757635442097533072072201998146370883079614055314459404277392664287534183940794662203922061942355553474468008905602291357953845426527507646080143793431492643910494606010498754383206015072835405545678951618196439421775646956374415824964309581675884855457180256795357730428310982052491420813990235765000218808789649729979977813653835486776368880026404404150209318247078837143535843222984979287273123804868776897246128795302601579250184638506359720043159475850909430508809585903107273913685240758371153935159115983329231034917826451251313823852836109591855640004395306188445870728179766437031594450852377970801416472357735142943067081773136399856739389985500515700691368910068345042842533688536019008192288696416981530350621702821616224751121034156521231593982998628551211172962040331054909167255582693995778482491717609155554249676174197869574979876039069255562898552008284611177763666944149919601852776767878662410461838905085645737810068076188265780738505809455333999847250195228785069464966759394364036704508592198870716260838957387008171980971911343553217016576937758266168847246447597666615856350699028331838261676755152932269825997860732807693811751144307784299228425536507436965971375528501237482763697034543818645982196781255723022406282580248957250049979447274880287319126370670966616779898303304285854153113376126408202621499436537623878061200404429175618524217182209631817728502495800093307033033321707477809089280517194900083879888863286757624539844542931363647287031845050138573888180028595028146762490138415424000294833376104859637196327312978361949869998974381323031669315257302476299734314718092105082443278589032878557864312118359736799920543435852317424328800970228118856789564805263920075782787129076848799152415992821649865311607330687435590286241502404300990500448890611316499337584030987647473017560708707097547884810798204750900945376502547432315458254293882668149249195493653174259021064461263235545477034119029121671262835169079166249580628415330510294359016543740597829938226845763712236403404065476138307610617156363984342048426851990487691877959602166381418350821101831584552010358806934632567083874670937133573882455397300046740987123390154556330603066502820282325082717550070716955954727850178321316055653139055127801329598898896147112553276809557653002239990153598140478804332832683662837207232282915498857049248961382368701652572338390988630481150633139924802996656280448977107703944538770892043671882550938462235874052030075363972666085686003344093915012986112922343324812750117341866662184027900330626869426644900658687556798953846353057726795480262447663079346616936554712781650151930869985947740489894400135605623999453968159991351904793686972664033882106590813159126307235007446630469965108943913601493922846524606401621023921731025272936515090281161478959580823476628401078548248950013696614899256313734980849272253005604433272796618809112281509619833100607814373359114511490786270874896414060552900005966210567013408654933221732152406001273916202009334236020806456593637656639785757848960826395864874075236727044958788030792672014404264718206711402023443751689264457818812300676436599938037720869723699160928922361588714716254566050971525226807429874434481196606983244325653268635506703395442723758724441802359556086218907239472229401994344298708147999126482234011123852654604701037093598507511921603067661643768130389652635890269930087924298556206625291081292557118469826280264398568264845399954360589788514385730752889237831456579884987416709513490988666027958249030077295076325620591594244114689859392424968716805544773636767087939116045206795117654338216157528305869057151315053229819008364261950572748502722309756805510201255005669699391276704202711023264802730484352878116022555696720265684652130772336752961056610430444569666067963770190247865106195725897742539666828829502763230256800441182344020173219532448684988716044992581591844394917974354995466989801752746722632358013332284312181570360384562721464347650075017909904639876797510482228645004790834787080336337533860242675117754067569027183207646141325598329866083260588073103240140348725339377797393843333561819139095169907827346350950025878843895609904471204288538038779301102579417620913620443979047797313299715589387068545404841530886709071632988053350070765272952442326211511656993096264858880641578506021872041958169316461311544169289431530005098886543220338275668211597494062453658937234674549799601164523421996568654714109402872594833178909400143424760577165959206001985061107800764102362689995719511666108537673869813312084027726478032753084665947867139073265926078260784624711413134753852587730593988512298887599592988695947085875316932832960353713160588355617279545244875004841884684795413108208501762885084412022965904154426248721928378715339615484465010348181757182130498996145430184727600206490957362216733093372457344840054185761555737875482240181982028696800110821218348513858573756219586277559624350120674483323732921489068619026944523783902593359096812091432028747297117479928827224559402142171242886130888306395086215567207343912840441248273099021021408683714999538776253291983461098313454347200424304521494303889758964915273367426024084539557867729438203099725412337528086060697273860784034534287440573483627185293241408818688351576888734573258329241138305592394398580244195867957740315037220015207226871813713052754584434141484860676742220311578553878958785752864832515637826734357975271389839627096953308760545078126584085214468180938166209086354878291691167504409310857811381568887702288119963551033535701017319508840322355374710141148084689419921781403643956438100784298835226880349150192750616297312282845270756973930969888937695626703591781879354270296365261363555201081723269242057133253943564737608752752226261428708096881028442684237689170045742967080696147684829060720385643861092568836167817808554570725248460635532097075206299791270054668034552689802497139781910636137834394716007716960671810836008961691596465201947324889030828505249104089434722236185036275597988508828245343108040865873792001117542409864957807222123191058176488316125045141173501649160496050389254081994008556415346685354503199759848126325636635395853713828794773126101168299276034269864237360942661909596949288214382491901469736080269139033256279713562092032056857194725906542655000523463125076795654320794409058220148490075703087265092276078882923206669075375796857199272401237418884093884499051519070378596394405805517175885194714841040009102094156042128346544850684635659015902334721462032112140765202389440321760558253437408842450217518225669036903665956032721758066913806065810923831951699852143649827691422571761272176542474544946846385659786751403608414998855748341763218227826816796812398333096736143920054938553768681246087270257760915666203174837606721100408434682375781362396032547490227262044845941955724313329942693195170932200839485605009510398137517731614532318189108791464337170128027661744895726685640761900420656243299486571685065217243514360679180644460017082957100090627329391887315074860172864651862816622971724659933134947403098263800922953330765345386347094992005970778873726959615055842716545567102994709738362219796093398028334032977881593998749986574614198048714037163314240122792725355406061382308120160930730304711578562237974235620236026822430000413374246877777234290317764358392618290110251780464876341585579152726866125134315698053470992702335623179867025672115503126654143143875095512176767819179720660781349905314117633476873236330279828062301765435229884668554066909937835046587305055860523836612805395621128849975338852964392034841276852559085138332250955727785650975690838173586697565099983002294566197721426597799087843706341978182570921176316736824821813385696862104402058556522428234781760886937062960428431386251681875142289472056846991725806328379734565450127222838414691591935749913939374562302067032894011025612399648873175454981650889581471810143763590853319962480641294574713281598741767530904283645993994129506932374346998034755457109140491856503705839545952221168429161128348113667426918427890609208902391367791790979523120349559906721270619346848203761003540844553682527000178833894057400280739731684544715718497596648758176721884590724604113825504579092993722402678624436893769367709342246286616521267151159043311098985268564431522381309376452589907497866532664051829851533255922974241592408595975683736510693283098675991620119192452940874096993330966756341395004228621501060878731953100434477562641266227137365553475470255076936966119601602905933497932015161170436216625897687488615516749856524231301222785475782556141590065426057280981207951604814399880517024866883691800049103959625790504832450371634315253508015321052810548665750268860389859139068553395439933528041391484746679526778222532160511476542706281796801835113879907303802769157439016898635961870867296231189699766847100900449193632541681533777582752009393104777801649746473611563721447170535654347066957779037137277612314298656584042339997238674986984711108654985107611591695890534848089848676094983005421370176255418656522708085468538154713488596069180665850618205400768560506350459222008714665294773363727638344467281904265502842232897748253742182365398130688177598544158523711760780668937263821748548368270290538256170564354756917411399078437055451864794407682628143482283188432244602666032086507730506871420862467548075099709703123933543659884910218597269773453369262437628785203284340656162169337849708625016913413150348171935834289404233887914142442977260120375486236853550346114551311250476221871732254890960895221644192497796381553230906734471695882486083190565808930401728510770817634361673391606857318763656644736170708123571786790485092971814458827417210832191015971106362093610029923408331180336893608769414673349802750003951337393687902019255362719306357831644750172302383058134806005049356947460996529112191919529311360556095296473221232092813899217286445050889190801852356284819651159475566436958579296061599691848186982917124406713083242404170150063751611237970231035754715885919857163033854629276159214289212350971923176165785039742049137327289975798081527463541144820866225648386097212389184034645813539439216079467686884520968579577452225131690223995239091900868262415476732210656454899828658370162052434399548389440186369338998456357745680260385179278894873298819164691371478599268842826592988132627176567972615795559762428927377552576174486837682000480719093826185472109943536669290643295942789354369681717192270070008083905100188414713129497351162915716860314013697493459072875462732578937342925211318191311533199834495591242837434060896517324798201812464752220444690106746495526562278500797134321690636065853289418594595193338753162227989500751028091117538731308469913759752597080487332589634260449951843533323715241450935014512391516809718856277981234309675546799454987757517416754803479531756844639315873836043317505151076754489863738462440499600752700063789095844226318994227270815362635983891421588448829669629033388155714764513461630433895225372563332485727489706603596295667116807385290542596101594598852498528745927517612169254746305399824917944615773735844956045051032072483869027306251430410846043453256642304868327638454539266140164225886419215371236132518020896257702139679602693961025864156686210757711253018088033041527923572192334744003590045894267880844837925927831347362681116248422860769431664613334870434401860161485131974271768615975058829156949487541430104838714863423991858390569787839969482179094118999752325868072455261235247222914270620107105303566731071991787536524376550103022092978834559505378212017962072902337765944428766786201899384187824489703290970155474403694882773186762188654678320718178680979374032433184587571937591254086542249871145965966941785985910631791317775037920430784783301580434746380966743758080279053326369409864127210342832354572376971070109781563115532117995331442598751935549841295215829952901768958084806865319196251193399693996659464247478588410691863275346783506913113382831298974229124673979045167674048973983373494603999216155366656912220530174929360320129046115508273422537128141914527418161930599508285343736173575103609504801549863682317004631230383386218758672458714670495782694289766509116050206460556434114433499400724868777127644763426446649202218172445671286835134215757294272634480126481215421791547756462727846779066893449734615923252172297658942539548603403638514201931138028250102329783621131905901504769601433730304131377514466544211215745184935113623866191103129098324464203672371635982345324974210675300070840948853486525487122384778292704835448494725856707269592919562128838528481636819310106000111458338811961814774911684125846030267410414466448011733942038211768511956681599914660411820415235050722060651240438635663959723410878656542352871479552958262157774301842041734016709828127898822575998155767596371865452157151376911653415968472635552350265615684633739413402280619379244942613610067136933028545617344216574699847236321495646637140510516045368235709417364891294005189460718416629743961724751773359694145008142892891124985438109282436406267857421929998804785378404817910104884723725654402488586805984920673692545813777913104561458278427418755868038772074632296396011793255014529920612108114223025914796564531901319892124514161886692730279306085690909152871508985044332398063183564523603738160540951614320566000034396977199229564700600476594502877876178670178382296722739527121650963891136945873212926569380155366820430666370926833193056398244045525843502719919019819213814833650080268900313957677955293793365506966100998486291188307789744559778104534150582800441657889985097972341780102215510106514965084940258223424530950394710828978833841500882006669802665688836790600502510872321726915321396496989609411348316008609620338688286059104840647080130278125349214084891437504308154685665989008263874453510628955398373022925068848333539221474322838552480348322999432485001764022395417755366351386637242224976502572960658664402374302886471669457519920895590007424406929680792333604977105421454453381263047608764356425917560882837954170163567291236771158626673059242859772822238618697530983479954304695708960226178447815085743908708525916337462242536764294158879316678051155861225395319543945838913851062182009928131757491992601552386352421261701329699153901136802681385825656959213246438709681841967496878443802513805794234303247997244958639090949978063960976839997693755854071256542024918756965950482663409486056086850634807650587724517641621093658564136546813020126220552401878927793340635310584614250670943478541410262766256631377014022939448212290092933487750782352600546426026710122247580378337383409635054964462484753610054638501226140084199200182411988896006825254230472155282676858021890492656192020017135343011717213496272063277719175852304827094423696769972512138990664016925081744633740889495029763949696523251640429393542489508964671483316624102520978407268951451382100401329097019716471005750925891071295747060528760672145498054091439205870469990907533363217002521947507453933967179637618801210241795142914755342045989831168468892950447290617869327548333713516376442161717920276509207539629369524029449914994527314019462602888814229106242790342825909863687077629694576498204558563665698175879682775824715098483538553364789452788169871430868259834863045637100795024039439202374607364691927259411932324985983646852638039829630637764072814589267429658806790018464971501453049313090607479486109137855051322609510841987016222541255682029923469969242630902143910606983018430964745544205226563939817526943916908788164932300182395911715357383423228598279894744916520572802490416795666374643584425188293878215290331388980952976328962591716416805423803184549335613223753771676892395809816736798275663303239535976181387120263643112587712108855765370646263543575273277171557355585191634904741559269247303202709268200311401567356271075792374369044064123976790496028400764618527415444223239727011890570934623265299282849551101933054814247567592235184831570092708243610320223072215192462637495796764509945386523348171867154479147948075159384716121668881335206850199573037562414123804428111295426316690691031890513005995824034489694741372021207305765033532541605130264328365662506788760812191631806025036726808994555726074446618563237770451819153352262334061475333019718928299642290432442270563455680007534411093472980066394125972695125471117052729171417337068345345409425244878630055741260714505012766108835730022177963043556819119720995529187113105696274266823180803118218120626209400732906360380029771855809028363460579074798563704178443238045552837367660065785327803363130872246353839255495711376355436578677741228478542091191605864856237084615073745006739527379253799768776116738575219683381803888349669653069804115554233947654624618436194324055212087680196038608976455130297125421532213037244902947758570358530321710204713552755410224939401729887082706414438057689430920142729499614686005739801939814409756520873964687608835977434980993957310317982571417726364666536194093143900388181298229831522191063210367265903866849388875477057693981222732082691251567454797289444580506767310442909875720622305708779494065518272177982603015388335594059368629139074073509004282209322024582358951958163349875809756748377155012028205024134463697451898413239962372444407403502058771859333439024785509983969444414941626158273575105207046560100057913628951800353002785677656069630394928417784536267988561611749156510048402215079011773116127693442375426884317668467394778937721948263445978522343990750428769143021130637427210966714618851170121370813436447406125325319985029459407473998050058022443833280665526647118273618222842183595276092944687326980444913362741812399775169139535457274603892467022762895247463208297096949783057115457661718555979619604948707112588728039717968081141144726855940718227340471894021003847871439244024704455239399521394073854874372961707690067402737947983979574677987831044654638801195465963710284502341682131206297973375655478270110259446635944491066000692195562807960876045611687244560732227539790139285068581579130593422765699639023996172230437471178079461502967068151954618857566175979693423408276463926438057120034979035396154036802453919001817198332226492166597388633713640598289755077736178049877866092116887190177763032013946023912559296116258184646850318312723903874952439228847005926996251787136482491104488719224001308635028063141044835093822186125643380555427832857404230427564830253155960715487457910053087432881528496220051357924313940407509113614861085434723599602681722596771674076582988915628748074249530001591071171665905201181863496191034561561439987565388577559166168677748167644946320269270860172906593962030186892972085540208134767811065197612503108589268410979741877071113387477965449775889729516696156926695152564827081395517220340891628988753546566295604236818412291684582192576899279656627739845756243772530368198436942813080447980525482411745899851367319240580849591360852056609182487720755022191973617612419193705497183958808720258225617375441209083368367595339205077577349535221059009866684723965153797883861367293519312988212104038975628239100572451792463947739130296924225356689586252537272974604127841448765848514494764858752378377840634102095151669269122361003495634298326695593089277774789754517959968018786793430153086800009384520521659935734740648726451592960841503212502995156848163768717602892750904485075352029329317652484268788575562759343856603487606254220557526033343619471424090737608152759692124790769328286601693986205887874234005111114485694565461870729607242680657145810749001091210922994924286829424518853381525509077904883454957407561159263903453639127345915494453225661793370634830864421885543689362623043256053027297005140661386982624150093594187812382020651914326593074639690011059868237372023411178192239013697741054539686162370195748683885913721893594530433311378867842154231019516981853248621869026307353587840160075431421124152213662767486807095321850557190379001356094719647916046614575028547857822004474797655783204372269117237613808210188470788338127668277517965406675951213662059200888647686072572650673972585509323856805655463817778236942949799627303702439273227609389186752614941187791544734218612835350980089126397262971323450368258396720067818134113031437838124819055409769003827354494935300258084130899432351108973142897236426560081653358559591972120695418893015468006625512129378619606021811458298889086681197086501209328518310583568484545504720588934521784653491690979772892110007615101832743935244778440311013126163711316212519689076739184297002815753437531969879797339727309116791930666686800042829602853159220755109459031271636593542377861947694440060664374689157724948961819179933428150977262798764767260072218414949983173352148621366029645472090208791921848996004242088090331568967959213854582204883445949662260112401820853989030056301331921052495943121014315956746928441836170979889842081702302844242065670866292228207247300484425113442320410793769836633394309551635051446063573366982439380445757406171745203202608246072945765744135903037543203322349225211776932505349531028463337271288743473815038343915297525260145076449166188677203570879587992409374436330682307940923091587319579088704427350891902278188501256142600144579952971531630348006218429247120077964740392472298522794869797751528290685433549026272047566488009292543613057443592635376393150027109651893159544519564750676228586157369012577533774297602862352768995901381407209039438695509190235014601752348693711460983054757574477619396920967578107842467660285918886798023474993502774867055690680457355064286016567366972005230843439826177765378204697576568522328563532109697933312893281908433084665991832720944552035617621022215134051035867899643365051213686684708124088820009597835205926183621769878949067974731111322310977513486121078694058254967449348363241151486796510987529322454792458015834487941746629963937240732962163102874763753353393628092711278731129303988055599352876039811186579365771941674266085940981786353204811751861873419991637150590614932511374626089010389044473027350388018116686234610964274499823052798595545514531544817169128781360694087708941847014947455681268359973973668337456775201254788819847140970508831104124215336659935417253440600131912817701749321401330537947429437553911409181899481803770006620634853281468909369815029457482449959257195528314148552907940619068060002222465426002255708146081769295539869429165858764261319484993268179737707673820783197049560422506538894451420170618814197336453607985639248106441184015826053417411078125123518725108786410528986278303735701791070001693851096096196744215793826944474512658479426665800557428331389206567455079719988960307417250083128380538877972057271852825919494691712432230448126894279243781023405230906774877537529076842966368751399676814365548612861458678517050621509178643354561067327906340790414450848035682001708155107969700628939155482863169760727728140785357238679047013035174667382383220898278314160600354079086075173468751543110821291383469709582016717317038675563731109803736714733935758917135449044314733368562964451102667202870914297635548944744066976335982546994163080031740860362531692954992076583178975354750424917000020550877791245186375055091216527240226610415102534860320087309938043757037399136070341745813243444048288329814446380177826439771191306010456795065688690419496335154748879220497110769740251919042572986863624757610881322032257737341299441661970475728586043821360154987816161249012229377281228314664633415333993033249677482137402570670349326965838465814338952668083328309726789335364957164019605627297962497731234835461772081182469006210473372125947494424812772591414518210228100888671277109234253303428170533625608041958800189711116765188665789768860980044652991759262796393751262580066736168021145677609256140743694780242958379161938458597893255800627457666845117704168856369118802490150408637888710731752168436218964292077156000287310666623910575533435763741151918144989439414258303031569097327085841520628660227273662809777458416913308380547361171854158593701199307507721644565970651508695662933871158389051167026079696157545071282213881570718369894364399675557454906915780554192198799922575089287622230957014345275670760693473775216053451776563836542418508297988159533195243007016010019081682517937506457522784077397798956577078397077564958170810717563538854926334220269262253439875588575736172440468396128856099358904940989541252648763871156553663004290822574151266241173430271047709026462579594234367593175820250047287823497538068199394685555634971502082332853884909749279789600484800907897894594738368209237364308420010684214457559053768246527058339625448972130566554854329593009723131128486926763555876198428059498829688494683586232450578602663138722710041636509213734783619065401210551930163952662465439424273037881546340280974571943563090962491197787995053013306452301215061829672445316617587648839110067231070000382116851975519204668544454481132512988176021456641699157083399432932805466784485919339766879206031952969628352729321224615028233703668568346502221195239373208994970160973208601954308505336141902839624570750929505215212655910666825141295380992764895705262585556205806979578766969360338099739746686624551873027836728325693463243525306494420842200568534273587912149998714873076331849141748612556822605441315276668318633869524384869505429542455717233362265240580490075383279505151580811741496663154223672958546905603746880071752053992169573721405041723450825981314676352086522513017518197734560595748574931929618003790612356868456975229351242523785399205721067310511219479417757474741199939569842840161746704491123829919627244769693720672608843514286498033012312579965823255695040409264638503924277026732449035048229029117769720685674620036216685757117043651054895038471547752878585675669328262701696965721998815165255086984072005914258417745551015815747763541157745202663809290899579545627303975855463856646623622414211180557208456311533617057632641353088355846562214362830774672153354824516061214533496466788106028573546792726274292942294528673794900520623858822357664722051297715168172051555599410705818237781704720476810763863397322935305907500782890885083450696952486468073526094012300380703535041468523443372679271427635763581728767810107279189156198596673395597184147776851518809375459481525143780394724256848546042765179500255838332331202379516641050945942337708646273280398570666940506042055442633637003659775785045998657807853957786522684747405412908645428977219579751668552754026922740935145345929995259539985499688481399072959816243502269772997440335148286858830628619970432323898364933016832616072377450841335272777009827068751957997042275580480954456699744734034793549602619576547089793601480914573960200010857905963388487170764967260946655705781601791719923995640492785546204200978728433233382568467520687281548806603413325094166703775270694800888218088616729578814944256474764314631872846322765621329763191035233814731956499289826211119523383963645407487176757976987698451638694103001915126528381162241828344052783031701965588863976979646204299264752425237343658626971922269369716363047329421064319123547878917382074995667331855762198793350749805852379971222986958265646312531709850293151528598373731670163182085087680684229370511043764941182746428374708872853801169118306046306861083174387765502917349128186726666019796574550631227822911484869826679117859419464975378473156532543569098286835704516148014956450628398977977359183552617322179801801378271125648921365421224726300776457459510185278767000699614851063788355184565994645132022725596811009603818306880984805688933824872125078056551872964192785423723732982544794486252586970154662332489147231849647760043459933694628012416526232731835916022854034613297211471297510535199172743338989934208671627141141873937483594547764280318138573597578104604860544844795792335807269318045125826833022590975072887721195636060647802075144899350651111864719827047152893969191397094885267988440040095132304614481587101130329609651996156433183315792242852261249845393879418561936293931064410421059313310735425735061549448632971006867358418730522548273644908966803341709792028979590021089315322376378913862295522061851101384025107201829027972916311380578187679113636876995246077013048436033202925426917696666727151001042095247246954222459295111666694494916892053257673417707481967962142014872755653152117302665255100971931765378710360287154484046870695817570858449365039386376896298392861027724341022625615669053340299938447135864594076047761222987845038037647992139427360180712508639079705039284368580335145452202746456143304125430112528748982886496672138472607415057312692632620673054446835466948808972523740532178803900932376287083606583661152247456298129746574251247211712182953102482061068001251166199551875784013842707314658797307783341145870088382568438066020998642716764068191082274237248292692547694500751747013973814635062107490787349056232719102049540185950369059334025776025589089191824762768725926455408804724675870757344774686647532962153102001284480333393647530218374057066886377521098053087146994348080768437975273850425170751236863341823803070277558171113419155456993655679246380509057455906022140562737489887022408010214916466231239841926737542120807014354662753450502508856106735502384933145371283496393597568100510613295251195883390900783346579780212333149876122541546820176559545228258087350057246406784224150044928992498749399722668579595018401256407020760116910297651435062146452788293210182539319303826050134716892326312234388073868982125748350146287877530077916833614145111590908937477816908764815490147871292264515423795294461020948477674074639313396929003032084631387885478130698779612469036642524401417327146143571290906878765056909022120286647991208628503228883404727186182506107136060448166413852607460111560743734918243111424520624560283233060333083214466119390507257210990845031539811722462768300805036537148650726829795519960340485209047841227267504950626633615525261996166239243104366864753880815406510495107416740594094342654298390929058465330252823991992837504880667239904203809329440892757397387486191591659878656522033246038454644799114169871372700398904018453825114137411069704959928596988064467181338851257632443167598981625815237088745460095292955402971355000032756404970320547904981120474508772944224077173565683625230134367793401996770303822247703497560240513808734043356251764476650904054178193890673243459312830348088135312809232076077782959289796479286786490726381219801397851630390329705603856111675860378549506513562105428605418812770419511514102973810830948885851265242030564950749785292453480555658563080983502482908107939480280710649773458280278037966954689978426034916435168399095299971442478696846327965807468836437968683399913091240098858329647602282702490713895305390102030585817893657048532203784464332276192266305063800916366575972551067333077926398765387890472156437437149245784777126732848542701651474726309635114702355215479896171490300765056777247032964899745189619681956848908471797419433596933949269849804033231685920370377642284873337558635784544128807511194591694534030931061880836837227051953652830645478920506446328961153158210780634687367147199457630782210815124299013241030534105287031311287406672013857789837233189053683901555389894095015352230529040765594906852508517301130972801255558207227021605616206690281976078809970812516016757741783922525049147112623717271307170038928017470159482295139032809087841558203727893717435177389959459006683060267530226225458432773034621291738257917098055875857058773326901821451206763551776951691132446026679362272998501034526262565217830202032700963192596565615063616932708470966045245610988599003277194361878214939463336870794179694952991690969077637762260880276904827121020880140947631560041936642436257766806978997918254707422323740206892479482737374171914851397151763668550633509449626971654094264230162520969330716495103075365818241164176332593819594533724211907719830811578636583107078421552250489478045471551837895722478295090015283413192698693022315588972272429601397290307855790820989358944244609707059555701229897247028459212648310627988973297825979776283802026090243517137435205734382479130040546450028211822554386346889633699708058748674490313330789727811620969883304298731919028689697510343842303409590503720416700517047176763538126854999340450910095868763018291660394030975914536385685567791714038761348912739142872671000033719565440475088203454614005810484067346504126917132872727638042277092054327259283028304129749641776453309727913912633489845950092585845022072284518668447459500196126119278595947374607399176647860196434710271492847902094479579131613639430633051140925732188984738863116282984486003587519075624404387264203421572963418911558098993680276032539365476224661549327020394640368130707152302496672900458839120853520576824018476117571982702498828659252068271557698253387862649238265131011009888179054814124955875401889959651034604195940572128480284547465464585360847566951198026424594920990791978982511912523869619319275689913609523209963462336934862965263756490013973803444386325636235832181399054857657669476836444197122617287657123002801781634371941656088388158335249480338328537250014900856142412076172837963115911790449003289222948330998340850604660482075006036688852610741715478896872352908376966303195042833795204452046389450390564803072910454409601816472396434758457266571179967006142464083413745695723700063103022941366418677990324600352492485687377545156723831394668806056131147453838345930708378951604721294688187363376769337911712582629067476863379912274890095849219549486161646626165233368818754793936650467759309687729529673779790961132951393627817499054975122816527156001756949193236945873221722718028866942438412286475616762856292943850454199412652354226081145987597786078345244182102591531167893853278720801347230926514742440362068443504956808571152310682834941232226164871865507411119598539119675501544865616107511916706911133016371177903480169865552801274294251574484096357166079338751822893145583501746490318890085062349363774177791111876529261431133736717441021802612332748135559627506298433673661445191623229367678245763448264824867292670855281823657716868447912908118040791440799645639533083918310579316472128099471628235670130033085606929880303729650487958847579100845738113877365657494812524855007710802102631860118629001540173633679632359583767342667999434412844475485530986775471211078217872270156227692250754763622766355656167857391184918800613155003311290919024238266426971591207454959224024087159976180311361068981149324498493443783258017785290986660642662976368575637633576267322204146438485205617691555937190311723778624150592012847921112332275770954704330351498096339855493865980531527491430041304074518799985137557238745282167668118212113341833987718593925748925423900503439919933027538704232237156255895971672006751866770364468014716357592476584700005168339916753667204054723257085570248971780541893080933007099791920959570942034050008432599297575049376639844533998231606755114893694709139521026912515757837201142455544811799238280934086290482976380227357792757976802824956653011347558900469825020867574483336865783249202207638330564158104114140947268636017680286037048383609374090068375170457533968007695230147923327195880608875176052466732278979541033134816257513724898747571286226090122683949675117487210510435639259432532441604216935714781414120159726702365180376506571481381805322305475059629517070746201909715969575069582737510583519406350642411066713878655258193279009844568164373182058999765218754793019346423642357226692472741515494387488886410447543976804229964794917071275181804555392304052189928946802878769828358727189834209384753986565461859131746076220375549635499838974720174832447981544911399217712416523882254052509789233647512391845396446638682436914901893013690757430874472970309978662611992029742937664286936342703353957223450706295031388667336877681776880544755468551201042162119340710823929413659333165154922965022817011095324789870911442996254292134655596781199272717260362941086580996014398755832267892475494365921391580302034164105197619579335650604046528468865524303608146985410842338689722313396975563683418664385238813880219196170106080509526477355841961040880079394020897172412451538865613660058846831652136709558258757450245961712099661186238337490493938885845328749307952223473930067205670879374232885027573588173498332723137316800807715296964093142762147712697295235309494200921885158859317239566027008360828991752046918387987695082328726702489257577830725846678799851155083208999449353033791528144049328203844037912621068078100734949704626490149608766560929033600296942157634825736101869061877737488294005443971697966941913177953835441942823910615785362777831986601637913633045530609358129490906792216609026002889077688539542433116045456779786232923486727185029849237893818073766739338542203601064363573792695661822972513395332428546067607548197651653439774437647276416951469423245627440454897253503691495153154547167537305501903780746728935596670648299989233771307146040470048020752674995020122819722426467640722700937344556045284437210370852252295145605744583241580205674916671029310213085643105382850531825793619557607921472570835794000767828177874297851351432035342138158752387689438857297744761601859585644428201494587210400836833570796368888235759669038508051478700327796445325234826372880684400418744210250833731656699718242597051810086836525423091029897821038058851969783053786210475882513319593688627657168796333551212066398280499551593472989221943980614102839562455062521734490153848475876612216569093141343378736417378695174398377431309307816009287155200546745428016711454739534929721593726490453786963074975093185519605787823926713520062239130004875733609875477793917086817151935663342104038097693375667258629641003304960391790857150063789906923593150976095962629107394749626400621186903025497650272804204443371120515825941836762139609913994043330211987493811595154034855712580277603501148152072045460433372249816426469742068412692072460787527257809977384930777602739814831289513485551091768073574303785999053304931275495767336383028438299046611109277037767120185015054954031337887344679479264719854444464306289590533851251468088304956942047294523479462520621988230118424942084727907166497634496972727259581312974875306086512877470839309729221892467495017607683121472450508708797510640797471112473312076204651719205769903924271333376639540532988712571992375943026324605084968016548369670829362877365840480058467785937982093284785484221042183669468084127124298276128108277861347856515705051033802412098895460807793372912146498324948914150001195139483691154381638248130497068016443707795156131539093134302468229642061379419070730709219899521343754514015094526356277918002263820460285872434806911171981433092902147163663672191762307833594859127168890867640316662465970883247870322030982900538077490837179549241187865025692766553184143386008134997384088438792431990550450833776257941781529138921930937853718896663910114446895664835536115170544306068079568753751833850429569898593568116886370459354439093277119856362300259602817283870893900363196431848937047985148713707999577181439098951872883457093931430607207443729458004726988651822809274247051275857461183302324779943830908942516247192216236239115622210108924244906201388239059016913828673540356377779577622754023738359216024841499987010018933172836721160043286288849627485944964517145126703219650262954522862593643691458088143157805951686386066367534016300166956687852634139532467308489864623999691305658636335077046076216047700567787972822035318841648273786756642693186972050429219321935967899705654362081807701373405037244282615168206917459135191387867493318670842870622449320348064220800869794648703941224484881382873630373052933560613712246309488340918936517579895991321111771506903078400728204240273195125930744993698836474382243726992458797530991350002997227134592850979778953676210051767336240254272405834494423399712562247233936214839029125508804929266213871875699556071329763109461057777112678143221536807764602169631410510306548699783028443562164399977784280166192637531157708778698869285009394798444708662364837180202982942441413096713073913823301766555959463356166179917340291460732934202335722865445867334129495114979824422430461594771550523559674601474728104358389463092876494651930354723423268193278109182784720635361909389627998357543640458074425570322728488350137300452159805745330907455023082271767046311114413033333312989317722495914945948497069635237887498855034978775700593662218035401095941194043363694409943187484849431570280476515949849991651592076373453176846962923643264177632845306734351949675524287634501049580934595068361650744422559161019953361362993324526280798179770716921820831519703889304864128297728141386862203825436512454249940464007956437688173882957198216621985667339589559616230291685445984124063541578442227205819153630748814731723644388434736498764566301450576826065075826266094910417458432194063381023047935873296199831152358261618446781556213638969783219204265122174854416687261133219006044310192984946941382298982464244424899948148721569841747769625932141433117550075937771183188539549533622658795690430533308279430825989455123672674018010267595260240852748030618629656668427724089590817244241796260019459625833807300689552431723193436008658740257460449327782745646606821849769224868572867611809414903530621978746812483799158123841010726474493367817707936733332640210587526984986900605684642785533579425235066395343489508181325476932176628051188429460544054853849351880060501014431637999113015809231006080708577526726328838164177685481534013584736056565653510691374041906536688465059490245575595095053922497874862207763254071625954997243882289490368542001127143633629833831815832004739256138657101626182074946158237538940223567713244712585210625879280924336380319673071503458483558850705021802020887324115485754793198607753323700272071365910053330636778611564718736800222468379027920987489699489711539749021025689926111282528620273733654983927402520868817146167108445997903373483222764262683218266258435156687658934256060856319919052666253919737765429604322119240435290234536476699664398525965161500322466058818308922004846718780075723401793381791179676387608720780463123561746477602239026334641225853219226634533136104997520538980605607951538154376931332610383675795834404765359431532719811906329894914166883249452827632922786138384227418261976873609135143618882040059811444333134632980563907232849320064497104330578064894277121099877089386472453741844962003808243016222098882872435829051307502724516410840827795618993673149075024689537559020105493508209342205616604882167427467348638369607209076129971445735372958933427039980690111139370606371019770470437568838746827389520182483348808014580889496941870766824052739061030326048732720254048763086063309442922208430603054458514729355183464419865457283115125508141644046813484332723912851033338842937075787032896991236348403562075523702949310652368646942497709759347095163282195199847388513445744261432978570821702280743884438493165599039867275341516890417236314834399962823768565553875743206978848236677635104006047725219380454087762600478438607498708814418784290383940820615153567594377674217870863288564170189827467056140607167478131237409255442399907655226481156926043549470111384043260363661351467933162001075917189927718748950125808939366782437364929414028471509615333598013283644585798070321915067395088253526331975826570702213173193853481204745942966360305566151351756165183225595649535155685598755849786039912807121250113397113318050787836560386023817246596433294230435429267621871936702930718621667268029501164530682207496167898763565579880137308848816837845037078440139923673458625225254993661854811003536614993575617743332388334930252444741478384524782008733325669173905067332919694797102787086642836898395470657945808107483533463339526035509415693979953926793828916246608797447763560560818086852380229528884323530167683617647448895131682697197733888625009192435830218145072033704721323914697296897063754718719779212348153885288207139884413439565259329670668352435336126665316514956688349710285711085314806582603445444105495986731236563369338758786953264756734343916885764629485902257519061081345897480811279571375160471323189626086107204426231863760226529972599056877072378210837168240328449044592927105007703759174771009235642706086035830365522085506946718546673965046060937854616426796939611069946835209622313553572882462878576633461941328875823948028748015630614245326376623701548060451677480425051275840948943048044173987758474401402149332540544399161904367542623946903184423603701882770951069314043648282558958240206977013401312974041775499448719282821267860593731269998705615282349997985431275417993885368134712299342781133792564447371138729112489807499057550682599029201053668134757759855536350622742117146813920401834811100447229021432810709939525767726073163616303429869692667114449123816694100972064431824511487618509675923203101685514163372969788881455977562608427074221115908130347762844955522200799725677462312274314034244508290579616734497272488273914073595900161588399243448590605546847311642023895578098488216169452264168805383229863590652038598194907239811230153503712761018257841297464645060473855516034906389119260898198038900928834514956207473967438463721424618635187343258782146248277629467009636846720983800914373543033985840555799669500723252587074529288089486021444449301135950449196406787370638443668416000973362759486744615795623020866911897010365578405919852898956802615908460460944815034887340948516928351117000450869036464522074497655007228246941655982516257908552696644988922053873045004822683097374609347429275846478887480068534111977690299104342134533203534046808667653466974841057227520485888392515989018291176299143117506497270368495694048858710571581804758596819468522438950029154411908603638690754134118781707193560756661643939447956494852574720141249457583546324784260508337884577772967915443363936379530181066690688126873990386547517095196841252388880912486671996273370240221406311818156087785032754210388891030234888171032604489471536980712133268763298765041471085718100444129691894200388899763580001238528835950398960388687510199483386568119732383841139219471173515888289091226720922414479929932378537194020773026138473488401059045693449901016966399879668715555771430202551012141534676608121486444804227487021873326482326474741317855006708648177121293733436487602874080068153542141827716937247878559705832284328427256343111153942580615379542491107080149719657629558414323596166045376920742698102200349267974219796097975358136798891581070485580587024651302272941069535437892295287905853826975974756853631366512088571840214575060900694069607695871588342415346740076109137956048500788277702544066489853133110685212584117313248604179663719831025910097451862245544125324189479838725390813505948701615647563238109580868101365182214855400876623097778449489170914488851912997638602397803085170942594814265109345977651030623687068771165157929427420198716910157925708393510074158078774117042320535510659242030598534176235794913884856967851293715519938397752469731736311757999959536668297068910851124795757686928480856126185492262298130336922411194615506324002445897202503450620102808817002781707125175749830565079797849712273617386919198497806004113629280353454659919988194051012343210144996864553025505015692715959443153583587438683132483471571135168772644125226076695751095614091887935214930676068249373933048187622835736313109468895460503562829256393465664959492320311841488312759681950309006073770010197111244194299925516114912941462069580414142165915686240917898271967727604922642865698100910141656763118140389434670902876818016166741831424318360438401368091827013558978463252117040948822488761713274962614233313010308117028864822216591990619907980920177471398230715573642867259230815864454410842013342428505602764923968117718627174659381732645712604704876998944535515576732867280405818164743429470557344280000930834425952119962034668859097640730551752682706067945098665405589260218085798691175624297008993739554888012447141241190734665489139617700910325704467776605044847761754809001589797432281283609378399962496475409359731574948424327213515281465907882511192494489038138054308242252734021790613345613923243867605898079779640359170241727070549219016431160122230214505406759857376475380905408255504049946137679839014194508669624705650485385977114128223371687602914369349776245973126695768854034369610637426522630597075005724122809737085503755846347003804567114266474913057392105548630677639891600117659043835584893961542924971812154347916503670741330168373073742525546577424175948412700711300850123941861223620352348873208423767086961318013200291257690815573608792461717400212189947359013030088320386342302347145397485782901106051035740267980897044691796126821683831053276307600269466204064368093866507345103438715248081070875373380793846303955195829657538931887096946801485545935454367526007675795043077316011797176607970172273279199095429621991793591845003899503885233853370331599401511914534105372451121335504409729694551546702443186724752830611130337570880954049944936883007912337445146658950997723087611696369271233743085194191681051364198754851845866659643509563231444705658351451213496506179368814757567320112593110854048428967277549503067177779579246747415396665512117844378998901512548119122006460807766249126748388813573056083141593825600010388377067844295100606754064321104758337059927776165748498966871188022281541999614508118044238684979627882801911150766396970565600022729440601140122267875666399919856822132699206292911565939612248759380497567189827653273993550197088864887152256866687417218656546180794694417857923053115731600938552936520012916273659197147852577308642012767409619754933667780780055325501425269717173179967201198698224517997603764066480186786186463472556826978650682986314729702510990804296084276692319365008335016145470957168905588836214865141173850269998666542243798630697971629704299600094445138450304715769736763124566304386334348026419796568690034251233774731744634790356375900620902564489016483310678851392990228608747166814349728701984806335123114272065943279756620261514868037673904541903841788563028656155910623865446932924893126248245080426483572127349227114919977357869200073387985404276582461360293202419399797051635485084368823110624489761389786923456168501189776776599641851233668520524419164842817145719061510929055565240926733548001352593227388105311896858432060285960496056622723439083504892610201113148453499001043768283160013331399919120740185251362199365168186084138888333079108208884542514867992426489585512483567586067425359455387219225111936559843656335398806858826665940429878000696310140969380830623411695885895185456193655223405015985358984313169503834154829096536598098418785070836366373605906365953814257988823763062571194064419220627208274391822529699277286344940780161838716638696515577322102277440171984890468422771118255620211544643166012716870458346463814476725266978449930521591746568460119388973793929692095770907681229632435863059170717564139731136334529900666606098210723621574248565433456916463082906314426109492172246398690874203802960757224738986379662434389987596692896151087858025075460723380161682145595734542151182332243570777387181896478953127632094061023001368016188314052609577926273162013412808965106520921786171708456190600106380813153189085412409226890907230830788222519783525000889275243271081608513170158837149119632651854724098175736995077271100197873591182146267965212203586311692093993973996699847336404222314296317574805948973317112434926649624047506156548311775335003890978607772136231389634134041321464094423098899800937599493610979916838872320032568739988862961054648038941458136212511534441080796854968914765597522657417266875921843329469565519109903255587046816604208317479358646184186530240284450955523379923312859926678386894672311641075260239250435923593987012701606546174158173017747064211145662585224380387727014765301471195753152503920316807143831787101182607955061721614845780039035762836052021638248424323387627135370995483360324026561850400232416095878185450737559089935047539027742415831699158541584040264785324420557490027462181618510808079200362069658939296655934289554632410818654564933413034362038000195783215461155240138962076699940317166024502838332411665436675342059151243661121749316319339612126897859457517329684711960045124657691716729679012634466589330482659391021302560181565788005053527857341850701915309524078967952510649176128909914261002709054036961792262372186730980721971223817589294749832273260460304527671738893990064358710871352929791969111538268521342865537976971008805614503922703860425604871027074950054468316990513697147114723909404735281577644872261499618074020889790755945763245185558356682119608320269850296731997989210922738600419727681386659165176986720143916763139907151048924464594395305837774120249814097585101724206959079241107042351982326889862718650697777390755896520760465631402339194266790855019343494428894385977673976473231543051070550700092238829634451409407376946760386026707417296920787178172634600552749631004872453463479843561452803417433827604349589630325239654084782460238210221113795320033995346442663411458528934976818383096713444757741610546808073514757705171318458369376844271065028009181505012638437105613936370480693876158998808425235693808104665060145676890874939998709764919661008668817858907539165044681646608315152235226970818677907082211045066836128409849855403730891696890434855389045832352289553508267972076756011163262480841317736978757326961943826584708087468173401269946222682640880150435356519649464093732988638561138015274717836720279580411964792927355563673623916195465905510229558278325633721954787129601009978148293472299786991058764749102716322842218694088874686023113114584356920980481468749550811416254647353787318598016191011374589307783347409921833335040027267557733533508498154490481260116577321029505110432848173775613390018710378940129205762813882855803286559815375032190639727721565826507116249092214386061149532570836602491846169228584550216122116181673864819859234776077933912536333140234705922365914781132715592262324078282797631281780820470722986076809585574324695824832120951100172816189182382701462880901377798497017878959630896724340936866577440498042689192965771158117963819633433129343855572423056084470973185643624475367862595996345811178018107513461525363850997642806568352548499791577091329881124860699957684407989579591290133624834761491386484807955205901315602111171674805204960879334958932624396649388321008678563650504735600076993715090926334968730157499181681860057141099232606023555796725609048028659669195638277633550383967824441301808464359811806244319425933310919806548583194978346240533145296391764229042919355858301239684707388353184185097038185295732592032298761054799633808389807545148430430312714738784994581914510295413279275329926697244722298310669294460219883642591254411023061647639974044607385719624434130834322148551100824391593077262808437950094804022327637335648599955765704883436561259925432562548731304818968510351942179292701292304459726626800280315172552260287640722106095789779415197243564048178765916363339374164812635153451699171916624889377018268551848074979952291084976990910402053207146284136750235125893392885200545060729195151682152312267458116922102483707531961966740932395894369647795029061760106146078764811407877085443158761082288515900375461399094071237142247904509988611078094341852628238473176741957850539817426293405868265890824448895403660035674055487822651943839100442920750329833271794468390363609711678573221927136103174638359148535920399177612004392155834138554041781479668394408633390362893998497419539876691883539350019268596335739667367414134941512576980519172992225731142202077267078939503043038995263439935716921057691611372224379148619882778892336419873616937673350831410464868383960355823962311455616040232886639822785285644044445595831185757591494510533330293757363357935742298067673792226382869589696456968162954043480425200720613872082003235007513649208569842088872660524707100010461471965892085553712696210090159517915082520403679342692075223236395248365253154319393311850102449874573105190312331169039122348997097017351971919091421003948737803277255810783747623219097838482631823317176064793023516866353612812725802286561529827337603899394599338673548552773436316863782544086831283272944520162720175736584782523391565423659367161554324565378484763043751687356036007036123498183085542589620143933363695926787132248543544627539182118285720777321413439343137242599674178551487012939759321410986113122209925705093729742459004098003063345286435363243366414112209113647420721619901692371627383454587318573939772075248207821388485682650616995596424378578723635641554144465593170740880951443416793242294109932679331256298489221675005228492050885281642055461732873561939836849818382058042900352573454320820950468882734598310324805364807561769305559630732900988565717039536207186121135078247698956758834642897508309938524706253111839824502115756115944736302451054268586557857086026372395053614969833953405006602005483816821499219129444056341150821064287969958118464693627694454348647545635511118292662370553020531376038703217509300014997930888193219011582790333129447931568062293577053062048154607366070432834639028121660907806082130687999357491115576883166068508711483693557290243611583337770591332547101342887241455813364743313379702787140040570594460320741360875465424328696045215371032468634267143189935473202294722750119530057389562402185887959650702993584150528701957317334747184756893411488049721384983717569685212485359407458594585046503119445321539207913757593831302697313515826054225516196691481443307652441451801159036875624605098768804662444192270049636609793532714509391007739330819327611528128592842436186088637677126414075577451439581556191057164514166805746668298000528822815906038888405792539149550433705690324232664099212958969965644662067335912566670429683459915508845213471906404217161226938769097850464305751622949235819701712410140582463329664738911822389220825970696467305774856586527214168781705083262486283658402314320406560167612492383006090288267710200154786395850553748722200602392413868502592113588993930372873538199114116144935766521490576504761215223930222231735273890967859232171353045181997481178140531493473666974815183514679075752766010302531298020452704061806721071925569625577957749585988547692690575839462196370537118917090301488485608458330195283177773168660286005172440843513269966995027707629499934980576272840589541675690287639480193576548030284574427420310528886250560362614738254422407014652077458338865677885375071733980833459738440604991393796312119693571235316461372726458063403269238356515961703609257805261686775011886593965490848637742908576199055910703348715325713469322123959653579609549845514448146587086487555843226194538738354864862510048972508656152139407881652974345079912250826878403676760705695901585098783356653082591342217727402410763400475447037321352891714467987383806126101263760280168969661827464936539571343650446250256768352035603360672128177058039474334320055653634123735247974216757650643702340673735051682765948686719078253353504744550944109499732679170297750590599715958117893789928981472123455674971667636702813641006862683504625669356321794827308744887515356831235054201057904150800108936823755162106986976227392928414316151545091220029189503438340092049368078144854484168318370022054877119930206231930611540262403854322280146216559772676442370034491170521998021517086657743834945808060603026247936362874759254695122665013311905103546992790950393151994554506250728436372304717379807391902108541438378063184505497486695331842237929718662506063359687702155898912616143920939287772479793628875275819226183145235794001420233436991174088512658389246994241211559954875018718260027208288877705699413645518813046004620663241563687305922452043507864367553876471380334666056512780104902089653073879590551967207644079214519336198617195882266092212938770845445203960985285289140491856852234331666766815568352081984639719076963691423161281257663876996107907442801715569618435962587538718031061596346944995500047353976827833296610628350898452039242949972007767921451957089558949312057002964098381279521740164270231022726742712730017780341327538530470130249409362789749568553341504560158307250476374947154272487772082802082378113904587833133926571964839976673760155022196536931210972511023568218320869790311821940241202543486133529220937491050733491388576187477665798291132485509014877900185796998680630558887957516037342313584389479567265202191439254441946825147732356050178158094657876184133840868112040675501336563121033118380268330049040136301997732247542267192244268659908168792033906816874701966913525055671838410099592826414407201066187419137907166741763296592574592727586315049255200686044975457410486665570976954202204397479085189733649547132181875405083793483657371194062542010713020129978423129343218501752381228586609022162935148790011466168507033595399530964286598697933857947789946227405318762387951425503893171074109321469395028459643381114238657071730244887321703395805723308373704787976886568798205448823076522494484716615613606327575355616848753429218902115112903883127103291449478981710845229684863381977891899893613571621072817151023042813083579282135250816654209195334486751279677812188384154443994094815951939720729244957531009141230099749346847607304253642447950658336610209383931210704529284909393009829972921968536927190124867956634903130636758289707328496036051987252439187773165800435815686448543369813048065015767290386609613376387947217601480241869057847273673794639614447509144266993353197537889857504353870574116118111982259299984316989630173435151420694003675961414873270981120898600273525359818097659345681568927938575644912596947052443684176730686982359468726302685116245956242348571619454726338847282337078137338873029125377241611341014148612612378437211617159001993556634407262607186551672186244733719256765618384193790039738161619778409932165580364755735798651933419587046134239282498087017235288880256701973749103749586181064937871643297502438584538369942365543952374402506457426458564880732091629767072868345100341839291107653402329745786361580329378857535712498606194387220584726879432640365711999973455724293696419387284208233288594461912059274365596179624056426537212338548372378671550618996354005965146418313932169175129722597039058009564672141005946372355639246785768153739784820594262236353741509572648881442734855332235453396429496092313564236164013972423732400801485281373645209717249610114137522299026949912665130209539589297145798603012950946461887720678823825641224994547160475457210215668184881127680725993354727232465294409504093098844606710777601491312789168102913334823921174739152938038781002980556863623126717427877596427979255995736790927888767783827917206931411055089515862818175572436533325754594709976626668190809792292811072252010700404277135940907496163002124260736774820630750382255084806554180201234948679328117623519693900782249720119499800701764402364906358584012901633582941277942085384225390115026250537094019242031585750995033937917706686938107627688481867666413554027481129746767425550776378212428840568067308690951949076766479846259736750799122797426952024052918702190621594013765526681798848672996749948241562409508958293844871386066567845914932413423919382630125150678924604227634274106538380755845261889101342956355427231333599257830987405744782230403676162491720068825412802855351708153146142528247925495388100355898629022031352188814279027855254853115707073140369810241500073700196595383275172004801367450277735248442202677266702623220635062627922286093877002618908581512402703676808893010982318387860342791788319622603249634521019567849682185130188318964138262904045706892678365093297542204226777094261740180586025399260839742015207155107140287657555897968656589670555206584569584915508745700216363915924766753979730194870730059752460513683001776074885104290860581343334110596847150091103470612000191612579436606614245249961479754635096881683869902458668747788834860118982984261000598610004631848942784003642838270971677075787133428445903337726197219829372851081114713787990500462164521271445991412130956678280861277504825579136703533601435409179826890935168735466363461256608492550482496266739871449334563289972446501220189546651026584974137513284905543176030951352523221590576434740123348305355184854704407910101447199458672372140404811976408755831123820534182271490271947066872637076090787081092572375903810265232155882134418574822189416799385324118589712672392232513604450243613162305247343364125777192747777950076117874856696607299822407647796137924283499150715189755032157056456553043822292758840184531105522872887627030729736622181567982229023014285277935130181851082904680562406868208460846478129477297188106089939991613885041741359858839593680541379134889642027959112084235474950893862827093619625501355068825082822817672520520132425127148148840378529442640067822242473439576202674103105360520824904809157429546692851850322068871967983252813127231038341173502389075765456252526596221039061368930554248028846203266532413681170174745366999167717398644462556438170044760595342622853522011529314115509417398292413710431658086826866270812021872019353924482304603501481474504887843400967783251582276838180628634968721336586721273728349548674111611961006299274536789496544668068366210932225722205158172570583642129463765140863133731365195298057567290998966985192659190354173914975665760172349318311913759095047732357469126308250915746362736974272638591353004431706385870109948395162087195873423293487587384457346746768837164093042964132554666394707839859242546294238521143049886760246743933627948550482218355842255440616761632165329218097956435460670194920316311903860109108681530117689730427121985074581884552081801172582781496820575933225654450076915918087076106188908153608766347843258519822474654547159213422834757682041610904783064779761077112135438208973850268040608999516937194597405844182039956456099186960371552354527116860062780632318451872570135042631291569019833290920495816633807335845397448209020591589678143986036365105549498130595776534036029955909587956425180352251147362391759504999468479811635265074979906123848486640040960045435722010339391635854515639684262361725948814573246775170622708909721313136072824907560525666822620893682774781164580614212817538853848375154427241854169540938207444147578732911102060577956102522121019266108130658755477521883230391142235317117702698544240396142399768693370497842739245391694904446593816639962654099992096034251059426828512742211119836645386622817593467830827915080918683952458108664792639851858257127633277495322198343847660127851470186217775248317490967178530838516375386079338422773171376470229977276081865838052543882080801566313070834231392225915961888234240962035127850633513498473775600069884026283310213978803781781939782994707139309893514570444812676000495808742931299126539598837003291459929926707595677066109852702670653223394821147694754132551071046709893963111983695003982907647492697573174911232818512779050113823781451205305055454175735333489651477424971825153893701269303748589859366655619263988273282901001489848968522248302122785776287663445455691151664146842475921565426204494142043102778666588271829883737325557885128814737917317843568365592739944500127927755027624730363613689050870241908737098376968299326552371286838363826186667581789126190218630544779184277863851118125938016879915147696885282526576162398254697020950044679807267901170843329972346528456691939164271648781971968024173769960167497658436486527607009095193242703825334081971358831657595185771899752351473276708849160562104657049805925568382922639378910797992587594883701913553858715674613823315431734735081629723782215564657110845252340649115497413428444208069724294286791668763248272705741968908424143570844481844742278633170702349161930575752993354614673466798746623731674491780568066034558129616848305772214780987157917358288956087305574528611429190176084180924665535466489293539189767696042653231543437042786896001353854751536140153789245576446053382510373472282715938230330520517931123807216290052370956834865108713960210010517196436092527735364374822877986245595674864708121155009511867689692353789310847347660816080758887747789341413777470241911995769307909117565013756763303471785331173584831703615953496737839382665118571797166248531659283599652990114204694660098322504266465934727154172607017820683853841627512186212488842413105924770121163714183185486760799748756586923654673629453547804876597445761198905973729904584849288397711875987670061512800701994757823006693809202204584261285237075582826658151631284195781447125670583511337055573830365518195732323564993382177310401569393047777605158416597702515300805894303458988691742792217286446914898951675922538357678629128638787481900906486588795066808471334814423652805282182605041959131812986201016924673566178105885847995365522562921938279600844269151770909906839336590198880464328278778422744343282734198976576341324530833565422055890990543862233976057972220224914772978012150148286963545156105475433989985329312346775100026409753016198290516097633431624962032525267566897160487346633576802872641272985533190757735486834917184359566494605375785411126215515817139241284704423515139723111700776621711073470381351691713649553095053276225577796810654171270921493924807846877509085652736455024939565972584811155702711385615572129091709471529896209262864871121134754003017575622416376988559280871369666502557514995469961671363707435988038643921780215856033721030785581513270172760362381954422658528125907180420405662496551491542373104273484963981573482906167117170735909918543337885055442549727812827957173979885288943996540098812493890764288460511233064613273263443368634018279360449093286148487084087520858273395461841556290719238032044024690411464777790565370113070132758206897888416175128757694278595452920317787576341074716245439000706742407493908091669116118755573939316488400708143349899614952803849014612226105666951731878294286978325517299114027022754746358297457597897949724306372951506460603720999385824249737018171204817614433523331456180825505212267812651016989239640568320677433413273280436855511813893946698508794887580043625339295125081672726930234312259933866080802186282410153124883755453920648931461489687832878508551977380177157147808288543664938100928535509172472742405209589147123517948553493514221688695793903252531299417098290871217245887566905409473409415045230573949327790645532020000853176266903855182980363480981006649159316184335776882538792369003602452811288103110330561646992968680309157155483591228390739043212853379507759815416494568547899579752676869376841658820028226727233473362217430675048973365380568256195384684697055619462314395651637434421971852936874495073417554558754967356457139418485826445316560853179003896977471012716464844178433863570596121946110314851558028558658060054462388755330909900063519056412432898970352063363241808705284412550375634672220934254164644255422835502451692592725951963239078656978018053359943508195265270951731449751659569362403491562926072770549313402740328800562673414317794653375675119202677360060784369393184677834690131031990050239037430625134812748058962992943829349057126248837700914388221002732800217606914291039078643402854303522731468994100462546646864816536394525248768481086093125762008493382053168135015009099780131534526232898802462209358712935122160098146588263475833811665619988032369421638160502483142572787856034593162075029863771536297474497913394545392985098176751745403349580638447205045749370825182135830430056863490673151061640611147904603883855257241569051356969421665717599555183970749194520424065097189776647166143100227932087466403590986339892887143594293369224591124918159394256578243271829302197208966124337641565525270763173708299628276620917187951882391255418670723278686936468124891304507988743281926407626001683463153092693616391625946913049066507950561677431035582841412837378406752526911445271712854619358134068327029203691556007534835392842200476489529418319476552870208859674733556957415822684633451247370579462707824021171631728467703768994263689363082141642558171420310736041520548838117276526164892655527087255065898579531779110345250028143636350620547785151815793866133600642015980004653233577117500094170886170150898052279084811862976346734373983889755909650745463727668878536922452358091849485392624183101560166126432888846763360277104598504960227030925337793305891902956683764058270910943672168507676231533179183269958191822721349585929633251470839803342527566540947151506175083924418401322002788031774061243401284960040228598451128934929838383468823115907378892352891001615327443238629125417868147559274484794530580045954767043505616163716744813369652279081138938790313148731280489310410613048944644018485163609617792538903229315745745166200319623447562289441956464819686496759127071444405274396311927787432940262494274351012757635712074706822198112477571259382717409768797488030197436993778570345290295329502404123368220285892719039643163276752971485047002760380300710464129564966733765437492324086862769025643540594383226628836866638760727828187607105670426763333814957140264175590304196229167550060086359998982966335949304289327410359518217407133732144519302302536492520063797567158552241920243752135604921891140891084997220844548132049682226559737471889415339908426994008040293914626133956490555066485838490011230186890468424069759897634782240992789870046605010674809331859046145367273326343880336632494651086497209516780327546763883333358464607130911468384594138462757765431209011402172333504929320156235416106322060052538369102608147597136935992180778752497560777093145092935135792221497373243884507074794075706583084370467894324840457919900552571447361247417003126920041531735541643233876220529221736307290774506961935033427521292573843808948543743687098345399291820473381720410345173379853855918746758585903243306617767389781409318224331411488442435347449848041954835222598932757135167481952786953982699386921303547653465490757335090662651879989651981914862782323185996247579832028636242589024186167631562753360009593426262593327000679753867859203347271108262410345072337377607386598470034255788175991143591588058696121804726575312312644365339325913206419383607942816135366152860525149601874000895003997772696345495138882875154042736141442931943079917558037892997293966707673734493151007051758336962067154636975311832464665059720750359936033310193349170796245645237136791887207366741319110027203053913307389065633779640878303049100143307213561653443578920264631515044338099099919020414187382956476820852486830913192387746707841590983661773219237257245281529128794715564904052285231619970515754569275189789409969888730128519052270141944114428510769833406174511907083245570453346952838664133433191125919496217794664719644252022361646148726196298339854458524392673485017561736827618611287933563713768542014330502534367341411819700761984436643766984459123050803368097775538004496257637690290937186691906686597740387836404382928487053717813765690934175593764606367426806126510461534438031902079479122679228231650394485435129085195965789194840706233483979114732592689541405535758937002480593037901617870900172037429123137399542071583041325852815174001131716657744974668409869539315365068626949816803625917193245780369070746983579994300707399911091136260034960859469037959003640192535989015286554441140733558433703321017111634291930266868290351308536634811875473308720049858374848482366271545985948495398447041895576242239804612017508996151309139620932355978428282056374248504404283772928020937135327134442881992675697674152306127442906239114686892315214795046090764466411996295036980523386746292094994107442648332775124237206748916297474382180237676644034508251795496809270257388906715793826124762439472909613824467430328686066798386341610628716258802651154489065300785141296572993629441338000196382026557309915929723403316498964562004579904872875743149225182305807962661756387826496392893468347189196054037262727004665420582281715200906349202073145157896616053425775718690953226769598955439926496558492270046734125813425155964133021075847878843311426552855035341150006081431793896325911708527975440768683648024620936766006674553596479312179975669197658071852101583108225870967868111815523850270023284528247821768273607859654313942270917755357196953773003394669136710563106159584040474671957058034983803825932524470010103663664461327326151746181567159722083372763010812717177519763677444055037952562557477730090350347924836548698946587203599736565015150415704441729347439512012505149800655843039677573004874562485342735840912895480121750714284153955749637247822989337206111719418745851823888486245302120251306892316431878464942818145165045598191649977878496741203358275550748923338248437056065956284201987714355382634050951704812037569865550575983043235115188506256495687551116718589952533766319449215986874173917345064062263286547477703242653366498667159048932873106074770082937109470550022415163972754497199806131678024666790675954119344377625763821963383489422151964712935419135396053032244220317794441825555922854366450327559930243122807327323972700926329851705206800063634963533679601900105298557585491425948872528034310326654571869147420733771585313691335545888433552397197140662539928546891464402342660623619823319245554218229045557780730111905722359317808405843320883715038025692395147452234431109053866394801469617157117354808486957239474761909926047084476578194820573975862546863267440670325660795364583978473944048472754613814349432854296562423235507107888205169473304252575336012466936135271727618675428167721158717499345247917176855053131708499395708080363639399419820519217847208290028450996216539945859351381478222226788186786644944793218639475737660406836671309790246121434819709766782462780888824001694070621497843269043374406449733921439543571619524813403114489544043437566690088090904533434891654355987176933166828083411491585681510842479447686680950339215718866339775590648586905698518021754398504550559070956557108206327053199786644247210932542226517600143249352686208014064615664140076651464979725291340870543458541872362845038357934621956981236579032405277830627005350315196199843061612057015261394468968312665905728883121553392149834269206487819552835910828082038733251512270739643919611571020094160448726136974095902770424952708711851251373906219307585042127175653662077450542120474110008356378580618774715223481102116168871797113624548605276151098529332266574690370809612047456580038895235268959606691879872801607985903632702937113911694232853118898117076732980727563940356022618852438099166522082452120224155495698306115561442029190009144789706560515218680646402530288220778878127268203410255406400551735200350816157833555416732411633071043167313342413454555919511850496415754494704299519505990056213747894613832741252308707423524177985066759738358081949638699493120799655398259097642614216488682339288718012165468632098787296226296197528198758886428456350706459684426009659676118337205139255196234177000277412736677083361617144182290888045531182308809574176323257143411852134578823617198407463562019733918366545046235850556490103427325851968347889236450906680891666680289693543115136011948236629173897537251849821856126493303689746815803514503795517895180325695726559811035954010686075582602267129995590911521322203945088407951089258712494423703277226792881504434290750454773674460667805978208720324377677030859328079845988995804493206744595458483298920421724524250716600447445520983917603904959502401415396979276861161475657877523745392945737491341834796485096658696006998342183730893604293361072767249659180433313673537573900068243039180429242051728944444935341503598238962864602506961205847145253384190292469632695364606394646389883455624705463065152971261947537788897572052500246623556627248760534818230141326312104259999015762704871910769958909440291368489416532975813066282168908237433577092753574683405427362505124832388176432328474690469210749903205250570671217855598985716811843689260850869761668244934685514959554282019750726768298184877733451914605419805112885161331598221944829058944010594446527651697169569384967224097408216176231090841320741972291447649976135837697546884890908056227814867724726627703901297648187811702064059398199147045000080288930866959989927975958350159545302660030388717637887079026087814061308631697171398997111542036734960202402575327269459409808261761595794545630350535482514927437943948460943130990690026628656178500051737232576339344369755738219199151358739827742929576704141303989322399320211564776343325732294481870918805875983504581411939717772063338260899346662155076206583948454733765015147085886027132287517083329860080194426906734488854020017483962317222685080359821826618139498741384664669884224646361327992686911301393535832551250372066844009577962474073317917852978679652439985426392653482034002481867352549101728575939510459475305529683057130986027813714391953139234668157457912462906065282903479672949006798936498118240254874659459484599573191776903890813072447520431705912541388158713820787111956776793905196353375591469270552386237798280135066269283660475242784407488193369105541458463596130092250050509630827838465842151060388866002028991789849423530531733271521927474100383800068248403473751018883239876796464828703818383724984218321570822265986545367240956131162958410299509916396386648868922448108827380352796885657430032073282089918384387697272585860467122922263438818046481527969774332050568167169334974118986701327907127320240196720847540169783740739662142217184755287905011284103864374849985149008130750677710218576477598640474953035519220616294186643450100885715967233685868944710023522741927730769707542334101069613693346206270837501646177477217611266243011635265814723985910651494771985742650052963782372392273243494414890785787995376893739632527316418805058589411271201536974461216903413338184902519214771279586232870520547136349956579437564349342587372402901668561012453548265817776727361273837723732924197658515414431796301222737691329101494694595237263212250935358103078302556915800385962827975799568001086990002775446297916626612544537411459388629505434215741887074411306516365951193306226236440494350859015715286626856727301811808801330025169700427626356722339890647239252523481327198626602500741125162962782243549055692330355421704419224370445612747768155247756431131159866664632677130700223450730246175562243745856288110563382656163726944889858341488227833694343826626102280437310410336011408488913069610491746783723492481897786009370750882918180624813885900233009834407848924689527229944115268160590790630456522313029906112480392565847983222653374853108281004142775230813211067079401899410624391383444306834191596109130037372220811251993942543291382658304961782166435361339457547693749570587372505089472432657635691201659977848377406062322540911195919599588517290131381481731242901244813606033231966704623570393310478990655097358501604923715558678661650820755905164161154170416287456966442308263898418681921285802256473937850771129649817717898235920363956643334200509533454747291972928707631422721257465096004997834815355259045673764973358713678493600300739154070563595161241286844046164764788447653717548423134533761924394298405620130599427558581397414908204523051912119737099031217703634212604511115380604134007062340170807783319731968688024746752867718636606791635315259791250111879599331306932339401706207387968825762415644958329595425557715030650133590424982109840108554241578252912513624602763521603422209567538200466351457318241943426589465858941884697359878198732538024574679479864076142555250454251805219976094798083237461838321941908577813315646443198706152698176995377243577369332722788556243169136193726483107536087888922100286512510215244285515941295100068829662119765178662667200837005213956290747665334676400809757278090982742810568890843728652544052346341690806103808599977243801023190307765146476639545679907035648254889582363867445010248987137585398448418152718662239785177870564431814916866986845593645836272004969627467834610803338862640454811311022386424658885107556035903880766568105653835665424907198986216258965303023156427775980400827665530839349187242011784812575288294294120562014609169148536493566611208054725285726398372718103129401327626434920748620916061037393696709128564843768571841823193552240427157574546829689954125448587034002212399345662051617146946337754789578223304855139745298286833282912089010235846340326897548753165316257754763553742398164847146885501910297267399821916929081772405590486167264288581949937022108509186892756102809410929800504576981399089723889788553139777626185188298412256417336898698700040686056365456552462944058811564958017433795897841927179974544072282716760794889292156190705318955133578776181216367326241262723147283450140672240525394961972056045988072979938558575610645654141567637196348410407169631907455557056927924848593245830048335001614691721969596488605116614901169941065630928099979292955484459062837838230190496163935180215402036252735424453132761602802821239874780415736305414059791596117773197556835375816189228387502485239888082661255923562067503074092774509054419338821110508774183728023228574044011146931591463677474434478990558832994077953527781012898007136998015861520894045375463175678274774624932940092057769090453401744915456949635396342911913792089534464878520533627589313345450749833814196646212056025006632599206776553804431674825169129163550744164907463155887738657937826750603335460779115343904981006880467933122680400926832389215104993303206138962587579398283043715668619801664191879294603497108393392560513902399193177975299313777058274835958427175585097177196900169664471898462709200689933971753128644830132966506773412012757108896570519408580184260163728968376028073971003918652107789245619198012276510951638658890411923956826435136835349044292631675223895106264922964389265520801802386125016214360701428960818765722586821638655322681561246894973470254469176851387970353443201168310690727072741700163859971280197626216856915505368842029346147286463995712494314500939131485446875569915070592825064631914269965841235060701485357661957984991911667851004586775423516958807317872233138437750632204414909730382836907927283608409169969136678816237900136629689720610424212231084009503292949182617081515967028671370030235774477215120507863642492447625232121106023166838312112785971374226294188632184799006418406193195291637038998272223921856311799316428377159589486030053430893139464898370627207835731945971046888464870486985332586037930843617352114944509594111005905330424476230693164928800982456266556148727088415123926140177460248066458026653047971599039624551588059003578739749353281638190030158309236332323184904541037909678298594756198943133782656977649991143444955525779907957900210937411997676273529729793390853597512952958492955942856308051710485633591103522035180312981499974373791067965881216256466518380993932489878180610045753162419557989667065374311296726317198796519611481261476877585897611223208472905172413650781941919085793086258577554393555215977145905744312576599515430533963149838813140872546680846879358085819407361944512898077152932148606110896959374992898628390082094802835989005501655027329780516973250747258235190002160636683027666777222079656737831457679632777851828820665493867656762944439559216193858738437443875537335730970167154638554226679727268395766774373342666039271694403354779282893064154694003078229652830439618214668589669263562381856161306984005523405887844070711686161476654958044074582728183968413730865452915045048290293100118154103721068278540754828283286867647702153567232873748796642743405324693615853299841379753452976511059495378784611267257718421894960235428149306437699092877474947835491064855161540506177867762842134036291890217766588329865317246953588327761664269873195409813780566946678015692352875536546742811124534981422874911263956314695693174234688969788294617695194345759529216118177915783021758086542053598365798759956544578117571340386837924554780173214620158402909156964485105369894062515688281791224701293620211768286866619584636430545894072711970560446195233658557853081287699676061584545183273602054147558123301000782868632981277408794589113424820034689815779215124688205722054465509153232114747149462316963675021241735174584058811116893703022267587690320322055014448517669222041975706656625700160810943185675622151271316111339452192210386520894890191278012266019252591820544462332119517908620142982859088779209675804941537042077028184878512193849558086833168966645177672042894185540243595289795945105215078808957835466513945941478056910617487841088854528838225444658862402734746220161655239728100098714423473224381420116246927470880610394164737736624460770987625543732813604372385864650886463641100788915445239346758557583163649032595535744921148313652376938786983761522062810731786066724668506266086589554384212283923376781022316221220022163928523772944019705803245851418138270464879603242516553484912085016247447295872521213820030846415181542097297824378518551679507296456226410265531304556960906284769135505574115448084632196159481861254777604615212673053332441011009252787709749437031124452303966120203863256931624426308048956286222306597481664717650397902468026005584890175214262164288458524597960039422943462088052239782311178095081618554934854404436701833705669796277149079800029660893697366643426991471030161252719657594171901972293972192712980421618813155012957215583071186154760238713069466173306286439678924106400472811774705996053509675512260575067395403573789467213263080029258867603364486508983551410883069183698793480332867235121425895140917424943498637662723839145345107327283565378763948656774475425366092248729785862168790504388561389443569386945851402070288672281748678000254501653223202632603831416497814268685943505528800482184237356473940607173776625314488657584929551298447297222504697787866853052203201754107196019948783525018109418056339584187473443131560303905707865096237203145858019320261795058894638713638848077458926665814119712484940377596628466801638570205518922624512136482970541740729837765593204849558700609058404503573515773568108518906029263339503019300890254025679773146076967883422302024400880657117188791980091345659958185316390528377906271638088590542342408464871622652370741077184980243957101421842869193796857232503866850778358905520554131488416457374133997748788603047123961192953785408041311673809473183866473538903258067566912115703890010482880690163742774183518450443871627416688689167524980998045787019400063376192186879219500613504245846520013725945165077975430127414718808284925173220073383555014404650257561335978569842911129264483283182501808274542113128612530427903696609264024425582495958694983279297263572655635259590862833896373179016579536497538531700843440485208163336283544875524841836808202145232477071552211454674473043766594400295280825979185794109375574252999807000052619298243094688723409318075700747653741724028306257544473191021623457509655690931469764883810229995052293602341387633232215675442773108375063952110548953819146647513310074452219208450525286654439176525282500825124809827852873647433877563127614606736450173654168233586680167283607844023462400261026841378357729701781765355809131460687109369394877022695548377358180245560042150224775343069052208583410364640203359874963810631887157776632136579249259659484019826021997061422917149222958981674020071508729496658422248388414662345786211675310054618322962560127892655262108298742616232463797291620441913099545855026841489793636883889402797390678860665721050637943883525201184594003317082746116494083980646946902531619960078773893864550812016631654274420153325121438066642245276568423405643476933881527439314463987588968033319105988543668262292360151882664300345409370944885927929430294075210513188156116500973252873480372106585617278243841227474679216452524334878864973202015565050927284014748320809791384453901881272244243977447222696048792319599271915052469446037489510856071946749789474456953183408575863906303789310461591320956996253871524456073316906000460863585171113853685294505819868773216116645269358651281257947572108557246722169785720147871995697933828780903475311388125089163035864742988753907879747084368077976410261940017217494122917574065137595586605582653474338010694673539491217101042594668460780015681823983662255812953462786628319723362016652846182068113026282417034116308291204725374091760069141749349338667893991243715800251513433919274059888644324875161683443869062890254932643351809747448822804550214038412778352515205468875298074033353425839899069265726725866931819529508914909367557577315609756548797297121454165762589636918472308247050871906545172339210207166477040458911306937532626461784425414664525038843544094339337015879013474981318787181047825416498282958389488346046465917750679000968115504954165114893388995132118399621489704204702129363092451211678926419642093082979237454238908584545098161901370523175619492515811106440767384052897346493118847189775758516784297706125430452944189253780383481195310319883349171906194964905292386400965587161074890671773819265815874782613485493940402545640576000826442980794579958985680291724476143282388946672976019993670957480274408850473990375909573389228127637128956858001985375891603749556839188968551746985134338617886013068738537496466338535368810482970419378928946644852602059625927074033817749440890935635176830969996261390944551075645513282294094760342358424673085077948951136613020738489588937587626867243553118527807688592642568730752649092301467964567667559059278139637807440062833336868131640966774833319234369069630980491520183505262942372843330250053285681121897780028931489805735588436186527021677718041403803487536300857611123616099174315035330099004898126812531110866162164504121108794761156568825289324552718016030055157209961822257229966855744342970483405159738964023311876052402798223615973300092724436205570965354431446598952742404779153552460043395258654039650945836384508073863543250122986064868046951937755497342133020397630778405754923961784411698083806285528781631106621836713799905801409721999103074769179654502475935880485435410763520848339856045552092714141500867380822178511943655636708964797644940845670779983436017506836557240073892300209304953297334926160130722386584666436338986531041108567636827600064043539007512096574276836527552091757902210126182531058520349902353129071794000553604023555567785182843499709299586487433546612564214806476523025433049006626300952599398626245954055892993675882159063921134802739619608941979330248922658655943787175747502004132213988618265752113742521408374521063042010883934972518325407922356900299716674948515999908085051830967309582353939619796056858109509170264630773808102203443553895694351866913126512840540531800447166961212668923893166332729947227013560373031567621536302765040702030690446707809285514374300656292966069334567387114583100606330604950530408817565221685972010283138415151231537924869469501047129395225093336285195023143399910133832084193034792211236853738678627896927906295060887082219478723534118346142914239580429866061491924313471767412097093604606523661192505102319651323573006083297070592841996782530205440366356966917346771853750033444160729722740190536673019508658128449885392280911716603795967800149193812196563247062349313541941860117136744724630845224255262466027652486107065663589481450667339072543544572495080228020901966588741336569492372256156790885331169784948237836940179442973930666505426096167982087048806862505046801559076098829760869476015693665361475465161381733986519514836452175703482063453047650511743897285460658881954989877079062428357441579969871791638866303721251754850476643504128903970643839221799385920712353215977946951036876696750745948501249739051505487516927913051032037089155989115303546865494513304711635752588052310564394632950690149342933428959135349414837683193499514925608531174422038580605653461484393303835404522819249121679962043763003893491890089877518951280234155616955823999915742569532412229712058765472602982613968845988836115545177329186343697170005483279679500983086422566222114669937319226197295995432492981429501173459357254817366126866987968592540740385659497424512171716595043532307473138038332478270836928034611077893210834532389006030501757620725703663363731107866452366011894669584036946349199235101311029001215300450533088584414052834988281004312147356549984314678152161688684106086669160600476339429893001967917925154894522542170304199015476250426426369849166903713225050450910033798945321776956282763619139393431961536171318806178148526261709922998259501571585275607819774594272789718252105827721824404468120089896919383998338167921764111368355554218221556696957693244029534820448349734351106094658398370008118410359328837269251997899679022181302307846170934487779103501714472696530099451361391843205110675396411988809996565015823701095712257632839573868489359199258720321559181571339572769495948393179141212421429254617052695538811535105292177879262914058709452251175171899961866221851378625501233381544045220835071226210622927908144218362150964941033142206144073530946687360405700854101733194161288029184952588271542500461070677012465543903905401488044833276580950235090338550993980262269308361119182665806051658781215085075838954290521786545101465320188921216449590414418859784612729244888127875645845598572707774511360101459074681143130458047734025535893723015241554649543537662264115073430206045460497078018241491683136447846434290787601177894058590067581776015233204229395005937351498278877621466884330088180933758750105320070720100457825606481767905224446023409186695551838870786909026729100997794019605231895805248937072122393325203727151492294616957946882189660485261777809041107073229288956226777592485298068100682894557476582784112491500962126905896263766414994031213602584276782340300598352647547215806236452308701613250045633673885087824516748923221814386325559530665921736181637532438098225779000221476419634190466084058670243005230875376687855111070698748114649194490700724386919833445985251763094536503467479277836436512971250184151068227604859017390354523857498406045364922670926598366803293342551342466132465032951378412288976218177843936760911787939103763762735010688924059174944392641357293602532813776907416475228525025578058300175760169762870905029908904714252389187606582262919998096456603516600605165798450900826975909659691844815056199346875115126744273249736524671917151342405050810968592622211514315733293962279667120813796235878961287405456789308748855079467147399898559790601679580889693942954143394777675753550760113753565065767093767753847284289831996620908243611152282372576587787618466947119998984754646159303960546757868070200893859933209474939596191533520925577493735140252207756717940976318409217546299742534045592783610051321331190538105528563931386808404939340537044592048851276476362089972494588667494876123896062746868391722049145281883325701070261686377539255504500944308951053948106154388945315070636824860350820475381917042437169792290362149009174209795132477272381689928234607570761013502837741369062309335325231886332112919795460571944229641183369418196117043723296148613017189598330245671577323549670499389271459501122829581520948332954460238773866597756912975025241637808432459405285949879775314228608166426452916269842656875610923218612000124377523653352149983373139694335650110126912477617736889600819920575308525285656508855931781301187530917718417877958966098980476498105691075710969866812843172279026626580726565533305175481182927808728938902167522613341403014759428520658727299992144090237955817022776128859117940313990729959989632904990261200305648928258090336432325295890679267377250943442178693047741772806175438260504461383746790865690513996355004733863784762374937613860037656831234865410224754471585383713437145052136087239967880077517307676153422544950319207772511331487327874589329683658837570746454323456092468908720188177351303636276975958274088962301246815214017763228269805331341295006747086799121558587572582349022522595977055032845945736147252624270807376418448779951204353825899361579176147573081879249747459913245485278263533387175361780810610362721338077265258365234147846040256114313463322901133819401504685617552428064838745306621218937275656763160818943705903415347109453678454891974762631546997009601050568558298362837644933960669159650889291983099028553014743318909715237199202228939094099653126558904638144152603776043507310326989546911312202813282461336699409613408895310673626453645950392766170837613970967235643021697856112850290435821156339760621905482366839825886242615494085507744271244864660050227741005940116798759367322462353091573654133284556258801705100852389044860101872348186720000912591958425198676296153537155572648950392257461573514305073532925027927212491144217622302908319601369712446491948326880470970545719273757525103219200127052636738855384812711151498364667886489812476098751880125289963963777965700069766859163871733313308106395114909794172556226620668419467977824426599424248912148381848199922417604800278507296281666073457585214072519229808759052128393072862480620638837585593371082961152371917860973615076000976135292387293100127629868427856019229794793801937299286095027040348439236290696933158987155211141094200096032785116530475310846943331431390423278107646639326326156664792146035337437268072954482560051651224927957414684700896998541711820877603710822522839742434330331038962865680845056397103542954155814125086770723494391422041514098453600815230304342045415829376321802210639472414873665925165381707629328591708109888734635879401012174278188897844843825501880937756221737384065828770393550432139652662579981400631071147662412339235629322673479690412484471326850986116578789297483801716625265295324750094790593225039722409165496826309234497027058985426487683310668325059703389608420762792567336768019929456448031794356447786625439163089190032864572313222722905176361140831478138434840800423460922278392704239348199195596206985332832540066339410634683335464456453865894767916818351137128842523535674653526957739484407129053281481959287279378330279621382208298540715940577160057394801482496294230561852880366637728299472750285738032596444727600005546736238546637969311797146440744739644987705837333337683969932479355049214321391125057570669565002292214082614808018692896317459441063729822306174352769985926431697147815937088133157301247730760556124718482503837478964333219806493589811589776722557018617778261855702960935266551852884709369561448584487033654572920870286262656060890968751720717888817095613702878555716887154450897894040166503420103642841567587489356824798781730496731075284227546278209442435253185354396876281312012888900000137065526705189895198002417094778220129406206463753846378872870471630344052916043376767322329821325016656105040308086646980365314870416077337422544217797799056573806601516154958309348308168335727587886230169777878566157476178346059662845646810196048017834578233476587929700464924792690202801594115610424395454759422750297664692729585087511916341009720954191451545075035023194470112623931558155034180904401353575102751612261850968710114931763560778779022467231020141856740925909371861855550255959964657246284610221813920740845891713474945778849807357564937617208659874797850613459948840293413054095451038490668743462548694044371234463097422042431877013496523453186507075485438752147815070619072867130730748042107086008348815826256933230386138045874113102198612439977135364197216685865614207258194203568324528647514773109878971626861958318625593588435396378702655790697260874342266464720470904614142828395008878445902935568371723254922914225997373856215850387687838837478252819445198526628160920018484224228964902463607299387937524452339959818459538907572313643375234332528902300902405509178460905297504403795260515552757497032454759370088793337698619786723145265131107186450144701287797137156909266027344732225837305606865300666864405132529396839460800638849099370725644878661311539849723858164776426521490660605674785784245682521278293468995183466151793770032156824545346166604007793012828524211974918828519030679206121204480533917065560391701823033664148831669561688899676236418702571020335957935503110791902611011623996407231528297840829133864638896229603760663419453170713762781286050204731578634378971781887700224606940060558589318190261633047965766363789328808736343251061182606714112944347852415858452534361122323476070618664328768708486048076837958722167213741219453871233128596971121970539467959967935067046789514574837280616627185031137337917866762734106538588631367801974926762147464655208692023263934737900556902927601379448133402156812215866997350446371518567760375937107808428856942090231870019078518608097792815504367287220679694716798646912951542557433956908939763928999200413819843801869691710981200014953834275585142596857100362232673045296536207925089123868852987782685607978067719605279518865110278840380671437155358262356278125641423023694602517359075970419430558480168154135965510751534733241134204623483098572275183598638445371007944032453275959507672224589727172269618067741320146478117100542160475966735616622916625080539224996733992132913001937686725256844000828297299775349899917737437227022018918389033378602217375569527832994783348583100253807194752771632301783798103724239503601854666184192267106859547792796984308532868200858206702722062602009097929935541316785198016420345734837167383361366492117327781614962289368168413703165606974975792605199004677131652727660689944933622284407597852110952693477456992531127032077896898533156318693338749277099412372914690635280216373969433672717484799993697601130326742209786250960840108355474158022215222623360269107853095208919498869496074653542550207534820128951054439858837888561245259217996635377506835083332836604820731067938964024107903869283369447197646169538842723073093404425224639028601078168864782219819961250839698484517283021883364183472215764827195513351665772104266003077665513955148903807189591860841812386958826320706090868839749821027585098800194023660075354180963329298227504697276948089911033481003571898846023802330971683656048565952572650031086038895339713305875308442472096546651016660506970399428653254330013230814973485788074988359530962901390309997014233607780954348199445447816618131813250542523064309022326707652336687286724916475127344422320183478154026673299869032394835167129490230423362659844216500189447536490904440697494063106808673579430826462591393526292838249853182026505231617130720676976678492240774630615843874519518400200402705283310561173257679729872657371228736702864204270640605666861409527185159385576385488869042323457501420051154441355762672513139100492244048307006242308085153209733706939257495903922175640223954991136237231081363961217793335953912377776012463068256557724394269205327502750436283095786159835650026746614175989129953182110249877526219334117210554740664631424260745971838626810240647946666626194913628459325716503742646841838679394770159176116834863602358361215156387062932802463907720317710590054108840635580377863930664969377651776421719073175752417701522301368539188823980978273479168314478535052001799858189815866483941973979274206671239435556595732956115449935646685679096726774765160337667098260010065952914410600933811354892149294570572189562567745235047973186611997435562575348201056551797824465466544309624066569489722167569706258250721683555552074233309024661080843222769239327271630081069505649044359390594636268681978962543276113169306357656914376187006319673867212008898885639345848394041819320547589808818746970832551282411493595746221050952501928351536861586678909167695532286557581442528768403053012429749648348575991433636770287987314898508301568784884259644049227602466315856765868987544310467425626699829244109090411082538723605067194822988003342669436892596255842314107532821644117322237985962508354537866604368160062377427958018698575363444400377051811781144882801502032764533602340157640222367693447253029767582206464458893048801139054482801676052293881831347083636904524363137585611626927059120577599422309936821588617432486587977799084004080161138915001795747601252590399014936893010183587660858971253846310264653480768060229800665518214447436373331809302435611660500554408798221805337880146156084079581632573241739155787833182431198358329185738218094936854899951676682265227593715258487689162966376282639189836310396908471181003842090325124668602434696039980134354381240114955529674985632238253208524773066104039822386870861733638065756019628911451759743019744423485924209474974173503241262573940838584262130925220933550838913397212277910141672242956075460853910676374658471691108770635675679978752613865630776007134246713511664886828282558943265548934066712045022382723236499786199010294736271634618217949292031897314785264600612610276927149838802203032372964788330865945066153416646211513301419775109641600204810524046450489636188137040623546148118647058922203989178321548321380672712829094751964049891882998931473139657478498691755193373631174463701672937341138270513082848292290298763109855333991368860692447465514231447283469384339575524116058550167947175148432619346049158811743499043672924906722530839892388712016940558026853467536481695536835907920618419612904848330136045806532994583018698586791489865179061291417435850602512205385402834279934304663676497151188394108185819453192094242701668956824411806326097540023541450694317222468582038566549219879089239204014890696338465653654508113688425599367928912461082066548540701399562276656622809745417504972692255702087973739148227173876428110617543012122061126005590721187563911365984005528246867000437239314413216862672051020224378093326735734723041172311298416321448825820248023934344530793859216793383205255385381573313628725112860156924519581228652178709444150229283425864342345755792671855214685945999163915385013481796989846753953776020142634440919262105829228061015220841071240924069688315626002477002873197148265618294770582771685920517873394773028744315423786564025600326877627366751379446406824391304855681185532928829936057656555065958434561973623121736222561559122980038627373280120806086823592230993656575236880746306345263088409120013253326190936495711010122673699637545673429996552929786328022495897196997377584131025336584919492364889413872776867460309509083479249442017372431174155984805610107914644100282796312084936681129567722638293674514690906322155085777843658860705597181050926244762908819401586770528693481071907202582871662549976215194828085172289136734909025165812024797700235985411975615571932722361236909015271046439675875268319694011050296113945987214621096116903708911484193139318678022054957697982736272821263714191974541843595089038641058844059895425622808336899118801956836489891309461601179249599415598132023825660748854373172226052759124223416340934059641389222363894821817788706678518974989828258678281793606878786537115169695339524491362099652226896446225508964070559942943775826968718627632199043297331915994022012927272190991037789475041956741903374378972760333247516701159759232542195599900424690687389845059333587065736196505784439762237534060439386204707890746327407313464967619061110044580309910306361338454731975642172611739097199320545557122891138159160854389479392297148648843555385470455393597289043489439027304647045818167314705071646104313709743327165926160236717578282928784162141032812181137832740081417861044826760068866250573307063465654528081090493641131526589052757251815591990727008071960962438822852269517289057268371048154818989733001110986486773896027981643956998187666219521347701908618326092150290312817011260615009871596810722275640072400908732962567405919008686781862329432243533518292979632946553564040232904385834995833145083146988519451377835917616453877818962398901471908242676487517371187787201102154995097181475600904263618756614432786626333577865101649323279613994280522733201905101167633709085081871272852902633777011608700053688080568518862292229313937254354455504854868351747489286755730493455240700778987494316253761288950051641155827863174330794842225335794820035252389281822523573256502997968926586090357028284425267150543256648419207690513674485684736162376081627134010591319990126835656121249706570967539370771540979048462742375874309598551905650140330631456995376750713829921042984298379093576508149608273977377838597419893818841139125547110133265824947785557885159162578173715514515462190182433627593589415348329717837290201245618765700603205804267028759976887527291860515537309091481679960187738267878047089404847357660679420758831904563573890977420060094830601347457600096427873104455616364934797992391731060617589204492896738704589881433103747295068419154422401049681359728875827958752616735441462586166965633494720519193876765723395422650269824174114931725143023633589074887584647069588426519857411270560265638364170862042859796133395789750086679261716626371754008543323616691984969475966234633299581567479090411149680788945854663259362283132612083292016423958316229084786601598876351779609862400445767580493446919356286860444443774834082447356983838985271124805937989535169152008853308571264002765732944060011153481776748411594049151588887341994125629081380176564524443839745600887394635532362456234388006544708011667966848349171945853594391598047047619700988141881735623109824138131956591131959810887517249893197033753524536113864743549631266153350543856785111559588390497940344753314369549444636771034523070330291666200233707160538907132162414802666936143869547741167372498404880641142905143274354345621732573358168071350266930961009097373496298286383656023073854161635539712840294427935420858367107118469174044552184748588057165680695348054597912385819766096956440346129174845159311243926152556357448375797333076667939790389017541440812039956934095409182938298581948265022679182442861260743825012565540274530738455254833350746213654199400623619508236627069058742813895396115643597076492911470898078873893981025913289003520540839018544335204894991664770274200902635588347790262898293268272625967431635546494405966869966563456227122684299928498588106018080842974409876460876548959090676176312011461164637593883346489295211218292593082313308856020559053647069884535256168359824642561034330935301875996729473149985467596592641514009692644036119741390829139265017263247942866505154760313646690861380907328939497143475612263921836438111758985587006386386572811866153287835565739055545359871480189036211565219854374813012519910797936416384011759484477414462016338405666179560770325706782797652541355728003355832823028733225734142967296267412961045098944570453351353498540463913922136444341718440656361095675431916344701611405457345330186012884020794411060260861599963785456395452209802050665113814847912196161962883688021841457665062021337472582464408039732071723308688068607254563429166236550194479839862743069523202618689051232203745474771950543285106219598959757670883627521885909560581727737526448354448711811285636182747975584733969510106379799546831671987393638136063371045676938171918558414442801198140302863420864587720270466016857146142825754162980010578873303419205380024952113171812338472437260745828904619250409240185866756245335450802332742244042729192564878532493435608209060109277680122560976398695098761808943838014324939481491015741118803131951386925172126835897090429878277828745992992461415876116655647736694941499752633091827650062137748453688406952828724475862447361186938040833416494672160809753628933449837588606899698296478714483925531917781384343630098748474769932391793013580090298259212893097196501139098522452825814501144139956029507854828765755776913620493310420839433141273512397478525357434952317051934506247457583070543634837441474356573377038528207669947306330276231487875847755219472603774194788739552295712102473281776512530297223883751896835307288148292632641579364966450912012448973305384640017691247490227810931573767655592184876806735661592605829190808982151890813355823754336038611239892295316740268804583505928994324616778590710302425798234551409267253342712659917426188840238705099473563041125653513411361879074989767071338786142139312183897682068584140396876487775863024794632904604346469208434038814549101764555552403936172501427928434818202239968429662590193583151972035702433578764869730778775031908406426567833047671100003555444026310231526669617471102525045350606041443056490096165364328992456124021631198597946721427797678718397142707699232740506180865307376692367979034436927408803666929882223155424561177391148621902133991396326244252669218609303167767787187668234517230316391639518750667134844898021414695092303127279826545171879118820458145736242596989602691458254866598399162637582693787240291964104983624978766993198207407154819996296963168813244155608902460698138141652315608174620643933773267517559848737583389427631653608194287054876963608913622823318403794683118701690282122767559850959492258962087580322609566988181610817856008629070965703977639523922679110189256983042863473954506005267846425858283207111822338784741050492536600029632513935580222844747468422277133050359426602205886778641552394297785753775558828221075831594115204171152961065377362111872739778491073308563741338422618370468401138019212155100435579665722506169925113580330119477403687579193948556826617158854815087406039448263577639023977315491868076950921117447626968116044985345852155150154818300519762887523852881871240474300497067614974761324015472136881411321492645705855467414705680897588944091930988484304685505696340308324413277460537822013733983479427246788459301411693814112228365945984424475987144874543731406529938918731216522905326821170426125325099132192724871659612524911205107367351513759147750377798421467044602595135970183327874325485385560079144694327234689483305963241833238588535692198485829428923734256342432588945760313032470504611542267091104556560176193485591157811182313795431103765865183750626629751564805745667568446468296557510912955666692521543939147807474812649500779709787497442334454551992071739396852910667755623891239386732132772638193005867820079136371739345337397687542081015467328471263589278183573383486548172473015057884473181049166731138590834286152540457366537447839314021367076380797464892887846073623744152401446160160936972563187682209372733449792389808744580825821992944721498417960763653174779169801708785787973698471306631100986633818462768815207324875730362324336937200106511286454772855417760134967276613161189383464256506857178453414244065412992177516879826038153064501789020993066206678168384257097697375997449240719025353341771601386785810433360101385847557811740675542063256421564074157240701995270448404009747229992071372937925446927049422577249916625189273502388616149187033349765917344902376178940219206023079396373821300447278124850064711382161001945929117598389186292204398378820235789747739032997543839818683331659289528749649484792774302291085875274030602639071956603004269333904584067458186361070917876072985780162014537317824051879239013700863238175345337908424581741065932332834495634345741627037186941702760922907960110572572039477328661298328019046014565482677616478322160016297786002056038533812919294458609266088628237663486207992075697460125581186280821804380057358123410655971095596578443408779103734206819012771151881853269047150284773641856829151208459955930456268844598896444621449028015810237394651839379461869057054453539830255313358315424168411617570891253085927969767132860763405874809682814541431668367098577736444189779276858023261411289550110796792576187089874585832622624901158982169345550549971227925416386297918354054612780253448810478412195781475268958194273660557515376052089486052535049727691669554238817493405868520983012782065754575413283670548364745008643393945215423385746212094268356925374263590101311831627854709181224257833368250998342083769783243296085357431998814078539408064007605190412556186176544767094537864968243115811749191358817733410693099493080656558397172635572619529491452635556810817353180423009791496527761444492479082864012427687214785265996701512184467855557752072602391636911778565221244935713856014046589356737811222392256422038366378027114242009034957197591420897357845559634876971095813480918518340754625466739117808414118712772422935638542501622884707569872135476011861408580859518951268460475874908764797440998775016038033684872751808793342291256484181203174335957481305047700420756398863477862152410061625078320579384617883661555901488407505191010858312273642017294457824438214592473474037629991577960374284397089748378351960020714572250129131550615269411868585113995044476955005513148607460544313902154257431212074778023983701603155851032013994420497214399810716829089823653988493497859505879874181214180518761971691989285412700167560869868902925561667156756036729166676247012268491441536594720401049209279156904794444054562707440143020361283831582002601373103209077690985824626978023018134724716201795758668754309595403307100109420688542876547295369519294932745271606354342256142051122190441618300278982468897044079493310880975471804963483370205545302728572208082702634033882113399989878057319335923782547434958785034630992478890326136128945236413123107057050784530426118330101110043960050423964466035284684348426132086554132283231753897107812327991400074436728240838272634779596343461548905130488418512417818045885302013945600826354921330527197412937683188709610227401773359695743651354894981740627472345236262911440046794183812421565938261315585749421367661090411435688643873128769428794872345999505991403058825158740256936536119090411413896112296307623222600715522562470150491002145233717405393420263045376016820540833237762882073338377288957842262508146449329697681880261826316540654897989039131663570327816402184307592272816199824069601895338348785402712979109010111239062044412126863770991173760008451946817566733447607717860107230134295569462590491797524894395276535598270981129699823690542305540444607279045623132931127363307405365134490442860439776633032018396826410101001762758262668935582699439391507288103100190679942961153250005038602563998847465768765040028950663572410782266355773717617724726877560406120813287062306778559460729416321982688102515100831084449545444607149727233418610931995885860433615205605289641646795540750682962427213449260798082034954274454732476323927370621092266639788974642469637369814001415022765391004161329663681894572534522578254538985407449736982714474012371761583280653024080414773338608318330473038691828260278997411773457329500239547526648283898027761596624191642084741353566343320013067550652099736904354549158980808462686769058599458857630386110889705022117326729276241925800691596052906642640758738925149743489688955185737882357249679004207333757251143911896478231920577996731696252123698160649030930291404205254937992325953300944143377381427901920097323353818224519773154748119017548352650193560195371770154681069257557078600773811104487290933568573129205211379890085251904329016284712841254860703805189363451279738413658133665652641278401518469557123296537472584580630522291655837524941182148985952069525274688485113339735855973432594350477644654558084616355089395146770272110343131151189769479264096153291077010856230773260277039740916349327478044635849901871952190756761188347004733300638384989646017245175401681894676629447491500402938570060831908966954634674209654685474670948298944925389228901264543460817470018546424619232284278105291450591045802394276637297691021863934546948276893620955199014779372827879577365726294143324251892945950811763165161191905626334518149378832250913924153196757984436334456805425260194169975835855762022608911002406570933589808593143438729087150767395126156538312941990561390197287443546494549080490504513745877738721239395369463362342288118802872596082038943616270061783840720999118873358493753498332464016254703643311434067332676162747518113395610567802159079767851225228570772551989341469546890716923851191805747639528005585999543091104734719481854837026481571798510352857269652293935635083287799927904298855703299233980581483084211038786824188562013150347536499326895665626624106120378187340222896014196883085999348126185982566266133031195275751637451607923281159824326325899068343665279950010432824633279652528213602212958943791126099198752802470598182984612336836949477903513263700860527441737509636589959884528569715053419679852787624174382708169725148261035769802476061072604477840237011215012552172969416933361544270487631910656044017744540383821864659038992605157008206512752617402182220373174605447200342164881107649301191114588641675089819647267278007079064492643377930760981995047529713668624431478701753750040599629822583396309107823867559367902046107112477321389119534250825960851438328725731694448873685537596121719139156330091653363744804979387771023854428923464862433942415629531417154534230788898747533936262944123712465921364007315530142658656160137658274882198528986972892221080896340554916959934297231079087094400700634673785325294255779064274685614643923326811194161470263350089106083844204541638064552468977132336876544559104061690758723323541508213380131462864794617167347637694700615917363100689786163331920805738107047846885903800534168534316762030751885882354680497015396649330887505706797939975926293906516923659686973076940515706402418369501616968315545667583478659036591340108550185404863899392457468031365407194078825944674988327804361174256078735227976593977771566319763260585951624753722691117300741039797962747460455825127241287383793499579184961927660578710535081779078970117350328810234318885737470330385427945306300040905870920611939765673260868756311697816955236695083805389212327060846398380767796283467393513178725680726484093876151497762495289459905037885352189953689583683875381826270426548306597624597112992436035232420351366563168361568868059474123137275241206825021571383982440192713174055659858136318531276520111638781448557988378363953181546871466911858665152087380492371746722569311589292389611053663842869428118866002431000173687413342843467441910172097392459113902962607693850488216582227398563950088469570728348214398779768160981594153053097298721860831549277466873191022814059844408710750912649554631376863397986600404517727335594433351164851929800206985155021476868530804592487127410072397894039031945530873615088725902966842951647974282423667115574869834800582540199460020307004529273184632668959356161231408019831968260092729008662259786179062319069726338259060950563704943207886300136653726946227335092395837919065785947615620765431175822927869520082616920308070320961160852790278803484577944346951827708980097895744427705871345958089875461716659579879838757267325773641821391309993752873111667667001325443750786932005588014535582674289101300769374298753704901091149610997412296881236852148091364277058508944911392203340682803472502226230287119894164653188026032063228332067800018258295914646710223047463040811529658524663339598145040888843896612513169436079566893438342502507097439656472157678044473662027306906286158156443387421082893548474837655100132413374590270842844457719046123360460624132616960851728805762942632591473041530053631891413544885830267389984112642620161734060315588236456340756997420053311710223346685012006640693433503786197823041090523327324750714361924956995373349685435231131118045624937895519379746553366218247871615954389472923501017495839796321821568435276576116124234862662892173654488094396892952915967056861490023051219214379857607863994478737838964199703300981842990354465926756606477885506096543244166879948482392765699875744847026429651911815554748660820858435439527527760837601987279333988501021350356018348547252466604199815702295471773990774729265991143026142790306747163607044556485726328798968853518991513645270600800890436052387438873905772862564668047665841437492455630418950479341642353438307116404265364828895055377315579873126360117473446011962820448129401530241938461606038235604961290715376515648804025350566732314127413897644638997551100815064468371716873948030759642415001357625570446154095213559524443787339708529712065421974052770332410319688674237017358959862169210595668215596759663065085187105372286485979668162141203083454455294606449002582091531610300290658282931516095895703615915452328506938423776387226643576006447042681904814693652785798867303633200621519056698961021540688514492116343426084530278635994409378624344928909856144737027928800754681959422024341019173658939749395157513700020909408535724705632497442065943992732405149084957999951709182143439631149668340667671403845526031504822367924936812424010918524274948944816071812382828084621891747834070811740696782658104501368340360289976765313864513372124444421920991532190449790367171423660254039680171261467214908242840741721866845195333636449552721225654478164593600195221161487556437849382965275331008201122602382256229591922967823703819664238018782192302607716755135321562033681037269052974153153918879029816495112727686605577650501890768060947820291540048344148296401312498736883541431368295202449952947780628318389013251747546234262684312480898114924962306598239182961546940910027911614544419796631226772708594038016000668545194808199542153572809637259306007642379760799741733717148138931798607757199424606497382619737142641252976129678088682149269306764451009010950653380011186240367677840349927862355378821049995666829638630486622927658491537707206694534823578479062474320779619140485606118625938582702467400442330796454083809501306740003757488089872489342129237941664485353694467777600109403581140261326437979920400287630816438722842989525288240586946228116362705049570024683099415079628129967530658946184459062467678342774719221251504193057593352008925205646289301574767228321266959596047054568665948313045011088275857075163593660332867451156158050313346889596137581117283880561692724151394595228200156638344646987382613684547012915564768084256028025101986701702803074164888411813518729810606070771729704129950974786344138926600259306078365112012982407197821696759709822440982048859262581643704664389913335581970032963540505272596921387820551046759789280750588593621491480067072658795904872384970150916802682429734029006730869524390786140662770623222475216462443331050358708051471949287584221977194784187630291798828792606337687215962288966306468973289423562019372871455109978506857070924380243717675356252052679613870219984469778966327690296772121332188971235023775210087386984448321338539282190991068484612960043049273939546841049141625636379639094749289017664629945833196445953540091392616785101940025289433428038127788482413296754669564955371228754863917972768419674066421880620792216117940050735659771455038999962725724432048855748338047396598356542032501207577538541414555504810136430633965283054259424590279598277099298769295534149725279897317959615178196835643518033308960830963515338539487640836656929806435275014112169639246594999746572426356875156401871601383294456211516893718892058065798753574500990303301058298388201445987481639440163473623469278757742491402625621446346015338223975284529224201671347745241493610659135763259218530304809867995099294150819683326428420809640422692617554531022334540995821267592029697464041981359796115079077664768701829121048417969920488309041346415467878866350532310458427701810464776322832624747531043340596601657968540172147980945794810762413200320815633528663496581401999763614842067064116790641083207309460137500268413915375898333415904312559641997428027647858577265840202393660341302370279119508172839901900603659864664406296606304734393222279108376804327074400011008381315588053670392256427108773343700532112702964956107446590413805434277804699649067086292379956133416004315906646294485459540686408788040822926846016683404002667727275617928578552407346469542824253309491688735954370461621362925084379522989602352165786056811372001808744054700118710643880865737831628690113500802170306431171129186603580651547885690686418557668229843066966359094583499706096671552191483615253973667526685292272454480467396271083759286170830844230098497158150826040978998330733008921081284129889986654959923448126944111331948589054749963746709249748558972163073421301501137801602452770467656840263240703318960253674232085532766840192538138583834691868588429406982257099934835950279515859367702151110143725122322448829737040290296248001867296384137844276017394088122818067440693734438659504493574891886898960271442077679757560182602146070880990073293230511063423561251713576162673674414044757761168363023805915548307753391220424646831448446586360492256969491205745634192209008143405127681551662558442021441248207516400490098985849979916324192729575845936948650114567147442523780836699269762588634424028609568362201419110375726593176940722087143413181861796214445348665300534481927305466964672116359014510935818816632232583756146077972941429167159210614380197961911420596314993219623576273959112909268918893392301012174016695620671458492824942319331069211437245723652775492897811435627164018657429369505898927288841392723055568578567646513387155814556691319198580363290286547256751571083966875470629120679475496281445133896257678021020340880671536952002924367552149620045157177467221347633086484884003391051075094751694347333969216484443884805283491405419281697137258183765690782674287888616142090254492192697738158462550968017206421002708737265778758633841004434935248019234528663658386023506061254271011498406415464670738234748093200860782801327518861064927241750550297964450648205038712220677696458713288249921283901043331907191033077911679777270075680457132885418557005521934704030128544206808469099059179533769427153129808984033658030071995691970368930616986260395578267450431583723883806905644618811912479031809733073435989137771986831191233070929790064936714207496558118149642753801660421259931630406481597822528354010074394266568773123606606782074566362447942739760813665072228348782611563542079139864968184668436902382421765463702910385096436728414351793771231870907064747981273612025161379146078758255585149015748146293983376220071473644970558220996617134352430276948713191482486471731969974828263511772772772128718764964923532410110235716891742543511986264029383296126619243132329253172713074841181965453212601717043794399155535779690088820486743511768504441579818932546258442548091211094773028271348376291957293220126232793677083019252850727578140749406180336037035840404041810037214904432598164272556787690172956093210114868163926924161114064783095906547950169293274397988574613177140267021730797532185579656660310242244168327845262091119650979823135209188320247972876017490131493754661875767681096017739746357521951373726604593889918493768821451076173724007017086584450845154113374639938144256872585252942139360365933082544388085622625489926101086373885270380457932635872907681199837146903763251030414449220321724465985780154370770278838366340006033204615872972058650310167841013654324522550071242944560199584806301458596759996658474855408005622329351168140633550931524247179925523009852423436641061141855814372204027208071811888245000112504456675201536743153890618771223413527135561110641638137803898662637958566710300791322669985620108577150561804926780950002002403252920137707632017647901812261465805329509518091076053627329281187007179443697825229744382043109586396436797725659115377674246611466680365682108193810644690277916654844925330686198369657953051656592459280244726704881568482555218165680269933270211889943838490831670083035081026548315871159050038987904687734035550375371741318315331533984924489573624909191981388369607470858499031895794232091223858225955771944641309514158174257270921434072245212623243306254232335153356671444420612095998721145860376748845881016955821139524624680860667706463964310377107515153910490532851552580588334754497595577985720398261389123686942161977729332506083623251084480025975163423728069855502384391429077498336721456016625158339947394385691456309128526893153431031709871573911920339162531975594863854693511509494127178783078823536677276077777176014645855770844738812521552682045892619927707608201682338004951319891568772782181100443220570153444233860561601086635639202681675791672246166127779469197298877490908987516473242822228626480933735975666314677867273109082583211495669283895844166345686683472884163122757830532263107463771134925688115247482190611027536096640479461116474119824935970006597000232390340256468127067171939104238247073140949893000906354162345559172322699115969296407875044649270140843811973174849837131439811189757584932419665144957793174582910084448480283802090712713534763837596944942055971576923106328457861277792540052930051607810317868963627122905513086511365080471359848485928528561209679209335244336335634766966902227813196562665830159198076765583068530026028136673355307346388817263793569294776181420782478453849396920655132240907945268661748208081173011477890302871532091755881486787100218274438832656283280566986277550612979252008054706223765673220213825126213159103923066023672141510510266284863507861534728686449868823988483392747682593729003378717282332167717784423239368706864025195218777847015609069228684928777055428057625916717398963378032909388277124340502296676891598567930244433704488191573797378269792548320327177800959023715049618051760992997401079550528973549686138292397475295828091419090582409062591852812233960096656794879787237465062405546927673625830723863259676281470097966928563427822800909472643145666161091438033390282408434419555502962943576513393445901350307162250221173839278129560579893777832041587173160244372848330710530424400081276672397947494658189312888150600397095589280647373205530913108670444569400863197496923000189749451041896671941026547073494001463782664749542661608750789685822091285834711931421686696096394693751260590264337436721762370681808753845241586919349829330061091650189992248489838924039150383905119745804594201555371630710781580657050813437869301855022801908749823915638098751471433431995674038920987085555262106212979840831536996876226123257969329767653940739712481478502053756752599562967951137158608979589152922033350237845464907921048660979681124855222488603448432936653396228849585628701333383514503481831460827397115113696172989860458717451055456464416841102592934139698457374176977147162933965016406724760054085517099374771712323097511167356714456680821947718671159120048193033371637090939059162838542817955569072344578840296949327849593552860606593938199154621090714936116037362202563765752426752733726340843055176488585302768625627013031692888860932459153809377780098218355986222267935802319439954199540115733586158440723525931057055885382934316015753967252277528865783783305965998812392886025125139517125290627498552291060252290869362869624957553908136397957569062778185132443074006892456686962515379869469014226011275197514670815869864487067095947815347930929487691234947007655739355456357254916060241975852888792052190249076696831482692471764176316201098185212078872161383743937427007493331480439839070826674878520438148157432261662969622757063095780052328711346247255734868829232838076181809121240662448089777632888933078310634883368269447588608352960449276427583261555083536774984465861551057251252380395191433272591028387258595938307799499926937431353973686517771724041699257422845759967425839736229419473810864645222803066120790353192758329215529125860914796757990811703278457417551987091933844395101200200565162463035834037072203751165435667025830746701913227040848789900927547880916856665187557188609524797750352348271280003099675181789238982417222594670078732163223279433665878036699170935258491095504127919215513804286593160190043623955351093614831821605266064190960631226435760567512683275930940861234930559760107656622444584208764787734285519747533383697202626489921068444024652087090347309744994346642937568436697222745417730473110740683776399080007654830534964375958439587348849919193426123892187173571121548725263591491993328185921004371204092562759825008787368891407971752477528091711225942938492098640467114467405393269703767911395307417182425470415548160257268399038484151542420956887684627380704421950629012199943413075754226682053811334983320615732098663504696343630140667629402912773812686177219032987867473251764030916117967002090006493875317271371717851210333493413257251313815966118363853532660567946400230640184574320215707824282575829256309523011493252934915135761501267698518101040970073136888472666141947608152589754681967288841149901419035235557432387553804363526047604996657788424482994281859488558834480492476954871353274672203811179874269994343963723007733574390548017842571723803629493071336625026831700771989302944003948063141184288450688806413861946415020283651184318407477964896536956138408951818271521887132937492353346652825579269239419813573843537402062522449745566386793647953428950547171320770644222163142102661386339093957388155512221422298459394312924538408192363799804391612210737303973825032321581498067656432907218574996181074068454825537699123741486274550275098619891568357082388754930451738897471314288805899775111259856584823145837259736235989739309531552608682279419470240661386370700449682736654988960444605895168968771054824566024768551876464375526061905395882936803201792720211132384874684852932101422986975371991555508278159990391404407700992186827615421767585622700561339962522569688148225801657411441675965062230033815379750968940407048686741082751649277661288529384129128705804383375170207674700440478433565505482012745645371295587163289995313638401107581841925187664319105179241331497826734259231807697244000420546920196378454277719417578482258179819591652200980055853373661493294444800056166141916464468035513411216141670010699380343166451641707835516721648769062211284098368405839079564443688713632573260448903975082255564281729115739271792158988162251456289729567917300976773647203941691608165357137878382577551948607452491004177922105002181926812031906654496683414893054332955904814936218028142743959150203698165475673976785784693400417433333186909590642656897136406373251597016171128566480294794707754853440315145167765824209503616799559661931008348755517183226293601774948498425456629017639634223960599777409650033579214897058510175504689090020621637322134879389237945315505047891380773306855434484178281232374855564036941377327825640368595540794791504627844460830690296762674230751325896068130459802585520250726900624138595721280065077624051638067902800365862266157446569352627239999783215320300950748679944574743767087935403513539222850558730017002432389657996392599287912588896336207600571232685091892773619524318927070170465069167511704737905265141594706403587321190663922617504568684052204076524737814541300311488164756341636081422494443820753126751765113736837466608969686235763374567821512445511581501784234627872252634803563749193833900386127468290257258536765173664806701804645573747248402366695158958302839868569876020867410977978941901269461165985338695883615488535413352107808425787665168896837599757882185306548454797352934559017355441900226551379763220460626225593610059497350848166409479219614224528371480731405603885286709600164876724939174325338646539591135299914021322461271527029523183614133162037591375758211062457490773600508104057449596434300886166671755082242966234687152518502592715453571192480751290878932751074957109772841880465307597420107475162631372779241651593142767904921653931764709892278913796597280814801908936395198157459080377378805083349728271275209239222624251483456877035496092406010901086636091827309713553638728895264220813627157382527192261971110913221995349739256319416638635752348900991196252382679258935967248829801578425601242462789804583949437150449355004448160882406061110185524234946745932429482495026692423557599817157343574249674603713812159861484080376048704501992118414304018181955169907234006324395502163955573435174701748380485599296898173186050910202312463840716007777102010567747885505530905404947691784868673662536022406780897833812491248045700534632941536169258265050580862822929731215559793704725201579171756205187142144804919772846306301660157257739427342462465460507241782645308044876296857896247124893611846691250130223632507038552796983777371669958969934553900084631782293970399381818158377906511622399113553864447475188204940762323872255117861128033590632944848071182416179675210385227291628898101718609231354369018139771584180052118853588189155009542620235034565687962230072441393133881421884613692909149589883912354482422364489865053522844785646099484160884939245954496989323424260658252231629528914046528178259239822016052755956114402682608304915721740831796584663313976074037032797378975050272622457150284783247287961375763569658381008258148664092912415976302153762397770701878992433147003214468867219614013623951762163411416489058934000198969845641306294500505643353914336932492649565808985818381996730561795409882801171574262616415425203762881625649236431399298595251012175146631176933701653664949962890563010941846675338651802292883020172435671205471093596137796612094193155683066709391105156003136139059053511439623565316604335792666099317054844269958182408598432640361278035328789775617820310971303253380289671525672895473945621964566197047684275964448989953324380967422176424188035638325301045149698813643071075165053023405188042875097084922190825350222270276041892364251743911988381074609454581472757856854307901706368063470130437850713056772968775157061109141861767012464825106639428613823210379640937239192642778893262653900088283417474854883558207430851762906470371688727219568997694339001967889466205235141699307968947308440665051531735750619880261484030795929768232395481638783444212931944052549518725096406938712159482257459122049369953577169981576048904549620937237999015514503518725093237203485338864094995928905469934362765025848752152195813781109286639785874539169319542237191583408281858883808787027122411111587264988218181584367375450824541103398996001679988237973559316176407882248565070452171521863760638856754079835467919574825334396317785382311411483845262256567834328827888859294106263532166141203967321150447895024347527924147943960526358233496826333117641123516187686439884757746609250231883697484257833211692443723896775013316303664645684715614808732661853867450171590314730733667099172209113981905029269843487494345364636161968654900037653562287095597622173254358982887663688409982154555281167724040791737199441729133234143353204817882988867319799243145153979147109380036633520723988753463110783185340294567093555243766570868701748859528908785404679255290511002838897607250081575594707166830830380209308055416925216124528953012130760147508073482289623326475896047244733479772019342092156218952626821997699639199638196830812427908555951263783095423627801196657823297674352517361520031915853838851960303522940851471817001508703516548850395798576177245759038337448410859518491399736341349963347425778606746557859756399472176344150537745092537694206452581180649742331136871294322649669712784767635588604511948367591375187725931922196731437624944481538391410534791307199150498133976780472868699626909773873439978585329364468174485681947177513373951170297235104636917323952217535541736741388810763767678063641560964000100238183188860745788650212601881572883868417440444847902752258202724345346118450964757300220726476965725260575170339364297838672856414555708659039635883633445216921701692391324354307194068157056745639030882163148144257122725663325983976276146743095774934165163450693523245917959894640344779718503770321274271469442359558501050943801935655140160392181775702044450838503366818548902875067197218988798724045667112536789912193671624104169182978978404262287082700422341699646146012212012805048884910899878905408283157733414206424628901511337594041073974591564864052835845638609643506353051298992667054228074794115054804987139447631656989992175764963844536721519420019673259064703458005227999556133934151034826924281780241821645390095216813729715596245148750407030874222996141621107009419706814603380819212256412062092555302591477080416410315396526989992161526067211442591148058252080558953570301522672745484486080752360585278283499052198518600672938534457755123642806601078725619738293972357639593052034033880669775963921709773771331314779102568714598464954904413645736076580378843240915654463664439188343508701160767268232729943147010483689293146487830876357988242721265995335794815952406202178006069815659771347504631995840826912857405907106904483741422183646284242016452251628194587763938538536925261100430380436988709635852516241062965651404159579289775701899873431188530232909040475871396900350480288286726287278317425386775675199407528962672154154974014442964421581872917178198549309275236658218447171420846840362278844069225406453361158817241807457315685567964110033664165616615770317610768592680769888663508504116724399652515930898162461158686354996999333888261106765307387684895622741495189402108973582716000849076121694203608619163694704582933952165324268782181663980538366331349836383240358941794349158061074529957326879208818122165599086960425949192683927635209597173655484794575869304643638569395337695396084252979599372498585857150359609072486888080115548119236572175738539099876048708145520804691934221486346572394665778350272011337577042931085051162447576511486691849291636096812874616090736863912791213714450611817571470700431086998292820091003315600488836307305853342212751113705160230376181518629645269013433718894912865322738666528307890803509685982708436501064242519067620223300502116281792074327457783725173159152777668795235869560009219388145962369191665690886909768934133981773103664292238218655830132316028213691594388594012766964768933305990441058985783576448800241511480069371844907674859782417094791764436454350044530235811864333233996293240865596790806488342923783960412373663162052698279169495794486861050328134569379749445973710092701803255166572148848499936013072745553285171670728655908404567132838488258427711067840464704292509261611475360158363760824291149759477996294493932946988515693132827604379194473957012750103524846167636270681413370622136840056987283386684700720691247003113625250568265957120999525454056085238427339984707991450018890293474509940858776599699210613167133918207417871257815948917156862630256023484533320605061921033861111636347325999597163287664526984474059252236771690919539572712097141562723834992761066817887857128642296693919666187733608013741623110700999587970616484238961992659833502936304395455759141903724177709362598200662405084650599071552230535362551345031401325754981738407384473893320676972727687192121503425412375869814932517230304491316321402806990650162845491516530241327498046011853284103257820189184538495058785748790285119615450100064349015889946255642916024367606401682676609680725601380137536422194442849707782325412682479506614179200556982098482132855793659221510014496428988603491214803202272607798390098119819409657020371389224512331737568996857672801896812433598410408788333104038481624478159171793327809251474988837209648276164950737597279122821970056446507778432932307995826275024132636165402701151275584474120919575566853631039216262479225618138128044885972566965838588526790418656600251228593720315470866669103349132923838090677133133093609093143489250488311885522719883840597940546924185871174693129741302668002213710599310279148986741506879621654808285168246463654903641550852653250601113009157219967324249456461888308998751111498627118467614940287930897925685590792112637160132709652724244150538898453128803294587914088381270973699524397614582457267317150453327048702042607190971511315540462047028216068237853124305923758345948600041371964251992260292922414682522705687645566941351662209559651616899336715776877322143047081429399686442689504984754811132318710439377449164584793173519616828088615800268202843210933430070058481173262567100735724738438717858923474515207160483223381362175674597375938623460622406577913067086812932179542367829357717585149079469849447949745638476530856068697863138078955742472360146622606798235147503730372243064798709857671578791677983793068599520173005759311462739829853654298620083384821479696982153706990655995607724872773138928568849721053449672114837947999951182198203001292186692956974401544602889685430521349332199789163027197900333601075710681941317706514869302074078816329699791190578741822847924223334340559297330119492021715024809209516655927368771868247585466267118995993728886579864871313006099471645532146884578142251715245127691480735791817289057174563015858542127960213084727413370579249549450180838635660747621049267314001894378697469049653996854232537318825817592409138953452959085568324092535313793277492913858284571808158868489855553407145113849454771253231706371969563058861102990067075261447050633667456853401618920423768429567401343809642382111291854702378273710529421302033075956709316969858524837520632492977302174489043031692491983429351324120884951046043617255201968092218164536380256202742101484983702931316479534802512414805949685200952407125398338239321609753624219945101661570729570455411147470831073317005169027262555319658406579618084190351161464640057784706192612265092814874384865710238360707998711226776612678987070688430013305183905303069727000822413817785789747478879205611774356949408107671329914178801979801458388763327052135530036845341885665798243950037949949378506638578509409285492990426661271655079181029792919650380654332932374744509136038316235667251367217298333283220373192547465189058572293205447679135093788196670961534152499342790665363005267466551621075915660322967733826357719388608351811589512737648552867948320848376397987223108256332911264674743375911885326653115168090364793016844702574640789727881784423973259504411929224048271177057648725860754837437406946365833922598862216729446060752480188753867181185580416517133118512594696075383154273521927221115790394490777831574934401502590255155050129694404556094377745881518130617858889806646452467383563220991572089602999661699811841169699568738558879908434152900584186303647767692101162095157921529114946651864014160527830737617978622215825982632693660122836265798006564089379113789196338481062929728381583831740473006942819240873106903518560998128620684264996037266420168314066747966609800144219817169093820951139683142340414197711006210382550428014333251613020706909853915855077813327491829190846206984021821000361966470619997532870810302077043428107123809361790445685778293085961580854562749896930697816666132325553949486981307321761013369113907218727193053901252577623395192344535692506247376019597354161732192985609276569487394292959359083140682874589709330638379039757769638635857305898644344160468074339747149916520615224777679618399082731650862666422096341655004924862139000860673830077221731257185457678468363884760274723617762867968115112073914265040033176245290065493203772783799596719049675556569872746660555247563925612202614325389572463692225036347783382008741941566140328624099445193119486828016835010735554242721326285046382565432026911673333411044218665259765483226162341576146012840512853610941499954785713063549179793997633375883055765561398419320959966278749697977629955135391168422698537708109071068271826167573003030312465675289230957115710512814750770263230611792236883961165686130983817145059537138319960237301190366264189859688737421928409170255858722995489370203265003507687733376183751697475145980893908012537835732808597228953038657413196365087083402750528166781770648268285364690961166940163543658512236054344136943988626311357941122041386857794717874886027769192602898846834000087451864493117644971554195138209553841161506929427789030065086632219079705184899305488345379531671566640447853421038454706978936965535292487959247747923131902056217951344282740362386303234788425370019470038976109526272248141407620517042844890816967781379303635606896757697017433607622407007720409112556675363858856870901482500658644486607916936408195924672324087693340892771508939329055294813334313658746645588844927244097942045392888396645733107388169353262017879164328028697581393462542573347202560638205177109285008492648473117572120803279085304185882670287283946062335074771628385710227195584727190118338416446112574141750526293834603076886329556787428312424683632262195680290827776698290286700867652064276498234134756473811705698820993229272575489067918177033941978436416892397835163550327183342098801707167870693611529528445577553658140447237672949235981749192285158635343061977944337721036965146763375445134923445983962880732438259002224608351602583703309041635633548270883341907488360354558255465447427901642184299845234835256555375357184128688913072171846059521049427212425274723780159052231239351239340830108910980540331024899527691153504397849565880317975726695121627231153506637638935643284176154614550501401513251153297565083927627025300560622132137136282152327852907264217845846891905006156361278667534660304357308641740130945373747482770583185645321183223744653837382686127840876160329844915565154074965639133478294491335263683936689273825209481032707247492368829210119318567179864483176209414442255274350494563796331555043580302510633497770705997766681253648399816462849805867383021045154863495801568110619441527233811380695140554677285178932540892765394636490516317919299007976466238180133301365683248618908679085327707668891890159178197915405576866621448734666244850190042758060221314824250585886272630788375377175602300364695017482584013888412913125570447360466169683139071128489716712689531050198150881830406211403274595745447312666229156092471034609872544380861932412492682043602344795930596741168439882284573214747427634775877837396245717540768431287226260353878462603107233223643238937775351677149199938789863046284379467137416405692709019810788165211153975358474217730326771665312572484638186130626942094027768590317026139390269297322978982147477494369866112336019101247576016225493456806822137315594573312074091388494540868521718439944228970483343033176194179776746693313015860088491737839167083253856295946831430091407879096543876837656692476532887719593896497357923779608665561950673598757254742553107473529226074028168723244578202696991341381638436628365308854019999742225749220353354537514473049100601668889373766743624568608291107576643127935798802507973166081822261429651295358189526800927683757517455498010492924644157142707650756262138000315913685979647203070835321471796771081176631335778707925746191781243634624884516664410262638408529177647817098219203719131749362610406284671580644945586692033741194203896858347227339448613281984365450682157846163669049308905281560112907850207497497076652420278489630750214971355281539575595133130089221804243522017474906680377652651482323061766134321226820627253770957679780651421604692621470177879067605283087104718031962302179265226025988824106242973415503602503588747842945952430729588485793953499496903040816014272253793937988821293964343896436584897182138133238547748798969785023504066881041008339553115532332538020706134546232105060129236107400198768178892563319266432463304202595493549161166433201701826821526306448363255219853247949710415967361189943409379908094138026238395570384700437934569374788860841770885081826594255641281488956435579630460184079715264835506814008633420988614809156898139602410635273300742149188492200129618676763264051224837079750638618869172532886946991488225381945307016728191615465224719452997144130852502131163288787601193221479098039651249993535559070719993081742529100620346581353448671323351437202663051688851901103364895038336858751889388949097492463629614260387855124898202269179379258139864242363404293102911750661538145136982331096337604732418265946623152230679354851544547886269308725402278148742248159326834335916368284590221770393579366526149868189306082219200303351850153400807730149823144709258149367342240020247963630483248173029162297338424087369331809798963023705582879031568250226264062614719648845134660128279108834300446017649188328605222003509393859952032244118769905836086501785119924726636467575775130576042097291083538561740537457909243391203370249613042668929044174477085696333138127361691679778763259256910943063913138395819122837393484406220079184577940219970789477373840488578711237633138334686688203101421165689435419184184860255558553679460374491333217739725163112192419496072499556563341577945811821937545710085674164243083739834895656056109826031533721483624472610332207990894265847776966251239402118097797346279176519479045614449325463776726184563764856568153487234454935554894266583402882242356152531581938784613784854832656912234645091717322012508460162602949767859554608113954280823821102090995639098347209195918951866299907068165890187317111386759581920381213314167189333917139167386537693605348985400231180146659344257454350665349593802264405682643219648300147257448339438887951667658451587869693866666503080352710396075648246085774123671480648615414629878173913538660286374826342455843307903912462656249415299045781695442953745660278599167599738494825696810036721306900126331302838936096976647215737810660641837838208810194736847689653875646600397722157349709308089530252726031263762867733532417713177192930205670273490569746600777424982586071394880291763735776738793941512616543570522657557061255870448823868943177452418329430827487988960008034992238682794807462680974096725015549726311573552703897120851318243725880452015933297743161916226629322669524775325317073309699647963464199639803258702728361168755571304809465519687447193600716577819533470845184731548112021765127536260111461660441079589374138658628869638875747341683050491491406179864488152509537423683138226131561648271965320962492934216876187733369190154467295940754504407848441687196133298089526307918728174569229902961194422872178915842486542219998579448792116166173706294610124504801194200780679925302800440432975087562861777481265880943650322796994908464879294366995666723878965794925881238992134362640949465649980189201521888116723284740680973006665275848968069594088668705069236863149931242123425929442163581038981733860582115459157548193035070220625662828878613396041166406242609496444535630997248526428350662609496038327551872558910233140222947156582342869464422516178830109730280459005360066455671660950747403865731043023218144709343124164786322616411738290824338080396950226516311903407404340466652616108172407379107657124224858242423449958025075398629788123926565028009108392056374818234544847820300264301594771914868549745462323439798055359055704199259079492116510427577420450353998489051509070642930041322782822616905478216568838174243216705998843772409676481940174002269115107095602498961914217349621989969881035022828766355812471063879317773139286503863101630883463227722499757067607218455099028684951022520660851526128546978060724467393975203361094400646170439439803279875200226499456535264832142612996851780556894426130469463948906541347785630701212021326739224414633846777764254111623260464508586538855961849227868845934746618203843390882299900466605393452596168300148732044277215761633878930860555465310510789865158933305835761139510379104602248529554913371606968325763914159035245141024831066336718094499913703074175434962124587540824665198212079689288540652912909848253895664268079122661987034248887707727267732466823616574724363939126628987443566448919244838100279029214950213591053484937150988453934705707504694446127598058701258555389853906301813689037613205408218331401583656335462416972509548235176279085041011026133842618749861960905226597060398129838212012052305578981217293542561728522816375454735042297954537316763390182374084620223246886339586501584636666275955492558702463605694391566510680070714902504130624822151987150005558193581866829472957443631364362504569880398250646644260643076591474253963354523384813749257566726362687631271666044974190743699360808577824705421023310580488079301058230179382044632988962573857251760666359277784543742197096695346080147562050096968256279535058707876726435050507305734660464490217050019656294952524581470056178134982323444812305121168141217064829596665332668796635113792082601915448484343866383960595675290991830827427036125593402814705503314105851792082681179667650599821890786898482722273556734139124540619178353334652608320644884888570964024454299936315161845779570321413506247864757976396159993184042653758565123988224372187015629011378398866036194430609002245260182769879513335735683996268728719715266340476746141702276400021042798141865937144098763830282569452562488051796007850656160970333641170311926227621163761825069886917049618229301652044968994920128628663264746268169910976713525482972258156761531938923831312532732352049824612632278782532615360006373250691809962921698681595336747481609760162091790080319736950170157512832916856720120137496979648917163630048157562724303539797239050141458604995139280695882506830324279446451895950515877076028018237419490391418456801842711573116961571397963517832671537405545380705828311082045976259574839972253600618282093157902016375121666495320481498239059113013739773791934292906360097985620086079786919648258842808431687787922045272108841180121200727741521600892514928501975881406980475197462003239547585616332615950482972695883478476616339115643384975343696204777201838847098627662919065373108885821325271032893603541796364035930772546493839234375378531990161221603400406030341536013533331164915893848517378369786579751647600010017311249492421328652487607441923398854017751260849977813941303513039396689695952002003182079554611940046966220477705221442603637587432579208270294005543760105695891370216472510194589995197397080238958260981170532990314271028019778641989019494534153672906667271584356461816983679279567260821972628197731911989510416220531111845153640766634633022284482434389260238810732357578107901225207195090266126262813821716620637056594929966720861065668696225771957819653491928640312730288319078683937131109801159772271958961765978041917949026874165066200542004938183009998477096334137293814737209501792872849525444177873098282800676719843152210246254199379581159484911742715950170338502651140600011951046341321591598981224489713773880439167565779568301727766610986712464793223052932042731900801606151538067660397166520486996281046346138998204445043943714950018111310765491893361915105669348536851321553281342039563734448691238752691445471707331138694649211518169585426443398038297696328968444093023047449831429256377857844061693841828269239005115930022856572369051786209443084041054928555594835131669035928931891523823892968121327824172622293818124790853765528053777496117242864044202449571498589561549971612644412660731955651478135952703971585154711803080456457458586545874719141335433983525922654480104561465299994784597515204743766770885085021607814015821402726560387750185531275083599967139829836218681465332202730789133261774016342061780681151014991815569530615566071662828621902876957132202593040459788648337543371227874511011301832504238600445493928686859996137279682408702397707538234990185825871154864742141151057486711764242412179106173573467980983883837775328189362574151642975077363856788959989924058987867075245356910598374265999001755770301441526437270787289416667442920573393881327868330827204900773380957281649323827819533355201178627846947993200845580458116737053944189841667409335268608725638333293977156918057226547911115187019232918236521613654908031834864713008354278644181831678647606421045417707398863874055516146566696731786323936247950113771518499516752275515477099316975349072859541331463384806880673327530507249270250371592808297822831887804131209172667820595042449981544677726498410748840932762719891068922115942458027226304106736755881555037214035794960360156298104071937167144388119076690423225405294120341736274657284441348557814895700940740106257946388406764881261922276771512912074072434404447669882312920256024337169781071318591905914965310624342409205810164159622294267628383821578480992116541435503302732506140974926797428791803410921980109016891394598711436986278991402283944043218590744585888143011869874420080935128105606872857376093753575087331739869923962588064646266457386203255284487495954761629225218709010054047562587764512545734453996908043185137907468422976609371833936840429277123559035857163395856946655139157115471261512628639420397860336476474881321129460335676717582104591934705377285931511068444516309118821041998692269164666565693770179303513797871532670019619369513389705346455004404323676603102738809669416945225028616966877028434892140045726594742045109966667980053503137378713660082807286939468994905456044944392641604898621892572048330711738118103120162989739099138335567972740883204959116543005253244867919411867776849721299852572097674676162800948389752858983109128473756524166534695668023366024682436410127231367453227649573966700045661141066312955601916673061434637609660024150729949233608687258027903084103414903229388892874627789302828512522161116798728314344563533064879921569008147343845569701170187898793535384974495329782271317703516586512625508483947359414389465813574082637228434810641138990327685265789415472934956800193937856696558087679023522964954710537652197770125157221298266007106819199435068793412527018624982061766359889739209214058870574722504060126060300461626208955108732037234826275511914642192534304964482459956647618230876913337781600347295562312127681802603118674809251812426623781612238518716163270995751787666320407762406009413908458282076464153225812403449096325266529599440494829572162998862235872693729387510095319343179293064472988507065229203489775968224648986004444389234351904096482928035940730497836752031520628272617045022250740096495874674875584041998921236681944082112108078272290694245956223980435159246033369749711169367840441211101043497597198241782716530398038064333876938214478074079568306572462919388241471625716319415199681973465421189230697247210997460427691827599924561226287895375583604434372697769718293727403758436329924690200530513190211482153719835563463976236372525911084763644327733410979192339308312360861718623076744365985562652887470214679554763419986121824049315372175029431706342332391773274666156497059865204568485007780952235104833127783891583555213903102345007054026320852345649138204524725084438646643443002219182838708415612785053785785339648634264614377779354655191608589991181159372758770637476884851834780705423208394182414556006694026279547944596870139589402953735630960856905045200771843923759535985113035520375991834595754554682514203345706814247150470213066670586932749885729454954935760122641800610538109169703781248239198965618076228319013657973552712235674599807511566483182474754628121370955229671487316026145839816327456990116669973629843687366393054850104670055411467128983476333435709511410777755520628755649084494619217321098093499542417109774158140649332183525791802070921765252100986184196772055384892543202091718634933327565375087238514244656088515865296091009127770072533577550786868864603055693262190721177588372233781413038490875827907715177235005972322887154663502712862250339511084091372145693849341577641332117249214313084541700407917511445142843358207064366404275253524188797597270067401569390875450345501770133008894468514460699114137673959468892286498076792924971047588050695273988235154761653855659614623141606041823059952091177984457135784915199442651833159357675906918079773921650409024058268222961164354461071542974448788377699820437765754748486308843997281984675743273334625217221375847516358954144215684354936738175783144141773816540523243686538203944357473210538905976531491836975703876813403311506584776314439907646558340771321794975681476250146704743668890985437703514407488055563261316718782580672837361232383266961009126138569774635635032080363589792303288961872932303871922663621046415747952228239853121189098645569086806440340628181939520057262324822431058541817018652777486721408621111718382437787099337575894173268397890828351834976645188030780995949340910517579699354712569270578828627362175187352909082312491324115055173519778012189352801853902268249412091096780304020479752551586927861714340353366324864784631725475432148084201439277823566770675827768787529384147266193326736656385090789089405128750459687710303203105924930868684687371759942562687098372548972455284305696397850537834909801270851443931615916892838688682035426048553666627556872563538502297897007559209834152998961406331503325695820680981031803211143341596415814470706726877051092748384647668398685692895501586528359748326857813577824879339314171871920522747302239464347675537723628461877097627860527597150376202895982434775512472155677500735876556320187787162642844017529469659630785508581002793730132780667254922364712599514467120415049073793852047299667045102330559120362691502694821165753180020755278123834073747515168019190645718867679835196731147090550883307689439907078624560144948982036978603064020921783944790276178807164536220070574282489499869213983620285942310810526839677218148705810934901662580352664175543492006404567805483298967113610974621632392641409846763610149334309959952456659332261937899757198445598429099293128486639237371739413062142404604570327618793765947474390999199908677805586173949706381082745600206043890070492645649508534737111071265759024467522407533138464606585584726268723622213501515177593130869441900644080915825456878137226955452303715771900660159041085252517123273745910677435814516832376676028754667784993757780544026974909564888493537515754937694981028072605254403633923732471789551294937762116996596762192528004320706268310347168609140620432308295948993316902236303737338588624174596280004816372077181369686047762770774563919031666092253300736632999955962831829947340978641065143788956966462717878430234392308100076744032046793042698025702798602758474064692679406675281009453341792857320462880157552319955475625305348661187623631344954459951128578613219082149942988568574605067465324436519649396411530130707888642455968037586089828255443380745021147380942414873946206381770026355541812559235055905229835448957232045111968620165446371665452753569719711421624664175254363386802087199238778106123596996768463721578347811968759980134100044256975778901873129432083998057718117987992323197282110081176894400586311212765082795521229660312010744357283793476465150565726767017315324088465414805234060398274405725839612900988194006153051511073421079234219716177300092609053661577496520764561791429329400028218725365289383608571688967502309432834383649223719438809370757190133475461270637332083755591386733507889997044243493456820362456017938599502250536150214760634686788700991701513417461257453552731740499870210451175466361032016596986390733527789684828676527767952279398452832001608640377453728983786318912320813542375579847305975352718974744842544332204000212687826911199492887052604435468080343373019742092847578570621441426632145317526649293787279238795770632352210988202893594602984192891216760131620585084728712907714038996013090887155547641708905463979998581967764622463047042510741264438839548197510104854524331043726609863517976651446038009201129844205906697222490421785596638615693642906606488036160575009966067234321211618271709679757271556573356572766746829704596846288091796938690663281998534496452640479005332943684639200455122710589244447106846256124384893675951060171573948544219133779811958050533926288175529824536059581819651627437652842221644265896548810182768891758143191423993977368368165036156557607824343408637139774364680683527385641780384494365289308270878756054657738235167957802289719516834996966850376896027700770991303039831804442479563887234067661120568586943425924020045995577954538724562339222457636724559772054667127002151684005027581591840746830540409522967770727498814619974409390352651661119906724840307774049047124354395199880024641715661441128259156335268450541233026175771628289753373162789047964629434679837320595792179207173168523044380632619324291693661838405375666701801419064285481745057454552936940092526790285394801600608554748529041052805733603705564205131704239071510413904374502854109208894526848910194094412698050898988027525244321497875255058319667610022779912115042251111256429497231903564444649112732749056585255945742005942467286624699977190862126253953987234762262326679401072518520547992663636604648795372442578638713767242909588476773614706306203105834182077552495443038759456390285709726598899171257325858326316384223313539219762503552819681925548018134866493443506724059912765079122102880452702117376270758126577534071053632789535141687411070688117645532132596117345297894801505371949163700192535110678215211797315162399899920689460182343306742340399213851811834795390215156548524700070414829237500605601211868930108423180411933605415296621656406183354229227143423800422564117519434786867188878963440125775552373204465006338504369072185422104096778793988227676680745803628789416243498449347762691215794130842589086038335831193802474331461276929679366225173642117196773265840145388598903034085226916789318860722664826611727666881405807468993064707622284194394878691813947592991468631748652886812796002845385414072975406149786663281855431420923220501993585287571247959571805052620497166883886830039132934772579942027651076252378538207030373915277052211891962117451646812881325265044567413878470613637318837121338636309821572548922670171409448109870127868009254111580336397757241130347905383356685108864753959002733799989287885366542833380132474932876186619547205585844821165639522648535821906187581992780193874392664116243213554358208834932611307826130709209131751358466034761099845478266635255854282334498678915244427133515184976110018682500393424627070467392463270093785565078798776626519480045267652370294221955088792474359849648480001187227256580118959928011095540057118097940428571784612327705870601206419016911503092741717883871659413430917216263615922566899862731749172861880740671169369286456806884419130922190284325376401535810074933968670015208963268582845469845020879982158576201083635030993716243442561908362205523131002860951424830250820230721382431525431677440634271996751835321077908196120746584205127013087757917679759748585253928268394825925983420137722785466528806146163774272591741375640438427866514271632765691394338147045747099728011754806971695960781138695042564588110461343715159645583017572008454767289537208327762509861707466066190196183989392208860431781208043716750047763580700424375733781976729121470594942465994575123310796457827655153929060709430776954913206429852187317078836036447859779846558441267344247300405731002548096954769977294513603387600531432654675498947319829143758554742373274789398812039295160483577069607568940161242834912565800999404373800594501765400897102684629552138473466414281013368639989339503386399445767835359088182684113352160690940766322115940457180501160990442107885957839642779660916187840854146078909882346148177611820218094257376848141667533582895823046959483802422140188350220228470522861910978882255530186504764715098825201233662050568044578814560066143184460434507856470260391592538953201110403203498232977756652917949325591414606728948059187173937263523584501288250134436682332115584662704034187323928482836632817464616122928953162669341008037066449059378547855963622159236017869414419180642065931954331646557938890918436683113772335927601175610785793538913958651971348891521879389655184119283755466304474089444282154658969712050801563447375592044489484382827050454673795128922699029435645366191378830145231993328068251515272898401473967418118048006754388497832544640257392895519524404748413719493797550902927690790552077509516321051152675797242416048134134947480245010119226461811359531684768728985814906599900564037350733868806642531980468231721611412353873733556346530036412917771731470910890792327775646092306505579433364680928861014057038917115755798705959645917619064991041874802139171867214277535909200629191947118094593461182618503306616557176139095903409275825219633727591839134909998052022042297115288954734523460275783124960030628770659302270159083264383415673911958302827069536393788736901055938469496296513762097576916896969070392249129711136107428237250687654861840040899637787640896193051309337007439736887460061541631766670264302113828743734185028729709213294357859103446466994863799371745686552765090029339427205005731906327647308341109203658710133598371972007016143050048078690360736070407931361106523957520938227894304792549550545874305110655057371504627771085451719028337310560668749498322657431638340972018582133401445306039515279637729033563296686830558083733031943880359816261848184834599094866319033634068231267891588636905103860531225989123296532240696045024511516948647473056926535723921091723782992449118201565320133046445830254814855494537774608975621928653170416639185424901252834991844498483013115741835283323945460274734307418429192822641536121683412376914533042563830337670036169854070178851075863105659193658646412966189586794770801421449383492636530752147336297128772688856892108303051219017183332032784430467094964915236108105893265272572263590163628128083507947131663510248922686033937037104993441318573551347852315014369088913071376649364889174185466812699446268608231594988687932776928225892310641141277868622236220568252495401276526777303000424862651172555116823268201458761280140865968119157824234989700120731044722153979289566661698882826993914429542887982910526504013511044505532796720061336894907206324099280743115161645050561290519797320685065882542702962967791593562883727241787689905029169252116895748352047200823832137794964094277699605138896425255544088254473532294368988060262494986295077887929817136013017580363314415944599967254252736282071735649824934279544238470443494719726285834580156329880898680096028619212441135589818588292500070601671250744163473963899624432264220133641920908316551991672880430428083721962538514119548675921764148309190617674736187490977709577649086829776768459478635481640100291867041859331594516579560606493310771758199210299000705340763318064160828807116268378054747070478937507389976739329178196292172530171503579392969780924377168114732109768444669397312179549683932463992542956246493794453941430468865966573617098106299753074504392906042108508746634028643306393301064840152208383858228136384322517119772622652717419236768767756333315436632555772648781800095299681880474487898243126374944424599692341263977674761622664748148926656746892402235976539696437796818505646941273546523762337189056054627155427074239145863249142713570702349520483601315522941158990562667799028628239480505634268358686338537958292278896634121390788332249972590205399868830079164175344266768526344230769716428391553848736952764805413211228478602875522956373999108144921639952886569930765844880749084616136054142233995937799136164408532618235578359813539537123973081849967791325888655433222709179815162446367113703794781389068490289426680733447594026003079911192514262753172236553680898029797728683152871809980747161086098168820009329700003732934363608187324681144598311309066855811730641229628009916020536457233505638345501224530280073037219586980419728261947848437896245949114988723076978023737022502377923185590979919110763069442919658459510669147196538065429143007676727418899216816382956068148947448744087802419789116729087638004581795837735477481555686952482506524113660139768337758848330629519554620821111966572932897761411349267095067436884805819018746847214827612803151574996266237145111547722015353507357461530462953669863455887434776320368260928200945892630589144068804704008880921539678737778447676989551462624059313976565769391331975063936438671057595361288475966712134903961387090395942533234848011560797188642811622931267456440912940060628092025728835285907755280648609333329799147528274292138619189760406716936985769270967620395673228608605865229250039375727378583167528920087802153042067445339144107610908569440013978458427013216422810300071212352424450274888903774281215333394496787394219136667364058571247779100655353087630008159752927885846029397121109334580480721410226790475001103514954023236390748210867324246206462257069740948306347889163642832503006858702128660625384109163857006467612859366328299350373172874256914047856863889341878684107881739219268602375349099486715836578977934808638512793224619801945742536860916998150639411611061637349369700116971314667492870807674156566756945545343163648161154499095508978895189484367402869082799812644289883049131852444645266380541064866598975450624254548386573147699397706095680743748573193556114250308677911872280204866169332319041097603288979128416274063024383886458204176590416087261739153810658790841949736450040956616085193592333063802908452653344172696547581222395745687130949406793092067411774537932614806833927904367096570385769560278926945125086778481730000806217310688758896027599767062081780574286691567699391000758856468481219216222382196906564634027799370273109223558334659277755113052716761404253081246060686301968417118082829249266309051554361377121833691363176520699739619811164790288002765224932448771528243093624174888690647025441973126905501857595777763878750932041092848539557647503334879981179171388948395539548761433675150307954690141371635794982089496617558877224247671967523605115347156868681079529858323534212703522954677969004228021457619731980808577317158088709706497680927947742332736358255347068375428700130311332578416283389679202758248325254999716543625393565745145257484168226907120651842643848049710708266477673197428245475491636447223119587977868101614416623209532976367264945287358635355489757632559125805520282048996474496127655263212559101166140294940238256384185280509614995720082009214871510771731328109945127293624716344898834436040119964468500632716393648352832702660643349630323446629179593621450451183320249535534588588817265269384107803295966088157232082551429055710282161663387761417132275229377252617251889319134653926344193930498976480912447987253531259965530122864676487912017093159838617895999884378712349683713167363252977865330363470650989945205928641777565428583819983506038686530129423325980675668672373710372074770173111440363338833500477900294199849756600282781732644305581386744870551610666258083768441846817157759367761730082192577002999270367763783285994308904799424766654664865467325050684614586887995853125080977060420880982261979054418479258071031903866675031290674249440985156886761677646754636115503837558435875663776095285692245990920537931684112000957479766544909903845968001633130057816455523742372912643912613920689680147513315191824913872249798823143247458332207155098862529018185554563397333460218500582564621478427171428110686791998058485491038880921247343278925755402216270244088962326758916218856712471275965621236032904638475809667959968291513494944997015327008541813702341652948321669539549634593740590786079149027059776867830048649584913875139281777543858921966985721940874445213884718715397940382704577148864424896812758576518707051017420167079422751196799939694758175818685945729271078183852901897675075373321552116882870854725113036636366011150712701681717473232038907672234170534093852810710759722545642578236173673336338473738419264695617853068570541235490035919816924739323553414361829585133870480424089965647405092059607883776118029130182205959770974901156851016566743855932123089762837273289524954712532610281739555032001300269773273294863354315660208201381464868951692965957469423026989813902359938787706868583572706781098587953303605835226982723593282958049394166781675740426069761927559744703780533680739178948517732465713987706737052455948445617863539182163971804568567914221943815734594394381539275270963552977294026985633336464646210883279494015601494176735504732836278612430790996341701706498632909948110236801838864651194747185934899911876199190644157388005984181994056974301297819754752789612276485196735865746019388694249793873288773315005035084253429492527408425550939672527584236033307655162069339669131630121486633602581333386082343655555229358687999115269484900864542594763851631996782949707522321226761704184123508638117549602852533902610719328408944478581344727571179868684435815447741903668659759943567110967937341707707918253861467656963144677765177097844511485347996621983378653032831026728413258270850494919584450440921991619653896730788241113576480807615766659311997240746053173781383365482923808031145008643896934997288359357509110070684553985107553653808234525228556733496855150259342248740666129940696900252197315477058324584395308084041910745790267097510699293415789642088344389728762302313618833994877321098393808351417367557725253351416114725468553451991899987641241951345256294477281100307069446651607110630184351213592315254194719712378756711718956655094229645112401931370323094803098549947164634645848108556319873417793072355584861196449825341787049049362345304785927295844038514537952408406349365408166674292900914054786023028191383282729212163707115414110304985758375909257153079767508762631334118401767642058983854796477784204308656798002486494469824612243293675402277285622812683720290385319808216379111756637925328035044555324043727680975542453570246270307212198165527648548364762585226853987124899948352662342765443001363983879627329398996516035500426112958017372382458463463441013992107775730126057557940558718194050766404804835820902806444712999052648152769175021028969991536422588882996597699792450504620615471983580008883914773876330936109236323197239585184850076121409047461306587984847933349155141517016573533828625761634191301743097187121760597281860069129351164059767420903168347707806211133047479221379900404833160541178821260754080145937729712744544391052586314480251843707225490841544391863377562479599794740219113400697551444657507237153860626327716970764052883811027909582072877702269933125010078282876748697123154335633988577468530353817601164683340088104271154755450337925080350251428087677151541588097527712341256245103478288598129704003849886224329665332865032434861733791224854880490134880328226935705008212460091545771051310877779746793835648117253603675118690813479074750064743818802601956964558140051489548065309886898655023056074964951401898495886321098859985289339569874758539933866616740878715172912269700125354312103552240457794513359982230529683562783799548645803029588095598051864337366255306095553381334029933970437902688320465175977268429119615216693788128559978729254934769826702012594408959560793043619618213020464064405437641524789458037860177056701847248203974844363858513035784788234171507979981447444978947220586442997588367106414983991162861063821161906142403229807414090168454542607292007552551683067733102540666744509832437524614353707854325454540303393376168198271969662417722352006081907446278235050270752721185181470887634164833467737636725048482600459911253799909108191598514954200824984866117796062192232333723484373746651734744342207229479758193077414981597698145443592453271526523864265163705396407441339477415644832014103515717568123071977132122885775259727761766124674596882559148275062653281175527403322448613148210852190413531705917306014402355174428195981421978267759974231511322607599510709905962585497003382224428513851674200596276859931737493367807911653182805718687307761779342896490451744091379626228384917575842051428608363083473540264829158730142401317381645399647094235592105122839089656624928898690326148563500696692014772336532043460466833096115558958346142516341698429587537337863293630783320741334798699246297351273626878908142501408056946528682315873708392048429735882096035256363703220160208273845125214727044601241087946411080750701071254025648887987297632632260346422549754365000443383913071166129956020378605547820351374263848577222104552896025356429500062853743274189697146368112137375484403563751189857158038065220316846883023188960801965889557475342525066372605163860693808936889369416525024486146981321091687187567770350042936399401832008098818978845511286747579572414847821136623907356439068342658244693963356967025651994972813234047518956859509748925889734961148451125358147679966119317710767584543588183079710799066353666909753137784329676417806123571142955622115016287763644647647444919890516552945915014951614481713132828623809384686780783985975213168193065706752894265075612659355568244904913289471519017314082738762950150613102161046997184691907152487635644852443135627541800455031320023373788364967073491268736987491612799390157522239386613008109790122013067380015519372602860625634738595809042613660441005615966467215542865119391074757186283462339947078495718864122886843516159019636104125723210931402181065554638522282873695893750391834844643985722962636384325519732915451842081167045239533748568445155876960989857821852744164353726626672152161478578462273683598426724447269316135037617032716596605290207513835053142596483381218442951668125480461191783760046035868767942936704814637563026672015834855504435775761580705710099976045706945419739725065716731026736836114378408957000623227399980638289830834881349583664663899972460852658068851582344497782738613646746676038277212992802178347508528263484758327356253914968817993011223746102670764879543064505699671104514529426174307120106361885538990598259650264591772114481764732507046483819469603395720728084253236061481930236720450646587236847768247308093318869637002352129209498471005699751767170553144165092278578103102269368947500801252393242472909946550045992266084503808826234208834163320467350522080145891612384691173141530148877321668545323819348739409572766159827909117104185335870003313522097760629702492226296181595339790945756282480022186187342804628516124834344675803663274264650698199881080423579034153638998812177047447370294640428382245773757607437100079305809847339921911656100432273865841966267877315103331996882559542525003422988030139680668061889131238213972512003043710898343828307436899822953044668257961553908095808992952554931308585325057091882332698208136690546355972445080083802756909346100470459587306990763249376809429283513692888664385054269798276069806455074287935404889641590074412624512919510436649162497665677031337722268898538682787087027325435838564356323227520059303832480012063078884628213447293115990366538178460153997882677264767987165075503410265886002192897294958264989678198505604271654878206220914663972542352630647101036674828574098835218295337549182165802299918147798680198100880561305924691596485381559898393331945918071353159266350645696296553812181685321100584058040391246610433251303250200116611162667367901740911491016104758976104821472170510667037811641444528787233180288500521435292753851441215025012450580024033778735597110367621566372434047326206901060053768732532612560614638375694387622555218857703143190653641479931817303222000345118258670722297663450292060502198001220569461487704791158979173350117137453933443710090196143534735447375974867426095941338404106470311945030756425092911589543583052167637649445940593154741415488549951125796581289346111788853667436489196660001933798185375442988007099361611604750020130530706535638352475541260363895498263602783067997952105488625669550853308446632765718200027866524712223150950367187835867550463184107697182122461689187986234116330483408458433642014797243733213394242771906387910807023966367328549857381817819929397488445763052844090715594841180250034473472580225822684339813322020185415386161838817066656685017426262775143363628890410303415118784043864564440086440877130267483934618885537455959078537264144180683254218089192010669231216072361530942760644152284606371891752413404755955455058951069361211827572793311280148128178796618433889348212323922413098823255098710519471422080600433537347285057450769340112906570615446515090131797476918063076857897358964728150885672905324038719709506421185743109271779175166178179653873840178677410377529313432746645198095746548741870520759785921319345333286401494062645565549168383806041688197291432154529400622751509743606800604057382662476545858833432958616094859360968961518259677415472746796567736716228465707959609534473900889745975208759757646577298096188512847563736477812345353724807760926876631380539310242404944252692146809842496780079361543347944528432829542421625507742800028578569578990586492305222581522507858732017627694697163698027875124469963874293553881276998104113868945005121543086465307838920848264359206080720970803137412935802411895321587729799607887636872809478957093308257273333660629290141336476060329768552342428452420028498207556542431985345152652823695570104145687244602323286180468029024595939143413394108672975272153809091056316129298338973191870902306881015564151525299166614748246173839309962370813386641308232323218341905341494842598381922102510304598233135166581507700209025879171254511956330283153592427076177831000395833056473756645640618562501130218044536240583090060070893933965071222061418413853476301311319008942147673898820975597418058483167791941565546183998785781521373345181849725529667784716227122357232513049759893465796312904515883721527011825995486355731342225722845113948079062758333339798668069696071739868266458630927122294744395143812816120824373868314257845179724798356901400688935734541762056427473849971972441034413485931720994849134474425080005970261208062242151827014701711814908055762488323144260196799936708209053755075887425951506693224940324126566576227499317184928771534827327280690934745933149290020354791829930573749664452686206293726340182793022124006442164055929627137355607392946534367106483520168136596155642623107472619927510259270126415736582787861301668684273278269594692812990824022299003479969253537581925043860151792525646781167845991194651871974458434680766125895926528650579818958668255424789121996539070726105348594164657077756574043585796529733346921001467989266384564565595603379304726246885605134289802675779472064729461560208938743397105225859992168345175333065244478640338744698796976952030259893192296318388343714488840638415564693405265210714878588603452566481076376330998295680256222726066891485588516607223875970643426534307742175083131468061435823461913568809565465220141658442097145293345048171651073944419505530771988389357774292519554532143679791491324507667590811700833863005309801050283354451822355683048797549273239437681538420671650774375545306630465304788917809358066319921019158526942813059530339094278224192803353889821372751505664272838553229815871358752271978737524434486212224123596858478697962325515044126836513057222593047564583756159450019430110890903306456706787400231910116100567207608839757610727308497273788517474188364312052384358721891804708819175003007176972552293110258030717343507891720340699580250228475715562346597438843886758527534268368575595189928983331564990212530501406870318090487841124824356425378908525562722303088520069907486149610001936416997222883087325200235719570102630515635946448757550781793690119456714007896125037094535864928413608802507040884934370034303639493131710431742687664714565303633327568296436128015419435433147545725397676342904637749376798309093584611638035174568669777238158075263474824492372090281446715004994166150069487543422660510658275063745119070938999195271094083822579906286518295672874673471919522311875741751129252500776530053618493687012254982588922950472234539420234211230470880601121310534155620035859082593675466476042906702114951974901514436016679492099291578620145115564202818577647703420846162904464575792609316017147809397421086063481982050746107133333972079527501760755398701212102739943196847412555049552722702958485803661481515520984549998209220152635116150271005004838298703856095804048691436246728440698570059640494135199927288620147194672709209370569041329793843593010991842192588588992751680926679021962336154344065824254871409683348452309004400802592167246143772547742318059511914493849081999463913910607937271570222439033126415347969542080373115317685626199761777123412974087880178507299377954971807142848251340267158490051870958291929087196230406655806443800701843401170090188197846548353977362573139529242136604428512047537731648459957473281604657508712339394342372477676374221003866330343235541165016501047643833784449453656472973272745879040394940314866407048695150932472164596652971106682815510974108383673241855014489474707985962014566270830781370685800928003349145057362739569180922797821399303461001948948537252637214331679238866845671439342207302806696775708880028459793721823369051085209547009832636559452727429641482433377165171150814466044151114570956614676668999163567280302500031186442302511006233187400212889369810384599312204995371693159072731057854727569617470664701313351022223838259397458555027826132605684150679788934586017997584841862000841723551345788120915102559367907962920453060761185434560205550773769037075534107079869149202347657436026148316546815294744810724719195172581118075858595143279424550493209841073995687833322179498518058495960306287305128045716471104347273709067249656878827946605746047041153048188572902920746804302440917092779226706717255568741548514468569880670164409356365069361147196336220045752666547815417071768116715343404449438445148456058336128974507885123185453089229648964465416876367333743709219630684435375950784678026156291572769121184655033013738442213070471250624553490897267358982988777446775315715966967738936762601370368343700824788497680691418718420903036778139375305589441463273034188921143386447793433276870357994437947133923173589829851582327645044793592832062938346762307824056510332811981288092606882718305365334226908802199597782719098073347329912597061493839446707075849882040990675897246095311244011381717523094397047590098757701124830891394696917782905954476638258519691203565893923475041660184573187802771408001869527959845756841753478675044009117732556683122919686610657881382551471648113800627509118560161034109088584086762522725642319719942652229528501628765493534084265042464509017404051367776387797897033201154280111063818801819920317384565386908604487861292951602565611684704002503325303351268162470608410127689125911480520022403562531480283184569676915547156631272901049536477139616538846668036622994349345464800243762609978597926672290254748646947135678207802817230175295271510747150534568358221818102317230434256947359256018383048865468323031163155229422314240190976460512024530857071236471983867619766065129646648802043073223641889094611605009494020157633888568509414789722549565187607247194187813938202459368388104137133012149591367525613443424860842113786320463063476641730634952161720537036117239924832292633983896983366926608812653610952943084769932811526539786780634839301511396306398768699483118067014148671029584330615764125553748873841808790274511598370596685743810590070149349883183910858831880689440181419264405806469290789389020793742940204110707045142610729294484271713069548151600025664111501136513464930875811615361505319880885738517361775164575760151149258527563727436153908239869442365383275756377169921388701606989059229222688484321549968196237869358457825263217556238816840767470977825343549810453270441985362008116139341904890577666938770478411304018290316701336814905394113820392689833877730238821675421324889365673724429880913012253088117972422500907519229264960192219695601207168284493514571496517194393430604607322801669916271986782923866458563333350669109491652911905346069702686381229383412941250721528801252474913773473669311243456887233948601860006843040454397445642235137018845868494265405283629594050076568095322281615447790442672420375666494435057412831805234267818957770040030805866260622537539372885362205599468690747644408429827573248657665927263426120769261936261036206389366826926507911260711860274850144733346318497158639823148020111333286006100252150840323085998278001305712286988081943203795634961828998092827792637798587773206483253883713249323795322413395060695647009039399126738160945440558771224559737218080033988921671402181740234992589109554906162273116941605992749707264622821097758156663119475288333519245370786778948424733966092972400159134367876246273809228584365469559486401877191918667452655829866342624229766000572762535635333484662425318417570731642047471090240052224753229605033078374439601156948980322730567100691169982103089026746893334932652143980476905382425644323354862306546551533787598585977171341121878667559834160363592887276868569014331267313521071820661145157733674353270736052697056189927908536900185249871155910517544843903251220098648702106299664592911212507996436257219102330940449700736902063965929474534704587301001267478399448641873788254123336848744455995278663472343054652559551665138945956002239817514884406885584033061938087947594483349666126441673499381746172734285743988175367709346105736517707694966241217030387257550625610095502648155008437370995286060776222098259495587327308589232504083340925197319851560681783936648733575366932283379149535083256569870649190437094863808881883381175851141291289275619068036238675738363274426961364709594992420571051290316090336492194394728741860035580725223140296242115417370765828268794529146017858520612452693801790228240745877620336568564758341527754085933492183394551265888999454468568248688520025366721344148353518238145964904503696972144076164153765600309184936884056095830600806040564196213679325338373570571419236525669914518385512198182417688041488054619340041750916847485417679293435565925431363721323108212812129800232287929731992372458513998719627445632304596481634143444229093006498749966887402701564370274389878801070470965907837495505715225903111823343838901302389164674355943852098219260172643900234864639440794701687575578749800814130774456034873334206300831160900703909959716902919989911705939323480897448381015951344220101923774595482556389330884882317654721726817450745185785549472765057589375429534340706897550513178187706737889554063897794691063161679285764457912396071633954484977539748706063447540134479844754542919446930232119158400750056171986935476168169913753209929199662903713859199874080845017549519981669984291896558713158166984641203611690458403851505148691000508226332585680389973422360327099657992910582335399199454946963472583252563345632651461792287429892992822184777163787750919848035807120027033314976712342820287444307764652198419957637967912798882982072164000966755326383301734834783510686679826488745725392103438888953474816992617798586632864130783176678545172889125176578970410466690008036085962238450815900568601334451105605145603154392552251863174580143419575049550220061968665145436511913136239678779376882380485952737849582976200055047854321854580955676220453387459712676963131298759345474998811984026914939031852587961852628623026395084965077855593486606042162800593974586338677359359084557042236472852409885427825190860742622741666779783775886034461634841900588839133122333111255716359017867933603041418072757637342232046298887826034942654335608093982184940141984730688505138647216804336012985916054922648990729025969904742531285831768943202493934655618682684590655703323184931115382423889992789538288531838293663864032845226648229547284437783379970085681156440663741391412988155073358110847104871454920603552040304398667275108036032985335283294994590797556848530488746859316009367504533736835185618507052157315793658437769032676424839997751289203453406898623501989929861406203810014389140036219547716288364536080902140085610486201755108018406530207353309611914963754963207871218679491015811241132117093173543989893772113800247731522219292869228972358070045435975946893679149119492974176755486727424015941913949184076698868481610089526984884279140601333352229712423221047846864724349873422195675148109606296546155719803518741656492077526810972252177145023167081933708202817458318440440673120817884521872542345506584425129496509006316576687956458984043026057764823241486810045275964291169040433873203658003952604798857009176048258196625862414446025829689166642381557075911337014060510048086527081459048840503669231529956596811663293267768590574879052919885100508570146677473519993431766772088617707380291770620099159778337205640958668509889521191455191781927749256142997345486949833533461561550683503388285982206380624682384030876255900506923640832220883141081045980678951994037129969509253755916847380726919192867681105320346142134398193733304521684843566035472458158054042112760777650966867133219564943880950193068003500542760255977840571001424702601846652229590825730422776898216377085084128621552309028548923699829780409911385413995322963967184787471417681976090762985991663949383682382354239388226255092487567361422913314016032845875786624584362866253575177560620127265155786750585085988451842250019160185133301885340271539257627231925496475093773196143871706658872244147936814652744697239883775701832506821746944369469366592280759650094559945166902815864550320210981718054138531093673123212581400750526105362142340293124662356750570937472928425561202930632986135833163111399910609137257979036524652769851647365514680004455061840632060774387447519561249936031773854443496014830808368034327718474247001536573213346140463996472725583467365210915350699059216178954295166642268751341684455760733884807364354029737281377360446558265274786033609764294445093877980902597215041211404628143007311393843356954087530519493450723137808285939348915870495584467983704945960130338323008974005209752992761605441940814259438922372910639486155616168399940107581492729458347168065527597405103690130109767983699223918467853732693078652673521139941020589825270190326701742113763410201526990795971843540614153772238790385148305408317495593414623398474542811431488675691090743893155151061475104087782642717710733441441797940722044594416715802661538283242449192697684756157238825050523822855175267944120260356347087062724961055277392650535708958695673298762446775033987471422130364687846214291826416479568630636470332463634612802939311039185276751702010158511435534164730624797325621737073000255629803337745705820462646082562913014553993758692835850270547798920510965094749406510733360403319221843217430887329892331041008110637580922976740830208640539783092543626129077987293959495632234448553308914016571408584050941527799984763438596853028477824502399895150558231071120895521335176733041110072158573230205945442551798403044316715989438144448392632213610713868144587440292381145577644963020111646639696978912288421057655973421987427667913677111966642361091089771731347073626745059723433574090483871470402097092511963571420995363545720924810771760426820874844635735473144994336621228951295685993237122888576776969169839328359532567672485587958326820490832235608405906640295133275133038454633990649935800792736513644806679783044543235787949391458791066478365359866570308213010057878880769419039450446100507719580387807082841078185517247036021551922511703609903216341468735336817469748111220068441133742245221053952648798752645944493178535991252827657091457271648901104055082473838998779955493843153923271478458029107914887291564903880444806448035320861889793088719453642970455803179825602131513719004048890847463571922844961990804855308159933096611446415012748907513346111494934663083769546390125596994677587115895400397534394560556807153168512835338389665244675026771851709239713078632004075967194111014427980932850477075867429396172675049460723888098605816042405884064723532373703612280668740294478002147233015199616800615060219027959757941893527358877870006933804705657053301443720245670663474237480282487696379284125428952380297316043176495427912672971550523236371339998043816404385310775237516834865259685632518934775901476317219989312587687229332845096550998654902546248226916754001072356486533320762178833975795217849456932255678030736932836402444446629311317536915739793421705757440491218686924383659506380905634887668772602118250508419749593996866542893956776502433685312689711290493942354398445031500120230294270723859755841216577331945317547895025370749178535188674467146030531087377883847117261991761142520646642719177614028460596159559395242611142269130593811191779938766577448053418598202433725505037275219947650789708225915970906910717515077618213359599620358240492184061416722091231783972628600980551905602454441928286440343050870169014720860332989337660588191078609457709310834518480269136745103233920671858873522916094684569003251129442955917837142786410937114240439906943996363552429650347764353169030310844544520009284533246968673451972774850145481665537951138884523653703257646799823242960848756816145341288583338245578120915135063789967901361976359054020922659326619304486672433344450656803642731510355394729081565357752671118086966168919264385877321444405119922475004439378948176179312592811050341567810928572051923993695060144822504267587245656246549118602865961261860263555670971270227495412606979974150176303504858572073763820545549728728788903365992475111954509358188462216091298700279197025372441658222789226676832613903931533434029143116647608084308245742849968083179754231895441728091394232225948833474863599936613310083358070812353012536047659182063677209879317541009220613505748942357198914424810639539130004088895212462076697161801217082863274252221142286365706330334933408291248149101108446688667794839822876096778845269034317608845497976623985113481423749360528523397382796578413234959425343491402086821263427616585245342148121493120945805783279887724550028898955035566294188221642121352509053049660394446763838534204481170168347453301332469631962620371896484802289690905913274254727152500729694582435091055390518718603466029803345381524645486746348298746331605583886907169216024886142678010732101447732951779454358286323711523386626475019322926757483083687530398906954595980147564565732324550711206852469635815997575871487138011347282554344282606558168318918426637679039626296855948607325876779430548258057922776122216919399557307377459187894827897830047183251843557445985768270624176319800667135000087541940803131819417934082461439633494558159238898429161991062864873196076551165973537312683481858782692781276568234727083815849241928617742352033701614977317486407090335870764001427738721806350087877766062949235908892420547278048386046939735372007172365027112315723382818384232621447342708211277863169476937085744983889197896122595659052179821930256105417435767396831438622483230470652839181538406902878662692930094552519060119315339176047206585024415570646211722775577143482931022898443869492531854542390995338515192402799239615739226663508773112627426534995534742166159652483258988724532220236386839493794991084004084379606409212931332552844191114208453104215020341726768885617330439891251216145570693729193138823971200818553723962166793385265578386569685472328263656360342687368036794591862989536339908958164813210585443620136170062234958379110364223255990130693999420874777647612735941700526937367172199118848119701617561450044606069238502400439762922507294239880517755567426315012721533653104965608272564678214762538144351889288130191936170419711786443685821299980171304945610397444814813411650099619440436343915467293932092669859256006955873825364089857016687407194372874459035581101252118613830869367604792034550568630182835322547044952902169693910217497600716478394713351139541205095879263981712483560149602405928002513340806421313275784802471047411230919617209274842733108828062350359370039963344369284734284587545173899107372724816628431470169853463826550479460366068893718242831087821313232783699597831318815870319290963485768730160898335169787729729123444771571602436431547314785211701958005237754935189070190372827948059737896360358571156699741301302298062280387179304813297230581857980121538568833619945944530836380934038322729410235926147266798091986134930114157515466463931925719921650992514622769999201584141891122810283921737286122926380152752754928962550339297412003631610569939172518269687293486357057894972430515902102140417951559351723208795191263702025884775988344669666430992185896270709357460251223635114214899910360073293108981643362804811284227961774492877217960165659807540375328191815777584162598035248040994697958391546877899778873348129330809491396470569909383161850678621876337608507561890161737948209416687070496237739210747533113680801495341239020899157847186918274177176733355055045959367350268253873083455854800601882653967856604893742098303051105798819183898154473903463745101743804523254693861995968771963477876106241804427203594368349874541137872270296634902056197283411224052262819040099949329312431850396860728961456956472835068983922994084277290191268346731535139429383983699478927383283622397421006988615999479012146399786631611828075734582493523000040285899847815969123166273936782634132582154730376038566181231114112588323218465225338494601764963403116137740098103046951437580884569102941565522774567892776091783545835014128631061222015412758672226395305724308259488626464057002123452967279006880752472717357463632054308395085306012413584957483490174073066985098082394990640255520036233646902067556602219032772460777869705661201078300124830147017199501239315345019025197816508914663311221424364010510785735772118895704038333536263268710889621132269940913233807176839046651579031439082036072313486574222517153329720225113453108951190180979888864659375195992535594673195861855845716906762078425591959931161429055902930888639769563159704889518560359054176553843575431187752141028073911438450285266609399968844320287434660568213957324556460114618327958501724532740508682625601261603735031242889427438506375899093317196718316050664064595953717652543980838528350927959418405311499710091185197245658620059590556991744740148222102650895391343253221308012772896322860849668402160003232556274709007013617089980072160022433284501011940199061155321420862514323280902259220596126808352019026095343493807238080072881385031325177247842345357563669070427410519530740120509331991604880482681162938067943789895228661999209832160054455158420988175711718897433101815391949743036366061211420019075417662986056242914436844776847957199264142422227971083356292793477559281147305527300877145957476693146960293555127497306416376729363047055448447660578386001030672557888414570320544534175083738482603918666518740248812336496967071573464987723304097762943798456462881554979985455567139752056410376986662860247546855047154417431067710080214828873442543163780319409419349543812082778490845778013643828344307001651355054717276328623831753645709013959130179334564262016452786924536718908265740422976287037433076433101058187984888245511519087080496174357722030311757218451131947029986026291270571890340454447815278516360057818066639535648826896940207696661254345945068976834187710400053720574596049795436977927063317380557297091849934829202008854625574773405908566294035916859362686833714821103901271610899864335526841090827666438320828721300661835177781168302664863419575878254849030154743103891323198848839452114270034370693436961458276708112514013442965020045806955298728491811771617884235464099140559600407827210481887086164871284347441470094121914846117655680785326163408450560187023477790185401508598209463807487998728729109870980036241927151914975248255471401769788635144628651974016305373213586927475269339256060566785055450139493263825785298339126781831885439289550749784874980127598870015008371904739655087725198456529169213912302243312264113147493991608619370657867972638463441938996556043324464966086522245541412919390717098525349935270285307737030913909964376449716079341859878329211161011492595230694355564558796538706739353510703222119816829824848205151371097836092113455832010961429814009044278159563008797259688776207193079895583469558006070369904704205932171061325574143340539593003001782439123814776990893273951169199474785462038410916465462777689782841509569546241787954283531850958177358436663434288945517125187510331102606957074258903123434518247158040575753760960015211589695277232424180842579432773978226099480906274904009223479916202179219071022769482283498463684071149049902026349536648072397788473934252924944825134334025192842927037450073066877265431469520847954235541228492469101683991584803910653045694629324054839597494806473625547318672674945369541266444841598074817850322113217575561580008573274322870120968639525233393993813590901500422291133115310832348189002092577687514257946000915250691111466029579661537422587293297269766868216211863884818677442134236982932862136428351409321528256850942680002227612862848256103567394101230889044716078551685539460435515858490857085824774022600856454479379818730004501127346141864384294269887652533622358471822301620606451364785408184804693235482481572427514219108386772625593490701149890247964841297953226429401197524937249467721192417357414147453509288941041623343797747859050101411055443810593921734257876155475747753964317423337977967387185496805399748704490492089823934676113264884466366774106852560064860068113327088398775919525768532326442462166714005238146731685689348428737529418616525321359555106787018781397156218756919339665318219714464772035788455040265029028382798860311671695089611027006676574110552770952654927812984106021351671609803435264198553283044819207496684710744610607849691209918621745205185577478563701419762811677461668419893223843738962680307713511701338415790915827611257688897021048835890606186670032743778474420028544253814737848961678167345537769119782768553434620796449609661555171203916292303877044210290730520379158867090310876902839136532295640863649523288227343896174820987339426175423074839012949419805055523079000532474923149579632909568433685412028347219395437386679127659545697996088396644425905855823630317295373590240318318244942140726817953284772052606605664106711999738679640995819425064780665039607647416590529518116376867041542096144440443672024877471883300844507372255250994185677649122254809961016744232356386047614768380461665119869864061491904294720858023010108785632178944985919909620270077221189603567498720302668872852845722377052663424654624509690216792706917596714456340959509299838017735999394641750983675025861427987523758082061516875780368442353274009063251818077421137215542077409644885801952113216298710138827198281004513898866613556200654399405898973372922318447599724520907099624992359335951293064634838693292253898296025546162427653087452979163351778620549339371219845246869592775225950628481731695563769180444661969586470838135367718214178753657722031972107773194623387017351276308023042859257961353302558233335269753628163239529547742627258877740895254728530447702379321760115715586031880990016454381839482858733873524345363796047803514043378502670934589159395889249546518803277457432757765974517566102292704402952469418202670824596683228002470303717470964813927952139775508323430123452373174698065786525231127986073932808921835773399745342830795383612914168862347278090039128049201979245014059260735900467500735384820994224557898087667079099125701753043995939813386060351148087312094260345938354288882012294453084476980024603973546721099980416590168143371912103849275139729049896765618429651246526450610054501676457375572650372589522505970802002419592129497639837094807286097110381063604056738354212527242449095110372941693916190373452803657611948916686385011685483017344806228913711906103914580866178208672257452499909130400386750084784753760965242247692713057147983853048447292048387381844436896629711458532662788755621685519149559564653879231292288389534778753198043880609201876588433176056351107749158240253323897040139628415642854339902303318490260718154268180434015562240811758339363560069540110872477290007311288232939286328642888325600034235101702762099627312643583308579668058302776589680680958543184626082249749341187653014133679116743765777658220139157718980231849619596391788295388580384281119944642617069460204774666420629471482895882634243979648698361329254698026576199492662134169076808741052454705263842657657465583451886127190680132101081666007335205135643659648420640865872424587771354821136254469653375057316614107976706951024808673766341936461621362202543882181592462350012122193305224371872015537796116724494408729117365289593437071767037348284794667376297418969026274019290532187642563000166009639378870716162723043062627108692284698269317773155012160441217717771703465797228854674236974377131119211915344799414883881958123462161362987109289375682457176069874480644352949999856862031178182547758852027785622433751360496102441784317286636732507801206048700709654522974290476018467298960084795914520343662124780354338080230077691145145792739582715087012200537303654444579487348973671819830507301791482558545698772756090512667914666351758643105033290314640669336871130064389299911589019921503550140153814574996761407464299605359687639591281947332229581683137857555460035508866514170836498065502196672130966137032619813632234489308846978661843713900679518731226699024062030516091706015966779537879989487617339276005063679599669062082817404249328623438728386560529561471959924281618962582067561492108726769567215275095055726296421510178404233490755942677622249055493601672949137194293852056524273807064801593805725395242003426287840417463690126992934103394105895186744764241731337558406321522841983316106953783007791353697935841856104692263077688842803282374982459595763846190790958955416620697145615462171966642472030091325093773080511002738308897633820338927345314202748958298215343649960848626673581801666454231807506045724035002157447298354487173126124833269615390938997803678906245659800195604344846653591271683684865181489826405611294263308807441494394098131483769037905976406128001003827588177567115951321215326389626726828666045770651287917165382262332070513923176076831289175816308497588850781177957342832902908412524037913326226176017503287616205838087443538258494796071994987733266440787681590355805285258025705327582981514022923638052198070069649458410011464166712794338959680176380163868761274737125980242726459273661954676453895624238205918983997681112410034468497020588697030292893836100887198854401513861003732823834726479020584161701098989087709391977522432214501795213231006780676874619271841777134610006303771566782552985641551902812785382100019554482502959105574447148038786722136546119285240012690437830124981365038837763967570917008335538164003309858021958668720216500393557402942374143485047260042267585505366521497570108716776253903477264695940942705803087091175782914509924301477639471187613171613171674149473953003729872307088455074437365635794193736330067373034634018479752982046510115832616599638651406267229160406795084877382803632276799986504765383460502246098779980618747317654005721105609588153309695425767266321247515581469213910207328981211670384140103296072355748202388223752747414311253794366551093535642403826843361814290053613461486011590988460877714466031547022938415089825907843714036890709375226274505488284443741065975981050982291862197098042036463986871219501194540766099495365612531968381994940864566747020216524630618229537668899681592203153273158910365708708892263332726794223726367824666779204629081756854867226045969100106755788131460163311077684264238881821353598990309932514743739114222318639058282343457343165938058223749845020731417608512958849140119649238982974796941642664349755426464416967738141003203033706227453752195569354187682544901410683716540475343166477887760746297117326384732911602615390204426022506521488920977829007513952845613956649870490411654274582223452003051188985318216280554810648111982353491301822247773077358450682586594436675056858114606490617940318357035140938858842315696340559045758479362048552874313887756182743260905563381692873158958914950016784853400942282019099674651865864591100389546834537977183250398533835625767483183301799555046393743871217598096764601513340607470216215764421751942101400457189807729003106698322644371466271298479384619556074870967591312061086491763380933600991661606836656262342843699168456979357326224173738475074720341040855165120153109673667816866591393559396695821233267496628880536968885665950275551059494903188020639234460107570994229902329162406308280008115886737109465240896016730765743427828378985240288358166323788289171844026687692240825122803703667701865870043449084557218282883309584467607216876900672225761414066885667433147130300786905473762219339684370841293119265443209883340233697569694381858399677571974973165771796372766531911232737326752084068275954598734097830854024367894978401188849667207841613203668407610406748501530039006491482028892355879338836548464391529122762127079138495023897837168908837573634570688685061102798256215359016973641176046910248999539037358665079330254442153438604043108694963143342485022496129301790901235141911578924075188931449839661724667112816856775595377147430322978901774756201277756029817603824651843421624141528417018247745038319086409305253718006670305971926917460022891307858837832708556950846878895714471342568699870587511056136188871022432377171126908579467733739508271360619050232168658715819031198671081630470355117936237761539258362923811993246231446352599213589198141848368012998725434068935773227878712457566004913701201740100919482136704299274279304500621083135341872036001706692187985330617225652335755211199731116149952250000934012892773655170482954457480603153147070307168670430869870514863274335259935269754134683962850735714761701477245849895341032618916684939034791328377837400948917287716174982303057650629597565682198532603142526432152619205466973049315525283075550631071960967855767571796972394863161430565376696530945391085354505987248545021234020724006084553965278669549525673834675719097289388693684955843937393759811276111591406523306641037302296466325167504717302400033176284319451497514001109262190576931204387359338999740824764678748748692862017799773920629804569206572412882456272361058144151471356918699102481401835546085216431026684377786873105529966700677620377682835493713100321472430431532251132253527857916269055141184533667273734372443715286365949200820438389621649965073121632177332915284478222625795116980181739027420814127510311188756582810344153881034091296612369064244253028916822128047265378361591941627260182478522116957188338248549769442784600919322665009812508832629703847263101672423188629012179367749335039780538673796929355899718068775380746781737403998021840361165386362626174633880117902636704160926681085708909193712240747130265337677991042147457474934327807643050178974057610037466531358022444682353814585336646438055349752472748161346476352090132845068768963933317225464790900601691076112789020759840182205082566715253800777907778487128822745057691962263892750232172512740905092478640266565678905754291275871764391929567639565878395934219953696240735333009387652457842583845484120096767823641494104773423948304153577520162689877448471291877723476402879007865439435042936591942977350630588085391526202428855375169521513633079087365517920641339718680238623535552748167643345129650136496705097660368975065518181415379002169937196743372905613958433331555806127692456728521585770402889491763422676923216834525607976111682214849492525898808258492116448147452596379691758349033333026030939899972606972958397142718082167707399558779835298806823847998625462593818814661032218857681346619697578815713738756310221037831366570232472824028224609258727657731570243933721176946252707183107748992297707084297022443989963579340561373389220416373448779241183975002180263730145030361003590733825283533170552058783822448217221952851558822810756306033054441410473689261044591256604451522793329422576523475123764912618817426664995722643878456284013981759727476422641032883062653534214024800265031783358452987343879619200281359571529709108268227188360742949686288024942165771450899299525250883132384050589200259960977624377583352222068312442898191297477366600541485899422060534995248547348194626733683328988439884076538302575556678537780642363413713307368868687924349509585430645176286880863494618272513426732302297100908211019100512344623167655149721975529473535102270972554370981573580006896974312747835996031039129047558646969293114463854541910658605274893476965940326040209966982163143573522377297511628706871451590023568550512378277488464590834730084130465349586585906762753764861155586527035521963902359318934291746124548694936087066863786986579936470310075794013207818299788280151025591742413695408297264665029811237063763747560449204185955933923681732235934791497119897410111673972994006560692315687808568682260688431035738123033688757288939405102634001733950603178687786314154190839730526513964683163170483233720728085755823328389204293591623240809268373701043968797775315213077294423912352810383750940650637390852092955796735952659813754304811898119774084856311923282371546371626174489617416969580442051745198963712090407002110455341180412478276101067978768427605052755339346308884758288249548326348540561745177684005532982566863100491347346936517791437954067539570989256050625336503453982138237549615996395426281766752524796190644137528894695957735199736761246194553705101373894831516326477549249394882933220888319316469887903035037621952480523534039955688434969378802482798326288311784810003845337665973361109331121734473508976771368019539635719420942013966676476440079660424532613269789642445823924525740573207066104582987145123989525233733994642356350803411767955897039717366730046386202859403121566733598662101660634555622154071320580984215224752139344874860072229872167132923385303894758199581873089667390452720742458027221160910679787884497960792951157853308232296772788337077536250830757679707924038106854300353829222186364683101274303282904214342342996968815000101740663655758834950888420933438236425450057922643532982871621155488182240746032168394506671800268462991017023155956173198952639913300381326274971633600831396983596451624029965193565932954770001890034835982697193501255548996578384508165854578114505789624451603305583595534489308423347932193418054352610681364188972294073719156700589932698451006960549953896694438468391861997583015372614401095177937848737549598685975238531441712261497562865678774106919221637950458547638418130525650386978018910861782500960541722256608618663210050232536675356395738686921495618058991353784711886118000367774945224632217158608209924812913699423713695967230091151950403675317768248114240797804687617616709174498953830761136678234262285036614502504396798506809409529959297923654413899186830828772135542279306823664899211394560593614483356330735871633138594678828019796529800801781252065615848256172786864745804052769465217645466045712326468211953450354461656595587001007965181438233195789062623685497087924725401876574154024178696025837411473057457904198287859306573558108417295961627301101853529947723516636300724466006163123177662839130448089470858606059438857629389195726357620184854134390238722350787974581860431923172175710976148074899281326276815798825970987750410857075449448801230345570233164182202024190317064960404780299751873159299236032767351806901857672255336843907040403697000039620849241808773643805277019204455646243638213765707967235832468475588076986905645241758778703037116747640479817158737259347771473612543568074821961004481507960050997073705205758201357863879666482260956561192659997521295318531537437286000755008954513044105653339240437895063689992543801341713878730649368137966586879445184801670441586611181977880560144550310638738257081980351370604850782141502415452469679244328214535701072266395569756268121696361330882744885814872700065057963488159554165253951442563806672113276891861105794197813086464942537567667952534949314784880987772607222850370288751802486573346013841494472235125832908514522705918380109190713312008647630212114169382892951147350883486533522028784357813143298051492021711770362982484801403984966970622311009206849335495830450056923506867677858706501857030231158067004232678144441618988347821965959850674036358827979278269244732627794513833006197619554615553994047126392034043323635226251925266982182479073530766498596323812420480513594344731166514228747062012524246918102353532299987797703536255505784597120338789708987289890434105468935826515976724595267743240243071429429353305432012442689576662691719888223757460835869412703108996304277846131996534659224086109067051820911883002683675705026871943819354339075762665427238248315549244743937779765663849107263496550048562530836148252569891577689625583233132671720196724036378708178214036139506429553218674357966977886958323914934695456160822399129262864502373834201291562992508171571838689090415472074113840324772734084816614255070830252395260736252668832593895024456712897895936389814947809927705800516480880796835560973059330083392816193526423076435412710876886409472815067481752271353230253372739670682868692615874356805309579970163367144075032298198878376526534179520339654221884036721131199055117253260610876328997393427934739339522868709903830255495057095061959636244287381214617171565305004768246201506203582577995634174019350152106494543477419404140965081863058093148470103484082240915726349829248972603082552481985220446408513755031887964639222480505737893500088809497295223158667904647109397919936002311647191799669054910759702560291858732944363968675894258220838390224812294452600320303634201552559708644806172024518625499637576574664507060330975481937848150908027671162693801074349092298558044376057690374173096398436873489229239087938492503789063829778921144081751191405564269117202870030366622943177120156148686259707929821032016310860965750917017749853365146193026028225994117869068814977210094924732280707631959823957903084741426053602708963862519038171148515221367597562976248131058846607724189375524961753235416257007186759689431599299898336723752929495011119125574890597042029443276050108070845654368971903832020331506551482022965780939236629904615041823069741114242091710908497696603526296388445917868844244760647276089100749581219339895216323967583855489872034360962346747937771725797525943829710081431993654837285701952908054659916237045214884738304494317460817808211104100211571794382638319391151198165286193322320212393174255426243951245150479556562403842524193462291732099099017493269670397938075505852699506080309880093050713502092455530559516788593740459942993970551755057330916550015345537372304164993241250465541560512823052170317667041985807731153788002482633728681996045178979833864183324741064218884037172289755662837329870659529421854412081766244646520197331399331267822954771630663349784145667951514596659312016545747818073179562131348756022454883217036228413089418023249346914078864293896525877908917985502090939304071468545376778598954079127938345540222466905875333393252569470329252957474624419716129368334501987808504712858469407108878025915779316182302471851969024464707225658043413677787519914285577194920034238624296231552451435056887769065136926966720652112657794026401448964959044213140741127036657232495265402385028802098179616554756019463155146855945218922586141664791603066450492035114157838451049823699618863112469950351867188783240777354194286234226381472300285152718017345519309749026816441590241707823875428046653381457258110708577992936885959082578092388245581474346241849520833782366861700374214634427094684995252078930461185261082222749142064008193295509390735556767378183515468434714059339981247083152090805775869058274384901663370163394159370760130989242162919472133013703931445734474680313700506329077659103922847928069228857408657538792142153665122629832736047609418364578745188050360380095878341181911183063940190619148348788047932657223438562512846471053921752611931717519330243905587408335805106441220254488833268952740319640046881337443089122697335643723060047937339498060184900215543661906501909025558498159783153493116649164603691259209227600713492533279137104199855732369635791861188597196471776707620973281304601913662050727710377404486207629592409804377280634464841360015777859607238769551462883470958151928626473498111337748241062250100828801731086879175170180650860525942412742313074592520962748545600167541325632626784597030249743691085197221627873431588294956677629115537864224580944794498050950102317746560526525680047664374078564903605488377859562146412444921122679677755289519559806326525943070825829982747376452523508163928128623965869375362512998670875852256212529396496820571296083974308876620738379158407912370170711496092862384887687782890642649237402574579361323591164845743065749220789223626253733445932839061886752982124013807328175357997478926573175766902086995074094619797179681819639355173713488744933131603960671564194322981419943159117777205862340785780362016461875143022666485362480705089938594258736765870198201959084564823916313905121001591857491961064093572672545471252625302102989400066142202125277514428753015614049416686452276081165823787220450660079796062716666876071957459610474070760909508333556222256176789137673636474813065932480845018179128093892132590979854467583310263938792441359858105760597654869241573651285920104058569060374666086714244203198140167347571014383590292044133367038818719332554395585083611042501856822797941093927616083886103529821164011204419750640042792709831172234684757619615232555973926669773456845001044998258717223009797487737680686439485391578139110692035468555111068919742616362651790740205691284535001804548490549748947358010043734485312586654764375892365019491770683668461972679921080688966909327365104558947730948196639198573394787319044858204750363739490553334585020675927968404526552057928864160102540133074951244778541494644099388826822666717336478082255039768881527857054977248085006435371600695171386915446869776218070590132499788904050962748494101387493269248638399314594730217029173656459652608839357547187271308109704039779437441799194050757003525775871355989009954488756067413490673605611467198439287339834156770735982639196168658161966540165992539360722675125824718076151977920033096472383340066869545352561049354261323253511075050533935689263176016852433488619696462561102946011638037800637448808314110593969988433765710246139400394069329950156260171928341771330463653500333230831238290119091112856269892869095774232077154725436539093863404050642360578555424893558773455532622467535250869311310369547044578282282052496907183780751196249224477524846458633466950954504115921055719909718867105119030327305642318135236363821640371760154914351277122955279395904224292197996384902272370851960020485046976414353943077387289613126831833016600773911444074230125385057440137174731766341999784298464051235645328169981177524297041810873014035170279993546322673518728414324363857326236273662072112643811269322634532461409635025504995288491762869648430459882938053574839525780094167988567932743107460293729223288807194575889610190510534743595242431021850756312635228211635734661748183960820836859757776682635025579530316733985241421072799108175525763134163248892461693498052982199584851385628100984839450810296333259979256361191432294689563078372920755881836052105942847670335345724890274773661265520942242092150373446802786037949629394167307138693672554557131236164527844409250016172511111904861483409074981700955886969221135968861870861892015989761578017051088086397124205196985943414290747317005753363230402710545373159537361088941330948537155132261328118737403468610662492220996368857755587811841919512598834917377167529801681754523986889844539443052377440343164376730873217355721259198319248086421788274355108627461159974132265216256474393714312128008600727664195087430315517765303806062001325439885406761002522613105352870753252596866269261648266036821144872747757128007656864272019798537908612356993086946662915755917327967736177206845717177189200283067882650849199882809388631428290612659977451133147266798081584233289910475511733884142339097349297709221968417984311125308069819783152899187148132532186026852394000994730121357809808792265351414278995899650292511782914216497087087679280392073527852559295512934247283457822563943697372067555554985186396260417120112897646103678483459219016095403013356350437350301436576173609074379910108813479345849294996586935447691341521765558719829318477255786913052497132822336952038810772924071292130508039307293238550848098563780989774185828741807015473179534239702916677058664751276426972013978035390834845606757980558624193723442760698325164464780582263872465837719377040526247197116822491555292450648015175739452923319635318730460329465153399894912390413805356402069416397511644125783886491789293249970486369070066441102282060440004841596806166246298787829603321413187368525599473773570782725981483175286171905100393390068176464814702018614534046592110600909093472284226287527266105746693186804219315770782512369664941445781757624800924859996929275407471050557156258121252741097688286482841122385784219386050468855711412507760157137497073323376936446016356616579852061357145586334823748465877796820646964614394660343321750917943729556885795782091761898131719770250171932012511230729711588655602686852036617128954881676759346010757671379024651202127836106914700717009803463633552880114710335539987217419200901480520323428462067424239983324149765589903111253218400540847582465720119563084927712586494697787155086964602429593419946316969243087034861248870278897096347969957559580500287249541342879121525391610400482405976317176565200074564187092846513052789225812894684741757900535440295282396118597886284949005233558556462272357433452705672834345570850264349741383402296388562431394291451098051261857050600933454831758422816022860643136575880742436307634930421872620350203694343745086964805551975584913844560358021314480030892040148676668945932844587966372257104131474255225945098973278295006066133220139067735787264790046121996975369877319316224763674255421004965277249655681569216493255621281678243342531210286955680044615111598038322627127899163608405153769295775064217749708048009078185004994969032692553305131631263545591924618349164950675282669094781751754754297192074661143427271660089223638065332210344169633973251852557472624477059684456534510152583688216392633300783228408073285626473533454589755152467430876115501352233888037390201805984962598843681920222933530971156353854773022370916706323572253093938609026524306827550950295359846619686542775723074564512165890509359504359441643422945316408751685457559960459828114109526655032821226239197573383382855414880367004822874937994148630999458995913092440007652469215829004449401089291552746278685916329643021593580290188587896765345836259205016727213604984358995077974510227730281705072624090014063783092971318094330563578564113656374730199158088974123136516829575905154516399383561937009704561884727356773941852432682132101050888308906843676991442734507797705495998783457700392589895033645956542596209337561867188139776502308508770233166075568055744281041775265270310946956100745715830021740002476753618950956365718575282019980455807422185238598450086317321944832001540952904980032709672572182618726886822930549559653560973018961513657022081094043077160220536374630788174551337083391163173369332517642885711915392964130109581796708940884630140350766995879222538886066337114644695032784892444310511736183532111521908786460408883815780184995760864469233518252153241666073613457433145372125305146492420186265630773500785368942452201953978833164453002301495402626512217114851423265584873814822605447668708569373763115074009797912727922866138667473125315889201184830359338074243163346253093539763495020697373709227024841022985519665953979134029155546804371962355845252162596330453582301502965966776171358898616177994765638948642732704779173406615999626507784094228154711973795554122156605945081981893966816052174872905097404629154166365709983556535000020671818416148856860788318703780242153670569483211051029544998207429667577840863491775164703738124380287390112588214490128710228276953395440653885541995969839173635945475175008829717290761869726245056456139447863705919016074732189720577734824285958717554518378317216704351643405623411594335914764591235867180756948123683676385809871687953728415391424512435636385051961256337326915731038667737764877975238533097424247840502076812553933907236753357614663670411955619226935320102157657707233179098114162771894579483783174953813398900176732589078996278650956153220068054378632987487296469715514921801723395686600385077363377266812373964441422297639588521398612201477500418356727955969751201485828645194500315724615565312886249597992566625110961790385710363939177237675707788511070724723877596220147454577665005730932017613803229435176139752875121385150194284428122930753164313772016025963369176416301917750090916516846364411379054195012254025096979392996436140549935384452163742058466498333874822889323390095503473216149449809238177512693569515533867337468618693811808890964267015651977600687822943506126484321800899561565811035298845939890682609570919128878298225381700016338117776498698946106549402596106859837036729818669303584271352668298132817582988638633740450797079539103500957540011129379328945348203977643088051935368308770387770155483457926639270901547686326436110236499345803130644985040624515147064569782618385276966654234768409235526196813461692479659885801963824924131999651648609672426594279339802205350342371102838064274918151035430793515340018247396147112440601698787624753970279822047386861879775069372598491097454826318430665407009701862532926120369509848165483172266710926639848817725382157435127992686537775185405748666901922048246578759079107984416501242492990564332060110478046967954244950547762493405193477489397540749844898037050133782802789956304811792511455783735530712507181695054353001119300583665666063894423883559733767164102774618305505627830512143008013549251681970754267103440481123371868367671003602092748300594290184451820817056531234499815177170127820720857447912964115833906002982403301731533268445568640020611657638511934914748374270828366301268720406440895980462147538798341622240366194496667868803112684763211046296223470432830191674159953383134564680965615919020094787393626075108179912069611942373479061273215553143122937476362773905574273591608213239311720012595981047316347684707019010150633836067410237515257421050094344643932803116396768613807834921175964192142477651236278784698325097087290699772742731354744221744685440904423340416822688064478335456293529019904062385689036591451713324452132863189959746489835047057250620512255474854076490594144794708594510900196135768537167805409928444352220689608426434912436339622430249092090707425936150747151111463813720091256445103695191353445560736756008579965182276132642908191013711138299348117612237816047124443421405661407955521510263105040289330965424116717918356118755469978623004705943806357234123288746138737931977101487526814841955847530053627845970879257908317263349878701938953523398115097730849756636012087970223208602736728147749766564323884294845148505845256632533339231022654982698490719462050828491092811217825778350527032280064015452288001989583701169285494396843999700560868947810138994065766324405920399640708364508178594078610062009714260626089127470102378677988128979502469152368250995097844149706558084272198880791449869138546042340285270265953219469651012544008085014330496126672083690732945847758614419136879073592351090831062159259476764803791077997965194789890406366583786897182883944565957622686256513518682264604967959384053217400113297449381381619738828395670702745573526370188510815333472998324815313573611113850393923012242910779377936331162482209087722376173441799895706705600865559535030023081567305036881560660718416439789928766954129036794406844840800293384280631228976346935050310587799642860275520626683680084882993275635943595572315565175094722581048716287837141231433379857287636881693666103766721817975871744897627227479521522051730492839541471816051050464657956837831992626948665621018889729103484414152007677613873221759161615445580457256306642721632331682677619154450410579969438045091137560734746147466360672760913400595147983668256895652735314017880425352264057104417649203629698175179979221790040580215741892638155832265703546674034895350398247692738016977116262978380729116678979619165656791706857516549307827598279612709020977710802034119233831511452193083903789457152933086578912263804741413600837400721253033096361763377089510649784929648393072639082148014175659098865976086941493127290962650927364250594452002270850071673937901175761323075168349024278604771573474543792573392929380429476527284999421188523614873331787288984127899348096709208073038565975707479233953986914988653316331703148407124003040570448344638419912379014609442924256843709172418867305782793400467770511239940179483499318882132465695287750294118793307352020655565765667869774666005520466043941681509191542546913266736496604719781837206246569704685479044184397695688727329650064736540354764752935824647564705119970542945439589284698463088624211142535558611366715835622386325443991343066413893555623663819599175658880457879915883954715294685582168445288036530412551438529583050484247665006024198943532888622967250928143987166844993918467089072154248149143876766012080709289143890731500739232857604520953432409457422502077656868454268929584711709453247515464141187300193014279774806025120636979471184579201224891522811645499973609041204377679342506465022405736226069636005363026185598021278021186952468017763748957998289162243295376964782646302850701124855739614585911933958015291698051406866754022834814384632500198669866001657876037640255290148649187928718600855134820593567857060967498336861974175166382682036655977419436656727241404490436076221186560230918083591375624756515127885359170839297425465000110489244773906554821407186672058328299364040718585153954127600443000101236200979655538110032647856364367874041835954630726041377228131542521553473592748749451669383049944844309793487757367644509935562196357602892034475894088613472314878613633009382467138700764365077673883397304307463240100231840580814640405983121857832792299167125782655088648479623650265075052096312253890702828785374549061450371947096073391051850653354281655695140924774819224153144994844025061545097745856810547622031179738241408914905440558239689063808086354590546301740728265870239234934686245045174954173146630143631726984658149751287808161963228626953467809636609968929058602855928989504909812962404817515462607142717788287997887811513039045788821325353406024090045209137201726925859850117396230954334990248501276953629723520926997029285437154043914148264596385552994658697237021845812847981602909683915619834290440207845216756587729282410650329261091370544252323780221214407154611658293393003021238728359166331507331719982972813339530380900075173037699577455966914863712662607820118262165607230750100089921598858522798127263413003364411837832423779104996779805354996370000279246747263060327185497602189783963558863107894947616493920279165537508917581437668303735668590580060964953584708907201903338846273290520872059514070086841999590950193809121193186842432633242535986680759919066543887396273092630532681006367139730575171947705862129120998952445223835952559441302010289682539831068750021690428198257058099156598000071920328897404790794463042988221234511934946119088008531862582584154394135001432393802471201559900690676972287648260790856717394033664422045165834554325483794122031452270461956628501796697132900127074462889654214421915328719675802973111711068523668838972033628266458608366978699390755322036440128340807245390576130721464528705204688193137146334901698479792241049862484654060119277632374386401856952950489264355189234523697787824045510918783671686636570923386465796913051882770817067122076315314397783674162645181699722950810833047164160361008175527625108447915103606234576661045235944036049866547949479539778701484493666081358475241107252422782169936716442419434030445825289753286492832515417336641648986061754250465254180278703221715002747237451581496381686385291365658763737960460698918184669083440167017533062294983586031874170188604150424401254977596342183475293847642691053021930017080959600291097630330036815546135141868262953167386996599205365678070966038228690464311725120328884623702116142503322216763302409308908335123915197444738045991989529768723027917774116679214089879476703536078919549327068584820628343718086449281618368407519169328502354457584385438636151303892563175994747151881626930415845718327014800576522491437336829984399914054292078861484643758370648365387371615892773046598506578564500844709190860308952922278215849908026554258411507886903576991057456033198238090122475485563665234415267535034114810283480417807260773937731333105443442904764177672234045121415359590414553453309794471223193788356458125905689799124542446284027815772107679718428005443100662972872845780227710028182084240535992695506370002112351955163781309463426028146518832719015454410714256752983165172827000764913284263152989124855995878897004421822700815484383812653382801575355531604684656951322299631851388266210888814859758671964355547956958913273700887059887457248726494229871636139261744326037005208889261215174105232419390229898510189120916356104017457093908960020769826326700723512821102343306980016088641645365125447226474068958132707361986311367432444025934794801009438594640524984271027101663257640488927276065494424018495278946174195391344590836985604573955643741948694385519546416066183251989611159916492271767141682458524486149818189871833778276704325629705454628996395460801296267514029440329858605236673955183516174585698311252630098427161728222537204567218040136834639480583403063326090863855730237094432931668580737206922861945896046967722648303971864124742951566005278096243383390850235989576238639190245056125661211627311368905180243400027993964800208736754561802920027657130002542501266799872543876455242925500508406031981283047243753395052672934735613951969766790214357535074282632820392370945231389591178607919740362590223329196310507603927049965797441004500852663639239432774206154679897697068474614876530521324438277830866228491495849144408223737835678560396621047932432013166684333078932791694946434732373959710690597368204427734536631994606471750703801783858813933977456880646206544722264928213004572184642935714530831178496588958375729032164715019735346980298255032940610201991464319115117772465398300709137038876063234778486050947309603673952225098260208371469384217156070817174576667299777662181455510722177673464293738694442495315009376935107884648003287876403392441263192742781448449939326030397112976495674470615496129921744183336503971218299566560421211287725641229911416038546147173709373742942180602428993298741253592414366662623776551499590803164254027701736617137400467293021491504780313816220360394021039249770733034430516346269986104253389305633818884932405232148582366871757368127834742394888590162579476920031049614672123358657185712115844289533321038984939301299600059057367647844868709300983967908618886921327748509343850916926362568407762547990391098632704121158355944924509020782252614448142594389940248311898597969066274977555678221050879855113809074805337503127489216929419681651307202599884850077869367817915379249150172437366246998819652899908188535457701741460737634663771363701847356024711257102714338036245343900808157735654694238430241326260939308042554730386533400134969631685412899023595982246078042315985572871603294239061854962458043550345404609188602560589208110167745210192791206412026420242639296473020993283659738234258107775251359063491003844376714929257282601419688801007701316711448746346936118092078982088002704214824065476771935260099920792792459891621476586911014458424019620387542366647291306094669436034290973215047098353931305745805249907349805553314528302730356834559047604271175332717625910447215377668550943661365128721350259278187271666974447737040322406076541850795190427797730535184788274078778553891155689327466653210194942847888177009742113954050888769002443874548394895553828312321451619572840619230473152561963385227963696671999434009979539968438763223032037403115817545872700340644324899508439670863716012265049138917636221111581871202124889839816039440678920628198945919565498230793438131487122661354798034874255053111967237946293052641957558130253320856289779755226877894515946499919926850043295049464834847074313799235027640210117600224526158092609660897782417778689733906067239889620417654837875330493589026990787885486100178592069667109811418573545801916043026063213111594037154082617863126649866809414393543196355004316563955018085410445749739177517149620986528642404759863133434079392475472185748444604354042155596097440918584289615224658907273679795342741006804498578729701917679625061098464123600039616684419438660465658138718344593643501634757217155724950453140193937445239156484043084049072813521256982909596928446109790071819061180411589873935460627545539281311846511891028537056472908613586059938068667137007833682372687226712004798109581836342272373562048768119977253523786285513206596272939261684949503189457358258189451205635897513498304374913187029928046031611901253621863891922101556739131046199862153252063955104068203207575672086284153931610901459820804829103551241486586709558856913636134691063864491263894101646393107973229285074261146515033724703516093671220886867217497936283321499133517974567413297838359476321724287144050876267750173552746091519085060322028683661084699452322725275596990216416381414941934167844534157125207117449181143425966562901258108021941437776052527523759061304055258976138571917769520562219030196218831025801886639039121070410295322306910111992460074752680660491352518683934340187490022061270345743617090227865929111863682491652451659002420381510281770316257422436344852356239702370596615917897673032284028631695086732959682305067080583750544113612551647382199903254599815788189712826226172175192998539430251436642116463464955589603797819122731508019104810449921331676629530432173381753245571448417952373952638561576228777057432825695170611072899474686573575324472749296159503543840847581198891125269805663916863191029302577844077533819748632853536221900018551332666358552467759193664601006514465991065970024662854080165625693167496805311966812784805999330835675814048085023268010986264591060303582614197730660324318588906499314642244152782985213957048998218939200751813540761714043148542287182590627904599600061742286577985204371852820385285905112846139169859930138010419116208895845104772026341334672494761852199602019575061385577768795365635022523851314741572319252070979429862226235689742208361667203406601180166463068690348337501529068527654794838416074979181517932926082209084623750391726005736538278652315981040587574535210226147545854058986654078304050448884179235897484463712948252963375674090500988886307653683828939930482379597405299107668908644310467934490288974907027589650898853704005649657529068978566116470564444500524587434323609224984777700602643574621211687692437366973864833088676057297268071299833916467319012260868221982661446334376803495176494187988880968965287922105470452197122488620457221051535878081214384472517309571592554852600754518288206042623237468652881468115895719195231567785665098405598085851681188408395338184941053034752007012419200380520629813240813541958744806427087550849335996686877918978805728991927592392750336725837544470766666258377881239426946426540673059944410633892010314402090159765127344178393737595517505777204420506555686376361940948093688434859823702763054475160483108747926332383391039885166814521634281072401297475544281173228681188763358706946016882303954441071241961401252328320767542520747106439169163513791320880117601891568414496847691608895720770855237958260338753291712346330780359377727083494610450522319437593419432019656687498517659238085770032380719281033862446435103540766644869945437180087159662523125835878200534554983997214769178960431438811961407764238984618704775627789712063171282681920676570253090523219160536884121213517317609256875222925805004180917318487443426031414017785667695125602996416913467291431355377608864751196221607063810684282216017572851522633835574189767730154423072590907042406309588536197642195640268991938537424141699993072843254671184789240916446131728139204420481424004157231038389785994251149779298570672159003964861979020919324963126210509014162685524568740719507510312530361795805977363452440199448971676796194709323362096079365332640819949140767498543365118192859281901634861675520609397850856565924584956999361957843648390600188412246062533113794726360619959833762303082035959454596940314298467262911930322930921860544589842495925040683422382667553721368959467313851663990876235672274141026123160993297486257287296819683174358955528452336464106480268379065503531745184210662007656860854304899059066863991941401045144085185825438352582042225968576180087356582647475331237729343021820863370136528670807000996681278350235822873471027576685577731141421252805215738548873209270314490657280985594779315164320181875546499541231066532760978622447754206594126715012403123307561225957962746293727033641419167975376997399873750802601462491464374363465972228690769694678080639229859919757041462830541991465105277661919415476117062454178168005732449289439886324477605283486402328412976401767231694643872466616065876283735874167409478607775723370027572375875256910376899248938957346246995955408432416757192185749808102375541745216392492647820313029286507263939469777609745092107395361984626956293580831420849958418963787229903609236479789065990344171014818448067229486306037799631254935136289069716183157692380865564935571318488958062078315826976593316645340931960184393250460965389474637411845279292918525230338602163391307177171657419597360795714832881858164584935756932905358582768810954347117720849289662168132289534128116162068660618614977355703012957855166503726385734823777978446392568992348711336483642938704613400195182219755635989676272805933614623461224148331384462028215088114094851419503940015409487664560487197275926134454685923522045505056343405028938492406044003942155754559697606387404099325655159716808029042494297083874105812121540969371370272396227826915051393548477606353860297611392824237739859245661813380185956864322013338346060648620166524588949134431346440149870332257381571839496729918539768289893683952261284633558913109861312923689593601696175886760147833587567724832369599279114133346415438630075823091478564024228881770698711746563957951087567651231898632457810347359037984225156517403201371397949899392718741185163926523929157554289721698222895418391399783213457336791298156195234860132403558877772974850943936955223363709590876185243753129820636759973689340642435347599168296540672737479386056230485890401673353371810561659867154183586999325332294931191100435183252889808183855293736954231633181588032814727450373296600075194885090167147181278042457655305049461055256213205542086822709478341098256229782934102313901531677876914067052592247639445011309828968813893364452359810188405883919574189983818863380653191483561467260445784512647088102853577599293017639774383692597036930579756431849607790429410238735988652210048791439989618347652803305221930646268821803289590893527732110564801344470964975871377862212556727200785128045182851716808734265460960020441084163837559068303094654326580387131484523645532723237541812944123792055332448813371735692989448394718361539054638057977791024687031141175650929501724129742780675256755875131953137836583421244677008276392741073085744116406019250668088088428205481675312114889805653538321635658502090555393475189454087284785458996061662966575163835246627110147193776152382985153047341915357517390146010855203637576420018642737899627135935158210826746975644038428974073565853373067981806753646215482743401176668014746808017012936324292003764927969182883442295076745612239725009991294550107274402734586616412271356026968884618668570917124802949813856622195886735559852106447759732948882592599449062293982056782788558781416441812658509120137992638882982824109965134116979217756512941454780135727422660084634659141631124009003617828034997008640583514781192248898833736999553186909314482791304001040423230956323240460749122649354246910952088411628567346047829422645377928735751134513394209491627101258716027865514564550418003855140987667430392924389712223269921822037946469096224010367567990285940077318731580607484267235218882929905993967690427527405965019487638587416173929645428430287752578325860796140538868127520832654009171844069666797220102751686730575664918017641050154742063111671766736661893590041889510153499904324842381624032757930933314455947267985194492526466449391230006847414193104190272665473247363133417837778568965192517055449100516039078008010009793632329423364206375028840392359613717313665778165313130849519827323691512034106101613942430413763959951760861491249338119373319051398136889635434107144323179740203775768355069760139778937897533570788177729882635243533291427090616696603753566620633865339028290087955124687508642641540341097024475744594512865552186448518335027380426113579028677438575878502849298375588013843677507200034162408934088489346157931936281276391197115477210113110452965393869253216378488727784058258630707098979564374919075071367220848388196439283564726186881243642769833737775328992267342483323218249957490136207042139037603914720651038026806665606589911266192283834548479447192347405035404051463492226178289084550200894248665675943645257039856705995932906596880881384005174827335808235409461857564579850085659414707825872623560328766607302056479600003550596905745760090802163971314211293542564631948056819584028444222022640780897195447011953519725845855007028312952983447684469039430253603280158349381136823515688008823374018888540596763568241284429138020417138347061949753172135916085924020862423602904552974027389412691361704037960978976519820775780145516155932967621619785965958460683470440538159090554733239620145396258873664359652269645623039910563460978941467194886197493594167166917555106478641725054391400801892146978252397990379381874357969697906463868528073340947144193273724386924048811194219148272863402904109404960661338768882656335068625734475543727457284811386987117634428211634071686678839898620533791057744557211049852430762002156977427952474952448063852356871832660084611727366407549004625140870448089455028851769560486250045153480009974849031583066714246815262329671537430253017621101056679970518841464464469195969606923472370619251185323952537515190446214761153669613248791517040667661107969460272922325650854829883060288094676776200261067268829083236063868742822717288486175052280110101564129757189546936454589170325944072319129985047783306020408929289271030894669774345643429183156662403853719472527852290172048870754614909528963400200235023131669883749968497526426173718900401749959772514539281405636325853064013400539611157352061200383615388491338603483452769923355943841845083119419748731260895095774741401911349629779638284382695677110224326031693835009904266677130595112971490418351324035940158521729225477241990667125644678125462183679970111191016230096411965753144771931016805406610150077115610884863077777428439385329438645008506374556457730714911649612576216526032169832758001424717885778857835154465277753709134505319068382563386970781957261685428886845276462085797686846129626180519864941097891630817509993688986752923400254567896069371947538425505227134792559396757556240571774941939218741939173189473903661306569535042662205526993070955387656241017569526224917559857613190022749268172459376750855147927289493881678984479281245200427825339722093197337507377416379937316115750957313589793908455397290252310484894924840495750147830677288188428929132237426796078102721953762210721063259369209169107584526425934042101740016899444364271562134128508619930783283048775054080875838580888643164193389819600741519105648753416654057622428685064156074937227156639307008117481791179080268417368288416679466737142621429136108748503158957191768219390615210565005475435562718244152494308490091865155315257019398164453203909439549327203088248362461056584940440371846511679069429158964759006209753601306523013278714504690252679516800537040879745855965640778516596086712348993744715662499231274110346664371985215135044973655316034282091263149830994494232894300383067988784328590665220810333834661292716135763823514690063041353228057234122728072023270399053103671936047716238167374240911722103812804104060860223586973336212653283733909249752555709965729657055897428646720199473834896654279648066955507260064113851791538527755150299632482080790956970433703091813784638802410936829360510207821926508391015762394618667440029732222271681209590214344373637569953148616815642404374749178264798288809073493652692829117800351656764543900009778979324643842754254221242820857168815285539609322003083965588056789322099801267429068250902289039867493947734106326735411107942225530615399560819034034679306683701672184918670119950775019399741290775351700514723051517657262738129364076711821208080492517705891683696892697599767674052767535636758301972898838550280528537142577732321233970494672231938931324873758241479346125206867391489338990091542705175631362011919809543583794736756382569258669418035930726736777023373736876913392410921951523802357863376788567724497909469366558881297442705378657724175484859059433644351292761779027416538602570623864326262813166634859515430951494865445312072111923826150500307334590108718589952979332989542117598992520363412335778885634265547128510346441032708966533847122645386757699345213006558218798891688452255932447345498788631250139435696394993726220306091581794069816704835566532329627344626123651156408744520746385797528384988881999676628455166099109263486594058931077601958691666453683043908885887450096565214050358494035708480944253374652066061891473594393566739359619385697534106933368713543415778431528586820511602293980777329120808182718059217075086300030238538740342841845750174015298977957403638717827027701359431421936031346393565764277872954348986504791144842570315291176601107956149145000652600699509436681047233648987177550054281783142975289664665786170025366638760056485832657377459303999818859404791679570194868082435006822810212483946381932229998810393049639328347352690982577808454586514706316667494496880745439913113075790573805013992378574359483647830817768520983938705256936370823002995411384092441200777860503691698610355017260239903661642390958554542350426930365270724692684992369940256877929178809685241801637663179476946426945916769896872569861882140651897532587373220726200626756104504480107001068878803388977270465682699733536392237700123485653739745939960213112935710529933935911139383945775355741610423797412148888712565373797808077805180416504883866731321826906839166087320710269510591139091330845668212757895585299451701607312583821307980164389238406323133724549261872096005479533881943114714555233751728413353596964927698256422632864493508723213284268223581791720910822197249508174526480782959946037797997650960633688497603536538112966096991525808531343272884450607184224807504333093479992030028907572880620319100513428423042992688685839484647267273262138990896992022646776590548333685717239592814959035303977156049781284391131635530587045624482243473078632154951563447081063030127411699979373252206509540847204696570358350753107146313576525109253611120256302536833024776360018446340841482287471751002335512916915134280612740425450545860349677274573507359240672613750710084948338397634663938662803383321053400124051399685196787673129352151400800912755552075404585788425346901732089144515655247771909713569734290280878787978134787969065586155670436008399848699165183036530476569040677335524723984660591543490181527951400322987253198565626071923703100959014678024167149699848587119272961557144552593344873382971766729432608961784071402727180364565171670950199371644549289171073875596955798849835211513310159110387623915151479946152122984569161439919475798903966288781045722682734108664678960714565741088024472091286413863177486890283008978110646902943107669745525962621754838518075180297342088270525605028542872030564502402492209467998525620416767520135524370055040061036893004254110532231066327005670681279498001191770188380051199139308968704689109676004098212515369231254869918494065715613530676830799522269135248854177087404143483377251057652877535143890736728080537596169868762626333506003960947287842851877398555434283548148858994719594111749237760573345554233356548583846654998675269376219451792175928565971478109348887791705684657911719947421917432388955632993412995011320516357893158112075745849154366398541157080931088494887276083703648977310612623043681704058626548717277878292719476861277658943561131708111859587143479776698685246107555743285386608522180558958000158241942587810880071135596146791311202450362357926626655211071163594214920269843749672507966391870212534328884026957213819863992575620656249183559923015139356254843812685236585070302861889144859538313620611567723850918165987888519250762771383584746587089335672885512997713469520890659089993635067685864351599969170561071450194472617862981079312171008946347783232283120626143934588053698905445555015088375940431203816700906874423776744216302488678547541208029217640515626021366842224673856997165843709022207460606175969794599669063969171272694431542324424357815892751031714036834653398261944435591866131311676642385047594634866037746016996556714169206025162356395686423754035936806562518070384423316302905093342872459214334259733220323658586928305723683080359282714161155736405386904881982080211542639502271703334764150138367808676933173210328912251464292987468209735068346105843239603537112679608144027884767422015517689574118747691899873435414667525420521176899474534734199694934560775426651064561923909205172862956341902091191683719727603052831525237903372256737708380130975525214806559287772510860381211135712413370563645763172264823727725121348614121578563716962369733224006601193799462912515582455406840366365205147763902859760531888375183734735398003554404164082344248033221450033178010850153654786106902852408765392655712702784389068313404486054826822849084959086547430913089966810646927681963011993712202478143563029167205557693050895759063720922293595257034457288561716365510954623405232968480971464186998773163091040378504478177962109145000439430429662417223567133862705137048175080422667410042055727865394656080632274132340525470112751597530475446813793998691168421811476181632584654974628048039984328731956543381455486915472667320253604110856491907633068918270588120490946284706116892903729261452383419642664300353248074367337885761224604121166655243203807825623282124336795207920841453305421455640560610351440917473523511306492120585947152415497951050846921137372917296351036315203896731864961320417912306328146924502213982841499490244838977105262776076127747140036677300922796823807694542671524912421982589515118375492873843444156288706120165069693725881041790044877273930825278734568687827442597541745136720823298437040477764220841410689829809908014209231236739864511936597439823378574326998386866457200588275019052349966248729141759781540905625394817850411861877941063303680916755263571844442659784040658209558420131279220790333862673879249519054798115510786092068164068691115879956654496676750929126989675810842243451093794952906310738479731165773703214568230420642272855978353073623328630823917046179764787406520448178523364580094814873611477429590703140260868820129614341534603501976255956791451029803042580587143189478157154598276852966489341861400513784591849744204764993889624163283422388218688391383371615794732985639172522759517133907899955299247116432602627844923936723948248024636814185210590152484677458189282056604939026708719331999799223210112653632746883289487112294908636137609064070761033498033281883944796961730385603608463841680725555710551102661781304075511427599394141323033180584021480226271265337019686971804626416917880928379980645199602433894772761037030520065685292298463779483192431785958740553398812992321449495586655902732852297646783673527219637266340713376974756772243087403034979953644752487269895307095724761999822997533956213033089519087153338107491179173723502952489528962624965061067490175180708269354770998174681516420576627200156063423694453131560236650042376602688958908855312123915458044825484759986200142773026839906812150422438422883332890887252848154847104784467409473241010979668235664973830064103418788897155464776953389157521236920332721883146797910466936953504848331872798797060510606542894503425846027055519031445042324842812641613711146535217874733887364868821371829940709596676406297143289897702172847958886819593129359236119991948708987113225334567444764824114677636326023511196600710876820409264792455483818367992611749897320440921337812017049778105102633810938066071029461427165001384987589503775920586926871907813751517205034544572154186058352196547300067470762933728826164642561470924243924633060251801543103409990356072335370809708333720521262240869534394451934961157739066277110518050707581526117308869211725781926020968217656503213394577936044986672786265606968692660629565578139962439055460722462062205953033266459341398572142244883954394819312347579244919487048133888709180941165415868693965142597654726945022157718889457109305338236596252949363910423337991809459690777063315696313306345882473737642059191897597983084741468995769333656016984965954317922958369144628466160622541152243292763535611088634784595049411467220823960364571023449046406769055033183956709592090895797179829041900382974206414537684301111194196282382601764449061998373721181170159079006017217225810018266539030372367514880875106808225249266924018973883765491439765336608049477822690022537594182347438326851567243543590804638995858451012981882697898645094458829763834759884988456685464186766361679968392736374217348758090439768419192104351359001142820143368449931643484440031191946677363567328957960183867787794231499277776167376676939615069422489497390066172852518358728767882075516977096437753379526529029489166321767397471756746289450588665655072212737269332204787597293152835492045515089482641151208340408579229240557002207791413917748057320793630247085909161471323678927888251850555782720159476063029443220835745886310055657762788730585917019473682824266146625390539004174709855502438626445667276601002945159072084365515650203350796087163000885668472611812536420688352114984895403197189705999382916823034696219531384148873067122764200548913684756645316962654458779288930828798021178325238992236750214824495948264584985944084508229217037717891066195075883920465416944466239457945382822871529331666143847789078130435933199659634916640835194335955836081580246820345185021393784191144845593413765557137633727740262752296768105879545394782929626844542934379133037608555180976348909625207505386580045306527336826164219276282041357157052481193152972854828391385596466583039867793351207660184318337964817013699607142822647109630693741715133144051647769996616869423505570855877186795092702549971613105848590648932254361266710400448075031819720659256214523038610340625332307596056338997630649117762578066772635766704245371002962372888999105582039486201996789032956116128745454956511129988672146437724740471787346079548923045082366469539729974239697867285530511504415929353993985124058789002417737730554356504158970447776271514709829158206775202030539292495076800202488507883291088348392466171229323483373777664905825773778503689769649075320514417532855906937268354853150552474588619334201100819855849906097972620414344223882021514892331479315971357663913985881321220529416884969817647140414111365326780261255544521756290452888554872550016602793729786026966504993938675049300988643280074285035220843729519727511215397041946245712937967074748598605198757545817148370898634485496760624516399237562790752084457750171102437771943264635654354520028213084878313927954905308303551508172754737050596190925119129602604918656709981120457223954871470250708690799960868432815704686664688747559149174710285981096550820616081788698120485303846265445833779871348121341979925315996590181257498386964822745230710835043861029960545098442286117732051954294255952352874856094506230503437841951030182803273563004149176587415765623066341448777764262848413795200620304957969403814888699897625012671690212221199725188246057852965865344307105188619477269541115059027923005583847225272713525505047155623375305478381190592416319260218789631796224093731843200810723897610727317705996869928785853761980361466523833878185833411440586568261302644057458428490397214427719137663405626316011566840786546389379901341018652091264030528017504059653637325499802625243049450133696944547267166588187379613348024731522717091029768794070002134145300410331083113264878298786297941316211240926317846899694601541829904681307232974845526473676578104535747223851225660771665484069945694249267133795548471030779122780828685368303261774265653988649574514624096416733833884585355020092488726687973971281367211753751655465721612454401908934164573948008582641358898648607339707134753628014765174929744819347705857110298196301330393922755823659919375831575462772784499565515846829796657162129529152595229960590706350452721207141325417883269212029444382961197094408375679004816505286907397714159249522529416661920237157176159739342232933456479036446068424598360376914750099608292304224215061332606605879977459331338741311950798939356306848053391043606307505463533176462185254876140680074819347227813719585836295553055078697154777341878890074453367373202033239683719744779521987004793177459712064419659984178926781203739489091980681811033401774273632746532445505105012640647977042549691904434543356622509931387782477375020580525956697774652384615723909765752397864968418388677885990806729996275565839091114056649539149378125321896988611323594622248732952000036120097037752844903170180791870261141744079804413256483103742223669531966023988387552513344416151852263341560712442620679866986825908252193080621868592208534567990566913927751883805963505653079728700284939609816993542033762279230153721355276881862863352837142208739749741598681925496848243555595381821581924641105255672718055672592463937767841507516986810204361983832812514448004301143823743639747560163556237426948271843065373550610439365359580031959038031824453279648621142414288998356616628610531515866356017065597742947677485413949342636487979572749042299232295599661934666103829556211934444630478757461151262199412903348403198706568177324780311904682062038069703113101359803101173345903488937214570817450256533819253751246773300452098059789736904607630174295570416068222509500896263350097824602646569843231583670461536159819535966632391117945140581599566802731145172899572694596277183547654035648116816780627496517456749229294307750942790482034102826425137409050516701924688300098148752241389531602936427727395424791521678534455009408318450939843690764378800254182225971698950077726405892996008442334693228019607688224412769543421391751017254883353766950548660073576745569018006135021858862344078506023515958910103052515021116505107193332913276772010737843273071743719500986104477818311464548934757302416789746659698143023093737031297014411135741248795139253620274924041698612795862771415013063975907901920404141397338202824260653648289116378294372080119383493379210735330259507896243575160413724988897449420677018933717447888294775223636467197628516397626796738757314248445878887305887518798767000384369359602173558273156965644874946125272781110611399885788626547771811606462722329236644741097330097401481640833028681034736295041610273743478359325249926155096870699049429643529504840084362322349444590012810779894566959677142021093410120689408099376491016549339191316235859318119790419183858321557904083667147142986724484475250245920842596128333081017448510578879161635786421763642109684296404630349692245552460083504554248981791028881161675596506576898568249688455499709466867868564958404266993619233999542151349618464112581242009042245489023761538039324542357698916838843184085098167214529535681900508802587434921748863283707830773639334038664273047456533358979415595709527190689579004607908902831140502033356795816528770315477843368469087331381182415772224942274001978314426981106386340129487450063849119267090232365622534985941839516535637967593613971426588102496123241518760707279310561093574318113673403748793333727070884981770932453243698336590725444338852964731437110906870015593208375135227715827200414723565149564402788394578835965821977454984188137029808428920070576797357925611738837782361747429711645121952050935044514131736830003604603582800748985565413046643962355302204139439908723904353761300882710934185957252510670795041442910882715581698367590018667223297463327604835125607967194784231091283186855339557547095011206642259118634002514942043519609955437793622181437432585989382909546956766359907517247809127491487597982241303602282581199486029088211106201834414548485014125053767301064823046899997180944466058387118264538082159432678529085120469760101446652378007668677159314805577645762487277218793398491816753140655285259155320175745394524246025161299527565230420063972307518796042157027782145534581755330404072767708869605482339412368172099792631046268080468941115894450955538654173406536333147136968683202104624456590604445225064281765652296780480542677772284654941212590300647983294034343257634522188125030042868013425738206723858350597722446141691707386494727622450761168536563507293220866423793131773817306411347019086753887465137705295458010785579316584450347311501392208461586478951254215336100340141276001962087998107146674558339300746092531612066976082608381443882783777404502133269328911852008429806241591718386695752925537952648769092082408903385689732846610231507881716878198943407788167270583309587413591970910631030223713504069620541307317292004286017754784570696199390434191365077242266201969806612163627794868010770664181022671792060383867219392965398075842897203397446774981968329518428325416352956270278405175194613936444419658238968929614886039514924651548130653152095884454732318081399559401713113295588929107883580703851091947846309565261011536268663602858823752236270498253407745251666407253808782191667145060398557275715029437052326022257437401487920100053982636792807614882070178728366818380950577489043047007786917755977761411394231442144197272899851886355878485737001916808679396063217443759133589166439162339167703695525843602042643897433232642648189367525703300027986359710647265792314133040944908276650170648533969453033427565110978830796253291868722745806870510087876982296145361985938588902089952601523177050284948299434511470802037785329975129524174702557321178772587246189025820283055028759759602635678040149183436165931475125404017538388197780118178865416991774070589952374422482600002567768072482346658916772064448783809127338998099106339441226827062013663890778261337117764219123987940824269460112283556690213708562040239707422118562473738560744011503133343555511056511528135033307583157722940872205370113240431554294932553142992702009622493741335500811437450620523979859815553583989877545550058594536872717420981691711860444934622795282828833510325514408490991404663615084901792008661373412609206920047816891637333301465468126520217611213915422842729755035356035936161796429143546046513946644841893821923111905961007064687390657692771302578863692847191517441744891993895505062933498444648789851988202230312221168998394413009305453220799294343013585266944695491697535679657652889136488256291535800023651269150391921763621754646329431524274186863839833573542011613056847698961416969860512160464010646325363560050523491261603210091394981780255110184781795329504220655305653361310538569550974455210003924062954462042957570541062056722706555935826784271894012998339524075622526997151285997496364500251969613600933301259764249153359710263084859984519843927232252377013967541037754431483974882192669913897662087805655143690569228343142344277585224158121950990364967337408131250280426923867750290244524431983379904691442801387354677094619246129296586890360427058454665838627415202075889718483870299601496758623894604573685998806416159170658276854009456870836160268247603284781005798491489042979987882380895611692250162816861695334281677695726323774649957671654201838315440524023410503052066379644042415352164670897637731103107549100805156515101473189779667246493409453727731289592913303807093953936408792727362143993511457899608270649068464167664638770100498934357609016896544717667943622970967866033280640897750724740572149301356112931834259289919304502916865188315043562230369960579403310529695072309753545532776292170507960735245734820168119623288018196509273733023048580741946322076471144506826047781283370806808997123186230505517869985384031555401491318116195301627659289330405333852372862182687957971809635633743781066318758126125618905951224930487021481949851906026496720560570036620494085760581551002816495501205088682218821570293529037104291818076456765922188243720370661310989080340706711329378424723614162141332035288389648522288458890632804188617665641948967027472968283458400830675376154062108832981664434421365587245655839638559063592650470473090286946681549311298613336641801258393117922282251829272105579039333347640055470287619521185103671007860888483745626036680286453427303772730779074398300014647140557723384667950424519863523883866969091692779288447984798781815912109029958982583593269174953957126785988562024566032132048648783363029503917268938345830796466862494680651689244539873555777622134938974423687372796741696392769313707698291980894569671258910620858659541751086155539342995810857849068162109174874746321665090429327204792340850869907304928077330404928429816944352351343643872631664985004034394288603259981046411641353221096348056879895162938993345137990698198699995642335616694228289121196342150883910951656841556807321946141024512707594515611255975002245692020636957989891065780071150805269074465500160326309626114071264060483668459255104479882745320492776266104010079514409789151133682864863930653673357653346301356836265192118024323381073800709916509327167752764253062071781363867592617358458996141135881522555406179096430073591355765025085081733537098887182613090047615292291900591389563640141145333008833710389949081483250458423031838437923336610153329410851540684165715143669365292315872624809316119563087002636349252752345918414504266477402640881864468807978543433319802434348157957424140997787609549379619775463195679782080492943625459934843213152655463083120438122564768940892645538627312490364761761966787582573613632139599854226401003057092279120779634740118870573882620969232033571231250666906696300240359206035435470626078964671900341857084722524341507049269375569108487997267039140531164560237272706666289782321874665834374935263322254924255212931748685876000683086844562089278285095279511866766024971126962861336883252262169518225119393149540598229524175400294283897668951563776865541336871980525196719798397473410684453907501511955566592172932567013692094212051230740973803995987400475105352764086562751262428099951963310727835224643080214332029624660993530710061432825900521876267030138413292150296023567866231846976109094009781555434295907908903531930364259241744723219345601757048832191283643734410979109403929012211505142843497092856526735338505813825017552793100705821321737296134135519405511755256097509432892422544044991527893869294966063152300436421961110266182481475141373819581601606194798959314000689498387216730402294247083816318639303191052882258219708022297113986933029457622054830289882975508805044454805099343342551399005478897044082254569781257552972353804907519326546719640978542479687579214124733667767269711554169235726066881938843166548061270731257600259576879287788704292726436343590922402366116848350353875759700583771645484005661326792540854539848698304785719864443500128240736179978936303267448093503140986997714964890707422102884087121058343528695543946822674661114457840975130649440410475305588091927997746582067546080979354435737289446897228290830420704680876085049274618497602286913243409452179527463356333008872885314532619437190328828799015833114735563298706860843580779496905830562846283563955189873717845109303851153774996680803819648620592115243236791653241443225691052635358492666753459910373410790723784134628456183164596379636264965593933923929683355934299376565658930514263212556967628943711131719246667579402449246730649795893541869469066983071367713215267147621650565207007515931404545149233384525531868284613837414501035081098582888506073980572033511441602433860344139047877345223983358025656882125853677464796046187915357033812795281150795998712592319319525718490161792707697858116083406391722237445496071103694371802722980778450696945757018002386668709354091023749146350997259625471091660102119680935551567413869586117065503948744074948101710053239606444025121836822578749004052471380543593637170322613300631430832392073400002517730922178345152745468066187130264811941900793564701501373318194759237318349593694249988999902926192718690636152366864277873893269519544176265316624628904292459600954911204650645576781408686403283013372326281054745718211934290940445867456034620265211260092149649297687954053707644494522070189075976391412587065100758716694207849931587995255538039598481695057847741387298965522685200045458745910567472875639484107968424164790054525185570715327352110968010740764945510640276783453134246367028902112876308061841375600052523052280981308300050483775306552200119028099553654761274168703971694274175650605145241766091337056468377286083822694210556108903532495154593413414778902924744811480102990863358035684001379227179992259878650534184755123081674745180578695259738211944343605877847606335050673324828387943786381534313361092067802703692252238764392917003096339509944811113232110855882537167745692116252419523318085620393981779283141498756504874936791246974792010952720857867432440118317658088901747352411851517175931760319989949072801802794664214946302638163478413537064297402168267118509151977430647160180781503738972543575675665859037696676390076717892928094952847300129730377823133114323756010027539882041091518732820518972812507146692291241322307366007799171978852435793489171576864578015540034286087967228217836816080590372223982322337789122350933528949192604497472930075996010899675941680846921609136157146424133413587690610674750645575752040665724311045815521031162224131912780989646122531919905368885261729362679146642145364485365910865254981191578213030659604055947035249087681698009326804167600569580274549928543334941590593826024877875622419879391414336383963990889905972418631126507173250246467288156090559461836966628783612725954732721137478274642556871114114231000426188899218587937273455240644359622336904966091066315870832888503552815319259550348964843006946766129994946889267983174642067711737260926500212062441769301899764572409950681584126988849613354787073285100469665836680414089515610575793785229283306632385062648785749806811771211202499806009533859504988033005227777754851092458769770754083098328063467663792610648535488717633071110567514355450159073381288738614804203232159752278452233475947836752789236420208557232310292270891495574298178857477176777065089068147798168164739188946950707542637180198689081642596431614987011429202995804233509352611257102515881255082113939640433677445664847480318752981882982452645386311190188764885552740167182611452985824102954813855904897244370260083026282978101922304545003544433297395951946116733092032120122409069137285655053597447957711942931326815042824565004639967162441135251329519183944825179057938714383562406222418734859268314817477301846518454531298502125704450857418638780594129968133423425167204430400258462630038961009187189778023670793404679207526189325489208880634735221698676994610881767032727845306927177445561642037770171537141128053424263815113357727420615822087124753271736397743698044908459182363579435579514463870926697947847089470130969298883990614935881230898248449377769419875017081885342031574592994076158238384363972999889682726801370054862779727053606426653004345776509441728437097382162310103055548278185998776840419097970928373019543716690626398814009940757523770961678008579480363116770108935954705504801170888584205449867916217932143458649517773021698953188630943197964229688508479827595168404295340490863023766340532412621505275228614527678180975997672069960522260716965402195371145381241563291840457522408802747642552148105958164604777031248573275762523731755483918576716959267367918509036590356971292390525148465764430116306711393004483044367787307580419328253598950106264600097187715745398688858121326758816198256473252983314353334913083239253892300345051023954425063590473904944632355674485923937748465306857491966086826677947892151440836588862457416028938458345733684429043282218599594539207906531280972890397726525637701028842630774594856203180479599329398886504403993431052751061376108329304486996374426373728945493596583997073594313474481657822294336990499292269815754242215314771695206241183963467412047816096578936068411143183746568909541973633046646482914233829376884982119151145742290062466913287496005564406460858722895372805275788152889215978121018835477822827484689552487600382749873695424209631361072975768378988078362223633860414092588097226675288595800858097061360415203883666725121870740260840532622460008599772404219482867641055529839443458199407820466031969573674040817832792823715650848418015439857442278400136633744074685595667376388839780775952852438126262898011289011526567128048032544587421063559347850507634463643649860441471817666887365129843442540334388590773421912789112557199643131472144712927506877424357754799866438944371213583162152125013767399724679750075243262621842559943394964551944987640533822162752250541650144504470543642640428274373136788130538725617881814564143754511418535445186667096108547784369942631601229552110306984639000862139877737833732993718686233643539040177304524705371384574846777525493092045602390560962751286274645472735806685284993277923218173678208289804058736035607685899968373178996150032081509089861610559858269434759651360354402620411796632910584218039849975413026042059290971408964077214006105425613516911572583097119049918329879042173271649524684438486382723400633239359324835707474491620529681669137411227576266480866183588406953143035169662322275117405233400104795264928397962672930880999138474886297610840388122176708454870763583570269785989835949379587990828454895402136329541804751298397174959004780524887822893704719631267517126913949791967104741238998049079111684060228555082920953185115040732842420630567801194253850426406877087565572246706815457428499686846579087708575993879610344660936843419735034930454364293086067228934028579974149293595254653809231683792889678100478066470333614237964135609559849859099076799204753811161450346712166548425614887239515263152597245150875582746343980016734284830785637940733499248773090414551809022952403624088897177903399369202952201283955887633373062459588891499915453413824908784169474473336996226921541738934709276306696821228146389982731114278835237941041404042253558877817572907775686926242845459331858592351816395630414421030911701666444331505556214460800842305114275994607540570690018336591230573795277300115590827771973448824401649230711157394287277829536962829700192574171624034924417268234111089100786139563545330615320900442706885955341912032458750587028651851156334278893415412362825370794426727615643147630751441807983788962955183448874885893732182984055285217991557487564117735607651315957270821567469134826545755922062384800570924372596564091506339464869952964853994109870887988782623410691728218126577001895727213776268858734588338804511227179808436363496720124787454889368882300552801665023070522698671535209754890224887583878955548214524211631611703763278563009473161623897905502975734235322748260257321153071849436464578043194616013461749516720212096887117548721905457058761451017627039154430260846668670420712013546404901103628268664566132394769785891587629842794845129153855858039550759871589739146462271974297859796113255411000613729449242609740052806785280694165561594842616174996103959324079197882500713047550570666636783920392774211076372172901017368463942550051671600547001627151467377326859169986241488733429296413267787538402422360185378039593186593004502571328081273743181934278987018738827244012465095317947440784756563893142304692874336411759655915733587795760587691110257889818333104147683079036303991770384868371211407461469030757589285822184970453566258838856358728800666845998287575241750725724423913548664189811747986237841126824924741460426868680431064676069741362654594848196775370399641873455635503196570708879373047018426616275779737276071719367642523421511005545848520639510612183184722047684959523957457595267088609973556463265512855354234353493639723932512142945088049370297785454442196510998148168831927948493644568879269580066921487485147806139028355380369856803896380080451904308949168997730255398191432604859909339341741967187593207050188618625664532857790007813613191272168597636571787807842844401652368555638225272731007585924414863002366382977722809998525199174394136618273351660447011359028926071961010419018802926882126114735562699819019690530748617453443937239299504091059019434423197149352832471686108795092765481406741701397443390147714634686588913405692860551468596221967920476193370201209777605568719548091197638657267862942106402045717389556953999212989767646721249596452563589102201070579346543730025263122219583119892431910696188453298446549728964673866379461618989450188672127670890031214778748064966878969653178097497237537254024629554368760286002423528901055783192318756126456963043715800204132313127008704574038775807096882018199584264335732341790691405629348566454689143394859780655589618562202077689251398915117594765334635311633504605977682736395443004849016147688530831918791788402074658750188580354392983869142811128878674882751323615919814536001974432536030000745071715934131194147272020671747663902116353481794679339666314698923103317439519896318390244964718549562118935653698621754958840373592161691106620447915118089016312185531874415405116466172921133518273919254333428660469150898191489266860052499990041091632455688653125949512262517284510217107580459043539565880550379286212963289070038015270220440181025527541085793344527575417601852746673444784552195071812294009272394675102809193871594679102474947286795612717043630548952214894541422650524635202690847906988984847945643376020095859242863673266773967120778340421077899303605350433825387190332148877409622103935692686196326676349715559111576202759873543253260110715118755256092624603675699836730489958909076575512307213689753773478032422102388074240840425459172490328265826523630964912912083082317092897966766800820254276356753067156170973186476255978441268307901297490257858369427883000098390619453055011990268219492969623799672043169633054721867051297352781804326363327050685318038713159551423340574707008324588002033952280704811037154566002551541104619265531893963622409387519463732405764192100826924910820996453640419069471138084739691498790466437268540446978915973143376700295386747982203677349176384167740858601746814883531240870033325589480000579363662630339587491713956354182608308949666733443885495493160232735793553553111195174056442083608410789193092382633778618419581226856644776694866360055951857098993758419297422683645948036979438155906397102656739595085451960309409692728227151312644950313913984289049200954848215700063294342476970585021709047342617849913794622950330278706443839747235303064226083121912983912702000798623997288335454411002785588950347564751191041095894564012127142939247242103596685393851654342988797532049628349471681398396104238986568924706694339051648376253954525876550884094665902567197215571785031372616168959304657242106422478428746969848674741732530322642554707956718478115576821994625952589261320605844021349365266483281570656068208371250300954773807933351006036370407970906775886060138641187155810956673928907170820259989357927763397226480136503020630825511194144040729535405276918524356094139381494873534241949819150726042890320407738309922018674166704527511924907521674066778615199626810609812031128137504934068020316000582358346587621948927307008407679549371612492021744286498502478333053274651927892759552433110994085131482608389040353027747931113613709017336572413493324285734863209115353322058667712083289462153789836459111839751187877415710850578574766176021686346795834271521202501554924780792988008088198610740381359363394580479085237225944119388739320718929821603288322180714865654019002688338991129964681809393022052802749243306974712182232287304758021156906630515543196520820072036090828590935138615526223622313565414602955152575198931892275494380626039153613047353405107513164655553343917694955615600071519368812276608885542437576566200642956092347837403043510214413339628180976087891990291277472794030135135846057681019082768138016153058791509978639103362510028951930465999484487837280767297079285100410021827188211234284915677469735010723970819948487084669938879663023269360563346962862053114950937922016631575594784942202388861098897661540319515874280099766339753279142464718788087334301643195300013176827355064891385110843221806346041486739143898668447839325439953411494042508929654806357173283983995296109498708812601949974931894039650209116737868185909576414200010723696139533557590944871461695196556291489286232510816583511292268295256676833116398958791158125519513217910258525514627322792050298370571156987299933119349272050951532785454805096741137013070452505227783549831462415542545212290022462218953948563234335952413021203565062199067749895519952475998468684565920922364983682027909692748219435998250043497672720106754194528494258957754407988117901838990772962143557834284333196251440882581537465995360101834104090057750125062958594640899003124966536605253277321438672932860660295021830300940160521605054682534041916976019832178314568280362599427076404120290209352822769878781180482424827609969216571237245027748626046952031632988658329342977997811935410647531371878871473033205488645831728987472464541742511006851900611051722774945655796862803378873424374145502815011688829693786048967895964987159765310264249548993266399343988422961907603418658823612448014174673170822997610986635666446725486960242659700301419377037570095625485521132648265481587881116874995396554409081039992713244996497780312982567846481466821463050524784075499219878735668418632746215588387763166907659925688349090373804884739737369943405040516060451548542274040150145435628510185522236830206384363108296932752543109609861129406907230322036216040570249455533146192576483465986310482871176012020966261840707747408632208856123216590449896926473091123160550522568880200138626836805794780865359121522578457961005394765706274576223656340006462021640386747947989354290522937712868282538060223572672520185562286728339948326627806939457432758516778329559286359251934359578722061806297827670621564976765572607940505186077541190768798754933431726949387303421738147378099191459279739024773441777885162769443884488843178541923507813636694481787873126487568420043439935840653027717856504914835812966053196725465167907373610660226221136477108718026633611456874382173524178538572174734574795231994202163533175033100388685521892174914017556096654108844186134231147048641105520233798772096364096145697283391761169108114872998331043229492587373341579022949030159777303604435108637484292265647141883100685328474394355292568535649191500396720124280625484809613822067803866659100593573794168909282087282836953162419645374632495898961769513532968682990990526476693872505836001840249144742483599213869665974794474568300534319294748863833074503405975947072991424406590989439409580072498009977431702055217352058186248228390554677513352270720845130886592566990735846612100500620949349265358422279643971843446607269302804200355381763666232794393622373827354171120873322931691718806330691139970947516318976036491852915047084790503461704492097408111955238982713702480305013070257913187098287627720779163600602053045926566714934159612330177924480923100340827895110746289736135270288519555343141211747510576175128569462764013657158480900175807109539517278474834120982704511014119570008391547572602097864975773989770528151748060529597224729203190048754114685136116576996405251488477658487551898520532055250489335273027487399628355146272858165063094038626233910558293009988887087054859424742312948201331690444288315988107960698495844861687530786359725966604512671652776643680584065061651517847147862939286393919648295319838045029431760899780966070798292877886739341810141625785426693135717953522542546980411656261744969366581892294831350667313393819298520198665854060133307579851337429357798309846286223357189848654835683195143168721209236941474868286998312250405230638988353083471529249636880060001067632646004759218512847279720750142559633871309340956872872339487695622739723897465717785793818151957283551167534028900507421927533178720843999273088436366350446918720591401064322638381758275204622200751495566381978453457911665949249020235413778851899356796150385793376174019836366367834169147064065893550490381680523926656550505001050862002242745587995297361055917568836079465294443683618735104678494806795806999250465399048120749343438725184088277442635496084241533176430158061288159450495854086404514738884269889180421487108062814980701759237849835284395516508919612262189890716263916135257985976354375365701729693069052382882033445432569132634344519511406036073468479192420534198876659019657401312647745645574055378161226670819364225378120907555017797467038764381570083312530892842601108257736268317559842695130286891748968241163715904854132307856660247411331894605907696224249473183185916011346580401965936070802427459758886394599512418897881080515896718040587167556139141551566787091512078898177539662027556955179141020678599785015918247119915990688249212710633160032575475258324158823785750005891520778174251982231058344236145178766616481962479504673594294418747322402871867752838468262899174542948752764295400728803172297955104302000169133080084429047233260491591241864937673753907063669760233368952508151313714973021402192527089944607975601760792440300428121868395595484120569900660890139390675139779060848590028381415396596444565695522265896643897482590070247522042702093844870797687503913065198889767923917820103701937202673265422346389541032982904518728770490724644746926926717343556228089139698287525941506268378342135103556821853456084859066686513049016354153081329328319108618180609761177924851837684915062023632355822637326900612175455487860946057987522539350356526572381671278093888363157017139384291879452018831849618533869226247621689916196876981003044697328243455240648732183666614778178788882929522285475522265384862760027352552123327264183167709596513121336984085961667153834414501213193678985352124573713755608915676790966937582786555577280876573488258050345127095747304488560498371187531099936945221418099009702968473413510009602022615112659219960464460942635165901631936860250795126506422347572026007986469845816829794150654073671502736541966760582722538405360452314002982007787244162489331352793981158704295678455204972028364910369656024621989908750982329590302985907882628593630780862303484308727776187788514169103664728642727948035635206208532869708117257089684586157424718486008257059467243461642546636038799073798571297601008595600935298595399952273445411058319969199589376384008483686359846132908225916972838754415729241957678012360709163062892751242119260653903846861820158928968132786221167515710808022085543476663644912809711093284805585081801951734823275362924771334460472692544202992727984677213288593828003481357258338455558765309567033248454012142376659380006893601234547943368217315018256841999436198044619199666859885723752242778366370930228897498409309911807238123466591845257231434099852635654545441571454184950619691115698387250602285455267086185414962988835394723109492456390832410050177270239762353932563071873802051439259253956645312976977638509650036783369341884591450201827428288907379291893775655561541914382350300552234707559649393623757312655863313225532801077558586655431962716540469342344015073183848634269681253615285671046355843336108675473630593481688106269207429646144730244417486091270573512912063163559725416900611384996953751398103231297663349140550730276099540204219205945431786367039496945279343294512440873236833460347285317103632278374139448167602145788302379892148704183369853907009997540964838615378264925061878109061523826858804666942312410519306837055922620986005197741258284225235543403137048585100239063475664628507753916550516498140286945224142048642480539763518932420376121453986103266983620477270544926647509893691774180568916081652371442610920672086924464948292065132993897818164413184154308145572217757043300910925660901171406794149382124304816560738259127300892755159059697637369552949473595282734754794305322817636306219662124369061347861962099670552364493515171729067547395190918414916425998824135974430162866681106172486938867123123664617653338135901219570090263068629057508899073556541378042113374298256995242262550906353369041252529368970045732199938555739511207144759830048248372596456740457527353690616130898582053300853413671268013804558477415131749071053592419990772432947337296198047481326616098179295325572277468217549048143630913266197861297725068017172982620362009655909081197293505779400308276871986796914232517144039217896948929628847814044944741380750855693200673902640207409977819801949699817799429278540008584734518376038473290548004910906396386255820888695302038151155142540189406760403703265608985280027042013721032768963623657931070056771697105976388022610122907228345168254087016011459636657553682755078243863366830969518411081997137929228915159193116632638135132641898385926240486617051404761336594672033837718203096369862315480159543724717538234024336824285252680451978801120111515485708337097655808757907661073340401150096288325936578793686230422267130921205255719772415986248182853719538120395289948511180525766089016297879611405476583995331975686104193563122251695223954200138689529396709893200938637873697479324817017520107046928320986221272396892509883963236280349133615637094377549672834402054684342835202580053370913273752319559227739046684824629787401901349994653662471329118394582563194978907126168182728942203548210064420659665858694915607479493606124940726761469467272491043950274490587213180615178253836391303445280200513674325585909546169857883485970210908465564297995765227035228337695141668134669451686898009488806358332385565829321428627833912675144135227710113119573733366128689113139414208897813827013976460014389448232085155599228062326572774095225018255898104103922026311734554618952580423030424244807938740602837329676226231180442731510204642778923479015161448385276957536192535177514064100813648311135709832781411964095917187971330460698878610570799122970222897933836742167601315088340119796938190164544536589894717313677926369052381662804069605616129306034044593422449430857031272385060325328018155344360792472795439109434077897093055238230132333601175664889680808468873260358965440879138833309544547382168760656971951121118222329614172946312012232421906428416981475495614060169809264340554051955508498521147036250697948624966066370636532660568212750244303474706941222306110552381473842491624798023498628238415291517574284320982289353517032226024159425363821743302525248771431571191211819696483798717846656960307875501171585893561105309845763714813665772921924511352181482370476627934607371052827462784885067887604376695153763342288619839888502229726182354289739528262528769030041630810582566987586440010523414787746243971051845121625166006878150724405683682138296877379950476854820699147031738997747037305532530560694173317446313632899134824766151223069562030211635996173060743631652576310743589212622741717025569223974010472245660554592671367221538564447790004464318044558298729154553858025059110680369589949772547190091468457779006924080345618387173322817835364767074704873922851149518820696825925343924113130825933877311355368532007818878761428841377987992995411156784152676719350496073153972138826227834558314259778580290553950133667808226544001649428551198462707027981555208050080056162620086317223715364322829084596689116117492100628984160149783079908392377164600316502079215289012253345179255854260407065196472372654788166666960326040808774236637592871772931891574850665137316580394065455150537664601902581989575931181979824364938834608559161399727363968738256576824179326562204599222605111048612807860991171340023464899508486077393778074987553940716102599653896005106336520391837080257683322893142177132791409673022099092980601574675394083402995776246595501290849610226755310582759617935847150174824105525238655515634906512627254281431737287882287085278680682383217320803586782202608396031182525111160556598717090312800553608033125705963262426845671937946329111508831446574403450327548015226273487825236074671585539420916796595835824428141828405012626549754866371600301758066045850681619640609856955048565587228906481580398726040665752189157632293938439517412233088518889445209386082726618187030178012039010864009464372380986455747427739971055541350068960016518379394322681917891955955647872023048465214305044122746159172173297098270725550420271338122065847447090431608334737995995238975364157829640009581745334394309086503976099073179907566059347004670946707976120024356717321062797852449218683023713453915940136358286784345238646292184381540693599387894285714292898092343346455800227700648256859096011158354105335446835650394275694520797220113597338367219757973043520328612926830025121511685792842307207855262740251778107950964748860926160857309988784033291873253628316733437068925269999041713626197301570869417856236849235785904224807752453716362484274809714266124371080103125847904580142851505459333813722176908497467598831619573679547468240196593203953219578483855372972130763177701043939618079799060819849798008182593786428165142538531673091529566420698702779952621019644334718363430769589674874959183055011008338431851197641761586094937277759140587936718629412921886995813032407907980630502082500863546435015886743234207336775074522100124255722593749458623645431184788804032526889398663719441566812695412348816521539770684071052192493569526729899086271752920233579757433940979392820104187948870196099918680195614928630218207519699439980172976053199592277119302361937656165074171474974197035928589623278972387651884462224954328237374101325462783233373173496003402671029762356348241857946330465614917561355033661833601896985911623223843278163676398248624807417395793922813717417422967561125736177013159182252261940463400023914134410216039811984110483453325459700692932070084594076247411392174965941408773275917521403102117298154297171757028728140466752793063021945949220928982657999317834512491682753368101293317403288426280150563350311056773879933251819560967893202524198436341351223690417102905699014231211714399217017739240282043000505473923733169321261367870301840329207757380248202837302186108033855000799730704204724842889466503649316502613079990549396624861709378701892193868487674866567223264893904168195329438884377055211619636614443461062187030798413905989803362464767132020798250864870759581112178002879569186188388508980497893721201726823109513321714687417498769163324090185075164712456058695945408738071585757267486435688816590739568391845740020729554668703336582690695583250883345929313538855996762977430328439884103942259996737405874298045015544418425439576830421781280299957440384244794546376399752253078418109645355346976075587604810644508659532529927774321952315429088125472231468434481227931850753894888635666546604598414132985882456845388763743046472887525367946435617148105670911053998226396411956514082772815085357343012829347723733425014025481274770258447503894553068910278093087830068672505418726554957514990530720201695563882655091175139687559871913333445651917804268333477248191401163993657326598499102611746757245303030229490936857873413908277639030195517247281407749572096404364347032701380605549270266666532013821840926146427167437154854126463817778238230703156033580424699070987334283179031729926573653433048870050915676621790754703068346822773086914439645221097411778660890740255173957517300239890939842546214900302390404774290638701241406809731547531840308892795152855657842440776745083413041311688593453762998831620209936773376651622111844455525481961003472786946211205662511087648029797150397676704701124016612155921832409555045417871888122576129125810244652451767707417208463717713764149338698870071542252785799278269411040100726157053454931545444623588543272809364523157119127526391484632554146057900487995459194153157150160927622611961178545234792145757545233702913898721066677562614935058968197010232355394049006051567492154917968458555929082322821681194701395083913737596698728556673293063072032163274803266231939009435972277342510655617871877147884524157983569488242844624389696717508627299534834350436461880251136575273207164597499907354739343163759745905753558836995806854778251057834675396408084506717450838414088060457778256207666270926859979252456683133385199576564409482943679522560219452040938928712383703896947350167018871734989391847161321004506709789243834916294687513432701870006347905806295675782209520263742460405062627640524528837664814414322677781796781607194749893430402988375724581534428455907037440300431045048521214503432818414240677676682615962730857545377566651394938621374531452790440470620279609373540534993823273668685949388937864374272553772777418760313426373209850546775249627101980167626194678746646263248799643920650481927467459496000869836937287571989353210687646149086658046394123008661919247813686382732604865971908118253488866162977911627523072865796672619128663470128276938769236672905465265023224696187123621809521914583062766987063819846072813039917048820662952989890399196236146745287356614961478990054990292215509794088284815011090398197402541974584160940239093585320692231363699299664199895630744868736580282960956942112564152011633238778663591262106419263628375657665731626424607109232660505262775236652050980030965101991061564217099455177779548654529607179628460743127429226153204410867557691120748358192632209433175762527149698033714117625115204256349190567788380535032755424791368154530751337822061731239532362876024618515132010296921879423833039230228270677791753653473648908671339120650639549917449040009450051829924506286816136652059889767429004609447391349423306129290027256858290251905542126055050022917279631057645633100633940961539919757182711540505972593805806975669725191344209767138220616470257054686817578376330048383792326631822438833913534931362383845301929355085654875695612708594510625082619010088887028270435608926814649077262354041529581795725888648232256343863596335781150937289724236422796431020757316912667421936904238624647408062072372204068544359396758874086706635695257152526124206173271331415908497160572006850927744311677234647915673519580522162555347183297047805917663898634091581991512352898348448600018886512526143018718298105200460033675402554689557484665110362451407724613998520734874968310250048395705619841726877500488153443026930838609760668329824208450734882924818866769350686526422537635038429742918370056268246560314593008589723844629744350482314922325250715454591541122658276509343747060193630901953711979713892684529741577709149967110037691120603725580336264259624910804713064703078922115979028881181673893624306146190695972384122523838017086421736437799938132035932870617991855244001055837321290830589562016894053414473148491546068308683404489901100671949333215563128795509421324145978124221051378703193755118185873704829482088814625665200446378891956152239885374701386519696295685496653710186235899739578922903069182642370648908448850141534597714183918899201775244169158378638856275961042697968980568316634425893017881041366222651815299578958173035238225667175112908380620740920211979367695757348855527553275770403255564502100531006120142559342771172532141081971871247283439031234605202224993018830659192687608002914156115601869540597888505478595809301857907107978400552215277916509911027178594857828688315199137824948234785953627844383390225476344778611501462311288723294132645921710783560557468842490272657672419966669137492277990044655190719527465467503156891469675475167663476235907625026943295678725630575339952313201968819603294524434505359749556275389242752315231244054487854579716267673160679909512030571193736348924279904162703386082487934293515043232397508868943203759536547631723699983810805800574055678354385611142220566320510084007871104236725462864569711196633513532968860757089731789275459864134436406419722993016461546904629925893236118606995529450201425842610702471546592585692020468158811036488364019809927285647267340443462586068069247438522345710308657465228103540435293160174773081879370312545394265739522453824016202898332075949564740575670616908680994731974013554210427500084257198822853592687883760903102328419514473682526338240534891442985873254269344028261459871345940782309587049879057188158392247141942271093017519511351397293044920649308523228251864442478695739504856546637325802493886449112077825489378569584536853276444983032390091254081613348827085847419226180159473927530457822026861845919997413471156760361365552092674110126193315192402745717476325796233912278078658647552694221059647964864906973418799365297761488718153677953767135336942666045100719961855702428514290936461645968664672224036454370634192296762993625926822960234557450769872690803388694297151139876336672379757150336032569221681904999143840904206088995589771813354875695562852007186734149036038269814663121475145976735358502752862181272612066509989219424272109190699254796323751209262645866144705934673677821002825908233650134600872446030215699918002796003061071094727434372643003112014238237153829146580152576061577472058124007301599546807547069102375405029867065563810762807260819525765191240699576082934278554594119393605976119516008699159697961090839115970990453096114309819691784819909874824048075559108248272701110384134773428685009290360477371703688868694236743356376071003741202970725735367838947463140670771272082598886174929935891135610763480656317836574528672602075391670045853789859949654779044103041816756247634913692314431832204605307312053875512300741732154708836823233770022549822120013579174951771569721385417041664754895605369319014718403338931686349522884142401542420641859797732366656853818539982826702070359967740962074484347723359855679796062742089549395949059357929173751879522129085041832982021358716892923653183949162844729087109243953905698982569410171792327426689191242125214547830627445343594988043996030979595371442596986603243953779886886791754572003803135149123495862629313296238974794537998132960419441392425075174234970737753790094941074301343932200277463750390925934840040295927197198018388582267163950163266132392305853441917387307917004313897181774284672317250159519662729530792285776908919218646284631834387653294963084437475439823218965751981752612110574135425886676607559113157654830519916430979696816905103448047233965403045693114517347763293378453812876959383499911051045023973082210284785647573265805654777895292722597688105494275384892973561814267941478650109384554607254418297902055655086350895032303053290353045752845480964508437544640985481731607243628984745098772629569047226252564803069498903473116174019139350372974938551010654150932221621521442979401104740161238212340758495708357676096239046211881129858811299553613773769094692636473642710120285519828385200481828495579490131374384807434137072476626045568582887360595029659404188665749682050679651719319538606777220106066794202958909572261531857304416866867570174130510139802228191277223482647296865940055634662850618647177452983271858802258446924865668549922736681293247488515550626152944199004615280211620097683500950580901720082668697910661313870069217308009525294012312478150661444851742843800761725707644945050092220118397454258038996017874186196207917689822556246573212730274969771786389648406614091241003637445081903211957021439131059732712671822077154852632993019961108052208691229072309031859591669781415018887956039190607323600073751538165950304647712479915121073602421583928193206522560196018624234084915134671216305110726611947184310532064708450685797278401758501424660694906735145835040780842874964595090248519441845264014187904304742558656581790665793507505582149797969684105241212591182752082019818347047838713512037706516084575093437729940750981010739109117386783913593426823386512445560364324039467609736048652851550054865359270522978630936797903068683056140559435972042013491182602181166817672559569353116100532494468667472688955378847730060974886209383006973662421489326440982958946884822195762854560484410506743115887536111468707111571195741560229519953245072367812902133973438955178079147745214679062955215813191382692327195965375661545557864576014231685418484341580083404598321759314919059795236934675113402086856660041313559123609705920154552464498201721606302796207740935847323870917736407437972261041349077684768842106318156602863080254644915731532257580615920884957296514013862871815288313300263731177152710308658616191452234862339323822139569377575978891622163456120407917651732309887415841104678377027205643071751822660366944220574196217349607628551750061721530217140106568303590365329996632765104022894800301922577688764391252448889721342685541806465443732103447611304175011335559883477413163870255017419927753987193738581783766437741301431511803983395189518542232853976106360200610636681820413641045495668931782295723636031323759507090029170620860144960346223080217841581222154568561709063255220419829809024388804983964523961952272501248055152740583443231303087060627981804175995800525083468993668066583038558629534047060575876920957358879008995268484597365689831098563172591290645740291391782962264324240075438753305697763279866671643102453447923522071589616246223823541276664622383250128860701791645916626963110511973399989498179133625962984415062585002536515710178969721127995277860396526226087093035034372185186965210748351293275267253039548797116253548297526740521693061774698137804114877297943813020379405848180621260725124924029183714561896247580916829095839365151640200122895967603321173009256268299979552009350735534587159730417720785975529324492400141311035739565806356145717141481472734188789621666830218945667373373173239353474895521983010371258961421427506985166069909208391727347436561395785505972233899878378366037093821147173420744067107813105687057241356443927157316960820245108796452430916682254835793470505703258857494585913162438119109934094981607331368666634942253677420005842702674489698414402062210867199455873389634230182584121204902338335982571727938626400005507050413132788044428791693793140905432648902059523715593219632247229836364304729335126131299625461711362170210813977806205740916593659131109202457575404427532538827912218235319814863955628119248577847562254936767923890112567823582887447644949082968809187776064384741435910453540010032457776786397191145172376648747893925139576645123517752142480603547310224249413499320491416129274409415567315362943010772765779325403045842441914559692035810241061738205086916406053956065671010530364845546481962754669401078360682352949291187242275196857735146498931875067242729626253247398687904463119925992872028688942351925200571358833404657700801056926393856345175947372882796546523123930876899943770697360719609757492513532177723940030098458612246048824173713650145202933340188718590487507055751119690986624950170327238087434589875150085674347630455932674443618848235333965218559207963493870742350670181367813737702692819106817692168085885307116905906278472083496938599044523933247752758787229620267495975627729691448783599735740468238229495375227285195083983555208448153960856420552996048008095551631018482847718013481236925643179498806338029773049561286212873685650124940597176381899945443821109555388406142481965096094831681621330002501118860786260690453990379052780419397479922559148678847327163210372893694304873477295785546813083379693439723499330546604254737236795604221730900762241820047218279988091754796916069972633903202908102464184196141768378893888220700235399583559721987781197728958261029433826821648110126268701129499752685192752101864722955949390990617772228323002651933523617938426160733063660805155136954409570009246849581317434302135064784364787714235999972476154946112715533458155171272072250952786760063706372256928133731663239613603397570268530150552285049073704515996743974120093308500098985858224479901162006683391344798492217672732836792799442196667523807831451066750996501278050200345332081266099244517494441330411173341510311674555054860505130724494492823090255983326046579091858458971541375363897772680963870083673934086078583307757830953714567558236811367071494991720039945218935314860676775747341538363668208110489185644034042801546374138928800393893920685486387189196508907845591232644286587509566785487636989448670596898445599426382711514244615742781092092856500704091170857738250725217470686662138002010735858105989101383492103824190035601160338523295165166558708662927247444485664773425211420361385521768016710423895520106194355731982499094343303497618378211003293411212422988777277381475785813152823364135707664934367191919196834105188707574289749414837106616727396821401957731117025348816412017984069133171778673110490244674995495112293210223540762077659317160739897038455140920785344700853383768807629557695328624256223270452445518703963794433375480327364123355974005224415292779049613322849268496555374490918160160844385828374459892122285640012628799462024030337386734138308915689149452618672039092832729018049354441965895297826529778150594149726141094983945184351740337117168182376385655075071270276141585853670931528064751947686770722179315897696512898191133442044278627137164534375927471347902478945997343493658059778914115825261144201886507423436814299276508334061350697161703669871969417409256747988993179721524143910313052752606527925422477847803816738010616648023962675167684292168149647129779963733709647156153977959531348642866290057251696639406470821301558035106122637294767190524731304049323741053854856151636077312283802234840749717347907047317531988435774316772882770468237952796162439629727754485215723783601858756162173275232063535781385001286616297964118297343408252663000629559717063321138926214565269489760590837604313696348711915882792450725011335855766480579550110360944986795168848094378973225312627013622169531131045377032446219025961020570649866925224448105937439519047091287259792200437613961974898886162464922888911184637853935685775968528238456478730650645800236647260675290083113322776462878062546838466469644445137955465780964348326162133462220210837052522602410748205958594939547882841172489160800331959282143951444657211286072535754286247618295998463015752247874754361030698733816069336213834873212836307871440134340458092127718828132641419689412071502051700315489122293299505659039262255830898825849874265043981716303608319586778845486824285115833873795839099256501600639265139317018465778459191874070568583511181367135841059011492353752824204350010162701392725549992559862171967675149461118901197138366845872904525041613483777923294527129519394160909500662368757025251254488774903016010119779665760102248802201572594645028287891678556745580500448475699888466299913482766229098078186840775725324776140715455313686715571326308778780556338701157396701253627127385151376948466897975031508543236361704479864322628804783964669492658176468206618538865667707703929436329933260038396851673289019978056679883349736626887618270993482948606563696100616028289677822195832374182766917706807105012439046790732322754757866869518099707097819505727840676903586466842580234884986503216586018220501026256785021193382194315173992619662939209368715246198318650619268343482541261654271978419225248736512948672870296968832699898767225057309949395424472432672432443849220519934202460605807398342840358792848903162429635059671015972255856486648253883340798107141725134641200700119993346507116363004142895056336427509485080612681101862695954216051151864677133168865619026877366951148551057146268002000154290336747896272488484959207902674056679764918414781831197643037905007234607146045477095603509557704550666821894492772910140924171989897143107703541856686393339696433209654356150491681821383074038917140842287235001571393607046930702146310910635753031220084077297959424096045560097325967034025932908277130963112420226721687040856014027768612340539879705977828935522470194207379927177859124459448098894738038120378665581631689322983805838156863084872022248409057451204715422462853193864589878244189241064301488231191276261117792592791126417625372812030148814407099847780437834194514818872444377386999276517848008568035734658718179551011186069234446709888378990691329911662067857452192478267270653289744694965774207405269676194719291094391868988145573472502833295532674189888615735819359758936944543649966936830045586254569460348041134681567751136132157987948093163654303912733769075775093017285822429859797285043343138765757471694455047838462924999144741329500412135655111983235390393962876267059688528314669988699355539423760063725731430346002617590346536069994433032696804450306359648564622359253253563491904723852946675655464197059652970612811945571071110040906694582797432121748372181168002936302424203854385204290162436087473437262398441776436763735026926401148092479664014049489615599841600878562580808209925017010155443263106563027086884874673355519404363544276879213254482592240835523121354915736620819720744138447826665598246424603479409345067204351338861852470190695973403299333540044696794755730861129956103094711836092125110478147874451546721341722977620045485831137631296760674642619547184647405893089998496663561424736291450606080250322798932032269566778061408131294588158424348224020181005469269470083542937819559122762284501940979188862644498679816105216664049518290310132800861431447225617806599187109887931293028056430516889161811755893916967743531646332609618097122938866974063387403621586654498462956039701944902799702269251642257695977910056581203401782717227676371022695009706861310061208468687133999358945307856305663884090205140928666893577458623899870980555366227847702113744359828310266589692817077381046551204120893325737546424952733230535331745643337269607016475006579425410086938657261424638551521862743518554092507058180842159523574397637107473377648752300240599478356667748281892379802974146697310030186648217056313915920759722451124455530209366387139447061901109750545548936072588131532546271357030250766473361493479243203266866688077472405038049906013850244485750709799121441201433556268043826523873150006980582343327231580472861194017350538281235546123439874346039628105318014884808147819755656573763301578957107313458048374377315686629896771720440431033149790663032795903440525333858478839246998785595216658515928062997298454153200886939070588852856267527325501591500405147117318371142909845710720442979655185022715377960410451592980169883017452210211008233148378360497138271746380698601650797078468851072573466549880769788613797118938898812662087280002879913491166481672793933100420210112449928512374377385752012966387039735093382227110112911438499359628807332710830541717125995369251355110433614687970200653317966632872386991498743293824901957141153035597652235274281727493896041796583637614208907331921396125807122571151566548853286436064115450624566056068783263187687707046531110112006860764165209395348606104204116658454358268824697901358970225242634511417260245410070309750908940616478906178276913009721772898772935948979404996429261840037264664680621246121018290128480659303624815375834437249134483067187686309905354335453614547309216153502905111883496914034837920078508867408452726871993373280635461453611324405784682355139590897162882494008365828159266995197991376782491823161741506431375531124399689671685653818056490538311920364408857166579755168838300362328968897050963979263563606595037800019561899546838847306222996883585698969373003270341766255523735310291996482345832011957448778523860777490497179335311670402135617171867189308251002026904105813027732028259599365381521170662876138315394687148029477243286911563736343569349461681836311877684542942471498451523143871429413173386556064307738321036053332128554588301360385167079864332275607049798189977949464186959022079250719316447595900896189342499759963148567988883119645308369977292254077603356066868377373118542858798427035503755010132880597919750039665349367847956338924332113928363315350185326550894764256753658620315787032143074581909802890198715649440194949935056191687094439916104171591333571126957957256851030298267776096755053880219885497868400254472791623315790109227599589054971866201358371610007870009272787808463678745430822229492199778859743447072094035025211670256226326653805002928276200901563809554344733244048612910088493340139885405941711595396489591558852639120137002267643748087427752877717069278730682331637287844647004168490797013714503194059484909194589728212878454621203206298389796443319733949599578516516960649379351207876899194649676464145193305761152846323015879211392515265261216951550241893660769379092417303793613425127058829637757271110818976093892826861146569111387988132634979518364853843062111602208010182413002541820482191055381730427906403640825493434688088539508898675150741769731820920168900362789846139141059631573628108958467708973261888839597693728657468088958494717941402590235403872545944699177079296009347581341020134027312592045847279248693202838212116657606880207287778852181709337484834201086357867238604052943630592555299516501626028116502517362128202897686236204931385329282489543277529758349652807872001028778941350267274177111035861926689694628706274620546195729857059493480487585638284226614343635147729918562418136536703037891584917025571273809522868592637559799621885553420198256589902034926821935632647689271252609184671734211580422694376403267612531397523741223883233267598922395206079675774244940186584757738739484761258827053534834598566014629475243700172607896253143054196426030132952955128484091172847451880684667418744754164314419659437598782468561443577923659417059337805736003117046317704279632524318033497513261725450641273170901171179391287485210214210390672460759419516249136346650732746228737544312707380364739267740150974332386773253234620387356629012907028176838804191587350629153594202309872880528498646579945507310401104133218137694142405514798111712480817517638631096186895066940807724940402924176892983014153678924312893561058013040943712589553594327828908500794352818426580691443002667454731674708851542665244266662191915174865580634368797200631542880583530352317197583187996806019865595774501972842698770760019737672745196815633333337983255643946554593928778616676347782870207815986565106988923626177850288456719709119212523079944446349199715610578399433073448028694571262140137674711337625752519573817652780004335654610133604251410442636826404370085459719252808761780096933614301121146990812136486409277729828000916909511663715409675240494287644404023673890715509992379140093413063468763612979982363624999561083088189316096107412716328840403320306968250375215999946515799424325832749592847973816178310834990340011055258130246744230288117595750301511464709453424634325798659165189309492360165622582435522680741833816562236286405716204322975683465360143173999543591661348825160137477426567538822585255086728964012638599152233031059678418338218779637221134049113707230931795839614823964734489710534024483934485154518891325817152805989146656270855917774411333015460824136637125806709272417235967609556706037567655035646226669473265556575473012510019481682808804231501646897025071011120198834260306814085179446844140337624040438768803249834100983121719829065030162518687765798795828504438165615293498736510082969878654248895085007210477181280488704257844587506076585150228795218893102946732764670455875607286915446386287139919774658888906331350328423137937853038480252203326707640916748562117017400632827402949687732070765052201242179246005250555187707685946661589099915513927124754094180005133712472782274764904144809506808767008345415732559897148375090176283606879461379770695823980560674548374483409190413842887465676128305864788075082824525907259380718650005430263570417336496234190773401644203007849339792403224305166818972167144473073196979542149782439731083137886643958161672076381247530960307097449710031517535720422401626460802790336866818829040649475293018148960288247173496142721022954351750453234808506223774927995853927812340879763860948391026052979194271101948952855839581850960333310508358913035594741740103008773206570718341796612556594704077388426666648159375315508919967057604553543333508584599229669612918725272022802908640677303313677900511834398616185912706650048023353846037413158800575194973525284015009673226333407636783007911785681249546849951314443502922146006605212324566865287613620957818288813141842865479181760185600682200242918252349225673596408861542894998157632449063244640137522189963929414761399802699583642339510456754549147191620808626907794807217611441265248895742211802538796150783676969131822103763614148511875727792746385172783507133088229819892759197512822381634478595129785969235811431257618762326086973833002282295624715213575224487707906818414783293476791763653060482809348125747902386124706012110043691772605529970736080011853558584726895105617695328807514816005847401912441970916348447585974245445516862762659829746887012343950249896550076513458804818975672250362736912202838855553664151291481875092498265429834722207287528970710834784654542375423038038856438491224991091916373287056067590903724292150374046530831334335316322000092138573384776574127682597573251746971856397365069494779708011209438442640987525521376153921780539848557495722013233243284520181654027099654791827430969382386962615933172180113199508815520529244702651732714153408113588572124455390466085075761545890578219351963247544452904416013576182609896796449118753000248908503284991268438568478232087638675605936452755447351303882798099446966226494399750070082084462239737317408762802350470098215875697394817188102955315211476467329089269226159544468630329543536908431419704816651907088908662816005212194400437085934034920106072684169557074791576917973675448582371263722818370670808703095286926345355630587104370286577802670277869057579574620085352216559449196337629379671535890979632488394425795075142469290294665763656289805529669467997498423272993643875159808267937647440832611890430075811624923475816342124124208882502288786584885423111241327719238279276943096046288136324838074545970615182384745045366383001489788248687763963245901073996227872388882142028374985575251045079248772901175591998135751570191814064943820543838075596050050550693453324283988949973303289474648699858250014560247113045137616343052951447992173667166949125329067930979492295813732806577755184637256169613676103573899507097468444281022848120192182493935088532104064876805297163914936332182719139027739734552100759647170385714444611403818681279521533763505589540573364562322096605100253648038750081284013119872853193348243446141915005181046859864199082537804126102646908174915981544008911388716797384281164453070594538909741877678572302832938000077156242788726754905871701300757572699937823283659910491888371943970058529794784682954292164566857557098662654872019250471822016883305521723481831408903981360557520361430196747806938297778400284265244517392385922906284470484433163239788247909436660056404368569087903195393091063561392068227246603149697535613464785774630052441281484370031425987694264160002715979331128265333605743213528416310776700148717775753293853224701436338091777755813174158586583701359447433562631281224886815320770582820295412386233156772690309939661877994985725930025305147009919900950460779932351982520342120301471602035082826234288971646309824394905197314739414206895162282483227484914009162945674085004526188861974807125296376063944845819641925776468063742554093858314690486185994792220710614293990941351062742627046401899535349296917109862043862927721183699914810368963409939345964111309702575858848910569956406129571573417959828955340524415175256422231592980837132464237402880442798069001069642952440941736197258902653661856229936365972661930047594381761574202355800465126751134338441112166816215560589599577650001493984166583116836155826699562313531483597008563500999020476757510528992478237646459104417395988150278216532126034461166233628884053997147773703871540027741670470886331402877707139521127174082649356069894177807589268118182545394953065363492063374848669691247442274637584847955843425168848567080983214715291927915162129343199458943961393758829376518240877235504368451665861564729575387703093031289736189851149946384803535364231954193032485918545644417255647347603436180355395978680370322661207741735146674922572876192634166514235187934354893685046184528010895700504477717265844384381500292999414109405829978943646936634113669088464808256603742112579810084772293483375729559208724761829481202987533846611292721024249836008579681004957542602912152005083151334584293320940949926310545636260003133066613531334705496417896809741261192987764656733004477844383559042219315593044290097920801278185542223127104219445014138075139396969132975921514164409605460024475631300999649699563324292977475720699777296542949880990881153863410327682599666862829818592254086947751151462685818941801150037248376244027813665029239794868314911773836838765360254463827735985333341539394822006327440241018722736557880834782193967354212515929058058064599670030073652806152344488896944226647326630553412644607823871032215650238000713225539851016913923919061641201557563493496642238071490926170776380538825374928425149489405203902031166501869696470106212838954940937976988101128817939004994667372289073663246110241362055664738527826011688424531515466863415417731292196372845445456361795048166142047426080367823730031952705579206643357896813794249696909751809046324993674824977015771269468792521484673931556224709586542565040944329330533328386306923551856835945334335047086021331826088642086341792372196230379447672543852754436234827658474085786232744767694656845567957736438149904528870875756759564914849645499922705316956303602705673056680779557666491715122058874297218416924041195941260954066184354253880373110930091010736484512727495202879574723154608731163326206932293997917961023109460058166233672539458123694516056589872572140807934688292468240278503216140962894424358701031434051220730137868287917189815957560245278403200194304961924452396673890505639732811660656653630482189336912885866390979420593747332961683196490728980918425337447469098078479828027919279017289960535723883476938184910536021982952176981694796679016330861734143770515915137528996625324051356453225834722830037261005891104172308803674019775866559073367406199090831699675302807482212953998332808115334033958094241019738846413306452671085980039612381739089639723947717108251748672680696795112622512783394414625763792578979221766332783706846702707785169538290623745311005427163775122092370322747558376304477293141785282797856229508134456951332141764086110523247671519605622521700434195619280411076506135825594590309159034285088570852337086740672596315371949937697192667217186074328840596205644597852114377735804825353610107940915762910802258804646209792613272542339842108053097716520756790185634891034501635227720278716257577334289688314762776983431364492873145351554689149657358284886999698638071228605446546955093670063854838864034705932277205642279352992640016729439206464065916684378407470273891485715573071546579743359507951278792366836692533698370274661380937848110575928121866340414581382647141492162734616260068239383911951237312020581083531667329965113244564565351881034161592227780371544581464196870689920113499644412511406561888888538578182003898921863191585249728159591936602663596759169206332015923647790856941901219673518628965406666708481791046522845316051458992481071924957198414729339137508534355394976884161179105753300462471757221783500551100621940758713833542656461301882439109827734464945436590699034431493790787992456931102317881624685166943499449104125631913241173501647056362506829935472952065343486830105900526258853196085612474923583327466828101747543820326610580668147708117902215369764818675461733683574150495745077734258503785140605439868979980722752711310864226275653555368499203937157180450181898385748659459165508048853915295279292975820825654744293824082468296340329329369162858615656702811824515784865177895861309558640239102835938802956684681132790483343623448768740274362288992551871939438797404039734095227939709432682087928134067267796656180326763532973016555756564379679005105093707950123771510621261622247882970231366139911564410091838646214435212076606529061693578907977290305921905028703272289206002309982398668195491991860034035792757058329178667285800558851879765088490472389048280469992628135047690425336102626889020873052702664898836782656626105263881141980664091491051170034070553783811144068098352151697697566243907088217723684199441132572336256560906035551244666778707160651535433454856727948447595786929680329749416504492738833562142340891588279060535980080944541140093593755241634044333795528394303588232475990433827323095295962459017571086698934325415434677843192943624345265994803741236069512828499443068946708452488840159975321713240707399960987565492536567356893830259045439099561357233882835886621509838889188874143555427153719109777250352994612051182977431493517438747324420564913672694459287801566098865111133169721238584074300028929737647663794754268930158561566371216262816715266093776264405808866321042491357383769848494044520896344635791505068299777825011286900713005078808491272634661570551104387643479281091941506997022500085391649583554534501237674063095625569486360847942169140488641340194324248828381249190535742276873176800370003149802800460738091125990264723373597428175373821255176395219019075480137643136789533138388436959612399727139676216839939916086936164704546094107954435959350935910629129588277927339996851079741528380732244095667848006821854073775033887345195203876516574775218169829789000015017561390051096991274287233502395513136779019640779788455250213800362201324977591091222699374060540440410600924247441565792123181514893254928963892317646435231563524978196530485541812410928881026015504117054190555068328176256595014290403788965720856984153947519096506283749612975520707387167722289101989390852876992127215786934267546305215133352866840121947581917165112496664292529838870755792940027006612208580729891911873499981914913097378465374038123336524485440427263767083469267669781316957538721182655601106133885388448656496705579476548626800728203557425582122302353928483854664875313211812549298683335800524498084411057434140805898946377274991602743107061302489139965149092975185970371382338608140350130933900276166726391243222421961037213026645022931320122418070165441851590503569409981804892468308047576349761336594867785179739655511478662087574729230267748205466617646181671224542027930830195344382931486922832080561340987349366230434775068783121305684401822360511928593616982251901495327785791888925079574777903538985466552263001911811492814397902266443566565608647815093393009901771996643824682514079273215835172256929603320563360032601453831528244076648573012281960327585027797643594280893881787509091105630434461419283391988347950855475014045624029988968862435940470335476551925166831650386229230523249874604483124053306696871317413140768649379933680720204865460945027575470894930145501526548239257970345918089376118274859369744665810587837209238931925283187000232161414424096942156845265912745998871672687121742938981213771409361069589838704438480834059571302932924165046919814186558167378909189658022705745545306016460079016627711177762318407613978101130794826941747060824356931255715888995038558938084903152581746099181424581951538663966352651509542930586158109200542807014873659409272574992152601393601855427321897525761358001998715410464976910445243155628350377593414641989442403530196190485410291064956892071472526904581239730740442790490422347682805805257905060064511631223596582145297185482135771937359778981858101785541711787358034361448010410065395173825996785134199781446964287992961351756147206747566068249359149003220066802183766673939179619462546013575660986045293686861135619688647470214516289664148492154368189849928508510965495020611722848901994134879449964978489932745112858123677637757492549644537408979689934908666463571073597052427706479916450810435427865505999517332039028227806714702608067013288415639804404199277291390309182778431133158518786240701579621632232527950858977525418901145834423906803967763979478726480846495369426464006556287333336743726890411697639706387215294644893656634869792340549761473861467359536607074887064540506291652283715371282837404772209882502688723865757151686329601313444091816985230287820474975694316666710727432452913334457198333520337792944946987414743698174948502216049621100191196589783376754205892748848172217359312327633791245880674411213140655497932215196719566856620689367835181392532822863022032560084405331644093199993137056877044311609723629617078773304944222969226640891185127539144651631043799982274430840921516201549841439622361052386060936348681268546275551362390120035934329189093501606285215105358761179405016219648828824553460265954225493560478735600109221454014384486443420027397535078301354658031150236922823413412255604870641994498713296472287898283029363978809273869311108256027281255949202708315035809659842522457907421991678092386699588066434855042461929334971495431338573873904136296756238203307192331895581744513776101109923491727096237828508696854905230380429146295093763441426026520364287907443777798934865678726148311942974269094927250654971450687643555333907696685431014284716761219795276169737461840348240995729519687172732430869782503559901657969750871372808837363336035761187711820669209567842132416254284935052364341235903825533313152211569262742981987037573890206512591996759424963901730054935341699985438275855333146304230386556031565994844582234939727485506958831521275401338956610563641922472424737897210447368950749491576319445715384329715604405167470335865034364747449418940245811121524023789060996485696813405976569618300210155377476854993558079891825393751608951055017158717618447901367903137724717577655412949172259434440186789437699070201752296995475629977031352855239369006492505516537446643366162909084642912225445807244573427691877407711221868028154134527591910505127276350601422329474706231198109401138447288996059536062609331612314492460612970095587996415065750178912854948214540073360394133053335147735038301013073308588811293512168344068495655307179478811459655163403287936283130452843825114001315761336919838272976817847161068330597267443418974541840778087123916905484097208437770924988349282217178224100497884243045833935871314326879151706004187063008962840631729041619558751477281441451657639812453973783621694279737152495100203873275987231392664406776706281742093039854690740257513959844732396088715551478639966633808198814904782788487955220027578310245119282735452456067448151655140707508006318411218169970264758832221968119034603114610247767086095201487603260652340371047766814526539876047014279112282560716410851559183575630202312363520702822898491788248360474550629491112854632358052961701731375844109210639761276422890091748864626792165606351987901582991769181265727278495903505146939767423166964074892414788134600838632756972579449840114502283010601519677547824719984951686070439478850960293704427215880561409123625815031607920110538856216812294412111443339873146525314573989975452663300034535797024154653639667679040357364240918227932300981873659898814341160372530256379513719253863204476423168386365485033623302474290677723037754142469854807309486875706501422396687317466778156534883835865097890092507009392338148954099689001181671599790175352413042140502038865930075168021279859750235703267553754365323452622909818448888419063157497473622645052706672287397150623112728917352587266979007659166564957462390105790552193243070593968960107498598463500479583973313601231204382278323976214141338270936176518348221451582148459889682109316088162442816049530357803185681951860461703689170406882408999719655297413487313216211946805169433062170594748133695840454383910797416790460313838620770711770398610618837048324964241823547837789324422361914710042546399210844093065325625276390835087055179648249535890975642801251949879383270318888283228099522272524538731333519041613074567022661069021180736287298601960397611942118425540523611549738645422302038051903133195315044669803468410330830077916582613202578278101601528929369790804347543784035091573496258774753734798891343947138172368104734970065044462626984858151635385339831829340045169598885910110506024342546059088400028011778828817232312855691146238902733647610210408462365628164628862358324476166783163618594026112340738040516602605399002900096749714048536137719123910943947471929964408272505809215477677495892204207220010822472192547142602341605977623090753413587563717641691978110310785671310675320911601195586863912899565443671687397031937204130304389895117751150800558363590382416592550455937886298600090654864213396461248115436202755011989640604403477727553401760818625405204294762480192839658435112415457687106129880014647863018309442579009119615568491512161658841791925275396487321527059380484617209420522606351901869395760967257339935576470037461275670303373426635889066864294664900340330590733161368179517167598294706285659833432073902189497267381799246648073151202190349707871701540215045678332809359621538121608688864255886319836313496674531755801275507802430745719663012030209034051270031167885668262917602739469723464265132244396639892666236873189269866382678027077052392686887738330677893474667935987940886865965970799084449277273686075097074036232763683631207249496487382238715656108893479338817793635129577892536341784704708701918938678726912974883656330230870435847362541315556442444552239753050248737433948170454149380530373387160676134432368697404802279211390747680519002747899196306155878907735375459050195900712837950207479743066725755793458652308820177067874180862891536339439843129143793519787642335450125885282116754099045619581525575414463848941401511170984624466009892449136533145423587243959249919045832499316033916998392000335691442290921010875809304131759399857216429018785322214003679860857985313189096091146698133393461109282981648896151347544551223935464821230264412692088373766460318933008581385211439513191296517320153040165896220889944513865362912173272291656893392298745132889912586640720373378656128867913120364971004542855467516518557876874913716025814987549297559877622619341853613782406118996741739091434381319132600920392764157121033589807261069140379185327189044574485513987864347706641041889844422917274676454872955234278704521646106165196730357362273642169326514540781584826870568122506393958338979284374105525422690446421214159551800091449689440834367011110916978861943014766862333048826002696386703146854242468238579654792003770174006663290109001665404229112075187442767773383214427889137263785736936108618837105342956794704682098264419909418992487583480110397772760019900868865482605369311964298581004449998695453801887605556429410809672868785784970802266351532322766656210138234668006918168750350132312742285808883443033364562926594522818172736597203364902129063883203586045045378533035605336962146020202479491479916795964183155727887491904100086170484155620526890591552248598338890487134514383298146028555344496019604239667088567450710926539128586594912918872143739161275813929891326341984037363910244792108717499205637787066648100953816669650245728698394461553288576847295367689441434364550488235897182079950714562978010061543891063538702228887236801445487526485212179656081720641612547439730079950390614736703488564530974389161584619280503731180019803352228948361182918586277408733413892343988916659660233155563085340339890249917057264097881093049076066399821064122303573922264592846607488855091004863714176652124262373282601889987311059782127775295584216352546799094512706332702272005635252155079168897444121790743098542793037808182913757337182612176099035460362121580416637581251745447854429754766786285422268283928767929180621330969363874106162547428633162592183625485702035916764300030915723537879387397661073256707983721254965750432386890672508313436038432475935096650515534000353308011142064772394320795786117475825639106890522849039438044945076869998446048162454131135177926368219359957143889849174552166366034749882837226362560423992038966585611322632172829573159551524479365661629334132661484104802653480450819265296502782973278225159073177385217003251928542489061531743454104403594519306494449698735472607590290123363533734494397998989785534611709240367972741717317850846014523484092259170734463437650927889839832547586362515211242935394102858998311121283648932295099360564804274106265539659248402222048658031653845479982206335928977769747648001667667229570810894837732299426464947082239707706761261476311486381388021865611845522524139516592320828351649006440304905325715255005771157156718303597302882391636724239836217039125257740010191072959644925197782610840570533676761668264275451753892214801636730913271247793107368880400047004545627635122890162073631684353348797586052489349766644682729870567201232099953336235976130282828975219025410524218694813360329876903180029786280589822764678024156540035164459820667875861862623609520977892266642513263966603961613658164516396823067366195373736875109851937926596102706210450687254547836507964892603619231613346569386997397871431513125995545538116705993913265453034450079762286335013224725391255465489764999894929046615686644063029792025465524150315617859215097072343851702000075118394605223666473049067476166101861069024847980023697668653799801684798894506218971791720298837416350311985224139186113742502143394614514324358743180243557773886650692084475957359201768676676005418050023149490953669458394547844834989672200554488035418953384688491612323220958755508499727028096314158329876121731189928113925159881116783010102807234601610305300912515786510020252844749447533550876399314618855706659791344954989767324260470006149718283426854902530442083068418682142144595046207689631256648023786534953464805618674830531012570981770030641121268377710359004896754684852688286694170678876123132050660464225595355977269856007577749172830780358932338846677086310989123756734114819051674757785080868898184991691259685227313379541020015539451666589214193457965297276259636034685825044418291102424620121516691961855041955229124128987923731686628943707075274510650111909243548946073769541761920394835026232394945360666601552836693182915321811564049065225705846297297482417802218250708061303958081855606024148742244168478327275971619061156818772124519219138843016892248022201125197545532927780262012067318713371000222230826222535630748376099938000069316262844722888212987493024783917169878033209688564015169981327368888685371856483177810493312896830198937126289175672783004673723212308474051133714592159046433353412801587348979437857306263067785658342645015831187689516462839015424613647588813927530936137285642123333935856679012927522422678718973386085651048032695559782980231229430521264623831287254619409867942658333666858221826550158487388383654222410302753278248388637170272862197464493830709225527501782285695386241239618188226341153100107230089922498009980044354036710576865530813328739468899078512107015569557015153341587603645100506756927928456112803745479586791548308105026588528431380514392998080323999936881531467563758418571454545431809815186941905811226829382216296988886456778586418627894455060424393136212685276611829674652363243620959129940593400891614141392965851578534024595703004917459244078110246876818859002096756476805768165224303311585720654235463440769185605562988633036038502232747370904620764433514694054440171939866036395997836375322447459662207206617718213440908703337114378685099669761027245521529231641872981644215004274230646824716807994266032474498769155488130857827482477379048294668030875493247786533740183782206269815650748254874960960124520441038146217579307028208877888917822865475025187922453803718193010882568674487699132669871553716363871851594962888544810854340090321263325925380630547090870945444004910860991176109409968528725719964475262167178468510371604368087618864990208170716044584157513674386562555761391629517648500185783766566846065625248364835749438855496995738707045553528516360376054803583040255797900628147953769693817191878899069684060836683475607832888835821453174347487971858077015851057902916219064423397774490346885004956409895447220182964205838488951340777403163539644204864295569134064644291039747635460562942356795179591089139386458602996089085947574208127364467351270573456154171221811798380210826178650783316540711809801318417559643305036764117593479595230652057236638371396466535427018411718682319944509074031233382087806075851323529966504969528444472325892398451951039298048281259018162386252163050166380163106212171541402899119404410152367564197070714798689730984212513914515592246812965712692904681022698579230159807029337837839666231982593562127983125533301306782151038289233927863957658381083275942523460910224190074040947568011227749020660666996367240266574303562931847379120874056430194885625163117418967213155473344399133065194132781980426299245085461545469417272984530950351850192213959173426412328195309637725381847594142196706000116288115125515171269065077833246455048954202920622532404484667108112602399504297247530718026315695003220537020133950094024231152713072285892302304787412492999188800392181172394513436423312974245652540997680659487109603928095725354241226466477690656082012171449983279048414180076490756332387824595422450388626047294247236409415589102097255746956138073024320316342053440026195757748209265359867477787552420821446384057419883793721080035560820580113273780207337042407762546329551447137176761644810734955256197386230709404994793650639173557691589494790166460974537196582836487587193976758273818942256307250758896711454161382758752720535991471213758983921321012040103769267307146381229723607201041481730770528830490206285394796430217378603228858871468005969421345597214721790997581395464167295855937805068491136808445423047613512677960779104368386308580149633277364992999749418366108394793159428994206706429141274508726462655719709365109697109118398107456243858084835082277395133495033167144259583275734846221476126407968724850149875140290047448608627891210158719843465036196170085388123056652863245155621047772525001722107950056840393212242057477322259207592251767450051465014696374496767674634386968732748469986484999296695326624060599848541171450038411199932223768765196215144649422926368592629585985020492393404501771020227013512493058546073652781120421682799761018992561289462936357342350885888942590045277942670886087788807726621318931554441626865611171928636339240553178029167049460480479711939676735608752316360101415048519393554724599649475173069680401480109031784932370765274003313747252231027508208830440249438893735317590204740525215773113024095016504430940872049755726273509537308184673675836543224179064192644167139881052933413916109026835328899027639175968424558708173390862316558807557907795270858727056139070375384752294842776372068887308468624710094349376072271256511884955686707049737232397031118214205924992228392353071540245559353713213262409698623973540746905818188713985309810499467319509238478925755165638444573503331573360605157272490386865137623773237067411604616771790228575120973313477049927971365997083996816159757658238771837775783447493834674840321509907177399257359449460488129144117396357389496080246026170126378632974571816244058643322627219300665081212657282416089756516327647707959940774843427151378035395826007973930310607033685209808966845644864120591762626478907329453938693769842717067080024214977446813763663250523646111464127777186168311819964600731924284676771052877056232114807776305423837644140639943553552771338205044035369840919423888964761228151610587354646647304497310051797187337200543558180513127183842537817430725280996651767036258000231319359741395644665355267140241771476407102454185191212348467458912409034163050169088288224948338741352640715819100964022617517144019263389145801619802292411004841399022467079289532338414430328313260682466952452538775890914370514199076169999490299861207759129085260844476441060955865974370969074425434405135190076758092563978312255160580276827997065781633406342089972207342920986221351361420523198042146978565811932653598077885510538903643475821627321921449367514961525876452819565413684967341376702641305122777355338687537808277940931565061363304278532137671679060488642226710244040926201990042428885132582764990334184339016449206445733087184027855564118600099240371833420347509521417987991788703740225620927727985776277202288299616046272438999383408837082082937444865405726025158148426608109489633978273499414812973070588749046669999276569569751457224088546152116360335333086722456022382720899122042542530925602442226883521949589549474411933173052633738192751195545797077786749586557690931802453892189069570419006150145336932029292815965087337250801470349950123538354673984860164621251004657043264171854570872559617093643186043921018054979722581260407430801650470240698489580902287508388855256175912603037020162353792337060430423472392629784547055494183991382689342555362599291297336591451146322809552562933454285204695240046295152234041856475062585329414563651244716363825052003132321253305704160462588588758745446505934639325143154193531203483340455086600503977995332966881789532388953708327453023197126515494741833338126151895886591459614070320512860465549292058715968401240018988704375561991519013219927356156719291591593079217880330905627024487626293562484450646046992810444173655072410945718200667022488080567197178901864539683013246930386260153552310575336858763374110895519169852733562249602212110032881640492158102619383762883203652737087454932720580922493507517760996296453686086576926230744917476965708677776963815213596125090068473084627089939773506031067007127488856427448995144062257298246350441155966820824660631473231951951475745064787466782975175175395074805514267067331877316468063277430042677460023255491251271984693721894398000959017887590555967913377991125081558876202869222844605561809023577468336968584347357788561854067843506616638354390484600781794617310544746569790866845939670811622142199832140796268041619241205460679099721418903097213974602029851977521231203711298611929942662346536618735643505629724710763099979987405913702739398236358122102340916273254077235071939854065154789575183865127677681625998865325037828205294700808020440775027259414029434303268447734611618407739624878065041978213628904460213798621834702620516037800580259906812018736996702470271309063119737649769837994663001767733797930984212434696118349223021747813489634445179052471488185427250523557470380784538339953862691540553465402546776625101384803831381580666219262083343411819234623525011295693570572945305605723729737118369141250219136490649880195653831032164140884727856351315113739055514101486250429903174865718384868453823149219830064796616737444018844442240497906954969328089662135090505392583524863199883120679312844538944261129996078497877987136938421899571001729886684268449929241753688689073707106025509788001832327456912513149677076650427171558857990146426570802601222568614298883674367493447699568500312521433241267624369441135830998287716145862638348302007800745103035929049123893781218470298666774510841172035613124856075507279358158998328772615845704968485514338183613212282070429760243470533186442012275999841999536737599656563070968994015162561749520415110720925434301250479159869259185796547794157347535949667885819786252373128811995650323299682024666565934724562502911279734125192231431303041207957865346298521343637776299605698645221165101053846752346769924002155189899239071008593864692329899850413100938533912875080423354948769660125569234866704518266150826202948679698728906037232875638970588388298032514128433156719733428105804608180401668657315120610696571810550841728610779037839711332600692922852613539727388204342318240067941385981169706457501543333935051359827273243413919494219393641339340222194932223757041745603137785300182891620072638275136669696536099112761961273258695357844954928104240243597499120563572487176238550563413615348369938597501728464809215293996080578781707853121653793848939383764339142276474404234464758207675557856755183248748556518286317849528864004299281780690087445695774849914812435604753705602545326124110592421857773853623212140379461264190132946664406343615027265129390008979851518746103017348577423250957875198236042611372681512904985419827089105111702599553041010752659336222480057591280993456583261353664866440995401043051491250824980606938480807352579230935603556392886500887629585185288696250589818791841416993505550596790588449869137439281469395609605933408489374023544273373423620900887538396185190487246508823567559000870426679885776561848302649875915619722606019016346938467402401758158825256518865007579071848069454218578238859089159354470301930206109844272693055308871989285569637217430408735191925650028719701144897386333240775536336254629684213078951727531044134327094141856164120072587135924008320800687396586030994047230403154457121017790783849769899931028515510710930065937797649677605155391495072049213921049890402694023040236160678987810993930990603855430576785311273798387934274075773182766885009087515848848296741319533008738079127803621713804979437824805754572233229133555227880335615423159644416486746767062078129347134734874843713036813855452555519587389331237498673954811820801727505929289724568459199521078141419088224938226614771111015704720228628863989835116970096226168509437461347761300914890750630759182579701982263746164066048454278968638942998026533979637323792294701930416282687150690551439087001950025609422882996503956016718427992453694435898381652057449160355682301455057965215506478231185770150578180804612170446264429720567593067107361397412367634881134949640027568759444379285330070921750218993603180029332303787741783538496332008154843401562527253462034146202414424076355239007865204298100083453749340378462679494981284951354503848211011565215864506667810649260047038237934317796557277147701077491088842309128183968691843892112176469031969312427771620688501977310332158546514567112690066963820481650450091627650621901863891747939864343109352684017926547846287799113004908208636146645939505471886643708411343141667370178293557038562866522799728735545817063230891542196789429733573907554645669704642033662433910538345206665916361350264820149579653213980644672690770519632254957836103230839599679887720622514715462054878831186866528396043616222531304000925168230930049077889740632515641894339895812368998800036211048527800589344141315846126073295589001770517600389894439914461699392610400257200227852088908221591641353132823181499932845374669563603935029131647386068547161206510493441373415839327729389961200430987368038049175516783816204596117319932610895631943020693713934660400072863542601355775096255884943497827565652515332296084605504593760402746042316263478259636285986808932580745642436117707081213106816375077667541824585012077975071802970406929515148748960697121843430737568356976469001898189087134750590743892060392068086466261554934714605641786369551224605272163140272196156980119254664445173913133984620325339403574715093828389779662928409083845388920791996964857246158773736529473489122829447720660933619893510068364904604448474713999114555152216342617241201401806691680408333822006268335262617148974801250945465723395256686506335433719461136230667270952612929330640515444174101252928184624167133735121017277224978321012634169527807829946931011641685059894452441901813583093981013486782407962391838344417898687906309035924234914980137084093892057450703812978122887911228587147949600123194438772638398966799274111152876346612626333801591888446452818448390976695705119264903480924517985937861393582077196942115323046594274732315315928114253018503618946179545185477429015201461242987992993788411937417272337006106484679655089888689380303395797567956045886780898253862572329700903448286012716167048466195802515739911479572302331419876235232918021963057202976977564283500757401021940208942359703848942063934380242071425932509426196785950566491327028947416738671438434042152485474267309577229499466508041360096526218706568116048684038334134693498681299916244920446448528829238101995646238605285877073992499223750450031198341876060041342106712327119633186625876161748519978807448189998574108662701122276186862191971757684457929659016798997192030680594545587101480314630858342290027716496818668660428389957617912099745136107767084497194405640144792232417467989010652526269641188528112226576930379548139181225269417508411001478538319362548116423569241600702170890101439079350782283036321539602826057071458024927364106522304226735377319470367849381439861960916907906531870333166080839072313931458850591687179350744333579706473105281068079215079381131142723856927438992621905066965574739711216954766501764208979233967465391660609631436672929926974235443088972146068424161349171528530866855085799713528478166341062741529422143627214713882102774034025724969390724509738399132249651819624593121989805318038494442280338108252661486224560239283173438450514542305645998423088217659731321932689831664106674554642685572616135938222033581638258113055912401646937144989209443851144002746286527591610809225276051000123620760003672508718199144990135655502776460789487100524201410321412430593942788411748137179583720260173734799412775357862845220640400225100350348997201105293703794762623450143694688852635186590056795217955548151920689679799070840800963246256280760250795350520209983956415863943241878169757136529678728036102097130397670286918130111988118230849641186771454610630101158066164320164790045641427736960399028919251924977098538669637390447336535462706428531970192564846976608228667724636406473641333765985741110311420378704560051365940321240092472753039867201466191410938131726999618221522486961101970891667192419932068897732956693335032265354035102487736825322967505192993748912348943285610323686457622332077847886460042823351522167643756198520853397971777920749339796023522158683045586005241061278077400473688989129720968233797050760717730168559321089537477493878497570515080489908925895255561770421779431685465937237149746618742306155257783918917895057413897649899365895362723456505510124972546077106871369457762047723694063405097662024848507649556300018240127604922935795134081786796409873029619885439960906473810451235443502530393908370889812716114874431386459056208198686909652614933421193858109782371679470739992401746199784298597367080210312882010110717741645969536106706784844487896764799974876444844741080014722801611676760832778766350458466212335860041731264717640843989516956464661383892238125518587272169280157967840736294971442673899333360920501115680120571834105671883413857767756527601192413560920432816201408100646239286553808638502533952829588455422494613141477112709676047076552462212128631655634863726749057140367306892071713945073372497310901314735106362076836189892886455843078554225776910177996322746103276722125744856505624448200793332642793080841980790769086291819866220884998617778485556164013711711886350172794573004885639958290317988807903063597619951347918465942184426982226464037883521906985191929271530218369103475292815299496920245013413883776053938523061015290228954741592799099428508856560489627981855971152160876695381390729943787990968276203953388182251389425229927287370779640537925666257592419780784846548983515698057946836356694799466555330427936583619504381504664285694700617764604887331345412293788426656046162157171219735169259863210251873644796511807499387056864843857133375630226103851906246326907558642705448101775617594906073592929517647772562942457280766887831141301882908375025401396737999037330283615973793193641602384469439629660972504222422688115447961753290911944255697837969636079506796367877304110383312969167836407745102498055965453434187125207560222918066648993578237178281205603732579522783935047803535133955542463349467546626867742375065674856730878854007419290354468567804026506596193957106361692392130269254981596459466980963876651006010758054453248754145762968864423551033627585494608615867376597997166076703607960699502888909281243636993630727151716643299419767412270744755024655873709830378347124360394120544576647764253804143895559903153408373053324077525061055859783527140003800149251191690492605350588815500789795723234396098348073070568931220511932823242112811940563235373516909740855533687132507752349664080408018762861856676858305577400983232223011736079711523254745323963944544170543778810638304448351690786768874127609432746854348080552439820917440317046105049891984161595432994686118901060948856298633840861741252366624774295543114946280513871299786465699546178885473400668503613012677480091962148666885446959483319041629736822200259908196406652977225925571388613523852299984010416166996171591810083448853148458989248780217000069261529757623568697396897875364988042252669200162476453078009091168226844883804060228320639561107772830887202264178493301588977826856458446017496088990443676549482887066536543055186260917958012778678204880405479024258441047235194840867236896106326098858981247384666514424879834645281401734413698069774072387925639228940756970393382405566508569042516097049544612077971894804611794069872594207237885005782121757508982626773793789043512627503338671142233361213838650724035002297440902487249941787855690582824631806050500555311232468898532556256682780804817310358610278260030387571319437842341836593446908197239487317289163643458944200395502030904445586472461900860641112892859425069682561136012827432444078790804136232324297817653597748146982022607872811598390468299321508779191749418704812599816763236598519792318172828621243073104627300472980665286556626027000974768379141572817947823118462503764902001155458660939766369992646666162585153349084052937909368780704769213497788500313049551085500433687029250067620977297049922839169931732162681736374007740536551866899782491419342361028021836040606286264382752043555371443642254946056325158527634673608856605204224783300248477337849088490244779286061605876563154831005876792217109152796759158701720103817824558221731000387101564876076812087867329172107979025097818437264691296102733564483865807348941112584219910759506446001881504853750713570862959864040990909635698294884182712966557422914147043213036381646515420556928599717145249123197879342715752191988914637578281133193806819895683896022543085938868857768750179397400864404137380697295577796644874942961932443779810804162577622150197117261613475065387284516830718942686584714188669566766578700863147039717166022872855715906240980255532051205304734747852740820081989415184204739641946501959799572125067878163577497500569057176526067918495618101518973947322001925187373136165566206862364483278710723541127846900406476930401078185771645793758510721118464094592704733782199597676286344298516761397034659614009792995679906726121136072142996276668813251055138828649963853852420769102508700975486337781128803757777166984968134705357854147479790483551895855955996672249742822404128428799201749111511398887016420530103058653162283391767258300391257779653698340139237263638940035876387556009359441282487161855165741012614536261576626941997596022826016001871835020752398547188694910565369461361369652353059002296391718646084791832000878813774755227660300338978118512814970942362620859186642759426389358385127838029129098603464158046749922634520019035845475763301455601091371723770623228769047290398954858201161490451676917292375573974801504216948658759067542792607297206050174818888738238188101662452319224170372738869838259208913240057522087298170576942788263891765887797529853775995705251833945804613733054738411449316285348530880208967975447625487114333924272170434956938168853739632644874577293810899489082351883257347117479235359243670539591031107191428068651113778030183870647155282473182727267879130527503111164234264146372192589062454820593578362674447753813056878035746055684821135914721066465821063728033143799942204972123804545922882554339533379937227522086390941383662105962995877488117084893441916132609503560033647062896866825911611682878247777660977656875536476857039807530468346414914873974958901750554409165123844264392058992643817227927793834853463613683740855613773982865313081416850800847159929882844334993828588828144809492175038845445376815344853497038644329401228194428665423402073904287772736183392008792039185603711211352023933309575294978824313194401897112825385516358430457427058149015737239215021430903554239457642541281445921505048799396440587324546752462770400483132556251254945506993900332204404041282727595025467778778611816756125613865825759722953820544837924609481682127421348237951846803327283593721391657051379560213254325613120160285390095364296857135803353898274635938136720916237445568807368383314443176842098734189942963744594280388808510637837024146669306383040672381859577529407810473614232011601542854600523044939088107873566727408016783231059972869601021635218551118228851207375125878453696354521156920448430036556150896375026524177258587233601180618957169001680780117524952879462485661528509443876711930951211518710572759397027064480831462063326683924119554694276702186508365604623418030201851193072584095245184212095516203297105248706901739447836700477045459741040818569100959369479596234364459548430240091400475457466055024002810852413875194694582191340522527065832425395333720801695152293255616820045405552409328260065772938515991010714693519794487075720209856133044334073717905768096991533000761329614124788078141528672932412086890925909715160784969924040984774108032213325081940219449533686654530210683144448949805467753198923130094815453248596474171417292334490726685226204716556944443860764467712287595970029338775266875096186523248407209178684085996271884267122647856161674483368400828616649931700844116604416614120122941066490840631714249913835412495992491464515588554030326870078876080456782202498446189201746385488164368794320933313613878023672827028615623212077488476317020562080297441909513116706077592148109197772213220398053412090032844477548439240651957426503395290566388146604163235796588510513747044175778316659266814460625935013972922218215034467237481874424882521769887662266224333458967132222021903356569004883684925835249469048725864577312871126529518389856129914755669609197953579688062655648179429339910968351915224532651518373531178948212882383639992952149000835409742921022886841930671892293694744556929536556469113145033074676450252845089238427498576950710813670020323999732887486247279382280604239429783589615509346357613135664302653995946843029173845553062576297835961132579895100838444875327749152528388069892661635284234503512840654675332624152021615055112658366789259246855694602715041379890356654554772023158891267673990332676031757800826240705194923316517840322843427201512160153413012900427707426636936674229072074459214042448691277593596502892293084629231016235483509653086602401015759364856746843315746128373763933915998028460569638237507076499865763187022883950514308297802346113837177515019610413891183353220222505586669856647159674305274371468257906945002121531665270541561255179517285744340772859029996363236046880337821490325577435475058394761675522334132600806149291702164238725074521584071832094580050215607751021139278481306030359691540951086863871189863788901090542112026218030718858835538816448927022048188849715342141393068562800158472118941026520548757187742663682079207184133738774275649401690438583404296021712051174744570164646730412844284137267966013938869413113819319554293960988233759368792946215275865978983275314674666610085816502367070189491791758542206964947911092282967572735189011868833515472117797691089971671253330808693340610626396602699013667902745439440766154178481555731446897511573373276462598688366909478340003861581516839299336998650574877984957477678821170548054272939603753662092898666484756662448211843158478418038934814769234054845403388254320443780328374840955818969286344913007736535852927032018786174607553023813219809994453773688925502516905529191036487382384065759278733962683112674277070010222892958485531952897693284145024064825694740095701256480154932765105255368046461748095444066879677472951671104240064577920319093388028847992070379940835515938631711377836865167886284741972647217526617157517124452177717462990948626794197439118491243281055851517803764470930478380274045075728624832011987076483624167080533642091996861296639672640583384646448326009636639159951609032708613656524286329907732239496569236560578338108771043256722047123986136011849483290325514729663118663825401659279907076107206220514439334340284573607590611466918069958696382123756157367201989633343129840481877918825409447211333485135546444876515801807432590898383817962002275549867887180900772237500530122609716998653842826709111042111258987395852332285543655069972577095359697701063206513342699305907255551164831367172941871558475947746983796386891368488223325307846270209345368189279221982325408046932994965274245577083061335316090595752477293967402187016452869066177853168535371423471649901742772703125839181602205596226422009433139785048306350683586915688535647385926881806209190578894856744036948389822099272681116015653866783878077442222578605409295222539593228496202916627245533094802370849276705880360917878339675897985137712252230110681654715058704355863894202810007254516710906094739948392864478918179325697787454144461533051374875552790581792169367718110238597099241401657407815914357451243883083738354805121249430895605996998684021884794671806402315530220702126407394265592581566686100350468597074746776466919397031239119352030964820827904538041116223540483234187799317193870372774978240654328912785269589716402456725219985889544614216258256724391966916429269824183853973026499741569316136937407540273208131013020588482724827556676301559952929539829967841184621462666678154802698892868738621080908926499406032064215034698928117689561549162032831238891188576422176835148841364397600813540334356188038681322433864484747979579671167096900578544654055530035194636877001500399771123289747040219011075126415856532228169812972596779466032862686500340597703882872266039695630957007561976529360734256674031770015415815964475923063712670109727794547904846909600885983132429012641879097413268691947139887147790325650376807712837530518912776146448524771826367271553329902917418960696331346264894485887946465851329729974477322295892246098673144793391915248887163319730690565606105285209798061149550921053121244463838520112640450732576237694191330502170757039966395112207525908275171449785920348888912391458676693834440106313510332501203101451444214899148827383739240771580730957155457728466773947930818840767531422245376408873032975031450364685968144662338515344382045511447573078345808839039353078457289681258643878089382253929245178606035756537618786268174907196334142679494740024709403097192574311140544934409434656688460759114683595319013031479789447263150420175093828239940133179529119437329341226912878534793372967635752724984788493760355123235677660289840797361133488882419643432354379834880590609190790540816872803701032947078186074433451816771268594051241545344161587375208266788309196928236127744345511246021074660183956157725092245663843442563747710497945220984061798969419247498993485218968214006143095317310388445190791858953862517513851339481316969571904495156909430216096235911057663821244696652774843298767939884424780202040432286516186472922985563459782775305327548432586895842899016531473868576868779148488927790907055907264751088405616006325301903806986952337162857297664733347810271255476055442623363386267088092865787450209371523069069013229400670072583913288555920922949422732710660712767434515811654745163409227584271652393676693813786048743935810621952997887799546156252645301617209520940174942010263092281572502700592629430635974735220068377852310963237745293134511884242456150751161161024661422613651328270483853663584836016270760726752425584123811385714797276382343163150594577649522431340433075887240310685369522905894137367921872207209563355604652742197633977969865969338236671528392414599669802637705200259989156189068639942198439939822699848438476353053254628620356113411049179782068046106499660247407364465704768166945526199551626609124309990460675644788189692593436381399823227510210648562701775174944360827053940323425182579457450644187643113878751256370528153037674938912137261090197442263045912810349411770873648204473954579012708605039756307268186653098279263101563058057448559898676352069960042064102285685146701277652036184670152035880030143576890452019311978134187468329652912905333148492467991191252144956148193100098846069346470313368096835074105893542033741638210532703765245635858870337818186154351446731513135413880459951470473805749780497133562046030766711656145490664684557945835040946673281491197337514470755602519864052952218546403980137093481834778807700231595520236139763259492544721508616256359083678333028834898166556933039747248632069714014494677732999242142697373314638312418032396532720193227291034903833594263947610984444421778630976232521658662036582333850483443811753191154392231797831994396446584036535270450978742360636212330494477069511247078752300782297545747015321627708112656487807742961783769485092388613182421580053440413860597315917417642849393641978352985555722826583783867401800466172400119085320178971230358398701400276850220114000543558830650036300474491501066040811320147716496909518802109909991479902307172622617059524353557805610840984654050425874853884658964581299123292353658447859991395592808246652772224272700782895231826071251755501391075884595316577749667675781981429912098414614594209234196292608315614011498979760775628066684560640558490615844061529426312677223503538687435669494470047097388276419680601831668672215455317947630111734528938993193372371903842754724822904551700487266094017621138397368106983028855354660947655771729272750459038305647797892915793478971178880980871305499010089510432198788077988426823201643159367232582882253727978844211977610634369945936343660188428662792391187556927073848342684979994314251628695854033614638747041324559883937704019953994375719587610491251220998776760611448141609283749289845634208526298215271461987906603244944576389700746837619425054281812887959877248790489392865760761580375736188386630988227692047081904041842613757805417775350348553312261442502113234732487797423542438668230832930975824162617760664586635845279753930709409128966252346207226798612470361710676525410265759935542007851959046774551631672389004927818126237852597736280816330254552079633323948014648664271774807096445186416294172914799758405893514365952595914369583891680552069135141513251633144484354198685134694194812464626230723194057389108977159646970519617378599144373122459366542071979488222123535965054062810934907445885888523340690810993483256809686773014222119652519171351635476337899025980400491425822760334227484287946149809902058092276333921056728992337435465027301784406674399320531924414228555446739847401768826542394825388932632614217416763379061933210172641789998917270323910900119031913839639313619078358019693490650769231364491550240843107421266979633826976365227701521773541638496008082897468094253452015504867899001900445223792472215776351309530174042656816179886355982978127869439169849560964005055500217422475228574134549633006807694236089223985743050034781659524436689409243588388899674343397612025654197121692217795846518896516271087222133226666062190486520205910074279725476822768023478041117146793669178443365283740225056817542439625186569257967874363434612699338806103931186980466904104006427966119200843131717894917059640467997060694626046930989693996982826162698355883642715852101263712604697267185726572503356493118747120870373784266105009062785628433446061853539074847003293831257895493451294578966766024438407886042394910464137068700031785419431651947142580986535360689689170810315801509961801873608407020683077118621414533336447671848983736447924087540981635446792623228480119961219915556572271706008757592286797958715302176617401746598164046698089732114840536577307005834238310874511378041640531793375810867196433244086048098545723393813208845355978798450025231617917164463593071095034027161139584465153864603741373492676821454737677740637617989495556321377026309985490504779697359256583109948250537744344311092516373091547331435705793786548560131254105197624827329439400814989570012848225756389838425725857102775898098003312246454518167743842647140803167051588000735975352193955048279033306201148442338578118903873964718255217880054542620776309601653670019954423439100565167649686151219134154750713400588384696210839631277472112812410740813911961811427048011765608835982466799454759272720119840521695804583559041761884310754572264185523547250606364831735305440567317786150790339513583216489809552072241900973614955059565656541326624718763241544244440015245505771106208017233291749450046670236590444456721758760637533529867662011939779511344521910274862075534322171083238996377515190312698577623177097802211183694450930507489241752645566503969995737663187540713135179667708839624487199409600120158413132836323393642358493475401942870348273033305683818423206427426108742894314726083783295683715737707367685303702476943179764697479709984484255686203673948297924086296311841349709760684520239899433777181568223281169556706191657171784215604205013220194062975811473853241193769399158910609200029166825898917489724641460785398883377837945936134027804710762495841984845777517277528549580856801482461331474332971224372143631756139132762833397372149008597161084171118148556656975699288700324583002356333357449174494653961898282205771563587447978404013606775510290428583643661890486378568512661484113920587744757197239534905624146707729784350558758000052685323832051175248518127862912349486333498713964575055237845205389820203465824847315092535061800016687738950934206311942395995302769586903350277759514728718949674419218212556373589575268773682406659097435005098957750446474693310943493489953076009233465936708808628640490860010889334465641165123549802982351972279243501370649620079680370299063709829854175465588838602013515361476524690452897301346923956318992787701212820145986232847940312033998700940498081705885624273830917210903487102435358090684193270525645475113468647881566372674014353593994632815493821984508853863953123013314285163918981595590906485023243637063079602032818031874191841887511491010892379120687382067738936340141090018720265402091593106091860333201600178070193280089254202189625072270631874197350830103393962462726250142186767490821830612668719494383679001490705451262733576098501222999456452456727413761857691910840737201929749217820542442608460560202670587851105461507429487734378483748163508525257031553082172244541715093896230250825193334531073617805437042932550193678544171968142859340922421627841335587590873778572935767499246924968756412038205619736210096167471164221256540109038987990132022264374763757534707654203960450079358441281675315778962046209575878096159455609829724141880022884643199865645728036540656862110041246046166333519816009745037913443057553350343261980828608398582244029815665962655286426995786960233805714210992454169534841017843175966248255483422068671440339588614559313692088583013528933768417238063845806841488062134059893273897150291043273074482024468961249198885411556727378539324756962256757893779699078361243483557128778755856948001279100266941420229324032089304527875991160370021583802093942512560768839892830319012759893175652694871657568543454230319190416900998016090057971023912979357607982770448598692970037210932661589688330580155523051898299036925288594127425627398065188744139073411837874318037749232439784897972011125968151889819887540519367305446169375385854707395377073865332449024420826649141231694498501648474958892873989363377943909454923946527259021580662864981603878348210822353116824881747245471676374110170216628609958816645087793222216490241580408174683627399500699301916207501247355560497853477710781865884871201814706707980387921825122755830442880945706820032434132743642098009830814285600425543727767486363597743031458537789601283044122010928710871729603437929420304872871159494071760510736899673551843759762841589312275235890701766783584250580481068467208137242711435762985303362078409594144349031768296240850842441906261938831989025460498639988742834707320747888587785199655727348633101343056325823255435910869365329779273106431398031536488201976903860335766161405049094930755557443013672022968232417389924535502138060429991064757073224623798129396404886923522910119271562299239189324686427081898892859881096822783398479772796474572617935273029683540609460693536765234977939087807150214229138576605547646015582088482342308013458784266248237652910313939455982170092600146717183201120122558780240542852973229068650399909658485736013210266827920264827507176999185164385635317006098263447027765885667482653792817504163419402238250143767834311672557291846341733394893818507968228866291838276373400914233647969693739666347578409394023450453326199047764641722987045094904330000382227873041017233711506992317652922353504641206897777319797079751663967819675260101245291258299604181667511121935929067570033541225042050298758098416338330311647735990777986722968008787410656494618027329790600801645209751280066337285180021936871853165037437750342671208150367651061110745982349457972565082025812373166102448817120288978035505602742194117794146801645853399011147440683310919701191343632636122819396497989297248813409431481883369780003547515760391853672691843525438081864134924410949565106382399813957113840124479016962790030848383897601588038967977970497551706707023417326481789311209816440231133554216157012661903941635102507280563076298470682147725014238530880520305251607447151122276586566262983161471203323176477031343293928804154096157365460341812714184431704432568747318402088481603879439343711171280074152616947070621272744100364330128865275995971469557486948443580340086389860255693475666819453457151012675149892561419324957672779051613989757674725285546763318318335096777568671272912864580326063593913076412183845657369723044926410676229475825869436613674939668783183626258419754256469509206749625500896974026778196866259037845195037194893444904868383250982386882672844645474755042363184894568949619942720358450157040720488043895132231138795289283076014653167871806675829000019412391405885403563230349684215917501246303850614833390675794252442309246573591304851436885689440002671039028111110062237458623544309487886043475226636611249927000425689294456217333180210115843337937880384735604431616345491510958773221112516975562590913193226310148837177497197389131311929693998839158726021499910769382671202395021838650540098396243516238186377059175725471497464813749035893584017582299064215096582256881366983101339153708534019072408077547527558614440630362997498949830880549016829447021627322369592678030968725201204002500025015974144905512888846877141497712300435681960287787055122582975785863555472794628930230840640146440795250275402549083088883726275091807132055846303340409218972281408290831104189667708814842095722028279778685148688128884985386595234796285937644512299087241391090570950125341305132579977259204634390145343290279341514419118493713270659144466877388185826011150424635781154896828723793111892627774403005638999965884717488083321637194399642771851449383461376267565958982377501883308470736981336134101787157855445533698314006438237217632819914314447207997941800193305059154789875004473438180936563500686618008238727216595851514501824607757737605900829520386669322242780454227712663709234478767986551825489250285208602122209126693803035839451530367205726081074949208199193483634879043416868314281005600942304783726079573565608189203254676651865264834186932262420940972927421802632792946883133295025467244487845585142556760059407392867555732069244314205478430201165601101967920645511689989213539204068002448369406780083814997800183591865472642438674898620889209708462512916850456777983867155955783640339289220549439767317950583764704354140302418982123681546181213293353756679413578447250215707658343176173313006145536907858048272477583631228078467650566040207037530768742816997465384574593180226953100709880075075634543168409286150003060401612092959467683587765164338279387107880405494053305579826874755759990126670985236618443901699974083003806657665509426017443377163395480618251512682726325198474797310765434241064400430296689005153428703973066774702781266245208621004013317949884342304287942592202011750346651045412763476473706978612347885126364938416675128644852379531309675099129312217296509521291763079654388659702684160572330513634221464576505968302498986959391473379455638318583470460244468823595877970149650945725060228258722039141501195163396256517340144605780541181244040588778106960514488476304676701374750898925485298995047661500431586738738963216310366652535557010380012458884102400740848719446989386631203457265156484050390566678819747530660839198920134087308021119321058134739908402768735984404954382565842025461355602076036112734613643775464039222665267729171913509754840564867393310350671852501776226993247159982360938860798745735995241526310848685674265332276169800923920133621624616518146544161118694244480352462319624976857140854253721019147900822563645728722280364884765828215213669002031584202201136195462237143004868647158406945622854062222011622487062206030978323380623074763057612722997368246908682763480611062628752767911579943022593367204128758626074561046133528962350077811327239699171641106256309671200309782582006089952657028043026536882573583601102021901316865464715911294098418067557335507368027378133504420495205735700759124182250729982375360702069934123158394613174390429061580408524934688044280718114014140169114064979305650776471342582106519216520132838363810240723287811558719162067220860851149079278096266270505976866458596894225435333246276387686352252718888631146300820461522377835494544938126090943220631366457463479452372435107519453639081652406828474117765327244295826562680055658922697767413063091427274736782350538922451680362005198889992351480848180419077612180944494713641097627712703407881613851977498946306338263012610519486244166926658958592944472160184600016663089598601193816402978408238886497833814864705103121697236124196449790107403268449433363470786629734448438890593933182240606892268663625766413268823627592488031271549302129605465316514459660036429079437458956576714772771523483605966954389785196709811241857366252711389618626753516925473066048647839681296620740427224832839730277691750087189548901902007385855437185446377468653096246231800611788574723571965413405075047578053800691425060963043497198945998329531506436052047177749616006629198556683995672402049336693376957620880126161841572703988063971567729895603792428117187537707206471716523445035542729813211778183019405711430191217313446591422762197989112201293944153835847263891836865148934549044962443789344239904132304003493004017995149316086424828802669927138914266748670119099685177757153241002957517884051612565230636905368866147104477431834584366529460278331131434151575803482384296710623198906335389322769982756383116813435551700953108958870832647247685175893718370747301035040900468980151798123241686211039536691793583999772276340228510494535796530301789288969403113836668786026204876897973579588212475953534646268720476865790155784465772782688520877322639158964138672020552968191714938061405163868265384685993321771651737893600197109920161703509122383243996431323677917226316518045258477100787151670817079155113088634084836536096961222525564648002293075477742070339503491342004931369326918702856080478684658667931384329440148459034019833909830189551624886360939515756352286932278071238060308353110561992033306970311587601334079180100924440439619734598214206119759914583269646177179641521951793688277958682086551787953956428695637837680296323879689087632100863690694871452331309901034140023689185093594785637671536782440670718673563195616614487864566974418809512242285154092820739834985578751408413609424389608113573437822631166167033995977194410306662264077610731295037205990369592714421650623425403117951367255948667631890193208429444995278033427306383565641051991044778748928738068489253426111781751134809926349226888522781216138876465256848002816236041054391724161895207054241288159116994364565909354950460167965100787766189334206768390134625865321752190315737423658629472020650406940757441693153359513580141316623903219519396555720914271046182905551470101669426120104347096493544225638981404227262915584971469642000047814904322674694524797838080739939011978582574627481265438615765368359660942872300666675166877591492063620024063734255137283635513532898472925705324661698846829842997071534124393260162795139844939464250864380538486575738934429588479339415540241039963063904190445140112506503553153438149802354151684846816745204526293337339276069033489501425367293800257671421240260745792091221071647081364312310333873276715695005731316176160535858252236333638518518970033329499076046457594017637960896055408810081965752630222819357577100566832427929115697650720916907325814300269418984189912931374518116686065224001553835551811369275474661556560815449171814615398154796490075822332666157630456194160185545061110944227588285546546622336578773182899234489553453574805785496336812060686271323869198966270545684000753082516012427452223865245202420913699068621651100686765982775033730270257006649857225064278854688954957420345268057527720134951159619793095598657621994187560703787619318845892502553993455544716862558462145354299848863343128716268676959714721921385730105108653993452321755252844704419759366041489318506711976179146053856284970011296884635054453715385183644969091850177602515221235675095586412915025015464886934230501653821286921216210293970163824732828159496701126359886550349077949536594155229193505308005073233644431758389746846593171525494749780269014088955890238333718388658593657084142233314667287484664166306802791388020000665565545125816926993669267157450996455403825909416876345873198071684647418332907217685363341380047739003847811836964669250970478553529860653991706508351166168192048251685661877031839110135846002063823127031931894146884398387336208336063918106174659537862335236533316402310008955599606892515069309619407863250499268545532816486413300835010928365570356303443569146395573822358862730207726161267463054896831185824495991205326588949720099739074350847581235283289212969797825348926298102340284157886863567799217717013111029192542275266841054618131444981952767729517316907771425444025087403008982078804097934075309824742750475057260210982365398251334685306028388119242859127137233045325230549952565475275947554833702078014274464896209775010945709747873758491091247812081368296414140732884119959796467173294975633970892552521200354050264350238979315894593925588132256537546106652647403816279905229969677323375099806682521786141394832902581222353416945129437041393904315062543707403674328258976003684424226781059579778090097500527130694135572781647294503805592177400370635003461886647038156943673901543715974558108318550798816316403439008185934427172658411695323833991979812349927207118629545072318586564973840655145943621529271685561480797992889651644120308627309463495077888092850147960335199779234257270640682272101508910970097841399221844619569376737999332987134224494851291889924512348188914669080083431235186686295912835294023410487742598070847638649055357148367401582409672849435325070680914788724864222490766604891022599090951702913693334926788788879639874170242024935362919638205600975905156002318431218490480833509677016457277719830703596753096583507559109043673677215046831884211165513182860368763467810095718960427696642679167122121828949831300838041390449438795617363564849857064828071555724686194626557968548959274260651580452295507929507853919840425558787373627620144938208066584215530877415087442192515902102145845520146048094465568078261657440751100503356680455717522633330893533814395705766621107145159193738734873310844625176472263977691825786972555961793884076480509788146628686728995135908930759154312386570594191039821020912627531982323095180204509689072486685919365482185922511104870263113948417412341991211071124486522960369357333103388848739540259230558661966415804204818029224538758364736307999074969366110189539018720198867421843311860220511174678170637765769930223606310663406607310718315896153519042158632904501338160606744230388446892251802600190458727681176120000726123131837592588268185699440695852812093150613792187472657687932279609669989470171129061947381533026844479946502917493542148267106837935603283367660826863170148296287210485215122492689781611979460352880027080381199550381805284899121551735937985822726816851265370748043597822805499283774061824556001619310034936336735948461134190623209401700614963649738876960150063142513316675820642691900283165490073960969497768786448160071865691240023513236872250948823132496851481488027179966580124460488237016533221548499382756970804730167236335911581095685918071782578884469008586488827990000996251602352397334489479593271327980566859685702902667940735642090390126913410415283276787091822301197035045758643044530125599155346744231095468195620283436929640586056251979191708455860666694184699827619345322117878013362571015033493327705834490398553557735201178307189288619925113141813101094149975291641603874711935155905661834896434712900877139385244443412121338873251793084581289331902733716448020200559362479878677639187907710704623492619450527635755634310864518775625258482081471541372530647188084326069753892474767495561243766417397109290264266142205432456408075592339418647403803012073301674674105977370395130055622546319658604206426276783114323593074453124967220450577683011616716743661987548173829754564581762636057683496774225510291357096377539649278251692558599340321248820240822165575559515237860315071713280292917780320846016570429672626169536783047822936940684812765999710731390808010038310603029098516840027943140010977033045767379828304456753233592592871803652258655859572434543913667394649960319289454049709310231824581459423341385112381714005385405717642269526681045937896789131695552474412918690627961557419033359521459309119641271448166629417946948847571785865948192557438042463792795343555723214770826360478320212477040943709105569596301283953510962647291312961172691039049787038502808826506795195064969484854160602544524950274429103239891177923807488309094031932342063858941395256636604900328023979115245882482828878943490191377690185270429754653496133432134743999704989379367140479993600052196173115452222325469950998017037224514691460002235121059041764700651372299885950774408858170621947371405057660580884804943542606169427225068909001837500976469362217650483977477591572520264340295405441492276881230102442292911481844580393981060761481421487712154522110500752598236829909966380449895847881871549729002249037303997986773975166510413421370399559710521547974409377212599462313954716517140900253481688234767651133833712140983267138923411363163210963041772794636106450020445554991437953682775767204764414470608292789462078852862236827070267784349969672590653498285527542770260859781378263564786310737516586714247128357161178115569739327505585373490268621320142477380354407133090179202514515622792714544360478562225920547923059291460516480359836308585196016641462750868274152084693876313826594641848234521471223745165603680206962961735249207701614937500316823548876340363302554775966501686068637955164740551152975507040168866772320451221927332182006303325439290679396000512614280623013119427863331627816242814763757825751363592431874993758458389685130983310669133455418798997108919451969827393023912976838899392479047200545265835470128592375994230181827716571650964433295536646446320573909679008667303355057921467606402781572571734183520255674023651595615268453272934881408921373833748976755918977599452747374103334617267596292491797866986499379860286355561702597383862679289152358890489821317029457103094676019527060944055995486406234077084367752704536135259827482179418733767217331764950113781283267087361193408259308965417857481261358028939531829297646142052536142026401126053826268731115453982385816731480116155618515856380072011216587747943281827579006227936696085319497459142009378297322406282371387785745739081691730577000286140646505825970279779539823515393655253602921283995988647413864911309800864270876409825507233821590897515203624936712526001541309503543657974157490492416258798166257380708133716531514052627084531607669622899857606548217103683583958743326776036494429050879734530611036228499107724640207522226730977229903910063944030527759701035694006742033849104671838974396127351305660549767600885997766552433022717794470124405954724507913222351190416610381929381703802953871981563338411353307862322850316100159208074531277880153648534963121928134097854575168976150342852325589799618931785650101506813325396983294686904388590324853884037041572907065366764670488614186782584874648323152477176198083288596843627598395873991426372097362566166657233313344339277508598051048517853721822883019504498217133248171668578772764176853538981549809998715105507538997082295503657811650533452194350669786960606582230169744588158737574399534697290049701403178576617332315470931272651121362335657032569810037994571961057844158241973261393163278699205738882890558909603687057202824157628427783464067459606197959410495204458501494823601128947230093390767584606689777500404433461373563645232179408594224857411778117978312316154812124291502720952718433274029245956740234483166328649753715461962550637764813591588744903492564074911322392314345090056274890971243414700610667209380213611944126449119555664891326984792118560911262835870021977973382307342531535818414618295284045701109628451330317106555619138768720496713300800156656107173363050809004650747611133246927421265884370197180288809014779049646560180713074088285054817009361998609328697877631017671223616693200419301074754047643694310894987275054453980740515032173651797437626627754097310251997666118170161230187157737035022939278701045308142634508489654010392027646709088749681692131132978270702944783188439099009065609604309882561354495553095453121410394091911258254228975371111159230826322275859870638249043050950276282422556118689606798121319809983636729688802642442025124757096010076552080065857550164774204281603598206113476536660089190442046009214263042388071765398408988288792493099440718585237236089523969559870976480457198102946588121805617013204925078441233313791709815250259744510207124570049857647158139405540577900509610597518077984882885789932324523657655552120841325760591411468855658821533547587608199818088936742027618295086219538262495123751032066555129541208988814183008097321139611320626762593117759011956026283188035681310910288127385219017968288200585304444831506243232205662640251891230701860834982520255690188807164606935343265841437912881602100464253379327757725357306208547126310046020348768135630344665831024015404836492502491412836579504755246205672992423533212348269879409197563750244882104330008086630804365340380534219087424628764922213045623740436601229946966623256953107495419757290200388658338787998321066892512179343830848018948567778674109683712655387624068893726204455471689957769735782819922428240321523463595291104086344939198789235371232324141856817293393995451407464994754150409207209318910373260657475166395066946952794155435935532950305536475561810555186506390855898825879452552814156042490662532448693655082521645949488169505049039225950758014792182731042301725139870453660816272342765169707133694151920763886358553787484212545503444435573991319065033135375263743885946530089472931797328652277365363074572105221304464308435457209063170973894323082060149021606304033614064803779131313229394255719343977288007339143771247206989932170507418749103671867506672048095801358022097305805235563136155419124878050770802960513044515863215454481345597251912324238327533684414075494804645907114078523143930092770545322905041353949468829977978861245777258542167147451956051789117786058843202520191536161356449804445228287034433680894285770979734726121362503255168000746745913714788505731809274011054462541515151848588532557280243760903603389315559868940820143865484584409010568341246613497436907441342710969283192017044477066484892463971892619986787727494982801457743376726647343210376907714853470614586616410429944761863822651044982130707541083674730495957469691685918056857618047645997146596558709248346210615988465260511796426343566421953730032747952460476495645854432845982501905476364711469261381248647707187066972836967833997031939468741362755721589647059063415765943848887707069632855007725698235470089890532525227607858577028072171465244899649457011930135433032148453741229238863386553018625234130427664547670623903098171338690642831709314179693924183829253936985672252633851319987422271449059191370932497520333200178140030197194982538203722390213740214072481828925092729560680361048997851918647133707885086690766336365964241343067826727515872779215039486329455209194753499448300832709793267221930163173626829733527037887737935220838353061563687724289780291607268022361206983764296319113939481788996459563072966920660910956612586932477319668389586891296893381116489706267470266392763085003640208776995612975760959548515753170178508962974211729575480483293600347058341523777015439468329958290747422327410581686682785775724639170246454817709742714966416464540661680568969945900087327418393740162252602428506227234067301652379948418193179800443873380365637325261182694021450251077874321061898233650593391359872853298645226272063357665973652917725333453565953062954272164213184060683358799950177870915598728101466859716607891991915839550181980096537918380770515811529398220901293608142453534012735545766179792083535517841696292417805180087102472936288143419330051793272663283260244148994737724720646909874471874744322261954087488859636509891355319692896041996717109973687974452442960861003758610548845694960771561479739136952564604729175670567440494599121346175447937692911446434686128859084765161979094541531719548737260226330629573142644126764914704585310816197569121034546275541173981182646002074379978104065934655314557744107998538305086209099266254383394120758207400067256207074706306291216756686431178378821901048815962692904042779255225814844917230243998699440907610751025268401803635726656815486185010458773472434655013177738894741800135286012896011291013343296019161109495241695507843773880608462058195375372868300942042501825763804511156883569058672693997843681135928937243724775278204648416076447883630876614288382657791690108333197167688373044319364119823034980469455638748029916150141432190726726070259513499020050371586350777756734512329066345127448493292413189408392771893183913230002392390706736903498108394071692801757386695876131331917434439985369504484966753213550693048212683915988082331212727462115648457766158516629134810666060400573381456734931476245586218860240917759751063247680691497652138029345882287211776434104763927593820147645810607317699431786699585218353246813176358982805260001523055520802700486319530684080258155530581668918850111352729280281088656852358128772804731373485592382046957845336354931591489493351986195261419272724438658288444253734329005744177644075005007260944152955906827138186013732871186266197407176883877120367199638005105150530698075170969973366163035205447214148866378908064988762343102723973906317041632925502243157231700260612133359373717412791110695633125463082830229320891026933096536763615849297677729556930517075673987779615539239273118675281619277559186385341697886153248886477240033422645004696458754103611206277062036951818384332026038115112969944402935147193105072701933092775421595642448762799322216902874418114084216627099093276250031636508609376737738692599914835539054840049065480329543665079221075065662771967367629885159097324636887109801444378173904159491434843573185682822522533912108058096393789693408201098502830541139504045606118729714946111244507533921944748251260818137244329803197271386098301516981482400796257489466801838639849435616374473111494308962810701567312874529810496202886216522247509695886791797392127392527952445100885570181569131761295981620511893626238451542435837034501422100745611219274296396596698034148088687906946964790551096105146960353780343946434746725557070253407655928458400173580916336436079685071025048912687865536297922436672300407637602393476785407086713296580491864419232841785937846496642855224051269672812897967005253517787300586575841785708106640860782104835870268554118407054773478221169259332483314538979386311662384463650994507948232898372043603757556400852680180081969872912740755686352700524075211324163928454909961719296498791687155514324694594162574163065528199023332595874915533964578851183310398469655797551499381003501100112016358547293168535781679124625408679712614408965206929084699556140565141800101060723570020684154691260156440170253900331121937801550716608901816007625871799314554657062803725116687602041370257081246073918730975257632615228080624035809498557795020887894480658512884318718064124971562788438549135352999575524174442129770630853376587907856722010833872302133388821875403554656503617487335008385123402329314624704283647104049719578523370201866773204110470563668378136985160482224185213034753325286301594653527015551562958567272288657950901284179643164752883853737767350218891591396625319101912512656312341555249101796974553360681488888982387523248486134700837733815001138879995261523594490933012325666568079707812918756320041648532201881633027318588866255008488478421310699513220040717118819887361630988807514224536854373408038644119403553053702492753539605078897804982287278741938745335590680855977087095991038016506145358732188915925595226884637798565034183809981673167908475834937663569090172878905205539112021471524883205446759092396500222598315981572242276581371814162314826037997072548315910408312064387294624552255997506163507979776838419124986863129379445041199888549834772049601371422570262444513840721414952460396149753935344615980650974295760285866561653312382062686376210602146367795641735233716899781994767040631981840742732483408187800722916255543936587369468906832162636964798564258179216181280569180858434817685849915935829645982753936972963261795757448091469849403594393868989332920230568071147911934640022496586289075213115157121284722672934074682521041067683068638263783547298600004749821710287424921659459341852313355295573588471349858831656321547317578360364909445335727318191778244469462319706786743312628627175489386906978925376507024367480719976960475311211222463504134110372618116493607561353442413089461618116176027953687102046206940494675089995365265992409639132651883351285592903432736166022622216273655514517338889097842543668953459592765191859881723629807990106768528587045638969994713626006031583208384714435495977786767736380464957336528020192783001853578286155401822165480650129140500003686037125897162927455013642494167033567450436640185688233256289124808507879326491337811642434224403412073397090314696894781075959049939805842163432419262472014513212552422259085985814416251453988127966011108894973739961201746350231229335003480012972070558104022440522710762543371908592555220508508087864113804928441818954125725384504016271665090516592254737506373056652877843297993868279478920416144976786803056516845627995741149641183596783147481499030370210480669635665985256112069822634319871365162846560431812616716933311555873117633807191113304448208927022351835189653666069431695883116819834257079337814493341462356666292192763440109853913990400105442792641417664196380330101857335664811140904532907535753488773939977160764469439015762806366018603760694883166020787041409368201491427570018811778718125392528915583923688464783415238288896182707904706407618860547671453376630135806734481776656130171070937759528153485326438872500722056424078908119493328738296058422672268562208987421179128636234569125546537702403189972975250576038434433959257362941061403511882912701482716978118287738045202816315311501546937050604836721598485697412719835381376882367324169911511009626153272250955896097423519677331350784484135023642895514269345320190823094660192840603173814110389397759890285534090908964777603778638253163537224269383125077370140869173212686347807780498410541877261048884565362456094434719404146999731285232988639466738976645582020335979531274636463820220023381040606770346497312961547151268072464940068875728098662293359706734845079008053809313352451195633572868864942777628177291855061718637142113712927671782793405588688253977403945324354207581128986203403748024945160146123811352654359048199295651360246131175053428563256723662583467844495430407228274602285513181859223218795894357220515369784846964644437684412514115383476384628338362016572558155151553898122467518743820882245535909168666935155420127021161542512921978325618743534586996552920877944255585760085525713662991952782490695972669412597943895338098950621676937615042423789950643861581249053229093494625673594533533448390737551071575235514182453581272637228924890270335385063717917401305351524003670091173399367672674475147844941913518239667077657214033783095403147561322342630803060443423952968241806549821791420410646259196809958098795692189552706108170141828619385204347110690541894035816474346993282763320445429666541192286160004162085283555139362380963240869539272822725946728223980503429574543585641727505749423343219267283380607995066115376294769972357496712746989403109907631440724644696170121403271506831836859958754629834149768954779443602565576249245927947947768908055044140460832379079342256508796897337278655357476356736737153429413362572456133341471917142422927262683630671252876369731573959964738937832115897295275636647933006866564358528139315491199018441155982715385923870605925647455303651510054738418559478585304964085933708850277699605730345098137068672106518659007932869744921031214950372170629184910632437567306880566957953151770221330246525927669910640744159552555154845327619130735056439566228485577787324245986521385164026376415988396646573092624158216462610392828697421323588858734703825224652744873058754582253677544111676739082078144533764977479590586573597232794664722789905196829059655551227095055524593032723489461354275424478946335181124235209814406499128402607472444087862629151813912164995989323171735358660455297504457303765439094267829193729856745852609043131951511266528474466340965784340819753331146252701245006907473856279025004073628618843577556657742496385349511198052960367238939900135314931296798156643195590818255416110783144622511277220835512760743390875826747203614623240748457484048887189321933848264944543175826933349659355683695339752761324736494489456442488493892246829257288478428001805496770524789824687083147446073658007032353881998677991875881180348046842766444624670171887989375044615782248019871557085144905638443276060429363076903729765945417538507758160294417800696700730726728209032780691081456125780573311170107627034688623513008819628415578417894746351324932620355694041706559920228329276724957579418065989998722838314745630182251801819653835138476108022685714986204536262987273899755079052647326372845237038556682879841326388748977158405486409940716066474110717555897686452495389130672762610989064129601453794851366955419202416705151594149725307132619402642214780295143677958349948875420777948001553146566070086760726038591354692744298015113293216917329776828608416668027550487849248246687902662368396253864934938803610826233974800232860960234181277253723826639852071848782788131066735562241310026320171603285005809828732850140959859622878731143074071326776378122640487924610873043536229857615281831063170084779284539353857844430428759568014573177480848884367458853128943908190580675493922649585366339758577498685526365775574997504037855771499371817074479462448671670326924801418560693966802410246557502260679370117753069048634402890914116137145548658069952560168186345161316023791961614696578654997225430743266934084849298619585759726976044177803914782895282221517415247385069271790559463370614906784739649627685245268931518168924852727182529849554667761589938239401917852595200279998323384312492944228080737538549439255102205125761962215028443080498438063239101711852658472097759534165817259429531635892384898563843056351214058104691120502013777664535370371008198208296781850518088371607777124828017637407851733702270269714123430169304493132830695652181716482576386302719804527551863988275504526624014945677822086888008977212002640795058347096029280283632491127994689702888737561657814076228673720927175197032064094706011740671405036243565109941418384816398567257912596097064641361157752401005389827754094814959243587078339019998993779192600478798864338123773232809016717652158096533326396080682170735686266489926016745550864241297540388597026945554709134304671634888913509646867840186188816744224799736219565796419659705371748970362306032255351204226559676943933852638555612522398914857194294847710813992558733399727056050351869197732665402554217568137673106235696048519019019047413312390678375958216278600754118630941005685466069285574642635211564079563676939583696865538306746516734998084719733952579545663540222004173061334494900069845841038161645143287345947416139163968517846629013094499592706292368923614880210194499601214973029061384630858994761956280924332142225884528628929342614393148771247710164478767149903561537269323721830914100018815690609865406034886481537935461864818815912688611449774455273871298444910902350741341901498072705923601615918696866518391496758128567613382203449507590377904309976061404788405101120164219563005750588740875251709362210816983688931910963108479865245761723884765642964217733344083265147990211614577146072234931086852380901447936841344585789398898562941105497081009333402870290511387226560817449677827900659195061072806529068191737074567421256647027970836622237043339526904237819748730827344566643534801802264934316513161768222554617114139310416878576802056151315076098529327713507746363585240467884238594207091398418755969255291150523180408352059219031923112903245318769107451174098701124464265656464464953913655375268295655302742052720163478307888863949500970315482965113830232506969860500796792579064160067364367187901331360543191808497296600395904214465344447435626888670551553026466041721160624697218432892513076203859099725195842290342207003004330867662150658295758374472473606374537581610161609144211614299078442344237295158796237527154696884978272303302830331796421836218533778797393866682388934313867086051523461103935329045810170730597145034280073528706834492099023016878943865807489571217946117416346364001892295537194912249709404370569135244122338412948482782774357282996394054505991963759983147297135225559109959024502193100515705349549017666067062628873296463578314249341110793279642758559727693306911850544776423413222534864061936411450590701278691781772363215160050385761601452546925745278060271104104081648498121656331225748734884171773282985097106751798439298420919130206327085914441028616050346849158864129229825851361268888276098879314479704619356362208034773687515520007797916081717053198689966165441067370112017473043035142840786455570680066011325736173914196670575734209990049557066598661863526684363750367661731613393384090790780944502321924947488567137140095135851327924147526004127162751881480880492536639914839646564545460588813729456810917923370930412483396696902051444486103728927856753358178531927680931205418988958323771249995163191334800026175768545970933877552421926824151982818624084447053432034462430647192588087911257900336647275740110721650053797983271793293327181326087143695747776674138795800635204137820629762166905319198869883177241853394473123972493121672431607800473013623529790937872217198554560734271690388771133268251787930370377461076029374845449013190879239782639902951737560170671592423416684042666702007820481901500770367457474785848525490080900472789776291729572035688895712798672572673923889793977748595911720717315167697747438579771122294896930676005100411293331817771183936014349657921380363012018669168589464068234976848984176547339902974713172766441075215522164222275375379571445869654806058038088179496692346683261060570111315840285036169620293455954300318476911735339295973640335444713609728694457936668323201413790207405950024545765686287543386057186105113769922494510199595644817618719277577899671944660469924896554236923621816997047973448302964008028064670022799758400432057422445975390536418757110385986005155573213333492319406486768946877565043679468310416472453098960413164958197716081687683891533400900171705248414325583540448724070115633845097847957535254676635163271615552581879525913496489905318007048830040793733854957463205631430400897994263125941071679573763528172273303659024951704625043447679982524753058022164100800447566204426065994975872666427832364877914013618375295849220785325793890241129932635198751470215552130285835972338602881180259414820465448812548362023613882227062103377790811496560565645967130003813986617220826669848356567717393820494022769033838946541528329259773483962986915903071001533060202601382716790540182837610771173751754497740969389237736536628497888607231748240020883632599734517631376272106882334861549094128694718715882611154846650413024474155185816077274652049012315653956215171457969672706093220778576975972571798108381819976099334623581121484955016412037338511946607015063898066942222216618578229203446776199613152612600415272711183299187152957332930731816485842294154225363545246827277028088658699221395423054400126059976623509035624662575083490226709218497558384367977586845638582978348613283377679663454344779535779595698451138641168431885370218888249751720803118992636975207889862183478513182260794484887492114755677414737997263470676382901654199268968268618790013177712916351244826448242151453577742857963657765457900949195451875513027646912714104935422104928087715448184773535607544178861548618097079051499431082060145558227697650379351400959455879040349166222869719292144284963558204010000060379818257699822660023374303213184244787901289599484024635229085609679930539378097464427008781532467578996899950245016796520607715712127330415798151044704279350481874760152592709210732587582867140461078048408889010232342907165913811456617317988793741494419383017161667645277614585450587284547769121642157352146801451216573096052513048584019852488443836591884800195599599878172767076817873866843722536896343742921154003403575407489939885425749550508479648927547310592558608669282336621295752246033565922667438691503776120933852420529771153236581969282811447151183585836925898649608888481139598090708775929815635696440136723254323360848317483565807573396460945837593521276390459283956379205412288247680933479465863720879042585500077417112411335282389402025423157592408137968892713458965784912596249646108794991031506351435693393822643230325248908219519612624776003490442027243629782135356481150692002669816574212314292466595793987468349521366345668939686871830471564935830000828589630005029849524772273592720045816264091859037098054954618856652557756228221441280804248748741144295532478528329058682388115413142494864005324050190464651017877108301205277772056684853366077592450183971882366383638325869050188493935543678211999798565599830277561867380457262318990989476133713827687318956111256168089355747719202245564126233909468380061401926869759523511262268551565504693682901248864356120931798002168667600686453940693524334793304710519316353381662988348271660379797914470631346536302902929496477791922642172517394630494204358052772146382575834176664240637001778991707924682728950414412044962078019716546122104851405375352295506213656439494025781891372480499922288885242573828331550715026990604319562179551588917941903435628240059177650910096807344727558748858922111304021523133202323397074635838773253648144125219594206186724366529386743491370985516765476632879029822423553348595960203948612651744313324277910814555654300934366665207455960921377425968776206012856365287769234964347794026972365651802826138376989549968120630431372441496436422845482843801152758373031736206423326417382558690247217073258287106392826831254852319402750192781803756961386515225162546806932495919294958228647438838346543483420238909830064214304389310025335764504669730435068339527121325403424166753979664884145178915164623487794783350215648351946744643162701517812910937836206451837730749905176493345972300790493621769010413477778004342247783360795926142666091029269938147934442923331218294018246619950639684392721258886609748661162037821159443155719749148801836552354445566601060424297913709540607648065679068655396444671593981028353879225336858265151795004278149135298792717420019269819409264100633250555314816748943234204652634633871904209456496715018396560596093975825994585953093779993940035840866424033202647890539288401809501900416362519246264416350831595978897400115381863447341007715146437013932942639469242537200897286243652712810149720006439732018525019688841967209030024798959556112304379374501605034582250558159910430252341399632805361347068948585450826354424896131342127912649019281000194053706010472654373442183204871308499797329899649555504970402890284426650812520466810039667836604834170641788730971929856187072196629855668891503467441199060297182534575865543774987043527935562637527008542344359686906836916912573341757442763412110432557681482885786514770547257502184281682270695027492441370979578505177180345593361872682048210122510173074734433321287760466242015541488110566035462958677824039223813762584067307825689028090827863049842732507505243399405422621848936753119208781539178215901661668538161579158751336748859159336644780640823580698214555831081339791094282434535179153387133347401821723461768784023264596619042935760878812914636240454549660933400715503472235425651596559790278805514812325844631561567218104651427593493590034212645906058634027061315715654146119098945304103219982015713415442291160646981117072060467457980724739813351407657372890593266809505128505967375480049599386535396211474063188714497641708398307533457513546892588581308378385615143968265498016433664588353454809461350007744759760798100210127073431079187816004207594127703242588906683920685105873199421336397395670982240732791285150901432069320969334357964555529346973743878222261557358645222731194774767540049433595027043704862261356445511628246028971713402297474084121774002505593846648827547916539640470641005816482935185240453654502633092241823372219883297799961008357848073032657966892703715900044594449313443842346291394540735541121892800502400291145719437085851883071164088045571288222817064194992599784781905761280214223790730074541965274182709188548575686358598387404722745306141008847390051311124949184718746261750552903061654128762390096875065611731960874567847101578301445757942757611835014379229245951221173816274952025786227132192407604424368276387729535573191345105347211758645030422283742040942711842866841136749107324555893961321190473685781853761430106181509602539090857665939808747212465776059289340305245107334983578251376307044952638203043529551873086636261254160827905926516108398426898691698648629302802314362914909589705950040018059188052593316451367198067619185131735433944827690754128560230338889696969288584585906596242695148286481296076157871656473150679896503698705799299067602202842161471730041358965860419384961110888030909783141526239648424476159425914624932478402489226956444458557459079270128850964521959144474206534008968850083275428232112143110458831511977969157568802123563483824873488909527227172658799906793188169279265464819744571113337683361379560210032631463537556618079076836887842176113419564074712744183134705404237076695166442649281036929945556639317063348892504975372708112882461662787257038039929552326172642745347854501390773436530776549604218857864104677835020153105622860804148215900246502987495315516321504001837935576501552474649682203444371940047266312591517025362288647497630724943495219003241047056380230015955428883691592976877272302683594874975975981991187003141751646747417299686685682494231266836379035932958862138323636630632142917125574059606862764051141850763156407944803173588078759623761622157539169475507035877425325443651501943573389113762613183813800070559578775465670231860036406478141894902006186171314397508171527942014866996092486976194699828009606510037215101040654839183216829326573655393329398267025248951961071270082606260757192920617228310651969736679389047280841040604863436202873310250259540198074397670488368236454831865680313157979639582536089874732074408788081360493683372986065532802760174162885825518013854491494002822799508420281622909500567592687886863063185902060987784836789582323721729658409223515611479920571136577346947830952841779956227981850396265294220347465993929811119474867325110476894000719475981008893008807329822476773100809394675549101724796631205036799285648180827856258589010458996372498672188805147185441165108284788742831414633541622344742615889330045915291089927594306106226063135579283456076455995383084936531039999575732585265403658640514654770145340871702145644409198381451972163384767587081688811091877310452148320944073626439837303006173724078272512852340599013759386333833689062693848560584968808370370955092701916216569604056062952530664027006883493929460365377818210877673333377350286447555767651144285542724097447608828707179576252713378482081155924949866982862815707720501317104982300068554159936502169764162151196632254808277696735893563360752132078487284492498249573898003117589734062084176093578936671713939493326596151493383816706055861840250475136784807624441705069703830725208534734055084477913823250379282405500275050973599579362744124987460031465044034813474413506064540805239047466122251008398519667885421821213640701789883204893042122679250704214057772795589751302325558278021253181393574692239224066144850681456290940558750680309704262757565477873520842483931301489644632909910625386928369311852190268854447375606250880999203743269070855972005921761602679040817381440911995804933018909983334483402356080634055043327975432132842272275524417782260240791033787728983070903049579563323227211539403325877188743904594281798729781380870448405992499050607783946307541663378417160722620923815818548290761830769269152464333886638191036486223147062404692531950298767244369504760739783899749672919676956986783108165628636425616803580751340890546704559038855872844024723193197647176958927900334329236873216179305787069508945696682969236897551779735590232307927330818140490719876211674227271535700219370229123206691628902277896718441735271481073649093284577805722866696290307667412399918765962598232732020022532249016212093781223384576734995540093066119177621662162907212919102402128556639067586863801569430208691332031808541970729629319373325430441236340792318964698019106601406101620681249719671227320857371783139678787157139494314473194977448009652626659237858466648127732552551979372025683356882463539921815243313522030180380970804578957719572138943463175795737717726722871596695707922991747489487824189342093481197121364961662626927374377062844412696371455088863172299880788168632795775405818088475558991726653517248430460124273078103368876388067734350365985968159250882975176806978827644978085323897629275774731303576267834653228651609533979393999016360671705460473059905189839770754985403700142235403551845808327435064560969915250838923130940711055041120105671475006089680709295857264360803986784883160027772524727410982478577702311171040814222115898499954018442570741428250565090946126248259667149248246504819997046332707015572817199305552147660053998375646709581537987007427663330624871436353383028291565374299165428788538738775470850405719414160337595995758896304671136822342338654929652403463162095345052081366783425020214422894134670633872923277382247704736255770507337369202561155866880948129246897141708809860126306604465117166518972828312355186068454520793465791270319685620824105555526095898176163274601578268643932491200190598009287673184405897331025349563416521033929507002435984150984195073769745842114015307412122245861345853911055028716867454988549938843836299207757171600785424911169123764625461363186719141344533007847134697788264240194018497068821886402911215287130536199278677837242979186407906140325714494016561557981655751432878453353162668852261263619930648621418999762090215763981874751017266074968895484161779515642472171157233177906549891802324634917021325995864355856073431439526266058136078917812220318857027410014196026269784241363803013168779315119693945182770628269517553331275286371060633191999838744565097142922759258472771609766189054399767488154365756495082586635169023759175342940412063859226201297622644541218304800970191127389396603240617630832071023011044577653370227217782605810481718435967221314978331486987032338122467163031105928726795407098288693163226621799542537975576043213082398819399266828075373002805542652205351205500216683825813417729941261067487304447247491107732601290077518384684711631365065577332159953864629582859405853445680426459917508541752616851387950320989671012892876771003437652723509835214034176985657493499123066562697167893363216524280600085414828099398379854229763125805333234824923779748499534154260905769503109144882137182883591708814578548413808880851668411816989496861102124118864883276203440652441871086712118098020369383219404860782902790534234774908671013491552971421111476271170611882498743383192650015435616134445764338235767120275125048178600013671212320088584623409462181111829206949552340168051720094072724196250796665160898381070808627388760334540372227472983278038395253396166223588223012331984917608502688458199931247626656800275423098562598236173292201453642808863553020976968392032439477707018727000668137195744321628926519945737748340571917518955959557277265990008099893206370045982226302897158484751709360213179940169672521114503502338809243113466824459814611337345016282452517910587289214821058705331541165591397240873956960820608087203295371652931717431370765170937103850968188823561997346939300407764331857384107411078720651297545138012816489112469903423248207879731483520935508245809614054412822792808388118349287758484619951109263377277938747228403176419423194374018039206278673569171695339278546950627789710635089915099465987690141297649064431194010766424449922574890715075081449765936055276026091379407531575683398501574427922120192803783417175263554213360087316744384434769593286974364918696082026087686480648074559810497763933007540363870150986937400475714551654236034369269491896795777719452279348810944499651814515908308122252999481049379012074211990136785996878676116430401761654735423287608069914002753100553213168941106443116741977539571646101194042719776810653230258478576822122346894253298951987156576699662468240562814212660129178149605205760956419776697742403467605380063854927109255603720999245330552072331335945301880220294019570244827215186554641826782913339715632898495803860049562622712420054657452304183385263133156373441299559632884057989479543811987623581605357389252882006891570472172519874419030676595858013802876244271884213933565630345343259301836154017936592124544997741342851455665778469618897937234828927311952032055401214191699678625014219866555605844532766043556364615598723356836004217760388288189925245767213702538836293237344696550163192536217058877085481108332253346585013633157037554841818557235704577146388912705922129637164892757255624070901231581925893802781590592752311717627883010666578934088432237466881073688166862954005565887497596616701791287457169897777144173558947085738262668079562772431369602674672431984542663435641896339362900985477330780593201615509547628386118126939949967266222550935839886415361870073631001143966725536166386311063844838059304944566202916197224932595170861969034587608291114840101031944534965938156827159044349269611008044947844949715976404156034343549013251662282701421996772438257241722883195853610499454605794582491464502010077880263372870269604780445070004555803066819642339080156292261223680751908975749199525771276350696492947840362139949061834657740341814425946249957159693879529296626549620899495190352970514777988719505358534185520243323723728833696629629261619309756943697946878931742788015241975082972518324598492825748354111160421105106152110182622497533111933227508273800644966724643730844187940118392857212678461785393808593848215740230256501950576898927302362146243421053122938389939295089910572541128422569358291786024162465071409538045578812102407287086632098353692003226289631119829873206701598177993096764913204225669562679610028416174606383561560471672527626433372769360961199538393311451170281472744121060206108659452861391071903732715061014542847867486602972647332932418184619361073817488820505070102106201038869758715756618546008267290349755116224937301888231746019721075800794688816014601778814120326067055848493937169821036033721663592678539193738936772755825648831406410291179950396529762476511136459003172635858802199214348040104162544089936371491294429863336699656208900791581896499205602630782280847280673925862163070081903657087680775116333753271425813343750751671826017282934121785341624713604047438394428747437680575379565537619526333808268873178861966538559568327066115442161723777003189092745477328333730471111298394622780187834338070421998069464546678257371811051550374511556813865202838852575678348493294617646226835735204698009600442501764703784230029008849230018998885491702001203850592854463730225903653114451823802999930351451651056158267251386945937520963047680112313909829480633114628858320466647235083890151961794618233996221874883506543902484076362295916639680296563231553817497233390730401393447381356597416534775534388939261292281687902857615051417940091188524786135549389465351228160670971942955361648003183316257963602807946372156596285341001064922034868346177263267299395998835842383762730600111258321894503309136693958388078613551080381738820890623446064741205326998887122183347095563998872215082231270087008809307053236334657869933951743164835883271473740271322633255789341893122427791195638933842536451840106931350722798104902677379488527858821270869646805167284663642707847996128020019363732812805851469446035447608899324109475593587104410620593761811367770976285950832166797941502439477453147048859021703030171639584158870177219464435327859018911694492559329870003996836415470853497258807552944705109585217357615361798896967974602644247527024608202094501242635386222912000573603408904057003420415773832659157832267673306131317422379680097476418738547854606384607230523876855013917312236704624125894008219771430094714553624867751134403066414704970718665289332710326016718077357497973988313486070277714133771612041560344480840676532742364482885216832632221066399689979924870366750760046275446681508897450316083502073614094207324906907709481641808422819253735622150249681780440884122678476330465304271859699504806379026952692227816596932330162672907554339721900704212702791433748511081745966776241004338997399601337498476077521047748167077611324719943153306393801001024616493819730614657930310865777308371473649569945110642451825406026699383228334871894589521796430565076570036606520828270828997918993320001105576877573802462439250669908274580727337695593139512912644714604280840351477509731851529558570051711471730979335950457342781951151738145138867768995202079827033286994036695242439999589957251939112811979779592993348640851078099289389794460623733179726834405784920847297569277879617423549832920678759247158941297492137737521942927639256386758759462573844762563128983145675220416348278597036355780894126075489478785322729705657256962757346439465752115518858284487022761906282216236481315416561479437768203645129088440716665399044094564554284426725282168538815273373505880296462540045802030336093821499418723340921470185435171123189085045153009571576765717463424450905353320929923807321448326867764661438184136379230885545052834207373792195324856349747281799319712757002793009611542464035235325890673431194807386063421253231364483165786070831854197918371324261550549715323495785708380669166457038815346631236619886561728366927778375381159894798370790281650629362630347899241334945828778176741776982423815068794027584487985523616836680258674295423936992297862603363479017383445175076498860886469911715860567079298633036519169033613889562528467373691171419272329159800717639564904772218714510205332497630863004383401565435531932801166563521372275142739362026500127114212465990760499799479828420859408173860570823489813243271302144714694835475517298186552541390125813239416653763678559509301551726640569146361789856451291440621834114965632460611405713377541855791992892783839613197323458278368675439178046888632844389579393259310289156128631437329363285621933125189240377928814441089566221929183419690300967289239808922118535881228107681160782020703523546265557214484001831982216293349237010948667144459312400317558485007734679616482181691343954414493752674844413390695364886426199592757775351276363411980874217390187795767267155276262277234002923977707662528325893529351543339424005321722105061130181570758718267212778326788708946139698539160471843204738423628252360856541587751153224748991894049103470257255351159661651567915191964239439367897336651380045323109640857674024436697947355547593164220369879193450979295398053317908691327523844660340601470373063105295625349853786431620388141504882259595296112636717833273875074575155524029912458892718701915703273083933473245161330959553548916364438908728884668563830197978519951762852904599487162088032379121865617318566747222612515748642026899617295113854281209133471293069821423930460356517368924677379091121522666858509436054889395601727007320896532675848777035885380330056604503790673825810529661414671655479843878280572150591385586096000144196018123344089670697520988016794754512711532421888797440992725602827799736930063877302999256958317750673283900892302987148241529108824285090965024895480003050887928039088015989883155686769772113680321785224878893792247050655705090838764645445934458798446488083406313812690869060708233898159718343890912806240470589891476355353481860621411520267164692041226301689465199546407246817718861813226920876331070489946941736235637283588156397480213675178339051572499372799885768614473217218421586378249576430615524439730928105040345272705065170585111921100414421449905531542789317251600416978964281949058368485703877934664574797797631383245754664092144629906016610675015412178142758536395142048693953824309380504069253530682453611659740350828754188273948861624702754544248962268612457760252878883590020966806859546668976324910895767145474988073284953191773536242040480457096699153560663711185060162700468529701911528487806997202120969322817473473809099138555136733642642392357287335178234889879581390123505901320166334853199424805792732915534073356616915240645282892645589354002128358100506826212175703535769890591330845312819112974471340699552414246428522377510236608492523561197224328799908553163890481982754049646425113182101758064020165456492424527150959753474104830410124971808126740252519703115089196508746157320365408526393038231226228285809380292558885465825443366985190757547522891006757230724299941422685200426728838500914089385041256290214943206152166256953705884223600980903309247647624035336927894914093749367866455203209151005943492371052278589977226864702721462952887385242450959984195081458961219676784392150806793338497807662739932902175535161511621889032480828186374708396404044476789448557813339748071949306716592604137322557867759378095198032872661853496127524963336795652177254520056518071526310209495360482295738381397649647551635459321295814133236752184492983772988991286533308907800368962662266323266625844871226172327295013400479925771675975091893131548801947966337243230994466391769524051877532391749074289476112132051284823465973843888677222822577415629800450805403024184419266934380622323119429385186273819985337750460666726714764719743802445895644817355529722683723056637615264533751294058311056802634223920020051785396384130500962156704786653404675544536455589918331805012837894801281008777889996237913950602119465784296874307594744094776955168906298966413546458138036906567261452206253915900398715405746736654663395996581167807994643208552988194015404636913637405616418716234673805934229646126914054671789241305537244164036356417779153870199602378379946799396638901699325552315140981395733477826620654254416438390069793830698504393280263516432768694589636408360966461716189571422684251473158729593520020395472324701533792866773916173605769882450212146975586758835897000581244344422805781149902411233364200438155441219694982967410011540408992024138163114543832915908300559719902141685132210012032553526196835887725417340432697618295772589723643602953464044156486800878407302416133819430803424992375934636017033911772725684208911454549008246436579324148467573334946704675322915977584271108032563990119582905333989446254051469774733797152775301712142606352995193832491085367663842687992472767177345157909379506470033107557100979679315598074418452999953849150621462783236092553104807931987119686874052661189043882199206220827887175963365212799006231307571201760106103996227914109100128241266069554502159062395428877747757687771089317353581785503871403708976598452237993599350294088527236353814391707970157427089043678174520778428960227104235050443975393185102903156758024728898427394680724260214067416010778907206607566394160154063799482763583322166864908976112982514945887178273367075146754849023165247007438903281152475938353776297196134378072785393290120781076057885679087040428536318641823988076795351837487074196923315937341935825388394964122600271741661589163999203027997097798518590857557757140840351713401440568002090316150946013509198432466926297944048874893870672811242806842759615978571744012885434976550201789936111676980048874197981359196224900924093563002851062482871710739683851297387481487965544456209346863443209788033901191196554617817391177464696392881917915814410965924349173903311953983411133403054528055247132713539890505024088428295717326697420393253583863959278977083267961636741594866162882953686696030400679344088120717174723082078909526872974263553843909801213880051138484948918784439691945959560874056143677608324033984852912970854569466412782507343165924789716363663308986463047675831187413846802584086257537801149142543463474569815466999753039727055642718917478336074098390529965850034893011745795197182208826328172988132021568581388527228449299921472074988183375737802166770758989035006771531024818026362494029377944043804778786877818056238145208785165087394605953178173397372215645468812850874013044970168178606845047930183690397976476531374798734771011852138833637471057647831221754783440970830454965091783685823635180238639071817424846895312108859044010764636206310440669197487858587430591343482365789785123101084424815460332248290649331113952261078476549098904319793799344035753198774378244161651061357639636775893721632893073779979221109651755120170237882308420759097023587514501208989572819431649727747777895144917748703535113102308134982121902288296568949957831831869834925162907507790811513512824983956521181439805826965255383721232566832963721317862462073737593297393888599559665825666320827140686925524191287350373476179277885380452060905158172230770377903334755716461407490898062540759119486902175574684586154664010550814285728941632381668329030050895411699312993807072055359723743744974523323182462689972621240210541023967021019512241190428287568993155233113217020554474235357990702633076704116297408699759607341993021871371408019806551175628226099873366576843913669720778933060671564361583578622321861675543856767264742970282964048905473830600806177624561787493827775028441940342335192231682647333471609309371093801667013256516957124089140268343086088558950273475605795749398528041921930569471101284607171472378873911513069625655848676249925816235105988035848180366164694312941272330435266493507859332300027376508687902510492815070538538459520220151681860597171956756046055015783785315568747059624264604652716246400076948897012004911954156234753689014815146725342681220852078125040218435722949363361421621409936886186432723493241997916537575666512363358926667081731388676838930568224785768011880950619933895579461173181942525023647488195451577662464250393201440981921188204815933406083254525798096693957145479209097802294976872954591111532663309149500775033015185350255120322359851428982266773556676647493236766452804097004754129668730020781304638468681098436207905549199808653889134568105041887615352188131540409122682893848522854154727650689957876328848261790631142017527758376232302208861425177641256407362593862807679851857518219734867763489408210074984545370212235069321611681833108008623521140102939636819334215357249964522519045310087430251066490162670392736309868706941731457496871501314219691176703696967195356396764152174558898621543436383145395147933360884780142976367533973438351926793775736745623311102779921161712737805797129933639651829013025318095344788857050121011427760984628114003344607060479943001981247492865791368907567931938064511391863040206926860545562951968722026189652787789322940459066327629471615461017736952162796441968538030174336247699977919507487191250123260306221357836984605725338610430364456566780098845220149634313558311915202995914786855130725504657735602652234203347273311047991970071499227918588889261033664318253524124138742666685262492339961471284203245089638419874934101462114376283248762837572705726433860136459734938631040015737244515339398703160607051769029880694055874029077528220179781310087009923237273575363998656751966731733908110043395858216740758435769073484826985053601200116217506980273239468791374974777336359364296440860056144807484705210823940036004123426359186552118507030472423075175233494154932889740885165949931803132985698524509121776903719637556105927658195491963140373150332240194414371444460613691589568375079163914887405005778074305642873737300715630086519697361944957365100301835721449959698094922809587943651148888304860861052490809877084527974604688862915815077341048126812822847133772925458715733844108518192599766636653405212183870195817967388177509440333345083802791496193569505262076456502247766323072436559056562046590306029359604999992679502340552685144584470870802035646427480270621768895861673969592592604739881553698353176922481887876469959219457687746427220800893013735368378918866395395742600018863525969411583264487241749011116780251689381029471773836277885171639648716229603407589578905487023920988820514427974850075173590771871315701834849789126851262718880240420567160200221243377951452368356504221456164614431738795756976993644335649465661998605713487547366851527394206893746373960678033081380021238942551891530559370935946527850458620630990790406118915099886150625627288009978700858374034282609320539701413818682875026925579605423838298926776643118242390558984780623685521455314995427869579889811396951718124225718615326402544824255087305708840055186893854362407069619994459174038249191770848621497872208251158530407393856321112924045665785841440701080818190227334370974352610986904644341909570857133514626094290044503737767931458083374543953986040024323042559616652468991476937550777741611719439469523114730947000943093012690087817379822028571124013513684695305716365472247682527437656409695145012218893406532839892928789747792065554368454505385704248328981038406376564254696188201120537443185538431574230674590699286166114153572976507793517133513914286803766570448003898631684743488493450761609200721928352145735854554496122964933185281003071106430485511626705568595013159028225038255229645453939608709979948717576831398425461133628059085608790019152313644621104919083758398355744987724350989000688650213844581905479677546785614965634515664527027800841883410462682525647289132056379037535060342118694039498608730977902543095212457492038202131798408929581949655570219786811887926129232411740643621689500910595052970151186649820032332875517607311219791214381575023645988816343431688649674676759916098251576514992266304538187935401163192881321149753730377106083369170283126797833813181488999343137907220291033047180006803453060131020016545323095089707786918996099662605576264137543638959887606844799371330035519953933645428190862089182033077209682517506964515986205326592745793017235122553106475379675202938054659293123953963411351784970347125890419962855221705282596531078303773803372261992235836747146730393814381936462979486780004961369970597546302034158644880545994017285149689151851812015142098455330346484881620219798023722029945968205003408227590426415615434149629888837007734807819622237979798396509927044593886350787305029759925234400071884717413753723562298286487912235552431654711255615036302629991839115050484350382125592540063090064417830298580747607496648475778160548403959188510857017387302672900856742255616347911667838005514948118871113953824718880154250906563572377459941807139568142158866089750513513007843847502889574973224036448097546315744863531181655019077914707710535137090688788497762897581868534025790976487753659304967859949604768047288680146322218266372685614170451564897600978756184733762304431921023662325225913053620082305507757623691105131345648872058184527700298451214386527239238856222939824746054917560987986007954655522192173165905507820711815930735276228754408394280250005629516161359851312620285282262817257997547569043695005726447255829956099784034484520926739153584328769283716525305401561929564063406476632243058368358388352345618651170550249082192144239234510597577437732220658361574895446484181088643881057280972485441026111788249753834305685930103130472687394482714355521369191667392821208136588478098128813275524450113258757557254690469365517117455151127478204923246044525758974342016409289209854708152383195528203405452320040237137425599228578604671551395713090768983925535380616957288311529499732147888576423463369243776166880257517276326127320466069506129252993233410501247970574046454565841427973684945609424587876049305460960175512672331522834297704104317338803533368882235686444787803777232497827985333993625047137564879969003893491091247091464767412637902925862021832358092527749909893631438420909348479324372016122651270093961161398828296513676445800650477654492180146713794708634127294991639050022979905311403645912554139153888761747384008809626714487647925319711103717466147261063457000814649368062372624082345322049058874465539858484178332563283327928828674608042514627548960704905247816626711405183033111847112912860273160509732263411021464895164476824522895503969675944044018681761376611975959358828882096127558495706862547328714402599313038750850381465686442590258206346693395713094065840650914171785320284844131370372476510792778714974132703150395161913018412159941010295188094474883260886532539255919337722483386459956422405921610535032797621964523235052716976798422079673816215080031404191524718397633984703861943602650076156123562329973080810197790874548009657069775412285589594855420728026748181797079966885220825747374512481655832766402934582339017142924481959720779452683210166223460966008444618921786426745114700493406404303664686029814910608206440007724349297439600522695326396664366969863490354304062369153486133031605894575962898774116909388045384443218778621237607318487683282821437402336941429161161377065684345108018277956186407585409573856756101878341110985757674356155079028161184274635462051320396707667906010065296844008469589503946423693115720983602221139835052683672166927561505691654370991695984249995279868455561161572760420078838264474218937100443521664847161569858493050690246127572523089979426235897357562835400564511848170307866379949008456542356318646847314870303174795926035994557782332666133789487042724362748610075980436473805365424387837372870460768556923230528484406656555557863147562803848612340604394035596565289460411815203431709611820501068020346388982112643283541229226950279058004913941492992478121224556292772995346728137282535270334353666201977923741138437919496308476087576760444750513701471002633060333575955534895230817344281514110336939454668489319372374660574269144583154105564940936974499797267790674201650372093270110970698089063880869757700813832637216885747085541231953373701002419773138847168511405080394382671093152931201968042083968633962831824408867309990896272334550200847161252919049058427556481547530295795486519376696400686370443647452178196611435209206418768043318434177278655566836748186062303530763750931849555235376334144575883187549688085397097447230535735653174578865443611151985739093857641709030034385787354605834029689279440976155300713384479207257593446015551559755369445827179198458291219548536814316291609016429058304558309307210858834048145201758429005727461068012662454465722068326638423683784901181640912860446137188325730556207913359080352780331696573920190045526354139684525256548824150961863558365782158431806105703283013114429987000322079413217612118182900267030637072948888783761602870672822829174584870954033046828302332663404434389323723970805043798472122784667135993439304507576186000966911578428387849114894417739984181577272350747322610021285087157324526680024421706011586329411558626252405712139627129320783770647672931506040823893390521815991372090348518660103146577484586150280545025640633314892060625585490945958398645474245837835574411883453467312967177108796836653777828904244051055685418325510596580195949341338237500108619021963355959797450147599203948326407990278389099305454676010905780956780650572565752468423801921303625392265328820166920351393635655734355794801013463818547579696239052511240094529571284999898824990958628217316864218692356421458763683844280261311340444649064176745036655509699284286243921655992699440917802371755497334801493799911264289378853996930417941256622294998599314698510954893834326820473346111377376680274944429562266361805486795641891481660815901017311969092471126139214970994011723326124824603694485413859724947508466645346616916510173787409020062186899488252279296140989618827358522134370680178836952812561084230519476273422513832864384578371220128181481073392460545039030787960344178432027604276466058268871111083254394994583240693579554595940710782811385838774048695352716602813233359938899290220179576216584140382081499867988963213911529143096578417587957451245529972723326367802816363031179130315579912228990396664364201255799569844091332883308817190409363773075263905605699632496931592057017374670500532099252335209839294941491190517838414437082200849427043049001862511387064115558087534240273239467352132543301184489721007970928284599625260474530654423467876238147299730962680159982695834048331374743779805935923680890767669772944674095519913265055839911596807537025933077758783495392157436409628889582710984948732181474914677670882930782319122692634353227452660511766978409815140855303360812799939034970614609493184503574026464831914459487568291412538662128002855654525941442783874487540988753951376048462599419084582057046383504446977161035081463428102238048687523191801694831271805590048937863808237773596639277876261719949564027309027001988128261684069282221152306176585360645788032353569416207423684471594279412268050444783353176073187762333901623099624971078169998023434894596336204754321306869397777448920451656513933377946893298776141705538833663873304361252515463696373704888721863984634439469369511845099460097119834774208748519452969668684514525630092619527490582105928507081485979009601650068793205600881348185344528503803466250879367906994344705811345287245001820957995850890102470864414116943720622836144712260129047739772661790069510948401323651001853633142846196220837106200084317298015388142921590054722835504152202755333549602602731531219281273153710662176924750958310410966386179489138893983032458889168883087682437105887572670522724113670325470947687515287550648418595327330340155948731387982152317024260911136422655486375926981174909814833523513991010281380906074630777372829356906369395989856917598074993104918119566717601015569074118256573253413451334669679957227220933138553464355775789338423236944845607135050787392211515978059132269379352172464945893858226169816655596269367276086299870982004070314376911503336293310456103551079281182099899593938151451197659443940664056374121741298096318213834231742666971837936178502985343036695344309803689558568023982971804777451358514095859528241813612234935292710946493132115550890145539050093576119094893634531842772849234291882817410915670997747971568032022120423442617668731808440510504962928129967066017089685316576612324158326185173197464102874760572312292934947573133233758593278632610541111547754121142801149743245401980148579975400101892559977262470782552091011054147972441676619295209816972460899807100450214601620044556928926034672013501703877146609538738578043260402420886208667071456016152512962461270286328741853517957416265388949563952318787598953029822229268080466306568462942980733119246179527926717000270891034575965885921216238591340305343629664980513249573287904702097264553477624086519641436790608563092450650592863919038199167878789370717638670977414109363526302835776390716775913816709571127136790191105298210829534843601892913535180476617976494599408614237560833933100284704886124136891465012266487422147903473899182223711304757287312124473978704802424088245097908285594267019887444599221642585270451410313064635806716645174410631276981121195440748356296577998318611423846577511823838958865840868015644459950303520426739056705617498677838310322081851242270076710824736800494087502504517425780685191267836306320080170992591865353740216963791039308327125771637612240643346352722711062821302597027962083632881456119737053277959507408618453123273207442857360373953745315647344769541289129764018318792581383019548054458115281361699933304403936800123029148855079696630361854283501396785036083662711045136113078154224910464812922857241970652958260909150039989320014752727131420555031261973632869857757677674463650578816898861109506140830448175916418709991316242859473652705574163892267257985783444517477004028564423258049779685036687442449627691541516967552290189607566185745795341412804785779984048248347064789272304349558456717719031680780127697068041625785622522841818682370133254013758957186100318177556296791787966849106115544768264217213646204096280643007344976844311468584041542110910669763947249496051010362036195805560275529499579685957163227840770536896452633974437005066282329426238286471929698118812925171241567947474596006956593153252940028847226327472122977114801919555817897441017327197409932259223072347431833207042702042655909300839136583964068356735511624089199245021488415892526013994608986726288837753387874122767242477101199925863921085745310156433749972502381414713500765175943355629422638272002369493283210016070210471327091615211279504762387165236536123316777481912077496168777857917433833329905131688622027631724717291010378870794447105907581632761169499979614967101460312306501334862554525726371255811871398077017383110179854630278830385632259698799409907039831448068648366493526743115929889152061892060414772825645795723435262203749092524968794552609689582838624383350491107888796199848785331111466868251883170455614686140360334779446575879820540590057732233742772778026960125754103339078346709667851999461584376647758179134418560830871909515503843949706099406193711527498372038676795362890594317522350528003219103431741964574853253408331179773075330987725646349705640582540321137867329859927419038722303592482366159560422160787020232596094647630459708646790400206622971728100628399258980065926189638938151280667240380731959574019174323460246715356125353586440898000522272360155263267645281921539955195328155846053939040719710264731963253058073967862553735773108895062652234292371056464722941768298678730377142277916871053602230299653029971008355819587873573946876542443418765422863140372059254869580541249842132267864034845845183371710003772041351044224368650550462224646509191457798413343480524353592730119658457753988564477221857508684535971821348039113301109110288554312394917654230687974472165936676738466615861255056084757629779633511808866269585207277595396901509354830353821643035262628865426330035209701484806013588814698105622257260435314099522142257360279204081450790706869939685396521670984505174948702955073487011972558523121431642653493183232390424297988909954613475867409204196146382681092622862214573322382611959439256637738525861070043417848605253758181028423504461997885182946008170816490223220205160757887089447183003754543893250265980811133170841173398855482393792106800389964251908656995405024294058737319320143650539470515301472889885526748653528459170494130888996732442610197040725220482758832295326657870723929415735482995521761132489673433200747907672361619682750877326540387860253755634292731532937557484122204251438292274522772086588226218046341698433685360572181965570728083561212146407313662418959578017493728231638020843807073940047513585749012053209662450263151152072810797781787363698967397534772080324522146391585813288381300237390676683360428665200026406537465700139727072100433168833683807187056786111827141361110836334446073549556624527184300735009069407620616732822316328432014015521149104250265710643379041947308020989468598606795917847460423671586904903440673555342768284589625059159831859421103913331253017206307042658681802765169113496192314545689574092862028184294928963303753509700963822717483973015197569390894642397823827131560251345254668425304164497225662699351007151291685416867997434327285333540516640665188990103825312158584513177653772200375178634074820943682825077290745360442346350571504530449575288267584483457720726065493642528195350229156541488762326870899595312186915588147230771455217175318411557368910832357528821429464821713221389302561573328366471830662384372653768861089507468795414868219184388986784583161858946944173360670851188515204715374807552194850338496844013390731531546387679909176983217628852667286424746769605658534456557297956513154236117539158393346015018595840210553814383290683403477481619442271814154629643932692270575324830036822829972233994031473994103871172875318680402688335821431582026903414783473021718717911764817619397207706157526163892085614861074424281571585691237200671903184047330079262438586361062429381418976240043106203552740871505335588170520554930255601317446928026019520048172535828181515941834309617590776964285186975518315332753959238569792718582943769968314725357761575665040630150079181545461713464318558591918255647093447022393228769690661624684299447895502380612735817483217598963328515423299782714506315989716843403625599155523451171450264688341755997377165211521361054713637158330060246272521484778526831562754684665125060836900121133290832937484836153075270790975882930289536958923520869675089339141417061181755261019001743546516982849355628123467191625616500716242059771308909756120710566961547782316395574023078992169347269000639195716044745080301510064080668054312893059381488539817939819991338758799425799998381812268922057689948218042597576786109314994079874379947045683278935782736614745196326340931178621037107042127811880647843975952845511798064375572043070425936872773851121602887975045379294294632325217369038308266419838448555410674028293977570792421501648783377402574747550807119317121766605739271116479994239330693199529548663287259285933305643470192717615457941158559780500768287844593603211371055660984022461199503971670028346622733882109635437910656205868622751475918866732168198932072483914641176916730766276752131178940946102448716766547060656110615948439365884081363752739228227150320147674068198558279464829916010012126190990638432933786482781830310393535986249438047861410506386691275553592994415957063572261304345891715947335428314000626952736033613129414900674474370430954199550258813763992461977673191732427843183189106397341117624456294842839944609727392676147338896717806201122843063595264721086853685378888300688633101564840164472460462367697152466045343466117891722275167638932632249977413661059028172434073344507889720450772741704268669339212517303220636101147478281057681030370167750756040895704832834495102600517409367778077640239637397552443822694382130760955806112765397218529164567795816523072198783127390159519187422012325881557656319952776659894139227726016420859374278688912502496929073675533022351691264053074178161010902803594118620425788666596090570705321046937510893218609224330853028081812357089613649157948582152810125985938820147214558818692876023471018963596987602813100561450577148114603473841622815910825796047896932261694206676180262570403201160083531237412169472022220743568623857765401820648648965583874918939738231433022623879464809195000575137041375862908696690212001495607820195625590767657523765453402880976116628495763034976651889428648818557355839660411950808491174693179846166530853751629139392139785662827678070667466196349061867760558934109672221803711292131496514794703775446434011143017454611852140947660398398860106922349911170594230808912684811391597917496940761382470628907446821758728935584604226020534842954570181705642364200797387793444348029618929633330049625247589410934842998703418010992626814078425819192766052108896036149568662120061516079427046753289506899334875560339779539309477165358832037886383449626920145795305349598839659975487973557655303701061453210876531751492174532207356906139218495532849414940757933436384783101101723964325800256028696571712072665872766753579546175882668693720380873897312363765182997942188343493333192534702776474992288551923788043504511103058516449361941077785282795137633232440773918914549632097485219527045437158779818072732052619372035970215507963128691541357850205878058492326424794627551693640199741480039180007825354422159582301964333833542536139618559903589276519732963704350279621793538506310860185202488584218964567450223769300355314239125218010209897141021466775302804909835691868630407670567216660506945739584336894405538216063648899015518268645369107012737152139889463036278966271225179753094803351226587261159086965030669660627619975295066733234296801836532233963875317831408818760172091988187889460173812828429299671365450044899820786776284081007524334913111928829957525665244843243124813704687720688528490464610884233249546961472623581647301610571407745218935269175030347976653692290476616785715942171060835517188833883044837144075228314229018114836456002273869899149911317884710571678126615041327752473709937543156790995450391539390418674743314767687146502718829360252630514678016313470217089327462171241445444406852654991213675092964711804897349348685416759416395546650114007076079175521677114527375075966926923595075884401448543993788127809176579102584205247019720513104632792913356888793712711296256577865704692261573357987998294999201770376957301768988514307430487131273773814226107776429044686718899918603392535236637186581259205349573027624695105108437310945121622679535173027173907972307890442702723866187617248680824719448924455730740874439978295531902822612728934587444934333120286026128502913408771501741673693901016050407290134033632749062738386298596088384638060869083891448305417512976942971090921931138326388777726453734960262200305504510341560766116123943220830851685333268607036995193718504005150123232757505229737383109803987341040372013601313191662194809875287027074315709764080783447318234475930202557332860521135761811196326985498777691539763417031054538097961077795700752040707668779186890098513945613526894637478311245461591091764120404989932439224692930194231952744337405079370849043644831340860175440139296485291537730374196540910135347325870044221871306766030153305622283021266235431131101559855568320613398481187455963282485699097853439501423842143956121211326379499229298002692843561021610879831707822353850672007108481498616323860042924919280778870029285704610587301040149961246385550375165789047898354738872904499928631328639812956390923957482053299453189973304593093632245490919252586800373292774278885592962462605113947020475399319145594944689596909591707933857048410751338963280282787926988990407916874796679287102053262968963380727404513230470038427595256624889232627998171031943596474847739280700471182384975663748880323869025581381051028836564733481758730841060516927000025849108982715071211539609187333163003699345500217796960839687232856455028053322668983540899695175780371787531991106881432590141792271266597753671830308584348071893926068807081654948082772304671275645463319696600391411145259535199434340470607634704162061475457203237799500268313744272681584591469591882187884082349723502161554864380546514350049122446622264932059261772823975347451395509746872479216402904405600484023736122098744147257297912133959040567226445915154371756034223258324464622150377236635664923101441086939164974118502613046867657358124995960559393707988313959632768907670714579985686919552084026309334527043468310961750559257148603039859751828040421432118193286867841229347263219338701727002769475354840339798282531069114197216971353863266868275972204975862880206616783382179427132885611152509213250075005251815819171412163539128348736054963526701314740055875032893216342074537110100556747223215804842346922509347471119333286309436435830131097661640392589043139484557514112987053751852761837690555102717074339121579468098949854431433305233666727626629262567494802510544948776665321020914820883020899858539631939520929511918574759393993196270730803941075125044759631043108030145607122617311657405073741263224571115113923057177521662159258610889235783025124240619325168516192008958273992905621490831473189659354447996554771547482431521721779937156528343177219303422076153287019231832384130090822055106729002550393144532066884180654300613299861247132160282313229780976173181606759612043498682531633696392154123043966771374096469326018084448942620427075836288398946805552213152740294700185325264689606776395136765533647376857982388048500951454367425007781548939809685246179961105661679495387951786986049528136348360373065826016797578520517125413985130817990074310148404283917342884097541662236623542226097820717026713583552326697909195565721314341682648967246404219799011868382216636259702033131657716173589027024489148931857775079638171203554363709930994884271490188894131864598079837622701401044362140554223194986210126415684361588562499018765568941483357692412411905010872223242051889523482750176255669025889805212247043105786130065559634738975584663883991844183922784750186389512581712597940684256217079359156893328431816895715075960605100167873093260924218462075592061487758971041129571539438017277268824701887813321945215834675260472315863265078211956005861686532348500141130566789334430884796268923274205515681163643424142450612460504432911159310617270156262770893261431678229365324259245609618872995616133631042191393282883506562409823194086041767465142188488934564904337127949539559174453225351059059407427958237844853829909449618294983748962370980525434466677066238360028607661885716214922162797819441459800678011409703839423550572647668259700624676800619989214294053525041266381540047375871646623699462660633741184199749565000921507807335269805640412425433608332525247744269717781411746458116226408627277692459844557592299451868224957588142571291984421122214005484630950385411048989562075774022076251599810234476902933646474136311432294990793672354130045262206345518426598178756129495456742930020877293634288784674986203385242359584416661773332138401783439009348640426914480211071455146545763312224477416199457502798991282521511171326884449674149350259427106775069745381813430519741568387723677951394014673972942949436834320987143559008194862062572676666851911184776647540639993313529373494371520268425948468992522104467603744601060249779032781720628167650066083802435805396816677568879951826452792837692573222067185851487572292574591617290911805774343505995881920548441416176797331158688481958705500439122524591217617521947675586609597577227756173539901443212544785030570930608145418380090221861747554067162695254840062863122025370056299394519220759849355164521504859963081695512912655785929682217687684362525753411052252565234727331730284082224341698567870134482933886831546114457545026630481800803198349886039914826630137961222483957013526482959594241030386699586064902515825729833166349317935564477610116293429733860545683787888606492302351992167708691618996132245006058396951281102003927442441299861041608360014242141826496022876139757920607711661614571554783767488481237303421144618016200412592133482521663693954325350756112833858084574961499124615921130411202216327592553081373906660345214119215847883688928844355638545750811518525752349607725971741256434763095667546387994303238380704527643920186469473114061878267010498555605734228293722935459585838332247042687012028569080800053894902927408570638569398808971734461008653069081910768024137628597319595529951867248168789739909668996203561369316799107045960020993881398936177962098217243958365986566532208122336714261525826245222990660455462602252870256117083326213760016544641209083266314796602219781237961362164891987660351817408718840317900035679701310518428594054949176588222009042529616670922220231318251008097979936349301857186015273243627602069423086821656153733956515802811495690785473325348575073285679751849444976458843607759281455308724588961830467172088139049771633534826320963215130938752723908104133063224398304862390547952297639717376744496097518433325549458502604921545587944656543250971128563618356034595213549936777371778615301516936509499166553444936315677035914695954696360181822677660377844698180904581892345123698369485906772400439823804327305799911296533612045613463939968525729687311596549100332777841977774026115180314902795708746610029782941587944392440901438437484392582058260665020135757979377219634378355197517267120277421823190770689137338998651400514618608965982463145151919005636965506713737534128977175707942267703275062160969678386887759090436631683662582121242147851500580611400643037538976420933703224409375705418030984690877796316829119948564980999213620598672928742182659533805965297658738959376142213057185150334160123573218922070293216946011901524828126241997996646798702620417056844189069349178396818113985165907142113821542565996736390932458213537277360440230515649920287742451422264284565491756516692665452975450910520387766921596519117912774099260430033311447244820455649057881913498047662611185785546901940262428987413280083642344179004448247184102160913764756663333540468888350090350347641527553136035427066984684479621695757828384639871382802320123475774283764195708765111597945487849842814336394032538798107115232747950662834391063693375281012160509245398350680949519353381568874337721039817202666675588924830226013891093305629408280992099197177187814343154097095047795990862600133276103118230751245761126463746885009632581901118133407886671968339016966166185526102537307688251242904200801593626398595736650220779333244821744379633956805438533725683794169012088518688756604428083685236220543507318173446209237133298138751232944047735774174951778293347791942006844952183662768781018037651349362276972920290921094658006351281741131507263507858044329953488782263027685390038325909690730465090123274304190291888454990556276309171409567177377417377523548123325299103809323990576706201091873723593977005859385245718111777548086875038390433867854109923968169372821860920183557913834701595751019308463342552551925640228746950170787295037838686084705325095394057923705473343623812452500958742060582435740327693562147112509525576849294627294481113070825242720922285629134555688490443936670752786697453260156514268238177753088980889098952117842531351930229740314673567128734642620616201451644439885548443690830645912940833023002026030787533997591863742065131383465594200120430059696725449424178559207557048493834207581052140035807367791472290973357950736543141132637155266867328548676113599268783336140491021438137759197151026217391069006543979156672396974575692829448167518000423446737297438372446241735352281134939969951290685777471970819437407050531702088830140962442250645314830214582395678732351660147927143600002675539044345295848330724787275629307332655681437912096003249243092362441549796208655191555891684857905760061143109406411250786171855245670252509185887510823577450310676605543578845559967841447796873222928246906666322324361404257906048717847299059108867687799210459576127598282728023907283729053659002420954838691008648573356497238601279314938452203924821468863832695898944129356955396013578601914902526333131373221808356990114173822503428140778833956984876854246730532432219336916093003773306561429740300373042229661086530191484554474192365698183673880476680940478986795934422992605583381002009444535188688304418014235560383273769390293296537579338556241907146196365328357256589396205276296228650045101272359573688565810077003647734617163192246936541754593112168087063044547444639360625427170624267852228247558666166513943576579592105324809576405295271842843983955393391851896374045997726474752839816883212487824191439187353843946821794233929748714617186404247523855549100576115696650302762407245345240491358711691602995020220826840781331869242879231245495973384487129605192147057744958686148453549134302150238501657756277570993478644428335474063909023946138200111248149266895745366440225497622573280988915280497147763172903144680008951700865814586282514986226945815518725155733016524063837825885471720612418792549250265356950348766881944289021834526037835231661409518999453775423219914630166196256148063259618959990240037942706738342568585526105742450864123170741570762087876937696242587702274404467977644674823815701437218020068339590313709647785655827186112075678131414789221277173290444434895050903671877693846386121410206086750078455967670216705796213293023632921772006840815634536674191584675971308837344834149641625214728036765665001116435590561193581868247042495107562526714787732100755803755902694300034594078501273518041915897851496779409365250024121562439527925810281721363085336062483736569892078305913824554707580966814668877987253919396234028955831471831276705020748064877508167073739784959145926765721061748898913146379293254506247232220139128632786683509328253049177056506602420019412207243448791262768038271574678445114218449477666238831336034620764446866343309212915263521041205793613378338015437092190633879314393876216805778058499347566704286050037314767445648817838387053615761864560617287646600804662486564224131345159311825544589485992773866677936766614060536703617459763795441319283303763911583229884293234480800892619339838023315475456916796597433301891803097125996511252242382339828944571992661947464314737555938491227868275559536277518722863277159244778684179384145523291137388576738920627558561301037350303493603967991781904471319027586450124643209971717416961680314206041673824052495512906527973774899396331543505002682943682014903893426243983629290049439085247035767847404781844288055920851955005302671140020254184555564916061503891715752167171947658386915101273205534759688412480465838945429355522707332748995597642822579277691047547740194270408113138805075460179937019570397254590372268129695090452241411185642910909713612998401420923314124681847083745891272726613745750478828603953357240728984820497700571689641935903474668971159496847081268771187025144925939123839886355732640163307976123086273122239035675992913488640992158273734338445596367930988009532190749499495945470636003918319805328264433846302365434105851110204516448657537219919380787675519377704418841637942310401145227655376543212256846603608512566854153691760282837380021995705311307528913872085706301142685733561114258881245713533260001658748155422940048294187550526352964702517137715247458218133239351960522707131715428131588014623434419915497899209154103971209560640465120977627951040873145433915853461511398833896824679618742470339258333333390777822750492875489492104830095410248857566425945738632506427673380554343855667434594461616215592868596946068231577882900114883667697995317424210799871537025790356786401267121587711824746707225353636276593615882057152250975522642377136733726373458192170775601169912764456021132616489863761992908348193642196789756791686358530805103245636402271919977685488307214236991497198920175993337131269779571471325372824752923063730128563722516261495403840157309950055180954444679245499504218374783357444591836480273037040918917175414388091027035097230151732622617281217326459933462514696899161876626949755036481551582499551747673502701415634620187216165588597968333488858738372285204578660721963099506991565608101023297836625674525772627071316575722953495261658273922543808663009370850951551197608814280227786250883041275929672213804874547096923442193127160434318051093575729515017060507529658579893026426057320913697221419320626177371724107941456835325540018109915493707194257465791300623979183588104301225374108394868517281950214629711024678576041299868583241919527713633064039480903745891639989698701903615643087102830818373153787438857797234826930147913917681801800222602551530119324897991530280963803262268446648432405645506382013109892847334830485484580150854727322618203275385450671539839356256111781436017187971820950292891486950594916371827518918371104717536510231287100233607784308424757483560256157525548720723441289841672830926647767366886083337032619082536053905674707046495436280877462030030916742492344832330281700317992737809532183735483302544458766945723213755376192376643237664175975815099511828152261022614723950354857810132695511593770856579475104136443648464802891464023544915677266157491585114958724468288329323529675272801874185389833498579295169409425507532285246829245530273339359866288035968413311981253293786747696674215269674378570170437932478709642933998150364612203224936696859378442253181416435121069942276455593442948535583899103887349485682497321784191181952437093144805394402007996284701812655153342198020373507766140412842959917514674213321820919017888170379790413399145679009505226368102813094491017858230380917109863888486031388188383985185930135986415948827360982383537568996669398133134467838753481890798828161410185078648108692095294803061707160164269761144806508804227853357906456511695802483934249675666282375985776437676280211538909180258370014408939634630731119492629437398939961334767427769482024373187139569483352551428734588333827936205230477452324046189739172309126183170038398616177065783240209395508786157613943743083572857443912753271148618507489001575002001428702376751431854972193588919398672740087896338735995264711280584456086227283318614860314711669224977322645709985296432781512546853771065247941906280303432673953051620299418143218819175964491769696264347516101246243225006564766310466857341735951153493384999569583238456765626918203294351529296706627045402787588536766405865505087702656048048887158583230279401672793813931514194411410458331770923138949500150453729468119287686517663379392189632705381234841574722853147003348447733286138283238645005327105485516890486707268256749278778206817554366368572326086446889015958345426713421565426473986710977970720444553637420580608952296035249329332217665767132244781432816268457029531891824029935171721160119759282270296197937264663196877529601395287069110209325823444976835495830953724889352637319171434608072502218800880431689033751149854036717457128748606362864209841596009441734135938675543926486332371157313738917746940978324486087643767794081482794765860910992772983754238028208839635168168825631833504337514395297353328010541561536575264620376182571311875445539873539299811368055860568250711830941119032055771610845444918669305493086538100600554206408878298840166610392766497379851306657990202517692108969505319442681521630335690323197345345935240375884405522865179699865478402160224173436610264350558473372590581487220192981806012871266805959026372989159305974335861231165357525885511107252650311219856846529881639047331699493467471929548639198806945849734852229505237822468840726728440925613680975944688202960113571904005041773039211962881203708726060926864403192984356374909323907864890309613549456362649059662216373429496994425938333575726837970067422640222584978417319242695341782327859535132622969166612164481000610096642310691155166942678611382552707121577035016243807029071815973321834368271508108995330873483371271571126258905298205764048252823117994387111540055759520274045479503085708828168599716037280448908107933418350468832862341888359953988185494632465137007972335039074253138461981734267073062675702166512163571551579097666544579740227724747388174187501998464191734294572930861184131642842814125047455917003770686006983500010554676632704405314096820053325000053874239151245891173136373902549743416190786820142586072826640168990087151267723269396465589403933922478386924245557158977442794149252041410001722157821458975739544394441970727002367797399183839513929341651301328402604844330269750428135086396537508216281304539979191410799567371331808455070221863908181139178347204860073302776757211654031472763215434817967203623050958988878242156677321012232247780422137005935796292811515557266934520804511440979461946753837717978213124720442051573584080043712551038942085084645364087843185943322471244496632649979468586537589633005207906177559298085906366970155051759699543549995048810070699856500357373668236709797634103318360374985819334445549405348802255030917843188048810807701506355638938338542938593029050534837147265929650389895720256818457667832997160972871478437804207088461544206386582432849384768031328387378875491042595099965550781136874093517670169777088805052047452960993998280470375679738190218331428587670995069149131143950043704038041789713058818515035656312791242262303201105370378021801909456744022579211156075610335352338899583857569347068785024055571358432564405969411594062174643786802677373652676754877825286237599756596697447051306301150168247008670528444180208098555074949547824181860289897543418729774506158302524582148856947085295510827933025423372112325235491842956810311483126421282691247963696565207405377104108160317731895635797392605371003728812033062590261707217189120779258776134053389055946940035044384023065201137609668863486712586129844450783132901329965473664287267295481344340035576495033619215603268994809122550578810907709377384051295235306746072806103306894669012784894838821396786193689737017813452894827973345829698794152190784480722732464431659442613377159482798599954246290770156431645569567870294302775790402403435535144621580341580020927981735630484895771932687422904295584535677889515202118597890262007306504804878791205065648621603023663220514816439556975329415998623194957220391511815206785999672200315472824104749100389034707663023642245997215571740364749113536416047392071031967981230126609543041091976337320612026586321893687362861089269746190337501491495342773705473797719318600453711161344689497461004208203054590109529816892841324031734364121189693816091305186178030475551557192080424570939180170521973375885227272883069471092822434980847545023859642912982221852653931669284718074400694475455785515476757872157522729859240505714535372340312838475109180833134324191540217518580660775369014299999773206135433453973137132449006918207879164031769019628745750821665336161166957645173512547809743990335921207709564490573906701850717937018027291517669963597656584395693828512355273552875499547399158089974415263981728617809447012296283278687003203813879487741427935781059068094428180474756743998633738074747698498496235608949698584605261317278052527364353403710760774724872307969898137368840671118008888583989627808470420053443843764185246306539571435431141107308043433656889125503700121921477264109891099473288779950797953255555657415023352670949331904069125956424609256588501054224048150322599097547398122948371599806291913388154172753714379096410976671414449686715603950020758340820692446101876014241266402449623369060153250882712156193221358192964065453613476682542401026979136516478293773429624511226684778048423472788573819899944791127387217494895878857435979409217306843787803092509038189781633618221331778387062784120675569655625663240647752349363333107111269377638929618176280610617107549147893745845290608134296291498405367788013593253120347491866758390503441837212869044228476101283651373118453761956045009948759260034539314252597440073814520820447804920350196358098794875275486892749684728327141914035160461333553754026728848167054707758910579545214569729470091696304070087926375309819219981333622868367726704029082007401193982230893677971350006954801710458760474226604274937468023459284392611151145998845112800239530112746755431697706951335482725637698501190786985277504216001800075443583605705468968206505831712544581079351301280247476944630425628621548447814790292202228950295447334194766765331378349901985923868366681089135406157356167851299723375302744317650446116860724489913562212864652729519210529687088993205195180141514552478322392231401375766471632394126289180398605762014194030827240081306629264266089029064395437934973431779344982840479328472200508991969946960482520004149879447652055842796013259755772948389688584494390405741501784925537691296230813295335997996010894430975200747646568855053401206150654057270165993710098826489022908583965564571876803651482873948755942300541267396942729668645997790969567226123939316089310175819883840364328918210114903037607812480951462002435532713964442756106972127936525525725868438373148283889346664817110555011582869213961020264988110209828979575531879039571201420131057041087055628083912393005792883137747138417048701875075109329961849730776260206561445103399988272334162700229045603774701371018035583669921352486274534101844977150346079417872937825759742563514619565692025669249725655747321053918647297754702616105772588725608820343371567542240554842989076220214682972200068300319606025485962313579483669304687660430792977475328908314022950228381694679529579644623026438281212105941930776846480612535302296662310105187054746703682889608848097154282380192329053758884738002708466139333430567219521522791969102719433445842474064278110160386897066534068243634307197646158902974847876594774704908177780765067802783260022125050128488949691042591987884082486875079460566036756138907624911490685648177010802969637814670012786668203720819465768640790371774278874831657439192254027492808603673492365063239772220514128354344939356581766206751990502833774423520047198219748171075074975631955429111721358531168859663997252301825173776945638850853024690667573193992801620326403072169247622981660276461561148220155396853266112908214729768296476087040095927721084460336299851835716142889738681063510031426181900382839280081107350897511416352942717045996554716791100953821569000626547886694385284170741831204672625920441156388935833144714349128784573079187619153817261620613260336845115215455455959698986229464897277626266284717195714701911399710864357064683961357530487827420532138191419365460536238939529886474745689201126845223755348353680801038218135312382813831040212063380545679172786408240716834545759941923673548968344084494334698257660546971924046568060820821214032210836331960993557671325914500751812743714974860740991113190966006948609350145786881531678522654390088792324047726224519564369703425741413062817980022829424158802280236495752007942353430839596589038991298800789532584120360730966304362749491155684631261300551801418600831972851160716704585296341555619706651808149127777400084662024035924749684122197025170417753289048336594406925712927903945218958173461668607290995626285714341997068883161616576977738085983876551340152092217780277681760464469346186332346833801600623281896196057149644074807847610324898429826783536637857226616039847178761323335648203352375063335651093069136461220339622612819428543719025875026179770374462450117730709011495050129175300566557417475579417044850944507458231079209185322287931714098902215903276742619955552608045010391538749455329014039885355315364069891778537846058057056948865331424452126630025983875156372947881736346089156590514281476618099114681514577159635970192462077208235176508029466319528583558228618769853852799044067441053262086129375704496913377513364735547152466878256340365505923744460948276242174998724618495574635504162937443887958701437496058137239064098032608127885710780646674761500576735636436582000215224355609551052234445209138528192122853023326528074270319347559786006158586034105859100292626941587244271984020234556853555634230644419281971663670237999481275218732356274845820319134806362020711819313944631728618936978309512601942431727009610887699342821294180501502488327515504944918642589670384053310503757871578335935856878094611130030733585035491779678467673416305512292038642668536560186127581539495788884818314753979018974304145599949535918013346428456637148815890047922688622779398192898382740738551929035315920652673683491802809721259855096926761622596077352894410945532262791106198761352890940481176670440251650365897562164968856921936796559661524449194297324920944610460027450666419150564603823610376026633907946635928669466470921962256497741580472776180335213704281855660903959354196524413175534692595282589961113724128837152710935286405635483114794450989853501458232604280875271183679640441925818281012277023679584605041754703888014879400325167381998617966901665099043607399621679787933469442596477150288435686517949224759837300461135825489583916859199742011627772670395294566253235288896478160185116354664254810072567656747986835640270862308350422882905351673633050434054382669983631887114152822285577471515264820505281292430575551842182199104469688746127667895233383591928278573582688765232591240752848081172325225742490832475679216713500007189369893344834293436807555642159354102065529967009886749959941717394747979246921227499140866531246444820194278889800486709079113617655874905863622645704020887106817114523813620495215557273534779058537848414624206933878933775756450195513108971174249120048817973973944099087350724619932606524659609297207759608299831767349226386319639970147604212477220527290956242292308502934308559771292524339278435826704993241090613715491564068640668653211652019845867617385152536709637084928703862659561959247493343401884896229990095715610323724710353798291900205359266589742739574128995942344014966440525661016780596676071894094015912895261793430572409986084251233127656317171160798439121131412303551389740103475305945585377954529739584257141976614045129175941570152896983595207696520346518210651667091019084269985017921867664731085228393080750943047131917148576502435262028518387799615121476798384423135255900165851395770192514305932871238180475888695206418150255211528508150281209512227587762924447780567483424862101544121945939149640359539975722781183643380168514060112710921394492801584707680387458935013264290588441358016664981576766601192740019274217573341720069890935185345385215013315250679861484985011333486232957371377539253058912625121290909053784115064377745189781920162662387479540131377967578320546127182511179028454717185133180703298885668918660277979402353947672284130181010086909086000097506067408092628477551969105307489399790816131965241728589377552604242679460255500097798175756342541642696254412510095325462943690248138050848381645974721114047865512424849982315425842488034150039268606075358715572674799642386657664472198217556043858814264514297729196709823823609913135274373918233909546124722319696356610670321011713813283073894574990580750580768200300521086147192838645929186205093394693656510101613420469045853831807737118810387481712192659485243142452122817655448169441706511542119801669016488872517748059731018905141230317372843861266736925120114787735947525665432872088167029586518016647656358975105001414849556727560751649511393495934887956441226538749604634760006282448697789828045753379615268977306899272451916241826176161884731747415841288307563106756249534175692486097195363668747333237382778911959815231345159427561345928143266874051257047023203762086354305030656606643115677749968000642959209381249988040703352578463492857788108113623103651384304310647718869815948727692821248456063074032075451565208767350319490581816539910127098196080858977340346172832449097968506033737359995935451290743057852877615352067470794315820734450739315079875611993835119785802073793265958725620519871041624839335992922563104833116508005828657493522152009748203618095311322548369986760475700947347733533718838050215641006361090577709653236065027400056400388025363027618211276808716358581403704064148472535227411945532156058515405251327948241534285652963382379100661424311337676452571674827835336873084394617283427535385511163194299335212270239532201261723112647561873766307297398899272957091636652637168214686673453922597884409963022042878665994493800322478483832958573208455256441339739600793676325482219402212804461727112416833005106991353641260181923759141579699884219027248718335094719834824493170814222632817776923281126808479739501502024853922304744100757366885593369885683062195477869858445572836758191053441499635970047297585035480874703439435855830025617434519785798877164091174340327199990477084756753128370827377384550468438378923805219103570554381932089116035409174863702451325031776040325079260496294278535888534562529389900828777257789882755418382034736980834395895141811103532340464217161628128912114417379585681301013174896088866209953692003820960708906871199063344697505520702475096111599439453511792132695579847167659175620086323562423944602535531339526831928552144871300700529765874040012504978557065606978407764724320597284880722588830845129227521160982814577576328514756125304107946604950971284438950753759379189428039271121356495495090422473939725779159971417830318666424254788610232554487847606951431443005448321402627458388250882397360629849138522290604997269174000338691599560959737443991660901705918262524979234578705452717197092814719283941932168748414819486076848105381613168088938161249669300851250519633291997582509048747257664906631917333765871301613638366654698441997040998632835958647859602852812904827698327765257799506063467563907028596158252101745711992688509378943767054146508234250802144288470536168261392056134757676899822533971001774442492188307379052320265586121484582890489338291489621999946471253565704627701828914769897802171418946721217135190133337077018104197739120022433108988803649249618158626508759030090739766536337520791338999523038213924229567451111623351191759458346218675498343722802569655366045205344817356803654157755441366500059789319318714176035519826911153654864675975549106001086249733773529468169359953990004459568463485295664008374372325678339482230030687206153117533645755321529468265212461002017412312020912670575652620999775186981131262562056047121611820223010393304848780509892116523927716709520856069728963405558206922721086538879442180114867254787723404944943147882164930753800769207877260276543283142127526102269845243552587514861443127534390803452464592813366342615979603890498836034275935249021937919943211733527617858402278251336271133716956772173326296464496602249131827286716496816657429013826182227083428383562080500231459248340368857803771052586704134678413529003697026227387351283439062889535952353957036860134656994142702368688267597282038681399379993518494890201010329943608166848914644776777133666237989198938124509259599274298893707578534591154040015677761026207849347259814927440640585553117869651838480808561805627790953434811201680973147602036321356071471386028895348504880919284363931161457311112834470996748294158616528032922775081857941659116294922754059338443920744859704535954051830598437732442531305830882201081853319075927503846527264236938106667927968863506027867385913843995186860710997261224659460075791263326685695616815298011203601852550746899593272670540682458561025967091091450432685154052791079829963162092946751219948463513964071095960175104557155688773555443750691775297885817434549928392791730606871215461117090909466707160163914649483191753463285445897734037486454553814717717315268788999527537435822929961061825908363881608375503628824560425393566583771369476938905604553502854993386277728454950327619292000827630819321906147849937210182675703498613108960432939165195538475256530142224194114752211862341144051642583830871995661640832551986010964221012210362139584617599836697950877701459564363214364527177895175525477046154337896064165414310194971417120720055261675348519148785611831988624618001068676022991366153275336876689881157520940326728750155010188490522122070041325345698193967975448543953790918087459676682447950682298066906844221375719747282863595938997256785771116237394789431421495759673864544910224316283994347021376377914805839256242791902130592601192991062394447125677067241541721143114962340236053877999681906585075741230844052600229393015739097165627903605313303098725694186853573531679383580224447612950142682878727432051965471430566015521204074473198455032268382983295317089212520800488413872612911921341402023338405706242977407505672473501847666978372266056089626930089414376136550231700400815937730690964874790574683707873196028583811857308702478102967872192031611204901837369858011275182022087561297030457714397978694902932622726548723763965053565730815342213008975464236662347405868924189264069607715670859971368004121819446469993688709552184427428422864890043578648776115577941153515090186350839079596348965884358822626103677095974073143004486092107873428465642526920052177232017423982077375216330236371287305880843249414705953282021218347074783062895778276416304683335189238730096849687462327904504415596274975772482459892104528361395804857791766251934605067040428436907679673604705544941268651594938749284883581286456365176842712471248504688764369484440105126143910251262156672359606225335009307575814836814761530051556039324215925477987639771700994355444728276876469480442939850828710143384415985168516216849352043591895740236545489202688878081929885836866358638523466543603371635502401421247212201762511306284166785077413513280469691543486052962657885372914212174541918654463987826327134934622549535519650364781484335189460795314014656782287419539939777396912174172692172102140856252054654669453800782278263949312467247755865703356705073426087986904576278914295704918565341883750696284226220409503217742902884043912173009085023464668148770365284125377909401642053639870742928528219848118736638970955878227107167782255550856136569090603328263239570609588872415650072687090640133612439600016059933442937344087462041042114507159964533692938649481976989084362602134486011011003591701194585250988713694036401777963298922404562678880538071505296379877228118617178627628011167915197684853635997352759257923621641899927987560976722194252211968127266716488758487816092029411195058363605829952666948150855031563478116166625642653928254063094537967217503902037877833325297427936127849072485312946033639572554244060635210796812507019276699893249466883208640296007142154093031988263862848385652622921949261759040601925253325931744096797836345715713059061488543528831417864258698415616235094780662185798016712022947683750191995174223538172555790194009556876472143082306099402067874771330795451566256473853095657542866772899095798225031841207457702475111348621385343434058035405552910052096406690255507549269060326537065607948773722141943428758212369813130281854603402230606218762771628693284461243988119235728849712065665805813093049198612128719330771980700411419989176095174525257662415432114955314572415590155324514120832675187922432310019445168401016464171603055108361571916156619073764825231074489097811344057345066156030264583320776155765568343765254686436001554923619709459800011528381126159744868688282016875154747219256977128965222766456477708407333319311687116960850941068109617717389481645946353449379806218167343931300589269590241589027963930245644676395799181758193863889387624818656753075866158413280823745058536990749275995578132995760623837786623829841071846227247708140900258201759981223000314200586702732654125392885286763906943738077666434290874708646124868020315146282488625730819171558502574412878408766702181152816542883059327072703661622870498137570688850677174297898759606876456809349143483143654150760723658346586942229635192243326683101176785281148755401122717558705211534659589160439902691316402344348500130869143135866184280315796916498021598642783936517202776395055114378736205501247004828572147794670044078899070757660460954745842389014921639014762561764919787363947064176362207479185704577526672500632440239394862554942409922191490562337081374626087137290322912023874765317269849624719507734272493968330970795909037465673629738533022098675786066242491917240587669331803853018156144995257842935584223231409376214716534236645568212692777225822158999284039970130210893547968908953012721314133715689641832793005387304049843010613373458707545922143059072102022171780816634395628543010078306937540472746024346504404974291183490158315350087319375410314481108473671746781399627864163927240224800407609374659148847800148002389616956790804427782931668099906931314672546387151425894182099094840322910137885860326440110490432125729560716673833798927604526959633998734214106757783951142122513869295643395863104715592398432487377762224314564127471954557966543031387188795741356231845222351860345108299305150663522840950475874015214050296817744362646530712705272248519946642143146395968753505352414866278314092559041550516618221595270186225635482849635424783134004611936122703202669175220786517627886888967211125504874181731810964332757021429965022883565953849709785777506562029118854926956058693236640713191371356856053169140477006064284914058529873277898380585632883886601137490349732082493798391068593870575488151647185957701489173802264528531333534565780283194063357030097482740380667380164081486342492263420152568479217953341647020045753135062773703910881744448660416408776930421341462362753489484049989482794391142790777227910424524532663513185377508066852787076262778152105850918667004807255690157426187804932970572227035097204526329833614500823206569157565590110587522079236490382883927624740078111057073818045213012484496689901319257005580826659956909435836819852167823070542105846838070689574671376591623378438090874689486721087234234901971123113604781411557391246947623556853063960954065617008569605574810898153631535209810705062278895596115812385179160994764536316018969467799479651115648348730826883003306314311812640314038058759673306451107396201330501901599353281860749020518421187563129588357965259819875619276690462354487707355458168534541125070167417032386786538874975289051723430015803824971513219353901683624345213250836575860096443720373930767917170552978882238558483592434459379977283706233903794799898834045813231081731086470322918605646285072917205647056566568227166715827227692524896990530391036067104384882520274205762707750490238302290315351464251963382339493995724758363760700125673718329510163272783880700509450253097953127050856332872628493537944067226607854454489477735889767666669058548628461074879552414821850040156785578764082350172545087027082496054555311217562811387379310219060623049678033668326248388324564770880253392294820549466683041486576365499508334055476118300058236989299870629433553179787931272315810780280972070100238750256396694687804048958542334290494862366889763656903122833202758667726242902736053908502220581126140036596372110374613184315217251399804809613842613053984281594828109919721580823517795893439379969061378421743635801360715935560645542417407296792975179513614347092251377410034827247682281035217475839252003618413200851326769150326550780059822508681001959290282066561897725242430823330022259124514385882496773377762005351471022375158196105473413327375822806800900694023855398165794425063188267683656105817607536405012939485021116755183787037671449404065184561249184749151704638024081106558127300459138796954373237176065528229635774151007102993739480959317328831956323601895598702473303134834482120769058315061297975253957502671624652166923190268390982009399633620637654164331016803325276682589785452773345575971772919503590120474045858118782588330460738231769585111197912147427536412294296423120870802700084304644736249714651671673456843395300234928150404604875007360331860554409912822100834973376905495240646559447715796925711945979566903592772444842993792532776474090489924629463998062393750038822005002540530914776605929786984667878496007597507714528844349475098115790241749808588525109079675140322680255911160800074974170608191906361869507795744473931774249431773068799944653158078131008942026317316509518279305539464104170707010833605347219051927734743627315976714482586625728488705645567520223434705484456487981904869513997456490581613333668970141600194912473918630709392774747005685166207212074708254018287230255990070433625676268653062992372635308101159219085543726951164175579027386195221546379766786020366124587094551169310892371491420063628393724152197634103974486781962734525978139350899339220572177087443985889393837638071527295876098447550033126195997348865677958573867076822602445668886119693981787453079463668898523453586207409201835016479523874613610301480395141178356114924508573082423116724259272390730257326501846817336333049339459093513196160479318152357142262396854446869014378189765686191365853640674299837650756751842350452938299739389653452313146305883753204437963404978303205549755141362692860618880097547974225725689875533155310528971396679399425292785287746855778239311442548951378583181932693570043669604205814106403105935402881252195137728245022430531742100875794739205117648506902327589831268983790769365469106166738075007222752150225795413066125229236861055775916595554812355164061302071096232408250184921764735894326994246056648700673239977038003207818987983525526211461246233033266104207038258857126114287086608795869872959875257037659397427718452406903166518359643252256546077980892093914015823571537287122138469053841756398062869366639203018441908862770460189267706830704089204509744247883990805512787457083794499274318945138082888627938777112928107910374646504200498572808367377771151572847851202874837531900135521163781052803571642733115437499749872130947661914726649274367342368003806350089173964649463500836109428655164576865638271324931958265578964785241196958643513115488079173675363894372810159896039816122498932249673307027113136618249801692427108184689366964440489693087092570901195416066126473576072597426639999594631322483875557208984810502039600511413996410113213163171567446755395352393352988639059192033873483585580948078808927019642788631289089348101239893277535253381753417573596338043074976995005558284232960100822886765019451123733721274257796089400499076060123279613121570708292713575166186421501499710031713859531199999314912849329018408754885550970633002943399696666268738981488366121687113237193907507522249300712499119808492669086143085220665968945058710688031980257272833789361007957667361927706858825614528123375349217605495627897536378605448557016851591652375337755536154975444700867040841177575995492081172680836709772259043472347471708937971882398627494801141661173639005899054264867755481224726800300380492869636312941207066966643085714917869932857693630953587180176430688322711753283628388312873903424830835214286167514900288214680799589543864090317482792165314661656516153907588452511094461457606857847992236964667933466399172989024444439238009338340698453445732404628713310691715659727440499714699769606291695863592041178954258250293853855469673465482898672993615546817775935687083639708036817504270908961923956876557041933790535671165408011726906937744095344533519413559917779284303463708653121411784433189253416968144155806012030184926047228217225943958868424492695778764621333994392728954917945129897381501180214847640347009314474608688787543468373084120884210097100366239407589721925113115360672149505166784590480194970334309692093626515974045994172288918713263797906529243843818182930378416540909029259959114099749905764703373857261433110608144744482547133180851250483225856759691503170844231829680457007291423625295153046218132057221676256650958123814024190893392828614949262621945416068186024457229870750457618998817964501212135522787738678703186600955177571010834624814105112722450230644527627112505766928997823484482365293871902393983217231786239892108798956842884503409114642502818923793017324288172198510369241463436440496525630282945553338243951355381593551241550898148835878653574146725829208562052906504760363215884524314092210309023595860808109325091410565448031068654372310638610776769287556985955913180839314614864653326372909217537798222751024378693670965567276379184225664801947458487841897706472190793191338351565440994633377208747156051283321276920145150479879401932189913995015747291800466726442809365401205756486858191418654267218111760171729057999737615945443258772545983211029183056972867799586182972223444190013393075340574747520167710197111921987653043016792039539223218633046390962443955334793953238078494005888663999533885497434466733744110480359749195626480252867417510258339218817292528220139853699215731590952464166583517537347624546765822412766370634619795050553698014471663932928078023540193304515162763349813456903293667467057932768168669095443414424281656601186503970688579047339189004518647049063127114249108805750242238075242357350865262283467237864211705917103788195175706902259962281832939768092662754761224047404647638335474866718610072925755106739493959968746341595668048659609336572536458229863548343342968098052342579501142690212871873639027162676967217056153382567291292141654291757655810331454511438432753270354542710450420981929068176043352096077169955578090566821267527361508788565654389444008139207749010241849378227519655018620582617563923422112176986004566602109238842250125650226299286574609507691368960605648276059598678658846309373657916560763549316563249272214485741598267299960317903326313527489413962474025443004992761521874049078560009016757599114910300124730093567428578674662541146383367123112439960192107816085772393176979580612823500560563830038571138534858800803970813233163018278380211165023926842247890730925070140879062231539143503189508331013631265173637480598186008422926025566601804445624718130987172931608071219848171755916698537882370366495149643293494184861429828034880158164978604683751521713042103109102089303944903864890644463339373962078045133728346483438626658698689082077003060715783852817001276187106268614297196952923975128596155586698704070009863971373222968090783537384576403527511354842499940529349930475332551496194226994614739732339405058555078851973059425393973811852622225952819499976729975803618565067706744684306964247942538897755211209355520272793472960171259898612427838331405416328434894868289436894436592501526683130764020842795312061115944815698142639997890853912497761386116970645599225768365874688585654426878445449027765045638158661750377926072653620378801649611409141607969688072337834175807596538183602762697517810613431497304728879782556580131791935067946464449373896014651909048518917442564336390533269085221718319567120499656166398434332149940760928968510639482838569279422546703687904023846909860297223261803866433340347001317090917203766151236924296130950925949424263653042181363028636040899597540690116222445721562818275473001926381395850066003463057275193328414330146154289853689619752417561803654558591482875306457424091918508922540906835663233482704137544509601326619091788286487085349947773779849008292619640797990223522573886375073607756606069400565940338460837684299602662120108844024349282066100427092601274123820195822998618072886604401060341177692112277196887009789704486411339549047308168972249912914466725917668438399510107385027453680889421481473105323352392307476957132210272605758501922369833737607498732763580196828916454284201590200234165028340199453884772353537681296131017898215697507299488775153055273999501035545509137209186774082566682174313265471266020898974974386935095140247180847850888557257245025222017951937915274707909877015686898336450112101748737240994558214188422529772919076233411053684614018492249500992413605796983872728623168834053502084769132833980871007361760391363299667426899090573183679788251202318104555219698185108143782089446372122596457971194433132822423864946851243154919288069938928575093029618808700804843275273380116011584459166591885195076991375563468987563844028172314862819884223743101829218111397978028074285341300582344175147797049591261998784382669056783634320946689610430845794959993935630394656242124237959166070368156534554667459824654814605443131246672939201770158415719020398886237835195206660379018994118740687278937849933263744505551800903040094270750784477855485983485964190991643587110781866710020720356448319852741999935725684483769812542172466798147970591169621334564167542411666465542289267990011830360992565818946609398666732929930182524441411860159831277395768956070879394278296727597354823601364149997096345844468647306437033596778536288747844042479368170492412895286080576697218779434758380128913320245546840185546890807460539442422067717870617241621134296769710618597064403164263322078806305651087220972670762086166039768739401438139082187548213565052534504940327224662493845529397353360154526277363647192849509968023437392333955438440260240176500923403179754792136232375179370135566052009817088316187727016950614234656328620602249362739537468270885518881534447571401415089624260906099242668864889603048996878545500351602319749599581571081864980124715280779510033383621573756273541738880744693401696785691048973079967739586317190016048280822215587851242582101382119157153727887557684316620224311719104794373730148457895550171817175073134763310273656529989063186925945752606340476744843440991574159451752412785963081310330697277827761395463501428443003330967620207044988105841325105540041799120823656508330239842304843161172496662422125480174418173924575141270885945677537252871740611220945010045948947430622705691508800547884344384061123841931282750771603087782746786453355113176715652497373243991456773353449085898385747105509172126623844996180171848100722012644970436610859276129799778881429588656447803571147636205701890608967452268385347768656026708588599630347552850453549327066253556886767580965500784229294652378066934969498709338423517017339484953470223246395079865957326241890572311345050099203439948599283660153948246213262097640920152734069734484217512672539504290592963519646112567309832533044846352672068044768370127023441787809281624057447902635230580151424146533018454394663846942131422952002090350808920842675490248629542712134740898078916486638049694632915470440842332289178384157542253792342493111659264079093320944379029921901009246038679972777084846423707694383360499213517613856973224832323386130748801982789153158643225742927276580152963987676138580656233684561856463593421808963353463597202893184713797627602451508554499474984482723711446186989652259542213357498706405246921505723185026088115113400773651973721644234682594280024142633842993317959776945350188103931055695558680317583118319790571045375729066438557721080197035299521525783346220482701311332979076248855233955736111057361108317598766883530807785123689609468933856211823762015311350803362830293716301116081506494054462510217716005394109462645248547212393693121949714223210351273616087461501465680229681015182054125460260589791242709707389267128009082247135505061793661093647198374842458670806521613838465372979292727718086500240893040540367681410217475529870384474536280192519030194274928324705105090628730529210395000625726000042524873494222365123791740294033676283848001017795819421070076421137818769193030854294497471575969841153640172924974015253529907494840382304363573229933833636643948395963179773855814110800611992863509331059497121622448256458221513647514473601391826042668180189735592773659058847087020101182147823327167290460979863968811567375841527119516301976297432784588938885837474658013456500844219349635771611413131580801400170453604156432602162931226778107774543437615543462581258358166351434426003835188317077303832060620459908978877814583537851584851153765136523992485147722563676610451217973791627839585174436950396858625305722494244357941354149221444968507008635997805974880133210222158064429775494093721069760444993150564929571130056797389014911572673170870286371229062916678611315919930624488875911071720419783866520139188244651885319805051928524073449089984758918151416378036863393575620911006430258454069774882382186491640735719830838504015265213277526818197586984647969777575162980532088013508282350517642511222705160084290809677878332653366426156733956117785348320308317298393690968562130092257323087518970018271218520404926218923976999023711266632139811023034421985478558989416373732877691347727288924447958336591701514119556883518796276313268552916369208071543255084037661293758803520090569283355448424273412536295592416956606285742996595941587402365302073246890102557197116209525431178952561167528791973428011757112319108779799102845034975487639818436723176471193801854196947998716775709169004512508891497556603720458679597013873576302376319076880569900018740765033226189497228666817415361339077942847035385567710983155375245005216794896334362203658992340280295635210819198469357579295795191286473161270857638242221109535505357224011836019277519075039556202039515022918891417403531011326324500808578396191532271395882763390825569825008898112974625443218223010023891523829428051594781673211855295839205584558105801914873598070086087338239509232591088841024910106141775318775217841285656403114661531892361292666551051949713062964024521938058407540849476681943323494616475580586575779963866586375858098571936435917747508133084993515518088235679194028992077901780102591340552497908057216435175990445857781793577557822880725050577583437841572408985808888089122170948638063593917918962840749514924952719035717703041822435833400590514805038286457314655282449883523643491601073153026715845072527004173014474160690337034150011161966677125786447517139760714515318325301586467382333157225046379870162900206331764381819857290068015474077779852774802245827433836694845164591153502116608336740223595799327828597459202541879755084834543479949204493757484721160107724176983256990460204289359074856304425215536974593430848390415419757978189489804627399247197448260500008868043088428871435989350914400518440756123142449221560388323185757392432999806117819995951062464294421659105657604865423298670501132221724040715769504432675070763071654398394709840062972437794839134546547411363453159005490113400763743526588491716530027001526316239060005370959356700260014987398301387776234116257163159594140188871907916937003258087376491564302125328320974732078041013849298820276710636061912546661246638243512278447062917167480074961236148391008442438327094100995398943651547051473304397507635823023782380246263611486217547742846229146597950436872862897235779417725505207320462478207829799963841243582269264134257982169232806161844408890170329377499891870837081050495717175739512811030132225781557412570876746637425560801553631303809827090210252143116704287896836779013716870451234908782517048329251342284951976806481590735923030985838716516709586776227895652665387878898638617803961917635937890534559621326427337747215940055902944973938399523012429797136388767368180851980169928676845022304893045069318238435788653741158950753304244553213621176968622063805375933619211679986802685867615565817482330679494496576216362422218114441155367821754636817808827027218361227342187970869778063541875169489309616623764018315170391038659146284407481295108870918957387176871010242741557958480474180432709533803265872699027487722236109189785859006759191829374686512570520528177254398270991261579909099375959408674902182503645276298542995012087592015071713082771409892016242572910115695143056027301589754013998258137380446776195293634104402149277915119889276132112583349706292072851832157179131969810870889287317847985841667887449830172528334384114837545181096669411821550392321207258554357524261413005956458567280797547234579987209111635464953434265966639047466767462310208242010598229781960503809660777035893975398457025396327354773195045572332343745238440227040754042082942856331606231457311319854324283263602563129585694522937710537196554449856237297423798641362791007232988853380786761205212484938995725079134487327462437359789059823920525613939805002706259407858646038910254024326408506877555837194102885940795390409303227559324705372447831163976049559313273088686046093612517372797926956988000067310089229474525348675079641752729317559530222424279173992460736919551343630531850337560899358650977748228997397717471040292159122870561001696686615072571412008604748895598128948269024220108879151400125373267014974142291308964523339556678987272124270067371096010575404244532354715763692518234001486494144560151924574951051714819187425876850738396187569379621744750975000662362435857344201597877822883490690917466660341066032828417668045184298465847129386899002076516743112678694789079988510762605163392522318603298655670102706368137324683647988192121649485026438723231036914360592952437649671373410734586633174464355389994142804491000741423941383581158268451403802539537533263055463108787280726035952367071022770446370746208746788764156882901704834838712305612513193388105950395868127626210915930092569423991673864750205093801975319609028103870510106598935811031110579393198966379009497554121817526183459033727216322671807783431527006104567883692838635282453152306280991097155085019548321299509304132378125622290375864707531098308116846363938413193884349644738335199397215570649415639677624551630309941484636629867378045792463766862650323533536327199834537818733693242569603163702344142225025108228421198186389892556108325540663587764631446790402849482327158927751188259117315710824510346066696927866880625831777997179572119554808473207994136547118411661046704160389318305726721155950634751143399959862755089684838794950809040674553723773114116257988499797941738378547163342600039250265624495301242534094604026440888899834286460665471101297844141362990227783069271045743721981575562732406598915673701634563746972588730224260564102993063305478538302075970486520475016991471867673017615954088023390236577375950345970351296631728703483518361314952305875971652523234150870784283193992198161962876885060789439992574543960247579246251719760942951797849400790835013565284231960966053733442980052046759807497285959149932743777092936536943757427943787646389819393928435708237357408713987625291897814628127892577293139034927964323439732738033977058919512076647890204361817082515523016949803684587254476540344828429468107092940541179354337922451003394224090766751648752945478536345476234726873884329929622459191433054229912707003986550931568142373418099277170304372903277939932785962991226994448340915368952600890226865225531566156244101433603052040611305642895234459834738405252462644454671330400462528556143086830820390070013819830899092239672117639489535940031164858309116340082867489078003573933851595745561486511244545265922922485942987788867117249762505242236301228157799545181574069289113162527156450462659988945017857350529970818181556621663378137773611858048885585415256788317163483580341941449701955827407383400258735752152674003237310557191848038658298826185901019216779046008084230944874231886528117550561225395653640734199494126534950445594440397182076220584139588745489462230566731932085969890622113473056325918784006550672863401040341631476357239778959072239655484941424630800241279448279037235782856596903308089007123614796532689153700688770387965498964265893033726367416699278917849285409489354161341052134195698883279907653369635402746812095219532576013847930208756595287148419929801158424011056122268976064898607422948003948834776246487564288937025664772615150421810956570015281245787481485270077514257270671744791375932391794895112677658795642273508155185722575989821426125061473006539020441069589213392447610119396314000206744847744070602813806120002998552838704765048803999358078777162930931940418295990334928307293690539168748290696866763563576368646125461213527378284186649234947979429290563952601773385709031000335429336836364417790379211778160556822797476971095867095878794655624533574378065054606827257428707237112516349453291331029028064810514106265946333456989689864445714825492033009176681287665607851554115703796618436421915965967662442178354721194154558072553979833029806340966745695636063880982479997819456433219987144618256851481404334611332500123891027393435864844429753226605374694919915573606394522507288252757546187916732397716995924953749388688047234738592352594186504256267677046059722228060420357036135460899232264731229569044587651533479936240814559611649630613588895727804593660883312695544404898623220041080001597571081529162763610222105472290743056619736309347609678737494241152904906023283768757715267761762984255205720733904336663398133784372331520430001960573596120223475750307510915345390658578565897879156066775528425008328904667265877507385242906365096798238024356081616834872518214008020711162317762793981218667678013995403053384562233355179829922675388960406036683643300714618652601639473551841618941396343448936100662176665497054043628452223200030872389144719411709059648744259330540946335802250950070015183039902146524460588165032156970628143406421796267803255132024598360954572925759498227040742927692027689923613247596634446764256024604765041388144925538964437270620856203395322266049893742164876172750707793153339876263192085709032762042961397783148026854204194338421247603493607214323150669082693721533074656703717371733050363729516334622185116946800868512025567062039650630192058755051625550099431748481147476755185317315761911594723271065869655392207597938618433242174995563437707608705575575316792329658209281969741591225317012290498648494984038879131567192706161890914917415293227050824256863417106823076005214900927797059859660639995394345173596367784696936103356523354744935185852813847351329653824647227243734297178901020969395070823424254668113172372171050481075576214723880752048872223311159177838741707488525409905478319473561039574456994960137690412549353316601586628674751973068703097429493872873352017110004639991689159117147433247457141044446988549871837293983764478406262525712807182816271981571557836703338327812311809630039426568938847769053207912784734123018218694280568534383898258870916329871840178044735050783170294054493926845965422061213361629391762777306018080991463665552196133060014808450397975506955901831675719831346602330032154768462255732131449119024375716568267766939093208430180954925800365876526547526628988905558349420079704048687463145772214905248898354897626038239194698336468437784043219156061064698996359966013730362703729089948409645900103179506582769027423023931095820014307285827132050380962830010168752260000149739889776074907195082270961709701486235417065155021957663884240402487661308602654163920662867282618682453465785597346142154455338674485303596501009984501484613780430271831104655266406235180377458953086039383068981554747395745907754655074135358466086963558952816315623901083253152505786058146525398680480024614217600299897720963258113924197821547122088029721951298315948096830102814935398184209471510151175657888530610373872709854042922219671006968377142592311346299486821366185396688782846205473729130685874594792996058393977708459444439465258414027157355778504170430110763431062543548097003445716302079406761286235387838769333444801190072038041506802907509789774530146203838440195955169039012894838674093221139910945926391657641376809327291256844274541668881746696913954314301211889932731272435960543194890604093749358378720872951429992891118413561017451450295319651716694624302047935528850689360395662623560930849294030650928340234900528067308338259601840315218464052189388814739392016874395625459422415423173405509106898331359449967787207294753419158015909835666664261544499449215434232153395626785812839541544467311008086782010199459514232961282374068917640598147187892760680874620437174201804818498501695871948357347417999113463601265644064309066360623657578599898591570028231719355801221886771880236676588384081945307963394529658658190180864876507807100442067161817966192840273583875191205265439415166199619861725567273237568336205629262343493736549835490429061442215217136531602163035799937102801431310031809160408760860590037486275844596897864066045219665187379015559699866634981513858722862347525933078251590021905060824207393685367068075277511633030738363793283874938911515203521572428867670918196572714729888381279068746759872511302786962614219138462878952578700384853921354629839631407384225764005257207182106880898629041201668576425054397112286198045072811874165669146785441722532591523058047742943489535884121241664849181580417888996683946724771137666609950975553073376149671960531505237679538523237042583310470818366534433408238658384052657883070130054654714981425736022333571802297176023194930412899804356070800345230632081079751863429004578244165077449782219069529321314184155075682815055828372393525906270959609714664164116921679938457724810011736255394210418643120354010858970695163559338460732989013971260932793175724622325828826568003975374228328284061993557958641111854938273388558546883158366878058966842434723886135197687589694194439627440677255927629263965158177842520586986306497514471884751576478026321309696872068061851317422673859999530235520681050874508624541292385422103792783410616992092780548572152378142776329534457522681589687609942019800765802812399054107122216547626917249965620588528214177387465760118314295563922177170019850872685384240048260042245455841168458769154382973849185335292560047692981117019627193202124267225931209535023450049133544313556997321403239216729359662098115516610066050400160436787202534118756885843822830310001216184691808545701956407278250265679157658850120286966222883479499588147097905393887024975932111762478688903711513614212149849756918598959765908240587222193161979661402355031409171091346243473207017045812114756541317954062439958216792021902897167595808333276284781275386619439402943766037295728009358276801631097252956461874556220112294467310009373586643615360784715992294426109112762901565619167983215364586634982662691616847009029292808703504880078239906836278808646148521488864789919245607658619185027386728434785027271256320460457550585029565900882800089184259761501895119325024036730714868789245646004804124691684228879336084400314770440792034679317808122932923277873933585880839594450609523082815555090913246106393670875223103969012844165042264479796484637123259295306043193773630104586137443549601082889220257234926073412855658255598962307675798936910549107546781391531032838299463592510431892126437169617727909326774640435512360968031036517778400171136760286581359766406759743615977691929138838265780223623875215219778524815408730028041453553438214216254884127563725835630489847800924541276382766192217638132658616697237018453086861882362566500388714486620536893731345876771465727159869669739286456434758524095027093097563336152891665053054530069564123903685223255142729436994429307107953389753702328413654762682193868254009755418796064119495335497315019232183673587351716070624195444936717794158859274229010590209066106985786996342721893780693153288776093029601717721458522609875317033744933829054288856143558214722749377331139622544082498161931547109068563573130605157361757801238563838185641134370607536874833526562849242761999891911482844402320956912348261571616779958305945110480815630614114220760526487011218787277794019718102509421958485898535456321249064432219761029297820359205872152428701693929047347990130063963563391662795680515708836459118248979792085105231639321905515128145435573227311049079029501076172989465855915398731232763042277283887392551796665101745406994863835787252553551796808148501424346925304183986104189912910035431629841981007276102996592563634683317196590071362338052733156681050369491796969381918907140283566597039707558904992974816540746597311567940697883546529603878840531788932691965316929838820754222996730894752091219842297017047995983241517875523272535903292859216687758117455797098372017759120749889882213835930816392768163717333666047052762291839891034295245676154157855075544263258906805347377305816603886897926751020512682139427253252470202134661691389394449844082453008861668127054879129257509792932913506251189604711118503685113845641900925516434718839876940675515384022186111174207694211487105055739543153120387863846695543107375120385283909402046222871065136904200818282472026826917453825948779196876617450728011127922787904875376098627588540845606577893618904096290782115621494686193154894169793672339670357833328162031372021371491166916832553509171732395922589591376897648428884853506988133087216413062757558343229975051234594872651335989153923196785550028165272718064002913192656257122582675412579816674629103615701307677702217893821227653221791426736898909028624831115052955581367754249242092284429229990315187877626393051038584484154057952673716680080895229560934280645596176655872618313489426634932200936965323722909875416349124329866266613200765523764034249402799761791886699886244592182078357329363310837011828060490064294045739819608419960525502158544475641035951835041489281114304006741052000959935956579168694207365239183922131550928963093760547885782828580604693027609284809690594364682096650406283659021077620143890782533234655411808136189982507337460490824543310561360299816458625325568579326162180264086975785137104932395235060112481452791132131327082256826969382925977231877626439425766491534371198114609150052214808156788071539850200490228947439832267421743532479605134500719199718967519190680245812034406528265294800067903273833666205983584059785542166678136157057625865730636968397119495357925798972218780372226963294717360532756033009895778626191999407856732914229826498942448679102387761122720877618950105730020478451694666674854206598909504216855239510967688267300253798480439803497844986063681342933465163763814825213316753349804883479425795122449139074066431299705673868464845041792617600171328927206988630673712665213693725004459640604095099509424622607377061549611266271836610185906849482433741040528160956830703658707360252846699736629345398240770449348393864971406539144895452019978567703877665284741211545235386883861600675334632259886078089939727432879945435941660464752445413257892524044742753850029928670742208385481401791956885297231276703540977116393524605139077675948858782978943902079560604281247625979458430878859672247671937886128142090568805487330167468670642591623374407495988576904576879581828487626344141185291146670951894382973493946082681804527494314768859682024548469194008591457512821293689039967325919673454298404347583128326365391551718630391990903619454590589203122221143783758532782920310490210275701441730614621838005126247909173573088925560161813159160888215553464940560256850861623362896892784697359114989788483855172672082753125216668565102851730971950221542369932545721313570502476252150532665053747219062332184829110162279019904566483837439054879317924748980180005572173893471730319301748678589171530763506396955341789366897225528141714981687875041945501250259363139151108305450191293400486325039503222882961035310056593941123660171410313893181231820857941384443523531544812730399614558178611244797733655877313253511544235153210991302173249175870030658062530051618497451915293412712507304451526187065531958303005952723635348631374915143776929498186006680425898319515345282293709638331059985090956077911830080442551431312915001184264642247726139486764904937886069479136488877028176423447800879582565073125636388991889260546420233341712514952328818611078531879715503857733565803554196620303046740187064724377942151500935192932469114893736164215641388973124287328689238031046998938808405564658469970046797117701708570960543015282845311114493024250354120920892311308053716536885618259927465937043515193708276563600106146502688145700211222769965524673670203322268629827089342941013106204055782135042179685707413516239287886761295736213963578330664774202265232934724574858928519536888908226044485800782212396959463009287334755050670995524210519253155886472840444459701712971879297485698120198008539365096156275995712147534704605948885571259846489763756319180198404735546896178745415879552311814165770715453718861645338908876271221596357094748560584146336190980281055845271066451684413326805125329239138885918488887327174495674667132454515769472107311855057449336645814571910071984871615196861324203408969082424892139517858225681732245159968554583102296654059586145828960102188580949454221618005360129035466348537831946582749691047929782828212810540428008260161153981999848824008598367136346403633921248253102751921039307514822129319222649333897219545922178697521878921028713015015381580792861629659036394073124820126230371107349928324131006226902384782308259353796583933607378967454770545065757465813508026417346531047136214873922914611521896704258111305995571121377506097931519542294493868469609060217974132718787863996857492661203767027887957574675999021690802241455739789691740759327288110852320653925897443635975240021757941850191541749012060127577623798815395883741670046019847783839780501424077467724426696643754104005024402606363616639661190579715926293244481715663654355030894748318550597133661219727803484905954915334071475352866570176617774354858129511187328740801213774678331483327886391414854551378354131942424181332972417896582940317462043491465269211032904542346056151878687756543737981726745712026805345989452755675237309729017829675536941753771908907095057893221284451454163855278762461014169790354269914007257644898073205921627723237254726754107707705467959883450618916122223690386404505807183121715694442737884480040899484072090814359924235595004333633376135300919031060263935398205855318269440670397748517925302465426633974186043057093599530259922989124263012783676706707067505429672805283861387403467149825027546598554678041259977234905830539619651477163946353571613612405194195694829680627932583708575676876204471103494830256974844905248650581833491276709934593342517417630912885078073739497413857267323274540929392464037705478190625581477164441014387916763428375476618674689062210150066161935453048369290900154827765716910166562761923810818575250406643319933152490306092656269693754206932624498432465988046933152157249717708633736546938215682384951917849135976217252331497833886416511416429903055493330194270429353244640554427786199986612156666580590909730328262627631004656117206021947257928821477201567065225794705574132675626263529993202317051103822809437528769319602115768571038393643003365636649965029432024746984933610837705993640675461887231463638995274796475160511975355634736234150675304952463762537643680861384195018302067661265888718979858511007387307307961370166962119473792562053644018981100925489177867821928089265141193231656034619394532110519821294179616628285593357232746870623327766228567885062099635495645166618483705272109834323964709903820562793262147718438393552372754959315521538406529473650344775055336536122885430637924299685597493179366621620814172729752157387202805487144962956611103926533598822576929493232701908109693640701765072326797655640671242109549686233941794932190318157396350481924913074327845550656079212110474174364425080942648731722975719015557434834377163261486122796685127990724923057439218815366636861414487171205306404069237233024175473582792787667278418155220664800251102246879785540022928201587217144285309980570967264133237319041746449213939859504285322035295680266432673465751333030102298114718496574628621465370528688131930988489417405355181316994883662855378722554939851553322891743855594217419864909804598871371398029666781039539049609683152026980010235391549268302802417441876758610807096101919654876710373056396267029475415622653302064441375091677315003297003008190398072259287908648062096512987487534627889292407952119695970288223572662427187948605020484596671409274027567349536987933787901780614098675506235210106851502056902914107590469396054187635869890140885172043989553217363984585524588725065140711591524659720786683210207605630492261988797126550524779247666798349383839806781577508982097783523955706781534726066614354515268066988157314316072939072865762479103855159525080778184112907610872259118438857430078275388547194248243425617550215133745152126093775308382752155876042011595248500030294633614120861641179954714201674073932813004127321430513769731038021623005080770697124530522348108334248799591303773996349690709845692036397330175202609255789520134714516026984237557872815775975738712768337997761783579028757054346023317253669287406201507671858151881210891533654614809510248870439021795928781333041161181182324987629740975913016029701423503144563477524442316754328916891721396226788036718025149300749040097137682316468946895890472840879098797296022814637270635422243608204043701975153912419220179597616810935735116851157682546044455388687159083124649008461974264217485457295616479519196573438280727501217552923292468521626553312275784481852609836406961319673203725206213125610943828557368101677425293880577520002985761732795000871279173764738751782441223774643425073532681456856514612941171132766171536399186733237885811083715506165136774805433436720207554754550426955574657408038592395040909564612942242044779113680867706944028881358574081182222243757193676427094040559461911812867594529269653648654532999527075029288485264383678865861995946516350835091381719766863523270663959094974665156692122685048955524436037361490032092814979489751853245852379091575296218377739067511549772157786701812601996176896078098782933004778845129230842947704584654008820129974866695837868707169879069560509156623006808677335731850640064497655371765870591561903399573570587136071540951891856682880704260143750437148714947362287558587968196881878609557597937321626658418818599144042340288645369202253616511902490111257930044225189300178853087516064527449400631376914467653828522200873245927183117312232016898613389921307780789701359072128127318904361254043822360642797736060261911288320250061827136615935136831755916990139273974254457722209970642212519388526625119655015486579044289352182986014327223188754246291110969377020280317230471069369855140950641996101981937946233066769230182747414964824978758649089165281718071122172978526208380351615073656069608314303401973904143452849893499262802627626215983038753477426899786850542426468386067355544339652250185567824867162814523789366833814185047780420302623008445995176738466689062555314044587590605176533068949685065290262410285893447458603442542131009549016582700067177677871617719719363773825227420465288425433779844566847924929516655329557159461809450256687716961144231731500375936268100418147335125696649573371345905513369784388007885963833252668847785333504443506109848225971556543129668064131426372822064858128589823813726880977442604823950201521849705434649457166142911615828286733516281123875444501235798212593491129733858389748207950175887168848971122409598117976694897888555667656045626783110422171146149995206384639506300941198172802984582197764391121444267782769042626729012069944004375254680598948752254759559953250633665483277811806697690384621539444013416182182261188098607230516952313577350287182475965983860697876948302299545402718949845106431228300586572207946226083289042072185163657427195967953790335338112741462195796605037170143339049332971416550991050629144599672548644866203395840638268117720434498776646583521858001828600796879285674528763686097118088963433261527829828259676859089978857171704633195742270870200387026132062336934082113417603497746286295399514968462530185690005521690659341162213806528277458619731578825545107583414348704352376235846014278523441250843448488529318345609149198145323231962897412419454499339723274989563238922867157237687210928602984569607379382791427791931088961174027097105600580141099842144485887137219829303881300532114882355806784858360209211775370697393180652831696285042972606337195290309061075274329415034120741431271721271762015972159487572146376371844090632655288572224916926438095041059618658320505198360401400371521525117617263933505724036485513750049639467800648362984637458953697349740031311842160103587736794755393560619019142148889599220263723629913229844934779815948239378841451989395936546257304879266597362788378015787589585774127401269775982022277855441124454298644213249936420460146980746414978991911815898769983558724917869495482904664199928407896083899172231976300388978193082597406060305630663022769677792318539808863105941883423967038812109362398767931637414221289093774922322434731613915357098783321492385647542103152241570300812621279136962180618438881534447253812022914305570605085259758320300156284605567990144248582407043703140630095915206561740328687751569774032922004600187976139990692495504589455595350116058729742596889417404923763554499925080451819179262821418220177866962232157511198901820857039436217134152478379582932265661326585781926055029127641007218553434723867191291945188642075704303479732895528325017141120535211797345011708619580702340368419540628368223523965600265174305970064489077075088382209629283116806128154745246494136601530188906585091590903339853077611725890376989469502874168440393169541218292251901225140784877232599260198565964841773700438941591784686120573104287836459314408996842853047444121881571978718231844377147283487277234663773091756362167195717379192272979976859677764866869615644732448100445871566247229247745074274376937862438286856137659755199374237452881776417311408086436983629525850749604308150433908393689375757939936902567409497975704707304021688707972618604636505286618318598430587300721396478447778277991902894126272490801057854314680766568388096729699926500383643981993552071786175432490052025823174502292639008764227402943240564136903717194285687730209743393859659359023086389710727799706212651857145042548498516015737885036170041610665350045365054271737779301551547712831170984536349826979978057146999784656618835889276308373516201268938067199061356595265571866000356858584825091955134225967784363225550013435893380112266756103942656425016493003000423182923406454470940343512238006275372604381875259495168173530019746600205758963486716189348614938155540871727644295447187390357246927117815754552270127278943440591088683515035627594572927529408600923533654540217761713568957112274516079831583660347586245631156729910461828285702150295989517839243038683891812839175334029477375519893869066261989557061920960466949529912877718898029458310137344559165859432348126756873155936133036647015575048059088069278711260466182950962831093857232036073179136111398557377694644541554046092752673132118067602010483294884822694405929846052275408164281701732424522584459264022693099215749060354460519752549366462627502903766375159944756557732871820181702969880423531673036900277309809328483272120846955096429920272828908675051911824162337434059690621115188017241518262319033605338888639002351095193779387900422599404942493296566135101413646941658502975464954623562954919355321271921180870860506877134364046060879069647271583297799658387730831657934153352261658018998945069074124892683504645737350519064661790544529305348519779819092782163285561714426851456451854659669280052093307694855430289378393022581155395558094780268855983605094134492951674996675311557247477822627308370266254985133317065129510151973322376177350885228571033436012133545065863502621937791886360861654486079817144625081899893915075315722637329288122261679891681297297387633183640390062541474843476984332363958691416175991102036135594321154872962503953588233953844870410321282078706761343022938664307423162746643065006785027665964238960698602995770891151024220877873348659197001140144046974478113296587640452033775562859006515790657501649121966764799392235417257176430321885613132274950862263401364504613721394701933956009495705739981383835956872434875913393229830311725606109788123605018542976125073816672473783645839089229474359465630782520416504429426035797213931567874208642728769770937234159648486309839438009738362301064555077216980864270161294949994912050414077973575056508820076579344115959284669253974474225411112104781935272314012589442530444415662078798498367667210575363126390052076985274323603661745943075569162649707376610254285105668190615763684779507278790540006175496804089057222774602340969142877532851433757509331970341458850175508426654503779131940731530642590779995196799209508812658386386081148615030584077147319877273819781439108576729570971926845485198079232484360312489432777767441643261195143539653734115029548609573920139062266380271679429944700451727569550733185851095817549831206752542627246054853183418303799613007470201920805999486038369758494350066205699013329499484208166255007513797696493153466634596253118956845127374558386222770824350047311079719390354365531764878437404075894399829083929463668981666480756893138434591879895755248195428242958798150227069581138441856261566525146461345794577882179439373312749586834902371093272555964306419427003968051751790767743304669336691536869209649461786092164305759074020033742708394071974939796079423348237623418302544543942114440725063655077257124081240710425407090624926537599430863516146567285350232066139217788740773294303429703481988100643677402497539594836699854449089874346053139793968854682706335641287415327237189229355656483432840369731436488602514541649313765590988005237729941711373722226659801135367376811645266333874370509289102068455843916627984336341286176083929071201335473187367307173133110266320415813664431221531626154983508399710081864504398716720869394799821174327595131648500994271678979708957600445014452071838032637442339018499882700028619956879962586519585574565762427272484784902653856149748654377453093057048434655896575167970346812369395927428578841953680119525993784368408342084253401636271349001133653896195600798734308586308090740004978379515734143913649912096291156754160853024611364092084358335253826379003814264489197119376895209018016970316392255638325572417287218384238087924959452911529626385738016907475204510292475835340419936960214862219556367316565345176683343659524931442554275105773678132368796829933796935793815902734616956231324269572290237077050200860993179253160017550336058548710077569618134217137172748335180670639474216764738206351953801813017547079791628379071579420665024565521527918472162103695574900087916690930129584787147421690073419474391025616646283202184299583242737334495933742622019255491214272263827803221051118911694332403344969460694248707145068994122354849790708934924054580345100274454508912025463330520033816768188749509441159797783811618340601389761301359551751123618196446990734503390015989295463845494780197650468540286519131415078751622751071921450058255531029319824891357424761056560621115997176878006490374034940160381128955352758612809011780982284562185222063537865224747842051407955525572830764187418949660893983698999035414522852812373231817280101574154972969733812298067709692422781939095209630387139961716476318263242550649181648048233773321151712839393623333861939656862963522111545360261016441662954567716113713402291493741274285065730436464487029068688098597114414612549191347893363847997215478165077957322925614205669610592514229620412562792584973338657351125093664566102124095688744130893039137031401335518416943449062959643244743295878107883030789161244904338180212338964866035589356193510345667724265806185839072267297446616731548003959171824379830097589378171323162366962655732312076821558573691911689260784455409485515886447870394403522753222331387613093181465877714955047256278538962348366841253075485548700009679951122434688808732651880201786730948841784581051420095694629812348345207114874235594715597095265160165721297852298730726217326161355766224580633606748930607658204345791887821251035083562014725131878452728622277791054395640989611109920789118747316763086922740708026025514159856601900107853394851697746233336887711927652220407168512456240005860733108225669885723263503622657764407864814544821789626919070219477392329393906409226614215985356044372232266072682068482007343799898063502311987130328076196810037365106134144860546076435501284836522576684960250717842515346741966189275575133338493707315981947461706481537636935177595612780887073767777531862626497210695198724371106520220784428902861033937806161686457500349119614330847415106948157318804574028215705148886918964102959947892858993028652980852475605126060129976599054334109254979184780351183614023975042341343055759869978380033653175528865817206966680549962812434189268155320633889135860573162394541480902426398447260726359629289012769054508371217499247799407694517936712329960687688481230862890955261065637878386896144865804687239790823897809807145239195831674988688572302578842898509978544826189727939241228760698896832192562669691506163510382132894725703822601551681624994712924523286356926973085259313457776892400579224623683893675107231999929552623789652846031451246594684531372667432668400033854360340648338568111298225355450622130702924748043169911442158486265341199299618644533859018265365247222802494882035610080887826129363011213878384823896797295826825167035781108873224401230130040338250737789295592543999720323342731681246314553137487033087047412389587202226197705773757782927485911729116496265738761417967586962987699828743498587603848209401347451409138911230341199691408044947663955779768327197615667160554289016175443273809407796567472056087617922743800665082873891858319983179108207646540623033786819168730815330288587232863390714772637043024501619916801191232338471317687852030388033344246511046339783804155881576236462254016869715051119232348591735025986411815930044518059680273687164464092116188979571571900606682146602556080070588371488824537060050520754689507105966763239738954785349198060642652433735294270622574761534830846326189644319195003446582363047793235125030779913233548550186448786030760865358442908462949078398531517419233565070494226390421363887223104649125296236342598345505589870599685160329882522310114303208002272967405454793394357130961730275152148470178041270836278338787697229989301649321627273968690377727170079929506440760505332368271266243302926681373148198578510495067839944359393526404498490043873294665118503782718039773221634394403727392538615289846702846860904038258215510595698169405890368095510326287762894857153707120255264920194932240462603409520179498225957040337771935016648963197217372198810442461622770679103091995511634828035657992937544404730146216988904968300720087665333130406398905651607828199179583667492371437825175059835785796163469573843783243599652729328947600385022514913752076848337730849659783855601197111464688493714622041957422660675375751989134405021863241264990384672251611333182794160335487623952243381134791581104386167219374970505280367498285736039248376300007922695368653276700429866872174987072746407691752311728514981185976853361541244858147060717299506535729210537314822218680731826268405443659701510932342142413257038641739422445882683466036431320861973567943352629038993396186892692588433702463473209000375846065835371260221750741688096772865278643166229265026877819434374820432346147565629735355627982641464805672578492360089519651295191746492384503322818494998652101204741102618404297485698852279760087597864281480130388477013169229960265858710001785741791593496638595203422343825638329342086936827947398445107703174600906907865900306588829590126803856095806520399417544299302045663893641358575024509423659403784806164641098457240668454080574959567055958468891352959081168102368115741384643511837687809526902676878746532509998859667313282665494438350724129343767983463080954834985331699149670789306490558196201229660392097170002929242008357379100672670494827343656424114216879605318040914819133310456969472056591881092356979452908163821360482186691962270727942413899180937596278794752527563342439496105045450882122501066883959848340438134470810064578973250208371280010449663961573734947414731903035381071070879496095242723304597601127681772260933683930124177617537952487589216029500042862915798575603457416607316487939628126536075131575078075455848329893369112989487740156418338136708301016910169034244072028491762676611534369646683601417981129406321830076389792617870513655749258114560232649899736086518174728698390251685000727079125774408908427971872952872594962162125371726046595733678678439888322530312625601413190372015300465552032258947194811309571107669493418318091536772688773890871233233205115082904332410550430795914022861477558424448319978334182196591970918985043861054678199111771717020754331327499611595496958821709405512071200030290744713401503629792955407864841491166836712645698813750382936106535866911855809749358993292208588607449022538987937034069102385223938049327147544581553668596886452516736035419649712472002390847899700320298850121673565107171077749892009555820083871363407368476677190262020385663528788858251502622591813006686368358459581623250209498143739829422448390023636474566654572633871920182857025412915296255664412513932547643729723820261986445015164679226176016257275014824383460996346318848353897673470139819735253174115422228042969850117246100395195146328952708732291742285845531789493557161463375605697131368983142294691556131298772920505900669439437388054502630726915708510995622412005247596248596086643095408544443474012245819319935483041881604467040454230682219854905950363613871922214199061178539042291205341899229565921089692773317835202497829801057861736476852300876262697851858325867761360237767717666088167425725232291503648117058067360056034520164880086841820222804631498813877521355691472681104362685615059001393224202795950487916510398442706049149938633277562077843055267472868610481121565334576374008724893374802900377565329213634048746530016621855987079579026707565171929863523522785988013269883667748738582293001943681730121734332427418449365936853219206402526171153623085801923025897337843226579170338556836116257778227275483265518839573054931513804597316514419491365417277593835883997055017211025857084301715937561709268458245876684460143385026816441178043419197710083016563490654722881128348297532778132977607677978428539248006220290528553733788876472910648446529820414199160910747601719404357789086860741692423132755293400926355799538744142046777388002788460274885933170653944399748352683515972771267130643036757019291272931197701186239380794997299087637474190981044271455054996338910505518206910013222136661515238136328423947867629382027496941865116110145912709945800911011028855214654469245203877144425143986665692913581382886264198056546218876101873781422247220940096769959667642941055944342829784024558581847737648792584411266122936848058532530277143888315058028136245775262776033338675077793261265314499531235711955449227688803049656914427924810255126446123967476768538119180976675051794760155787363478532758535308380332860216508797758730716880321482086243443570347449547173753504388110150771246147024687871142892549245726045464409290039941814304231076090238290188042372362516797243383726593086999478028455383855025043379468063190044052528430818402151972399301618672307076462756282127088902585305370477605981844071031257919908319204610303620221693802274717930277083359003384345775646371448336928748875411029739370827709946975390937744628769429374617537511141912372229623010411172704354667944597407913682141118022470860485813389975412778210864326425468036599307035439556184038111676121143777575341881151994554495398177109029338391585181204763935616041042167936580871132068645635061778753534104196147307515386062304631915717355333439835488782632716653641265844354745725858078567274061241094561169057834145999655001727416846716634500028168076676853851476360236426404851511954082840781315384017960363234936489697212056699090343049511314481115570284008757391697208671539652899180207375184173933155630343294681477955135955825171519499111159700564711349833289089673473515108022932028114888314958909213701829641114363929424986899773420718015791935135039211990145227201654345031550751672198853199680359504630371545666713559033381687254370336002347570439216219367781554903420878601139367776619193685470570966965713811655242819751115884567076391039470385186544684854226939025513686650192857373558757844725581309528190378117711656654844843379154521050290465022885785471084631876760075713295442663774372759825459140446587209300779963162691427483603790131932824722802108575763512345256920599256203650481845316240191172741269122810329279476726313934202211701979023305935813456354454519402585053727361673057180775663052590827861576216091990355776967643525742836403070204683983048694285838019269624657050406780028864583738963219960606766714370465107590725707007105726721861262827622691616046356394577728781315628875446500348550475528869993835973444328074629091451215428541104813719730874871616365388835229848255320593978408046419388635606386932082896961058768577985360432639471172094511717534028705135188161840115044750934385983356190626357057750954684559510510122946327837187498725248893546878569459692434668909699696230016267923591556912019779128271420796983534082848849560534054055030042918017405611074234835812350737748643344028559097921349726880299906193890822412025899305744082591147300168345376940176212491482316531928120494223963963226034318067917924643164581977953639094515101156373068223977086070828189692054308178279946695523248865164908465418188277299153043854197661810695806588316004273660015659986254202175195311492528235680188457734268644840847199071250422543538639368165705793059364685807164841987958133170231726389403961329870533271035139702751470602840334394690474763607736451314875226552517747726670778960622413234886793347562760039990165181781703193812105537642105251843004369309542546580466242920576344957161880217681751361226748724342741869279787604485798526385647975677353893954039387062468887073800767910697162695571322086454570813192802067056902313882676337660759297874593524875768280548532818872827542532268673755998571690735314733596115434091915727172605726520587043872112002942533878144429864497480065171436108191610143908837143498736726752386450909161996603678913973740635712959059735226816267177287420115512290190799016979631598973876098031601549905234334079264392333777125565612819904502305616425666503954308499979844333100435332997993946080181288848102702476905338867885426554319752847104740020045302776715056051332014142830339532036706309267531163062321505298936032705005401343186248647232891310003729081289757079374935719504287449523729200502122355531064985782033413100838001952696818851056491408110881915708262745122624364788609771124197199745480869091778558327237172409372370045256633956581461374383358934628584478409646787683990194144325550608281019988516859265888358073045211236275832594921013147580229607847882817732330484182155339391664559273266391352989535214010019558188699623775969527002620693787675109903625259423306670912681599413913786255100173872992868137423050451095325637306721413439642609003655231599735451346257618199600398488173984252059096178483609167156275800815388909765519963690830626907073047696361236712180172375981804704805833223370915838814378161991914958940662036691826147652283240601466942757773752821642478733375707621406935866363624836388163704504294673437711057613657634550240649118896958823464700545709868894687319799860847140991043386550348823706901371300477282335290975366158674641080256279127090660460473292915792764300610479043989543096834003156011223367694507427190189379823016130316661622131884476613887972869854018559491455585143256443195602808266323376434014957795349365561636240230079283906217313909032837367605250228402869901812862441219085783393207505963949827763707980625921017024168200297016465811158270490702297385374329190993420689902299274983726948187039145008824087279536459341618524592485565218038553670182485403867520349052371567172801432359795926535424303871531373645884362668709854113368805944112524758431795141186785658655390811714669503548741480244272198376523594859679844616669705286258583512855525193605168980256199258628417621808333800208774237864369745162886421134308265010430382065928898911691624334597964221215425214836517112687785015247930864281207795314385757656601640364916329368258857403084628419808177286653311272690110311256658415134617817106864043438741004140488281884946884533558961488253377172487332572005792597351309862567949144288875717447766662535597110558012690482184398956995866302997451993723345099058409339557154208731093562277951687214545008349094191612552461844467891370427859717945213870304138055970419602052898367863309971063537666271350961928646921172806120045987019164221420774573896739243585810068461045727560224897787836825169707244931174654258904937890469423621225420269559949367527843737176491641324382737414922176226784530417426873372669028026350701381978753498871389834269379878123133891201852640580129139492130731256070153734293396421553715103391865351519875144566980499043409779703091509220667661203402009060792343543241519158931101840242508358937707515469928146278129516342173717722202866935528628487557584585820181354114141457367539164071750132290258730242185861073337384067045035629104834131820566830407238806944296736305544848123165481973380242514616437293907796862698494921255429290159757046396834250764257355482974480303992340068750956164591666445247041294534258084823693095630702131380984399503786889213201958606884058356321618538811908271122226652477143011700466865329244505872333709002677353680246638003062105501476945184721323253894666083455124146948715361402666803770791436282695332500229289084904385995246089218951947900198499084569668906780418755984219200207349584036082921047519603027173391026336027967988029964242754228306354109732218063269248228606505589473058702338746729286471725935180505696335740027356896125037753404575771050413170848041203898185461809074731900660056155282581464091101626824415716555417474012898773195980926406336543400945439728628119236906968135331966215902241048994835825448244998826119304283271967759970127458213715362673907651726471073298223533601061703224297096215523275872112202352561039859009127751229036012555662828137092147832539767993744145257832686929155580598724028309589677481709577970933990598110379564414541492241596842431906240408939432838899900237881492835053403201087315832571246141578580339572927881186194850650601866393204872246175432527115345983461491687091660372000293340816766380748005357064484240558474691193535755385185108449427594350850052108933251582782395880605265535303011858218302047089107250262841309706623372578546870322584096565427079634411748355528524668148258458296182272529081945919626763451635522451587663030324669276034841503463546399721817661842174032677329516400819182325093605974789180495958981363583424452600346318079676493522204636402267586297294719960746178337624352893819588152609420844906370557032064018444195082965449093454309721125434166320569136450083082305298828181914623358268580325538759835531948796835290017230491048553968000421385062230893420966927400037361375207107538310234837475454065303427731766345730539818584783453266018117179853403867036754796743325077633681838735022097199881111638215427623228481465838532799884176800958551934912608007973333115918849268127857055913102664202350456751347448461585027662325806204634937845882722853063028385914045300296344699683846971451328526478365359579760242238119006554676820787200921988819525098534048020176951304108377271513362954055532553229317358686496712551252763285485802515441120752059269166947864076834679571614791310992282259919123495369473410982547225252360379725246124518234959136247340492557130562793131677892058149470993266551724768548399031568137436243973885409845318171201219059571073330691527333070405888253313010261210886920128809355376332537389824325099709297139412261773454502074900325671387182687453184348419985715036258730480295497594250734618180406331746720278110075928422022444221529574284557188213902546273475404730727507848620415903976392127777651190839401330828665259866775387384444531720645643201547750623997511665199308772028924308938139400003376772848376316420633854064835793432695652686194339299504433961629864036366421084405090469806644260421457334408669255120772175478261951955706206705942592348647296728975446440370980863116410293942758637511920183812357740195644880149846246931317307395819776211812979826874697177501174604715700348770508624294446089201184125050170104468142441723987229813567980818416107671609213576634563651341074186310334928645019899027906097358093182338140304903773048346695390242740393636429407156774696107304615033694569280832124184407704625102296383818259094336922656707651692792559551923975331333527999330947598414810510911675988462857137284780315166310705603413170885312049151827281135947237585082362217868332086920016518917082293624171239409447444752441164992935745757960303426107773974790547795597626713983522378478059571385289775482696482145111536649714916370184357887536740780118944033795651615672880788229382073888043721618353810807246645617807854173295867148644783824385716753944546866021229216200908975029535984258553177487604272448218572515286107698717591394835580867644275361706228466095282361155958225744085327963687776876417951622664530304842985414542086104197207182725878922001961805909074042997318697060068512277186767708911314757463005387653274435973597159205473033234140210670377751902103776012988263611480571537113621796662424445579157177792976547008266901457321911632625724058557686795233630143240415566554253484384163492329524479045503746084709336564150909413036568243673494043022439962283173475115495053313073753927059178912990478007891247663534933267461920051195931349162927604351072084195153211455099294632133294934643356240207655694781122416878772794492141410101130335795314179490991437236902417366233419792679024738971077837254976846732255875707472734969811672545629459964071167250053263659401540768771769691431349661131791614713772488926880875339249904290911068620729727506511178023896121680669306078176546676769267725488922763514346690393244739613230491849999504815932240758467647446062390188234681101146095061172625747226931335683387821557673375357762771667588229557342841696502655359204668382700069217364976641598765294196219781562541334301663163625832455920583588442094901314048106068389710077115797194706981680716682517607073569382459303223082718836523726898319820029388303238494178701790661650079480751606810717878516809624262437164850205360186255921746423265361474896377811564018207764248632449781316106495534394150868529913967680011299885093359503660387884228353195198847826473141483047464890531772909772534573442593399045350057149458138170041317480580428185977006383452117135481938327166345194102267041243109453987588527404500360421959771293166321480801812161187702793612452664907581851482892635437349054818249702292677963158168183105251948597361053121630788937010488952637195680486301712425200863028857907275885978008799178611522547298488259839167649272292358780029247069344994939356484361630087577925064155839134347891447815103480180661645047795963150594084828788908724284517125011085356580628961965114318359647577295284989396664006355745837626857119599992549360456645523549836017364889601169369441422144407579374865843425158970563386500771598564862421217438292740827251426212099611777648599437108967625421444322072781780443644807597318719114540352164505721836872176568135436540335516033922365055139459631350444203181820117068460933101425899648556468724017954992200530303539930664598107221256774805208227406185054364157514209479758638496722049259516402678387926095531091623942009042795309369542459361951638667685421570163171355888135201532713872958731787913084905555490694082456673516724979853907707689858823447404592957039801491776117723195045800900761034689038552018886365167114427620791055120716683650024538577371436826455387316617173306271208832696341888466209240196262082173126000453219328681489274837734021016321344670985034521438582965883841133481495825598044895717783452580781690666355503673066824247195322498602857714845967060864215257063531572498037944337159817255041449399094493122756256107971903326202469517869771636074593394745749188861282866978291144553718981320352732698985478289161769353948809953951412283582745323714610617049148698034639051129175086673445461355175263493730323928720317493648400522435667438271513106760992953054295138788945767773475078460775188524884683281389791000073260996381464131458303256704456092969263712393538712904705591917096864200965137698090479586143887374648791170869732841649105800545446143851266401507141534296627701110346216476053531381799704272619431206263136792279560660655175004103436254477634767287577435533556645438146690974483976032508417524236936156267233070691194999419746882099360931657317743861641990124206967881712735023258583292517798731043313847179407350532443144350299641397739709580069450984464429070687790676812504301605203832657480169486761056830209613552113531355483394225774516954841155352194003175731745320864957580664575618159016150771754144022788986067251779809671767844513451746221648889131591623582299763093715071467744974580373284273624400257382594227309355152754661242910103528819881027383400117061696565478936837992719249677974491453019691319889074384998751517014806808188612715969315365152928858703615188813802148319379623007339841153478413030100507453751983065544365268278349158628412004450746874453450062909252331610014145403412503531051394508102602461642854175660507212991889757802329570364136286621235222232263278095167253247195764450225174094103917312369108240594902049551481968142761357594501988737432916653591568570232328408469146062154778182445654912279847549941058196169914442041309494539211709411027706652226923048937695202261412698621484855734604587155363171409038056284086677074819744425676630053571825723578530580738312687335936546518023632368561540999681712879152985838964082722339328108221919626052712334428725652452736252618216317639188625720775000283028366212103756650705866536276802719743841284229913538717188280021577821764804790617274159567841883766058487677186021708063872065123265254958323595567855405018695449539668441749354408890740881944535227302428701566742053235790149301135251000952258838949471662933488651968613570840229296008799015974879587428875182520201319971130722747467499985723151910041939616956856527019277460092372522342192175512376562764906205374249647032931304741453299047691773172053763677821833141855314048593332099883260211797772752762593965374758602123140698586410272338747441919821026832987406066356310418282882843409334698774225877025383106222573392667401232487365123210305068111831977204340159030572213095300862202365951775875530528278965198016524904528125886500949023182163880032276946431100319987813342913587232018279626578096286628711008685046058720224509428459104448065219003127397192559604372274293776990367785412819723723690192360640741073341715815046946310281536492237215333093833420617452686632128196071853760152835443653233568354266152906336508581631793651939518403599404900846440741060203526135960799373231885053549359037896908731651595388345347933159299764858601695358775620849280191371035396771852096637528596166370166447999557504997123605071972114710175485322060172642234124135805451048734877911477710780406586088575106317376645727520835386603489402127988714500650610867172890051882763609293030813341141396936794475883151779558243654940704559860599842037528343040902164682841902100208083672835025704062298309215387153778581443257557789514491611187103591277903050061326302178170396393770924503251355147102342002580780272011420852908470442530695636275943190778982499432377079735887131679920166888830298052728788095672433240756154699209704153365091712635673887917525364547702759509970546551852445565734068507546018760195797121100902181109164869939669145026708095294990263281322353140503400730141909007722203581995070527725331584571260100039909321994429033448602756889090195670513122407260810476541342789023368271094812722374901973151515796984615342767722977197550883340923014854686963639415655538677437092747798921683914867572297528796847710490953783271078303820645411723098683950010908440969918079033383453881159528033844582261114132103036538243981426966336611588257584494272360098680359801703794897292042750844140559497435076691380805057466589179059108821977954341216373242597417590866551561649789193527603969963228813165010654902425054262358371751858267197815952407961166738986373510008978975409858960104660393002790697198174376595935876129829247726423419170186747361899528652607970111106232678827881111891989937981511447280010585020939114822475628204514693478124719105511348965538377309948818184109274473650247802555012022189619448142661499207355501977037455934208965936457961475280061531884913457795935122513106193983790821973623966843384332406732952083718852331350669147369089401920042955526355157172895747840527801573792439651044281828248687743057941352071592601539023840758030322931316774746371081930724787877590096336833379285348331236555337387637186633714886339803194539501651137604062037824943179087926913063866632275753792902277360669785065695602892257497132586310985356785218941808938067434099897940115798446100220169792737382653154070301200799286128784682065715972464541770314513293829963079861242399466275425226171652129360988455022078806872127296535891293484441123652298307664057003798684398282078079633400108416138278600199084940861978151704143992617435768010546947380604229375130614557138959943268780153069328326748811122945265565777992540066969524551649108387637099678360834610365429373215913028138467949290812010594078141554484392555149957648947109979594733663990700652557798837828161608891301360346254279315248352895048953430268257633046042057967771628207875146633365908523492686185151017117868353918652046281268966122541573071023476134530864248984612017439499260272432752242844547824962494553177865918596716091683242899805647108224521920111958891207549437414818181660292943459757087807267153827163201631407359379325303368275480551162198336947763973058368228484095591689495864337314939957446703460457709036167511774037380080438900509622117444144591111913265020038861166620526009144579456342808366420861827656868208325828728890452991839077927814419918008010863978773692423344462334779989749994252104547479144739725547038807189681226154368043579424248870843053166683618816798915906118984890558832991977466573918474611015001085415208829787383320422957693627864874595689886480300978526302965067464011249678482062885669916593039283160202054302914435070996226547319580857858208412404603403085558039778990948156394114345460989264264154100278105311904076668244353860963196064980707481326967840029123546084274621895470817081384791723544350022782201353034184915047607737504209881344200163941089986787073295302067802880548763373826868465233257855862368837943944890704308853254554676402712050676149589845416142673700054137002441143335425183034487665414607154743813070614419823798690909858343823872388762738894377803835788315522458411168405137100647946553141627021097752592487214110620408615404108286055563103465073514932980455517125403456383646659776677519342250879978035721973075972119389962451596732728094550263707358172384015416603907113331168106335847074654934467670701081256454621351546037337792059763054514379576148337369154301914787412635046583115895922794582364240331942352944208492681076705833281962566532428467259285963667725979749413532299963354024374946742727367775026647415305519961317446199152302895766525163980910280336329555588931422792531857118415526568726957742249928165866483051029934491362539255735918642141917200154391829924101785373765735815151112317356832616902509361604092876334173931476098791273807582778009341438435022182146892427705487269183464043188383534576835060068129303402890531208462124243934606610374116550472156842759749918584648530178078091153826130024989606816107977453289810078849235371808036179338002236802917801232373254900750434109280236597321396771411919984968358348326569604722986464641680272477268341668274275162878653629053403056488260211319762860654436107794559058239589209944775796415617890392822501017215039690134560849867347754251466057053311419875879351225730791421087697842969275779823167280920034170587269109174505123393736826601660703449362331601900942244715637016407858585416421577541111274685336924917411703525489221077942747738252726049504155658503907852064029487971475063391628481786193687341902358789724606110028062696000905938272554416512412518310292308460317004754787728806010938198477112111139142409966195420291367606776503959494067277689006678145882393127625224632898481371339537734090525640031929434012781871226573199613771982658153906108916987403245250514025771384535660871874377769422352444897338640190310714937000165631600913204486338083353722215704479206345270328139417196109872889251228601325575391834708002671025149171310605111173687105326543975752197615206114151259914118820175305265280614078682431562496893369289059171424835485845766388558275564393890787111657325048444742184064889396095719296873112364444054813135242391484753499957096032127110689389049964342601418064756099718536453154996462185076470164883682437669633719736478697907282197252683002333697167753556478289945741774011487428875672015804850058792342269769314522959813248100292514437291578666426843467036395515684308131058743901217116730763566705778852683142270129744498828060721472134705383390248403082076480529319883328591050641197323818904011832282158647477048922165066189779732034047896741473081134515541426066207375523778561756425683053751454332389786948284463389334794273977471859642949238249962340593237709688800652131866417029834886210321288765538783513245526972842784069504217856151840605508421639835986780715111084523087315358763334283696795732861752109488033254062357678125765049940147619446408396977995617320266826658300299433400465561056549209316291520284771917480071193647392306719585950130832350071082153779897022448342781576716884203804162816092619240723912895759212448082354051906407844797373528084669127978754445004763924517085243360558385538084890779699856534411166817849485260601916333616684430855999232237857365310119751557529530240611652135999475640579557947930849476115260425915799039127587156254719739177019360855820942765877546887709233142557462716448909251332327414624163853004391913153363482057807594089765319105864426403726254906672456705344986435544663480533099611644576792476548219386165189010543487039754267891067292031913473870113845247520629009199514551069662200864005139805571828884189380600617745983915772265557774048136369004267145047800208784145395024319721828303384956958464603567369334148592315031000077749516525639041735367730928446970275956990834658697210037278044952915713276093099194502775144863820076530514909026752088297422802679481512457754737097062869052046547920485210098223057407266449998252534421460356590773686138024125298937170518602551368296710617918337012757222227446677090166794447846255325677176761171119108785906527633602374230653035938220817043399243297657972636615429268630243135512121810557007126201881455011727887797827898879914883441974494717554301219060459501680673031850474489359362387654052698145494049019664048374496628752131313317442819245075978734614668813889554920531369513754650252473009876713471696955942949264784178961650854882200917099438030083209950241832031272503311539998466358791026013776580514637398775606115116282534252663306667996028750295744249002202338593694552838921742192262095746435695545341720298282264534550942997532660127581283408991245946308873786602354119988787466670030172413389039611581628355443502130884735869500239264045373808787735847060074946502885443200719907744070264098728201188285588070434047985674652784344845983906047054714519521253455455981319295819528109489500950757774154998087647470916483874829294860728785802429928277207735548859003489634762313438778741657583198603278101682141726542589896132509403188403850107229066473215101706858968183440663070845150511804313648564373160046889149031911499655652751959463571687103877866779227875766796690724193577001262284056516553052102964686633708163801592005307808861877555827956001287271895122507415625238780699557585150835195642981689244658845693174568848896708527224577590531328597422941903857105278906598404572197167345193286180951108716022359342633688246237969243935761876820755195640025759887534328675731728008107554168179931415944261691126427663311240409094722677402644995588975788236933032249960650577925226635312547242684555159567278550825614380655168232026840860234129112859653953952777530794644046603899333710736254362603299630119678201142381496717749501892698578523780843186806120907455026965311489010036993342755113791504323363659542205022277693728729087370620435146910079914052751998521639093852266894148011059784015192629653565164553556475964888752736752755349468287667766075632097172582955208383228801052351234605691887980983640278178852783366961362122092037055354504219079408646067981842187385791644936110119979511951107290680266933720491160920850049115697334516425282680313628262819773449511402624284705255659679659214959753141426741497047911549632728423526714483922455983619485721324726274908403047694466153278255863977880474562033552453093397803786115127771179312966953786063131155486812720773530081772428263106904931887669848887699420290101244270502642803459310008478181879571141328253992672794684544738871480772797706797306850244939833083946696671760320083240284076700635972471461734570171800158342621136195133018999083102622618038046277432156298941960216041138950585346928199658195312750105411544204194496981278021752341487104569323703510362972196806436228192495348722498061921926012887057058949419621089914201297721643700873761690998371464199609446297857751521022799381370703719138398278119209280762008586003686864744448401376732320355374902970060791448918912184486274999824179044663142339490470519713560560948991184716824786221852011651892153591165980539964470462877339968536389155363418884130744401871357306977287782933063041537444575317186068738867226171642852856674821840153162033595238534075950267836006444811088001367421076293586076028674460889546997264183970281469028033446109986728227368299987293115199686978292064103799837946224025173852769797130838819349340006573113634508056410570733924015056299202302031313521668089341417362748591802553681592868877616901178157492589519023028036880885899820547496172167970750848962796194356987221554083762639969020478516485117041351343728686002471194055839206395131097029501744000390615008062301112802927434650212395626330853059172053096323697727128802667597924923537314870346839462389241390114709264698351282458786352087229400089023532036252277699777473254496750136778576368844988969446354462222749320039257252021848194568273640838355749483733239032588372383103851106655456660940637713018734097517496897196529689914659392343600473497452580428124073616878172153831099057001100868339559885144899246350931010499548845351172811147999773192930750002081898076431660498389461116614285077886972755543272228762548472565712947797745279964324966506852769989030637319004855153981132178400402032186045673617243695827380853009606370537178631034087831262013819092262012848389459376949904431471732140813381041743731316371686640417574346196312770823931547249241346822554673539112557825014489147722347536195319152660725862717585709851100529745658494257102529180210285381778248637595685676818385917801711176095139331425324666741541501351429395398128078069734619085130233674554435229294734195304797768198214577853639167826145526656106191569814479531153997512468938040914472674448170218519475823068112913124877701805341257638222139444983312453302894429277616853606121789933419122562344433898209445899003141582896449530096231341442510199257773999008712752826653031452493159344417306884239512039188974397231857338808951743056190466898652915657741931144409688816549800170906942870550201732498963310758434066401993013056474273877825711579983559823844172888110308568195204543382185043526364365327216493163336656278511630138940127554120096157574546163429491875009215205551241792928687471871259650554575234040867041689221520537730411835291041182377989003691213160242484546747339716411630558347700639515399676184431441713127965675637807878741609375755630864642312305196929255517355020355737306056371919453452009801370532648826361422088823653983457835112774845232380843700952425769718456219115870148454470754720234878422302374992870363361841436302540847177727465047425317229338593469841317041818351114628290323602607520486593974565274810192468813480631250685352655912772616253910958174482344813460699009712543497148247379550846488125601920250767482998198619372597737259139282333906286667170010454030461445524087898033627774376088927324907882316208518597691965418834658325126061705128632979561618237052330295109869508557666474581748022279524536977209802893798718426949058518846175350600476243448479555159432535523050746646598227535603428837073283912599416845435602303230538172282739391034680396944977638842215616051838608426104134465852542350471829195763531244280551861954929645478923879396205353185812259558994047389943510330553987744594140312071101037243222516443028354522343757543642780715908980318135150477454062613721095298000035866673957488810516237459207144226591348931598505319373077105243597460355360859920183830794605218084462248359990078700254101926914598964785343370525650589557873078405619099133542996166203183572469893299156639885537322109808302523129193050028954282931897273574649065574018045283224917151238680796463906579866024406014681484244059611837241871157848960997516634827527139047273708517534993145329198619464089036208536545340030202212171744147661720547186702352277004392872023639440913576666126170436751119783807884283645155811888805562701634048627322916189661431159984139832187796133071357515828991803545924936185079542151129476845435424072790599553992889521096463478320723271081403605367478589625794456797935763497384735343744802899907820032049779077086105714560314098767661090467248304765324222257695874606515594118061908450939138129400803446287069648821537177625231291751296770051410955829432785265216500458905348491336289179541089847067004250969440158319285859870972250824555803469911462379018662572883258805936233195302301205104354165972726125876643411499045603249949812738380446014345852756091949654404691465141712804060324473560922790601770122606160803182473692247766341084942038777058406830020233601503604509384395488972362386836666632419221035760553124472417327318596884438032997860592573916904663667137987422037201547063037109783346096595501980158635801009354866914191617860660753113953356109228000056215348556706058982956867797607928956925309066362560183656976137919823319521861378356156131971369447445510306560548927734163276935953733425549811368341236772500915165044536649191182836170972410260029045908352145523591372901923229338195661494384947982681892862530811386900854726972929677424927419725961861839007140348491587309244519860906274613453727526183985776716909752860705297282887362976515797675145185528089550232649950882683629496435573509246130168478437301100828544295508131349834495060195049929731659686493230850146512049575245078587289908969149983399245370606265282383653187892311716761718816714802588760332202920147054683141602948654964061724119535629174690394903355642290149366973543873902348260425279324998247354439759366578049303102385283617615559494106401152070117664943307374361929691517033218150225878798763383931295783161180415098895471254694248778238775096665984199283552139428370168309385065051834252314533115827423016975834199838226094825778096280889908527373894018891991413040795356400794087177102363384484462564235859218499169728984018229045499799356498155702986591847345557536200404799885792630366547273365756464839252263701455266174752189512021673199692229536905716279653398735565090882763743592660324682086300541420337940210818664824527492710377510185843515328561181700429880771312140561166264235575537940412753727096623271334517090556617153486506419393579503683910128608987136819602342219103376790247105334875505621224088490246130943324356536222134060427141762473192543646141814606623497314750155237424614246003143032600344415749522862427489789392071299852156002050424283794603557643195761862869726719904201205598126981993323069982632295036460276701105369070451642183576596082755787806285910905354212317373413673019590788429272753725346631642776108598427402541637445911114784526886154546157772368386022444787274772603925772741644850602739251939049303864186462872698766526435581967577319975449184510797952531270988785552497452121272129041142339473094938470265755649915106491983050800322508002413384593979035890590185785033327879793713392165739327467776042534161165242509230939532927577624767463175057417640994363376513195839091752148742839470880720590680822410426456857643107139782349281403230837147371493576106195099375747297643556112000955393647805106907555461949330864972878394339912488199570764905003809746773922786503104268369043545818350572516018904489729627708319167916297876747776465034349661766534483668860893211781687234197438345970793202480505745513223925778567185070703328668135375001483948523686165971465830514911042334108220032750486612724431743605287604192920625072991060979151852983922114817205440056558609816254924537607278095054202873448198270555028306282359911559265565839448547719900656514369295431639928319279343536741981463878567188127168806273101646002738655338066270847234891709458313819161719072451970668898884557270761180647524935717575494096131520742232223759258160645090432782362278618202112803230169038993797457005313133428760570574544239022575802823347628744540662134953597095695189995860960705944661679215476657115191126754636609626605712360138106223291246356891339017630766708331449296891473306814760592475113638661548665214596019499221487680707601666898668251717994782776544326339268363195772888489026180757991242092265176341253554823160376270030437362415303349021903227010242566780771284248127553952053936737255141481623029650239606207439181090990959295581494633446795327961276427772221426900335739010605225255049148231855826719374803291735829688464062257661871202551538055563163775317728782316222793685597923575207039888728878246053035777567847454426173897611861275214386074788232460492067288813910384582565825624727062023036441560992959141630934314554126251509287096387719882850343790791434317521610794009689386436369706737675342788217416388639831265934570135730603584092184766892233283583234150823304228858247590526666113193691958641338571098960257765248590726756043992220050646972917089078095424008839864060273727675785033691783797548331256430228776417622773073312106162417908949285762174313156849991610237392780940096112848505534826139011063286619975433129629515133247753138778846491372445922725105280208328706802245578929888013971594306069317535984364364325942210150006858572807698386165637357208421120225853179393366544220898152633092456932788195594767088463906181607450148893954988850081206059917775080636621104128238704110982941333163935611506598407498478074981430199408019545023461984768264143227187773465612084396907545602283375833032531215711415085498144119375954842673009026133421921650500573307292025661325561789740406589849268152611474674306078945190298072218135885727604772346957517079338704031529964819727253856270645886110659309052640008767154686533505059416539798111504524071264844667753632711108668689019116573077484811431343539089365526886536277014307321714229487957039228773660282867459382251138663968996523359791516389137387666859520772839542977106237343322240811738803208488899501680397417272835783596208457412485274893842560782247350981762666708924817088139100181899564132939243890102805273228686008383229996298254184621862418178661077856257023770497053014209374550998883404187091668412593965717467397579818465564731875555357171846099071269177089378321451498402777653168240287960978554475745801127149735370452156830745243550590354589020168531615442530425949299421036603071183342879816287228454528294068957714446306869716139924256260159377605638093693842309260863200130510697471112996474461493011619426433792350029148141063996443055191123943179918389805686257121035114442327954330601518381909742824937842513525467219700497092453371619257124379623673691080051315896069857806014531789546330777809435481424121325701302966044324660156771914457753581051536847406235673867377831416943379813960909933333370234454812912041255959485175630957044453261343351676423142405573769756113044002227179063697342788011685002087440746071321725892414752104664123962666082218943850690729056050125770405556996466711658348826022446827700768063847546623098571782625254129742710142124469035959592682260731298215217979632168016538508775741054377949159877311218923567280020483175166838674430946188709031764620010092781850511961938099029315435089322346613689196342089221258033296406579368377515435611313106558732800552927665950753675283586360123945872545364766068663710277369128122984757184418433055399822831148892524654501762411877152155329703067159441312373263284013870143200148245370604689730534289368319106925588612196978372945352035203757829519950793257282719367321950986903128489505926457985246755345898113433713994744709051299430293648591389509172575154116123047398678007791483697329751262481664254965215279817204595018581474344981358238045436254740302272596163115389421714978833816504237154767591803910061781035108573492526830883174703637083892129073634706702692830701699403863352310021466306628526228887339937299871818437859144816031775049890588925458089990661262719734346223806761452936812880006052412465873165094226767999936658437581041393190079419737621592234686499152072970217052988775155327386510818013192972855172406700528311766989230665398298799649960690623349787915353024089457137934487744613968599348659826113182465802060466019968285651708663071127783125727695883486174601460401525345098516544108724311020173480099096578548640863852500983140825613020752800753678251869108885191564293012317976721713301329929248810716558421228421984230761031347006670218385491478888536395276224864475962417795118654890739153265430943568974480528915333592870194415913719671100049595362634771680408542821010620602655654323723829169071682631778648439343046015449415694587128584439089753658056810326485929592105521673721218407523618159985054489838336052079404853273451427241282005804172620076266403211225186816869509293463640132491655627033493223582280506524140912688315615443112992319774691737598554382201818665394711720449950393442278048184200028808138872453095075593714442107978544461087932563946590620223315695115284529992665058781467375331811518242125253841125050696698372074851006891030852880799688758143215524123339308942459948051806023455239376890055579477699431230145863457510660699370452200261935764521007346537027104961324271225291387019055765495376290513753440083704710173619527810055956611303441700064383075789743137115206941962525152621467214244998299776367241923738083927007833324265335278474342738732752962003940274749074342086449443590863915614186276538881755313765847771822424037343621469397320230026498455179755122372297489470828698745932904419213558394192927712979923072222565232679799918013175202732347989403371625503966669084106786964175197742142059068328072229502737789039544659111944245719658426559632957225564661444202603335498324890731076001120043153591546494129661848348326530560844274412374264065478020629741336661869367565617828372897473346564887883631664713251997822293283267079050007731235649562035993533038637441292110623751651320705067483800694323673889173384477698792475132442434410430781488660121491513008798026614868343655493175027341973444011151700667049313501872765869753349578226460073197954434845888077004784499418571984972600289511368173085359833129330500277458003326364923980766789429617728521084565190467484230911118106573244401183128234926893805674904972246803318895520386344640938560841232186083551096794968196801291491334347533765640425658523563787698054300331449314067426148939205820347142890341317699088245050138601266293444258912884964630371309769906884412789075176956504164919342428260061702767854971549208918517518255432718598999338014938259200865719617271133597549532385109405595658101612284337714083558779023312616100486966050727712353444651623768942166069957475388144969993779818693774687464888352295093936290007692215613126700462664690840528583626001007485655803645779872195883083031784888120682920882857535946943591856659625746936254136379811792343145598602427642945654239409371441477431762171802750868637704463944314898442828540916347701732444241112373533166473992670469426748464410187551840565894048287477090394108910865581212088480094386575351018077574087113835133776587531711623716318093670717531546076027166343090376028698712566206632340956057021308433705614651297816473408611785181406543627619764086409413886358135358243355643631131816447432470195624332323449693432786149944888231595337962995693621805042613843132907912288937589644255860208712562992694908786919937530357385813883428192123658841137883135273751239652865272444827533422839562723624697400518264761381212225273763538973746125832445155103968184657365322644620909618597789672591754748978735303809815588632000515507008745193002304115926234073141247301873539214672050588297736263681934389252676037186873451135731670892132599657528721622056639413061018510825264295551725509462175007158406650503673835304582189913655334569055322762371540675376311509744433291703700011342998811231347931987176761523263335187240161132293912403797227702041544589631715666166050934511358316473037260629433792002739972810095501354859944641838474303366996526995135025135322716102906568067933997739198166662463471214324799053706895340973097867959515506461261280347700246942564818503314923531820275662388346497623884771140513793350113159336345870303514920237199464905789404011030033381808862460991570418883909217410924458638168476124183062210055084501085423245117021849189375697318813828794763657830246111985165676528511387879812063260561152537039365556696775934567960357923279472663890331059219935364115473725677502943333459594326891785397419401179289721607953595856264139568179052186729300067770881558981914707886703597571757200906317181833982573000096525696594861405331985520051346570066580994208428021896432804759133157564938292751124607188070066344483021102436620338314866647637270426011998922714882182142828408553465778207291140241930258327360072035050610573875117948951213793096630310843548584477107083598228989960174811725404193311146037016755254587760855537170908789479646774788255070447121696761830145047827929888746032706751768172803918611325180849797892245260960471707610664415238224132439579596981453071875759188037070606296490052609082798863080903481391495297807850113804144382814144447067790461446502745159245336357058481748440730266042887084039145987156816274988541850909480297301000780760339447025064797241240194678422724281889260556538432704876607175410988289577655520446166359276973851411739971653381371198752834415147220102066442119476725830861938016742284752620981024738133557881474410833222936211938385844791417291872662074498402635025118633417008154151084174549568227343064838020422933491565477253427112922111334979296374780852698571967917227808111748759995793422400117612675349549000825427978984106577103002712434127814303259722140725339380589558849417899774898201302480858408021638836333324300628740853267032130305038783273376614547252751791604928345396454854697742440218122431175639168614563316148189553503036363478976687922000352037647200761794251304400393634451653525622007545115304747495993165994661760472940425489889785336516780064315491698976198291060140812975850071343973011680282728674621324291170685509747063219417240763986145749959292011026411022404940335376259911792222052624162024838947980679323847856199416072132699241056339198625299414711484252041268029353282208808769638535902680695215816236280929967626690738791950979563930306169991762852035711169666784583199944972678169833321306274659949295026959957956252828276186803564991485037561206271485138828572981801954667184649509662238462581356249570904909952529032949497993468346606789452079538850285893046575645083539099443789267078303297215667031731335416344213014383916548893120214582257031559284655882711455313922495238895898392573022507579039637959596390243997620826455803112497668754655600166106488670080554221433549182584535023465096144466445514344924755536852899792123069660388047658936396009986102514282879299103562835356159758206716183053224525041708183057212205655363311642823538379545328842409523509929044111749849832330694874123802631639290692601141059189361488996171363966738539242244893202391006803178478042551092658352358496837334398802022689696584448807744429543001178677610883070653562068348684366127531774536296131739733833912727671135155951322074586131661231153130075057465891634744307216339836966026445974792258316429743115324831786451525688859869504070046326736999051765769287136388568711149918233315086075226615064111613683213604300161441587553657166245134204389256696436338369211318841856330391930899270771730483232442700037687267770503572890663484306890607791257196448287937912553814431954567336162028682106478189025251550715849608645252239485656298997540383066363284298397829297178414183789522751197531849411710090510497409390201176484694048575999365311290628451351603012171337845930080881709917728140566825502473379127108659764769053743567489627353052471104635715012399072412941281643492218084462402794167003423235143262403539574873011331314716830807989421885116060164921052635470463754060074617991204736753897428089150140452066603182018053422764529011071948110355115804566094239677397482090879600116719480196579561814485793928205108797495327038488470445717838742564967509769188566449545171357714678868301082513851553282128162219883208031906236740500421218003534660570502521465753552795741135314384328352487509004718168195197006925748026405538322918798614273372158365967722542859077672361367472486787968785630090838573593151370642937370963492608408178886288396071545529694570188759396819029647487747250766206769793665070114615695838723605139813444230700630759676743315810311603273996713244326877494536253499906243047685419457124132999166823312476767449538687184417554572084214144891524494867392330542990092319300382464259104973100753591754401514859934936692525040248481211579422522980716415123781764850160819200605021952256205935734894164657655996810658805794798389021871578048601151391930193151107535638485688691293929665611599555863867752043289904317113891081857278983405513693755654500005368822628958615487808345890959053829089877194438556032437315501650469566648423319460126174565435889789258637948097634091153830142543943861542905506470322466302297758930893900538587295556695028629091067403361613637840820163459031383672671227113403436428086712345193079547962824330670650486575412641835255405094796996656102519830288968186139897007869710644372195894517029954161791096335005240786498672445821243381595396944236725482669968774403464165237406764609935430337580743155457945152145353840238178860898766232980126737997861712951623658816665725516987590552072282068415544402718748226102007592031031756241779234691388344429488533017641035241162210973347621118743404442194653664170083806188459658992956029666122893649355661166397738296078982748957450075209684717638043166074098374913595396357661728440825871303982993325872159089758644536995986943820572286696296869209400294006233434690183194009641870987973408904427286586357088957346335410067770260617772573428919445586982696672827220493708869672272618231775525818026522622656518870393452880058323676994607312381685378027837423511922701209828876022591403908455110621312984577073192075229305131301543795935750629496465398053952020998933294646551674446776806775781566396231362903406185158794347474416647401683343465265773647509144158376938589235917946992568830636086263960386271074140706599800250490892441264700445577060343881467903662623753755634607027423660494051540654816608076820154965427466609878946955424621913547858101657531886731915439535846949754859210768327613011270886037451161239154956130532434670565899015990059809711929240428972271502330688256118909864433658569056894317858489013928318287733134841173400053138096847640665493802430909452314515170369897020500524245873181632922626142608223237063417669545456138259488217623732136714182502120327690516506069019859072649990302509002722582438629778290730953344122384758338988932989413098678211573968211100090578629338412847911867590374228845667486206538583860032861545206522214776964331978704618686225545982730106905850106274519021128432130784158387097771316750667017266543791974117689117295563064655369528460754624828296190390973460238561658902044191132883415482955329820970781819310284568488973058058588006457139235175546338901363359544654591176130589016838715599854865149026525605820564146639563380485323152830978219066666603929103903625597440511957578147951978053320841968409245679079518283312159150115770350076979175687715360516127885294466879598869245757172944731679319789685220543816648432558201481963449958690992842273173325879541478117155873021231657769819797232937118418628525581345373739871137950357243615857691589546671657246480764845025006231761557187991216787400484069745523457447446630004199625000282910732061278000224797625693123596233089220168847753822806792595871250562558431401083474018714105218892141395044058976277963467023456481317319335825677922748039326197033088947821979026263308401594150660565258373969871984278955174368033419477661681794582899868160900208469234018779893836622093250494968318749010300796019421980622272401416315958561059317374819957251055875743824312849662556253308747211150767950496893803295099076957068529822722793636757736953824494035535918276567934261333921907710625970200537540495377020185911020189829891797792581628096611137927240131840970015881732925425860456008893676248010294253675793498949871450694891245966924462167125627371415918010023639603680469743231085558397190900041811463934139226782521796496058266812988770051417631110654689297324425356057269933453604858999182057229291968528037850531653494096686784159363022645286655279970213462683641772472664831941233519149590694774563519114241889061508621302016804642152118231200532862263193605174356181999301010992118685378339307682896576494581638047205307225652934351708668617660524602657323466428501620513711443628285948618943821405396733726388664392880847290510107635124395908246111994086808642226470759222310687295073408592603692237630111923349909002053705709360909198360758522068216624169197391182805485834509858638288511828366078372441829686234992865051457813450873264663648511738834663083073868670910966440054088166578883404695645766502247007716581313332182748835410135625585433984929800317250727160145386336342463789271320916962987853985150594758370338403935962374545729628925716284935934273891852602002140125785052691340506544723250825306124206621976290561497098095412266853010361461708176792232075534237388691337394491399458470837674365866174189180873851143322477050961134489972587571122349147997888631749870663269502533558165443048358024416234183290249368405150520009460243052393732616149351568115885001287077550813652100977430640379950804433192851353808607115939123593917881392873145075869498592925750387890871482321171916201795557242604550461076509471235961744061598904114456508036871659014070940146821759590456241778215438633800111350119127346573622914023203299852346992966363972260995494229331273681917097630874803179903100357257971081008776038056648525389250469106542792168997961413048702410223645590436121863436574668793973793646767016043394786211995905269796630325071051707329718089558723441589899514338898716630981226499509738845438740337059132716885252607194639104190656130348557940065833275794198394795986410811520911369488092577924703941049370451367655298407958632675057558323395533369911417393824467981625138945262704658169405734669549294786887185819757095235610155927176486683424072255543733356234523318695876789600224501729072437831866275887679222518369657490875855107408265008334102118548749047414562112724546430243630026513077242206754197179623858088434778255154128194610836995832747777680430996027518926473870829140686281058384152444457672907299212546657860056529634118690151399733547285609088724463553823367821826116998334212978831649857404762273276070458901771203555500065261663395905030328869359391089682138957975725754766673640366756395667938882623320041501033105248909288351766635232224080227177379046098837942835913095662297515336099187079555221506781450427098716284051759209724601616594153970537773572510031481406417618175393820976705476157239127598499857112516765222132137272737855227608395119653991103864825816463357876731219618289702666413351911560056189075761080098557619102786192201828707913818298530782860455378650744132499533617341694643686784210154380242491027468705329481975465961579493359396740589057551940584621820339011221643120519037383754817012379535173919148712881696826968983104793899282714112543270603735882483900445370091176242424262650716981976408178389165113073949460515406805320659380200808967411016847262371469573958803105532672959940058655517800557787378130237700201694725733122649874088941543074674021147734721798956870256344934091925553178181578890264010179304367571417948936196980202993081117152162522718313393386234856996936897787731900296537289472016479876385412259793543078887714499853697524948502913961800972955797909946189828660404532310779917658972479542705771675751318595067479303856427693443092155467859320697626999199280058396513319912180682908980487024812049541335636172890395787299702240336007368610075598038479362693987584680972571462056537455910043585573307968413605206261704774294929758461047948500736635420472694158967277385742721866774974307200613694551199386621611571454426154498508613421364613093634258885960873955974577749370253779622580776452891230938410892337099059197504898700778539803361426624597416667062183905599103504594267576275023602667595595467570686641050127771493160873152049437344949513978800992910714418518705532511735006677143212796389347193387192444698418031923976595795345758363338452973014071809045873199463829249989452945463094610094468185500255045876741204744131192314683922004097616883308691855521061924236733132677922063469157095535803798654302866366363301172180086828755512465750004306676469004443303722580509477851565650157646364092000656346814339543563182523374750197423114548600185601172031788543248997187874505417839157856484493837263351049951677092261573146290352717968396606286637161165746569785977627918874742437541119038888631518578033861858281051387874365673327343728672143547514605471964270125967718620566338398461184852150113055161898013841902751383444053826800300075562747412302238380260722394727073466510881284749662099587088732812209606190030340625961976945261041416177802218020628246842656878525678005100519753076201503960223603092302508851236410372523584635740031596139878251174483701175665714533710694705945123133395870321344044857096946638707489013993192310879309517848606501298212935427283022648193949294748346636744520222717391397427730483450865091100137863585153275119640721074789727707957873150982722174162212482333757301499937402955100920053386291153158876537276759403901376576495240006416308503273534967173366446359764572598398729827247976778342284866805881099440450462910063848848036393385081522526315323187159423751753694636972429544965860222520768055018839949617502639505673827534513946040352322439853627689494750757629426538266140892437951194448013295146295710647538008701207011409277490549184154705648534916658758419143618257357046369138998089162696268425393009977107152701910431695373112703441989489018774184325791084407578186313443124376648369637953692099785137279753705687668636281512921212672637855398731576566599956214571558790929697409576551676231454551003644514747278633696730264851213713297508375321572149982523038764945133224673612728879426546625440217917752137484925019021801143528858477967620113152974764671601944182876094864757189272020774460615631303943237980516364945108259135965164222616830749020935522242506374716172731814132119227394666507366637779026500859963317889959208223493712445488118045230031289701641036019888512062915773805327579720449601299144360356545642671760274443008824707973943237480815826068040855324789528089029838613681396203895273288790006073875479626688508475973761299190682567732652442013535990429757662425661556458193150868894815892601198942046618129749493404911819198462330164083660992192719382422725596477183911262097909719972995735766996487715215447521189473424024635935559554263814814800757863721276295368245914021029919381428385439672085040973321366131706371651270917175462426681131047448878980352613261987839688198466116641487775285605499214834772731558178226332217976686242934531304614132099830297331356574818436497146211550922826037324042822399600581366104300016955852712656630679348050124685763722117972887488187346504218794792570167296007663864363313734803751822133475841828486427496828535129423502262836895132415043392237530730332456143418458061297128514118769506127407458109486270628080520829996844655120227699316086053942628845005974178362120744747352540241810063193723322735553880920157766295357998386884411278297333338243915076355638035078330073108689590347040818704189012098604556350171937389223920028226456882240938653613018688488955665901188864743498196004752768672737189729678705874051595912246073077097923396606808621704291222840490290039253621010824254869691278991018184272935839737604299660251016700535917344351382700475443303764442684116115798184807118362573364336641849612500192430033576719663786404390360935632279257455838031246005781549061949481032095168108793297730611082592089979319923743593077241027117755141905837539888586891274448674071758625663973569031290352306310901815651300570030505913370381106356892003120863042331572977036240914283618124442599084585117703424647369821812353759525726330967715092957249634912390380379962052989990162121640988803013774159936087353513033341995020757610663041330399054754574756538326068210207927117958406509883603651165895425793327222659814226070746718235775136675049917705976340346040233971643376062114780042224733808914761765880075824020649065440072211932092540596246595926155246712490183318083227649483352556353459040918028156142692309762313112567800447801915792567307223525575179497427244421810936518454115530231185709730147412616236552041527285975762675083847091455857337827620532819318450665261523712403731409085410509780306262005140694871467792709393344906558149525848418524866680313481018566964325960255287283107473642127129254190442360683389159616374166175280441506844523633910776275518044256182841323693540934895144619503219498238702657834207712923888360765969519705736920671660956789196162048579227799652201127051303021169175797797471122040056549746362522221238435226374376926513386614879013046131891679111620728987746989325754932078360831290769006786688138201394495112804314108902882332557981158846767599215040609899088416594886458481805242756319356054206605233311068106510546296768259859592249573374193663077073460301646355170725243134958303774322622936365086086805615402758927390124266851853887425784335621810891557849734429662946911458061987876287256024760140571024933363763840023320818953489606731359625288023941521854564260249663781229147786648921474812410939902285857712076377099849211089836223163243371986136158153190722296704329344050598955361321242054129209379899681554137792584604321269504078269529596765061188222941367595782896484663144062073635206265848542583411012423867791265336427247542381349688012659072763355775120303904782925332586031351613863955658442713702709205662266524623337749229033689692375278034202047767094665947860875555021043637686137595308244350159752040021780720347167787055622039369966831549556815830847456191352739877786929018457014772367822749272448252429434819507362708587190978103156915721323308462614330047152096348847703501956527802917209280170104657636908382612192111171600658652980099831490783415845728645101182896868323580212676804513011183128902607077312727583989389268374966816293997181847502799827698896455587849442780320364424325865256922431538957713011725902531539680035652688742501406364210499025291627208077089313465077812264671448520834273152938974050163821203678673965396685574484289044465732842302507236726662304689860082339111656421658380558680815459160814231156361845194145016087781287787139832612128638748474801760115812960252174600882646704801691182847356795661695686498191522272331644207907620013139825818265096320528209348561280841575056268561780562092245240385010154959737575343486378818127921185889217542179533608943246583603545433965330555588958057159970841285097785678990846120758377674280094754136203286895624528174566763164677775334618895587587558460726681860608383276298949378358678077193135290581846644909496381424329852081449948745674602304755373297104248933970088701008761186859468617827461349422418696445237939439386760797883886929043572047624968989635934736127693601321020416382966772129415497440983732936296964549638282795634612646469266382304983947341595178805361078952055541098047707496921395618482328569897381118120829283688428185582239803255638136669787212152728886033500020659858645744868246704984674869827385286339462107053710223610103273335279864767071722411159246213715537445003498588729862431944456164724117899408502022750071949732412182976992221425437645322669604305808311765008945162147475499226027216649463090725496390132558948608142520769149775893160129920757353579642118726285713537543622353751533553507582774581294757468309726877165187168003241123460556694549748815201271993826445802024094531888921023145801884262268713089901688895109890319042661418519769063127985855665739298228790916931512041983404444454764186000061436256049507569287036013966840585644203729089414262562028743948968399334889605799354711813025214938681507699651786436996911363874645400548376791803048965636621476173626699838675163083235733230161076331752362242459028339903007214813014863512661566075843126139468212759987472430729428971703952061177931998068536818104801244083541002479203275133944468741964134430336000138603743610825688833174283299156057684005584044883942971650040958571924070885550508518622517150774579182790085427684043533559504229835496820897860583365604248778459198823542788143683045378912121170788638809684384936079707553734694877996632651384983592614228381169441531711147834058487723872119248093527679918732978367360741740820404630075840805809004026318740038811392945605499482228177817351775292312354383816232681165025353949126390590072996321075722508814143680983994275188275467292767784609665042367773185577039976219482009694084798966116823186367218155346826847251833821227119652482352388476173756799761491107024989549655341401511654001877610766675185904635009576041132118016356453689216299551021188183889070217112582875184509848637604884522244039266699242350759194422148767388175728506459072160758866414589706967288776111185122872550900011376180885751568418750833202713813558289688169518079572453090260898826445221031515525031022117011274563356098029271347369196250970330995027384398549895512945468091179071354638764595844253520176864439958569105304433833491788254727320306627196207497189620407913343003400580559306774149790898877439766886807985589933314910881832639646948217409679869882817576058001715481766143530150547635586266368016849712252077883352262998765931018571285150590728029841379303147721080510583306576476334160646494964733539768788134898323933671646010518802834297682631336419897860912834396594832518098865121024585160147628074267912924866098893887630731947660569342289689678697837766900572438792635448274294664660141613506230576412158491477648737030993748751033594624722447496268017046677467278318434516232207765505088402849543841287686723383241019637578837649591734775934347569656443794347387086942755841973612723086818342646410968408618099179454072202584443752462917668303689095433679344238129995529850896324607492491971456123322682288942564540794806123232989600864635537935334961888717688628621392784349225922713552027024470670943718652813423970547711875681618791459310555421249813685372673007923720413933504937479333624217838682923369187031294938878599672906864836775413544274092531317407283205524792104201083678007034364396027683555345533208873167088056339697730740439957622813536548164314357130180514093524343561483538633310696975457259949335590448536975728905806510797318774683936418833250211399169536140565024335801945110765138288490302780214281979944665951613888925197051033044564983742351336417085900858113042881070060534816205954205688595444963831926957055131301295568149023454167810719172569118612102352287682891336435498782071909772582899813208568340628676334173225662674123486494542825044381691365415998385073982324967644851670184373963033227668799072919991295661211170260807598061697548448208515130324594815128595384808962659578252368683340232831317540175294742345628596642098891483882375911246246763279043153415272535956147893967366386605495193837520538091765107709251816891984327395288235142478993246527514153592136174459781103921542197159090196192736433936725011145078529224975945083752788645474355014321597263962451442580697393547815623901945543449291652509820110734532948459940555045916635824791803742429854072243076400928330781081989651946161150495331480870087281496024338013602882334782148277844876750921398968753218733809617757562534856137855251144873381077193831460287637826832370012131116531415330680930035728342545199431700563438629446709268309490073392260395204930982854970209670659494240604226019845625357973971699830222045901230947991998561497654541170881042980448818355713189117661655227785171586404637089221074303793202900566521548277783378462654157623467423372346669156202506496810439801304625639110434735406074929832584011702146868751038771441381175856342791069535428525244443491491739043507213877735676766112046457478827783598815208808417339309002940129023983060446860176015081756817371299555699708160196352466697577937436571539854809467580939937221694792336716862430569088703995974580955181441287084412077629849296814711080645524303680084714783360820677751507269393303266371478218944213935266708761440079683256694968587388146606296419153444049638975293918343545702756163024041833467002450086353596163648824810482088202662370966774354271726536687721634992760741261264538959010192116483118850470532607517803929730186408257482699412109527146260768092467990647008805889571821397577922131291294753541269694871768801923971440961819170884023940970550436236434099781371188076689619093761957482419868364754507762867547312540546901842280192640355061378900092421978967482938037809667379953758089306922642832847060654642366959142536460671279201534837337503024169976050646107292124197332609631962523152810306460518721041856605156316373791208421055142311307300679252475900915743177691601807953313042392237047124798882762938096670379633363270477394680904344785967546086038339888107286628368180724569097319175167429121628950428000207849196658929225820880362768627865651527858547629210849463703400151311073352182092298068823491909664850409980817618002870361096161331516088696782743717743520446971997571802209066424884813314671422063036836252721029120229975914142693766311401382824966202136419251995451625519326819945462488808938794676666525554146469241265045822693853362166591232546163017432320020096224519221052886646161906679793459386520151593351751230964892327287972717829074166675958792084768061617505157293916668994027688207845010377408117551057932834030162400250969280591905559444616737448443900667619584873610940462992291813337393875714067916700585309889600210621158077284249060923483905428074322565784234489881202804411822638624094617475866230697080766399470888897550572324079897655035659189916337013629829188777209712005553651876312134321512484598173864990031524055813939354690869557069794925046906037445693106641634577967152477626781425188502490296201800544021656606514524960750497214386082910224200265083078460811782734444428098180515833099370370095079344377358673194089922610986643710903405996688364397544425780662661762650484529189654268758169898499095129928073221038326601514141146749616379931422704668430735298111436247320026382500437676862163948172282761127694596288650370558600891998172460997870498336618669747595371468119268947599490141560562079357090228606426288853593861178996470369282798851808107378486560547006653455304068843980367373576389991626285609679807599999347577336611352060309914212756981166777648514528682620601685348703310759007960960790028559264849125743691512271850896088479519785666541708833277606705856185130030961769591732430240030627869313717188583954698428571575247169206842280053504388208983427592890177684179974569448650726601219108055399827518439958111671920192452142922435635954663910546358325938242885506855688633372659593986518712783463367518600657234305183494152686889309086558144326668065562859993972627938361321686970854806186889650744770882446250671497849627145172830582390249078824168178108103872574858237859717081949707265189589172301659934594908754278249428920586690495904698402222243996423968864114629072631506709475842117388338750239222716193717280645956881498729624294779206747046754943703191029955818740042839235620178813567251944212961289968528328845413954724446337157506774584847923138103399042765554115408661822397441674975254431848983825659210352986119502521422274356182093483000949559873679476506072635824202316791284034243400127648705076296289976364963836632673391805380125762139419703125448635420064502866967746919768785485553109965650171021671948170841178525790934125748089611362334510588140920958081034455288939707388994847534812439111441783069391967931924771500584743559597883363360832939133903715891838843520680969081848889969376823257841821550548160498208503679397808848230226732203505104011822614277719923933316039872917847926702675705851318916448376064748671972537984555798007561686556135121179710904359734788458759552886009178561172768633081557238555185059696303845556625583855502867508609827038596253703916397917792967457744686546139356885034269537406455801849082802443039640187489836050775488434480129813068025051822175122120872024608739672273444669782052624127702644060827499728137275920399698671322420631460852540180426277850841279529592875317253488332662011141687375736772522562050281103125893328334943890041753742593181201586303910574483529210110181324236645202167264651191567059124420744786741230922886335082779440890068189113347893818158808020976055903935102424174026514548851504877944944424213608561602862341683517586978692873831298003081379734549690468800326638300092629614117983590261176643786487822143085561842251044579081398004783608643523048427065222578717203179346481370190381895051173437451555052452746109847360098786459433741068080034224658574555729777406225924645171203473166100420037201502225596668236620630499425569781584697382169448043254760257518502242809700151562131623858716621974496216136488462501234142714635762735353226293021287068419266002168406819146308954955560427907034100507622684934546808995483810537640542302873016773555710995941942710556899312263982132529239133398566018169637112251923358101523053075007477017051876738356216684133742840280992575237013426319831550219492406038287883543908625122272720806721101501145055936492854116864770538405998444938558315152784644066224233816270754920790107250856489211865117806682532612114408277021567010341804243420017535867393574136280206607100276457023556469491304747350784106295503276449320454352063816041539826828709033840028612855269313018907025204445768097577789845135799817444564359721773131124802506703199590483821949098853049565896718687028763028924167067806113634400943028067103051624353628759995133546418339668776352639275721169576325654868699484429394022838588563312798329345503618518205508683442849709960736533735100278546283671208064788550070817405837463860048676612385051584517444697992073905477828237416735725126034650277217317296630737483546262117611590933078503849528057490766459379990558562817819138925283812498755531154692356749788514130081848073754549999143473323024430624604384658110087443209116789096283678598885835945128519908376690022322758561170138878935856507492086038093281938788041112858297503073888038010491861981897803417551531352139786419139215274438056049629045929131603034304564835021897819067425211571097900635583732940642015865498455105233961648133869252094464822877351605947415685588517332997441781729785178970538264320742617877478997541224462372295642995709159732153558061571675148506482197350993239906224823466818249221486254254890109514381873044524319568840844837161146059830734779360770441165179115960495270505909554453634989743256322763001830175854274408534887491895559083607776112751124555545589048338781868049470684525974497162916770723126247730356990789501857050643293831291604197569412858529793847358941985316997658568980779646376234726936296750408340627058238454013435129147126076994073513158395971324848527162193145455549520843998924450394757181205800517377785546644947516763502913311838184084144093564277198658520383488764919839575311937790016203121142991156320350595333212630513342692878831077926763615088319711490988583828536842421962487693227501190732460608521498079854607357299400766256769943765515679372478210940905032816079038934804772388038739256740849775970469077403462314271561091039253745020365164948487953205848272227324199320874010926041568929917054302322985124649396148331224268161263283438473701008793342789214793368227878095608823112959252809843625278779686225381803802044990399104967358758125059399682735788206505669952099015223491503693520029333221442545480905291253190486984761005547855512202428395748959466728425604686678078767348694717738704820331861434927881163142451645783034814649586659146829613753183719082258864614242975889343835941041252013066879315577411619713531311993511044092849245632785635661345559215160374166713880369426288636621447084035714005316204620961085857984069781301551795890418209098839868099933566333956428592437773095656946600879053835757578211703143060506925045120848995748332755616949554995293133458654581178262410169307646944888323484798168480077809479708499192403849087842469297179338533479815899764222652267392603937741011687739286080694541251337199671413042012488860952646470426666774941665176761658642899787473761760799847506458811087736255097265010200855084831105552874087381255540950861855763235190731128093958763285866300259563753628370012388622270960902719878523565159154513427232487968403093985590981890004393352373675175520507068485892213844648691247348184896909248438472848953542319239057771124802209644993500327263279979624466992093172627742831106429302758399099347991423676799577435634947446473545880860616050749067510005394068347588285269706878892712253984329892799081586633731673041841577715437831455206078616724923656708813595082467356903858464415100968486377290671209922667874473697048468727158360698734459578786808107403698274592495998533792251037153176784362017480286059718166282940968953622959092298189729190184396706536299887839638770815571926083701935549626755968820603915576256911744891493672386578474026616421112751685556829463957110032885664600034925819844930830250718515025640352373474701464360033151393207772377105265410426132798864524775247092769119458056175063703366404804189476183747036495362091799207022782622932998872872337449676295957066225917113945810825328153849579029389150403692883273020518752917867202348549290410931479530972739044982950560101370862256870447226054510376711076872502516243048174493742539885854870552646794664266065689395921187339472243918410350701411743738721183956234047476819531306298534547735049226399056803031182496674839507989210712241230876136563662227245220309424601281138236842091290504480818562311462679871632004073578572519409691482853297601688429018474842864691075514883363528636286986730684988334731035396908400713146217882027433848532751355226195060533788119271116216311434310960624715013557229665430524540071092888049386294889201510634852843337490397795861962792644297330892933467801397946032837855515302150338156819895888443663855322167017231810744638043949748460299911544907344249808465868123946308979836314036835722678780755807250038076566315425332361816547020297738193246388693582562672335392526304847105562224314223776914740619964938315072766889621509574873607988207055505373099324826229640525185482254766214690511735956394989083730842611820425372560716596973735313393866593122596604486025102204440012290901960254091453530858954085048267631701943889874508658243328207122514943849438526792430449494978107720490876931220520906383011563030919346536616772145145412179432856157770637153290501697135613746290027116785827359389833032054586807914715879189178183913982679973320935082664513440432024816690549215351596027716642271112915888614774213120179510179711325861361868211292364229738781560139714054829831239247132376703949538994327423866470459785316702471534902406781513695657584039759090382836750908711458924565437534362416566038179715975787538037762873871735253886016361149986655066594243562426699146520498548776160009865977842094013934922121324951738480578425424211457054575226554505799555225094596298944321335754124413031407007652913006578473203186297632244757622761595112393141302848072953772843859472852714213526874986225551704569484780646874358194985922047607334355259183818800222566790172152101887025515493577215382980262629893111529604752592857960952358278465587072631460585924950549622216634403333183532242858672223988062710392764437603934381242923212766842283958806450944963191587038253654331918603302820838349315031841392799641368518612177232569959439495817301410565985071992671837573223781032228056418248766623637106687627215422687792223157042250380408700559743205419267143270211195157489197498947346597358794015697511306155893662637278112655839081103428956940129411215471326248666597293508919997618423075501766602478444731445469374289287791377526528873550188167468965166370000702604461260227803548999545463951778239417693491001771883952590434621456581353789378003084126522453801588988904386011988551685636310775108325144346068006960886935993034971471772980423481201936250431384975722041244468103614343216658766182409441154944990948277067114067585907201109764010154678896758607979950324400870211247972962085352321738716255247180875227796422455606203022751301403427216661147500919266986308810495892477323352572100251072536341879234974322615952682458773349321653307406414307626876210658756697679542832385035334489176018686749539381829022445215032295277127609309645054986211357179649740028325056876972633472887221320056262851177585289468121141455224905158140318242901202293891634443479917454509916249874959580387148786076568556230049238597756676028891293671330154014816009000542214741321897120527267649243466015436296668878954601283568346295897352106757678204550644752599925576571346947302313219476999505718482090344256090071701280542737309098192551255227432125334550868428285204296496937119088358735950754396318684917294802144911415028391747140451571466923673238023848706359829439249476926052867325115076198567399049206394779955093753943083207697715742817881406166923216848638304544568681117760595924136660018819658833611579669321090677287626315897394155176149976463102333915642931798193244646893829285200911565254480082070310703067704912915781881135209755600906142879412946236038258869224292981754240544580703743266207012347178819307893084127749477562287645956608457886430443650704225469449393262124761663604685685880477598864802545544449947263840653415064773586960860265490264965774207117576153990636411655388977731784127829600786678896573590328457476722437968567699200271060996235663367205738660048541218944289413849766433293516281845964965371728547609555742284997359602305405698898911284355942238824175160972185071728764545493161128415057547250355621521103822387847757215775163882065855682618606367036764597090821910965142652251904679722850746311740406936940533400205279545051031588378695331683697357141088803458927328031499091469101954041418244327910455268084431527622484289111975212529950363921274511341321422583216849203994154118846206309492978650174904878675476504347127213079053546350587340864496276086642616048481403332866987311727092699060237057467008719705518393237816166433838997490980023929997449933569137873168859347359882171182912134948514245305450853398910551326527294266913610930709625871135133580814614517218574649572551060150082590389001106567678688724412432247839919087176741832780809882214912444440332313236149636409166424941132234118713153842574427130644216399215430793478548799300750607657136898937815272584826534596823776641945903574417628703810870778209607516890279192183442610463234599390903655056099938175414819773149538082880055379000746622735608792899316962541972202725755468217596786732637144700733035591174198556642175692844962151899722507556349411390339285487477720036503424039091182848642249229630220080814600194945106786878035820746211218494897339071008413672166257273508585540615998685008932454837747597254641938703689057636408501673447105822292796470973708666843093307385515187927783115113332206823640967975726476707982466572615992187062573499169059754388149377688865915037047623117540163828973498220577630765263536403744268030961036866523498449336315587221596824833183290340793042547597956857324685948742892621334929751281384035066932858037877154971800522205667067788555151529787562733186273183098253303603187843978716732080683160523481572197190206924428811993620467544879992623435118966474935154818669777275061149838619532392926905161868442932029254043240411883268194036879425708760935875432895046995285745103734717541083492946871951209776078555685499304455774787120007877830670784748926515564227530577730306206432501748971530003242253434756335767678594134570606634374581925796087853115653685891024869814448161323079668788252190894963437646896417238719366088013907317229816291868726507257829971619485200348902815407642400437262935580405686702149131716124741818693283481560718607549725268413491685199081146445370274975461292952458538325896375067844793729096807565239800547014977757647331329694053792441350596057173592423132239263196331979620025550741552694887348413503724473125132575204745780882745581624016649011207016929809666876462178909472713397297978140841365207019687049262726374636769366581913130497374595749714106543643373606670780129832228265266345644757125770962461592003251923480669451751586538372393651543802886680241052029876128535169898616959901402545969471195498917605470024889827291917066735160050435233947164845738783152518264930861238752738892625593116044977239674253934177568402252557481528447833283896577562798633090913153908504467675134132694526793711742513535648321806925640507880350431592130611327208907139071715395844143473544081937087589790272275846003379035203938708523361082027841458960496481321102576448077090175977759863604132764537156309572031562162682558677850892451942262366441286590663737143786756102496879510154978149955530888653548404519971818491343994423816626721867579044768105902057167363245848334806492896921091851390371811643757269708161600482795581786002326738309037716136425995599400435205460568590407109647866780773589004282662946796949121916301074243271694230845841140097776798309026238903521389863974079790257539734646579909497552060005153828912011323025834962754330667365135460129416306986967077109571678542691638767008515212173928741543224699592022559899538681570399314155096517700590663791727436795605964225486984697108748304465587483037437258274131958468756713595279061999277119899538462079374426328059112578743131819227706849237821943886747768948753543652053917725381450503216832174154271875026343124594069882024776323525387186733900577048945745759210494150133185631204076570842685101240286530023948288284467807265493314092736244159944296448640829112271775095132576056269265535837656620302183233100678846788641882686933014223472334352491828089104946099348563395061408872972761131102153862249244517327703788040827648638515530769229477923968498995686351940143162522759877963588432723311231469305981273520520717390481427158100300439289071310971657306222038186899185524963984193813246750447814231205610507725990599496885776596566085567932899512769898042955026212955295077495294762906323400811360151116721094958090336171294982372186141116295826980624179833877660240319700358512036422022541543622287058363807997667422830012079299260279737213762486221617416190738098221785888008601332722019109563754977599416766078621551108019300883290727761441927280349844251345295586699166951959448333541869695972747592059235295834949829414066533127187333584077010375615937403043674730058050313571355806336023675993250163381551205778082864067540637392276416193434266268137588675710040734123209974010206652871354587477768187442638908146477308605589831015092955550478392283883076595925627994416301032144266193309845861946774015472903005942752696119335837641212133957547336628115193663806833438380989591597926203093405879941523847705347761848712208439159016679428593975469760273273748579642208216380157951784946085836062575530468937595600047731592906501882555306560221437847670399414871544744100788580061863757596208849272303559451035542945350926441228270104782951240614733219345222899958990270433389325406679363825198728006671521752216698213703186848358663182923828458736705108259324336169020126045260143171142135328545237150954290056883473906816824467194983793740984362542482608829550648539819658825779752739821769325889610892930275487626353333473405435034790019567652189911470011230549875674772491478542089134275705367712539686459055548970595581298194118340827484960689305712754319509960472866226273194785077238241888423210800145473893634874476875659885395523758520350373236427679593043386232612158504585587083838880040878288603405850412526383987833796534891186304152370706497564570759883568474015980422111408998930322208723484403912808436382288351413012715079431138782536773757769263339066716860582323367362458382384391631194315599326549130165617713104633917627514521247489156329673914518282051164495462340451932651096511450086282336444824895163437535970790826332059007906017735643924805290036639400009810537305241860160279822390163447764287378509430934544615875787218963812265374163887102239754090704790359001507352935586260527021787116848580885677712364510102067100445125162494977773339108340480125033022689144848937190013844869463698498276988344873242552782630161681305068385212265496299229760523736273055348857718698875601656691170509721240073813615354928930320378024290659539603160225409869328124802177911393258671194413255004171662274052084286831763613618482360126799414597436203091433667660075980283420554494314070501249524097188201469616868241438457947546302644766869506112937094803464548549608099387892846866832325509373284707194867244595702501091562402289339776210840731768570465224822426191592054144110858449442997325219169964968274888657637620933757700569957207315280650618440136705691421552911109437265456585148875815301852219826981826114886668602164311963348265667016455655002926898455574318819877776322454565200563481465637680791361405871357064875879584919499835582054335385168252708112758404499798736659533636557312890799479864340694086386851633306660440159544196576269964564863938566357565873554363451300661828105154224031780255094194830392976170086772846500942254053714373260932620826678700402362322175076251251767519629649684969653957089779824430774173003924684951743204947197347022445021703406502965451760153305664939206736048351548867585095837377673982240065952874930000706370821330955506986764469193565224916190077312977128664085141357162731337801006846603281609738408106719752879759789984473811178997950613088826102853982918635873415041895706814780780242740200155859546627444976152797347924341218900084575459735763889229482048888516548293095089410394161816714980148001056422052684139408308542213677117852558285690318170579883031666777547732986569245941468109908737268376149515975523698888313037701075560978872353507087944672393339247476204557652776602101688265590642493140326328331502441008270921145867040197261122457939856447616028816638312075855731883668448317800097130710368383804898296738240600537707039940437585940878267253034605831553111823015102280114008792476315930836593870990410748607373913932295133321891152556410523752406320759121288955545963006174789780828878298622114114129528418933801308197976840079459471094211624920242676484624648259879162318960615662875602519867648594654848250584667522805117033136969182193642940935532539289820355463805851073188486570519973384837161118001584954038789601969829922418190746053364554344492420947773341741840843656583165468123425138453702877031301545036385833102169683840562472705011998385681754987609760526990675583387390799562714412871736451949436750621357243369088924372505706033681498711607987275688112390040869740430151524023112674488382665384105433134472206440418244904318091058914361079069615770497120551349451053926413222695241614912764912343662184467455603305438251270553095638589915495281258473824637236106550894740132303975278068378937842441115420340219117593202604466114829818605171348349737166234264479499689419704364864031470184125534900860122348480566034136890132289426789044752067684228445630050234902296919980021644685844560310507269118181068829131992401066229277999966814836037834223690615382686991937352485762888733128996151613708510937765223388983864319726644583609010847904400757787465382511939163039275318975887992830581757830746842203694652674129101513618368568925378626907324812317117860233967460492901794777595165213395625853028218890474019507741823359949425637364609535381502653808936271099894664288683663026771179158676944222090991775158399521006717473559804984698146223753561147411108056912958874707948737234825465551972384078320950207221035689316404208925319179644779354287447714795128201119935019676128836661733502954868096539315490841826391407146760388926011701594720754241257997466317702252914679212019660521964363928334029547416052645958634631990425954466040847503405365188442943058216710958236191887070340586601430700880884086078136737164090674768161358591875096368389112666071024989655483492286562639458003544165081837324291869829456540822876378095771865592149818772736387588276832294511406637747362662618930022053197982505635887414744228466526340468966279553506101188681901301196472351061236848107685117159199522598982412707072959801859066627757400658905397136325090121807642702189070906196165492448517863047762720082263991172146174498394459305545731233013050859141377007025271440248358974539043224616566865719679962000793252769036453231543480807242632188138599551636325872430295230451503444267362192558220870177171245296486662624492714295699567001186069997916457512747845352247573253075206647872065949742485408411795688064716765405629529975244840016143759024332686171606516218601391350546593554758304057952754425828666481661238283033305550624148109386074132634443503509385889610859060407879875995563222929385575914730920953493497968902651539140558120636724162775355527881331895732468220071268815143857207166917932964396335275303767403289374534817657598814896657098181919941519392279954085789214475205242973351610860205813839833552748757936747201015972487182785644274957495914249212416227171763268048725489046966713533874334499618400469951361987855036217855407945575812584952716170857250099945082006354278182770639923659275275245910453568824505032217894366620630869969094158605141710583623575848252766532400639877822973666963475856417975297761684565237334966365558194947807595223207230547188351011487103794363926481722678849443223975376119308197102914746337864101798369385378549825348448392876478071974732345389397408028810815422993504283405709391564466502740803320544980158072642310368573610202849062530258798151780700707819165983564337575954320671402463861450754366516707275374492047982676202730006824922022711155918133461726126650013536861459850185065997275240610895839108530567250166608225144497394354811836223820213690862366341639854288574047172783632448012017592451268573683322889089651913288304537004002370510451305718827808855983430657830301792814467085777514523583572002886688533987234728762870375321131940170826872737103122858478498510282839335671610895195384590212144617387560185390962915169318815719840600572503927214610714325395222250397639861912562313868732213340686846400837014106702663149408348302906294027367279141518421803465824438895037959024172024676194023966104752071278791431953892601896697251937649314737995057644533885473075601915140498149137059715890522967327312251701486448661459651660380942741118832259669865065521731292533576289227283133549500013039947268583915916013294982466964132647266253060636353915094798422548881261992340619810239597836170112252545119332050225377999566071237448300408961404918582275328967293056891531112183926808798156065062129376019421169445271881733417409355074512103134160742714202734325155249002142296103280884273839864306688919034105361871745628408561279154031844116969894045622666283040196914706611224103757206662326606599437215536530538496386667985187836600490931414392484376833083907074117608274333944980400245680009684666253123184613661416080188390318062222187836000717646311559680363138742715840977813429857517347273060725415093178376362440630715083100012043146455426400471291861424988110087260517344047653234902112560458585994311641558169587795468544312182454789701758190894248320790428488932559912637504659809870523766849532316993933955185622588160400567136800225348528676100839188308565768885135867613590090338862551576767893068026302376627301374695529074491452280455644159661113315894201580116006234429427351167899890646661888418984923270351448259537261407835346471556165518232527541349294041669916658369066191966860699880141509285880525669044258461247756033943555777396114997582778982259217004461568045323745095058087851600573379868710241380058002280226536291048101010821339436207381961508622469744868536366643353144317412580011547238896975808188170718178776094520407504698172452918305029689180611553385310655373241310501719005100528048058991498281591656694004315678315595004374389394711413489035938544877266845375342992283214805272617525500802561379666110667098669131986222160649324239865498991951857300377998599866496856488269045838810457660664481235561945340486720237447156116618836257202824241067650491026582617400745842297602085619431933007744393324020815807546987660934890413588229562457522019949785989350650648237353310553087599491992386753381556058725002115455757389582990524676180737155069161947200611977926706557530463465911940692961863327457220551876565195269229570171576627531545141973103153390267626491869321248650307158146691196802962151050642387752040101142355697504073937189017686926169196295529813416660190491825937792039315490472631702573977701334470117103655160253906770945123391282832465532680221020030608604555633055037299381402353999013857496308729319491315588459239254731779483631966937371828971260130186046408897534071042599324372008266984692805747729524958670809221303861181588461152351802765482803833978228292204884497969097575373375714484815488248666312400559616409699059404159536227897042037638184175063888618043688614814029189045793862986021936141118362740240118909470499019009778467976728389965405037351797198335101402057279636992770952763606480717083083378925108241367659755296858933798412705592488634977993140036612346778747819154710631506370847154826467516696340945363661149674563657360454650299735488584876467853025848503889770836136516542858492622329356118630119578188281271674861552950376055279556043638354861774750332144932316273901304411640947323782447529145423818824633731593459476327945191287116386361199120880971172232945595970455031201840133328319509640687951981431039985711313101589666008018290934493956486766070035084645831139786251483085857467293170585423693549333681638575035828389928742797364812625756409889333269440134644657195885382516642545155175376215462675671582778874347562841960620768128913982045125409959695677826327881695274737970430747411139328995302775408429851026163703223231749532462265723764863245027256396996910780784915062252044915050341991468657969854895003354531924387420649487564048175614820888574128104873634769161525190103657992872113724524514701720273964546978168743890797596394304602092024796454913426717356416191588753658286590209203881391275671208506775935968593479322066757969023216876807178990185410419862965327773927435281685425134269997785891105784773741709343623213621734797666507930871706252678250113631194019485805930740946986830372206042265329718821993739112268922745935395667929125364474684154329520242574861156490261357122989474826534878967049761411597839420885898613594179150851553794004473051809013430079782578454131172349445346711545289048662028977245770686882726957598802747294406008025743645633401039865462762646101228166753456005918353460959960767945762089478584290514232699333706814667919587230297073787247386977232396263946757539828236664761672125171808432833864801260907741990764819788625566174952574739679969267286672532235289589735665594710735812015180601632374504068457805785990459765989178507244012123474884458853119091092966300660233835105941214571643216825581323058074193586900083699740059703199417727333120200867187815805987268097932509603789582000547678672178120043936201246365953267295753779840191922816467090358549086515693894733382787394943236335666520373647817397313995186790682856593170187731335733550107734784739389782800728821218860285119819543699275877444055975299652074727188711952232866669126886495519819900723952520184720168741640753229828947293211956224004449763368955940676551234952754037470787203371092678691398378487778243558729310882195586360345352534762042141695509950084475465072490448182475709037624747969407342179255898069897581022701478734290311496475769225665844940581292370994863151432868951591225520031251198615226133425707966477350188757036342829375680009421231208978581203712551075530615719534124903416955256929257419644544398204745604704324786103710675982921985156466649046576228782881164669775127654234773280734788979697739004212666348489847511478436170138908489343958388337397880476906053359285305010304818298375674668178259814619962691809800655180725902605224159872314204056153066245668750010578956679584400461623513097320752525604660341219870577036904650415008954436291093783264146939124417049441099744892229208026809714757353965269414873242656146522178539433998961705576359613678774573810115840726463182593412106741561057251196557996163208958672849681791612947834363609558585425319925053838442867046379895874764473363877787123339087837303498272846355570858368562901140737418341910853190051141673544408899139149258122612086036395062767101567510103881600606826469646083863180681175744342944021501618521232964818803940660206278273299452368843984783169799473969426377082945479653309773090246763841742240983078510761736547414814599490123502503821524949900739429429579347546961205991530208074174425376105714147260156382213438084427294544259319307658237247722499424935715515492046755501165467428852818018795409732366746922226817559548654011901751405849185053539613441639560449998653588030464844291726481108229983803607570937141352111114676507810889134926233763014539381811591980001779496796246815365290136027356309275176811437519086666620143632397502887700085886456613420072915049631559937699956030390194308268757747539752955247575999220381465632659565256124714419879356791924772588110837327647884694053495923078645294097684011920868068035394271667295030434584791111378687152346390498305404216873052444371295091963308972147912508785969230327552702384173222075589846592898222844622421976056982390070778809099450672253821008931425599141011966960692854594312383750295685260364713464613457184916493282271702571666918016243294952020504804532216785452499037682467632776319396444466650640850621429326566606791930789491460085144335371518547485102386992461420361152752915136815112470131460211235529860130050199602751616055010023308470566534397076864026096748567641932393409884591978502369774694697084424639961211498753155810778632863574315505710624757883433844787428103996451289603934813890666657297427505004970611735380731846037615981156319137089306859011372820909931281582611296536584051509050847740939641826218276530557862467212658143123924149188979896952412814579787596647931452752793230298013747068257954140823821153169848297482567902381176927726982677366514791046332354811308190200402428796103276257849524602471217381823005363636525836596896534139000162900074948701546139733878544362876603541502048856611714596487183777892736400501879518635185257046962133239378600068081716462635596671329431325609944789140165492447319106075179732812862657689992746122248141128712908344091895062279507894453673566102443836710746180931317963362277584874124100415017623986692010098233534891746516459673633179534129396074095096713190115711920091909575272953883786299715704119254228560035225962683466846607143506739689950428126026833146698384198821551848898059739855880639127851678040174550548095169105778621456307788366400959724597372776112657101058958817202979210855829579776075011746969487264304180218497251280495987743106034687700962385127105888378317117523567796394726407753656473616341823632635493872860976435494404659868771762707329565644753090074369199042200621865277429267453068610648833783101020204595590290545919434627347203243159084082339627280141586206484443243249479286147469079927837903781096149122539281085656895158633714554999516417315991702248033953104774429599348285651472679653836103296089078645968269281466880755480552992441722444879374718148438161903613622268875763924500837141990454896443238208483161840109876601446831990603137255267219895886698579722834922300327057000409742134440230343511658681844485321062380537416376215281324240804962292340000446884704125025250749429909097706549606304350775645513309764823173548971356228602406459424653596831391597370516955036866067532395030979492179998576934942140948948213260891731189214255165016071050962130292641042588086947333475568730825561787263253287082840024999519013297053401587601055418078343908043809577853194265823586566611713999950130025247462502038737545353842336160109620340809479862484548800150413580783588735399775909534875025630031484145475874668213179792426864392516707593711483982087806615702780138887867502475818243823083900215604784152794711911046281225497117414895989309947256928466082998425457665660969699656094529094479621307814737728672608365176263244909237003321572070786386803651122703450234828465955518371005607845158201143549797362357754174254666120908621946350368069903441830998376668516577605976264279155070073542355375268664414665354996907535527334279550621007552884772899976064946814594282051767801080565308686037044296279003020765558457202046964331456020869047723419014495470444200825693757278038406816467031964597836842893737859992227479831227948492620743736252013797328353235643480433812366676586039270950632527906324478494356534424050226773434496785805381084479839583718969509118489879402970380363304713446491915703781906104324810436655277847184615158800962206492462333380924674940667276274431323579921373837125312144435591453353744756065226963545065747863609406949821906833245718765764272733821408742505013829367199799967906380204127938943236786533536954264491392551605207925198785876061362286480305236743781326362698183500575318776553086231673502669819665623432142033964525021292033646153299466462290269264852896943179301976081408347929881492515930950214709514164535587784686794721185081522273259753177501081272387520028225941141072454969797266868632055084064805562737993318650052723463341789631528433901944740941251640643078012338549003810467224294359442516680858629065270955338866859082556489867413226604952888115682761381657636339613995276955843873029827426380559595492418443088571607457725208621541984633478160716102589366291584472958309857029995368901012523473485732679283683892688305420944761980369893159685807273686337712776930490773665483449081599610432172156366514070911225769207900964920429625232824004198936896481557299426417972990388444736004181414308807773922377100988847880402253186335634069064725639282718352380082004067944543132437811300445513323831763100892696969690525510650658449982281672403786800829899745239681239508003707636329352712591683009950046956284506704723730057865827475903838834274663448117003188766784922068462767007703939220260818480620691054411479139031180707963211110810498069685407030030584497615153029874435749311733050578391115302700253436053997095816506381458253427027131849709413452479195468855254656248787087190867475031749467984761377092834151489124474278878451845666350045019288249743262929956482297869915440851489869451129119354112817112239643763986143280390611614109208858896767955122092695237649518541572335178717541363528101713011038171646848041177741939055733195047083356207954247407432424259180198964471505885988953773116810496090881058896514759210236905377947603719877423248488339725071608773899348614889641532237696061509645695769276147270649241151286811700606061054345022470809119672185724444449804335505040180065074973113056374889753446185828982559452249635394313001096283687059277636616244555024032904450847071853042319288559841039364090740033542016692403225023348485979627807708304971930437043113915967109519813757656360965573466998862017523235536394753634037372198477548329897154681777308455404806400583531126757609612010251002765573615130134738587535469931512560642289020851740028102553630117044431932889834976848602097312138176914879207373614875065645686021289996242495911556043730881653753300636528681286843781841612657157561395361263434455783582744455890338346762195432482512489741235565215693063673071935101934395451479825474405992413975526263675820166731753710435629586271074811748861089689340872063640450103471204468214269249457315172672411819172832086192973001334262906930421021757355346361063959916593348298622186471853750149831718381295625137793597188180656456080939885531167526590954305870677219935639143629139004595436309490728319420251499689941454500681780804617933619923849655740276649572413114192315598631405310392190344350272519106658410089496300418249978813177685931075625715596417026363267906423533727251150386357997012992454621855659119166345656988851584759445470508079211514127765611349361348984996455551569012468422001190077109496668537847956825761109160373120850971985673170826878225387589765776841336540209398066795733941354301011681687130652831183023237749947976663665183099082577286039912765330969957572397252396682529438259615098459924562079968278146510043427091542580364501408269129100836990667404117756444270256406917185511939404376777465983260516615576609030450342813325686717713591419291764692763653230499209495666259425299909874486377288759359162210847186760076357851332810510263765586422355027936848608977324243244975296769241984947535484964083593014842814173424104021446111197760597191114048678606765969469465471002190469268368769960512745463799671514529893449528135178078555450560634020042452232314708750453417027703144263052863377760766145996503318495029506545238343616587070883230454464094607243175363753901417427624327391586805586086366155451502941229006964788365472276889950182212645443930599616631076103070185360141033841208873089960297953998023179533544530850615413743426106428425667527812885759108105222651255844041131735199053530887376584779834628092878527113961342664157475307441409678483476954878756940700045592806569495934786943589129618443820732827830622600120434861294050710524942698983395859590347394355276055146691671779782910268154995884012930229357075411874261254012878872349006528851990727486782834622661652417207401196104954509838851828228509715892885269164466151151858021514605020505469776418522780459174024881782150726138846492213811408992190207290548807153216541027355475093010713308707592416601952362384349755814219072413370242986848971566135650843997017230611847969976017984286357212295526719663083253856147765592009047137313251931480493447838166598566821803333730269189289420123337195844707720109109296240175009203070343684446860333250288822157414392912967028293178660340033622191215025012499323211012715874589028397481822366215904024566315661305663977782454617266252382174782450927767657113785228401912118558576379033367155151618248917965278847159150053345547787973856260033860661742924766839868958082285602351408873954381568433063448751832480421394647603028692419895364729952374404741014252266741133558588602715286681588144718427329544856158438003068125973371545877848583862380042283758094519604269097385008978669554992987759926015123627711432483273785298458255272869476245066018703073566951574493366532040445018021159893492994866733281303658890795325023183968970303946172251747646519221131916081163506704835363317363710038787464253630210514592071362591589107603639476428743943207855499991285564607303563694956352951677872021870456400942925771434640797773720395027667853103117505543069360976178533353127888434963991550004738451360070626017498704215109477474293229753952776192803771267689149228920573997620276631009660551814071887825591733435387816667751851935978253106114684261522831183848996827893763497113588298773798953849688730777400604506329782298930276551564489992336473311013410208351998704173050542602285088747803053755545271881838090291701798274570682616959949290715189017360156893924512716347411481449603713110459008425079411701530932935536598164359126758394873401571863943062468583357023021532686314549969307112430568197930046467573074024252800331868780602113633071706747428007520225430281726705964738571229121491136029652585666383823722909300085675018726255962150953147782148631596090783900442274649607835110085730358652001021575293924238970539291465411728832887042343928823232676972532709799214668784964098270938721510132512460011582337135239732042414250502504388538838374037398414069633962905309276097612288117474913749136109299511361771561796761483623249144458601259785554449381693664156963123399310984846606119371754005246164607173390726081548542424730979235590977783022443784368569163438474037872215217247083229799665341989060002101727163491374909488772507475570633205119833273116005233945789477739530531926815873155692257151429075907419295602206281266118032595177818934526519861570995535270966387952743253735917581513024857387586690284026369668508578017038265510351024806533194473750932680515417791575354308671943081987512402293973235577339291080372629709206664812948261867463965612602532281888825231022700042437041043561731721800724186447992352775442709895186594673155174028389337860315505884674565493831463755301699110662949377345148216641071643871203712122410701230101986674999300909638162938350363889540092591127946795300056796807430416808492702934346552573411004127932475486823785454405221287272784627994281636232003766204639293147185875461981284927388716066900161912716710573875641721959075291509692958782706637920136324434698317072816225707514687950128236870969268886736932824720286204472355780232755433515804287234220728335741079093726804390454440266303140156345961109810732791566225376455155981384340161906454725506692854675715866429579127446479137163899933115447718156643710159949923373179493554932667282543819032050677408719772868023207400618515074124079487332135854366100055507297566810881254140704503314051745560143033001329289564668943019030213561639419197363052442199280557364507731468351462130400308047681278847341325483759922536713088331810288497445898140215554772584844463145393730223274771646360122774200010804999060335604172747758964303448181996263161386180772775888485131872010488457649533327859598286351035855574697159307377886299554422743311250776002023123603976477225849192871871211318600841111635783694970954252669050103335450472638140283055710206962517010722325747137607756985569885395040245051570402115562541465443039253085116827790529339589860147285017936441183817960411687158455553640373758223772789451961431632253388476458048944010141077006160277769463253370604793980401090630545265692388239750497974731134490725394988041108869786453769539968333203491131482595984721445704684269776213122728379901775682685188874232589566299020254509597408096757738145878912584827658670507141916681127947835288399529034948589641136230798513602555226570327850207729340329893474183984202125903220309376129418634527231988421151137784315872707269212704766138799585352508637962402459907649958241032687276833418755994583295808850804776411912051584320519366790269762034377631204658130185277426034026199707815389432955320940265694888637703850105391472282088580540267602095325887599974525799700900852382048163045657255478855461226203137187035533108245968510094967482206844662257730904288242658771274133778311280989769441079725827907947915623587666599051467035660336749501823097669053668165252545499367250519694980122242652754464061375527442004112891763639913017125787464628687270411986035124305889633654379545619655516709169942058690394941543528802656038009486449384787259727512922254274310753595460581973849282408206154494225591824634856017070239384923254725318968029420222485107395646162491868492875309444865602890084701571090384126357565599123654789795022620848752524513005024819251708590204433470670533686057624839999221459933377786878948571918580932101645761127368658701603068285586600366359224103625090165762557936874899788432595528863832023601665192671828453016822261826480862087033873304472547688244404874732768672288582930987388226007893518343467868965751132596212910957094434346141382914008851782626488834967527008603204143825424962600255925794226543667276934051594051240113326540761293470514568620960971694114082115985173493327880463467634418339704887794890250990571695514413656538202955308514329765418959023913508068554239335203964011740973409139074007009970017586186130532180662395183655871919197919494055358924774773725871928405976808686803237298229361185036735143808023803919084282508023173208595733211458436700654384570192990463058286430907186611222094372531841111262325797364721096075527906555731748325834892354306401504140510171583911515212046638977678394001432204187421662233572601991798586850366956460529548782035822752583022643147287919572605385385071105370153222718508441012995224859433921895639418428884668110713880345216890979364786209169939942389018498168667627525638170947448051778020495179002806689975066401759902458108499442138139237387932492488121226122648762749863830543804207828899134511747056127986583141739351839782929591280703123340845103604169193922222376754160711455736617214515766986282800718676698485656703077711831855250418160479228485034025393494186674684082823851291527183708042047762590540110771608398128948046366126071026637637102462807915185992805169438654240958462105827040965003010603730268985481076385380419024667903423435401453026687611195124597029436958362329669271979855355162001999058441063081890453536113316180500086626107301518173019687825545100571650101699482650454289773909407208853751066479627800911698510583810258828754190346499671989682006153197291570577979715741608918131765713591558757183865046787494404176349612831983430398441717267202178136310991379406540843663927123504145221145109718402418818871415408475197755891504734548232391355475589395654483721259552050530405692108262548583389302239612801220525763812767173736515165929848604814068526294214469187087501211968710782062456367640333799949153562853453567961447315389107474524048724065889976200386983531774948641592034619443586599673909634024407652932421307298145754640366073413378680108934099240705655191017566683435453573082360614912257790653702018056330108230547927064400650755112472080055830489536234683740892442343132973944358728892252343421881347339158363879180226431770667895739314941626596674829365588074521643941275251454545296578131596632686363610906161044965200576842653662268400532854321031510181250037830193134286747631904320215257117329097140152217966519101464562070754299747197549853498116345168708330625434624507627388671252416903262963061543011436616194156695231017916978446377443419293808198469983508365993222329465906365973627426633218220153756376407832427940878350601202252003716984297328404606248384540774013590387920699952416658266017407414980993898586942007752836682589778509947536663741463911823036044752022514113678460281744809566370959931331902923256759490871926369429149047833371987782561785327005571529731191721227534802941281393042132599791420983612600949139093973257173737444570432118859980878927603057375330667488250186452082431373670998008619705491099012165723788550060710717858514048278153183902476801725984106873646989552298148122344064785316198152247407300109842957477007081149966141080436173521829228379813062030012909832981668701079376283685175612526242093405113027129415598618661709776122493992466521420119661202679180374580749098947828543781071691038664260052487501017042929065550005801180762934951744725408226154677047949115744778355207817555220576759492412204560867249733476072489139007606921785232496493672644856492891294745513814100187837609338659546671898451667734037808262037434254095807432756057755157179235785145933928194096011274093869112354623946000169579487216660883926922661674319989526589457048538839053935939415246022708573443458146858403179170216998006850831249734594311761653209228536540616977438105073850314987441937444840594758356165244951512743180740028916812356952738350127255826246838315068390633580226272317259764835012714524796562596890307421230553437069913538034046984338955676808638045975495572889369347478122725109699183427392559338526868673508640277967382211345246595578546479609728702831284620192655152588833385823537255190991074830510159420667894617175495053049229463393650538315206892652792861494703520134218774619798682484355045902355961833401709037036504543118480541129802749056310778297810555680443286663066835268642577190486330832790193887083674628116735467269957750047381385401584030341334144159357176555198123597353810752785541031244711098864943209956499163751170355626628338771178192930136688446405977205530199439428449180416224813219867180106965152315899607953181261264583293520104365317591597756503776013004062513135358801917060992402649239780854621544068893563344045860155741951623972202043142713794493929291640727655050450905013325993242975926535594612329122705370106215081771862373938980616951670917766006528613082494202296976533041222279384041760379801746688970719714633273879910350422661441461296232348060400561618396600531729025953070341862655524229937039786834873601269425237919215879141567601801071531749133661330645876770110970024831446898766482674333680062712147522944340519686267111640483685628319125904793992168670225522069496828823585815814532102230407254833081440427369521120455410910298355399956599604428320456884515721076844281473467143158301447507744646693290017071019049525534584873475632391630666018192642325963888671913227439026745279146631895463811296755875331187542233707710250117032011845887141833970048438619212201778931566856881369840866768017544816806150228965535691330394197069231584625982047856092475939925486532092541787281589950498830849104985523508475435522848237382047527854558204796735723114040070407058044430726946735109584136663646002809834619216945182675268202349635699798276211312621714559850092299204066863329184812162251777284446610396202888974381235221783081067146589968548407171847495303339171344236396202846304450179672153740024876593172629140543107576713065744415340449571751111988671196999417292900762372416266934645093027306505398211395231735717434954626307299544956357962089773556730469769845971759389462298710705687051053413767180799503491985680547886590159946280109463785154770943300654165408967995150128232107668160035787482455327748959047135463191157431479488862598560456240836771997202214970978798617467334393825126061713432955337716261261901928393037396078064362061007501499873213432731440481480764045836759551126525265808971521219313351868626414122072275043165780514990452981348563829604906301272670839650814239305494136623542760875602080805665399129186086627330169858948730176128649757020129918296470735989411825599953207235007103191728018879141423039103086472975252093987752688006011636621663110165696443280401996955446660609172539354330732233906199730191410360522470507043199291698155424368244504515019328726994099951746072275541327940276757453155741695608898202309170587097732723429645530103817109970398576100152637691086199348681598854739193470176086350322564170486854937592159159211148198607453919942088069263123970908432809473536330165834264532367584375350105990754745749465053168641512630384546804923460782577648382511689973882820518800022409708340821706074746273820404494598317052760082916621360266336873485704129745004692205945360858262845635976306112980916309519671395700439847545745776711229226177740119907090523657625808636594653481807949672954972213342167849505301917312744595110057303701065045837254362537080495201833006574939870755661173492469565595547741840671995754679167962172555535902323781937376329780335716208287629435818097494023957290255715732991141085775036379984996037813984378249741656307579157925207302631919687417286912416407593043155664409201523889326895129337667210327974905170801342320420933284383709536165522910372443175755309990021735170470020443040921114669977974070901683140176030743685660140218733233089045314788373559742849502427868857114456325964562296742333027880284132363244696449434391121573931166988838663388632899691044748092493464757364956402585031460918616645261795130953023599031746680453647983091597271414304799327586688396036301550379908250710414524329819826804570499846828900106704171122268667015260648412244647939326778844139786171375510316325651109767930314333036013334614945638956620919098244142144649939288595813572388664484093401411877629021747674845160551308488973308018556046129455002283701250160505114621363507062101879645950714260344865391172623104200348879088085145275331874990757414751705337978224122940067906890151455698743684071076475350421255064897879970813910896753210647170860825894918429820497328183563606333738270952521881199730870860259006521718269670337942085447923204430040284152504400972756133033608812273221951892426146891080036148272444393933143339811134503949378278831750472115147342562259360905162252632284975375925313621151128601900734550333617625746049669410432726860198193740201386513304492299950634001094837431455766231989442091435444392466762567253224857716929482267423374057173462047531812311212243467143601281789274602946801901897285313014746741379950227960252348079995770280731423690733904175270558844795677410509915257047655302233034230371492407316997903766928452060590099878880160436783971608431183806773640337747276120878724362013818214407444891027270565241658430480471383347092753146490316765791557878686281049274217931989520581654074641171628064282389141832094765967369117501836865555333324319029210339127000093208601087640516729983239655998455920457529545107421508333899638635007842971634605124146636174696989734963358775198019107317812260617677173609806520812522727366002541590123959212748236504827003267420525667379329667139016367779383797136847227169783796779599746948482181574687904893258984360312195384482539179648137025662867345096271172691317417254398243820918122073911296798536625570475580055353201561704092737023316901018948567589522638792829209711721045319162586323629866012732932052076460845877030245237887582272511553787466829288566699463598825146217698764689773018157612109856117367847157513970456174394662100802727996700785505939944963119992597800328650275641771786003709815838464514466512322728037592050662524615121893208056329732964847535866557331